<?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>202729</bug_id>
          
          <creation_ts>2019-10-09 01:32:30 -0700</creation_ts>
          <short_desc>Update libwebrtc third-party jsoncpp to M78</short_desc>
          <delta_ts>2019-10-10 08:57:27 -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>WebRTC</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>alex</cc>
    
    <cc>annulen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tsaunier</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1578132</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-09 01:32:30 -0700</bug_when>
    <thetext>Update libwebrtc third-party jsoncpp to M78</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578133</commentid>
    <comment_count>1</comment_count>
      <attachid>380513</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-09 01:34:27 -0700</bug_when>
    <thetext>Created attachment 380513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578141</commentid>
    <comment_count>2</comment_count>
      <attachid>380515</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-09 01:48:04 -0700</bug_when>
    <thetext>Created attachment 380515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578150</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-09 02:07:10 -0700</bug_when>
    <thetext>GTK bot seems to have some issues with jsoncpp.
Any idea what might be the issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578152</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-10-09 02:09:45 -0700</bug_when>
    <thetext>I&apos;ll have a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578162</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-10-09 02:23:02 -0700</bug_when>
    <thetext>The libwebrtc CMakeLists.txt needs two changes:

line ~1423: add Source/third_party/jsoncpp/generated in target_include_directories so that version.h is found

line ~292: change the cpp files, should be:
    Source/third_party/jsoncpp/source/src/lib_json/json_reader.cpp
    Source/third_party/jsoncpp/source/src/lib_json/json_value.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578202</commentid>
    <comment_count>6</comment_count>
      <attachid>380531</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-09 06:04:07 -0700</bug_when>
    <thetext>Created attachment 380531
Integrated GTK/WPE build changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578203</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-09 06:04:58 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #5)
&gt; The libwebrtc CMakeLists.txt needs two changes:
&gt; 
&gt; line ~1423: add Source/third_party/jsoncpp/generated in
&gt; target_include_directories so that version.h is found
&gt; 
&gt; line ~292: change the cpp files, should be:
&gt;     Source/third_party/jsoncpp/source/src/lib_json/json_reader.cpp
&gt;     Source/third_party/jsoncpp/source/src/lib_json/json_value.cpp

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578207</commentid>
    <comment_count>8</comment_count>
      <attachid>380532</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-09 06:25:14 -0700</bug_when>
    <thetext>Created attachment 380532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578555</commentid>
    <comment_count>9</comment_count>
      <attachid>380532</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 01:48:23 -0700</bug_when>
    <thetext>Comment on attachment 380532
Patch

Rejecting attachment 380532 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 380532, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/ThirdParty/libwebrtc/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/13113674</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578676</commentid>
    <comment_count>10</comment_count>
      <attachid>380532</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 08:56:38 -0700</bug_when>
    <thetext>Comment on attachment 380532
Patch

Clearing flags on attachment: 380532

Committed r250972: &lt;https://trac.webkit.org/changeset/250972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578677</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 08:56:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578678</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-10 08:57:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/56156481&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380513</attachid>
            <date>2019-10-09 01:34:27 -0700</date>
            <delta_ts>2019-10-09 06:03:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202729-20191009103412.patch</filename>
            <type>text/plain</type>
            <size>1284814</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBmYTE1NGFhOTEwZmFjZGFlNzcyNThmNmRkODUxN2FjNTI4MzQ4MGQ2Li5hMDk4
ZGJmZjA5MjM3ZGU2MTNmNzA2NjRlNzI1OWM4MTAxZTU5ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMC0wOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyB0aGly
ZC1wYXJ0eSBqc29uY3BwIHRvIE03OAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcDogVXBkYXRlZC4KKwog
MjAxOS0xMC0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIGxpYndlYnJ0YyB0aGlyZC1wYXJ0eSBvcHVzIHRvIE03OApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL0JVSUxE
LmduIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL0JVSUxELmduCmluZGV4IGNmNDA4OTViZTBkYTg4YmNiN2MzYzBmMWIyNzFlODFlYmJhMDlj
ODAuLmYyZjQ4YjllZTdjZmI4Yzk4OGI1YmY2NmEyNjNlOWMyMTE0MzNiYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9C
VUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvQlVJTEQuZ24KQEAgLTIsMTggKzIsMjYgQEAKICMgVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQog
IyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCitpbXBvcnQoIi8vdGVzdGluZy9saWJmdXp6
ZXIvZnV6emVyX3Rlc3QuZ25pIikKKwogY29uZmlnKCJqc29uY3BwX2NvbmZpZyIpIHsKICAgaW5j
bHVkZV9kaXJzID0gWwotICAgICJvdmVycmlkZXMvaW5jbHVkZSIsCiAgICAgInNvdXJjZS9pbmNs
dWRlIiwKKyAgICAiZ2VuZXJhdGVkIiwKICAgXQorCisgICMgVE9ETyhjcmJ1Zy5jb20vOTgzMjIz
KTogVXBkYXRlIEpzb25DcHAgQlVJTEQuZ24gdG8gcmVtb3ZlIGRlcHJlY2F0ZWQKKyAgIyBkZWNs
YXJhdGlvbiBmbGFnLgorICAjIFRoaXMgdGVtcG9yYXJ5IGZsYWcgYWxsb3dpbmcgY2xpZW50cyB0
byB1cGRhdGUgdG8gdGhlIG5ldyB2ZXJzaW9uLCBhbmQgdGhlbgorICAjIHVwZGF0ZSB0byB0aGUg
bmV3IFN0cmVhbVdyaXRlciBhbmQgQ2hhclJlYWRlciBjbGFzc2VzLgorICBpZiAoIWlzX3dpbiB8
fCBpc19jbGFuZykgeworICAgIGNmbGFnc19jYyA9IFsgIi1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiIF0KKyAgfQogfQogCiBzb3VyY2Vfc2V0KCJqc29uY3BwIikgewogICBzb3VyY2VzID0g
WwotICAgICJvdmVycmlkZXMvaW5jbHVkZS9qc29uL3ZhbHVlLmgiLAotICAgICJvdmVycmlkZXMv
c3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCIsCi0gICAgIm92ZXJyaWRlcy9zcmMvbGliX2pz
b24vanNvbl92YWx1ZS5jcHAiLAorICAgICJnZW5lcmF0ZWQvdmVyc2lvbi5oIiwKICAgICAic291
cmNlL2luY2x1ZGUvanNvbi9hc3NlcnRpb25zLmgiLAogICAgICJzb3VyY2UvaW5jbHVkZS9qc29u
L2F1dG9saW5rLmgiLAogICAgICJzb3VyY2UvaW5jbHVkZS9qc29uL2NvbmZpZy5oIiwKQEAgLTIx
LDE1ICsyOSwzOCBAQCBzb3VyY2Vfc2V0KCJqc29uY3BwIikgewogICAgICJzb3VyY2UvaW5jbHVk
ZS9qc29uL2ZvcndhcmRzLmgiLAogICAgICJzb3VyY2UvaW5jbHVkZS9qc29uL2pzb24uaCIsCiAg
ICAgInNvdXJjZS9pbmNsdWRlL2pzb24vcmVhZGVyLmgiLAorICAgICJzb3VyY2UvaW5jbHVkZS9q
c29uL3ZhbHVlLmgiLAogICAgICJzb3VyY2UvaW5jbHVkZS9qc29uL3dyaXRlci5oIiwKLSAgICAi
c291cmNlL3NyYy9saWJfanNvbi9qc29uX2JhdGNoYWxsb2NhdG9yLmgiLAorICAgICJzb3VyY2Uv
c3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCIsCiAgICAgInNvdXJjZS9zcmMvbGliX2pzb24v
anNvbl90b29sLmgiLAorICAgICJzb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fdmFsdWUuY3BwIiwK
ICAgICAic291cmNlL3NyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAiLAogICBdCiAKICAgcHVi
bGljX2NvbmZpZ3MgPSBbICI6anNvbmNwcF9jb25maWciIF0KIAotICBkZWZpbmVzID0gWyAiSlNP
Tl9VU0VfRVhDRVBUSU9OPTAiIF0KKyAgZGVmaW5lcyA9IFsKKyAgICAiSlNPTl9VU0VfRVhDRVBU
SU9OPTAiLAorICAgICJKU09OX1VTRV9OVUxMUkVGPTAiLAorICBdCiAKICAgaW5jbHVkZV9kaXJz
ID0gWyAic291cmNlL3NyYy9saWJfanNvbiIgXQorCisgIGlmICghaXNfd2luIHx8IGlzX2NsYW5n
KSB7CisgICAgY2ZsYWdzX2NjID0gWyAiLVduby1pbXBsaWNpdC1mYWxsdGhyb3VnaCIgXQorICB9
Cit9CisKK2Z1enplcl90ZXN0KCJqc29uY3BwX2Z1enplciIpIHsKKyAgc291cmNlcyA9IFsKKyAg
ICAiZnV6emVycy9qc29uX2Z1enplci5jYyIsCisgIF0KKworICBkZXBzID0gWworICAgICI6anNv
bmNwcCIsCisgIF0KKworICBpbmNsdWRlX2RpcnMgPSBbICJnZW5lcmF0ZWQiIF0KKworICBkaWN0
ID0gIi8vdGVzdGluZy9saWJmdXp6ZXIvZnV6emVycy9kaWN0cy9qc29uLmRpY3QiCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvT1dORVJTIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL09XTkVSUwppbmRleCA0ZmIyZmVkMDdiOTEzY2YyYmE5MmY5Y2E2YWJjZjJh
NTcxODY2ZjhlLi5mMGU3MzU0NDI1NDI3NTY3MGNmNGVhYTkxNTcyZTg3ZTM5MjJkNzQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvT1dORVJTCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9PV05FUlMKQEAgLTEsMiArMSwzIEBACi1wdGhhdGNoZXJAY2hyb21p
dW0ub3JnCi1zYmNAY2hyb21pdW0ub3JnCitqb3BoYmFAY2hyb21pdW0ub3JnCisKKyMgQ09NUE9O
RU5UOiBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9SRUFETUUuY2hyb21pdW0gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvUkVBRE1FLmNocm9taXVt
CmluZGV4IDVlN2RhYzYwZTU4NjYyMjI0NzY4NzgyZGZjNjM2ZGIzNWU2YTZjY2MuLjQ4YmM1NDNm
NDE4ZGVlYWFjM2RjYTc0Nzg0YjRlMTViZDZjOTlhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9SRUFETUUuY2hyb21p
dW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL1JFQURNRS5jaHJvbWl1bQpAQCAtNiwxMiArNiwxMSBAQCBMaWNlbnNlIEZpbGU6IExJ
Q0VOU0UKIFNlY3VyaXR5IENyaXRpY2FsOiB5ZXMKIAogRGVzY3JpcHRpb246Ci1UaGUgbGliamlu
Z2xlL3dlYnJ0Yy9saWJsb3Vpc19uYWNsIHVzZXMganNvbmNwcCBmb3Igc2lnbmFsaW5nIG1lc3Nh
Z2UKLXNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gVGhpcyBsaWJyYXJ5IGlzIGFs
c28gc2hpcHBlZCBpbiBOYUNsCi1TREsgYW5kIHVzZWQgaW4gc2V2ZXJhbCBleGFtcGxlcy4KK0pz
b25DcHAgaXMgdXNlZCBieSBtdWx0aXBsZSBwcm9qZWN0cyBmb3IgcGFyc2luZyBhbmQgZ2VuZXJh
dGluZyBKU09OIGRhdGEuIFRoaXMKK3Byb2plY3QgaXMgbWlycm9yZWQgaGVyZSBmcm9tIHRoZSBw
dWJsaWMgR2l0SHViIHByb2plY3QsIHdpdGggYSBjdXN0b20gQlVJTEQuZ24KK3RvIGFsbG93IGZv
ciBidWlsZGluZyB3aXRoIG91ciBOaW5qYSArIEdOIGNvbmZpZ3VyYXRpb24uIFRoZSBtYWluIHBy
b2plY3QgdXNlcworTWVzb24gb3IgQ01ha2UgZm9yIGJ1aWxkaW5nLgogCi1Mb2NhbCBtb2RpZmlj
YXRpb25zOgotVGhlIG92ZXJyaWRlcyBhcmUgdXNlZCB0byBlbGltaW5hdGUgc3RhdGljIGluaXRp
YWxpemVycyBpbiBqc29uX3ZhbHVlLmNwcCBhbmQKLWpzb25fcmVhZGVyLmNwcCBhZGRzIGluY2x1
ZGVzIGZvciA8c3RyaW5nPiBhbmQgPGlzdHJlYW0+IHRvIGJ1aWxkIG9uIGxpYmMrKwotKGh0dHBz
Oi8vbGx2bS5vcmcvUFIyNTIzMiksIGFuZCB0byBjaGFuZ2Ugc29tZSBvbmUtYml0IGJpdCBmaWVs
ZHMgdG8gdW5zaWduZWQKLXNvIHRoYXQgdGhleSBjYW4gaG9sZCB0aGUgJzEnIHZhbHVlcyB0aGF0
IGFyZSBzdG9yZWQgaW4gdGhlbS4KK05vdGU6IHRvIHVwZGF0ZSB0aGlzIHByb2plY3QgdG8gYSBu
ZXcgdmVyc2lvbiwgcmVnZW5lcmF0aW5nIHRoZSB2ZXJzaW9uLmggaGVhZGVyCitpcyByZXF1aXJl
ZC4gVGhpcyBjYW4gYmUgZG9uZSBieSBpbnN0YWxsaW5nIGVpdGhlciBDTWFrZSBvciBNZXNvbiwg
YnVpbGRpbmcgdGhlCitwcm9qZWN0LCBhbmQgY29weWluZyB0aGUgZ2VuZXJhdGVkIHZlcnNpb24u
aCB0byB0aGUgZ2VuZXJhdGVkLyBzdWJmb2xkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvZnV6emVycy9qc29uX2Z1
enplci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9mdXp6ZXJzL2pzb25fZnV6emVyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyM2I2NzBkOWI1N2Yw
ZDBiYjYwZDA4YTJiYmUzOGY1NTJjZGZiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvZnV6emVycy9qc29u
X2Z1enplci5jYwpAQCAtMCwwICsxLDczIEBACisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgQ2hyb21p
dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvLworLy8gSnNvbkNwcCBmdXp6aW5nIHdyYXBwZXIg
dG8gaGVscCB3aXRoIGF1dG9tYXRlZCBmdXp6IHRlc3RpbmcuCisKKyNpbmNsdWRlIDxzdGRpbnQu
aD4KKyNpbmNsdWRlIDxhcnJheT4KKyNpbmNsdWRlIDxjbGltaXRzPgorI2luY2x1ZGUgPGNzdGRp
bz4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSAidGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2pzb24uaCIKKworbmFtZXNwYWNl
IHsKKy8vIEpzb25DcHAgaGFzIGEgZmV3IGRpZmZlcmVudCBwYXJzaW5nIG9wdGlvbnMuIFRoZSBj
b2RlIGJlbG93IG1ha2VzIHN1cmUgdGhhdAorLy8gdGhlIG1vc3QgaW50ZXJzdGluZyB2YXJpYW50
cyBhcmUgdGVzdGVkLgorZW51bSB7IGtCdWlsZGVyQ29uZmlnRGVmYXVsdCA9IDAsIGtCdWlsZGVy
Q29uZmlnU3RyaWN0LCBrTnVtQnVpbGRlckNvbmZpZyB9OworfSAgLy8gbmFtZXNwYWNlCisKK3N0
YXRpYyBjb25zdCBzdGQ6OmFycmF5PEpzb246OkNoYXJSZWFkZXJCdWlsZGVyLCBrTnVtQnVpbGRl
ckNvbmZpZz4mCitJbml0aWFsaXplKCkgeworICBzdGF0aWMgc3RkOjphcnJheTxKc29uOjpDaGFy
UmVhZGVyQnVpbGRlciwga051bUJ1aWxkZXJDb25maWc+IGJ1aWxkZXJze307CisKKyAgSnNvbjo6
Q2hhclJlYWRlckJ1aWxkZXI6OnN0cmljdE1vZGUoCisgICAgICAmYnVpbGRlcnNba0J1aWxkZXJD
b25maWdTdHJpY3RdLnNldHRpbmdzXyk7CisKKyAgcmV0dXJuIGJ1aWxkZXJzOworfQorCitleHRl
cm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNp
emVfdCBzaXplKSB7CisgIGNvbnN0IGF1dG8mIHJlYWRlcl9idWlsZGVycyA9IEluaXRpYWxpemUo
KTsKKworICBmb3IgKGNvbnN0IGF1dG8mIHJlYWRlcl9idWlsZGVyIDogcmVhZGVyX2J1aWxkZXJz
KSB7CisgICAgLy8gUGFyc2UgSnNvbi4KKyAgICBhdXRvIHJlYWRlciA9CisgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxKc29uOjpDaGFyUmVhZGVyPihyZWFkZXJfYnVpbGRlci5uZXdDaGFyUmVhZGVy
KCkpOworICAgIEpzb246OlZhbHVlIHJvb3Q7CisgICAgYm9vbCByZXMgPSByZWFkZXItPnBhcnNl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhICsgc2l6ZSksICZy
b290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyIC8qIGVycnMgKi8pOwor
ICAgIGlmICghcmVzKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisKKyAgICAvLyBXcml0ZSBh
bmQgcmUtcmVhZCBqc29uLgorICAgIGNvbnN0IEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXIgd3Jp
dGVyX2J1aWxkZXI7CisgICAgYXV0byB3cml0ZXIgPQorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SnNvbjo6U3RyZWFtV3JpdGVyPih3cml0ZXJfYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7Cisg
ICAgc3RkOjpzdHJpbmdzdHJlYW0gb3V0X3N0cmVhbTsKKyAgICB3cml0ZXItPndyaXRlKHJvb3Qs
ICZvdXRfc3RyZWFtKTsKKyAgICBzdGQ6OnN0cmluZyBvdXRwdXRfanNvbiA9IG91dF9zdHJlYW0u
c3RyKCk7CisKKyAgICBKc29uOjpWYWx1ZSByb290X2FnYWluOworICAgIHJlcyA9IHJlYWRlci0+
cGFyc2Uob3V0cHV0X2pzb24uZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
X2pzb24uZGF0YSgpICsgb3V0cHV0X2pzb24ubGVuZ3RoKCksICZyb290X2FnYWluLAorICAgICAg
ICAgICAgICAgICAgICAgICAgbnVsbHB0ciAvKiBlcnJzICovKTsKKyAgICBpZiAoIXJlcykgewor
ICAgICAgY29udGludWU7CisgICAgfQorCisgICAgLy8gUnVuIGVxdWFsaXR5IHRlc3QuCisgICAg
Ly8gTm90ZTogVGhpcyBhY3R1YWxseSBjYXVzZXMgdGhlIEpzb246OlZhbHVlIHRyZWUgdG8gYmUg
dHJhdmVyc2VkIGFuZCBhbGwKKyAgICAvLyB0aGUgdmFsdWVzIHRvIGJlIGRlcmVmZXJlbmNlZCAo
dW50aWwgdHdvIG9mIHRoZW0gYXJlIGZvdW5kIG5vdCBlcXVhbCksCisgICAgLy8gd2hpY2ggaXMg
Z3JlYXQgZm9yIGRldGVjdGluZyBtZW1vcnkgY29ycnVwdGlvbiBidWdzIHdoZW4gY29tcGlsZWQg
d2l0aAorICAgIC8vIEFkZHJlc3NTYW5pdGl6ZXIuIFRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlz
b24gaXMgaWdub3JlZCwgYXMgaXQgaXMKKyAgICAvLyBleHBlY3RlZCB0aGF0IGJvdGggdGhlIG9y
aWdpbmFsIGFuZCB0aGUgcmUtcmVhZCB2ZXJzaW9uIHdpbGwgZGlmZmVyIGZyb20KKyAgICAvLyB0
aW1lIHRvIHRpbWUgKGUuZy4gZHVlIHRvIGZsb2F0aW5nIHBvaW50IGFjY3VyYWN5IGxvc3MpLgor
ICAgICh2b2lkKShyb290ID09IHJvb3RfYWdhaW4pOworICB9CisKKyAgcmV0dXJuIDA7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvZ2VuZXJhdGVkL3ZlcnNpb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9nZW5lcmF0ZWQvdmVyc2lvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlhNzYwODIxZTI4M2Q1ZTA3ZTkwNmFkMThlODNjODljM2MwYWIzMzUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvZ2VuZXJhdGVkL3ZlcnNpb24uaApAQCAtMCwwICsxLDIyIEBACisvLyBETyBOT1QgRURJ
VC4gVGhpcyBmaWxlIChhbmQgInZlcnNpb24iKSBpcyBhIHRlbXBsYXRlIHVzZWQgYnkgdGhlIGJ1
aWxkIHN5c3RlbQorLy8gKGVpdGhlciBDTWFrZSBvciBNZXNvbikgdG8gZ2VuZXJhdGUgYSAidmVy
c2lvbi5oIiBoZWFkZXIgZmlsZS4KKyNpZm5kZWYgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKyNk
ZWZpbmUgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKworI2RlZmluZSBKU09OQ1BQX1ZFUlNJT05f
U1RSSU5HICIxLjkuMCIKKyNkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX01BSk9SIDEKKyNkZWZpbmUg
SlNPTkNQUF9WRVJTSU9OX01JTk9SIDkKKyNkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1BBVENIIDAK
KyNkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1FVQUxJRklFUgorI2RlZmluZSBKU09OQ1BQX1ZFUlNJ
T05fSEVYQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgKChKU09O
Q1BQX1ZFUlNJT05fTUFKT1IgPDwgMjQpIHwgKEpTT05DUFBfVkVSU0lPTl9NSU5PUiA8PCAxNikg
fCBcCisgICAoSlNPTkNQUF9WRVJTSU9OX1BBVENIIDw8IDgpKQorCisjaWZkZWYgSlNPTkNQUF9V
U0lOR19TRUNVUkVfTUVNT1JZCisjdW5kZWYgSlNPTkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZCisj
ZW5kaWYKKyNkZWZpbmUgSlNPTkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZIDAKKy8vIElmIG5vbi16
ZXJvLCB0aGUgbGlicmFyeSB6ZXJvZXMgYW55IG1lbW9yeSB0aGF0IGl0IGhhcyBhbGxvY2F0ZWQg
YmVmb3JlCisvLyBpdCBmcmVlcyBpdHMgbWVtb3J5LgorCisjZW5kaWYgIC8vIEpTT05fVkVSU0lP
Tl9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL2luY2x1ZGUvanNvbi92YWx1ZS5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL292
ZXJyaWRlcy9pbmNsdWRlL2pzb24vdmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTcwNzI2MDIwMzRlODFiNjc0ZTM1N2NlZmRkY2E0NWVkNTc4NDczYi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL2luY2x1ZGUvanNvbi92
YWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTExMSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAw
Ny0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91
ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0jaWZuZGVmIENQUFRM
X0pTT05fSF9JTkNMVURFRAotIyBkZWZpbmUgQ1BQVExfSlNPTl9IX0lOQ0xVREVECi0KLSNpZiAh
ZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSAidGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmlu
ZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgPHN0cmluZz4KLSMgaW5jbHVkZSA8
dmVjdG9yPgotCi0jIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotIyAgaW5jbHVkZSA8
bWFwPgotIyBlbHNlCi0jICBpbmNsdWRlIDxjcHB0bC9zbWFsbG1hcC5oPgotIyBlbmRpZgotIyBp
ZmRlZiBKU09OX1VTRV9DUFBUTAotIyAgaW5jbHVkZSA8Y3BwdGwvZm9yd2FyZHMuaD4KLSMgZW5k
aWYKLQotLyoqIFxicmllZiBKU09OIChKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbikuCi0gKi8K
LW5hbWVzcGFjZSBKc29uIHsKLQotICAgLyoqIFxicmllZiBUeXBlIG9mIHRoZSB2YWx1ZSBoZWxk
IGJ5IGEgVmFsdWUgb2JqZWN0LgotICAgICovCi0gICBlbnVtIFZhbHVlVHlwZQotICAgewotICAg
ICAgbnVsbFZhbHVlID0gMCwgLy8vPCAnbnVsbCcgdmFsdWUKLSAgICAgIGludFZhbHVlLCAgICAg
IC8vLzwgc2lnbmVkIGludGVnZXIgdmFsdWUKLSAgICAgIHVpbnRWYWx1ZSwgICAgIC8vLzwgdW5z
aWduZWQgaW50ZWdlciB2YWx1ZQotICAgICAgcmVhbFZhbHVlLCAgICAgLy8vPCBkb3VibGUgdmFs
dWUKLSAgICAgIHN0cmluZ1ZhbHVlLCAgIC8vLzwgVVRGLTggc3RyaW5nIHZhbHVlCi0gICAgICBi
b29sZWFuVmFsdWUsICAvLy88IGJvb2wgdmFsdWUKLSAgICAgIGFycmF5VmFsdWUsICAgIC8vLzwg
YXJyYXkgdmFsdWUgKG9yZGVyZWQgbGlzdCkKLSAgICAgIG9iamVjdFZhbHVlICAgIC8vLzwgb2Jq
ZWN0IHZhbHVlIChjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMpLgotICAgfTsKLQotICAg
ZW51bSBDb21tZW50UGxhY2VtZW50Ci0gICB7Ci0gICAgICBjb21tZW50QmVmb3JlID0gMCwgICAg
ICAgIC8vLzwgYSBjb21tZW50IHBsYWNlZCBvbiB0aGUgbGluZSBiZWZvcmUgYSB2YWx1ZQotICAg
ICAgY29tbWVudEFmdGVyT25TYW1lTGluZSwgICAvLy88IGEgY29tbWVudCBqdXN0IGFmdGVyIGEg
dmFsdWUgb24gdGhlIHNhbWUgbGluZQotICAgICAgY29tbWVudEFmdGVyLCAgICAgICAgICAgICAv
Ly88IGEgY29tbWVudCBvbiB0aGUgbGluZSBhZnRlciBhIHZhbHVlIChvbmx5IG1ha2Ugc2Vuc2Ug
Zm9yIHJvb3QgdmFsdWUpCi0gICAgICBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQKLSAgIH07Ci0K
LS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotLy8gICB0eXBlZGVmIENwcFRMOjpBbnlFbnVtZXJh
dG9yPGNvbnN0IGNoYXIgKj4gRW51bU1lbWJlck5hbWVzOwotLy8gICB0eXBlZGVmIENwcFRMOjpB
bnlFbnVtZXJhdG9yPGNvbnN0IFZhbHVlICY+IEVudW1WYWx1ZXM7Ci0vLyMgZW5kaWYKLQotICAg
LyoqIFxicmllZiBMaWdodHdlaWdodCB3cmFwcGVyIHRvIHRhZyBzdGF0aWMgc3RyaW5nLgotICAg
ICoKLSAgICAqIFZhbHVlIGNvbnN0cnVjdG9yIGFuZCBvYmplY3RWYWx1ZSBtZW1iZXIgYXNzaWdu
ZW1lbnQgdGFrZXMgYWR2YW50YWdlIG9mIHRoZQotICAgICogU3RhdGljU3RyaW5nIGFuZCBhdm9p
ZCB0aGUgY29zdCBvZiBzdHJpbmcgZHVwbGljYXRpb24gd2hlbiBzdG9yaW5nIHRoZQotICAgICog
c3RyaW5nIG9yIHRoZSBtZW1iZXIgbmFtZS4KLSAgICAqCi0gICAgKiBFeGFtcGxlIG9mIHVzYWdl
OgotICAgICogXGNvZGUKLSAgICAqIEpzb246OlZhbHVlIGFWYWx1ZSggU3RhdGljU3RyaW5nKCJz
b21lIHRleHQiKSApOwotICAgICogSnNvbjo6VmFsdWUgb2JqZWN0OwotICAgICogc3RhdGljIGNv
bnN0IFN0YXRpY1N0cmluZyBjb2RlKCJjb2RlIik7Ci0gICAgKiBvYmplY3RbY29kZV0gPSAxMjM0
OwotICAgICogXGVuZGNvZGUKLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgU3RhdGljU3RyaW5n
Ci0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICBleHBsaWNpdCBTdGF0aWNTdHJpbmcoIGNvbnN0IGNo
YXIgKmN6c3RyaW5nICkKLSAgICAgICAgIDogc3RyXyggY3pzdHJpbmcgKQotICAgICAgewotICAg
ICAgfQotCi0gICAgICBvcGVyYXRvciBjb25zdCBjaGFyICooKSBjb25zdAotICAgICAgewotICAg
ICAgICAgcmV0dXJuIHN0cl87Ci0gICAgICB9Ci0KLSAgICAgIGNvbnN0IGNoYXIgKmNfc3RyKCkg
Y29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBzdHJfOwotICAgICAgfQotCi0gICBwcml2
YXRlOgotICAgICAgY29uc3QgY2hhciAqc3RyXzsKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgUmVw
cmVzZW50cyBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IHZhbHVlLgot
ICAgICoKLSAgICAqIFRoaXMgY2xhc3MgaXMgYSBkaXNjcmltaW5hdGVkIHVuaW9uIHdyYXBwZXIg
dGhhdCBjYW4gcmVwcmVzZW50cyBhOgotICAgICogLSBzaWduZWQgaW50ZWdlciBbcmFuZ2U6IFZh
bHVlOjptaW5JbnQgLSBWYWx1ZTo6bWF4SW50XQotICAgICogLSB1bnNpZ25lZCBpbnRlZ2VyIChy
YW5nZTogMCAtIFZhbHVlOjptYXhVSW50KQotICAgICogLSBkb3VibGUKLSAgICAqIC0gVVRGLTgg
c3RyaW5nCi0gICAgKiAtIGJvb2xlYW4KLSAgICAqIC0gJ251bGwnCi0gICAgKiAtIGFuIG9yZGVy
ZWQgbGlzdCBvZiBWYWx1ZQotICAgICogLSBjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMg
KGphdmFzY3JpcHQgb2JqZWN0KQotICAgICoKLSAgICAqIFRoZSB0eXBlIG9mIHRoZSBoZWxkIHZh
bHVlIGlzIHJlcHJlc2VudGVkIGJ5IGEgI1ZhbHVlVHlwZSBhbmQgCi0gICAgKiBjYW4gYmUgb2J0
YWluZWQgdXNpbmcgdHlwZSgpLgotICAgICoKLSAgICAqIHZhbHVlcyBvZiBhbiAjb2JqZWN0VmFs
dWUgb3IgI2FycmF5VmFsdWUgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nIG9wZXJhdG9yW10oKSBtZXRo
b2RzLiAKLSAgICAqIE5vbiBjb25zdCBtZXRob2RzIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUg
dGhlIGEgI251bGxWYWx1ZSBlbGVtZW50IAotICAgICogaWYgaXQgZG9lcyBub3QgZXhpc3QuIAot
ICAgICogVGhlIHNlcXVlbmNlIG9mIGFuICNhcnJheVZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxs
eSByZXNpemUgYW5kIGluaXRpYWxpemVkIAotICAgICogd2l0aCAjbnVsbFZhbHVlLiByZXNpemUo
KSBjYW4gYmUgdXNlZCB0byBlbmxhcmdlIG9yIHRydW5jYXRlIGFuICNhcnJheVZhbHVlLgotICAg
ICoKLSAgICAqIFRoZSBnZXQoKSBtZXRob2RzIGNhbiBiZSB1c2VkIHRvIG9idGFuaXMgZGVmYXVs
dCB2YWx1ZSBpbiB0aGUgY2FzZSB0aGUgcmVxdWlyZWQgZWxlbWVudAotICAgICogZG9lcyBub3Qg
ZXhpc3QuCi0gICAgKgotICAgICogSXQgaXMgcG9zc2libGUgdG8gaXRlcmF0ZSBvdmVyIHRoZSBs
aXN0IG9mIGEgI29iamVjdFZhbHVlIHZhbHVlcyB1c2luZyAKLSAgICAqIHRoZSBnZXRNZW1iZXJO
YW1lcygpIG1ldGhvZC4KLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWUgCi0gICB7Ci0g
ICAgICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7Ci0jIGlmZGVmIEpTT05fVkFMVUVf
VVNFX0lOVEVSTkFMX01BUAotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlSW50ZXJuYWxMaW5rOwot
ICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlSW50ZXJuYWxNYXA7Ci0jIGVuZGlmCi0gICBwdWJsaWM6
Ci0gICAgICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBNZW1iZXJzOwotICAgICAg
dHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yOwotICAgICAgdHlwZWRlZiBWYWx1ZUNvbnN0
SXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Ci0gICAgICB0eXBlZGVmIEpzb246OlVJbnQgVUludDsK
LSAgICAgIHR5cGVkZWYgSnNvbjo6SW50IEludDsKLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2
NCkKLSAgICAgIHR5cGVkZWYgSnNvbjo6VUludDY0IFVJbnQ2NDsKLSAgICAgIHR5cGVkZWYgSnNv
bjo6SW50NjQgSW50NjQ7Ci0jZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgICAg
IHR5cGVkZWYgSnNvbjo6TGFyZ2VzdEludCBMYXJnZXN0SW50OwotICAgICAgdHlwZWRlZiBKc29u
OjpMYXJnZXN0VUludCBMYXJnZXN0VUludDsKLSAgICAgIHR5cGVkZWYgSnNvbjo6QXJyYXlJbmRl
eCBBcnJheUluZGV4OwotCi0gICAgICBzdGF0aWMgY29uc3QgVmFsdWUmIG51bGw7Ci0gICAgICAv
Ly8gTWluaW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBK
c29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBMYXJnZXN0SW50IG1pbkxhcmdlc3RJbnQ7
Ci0gICAgICAvLy8gTWF4aW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9y
ZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBMYXJnZXN0SW50IG1heExh
cmdlc3RJbnQ7Ci0gICAgICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQg
Y2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IExhcmdl
c3RVSW50IG1heExhcmdlc3RVSW50OwotCi0gICAgICAvLy8gTWluaW11bSBzaWduZWQgaW50IHZh
bHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNv
bnN0IEludCBtaW5JbnQ7Ci0gICAgICAvLy8gTWF4aW11bSBzaWduZWQgaW50IHZhbHVlIHRoYXQg
Y2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IEludCBt
YXhJbnQ7Ci0gICAgICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUg
c3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgVUludCBtYXhVSW50
OwotCi0jIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICAgICAvLy8gTWluaW11bSBzaWdu
ZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUu
Ci0gICAgICBzdGF0aWMgY29uc3QgSW50NjQgbWluSW50NjQ7Ci0gICAgICAvLy8gTWF4aW11bSBz
aWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFs
dWUuCi0gICAgICBzdGF0aWMgY29uc3QgSW50NjQgbWF4SW50NjQ7Ci0gICAgICAvLy8gTWF4aW11
bSB1bnNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29u
OjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBVSW50NjQgbWF4VUludDY0OwotI2VuZGlmIC8v
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0KLSAgIHByaXZhdGU6Ci0jaWZuZGVmIEpTT05DUFBf
RE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KLSMgaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVS
TkFMX01BUAotICAgICAgY2xhc3MgQ1pTdHJpbmcgCi0gICAgICB7Ci0gICAgICBwdWJsaWM6Ci0g
ICAgICAgICBlbnVtIER1cGxpY2F0aW9uUG9saWN5IAotICAgICAgICAgewotICAgICAgICAgICAg
bm9EdXBsaWNhdGlvbiA9IDAsCi0gICAgICAgICAgICBkdXBsaWNhdGUsCi0gICAgICAgICAgICBk
dXBsaWNhdGVPbkNvcHkKLSAgICAgICAgIH07Ci0gICAgICAgICBDWlN0cmluZyggQXJyYXlJbmRl
eCBpbmRleCApOwotICAgICAgICAgQ1pTdHJpbmcoIGNvbnN0IGNoYXIgKmNzdHIsIER1cGxpY2F0
aW9uUG9saWN5IGFsbG9jYXRlICk7Ci0gICAgICAgICBDWlN0cmluZyggY29uc3QgQ1pTdHJpbmcg
Jm90aGVyICk7Ci0gICAgICAgICB+Q1pTdHJpbmcoKTsKLSAgICAgICAgIENaU3RyaW5nICZvcGVy
YXRvciA9KCBjb25zdCBDWlN0cmluZyAmb3RoZXIgKTsKLSAgICAgICAgIGJvb2wgb3BlcmF0b3I8
KCBjb25zdCBDWlN0cmluZyAmb3RoZXIgKSBjb25zdDsKLSAgICAgICAgIGJvb2wgb3BlcmF0b3I9
PSggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkgY29uc3Q7Ci0gICAgICAgICBBcnJheUluZGV4IGlu
ZGV4KCkgY29uc3Q7Ci0gICAgICAgICBjb25zdCBjaGFyICpjX3N0cigpIGNvbnN0OwotICAgICAg
ICAgYm9vbCBpc1N0YXRpY1N0cmluZygpIGNvbnN0OwotICAgICAgcHJpdmF0ZToKLSAgICAgICAg
IHZvaWQgc3dhcCggQ1pTdHJpbmcgJm90aGVyICk7Ci0gICAgICAgICBjb25zdCBjaGFyICpjc3Ry
XzsKLSAgICAgICAgIEFycmF5SW5kZXggaW5kZXhfOwotICAgICAgfTsKLQotICAgcHVibGljOgot
IyAgaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCi0gICAgICB0eXBlZGVmIHN0ZDo6bWFw
PENaU3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOwotIyAgZWxzZQotICAgICAgdHlwZWRlZiBD
cHBUTDo6U21hbGxNYXA8Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7Ci0jICBlbmRpZiAv
LyBpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKLSMgZW5kaWYgLy8gaWZuZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotI2VuZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENM
VURFX0lNUExFTUVOVEFUSU9OCi0KLSAgIHB1YmxpYzoKLSAgICAgIC8qKiBcYnJpZWYgQ3JlYXRl
IGEgZGVmYXVsdCBWYWx1ZSBvZiB0aGUgZ2l2ZW4gdHlwZS4KLQotICAgICAgICBUaGlzIGlzIGEg
dmVyeSB1c2VmdWwgY29uc3RydWN0b3IuCi0gICAgICAgIFRvIGNyZWF0ZSBhbiBlbXB0eSBhcnJh
eSwgcGFzcyBhcnJheVZhbHVlLgotICAgICAgICBUbyBjcmVhdGUgYW4gZW1wdHkgb2JqZWN0LCBw
YXNzIG9iamVjdFZhbHVlLgotICAgICAgICBBbm90aGVyIFZhbHVlIGNhbiB0aGVuIGJlIHNldCB0
byB0aGlzIG9uZSBieSBhc3NpZ25tZW50LgotICAgIFRoaXMgaXMgdXNlZnVsIHNpbmNlIGNsZWFy
KCkgYW5kIHJlc2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgotCi0gICAgICAgIEV4YW1wbGVz
OgotICAgIFxjb2RlCi0gICAgSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8gbnVsbAotICAgIEpz
b246OlZhbHVlIGFycl92YWx1ZShKc29uOjphcnJheVZhbHVlKTsgLy8gW10KLSAgICBKc29uOjpW
YWx1ZSBvYmpfdmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpOyAvLyB7fQotICAgIFxlbmRjb2RlCi0g
ICAgICAqLwotICAgICAgVmFsdWUoIFZhbHVlVHlwZSB0eXBlID0gbnVsbFZhbHVlICk7Ci0gICAg
ICBWYWx1ZSggSW50IHZhbHVlICk7Ci0gICAgICBWYWx1ZSggVUludCB2YWx1ZSApOwotI2lmIGRl
ZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICAgICBWYWx1ZSggSW50NjQgdmFsdWUgKTsKLSAgICAg
IFZhbHVlKCBVSW50NjQgdmFsdWUgKTsKLSNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lO
VDY0KQotICAgICAgVmFsdWUoIGRvdWJsZSB2YWx1ZSApOwotICAgICAgVmFsdWUoIGNvbnN0IGNo
YXIgKnZhbHVlICk7Ci0gICAgICBWYWx1ZSggY29uc3QgY2hhciAqYmVnaW5WYWx1ZSwgY29uc3Qg
Y2hhciAqZW5kVmFsdWUgKTsKLSAgICAgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIHZhbHVlIGZy
b20gYSBzdGF0aWMgc3RyaW5nLgotCi0gICAgICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBj
b25zdHJ1Y3RvciBidXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgotICAgICAgICog
aW50ZXJuYWwgc3RvcmFnZS4gVGhlIGdpdmVuIHN0cmluZyBtdXN0IHJlbWFpbiBhbGl2ZSBhZnRl
ciB0aGUgY2FsbCB0byB0aGlzCi0gICAgICAgKiBjb25zdHJ1Y3Rvci4KLSAgICAgICAqIEV4YW1w
bGUgb2YgdXNhZ2U6Ci0gICAgICAgKiBcY29kZQotICAgICAgICogSnNvbjo6VmFsdWUgYVZhbHVl
KCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gICAgICAgKiBcZW5kY29kZQotICAgICAg
ICovCi0gICAgICBWYWx1ZSggY29uc3QgU3RhdGljU3RyaW5nICZ2YWx1ZSApOwotICAgICAgVmFs
dWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YWx1ZSApOwotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAot
ICAgICAgVmFsdWUoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAmdmFsdWUgKTsKLSMgZW5kaWYK
LSAgICAgIFZhbHVlKCBib29sIHZhbHVlICk7Ci0gICAgICBWYWx1ZSggY29uc3QgVmFsdWUgJm90
aGVyICk7Ci0gICAgICB+VmFsdWUoKTsKLQotICAgICAgVmFsdWUgJm9wZXJhdG9yPSggY29uc3Qg
VmFsdWUgJm90aGVyICk7Ci0gICAgICAvLy8gU3dhcCB2YWx1ZXMuCi0gICAgICAvLy8gXG5vdGUg
Q3VycmVudGx5LCBjb21tZW50cyBhcmUgaW50ZW50aW9uYWxseSBub3Qgc3dhcHBlZCwgZm9yCi0g
ICAgICAvLy8gYm90aCBsb2dpYyBhbmQgZWZmaWNpZW5jeS4KLSAgICAgIHZvaWQgc3dhcCggVmFs
dWUgJm90aGVyICk7Ci0KLSAgICAgIFZhbHVlVHlwZSB0eXBlKCkgY29uc3Q7Ci0KLSAgICAgIGJv
b2wgb3BlcmF0b3IgPCggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAgICBib29sIG9w
ZXJhdG9yIDw9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLSAgICAgIGJvb2wgb3BlcmF0
b3IgPj0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotICAgICAgYm9vbCBvcGVyYXRvciA+
KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgYm9vbCBvcGVyYXRvciA9PSgg
Y29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAgICBib29sIG9wZXJhdG9yICE9KCBjb25z
dCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgaW50IGNvbXBhcmUoIGNvbnN0IFZhbHVl
ICZvdGhlciApIGNvbnN0OwotCi0gICAgICBjb25zdCBjaGFyICphc0NTdHJpbmcoKSBjb25zdDsK
LSAgICAgIHN0ZDo6c3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7Ci0jIGlmZGVmIEpTT05fVVNFX0NQ
UFRMCi0gICAgICBDcHBUTDo6Q29uc3RTdHJpbmcgYXNDb25zdFN0cmluZygpIGNvbnN0OwotIyBl
bmRpZgotICAgICAgSW50IGFzSW50KCkgY29uc3Q7Ci0gICAgICBVSW50IGFzVUludCgpIGNvbnN0
OwotI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICAgICBJbnQ2NCBhc0ludDY0KCkgY29u
c3Q7Ci0gICAgICBVSW50NjQgYXNVSW50NjQoKSBjb25zdDsKLSNlbmRpZiAvLyBpZiBkZWZpbmVk
KEpTT05fSEFTX0lOVDY0KQotICAgICAgTGFyZ2VzdEludCBhc0xhcmdlc3RJbnQoKSBjb25zdDsK
LSAgICAgIExhcmdlc3RVSW50IGFzTGFyZ2VzdFVJbnQoKSBjb25zdDsKLSAgICAgIGZsb2F0IGFz
RmxvYXQoKSBjb25zdDsKLSAgICAgIGRvdWJsZSBhc0RvdWJsZSgpIGNvbnN0OwotICAgICAgYm9v
bCBhc0Jvb2woKSBjb25zdDsKLQotICAgICAgYm9vbCBpc051bGwoKSBjb25zdDsKLSAgICAgIGJv
b2wgaXNCb29sKCkgY29uc3Q7Ci0gICAgICBib29sIGlzSW50KCkgY29uc3Q7Ci0gICAgICBib29s
IGlzSW50NjQoKSBjb25zdDsKLSAgICAgIGJvb2wgaXNVSW50KCkgY29uc3Q7Ci0gICAgICBib29s
IGlzVUludDY0KCkgY29uc3Q7Ci0gICAgICBib29sIGlzSW50ZWdyYWwoKSBjb25zdDsKLSAgICAg
IGJvb2wgaXNEb3VibGUoKSBjb25zdDsKLSAgICAgIGJvb2wgaXNOdW1lcmljKCkgY29uc3Q7Ci0g
ICAgICBib29sIGlzU3RyaW5nKCkgY29uc3Q7Ci0gICAgICBib29sIGlzQXJyYXkoKSBjb25zdDsK
LSAgICAgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKLQotICAgICAgYm9vbCBpc0NvbnZlcnRpYmxl
VG8oIFZhbHVlVHlwZSBvdGhlciApIGNvbnN0OwotCi0gICAgICAvLy8gTnVtYmVyIG9mIHZhbHVl
cyBpbiBhcnJheSBvciBvYmplY3QKLSAgICAgIEFycmF5SW5kZXggc2l6ZSgpIGNvbnN0OwotCi0g
ICAgICAvLy8gXGJyaWVmIFJldHVybiB0cnVlIGlmIGVtcHR5IGFycmF5LCBlbXB0eSBvYmplY3Qs
IG9yIG51bGw7Ci0gICAgICAvLy8gb3RoZXJ3aXNlLCBmYWxzZS4KLSAgICAgIGJvb2wgZW1wdHko
KSBjb25zdDsKLQotICAgICAgLy8vIFJldHVybiBpc051bGwoKQotICAgICAgYm9vbCBvcGVyYXRv
ciEoKSBjb25zdDsKLQotICAgICAgLy8vIFJlbW92ZSBhbGwgb2JqZWN0IG1lbWJlcnMgYW5kIGFy
cmF5IGVsZW1lbnRzLgotICAgICAgLy8vIFxwcmUgdHlwZSgpIGlzIGFycmF5VmFsdWUsIG9iamVj
dFZhbHVlLCBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2Vk
Ci0gICAgICB2b2lkIGNsZWFyKCk7Ci0KLSAgICAgIC8vLyBSZXNpemUgdGhlIGFycmF5IHRvIHNp
emUgZWxlbWVudHMuIAotICAgICAgLy8vIE5ldyBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8g
bnVsbC4KLSAgICAgIC8vLyBNYXkgb25seSBiZSBjYWxsZWQgb24gbnVsbFZhbHVlIG9yIGFycmF5
VmFsdWUuCi0gICAgICAvLy8gXHByZSB0eXBlKCkgaXMgYXJyYXlWYWx1ZSBvciBudWxsVmFsdWUK
LSAgICAgIC8vLyBccG9zdCB0eXBlKCkgaXMgYXJyYXlWYWx1ZQotICAgICAgdm9pZCByZXNpemUo
IEFycmF5SW5kZXggc2l6ZSApOwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQg
KHplcm8gYmFzZWQgaW5kZXggKS4KLSAgICAgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgbGVz
cyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUgaW5zZXJ0ZWQKLSAgICAg
IC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBpbmRleCsxLgotICAgICAgLy8v
IChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRv
IGRpc3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0
YWtlcyBhIHN0cmluZy4pCi0gICAgICBWYWx1ZSAmb3BlcmF0b3JbXSggQXJyYXlJbmRleCBpbmRl
eCApOwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5k
ZXggKS4KLSAgICAgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgbGVzcyB0aGFuIGluZGV4IGVs
ZW1lbnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUgaW5zZXJ0ZWQKLSAgICAgIC8vLyBpbiB0aGUgYXJy
YXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBpbmRleCsxLgotICAgICAgLy8vIChZb3UgbWF5IG5lZWQg
dG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCi0g
ICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4p
Ci0gICAgICBWYWx1ZSAmb3BlcmF0b3JbXSggaW50IGluZGV4ICk7Ci0KLSAgICAgIC8vLyBBY2Nl
c3MgYW4gYXJyYXkgZWxlbWVudCAoemVybyBiYXNlZCBpbmRleCApCi0gICAgICAvLy8gKFlvdSBt
YXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGlu
Z3Vpc2gKLSAgICAgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEg
c3RyaW5nLikKLSAgICAgIGNvbnN0IFZhbHVlICZvcGVyYXRvcltdKCBBcnJheUluZGV4IGluZGV4
ICkgY29uc3Q7Ci0KLSAgICAgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAoemVybyBiYXNl
ZCBpbmRleCApCi0gICAgICAvLy8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8g
Z2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKLSAgICAgIC8vLyAgdGhpcyBmcm9tIHRo
ZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKLSAgICAgIGNvbnN0IFZhbHVlICZv
cGVyYXRvcltdKCBpbnQgaW5kZXggKSBjb25zdDsKLQotICAgICAgLy8vIElmIHRoZSBhcnJheSBj
b250YWlucyBhdCBsZWFzdCBpbmRleCsxIGVsZW1lbnRzLCByZXR1cm5zIHRoZSBlbGVtZW50IHZh
bHVlLCAKLSAgICAgIC8vLyBvdGhlcndpc2UgcmV0dXJucyBkZWZhdWx0VmFsdWUuCi0gICAgICBW
YWx1ZSBnZXQoIEFycmF5SW5kZXggaW5kZXgsIAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1
ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0gICAgICAvLy8gUmV0dXJuIHRydWUgaWYgaW5kZXgg
PCBzaXplKCkuCi0gICAgICBib29sIGlzVmFsaWRJbmRleCggQXJyYXlJbmRleCBpbmRleCApIGNv
bnN0OwotICAgICAgLy8vIFxicmllZiBBcHBlbmQgdmFsdWUgdG8gYXJyYXkgYXQgdGhlIGVuZC4K
LSAgICAgIC8vLwotICAgICAgLy8vIEVxdWl2YWxlbnQgdG8ganNvbnZhbHVlW2pzb252YWx1ZS5z
aXplKCldID0gdmFsdWU7Ci0gICAgICBWYWx1ZSAmYXBwZW5kKCBjb25zdCBWYWx1ZSAmdmFsdWUg
KTsKLQotICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEg
bnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gICAgICBWYWx1ZSAmb3BlcmF0b3Jb
XSggY29uc3QgY2hhciAqa2V5ICk7Ci0gICAgICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBi
eSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGggdGhhdCBuYW1l
LgotICAgICAgY29uc3QgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0
OwotICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVs
bCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gICAgICBWYWx1ZSAmb3BlcmF0b3JbXSgg
Y29uc3Qgc3RkOjpzdHJpbmcgJmtleSApOwotICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFs
dWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoIHRoYXQg
bmFtZS4KLSAgICAgIGNvbnN0IFZhbHVlICZvcGVyYXRvcltdKCBjb25zdCBzdGQ6OnN0cmluZyAm
a2V5ICkgY29uc3Q7Ci0gICAgICAvKiogXGJyaWVmIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkg
bmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0KLSAgICAg
ICAqIElmIHRoZSBvYmplY3QgYXMgbm8gZW50cnkgZm9yIHRoYXQgbmFtZSwgdGhlbiB0aGUgbWVt
YmVyIG5hbWUgdXNlZCB0byBzdG9yZQotICAgICAgICogdGhlIG5ldyBlbnRyeSBpcyBub3QgZHVw
bGljYXRlZC4KLSAgICAgICAqIEV4YW1wbGUgb2YgdXNlOgotICAgICAgICogXGNvZGUKLSAgICAg
ICAqIEpzb246OlZhbHVlIG9iamVjdDsKLSAgICAgICAqIHN0YXRpYyBjb25zdCBTdGF0aWNTdHJp
bmcgY29kZSgiY29kZSIpOwotICAgICAgICogb2JqZWN0W2NvZGVdID0gMTIzNDsKLSAgICAgICAq
IFxlbmRjb2RlCi0gICAgICAgKi8KLSAgICAgIFZhbHVlICZvcGVyYXRvcltdKCBjb25zdCBTdGF0
aWNTdHJpbmcgJmtleSApOwotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotICAgICAgLy8vIEFjY2Vz
cyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9l
cyBub3QgZXhpc3QuCi0gICAgICBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3QgQ3BwVEw6OkNvbnN0
U3RyaW5nICZrZXkgKTsKLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUs
IHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aCB0aGF0IG5hbWUuCi0gICAg
ICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXkg
KSBjb25zdDsKLSMgZW5kaWYKLSAgICAgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkg
aWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCi0gICAgICBWYWx1ZSBnZXQoIGNv
bnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFs
dWUgKSBjb25zdDsKLSAgICAgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQg
ZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCi0gICAgICBWYWx1ZSBnZXQoIGNvbnN0IHN0
ZDo6c3RyaW5nICZrZXksCi0gICAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFs
dWUgKSBjb25zdDsKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAgICAgIC8vLyBSZXR1cm4gdGhl
IG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCi0g
ICAgICBWYWx1ZSBnZXQoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5LAotICAgICAgICAg
ICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0jIGVuZGlmCi0gICAg
ICAvLy8gXGJyaWVmIFJlbW92ZSBhbmQgcmV0dXJuIHRoZSBuYW1lZCBtZW1iZXIuICAKLSAgICAg
IC8vLwotICAgICAgLy8vIERvIG5vdGhpbmcgaWYgaXQgZGlkIG5vdCBleGlzdC4KLSAgICAgIC8v
LyBccmV0dXJuIHRoZSByZW1vdmVkIFZhbHVlLCBvciBudWxsLgotICAgICAgLy8vIFxwcmUgdHlw
ZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQotICAgICAgLy8vIFxwb3N0IHR5cGUoKSBp
cyB1bmNoYW5nZWQKLSAgICAgIFZhbHVlIHJlbW92ZU1lbWJlciggY29uc3QgY2hhcioga2V5ICk7
Ci0gICAgICAvLy8gU2FtZSBhcyByZW1vdmVNZW1iZXIoY29uc3QgY2hhciopCi0gICAgICBWYWx1
ZSByZW1vdmVNZW1iZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKTsKLQotICAgICAgLy8vIFJl
dHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVyIG5hbWVkIGtleS4KLSAgICAgIGJv
b2wgaXNNZW1iZXIoIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0OwotICAgICAgLy8vIFJldHVybiB0
cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVyIG5hbWVkIGtleS4KLSAgICAgIGJvb2wgaXNN
ZW1iZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKSBjb25zdDsKLSMgaWZkZWYgSlNPTl9VU0Vf
Q1BQVEwKLSAgICAgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBu
YW1lZCBrZXkuCi0gICAgICBib29sIGlzTWVtYmVyKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcg
JmtleSApIGNvbnN0OwotIyBlbmRpZgotCi0gICAgICAvLy8gXGJyaWVmIFJldHVybiBhIGxpc3Qg
b2YgdGhlIG1lbWJlciBuYW1lcy4KLSAgICAgIC8vLwotICAgICAgLy8vIElmIG51bGwsIHJldHVy
biBhbiBlbXB0eSBsaXN0LgotICAgICAgLy8vIFxwcmUgdHlwZSgpIGlzIG9iamVjdFZhbHVlIG9y
IG51bGxWYWx1ZQotICAgICAgLy8vIFxwb3N0IGlmIHR5cGUoKSB3YXMgbnVsbFZhbHVlLCBpdCBy
ZW1haW5zIG51bGxWYWx1ZQotICAgICAgTWVtYmVycyBnZXRNZW1iZXJOYW1lcygpIGNvbnN0Owot
Ci0vLyMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLS8vICAgICAgRW51bU1lbWJlck5hbWVzIGVudW1N
ZW1iZXJOYW1lcygpIGNvbnN0OwotLy8gICAgICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25z
dDsKLS8vIyBlbmRpZgotCi0gICAgICAvLy8gQ29tbWVudHMgbXVzdCBiZSAvLy4uLiBvciAvKiAu
Li4gKi8KLSAgICAgIHZvaWQgc2V0Q29tbWVudCggY29uc3QgY2hhciAqY29tbWVudCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKTsKLSAgICAgIC8v
LyBDb21tZW50cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAqLwotICAgICAgdm9pZCBzZXRDb21t
ZW50KCBjb25zdCBzdGQ6OnN0cmluZyAmY29tbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAg
Q29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKTsKLSAgICAgIGJvb2wgaGFzQ29tbWVudCggQ29t
bWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKSBjb25zdDsKLSAgICAgIC8vLyBJbmNsdWRlIGRlbGlt
aXRlcnMgYW5kIGVtYmVkZGVkIG5ld2xpbmVzLgotICAgICAgc3RkOjpzdHJpbmcgZ2V0Q29tbWVu
dCggQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKSBjb25zdDsKLQotICAgICAgc3RkOjpzdHJp
bmcgdG9TdHlsZWRTdHJpbmcoKSBjb25zdDsKLQotICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4o
KSBjb25zdDsKLSAgICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0OwotCi0gICAgICBpdGVy
YXRvciBiZWdpbigpOwotICAgICAgaXRlcmF0b3IgZW5kKCk7Ci0KLSAgIHByaXZhdGU6Ci0gICAg
ICBWYWx1ZSAmcmVzb2x2ZVJlZmVyZW5jZSggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljICk7Ci0KLSMgaWZkZWYgSlNPTl9WQUxV
RV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICBpbmxpbmUgYm9vbCBpc0l0ZW1BdmFpbGFibGUoKSBj
b25zdAotICAgICAgewotICAgICAgICAgcmV0dXJuIGl0ZW1Jc1VzZWRfID09IDA7Ci0gICAgICB9
Ci0KLSAgICAgIGlubGluZSB2b2lkIHNldEl0ZW1Vc2VkKCBib29sIGlzVXNlZCA9IHRydWUgKQot
ICAgICAgewotICAgICAgICAgaXRlbUlzVXNlZF8gPSBpc1VzZWQgPyAxIDogMDsKLSAgICAgIH0K
LQotICAgICAgaW5saW5lIGJvb2wgaXNNZW1iZXJOYW1lU3RhdGljKCkgY29uc3QKLSAgICAgIHsK
LSAgICAgICAgIHJldHVybiBtZW1iZXJOYW1lSXNTdGF0aWNfID09IDA7Ci0gICAgICB9Ci0KLSAg
ICAgIGlubGluZSB2b2lkIHNldE1lbWJlck5hbWVJc1N0YXRpYyggYm9vbCBpc1N0YXRpYyApCi0g
ICAgICB7Ci0gICAgICAgICBtZW1iZXJOYW1lSXNTdGF0aWNfID0gaXNTdGF0aWMgPyAxIDogMDsK
LSAgICAgIH0KLSMgZW5kaWYgLy8gIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAK
LQotICAgcHJpdmF0ZToKLSAgICAgIHN0cnVjdCBDb21tZW50SW5mbwotICAgICAgewotICAgICAg
ICAgQ29tbWVudEluZm8oKTsKLSAgICAgICAgIH5Db21tZW50SW5mbygpOwotCi0gICAgICAgICB2
b2lkIHNldENvbW1lbnQoIGNvbnN0IGNoYXIgKnRleHQgKTsKLQotICAgICAgICAgY2hhciAqY29t
bWVudF87Ci0gICAgICB9OwotCi0gICAgICAvL3N0cnVjdCBNZW1iZXJOYW1lc1RyYW5zZm9ybQot
ICAgICAgLy97Ci0gICAgICAvLyAgIHR5cGVkZWYgY29uc3QgY2hhciAqcmVzdWx0X3R5cGU7Ci0g
ICAgICAvLyAgIGNvbnN0IGNoYXIgKm9wZXJhdG9yKCkoIGNvbnN0IENaU3RyaW5nICZuYW1lICkg
Y29uc3QKLSAgICAgIC8vICAgewotICAgICAgLy8gICAgICByZXR1cm4gbmFtZS5jX3N0cigpOwot
ICAgICAgLy8gICB9Ci0gICAgICAvL307Ci0KLSAgICAgIHVuaW9uIFZhbHVlSG9sZGVyCi0gICAg
ICB7Ci0gICAgICAgICBMYXJnZXN0SW50IGludF87Ci0gICAgICAgICBMYXJnZXN0VUludCB1aW50
XzsKLSAgICAgICAgIGRvdWJsZSByZWFsXzsKLSAgICAgICAgIGJvb2wgYm9vbF87Ci0gICAgICAg
ICBjaGFyICpzdHJpbmdfOwotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAg
ICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXlfOwotICAgICAgICAgVmFsdWVJbnRlcm5h
bE1hcCAqbWFwXzsKLSNlbHNlCi0gICAgICAgICBPYmplY3RWYWx1ZXMgKm1hcF87Ci0jIGVuZGlm
Ci0gICAgICB9IHZhbHVlXzsKLSAgICAgIFZhbHVlVHlwZSB0eXBlXyA6IDg7Ci0gICAgICAvLyBP
bmUtYml0IGJpdGZpZWxkcyBtdXN0IGJlIHVuc2lnbmVkIHRvIGFsbG93IHN0b3JpbmcgMS4KLSAg
ICAgIC8vIFRoZXkgbXVzdCBiZSAzMi1iaXRzIHRvIHNoYXJlIHN0b3JhZ2Ugd2l0aCBWYWx1ZUhv
bGRlci4KLSAgICAgIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsKLSMgaWZkZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICB1bnNpZ25lZCBpbnQgaXRlbUlzVXNlZF8gOiAx
OyAgICAgIC8vIHVzZWQgYnkgdGhlIFZhbHVlSW50ZXJuYWxNYXAgY29udGFpbmVyLgotICAgICAg
dW5zaWduZWQgaW50IG1lbWJlck5hbWVJc1N0YXRpY18gOiAxOyAvLyB1c2VkIGJ5IHRoZSBWYWx1
ZUludGVybmFsTWFwIGNvbnRhaW5lci4KLSMgZW5kaWYKLSAgICAgIENvbW1lbnRJbmZvICpjb21t
ZW50c187Ci0gICB9OwotCi0KLSAgIC8qKiBcYnJpZWYgRXhwZXJpbWVudGFsIGFuZCB1bnRlc3Rl
ZDogcmVwcmVzZW50cyBhbiBlbGVtZW50IG9mIHRoZSAicGF0aCIgdG8gYWNjZXNzIGEgbm9kZS4K
LSAgICAqLwotICAgY2xhc3MgUGF0aEFyZ3VtZW50Ci0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICBm
cmllbmQgY2xhc3MgUGF0aDsKLQotICAgICAgUGF0aEFyZ3VtZW50KCk7Ci0gICAgICBQYXRoQXJn
dW1lbnQoIEFycmF5SW5kZXggaW5kZXggKTsKLSAgICAgIFBhdGhBcmd1bWVudCggY29uc3QgY2hh
ciAqa2V5ICk7Ci0gICAgICBQYXRoQXJndW1lbnQoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKTsK
LQotICAgcHJpdmF0ZToKLSAgICAgIGVudW0gS2luZAotICAgICAgewotICAgICAgICAga2luZE5v
bmUgPSAwLAotICAgICAgICAga2luZEluZGV4LAotICAgICAgICAga2luZEtleQotICAgICAgfTsK
LSAgICAgIHN0ZDo6c3RyaW5nIGtleV87Ci0gICAgICBBcnJheUluZGV4IGluZGV4XzsKLSAgICAg
IEtpbmQga2luZF87Ci0gICB9OwotCi0gICAvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50
ZXN0ZWQ6IHJlcHJlc2VudHMgYSAicGF0aCIgdG8gYWNjZXNzIGEgbm9kZS4KLSAgICAqCi0gICAg
KiBTeW50YXg6Ci0gICAgKiAtICIuIiA9PiByb290IG5vZGUKLSAgICAqIC0gIi5bbl0iID0+IGVs
ZW1lbnRzIGF0IGluZGV4ICduJyBvZiByb290IG5vZGUgKGFuIGFycmF5IHZhbHVlKQotICAgICog
LSAiLm5hbWUiID0+IG1lbWJlciBuYW1lZCAnbmFtZScgb2Ygcm9vdCBub2RlIChhbiBvYmplY3Qg
dmFsdWUpCi0gICAgKiAtICIubmFtZTEubmFtZTIubmFtZTMiCi0gICAgKiAtICIuWzBdWzFdWzJd
Lm5hbWUxWzNdIgotICAgICogLSAiLiUiID0+IG1lbWJlciBuYW1lIGlzIHByb3ZpZGVkIGFzIHBh
cmFtZXRlcgotICAgICogLSAiLlslXSIgPT4gaW5kZXggaXMgcHJvdmllZCBhcyBwYXJhbWV0ZXIK
LSAgICAqLwotICAgY2xhc3MgUGF0aAotICAgewotICAgcHVibGljOgotICAgICAgUGF0aCggY29u
c3Qgc3RkOjpzdHJpbmcgJnBhdGgsCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmEx
ID0gUGF0aEFyZ3VtZW50KCksCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmEyID0g
UGF0aEFyZ3VtZW50KCksCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmEzID0gUGF0
aEFyZ3VtZW50KCksCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmE0ID0gUGF0aEFy
Z3VtZW50KCksCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmE1ID0gUGF0aEFyZ3Vt
ZW50KCkgKTsKLQotICAgICAgY29uc3QgVmFsdWUgJnJlc29sdmUoIGNvbnN0IFZhbHVlICZyb290
ICkgY29uc3Q7Ci0gICAgICBWYWx1ZSByZXNvbHZlKCBjb25zdCBWYWx1ZSAmcm9vdCwgCi0gICAg
ICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0gICAg
ICAvLy8gQ3JlYXRlcyB0aGUgInBhdGgiIHRvIGFjY2VzcyB0aGUgc3BlY2lmaWVkIG5vZGUgYW5k
IHJldHVybnMgYSByZWZlcmVuY2Ugb24gdGhlIG5vZGUuCi0gICAgICBWYWx1ZSAmbWFrZSggVmFs
dWUgJnJvb3QgKSBjb25zdDsKLQotICAgcHJpdmF0ZToKLSAgICAgIHR5cGVkZWYgc3RkOjp2ZWN0
b3I8Y29uc3QgUGF0aEFyZ3VtZW50ICo+IEluQXJnczsKLSAgICAgIHR5cGVkZWYgc3RkOjp2ZWN0
b3I8UGF0aEFyZ3VtZW50PiBBcmdzOwotCi0gICAgICB2b2lkIG1ha2VQYXRoKCBjb25zdCBzdGQ6
OnN0cmluZyAmcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4gKTsK
LSAgICAgIHZvaWQgYWRkUGF0aEluQXJnKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5BcmdzICZpbiwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciAmaXRJbkFyZywgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQgKTsKLSAgICAgIHZvaWQgaW52YWxp
ZFBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5nICZwYXRoLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
IGludCBsb2NhdGlvbiApOwotCi0gICAgICBBcmdzIGFyZ3NfOwotICAgfTsKLQotCi0KLSNpZmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIC8qKiBcYnJpZWYgQWxsb2NhdG9yIHRv
IGN1c3RvbWl6ZSBWYWx1ZSBpbnRlcm5hbCBtYXAuCi0gICAgKiBCZWxvdyBpcyBhbiBleGFtcGxl
IG9mIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIChkZWZhdWx0IGltcGxlbWVudGF0aW9uIGFjdHVh
bGx5Ci0gICAgKiB1c2UgbWVtb3J5IHBvb2wgZm9yIHNwZWVkKS4KLSAgICAqIFxjb2RlCi0gICAg
ICBjbGFzcyBEZWZhdWx0VmFsdWVNYXBBbGxvY2F0b3IgOiBwdWJsaWMgVmFsdWVNYXBBbGxvY2F0
b3IKLSAgICAgIHsKLSAgICAgIHB1YmxpYzogLy8gb3ZlcnJpZGRlbiBmcm9tIFZhbHVlTWFwQWxs
b2NhdG9yCi0gICAgICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcCgpCi0gICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxNYXAoKTsKLSAgICAg
ICAgIH0KLQotICAgICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdNYXBDb3B5KCBj
b25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxNYXAoIG90aGVyICk7Ci0gICAgICAgICB9Ci0KLSAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkZXN0cnVjdE1hcCggVmFsdWVJbnRlcm5hbE1hcCAqbWFwICkKLSAg
ICAgICAgIHsKLSAgICAgICAgICAgIGRlbGV0ZSBtYXA7Ci0gICAgICAgICB9Ci0KLSAgICAgICAg
IHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFsbG9jYXRlTWFwQnVja2V0cyggdW5zaWduZWQg
aW50IHNpemUgKQotICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVy
bmFsTGlua1tzaXplXTsKLSAgICAgICAgIH0KLQotICAgICAgICAgdmlydHVhbCB2b2lkIHJlbGVh
c2VNYXBCdWNrZXRzKCBWYWx1ZUludGVybmFsTGluayAqbGlua3MgKQotICAgICAgICAgewotICAg
ICAgICAgICAgZGVsZXRlIFtdIGxpbmtzOwotICAgICAgICAgfQotCi0gICAgICAgICB2aXJ0dWFs
IFZhbHVlSW50ZXJuYWxMaW5rICphbGxvY2F0ZU1hcExpbmsoKQotICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFsTGluaygpOwotICAgICAgICAgfQotCi0gICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcExpbmsoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5r
ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIGRlbGV0ZSBsaW5rOwotICAgICAgICAgfQotICAg
ICAgfTsKLSAgICAqIFxlbmRjb2RlCi0gICAgKi8gCi0gICBjbGFzcyBKU09OX0FQSSBWYWx1ZU1h
cEFsbG9jYXRvcgotICAgewotICAgcHVibGljOgotICAgICAgdmlydHVhbCB+VmFsdWVNYXBBbGxv
Y2F0b3IoKTsKLSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwKCkgPSAwOwot
ICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdNYXBDb3B5KCBjb25zdCBWYWx1ZUlu
dGVybmFsTWFwICZvdGhlciApID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCBkZXN0cnVjdE1hcCgg
VmFsdWVJbnRlcm5hbE1hcCAqbWFwICkgPSAwOwotICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFs
TGluayAqYWxsb2NhdGVNYXBCdWNrZXRzKCB1bnNpZ25lZCBpbnQgc2l6ZSApID0gMDsKLSAgICAg
IHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwQnVja2V0cyggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtz
ICkgPSAwOwotICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTGluayAqYWxsb2NhdGVNYXBMaW5r
KCkgPSAwOwotICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VNYXBMaW5rKCBWYWx1ZUludGVybmFs
TGluayAqbGluayApID0gMDsKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgVmFsdWVJbnRlcm5hbE1h
cCBoYXNoLW1hcCBidWNrZXQgY2hhaW4gbGluayAoZm9yIGludGVybmFsIHVzZSBvbmx5KS4KLSAg
ICAqIFxpbnRlcm5hbCBwcmV2aW91c18gJiBuZXh0XyBhbGxvd3MgZm9yIGJpZGlyZWN0aW9uYWwg
dHJhdmVyc2FsLgotICAgICovCi0gICBjbGFzcyBKU09OX0FQSSBWYWx1ZUludGVybmFsTGluawot
ICAgewotICAgcHVibGljOgotICAgICAgZW51bSB7IGl0ZW1QZXJMaW5rID0gNiB9OyAgLy8gc2l6
ZW9mKFZhbHVlSW50ZXJuYWxMaW5rKSA9IDEyOCBvbiAzMiBiaXRzIGFyY2hpdGVjdHVyZS4KLSAg
ICAgIGVudW0gSW50ZXJuYWxGbGFncyB7IAotICAgICAgICAgZmxhZ0F2YWlsYWJsZSA9IDAsCi0g
ICAgICAgICBmbGFnVXNlZCA9IDEKLSAgICAgIH07Ci0KLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5r
KCk7Ci0KLSAgICAgIH5WYWx1ZUludGVybmFsTGluaygpOwotCi0gICAgICBWYWx1ZSBpdGVtc19b
aXRlbVBlckxpbmtdOwotICAgICAgY2hhciAqa2V5c19baXRlbVBlckxpbmtdOwotICAgICAgVmFs
dWVJbnRlcm5hbExpbmsgKnByZXZpb3VzXzsKLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICpuZXh0
XzsKLSAgIH07Ci0KLQotICAgLyoqIFxicmllZiBBIGxpbmtlZCBwYWdlIGJhc2VkIGhhc2gtdGFi
bGUgaW1wbGVtZW50YXRpb24gdXNlZCBpbnRlcm5hbGx5IGJ5IFZhbHVlLgotICAgICogXGludGVy
bmFsIFZhbHVlSW50ZXJuYWxNYXAgaXMgYSB0cmFkaW9uYWwgYnVja2V0IGJhc2VkIGhhc2gtdGFi
bGUsIHdpdGggYSBsaW5rZWQKLSAgICAqIGxpc3QgaW4gZWFjaCBidWNrZXQgdG8gaGFuZGxlIGNv
bGxpc2lvbi4gVGhlcmUgaXMgYW4gYWRkaW9uYWwgdHdpc3QgaW4gdGhhdAotICAgICogZWFjaCBu
b2RlIG9mIHRoZSBjb2xsaXNpb24gbGlua2VkIGxpc3QgaXMgYSBwYWdlIGNvbnRhaW5pbmcgYSBm
aXhlZCBhbW91bnQgb2YKLSAgICAqIHZhbHVlLiBUaGlzIHByb3ZpZGVzIGEgYmV0dGVyIGNvbXBy
b21pc2UgYmV0d2VlbiBtZW1vcnkgdXNhZ2UgYW5kIHNwZWVkLgotICAgICogCi0gICAgKiBFYWNo
IGJ1Y2tldCBpcyBtYWRlIHVwIG9mIGEgY2hhaW5lZCBsaXN0IG9mIFZhbHVlSW50ZXJuYWxMaW5r
LiBUaGUgbGFzdAotICAgICogbGluayBvZiBhIGdpdmVuIGJ1Y2tldCBjYW4gYmUgZm91bmQgaW4g
dGhlICdwcmV2aW91c18nIGZpZWxkIG9mIHRoZSBmb2xsb3dpbmcgYnVja2V0LgotICAgICogVGhl
IGxhc3QgbGluayBvZiB0aGUgbGFzdCBidWNrZXQgaXMgc3RvcmVkIGluIHRhaWxMaW5rXyBhcyBp
dCBoYXMgbm8gZm9sbG93aW5nIGJ1Y2tldC4KLSAgICAqIE9ubHkgdGhlIGxhc3QgbGluayBvZiBh
IGJ1Y2tldCBtYXkgY29udGFpbnMgJ2F2YWlsYWJsZScgaXRlbS4gVGhlIGxhc3QgbGluayBhbHdh
eXMKLSAgICAqIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBlbGVtZW50IHVubGVzcyBpcyBpdCB0aGUg
YnVja2V0IG9uZSB2ZXJ5IGZpcnN0IGxpbmsuCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFZh
bHVlSW50ZXJuYWxNYXAKLSAgIHsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFz
ZTsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLSAgIHB1YmxpYzoKLSAgICAgIHR5cGVkZWYg
dW5zaWduZWQgaW50IEhhc2hLZXk7Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBCdWNrZXRJ
bmRleDsKLQotIyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgotICAg
ICAgc3RydWN0IEl0ZXJhdG9yU3RhdGUKLSAgICAgIHsKLSAgICAgICAgIEl0ZXJhdG9yU3RhdGUo
KSAKLSAgICAgICAgICAgIDogbWFwXygwKQotICAgICAgICAgICAgLCBsaW5rXygwKQotICAgICAg
ICAgICAgLCBpdGVtSW5kZXhfKDApCi0gICAgICAgICAgICAsIGJ1Y2tldEluZGV4XygwKSAKLSAg
ICAgICAgIHsKLSAgICAgICAgIH0KLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXAgKm1hcF87Ci0g
ICAgICAgICBWYWx1ZUludGVybmFsTGluayAqbGlua187Ci0gICAgICAgICBCdWNrZXRJbmRleCBp
dGVtSW5kZXhfOwotICAgICAgICAgQnVja2V0SW5kZXggYnVja2V0SW5kZXhfOwotICAgICAgfTsK
LSMgZW5kaWYgLy8gaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KLQot
ICAgICAgVmFsdWVJbnRlcm5hbE1hcCgpOwotICAgICAgVmFsdWVJbnRlcm5hbE1hcCggY29uc3Qg
VmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKTsKLSAgICAgIFZhbHVlSW50ZXJuYWxNYXAgJm9wZXJh
dG9yID0oIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICk7Ci0gICAgICB+VmFsdWVJbnRl
cm5hbE1hcCgpOwotCi0gICAgICB2b2lkIHN3YXAoIFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICk7
Ci0KLSAgICAgIEJ1Y2tldEluZGV4IHNpemUoKSBjb25zdDsKLQotICAgICAgdm9pZCBjbGVhcigp
OwotCi0gICAgICBib29sIHJlc2VydmVEZWx0YSggQnVja2V0SW5kZXggZ3Jvd3RoICk7Ci0KLSAg
ICAgIGJvb2wgcmVzZXJ2ZSggQnVja2V0SW5kZXggbmV3SXRlbUNvdW50ICk7Ci0KLSAgICAgIGNv
bnN0IFZhbHVlICpmaW5kKCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLQotICAgICAgVmFsdWUg
KmZpbmQoIGNvbnN0IGNoYXIgKmtleSApOwotCi0gICAgICBWYWx1ZSAmcmVzb2x2ZVJlZmVyZW5j
ZSggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IGlzU3RhdGljICk7Ci0KLSAgICAgIHZvaWQgcmVtb3ZlKCBjb25zdCBjaGFyICprZXkgKTsKLQot
ICAgICAgdm9pZCBkb0FjdHVhbFJlbW92ZSggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmssIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0SW5kZXggaW5kZXgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBCdWNrZXRJbmRleCBidWNrZXRJbmRleCApOwotCi0gICAgICBWYWx1ZUlu
dGVybmFsTGluayAqJmdldExhc3RMaW5rSW5CdWNrZXQoIEJ1Y2tldEluZGV4IGJ1Y2tldEluZGV4
ICk7Ci0KLSAgICAgIFZhbHVlICZzZXROZXdJdGVtKCBjb25zdCBjaGFyICprZXksIAotICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBC
dWNrZXRJbmRleCBpbmRleCApOwotCi0gICAgICBWYWx1ZSAmdW5zYWZlQWRkKCBjb25zdCBjaGFy
ICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1N0YXRpYywgCi0gICAgICAg
ICAgICAgICAgICAgICAgICBIYXNoS2V5IGhhc2hlZEtleSApOwotCi0gICAgICBIYXNoS2V5IGhh
c2goIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0OwotCi0gICAgICBpbnQgY29tcGFyZSggY29uc3Qg
VmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKSBjb25zdDsKLQotICAgcHJpdmF0ZToKLSAgICAgIHZv
aWQgbWFrZUJlZ2luSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29uc3Q7Ci0gICAgICB2
b2lkIG1ha2VFbmRJdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQgKSBjb25zdDsKLSAgICAgIHN0
YXRpYyBib29sIGVxdWFscyggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JT
dGF0ZSAmb3RoZXIgKTsKLSAgICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudCggSXRlcmF0b3JTdGF0
ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudEJ1Y2tldCggSXRlcmF0
b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyB2b2lkIGRlY3JlbWVudCggSXRlcmF0
b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBjb25zdCBjaGFyICprZXkoIGNvbnN0
IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgY29uc3QgY2hhciAqa2V5
KCBjb25zdCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciwgYm9vbCAmaXNTdGF0aWMgKTsKLSAgICAg
IHN0YXRpYyBWYWx1ZSAmdmFsdWUoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0g
ICAgICBzdGF0aWMgaW50IGRpc3RhbmNlKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25zdCBJ
dGVyYXRvclN0YXRlICZ5ICk7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICBWYWx1ZUludGVybmFsTGlu
ayAqYnVja2V0c187Ci0gICAgICBWYWx1ZUludGVybmFsTGluayAqdGFpbExpbmtfOwotICAgICAg
QnVja2V0SW5kZXggYnVja2V0c1NpemVfOwotICAgICAgQnVja2V0SW5kZXggaXRlbUNvdW50XzsK
LSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgQSBzaW1wbGlmaWVkIGRlcXVlIGltcGxlbWVudGF0aW9u
IHVzZWQgaW50ZXJuYWxseSBieSBWYWx1ZS4KLSAgICogXGludGVybmFsCi0gICAqIEl0IGlzIGJh
c2VkIG9uIGEgbGlzdCBvZiBmaXhlZCAicGFnZSIsIGVhY2ggcGFnZSBjb250YWlucyBhIGZpeGVk
IG51bWJlciBvZiBpdGVtcy4KLSAgICogSW5zdGVhZCBvZiB1c2luZyBhIGxpbmtlZC1saXN0LCBh
IGFycmF5IG9mIHBvaW50ZXIgaXMgdXNlZCBmb3IgZmFzdCBpdGVtIGxvb2stdXAuCi0gICAqIExv
b2stdXAgZm9yIGFuIGVsZW1lbnQgaXMgYXMgZm9sbG93OgotICAgKiAtIGNvbXB1dGUgcGFnZSBp
bmRleDogcGFnZUluZGV4ID0gaXRlbUluZGV4IC8gaXRlbXNQZXJQYWdlCi0gICAqIC0gbG9vay11
cCBpdGVtIGluIHBhZ2U6IHBhZ2VzX1twYWdlSW5kZXhdW2l0ZW1JbmRleCAlIGl0ZW1zUGVyUGFn
ZV0KLSAgICoKLSAgICogSW5zZXJ0aW9uIGlzIGFtb3J0aXplZCBjb25zdGFudCB0aW1lIChvbmx5
IHRoZSBhcnJheSBjb250YWluaW5nIHRoZSBpbmRleCBvZiBwb2ludGVycwotICAgKiBuZWVkIHRv
IGJlIHJlYWxsb2NhdGVkIHdoZW4gaXRlbXMgYXJlIGFwcGVuZGVkKS4KLSAgICovCi0gICBjbGFz
cyBKU09OX0FQSSBWYWx1ZUludGVybmFsQXJyYXkKLSAgIHsKLSAgICAgIGZyaWVuZCBjbGFzcyBW
YWx1ZTsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsKLSAgIHB1YmxpYzoK
LSAgICAgIGVudW0geyBpdGVtc1BlclBhZ2UgPSA4IH07ICAgIC8vIHNob3VsZCBiZSBhIHBvd2Vy
IG9mIDIgZm9yIGZhc3QgZGl2aWRlIGFuZCBtb2R1bG8uCi0gICAgICB0eXBlZGVmIFZhbHVlOjpB
cnJheUluZGV4IEFycmF5SW5kZXg7Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBQYWdlSW5k
ZXg7Ci0KLSMgaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KLSAgICAg
IHN0cnVjdCBJdGVyYXRvclN0YXRlIC8vIE11c3QgYmUgYSBQT0QKLSAgICAgIHsKLSAgICAgICAg
IEl0ZXJhdG9yU3RhdGUoKSAKLSAgICAgICAgICAgIDogYXJyYXlfKDApCi0gICAgICAgICAgICAs
IGN1cnJlbnRQYWdlSW5kZXhfKDApCi0gICAgICAgICAgICAsIGN1cnJlbnRJdGVtSW5kZXhfKDAp
IAotICAgICAgICAgewotICAgICAgICAgfQotICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5ICph
cnJheV87Ci0gICAgICAgICBWYWx1ZSAqKmN1cnJlbnRQYWdlSW5kZXhfOwotICAgICAgICAgdW5z
aWduZWQgaW50IGN1cnJlbnRJdGVtSW5kZXhfOwotICAgICAgfTsKLSMgZW5kaWYgLy8gaWZuZGVm
IEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KLQotICAgICAgVmFsdWVJbnRlcm5h
bEFycmF5KCk7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXkoIGNvbnN0IFZhbHVlSW50ZXJuYWxB
cnJheSAmb3RoZXIgKTsKLSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSAmb3BlcmF0b3IgPSggY29u
c3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApOwotICAgICAgflZhbHVlSW50ZXJuYWxBcnJh
eSgpOwotICAgICAgdm9pZCBzd2FwKCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICk7Ci0KLSAg
ICAgIHZvaWQgY2xlYXIoKTsKLSAgICAgIHZvaWQgcmVzaXplKCBBcnJheUluZGV4IG5ld1NpemUg
KTsKLQotICAgICAgVmFsdWUgJnJlc29sdmVSZWZlcmVuY2UoIEFycmF5SW5kZXggaW5kZXggKTsK
LQotICAgICAgVmFsdWUgKmZpbmQoIEFycmF5SW5kZXggaW5kZXggKSBjb25zdDsKLQotICAgICAg
QXJyYXlJbmRleCBzaXplKCkgY29uc3Q7Ci0KLSAgICAgIGludCBjb21wYXJlKCBjb25zdCBWYWx1
ZUludGVybmFsQXJyYXkgJm90aGVyICkgY29uc3Q7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICBzdGF0
aWMgYm9vbCBlcXVhbHMoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNvbnN0IEl0ZXJhdG9yU3Rh
dGUgJm90aGVyICk7Ci0gICAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgdm9pZCBkZWNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgVmFsdWUgJmRlcmVmZXJlbmNlKCBjb25zdCBJdGVy
YXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIFZhbHVlICZ1bnNhZmVEZXJlZmVy
ZW5jZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBpbnQg
ZGlzdGFuY2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJnkg
KTsKLSAgICAgIHN0YXRpYyBBcnJheUluZGV4IGluZGV4T2YoIGNvbnN0IEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICk7Ci0gICAgICB2b2lkIG1ha2VCZWdpbkl0ZXJhdG9yKCBJdGVyYXRvclN0YXRl
ICZpdCApIGNvbnN0OwotICAgICAgdm9pZCBtYWtlRW5kSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUg
Jml0ICkgY29uc3Q7Ci0gICAgICB2b2lkIG1ha2VJdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQs
IEFycmF5SW5kZXggaW5kZXggKSBjb25zdDsKLQotICAgICAgdm9pZCBtYWtlSW5kZXhWYWxpZCgg
QXJyYXlJbmRleCBpbmRleCApOwotCi0gICAgICBWYWx1ZSAqKnBhZ2VzXzsKLSAgICAgIEFycmF5
SW5kZXggc2l6ZV87Ci0gICAgICBQYWdlSW5kZXggcGFnZUNvdW50XzsKLSAgIH07Ci0KLSAgIC8q
KiBcYnJpZWYgRXhwZXJpbWVudGFsOiBkbyBub3QgdXNlLiBBbGxvY2F0b3IgdG8gY3VzdG9taXpl
IFZhbHVlIGludGVybmFsIGFycmF5LgotICAgICogQmVsb3cgaXMgYW4gZXhhbXBsZSBvZiBhIHNp
bXBsZSBpbXBsZW1lbnRhdGlvbiAoYWN0dWFsIGltcGxlbWVudGF0aW9uIHVzZQotICAgICogbWVt
b3J5IHBvb2wpLgotICAgICAgXGNvZGUKLWNsYXNzIERlZmF1bHRWYWx1ZUFycmF5QWxsb2NhdG9y
IDogcHVibGljIFZhbHVlQXJyYXlBbGxvY2F0b3IKLXsKLXB1YmxpYzogLy8gb3ZlcnJpZGRlbiBm
cm9tIFZhbHVlQXJyYXlBbGxvY2F0b3IKLSAgIHZpcnR1YWwgfkRlZmF1bHRWYWx1ZUFycmF5QWxs
b2NhdG9yKCkKLSAgIHsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5l
d0FycmF5KCkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbEFycmF5KCk7Ci0g
ICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheUNvcHkoIGNvbnN0
IFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKQotICAgewotICAgICAgcmV0dXJuIG5ldyBWYWx1
ZUludGVybmFsQXJyYXkoIG90aGVyICk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCBkZXN0cnVj
dCggVmFsdWVJbnRlcm5hbEFycmF5ICphcnJheSApCi0gICB7Ci0gICAgICBkZWxldGUgYXJyYXk7
Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCByZWFsbG9jYXRlQXJyYXlQYWdlSW5kZXgoIFZhbHVl
ICoqJmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggJmluZGV4Q291bnQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRl
eCBtaW5OZXdJbmRleENvdW50ICkKLSAgIHsKLSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFn
ZUluZGV4IG5ld0luZGV4Q291bnQgPSAoaW5kZXhDb3VudCozKS8yICsgMTsKLSAgICAgIGlmICgg
bWluTmV3SW5kZXhDb3VudCA+IG5ld0luZGV4Q291bnQgKQotICAgICAgICAgbmV3SW5kZXhDb3Vu
dCA9IG1pbk5ld0luZGV4Q291bnQ7Ci0gICAgICB2b2lkICpuZXdJbmRleGVzID0gcmVhbGxvYygg
aW5kZXhlcywgc2l6ZW9mKFZhbHVlKikgKiBuZXdJbmRleENvdW50ICk7Ci0gICAgICBpZiAoICFu
ZXdJbmRleGVzICkKLSAgICAgICAgIHRocm93IHN0ZDo6YmFkX2FsbG9jKCk7Ci0gICAgICBpbmRl
eENvdW50ID0gbmV3SW5kZXhDb3VudDsKLSAgICAgIGluZGV4ZXMgPSBzdGF0aWNfY2FzdDxWYWx1
ZSAqKj4oIG5ld0luZGV4ZXMgKTsKLSAgIH0KLSAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQXJyYXlQ
YWdlSW5kZXgoIFZhbHVlICoqaW5kZXhlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBpbmRleENvdW50ICkKLSAg
IHsKLSAgICAgIGlmICggaW5kZXhlcyApCi0gICAgICAgICBmcmVlKCBpbmRleGVzICk7Ci0gICB9
Ci0KLSAgIHZpcnR1YWwgVmFsdWUgKmFsbG9jYXRlQXJyYXlQYWdlKCkKLSAgIHsKLSAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxWYWx1ZSAqPiggbWFsbG9jKCBzaXplb2YoVmFsdWUpICogVmFsdWVJ
bnRlcm5hbEFycmF5OjppdGVtc1BlclBhZ2UgKSApOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQg
cmVsZWFzZUFycmF5UGFnZSggVmFsdWUgKnZhbHVlICkKLSAgIHsKLSAgICAgIGlmICggdmFsdWUg
KQotICAgICAgICAgZnJlZSggdmFsdWUgKTsKLSAgIH0KLX07Ci0gICAgICBcZW5kY29kZQotICAg
ICovIAotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVBcnJheUFsbG9jYXRvcgotICAgewotICAgcHVi
bGljOgotICAgICAgdmlydHVhbCB+VmFsdWVBcnJheUFsbG9jYXRvcigpOwotICAgICAgdmlydHVh
bCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5KCkgPSAwOwotICAgICAgdmlydHVhbCBWYWx1
ZUludGVybmFsQXJyYXkgKm5ld0FycmF5Q29weSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZv
dGhlciApID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCBkZXN0cnVjdEFycmF5KCBWYWx1ZUludGVy
bmFsQXJyYXkgKmFycmF5ICkgPSAwOwotICAgICAgLyoqIFxicmllZiBSZWFsbG9jYXRlIGFycmF5
IHBhZ2UgaW5kZXguCi0gICAgICAgKiBSZWFsbG9jYXRlcyBhbiBhcnJheSBvZiBwb2ludGVyIG9u
IGVhY2ggcGFnZS4KLSAgICAgICAqIFxwYXJhbSBpbmRleGVzIFtpbnB1dF0gcG9pbnRlciBvbiB0
aGUgY3VycmVudCBpbmRleC4gTWF5IGJlIFxjIE5VTEwuCi0gICAgICAgKiAgICAgICAgICAgICAg
ICBbb3V0cHV0XSBwb2ludGVyIG9uIHRoZSBuZXcgaW5kZXggb2YgYXQgbGVhc3QgCi0gICAgICAg
KiAgICAgICAgICAgICAgICAgICAgICAgICBcYSBtaW5OZXdJbmRleENvdW50IHBhZ2VzLiAKLSAg
ICAgICAqIFxwYXJhbSBpbmRleENvdW50IFtpbnB1dF0gY3VycmVudCBudW1iZXIgb2YgcGFnZXMg
aW4gdGhlIGluZGV4LgotICAgICAgICogICAgICAgICAgICAgICAgICAgW291dHB1dF0gbnVtYmVy
IG9mIHBhZ2UgdGhlIHJlYWxsb2NhdGVkIGluZGV4IGNhbiBoYW5kbGUuCi0gICAgICAgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcYiBNVVNUIGJlID49IFxhIG1pbk5ld0luZGV4Q291bnQu
Ci0gICAgICAgKiBccGFyYW0gbWluTmV3SW5kZXhDb3VudCBNaW5pbXVtIG51bWJlciBvZiBwYWdl
IHRoZSBuZXcgaW5kZXggbXVzdCBiZSBhYmxlIHRvCi0gICAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICAgICBoYW5kbGUuCi0gICAgICAgKi8KLSAgICAgIHZpcnR1YWwgdm9pZCByZWFsbG9jYXRl
QXJyYXlQYWdlSW5kZXgoIFZhbHVlICoqJmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggJmlu
ZGV4Q291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBtaW5OZXdJbmRleENvdW50ICkgPSAwOwotICAg
ICAgdmlydHVhbCB2b2lkIHJlbGVhc2VBcnJheVBhZ2VJbmRleCggVmFsdWUgKippbmRleGVzLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxB
cnJheTo6UGFnZUluZGV4IGluZGV4Q291bnQgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIFZhbHVlICph
bGxvY2F0ZUFycmF5UGFnZSgpID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQXJyYXlQ
YWdlKCBWYWx1ZSAqdmFsdWUgKSA9IDA7Ci0gICB9OwotI2VuZGlmIC8vICNpZmRlZiBKU09OX1ZB
TFVFX1VTRV9JTlRFUk5BTF9NQVAKLQotCi0gICAvKiogXGJyaWVmIGJhc2UgY2xhc3MgZm9yIFZh
bHVlIGl0ZXJhdG9ycy4KLSAgICAqCi0gICAgKi8KLSAgIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNl
Ci0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7Ci0g
ICAgICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7Ci0gICAgICB0eXBlZGVmIFZhbHVlSXRl
cmF0b3JCYXNlIFNlbGZUeXBlOwotCi0gICAgICBWYWx1ZUl0ZXJhdG9yQmFzZSgpOwotI2lmbmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGV4cGxpY2l0IFZhbHVlSXRlcmF0
b3JCYXNlKCBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciAmY3VycmVudCApOwot
I2Vsc2UKLSAgICAgIFZhbHVlSXRlcmF0b3JCYXNlKCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXk6
Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0gICAgICBWYWx1ZUl0ZXJhdG9yQmFzZSggY29uc3Qg
VmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKTsKLSNlbmRpZgotCi0gICAg
ICBib29sIG9wZXJhdG9yID09KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25zdAotICAgICAg
ewotICAgICAgICAgcmV0dXJuIGlzRXF1YWwoIG90aGVyICk7Ci0gICAgICB9Ci0KLSAgICAgIGJv
b2wgb3BlcmF0b3IgIT0oIGNvbnN0IFNlbGZUeXBlICZvdGhlciApIGNvbnN0Ci0gICAgICB7Ci0g
ICAgICAgICByZXR1cm4gIWlzRXF1YWwoIG90aGVyICk7Ci0gICAgICB9Ci0KLSAgICAgIGRpZmZl
cmVuY2VfdHlwZSBvcGVyYXRvciAtKCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25zdAotICAg
ICAgewotICAgICAgICAgcmV0dXJuIGNvbXB1dGVEaXN0YW5jZSggb3RoZXIgKTsKLSAgICAgIH0K
LQotICAgICAgLy8vIFJldHVybiBlaXRoZXIgdGhlIGluZGV4IG9yIHRoZSBtZW1iZXIgbmFtZSBv
ZiB0aGUgcmVmZXJlbmNlZCB2YWx1ZSBhcyBhIFZhbHVlLgotICAgICAgVmFsdWUga2V5KCkgY29u
c3Q7Ci0KLSAgICAgIC8vLyBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSByZWZlcmVuY2VkIFZhbHVl
LiAtMSBpZiBpdCBpcyBub3QgYW4gYXJyYXlWYWx1ZS4KLSAgICAgIFVJbnQgaW5kZXgoKSBjb25z
dDsKLQotICAgICAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQg
VmFsdWUuICIiIGlmIGl0IGlzIG5vdCBhbiBvYmplY3RWYWx1ZS4KLSAgICAgIGNvbnN0IGNoYXIg
Km1lbWJlck5hbWUoKSBjb25zdDsKLQotICAgcHJvdGVjdGVkOgotICAgICAgVmFsdWUgJmRlcmVm
KCkgY29uc3Q7Ci0KLSAgICAgIHZvaWQgaW5jcmVtZW50KCk7Ci0KLSAgICAgIHZvaWQgZGVjcmVt
ZW50KCk7Ci0KLSAgICAgIGRpZmZlcmVuY2VfdHlwZSBjb21wdXRlRGlzdGFuY2UoIGNvbnN0IFNl
bGZUeXBlICZvdGhlciApIGNvbnN0OwotCi0gICAgICBib29sIGlzRXF1YWwoIGNvbnN0IFNlbGZU
eXBlICZvdGhlciApIGNvbnN0OwotCi0gICAgICB2b2lkIGNvcHkoIGNvbnN0IFNlbGZUeXBlICZv
dGhlciApOwotCi0gICBwcml2YXRlOgotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9N
QVAKLSAgICAgIFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGN1cnJlbnRfOwotICAgICAg
Ly8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2YWx1ZS4KLSAgICAgIGJv
b2wgaXNOdWxsXzsKLSNlbHNlCi0gICAgICB1bmlvbgotICAgICAgewotICAgICAgICAgVmFsdWVJ
bnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlIGFycmF5XzsKLSAgICAgICAgIFZhbHVlSW50ZXJu
YWxNYXA6Okl0ZXJhdG9yU3RhdGUgbWFwXzsKLSAgICAgIH0gaXRlcmF0b3JfOwotICAgICAgYm9v
bCBpc0FycmF5XzsKLSNlbmRpZgotICAgfTsKLQotICAgLyoqIFxicmllZiBjb25zdCBpdGVyYXRv
ciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KLSAgICAqCi0gICAgKi8KLSAgIGNsYXNzIFZh
bHVlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9yQmFzZQotICAgewotICAgICAg
ZnJpZW5kIGNsYXNzIFZhbHVlOwotICAgcHVibGljOgotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBp
bnQgc2l6ZV90OwotICAgICAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICAgICAgdHlw
ZWRlZiBjb25zdCBWYWx1ZSAmcmVmZXJlbmNlOwotICAgICAgdHlwZWRlZiBjb25zdCBWYWx1ZSAq
cG9pbnRlcjsKLSAgICAgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9yIFNlbGZUeXBlOwotCi0g
ICAgICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsKLSAgIHByaXZhdGU6Ci0gICAgICAvKiEgXGludGVy
bmFsIFVzZSBieSBWYWx1ZSB0byBjcmVhdGUgYW4gaXRlcmF0b3IuCi0gICAgICAgKi8KLSNpZm5k
ZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICBleHBsaWNpdCBWYWx1ZUNvbnN0
SXRlcmF0b3IoIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yICZjdXJyZW50ICk7
Ci0jZWxzZQotICAgICAgVmFsdWVDb25zdEl0ZXJhdG9yKCBjb25zdCBWYWx1ZUludGVybmFsQXJy
YXk6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0gICAgICBWYWx1ZUNvbnN0SXRlcmF0b3IoIGNv
bnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0jZW5kaWYKLSAg
IHB1YmxpYzoKLSAgICAgIFNlbGZUeXBlICZvcGVyYXRvciA9KCBjb25zdCBWYWx1ZUl0ZXJhdG9y
QmFzZSAmb3RoZXIgKTsKLQotICAgICAgU2VsZlR5cGUgb3BlcmF0b3IrKyggaW50ICkKLSAgICAg
IHsKLSAgICAgICAgIFNlbGZUeXBlIHRlbXAoICp0aGlzICk7Ci0gICAgICAgICArKyp0aGlzOwot
ICAgICAgICAgcmV0dXJuIHRlbXA7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9y
LS0oIGludCApCi0gICAgICB7Ci0gICAgICAgICBTZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAg
ICAgICAgLS0qdGhpczsKLSAgICAgICAgIHJldHVybiB0ZW1wOwotICAgICAgfQotCi0gICAgICBT
ZWxmVHlwZSAmb3BlcmF0b3ItLSgpCi0gICAgICB7Ci0gICAgICAgICBkZWNyZW1lbnQoKTsKLSAg
ICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgIH0KLQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9y
KysoKQotICAgICAgewotICAgICAgICAgaW5jcmVtZW50KCk7Ci0gICAgICAgICByZXR1cm4gKnRo
aXM7Ci0gICAgICB9Ci0KLSAgICAgIHJlZmVyZW5jZSBvcGVyYXRvciAqKCkgY29uc3QKLSAgICAg
IHsKLSAgICAgICAgIHJldHVybiBkZXJlZigpOwotICAgICAgfQotICAgfTsKLQotCi0gICAvKiog
XGJyaWVmIEl0ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5IHZhbHVlLgotICAgICovCi0gICBj
bGFzcyBWYWx1ZUl0ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlCi0gICB7Ci0gICAg
ICBmcmllbmQgY2xhc3MgVmFsdWU7Ci0gICBwdWJsaWM6Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVk
IGludCBzaXplX3Q7Ci0gICAgICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7Ci0gICAgICB0
eXBlZGVmIFZhbHVlICZyZWZlcmVuY2U7Ci0gICAgICB0eXBlZGVmIFZhbHVlICpwb2ludGVyOwot
ICAgICAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIFNlbGZUeXBlOwotCi0gICAgICBWYWx1ZUl0ZXJh
dG9yKCk7Ci0gICAgICBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3IgJm90
aGVyICk7Ci0gICAgICBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZUl0ZXJhdG9yICZvdGhlciAp
OwotICAgcHJpdmF0ZToKLSAgICAgIC8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0
ZSBhbiBpdGVyYXRvci4KLSAgICAgICAqLwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5B
TF9NQVAKLSAgICAgIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlOjpPYmplY3RW
YWx1ZXM6Oml0ZXJhdG9yICZjdXJyZW50ICk7Ci0jZWxzZQotICAgICAgVmFsdWVJdGVyYXRvcigg
Y29uc3QgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlICZzdGF0ZSApOwotICAgICAg
VmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSAmc3Rh
dGUgKTsKLSNlbmRpZgotICAgcHVibGljOgotCi0gICAgICBTZWxmVHlwZSAmb3BlcmF0b3IgPSgg
Y29uc3QgU2VsZlR5cGUgJm90aGVyICk7Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9yKysoIGlu
dCApCi0gICAgICB7Ci0gICAgICAgICBTZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAgICAgICAg
KysqdGhpczsKLSAgICAgICAgIHJldHVybiB0ZW1wOwotICAgICAgfQotCi0gICAgICBTZWxmVHlw
ZSBvcGVyYXRvci0tKCBpbnQgKQotICAgICAgewotICAgICAgICAgU2VsZlR5cGUgdGVtcCggKnRo
aXMgKTsKLSAgICAgICAgIC0tKnRoaXM7Ci0gICAgICAgICByZXR1cm4gdGVtcDsKLSAgICAgIH0K
LQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9yLS0oKQotICAgICAgewotICAgICAgICAgZGVjcmVt
ZW50KCk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBl
ICZvcGVyYXRvcisrKCkKLSAgICAgIHsKLSAgICAgICAgIGluY3JlbWVudCgpOwotICAgICAgICAg
cmV0dXJuICp0aGlzOwotICAgICAgfQotCi0gICAgICByZWZlcmVuY2Ugb3BlcmF0b3IgKigpIGNv
bnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gZGVyZWYoKTsKLSAgICAgIH0KLSAgIH07Ci0K
LQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0KLSNlbmRpZiAvLyBDUFBUTF9KU09OX0hfSU5DTFVE
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9vdmVycmlkZXMvc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9vdmVy
cmlkZXMvc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjhjZmFkNzA1MTBjMmU4MTA3NDZkYzIzNmViNDQzNTI3OTc2N2RkMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJf
anNvbi9qc29uX3JlYWRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MjAgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVu
ZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNv
Z25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0
YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQot
I2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDxqc29uL2Fzc2Vy
dGlvbnMuaD4KLSMgaW5jbHVkZSA8anNvbi9yZWFkZXIuaD4KLSMgaW5jbHVkZSA8anNvbi92YWx1
ZS5oPgotIyBpbmNsdWRlICJqc29uX3Rvb2wuaCIKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09O
X0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgPGNzdGRpbz4K
LSNpbmNsdWRlIDxjYXNzZXJ0PgotI2luY2x1ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8c3RkZXhj
ZXB0PgotI2luY2x1ZGUgPHN0cmluZz4KLSNpbmNsdWRlIDxpc3RyZWFtPgotCi0jaWYgX01TQ19W
RVIgPj0gMTQwMCAvLyBWQysrIDguMAotI3ByYWdtYSB3YXJuaW5nKCBkaXNhYmxlIDogNDk5NiAp
ICAgLy8gZGlzYWJsZSB3YXJuaW5nIGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgotI2Vu
ZGlmCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLy8gSW1wbGVtZW50YXRpb24gb2YgY2xhc3MgRmVh
dHVyZXMKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLUZlYXR1cmVzOjpG
ZWF0dXJlcygpCi0gICA6IGFsbG93Q29tbWVudHNfKCB0cnVlICkKLSAgICwgc3RyaWN0Um9vdF8o
IGZhbHNlICkKLXsKLX0KLQotCi1GZWF0dXJlcyAKLUZlYXR1cmVzOjphbGwoKQotewotICAgcmV0
dXJuIEZlYXR1cmVzKCk7Ci19Ci0KLQotRmVhdHVyZXMgCi1GZWF0dXJlczo6c3RyaWN0TW9kZSgp
Ci17Ci0gICBGZWF0dXJlcyBmZWF0dXJlczsKLSAgIGZlYXR1cmVzLmFsbG93Q29tbWVudHNfID0g
ZmFsc2U7Ci0gICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHRydWU7Ci0gICByZXR1cm4gZmVhdHVy
ZXM7Ci19Ci0KLS8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIFJlYWRlcgotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi1zdGF0aWMgaW5saW5lIGJvb2wgCi1pbiggUmVh
ZGVyOjpDaGFyIGMsIFJlYWRlcjo6Q2hhciBjMSwgUmVhZGVyOjpDaGFyIGMyLCBSZWFkZXI6OkNo
YXIgYzMsIFJlYWRlcjo6Q2hhciBjNCApCi17Ci0gICByZXR1cm4gYyA9PSBjMSAgfHwgIGMgPT0g
YzIgIHx8ICBjID09IGMzICB8fCAgYyA9PSBjNDsKLX0KLQotc3RhdGljIGlubGluZSBib29sIAot
aW4oIFJlYWRlcjo6Q2hhciBjLCBSZWFkZXI6OkNoYXIgYzEsIFJlYWRlcjo6Q2hhciBjMiwgUmVh
ZGVyOjpDaGFyIGMzLCBSZWFkZXI6OkNoYXIgYzQsIFJlYWRlcjo6Q2hhciBjNSApCi17Ci0gICBy
ZXR1cm4gYyA9PSBjMSAgfHwgIGMgPT0gYzIgIHx8ICBjID09IGMzICB8fCAgYyA9PSBjNCAgfHwg
IGMgPT0gYzU7Ci19Ci0KLQotc3RhdGljIGJvb2wgCi1jb250YWluc05ld0xpbmUoIFJlYWRlcjo6
TG9jYXRpb24gYmVnaW4sIAotICAgICAgICAgICAgICAgICBSZWFkZXI6OkxvY2F0aW9uIGVuZCAp
Ci17Ci0gICBmb3IgKCA7YmVnaW4gPCBlbmQ7ICsrYmVnaW4gKQotICAgICAgaWYgKCAqYmVnaW4g
PT0gJ1xuJyAgfHwgICpiZWdpbiA9PSAnXHInICkKLSAgICAgICAgIHJldHVybiB0cnVlOwotICAg
cmV0dXJuIGZhbHNlOwotfQotCi0KLS8vIENsYXNzIFJlYWRlcgotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVJl
YWRlcjo6UmVhZGVyKCkKLSAgICA6IGVycm9yc18oKSwKLSAgICAgIGRvY3VtZW50XygpLAotICAg
ICAgYmVnaW5fKCksCi0gICAgICBlbmRfKCksCi0gICAgICBjdXJyZW50XygpLAotICAgICAgbGFz
dFZhbHVlRW5kXygpLAotICAgICAgbGFzdFZhbHVlXygpLAotICAgICAgY29tbWVudHNCZWZvcmVf
KCksCi0gICAgICBmZWF0dXJlc18oIEZlYXR1cmVzOjphbGwoKSApLAotICAgICAgY29sbGVjdENv
bW1lbnRzXygpCi17Ci19Ci0KLQotUmVhZGVyOjpSZWFkZXIoIGNvbnN0IEZlYXR1cmVzICZmZWF0
dXJlcyApCi0gICAgOiBlcnJvcnNfKCksCi0gICAgICBkb2N1bWVudF8oKSwKLSAgICAgIGJlZ2lu
XygpLAotICAgICAgZW5kXygpLAotICAgICAgY3VycmVudF8oKSwKLSAgICAgIGxhc3RWYWx1ZUVu
ZF8oKSwKLSAgICAgIGxhc3RWYWx1ZV8oKSwKLSAgICAgIGNvbW1lbnRzQmVmb3JlXygpLAotICAg
ICAgZmVhdHVyZXNfKCBmZWF0dXJlcyApLAotICAgICAgY29sbGVjdENvbW1lbnRzXygpCi17Ci19
Ci0KLQotYm9vbAotUmVhZGVyOjpwYXJzZSggY29uc3Qgc3RkOjpzdHJpbmcgJmRvY3VtZW50LCAK
LSAgICAgICAgICAgICAgIFZhbHVlICZyb290LAotICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0
Q29tbWVudHMgKQotewotICAgZG9jdW1lbnRfID0gZG9jdW1lbnQ7Ci0gICBjb25zdCBjaGFyICpi
ZWdpbiA9IGRvY3VtZW50Xy5jX3N0cigpOwotICAgY29uc3QgY2hhciAqZW5kID0gYmVnaW4gKyBk
b2N1bWVudF8ubGVuZ3RoKCk7Ci0gICByZXR1cm4gcGFyc2UoIGJlZ2luLCBlbmQsIHJvb3QsIGNv
bGxlY3RDb21tZW50cyApOwotfQotCi0KLWJvb2wKLVJlYWRlcjo6cGFyc2UoIHN0ZDo6aXN0cmVh
bSYgc2luLAotICAgICAgICAgICAgICAgVmFsdWUgJnJvb3QsCi0gICAgICAgICAgICAgICBib29s
IGNvbGxlY3RDb21tZW50cyApCi17Ci0gICAvL3N0ZDo6aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBi
ZWdpbihzaW4pOwotICAgLy9zdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4gZW5kOwotICAgLy8g
VGhvc2Ugd291bGQgYWxsb3cgc3RyZWFtZWQgaW5wdXQgZnJvbSBhIGZpbGUsIGlmIHBhcnNlKCkg
d2VyZSBhCi0gICAvLyB0ZW1wbGF0ZSBmdW5jdGlvbi4KLQotICAgLy8gU2luY2Ugc3RkOjpzdHJp
bmcgaXMgcmVmZXJlbmNlLWNvdW50ZWQsIHRoaXMgYXQgbGVhc3QgZG9lcyBub3QKLSAgIC8vIGNy
ZWF0ZSBhbiBleHRyYSBjb3B5LgotICAgc3RkOjpzdHJpbmcgZG9jOwotICAgc3RkOjpnZXRsaW5l
KHNpbiwgZG9jLCAoY2hhcilFT0YpOwotICAgcmV0dXJuIHBhcnNlKCBkb2MsIHJvb3QsIGNvbGxl
Y3RDb21tZW50cyApOwotfQotCi1ib29sIAotUmVhZGVyOjpwYXJzZSggY29uc3QgY2hhciAqYmVn
aW5Eb2MsIGNvbnN0IGNoYXIgKmVuZERvYywgCi0gICAgICAgICAgICAgICBWYWx1ZSAmcm9vdCwK
LSAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzICkKLXsKLSAgIGlmICggIWZlYXR1
cmVzXy5hbGxvd0NvbW1lbnRzXyApCi0gICB7Ci0gICAgICBjb2xsZWN0Q29tbWVudHMgPSBmYWxz
ZTsKLSAgIH0KLQotICAgYmVnaW5fID0gYmVnaW5Eb2M7Ci0gICBlbmRfID0gZW5kRG9jOwotICAg
Y29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKLSAgIGN1cnJlbnRfID0gYmVnaW5f
OwotICAgbGFzdFZhbHVlRW5kXyA9IDA7Ci0gICBsYXN0VmFsdWVfID0gMDsKLSAgIGNvbW1lbnRz
QmVmb3JlXyA9ICIiOwotICAgZXJyb3JzXy5jbGVhcigpOwotICAgd2hpbGUgKCAhbm9kZXNfLmVt
cHR5KCkgKQotICAgICAgbm9kZXNfLnBvcCgpOwotICAgbm9kZXNfLnB1c2goICZyb290ICk7Ci0g
ICAKLSAgIGJvb2wgc3VjY2Vzc2Z1bCA9IHJlYWRWYWx1ZSgpOwotICAgVG9rZW4gdG9rZW47Ci0g
ICBza2lwQ29tbWVudFRva2VucyggdG9rZW4gKTsKLSAgIGlmICggY29sbGVjdENvbW1lbnRzXyAg
JiYgICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSApCi0gICAgICByb290LnNldENvbW1lbnQoIGNv
bW1lbnRzQmVmb3JlXywgY29tbWVudEFmdGVyICk7Ci0gICBpZiAoIGZlYXR1cmVzXy5zdHJpY3RS
b290XyApCi0gICB7Ci0gICAgICBpZiAoICFyb290LmlzQXJyYXkoKSAgJiYgICFyb290LmlzT2Jq
ZWN0KCkgKQotICAgICAgewotICAgICAgICAgLy8gU2V0IGVycm9yIGxvY2F0aW9uIHRvIHN0YXJ0
IG9mIGRvYywgaWRlYWxseSBzaG91bGQgYmUgZmlyc3QgdG9rZW4gZm91bmQgaW4gZG9jCi0gICAg
ICAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gICAgICAgICB0b2tlbi5zdGFydF8gPSBi
ZWdpbkRvYzsKLSAgICAgICAgIHRva2VuLmVuZF8gPSBlbmREb2M7Ci0gICAgICAgICBhZGRFcnJv
ciggIkEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBv
YmplY3QgdmFsdWUuIiwKLSAgICAgICAgICAgICAgICAgICB0b2tlbiApOwotICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgfQotICAgfQotICAgcmV0dXJuIHN1Y2Nlc3NmdWw7Ci19Ci0KLQot
Ym9vbAotUmVhZGVyOjpyZWFkVmFsdWUoKQotewotICAgVG9rZW4gdG9rZW47Ci0gICBza2lwQ29t
bWVudFRva2VucyggdG9rZW4gKTsKLSAgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7Ci0KLSAgIGlm
ICggY29sbGVjdENvbW1lbnRzXyAgJiYgICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSApCi0gICB7
Ci0gICAgICBjdXJyZW50VmFsdWUoKS5zZXRDb21tZW50KCBjb21tZW50c0JlZm9yZV8sIGNvbW1l
bnRCZWZvcmUgKTsKLSAgICAgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOwotICAgfQotCi0KLSAgIHN3
aXRjaCAoIHRva2VuLnR5cGVfICkKLSAgIHsKLSAgIGNhc2UgdG9rZW5PYmplY3RCZWdpbjoKLSAg
ICAgIHN1Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KCB0b2tlbiApOwotICAgICAgYnJlYWs7Ci0gICBj
YXNlIHRva2VuQXJyYXlCZWdpbjoKLSAgICAgIHN1Y2Nlc3NmdWwgPSByZWFkQXJyYXkoIHRva2Vu
ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgdG9rZW5OdW1iZXI6Ci0gICAgICBzdWNjZXNzZnVs
ID0gZGVjb2RlTnVtYmVyKCB0b2tlbiApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuU3Ry
aW5nOgotICAgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZVN0cmluZyggdG9rZW4gKTsKLSAgICAgIGJy
ZWFrOwotICAgY2FzZSB0b2tlblRydWU6Ci0gICAgICBjdXJyZW50VmFsdWUoKSA9IHRydWU7Ci0g
ICAgICBicmVhazsKLSAgIGNhc2UgdG9rZW5GYWxzZToKLSAgICAgIGN1cnJlbnRWYWx1ZSgpID0g
ZmFsc2U7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgdG9rZW5OdWxsOgotICAgICAgY3VycmVudFZh
bHVlKCkgPSBWYWx1ZSgpOwotICAgICAgYnJlYWs7Ci0gICBkZWZhdWx0OgotICAgICAgcmV0dXJu
IGFkZEVycm9yKCAiU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVk
LiIsIHRva2VuICk7Ci0gICB9Ci0KLSAgIGlmICggY29sbGVjdENvbW1lbnRzXyApCi0gICB7Ci0g
ICAgICBsYXN0VmFsdWVFbmRfID0gY3VycmVudF87Ci0gICAgICBsYXN0VmFsdWVfID0gJmN1cnJl
bnRWYWx1ZSgpOwotICAgfQotCi0gICByZXR1cm4gc3VjY2Vzc2Z1bDsKLX0KLQotCi12b2lkIAot
UmVhZGVyOjpza2lwQ29tbWVudFRva2VucyggVG9rZW4gJnRva2VuICkKLXsKLSAgIGlmICggZmVh
dHVyZXNfLmFsbG93Q29tbWVudHNfICkKLSAgIHsKLSAgICAgIGRvCi0gICAgICB7Ci0gICAgICAg
ICByZWFkVG9rZW4oIHRva2VuICk7Ci0gICAgICB9Ci0gICAgICB3aGlsZSAoIHRva2VuLnR5cGVf
ID09IHRva2VuQ29tbWVudCApOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgcmVhZFRva2Vu
KCB0b2tlbiApOwotICAgfQotfQotCi0KLWJvb2wgCi1SZWFkZXI6OmV4cGVjdFRva2VuKCBUb2tl
blR5cGUgdHlwZSwgVG9rZW4gJnRva2VuLCBjb25zdCBjaGFyICptZXNzYWdlICkKLXsKLSAgIHJl
YWRUb2tlbiggdG9rZW4gKTsKLSAgIGlmICggdG9rZW4udHlwZV8gIT0gdHlwZSApCi0gICAgICBy
ZXR1cm4gYWRkRXJyb3IoIG1lc3NhZ2UsIHRva2VuICk7Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQot
Ci1ib29sIAotUmVhZGVyOjpyZWFkVG9rZW4oIFRva2VuICZ0b2tlbiApCi17Ci0gICBza2lwU3Bh
Y2VzKCk7Ci0gICB0b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKLSAgIENoYXIgYyA9IGdldE5leHRD
aGFyKCk7Ci0gICBib29sIG9rID0gdHJ1ZTsKLSAgIHN3aXRjaCAoIGMgKQotICAgewotICAgY2Fz
ZSAneyc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47Ci0gICAgICBicmVh
azsKLSAgIGNhc2UgJ30nOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEVuZDsKLSAg
ICAgIGJyZWFrOwotICAgY2FzZSAnWyc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlC
ZWdpbjsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAnXSc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRv
a2VuQXJyYXlFbmQ7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJyInOgotICAgICAgdG9rZW4udHlw
ZV8gPSB0b2tlblN0cmluZzsKLSAgICAgIG9rID0gcmVhZFN0cmluZygpOwotICAgICAgYnJlYWs7
Ci0gICBjYXNlICcvJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5Db21tZW50OwotICAgICAg
b2sgPSByZWFkQ29tbWVudCgpOwotICAgICAgYnJlYWs7Ci0gICBjYXNlICcwJzoKLSAgIGNhc2Ug
JzEnOgotICAgY2FzZSAnMic6Ci0gICBjYXNlICczJzoKLSAgIGNhc2UgJzQnOgotICAgY2FzZSAn
NSc6Ci0gICBjYXNlICc2JzoKLSAgIGNhc2UgJzcnOgotICAgY2FzZSAnOCc6Ci0gICBjYXNlICc5
JzoKLSAgIGNhc2UgJy0nOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKLSAgICAg
IHJlYWROdW1iZXIoKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAndCc6Ci0gICAgICB0b2tlbi50
eXBlXyA9IHRva2VuVHJ1ZTsKLSAgICAgIG9rID0gbWF0Y2goICJydWUiLCAzICk7Ci0gICAgICBi
cmVhazsKLSAgIGNhc2UgJ2YnOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOwotICAg
ICAgb2sgPSBtYXRjaCggImFsc2UiLCA0ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJ24nOgot
ICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bGw7Ci0gICAgICBvayA9IG1hdGNoKCAidWxsIiwg
MyApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlICcsJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5BcnJheVNlcGFyYXRvcjsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAnOic6Ci0gICAgICB0b2tl
bi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIDA6
Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZTdHJlYW07Ci0gICAgICBicmVhazsKLSAg
IGRlZmF1bHQ6Ci0gICAgICBvayA9IGZhbHNlOwotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBpZiAo
ICFvayApCi0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Ci0gICB0b2tlbi5lbmRfID0g
Y3VycmVudF87Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi12b2lkIAotUmVhZGVyOjpza2lwU3Bh
Y2VzKCkKLXsKLSAgIHdoaWxlICggY3VycmVudF8gIT0gZW5kXyApCi0gICB7Ci0gICAgICBDaGFy
IGMgPSAqY3VycmVudF87Ci0gICAgICBpZiAoIGMgPT0gJyAnICB8fCAgYyA9PSAnXHQnICB8fCAg
YyA9PSAnXHInICB8fCAgYyA9PSAnXG4nICkKLSAgICAgICAgICsrY3VycmVudF87Ci0gICAgICBl
bHNlCi0gICAgICAgICBicmVhazsKLSAgIH0KLX0KLQotCi1ib29sIAotUmVhZGVyOjptYXRjaCgg
TG9jYXRpb24gcGF0dGVybiwgCi0gICAgICAgICAgICAgICBpbnQgcGF0dGVybkxlbmd0aCApCi17
Ci0gICBpZiAoIGVuZF8gLSBjdXJyZW50XyA8IHBhdHRlcm5MZW5ndGggKQotICAgICAgcmV0dXJu
IGZhbHNlOwotICAgaW50IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKLSAgIHdoaWxlICggaW5kZXgt
LSApCi0gICAgICBpZiAoIGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSApCi0gICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICBjdXJyZW50XyArPSBwYXR0ZXJuTGVuZ3RoOwotICAgcmV0
dXJuIHRydWU7Ci19Ci0KLQotYm9vbAotUmVhZGVyOjpyZWFkQ29tbWVudCgpCi17Ci0gICBMb2Nh
dGlvbiBjb21tZW50QmVnaW4gPSBjdXJyZW50XyAtIDE7Ci0gICBDaGFyIGMgPSBnZXROZXh0Q2hh
cigpOwotICAgYm9vbCBzdWNjZXNzZnVsID0gZmFsc2U7Ci0gICBpZiAoIGMgPT0gJyonICkKLSAg
ICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ1N0eWxlQ29tbWVudCgpOwotICAgZWxzZSBpZiAoIGMgPT0g
Jy8nICkKLSAgICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ3BwU3R5bGVDb21tZW50KCk7Ci0gICBpZiAo
ICFzdWNjZXNzZnVsICkKLSAgICAgIHJldHVybiBmYWxzZTsKLQotICAgaWYgKCBjb2xsZWN0Q29t
bWVudHNfICkKLSAgIHsKLSAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ID0gY29tbWVu
dEJlZm9yZTsKLSAgICAgIGlmICggbGFzdFZhbHVlRW5kXyAgJiYgICFjb250YWluc05ld0xpbmUo
IGxhc3RWYWx1ZUVuZF8sIGNvbW1lbnRCZWdpbiApICkKLSAgICAgIHsKLSAgICAgICAgIGlmICgg
YyAhPSAnKicgIHx8ICAhY29udGFpbnNOZXdMaW5lKCBjb21tZW50QmVnaW4sIGN1cnJlbnRfICkg
KQotICAgICAgICAgICAgcGxhY2VtZW50ID0gY29tbWVudEFmdGVyT25TYW1lTGluZTsKLSAgICAg
IH0KLQotICAgICAgYWRkQ29tbWVudCggY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50
ICk7Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi12b2lkIAotUmVhZGVyOjphZGRDb21t
ZW50KCBMb2NhdGlvbiBiZWdpbiwgCi0gICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwg
Ci0gICAgICAgICAgICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkKLXsKLSAg
IGFzc2VydCggY29sbGVjdENvbW1lbnRzXyApOwotICAgaWYgKCBwbGFjZW1lbnQgPT0gY29tbWVu
dEFmdGVyT25TYW1lTGluZSApCi0gICB7Ci0gICAgICBhc3NlcnQoIGxhc3RWYWx1ZV8gIT0gMCAp
OwotICAgICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVudCggc3RkOjpzdHJpbmcoIGJlZ2luLCBlbmQg
KSwgcGxhY2VtZW50ICk7Ci0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAgICBpZiAoICFjb21tZW50
c0JlZm9yZV8uZW1wdHkoKSApCi0gICAgICAgICBjb21tZW50c0JlZm9yZV8gKz0gIlxuIjsKLSAg
ICAgIGNvbW1lbnRzQmVmb3JlXyArPSBzdGQ6OnN0cmluZyggYmVnaW4sIGVuZCApOwotICAgfQot
fQotCi0KLWJvb2wgCi1SZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50KCkKLXsKLSAgIHdoaWxlICgg
Y3VycmVudF8gIT0gZW5kXyApCi0gICB7Ci0gICAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwot
ICAgICAgaWYgKCBjID09ICcqJyAgJiYgICpjdXJyZW50XyA9PSAnLycgKQotICAgICAgICAgYnJl
YWs7Ci0gICB9Ci0gICByZXR1cm4gZ2V0TmV4dENoYXIoKSA9PSAnLyc7Ci19Ci0KLQotYm9vbCAK
LVJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVudCgpCi17Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9
IGVuZF8gKQotICAgewotICAgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICAgIGlmICgg
IGMgPT0gJ1xyJyAgfHwgIGMgPT0gJ1xuJyApCi0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIHJl
dHVybiB0cnVlOwotfQotCi0KLXZvaWQgCi1SZWFkZXI6OnJlYWROdW1iZXIoKQotewotICAgd2hp
bGUgKCBjdXJyZW50XyAhPSBlbmRfICkKLSAgIHsKLSAgICAgIGlmICggISgqY3VycmVudF8gPj0g
JzAnICAmJiAgKmN1cnJlbnRfIDw9ICc5JykgICYmCi0gICAgICAgICAgICFpbiggKmN1cnJlbnRf
LCAnLicsICdlJywgJ0UnLCAnKycsICctJyApICkKLSAgICAgICAgIGJyZWFrOwotICAgICAgKytj
dXJyZW50XzsKLSAgIH0KLX0KLQotYm9vbAotUmVhZGVyOjpyZWFkU3RyaW5nKCkKLXsKLSAgIENo
YXIgYyA9IDA7Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVuZF8gKQotICAgewotICAgICAgYyA9
IGdldE5leHRDaGFyKCk7Ci0gICAgICBpZiAoIGMgPT0gJ1xcJyApCi0gICAgICAgICBnZXROZXh0
Q2hhcigpOwotICAgICAgZWxzZSBpZiAoIGMgPT0gJyInICkKLSAgICAgICAgIGJyZWFrOwotICAg
fQotICAgcmV0dXJuIGMgPT0gJyInOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OnJlYWRPYmplY3Qo
IFRva2VuICYvKnRva2VuU3RhcnQqLyApCi17Ci0gICBUb2tlbiB0b2tlbk5hbWU7Ci0gICBzdGQ6
OnN0cmluZyBuYW1lOwotICAgY3VycmVudFZhbHVlKCkgPSBWYWx1ZSggb2JqZWN0VmFsdWUgKTsK
LSAgIHdoaWxlICggcmVhZFRva2VuKCB0b2tlbk5hbWUgKSApCi0gICB7Ci0gICAgICBib29sIGlu
aXRpYWxUb2tlbk9rID0gdHJ1ZTsKLSAgICAgIHdoaWxlICggdG9rZW5OYW1lLnR5cGVfID09IHRv
a2VuQ29tbWVudCAgJiYgIGluaXRpYWxUb2tlbk9rICkKLSAgICAgICAgIGluaXRpYWxUb2tlbk9r
ID0gcmVhZFRva2VuKCB0b2tlbk5hbWUgKTsKLSAgICAgIGlmICAoICFpbml0aWFsVG9rZW5PayAp
Ci0gICAgICAgICBicmVhazsKLSAgICAgIGlmICggdG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2Jq
ZWN0RW5kICAmJiAgbmFtZS5lbXB0eSgpICkgIC8vIGVtcHR5IG9iamVjdAotICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICBpZiAoIHRva2VuTmFtZS50eXBlXyAhPSB0b2tlblN0cmluZyApCi0g
ICAgICAgICBicmVhazsKLSAgICAgIAotICAgICAgbmFtZSA9ICIiOwotICAgICAgaWYgKCAhZGVj
b2RlU3RyaW5nKCB0b2tlbk5hbWUsIG5hbWUgKSApCi0gICAgICAgICByZXR1cm4gcmVjb3ZlckZy
b21FcnJvciggdG9rZW5PYmplY3RFbmQgKTsKLQotICAgICAgVG9rZW4gY29sb247Ci0gICAgICBp
ZiAoICFyZWFkVG9rZW4oIGNvbG9uICkgfHwgIGNvbG9uLnR5cGVfICE9IHRva2VuTWVtYmVyU2Vw
YXJhdG9yICkKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoICJN
aXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbG9uLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRva2VuT2JqZWN0RW5kICk7Ci0gICAgICB9Ci0gICAgICBWYWx1ZSAmdmFsdWUgPSBj
dXJyZW50VmFsdWUoKVsgbmFtZSBdOwotICAgICAgbm9kZXNfLnB1c2goICZ2YWx1ZSApOwotICAg
ICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOwotICAgICAgbm9kZXNfLnBvcCgpOwotICAgICAgaWYg
KCAhb2sgKSAvLyBlcnJvciBhbHJlYWR5IHNldAotICAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9t
RXJyb3IoIHRva2VuT2JqZWN0RW5kICk7Ci0KLSAgICAgIFRva2VuIGNvbW1hOwotICAgICAgaWYg
KCAhcmVhZFRva2VuKCBjb21tYSApCi0gICAgICAgICAgICB8fCAgKCBjb21tYS50eXBlXyAhPSB0
b2tlbk9iamVjdEVuZCAgJiYgIAotICAgICAgICAgICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9r
ZW5BcnJheVNlcGFyYXRvciAmJgotICAgICAgICAgICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9r
ZW5Db21tZW50ICkgKQotICAgICAgewotICAgICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3Zl
ciggIk1pc3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRva2VuT2JqZWN0RW5kICk7Ci0gICAgICB9Ci0gICAgICBib29sIGZp
bmFsaXplVG9rZW5PayA9IHRydWU7Ci0gICAgICB3aGlsZSAoIGNvbW1hLnR5cGVfID09IHRva2Vu
Q29tbWVudCAmJgotICAgICAgICAgICAgICBmaW5hbGl6ZVRva2VuT2sgKQotICAgICAgICAgZmlu
YWxpemVUb2tlbk9rID0gcmVhZFRva2VuKCBjb21tYSApOwotICAgICAgaWYgKCBjb21tYS50eXBl
XyA9PSB0b2tlbk9iamVjdEVuZCApCi0gICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgIH0KLSAgIHJl
dHVybiBhZGRFcnJvckFuZFJlY292ZXIoICJNaXNzaW5nICd9JyBvciBvYmplY3QgbWVtYmVyIG5h
bWUiLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuTmFtZSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b2tlbk9iamVjdEVuZCApOwotfQotCi0KLWJvb2wgCi1S
ZWFkZXI6OnJlYWRBcnJheSggVG9rZW4gJi8qdG9rZW5TdGFydCovICkKLXsKLSAgIGN1cnJlbnRW
YWx1ZSgpID0gVmFsdWUoIGFycmF5VmFsdWUgKTsKLSAgIHNraXBTcGFjZXMoKTsKLSAgIGlmICgg
KmN1cnJlbnRfID09ICddJyApIC8vIGVtcHR5IGFycmF5Ci0gICB7Ci0gICAgICBUb2tlbiBlbmRB
cnJheTsKLSAgICAgIHJlYWRUb2tlbiggZW5kQXJyYXkgKTsKLSAgICAgIHJldHVybiB0cnVlOwot
ICAgfQotICAgaW50IGluZGV4ID0gMDsKLSAgIGZvciAoOzspCi0gICB7Ci0gICAgICBWYWx1ZSAm
dmFsdWUgPSBjdXJyZW50VmFsdWUoKVsgaW5kZXgrKyBdOwotICAgICAgbm9kZXNfLnB1c2goICZ2
YWx1ZSApOwotICAgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOwotICAgICAgbm9kZXNfLnBvcCgp
OwotICAgICAgaWYgKCAhb2sgKSAvLyBlcnJvciBhbHJlYWR5IHNldAotICAgICAgICAgcmV0dXJu
IHJlY292ZXJGcm9tRXJyb3IoIHRva2VuQXJyYXlFbmQgKTsKLQotICAgICAgVG9rZW4gdG9rZW47
Ci0gICAgICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5Lgot
ICAgICAgb2sgPSByZWFkVG9rZW4oIHRva2VuICk7Ci0gICAgICB3aGlsZSAoIHRva2VuLnR5cGVf
ID09IHRva2VuQ29tbWVudCAgJiYgIG9rICkKLSAgICAgIHsKLSAgICAgICAgIG9rID0gcmVhZFRv
a2VuKCB0b2tlbiApOwotICAgICAgfQotICAgICAgYm9vbCBiYWRUb2tlblR5cGUgPSAoIHRva2Vu
LnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgICYmCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheUVuZCApOwotICAgICAgaWYgKCAhb2sgIHx8
ICBiYWRUb2tlblR5cGUgKQotICAgICAgewotICAgICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVj
b3ZlciggIk1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbiIsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdG9rZW5BcnJheUVuZCApOwotICAgICAgfQotICAgICAgaWYgKCB0
b2tlbi50eXBlXyA9PSB0b2tlbkFycmF5RW5kICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAg
cmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2RlTnVtYmVyKCBUb2tlbiAm
dG9rZW4gKQotewotICAgYm9vbCBpc0RvdWJsZSA9IGZhbHNlOwotICAgZm9yICggTG9jYXRpb24g
aW5zcGVjdCA9IHRva2VuLnN0YXJ0XzsgaW5zcGVjdCAhPSB0b2tlbi5lbmRfOyArK2luc3BlY3Qg
KQotICAgewotICAgICAgaXNEb3VibGUgPSBpc0RvdWJsZSAgCi0gICAgICAgICAgICAgICAgIHx8
ICBpbiggKmluc3BlY3QsICcuJywgJ2UnLCAnRScsICcrJyApICAKLSAgICAgICAgICAgICAgICAg
fHwgICggKmluc3BlY3QgPT0gJy0nICAmJiAgaW5zcGVjdCAhPSB0b2tlbi5zdGFydF8gKTsKLSAg
IH0KLSAgIGlmICggaXNEb3VibGUgKQotICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSggdG9rZW4g
KTsKLSAgIC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYg
dGhlIG51bWJlciBpcwotICAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZh
bHVlIG9mIGFuIGludGVnZXIgdGhlbgotICAgLy8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBk
b3VibGUuCi0gICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOwotICAgYm9vbCBpc05l
Z2F0aXZlID0gKmN1cnJlbnQgPT0gJy0nOwotICAgaWYgKCBpc05lZ2F0aXZlICkKLSAgICAgICsr
Y3VycmVudDsKLSAgIFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPSBpc05lZ2F0
aXZlID8gVmFsdWU6Okxhcmdlc3RVSW50KC1WYWx1ZTo6bWluTGFyZ2VzdEludCkgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZhbHVlOjptYXhM
YXJnZXN0VUludDsKLSAgIFZhbHVlOjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2Vy
VmFsdWUgLyAxMDsKLSAgIFZhbHVlOjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7Ci0gICB3aGlsZSAo
IGN1cnJlbnQgPCB0b2tlbi5lbmRfICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7
Ci0gICAgICBpZiAoIGMgPCAnMCcgIHx8ICBjID4gJzknICkKLSAgICAgICAgIHJldHVybiBhZGRF
cnJvciggIiciICsgc3RkOjpzdHJpbmcoIHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyApICsgIicg
aXMgbm90IGEgbnVtYmVyLiIsIHRva2VuICk7Ci0gICAgICBWYWx1ZTo6VUludCBkaWdpdChjIC0g
JzAnKTsKLSAgICAgIGlmICggdmFsdWUgPj0gdGhyZXNob2xkICkKLSAgICAgIHsKLSAgICAgICAg
IC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJv
dW5kZWQgZG93bikuIElmCi0gICAgICAgICAvLyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0
aGUgbGltaXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQsIGFuZAotICAgICAgICAgLy8gYykg
aXQncyBzbWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9r
YXkuCi0gICAgICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUg
dG8gYXZvaWQgb3ZlcmZsb3cuCi0gICAgICAgICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwKLSAg
ICAgICAgICAgICBjdXJyZW50ICE9IHRva2VuLmVuZF8gfHwKLSAgICAgICAgICAgICBkaWdpdCA+
IG1heEludGVnZXJWYWx1ZSAlIDEwKQotICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGRl
Y29kZURvdWJsZSggdG9rZW4gKTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHZhbHVlID0g
dmFsdWUgKiAxMCArIGRpZ2l0OwotICAgfQotICAgaWYgKCBpc05lZ2F0aXZlICkKLSAgICAgIGN1
cnJlbnRWYWx1ZSgpID0gLVZhbHVlOjpMYXJnZXN0SW50KCB2YWx1ZSApOwotICAgZWxzZSBpZiAo
IHZhbHVlIDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4SW50KSApCi0gICAgICBjdXJy
ZW50VmFsdWUoKSA9IFZhbHVlOjpMYXJnZXN0SW50KCB2YWx1ZSApOwotICAgZWxzZQotICAgICAg
Y3VycmVudFZhbHVlKCkgPSB2YWx1ZTsKLSAgIHJldHVybiB0cnVlOwotfQotCi0KLWJvb2wgCi1S
ZWFkZXI6OmRlY29kZURvdWJsZSggVG9rZW4gJnRva2VuICkKLXsKLSAgIGRvdWJsZSB2YWx1ZSA9
IDA7Ci0gICBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDMyOwotICAgaW50IGNvdW50OwotICAgaW50
IGxlbmd0aCA9IGludCh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfKTsKLQotICAgLy8gU2FuaXR5
IGNoZWNrIHRvIGF2b2lkIGJ1ZmZlciBvdmVyZmxvdyBleHBsb2l0cy4KLSAgIGlmIChsZW5ndGgg
PCAwKSB7Ci0gICAgICByZXR1cm4gYWRkRXJyb3IoICJVbmFibGUgdG8gcGFyc2UgdG9rZW4gbGVu
Z3RoIiwgdG9rZW4gKTsKLSAgIH0KLQotICAgLy8gQXZvaWQgdXNpbmcgYSBzdHJpbmcgY29uc3Rh
bnQgZm9yIHRoZSBmb3JtYXQgY29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KLSAgIC8vIHNzY2FuZiwg
YXMgdGhpcyBjYW4gY2F1c2UgaGFyZCB0byBkZWJ1ZyBjcmFzaGVzIG9uIE9TIFguIFNlZSBoZXJl
IGZvciBtb3JlCi0gICAvLyBpbmZvOgotICAgLy8KLSAgIC8vICAgICBodHRwOi8vZGV2ZWxvcGVy
LmFwcGxlLmNvbS9saWJyYXJ5L21hYy8jRE9DVU1FTlRBVElPTi9EZXZlbG9wZXJUb29scy9nY2Mt
NC4wLjEvZ2NjL0luY29tcGF0aWJpbGl0aWVzLmh0bWwKLSAgIGNoYXIgZm9ybWF0W10gPSAiJWxm
IjsKLQotICAgaWYgKCBsZW5ndGggPD0gYnVmZmVyU2l6ZSApCi0gICB7Ci0gICAgICBDaGFyIGJ1
ZmZlcltidWZmZXJTaXplKzFdOwotICAgICAgbWVtY3B5KCBidWZmZXIsIHRva2VuLnN0YXJ0Xywg
bGVuZ3RoICk7Ci0gICAgICBidWZmZXJbbGVuZ3RoXSA9IDA7Ci0gICAgICBjb3VudCA9IHNzY2Fu
ZiggYnVmZmVyLCBmb3JtYXQsICZ2YWx1ZSApOwotICAgfQotICAgZWxzZQotICAgewotICAgICAg
c3RkOjpzdHJpbmcgYnVmZmVyKCB0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8gKTsKLSAgICAgIGNv
dW50ID0gc3NjYW5mKCBidWZmZXIuY19zdHIoKSwgZm9ybWF0LCAmdmFsdWUgKTsKLSAgIH0KLQot
ICAgaWYgKCBjb3VudCAhPSAxICkKLSAgICAgIHJldHVybiBhZGRFcnJvciggIiciICsgc3RkOjpz
dHJpbmcoIHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyApICsgIicgaXMgbm90IGEgbnVtYmVyLiIs
IHRva2VuICk7Ci0gICBjdXJyZW50VmFsdWUoKSA9IHZhbHVlOwotICAgcmV0dXJuIHRydWU7Ci19
Ci0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2RlU3RyaW5nKCBUb2tlbiAmdG9rZW4gKQotewotICAg
c3RkOjpzdHJpbmcgZGVjb2RlZDsKLSAgIGlmICggIWRlY29kZVN0cmluZyggdG9rZW4sIGRlY29k
ZWQgKSApCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBjdXJyZW50VmFsdWUoKSA9IGRlY29kZWQ7
Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1ib29sIAotUmVhZGVyOjpkZWNvZGVTdHJpbmcoIFRv
a2VuICZ0b2tlbiwgc3RkOjpzdHJpbmcgJmRlY29kZWQgKQotewotICAgZGVjb2RlZC5yZXNlcnZl
KCB0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMiApOwotICAgTG9jYXRpb24gY3VycmVudCA9
IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAgJyInCi0gICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5l
bmRfIC0gMTsgICAgICAvLyBkbyBub3QgaW5jbHVkZSAnIicKLSAgIHdoaWxlICggY3VycmVudCAh
PSBlbmQgKQotICAgewotICAgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICAgIGlmICggYyA9
PSAnIicgKQotICAgICAgICAgYnJlYWs7Ci0gICAgICBlbHNlIGlmICggYyA9PSAnXFwnICkKLSAg
ICAgIHsKLSAgICAgICAgIGlmICggY3VycmVudCA9PSBlbmQgKQotICAgICAgICAgICAgcmV0dXJu
IGFkZEVycm9yKCAiRW1wdHkgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJy
ZW50ICk7Ci0gICAgICAgICBDaGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7Ci0gICAgICAgICBzd2l0
Y2ggKCBlc2NhcGUgKQotICAgICAgICAgewotICAgICAgICAgY2FzZSAnIic6IGRlY29kZWQgKz0g
JyInOyBicmVhazsKLSAgICAgICAgIGNhc2UgJy8nOiBkZWNvZGVkICs9ICcvJzsgYnJlYWs7Ci0g
ICAgICAgICBjYXNlICdcXCc6IGRlY29kZWQgKz0gJ1xcJzsgYnJlYWs7Ci0gICAgICAgICBjYXNl
ICdiJzogZGVjb2RlZCArPSAnXGInOyBicmVhazsKLSAgICAgICAgIGNhc2UgJ2YnOiBkZWNvZGVk
ICs9ICdcZic7IGJyZWFrOwotICAgICAgICAgY2FzZSAnbic6IGRlY29kZWQgKz0gJ1xuJzsgYnJl
YWs7Ci0gICAgICAgICBjYXNlICdyJzogZGVjb2RlZCArPSAnXHInOyBicmVhazsKLSAgICAgICAg
IGNhc2UgJ3QnOiBkZWNvZGVkICs9ICdcdCc7IGJyZWFrOwotICAgICAgICAgY2FzZSAndSc6Ci0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKLSAgICAg
ICAgICAgICAgIGlmICggIWRlY29kZVVuaWNvZGVDb2RlUG9pbnQoIHRva2VuLCBjdXJyZW50LCBl
bmQsIHVuaWNvZGUgKSApCi0gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
ICAgICAgICBkZWNvZGVkICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2RlKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJl
dHVybiBhZGRFcnJvciggIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1
cnJlbnQgKTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgIHsKLSAgICAg
ICAgIGRlY29kZWQgKz0gYzsKLSAgICAgIH0KLSAgIH0KLSAgIHJldHVybiB0cnVlOwotfQotCi1i
b29sCi1SZWFkZXI6OmRlY29kZVVuaWNvZGVDb2RlUG9pbnQoIFRva2VuICZ0b2tlbiwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gJmN1cnJlbnQsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICZ1bmljb2RlICkKLXsK
LQotICAgaWYgKCAhZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKCB0b2tlbiwgY3VycmVudCwg
ZW5kLCB1bmljb2RlICkgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgaWYgKHVuaWNvZGUgPj0g
MHhEODAwICYmIHVuaWNvZGUgPD0gMHhEQkZGKQotICAgewotICAgICAgLy8gc3Vycm9nYXRlIHBh
aXJzCi0gICAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCi0gICAgICAgICByZXR1cm4gYWRkRXJy
b3IoICJhZGRpdGlvbmFsIHNpeCBjaGFyYWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUg
c3Vycm9nYXRlIHBhaXIuIiwgdG9rZW4sIGN1cnJlbnQgKTsKLSAgICAgIHVuc2lnbmVkIGludCBz
dXJyb2dhdGVQYWlyOwotICAgICAgaWYgKCooY3VycmVudCsrKSA9PSAnXFwnICYmICooY3VycmVu
dCsrKT09ICd1JykKLSAgICAgIHsKLSAgICAgICAgIGlmIChkZWNvZGVVbmljb2RlRXNjYXBlU2Vx
dWVuY2UoIHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIgKSkKLSAgICAgICAgIHsK
LSAgICAgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEw
KSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOwotICAgICAgICAgfSAKLSAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0gCi0gICAgICBlbHNlCi0gICAgICAg
ICByZXR1cm4gYWRkRXJyb3IoICJleHBlY3RpbmcgYW5vdGhlciBcXHUgdG9rZW4gdG8gYmVnaW4g
dGhlIHNlY29uZCBoYWxmIG9mIGEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsIHRva2VuLCBjdXJy
ZW50ICk7Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2Rl
VW5pY29kZUVzY2FwZVNlcXVlbmNlKCBUb2tlbiAmdG9rZW4sIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2F0aW9uICZjdXJyZW50LCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApCi17Ci0gICBpZiAoIGVuZCAt
IGN1cnJlbnQgPCA0ICkKLSAgICAgIHJldHVybiBhZGRFcnJvciggIkJhZCB1bmljb2RlIGVzY2Fw
ZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsIHRva2VuLCBjdXJy
ZW50ICk7Ci0gICB1bmljb2RlID0gMDsKLSAgIGZvciAoIGludCBpbmRleCA9MDsgaW5kZXggPCA0
OyArK2luZGV4ICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICB1bmlj
b2RlICo9IDE2OwotICAgICAgaWYgKCBjID49ICcwJyAgJiYgIGMgPD0gJzknICkKLSAgICAgICAg
IHVuaWNvZGUgKz0gYyAtICcwJzsKLSAgICAgIGVsc2UgaWYgKCBjID49ICdhJyAgJiYgIGMgPD0g
J2YnICkKLSAgICAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOwotICAgICAgZWxzZSBpZiAo
IGMgPj0gJ0EnICAmJiAgYyA8PSAnRicgKQotICAgICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsg
MTA7Ci0gICAgICBlbHNlCi0gICAgICAgICByZXR1cm4gYWRkRXJyb3IoICJCYWQgdW5pY29kZSBl
c2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLCB0
b2tlbiwgY3VycmVudCApOwotICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJl
YWRlcjo6YWRkRXJyb3IoIGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNzYWdlLCAKLSAgICAgICAgICAg
ICAgICAgIFRva2VuICZ0b2tlbiwKLSAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGV4dHJhICkK
LXsKLSAgIEVycm9ySW5mbyBpbmZvOwotICAgaW5mby50b2tlbl8gPSB0b2tlbjsKLSAgIGluZm8u
bWVzc2FnZV8gPSBtZXNzYWdlOwotICAgaW5mby5leHRyYV8gPSBleHRyYTsKLSAgIGVycm9yc18u
cHVzaF9iYWNrKCBpbmZvICk7Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotYm9vbCAKLVJlYWRl
cjo6cmVjb3ZlckZyb21FcnJvciggVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuICkKLXsKLSAgIGlu
dCBlcnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKLSAgIFRva2VuIHNraXA7Ci0gICBm
b3IgKDs7KQotICAgewotICAgICAgaWYgKCAhcmVhZFRva2VuKHNraXApICkKLSAgICAgICAgIGVy
cm9yc18ucmVzaXplKCBlcnJvckNvdW50ICk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSBy
ZWNvdmVyeQotICAgICAgaWYgKCBza2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuICB8fCAgc2tp
cC50eXBlXyA9PSB0b2tlbkVuZE9mU3RyZWFtICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAg
ZXJyb3JzXy5yZXNpemUoIGVycm9yQ291bnQgKTsKLSAgIHJldHVybiBmYWxzZTsKLX0KLQotCi1i
b29sIAotUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNz
YWdlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiAmdG9rZW4sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuICkKLXsKLSAgIGFk
ZEVycm9yKCBtZXNzYWdlLCB0b2tlbiApOwotICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IoIHNr
aXBVbnRpbFRva2VuICk7Ci19Ci0KLQotVmFsdWUgJgotUmVhZGVyOjpjdXJyZW50VmFsdWUoKQot
ewotICAgcmV0dXJuICoobm9kZXNfLnRvcCgpKTsKLX0KLQotCi1SZWFkZXI6OkNoYXIgCi1SZWFk
ZXI6OmdldE5leHRDaGFyKCkKLXsKLSAgIGlmICggY3VycmVudF8gPT0gZW5kXyApCi0gICAgICBy
ZXR1cm4gMDsKLSAgIHJldHVybiAqY3VycmVudF8rKzsKLX0KLQotCi12b2lkIAotUmVhZGVyOjpn
ZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oIExvY2F0aW9uIGxvY2F0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCAmbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgJmNvbHVtbiApIGNvbnN0Ci17Ci0gICBMb2NhdGlvbiBjdXJyZW50ID0g
YmVnaW5fOwotICAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICBsaW5lID0g
MDsKLSAgIHdoaWxlICggY3VycmVudCA8IGxvY2F0aW9uICAmJiAgY3VycmVudCAhPSBlbmRfICkK
LSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICBpZiAoIGMgPT0gJ1xyJyAp
Ci0gICAgICB7Ci0gICAgICAgICBpZiAoICpjdXJyZW50ID09ICdcbicgKQotICAgICAgICAgICAg
KytjdXJyZW50OwotICAgICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICAgICAgICAr
K2xpbmU7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICggYyA9PSAnXG4nICkKLSAgICAgIHsKLSAg
ICAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OwotICAgICAgICAgKytsaW5lOwotICAgICAg
fQotICAgfQotICAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCi0gICBjb2x1bW4gPSBpbnQo
bG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7Ci0gICArK2xpbmU7Ci19Ci0KLQotc3RkOjpz
dHJpbmcKLVJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKCBMb2NhdGlvbiBsb2NhdGlv
biApIGNvbnN0Ci17Ci0gICBpbnQgbGluZSwgY29sdW1uOwotICAgZ2V0TG9jYXRpb25MaW5lQW5k
Q29sdW1uKCBsb2NhdGlvbiwgbGluZSwgY29sdW1uICk7Ci0gICBjaGFyIGJ1ZmZlclsxOCsxNisx
NisxXTsKLSAgIHNwcmludGYoIGJ1ZmZlciwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNv
bHVtbiApOwotICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotCi0vLyBEZXByZWNhdGVkLiBQcmVzZXJ2
ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKLXN0ZDo6c3RyaW5nIAotUmVhZGVyOjpnZXRG
b3JtYXRlZEVycm9yTWVzc2FnZXMoKSBjb25zdAotewotICAgIHJldHVybiBnZXRGb3JtYXR0ZWRF
cnJvck1lc3NhZ2VzKCk7Ci19Ci0KLQotc3RkOjpzdHJpbmcgCi1SZWFkZXI6OmdldEZvcm1hdHRl
ZEVycm9yTWVzc2FnZXMoKSBjb25zdAotewotICAgc3RkOjpzdHJpbmcgZm9ybWF0dGVkTWVzc2Fn
ZTsKLSAgIGZvciAoIEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVn
aW4oKTsKLSAgICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQoKTsKLSAgICAgICAgICsraXRF
cnJvciApCi0gICB7Ci0gICAgICBjb25zdCBFcnJvckluZm8gJmVycm9yID0gKml0RXJyb3I7Ci0g
ICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9ICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4o
IGVycm9yLnRva2VuXy5zdGFydF8gKSArICJcbiI7Ci0gICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9
ICIgICIgKyBlcnJvci5tZXNzYWdlXyArICJcbiI7Ci0gICAgICBpZiAoIGVycm9yLmV4dHJhXyAp
Ci0gICAgICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9ICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFu
ZENvbHVtbiggZXJyb3IuZXh0cmFfICkgKyAiIGZvciBkZXRhaWwuXG4iOwotICAgfQotICAgcmV0
dXJuIGZvcm1hdHRlZE1lc3NhZ2U7Ci19Ci0KLQotc3RkOjppc3RyZWFtJiBvcGVyYXRvcj4+KCBz
dGQ6OmlzdHJlYW0gJnNpbiwgVmFsdWUgJnJvb3QgKQotewotICAgIEpzb246OlJlYWRlciByZWFk
ZXI7Ci0gICAgYm9vbCBvayA9IHJlYWRlci5wYXJzZShzaW4sIHJvb3QsIHRydWUpOwotICAgIGlm
ICghb2spIHsKLSAgICAgIGZwcmludGYoCi0gICAgICAgICAgc3RkZXJyLAotICAgICAgICAgICJF
cnJvciBmcm9tIHJlYWRlcjogJXMiLAotICAgICAgICAgIHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJv
ck1lc3NhZ2VzKCkuY19zdHIoKSk7Ci0KLSAgICAgIEpTT05fRkFJTF9NRVNTQUdFKCJyZWFkZXIg
ZXJyb3IiKTsKLSAgICB9Ci0gICAgcmV0dXJuIHNpbjsKLX0KLQotCi19IC8vIG5hbWVzcGFjZSBK
c29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9vdmVy
cmlkZXMvc3JjL2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhMmE0YTY3NjFkMmNkYjM0NmMwNzY0YzVkZDg0MjY2Y2M3NjE5ZDNhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9vdmVycmlkZXMvc3JjL2xpYl9q
c29uL2pzb25fdmFsdWUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTkzMCArMCwwIEBACi0vLyBD
b3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1J
VCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVk
IGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDxqc29uL2Fzc2VydGlvbnMu
aD4KLSMgaW5jbHVkZSA8anNvbi92YWx1ZS5oPgotIyBpbmNsdWRlIDxqc29uL3dyaXRlci5oPgot
IyBpZm5kZWYgSlNPTl9VU0VfU0lNUExFX0lOVEVSTkFMX0FMTE9DQVRPUgotIyAgaW5jbHVkZSAi
anNvbl9iYXRjaGFsbG9jYXRvci5oIgotIyBlbmRpZiAvLyAjaWZuZGVmIEpTT05fVVNFX1NJTVBM
RV9JTlRFUk5BTF9BTExPQ0FUT1IKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxH
QU1BVElPTikKLSNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRl
IDx1dGlsaXR5PgotI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KLSNpbmNsdWRlIDxjc3RyaW5nPgotI2lu
Y2x1ZGUgPGNhc3NlcnQ+Ci0jaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSMgaW5jbHVkZSA8Y3BwdGwv
Y29uc3RzdHJpbmcuaD4KLSNlbmRpZgotI2luY2x1ZGUgPGNzdGRkZWY+ICAgIC8vIHNpemVfdAot
Ci0jZGVmaW5lIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFIGFzc2VydCggZmFsc2UgKQotCi1uYW1l
c3BhY2UgSnNvbiB7Ci0KLS8vIFRoaXMgaXMgYSB3YWxrYXJvdW5kIHRvIGF2b2lkIHRoZSBzdGF0
aWMgaW5pdGlhbGl6YXRpb24gb2YgVmFsdWU6Om51bGwuCi0vLyBrTnVsbCBtdXN0IGJlIHdvcmQt
YWxpZ25lZCB0byBhdm9pZCBjcmFzaGluZyBvbiBBUk0uICBXZSB1c2UgYW4gYWxpZ25tZW50IG9m
Ci0vLyA4IChpbnN0ZWFkIG9mIDQpIGFzIGEgYml0IG9mIGZ1dHVyZS1wcm9vZmluZy4KLSNpZiBk
ZWZpbmVkKF9fQVJNRUxfXykKLSNkZWZpbmUgQUxJR05BUyhieXRlX2FsaWdubWVudCkgX19hdHRy
aWJ1dGVfXygoYWxpZ25lZChieXRlX2FsaWdubWVudCkpKQotI2Vsc2UKLSNkZWZpbmUgQUxJR05B
UyhieXRlX2FsaWdubWVudCkKLSNlbmRpZgotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgQUxJ
R05BUyg4KSBrTnVsbFtzaXplb2YoVmFsdWUpXSA9IHswfTsKLWNvbnN0IFZhbHVlJiBWYWx1ZTo6
bnVsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVmFsdWUmPihrTnVsbCk7Ci0KLWNvbnN0IElu
dCBWYWx1ZTo6bWluSW50ID0gSW50KCB+KFVJbnQoLTEpLzIpICk7Ci1jb25zdCBJbnQgVmFsdWU6
Om1heEludCA9IEludCggVUludCgtMSkvMiApOwotY29uc3QgVUludCBWYWx1ZTo6bWF4VUludCA9
IFVJbnQoLTEpOwotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotY29uc3QgSW50NjQgVmFs
dWU6Om1pbkludDY0ID0gSW50NjQoIH4oVUludDY0KC0xKS8yKSApOwotY29uc3QgSW50NjQgVmFs
dWU6Om1heEludDY0ID0gSW50NjQoIFVJbnQ2NCgtMSkvMiApOwotY29uc3QgVUludDY0IFZhbHVl
OjptYXhVSW50NjQgPSBVSW50NjQoLTEpOwotLy8gVGhlIGNvbnN0YW50IGlzIGhhcmQtY29kZWQg
YmVjYXVzZSBzb21lIGNvbXBpbGVyIGhhdmUgdHJvdWJsZQotLy8gY29udmVydGluZyBWYWx1ZTo6
bWF4VUludDY0IHRvIGEgZG91YmxlIGNvcnJlY3RseSAoQUlYL3hsQykuCi0vLyBBc3N1bWVzIHRo
YXQgVUludDY0IGlzIGEgNjQgYml0cyBpbnRlZ2VyLgotc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhV
SW50NjRBc0RvdWJsZSA9IDE4NDQ2NzQ0MDczNzA5NTUxNjE1LjA7Ci0jZW5kaWYgLy8gZGVmaW5l
ZChKU09OX0hBU19JTlQ2NCkKLWNvbnN0IExhcmdlc3RJbnQgVmFsdWU6Om1pbkxhcmdlc3RJbnQg
PSBMYXJnZXN0SW50KCB+KExhcmdlc3RVSW50KC0xKS8yKSApOwotY29uc3QgTGFyZ2VzdEludCBW
YWx1ZTo6bWF4TGFyZ2VzdEludCA9IExhcmdlc3RJbnQoIExhcmdlc3RVSW50KC0xKS8yICk7Ci1j
b25zdCBMYXJnZXN0VUludCBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQgPSBMYXJnZXN0VUludCgtMSk7
Ci0KLQotLy8vIFVua25vd24gc2l6ZSBtYXJrZXIKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
dW5rbm93biA9ICh1bnNpZ25lZCktMTsKLQotI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RP
VUJMRV9DT05WRVJTSU9OKQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1zdGF0
aWMgaW5saW5lIGJvb2wgSW5SYW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0gICByZXR1
cm4gZCA+PSBtaW4gJiYgZCA8PSBtYXg7Ci19Ci0jZWxzZSAvLyBpZiAhZGVmaW5lZChKU09OX1VT
RV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLXN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJU
b0RvdWJsZSggSnNvbjo6VUludDY0IHZhbHVlICkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZG91YmxlPiggSW50NjQodmFsdWUvMikgKSAqIDIuMCArIEludDY0KHZhbHVlICYgMSk7Ci19Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3Vi
bGUoIFQgdmFsdWUgKQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KCB2YWx1ZSAp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBtYXgpIHsKLSAgIHJldHVybiBkID49IGlu
dGVnZXJUb0RvdWJsZShtaW4pICYmIGQgPD0gaW50ZWdlclRvRG91YmxlKG1heCk7Ci19Ci0jZW5k
aWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0KLQot
LyoqIER1cGxpY2F0ZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgdmFsdWUuCi0gKiBAcGFyYW0gdmFs
dWUgUG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGR1cGxpY2F0ZS4gTXVzdCBiZSB6ZXJvLXRlcm1p
bmF0ZWQgaWYKLSAqICAgICAgICAgICAgICBsZW5ndGggaXMgInVua25vd24iLgotICogQHBhcmFt
IGxlbmd0aCBMZW5ndGggb2YgdGhlIHZhbHVlLiBpZiBlcXVhbHMgdG8gdW5rbm93biwgdGhlbiBp
dCB3aWxsIGJlCi0gKiAgICAgICAgICAgICAgIGNvbXB1dGVkIHVzaW5nIHN0cmxlbih2YWx1ZSku
Ci0gKiBAcmV0dXJuIFBvaW50ZXIgb24gdGhlIGR1cGxpY2F0ZSBpbnN0YW5jZSBvZiBzdHJpbmcu
Ci0gKi8KLXN0YXRpYyBpbmxpbmUgY2hhciAqCi1kdXBsaWNhdGVTdHJpbmdWYWx1ZSggY29uc3Qg
Y2hhciAqdmFsdWUsIAotICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZW5ndGgg
PSB1bmtub3duICkKLXsKLSAgIGlmICggbGVuZ3RoID09IHVua25vd24gKQotICAgICAgbGVuZ3Ro
ID0gKHVuc2lnbmVkIGludClzdHJsZW4odmFsdWUpOwotCi0gICAvLyBBdm9pZCBhbiBpbnRlZ2Vy
IG92ZXJmbG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBsaW1pdGluZyBsZW5ndGgK
LSAgIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgIGlmIChsZW5ndGggPj0gKHVuc2lnbmVkKVZhbHVl
OjptYXhJbnQpCi0gICAgICBsZW5ndGggPSBWYWx1ZTo6bWF4SW50IC0gMTsKLQotICAgY2hhciAq
bmV3U3RyaW5nID0gc3RhdGljX2Nhc3Q8Y2hhciAqPiggbWFsbG9jKCBsZW5ndGggKyAxICkgKTsK
LSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIG5ld1N0cmluZyAhPSAwLCAiRmFpbGVkIHRvIGFsbG9j
YXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiICk7Ci0gICBtZW1jcHkoIG5ld1N0cmluZywgdmFsdWUs
IGxlbmd0aCApOwotICAgbmV3U3RyaW5nW2xlbmd0aF0gPSAwOwotICAgcmV0dXJuIG5ld1N0cmlu
ZzsKLX0KLQotCi0vKiogRnJlZSB0aGUgc3RyaW5nIGR1cGxpY2F0ZWQgYnkgZHVwbGljYXRlU3Ry
aW5nVmFsdWUoKS4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIAotcmVsZWFzZVN0cmluZ1ZhbHVl
KCBjaGFyICp2YWx1ZSApCi17Ci0gICBpZiAoIHZhbHVlICkKLSAgICAgIGZyZWUoIHZhbHVlICk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBWYWx1ZUludGVybmFscy4uLgotLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9O
KQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSMgIGluY2x1ZGUgImpzb25f
aW50ZXJuYWxhcnJheS5pbmwiCi0jICBpbmNsdWRlICJqc29uX2ludGVybmFsbWFwLmlubCIKLSMg
ZW5kaWYgLy8gSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0KLSMgaW5jbHVkZSAianNvbl92
YWx1ZWl0ZXJhdG9yLmlubCIKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1B
VElPTikKLQotbmFtZXNwYWNlIEpzb24gewotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZTo6Q29tbWVudEluZm8KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi1WYWx1ZTo6Q29tbWVudEluZm86OkNvbW1l
bnRJbmZvKCkKLSAgIDogY29tbWVudF8oIDAgKQotewotfQotCi1WYWx1ZTo6Q29tbWVudEluZm86
On5Db21tZW50SW5mbygpCi17Ci0gICBpZiAoIGNvbW1lbnRfICkKLSAgICAgIHJlbGVhc2VTdHJp
bmdWYWx1ZSggY29tbWVudF8gKTsKLX0KLQotCi12b2lkIAotVmFsdWU6OkNvbW1lbnRJbmZvOjpz
ZXRDb21tZW50KCBjb25zdCBjaGFyICp0ZXh0ICkKLXsKLSAgIGlmICggY29tbWVudF8gKQotICAg
ICAgcmVsZWFzZVN0cmluZ1ZhbHVlKCBjb21tZW50XyApOwotICAgSlNPTl9BU1NFUlQoIHRleHQg
IT0gMCApOwotICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggdGV4dFswXT09J1wwJyB8fCB0ZXh0WzBd
PT0nLycsICJDb21tZW50cyBtdXN0IHN0YXJ0IHdpdGggLyIpOwotICAgLy8gSXQgc2VlbXMgdGhh
dCAvKiovIHN0eWxlIGNvbW1lbnRzIGFyZSBhY2NlcHRhYmxlIGFzIHdlbGwuCi0gICBjb21tZW50
XyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCB0ZXh0ICk7Ci19Ci0KLQotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gY2xhc3MgVmFsdWU6OkNaU3RyaW5nCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0jIGlmbmRlZiBKU09OX1ZBTFVF
X1VTRV9JTlRFUk5BTF9NQVAKLQotLy8gTm90ZXM6IGluZGV4XyBpbmRpY2F0ZXMgaWYgdGhlIHN0
cmluZyB3YXMgYWxsb2NhdGVkIHdoZW4KLS8vIGEgc3RyaW5nIGlzIHN0b3JlZC4KLQotVmFsdWU6
OkNaU3RyaW5nOjpDWlN0cmluZyggQXJyYXlJbmRleCBpbmRleCApCi0gICA6IGNzdHJfKCAwICkK
LSAgICwgaW5kZXhfKCBpbmRleCApCi17Ci19Ci0KLVZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmco
IGNvbnN0IGNoYXIgKmNzdHIsIER1cGxpY2F0aW9uUG9saWN5IGFsbG9jYXRlICkKLSAgIDogY3N0
cl8oIGFsbG9jYXRlID09IGR1cGxpY2F0ZSA/IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKGNzdHIpIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3N0ciApCi0gICAsIGluZGV4Xygg
YWxsb2NhdGUgKQotewotfQotCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKCBjb25zdCBDWlN0
cmluZyAmb3RoZXIgKQotOiBjc3RyXyggb3RoZXIuaW5kZXhfICE9IG5vRHVwbGljYXRpb24gJiYg
IG90aGVyLmNzdHJfICE9IDAKLSAgICAgICAgICAgICAgICA/ICBkdXBsaWNhdGVTdHJpbmdWYWx1
ZSggb3RoZXIuY3N0cl8gKQotICAgICAgICAgICAgICAgIDogb3RoZXIuY3N0cl8gKQotICAgLCBp
bmRleF8oIG90aGVyLmNzdHJfID8gKG90aGVyLmluZGV4XyA9PSBub0R1cGxpY2F0aW9uID8gbm9E
dXBsaWNhdGlvbiA6IGR1cGxpY2F0ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICA6IG90aGVy
LmluZGV4XyApCi17Ci19Ci0KLVZhbHVlOjpDWlN0cmluZzo6fkNaU3RyaW5nKCkKLXsKLSAgIGlm
ICggY3N0cl8gICYmICBpbmRleF8gPT0gZHVwbGljYXRlICkKLSAgICAgIHJlbGVhc2VTdHJpbmdW
YWx1ZSggY29uc3RfY2FzdDxjaGFyICo+KCBjc3RyXyApICk7Ci19Ci0KLXZvaWQgCi1WYWx1ZTo6
Q1pTdHJpbmc6OnN3YXAoIENaU3RyaW5nICZvdGhlciApCi17Ci0gICBzdGQ6OnN3YXAoIGNzdHJf
LCBvdGhlci5jc3RyXyApOwotICAgc3RkOjpzd2FwKCBpbmRleF8sIG90aGVyLmluZGV4XyApOwot
fQotCi1WYWx1ZTo6Q1pTdHJpbmcgJgotVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvciA9KCBjb25z
dCBDWlN0cmluZyAmb3RoZXIgKQotewotICAgQ1pTdHJpbmcgdGVtcCggb3RoZXIgKTsKLSAgIHN3
YXAoIHRlbXAgKTsKLSAgIHJldHVybiAqdGhpczsKLX0KLQotYm9vbCAKLVZhbHVlOjpDWlN0cmlu
Zzo6b3BlcmF0b3I8KCBjb25zdCBDWlN0cmluZyAmb3RoZXIgKSBjb25zdCAKLXsKLSAgIGlmICgg
Y3N0cl8gKQotICAgICAgcmV0dXJuIHN0cmNtcCggY3N0cl8sIG90aGVyLmNzdHJfICkgPCAwOwot
ICAgcmV0dXJuIGluZGV4XyA8IG90aGVyLmluZGV4XzsKLX0KLQotYm9vbCAKLVZhbHVlOjpDWlN0
cmluZzo6b3BlcmF0b3I9PSggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkgY29uc3QgCi17Ci0gICBp
ZiAoIGNzdHJfICkKLSAgICAgIHJldHVybiBzdHJjbXAoIGNzdHJfLCBvdGhlci5jc3RyXyApID09
IDA7Ci0gICByZXR1cm4gaW5kZXhfID09IG90aGVyLmluZGV4XzsKLX0KLQotCi1BcnJheUluZGV4
IAotVmFsdWU6OkNaU3RyaW5nOjppbmRleCgpIGNvbnN0Ci17Ci0gICByZXR1cm4gaW5kZXhfOwot
fQotCi0KLWNvbnN0IGNoYXIgKgotVmFsdWU6OkNaU3RyaW5nOjpjX3N0cigpIGNvbnN0Ci17Ci0g
ICByZXR1cm4gY3N0cl87Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6Q1pTdHJpbmc6OmlzU3RhdGljU3Ry
aW5nKCkgY29uc3QKLXsKLSAgIHJldHVybiBpbmRleF8gPT0gbm9EdXBsaWNhdGlvbjsKLX0KLQot
I2VuZGlmIC8vIGlmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLQotCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZTo6VmFsdWUK
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLyohIFxpbnRlcm5h
bCBEZWZhdWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemF0aW9uIG11c3QgYmUgZXF1aXZhbGVudCB0
bzoKLSAqIG1lbXNldCggdGhpcywgMCwgc2l6ZW9mKFZhbHVlKSApCi0gKiBUaGlzIG9wdGltaXph
dGlvbiBpcyB1c2VkIGluIFZhbHVlSW50ZXJuYWxNYXAgZmFzdCBhbGxvY2F0b3IuCi0gKi8KLVZh
bHVlOjpWYWx1ZSggVmFsdWVUeXBlIHR5cGUgKQotICAgOiB0eXBlXyggdHlwZSApCi0gICAsIGFs
bG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0g
ICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAg
c3dpdGNoICggdHlwZSApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIGJyZWFrOwot
ICAgY2FzZSBpbnRWYWx1ZToKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgdmFsdWVfLmludF8g
PSAwOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHZhbHVlXy5yZWFs
XyA9IDAuMDsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIHZhbHVl
Xy5zdHJpbmdfID0gMDsKLSAgICAgIGJyZWFrOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAg
ICB2YWx1ZV8ubWFwXyA9IG5ldyBPYmplY3RWYWx1ZXMoKTsKLSAgICAgIGJyZWFrOwotI2Vsc2UK
LSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHZhbHVlXy5hcnJheV8gPSBhcnJheUFsbG9jYXRv
cigpLT5uZXdBcnJheSgpOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAg
ICAgdmFsdWVfLm1hcF8gPSBtYXBBbGxvY2F0b3IoKS0+bmV3TWFwKCk7Ci0gICAgICBicmVhazsK
LSNlbmRpZgotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICB2YWx1ZV8uYm9vbF8gPSBmYWxz
ZTsKLSAgICAgIGJyZWFrOwotICAgZGVmYXVsdDoKLSAgICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hB
QkxFOwotICAgfQotfQotCi0KLVZhbHVlOjpWYWx1ZSggVUludCB2YWx1ZSApCi0gICA6IHR5cGVf
KCB1aW50VmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFM
VUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwg
Y29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy51aW50XyA9IHZhbHVlOwotfQotCi1WYWx1ZTo6
VmFsdWUoIEludCB2YWx1ZSApCi0gICA6IHR5cGVfKCBpbnRWYWx1ZSApCi0gICAsIGFsbG9jYXRl
ZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0
ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVf
LmludF8gPSB2YWx1ZTsKLX0KLQotCi0jIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1WYWx1
ZTo6VmFsdWUoIEludDY0IHZhbHVlICkKLSAgIDogdHlwZV8oIGludFZhbHVlICkKLSAgICwgYWxs
b2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAg
ICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2
YWx1ZV8uaW50XyA9IHZhbHVlOwotfQotCi0KLVZhbHVlOjpWYWx1ZSggVUludDY0IHZhbHVlICkK
LSAgIDogdHlwZV8oIHVpbnRWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZk
ZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNl
bmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnVpbnRfID0gdmFsdWU7Ci19
Ci0jZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotVmFsdWU6OlZhbHVlKCBkb3Vi
bGUgdmFsdWUgKQotICAgOiB0eXBlXyggcmVhbFZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFs
c2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNl
ZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8ucmVhbF8g
PSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZhbHVlKCBjb25zdCBjaGFyICp2YWx1ZSApCi0gICA6IHR5
cGVfKCBzdHJpbmdWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBpZmRlZiBKU09O
X1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0g
ICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmlu
Z1ZhbHVlKCB2YWx1ZSApOwotfQotCi0KLVZhbHVlOjpWYWx1ZSggY29uc3QgY2hhciAqYmVnaW5W
YWx1ZSwgCi0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuZFZhbHVlICkKLSAgIDogdHlwZV8o
IHN0cmluZ1ZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggdHJ1ZSApCi0jIGlmZGVmIEpTT05fVkFM
VUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwg
Y29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlU3RyaW5nVmFs
dWUoIGJlZ2luVmFsdWUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHVuc2lnbmVkIGludCkoZW5kVmFsdWUgLSBiZWdpblZhbHVlKSApOwotfQotCi0KLVZhbHVl
OjpWYWx1ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICkKLSAgIDogdHlwZV8oIHN0cmluZ1Zh
bHVlICkKLSAgICwgYWxsb2NhdGVkXyggdHJ1ZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lO
VEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNf
KCAwICkKLXsKLSAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUoIHZhbHVl
LmNfc3RyKCksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVu
c2lnbmVkIGludCl2YWx1ZS5sZW5ndGgoKSApOwotCi19Ci0KLVZhbHVlOjpWYWx1ZSggY29uc3Qg
U3RhdGljU3RyaW5nICZ2YWx1ZSApCi0gICA6IHR5cGVfKCBzdHJpbmdWYWx1ZSApCi0gICAsIGFs
bG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0g
ICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAg
dmFsdWVfLnN0cmluZ18gPSBjb25zdF9jYXN0PGNoYXIgKj4oIHZhbHVlLmNfc3RyKCkgKTsKLX0K
LQotCi0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IENwcFRMOjpD
b25zdFN0cmluZyAmdmFsdWUgKQotICAgOiB0eXBlXyggc3RyaW5nVmFsdWUgKQotICAgLCBhbGxv
Y2F0ZWRfKCB0cnVlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAs
IGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFs
dWVfLnN0cmluZ18gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSggdmFsdWUsIHZhbHVlLmxlbmd0aCgp
ICk7Ci19Ci0jIGVuZGlmCi0KLVZhbHVlOjpWYWx1ZSggYm9vbCB2YWx1ZSApCi0gICA6IHR5cGVf
KCBib29sZWFuVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAg
ICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5ib29sXyA9IHZhbHVlOwotfQotCi0KLVZh
bHVlOjpWYWx1ZSggY29uc3QgVmFsdWUgJm90aGVyICkKLSAgIDogdHlwZV8oIG90aGVyLnR5cGVf
ICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXygg
MCApCi17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAg
IGNhc2UgaW50VmFsdWU6Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgIGNhc2UgcmVhbFZhbHVlOgot
ICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICB2YWx1ZV8gPSBvdGhlci52YWx1ZV87Ci0gICAg
ICBicmVhazsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICBpZiAoIG90aGVyLnZhbHVlXy5z
dHJpbmdfICkKLSAgICAgIHsKLSAgICAgICAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlU3Ry
aW5nVmFsdWUoIG90aGVyLnZhbHVlXy5zdHJpbmdfICk7Ci0gICAgICAgICBhbGxvY2F0ZWRfID0g
dHJ1ZTsKLSAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgICAgIHZhbHVlXy5zdHJpbmdfID0gMDsK
LSAgICAgIGJyZWFrOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNh
c2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXyA9
IG5ldyBPYmplY3RWYWx1ZXMoICpvdGhlci52YWx1ZV8ubWFwXyApOwotICAgICAgYnJlYWs7Ci0j
ZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgdmFsdWVfLmFycmF5XyA9IGFycmF5QWxs
b2NhdG9yKCktPm5ld0FycmF5Q29weSggKm90aGVyLnZhbHVlXy5hcnJheV8gKTsKLSAgICAgIGJy
ZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfID0gbWFwQWxsb2Nh
dG9yKCktPm5ld01hcENvcHkoICpvdGhlci52YWx1ZV8ubWFwXyApOwotICAgICAgYnJlYWs7Ci0j
ZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0K
LSAgIGlmICggb3RoZXIuY29tbWVudHNfICkKLSAgIHsKLSAgICAgIGNvbW1lbnRzXyA9IG5ldyBD
b21tZW50SW5mb1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOwotICAgICAgZm9yICggaW50IGNv
bW1lbnQgPTA7IGNvbW1lbnQgPCBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQ7ICsrY29tbWVudCAp
Ci0gICAgICB7Ci0gICAgICAgICBjb25zdCBDb21tZW50SW5mbyAmb3RoZXJDb21tZW50ID0gb3Ro
ZXIuY29tbWVudHNfW2NvbW1lbnRdOwotICAgICAgICAgaWYgKCBvdGhlckNvbW1lbnQuY29tbWVu
dF8gKQotICAgICAgICAgICAgY29tbWVudHNfW2NvbW1lbnRdLnNldENvbW1lbnQoIG90aGVyQ29t
bWVudC5jb21tZW50XyApOwotICAgICAgfQotICAgfQotfQotCi0KLVZhbHVlOjp+VmFsdWUoKQot
ewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICBjYXNl
IGludFZhbHVlOgotICAgY2FzZSB1aW50VmFsdWU6Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgIGNh
c2UgYm9vbGVhblZhbHVlOgotICAgICAgYnJlYWs7Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAg
ICAgaWYgKCBhbGxvY2F0ZWRfICkKLSAgICAgICAgIHJlbGVhc2VTdHJpbmdWYWx1ZSggdmFsdWVf
LnN0cmluZ18gKTsKLSAgICAgIGJyZWFrOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5B
TF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBk
ZWxldGUgdmFsdWVfLm1hcF87Ci0gICAgICBicmVhazsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFs
dWU6Ci0gICAgICBhcnJheUFsbG9jYXRvcigpLT5kZXN0cnVjdEFycmF5KCB2YWx1ZV8uYXJyYXlf
ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBtYXBBbGxvY2F0
b3IoKS0+ZGVzdHJ1Y3RNYXAoIHZhbHVlXy5tYXBfICk7Ci0gICAgICBicmVhazsKLSNlbmRpZgot
ICAgZGVmYXVsdDoKLSAgICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOwotICAgfQotCi0gICBp
ZiAoIGNvbW1lbnRzXyApCi0gICAgICBkZWxldGVbXSBjb21tZW50c187Ci19Ci0KLVZhbHVlICYK
LVZhbHVlOjpvcGVyYXRvcj0oIGNvbnN0IFZhbHVlICZvdGhlciApCi17Ci0gICBWYWx1ZSB0ZW1w
KCBvdGhlciApOwotICAgc3dhcCggdGVtcCApOwotICAgcmV0dXJuICp0aGlzOwotfQotCi12b2lk
IAotVmFsdWU6OnN3YXAoIFZhbHVlICZvdGhlciApCi17Ci0gICBWYWx1ZVR5cGUgdGVtcCA9IHR5
cGVfOwotICAgdHlwZV8gPSBvdGhlci50eXBlXzsKLSAgIG90aGVyLnR5cGVfID0gdGVtcDsKLSAg
IHN0ZDo6c3dhcCggdmFsdWVfLCBvdGhlci52YWx1ZV8gKTsKLSAgIGludCB0ZW1wMiA9IGFsbG9j
YXRlZF87Ci0gICBhbGxvY2F0ZWRfID0gb3RoZXIuYWxsb2NhdGVkXzsKLSAgIG90aGVyLmFsbG9j
YXRlZF8gPSB0ZW1wMjsKLX0KLQotVmFsdWVUeXBlIAotVmFsdWU6OnR5cGUoKSBjb25zdAotewot
ICAgcmV0dXJuIHR5cGVfOwotfQotCi0KLWludCAKLVZhbHVlOjpjb21wYXJlKCBjb25zdCBWYWx1
ZSAmb3RoZXIgKSBjb25zdAotewotICAgaWYgKCAqdGhpcyA8IG90aGVyICkKLSAgICAgIHJldHVy
biAtMTsKLSAgIGlmICggKnRoaXMgPiBvdGhlciApCi0gICAgICByZXR1cm4gMTsKLSAgIHJldHVy
biAwOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPCggY29uc3QgVmFsdWUgJm90aGVy
ICkgY29uc3QKLXsKLSAgIGludCB0eXBlRGVsdGEgPSB0eXBlXyAtIG90aGVyLnR5cGVfOwotICAg
aWYgKCB0eXBlRGVsdGEgKQotICAgICAgcmV0dXJuIHR5cGVEZWx0YSA8IDAgPyB0cnVlIDogZmFs
c2U7Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAg
IHJldHVybiBmYWxzZTsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmlu
dF8gPCBvdGhlci52YWx1ZV8uaW50XzsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJu
IHZhbHVlXy51aW50XyA8IG90aGVyLnZhbHVlXy51aW50XzsKLSAgIGNhc2UgcmVhbFZhbHVlOgot
ICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA8IG90aGVyLnZhbHVlXy5yZWFsXzsKLSAgIGNhc2Ug
Ym9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA8IG90aGVyLnZhbHVlXy5i
b29sXzsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICByZXR1cm4gKCB2YWx1ZV8uc3RyaW5n
XyA9PSAwICAmJiAgb3RoZXIudmFsdWVfLnN0cmluZ18gKQotICAgICAgICAgICAgIHx8ICggb3Ro
ZXIudmFsdWVfLnN0cmluZ18gIAotICAgICAgICAgICAgICAgICAgJiYgIHZhbHVlXy5zdHJpbmdf
ICAKLSAgICAgICAgICAgICAgICAgICYmIHN0cmNtcCggdmFsdWVfLnN0cmluZ18sIG90aGVyLnZh
bHVlXy5zdHJpbmdfICkgPCAwICk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01B
UAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHsKLSAg
ICAgICAgIGludCBkZWx0YSA9IGludCggdmFsdWVfLm1hcF8tPnNpemUoKSAtIG90aGVyLnZhbHVl
Xy5tYXBfLT5zaXplKCkgKTsKLSAgICAgICAgIGlmICggZGVsdGEgKQotICAgICAgICAgICAgcmV0
dXJuIGRlbHRhIDwgMDsKLSAgICAgICAgIHJldHVybiAoKnZhbHVlXy5tYXBfKSA8ICgqb3RoZXIu
dmFsdWVfLm1hcF8pOwotICAgICAgfQotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAg
IHJldHVybiB2YWx1ZV8uYXJyYXlfLT5jb21wYXJlKCAqKG90aGVyLnZhbHVlXy5hcnJheV8pICkg
PCAwOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+Y29t
cGFyZSggKihvdGhlci52YWx1ZV8ubWFwXykgKSA8IDA7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0g
ICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0KLSAgIHJldHVybiBmYWxzZTsgIC8v
IHVucmVhY2hhYmxlCi19Ci0KLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPD0oIGNvbnN0IFZhbHVl
ICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1cm4gIShvdGhlciA8ICp0aGlzKTsKLX0KLQotYm9v
bCAKLVZhbHVlOjpvcGVyYXRvciA+PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3QKLXsKLSAg
IHJldHVybiAhKCp0aGlzIDwgb3RoZXIpOwotfQotCi1ib29sIAotVmFsdWU6Om9wZXJhdG9yID4o
IGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1cm4gb3RoZXIgPCAqdGhpczsK
LX0KLQotYm9vbCAKLVZhbHVlOjpvcGVyYXRvciA9PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29u
c3QKLXsKLSAgIC8vaWYgKCB0eXBlXyAhPSBvdGhlci50eXBlXyApCi0gICAvLyBHQ0MgMi45NS4z
IHNheXM6Ci0gICAvLyBhdHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiBiaXQtZmllbGQgc3RydWN0
dXJlIG1lbWJlciBgSnNvbjo6VmFsdWU6OnR5cGVfJwotICAgLy8gQmVhdHMgbWUsIGJ1dCBhIHRl
bXAgc29sdmVzIHRoZSBwcm9ibGVtLgotICAgaW50IHRlbXAgPSBvdGhlci50eXBlXzsKLSAgIGlm
ICggdHlwZV8gIT0gdGVtcCApCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBzd2l0Y2ggKCB0eXBl
XyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiB0cnVlOwotICAgY2Fz
ZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uaW50XyA9PSBvdGhlci52YWx1ZV8uaW50
XzsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA9PSBvdGhl
ci52YWx1ZV8udWludF87Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8u
cmVhbF8gPT0gb3RoZXIudmFsdWVfLnJlYWxfOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfID09IG90aGVyLnZhbHVlXy5ib29sXzsKLSAgIGNhc2Ugc3Ry
aW5nVmFsdWU6Ci0gICAgICByZXR1cm4gKCB2YWx1ZV8uc3RyaW5nXyA9PSBvdGhlci52YWx1ZV8u
c3RyaW5nXyApCi0gICAgICAgICAgICAgfHwgKCBvdGhlci52YWx1ZV8uc3RyaW5nXyAgCi0gICAg
ICAgICAgICAgICAgICAmJiAgdmFsdWVfLnN0cmluZ18gIAotICAgICAgICAgICAgICAgICAgJiYg
c3RyY21wKCB2YWx1ZV8uc3RyaW5nXywgb3RoZXIudmFsdWVfLnN0cmluZ18gKSA9PSAwICk7Ci0j
aWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgot
ICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09
IG90aGVyLnZhbHVlXy5tYXBfLT5zaXplKCkKLSAgICAgICAgICAgICAmJiAoKnZhbHVlXy5tYXBf
KSA9PSAoKm90aGVyLnZhbHVlXy5tYXBfKTsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0g
ICAgICByZXR1cm4gdmFsdWVfLmFycmF5Xy0+Y29tcGFyZSggKihvdGhlci52YWx1ZV8uYXJyYXlf
KSApID09IDA7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5tYXBf
LT5jb21wYXJlKCAqKG90aGVyLnZhbHVlXy5tYXBfKSApID09IDA7Ci0jZW5kaWYKLSAgIGRlZmF1
bHQ6Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0KLSAgIHJldHVybiBmYWxz
ZTsgIC8vIHVucmVhY2hhYmxlCi19Ci0KLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgIT0oIGNvbnN0
IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1cm4gISggKnRoaXMgPT0gb3RoZXIgKTsK
LX0KLQotY29uc3QgY2hhciAqCi1WYWx1ZTo6YXNDU3RyaW5nKCkgY29uc3QKLXsKLSAgIEpTT05f
QVNTRVJUKCB0eXBlXyA9PSBzdHJpbmdWYWx1ZSApOwotICAgcmV0dXJuIHZhbHVlXy5zdHJpbmdf
OwotfQotCi0KLXN0ZDo6c3RyaW5nIAotVmFsdWU6OmFzU3RyaW5nKCkgY29uc3QKLXsKLSAgIHN3
aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuICIi
OwotICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uc3RyaW5nXyA/IHZh
bHVlXy5zdHJpbmdfIDogIiI7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2
YWx1ZV8uYm9vbF8gPyAidHJ1ZSIgOiAiZmFsc2UiOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAg
IHJldHVybiB2YWx1ZVRvU3RyaW5nKCB2YWx1ZV8uaW50XyApOwotICAgY2FzZSB1aW50VmFsdWU6
Ci0gICAgICByZXR1cm4gdmFsdWVUb1N0cmluZyggdmFsdWVfLnVpbnRfICk7Ci0gICBjYXNlIHJl
YWxWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKCB2YWx1ZV8ucmVhbF8gKTsKLSAg
IGRlZmF1bHQ6Ci0gICAgICBKU09OX0ZBSUxfTUVTU0FHRSggIlR5cGUgaXMgbm90IGNvbnZlcnRp
YmxlIHRvIHN0cmluZyIgKTsKLSAgIH0KLX0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotQ3Bw
VEw6OkNvbnN0U3RyaW5nIAotVmFsdWU6OmFzQ29uc3RTdHJpbmcoKSBjb25zdAotewotICAgcmV0
dXJuIENwcFRMOjpDb25zdFN0cmluZyggYXNTdHJpbmcoKS5jX3N0cigpICk7Ci19Ci0jIGVuZGlm
Ci0KLQotVmFsdWU6OkludCAKLVZhbHVlOjphc0ludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0
eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FH
RShpc0ludCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgSW50IHJhbmdlIik7Ci0gICAgICByZXR1cm4g
SW50KHZhbHVlXy5pbnRfKTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRf
TUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIEludCByYW5nZSIpOwotICAgICAg
cmV0dXJuIEludCh2YWx1ZV8udWludF8pOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBKU09O
X0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCksICJk
b3VibGUgb3V0IG9mIEludCByYW5nZSIpOwotICAgICAgcmV0dXJuIEludCh2YWx1ZV8ucmVhbF8p
OwotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gMDsKLSAgIGNhc2UgYm9vbGVhblZh
bHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwotICAgZGVmYXVsdDoKLSAg
ICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252
ZXJ0aWJsZSB0byBJbnQuIik7Ci19Ci0KLQotVmFsdWU6OlVJbnQgCi1WYWx1ZTo6YXNVSW50KCkg
Y29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0g
ICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUlu
dCByYW5nZSIpOwotICAgICAgcmV0dXJuIFVJbnQodmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50
VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdFVJbnQg
b3V0IG9mIFVJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBVSW50KHZhbHVlXy51aW50Xyk7Ci0g
ICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1
ZV8ucmVhbF8sIDAsIG1heFVJbnQpLCAiZG91YmxlIG91dCBvZiBVSW50IHJhbmdlIik7Ci0gICAg
ICByZXR1cm4gVUludCggdmFsdWVfLnJlYWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAg
IHJldHVybiAwOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJv
b2xfID8gMSA6IDA7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBKU09OX0ZB
SUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFVJbnQuIik7Ci19Ci0KLQot
IyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotCi1WYWx1ZTo6SW50NjQKLVZhbHVlOjphc0lu
dDY0KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFs
dWU6Ci0gICAgICByZXR1cm4gSW50NjQodmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50VmFsdWU6
Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50NjQoKSwgIkxhcmdlc3RVSW50IG91dCBv
ZiBJbnQ2NCByYW5nZSIpOwotICAgICAgcmV0dXJuIEludDY0KHZhbHVlXy51aW50Xyk7Ci0gICBj
YXNlIHJlYWxWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8u
cmVhbF8sIG1pbkludDY0LCBtYXhJbnQ2NCksICJkb3VibGUgb3V0IG9mIEludDY0IHJhbmdlIik7
Ci0gICAgICByZXR1cm4gSW50NjQodmFsdWVfLnJlYWxfKTsKLSAgIGNhc2UgbnVsbFZhbHVlOgot
ICAgICAgcmV0dXJuIDA7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1
ZV8uYm9vbF8gPyAxIDogMDsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpT
T05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50NjQuIik7Ci19
Ci0KLQotVmFsdWU6OlVJbnQ2NAotVmFsdWU6OmFzVUludDY0KCkgY29uc3QKLXsKLSAgIHN3aXRj
aCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9N
RVNTQUdFKGlzVUludDY0KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAg
ICAgIHJldHVybiBVSW50NjQodmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
ICByZXR1cm4gVUludDY0KHZhbHVlXy51aW50Xyk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAg
IEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQ2NCks
ICJkb3VibGUgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOwotICAgICAgcmV0dXJuIFVJbnQ2NCggdmFs
dWVfLnJlYWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAwOwotICAgY2Fz
ZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gICBk
ZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUg
aXMgbm90IGNvbnZlcnRpYmxlIHRvIFVJbnQ2NC4iKTsKLX0KLSMgZW5kaWYgLy8gaWYgZGVmaW5l
ZChKU09OX0hBU19JTlQ2NCkKLQotCi1MYXJnZXN0SW50IAotVmFsdWU6OmFzTGFyZ2VzdEludCgp
IGNvbnN0Ci17Ci0jaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICAgIHJldHVybiBhc0ludCgp
OwotI2Vsc2UKLSAgICByZXR1cm4gYXNJbnQ2NCgpOwotI2VuZGlmCi19Ci0KLQotTGFyZ2VzdFVJ
bnQgCi1WYWx1ZTo6YXNMYXJnZXN0VUludCgpIGNvbnN0Ci17Ci0jaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQotICAgIHJldHVybiBhc1VJbnQoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGFzVUludDY0
KCk7Ci0jZW5kaWYKLX0KLQotCi1kb3VibGUgCi1WYWx1ZTo6YXNEb3VibGUoKSBjb25zdAotewot
ICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxkb3VibGU+KCB2YWx1ZV8uaW50XyApOwotICAgY2FzZSB1aW50VmFsdWU6
Ci0jaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0gICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPiggdmFsdWVfLnVpbnRfICk7Ci0jZWxzZSAvLyBpZiAh
ZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICAgIHJldHVybiBp
bnRlZ2VyVG9Eb3VibGUoIHZhbHVlXy51aW50XyApOwotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpT
T05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAg
ICByZXR1cm4gdmFsdWVfLnJlYWxfOwotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4g
MC4wOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8g
MS4wIDogMC4wOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlM
X01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBkb3VibGUuIik7Ci19Ci0KLWZs
b2F0Ci1WYWx1ZTo6YXNGbG9hdCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7
Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PiggdmFs
dWVfLmludF8gKTsKLSAgIGNhc2UgdWludFZhbHVlOgotI2lmICFkZWZpbmVkKEpTT05fVVNFX0lO
VDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pigg
dmFsdWVfLnVpbnRfICk7Ci0jZWxzZSAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VC
TEVfQ09OVkVSU0lPTikKLSAgICAgIHJldHVybiBpbnRlZ2VyVG9Eb3VibGUoIHZhbHVlXy51aW50
XyApOwotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJT
SU9OKQotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KCB2YWx1ZV8ucmVhbF8gKTsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDAuMDsK
LSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMGYg
OiAwLjBmOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01F
U1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBmbG9hdC4iKTsKLX0KLQotYm9vbCAK
LVZhbHVlOjphc0Jvb2woKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAg
Y2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xfOwotICAgY2FzZSBu
dWxsVmFsdWU6Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAg
cmV0dXJuIHZhbHVlXy5pbnRfID8gdHJ1ZSA6IGZhbHNlOwotICAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgICByZXR1cm4gdmFsdWVfLnVpbnRfID8gdHJ1ZSA6IGZhbHNlOwotICAgY2FzZSByZWFsVmFs
dWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfID8gdHJ1ZSA6IGZhbHNlOwotICAgZGVmYXVs
dDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5v
dCBjb252ZXJ0aWJsZSB0byBib29sLiIpOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNDb252ZXJ0
aWJsZVRvKCBWYWx1ZVR5cGUgb3RoZXIgKSBjb25zdAotewotICAgc3dpdGNoICggb3RoZXIgKQot
ICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gKCBpc051bWVyaWMoKSAmJiBh
c0RvdWJsZSgpID09IDAuMCApCi0gICAgICAgICAgICAgfHwgKCB0eXBlXyA9PSBib29sZWFuVmFs
dWUgJiYgdmFsdWVfLmJvb2xfID09IGZhbHNlICkKLSAgICAgICAgICAgICB8fCAoIHR5cGVfID09
IHN0cmluZ1ZhbHVlICYmIGFzU3RyaW5nKCkgPT0gIiIgKQotICAgICAgICAgICAgIHx8ICggdHlw
ZV8gPT0gYXJyYXlWYWx1ZSAmJiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IDAgKQotICAgICAgICAg
ICAgIHx8ICggdHlwZV8gPT0gb2JqZWN0VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAw
ICkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIGludFZhbHVl
OgotICAgICAgcmV0dXJuIGlzSW50KCkKLSAgICAgICAgICAgICB8fCAodHlwZV8gPT0gcmVhbFZh
bHVlICYmIEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCkpCi0gICAgICAgICAg
ICAgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVs
bFZhbHVlOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gaXNVSW50KCkKLSAgICAg
ICAgICAgICB8fCAodHlwZV8gPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJlYWxfLCAw
LCBtYXhVSW50KSkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUKLSAgICAg
ICAgICAgICB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAg
IHJldHVybiBpc051bWVyaWMoKQotICAgICAgICAgICAgIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1
ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2UgYm9vbGVhblZh
bHVlOgotICAgICAgcmV0dXJuIGlzTnVtZXJpYygpCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0g
Ym9vbGVhblZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2Fz
ZSBzdHJpbmdWYWx1ZToKLSAgICAgIHJldHVybiBpc051bWVyaWMoKQotICAgICAgICAgICAgIHx8
IHR5cGVfID09IGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IHN0cmluZ1Zh
bHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBhcnJheVZh
bHVlOgotICAgICAgcmV0dXJuIHR5cGVfID09IGFycmF5VmFsdWUKLSAgICAgICAgICAgICB8fCB0
eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgcmV0dXJuIHR5
cGVfID09IG9iamVjdFZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwot
ICAgfQotICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0K
LQotLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0Ci1BcnJheUluZGV4IAot
VmFsdWU6OnNpemUoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2Fz
ZSBudWxsVmFsdWU6Ci0gICBjYXNlIGludFZhbHVlOgotICAgY2FzZSB1aW50VmFsdWU6Ci0gICBj
YXNlIHJlYWxWYWx1ZToKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgY2FzZSBzdHJpbmdWYWx1
ZToKLSAgICAgIHJldHVybiAwOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAK
LSAgIGNhc2UgYXJyYXlWYWx1ZTogIC8vIHNpemUgb2YgdGhlIGFycmF5IGlzIGhpZ2hlc3QgaW5k
ZXggKyAxCi0gICAgICBpZiAoICF2YWx1ZV8ubWFwXy0+ZW1wdHkoKSApCi0gICAgICB7Ci0gICAg
ICAgICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5l
bmQoKTsKLSAgICAgICAgIC0taXRMYXN0OwotICAgICAgICAgcmV0dXJuICgqaXRMYXN0KS5maXJz
dC5pbmRleCgpKzE7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gMDsKLSAgIGNhc2Ugb2JqZWN0VmFs
dWU6Ci0gICAgICByZXR1cm4gQXJyYXlJbmRleCggdmFsdWVfLm1hcF8tPnNpemUoKSApOwotI2Vs
c2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHJldHVybiBJbnQoIHZhbHVlXy5hcnJheV8t
PnNpemUoKSApOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiBJbnQoIHZhbHVl
Xy5tYXBfLT5zaXplKCkgKTsKLSNlbmRpZgotICAgfQotICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFC
TEU7Ci0gICByZXR1cm4gMDsgLy8gdW5yZWFjaGFibGU7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjpl
bXB0eSgpIGNvbnN0Ci17Ci0gICBpZiAoIGlzTnVsbCgpIHx8IGlzQXJyYXkoKSB8fCBpc09iamVj
dCgpICkKLSAgICAgIHJldHVybiBzaXplKCkgPT0gMHU7Ci0gICBlbHNlCi0gICAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLQotYm9vbAotVmFsdWU6Om9wZXJhdG9yISgpIGNvbnN0Ci17Ci0gICByZXR1
cm4gaXNOdWxsKCk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlOjpjbGVhcigpCi17Ci0gICBKU09OX0FT
U0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSAgfHwgdHlw
ZV8gPT0gb2JqZWN0VmFsdWUgKTsKLQotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotI2lmbmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNh
c2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXy0+Y2xlYXIoKTsKLSAgICAgIGJyZWFr
OwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHZhbHVlXy5hcnJheV8tPmNsZWFy
KCk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFw
Xy0+Y2xlYXIoKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJl
YWs7Ci0gICB9Ci19Ci0KLXZvaWQgCi1WYWx1ZTo6cmVzaXplKCBBcnJheUluZGV4IG5ld1NpemUg
KQotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IGFy
cmF5VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAgICp0aGlzID0g
VmFsdWUoIGFycmF5VmFsdWUgKTsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gICBpZiAoIG5ld1NpemUgPT0gMCAp
Ci0gICAgICBjbGVhcigpOwotICAgZWxzZSBpZiAoIG5ld1NpemUgPiBvbGRTaXplICkKLSAgICAg
ICgqdGhpcylbIG5ld1NpemUgLSAxIF07Ci0gICBlbHNlCi0gICB7Ci0gICAgICBmb3IgKCBBcnJh
eUluZGV4IGluZGV4ID0gbmV3U2l6ZTsgaW5kZXggPCBvbGRTaXplOyArK2luZGV4ICkKLSAgICAg
IHsKLSAgICAgICAgIHZhbHVlXy5tYXBfLT5lcmFzZSggaW5kZXggKTsKLSAgICAgIH0KLSAgICAg
IGFzc2VydCggc2l6ZSgpID09IG5ld1NpemUgKTsKLSAgIH0KLSNlbHNlCi0gICB2YWx1ZV8uYXJy
YXlfLT5yZXNpemUoIG5ld1NpemUgKTsKLSNlbmRpZgotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpv
cGVyYXRvcltdKCBBcnJheUluZGV4IGluZGV4ICkKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9
PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09
IG51bGxWYWx1ZSApCi0gICAgICAqdGhpcyA9IFZhbHVlKCBhcnJheVZhbHVlICk7Ci0jaWZuZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgQ1pTdHJpbmcga2V5KCBpbmRleCApOwot
ICAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZCgg
a2V5ICk7Ci0gICBpZiAoIGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAgJiYgICgqaXQpLmZpcnN0
ID09IGtleSApCi0gICAgICByZXR1cm4gKCppdCkuc2Vjb25kOwotCi0gICBPYmplY3RWYWx1ZXM6
OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKCBrZXksIG51bGwgKTsKLSAgIGl0ID0gdmFsdWVfLm1h
cF8tPmluc2VydCggaXQsIGRlZmF1bHRWYWx1ZSApOwotICAgcmV0dXJuICgqaXQpLnNlY29uZDsK
LSNlbHNlCi0gICByZXR1cm4gdmFsdWVfLmFycmF5Xy0+cmVzb2x2ZVJlZmVyZW5jZSggaW5kZXgg
KTsKLSNlbmRpZgotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBpbnQgaW5kZXgg
KQotewotICAgSlNPTl9BU1NFUlQoIGluZGV4ID49IDAgKTsKLSAgIHJldHVybiAoKnRoaXMpWyBB
cnJheUluZGV4KGluZGV4KSBdOwotfQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRv
cltdKCBBcnJheUluZGV4IGluZGV4ICkgY29uc3QKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9
PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09
IG51bGxWYWx1ZSApCi0gICAgICByZXR1cm4gbnVsbDsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi0gICBDWlN0cmluZyBrZXkoIGluZGV4ICk7Ci0gICBPYmplY3RWYWx1ZXM6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoIGtleSApOwotICAgaWYgKCBp
dCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkgKQotICAgICAgcmV0dXJuIG51bGw7Ci0gICByZXR1cm4g
KCppdCkuc2Vjb25kOwotI2Vsc2UKLSAgIFZhbHVlICp2YWx1ZSA9IHZhbHVlXy5hcnJheV8tPmZp
bmQoIGluZGV4ICk7Ci0gICByZXR1cm4gdmFsdWUgPyAqdmFsdWUgOiBudWxsOwotI2VuZGlmCi19
Ci0KLQotY29uc3QgVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGludCBpbmRleCApIGNvbnN0
Ci17Ci0gICBKU09OX0FTU0VSVCggaW5kZXggPj0gMCApOwotICAgcmV0dXJuICgqdGhpcylbIEFy
cmF5SW5kZXgoaW5kZXgpIF07Ci19Ci0KLQotVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGNv
bnN0IGNoYXIgKmtleSApCi17Ci0gICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZSgga2V5LCBmYWxz
ZSApOwotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKCBjb25zdCBjaGFy
ICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMgKQotewotICAg
SlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IG9iamVjdFZhbHVl
ICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICAqdGhpcyA9IFZhbHVlKCBv
YmplY3RWYWx1ZSApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIENa
U3RyaW5nIGFjdHVhbEtleSgga2V5LCBpc1N0YXRpYyA/IENaU3RyaW5nOjpub0R1cGxpY2F0aW9u
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ1pTdHJpbmc6OmR1cGxp
Y2F0ZU9uQ29weSApOwotICAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBf
LT5sb3dlcl9ib3VuZCggYWN0dWFsS2V5ICk7Ci0gICBpZiAoIGl0ICE9IHZhbHVlXy5tYXBfLT5l
bmQoKSAgJiYgICgqaXQpLmZpcnN0ID09IGFjdHVhbEtleSApCi0gICAgICByZXR1cm4gKCppdCku
c2Vjb25kOwotCi0gICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKCBhY3R1
YWxLZXksIG51bGwgKTsKLSAgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydCggaXQsIGRlZmF1bHRW
YWx1ZSApOwotICAgVmFsdWUgJnZhbHVlID0gKCppdCkuc2Vjb25kOwotICAgcmV0dXJuIHZhbHVl
OwotI2Vsc2UKLSAgIHJldHVybiB2YWx1ZV8ubWFwXy0+cmVzb2x2ZVJlZmVyZW5jZSgga2V5LCBp
c1N0YXRpYyApOwotI2VuZGlmCi19Ci0KLQotVmFsdWUgCi1WYWx1ZTo6Z2V0KCBBcnJheUluZGV4
IGluZGV4LCAKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdAot
ewotICAgY29uc3QgVmFsdWUgKnZhbHVlID0gJigoKnRoaXMpW2luZGV4XSk7Ci0gICByZXR1cm4g
dmFsdWUgPT0gJm51bGwgPyBkZWZhdWx0VmFsdWUgOiAqdmFsdWU7Ci19Ci0KLQotYm9vbCAKLVZh
bHVlOjppc1ZhbGlkSW5kZXgoIEFycmF5SW5kZXggaW5kZXggKSBjb25zdAotewotICAgcmV0dXJu
IGluZGV4IDwgc2l6ZSgpOwotfQotCi0KLQotY29uc3QgVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9y
W10oIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0Ci17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0g
bnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gb2JqZWN0VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0g
bnVsbFZhbHVlICkKLSAgICAgIHJldHVybiBudWxsOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgIENaU3RyaW5nIGFjdHVhbEtleSgga2V5LCBDWlN0cmluZzo6bm9EdXBs
aWNhdGlvbiApOwotICAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5t
YXBfLT5maW5kKCBhY3R1YWxLZXkgKTsKLSAgIGlmICggaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgp
ICkKLSAgICAgIHJldHVybiBudWxsOwotICAgcmV0dXJuICgqaXQpLnNlY29uZDsKLSNlbHNlCi0g
ICBjb25zdCBWYWx1ZSAqdmFsdWUgPSB2YWx1ZV8ubWFwXy0+ZmluZCgga2V5ICk7Ci0gICByZXR1
cm4gdmFsdWUgPyAqdmFsdWUgOiBudWxsOwotI2VuZGlmCi19Ci0KLQotVmFsdWUgJgotVmFsdWU6
Om9wZXJhdG9yW10oIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKQotewotICAgcmV0dXJuICgqdGhp
cylbIGtleS5jX3N0cigpIF07Ci19Ci0KLQotY29uc3QgVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9y
W10oIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKSBjb25zdAotewotICAgcmV0dXJuICgqdGhpcylb
IGtleS5jX3N0cigpIF07Ci19Ci0KLVZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBT
dGF0aWNTdHJpbmcgJmtleSApCi17Ci0gICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZSgga2V5LCB0
cnVlICk7Ci19Ci0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotVmFsdWUgJgotVmFsdWU6Om9w
ZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICkKLXsKLSAgIHJldHVybiAo
KnRoaXMpWyBrZXkuY19zdHIoKSBdOwotfQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpvcGVy
YXRvcltdKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSApIGNvbnN0Ci17Ci0gICByZXR1
cm4gKCp0aGlzKVsga2V5LmNfc3RyKCkgXTsKLX0KLSMgZW5kaWYKLQotCi1WYWx1ZSAmCi1WYWx1
ZTo6YXBwZW5kKCBjb25zdCBWYWx1ZSAmdmFsdWUgKQotewotICAgcmV0dXJuICgqdGhpcylbc2l6
ZSgpXSA9IHZhbHVlOwotfQotCi0KLVZhbHVlIAotVmFsdWU6OmdldCggY29uc3QgY2hhciAqa2V5
LCAKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdAotewotICAg
Y29uc3QgVmFsdWUgKnZhbHVlID0gJigoKnRoaXMpW2tleV0pOwotICAgcmV0dXJuIHZhbHVlID09
ICZudWxsID8gZGVmYXVsdFZhbHVlIDogKnZhbHVlOwotfQotCi0KLVZhbHVlIAotVmFsdWU6Omdl
dCggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSwKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZh
dWx0VmFsdWUgKSBjb25zdAotewotICAgcmV0dXJuIGdldCgga2V5LmNfc3RyKCksIGRlZmF1bHRW
YWx1ZSApOwotfQotCi1WYWx1ZQotVmFsdWU6OnJlbW92ZU1lbWJlciggY29uc3QgY2hhcioga2V5
ICkKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBv
YmplY3RWYWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAgcmV0dXJu
IG51bGw7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgQ1pTdHJpbmcg
YWN0dWFsS2V5KCBrZXksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uICk7Ci0gICBPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoIGFjdHVhbEtleSApOwotICAgaWYg
KCBpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkgKQotICAgICAgcmV0dXJuIG51bGw7Ci0gICBWYWx1
ZSBvbGQoaXQtPnNlY29uZCk7Ci0gICB2YWx1ZV8ubWFwXy0+ZXJhc2UoaXQpOwotICAgcmV0dXJu
IG9sZDsKLSNlbHNlCi0gICBWYWx1ZSAqdmFsdWUgPSB2YWx1ZV8ubWFwXy0+ZmluZCgga2V5ICk7
Ci0gICBpZiAodmFsdWUpewotICAgICAgVmFsdWUgb2xkKCp2YWx1ZSk7Ci0gICAgICB2YWx1ZV8u
bWFwXy5yZW1vdmUoIGtleSApOwotICAgICAgcmV0dXJuIG9sZDsKLSAgIH0gZWxzZSB7Ci0gICAg
ICByZXR1cm4gbnVsbDsKLSAgIH0KLSNlbmRpZgotfQotCi1WYWx1ZQotVmFsdWU6OnJlbW92ZU1l
bWJlciggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApCi17Ci0gICByZXR1cm4gcmVtb3ZlTWVtYmVy
KCBrZXkuY19zdHIoKSApOwotfQotCi0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSAKLVZh
bHVlOjpnZXQoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5LAotICAgICAgICAgICAgY29u
c3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0Ci17Ci0gICByZXR1cm4gZ2V0KCBrZXkuY19z
dHIoKSwgZGVmYXVsdFZhbHVlICk7Ci19Ci0jIGVuZGlmCi0KLWJvb2wgCi1WYWx1ZTo6aXNNZW1i
ZXIoIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0Ci17Ci0gICBjb25zdCBWYWx1ZSAqdmFsdWUgPSAm
KCgqdGhpcylba2V5XSk7Ci0gICByZXR1cm4gdmFsdWUgIT0gJm51bGw7Ci19Ci0KLQotYm9vbCAK
LVZhbHVlOjppc01lbWJlciggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApIGNvbnN0Ci17Ci0gICBy
ZXR1cm4gaXNNZW1iZXIoIGtleS5jX3N0cigpICk7Ci19Ci0KLQotIyBpZmRlZiBKU09OX1VTRV9D
UFBUTAotYm9vbCAKLVZhbHVlOjppc01lbWJlciggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZr
ZXkgKSBjb25zdAotewotICAgcmV0dXJuIGlzTWVtYmVyKCBrZXkuY19zdHIoKSApOwotfQotI2Vu
ZGlmCi0KLVZhbHVlOjpNZW1iZXJzIAotVmFsdWU6OmdldE1lbWJlck5hbWVzKCkgY29uc3QKLXsK
LSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBvYmplY3RW
YWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAgIHJldHVybiBWYWx1
ZTo6TWVtYmVycygpOwotICAgTWVtYmVycyBtZW1iZXJzOwotICAgbWVtYmVycy5yZXNlcnZlKCB2
YWx1ZV8ubWFwXy0+c2l6ZSgpICk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01B
UAotICAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5iZWdp
bigpOwotICAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdEVuZCA9IHZhbHVlXy5tYXBf
LT5lbmQoKTsKLSAgIGZvciAoIDsgaXQgIT0gaXRFbmQ7ICsraXQgKQotICAgICAgbWVtYmVycy5w
dXNoX2JhY2soIHN0ZDo6c3RyaW5nKCAoKml0KS5maXJzdC5jX3N0cigpICkgKTsKLSNlbHNlCi0g
ICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0OwotICAgVmFsdWVJbnRlcm5hbE1h
cDo6SXRlcmF0b3JTdGF0ZSBpdEVuZDsKLSAgIHZhbHVlXy5tYXBfLT5tYWtlQmVnaW5JdGVyYXRv
ciggaXQgKTsKLSAgIHZhbHVlXy5tYXBfLT5tYWtlRW5kSXRlcmF0b3IoIGl0RW5kICk7Ci0gICBm
b3IgKCA7ICFWYWx1ZUludGVybmFsTWFwOjplcXVhbHMoIGl0LCBpdEVuZCApOyBWYWx1ZUludGVy
bmFsTWFwOjppbmNyZW1lbnQoaXQpICkKLSAgICAgIG1lbWJlcnMucHVzaF9iYWNrKCBzdGQ6OnN0
cmluZyggVmFsdWVJbnRlcm5hbE1hcDo6a2V5KCBpdCApICkgKTsKLSNlbmRpZgotICAgcmV0dXJu
IG1lbWJlcnM7Ci19Ci0vLwotLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0vL0VudW1NZW1iZXJO
YW1lcwotLy9WYWx1ZTo6ZW51bU1lbWJlck5hbWVzKCkgY29uc3QKLS8vewotLy8gICBpZiAoIHR5
cGVfID09IG9iamVjdFZhbHVlICkKLS8vICAgewotLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06
OmFueSggIENwcFRMOjpFbnVtOjp0cmFuc2Zvcm0oCi0vLyAgICAgICAgIENwcFRMOjpFbnVtOjpr
ZXlzKCAqKHZhbHVlXy5tYXBfKSwgQ3BwVEw6OlR5cGU8Y29uc3QgQ1pTdHJpbmcgJj4oKSApLAot
Ly8gICAgICAgICBNZW1iZXJOYW1lc1RyYW5zZm9ybSgpICkgKTsKLS8vICAgfQotLy8gICByZXR1
cm4gRW51bU1lbWJlck5hbWVzKCk7Ci0vL30KLS8vCi0vLwotLy9FbnVtVmFsdWVzIAotLy9WYWx1
ZTo6ZW51bVZhbHVlcygpIGNvbnN0Ci0vL3sKLS8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RWYWx1
ZSAgfHwgIHR5cGVfID09IGFycmF5VmFsdWUgKQotLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06
OmFueVZhbHVlcyggKih2YWx1ZV8ubWFwXyksIAotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ3BwVEw6OlR5cGU8Y29uc3QgVmFsdWUgJj4oKSApOwotLy8gICByZXR1cm4g
RW51bVZhbHVlcygpOwotLy99Ci0vLwotLy8jIGVuZGlmCi0KLXN0YXRpYyBib29sIElzSW50ZWdy
YWwoZG91YmxlIGQpIHsKLSAgZG91YmxlIGludGVncmFsX3BhcnQ7Ci0gIHJldHVybiBtb2RmKGQs
ICZpbnRlZ3JhbF9wYXJ0KSA9PSAwLjA7Ci19Ci0KLQotYm9vbAotVmFsdWU6OmlzTnVsbCgpIGNv
bnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gbnVsbFZhbHVlOwotfQotCi0KLWJvb2wgCi1WYWx1
ZTo6aXNCb29sKCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXyA9PSBib29sZWFuVmFsdWU7Ci19
Ci0KLQotYm9vbCAKLVZhbHVlOjppc0ludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyAp
Ci0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IG1p
bkludCAgJiYgIHZhbHVlXy5pbnRfIDw9IG1heEludDsKLSAgIGNhc2UgdWludFZhbHVlOgotICAg
ICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50KG1heEludCk7Ci0gICBjYXNlIHJlYWxWYWx1
ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYmCi0gICAgICAgICAgICAg
dmFsdWVfLnJlYWxfIDw9IG1heEludCAmJgotICAgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVf
LnJlYWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBmYWxz
ZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzVUludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0
eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5pbnRf
ID49IDAgJiYgTGFyZ2VzdFVJbnQodmFsdWVfLmludF8pIDw9IExhcmdlc3RVSW50KG1heFVJbnQp
OwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IG1heFVJ
bnQ7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAm
JgotICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8PSBtYXhVSW50ICYmCi0gICAgICAgICAgICAg
SXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAg
fQotICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIAotVmFsdWU6OmlzSW50NjQoKSBjb25zdAot
ewotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgc3dpdGNoICggdHlwZV8gKQotICAg
ewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgcmV0dXJuIHRydWU7Ci0gICBjYXNlIHVpbnRWYWx1
ZToKLSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludDY0KG1heEludDY0KTsKLSAgIGNh
c2UgcmVhbFZhbHVlOgotICAgICAgLy8gTm90ZSB0aGF0IG1heEludDY0ICg9IDJeNjMgLSAxKSBp
cyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKLSAgICAgIC8vIGRvdWJsZSwgc28gZG91
YmxlKG1heEludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42My4gVGhlcmVmb3JlIHdlCi0g
ICAgICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxp
bWl0LgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBkb3VibGUobWluSW50NjQpICYmCi0g
ICAgICAgICAgICAgdmFsdWVfLnJlYWxfIDwgZG91YmxlKG1heEludDY0KSAmJgotICAgICAgICAg
ICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsK
LSAgIH0KLSMgZW5kaWYgIC8vIEpTT05fSEFTX0lOVDY0Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0K
LWJvb2wgCi1WYWx1ZTo6aXNVSW50NjQoKSBjb25zdAotewotIyBpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAg
ICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IDA7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJl
dHVybiB0cnVlOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICAvLyBOb3RlIHRoYXQgbWF4VUlu
dDY0ICg9IDJeNjQgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKLSAgICAg
IC8vIGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJe
NjQuIFRoZXJlZm9yZSB3ZQotICAgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0
bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAm
JgotICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IG1heFVJbnQ2NEFzRG91YmxlICYmCi0gICAg
ICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOwotICAgZGVmYXVsdDoKLSAgICAgIGJy
ZWFrOwotICAgfQotIyBlbmRpZiAgLy8gSlNPTl9IQVNfSU5UNjQKLSAgIHJldHVybiBmYWxzZTsK
LX0KLQotCi1ib29sIAotVmFsdWU6OmlzSW50ZWdyYWwoKSBjb25zdAotewotI2lmIGRlZmluZWQo
SlNPTl9IQVNfSU5UNjQpCi0gIHJldHVybiBpc0ludDY0KCkgfHwgaXNVSW50NjQoKTsKLSNlbHNl
Ci0gIHJldHVybiBpc0ludCgpIHx8IGlzVUludCgpOwotI2VuZGlmCi19Ci0KLQotYm9vbCAKLVZh
bHVlOjppc0RvdWJsZSgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gcmVhbFZhbHVlIHx8
IGlzSW50ZWdyYWwoKTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzTnVtZXJpYygpIGNvbnN0Ci17
Ci0gICByZXR1cm4gaXNJbnRlZ3JhbCgpIHx8IGlzRG91YmxlKCk7Ci19Ci0KLQotYm9vbCAKLVZh
bHVlOjppc1N0cmluZygpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gc3RyaW5nVmFsdWU7
Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjppc0FycmF5KCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBl
XyA9PSBhcnJheVZhbHVlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNPYmplY3QoKSBjb25zdAot
ewotICAgcmV0dXJuIHR5cGVfID09IG9iamVjdFZhbHVlOwotfQotCi0KLXZvaWQgCi1WYWx1ZTo6
c2V0Q29tbWVudCggY29uc3QgY2hhciAqY29tbWVudCwKLSAgICAgICAgICAgICAgICAgICBDb21t
ZW50UGxhY2VtZW50IHBsYWNlbWVudCApCi17Ci0gICBpZiAoICFjb21tZW50c18gKQotICAgICAg
Y29tbWVudHNfID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29tbWVudFBsYWNlbWVudF07Ci0g
ICBjb21tZW50c19bcGxhY2VtZW50XS5zZXRDb21tZW50KCBjb21tZW50ICk7Ci19Ci0KLQotdm9p
ZCAKLVZhbHVlOjpzZXRDb21tZW50KCBjb25zdCBzdGQ6OnN0cmluZyAmY29tbWVudCwKLSAgICAg
ICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApCi17Ci0gICBzZXRDb21t
ZW50KCBjb21tZW50LmNfc3RyKCksIHBsYWNlbWVudCApOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6
aGFzQ29tbWVudCggQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKSBjb25zdAotewotICAgcmV0
dXJuIGNvbW1lbnRzXyAhPSAwICAmJiAgY29tbWVudHNfW3BsYWNlbWVudF0uY29tbWVudF8gIT0g
MDsKLX0KLQotc3RkOjpzdHJpbmcgCi1WYWx1ZTo6Z2V0Q29tbWVudCggQ29tbWVudFBsYWNlbWVu
dCBwbGFjZW1lbnQgKSBjb25zdAotewotICAgaWYgKCBoYXNDb21tZW50KHBsYWNlbWVudCkgKQot
ICAgICAgcmV0dXJuIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfOwotICAgcmV0dXJuICIi
OwotfQotCi0KLXN0ZDo6c3RyaW5nIAotVmFsdWU6OnRvU3R5bGVkU3RyaW5nKCkgY29uc3QKLXsK
LSAgIFN0eWxlZFdyaXRlciB3cml0ZXI7Ci0gICByZXR1cm4gd3JpdGVyLndyaXRlKCAqdGhpcyAp
OwotfQotCi0KLVZhbHVlOjpjb25zdF9pdGVyYXRvciAKLVZhbHVlOjpiZWdpbigpIGNvbnN0Ci17
Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0jaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJO
QUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5hcnJheV8gKQot
ICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlIGl0Owot
ICAgICAgICAgdmFsdWVfLmFycmF5Xy0+bWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAg
ICByZXR1cm4gY29uc3RfaXRlcmF0b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSAg
IGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgIHsKLSAg
ICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1
ZV8ubWFwXy0+bWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAgICByZXR1cm4gY29uc3Rf
aXRlcmF0b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSNlbHNlCi0gICBjYXNlIGFy
cmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFwXyAp
Ci0gICAgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IoIHZhbHVlXy5tYXBfLT5iZWdpbigpICk7
Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQot
ICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Ci19Ci0KLVZhbHVlOjpjb25zdF9pdGVyYXRvciAK
LVZhbHVlOjplbmQoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotI2lmZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAg
aWYgKCB2YWx1ZV8uYXJyYXlfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJh
eTo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5hcnJheV8tPm1ha2VFbmRJdGVy
YXRvciggaXQgKTsKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvciggaXQgKTsKLSAgICAg
IH0KLSAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVf
Lm1hcF8gKQotICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0
ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5tYXBfLT5tYWtlRW5kSXRlcmF0b3IoIGl0ICk7Ci0gICAg
ICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsK
LSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAg
aWYgKCB2YWx1ZV8ubWFwXyApCi0gICAgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IoIHZhbHVl
Xy5tYXBfLT5lbmQoKSApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAg
ICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBjb25zdF9pdGVyYXRvcigpOwotfQotCi0KLVZhbHVl
OjppdGVyYXRvciAKLVZhbHVlOjpiZWdpbigpCi17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7
Ci0jaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6
Ci0gICAgICBpZiAoIHZhbHVlXy5hcnJheV8gKQotICAgICAgewotICAgICAgICAgVmFsdWVJbnRl
cm5hbEFycmF5OjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLmFycmF5Xy0+bWFr
ZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAgICByZXR1cm4gaXRlcmF0b3IoIGl0ICk7Ci0g
ICAgICB9Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZh
bHVlXy5tYXBfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9y
U3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8ubWFwXy0+bWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7
Ci0gICAgICAgICByZXR1cm4gaXRlcmF0b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsK
LSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAg
aWYgKCB2YWx1ZV8ubWFwXyApCi0gICAgICAgICByZXR1cm4gaXRlcmF0b3IoIHZhbHVlXy5tYXBf
LT5iZWdpbigpICk7Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIGJy
ZWFrOwotICAgfQotICAgcmV0dXJuIGl0ZXJhdG9yKCk7Ci19Ci0KLVZhbHVlOjppdGVyYXRvciAK
LVZhbHVlOjplbmQoKQotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotI2lmZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgaWYgKCB2
YWx1ZV8uYXJyYXlfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6SXRl
cmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5hcnJheV8tPm1ha2VFbmRJdGVyYXRvcigg
aXQgKTsKLSAgICAgICAgIHJldHVybiBpdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAgICAgIGJy
ZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAg
ICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAg
ICAgIHZhbHVlXy5tYXBfLT5tYWtlRW5kSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAgICByZXR1cm4g
aXRlcmF0b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSNlbHNlCi0gICBjYXNlIGFy
cmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFwXyAp
Ci0gICAgICAgICByZXR1cm4gaXRlcmF0b3IoIHZhbHVlXy5tYXBfLT5lbmQoKSApOwotICAgICAg
YnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVy
biBpdGVyYXRvcigpOwotfQotCi0KLS8vIGNsYXNzIFBhdGhBcmd1bWVudAotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KCkKLSAgIDoga2V5XygpCi0gICAsIGluZGV4
XygpCi0gICAsIGtpbmRfKCBraW5kTm9uZSApCi17Ci19Ci0KLQotUGF0aEFyZ3VtZW50OjpQYXRo
QXJndW1lbnQoIEFycmF5SW5kZXggaW5kZXggKQotICAgOiBrZXlfKCkKLSAgICwgaW5kZXhfKCBp
bmRleCApCi0gICAsIGtpbmRfKCBraW5kSW5kZXggKQotewotfQotCi0KLVBhdGhBcmd1bWVudDo6
UGF0aEFyZ3VtZW50KCBjb25zdCBjaGFyICprZXkgKQotICAgOiBrZXlfKCBrZXkgKQotICAgLCBp
bmRleF8oKQotICAgLCBraW5kXygga2luZEtleSApCi17Ci19Ci0KLQotUGF0aEFyZ3VtZW50OjpQ
YXRoQXJndW1lbnQoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKQotICAgOiBrZXlfKCBrZXkuY19z
dHIoKSApCi0gICAsIGluZGV4XygpCi0gICAsIGtpbmRfKCBraW5kS2V5ICkKLXsKLX0KLQotLy8g
Y2xhc3MgUGF0aAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLVBhdGg6OlBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5n
ICZwYXRoLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMSwKLSAgICAgICAgICAg
IGNvbnN0IFBhdGhBcmd1bWVudCAmYTIsCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQg
JmEzLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhNCwKLSAgICAgICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCAmYTUgKQotewotICAgSW5BcmdzIGluOwotICAgaW4ucHVzaF9iYWNr
KCAmYTEgKTsKLSAgIGluLnB1c2hfYmFjayggJmEyICk7Ci0gICBpbi5wdXNoX2JhY2soICZhMyAp
OwotICAgaW4ucHVzaF9iYWNrKCAmYTQgKTsKLSAgIGluLnB1c2hfYmFjayggJmE1ICk7Ci0gICBt
YWtlUGF0aCggcGF0aCwgaW4gKTsKLX0KLQotCi12b2lkIAotUGF0aDo6bWFrZVBhdGgoIGNvbnN0
IHN0ZDo6c3RyaW5nICZwYXRoLAotICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4gKQot
ewotICAgY29uc3QgY2hhciAqY3VycmVudCA9IHBhdGguY19zdHIoKTsKLSAgIGNvbnN0IGNoYXIg
KmVuZCA9IGN1cnJlbnQgKyBwYXRoLmxlbmd0aCgpOwotICAgSW5BcmdzOjpjb25zdF9pdGVyYXRv
ciBpdEluQXJnID0gaW4uYmVnaW4oKTsKLSAgIHdoaWxlICggY3VycmVudCAhPSBlbmQgKQotICAg
ewotICAgICAgaWYgKCAqY3VycmVudCA9PSAnWycgKQotICAgICAgewotICAgICAgICAgKytjdXJy
ZW50OwotICAgICAgICAgaWYgKCAqY3VycmVudCA9PSAnJScgKQotICAgICAgICAgICAgYWRkUGF0
aEluQXJnKCBwYXRoLCBpbiwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKTsKLSAg
ICAgICAgIGVsc2UKLSAgICAgICAgIHsKLSAgICAgICAgICAgIEFycmF5SW5kZXggaW5kZXggPSAw
OwotICAgICAgICAgICAgZm9yICggOyBjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVudCA+PSAnMCcg
ICYmICAqY3VycmVudCA8PSAnOSc7ICsrY3VycmVudCApCi0gICAgICAgICAgICAgICBpbmRleCA9
IGluZGV4ICogMTAgKyBBcnJheUluZGV4KCpjdXJyZW50IC0gJzAnKTsKLSAgICAgICAgICAgIGFy
Z3NfLnB1c2hfYmFjayggaW5kZXggKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmICggY3VycmVu
dCA9PSBlbmQgIHx8ICAqY3VycmVudCsrICE9ICddJyApCi0gICAgICAgICAgICBpbnZhbGlkUGF0
aCggcGF0aCwgaW50KGN1cnJlbnQgLSBwYXRoLmNfc3RyKCkpICk7Ci0gICAgICB9Ci0gICAgICBl
bHNlIGlmICggKmN1cnJlbnQgPT0gJyUnICkKLSAgICAgIHsKLSAgICAgICAgIGFkZFBhdGhJbkFy
ZyggcGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZEtleSApOwotICAgICAgICAg
KytjdXJyZW50OwotICAgICAgfQotICAgICAgZWxzZSBpZiAoICpjdXJyZW50ID09ICcuJyApCi0g
ICAgICB7Ci0gICAgICAgICArK2N1cnJlbnQ7Ci0gICAgICB9Ci0gICAgICBlbHNlCi0gICAgICB7
Ci0gICAgICAgICBjb25zdCBjaGFyICpiZWdpbk5hbWUgPSBjdXJyZW50OwotICAgICAgICAgd2hp
bGUgKCBjdXJyZW50ICE9IGVuZCAgJiYgICFzdHJjaHIoICJbLiIsICpjdXJyZW50ICkgKQotICAg
ICAgICAgICAgKytjdXJyZW50OwotICAgICAgICAgYXJnc18ucHVzaF9iYWNrKCBzdGQ6OnN0cmlu
ZyggYmVnaW5OYW1lLCBjdXJyZW50ICkgKTsKLSAgICAgIH0KLSAgIH0KLX0KLQotCi12b2lkIAot
UGF0aDo6YWRkUGF0aEluQXJnKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4sIAotICAgICAgICAgICAgICAgICAgICBJbkFyZ3M6
OmNvbnN0X2l0ZXJhdG9yICZpdEluQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3Vt
ZW50OjpLaW5kIGtpbmQgKQotewotICAgaWYgKCBpdEluQXJnID09IGluLmVuZCgpICkKLSAgIHsK
LSAgICAgIC8vIEVycm9yOiBtaXNzaW5nIGFyZ3VtZW50ICVkCi0gICB9Ci0gICBlbHNlIGlmICgg
KCppdEluQXJnKS0+a2luZF8gIT0ga2luZCApCi0gICB7Ci0gICAgICAvLyBFcnJvcjogYmFkIGFy
Z3VtZW50IHR5cGUKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIGFyZ3NfLnB1c2hfYmFjaygg
KippdEluQXJnICk7Ci0gICB9Ci19Ci0KLQotdm9pZCAKLVBhdGg6OmludmFsaWRQYXRoKCBjb25z
dCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAgICAgICAgICAgICAgICAgaW50IGxvY2F0aW9uICkK
LXsKLSAgIC8vIEVycm9yOiBpbnZhbGlkIHBhdGguCi19Ci0KLQotY29uc3QgVmFsdWUgJgotUGF0
aDo6cmVzb2x2ZSggY29uc3QgVmFsdWUgJnJvb3QgKSBjb25zdAotewotICAgY29uc3QgVmFsdWUg
Km5vZGUgPSAmcm9vdDsKLSAgIGZvciAoIEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18u
YmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQgKQotICAgewotICAgICAgY29uc3QgUGF0
aEFyZ3VtZW50ICZhcmcgPSAqaXQ7Ci0gICAgICBpZiAoIGFyZy5raW5kXyA9PSBQYXRoQXJndW1l
bnQ6OmtpbmRJbmRleCApCi0gICAgICB7Ci0gICAgICAgICBpZiAoICFub2RlLT5pc0FycmF5KCkg
IHx8ICAhbm9kZS0+aXNWYWxpZEluZGV4KCBhcmcuaW5kZXhfICkgKQotICAgICAgICAgewotICAg
ICAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKGFycmF5IHZhbHVlIGV4
cGVjdGVkIGF0IHBvc2l0aW9uLi4uCi0gICAgICAgICB9Ci0gICAgICAgICBub2RlID0gJigoKm5v
ZGUpW2FyZy5pbmRleF9dKTsKLSAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCBhcmcua2luZF8gPT0g
UGF0aEFyZ3VtZW50OjpraW5kS2V5ICkKLSAgICAgIHsKLSAgICAgICAgIGlmICggIW5vZGUtPmlz
T2JqZWN0KCkgKQotICAgICAgICAgewotICAgICAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byBy
ZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLikKLSAgICAg
ICAgIH0KLSAgICAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKLSAgICAgICAgIGlm
ICggbm9kZSA9PSAmVmFsdWU6Om51bGwgKQotICAgICAgICAgewotICAgICAgICAgICAgLy8gRXJy
b3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCBoYXMgbm8gbWVtYmVyIG5hbWVkICcn
IGF0IHBvc2l0aW9uLi4uKQotICAgICAgICAgfQotICAgICAgfQotICAgfQotICAgcmV0dXJuICpu
b2RlOwotfQotCi0KLVZhbHVlIAotUGF0aDo6cmVzb2x2ZSggY29uc3QgVmFsdWUgJnJvb3QsIAot
ICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0Ci17Ci0gICBj
b25zdCBWYWx1ZSAqbm9kZSA9ICZyb290OwotICAgZm9yICggQXJnczo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5lbmQoKTsgKytpdCApCi0gICB7Ci0gICAg
ICBjb25zdCBQYXRoQXJndW1lbnQgJmFyZyA9ICppdDsKLSAgICAgIGlmICggYXJnLmtpbmRfID09
IFBhdGhBcmd1bWVudDo6a2luZEluZGV4ICkKLSAgICAgIHsKLSAgICAgICAgIGlmICggIW5vZGUt
PmlzQXJyYXkoKSAgfHwgICFub2RlLT5pc1ZhbGlkSW5kZXgoIGFyZy5pbmRleF8gKSApCi0gICAg
ICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgICAgICAgbm9kZSA9ICYoKCpub2RlKVth
cmcuaW5kZXhfXSk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICggYXJnLmtpbmRfID09IFBhdGhB
cmd1bWVudDo6a2luZEtleSApCi0gICAgICB7Ci0gICAgICAgICBpZiAoICFub2RlLT5pc09iamVj
dCgpICkKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgICAgICBub2RlID0g
JigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICAgICBpZiAoIG5vZGUgPT0gJlZhbHVlOjpudWxs
ICkKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgICB9Ci0gICB9Ci0gICBy
ZXR1cm4gKm5vZGU7Ci19Ci0KLQotVmFsdWUgJgotUGF0aDo6bWFrZSggVmFsdWUgJnJvb3QgKSBj
b25zdAotewotICAgVmFsdWUgKm5vZGUgPSAmcm9vdDsKLSAgIGZvciAoIEFyZ3M6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQgKQotICAg
ewotICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhcmcgPSAqaXQ7Ci0gICAgICBpZiAoIGFyZy5r
aW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCApCi0gICAgICB7Ci0gICAgICAgICBpZiAo
ICFub2RlLT5pc0FycmF5KCkgKQotICAgICAgICAgewotICAgICAgICAgICAgLy8gRXJyb3I6IG5v
ZGUgaXMgbm90IGFuIGFycmF5IGF0IHBvc2l0aW9uIC4uLgotICAgICAgICAgfQotICAgICAgICAg
bm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICgg
YXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSApCi0gICAgICB7Ci0gICAgICAgICBp
ZiAoICFub2RlLT5pc09iamVjdCgpICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9y
OiBub2RlIGlzIG5vdCBhbiBvYmplY3QgYXQgcG9zaXRpb24uLi4KLSAgICAgICAgIH0KLSAgICAg
ICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKLSAgICAgIH0KLSAgIH0KLSAgIHJldHVy
biAqbm9kZTsKLX0KLQotCi19IC8vIG5hbWVzcGFjZSBKc29uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvcGF0Y2hlcy92
YWx1ZS5oLmRpZmYgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvcGF0Y2hlcy92YWx1ZS5oLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJjZTU3YjJkYTc0MTg4NTNlNmNkZTFjY2MwNDNkN2UwYmFhMzlhZjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3BhdGNoZXMvdmFsdWUuaC5kaWZm
CisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotZGlmZiAtLWdpdCAiYS9zb3VyY2VcXGlu
Y2x1ZGVcXGpzb25cXHZhbHVlLmgiICJiL292ZXJyaWRlc1xcaW5jbHVkZVxcanNvblxcdmFsdWUu
aCIKLWluZGV4IGIwMTNjOWIuLjU3MDcyNjAgMTAwNjQ0Ci0tLS0gImEvc291cmNlXFxpbmNsdWRl
XFxqc29uXFx2YWx1ZS5oIgotKysrICJiL292ZXJyaWRlc1xcaW5jbHVkZVxcanNvblxcdmFsdWUu
aCIKLUBAIC03LDcgKzcsNyBAQAotICMgZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAotIAot
ICNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLS0jIGluY2x1ZGUgImZvcndhcmRz
LmgiCi0rIyBpbmNsdWRlICJ0aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24v
Zm9yd2FyZHMuaCIKLSAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
Ci0gIyBpbmNsdWRlIDxzdHJpbmc+Ci0gIyBpbmNsdWRlIDx2ZWN0b3I+Ci1AQCAtMTM2LDcgKzEz
Niw3IEBAIG5hbWVzcGFjZSBKc29uIHsKLSAgICAgICB0eXBlZGVmIEpzb246Okxhcmdlc3RVSW50
IExhcmdlc3RVSW50OwotICAgICAgIHR5cGVkZWYgSnNvbjo6QXJyYXlJbmRleCBBcnJheUluZGV4
OwotIAotLSAgICAgIHN0YXRpYyBjb25zdCBWYWx1ZSBudWxsOwotKyAgICAgIHN0YXRpYyBjb25z
dCBWYWx1ZSYgbnVsbDsKLSAgICAgICAvLy8gTWluaW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0
aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgICBzdGF0aWMgY29uc3Qg
TGFyZ2VzdEludCBtaW5MYXJnZXN0SW50OwotICAgICAgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRl
Z2VyIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotQEAgLTQ5Niwx
MCArNDk2LDEyIEBAIG5hbWVzcGFjZSBKc29uIHsKLSAjIGVuZGlmCi0gICAgICAgfSB2YWx1ZV87
Ci0gICAgICAgVmFsdWVUeXBlIHR5cGVfIDogODsKLS0gICAgICBpbnQgYWxsb2NhdGVkXyA6IDE7
ICAgICAvLyBOb3RlczogaWYgZGVjbGFyZWQgYXMgYm9vbCwgYml0ZmllbGQgaXMgdXNlbGVzcy4K
LSsgICAgICAvLyBPbmUtYml0IGJpdGZpZWxkcyBtdXN0IGJlIHVuc2lnbmVkIHRvIGFsbG93IHN0
b3JpbmcgMS4KLSsgICAgICAvLyBUaGV5IG11c3QgYmUgMzItYml0cyB0byBzaGFyZSBzdG9yYWdl
IHdpdGggVmFsdWVIb2xkZXIuCi0rICAgICAgdW5zaWduZWQgaW50IGFsbG9jYXRlZF8gOiAxOwot
ICMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICAgdW5zaWduZWQgaW50
IGl0ZW1Jc1VzZWRfIDogMTsgICAgICAvLyB1c2VkIGJ5IHRoZSBWYWx1ZUludGVybmFsTWFwIGNv
bnRhaW5lci4KLS0gICAgICBpbnQgbWVtYmVyTmFtZUlzU3RhdGljXyA6IDE7ICAgICAgIC8vIHVz
ZWQgYnkgdGhlIFZhbHVlSW50ZXJuYWxNYXAgY29udGFpbmVyLgotKyAgICAgIHVuc2lnbmVkIGlu
dCBtZW1iZXJOYW1lSXNTdGF0aWNfIDogMTsgLy8gdXNlZCBieSB0aGUgVmFsdWVJbnRlcm5hbE1h
cCBjb250YWluZXIuCi0gIyBlbmRpZgotICAgICAgIENvbW1lbnRJbmZvICpjb21tZW50c187Ci0g
ICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmNsYW5nLWZvcm1hdCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmNsYW5nLWZvcm1h
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYTM3MmZjNWJlZWIyMGJjMjU0ZDM2ODQ4YTIyNDIwNjlmYzljODQ0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8uY2xhbmctZm9ybWF0CkBAIC0wLDAgKzEsNDcgQEAKKy0t
LQorIyBCYXNlZE9uU3R5bGU6ICBMTFZNCitBY2Nlc3NNb2RpZmllck9mZnNldDogLTIKK0NvbnN0
cnVjdG9ySW5pdGlhbGl6ZXJJbmRlbnRXaWR0aDogNAorQWxpZ25Fc2NhcGVkTmV3bGluZXNMZWZ0
OiBmYWxzZQorQWxpZ25UcmFpbGluZ0NvbW1lbnRzOiB0cnVlCitBbGxvd0FsbFBhcmFtZXRlcnNP
ZkRlY2xhcmF0aW9uT25OZXh0TGluZTogdHJ1ZQorQWxsb3dTaG9ydElmU3RhdGVtZW50c09uQVNp
bmdsZUxpbmU6IGZhbHNlCitBbGxvd1Nob3J0TG9vcHNPbkFTaW5nbGVMaW5lOiBmYWxzZQorQWx3
YXlzQnJlYWtUZW1wbGF0ZURlY2xhcmF0aW9uczogZmFsc2UKK0Fsd2F5c0JyZWFrQmVmb3JlTXVs
dGlsaW5lU3RyaW5nczogZmFsc2UKK0JyZWFrQmVmb3JlQmluYXJ5T3BlcmF0b3JzOiBmYWxzZQor
QnJlYWtCZWZvcmVUZXJuYXJ5T3BlcmF0b3JzOiB0cnVlCitCcmVha0NvbnN0cnVjdG9ySW5pdGlh
bGl6ZXJzQmVmb3JlQ29tbWE6IGZhbHNlCitCaW5QYWNrUGFyYW1ldGVyczogZmFsc2UKK0NvbHVt
bkxpbWl0OiAgICAgODAKK0NvbnN0cnVjdG9ySW5pdGlhbGl6ZXJBbGxPbk9uZUxpbmVPck9uZVBl
ckxpbmU6IGZhbHNlCitEZXJpdmVQb2ludGVyQmluZGluZzogZmFsc2UKK0V4cGVyaW1lbnRhbEF1
dG9EZXRlY3RCaW5QYWNraW5nOiBmYWxzZQorSW5kZW50Q2FzZUxhYmVsczogZmFsc2UKK01heEVt
cHR5TGluZXNUb0tlZXA6IDEKK05hbWVzcGFjZUluZGVudGF0aW9uOiBOb25lCitPYmpDU3BhY2VC
ZWZvcmVQcm90b2NvbExpc3Q6IHRydWUKK1BlbmFsdHlCcmVha0JlZm9yZUZpcnN0Q2FsbFBhcmFt
ZXRlcjogMTkKK1BlbmFsdHlCcmVha0NvbW1lbnQ6IDYwCitQZW5hbHR5QnJlYWtTdHJpbmc6IDEw
MDAKK1BlbmFsdHlCcmVha0ZpcnN0TGVzc0xlc3M6IDEyMAorUGVuYWx0eUV4Y2Vzc0NoYXJhY3Rl
cjogMTAwMDAwMAorUGVuYWx0eVJldHVyblR5cGVPbkl0c093bkxpbmU6IDYwCitQb2ludGVyQmlu
ZHNUb1R5cGU6IHRydWUKK1NwYWNlc0JlZm9yZVRyYWlsaW5nQ29tbWVudHM6IDEKK0NwcDExQnJh
Y2VkTGlzdFN0eWxlOiB0cnVlCitTdGFuZGFyZDogICAgICAgIENwcDExCitJbmRlbnRXaWR0aDog
ICAgIDIKK1RhYldpZHRoOiAgICAgICAgOAorVXNlVGFiOiAgICAgICAgICBOZXZlcgorQnJlYWtC
ZWZvcmVCcmFjZXM6IEF0dGFjaAorSW5kZW50RnVuY3Rpb25EZWNsYXJhdGlvbkFmdGVyVHlwZTog
ZmFsc2UKK1NwYWNlc0luUGFyZW50aGVzZXM6IGZhbHNlCitTcGFjZXNJbkFuZ2xlczogIGZhbHNl
CitTcGFjZUluRW1wdHlQYXJlbnRoZXNlczogZmFsc2UKK1NwYWNlc0luQ1N0eWxlQ2FzdFBhcmVu
dGhlc2VzOiBmYWxzZQorU3BhY2VBZnRlckNvbnRyb2xTdGF0ZW1lbnRLZXl3b3JkOiB0cnVlCitT
cGFjZUJlZm9yZUFzc2lnbm1lbnRPcGVyYXRvcnM6IHRydWUKK0NvbnRpbnVhdGlvbkluZGVudFdp
ZHRoOiA0CisuLi4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8uZ2l0YXR0cmlidXRlcyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdp
dGF0dHJpYnV0ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJkMmI3YTQ1NWEzOGE0YzNlZWU0ZmRhNjAyYTU4NmYz
OTZhYjgxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGF0dHJpYnV0ZXMKQEAgLTAsMCAr
MSwxMSBAQAorKiAgICAgICAgICAgdGV4dD1hdXRvCisqLmggICAgICAgICB0ZXh0CisqLmNwcCAg
ICAgICB0ZXh0CisqLmpzb24gICAgICB0ZXh0CisqLmluICAgICAgICB0ZXh0CisqLnNoICAgICAg
ICBlb2w9bGYKKyouYmF0ICAgICAgIGVvbD1jcmxmCisqLnZjcHJvaiAgICBlb2w9Y3JsZgorKi52
Y3hwcm9qICAgZW9sPWNybGYKKyouc2xuICAgICAgIGVvbD1jcmxmCitkZXZ0b29scy9hZ2VudF92
bSogZW9sPWNybGYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS9idWdf
cmVwb3J0Lm1kIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFL2J1Z19yZXBvcnQubWQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzU0NzcwOTdhNjM1YjE2OWUxYjc5NjczMmFkNTJlZjcxNDY1Y2RmYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS9idWdfcmVwb3J0Lm1kCkBA
IC0wLDAgKzEsMjYgQEAKKy0tLQorbmFtZTogQnVnIHJlcG9ydAorYWJvdXQ6IENyZWF0ZSBhIHJl
cG9ydCB0byBoZWxwIHVzIGltcHJvdmUKK3RpdGxlOiAnJworbGFiZWxzOiAnJworYXNzaWduZWVz
OiAnJworCistLS0KKworKipEZXNjcmliZSB0aGUgYnVnKioKK0EgY2xlYXIgYW5kIGNvbmNpc2Ug
ZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgYnVnIGlzLgorCisqKlRvIFJlcHJvZHVjZSoqCitTdGVw
cyB0byByZXByb2R1Y2UgdGhlIGJlaGF2aW9yOgorMS4KKworKipFeHBlY3RlZCBiZWhhdmlvcioq
CitBIGNsZWFyIGFuZCBjb25jaXNlIGRlc2NyaXB0aW9uIG9mIHdoYXQgeW91IGV4cGVjdGVkIHRv
IGhhcHBlbi4KKworKipEZXNrdG9wIChwbGVhc2UgY29tcGxldGUgdGhlIGZvbGxvd2luZyBpbmZv
cm1hdGlvbik6KioKKyAtIE9TOiBbZS5nLiBpT1NdCisgLSBNZXNvbiB2ZXJzaW9uCisgLSBOaW5q
YSB2ZXJzaW9uCisKKyoqQWRkaXRpb25hbCBjb250ZXh0KioKK0FkZCBhbnkgb3RoZXIgY29udGV4
dCBhYm91dCB0aGUgcHJvYmxlbSBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8uZ2l0aHViL0lTU1VF
X1RFTVBMQVRFL2ZlYXR1cmVfcmVxdWVzdC5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGh1Yi9JU1NVRV9URU1QTEFU
RS9mZWF0dXJlX3JlcXVlc3QubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJjYmJlN2Q2MTU1OGFkZGUzY2JmZDBj
N2E2M2E2N2MyN2VkNmQzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGh1Yi9JU1NVRV9U
RU1QTEFURS9mZWF0dXJlX3JlcXVlc3QubWQKQEAgLTAsMCArMSwyMCBAQAorLS0tCituYW1lOiBG
ZWF0dXJlIHJlcXVlc3QKK2Fib3V0OiBTdWdnZXN0IGFuIGlkZWEgZm9yIHRoaXMgcHJvamVjdAor
dGl0bGU6ICcnCitsYWJlbHM6ICcnCithc3NpZ25lZXM6ICcnCisKKy0tLQorCisqKklzIHlvdXIg
ZmVhdHVyZSByZXF1ZXN0IHJlbGF0ZWQgdG8gYSBwcm9ibGVtPyBQbGVhc2UgZGVzY3JpYmUuKioK
K0EgY2xlYXIgYW5kIGNvbmNpc2UgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgcHJvYmxlbSBpcy4g
RXguIEknbSBhbHdheXMgZnJ1c3RyYXRlZCB3aGVuIFsuLi5dCisKKyoqRGVzY3JpYmUgdGhlIHNv
bHV0aW9uIHlvdSdkIGxpa2UqKgorQSBjbGVhciBhbmQgY29uY2lzZSBkZXNjcmlwdGlvbiBvZiB3
aGF0IHlvdSB3YW50IHRvIGhhcHBlbi4KKworKipEZXNjcmliZSBhbHRlcm5hdGl2ZXMgeW91J3Zl
IGNvbnNpZGVyZWQqKgorQSBjbGVhciBhbmQgY29uY2lzZSBkZXNjcmlwdGlvbiBvZiBhbnkgYWx0
ZXJuYXRpdmUgc29sdXRpb25zIG9yIGZlYXR1cmVzIHlvdSd2ZSBjb25zaWRlcmVkLgorCisqKkFk
ZGl0aW9uYWwgY29udGV4dCoqCitBZGQgYW55IG90aGVyIGNvbnRleHQgb3Igc2NyZWVuc2hvdHMg
YWJvdXQgdGhlIGZlYXR1cmUgcmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8uZ2l0aWdu
b3JlIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0MjA2OTdjMjMzNTgwMmNiMzVkMzYw
ZjU5NThhMGRlNmU4YTIwMjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRpZ25vcmUKQEAg
LTAsMCArMSw1NSBAQAorL2J1aWxkLworL2J1aWxkLSovCisqLnB5YworKi5zd3AKKyouYWN0dWFs
CisqLmFjdHVhbC1yZXdyaXRlCisqLnByb2Nlc3Mtb3V0cHV0CisqLnJld3JpdGUKKy9iaW4vCisv
bGlicy8KKy9kb2MvZG94eWZpbGUKKy9kaXN0LworIy92ZXJzaW9uCisjL2luY2x1ZGUvanNvbi92
ZXJzaW9uLmgKKworIyBNU1ZDIHByb2plY3QgZmlsZXM6CisqLnNsbgorKi52Y3hwcm9qCisqLmZp
bHRlcnMKKyoudXNlcgorKi5zZGYKKyoub3BlbnNkZgorKi5zdW8KKworIyBNU1ZDIGJ1aWxkIGZp
bGVzOgorKi5saWIKKyoub2JqCisqLnRsb2cvCisqLnBkYgorCisjIENNYWtlLWdlbmVyYXRlZCBm
aWxlczoKK0NNYWtlRmlsZXMvCisqLmNtYWtlCisvcGtnLWNvbmZpZy9qc29uY3BwLnBjCitqc29u
Y3BwX2xpYl9zdGF0aWMuZGlyLworCisjIEluIGNhc2Ugc29tZW9uZSBydW5zIGNtYWtlIGluIHRo
ZSByb290LWRpcjoKKy9DTWFrZUNhY2hlLnR4dAorL01ha2VmaWxlCisvaW5jbHVkZS9NYWtlZmls
ZQorL3NyYy9NYWtlZmlsZQorL3NyYy9qc29udGVzdHJ1bm5lci9NYWtlZmlsZQorL3NyYy9qc29u
dGVzdHJ1bm5lci9qc29udGVzdHJ1bm5lcl9leGUKKy9zcmMvbGliX2pzb24vTWFrZWZpbGUKKy9z
cmMvdGVzdF9saWJfanNvbi9NYWtlZmlsZQorL3NyYy90ZXN0X2xpYl9qc29uL2pzb25jcHBfdGVz
dAorKi5hCisKKyMgZWNsaXBzZSBwcm9qZWN0IGZpbGVzCisucHJvamVjdAorLmNwcm9qZWN0Cisv
LnNldHRpbmdzLworCisjIERTX1N0b3JlCisuRFNfU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRy
YXZpcy55bWwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlLy50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NDliNDYzM2JkYjk5ZGRk
MDFkNGMxMjJiNDM3NjdlMDQ5NzhhZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXMu
eW1sCkBAIC0wLDAgKzEsNjUgQEAKKyMgQnVpbGQgbWF0cml4IC8gZW52aXJvbm1lbnQgdmFyaWFi
bGVzIGFyZSBleHBsYWluZWQgb246CisjIGh0dHA6Ly9hYm91dC50cmF2aXMtY2kub3JnL2RvY3Mv
dXNlci9idWlsZC1jb25maWd1cmF0aW9uLworIyBUaGlzIGZpbGUgY2FuIGJlIHZhbGlkYXRlZCBv
bjogaHR0cDovL3d3dy55YW1sbGludC5jb20vCisjIE9yIHVzaW5nIHRoZSBSdWJ5IGJhc2VkIHRy
YXZlbCBjb21tYW5kIGxpbmUgdG9vbDoKKyMgZ2VtIGluc3RhbGwgdHJhdmlzIC0tbm8tcmRvYyAt
LW5vLXJpCisjIHRyYXZpcyBsaW50IC50cmF2aXMueW1sCitsYW5ndWFnZTogY3BwCitzdWRvOiBm
YWxzZQorYWRkb25zOgorICBob21lYnJldzoKKyAgICBwYWNrYWdlczoKKyAgICAtIG1lc29uCisg
ICAgLSBuaW5qYQorICAgIHVwZGF0ZTogZmFsc2UgIyBkbyBub3QgdXBkYXRlIGhvbWVicmV3IGJ5
IGRlZmF1bHQKKyAgYXB0OgorICAgIHNvdXJjZXM6CisgICAgLSB1YnVudHUtdG9vbGNoYWluLXIt
dGVzdAorICAgIC0gbGx2bS10b29sY2hhaW4teGVuaWFsLTgKKyAgICBwYWNrYWdlczoKKyAgICAt
IGNsYW5nLTgKKyAgICAtIHZhbGdyaW5kCittYXRyaXg6CisgIGFsbG93X2ZhaWx1cmVzOgorICAg
IC0gb3M6IG9zeAorICBpbmNsdWRlOgorICAgIC0gbmFtZTogTWFjIGNsYW5nIG1lc29uIHN0YXRp
YyByZWxlYXNlIHRlc3RpbmcKKyAgICAgIG9zOiBvc3gKKyAgICAgIG9zeF9pbWFnZTogeGNvZGUx
MC4yCisgICAgICBjb21waWxlcjogY2xhbmcKKyAgICAgIGVudjoKKyAgICAgICAgIENYWD0iY2xh
bmcrKyIKKyAgICAgICAgIENDPSJjbGFuZyIKKyAgICAgICAgIExJQl9UWVBFPXN0YXRpYworICAg
ICAgICAgQlVJTERfVFlQRT1yZWxlYXNlCisgICAgICBzY3JpcHQ6IC4vLnRyYXZpc19zY3JpcHRz
L21lc29uX2J1aWxkZXIuc2gKKyAgICAtIG5hbWU6IExpbnV4IHhlbmlhbCBjbGFuZyBtZXNvbiBz
dGF0aWMgcmVsZWFzZSB0ZXN0aW5nCisgICAgICBvczogbGludXgKKyAgICAgIGRpc3Q6IHhlbmlh
bAorICAgICAgY29tcGlsZXI6IGNsYW5nCisgICAgICBlbnY6CisgICAgICAgICBDWFg9ImNsYW5n
KysiCisgICAgICAgICBDQz0iY2xhbmciCisgICAgICAgICBMSUJfVFlQRT1zdGF0aWMKKyAgICAg
ICAgIEJVSUxEX1RZUEU9cmVsZWFzZQorICAgICAgIyBiZWZvcmVfaW5zdGFsbCBhbmQgaW5zdGFs
bCBzdGVwcyBvbmx5IG5lZWRlZCBmb3IgbGludXggbWVzb24gYnVpbGRzCisgICAgICBiZWZvcmVf
aW5zdGFsbDoKKyAgICAgICAgICAtIHNvdXJjZSAuLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuYmVm
b3JlX2luc3RhbGwuJHtUUkFWSVNfT1NfTkFNRX0uc2gKKyAgICAgIGluc3RhbGw6CisgICAgICAg
ICAgIC0gc291cmNlIC4vLnRyYXZpc19zY3JpcHRzL3RyYXZpcy5pbnN0YWxsLiR7VFJBVklTX09T
X05BTUV9LnNoCisgICAgICBzY3JpcHQ6IC4vLnRyYXZpc19zY3JpcHRzL21lc29uX2J1aWxkZXIu
c2gKKyAgICAtIG5hbWU6IExpbnV4IHhlbmlhbCBnY2MgY21ha2UgY292ZXJhZ2UKKyAgICAgIG9z
OiBsaW51eAorICAgICAgZGlzdDogeGVuaWFsCisgICAgICBjb21waWxlcjogZ2NjCisgICAgICBl
bnY6CisgICAgICAgIENYWD1nKysKKyAgICAgICAgQ0M9Z2NjCisgICAgICAgIERPX0NvdmVyYWdl
PU9OCisgICAgICAgIEJVSUxEX1RPT0w9IlVuaXggTWFrZWZpbGVzIgorICAgICAgICBCVUlMRF9U
WVBFPURlYnVnCisgICAgICAgIExJQl9UWVBFPXNoYXJlZAorICAgICAgICBERVNURElSPS90bXAv
Y21ha2VfanNvbl9jcHAKKyAgICAgIHNjcmlwdDogLi8udHJhdmlzX3NjcmlwdHMvY21ha2VfYnVp
bGRlci5zaAorbm90aWZpY2F0aW9uczoKKyAgZW1haWw6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
Ly50cmF2aXNfc2NyaXB0cy9jbWFrZV9idWlsZGVyLnNoIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMv
Y21ha2VfYnVpbGRlci5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2IzMzMxMmVhMGYyMmNiNWI5NjljNmRhZWJm
Yzc0ZmJiZGJhMmZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvY21h
a2VfYnVpbGRlci5zaApAQCAtMCwwICsxLDEzMCBAQAorIyEvdXNyL2Jpbi9lbnYgc2gKKyMgVGhp
cyBzY3JpcHQgY2FuIGJlIHVzZWQgb24gdGhlIGNvbW1hbmQgbGluZSBkaXJlY3RseSB0byBjb25m
aWd1cmUgc2V2ZXJhbAorIyBkaWZmZXJlbnQgYnVpbGQgZW52aXJvbm1lbnRzLgorIyBUaGlzIGlz
IGNhbGxlZCBieSBgLnRyYXZpcy55bWxgIHZpYSBUcmF2aXMgQ0kuCisjIFRyYXZpcyBzdXBwbGll
cyAkVFJBVklTX09TX05BTUUuCisjICBodHRwOi8vZG9jcy50cmF2aXMtY2kuY29tL3VzZXIvbXVs
dGktb3MvCisjIE91ciAudHJhdmlzLnltbCBhbHNvIGRlZmluZXM6CisKKyMgICAtIEJVSUxEX1RZ
UEU9UmVsZWFzZS9EZWJ1ZworIyAgIC0gTElCX1RZUEU9c3RhdGljL3NoYXJlZAorIworIyBPcHRp
b25hbCBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcworIyAgIC0gREVTVERJUiA8LSB1c2VkIGZvciBz
ZXR0aW5nIHRoZSBpbnN0YWxsIHByZWZpeAorIyAgIC0gQlVJTERfVE9PTD1bIlVuaXggTWFrZWZp
bGUifCJOaW5qYSJdCisjICAgLSBCVUlMRE5BTUUgPC0gaG93IHRvIGlkZW50aWZ5IHRoaXMgYnVp
bGQgb24gdGhlIGRhc2hib2FyZAorIyAgIC0gRE9fTWVtQ2hlY2sgPC0gaWYgc2V0LCB0cnkgdG8g
dXNlIHZhbGdyaW5kCisjICAgLSBET19Db3ZlcmFnZSA8LSBpZiBzZXQsIHRyeSB0byBkbyBkYXNo
Ym9hcmQgY292ZXJhZ2UgdGVzdGluZworIworCitlbnZfc2V0PTEKK2lmICR7QlVJTERfVFlQRStm
YWxzZX07IHRoZW4KKyAgZWNobyAiQlVJTERfVFlQRSBub3Qgc2V0IGluIGVudmlyb25tZW50LiIK
KyAgZW52X3NldD0wCitmaQoraWYgJHtMSUJfVFlQRStmYWxzZX07IHRoZW4KKyAgZWNobyAiTElC
X1RZUEUgbm90IHNldCBpbiBlbnZpcm9ubWVudC4iCisgIGVudl9zZXQ9MAorZmkKK2lmICR7Q1hY
K2ZhbHNlfTsgdGhlbgorICBlY2hvICJDWFggbm90IHNldCBpbiBlbnZpcm9ubWVudC4iCisgIGVu
dl9zZXQ9MAorZmkKKworCitpZiBbICR7ZW52X3NldH0gLWVxIDAgXTsgdGhlbgorICBlY2hvICJV
U0FHRTogIENYWD0kKHdoaWNoIGNsYW5nKyspICBCVUlMRF9UWVBFPVtSZWxlYXNlfERlYnVnXSBM
SUJfVFlQRT1bc3RhdGljfHNoYXJlZF0gJDAiCisgIGVjaG8gIiIKKyAgZWNobyAiRXhhbXBsZXM6
IgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9UmVs
ZWFzZSBMSUJfVFlQRT1zaGFyZWQgREVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorICBl
Y2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9RGVidWcgICBM
SUJfVFlQRT1zaGFyZWQgREVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorICBlY2hvICIg
ICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9UmVsZWFzZSBMSUJfVFlQ
RT1zdGF0aWMgREVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAg
ICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9RGVidWcgICBMSUJfVFlQRT1zdGF0
aWMgREVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorCisgIGVjaG8gIiAgICAgICAgICAg
Q1hYPSQod2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1SZWxlYXNlIExJQl9UWVBFPXNoYXJlZCBE
RVNURElSPS90bXAvY21ha2VfanNvbl9jcHAgJDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQo
d2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1EZWJ1ZyAgIExJQl9UWVBFPXNoYXJlZCBERVNURElS
PS90bXAvY21ha2VfanNvbl9jcHAgJDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2gg
ZysrKSAgICAgQlVJTERfVFlQRT1SZWxlYXNlIExJQl9UWVBFPXN0YXRpYyBERVNURElSPS90bXAv
Y21ha2VfanNvbl9jcHAgJDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggZysrKSAg
ICAgQlVJTERfVFlQRT1EZWJ1ZyAgIExJQl9UWVBFPXN0YXRpYyBERVNURElSPS90bXAvY21ha2Vf
anNvbl9jcHAgJDAiCisKKyAgZXhpdCAtMQorZmkKKworaWYgJHtERVNURElSK2ZhbHNlfTsgdGhl
bgorICBERVNURElSPSIvdXNyL2xvY2FsIgorZmkKKworIyAtZTogZmFpbCBvbiBlcnJvcgorIyAt
djogc2hvdyBjb21tYW5kcworIyAteDogc2hvdyBleHBhbmRlZCBjb21tYW5kcworc2V0IC12ZXgK
KworZW52IHwgc29ydAorCit3aGljaCBjbWFrZQorY21ha2UgLS12ZXJzaW9uCisKK2VjaG8gJHtD
WFh9Ciske0NYWH0gLS12ZXJzaW9uCitfQ09NUElMRVJfTkFNRT1gYmFzZW5hbWUgJHtDWFh9YAor
aWYgWyAiJHtCVUlMRF9UWVBFfSIgPT0gInNoYXJlZCIgXTsgdGhlbgorICBfQ01BS0VfQlVJTERf
U0hBUkVEX0xJQlM9T04KK2Vsc2UKKyAgX0NNQUtFX0JVSUxEX1NIQVJFRF9MSUJTPU9GRgorZmkK
KworQ1RFU1RfVEVTVElOR19PUFRJT049Ii1EIEV4cGVyaW1lbnRhbFRlc3QiCisjICAgLSBET19N
ZW1DaGVjayA8LSBpZiBzZXQsIHRyeSB0byB1c2UgdmFsZ3JpbmQKK2lmICEgJHtET19NZW1DaGVj
aytmYWxzZX07IHRoZW4KKyAgIHZhbGdyaW5kIC0tdmVyc2lvbgorICAgQ1RFU1RfVEVTVElOR19P
UFRJT049Ii1EIEV4cGVyaW1lbnRhbE1lbUNoZWNrIgorZWxzZQorIyAgIC0gRE9fQ292ZXJhZ2Ug
PC0gaWYgc2V0LCB0cnkgdG8gZG8gZGFzaGJvYXJkIGNvdmVyYWdlIHRlc3RpbmcKKyAgaWYgISAk
e0RPX0NvdmVyYWdlK2ZhbHNlfTsgdGhlbgorICAgICBleHBvcnQgQ1hYRkxBR1M9Ii1mcHJvZmls
ZS1hcmNzIC1mdGVzdC1jb3ZlcmFnZSIKKyAgICAgZXhwb3J0IExERkxBR1M9Ii1mcHJvZmlsZS1h
cmNzIC1mdGVzdC1jb3ZlcmFnZSIKKyAgICAgQ1RFU1RfVEVTVElOR19PUFRJT049Ii1EIEV4cGVy
aW1lbnRhbFRlc3QgLUQgRXhwZXJpbWVudGFsQ292ZXJhZ2UiCisgICAgICNnY292IC0tdmVyc2lv
bgorICBmaQorZmkKKworIyAgTmluamEgICAgICAgICAgICAgICAgICAgICAgICA9IEdlbmVyYXRl
cyBidWlsZC5uaW5qYSBmaWxlcy4KK2lmICR7QlVJTERfVE9PTCtmYWxzZX07IHRoZW4KKyAgQlVJ
TERfVE9PTD0iTmluamEiCisgIGV4cG9ydCBfQlVJTERfRVhFPW5pbmphCisgIHdoaWNoIG5pbmph
CisgIG5pbmphIC0tdmVyc2lvbgorZWxzZQorIyAgVW5peCBNYWtlZmlsZXMgICAgICAgICAgICAg
ICA9IEdlbmVyYXRlcyBzdGFuZGFyZCBVTklYIG1ha2VmaWxlcy4KKyAgZXhwb3J0IF9CVUlMRF9F
WEU9bWFrZQorZmkKKworX0JVSUxEX0RJUl9OQU1FPSJidWlsZC1jbWFrZV8ke0JVSUxEX1RZUEV9
XyR7TElCX1RZUEV9XyR7X0NPTVBJTEVSX05BTUV9XyR7X0JVSUxEX0VYRX0iCitta2RpciAtcCAk
e19CVUlMRF9ESVJfTkFNRX0KK2NkICIke19CVUlMRF9ESVJfTkFNRX0iCisgIGlmICR7QlVJTERO
QU1FK2ZhbHNlfTsgdGhlbgorICAgICBfSE9TVE5BTUU9YGhvc3RuYW1lIC1zYAorICAgICBCVUlM
RE5BTUU9IiR7X0hPU1ROQU1FfV8ke0JVSUxEX1RZUEV9XyR7TElCX1RZUEV9XyR7X0NPTVBJTEVS
X05BTUV9XyR7X0JVSUxEX0VYRX0iCisgIGZpCisgIGNtYWtlIFwKKyAgICAtRyAiJHtCVUlMRF9U
T09MfSIgXAorICAgIC1EQlVJTEROQU1FOlNUUklORz0iJHtCVUlMRE5BTUV9IiBcCisgICAgLURD
TUFLRV9DWFhfQ09NUElMRVI6UEFUSD0ke0NYWH0gXAorICAgIC1EQ01BS0VfQlVJTERfVFlQRTpT
VFJJTkc9JHtCVUlMRF9UWVBFfSBcCisgICAgLURCVUlMRF9TSEFSRURfTElCUzpCT09MPSR7X0NN
QUtFX0JVSUxEX1NIQVJFRF9MSUJTfSBcCisgICAgLURDTUFLRV9JTlNUQUxMX1BSRUZJWDpQQVRI
PSR7REVTVERJUn0gXAorICAgIC4uLworCisgIGN0ZXN0IC1DICR7QlVJTERfVFlQRX0gLUQgRXhw
ZXJpbWVudGFsU3RhcnQgLUQgRXhwZXJpbWVudGFsQ29uZmlndXJlIC1EIEV4cGVyaW1lbnRhbEJ1
aWxkICR7Q1RFU1RfVEVTVElOR19PUFRJT059IC1EIEV4cGVyaW1lbnRhbFN1Ym1pdAorICAjIEZp
bmFsIHN0ZXAgaXMgdG8gdmVyaWZ5IHRoYXQgaW5zdGFsbGF0aW9uIHN1Y2NlZWRzCisgIGNtYWtl
IC0tYnVpbGQgLiAtLWNvbmZpZyAke0JVSUxEX1RZUEV9IC0tdGFyZ2V0IGluc3RhbGwKKworICBp
ZiBbICIke0RFU1RESVJ9IiAhPSAiL3Vzci9sb2NhbCIgXTsgdGhlbgorICAgICAke19CVUlMRF9F
WEV9IGluc3RhbGwKKyAgZmkKK2NkIC0KKworaWYgJHtDTEVBTlVQK2ZhbHNlfTsgdGhlbgorICBl
Y2hvICJTa2lwcGluZyBjbGVhbnVwOiBidWlsZCBkaXJlY3Rvcnkgd2lsbCBwZXJzaXN0LiIKK2Vs
c2UKKyAgcm0gLXIgIiR7X0JVSUxEX0RJUl9OQU1FfSIKK2ZpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50
cmF2aXNfc2NyaXB0cy9tZXNvbl9idWlsZGVyLnNoIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvbWVz
b25fYnVpbGRlci5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmYwM2NiMmY1OGI2MWM5MmVkNDRjYzdjYzA2N2Ni
ZTg5Y2FmZGEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvbWVzb25f
YnVpbGRlci5zaApAQCAtMCwwICsxLDgxIEBACisjIS91c3IvYmluL2VudiBzaAorIyBUaGlzIHNj
cmlwdCBjYW4gYmUgdXNlZCBvbiB0aGUgY29tbWFuZCBsaW5lIGRpcmVjdGx5IHRvIGNvbmZpZ3Vy
ZSBzZXZlcmFsCisjIGRpZmZlcmVudCBidWlsZCBlbnZpcm9ubWVudHMuCisjIFRoaXMgaXMgY2Fs
bGVkIGJ5IGAudHJhdmlzLnltbGAgdmlhIFRyYXZpcyBDSS4KKyMgVHJhdmlzIHN1cHBsaWVzICRU
UkFWSVNfT1NfTkFNRS4KKyMgIGh0dHA6Ly9kb2NzLnRyYXZpcy1jaS5jb20vdXNlci9tdWx0aS1v
cy8KKyMgT3VyIC50cmF2aXMueW1sIGFsc28gZGVmaW5lczoKKworIyAgIC0gQlVJTERfVFlQRT1y
ZWxlYXNlL2RlYnVnCisjICAgLSBMSUJfVFlQRT1zdGF0aWMvc2hhcmVkCisKK2Vudl9zZXQ9MQor
aWYgJHtCVUlMRF9UWVBFK2ZhbHNlfTsgdGhlbgorICBlY2hvICJCVUlMRF9UWVBFIG5vdCBzZXQg
aW4gZW52aXJvbm1lbnQuIgorICBlbnZfc2V0PTAKK2ZpCitpZiAke0xJQl9UWVBFK2ZhbHNlfTsg
dGhlbgorICBlY2hvICJMSUJfVFlQRSBub3Qgc2V0IGluIGVudmlyb25tZW50LiIKKyAgZW52X3Nl
dD0wCitmaQoraWYgJHtDWFgrZmFsc2V9OyB0aGVuCisgIGVjaG8gIkNYWCBub3Qgc2V0IGluIGVu
dmlyb25tZW50LiIKKyAgZW52X3NldD0wCitmaQorCisKK2lmIFsgJHtlbnZfc2V0fSAtZXEgMCBd
OyB0aGVuCisgIGVjaG8gIlVTQUdFOiAgQ1hYPSQod2hpY2ggY2xhbmcrKykgIEJVSUxEX1RZUEU9
W3JlbGVhc2V8ZGVidWddIExJQl9UWVBFPVtzdGF0aWN8c2hhcmVkXSAkMCIKKyAgZWNobyAiIgor
ICBlY2hvICJFeGFtcGxlczoiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggY2xhbmcr
KykgQlVJTERfVFlQRT1yZWxlYXNlIExJQl9UWVBFPXNoYXJlZCBERVNURElSPS90bXAvbWVzb25f
anNvbl9jcHAgJDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggY2xhbmcrKykgQlVJ
TERfVFlQRT1kZWJ1ZyAgIExJQl9UWVBFPXNoYXJlZCBERVNURElSPS90bXAvbWVzb25fanNvbl9j
cHAgJDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggY2xhbmcrKykgQlVJTERfVFlQ
RT1yZWxlYXNlIExJQl9UWVBFPXN0YXRpYyBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAi
CisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggY2xhbmcrKykgQlVJTERfVFlQRT1kZWJ1
ZyAgIExJQl9UWVBFPXN0YXRpYyBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAiCisKKyAg
ZWNobyAiICAgICAgICAgICBDWFg9JCh3aGljaCBnKyspICAgICBCVUlMRF9UWVBFPXJlbGVhc2Ug
TElCX1RZUEU9c2hhcmVkIERFU1RESVI9L3RtcC9tZXNvbl9qc29uX2NwcCAkMCIKKyAgZWNobyAi
ICAgICAgICAgICBDWFg9JCh3aGljaCBnKyspICAgICBCVUlMRF9UWVBFPWRlYnVnICAgTElCX1RZ
UEU9c2hhcmVkIERFU1RESVI9L3RtcC9tZXNvbl9qc29uX2NwcCAkMCIKKyAgZWNobyAiICAgICAg
ICAgICBDWFg9JCh3aGljaCBnKyspICAgICBCVUlMRF9UWVBFPXJlbGVhc2UgTElCX1RZUEU9c3Rh
dGljIERFU1RESVI9L3RtcC9tZXNvbl9qc29uX2NwcCAkMCIKKyAgZWNobyAiICAgICAgICAgICBD
WFg9JCh3aGljaCBnKyspICAgICBCVUlMRF9UWVBFPWRlYnVnICAgTElCX1RZUEU9c3RhdGljIERF
U1RESVI9L3RtcC9tZXNvbl9qc29uX2NwcCAkMCIKKworICBleGl0IC0xCitmaQorCitpZiAke0RF
U1RESVIrZmFsc2V9OyB0aGVuCisgIERFU1RESVI9Ii91c3IvbG9jYWwiCitmaQorCisjIC1lOiBm
YWlsIG9uIGVycm9yCisjIC12OiBzaG93IGNvbW1hbmRzCisjIC14OiBzaG93IGV4cGFuZGVkIGNv
bW1hbmRzCitzZXQgLXZleAorCisKK2VudiB8IHNvcnQKKword2hpY2ggcHl0aG9uMword2hpY2gg
bWVzb24KK3doaWNoIG5pbmphCitlY2hvICR7Q1hYfQorJHtDWFh9IC0tdmVyc2lvbgorcHl0aG9u
MyAtLXZlcnNpb24KK21lc29uIC0tdmVyc2lvbgorbmluamEgLS12ZXJzaW9uCitfQ09NUElMRVJf
TkFNRT1gYmFzZW5hbWUgJHtDWFh9YAorX0JVSUxEX0RJUl9OQU1FPSJidWlsZC0ke0JVSUxEX1RZ
UEV9XyR7TElCX1RZUEV9XyR7X0NPTVBJTEVSX05BTUV9IgorbWVzb24gLS1idWlsZHR5cGUgJHtC
VUlMRF9UWVBFfSAtLWRlZmF1bHQtbGlicmFyeSAke0xJQl9UWVBFfSAuICIke19CVUlMRF9ESVJf
TkFNRX0iCituaW5qYSAtdiAtaiAyIC1DICIke19CVUlMRF9ESVJfTkFNRX0iCisjbmluamEgLXYg
LWogMiAtQyAiJHtfQlVJTERfRElSX05BTUV9IiB0ZXN0CitjZCAiJHtfQlVJTERfRElSX05BTUV9
IgorICBtZXNvbiB0ZXN0IC0tbm8tcmVidWlsZCAtLXByaW50LWVycm9ybG9ncworCisgIGlmIFsg
IiR7REVTVERJUn0iICE9ICIvdXNyL2xvY2FsIiBdOyB0aGVuCisgICAgIG5pbmphIGluc3RhbGwK
KyAgZmkKK2NkIC0KKworaWYgJHtDTEVBTlVQK2ZhbHNlfTsgdGhlbgorICBlY2hvICJTa2lwcGlu
ZyBjbGVhbnVwOiAgYnVpbGQgZGlyZWN0b3J5IHdpbGwgcGVyc2lzdC4iCitlbHNlCisgIHJtIC1y
ICIke19CVUlMRF9ESVJfTkFNRX0iCitmaQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3Njcmlw
dHMvdHJhdmlzLmJlZm9yZV9pbnN0YWxsLmxpbnV4LnNoIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMv
dHJhdmlzLmJlZm9yZV9pbnN0YWxsLmxpbnV4LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTU2ZGUxNTVkZjBk
ZmY3NzJmZjgxNWE4OGMxNTQzMDdmNDUyMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2
aXNfc2NyaXB0cy90cmF2aXMuYmVmb3JlX2luc3RhbGwubGludXguc2gKQEAgLTAsMCArMSw4IEBA
CitzZXQgLXZleAorCisjIFByZWluc3RhbGxlZCB2ZXJzaW9ucyBvZiBweXRob24gYXJlIGRlcGVu
ZGVudCBvbiB3aGljaCBVYnVudHUgZGlzdHJpYnV0aW9uCisjIHlvdSBhcmUgcnVubmluZy4gVGhl
IGJlbG93IHZlcnNpb24gbmVlZHMgdG8gYmUgdXBkYXRlZCB3aGVuZXZlciB3ZSByb2xsCisjIHRo
ZSBVYnVudHUgdmVyc2lvbiB1c2VkIGluIFRyYXZpcy4KKyMgaHR0cHM6Ly9kb2NzLnRyYXZpcy1j
aS5jb20vdXNlci9sYW5ndWFnZXMvcHl0aG9uLworCitweWVudiBnbG9iYWwgMy43LjEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL3RyYXZpcy5iZWZvcmVfaW5zdGFsbC5vc3guc2gg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuYmVmb3JlX2luc3RhbGwub3N4LnNoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVkODNjMGM3MWU2ZjQ5YTU2ZGJmMGU3MjdjMmEwY2Q5ODU2ZGMyNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuYmVmb3JlX2luc3RhbGwub3N4
LnNoCkBAIC0wLDAgKzEgQEAKKyMgTk9USElORyBUTyBETyBIRVJFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
Ly50cmF2aXNfc2NyaXB0cy90cmF2aXMuaW5zdGFsbC5saW51eC5zaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19z
Y3JpcHRzL3RyYXZpcy5pbnN0YWxsLmxpbnV4LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjNTg0NmYxYTQwZTdj
MWY3MDljZGI1MzRhODQ5OTM3N2IyNDM2NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2
aXNfc2NyaXB0cy90cmF2aXMuaW5zdGFsbC5saW51eC5zaApAQCAtMCwwICsxLDEwIEBACitzZXQg
LXZleAorCit3Z2V0IGh0dHBzOi8vZ2l0aHViLmNvbS9uaW5qYS1idWlsZC9uaW5qYS9yZWxlYXNl
cy9kb3dubG9hZC92MS45LjAvbmluamEtbGludXguemlwCit1bnppcCAtcSBuaW5qYS1saW51eC56
aXAgLWQgYnVpbGQKKworcGlwMyBpbnN0YWxsIG1lc29uCitlY2hvICR7UEFUSH0KK2xzIC91c3Iv
bG9jYWwKK2xzIC91c3IvbG9jYWwvYmluCitleHBvcnQgUEFUSD0iJHtQV0R9Ii9idWlsZDovdXNy
L2xvY2FsL2JpbjovdXNyL2Jpbjoke1BBVEh9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXNfc2Ny
aXB0cy90cmF2aXMuaW5zdGFsbC5vc3guc2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXNfc2NyaXB0cy90cmF2aXMu
aW5zdGFsbC5vc3guc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ4M2MwYzcxZTZmNDlhNTZkYmYwZTcyN2MyYTBj
ZDk4NTZkYzI3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL3RyYXZp
cy5pbnN0YWxsLm9zeC5zaApAQCAtMCwwICsxIEBACisjIE5PVEhJTkcgVE8gRE8gSEVSRQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9BVVRIT1JTIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9BVVRIT1JTCmluZGV4IGMwZmJiZWVjMTExOGNj
MGYxNzlmY2RmM2YzMjYwMWU5ZDg3MTczMDUuLjM3MjNkNTQ2YTc1ZjI1YWNkZGUyZDZiZGMxZmIw
ZGEyYjBhMjUzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvQVVUSE9SUworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL0FVVEhPUlMK
QEAgLTEgKzEsMTEzIEBACiBCYXB0aXN0ZSBMZXBpbGxldXIgPGJsZXBAdXNlcnMuc291cmNlZm9y
Z2UubmV0PgorCitBYXJvbiBKYWNvYnMgPGFhcm9uamphY29ic0BnbWFpbC5jb20+CitBYXJvbiBK
YWNvYnMgPGphY29ic2FAZ29vZ2xlLmNvbT4KK0FkYW0gQm9zZWxleSA8QUJvc2VsZXlAYWdqdW5j
dGlvbi5jb20+CitBZGFtIEJvc2VsZXkgPGFkYW0uYm9zZWxleUBnbWFpbC5jb20+CitBbGVrc2Fu
ZHIgRGVyYmVuZXYgPDEzYWxleGFjQGdtYWlsLmNvbT4KK0FsZXhhbmRlciBHYXphcm92IDxEck1l
dGFsbGl1c0B1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CitBbGV4YW5kZXIgVi4gQnJlemdpbiA8
YWJyZXpnaW5AYXBwbGllZHRlY2gucnU+CitBbGV4YW5kciBCcmV6Z2luIDxhbGJyZXpnaW5AbWFp
bC5ydT4KK0FsZXhleSBLcnVjaGluaW4gPGFsZXhleUBtb3BhbHMuY29tPgorQW50b24gSW5kcmF3
YW4gPGFudG9uLmluZHJhd2FuQGdtYWlsLmNvbT4KK0JhcHRpc3RlIEpvbmdsZXogPGdpdEBiaXRz
b2ZuZXR3b3Jrcy5vcmc+CitCYXB0aXN0ZSBMZXBpbGxldXIgPGJhcHRpc3RlLmxlcGlsbGV1ckBn
bWFpbC5jb20+CitCYXJ1Y2ggU2lhY2ggPGJhcnVjaEB0a29zLmNvLmlsPgorQmVuIEJvZWNrZWwg
PG1hdGhzdHVmQGdtYWlsLmNvbT4KK0JlbmphbWluIEtuZWNodCA8YmtuZWNodEBsb2dpdGVjaC5j
b20+CitCZXJuZCBLdWhscyA8YmVybmQua3VobHNAdC1vbmxpbmUuZGU+CitCaWxseSBEb25haHVl
IDxiaWxseWRvbmFodWVAZ29vZ2xlLmNvbT4KK0JyYWRlbiBNY0Rvcm1hbiA8Ym1jZG9ybWFuQGdt
YWlsLmNvbT4KK0JyYW5kb24gTXllcnMgPGJteWVyczE3ODhAZ21haWwuY29tPgorQnJlbmRhbiBE
cmV3IDxicmVuZGFuLmRyZXdAZGFxcmkuY29tPgorY2hhc29uIDxjeGNoYW84MDJAZ21haWwuY29t
PgorQ2hyaXMgR2lsbGluZyA8Y2dpbGxpbmdAaXBhcmFkaWdtcy5jb20+CitDaHJpc3RvcGhlciBE
YXdlcyA8Y2hyaXN0b3BoZXIuZGF3ZXMuMTk4MUBnb29nbGVtYWlsLmNvbT4KK0NocmlzdG9waGVy
IER1bm4gPGNkdW5uMjAwMUBnbWFpbC5jb20+CitDaHVjayBBdGtpbnMgPGNodWNrLmF0a2luc0Br
aXR3YXJlLmNvbT4KK0NvZHkgUCBTY2hhZmVyIDxkZXZAY29keXBzLmNvbT4KK0Nvbm5vciBNYW5u
aW5nIDxjb25ub3JAaG9idS5jbz4KK0NvcnkgUXVhbW1lbiA8Y29yeS5xdWFtbWVuQGtpdHdhcmUu
Y29tPgorQ3Jpc3RvzIF2YcyDbyBCIGRhIENydXogZSBTaWx2YSA8Q3Jpc1hlZEBnbWFpbC5jb20+
CitEYW5pZWwgS3LDvGdsZXIgPGRhbmllbC5rcnVlZ2xlckBnbWFpbC5jb20+CitEYW5pLUh1YiA8
ZGFuaWVsLmtydWVnbGVyQGdvb2dsZW1haWwuY29tPgorRGFuIExpdSA8Z3psaXVkYW4+CitkYXRh
ZGlvZGUgPGRhdGFkaW9kZUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CitkYXRhZGlvZGUgPGpv
Y2hlbi5uZXViZWNrQHZvZGFmb25lLmRlPgorRGF2aWQgU2VpZmVydCA8c29hcEBnZW50b28ub3Jn
PgorRGF2aWQgV2VzdCA8ZGF2aWQtd2VzdEBpZGV4eC5jb20+CitkYXdlc2MgPGNocmlzLmRhd2Vz
QGVmdGxhYi5jby51az4KK0RldmluIEplYW5waWVycmUgPGplYW5waWVycmVkYUBnb29nbGUuY29t
PgorRG1pdHJ5IE1hcmFrYXNvdiA8YW1kbWkzQGFtZG1pMy5ydT4KK2RvbWluaWNwZXp6dXRvIDxk
b21AZG9tcGV6enV0by5jb20+CitEb24gTWlsaGFtIDxkbWlsaGFtQGdtYWlsLmNvbT4KK2RyZ2xl
ciA8ZGFuaWVsLmtydWVnbGVyQGdtYWlsLmNvbT4KK2RzMjgzIDxELlNlZXJ5QHN1c3NleC5hYy51
az4KK0Vnb3IgVGVuc2luIDxFZ29yLlRlbnNpbkBnbWFpbC5jb20+CitlaWdodG5vdGVpZ2h0IDxt
ci5laWdodG5vdGVpZ2h0QGdtYWlsLmNvbT4KK0V2aW5jZSA8YmFuZXl1ZUBnbWFpbC5jb20+Citm
aWxpcGpzIDxmaWxpcGpzQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KK2ZpbmRibGFyIDxmdEBm
aW5iYXJyLmNhPgorRmxvcmlhbiBNZWllciA8Zmxvcmlhbi5tZWllckBrb2Fsby5kZT4KK0dhw6t0
YW4gTGVobWFubiA8Z2FldGFuLmxlaG1hbm5AZ21haWwuY29tPgorR2F1cmF2IDxnLmd1cHRhQHNh
bXN1bmcuY29tPgorR2VyZ2VseSBOYWd5IDxuZ2dAbmdnLmh1PgorR2lkYSBQYXRha2kgPGdpZGEu
cGF0YWtpQHByZXppLmNvbT4KK0kzY2sgPGJ1Y2ttYXJ0aW5AYnVja21hcnRpbi5kZT4KK0nDsWFr
aSBCYXogQ2FzdGlsbG8gPGliY0BhbGlheC5uZXQ+CitKYWNjbyA8amFjY29AZ2V1bC5uZXQ+CitK
ZWFuLUNocmlzdG9waGUgRmlsbGlvbi1Sb2JpbiA8amNocmlzLmZpbGxpb25yQGtpdHdhcmUuY29t
PgorSm9uYXMgUGxhdHRlIDxtYWlsQGpvbmFzcGxhdHRlLmRlPgorSm9yZGFuIEJheWxlcyA8YmF5
bGVzLmpvcmRhbkBnbWFpbC5jb20+CitKw7ZyZyBLcmF1c2UgPGpvZXJnLmtyYXVzZUBlbWJlZGRl
ZC5yb2Nrcz4KK0tlaXRoIExlYSA8a2VpdGhAd2hhbWNpdHlsaWdodHMuY29tPgorS2V2aW4gR3Jh
bnQgPGticmFkbGV5Z3JhbnRAZ21haWwuY29tPgorS2lyaWxsIFYuIEx5YWR2aW5za3kgPGppYTNl
cEBnbWFpbC5jb20+CitLaXJpbGwgVi4gTHlhZHZpbnNreSA8bWFpbEBjb2RlYXRjcHAuY29tPgor
S29iaSBHdXJrYW4gPGtvYmlndXJrQGdtYWlsLmNvbT4KK01hZ251cyBCamVya2UgVmlrIDxtYnZl
dHRAZ21haWwuY29tPgorTWFsYXkgU2hhaCA8bWFsYXlzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4K
K01hcmEgS2ltIDxoYWNrZXIucm9vdEBnbWFpbC5jb20+CitNYXJlayBLb3Rld2ljeiA8bWFyZWsu
a290ZXdpY3pAZ21haWwuY29tPgorTWFyayBMYWthdGEgPG1hcmtAbGFrYXRhLm9yZz4KK01hcmsg
WmVyZW4gPG16ZXJlbkB2bXdhcmUuY29tPgorTWFydGluIEJ1Y2sgPGJ1Y2ttYXJ0aW5AYnVja21h
cnRpbi5kZT4KK01hcnR5biBHaWdnIDxtYXJ0eW4uZ2lnZ0BnbWFpbC5jb20+CitNYXR0ZXMgRCA8
Z2l0aHViQHhvZnQuY3o+CitNYXR0aGlhcyBMb3kgPG1hdHRoaWFzLmxveUBoYm0uY29tPgorTWVy
bHluIE1vcmdhbi1HcmFoYW0gPGthdmlrYUBnbWFpbC5jb20+CitNaWNoYWVsIFNoaWVsZHMgPG1z
aGllbGRzQGdvb2dsZS5jb20+CitNaWNoYcWCIEfDs3JueSA8bWdvcm55QGdlbnRvby5vcmc+CitN
aWtlIE5hYmVyZXpueSA8bWlrZUBuYWJlcmV6bnkuY29tPgorbWxveSA8bWF0dGhpYXMubG95QGdv
b2dsZW1haWwuY29tPgorTW90dGkgPGxhbnprcm9uQGdtYWlsLmNvbT4KK25ua3VyIDxubmt1ckBt
YWlsLnJ1PgorT21rYXIgV2FnaCA8b3dhZ2hAb3dhZ2hsaW51eC5ueS50b3dlci1yZXNlYXJjaC5j
b20+CitwYXVsbyA8cGF1bG9icml6b2xhcmFAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgorcGF2
ZWwucGltZW5vdiA8cGF2ZWwucGltZW5vdkBnbWFpbC5jb20+CitQYXdlxYIgQnlsaWNhIDxjaGZh
c3RAZ21haWwuY29tPgorUMOpcmljbGVzIExvcGVzIE1hY2hhZG8gPHBlcmljbGVzLnJhc2tvbG5p
a29mZkBnbWFpbC5jb20+CitQZXRlciBTcGllc3MtS25hZmwgPHBza0BhdXRpc3RpY2kub3JnPgor
cGZmYW5nIDxwZmZhbmdAdmlwLnFxLmNvbT4KK1LDqW1pIFZlcnNjaGVsZGUgPHJlbWlAdmVyc2No
ZWxkZS5mcj4KK3JlbnU1NTUgPHJlbnUudHlhZ2lAc2Ftc3VuZy5jb20+CitSb2JlcnQgRGFpbGV5
IDxyY2RhaWxleUBnbWFpbC5jb20+CitTYW0gQ2xlZ2cgPHNiY0BjaHJvbWl1bS5vcmc+CitzZWxh
c2VsYWggPHNlbGFoQG91dGxvb2suY29tPgorU2VyZ2l5ODAgPHNpbDIwMDRAZ21haWwuY29tPgor
c2VyZ3p1YiA8c2VyZ3p1YkBnbWFpbC5jb20+CitTdGVmYW4gU2Nod2V0ZXIgPHN0ZWZhbkBzY2h3
ZXRlci5pdD4KK1N0ZWZmZW4gS2llw58gPFN0ZWZmZW4uS2llc3NAaXB2cy51bmktc3R1dHRnYXJ0
LmRlPgorU3RldmVuIEhhaG4gPGhhaG5zZUBvcm5sLmdvdj4KK1N0dWFydCBFaWNoZXJ0IDxzdHVh
cnRAZml2ZW1pY3JvLmNvbT4KK1N1cGVyTWFuaXR1IDxzdXBlcm1hbml0dUBnbWFpbC5jb20+CitU
ZWNod29sZiA8ZHJpbmdAZzMza3dvcmxkLm5ldD4KK1RlbmdpeiBTaGFyYWZpZXYgPGJ0b2xmYStn
aXRodWJAZ21haWwuY29tPgorVG9tYXN6IE1hY2llamV3c2tpIDx0bWFjaWVqZXdza0BnbWFpbC5j
b20+CitWaWNlbnRlIE9saXZlcnQgUmllcmEgPFZpbmNlbnQuUmllcmFAaW1ndGVjLmNvbT4KK3hp
YW95dXIzNDcgPHhpYW95dXIzNDdAZ21haWwuY29tPgoreWNxaXUgPDQyOTE0ODg0OEBxcS5jb20+
Cit5aXFpanUgPGZyZWRfanVAc2VsaW5jLmNvbT4KK1l1IFhpYW9sZWkgPGRyZWlmYWNoc3RlaW5A
Z21haWwuY29tPgorCitHb29nbGUgSW5jLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgxZDA4YjBhYjM0YmQyNTJkYmIx
M2VmNTFjZDNhYTFhZDg2YTk2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvQ01ha2VMaXN0cy50
eHQKQEAgLTAsMCArMSwxODYgQEAKKyMgdmltOiBldCB0cz00IHN0cz00IHN3PTQgdHc9MAorCisj
ID09PT0gRGVmaW5lIGNtYWtlIGJ1aWxkIHBvbGljaWVzIHRoYXQgYWZmZWN0IGNvbXBpbGF0aW9u
IGFuZCBsaW5rYWdlIGRlZmF1bHQgYmVoYXZpb3JzCisjCisjIFNldCB0aGUgSlNPTkNQUF9ORVdF
U1RfVkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT04gc3RyaW5nIHRvIHRoZSBuZXdlc3QgY21ha2Ug
dmVyc2lvbgorIyBwb2xpY2llcyB0aGF0IHByb3ZpZGUgc3VjY2Vzc2Z1bCBidWlsZHMuIEJ5IHNl
dHRpbmcgSlNPTkNQUF9ORVdFU1RfVkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT04KKyMgdG8gYSB2
YWx1ZSBncmVhdGVyIHRoYW4gdGhlIG9sZGVzdCBwb2xpY2llcywgYWxsIHBvbGljaWVzIGJldHdl
ZW4KKyMgSlNPTkNQUF9PTERFU1RfVkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT04gYW5kIENNQUtF
X1ZFUlNJT04gKHVzZWQgZm9yIHRoaXMgYnVpbGQpCisjIGFyZSBzZXQgdG8gdGhlaXIgTkVXIGJl
aGFpdm9yLCB0aGVyZWJ5IHN1cHByZXNzaW5nIHBvbGljeSB3YXJuaW5ncyByZWxhdGVkIHRvIHBv
bGljaWVzCisjIGJldHdlZW4gdGhlIEpTT05DUFBfT0xERVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19W
RVJTSU9OIGFuZCBDTUFLRV9WRVJTSU9OLgorIworIyBDTWFrZSB2ZXJzaW9ucyBncmVhdGVyIHRo
YW4gdGhlIEpTT05DUFBfTkVXRVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJTSU9OIHBvbGljaWVz
IHdpbGwKKyMgY29udGludWUgdG8gZ2VuZXJhdGUgcG9saWN5IHdhcm5pbmdzICJDTWFrZSBXYXJu
aW5nIChkZXYpLi4uUG9saWN5IENNUDBYWFggaXMgbm90IHNldDoiCisjCitzZXQoSlNPTkNQUF9P
TERFU1RfVkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT04gIjMuOC4wIikKK3NldChKU09OQ1BQX05F
V0VTVF9WQUxJREFURURfUE9MSUNJRVNfVkVSU0lPTiAiMy4xMy4yIikKK2NtYWtlX21pbmltdW1f
cmVxdWlyZWQoVkVSU0lPTiAke0pTT05DUFBfT0xERVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJT
SU9OfSkKK2lmKCIke0NNQUtFX1ZFUlNJT059IiBWRVJTSU9OX0xFU1MgIiR7SlNPTkNQUF9ORVdF
U1RfVkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT059IikKKyAgICAjU2V0IGFuZCB1c2UgdGhlIG5l
d2VzdCBhdmFpbGFibGUgY21ha2UgcG9saWNpZXMgdGhhdCBhcmUgdmFsaWRhdGVkIHRvIHdvcmsK
KyAgICBzZXQoSlNPTkNQUF9DTUFLRV9QT0xJQ1lfVkVSU0lPTiAiJHtDTUFLRV9WRVJTSU9OfSIp
CitlbHNlKCkKKyAgICBzZXQoSlNPTkNQUF9DTUFLRV9QT0xJQ1lfVkVSU0lPTiAiJHtKU09OQ1BQ
X05FV0VTVF9WQUxJREFURURfUE9MSUNJRVNfVkVSU0lPTn0iKQorZW5kaWYoKQorY21ha2VfcG9s
aWN5KFZFUlNJT04gJHtKU09OQ1BQX0NNQUtFX1BPTElDWV9WRVJTSU9OfSkKKyMKKyMgTm93IGVu
dW1lcmF0ZSBzcGVjaWZpYyBwb2xpY2llcyBuZXdlciB0aGFuIEpTT05DUFBfTkVXRVNUX1ZBTElE
QVRFRF9QT0xJQ0lFU19WRVJTSU9OCisjIHRoYXQgbWF5IG5lZWQgdG8gYmUgaW5kaXZpZHVhbGx5
IHNldCB0byBORVcvT0xECisjCitmb3JlYWNoKHBuZXcgIiIpICMgQ3VycmVudGx5IEVtcHR5Cisg
ICAgaWYoUE9MSUNZICR7cG5ld30pCisgICAgICAgIGNtYWtlX3BvbGljeShTRVQgJHtwbmV3fSBO
RVcpCisgICAgZW5kaWYoKQorZW5kZm9yZWFjaCgpCitmb3JlYWNoKHBvbGQgIiIpICMgQ3VycmVu
dGx5IEVtcHR5CisgICAgaWYoUE9MSUNZICR7cG9sZH0pCisgICAgICAgIGNtYWtlX3BvbGljeShT
RVQgJHtwb2xkfSBPTEQpCisgICAgZW5kaWYoKQorZW5kZm9yZWFjaCgpCisKKyMgPT09PSBEZWZp
bmUgbGFuZ3VhZ2Ugc3RhbmRhcmQgY29uZmlndXJhdGlvbnMgcmVxdWlyaW5nIGF0IGxlYXN0IGMr
KzExIHN0YW5kYXJkCitpZihDTUFLRV9DWFhfU1RBTkRBUkQgRVFVQUwgIjk4IiApCisgICAgbWVz
c2FnZShGQVRBTF9FUlJPUiAiQ01BS0VfQ1hYX1NUQU5EQVJEOlNUUklORz05OCBpcyBub3Qgc3Vw
cG9ydGVkLiIpCitlbmRpZigpCisKKyMjIyMjCisjIyAgU2V0IHRoZSBkZWZhdWx0IHRhcmdldCBw
cm9wZXJ0aWVzCitpZihOT1QgQ01BS0VfQ1hYX1NUQU5EQVJEKQorICAgIHNldChDTUFLRV9DWFhf
U1RBTkRBUkQgMTEpICMgU3VwcG9ydGVkIHZhbHVlcyBhcmUgYGAxMWBgLCBgYDE0YGAsIGFuZCBg
YDE3YGAuCitlbmRpZigpCitpZihOT1QgQ01BS0VfQ1hYX1NUQU5EQVJEX1JFUVVJUkVEKQorICAg
IHNldChDTUFLRV9DWFhfU1RBTkRBUkRfUkVRVUlSRUQgT04pCitlbmRpZigpCitpZihOT1QgQ01B
S0VfQ1hYX0VYVEVOU0lPTlMpCisgICAgc2V0KENNQUtFX0NYWF9FWFRFTlNJT05TIE9GRikKK2Vu
ZGlmKCkKKworIyA9PT09CisKKyMgRW5zdXJlcyB0aGF0IENNQUtFX0JVSUxEX1RZUEUgaGFzIGEg
ZGVmYXVsdCB2YWx1ZQoraWYoTk9UIERFRklORUQgQ01BS0VfQlVJTERfVFlQRSkKKyAgICBzZXQo
Q01BS0VfQlVJTERfVFlQRSBSZWxlYXNlIENBQ0hFIFNUUklORworICAgICAgICAiQ2hvb3NlIHRo
ZSB0eXBlIG9mIGJ1aWxkLCBvcHRpb25zIGFyZTogTm9uZSBEZWJ1ZyBSZWxlYXNlIFJlbFdpdGhE
ZWJJbmZvIE1pblNpemVSZWwgQ292ZXJhZ2UuIikKK2VuZGlmKCkKKworcHJvamVjdChKU09OQ1BQ
CisgICAgICAgIFZFUlNJT04gMS45LjAgIyA8bWFqb3I+Wy48bWlub3I+Wy48cGF0Y2g+Wy48dHdl
YWs+XV1dCisgICAgICAgIExBTkdVQUdFUyBDWFgpCisKK21lc3NhZ2UoU1RBVFVTICJKc29uQ3Bw
IFZlcnNpb246ICR7SlNPTkNQUF9WRVJTSU9OX01BSk9SfS4ke0pTT05DUFBfVkVSU0lPTl9NSU5P
Un0uJHtKU09OQ1BQX1ZFUlNJT05fUEFUQ0h9IikKK3NldCggSlNPTkNQUF9TT1ZFUlNJT04gMjEg
KQorCitvcHRpb24oSlNPTkNQUF9XSVRIX1RFU1RTICJDb21waWxlIGFuZCAoZm9yIGpzb25jcHBf
Y2hlY2spIHJ1biBKc29uQ3BwIHRlc3QgZXhlY3V0YWJsZXMiIE9OKQorb3B0aW9uKEpTT05DUFBf
V0lUSF9QT1NUX0JVSUxEX1VOSVRURVNUICJBdXRvbWF0aWNhbGx5IHJ1biB1bml0LXRlc3RzIGFz
IGEgcG9zdCBidWlsZCBzdGVwIiBPTikKK29wdGlvbihKU09OQ1BQX1dJVEhfV0FSTklOR19BU19F
UlJPUiAiRm9yY2UgY29tcGlsYXRpb24gdG8gZmFpbCBpZiBhIHdhcm5pbmcgb2NjdXJzIiBPRkYp
CitvcHRpb24oSlNPTkNQUF9XSVRIX1NUUklDVF9JU08gIklzc3VlIGFsbCB0aGUgd2FybmluZ3Mg
ZGVtYW5kZWQgYnkgc3RyaWN0IElTTyBDIGFuZCBJU08gQysrIiBPTikKK29wdGlvbihKU09OQ1BQ
X1dJVEhfUEtHQ09ORklHX1NVUFBPUlQgIkdlbmVyYXRlIGFuZCBpbnN0YWxsIC5wYyBmaWxlcyIg
T04pCitvcHRpb24oSlNPTkNQUF9XSVRIX0NNQUtFX1BBQ0tBR0UgIkdlbmVyYXRlIGFuZCBpbnN0
YWxsIGNtYWtlIHBhY2thZ2UgZmlsZXMiIE9OKQorb3B0aW9uKEJVSUxEX1NIQVJFRF9MSUJTICJC
dWlsZCBqc29uY3BwX2xpYiBhcyBhIHNoYXJlZCBsaWJyYXJ5LiIgT0ZGKQorCisjIEVuYWJsZSBy
dW50aW1lIHNlYXJjaCBwYXRoIHN1cHBvcnQgZm9yIGR5bmFtaWMgbGlicmFyaWVzIG9uIE9TWAor
aWYoQVBQTEUpCisgICAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQorZW5kaWYoKQorCisjIEFk
aGVyZSB0byBHTlUgZmlsZXN5c3RlbSBsYXlvdXQgY29udmVudGlvbnMKK2luY2x1ZGUoR05VSW5z
dGFsbERpcnMpCisKK3NldChERUJVR19MSUJOQU1FX1NVRkZJWCAiIiBDQUNIRSBTVFJJTkcgIk9w
dGlvbmFsIHN1ZmZpeCB0byBhcHBlbmQgdG8gdGhlIGxpYnJhcnkgbmFtZSBmb3IgYSBkZWJ1ZyBi
dWlsZCIpCisKK3NldChKU09OQ1BQX1VTRV9TRUNVUkVfTUVNT1JZICIwIiBDQUNIRSBTVFJJTkcg
Ii1ELi4uPTEgdG8gdXNlIG1lbW9yeS13aXBpbmcgYWxsb2NhdG9yIGZvciBTVEwiICkKKworIyBG
aWxlIHZlcnNpb24uaCBpcyBvbmx5IHJlZ2VuZXJhdGVkIG9uIENNYWtlIGNvbmZpZ3VyZSBzdGVw
Citjb25maWd1cmVfZmlsZSggIiR7UFJPSkVDVF9TT1VSQ0VfRElSfS9zcmMvbGliX2pzb24vdmVy
c2lvbi5oLmluIgorICAgICAgICAgICAgICAgICIke1BST0pFQ1RfQklOQVJZX0RJUn0vaW5jbHVk
ZS9qc29uL3ZlcnNpb24uaCIKKyAgICAgICAgICAgICAgICBORVdMSU5FX1NUWUxFIFVOSVggKQor
Y29uZmlndXJlX2ZpbGUoICIke1BST0pFQ1RfU09VUkNFX0RJUn0vdmVyc2lvbi5pbiIKKyAgICAg
ICAgICAgICAgICAiJHtQUk9KRUNUX0JJTkFSWV9ESVJ9L3ZlcnNpb24iCisgICAgICAgICAgICAg
ICAgTkVXTElORV9TVFlMRSBVTklYICkKKworbWFjcm8oVXNlQ29tcGlsYXRpb25XYXJuaW5nQXNF
cnJvcikKKyAgICBpZihNU1ZDKQorICAgICAgICAjIE9ubHkgZW5hYmxlZCBpbiBkZWJ1ZyBiZWNh
dXNlIHNvbWUgb2xkIHZlcnNpb25zIG9mIFZTIFNUTCBnZW5lcmF0ZQorICAgICAgICAjIHdhcm5p
bmdzIHdoZW4gY29tcGlsZWQgaW4gcmVsZWFzZSBjb25maWd1cmF0aW9uLgorICAgICAgICBhZGRf
Y29tcGlsZV9vcHRpb25zKCQ8JDxDT05GSUc6RGVidWc+Oi9XWD4pCisgICAgZWxzZWlmKENNQUtF
X0NYWF9DT01QSUxFUl9JRCBTVFJFUVVBTCAiR05VIikKKyAgICAgICAgYWRkX2NvbXBpbGVfb3B0
aW9ucygtV2Vycm9yKQorICAgICAgICBpZihKU09OQ1BQX1dJVEhfU1RSSUNUX0lTTykKKyAgICAg
ICAgICAgIGFkZF9jb21waWxlX29wdGlvbnMoLXBlZGFudGljLWVycm9ycykKKyAgICAgICAgZW5k
aWYoKQorICAgIGVuZGlmKCkKK2VuZG1hY3JvKCkKKworIyBJbmNsdWRlIG91ciBjb25maWd1cmF0
aW9uIGhlYWRlcgoraW5jbHVkZV9kaXJlY3RvcmllcyggJHtqc29uY3BwX1NPVVJDRV9ESVJ9L2lu
Y2x1ZGUgKQorCitpZihNU1ZDKQorICAgICMgT25seSBlbmFibGVkIGluIGRlYnVnIGJlY2F1c2Ug
c29tZSBvbGQgdmVyc2lvbnMgb2YgVlMgU1RMIGdlbmVyYXRlCisgICAgIyB1bnJlYWNoYWJsZSBj
b2RlIHdhcm5pbmcgd2hlbiBjb21waWxlZCBpbiByZWxlYXNlIGNvbmZpZ3VyYXRpb24uCisgICAg
YWRkX2NvbXBpbGVfb3B0aW9ucygkPCQ8Q09ORklHOkRlYnVnPjovVzQ+KQorZW5kaWYoKQorCitp
ZihDTUFLRV9DWFhfQ09NUElMRVJfSUQgTUFUQ0hFUyAiQ2xhbmciKQorICAgICMgdXNpbmcgcmVn
dWxhciBDbGFuZyBvciBBcHBsZUNsYW5nCisgICAgYWRkX2NvbXBpbGVfb3B0aW9ucygtV2FsbCAt
V2NvbnZlcnNpb24gLVdzaGFkb3cgLVdlcnJvcj1jb252ZXJzaW9uIC1XZXJyb3I9c2lnbi1jb21w
YXJlKQorZWxzZWlmKENNQUtFX0NYWF9DT01QSUxFUl9JRCBTVFJFUVVBTCAiR05VIikKKyAgICAj
IHVzaW5nIEdDQworICAgIGFkZF9jb21waWxlX29wdGlvbnMoLVdhbGwgLVdjb252ZXJzaW9uIC1X
c2hhZG93IC1XZXh0cmEpCisgICAgIyBub3QgeWV0IHJlYWR5IGZvciAtV3NpZ24tY29udmVyc2lv
bgorCisgICAgaWYoSlNPTkNQUF9XSVRIX1NUUklDVF9JU08pCisgICAgICAgIGFkZF9jb21waWxl
X29wdGlvbnMoLXBlZGFudGljKQorICAgIGVuZGlmKCkKKyAgICBpZihKU09OQ1BQX1dJVEhfV0FS
TklOR19BU19FUlJPUikKKyAgICAgICAgYWRkX2NvbXBpbGVfb3B0aW9ucygtV2Vycm9yPWNvbnZl
cnNpb24pCisgICAgZW5kaWYoKQorZWxzZWlmKENNQUtFX0NYWF9DT01QSUxFUl9JRCBTVFJFUVVB
TCAiSW50ZWwiKQorICAgICPCoHVzaW5nIEludGVsIGNvbXBpbGVyCisgICAgYWRkX2NvbXBpbGVf
b3B0aW9ucygtV2FsbCAtV2NvbnZlcnNpb24gLVdzaGFkb3cgLVdleHRyYSAtV2Vycm9yPWNvbnZl
cnNpb24pCisKKyAgICBpZihKU09OQ1BQX1dJVEhfU1RSSUNUX0lTTyBBTkQgTk9UIEpTT05DUFBf
V0lUSF9XQVJOSU5HX0FTX0VSUk9SKQorICAgICAgICBhZGRfY29tcGlsZV9vcHRpb25zKC1wZWRh
bnRpYykKKyAgICBlbmRpZigpCitlbmRpZigpCisKK2ZpbmRfcHJvZ3JhbShDQ0FDSEVfRk9VTkQg
Y2NhY2hlKQoraWYoQ0NBQ0hFX0ZPVU5EKQorICAgIHNldF9wcm9wZXJ0eShHTE9CQUwgUFJPUEVS
VFkgUlVMRV9MQVVOQ0hfQ09NUElMRSBjY2FjaGUpCisgICAgc2V0X3Byb3BlcnR5KEdMT0JBTCBQ
Uk9QRVJUWSBSVUxFX0xBVU5DSF9MSU5LIGNjYWNoZSkKK2VuZGlmKENDQUNIRV9GT1VORCkKKwor
aWYoSlNPTkNQUF9XSVRIX1dBUk5JTkdfQVNfRVJST1IpCisgICAgVXNlQ29tcGlsYXRpb25XYXJu
aW5nQXNFcnJvcigpCitlbmRpZigpCisKK2lmKEpTT05DUFBfV0lUSF9QS0dDT05GSUdfU1VQUE9S
VCkKKyAgICBjb25maWd1cmVfZmlsZSgKKyAgICAgICAgInBrZy1jb25maWcvanNvbmNwcC5wYy5p
biIKKyAgICAgICAgInBrZy1jb25maWcvanNvbmNwcC5wYyIKKyAgICAgICAgQE9OTFkpCisgICAg
aW5zdGFsbChGSUxFUyAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L3BrZy1jb25maWcvanNv
bmNwcC5wYyIKKyAgICAgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9L3Br
Z2NvbmZpZyIpCitlbmRpZigpCisKK2lmKEpTT05DUFBfV0lUSF9DTUFLRV9QQUNLQUdFKQorICAg
ICAgICBpbmNsdWRlIChDTWFrZVBhY2thZ2VDb25maWdIZWxwZXJzKQorICAgICAgICBpbnN0YWxs
KEVYUE9SVCBqc29uY3BwCisgICAgICAgICAgICAgICAgREVTVElOQVRJT04gJHtDTUFLRV9JTlNU
QUxMX0xJQkRJUn0vY21ha2UvanNvbmNwcAorICAgICAgICAgICAgICAgIEZJTEUgICAgICAgIGpz
b25jcHBDb25maWcuY21ha2UpCisgICAgICAgIHdyaXRlX2Jhc2ljX3BhY2thZ2VfdmVyc2lvbl9m
aWxlICgiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2pzb25jcHBDb25maWdWZXJzaW9uLmNt
YWtlIgorICAgICAgICAgICAgICAgIFZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJT059CisgICAgICAg
ICAgICAgICAgQ09NUEFUSUJJTElUWSBTYW1lTWFqb3JWZXJzaW9uKQorICAgICAgICBpbnN0YWxs
KEZJTEVTICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9qc29uY3BwQ29uZmlnVmVyc2lvbi5j
bWFrZQorICAgICAgICAgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9
L2NtYWtlL2pzb25jcHApCitlbmRpZigpCisKK2lmKEpTT05DUFBfV0lUSF9URVNUUykKKyAgZW5h
YmxlX3Rlc3RpbmcoKQorICBpbmNsdWRlKENUZXN0KQorZW5kaWYoKQorCisjIEJ1aWxkIHRoZSBk
aWZmZXJlbnQgYXBwbGljYXRpb25zCithZGRfc3ViZGlyZWN0b3J5KCBzcmMgKQorCisjaW5zdGFs
bCB0aGUgaW5jbHVkZXMKK2FkZF9zdWJkaXJlY3RvcnkoIGluY2x1ZGUgKQorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL0NPTlRSSUJVVElORy5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvQ09OVFJJQlVUSU5HLm1kCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI3ZTRhYjdhZmRmYTdiMmU5ZDMyZTlmOGUyZjUxMTYxMmNiOGM3MjcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL0NPTlRSSUJVVElORy5tZApAQCAtMCwwICsxLDE0NSBAQAorIyBDb250cmlidXRp
bmcgdG8gSnNvbkNwcAorCisjIyBCdWlsZGluZworCitCb3RoIENNYWtlIGFuZCBNZXNvbiB0b29s
cyBhcmUgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIGEgdmFyaWV0eSBvZiBidWlsZCBlbnZpcm9ubWVu
dHMgZm9yIHlvdSBwcmVmZXJyZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQuCitVc2luZyBjbWFr
ZSBvciBtZXNvbiB5b3UgY2FuIGdlbmVyYXRlIGFuIFhDb2RlLCBWaXN1YWwgU3R1ZGlvLCBVbml4
IE1ha2VmaWxlLCBOaW5qYSwgb3Igb3RoZXIgZW52aXJvbm1lbnQgdGhhdCBmaXRzIHlvdXIgbmVl
ZHMuCisKK0FuIGV4YW1wbGUgb2YgYSBjb21tb24gTWVzb24vTmluamEgZW52aXJvbm1lbnQgaXMg
ZGVzY3JpYmVkIG5leHQuCisKKyMjIEJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHdpdGggTWVzb24vTmlu
amEKK1RoYW5rcyB0byBEYXZpZCBTZWlmZXJ0IChAU29hcEdlbnRvbyksIHdlICh0aGUgbWFpbnRh
aW5lcnMpIG5vdyB1c2UKK1ttZXNvbl0oaHR0cDovL21lc29uYnVpbGQuY29tLykgYW5kIFtuaW5q
YV0oaHR0cHM6Ly9uaW5qYS1idWlsZC5vcmcvKSB0byBidWlsZAorZm9yIGRlYnVnZ2luZywgYXMg
d2VsbCBhcyBmb3IgY29udGludW91cyBpbnRlZ3JhdGlvbiAoc2VlCitbYC4vdHJhdmlzX3Njcmlw
dHMvbWVzb25fYnVpbGRlci5zaGBdKC4vdHJhdmlzX3NjcmlwdHMvbWVzb25fYnVpbGRlci5zaCkg
KS4gT3RoZXIgc3lzdGVtcyBtYXkgd29yaywgYnV0IG1pbm9yCit0aGluZ3MgbGlrZSB2ZXJzaW9u
IHN0cmluZ3MgbWlnaHQgYnJlYWsuCisKK0ZpcnN0LCBpbnN0YWxsIGJvdGggbWVzb24gKHdoaWNo
IHJlcXVpcmVzIFB5dGhvbjMpIGFuZCBuaW5qYS4KK0lmIHlvdSB3aXNoIHRvIGluc3RhbGwgdG8g
YSBkaXJlY3Rvcnkgb3RoZXIgdGhhbiAvdXNyL2xvY2FsLCBzZXQgYW4gZW52aXJvbm1lbnQgdmFy
aWFibGUgY2FsbGVkIERFU1RESVIgd2l0aCB0aGUgZGVzaXJlZCBwYXRoOgorICAgIERFU1RESVI9
L3BhdGgvdG8vaW5zdGFsbC9kaXIKKworVGhlbiwKKworICAgIGNkIGpzb25jcHAvCisgICAgQlVJ
TERfVFlQRT1kZWJ1ZworICAgICNCVUlMRF9UWVBFPXJlbGVhc2UKKyAgICBMSUJfVFlQRT1zaGFy
ZWQKKyAgICAjTElCX1RZUEU9c3RhdGljCisgICAgbWVzb24gLS1idWlsZHR5cGUgJHtCVUlMRF9U
WVBFfSAtLWRlZmF1bHQtbGlicmFyeSAke0xJQl9UWVBFfSAuIGJ1aWxkLSR7TElCX1RZUEV9Cisg
ICAgI25pbmphIC12IC1DIGJ1aWxkLSR7TElCX1RZUEV9IHRlc3QgIyBUaGlzIHN0b3BwZWQgd29y
a2luZyBvbiBteSBNYWMuCisgICAgbmluamEgLXYgLUMgYnVpbGQtJHtMSUJfVFlQRX0KKyAgICBj
ZCBidWlsZC0ke0xJQl9UWVBFfQorICAgIG1lc29uIHRlc3QgLS1uby1yZWJ1aWxkIC0tcHJpbnQt
ZXJyb3Jsb2dzCisgICAgc3VkbyBuaW5qYSBpbnN0YWxsCisKKyMjIEJ1aWxkaW5nIGFuZCB0ZXN0
aW5nIHdpdGggb3RoZXIgYnVpbGQgc3lzdGVtcworU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVu
LXNvdXJjZS1wYXJzZXJzL2pzb25jcHAvd2lraS9CdWlsZGluZworCisjIyBSdW5uaW5nIHRoZSB0
ZXN0cyBtYW51YWxseQorCitZb3UgbmVlZCB0byBydW4gdGVzdHMgbWFudWFsbHkgb25seSBpZiB5
b3UgYXJlIHRyb3VibGVzaG9vdGluZyBhbiBpc3N1ZS4KKworSW4gdGhlIGluc3RydWN0aW9ucyBi
ZWxvdywgcmVwbGFjZSBgcGF0aC90by9qc29udGVzdGAgd2l0aCB0aGUgcGF0aCBvZiB0aGUKK2Bq
c29udGVzdGAgZXhlY3V0YWJsZSB0aGF0IHdhcyBjb21waWxlZCBvbiB5b3VyIHBsYXRmb3JtLgor
CisgICAgY2QgdGVzdAorICAgICMgVGhpcyB3aWxsIHJ1biB0aGUgUmVhZGVyL1dyaXRlciB0ZXN0
cworICAgIHB5dGhvbiBydW5qc29udGVzdHMucHkgcGF0aC90by9qc29udGVzdAorCisgICAgIyBU
aGlzIHdpbGwgcnVuIHRoZSBSZWFkZXIvV3JpdGVyIHRlc3RzLCB1c2luZyBKU09OQ2hlY2tlciB0
ZXN0IHN1aXRlCisgICAgIyAoaHR0cDovL3d3dy5qc29uLm9yZy9KU09OX2NoZWNrZXIvKS4KKyAg
ICAjIE5vdGVzOiBub3QgYWxsIHRlc3RzIHBhc3M6IEpzb25DcHAgaXMgdG9vIGxlbmllbnQgKGZv
ciBleGFtcGxlLAorICAgICMgaXQgYWxsb3dzIGFuIGludGVnZXIgdG8gc3RhcnQgd2l0aCAnMCcp
LiBUaGUgZ29hbCBpcyB0byBpbXByb3ZlCisgICAgIyBzdHJpY3QgbW9kZSBwYXJzaW5nIHRvIGdl
dCBhbGwgdGVzdHMgdG8gcGFzcy4KKyAgICBweXRob24gcnVuanNvbnRlc3RzLnB5IC0td2l0aC1q
c29uLWNoZWNrZXIgcGF0aC90by9qc29udGVzdAorCisgICAgIyBUaGlzIHdpbGwgcnVuIHRoZSB1
bml0IHRlc3RzIChtb3N0bHkgVmFsdWUpCisgICAgcHl0aG9uIHJ1bnVuaXR0ZXN0cy5weSBwYXRo
L3RvL3Rlc3RfbGliX2pzb24KKworICAgICMgWW91IGNhbiBydW4gdGhlIHRlc3RzIHVzaW5nIHZh
bGdyaW5kOgorICAgIHB5dGhvbiBydW51bml0dGVzdHMucHkgLS12YWxncmluZCBwYXRoL3RvL3Rl
c3RfbGliX2pzb24KKworIyMgQnVpbGRpbmcgdGhlIGRvY3VtZW50YXRpb24KKworUnVuIHRoZSBQ
eXRob24gc2NyaXB0IGBkb3h5YnVpbGQucHlgIGZyb20gdGhlIHRvcCBkaXJlY3Rvcnk6CisKKyAg
ICBweXRob24gZG94eWJ1aWxkLnB5IC0tZG94eWdlbj0kKHdoaWNoIGRveHlnZW4pIC0tb3BlbiAt
LXdpdGgtZG90CisKK1NlZSBgZG94eWJ1aWxkLnB5IC0taGVscGAgZm9yIG9wdGlvbnMuCisKKyMj
IEFkZGluZyBhIHJlYWRlci93cml0ZXIgdGVzdAorCitUbyBhZGQgYSB0ZXN0LCB5b3UgbmVlZCB0
byBjcmVhdGUgdHdvIGZpbGVzIGluIHRlc3QvZGF0YToKKworKiBhIGBURVNUTkFNRS5qc29uYCBm
aWxlLCB0aGF0IGNvbnRhaW5zIHRoZSBpbnB1dCBkb2N1bWVudCBpbiBKU09OIGZvcm1hdC4KKyog
YSBgVEVTVE5BTUUuZXhwZWN0ZWRgIGZpbGUsIHRoYXQgY29udGFpbnMgYSBmbGF0ZW5lZCByZXBy
ZXNlbnRhdGlvbiBvZiB0aGUKKyAgaW5wdXQgZG9jdW1lbnQuCisKK1RoZSBgVEVTVE5BTUUuZXhw
ZWN0ZWRgIGZpbGUgZm9ybWF0IGlzIGFzIGZvbGxvd3M6CisKKyogRWFjaCBsaW5lIHJlcHJlc2Vu
dHMgYSBKU09OIGVsZW1lbnQgb2YgdGhlIGVsZW1lbnQgdHJlZSByZXByZXNlbnRlZCBieSB0aGUK
KyAgaW5wdXQgZG9jdW1lbnQuCisqIEVhY2ggbGluZSBoYXMgdHdvIHBhcnRzOiB0aGUgcGF0aCB0
byBhY2Nlc3MgdGhlIGVsZW1lbnQgc2VwYXJhdGVkIGZyb20gdGhlCisgIGVsZW1lbnQgdmFsdWUg
YnkgYD1gLiBBcnJheSBhbmQgb2JqZWN0IHZhbHVlcyBhcmUgYWx3YXlzIGVtcHR5IChpLmUuCisg
IHJlcHJlc2VudGVkIGJ5IGVpdGhlciBgW11gIG9yIGB7fWApLgorKiBFbGVtZW50IHBhdGggYC5g
IHJlcHJlc2VudHMgdGhlIHJvb3QgZWxlbWVudCwgYW5kIGlzIHVzZWQgdG8gc2VwYXJhdGUgb2Jq
ZWN0CisgIG1lbWJlcnMuIGBbTl1gIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgdmFsdWUgb2YgYW4g
YXJyYXkgZWxlbWVudCBhdCBpbmRleCBgTmAuCisKK1NlZSB0aGUgZXhhbXBsZXMgYHRlc3RfY29t
cGxleF8wMS5qc29uYCBhbmQgYHRlc3RfY29tcGxleF8wMS5leHBlY3RlZGAgdG8gYmV0dGVyIHVu
ZGVyc3RhbmQgZWxlbWVudCBwYXRocy4KKworIyMgVW5kZXJzdGFuZGluZyByZWFkZXIvd3JpdGVy
IHRlc3Qgb3V0cHV0CisKK1doZW4gYSB0ZXN0IGlzIHJ1biwgb3V0cHV0IGZpbGVzIGFyZSBnZW5l
cmF0ZWQgYmVzaWRlIHRoZSBpbnB1dCB0ZXN0IGZpbGVzLiBCZWxvdyBpcyBhIHNob3J0IGRlc2Ny
aXB0aW9uIG9mIHRoZSBjb250ZW50IG9mIGVhY2ggZmlsZToKKworKiBgdGVzdF9jb21wbGV4XzAx
Lmpzb25gOiBpbnB1dCBKU09OIGRvY3VtZW50LgorKiBgdGVzdF9jb21wbGV4XzAxLmV4cGVjdGVk
YDogZmxhdHRlbmVkIEpTT04gZWxlbWVudCB0cmVlIHVzZWQgdG8gY2hlY2sgaWYKKyAgcGFyc2lu
ZyB3YXMgY29ycmVjdGVkLgorKiBgdGVzdF9jb21wbGV4XzAxLmFjdHVhbGA6IGZsYXR0ZW5lZCBK
U09OIGVsZW1lbnQgdHJlZSBwcm9kdWNlZCBieSBganNvbnRlc3RgCisgIGZyb20gcmVhZGluZyBg
dGVzdF9jb21wbGV4XzAxLmpzb25gLgorKiBgdGVzdF9jb21wbGV4XzAxLnJld3JpdGVgOiBKU09O
IGRvY3VtZW50IHdyaXR0ZW4gYnkgYGpzb250ZXN0YCB1c2luZyB0aGUKKyAgYEpzb246OlZhbHVl
YCBwYXJzZWQgZnJvbSBgdGVzdF9jb21wbGV4XzAxLmpzb25gIGFuZCBzZXJpYWxpemVkIHVzaW5n
CisgIGBKc29uOjpTdHlsZWRXcml0dGVyYC4KKyogYHRlc3RfY29tcGxleF8wMS5hY3R1YWwtcmV3
cml0ZWA6IGZsYXR0ZW5lZCBKU09OIGVsZW1lbnQgdHJlZSBwcm9kdWNlZCBieQorICBganNvbnRl
c3RgIGZyb20gcmVhZGluZyBgdGVzdF9jb21wbGV4XzAxLnJld3JpdGVgLgorKiBgdGVzdF9jb21w
bGV4XzAxLnByb2Nlc3Mtb3V0cHV0YDogYGpzb250ZXN0YCBvdXRwdXQsIHR5cGljYWxseSB1c2Vm
dWwgZm9yCisgIHVuZGVyc3RhbmRpbmcgcGFyc2luZyBlcnJvcnMuCisKKyMjIFZlcnNpb25pbmcg
cnVsZXMKKworQ29uc3VtZXJzIG9mIHRoaXMgbGlicmFyeSByZXF1aXJlIGEgc3RyaWN0IGFwcHJv
YWNoIHRvIGluY3JlbWVudGluZyB2ZXJzaW9uaW5nIG9mIHRoZSBKc29uQ3BwIGxpYnJhcnkuIEN1
cnJlbnRseSwgd2UgZm9sbG93IHRoZSBiZWxvdyBzZXQgb2YgcnVsZXM6CisKKyogQW55IG5ldyBw
dWJsaWMgc3ltYm9scyByZXF1aXJlIGEgbWlub3IgdmVyc2lvbiBidW1wLgorKiBBbnkgYWx0ZXJh
dGlvbiBvciByZW1vdmFsIG9mIHB1YmxpYyBzeW1ib2xzIHJlcXVpcmVzIGEgbWFqb3IgdmVyc2lv
biBidW1wLCBpbmNsdWRpbmcgY2hhbmdpbmcgdGhlIHNpemUgb2YgYSBjbGFzcy4gVGhpcyBpcyBu
ZWNlc3NhcnkgZm9yCitjb25zdW1lcnMgdG8gZG8gZGVwZW5kZW5jeSBpbmplY3Rpb24gcHJvcGVy
bHkuCisKKyMjIFByZXBhcmluZyBjb2RlIGZvciBzdWJtaXNzaW9uCisKK0dlbmVyYWxseSwgSnNv
bkNwcCdzIHN0eWxlIGd1aWRlIGhhcyBiZWVuIHByZXR0eSByZWxheGVkLCB3aXRoIHRoZSBmb2xs
b3dpbmcgY29tbW9uIHRoZW1lczoKKworKiBWYXJpYWJsZXMgYW5kIGZ1bmN0aW9uIG5hbWVzIHVz
ZSBsb3dlciBjYW1lbCBjYXNlIChFLmcuIHBhcnNlVmFsdWUgb3IgY29sbGVjdENvbW1lbnRzKS4K
KyogQ2xhc3MgdXNlIGNhbWVsIGNhc2UgKGUuZy4gT3VyUmVhZGVyKQorKiBNZW1iZXIgdmFyaWFi
bGVzIGhhdmUgYSB0cmFpbGluZyB1bmRlcnNjb3JlCisqIFByZWZlciBgbnVsbHB0cmAgb3ZlciBg
TlVMTGAuCisqIFBhc3NpbmcgYnkgbm9uLWNvbnN0IHJlZmVyZW5jZSBpcyBhbGxvd2VkLgorKiBT
aW5nbGUgc3RhdGVtZW50IGlmIGJsb2NrcyBtYXkgb21pdCBicmFja2V0cy4KKyogR2VuZXJhbGx5
IHByZWZlciBsZXNzIHNwYWNlIG92ZXIgbW9yZSBzcGFjZS4KKworRm9yIGFuIGV4YW1wbGU6CisK
K2BgYGMrKworYm9vbCBSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKKyAgVmFs
dWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQorICAgIHJl
dHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1
cm4gdHJ1ZTsKK30KK2BgYAorCitCZWZvcmUgc3VibWl0dGluZyB5b3VyIGNvZGUsIGVuc3VyZSB0
aGF0IHlvdSBtZWV0IHRoZSB2ZXJzaW9uaW5nIHJlcXVpcmVtZW50cyBhYm92ZSwgZm9sbG93IHRo
ZSBzdHlsZSBndWlkZSBvZiB0aGUgZmlsZSB5b3UgYXJlIG1vZGlmeWluZyAob3IgdGhlIGFib3Zl
IHJ1bGVzIGZvciBuZXcgZmlsZXMpLCBhbmQgcnVuIGNsYW5nIGZvcm1hdC4gTWVzb24gZXhwb3Nl
cyBjbGFuZyBmb3JtYXQgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisKK2BgYAorbmluamEg
LXYgLUMgYnVpbGQtJHtMSUJfVFlQRX0vIGNsYW5nLWZvcm1hdAorYGBgCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL0xJQ0VOU0UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL0xJQ0VOU0UKaW5kZXggY2EyYmZlMWEwM2VlNWUzOTFmNTFiMWJj
NGRlNDcxMTQ0MjFlZWM5OC4uODkyODBhNmM0OGE5ZGI1MTU1OTcwMGQzNGM4NDliNDllMWM0OWFk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9MSUNFTlNFCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvTElDRU5TRQpAQCAtMiwxMyAr
MiwxMyBAQCBUaGUgSnNvbkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUsIGluY2x1ZGluZyBhY2Nv
bXBhbnlpbmcgZG9jdW1lbnRhdGlvbiwKIHRlc3RzIGFuZCBkZW1vbnN0cmF0aW9uIGFwcGxpY2F0
aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcKIGNvbmRpdGlvbnMuLi4KIAot
VGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNpdGx5IGRpc2NsYWltcyBjb3B5
cmlnaHQgaW4gYWxsIAorQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3Jz
IGV4cGxpY2l0bHkgZGlzY2xhaW0gY29weXJpZ2h0IGluIGFsbCAKIGp1cmlzZGljdGlvbnMgd2hp
Y2ggcmVjb2duaXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNoIGp1cmlzZGljdGlvbnMsIAog
dGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJsaWMgRG9tYWluLgogCiBJbiBq
dXJpc2RpY3Rpb25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0
eSAoZS5nLiBHZXJtYW55IGFzIG9mCi0yMDEwKSwgdGhpcyBzb2Z0d2FyZSBpcyBDb3B5cmlnaHQg
KGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFuZCBpcwotcmVsZWFzZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4KKzIwMTApLCB0aGlz
IHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAwNy0yMDEwIGJ5IEJhcHRpc3RlIExlcGlsbGV1
ciBhbmQKK1RoZSBKc29uQ3BwIEF1dGhvcnMsIGFuZCBpcyByZWxlYXNlZCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgogCiBJbiBqdXJpc2RpY3Rpb25zIHdo
aWNoIHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlzIAog
c29mdHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBEb21h
aW4sIDIpIHVuZGVyIHRoZSAKQEAgLTIzLDcgKzIzLDcgQEAgZGVzY3JpYmVkIGluIGNsZWFyLCBj
b25jaXNlIHRlcm1zIGF0OgogVGhlIGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2UgZm9sbG93
czoKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci1Db3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKK0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQg
VGhlIEpzb25DcHAgQXV0aG9ycwogCiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgogb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvTkVXUy50
eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL05FV1MudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MzE2ZmY2
ZWZlNWQxYTg5MjVkMjUxYjZhMTExMWNjYTIxNTg4ODcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvTkVXUy50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxNDMgKzAsMCBAQAotTmV3IGluIFNWTgotLS0tLS0tLS0tLQotCi0gKiAgVXBkYXRlZCB0aGUg
dHlwZSBzeXN0ZW0ncyBiZWhhdmlvciwgaW4gb3JkZXIgdG8gYmV0dGVyIHN1cHBvcnQgYmFja3dh
cmRzCi0gICAgY29tcGF0aWJpbGl0eSB3aXRoIGNvZGUgdGhhdCB3YXMgd3JpdHRlbiBiZWZvcmUg
NjQtYml0IGludGVnZXIgc3VwcG9ydCB3YXMKLSAgICBpbnRyb2R1Y2VkLiBIZXJlJ3MgaG93IGl0
IHdvcmtzIG5vdzoKLQotICAgICAqICBpc0ludCwgaXNJbnQ2NCwgaXNVSW50LCBhbmQgaXNVSW50
NjQgcmV0dXJuIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlCi0gICAgICAgIHZhbHVlIGNhbiBiZSBl
eGFjdGx5IHJlcHJlc2VudGVkIGFzIHRoYXQgdHlwZS4gSW4gcGFydGljdWxhciwgYSB2YWx1ZQot
ICAgICAgICBjb25zdHJ1Y3RlZCB3aXRoIGEgZG91YmxlIGxpa2UgMTcuMCB3aWxsIG5vdyByZXR1
cm4gdHJ1ZSBmb3IgYWxsIG9mCi0gICAgICAgIHRoZXNlIG1ldGhvZHMuCi0KLSAgICAgKiAgaXNE
b3VibGUgYW5kIGlzRmxvYXQgbm93IHJldHVybiB0cnVlIGZvciBhbGwgbnVtZXJpYyB2YWx1ZXMs
IHNpbmNlIGFsbAotICAgICAgICBudW1lcmljIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIGEg
ZG91YmxlIG9yIGZsb2F0IHdpdGhvdXQKLSAgICAgICAgdHJ1bmNhdGlvbi4gTm90ZSBob3dldmVy
IHRoYXQgdGhlIGNvbnZlcnNpb24gbWF5IG5vdCBiZSBleGFjdCAtLSBmb3IKLSAgICAgICAgZXhh
bXBsZSwgZG91YmxlcyBjYW5ub3QgZXhhY3RseSByZXByZXNlbnQgYWxsIGludGVnZXJzIGFib3Zl
IDJeNTMgKyAxLgotCi0gICAgICogIGlzQm9vbCwgaXNOdWxsLCBpc1N0cmluZywgaXNBcnJheSwg
YW5kIGlzT2JqZWN0IG5vdyByZXR1cm4gdHJ1ZSBpZiBhbmQKLSAgICAgICAgb25seSBpZiB0aGUg
dmFsdWUgaXMgb2YgdGhhdCB0eXBlLgotCi0gICAgICogIGlzQ29udmVydGlibGVUbyhmb29WYWx1
ZSkgaW5kaWNhdGVzIHRoYXQgaXQgaXMgc2FmZSB0byBjYWxsIGFzRm9vLgotICAgICAgICAoRm9y
IGVhY2ggdHlwZSBmb28sIGlzRm9vIGFsd2F5cyBpbXBsaWVzIGlzQ29udmVydGlibGVUbyhmb29W
YWx1ZSkuKQotICAgICAgICBhc0ZvbyByZXR1cm5zIGFuIGFwcHJveGltYXRlIG9yIGV4YWN0IHJl
cHJlc2VudGF0aW9uIGFzIGFwcHJvcHJpYXRlLgotICAgICAgICBGb3IgZXhhbXBsZSwgYSBkb3Vi
bGUgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCB3aGVuIGFzSW50IGlzIGNhbGxlZC4KLQotICAgICAq
ICBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgY29kZSwgaXNDb252ZXJ0aWJs
ZVRvKGludFZhbHVlKQotICAgICAgICBtYXkgcmV0dXJuIGZhbHNlIGV2ZW4gaWYgdHlwZSgpID09
IGludFZhbHVlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHZhbHVlCi0gICAgICAgIG1heSBoYXZlIGJl
ZW4gY29uc3RydWN0ZWQgd2l0aCBhIDY0LWJpdCBpbnRlZ2VyIGxhcmdlciB0aGFuIG1heEludCwK
LSAgICAgICAgYW5kIGNhbGxpbmcgYXNJbnQoKSB3b3VsZCBjYXVzZSBhbiBleGNlcHRpb24uIElm
IHlvdSdyZSB3cml0aW5nIG5ldwotICAgICAgICBjb2RlLCB1c2UgaXNJbnQ2NCB0byBmaW5kIG91
dCB3aGV0aGVyIHRoZSB2YWx1ZSBpcyBleGFjdGx5Ci0gICAgICAgIHJlcHJlc2VudGFibGUgdXNp
bmcgYW4gSW50NjQsIG9yIGFzRG91YmxlKCkgY29tYmluZWQgd2l0aCBtaW5JbnQ2NCBhbmQKLSAg
ICAgICAgbWF4SW50NjQgdG8gZmlndXJlIG91dCB3aGV0aGVyIGl0IGlzIGFwcHJveGltYXRlbHkg
cmVwcmVzZW50YWJsZS4KLQotCi0gIE5ldyBpbiBKc29uQ3BwIDAuNi4wOgotICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotKiBDb21waWxhdGlvbgotCi0gIC0gTERfTElCUkFSWV9QQVRIIGFuZCBM
SUJSQVJZX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBub3cgCi0gICAgcHJvcGFnYXRl
ZCB0byB0aGUgYnVpbGQgZW52aXJvbm1lbnQgYXMgdGhpcyBpcyByZXF1aXJlZCBmb3Igc29tZSAK
LSAgICBjb21waWxlciBpbnN0YWxsYXRpb24uCi0KLSAgLSBBZGRlZCBzdXBwb3J0IGZvciBNaWNy
b3NvZnQgVmlzdWFsIFN0dWRpbyAyMDA4IChidWcgIzI5MzA0NjIpOiAKLSAgICBUaGUgcGxhdGZv
cm0gIm1zdmM5MCIgaGFzIGJlZW4gYWRkZWQuCi0KLSAgICBOb3RlczogeW91IG5lZWQgdG8gc2V0
dXAgdGhlIGVudmlyb25tZW50IGJ5IHJ1bm5pbmcgdmN2YXJzMzIuYmF0IAotICAgIChlLmcuIE1T
VkMgMjAwOCBjb21tYW5kIHByb21wdCBpbiBzdGFydCBtZW51KSBiZWZvcmUgcnVubmluZyBzY29u
cy4KLSAgICAKLSAgLSBBZGRlZCBzdXBwb3J0IGZvciBhbWFsZ2FtYXRlZCBzb3VyY2UgYW5kIGhl
YWRlciBnZW5lcmF0aW9uIChhIGxhIHNxbGl0ZSkuCi0gICAgUmVmZXIgdG8gUkVBRE1FLnR4dCBz
ZWN0aW9uICJHZW5lcmF0aW5nIGFtYWxnYW1hdGVkIHNvdXJjZSBhbmQgaGVhZGVyIgotICAgIGZv
ciBkZXRhaWwuCi0gICAgCi0qIFZhbHVlCi0KLSAgLSBSZW1vdmVkIGV4cGVyaW1lbnRhbCBWYWx1
ZUFsbG9jYXRvciwgaXQgY2F1c2VkIHN0YXRpYyAKLSAgICBpbml0aWFsaXphdGlvbi9kZXN0cnVj
dGlvbiBvcmRlciBpc3N1ZXMgKGJ1ZyAjMjkzNDUwMCkuIAotICAgIFRoZSBEZWZhdWx0VmFsdWVB
bGxvY2F0b3IgaGFzIGJlZW4gaW5saW5lZCBpbiBjb2RlLgotICAgIAotICAtIEFkZGVkIHN1cHBv
cnQgZm9yIDY0IGJpdHMgaW50ZWdlcjoKLSAgCi0gICAgVHlwZXMgSnNvbjo6SW50NjQgYW5kIEpz
b246OlVJbnQ2NCBoYXZlIGJlZW4gYWRkZWQuIFRoZXkgYXJlIGFsaWFzZWQKLQl0byA2NCBiaXRz
IGludGVnZXJzIG9uIHN5c3RlbSB0aGF0IHN1cHBvcnQgdGhlbSAoYmFzZWQgb24gX19pbnQ2NCBv
biAKLQlNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBwbGF0Zm9ybSwgYW5kIGxvbmcgbG9uZyBvbiBv
dGhlciBwbGF0Zm9ybXMpLgotCQotCVR5cGVzIEpzb246Okxhcmdlc3RJbnQgYW5kIEpzb246Okxh
cmdlc3RVSW50IGhhdmUgYmVlbiBhZGRlZC4gVGhleSBhcmUKLQlhbGlhc2VkIHRvIHRoZSBsYXJn
ZXN0IGludGVnZXIgdHlwZSBzdXBwb3J0ZWQ6IAotCWVpdGhlciBKc29uOjpJbnQvSnNvbjo6VUlu
dCBvciBKc29uOjpJbnQ2NC9Kc29uOjpVSW50NjQgcmVzcGVjdGl2ZWx5LgotCQotCUpzb246OlZh
bHVlOjphc0ludCgpIGFuZCBKc29uOjpWYWx1ZTo6YXNVSW50KCkgc3RpbGwgcmV0dXJucyBwbGFp
bgotCSJpbnQiIGJhc2VkIHR5cGVzLCBidXQgYXNzZXJ0cyBpZiBhbiBhdHRlbXB0IGlzIG1hZGUg
dG8gcmV0cmlldmUKLQlhIDY0IGJpdHMgdmFsdWUgdGhhdCBjYW4gbm90IHJlcHJlc2VudGVkIGFz
IHRoZSByZXR1cm4gdHlwZS4KLQkKLQlKc29uOjpWYWx1ZTo6YXNJbnQ2NCgpIGFuZCBKc29uOjpW
YWx1ZTo6YXNVSW50NjQoKSBoYXZlIGJlZW4gYWRkZWQKLQl0byBvYnRhaW4gdGhlIDY0IGJpdHMg
aW50ZWdlciB2YWx1ZS4KLQkKLQlKc29uOjpWYWx1ZTo6YXNMYXJnZXN0SW50KCkgYW5kIEpzb246
OlZhbHVlOjphc0xhcmdlc3RVSW50KCkgcmV0dXJucwotCXRoZSBpbnRlZ2VyIGFzIGEgTGFyZ2Vz
dEludC9MYXJnZXN0VUludCByZXNwZWN0aXZlbHkuIFRob3NlIGZ1bmN0aW9ucwotCWZ1bmN0aW9u
cyBhcmUgdHlwaWNhbGx5IHVzZWQgd2hlbiBpbXBsZW1lbnRpbmcgd3JpdGVyLgotCQotCVRoZSBy
ZWFkZXIgYXR0ZW1wdHMgdG8gcmVhZCBudW1iZXIgYXMgNjQgYml0cyBpbnRlZ2VyLCBhbmQgZmFs
bCBiYWNrCi0JdG8gcmVhZGluZyBhIGRvdWJsZSBpZiB0aGUgbnVtYmVyIGlzIG5vdCBpbiB0aGUg
cmFuZ2Ugb2YgNjQgYml0cyAKLQlpbnRlZ2VyLgotICAgIAotICAgIFdhcm5pbmc6IEpzb246OlZh
bHVlOjphc0ludCgpIGFuZCBKc29uOjpWYWx1ZTo6YXNVSW50KCkgbm93IHJldHVybnMKLSAgICBs
b25nIGxvbmcuIFRoaXMgY2hhbmdlcyBicmVhayBjb2RlIHRoYXQgd2FzIHBhc3NpbmcgdGhlIHJl
dHVybiB2YWx1ZQotICAgIHRvICpwcmludGYoKSBmdW5jdGlvbi4KLSAgCi0gICAgU3VwcG9ydCBm
b3IgNjQgYml0cyBpbnRlZ2VyIGNhbiBiZSBkaXNhYmxlZCBieSBkZWZpbmluZyB0aGUgbWFjcm8g
Ci0JSlNPTl9OT19JTlQ2NCAodW5jb21tZW50IGl0IGluIGpzb24vY29uZmlnLmggZm9yIGV4YW1w
bGUpLCB0aG91Z2gKLQlpdCBzaG91bGQgaGF2ZSBubyBpbXBhY3Qgb24gZXhpc3RpbmcgdXNhZ2Uu
Ci0gICAgCi0gIC0gVGhlIHR5cGUgSnNvbjo6QXJyYXlJbmRleCBpcyB1c2VkIGZvciBpbmRleGVz
IG9mIGEgSlNPTiB2YWx1ZSBhcnJheS4gSXQKLSAgICBpcyBhbiB1bnNpZ25lZCBpbnQgKHR5cGlj
YWxseSAzMiBiaXRzKS4KLQkKLSAgLSBBcnJheSBpbmRleCBjYW4gYmUgcGFzc2VkIGFzIGludCB0
byBvcGVyYXRvcltdLCBhbGxvd2luZyB1c2Ugb2YgbGl0ZXJhbDoKLSAgICBKc29uOjpWYWx1ZSBh
cnJheTsKLQlhcnJheS5hcHBlbmQoIDEyMzQgKTsKLQlpbnQgdmFsdWUgPSBhcnJheVswXS5hc0lu
dCgpOyAgLy8gZGlkIG5vdCBjb21waWxlIHByZXZpb3VzbHkKLQotICAtIEFkZGVkIGZsb2F0IEpz
b246OlZhbHVlOjphc0Zsb2F0KCkgdG8gb2J0YWluIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUgYXMg
YQotICAgIGZsb2F0IChhdm9pZCBsb3N0IG9mIHByZWNpc2lvbiB3YXJuaW5nIGNhdXNlZCBieSB1
c2VkIG9mIGFzRG91YmxlKCkgCi0gICAgdG8gaW5pdGlhbGl6ZSBhIGZsb2F0KS4KLQotKiBSZWFk
ZXIKLQotICAtIFJlbmFtZWQgUmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVzc2FnZXMoKSB0byBn
ZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzLgotICAgIEJ1ZyAjMzAyMzcwOCAoRm9ybWF0dGVkIGhh
cyAyICd0JykuIFRoZSBvbGQgbWVtYmVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQKLSAgICBidXQg
c3RpbGwgcHJlc2VudCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLSAgICAKLSogVGVzdHMK
LQotICAtIEFkZGVkIHRlc3QgdG8gZW5zdXJlIHRoYXQgdGhlIGVzY2FwZSBzZXF1ZW5jZSAiXC8i
IGlzIGNvcnJlY3RlZCBoYW5kbGVkIAotICAgIGJ5IHRoZSBwYXJzZXIuCi0KLSogQnVnIGZpeGVz
Ci0KLSAgLSBCdWcgIzMxMzk2Nzc6IEpTT04gWzEgMiAzXSB3YXMgaW5jb3JyZWN0bHkgcGFyc2Vk
IGFzIFsxLCAzXS4gRXJyb3IgaXMgbm93IAotICAgIGNvcnJlY3RseSBkZXRlY3RlZC4KLSAgICAK
LSAgLSBCdWcgIzMxMzk2Nzg6IHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcgYSBk
b3VibGUgd2l0aCBhCi0gICAgbGVuZ3RoIG9mIDMyIGNoYXJhY3RlcnMuCi0JCi0gIC0gRml4ZWQg
VmFsdWU6Om9wZXJhdG9yIDw9IGltcGxlbWVudGF0aW9uIChoYWQgdGhlIHNlbWFudGljIG9mIG9w
ZXJhdG9yID49KS4KLSAgICBGb3VuZCB3aGVuIGFkZGluZyB1bml0IHRlc3RzIGZvciBjb21wYXJp
c29uIG9wZXJhdG9ycy4KLSAgICAKLSAgLSBWYWx1ZTo6Y29tcGFyZSgpIGlzIG5vdyBjb25zdCBh
bmQgaGFzIGFuIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiB3aXRoCi0gICAgdW5pdCB0ZXN0cy4KLQot
ICAtIEJ1ZyAjMjQwNzkzMjogc3RycGJyaygpIGNhbiBmYWlsIGZvciBOVUxMIHBvaW50ZXIuCi0K
LSAgLSBCdWcgIzMzMDYzNDU6IEZpeGVkIG1pbm9yIHR5cG8gaW4gUGF0aDo6cmVzb2x2ZSgpLgot
Ci0gIC0gQnVnICMzMzE0ODQxLyMzMzA2ODk2OiBlcnJvcnMgaW4gYW1hbGdhbWF0ZS5weQotCi0g
IC0gRml4ZWQgc29tZSBDb3Zlcml0eSB3YXJuaW5ncyBhbmQgbGluZS1lbmRpbmdzLgotICAgIAot
KiBMaWNlbnNlCi0gIAotICAtIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbHMuIEJhc2ljYWxs
eSBKc29uQ3BwIGlzIG5vdyBsaWNlbnNlZCB1bmRlciAKLSAgICBNSVQgbGljZW5zZSwgb3IgcHVi
bGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZCByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9u
LgotICAgIFRoYW5rcyB0byBTdGVwaGFuIEcuIEJlYWwgW2h0dHA6Ly93YW5kZXJpbmdob3JzZS5u
ZXQvaG9tZS9zdGVwaGFuL10pIHdobwotCWhlbHBlZCBmaWd1cmluZyBvdXQgdGhlIHNvbHV0aW9u
IHRvIHRoZSBwdWJsaWMgZG9tYWluIGlzc3VlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9SRUFETUUubWQg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Yzg1ODcwNjBkYjJhZDhkNTY1NTZkMDE2Yjc3
ODNjYWUxODQyNzEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9SRUFETUUubWQKQEAgLTAsMCAr
MSw0NiBAQAorIyBKc29uQ3BwCisKK1shW2JhZGdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2Jh
ZGdlL2NvbmFuLmlvLWpzb25jcHAlMkYxLjguMC1ncmVlbi5zdmc/bG9nbz1kYXRhOmltYWdlL3Bu
ZztiYXNlNjQlMkNpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQTRBQUFBT0NBTUFBQUFvbHQzakFB
QUExVkJNVkVVQUFBQmhsY3RqbHN0a2w4dGxtTXRsbU14bG1jeG1tY3hubXN4cG5NeHBuTTFxbmMx
c244NXZvTTkxb00xMW9jMXhvdEIyb2M1NnBORjZwTkoycHRKOHB0SjhwdE45cHROOHA5TjVxTko5
cDlOOXA5UjhxdE9CcWRTQXF0T0FxdFIlMkJyTlNDck5KL3JkV0RyTldDc05XQ3NOYUpzOWVMczlp
UnZOdVZ2ZHlWdjl5WHdkMlp3dDZheE42ZHh0JTJCZnglMkJDaHllR2l5dUdqeXVDanl1R2x5JTJC
R2x6T0ttek9Hb3p1S296JTJCS3F6JTJCT3EwT092MU9XdzFPV3cxZVd4MWVXeTF1YXkxJTJCYXox
JTJCYXoxJTJCZXoyT2UwMk9lMTJlZTIydWpVR3dIM0FBQUFBWFJTVGxNQVFPYllaZ0FBQUFGaVMw
ZEVBSWdGSFVnQUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUFIZEVsTlJRZmdCUWtSRXlP
eEZJaC9BQUFBaWtsRVFWUUkxMk5nQUFNYk93WTRzTFoyTnRRMWNvVktXTnZvYy9FcThYRHIyd0I1
SWc2MmVremE5dmFPcXBLMlRwb016T3hhRnR3cVp1YTJCbTRtYWtJTTdPek1Bam9hQ3FZdXhvb1NV
cUpBTGpzN280eVZwYm93dnpTVXk4N0txU3dteFFmbnNyUElTeUZ6V2VXQVhDa3BNYUJWSUM0Ym1D
c09kZ2lVS3doM0pvakxnQVE0WkNFMEFNbTJEMjl0WndlNkFBQUFBRWxGVGtTdVFtQ0MpXShodHRw
czovL2JpbnRyYXkuY29tL3RoZWlyaXgvY29uYW4tcmVwby9qc29uY3BwJTNBdGhlaXJpeCkKKwor
W0pTT05dW2pzb24tb3JnXSBpcyBhIGxpZ2h0d2VpZ2h0IGRhdGEtaW50ZXJjaGFuZ2UgZm9ybWF0
LiBJdCBjYW4gcmVwcmVzZW50CitudW1iZXJzLCBzdHJpbmdzLCBvcmRlcmVkIHNlcXVlbmNlcyBv
ZiB2YWx1ZXMsIGFuZCBjb2xsZWN0aW9ucyBvZiBuYW1lL3ZhbHVlCitwYWlycy4KKworW2pzb24t
b3JnXTogaHR0cDovL2pzb24ub3JnLworCitKc29uQ3BwIGlzIGEgQysrIGxpYnJhcnkgdGhhdCBh
bGxvd3MgbWFuaXB1bGF0aW5nIEpTT04gdmFsdWVzLCBpbmNsdWRpbmcKK3NlcmlhbGl6YXRpb24g
YW5kIGRlc2VyaWFsaXphdGlvbiB0byBhbmQgZnJvbSBzdHJpbmdzLiBJdCBjYW4gYWxzbyBwcmVz
ZXJ2ZQorZXhpc3RpbmcgY29tbWVudCBpbiB1bnNlcmlhbGl6YXRpb24vc2VyaWFsaXphdGlvbiBz
dGVwcywgbWFraW5nIGl0IGEgY29udmVuaWVudAorZm9ybWF0IHRvIHN0b3JlIHVzZXIgaW5wdXQg
ZmlsZXMuCisKKworIyMgRG9jdW1lbnRhdGlvbgorCitbSnNvbkNwcCBkb2N1bWVudGF0aW9uXVtK
c29uQ3BwLWRvY3VtZW50YXRpb25dIGlzIGdlbmVyYXRlZCB1c2luZyBbRG94eWdlbl1bXS4KKwor
W0pzb25DcHAtZG9jdW1lbnRhdGlvbl06IGh0dHA6Ly9vcGVuLXNvdXJjZS1wYXJzZXJzLmdpdGh1
Yi5pby9qc29uY3BwLWRvY3MvZG94eWdlbi9pbmRleC5odG1sCitbRG94eWdlbl06IGh0dHA6Ly93
d3cuZG94eWdlbi5vcmcKKworCisjIyBBIG5vdGUgb24gYmFja3dhcmQtY29tcGF0aWJpbGl0eQor
CisqIGAxLnkuemAgaXMgYnVpbHQgd2l0aCBDKysxMS4KKyogYDAueS56YCBjYW4gYmUgdXNlZCB3
aXRoIG9sZGVyIGNvbXBpbGVycy4KKyogTWFqb3IgdmVyc2lvbnMgbWFpbnRhaW4gYmluYXJ5LWNv
bXBhdGliaWxpdHkuCisKKworIyMgVXNpbmcgSnNvbkNwcCBpbiB5b3VyIHByb2plY3QKKworIyMj
IEFtYWxnYW1hdGVkIHNvdXJjZQoraHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNl
cnMvanNvbmNwcC93aWtpL0FtYWxnYW1hdGVkCisKKyMjIyBUaGUgTWVzb24gQnVpbGQgU3lzdGVt
CitJZiB5b3UgYXJlIHVzaW5nIHRoZSBbTWVzb24gQnVpbGQgU3lzdGVtXShodHRwOi8vbWVzb25i
dWlsZC5jb20pLCB0aGVuIHlvdSBjYW4gZ2V0IGEgd3JhcCBmaWxlIGJ5IGRvd25sb2FkaW5nIGl0
IGZyb20gW01lc29uIFdyYXBEQl0oaHR0cHM6Ly93cmFwZGIubWVzb25idWlsZC5jb20vanNvbmNw
cCksIG9yIHNpbXBseSB1c2UgYG1lc29uIHdyYXAgaW5zdGFsbCBqc29uY3BwYC4KKworIyMjIE90
aGVyIHdheXMKK0lmIHlvdSBoYXZlIHRyb3VibGUsIHNlZSB0aGUgV2lraSwgb3IgcG9zdCBhIHF1
ZXN0aW9uIGFzIGFuIElzc3VlLgorCisjIyBMaWNlbnNlCisKK1NlZSB0aGUgYExJQ0VOU0VgIGZp
bGUgZm9yIGRldGFpbHMuIEluIHN1bW1hcnksIEpzb25DcHAgaXMgbGljZW5zZWQgdW5kZXIgdGhl
CitNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZCByZWNvZ25pemVk
IGluIHlvdXIganVyaXNkaWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9SRUFETUUudHh0IGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9SRUFETUUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OGMxMTc4ZDcyMzdm
OGNjODdkZTcxMTYzNjZhZTdlODJjZjE1MThlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvUkVBRE1FLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3
MyArMCwwIEBACi0qIEludHJvZHVjdGlvbjoKLSAgPT09PT09PT09PT09PQotCi1KU09OIChKYXZh
U2NyaXB0IE9iamVjdCBOb3RhdGlvbikgaXMgYSBsaWdodHdlaWdodCBkYXRhLWludGVyY2hhbmdl
IGZvcm1hdC4gCi1JdCBjYW4gcmVwcmVzZW50IGludGVnZXIsIHJlYWwgbnVtYmVyLCBzdHJpbmcs
IGFuIG9yZGVyZWQgc2VxdWVuY2Ugb2YgCi12YWx1ZSwgYW5kIGEgY29sbGVjdGlvbiBvZiBuYW1l
L3ZhbHVlIHBhaXJzLgotCi1Kc29uQ3BwIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQv
KSBpcyBhIHNpbXBsZSBBUEkgdG8gbWFuaXB1bGF0ZSAKLUpTT04gdmFsdWUsIGhhbmRsZSBzZXJp
YWxpemF0aW9uIGFuZCB1bnNlcmlhbGl6YXRpb24gdG8gc3RyaW5nLgotCi1JdCBjYW4gYWxzbyBw
cmVzZXJ2ZSBleGlzdGluZyBjb21tZW50IGluIHVuc2VyaWFsaXphdGlvbi9zZXJpYWxpemF0aW9u
IHN0ZXBzLAotbWFraW5nIGl0IGEgY29udmVuaWVudCBmb3JtYXQgdG8gc3RvcmUgdXNlciBpbnB1
dCBmaWxlcy4KLQotVW5zZXJpYWxpemF0aW9uIHBhcnNpbmcgaXMgdXNlciBmcmllbmRseSBhbmQg
cHJvdmlkZXMgcHJlY2lzZSBlcnJvciByZXBvcnRzLgotCi0KLSogQnVpbGRpbmcvVGVzdGluZzoK
LSAgPT09PT09PT09PT09PT09PT0KLQotSnNvbkNwcCB1c2VzIFNjb25zIChodHRwOi8vd3d3LnNj
b25zLm9yZykgYXMgYSBidWlsZCBzeXN0ZW0uIFNjb25zIHJlcXVpcmVzCi1weXRob24gdG8gYmUg
aW5zdGFsbGVkIChodHRwOi8vd3d3LnB5dGhvbi5vcmcpLgotCi1Zb3UgZG93bmxvYWQgc2NvbnMt
bG9jYWwgZGlzdHJpYnV0aW9uIGZyb20gdGhlIGZvbGxvd2luZyB1cmw6Ci1odHRwOi8vc291cmNl
Zm9yZ2UubmV0L3Byb2plY3RzL3Njb25zL2ZpbGVzL3Njb25zLWxvY2FsLzEuMi4wLwotCi1Vbnpp
cCBpdCBpbiB0aGUgZGlyZWN0b3J5IHdoZXJlIHlvdSBmb3VuZCB0aGlzIFJFQURNRSBmaWxlLiBz
Y29ucy5weSBTaG91bGQgYmUgCi1hdCB0aGUgc2FtZSBsZXZlbCBhcyBSRUFETUUuCi0KLXB5dGhv
biBzY29ucy5weSBwbGF0Zm9ybT1QTFRGUk0gW1RBUkdFVF0KLXdoZXJlIFBMVEZSTSBtYXkgYmUg
b25lIG9mOgotCXN1bmNjIFN1biBDKysgKFNvbGFyaXMpCi0JdmFjcHAgVmlzdWFsIEFnZSBDKysg
KEFJWCkKLQltaW5ndyAKLQltc3ZjNiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2IHNlcnZpY2Ug
cGFjayA1LTYKLQltc3ZjNzAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMjAwMgotCW1zdmM3MSBN
aWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAyMDAzCi0JbXN2YzgwIE1pY3Jvc29mdCBWaXN1YWwgU3R1
ZGlvIDIwMDUKLQltc3ZjOTAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMjAwOAotCWxpbnV4LWdj
YyBHbnUgQysrIChsaW51eCwgYWxzbyByZXBvcnRlZCB0byB3b3JrIGZvciBNYWMgT1MgWCkKLQot
Tm90ZXM6IGlmIHlvdSBhcmUgYnVpbGRpbmcgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAy
MDA4LCB5b3UgbmVlZCB0byAKLXNldHVwIHRoZSBlbnZpcm9ubWVudCBieSBydW5uaW5nIHZjdmFy
czMyLmJhdCAoZS5nLiBNU1ZDIDIwMDggY29tbWFuZCBwcm9tcHQpCi1iZWZvcmUgcnVubmluZyBz
Y29ucy4KLQkKLUFkZGluZyBwbGF0Zm9ybSBpcyBmYWlybHkgc2ltcGxlLiBZb3UgbmVlZCB0byBj
aGFuZ2UgdGhlIFNjb25zdHJ1Y3QgZmlsZSAKLXRvIGRvIHNvLgotCQotYW5kIFRBUkdFVCBtYXkg
YmU6Ci0JY2hlY2s6IGJ1aWxkIGxpYnJhcnkgYW5kIHJ1biB1bml0IHRlc3RzLgotCi0gICAgCi0q
IFJ1bm5pbmcgdGhlIHRlc3QgbWFudWFsbHk6Ci0gID09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0KLU5vdGVzIHRoYXQgdGVzdCBjYW4gYmUgcnVuIGJ5IHNjb25zIHVzaW5nIHRoZSAnY2hlY2sn
IHRhcmdldCAoc2VlIGFib3ZlKS4KLQotWW91IG5lZWQgdG8gcnVuIHRlc3QgbWFudWFsbHkgb25s
eSBpZiB5b3UgYXJlIHRyb3VibGVzaG9vdGluZyBhbiBpc3N1ZS4KLQotSW4gdGhlIGluc3RydWN0
aW9uIGJlbG93LCByZXBsYWNlICJwYXRoIHRvIGpzb250ZXN0LmV4ZSIgd2l0aCB0aGUgcGF0aAot
b2YgdGhlICdqc29udGVzdCcgZXhlY3V0YWJsZSB0aGF0IHdhcyBjb21waWxlZCBvbiB5b3VyIHBs
YXRmb3JtLgotICAKLWNkIHRlc3QKLSMgVGhpcyB3aWxsIHJ1biB0aGUgUmVhZGVyL1dyaXRlciB0
ZXN0cwotcHl0aG9uIHJ1bmpzb250ZXN0cy5weSAicGF0aCB0byBqc29udGVzdC5leGUiCi0KLSMg
VGhpcyB3aWxsIHJ1biB0aGUgUmVhZGVyL1dyaXRlciB0ZXN0cywgdXNpbmcgSlNPTkNoZWNrZXIg
dGVzdCBzdWl0ZQotIyAoaHR0cDovL3d3dy5qc29uLm9yZy9KU09OX2NoZWNrZXIvKS4KLSMgTm90
ZXM6IG5vdCBhbGwgdGVzdHMgcGFzczogSnNvbkNwcCBpcyB0b28gbGVuaWVudCAoZm9yIGV4YW1w
bGUsCi0jIGl0IGFsbG93cyBhbiBpbnRlZ2VyIHRvIHN0YXJ0IHdpdGggJzAnKS4gVGhlIGdvYWwg
aXMgdG8gaW1wcm92ZQotIyBzdHJpY3QgbW9kZSBwYXJzaW5nIHRvIGdldCBhbGwgdGVzdHMgdG8g
cGFzcy4KLXB5dGhvbiBydW5qc29udGVzdHMucHkgLS13aXRoLWpzb24tY2hlY2tlciAicGF0aCB0
byBqc29udGVzdC5leGUiCi0KLSMgVGhpcyB3aWxsIHJ1biB0aGUgdW5pdCB0ZXN0cyAobW9zdGx5
IFZhbHVlKQotcHl0aG9uIHJ1bnVuaXR0ZXN0cy5weSAicGF0aCB0byB0ZXN0X2xpYl9qc29uLmV4
ZSIKLQotWW91IGNhbiBydW4gdGhlIHRlc3RzIHVzaW5nIHZhbGdyaW5kOgotcHl0aG9uIHJ1bnVu
aXR0ZXN0cy5weSAtLXZhbGdyaW5kICJwYXRoIHRvIHRlc3RfbGliX2pzb24uZXhlIgotCi0KLSog
QnVpbGRpbmcgdGhlIGRvY3VtZW50YXRpb246Ci0gID09PT09PT09PT09PT09PT09PT09PT09PT09
PQotCi1SdW4gdGhlIHB5dGhvbiBzY3JpcHQgZG94eWJ1aWxkLnB5IGZyb20gdGhlIHRvcCBkaXJl
Y3Rvcnk6Ci0KLXB5dGhvbiBkb3h5YnVpbGQucHkgLS1vcGVuIC0td2l0aC1kb3QKLQotU2VlIGRv
eHlidWlsZC5weSAtLWhlbHAgZm9yIG9wdGlvbnMuIAotCi1Ob3RlcyB0aGF0IHRoZSBkb2N1bWVu
dGF0aW9uIGlzIGFsc28gYXZhaWxhYmxlIGZvciBkb3dubG9hZCBhcyBhIHRhcmJhbGwuIAotVGhl
IGRvY3VtZW50YXRpb24gb2YgdGhlIGxhdGVzdCByZWxlYXNlIGlzIGF2YWlsYWJsZSBvbmxpbmUg
YXQ6Ci1odHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvCi0KLSogR2VuZXJhdGluZyBhbWFs
Z2FtYXRlZCBzb3VyY2UgYW5kIGhlYWRlcgotICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0KLUpzb25DcHAgaXMgcHJvdmlkZWQgd2l0aCBhIHNjcmlwdCB0byBnZW5l
cmF0ZSBhIHNpbmdsZSBoZWFkZXIgYW5kIGEgc2luZ2xlCi1zb3VyY2UgZmlsZSB0byBlYXNlIGlu
Y2x1c2lvbiBpbiBhbiBleGlzdGluZyBwcm9qZWN0LgotCi1UaGUgYW1hbGdhbWF0ZWQgc291cmNl
IGNhbiBiZSBnZW5lcmF0ZWQgYXQgYW55IHRpbWUgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nCi1j
b21tYW5kIGZyb20gdGhlIHRvcC1kaXJlY3RvcnkgKHJlcXVpcmVzIHB5dGhvbiAyLjYpOgotCi1w
eXRob24gYW1hbGdhbWF0ZS5weQotCi1JdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IGhlYWRlciBu
YW1lLiBTZWUgLWggb3B0aW9ucyBmb3IgZGV0YWlsLiBCeSBkZWZhdWx0LAotdGhlIGZvbGxvd2lu
ZyBmaWxlcyBhcmUgZ2VuZXJhdGVkOgotLSBkaXN0L2pzb25jcHAuY3BwOiBzb3VyY2UgZmlsZSB0
aGF0IG5lZWQgdG8gYmUgYWRkZWQgdG8geW91ciBwcm9qZWN0Ci0tIGRpc3QvanNvbi9qc29uLmg6
IGhlYWRlciBmaWxlIGNvcnJlc3BvbmRpbmcgdG8gdXNlIGluIHlvdXIgcHJvamVjdC4gSXQgaXMK
LWVxdWl2YWxlbnQgdG8gaW5jbHVkaW5nIGpzb24vanNvbi5oIGluIG5vbi1hbWFsZ2FtYXRlZCBz
b3VyY2UuIFRoaXMgaGVhZGVyCi1vbmx5IGRlcGVuZHMgb24gc3RhbmRhcmQgaGVhZGVycy4gCi0t
IGRpc3QvanNvbi9qc29uLWZvcndhcmRzLmg6IGhlYWRlciB0aGUgcHJvdmlkZXMgZm9yd2FyZCBk
ZWNsYXJhdGlvbgotb2YgYWxsIEpzb25DcHAgdHlwZXMuIFRoaXMgdHlwaWNhbGx5IHdoYXQgc2hv
dWxkIGJlIGluY2x1ZGVkIGluIGhlYWRlcnMgdG8KLXNwZWVkLXVwIGNvbXBpbGF0aW9uLgotCi1U
aGUgYW1hbGdhbWF0ZWQgc291cmNlcyBhcmUgZ2VuZXJhdGVkIGJ5IGNvbmNhdGVuYXRpbmcgSnNv
bkNwcCBzb3VyY2UgaW4gdGhlCi1jb3JyZWN0IG9yZGVyIGFuZCBkZWZpbmluZyBtYWNybyBKU09O
X0lTX0FNQUxHQU1BVElPTiB0byBwcmV2ZW50IGluY2x1c2lvbgotb2Ygb3RoZXIgaGVhZGVycy4K
LQotKiBVc2luZyBqc29uLWNwcCBpbiB5b3VyIHByb2plY3Q6Ci0gID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLQotaW5jbHVkZS8gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgY29tcGls
ZXIgaW5jbHVkZSBwYXRoLiBqc29uY3BwIGhlYWRlcnMgCi1zaG91bGQgYmUgaW5jbHVkZWQgYXMg
Zm9sbG93OgotCi0jaW5jbHVkZSA8anNvbi9qc29uLmg+Ci0gIAotCi0qIEFkZGluZyBhIHJlYWRl
ci93cml0ZXIgdGVzdDoKLSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1UbyBhZGQg
YSB0ZXN0LCB5b3UgbmVlZCB0byBjcmVhdGUgdHdvIGZpbGVzIGluIHRlc3QvZGF0YToKLS0gYSBU
RVNUTkFNRS5qc29uIGZpbGUsIHRoYXQgY29udGFpbnMgdGhlIGlucHV0IGRvY3VtZW50IGluIEpT
T04gZm9ybWF0LgotLSBhIFRFU1ROQU1FLmV4cGVjdGVkIGZpbGUsIHRoYXQgY29udGFpbnMgYSBm
bGF0ZW5lZCByZXByZXNlbnRhdGlvbiBvZiAKLSAgdGhlIGlucHV0IGRvY3VtZW50LgotICAKLVRF
U1ROQU1FLmV4cGVjdGVkIGZpbGUgZm9ybWF0OgotLSBlYWNoIGxpbmUgcmVwcmVzZW50cyBhIEpT
T04gZWxlbWVudCBvZiB0aGUgZWxlbWVudCB0cmVlIHJlcHJlc2VudGVkIAotICBieSB0aGUgaW5w
dXQgZG9jdW1lbnQuCi0tIGVhY2ggbGluZSBoYXMgdHdvIHBhcnRzOiB0aGUgcGF0aCB0byBhY2Nl
c3MgdGhlIGVsZW1lbnQgc2VwYXJhdGVkIGZyb20KLSAgdGhlIGVsZW1lbnQgdmFsdWUgYnkgJz0n
LiBBcnJheSBhbmQgb2JqZWN0IHZhbHVlcyBhcmUgYWx3YXlzIGVtcHR5IAotICAoZS5nLiByZXBy
ZXNlbnRlZCBieSBlaXRoZXIgW10gb3Ige30pLgotLSBlbGVtZW50IHBhdGg6ICcuJyByZXByZXNl
bnRlZCB0aGUgcm9vdCBlbGVtZW50LCBhbmQgaXMgdXNlZCB0byBzZXBhcmF0ZSAKLSAgb2JqZWN0
IG1lbWJlcnMuIFtOXSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHZhbHVlIG9mIGFuIGFycmF5IGVs
ZW1lbnQKLSAgYXQgaW5kZXggTi4KLVNlZSB0ZXN0X2NvbXBsZXhfMDEuanNvbiBhbmQgdGVzdF9j
b21wbGV4XzAxLmV4cGVjdGVkIHRvIGJldHRlciB1bmRlcnN0YW5kCi1lbGVtZW50IHBhdGguCi0K
LQotKiBVbmRlcnN0YW5kaW5nIHJlYWRlci93cml0ZXIgdGVzdCBvdXRwdXQ6Ci0gID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotV2hlbiBhIHRlc3QgaXMgcnVuLCBv
dXRwdXQgZmlsZXMgYXJlIGdlbmVyYXRlZCBhc2lkZSB0aGUgaW5wdXQgdGVzdCBmaWxlcy4gCi1C
ZWxvdyBpcyBhIHNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBjb250ZW50IG9mIGVhY2ggZmlsZToK
LQotLSB0ZXN0X2NvbXBsZXhfMDEuanNvbjogaW5wdXQgSlNPTiBkb2N1bWVudAotLSB0ZXN0X2Nv
bXBsZXhfMDEuZXhwZWN0ZWQ6IGZsYXR0ZW5lZCBKU09OIGVsZW1lbnQgdHJlZSB1c2VkIHRvIGNo
ZWNrIGlmIAotICAgIHBhcnNpbmcgd2FzIGNvcnJlY3RlZC4KLQotLSB0ZXN0X2NvbXBsZXhfMDEu
YWN0dWFsOiBmbGF0dGVuZWQgSlNPTiBlbGVtZW50IHRyZWUgcHJvZHVjZWQgYnkgCi0gICAganNv
bnRlc3QuZXhlIGZyb20gcmVhZGluZyB0ZXN0X2NvbXBsZXhfMDEuanNvbgotLSB0ZXN0X2NvbXBs
ZXhfMDEucmV3cml0ZTogSlNPTiBkb2N1bWVudCB3cml0dGVuIGJ5IGpzb250ZXN0LmV4ZSB1c2lu
ZyB0aGUKLSAgICBKc29uOjpWYWx1ZSBwYXJzZWQgZnJvbSB0ZXN0X2NvbXBsZXhfMDEuanNvbiBh
bmQgc2VyaWFsaXplZCB1c2luZwotICAgIEpzb246OlN0eWxlZFdyaXR0ZXIuCi0tIHRlc3RfY29t
cGxleF8wMS5hY3R1YWwtcmV3cml0ZTogZmxhdHRlbmVkIEpTT04gZWxlbWVudCB0cmVlIHByb2R1
Y2VkIGJ5IAotICAgIGpzb250ZXN0LmV4ZSBmcm9tIHJlYWRpbmcgdGVzdF9jb21wbGV4XzAxLnJl
d3JpdGUuCi10ZXN0X2NvbXBsZXhfMDEucHJvY2Vzcy1vdXRwdXQ6IGpzb250ZXN0LmV4ZSBvdXRw
dXQsIHR5cGljYWxseSB1c2VmdWwgdG8KLSAgICB1bmRlcnN0YW5kIHBhcnNpbmcgZXJyb3IuCi0K
LSogTGljZW5zZQotICA9PT09PT09Ci0gIAotU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlscy4g
QmFzaWNhbGx5IEpzb25DcHAgaXMgbGljZW5zZWQgdW5kZXIgCi1NSVQgbGljZW5zZSwgb3IgcHVi
bGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZCByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9u
LgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL1NDb25zdHJ1Y3QgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL1NDb25zdHJ1Y3QKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzMjI1Y2JiNzU5ODlhNTcwNTNkYjMwZTVjMWVkYzFl
MTJmMDZmNWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9TQ29uc3RydWN0CisrKyAvZGV2L251bGwKQEAgLTEsMjQ4ICswLDAgQEAKLSIiIgotTm90
ZXM6IAotLSBzaGFyZWQgbGlicmFyeSBzdXBwb3J0IGlzIGJ1Z2d5OiBpdCBhc3N1bWVzIHRoYXQg
YSBzdGF0aWMgYW5kIGR5bmFtaWMgbGlicmFyeSBjYW4gYmUgYnVpbGQgZnJvbSB0aGUgc2FtZSBv
YmplY3QgZmlsZXMuIFRoaXMgaXMgbm90IHRydWUgb24gbWFueSBwbGF0Zm9ybXMuIEZvciB0aGlz
IHJlYXNvbiBpdCBpcyBvbmx5IGVuYWJsZWQgb24gbGludXgtZ2NjIGF0IHRoZSBjdXJyZW50IHRp
bWUuCi0KLVRvIGFkZCBhIHBsYXRmb3JtOgotLSBhZGQgaXRzIG5hbWUgaW4gb3B0aW9ucyBhbGxv
d2VkX3ZhbHVlcyBiZWxvdwotLSBhZGQgdG9vbCBpbml0aWFsaXphdGlvbiBmb3IgdGhpcyBwbGF0
Zm9ybS4gU2VhcmNoIGZvciAiaWYgcGxhdGZvcm0gPT0gJ3N1bmNjJyIgYXMgYW4gZXhhbXBsZS4K
LSIiIgotCi1pbXBvcnQgb3MKLWltcG9ydCBvcy5wYXRoCi1pbXBvcnQgc3lzCi0KLUpTT05DUFBf
VkVSU0lPTiA9IG9wZW4oRmlsZSgnI3ZlcnNpb24nKS5hYnNwYXRoLCdydCcpLnJlYWQoKS5zdHJp
cCgpCi1ESVNUX0RJUiA9ICcjZGlzdCcKLQotb3B0aW9ucyA9IFZhcmlhYmxlcygpCi1vcHRpb25z
LkFkZCggRW51bVZhcmlhYmxlKCdwbGF0Zm9ybScsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
UGxhdGZvcm0gKGNvbXBpbGVyL3N0bCkgdXNlZCB0byBidWlsZCB0aGUgcHJvamVjdCcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnbXN2YzcxJywKLSAgICAgICAgICAgICAgICAgICAgICAgIGFs
bG93ZWRfdmFsdWVzPSdzdW5jYyB2YWNwcCBtaW5ndyBtc3ZjNiBtc3ZjNyBtc3ZjNzEgbXN2Yzgw
IG1zdmM5MCBsaW51eC1nY2MnLnNwbGl0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICBpZ25v
cmVjYXNlPTIpICkKLQotdHJ5OgotICAgIHBsYXRmb3JtID0gQVJHVU1FTlRTWydwbGF0Zm9ybSdd
Ci0gICAgaWYgcGxhdGZvcm0gPT0gJ2xpbnV4LWdjYyc6Ci0gICAgICAgIENYWCA9ICdnKysnICMg
bm90IHF1aXRlIHJpZ2h0LCBidXQgZW52IGlzIG5vdCB5ZXQgYXZhaWxhYmxlLgotICAgICAgICBp
bXBvcnQgY29tbWFuZHMKLSAgICAgICAgdmVyc2lvbiA9IGNvbW1hbmRzLmdldG91dHB1dCgnJXMg
LWR1bXB2ZXJzaW9uJyAlQ1hYKQotICAgICAgICBwbGF0Zm9ybSA9ICdsaW51eC1nY2MtJXMnICV2
ZXJzaW9uCi0gICAgICAgIHByaW50ICJVc2luZyBwbGF0Zm9ybSAnJXMnIiAlcGxhdGZvcm0KLSAg
ICAgICAgTERfTElCUkFSWV9QQVRIID0gb3MuZW52aXJvbi5nZXQoJ0xEX0xJQlJBUllfUEFUSCcs
ICcnKQotICAgICAgICBMRF9MSUJSQVJZX1BBVEggPSAiJXM6bGlicy8lcyIgJShMRF9MSUJSQVJZ
X1BBVEgsIHBsYXRmb3JtKQotICAgICAgICBvcy5lbnZpcm9uWydMRF9MSUJSQVJZX1BBVEgnXSA9
IExEX0xJQlJBUllfUEFUSAotICAgICAgICBwcmludCAiTERfTElCUkFSWV9QQVRIID0iLCBMRF9M
SUJSQVJZX1BBVEgKLWV4Y2VwdCBLZXlFcnJvcjoKLSAgICBwcmludCAnWW91IG11c3Qgc3BlY2lm
eSBhICJwbGF0Zm9ybSInCi0gICAgc3lzLmV4aXQoMikKLQotcHJpbnQgIkJ1aWxkaW5nIHVzaW5n
IFBMQVRGT1JNID0iLCBwbGF0Zm9ybQotCi1yb290YnVpbGRfZGlyID0gRGlyKCcjYnVpbGRzY29u
cycpCi1idWlsZF9kaXIgPSBvcy5wYXRoLmpvaW4oICcjYnVpbGRzY29ucycsIHBsYXRmb3JtICkK
LWJpbl9kaXIgPSBvcy5wYXRoLmpvaW4oICcjYmluJywgcGxhdGZvcm0gKQotbGliX2RpciA9IG9z
LnBhdGguam9pbiggJyNsaWJzJywgcGxhdGZvcm0gKQotc2NvbnNpZ25fZGlyX3BhdGggPSBEaXIo
YnVpbGRfZGlyKS5hYnNwYXRoCi1zY29uc2lnbl9wYXRoID0gb3MucGF0aC5qb2luKCBzY29uc2ln
bl9kaXJfcGF0aCwgJy5zY29uc2lnbi5kYm0nICkKLQotIyBFbnN1cmUgYnVpbGQgZGlyZWN0b3J5
IGV4aXN0IChTQ29uc2lnbkZpbGUgZmFpbCBvdGhlcndpc2UhKQotaWYgbm90IG9zLnBhdGguZXhp
c3RzKCBzY29uc2lnbl9kaXJfcGF0aCApOgotICAgIG9zLm1ha2VkaXJzKCBzY29uc2lnbl9kaXJf
cGF0aCApCi0KLSMgU3RvcmUgYWxsIGRlcGVuZGVuY2llcyBzaWduYXR1cmUgaW4gYSBkYXRhYmFz
ZQotU0NvbnNpZ25GaWxlKCBzY29uc2lnbl9wYXRoICkKLQotZGVmIG1ha2VfZW52aXJvbl92YXJz
KCk6Ci0JIiIiUmV0dXJucyBhIGRpY3Rpb25uYXJ5IHdpdGggZW52aXJvbm1lbnQgdmFyaWFibGUg
dG8gdXNlIHdoZW4gY29tcGlsaW5nLiIiIgotCSMgUEFUSCBpcyByZXF1aXJlZCB0byBmaW5kIHRo
ZSBjb21waWxlcgotCSMgVEVNUCBpcyByZXF1aXJlZCBmb3IgYXQgbGVhc3QgbWluZ3cKLSAgICAj
IExEX0xJQlJBUllfUEFUSCAmIGNvIGlzIHJlcXVpcmVkIG9uIHNvbWUgc3lzdGVtIGZvciB0aGUg
Y29tcGlsZXIKLQl2YXJzID0ge30KLQlmb3IgbmFtZSBpbiAoJ1BBVEgnLCAnVEVNUCcsICdUTVAn
LCAnTERfTElCUkFSWV9QQVRIJywgJ0xJQlJBUllfUEFUSCcpOgotCQlpZiBuYW1lIGluIG9zLmVu
dmlyb246Ci0JCQl2YXJzW25hbWVdID0gb3MuZW52aXJvbltuYW1lXQotCXJldHVybiB2YXJzCi0J
Ci0KLWVudiA9IEVudmlyb25tZW50KCBFTlYgPSBtYWtlX2Vudmlyb25fdmFycygpLAotICAgICAg
ICAgICAgICAgICAgIHRvb2xwYXRoID0gWydzY29ucy10b29scyddLAotICAgICAgICAgICAgICAg
ICAgIHRvb2xzPVtdICkgIywgdG9vbHM9WydkZWZhdWx0J10gKQotCi1pZiBwbGF0Zm9ybSA9PSAn
c3VuY2MnOgotICAgIGVudi5Ub29sKCAnc3VuYysrJyApCi0gICAgZW52LlRvb2woICdzdW5saW5r
JyApCi0gICAgZW52LlRvb2woICdzdW5hcicgKQotICAgIGVudi5BcHBlbmQoIENDRkxBR1MgPSBb
Jy1tdCddICkKLWVsaWYgcGxhdGZvcm0gPT0gJ3ZhY3BwJzoKLSAgICBlbnYuVG9vbCggJ2RlZmF1
bHQnICkKLSAgICBlbnYuVG9vbCggJ2FpeGNjJyApCi0gICAgZW52WydDWFgnXSA9ICd4bENfcicg
ICAjc2NvbnMgZG9lcyBub3QgcGljay11cCB0aGUgY29ycmVjdCBvbmUgIQotICAgICMgdXNpbmcg
eGxDX3IgZW5zdXJlIG11bHRpLXRocmVhZGluZyBpcyBlbmFibGVkOgotICAgICMgaHR0cDovL3B1
YmxpYi5ib3VsZGVyLmlibS5jb20vaW5mb2NlbnRlci9wc2VyaWVzL2luZGV4LmpzcD90b3BpYz0v
Y29tLmlibS52YWNwcDdhLmRvYy9jb21waWxlci9yZWYvY3VzZWxlY3QuaHRtCi0gICAgZW52LkFw
cGVuZCggQ0NGTEFHUyA9ICctcXJ0dGk9YWxsJywKLSAgICAgICAgICAgICAgICBMSU5LRkxBR1M9
Jy1iaDo1JyApICAjIC1iaDo1IHJlbW92ZSBkdXBsaWNhdGUgc3ltYm9sIHdhcm5pbmcKLWVsaWYg
cGxhdGZvcm0gPT0gJ21zdmM2JzoKLSAgICBlbnZbJ01TVlNfVkVSU0lPTiddPSc2LjAnCi0gICAg
Zm9yIHRvb2wgaW4gWydtc3ZjJywgJ21zdnMnLCAnbXNsaW5rJywgJ21hc20nLCAnbXNsaWInXToK
LSAgICAgICAgZW52LlRvb2woIHRvb2wgKQotICAgIGVudlsnQ1hYRkxBR1MnXT0nLUdSIC1HWCAv
bm9sb2dvIC9NVCcKLWVsaWYgcGxhdGZvcm0gPT0gJ21zdmM3MCc6Ci0gICAgZW52WydNU1ZTX1ZF
UlNJT04nXT0nNy4wJwotICAgIGZvciB0b29sIGluIFsnbXN2YycsICdtc3ZzJywgJ21zbGluaycs
ICdtYXNtJywgJ21zbGliJ106Ci0gICAgICAgIGVudi5Ub29sKCB0b29sICkKLSAgICBlbnZbJ0NY
WEZMQUdTJ109Jy1HUiAtR1ggL25vbG9nbyAvTVQnCi1lbGlmIHBsYXRmb3JtID09ICdtc3ZjNzEn
OgotICAgIGVudlsnTVNWU19WRVJTSU9OJ109JzcuMScKLSAgICBmb3IgdG9vbCBpbiBbJ21zdmMn
LCAnbXN2cycsICdtc2xpbmsnLCAnbWFzbScsICdtc2xpYiddOgotICAgICAgICBlbnYuVG9vbCgg
dG9vbCApCi0gICAgZW52WydDWFhGTEFHUyddPSctR1IgLUdYIC9ub2xvZ28gL01UJwotZWxpZiBw
bGF0Zm9ybSA9PSAnbXN2YzgwJzoKLSAgICBlbnZbJ01TVlNfVkVSU0lPTiddPSc4LjAnCi0gICAg
Zm9yIHRvb2wgaW4gWydtc3ZjJywgJ21zdnMnLCAnbXNsaW5rJywgJ21hc20nLCAnbXNsaWInXToK
LSAgICAgICAgZW52LlRvb2woIHRvb2wgKQotICAgIGVudlsnQ1hYRkxBR1MnXT0nLUdSIC1FSHNj
IC9ub2xvZ28gL01UJwotZWxpZiBwbGF0Zm9ybSA9PSAnbXN2YzkwJzoKLSAgICBlbnZbJ01TVlNf
VkVSU0lPTiddPSc5LjAnCi0gICAgIyBTY29ucyAxLjIgZmFpbHMgdG8gZGV0ZWN0IHRoZSBjb3Jy
ZWN0IGxvY2F0aW9uIG9mIHRoZSBwbGF0Zm9ybSBTREsuCi0gICAgIyBTbyB3ZSBwcm9wYWdhdGUg
dGhvc2UgZnJvbSB0aGUgZW52aXJvbm1lbnQuIFRoaXMgcmVxdWlyZXMgdGhhdCB0aGUKLSAgICAj
IHVzZXIgcnVuIHZjdmFyczMyLmJhdCBiZWZvcmUgY29tcGlsaW5nLgotICAgIGlmICdJTkNMVURF
JyBpbiBvcy5lbnZpcm9uOgotICAgICAgICBlbnZbJ0VOViddWydJTkNMVURFJ10gPSBvcy5lbnZp
cm9uWydJTkNMVURFJ10KLSAgICBpZiAnTElCJyBpbiBvcy5lbnZpcm9uOgotICAgICAgICBlbnZb
J0VOViddWydMSUInXSA9IG9zLmVudmlyb25bJ0xJQiddCi0gICAgZm9yIHRvb2wgaW4gWydtc3Zj
JywgJ21zdnMnLCAnbXNsaW5rJywgJ21hc20nLCAnbXNsaWInXToKLSAgICAgICAgZW52LlRvb2wo
IHRvb2wgKQotICAgIGVudlsnQ1hYRkxBR1MnXT0nLUdSIC1FSHNjIC9ub2xvZ28gL01UJwotZWxp
ZiBwbGF0Zm9ybSA9PSAnbWluZ3cnOgotICAgIGVudi5Ub29sKCAnbWluZ3cnICkKLSAgICBlbnYu
QXBwZW5kKCBDUFBERUZJTkVTPVsgIldJTjMyIiwgIk5ERUJVRyIsICJfTVQiIF0gKQotZWxpZiBw
bGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eC1nY2MnKToKLSAgICBlbnYuVG9vbCggJ2RlZmF1bHQn
ICkKLSAgICBlbnYuQXBwZW5kKCBMSUJTID0gWydwdGhyZWFkJ10sIENDRkxBR1MgPSAiLVdhbGwi
ICkKLSAgICBlbnZbJ1NIQVJFRF9MSUJfRU5BQkxFRCddID0gVHJ1ZQotZWxzZToKLSAgICBwcmlu
dCAiVU5TVVBQT1JURUQgUExBVEZPUk0uIgotICAgIGVudi5FeGl0KDEpCi0KLWVudi5Ub29sKCd0
YXJneicpCi1lbnYuVG9vbCgnc3JjZGlzdCcpCi1lbnYuVG9vbCgnZ2xvYnRvb2wnKQotCi1lbnYu
QXBwZW5kKCBDUFBQQVRIID0gWycjaW5jbHVkZSddLAotICAgICAgICAgICAgTElCUEFUSCA9IGxp
Yl9kaXIgKQotc2hvcnRfcGxhdGZvcm0gPSBwbGF0Zm9ybQotaWYgc2hvcnRfcGxhdGZvcm0uc3Rh
cnRzd2l0aCgnbXN2YycpOgotICAgIHNob3J0X3BsYXRmb3JtID0gc2hvcnRfcGxhdGZvcm1bMjpd
Ci0jIE5vdGVzOiBvbiBXaW5kb3dzIHlvdSBuZWVkIHRvIHJlYnVpbGQgdGhlIHNvdXJjZSBmb3Ig
ZWFjaCB2YXJpYW50Ci0jIEJ1aWxkIHNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHRoYXQgeWV0IHNv
IHdlIG9ubHkgYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KLSMgVGhpcyBhbHNvIGZhaWxzIG9uIEFJ
WCBiZWNhdXNlIGJvdGggZHluYW1pYyBhbmQgc3RhdGljIGxpYnJhcnkgZW5kcyB3aXRoCi0jIGV4
dGVuc2lvbiAuYS4KLWVudlsnU0hBUkVEX0xJQl9FTkFCTEVEJ10gPSBlbnYuZ2V0KCdTSEFSRURf
TElCX0VOQUJMRUQnLCBGYWxzZSkKLWVudlsnTElCX1BMQVRGT1JNJ10gPSBzaG9ydF9wbGF0Zm9y
bQotZW52WydMSUJfTElOS19UWVBFJ10gPSAnbGliJyAgICAjIHN0YXRpYwotZW52WydMSUJfQ1JV
TlRJTUUnXSA9ICdtdCcKLWVudlsnTElCX05BTUVfU1VGRklYJ10gPSAnJHtMSUJfUExBVEZPUk19
XyR7TElCX0xJTktfVFlQRX0ke0xJQl9DUlVOVElNRX0nICAjIG11c3QgbWF0Y2ggYXV0b2xpbmsg
bmFtaW5nIGNvbnZlbnRpb24KLWVudlsnSlNPTkNQUF9WRVJTSU9OJ10gPSBKU09OQ1BQX1ZFUlNJ
T04KLWVudlsnQlVJTERfRElSJ10gPSBlbnYuRGlyKGJ1aWxkX2RpcikKLWVudlsnUk9PVEJVSUxE
X0RJUiddID0gZW52LkRpcihyb290YnVpbGRfZGlyKQotZW52WydESVNUX0RJUiddID0gRElTVF9E
SVIKLWlmICdUYXJHeicgaW4gZW52WydCVUlMREVSUyddOgotCWNsYXNzIFNyY0Rpc3RBZGRlcjoK
LQkJZGVmIF9faW5pdF9fKCBzZWxmLCBlbnYgKToKLQkJCXNlbGYuZW52ID0gZW52Ci0JCWRlZiBf
X2NhbGxfXyggc2VsZiwgKmFyZ3MsICoqa3cgKToKLQkJCWFwcGx5KCBzZWxmLmVudi5TcmNEaXN0
LCAoc2VsZi5lbnZbJ1NSQ0RJU1RfVEFSR0VUJ10sKSArIGFyZ3MsIGt3ICkKLQllbnZbJ1NSQ0RJ
U1RfQlVJTERFUiddID0gZW52LlRhckd6Ci1lbHNlOiAjIElmIHRhcmZpbGUgbW9kdWxlIGlzIG1p
c3NpbmcKLQljbGFzcyBTcmNEaXN0QWRkZXI6Ci0JCWRlZiBfX2luaXRfXyggc2VsZiwgZW52ICk6
Ci0JCQlwYXNzCi0JCWRlZiBfX2NhbGxfXyggc2VsZiwgKmFyZ3MsICoqa3cgKToKLQkJCXBhc3MK
LWVudlsnU1JDRElTVF9BREQnXSA9IFNyY0Rpc3RBZGRlciggZW52ICkKLWVudlsnU1JDRElTVF9U
QVJHRVQnXSA9IG9zLnBhdGguam9pbiggRElTVF9ESVIsICdqc29uY3BwLXNyYy0lcy50YXIuZ3on
ICUgZW52WydKU09OQ1BQX1ZFUlNJT04nXSApCi0gICAgICAgICAgICAgICAgICAgICAgCi1lbnZf
dGVzdGluZyA9IGVudi5DbG9uZSggKQotZW52X3Rlc3RpbmcuQXBwZW5kKCBMSUJTID0gWydqc29u
XyR7TElCX05BTUVfU1VGRklYfSddICkKLQotZGVmIGJ1aWxkSlNPTkV4YW1wbGUoIGVudiwgdGFy
Z2V0X3NvdXJjZXMsIHRhcmdldF9uYW1lICk6Ci0gICAgZW52ID0gZW52LkNsb25lKCkKLSAgICBl
bnYuQXBwZW5kKCBDUFBQQVRIID0gWycjJ10gKQotICAgIGV4ZSA9IGVudi5Qcm9ncmFtKCB0YXJn
ZXQ9dGFyZ2V0X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT10YXJnZXRfc291
cmNlcyApCi0gICAgZW52WydTUkNESVNUX0FERCddKCBzb3VyY2U9W3RhcmdldF9zb3VyY2VzXSAp
Ci0gICAgZ2xvYmFsIGJpbl9kaXIKLSAgICByZXR1cm4gZW52Lkluc3RhbGwoIGJpbl9kaXIsIGV4
ZSApCi0KLWRlZiBidWlsZEpTT05UZXN0cyggZW52LCB0YXJnZXRfc291cmNlcywgdGFyZ2V0X25h
bWUgKToKLSAgICBqc29udGVzdHNfbm9kZSA9IGJ1aWxkSlNPTkV4YW1wbGUoIGVudiwgdGFyZ2V0
X3NvdXJjZXMsIHRhcmdldF9uYW1lICkKLSAgICBjaGVja19hbGlhc190YXJnZXQgPSBlbnYuQWxp
YXMoICdjaGVjaycsIGpzb250ZXN0c19ub2RlLCBSdW5KU09OVGVzdHMoIGpzb250ZXN0c19ub2Rl
LCBqc29udGVzdHNfbm9kZSApICkKLSAgICBlbnYuQWx3YXlzQnVpbGQoIGNoZWNrX2FsaWFzX3Rh
cmdldCApCi0KLWRlZiBidWlsZFVuaXRUZXN0cyggZW52LCB0YXJnZXRfc291cmNlcywgdGFyZ2V0
X25hbWUgKToKLSAgICBqc29udGVzdHNfbm9kZSA9IGJ1aWxkSlNPTkV4YW1wbGUoIGVudiwgdGFy
Z2V0X3NvdXJjZXMsIHRhcmdldF9uYW1lICkKLSAgICBjaGVja19hbGlhc190YXJnZXQgPSBlbnYu
QWxpYXMoICdjaGVjaycsIGpzb250ZXN0c19ub2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJ1blVuaXRUZXN0cygganNvbnRlc3RzX25vZGUsIGpzb250ZXN0c19ub2Rl
ICkgKQotICAgIGVudi5BbHdheXNCdWlsZCggY2hlY2tfYWxpYXNfdGFyZ2V0ICkKLQotZGVmIGJ1
aWxkTGlicmFyeSggZW52LCB0YXJnZXRfc291cmNlcywgdGFyZ2V0X25hbWUgKToKLSAgICBzdGF0
aWNfbGliID0gZW52LlN0YXRpY0xpYnJhcnkoIHRhcmdldD10YXJnZXRfbmFtZSArICdfJHtMSUJf
TkFNRV9TVUZGSVh9JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZT10YXJnZXRfc291cmNlcyApCi0gICAgZ2xvYmFsIGxpYl9kaXIKLSAgICBlbnYuSW5zdGFsbCgg
bGliX2Rpciwgc3RhdGljX2xpYiApCi0gICAgaWYgZW52WydTSEFSRURfTElCX0VOQUJMRUQnXToK
LSAgICAgICAgc2hhcmVkX2xpYiA9IGVudi5TaGFyZWRMaWJyYXJ5KCB0YXJnZXQ9dGFyZ2V0X25h
bWUgKyAnXyR7TElCX05BTUVfU1VGRklYfScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc291cmNlPXRhcmdldF9zb3VyY2VzICkKLSAgICAgICAgZW52Lkluc3RhbGwo
IGxpYl9kaXIsIHNoYXJlZF9saWIgKQotICAgIGVudlsnU1JDRElTVF9BREQnXSggc291cmNlPVt0
YXJnZXRfc291cmNlc10gKQotCi1FeHBvcnQoICdlbnYgZW52X3Rlc3RpbmcgYnVpbGRKU09ORXhh
bXBsZSBidWlsZExpYnJhcnkgYnVpbGRKU09OVGVzdHMgYnVpbGRVbml0VGVzdHMnICkKLQotZGVm
IGJ1aWxkUHJvamVjdEluRGlyZWN0b3J5KCB0YXJnZXRfZGlyZWN0b3J5ICk6Ci0gICAgZ2xvYmFs
IGJ1aWxkX2RpcgotICAgIHRhcmdldF9idWlsZF9kaXIgPSBvcy5wYXRoLmpvaW4oIGJ1aWxkX2Rp
ciwgdGFyZ2V0X2RpcmVjdG9yeSApCi0gICAgdGFyZ2V0ID0gb3MucGF0aC5qb2luKCB0YXJnZXRf
ZGlyZWN0b3J5LCAnc2NvbnNjcmlwdCcgKQotICAgIFNDb25zY3JpcHQoIHRhcmdldCwgYnVpbGRf
ZGlyPXRhcmdldF9idWlsZF9kaXIsIGR1cGxpY2F0ZT0wICkKLSAgICBlbnZbJ1NSQ0RJU1RfQURE
J10oIHNvdXJjZT1bdGFyZ2V0XSApCi0KLQotZGVmIHJ1bkpTT05UZXN0c19hY3Rpb24oIHRhcmdl
dCwgc291cmNlID0gTm9uZSwgZW52ID0gTm9uZSApOgotICAgICMgQWRkIHRlc3Qgc2NyaXB0cyB0
byBweXRob24gcGF0aAotICAgIGpzb250ZXN0X3BhdGggPSBEaXIoICcjdGVzdCcgKS5hYnNwYXRo
Ci0gICAgc3lzLnBhdGguaW5zZXJ0KCAwLCBqc29udGVzdF9wYXRoICkKLSAgICBkYXRhX3BhdGgg
PSBvcy5wYXRoLmpvaW4oIGpzb250ZXN0X3BhdGgsICdkYXRhJyApCi0gICAgaW1wb3J0IHJ1bmpz
b250ZXN0cwotICAgIHJldHVybiBydW5qc29udGVzdHMucnVuQWxsVGVzdHMoIG9zLnBhdGguYWJz
cGF0aChzb3VyY2VbMF0ucGF0aCksIGRhdGFfcGF0aCApCi0KLWRlZiBydW5KU09OVGVzdHNfc3Ry
aW5nKCB0YXJnZXQsIHNvdXJjZSA9IE5vbmUsIGVudiA9IE5vbmUgKToKLSAgICByZXR1cm4gJ1J1
bkpTT05UZXN0cygiJXMiKScgJSBzb3VyY2VbMF0KLQotaW1wb3J0IFNDb25zLkFjdGlvbgotQWN0
aW9uRmFjdG9yeSA9IFNDb25zLkFjdGlvbi5BY3Rpb25GYWN0b3J5Ci1SdW5KU09OVGVzdHMgPSBB
Y3Rpb25GYWN0b3J5KHJ1bkpTT05UZXN0c19hY3Rpb24sIHJ1bkpTT05UZXN0c19zdHJpbmcgKQot
Ci1kZWYgcnVuVW5pdFRlc3RzX2FjdGlvbiggdGFyZ2V0LCBzb3VyY2UgPSBOb25lLCBlbnYgPSBO
b25lICk6Ci0gICAgIyBBZGQgdGVzdCBzY3JpcHRzIHRvIHB5dGhvbiBwYXRoCi0gICAganNvbnRl
c3RfcGF0aCA9IERpciggJyN0ZXN0JyApLmFic3BhdGgKLSAgICBzeXMucGF0aC5pbnNlcnQoIDAs
IGpzb250ZXN0X3BhdGggKQotICAgIGltcG9ydCBydW51bml0dGVzdHMKLSAgICByZXR1cm4gcnVu
dW5pdHRlc3RzLnJ1bkFsbFRlc3RzKCBvcy5wYXRoLmFic3BhdGgoc291cmNlWzBdLnBhdGgpICkK
LQotZGVmIHJ1blVuaXRUZXN0c19zdHJpbmcoIHRhcmdldCwgc291cmNlID0gTm9uZSwgZW52ID0g
Tm9uZSApOgotICAgIHJldHVybiAnUnVuVW5pdFRlc3RzKCIlcyIpJyAlIHNvdXJjZVswXQotCi1S
dW5Vbml0VGVzdHMgPSBBY3Rpb25GYWN0b3J5KHJ1blVuaXRUZXN0c19hY3Rpb24sIHJ1blVuaXRU
ZXN0c19zdHJpbmcgKQotCi1lbnYuQWxpYXMoICdjaGVjaycgKQotCi1zcmNkaXN0X2NtZCA9IGVu
dlsnU1JDRElTVF9BREQnXSggc291cmNlID0gIiIiCi0gICAgQVVUSE9SUyBSRUFETUUudHh0IFND
b25zdHJ1Y3QKLSAgICAiIiIuc3BsaXQoKSApCi1lbnYuQWxpYXMoICdzcmMtZGlzdCcsIHNyY2Rp
c3RfY21kICkKLQotYnVpbGRQcm9qZWN0SW5EaXJlY3RvcnkoICdzcmMvanNvbnRlc3RydW5uZXIn
ICkKLWJ1aWxkUHJvamVjdEluRGlyZWN0b3J5KCAnc3JjL2xpYl9qc29uJyApCi1idWlsZFByb2pl
Y3RJbkRpcmVjdG9yeSggJ3NyYy90ZXN0X2xpYl9qc29uJyApCi0jcHJpbnQgZW52LkR1bXAoKQot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL2FtYWxnYW1hdGUucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2FtYWxnYW1hdGUucHkKaW5k
ZXggZWFiNzI0ZmUxZDhiYTU4ZDljM2I2ZjdhZTA2MThmMjQ4ZTg0ZjcwZS4uYzEyMjE1YThiMmI2
NTEzZWE3NjkxNWYzYjQxODlkNmIyOGRhZTRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9hbWFsZ2FtYXRl
LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvYW1hbGdhbWF0ZS5weQpAQCAtMSwxNDggKzEsMTU1IEBACi0iIiJBbWFs
Z2F0ZSBqc29uLWNwcCBsaWJyYXJ5IHNvdXJjZXMgaW50byBhIHNpbmdsZSBzb3VyY2UgYW5kIGhl
YWRlciBmaWxlLgorIiIiQW1hbGdhbWF0ZSBqc29uLWNwcCBsaWJyYXJ5IHNvdXJjZXMgaW50byBh
IHNpbmdsZSBzb3VyY2UgYW5kIGhlYWRlciBmaWxlLgogCi1SZXF1aXJlcyBQeXRob24gMi42CitX
b3JrcyB3aXRoIHB5dGhvbjIuNisgYW5kIHB5dGhvbjMuNCsuCiAKIEV4YW1wbGUgb2YgaW52b2Nh
dGlvbiAobXVzdCBiZSBpbnZva2VkIGZyb20ganNvbi1jcHAgdG9wIGRpcmVjdG9yeSk6Ci1weXRo
b24gYW1hbGdhdGUucHkKK3B5dGhvbiBhbWFsZ2FtYXRlLnB5CiAiIiIKIGltcG9ydCBvcwogaW1w
b3J0IG9zLnBhdGgKIGltcG9ydCBzeXMKIAogY2xhc3MgQW1hbGdhbWF0aW9uRmlsZToKLSAgICBk
ZWYgX19pbml0X18oIHNlbGYsIHRvcF9kaXIgKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdG9w
X2Rpcik6CiAgICAgICAgIHNlbGYudG9wX2RpciA9IHRvcF9kaXIKICAgICAgICAgc2VsZi5ibG9j
a3MgPSBbXQogCi0gICAgZGVmIGFkZF90ZXh0KCBzZWxmLCB0ZXh0ICk6Ci0gICAgICAgIGlmIG5v
dCB0ZXh0LmVuZHN3aXRoKCAnXG4nICk6Ci0gICAgICAgICAgICB0ZXh0ICs9ICdcbicKLSAgICAg
ICAgc2VsZi5ibG9ja3MuYXBwZW5kKCB0ZXh0ICkKLQotICAgIGRlZiBhZGRfZmlsZSggc2VsZiwg
cmVsYXRpdmVfaW5wdXRfcGF0aCwgd3JhcF9pbl9jb21tZW50PUZhbHNlICk6Ci0gICAgICAgIGRl
ZiBhZGRfbWFya2VyKCBwcmVmaXggKToKLSAgICAgICAgICAgIHNlbGYuYWRkX3RleHQoICcnICkK
LSAgICAgICAgICAgIHNlbGYuYWRkX3RleHQoICcvLyAnICsgJy8nKjcwICkKLSAgICAgICAgICAg
IHNlbGYuYWRkX3RleHQoICcvLyAlcyBvZiBjb250ZW50IG9mIGZpbGU6ICVzJyAlIChwcmVmaXgs
IHJlbGF0aXZlX2lucHV0X3BhdGgucmVwbGFjZSgnXFwnLCcvJykpICkKLSAgICAgICAgICAgIHNl
bGYuYWRkX3RleHQoICcvLyAnICsgJy8nKjcwICkKLSAgICAgICAgICAgIHNlbGYuYWRkX3RleHQo
ICcnICkKLSAgICAgICAgYWRkX21hcmtlciggJ0JlZ2lubmluZycgKQotICAgICAgICBmID0gb3Bl
biggb3MucGF0aC5qb2luKCBzZWxmLnRvcF9kaXIsIHJlbGF0aXZlX2lucHV0X3BhdGggKSwgJ3J0
JyApCisgICAgZGVmIGFkZF90ZXh0KHNlbGYsIHRleHQpOgorICAgICAgICBpZiBub3QgdGV4dC5l
bmRzd2l0aCgiXG4iKToKKyAgICAgICAgICAgIHRleHQgKz0gIlxuIgorICAgICAgICBzZWxmLmJs
b2Nrcy5hcHBlbmQodGV4dCkKKworICAgIGRlZiBhZGRfZmlsZShzZWxmLCByZWxhdGl2ZV9pbnB1
dF9wYXRoLCB3cmFwX2luX2NvbW1lbnQ9RmFsc2UpOgorICAgICAgICBkZWYgYWRkX21hcmtlcihw
cmVmaXgpOgorICAgICAgICAgICAgc2VsZi5hZGRfdGV4dCgiIikKKyAgICAgICAgICAgIHNlbGYu
YWRkX3RleHQoIi8vICIgKyAiLyIqNzApCisgICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCIvLyAl
cyBvZiBjb250ZW50IG9mIGZpbGU6ICVzIiAlIChwcmVmaXgsIHJlbGF0aXZlX2lucHV0X3BhdGgu
cmVwbGFjZSgiXFwiLCIvIikpKQorICAgICAgICAgICAgc2VsZi5hZGRfdGV4dCgiLy8gIiArICIv
Iio3MCkKKyAgICAgICAgICAgIHNlbGYuYWRkX3RleHQoIiIpCisgICAgICAgIGFkZF9tYXJrZXIo
IkJlZ2lubmluZyIpCisgICAgICAgIGYgPSBvcGVuKG9zLnBhdGguam9pbihzZWxmLnRvcF9kaXIs
IHJlbGF0aXZlX2lucHV0X3BhdGgpLCAicnQiKQogICAgICAgICBjb250ZW50ID0gZi5yZWFkKCkK
ICAgICAgICAgaWYgd3JhcF9pbl9jb21tZW50OgotICAgICAgICAgICAgY29udGVudCA9ICcvKlxu
JyArIGNvbnRlbnQgKyAnXG4qLycKLSAgICAgICAgc2VsZi5hZGRfdGV4dCggY29udGVudCApCisg
ICAgICAgICAgICBjb250ZW50ID0gIi8qXG4iICsgY29udGVudCArICJcbiovIgorICAgICAgICBz
ZWxmLmFkZF90ZXh0KGNvbnRlbnQpCiAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICBhZGRfbWFy
a2VyKCAnRW5kJyApCi0gICAgICAgIHNlbGYuYWRkX3RleHQoICdcblxuXG5cbicgKQotCi0gICAg
ZGVmIGdldF92YWx1ZSggc2VsZiApOgotICAgICAgICByZXR1cm4gJycuam9pbiggc2VsZi5ibG9j
a3MgKS5yZXBsYWNlKCdcclxuJywnXG4nKQotCi0gICAgZGVmIHdyaXRlX3RvKCBzZWxmLCBvdXRw
dXRfcGF0aCApOgotICAgICAgICBvdXRwdXRfZGlyID0gb3MucGF0aC5kaXJuYW1lKCBvdXRwdXRf
cGF0aCApCi0gICAgICAgIGlmIG91dHB1dF9kaXIgYW5kIG5vdCBvcy5wYXRoLmlzZGlyKCBvdXRw
dXRfZGlyICk6Ci0gICAgICAgICAgICBvcy5tYWtlZGlycyggb3V0cHV0X2RpciApCi0gICAgICAg
IGYgPSBvcGVuKCBvdXRwdXRfcGF0aCwgJ3diJyApCi0gICAgICAgIGYud3JpdGUoIHNlbGYuZ2V0
X3ZhbHVlKCkgKQorICAgICAgICBhZGRfbWFya2VyKCJFbmQiKQorICAgICAgICBzZWxmLmFkZF90
ZXh0KCJcblxuXG5cbiIpCisKKyAgICBkZWYgZ2V0X3ZhbHVlKHNlbGYpOgorICAgICAgICByZXR1
cm4gIiIuam9pbihzZWxmLmJsb2NrcykucmVwbGFjZSgiXHJcbiIsIlxuIikKKworICAgIGRlZiB3
cml0ZV90byhzZWxmLCBvdXRwdXRfcGF0aCk6CisgICAgICAgIG91dHB1dF9kaXIgPSBvcy5wYXRo
LmRpcm5hbWUob3V0cHV0X3BhdGgpCisgICAgICAgIGlmIG91dHB1dF9kaXIgYW5kIG5vdCBvcy5w
YXRoLmlzZGlyKG91dHB1dF9kaXIpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMob3V0cHV0X2Rp
cikKKyAgICAgICAgZiA9IG9wZW4ob3V0cHV0X3BhdGgsICJ3YiIpCisgICAgICAgIGYud3JpdGUo
c3RyLmVuY29kZShzZWxmLmdldF92YWx1ZSgpLCAnVVRGLTgnKSkKICAgICAgICAgZi5jbG9zZSgp
CiAKLWRlZiBhbWFsZ2FtYXRlX3NvdXJjZSggc291cmNlX3RvcF9kaXI9Tm9uZSwKK2RlZiBhbWFs
Z2FtYXRlX3NvdXJjZShzb3VyY2VfdG9wX2Rpcj1Ob25lLAogICAgICAgICAgICAgICAgICAgICAg
ICB0YXJnZXRfc291cmNlX3BhdGg9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVy
X2luY2x1ZGVfcGF0aD1Ob25lICk6Ci0gICAgIiIiUHJvZHVjZXMgYW1hbGdhdGVkIHNvdXJjZS4K
KyAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVfcGF0aD1Ob25lKToKKyAgICAi
IiJQcm9kdWNlcyBhbWFsZ2FtYXRlZCBzb3VyY2UuCiAgICAgICAgUGFyYW1ldGVyczoKICAgICAg
ICAgICAgc291cmNlX3RvcF9kaXI6IHRvcC1kaXJlY3RvcnkKICAgICAgICAgICAgdGFyZ2V0X3Nv
dXJjZV9wYXRoOiBvdXRwdXQgLmNwcCBwYXRoCiAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlX3Bh
dGg6IGdlbmVyYXRlZCBoZWFkZXIgcGF0aCByZWxhdGl2ZSB0byB0YXJnZXRfc291cmNlX3BhdGgu
CiAgICAgIiIiCi0gICAgcHJpbnQgJ0FtYWxnYXRpbmcgaGVhZGVyLi4uJwotICAgIGhlYWRlciA9
IEFtYWxnYW1hdGlvbkZpbGUoIHNvdXJjZV90b3BfZGlyICkKLSAgICBoZWFkZXIuYWRkX3RleHQo
ICcvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291cmNlZm9y
Z2UubmV0LykuJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnLy8vIEl0IGlzIGludGVudGVkIHRv
IGJlIHVzZWQgd2l0aCAjaW5jbHVkZSA8JXM+JyAlIGhlYWRlcl9pbmNsdWRlX3BhdGggKQotICAg
IGhlYWRlci5hZGRfZmlsZSggJ0xJQ0VOU0UnLCB3cmFwX2luX2NvbW1lbnQ9VHJ1ZSApCi0gICAg
aGVhZGVyLmFkZF90ZXh0KCAnI2lmbmRlZiBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVEJyApCi0g
ICAgaGVhZGVyLmFkZF90ZXh0KCAnIyBkZWZpbmUgSlNPTl9BTUFMR0FURURfSF9JTkNMVURFRCcg
KQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0
aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVkJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnLy8v
IHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLicgKQotICAgIGhlYWRlci5hZGRf
dGV4dCggJyNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04nICkKLSAgICBoZWFkZXIuYWRkX2Zp
bGUoICdpbmNsdWRlL2pzb24vY29uZmlnLmgnICkKLSAgICBoZWFkZXIuYWRkX2ZpbGUoICdpbmNs
dWRlL2pzb24vZm9yd2FyZHMuaCcgKQotICAgIGhlYWRlci5hZGRfZmlsZSggJ2luY2x1ZGUvanNv
bi9mZWF0dXJlcy5oJyApCi0gICAgaGVhZGVyLmFkZF9maWxlKCAnaW5jbHVkZS9qc29uL3ZhbHVl
LmgnICkKLSAgICBoZWFkZXIuYWRkX2ZpbGUoICdpbmNsdWRlL2pzb24vcmVhZGVyLmgnICkKLSAg
ICBoZWFkZXIuYWRkX2ZpbGUoICdpbmNsdWRlL2pzb24vd3JpdGVyLmgnICkKLSAgICBoZWFkZXIu
YWRkX3RleHQoICcjZW5kaWYgLy9pZm5kZWYgSlNPTl9BTUFMR0FURURfSF9JTkNMVURFRCcgKQot
Ci0gICAgdGFyZ2V0X2hlYWRlcl9wYXRoID0gb3MucGF0aC5qb2luKCBvcy5wYXRoLmRpcm5hbWUo
dGFyZ2V0X3NvdXJjZV9wYXRoKSwgaGVhZGVyX2luY2x1ZGVfcGF0aCApCi0gICAgcHJpbnQgJ1dy
aXRpbmcgYW1hbGdhdGVkIGhlYWRlciB0byAlcicgJSB0YXJnZXRfaGVhZGVyX3BhdGgKLSAgICBo
ZWFkZXIud3JpdGVfdG8oIHRhcmdldF9oZWFkZXJfcGF0aCApCi0KLSAgICBiYXNlLCBleHQgPSBv
cy5wYXRoLnNwbGl0ZXh0KCBoZWFkZXJfaW5jbHVkZV9wYXRoICkKLSAgICBmb3J3YXJkX2hlYWRl
cl9pbmNsdWRlX3BhdGggPSBiYXNlICsgJy1mb3J3YXJkcycgKyBleHQKLSAgICBwcmludCAnQW1h
bGdhdGluZyBmb3J3YXJkIGhlYWRlci4uLicKLSAgICBoZWFkZXIgPSBBbWFsZ2FtYXRpb25GaWxl
KCBzb3VyY2VfdG9wX2RpciApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnLy8vIEpzb24tY3BwIGFt
YWxnYXRlZCBmb3J3YXJkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0Lyku
JyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnLy8vIEl0IGlzIGludGVudGVkIHRvIGJlIHVzZWQg
d2l0aCAjaW5jbHVkZSA8JXM+JyAlIGZvcndhcmRfaGVhZGVyX2luY2x1ZGVfcGF0aCApCi0gICAg
aGVhZGVyLmFkZF90ZXh0KCAnLy8vIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGZvcndhcmQgZGVjbGFy
YXRpb24gZm9yIGFsbCBKc29uQ3BwIHR5cGVzLicgKQotICAgIGhlYWRlci5hZGRfZmlsZSggJ0xJ
Q0VOU0UnLCB3cmFwX2luX2NvbW1lbnQ9VHJ1ZSApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnI2lm
bmRlZiBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQnICkKLSAgICBoZWFkZXIuYWRk
X3RleHQoICcjIGRlZmluZSBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQnICkKLSAg
ICBoZWFkZXIuYWRkX3RleHQoICcvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNv
dXJjZSBmaWxlIGlzIGFtYWxnYXRlZCcgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyB0byBw
cmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4nICkKLSAgICBoZWFkZXIuYWRkX3RleHQo
ICcjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OJyApCi0gICAgaGVhZGVyLmFkZF9maWxlKCAn
aW5jbHVkZS9qc29uL2NvbmZpZy5oJyApCi0gICAgaGVhZGVyLmFkZF9maWxlKCAnaW5jbHVkZS9q
c29uL2ZvcndhcmRzLmgnICkKLSAgICBoZWFkZXIuYWRkX3RleHQoICcjZW5kaWYgLy9pZm5kZWYg
SlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVEJyApCi0KLSAgICB0YXJnZXRfZm9yd2Fy
ZF9oZWFkZXJfcGF0aCA9IG9zLnBhdGguam9pbiggb3MucGF0aC5kaXJuYW1lKHRhcmdldF9zb3Vy
Y2VfcGF0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvcndhcmRfaGVhZGVyX2luY2x1ZGVfcGF0aCApCi0gICAgcHJpbnQgJ1dyaXRpbmcgYW1hbGdh
dGVkIGZvcndhcmQgaGVhZGVyIHRvICVyJyAlIHRhcmdldF9mb3J3YXJkX2hlYWRlcl9wYXRoCi0g
ICAgaGVhZGVyLndyaXRlX3RvKCB0YXJnZXRfZm9yd2FyZF9oZWFkZXJfcGF0aCApCi0KLSAgICBw
cmludCAnQW1hbGdhdGluZyBzb3VyY2UuLi4nCi0gICAgc291cmNlID0gQW1hbGdhbWF0aW9uRmls
ZSggc291cmNlX3RvcF9kaXIgKQotICAgIHNvdXJjZS5hZGRfdGV4dCggJy8vLyBKc29uLWNwcCBh
bWFsZ2F0ZWQgc291cmNlIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4nICkKLSAg
ICBzb3VyY2UuYWRkX3RleHQoICcvLy8gSXQgaXMgaW50ZW50ZWQgdG8gYmUgdXNlZCB3aXRoICNp
bmNsdWRlIDwlcz4nICUgaGVhZGVyX2luY2x1ZGVfcGF0aCApCi0gICAgc291cmNlLmFkZF9maWxl
KCAnTElDRU5TRScsIHdyYXBfaW5fY29tbWVudD1UcnVlICkKLSAgICBzb3VyY2UuYWRkX3RleHQo
ICcnICkKLSAgICBzb3VyY2UuYWRkX3RleHQoICcjaW5jbHVkZSA8JXM+JyAlIGhlYWRlcl9pbmNs
dWRlX3BhdGggKQotICAgIHNvdXJjZS5hZGRfdGV4dCggJycgKQotICAgIGxpYl9qc29uID0gJ3Ny
Yy9saWJfanNvbicKLSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBhdGguam9pbihsaWJfanNvbiwg
J2pzb25fdG9vbC5oJykgKQotICAgIHNvdXJjZS5hZGRfZmlsZSggb3MucGF0aC5qb2luKGxpYl9q
c29uLCAnanNvbl9yZWFkZXIuY3BwJykgKQotICAgIHNvdXJjZS5hZGRfZmlsZSggb3MucGF0aC5q
b2luKGxpYl9qc29uLCAnanNvbl9iYXRjaGFsbG9jYXRvci5oJykgKQotICAgIHNvdXJjZS5hZGRf
ZmlsZSggb3MucGF0aC5qb2luKGxpYl9qc29uLCAnanNvbl92YWx1ZWl0ZXJhdG9yLmlubCcpICkK
LSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBhdGguam9pbihsaWJfanNvbiwgJ2pzb25fdmFsdWUu
Y3BwJykgKQotICAgIHNvdXJjZS5hZGRfZmlsZSggb3MucGF0aC5qb2luKGxpYl9qc29uLCAnanNv
bl93cml0ZXIuY3BwJykgKQotCi0gICAgcHJpbnQgJ1dyaXRpbmcgYW1hbGdhdGVkIHNvdXJjZSB0
byAlcicgJSB0YXJnZXRfc291cmNlX3BhdGgKLSAgICBzb3VyY2Uud3JpdGVfdG8oIHRhcmdldF9z
b3VyY2VfcGF0aCApCisgICAgcHJpbnQoIkFtYWxnYW1hdGluZyBoZWFkZXIuLi4iKQorICAgIGhl
YWRlciA9IEFtYWxnYW1hdGlvbkZpbGUoc291cmNlX3RvcF9kaXIpCisgICAgaGVhZGVyLmFkZF90
ZXh0KCIvLy8gSnNvbi1jcHAgYW1hbGdhbWF0ZWQgaGVhZGVyIChodHRwOi8vanNvbmNwcC5zb3Vy
Y2Vmb3JnZS5uZXQvKS4iKQorICAgIGhlYWRlci5hZGRfdGV4dCgnLy8vIEl0IGlzIGludGVuZGVk
IHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAiJXMiJyAlIGhlYWRlcl9pbmNsdWRlX3BhdGgpCisg
ICAgaGVhZGVyLmFkZF9maWxlKCJMSUNFTlNFIiwgd3JhcF9pbl9jb21tZW50PVRydWUpCisgICAg
aGVhZGVyLmFkZF90ZXh0KCIjaWZuZGVmIEpTT05fQU1BTEdBTUFURURfSF9JTkNMVURFRCIpCisg
ICAgaGVhZGVyLmFkZF90ZXh0KCIjIGRlZmluZSBKU09OX0FNQUxHQU1BVEVEX0hfSU5DTFVERUQi
KQorICAgIGhlYWRlci5hZGRfdGV4dCgiLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IHRo
ZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2FtYXRlZCIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIvLy8g
dG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uIikKKyAgICBoZWFkZXIuYWRkX3Rl
eHQoIiNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04iKQorICAgIGhlYWRlci5hZGRfZmlsZSgi
aW5jbHVkZS9qc29uL3ZlcnNpb24uaCIpCisgICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pz
b24vYWxsb2NhdG9yLmgiKQorICAgIGhlYWRlci5hZGRfZmlsZSgiaW5jbHVkZS9qc29uL2NvbmZp
Zy5oIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUvanNvbi9mb3J3YXJkcy5oIikKKyAg
ICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUvanNvbi9mZWF0dXJlcy5oIikKKyAgICBoZWFkZXIu
YWRkX2ZpbGUoImluY2x1ZGUvanNvbi92YWx1ZS5oIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImlu
Y2x1ZGUvanNvbi9yZWFkZXIuaCIpCisgICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pzb24v
d3JpdGVyLmgiKQorICAgIGhlYWRlci5hZGRfZmlsZSgiaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMu
aCIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIjZW5kaWYgLy9pZm5kZWYgSlNPTl9BTUFMR0FNQVRF
RF9IX0lOQ0xVREVEIikKKworICAgIHRhcmdldF9oZWFkZXJfcGF0aCA9IG9zLnBhdGguam9pbihv
cy5wYXRoLmRpcm5hbWUodGFyZ2V0X3NvdXJjZV9wYXRoKSwgaGVhZGVyX2luY2x1ZGVfcGF0aCkK
KyAgICBwcmludCgiV3JpdGluZyBhbWFsZ2FtYXRlZCBoZWFkZXIgdG8gJXIiICUgdGFyZ2V0X2hl
YWRlcl9wYXRoKQorICAgIGhlYWRlci53cml0ZV90byh0YXJnZXRfaGVhZGVyX3BhdGgpCisKKyAg
ICBiYXNlLCBleHQgPSBvcy5wYXRoLnNwbGl0ZXh0KGhlYWRlcl9pbmNsdWRlX3BhdGgpCisgICAg
Zm9yd2FyZF9oZWFkZXJfaW5jbHVkZV9wYXRoID0gYmFzZSArICItZm9yd2FyZHMiICsgZXh0Cisg
ICAgcHJpbnQoIkFtYWxnYW1hdGluZyBmb3J3YXJkIGhlYWRlci4uLiIpCisgICAgaGVhZGVyID0g
QW1hbGdhbWF0aW9uRmlsZShzb3VyY2VfdG9wX2RpcikKKyAgICBoZWFkZXIuYWRkX3RleHQoIi8v
LyBKc29uLWNwcCBhbWFsZ2FtYXRlZCBmb3J3YXJkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291
cmNlZm9yZ2UubmV0LykuIikKKyAgICBoZWFkZXIuYWRkX3RleHQoJy8vLyBJdCBpcyBpbnRlbmRl
ZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgIiVzIicgJSBmb3J3YXJkX2hlYWRlcl9pbmNsdWRl
X3BhdGgpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIvLy8gVGhpcyBoZWFkZXIgcHJvdmlkZXMgZm9y
d2FyZCBkZWNsYXJhdGlvbiBmb3IgYWxsIEpzb25DcHAgdHlwZXMuIikKKyAgICBoZWFkZXIuYWRk
X2ZpbGUoIkxJQ0VOU0UiLCB3cmFwX2luX2NvbW1lbnQ9VHJ1ZSkKKyAgICBoZWFkZXIuYWRkX3Rl
eHQoIiNpZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQU1BVEVEX0hfSU5DTFVERUQiKQorICAgIGhl
YWRlci5hZGRfdGV4dCgiIyBkZWZpbmUgSlNPTl9GT1JXQVJEX0FNQUxHQU1BVEVEX0hfSU5DTFVE
RUQiKQorICAgIGhlYWRlci5hZGRfdGV4dCgiLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0
IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2FtYXRlZCIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIv
Ly8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uIikKKyAgICBoZWFkZXIuYWRk
X3RleHQoIiNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04iKQorICAgIGhlYWRlci5hZGRfZmls
ZSgiaW5jbHVkZS9qc29uL2NvbmZpZy5oIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUv
anNvbi9mb3J3YXJkcy5oIikKKyAgICBoZWFkZXIuYWRkX3RleHQoIiNlbmRpZiAvL2lmbmRlZiBK
U09OX0ZPUldBUkRfQU1BTEdBTUFURURfSF9JTkNMVURFRCIpCisKKyAgICB0YXJnZXRfZm9yd2Fy
ZF9oZWFkZXJfcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUodGFyZ2V0X3NvdXJj
ZV9wYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yd2FyZF9oZWFkZXJfaW5jbHVkZV9wYXRoKQorICAgIHByaW50KCJXcml0aW5nIGFtYWxnYW1h
dGVkIGZvcndhcmQgaGVhZGVyIHRvICVyIiAlIHRhcmdldF9mb3J3YXJkX2hlYWRlcl9wYXRoKQor
ICAgIGhlYWRlci53cml0ZV90byh0YXJnZXRfZm9yd2FyZF9oZWFkZXJfcGF0aCkKKworICAgIHBy
aW50KCJBbWFsZ2FtYXRpbmcgc291cmNlLi4uIikKKyAgICBzb3VyY2UgPSBBbWFsZ2FtYXRpb25G
aWxlKHNvdXJjZV90b3BfZGlyKQorICAgIHNvdXJjZS5hZGRfdGV4dCgiLy8vIEpzb24tY3BwIGFt
YWxnYW1hdGVkIHNvdXJjZSAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuIikKKyAg
ICBzb3VyY2UuYWRkX3RleHQoJy8vLyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2lu
Y2x1ZGUgIiVzIicgJSBoZWFkZXJfaW5jbHVkZV9wYXRoKQorICAgIHNvdXJjZS5hZGRfZmlsZSgi
TElDRU5TRSIsIHdyYXBfaW5fY29tbWVudD1UcnVlKQorICAgIHNvdXJjZS5hZGRfdGV4dCgiIikK
KyAgICBzb3VyY2UuYWRkX3RleHQoJyNpbmNsdWRlICIlcyInICUgaGVhZGVyX2luY2x1ZGVfcGF0
aCkKKyAgICBzb3VyY2UuYWRkX3RleHQoIiIiCisjaWZuZGVmIEpTT05fSVNfQU1BTEdBTUFUSU9O
CisjZXJyb3IgIkNvbXBpbGUgd2l0aCAtSSBQQVRIX1RPX0pTT05fRElSRUNUT1JZIgorI2VuZGlm
CisiIiIpCisgICAgc291cmNlLmFkZF90ZXh0KCIiKQorICAgIGxpYl9qc29uID0gInNyYy9saWJf
anNvbiIKKyAgICBzb3VyY2UuYWRkX2ZpbGUob3MucGF0aC5qb2luKGxpYl9qc29uLCAianNvbl90
b29sLmgiKSkKKyAgICBzb3VyY2UuYWRkX2ZpbGUob3MucGF0aC5qb2luKGxpYl9qc29uLCAianNv
bl9yZWFkZXIuY3BwIikpCisgICAgc291cmNlLmFkZF9maWxlKG9zLnBhdGguam9pbihsaWJfanNv
biwgImpzb25fdmFsdWVpdGVyYXRvci5pbmwiKSkKKyAgICBzb3VyY2UuYWRkX2ZpbGUob3MucGF0
aC5qb2luKGxpYl9qc29uLCAianNvbl92YWx1ZS5jcHAiKSkKKyAgICBzb3VyY2UuYWRkX2ZpbGUo
b3MucGF0aC5qb2luKGxpYl9qc29uLCAianNvbl93cml0ZXIuY3BwIikpCisKKyAgICBwcmludCgi
V3JpdGluZyBhbWFsZ2FtYXRlZCBzb3VyY2UgdG8gJXIiICUgdGFyZ2V0X3NvdXJjZV9wYXRoKQor
ICAgIHNvdXJjZS53cml0ZV90byh0YXJnZXRfc291cmNlX3BhdGgpCiAKIGRlZiBtYWluKCk6CiAg
ICAgdXNhZ2UgPSAiIiIlcHJvZyBbb3B0aW9uc10KLUdlbmVyYXRlIGEgc2luZ2xlIGFtYWxnYXRl
ZCBzb3VyY2UgYW5kIGhlYWRlciBmaWxlIGZyb20gdGhlIHNvdXJjZXMuCitHZW5lcmF0ZSBhIHNp
bmdsZSBhbWFsZ2FtYXRlZCBzb3VyY2UgYW5kIGhlYWRlciBmaWxlIGZyb20gdGhlIHNvdXJjZXMu
CiAiIiIKICAgICBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKICAgICBwYXJzZXIg
PSBPcHRpb25QYXJzZXIodXNhZ2U9dXNhZ2UpCiAgICAgcGFyc2VyLmFsbG93X2ludGVyc3BlcnNl
ZF9hcmdzID0gRmFsc2UKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zb3VyY2UnLCBk
ZXN0PSJ0YXJnZXRfc291cmNlX3BhdGgiLCBhY3Rpb249J3N0b3JlJywgZGVmYXVsdD0nZGlzdC9q
c29uY3BwLmNwcCcsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oIi1zIiwgIi0tc291cmNlIiwgZGVz
dD0idGFyZ2V0X3NvdXJjZV9wYXRoIiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9ImRpc3QvanNv
bmNwcC5jcHAiLAogICAgICAgICBoZWxwPSIiIk91dHB1dCAuY3BwIHNvdXJjZSBwYXRoLiBbRGVm
YXVsdDogJWRlZmF1bHRdIiIiKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctaScsICctLWluY2x1
ZGUnLCBkZXN0PSJoZWFkZXJfaW5jbHVkZV9wYXRoIiwgYWN0aW9uPSdzdG9yZScsIGRlZmF1bHQ9
J2pzb24vanNvbi5oJywKLSAgICAgICAgaGVscD0iIiJIZWFkZXIgaW5jbHVkZSBwYXRoLiBVc2Vk
IHRvIGluY2x1ZGUgdGhlIGhlYWRlciBmcm9tIHRoZSBhbWFsZ2F0ZWQgc291cmNlIGZpbGUuIFtE
ZWZhdWx0OiAlZGVmYXVsdF0iIiIpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdG9w
LWRpcicsIGRlc3Q9InRvcF9kaXIiLCBhY3Rpb249J3N0b3JlJywgZGVmYXVsdD1vcy5nZXRjd2Qo
KSwKKyAgICBwYXJzZXIuYWRkX29wdGlvbigiLWkiLCAiLS1pbmNsdWRlIiwgZGVzdD0iaGVhZGVy
X2luY2x1ZGVfcGF0aCIsIGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PSJqc29uL2pzb24uaCIsCisg
ICAgICAgIGhlbHA9IiIiSGVhZGVyIGluY2x1ZGUgcGF0aC4gVXNlZCB0byBpbmNsdWRlIHRoZSBo
ZWFkZXIgZnJvbSB0aGUgYW1hbGdhbWF0ZWQgc291cmNlIGZpbGUuIFtEZWZhdWx0OiAlZGVmYXVs
dF0iIiIpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oIi10IiwgIi0tdG9wLWRpciIsIGRlc3Q9InRv
cF9kaXIiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD1vcy5nZXRjd2QoKSwKICAgICAgICAgaGVs
cD0iIiJTb3VyY2UgdG9wLWRpcmVjdG9yeS4gW0RlZmF1bHQ6ICVkZWZhdWx0XSIiIikKICAgICBw
YXJzZXIuZW5hYmxlX2ludGVyc3BlcnNlZF9hcmdzKCkKICAgICBvcHRpb25zLCBhcmdzID0gcGFy
c2VyLnBhcnNlX2FyZ3MoKQogCi0gICAgbXNnID0gYW1hbGdhbWF0ZV9zb3VyY2UoIHNvdXJjZV90
b3BfZGlyPW9wdGlvbnMudG9wX2RpciwKKyAgICBtc2cgPSBhbWFsZ2FtYXRlX3NvdXJjZShzb3Vy
Y2VfdG9wX2Rpcj1vcHRpb25zLnRvcF9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRhcmdldF9zb3VyY2VfcGF0aD1vcHRpb25zLnRhcmdldF9zb3VyY2VfcGF0aCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVfcGF0aD1vcHRpb25zLmhlYWRlcl9p
bmNsdWRlX3BhdGggKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJfaW5jbHVk
ZV9wYXRoPW9wdGlvbnMuaGVhZGVyX2luY2x1ZGVfcGF0aCkKICAgICBpZiBtc2c6Ci0gICAgICAg
IHN5cy5zdGRlcnIud3JpdGUoIG1zZyArICdcbicgKQotICAgICAgICBzeXMuZXhpdCggMSApCisg
ICAgICAgIHN5cy5zdGRlcnIud3JpdGUobXNnICsgIlxuIikKKyAgICAgICAgc3lzLmV4aXQoMSkK
ICAgICBlbHNlOgotICAgICAgICBwcmludCAnU291cmNlIHN1Y2Nlc2Z1bGx5IGFtYWxhZ2F0ZWQn
Ci0gCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICAgICBwcmludCgiU291cmNlIHN1
Y2Nlc3NmdWxseSBhbWFsZ2FtYXRlZCIpCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAg
ICAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2FwcHZleW9yLnltbCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvYXBwdmV5b3Iu
eW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBiOWM4ZmUzZmVhMGU5MDE5ZGQwZTI0MjcxOGY4OWQ2MGRiNWUxYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2FwcHZleW9yLnltbApAQCAtMCwwICsxLDMyIEBACitj
bG9uZV9mb2xkZXI6IGM6XHByb2plY3RzXGpzb25jcHAKKworZW52aXJvbm1lbnQ6CisgIG1hdHJp
eDoKKyAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE1
CisgICAgICBDTUFLRV9HRU5FUkFUT1I6IFZpc3VhbCBTdHVkaW8gMTQgMjAxNQorICAgIC0gQVBQ
VkVZT1JfQlVJTERfV09SS0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTUKKyAgICAgIENNQUtF
X0dFTkVSQVRPUjogVmlzdWFsIFN0dWRpbyAxNCAyMDE1IFdpbjY0CisgICAgLSBBUFBWRVlPUl9C
VUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxNworICAgICAgQ01BS0VfR0VORVJB
VE9SOiBWaXN1YWwgU3R1ZGlvIDE1IDIwMTcKKyAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9J
TUFHRTogVmlzdWFsIFN0dWRpbyAyMDE3CisgICAgICBDTUFLRV9HRU5FUkFUT1I6IFZpc3VhbCBT
dHVkaW8gMTUgMjAxNyBXaW42NAorCitidWlsZF9zY3JpcHQ6CisgIC0gY21ha2UgLS12ZXJzaW9u
CisgIC0gY2QgYzpccHJvamVjdHNcanNvbmNwcAorICAtIGNtYWtlIC1HICIlQ01BS0VfR0VORVJB
VE9SJSIgLURDTUFLRV9JTlNUQUxMX1BSRUZJWDpQQVRIPSVDRDpcPS8lL2luc3RhbGwgLURCVUlM
RF9TSEFSRURfTElCUzpCT09MPU9OIC4KKyAgIyBVc2UgY3Rlc3QgdG8gbWFrZSBhIGRhc2hib2Fy
ZCBidWlsZDoKKyAgIyAtIGN0ZXN0IC1EIEV4cGVyaW1lbnRhbChTdGFydHxVcGRhdGV8Q29uZmln
dXJlfEJ1aWxkfFRlc3R8Q292ZXJhZ2V8TWVtQ2hlY2t8U3VibWl0KQorICAjIE5PVEU6IFRlc3Rp
bmcgb24gd2luZG93IGlzIG5vdCB5ZXQgZmluaXNoZWQ6CisgICMgLSBjdGVzdCAtQyBSZWxlYXNl
IC1EIEV4cGVyaW1lbnRhbFN0YXJ0IC1EIEV4cGVyaW1lbnRhbENvbmZpZ3VyZSAtRCBFeHBlcmlt
ZW50YWxCdWlsZCAtRCBFeHBlcmltZW50YWxUZXN0IC1EIEV4cGVyaW1lbnRhbFN1Ym1pdAorICAt
IGN0ZXN0IC1DIFJlbGVhc2UgLUQgRXhwZXJpbWVudGFsU3RhcnQgLUQgRXhwZXJpbWVudGFsQ29u
ZmlndXJlIC1EIEV4cGVyaW1lbnRhbEJ1aWxkIC1EIEV4cGVyaW1lbnRhbFN1Ym1pdAorICAjIEZp
bmFsIHN0ZXAgaXMgdG8gdmVyaWZ5IHRoYXQgaW5zdGFsbGF0aW9uIHN1Y2NlZWRzCisgIC0gY21h
a2UgLS1idWlsZCAuIC0tY29uZmlnIFJlbGVhc2UgLS10YXJnZXQgaW5zdGFsbAorCitkZXBsb3k6
CisgICAgcHJvdmlkZXI6IEdpdEh1YgorICAgIGF1dGhfdG9rZW46CisgICAgICAgIHNlY3VyZTog
SzJUcDFxOHBJWjdyczBPdDI0Wk1XdXdyMTJFdjZUYzZRa2hNakdReG9RRzNuZzFwWHRnUGFzaUo0
NUlEWEdkZworICAgIG9uOgorICAgICAgICBicmFuY2g6IG1hc3RlcgorICAgICAgICBhcHB2ZXlv
cl9yZXBvX3RhZzogdHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXYubWFrZWZpbGUgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2Rl
di5tYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTRiZTZhOTEzNDY4MThjZDBlMGEwMzMwZTFlOGZiZjFm
YmE5NWM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXYubWFrZWZpbGUKQEAgLTAsMCArMSwz
NSBAQAorIyBUaGlzIGlzIG9ubHkgZm9yIGpzb25jcHAgZGV2ZWxvcGVycy9jb250cmlidXRvcnMu
CisjIFdlIHVzZSB0aGlzIHRvIHNpZ24gcmVsZWFzZXMsIGdlbmVyYXRlIGRvY3VtZW50YXRpb24s
IGV0Yy4KK1ZFUj89JChzaGVsbCBjYXQgdmVyc2lvbi50eHQpCisKK2RlZmF1bHQ6CisJQGVjaG8g
IlZFUj0ke1ZFUn0iCitzaWduOiBqc29uY3BwLSR7VkVSfS50YXIuZ3oKKwlncGcgLS1hcm1vciAt
LWRldGFjaC1zaWduICQ8CisJZ3BnIC0tdmVyaWZ5ICQ8LmFzYworCSMgVGhlbiB1cGxvYWQgLmFz
YyB0byB0aGUgcmVsZWFzZS4KK2pzb25jcHAtJS50YXIuZ3o6CisJY3VybCBodHRwczovL2dpdGh1
Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL2FyY2hpdmUvJCoudGFyLmd6IC1vICRA
Citkb3g6CisJcHl0aG9uIGRveHlidWlsZC5weSAtLWRveHlnZW49JCQod2hpY2ggZG94eWdlbikg
LS1pbiBkb2Mvd2ViX2RveHlmaWxlLmluCisJcnN5bmMgLXZhIC1jIC0tZGVsZXRlIGRpc3QvZG94
eWdlbi9qc29uY3BwLWFwaS1odG1sLSR7VkVSfS8gLi4vanNvbmNwcC1kb2NzL2RveHlnZW4vCisJ
IyBUaGVuICdnaXQgYWRkIC1BJyBhbmQgJ2dpdCBwdXNoJyBpbiBqc29uY3BwLWRvY3MuCitidWls
ZDoKKwlta2RpciAtcCBidWlsZC9kZWJ1ZworCWNkIGJ1aWxkL2RlYnVnOyBjbWFrZSAtRENNQUtF
X0JVSUxEX1RZUEU9ZGVidWcgLURCVUlMRF9TSEFSRURfTElCUz1PTiAtRyAiVW5peCBNYWtlZmls
ZXMiIC4uLy4uCisJbWFrZSAtQyBidWlsZC9kZWJ1ZworCisjIEN1cnJlbnRseSwgdGhpcyBkZXBl
bmRzIG9uIGluY2x1ZGUvanNvbi92ZXJzaW9uLmggZ2VuZXJhdGVkCisjIGJ5IGNtYWtlLgordGVz
dC1hbWFsZ2FtYXRlOgorCXB5dGhvbjIuNyBhbWFsZ2FtYXRlLnB5CisJcHl0aG9uMy40IGFtYWxn
YW1hdGUucHkKKwljZCBkaXN0OyBnY2MgLUkuIC1jIGpzb25jcHAuY3BwCisKK3ZhbGdyaW5kOgor
CXZhbGdyaW5kIC0tZXJyb3ItZXhpdGNvZGU9NDIgLS1sZWFrLWNoZWNrPWZ1bGwgLi9idWlsZC9k
ZWJ1Zy9zcmMvdGVzdF9saWJfanNvbi9qc29uY3BwX3Rlc3QKKworY2xlYW46CisJXHJtIC1yZiAq
Lmd6ICouYXNjIGRpc3QvCisKKy5QSE9OWTogYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9v
bHMvX19pbml0X18ucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL19faW5pdF9fLnB5CmluZGV4IGM5NDRlN2Ni
MGMwOGUzZGQwNDJjMWUzY2UwNGY4MjBjMDFkMzY2ZDUuLjRhNTFlNjUxNDI1YWE3ZjNjOWNiYmIy
ODVlOTBjMzU3OWMxZjc3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvX19pbml0X18ucHkK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9kZXZ0b29scy9fX2luaXRfXy5weQpAQCAtMSArMSw2IEBACi0jIG1vZHVsZQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyMgQ29weXJpZ2h0IDIwMTAgQmFwdGlzdGUgTGVw
aWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisjIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisjIHJlY29nbml6ZWQgaW4g
eW91ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5
IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyMgbW9kdWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2FnZW50X3ZtdzcuanNvbiBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMv
YWdlbnRfdm13Ny5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkN2I3NzdmZTVkNDYxMDg4NmYzZmQ1N2M2OTQ4
YWI3OWI5ZTgzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2FnZW50X3Ztdzcu
anNvbgpAQCAtMCwwICsxLDMzIEBACit7CisgICAgImNtYWtlX3ZhcmlhbnRzIiA6IFsKKyAgICAg
ICAgeyJuYW1lIjogImdlbmVyYXRvciIsCisgICAgICAgICAiZ2VuZXJhdG9ycyI6IFsKKyAgICAg
ICAgICAgIHsiZ2VuZXJhdG9yIjogWworICAgICAgICAgICAgICAgICJWaXN1YWwgU3R1ZGlvIDcg
Lk5FVCAyMDAzIiwKKyAgICAgICAgICAgICAgICAiVmlzdWFsIFN0dWRpbyA5IDIwMDgiLAorICAg
ICAgICAgICAgICAgICJWaXN1YWwgU3R1ZGlvIDkgMjAwOCBXaW42NCIsCisgICAgICAgICAgICAg
ICAgIlZpc3VhbCBTdHVkaW8gMTAiLAorICAgICAgICAgICAgICAgICJWaXN1YWwgU3R1ZGlvIDEw
IFdpbjY0IiwKKyAgICAgICAgICAgICAgICAiVmlzdWFsIFN0dWRpbyAxMSIsCisgICAgICAgICAg
ICAgICAgIlZpc3VhbCBTdHVkaW8gMTEgV2luNjQiCisgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsiZ2VuZXJhdG9yIjogWyJNaW5HVyBNYWtlZmlsZXMiXSwK
KyAgICAgICAgICAgICAiZW52X3ByZXBlbmQiOiBbeyJwYXRoIjogImM6L3d1dC9wcmcvTWluR1cv
YmluIn1dCisgICAgICAgICAgICB9CisgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsi
bmFtZSI6ICJzaGFyZWRfZGxsIiwKKyAgICAgICAgICJ2YXJpYWJsZXMiOiBbCisgICAgICAgICAg
ICBbIkJVSUxEX1NIQVJFRF9MSUJTPXRydWUiXSwKKyAgICAgICAgICAgIFsiQlVJTERfU0hBUkVE
X0xJQlM9ZmFsc2UiXQorICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeyJuYW1lIjog
ImJ1aWxkX3R5cGUiLAorICAgICAgICAgImJ1aWxkX3R5cGVzIjogWworICAgICAgICAgICAgImRl
YnVnIiwKKyAgICAgICAgICAgICJyZWxlYXNlIgorICAgICAgICAgICAgXQorICAgICAgICB9Cisg
ICAgXQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9hZ2VudF92bXhwLmpzb24gYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L2RldnRvb2xzL2FnZW50X3ZteHAuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODJhMDc3M2EyZjFmNTU0NWY5
NGEzMTViOTUwZWZjNzEzZWJlZTM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9h
Z2VudF92bXhwLmpzb24KQEAgLTAsMCArMSwyNiBAQAoreworICAgICJjbWFrZV92YXJpYW50cyIg
OiBbCisgICAgICAgIHsibmFtZSI6ICJnZW5lcmF0b3IiLAorICAgICAgICAgImdlbmVyYXRvcnMi
OiBbCisgICAgICAgICAgICB7ImdlbmVyYXRvciI6IFsKKyAgICAgICAgICAgICAgICAiVmlzdWFs
IFN0dWRpbyA2IiwKKyAgICAgICAgICAgICAgICAiVmlzdWFsIFN0dWRpbyA3IiwKKyAgICAgICAg
ICAgICAgICAiVmlzdWFsIFN0dWRpbyA4IDIwMDUiCisgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgfQorICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Im5hbWUiOiAic2hhcmVk
X2RsbCIsCisgICAgICAgICAidmFyaWFibGVzIjogWworICAgICAgICAgICAgWyJCVUlMRF9TSEFS
RURfTElCUz10cnVlIl0sCisgICAgICAgICAgICBbIkJVSUxEX1NIQVJFRF9MSUJTPWZhbHNlIl0K
KyAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsibmFtZSI6ICJidWlsZF90eXBlIiwK
KyAgICAgICAgICJidWlsZF90eXBlcyI6IFsKKyAgICAgICAgICAgICJkZWJ1ZyIsCisgICAgICAg
ICAgICAicmVsZWFzZSIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0KK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvZGV2dG9vbHMvYW50Z2xvYi5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYW50Z2xvYi5w
eQppbmRleCAzMDgzN2I1NzZjZGVmM2E5YzFmYTY0MWY0MzQ0YzkwZjQ3ZjAwNGUwLi45ODQzNzY1
OGNlMGI3Yjk2NjEzMmJlYWI0NTM1Y2JmZTVjMzg1ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRv
b2xzL2FudGdsb2IucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9hbnRnbG9iLnB5CkBAIC0xLDcgKzEs
MTEgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbgogIyBlbmNvZGluZzogdXRmLTgKLSMgQmFwdGlz
dGUgTGVwaWxsZXVyLCAyMDA5CisjIENvcHlyaWdodCAyMDA5IEJhcHRpc3RlIExlcGlsbGV1ciBh
bmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlvdXIganVy
aXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCiBmcm9tIGRpcmNhY2hlIGltcG9ydCBsaXN0ZGlyCiBpbXBvcnQg
cmUKIGltcG9ydCBmbm1hdGNoCkBAIC01Myw5ICs1Nyw5IEBAIExJTktTID0gRElSX0xJTksgfCBG
SUxFX0xJTksKIEFMTF9OT19MSU5LID0gRElSIHwgRklMRQogQUxMID0gRElSIHwgRklMRSB8IExJ
TktTCiAKLV9BTlRfUkUgPSByZS5jb21waWxlKCByJygvXCpcKi8pfChcKlwqLyl8KC9cKlwqKXwo
XCopfCgvKXwoW15cKi9dKiknICkKK19BTlRfUkUgPSByZS5jb21waWxlKHInKC9cKlwqLyl8KFwq
XCovKXwoL1wqXCopfChcKil8KC8pfChbXlwqL10qKScpCiAKLWRlZiBhbnRfcGF0dGVybl90b19y
ZSggYW50X3BhdHRlcm4gKToKK2RlZiBhbnRfcGF0dGVybl90b19yZShhbnRfcGF0dGVybik6CiAg
ICAgIiIiR2VuZXJhdGVzIGEgcmVndWxhciBleHByZXNzaW9uIGZyb20gdGhlIGFudCBwYXR0ZXJu
LgogICAgIE1hdGNoaW5nIGNvbnZlbnRpb246CiAgICAgKiovYTogbWF0Y2ggJ2EnLCAnZGlyL2En
LCAnZGlyMS9kaXIyL2EnCkBAIC02NCwzMCArNjgsMzAgQEAgZGVmIGFudF9wYXR0ZXJuX3RvX3Jl
KCBhbnRfcGF0dGVybiApOgogICAgICIiIgogICAgIHJleCA9IFsnXiddCiAgICAgbmV4dF9wb3Mg
PSAwCi0gICAgc2VwX3JleCA9IHInKD86L3wlcyknICUgcmUuZXNjYXBlKCBvcy5wYXRoLnNlcCAp
CisgICAgc2VwX3JleCA9IHInKD86L3wlcyknICUgcmUuZXNjYXBlKG9zLnBhdGguc2VwKQogIyMg
ICAgcHJpbnQgJ0NvbnZlcnRpbmcnLCBhbnRfcGF0dGVybgotICAgIGZvciBtYXRjaCBpbiBfQU5U
X1JFLmZpbmRpdGVyKCBhbnRfcGF0dGVybiApOgorICAgIGZvciBtYXRjaCBpbiBfQU5UX1JFLmZp
bmRpdGVyKGFudF9wYXR0ZXJuKToKICMjICAgICAgICBwcmludCAnTWF0Y2hlZCcsIG1hdGNoLmdy
b3VwKCkKICMjICAgICAgICBwcmludCBtYXRjaC5zdGFydCgwKSwgbmV4dF9wb3MKICAgICAgICAg
aWYgbWF0Y2guc3RhcnQoMCkgIT0gbmV4dF9wb3M6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCAiSW52YWxpZCBhbnQgcGF0dGVybiIgKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiSW52YWxpZCBhbnQgcGF0dGVybiIpCiAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDEpOiAjIC8q
Ki8KLSAgICAgICAgICAgIHJleC5hcHBlbmQoIHNlcF9yZXggKyAnKD86Liolcyk/JyAlIHNlcF9y
ZXggKQorICAgICAgICAgICAgcmV4LmFwcGVuZChzZXBfcmV4ICsgJyg/Oi4qJXMpPycgJSBzZXBf
cmV4KQogICAgICAgICBlbGlmIG1hdGNoLmdyb3VwKDIpOiAjICoqLwotICAgICAgICAgICAgcmV4
LmFwcGVuZCggJyg/Oi4qJXMpPycgJSBzZXBfcmV4ICkKKyAgICAgICAgICAgIHJleC5hcHBlbmQo
Jyg/Oi4qJXMpPycgJSBzZXBfcmV4KQogICAgICAgICBlbGlmIG1hdGNoLmdyb3VwKDMpOiAjIC8q
KgotICAgICAgICAgICAgcmV4LmFwcGVuZCggc2VwX3JleCArICcuKicgKQorICAgICAgICAgICAg
cmV4LmFwcGVuZChzZXBfcmV4ICsgJy4qJykKICAgICAgICAgZWxpZiBtYXRjaC5ncm91cCg0KTog
IyAqCi0gICAgICAgICAgICByZXguYXBwZW5kKCAnW14vJXNdKicgJSByZS5lc2NhcGUob3MucGF0
aC5zZXApICkKKyAgICAgICAgICAgIHJleC5hcHBlbmQoJ1teLyVzXSonICUgcmUuZXNjYXBlKG9z
LnBhdGguc2VwKSkKICAgICAgICAgZWxpZiBtYXRjaC5ncm91cCg1KTogIyAvCi0gICAgICAgICAg
ICByZXguYXBwZW5kKCBzZXBfcmV4ICkKKyAgICAgICAgICAgIHJleC5hcHBlbmQoc2VwX3JleCkK
ICAgICAgICAgZWxzZTogIyBzb21lcGF0aAotICAgICAgICAgICAgcmV4LmFwcGVuZCggcmUuZXNj
YXBlKG1hdGNoLmdyb3VwKDYpKSApCisgICAgICAgICAgICByZXguYXBwZW5kKHJlLmVzY2FwZSht
YXRjaC5ncm91cCg2KSkpCiAgICAgICAgIG5leHRfcG9zID0gbWF0Y2guZW5kKCkKICAgICByZXgu
YXBwZW5kKCckJykKLSAgICByZXR1cm4gcmUuY29tcGlsZSggJycuam9pbiggcmV4ICkgKQorICAg
IHJldHVybiByZS5jb21waWxlKCcnLmpvaW4ocmV4KSkKIAotZGVmIF9hc19saXN0KCBsICk6Citk
ZWYgX2FzX2xpc3QobCk6CiAgICAgaWYgaXNpbnN0YW5jZShsLCBiYXNlc3RyaW5nKToKICAgICAg
ICAgcmV0dXJuIGwuc3BsaXQoKQogICAgIHJldHVybiBsCkBAIC0xMDQsMzcgKzEwOCwzNyBAQCBk
ZWYgZ2xvYihkaXJfcGF0aCwKICAgICBkaXJfcGF0aCA9IGRpcl9wYXRoLnJlcGxhY2UoJy8nLG9z
LnBhdGguc2VwKQogICAgIGVudHJ5X3R5cGVfZmlsdGVyID0gZW50cnlfdHlwZQogCi0gICAgZGVm
IGlzX3BydW5lZF9kaXIoIGRpcl9uYW1lICk6CisgICAgZGVmIGlzX3BydW5lZF9kaXIoZGlyX25h
bWUpOgogICAgICAgICBmb3IgcGF0dGVybiBpbiBwcnVuZV9kaXJzOgotICAgICAgICAgICAgaWYg
Zm5tYXRjaC5mbm1hdGNoKCBkaXJfbmFtZSwgcGF0dGVybiApOgorICAgICAgICAgICAgaWYgZm5t
YXRjaC5mbm1hdGNoKGRpcl9uYW1lLCBwYXR0ZXJuKToKICAgICAgICAgICAgICAgICByZXR1cm4g
VHJ1ZQogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBhcHBseV9maWx0ZXIoIGZ1bGxf
cGF0aCwgZmlsdGVyX3JleHMgKToKKyAgICBkZWYgYXBwbHlfZmlsdGVyKGZ1bGxfcGF0aCwgZmls
dGVyX3JleHMpOgogICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBhdCBsZWFzdCBvbmUgb2YgdGhl
IGZpbHRlciByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2ggZnVsbF9wYXRoLiIiIgogICAgICAgICBm
b3IgcmV4IGluIGZpbHRlcl9yZXhzOgotICAgICAgICAgICAgaWYgcmV4Lm1hdGNoKCBmdWxsX3Bh
dGggKToKKyAgICAgICAgICAgIGlmIHJleC5tYXRjaChmdWxsX3BhdGgpOgogICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgZGVmIGdsb2JfaW1w
bCggcm9vdF9kaXJfcGF0aCApOgorICAgIGRlZiBnbG9iX2ltcGwocm9vdF9kaXJfcGF0aCk6CiAg
ICAgICAgIGNoaWxkX2RpcnMgPSBbcm9vdF9kaXJfcGF0aF0KICAgICAgICAgd2hpbGUgY2hpbGRf
ZGlyczoKICAgICAgICAgICAgIGRpcl9wYXRoID0gY2hpbGRfZGlycy5wb3AoKQotICAgICAgICAg
ICAgZm9yIGVudHJ5IGluIGxpc3RkaXIoIGRpcl9wYXRoICk6Ci0gICAgICAgICAgICAgICAgZnVs
bF9wYXRoID0gb3MucGF0aC5qb2luKCBkaXJfcGF0aCwgZW50cnkgKQorICAgICAgICAgICAgZm9y
IGVudHJ5IGluIGxpc3RkaXIoZGlyX3BhdGgpOgorICAgICAgICAgICAgICAgIGZ1bGxfcGF0aCA9
IG9zLnBhdGguam9pbihkaXJfcGF0aCwgZW50cnkpCiAjIyAgICAgICAgICAgICAgICBwcmludCAn
VGVzdGluZzonLCBmdWxsX3BhdGgsCi0gICAgICAgICAgICAgICAgaXNfZGlyID0gb3MucGF0aC5p
c2RpciggZnVsbF9wYXRoICkKLSAgICAgICAgICAgICAgICBpZiBpc19kaXIgYW5kIG5vdCBpc19w
cnVuZWRfZGlyKCBlbnRyeSApOiAjIGV4cGxvcmUgY2hpbGQgZGlyZWN0b3J5ID8KKyAgICAgICAg
ICAgICAgICBpc19kaXIgPSBvcy5wYXRoLmlzZGlyKGZ1bGxfcGF0aCkKKyAgICAgICAgICAgICAg
ICBpZiBpc19kaXIgYW5kIG5vdCBpc19wcnVuZWRfZGlyKGVudHJ5KTogIyBleHBsb3JlIGNoaWxk
IGRpcmVjdG9yeSA/CiAjIyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJz09PT4gbWFya2VkIGZv
ciByZWN1cnNpb24nLAotICAgICAgICAgICAgICAgICAgICBjaGlsZF9kaXJzLmFwcGVuZCggZnVs
bF9wYXRoICkKLSAgICAgICAgICAgICAgICBpbmNsdWRlZCA9IGFwcGx5X2ZpbHRlciggZnVsbF9w
YXRoLCBpbmNsdWRlX2ZpbHRlciApCi0gICAgICAgICAgICAgICAgcmVqZWN0ZWQgPSBhcHBseV9m
aWx0ZXIoIGZ1bGxfcGF0aCwgZXhjbHVkZV9maWx0ZXIgKQorICAgICAgICAgICAgICAgICAgICBj
aGlsZF9kaXJzLmFwcGVuZChmdWxsX3BhdGgpCisgICAgICAgICAgICAgICAgaW5jbHVkZWQgPSBh
cHBseV9maWx0ZXIoZnVsbF9wYXRoLCBpbmNsdWRlX2ZpbHRlcikKKyAgICAgICAgICAgICAgICBy
ZWplY3RlZCA9IGFwcGx5X2ZpbHRlcihmdWxsX3BhdGgsIGV4Y2x1ZGVfZmlsdGVyKQogICAgICAg
ICAgICAgICAgIGlmIG5vdCBpbmNsdWRlZCBvciByZWplY3RlZDogIyBkbyBub3QgaW5jbHVkZSBl
bnRyeSA/CiAjIyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJz0+IG5vdCBpbmNsdWRlZCBvciBy
ZWplY3RlZCcKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBs
aW5rID0gb3MucGF0aC5pc2xpbmsoIGZ1bGxfcGF0aCApCi0gICAgICAgICAgICAgICAgaXNfZmls
ZSA9IG9zLnBhdGguaXNmaWxlKCBmdWxsX3BhdGggKQorICAgICAgICAgICAgICAgIGxpbmsgPSBv
cy5wYXRoLmlzbGluayhmdWxsX3BhdGgpCisgICAgICAgICAgICAgICAgaXNfZmlsZSA9IG9zLnBh
dGguaXNmaWxlKGZ1bGxfcGF0aCkKICAgICAgICAgICAgICAgICBpZiBub3QgaXNfZmlsZSBhbmQg
bm90IGlzX2RpcjoKICMjICAgICAgICAgICAgICAgICAgICBwcmludCAnPT4gdW5rbm93biBlbnRy
eSB0eXBlJwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtMTQ1LDU3ICsxNDksNTcg
QEAgZGVmIGdsb2IoZGlyX3BhdGgsCiAjIyAgICAgICAgICAgICAgICBwcmludCAnPT4gdHlwZTog
JWQnICUgZW50cnlfdHlwZSwgCiAgICAgICAgICAgICAgICAgaWYgKGVudHJ5X3R5cGUgJiBlbnRy
eV90eXBlX2ZpbHRlcikgIT0gMDoKICMjICAgICAgICAgICAgICAgICAgICBwcmludCAnID0+IEtF
RVAnCi0gICAgICAgICAgICAgICAgICAgIHlpZWxkIG9zLnBhdGguam9pbiggZGlyX3BhdGgsIGVu
dHJ5ICkKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgb3MucGF0aC5qb2luKGRpcl9wYXRoLCBl
bnRyeSkKICMjICAgICAgICAgICAgICAgIGVsc2U6CiAjIyAgICAgICAgICAgICAgICAgICAgcHJp
bnQgJyA9PiBUWVBFIFJFSkVDVEVEJwotICAgIHJldHVybiBsaXN0KCBnbG9iX2ltcGwoIGRpcl9w
YXRoICkgKQorICAgIHJldHVybiBsaXN0KGdsb2JfaW1wbChkaXJfcGF0aCkpCiAKIAogaWYgX19u
YW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICBpbXBvcnQgdW5pdHRlc3QKIAogICAgIGNsYXNzIEFu
dFBhdHRlcm5Ub1JFVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0jIyAgICAgICAgZGVmIHRlc3Rf
Y29udmVyc2lvbiggc2VsZiApOgotIyMgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCAnXnNv
bWVwYXRoJCcsIGFudF9wYXR0ZXJuX3RvX3JlKCAnc29tZXBhdGgnICkucGF0dGVybiApCisjIyAg
ICAgICAgZGVmIHRlc3RfY29udmVyc2lvbihzZWxmKToKKyMjICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXnNvbWVwYXRoJCcsIGFudF9wYXR0ZXJuX3RvX3JlKCdzb21lcGF0aCcpLnBhdHRl
cm4pCiAKLSAgICAgICAgZGVmIHRlc3RfbWF0Y2hpbmcoIHNlbGYgKToKLSAgICAgICAgICAgIHRl
c3RfY2FzZXMgPSBbICggJ3BhdGgnLAorICAgICAgICBkZWYgdGVzdF9tYXRjaGluZyhzZWxmKToK
KyAgICAgICAgICAgIHRlc3RfY2FzZXMgPSBbICgncGF0aCcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsncGF0aCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NvbWVw
YXRoJywgJ3BhdGhzdWZmaXgnLCAnL3BhdGgnLCAnL3BhdGgnXSApLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCAnKi5weScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc29t
ZXBhdGgnLCAncGF0aHN1ZmZpeCcsICcvcGF0aCcsICcvcGF0aCddKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgnKi5weScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc291
cmNlLnB5JywgJ3NvdXJjZS5leHQucHknLCAnLnB5J10sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsncGF0aC9zb3VyY2UucHknLCAnLy5weScsICdkaXIucHkveicsICd6LnB5YycsICd6
LmMnXSApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAnKiovcGF0aCcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsncGF0aC9zb3VyY2UucHknLCAnLy5weScsICdkaXIucHkv
eicsICd6LnB5YycsICd6LmMnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJyoqL3Bh
dGgnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3BhdGgnLCAnL3BhdGgnLCAnL2Ev
cGF0aCcsICdjOi9hL3BhdGgnLCAnL2EvYi9wYXRoJywgJy8vYS9wYXRoJywgJy9hL3BhdGgvYi9w
YXRoJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsncGF0aC8nLCAnYS9wYXRoL2In
LCAnZGlyLnB5L3onLCAnc29tZXBhdGgnLCAncGF0aHN1ZmZpeCcsICdhL3NvbWVwYXRoJ10gKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICggJ3BhdGgvKionLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJ3BhdGgvJywgJ2EvcGF0aC9iJywgJ2Rpci5weS96JywgJ3NvbWVwYXRo
JywgJ3BhdGhzdWZmaXgnLCAnYS9zb21lcGF0aCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgncGF0aC8qKicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsncGF0aC9hJywg
J3BhdGgvcGF0aC9hJywgJ3BhdGgvLyddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
J3BhdGgnLCAnc29tZXBhdGgvYScsICdhL3BhdGgnLCAnYS9wYXRoL2EnLCAncGF0aHN1ZmZpeC9h
J10gKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICggJy8qKi9wYXRoJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWydwYXRoJywgJ3NvbWVwYXRoL2EnLCAnYS9wYXRoJywgJ2Ev
cGF0aC9hJywgJ3BhdGhzdWZmaXgvYSddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgn
LyoqL3BhdGgnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJy9wYXRoJywgJy9hL3Bh
dGgnLCAnL2EvYi9wYXRoL3BhdGgnLCAnL3BhdGgvcGF0aCddLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbJ3BhdGgnLCAncGF0aC8nLCAnYS9wYXRoJywgJy9wYXRoc3VmZml4JywgJy9z
b21lcGF0aCddICksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoICdhL2InLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbJ3BhdGgnLCAncGF0aC8nLCAnYS9wYXRoJywgJy9wYXRo
c3VmZml4JywgJy9zb21lcGF0aCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYS9i
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydhL2InXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWydzb21lYS9iJywgJ2EvYnN1ZmZpeCcsICdhL2IvYyddICksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAoICcqKi8qLnB5JywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWydzb21lYS9iJywgJ2EvYnN1ZmZpeCcsICdhL2IvYyddKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgnKiovKi5weScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnc2NyaXB0LnB5JywgJ3NyYy9zY3JpcHQucHknLCAnYS9iL3NjcmlwdC5weScsICcvYS9iL3Nj
cmlwdC5weSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NjcmlwdC5weWMnLCAn
c2NyaXB0LnB5bycsICdhLnB5L2InXSApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAn
c3JjLyoqLyoucHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NjcmlwdC5weWMn
LCAnc2NyaXB0LnB5bycsICdhLnB5L2InXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo
J3NyYy8qKi8qLnB5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzcmMvYS5weScs
ICdzcmMvZGlyL2EucHknXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydhL3NyYy9h
LnB5JywgJy9zcmMvYS5weSddICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYS9z
cmMvYS5weScsICcvc3JjL2EucHknXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAg
ICAgICAgICAgICBmb3IgYW50X3BhdHRlcm4sIGFjY2VwdGVkX21hdGNoZXMsIHJlamVjdGVkX21h
dGNoZXMgaW4gbGlzdCh0ZXN0X2Nhc2VzKToKLSAgICAgICAgICAgICAgICBkZWYgbG9jYWxfcGF0
aCggcGF0aHMgKToKKyAgICAgICAgICAgICAgICBkZWYgbG9jYWxfcGF0aChwYXRocyk6CiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBbIHAucmVwbGFjZSgnLycsb3MucGF0aC5zZXApIGZvciBw
IGluIHBhdGhzIF0KLSAgICAgICAgICAgICAgICB0ZXN0X2Nhc2VzLmFwcGVuZCggKGFudF9wYXR0
ZXJuLCBsb2NhbF9wYXRoKGFjY2VwdGVkX21hdGNoZXMpLCBsb2NhbF9wYXRoKCByZWplY3RlZF9t
YXRjaGVzICkpICkKKyAgICAgICAgICAgICAgICB0ZXN0X2Nhc2VzLmFwcGVuZCgoYW50X3BhdHRl
cm4sIGxvY2FsX3BhdGgoYWNjZXB0ZWRfbWF0Y2hlcyksIGxvY2FsX3BhdGgocmVqZWN0ZWRfbWF0
Y2hlcykpKQogICAgICAgICAgICAgZm9yIGFudF9wYXR0ZXJuLCBhY2NlcHRlZF9tYXRjaGVzLCBy
ZWplY3RlZF9tYXRjaGVzIGluIHRlc3RfY2FzZXM6Ci0gICAgICAgICAgICAgICAgcmV4ID0gYW50
X3BhdHRlcm5fdG9fcmUoIGFudF9wYXR0ZXJuICkKLSAgICAgICAgICAgICAgICBwcmludCAnYW50
X3BhdHRlcm46JywgYW50X3BhdHRlcm4sICcgPT4gJywgcmV4LnBhdHRlcm4KKyAgICAgICAgICAg
ICAgICByZXggPSBhbnRfcGF0dGVybl90b19yZShhbnRfcGF0dGVybikKKyAgICAgICAgICAgICAg
ICBwcmludCgnYW50X3BhdHRlcm46JywgYW50X3BhdHRlcm4sICcgPT4gJywgcmV4LnBhdHRlcm4p
CiAgICAgICAgICAgICAgICAgZm9yIGFjY2VwdGVkX21hdGNoIGluIGFjY2VwdGVkX21hdGNoZXM6
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICdBY2NlcHRlZD86JywgYWNjZXB0ZWRfbWF0Y2gK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRfKCByZXgubWF0Y2goIGFjY2VwdGVkX21h
dGNoICkgaXMgbm90IE5vbmUgKQorICAgICAgICAgICAgICAgICAgICBwcmludCgnQWNjZXB0ZWQ/
OicsIGFjY2VwdGVkX21hdGNoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUo
cmV4Lm1hdGNoKGFjY2VwdGVkX21hdGNoKSBpcyBub3QgTm9uZSkKICAgICAgICAgICAgICAgICBm
b3IgcmVqZWN0ZWRfbWF0Y2ggaW4gcmVqZWN0ZWRfbWF0Y2hlczoKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQgJ1JlamVjdGVkPzonLCByZWplY3RlZF9tYXRjaAotICAgICAgICAgICAgICAgICAg
ICBzZWxmLmFzc2VydF8oIHJleC5tYXRjaCggcmVqZWN0ZWRfbWF0Y2ggKSBpcyBOb25lICkKKyAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoJ1JlamVjdGVkPzonLCByZWplY3RlZF9tYXRjaCkKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJleC5tYXRjaChyZWplY3RlZF9tYXRj
aCkgaXMgTm9uZSkKIAogICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0
b29scy9iYXRjaGJ1aWxkLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9iYXRjaGJ1aWxkLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlYjA2OTBlOGM2ZDczYWQxZWU4YjM2MzFjZWY3Zjk5MTU0N2Y0ODkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL2RldnRvb2xzL2JhdGNoYnVpbGQucHkKQEAgLTAsMCArMSwyNzggQEAKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBjb2xsZWN0aW9ucwor
aW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IG9zLnBhdGgK
K2ltcG9ydCByZQoraW1wb3J0IHNodXRpbAoraW1wb3J0IHN0cmluZworaW1wb3J0IHN1YnByb2Nl
c3MKK2ltcG9ydCBzeXMKK2ltcG9ydCBjZ2kKKworY2xhc3MgQnVpbGREZXNjOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwcmVwZW5kX2VudnM9Tm9uZSwgdmFyaWFibGVzPU5vbmUsIGJ1aWxkX3R5
cGU9Tm9uZSwgZ2VuZXJhdG9yPU5vbmUpOgorICAgICAgICBzZWxmLnByZXBlbmRfZW52cyA9IHBy
ZXBlbmRfZW52cyBvciBbXSAjIFsgeyAidmFyIjogInZhbHVlIiB9IF0KKyAgICAgICAgc2VsZi52
YXJpYWJsZXMgPSB2YXJpYWJsZXMgb3IgW10KKyAgICAgICAgc2VsZi5idWlsZF90eXBlID0gYnVp
bGRfdHlwZQorICAgICAgICBzZWxmLmdlbmVyYXRvciA9IGdlbmVyYXRvcgorCisgICAgZGVmIG1l
cmdlZF93aXRoKHNlbGYsIGJ1aWxkX2Rlc2MpOgorICAgICAgICAiIiJSZXR1cm5zIGEgbmV3IEJ1
aWxkRGVzYyBieSBtZXJnaW5nIGZpZWxkIGNvbnRlbnQuCisgICAgICAgICAgIFByZWZlciBidWls
ZF9kZXNjIGZpZWxkcyB0byBzZWxmIGZpZWxkcyBmb3Igc2luZ2xlIHZhbHVlZCBmaWVsZC4KKyAg
ICAgICAgIiIiCisgICAgICAgIHJldHVybiBCdWlsZERlc2Moc2VsZi5wcmVwZW5kX2VudnMgKyBi
dWlsZF9kZXNjLnByZXBlbmRfZW52cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52
YXJpYWJsZXMgKyBidWlsZF9kZXNjLnZhcmlhYmxlcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnVpbGRfZGVzYy5idWlsZF90eXBlIG9yIHNlbGYuYnVpbGRfdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnVpbGRfZGVzYy5nZW5lcmF0b3Igb3Igc2VsZi5nZW5lcmF0b3IpCisK
KyAgICBkZWYgZW52KHNlbGYpOgorICAgICAgICBlbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5KCkK
KyAgICAgICAgZm9yIHZhbHVlc19ieV9uYW1lIGluIHNlbGYucHJlcGVuZF9lbnZzOgorICAgICAg
ICAgICAgZm9yIHZhciwgdmFsdWUgaW4gbGlzdCh2YWx1ZXNfYnlfbmFtZS5pdGVtcygpKToKKyAg
ICAgICAgICAgICAgICB2YXIgPSB2YXIudXBwZXIoKQorICAgICAgICAgICAgICAgIGlmIHR5cGUo
dmFsdWUpIGlzIHVuaWNvZGU6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZW5j
b2RlKHN5cy5nZXRkZWZhdWx0ZW5jb2RpbmcoKSkKKyAgICAgICAgICAgICAgICBpZiB2YXIgaW4g
ZW52aXJvbjoKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvblt2YXJdID0gdmFsdWUgKyBvcy5w
YXRoc2VwICsgZW52aXJvblt2YXJdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgZW52aXJvblt2YXJdID0gdmFsdWUKKyAgICAgICAgcmV0dXJuIGVudmlyb24KKwor
ICAgIGRlZiBjbWFrZV9hcmdzKHNlbGYpOgorICAgICAgICBhcmdzID0gWyItRCVzIiAlIHZhciBm
b3IgdmFyIGluIHNlbGYudmFyaWFibGVzXQorICAgICAgICAjIHNraXAgYnVpbGQgdHlwZSBmb3Ig
VmlzdWFsIFN0dWRpbyBzb2x1dGlvbiBhcyBpdCBjYXVzZSB3YXJuaW5nCisgICAgICAgIGlmIHNl
bGYuYnVpbGRfdHlwZSBhbmQgJ1Zpc3VhbCcgbm90IGluIHNlbGYuZ2VuZXJhdG9yOgorICAgICAg
ICAgICAgYXJncy5hcHBlbmQoIi1EQ01BS0VfQlVJTERfVFlQRT0lcyIgJSBzZWxmLmJ1aWxkX3R5
cGUpCisgICAgICAgIGlmIHNlbGYuZ2VuZXJhdG9yOgorICAgICAgICAgICAgYXJncy5leHRlbmQo
WyctRycsIHNlbGYuZ2VuZXJhdG9yXSkKKyAgICAgICAgcmV0dXJuIGFyZ3MKKworICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJCdWlsZERlc2MoJXMsIGJ1aWxkX3R5cGU9
JXMpIiAlICAoIiAiLmpvaW4oc2VsZi5jbWFrZV9hcmdzKCkpLCBzZWxmLmJ1aWxkX3R5cGUpCisK
K2NsYXNzIEJ1aWxkRGF0YToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVzYywgd29ya19kaXIs
IHNvdXJjZV9kaXIpOgorICAgICAgICBzZWxmLmRlc2MgPSBkZXNjCisgICAgICAgIHNlbGYud29y
a19kaXIgPSB3b3JrX2RpcgorICAgICAgICBzZWxmLnNvdXJjZV9kaXIgPSBzb3VyY2VfZGlyCisg
ICAgICAgIHNlbGYuY21ha2VfbG9nX3BhdGggPSBvcy5wYXRoLmpvaW4od29ya19kaXIsICdiYXRj
aGJ1aWxkX2NtYWtlLmxvZycpCisgICAgICAgIHNlbGYuYnVpbGRfbG9nX3BhdGggPSBvcy5wYXRo
LmpvaW4od29ya19kaXIsICdiYXRjaGJ1aWxkX2J1aWxkLmxvZycpCisgICAgICAgIHNlbGYuY21h
a2Vfc3VjY2VlZGVkID0gRmFsc2UKKyAgICAgICAgc2VsZi5idWlsZF9zdWNjZWVkZWQgPSBGYWxz
ZQorCisgICAgZGVmIGV4ZWN1dGVfYnVpbGQoc2VsZik6CisgICAgICAgIHByaW50KCdCdWlsZCAl
cycgJSBzZWxmLmRlc2MpCisgICAgICAgIHNlbGYuX21ha2VfbmV3X3dvcmtfZGlyKCkKKyAgICAg
ICAgc2VsZi5jbWFrZV9zdWNjZWVkZWQgPSBzZWxmLl9nZW5lcmF0ZV9tYWtlZmlsZXMoKQorICAg
ICAgICBpZiBzZWxmLmNtYWtlX3N1Y2NlZWRlZDoKKyAgICAgICAgICAgIHNlbGYuYnVpbGRfc3Vj
Y2VlZGVkID0gc2VsZi5fYnVpbGRfdXNpbmdfbWFrZWZpbGVzKCkKKyAgICAgICAgcmV0dXJuIHNl
bGYuYnVpbGRfc3VjY2VlZGVkCisKKyAgICBkZWYgX2dlbmVyYXRlX21ha2VmaWxlcyhzZWxmKToK
KyAgICAgICAgcHJpbnQoJyAgR2VuZXJhdGluZyBtYWtlZmlsZXM6ICcsIGVuZD0nICcpCisgICAg
ICAgIGNtZCA9IFsnY21ha2UnXSArIHNlbGYuZGVzYy5jbWFrZV9hcmdzKCkgKyBbb3MucGF0aC5h
YnNwYXRoKHNlbGYuc291cmNlX2RpcildCisgICAgICAgIHN1Y2NlZWRlZCA9IHNlbGYuX2V4ZWN1
dGVfYnVpbGRfc3VicHJvY2VzcyhjbWQsIHNlbGYuZGVzYy5lbnYoKSwgc2VsZi5jbWFrZV9sb2df
cGF0aCkKKyAgICAgICAgcHJpbnQoJ2RvbmUnIGlmIHN1Y2NlZWRlZCBlbHNlICdGQUlMRUQnKQor
ICAgICAgICByZXR1cm4gc3VjY2VlZGVkCisKKyAgICBkZWYgX2J1aWxkX3VzaW5nX21ha2VmaWxl
cyhzZWxmKToKKyAgICAgICAgcHJpbnQoJyAgQnVpbGRpbmc6JywgZW5kPScgJykKKyAgICAgICAg
Y21kID0gWydjbWFrZScsICctLWJ1aWxkJywgc2VsZi53b3JrX2Rpcl0KKyAgICAgICAgaWYgc2Vs
Zi5kZXNjLmJ1aWxkX3R5cGU6CisgICAgICAgICAgICBjbWQgKz0gWyctLWNvbmZpZycsIHNlbGYu
ZGVzYy5idWlsZF90eXBlXQorICAgICAgICBzdWNjZWVkZWQgPSBzZWxmLl9leGVjdXRlX2J1aWxk
X3N1YnByb2Nlc3MoY21kLCBzZWxmLmRlc2MuZW52KCksIHNlbGYuYnVpbGRfbG9nX3BhdGgpCisg
ICAgICAgIHByaW50KCdkb25lJyBpZiBzdWNjZWVkZWQgZWxzZSAnRkFJTEVEJykKKyAgICAgICAg
cmV0dXJuIHN1Y2NlZWRlZAorCisgICAgZGVmIF9leGVjdXRlX2J1aWxkX3N1YnByb2Nlc3Moc2Vs
ZiwgY21kLCBlbnYsIGxvZ19wYXRoKToKKyAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9w
ZW4oY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQs
IGN3ZD1zZWxmLndvcmtfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW52PWVudikKKyAgICAgICAgc3Rkb3V0LCBfID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCisgICAg
ICAgIHN1Y2NlZWRlZCA9IChwcm9jZXNzLnJldHVybmNvZGUgPT0gMCkKKyAgICAgICAgd2l0aCBv
cGVuKGxvZ19wYXRoLCAnd2InKSBhcyBmbG9nOgorICAgICAgICAgICAgbG9nID0gJyAnLmpvaW4o
Y21kKSArICdcbicgKyBzdGRvdXQgKyAnXG5FeGl0IGNvZGU6ICVyXG4nICUgcHJvY2Vzcy5yZXR1
cm5jb2RlCisgICAgICAgICAgICBmbG9nLndyaXRlKGZpeF9lb2wobG9nKSkKKyAgICAgICAgcmV0
dXJuIHN1Y2NlZWRlZAorCisgICAgZGVmIF9tYWtlX25ld193b3JrX2RpcihzZWxmKToKKyAgICAg
ICAgaWYgb3MucGF0aC5pc2RpcihzZWxmLndvcmtfZGlyKToKKyAgICAgICAgICAgIHByaW50KCcg
IFJlbW92aW5nIHdvcmsgZGlyZWN0b3J5Jywgc2VsZi53b3JrX2RpcikKKyAgICAgICAgICAgIHNo
dXRpbC5ybXRyZWUoc2VsZi53b3JrX2RpciwgaWdub3JlX2Vycm9ycz1UcnVlKQorICAgICAgICBp
ZiBub3Qgb3MucGF0aC5pc2RpcihzZWxmLndvcmtfZGlyKToKKyAgICAgICAgICAgIG9zLm1ha2Vk
aXJzKHNlbGYud29ya19kaXIpCisKK2RlZiBmaXhfZW9sKHN0ZG91dCk6CisgICAgIiIiRml4ZXMg
d3JvbmcgRU9MIHByb2R1Y2VkIGJ5IGNtYWtlIC0tYnVpbGQgb24gV2luZG93cyAoXHJcclxuIGlu
c3RlYWQgb2YgXHJcbikuCisgICAgIiIiCisgICAgcmV0dXJuIHJlLnN1YignXHIqXG4nLCBvcy5s
aW5lc2VwLCBzdGRvdXQpCisKK2RlZiBsb2FkX2J1aWxkX3ZhcmlhbnRzX2Zyb21fY29uZmlnKGNv
bmZpZ19wYXRoKToKKyAgICB3aXRoIG9wZW4oY29uZmlnX3BhdGgsICdyYicpIGFzIGZjb25maWc6
CisgICAgICAgIGRhdGEgPSBqc29uLmxvYWQoZmNvbmZpZykKKyAgICB2YXJpYW50cyA9IGRhdGFb
ICdjbWFrZV92YXJpYW50cycgXQorICAgIGJ1aWxkX2Rlc2NzX2J5X2F4aXMgPSBjb2xsZWN0aW9u
cy5kZWZhdWx0ZGljdChsaXN0KQorICAgIGZvciBheGlzIGluIHZhcmlhbnRzOgorICAgICAgICBh
eGlzX25hbWUgPSBheGlzWyJuYW1lIl0KKyAgICAgICAgYnVpbGRfZGVzY3MgPSBbXQorICAgICAg
ICBpZiAiZ2VuZXJhdG9ycyIgaW4gYXhpczoKKyAgICAgICAgICAgIGZvciBnZW5lcmF0b3JfZGF0
YSBpbiBheGlzWyJnZW5lcmF0b3JzIl06CisgICAgICAgICAgICAgICAgZm9yIGdlbmVyYXRvciBp
biBnZW5lcmF0b3JfZGF0YVsiZ2VuZXJhdG9yIl06CisgICAgICAgICAgICAgICAgICAgIGJ1aWxk
X2Rlc2MgPSBCdWlsZERlc2MoZ2VuZXJhdG9yPWdlbmVyYXRvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlcGVuZF9lbnZzPWdlbmVyYXRvcl9kYXRhLmdl
dCgiZW52X3ByZXBlbmQiKSkKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRfZGVzY3MuYXBwZW5k
KGJ1aWxkX2Rlc2MpCisgICAgICAgIGVsaWYgInZhcmlhYmxlcyIgaW4gYXhpczoKKyAgICAgICAg
ICAgIGZvciB2YXJpYWJsZXMgaW4gYXhpc1sidmFyaWFibGVzIl06CisgICAgICAgICAgICAgICAg
YnVpbGRfZGVzYyA9IEJ1aWxkRGVzYyh2YXJpYWJsZXM9dmFyaWFibGVzKQorICAgICAgICAgICAg
ICAgIGJ1aWxkX2Rlc2NzLmFwcGVuZChidWlsZF9kZXNjKQorICAgICAgICBlbGlmICJidWlsZF90
eXBlcyIgaW4gYXhpczoKKyAgICAgICAgICAgIGZvciBidWlsZF90eXBlIGluIGF4aXNbImJ1aWxk
X3R5cGVzIl06CisgICAgICAgICAgICAgICAgYnVpbGRfZGVzYyA9IEJ1aWxkRGVzYyhidWlsZF90
eXBlPWJ1aWxkX3R5cGUpCisgICAgICAgICAgICAgICAgYnVpbGRfZGVzY3MuYXBwZW5kKGJ1aWxk
X2Rlc2MpCisgICAgICAgIGJ1aWxkX2Rlc2NzX2J5X2F4aXNbYXhpc19uYW1lXS5leHRlbmQoYnVp
bGRfZGVzY3MpCisgICAgcmV0dXJuIGJ1aWxkX2Rlc2NzX2J5X2F4aXMKKworZGVmIGdlbmVyYXRl
X2J1aWxkX3ZhcmlhbnRzKGJ1aWxkX2Rlc2NzX2J5X2F4aXMpOgorICAgICIiIlJldHVybnMgYSBs
aXN0IG9mIEJ1aWxkRGVzYyBnZW5lcmF0ZWQgZm9yIHRoZSBwYXJ0aWFsIEJ1aWxkRGVzYyBmb3Ig
ZWFjaCBheGlzLiIiIgorICAgIGF4aXNfbmFtZXMgPSBsaXN0KGJ1aWxkX2Rlc2NzX2J5X2F4aXMu
a2V5cygpKQorICAgIGJ1aWxkX2Rlc2NzID0gW10KKyAgICBmb3IgYXhpc19uYW1lLCBheGlzX2J1
aWxkX2Rlc2NzIGluIGxpc3QoYnVpbGRfZGVzY3NfYnlfYXhpcy5pdGVtcygpKToKKyAgICAgICAg
aWYgbGVuKGJ1aWxkX2Rlc2NzKToKKyAgICAgICAgICAgICMgZm9yIGVhY2ggZXhpc3RpbmcgYnVp
bGRfZGVzYyBhbmQgZWFjaCBheGlzIGJ1aWxkIGRlc2MsIGNyZWF0ZSBhIG5ldyBidWlsZF9kZXNj
CisgICAgICAgICAgICBuZXdfYnVpbGRfZGVzY3MgPSBbXQorICAgICAgICAgICAgZm9yIHByb3Rv
dHlwZV9idWlsZF9kZXNjLCBheGlzX2J1aWxkX2Rlc2MgaW4gaXRlcnRvb2xzLnByb2R1Y3QoYnVp
bGRfZGVzY3MsIGF4aXNfYnVpbGRfZGVzY3MpOgorICAgICAgICAgICAgICAgIG5ld19idWlsZF9k
ZXNjcy5hcHBlbmQocHJvdG90eXBlX2J1aWxkX2Rlc2MubWVyZ2VkX3dpdGgoYXhpc19idWlsZF9k
ZXNjKSkKKyAgICAgICAgICAgIGJ1aWxkX2Rlc2NzID0gbmV3X2J1aWxkX2Rlc2NzCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBidWlsZF9kZXNjcyA9IGF4aXNfYnVpbGRfZGVzY3MKKyAgICBy
ZXR1cm4gYnVpbGRfZGVzY3MKKworSFRNTF9URU1QTEFURSA9IHN0cmluZy5UZW1wbGF0ZSgnJyc8
aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT4kdGl0bGU8L3RpdGxlPgorICAgIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisgICAgdGQuZmFpbGVkIHtiYWNrZ3JvdW5kLWNvbG9yOiNmMDgwODA7fQor
ICAgIHRkLm9rIHtiYWNrZ3JvdW5kLWNvbG9yOiNjMGVlYzA7fQorICAgIDwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzx0YWJsZSBib3JkZXI9IjEiPgorPHRoZWFkPgorICAgIDx0cj4KKyAgICAg
ICAgPHRoPlZhcmlhYmxlczwvdGg+CisgICAgICAgICR0aF92YXJzCisgICAgPC90cj4KKyAgICA8
dHI+CisgICAgICAgIDx0aD5CdWlsZCB0eXBlPC90aD4KKyAgICAgICAgJHRoX2J1aWxkX3R5cGVz
CisgICAgPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+CiskdHJfYnVpbGRzCis8L3Rib2R5PgorPC90
YWJsZT4KKzwvYm9keT48L2h0bWw+JycnKQorCitkZWYgZ2VuZXJhdGVfaHRtbF9yZXBvcnQoaHRt
bF9yZXBvcnRfcGF0aCwgYnVpbGRzKToKKyAgICByZXBvcnRfZGlyID0gb3MucGF0aC5kaXJuYW1l
KGh0bWxfcmVwb3J0X3BhdGgpCisgICAgIyBWZXJ0aWNhbCBheGlzOiBnZW5lcmF0b3IKKyAgICAj
IEhvcml6b250YWw6IHZhcmlhYmxlcywgdGhlbiBidWlsZF90eXBlCisgICAgYnVpbGRzX2J5X2dl
bmVyYXRvciA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KGxpc3QpCisgICAgdmFyaWFibGVzID0g
c2V0KCkKKyAgICBidWlsZF90eXBlc19ieV92YXJpYWJsZSA9IGNvbGxlY3Rpb25zLmRlZmF1bHRk
aWN0KHNldCkKKyAgICBidWlsZF9ieV9wb3Nfa2V5ID0ge30gIyB7IChnZW5lcmF0b3IsIHZhcl9r
ZXksIGJ1aWxkX3R5cGUpOiBidWlsZCB9CisgICAgZm9yIGJ1aWxkIGluIGJ1aWxkczoKKyAgICAg
ICAgYnVpbGRzX2J5X2dlbmVyYXRvcltidWlsZC5kZXNjLmdlbmVyYXRvcl0uYXBwZW5kKGJ1aWxk
KQorICAgICAgICB2YXJfa2V5ID0gdHVwbGUoc29ydGVkKGJ1aWxkLmRlc2MudmFyaWFibGVzKSkK
KyAgICAgICAgdmFyaWFibGVzLmFkZCh2YXJfa2V5KQorICAgICAgICBidWlsZF90eXBlc19ieV92
YXJpYWJsZVt2YXJfa2V5XS5hZGQoYnVpbGQuZGVzYy5idWlsZF90eXBlKQorICAgICAgICBwb3Nf
a2V5ID0gKGJ1aWxkLmRlc2MuZ2VuZXJhdG9yLCB2YXJfa2V5LCBidWlsZC5kZXNjLmJ1aWxkX3R5
cGUpCisgICAgICAgIGJ1aWxkX2J5X3Bvc19rZXlbcG9zX2tleV0gPSBidWlsZAorICAgIHZhcmlh
YmxlcyA9IHNvcnRlZCh2YXJpYWJsZXMpCisgICAgdGhfdmFycyA9IFtdCisgICAgdGhfYnVpbGRf
dHlwZXMgPSBbXQorICAgIGZvciB2YXJpYWJsZSBpbiB2YXJpYWJsZXM6CisgICAgICAgIGJ1aWxk
X3R5cGVzID0gc29ydGVkKGJ1aWxkX3R5cGVzX2J5X3ZhcmlhYmxlW3ZhcmlhYmxlXSkKKyAgICAg
ICAgbmJfYnVpbGRfdHlwZSA9IGxlbihidWlsZF90eXBlc19ieV92YXJpYWJsZVt2YXJpYWJsZV0p
CisgICAgICAgIHRoX3ZhcnMuYXBwZW5kKCc8dGggY29sc3Bhbj0iJWQiPiVzPC90aD4nICUgKG5i
X2J1aWxkX3R5cGUsIGNnaS5lc2NhcGUoJyAnLmpvaW4odmFyaWFibGUpKSkpCisgICAgICAgIGZv
ciBidWlsZF90eXBlIGluIGJ1aWxkX3R5cGVzOgorICAgICAgICAgICAgdGhfYnVpbGRfdHlwZXMu
YXBwZW5kKCc8dGg+JXM8L3RoPicgJSBjZ2kuZXNjYXBlKGJ1aWxkX3R5cGUpKQorICAgIHRyX2J1
aWxkcyA9IFtdCisgICAgZm9yIGdlbmVyYXRvciBpbiBzb3J0ZWQoYnVpbGRzX2J5X2dlbmVyYXRv
cik6CisgICAgICAgIHRkcyA9IFsgJzx0ZD4lczwvdGQ+XG4nICUgY2dpLmVzY2FwZShnZW5lcmF0
b3IpIF0KKyAgICAgICAgZm9yIHZhcmlhYmxlIGluIHZhcmlhYmxlczoKKyAgICAgICAgICAgIGJ1
aWxkX3R5cGVzID0gc29ydGVkKGJ1aWxkX3R5cGVzX2J5X3ZhcmlhYmxlW3ZhcmlhYmxlXSkKKyAg
ICAgICAgICAgIGZvciBidWlsZF90eXBlIGluIGJ1aWxkX3R5cGVzOgorICAgICAgICAgICAgICAg
IHBvc19rZXkgPSAoZ2VuZXJhdG9yLCB2YXJpYWJsZSwgYnVpbGRfdHlwZSkKKyAgICAgICAgICAg
ICAgICBidWlsZCA9IGJ1aWxkX2J5X3Bvc19rZXkuZ2V0KHBvc19rZXkpCisgICAgICAgICAgICAg
ICAgaWYgYnVpbGQ6CisgICAgICAgICAgICAgICAgICAgIGNtYWtlX3N0YXR1cyA9ICdvaycgaWYg
YnVpbGQuY21ha2Vfc3VjY2VlZGVkIGVsc2UgJ0ZBSUxFRCcKKyAgICAgICAgICAgICAgICAgICAg
YnVpbGRfc3RhdHVzID0gJ29rJyBpZiBidWlsZC5idWlsZF9zdWNjZWVkZWQgZWxzZSAnRkFJTEVE
JworICAgICAgICAgICAgICAgICAgICBjbWFrZV9sb2dfdXJsID0gb3MucGF0aC5yZWxwYXRoKGJ1
aWxkLmNtYWtlX2xvZ19wYXRoLCByZXBvcnRfZGlyKQorICAgICAgICAgICAgICAgICAgICBidWls
ZF9sb2dfdXJsID0gb3MucGF0aC5yZWxwYXRoKGJ1aWxkLmJ1aWxkX2xvZ19wYXRoLCByZXBvcnRf
ZGlyKQorICAgICAgICAgICAgICAgICAgICB0ZCA9ICc8dGQgY2xhc3M9IiVzIj48YSBocmVmPSIl
cyIgY2xhc3M9IiVzIj5DTWFrZTogJXM8L2E+JyAlICggICAgICAgICAgICAgICAgICAgICAgICBi
dWlsZF9zdGF0dXMubG93ZXIoKSwgY21ha2VfbG9nX3VybCwgY21ha2Vfc3RhdHVzLmxvd2VyKCks
IGNtYWtlX3N0YXR1cykKKyAgICAgICAgICAgICAgICAgICAgaWYgYnVpbGQuY21ha2Vfc3VjY2Vl
ZGVkOgorICAgICAgICAgICAgICAgICAgICAgICAgdGQgKz0gJzxicj48YSBocmVmPSIlcyIgY2xh
c3M9IiVzIj5CdWlsZDogJXM8L2E+JyAlICggICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVp
bGRfbG9nX3VybCwgYnVpbGRfc3RhdHVzLmxvd2VyKCksIGJ1aWxkX3N0YXR1cykKKyAgICAgICAg
ICAgICAgICAgICAgdGQgKz0gJzwvdGQ+JworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIHRkID0gJzx0ZD48L3RkPicKKyAgICAgICAgICAgICAgICB0ZHMuYXBwZW5k
KHRkKQorICAgICAgICB0cl9idWlsZHMuYXBwZW5kKCc8dHI+JXM8L3RyPicgJSAnXG4nLmpvaW4o
dGRzKSkKKyAgICBodG1sID0gSFRNTF9URU1QTEFURS5zdWJzdGl0dXRlKCAgICAgICAgdGl0bGU9
J0JhdGNoIGJ1aWxkIHJlcG9ydCcsCisgICAgICAgIHRoX3ZhcnM9JyAnLmpvaW4odGhfdmFycyks
CisgICAgICAgIHRoX2J1aWxkX3R5cGVzPScgJy5qb2luKHRoX2J1aWxkX3R5cGVzKSwKKyAgICAg
ICAgdHJfYnVpbGRzPSdcbicuam9pbih0cl9idWlsZHMpKQorICAgIHdpdGggb3BlbihodG1sX3Jl
cG9ydF9wYXRoLCAnd3QnKSBhcyBmaHRtbDoKKyAgICAgICAgZmh0bWwud3JpdGUoaHRtbCkKKyAg
ICBwcmludCgnSFRNTCByZXBvcnQgZ2VuZXJhdGVkIGluOicsIGh0bWxfcmVwb3J0X3BhdGgpCisK
K2RlZiBtYWluKCk6CisgICAgdXNhZ2UgPSByIiIiJXByb2cgV09SS19ESVIgU09VUkNFX0RJUiBD
T05GSUdfSlNPTl9QQVRIIFtDT05GSUcyX0pTT05fUEFUSC4uLl0KK0J1aWxkIGEgZ2l2ZW4gQ01h
a2UgYmFzZWQgcHJvamVjdCBsb2NhdGVkIGluIFNPVVJDRV9ESVIgd2l0aCBtdWx0aXBsZSBnZW5l
cmF0b3JzL29wdGlvbnMuZHJ5X3J1bgorYXMgZGVzY3JpYmVkIGluIENPTkZJR19KU09OX1BBVEgg
YnVpbGRpbmcgaW4gV09SS19ESVIuCisKK0V4YW1wbGUgb2YgY2FsbDoKK3B5dGhvbiBkZXZ0b29s
c1xiYXRjaGJ1aWxkLnB5IGU6XGJ1aWxkYm90c1xqc29uY3BwXGJ1aWxkIC4gZGV2dG9vbHNcYWdl
bnRfdm13Ny5qc29uCisiIiIKKyAgICBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIK
KyAgICBwYXJzZXIgPSBPcHRpb25QYXJzZXIodXNhZ2U9dXNhZ2UpCisgICAgcGFyc2VyLmFsbG93
X2ludGVyc3BlcnNlZF9hcmdzID0gVHJ1ZQorIyAgICBwYXJzZXIuYWRkX29wdGlvbignLXYnLCAn
LS12ZXJib3NlJywgZGVzdD0idmVyYm9zZSIsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisjICAgICAg
ICBoZWxwPSIiIkJlIHZlcmJvc2UuIiIiKQorICAgIHBhcnNlci5lbmFibGVfaW50ZXJzcGVyc2Vk
X2FyZ3MoKQorICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgaWYg
bGVuKGFyZ3MpIDwgMzoKKyAgICAgICAgcGFyc2VyLmVycm9yKCJNaXNzaW5nIG9uZSBvZiBXT1JL
X0RJUiBTT1VSQ0VfRElSIENPTkZJR19KU09OX1BBVEguIikKKyAgICB3b3JrX2RpciA9IGFyZ3Nb
MF0KKyAgICBzb3VyY2VfZGlyID0gYXJnc1sxXS5yc3RyaXAoJy9cXCcpCisgICAgY29uZmlnX3Bh
dGhzID0gYXJnc1syOl0KKyAgICBmb3IgY29uZmlnX3BhdGggaW4gY29uZmlnX3BhdGhzOgorICAg
ICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoY29uZmlnX3BhdGgpOgorICAgICAgICAgICAgcGFy
c2VyLmVycm9yKCJDYW4gbm90IHJlYWQ6ICVyIiAlIGNvbmZpZ19wYXRoKQorCisgICAgIyBnZW5l
cmF0ZSBidWlsZCB2YXJpYW50cworICAgIGJ1aWxkX2Rlc2NzID0gW10KKyAgICBmb3IgY29uZmln
X3BhdGggaW4gY29uZmlnX3BhdGhzOgorICAgICAgICBidWlsZF9kZXNjc19ieV9heGlzID0gbG9h
ZF9idWlsZF92YXJpYW50c19mcm9tX2NvbmZpZyhjb25maWdfcGF0aCkKKyAgICAgICAgYnVpbGRf
ZGVzY3MuZXh0ZW5kKGdlbmVyYXRlX2J1aWxkX3ZhcmlhbnRzKGJ1aWxkX2Rlc2NzX2J5X2F4aXMp
KQorICAgIHByaW50KCdCdWlsZCB2YXJpYW50cyAoJWQpOicgJSBsZW4oYnVpbGRfZGVzY3MpKQor
ICAgICMgYXNzaWduIGJ1aWxkIGRpcmVjdG9yeSBmb3IgZWFjaCB2YXJpYW50CisgICAgaWYgbm90
IG9zLnBhdGguaXNkaXIod29ya19kaXIpOgorICAgICAgICBvcy5tYWtlZGlycyh3b3JrX2RpcikK
KyAgICBidWlsZHMgPSBbXQorICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4od29ya19kaXIsICdt
YXRyaXgtZGlyLW1hcC50eHQnKSwgJ3d0JykgYXMgZm1hdHJpeG1hcDoKKyAgICAgICAgZm9yIGlu
ZGV4LCBidWlsZF9kZXNjIGluIGVudW1lcmF0ZShidWlsZF9kZXNjcyk6CisgICAgICAgICAgICBi
dWlsZF9kZXNjX3dvcmtfZGlyID0gb3MucGF0aC5qb2luKHdvcmtfZGlyLCAnJTAzZCcgJSAoaW5k
ZXgrMSkpCisgICAgICAgICAgICBidWlsZHMuYXBwZW5kKEJ1aWxkRGF0YShidWlsZF9kZXNjLCBi
dWlsZF9kZXNjX3dvcmtfZGlyLCBzb3VyY2VfZGlyKSkKKyAgICAgICAgICAgIGZtYXRyaXhtYXAu
d3JpdGUoJyVzOiAlc1xuJyAlIChidWlsZF9kZXNjX3dvcmtfZGlyLCBidWlsZF9kZXNjKSkKKyAg
ICBmb3IgYnVpbGQgaW4gYnVpbGRzOgorICAgICAgICBidWlsZC5leGVjdXRlX2J1aWxkKCkKKyAg
ICBodG1sX3JlcG9ydF9wYXRoID0gb3MucGF0aC5qb2luKHdvcmtfZGlyLCAnYmF0Y2hidWlsZC1y
ZXBvcnQuaHRtbCcpCisgICAgZ2VuZXJhdGVfaHRtbF9yZXBvcnQoaHRtbF9yZXBvcnRfcGF0aCwg
YnVpbGRzKQorICAgIHByaW50KCdEb25lJykKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgorICAgIG1haW4oKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2ZpeGVvbC5weSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvZGV2dG9vbHMvZml4ZW9sLnB5CmluZGV4IDRmZWQ2Y2U0YjAxZjNmN2I1YmQ5Y2ZkZWFjMGNl
MDI2MTJjNTRjOGIuLjQ1MjUyYTA3ZDkyMzdjYTQxYTcwNDJkNWM3YWY5Yjc0N2ZiNGRhZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvZml4ZW9sLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvZml4
ZW9sLnB5CkBAIC0xLDEzICsxLDIwIEBACisjIENvcHlyaWdodCAyMDEwIEJhcHRpc3RlIExlcGls
bGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGlj
ZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlv
dXIganVyaXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgb3MucGF0aAoraW1wb3J0IHN5cwogCi1k
ZWYgZml4X3NvdXJjZV9lb2woIHBhdGgsIGlzX2RyeV9ydW4gPSBUcnVlLCB2ZXJib3NlID0gVHJ1
ZSwgZW9sID0gJ1xuJyApOgorZGVmIGZpeF9zb3VyY2VfZW9sKHBhdGgsIGlzX2RyeV9ydW4gPSBU
cnVlLCB2ZXJib3NlID0gVHJ1ZSwgZW9sID0gJ1xuJyk6CiAgICAgIiIiTWFrZXMgc3VyZSB0aGF0
IGFsbCBzb3VyY2VzIGhhdmUgdGhlIHNwZWNpZmllZCBlb2wgc2VxdWVuY2UgKGRlZmF1bHQ6IHVu
aXgpLiIiIgotICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZSggcGF0aCApOgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCAnUGF0aCAiJXMiIGlzIG5vdCBhIGZpbGUnICUgcGF0aCApCisgICAgaWYg
bm90IG9zLnBhdGguaXNmaWxlKHBhdGgpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXRo
ICIlcyIgaXMgbm90IGEgZmlsZScgJSBwYXRoKQogICAgIHRyeToKICAgICAgICAgZiA9IG9wZW4o
cGF0aCwgJ3JiJykKLSAgICBleGNlcHQgSU9FcnJvciwgbXNnOgotICAgICAgICBwcmludCA+PiBz
eXMuc3RkZXJyLCAiJXM6IEkvTyBFcnJvcjogJXMiICUgKGZpbGUsIHN0cihtc2cpKQorICAgIGV4
Y2VwdCBJT0Vycm9yIGFzIG1zZzoKKyAgICAgICAgcHJpbnQoIiVzOiBJL08gRXJyb3I6ICVzIiAl
IChmaWxlLCBzdHIobXNnKSksIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgcmV0dXJuIEZhbHNl
CiAgICAgdHJ5OgogICAgICAgICByYXdfbGluZXMgPSBmLnJlYWRsaW5lcygpCkBAIC0xNSw3ICsy
Miw3IEBAIGRlZiBmaXhfc291cmNlX2VvbCggcGF0aCwgaXNfZHJ5X3J1biA9IFRydWUsIHZlcmJv
c2UgPSBUcnVlLCBlb2wgPSAnXG4nICk6CiAgICAgICAgIGYuY2xvc2UoKQogICAgIGZpeGVkX2xp
bmVzID0gW2xpbmUucnN0cmlwKCdcclxuJykgKyBlb2wgZm9yIGxpbmUgaW4gcmF3X2xpbmVzXQog
ICAgIGlmIHJhd19saW5lcyAhPSBmaXhlZF9saW5lczoKLSAgICAgICAgcHJpbnQgJyVzID0+JyAl
IHBhdGgsCisgICAgICAgIHByaW50KCclcyA9PicgJSBwYXRoLCBlbmQ9JyAnKQogICAgICAgICBp
ZiBub3QgaXNfZHJ5X3J1bjoKICAgICAgICAgICAgIGYgPSBvcGVuKHBhdGgsICJ3YiIpCiAgICAg
ICAgICAgICB0cnk6CkBAIC0yMywzMiArMzAsMzIgQEAgZGVmIGZpeF9zb3VyY2VfZW9sKCBwYXRo
LCBpc19kcnlfcnVuID0gVHJ1ZSwgdmVyYm9zZSA9IFRydWUsIGVvbCA9ICdcbicgKToKICAgICAg
ICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgIGlmIHZl
cmJvc2U6Ci0gICAgICAgICAgICBwcmludCBpc19kcnlfcnVuIGFuZCAnIE5FRUQgRklYJyBvciAn
IEZJWEVEJworICAgICAgICAgICAgcHJpbnQoaXNfZHJ5X3J1biBhbmQgJyBORUVEIEZJWCcgb3Ig
JyBGSVhFRCcpCiAgICAgcmV0dXJuIFRydWUKICMjICAgIAogIyMgICAgCiAjIwotIyNkZWYgX2Rv
X2ZpeCggaXNfZHJ5X3J1biA9IFRydWUgKToKKyMjZGVmIF9kb19maXgoaXNfZHJ5X3J1biA9IFRy
dWUpOgogIyMgICAgZnJvbSB3YWZ0b29scyBpbXBvcnQgYW50Z2xvYgotIyMgICAgcHl0aG9uX3Nv
dXJjZXMgPSBhbnRnbG9iLmdsb2IoICcuJywKKyMjICAgIHB5dGhvbl9zb3VyY2VzID0gYW50Z2xv
Yi5nbG9iKCcuJywKICMjICAgICAgICBpbmNsdWRlcyA9ICcqKi8qLnB5ICoqL3dzY3JpcHQgKiov
d3NjcmlwdF9idWlsZCcsCiAjIyAgICAgICAgZXhjbHVkZXMgPSBhbnRnbG9iLmRlZmF1bHRfZXhj
bHVkZXMgKyAnLi93YWYucHknLAotIyMgICAgICAgIHBydW5lX2RpcnMgPSBhbnRnbG9iLnBydW5l
X2RpcnMgKyAnd2FmLSogLi9idWlsZCcgKQorIyMgICAgICAgIHBydW5lX2RpcnMgPSBhbnRnbG9i
LnBydW5lX2RpcnMgKyAnd2FmLSogLi9idWlsZCcpCiAjIyAgICBmb3IgcGF0aCBpbiBweXRob25f
c291cmNlczoKLSMjICAgICAgICBfZml4X3B5dGhvbl9zb3VyY2UoIHBhdGgsIGlzX2RyeV9ydW4g
KQorIyMgICAgICAgIF9maXhfcHl0aG9uX3NvdXJjZShwYXRoLCBpc19kcnlfcnVuKQogIyMKLSMj
ICAgIGNwcF9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKCAnLicsCisjIyAgICBjcHBfc291cmNlcyA9
IGFudGdsb2IuZ2xvYignLicsCiAjIyAgICAgICAgaW5jbHVkZXMgPSAnKiovKi5jcHAgKiovKi5o
ICoqLyouaW5sJywKLSMjICAgICAgICBwcnVuZV9kaXJzID0gYW50Z2xvYi5wcnVuZV9kaXJzICsg
J3dhZi0qIC4vYnVpbGQnICkKKyMjICAgICAgICBwcnVuZV9kaXJzID0gYW50Z2xvYi5wcnVuZV9k
aXJzICsgJ3dhZi0qIC4vYnVpbGQnKQogIyMgICAgZm9yIHBhdGggaW4gY3BwX3NvdXJjZXM6Ci0j
IyAgICAgICAgX2ZpeF9zb3VyY2VfZW9sKCBwYXRoLCBpc19kcnlfcnVuICkKKyMjICAgICAgICBf
Zml4X3NvdXJjZV9lb2wocGF0aCwgaXNfZHJ5X3J1bikKICMjCiAjIwogIyNkZWYgZHJ5X2ZpeChj
b250ZXh0KToKLSMjICAgIF9kb19maXgoIGlzX2RyeV9ydW4gPSBUcnVlICkKKyMjICAgIF9kb19m
aXgoaXNfZHJ5X3J1biA9IFRydWUpCiAjIwogIyNkZWYgZml4KGNvbnRleHQpOgotIyMgICAgX2Rv
X2ZpeCggaXNfZHJ5X3J1biA9IEZhbHNlICkKKyMjICAgIF9kb19maXgoaXNfZHJ5X3J1biA9IEZh
bHNlKQogIyMKICMjZGVmIHNodXRkb3duKCk6CiAjIyAgICBwYXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L2RldnRvb2xzL2xpY2Vuc2V1cGRhdGVyLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9saWNlbnNldXBkYXRl
ci5weQppbmRleCA4NjZlYWRhMjI2MWM3OTViYzEwZGNjOTVmZjUyYWE3YzlhZmY1ZTM2Li4zNmJk
YjVjMDliNjFjOTg0MDg3ZTQxZjMzYzZhOWVjNjNhYTA3MzlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2Rl
dnRvb2xzL2xpY2Vuc2V1cGRhdGVyLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvbGljZW5zZXVwZGF0
ZXIucHkKQEAgLTEsMTggKzEsMTkgQEAKICIiIlVwZGF0ZXMgdGhlIGxpY2Vuc2UgdGV4dCBpbiBz
b3VyY2UgZmlsZS4KICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgog
CiAjIEFuIGV4aXN0aW5nIGxpY2Vuc2UgaXMgZm91bmQgaWYgdGhlIGZpbGUgc3RhcnRzIHdpdGgg
dGhlIHN0cmluZyBiZWxvdywKICMgYW5kIGVuZHMgd2l0aCB0aGUgZmlyc3QgYmxhbmsgbGluZS4K
IExJQ0VOU0VfQkVHSU4gPSAiLy8gQ29weXJpZ2h0ICIKIAotQlJJRUZfTElDRU5TRSA9IExJQ0VO
U0VfQkVHSU4gKyAiIiIyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCitCUklFRl9MSUNFTlNF
ID0gTElDRU5TRV9CRUdJTiArICIiIjIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRo
ZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBw
dWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNk
aWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogIiIiLnJlcGxhY2UoJ1xyXG4nLCdc
bicpCiAKLWRlZiB1cGRhdGVfbGljZW5zZSggcGF0aCwgZHJ5X3J1biwgc2hvd19kaWZmICk6Citk
ZWYgdXBkYXRlX2xpY2Vuc2UocGF0aCwgZHJ5X3J1biwgc2hvd19kaWZmKToKICAgICAiIiJVcGRh
dGUgdGhlIGxpY2Vuc2Ugc3RhdGVtZW50IGluIHRoZSBzcGVjaWZpZWQgZmlsZS4KICAgICBQYXJh
bWV0ZXJzOgogICAgICAgcGF0aDogcGF0aCBvZiB0aGUgQysrIHNvdXJjZSBmaWxlIHRvIHVwZGF0
ZS4KQEAgLTIxLDI4ICsyMiwyOCBAQCBkZWYgdXBkYXRlX2xpY2Vuc2UoIHBhdGgsIGRyeV9ydW4s
IHNob3dfZGlmZiApOgogICAgICAgc2hvd19kaWZmOiBpZiBUcnVlLCBwcmludCB0aGUgcGF0aCBv
ZiB0aGUgZmlsZSB0aGF0IHdvdWxkIGJlIG1vZGlmaWVkLAogICAgICAgICAgICAgICAgICBhcyB3
ZWxsIGFzIHRoZSBjaGFuZ2UgbWFkZSB0byB0aGUgZmlsZS4gCiAgICAgIiIiCi0gICAgd2l0aCBv
cGVuKCBwYXRoLCAncnQnICkgYXMgZmluOgorICAgIHdpdGggb3BlbihwYXRoLCAncnQnKSBhcyBm
aW46CiAgICAgICAgIG9yaWdpbmFsX3RleHQgPSBmaW4ucmVhZCgpLnJlcGxhY2UoJ1xyXG4nLCdc
bicpCiAgICAgICAgIG5ld2xpbmUgPSBmaW4ubmV3bGluZXMgYW5kIGZpbi5uZXdsaW5lc1swXSBv
ciAnXG4nCi0gICAgaWYgbm90IG9yaWdpbmFsX3RleHQuc3RhcnRzd2l0aCggTElDRU5TRV9CRUdJ
TiApOgorICAgIGlmIG5vdCBvcmlnaW5hbF90ZXh0LnN0YXJ0c3dpdGgoTElDRU5TRV9CRUdJTik6
CiAgICAgICAgICMgTm8gZXhpc3RpbmcgbGljZW5zZSBmb3VuZCA9PiBwcmVwZW5kIGl0CiAgICAg
ICAgIG5ld190ZXh0ID0gQlJJRUZfTElDRU5TRSArIG9yaWdpbmFsX3RleHQKICAgICBlbHNlOgot
ICAgICAgICBsaWNlbnNlX2VuZF9pbmRleCA9IG9yaWdpbmFsX3RleHQuaW5kZXgoICdcblxuJyAp
ICMgc2VhcmNoIGZpcnN0IGJsYW5rIGxpbmUKKyAgICAgICAgbGljZW5zZV9lbmRfaW5kZXggPSBv
cmlnaW5hbF90ZXh0LmluZGV4KCdcblxuJykgIyBzZWFyY2ggZmlyc3QgYmxhbmsgbGluZQogICAg
ICAgICBuZXdfdGV4dCA9IEJSSUVGX0xJQ0VOU0UgKyBvcmlnaW5hbF90ZXh0W2xpY2Vuc2VfZW5k
X2luZGV4KzI6XQogICAgIGlmIG9yaWdpbmFsX3RleHQgIT0gbmV3X3RleHQ6CiAgICAgICAgIGlm
IG5vdCBkcnlfcnVuOgotICAgICAgICAgICAgd2l0aCBvcGVuKCBwYXRoLCAnd2InICkgYXMgZm91
dDoKLSAgICAgICAgICAgICAgICBmb3V0LndyaXRlKCBuZXdfdGV4dC5yZXBsYWNlKCdcbicsIG5l
d2xpbmUgKSApCi0gICAgICAgIHByaW50ICdVcGRhdGVkJywgcGF0aAorICAgICAgICAgICAgd2l0
aCBvcGVuKHBhdGgsICd3YicpIGFzIGZvdXQ6CisgICAgICAgICAgICAgICAgZm91dC53cml0ZShu
ZXdfdGV4dC5yZXBsYWNlKCdcbicsIG5ld2xpbmUpKQorICAgICAgICBwcmludCgnVXBkYXRlZCcs
IHBhdGgpCiAgICAgICAgIGlmIHNob3dfZGlmZjoKICAgICAgICAgICAgIGltcG9ydCBkaWZmbGli
Ci0gICAgICAgICAgICBwcmludCAnXG4nLmpvaW4oIGRpZmZsaWIudW5pZmllZF9kaWZmKCBvcmln
aW5hbF90ZXh0LnNwbGl0KCdcbicpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3X3RleHQuc3BsaXQoJ1xuJykgKSApCisgICAgICAgICAgICBw
cmludCgnXG4nLmpvaW4oZGlmZmxpYi51bmlmaWVkX2RpZmYob3JpZ2luYWxfdGV4dC5zcGxpdCgn
XG4nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5ld190ZXh0LnNwbGl0KCdcbicpKSkpCiAgICAgICAgIHJldHVybiBUcnVlCiAgICAgcmV0dXJu
IEZhbHNlCiAKLWRlZiB1cGRhdGVfbGljZW5zZV9pbl9zb3VyY2VfZGlyZWN0b3JpZXMoIHNvdXJj
ZV9kaXJzLCBkcnlfcnVuLCBzaG93X2RpZmYgKToKK2RlZiB1cGRhdGVfbGljZW5zZV9pbl9zb3Vy
Y2VfZGlyZWN0b3JpZXMoc291cmNlX2RpcnMsIGRyeV9ydW4sIHNob3dfZGlmZik6CiAgICAgIiIi
VXBkYXRlcyBsaWNlbnNlIHRleHQgaW4gQysrIHNvdXJjZSBmaWxlcyBmb3VuZCBpbiBkaXJlY3Rv
cnkgc291cmNlX2RpcnMuCiAgICAgUGFyYW1ldGVyczoKICAgICAgIHNvdXJjZV9kaXJzOiBsaXN0
IG9mIGRpcmVjdG9yeSB0byBzY2FuIGZvciBDKysgc291cmNlcy4gRGlyZWN0b3JpZXMgYXJlCkBA
IC01NSwxMSArNTYsMTEgQEAgZGVmIHVwZGF0ZV9saWNlbnNlX2luX3NvdXJjZV9kaXJlY3Rvcmll
cyggc291cmNlX2RpcnMsIGRyeV9ydW4sIHNob3dfZGlmZiApOgogICAgIGZyb20gZGV2dG9vbHMg
aW1wb3J0IGFudGdsb2IKICAgICBwcnVuZV9kaXJzID0gYW50Z2xvYi5wcnVuZV9kaXJzICsgJ3Nj
b25zLWxvY2FsKiAuL2J1aWxkKiAuL2xpYnMgLi9kaXN0JwogICAgIGZvciBzb3VyY2VfZGlyIGlu
IHNvdXJjZV9kaXJzOgotICAgICAgICBjcHBfc291cmNlcyA9IGFudGdsb2IuZ2xvYiggc291cmNl
X2RpciwKKyAgICAgICAgY3BwX3NvdXJjZXMgPSBhbnRnbG9iLmdsb2Ioc291cmNlX2RpciwKICAg
ICAgICAgICAgIGluY2x1ZGVzID0gJycnKiovKi5oICoqLyouY3BwICoqLyouaW5sJycnLAotICAg
ICAgICAgICAgcHJ1bmVfZGlycyA9IHBydW5lX2RpcnMgKQorICAgICAgICAgICAgcHJ1bmVfZGly
cyA9IHBydW5lX2RpcnMpCiAgICAgICAgIGZvciBzb3VyY2UgaW4gY3BwX3NvdXJjZXM6Ci0gICAg
ICAgICAgICB1cGRhdGVfbGljZW5zZSggc291cmNlLCBkcnlfcnVuLCBzaG93X2RpZmYgKQorICAg
ICAgICAgICAgdXBkYXRlX2xpY2Vuc2Uoc291cmNlLCBkcnlfcnVuLCBzaG93X2RpZmYpCiAKIGRl
ZiBtYWluKCk6CiAgICAgdXNhZ2UgPSAiIiIlcHJvZyBESVIgW0RJUjIuLi5dCkBAIC04Miw4ICs4
Myw4IEBAIHB5dGhvbiBkZXZ0b29sc1xsaWNlbnNldXBkYXRlci5weSBpbmNsdWRlIHNyYwogICAg
ICAgICBoZWxwPSIiIk9uIHVwZGF0ZSwgc2hvdyBjaGFuZ2UgbWFkZSB0byB0aGUgZmlsZS4iIiIp
CiAgICAgcGFyc2VyLmVuYWJsZV9pbnRlcnNwZXJzZWRfYXJncygpCiAgICAgb3B0aW9ucywgYXJn
cyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLSAgICB1cGRhdGVfbGljZW5zZV9pbl9zb3VyY2VfZGly
ZWN0b3JpZXMoIGFyZ3MsIG9wdGlvbnMuZHJ5X3J1biwgb3B0aW9ucy5zaG93X2RpZmYgKQotICAg
IHByaW50ICdEb25lJworICAgIHVwZGF0ZV9saWNlbnNlX2luX3NvdXJjZV9kaXJlY3Rvcmllcyhh
cmdzLCBvcHRpb25zLmRyeV9ydW4sIG9wdGlvbnMuc2hvd19kaWZmKQorICAgIHByaW50KCdEb25l
JykKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBpbXBvcnQgc3lzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL2RldnRvb2xzL3RhcmJhbGwucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL3RhcmJhbGwucHkK
aW5kZXggY2NiZGEzOTQyNTViNTgwNjFiMmNkNTA4NjcxNzMwNDE3NWZiZGI2ZC4uM2MwYmE2NWU3
MTFjMDcxNzJmNTYyZWFjMDk2MGFmOWFiZjI4OWYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29s
cy90YXJiYWxsLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvdGFyYmFsbC5weQpAQCAtMSw1ICsxLDEw
IEBACi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IGd6aXAKKyMgQ29weXJpZ2h0IDIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisjIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisjIHJlY29nbml6
ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBv
ciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKK2Zyb20g
Y29udGV4dGxpYiBpbXBvcnQgY2xvc2luZworaW1wb3J0IG9zCiBpbXBvcnQgdGFyZmlsZQogCiBU
QVJHWl9ERUZBVUxUX0NPTVBSRVNTSU9OX0xFVkVMID0gOQpAQCAtMTMsNDEgKzE4LDM1IEBAIGRl
ZiBtYWtlX3RhcmJhbGwodGFyYmFsbF9wYXRoLCBzb3VyY2VzLCBiYXNlX2RpciwgcHJlZml4X2Rp
cj0nJyk6CiAgICAgcHJlZml4X2RpcjogYWxsIGZpbGVzIHN0b3JlZCBpbiB0aGUgdGFyYmFsbCBi
ZSBzdWItZGlyZWN0b3J5IG9mIHByZWZpeF9kaXIuIFNldCB0byAnJwogICAgICAgICB0byBtYWtl
IHRoZW0gY2hpbGQgb2Ygcm9vdC4KICAgICAiIiIKLSAgICBiYXNlX2RpciA9IG9zLnBhdGgubm9y
bXBhdGgoIG9zLnBhdGguYWJzcGF0aCggYmFzZV9kaXIgKSApCi0gICAgZGVmIGFyY2hpdmVfbmFt
ZSggcGF0aCApOgorICAgIGJhc2VfZGlyID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmFic3Bh
dGgoYmFzZV9kaXIpKQorICAgIGRlZiBhcmNoaXZlX25hbWUocGF0aCk6CiAgICAgICAgICIiIk1h
a2VzIHBhdGggcmVsYXRpdmUgdG8gYmFzZV9kaXIuIiIiCi0gICAgICAgIHBhdGggPSBvcy5wYXRo
Lm5vcm1wYXRoKCBvcy5wYXRoLmFic3BhdGgoIHBhdGggKSApCi0gICAgICAgIGNvbW1vbl9wYXRo
ID0gb3MucGF0aC5jb21tb25wcmVmaXgoIChiYXNlX2RpciwgcGF0aCkgKQorICAgICAgICBwYXRo
ID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmFic3BhdGgocGF0aCkpCisgICAgICAgIGNvbW1v
bl9wYXRoID0gb3MucGF0aC5jb21tb25wcmVmaXgoKGJhc2VfZGlyLCBwYXRoKSkKICAgICAgICAg
YXJjaGl2ZV9uYW1lID0gcGF0aFtsZW4oY29tbW9uX3BhdGgpOl0KLSAgICAgICAgaWYgb3MucGF0
aC5pc2FicyggYXJjaGl2ZV9uYW1lICk6CisgICAgICAgIGlmIG9zLnBhdGguaXNhYnMoYXJjaGl2
ZV9uYW1lKToKICAgICAgICAgICAgIGFyY2hpdmVfbmFtZSA9IGFyY2hpdmVfbmFtZVsxOl0KLSAg
ICAgICAgcmV0dXJuIG9zLnBhdGguam9pbiggcHJlZml4X2RpciwgYXJjaGl2ZV9uYW1lICkKKyAg
ICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihwcmVmaXhfZGlyLCBhcmNoaXZlX25hbWUpCiAgICAg
ZGVmIHZpc2l0KHRhciwgZGlybmFtZSwgbmFtZXMpOgogICAgICAgICBmb3IgbmFtZSBpbiBuYW1l
czoKICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oZGlybmFtZSwgbmFtZSkKICAgICAg
ICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHBhdGgpOgogICAgICAgICAgICAgICAgIHBhdGhfaW5f
dGFyID0gYXJjaGl2ZV9uYW1lKHBhdGgpCi0gICAgICAgICAgICAgICAgdGFyLmFkZChwYXRoLCBw
YXRoX2luX3RhciApCisgICAgICAgICAgICAgICAgdGFyLmFkZChwYXRoLCBwYXRoX2luX3RhcikK
ICAgICBjb21wcmVzc2lvbiA9IFRBUkdaX0RFRkFVTFRfQ09NUFJFU1NJT05fTEVWRUwKLSAgICB0
YXIgPSB0YXJmaWxlLlRhckZpbGUuZ3pvcGVuKCB0YXJiYWxsX3BhdGgsICd3JywgY29tcHJlc3Ns
ZXZlbD1jb21wcmVzc2lvbiApCi0gICAgdHJ5OgorICAgIHdpdGggY2xvc2luZyh0YXJmaWxlLlRh
ckZpbGUub3Blbih0YXJiYWxsX3BhdGgsICd3Omd6JywKKyAgICAgICAgICAgIGNvbXByZXNzbGV2
ZWw9Y29tcHJlc3Npb24pKSBhcyB0YXI6CiAgICAgICAgIGZvciBzb3VyY2UgaW4gc291cmNlczoK
ICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gc291cmNlCi0gICAgICAgICAgICBpZiBvcy5wYXRo
LmlzZGlyKCBzb3VyY2UgKToKLSAgICAgICAgICAgICAgICBvcy5wYXRoLndhbGsoc291cmNlX3Bh
dGgsIHZpc2l0LCB0YXIpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKHNvdXJjZSk6Cisg
ICAgICAgICAgICAgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gb3Mud2Fs
ayhzb3VyY2VfcGF0aCk6CisgICAgICAgICAgICAgICAgICAgIHZpc2l0KHRhciwgZGlycGF0aCwg
ZmlsZW5hbWVzKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBwYXRoX2luX3Rh
ciA9IGFyY2hpdmVfbmFtZShzb3VyY2VfcGF0aCkKLSAgICAgICAgICAgICAgICB0YXIuYWRkKHNv
dXJjZV9wYXRoLCBwYXRoX2luX3RhciApICAgICAgIyBmaWxlbmFtZSwgYXJjbmFtZQotICAgIGZp
bmFsbHk6Ci0gICAgICAgIHRhci5jbG9zZSgpCisgICAgICAgICAgICAgICAgdGFyLmFkZChzb3Vy
Y2VfcGF0aCwgcGF0aF9pbl90YXIpICAgICAgIyBmaWxlbmFtZSwgYXJjbmFtZQogCi1kZWYgZGVj
b21wcmVzcyggdGFyYmFsbF9wYXRoLCBiYXNlX2RpciApOgorZGVmIGRlY29tcHJlc3ModGFyYmFs
bF9wYXRoLCBiYXNlX2Rpcik6CiAgICAgIiIiRGVjb21wcmVzcyB0aGUgZ3ppcHBlZCB0YXJiYWxs
IGludG8gZGlyZWN0b3J5IGJhc2VfZGlyLgogICAgICIiIgotICAgICMgISEhIFRoaXMgY2xhc3Mg
bWV0aG9kIGlzIG5vdCBkb2N1bWVudGVkIGluIHRoZSBvbmxpbmUgZG9jCi0gICAgIyBub3IgaXMg
Ynoyb3BlbiEKLSAgICB0YXIgPSB0YXJmaWxlLlRhckZpbGUuZ3pvcGVuKHRhcmJhbGxfcGF0aCwg
bW9kZT0ncicpCi0gICAgdHJ5OgotICAgICAgICB0YXIuZXh0cmFjdGFsbCggYmFzZV9kaXIgKQot
ICAgIGZpbmFsbHk6Ci0gICAgICAgIHRhci5jbG9zZSgpCisgICAgd2l0aCBjbG9zaW5nKHRhcmZp
bGUuVGFyRmlsZS5vcGVuKHRhcmJhbGxfcGF0aCkpIGFzIHRhcjoKKyAgICAgICAgdGFyLmV4dHJh
Y3RhbGwoYmFzZV9kaXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9kb3h5ZmlsZS5pbiBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
ZG9jL2RveHlmaWxlLmluCmluZGV4IDQ4ODYxZDIzODVmN2NiYjMyZmYxOTE5NWIwYTM0N2JjMzVl
ZDIzMWIuLmRjZjUxNGVhMzRkYzY0NTI1ZmQxNTQ0NTZlMjU0MmZmOTg2OGE2MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvZG9jL2RveHlmaWxlLmluCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2RveHlmaWxlLmluCkBAIC0x
LDkwICsxLDExMiBAQAotIyBEb3h5ZmlsZSAxLjUuOQorIyBEb3h5ZmlsZSAxLjguNQogCiAjIFRo
aXMgZmlsZSBkZXNjcmliZXMgdGhlIHNldHRpbmdzIHRvIGJlIHVzZWQgYnkgdGhlIGRvY3VtZW50
YXRpb24gc3lzdGVtCi0jIGRveHlnZW4gKHd3dy5kb3h5Z2VuLm9yZykgZm9yIGEgcHJvamVjdAor
IyBkb3h5Z2VuICh3d3cuZG94eWdlbi5vcmcpIGZvciBhIHByb2plY3QuCiAjCi0jIEFsbCB0ZXh0
IGFmdGVyIGEgaGFzaCAoIykgaXMgY29uc2lkZXJlZCBhIGNvbW1lbnQgYW5kIHdpbGwgYmUgaWdu
b3JlZAorIyBBbGwgdGV4dCBhZnRlciBhIGRvdWJsZSBoYXNoICgjIykgaXMgY29uc2lkZXJlZCBh
IGNvbW1lbnQgYW5kIGlzIHBsYWNlZCBpbgorIyBmcm9udCBvZiB0aGUgVEFHIGl0IGlzIHByZWNl
ZGluZy4KKyMKKyMgQWxsIHRleHQgYWZ0ZXIgYSBzaW5nbGUgaGFzaCAoIykgaXMgY29uc2lkZXJl
ZCBhIGNvbW1lbnQgYW5kIHdpbGwgYmUgaWdub3JlZC4KICMgVGhlIGZvcm1hdCBpczoKLSMgICAg
ICAgVEFHID0gdmFsdWUgW3ZhbHVlLCAuLi5dCi0jIEZvciBsaXN0cyBpdGVtcyBjYW4gYWxzbyBi
ZSBhcHBlbmRlZCB1c2luZzoKLSMgICAgICAgVEFHICs9IHZhbHVlIFt2YWx1ZSwgLi4uXQotIyBW
YWx1ZXMgdGhhdCBjb250YWluIHNwYWNlcyBzaG91bGQgYmUgcGxhY2VkIGJldHdlZW4gcXVvdGVz
ICgiICIpCisjIFRBRyA9IHZhbHVlIFt2YWx1ZSwgLi4uXQorIyBGb3IgbGlzdHMsIGl0ZW1zIGNh
biBhbHNvIGJlIGFwcGVuZGVkIHVzaW5nOgorIyBUQUcgKz0gdmFsdWUgW3ZhbHVlLCAuLi5dCisj
IFZhbHVlcyB0aGF0IGNvbnRhaW4gc3BhY2VzIHNob3VsZCBiZSBwbGFjZWQgYmV0d2VlbiBxdW90
ZXMgKFwiIFwiKS4KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBQcm9qZWN0IHJlbGF0ZWQgY29u
ZmlndXJhdGlvbiBvcHRpb25zCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgVGhpcyB0YWcgc3Bl
Y2lmaWVzIHRoZSBlbmNvZGluZyB1c2VkIGZvciBhbGwgY2hhcmFjdGVycyBpbiB0aGUgY29uZmln
IGZpbGUgCi0jIHRoYXQgZm9sbG93LiBUaGUgZGVmYXVsdCBpcyBVVEYtOCB3aGljaCBpcyBhbHNv
IHRoZSBlbmNvZGluZyB1c2VkIGZvciBhbGwgCi0jIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBvY2N1
cnJlbmNlIG9mIHRoaXMgdGFnLiBEb3h5Z2VuIHVzZXMgbGliaWNvbnYgKG9yIHRoZSAKLSMgaWNv
bnYgYnVpbHQgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29kaW5nLiBTZWUgCi0jIGh0dHA6Ly93
d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJpY29udiBmb3IgdGhlIGxpc3Qgb2YgcG9zc2libGUgZW5j
b2RpbmdzLgorIyBUaGlzIHRhZyBzcGVjaWZpZXMgdGhlIGVuY29kaW5nIHVzZWQgZm9yIGFsbCBj
aGFyYWN0ZXJzIGluIHRoZSBjb25maWcgZmlsZQorIyB0aGF0IGZvbGxvdy4gVGhlIGRlZmF1bHQg
aXMgVVRGLTggd2hpY2ggaXMgYWxzbyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsIHRleHQKKyMg
YmVmb3JlIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoaXMgdGFnLiBEb3h5Z2VuIHVzZXMgbGli
aWNvbnYgKG9yIHRoZSBpY29udgorIyBidWlsdCBpbnRvIGxpYmMpIGZvciB0aGUgdHJhbnNjb2Rp
bmcuIFNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliaWNvbnYKKyMgZm9yIHRoZSBs
aXN0IG9mIHBvc3NpYmxlIGVuY29kaW5ncy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFVURi04
LgogCiBET1hZRklMRV9FTkNPRElORyAgICAgID0gVVRGLTgKIAotIyBUaGUgUFJPSkVDVF9OQU1F
IHRhZyBpcyBhIHNpbmdsZSB3b3JkIChvciBhIHNlcXVlbmNlIG9mIHdvcmRzIHN1cnJvdW5kZWQg
Ci0jIGJ5IHF1b3RlcykgdGhhdCBzaG91bGQgaWRlbnRpZnkgdGhlIHByb2plY3QuCisjIFRoZSBQ
Uk9KRUNUX05BTUUgdGFnIGlzIGEgc2luZ2xlIHdvcmQgKG9yIGEgc2VxdWVuY2Ugb2Ygd29yZHMg
c3Vycm91bmRlZCBieQorIyBkb3VibGUtcXVvdGVzLCB1bmxlc3MgeW91IGFyZSB1c2luZyBEb3h5
d2l6YXJkKSB0aGF0IHNob3VsZCBpZGVudGlmeSB0aGUKKyMgcHJvamVjdCBmb3Igd2hpY2ggdGhl
IGRvY3VtZW50YXRpb24gaXMgZ2VuZXJhdGVkLiBUaGlzIG5hbWUgaXMgdXNlZCBpbiB0aGUKKyMg
dGl0bGUgb2YgbW9zdCBnZW5lcmF0ZWQgcGFnZXMgYW5kIGluIGEgZmV3IG90aGVyIHBsYWNlcy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE15IFByb2plY3QuCiAKIFBST0pFQ1RfTkFNRSAgICAg
ICAgICAgPSAiSnNvbkNwcCIKIAotIyBUaGUgUFJPSkVDVF9OVU1CRVIgdGFnIGNhbiBiZSB1c2Vk
IHRvIGVudGVyIGEgcHJvamVjdCBvciByZXZpc2lvbiBudW1iZXIuIAotIyBUaGlzIGNvdWxkIGJl
IGhhbmR5IGZvciBhcmNoaXZpbmcgdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIG9yIAotIyBp
ZiBzb21lIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gaXMgdXNlZC4KKyMgVGhlIFBST0pFQ1RfTlVN
QkVSIHRhZyBjYW4gYmUgdXNlZCB0byBlbnRlciBhIHByb2plY3Qgb3IgcmV2aXNpb24gbnVtYmVy
LiBUaGlzCisjIGNvdWxkIGJlIGhhbmR5IGZvciBhcmNoaXZpbmcgdGhlIGdlbmVyYXRlZCBkb2N1
bWVudGF0aW9uIG9yIGlmIHNvbWUgdmVyc2lvbgorIyBjb250cm9sIHN5c3RlbSBpcyB1c2VkLgog
CiBQUk9KRUNUX05VTUJFUiAgICAgICAgID0gJUpTT05DUFBfVkVSU0lPTiUKIAotIyBUaGUgT1VU
UFVUX0RJUkVDVE9SWSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAocmVsYXRpdmUgb3IgYWJz
b2x1dGUpIAotIyBiYXNlIHBhdGggd2hlcmUgdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIHdp
bGwgYmUgcHV0LiAKLSMgSWYgYSByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQsIGl0IHdpbGwgYmUg
cmVsYXRpdmUgdG8gdGhlIGxvY2F0aW9uIAotIyB3aGVyZSBkb3h5Z2VuIHdhcyBzdGFydGVkLiBJ
ZiBsZWZ0IGJsYW5rIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuCisjIFVzaW5n
IHRoZSBQUk9KRUNUX0JSSUVGIHRhZyBvbmUgY2FuIHByb3ZpZGUgYW4gb3B0aW9uYWwgb25lIGxp
bmUgZGVzY3JpcHRpb24KKyMgZm9yIGEgcHJvamVjdCB0aGF0IGFwcGVhcnMgYXQgdGhlIHRvcCBv
ZiBlYWNoIHBhZ2UgYW5kIHNob3VsZCBnaXZlIHZpZXdlciBhCisjIHF1aWNrIGlkZWEgYWJvdXQg
dGhlIHB1cnBvc2Ugb2YgdGhlIHByb2plY3QuIEtlZXAgdGhlIGRlc2NyaXB0aW9uIHNob3J0Lgor
CitQUk9KRUNUX0JSSUVGICAgICAgICAgID0KKworIyBXaXRoIHRoZSBQUk9KRUNUX0xPR08gdGFn
IG9uZSBjYW4gc3BlY2lmeSBhbiBsb2dvIG9yIGljb24gdGhhdCBpcyBpbmNsdWRlZCBpbgorIyB0
aGUgZG9jdW1lbnRhdGlvbi4gVGhlIG1heGltdW0gaGVpZ2h0IG9mIHRoZSBsb2dvIHNob3VsZCBu
b3QgZXhjZWVkIDU1IHBpeGVscworIyBhbmQgdGhlIG1heGltdW0gd2lkdGggc2hvdWxkIG5vdCBl
eGNlZWQgMjAwIHBpeGVscy4gRG94eWdlbiB3aWxsIGNvcHkgdGhlIGxvZ28KKyMgdG8gdGhlIG91
dHB1dCBkaXJlY3RvcnkuCisKK1BST0pFQ1RfTE9HTyAgICAgICAgICAgPQorCisjIFRoZSBPVVRQ
VVRfRElSRUNUT1JZIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIChyZWxhdGl2ZSBvciBhYnNv
bHV0ZSkgcGF0aAorIyBpbnRvIHdoaWNoIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiB3aWxs
IGJlIHdyaXR0ZW4uIElmIGEgcmVsYXRpdmUgcGF0aCBpcworIyBlbnRlcmVkLCBpdCB3aWxsIGJl
IHJlbGF0aXZlIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSBkb3h5Z2VuIHdhcyBzdGFydGVkLiBJZgor
IyBsZWZ0IGJsYW5rIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuCiAKIE9VVFBV
VF9ESVJFQ1RPUlkgICAgICAgPSAlRE9DX1RPUERJUiUKIAotIyBJZiB0aGUgQ1JFQVRFX1NVQkRJ
UlMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIGNyZWF0ZSAKLSMgNDA5NiBz
dWItZGlyZWN0b3JpZXMgKGluIDIgbGV2ZWxzKSB1bmRlciB0aGUgb3V0cHV0IGRpcmVjdG9yeSBv
ZiBlYWNoIG91dHB1dCAKLSMgZm9ybWF0IGFuZCB3aWxsIGRpc3RyaWJ1dGUgdGhlIGdlbmVyYXRl
ZCBmaWxlcyBvdmVyIHRoZXNlIGRpcmVjdG9yaWVzLiAKLSMgRW5hYmxpbmcgdGhpcyBvcHRpb24g
Y2FuIGJlIHVzZWZ1bCB3aGVuIGZlZWRpbmcgZG94eWdlbiBhIGh1Z2UgYW1vdW50IG9mIAotIyBz
b3VyY2UgZmlsZXMsIHdoZXJlIHB1dHRpbmcgYWxsIGdlbmVyYXRlZCBmaWxlcyBpbiB0aGUgc2Ft
ZSBkaXJlY3Rvcnkgd291bGQgCi0jIG90aGVyd2lzZSBjYXVzZSBwZXJmb3JtYW5jZSBwcm9ibGVt
cyBmb3IgdGhlIGZpbGUgc3lzdGVtLgorIyBJZiB0aGUgQ1JFQVRFX1NVQkRJUlMgdGFnIGlzIHNl
dCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIGNyZWF0ZSA0MDk2IHN1Yi0KKyMgZGlyZWN0b3Jp
ZXMgKGluIDIgbGV2ZWxzKSB1bmRlciB0aGUgb3V0cHV0IGRpcmVjdG9yeSBvZiBlYWNoIG91dHB1
dCBmb3JtYXQgYW5kCisjIHdpbGwgZGlzdHJpYnV0ZSB0aGUgZ2VuZXJhdGVkIGZpbGVzIG92ZXIg
dGhlc2UgZGlyZWN0b3JpZXMuIEVuYWJsaW5nIHRoaXMKKyMgb3B0aW9uIGNhbiBiZSB1c2VmdWwg
d2hlbiBmZWVkaW5nIGRveHlnZW4gYSBodWdlIGFtb3VudCBvZiBzb3VyY2UgZmlsZXMsIHdoZXJl
CisjIHB1dHRpbmcgYWxsIGdlbmVyYXRlZCBmaWxlcyBpbiB0aGUgc2FtZSBkaXJlY3Rvcnkgd291
bGQgb3RoZXJ3aXNlIGNhdXNlcworIyBwZXJmb3JtYW5jZSBwcm9ibGVtcyBmb3IgdGhlIGZpbGUg
c3lzdGVtLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIENSRUFURV9TVUJESVJTICAg
ICAgICAgPSBOTwogCi0jIFRoZSBPVVRQVVRfTEFOR1VBR0UgdGFnIGlzIHVzZWQgdG8gc3BlY2lm
eSB0aGUgbGFuZ3VhZ2UgaW4gd2hpY2ggYWxsIAotIyBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBi
eSBkb3h5Z2VuIGlzIHdyaXR0ZW4uIERveHlnZW4gd2lsbCB1c2UgdGhpcyAKLSMgaW5mb3JtYXRp
b24gdG8gZ2VuZXJhdGUgYWxsIGNvbnN0YW50IG91dHB1dCBpbiB0aGUgcHJvcGVyIGxhbmd1YWdl
LiAKLSMgVGhlIGRlZmF1bHQgbGFuZ3VhZ2UgaXMgRW5nbGlzaCwgb3RoZXIgc3VwcG9ydGVkIGxh
bmd1YWdlcyBhcmU6IAotIyBBZnJpa2FhbnMsIEFyYWJpYywgQnJhemlsaWFuLCBDYXRhbGFuLCBD
aGluZXNlLCBDaGluZXNlLVRyYWRpdGlvbmFsLCAKLSMgQ3JvYXRpYW4sIEN6ZWNoLCBEYW5pc2gs
IER1dGNoLCBFc3BlcmFudG8sIEZhcnNpLCBGaW5uaXNoLCBGcmVuY2gsIEdlcm1hbiwgCi0jIEdy
ZWVrLCBIdW5nYXJpYW4sIEl0YWxpYW4sIEphcGFuZXNlLCBKYXBhbmVzZS1lbiAoSmFwYW5lc2Ug
d2l0aCBFbmdsaXNoIAotIyBtZXNzYWdlcyksIEtvcmVhbiwgS29yZWFuLWVuLCBMaXRodWFuaWFu
LCBOb3J3ZWdpYW4sIE1hY2Vkb25pYW4sIFBlcnNpYW4sIAotIyBQb2xpc2gsIFBvcnR1Z3Vlc2Us
IFJvbWFuaWFuLCBSdXNzaWFuLCBTZXJiaWFuLCBTZXJiaWFuLUN5cmlsaWMsIFNsb3ZhaywgCi0j
IFNsb3ZlbmUsIFNwYW5pc2gsIFN3ZWRpc2gsIFVrcmFpbmlhbiwgYW5kIFZpZXRuYW1lc2UuCisj
IFRoZSBPVVRQVVRfTEFOR1VBR0UgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgbGFuZ3VhZ2Ug
aW4gd2hpY2ggYWxsCisjIGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IGRveHlnZW4gaXMgd3Jp
dHRlbi4gRG94eWdlbiB3aWxsIHVzZSB0aGlzCisjIGluZm9ybWF0aW9uIHRvIGdlbmVyYXRlIGFs
bCBjb25zdGFudCBvdXRwdXQgaW4gdGhlIHByb3BlciBsYW5ndWFnZS4KKyMgUG9zc2libGUgdmFs
dWVzIGFyZTogQWZyaWthYW5zLCBBcmFiaWMsIEJyYXppbGlhbiwgQ2F0YWxhbiwgQ2hpbmVzZSwg
Q2hpbmVzZS0KKyMgVHJhZGl0aW9uYWwsIENyb2F0aWFuLCBDemVjaCwgRGFuaXNoLCBEdXRjaCwg
RW5nbGlzaCwgRXNwZXJhbnRvLCBGYXJzaSwKKyMgRmlubmlzaCwgRnJlbmNoLCBHZXJtYW4sIEdy
ZWVrLCBIdW5nYXJpYW4sIEl0YWxpYW4sIEphcGFuZXNlLCBKYXBhbmVzZS1lbiwKKyMgS29yZWFu
LCBLb3JlYW4tZW4sIExhdHZpYW4sIE5vcndlZ2lhbiwgTWFjZWRvbmlhbiwgUGVyc2lhbiwgUG9s
aXNoLAorIyBQb3J0dWd1ZXNlLCBSb21hbmlhbiwgUnVzc2lhbiwgU2VyYmlhbiwgU2xvdmFrLCBT
bG92ZW5lLCBTcGFuaXNoLCBTd2VkaXNoLAorIyBUdXJraXNoLCBVa3JhaW5pYW4gYW5kIFZpZXRu
YW1lc2UuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBFbmdsaXNoLgogCiBPVVRQVVRfTEFOR1VB
R0UgICAgICAgID0gRW5nbGlzaAogCi0jIElmIHRoZSBCUklFRl9NRU1CRVJfREVTQyB0YWcgaXMg
c2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIERveHlnZW4gd2lsbCAKLSMgaW5jbHVkZSBicmllZiBt
ZW1iZXIgZGVzY3JpcHRpb25zIGFmdGVyIHRoZSBtZW1iZXJzIHRoYXQgYXJlIGxpc3RlZCBpbiAK
LSMgdGhlIGZpbGUgYW5kIGNsYXNzIGRvY3VtZW50YXRpb24gKHNpbWlsYXIgdG8gSmF2YURvYyku
IAotIyBTZXQgdG8gTk8gdG8gZGlzYWJsZSB0aGlzLgorIyBJZiB0aGUgQlJJRUZfTUVNQkVSX0RF
U0MgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGluY2x1ZGUgYnJpZWYgbWVtYmVyCisj
IGRlc2NyaXB0aW9ucyBhZnRlciB0aGUgbWVtYmVycyB0aGF0IGFyZSBsaXN0ZWQgaW4gdGhlIGZp
bGUgYW5kIGNsYXNzCisjIGRvY3VtZW50YXRpb24gKHNpbWlsYXIgdG8gSmF2YWRvYykuIFNldCB0
byBOTyB0byBkaXNhYmxlIHRoaXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEJS
SUVGX01FTUJFUl9ERVNDICAgICAgPSBZRVMKIAotIyBJZiB0aGUgUkVQRUFUX0JSSUVGIHRhZyBp
cyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkgRG94eWdlbiB3aWxsIHByZXBlbmQgCi0jIHRoZSBi
cmllZiBkZXNjcmlwdGlvbiBvZiBhIG1lbWJlciBvciBmdW5jdGlvbiBiZWZvcmUgdGhlIGRldGFp
bGVkIGRlc2NyaXB0aW9uLiAKLSMgTm90ZTogaWYgYm90aCBISURFX1VORE9DX01FTUJFUlMgYW5k
IEJSSUVGX01FTUJFUl9ERVNDIGFyZSBzZXQgdG8gTk8sIHRoZSAKKyMgSWYgdGhlIFJFUEVBVF9C
UklFRiB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgcHJlcGVuZCB0aGUgYnJpZWYKKyMg
ZGVzY3JpcHRpb24gb2YgYSBtZW1iZXIgb3IgZnVuY3Rpb24gYmVmb3JlIHRoZSBkZXRhaWxlZCBk
ZXNjcmlwdGlvbgorIworIyBOb3RlOiBJZiBib3RoIEhJREVfVU5ET0NfTUVNQkVSUyBhbmQgQlJJ
RUZfTUVNQkVSX0RFU0MgYXJlIHNldCB0byBOTywgdGhlCiAjIGJyaWVmIGRlc2NyaXB0aW9ucyB3
aWxsIGJlIGNvbXBsZXRlbHkgc3VwcHJlc3NlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlF
Uy4KIAogUkVQRUFUX0JSSUVGICAgICAgICAgICA9IFlFUwogCi0jIFRoaXMgdGFnIGltcGxlbWVu
dHMgYSBxdWFzaS1pbnRlbGxpZ2VudCBicmllZiBkZXNjcmlwdGlvbiBhYmJyZXZpYXRvciAKLSMg
dGhhdCBpcyB1c2VkIHRvIGZvcm0gdGhlIHRleHQgaW4gdmFyaW91cyBsaXN0aW5ncy4gRWFjaCBz
dHJpbmcgCi0jIGluIHRoaXMgbGlzdCwgaWYgZm91bmQgYXMgdGhlIGxlYWRpbmcgdGV4dCBvZiB0
aGUgYnJpZWYgZGVzY3JpcHRpb24sIHdpbGwgYmUgCi0jIHN0cmlwcGVkIGZyb20gdGhlIHRleHQg
YW5kIHRoZSByZXN1bHQgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgd2hvbGUgbGlzdCwgaXMgCi0jIHVz
ZWQgYXMgdGhlIGFubm90YXRlZCB0ZXh0LiBPdGhlcndpc2UsIHRoZSBicmllZiBkZXNjcmlwdGlv
biBpcyB1c2VkIGFzLWlzLiAKLSMgSWYgbGVmdCBibGFuaywgdGhlIGZvbGxvd2luZyB2YWx1ZXMg
YXJlIHVzZWQgKCIkbmFtZSIgaXMgYXV0b21hdGljYWxseSAKLSMgcmVwbGFjZWQgd2l0aCB0aGUg
bmFtZSBvZiB0aGUgZW50aXR5KTogIlRoZSAkbmFtZSBjbGFzcyIgIlRoZSAkbmFtZSB3aWRnZXQi
IAotIyAiVGhlICRuYW1lIGZpbGUiICJpcyIgInByb3ZpZGVzIiAic3BlY2lmaWVzIiAiY29udGFp
bnMiIAotIyAicmVwcmVzZW50cyIgImEiICJhbiIgInRoZSIKKyMgVGhpcyB0YWcgaW1wbGVtZW50
cyBhIHF1YXNpLWludGVsbGlnZW50IGJyaWVmIGRlc2NyaXB0aW9uIGFiYnJldmlhdG9yIHRoYXQg
aXMKKyMgdXNlZCB0byBmb3JtIHRoZSB0ZXh0IGluIHZhcmlvdXMgbGlzdGluZ3MuIEVhY2ggc3Ry
aW5nIGluIHRoaXMgbGlzdCwgaWYgZm91bmQKKyMgYXMgdGhlIGxlYWRpbmcgdGV4dCBvZiB0aGUg
YnJpZWYgZGVzY3JpcHRpb24sIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgdGV4dAorIyBhbmQg
dGhlIHJlc3VsdCwgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgd2hvbGUgbGlzdCwgaXMgdXNlZCBhcyB0
aGUgYW5ub3RhdGVkCisjIHRleHQuIE90aGVyd2lzZSwgdGhlIGJyaWVmIGRlc2NyaXB0aW9uIGlz
IHVzZWQgYXMtaXMuIElmIGxlZnQgYmxhbmssIHRoZQorIyBmb2xsb3dpbmcgdmFsdWVzIGFyZSB1
c2VkICgkbmFtZSBpcyBhdXRvbWF0aWNhbGx5IHJlcGxhY2VkIHdpdGggdGhlIG5hbWUgb2YKKyMg
dGhlIGVudGl0eSk6VGhlICRuYW1lIGNsYXNzLCBUaGUgJG5hbWUgd2lkZ2V0LCBUaGUgJG5hbWUg
ZmlsZSwgaXMsIHByb3ZpZGVzLAorIyBzcGVjaWZpZXMsIGNvbnRhaW5zLCByZXByZXNlbnRzLCBh
LCBhbiBhbmQgdGhlLgogCiBBQkJSRVZJQVRFX0JSSUVGICAgICAgID0gIlRoZSAkbmFtZSBjbGFz
cyIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgJG5hbWUgd2lkZ2V0IiBcCkBAIC05
OCwxNDM3ICsxMjAsMjE4MyBAQCBBQkJSRVZJQVRFX0JSSUVGICAgICAgID0gIlRoZSAkbmFtZSBj
bGFzcyIgXAogICAgICAgICAgICAgICAgICAgICAgICAgIGFuIFwKICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGUKIAotIyBJZiB0aGUgQUxXQVlTX0RFVEFJTEVEX1NFQyBhbmQgUkVQRUFUX0JS
SUVGIHRhZ3MgYXJlIGJvdGggc2V0IHRvIFlFUyB0aGVuIAotIyBEb3h5Z2VuIHdpbGwgZ2VuZXJh
dGUgYSBkZXRhaWxlZCBzZWN0aW9uIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBhIGJyaWVmIAorIyBJ
ZiB0aGUgQUxXQVlTX0RFVEFJTEVEX1NFQyBhbmQgUkVQRUFUX0JSSUVGIHRhZ3MgYXJlIGJvdGgg
c2V0IHRvIFlFUyB0aGVuCisjIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGRldGFpbGVkIHNlY3Rp
b24gZXZlbiBpZiB0aGVyZSBpcyBvbmx5IGEgYnJpZWYKICMgZGVzY3JpcHRpb24uCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogQUxXQVlTX0RFVEFJTEVEX1NFQyAgICA9IE5PCiAKLSMg
SWYgdGhlIElOTElORV9JTkhFUklURURfTUVNQiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3
aWxsIHNob3cgYWxsIAotIyBpbmhlcml0ZWQgbWVtYmVycyBvZiBhIGNsYXNzIGluIHRoZSBkb2N1
bWVudGF0aW9uIG9mIHRoYXQgY2xhc3MgYXMgaWYgdGhvc2UgCi0jIG1lbWJlcnMgd2VyZSBvcmRp
bmFyeSBjbGFzcyBtZW1iZXJzLiBDb25zdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIGFuZCBhc3NpZ25t
ZW50IAorIyBJZiB0aGUgSU5MSU5FX0lOSEVSSVRFRF9NRU1CIHRhZyBpcyBzZXQgdG8gWUVTLCBk
b3h5Z2VuIHdpbGwgc2hvdyBhbGwKKyMgaW5oZXJpdGVkIG1lbWJlcnMgb2YgYSBjbGFzcyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGF0IGNsYXNzIGFzIGlmIHRob3NlCisjIG1lbWJlcnMgd2Vy
ZSBvcmRpbmFyeSBjbGFzcyBtZW1iZXJzLiBDb25zdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIGFuZCBh
c3NpZ25tZW50CiAjIG9wZXJhdG9ycyBvZiB0aGUgYmFzZSBjbGFzc2VzIHdpbGwgbm90IGJlIHNo
b3duLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIElOTElORV9JTkhFUklURURfTUVN
QiAgPSBOTwogCi0jIElmIHRoZSBGVUxMX1BBVEhfTkFNRVMgdGFnIGlzIHNldCB0byBZRVMgdGhl
biBEb3h5Z2VuIHdpbGwgcHJlcGVuZCB0aGUgZnVsbCAKLSMgcGF0aCBiZWZvcmUgZmlsZXMgbmFt
ZSBpbiB0aGUgZmlsZSBsaXN0IGFuZCBpbiB0aGUgaGVhZGVyIGZpbGVzLiBJZiBzZXQgCi0jIHRv
IE5PIHRoZSBzaG9ydGVzdCBwYXRoIHRoYXQgbWFrZXMgdGhlIGZpbGUgbmFtZSB1bmlxdWUgd2ls
bCBiZSB1c2VkLgorIyBJZiB0aGUgRlVMTF9QQVRIX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIGRv
eHlnZW4gd2lsbCBwcmVwZW5kIHRoZSBmdWxsIHBhdGgKKyMgYmVmb3JlIGZpbGVzIG5hbWUgaW4g
dGhlIGZpbGUgbGlzdCBhbmQgaW4gdGhlIGhlYWRlciBmaWxlcy4gSWYgc2V0IHRvIE5PIHRoZQor
IyBzaG9ydGVzdCBwYXRoIHRoYXQgbWFrZXMgdGhlIGZpbGUgbmFtZSB1bmlxdWUgd2lsbCBiZSB1
c2VkCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEZVTExfUEFUSF9OQU1FUyAgICAg
ICAgPSBZRVMKIAotIyBJZiB0aGUgRlVMTF9QQVRIX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gdGhlIFNUUklQX0ZST01fUEFUSCB0YWcgCi0jIGNhbiBiZSB1c2VkIHRvIHN0cmlwIGEgdXNl
ci1kZWZpbmVkIHBhcnQgb2YgdGhlIHBhdGguIFN0cmlwcGluZyBpcyAKLSMgb25seSBkb25lIGlm
IG9uZSBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZ3MgbWF0Y2hlcyB0aGUgbGVmdC1oYW5kIHBhcnQg
b2YgCi0jIHRoZSBwYXRoLiBUaGUgdGFnIGNhbiBiZSB1c2VkIHRvIHNob3cgcmVsYXRpdmUgcGF0
aHMgaW4gdGhlIGZpbGUgbGlzdC4gCi0jIElmIGxlZnQgYmxhbmsgdGhlIGRpcmVjdG9yeSBmcm9t
IHdoaWNoIGRveHlnZW4gaXMgcnVuIGlzIHVzZWQgYXMgdGhlIAotIyBwYXRoIHRvIHN0cmlwLgor
IyBUaGUgU1RSSVBfRlJPTV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzdHJpcCBhIHVzZXItZGVm
aW5lZCBwYXJ0IG9mIHRoZSBwYXRoLgorIyBTdHJpcHBpbmcgaXMgb25seSBkb25lIGlmIG9uZSBv
ZiB0aGUgc3BlY2lmaWVkIHN0cmluZ3MgbWF0Y2hlcyB0aGUgbGVmdC1oYW5kCisjIHBhcnQgb2Yg
dGhlIHBhdGguIFRoZSB0YWcgY2FuIGJlIHVzZWQgdG8gc2hvdyByZWxhdGl2ZSBwYXRocyBpbiB0
aGUgZmlsZSBsaXN0LgorIyBJZiBsZWZ0IGJsYW5rIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGljaCBk
b3h5Z2VuIGlzIHJ1biBpcyB1c2VkIGFzIHRoZSBwYXRoIHRvCisjIHN0cmlwLgorIworIyBOb3Rl
IHRoYXQgeW91IGNhbiBzcGVjaWZ5IGFic29sdXRlIHBhdGhzIGhlcmUsIGJ1dCBhbHNvIHJlbGF0
aXZlIHBhdGhzLCB3aGljaAorIyB3aWxsIGJlIHJlbGF0aXZlIGZyb20gdGhlIGRpcmVjdG9yeSB3
aGVyZSBkb3h5Z2VuIGlzIHN0YXJ0ZWQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBGVUxMX1BBVEhfTkFNRVMgaXMgc2V0IHRvIFlFUy4KIAogU1RSSVBfRlJPTV9QQVRIICAgICAg
ICA9ICVUT1BESVIlCiAKLSMgVGhlIFNUUklQX0ZST01fSU5DX1BBVEggdGFnIGNhbiBiZSB1c2Vk
IHRvIHN0cmlwIGEgdXNlci1kZWZpbmVkIHBhcnQgb2YgCi0jIHRoZSBwYXRoIG1lbnRpb25lZCBp
biB0aGUgZG9jdW1lbnRhdGlvbiBvZiBhIGNsYXNzLCB3aGljaCB0ZWxscyAKLSMgdGhlIHJlYWRl
ciB3aGljaCBoZWFkZXIgZmlsZSB0byBpbmNsdWRlIGluIG9yZGVyIHRvIHVzZSBhIGNsYXNzLiAK
LSMgSWYgbGVmdCBibGFuayBvbmx5IHRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgZmlsZSBjb250YWlu
aW5nIHRoZSBjbGFzcyAKLSMgZGVmaW5pdGlvbiBpcyB1c2VkLiBPdGhlcndpc2Ugb25lIHNob3Vs
ZCBzcGVjaWZ5IHRoZSBpbmNsdWRlIHBhdGhzIHRoYXQgCi0jIGFyZSBub3JtYWxseSBwYXNzZWQg
dG8gdGhlIGNvbXBpbGVyIHVzaW5nIHRoZSAtSSBmbGFnLgorIyBUaGUgU1RSSVBfRlJPTV9JTkNf
UEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3RyaXAgYSB1c2VyLWRlZmluZWQgcGFydCBvZiB0aGUK
KyMgcGF0aCBtZW50aW9uZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgYSBjbGFzcywgd2hpY2gg
dGVsbHMgdGhlIHJlYWRlciB3aGljaAorIyBoZWFkZXIgZmlsZSB0byBpbmNsdWRlIGluIG9yZGVy
IHRvIHVzZSBhIGNsYXNzLiBJZiBsZWZ0IGJsYW5rIG9ubHkgdGhlIG5hbWUgb2YKKyMgdGhlIGhl
YWRlciBmaWxlIGNvbnRhaW5pbmcgdGhlIGNsYXNzIGRlZmluaXRpb24gaXMgdXNlZC4gT3RoZXJ3
aXNlIG9uZSBzaG91bGQKKyMgc3BlY2lmeSB0aGUgbGlzdCBvZiBpbmNsdWRlIHBhdGhzIHRoYXQg
YXJlIG5vcm1hbGx5IHBhc3NlZCB0byB0aGUgY29tcGlsZXIKKyMgdXNpbmcgdGhlIC1JIGZsYWcu
CiAKIFNUUklQX0ZST01fSU5DX1BBVEggICAgPSAlVE9QRElSJS9pbmNsdWRlCiAKLSMgSWYgdGhl
IFNIT1JUX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgbXVj
aCBzaG9ydGVyIAotIyAoYnV0IGxlc3MgcmVhZGFibGUpIGZpbGUgbmFtZXMuIFRoaXMgY2FuIGJl
IHVzZWZ1bCBpcyB5b3VyIGZpbGUgc3lzdGVtcyAKLSMgZG9lc24ndCBzdXBwb3J0IGxvbmcgbmFt
ZXMgbGlrZSBvbiBET1MsIE1hYywgb3IgQ0QtUk9NLgorIyBJZiB0aGUgU0hPUlRfTkFNRVMgdGFn
IGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBtdWNoIHNob3J0ZXIgKGJ1dAor
IyBsZXNzIHJlYWRhYmxlKSBmaWxlIG5hbWVzLiBUaGlzIGNhbiBiZSB1c2VmdWwgaXMgeW91ciBm
aWxlIHN5c3RlbXMgZG9lc24ndAorIyBzdXBwb3J0IGxvbmcgbmFtZXMgbGlrZSBvbiBET1MsIE1h
Yywgb3IgQ0QtUk9NLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFNIT1JUX05BTUVT
ICAgICAgICAgICAgPSBOTwogCi0jIElmIHRoZSBKQVZBRE9DX0FVVE9CUklFRiB0YWcgaXMgc2V0
IHRvIFlFUyB0aGVuIERveHlnZW4gCi0jIHdpbGwgaW50ZXJwcmV0IHRoZSBmaXJzdCBsaW5lICh1
bnRpbCB0aGUgZmlyc3QgZG90KSBvZiBhIEphdmFEb2Mtc3R5bGUgCi0jIGNvbW1lbnQgYXMgdGhl
IGJyaWVmIGRlc2NyaXB0aW9uLiBJZiBzZXQgdG8gTk8sIHRoZSBKYXZhRG9jIAotIyBjb21tZW50
cyB3aWxsIGJlaGF2ZSBqdXN0IGxpa2UgcmVndWxhciBRdC1zdHlsZSBjb21tZW50cyAKLSMgKHRo
dXMgcmVxdWlyaW5nIGFuIGV4cGxpY2l0IEBicmllZiBjb21tYW5kIGZvciBhIGJyaWVmIGRlc2Ny
aXB0aW9uLikKKyMgSWYgdGhlIEpBVkFET0NfQVVUT0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIGludGVycHJldCB0aGUKKyMgZmlyc3QgbGluZSAodW50aWwgdGhlIGZp
cnN0IGRvdCkgb2YgYSBKYXZhZG9jLXN0eWxlIGNvbW1lbnQgYXMgdGhlIGJyaWVmCisjIGRlc2Ny
aXB0aW9uLiBJZiBzZXQgdG8gTk8sIHRoZSBKYXZhZG9jLXN0eWxlIHdpbGwgYmVoYXZlIGp1c3Qg
bGlrZSByZWd1bGFyIFF0LQorIyBzdHlsZSBjb21tZW50cyAodGh1cyByZXF1aXJpbmcgYW4gZXhw
bGljaXQgQGJyaWVmIGNvbW1hbmQgZm9yIGEgYnJpZWYKKyMgZGVzY3JpcHRpb24uKQorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEpBVkFET0NfQVVUT0JSSUVGICAgICAgPSBZRVMKIAot
IyBJZiB0aGUgUVRfQVVUT0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxs
IAotIyBpbnRlcnByZXQgdGhlIGZpcnN0IGxpbmUgKHVudGlsIHRoZSBmaXJzdCBkb3QpIG9mIGEg
UXQtc3R5bGUgCi0jIGNvbW1lbnQgYXMgdGhlIGJyaWVmIGRlc2NyaXB0aW9uLiBJZiBzZXQgdG8g
Tk8sIHRoZSBjb21tZW50cyAKLSMgd2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgUXQtc3R5
bGUgY29tbWVudHMgKHRodXMgcmVxdWlyaW5nIAotIyBhbiBleHBsaWNpdCBcYnJpZWYgY29tbWFu
ZCBmb3IgYSBicmllZiBkZXNjcmlwdGlvbi4pCisjIElmIHRoZSBRVF9BVVRPQlJJRUYgdGFnIGlz
IHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgaW50ZXJwcmV0IHRoZSBmaXJzdAorIyBsaW5l
ICh1bnRpbCB0aGUgZmlyc3QgZG90KSBvZiBhIFF0LXN0eWxlIGNvbW1lbnQgYXMgdGhlIGJyaWVm
IGRlc2NyaXB0aW9uLiBJZgorIyBzZXQgdG8gTk8sIHRoZSBRdC1zdHlsZSB3aWxsIGJlaGF2ZSBq
dXN0IGxpa2UgcmVndWxhciBRdC1zdHlsZSBjb21tZW50cyAodGh1cworIyByZXF1aXJpbmcgYW4g
ZXhwbGljaXQgXGJyaWVmIGNvbW1hbmQgZm9yIGEgYnJpZWYgZGVzY3JpcHRpb24uKQorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFFUX0FVVE9CUklFRiAgICAgICAgICAgPSBOTwogCi0j
IFRoZSBNVUxUSUxJTkVfQ1BQX0lTX0JSSUVGIHRhZyBjYW4gYmUgc2V0IHRvIFlFUyB0byBtYWtl
IERveHlnZW4gCi0jIHRyZWF0IGEgbXVsdGktbGluZSBDKysgc3BlY2lhbCBjb21tZW50IGJsb2Nr
IChpLmUuIGEgYmxvY2sgb2YgLy8hIG9yIC8vLyAKLSMgY29tbWVudHMpIGFzIGEgYnJpZWYgZGVz
Y3JpcHRpb24uIFRoaXMgdXNlZCB0byBiZSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuIAotIyBUaGUg
bmV3IGRlZmF1bHQgaXMgdG8gdHJlYXQgYSBtdWx0aS1saW5lIEMrKyBjb21tZW50IGJsb2NrIGFz
IGEgZGV0YWlsZWQgCi0jIGRlc2NyaXB0aW9uLiBTZXQgdGhpcyB0YWcgdG8gWUVTIGlmIHlvdSBw
cmVmZXIgdGhlIG9sZCBiZWhhdmlvdXIgaW5zdGVhZC4KKyMgVGhlIE1VTFRJTElORV9DUFBfSVNf
QlJJRUYgdGFnIGNhbiBiZSBzZXQgdG8gWUVTIHRvIG1ha2UgZG94eWdlbiB0cmVhdCBhCisjIG11
bHRpLWxpbmUgQysrIHNwZWNpYWwgY29tbWVudCBibG9jayAoaS5lLiBhIGJsb2NrIG9mIC8vISBv
ciAvLy8gY29tbWVudHMpIGFzCisjIGEgYnJpZWYgZGVzY3JpcHRpb24uIFRoaXMgdXNlZCB0byBi
ZSB0aGUgZGVmYXVsdCBiZWhhdmlvci4gVGhlIG5ldyBkZWZhdWx0IGlzCisjIHRvIHRyZWF0IGEg
bXVsdGktbGluZSBDKysgY29tbWVudCBibG9jayBhcyBhIGRldGFpbGVkIGRlc2NyaXB0aW9uLiBT
ZXQgdGhpcworIyB0YWcgdG8gWUVTIGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBiZWhhdmlvciBpbnN0
ZWFkLgorIworIyBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIHRhZyB0byBZRVMgYWxzbyBtZWFucyB0
aGF0IHJhdGlvbmFsIHJvc2UgY29tbWVudHMgYXJlCisjIG5vdCByZWNvZ25pemVkIGFueSBtb3Jl
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIE1VTFRJTElORV9DUFBfSVNfQlJJRUYg
PSBOTwogCi0jIElmIHRoZSBJTkhFUklUX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZh
dWx0KSB0aGVuIGFuIHVuZG9jdW1lbnRlZCAKLSMgbWVtYmVyIGluaGVyaXRzIHRoZSBkb2N1bWVu
dGF0aW9uIGZyb20gYW55IGRvY3VtZW50ZWQgbWVtYmVyIHRoYXQgaXQgCi0jIHJlLWltcGxlbWVu
dHMuCisjIElmIHRoZSBJTkhFUklUX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBhbiB1bmRv
Y3VtZW50ZWQgbWVtYmVyIGluaGVyaXRzIHRoZQorIyBkb2N1bWVudGF0aW9uIGZyb20gYW55IGRv
Y3VtZW50ZWQgbWVtYmVyIHRoYXQgaXQgcmUtaW1wbGVtZW50cy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KIAogSU5IRVJJVF9ET0NTICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBT
RVBBUkFURV9NRU1CRVJfUEFHRVMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxs
IHByb2R1Y2UgCi0jIGEgbmV3IHBhZ2UgZm9yIGVhY2ggbWVtYmVyLiBJZiBzZXQgdG8gTk8sIHRo
ZSBkb2N1bWVudGF0aW9uIG9mIGEgbWVtYmVyIHdpbGwgCi0jIGJlIHBhcnQgb2YgdGhlIGZpbGUv
Y2xhc3MvbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgaXQuCisjIElmIHRoZSBTRVBBUkFURV9NRU1C
RVJfUEFHRVMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIHByb2R1Y2UgYQor
IyBuZXcgcGFnZSBmb3IgZWFjaCBtZW1iZXIuIElmIHNldCB0byBOTywgdGhlIGRvY3VtZW50YXRp
b24gb2YgYSBtZW1iZXIgd2lsbCBiZQorIyBwYXJ0IG9mIHRoZSBmaWxlL2NsYXNzL25hbWVzcGFj
ZSB0aGF0IGNvbnRhaW5zIGl0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFNFUEFS
QVRFX01FTUJFUl9QQUdFUyAgPSBOTwogCi0jIFRoZSBUQUJfU0laRSB0YWcgY2FuIGJlIHVzZWQg
dG8gc2V0IHRoZSBudW1iZXIgb2Ygc3BhY2VzIGluIGEgdGFiLiAKLSMgRG94eWdlbiB1c2VzIHRo
aXMgdmFsdWUgdG8gcmVwbGFjZSB0YWJzIGJ5IHNwYWNlcyBpbiBjb2RlIGZyYWdtZW50cy4KKyMg
VGhlIFRBQl9TSVpFIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG51bWJlciBvZiBzcGFjZXMg
aW4gYSB0YWIuIERveHlnZW4KKyMgdXNlcyB0aGlzIHZhbHVlIHRvIHJlcGxhY2UgdGFicyBieSBz
cGFjZXMgaW4gY29kZSBmcmFnbWVudHMuCisjIE1pbmltdW0gdmFsdWU6IDEsIG1heGltdW0gdmFs
dWU6IDE2LCBkZWZhdWx0IHZhbHVlOiA0LgogCiBUQUJfU0laRSAgICAgICAgICAgICAgID0gMwog
Ci0jIFRoaXMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBudW1iZXIgb2YgYWxpYXNlcyB0
aGF0IGFjdHMgCi0jIGFzIGNvbW1hbmRzIGluIHRoZSBkb2N1bWVudGF0aW9uLiBBbiBhbGlhcyBo
YXMgdGhlIGZvcm0gIm5hbWU9dmFsdWUiLiAKLSMgRm9yIGV4YW1wbGUgYWRkaW5nICJzaWRlZWZm
ZWN0PVxwYXIgU2lkZSBFZmZlY3RzOlxuIiB3aWxsIGFsbG93IHlvdSB0byAKLSMgcHV0IHRoZSBj
b21tYW5kIFxzaWRlZWZmZWN0IChvciBAc2lkZWVmZmVjdCkgaW4gdGhlIGRvY3VtZW50YXRpb24s
IHdoaWNoIAotIyB3aWxsIHJlc3VsdCBpbiBhIHVzZXItZGVmaW5lZCBwYXJhZ3JhcGggd2l0aCBo
ZWFkaW5nICJTaWRlIEVmZmVjdHM6Ii4gCi0jIFlvdSBjYW4gcHV0IFxuJ3MgaW4gdGhlIHZhbHVl
IHBhcnQgb2YgYW4gYWxpYXMgdG8gaW5zZXJ0IG5ld2xpbmVzLgorIyBUaGlzIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IGEgbnVtYmVyIG9mIGFsaWFzZXMgdGhhdCBhY3QgYXMgY29tbWFuZHMg
aW4KKyMgdGhlIGRvY3VtZW50YXRpb24uIEFuIGFsaWFzIGhhcyB0aGUgZm9ybToKKyMgbmFtZT12
YWx1ZQorIyBGb3IgZXhhbXBsZSBhZGRpbmcKKyMgInNpZGVlZmZlY3Q9QHBhciBTaWRlIEVmZmVj
dHM6XG4iCisjIHdpbGwgYWxsb3cgeW91IHRvIHB1dCB0aGUgY29tbWFuZCBcc2lkZWVmZmVjdCAo
b3IgQHNpZGVlZmZlY3QpIGluIHRoZQorIyBkb2N1bWVudGF0aW9uLCB3aGljaCB3aWxsIHJlc3Vs
dCBpbiBhIHVzZXItZGVmaW5lZCBwYXJhZ3JhcGggd2l0aCBoZWFkaW5nCisjICJTaWRlIEVmZmVj
dHM6Ii4gWW91IGNhbiBwdXQgXG4ncyBpbiB0aGUgdmFsdWUgcGFydCBvZiBhbiBhbGlhcyB0byBp
bnNlcnQKKyMgbmV3bGluZXMuCiAKIEFMSUFTRVMgICAgICAgICAgICAgICAgPSAidGVzdENhc2VT
ZXR1cD1cbGluayBDcHBVVDo6VGVzdENhc2U6OnNldFVwKCkgc2V0VXAoKVxlbmRsaW5rIiBcCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RDYXNlUnVuPVxsaW5rIENwcFVUOjpUZXN0Q2Fz
ZTo6cnVuKCkgcnVuKClcZW5kbGluayIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
Q2FzZVRlYXJEb3duPVxsaW5rIENwcFVUOjpUZXN0Q2FzZTo6dGVhckRvd24oKSB0ZWFyRG93bigp
XGVuZGxpbmsiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAianNvbl9yZWY9PGEgSFJFRj0n
aHR0cDovL3d3dy5qc29uLm9yZy8nPkpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKTwv
YT4iCiAKLSMgU2V0IHRoZSBPUFRJTUlaRV9PVVRQVVRfRk9SX0MgdGFnIHRvIFlFUyBpZiB5b3Vy
IHByb2plY3QgY29uc2lzdHMgb2YgQyAKLSMgc291cmNlcyBvbmx5LiBEb3h5Z2VuIHdpbGwgdGhl
biBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyBtb3JlIHRhaWxvcmVkIGZvciBDLiAKLSMgRm9yIGlu
c3RhbmNlLCBzb21lIG9mIHRoZSBuYW1lcyB0aGF0IGFyZSB1c2VkIHdpbGwgYmUgZGlmZmVyZW50
LiBUaGUgbGlzdCAKLSMgb2YgYWxsIG1lbWJlcnMgd2lsbCBiZSBvbWl0dGVkLCBldGMuCisjIFRo
aXMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBudW1iZXIgb2Ygd29yZC1rZXl3b3JkIG1h
cHBpbmdzIChUQ0wgb25seSkuCisjIEEgbWFwcGluZyBoYXMgdGhlIGZvcm0gIm5hbWU9dmFsdWUi
LiBGb3IgZXhhbXBsZSBhZGRpbmcgImNsYXNzPWl0Y2w6OmNsYXNzIgorIyB3aWxsIGFsbG93IHlv
dSB0byB1c2UgdGhlIGNvbW1hbmQgY2xhc3MgaW4gdGhlIGl0Y2w6OmNsYXNzIG1lYW5pbmcuCisK
K1RDTF9TVUJTVCAgICAgICAgICAgICAgPQorCisjIFNldCB0aGUgT1BUSU1JWkVfT1VUUFVUX0ZP
Ul9DIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEMgc291cmNlcworIyBv
bmx5LiBEb3h5Z2VuIHdpbGwgdGhlbiBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyBtb3JlIHRhaWxv
cmVkIGZvciBDLiBGb3IKKyMgaW5zdGFuY2UsIHNvbWUgb2YgdGhlIG5hbWVzIHRoYXQgYXJlIHVz
ZWQgd2lsbCBiZSBkaWZmZXJlbnQuIFRoZSBsaXN0IG9mIGFsbAorIyBtZW1iZXJzIHdpbGwgYmUg
b21pdHRlZCwgZXRjLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIE9QVElNSVpFX09V
VFBVVF9GT1JfQyAgPSBOTwogCi0jIFNldCB0aGUgT1BUSU1JWkVfT1VUUFVUX0pBVkEgdGFnIHRv
IFlFUyBpZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2YgSmF2YSAKLSMgc291cmNlcyBvbmx5LiBE
b3h5Z2VuIHdpbGwgdGhlbiBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyBtb3JlIHRhaWxvcmVkIGZv
ciAKLSMgSmF2YS4gRm9yIGluc3RhbmNlLCBuYW1lc3BhY2VzIHdpbGwgYmUgcHJlc2VudGVkIGFz
IHBhY2thZ2VzLCBxdWFsaWZpZWQgCi0jIHNjb3BlcyB3aWxsIGxvb2sgZGlmZmVyZW50LCBldGMu
CisjIFNldCB0aGUgT1BUSU1JWkVfT1VUUFVUX0pBVkEgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2pl
Y3QgY29uc2lzdHMgb2YgSmF2YSBvcgorIyBQeXRob24gc291cmNlcyBvbmx5LiBEb3h5Z2VuIHdp
bGwgdGhlbiBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyBtb3JlIHRhaWxvcmVkCisjIGZvciB0aGF0
IGxhbmd1YWdlLiBGb3IgaW5zdGFuY2UsIG5hbWVzcGFjZXMgd2lsbCBiZSBwcmVzZW50ZWQgYXMg
cGFja2FnZXMsCisjIHF1YWxpZmllZCBzY29wZXMgd2lsbCBsb29rIGRpZmZlcmVudCwgZXRjLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIE9QVElNSVpFX09VVFBVVF9KQVZBICAgPSBO
TwogCi0jIFNldCB0aGUgT1BUSU1JWkVfRk9SX0ZPUlRSQU4gdGFnIHRvIFlFUyBpZiB5b3VyIHBy
b2plY3QgY29uc2lzdHMgb2YgRm9ydHJhbiAKLSMgc291cmNlcyBvbmx5LiBEb3h5Z2VuIHdpbGwg
dGhlbiBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyBtb3JlIHRhaWxvcmVkIGZvciAKLSMgRm9ydHJh
bi4KKyMgU2V0IHRoZSBPUFRJTUlaRV9GT1JfRk9SVFJBTiB0YWcgdG8gWUVTIGlmIHlvdXIgcHJv
amVjdCBjb25zaXN0cyBvZiBGb3J0cmFuCisjIHNvdXJjZXMuIERveHlnZW4gd2lsbCB0aGVuIGdl
bmVyYXRlIG91dHB1dCB0aGF0IGlzIHRhaWxvcmVkIGZvciBGb3J0cmFuLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCiAKIE9QVElNSVpFX0ZPUl9GT1JUUkFOICAgPSBOTwogCi0jIFNldCB0
aGUgT1BUSU1JWkVfT1VUUFVUX1ZIREwgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29uc2lz
dHMgb2YgVkhETCAKLSMgc291cmNlcy4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0
IHRoYXQgaXMgdGFpbG9yZWQgZm9yIAotIyBWSERMLgorIyBTZXQgdGhlIE9QVElNSVpFX09VVFBV
VF9WSERMIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIFZIREwKKyMgc291
cmNlcy4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgdGFpbG9yZWQg
Zm9yIFZIREwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogT1BUSU1JWkVfT1VUUFVU
X1ZIREwgICA9IE5PCiAKLSMgRG94eWdlbiBzZWxlY3RzIHRoZSBwYXJzZXIgdG8gdXNlIGRlcGVu
ZGluZyBvbiB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBmaWxlcyBpdCBwYXJzZXMuIAotIyBXaXRoIHRo
aXMgdGFnIHlvdSBjYW4gYXNzaWduIHdoaWNoIHBhcnNlciB0byB1c2UgZm9yIGEgZ2l2ZW4gZXh0
ZW5zaW9uLiAKLSMgRG94eWdlbiBoYXMgYSBidWlsdC1pbiBtYXBwaW5nLCBidXQgeW91IGNhbiBv
dmVycmlkZSBvciBleHRlbmQgaXQgdXNpbmcgdGhpcyB0YWcuIAotIyBUaGUgZm9ybWF0IGlzIGV4
dD1sYW5ndWFnZSwgd2hlcmUgZXh0IGlzIGEgZmlsZSBleHRlbnNpb24sIGFuZCBsYW5ndWFnZSBp
cyBvbmUgb2YgCi0jIHRoZSBwYXJzZXJzIHN1cHBvcnRlZCBieSBkb3h5Z2VuOiBJREwsIEphdmEs
IEphdmFzY3JpcHQsIEMjLCBDLCBDKyssIEQsIFBIUCwgCi0jIE9iamVjdGl2ZS1DLCBQeXRob24s
IEZvcnRyYW4sIFZIREwsIEMsIEMrKy4gRm9yIGluc3RhbmNlIHRvIG1ha2UgZG94eWdlbiB0cmVh
dCAKLSMgLmluYyBmaWxlcyBhcyBGb3J0cmFuIGZpbGVzIChkZWZhdWx0IGlzIFBIUCksIGFuZCAu
ZiBmaWxlcyBhcyBDIChkZWZhdWx0IGlzIEZvcnRyYW4pLCAKLSMgdXNlOiBpbmM9Rm9ydHJhbiBm
PUMuIE5vdGUgdGhhdCBmb3IgY3VzdG9tIGV4dGVuc2lvbnMgeW91IGFsc28gbmVlZCB0byBzZXQg
RklMRV9QQVRURVJOUyBvdGhlcndpc2UgdGhlIGZpbGVzIGFyZSBub3QgcmVhZCBieSBkb3h5Z2Vu
LgotCi1FWFRFTlNJT05fTUFQUElORyAgICAgID0gCi0KLSMgSWYgeW91IHVzZSBTVEwgY2xhc3Nl
cyAoaS5lLiBzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3IsIGV0Yy4pIGJ1dCBkbyBub3Qgd2FudCAK
LSMgdG8gaW5jbHVkZSAoYSB0YWcgZmlsZSBmb3IpIHRoZSBTVEwgc291cmNlcyBhcyBpbnB1dCwg
dGhlbiB5b3Ugc2hvdWxkIAotIyBzZXQgdGhpcyB0YWcgdG8gWUVTIGluIG9yZGVyIHRvIGxldCBk
b3h5Z2VuIG1hdGNoIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMgYW5kIAotIyBkZWZpbml0aW9ucyB3
aG9zZSBhcmd1bWVudHMgY29udGFpbiBTVEwgY2xhc3NlcyAoZS5nLiBmdW5jKHN0ZDo6c3RyaW5n
KTsgdi5zLiAKLSMgZnVuYyhzdGQ6OnN0cmluZykge30pLiBUaGlzIGFsc28gbWFrZSB0aGUgaW5o
ZXJpdGFuY2UgYW5kIGNvbGxhYm9yYXRpb24gCisjIERveHlnZW4gc2VsZWN0cyB0aGUgcGFyc2Vy
IHRvIHVzZSBkZXBlbmRpbmcgb24gdGhlIGV4dGVuc2lvbiBvZiB0aGUgZmlsZXMgaXQKKyMgcGFy
c2VzLiBXaXRoIHRoaXMgdGFnIHlvdSBjYW4gYXNzaWduIHdoaWNoIHBhcnNlciB0byB1c2UgZm9y
IGEgZ2l2ZW4KKyMgZXh0ZW5zaW9uLiBEb3h5Z2VuIGhhcyBhIGJ1aWx0LWluIG1hcHBpbmcsIGJ1
dCB5b3UgY2FuIG92ZXJyaWRlIG9yIGV4dGVuZCBpdAorIyB1c2luZyB0aGlzIHRhZy4gVGhlIGZv
cm1hdCBpcyBleHQ9bGFuZ3VhZ2UsIHdoZXJlIGV4dCBpcyBhIGZpbGUgZXh0ZW5zaW9uLCBhbmQK
KyMgbGFuZ3VhZ2UgaXMgb25lIG9mIHRoZSBwYXJzZXJzIHN1cHBvcnRlZCBieSBkb3h5Z2VuOiBJ
REwsIEphdmEsIEphdmFTY3JpcHQsCisjIEMjLCBDLCBDKyssIEQsIFBIUCwgT2JqZWN0aXZlLUMs
IFB5dGhvbiwgRm9ydHJhbiwgVkhETC4gRm9yIGluc3RhbmNlIHRvIG1ha2UKKyMgZG94eWdlbiB0
cmVhdCAuaW5jIGZpbGVzIGFzIEZvcnRyYW4gZmlsZXMgKGRlZmF1bHQgaXMgUEhQKSwgYW5kIC5m
IGZpbGVzIGFzIEMKKyMgKGRlZmF1bHQgaXMgRm9ydHJhbiksIHVzZTogaW5jPUZvcnRyYW4gZj1D
LgorIworIyBOb3RlIEZvciBmaWxlcyB3aXRob3V0IGV4dGVuc2lvbiB5b3UgY2FuIHVzZSBub19l
eHRlbnNpb24gYXMgYSBwbGFjZWhvbGRlci4KKyMKKyMgTm90ZSB0aGF0IGZvciBjdXN0b20gZXh0
ZW5zaW9ucyB5b3UgYWxzbyBuZWVkIHRvIHNldCBGSUxFX1BBVFRFUk5TIG90aGVyd2lzZQorIyB0
aGUgZmlsZXMgYXJlIG5vdCByZWFkIGJ5IGRveHlnZW4uCisKK0VYVEVOU0lPTl9NQVBQSU5HICAg
ICAgPQorCisjIElmIHRoZSBNQVJLRE9XTl9TVVBQT1JUIHRhZyBpcyBlbmFibGVkIHRoZW4gZG94
eWdlbiBwcmUtcHJvY2Vzc2VzIGFsbCBjb21tZW50cworIyBhY2NvcmRpbmcgdG8gdGhlIE1hcmtk
b3duIGZvcm1hdCwgd2hpY2ggYWxsb3dzIGZvciBtb3JlIHJlYWRhYmxlCisjIGRvY3VtZW50YXRp
b24uIFNlZSBodHRwOi8vZGFyaW5nZmlyZWJhbGwubmV0L3Byb2plY3RzL21hcmtkb3duLyBmb3Ig
ZGV0YWlscy4KKyMgVGhlIG91dHB1dCBvZiBtYXJrZG93biBwcm9jZXNzaW5nIGlzIGZ1cnRoZXIg
cHJvY2Vzc2VkIGJ5IGRveHlnZW4sIHNvIHlvdSBjYW4KKyMgbWl4IGRveHlnZW4sIEhUTUwsIGFu
ZCBYTUwgY29tbWFuZHMgd2l0aCBNYXJrZG93biBmb3JtYXR0aW5nLiBEaXNhYmxlIG9ubHkgaW4K
KyMgY2FzZSBvZiBiYWNrd2FyZCBjb21wYXRpYmlsaXRpZXMgaXNzdWVzLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLgorCitNQVJLRE9XTl9TVVBQT1JUICAgICAgID0gWUVTCisKKyMgV2hl
biBlbmFibGVkIGRveHlnZW4gdHJpZXMgdG8gbGluayB3b3JkcyB0aGF0IGNvcnJlc3BvbmQgdG8g
ZG9jdW1lbnRlZAorIyBjbGFzc2VzLCBvciBuYW1lc3BhY2VzIHRvIHRoZWlyIGNvcnJlc3BvbmRp
bmcgZG9jdW1lbnRhdGlvbi4gU3VjaCBhIGxpbmsgY2FuCisjIGJlIHByZXZlbnRlZCBpbiBpbmRp
dmlkdWFsIGNhc2VzIGJ5IGJ5IHB1dHRpbmcgYSAlIHNpZ24gaW4gZnJvbnQgb2YgdGhlIHdvcmQK
KyMgb3IgZ2xvYmFsbHkgYnkgc2V0dGluZyBBVVRPTElOS19TVVBQT1JUIHRvIE5PLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitBVVRPTElOS19TVVBQT1JUICAgICAgID0gWUVTCisK
KyMgSWYgeW91IHVzZSBTVEwgY2xhc3NlcyAoaS5lLiBzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3Is
IGV0Yy4pIGJ1dCBkbyBub3Qgd2FudAorIyB0byBpbmNsdWRlIChhIHRhZyBmaWxlIGZvcikgdGhl
IFNUTCBzb3VyY2VzIGFzIGlucHV0LCB0aGVuIHlvdSBzaG91bGQgc2V0IHRoaXMKKyMgdGFnIHRv
IFlFUyBpbiBvcmRlciB0byBsZXQgZG94eWdlbiBtYXRjaCBmdW5jdGlvbnMgZGVjbGFyYXRpb25z
IGFuZAorIyBkZWZpbml0aW9ucyB3aG9zZSBhcmd1bWVudHMgY29udGFpbiBTVEwgY2xhc3NlcyAo
ZS5nLiBmdW5jKHN0ZDo6c3RyaW5nKTsKKyMgdmVyc3VzIGZ1bmMoc3RkOjpzdHJpbmcpIHt9KS4g
VGhpcyBhbHNvIG1ha2UgdGhlIGluaGVyaXRhbmNlIGFuZCBjb2xsYWJvcmF0aW9uCiAjIGRpYWdy
YW1zIHRoYXQgaW52b2x2ZSBTVEwgY2xhc3NlcyBtb3JlIGNvbXBsZXRlIGFuZCBhY2N1cmF0ZS4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBCVUlMVElOX1NUTF9TVVBQT1JUICAgID0g
WUVTCiAKLSMgSWYgeW91IHVzZSBNaWNyb3NvZnQncyBDKysvQ0xJIGxhbmd1YWdlLCB5b3Ugc2hv
dWxkIHNldCB0aGlzIG9wdGlvbiB0byBZRVMgdG8gCisjIElmIHlvdSB1c2UgTWljcm9zb2Z0J3Mg
QysrL0NMSSBsYW5ndWFnZSwgeW91IHNob3VsZCBzZXQgdGhpcyBvcHRpb24gdG8gWUVTIHRvCiAj
IGVuYWJsZSBwYXJzaW5nIHN1cHBvcnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAog
Q1BQX0NMSV9TVVBQT1JUICAgICAgICA9IE5PCiAKLSMgU2V0IHRoZSBTSVBfU1VQUE9SVCB0YWcg
dG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBzaXAgc291cmNlcyBvbmx5LiAKLSMg
RG94eWdlbiB3aWxsIHBhcnNlIHRoZW0gbGlrZSBub3JtYWwgQysrIGJ1dCB3aWxsIGFzc3VtZSBh
bGwgY2xhc3NlcyB1c2UgcHVibGljIAotIyBpbnN0ZWFkIG9mIHByaXZhdGUgaW5oZXJpdGFuY2Ug
d2hlbiBubyBleHBsaWNpdCBwcm90ZWN0aW9uIGtleXdvcmQgaXMgcHJlc2VudC4KKyMgU2V0IHRo
ZSBTSVBfU1VQUE9SVCB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBzaXAg
KHNlZToKKyMgaHR0cDovL3d3dy5yaXZlcmJhbmtjb21wdXRpbmcuY28udWsvc29mdHdhcmUvc2lw
L2ludHJvKSBzb3VyY2VzIG9ubHkuIERveHlnZW4KKyMgd2lsbCBwYXJzZSB0aGVtIGxpa2Ugbm9y
bWFsIEMrKyBidXQgd2lsbCBhc3N1bWUgYWxsIGNsYXNzZXMgdXNlIHB1YmxpYyBpbnN0ZWFkCisj
IG9mIHByaXZhdGUgaW5oZXJpdGFuY2Ugd2hlbiBubyBleHBsaWNpdCBwcm90ZWN0aW9uIGtleXdv
cmQgaXMgcHJlc2VudC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTSVBfU1VQUE9S
VCAgICAgICAgICAgID0gTk8KIAotIyBGb3IgTWljcm9zb2Z0J3MgSURMIHRoZXJlIGFyZSBwcm9w
Z2V0IGFuZCBwcm9wcHV0IGF0dHJpYnV0ZXMgdG8gaW5kaWNhdGUgZ2V0dGVyIAotIyBhbmQgc2V0
dGVyIG1ldGhvZHMgZm9yIGEgcHJvcGVydHkuIFNldHRpbmcgdGhpcyBvcHRpb24gdG8gWUVTICh0
aGUgZGVmYXVsdCkgCi0jIHdpbGwgbWFrZSBkb3h5Z2VuIHRvIHJlcGxhY2UgdGhlIGdldCBhbmQg
c2V0IG1ldGhvZHMgYnkgYSBwcm9wZXJ0eSBpbiB0aGUgCi0jIGRvY3VtZW50YXRpb24uIFRoaXMg
d2lsbCBvbmx5IHdvcmsgaWYgdGhlIG1ldGhvZHMgYXJlIGluZGVlZCBnZXR0aW5nIG9yIAotIyBz
ZXR0aW5nIGEgc2ltcGxlIHR5cGUuIElmIHRoaXMgaXMgbm90IHRoZSBjYXNlLCBvciB5b3Ugd2Fu
dCB0byBzaG93IHRoZSAKLSMgbWV0aG9kcyBhbnl3YXksIHlvdSBzaG91bGQgc2V0IHRoaXMgb3B0
aW9uIHRvIE5PLgorIyBGb3IgTWljcm9zb2Z0J3MgSURMIHRoZXJlIGFyZSBwcm9wZ2V0IGFuZCBw
cm9wcHV0IGF0dHJpYnV0ZXMgdG8gaW5kaWNhdGUKKyMgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9k
cyBmb3IgYSBwcm9wZXJ0eS4gU2V0dGluZyB0aGlzIG9wdGlvbiB0byBZRVMgd2lsbCBtYWtlCisj
IGRveHlnZW4gdG8gcmVwbGFjZSB0aGUgZ2V0IGFuZCBzZXQgbWV0aG9kcyBieSBhIHByb3BlcnR5
IGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHdpbGwgb25seSB3b3JrIGlmIHRoZSBtZXRo
b2RzIGFyZSBpbmRlZWQgZ2V0dGluZyBvciBzZXR0aW5nIGEgc2ltcGxlCisjIHR5cGUuIElmIHRo
aXMgaXMgbm90IHRoZSBjYXNlLCBvciB5b3Ugd2FudCB0byBzaG93IHRoZSBtZXRob2RzIGFueXdh
eSwgeW91CisjIHNob3VsZCBzZXQgdGhpcyBvcHRpb24gdG8gTk8uCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCiAKIElETF9QUk9QRVJUWV9TVVBQT1JUICAgPSBZRVMKIAotIyBJZiBtZW1i
ZXIgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgdGhlIERJU1RSSUJV
VEVfR1JPVVBfRE9DIAotIyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlbiBkb3h5Z2VuIHdpbGwgcmV1
c2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGZpcnN0IAotIyBtZW1iZXIgaW4gdGhlIGdyb3Vw
IChpZiBhbnkpIGZvciB0aGUgb3RoZXIgbWVtYmVycyBvZiB0aGUgZ3JvdXAuIEJ5IGRlZmF1bHQg
CisjIElmIG1lbWJlciBncm91cGluZyBpcyB1c2VkIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZCB0
aGUgRElTVFJJQlVURV9HUk9VUF9ET0MKKyMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdl
biB3aWxsIHJldXNlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBmaXJzdAorIyBtZW1iZXIgaW4g
dGhlIGdyb3VwIChpZiBhbnkpIGZvciB0aGUgb3RoZXIgbWVtYmVycyBvZiB0aGUgZ3JvdXAuIEJ5
IGRlZmF1bHQKICMgYWxsIG1lbWJlcnMgb2YgYSBncm91cCBtdXN0IGJlIGRvY3VtZW50ZWQgZXhw
bGljaXRseS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBESVNUUklCVVRFX0dST1VQ
X0RPQyAgID0gTk8KIAotIyBTZXQgdGhlIFNVQkdST1VQSU5HIHRhZyB0byBZRVMgKHRoZSBkZWZh
dWx0KSB0byBhbGxvdyBjbGFzcyBtZW1iZXIgZ3JvdXBzIG9mIAotIyB0aGUgc2FtZSB0eXBlIChm
b3IgaW5zdGFuY2UgYSBncm91cCBvZiBwdWJsaWMgZnVuY3Rpb25zKSB0byBiZSBwdXQgYXMgYSAK
LSMgc3ViZ3JvdXAgb2YgdGhhdCB0eXBlIChlLmcuIHVuZGVyIHRoZSBQdWJsaWMgRnVuY3Rpb25z
IHNlY3Rpb24pLiBTZXQgaXQgdG8gCi0jIE5PIHRvIHByZXZlbnQgc3ViZ3JvdXBpbmcuIEFsdGVy
bmF0aXZlbHksIHRoaXMgY2FuIGJlIGRvbmUgcGVyIGNsYXNzIHVzaW5nIAotIyB0aGUgXG5vc3Vi
Z3JvdXBpbmcgY29tbWFuZC4KKyMgU2V0IHRoZSBTVUJHUk9VUElORyB0YWcgdG8gWUVTIHRvIGFs
bG93IGNsYXNzIG1lbWJlciBncm91cHMgb2YgdGhlIHNhbWUgdHlwZQorIyAoZm9yIGluc3RhbmNl
IGEgZ3JvdXAgb2YgcHVibGljIGZ1bmN0aW9ucykgdG8gYmUgcHV0IGFzIGEgc3ViZ3JvdXAgb2Yg
dGhhdAorIyB0eXBlIChlLmcuIHVuZGVyIHRoZSBQdWJsaWMgRnVuY3Rpb25zIHNlY3Rpb24pLiBT
ZXQgaXQgdG8gTk8gdG8gcHJldmVudAorIyBzdWJncm91cGluZy4gQWx0ZXJuYXRpdmVseSwgdGhp
cyBjYW4gYmUgZG9uZSBwZXIgY2xhc3MgdXNpbmcgdGhlCisjIFxub3N1Ymdyb3VwaW5nIGNvbW1h
bmQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIFNVQkdST1VQSU5HICAgICAgICAg
ICAgPSBZRVMKIAotIyBXaGVuIFRZUEVERUZfSElERVNfU1RSVUNUIGlzIGVuYWJsZWQsIGEgdHlw
ZWRlZiBvZiBhIHN0cnVjdCwgdW5pb24sIG9yIGVudW0gCi0jIGlzIGRvY3VtZW50ZWQgYXMgc3Ry
dWN0LCB1bmlvbiwgb3IgZW51bSB3aXRoIHRoZSBuYW1lIG9mIHRoZSB0eXBlZGVmLiBTbyAKLSMg
dHlwZWRlZiBzdHJ1Y3QgVHlwZVMge30gVHlwZVQsIHdpbGwgYXBwZWFyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFzIGEgc3RydWN0IAotIyB3aXRoIG5hbWUgVHlwZVQuIFdoZW4gZGlzYWJsZWQgdGhl
IHR5cGVkZWYgd2lsbCBhcHBlYXIgYXMgYSBtZW1iZXIgb2YgYSBmaWxlLCAKLSMgbmFtZXNwYWNl
LCBvciBjbGFzcy4gQW5kIHRoZSBzdHJ1Y3Qgd2lsbCBiZSBuYW1lZCBUeXBlUy4gVGhpcyBjYW4g
dHlwaWNhbGx5IAotIyBiZSB1c2VmdWwgZm9yIEMgY29kZSBpbiBjYXNlIHRoZSBjb2RpbmcgY29u
dmVudGlvbiBkaWN0YXRlcyB0aGF0IGFsbCBjb21wb3VuZCAKKyMgV2hlbiB0aGUgSU5MSU5FX0dS
T1VQRURfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlFUywgY2xhc3Nlcywgc3RydWN0cyBhbmQgdW5p
b25zCisjIGFyZSBzaG93biBpbnNpZGUgdGhlIGdyb3VwIGluIHdoaWNoIHRoZXkgYXJlIGluY2x1
ZGVkIChlLmcuIHVzaW5nIFxpbmdyb3VwKQorIyBpbnN0ZWFkIG9mIG9uIGEgc2VwYXJhdGUgcGFn
ZSAoZm9yIEhUTUwgYW5kIE1hbiBwYWdlcykgb3Igc2VjdGlvbiAoZm9yIExhVGVYCisjIGFuZCBS
VEYpLgorIworIyBOb3RlIHRoYXQgdGhpcyBmZWF0dXJlIGRvZXMgbm90IHdvcmsgaW4gY29tYmlu
YXRpb24gd2l0aAorIyBTRVBBUkFURV9NRU1CRVJfUEFHRVMuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKworSU5MSU5FX0dST1VQRURfQ0xBU1NFUyA9IE5PCisKKyMgV2hlbiB0aGUgSU5M
SU5FX1NJTVBMRV9TVFJVQ1RTIHRhZyBpcyBzZXQgdG8gWUVTLCBzdHJ1Y3RzLCBjbGFzc2VzLCBh
bmQgdW5pb25zCisjIHdpdGggb25seSBwdWJsaWMgZGF0YSBmaWVsZHMgb3Igc2ltcGxlIHR5cGVk
ZWYgZmllbGRzIHdpbGwgYmUgc2hvd24gaW5saW5lIGluCisjIHRoZSBkb2N1bWVudGF0aW9uIG9m
IHRoZSBzY29wZSBpbiB3aGljaCB0aGV5IGFyZSBkZWZpbmVkIChpLmUuIGZpbGUsCisjIG5hbWVz
cGFjZSwgb3IgZ3JvdXAgZG9jdW1lbnRhdGlvbiksIHByb3ZpZGVkIHRoaXMgc2NvcGUgaXMgZG9j
dW1lbnRlZC4gSWYgc2V0CisjIHRvIE5PLCBzdHJ1Y3RzLCBjbGFzc2VzLCBhbmQgdW5pb25zIGFy
ZSBzaG93biBvbiBhIHNlcGFyYXRlIHBhZ2UgKGZvciBIVE1MIGFuZAorIyBNYW4gcGFnZXMpIG9y
IHNlY3Rpb24gKGZvciBMYVRlWCBhbmQgUlRGKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorCitJTkxJTkVfU0lNUExFX1NUUlVDVFMgID0gTk8KKworIyBXaGVuIFRZUEVERUZfSElERVNf
U1RSVUNUIHRhZyBpcyBlbmFibGVkLCBhIHR5cGVkZWYgb2YgYSBzdHJ1Y3QsIHVuaW9uLCBvcgor
IyBlbnVtIGlzIGRvY3VtZW50ZWQgYXMgc3RydWN0LCB1bmlvbiwgb3IgZW51bSB3aXRoIHRoZSBu
YW1lIG9mIHRoZSB0eXBlZGVmLiBTbworIyB0eXBlZGVmIHN0cnVjdCBUeXBlUyB7fSBUeXBlVCwg
d2lsbCBhcHBlYXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYXMgYSBzdHJ1Y3QKKyMgd2l0aCBuYW1l
IFR5cGVULiBXaGVuIGRpc2FibGVkIHRoZSB0eXBlZGVmIHdpbGwgYXBwZWFyIGFzIGEgbWVtYmVy
IG9mIGEgZmlsZSwKKyMgbmFtZXNwYWNlLCBvciBjbGFzcy4gQW5kIHRoZSBzdHJ1Y3Qgd2lsbCBi
ZSBuYW1lZCBUeXBlUy4gVGhpcyBjYW4gdHlwaWNhbGx5IGJlCisjIHVzZWZ1bCBmb3IgQyBjb2Rl
IGluIGNhc2UgdGhlIGNvZGluZyBjb252ZW50aW9uIGRpY3RhdGVzIHRoYXQgYWxsIGNvbXBvdW5k
CiAjIHR5cGVzIGFyZSB0eXBlZGVmJ2VkIGFuZCBvbmx5IHRoZSB0eXBlZGVmIGlzIHJlZmVyZW5j
ZWQsIG5ldmVyIHRoZSB0YWcgbmFtZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBU
WVBFREVGX0hJREVTX1NUUlVDVCAgID0gTk8KIAotIyBUaGUgU1lNQk9MX0NBQ0hFX1NJWkUgZGV0
ZXJtaW5lcyB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgY2FjaGUgdXNlIHRvIAotIyBkZXRlcm1p
bmUgd2hpY2ggc3ltYm9scyB0byBrZWVwIGluIG1lbW9yeSBhbmQgd2hpY2ggdG8gZmx1c2ggdG8g
ZGlzay4gCi0jIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGxlc3Mgb2Z0ZW4gdXNlZCBzeW1ib2xz
IHdpbGwgYmUgd3JpdHRlbiB0byBkaXNrLiAKLSMgRm9yIHNtYWxsIHRvIG1lZGl1bSBzaXplIHBy
b2plY3RzICg8MTAwMCBpbnB1dCBmaWxlcykgdGhlIGRlZmF1bHQgdmFsdWUgaXMgCi0jIHByb2Jh
Ymx5IGdvb2QgZW5vdWdoLiBGb3IgbGFyZ2VyIHByb2plY3RzIGEgdG9vIHNtYWxsIGNhY2hlIHNp
emUgY2FuIGNhdXNlIAotIyBkb3h5Z2VuIHRvIGJlIGJ1c3kgc3dhcHBpbmcgc3ltYm9scyB0byBh
bmQgZnJvbSBkaXNrIG1vc3Qgb2YgdGhlIHRpbWUgCi0jIGNhdXNpbmcgYSBzaWduaWZpY2FudCBw
ZXJmb3JtYW5jZSBwZW5hbGl0eS4gCi0jIElmIHRoZSBzeXN0ZW0gaGFzIGVub3VnaCBwaHlzaWNh
bCBtZW1vcnkgaW5jcmVhc2luZyB0aGUgY2FjaGUgd2lsbCBpbXByb3ZlIHRoZSAKLSMgcGVyZm9y
bWFuY2UgYnkga2VlcGluZyBtb3JlIHN5bWJvbHMgaW4gbWVtb3J5LiBOb3RlIHRoYXQgdGhlIHZh
bHVlIHdvcmtzIG9uIAotIyBhIGxvZ2FyaXRobWljIHNjYWxlIHNvIGluY3JlYXNpbmcgdGhlIHNp
emUgYnkgb25lIHdpbGwgcm91Z2x5IGRvdWJsZSB0aGUgCi0jIG1lbW9yeSB1c2FnZS4gVGhlIGNh
Y2hlIHNpemUgaXMgZ2l2ZW4gYnkgdGhpcyBmb3JtdWxhOiAKLSMgMl4oMTYrU1lNQk9MX0NBQ0hF
X1NJWkUpLiBUaGUgdmFsaWQgcmFuZ2UgaXMgMC4uOSwgdGhlIGRlZmF1bHQgaXMgMCwgCi0jIGNv
cnJlc3BvbmRpbmcgdG8gYSBjYWNoZSBzaXplIG9mIDJeMTYgPSA2NTUzNiBzeW1ib2xzCi0KLVNZ
TUJPTF9DQUNIRV9TSVpFICAgICAgPSAwCisjIFRoZSBzaXplIG9mIHRoZSBzeW1ib2wgbG9va3Vw
IGNhY2hlIGNhbiBiZSBzZXQgdXNpbmcgTE9PS1VQX0NBQ0hFX1NJWkUuIFRoaXMKKyMgY2FjaGUg
aXMgdXNlZCB0byByZXNvbHZlIHN5bWJvbHMgZ2l2ZW4gdGhlaXIgbmFtZSBhbmQgc2NvcGUuIFNp
bmNlIHRoaXMgY2FuIGJlCisjIGFuIGV4cGVuc2l2ZSBwcm9jZXNzIGFuZCBvZnRlbiB0aGUgc2Ft
ZSBzeW1ib2wgYXBwZWFycyBtdWx0aXBsZSB0aW1lcyBpbiB0aGUKKyMgY29kZSwgZG94eWdlbiBr
ZWVwcyBhIGNhY2hlIG9mIHByZS1yZXNvbHZlZCBzeW1ib2xzLiBJZiB0aGUgY2FjaGUgaXMgdG9v
IHNtYWxsCisjIGRveHlnZW4gd2lsbCBiZWNvbWUgc2xvd2VyLiBJZiB0aGUgY2FjaGUgaXMgdG9v
IGxhcmdlLCBtZW1vcnkgaXMgd2FzdGVkLiBUaGUKKyMgY2FjaGUgc2l6ZSBpcyBnaXZlbiBieSB0
aGlzIGZvcm11bGE6IDJeKDE2K0xPT0tVUF9DQUNIRV9TSVpFKS4gVGhlIHZhbGlkIHJhbmdlCisj
IGlzIDAuLjksIHRoZSBkZWZhdWx0IGlzIDAsIGNvcnJlc3BvbmRpbmcgdG8gYSBjYWNoZSBzaXpl
IG9mIDJeMTY9NjU1MzYKKyMgc3ltYm9scy4gQXQgdGhlIGVuZCBvZiBhIHJ1biBkb3h5Z2VuIHdp
bGwgcmVwb3J0IHRoZSBjYWNoZSB1c2FnZSBhbmQgc3VnZ2VzdAorIyB0aGUgb3B0aW1hbCBjYWNo
ZSBzaXplIGZyb20gYSBzcGVlZCBwb2ludCBvZiB2aWV3LgorIyBNaW5pbXVtIHZhbHVlOiAwLCBt
YXhpbXVtIHZhbHVlOiA5LCBkZWZhdWx0IHZhbHVlOiAwLgorCitMT09LVVBfQ0FDSEVfU0laRSAg
ICAgID0gMAogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEJ1aWxkIHJlbGF0ZWQgY29uZmlndXJh
dGlvbiBvcHRpb25zCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEVYVFJBQ1RfQUxM
IHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBhc3N1bWUgYWxsIGVudGl0aWVzIGluIAot
IyBkb2N1bWVudGF0aW9uIGFyZSBkb2N1bWVudGVkLCBldmVuIGlmIG5vIGRvY3VtZW50YXRpb24g
d2FzIGF2YWlsYWJsZS4gCi0jIFByaXZhdGUgY2xhc3MgbWVtYmVycyBhbmQgc3RhdGljIGZpbGUg
bWVtYmVycyB3aWxsIGJlIGhpZGRlbiB1bmxlc3MgCi0jIHRoZSBFWFRSQUNUX1BSSVZBVEUgYW5k
IEVYVFJBQ1RfU1RBVElDIHRhZ3MgYXJlIHNldCB0byBZRVMKKyMgSWYgdGhlIEVYVFJBQ1RfQUxM
IHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBhc3N1bWUgYWxsIGVudGl0aWVzIGluCisj
IGRvY3VtZW50YXRpb24gYXJlIGRvY3VtZW50ZWQsIGV2ZW4gaWYgbm8gZG9jdW1lbnRhdGlvbiB3
YXMgYXZhaWxhYmxlLiBQcml2YXRlCisjIGNsYXNzIG1lbWJlcnMgYW5kIHN0YXRpYyBmaWxlIG1l
bWJlcnMgd2lsbCBiZSBoaWRkZW4gdW5sZXNzIHRoZQorIyBFWFRSQUNUX1BSSVZBVEUgcmVzcGVj
dGl2ZWx5IEVYVFJBQ1RfU1RBVElDIHRhZ3MgYXJlIHNldCB0byBZRVMuCisjIE5vdGU6IFRoaXMg
d2lsbCBhbHNvIGRpc2FibGUgdGhlIHdhcm5pbmdzIGFib3V0IHVuZG9jdW1lbnRlZCBtZW1iZXJz
IHRoYXQgYXJlCisjIG5vcm1hbGx5IHByb2R1Y2VkIHdoZW4gV0FSTklOR1MgaXMgc2V0IHRvIFlF
Uy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBFWFRSQUNUX0FMTCAgICAgICAgICAg
ID0gWUVTCiAKLSMgSWYgdGhlIEVYVFJBQ1RfUFJJVkFURSB0YWcgaXMgc2V0IHRvIFlFUyBhbGwg
cHJpdmF0ZSBtZW1iZXJzIG9mIGEgY2xhc3MgCi0jIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGRv
Y3VtZW50YXRpb24uCisjIElmIHRoZSBFWFRSQUNUX1BSSVZBVEUgdGFnIGlzIHNldCB0byBZRVMg
YWxsIHByaXZhdGUgbWVtYmVycyBvZiBhIGNsYXNzIHdpbGwKKyMgYmUgaW5jbHVkZWQgaW4gdGhl
IGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogRVhUUkFDVF9Q
UklWQVRFICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIEVYVFJBQ1RfU1RBVElDIHRhZyBpcyBzZXQg
dG8gWUVTIGFsbCBzdGF0aWMgbWVtYmVycyBvZiBhIGZpbGUgCi0jIHdpbGwgYmUgaW5jbHVkZWQg
aW4gdGhlIGRvY3VtZW50YXRpb24uCisjIElmIHRoZSBFWFRSQUNUX1BBQ0tBR0UgdGFnIGlzIHNl
dCB0byBZRVMgYWxsIG1lbWJlcnMgd2l0aCBwYWNrYWdlIG9yIGludGVybmFsCisjIHNjb3BlIHdp
bGwgYmUgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKworRVhUUkFDVF9QQUNLQUdFICAgICAgICA9IE5PCisKKyMgSWYgdGhlIEVYVFJB
Q1RfU1RBVElDIHRhZyBpcyBzZXQgdG8gWUVTIGFsbCBzdGF0aWMgbWVtYmVycyBvZiBhIGZpbGUg
d2lsbCBiZQorIyBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgogCiBFWFRSQUNUX1NUQVRJQyAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhl
IEVYVFJBQ1RfTE9DQUxfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlFUyBjbGFzc2VzIChhbmQgc3Ry
dWN0cykgCi0jIGRlZmluZWQgbG9jYWxseSBpbiBzb3VyY2UgZmlsZXMgd2lsbCBiZSBpbmNsdWRl
ZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gCi0jIElmIHNldCB0byBOTyBvbmx5IGNsYXNzZXMgZGVm
aW5lZCBpbiBoZWFkZXIgZmlsZXMgYXJlIGluY2x1ZGVkLgorIyBJZiB0aGUgRVhUUkFDVF9MT0NB
TF9DTEFTU0VTIHRhZyBpcyBzZXQgdG8gWUVTIGNsYXNzZXMgKGFuZCBzdHJ1Y3RzKSBkZWZpbmVk
CisjIGxvY2FsbHkgaW4gc291cmNlIGZpbGVzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGRvY3Vt
ZW50YXRpb24uIElmIHNldCB0byBOTworIyBvbmx5IGNsYXNzZXMgZGVmaW5lZCBpbiBoZWFkZXIg
ZmlsZXMgYXJlIGluY2x1ZGVkLiBEb2VzIG5vdCBoYXZlIGFueSBlZmZlY3QKKyMgZm9yIEphdmEg
c291cmNlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogRVhUUkFDVF9MT0NBTF9D
TEFTU0VTICA9IE5PCiAKLSMgVGhpcyBmbGFnIGlzIG9ubHkgdXNlZnVsIGZvciBPYmplY3RpdmUt
QyBjb2RlLiBXaGVuIHNldCB0byBZRVMgbG9jYWwgCi0jIG1ldGhvZHMsIHdoaWNoIGFyZSBkZWZp
bmVkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBzZWN0aW9uIGJ1dCBub3QgaW4gCi0jIHRoZSBpbnRl
cmZhY2UgYXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLiAKLSMgSWYgc2V0IHRvIE5P
ICh0aGUgZGVmYXVsdCkgb25seSBtZXRob2RzIGluIHRoZSBpbnRlcmZhY2UgYXJlIGluY2x1ZGVk
LgorIyBUaGlzIGZsYWcgaXMgb25seSB1c2VmdWwgZm9yIE9iamVjdGl2ZS1DIGNvZGUuIFdoZW4g
c2V0IHRvIFlFUyBsb2NhbCBtZXRob2RzLAorIyB3aGljaCBhcmUgZGVmaW5lZCBpbiB0aGUgaW1w
bGVtZW50YXRpb24gc2VjdGlvbiBidXQgbm90IGluIHRoZSBpbnRlcmZhY2UgYXJlCisjIGluY2x1
ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gTk8gb25seSBtZXRob2RzIGluIHRo
ZSBpbnRlcmZhY2UgYXJlCisjIGluY2x1ZGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CiAKIEVYVFJBQ1RfTE9DQUxfTUVUSE9EUyAgPSBOTwogCi0jIElmIHRoaXMgZmxhZyBpcyBzZXQg
dG8gWUVTLCB0aGUgbWVtYmVycyBvZiBhbm9ueW1vdXMgbmFtZXNwYWNlcyB3aWxsIGJlIAotIyBl
eHRyYWN0ZWQgYW5kIGFwcGVhciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhcyBhIG5hbWVzcGFjZSBj
YWxsZWQgCi0jICdhbm9ueW1vdXNfbmFtZXNwYWNle2ZpbGV9Jywgd2hlcmUgZmlsZSB3aWxsIGJl
IHJlcGxhY2VkIHdpdGggdGhlIGJhc2UgCi0jIG5hbWUgb2YgdGhlIGZpbGUgdGhhdCBjb250YWlu
cyB0aGUgYW5vbnltb3VzIG5hbWVzcGFjZS4gQnkgZGVmYXVsdCAKLSMgYW5vbnltb3VzIG5hbWVz
cGFjZSBhcmUgaGlkZGVuLgorIyBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIFlFUywgdGhlIG1lbWJl
cnMgb2YgYW5vbnltb3VzIG5hbWVzcGFjZXMgd2lsbCBiZQorIyBleHRyYWN0ZWQgYW5kIGFwcGVh
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhcyBhIG5hbWVzcGFjZSBjYWxsZWQKKyMgJ2Fub255bW91
c19uYW1lc3BhY2V7ZmlsZX0nLCB3aGVyZSBmaWxlIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUg
YmFzZSBuYW1lIG9mCisjIHRoZSBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGFub255bW91cyBuYW1l
c3BhY2UuIEJ5IGRlZmF1bHQgYW5vbnltb3VzIG5hbWVzcGFjZQorIyBhcmUgaGlkZGVuLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEVYVFJBQ1RfQU5PTl9OU1BBQ0VTICAgPSBOTwog
Ci0jIElmIHRoZSBISURFX1VORE9DX01FTUJFUlMgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4g
d2lsbCBoaWRlIGFsbCAKLSMgdW5kb2N1bWVudGVkIG1lbWJlcnMgb2YgZG9jdW1lbnRlZCBjbGFz
c2VzLCBmaWxlcyBvciBuYW1lc3BhY2VzLiAKLSMgSWYgc2V0IHRvIE5PICh0aGUgZGVmYXVsdCkg
dGhlc2UgbWVtYmVycyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSAKLSMgdmFyaW91cyBvdmVydmll
d3MsIGJ1dCBubyBkb2N1bWVudGF0aW9uIHNlY3Rpb24gaXMgZ2VuZXJhdGVkLiAKLSMgVGhpcyBv
cHRpb24gaGFzIG5vIGVmZmVjdCBpZiBFWFRSQUNUX0FMTCBpcyBlbmFibGVkLgorIyBJZiB0aGUg
SElERV9VTkRPQ19NRU1CRVJTIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgaGlkZSBh
bGwKKyMgdW5kb2N1bWVudGVkIG1lbWJlcnMgaW5zaWRlIGRvY3VtZW50ZWQgY2xhc3NlcyBvciBm
aWxlcy4gSWYgc2V0IHRvIE5PIHRoZXNlCisjIG1lbWJlcnMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0
aGUgdmFyaW91cyBvdmVydmlld3MsIGJ1dCBubyBkb2N1bWVudGF0aW9uCisjIHNlY3Rpb24gaXMg
Z2VuZXJhdGVkLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IGlmIEVYVFJBQ1RfQUxMIGlzIGVu
YWJsZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSElERV9VTkRPQ19NRU1CRVJT
ICAgICA9IE5PCiAKLSMgSWYgdGhlIEhJREVfVU5ET0NfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlF
UywgRG94eWdlbiB3aWxsIGhpZGUgYWxsIAotIyB1bmRvY3VtZW50ZWQgY2xhc3NlcyB0aGF0IGFy
ZSBub3JtYWxseSB2aXNpYmxlIGluIHRoZSBjbGFzcyBoaWVyYXJjaHkuIAotIyBJZiBzZXQgdG8g
Tk8gKHRoZSBkZWZhdWx0KSB0aGVzZSBjbGFzc2VzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHZh
cmlvdXMgCi0jIG92ZXJ2aWV3cy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBpZiBFWFRSQUNU
X0FMTCBpcyBlbmFibGVkLgorIyBJZiB0aGUgSElERV9VTkRPQ19DTEFTU0VTIHRhZyBpcyBzZXQg
dG8gWUVTLCBkb3h5Z2VuIHdpbGwgaGlkZSBhbGwKKyMgdW5kb2N1bWVudGVkIGNsYXNzZXMgdGhh
dCBhcmUgbm9ybWFsbHkgdmlzaWJsZSBpbiB0aGUgY2xhc3MgaGllcmFyY2h5LiBJZiBzZXQKKyMg
dG8gTk8gdGhlc2UgY2xhc3NlcyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSB2YXJpb3VzIG92ZXJ2
aWV3cy4gVGhpcyBvcHRpb24gaGFzCisjIG5vIGVmZmVjdCBpZiBFWFRSQUNUX0FMTCBpcyBlbmFi
bGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEhJREVfVU5ET0NfQ0xBU1NFUyAg
ICAgPSBOTwogCi0jIElmIHRoZSBISURFX0ZSSUVORF9DT01QT1VORFMgdGFnIGlzIHNldCB0byBZ
RVMsIERveHlnZW4gd2lsbCBoaWRlIGFsbCAKLSMgZnJpZW5kIChjbGFzc3xzdHJ1Y3R8dW5pb24p
IGRlY2xhcmF0aW9ucy4gCi0jIElmIHNldCB0byBOTyAodGhlIGRlZmF1bHQpIHRoZXNlIGRlY2xh
cmF0aW9ucyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSAKLSMgZG9jdW1lbnRhdGlvbi4KKyMgSWYg
dGhlIEhJREVfRlJJRU5EX0NPTVBPVU5EUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxs
IGhpZGUgYWxsIGZyaWVuZAorIyAoY2xhc3N8c3RydWN0fHVuaW9uKSBkZWNsYXJhdGlvbnMuIElm
IHNldCB0byBOTyB0aGVzZSBkZWNsYXJhdGlvbnMgd2lsbCBiZQorIyBpbmNsdWRlZCBpbiB0aGUg
ZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBISURFX0ZSSUVO
RF9DT01QT1VORFMgID0gTk8KIAotIyBJZiB0aGUgSElERV9JTl9CT0RZX0RPQ1MgdGFnIGlzIHNl
dCB0byBZRVMsIERveHlnZW4gd2lsbCBoaWRlIGFueSAKLSMgZG9jdW1lbnRhdGlvbiBibG9ja3Mg
Zm91bmQgaW5zaWRlIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24uIAotIyBJZiBzZXQgdG8gTk8gKHRo
ZSBkZWZhdWx0KSB0aGVzZSBibG9ja3Mgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgCi0jIGZ1bmN0
aW9uJ3MgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBibG9jay4KKyMgSWYgdGhlIEhJREVfSU5fQk9E
WV9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgaGlkZSBhbnkKKyMgZG9jdW1l
bnRhdGlvbiBibG9ja3MgZm91bmQgaW5zaWRlIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24uIElmIHNl
dCB0byBOTyB0aGVzZQorIyBibG9ja3Mgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZnVuY3Rpb24n
cyBkZXRhaWxlZCBkb2N1bWVudGF0aW9uIGJsb2NrLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCiAKIEhJREVfSU5fQk9EWV9ET0NTICAgICAgPSBOTwogCi0jIFRoZSBJTlRFUk5BTF9ET0NT
IHRhZyBkZXRlcm1pbmVzIGlmIGRvY3VtZW50YXRpb24gCi0jIHRoYXQgaXMgdHlwZWQgYWZ0ZXIg
YSBcaW50ZXJuYWwgY29tbWFuZCBpcyBpbmNsdWRlZC4gSWYgdGhlIHRhZyBpcyBzZXQgCi0jIHRv
IE5PICh0aGUgZGVmYXVsdCkgdGhlbiB0aGUgZG9jdW1lbnRhdGlvbiB3aWxsIGJlIGV4Y2x1ZGVk
LiAKLSMgU2V0IGl0IHRvIFlFUyB0byBpbmNsdWRlIHRoZSBpbnRlcm5hbCBkb2N1bWVudGF0aW9u
LgorIyBUaGUgSU5URVJOQUxfRE9DUyB0YWcgZGV0ZXJtaW5lcyBpZiBkb2N1bWVudGF0aW9uIHRo
YXQgaXMgdHlwZWQgYWZ0ZXIgYQorIyBcaW50ZXJuYWwgY29tbWFuZCBpcyBpbmNsdWRlZC4gSWYg
dGhlIHRhZyBpcyBzZXQgdG8gTk8gdGhlbiB0aGUgZG9jdW1lbnRhdGlvbgorIyB3aWxsIGJlIGV4
Y2x1ZGVkLiBTZXQgaXQgdG8gWUVTIHRvIGluY2x1ZGUgdGhlIGludGVybmFsIGRvY3VtZW50YXRp
b24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSU5URVJOQUxfRE9DUyAgICAgICAg
ICA9IFlFUwogCi0jIElmIHRoZSBDQVNFX1NFTlNFX05BTUVTIHRhZyBpcyBzZXQgdG8gTk8gdGhl
biBEb3h5Z2VuIHdpbGwgb25seSBnZW5lcmF0ZSAKLSMgZmlsZSBuYW1lcyBpbiBsb3dlci1jYXNl
IGxldHRlcnMuIElmIHNldCB0byBZRVMgdXBwZXItY2FzZSBsZXR0ZXJzIGFyZSBhbHNvIAotIyBh
bGxvd2VkLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSBjbGFzc2VzIG9yIGZpbGVzIHdob3Nl
IG5hbWVzIG9ubHkgZGlmZmVyIAotIyBpbiBjYXNlIGFuZCBpZiB5b3VyIGZpbGUgc3lzdGVtIHN1
cHBvcnRzIGNhc2Ugc2Vuc2l0aXZlIGZpbGUgbmFtZXMuIFdpbmRvd3MgCisjIElmIHRoZSBDQVNF
X1NFTlNFX05BTUVTIHRhZyBpcyBzZXQgdG8gTk8gdGhlbiBkb3h5Z2VuIHdpbGwgb25seSBnZW5l
cmF0ZSBmaWxlCisjIG5hbWVzIGluIGxvd2VyLWNhc2UgbGV0dGVycy4gSWYgc2V0IHRvIFlFUyB1
cHBlci1jYXNlIGxldHRlcnMgYXJlIGFsc28KKyMgYWxsb3dlZC4gVGhpcyBpcyB1c2VmdWwgaWYg
eW91IGhhdmUgY2xhc3NlcyBvciBmaWxlcyB3aG9zZSBuYW1lcyBvbmx5IGRpZmZlcgorIyBpbiBj
YXNlIGFuZCBpZiB5b3VyIGZpbGUgc3lzdGVtIHN1cHBvcnRzIGNhc2Ugc2Vuc2l0aXZlIGZpbGUg
bmFtZXMuIFdpbmRvd3MKICMgYW5kIE1hYyB1c2VycyBhcmUgYWR2aXNlZCB0byBzZXQgdGhpcyBv
cHRpb24gdG8gTk8uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBzeXN0ZW0gZGVwZW5kZW50Lgog
CiBDQVNFX1NFTlNFX05BTUVTICAgICAgID0gTk8KIAotIyBJZiB0aGUgSElERV9TQ09QRV9OQU1F
UyB0YWcgaXMgc2V0IHRvIE5PICh0aGUgZGVmYXVsdCkgdGhlbiBEb3h5Z2VuIAotIyB3aWxsIHNo
b3cgbWVtYmVycyB3aXRoIHRoZWlyIGZ1bGwgY2xhc3MgYW5kIG5hbWVzcGFjZSBzY29wZXMgaW4g
dGhlIAotIyBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gWUVTIHRoZSBzY29wZSB3aWxsIGJlIGhp
ZGRlbi4KKyMgSWYgdGhlIEhJREVfU0NPUEVfTkFNRVMgdGFnIGlzIHNldCB0byBOTyB0aGVuIGRv
eHlnZW4gd2lsbCBzaG93IG1lbWJlcnMgd2l0aAorIyB0aGVpciBmdWxsIGNsYXNzIGFuZCBuYW1l
c3BhY2Ugc2NvcGVzIGluIHRoZSBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gWUVTIHRoZQorIyBz
Y29wZSB3aWxsIGJlIGhpZGRlbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBISURF
X1NDT1BFX05BTUVTICAgICAgID0gTk8KIAotIyBJZiB0aGUgU0hPV19JTkNMVURFX0ZJTEVTIHRh
ZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkgdGhlbiBEb3h5Z2VuIAotIyB3aWxsIHB1dCBh
IGxpc3Qgb2YgdGhlIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGJ5IGEgZmlsZSBpbiB0aGUgZG9j
dW1lbnRhdGlvbiAKLSMgb2YgdGhhdCBmaWxlLgorIyBJZiB0aGUgU0hPV19JTkNMVURFX0ZJTEVT
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHB1dCBhIGxpc3Qgb2YKKyMgdGhl
IGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGJ5IGEgZmlsZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBv
ZiB0aGF0IGZpbGUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIFNIT1dfSU5DTFVE
RV9GSUxFUyAgICAgPSBZRVMKIAotIyBJZiB0aGUgSU5MSU5FX0lORk8gdGFnIGlzIHNldCB0byBZ
RVMgKHRoZSBkZWZhdWx0KSB0aGVuIGEgdGFnIFtpbmxpbmVdIAotIyBpcyBpbnNlcnRlZCBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBmb3IgaW5saW5lIG1lbWJlcnMuCisjIElmIHRoZSBGT1JDRV9MT0NB
TF9JTkNMVURFUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBsaXN0IGluY2x1
ZGUKKyMgZmlsZXMgd2l0aCBkb3VibGUgcXVvdGVzIGluIHRoZSBkb2N1bWVudGF0aW9uIHJhdGhl
ciB0aGFuIHdpdGggc2hhcnAgYnJhY2tldHMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KworRk9SQ0VfTE9DQUxfSU5DTFVERVMgICA9IE5PCisKKyMgSWYgdGhlIElOTElORV9JTkZPIHRh
ZyBpcyBzZXQgdG8gWUVTIHRoZW4gYSB0YWcgW2lubGluZV0gaXMgaW5zZXJ0ZWQgaW4gdGhlCisj
IGRvY3VtZW50YXRpb24gZm9yIGlubGluZSBtZW1iZXJzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgogCiBJTkxJTkVfSU5GTyAgICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIFNPUlRf
TUVNQkVSX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSB0aGVuIGRveHlnZW4g
Ci0jIHdpbGwgc29ydCB0aGUgKGRldGFpbGVkKSBkb2N1bWVudGF0aW9uIG9mIGZpbGUgYW5kIGNs
YXNzIG1lbWJlcnMgCi0jIGFscGhhYmV0aWNhbGx5IGJ5IG1lbWJlciBuYW1lLiBJZiBzZXQgdG8g
Tk8gdGhlIG1lbWJlcnMgd2lsbCBhcHBlYXIgaW4gCi0jIGRlY2xhcmF0aW9uIG9yZGVyLgorIyBJ
ZiB0aGUgU09SVF9NRU1CRVJfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2ls
bCBzb3J0IHRoZQorIyAoZGV0YWlsZWQpIGRvY3VtZW50YXRpb24gb2YgZmlsZSBhbmQgY2xhc3Mg
bWVtYmVycyBhbHBoYWJldGljYWxseSBieSBtZW1iZXIKKyMgbmFtZS4gSWYgc2V0IHRvIE5PIHRo
ZSBtZW1iZXJzIHdpbGwgYXBwZWFyIGluIGRlY2xhcmF0aW9uIG9yZGVyLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLgogCiBTT1JUX01FTUJFUl9ET0NTICAgICAgID0gWUVTCiAKLSMgSWYg
dGhlIFNPUlRfQlJJRUZfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBz
b3J0IHRoZSAKLSMgYnJpZWYgZG9jdW1lbnRhdGlvbiBvZiBmaWxlLCBuYW1lc3BhY2UgYW5kIGNs
YXNzIG1lbWJlcnMgYWxwaGFiZXRpY2FsbHkgCi0jIGJ5IG1lbWJlciBuYW1lLiBJZiBzZXQgdG8g
Tk8gKHRoZSBkZWZhdWx0KSB0aGUgbWVtYmVycyB3aWxsIGFwcGVhciBpbiAKLSMgZGVjbGFyYXRp
b24gb3JkZXIuCisjIElmIHRoZSBTT1JUX0JSSUVGX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhl
biBkb3h5Z2VuIHdpbGwgc29ydCB0aGUgYnJpZWYKKyMgZGVzY3JpcHRpb25zIG9mIGZpbGUsIG5h
bWVzcGFjZSBhbmQgY2xhc3MgbWVtYmVycyBhbHBoYWJldGljYWxseSBieSBtZW1iZXIKKyMgbmFt
ZS4gSWYgc2V0IHRvIE5PIHRoZSBtZW1iZXJzIHdpbGwgYXBwZWFyIGluIGRlY2xhcmF0aW9uIG9y
ZGVyLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFNPUlRfQlJJRUZfRE9DUyAgICAg
ICAgPSBOTwogCi0jIElmIHRoZSBTT1JUX0dST1VQX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlIAotIyBoaWVyYXJjaHkgb2YgZ3JvdXAgbmFtZXMgaW50
byBhbHBoYWJldGljYWwgb3JkZXIuIElmIHNldCB0byBOTyAodGhlIGRlZmF1bHQpIAotIyB0aGUg
Z3JvdXAgbmFtZXMgd2lsbCBhcHBlYXIgaW4gdGhlaXIgZGVmaW5lZCBvcmRlci4KKyMgSWYgdGhl
IFNPUlRfTUVNQkVSU19DVE9SU18xU1QgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdp
bGwgc29ydCB0aGUKKyMgKGJyaWVmIGFuZCBkZXRhaWxlZCkgZG9jdW1lbnRhdGlvbiBvZiBjbGFz
cyBtZW1iZXJzIHNvIHRoYXQgY29uc3RydWN0b3JzIGFuZAorIyBkZXN0cnVjdG9ycyBhcmUgbGlz
dGVkIGZpcnN0LiBJZiBzZXQgdG8gTk8gdGhlIGNvbnN0cnVjdG9ycyB3aWxsIGFwcGVhciBpbiB0
aGUKKyMgcmVzcGVjdGl2ZSBvcmRlcnMgZGVmaW5lZCBieSBTT1JUX0JSSUVGX0RPQ1MgYW5kIFNP
UlRfTUVNQkVSX0RPQ1MuCisjIE5vdGU6IElmIFNPUlRfQlJJRUZfRE9DUyBpcyBzZXQgdG8gTk8g
dGhpcyBvcHRpb24gaXMgaWdub3JlZCBmb3Igc29ydGluZyBicmllZgorIyBtZW1iZXIgZG9jdW1l
bnRhdGlvbi4KKyMgTm90ZTogSWYgU09SVF9NRU1CRVJfRE9DUyBpcyBzZXQgdG8gTk8gdGhpcyBv
cHRpb24gaXMgaWdub3JlZCBmb3Igc29ydGluZworIyBkZXRhaWxlZCBtZW1iZXIgZG9jdW1lbnRh
dGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitTT1JUX01FTUJFUlNfQ1RPUlNf
MVNUID0gTk8KKworIyBJZiB0aGUgU09SVF9HUk9VUF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUyB0
aGVuIGRveHlnZW4gd2lsbCBzb3J0IHRoZSBoaWVyYXJjaHkKKyMgb2YgZ3JvdXAgbmFtZXMgaW50
byBhbHBoYWJldGljYWwgb3JkZXIuIElmIHNldCB0byBOTyB0aGUgZ3JvdXAgbmFtZXMgd2lsbAor
IyBhcHBlYXIgaW4gdGhlaXIgZGVmaW5lZCBvcmRlci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgogCiBTT1JUX0dST1VQX05BTUVTICAgICAgID0gTk8KIAotIyBJZiB0aGUgU09SVF9CWV9T
Q09QRV9OQU1FIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgY2xhc3MgbGlzdCB3aWxsIGJlIAotIyBz
b3J0ZWQgYnkgZnVsbHktcXVhbGlmaWVkIG5hbWVzLCBpbmNsdWRpbmcgbmFtZXNwYWNlcy4gSWYg
c2V0IHRvIAotIyBOTyAodGhlIGRlZmF1bHQpLCB0aGUgY2xhc3MgbGlzdCB3aWxsIGJlIHNvcnRl
ZCBvbmx5IGJ5IGNsYXNzIG5hbWUsIAotIyBub3QgaW5jbHVkaW5nIHRoZSBuYW1lc3BhY2UgcGFy
dC4gCi0jIE5vdGU6IFRoaXMgb3B0aW9uIGlzIG5vdCB2ZXJ5IHVzZWZ1bCBpZiBISURFX1NDT1BF
X05BTUVTIGlzIHNldCB0byBZRVMuIAotIyBOb3RlOiBUaGlzIG9wdGlvbiBhcHBsaWVzIG9ubHkg
dG8gdGhlIGNsYXNzIGxpc3QsIG5vdCB0byB0aGUgCi0jIGFscGhhYmV0aWNhbCBsaXN0LgorIyBJ
ZiB0aGUgU09SVF9CWV9TQ09QRV9OQU1FIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgY2xhc3MgbGlz
dCB3aWxsIGJlIHNvcnRlZCBieQorIyBmdWxseS1xdWFsaWZpZWQgbmFtZXMsIGluY2x1ZGluZyBu
YW1lc3BhY2VzLiBJZiBzZXQgdG8gTk8sIHRoZSBjbGFzcyBsaXN0IHdpbGwKKyMgYmUgc29ydGVk
IG9ubHkgYnkgY2xhc3MgbmFtZSwgbm90IGluY2x1ZGluZyB0aGUgbmFtZXNwYWNlIHBhcnQuCisj
IE5vdGU6IFRoaXMgb3B0aW9uIGlzIG5vdCB2ZXJ5IHVzZWZ1bCBpZiBISURFX1NDT1BFX05BTUVT
IGlzIHNldCB0byBZRVMuCisjIE5vdGU6IFRoaXMgb3B0aW9uIGFwcGxpZXMgb25seSB0byB0aGUg
Y2xhc3MgbGlzdCwgbm90IHRvIHRoZSBhbHBoYWJldGljYWwKKyMgbGlzdC4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgogCiBTT1JUX0JZX1NDT1BFX05BTUUgICAgID0gWUVTCiAKLSMgVGhl
IEdFTkVSQVRFX1RPRE9MSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKFlFUykgb3IgCi0j
IGRpc2FibGUgKE5PKSB0aGUgdG9kbyBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRlZCBieSBwdXR0
aW5nIFx0b2RvIAotIyBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgSWYgdGhlIFNU
UklDVF9QUk9UT19NQVRDSElORyBvcHRpb24gaXMgZW5hYmxlZCBhbmQgZG94eWdlbiBmYWlscyB0
byBkbyBwcm9wZXIKKyMgdHlwZSByZXNvbHV0aW9uIG9mIGFsbCBwYXJhbWV0ZXJzIG9mIGEgZnVu
Y3Rpb24gaXQgd2lsbCByZWplY3QgYSBtYXRjaCBiZXR3ZWVuCisjIHRoZSBwcm90b3R5cGUgYW5k
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhIG1lbWJlciBmdW5jdGlvbiBldmVuIGlmIHRoZXJlIGlz
CisjIG9ubHkgb25lIGNhbmRpZGF0ZSBvciBpdCBpcyBvYnZpb3VzIHdoaWNoIGNhbmRpZGF0ZSB0
byBjaG9vc2UgYnkgZG9pbmcgYQorIyBzaW1wbGUgc3RyaW5nIG1hdGNoLiBCeSBkaXNhYmxpbmcg
U1RSSUNUX1BST1RPX01BVENISU5HIGRveHlnZW4gd2lsbCBzdGlsbAorIyBhY2NlcHQgYSBtYXRj
aCBiZXR3ZWVuIHByb3RvdHlwZSBhbmQgaW1wbGVtZW50YXRpb24gaW4gc3VjaCBjYXNlcy4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitTVFJJQ1RfUFJPVE9fTUFUQ0hJTkcgID0gTk8K
KworIyBUaGUgR0VORVJBVEVfVE9ET0xJU1QgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSAoIFlF
Uykgb3IgZGlzYWJsZSAoIE5PKSB0aGUKKyMgdG9kbyBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRl
ZCBieSBwdXR0aW5nIFx0b2RvIGNvbW1hbmRzIGluIHRoZQorIyBkb2N1bWVudGF0aW9uLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBHRU5FUkFURV9UT0RPTElTVCAgICAgID0gWUVT
CiAKLSMgVGhlIEdFTkVSQVRFX1RFU1RMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKFlF
Uykgb3IgCi0jIGRpc2FibGUgKE5PKSB0aGUgdGVzdCBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRl
ZCBieSBwdXR0aW5nIFx0ZXN0IAotIyBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMg
VGhlIEdFTkVSQVRFX1RFU1RMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKCBZRVMpIG9y
IGRpc2FibGUgKCBOTykgdGhlCisjIHRlc3QgbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQgYnkg
cHV0dGluZyBcdGVzdCBjb21tYW5kcyBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogR0VORVJBVEVfVEVTVExJU1QgICAgICA9IE5PCiAKLSMg
VGhlIEdFTkVSQVRFX0JVR0xJU1QgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSAoWUVTKSBvciAK
LSMgZGlzYWJsZSAoTk8pIHRoZSBidWcgbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQgYnkgcHV0
dGluZyBcYnVnIAotIyBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIEdFTkVS
QVRFX0JVR0xJU1QgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSAoIFlFUykgb3IgZGlzYWJsZSAo
IE5PKSB0aGUgYnVnCisjIGxpc3QuIFRoaXMgbGlzdCBpcyBjcmVhdGVkIGJ5IHB1dHRpbmcgXGJ1
ZyBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IFlFUy4KIAogR0VORVJBVEVfQlVHTElTVCAgICAgICA9IE5PCiAKLSMgVGhlIEdFTkVSQVRFX0RF
UFJFQ0FURURMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKFlFUykgb3IgCi0jIGRpc2Fi
bGUgKE5PKSB0aGUgZGVwcmVjYXRlZCBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRlZCBieSBwdXR0
aW5nIAotIyBcZGVwcmVjYXRlZCBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhl
IEdFTkVSQVRFX0RFUFJFQ0FURURMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKCBZRVMp
IG9yIGRpc2FibGUgKCBOTykKKyMgdGhlIGRlcHJlY2F0ZWQgbGlzdC4gVGhpcyBsaXN0IGlzIGNy
ZWF0ZWQgYnkgcHV0dGluZyBcZGVwcmVjYXRlZCBjb21tYW5kcyBpbgorIyB0aGUgZG9jdW1lbnRh
dGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogR0VORVJBVEVfREVQUkVDQVRF
RExJU1Q9IFlFUwogCi0jIFRoZSBFTkFCTEVEX1NFQ1RJT05TIHRhZyBjYW4gYmUgdXNlZCB0byBl
bmFibGUgY29uZGl0aW9uYWwgCi0jIGRvY3VtZW50YXRpb24gc2VjdGlvbnMsIG1hcmtlZCBieSBc
aWYgc2VjdGlvbm5hbWUgLi4uIFxlbmRpZi4KKyMgVGhlIEVOQUJMRURfU0VDVElPTlMgdGFnIGNh
biBiZSB1c2VkIHRvIGVuYWJsZSBjb25kaXRpb25hbCBkb2N1bWVudGF0aW9uCisjIHNlY3Rpb25z
LCBtYXJrZWQgYnkgXGlmIDxzZWN0aW9uX2xhYmVsPiAuLi4gXGVuZGlmIGFuZCBcY29uZCA8c2Vj
dGlvbl9sYWJlbD4KKyMgLi4uIFxlbmRjb25kIGJsb2Nrcy4KIAotRU5BQkxFRF9TRUNUSU9OUyAg
ICAgICA9IAorRU5BQkxFRF9TRUNUSU9OUyAgICAgICA9CiAKLSMgVGhlIE1BWF9JTklUSUFMSVpF
Ul9MSU5FUyB0YWcgZGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgCi0jIHRo
ZSBpbml0aWFsIHZhbHVlIG9mIGEgdmFyaWFibGUgb3IgZGVmaW5lIGNvbnNpc3RzIG9mIGZvciBp
dCB0byBhcHBlYXIgaW4gCi0jIHRoZSBkb2N1bWVudGF0aW9uLiBJZiB0aGUgaW5pdGlhbGl6ZXIg
Y29uc2lzdHMgb2YgbW9yZSBsaW5lcyB0aGFuIHNwZWNpZmllZCAKLSMgaGVyZSBpdCB3aWxsIGJl
IGhpZGRlbi4gVXNlIGEgdmFsdWUgb2YgMCB0byBoaWRlIGluaXRpYWxpemVycyBjb21wbGV0ZWx5
LiAKLSMgVGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGluaXRpYWxpemVyIG9mIGluZGl2aWR1YWwgdmFy
aWFibGVzIGFuZCBkZWZpbmVzIGluIHRoZSAKLSMgZG9jdW1lbnRhdGlvbiBjYW4gYmUgY29udHJv
bGxlZCB1c2luZyBcc2hvd2luaXRpYWxpemVyIG9yIFxoaWRlaW5pdGlhbGl6ZXIgCi0jIGNvbW1h
bmQgaW4gdGhlIGRvY3VtZW50YXRpb24gcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuCisjIFRo
ZSBNQVhfSU5JVElBTElaRVJfTElORVMgdGFnIGRldGVybWluZXMgdGhlIG1heGltdW0gbnVtYmVy
IG9mIGxpbmVzIHRoYXQgdGhlCisjIGluaXRpYWwgdmFsdWUgb2YgYSB2YXJpYWJsZSBvciBtYWNy
byAvIGRlZmluZSBjYW4gaGF2ZSBmb3IgaXQgdG8gYXBwZWFyIGluIHRoZQorIyBkb2N1bWVudGF0
aW9uLiBJZiB0aGUgaW5pdGlhbGl6ZXIgY29uc2lzdHMgb2YgbW9yZSBsaW5lcyB0aGFuIHNwZWNp
ZmllZCBoZXJlCisjIGl0IHdpbGwgYmUgaGlkZGVuLiBVc2UgYSB2YWx1ZSBvZiAwIHRvIGhpZGUg
aW5pdGlhbGl6ZXJzIGNvbXBsZXRlbHkuIFRoZQorIyBhcHBlYXJhbmNlIG9mIHRoZSB2YWx1ZSBv
ZiBpbmRpdmlkdWFsIHZhcmlhYmxlcyBhbmQgbWFjcm9zIC8gZGVmaW5lcyBjYW4gYmUKKyMgY29u
dHJvbGxlZCB1c2luZyBcc2hvd2luaXRpYWxpemVyIG9yIFxoaWRlaW5pdGlhbGl6ZXIgY29tbWFu
ZCBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbiByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy4KKyMg
TWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTAwMDAsIGRlZmF1bHQgdmFsdWU6IDMw
LgogCiBNQVhfSU5JVElBTElaRVJfTElORVMgID0gMzAKIAotIyBTZXQgdGhlIFNIT1dfVVNFRF9G
SUxFUyB0YWcgdG8gTk8gdG8gZGlzYWJsZSB0aGUgbGlzdCBvZiBmaWxlcyBnZW5lcmF0ZWQgCi0j
IGF0IHRoZSBib3R0b20gb2YgdGhlIGRvY3VtZW50YXRpb24gb2YgY2xhc3NlcyBhbmQgc3RydWN0
cy4gSWYgc2V0IHRvIFlFUyB0aGUgCi0jIGxpc3Qgd2lsbCBtZW50aW9uIHRoZSBmaWxlcyB0aGF0
IHdlcmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgU2V0IHRoZSBTSE9X
X1VTRURfRklMRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGxpc3Qgb2YgZmlsZXMgZ2VuZXJh
dGVkIGF0CisjIHRoZSBib3R0b20gb2YgdGhlIGRvY3VtZW50YXRpb24gb2YgY2xhc3NlcyBhbmQg
c3RydWN0cy4gSWYgc2V0IHRvIFlFUyB0aGUgbGlzdAorIyB3aWxsIG1lbnRpb24gdGhlIGZpbGVz
IHRoYXQgd2VyZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogWUVTLgogCiBTSE9XX1VTRURfRklMRVMgICAgICAgID0gWUVTCiAKLSMg
SWYgdGhlIHNvdXJjZXMgaW4geW91ciBwcm9qZWN0IGFyZSBkaXN0cmlidXRlZCBvdmVyIG11bHRp
cGxlIGRpcmVjdG9yaWVzIAotIyB0aGVuIHNldHRpbmcgdGhlIFNIT1dfRElSRUNUT1JJRVMgdGFn
IHRvIFlFUyB3aWxsIHNob3cgdGhlIGRpcmVjdG9yeSBoaWVyYXJjaHkgCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uLiBUaGUgZGVmYXVsdCBpcyBOTy4KLQotU0hPV19ESVJFQ1RPUklFUyAgICAgICA9
IFlFUwotCi0jIFNldCB0aGUgU0hPV19GSUxFUyB0YWcgdG8gTk8gdG8gZGlzYWJsZSB0aGUgZ2Vu
ZXJhdGlvbiBvZiB0aGUgRmlsZXMgcGFnZS4gCi0jIFRoaXMgd2lsbCByZW1vdmUgdGhlIEZpbGVz
IGVudHJ5IGZyb20gdGhlIFF1aWNrIEluZGV4IGFuZCBmcm9tIHRoZSAKLSMgRm9sZGVyIFRyZWUg
VmlldyAoaWYgc3BlY2lmaWVkKS4gVGhlIGRlZmF1bHQgaXMgWUVTLgorIyBTZXQgdGhlIFNIT1df
RklMRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIEZpbGVzIHBh
Z2UuIFRoaXMKKyMgd2lsbCByZW1vdmUgdGhlIEZpbGVzIGVudHJ5IGZyb20gdGhlIFF1aWNrIElu
ZGV4IGFuZCBmcm9tIHRoZSBGb2xkZXIgVHJlZSBWaWV3CisjIChpZiBzcGVjaWZpZWQpLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBTSE9XX0ZJTEVTICAgICAgICAgICAgID0gWUVT
CiAKLSMgU2V0IHRoZSBTSE9XX05BTUVTUEFDRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGdl
bmVyYXRpb24gb2YgdGhlIAotIyBOYW1lc3BhY2VzIHBhZ2UuIAotIyBUaGlzIHdpbGwgcmVtb3Zl
IHRoZSBOYW1lc3BhY2VzIGVudHJ5IGZyb20gdGhlIFF1aWNrIEluZGV4IAotIyBhbmQgZnJvbSB0
aGUgRm9sZGVyIFRyZWUgVmlldyAoaWYgc3BlY2lmaWVkKS4gVGhlIGRlZmF1bHQgaXMgWUVTLgor
IyBTZXQgdGhlIFNIT1dfTkFNRVNQQUNFUyB0YWcgdG8gTk8gdG8gZGlzYWJsZSB0aGUgZ2VuZXJh
dGlvbiBvZiB0aGUgTmFtZXNwYWNlcworIyBwYWdlLiBUaGlzIHdpbGwgcmVtb3ZlIHRoZSBOYW1l
c3BhY2VzIGVudHJ5IGZyb20gdGhlIFF1aWNrIEluZGV4IGFuZCBmcm9tIHRoZQorIyBGb2xkZXIg
VHJlZSBWaWV3IChpZiBzcGVjaWZpZWQpLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgog
CiBTSE9XX05BTUVTUEFDRVMgICAgICAgID0gWUVTCiAKLSMgVGhlIEZJTEVfVkVSU0lPTl9GSUxU
RVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm9ncmFtIG9yIHNjcmlwdCB0aGF0IAot
IyBkb3h5Z2VuIHNob3VsZCBpbnZva2UgdG8gZ2V0IHRoZSBjdXJyZW50IHZlcnNpb24gZm9yIGVh
Y2ggZmlsZSAodHlwaWNhbGx5IGZyb20gCi0jIHRoZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtKS4g
RG94eWdlbiB3aWxsIGludm9rZSB0aGUgcHJvZ3JhbSBieSBleGVjdXRpbmcgKHZpYSAKLSMgcG9w
ZW4oKSkgdGhlIGNvbW1hbmQgPGNvbW1hbmQ+IDxpbnB1dC1maWxlPiwgd2hlcmUgPGNvbW1hbmQ+
IGlzIHRoZSB2YWx1ZSBvZiAKLSMgdGhlIEZJTEVfVkVSU0lPTl9GSUxURVIgdGFnLCBhbmQgPGlu
cHV0LWZpbGU+IGlzIHRoZSBuYW1lIG9mIGFuIGlucHV0IGZpbGUgCi0jIHByb3ZpZGVkIGJ5IGRv
eHlnZW4uIFdoYXRldmVyIHRoZSBwcm9ncmFtIHdyaXRlcyB0byBzdGFuZGFyZCBvdXRwdXQgCi0j
IGlzIHVzZWQgYXMgdGhlIGZpbGUgdmVyc2lvbi4gU2VlIHRoZSBtYW51YWwgZm9yIGV4YW1wbGVz
LgorIyBUaGUgRklMRV9WRVJTSU9OX0ZJTFRFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBh
IHByb2dyYW0gb3Igc2NyaXB0IHRoYXQKKyMgZG94eWdlbiBzaG91bGQgaW52b2tlIHRvIGdldCB0
aGUgY3VycmVudCB2ZXJzaW9uIGZvciBlYWNoIGZpbGUgKHR5cGljYWxseSBmcm9tCisjIHRoZSB2
ZXJzaW9uIGNvbnRyb2wgc3lzdGVtKS4gRG94eWdlbiB3aWxsIGludm9rZSB0aGUgcHJvZ3JhbSBi
eSBleGVjdXRpbmcgKHZpYQorIyBwb3BlbigpKSB0aGUgY29tbWFuZCBjb21tYW5kIGlucHV0LWZp
bGUsIHdoZXJlIGNvbW1hbmQgaXMgdGhlIHZhbHVlIG9mIHRoZQorIyBGSUxFX1ZFUlNJT05fRklM
VEVSIHRhZywgYW5kIGlucHV0LWZpbGUgaXMgdGhlIG5hbWUgb2YgYW4gaW5wdXQgZmlsZSBwcm92
aWRlZAorIyBieSBkb3h5Z2VuLiBXaGF0ZXZlciB0aGUgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRh
cmQgb3V0cHV0IGlzIHVzZWQgYXMgdGhlIGZpbGUKKyMgdmVyc2lvbi4gRm9yIGFuIGV4YW1wbGUg
c2VlIHRoZSBkb2N1bWVudGF0aW9uLgorCitGSUxFX1ZFUlNJT05fRklMVEVSICAgID0KKworIyBU
aGUgTEFZT1VUX0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBsYXlvdXQgZmlsZSB3
aGljaCB3aWxsIGJlIHBhcnNlZAorIyBieSBkb3h5Z2VuLiBUaGUgbGF5b3V0IGZpbGUgY29udHJv
bHMgdGhlIGdsb2JhbCBzdHJ1Y3R1cmUgb2YgdGhlIGdlbmVyYXRlZAorIyBvdXRwdXQgZmlsZXMg
aW4gYW4gb3V0cHV0IGZvcm1hdCBpbmRlcGVuZGVudCB3YXkuIFRvIGNyZWF0ZSB0aGUgbGF5b3V0
IGZpbGUKKyMgdGhhdCByZXByZXNlbnRzIGRveHlnZW4ncyBkZWZhdWx0cywgcnVuIGRveHlnZW4g
d2l0aCB0aGUgLWwgb3B0aW9uLiBZb3UgY2FuCisjIG9wdGlvbmFsbHkgc3BlY2lmeSBhIGZpbGUg
bmFtZSBhZnRlciB0aGUgb3B0aW9uLCBpZiBvbWl0dGVkIERveHlnZW5MYXlvdXQueG1sCisjIHdp
bGwgYmUgdXNlZCBhcyB0aGUgbmFtZSBvZiB0aGUgbGF5b3V0IGZpbGUuCisjCisjIE5vdGUgdGhh
dCBpZiB5b3UgcnVuIGRveHlnZW4gZnJvbSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgZmlsZSBj
YWxsZWQKKyMgRG94eWdlbkxheW91dC54bWwsIGRveHlnZW4gd2lsbCBwYXJzZSBpdCBhdXRvbWF0
aWNhbGx5IGV2ZW4gaWYgdGhlIExBWU9VVF9GSUxFCisjIHRhZyBpcyBsZWZ0IGVtcHR5LgogCi1G
SUxFX1ZFUlNJT05fRklMVEVSICAgID0gCitMQVlPVVRfRklMRSAgICAgICAgICAgID0KIAotIyBU
aGUgTEFZT1VUX0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBsYXlvdXQgZmlsZSB3
aGljaCB3aWxsIGJlIHBhcnNlZCBieSAKLSMgZG94eWdlbi4gVGhlIGxheW91dCBmaWxlIGNvbnRy
b2xzIHRoZSBnbG9iYWwgc3RydWN0dXJlIG9mIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGZpbGVzIAot
IyBpbiBhbiBvdXRwdXQgZm9ybWF0IGluZGVwZW5kZW50IHdheS4gVGhlIGNyZWF0ZSB0aGUgbGF5
b3V0IGZpbGUgdGhhdCByZXByZXNlbnRzIAotIyBkb3h5Z2VuJ3MgZGVmYXVsdHMsIHJ1biBkb3h5
Z2VuIHdpdGggdGhlIC1sIG9wdGlvbi4gWW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgYSAKLSMg
ZmlsZSBuYW1lIGFmdGVyIHRoZSBvcHRpb24sIGlmIG9taXR0ZWQgRG94eWdlbkxheW91dC54bWwg
d2lsbCBiZSB1c2VkIGFzIHRoZSBuYW1lIAotIyBvZiB0aGUgbGF5b3V0IGZpbGUuCisjIFRoZSBD
SVRFX0JJQl9GSUxFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBiaWIg
ZmlsZXMgY29udGFpbmluZworIyB0aGUgcmVmZXJlbmNlIGRlZmluaXRpb25zLiBUaGlzIG11c3Qg
YmUgYSBsaXN0IG9mIC5iaWIgZmlsZXMuIFRoZSAuYmliCisjIGV4dGVuc2lvbiBpcyBhdXRvbWF0
aWNhbGx5IGFwcGVuZGVkIGlmIG9taXR0ZWQuIFRoaXMgcmVxdWlyZXMgdGhlIGJpYnRleCB0b29s
CisjIHRvIGJlIGluc3RhbGxlZC4gU2VlIGFsc28gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lr
aS9CaWJUZVggZm9yIG1vcmUgaW5mby4KKyMgRm9yIExhVGVYIHRoZSBzdHlsZSBvZiB0aGUgYmli
bGlvZ3JhcGh5IGNhbiBiZSBjb250cm9sbGVkIHVzaW5nCisjIExBVEVYX0JJQl9TVFlMRS4gVG8g
dXNlIHRoaXMgZmVhdHVyZSB5b3UgbmVlZCBiaWJ0ZXggYW5kIHBlcmwgYXZhaWxhYmxlIGluIHRo
ZQorIyBzZWFyY2ggcGF0aC4gRG8gbm90IHVzZSBmaWxlIG5hbWVzIHdpdGggc3BhY2VzLCBiaWJ0
ZXggY2Fubm90IGhhbmRsZSB0aGVtLiBTZWUKKyMgYWxzbyBcY2l0ZSBmb3IgaW5mbyBob3cgdG8g
Y3JlYXRlIHJlZmVyZW5jZXMuCiAKLUxBWU9VVF9GSUxFICAgICAgICAgICAgPSAKK0NJVEVfQklC
X0ZJTEVTICAgICAgICAgPQogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNvbmZpZ3VyYXRpb24g
b3B0aW9ucyByZWxhdGVkIHRvIHdhcm5pbmcgYW5kIHByb2dyZXNzIG1lc3NhZ2VzCisjIENvbmZp
Z3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHdhcm5pbmcgYW5kIHByb2dyZXNzIG1lc3NhZ2Vz
CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgVGhlIFFVSUVUIHRhZyBjYW4gYmUgdXNlZCB0byB0
dXJuIG9uL29mZiB0aGUgbWVzc2FnZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIAotIyBieSBkb3h5Z2Vu
LiBQb3NzaWJsZSB2YWx1ZXMgYXJlIFlFUyBhbmQgTk8uIElmIGxlZnQgYmxhbmsgTk8gaXMgdXNl
ZC4KKyMgVGhlIFFVSUVUIHRhZyBjYW4gYmUgdXNlZCB0byB0dXJuIG9uL29mZiB0aGUgbWVzc2Fn
ZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIHRvCisjIHN0YW5kYXJkIG91dHB1dCBieSBkb3h5Z2VuLiBJ
ZiBRVUlFVCBpcyBzZXQgdG8gWUVTIHRoaXMgaW1wbGllcyB0aGF0IHRoZQorIyBtZXNzYWdlcyBh
cmUgb2ZmLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFFVSUVUICAgICAgICAgICAg
ICAgICAgPSBOTwogCi0jIFRoZSBXQVJOSU5HUyB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9v
ZmYgdGhlIHdhcm5pbmcgbWVzc2FnZXMgdGhhdCBhcmUgCi0jIGdlbmVyYXRlZCBieSBkb3h5Z2Vu
LiBQb3NzaWJsZSB2YWx1ZXMgYXJlIFlFUyBhbmQgTk8uIElmIGxlZnQgYmxhbmsgCi0jIE5PIGlz
IHVzZWQuCisjIFRoZSBXQVJOSU5HUyB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhl
IHdhcm5pbmcgbWVzc2FnZXMgdGhhdCBhcmUKKyMgZ2VuZXJhdGVkIHRvIHN0YW5kYXJkIGVycm9y
ICggc3RkZXJyKSBieSBkb3h5Z2VuLiBJZiBXQVJOSU5HUyBpcyBzZXQgdG8gWUVTCisjIHRoaXMg
aW1wbGllcyB0aGF0IHRoZSB3YXJuaW5ncyBhcmUgb24uCisjCisjIFRpcDogVHVybiB3YXJuaW5n
cyBvbiB3aGlsZSB3cml0aW5nIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogWUVTLgogCiBXQVJOSU5HUyAgICAgICAgICAgICAgID0gWUVTCiAKLSMgSWYgV0FSTl9J
Rl9VTkRPQ1VNRU5URUQgaXMgc2V0IHRvIFlFUywgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUg
d2FybmluZ3MgCi0jIGZvciB1bmRvY3VtZW50ZWQgbWVtYmVycy4gSWYgRVhUUkFDVF9BTEwgaXMg
c2V0IHRvIFlFUyB0aGVuIHRoaXMgZmxhZyB3aWxsIAotIyBhdXRvbWF0aWNhbGx5IGJlIGRpc2Fi
bGVkLgorIyBJZiB0aGUgV0FSTl9JRl9VTkRPQ1VNRU5URUQgdGFnIGlzIHNldCB0byBZRVMsIHRo
ZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlCisjIHdhcm5pbmdzIGZvciB1bmRvY3VtZW50ZWQgbWVt
YmVycy4gSWYgRVhUUkFDVF9BTEwgaXMgc2V0IHRvIFlFUyB0aGVuIHRoaXMgZmxhZworIyB3aWxs
IGF1dG9tYXRpY2FsbHkgYmUgZGlzYWJsZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMu
CiAKIFdBUk5fSUZfVU5ET0NVTUVOVEVEICAgPSBZRVMKIAotIyBJZiBXQVJOX0lGX0RPQ19FUlJP
UiBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgd2FybmluZ3MgZm9yIAotIyBw
b3RlbnRpYWwgZXJyb3JzIGluIHRoZSBkb2N1bWVudGF0aW9uLCBzdWNoIGFzIG5vdCBkb2N1bWVu
dGluZyBzb21lIAotIyBwYXJhbWV0ZXJzIGluIGEgZG9jdW1lbnRlZCBmdW5jdGlvbiwgb3IgZG9j
dW1lbnRpbmcgcGFyYW1ldGVycyB0aGF0IAotIyBkb24ndCBleGlzdCBvciB1c2luZyBtYXJrdXAg
Y29tbWFuZHMgd3JvbmdseS4KKyMgSWYgdGhlIFdBUk5fSUZfRE9DX0VSUk9SIHRhZyBpcyBzZXQg
dG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgd2FybmluZ3MgZm9yCisjIHBvdGVudGlhbCBl
cnJvcnMgaW4gdGhlIGRvY3VtZW50YXRpb24sIHN1Y2ggYXMgbm90IGRvY3VtZW50aW5nIHNvbWUg
cGFyYW1ldGVycworIyBpbiBhIGRvY3VtZW50ZWQgZnVuY3Rpb24sIG9yIGRvY3VtZW50aW5nIHBh
cmFtZXRlcnMgdGhhdCBkb24ndCBleGlzdCBvciB1c2luZworIyBtYXJrdXAgY29tbWFuZHMgd3Jv
bmdseS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogV0FSTl9JRl9ET0NfRVJST1Ig
ICAgICA9IFlFUwogCi0jIFRoaXMgV0FSTl9OT19QQVJBTURPQyBvcHRpb24gY2FuIGJlIGFibGVk
IHRvIGdldCB3YXJuaW5ncyBmb3IgCi0jIGZ1bmN0aW9ucyB0aGF0IGFyZSBkb2N1bWVudGVkLCBi
dXQgaGF2ZSBubyBkb2N1bWVudGF0aW9uIGZvciB0aGVpciBwYXJhbWV0ZXJzIAotIyBvciByZXR1
cm4gdmFsdWUuIElmIHNldCB0byBOTyAodGhlIGRlZmF1bHQpIGRveHlnZW4gd2lsbCBvbmx5IHdh
cm4gYWJvdXQgCi0jIHdyb25nIG9yIGluY29tcGxldGUgcGFyYW1ldGVyIGRvY3VtZW50YXRpb24s
IGJ1dCBub3QgYWJvdXQgdGhlIGFic2VuY2Ugb2YgCi0jIGRvY3VtZW50YXRpb24uCisjIFRoaXMg
V0FSTl9OT19QQVJBTURPQyBvcHRpb24gY2FuIGJlIGVuYWJsZWQgdG8gZ2V0IHdhcm5pbmdzIGZv
ciBmdW5jdGlvbnMgdGhhdAorIyBhcmUgZG9jdW1lbnRlZCwgYnV0IGhhdmUgbm8gZG9jdW1lbnRh
dGlvbiBmb3IgdGhlaXIgcGFyYW1ldGVycyBvciByZXR1cm4KKyMgdmFsdWUuIElmIHNldCB0byBO
TyBkb3h5Z2VuIHdpbGwgb25seSB3YXJuIGFib3V0IHdyb25nIG9yIGluY29tcGxldGUgcGFyYW1l
dGVyCisjIGRvY3VtZW50YXRpb24sIGJ1dCBub3QgYWJvdXQgdGhlIGFic2VuY2Ugb2YgZG9jdW1l
bnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBXQVJOX05PX1BBUkFNRE9D
ICAgICAgID0gTk8KIAotIyBUaGUgV0FSTl9GT1JNQVQgdGFnIGRldGVybWluZXMgdGhlIGZvcm1h
dCBvZiB0aGUgd2FybmluZyBtZXNzYWdlcyB0aGF0IAotIyBkb3h5Z2VuIGNhbiBwcm9kdWNlLiBU
aGUgc3RyaW5nIHNob3VsZCBjb250YWluIHRoZSAkZmlsZSwgJGxpbmUsIGFuZCAkdGV4dCAKLSMg
dGFncywgd2hpY2ggd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZmlsZSBhbmQgbGluZSBudW1iZXIg
ZnJvbSB3aGljaCB0aGUgCi0jIHdhcm5pbmcgb3JpZ2luYXRlZCBhbmQgdGhlIHdhcm5pbmcgdGV4
dC4gT3B0aW9uYWxseSB0aGUgZm9ybWF0IG1heSBjb250YWluIAotIyAkdmVyc2lvbiwgd2hpY2gg
d2lsbCBiZSByZXBsYWNlZCBieSB0aGUgdmVyc2lvbiBvZiB0aGUgZmlsZSAoaWYgaXQgY291bGQg
Ci0jIGJlIG9idGFpbmVkIHZpYSBGSUxFX1ZFUlNJT05fRklMVEVSKQorIyBUaGUgV0FSTl9GT1JN
QVQgdGFnIGRldGVybWluZXMgdGhlIGZvcm1hdCBvZiB0aGUgd2FybmluZyBtZXNzYWdlcyB0aGF0
IGRveHlnZW4KKyMgY2FuIHByb2R1Y2UuIFRoZSBzdHJpbmcgc2hvdWxkIGNvbnRhaW4gdGhlICRm
aWxlLCAkbGluZSwgYW5kICR0ZXh0IHRhZ3MsIHdoaWNoCisjIHdpbGwgYmUgcmVwbGFjZWQgYnkg
dGhlIGZpbGUgYW5kIGxpbmUgbnVtYmVyIGZyb20gd2hpY2ggdGhlIHdhcm5pbmcgb3JpZ2luYXRl
ZAorIyBhbmQgdGhlIHdhcm5pbmcgdGV4dC4gT3B0aW9uYWxseSB0aGUgZm9ybWF0IG1heSBjb250
YWluICR2ZXJzaW9uLCB3aGljaCB3aWxsCisjIGJlIHJlcGxhY2VkIGJ5IHRoZSB2ZXJzaW9uIG9m
IHRoZSBmaWxlIChpZiBpdCBjb3VsZCBiZSBvYnRhaW5lZCB2aWEKKyMgRklMRV9WRVJTSU9OX0ZJ
TFRFUikKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6ICRmaWxlOiRsaW5lOiAkdGV4dC4KIAogV0FS
Tl9GT1JNQVQgICAgICAgICAgICA9ICIkZmlsZTokbGluZTogJHRleHQiCiAKLSMgVGhlIFdBUk5f
TE9HRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIGZpbGUgdG8gd2hpY2ggd2Fybmlu
ZyAKLSMgYW5kIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZSB3cml0dGVuLiBJZiBsZWZ0IGJsYW5r
IHRoZSBvdXRwdXQgaXMgd3JpdHRlbiAKLSMgdG8gc3RkZXJyLgorIyBUaGUgV0FSTl9MT0dGSUxF
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZmlsZSB0byB3aGljaCB3YXJuaW5nIGFuZCBl
cnJvcgorIyBtZXNzYWdlcyBzaG91bGQgYmUgd3JpdHRlbi4gSWYgbGVmdCBibGFuayB0aGUgb3V0
cHV0IGlzIHdyaXR0ZW4gdG8gc3RhbmRhcmQKKyMgZXJyb3IgKHN0ZGVycikuCiAKIFdBUk5fTE9H
RklMRSAgICAgICAgICAgPSAlV0FSTklOR19MT0dfUEFUSCUKIAogIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgaW5wdXQgZmlsZXMKKyMg
Q29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGlucHV0IGZpbGVzCiAjLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKLSMgVGhlIElOUFVUIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRo
ZSBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdGhhdCBjb250YWluIAotIyBkb2N1bWVudGVkIHNv
dXJjZSBmaWxlcy4gWW91IG1heSBlbnRlciBmaWxlIG5hbWVzIGxpa2UgIm15ZmlsZS5jcHAiIG9y
IAotIyBkaXJlY3RvcmllcyBsaWtlICIvdXNyL3NyYy9teXByb2plY3QiLiBTZXBhcmF0ZSB0aGUg
ZmlsZXMgb3IgZGlyZWN0b3JpZXMgCi0jIHdpdGggc3BhY2VzLgorIyBUaGUgSU5QVVQgdGFnIGlz
IHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRoYXQgY29udGFp
bgorIyBkb2N1bWVudGVkIHNvdXJjZSBmaWxlcy4gWW91IG1heSBlbnRlciBmaWxlIG5hbWVzIGxp
a2UgbXlmaWxlLmNwcCBvcgorIyBkaXJlY3RvcmllcyBsaWtlIC91c3Ivc3JjL215cHJvamVjdC4g
U2VwYXJhdGUgdGhlIGZpbGVzIG9yIGRpcmVjdG9yaWVzIHdpdGgKKyMgc3BhY2VzLgorIyBOb3Rl
OiBJZiB0aGlzIHRhZyBpcyBlbXB0eSB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgc2VhcmNoZWQu
CiAKLUlOUFVUICAgICAgICAgICAgICAgICAgPSAuLi9pbmNsdWRlIC4uL3NyYy9saWJfanNvbiAu
CitJTlBVVCAgICAgICAgICAgICAgICAgID0gLi4vaW5jbHVkZSBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgLi4vc3JjL2xpYl9qc29uIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAuCiAK
LSMgVGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgY2hhcmFjdGVyIGVuY29kaW5n
IG9mIHRoZSBzb3VyY2UgZmlsZXMgCi0jIHRoYXQgZG94eWdlbiBwYXJzZXMuIEludGVybmFsbHkg
ZG94eWdlbiB1c2VzIHRoZSBVVEYtOCBlbmNvZGluZywgd2hpY2ggaXMgCi0jIGFsc28gdGhlIGRl
ZmF1bHQgaW5wdXQgZW5jb2RpbmcuIERveHlnZW4gdXNlcyBsaWJpY29udiAob3IgdGhlIGljb252
IGJ1aWx0IAotIyBpbnRvIGxpYmMpIGZvciB0aGUgdHJhbnNjb2RpbmcuIFNlZSBodHRwOi8vd3d3
LmdudS5vcmcvc29mdHdhcmUvbGliaWNvbnYgZm9yIAotIyB0aGUgbGlzdCBvZiBwb3NzaWJsZSBl
bmNvZGluZ3MuCisjIFRoaXMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNoYXJhY3Rl
ciBlbmNvZGluZyBvZiB0aGUgc291cmNlIGZpbGVzCisjIHRoYXQgZG94eWdlbiBwYXJzZXMuIElu
dGVybmFsbHkgZG94eWdlbiB1c2VzIHRoZSBVVEYtOCBlbmNvZGluZy4gRG94eWdlbiB1c2VzCisj
IGxpYmljb252IChvciB0aGUgaWNvbnYgYnVpbHQgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29k
aW5nLiBTZWUgdGhlIGxpYmljb252CisjIGRvY3VtZW50YXRpb24gKHNlZTogaHR0cDovL3d3dy5n
bnUub3JnL3NvZnR3YXJlL2xpYmljb252KSBmb3IgdGhlIGxpc3Qgb2YKKyMgcG9zc2libGUgZW5j
b2RpbmdzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogVVRGLTguCiAKIElOUFVUX0VOQ09ESU5H
ICAgICAgICAgPSBVVEYtOAogCi0jIElmIHRoZSB2YWx1ZSBvZiB0aGUgSU5QVVQgdGFnIGNvbnRh
aW5zIGRpcmVjdG9yaWVzLCB5b3UgY2FuIHVzZSB0aGUgCi0jIEZJTEVfUEFUVEVSTlMgdGFnIHRv
IHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybiAobGlrZSAqLmNwcCAKLSMgYW5k
ICouaCkgdG8gZmlsdGVyIG91dCB0aGUgc291cmNlLWZpbGVzIGluIHRoZSBkaXJlY3Rvcmllcy4g
SWYgbGVmdCAKLSMgYmxhbmsgdGhlIGZvbGxvd2luZyBwYXR0ZXJucyBhcmUgdGVzdGVkOiAKLSMg
Ki5jICouY2MgKi5jeHggKi5jcHAgKi5jKysgKi5qYXZhICouaWkgKi5peHggKi5pcHAgKi5pKysg
Ki5pbmwgKi5oICouaGggKi5oeHggCi0jICouaHBwICouaCsrICouaWRsICoub2RsICouY3MgKi5w
aHAgKi5waHAzICouaW5jICoubSAqLm1tICoucHkgKi5mOTAKKyMgSWYgdGhlIHZhbHVlIG9mIHRo
ZSBJTlBVVCB0YWcgY29udGFpbnMgZGlyZWN0b3JpZXMsIHlvdSBjYW4gdXNlIHRoZQorIyBGSUxF
X1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIHBhdHRlcm5zIChs
aWtlICouY3BwIGFuZAorIyAqLmgpIHRvIGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBpbiB0
aGUgZGlyZWN0b3JpZXMuIElmIGxlZnQgYmxhbmsgdGhlCisjIGZvbGxvd2luZyBwYXR0ZXJucyBh
cmUgdGVzdGVkOiouYywgKi5jYywgKi5jeHgsICouY3BwLCAqLmMrKywgKi5qYXZhLCAqLmlpLAor
IyAqLml4eCwgKi5pcHAsICouaSsrLCAqLmlubCwgKi5pZGwsICouZGRsLCAqLm9kbCwgKi5oLCAq
LmhoLCAqLmh4eCwgKi5ocHAsCisjICouaCsrLCAqLmNzLCAqLmQsICoucGhwLCAqLnBocDQsICou
cGhwNSwgKi5waHRtbCwgKi5pbmMsICoubSwgKi5tYXJrZG93biwKKyMgKi5tZCwgKi5tbSwgKi5k
b3gsICoucHksICouZjkwLCAqLmYsICouZm9yLCAqLnRjbCwgKi52aGQsICoudmhkbCwgKi51Y2Ys
CisjICoucXNmLCAqLmFzIGFuZCAqLmpzLgogCiBGSUxFX1BBVFRFUk5TICAgICAgICAgID0gKi5o
IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAqLmNwcCBcCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgKi5pbmwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICouZG94CiAKLSMgVGhlIFJF
Q1VSU0lWRSB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBzcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHN1
YmRpcmVjdG9yaWVzIAotIyBzaG91bGQgYmUgc2VhcmNoZWQgZm9yIGlucHV0IGZpbGVzIGFzIHdl
bGwuIFBvc3NpYmxlIHZhbHVlcyBhcmUgWUVTIGFuZCBOTy4gCi0jIElmIGxlZnQgYmxhbmsgTk8g
aXMgdXNlZC4KKyMgVGhlIFJFQ1VSU0lWRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB3aGV0
aGVyIG9yIG5vdCBzdWJkaXJlY3RvcmllcyBzaG91bGQKKyMgYmUgc2VhcmNoZWQgZm9yIGlucHV0
IGZpbGVzIGFzIHdlbGwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogUkVDVVJTSVZF
ICAgICAgICAgICAgICA9IFlFUwogCi0jIFRoZSBFWENMVURFIHRhZyBjYW4gYmUgdXNlZCB0byBz
cGVjaWZ5IGZpbGVzIGFuZC9vciBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCAKLSMgZXhjbHVkZWQg
ZnJvbSB0aGUgSU5QVVQgc291cmNlIGZpbGVzLiBUaGlzIHdheSB5b3UgY2FuIGVhc2lseSBleGNs
dWRlIGEgCisjIFRoZSBFWENMVURFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGZpbGVzIGFu
ZC9vciBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZQorIyBleGNsdWRlZCBmcm9tIHRoZSBJTlBV
VCBzb3VyY2UgZmlsZXMuIFRoaXMgd2F5IHlvdSBjYW4gZWFzaWx5IGV4Y2x1ZGUgYQogIyBzdWJk
aXJlY3RvcnkgZnJvbSBhIGRpcmVjdG9yeSB0cmVlIHdob3NlIHJvb3QgaXMgc3BlY2lmaWVkIHdp
dGggdGhlIElOUFVUIHRhZy4KKyMKKyMgTm90ZSB0aGF0IHJlbGF0aXZlIHBhdGhzIGFyZSByZWxh
dGl2ZSB0byB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggZG94eWdlbiBpcworIyBydW4uCiAKLUVY
Q0xVREUgICAgICAgICAgICAgICAgPSAKK0VYQ0xVREUgICAgICAgICAgICAgICAgPQogCi0jIFRo
ZSBFWENMVURFX1NZTUxJTktTIHRhZyBjYW4gYmUgdXNlZCBzZWxlY3Qgd2hldGhlciBvciBub3Qg
ZmlsZXMgb3IgCi0jIGRpcmVjdG9yaWVzIHRoYXQgYXJlIHN5bWJvbGljIGxpbmtzIChhIFVuaXgg
ZmlsZXN5c3RlbSBmZWF0dXJlKSBhcmUgZXhjbHVkZWQgCisjIFRoZSBFWENMVURFX1NZTUxJTktT
IHRhZyBjYW4gYmUgdXNlZCB0byBzZWxlY3Qgd2hldGhlciBvciBub3QgZmlsZXMgb3IKKyMgZGly
ZWN0b3JpZXMgdGhhdCBhcmUgc3ltYm9saWMgbGlua3MgKGEgVW5peCBmaWxlIHN5c3RlbSBmZWF0
dXJlKSBhcmUgZXhjbHVkZWQKICMgZnJvbSB0aGUgaW5wdXQuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KIAogRVhDTFVERV9TWU1MSU5LUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIHZhbHVl
IG9mIHRoZSBJTlBVVCB0YWcgY29udGFpbnMgZGlyZWN0b3JpZXMsIHlvdSBjYW4gdXNlIHRoZSAK
LSMgRVhDTFVERV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB3aWxkY2FyZCBw
YXR0ZXJucyB0byBleGNsdWRlIAotIyBjZXJ0YWluIGZpbGVzIGZyb20gdGhvc2UgZGlyZWN0b3Jp
ZXMuIE5vdGUgdGhhdCB0aGUgd2lsZGNhcmRzIGFyZSBtYXRjaGVkIAotIyBhZ2FpbnN0IHRoZSBm
aWxlIHdpdGggYWJzb2x1dGUgcGF0aCwgc28gdG8gZXhjbHVkZSBhbGwgdGVzdCBkaXJlY3Rvcmll
cyAKLSMgZm9yIGV4YW1wbGUgdXNlIHRoZSBwYXR0ZXJuICovdGVzdC8qCisjIElmIHRoZSB2YWx1
ZSBvZiB0aGUgSU5QVVQgdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3UgY2FuIHVzZSB0aGUK
KyMgRVhDTFVERV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB3aWxkY2FyZCBw
YXR0ZXJucyB0byBleGNsdWRlCisjIGNlcnRhaW4gZmlsZXMgZnJvbSB0aG9zZSBkaXJlY3Rvcmll
cy4KKyMKKyMgTm90ZSB0aGF0IHRoZSB3aWxkY2FyZHMgYXJlIG1hdGNoZWQgYWdhaW5zdCB0aGUg
ZmlsZSB3aXRoIGFic29sdXRlIHBhdGgsIHNvIHRvCisjIGV4Y2x1ZGUgYWxsIHRlc3QgZGlyZWN0
b3JpZXMgZm9yIGV4YW1wbGUgdXNlIHRoZSBwYXR0ZXJuICovdGVzdC8qCiAKLUVYQ0xVREVfUEFU
VEVSTlMgICAgICAgPSAKK0VYQ0xVREVfUEFUVEVSTlMgICAgICAgPQogCi0jIFRoZSBFWENMVURF
X1NZTUJPTFMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgc3ltYm9sIG5h
bWVzIAotIyAobmFtZXNwYWNlcywgY2xhc3NlcywgZnVuY3Rpb25zLCBldGMuKSB0aGF0IHNob3Vs
ZCBiZSBleGNsdWRlZCBmcm9tIHRoZSAKLSMgb3V0cHV0LiBUaGUgc3ltYm9sIG5hbWUgY2FuIGJl
IGEgZnVsbHkgcXVhbGlmaWVkIG5hbWUsIGEgd29yZCwgb3IgaWYgdGhlIAotIyB3aWxkY2FyZCAq
IGlzIHVzZWQsIGEgc3Vic3RyaW5nLiBFeGFtcGxlczogQU5hbWVzcGFjZSwgQUNsYXNzLCAKKyMg
VGhlIEVYQ0xVREVfU1lNQk9MUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9y
ZSBzeW1ib2wgbmFtZXMKKyMgKG5hbWVzcGFjZXMsIGNsYXNzZXMsIGZ1bmN0aW9ucywgZXRjLikg
dGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUKKyMgb3V0cHV0LiBUaGUgc3ltYm9sIG5h
bWUgY2FuIGJlIGEgZnVsbHkgcXVhbGlmaWVkIG5hbWUsIGEgd29yZCwgb3IgaWYgdGhlCisjIHdp
bGRjYXJkICogaXMgdXNlZCwgYSBzdWJzdHJpbmcuIEV4YW1wbGVzOiBBTmFtZXNwYWNlLCBBQ2xh
c3MsCiAjIEFDbGFzczo6QU5hbWVzcGFjZSwgQU5hbWVzcGFjZTo6KlRlc3QKKyMKKyMgTm90ZSB0
aGF0IHRoZSB3aWxkY2FyZHMgYXJlIG1hdGNoZWQgYWdhaW5zdCB0aGUgZmlsZSB3aXRoIGFic29s
dXRlIHBhdGgsIHNvIHRvCisjIGV4Y2x1ZGUgYWxsIHRlc3QgZGlyZWN0b3JpZXMgdXNlIHRoZSBw
YXR0ZXJuICovdGVzdC8qCiAKLUVYQ0xVREVfU1lNQk9MUyAgICAgICAgPSAKK0VYQ0xVREVfU1lN
Qk9MUyAgICAgICAgPQogCi0jIFRoZSBFWEFNUExFX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgb25lIG9yIG1vcmUgZmlsZXMgb3IgCi0jIGRpcmVjdG9yaWVzIHRoYXQgY29udGFpbiBl
eGFtcGxlIGNvZGUgZnJhZ21lbnRzIHRoYXQgYXJlIGluY2x1ZGVkIChzZWUgCi0jIHRoZSBcaW5j
bHVkZSBjb21tYW5kKS4KKyMgVGhlIEVYQU1QTEVfUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBvbmUgb3IgbW9yZSBmaWxlcyBvciBkaXJlY3RvcmllcworIyB0aGF0IGNvbnRhaW4gZXhh
bXBsZSBjb2RlIGZyYWdtZW50cyB0aGF0IGFyZSBpbmNsdWRlZCAoc2VlIHRoZSBcaW5jbHVkZQor
IyBjb21tYW5kKS4KIAotRVhBTVBMRV9QQVRIICAgICAgICAgICA9IAorRVhBTVBMRV9QQVRIICAg
ICAgICAgICA9IC4uCiAKLSMgSWYgdGhlIHZhbHVlIG9mIHRoZSBFWEFNUExFX1BBVEggdGFnIGNv
bnRhaW5zIGRpcmVjdG9yaWVzLCB5b3UgY2FuIHVzZSB0aGUgCi0jIEVYQU1QTEVfUEFUVEVSTlMg
dGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybiAobGlrZSAqLmNwcCAK
LSMgYW5kICouaCkgdG8gZmlsdGVyIG91dCB0aGUgc291cmNlLWZpbGVzIGluIHRoZSBkaXJlY3Rv
cmllcy4gSWYgbGVmdCAKLSMgYmxhbmsgYWxsIGZpbGVzIGFyZSBpbmNsdWRlZC4KKyMgSWYgdGhl
IHZhbHVlIG9mIHRoZSBFWEFNUExFX1BBVEggdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3Ug
Y2FuIHVzZSB0aGUKKyMgRVhBTVBMRV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9y
ZSB3aWxkY2FyZCBwYXR0ZXJuIChsaWtlICouY3BwIGFuZAorIyAqLmgpIHRvIGZpbHRlciBvdXQg
dGhlIHNvdXJjZS1maWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuIElmIGxlZnQgYmxhbmsgYWxsCisj
IGZpbGVzIGFyZSBpbmNsdWRlZC4KIAogRVhBTVBMRV9QQVRURVJOUyAgICAgICA9ICoKIAotIyBJ
ZiB0aGUgRVhBTVBMRV9SRUNVUlNJVkUgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBzdWJkaXJlY3Rv
cmllcyB3aWxsIGJlIAotIyBzZWFyY2hlZCBmb3IgaW5wdXQgZmlsZXMgdG8gYmUgdXNlZCB3aXRo
IHRoZSBcaW5jbHVkZSBvciBcZG9udGluY2x1ZGUgCi0jIGNvbW1hbmRzIGlycmVzcGVjdGl2ZSBv
ZiB0aGUgdmFsdWUgb2YgdGhlIFJFQ1VSU0lWRSB0YWcuIAotIyBQb3NzaWJsZSB2YWx1ZXMgYXJl
IFlFUyBhbmQgTk8uIElmIGxlZnQgYmxhbmsgTk8gaXMgdXNlZC4KKyMgSWYgdGhlIEVYQU1QTEVf
UkVDVVJTSVZFIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gc3ViZGlyZWN0b3JpZXMgd2lsbCBiZQor
IyBzZWFyY2hlZCBmb3IgaW5wdXQgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBcaW5jbHVkZSBv
ciBcZG9udGluY2x1ZGUgY29tbWFuZHMKKyMgaXJyZXNwZWN0aXZlIG9mIHRoZSB2YWx1ZSBvZiB0
aGUgUkVDVVJTSVZFIHRhZy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBFWEFNUExF
X1JFQ1VSU0lWRSAgICAgID0gTk8KIAotIyBUaGUgSU1BR0VfUEFUSCB0YWcgY2FuIGJlIHVzZWQg
dG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBmaWxlcyBvciAKLSMgZGlyZWN0b3JpZXMgdGhhdCBjb250
YWluIGltYWdlIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgCi0j
IHRoZSBcaW1hZ2UgY29tbWFuZCkuCisjIFRoZSBJTUFHRV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0
byBzcGVjaWZ5IG9uZSBvciBtb3JlIGZpbGVzIG9yIGRpcmVjdG9yaWVzCisjIHRoYXQgY29udGFp
biBpbWFnZXMgdGhhdCBhcmUgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gKHNl
ZSB0aGUKKyMgXGltYWdlIGNvbW1hbmQpLgogCi1JTUFHRV9QQVRIICAgICAgICAgICAgID0gCitJ
TUFHRV9QQVRIICAgICAgICAgICAgID0KIAotIyBUaGUgSU5QVVRfRklMVEVSIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IGEgcHJvZ3JhbSB0aGF0IGRveHlnZW4gc2hvdWxkIAotIyBpbnZva2Ug
dG8gZmlsdGVyIGZvciBlYWNoIGlucHV0IGZpbGUuIERveHlnZW4gd2lsbCBpbnZva2UgdGhlIGZp
bHRlciBwcm9ncmFtIAotIyBieSBleGVjdXRpbmcgKHZpYSBwb3BlbigpKSB0aGUgY29tbWFuZCA8
ZmlsdGVyPiA8aW5wdXQtZmlsZT4sIHdoZXJlIDxmaWx0ZXI+IAotIyBpcyB0aGUgdmFsdWUgb2Yg
dGhlIElOUFVUX0ZJTFRFUiB0YWcsIGFuZCA8aW5wdXQtZmlsZT4gaXMgdGhlIG5hbWUgb2YgYW4g
Ci0jIGlucHV0IGZpbGUuIERveHlnZW4gd2lsbCB0aGVuIHVzZSB0aGUgb3V0cHV0IHRoYXQgdGhl
IGZpbHRlciBwcm9ncmFtIHdyaXRlcyAKLSMgdG8gc3RhbmRhcmQgb3V0cHV0LiAKLSMgSWYgRklM
VEVSX1BBVFRFUk5TIGlzIHNwZWNpZmllZCwgdGhpcyB0YWcgd2lsbCBiZSAKLSMgaWdub3JlZC4K
KyMgVGhlIElOUFVUX0ZJTFRFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb2dyYW0g
dGhhdCBkb3h5Z2VuIHNob3VsZAorIyBpbnZva2UgdG8gZmlsdGVyIGZvciBlYWNoIGlucHV0IGZp
bGUuIERveHlnZW4gd2lsbCBpbnZva2UgdGhlIGZpbHRlciBwcm9ncmFtCisjIGJ5IGV4ZWN1dGlu
ZyAodmlhIHBvcGVuKCkpIHRoZSBjb21tYW5kOgorIworIyA8ZmlsdGVyPiA8aW5wdXQtZmlsZT4K
KyMKKyMgd2hlcmUgPGZpbHRlcj4gaXMgdGhlIHZhbHVlIG9mIHRoZSBJTlBVVF9GSUxURVIgdGFn
LCBhbmQgPGlucHV0LWZpbGU+IGlzIHRoZQorIyBuYW1lIG9mIGFuIGlucHV0IGZpbGUuIERveHln
ZW4gd2lsbCB0aGVuIHVzZSB0aGUgb3V0cHV0IHRoYXQgdGhlIGZpbHRlcgorIyBwcm9ncmFtIHdy
aXRlcyB0byBzdGFuZGFyZCBvdXRwdXQuIElmIEZJTFRFUl9QQVRURVJOUyBpcyBzcGVjaWZpZWQs
IHRoaXMgdGFnCisjIHdpbGwgYmUgaWdub3JlZC4KKyMKKyMgTm90ZSB0aGF0IHRoZSBmaWx0ZXIg
bXVzdCBub3QgYWRkIG9yIHJlbW92ZSBsaW5lczsgaXQgaXMgYXBwbGllZCBiZWZvcmUgdGhlCisj
IGNvZGUgaXMgc2Nhbm5lZCwgYnV0IG5vdCB3aGVuIHRoZSBvdXRwdXQgY29kZSBpcyBnZW5lcmF0
ZWQuIElmIGxpbmVzIGFyZSBhZGRlZAorIyBvciByZW1vdmVkLCB0aGUgYW5jaG9ycyB3aWxsIG5v
dCBiZSBwbGFjZWQgY29ycmVjdGx5LgogCi1JTlBVVF9GSUxURVIgICAgICAgICAgID0gCitJTlBV
VF9GSUxURVIgICAgICAgICAgID0KIAotIyBUaGUgRklMVEVSX1BBVFRFUk5TIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IGZpbHRlcnMgb24gYSBwZXIgZmlsZSBwYXR0ZXJuIAotIyBiYXNpcy4g
Ci0jIERveHlnZW4gd2lsbCBjb21wYXJlIHRoZSBmaWxlIG5hbWUgd2l0aCBlYWNoIHBhdHRlcm4g
YW5kIGFwcGx5IHRoZSAKLSMgZmlsdGVyIGlmIHRoZXJlIGlzIGEgbWF0Y2guIAotIyBUaGUgZmls
dGVycyBhcmUgYSBsaXN0IG9mIHRoZSBmb3JtOiAKLSMgcGF0dGVybj1maWx0ZXIgKGxpa2UgKi5j
cHA9bXlfY3BwX2ZpbHRlcikuIFNlZSBJTlBVVF9GSUxURVIgZm9yIGZ1cnRoZXIgCi0jIGluZm8g
b24gaG93IGZpbHRlcnMgYXJlIHVzZWQuIElmIEZJTFRFUl9QQVRURVJOUyBpcyBlbXB0eSwgSU5Q
VVRfRklMVEVSIAotIyBpcyBhcHBsaWVkIHRvIGFsbCBmaWxlcy4KKyMgVGhlIEZJTFRFUl9QQVRU
RVJOUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBmaWx0ZXJzIG9uIGEgcGVyIGZpbGUgcGF0
dGVybgorIyBiYXNpcy4gRG94eWdlbiB3aWxsIGNvbXBhcmUgdGhlIGZpbGUgbmFtZSB3aXRoIGVh
Y2ggcGF0dGVybiBhbmQgYXBwbHkgdGhlCisjIGZpbHRlciBpZiB0aGVyZSBpcyBhIG1hdGNoLiBU
aGUgZmlsdGVycyBhcmUgYSBsaXN0IG9mIHRoZSBmb3JtOiBwYXR0ZXJuPWZpbHRlcgorIyAobGlr
ZSAqLmNwcD1teV9jcHBfZmlsdGVyKS4gU2VlIElOUFVUX0ZJTFRFUiBmb3IgZnVydGhlciBpbmZv
cm1hdGlvbiBvbiBob3cKKyMgZmlsdGVycyBhcmUgdXNlZC4gSWYgdGhlIEZJTFRFUl9QQVRURVJO
UyB0YWcgaXMgZW1wdHkgb3IgaWYgbm9uZSBvZiB0aGUKKyMgcGF0dGVybnMgbWF0Y2ggdGhlIGZp
bGUgbmFtZSwgSU5QVVRfRklMVEVSIGlzIGFwcGxpZWQuCiAKLUZJTFRFUl9QQVRURVJOUyAgICAg
ICAgPSAKK0ZJTFRFUl9QQVRURVJOUyAgICAgICAgPQogCi0jIElmIHRoZSBGSUxURVJfU09VUkNF
X0ZJTEVTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgaW5wdXQgZmlsdGVyIChpZiBzZXQgdXNpbmcg
Ci0jIElOUFVUX0ZJTFRFUikgd2lsbCBiZSB1c2VkIHRvIGZpbHRlciB0aGUgaW5wdXQgZmlsZXMg
d2hlbiBwcm9kdWNpbmcgc291cmNlIAotIyBmaWxlcyB0byBicm93c2UgKGkuZS4gd2hlbiBTT1VS
Q0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTKS4KKyMgSWYgdGhlIEZJTFRFUl9TT1VSQ0VfRklMRVMg
dGFnIGlzIHNldCB0byBZRVMsIHRoZSBpbnB1dCBmaWx0ZXIgKGlmIHNldCB1c2luZworIyBJTlBV
VF9GSUxURVIgKSB3aWxsIGFsc28gYmUgdXNlZCB0byBmaWx0ZXIgdGhlIGlucHV0IGZpbGVzIHRo
YXQgYXJlIHVzZWQgZm9yCisjIHByb2R1Y2luZyB0aGUgc291cmNlIGZpbGVzIHRvIGJyb3dzZSAo
aS5lLiB3aGVuIFNPVVJDRV9CUk9XU0VSIGlzIHNldCB0byBZRVMpLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCiAKIEZJTFRFUl9TT1VSQ0VfRklMRVMgICAgPSBOTwogCisjIFRoZSBGSUxU
RVJfU09VUkNFX1BBVFRFUk5TIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHNvdXJjZSBmaWx0
ZXJzIHBlciBmaWxlCisjIHBhdHRlcm4uIEEgcGF0dGVybiB3aWxsIG92ZXJyaWRlIHRoZSBzZXR0
aW5nIGZvciBGSUxURVJfUEFUVEVSTiAoaWYgYW55KSBhbmQKKyMgaXQgaXMgYWxzbyBwb3NzaWJs
ZSB0byBkaXNhYmxlIHNvdXJjZSBmaWx0ZXJpbmcgZm9yIGEgc3BlY2lmaWMgcGF0dGVybiB1c2lu
ZworIyAqLmV4dD0gKHNvIHdpdGhvdXQgbmFtaW5nIGEgZmlsdGVyKS4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEZJTFRFUl9TT1VSQ0VfRklMRVMgaXMgc2V0IHRvIFlFUy4KKwor
RklMVEVSX1NPVVJDRV9QQVRURVJOUyA9CisKKyMgSWYgdGhlIFVTRV9NREZJTEVfQVNfTUFJTlBB
R0UgdGFnIHJlZmVycyB0byB0aGUgbmFtZSBvZiBhIG1hcmtkb3duIGZpbGUgdGhhdAorIyBpcyBw
YXJ0IG9mIHRoZSBpbnB1dCwgaXRzIGNvbnRlbnRzIHdpbGwgYmUgcGxhY2VkIG9uIHRoZSBtYWlu
IHBhZ2UKKyMgKGluZGV4Lmh0bWwpLiBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgeW91IGhhdmUgYSBw
cm9qZWN0IG9uIGZvciBpbnN0YW5jZSBHaXRIdWIKKyMgYW5kIHdhbnQgdG8gcmV1c2UgdGhlIGlu
dHJvZHVjdGlvbiBwYWdlIGFsc28gZm9yIHRoZSBkb3h5Z2VuIG91dHB1dC4KKworVVNFX01ERklM
RV9BU19NQUlOUEFHRSA9CisKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgY29uZmlndXJhdGlvbiBv
cHRpb25zIHJlbGF0ZWQgdG8gc291cmNlIGJyb3dzaW5nCisjIENvbmZpZ3VyYXRpb24gb3B0aW9u
cyByZWxhdGVkIHRvIHNvdXJjZSBicm93c2luZwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElm
IHRoZSBTT1VSQ0VfQlJPV1NFUiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGEgbGlzdCBvZiBzb3Vy
Y2UgZmlsZXMgd2lsbCAKLSMgYmUgZ2VuZXJhdGVkLiBEb2N1bWVudGVkIGVudGl0aWVzIHdpbGwg
YmUgY3Jvc3MtcmVmZXJlbmNlZCB3aXRoIHRoZXNlIHNvdXJjZXMuIAotIyBOb3RlOiBUbyBnZXQg
cmlkIG9mIGFsbCBzb3VyY2UgY29kZSBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dCwgbWFrZSBzdXJl
IGFsc28gCi0jIFZFUkJBVElNX0hFQURFUlMgaXMgc2V0IHRvIE5PLgorIyBJZiB0aGUgU09VUkNF
X0JST1dTRVIgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBhIGxpc3Qgb2Ygc291cmNlIGZpbGVzIHdp
bGwgYmUKKyMgZ2VuZXJhdGVkLiBEb2N1bWVudGVkIGVudGl0aWVzIHdpbGwgYmUgY3Jvc3MtcmVm
ZXJlbmNlZCB3aXRoIHRoZXNlIHNvdXJjZXMuCisjCisjIE5vdGU6IFRvIGdldCByaWQgb2YgYWxs
IHNvdXJjZSBjb2RlIGluIHRoZSBnZW5lcmF0ZWQgb3V0cHV0LCBtYWtlIHN1cmUgdGhhdAorIyBh
bHNvIFZFUkJBVElNX0hFQURFUlMgaXMgc2V0IHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTk8uCiAKIFNPVVJDRV9CUk9XU0VSICAgICAgICAgPSBZRVMKIAotIyBTZXR0aW5nIHRoZSBJ
TkxJTkVfU09VUkNFUyB0YWcgdG8gWUVTIHdpbGwgaW5jbHVkZSB0aGUgYm9keSAKLSMgb2YgZnVu
Y3Rpb25zIGFuZCBjbGFzc2VzIGRpcmVjdGx5IGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBTZXR0
aW5nIHRoZSBJTkxJTkVfU09VUkNFUyB0YWcgdG8gWUVTIHdpbGwgaW5jbHVkZSB0aGUgYm9keSBv
ZiBmdW5jdGlvbnMsCisjIGNsYXNzZXMgYW5kIGVudW1zIGRpcmVjdGx5IGludG8gdGhlIGRvY3Vt
ZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSU5MSU5FX1NPVVJDRVMg
ICAgICAgICA9IE5PCiAKLSMgU2V0dGluZyB0aGUgU1RSSVBfQ09ERV9DT01NRU5UUyB0YWcgdG8g
WUVTICh0aGUgZGVmYXVsdCkgd2lsbCBpbnN0cnVjdCAKLSMgZG94eWdlbiB0byBoaWRlIGFueSBz
cGVjaWFsIGNvbW1lbnQgYmxvY2tzIGZyb20gZ2VuZXJhdGVkIHNvdXJjZSBjb2RlIAotIyBmcmFn
bWVudHMuIE5vcm1hbCBDIGFuZCBDKysgY29tbWVudHMgd2lsbCBhbHdheXMgcmVtYWluIHZpc2li
bGUuCisjIFNldHRpbmcgdGhlIFNUUklQX0NPREVfQ09NTUVOVFMgdGFnIHRvIFlFUyB3aWxsIGlu
c3RydWN0IGRveHlnZW4gdG8gaGlkZSBhbnkKKyMgc3BlY2lhbCBjb21tZW50IGJsb2NrcyBmcm9t
IGdlbmVyYXRlZCBzb3VyY2UgY29kZSBmcmFnbWVudHMuIE5vcm1hbCBDLCBDKysgYW5kCisjIEZv
cnRyYW4gY29tbWVudHMgd2lsbCBhbHdheXMgcmVtYWluIHZpc2libGUuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCiAKIFNUUklQX0NPREVfQ09NTUVOVFMgICAgPSBZRVMKIAotIyBJZiB0
aGUgUkVGRVJFTkNFRF9CWV9SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyAKLSMgdGhlbiBmb3Ig
ZWFjaCBkb2N1bWVudGVkIGZ1bmN0aW9uIGFsbCBkb2N1bWVudGVkIAotIyBmdW5jdGlvbnMgcmVm
ZXJlbmNpbmcgaXQgd2lsbCBiZSBsaXN0ZWQuCisjIElmIHRoZSBSRUZFUkVOQ0VEX0JZX1JFTEFU
SU9OIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZm9yIGVhY2ggZG9jdW1lbnRlZAorIyBmdW5jdGlv
biBhbGwgZG9jdW1lbnRlZCBmdW5jdGlvbnMgcmVmZXJlbmNpbmcgaXQgd2lsbCBiZSBsaXN0ZWQu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogUkVGRVJFTkNFRF9CWV9SRUxBVElPTiA9
IFlFUwogCi0jIElmIHRoZSBSRUZFUkVOQ0VTX1JFTEFUSU9OIHRhZyBpcyBzZXQgdG8gWUVTIAot
IyB0aGVuIGZvciBlYWNoIGRvY3VtZW50ZWQgZnVuY3Rpb24gYWxsIGRvY3VtZW50ZWQgZW50aXRp
ZXMgCi0jIGNhbGxlZC91c2VkIGJ5IHRoYXQgZnVuY3Rpb24gd2lsbCBiZSBsaXN0ZWQuCisjIElm
IHRoZSBSRUZFUkVOQ0VTX1JFTEFUSU9OIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZm9yIGVhY2gg
ZG9jdW1lbnRlZCBmdW5jdGlvbgorIyBhbGwgZG9jdW1lbnRlZCBlbnRpdGllcyBjYWxsZWQvdXNl
ZCBieSB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUgbGlzdGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTk8uCiAKIFJFRkVSRU5DRVNfUkVMQVRJT04gICAgPSBZRVMKIAotIyBJZiB0aGUgUkVGRVJF
TkNFU19MSU5LX1NPVVJDRSB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIAotIyBhbmQg
U09VUkNFX0JST1dTRVIgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gdGhlIGh5cGVybGlua3MgZnJv
bSAKLSMgZnVuY3Rpb25zIGluIFJFRkVSRU5DRVNfUkVMQVRJT04gYW5kIFJFRkVSRU5DRURfQllf
UkVMQVRJT04gbGlzdHMgd2lsbCAKLSMgbGluayB0byB0aGUgc291cmNlIGNvZGUuIAotIyBPdGhl
cndpc2UgdGhleSB3aWxsIGxpbmsgdG8gdGhlIGRvY3VtZW50YXRpb24uCisjIElmIHRoZSBSRUZF
UkVOQ0VTX0xJTktfU09VUkNFIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBTT1VSQ0VfQlJPV1NFUiB0
YWcgaXMgc2V0CisjIHRvIFlFUywgdGhlbiB0aGUgaHlwZXJsaW5rcyBmcm9tIGZ1bmN0aW9ucyBp
biBSRUZFUkVOQ0VTX1JFTEFUSU9OIGFuZAorIyBSRUZFUkVOQ0VEX0JZX1JFTEFUSU9OIGxpc3Rz
IHdpbGwgbGluayB0byB0aGUgc291cmNlIGNvZGUuIE90aGVyd2lzZSB0aGV5IHdpbGwKKyMgbGlu
ayB0byB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAog
UkVGRVJFTkNFU19MSU5LX1NPVVJDRSA9IFlFUwogCi0jIElmIHRoZSBVU0VfSFRBR1MgdGFnIGlz
IHNldCB0byBZRVMgdGhlbiB0aGUgcmVmZXJlbmNlcyB0byBzb3VyY2UgY29kZSAKLSMgd2lsbCBw
b2ludCB0byB0aGUgSFRNTCBnZW5lcmF0ZWQgYnkgdGhlIGh0YWdzKDEpIHRvb2wgaW5zdGVhZCBv
ZiBkb3h5Z2VuIAotIyBidWlsdC1pbiBzb3VyY2UgYnJvd3Nlci4gVGhlIGh0YWdzIHRvb2wgaXMg
cGFydCBvZiBHTlUncyBnbG9iYWwgc291cmNlIAotIyB0YWdnaW5nIHN5c3RlbSAoc2VlIGh0dHA6
Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nbG9iYWwvZ2xvYmFsLmh0bWwpLiBZb3UgCi0jIHdpbGwg
bmVlZCB2ZXJzaW9uIDQuOC42IG9yIGhpZ2hlci4KKyMgSWYgU09VUkNFX1RPT0xUSVBTIGlzIGVu
YWJsZWQgKHRoZSBkZWZhdWx0KSB0aGVuIGhvdmVyaW5nIGEgaHlwZXJsaW5rIGluIHRoZQorIyBz
b3VyY2UgY29kZSB3aWxsIHNob3cgYSB0b29sdGlwIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlv
biBzdWNoIGFzIHByb3RvdHlwZSwKKyMgYnJpZWYgZGVzY3JpcHRpb24gYW5kIGxpbmtzIHRvIHRo
ZSBkZWZpbml0aW9uIGFuZCBkb2N1bWVudGF0aW9uLiBTaW5jZSB0aGlzCisjIHdpbGwgbWFrZSB0
aGUgSFRNTCBmaWxlIGxhcmdlciBhbmQgbG9hZGluZyBvZiBsYXJnZSBmaWxlcyBhIGJpdCBzbG93
ZXIsIHlvdQorIyBjYW4gb3B0IHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU09VUkNF
X0JST1dTRVIgaXMgc2V0IHRvIFlFUy4KKworU09VUkNFX1RPT0xUSVBTICAgICAgICA9IFlFUwor
CisjIElmIHRoZSBVU0VfSFRBR1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgcmVmZXJlbmNl
cyB0byBzb3VyY2UgY29kZSB3aWxsCisjIHBvaW50IHRvIHRoZSBIVE1MIGdlbmVyYXRlZCBieSB0
aGUgaHRhZ3MoMSkgdG9vbCBpbnN0ZWFkIG9mIGRveHlnZW4gYnVpbHQtaW4KKyMgc291cmNlIGJy
b3dzZXIuIFRoZSBodGFncyB0b29sIGlzIHBhcnQgb2YgR05VJ3MgZ2xvYmFsIHNvdXJjZSB0YWdn
aW5nIHN5c3RlbQorIyAoc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nbG9iYWwvZ2xv
YmFsLmh0bWwpLiBZb3Ugd2lsbCBuZWVkIHZlcnNpb24KKyMgNC44LjYgb3IgaGlnaGVyLgorIwor
IyBUbyB1c2UgaXQgZG8gdGhlIGZvbGxvd2luZzoKKyMgLSBJbnN0YWxsIHRoZSBsYXRlc3QgdmVy
c2lvbiBvZiBnbG9iYWwKKyMgLSBFbmFibGUgU09VUkNFX0JST1dTRVIgYW5kIFVTRV9IVEFHUyBp
biB0aGUgY29uZmlnIGZpbGUKKyMgLSBNYWtlIHN1cmUgdGhlIElOUFVUIHBvaW50cyB0byB0aGUg
cm9vdCBvZiB0aGUgc291cmNlIHRyZWUKKyMgLSBSdW4gZG94eWdlbiBhcyBub3JtYWwKKyMKKyMg
RG94eWdlbiB3aWxsIGludm9rZSBodGFncyAoYW5kIHRoYXQgd2lsbCBpbiB0dXJuIGludm9rZSBn
dGFncyksIHNvIHRoZXNlCisjIHRvb2xzIG11c3QgYmUgYXZhaWxhYmxlIGZyb20gdGhlIGNvbW1h
bmQgbGluZSAoaS5lLiBpbiB0aGUgc2VhcmNoIHBhdGgpLgorIworIyBUaGUgcmVzdWx0OiBpbnN0
ZWFkIG9mIHRoZSBzb3VyY2UgYnJvd3NlciBnZW5lcmF0ZWQgYnkgZG94eWdlbiwgdGhlIGxpbmtz
IHRvCisjIHNvdXJjZSBjb2RlIHdpbGwgbm93IHBvaW50IHRvIHRoZSBvdXRwdXQgb2YgaHRhZ3Mu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIFNPVVJDRV9CUk9XU0VSIGlzIHNldCB0byBZRVMuCiAKIFVTRV9IVEFHUyAgICAgICAg
ICAgICAgPSBOTwogCi0jIElmIHRoZSBWRVJCQVRJTV9IRUFERVJTIHRhZyBpcyBzZXQgdG8gWUVT
ICh0aGUgZGVmYXVsdCkgdGhlbiBEb3h5Z2VuIAotIyB3aWxsIGdlbmVyYXRlIGEgdmVyYmF0aW0g
Y29weSBvZiB0aGUgaGVhZGVyIGZpbGUgZm9yIGVhY2ggY2xhc3MgZm9yIAotIyB3aGljaCBhbiBp
bmNsdWRlIGlzIHNwZWNpZmllZC4gU2V0IHRvIE5PIHRvIGRpc2FibGUgdGhpcy4KKyMgSWYgdGhl
IFZFUkJBVElNX0hFQURFUlMgdGFnIGlzIHNldCB0aGUgWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdl
bmVyYXRlIGEKKyMgdmVyYmF0aW0gY29weSBvZiB0aGUgaGVhZGVyIGZpbGUgZm9yIGVhY2ggY2xh
c3MgZm9yIHdoaWNoIGFuIGluY2x1ZGUgaXMKKyMgc3BlY2lmaWVkLiBTZXQgdG8gTk8gdG8gZGlz
YWJsZSB0aGlzLgorIyBTZWUgYWxzbzogU2VjdGlvbiBcY2xhc3MuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCiAKIFZFUkJBVElNX0hFQURFUlMgICAgICAgPSBZRVMKIAogIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYWxwaGFi
ZXRpY2FsIGNsYXNzIGluZGV4CisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRo
ZSBhbHBoYWJldGljYWwgY2xhc3MgaW5kZXgKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0
aGUgQUxQSEFCRVRJQ0FMX0lOREVYIHRhZyBpcyBzZXQgdG8gWUVTLCBhbiBhbHBoYWJldGljYWwg
aW5kZXggCi0jIG9mIGFsbCBjb21wb3VuZHMgd2lsbCBiZSBnZW5lcmF0ZWQuIEVuYWJsZSB0aGlz
IGlmIHRoZSBwcm9qZWN0IAotIyBjb250YWlucyBhIGxvdCBvZiBjbGFzc2VzLCBzdHJ1Y3RzLCB1
bmlvbnMgb3IgaW50ZXJmYWNlcy4KKyMgSWYgdGhlIEFMUEhBQkVUSUNBTF9JTkRFWCB0YWcgaXMg
c2V0IHRvIFlFUywgYW4gYWxwaGFiZXRpY2FsIGluZGV4IG9mIGFsbAorIyBjb21wb3VuZHMgd2ls
bCBiZSBnZW5lcmF0ZWQuIEVuYWJsZSB0aGlzIGlmIHRoZSBwcm9qZWN0IGNvbnRhaW5zIGEgbG90
IG9mCisjIGNsYXNzZXMsIHN0cnVjdHMsIHVuaW9ucyBvciBpbnRlcmZhY2VzLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogWUVTLgogCi1BTFBIQUJFVElDQUxfSU5ERVggICAgID0gTk8KK0FMUEhB
QkVUSUNBTF9JTkRFWCAgICAgPSBZRVMKK1RPQ19JTkNMVURFX0hFQURJTkdTID0gMgogCi0jIElm
IHRoZSBhbHBoYWJldGljYWwgaW5kZXggaXMgZW5hYmxlZCAoc2VlIEFMUEhBQkVUSUNBTF9JTkRF
WCkgdGhlbiAKLSMgdGhlIENPTFNfSU5fQUxQSEFfSU5ERVggdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgdGhlIG51bWJlciBvZiBjb2x1bW5zIAotIyBpbiB3aGljaCB0aGlzIGxpc3Qgd2lsbCBi
ZSBzcGxpdCAoY2FuIGJlIGEgbnVtYmVyIGluIHRoZSByYW5nZSBbMS4uMjBdKQorIyBUaGUgQ09M
U19JTl9BTFBIQV9JTkRFWCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9m
IGNvbHVtbnMgaW4KKyMgd2hpY2ggdGhlIGFscGhhYmV0aWNhbCBpbmRleCBsaXN0IHdpbGwgYmUg
c3BsaXQuCisjIE1pbmltdW0gdmFsdWU6IDEsIG1heGltdW0gdmFsdWU6IDIwLCBkZWZhdWx0IHZh
bHVlOiA1LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgQUxQSEFCRVRJQ0FMX0lO
REVYIGlzIHNldCB0byBZRVMuCiAKIENPTFNfSU5fQUxQSEFfSU5ERVggICAgPSA1CiAKLSMgSW4g
Y2FzZSBhbGwgY2xhc3NlcyBpbiBhIHByb2plY3Qgc3RhcnQgd2l0aCBhIGNvbW1vbiBwcmVmaXgs
IGFsbCAKLSMgY2xhc3NlcyB3aWxsIGJlIHB1dCB1bmRlciB0aGUgc2FtZSBoZWFkZXIgaW4gdGhl
IGFscGhhYmV0aWNhbCBpbmRleC4gCi0jIFRoZSBJR05PUkVfUFJFRklYIHRhZyBjYW4gYmUgdXNl
ZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHByZWZpeGVzIHRoYXQgCi0jIHNob3VsZCBiZSBpZ25v
cmVkIHdoaWxlIGdlbmVyYXRpbmcgdGhlIGluZGV4IGhlYWRlcnMuCisjIEluIGNhc2UgYWxsIGNs
YXNzZXMgaW4gYSBwcm9qZWN0IHN0YXJ0IHdpdGggYSBjb21tb24gcHJlZml4LCBhbGwgY2xhc3Nl
cyB3aWxsCisjIGJlIHB1dCB1bmRlciB0aGUgc2FtZSBoZWFkZXIgaW4gdGhlIGFscGhhYmV0aWNh
bCBpbmRleC4gVGhlIElHTk9SRV9QUkVGSVggdGFnCisjIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkg
YSBwcmVmaXggKG9yIGEgbGlzdCBvZiBwcmVmaXhlcykgdGhhdCBzaG91bGQgYmUgaWdub3JlZAor
IyB3aGlsZSBnZW5lcmF0aW5nIHRoZSBpbmRleCBoZWFkZXJzLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgQUxQSEFCRVRJQ0FMX0lOREVYIGlzIHNldCB0byBZRVMuCiAKLUlHTk9S
RV9QUkVGSVggICAgICAgICAgPSAKK0lHTk9SRV9QUkVGSVggICAgICAgICAgPQogCiAjLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0jIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBIVE1M
IG91dHB1dAorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgSFRNTCBvdXRw
dXQKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgR0VORVJBVEVfSFRNTCB0YWcgaXMg
c2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIERveHlnZW4gd2lsbCAKLSMgZ2VuZXJhdGUgSFRNTCBv
dXRwdXQuCisjIElmIHRoZSBHRU5FUkFURV9IVE1MIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4g
d2lsbCBnZW5lcmF0ZSBIVE1MIG91dHB1dAorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgog
CiBHRU5FUkFURV9IVE1MICAgICAgICAgID0gWUVTCiAKLSMgVGhlIEhUTUxfT1VUUFVUIHRhZyBp
cyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIEhUTUwgZG9jcyB3aWxsIGJlIHB1dC4gCi0jIElm
IGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZ
IHdpbGwgYmUgCi0jIHB1dCBpbiBmcm9udCBvZiBpdC4gSWYgbGVmdCBibGFuayBgaHRtbCcgd2ls
bCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHBhdGguCisjIFRoZSBIVE1MX09VVFBVVCB0YWcgaXMg
dXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBIVE1MIGRvY3Mgd2lsbCBiZSBwdXQuIElmIGEKKyMg
cmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdp
bGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6
IGh0bWwuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlz
IHNldCB0byBZRVMuCiAKIEhUTUxfT1VUUFVUICAgICAgICAgICAgPSAlSFRNTF9PVVRQVVQlCiAK
LSMgVGhlIEhUTUxfRklMRV9FWFRFTlNJT04gdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhl
IGZpbGUgZXh0ZW5zaW9uIGZvciAKLSMgZWFjaCBnZW5lcmF0ZWQgSFRNTCBwYWdlIChmb3IgZXhh
bXBsZTogLmh0bSwucGhwLC5hc3ApLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIAotIyBkb3h5Z2VuIHdp
bGwgZ2VuZXJhdGUgZmlsZXMgd2l0aCAuaHRtbCBleHRlbnNpb24uCisjIFRoZSBIVE1MX0ZJTEVf
RVhURU5TSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBmaWxlIGV4dGVuc2lvbiBm
b3IgZWFjaAorIyBnZW5lcmF0ZWQgSFRNTCBwYWdlIChmb3IgZXhhbXBsZTogLmh0bSwgLnBocCwg
LmFzcCkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiAuaHRtbC4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAogSFRNTF9GSUxF
X0VYVEVOU0lPTiAgICA9IC5odG1sCiAKLSMgVGhlIEhUTUxfSEVBREVSIHRhZyBjYW4gYmUgdXNl
ZCB0byBzcGVjaWZ5IGEgcGVyc29uYWwgSFRNTCBoZWFkZXIgZm9yIAotIyBlYWNoIGdlbmVyYXRl
ZCBIVE1MIHBhZ2UuIElmIGl0IGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEg
CisjIFRoZSBIVE1MX0hFQURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHVzZXItZGVm
aW5lZCBIVE1MIGhlYWRlciBmaWxlIGZvcgorIyBlYWNoIGdlbmVyYXRlZCBIVE1MIHBhZ2UuIElm
IHRoZSB0YWcgaXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQogIyBzdGFuZGFy
ZCBoZWFkZXIuCisjCisjIFRvIGdldCB2YWxpZCBIVE1MIHRoZSBoZWFkZXIgZmlsZSB0aGF0IGlu
Y2x1ZGVzIGFueSBzY3JpcHRzIGFuZCBzdHlsZSBzaGVldHMKKyMgdGhhdCBkb3h5Z2VuIG5lZWRz
LCB3aGljaCBpcyBkZXBlbmRlbnQgb24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB1c2VkIChl
LmcuCisjIHRoZSBzZXR0aW5nIEdFTkVSQVRFX1RSRUVWSUVXKS4gSXQgaXMgaGlnaGx5IHJlY29t
bWVuZGVkIHRvIHN0YXJ0IHdpdGggYQorIyBkZWZhdWx0IGhlYWRlciB1c2luZworIyBkb3h5Z2Vu
IC13IGh0bWwgbmV3X2hlYWRlci5odG1sIG5ld19mb290ZXIuaHRtbCBuZXdfc3R5bGVzaGVldC5j
c3MKKyMgWW91ckNvbmZpZ0ZpbGUKKyMgYW5kIHRoZW4gbW9kaWZ5IHRoZSBmaWxlIG5ld19oZWFk
ZXIuaHRtbC4gU2VlIGFsc28gc2VjdGlvbiAiRG94eWdlbiB1c2FnZSIKKyMgZm9yIGluZm9ybWF0
aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSB0aGUgZGVmYXVsdCBoZWFkZXIgdGhhdCBkb3h5Z2VuIG5v
cm1hbGx5CisjIHVzZXMuCisjIE5vdGU6IFRoZSBoZWFkZXIgaXMgc3ViamVjdCB0byBjaGFuZ2Ug
c28geW91IHR5cGljYWxseSBoYXZlIHRvIHJlZ2VuZXJhdGUgdGhlCisjIGRlZmF1bHQgaGVhZGVy
IHdoZW4gdXBncmFkaW5nIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBkb3h5Z2VuLiBGb3IgYSBkZXNj
cmlwdGlvbgorIyBvZiB0aGUgcG9zc2libGUgbWFya2VycyBhbmQgYmxvY2sgbmFtZXMgc2VlIHRo
ZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBIVE1MX0hFQURFUiAgICAgICAgICAgID0gaGVhZGVy
Lmh0bWwKIAotIyBUaGUgSFRNTF9GT09URVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBw
ZXJzb25hbCBIVE1MIGZvb3RlciBmb3IgCi0jIGVhY2ggZ2VuZXJhdGVkIEhUTUwgcGFnZS4gSWYg
aXQgaXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSAKLSMgc3RhbmRhcmQgZm9v
dGVyLgorIyBUaGUgSFRNTF9GT09URVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSB1c2Vy
LWRlZmluZWQgSFRNTCBmb290ZXIgZm9yIGVhY2gKKyMgZ2VuZXJhdGVkIEhUTUwgcGFnZS4gSWYg
dGhlIHRhZyBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYXJkCisj
IGZvb3Rlci4gU2VlIEhUTUxfSEVBREVSIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0byBn
ZW5lcmF0ZSBhIGRlZmF1bHQKKyMgZm9vdGVyIGFuZCB3aGF0IHNwZWNpYWwgY29tbWFuZHMgY2Fu
IGJlIHVzZWQgaW5zaWRlIHRoZSBmb290ZXIuIFNlZSBhbHNvCisjIHNlY3Rpb24gIkRveHlnZW4g
dXNhZ2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlIGRlZmF1bHQgZm9v
dGVyCisjIHRoYXQgZG94eWdlbiBub3JtYWxseSB1c2VzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBIVE1MX0ZPT1RFUiAg
ICAgICAgICAgID0gZm9vdGVyLmh0bWwKIAotIyBUaGUgSFRNTF9TVFlMRVNIRUVUIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIGNhc2NhZGluZyAKLSMgc3R5bGUgc2hl
ZXQgdGhhdCBpcyB1c2VkIGJ5IGVhY2ggSFRNTCBwYWdlLiBJdCBjYW4gYmUgdXNlZCB0byAKLSMg
ZmluZS10dW5lIHRoZSBsb29rIG9mIHRoZSBIVE1MIG91dHB1dC4gSWYgdGhlIHRhZyBpcyBsZWZ0
IGJsYW5rIGRveHlnZW4gCi0jIHdpbGwgZ2VuZXJhdGUgYSBkZWZhdWx0IHN0eWxlIHNoZWV0LiBO
b3RlIHRoYXQgZG94eWdlbiB3aWxsIHRyeSB0byBjb3B5IAotIyB0aGUgc3R5bGUgc2hlZXQgZmls
ZSB0byB0aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5LCBzbyBkb24ndCBwdXQgeW91ciBvd24gCi0j
IHN0eWxlc2hlZXQgaW4gdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeSBhcyB3ZWxsLCBvciBpdCB3
aWxsIGJlIGVyYXNlZCEKLQotSFRNTF9TVFlMRVNIRUVUICAgICAgICA9IAotCi0jIElmIHRoZSBI
VE1MX0FMSUdOX01FTUJFUlMgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBtZW1iZXJzIG9mIGNsYXNz
ZXMsIAotIyBmaWxlcyBvciBuYW1lc3BhY2VzIHdpbGwgYmUgYWxpZ25lZCBpbiBIVE1MIHVzaW5n
IHRhYmxlcy4gSWYgc2V0IHRvIAotIyBOTyBhIGJ1bGxldCBsaXN0IHdpbGwgYmUgdXNlZC4KLQot
SFRNTF9BTElHTl9NRU1CRVJTICAgICA9IFlFUwotCi0jIElmIHRoZSBIVE1MX0RZTkFNSUNfU0VD
VElPTlMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgZ2VuZXJhdGVkIEhUTUwgCi0jIGRvY3Vt
ZW50YXRpb24gd2lsbCBjb250YWluIHNlY3Rpb25zIHRoYXQgY2FuIGJlIGhpZGRlbiBhbmQgc2hv
d24gYWZ0ZXIgdGhlIAotIyBwYWdlIGhhcyBsb2FkZWQuIEZvciB0aGlzIHRvIHdvcmsgYSBicm93
c2VyIHRoYXQgc3VwcG9ydHMgCi0jIEphdmFTY3JpcHQgYW5kIERIVE1MIGlzIHJlcXVpcmVkIChm
b3IgaW5zdGFuY2UgTW96aWxsYSAxLjArLCBGaXJlZm94IAotIyBOZXRzY2FwZSA2LjArLCBJbnRl
cm5ldCBleHBsb3JlciA1LjArLCBLb25xdWVyb3IsIG9yIFNhZmFyaSkuCisjIFRoZSBIVE1MX1NU
WUxFU0hFRVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSB1c2VyLWRlZmluZWQgY2FzY2Fk
aW5nIHN0eWxlCisjIHNoZWV0IHRoYXQgaXMgdXNlZCBieSBlYWNoIEhUTUwgcGFnZS4gSXQgY2Fu
IGJlIHVzZWQgdG8gZmluZS10dW5lIHRoZSBsb29rIG9mCisjIHRoZSBIVE1MIG91dHB1dC4gSWYg
bGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBkZWZhdWx0IHN0eWxlIHNoZWV0Lgor
IyBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93
IHRvIGdlbmVyYXRlIHRoZSBzdHlsZQorIyBzaGVldCB0aGF0IGRveHlnZW4gbm9ybWFsbHkgdXNl
cy4KKyMgTm90ZTogSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIEhUTUxfRVhUUkFfU1RZTEVTSEVF
VCBpbnN0ZWFkIG9mIHRoaXMgdGFnLCBhcworIyBpdCBpcyBtb3JlIHJvYnVzdCBhbmQgdGhpcyB0
YWcgKEhUTUxfU1RZTEVTSEVFVCkgd2lsbCBpbiB0aGUgZnV0dXJlIGJlY29tZQorIyBvYnNvbGV0
ZS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0
IHRvIFlFUy4KKworSFRNTF9TVFlMRVNIRUVUICAgICAgICA9CisKKyMgVGhlIEhUTUxfRVhUUkFf
U1RZTEVTSEVFVCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhbiBhZGRpdGlvbmFsIHVzZXIt
CisjIGRlZmluZWQgY2FzY2FkaW5nIHN0eWxlIHNoZWV0IHRoYXQgaXMgaW5jbHVkZWQgYWZ0ZXIg
dGhlIHN0YW5kYXJkIHN0eWxlIHNoZWV0cworIyBjcmVhdGVkIGJ5IGRveHlnZW4uIFVzaW5nIHRo
aXMgb3B0aW9uIG9uZSBjYW4gb3ZlcnJ1bGUgY2VydGFpbiBzdHlsZSBhc3BlY3RzLgorIyBUaGlz
IGlzIHByZWZlcnJlZCBvdmVyIHVzaW5nIEhUTUxfU1RZTEVTSEVFVCBzaW5jZSBpdCBkb2VzIG5v
dCByZXBsYWNlIHRoZQorIyBzdGFuZGFyZCBzdHlsZSBzaGVldCBhbmQgaXMgdGhlcmVmb3JlIG1v
cmUgcm9idXN0IGFnYWluc3QgZnV0dXJlIHVwZGF0ZXMuCisjIERveHlnZW4gd2lsbCBjb3B5IHRo
ZSBzdHlsZSBzaGVldCBmaWxlIHRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5LiBGb3IgYW4gZXhhbXBs
ZQorIyBzZWUgdGhlIGRvY3VtZW50YXRpb24uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfRVhUUkFfU1RZTEVTSEVF
VCAgPQorCisjIFRoZSBIVE1MX0VYVFJBX0ZJTEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5
IG9uZSBvciBtb3JlIGV4dHJhIGltYWdlcyBvcgorIyBvdGhlciBzb3VyY2UgZmlsZXMgd2hpY2gg
c2hvdWxkIGJlIGNvcGllZCB0byB0aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5LiBOb3RlCisjIHRo
YXQgdGhlc2UgZmlsZXMgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIGJhc2UgSFRNTCBvdXRwdXQgZGly
ZWN0b3J5LiBVc2UgdGhlCisjICRyZWxwYXRoXiBtYXJrZXIgaW4gdGhlIEhUTUxfSEVBREVSIGFu
ZC9vciBIVE1MX0ZPT1RFUiBmaWxlcyB0byBsb2FkIHRoZXNlCisjIGZpbGVzLiBJbiB0aGUgSFRN
TF9TVFlMRVNIRUVUIGZpbGUsIHVzZSB0aGUgZmlsZSBuYW1lIG9ubHkuIEFsc28gbm90ZSB0aGF0
IHRoZQorIyBmaWxlcyB3aWxsIGJlIGNvcGllZCBhcy1pczsgdGhlcmUgYXJlIG5vIGNvbW1hbmRz
IG9yIG1hcmtlcnMgYXZhaWxhYmxlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
R0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0VYVFJBX0ZJTEVTICAgICAgID0K
KworIyBUaGUgSFRNTF9DT0xPUlNUWUxFX0hVRSB0YWcgY29udHJvbHMgdGhlIGNvbG9yIG9mIHRo
ZSBIVE1MIG91dHB1dC4gRG94eWdlbgorIyB3aWxsIGFkanVzdCB0aGUgY29sb3JzIGluIHRoZSBz
dHlsZXNoZWV0IGFuZCBiYWNrZ3JvdW5kIGltYWdlcyBhY2NvcmRpbmcgdG8KKyMgdGhpcyBjb2xv
ci4gSHVlIGlzIHNwZWNpZmllZCBhcyBhbiBhbmdsZSBvbiBhIGNvbG9yd2hlZWwsIHNlZQorIyBo
dHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0h1ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gRm9y
IGluc3RhbmNlIHRoZSB2YWx1ZQorIyAwIHJlcHJlc2VudHMgcmVkLCA2MCBpcyB5ZWxsb3csIDEy
MCBpcyBncmVlbiwgMTgwIGlzIGN5YW4sIDI0MCBpcyBibHVlLCAzMDAKKyMgcHVycGxlLCBhbmQg
MzYwIGlzIHJlZCBhZ2Fpbi4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMzU5
LCBkZWZhdWx0IHZhbHVlOiAyMjAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfQ09MT1JTVFlMRV9IVUUgICAgPSAy
MjAKKworIyBUaGUgSFRNTF9DT0xPUlNUWUxFX1NBVCB0YWcgY29udHJvbHMgdGhlIHB1cml0eSAo
b3Igc2F0dXJhdGlvbikgb2YgdGhlIGNvbG9ycworIyBpbiB0aGUgSFRNTCBvdXRwdXQuIEZvciBh
IHZhbHVlIG9mIDAgdGhlIG91dHB1dCB3aWxsIHVzZSBncmF5c2NhbGVzIG9ubHkuIEEKKyMgdmFs
dWUgb2YgMjU1IHdpbGwgcHJvZHVjZSB0aGUgbW9zdCB2aXZpZCBjb2xvcnMuCisjIE1pbmltdW0g
dmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDI1NSwgZGVmYXVsdCB2YWx1ZTogMTAwLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgor
CitIVE1MX0NPTE9SU1RZTEVfU0FUICAgID0gMTAwCisKKyMgVGhlIEhUTUxfQ09MT1JTVFlMRV9H
QU1NQSB0YWcgY29udHJvbHMgdGhlIGdhbW1hIGNvcnJlY3Rpb24gYXBwbGllZCB0byB0aGUKKyMg
bHVtaW5hbmNlIGNvbXBvbmVudCBvZiB0aGUgY29sb3JzIGluIHRoZSBIVE1MIG91dHB1dC4gVmFs
dWVzIGJlbG93IDEwMAorIyBncmFkdWFsbHkgbWFrZSB0aGUgb3V0cHV0IGxpZ2h0ZXIsIHdoZXJl
YXMgdmFsdWVzIGFib3ZlIDEwMCBtYWtlIHRoZSBvdXRwdXQKKyMgZGFya2VyLiBUaGUgdmFsdWUg
ZGl2aWRlZCBieSAxMDAgaXMgdGhlIGFjdHVhbCBnYW1tYSBhcHBsaWVkLCBzbyA4MCByZXByZXNl
bnRzCisjIGEgZ2FtbWEgb2YgMC44LCBUaGUgdmFsdWUgMjIwIHJlcHJlc2VudHMgYSBnYW1tYSBv
ZiAyLjIsIGFuZCAxMDAgZG9lcyBub3QKKyMgY2hhbmdlIHRoZSBnYW1tYS4KKyMgTWluaW11bSB2
YWx1ZTogNDAsIG1heGltdW0gdmFsdWU6IDI0MCwgZGVmYXVsdCB2YWx1ZTogODAuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisK
K0hUTUxfQ09MT1JTVFlMRV9HQU1NQSAgPSA4MAorCisjIElmIHRoZSBIVE1MX1RJTUVTVEFNUCB0
YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBmb290ZXIgb2YgZWFjaCBnZW5lcmF0ZWQgSFRNTAor
IyBwYWdlIHdpbGwgY29udGFpbiB0aGUgZGF0ZSBhbmQgdGltZSB3aGVuIHRoZSBwYWdlIHdhcyBn
ZW5lcmF0ZWQuIFNldHRpbmcgdGhpcworIyB0byBOTyBjYW4gaGVscCB3aGVuIGNvbXBhcmluZyB0
aGUgb3V0cHV0IG9mIG11bHRpcGxlIHJ1bnMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0
byBZRVMuCisKK0hUTUxfVElNRVNUQU1QICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgSFRNTF9E
WU5BTUlDX1NFQ1RJT05TIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGdlbmVyYXRlZCBIVE1M
CisjIGRvY3VtZW50YXRpb24gd2lsbCBjb250YWluIHNlY3Rpb25zIHRoYXQgY2FuIGJlIGhpZGRl
biBhbmQgc2hvd24gYWZ0ZXIgdGhlCisjIHBhZ2UgaGFzIGxvYWRlZC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
SFRNTCBpcyBzZXQgdG8gWUVTLgogCiBIVE1MX0RZTkFNSUNfU0VDVElPTlMgID0gWUVTCiAKLSMg
SWYgdGhlIEdFTkVSQVRFX0RPQ1NFVCB0YWcgaXMgc2V0IHRvIFlFUywgYWRkaXRpb25hbCBpbmRl
eCBmaWxlcyAKLSMgd2lsbCBiZSBnZW5lcmF0ZWQgdGhhdCBjYW4gYmUgdXNlZCBhcyBpbnB1dCBm
b3IgQXBwbGUncyBYY29kZSAzIAotIyBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50
LCBpbnRyb2R1Y2VkIHdpdGggT1NYIDEwLjUgKExlb3BhcmQpLiAKLSMgVG8gY3JlYXRlIGEgZG9j
dW1lbnRhdGlvbiBzZXQsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIE1ha2VmaWxlIGluIHRoZSAK
LSMgSFRNTCBvdXRwdXQgZGlyZWN0b3J5LiBSdW5uaW5nIG1ha2Ugd2lsbCBwcm9kdWNlIHRoZSBk
b2NzZXQgaW4gdGhhdCAKLSMgZGlyZWN0b3J5IGFuZCBydW5uaW5nICJtYWtlIGluc3RhbGwiIHdp
bGwgaW5zdGFsbCB0aGUgZG9jc2V0IGluIAotIyB+L0xpYnJhcnkvRGV2ZWxvcGVyL1NoYXJlZC9E
b2N1bWVudGF0aW9uL0RvY1NldHMgc28gdGhhdCBYY29kZSB3aWxsIGZpbmQgCi0jIGl0IGF0IHN0
YXJ0dXAuIAotIyBTZWUgaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vdG9vbHMvY3JlYXRpbmdk
b2NzZXRzd2l0aGRveHlnZW4uaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyMgV2l0aCBIVE1M
X0lOREVYX05VTV9FTlRSSUVTIG9uZSBjYW4gY29udHJvbCB0aGUgcHJlZmVycmVkIG51bWJlciBv
ZiBlbnRyaWVzCisjIHNob3duIGluIHRoZSB2YXJpb3VzIHRyZWUgc3RydWN0dXJlZCBpbmRpY2Vz
IGluaXRpYWxseTsgdGhlIHVzZXIgY2FuIGV4cGFuZAorIyBhbmQgY29sbGFwc2UgZW50cmllcyBk
eW5hbWljYWxseSBsYXRlciBvbi4gRG94eWdlbiB3aWxsIGV4cGFuZCB0aGUgdHJlZSB0bworIyBz
dWNoIGEgbGV2ZWwgdGhhdCBhdCBtb3N0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGVudHJpZXMg
YXJlIHZpc2libGUgKHVubGVzcworIyBhIGZ1bGx5IGNvbGxhcHNlZCB0cmVlIGFscmVhZHkgZXhj
ZWVkcyB0aGlzIGFtb3VudCkuIFNvIHNldHRpbmcgdGhlIG51bWJlciBvZgorIyBlbnRyaWVzIDEg
d2lsbCBwcm9kdWNlIGEgZnVsbCBjb2xsYXBzZWQgdHJlZSBieSBkZWZhdWx0LiAwIGlzIGEgc3Bl
Y2lhbCB2YWx1ZQorIyByZXByZXNlbnRpbmcgYW4gaW5maW5pdGUgbnVtYmVyIG9mIGVudHJpZXMg
YW5kIHdpbGwgcmVzdWx0IGluIGEgZnVsbCBleHBhbmRlZAorIyB0cmVlIGJ5IGRlZmF1bHQuCisj
IE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDk5OTksIGRlZmF1bHQgdmFsdWU6IDEw
MC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0
IHRvIFlFUy4KKworSFRNTF9JTkRFWF9OVU1fRU5UUklFUyA9IDEwMAorCisjIElmIHRoZSBHRU5F
UkFURV9ET0NTRVQgdGFnIGlzIHNldCB0byBZRVMsIGFkZGl0aW9uYWwgaW5kZXggZmlsZXMgd2ls
bCBiZQorIyBnZW5lcmF0ZWQgdGhhdCBjYW4gYmUgdXNlZCBhcyBpbnB1dCBmb3IgQXBwbGUncyBY
Y29kZSAzIGludGVncmF0ZWQgZGV2ZWxvcG1lbnQKKyMgZW52aXJvbm1lbnQgKHNlZTogaHR0cDov
L2RldmVsb3Blci5hcHBsZS5jb20vdG9vbHMveGNvZGUvKSwgaW50cm9kdWNlZCB3aXRoCisjIE9T
WCAxMC41IChMZW9wYXJkKS4gVG8gY3JlYXRlIGEgZG9jdW1lbnRhdGlvbiBzZXQsIGRveHlnZW4g
d2lsbCBnZW5lcmF0ZSBhCisjIE1ha2VmaWxlIGluIHRoZSBIVE1MIG91dHB1dCBkaXJlY3Rvcnku
IFJ1bm5pbmcgbWFrZSB3aWxsIHByb2R1Y2UgdGhlIGRvY3NldCBpbgorIyB0aGF0IGRpcmVjdG9y
eSBhbmQgcnVubmluZyBtYWtlIGluc3RhbGwgd2lsbCBpbnN0YWxsIHRoZSBkb2NzZXQgaW4KKyMg
fi9MaWJyYXJ5L0RldmVsb3Blci9TaGFyZWQvRG9jdW1lbnRhdGlvbi9Eb2NTZXRzIHNvIHRoYXQg
WGNvZGUgd2lsbCBmaW5kIGl0IGF0CisjIHN0YXJ0dXAuIFNlZSBodHRwOi8vZGV2ZWxvcGVyLmFw
cGxlLmNvbS90b29scy9jcmVhdGluZ2RvY3NldHN3aXRoZG94eWdlbi5odG1sCisjIGZvciBtb3Jl
IGluZm9ybWF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKIEdFTkVS
QVRFX0RPQ1NFVCAgICAgICAgPSBOTwogCi0jIFdoZW4gR0VORVJBVEVfRE9DU0VUIHRhZyBpcyBz
ZXQgdG8gWUVTLCB0aGlzIHRhZyBkZXRlcm1pbmVzIHRoZSBuYW1lIG9mIHRoZSAKLSMgZmVlZC4g
QSBkb2N1bWVudGF0aW9uIGZlZWQgcHJvdmlkZXMgYW4gdW1icmVsbGEgdW5kZXIgd2hpY2ggbXVs
dGlwbGUgCi0jIGRvY3VtZW50YXRpb24gc2V0cyBmcm9tIGEgc2luZ2xlIHByb3ZpZGVyIChzdWNo
IGFzIGEgY29tcGFueSBvciBwcm9kdWN0IHN1aXRlKSAKLSMgY2FuIGJlIGdyb3VwZWQuCisjIFRo
aXMgdGFnIGRldGVybWluZXMgdGhlIG5hbWUgb2YgdGhlIGRvY3NldCBmZWVkLiBBIGRvY3VtZW50
YXRpb24gZmVlZCBwcm92aWRlcworIyBhbiB1bWJyZWxsYSB1bmRlciB3aGljaCBtdWx0aXBsZSBk
b2N1bWVudGF0aW9uIHNldHMgZnJvbSBhIHNpbmdsZSBwcm92aWRlcgorIyAoc3VjaCBhcyBhIGNv
bXBhbnkgb3IgcHJvZHVjdCBzdWl0ZSkgY2FuIGJlIGdyb3VwZWQuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBEb3h5Z2VuIGdlbmVyYXRlZCBkb2NzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfRE9DU0VUIGlzIHNldCB0byBZRVMuCiAKIERPQ1NFVF9GRUVETkFN
RSAgICAgICAgPSAiRG94eWdlbiBnZW5lcmF0ZWQgZG9jcyIKIAotIyBXaGVuIEdFTkVSQVRFX0RP
Q1NFVCB0YWcgaXMgc2V0IHRvIFlFUywgdGhpcyB0YWcgc3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQg
Ci0jIHNob3VsZCB1bmlxdWVseSBpZGVudGlmeSB0aGUgZG9jdW1lbnRhdGlvbiBzZXQgYnVuZGxl
LiBUaGlzIHNob3VsZCBiZSBhIAotIyByZXZlcnNlIGRvbWFpbi1uYW1lIHN0eWxlIHN0cmluZywg
ZS5nLiBjb20ubXljb21wYW55Lk15RG9jU2V0LiBEb3h5Z2VuIAotIyB3aWxsIGFwcGVuZCAuZG9j
c2V0IHRvIHRoZSBuYW1lLgorIyBUaGlzIHRhZyBzcGVjaWZpZXMgYSBzdHJpbmcgdGhhdCBzaG91
bGQgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRvY3VtZW50YXRpb24KKyMgc2V0IGJ1bmRsZS4gVGhp
cyBzaG91bGQgYmUgYSByZXZlcnNlIGRvbWFpbi1uYW1lIHN0eWxlIHN0cmluZywgZS5nLgorIyBj
b20ubXljb21wYW55Lk15RG9jU2V0LiBEb3h5Z2VuIHdpbGwgYXBwZW5kIC5kb2NzZXQgdG8gdGhl
IG5hbWUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5Qcm9qZWN0LgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DU0VUIGlzIHNldCB0byBZ
RVMuCiAKIERPQ1NFVF9CVU5ETEVfSUQgICAgICAgPSBvcmcuZG94eWdlbi5Qcm9qZWN0CiAKLSMg
SWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGlu
ZGV4IGZpbGVzIAotIyB3aWxsIGJlIGdlbmVyYXRlZCB0aGF0IGNhbiBiZSB1c2VkIGFzIGlucHV0
IGZvciB0b29scyBsaWtlIHRoZSAKLSMgTWljcm9zb2Z0IEhUTUwgaGVscCB3b3Jrc2hvcCB0byBn
ZW5lcmF0ZSBhIGNvbXBpbGVkIEhUTUwgaGVscCBmaWxlICguY2htKSAKLSMgb2YgdGhlIGdlbmVy
YXRlZCBIVE1MIGRvY3VtZW50YXRpb24uCisjIFRoZSBET0NTRVRfUFVCTElTSEVSX0lEIHRhZyBz
cGVjaWZpZXMgYSBzdHJpbmcgdGhhdCBzaG91bGQgdW5pcXVlbHkgaWRlbnRpZnkKKyMgdGhlIGRv
Y3VtZW50YXRpb24gcHVibGlzaGVyLiBUaGlzIHNob3VsZCBiZSBhIHJldmVyc2UgZG9tYWluLW5h
bWUgc3R5bGUKKyMgc3RyaW5nLCBlLmcuIGNvbS5teWNvbXBhbnkuTXlEb2NTZXQuZG9jdW1lbnRh
dGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5Z2VuLlB1Ymxpc2hlci4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8g
WUVTLgorCitET0NTRVRfUFVCTElTSEVSX0lEICAgID0gb3JnLmRveHlnZW4uUHVibGlzaGVyCisK
KyMgVGhlIERPQ1NFVF9QVUJMSVNIRVJfTkFNRSB0YWcgaWRlbnRpZmllcyB0aGUgZG9jdW1lbnRh
dGlvbiBwdWJsaXNoZXIuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBQdWJsaXNoZXIuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9ET0NTRVQgaXMgc2V0IHRvIFlF
Uy4KKworRE9DU0VUX1BVQkxJU0hFUl9OQU1FICA9IFB1Ymxpc2hlcgorCisjIElmIHRoZSBHRU5F
UkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gZ2VuZXJhdGVzIHRo
cmVlCisjIGFkZGl0aW9uYWwgSFRNTCBpbmRleCBmaWxlczogaW5kZXguaGhwLCBpbmRleC5oaGMs
IGFuZCBpbmRleC5oaGsuIFRoZQorIyBpbmRleC5oaHAgaXMgYSBwcm9qZWN0IGZpbGUgdGhhdCBj
YW4gYmUgcmVhZCBieSBNaWNyb3NvZnQncyBIVE1MIEhlbHAgV29ya3Nob3AKKyMgKHNlZTogaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tL2VuLXVzL2Rvd25sb2FkL2RldGFpbHMuYXNweD9pZD0yMTEz
OCkgb24KKyMgV2luZG93cy4KKyMKKyMgVGhlIEhUTUwgSGVscCBXb3Jrc2hvcCBjb250YWlucyBh
IGNvbXBpbGVyIHRoYXQgY2FuIGNvbnZlcnQgYWxsIEhUTUwgb3V0cHV0CisjIGdlbmVyYXRlZCBi
eSBkb3h5Z2VuIGludG8gYSBzaW5nbGUgY29tcGlsZWQgSFRNTCBmaWxlICguY2htKS4gQ29tcGls
ZWQgSFRNTAorIyBmaWxlcyBhcmUgbm93IHVzZWQgYXMgdGhlIFdpbmRvd3MgOTggaGVscCBmb3Jt
YXQsIGFuZCB3aWxsIHJlcGxhY2UgdGhlIG9sZAorIyBXaW5kb3dzIGhlbHAgZm9ybWF0ICguaGxw
KSBvbiBhbGwgV2luZG93cyBwbGF0Zm9ybXMgaW4gdGhlIGZ1dHVyZS4gQ29tcHJlc3NlZAorIyBI
VE1MIGZpbGVzIGFsc28gY29udGFpbiBhbiBpbmRleCwgYSB0YWJsZSBvZiBjb250ZW50cywgYW5k
IHlvdSBjYW4gc2VhcmNoIGZvcgorIyB3b3JkcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gVGhlIEhU
TUwgd29ya3Nob3AgYWxzbyBjb250YWlucyBhIHZpZXdlciBmb3IKKyMgY29tcHJlc3NlZCBIVE1M
IGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKIEdFTkVSQVRFX0hU
TUxIRUxQICAgICAgPSAlSFRNTF9IRUxQJQogCi0jIElmIHRoZSBHRU5FUkFURV9IVE1MSEVMUCB0
YWcgaXMgc2V0IHRvIFlFUywgdGhlIENITV9GSUxFIHRhZyBjYW4gCi0jIGJlIHVzZWQgdG8gc3Bl
Y2lmeSB0aGUgZmlsZSBuYW1lIG9mIHRoZSByZXN1bHRpbmcgLmNobSBmaWxlLiBZb3UgCi0jIGNh
biBhZGQgYSBwYXRoIGluIGZyb250IG9mIHRoZSBmaWxlIGlmIHRoZSByZXN1bHQgc2hvdWxkIG5v
dCBiZSAKKyMgVGhlIENITV9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBmaWxl
IG5hbWUgb2YgdGhlIHJlc3VsdGluZyAuY2htCisjIGZpbGUuIFlvdSBjYW4gYWRkIGEgcGF0aCBp
biBmcm9udCBvZiB0aGUgZmlsZSBpZiB0aGUgcmVzdWx0IHNob3VsZCBub3QgYmUKICMgd3JpdHRl
biB0byB0aGUgaHRtbCBvdXRwdXQgZGlyZWN0b3J5LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KIAogQ0hNX0ZJTEUgICAg
ICAgICAgICAgICA9IGpzb25jcHAtJUpTT05DUFBfVkVSU0lPTiUuY2htCiAKLSMgSWYgdGhlIEdF
TkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgSEhDX0xPQ0FUSU9OIHRhZyBj
YW4gCi0jIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gKGFic29sdXRlIHBhdGggaW5j
bHVkaW5nIGZpbGUgbmFtZSkgb2YgCi0jIHRoZSBIVE1MIGhlbHAgY29tcGlsZXIgKGhoYy5leGUp
LiBJZiBub24tZW1wdHkgZG94eWdlbiB3aWxsIHRyeSB0byBydW4gCi0jIHRoZSBIVE1MIGhlbHAg
Y29tcGlsZXIgb24gdGhlIGdlbmVyYXRlZCBpbmRleC5oaHAuCisjIFRoZSBISENfTE9DQVRJT04g
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIChhYnNvbHV0ZSBwYXRoCisj
IGluY2x1ZGluZyBmaWxlIG5hbWUpIG9mIHRoZSBIVE1MIGhlbHAgY29tcGlsZXIgKCBoaGMuZXhl
KS4gSWYgbm9uLWVtcHR5CisjIGRveHlnZW4gd2lsbCB0cnkgdG8gcnVuIHRoZSBIVE1MIGhlbHAg
Y29tcGlsZXIgb24gdGhlIGdlbmVyYXRlZCBpbmRleC5oaHAuCisjIFRoZSBmaWxlIGhhcyB0byBi
ZSBzcGVjaWZpZWQgd2l0aCBmdWxsIHBhdGguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgogCiBISENfTE9DQVRJT04gICAg
ICAgICAgID0gImM6XFByb2dyYW0gRmlsZXNcSFRNTCBIZWxwIFdvcmtzaG9wXGhoYy5leGUiCiAK
LSMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgR0VORVJB
VEVfQ0hJIGZsYWcgCi0jIGNvbnRyb2xzIGlmIGEgc2VwYXJhdGUgLmNoaSBpbmRleCBmaWxlIGlz
IGdlbmVyYXRlZCAoWUVTKSBvciB0aGF0IAotIyBpdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhl
IG1hc3RlciAuY2htIGZpbGUgKE5PKS4KKyMgVGhlIEdFTkVSQVRFX0NISSBmbGFnIGNvbnRyb2xz
IGlmIGEgc2VwYXJhdGUgLmNoaSBpbmRleCBmaWxlIGlzIGdlbmVyYXRlZCAoCisjIFlFUykgb3Ig
dGhhdCBpdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIG1hc3RlciAuY2htIGZpbGUgKCBOTyku
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCiAKIEdFTkVSQVRFX0NISSAg
ICAgICAgICAgPSBZRVMKIAotIyBJZiB0aGUgR0VORVJBVEVfSFRNTEhFTFAgdGFnIGlzIHNldCB0
byBZRVMsIHRoZSBDSE1fSU5ERVhfRU5DT0RJTkcgCi0jIGlzIHVzZWQgdG8gZW5jb2RlIEh0bWxI
ZWxwIGluZGV4IChoaGspLCBjb250ZW50IChoaGMpIGFuZCBwcm9qZWN0IGZpbGUgCi0jIGNvbnRl
bnQuCisjIFRoZSBDSE1fSU5ERVhfRU5DT0RJTkcgaXMgdXNlZCB0byBlbmNvZGUgSHRtbEhlbHAg
aW5kZXggKCBoaGspLCBjb250ZW50ICggaGhjKQorIyBhbmQgcHJvamVjdCBmaWxlIGNvbnRlbnQu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBz
ZXQgdG8gWUVTLgogCi1DSE1fSU5ERVhfRU5DT0RJTkcgICAgID0gCitDSE1fSU5ERVhfRU5DT0RJ
TkcgICAgID0KIAotIyBJZiB0aGUgR0VORVJBVEVfSFRNTEhFTFAgdGFnIGlzIHNldCB0byBZRVMs
IHRoZSBCSU5BUllfVE9DIGZsYWcgCi0jIGNvbnRyb2xzIHdoZXRoZXIgYSBiaW5hcnkgdGFibGUg
b2YgY29udGVudHMgaXMgZ2VuZXJhdGVkIChZRVMpIG9yIGEgCi0jIG5vcm1hbCB0YWJsZSBvZiBj
b250ZW50cyAoTk8pIGluIHRoZSAuY2htIGZpbGUuCisjIFRoZSBCSU5BUllfVE9DIGZsYWcgY29u
dHJvbHMgd2hldGhlciBhIGJpbmFyeSB0YWJsZSBvZiBjb250ZW50cyBpcyBnZW5lcmF0ZWQgKAor
IyBZRVMpIG9yIGEgbm9ybWFsIHRhYmxlIG9mIGNvbnRlbnRzICggTk8pIGluIHRoZSAuY2htIGZp
bGUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCiAKIEJJTkFSWV9UT0Mg
ICAgICAgICAgICAgPSBZRVMKIAotIyBUaGUgVE9DX0VYUEFORCBmbGFnIGNhbiBiZSBzZXQgdG8g
WUVTIHRvIGFkZCBleHRyYSBpdGVtcyBmb3IgZ3JvdXAgbWVtYmVycyAKLSMgdG8gdGhlIGNvbnRl
bnRzIG9mIHRoZSBIVE1MIGhlbHAgZG9jdW1lbnRhdGlvbiBhbmQgdG8gdGhlIHRyZWUgdmlldy4K
KyMgVGhlIFRPQ19FWFBBTkQgZmxhZyBjYW4gYmUgc2V0IHRvIFlFUyB0byBhZGQgZXh0cmEgaXRl
bXMgZm9yIGdyb3VwIG1lbWJlcnMgdG8KKyMgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG9mIHRoZSBI
VE1MIGhlbHAgZG9jdW1lbnRhdGlvbiBhbmQgdG8gdGhlIHRyZWUgdmlldy4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KIAogVE9DX0VYUEFORCAgICAgICAgICAgICA9IFlF
UwogCi0jIElmIHRoZSBHRU5FUkFURV9RSFAgdGFnIGlzIHNldCB0byBZRVMgYW5kIGJvdGggUUhQ
X05BTUVTUEFDRSBhbmQgUUhQX1ZJUlRVQUxfRk9MREVSIAotIyBhcmUgc2V0LCBhbiBhZGRpdGlv
bmFsIGluZGV4IGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgdGhhdCBjYW4gYmUgdXNlZCBhcyBpbnB1
dCBmb3IgCi0jIFF0J3MgcWhlbHBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgYSBRdCBDb21wcmVzc2Vk
IEhlbHAgKC5xY2gpIG9mIHRoZSBnZW5lcmF0ZWQgCi0jIEhUTUwgZG9jdW1lbnRhdGlvbi4KKyMg
SWYgdGhlIEdFTkVSQVRFX1FIUCB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgYm90aCBRSFBfTkFNRVNQ
QUNFIGFuZAorIyBRSFBfVklSVFVBTF9GT0xERVIgYXJlIHNldCwgYW4gYWRkaXRpb25hbCBpbmRl
eCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQKKyMgY2FuIGJlIHVzZWQgYXMgaW5wdXQgZm9y
IFF0J3MgcWhlbHBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgYSBRdCBDb21wcmVzc2VkIEhlbHAKKyMg
KC5xY2gpIG9mIHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9IVE1MIGlzIHNldCB0byBZRVMuCiAKIEdFTkVSQVRFX1FIUCAgICAgICAgICAgPSBOTwogCi0j
IElmIHRoZSBRSEdfTE9DQVRJT04gdGFnIGlzIHNwZWNpZmllZCwgdGhlIFFDSF9GSUxFIHRhZyBj
YW4gCi0jIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZSBuYW1lIG9mIHRoZSByZXN1bHRpbmcg
LnFjaCBmaWxlLiAKLSMgVGhlIHBhdGggc3BlY2lmaWVkIGlzIHJlbGF0aXZlIHRvIHRoZSBIVE1M
IG91dHB1dCBmb2xkZXIuCisjIElmIHRoZSBRSEdfTE9DQVRJT04gdGFnIGlzIHNwZWNpZmllZCwg
dGhlIFFDSF9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5CisjIHRoZSBmaWxlIG5hbWUg
b2YgdGhlIHJlc3VsdGluZyAucWNoIGZpbGUuIFRoZSBwYXRoIHNwZWNpZmllZCBpcyByZWxhdGl2
ZSB0bworIyB0aGUgSFRNTCBvdXRwdXQgZm9sZGVyLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCiAKLVFDSF9GSUxFICAgICAgICAg
ICAgICAgPSAKK1FDSF9GSUxFICAgICAgICAgICAgICAgPQogCi0jIFRoZSBRSFBfTkFNRVNQQUNF
IHRhZyBzcGVjaWZpZXMgdGhlIG5hbWVzcGFjZSB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIAotIyBR
dCBIZWxwIFByb2plY3Qgb3V0cHV0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIAot
IyBodHRwOi8vZG9jLnRyb2xsdGVjaC5jb20vcXRoZWxwcHJvamVjdC5odG1sI25hbWVzcGFjZQor
IyBUaGUgUUhQX05BTUVTUEFDRSB0YWcgc3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdo
ZW4gZ2VuZXJhdGluZyBRdCBIZWxwCisjIFByb2plY3Qgb3V0cHV0LiBGb3IgbW9yZSBpbmZvcm1h
dGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAvIE5hbWVzcGFjZQorIyAoc2VlOiBodHRw
Oi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjbmFtZXNwYWNl
KS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5Z2VuLlByb2plY3QuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KIAot
UUhQX05BTUVTUEFDRSAgICAgICAgICA9IAorUUhQX05BTUVTUEFDRSAgICAgICAgICA9CiAKLSMg
VGhlIFFIUF9WSVJUVUFMX0ZPTERFUiB0YWcgc3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNl
IHdoZW4gZ2VuZXJhdGluZyAKLSMgUXQgSGVscCBQcm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5m
b3JtYXRpb24gcGxlYXNlIHNlZSAKLSMgaHR0cDovL2RvYy50cm9sbHRlY2guY29tL3F0aGVscHBy
b2plY3QuaHRtbCN2aXJ0dWFsLWZvbGRlcnMKKyMgVGhlIFFIUF9WSVJUVUFMX0ZPTERFUiB0YWcg
c3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBRdAorIyBIZWxw
IFByb2plY3Qgb3V0cHV0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAg
UHJvamVjdCAvIFZpcnR1YWwKKyMgRm9sZGVycyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcv
ZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjdmlydHVhbC0KKyMgZm9sZGVycykuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBkb2MuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KIAogUUhQX1ZJUlRVQUxfRk9MREVSICAgICA9
IGRvYwogCi0jIElmIFFIUF9DVVNUX0ZJTFRFUl9OQU1FIGlzIHNldCwgaXQgc3BlY2lmaWVzIHRo
ZSBuYW1lIG9mIGEgY3VzdG9tIGZpbHRlciB0byBhZGQuIAotIyBGb3IgbW9yZSBpbmZvcm1hdGlv
biBwbGVhc2Ugc2VlIAotIyBodHRwOi8vZG9jLnRyb2xsdGVjaC5jb20vcXRoZWxwcHJvamVjdC5o
dG1sI2N1c3RvbS1maWx0ZXJzCisjIElmIHRoZSBRSFBfQ1VTVF9GSUxURVJfTkFNRSB0YWcgaXMg
c2V0LCBpdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgYSBjdXN0b20KKyMgZmlsdGVyIHRvIGFkZC4g
Rm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBDdXN0b20K
KyMgRmlsdGVycyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBw
cm9qZWN0Lmh0bWwjY3VzdG9tLQorIyBmaWx0ZXJzKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSFBfQ1VTVF9GSUxURVJf
TkFNRSAgID0KKworIyBUaGUgUUhQX0NVU1RfRklMVEVSX0FUVFJTIHRhZyBzcGVjaWZpZXMgdGhl
IGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlCisjIGN1c3RvbSBmaWx0ZXIgdG8gYWRkLiBG
b3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAvIEN1c3RvbQor
IyBGaWx0ZXJzIChzZWU6IGh0dHA6Ly9xdC1wcm9qZWN0Lm9yZy9kb2MvcXQtNC44L3F0aGVscHBy
b2plY3QuaHRtbCNjdXN0b20tCisjIGZpbHRlcnMpLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCisKK1FIUF9DVVNUX0ZJTFRFUl9B
VFRSUyAgPQorCisjIFRoZSBRSFBfU0VDVF9GSUxURVJfQVRUUlMgdGFnIHNwZWNpZmllcyB0aGUg
bGlzdCBvZiB0aGUgYXR0cmlidXRlcyB0aGlzCisjIHByb2plY3QncyBmaWx0ZXIgc2VjdGlvbiBt
YXRjaGVzLiBRdCBIZWxwIFByb2plY3QgLyBGaWx0ZXIgQXR0cmlidXRlcyAoc2VlOgorIyBodHRw
Oi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjZmlsdGVyLWF0
dHJpYnV0ZXMpLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQ
IGlzIHNldCB0byBZRVMuCisKK1FIUF9TRUNUX0ZJTFRFUl9BVFRSUyAgPQorCisjIFRoZSBRSEdf
TE9DQVRJT04gdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIFF0J3MK
KyMgcWhlbHBnZW5lcmF0b3IuIElmIG5vbi1lbXB0eSBkb3h5Z2VuIHdpbGwgdHJ5IHRvIHJ1biBx
aGVscGdlbmVyYXRvciBvbiB0aGUKKyMgZ2VuZXJhdGVkIC5xaHAgZmlsZS4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSEdf
TE9DQVRJT04gICAgICAgICAgID0KKworIyBJZiB0aGUgR0VORVJBVEVfRUNMSVBTRUhFTFAgdGFn
IGlzIHNldCB0byBZRVMsIGFkZGl0aW9uYWwgaW5kZXggZmlsZXMgd2lsbCBiZQorIyBnZW5lcmF0
ZWQsIHRvZ2V0aGVyIHdpdGggdGhlIEhUTUwgZmlsZXMsIHRoZXkgZm9ybSBhbiBFY2xpcHNlIGhl
bHAgcGx1Z2luLiBUbworIyBpbnN0YWxsIHRoaXMgcGx1Z2luIGFuZCBtYWtlIGl0IGF2YWlsYWJs
ZSB1bmRlciB0aGUgaGVscCBjb250ZW50cyBtZW51IGluCisjIEVjbGlwc2UsIHRoZSBjb250ZW50
cyBvZiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIEhUTUwgYW5kIFhNTCBmaWxlcyBuZWVk
cworIyB0byBiZSBjb3BpZWQgaW50byB0aGUgcGx1Z2lucyBkaXJlY3Rvcnkgb2YgZWNsaXBzZS4g
VGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeQorIyB3aXRoaW4gdGhlIHBsdWdpbnMgZGlyZWN0b3J5
IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgRUNMSVBTRV9ET0NfSUQgdmFsdWUuCisjIEFmdGVy
IGNvcHlpbmcgRWNsaXBzZSBuZWVkcyB0byBiZSByZXN0YXJ0ZWQgYmVmb3JlIHRoZSBoZWxwIGFw
cGVhcnMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworR0VORVJBVEVfRUNM
SVBTRUhFTFAgICA9IE5PCisKKyMgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIEVjbGlwc2Ug
aGVscCBwbHVnaW4uIFdoZW4gaW5zdGFsbGluZyB0aGUgcGx1Z2luCisjIHRoZSBkaXJlY3Rvcnkg
bmFtZSBjb250YWluaW5nIHRoZSBIVE1MIGFuZCBYTUwgZmlsZXMgc2hvdWxkIGFsc28gaGF2ZSB0
aGlzCisjIG5hbWUuIEVhY2ggZG9jdW1lbnRhdGlvbiBzZXQgc2hvdWxkIGhhdmUgaXRzIG93biBp
ZGVudGlmaWVyLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4uUHJvamVjdC4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0VDTElQU0VIRUxQIGlz
IHNldCB0byBZRVMuCisKK0VDTElQU0VfRE9DX0lEICAgICAgICAgPSBvcmcuZG94eWdlbi5Qcm9q
ZWN0CisKKyMgSWYgeW91IHdhbnQgZnVsbCBjb250cm9sIG92ZXIgdGhlIGxheW91dCBvZiB0aGUg
Z2VuZXJhdGVkIEhUTUwgcGFnZXMgaXQgbWlnaHQKKyMgYmUgbmVjZXNzYXJ5IHRvIGRpc2FibGUg
dGhlIGluZGV4IGFuZCByZXBsYWNlIGl0IHdpdGggeW91ciBvd24uIFRoZQorIyBESVNBQkxFX0lO
REVYIHRhZyBjYW4gYmUgdXNlZCB0byB0dXJuIG9uL29mZiB0aGUgY29uZGVuc2VkIGluZGV4ICh0
YWJzKSBhdCB0b3AKKyMgb2YgZWFjaCBIVE1MIHBhZ2UuIEEgdmFsdWUgb2YgTk8gZW5hYmxlcyB0
aGUgaW5kZXggYW5kIHRoZSB2YWx1ZSBZRVMgZGlzYWJsZXMKKyMgaXQuIFNpbmNlIHRoZSB0YWJz
IGluIHRoZSBpbmRleCBjb250YWluIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIHRoZSBuYXZpZ2F0
aW9uCisjIHRyZWUsIHlvdSBjYW4gc2V0IHRoaXMgb3B0aW9uIHRvIFlFUyBpZiB5b3UgYWxzbyBz
ZXQgR0VORVJBVEVfVFJFRVZJRVcgdG8gWUVTLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0
byBZRVMuCiAKLVFIUF9DVVNUX0ZJTFRFUl9OQU1FICAgPSAKK0RJU0FCTEVfSU5ERVggICAgICAg
ICAgPSBOTwogCi0jIFRoZSBRSFBfQ1VTVF9GSUxUX0FUVFJTIHRhZyBzcGVjaWZpZXMgdGhlIGxp
c3Qgb2YgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGN1c3RvbSBmaWx0ZXIgdG8gYWRkLkZvciBtb3Jl
IGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgCi0jIDxhIGhyZWY9Imh0dHA6Ly9kb2MudHJvbGx0ZWNo
LmNvbS9xdGhlbHBwcm9qZWN0Lmh0bWwjY3VzdG9tLWZpbHRlcnMiPlF0IEhlbHAgUHJvamVjdCAv
IEN1c3RvbSBGaWx0ZXJzPC9hPi4KKyMgVGhlIEdFTkVSQVRFX1RSRUVWSUVXIHRhZyBpcyB1c2Vk
IHRvIHNwZWNpZnkgd2hldGhlciBhIHRyZWUtbGlrZSBpbmRleAorIyBzdHJ1Y3R1cmUgc2hvdWxk
IGJlIGdlbmVyYXRlZCB0byBkaXNwbGF5IGhpZXJhcmNoaWNhbCBpbmZvcm1hdGlvbi4gSWYgdGhl
IHRhZworIyB2YWx1ZSBpcyBzZXQgdG8gWUVTLCBhIHNpZGUgcGFuZWwgd2lsbCBiZSBnZW5lcmF0
ZWQgY29udGFpbmluZyBhIHRyZWUtbGlrZQorIyBpbmRleCBzdHJ1Y3R1cmUgKGp1c3QgbGlrZSB0
aGUgb25lIHRoYXQgaXMgZ2VuZXJhdGVkIGZvciBIVE1MIEhlbHApLiBGb3IgdGhpcworIyB0byB3
b3JrIGEgYnJvd3NlciB0aGF0IHN1cHBvcnRzIEphdmFTY3JpcHQsIERIVE1MLCBDU1MgYW5kIGZy
YW1lcyBpcyByZXF1aXJlZAorIyAoaS5lLiBhbnkgbW9kZXJuIGJyb3dzZXIpLiBXaW5kb3dzIHVz
ZXJzIGFyZSBwcm9iYWJseSBiZXR0ZXIgb2ZmIHVzaW5nIHRoZQorIyBIVE1MIGhlbHAgZmVhdHVy
ZS4gVmlhIGN1c3RvbSBzdHlsZXNoZWV0cyAoc2VlIEhUTUxfRVhUUkFfU1RZTEVTSEVFVCkgb25l
IGNhbgorIyBmdXJ0aGVyIGZpbmUtdHVuZSB0aGUgbG9vayBvZiB0aGUgaW5kZXguIEFzIGFuIGV4
YW1wbGUsIHRoZSBkZWZhdWx0IHN0eWxlCisjIHNoZWV0IGdlbmVyYXRlZCBieSBkb3h5Z2VuIGhh
cyBhbiBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHRvIHB1dCBhbiBpbWFnZSBhdAorIyB0aGUgcm9v
dCBvZiB0aGUgdHJlZSBpbnN0ZWFkIG9mIHRoZSBQUk9KRUNUX05BTUUuIFNpbmNlIHRoZSB0cmVl
IGJhc2ljYWxseSBoYXMKKyMgdGhlIHNhbWUgaW5mb3JtYXRpb24gYXMgdGhlIHRhYiBpbmRleCwg
eW91IGNvdWxkIGNvbnNpZGVyIHNldHRpbmcKKyMgRElTQUJMRV9JTkRFWCB0byBZRVMgd2hlbiBl
bmFibGluZyB0aGlzIG9wdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgog
Ci1RSFBfQ1VTVF9GSUxURVJfQVRUUlMgID0gCitHRU5FUkFURV9UUkVFVklFVyAgICAgID0gTk8K
IAotIyBUaGUgUUhQX1NFQ1RfRklMVEVSX0FUVFJTIHRhZyBzcGVjaWZpZXMgdGhlIGxpc3Qgb2Yg
dGhlIGF0dHJpYnV0ZXMgdGhpcyBwcm9qZWN0J3MgCi0jIGZpbHRlciBzZWN0aW9uIG1hdGNoZXMu
IAotIyA8YSBocmVmPSJodHRwOi8vZG9jLnRyb2xsdGVjaC5jb20vcXRoZWxwcHJvamVjdC5odG1s
I2ZpbHRlci1hdHRyaWJ1dGVzIj5RdCBIZWxwIFByb2plY3QgLyBGaWx0ZXIgQXR0cmlidXRlczwv
YT4uCisjIFRoZSBFTlVNX1ZBTFVFU19QRVJfTElORSB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRo
ZSBudW1iZXIgb2YgZW51bSB2YWx1ZXMgdGhhdAorIyBkb3h5Z2VuIHdpbGwgZ3JvdXAgb24gb25l
IGxpbmUgaW4gdGhlIGdlbmVyYXRlZCBIVE1MIGRvY3VtZW50YXRpb24uCisjCisjIE5vdGUgdGhh
dCBhIHZhbHVlIG9mIDAgd2lsbCBjb21wbGV0ZWx5IHN1cHByZXNzIHRoZSBlbnVtIHZhbHVlcyBm
cm9tIGFwcGVhcmluZworIyBpbiB0aGUgb3ZlcnZpZXcgc2VjdGlvbi4KKyMgTWluaW11bSB2YWx1
ZTogMCwgbWF4aW11bSB2YWx1ZTogMjAsIGRlZmF1bHQgdmFsdWU6IDQuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKLVFIUF9T
RUNUX0ZJTFRFUl9BVFRSUyAgPSAKK0VOVU1fVkFMVUVTX1BFUl9MSU5FICAgPSA0CiAKLSMgSWYg
dGhlIEdFTkVSQVRFX1FIUCB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIFFIR19MT0NBVElPTiB0YWcg
Y2FuIAotIyBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIFF0J3MgcWhlbHBnZW5l
cmF0b3IuIAotIyBJZiBub24tZW1wdHkgZG94eWdlbiB3aWxsIHRyeSB0byBydW4gcWhlbHBnZW5l
cmF0b3Igb24gdGhlIGdlbmVyYXRlZCAKLSMgLnFocCBmaWxlLgorIyBJZiB0aGUgdHJlZXZpZXcg
aXMgZW5hYmxlZCAoc2VlIEdFTkVSQVRFX1RSRUVWSUVXKSB0aGVuIHRoaXMgdGFnIGNhbiBiZSB1
c2VkCisjIHRvIHNldCB0aGUgaW5pdGlhbCB3aWR0aCAoaW4gcGl4ZWxzKSBvZiB0aGUgZnJhbWUg
aW4gd2hpY2ggdGhlIHRyZWUgaXMgc2hvd24uCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0g
dmFsdWU6IDE1MDAsIGRlZmF1bHQgdmFsdWU6IDI1MC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAotUUhHX0xPQ0FUSU9OICAg
ICAgICAgICA9IAorVFJFRVZJRVdfV0lEVEggICAgICAgICA9IDI1MAogCi0jIFRoZSBESVNBQkxF
X0lOREVYIHRhZyBjYW4gYmUgdXNlZCB0byB0dXJuIG9uL29mZiB0aGUgY29uZGVuc2VkIGluZGV4
IGF0IAotIyB0b3Agb2YgZWFjaCBIVE1MIHBhZ2UuIFRoZSB2YWx1ZSBOTyAodGhlIGRlZmF1bHQp
IGVuYWJsZXMgdGhlIGluZGV4IGFuZCAKLSMgdGhlIHZhbHVlIFlFUyBkaXNhYmxlcyBpdC4KKyMg
V2hlbiB0aGUgRVhUX0xJTktTX0lOX1dJTkRPVyBvcHRpb24gaXMgc2V0IHRvIFlFUyBkb3h5Z2Vu
IHdpbGwgb3BlbiBsaW5rcyB0bworIyBleHRlcm5hbCBzeW1ib2xzIGltcG9ydGVkIHZpYSB0YWcg
ZmlsZXMgaW4gYSBzZXBhcmF0ZSB3aW5kb3cuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRv
IFlFUy4KIAotRElTQUJMRV9JTkRFWCAgICAgICAgICA9IE5PCitFWFRfTElOS1NfSU5fV0lORE9X
ICAgID0gTk8KIAotIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG51bWJlciBvZiBl
bnVtIHZhbHVlcyAocmFuZ2UgWzEuLjIwXSkgCi0jIHRoYXQgZG94eWdlbiB3aWxsIGdyb3VwIG9u
IG9uZSBsaW5lIGluIHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgorIyBVc2UgdGhp
cyB0YWcgdG8gY2hhbmdlIHRoZSBmb250IHNpemUgb2YgTGFUZVggZm9ybXVsYXMgaW5jbHVkZWQg
YXMgaW1hZ2VzIGluCisjIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uIFdoZW4geW91IGNoYW5nZSB0
aGUgZm9udCBzaXplIGFmdGVyIGEgc3VjY2Vzc2Z1bAorIyBkb3h5Z2VuIHJ1biB5b3UgbmVlZCB0
byBtYW51YWxseSByZW1vdmUgYW55IGZvcm1fKi5wbmcgaW1hZ2VzIGZyb20gdGhlIEhUTUwKKyMg
b3V0cHV0IGRpcmVjdG9yeSB0byBmb3JjZSB0aGVtIHRvIGJlIHJlZ2VuZXJhdGVkLgorIyBNaW5p
bXVtIHZhbHVlOiA4LCBtYXhpbXVtIHZhbHVlOiA1MCwgZGVmYXVsdCB2YWx1ZTogMTAuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMu
CiAKLUVOVU1fVkFMVUVTX1BFUl9MSU5FICAgPSA0CitGT1JNVUxBX0ZPTlRTSVpFICAgICAgID0g
MTAKIAotIyBUaGUgR0VORVJBVEVfVFJFRVZJRVcgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGV0
aGVyIGEgdHJlZS1saWtlIGluZGV4IAotIyBzdHJ1Y3R1cmUgc2hvdWxkIGJlIGdlbmVyYXRlZCB0
byBkaXNwbGF5IGhpZXJhcmNoaWNhbCBpbmZvcm1hdGlvbi4gCi0jIElmIHRoZSB0YWcgdmFsdWUg
aXMgc2V0IHRvIEZSQU1FLCBhIHNpZGUgcGFuZWwgd2lsbCBiZSBnZW5lcmF0ZWQgCi0jIGNvbnRh
aW5pbmcgYSB0cmVlLWxpa2UgaW5kZXggc3RydWN0dXJlIChqdXN0IGxpa2UgdGhlIG9uZSB0aGF0
IAotIyBpcyBnZW5lcmF0ZWQgZm9yIEhUTUwgSGVscCkuIEZvciB0aGlzIHRvIHdvcmsgYSBicm93
c2VyIHRoYXQgc3VwcG9ydHMgCi0jIEphdmFTY3JpcHQsIERIVE1MLCBDU1MgYW5kIGZyYW1lcyBp
cyByZXF1aXJlZCAoZm9yIGluc3RhbmNlIE1vemlsbGEgMS4wKywgCi0jIE5ldHNjYXBlIDYuMCss
IEludGVybmV0IGV4cGxvcmVyIDUuMCssIG9yIEtvbnF1ZXJvcikuIFdpbmRvd3MgdXNlcnMgYXJl
IAotIyBwcm9iYWJseSBiZXR0ZXIgb2ZmIHVzaW5nIHRoZSBIVE1MIGhlbHAgZmVhdHVyZS4gT3Ro
ZXIgcG9zc2libGUgdmFsdWVzIAotIyBmb3IgdGhpcyB0YWcgYXJlOiBISUVSQVJDSElFUywgd2hp
Y2ggd2lsbCBnZW5lcmF0ZSB0aGUgR3JvdXBzLCBEaXJlY3RvcmllcywgCi0jIGFuZCBDbGFzcyBI
aWVyYXJjaHkgcGFnZXMgdXNpbmcgYSB0cmVlIHZpZXcgaW5zdGVhZCBvZiBhbiBvcmRlcmVkIGxp
c3Q7IAotIyBBTEwsIHdoaWNoIGNvbWJpbmVzIHRoZSBiZWhhdmlvciBvZiBGUkFNRSBhbmQgSElF
UkFSQ0hJRVM7IGFuZCBOT05FLCB3aGljaCAKLSMgZGlzYWJsZXMgdGhpcyBiZWhhdmlvciBjb21w
bGV0ZWx5LiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyAKLSMgcmVs
ZWFzZXMgb2YgRG94eWdlbiwgdGhlIHZhbHVlcyBZRVMgYW5kIE5PIGFyZSBlcXVpdmFsZW50IHRv
IEZSQU1FIGFuZCBOT05FIAotIyByZXNwZWN0aXZlbHkuCisjIFVzZSB0aGUgRk9STVVMQV9UUkFO
UEFSRU5UIHRhZyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIGltYWdlcworIyBnZW5l
cmF0ZWQgZm9yIGZvcm11bGFzIGFyZSB0cmFuc3BhcmVudCBQTkdzLiBUcmFuc3BhcmVudCBQTkdz
IGFyZSBub3QKKyMgc3VwcG9ydGVkIHByb3Blcmx5IGZvciBJRSA2LjAsIGJ1dCBhcmUgc3VwcG9y
dGVkIG9uIGFsbCBtb2Rlcm4gYnJvd3NlcnMuCisjCisjIE5vdGUgdGhhdCB3aGVuIGNoYW5naW5n
IHRoaXMgb3B0aW9uIHlvdSBuZWVkIHRvIGRlbGV0ZSBhbnkgZm9ybV8qLnBuZyBmaWxlcyBpbgor
IyB0aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSB0aGUgY2hhbmdlcyBoYXZlIGVmZmVj
dC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworRk9STVVMQV9UUkFOU1BB
UkVOVCAgICA9IFlFUworCisjIEVuYWJsZSB0aGUgVVNFX01BVEhKQVggb3B0aW9uIHRvIHJlbmRl
ciBMYVRlWCBmb3JtdWxhcyB1c2luZyBNYXRoSmF4IChzZWUKKyMgaHR0cDovL3d3dy5tYXRoamF4
Lm9yZykgd2hpY2ggdXNlcyBjbGllbnQgc2lkZSBKYXZhU2NyaXB0IGZvciB0aGUgcmVuZGVyaW5n
CisjIGluc3RlYWQgb2YgdXNpbmcgcHJlcmVuZGVyZWQgYml0bWFwcy4gVXNlIHRoaXMgaWYgeW91
IGRvIG5vdCBoYXZlIExhVGVYCisjIGluc3RhbGxlZCBvciBpZiB5b3Ugd2FudCB0byBmb3JtdWxh
cyBsb29rIHByZXR0aWVyIGluIHRoZSBIVE1MIG91dHB1dC4gV2hlbgorIyBlbmFibGVkIHlvdSBt
YXkgYWxzbyBuZWVkIHRvIGluc3RhbGwgTWF0aEpheCBzZXBhcmF0ZWx5IGFuZCBjb25maWd1cmUg
dGhlIHBhdGgKKyMgdG8gaXQgdXNpbmcgdGhlIE1BVEhKQVhfUkVMUEFUSCBvcHRpb24uCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworVVNFX01BVEhKQVggICAgICAgICAgICA9
IE5PCisKKyMgV2hlbiBNYXRoSmF4IGlzIGVuYWJsZWQgeW91IGNhbiBzZXQgdGhlIGRlZmF1bHQg
b3V0cHV0IGZvcm1hdCB0byBiZSB1c2VkIGZvcgorIyB0aGUgTWF0aEpheCBvdXRwdXQuIFNlZSB0
aGUgTWF0aEpheCBzaXRlIChzZWU6CisjIGh0dHA6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL2xhdGVz
dC9vdXRwdXQuaHRtbCkgZm9yIG1vcmUgZGV0YWlscy4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTog
SFRNTC1DU1MgKHdoaWNoIGlzIHNsb3dlciwgYnV0IGhhcyB0aGUgYmVzdAorIyBjb21wYXRpYmls
aXR5KSwgTmF0aXZlTU1MIChpLmUuIE1hdGhNTCkgYW5kIFNWRy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IEhUTUwtQ1NTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01B
VEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9GT1JNQVQgICAgICAgICA9IEhUTUwtQ1NT
CisKKyMgV2hlbiBNYXRoSmF4IGlzIGVuYWJsZWQgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgbG9j
YXRpb24gcmVsYXRpdmUgdG8gdGhlIEhUTUwKKyMgb3V0cHV0IGRpcmVjdG9yeSB1c2luZyB0aGUg
TUFUSEpBWF9SRUxQQVRIIG9wdGlvbi4gVGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeQorIyBzaG91
bGQgY29udGFpbiB0aGUgTWF0aEpheC5qcyBzY3JpcHQuIEZvciBpbnN0YW5jZSwgaWYgdGhlIG1h
dGhqYXggZGlyZWN0b3J5CisjIGlzIGxvY2F0ZWQgYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIEhU
TUwgb3V0cHV0IGRpcmVjdG9yeSwgdGhlbgorIyBNQVRISkFYX1JFTFBBVEggc2hvdWxkIGJlIC4u
L21hdGhqYXguIFRoZSBkZWZhdWx0IHZhbHVlIHBvaW50cyB0byB0aGUgTWF0aEpheAorIyBDb250
ZW50IERlbGl2ZXJ5IE5ldHdvcmsgc28geW91IGNhbiBxdWlja2x5IHNlZSB0aGUgcmVzdWx0IHdp
dGhvdXQgaW5zdGFsbGluZworIyBNYXRoSmF4LiBIb3dldmVyLCBpdCBpcyBzdHJvbmdseSByZWNv
bW1lbmRlZCB0byBpbnN0YWxsIGEgbG9jYWwgY29weSBvZgorIyBNYXRoSmF4IGZyb20gaHR0cDov
L3d3dy5tYXRoamF4Lm9yZyBiZWZvcmUgZGVwbG95bWVudC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0aGpheC9sYXRlc3QuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBVU0VfTUFUSEpBWCBpcyBzZXQgdG8gWUVTLgorCitNQVRISkFY
X1JFTFBBVEggICAgICAgID0gaHR0cDovL2Nkbi5tYXRoamF4Lm9yZy9tYXRoamF4L2xhdGVzdAor
CisjIFRoZSBNQVRISkFYX0VYVEVOU0lPTlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25l
IG9yIG1vcmUgTWF0aEpheAorIyBleHRlbnNpb24gbmFtZXMgdGhhdCBzaG91bGQgYmUgZW5hYmxl
ZCBkdXJpbmcgTWF0aEpheCByZW5kZXJpbmcuIEZvciBleGFtcGxlCisjIE1BVEhKQVhfRVhURU5T
SU9OUyA9IFRlWC9BTVNtYXRoIFRlWC9BTVNzeW1ib2xzCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBVU0VfTUFUSEpBWCBpcyBzZXQgdG8gWUVTLgorCitNQVRISkFYX0VYVEVOU0lP
TlMgICAgID0KKworIyBUaGUgTUFUSEpBWF9DT0RFRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBhIGZpbGUgd2l0aCBqYXZhc2NyaXB0IHBpZWNlcworIyBvZiBjb2RlIHRoYXQgd2lsbCBi
ZSB1c2VkIG9uIHN0YXJ0dXAgb2YgdGhlIE1hdGhKYXggY29kZS4gU2VlIHRoZSBNYXRoSmF4IHNp
dGUKKyMgKHNlZTogaHR0cDovL2RvY3MubWF0aGpheC5vcmcvZW4vbGF0ZXN0L291dHB1dC5odG1s
KSBmb3IgbW9yZSBkZXRhaWxzLiBGb3IgYW4KKyMgZXhhbXBsZSBzZWUgdGhlIGRvY3VtZW50YXRp
b24uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBVU0VfTUFUSEpBWCBpcyBzZXQg
dG8gWUVTLgorCitNQVRISkFYX0NPREVGSUxFICAgICAgID0KKworIyBXaGVuIHRoZSBTRUFSQ0hF
TkdJTkUgdGFnIGlzIGVuYWJsZWQgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc2VhcmNoIGJveCBm
b3IKKyMgdGhlIEhUTUwgb3V0cHV0LiBUaGUgdW5kZXJseWluZyBzZWFyY2ggZW5naW5lIHVzZXMg
amF2YXNjcmlwdCBhbmQgREhUTUwgYW5kCisjIHNob3VsZCB3b3JrIG9uIGFueSBtb2Rlcm4gYnJv
d3Nlci4gTm90ZSB0aGF0IHdoZW4gdXNpbmcgSFRNTCBoZWxwCisjIChHRU5FUkFURV9IVE1MSEVM
UCksIFF0IGhlbHAgKEdFTkVSQVRFX1FIUCksIG9yIGRvY3NldHMgKEdFTkVSQVRFX0RPQ1NFVCkK
KyMgdGhlcmUgaXMgYWxyZWFkeSBhIHNlYXJjaCBmdW5jdGlvbiBzbyB0aGlzIG9uZSBzaG91bGQg
dHlwaWNhbGx5IGJlIGRpc2FibGVkLgorIyBGb3IgbGFyZ2UgcHJvamVjdHMgdGhlIGphdmFzY3Jp
cHQgYmFzZWQgc2VhcmNoIGVuZ2luZSBjYW4gYmUgc2xvdywgdGhlbgorIyBlbmFibGluZyBTRVJW
RVJfQkFTRURfU0VBUkNIIG1heSBwcm92aWRlIGEgYmV0dGVyIHNvbHV0aW9uLiBJdCBpcyBwb3Nz
aWJsZSB0bworIyBzZWFyY2ggdXNpbmcgdGhlIGtleWJvYXJkOyB0byBqdW1wIHRvIHRoZSBzZWFy
Y2ggYm94IHVzZSA8YWNjZXNzIGtleT4gKyBTCisjICh3aGF0IHRoZSA8YWNjZXNzIGtleT4gaXMg
ZGVwZW5kcyBvbiB0aGUgT1MgYW5kIGJyb3dzZXIsIGJ1dCBpdCBpcyB0eXBpY2FsbHkKKyMgPENU
Ukw+LCA8QUxUPi88b3B0aW9uPiwgb3IgYm90aCkuIEluc2lkZSB0aGUgc2VhcmNoIGJveCB1c2Ug
dGhlIDxjdXJzb3IgZG93bgorIyBrZXk+IHRvIGp1bXAgaW50byB0aGUgc2VhcmNoIHJlc3VsdHMg
d2luZG93LCB0aGUgcmVzdWx0cyBjYW4gYmUgbmF2aWdhdGVkCisjIHVzaW5nIHRoZSA8Y3Vyc29y
IGtleXM+LiBQcmVzcyA8RW50ZXI+IHRvIHNlbGVjdCBhbiBpdGVtIG9yIDxlc2NhcGU+IHRvIGNh
bmNlbAorIyB0aGUgc2VhcmNoLiBUaGUgZmlsdGVyIG9wdGlvbnMgY2FuIGJlIHNlbGVjdGVkIHdo
ZW4gdGhlIGN1cnNvciBpcyBpbnNpZGUgdGhlCisjIHNlYXJjaCBib3ggYnkgcHJlc3NpbmcgPFNo
aWZ0Pis8Y3Vyc29yIGRvd24+LiBBbHNvIGhlcmUgdXNlIHRoZSA8Y3Vyc29yIGtleXM+CisjIHRv
IHNlbGVjdCBhIGZpbHRlciBhbmQgPEVudGVyPiBvciA8ZXNjYXBlPiB0byBhY3RpdmF0ZSBvciBj
YW5jZWwgdGhlIGZpbHRlcgorIyBvcHRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0
byBZRVMuCiAKLUdFTkVSQVRFX1RSRUVWSUVXICAgICAgPSBOTworU0VBUkNIRU5HSU5FICAgICAg
ICAgICA9IE5PCiAKLSMgSWYgdGhlIHRyZWV2aWV3IGlzIGVuYWJsZWQgKHNlZSBHRU5FUkFURV9U
UkVFVklFVykgdGhlbiB0aGlzIHRhZyBjYW4gYmUgCi0jIHVzZWQgdG8gc2V0IHRoZSBpbml0aWFs
IHdpZHRoIChpbiBwaXhlbHMpIG9mIHRoZSBmcmFtZSBpbiB3aGljaCB0aGUgdHJlZSAKLSMgaXMg
c2hvd24uCisjIFdoZW4gdGhlIFNFUlZFUl9CQVNFRF9TRUFSQ0ggdGFnIGlzIGVuYWJsZWQgdGhl
IHNlYXJjaCBlbmdpbmUgd2lsbCBiZQorIyBpbXBsZW1lbnRlZCB1c2luZyBhIHdlYiBzZXJ2ZXIg
aW5zdGVhZCBvZiBhIHdlYiBjbGllbnQgdXNpbmcgSmF2YVNjcmlwdC4gVGhlcmUKKyMgYXJlIHR3
byBmbGF2b3VycyBvZiB3ZWIgc2VydmVyIGJhc2VkIHNlYXJjaGluZyBkZXBlbmRpbmcgb24gdGhl
CisjIEVYVEVSTkFMX1NFQVJDSCBzZXR0aW5nLiBXaGVuIGRpc2FibGVkLCBkb3h5Z2VuIHdpbGwg
Z2VuZXJhdGUgYSBQSFAgc2NyaXB0IGZvcgorIyBzZWFyY2hpbmcgYW5kIGFuIGluZGV4IGZpbGUg
dXNlZCBieSB0aGUgc2NyaXB0LiBXaGVuIEVYVEVSTkFMX1NFQVJDSCBpcworIyBlbmFibGVkIHRo
ZSBpbmRleGluZyBhbmQgc2VhcmNoaW5nIG5lZWRzIHRvIGJlIHByb3ZpZGVkIGJ5IGV4dGVybmFs
IHRvb2xzLiBTZWUKKyMgdGhlIHNlY3Rpb24gIkV4dGVybmFsIEluZGV4aW5nIGFuZCBTZWFyY2hp
bmciIGZvciBkZXRhaWxzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4KKworU0VS
VkVSX0JBU0VEX1NFQVJDSCAgICA9IE5PCisKKyMgV2hlbiBFWFRFUk5BTF9TRUFSQ0ggdGFnIGlz
IGVuYWJsZWQgZG94eWdlbiB3aWxsIG5vIGxvbmdlciBnZW5lcmF0ZSB0aGUgUEhQCisjIHNjcmlw
dCBmb3Igc2VhcmNoaW5nLiBJbnN0ZWFkIHRoZSBzZWFyY2ggcmVzdWx0cyBhcmUgd3JpdHRlbiB0
byBhbiBYTUwgZmlsZQorIyB3aGljaCBuZWVkcyB0byBiZSBwcm9jZXNzZWQgYnkgYW4gZXh0ZXJu
YWwgaW5kZXhlci4gRG94eWdlbiB3aWxsIGludm9rZSBhbgorIyBleHRlcm5hbCBzZWFyY2ggZW5n
aW5lIHBvaW50ZWQgdG8gYnkgdGhlIFNFQVJDSEVOR0lORV9VUkwgb3B0aW9uIHRvIG9idGFpbiB0
aGUKKyMgc2VhcmNoIHJlc3VsdHMuCisjCisjIERveHlnZW4gc2hpcHMgd2l0aCBhbiBleGFtcGxl
IGluZGV4ZXIgKCBkb3h5aW5kZXhlcikgYW5kIHNlYXJjaCBlbmdpbmUKKyMgKGRveHlzZWFyY2gu
Y2dpKSB3aGljaCBhcmUgYmFzZWQgb24gdGhlIG9wZW4gc291cmNlIHNlYXJjaCBlbmdpbmUgbGli
cmFyeQorIyBYYXBpYW4gKHNlZTogaHR0cDovL3hhcGlhbi5vcmcvKS4KKyMKKyMgU2VlIHRoZSBz
ZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBhbmQgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCiAKLVRSRUVWSUVXX1dJRFRIICAgICAgICAg
PSAyNTAKK0VYVEVSTkFMX1NFQVJDSCAgICAgICAgPSBOTwogCi0jIFVzZSB0aGlzIHRhZyB0byBj
aGFuZ2UgdGhlIGZvbnQgc2l6ZSBvZiBMYXRleCBmb3JtdWxhcyBpbmNsdWRlZCAKLSMgYXMgaW1h
Z2VzIGluIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uIFRoZSBkZWZhdWx0IGlzIDEwLiBOb3RlIHRo
YXQgCi0jIHdoZW4geW91IGNoYW5nZSB0aGUgZm9udCBzaXplIGFmdGVyIGEgc3VjY2Vzc2Z1bCBk
b3h5Z2VuIHJ1biB5b3UgbmVlZCAKLSMgdG8gbWFudWFsbHkgcmVtb3ZlIGFueSBmb3JtXyoucG5n
IGltYWdlcyBmcm9tIHRoZSBIVE1MIG91dHB1dCBkaXJlY3RvcnkgCi0jIHRvIGZvcmNlIHRoZW0g
dG8gYmUgcmVnZW5lcmF0ZWQuCisjIFRoZSBTRUFSQ0hFTkdJTkVfVVJMIHNob3VsZCBwb2ludCB0
byBhIHNlYXJjaCBlbmdpbmUgaG9zdGVkIGJ5IGEgd2ViIHNlcnZlcgorIyB3aGljaCB3aWxsIHJl
dHVybiB0aGUgc2VhcmNoIHJlc3VsdHMgd2hlbiBFWFRFUk5BTF9TRUFSQ0ggaXMgZW5hYmxlZC4K
KyMKKyMgRG94eWdlbiBzaGlwcyB3aXRoIGFuIGV4YW1wbGUgaW5kZXhlciAoIGRveHlpbmRleGVy
KSBhbmQgc2VhcmNoIGVuZ2luZQorIyAoZG94eXNlYXJjaC5jZ2kpIHdoaWNoIGFyZSBiYXNlZCBv
biB0aGUgb3BlbiBzb3VyY2Ugc2VhcmNoIGVuZ2luZSBsaWJyYXJ5CisjIFhhcGlhbiAoc2VlOiBo
dHRwOi8veGFwaWFuLm9yZy8pLiBTZWUgdGhlIHNlY3Rpb24gIkV4dGVybmFsIEluZGV4aW5nIGFu
ZAorIyBTZWFyY2hpbmciIGZvciBkZXRhaWxzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCiAKLUZPUk1VTEFfRk9OVFNJWkUgICAg
ICAgPSAxMAorU0VBUkNIRU5HSU5FX1VSTCAgICAgICA9CisKKyMgV2hlbiBTRVJWRVJfQkFTRURf
U0VBUkNIIGFuZCBFWFRFUk5BTF9TRUFSQ0ggYXJlIGJvdGggZW5hYmxlZCB0aGUgdW5pbmRleGVk
CisjIHNlYXJjaCBkYXRhIGlzIHdyaXR0ZW4gdG8gYSBmaWxlIGZvciBpbmRleGluZyBieSBhbiBl
eHRlcm5hbCB0b29sLiBXaXRoIHRoZQorIyBTRUFSQ0hEQVRBX0ZJTEUgdGFnIHRoZSBuYW1lIG9m
IHRoaXMgZmlsZSBjYW4gYmUgc3BlY2lmaWVkLgorIyBUaGUgZGVmYXVsdCBmaWxlIGlzOiBzZWFy
Y2hkYXRhLnhtbC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lO
RSBpcyBzZXQgdG8gWUVTLgorCitTRUFSQ0hEQVRBX0ZJTEUgICAgICAgID0gc2VhcmNoZGF0YS54
bWwKKworIyBXaGVuIFNFUlZFUl9CQVNFRF9TRUFSQ0ggYW5kIEVYVEVSTkFMX1NFQVJDSCBhcmUg
Ym90aCBlbmFibGVkIHRoZQorIyBFWFRFUk5BTF9TRUFSQ0hfSUQgdGFnIGNhbiBiZSB1c2VkIGFz
IGFuIGlkZW50aWZpZXIgZm9yIHRoZSBwcm9qZWN0LiBUaGlzIGlzCisjIHVzZWZ1bCBpbiBjb21i
aW5hdGlvbiB3aXRoIEVYVFJBX1NFQVJDSF9NQVBQSU5HUyB0byBzZWFyY2ggdGhyb3VnaCBtdWx0
aXBsZQorIyBwcm9qZWN0cyBhbmQgcmVkaXJlY3QgdGhlIHJlc3VsdHMgYmFjayB0byB0aGUgcmln
aHQgcHJvamVjdC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lO
RSBpcyBzZXQgdG8gWUVTLgorCitFWFRFUk5BTF9TRUFSQ0hfSUQgICAgID0KKworIyBUaGUgRVhU
UkFfU0VBUkNIX01BUFBJTkdTIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgc2VhcmNoaW5nIHRo
cm91Z2ggZG94eWdlbgorIyBwcm9qZWN0cyBvdGhlciB0aGFuIHRoZSBvbmUgZGVmaW5lZCBieSB0
aGlzIGNvbmZpZ3VyYXRpb24gZmlsZSwgYnV0IHRoYXQgYXJlCisjIGFsbCBhZGRlZCB0byB0aGUg
c2FtZSBleHRlcm5hbCBzZWFyY2ggaW5kZXguIEVhY2ggcHJvamVjdCBuZWVkcyB0byBoYXZlIGEK
KyMgdW5pcXVlIGlkIHNldCB2aWEgRVhURVJOQUxfU0VBUkNIX0lELiBUaGUgc2VhcmNoIG1hcHBp
bmcgdGhlbiBtYXBzIHRoZSBpZCBvZgorIyB0byBhIHJlbGF0aXZlIGxvY2F0aW9uIHdoZXJlIHRo
ZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZC4gVGhlIGZvcm1hdCBpczoKKyMgRVhUUkFfU0VB
UkNIX01BUFBJTkdTID0gdGFnbmFtZTE9bG9jMSB0YWduYW1lMj1sb2MyIC4uLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCisKK0VY
VFJBX1NFQVJDSF9NQVBQSU5HUyAgPQogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNvbmZpZ3Vy
YXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBMYVRlWCBvdXRwdXQKKyMgQ29uZmlndXJhdGlv
biBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIExhVGVYIG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi0jIElmIHRoZSBHRU5FUkFURV9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1
bHQpIERveHlnZW4gd2lsbCAKLSMgZ2VuZXJhdGUgTGF0ZXggb3V0cHV0LgorIyBJZiB0aGUgR0VO
RVJBVEVfTEFURVggdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIExhVGVY
IG91dHB1dC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogR0VORVJBVEVfTEFURVgg
ICAgICAgICA9IE5PCiAKLSMgVGhlIExBVEVYX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5
IHdoZXJlIHRoZSBMYVRlWCBkb2NzIHdpbGwgYmUgcHV0LiAKLSMgSWYgYSByZWxhdGl2ZSBwYXRo
IGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSAKLSMgcHV0
IGluIGZyb250IG9mIGl0LiBJZiBsZWZ0IGJsYW5rIGBsYXRleCcgd2lsbCBiZSB1c2VkIGFzIHRo
ZSBkZWZhdWx0IHBhdGguCisjIFRoZSBMQVRFWF9PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lm
eSB3aGVyZSB0aGUgTGFUZVggZG9jcyB3aWxsIGJlIHB1dC4gSWYgYQorIyByZWxhdGl2ZSBwYXRo
IGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4g
ZnJvbnQgb2YKKyMgaXQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogbGF0ZXguCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVT
LgogCiBMQVRFWF9PVVRQVVQgICAgICAgICAgID0gbGF0ZXgKIAotIyBUaGUgTEFURVhfQ01EX05B
TUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIExhVGVYIGNvbW1hbmQgbmFtZSB0byBi
ZSAKLSMgaW52b2tlZC4gSWYgbGVmdCBibGFuayBgbGF0ZXgnIHdpbGwgYmUgdXNlZCBhcyB0aGUg
ZGVmYXVsdCBjb21tYW5kIG5hbWUuCisjIFRoZSBMQVRFWF9DTURfTkFNRSB0YWcgY2FuIGJlIHVz
ZWQgdG8gc3BlY2lmeSB0aGUgTGFUZVggY29tbWFuZCBuYW1lIHRvIGJlCisjIGludm9rZWQuCisj
CisjIE5vdGUgdGhhdCB3aGVuIGVuYWJsaW5nIFVTRV9QREZMQVRFWCB0aGlzIG9wdGlvbiBpcyBv
bmx5IHVzZWQgZm9yIGdlbmVyYXRpbmcKKyMgYml0bWFwcyBmb3IgZm9ybXVsYXMgaW4gdGhlIEhU
TUwgb3V0cHV0LCBidXQgbm90IGluIHRoZSBNYWtlZmlsZSB0aGF0IGlzCisjIHdyaXR0ZW4gdG8g
dGhlIG91dHB1dCBkaXJlY3RvcnkuCisjIFRoZSBkZWZhdWx0IGZpbGUgaXM6IGxhdGV4LgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlF
Uy4KIAogTEFURVhfQ01EX05BTUUgICAgICAgICA9IGxhdGV4CiAKLSMgVGhlIE1BS0VJTkRFWF9D
TURfTkFNRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgY29tbWFuZCBuYW1lIHRvIAot
IyBnZW5lcmF0ZSBpbmRleCBmb3IgTGFUZVguIElmIGxlZnQgYmxhbmsgYG1ha2VpbmRleCcgd2ls
bCBiZSB1c2VkIGFzIHRoZSAKLSMgZGVmYXVsdCBjb21tYW5kIG5hbWUuCisjIFRoZSBNQUtFSU5E
RVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNvbW1hbmQgbmFtZSB0
byBnZW5lcmF0ZQorIyBpbmRleCBmb3IgTGFUZVguCisjIFRoZSBkZWZhdWx0IGZpbGUgaXM6IG1h
a2VpbmRleC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVY
IGlzIHNldCB0byBZRVMuCiAKIE1BS0VJTkRFWF9DTURfTkFNRSAgICAgPSBtYWtlaW5kZXgKIAot
IyBJZiB0aGUgQ09NUEFDVF9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIGdlbmVyYXRl
cyBtb3JlIGNvbXBhY3QgCi0jIExhVGVYIGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVsIGZv
ciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gCi0jIHNhdmUgc29tZSB0cmVlcyBpbiBn
ZW5lcmFsLgorIyBJZiB0aGUgQ09NUEFDVF9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2Vu
IGdlbmVyYXRlcyBtb3JlIGNvbXBhY3QgTGFUZVgKKyMgZG9jdW1lbnRzLiBUaGlzIG1heSBiZSB1
c2VmdWwgZm9yIHNtYWxsIHByb2plY3RzIGFuZCBtYXkgaGVscCB0byBzYXZlIHNvbWUKKyMgdHJl
ZXMgaW4gZ2VuZXJhbC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogQ09N
UEFDVF9MQVRFWCAgICAgICAgICA9IE5PCiAKLSMgVGhlIFBBUEVSX1RZUEUgdGFnIGNhbiBiZSB1
c2VkIHRvIHNldCB0aGUgcGFwZXIgdHlwZSB0aGF0IGlzIHVzZWQgCi0jIGJ5IHRoZSBwcmludGVy
LiBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBhNCwgYTR3aWRlLCBsZXR0ZXIsIGxlZ2FsIGFuZCAKLSMg
ZXhlY3V0aXZlLiBJZiBsZWZ0IGJsYW5rIGE0d2lkZSB3aWxsIGJlIHVzZWQuCisjIFRoZSBQQVBF
Ul9UWVBFIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIHBhcGVyIHR5cGUgdGhhdCBpcyB1c2Vk
IGJ5IHRoZQorIyBwcmludGVyLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBhNCAoMjEwIHggMjk3
IG1tKSwgbGV0dGVyICg4LjUgeCAxMSBpbmNoZXMpLCBsZWdhbCAoOC41IHgKKyMgMTQgaW5jaGVz
KSBhbmQgZXhlY3V0aXZlICg3LjI1IHggMTAuNSBpbmNoZXMpLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogYTQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRF
WCBpcyBzZXQgdG8gWUVTLgogCiBQQVBFUl9UWVBFICAgICAgICAgICAgID0gYTR3aWRlCiAKLSMg
VGhlIEVYVFJBX1BBQ0tBR0VTIHRhZyBjYW4gYmUgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBuYW1l
cyBvZiBMYVRlWCAKLSMgcGFja2FnZXMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIExh
VGVYIG91dHB1dC4KKyMgVGhlIEVYVFJBX1BBQ0tBR0VTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVj
aWZ5IG9uZSBvciBtb3JlIExhVGVYIHBhY2thZ2UgbmFtZXMKKyMgdGhhdCBzaG91bGQgYmUgaW5j
bHVkZWQgaW4gdGhlIExhVGVYIG91dHB1dC4gVG8gZ2V0IHRoZSB0aW1lcyBmb250IGZvcgorIyBp
bnN0YW5jZSB5b3UgY2FuIHNwZWNpZnkKKyMgRVhUUkFfUEFDS0FHRVM9dGltZXMKKyMgSWYgbGVm
dCBibGFuayBubyBleHRyYSBwYWNrYWdlcyB3aWxsIGJlIGluY2x1ZGVkLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworRVhU
UkFfUEFDS0FHRVMgICAgICAgICA9CisKKyMgVGhlIExBVEVYX0hFQURFUiB0YWcgY2FuIGJlIHVz
ZWQgdG8gc3BlY2lmeSBhIHBlcnNvbmFsIExhVGVYIGhlYWRlciBmb3IgdGhlCisjIGdlbmVyYXRl
ZCBMYVRlWCBkb2N1bWVudC4gVGhlIGhlYWRlciBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIHVu
dGlsIHRoZSBmaXJzdAorIyBjaGFwdGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2ls
bCBnZW5lcmF0ZSBhIHN0YW5kYXJkIGhlYWRlci4gU2VlCisjIHNlY3Rpb24gIkRveHlnZW4gdXNh
Z2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gbGV0IGRveHlnZW4gd3JpdGUgdGhlCisjIGRl
ZmF1bHQgaGVhZGVyIHRvIGEgc2VwYXJhdGUgZmlsZS4KKyMKKyMgTm90ZTogT25seSB1c2UgYSB1
c2VyLWRlZmluZWQgaGVhZGVyIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyEgVGhlCisj
IGZvbGxvd2luZyBjb21tYW5kcyBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nIGluc2lkZSB0aGUgaGVh
ZGVyOiAkdGl0bGUsCisjICRkYXRldGltZSwgJGRhdGUsICRkb3h5Z2VudmVyc2lvbiwgJHByb2pl
Y3RuYW1lLCAkcHJvamVjdG51bWJlci4gRG94eWdlbiB3aWxsCisjIHJlcGxhY2UgdGhlbSBieSBy
ZXNwZWN0aXZlbHkgdGhlIHRpdGxlIG9mIHRoZSBwYWdlLCB0aGUgY3VycmVudCBkYXRlIGFuZCB0
aW1lLAorIyBvbmx5IHRoZSBjdXJyZW50IGRhdGUsIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBkb3h5
Z2VuLCB0aGUgcHJvamVjdCBuYW1lIChzZWUKKyMgUFJPSkVDVF9OQU1FKSwgb3IgdGhlIHByb2pl
Y3QgbnVtYmVyIChzZWUgUFJPSkVDVF9OVU1CRVIpLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworTEFURVhfSEVBREVSICAg
ICAgICAgICA9CisKKyMgVGhlIExBVEVYX0ZPT1RFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBhIHBlcnNvbmFsIExhVGVYIGZvb3RlciBmb3IgdGhlCisjIGdlbmVyYXRlZCBMYVRlWCBkb2N1
bWVudC4gVGhlIGZvb3RlciBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIGFmdGVyIHRoZSBsYXN0
CisjIGNoYXB0ZXIuIElmIGl0IGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEg
c3RhbmRhcmQgZm9vdGVyLgorIworIyBOb3RlOiBPbmx5IHVzZSBhIHVzZXItZGVmaW5lZCBmb290
ZXIgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIQorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAotRVhUUkFfUEFDS0FH
RVMgICAgICAgICA9IAorTEFURVhfRk9PVEVSICAgICAgICAgICA9CiAKLSMgVGhlIExBVEVYX0hF
QURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBlcnNvbmFsIExhVGVYIGhlYWRlciBm
b3IgCi0jIHRoZSBnZW5lcmF0ZWQgbGF0ZXggZG9jdW1lbnQuIFRoZSBoZWFkZXIgc2hvdWxkIGNv
bnRhaW4gZXZlcnl0aGluZyB1bnRpbCAKLSMgdGhlIGZpcnN0IGNoYXB0ZXIuIElmIGl0IGlzIGxl
ZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgCi0jIHN0YW5kYXJkIGhlYWRlci4gTm90
aWNlOiBvbmx5IHVzZSB0aGlzIHRhZyBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchCisj
IFRoZSBMQVRFWF9FWFRSQV9GSUxFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3Ig
bW9yZSBleHRyYSBpbWFnZXMgb3IKKyMgb3RoZXIgc291cmNlIGZpbGVzIHdoaWNoIHNob3VsZCBi
ZSBjb3BpZWQgdG8gdGhlIExBVEVYX09VVFBVVCBvdXRwdXQKKyMgZGlyZWN0b3J5LiBOb3RlIHRo
YXQgdGhlIGZpbGVzIHdpbGwgYmUgY29waWVkIGFzLWlzOyB0aGVyZSBhcmUgbm8gY29tbWFuZHMg
b3IKKyMgbWFya2VycyBhdmFpbGFibGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCi1MQVRFWF9IRUFERVIgICAgICAgICAg
ID0gCitMQVRFWF9FWFRSQV9GSUxFUyAgICAgID0KIAotIyBJZiB0aGUgUERGX0hZUEVSTElOS1Mg
dGFnIGlzIHNldCB0byBZRVMsIHRoZSBMYVRlWCB0aGF0IGlzIGdlbmVyYXRlZCAKLSMgaXMgcHJl
cGFyZWQgZm9yIGNvbnZlcnNpb24gdG8gcGRmICh1c2luZyBwczJwZGYpLiBUaGUgcGRmIGZpbGUg
d2lsbCAKLSMgY29udGFpbiBsaW5rcyAoanVzdCBsaWtlIHRoZSBIVE1MIG91dHB1dCkgaW5zdGVh
ZCBvZiBwYWdlIHJlZmVyZW5jZXMgCi0jIFRoaXMgbWFrZXMgdGhlIG91dHB1dCBzdWl0YWJsZSBm
b3Igb25saW5lIGJyb3dzaW5nIHVzaW5nIGEgcGRmIHZpZXdlci4KKyMgSWYgdGhlIFBERl9IWVBF
UkxJTktTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgTGFUZVggdGhhdCBpcyBnZW5lcmF0ZWQgaXMK
KyMgcHJlcGFyZWQgZm9yIGNvbnZlcnNpb24gdG8gUERGICh1c2luZyBwczJwZGYgb3IgcGRmbGF0
ZXgpLiBUaGUgUERGIGZpbGUgd2lsbAorIyBjb250YWluIGxpbmtzIChqdXN0IGxpa2UgdGhlIEhU
TUwgb3V0cHV0KSBpbnN0ZWFkIG9mIHBhZ2UgcmVmZXJlbmNlcy4gVGhpcworIyBtYWtlcyB0aGUg
b3V0cHV0IHN1aXRhYmxlIGZvciBvbmxpbmUgYnJvd3NpbmcgdXNpbmcgYSBQREYgdmlld2VyLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogUERGX0hZUEVSTElOS1MgICAg
ICAgICA9IE5PCiAKLSMgSWYgdGhlIFVTRV9QREZMQVRFWCB0YWcgaXMgc2V0IHRvIFlFUywgcGRm
bGF0ZXggd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgCi0jIHBsYWluIGxhdGV4IGluIHRoZSBnZW5l
cmF0ZWQgTWFrZWZpbGUuIFNldCB0aGlzIG9wdGlvbiB0byBZRVMgdG8gZ2V0IGEgCisjIElmIHRo
ZSBMQVRFWF9QREZMQVRFWCB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIHVzZSBwZGZs
YXRleCB0byBnZW5lcmF0ZQorIyB0aGUgUERGIGZpbGUgZGlyZWN0bHkgZnJvbSB0aGUgTGFUZVgg
ZmlsZXMuIFNldCB0aGlzIG9wdGlvbiB0byBZRVMgdG8gZ2V0IGEKICMgaGlnaGVyIHF1YWxpdHkg
UERGIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgog
CiBVU0VfUERGTEFURVggICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgTEFURVhfQkFUQ0hNT0RF
IHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgYWRkIHRoZSBcXGJhdGNobW9kZS4gCi0j
IGNvbW1hbmQgdG8gdGhlIGdlbmVyYXRlZCBMYVRlWCBmaWxlcy4gVGhpcyB3aWxsIGluc3RydWN0
IExhVGVYIHRvIGtlZXAgCi0jIHJ1bm5pbmcgaWYgZXJyb3JzIG9jY3VyLCBpbnN0ZWFkIG9mIGFz
a2luZyB0aGUgdXNlciBmb3IgaGVscC4gCi0jIFRoaXMgb3B0aW9uIGlzIGFsc28gdXNlZCB3aGVu
IGdlbmVyYXRpbmcgZm9ybXVsYXMgaW4gSFRNTC4KKyMgSWYgdGhlIExBVEVYX0JBVENITU9ERSB0
YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGFkZCB0aGUgXGJhdGNobW9kZQorIyBjb21t
YW5kIHRvIHRoZSBnZW5lcmF0ZWQgTGFUZVggZmlsZXMuIFRoaXMgd2lsbCBpbnN0cnVjdCBMYVRl
WCB0byBrZWVwIHJ1bm5pbmcKKyMgaWYgZXJyb3JzIG9jY3VyLCBpbnN0ZWFkIG9mIGFza2luZyB0
aGUgdXNlciBmb3IgaGVscC4gVGhpcyBvcHRpb24gaXMgYWxzbyB1c2VkCisjIHdoZW4gZ2VuZXJh
dGluZyBmb3JtdWxhcyBpbiBIVE1MLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVT
LgogCiBMQVRFWF9CQVRDSE1PREUgICAgICAgID0gTk8KIAotIyBJZiBMQVRFWF9ISURFX0lORElD
RVMgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBub3QgCi0jIGluY2x1ZGUgdGhlIGlu
ZGV4IGNoYXB0ZXJzIChzdWNoIGFzIEZpbGUgSW5kZXgsIENvbXBvdW5kIEluZGV4LCBldGMuKSAK
LSMgaW4gdGhlIG91dHB1dC4KKyMgSWYgdGhlIExBVEVYX0hJREVfSU5ESUNFUyB0YWcgaXMgc2V0
IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBub3QgaW5jbHVkZSB0aGUKKyMgaW5kZXggY2hhcHRl
cnMgKHN1Y2ggYXMgRmlsZSBJbmRleCwgQ29tcG91bmQgSW5kZXgsIGV0Yy4pIGluIHRoZSBvdXRw
dXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIExBVEVYX0hJREVfSU5E
SUNFUyAgICAgPSBOTwogCi0jIElmIExBVEVYX1NPVVJDRV9DT0RFIGlzIHNldCB0byBZRVMgdGhl
biBkb3h5Z2VuIHdpbGwgaW5jbHVkZSBzb3VyY2UgY29kZSB3aXRoIHN5bnRheCBoaWdobGlnaHRp
bmcgaW4gdGhlIExhVGVYIG91dHB1dC4gTm90ZSB0aGF0IHdoaWNoIHNvdXJjZXMgYXJlIHNob3du
IGFsc28gZGVwZW5kcyBvbiBvdGhlciBzZXR0aW5ncyBzdWNoIGFzIFNPVVJDRV9CUk9XU0VSLgor
IyBJZiB0aGUgTEFURVhfU09VUkNFX0NPREUgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2Vu
IHdpbGwgaW5jbHVkZSBzb3VyY2UKKyMgY29kZSB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgaW4g
dGhlIExhVGVYIG91dHB1dC4KKyMKKyMgTm90ZSB0aGF0IHdoaWNoIHNvdXJjZXMgYXJlIHNob3du
IGFsc28gZGVwZW5kcyBvbiBvdGhlciBzZXR0aW5ncyBzdWNoIGFzCisjIFNPVVJDRV9CUk9XU0VS
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCiBMQVRFWF9TT1VSQ0VfQ09E
RSAgICAgID0gTk8KIAorIyBUaGUgTEFURVhfQklCX1NUWUxFIHRhZyBjYW4gYmUgdXNlZCB0byBz
cGVjaWZ5IHRoZSBzdHlsZSB0byB1c2UgZm9yIHRoZQorIyBiaWJsaW9ncmFwaHksIGUuZy4gcGxh
aW5uYXQsIG9yIGllZWV0ci4gU2VlCisjIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmli
VGVYIGFuZCBcY2l0ZSBmb3IgbW9yZSBpbmZvLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogcGxh
aW4uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBz
ZXQgdG8gWUVTLgorCitMQVRFWF9CSUJfU1RZTEUgICAgICAgID0gcGxhaW4KKwogIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgUlRGIG91
dHB1dAorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgUlRGIG91dHB1dAog
Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9SVEYgdGFnIGlzIHNldCB0
byBZRVMgRG94eWdlbiB3aWxsIGdlbmVyYXRlIFJURiBvdXRwdXQgCi0jIFRoZSBSVEYgb3V0cHV0
IGlzIG9wdGltaXplZCBmb3IgV29yZCA5NyBhbmQgbWF5IG5vdCBsb29rIHZlcnkgcHJldHR5IHdp
dGggCi0jIG90aGVyIFJURiByZWFkZXJzIG9yIGVkaXRvcnMuCisjIElmIHRoZSBHRU5FUkFURV9S
VEYgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIFJURiBvdXRwdXQuIFRo
ZQorIyBSVEYgb3V0cHV0IGlzIG9wdGltaXplZCBmb3IgV29yZCA5NyBhbmQgbWF5IG5vdCBsb29r
IHRvbyBwcmV0dHkgd2l0aCBvdGhlciBSVEYKKyMgcmVhZGVycy9lZGl0b3JzLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogTk8uCiAKIEdFTkVSQVRFX1JURiAgICAgICAgICAgPSBOTwogCi0jIFRo
ZSBSVEZfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIFJURiBkb2NzIHdp
bGwgYmUgcHV0LiAKLSMgSWYgYSByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9m
IE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSAKLSMgcHV0IGluIGZyb250IG9mIGl0LiBJZiBsZWZ0
IGJsYW5rIGBydGYnIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBwYXRoLgorIyBUaGUgUlRG
X09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBSVEYgZG9jcyB3aWxsIGJl
IHB1dC4gSWYgYQorIyByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBV
VF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YKKyMgaXQuCisjIFRoZSBkZWZhdWx0
IGRpcmVjdG9yeSBpczogcnRmLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCiAKIFJURl9PVVRQVVQgICAgICAgICAgICAgPSBydGYK
IAotIyBJZiB0aGUgQ09NUEFDVF9SVEYgdGFnIGlzIHNldCB0byBZRVMgRG94eWdlbiBnZW5lcmF0
ZXMgbW9yZSBjb21wYWN0IAotIyBSVEYgZG9jdW1lbnRzLiBUaGlzIG1heSBiZSB1c2VmdWwgZm9y
IHNtYWxsIHByb2plY3RzIGFuZCBtYXkgaGVscCB0byAKLSMgc2F2ZSBzb21lIHRyZWVzIGluIGdl
bmVyYWwuCisjIElmIHRoZSBDT01QQUNUX1JURiB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIGdl
bmVyYXRlcyBtb3JlIGNvbXBhY3QgUlRGCisjIGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVs
IGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gc2F2ZSBzb21lCisjIHRyZWVzIGlu
IGdlbmVyYWwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQgdG8gWUVTLgogCiBDT01QQUNUX1JU
RiAgICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgUlRGX0hZUEVSTElOS1MgdGFnIGlzIHNldCB0
byBZRVMsIHRoZSBSVEYgdGhhdCBpcyBnZW5lcmF0ZWQgCi0jIHdpbGwgY29udGFpbiBoeXBlcmxp
bmsgZmllbGRzLiBUaGUgUlRGIGZpbGUgd2lsbCAKLSMgY29udGFpbiBsaW5rcyAoanVzdCBsaWtl
IHRoZSBIVE1MIG91dHB1dCkgaW5zdGVhZCBvZiBwYWdlIHJlZmVyZW5jZXMuIAotIyBUaGlzIG1h
a2VzIHRoZSBvdXRwdXQgc3VpdGFibGUgZm9yIG9ubGluZSBicm93c2luZyB1c2luZyBXT1JEIG9y
IG90aGVyIAotIyBwcm9ncmFtcyB3aGljaCBzdXBwb3J0IHRob3NlIGZpZWxkcy4gCi0jIE5vdGU6
IHdvcmRwYWQgKHdyaXRlKSBhbmQgb3RoZXJzIGRvIG5vdCBzdXBwb3J0IGxpbmtzLgorIyBJZiB0
aGUgUlRGX0hZUEVSTElOS1MgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBSVEYgdGhhdCBpcyBnZW5l
cmF0ZWQgd2lsbAorIyBjb250YWluIGh5cGVybGluayBmaWVsZHMuIFRoZSBSVEYgZmlsZSB3aWxs
IGNvbnRhaW4gbGlua3MgKGp1c3QgbGlrZSB0aGUgSFRNTAorIyBvdXRwdXQpIGluc3RlYWQgb2Yg
cGFnZSByZWZlcmVuY2VzLiBUaGlzIG1ha2VzIHRoZSBvdXRwdXQgc3VpdGFibGUgZm9yIG9ubGlu
ZQorIyBicm93c2luZyB1c2luZyBXb3JkIG9yIHNvbWUgb3RoZXIgV29yZCBjb21wYXRpYmxlIHJl
YWRlcnMgdGhhdCBzdXBwb3J0IHRob3NlCisjIGZpZWxkcy4KKyMKKyMgTm90ZTogV29yZFBhZCAo
d3JpdGUpIGFuZCBvdGhlcnMgZG8gbm90IHN1cHBvcnQgbGlua3MuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JU
RiBpcyBzZXQgdG8gWUVTLgogCiBSVEZfSFlQRVJMSU5LUyAgICAgICAgID0gTk8KIAotIyBMb2Fk
IHN0eWxlc2hlZXQgZGVmaW5pdGlvbnMgZnJvbSBmaWxlLiBTeW50YXggaXMgc2ltaWxhciB0byBk
b3h5Z2VuJ3MgCi0jIGNvbmZpZyBmaWxlLCBpLmUuIGEgc2VyaWVzIG9mIGFzc2lnbm1lbnRzLiBZ
b3Ugb25seSBoYXZlIHRvIHByb3ZpZGUgCi0jIHJlcGxhY2VtZW50cywgbWlzc2luZyBkZWZpbml0
aW9ucyBhcmUgc2V0IHRvIHRoZWlyIGRlZmF1bHQgdmFsdWUuCisjIExvYWQgc3R5bGVzaGVldCBk
ZWZpbml0aW9ucyBmcm9tIGZpbGUuIFN5bnRheCBpcyBzaW1pbGFyIHRvIGRveHlnZW4ncyBjb25m
aWcKKyMgZmlsZSwgaS5lLiBhIHNlcmllcyBvZiBhc3NpZ25tZW50cy4gWW91IG9ubHkgaGF2ZSB0
byBwcm92aWRlIHJlcGxhY2VtZW50cywKKyMgbWlzc2luZyBkZWZpbml0aW9ucyBhcmUgc2V0IHRv
IHRoZWlyIGRlZmF1bHQgdmFsdWUuCisjCisjIFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNh
Z2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlCisjIGRlZmF1bHQgc3R5
bGUgc2hlZXQgdGhhdCBkb3h5Z2VuIG5vcm1hbGx5IHVzZXMuCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KIAotUlRGX1NUWUxFU0hF
RVRfRklMRSAgICA9IAorUlRGX1NUWUxFU0hFRVRfRklMRSAgICA9CiAKLSMgU2V0IG9wdGlvbmFs
IHZhcmlhYmxlcyB1c2VkIGluIHRoZSBnZW5lcmF0aW9uIG9mIGFuIHJ0ZiBkb2N1bWVudC4gCi0j
IFN5bnRheCBpcyBzaW1pbGFyIHRvIGRveHlnZW4ncyBjb25maWcgZmlsZS4KKyMgU2V0IG9wdGlv
bmFsIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBnZW5lcmF0aW9uIG9mIGFuIFJURiBkb2N1bWVudC4g
U3ludGF4IGlzCisjIHNpbWlsYXIgdG8gZG94eWdlbidzIGNvbmZpZyBmaWxlLiBBIHRlbXBsYXRl
IGV4dGVuc2lvbnMgZmlsZSBjYW4gYmUgZ2VuZXJhdGVkCisjIHVzaW5nIGRveHlnZW4gLWUgcnRm
IGV4dGVuc2lvbkZpbGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9SVEYgaXMgc2V0IHRvIFlFUy4KIAotUlRGX0VYVEVOU0lPTlNfRklMRSAgICA9IAorUlRGX0VY
VEVOU0lPTlNfRklMRSAgICA9CiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgY29uZmlndXJhdGlv
biBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIG1hbiBwYWdlIG91dHB1dAorIyBDb25maWd1cmF0aW9u
IG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgbWFuIHBhZ2Ugb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX01BTiB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1
bHQpIERveHlnZW4gd2lsbCAKLSMgZ2VuZXJhdGUgbWFuIHBhZ2VzCisjIElmIHRoZSBHRU5FUkFU
RV9NQU4gdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIG1hbiBwYWdlcyBm
b3IKKyMgY2xhc3NlcyBhbmQgZmlsZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAog
R0VORVJBVEVfTUFOICAgICAgICAgICA9IE5PCiAKLSMgVGhlIE1BTl9PVVRQVVQgdGFnIGlzIHVz
ZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgbWFuIHBhZ2VzIHdpbGwgYmUgcHV0LiAKLSMgSWYgYSBy
ZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2ls
bCBiZSAKLSMgcHV0IGluIGZyb250IG9mIGl0LiBJZiBsZWZ0IGJsYW5rIGBtYW4nIHdpbGwgYmUg
dXNlZCBhcyB0aGUgZGVmYXVsdCBwYXRoLgorIyBUaGUgTUFOX09VVFBVVCB0YWcgaXMgdXNlZCB0
byBzcGVjaWZ5IHdoZXJlIHRoZSBtYW4gcGFnZXMgd2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRp
dmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUg
cHV0IGluIGZyb250IG9mCisjIGl0LiBBIGRpcmVjdG9yeSBtYW4zIHdpbGwgYmUgY3JlYXRlZCBp
bnNpZGUgdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkKKyMgTUFOX09VVFBVVC4KKyMgVGhlIGRl
ZmF1bHQgZGlyZWN0b3J5IGlzOiBtYW4uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9NQU4gaXMgc2V0IHRvIFlFUy4KIAogTUFOX09VVFBVVCAgICAgICAgICAgICA9
IG1hbgogCi0jIFRoZSBNQU5fRVhURU5TSU9OIHRhZyBkZXRlcm1pbmVzIHRoZSBleHRlbnNpb24g
dGhhdCBpcyBhZGRlZCB0byAKLSMgdGhlIGdlbmVyYXRlZCBtYW4gcGFnZXMgKGRlZmF1bHQgaXMg
dGhlIHN1YnJvdXRpbmUncyBzZWN0aW9uIC4zKQorIyBUaGUgTUFOX0VYVEVOU0lPTiB0YWcgZGV0
ZXJtaW5lcyB0aGUgZXh0ZW5zaW9uIHRoYXQgaXMgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorIyBt
YW4gcGFnZXMuIEluIGNhc2UgdGhlIG1hbnVhbCBzZWN0aW9uIGRvZXMgbm90IHN0YXJ0IHdpdGgg
YSBudW1iZXIsIHRoZSBudW1iZXIKKyMgMyBpcyBwcmVwZW5kZWQuIFRoZSBkb3QgKC4pIGF0IHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIE1BTl9FWFRFTlNJT04gdGFnIGlzCisjIG9wdGlvbmFsLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogLjMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9NQU4gaXMgc2V0IHRvIFlFUy4KIAogTUFOX0VYVEVOU0lPTiAgICAgICAgICA9
IC4zCiAKLSMgSWYgdGhlIE1BTl9MSU5LUyB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgRG94eWdlbiBn
ZW5lcmF0ZXMgbWFuIG91dHB1dCwgCi0jIHRoZW4gaXQgd2lsbCBnZW5lcmF0ZSBvbmUgYWRkaXRp
b25hbCBtYW4gZmlsZSBmb3IgZWFjaCBlbnRpdHkgCi0jIGRvY3VtZW50ZWQgaW4gdGhlIHJlYWwg
bWFuIHBhZ2UocykuIFRoZXNlIGFkZGl0aW9uYWwgZmlsZXMgCi0jIG9ubHkgc291cmNlIHRoZSBy
ZWFsIG1hbiBwYWdlLCBidXQgd2l0aG91dCB0aGVtIHRoZSBtYW4gY29tbWFuZCAKLSMgd291bGQg
YmUgdW5hYmxlIHRvIGZpbmQgdGhlIGNvcnJlY3QgcGFnZS4gVGhlIGRlZmF1bHQgaXMgTk8uCisj
IElmIHRoZSBNQU5fTElOS1MgdGFnIGlzIHNldCB0byBZRVMgYW5kIGRveHlnZW4gZ2VuZXJhdGVz
IG1hbiBvdXRwdXQsIHRoZW4gaXQKKyMgd2lsbCBnZW5lcmF0ZSBvbmUgYWRkaXRpb25hbCBtYW4g
ZmlsZSBmb3IgZWFjaCBlbnRpdHkgZG9jdW1lbnRlZCBpbiB0aGUgcmVhbAorIyBtYW4gcGFnZShz
KS4gVGhlc2UgYWRkaXRpb25hbCBmaWxlcyBvbmx5IHNvdXJjZSB0aGUgcmVhbCBtYW4gcGFnZSwg
YnV0IHdpdGhvdXQKKyMgdGhlbSB0aGUgbWFuIGNvbW1hbmQgd291bGQgYmUgdW5hYmxlIHRvIGZp
bmQgdGhlIGNvcnJlY3QgcGFnZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuCiAK
IE1BTl9MSU5LUyAgICAgICAgICAgICAgPSBOTwogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNv
bmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBYTUwgb3V0cHV0CisjIENvbmZpZ3Vy
YXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBYTUwgb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX1hNTCB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdp
bGwgCi0jIGdlbmVyYXRlIGFuIFhNTCBmaWxlIHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVyZSBv
ZiAKLSMgdGhlIGNvZGUgaW5jbHVkaW5nIGFsbCBkb2N1bWVudGF0aW9uLgorIyBJZiB0aGUgR0VO
RVJBVEVfWE1MIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhbiBYTUwg
ZmlsZSB0aGF0CisjIGNhcHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvZGUgaW5jbHVkaW5n
IGFsbCBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEdFTkVS
QVRFX1hNTCAgICAgICAgICAgPSBOTwogCi0jIFRoZSBYTUxfT1VUUFVUIHRhZyBpcyB1c2VkIHRv
IHNwZWNpZnkgd2hlcmUgdGhlIFhNTCBwYWdlcyB3aWxsIGJlIHB1dC4gCi0jIElmIGEgcmVsYXRp
dmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUg
Ci0jIHB1dCBpbiBmcm9udCBvZiBpdC4gSWYgbGVmdCBibGFuayBgeG1sJyB3aWxsIGJlIHVzZWQg
YXMgdGhlIGRlZmF1bHQgcGF0aC4KKyMgVGhlIFhNTF9PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3Bl
Y2lmeSB3aGVyZSB0aGUgWE1MIHBhZ2VzIHdpbGwgYmUgcHV0LiBJZiBhCisjIHJlbGF0aXZlIHBh
dGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBp
biBmcm9udCBvZgorIyBpdC4KKyMgVGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiB4bWwuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4K
IAogWE1MX09VVFBVVCAgICAgICAgICAgICA9IHhtbAogCi0jIFRoZSBYTUxfU0NIRU1BIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFuIFhNTCBzY2hlbWEsIAotIyB3aGljaCBjYW4gYmUgdXNl
ZCBieSBhIHZhbGlkYXRpbmcgWE1MIHBhcnNlciB0byBjaGVjayB0aGUgCi0jIHN5bnRheCBvZiB0
aGUgWE1MIGZpbGVzLgorIyBUaGUgWE1MX1NDSEVNQSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBhIFhNTCBzY2hlbWEsIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IGEKKyMgdmFsaWRhdGluZyBYTUwg
cGFyc2VyIHRvIGNoZWNrIHRoZSBzeW50YXggb2YgdGhlIFhNTCBmaWxlcy4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1hNTCBpcyBzZXQgdG8gWUVTLgogCi1YTUxf
U0NIRU1BICAgICAgICAgICAgID0gCitYTUxfU0NIRU1BICAgICAgICAgICAgID0KIAotIyBUaGUg
WE1MX0RURCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhbiBYTUwgRFRELCAKLSMgd2hpY2gg
Y2FuIGJlIHVzZWQgYnkgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gY2hlY2sgdGhlIAotIyBz
eW50YXggb2YgdGhlIFhNTCBmaWxlcy4KKyMgVGhlIFhNTF9EVEQgdGFnIGNhbiBiZSB1c2VkIHRv
IHNwZWNpZnkgYSBYTUwgRFRELCB3aGljaCBjYW4gYmUgdXNlZCBieSBhCisjIHZhbGlkYXRpbmcg
WE1MIHBhcnNlciB0byBjaGVjayB0aGUgc3ludGF4IG9mIHRoZSBYTUwgZmlsZXMuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4KIAot
WE1MX0RURCAgICAgICAgICAgICAgICA9IAorWE1MX0RURCAgICAgICAgICAgICAgICA9CiAKLSMg
SWYgdGhlIFhNTF9QUk9HUkFNTElTVElORyB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwg
Ci0jIGR1bXAgdGhlIHByb2dyYW0gbGlzdGluZ3MgKGluY2x1ZGluZyBzeW50YXggaGlnaGxpZ2h0
aW5nIAotIyBhbmQgY3Jvc3MtcmVmZXJlbmNpbmcgaW5mb3JtYXRpb24pIHRvIHRoZSBYTUwgb3V0
cHV0LiBOb3RlIHRoYXQgCi0jIGVuYWJsaW5nIHRoaXMgd2lsbCBzaWduaWZpY2FudGx5IGluY3Jl
YXNlIHRoZSBzaXplIG9mIHRoZSBYTUwgb3V0cHV0LgorIyBJZiB0aGUgWE1MX1BST0dSQU1MSVNU
SU5HIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBkdW1wIHRoZSBwcm9ncmFtCisjIGxp
c3RpbmdzIChpbmNsdWRpbmcgc3ludGF4IGhpZ2hsaWdodGluZyBhbmQgY3Jvc3MtcmVmZXJlbmNp
bmcgaW5mb3JtYXRpb24pIHRvCisjIHRoZSBYTUwgb3V0cHV0LiBOb3RlIHRoYXQgZW5hYmxpbmcg
dGhpcyB3aWxsIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgdGhlIHNpemUKKyMgb2YgdGhlIFhNTCBv
dXRwdXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4KIAogWE1MX1BST0dSQU1M
SVNUSU5HICAgICA9IFlFUwogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNvbmZpZ3VyYXRpb24g
b3B0aW9ucyBmb3IgdGhlIEF1dG9HZW4gRGVmaW5pdGlvbnMgb3V0cHV0CisjIENvbmZpZ3VyYXRp
b24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBET0NCT09LIG91dHB1dAorIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisjIElmIHRoZSBHRU5FUkFURV9ET0NCT09LIHRhZyBpcyBzZXQgdG8gWUVTIGRveHln
ZW4gd2lsbCBnZW5lcmF0ZSBEb2Nib29rIGZpbGVzCisjIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2Vu
ZXJhdGUgUERGLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0dFTkVSQVRFX0RPQ0JP
T0sgICAgICAgPSBOTworCisjIFRoZSBET0NCT09LX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVj
aWZ5IHdoZXJlIHRoZSBEb2Nib29rIHBhZ2VzIHdpbGwgYmUgcHV0LgorIyBJZiBhIHJlbGF0aXZl
IHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1
dCBpbgorIyBmcm9udCBvZiBpdC4KKyMgVGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiBkb2Nib29r
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DQk9PSyBpcyBz
ZXQgdG8gWUVTLgorCitET0NCT09LX09VVFBVVCAgICAgICAgID0gZG9jYm9vaworCisjLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIEF1dG9HZW4gRGVm
aW5pdGlvbnMgb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRF
X0FVVE9HRU5fREVGIHRhZyBpcyBzZXQgdG8gWUVTIERveHlnZW4gd2lsbCAKLSMgZ2VuZXJhdGUg
YW4gQXV0b0dlbiBEZWZpbml0aW9ucyAoc2VlIGF1dG9nZW4uc2YubmV0KSBmaWxlIAotIyB0aGF0
IGNhcHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvZGUgaW5jbHVkaW5nIGFsbCAKLSMgZG9j
dW1lbnRhdGlvbi4gTm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBzdGlsbCBleHBlcmltZW50YWwg
Ci0jIGFuZCBpbmNvbXBsZXRlIGF0IHRoZSBtb21lbnQuCisjIElmIHRoZSBHRU5FUkFURV9BVVRP
R0VOX0RFRiB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYW4gQXV0b0dl
bgorIyBEZWZpbml0aW9ucyAoc2VlIGh0dHA6Ly9hdXRvZ2VuLnNmLm5ldCkgZmlsZSB0aGF0IGNh
cHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YKKyMgdGhlIGNvZGUgaW5jbHVkaW5nIGFsbCBkb2N1bWVu
dGF0aW9uLiBOb3RlIHRoYXQgdGhpcyBmZWF0dXJlIGlzIHN0aWxsCisjIGV4cGVyaW1lbnRhbCBh
bmQgaW5jb21wbGV0ZSBhdCB0aGUgbW9tZW50LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CiAKIEdFTkVSQVRFX0FVVE9HRU5fREVGICAgPSBOTwogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0j
IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQK
KyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIFBlcmwgbW9kdWxlIG91dHB1
dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9QRVJMTU9EIHRhZyBp
cyBzZXQgdG8gWUVTIERveHlnZW4gd2lsbCAKLSMgZ2VuZXJhdGUgYSBQZXJsIG1vZHVsZSBmaWxl
IHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVyZSBvZiAKLSMgdGhlIGNvZGUgaW5jbHVkaW5nIGFs
bCBkb2N1bWVudGF0aW9uLiBOb3RlIHRoYXQgdGhpcyAKLSMgZmVhdHVyZSBpcyBzdGlsbCBleHBl
cmltZW50YWwgYW5kIGluY29tcGxldGUgYXQgdGhlIAotIyBtb21lbnQuCisjIElmIHRoZSBHRU5F
UkFURV9QRVJMTU9EIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIFBl
cmwgbW9kdWxlCisjIGZpbGUgdGhhdCBjYXB0dXJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb2Rl
IGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4KKyMKKyMgTm90ZSB0aGF0IHRoaXMgZmVhdHVy
ZSBpcyBzdGlsbCBleHBlcmltZW50YWwgYW5kIGluY29tcGxldGUgYXQgdGhlIG1vbWVudC4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBHRU5FUkFURV9QRVJMTU9EICAgICAgID0gTk8K
IAotIyBJZiB0aGUgUEVSTE1PRF9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwg
Z2VuZXJhdGUgCi0jIHRoZSBuZWNlc3NhcnkgTWFrZWZpbGUgcnVsZXMsIFBlcmwgc2NyaXB0cyBh
bmQgTGFUZVggY29kZSB0byBiZSBhYmxlIAotIyB0byBnZW5lcmF0ZSBQREYgYW5kIERWSSBvdXRw
dXQgZnJvbSB0aGUgUGVybCBtb2R1bGUgb3V0cHV0LgorIyBJZiB0aGUgUEVSTE1PRF9MQVRFWCB0
YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgdGhlIG5lY2Vzc2FyeQorIyBN
YWtlZmlsZSBydWxlcywgUGVybCBzY3JpcHRzIGFuZCBMYVRlWCBjb2RlIHRvIGJlIGFibGUgdG8g
Z2VuZXJhdGUgUERGIGFuZCBEVkkKKyMgb3V0cHV0IGZyb20gdGhlIFBlcmwgbW9kdWxlIG91dHB1
dC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfUEVSTE1PRCBpcyBzZXQgdG8gWUVTLgogCiBQRVJMTU9EX0xBVEVY
ICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgUEVSTE1PRF9QUkVUVFkgdGFnIGlzIHNldCB0byBZ
RVMgdGhlIFBlcmwgbW9kdWxlIG91dHB1dCB3aWxsIGJlIAotIyBuaWNlbHkgZm9ybWF0dGVkIHNv
IGl0IGNhbiBiZSBwYXJzZWQgYnkgYSBodW1hbiByZWFkZXIuIAotIyBUaGlzIGlzIHVzZWZ1bCAK
LSMgaWYgeW91IHdhbnQgdG8gdW5kZXJzdGFuZCB3aGF0IGlzIGdvaW5nIG9uLiAKLSMgT24gdGhl
IG90aGVyIGhhbmQsIGlmIHRoaXMgCi0jIHRhZyBpcyBzZXQgdG8gTk8gdGhlIHNpemUgb2YgdGhl
IFBlcmwgbW9kdWxlIG91dHB1dCB3aWxsIGJlIG11Y2ggc21hbGxlciAKLSMgYW5kIFBlcmwgd2ls
bCBwYXJzZSBpdCBqdXN0IHRoZSBzYW1lLgorIyBJZiB0aGUgUEVSTE1PRF9QUkVUVFkgdGFnIGlz
IHNldCB0byBZRVMgdGhlIFBlcmwgbW9kdWxlIG91dHB1dCB3aWxsIGJlIG5pY2VseQorIyBmb3Jt
YXR0ZWQgc28gaXQgY2FuIGJlIHBhcnNlZCBieSBhIGh1bWFuIHJlYWRlci4gVGhpcyBpcyB1c2Vm
dWwgaWYgeW91IHdhbnQgdG8KKyMgdW5kZXJzdGFuZCB3aGF0IGlzIGdvaW5nIG9uLiBPbiB0aGUg
b3RoZXIgaGFuZCwgaWYgdGhpcyB0YWcgaXMgc2V0IHRvIE5PIHRoZQorIyBzaXplIG9mIHRoZSBQ
ZXJsIG1vZHVsZSBvdXRwdXQgd2lsbCBiZSBtdWNoIHNtYWxsZXIgYW5kIFBlcmwgd2lsbCBwYXJz
ZSBpdAorIyBqdXN0IHRoZSBzYW1lLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUEVSTE1PRCBpcyBzZXQgdG8g
WUVTLgogCiBQRVJMTU9EX1BSRVRUWSAgICAgICAgID0gWUVTCiAKLSMgVGhlIG5hbWVzIG9mIHRo
ZSBtYWtlIHZhcmlhYmxlcyBpbiB0aGUgZ2VuZXJhdGVkIGRveHlydWxlcy5tYWtlIGZpbGUgCi0j
IGFyZSBwcmVmaXhlZCB3aXRoIHRoZSBzdHJpbmcgY29udGFpbmVkIGluIFBFUkxNT0RfTUFLRVZB
Ul9QUkVGSVguIAotIyBUaGlzIGlzIHVzZWZ1bCBzbyBkaWZmZXJlbnQgZG94eXJ1bGVzLm1ha2Ug
ZmlsZXMgaW5jbHVkZWQgYnkgdGhlIHNhbWUgCi0jIE1ha2VmaWxlIGRvbid0IG92ZXJ3cml0ZSBl
YWNoIG90aGVyJ3MgdmFyaWFibGVzLgorIyBUaGUgbmFtZXMgb2YgdGhlIG1ha2UgdmFyaWFibGVz
IGluIHRoZSBnZW5lcmF0ZWQgZG94eXJ1bGVzLm1ha2UgZmlsZSBhcmUKKyMgcHJlZml4ZWQgd2l0
aCB0aGUgc3RyaW5nIGNvbnRhaW5lZCBpbiBQRVJMTU9EX01BS0VWQVJfUFJFRklYLiBUaGlzIGlz
IHVzZWZ1bAorIyBzbyBkaWZmZXJlbnQgZG94eXJ1bGVzLm1ha2UgZmlsZXMgaW5jbHVkZWQgYnkg
dGhlIHNhbWUgTWFrZWZpbGUgZG9uJ3QKKyMgb3ZlcndyaXRlIGVhY2ggb3RoZXIncyB2YXJpYWJs
ZXMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9QRVJMTU9EIGlz
IHNldCB0byBZRVMuCiAKLVBFUkxNT0RfTUFLRVZBUl9QUkVGSVggPSAKK1BFUkxNT0RfTUFLRVZB
Ul9QUkVGSVggPQogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIENvbmZpZ3VyYXRpb24gb3B0aW9u
cyByZWxhdGVkIHRvIHRoZSBwcmVwcm9jZXNzb3IgICAKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25z
IHJlbGF0ZWQgdG8gdGhlIHByZXByb2Nlc3NvcgogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElm
IHRoZSBFTkFCTEVfUFJFUFJPQ0VTU0lORyB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQp
IERveHlnZW4gd2lsbCAKLSMgZXZhbHVhdGUgYWxsIEMtcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMg
Zm91bmQgaW4gdGhlIHNvdXJjZXMgYW5kIGluY2x1ZGUgCi0jIGZpbGVzLgorIyBJZiB0aGUgRU5B
QkxFX1BSRVBST0NFU1NJTkcgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGV2YWx1YXRl
IGFsbAorIyBDLXByZXByb2Nlc3NvciBkaXJlY3RpdmVzIGZvdW5kIGluIHRoZSBzb3VyY2VzIGFu
ZCBpbmNsdWRlIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBFTkFCTEVf
UFJFUFJPQ0VTU0lORyAgID0gWUVTCiAKLSMgSWYgdGhlIE1BQ1JPX0VYUEFOU0lPTiB0YWcgaXMg
c2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwgZXhwYW5kIGFsbCBtYWNybyAKLSMgbmFtZXMgaW4gdGhl
IHNvdXJjZSBjb2RlLiBJZiBzZXQgdG8gTk8gKHRoZSBkZWZhdWx0KSBvbmx5IGNvbmRpdGlvbmFs
IAotIyBjb21waWxhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZC4gTWFjcm8gZXhwYW5zaW9uIGNhbiBi
ZSBkb25lIGluIGEgY29udHJvbGxlZCAKLSMgd2F5IGJ5IHNldHRpbmcgRVhQQU5EX09OTFlfUFJF
REVGIHRvIFlFUy4KKyMgSWYgdGhlIE1BQ1JPX0VYUEFOU0lPTiB0YWcgaXMgc2V0IHRvIFlFUyBk
b3h5Z2VuIHdpbGwgZXhwYW5kIGFsbCBtYWNybyBuYW1lcworIyBpbiB0aGUgc291cmNlIGNvZGUu
IElmIHNldCB0byBOTyBvbmx5IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHdpbGwgYmUKKyMgcGVy
Zm9ybWVkLiBNYWNybyBleHBhbnNpb24gY2FuIGJlIGRvbmUgaW4gYSBjb250cm9sbGVkIHdheSBi
eSBzZXR0aW5nCisjIEVYUEFORF9PTkxZX1BSRURFRiB0byBZRVMuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQ
Uk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCiAKIE1BQ1JPX0VYUEFOU0lPTiAgICAgICAgPSBZRVMK
IAotIyBJZiB0aGUgRVhQQU5EX09OTFlfUFJFREVGIGFuZCBNQUNST19FWFBBTlNJT04gdGFncyBh
cmUgYm90aCBzZXQgdG8gWUVTIAotIyB0aGVuIHRoZSBtYWNybyBleHBhbnNpb24gaXMgbGltaXRl
ZCB0byB0aGUgbWFjcm9zIHNwZWNpZmllZCB3aXRoIHRoZSAKLSMgUFJFREVGSU5FRCBhbmQgRVhQ
QU5EX0FTX0RFRklORUQgdGFncy4KKyMgSWYgdGhlIEVYUEFORF9PTkxZX1BSRURFRiBhbmQgTUFD
Uk9fRVhQQU5TSU9OIHRhZ3MgYXJlIGJvdGggc2V0IHRvIFlFUyB0aGVuCisjIHRoZSBtYWNybyBl
eHBhbnNpb24gaXMgbGltaXRlZCB0byB0aGUgbWFjcm9zIHNwZWNpZmllZCB3aXRoIHRoZSBQUkVE
RUZJTkVEIGFuZAorIyBFWFBBTkRfQVNfREVGSU5FRCB0YWdzLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJP
Q0VTU0lORyBpcyBzZXQgdG8gWUVTLgogCiBFWFBBTkRfT05MWV9QUkVERUYgICAgID0gTk8KIAot
IyBJZiB0aGUgU0VBUkNIX0lOQ0xVREVTIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkg
dGhlIGluY2x1ZGVzIGZpbGVzIAotIyBpbiB0aGUgSU5DTFVERV9QQVRIIChzZWUgYmVsb3cpIHdp
bGwgYmUgc2VhcmNoIGlmIGEgI2luY2x1ZGUgaXMgZm91bmQuCisjIElmIHRoZSBTRUFSQ0hfSU5D
TFVERVMgdGFnIGlzIHNldCB0byBZRVMgdGhlIGluY2x1ZGVzIGZpbGVzIGluIHRoZQorIyBJTkNM
VURFX1BBVEggd2lsbCBiZSBzZWFyY2hlZCBpZiBhICNpbmNsdWRlIGlzIGZvdW5kLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
RU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KIAogU0VBUkNIX0lOQ0xVREVTICAg
ICAgICA9IFlFUwogCi0jIFRoZSBJTkNMVURFX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
Znkgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdCAKLSMgY29udGFpbiBpbmNsdWRlIGZpbGVz
IHRoYXQgYXJlIG5vdCBpbnB1dCBmaWxlcyBidXQgc2hvdWxkIGJlIHByb2Nlc3NlZCBieSAKLSMg
dGhlIHByZXByb2Nlc3Nvci4KKyMgVGhlIElOQ0xVREVfUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8g
c3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0CisjIGNvbnRhaW4gaW5jbHVkZSBm
aWxlcyB0aGF0IGFyZSBub3QgaW5wdXQgZmlsZXMgYnV0IHNob3VsZCBiZSBwcm9jZXNzZWQgYnkg
dGhlCisjIHByZXByb2Nlc3Nvci4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNF
QVJDSF9JTkNMVURFUyBpcyBzZXQgdG8gWUVTLgogCiBJTkNMVURFX1BBVEggICAgICAgICAgID0g
Li4vaW5jbHVkZQogCi0jIFlvdSBjYW4gdXNlIHRoZSBJTkNMVURFX0ZJTEVfUEFUVEVSTlMgdGFn
IHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQgCi0jIHBhdHRlcm5zIChsaWtlICouaCBh
bmQgKi5ocHApIHRvIGZpbHRlciBvdXQgdGhlIGhlYWRlci1maWxlcyBpbiB0aGUgCi0jIGRpcmVj
dG9yaWVzLiBJZiBsZWZ0IGJsYW5rLCB0aGUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggRklMRV9Q
QVRURVJOUyB3aWxsIAotIyBiZSB1c2VkLgorIyBZb3UgY2FuIHVzZSB0aGUgSU5DTFVERV9GSUxF
X1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkCisjIHBhdHRlcm5z
IChsaWtlICouaCBhbmQgKi5ocHApIHRvIGZpbHRlciBvdXQgdGhlIGhlYWRlci1maWxlcyBpbiB0
aGUKKyMgZGlyZWN0b3JpZXMuIElmIGxlZnQgYmxhbmssIHRoZSBwYXR0ZXJucyBzcGVjaWZpZWQg
d2l0aCBGSUxFX1BBVFRFUk5TIHdpbGwgYmUKKyMgdXNlZC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCiAKIElOQ0xV
REVfRklMRV9QQVRURVJOUyAgPSAqLmgKIAotIyBUaGUgUFJFREVGSU5FRCB0YWcgY2FuIGJlIHVz
ZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBtYWNybyBuYW1lcyB0aGF0IAotIyBhcmUgZGVmaW5l
ZCBiZWZvcmUgdGhlIHByZXByb2Nlc3NvciBpcyBzdGFydGVkIChzaW1pbGFyIHRvIHRoZSAtRCBv
cHRpb24gb2YgCi0jIGdjYykuIFRoZSBhcmd1bWVudCBvZiB0aGUgdGFnIGlzIGEgbGlzdCBvZiBt
YWNyb3Mgb2YgdGhlIGZvcm06IG5hbWUgCi0jIG9yIG5hbWU9ZGVmaW5pdGlvbiAobm8gc3BhY2Vz
KS4gSWYgdGhlIGRlZmluaXRpb24gYW5kIHRoZSA9IGFyZSAKLSMgb21pdHRlZCA9MSBpcyBhc3N1
bWVkLiBUbyBwcmV2ZW50IGEgbWFjcm8gZGVmaW5pdGlvbiBmcm9tIGJlaW5nIAotIyB1bmRlZmlu
ZWQgdmlhICN1bmRlZiBvciByZWN1cnNpdmVseSBleHBhbmRlZCB1c2UgdGhlIDo9IG9wZXJhdG9y
IAotIyBpbnN0ZWFkIG9mIHRoZSA9IG9wZXJhdG9yLgorIyBUaGUgUFJFREVGSU5FRCB0YWcgY2Fu
IGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBtYWNybyBuYW1lcyB0aGF0IGFyZQorIyBk
ZWZpbmVkIGJlZm9yZSB0aGUgcHJlcHJvY2Vzc29yIGlzIHN0YXJ0ZWQgKHNpbWlsYXIgdG8gdGhl
IC1EIG9wdGlvbiBvZiBlLmcuCisjIGdjYykuIFRoZSBhcmd1bWVudCBvZiB0aGUgdGFnIGlzIGEg
bGlzdCBvZiBtYWNyb3Mgb2YgdGhlIGZvcm06IG5hbWUgb3IKKyMgbmFtZT1kZWZpbml0aW9uIChu
byBzcGFjZXMpLiBJZiB0aGUgZGVmaW5pdGlvbiBhbmQgdGhlICI9IiBhcmUgb21pdHRlZCwgIj0x
IgorIyBpcyBhc3N1bWVkLiBUbyBwcmV2ZW50IGEgbWFjcm8gZGVmaW5pdGlvbiBmcm9tIGJlaW5n
IHVuZGVmaW5lZCB2aWEgI3VuZGVmIG9yCisjIHJlY3Vyc2l2ZWx5IGV4cGFuZGVkIHVzZSB0aGUg
Oj0gb3BlcmF0b3IgaW5zdGVhZCBvZiB0aGUgPSBvcGVyYXRvci4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCiAKLVBS
RURFRklORUQgICAgICAgICAgICAgPSAiX01TQ19WRVI9MTQwMCIgXAorUFJFREVGSU5FRCAgICAg
ICAgICAgICA9ICJfTVNDX1ZFUj0xODAwIiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgX0NQ
UFJUVEkgXAogICAgICAgICAgICAgICAgICAgICAgICAgIF9XSU4zMiBcCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTiBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCisgICAgICAgICAg
ICAgICAgICAgICAgICAgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgogCi0jIElm
IHRoZSBNQUNST19FWFBBTlNJT04gYW5kIEVYUEFORF9PTkxZX1BSRURFRiB0YWdzIGFyZSBzZXQg
dG8gWUVTIHRoZW4gCi0jIHRoaXMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBsaXN0IG9m
IG1hY3JvIG5hbWVzIHRoYXQgc2hvdWxkIGJlIGV4cGFuZGVkLiAKLSMgVGhlIG1hY3JvIGRlZmlu
aXRpb24gdGhhdCBpcyBmb3VuZCBpbiB0aGUgc291cmNlcyB3aWxsIGJlIHVzZWQuIAotIyBVc2Ug
dGhlIFBSRURFRklORUQgdGFnIGlmIHlvdSB3YW50IHRvIHVzZSBhIGRpZmZlcmVudCBtYWNybyBk
ZWZpbml0aW9uLgorIyBJZiB0aGUgTUFDUk9fRVhQQU5TSU9OIGFuZCBFWFBBTkRfT05MWV9QUkVE
RUYgdGFncyBhcmUgc2V0IHRvIFlFUyB0aGVuIHRoaXMKKyMgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgYSBsaXN0IG9mIG1hY3JvIG5hbWVzIHRoYXQgc2hvdWxkIGJlIGV4cGFuZGVkLiBUaGUK
KyMgbWFjcm8gZGVmaW5pdGlvbiB0aGF0IGlzIGZvdW5kIGluIHRoZSBzb3VyY2VzIHdpbGwgYmUg
dXNlZC4gVXNlIHRoZSBQUkVERUZJTkVECisjIHRhZyBpZiB5b3Ugd2FudCB0byB1c2UgYSBkaWZm
ZXJlbnQgbWFjcm8gZGVmaW5pdGlvbiB0aGF0IG92ZXJydWxlcyB0aGUKKyMgZGVmaW5pdGlvbiBm
b3VuZCBpbiB0aGUgc291cmNlIGNvZGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8gWUVTLgogCi1FWFBBTkRfQVNfREVGSU5F
RCAgICAgID0gCitFWFBBTkRfQVNfREVGSU5FRCAgICAgID0KIAotIyBJZiB0aGUgU0tJUF9GVU5D
VElPTl9NQUNST1MgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSB0aGVuIAotIyBkb3h5
Z2VuJ3MgcHJlcHJvY2Vzc29yIHdpbGwgcmVtb3ZlIGFsbCBmdW5jdGlvbi1saWtlIG1hY3JvcyB0
aGF0IGFyZSBhbG9uZSAKLSMgb24gYSBsaW5lLCBoYXZlIGFuIGFsbCB1cHBlcmNhc2UgbmFtZSwg
YW5kIGRvIG5vdCBlbmQgd2l0aCBhIHNlbWljb2xvbi4gU3VjaCAKLSMgZnVuY3Rpb24gbWFjcm9z
IGFyZSB0eXBpY2FsbHkgdXNlZCBmb3IgYm9pbGVyLXBsYXRlIGNvZGUsIGFuZCB3aWxsIGNvbmZ1
c2UgCi0jIHRoZSBwYXJzZXIgaWYgbm90IHJlbW92ZWQuCisjIElmIHRoZSBTS0lQX0ZVTkNUSU9O
X01BQ1JPUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4ncyBwcmVwcm9jZXNzb3Igd2ls
bAorIyByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gZnVuY3Rpb24tbGlrZSBtYWNyb3MgdGhhdCBh
cmUgYWxvbmUgb24gYSBsaW5lLCBoYXZlIGFuCisjIGFsbCB1cHBlcmNhc2UgbmFtZSwgYW5kIGRv
IG5vdCBlbmQgd2l0aCBhIHNlbWljb2xvbi4gU3VjaCBmdW5jdGlvbiBtYWNyb3MgYXJlCisjIHR5
cGljYWxseSB1c2VkIGZvciBib2lsZXItcGxhdGUgY29kZSwgYW5kIHdpbGwgY29uZnVzZSB0aGUg
cGFyc2VyIGlmIG5vdAorIyByZW1vdmVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMg
c2V0IHRvIFlFUy4KIAogU0tJUF9GVU5DVElPTl9NQUNST1MgICA9IFlFUwogCiAjLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0jIENvbmZpZ3VyYXRpb246OmFkZGl0aW9ucyByZWxhdGVkIHRvIGV4dGVybmFs
IHJlZmVyZW5jZXMgICAKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gZXh0ZXJu
YWwgcmVmZXJlbmNlcwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIFRoZSBUQUdGSUxFUyBvcHRp
b24gY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB0YWdmaWxlcy4gCi0jIE9wdGlv
bmFsbHkgYW4gaW5pdGlhbCBsb2NhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiAK
LSMgY2FuIGJlIGFkZGVkIGZvciBlYWNoIHRhZ2ZpbGUuIFRoZSBmb3JtYXQgb2YgYSB0YWcgZmls
ZSB3aXRob3V0IAotIyB0aGlzIGxvY2F0aW9uIGlzIGFzIGZvbGxvd3M6IAotIyAgCi0jIFRBR0ZJ
TEVTID0gZmlsZTEgZmlsZTIgLi4uIAotIyBBZGRpbmcgbG9jYXRpb24gZm9yIHRoZSB0YWcgZmls
ZXMgaXMgZG9uZSBhcyBmb2xsb3dzOiAKLSMgIAotIyBUQUdGSUxFUyA9IGZpbGUxPWxvYzEgImZp
bGUyID0gbG9jMiIgLi4uIAotIyB3aGVyZSAibG9jMSIgYW5kICJsb2MyIiBjYW4gYmUgcmVsYXRp
dmUgb3IgYWJzb2x1dGUgcGF0aHMgb3IgCi0jIFVSTHMuIElmIGEgbG9jYXRpb24gaXMgcHJlc2Vu
dCBmb3IgZWFjaCB0YWcsIHRoZSBpbnN0YWxsZG94IHRvb2wgCi0jIGRvZXMgbm90IGhhdmUgdG8g
YmUgcnVuIHRvIGNvcnJlY3QgdGhlIGxpbmtzLiAKLSMgTm90ZSB0aGF0IGVhY2ggdGFnIGZpbGUg
bXVzdCBoYXZlIGEgdW5pcXVlIG5hbWUgCi0jICh3aGVyZSB0aGUgbmFtZSBkb2VzIE5PVCBpbmNs
dWRlIHRoZSBwYXRoKSAKLSMgSWYgYSB0YWcgZmlsZSBpcyBub3QgbG9jYXRlZCBpbiB0aGUgZGly
ZWN0b3J5IGluIHdoaWNoIGRveHlnZW4gCi0jIGlzIHJ1biwgeW91IG11c3QgYWxzbyBzcGVjaWZ5
IHRoZSBwYXRoIHRvIHRoZSB0YWdmaWxlIGhlcmUuCi0KLVRBR0ZJTEVTICAgICAgICAgICAgICAg
PSAKLQotIyBXaGVuIGEgZmlsZSBuYW1lIGlzIHNwZWNpZmllZCBhZnRlciBHRU5FUkFURV9UQUdG
SUxFLCBkb3h5Z2VuIHdpbGwgY3JlYXRlIAotIyBhIHRhZyBmaWxlIHRoYXQgaXMgYmFzZWQgb24g
dGhlIGlucHV0IGZpbGVzIGl0IHJlYWRzLgotCi1HRU5FUkFURV9UQUdGSUxFICAgICAgID0gCi0K
LSMgSWYgdGhlIEFMTEVYVEVSTkFMUyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJuYWwgY2xh
c3NlcyB3aWxsIGJlIGxpc3RlZCAKLSMgaW4gdGhlIGNsYXNzIGluZGV4LiBJZiBzZXQgdG8gTk8g
b25seSB0aGUgaW5oZXJpdGVkIGV4dGVybmFsIGNsYXNzZXMgCi0jIHdpbGwgYmUgbGlzdGVkLgor
IyBUaGUgVEFHRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgdGFn
IGZpbGVzLiBGb3IgZWFjaCB0YWcKKyMgZmlsZSB0aGUgbG9jYXRpb24gb2YgdGhlIGV4dGVybmFs
IGRvY3VtZW50YXRpb24gc2hvdWxkIGJlIGFkZGVkLiBUaGUgZm9ybWF0IG9mCisjIGEgdGFnIGZp
bGUgd2l0aG91dCB0aGlzIGxvY2F0aW9uIGlzIGFzIGZvbGxvd3M6CisjIFRBR0ZJTEVTID0gZmls
ZTEgZmlsZTIgLi4uCisjIEFkZGluZyBsb2NhdGlvbiBmb3IgdGhlIHRhZyBmaWxlcyBpcyBkb25l
IGFzIGZvbGxvd3M6CisjIFRBR0ZJTEVTID0gZmlsZTE9bG9jMSAiZmlsZTIgPSBsb2MyIiAuLi4K
KyMgd2hlcmUgbG9jMSBhbmQgbG9jMiBjYW4gYmUgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHMg
b3IgVVJMcy4gU2VlIHRoZQorIyBzZWN0aW9uICJMaW5raW5nIHRvIGV4dGVybmFsIGRvY3VtZW50
YXRpb24iIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2UKKyMgb2YgdGFnIGZpbGVz
LgorIyBOb3RlOiBFYWNoIHRhZyBmaWxlIG11c3QgaGF2ZSBhbiB1bmlxdWUgbmFtZSAod2hlcmUg
dGhlIG5hbWUgZG9lcyBOT1QgaW5jbHVkZQorIyB0aGUgcGF0aCkuIElmIGEgdGFnIGZpbGUgaXMg
bm90IGxvY2F0ZWQgaW4gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBkb3h5Z2VuIGlzCisjIHJ1biwg
eW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBwYXRoIHRvIHRoZSB0YWdmaWxlIGhlcmUuCisKK1RB
R0ZJTEVTICAgICAgICAgICAgICAgPQorCisjIFdoZW4gYSBmaWxlIG5hbWUgaXMgc3BlY2lmaWVk
IGFmdGVyIEdFTkVSQVRFX1RBR0ZJTEUsIGRveHlnZW4gd2lsbCBjcmVhdGUgYQorIyB0YWcgZmls
ZSB0aGF0IGlzIGJhc2VkIG9uIHRoZSBpbnB1dCBmaWxlcyBpdCByZWFkcy4gU2VlIHNlY3Rpb24g
IkxpbmtpbmcgdG8KKyMgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIgZm9yIG1vcmUgaW5mb3JtYXRp
b24gYWJvdXQgdGhlIHVzYWdlIG9mIHRhZyBmaWxlcy4KKworR0VORVJBVEVfVEFHRklMRSAgICAg
ICA9CisKKyMgSWYgdGhlIEFMTEVYVEVSTkFMUyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJu
YWwgY2xhc3Mgd2lsbCBiZSBsaXN0ZWQgaW4gdGhlCisjIGNsYXNzIGluZGV4LiBJZiBzZXQgdG8g
Tk8gb25seSB0aGUgaW5oZXJpdGVkIGV4dGVybmFsIGNsYXNzZXMgd2lsbCBiZSBsaXN0ZWQuCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogQUxMRVhURVJOQUxTICAgICAgICAgICA9IE5P
CiAKLSMgSWYgdGhlIEVYVEVSTkFMX0dST1VQUyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJu
YWwgZ3JvdXBzIHdpbGwgYmUgbGlzdGVkIAotIyBpbiB0aGUgbW9kdWxlcyBpbmRleC4gSWYgc2V0
IHRvIE5PLCBvbmx5IHRoZSBjdXJyZW50IHByb2plY3QncyBncm91cHMgd2lsbCAKLSMgYmUgbGlz
dGVkLgorIyBJZiB0aGUgRVhURVJOQUxfR1JPVVBTIHRhZyBpcyBzZXQgdG8gWUVTIGFsbCBleHRl
cm5hbCBncm91cHMgd2lsbCBiZSBsaXN0ZWQgaW4KKyMgdGhlIG1vZHVsZXMgaW5kZXguIElmIHNl
dCB0byBOTywgb25seSB0aGUgY3VycmVudCBwcm9qZWN0J3MgZ3JvdXBzIHdpbGwgYmUKKyMgbGlz
dGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBFWFRFUk5BTF9HUk9VUFMgICAg
ICAgID0gWUVTCiAKLSMgVGhlIFBFUkxfUEFUSCBzaG91bGQgYmUgdGhlIGFic29sdXRlIHBhdGgg
YW5kIG5hbWUgb2YgdGhlIHBlcmwgc2NyaXB0IAotIyBpbnRlcnByZXRlciAoaS5lLiB0aGUgcmVz
dWx0IG9mIGB3aGljaCBwZXJsJykuCisjIElmIHRoZSBFWFRFUk5BTF9QQUdFUyB0YWcgaXMgc2V0
IHRvIFlFUyBhbGwgZXh0ZXJuYWwgcGFnZXMgd2lsbCBiZSBsaXN0ZWQgaW4KKyMgdGhlIHJlbGF0
ZWQgcGFnZXMgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgY3VycmVudCBwcm9qZWN0J3Mg
cGFnZXMgd2lsbAorIyBiZSBsaXN0ZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisK
K0VYVEVSTkFMX1BBR0VTICAgICAgICAgPSBZRVMKKworIyBUaGUgUEVSTF9QQVRIIHNob3VsZCBi
ZSB0aGUgYWJzb2x1dGUgcGF0aCBhbmQgbmFtZSBvZiB0aGUgcGVybCBzY3JpcHQKKyMgaW50ZXJw
cmV0ZXIgKGkuZS4gdGhlIHJlc3VsdCBvZiAnd2hpY2ggcGVybCcpLgorIyBUaGUgZGVmYXVsdCBm
aWxlICh3aXRoIGFic29sdXRlIHBhdGgpIGlzOiAvdXNyL2Jpbi9wZXJsLgogCiBQRVJMX1BBVEgg
ICAgICAgICAgICAgID0gL3Vzci9iaW4vcGVybAogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIENv
bmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBkb3QgdG9vbCAgIAorIyBDb25maWd1
cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgZG90IHRvb2wKICMtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotIyBJZiB0aGUgQ0xBU1NfRElBR1JBTVMgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZh
dWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIGEgaW5oZXJpdGFuY2UgZGlhZ3JhbSAoaW4g
SFRNTCwgUlRGIGFuZCBMYVRlWCkgZm9yIGNsYXNzZXMgd2l0aCBiYXNlIAotIyBvciBzdXBlciBj
bGFzc2VzLiBTZXR0aW5nIHRoZSB0YWcgdG8gTk8gdHVybnMgdGhlIGRpYWdyYW1zIG9mZi4gTm90
ZSB0aGF0IAotIyB0aGlzIG9wdGlvbiBpcyBzdXBlcnNlZGVkIGJ5IHRoZSBIQVZFX0RPVCBvcHRp
b24gYmVsb3cuIFRoaXMgaXMgb25seSBhIAotIyBmYWxsYmFjay4gSXQgaXMgcmVjb21tZW5kZWQg
dG8gaW5zdGFsbCBhbmQgdXNlIGRvdCwgc2luY2UgaXQgeWllbGRzIG1vcmUgCisjIElmIHRoZSBD
TEFTU19ESUFHUkFNUyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBj
bGFzcyBkaWFncmFtCisjIChpbiBIVE1MIGFuZCBMYVRlWCkgZm9yIGNsYXNzZXMgd2l0aCBiYXNl
IG9yIHN1cGVyIGNsYXNzZXMuIFNldHRpbmcgdGhlIHRhZyB0bworIyBOTyB0dXJucyB0aGUgZGlh
Z3JhbXMgb2ZmLiBOb3RlIHRoYXQgdGhpcyBvcHRpb24gYWxzbyB3b3JrcyB3aXRoIEhBVkVfRE9U
CisjIGRpc2FibGVkLCBidXQgaXQgaXMgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBhbmQgdXNlIGRv
dCwgc2luY2UgaXQgeWllbGRzIG1vcmUKICMgcG93ZXJmdWwgZ3JhcGhzLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLgogCiBDTEFTU19ESUFHUkFNUyAgICAgICAgID0gTk8KIAotIyBZb3Ug
Y2FuIGRlZmluZSBtZXNzYWdlIHNlcXVlbmNlIGNoYXJ0cyB3aXRoaW4gZG94eWdlbiBjb21tZW50
cyB1c2luZyB0aGUgXG1zYyAKLSMgY29tbWFuZC4gRG94eWdlbiB3aWxsIHRoZW4gcnVuIHRoZSBt
c2NnZW4gdG9vbCAoc2VlIAotIyBodHRwOi8vd3d3Lm1jdGVybmFuLm1lLnVrL21zY2dlbi8pIHRv
IHByb2R1Y2UgdGhlIGNoYXJ0IGFuZCBpbnNlcnQgaXQgaW4gdGhlIAotIyBkb2N1bWVudGF0aW9u
LiBUaGUgTVNDR0VOX1BBVEggdGFnIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgZGlyZWN0b3J5
IHdoZXJlIAotIyB0aGUgbXNjZ2VuIHRvb2wgcmVzaWRlcy4gSWYgbGVmdCBlbXB0eSB0aGUgdG9v
bCBpcyBhc3N1bWVkIHRvIGJlIGZvdW5kIGluIHRoZSAKKyMgWW91IGNhbiBkZWZpbmUgbWVzc2Fn
ZSBzZXF1ZW5jZSBjaGFydHMgd2l0aGluIGRveHlnZW4gY29tbWVudHMgdXNpbmcgdGhlIFxtc2MK
KyMgY29tbWFuZC4gRG94eWdlbiB3aWxsIHRoZW4gcnVuIHRoZSBtc2NnZW4gdG9vbCAoc2VlOgor
IyBodHRwOi8vd3d3Lm1jdGVybmFuLm1lLnVrL21zY2dlbi8pKSB0byBwcm9kdWNlIHRoZSBjaGFy
dCBhbmQgaW5zZXJ0IGl0IGluIHRoZQorIyBkb2N1bWVudGF0aW9uLiBUaGUgTVNDR0VOX1BBVEgg
dGFnIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IHdoZXJlCisjIHRoZSBtc2Nn
ZW4gdG9vbCByZXNpZGVzLiBJZiBsZWZ0IGVtcHR5IHRoZSB0b29sIGlzIGFzc3VtZWQgdG8gYmUg
Zm91bmQgaW4gdGhlCiAjIGRlZmF1bHQgc2VhcmNoIHBhdGguCiAKLU1TQ0dFTl9QQVRIICAgICAg
ICAgICAgPSAKK01TQ0dFTl9QQVRIICAgICAgICAgICAgPQogCi0jIElmIHNldCB0byBZRVMsIHRo
ZSBpbmhlcml0YW5jZSBhbmQgY29sbGFib3JhdGlvbiBncmFwaHMgd2lsbCBoaWRlIAotIyBpbmhl
cml0YW5jZSBhbmQgdXNhZ2UgcmVsYXRpb25zIGlmIHRoZSB0YXJnZXQgaXMgdW5kb2N1bWVudGVk
IAotIyBvciBpcyBub3QgYSBjbGFzcy4KKyMgSWYgc2V0IHRvIFlFUywgdGhlIGluaGVyaXRhbmNl
IGFuZCBjb2xsYWJvcmF0aW9uIGdyYXBocyB3aWxsIGhpZGUgaW5oZXJpdGFuY2UKKyMgYW5kIHVz
YWdlIHJlbGF0aW9ucyBpZiB0aGUgdGFyZ2V0IGlzIHVuZG9jdW1lbnRlZCBvciBpcyBub3QgYSBj
bGFzcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogSElERV9VTkRPQ19SRUxBVElP
TlMgICA9IE5PCiAKLSMgSWYgeW91IHNldCB0aGUgSEFWRV9ET1QgdGFnIHRvIFlFUyB0aGVuIGRv
eHlnZW4gd2lsbCBhc3N1bWUgdGhlIGRvdCB0b29sIGlzIAotIyBhdmFpbGFibGUgZnJvbSB0aGUg
cGF0aC4gVGhpcyB0b29sIGlzIHBhcnQgb2YgR3JhcGh2aXosIGEgZ3JhcGggdmlzdWFsaXphdGlv
biAKLSMgdG9vbGtpdCBmcm9tIEFUJlQgYW5kIEx1Y2VudCBCZWxsIExhYnMuIFRoZSBvdGhlciBv
cHRpb25zIGluIHRoaXMgc2VjdGlvbiAKLSMgaGF2ZSBubyBlZmZlY3QgaWYgdGhpcyBvcHRpb24g
aXMgc2V0IHRvIE5PICh0aGUgZGVmYXVsdCkKKyMgSWYgeW91IHNldCB0aGUgSEFWRV9ET1QgdGFn
IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBhc3N1bWUgdGhlIGRvdCB0b29sIGlzCisjIGF2YWls
YWJsZSBmcm9tIHRoZSBwYXRoLiBUaGlzIHRvb2wgaXMgcGFydCBvZiBHcmFwaHZpeiAoc2VlOgor
IyBodHRwOi8vd3d3LmdyYXBodml6Lm9yZy8pLCBhIGdyYXBoIHZpc3VhbGl6YXRpb24gdG9vbGtp
dCBmcm9tIEFUJlQgYW5kIEx1Y2VudAorIyBCZWxsIExhYnMuIFRoZSBvdGhlciBvcHRpb25zIGlu
IHRoaXMgc2VjdGlvbiBoYXZlIG5vIGVmZmVjdCBpZiB0aGlzIG9wdGlvbiBpcworIyBzZXQgdG8g
Tk8KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBIQVZFX0RPVCAgICAgICAgICAgICAg
ID0gJUhBVkVfRE9UJQogCi0jIEJ5IGRlZmF1bHQgZG94eWdlbiB3aWxsIHdyaXRlIGEgZm9udCBj
YWxsZWQgRnJlZVNhbnMudHRmIHRvIHRoZSBvdXRwdXQgCi0jIGRpcmVjdG9yeSBhbmQgcmVmZXJl
bmNlIGl0IGluIGFsbCBkb3QgZmlsZXMgdGhhdCBkb3h5Z2VuIGdlbmVyYXRlcy4gVGhpcyAKLSMg
Zm9udCBkb2VzIG5vdCBpbmNsdWRlIGFsbCBwb3NzaWJsZSB1bmljb2RlIGNoYXJhY3RlcnMgaG93
ZXZlciwgc28gd2hlbiB5b3UgbmVlZCAKLSMgdGhlc2UgKG9yIGp1c3Qgd2FudCBhIGRpZmZlcmVu
dGx5IGxvb2tpbmcgZm9udCkgeW91IGNhbiBzcGVjaWZ5IHRoZSBmb250IG5hbWUgCi0jIHVzaW5n
IERPVF9GT05UTkFNRS4gWW91IG5lZWQgbmVlZCB0byBtYWtlIHN1cmUgZG90IGlzIGFibGUgdG8g
ZmluZCB0aGUgZm9udCwgCi0jIHdoaWNoIGNhbiBiZSBkb25lIGJ5IHB1dHRpbmcgaXQgaW4gYSBz
dGFuZGFyZCBsb2NhdGlvbiBvciBieSBzZXR0aW5nIHRoZSAKLSMgRE9URk9OVFBBVEggZW52aXJv
bm1lbnQgdmFyaWFibGUgb3IgYnkgc2V0dGluZyBET1RfRk9OVFBBVEggdG8gdGhlIGRpcmVjdG9y
eSAKLSMgY29udGFpbmluZyB0aGUgZm9udC4KKyMgVGhlIERPVF9OVU1fVEhSRUFEUyBzcGVjaWZp
ZXMgdGhlIG51bWJlciBvZiBkb3QgaW52b2NhdGlvbnMgZG94eWdlbiBpcyBhbGxvd2VkCisjIHRv
IHJ1biBpbiBwYXJhbGxlbC4gV2hlbiBzZXQgdG8gMCBkb3h5Z2VuIHdpbGwgYmFzZSB0aGlzIG9u
IHRoZSBudW1iZXIgb2YKKyMgcHJvY2Vzc29ycyBhdmFpbGFibGUgaW4gdGhlIHN5c3RlbS4gWW91
IGNhbiBzZXQgaXQgZXhwbGljaXRseSB0byBhIHZhbHVlCisjIGxhcmdlciB0aGFuIDAgdG8gZ2V0
IGNvbnRyb2wgb3ZlciB0aGUgYmFsYW5jZSBiZXR3ZWVuIENQVSBsb2FkIGFuZCBwcm9jZXNzaW5n
CisjIHNwZWVkLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAzMiwgZGVmYXVs
dCB2YWx1ZTogMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlz
IHNldCB0byBZRVMuCisKK0RPVF9OVU1fVEhSRUFEUyAgICAgICAgPSAwCisKKyMgV2hlbiB5b3Ug
d2FudCBhIGRpZmZlcmVudGx5IGxvb2tpbmcgZm9udCBuIHRoZSBkb3QgZmlsZXMgdGhhdCBkb3h5
Z2VuCisjIGdlbmVyYXRlcyB5b3UgY2FuIHNwZWNpZnkgdGhlIGZvbnQgbmFtZSB1c2luZyBET1Rf
Rk9OVE5BTUUuIFlvdSBuZWVkIHRvIG1ha2UKKyMgc3VyZSBkb3QgaXMgYWJsZSB0byBmaW5kIHRo
ZSBmb250LCB3aGljaCBjYW4gYmUgZG9uZSBieSBwdXR0aW5nIGl0IGluIGEKKyMgc3RhbmRhcmQg
bG9jYXRpb24gb3IgYnkgc2V0dGluZyB0aGUgRE9URk9OVFBBVEggZW52aXJvbm1lbnQgdmFyaWFi
bGUgb3IgYnkKKyMgc2V0dGluZyBET1RfRk9OVFBBVEggdG8gdGhlIGRpcmVjdG9yeSBjb250YWlu
aW5nIHRoZSBmb250LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogSGVsdmV0aWNhLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogRE9U
X0ZPTlROQU1FICAgICAgICAgICA9IEZyZWVTYW5zCiAKLSMgVGhlIERPVF9GT05UU0laRSB0YWcg
Y2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBzaXplIG9mIHRoZSBmb250IG9mIGRvdCBncmFwaHMuIAot
IyBUaGUgZGVmYXVsdCBzaXplIGlzIDEwcHQuCisjIFRoZSBET1RfRk9OVFNJWkUgdGFnIGNhbiBi
ZSB1c2VkIHRvIHNldCB0aGUgc2l6ZSAoaW4gcG9pbnRzKSBvZiB0aGUgZm9udCBvZgorIyBkb3Qg
Z3JhcGhzLgorIyBNaW5pbXVtIHZhbHVlOiA0LCBtYXhpbXVtIHZhbHVlOiAyNCwgZGVmYXVsdCB2
YWx1ZTogMTAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBz
ZXQgdG8gWUVTLgogCiBET1RfRk9OVFNJWkUgICAgICAgICAgID0gMTAKIAotIyBCeSBkZWZhdWx0
IGRveHlnZW4gd2lsbCB0ZWxsIGRvdCB0byB1c2UgdGhlIG91dHB1dCBkaXJlY3RvcnkgdG8gbG9v
ayBmb3IgdGhlIAotIyBGcmVlU2Fucy50dGYgZm9udCAod2hpY2ggZG94eWdlbiB3aWxsIHB1dCB0
aGVyZSBpdHNlbGYpLiBJZiB5b3Ugc3BlY2lmeSBhIAotIyBkaWZmZXJlbnQgZm9udCB1c2luZyBE
T1RfRk9OVE5BTUUgeW91IGNhbiBzZXQgdGhlIHBhdGggd2hlcmUgZG90IAotIyBjYW4gZmluZCBp
dCB1c2luZyB0aGlzIHRhZy4KKyMgQnkgZGVmYXVsdCBkb3h5Z2VuIHdpbGwgdGVsbCBkb3QgdG8g
dXNlIHRoZSBkZWZhdWx0IGZvbnQgYXMgc3BlY2lmaWVkIHdpdGgKKyMgRE9UX0ZPTlROQU1FLiBJ
ZiB5b3Ugc3BlY2lmeSBhIGRpZmZlcmVudCBmb250IHVzaW5nIERPVF9GT05UTkFNRSB5b3UgY2Fu
IHNldAorIyB0aGUgcGF0aCB3aGVyZSBkb3QgY2FuIGZpbmQgaXQgdXNpbmcgdGhpcyB0YWcuCisj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgog
Ci1ET1RfRk9OVFBBVEggICAgICAgICAgID0gCitET1RfRk9OVFBBVEggICAgICAgICAgID0KIAot
IyBJZiB0aGUgQ0xBU1NfR1JBUEggYW5kIEhBVkVfRE9UIHRhZ3MgYXJlIHNldCB0byBZRVMgdGhl
biBkb3h5Z2VuIAotIyB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yIGVhY2ggZG9jdW1lbnRlZCBj
bGFzcyBzaG93aW5nIHRoZSBkaXJlY3QgYW5kIAotIyBpbmRpcmVjdCBpbmhlcml0YW5jZSByZWxh
dGlvbnMuIFNldHRpbmcgdGhpcyB0YWcgdG8gWUVTIHdpbGwgZm9yY2UgdGhlIAotIyB0aGUgQ0xB
U1NfRElBR1JBTVMgdGFnIHRvIE5PLgorIyBJZiB0aGUgQ0xBU1NfR1JBUEggdGFnIGlzIHNldCB0
byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IKKyMgZWFjaCBkb2N1
bWVudGVkIGNsYXNzIHNob3dpbmcgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QgaW5oZXJpdGFuY2Ug
cmVsYXRpb25zLgorIyBTZXR0aW5nIHRoaXMgdGFnIHRvIFlFUyB3aWxsIGZvcmNlIHRoZSBDTEFT
U19ESUFHUkFNUyB0YWcgdG8gTk8uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBD
TEFTU19HUkFQSCAgICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIENPTExBQk9SQVRJT05fR1JB
UEggYW5kIEhBVkVfRE9UIHRhZ3MgYXJlIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIAotIyB3aWxs
IGdlbmVyYXRlIGEgZ3JhcGggZm9yIGVhY2ggZG9jdW1lbnRlZCBjbGFzcyBzaG93aW5nIHRoZSBk
aXJlY3QgYW5kIAotIyBpbmRpcmVjdCBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbmNpZXMgKGluaGVy
aXRhbmNlLCBjb250YWlubWVudCwgYW5kIAotIyBjbGFzcyByZWZlcmVuY2VzIHZhcmlhYmxlcykg
b2YgdGhlIGNsYXNzIHdpdGggb3RoZXIgZG9jdW1lbnRlZCBjbGFzc2VzLgorIyBJZiB0aGUgQ09M
TEFCT1JBVElPTl9HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5l
cmF0ZSBhCisjIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGly
ZWN0IGFuZCBpbmRpcmVjdCBpbXBsZW1lbnRhdGlvbgorIyBkZXBlbmRlbmNpZXMgKGluaGVyaXRh
bmNlLCBjb250YWlubWVudCwgYW5kIGNsYXNzIHJlZmVyZW5jZXMgdmFyaWFibGVzKSBvZiB0aGUK
KyMgY2xhc3Mgd2l0aCBvdGhlciBkb2N1bWVudGVkIGNsYXNzZXMuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBp
cyBzZXQgdG8gWUVTLgogCiBDT0xMQUJPUkFUSU9OX0dSQVBIICAgID0gWUVTCiAKLSMgSWYgdGhl
IEdST1VQX0dSQVBIUyBhbmQgSEFWRV9ET1QgdGFncyBhcmUgc2V0IHRvIFlFUyB0aGVuIGRveHln
ZW4gCi0jIHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IgZ3JvdXBzLCBzaG93aW5nIHRoZSBkaXJl
Y3QgZ3JvdXBzIGRlcGVuZGVuY2llcworIyBJZiB0aGUgR1JPVVBfR1JBUEhTIHRhZyBpcyBzZXQg
dG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yCisjIGdyb3Vwcywg
c2hvd2luZyB0aGUgZGlyZWN0IGdyb3VwcyBkZXBlbmRlbmNpZXMuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBp
cyBzZXQgdG8gWUVTLgogCiBHUk9VUF9HUkFQSFMgICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhl
IFVNTF9MT09LIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBpbmhlcml0
YW5jZSBhbmQgCi0jIGNvbGxhYm9yYXRpb24gZGlhZ3JhbXMgaW4gYSBzdHlsZSBzaW1pbGFyIHRv
IHRoZSBPTUcncyBVbmlmaWVkIE1vZGVsaW5nIAorIyBJZiB0aGUgVU1MX0xPT0sgdGFnIGlzIHNl
dCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGluaGVyaXRhbmNlIGFuZAorIyBjb2xsYWJv
cmF0aW9uIGRpYWdyYW1zIGluIGEgc3R5bGUgc2ltaWxhciB0byB0aGUgT01HJ3MgVW5pZmllZCBN
b2RlbGluZwogIyBMYW5ndWFnZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogVU1M
X0xPT0sgICAgICAgICAgICAgICA9ICVVTUxfTE9PSyUKIAotIyBJZiBzZXQgdG8gWUVTLCB0aGUg
aW5oZXJpdGFuY2UgYW5kIGNvbGxhYm9yYXRpb24gZ3JhcGhzIHdpbGwgc2hvdyB0aGUgCi0jIHJl
bGF0aW9ucyBiZXR3ZWVuIHRlbXBsYXRlcyBhbmQgdGhlaXIgaW5zdGFuY2VzLgorIyBJZiB0aGUg
VU1MX0xPT0sgdGFnIGlzIGVuYWJsZWQsIHRoZSBmaWVsZHMgYW5kIG1ldGhvZHMgYXJlIHNob3du
IGluc2lkZSB0aGUKKyMgY2xhc3Mgbm9kZS4gSWYgdGhlcmUgYXJlIG1hbnkgZmllbGRzIG9yIG1l
dGhvZHMgYW5kIG1hbnkgbm9kZXMgdGhlIGdyYXBoIG1heQorIyBiZWNvbWUgdG9vIGJpZyB0byBi
ZSB1c2VmdWwuIFRoZSBVTUxfTElNSVRfTlVNX0ZJRUxEUyB0aHJlc2hvbGQgbGltaXRzIHRoZQor
IyBudW1iZXIgb2YgaXRlbXMgZm9yIGVhY2ggdHlwZSB0byBtYWtlIHRoZSBzaXplIG1vcmUgbWFu
YWdlYWJsZS4gU2V0IHRoaXMgdG8gMAorIyBmb3Igbm8gbGltaXQuIE5vdGUgdGhhdCB0aGUgdGhy
ZXNob2xkIG1heSBiZSBleGNlZWRlZCBieSA1MCUgYmVmb3JlIHRoZSBsaW1pdAorIyBpcyBlbmZv
cmNlZC4gU28gd2hlbiB5b3Ugc2V0IHRoZSB0aHJlc2hvbGQgdG8gMTAsIHVwIHRvIDE1IGZpZWxk
cyBtYXkgYXBwZWFyLAorIyBidXQgaWYgdGhlIG51bWJlciBleGNlZWRzIDE1LCB0aGUgdG90YWwg
YW1vdW50IG9mIGZpZWxkcyBzaG93biBpcyBsaW1pdGVkIHRvCisjIDEwLgorIyBNaW5pbXVtIHZh
bHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAxMDAsIGRlZmF1bHQgdmFsdWU6IDEwLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworVU1MX0xJ
TUlUX05VTV9GSUVMRFMgICA9IDEwCisKKyMgSWYgdGhlIFRFTVBMQVRFX1JFTEFUSU9OUyB0YWcg
aXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBpbmhlcml0YW5jZSBhbmQKKyMgY29sbGFib3JhdGlvbiBn
cmFwaHMgd2lsbCBzaG93IHRoZSByZWxhdGlvbnMgYmV0d2VlbiB0ZW1wbGF0ZXMgYW5kIHRoZWly
CisjIGluc3RhbmNlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogVEVNUExBVEVf
UkVMQVRJT05TICAgICA9IFlFUwogCi0jIElmIHRoZSBFTkFCTEVfUFJFUFJPQ0VTU0lORywgU0VB
UkNIX0lOQ0xVREVTLCBJTkNMVURFX0dSQVBILCBhbmQgSEFWRV9ET1QgCi0jIHRhZ3MgYXJlIHNl
dCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IgZWFjaCBkb2N1
bWVudGVkIAotIyBmaWxlIHNob3dpbmcgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QgaW5jbHVkZSBk
ZXBlbmRlbmNpZXMgb2YgdGhlIGZpbGUgd2l0aCAKLSMgb3RoZXIgZG9jdW1lbnRlZCBmaWxlcy4K
KyMgSWYgdGhlIElOQ0xVREVfR1JBUEgsIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGFuZCBTRUFSQ0hf
SU5DTFVERVMgdGFncyBhcmUgc2V0IHRvCisjIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0
ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgZmlsZSBzaG93aW5nIHRoZQorIyBkaXJlY3Qg
YW5kIGluZGlyZWN0IGluY2x1ZGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBmaWxlIHdpdGggb3RoZXIg
ZG9jdW1lbnRlZAorIyBmaWxlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhp
cyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIElO
Q0xVREVfR1JBUEggICAgICAgICAgPSBZRVMKIAotIyBJZiB0aGUgRU5BQkxFX1BSRVBST0NFU1NJ
TkcsIFNFQVJDSF9JTkNMVURFUywgSU5DTFVERURfQllfR1JBUEgsIGFuZCAKLSMgSEFWRV9ET1Qg
dGFncyBhcmUgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZv
ciBlYWNoIAotIyBkb2N1bWVudGVkIGhlYWRlciBmaWxlIHNob3dpbmcgdGhlIGRvY3VtZW50ZWQg
ZmlsZXMgdGhhdCBkaXJlY3RseSBvciAKLSMgaW5kaXJlY3RseSBpbmNsdWRlIHRoaXMgZmlsZS4K
KyMgSWYgdGhlIElOQ0xVREVEX0JZX0dSQVBILCBFTkFCTEVfUFJFUFJPQ0VTU0lORyBhbmQgU0VB
UkNIX0lOQ0xVREVTIHRhZ3MgYXJlCisjIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgYSBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGZpbGUgc2hvd2luZworIyB0aGUgZGly
ZWN0IGFuZCBpbmRpcmVjdCBpbmNsdWRlIGRlcGVuZGVuY2llcyBvZiB0aGUgZmlsZSB3aXRoIG90
aGVyIGRvY3VtZW50ZWQKKyMgZmlsZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgog
CiBJTkNMVURFRF9CWV9HUkFQSCAgICAgID0gWUVTCiAKLSMgSWYgdGhlIENBTExfR1JBUEggYW5k
IEhBVkVfRE9UIG9wdGlvbnMgYXJlIHNldCB0byBZRVMgdGhlbiAKLSMgZG94eWdlbiB3aWxsIGdl
bmVyYXRlIGEgY2FsbCBkZXBlbmRlbmN5IGdyYXBoIGZvciBldmVyeSBnbG9iYWwgZnVuY3Rpb24g
Ci0jIG9yIGNsYXNzIG1ldGhvZC4gTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwg
c2lnbmlmaWNhbnRseSBpbmNyZWFzZSAKLSMgdGhlIHRpbWUgb2YgYSBydW4uIFNvIGluIG1vc3Qg
Y2FzZXMgaXQgd2lsbCBiZSBiZXR0ZXIgdG8gZW5hYmxlIGNhbGwgZ3JhcGhzIAotIyBmb3Igc2Vs
ZWN0ZWQgZnVuY3Rpb25zIG9ubHkgdXNpbmcgdGhlIFxjYWxsZ3JhcGggY29tbWFuZC4KKyMgSWYg
dGhlIENBTExfR1JBUEggdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJh
dGUgYSBjYWxsCisjIGRlcGVuZGVuY3kgZ3JhcGggZm9yIGV2ZXJ5IGdsb2JhbCBmdW5jdGlvbiBv
ciBjbGFzcyBtZXRob2QuCisjCisjIE5vdGUgdGhhdCBlbmFibGluZyB0aGlzIG9wdGlvbiB3aWxs
IHNpZ25pZmljYW50bHkgaW5jcmVhc2UgdGhlIHRpbWUgb2YgYSBydW4uCisjIFNvIGluIG1vc3Qg
Y2FzZXMgaXQgd2lsbCBiZSBiZXR0ZXIgdG8gZW5hYmxlIGNhbGwgZ3JhcGhzIGZvciBzZWxlY3Rl
ZAorIyBmdW5jdGlvbnMgb25seSB1c2luZyB0aGUgXGNhbGxncmFwaCBjb21tYW5kLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBI
QVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBDQUxMX0dSQVBIICAgICAgICAgICAgID0gTk8KIAot
IyBJZiB0aGUgQ0FMTEVSX0dSQVBIIGFuZCBIQVZFX0RPVCB0YWdzIGFyZSBzZXQgdG8gWUVTIHRo
ZW4gCi0jIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNhbGxlciBkZXBlbmRlbmN5IGdyYXBoIGZv
ciBldmVyeSBnbG9iYWwgZnVuY3Rpb24gCi0jIG9yIGNsYXNzIG1ldGhvZC4gTm90ZSB0aGF0IGVu
YWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgc2lnbmlmaWNhbnRseSBpbmNyZWFzZSAKLSMgdGhlIHRp
bWUgb2YgYSBydW4uIFNvIGluIG1vc3QgY2FzZXMgaXQgd2lsbCBiZSBiZXR0ZXIgdG8gZW5hYmxl
IGNhbGxlciAKLSMgZ3JhcGhzIGZvciBzZWxlY3RlZCBmdW5jdGlvbnMgb25seSB1c2luZyB0aGUg
XGNhbGxlcmdyYXBoIGNvbW1hbmQuCisjIElmIHRoZSBDQUxMRVJfR1JBUEggdGFnIGlzIHNldCB0
byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjYWxsZXIKKyMgZGVwZW5kZW5jeSBn
cmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1bmN0aW9uIG9yIGNsYXNzIG1ldGhvZC4KKyMKKyMgTm90
ZSB0aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgc2lnbmlmaWNhbnRseSBpbmNyZWFzZSB0
aGUgdGltZSBvZiBhIHJ1bi4KKyMgU28gaW4gbW9zdCBjYXNlcyBpdCB3aWxsIGJlIGJldHRlciB0
byBlbmFibGUgY2FsbGVyIGdyYXBocyBmb3Igc2VsZWN0ZWQKKyMgZnVuY3Rpb25zIG9ubHkgdXNp
bmcgdGhlIFxjYWxsZXJncmFwaCBjb21tYW5kLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVT
LgogCiBDQUxMRVJfR1JBUEggICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIEdSQVBISUNBTF9I
SUVSQVJDSFkgYW5kIEhBVkVfRE9UIHRhZ3MgYXJlIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIAot
IyB3aWxsIGdyYXBoaWNhbCBoaWVyYXJjaHkgb2YgYWxsIGNsYXNzZXMgaW5zdGVhZCBvZiBhIHRl
eHR1YWwgb25lLgorIyBJZiB0aGUgR1JBUEhJQ0FMX0hJRVJBUkNIWSB0YWcgaXMgc2V0IHRvIFlF
UyB0aGVuIGRveHlnZW4gd2lsbCBncmFwaGljYWwKKyMgaGllcmFyY2h5IG9mIGFsbCBjbGFzc2Vz
IGluc3RlYWQgb2YgYSB0ZXh0dWFsIG9uZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CiAKIEdSQVBISUNBTF9ISUVSQVJDSFkgICAgPSBZRVMKIAotIyBJZiB0aGUgRElSRUNUT1JZX0dS
QVBILCBTSE9XX0RJUkVDVE9SSUVTIGFuZCBIQVZFX0RPVCB0YWdzIGFyZSBzZXQgdG8gWUVTIAot
IyB0aGVuIGRveHlnZW4gd2lsbCBzaG93IHRoZSBkZXBlbmRlbmNpZXMgYSBkaXJlY3RvcnkgaGFz
IG9uIG90aGVyIGRpcmVjdG9yaWVzIAotIyBpbiBhIGdyYXBoaWNhbCB3YXkuIFRoZSBkZXBlbmRl
bmN5IHJlbGF0aW9ucyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgI2luY2x1ZGUgCi0jIHJlbGF0aW9u
cyBiZXR3ZWVuIHRoZSBmaWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuCisjIElmIHRoZSBESVJFQ1RP
UllfR1JBUEggdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc2hvdyB0aGUKKyMg
ZGVwZW5kZW5jaWVzIGEgZGlyZWN0b3J5IGhhcyBvbiBvdGhlciBkaXJlY3RvcmllcyBpbiBhIGdy
YXBoaWNhbCB3YXkuIFRoZQorIyBkZXBlbmRlbmN5IHJlbGF0aW9ucyBhcmUgZGV0ZXJtaW5lZCBi
eSB0aGUgI2luY2x1ZGUgcmVsYXRpb25zIGJldHdlZW4gdGhlCisjIGZpbGVzIGluIHRoZSBkaXJl
Y3Rvcmllcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERJUkVDVE9SWV9HUkFQ
SCAgICAgICAgPSBZRVMKIAotIyBUaGUgRE9UX0lNQUdFX0ZPUk1BVCB0YWcgY2FuIGJlIHVzZWQg
dG8gc2V0IHRoZSBpbWFnZSBmb3JtYXQgb2YgdGhlIGltYWdlcyAKLSMgZ2VuZXJhdGVkIGJ5IGRv
dC4gUG9zc2libGUgdmFsdWVzIGFyZSBwbmcsIGpwZywgb3IgZ2lmIAotIyBJZiBsZWZ0IGJsYW5r
IHBuZyB3aWxsIGJlIHVzZWQuCisjIFRoZSBET1RfSU1BR0VfRk9STUFUIHRhZyBjYW4gYmUgdXNl
ZCB0byBzZXQgdGhlIGltYWdlIGZvcm1hdCBvZiB0aGUgaW1hZ2VzCisjIGdlbmVyYXRlZCBieSBk
b3QuCisjIE5vdGU6IElmIHlvdSBjaG9vc2Ugc3ZnIHlvdSBuZWVkIHRvIHNldCBIVE1MX0ZJTEVf
RVhURU5TSU9OIHRvIHhodG1sIGluIG9yZGVyCisjIHRvIG1ha2UgdGhlIFNWRyBmaWxlcyB2aXNp
YmxlIGluIElFIDkrIChvdGhlciBicm93c2VycyBkbyBub3QgaGF2ZSB0aGlzCisjIHJlcXVpcmVt
ZW50KS4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTogcG5nLCBqcGcsIGdpZiBhbmQgc3ZnLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogcG5nLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogRE9UX0lNQUdFX0ZPUk1BVCAgICAgICA9IHBu
ZwogCi0jIFRoZSB0YWcgRE9UX1BBVEggY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgcGF0aCB3
aGVyZSB0aGUgZG90IHRvb2wgY2FuIGJlIAorIyBJZiBET1RfSU1BR0VfRk9STUFUIGlzIHNldCB0
byBzdmcsIHRoZW4gdGhpcyBvcHRpb24gY2FuIGJlIHNldCB0byBZRVMgdG8KKyMgZW5hYmxlIGdl
bmVyYXRpb24gb2YgaW50ZXJhY3RpdmUgU1ZHIGltYWdlcyB0aGF0IGFsbG93IHpvb21pbmcgYW5k
IHBhbm5pbmcuCisjCisjIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIGEgbW9kZXJuIGJyb3dzZXIg
b3RoZXIgdGhhbiBJbnRlcm5ldCBFeHBsb3Jlci4gVGVzdGVkCisjIGFuZCB3b3JraW5nIGFyZSBG
aXJlZm94LCBDaHJvbWUsIFNhZmFyaSwgYW5kIE9wZXJhLgorIyBOb3RlOiBGb3IgSUUgOSsgeW91
IG5lZWQgdG8gc2V0IEhUTUxfRklMRV9FWFRFTlNJT04gdG8geGh0bWwgaW4gb3JkZXIgdG8gbWFr
ZQorIyB0aGUgU1ZHIGZpbGVzIHZpc2libGUuIE9sZGVyIHZlcnNpb25zIG9mIElFIGRvIG5vdCBo
YXZlIFNWRyBzdXBwb3J0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitJTlRFUkFD
VElWRV9TVkcgICAgICAgID0gTk8KKworIyBUaGUgRE9UX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRv
IHNwZWNpZnkgdGhlIHBhdGggd2hlcmUgdGhlIGRvdCB0b29sIGNhbiBiZQogIyBmb3VuZC4gSWYg
bGVmdCBibGFuaywgaXQgaXMgYXNzdW1lZCB0aGUgZG90IHRvb2wgY2FuIGJlIGZvdW5kIGluIHRo
ZSBwYXRoLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0
IHRvIFlFUy4KIAogRE9UX1BBVEggICAgICAgICAgICAgICA9ICVET1RfUEFUSCUKIAotIyBUaGUg
RE9URklMRV9ESVJTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGRpcmVj
dG9yaWVzIHRoYXQgCi0jIGNvbnRhaW4gZG90IGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRo
ZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIAotIyBcZG90ZmlsZSBjb21tYW5kKS4KKyMgVGhlIERP
VEZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3Rv
cmllcyB0aGF0CisjIGNvbnRhaW4gZG90IGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBk
b2N1bWVudGF0aW9uIChzZWUgdGhlIFxkb3RmaWxlCisjIGNvbW1hbmQpLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworRE9URklMRV9E
SVJTICAgICAgICAgICA9CisKKyMgVGhlIE1TQ0ZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8g
c3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0CisjIGNvbnRhaW4gbXNjIGZpbGVz
IHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIFxtc2NmaWxl
CisjIGNvbW1hbmQpLgogCi1ET1RGSUxFX0RJUlMgICAgICAgICAgID0gCitNU0NGSUxFX0RJUlMg
ICAgICAgICAgID0KIAotIyBUaGUgRE9UX0dSQVBIX01BWF9OT0RFUyB0YWcgY2FuIGJlIHVzZWQg
dG8gc2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiAKLSMgbm9kZXMgdGhhdCB3aWxsIGJlIHNob3du
IGluIHRoZSBncmFwaC4gSWYgdGhlIG51bWJlciBvZiBub2RlcyBpbiBhIGdyYXBoIAotIyBiZWNv
bWVzIGxhcmdlciB0aGFuIHRoaXMgdmFsdWUsIGRveHlnZW4gd2lsbCB0cnVuY2F0ZSB0aGUgZ3Jh
cGgsIHdoaWNoIGlzIAotIyB2aXN1YWxpemVkIGJ5IHJlcHJlc2VudGluZyBhIG5vZGUgYXMgYSBy
ZWQgYm94LiBOb3RlIHRoYXQgZG94eWdlbiBpZiB0aGUgCi0jIG51bWJlciBvZiBkaXJlY3QgY2hp
bGRyZW4gb2YgdGhlIHJvb3Qgbm9kZSBpbiBhIGdyYXBoIGlzIGFscmVhZHkgbGFyZ2VyIHRoYW4g
Ci0jIERPVF9HUkFQSF9NQVhfTk9ERVMgdGhlbiB0aGUgZ3JhcGggd2lsbCBub3QgYmUgc2hvd24g
YXQgYWxsLiBBbHNvIG5vdGUgCi0jIHRoYXQgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVy
dGhlciByZXN0cmljdGVkIGJ5IE1BWF9ET1RfR1JBUEhfREVQVEguCisjIFRoZSBET1RfR1JBUEhf
TUFYX05PREVTIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5v
ZGVzCisjIHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUgZ3JhcGguIElmIHRoZSBudW1iZXIgb2Yg
bm9kZXMgaW4gYSBncmFwaCBiZWNvbWVzCisjIGxhcmdlciB0aGFuIHRoaXMgdmFsdWUsIGRveHln
ZW4gd2lsbCB0cnVuY2F0ZSB0aGUgZ3JhcGgsIHdoaWNoIGlzIHZpc3VhbGl6ZWQKKyMgYnkgcmVw
cmVzZW50aW5nIGEgbm9kZSBhcyBhIHJlZCBib3guIE5vdGUgdGhhdCBkb3h5Z2VuIGlmIHRoZSBu
dW1iZXIgb2YgZGlyZWN0CisjIGNoaWxkcmVuIG9mIHRoZSByb290IG5vZGUgaW4gYSBncmFwaCBp
cyBhbHJlYWR5IGxhcmdlciB0aGFuCisjIERPVF9HUkFQSF9NQVhfTk9ERVMgdGhlbiB0aGUgZ3Jh
cGggd2lsbCBub3QgYmUgc2hvd24gYXQgYWxsLiBBbHNvIG5vdGUgdGhhdAorIyB0aGUgc2l6ZSBv
ZiBhIGdyYXBoIGNhbiBiZSBmdXJ0aGVyIHJlc3RyaWN0ZWQgYnkgTUFYX0RPVF9HUkFQSF9ERVBU
SC4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTAwMDAsIGRlZmF1bHQgdmFs
dWU6IDUwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0
IHRvIFlFUy4KIAogRE9UX0dSQVBIX01BWF9OT0RFUyAgICA9IDUwCiAKLSMgVGhlIE1BWF9ET1Rf
R1JBUEhfREVQVEggdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWF4aW11bSBkZXB0aCBvZiB0
aGUgCi0jIGdyYXBocyBnZW5lcmF0ZWQgYnkgZG90LiBBIGRlcHRoIHZhbHVlIG9mIDMgbWVhbnMg
dGhhdCBvbmx5IG5vZGVzIHJlYWNoYWJsZSAKLSMgZnJvbSB0aGUgcm9vdCBieSBmb2xsb3dpbmcg
YSBwYXRoIHZpYSBhdCBtb3N0IDMgZWRnZXMgd2lsbCBiZSBzaG93bi4gTm9kZXMgCi0jIHRoYXQg
bGF5IGZ1cnRoZXIgZnJvbSB0aGUgcm9vdCBub2RlIHdpbGwgYmUgb21pdHRlZC4gTm90ZSB0aGF0
IHNldHRpbmcgdGhpcyAKLSMgb3B0aW9uIHRvIDEgb3IgMiBtYXkgZ3JlYXRseSByZWR1Y2UgdGhl
IGNvbXB1dGF0aW9uIHRpbWUgbmVlZGVkIGZvciBsYXJnZSAKLSMgY29kZSBiYXNlcy4gQWxzbyBu
b3RlIHRoYXQgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVydGhlciByZXN0cmljdGVkIGJ5
IAorIyBUaGUgTUFYX0RPVF9HUkFQSF9ERVBUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBt
YXhpbXVtIGRlcHRoIG9mIHRoZSBncmFwaHMKKyMgZ2VuZXJhdGVkIGJ5IGRvdC4gQSBkZXB0aCB2
YWx1ZSBvZiAzIG1lYW5zIHRoYXQgb25seSBub2RlcyByZWFjaGFibGUgZnJvbSB0aGUKKyMgcm9v
dCBieSBmb2xsb3dpbmcgYSBwYXRoIHZpYSBhdCBtb3N0IDMgZWRnZXMgd2lsbCBiZSBzaG93bi4g
Tm9kZXMgdGhhdCBsYXkKKyMgZnVydGhlciBmcm9tIHRoZSByb290IG5vZGUgd2lsbCBiZSBvbWl0
dGVkLiBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIG9wdGlvbiB0byAxCisjIG9yIDIgbWF5IGdyZWF0
bHkgcmVkdWNlIHRoZSBjb21wdXRhdGlvbiB0aW1lIG5lZWRlZCBmb3IgbGFyZ2UgY29kZSBiYXNl
cy4gQWxzbworIyBub3RlIHRoYXQgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVydGhlciBy
ZXN0cmljdGVkIGJ5CiAjIERPVF9HUkFQSF9NQVhfTk9ERVMuIFVzaW5nIGEgZGVwdGggb2YgMCBt
ZWFucyBubyBkZXB0aCByZXN0cmljdGlvbi4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2
YWx1ZTogMTAwMCwgZGVmYXVsdCB2YWx1ZTogMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIE1BWF9ET1RfR1JBUEhfREVQVEggICAg
PSAxMDAwCiAKLSMgU2V0IHRoZSBET1RfVFJBTlNQQVJFTlQgdGFnIHRvIFlFUyB0byBnZW5lcmF0
ZSBpbWFnZXMgd2l0aCBhIHRyYW5zcGFyZW50IAotIyBiYWNrZ3JvdW5kLiBUaGlzIGlzIGRpc2Fi
bGVkIGJ5IGRlZmF1bHQsIGJlY2F1c2UgZG90IG9uIFdpbmRvd3MgZG9lcyBub3QgCi0jIHNlZW0g
dG8gc3VwcG9ydCB0aGlzIG91dCBvZiB0aGUgYm94LiBXYXJuaW5nOiBEZXBlbmRpbmcgb24gdGhl
IHBsYXRmb3JtIHVzZWQsIAotIyBlbmFibGluZyB0aGlzIG9wdGlvbiBtYXkgbGVhZCB0byBiYWRs
eSBhbnRpLWFsaWFzZWQgbGFiZWxzIG9uIHRoZSBlZGdlcyBvZiAKLSMgYSBncmFwaCAoaS5lLiB0
aGV5IGJlY29tZSBoYXJkIHRvIHJlYWQpLgorIyBTZXQgdGhlIERPVF9UUkFOU1BBUkVOVCB0YWcg
dG8gWUVTIHRvIGdlbmVyYXRlIGltYWdlcyB3aXRoIGEgdHJhbnNwYXJlbnQKKyMgYmFja2dyb3Vu
ZC4gVGhpcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBiZWNhdXNlIGRvdCBvbiBXaW5kb3dzIGRv
ZXMgbm90IHNlZW0KKyMgdG8gc3VwcG9ydCB0aGlzIG91dCBvZiB0aGUgYm94LgorIworIyBXYXJu
aW5nOiBEZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtIHVzZWQsIGVuYWJsaW5nIHRoaXMgb3B0aW9u
IG1heSBsZWFkIHRvCisjIGJhZGx5IGFudGktYWxpYXNlZCBsYWJlbHMgb24gdGhlIGVkZ2VzIG9m
IGEgZ3JhcGggKGkuZS4gdGhleSBiZWNvbWUgaGFyZCB0bworIyByZWFkKS4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9E
T1QgaXMgc2V0IHRvIFlFUy4KIAogRE9UX1RSQU5TUEFSRU5UICAgICAgICA9IE5PCiAKLSMgU2V0
IHRoZSBET1RfTVVMVElfVEFSR0VUUyB0YWcgdG8gWUVTIGFsbG93IGRvdCB0byBnZW5lcmF0ZSBt
dWx0aXBsZSBvdXRwdXQgCi0jIGZpbGVzIGluIG9uZSBydW4gKGkuZS4gbXVsdGlwbGUgLW8gYW5k
IC1UIG9wdGlvbnMgb24gdGhlIGNvbW1hbmQgbGluZSkuIFRoaXMgCi0jIG1ha2VzIGRvdCBydW4g
ZmFzdGVyLCBidXQgc2luY2Ugb25seSBuZXdlciB2ZXJzaW9ucyBvZiBkb3QgKD4xLjguMTApIAot
IyBzdXBwb3J0IHRoaXMsIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LgorIyBT
ZXQgdGhlIERPVF9NVUxUSV9UQVJHRVRTIHRhZyB0byBZRVMgYWxsb3cgZG90IHRvIGdlbmVyYXRl
IG11bHRpcGxlIG91dHB1dAorIyBmaWxlcyBpbiBvbmUgcnVuIChpLmUuIG11bHRpcGxlIC1vIGFu
ZCAtVCBvcHRpb25zIG9uIHRoZSBjb21tYW5kIGxpbmUpLiBUaGlzCisjIG1ha2VzIGRvdCBydW4g
ZmFzdGVyLCBidXQgc2luY2Ugb25seSBuZXdlciB2ZXJzaW9ucyBvZiBkb3QgKD4xLjguMTApIHN1
cHBvcnQKKyMgdGhpcywgdGhpcyBmZWF0dXJlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9NVUxUSV9UQVJHRVRTICAgICAgPSBZRVMK
IAotIyBJZiB0aGUgR0VORVJBVEVfTEVHRU5EIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVs
dCkgRG94eWdlbiB3aWxsIAotIyBnZW5lcmF0ZSBhIGxlZ2VuZCBwYWdlIGV4cGxhaW5pbmcgdGhl
IG1lYW5pbmcgb2YgdGhlIHZhcmlvdXMgYm94ZXMgYW5kIAotIyBhcnJvd3MgaW4gdGhlIGRvdCBn
ZW5lcmF0ZWQgZ3JhcGhzLgorIyBJZiB0aGUgR0VORVJBVEVfTEVHRU5EIHRhZyBpcyBzZXQgdG8g
WUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGxlZ2VuZCBwYWdlCisjIGV4cGxhaW5pbmcgdGhl
IG1lYW5pbmcgb2YgdGhlIHZhcmlvdXMgYm94ZXMgYW5kIGFycm93cyBpbiB0aGUgZG90IGdlbmVy
YXRlZAorIyBncmFwaHMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBHRU5FUkFU
RV9MRUdFTkQgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIERPVF9DTEVBTlVQIHRhZyBpcyBzZXQg
dG8gWUVTICh0aGUgZGVmYXVsdCkgRG94eWdlbiB3aWxsIAotIyByZW1vdmUgdGhlIGludGVybWVk
aWF0ZSBkb3QgZmlsZXMgdGhhdCBhcmUgdXNlZCB0byBnZW5lcmF0ZSAKLSMgdGhlIHZhcmlvdXMg
Z3JhcGhzLgorIyBJZiB0aGUgRE9UX0NMRUFOVVAgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3
aWxsIHJlbW92ZSB0aGUgaW50ZXJtZWRpYXRlIGRvdAorIyBmaWxlcyB0aGF0IGFyZSB1c2VkIHRv
IGdlbmVyYXRlIHRoZSB2YXJpb3VzIGdyYXBocy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlF
Uy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZ
RVMuCiAKIERPVF9DTEVBTlVQICAgICAgICAgICAgPSBZRVMKLQotIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyBPcHRpb25zIHJlbGF0ZWQgdG8gdGhlIHNlYXJjaCBlbmdpbmUKLSMtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLQotIyBUaGUgU0VBUkNIRU5HSU5FIHRhZyBzcGVjaWZpZXMgd2hldGhlciBvciBub3Qg
YSBzZWFyY2ggZW5naW5lIHNob3VsZCBiZSAKLSMgdXNlZC4gSWYgc2V0IHRvIE5PIHRoZSB2YWx1
ZXMgb2YgYWxsIHRhZ3MgYmVsb3cgdGhpcyBvbmUgd2lsbCBiZSBpZ25vcmVkLgotCi1TRUFSQ0hF
TkdJTkUgICAgICAgICAgID0gTk8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2Zvb3Rlci5odG1sIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9kb2MvZm9vdGVyLmh0bWwKaW5kZXggYTYxZDk1MjhhMTYxNTlmYjdjMGMwNjdmNzQzOTU0
ZDE5MTc3ZDExMy4uYTI0YmYyYjliNDdlOTk5MjI1Mjg5ZmU4YjYxYjIwZWI5Y2ZiNWNkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9kb2MvZm9vdGVyLmh0bWwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2MvZm9vdGVyLmh0bWwK
QEAgLTEsMjMgKzEsMjEgQEAKLTxocj4KLTx0YWJsZSB3aWR0aD0iMTAwJSI+Ci0gIDx0cj4KLSAg
ICA8dGQgd2lkdGg9IjEwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0iY2VudGVyIj4KLSAgICAgIDxh
IGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQiPiAKLSAgICAgIDxpbWcKLSAgICAgIHNyYz0i
aHR0cDovL3NvdXJjZWZvcmdlLm5ldC9zZmxvZ28ucGhwP2dyb3VwX2lkPTE0NDQ0NiIKLSAgICAg
IHdpZHRoPSI4OCIgaGVpZ2h0PSIzMSIgYm9yZGVyPSIwIiBhbHQ9IlNvdXJjZUZvcmdlIExvZ28i
PjwvYT4KLSAgICA8L3RkPgotICAgIDx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0ibGVmdCIgdmFsaWdu
PSJjZW50ZXIiPgotICAgICAgaG9zdHMgdGhpcyBzaXRlLgotICAgIDwvdGQ+Ci0gICAgPHRkPgot
ICAgIDwvdGQ+Ci0gICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJjZW50ZXIiPgotICAgICAg
U2VuZCBjb21tZW50cyB0bzo8YnI+Ci0gICAgICA8YSBocmVmPSJtYWlsdG86anNvbmNwcC1kZXZl
bEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiPkpzb24tY3BwIERldmVsb3BlcnM8L2E+Ci0gICAgPC90
ZD4KLSAgPC90cj4KLTwvdGFibGU+Ci0KLTwvYm9keT4gCis8IS0tIEhUTUwgZm9vdGVyIGZvciBk
b3h5Z2VuIDEuOC4xMy0tPgorPCEtLSBzdGFydCBmb290ZXIgcGFydCAtLT4KKzwhLS1CRUdJTiBH
RU5FUkFURV9UUkVFVklFVy0tPgorPGRpdiBpZD0ibmF2LXBhdGgiIGNsYXNzPSJuYXZwYXRoIj48
IS0tIGlkIGlzIG5lZWRlZCBmb3IgdHJlZXZpZXcgZnVuY3Rpb24hIC0tPgorICA8dWw+CisgICAg
JG5hdnBhdGgKKyAgICA8bGkgY2xhc3M9ImZvb3RlciI+JGdlbmVyYXRlZGJ5CisgICAgPGEgaHJl
Zj0iaHR0cDovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIj4KKyAgICA8aW1nIGNsYXNzPSJm
b290ZXIiIHNyYz0iJHJlbHBhdGheZG94eWdlbi5wbmciIGFsdD0iZG94eWdlbiIvPjwvYT4gJGRv
eHlnZW52ZXJzaW9uIDwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKzwhLS1FTkQgR0VORVJBVEVfVFJF
RVZJRVctLT4KKzwhLS1CRUdJTiAhR0VORVJBVEVfVFJFRVZJRVctLT4KKzxociBjbGFzcz0iZm9v
dGVyIi8+PGFkZHJlc3MgY2xhc3M9ImZvb3RlciI+PHNtYWxsPgorJGdlbmVyYXRlZGJ5ICYjMTYw
OzxhIGhyZWY9Imh0dHA6Ly93d3cuZG94eWdlbi5vcmcvaW5kZXguaHRtbCI+Cis8aW1nIGNsYXNz
PSJmb290ZXIiIHNyYz0iJHJlbHBhdGheZG94eWdlbi5wbmciIGFsdD0iZG94eWdlbiIvPgorPC9h
PiAkZG94eWdlbnZlcnNpb24KKzwvc21hbGw+PC9hZGRyZXNzPgorPCEtLUVORCAhR0VORVJBVEVf
VFJFRVZJRVctLT4KKzwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2hlYWRl
ci5odG1sIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9kb2MvaGVhZGVyLmh0bWwKaW5kZXggMWE2YWQ2MTIwYWVjZjgxYjhjZTdj
MjI1ZGRkZDc0MDFmY2MyYTg1Ni4uZjBiOTNlMDg0ZDViZTZkMTBlNWI4OTkyNDIwZWQ2NzAwNGE0
MjdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2MvaGVhZGVyLmh0bWwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2MvaGVh
ZGVyLmh0bWwKQEAgLTEsMjQgKzEsNjQgQEAKLTxodG1sPgorPCEtLSBIVE1MIGhlYWRlciBmb3Ig
ZG94eWdlbiAxLjguMTMtLT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFRE
L3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIj4KIDxoZWFkPgotPHRpdGxlPgotSnNvbkNwcCAtIEpTT04gZGF0YSBmb3Jt
YXQgbWFuaXB1bGF0aW9uIGxpYnJhcnkKLTwvdGl0bGU+Ci08bGluayBocmVmPSJkb3h5Z2VuLmNz
cyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+Ci08bGluayBocmVmPSJ0YWJzLmNz
cyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+Cis8bWV0YSBodHRwLWVxdWl2PSJD
b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQveGh0bWw7Y2hhcnNldD1VVEYtOCIvPgorPG1ldGEg
aHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT05Ii8+Cis8bWV0YSBuYW1l
PSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRveHlnZW4gJGRveHlnZW52ZXJzaW9uIi8+Cis8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEiLz4KKzxsaW5rIGhyZWY9IiRyZWxwYXRoXnRhYnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIkcmVs
cGF0aF5qcXVlcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iJHJlbHBhdGheZHluc2VjdGlvbnMuanMiPjwvc2NyaXB0PgorJHRyZWV2aWV3Ciskc2Vh
cmNoCiskbWF0aGpheAorPGxpbmsgaHJlZj0iJHJlbHBhdGheJHN0eWxlc2hlZXQiIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+CiskZXh0cmFzdHlsZXNoZWV0CiA8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9InRvcCI+PCEtLSBkbyBub3QgcmVtb3ZlIHRoaXMgZGl2LCBpdCBpcyBj
bG9zZWQgYnkgZG94eWdlbiEgLS0+CiAKLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPiAKKzwhLS1C
RUdJTiBUSVRMRUFSRUEtLT4KKzxkaXYgaWQ9InRpdGxlYXJlYSI+Cis8dGFibGUgY2VsbHNwYWNp
bmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKyA8dGJvZHk+CisgPHRyIHN0eWxlPSJoZWlnaHQ6IDU2
cHg7Ij4KKyAgPCEtLUJFR0lOIFBST0pFQ1RfTE9HTy0tPgorICA8dGQgaWQ9InByb2plY3Rsb2dv
Ij48aW1nIGFsdD0iTG9nbyIgc3JjPSIkcmVscGF0aF4kcHJvamVjdGxvZ28iLz48L3RkPgorICA8
IS0tRU5EIFBST0pFQ1RfTE9HTy0tPgorICA8IS0tQkVHSU4gRElTQUJMRV9JTkRFWC0tPgorICAg
PCEtLUJFR0lOIFNFQVJDSEVOR0lORS0tPgorICAgPHRkPiRzZWFyY2hib3g8L3RkPgorICAgPCEt
LUVORCBTRUFSQ0hFTkdJTkUtLT4KKyAgPCEtLUVORCBESVNBQkxFX0lOREVYLS0+CisgPC90cj4K
KyA8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorPCEtLUVORCBUSVRMRUFSRUEtLT4KKzxib2R5
IGJnY29sb3I9IiNmZmZmZmYiPgogPHRhYmxlIHdpZHRoPSIxMDAlIj4KICAgPHRyPgotICAgIDx0
ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJjZW50ZXIiPgotICAgICAgPGEgaHJl
Zj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9qc29uY3BwLyI+CisgICAgPHRkIHdp
ZHRoPSIzMCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249ImNlbnRlciI+CisgICAgICA8YSBocmVmPSJo
dHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwIj4KICAgICAgIEpz
b25DcHAgcHJvamVjdCBwYWdlCiAgICAgICA8L2E+CiAgICAgPC90ZD4KLSAgICA8dGQgd2lkdGg9
IjQwJSIgYWxpZ249InJpZ2h0IiB2YWxpZ249ImNlbnRlciI+Ci0gICAgICA8YSBocmVmPSJodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQiPkpzb25DcHAgaG9tZSBwYWdlPC9hPgorICAgIDx0
ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIiB2YWxpZ249ImNlbnRlciI+CisgICAgICA8YSBo
cmVmPSJoaWVyYXJjaHkuaHRtbCI+CisgICAgICAgIENsYXNzZXMKKyAgICAgIDwvYT4KKyAgICA8
L3RkPgorICAgIDx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIiB2YWxpZ249ImNlbnRlciI+
CisgICAgICA8YSBocmVmPSJuYW1lc3BhY2VfanNvbi5odG1sIj4KKyAgICAgICAgTmFtZXNwYWNl
CisgICAgICA8L2E+CisgICAgPC90ZD4KKyAgICA8dGQgd2lkdGg9IjMwJSIgYWxpZ249InJpZ2h0
IiB2YWxpZ249ImNlbnRlciI+CisgICAgICA8YSBocmVmPSJodHRwOi8vb3Blbi1zb3VyY2UtcGFy
c2Vycy5naXRodWIuaW8vanNvbmNwcC1kb2NzL2RveHlnZW4vIj5Kc29uQ3BwIGhvbWUgcGFnZTwv
YT4KICAgICA8L3RkPgogICA8L3RyPgogPC90YWJsZT4KIAogPGhyPgorPCEtLSBlbmQgaGVhZGVy
IHBhcnQgLS0+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9qc29uY3BwLmRveCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2pz
b25jcHAuZG94CmluZGV4IDk3Y2MxMDhkMzMxYjFiMTFkMDBkZjg4YTE2YjIyZGFlMDUzZTFlZjku
LjQ3ZWZjOGEzNTc2Y2Y0NTRiNWNhZjI1NTgyYTM4NGNkNTBiODUzNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvZG9jL2pzb25jcHAuZG94CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2pzb25jcHAuZG94CkBAIC00LDExICs0
LDIxIEBACiAKIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmcvIj5KU09OIChKYXZhU2NyaXB0
IE9iamVjdCBOb3RhdGlvbik8L2E+CiAgaXMgYSBsaWdodHdlaWdodCBkYXRhLWludGVyY2hhbmdl
IGZvcm1hdC4gCi1JdCBjYW4gcmVwcmVzZW50IGludGVnZXIsIHJlYWwgbnVtYmVyLCBzdHJpbmcs
IGFuIG9yZGVyZWQgc2VxdWVuY2Ugb2YgdmFsdWUsIGFuZAotYSBjb2xsZWN0aW9uIG9mIG5hbWUv
dmFsdWUgcGFpcnMuCiAKIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBKU09OIGRhdGE6CiBcdmVyYmF0
aW0KK3sKKyAgICAiZW5jb2RpbmciIDogIlVURi04IiwKKyAgICAicGx1Zy1pbnMiIDogWworICAg
ICAgICAicHl0aG9uIiwKKyAgICAgICAgImMrKyIsCisgICAgICAgICJydWJ5IgorICAgICAgICBd
LAorICAgICJpbmRlbnQiIDogeyAibGVuZ3RoIiA6IDMsICJ1c2Vfc3BhY2UiOiB0cnVlIH0KK30K
K1xlbmR2ZXJiYXRpbQorPGI+SnNvbkNwcDwvYj4gc3VwcG9ydHMgY29tbWVudHMgYXMgPGk+bWV0
YS1kYXRhPC9pPjoKK1xjb2RlCiAvLyBDb25maWd1cmF0aW9uIG9wdGlvbnMKIHsKICAgICAvLyBE
ZWZhdWx0IGVuY29kaW5nIGZvciB0ZXh0CkBAIC0xNywyMSArMjcsMjIgQEAgSGVyZSBpcyBhbiBl
eGFtcGxlIG9mIEpTT04gZGF0YToKICAgICAvLyBQbHVnLWlucyBsb2FkZWQgYXQgc3RhcnQtdXAK
ICAgICAicGx1Zy1pbnMiIDogWwogICAgICAgICAicHl0aG9uIiwKLSAgICAgICAgImMrKyIsCisg
ICAgICAgICJjKysiLCAgLy8gdHJhaWxpbmcgY29tbWVudAogICAgICAgICAicnVieSIKICAgICAg
ICAgXSwKICAgICAgICAgCiAgICAgLy8gVGFiIGluZGVudCBzaXplCi0gICAgImluZGVudCIgOiB7
ICJsZW5ndGgiIDogMywgInVzZV9zcGFjZSI6IHRydWUgfQorICAgIC8vIChtdWx0aS1saW5lIGNv
bW1lbnQpCisgICAgImluZGVudCIgOiB7IC8qZW1iZWRkZWQgY29tbWVudCovICJsZW5ndGgiIDog
MywgInVzZV9zcGFjZSI6IHRydWUgfQogfQotXGVuZHZlcmJhdGltCitcZW5kY29kZQogCiBcc2Vj
dGlvbiBfZmVhdHVyZXMgRmVhdHVyZXMKIC0gcmVhZCBhbmQgd3JpdGUgSlNPTiBkb2N1bWVudAot
LSBhdHRhY2ggQyBhbmQgQysrIHN0eWxlIGNvbW1lbnRzIHRvIGVsZW1lbnQgZHVyaW5nIHBhcnNp
bmcKKy0gYXR0YWNoIEMrKyBzdHlsZSBjb21tZW50cyB0byBlbGVtZW50IGR1cmluZyBwYXJzaW5n
CiAtIHJld3JpdGUgSlNPTiBkb2N1bWVudCBwcmVzZXJ2aW5nIG9yaWdpbmFsIGNvbW1lbnRzCiAK
LU5vdGVzOiBDb21tZW50cyB1c2VkIHRvIGJlIHN1cHBvcnRlZCBpbiBKU09OIGJ1dCB3aGVyZSBy
ZW1vdmVkIGZvciAKK05vdGVzOiBDb21tZW50cyB1c2VkIHRvIGJlIHN1cHBvcnRlZCBpbiBKU09O
IGJ1dCB3ZXJlIHJlbW92ZWQgZm9yCiBwb3J0YWJpbGl0eSAoQyBsaWtlIGNvbW1lbnRzIGFyZSBu
b3Qgc3VwcG9ydGVkIGluIFB5dGhvbikuIFNpbmNlCiBjb21tZW50cyBhcmUgdXNlZnVsIGluIGNv
bmZpZ3VyYXRpb24vaW5wdXQgZmlsZSwgdGhpcyBmZWF0dXJlIHdhcwogcHJlc2VydmVkLgpAQCAt
MzksODggKzUwLDExNSBAQCBwcmVzZXJ2ZWQuCiBcc2VjdGlvbiBfZXhhbXBsZSBDb2RlIGV4YW1w
bGUKIAogXGNvZGUKLUpzb246OlZhbHVlIHJvb3Q7ICAgLy8gd2lsbCBjb250YWlucyB0aGUgcm9v
dCB2YWx1ZSBhZnRlciBwYXJzaW5nLgotSnNvbjo6UmVhZGVyIHJlYWRlcjsKLWJvb2wgcGFyc2lu
Z1N1Y2Nlc3NmdWwgPSByZWFkZXIucGFyc2UoIGNvbmZpZ19kb2MsIHJvb3QgKTsKLWlmICggIXBh
cnNpbmdTdWNjZXNzZnVsICkKLXsKLSAgICAvLyByZXBvcnQgdG8gdGhlIHVzZXIgdGhlIGZhaWx1
cmUgYW5kIHRoZWlyIGxvY2F0aW9ucyBpbiB0aGUgZG9jdW1lbnQuCi0gICAgc3RkOjpjb3V0ICA8
PCAiRmFpbGVkIHRvIHBhcnNlIGNvbmZpZ3VyYXRpb25cbiIKLSAgICAgICAgICAgICAgIDw8IHJl
YWRlci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCk7Ci0gICAgcmV0dXJuOwotfQorSnNvbjo6
VmFsdWUgcm9vdDsgICAvLyAncm9vdCcgd2lsbCBjb250YWluIHRoZSByb290IHZhbHVlIGFmdGVy
IHBhcnNpbmcuCitzdGQ6OmNpbiA+PiByb290OworCisvLyBZb3UgY2FuIGFsc28gcmVhZCBpbnRv
IGEgcGFydGljdWxhciBzdWItdmFsdWUuCitzdGQ6OmNpbiA+PiByb290WyJzdWJ0cmVlIl07CiAK
LS8vIEdldCB0aGUgdmFsdWUgb2YgdGhlIG1lbWJlciBvZiByb290IG5hbWVkICdlbmNvZGluZycs
IHJldHVybiAnVVRGLTgnIGlmIHRoZXJlIGlzIG5vCi0vLyBzdWNoIG1lbWJlci4KKy8vIEdldCB0
aGUgdmFsdWUgb2YgdGhlIG1lbWJlciBvZiByb290IG5hbWVkICdlbmNvZGluZycsCisvLyBhbmQg
cmV0dXJuICdVVEYtOCcgaWYgdGhlcmUgaXMgbm8gc3VjaCBtZW1iZXIuCiBzdGQ6OnN0cmluZyBl
bmNvZGluZyA9IHJvb3QuZ2V0KCJlbmNvZGluZyIsICJVVEYtOCIgKS5hc1N0cmluZygpOwotLy8g
R2V0IHRoZSB2YWx1ZSBvZiB0aGUgbWVtYmVyIG9mIHJvb3QgbmFtZWQgJ2VuY29kaW5nJywgcmV0
dXJuIGEgJ251bGwnIHZhbHVlIGlmCisKKy8vIEdldCB0aGUgdmFsdWUgb2YgdGhlIG1lbWJlciBv
ZiByb290IG5hbWVkICdwbHVnLWlucyc7IHJldHVybiBhICdudWxsJyB2YWx1ZSBpZgogLy8gdGhl
cmUgaXMgbm8gc3VjaCBtZW1iZXIuCiBjb25zdCBKc29uOjpWYWx1ZSBwbHVnaW5zID0gcm9vdFsi
cGx1Zy1pbnMiXTsKLWZvciAoIGludCBpbmRleCA9IDA7IGluZGV4IDwgcGx1Z2lucy5zaXplKCk7
ICsraW5kZXggKSAgLy8gSXRlcmF0ZXMgb3ZlciB0aGUgc2VxdWVuY2UgZWxlbWVudHMuCisKKy8v
IEl0ZXJhdGUgb3ZlciB0aGUgc2VxdWVuY2UgZWxlbWVudHMuCitmb3IgKCBpbnQgaW5kZXggPSAw
OyBpbmRleCA8IHBsdWdpbnMuc2l6ZSgpOyArK2luZGV4ICkKICAgIGxvYWRQbHVnSW4oIHBsdWdp
bnNbaW5kZXhdLmFzU3RyaW5nKCkgKTsKICAgIAotc2V0SW5kZW50TGVuZ3RoKCByb290WyJpbmRl
bnQiXS5nZXQoImxlbmd0aCIsIDMpLmFzSW50KCkgKTsKLXNldEluZGVudFVzZVNwYWNlKCByb290
WyJpbmRlbnQiXS5nZXQoInVzZV9zcGFjZSIsIHRydWUpLmFzQm9vbCgpICk7CisvLyBUcnkgb3Ro
ZXIgZGF0YXR5cGVzLiBTb21lIGFyZSBhdXRvLWNvbnZlcnRpYmxlIHRvIG90aGVycy4KK2Zvbzo6
c2V0SW5kZW50TGVuZ3RoKCByb290WyJpbmRlbnQiXS5nZXQoImxlbmd0aCIsIDMpLmFzSW50KCkg
KTsKK2Zvbzo6c2V0SW5kZW50VXNlU3BhY2UoIHJvb3RbImluZGVudCJdLmdldCgidXNlX3NwYWNl
IiwgdHJ1ZSkuYXNCb29sKCkgKTsKIAotLy8gLi4uCi0vLyBBdCBhcHBsaWNhdGlvbiBzaHV0ZG93
biB0byBtYWtlIHRoZSBuZXcgY29uZmlndXJhdGlvbiBkb2N1bWVudDoKLS8vIFNpbmNlIEpzb246
OlZhbHVlIGhhcyBpbXBsaWNpdCBjb25zdHJ1Y3RvciBmb3IgYWxsIHZhbHVlIHR5cGVzLCBpdCBp
cyBub3QKLS8vIG5lY2Vzc2FyeSB0byBleHBsaWNpdGx5IGNvbnN0cnVjdCB0aGUgSnNvbjo6VmFs
dWUgb2JqZWN0Ogotcm9vdFsiZW5jb2RpbmciXSA9IGdldEN1cnJlbnRFbmNvZGluZygpOwotcm9v
dFsiaW5kZW50Il1bImxlbmd0aCJdID0gZ2V0Q3VycmVudEluZGVudExlbmd0aCgpOwotcm9vdFsi
aW5kZW50Il1bInVzZV9zcGFjZSJdID0gZ2V0Q3VycmVudEluZGVudFVzZVNwYWNlKCk7Ci0KLUpz
b246OlN0eWxlZFdyaXRlciB3cml0ZXI7Ci0vLyBNYWtlIGEgbmV3IEpTT04gZG9jdW1lbnQgZm9y
IHRoZSBjb25maWd1cmF0aW9uLiBQcmVzZXJ2ZSBvcmlnaW5hbCBjb21tZW50cy4KLXN0ZDo6c3Ry
aW5nIG91dHB1dENvbmZpZyA9IHdyaXRlci53cml0ZSggcm9vdCApOwotCi0vLyBZb3UgY2FuIGFs
c28gdXNlIHN0cmVhbXMuICBUaGlzIHdpbGwgcHV0IHRoZSBjb250ZW50cyBvZiBhbnkgSlNPTgot
Ly8gc3RyZWFtIGF0IGEgcGFydGljdWxhciBzdWItdmFsdWUsIGlmIHlvdSdkIGxpa2UuCi1zdGQ6
OmNpbiA+PiByb290WyJzdWJ0cmVlIl07CisvLyBTaW5jZSBKc29uOjpWYWx1ZSBoYXMgYW4gaW1w
bGljaXQgY29uc3RydWN0b3IgZm9yIGFsbCB2YWx1ZSB0eXBlcywgaXQgaXMgbm90CisvLyBuZWNl
c3NhcnkgdG8gZXhwbGljaXRseSBjb25zdHJ1Y3QgdGhlIEpzb246OlZhbHVlIG9iamVjdC4KK3Jv
b3RbImVuY29kaW5nIl0gPSBmb286OmdldEN1cnJlbnRFbmNvZGluZygpOworcm9vdFsiaW5kZW50
Il1bImxlbmd0aCJdID0gZm9vOjpnZXRDdXJyZW50SW5kZW50TGVuZ3RoKCk7Cityb290WyJpbmRl
bnQiXVsidXNlX3NwYWNlIl0gPSBmb286OmdldEN1cnJlbnRJbmRlbnRVc2VTcGFjZSgpOwogCi0v
LyBBbmQgeW91IGNhbiB3cml0ZSB0byBhIHN0cmVhbSwgdXNpbmcgdGhlIFN0eWxlZFdyaXRlciBh
dXRvbWF0aWNhbGx5LgorLy8gSWYgeW91IGxpa2UgdGhlIGRlZmF1bHRzLCB5b3UgY2FuIGluc2Vy
dCBkaXJlY3RseSBpbnRvIGEgc3RyZWFtLgogc3RkOjpjb3V0IDw8IHJvb3Q7CisvLyBPZiBjb3Vy
c2UsIHlvdSBjYW4gd3JpdGUgdG8gYHN0ZDo6b3N0cmluZ3N0cmVhbWAgaWYgeW91IHByZWZlci4K
KworLy8gSWYgZGVzaXJlZCwgcmVtZW1iZXIgdG8gYWRkIGEgbGluZWZlZWQgYW5kIGZsdXNoLgor
c3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKIFxlbmRjb2RlCiAKLVxzZWN0aW9uIF9wYnVpbGQgQnVp
bGQgaW5zdHJ1Y3Rpb25zCi1UaGUgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFyZSBsb2NhdGVkIGluIHRo
ZSBmaWxlIAotPGEgSFJFRj0iUkVBRE1FLnR4dCI+UkVBRE1FLnR4dDwvYT4gaW4gdGhlIHRvcC1k
aXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuCitcc2VjdGlvbiBfYWR2YW5jZWQgQWR2YW5jZWQgdXNh
Z2UKIAotUGVybWFuZW50IGxpbmsgdG8gdGhlIGxhdGVzdCByZXZpc2lvbiBvZiB0aGUgZmlsZSBp
biBzdWJ2ZXJzaW9uOiAKLTxhIEhSRUY9Imh0dHA6Ly9qc29uY3BwLnN2bi5zb3VyY2Vmb3JnZS5u
ZXQvdmlld3ZjL2pzb25jcHAvdHJ1bmsvanNvbmNwcC9SRUFETUUudHh0P3ZpZXc9bWFya3VwIj5s
YXRlc3QgUkVBRE1FLnR4dDwvYT4KK0NvbmZpZ3VyZSAqYnVpbGRlcnMqIHRvIGNyZWF0ZSAqcmVh
ZGVycyogYW5kICp3cml0ZXJzKi4gRm9yCitjb25maWd1cmF0aW9uLCB3ZSB1c2Ugb3VyIG93biBg
SnNvbjo6VmFsdWVgIChyYXRoZXIgdGhhbgorc3RhbmRhcmQgc2V0dGVycy9nZXR0ZXJzKSBzbyB0
aGF0IHdlIGNhbiBhZGQKK2ZlYXR1cmVzIHdpdGhvdXQgbG9zaW5nIGJpbmFyeS1jb21wYXRpYmls
aXR5LgogCi1cc2VjdGlvbiBfcGRvd25sb2FkIERvd25sb2FkCi1UaGUgc291cmNlcyBjYW4gYmUg
ZG93bmxvYWRlZCBmcm9tIAotPGEgSFJFRj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0
cy9qc29uY3BwL2ZpbGVzLyI+U291cmNlRm9yZ2UgZG93bmxvYWQgcGFnZTwvYT4uCitcY29kZQor
Ly8gRm9yIGNvbnZlbmllbmNlLCB1c2UgYHdyaXRlU3RyaW5nKClgIHdpdGggYSBzcGVjaWFsaXpl
ZCBidWlsZGVyLgorSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlciB3YnVpbGRlcjsKK3didWlsZGVy
WyJpbmRlbnRhdGlvbiJdID0gIlx0IjsKK3N0ZDo6c3RyaW5nIGRvY3VtZW50ID0gSnNvbjo6d3Jp
dGVTdHJpbmcod2J1aWxkZXIsIHJvb3QpOworCisvLyBIZXJlLCB1c2luZyBhIHNwZWNpYWxpemVk
IEJ1aWxkZXIsIHdlIGRpc2NhcmQgY29tbWVudHMgYW5kCisvLyByZWNvcmQgZXJyb3JzIGFzIHdl
IHBhcnNlLgorSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgcmJ1aWxkZXI7CityYnVpbGRlclsiY29s
bGVjdENvbW1lbnRzIl0gPSBmYWxzZTsKK3N0ZDo6c3RyaW5nIGVycnM7Citib29sIG9rID0gSnNv
bjo6cGFyc2VGcm9tU3RyZWFtKHJidWlsZGVyLCBzdGQ6OmNpbiwgJnJvb3QsICZlcnJzKTsKK1xl
bmRjb2RlCiAKLVRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc291cmNlIGlzIGF2YWlsYWJsZSBp
biB0aGUgcHJvamVjdCdzIHN1YnZlcnNpb24gcmVwb3NpdG9yeTogCi08YSBIUkVGPSJodHRwOi8v
anNvbmNwcC5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvanNvbmNwcC90cnVuay8iPgotaHR0
cDovL2pzb25jcHAuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2pzb25jcHAvdHJ1bmsvPC9h
PgorWWVzLCBjb21waWxlLXRpbWUgY29uZmlndXJhdGlvbi1jaGVja2luZyB3b3VsZCBiZSBoZWxw
ZnVsLAorYnV0IGBKc29uOjpWYWx1ZWAgbGV0cyB5b3UKK3dyaXRlIGFuZCByZWFkIHRoZSBidWls
ZGVyIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIGJldHRlciEgSW4gb3RoZXIgd29yZHMsCit5b3Ug
Y2FuIGNvbmZpZ3VyZSB5b3VyIEpTT04gcGFyc2VyIHVzaW5nIEpTT04uCiAKLVRvIGNoZWNrb3V0
IHRoZSBzb3VyY2UsIHNlZSB0aGUgZm9sbG93aW5nIAotPGEgSFJFRj0iaHR0cDovL3NvdXJjZWZv
cmdlLm5ldC9zY20vP3R5cGU9c3ZuJmdyb3VwX2lkPTE0NDQ0NiI+aW5zdHJ1Y3Rpb25zPC9hPi4K
K0NoYXJSZWFkZXJzIGFuZCBTdHJlYW1Xcml0ZXJzIGFyZSBub3QgdGhyZWFkLXNhZmUsIGJ1dCB0
aGV5IGFyZSByZS11c2FibGUuCitcY29kZQorSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgcmJ1aWxk
ZXI7CitjZmcgPj4gcmJ1aWxkZXIuc2V0dGluZ3NfOworc3RkOjp1bmlxdWVfcHRyPEpzb246OkNo
YXJSZWFkZXI+IGNvbnN0IHJlYWRlcihyYnVpbGRlci5uZXdDaGFyUmVhZGVyKCkpOworcmVhZGVy
LT5wYXJzZShzdGFydCwgc3RvcCwgJnZhbHVlMSwgJmVycnMpOworLy8gLi4uCityZWFkZXItPnBh
cnNlKHN0YXJ0LCBzdG9wLCAmdmFsdWUyLCAmZXJycyk7CisvLyBldGMuCitcZW5kY29kZQogCi1c
c2VjdGlvbiBfbmV3cyBXaGF0J3MgTmV3PwotVGhlIGRlc2NyaXB0aW9uIG9mIGxhdGVzdCBjaGFu
Z2VzIGNhbiBiZSBmb3VuZCBpbiAKLTxhIEhSRUY9Ik5FV1MudHh0Ij5ORVdTLnR4dDwvYT4gaW4g
dGhlIHRvcC1kaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuCitcc2VjdGlvbiBfcGJ1aWxkIEJ1aWxk
IGluc3RydWN0aW9ucworVGhlIGJ1aWxkIGluc3RydWN0aW9ucyBhcmUgbG9jYXRlZCBpbiB0aGUg
ZmlsZSAKKzxhIEhSRUY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pz
b25jcHAvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIj5SRUFETUUubWQ8L2E+IGluIHRoZSB0b3AtZGly
ZWN0b3J5IG9mIHRoZSBwcm9qZWN0LgogCi1QZXJtYW5lbnQgbGluayB0byB0aGUgbGF0ZXN0IHJl
dmlzaW9uIG9mIHRoZSBmaWxlIGluIHN1YnZlcnNpb246IAotPGEgSFJFRj0iaHR0cDovL3N2bi5z
b3VyY2Vmb3JnZS5uZXQvdmlld2N2cy5jZ2kvanNvbmNwcC9SRUFETUUudHh0P3ZpZXc9bWFya3Vw
Ij5sYXRlc3QgTkVXUy50eHQ8L2E+CitUaGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHNvdXJjZSBp
cyBhdmFpbGFibGUgaW4gdGhlIHByb2plY3QncyBHaXRIdWIgcmVwb3NpdG9yeToKKzxhIEhSRUY9
Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAvIj4KK2pzb25j
cHA8L2E+CiAKLVxzZWN0aW9uIF9wbGlua3MgUHJvamVjdCBsaW5rcwotLSA8YSBIUkVGPSJodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQiPmpzb24tY3BwIGhvbWU8L2E+Ci0tIDxhIEhSRUY9
Imh0dHA6Ly93d3cuc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2pzb25jcHAvIj5qc29uLWNwcCBz
b3VyY2Vmb3JnZSBwcm9qZWN0PC9hPgorXHNlY3Rpb24gX25ld3MgV2hhdCdzIE5ldz8KK1RoZSBk
ZXNjcmlwdGlvbiBvZiBsYXRlc3QgY2hhbmdlcyBjYW4gYmUgZm91bmQgaW4gCis8YSBIUkVGPSJo
dHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3dpa2kvTkVXUyI+
CisgIHRoZSBORVdTIHdpa2kKKzwvYT4uCiAKIFxzZWN0aW9uIF9ybGlua3MgUmVsYXRlZCBsaW5r
cwogLSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnLyI+SlNPTjwvYT4gU3BlY2lmaWNhdGlv
biBhbmQgYWx0ZXJuYXRlIGxhbmd1YWdlIGltcGxlbWVudGF0aW9ucy4KIC0gPGEgSFJFRj0iaHR0
cDovL3d3dy55YW1sLm9yZy8iPllBTUw8L2E+IEEgZGF0YSBmb3JtYXQgZGVzaWduZWQgZm9yIGh1
bWFuIHJlYWRhYmlsaXR5LgogLSA8YSBIUkVGPSJodHRwOi8vd3d3LmNsLmNhbS5hYy51ay9+bWdr
MjUvdW5pY29kZS5odG1sIj5VVEYtOCBhbmQgVW5pY29kZSBGQVE8L2E+LgogCitcc2VjdGlvbiBf
cGxpbmtzIE9sZCBwcm9qZWN0IGxpbmtzCistIDxhIGhyZWY9Imh0dHBzOi8vc291cmNlZm9yZ2Uu
bmV0L3Byb2plY3RzL2pzb25jcHAvIj5odHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9q
c29uY3BwLzwvYT4KKy0gPGEgaHJlZj0iaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0Ij5o
dHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQ8L2E+CistIDxhIGhyZWY9Imh0dHA6Ly9zb3Vy
Y2Vmb3JnZS5uZXQvcHJvamVjdHMvanNvbmNwcC9maWxlcy8iPmh0dHA6Ly9zb3VyY2Vmb3JnZS5u
ZXQvcHJvamVjdHMvanNvbmNwcC9maWxlcy88L2E+CistIDxhIGhyZWY9Imh0dHA6Ly9qc29uY3Bw
LnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9qc29uY3BwL3RydW5rLyI+aHR0cDovL2pzb25j
cHAuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2pzb25jcHAvdHJ1bmsvPC9hPgorLSA8YSBo
cmVmPSJodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvb2xkLmh0bWwiPmh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9vbGQuaHRtbDwvYT4KKwogXHNlY3Rpb24gX2xpY2Vuc2UgTGlj
ZW5zZQotU2VlIGZpbGUgPGEgSFJFRj0iTElDRU5TRSI+TElDRU5TRTwvYT4gaW4gdGhlIHRvcC1k
aXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuCitTZWUgZmlsZSA8YSBocmVmPSJodHRwczovL2dpdGh1
Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UiPjxj
b2RlPkxJQ0VOU0U8L2NvZGU+PC9hPiBpbiB0aGUgdG9wLWRpcmVjdG9yeSBvZiB0aGUgcHJvamVj
dC4KIAogQmFzaWNhbGx5IEpzb25DcHAgaXMgbGljZW5zZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9y
IHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCAKIGFuZCByZWNvZ25pemVkIGluIHlvdXIganVyaXNk
aWN0aW9uLgogCi1cYXV0aG9yIEJhcHRpc3RlIExlcGlsbGV1ciA8YmxlcEB1c2Vycy5zb3VyY2Vm
b3JnZS5uZXQ+CitcYXV0aG9yIEJhcHRpc3RlIExlcGlsbGV1ciA8YmxlcEB1c2Vycy5zb3VyY2Vm
b3JnZS5uZXQ+IChvcmlnaW5hdG9yKQorXGF1dGhvciBDaHJpc3RvcGhlciBEdW5uIDxjZHVubjIw
MDFAZ21haWwuY29tPiAocHJpbWFyeSBtYWludGFpbmVyKQorXHZlcnNpb24gXGluY2x1ZGUgdmVy
c2lvbgorV2UgbWFrZSBzdHJvbmcgZ3VhcmFudGVlcyBhYm91dCBiaW5hcnktY29tcGF0aWJpbGl0
eSwgY29uc2lzdGVudCB3aXRoCis8YSBocmVmPSJodHRwOi8vYXByLmFwYWNoZS5vcmcvdmVyc2lv
bmluZy5odG1sIj50aGUgQXBhY2hlIHZlcnNpb25pbmcgc2NoZW1lPC9hPi4KK1xzYSB2ZXJzaW9u
LmgKICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9yb2FkbWFwLmRveCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL3JvYWRt
YXAuZG94CmluZGV4IGU2ZmMxN2FhNjhkM2VkNWRmYjdkZDU0NjdkYmYxZmJlMmI5MzliODYuLjEy
Mjk0YmJiZDI5ZDE5ODY5YjE4YjZjMjc0ZDNhM2UxOWI5ZmQ4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
ZG9jL3JvYWRtYXAuZG94CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL3JvYWRtYXAuZG94CkBAIC0xLDM3ICsxLDMg
QEAKIC8qISBccGFnZSByb2FkbWFwIEpzb25DcHAgcm9hZG1hcAotICBcc2VjdGlvbiBtc19yZWxl
YXNlIE1ha2VzIEpzb25DcHAgcmVhZHkgZm9yIHJlbGVhc2UKLSAgLSBCdWlsZCBzeXN0ZW0gY2xl
YW4tdXA6Ci0JLSBGaXggYnVpbGQgb24gV2luZG93cyAoc2hhcmVkLWxpYnJhcnkgYnVpbGQgaXMg
YnJva2VuKQotCS0gQWRkIGVuYWJsZS9kaXNhYmxlIGZsYWcgZm9yIHN0YXRpYyBhbmQgc2hhcmVk
IGxpYnJhcnkgYnVpbGQKLQktIEVuaGFuY2UgaGVscAotICAtIFBsYXRmb3JtIHBvcnRhYmlsaXR5
IGNoZWNrOiAoTm90ZXM6IHdhcyBvayBvbiBsYXN0IGNoZWNrKQotCS0gbGludXgvZ2NjLCAKLQkt
IHNvbGFyaXMvY2MsIAotCS0gd2luZG93cy9tc3ZjNjc4LCAKLQktIGFpeC92YWNwcAotICAtIEFk
ZCBKc29uQ3BwIHZlcnNpb24gdG8gaGVhZGVyIGFzIG51bWVyaWMgZm9yIHVzZSBpbiBwcmVwcm9j
ZXNzb3IgdGVzdAotICAtIFJlbW92ZSBidWdneSBleHBlcmltZW50YWwgaGFzaCBzdHVmZgotICBc
c2VjdGlvbiBtc19zdHJpY3QgQWRkcyBhIHN0cmljdCBtb2RlIHRvIHJlYWRlci9wYXJzZXIKLQlT
dHJpY3QgSlNPTiBzdXBwb3J0IGFzIHNwZWNpZmljIGluIFJGQyA0NjI3IChodHRwOi8vd3d3Lmll
dGYub3JnL3JmYy9yZmM0NjI3LnR4dD9udW1iZXI9NDYyNykuCi0JLSBFbmZvcmNlIG9ubHkgb2Jq
ZWN0IG9yIGFycmF5IGFzIHJvb3QgZWxlbWVudAotCS0gRGlzYWJsZSBjb21tZW50IHN1cHBvcnQK
LSAgICAtIEdldCBqc29uY2hlY2tlciBmYWlsaW5nIHRlc3RzIHRvIHBhc3MgaW4gc3RyaWN0IG1v
ZGUKLSAgXHNlY3Rpb24gbXNfd3JpdGVyIFdyaXR0ZXIgY29udHJvbAotICAgIFByb3ZpZGVzIG1v
cmUgY29udHJvbCB0byBkZXRlcm1pbmUgaG93IHNwZWNpZmljIGl0ZW1zIGFyZSBzZXJpYWxpemVk
IHdoZW4gSlNPTiBhbGxvdyBjaG9pY2U6Ci0JLSBPcHRpb25hbGx5IGFsbG93IGVzY2FwaW5nIG9m
IG5vbi1BU0NJSSBjaGFyYWN0ZXJzIHVzaW5nIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlICJcXHUi
LgotCS0gT3B0aW9uYWxseSBhbGxvdyBlc2NhcGluZyBvZiAiLyIgdXNpbmcgIlwvIi4KLSAgXHNl
Y3Rpb24gbXNfc2VwYXJhdGlvbiBFeHBvc2UganNvbiByZWFkZXIvd3JpdGVyIEFQSSB0aGF0IGRv
IG5vdCBpbXBvc2UgdXNpbmcgSnNvbjo6VmFsdWUuCi0JU29tZSB0eXBpY2FsIHVzZS1jYXNlIGlu
dm9sdmUgYW4gYXBwbGljYXRpb24gc3BlY2lmaWMgc3RydWN0dXJlIHRvL2Zyb20gYSBKU09OIGRv
Y3VtZW50LgotICAgIC0gRXZlbnQgYmFzZSBwYXJzZXIgdG8gYWxsb3cgdW5zZXJpYWxpemluZyBh
IEpzb24gZG9jdW1lbnQgZGlyZWN0bHkgaW4gZGF0YXN0cnVjdHVyZSBpbnN0ZWFkIG9mCi0gICAg
ICB1c2luZyB0aGUgaW50ZXJtZWRpYXRlIEpzb246OlZhbHVlLgotICAgIC0gU3RyZWFtIGJhc2Vk
IHBhcnNlciB0byBzZXJpYWxpemVkIGEgSnNvbiBkb2N1bWVudCB3aXRob3V0IHVzaW5nIEpzb246
OlZhbHVlIGFzIGlucHV0LgotCS0gUGVyZm9ybWFuY2Ugb3JpZW50ZWQgcGFyc2VyL3dyaXRlcjoK
LQkJLSBQcm92aWRlcyBhbiBldmVudCBiYXNlZCBwYXJzZXIuIFNob3VsZCBhbGxvdyBwdWxsaW5n
ICYgc2tpcHBpbmcgZXZlbnRzIGZvciBlYXNlIG9mIHVzZS4KLQkJLSBQcm92aWRlcyBhIEpTT04g
ZG9jdW1lbnQgYnVpbGRlcjogZmFzdCBvbmx5LgotICBcc2VjdGlvbiBtc19wZXJmbyBQZXJmb3Jt
YW5jZSB0dW5pbmcKLSAgICAtIFByb3ZpZGVzIHN1cHBvcnQgZm9yIHN0YXRpYyBwcm9wZXJ0eSBu
YW1lIGRlZmluaXRpb24gYXZvaWRpbmcgYWxsb2NhdGlvbiAKLSAgICAtIFN0YXRpYyBwcm9wZXJ0
eSBkaWN0aW9ubmFyeSBjYW4gYmUgcHJvdmlkZWQgdG8gSlNPTiByZWFkZXIKLSAgICAtIFBlcmZv
cm1hbmNlIHNjZW5hcmlvICYgYmVuY2htYXJraW5nCi0gIFxzZWN0aW9uIHRlc3RpbmcgVGVzdGlu
ZwotICAgIC0gQWRkcyBtb3JlIHRlc3RzIGZvciB1bmljb2RlIHBhcnNpbmcgKGUuZy4gaW5jbHVk
aW5nIHN1cnJvZ2F0ZSBhbmQgZXJyb3IgZGV0ZWN0aW9uKS4KKyAgTW92ZWQgdG86IGh0dHBzOi8v
Z2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAvd2lraS9Sb2FkbWFwCiAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9kb2Mvd2ViX2RveHlmaWxlLmluIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2Mvd2ViX2RveHlm
aWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRmMDlkY2NhZWM1MDBlMzE1N2YxZjI0ZWYzYTM2NjJkY2FkZDJl
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy93ZWJfZG94eWZpbGUuaW4KQEAgLTAsMCAr
MSwyMjkwIEBACisjIERveHlmaWxlIDEuOC41CisKKyMgVGhpcyBmaWxlIGRlc2NyaWJlcyB0aGUg
c2V0dGluZ3MgdG8gYmUgdXNlZCBieSB0aGUgZG9jdW1lbnRhdGlvbiBzeXN0ZW0KKyMgZG94eWdl
biAod3d3LmRveHlnZW4ub3JnKSBmb3IgYSBwcm9qZWN0LgorIworIyBBbGwgdGV4dCBhZnRlciBh
IGRvdWJsZSBoYXNoICgjIykgaXMgY29uc2lkZXJlZCBhIGNvbW1lbnQgYW5kIGlzIHBsYWNlZCBp
bgorIyBmcm9udCBvZiB0aGUgVEFHIGl0IGlzIHByZWNlZGluZy4KKyMKKyMgQWxsIHRleHQgYWZ0
ZXIgYSBzaW5nbGUgaGFzaCAoIykgaXMgY29uc2lkZXJlZCBhIGNvbW1lbnQgYW5kIHdpbGwgYmUg
aWdub3JlZC4KKyMgVGhlIGZvcm1hdCBpczoKKyMgVEFHID0gdmFsdWUgW3ZhbHVlLCAuLi5dCisj
IEZvciBsaXN0cywgaXRlbXMgY2FuIGFsc28gYmUgYXBwZW5kZWQgdXNpbmc6CisjIFRBRyArPSB2
YWx1ZSBbdmFsdWUsIC4uLl0KKyMgVmFsdWVzIHRoYXQgY29udGFpbiBzcGFjZXMgc2hvdWxkIGJl
IHBsYWNlZCBiZXR3ZWVuIHF1b3RlcyAoXCIgXCIpLgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj
IFByb2plY3QgcmVsYXRlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMKKyMtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworIyBUaGlzIHRhZyBzcGVjaWZpZXMgdGhlIGVuY29kaW5nIHVzZWQgZm9yIGFsbCBjaGFy
YWN0ZXJzIGluIHRoZSBjb25maWcgZmlsZQorIyB0aGF0IGZvbGxvdy4gVGhlIGRlZmF1bHQgaXMg
VVRGLTggd2hpY2ggaXMgYWxzbyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsIHRleHQKKyMgYmVm
b3JlIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoaXMgdGFnLiBEb3h5Z2VuIHVzZXMgbGliaWNv
bnYgKG9yIHRoZSBpY29udgorIyBidWlsdCBpbnRvIGxpYmMpIGZvciB0aGUgdHJhbnNjb2Rpbmcu
IFNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliaWNvbnYKKyMgZm9yIHRoZSBsaXN0
IG9mIHBvc3NpYmxlIGVuY29kaW5ncy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFVURi04Lgor
CitET1hZRklMRV9FTkNPRElORyAgICAgID0gVVRGLTgKKworIyBUaGUgUFJPSkVDVF9OQU1FIHRh
ZyBpcyBhIHNpbmdsZSB3b3JkIChvciBhIHNlcXVlbmNlIG9mIHdvcmRzIHN1cnJvdW5kZWQgYnkK
KyMgZG91YmxlLXF1b3RlcywgdW5sZXNzIHlvdSBhcmUgdXNpbmcgRG94eXdpemFyZCkgdGhhdCBz
aG91bGQgaWRlbnRpZnkgdGhlCisjIHByb2plY3QgZm9yIHdoaWNoIHRoZSBkb2N1bWVudGF0aW9u
IGlzIGdlbmVyYXRlZC4gVGhpcyBuYW1lIGlzIHVzZWQgaW4gdGhlCisjIHRpdGxlIG9mIG1vc3Qg
Z2VuZXJhdGVkIHBhZ2VzIGFuZCBpbiBhIGZldyBvdGhlciBwbGFjZXMuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBNeSBQcm9qZWN0LgorCitQUk9KRUNUX05BTUUgICAgICAgICAgID0gIkpzb25D
cHAiCisKKyMgVGhlIFBST0pFQ1RfTlVNQkVSIHRhZyBjYW4gYmUgdXNlZCB0byBlbnRlciBhIHBy
b2plY3Qgb3IgcmV2aXNpb24gbnVtYmVyLiBUaGlzCisjIGNvdWxkIGJlIGhhbmR5IGZvciBhcmNo
aXZpbmcgdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIG9yIGlmIHNvbWUgdmVyc2lvbgorIyBj
b250cm9sIHN5c3RlbSBpcyB1c2VkLgorCitQUk9KRUNUX05VTUJFUiAgICAgICAgID0gJUpTT05D
UFBfVkVSU0lPTiUKKworIyBVc2luZyB0aGUgUFJPSkVDVF9CUklFRiB0YWcgb25lIGNhbiBwcm92
aWRlIGFuIG9wdGlvbmFsIG9uZSBsaW5lIGRlc2NyaXB0aW9uCisjIGZvciBhIHByb2plY3QgdGhh
dCBhcHBlYXJzIGF0IHRoZSB0b3Agb2YgZWFjaCBwYWdlIGFuZCBzaG91bGQgZ2l2ZSB2aWV3ZXIg
YQorIyBxdWljayBpZGVhIGFib3V0IHRoZSBwdXJwb3NlIG9mIHRoZSBwcm9qZWN0LiBLZWVwIHRo
ZSBkZXNjcmlwdGlvbiBzaG9ydC4KKworUFJPSkVDVF9CUklFRiAgICAgICAgICAgPSAiSlNPTiBk
YXRhIGZvcm1hdCBtYW5pcHVsYXRpb24gbGlicmFyeSIKKworIyBXaXRoIHRoZSBQUk9KRUNUX0xP
R08gdGFnIG9uZSBjYW4gc3BlY2lmeSBhbiBsb2dvIG9yIGljb24gdGhhdCBpcyBpbmNsdWRlZCBp
bgorIyB0aGUgZG9jdW1lbnRhdGlvbi4gVGhlIG1heGltdW0gaGVpZ2h0IG9mIHRoZSBsb2dvIHNo
b3VsZCBub3QgZXhjZWVkIDU1IHBpeGVscworIyBhbmQgdGhlIG1heGltdW0gd2lkdGggc2hvdWxk
IG5vdCBleGNlZWQgMjAwIHBpeGVscy4gRG94eWdlbiB3aWxsIGNvcHkgdGhlIGxvZ28KKyMgdG8g
dGhlIG91dHB1dCBkaXJlY3RvcnkuCisKK1BST0pFQ1RfTE9HTyAgICAgICAgICAgPQorCisjIFRo
ZSBPVVRQVVRfRElSRUNUT1JZIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIChyZWxhdGl2ZSBv
ciBhYnNvbHV0ZSkgcGF0aAorIyBpbnRvIHdoaWNoIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlv
biB3aWxsIGJlIHdyaXR0ZW4uIElmIGEgcmVsYXRpdmUgcGF0aCBpcworIyBlbnRlcmVkLCBpdCB3
aWxsIGJlIHJlbGF0aXZlIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSBkb3h5Z2VuIHdhcyBzdGFydGVk
LiBJZgorIyBsZWZ0IGJsYW5rIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuCisK
K09VVFBVVF9ESVJFQ1RPUlkgICAgICAgPSAlRE9DX1RPUERJUiUKKworIyBJZiB0aGUgQ1JFQVRF
X1NVQkRJUlMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIGNyZWF0ZSA0MDk2
IHN1Yi0KKyMgZGlyZWN0b3JpZXMgKGluIDIgbGV2ZWxzKSB1bmRlciB0aGUgb3V0cHV0IGRpcmVj
dG9yeSBvZiBlYWNoIG91dHB1dCBmb3JtYXQgYW5kCisjIHdpbGwgZGlzdHJpYnV0ZSB0aGUgZ2Vu
ZXJhdGVkIGZpbGVzIG92ZXIgdGhlc2UgZGlyZWN0b3JpZXMuIEVuYWJsaW5nIHRoaXMKKyMgb3B0
aW9uIGNhbiBiZSB1c2VmdWwgd2hlbiBmZWVkaW5nIGRveHlnZW4gYSBodWdlIGFtb3VudCBvZiBz
b3VyY2UgZmlsZXMsIHdoZXJlCisjIHB1dHRpbmcgYWxsIGdlbmVyYXRlZCBmaWxlcyBpbiB0aGUg
c2FtZSBkaXJlY3Rvcnkgd291bGQgb3RoZXJ3aXNlIGNhdXNlcworIyBwZXJmb3JtYW5jZSBwcm9i
bGVtcyBmb3IgdGhlIGZpbGUgc3lzdGVtLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisK
K0NSRUFURV9TVUJESVJTICAgICAgICAgPSBOTworCisjIFRoZSBPVVRQVVRfTEFOR1VBR0UgdGFn
IGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgbGFuZ3VhZ2UgaW4gd2hpY2ggYWxsCisjIGRvY3VtZW50
YXRpb24gZ2VuZXJhdGVkIGJ5IGRveHlnZW4gaXMgd3JpdHRlbi4gRG94eWdlbiB3aWxsIHVzZSB0
aGlzCisjIGluZm9ybWF0aW9uIHRvIGdlbmVyYXRlIGFsbCBjb25zdGFudCBvdXRwdXQgaW4gdGhl
IHByb3BlciBsYW5ndWFnZS4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTogQWZyaWthYW5zLCBBcmFi
aWMsIEJyYXppbGlhbiwgQ2F0YWxhbiwgQ2hpbmVzZSwgQ2hpbmVzZS0KKyMgVHJhZGl0aW9uYWws
IENyb2F0aWFuLCBDemVjaCwgRGFuaXNoLCBEdXRjaCwgRW5nbGlzaCwgRXNwZXJhbnRvLCBGYXJz
aSwKKyMgRmlubmlzaCwgRnJlbmNoLCBHZXJtYW4sIEdyZWVrLCBIdW5nYXJpYW4sIEl0YWxpYW4s
IEphcGFuZXNlLCBKYXBhbmVzZS1lbiwKKyMgS29yZWFuLCBLb3JlYW4tZW4sIExhdHZpYW4sIE5v
cndlZ2lhbiwgTWFjZWRvbmlhbiwgUGVyc2lhbiwgUG9saXNoLAorIyBQb3J0dWd1ZXNlLCBSb21h
bmlhbiwgUnVzc2lhbiwgU2VyYmlhbiwgU2xvdmFrLCBTbG92ZW5lLCBTcGFuaXNoLCBTd2VkaXNo
LAorIyBUdXJraXNoLCBVa3JhaW5pYW4gYW5kIFZpZXRuYW1lc2UuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBFbmdsaXNoLgorCitPVVRQVVRfTEFOR1VBR0UgICAgICAgID0gRW5nbGlzaAorCisj
IElmIHRoZSBCUklFRl9NRU1CRVJfREVTQyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwg
aW5jbHVkZSBicmllZiBtZW1iZXIKKyMgZGVzY3JpcHRpb25zIGFmdGVyIHRoZSBtZW1iZXJzIHRo
YXQgYXJlIGxpc3RlZCBpbiB0aGUgZmlsZSBhbmQgY2xhc3MKKyMgZG9jdW1lbnRhdGlvbiAoc2lt
aWxhciB0byBKYXZhZG9jKS4gU2V0IHRvIE5PIHRvIGRpc2FibGUgdGhpcy4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KKworQlJJRUZfTUVNQkVSX0RFU0MgICAgICA9IFlFUworCisjIElm
IHRoZSBSRVBFQVRfQlJJRUYgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIHByZXBlbmQg
dGhlIGJyaWVmCisjIGRlc2NyaXB0aW9uIG9mIGEgbWVtYmVyIG9yIGZ1bmN0aW9uIGJlZm9yZSB0
aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24KKyMKKyMgTm90ZTogSWYgYm90aCBISURFX1VORE9DX01F
TUJFUlMgYW5kIEJSSUVGX01FTUJFUl9ERVNDIGFyZSBzZXQgdG8gTk8sIHRoZQorIyBicmllZiBk
ZXNjcmlwdGlvbnMgd2lsbCBiZSBjb21wbGV0ZWx5IHN1cHByZXNzZWQuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCisKK1JFUEVBVF9CUklFRiAgICAgICAgICAgPSBZRVMKKworIyBUaGlz
IHRhZyBpbXBsZW1lbnRzIGEgcXVhc2ktaW50ZWxsaWdlbnQgYnJpZWYgZGVzY3JpcHRpb24gYWJi
cmV2aWF0b3IgdGhhdCBpcworIyB1c2VkIHRvIGZvcm0gdGhlIHRleHQgaW4gdmFyaW91cyBsaXN0
aW5ncy4gRWFjaCBzdHJpbmcgaW4gdGhpcyBsaXN0LCBpZiBmb3VuZAorIyBhcyB0aGUgbGVhZGlu
ZyB0ZXh0IG9mIHRoZSBicmllZiBkZXNjcmlwdGlvbiwgd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRo
ZSB0ZXh0CisjIGFuZCB0aGUgcmVzdWx0LCBhZnRlciBwcm9jZXNzaW5nIHRoZSB3aG9sZSBsaXN0
LCBpcyB1c2VkIGFzIHRoZSBhbm5vdGF0ZWQKKyMgdGV4dC4gT3RoZXJ3aXNlLCB0aGUgYnJpZWYg
ZGVzY3JpcHRpb24gaXMgdXNlZCBhcy1pcy4gSWYgbGVmdCBibGFuaywgdGhlCisjIGZvbGxvd2lu
ZyB2YWx1ZXMgYXJlIHVzZWQgKCRuYW1lIGlzIGF1dG9tYXRpY2FsbHkgcmVwbGFjZWQgd2l0aCB0
aGUgbmFtZSBvZgorIyB0aGUgZW50aXR5KTpUaGUgJG5hbWUgY2xhc3MsIFRoZSAkbmFtZSB3aWRn
ZXQsIFRoZSAkbmFtZSBmaWxlLCBpcywgcHJvdmlkZXMsCisjIHNwZWNpZmllcywgY29udGFpbnMs
IHJlcHJlc2VudHMsIGEsIGFuIGFuZCB0aGUuCisKK0FCQlJFVklBVEVfQlJJRUYgICAgICAgPSAi
VGhlICRuYW1lIGNsYXNzIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSAkbmFtZSB3
aWRnZXQiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlICRuYW1lIGZpbGUiIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBpcyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
dmlkZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcyBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGFpbnMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJl
c2VudHMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGEgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGFuIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUKKworIyBJZiB0aGUgQUxX
QVlTX0RFVEFJTEVEX1NFQyBhbmQgUkVQRUFUX0JSSUVGIHRhZ3MgYXJlIGJvdGggc2V0IHRvIFlF
UyB0aGVuCisjIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGRldGFpbGVkIHNlY3Rpb24gZXZlbiBp
ZiB0aGVyZSBpcyBvbmx5IGEgYnJpZWYKKyMgZGVzY3JpcHRpb24uCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKworQUxXQVlTX0RFVEFJTEVEX1NFQyAgICA9IE5PCisKKyMgSWYgdGhlIElO
TElORV9JTkhFUklURURfTUVNQiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIHNob3cg
YWxsCisjIGluaGVyaXRlZCBtZW1iZXJzIG9mIGEgY2xhc3MgaW4gdGhlIGRvY3VtZW50YXRpb24g
b2YgdGhhdCBjbGFzcyBhcyBpZiB0aG9zZQorIyBtZW1iZXJzIHdlcmUgb3JkaW5hcnkgY2xhc3Mg
bWVtYmVycy4gQ29uc3RydWN0b3JzLCBkZXN0cnVjdG9ycyBhbmQgYXNzaWdubWVudAorIyBvcGVy
YXRvcnMgb2YgdGhlIGJhc2UgY2xhc3NlcyB3aWxsIG5vdCBiZSBzaG93bi4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgorCitJTkxJTkVfSU5IRVJJVEVEX01FTUIgID0gTk8KKworIyBJZiB0
aGUgRlVMTF9QQVRIX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBwcmVwZW5k
IHRoZSBmdWxsIHBhdGgKKyMgYmVmb3JlIGZpbGVzIG5hbWUgaW4gdGhlIGZpbGUgbGlzdCBhbmQg
aW4gdGhlIGhlYWRlciBmaWxlcy4gSWYgc2V0IHRvIE5PIHRoZQorIyBzaG9ydGVzdCBwYXRoIHRo
YXQgbWFrZXMgdGhlIGZpbGUgbmFtZSB1bmlxdWUgd2lsbCBiZSB1c2VkCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCisKK0ZVTExfUEFUSF9OQU1FUyAgICAgICAgPSBZRVMKKworIyBUaGUg
U1RSSVBfRlJPTV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzdHJpcCBhIHVzZXItZGVmaW5lZCBw
YXJ0IG9mIHRoZSBwYXRoLgorIyBTdHJpcHBpbmcgaXMgb25seSBkb25lIGlmIG9uZSBvZiB0aGUg
c3BlY2lmaWVkIHN0cmluZ3MgbWF0Y2hlcyB0aGUgbGVmdC1oYW5kCisjIHBhcnQgb2YgdGhlIHBh
dGguIFRoZSB0YWcgY2FuIGJlIHVzZWQgdG8gc2hvdyByZWxhdGl2ZSBwYXRocyBpbiB0aGUgZmls
ZSBsaXN0LgorIyBJZiBsZWZ0IGJsYW5rIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGljaCBkb3h5Z2Vu
IGlzIHJ1biBpcyB1c2VkIGFzIHRoZSBwYXRoIHRvCisjIHN0cmlwLgorIworIyBOb3RlIHRoYXQg
eW91IGNhbiBzcGVjaWZ5IGFic29sdXRlIHBhdGhzIGhlcmUsIGJ1dCBhbHNvIHJlbGF0aXZlIHBh
dGhzLCB3aGljaAorIyB3aWxsIGJlIHJlbGF0aXZlIGZyb20gdGhlIGRpcmVjdG9yeSB3aGVyZSBk
b3h5Z2VuIGlzIHN0YXJ0ZWQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBGVUxM
X1BBVEhfTkFNRVMgaXMgc2V0IHRvIFlFUy4KKworU1RSSVBfRlJPTV9QQVRIICAgICAgICA9ICVU
T1BESVIlCisKKyMgVGhlIFNUUklQX0ZST01fSU5DX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHN0
cmlwIGEgdXNlci1kZWZpbmVkIHBhcnQgb2YgdGhlCisjIHBhdGggbWVudGlvbmVkIGluIHRoZSBk
b2N1bWVudGF0aW9uIG9mIGEgY2xhc3MsIHdoaWNoIHRlbGxzIHRoZSByZWFkZXIgd2hpY2gKKyMg
aGVhZGVyIGZpbGUgdG8gaW5jbHVkZSBpbiBvcmRlciB0byB1c2UgYSBjbGFzcy4gSWYgbGVmdCBi
bGFuayBvbmx5IHRoZSBuYW1lIG9mCisjIHRoZSBoZWFkZXIgZmlsZSBjb250YWluaW5nIHRoZSBj
bGFzcyBkZWZpbml0aW9uIGlzIHVzZWQuIE90aGVyd2lzZSBvbmUgc2hvdWxkCisjIHNwZWNpZnkg
dGhlIGxpc3Qgb2YgaW5jbHVkZSBwYXRocyB0aGF0IGFyZSBub3JtYWxseSBwYXNzZWQgdG8gdGhl
IGNvbXBpbGVyCisjIHVzaW5nIHRoZSAtSSBmbGFnLgorCitTVFJJUF9GUk9NX0lOQ19QQVRIICAg
ID0gJVRPUERJUiUvaW5jbHVkZQorCisjIElmIHRoZSBTSE9SVF9OQU1FUyB0YWcgaXMgc2V0IHRv
IFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIG11Y2ggc2hvcnRlciAoYnV0CisjIGxlc3MgcmVh
ZGFibGUpIGZpbGUgbmFtZXMuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpcyB5b3VyIGZpbGUgc3lzdGVt
cyBkb2Vzbid0CisjIHN1cHBvcnQgbG9uZyBuYW1lcyBsaWtlIG9uIERPUywgTWFjLCBvciBDRC1S
T00uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworU0hPUlRfTkFNRVMgICAgICAgICAg
ICA9IE5PCisKKyMgSWYgdGhlIEpBVkFET0NfQVVUT0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIGludGVycHJldCB0aGUKKyMgZmlyc3QgbGluZSAodW50aWwgdGhlIGZp
cnN0IGRvdCkgb2YgYSBKYXZhZG9jLXN0eWxlIGNvbW1lbnQgYXMgdGhlIGJyaWVmCisjIGRlc2Ny
aXB0aW9uLiBJZiBzZXQgdG8gTk8sIHRoZSBKYXZhZG9jLXN0eWxlIHdpbGwgYmVoYXZlIGp1c3Qg
bGlrZSByZWd1bGFyIFF0LQorIyBzdHlsZSBjb21tZW50cyAodGh1cyByZXF1aXJpbmcgYW4gZXhw
bGljaXQgQGJyaWVmIGNvbW1hbmQgZm9yIGEgYnJpZWYKKyMgZGVzY3JpcHRpb24uKQorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0pBVkFET0NfQVVUT0JSSUVGICAgICAgPSBZRVMKKwor
IyBJZiB0aGUgUVRfQVVUT0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxs
IGludGVycHJldCB0aGUgZmlyc3QKKyMgbGluZSAodW50aWwgdGhlIGZpcnN0IGRvdCkgb2YgYSBR
dC1zdHlsZSBjb21tZW50IGFzIHRoZSBicmllZiBkZXNjcmlwdGlvbi4gSWYKKyMgc2V0IHRvIE5P
LCB0aGUgUXQtc3R5bGUgd2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgUXQtc3R5bGUgY29t
bWVudHMgKHRodXMKKyMgcmVxdWlyaW5nIGFuIGV4cGxpY2l0IFxicmllZiBjb21tYW5kIGZvciBh
IGJyaWVmIGRlc2NyaXB0aW9uLikKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitRVF9B
VVRPQlJJRUYgICAgICAgICAgID0gTk8KKworIyBUaGUgTVVMVElMSU5FX0NQUF9JU19CUklFRiB0
YWcgY2FuIGJlIHNldCB0byBZRVMgdG8gbWFrZSBkb3h5Z2VuIHRyZWF0IGEKKyMgbXVsdGktbGlu
ZSBDKysgc3BlY2lhbCBjb21tZW50IGJsb2NrIChpLmUuIGEgYmxvY2sgb2YgLy8hIG9yIC8vLyBj
b21tZW50cykgYXMKKyMgYSBicmllZiBkZXNjcmlwdGlvbi4gVGhpcyB1c2VkIHRvIGJlIHRoZSBk
ZWZhdWx0IGJlaGF2aW9yLiBUaGUgbmV3IGRlZmF1bHQgaXMKKyMgdG8gdHJlYXQgYSBtdWx0aS1s
aW5lIEMrKyBjb21tZW50IGJsb2NrIGFzIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24uIFNldCB0aGlz
CisjIHRhZyB0byBZRVMgaWYgeW91IHByZWZlciB0aGUgb2xkIGJlaGF2aW9yIGluc3RlYWQuCisj
CisjIE5vdGUgdGhhdCBzZXR0aW5nIHRoaXMgdGFnIHRvIFlFUyBhbHNvIG1lYW5zIHRoYXQgcmF0
aW9uYWwgcm9zZSBjb21tZW50cyBhcmUKKyMgbm90IHJlY29nbml6ZWQgYW55IG1vcmUuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworTVVMVElMSU5FX0NQUF9JU19CUklFRiA9IE5PCisK
KyMgSWYgdGhlIElOSEVSSVRfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGFuIHVuZG9jdW1l
bnRlZCBtZW1iZXIgaW5oZXJpdHMgdGhlCisjIGRvY3VtZW50YXRpb24gZnJvbSBhbnkgZG9jdW1l
bnRlZCBtZW1iZXIgdGhhdCBpdCByZS1pbXBsZW1lbnRzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgorCitJTkhFUklUX0RPQ1MgICAgICAgICAgID0gWUVTCisKKyMgSWYgdGhlIFNFUEFS
QVRFX01FTUJFUl9QQUdFUyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlbiBkb3h5Z2VuIHdpbGwgcHJv
ZHVjZSBhCisjIG5ldyBwYWdlIGZvciBlYWNoIG1lbWJlci4gSWYgc2V0IHRvIE5PLCB0aGUgZG9j
dW1lbnRhdGlvbiBvZiBhIG1lbWJlciB3aWxsIGJlCisjIHBhcnQgb2YgdGhlIGZpbGUvY2xhc3Mv
bmFtZXNwYWNlIHRoYXQgY29udGFpbnMgaXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KworU0VQQVJBVEVfTUVNQkVSX1BBR0VTICA9IE5PCisKKyMgVGhlIFRBQl9TSVpFIHRhZyBjYW4g
YmUgdXNlZCB0byBzZXQgdGhlIG51bWJlciBvZiBzcGFjZXMgaW4gYSB0YWIuIERveHlnZW4KKyMg
dXNlcyB0aGlzIHZhbHVlIHRvIHJlcGxhY2UgdGFicyBieSBzcGFjZXMgaW4gY29kZSBmcmFnbWVu
dHMuCisjIE1pbmltdW0gdmFsdWU6IDEsIG1heGltdW0gdmFsdWU6IDE2LCBkZWZhdWx0IHZhbHVl
OiA0LgorCitUQUJfU0laRSAgICAgICAgICAgICAgID0gMworCisjIFRoaXMgdGFnIGNhbiBiZSB1
c2VkIHRvIHNwZWNpZnkgYSBudW1iZXIgb2YgYWxpYXNlcyB0aGF0IGFjdCBhcyBjb21tYW5kcyBp
bgorIyB0aGUgZG9jdW1lbnRhdGlvbi4gQW4gYWxpYXMgaGFzIHRoZSBmb3JtOgorIyBuYW1lPXZh
bHVlCisjIEZvciBleGFtcGxlIGFkZGluZworIyAic2lkZWVmZmVjdD1AcGFyIFNpZGUgRWZmZWN0
czpcbiIKKyMgd2lsbCBhbGxvdyB5b3UgdG8gcHV0IHRoZSBjb21tYW5kIFxzaWRlZWZmZWN0IChv
ciBAc2lkZWVmZmVjdCkgaW4gdGhlCisjIGRvY3VtZW50YXRpb24sIHdoaWNoIHdpbGwgcmVzdWx0
IGluIGEgdXNlci1kZWZpbmVkIHBhcmFncmFwaCB3aXRoIGhlYWRpbmcKKyMgIlNpZGUgRWZmZWN0
czoiLiBZb3UgY2FuIHB1dCBcbidzIGluIHRoZSB2YWx1ZSBwYXJ0IG9mIGFuIGFsaWFzIHRvIGlu
c2VydAorIyBuZXdsaW5lcy4KKworQUxJQVNFUyAgICAgICAgICAgICAgICA9ICJ0ZXN0Q2FzZVNl
dHVwPVxsaW5rIENwcFVUOjpUZXN0Q2FzZTo6c2V0VXAoKSBzZXRVcCgpXGVuZGxpbmsiIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdENhc2VSdW49XGxpbmsgQ3BwVVQ6OlRlc3RDYXNl
OjpydW4oKSBydW4oKVxlbmRsaW5rIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RD
YXNlVGVhckRvd249XGxpbmsgQ3BwVVQ6OlRlc3RDYXNlOjp0ZWFyRG93bigpIHRlYXJEb3duKClc
ZW5kbGluayIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICJqc29uX3JlZj08YSBIUkVGPSdo
dHRwOi8vd3d3Lmpzb24ub3JnLyc+SlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pPC9h
PiIKKworIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbnVtYmVyIG9mIHdvcmQt
a2V5d29yZCBtYXBwaW5ncyAoVENMIG9ubHkpLgorIyBBIG1hcHBpbmcgaGFzIHRoZSBmb3JtICJu
YW1lPXZhbHVlIi4gRm9yIGV4YW1wbGUgYWRkaW5nICJjbGFzcz1pdGNsOjpjbGFzcyIKKyMgd2ls
bCBhbGxvdyB5b3UgdG8gdXNlIHRoZSBjb21tYW5kIGNsYXNzIGluIHRoZSBpdGNsOjpjbGFzcyBt
ZWFuaW5nLgorCitUQ0xfU1VCU1QgICAgICAgICAgICAgID0KKworIyBTZXQgdGhlIE9QVElNSVpF
X09VVFBVVF9GT1JfQyB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBDIHNv
dXJjZXMKKyMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMg
bW9yZSB0YWlsb3JlZCBmb3IgQy4gRm9yCisjIGluc3RhbmNlLCBzb21lIG9mIHRoZSBuYW1lcyB0
aGF0IGFyZSB1c2VkIHdpbGwgYmUgZGlmZmVyZW50LiBUaGUgbGlzdCBvZiBhbGwKKyMgbWVtYmVy
cyB3aWxsIGJlIG9taXR0ZWQsIGV0Yy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitP
UFRJTUlaRV9PVVRQVVRfRk9SX0MgID0gTk8KKworIyBTZXQgdGhlIE9QVElNSVpFX09VVFBVVF9K
QVZBIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEphdmEgb3IKKyMgUHl0
aG9uIHNvdXJjZXMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQg
aXMgbW9yZSB0YWlsb3JlZAorIyBmb3IgdGhhdCBsYW5ndWFnZS4gRm9yIGluc3RhbmNlLCBuYW1l
c3BhY2VzIHdpbGwgYmUgcHJlc2VudGVkIGFzIHBhY2thZ2VzLAorIyBxdWFsaWZpZWQgc2NvcGVz
IHdpbGwgbG9vayBkaWZmZXJlbnQsIGV0Yy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgor
CitPUFRJTUlaRV9PVVRQVVRfSkFWQSAgID0gTk8KKworIyBTZXQgdGhlIE9QVElNSVpFX0ZPUl9G
T1JUUkFOIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEZvcnRyYW4KKyMg
c291cmNlcy4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgdGFpbG9y
ZWQgZm9yIEZvcnRyYW4uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworT1BUSU1JWkVf
Rk9SX0ZPUlRSQU4gICA9IE5PCisKKyMgU2V0IHRoZSBPUFRJTUlaRV9PVVRQVVRfVkhETCB0YWcg
dG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBWSERMCisjIHNvdXJjZXMuIERveHln
ZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIHRhaWxvcmVkIGZvciBWSERMLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK09QVElNSVpFX09VVFBVVF9WSERMICAgPSBO
TworCisjIERveHlnZW4gc2VsZWN0cyB0aGUgcGFyc2VyIHRvIHVzZSBkZXBlbmRpbmcgb24gdGhl
IGV4dGVuc2lvbiBvZiB0aGUgZmlsZXMgaXQKKyMgcGFyc2VzLiBXaXRoIHRoaXMgdGFnIHlvdSBj
YW4gYXNzaWduIHdoaWNoIHBhcnNlciB0byB1c2UgZm9yIGEgZ2l2ZW4KKyMgZXh0ZW5zaW9uLiBE
b3h5Z2VuIGhhcyBhIGJ1aWx0LWluIG1hcHBpbmcsIGJ1dCB5b3UgY2FuIG92ZXJyaWRlIG9yIGV4
dGVuZCBpdAorIyB1c2luZyB0aGlzIHRhZy4gVGhlIGZvcm1hdCBpcyBleHQ9bGFuZ3VhZ2UsIHdo
ZXJlIGV4dCBpcyBhIGZpbGUgZXh0ZW5zaW9uLCBhbmQKKyMgbGFuZ3VhZ2UgaXMgb25lIG9mIHRo
ZSBwYXJzZXJzIHN1cHBvcnRlZCBieSBkb3h5Z2VuOiBJREwsIEphdmEsIEphdmFTY3JpcHQsCisj
IEMjLCBDLCBDKyssIEQsIFBIUCwgT2JqZWN0aXZlLUMsIFB5dGhvbiwgRm9ydHJhbiwgVkhETC4g
Rm9yIGluc3RhbmNlIHRvIG1ha2UKKyMgZG94eWdlbiB0cmVhdCAuaW5jIGZpbGVzIGFzIEZvcnRy
YW4gZmlsZXMgKGRlZmF1bHQgaXMgUEhQKSwgYW5kIC5mIGZpbGVzIGFzIEMKKyMgKGRlZmF1bHQg
aXMgRm9ydHJhbiksIHVzZTogaW5jPUZvcnRyYW4gZj1DLgorIworIyBOb3RlIEZvciBmaWxlcyB3
aXRob3V0IGV4dGVuc2lvbiB5b3UgY2FuIHVzZSBub19leHRlbnNpb24gYXMgYSBwbGFjZWhvbGRl
ci4KKyMKKyMgTm90ZSB0aGF0IGZvciBjdXN0b20gZXh0ZW5zaW9ucyB5b3UgYWxzbyBuZWVkIHRv
IHNldCBGSUxFX1BBVFRFUk5TIG90aGVyd2lzZQorIyB0aGUgZmlsZXMgYXJlIG5vdCByZWFkIGJ5
IGRveHlnZW4uCisKK0VYVEVOU0lPTl9NQVBQSU5HICAgICAgPQorCisjIElmIHRoZSBNQVJLRE9X
Tl9TVVBQT1JUIHRhZyBpcyBlbmFibGVkIHRoZW4gZG94eWdlbiBwcmUtcHJvY2Vzc2VzIGFsbCBj
b21tZW50cworIyBhY2NvcmRpbmcgdG8gdGhlIE1hcmtkb3duIGZvcm1hdCwgd2hpY2ggYWxsb3dz
IGZvciBtb3JlIHJlYWRhYmxlCisjIGRvY3VtZW50YXRpb24uIFNlZSBodHRwOi8vZGFyaW5nZmly
ZWJhbGwubmV0L3Byb2plY3RzL21hcmtkb3duLyBmb3IgZGV0YWlscy4KKyMgVGhlIG91dHB1dCBv
ZiBtYXJrZG93biBwcm9jZXNzaW5nIGlzIGZ1cnRoZXIgcHJvY2Vzc2VkIGJ5IGRveHlnZW4sIHNv
IHlvdSBjYW4KKyMgbWl4IGRveHlnZW4sIEhUTUwsIGFuZCBYTUwgY29tbWFuZHMgd2l0aCBNYXJr
ZG93biBmb3JtYXR0aW5nLiBEaXNhYmxlIG9ubHkgaW4KKyMgY2FzZSBvZiBiYWNrd2FyZCBjb21w
YXRpYmlsaXRpZXMgaXNzdWVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitNQVJL
RE9XTl9TVVBQT1JUICAgICAgID0gWUVTCisKKyMgV2hlbiBlbmFibGVkIGRveHlnZW4gdHJpZXMg
dG8gbGluayB3b3JkcyB0aGF0IGNvcnJlc3BvbmQgdG8gZG9jdW1lbnRlZAorIyBjbGFzc2VzLCBv
ciBuYW1lc3BhY2VzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgZG9jdW1lbnRhdGlvbi4gU3VjaCBh
IGxpbmsgY2FuCisjIGJlIHByZXZlbnRlZCBpbiBpbmRpdmlkdWFsIGNhc2VzIGJ5IGJ5IHB1dHRp
bmcgYSAlIHNpZ24gaW4gZnJvbnQgb2YgdGhlIHdvcmQKKyMgb3IgZ2xvYmFsbHkgYnkgc2V0dGlu
ZyBBVVRPTElOS19TVVBQT1JUIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgor
CitBVVRPTElOS19TVVBQT1JUICAgICAgID0gWUVTCisKKyMgSWYgeW91IHVzZSBTVEwgY2xhc3Nl
cyAoaS5lLiBzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3IsIGV0Yy4pIGJ1dCBkbyBub3Qgd2FudAor
IyB0byBpbmNsdWRlIChhIHRhZyBmaWxlIGZvcikgdGhlIFNUTCBzb3VyY2VzIGFzIGlucHV0LCB0
aGVuIHlvdSBzaG91bGQgc2V0IHRoaXMKKyMgdGFnIHRvIFlFUyBpbiBvcmRlciB0byBsZXQgZG94
eWdlbiBtYXRjaCBmdW5jdGlvbnMgZGVjbGFyYXRpb25zIGFuZAorIyBkZWZpbml0aW9ucyB3aG9z
ZSBhcmd1bWVudHMgY29udGFpbiBTVEwgY2xhc3NlcyAoZS5nLiBmdW5jKHN0ZDo6c3RyaW5nKTsK
KyMgdmVyc3VzIGZ1bmMoc3RkOjpzdHJpbmcpIHt9KS4gVGhpcyBhbHNvIG1ha2UgdGhlIGluaGVy
aXRhbmNlIGFuZCBjb2xsYWJvcmF0aW9uCisjIGRpYWdyYW1zIHRoYXQgaW52b2x2ZSBTVEwgY2xh
c3NlcyBtb3JlIGNvbXBsZXRlIGFuZCBhY2N1cmF0ZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgorCitCVUlMVElOX1NUTF9TVVBQT1JUICAgID0gWUVTCisKKyMgSWYgeW91IHVzZSBNaWNy
b3NvZnQncyBDKysvQ0xJIGxhbmd1YWdlLCB5b3Ugc2hvdWxkIHNldCB0aGlzIG9wdGlvbiB0byBZ
RVMgdG8KKyMgZW5hYmxlIHBhcnNpbmcgc3VwcG9ydC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgorCitDUFBfQ0xJX1NVUFBPUlQgICAgICAgID0gTk8KKworIyBTZXQgdGhlIFNJUF9TVVBQ
T1JUIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIHNpcCAoc2VlOgorIyBo
dHRwOi8vd3d3LnJpdmVyYmFua2NvbXB1dGluZy5jby51ay9zb2Z0d2FyZS9zaXAvaW50cm8pIHNv
dXJjZXMgb25seS4gRG94eWdlbgorIyB3aWxsIHBhcnNlIHRoZW0gbGlrZSBub3JtYWwgQysrIGJ1
dCB3aWxsIGFzc3VtZSBhbGwgY2xhc3NlcyB1c2UgcHVibGljIGluc3RlYWQKKyMgb2YgcHJpdmF0
ZSBpbmhlcml0YW5jZSB3aGVuIG5vIGV4cGxpY2l0IHByb3RlY3Rpb24ga2V5d29yZCBpcyBwcmVz
ZW50LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NJUF9TVVBQT1JUICAgICAgICAg
ICAgPSBOTworCisjIEZvciBNaWNyb3NvZnQncyBJREwgdGhlcmUgYXJlIHByb3BnZXQgYW5kIHBy
b3BwdXQgYXR0cmlidXRlcyB0byBpbmRpY2F0ZQorIyBnZXR0ZXIgYW5kIHNldHRlciBtZXRob2Rz
IGZvciBhIHByb3BlcnR5LiBTZXR0aW5nIHRoaXMgb3B0aW9uIHRvIFlFUyB3aWxsIG1ha2UKKyMg
ZG94eWdlbiB0byByZXBsYWNlIHRoZSBnZXQgYW5kIHNldCBtZXRob2RzIGJ5IGEgcHJvcGVydHkg
aW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgdGhlIG1ldGhv
ZHMgYXJlIGluZGVlZCBnZXR0aW5nIG9yIHNldHRpbmcgYSBzaW1wbGUKKyMgdHlwZS4gSWYgdGhp
cyBpcyBub3QgdGhlIGNhc2UsIG9yIHlvdSB3YW50IHRvIHNob3cgdGhlIG1ldGhvZHMgYW55d2F5
LCB5b3UKKyMgc2hvdWxkIHNldCB0aGlzIG9wdGlvbiB0byBOTy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KKworSURMX1BST1BFUlRZX1NVUFBPUlQgICA9IFlFUworCisjIElmIG1lbWJl
ciBncm91cGluZyBpcyB1c2VkIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZCB0aGUgRElTVFJJQlVU
RV9HUk9VUF9ET0MKKyMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIHJldXNl
IHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBmaXJzdAorIyBtZW1iZXIgaW4gdGhlIGdyb3VwIChp
ZiBhbnkpIGZvciB0aGUgb3RoZXIgbWVtYmVycyBvZiB0aGUgZ3JvdXAuIEJ5IGRlZmF1bHQKKyMg
YWxsIG1lbWJlcnMgb2YgYSBncm91cCBtdXN0IGJlIGRvY3VtZW50ZWQgZXhwbGljaXRseS4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitESVNUUklCVVRFX0dST1VQX0RPQyAgID0gTk8K
KworIyBTZXQgdGhlIFNVQkdST1VQSU5HIHRhZyB0byBZRVMgdG8gYWxsb3cgY2xhc3MgbWVtYmVy
IGdyb3VwcyBvZiB0aGUgc2FtZSB0eXBlCisjIChmb3IgaW5zdGFuY2UgYSBncm91cCBvZiBwdWJs
aWMgZnVuY3Rpb25zKSB0byBiZSBwdXQgYXMgYSBzdWJncm91cCBvZiB0aGF0CisjIHR5cGUgKGUu
Zy4gdW5kZXIgdGhlIFB1YmxpYyBGdW5jdGlvbnMgc2VjdGlvbikuIFNldCBpdCB0byBOTyB0byBw
cmV2ZW50CisjIHN1Ymdyb3VwaW5nLiBBbHRlcm5hdGl2ZWx5LCB0aGlzIGNhbiBiZSBkb25lIHBl
ciBjbGFzcyB1c2luZyB0aGUKKyMgXG5vc3ViZ3JvdXBpbmcgY29tbWFuZC4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KKworU1VCR1JPVVBJTkcgICAgICAgICAgICA9IFlFUworCisjIFdo
ZW4gdGhlIElOTElORV9HUk9VUEVEX0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMsIGNsYXNzZXMs
IHN0cnVjdHMgYW5kIHVuaW9ucworIyBhcmUgc2hvd24gaW5zaWRlIHRoZSBncm91cCBpbiB3aGlj
aCB0aGV5IGFyZSBpbmNsdWRlZCAoZS5nLiB1c2luZyBcaW5ncm91cCkKKyMgaW5zdGVhZCBvZiBv
biBhIHNlcGFyYXRlIHBhZ2UgKGZvciBIVE1MIGFuZCBNYW4gcGFnZXMpIG9yIHNlY3Rpb24gKGZv
ciBMYVRlWAorIyBhbmQgUlRGKS4KKyMKKyMgTm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBkb2VzIG5v
dCB3b3JrIGluIGNvbWJpbmF0aW9uIHdpdGgKKyMgU0VQQVJBVEVfTUVNQkVSX1BBR0VTLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0lOTElORV9HUk9VUEVEX0NMQVNTRVMgPSBOTwor
CisjIFdoZW4gdGhlIElOTElORV9TSU1QTEVfU1RSVUNUUyB0YWcgaXMgc2V0IHRvIFlFUywgc3Ry
dWN0cywgY2xhc3NlcywgYW5kIHVuaW9ucworIyB3aXRoIG9ubHkgcHVibGljIGRhdGEgZmllbGRz
IG9yIHNpbXBsZSB0eXBlZGVmIGZpZWxkcyB3aWxsIGJlIHNob3duIGlubGluZSBpbgorIyB0aGUg
ZG9jdW1lbnRhdGlvbiBvZiB0aGUgc2NvcGUgaW4gd2hpY2ggdGhleSBhcmUgZGVmaW5lZCAoaS5l
LiBmaWxlLAorIyBuYW1lc3BhY2UsIG9yIGdyb3VwIGRvY3VtZW50YXRpb24pLCBwcm92aWRlZCB0
aGlzIHNjb3BlIGlzIGRvY3VtZW50ZWQuIElmIHNldAorIyB0byBOTywgc3RydWN0cywgY2xhc3Nl
cywgYW5kIHVuaW9ucyBhcmUgc2hvd24gb24gYSBzZXBhcmF0ZSBwYWdlIChmb3IgSFRNTCBhbmQK
KyMgTWFuIHBhZ2VzKSBvciBzZWN0aW9uIChmb3IgTGFUZVggYW5kIFJURikuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKworSU5MSU5FX1NJTVBMRV9TVFJVQ1RTICA9IE5PCisKKyMgV2hl
biBUWVBFREVGX0hJREVTX1NUUlVDVCB0YWcgaXMgZW5hYmxlZCwgYSB0eXBlZGVmIG9mIGEgc3Ry
dWN0LCB1bmlvbiwgb3IKKyMgZW51bSBpcyBkb2N1bWVudGVkIGFzIHN0cnVjdCwgdW5pb24sIG9y
IGVudW0gd2l0aCB0aGUgbmFtZSBvZiB0aGUgdHlwZWRlZi4gU28KKyMgdHlwZWRlZiBzdHJ1Y3Qg
VHlwZVMge30gVHlwZVQsIHdpbGwgYXBwZWFyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFzIGEgc3Ry
dWN0CisjIHdpdGggbmFtZSBUeXBlVC4gV2hlbiBkaXNhYmxlZCB0aGUgdHlwZWRlZiB3aWxsIGFw
cGVhciBhcyBhIG1lbWJlciBvZiBhIGZpbGUsCisjIG5hbWVzcGFjZSwgb3IgY2xhc3MuIEFuZCB0
aGUgc3RydWN0IHdpbGwgYmUgbmFtZWQgVHlwZVMuIFRoaXMgY2FuIHR5cGljYWxseSBiZQorIyB1
c2VmdWwgZm9yIEMgY29kZSBpbiBjYXNlIHRoZSBjb2RpbmcgY29udmVudGlvbiBkaWN0YXRlcyB0
aGF0IGFsbCBjb21wb3VuZAorIyB0eXBlcyBhcmUgdHlwZWRlZidlZCBhbmQgb25seSB0aGUgdHlw
ZWRlZiBpcyByZWZlcmVuY2VkLCBuZXZlciB0aGUgdGFnIG5hbWUuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKworVFlQRURFRl9ISURFU19TVFJVQ1QgICA9IE5PCisKKyMgVGhlIHNpemUg
b2YgdGhlIHN5bWJvbCBsb29rdXAgY2FjaGUgY2FuIGJlIHNldCB1c2luZyBMT09LVVBfQ0FDSEVf
U0laRS4gVGhpcworIyBjYWNoZSBpcyB1c2VkIHRvIHJlc29sdmUgc3ltYm9scyBnaXZlbiB0aGVp
ciBuYW1lIGFuZCBzY29wZS4gU2luY2UgdGhpcyBjYW4gYmUKKyMgYW4gZXhwZW5zaXZlIHByb2Nl
c3MgYW5kIG9mdGVuIHRoZSBzYW1lIHN5bWJvbCBhcHBlYXJzIG11bHRpcGxlIHRpbWVzIGluIHRo
ZQorIyBjb2RlLCBkb3h5Z2VuIGtlZXBzIGEgY2FjaGUgb2YgcHJlLXJlc29sdmVkIHN5bWJvbHMu
IElmIHRoZSBjYWNoZSBpcyB0b28gc21hbGwKKyMgZG94eWdlbiB3aWxsIGJlY29tZSBzbG93ZXIu
IElmIHRoZSBjYWNoZSBpcyB0b28gbGFyZ2UsIG1lbW9yeSBpcyB3YXN0ZWQuIFRoZQorIyBjYWNo
ZSBzaXplIGlzIGdpdmVuIGJ5IHRoaXMgZm9ybXVsYTogMl4oMTYrTE9PS1VQX0NBQ0hFX1NJWkUp
LiBUaGUgdmFsaWQgcmFuZ2UKKyMgaXMgMC4uOSwgdGhlIGRlZmF1bHQgaXMgMCwgY29ycmVzcG9u
ZGluZyB0byBhIGNhY2hlIHNpemUgb2YgMl4xNj02NTUzNgorIyBzeW1ib2xzLiBBdCB0aGUgZW5k
IG9mIGEgcnVuIGRveHlnZW4gd2lsbCByZXBvcnQgdGhlIGNhY2hlIHVzYWdlIGFuZCBzdWdnZXN0
CisjIHRoZSBvcHRpbWFsIGNhY2hlIHNpemUgZnJvbSBhIHNwZWVkIHBvaW50IG9mIHZpZXcuCisj
IE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDksIGRlZmF1bHQgdmFsdWU6IDAuCisK
K0xPT0tVUF9DQUNIRV9TSVpFICAgICAgPSAwCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQnVp
bGQgcmVsYXRlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
IyBJZiB0aGUgRVhUUkFDVF9BTEwgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGFzc3Vt
ZSBhbGwgZW50aXRpZXMgaW4KKyMgZG9jdW1lbnRhdGlvbiBhcmUgZG9jdW1lbnRlZCwgZXZlbiBp
ZiBubyBkb2N1bWVudGF0aW9uIHdhcyBhdmFpbGFibGUuIFByaXZhdGUKKyMgY2xhc3MgbWVtYmVy
cyBhbmQgc3RhdGljIGZpbGUgbWVtYmVycyB3aWxsIGJlIGhpZGRlbiB1bmxlc3MgdGhlCisjIEVY
VFJBQ1RfUFJJVkFURSByZXNwZWN0aXZlbHkgRVhUUkFDVF9TVEFUSUMgdGFncyBhcmUgc2V0IHRv
IFlFUy4KKyMgTm90ZTogVGhpcyB3aWxsIGFsc28gZGlzYWJsZSB0aGUgd2FybmluZ3MgYWJvdXQg
dW5kb2N1bWVudGVkIG1lbWJlcnMgdGhhdCBhcmUKKyMgbm9ybWFsbHkgcHJvZHVjZWQgd2hlbiBX
QVJOSU5HUyBpcyBzZXQgdG8gWUVTLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0VY
VFJBQ1RfQUxMICAgICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgRVhUUkFDVF9QUklWQVRFIHRh
ZyBpcyBzZXQgdG8gWUVTIGFsbCBwcml2YXRlIG1lbWJlcnMgb2YgYSBjbGFzcyB3aWxsCisjIGJl
IGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisKK0VYVFJBQ1RfUFJJVkFURSAgICAgICAgPSBOTworCisjIElmIHRoZSBFWFRSQUNUX1BB
Q0tBR0UgdGFnIGlzIHNldCB0byBZRVMgYWxsIG1lbWJlcnMgd2l0aCBwYWNrYWdlIG9yIGludGVy
bmFsCisjIHNjb3BlIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworRVhUUkFDVF9QQUNLQUdFICAgICAgICA9IE5PCisK
KyMgSWYgdGhlIEVYVFJBQ1RfU1RBVElDIHRhZyBpcyBzZXQgdG8gWUVTIGFsbCBzdGF0aWMgbWVt
YmVycyBvZiBhIGZpbGUgd2lsbCBiZQorIyBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitFWFRSQUNUX1NUQVRJQyAgICAgICAgID0g
WUVTCisKKyMgSWYgdGhlIEVYVFJBQ1RfTE9DQUxfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlFUyBj
bGFzc2VzIChhbmQgc3RydWN0cykgZGVmaW5lZAorIyBsb2NhbGx5IGluIHNvdXJjZSBmaWxlcyB3
aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gTk8KKyMgb25s
eSBjbGFzc2VzIGRlZmluZWQgaW4gaGVhZGVyIGZpbGVzIGFyZSBpbmNsdWRlZC4gRG9lcyBub3Qg
aGF2ZSBhbnkgZWZmZWN0CisjIGZvciBKYXZhIHNvdXJjZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCisKK0VYVFJBQ1RfTE9DQUxfQ0xBU1NFUyAgPSBOTworCisjIFRoaXMgZmxhZyBp
cyBvbmx5IHVzZWZ1bCBmb3IgT2JqZWN0aXZlLUMgY29kZS4gV2hlbiBzZXQgdG8gWUVTIGxvY2Fs
IG1ldGhvZHMsCisjIHdoaWNoIGFyZSBkZWZpbmVkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBzZWN0
aW9uIGJ1dCBub3QgaW4gdGhlIGludGVyZmFjZSBhcmUKKyMgaW5jbHVkZWQgaW4gdGhlIGRvY3Vt
ZW50YXRpb24uIElmIHNldCB0byBOTyBvbmx5IG1ldGhvZHMgaW4gdGhlIGludGVyZmFjZSBhcmUK
KyMgaW5jbHVkZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworRVhUUkFDVF9MT0NB
TF9NRVRIT0RTICA9IE5PCisKKyMgSWYgdGhpcyBmbGFnIGlzIHNldCB0byBZRVMsIHRoZSBtZW1i
ZXJzIG9mIGFub255bW91cyBuYW1lc3BhY2VzIHdpbGwgYmUKKyMgZXh0cmFjdGVkIGFuZCBhcHBl
YXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYXMgYSBuYW1lc3BhY2UgY2FsbGVkCisjICdhbm9ueW1v
dXNfbmFtZXNwYWNle2ZpbGV9Jywgd2hlcmUgZmlsZSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhl
IGJhc2UgbmFtZSBvZgorIyB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBhbm9ueW1vdXMgbmFt
ZXNwYWNlLiBCeSBkZWZhdWx0IGFub255bW91cyBuYW1lc3BhY2UKKyMgYXJlIGhpZGRlbi4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitFWFRSQUNUX0FOT05fTlNQQUNFUyAgID0gTk8K
KworIyBJZiB0aGUgSElERV9VTkRPQ19NRU1CRVJTIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2Vu
IHdpbGwgaGlkZSBhbGwKKyMgdW5kb2N1bWVudGVkIG1lbWJlcnMgaW5zaWRlIGRvY3VtZW50ZWQg
Y2xhc3NlcyBvciBmaWxlcy4gSWYgc2V0IHRvIE5PIHRoZXNlCisjIG1lbWJlcnMgd2lsbCBiZSBp
bmNsdWRlZCBpbiB0aGUgdmFyaW91cyBvdmVydmlld3MsIGJ1dCBubyBkb2N1bWVudGF0aW9uCisj
IHNlY3Rpb24gaXMgZ2VuZXJhdGVkLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IGlmIEVYVFJB
Q1RfQUxMIGlzIGVuYWJsZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworSElERV9V
TkRPQ19NRU1CRVJTICAgICA9IE5PCisKKyMgSWYgdGhlIEhJREVfVU5ET0NfQ0xBU1NFUyB0YWcg
aXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYWxsCisjIHVuZG9jdW1lbnRlZCBjbGFz
c2VzIHRoYXQgYXJlIG5vcm1hbGx5IHZpc2libGUgaW4gdGhlIGNsYXNzIGhpZXJhcmNoeS4gSWYg
c2V0CisjIHRvIE5PIHRoZXNlIGNsYXNzZXMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgdmFyaW91
cyBvdmVydmlld3MuIFRoaXMgb3B0aW9uIGhhcworIyBubyBlZmZlY3QgaWYgRVhUUkFDVF9BTEwg
aXMgZW5hYmxlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitISURFX1VORE9DX0NM
QVNTRVMgICAgID0gTk8KKworIyBJZiB0aGUgSElERV9GUklFTkRfQ09NUE9VTkRTIHRhZyBpcyBz
ZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgaGlkZSBhbGwgZnJpZW5kCisjIChjbGFzc3xzdHJ1Y3R8
dW5pb24pIGRlY2xhcmF0aW9ucy4gSWYgc2V0IHRvIE5PIHRoZXNlIGRlY2xhcmF0aW9ucyB3aWxs
IGJlCisjIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisKK0hJREVfRlJJRU5EX0NPTVBPVU5EUyAgPSBOTworCisjIElmIHRoZSBISURF
X0lOX0JPRFlfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYW55Cisj
IGRvY3VtZW50YXRpb24gYmxvY2tzIGZvdW5kIGluc2lkZSB0aGUgYm9keSBvZiBhIGZ1bmN0aW9u
LiBJZiBzZXQgdG8gTk8gdGhlc2UKKyMgYmxvY2tzIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGZ1
bmN0aW9uJ3MgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBibG9jay4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgorCitISURFX0lOX0JPRFlfRE9DUyAgICAgID0gTk8KKworIyBUaGUgSU5URVJO
QUxfRE9DUyB0YWcgZGV0ZXJtaW5lcyBpZiBkb2N1bWVudGF0aW9uIHRoYXQgaXMgdHlwZWQgYWZ0
ZXIgYQorIyBcaW50ZXJuYWwgY29tbWFuZCBpcyBpbmNsdWRlZC4gSWYgdGhlIHRhZyBpcyBzZXQg
dG8gTk8gdGhlbiB0aGUgZG9jdW1lbnRhdGlvbgorIyB3aWxsIGJlIGV4Y2x1ZGVkLiBTZXQgaXQg
dG8gWUVTIHRvIGluY2x1ZGUgdGhlIGludGVybmFsIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKworSU5URVJOQUxfRE9DUyAgICAgICAgICA9IFlFUworCisjIElm
IHRoZSBDQVNFX1NFTlNFX05BTUVTIHRhZyBpcyBzZXQgdG8gTk8gdGhlbiBkb3h5Z2VuIHdpbGwg
b25seSBnZW5lcmF0ZSBmaWxlCisjIG5hbWVzIGluIGxvd2VyLWNhc2UgbGV0dGVycy4gSWYgc2V0
IHRvIFlFUyB1cHBlci1jYXNlIGxldHRlcnMgYXJlIGFsc28KKyMgYWxsb3dlZC4gVGhpcyBpcyB1
c2VmdWwgaWYgeW91IGhhdmUgY2xhc3NlcyBvciBmaWxlcyB3aG9zZSBuYW1lcyBvbmx5IGRpZmZl
cgorIyBpbiBjYXNlIGFuZCBpZiB5b3VyIGZpbGUgc3lzdGVtIHN1cHBvcnRzIGNhc2Ugc2Vuc2l0
aXZlIGZpbGUgbmFtZXMuIFdpbmRvd3MKKyMgYW5kIE1hYyB1c2VycyBhcmUgYWR2aXNlZCB0byBz
ZXQgdGhpcyBvcHRpb24gdG8gTk8uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBzeXN0ZW0gZGVw
ZW5kZW50LgorCitDQVNFX1NFTlNFX05BTUVTICAgICAgID0gTk8KKworIyBJZiB0aGUgSElERV9T
Q09QRV9OQU1FUyB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gZG94eWdlbiB3aWxsIHNob3cgbWVtYmVy
cyB3aXRoCisjIHRoZWlyIGZ1bGwgY2xhc3MgYW5kIG5hbWVzcGFjZSBzY29wZXMgaW4gdGhlIGRv
Y3VtZW50YXRpb24uIElmIHNldCB0byBZRVMgdGhlCisjIHNjb3BlIHdpbGwgYmUgaGlkZGVuLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0hJREVfU0NPUEVfTkFNRVMgICAgICAgPSBO
TworCisjIElmIHRoZSBTSE9XX0lOQ0xVREVfRklMRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBk
b3h5Z2VuIHdpbGwgcHV0IGEgbGlzdCBvZgorIyB0aGUgZmlsZXMgdGhhdCBhcmUgaW5jbHVkZWQg
YnkgYSBmaWxlIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoYXQgZmlsZS4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KKworU0hPV19JTkNMVURFX0ZJTEVTICAgICA9IFlFUworCisjIElm
IHRoZSBGT1JDRV9MT0NBTF9JTkNMVURFUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4g
d2lsbCBsaXN0IGluY2x1ZGUKKyMgZmlsZXMgd2l0aCBkb3VibGUgcXVvdGVzIGluIHRoZSBkb2N1
bWVudGF0aW9uIHJhdGhlciB0aGFuIHdpdGggc2hhcnAgYnJhY2tldHMuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBOTy4KKworRk9SQ0VfTE9DQUxfSU5DTFVERVMgICA9IE5PCisKKyMgSWYgdGhl
IElOTElORV9JTkZPIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gYSB0YWcgW2lubGluZV0gaXMgaW5z
ZXJ0ZWQgaW4gdGhlCisjIGRvY3VtZW50YXRpb24gZm9yIGlubGluZSBtZW1iZXJzLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitJTkxJTkVfSU5GTyAgICAgICAgICAgID0gWUVTCisK
KyMgSWYgdGhlIFNPUlRfTUVNQkVSX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2Vu
IHdpbGwgc29ydCB0aGUKKyMgKGRldGFpbGVkKSBkb2N1bWVudGF0aW9uIG9mIGZpbGUgYW5kIGNs
YXNzIG1lbWJlcnMgYWxwaGFiZXRpY2FsbHkgYnkgbWVtYmVyCisjIG5hbWUuIElmIHNldCB0byBO
TyB0aGUgbWVtYmVycyB3aWxsIGFwcGVhciBpbiBkZWNsYXJhdGlvbiBvcmRlci4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworU09SVF9NRU1CRVJfRE9DUyAgICAgICA9IFlFUworCisj
IElmIHRoZSBTT1JUX0JSSUVGX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdp
bGwgc29ydCB0aGUgYnJpZWYKKyMgZGVzY3JpcHRpb25zIG9mIGZpbGUsIG5hbWVzcGFjZSBhbmQg
Y2xhc3MgbWVtYmVycyBhbHBoYWJldGljYWxseSBieSBtZW1iZXIKKyMgbmFtZS4gSWYgc2V0IHRv
IE5PIHRoZSBtZW1iZXJzIHdpbGwgYXBwZWFyIGluIGRlY2xhcmF0aW9uIG9yZGVyLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NPUlRfQlJJRUZfRE9DUyAgICAgICAgPSBOTworCisj
IElmIHRoZSBTT1JUX01FTUJFUlNfQ1RPUlNfMVNUIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94
eWdlbiB3aWxsIHNvcnQgdGhlCisjIChicmllZiBhbmQgZGV0YWlsZWQpIGRvY3VtZW50YXRpb24g
b2YgY2xhc3MgbWVtYmVycyBzbyB0aGF0IGNvbnN0cnVjdG9ycyBhbmQKKyMgZGVzdHJ1Y3RvcnMg
YXJlIGxpc3RlZCBmaXJzdC4gSWYgc2V0IHRvIE5PIHRoZSBjb25zdHJ1Y3RvcnMgd2lsbCBhcHBl
YXIgaW4gdGhlCisjIHJlc3BlY3RpdmUgb3JkZXJzIGRlZmluZWQgYnkgU09SVF9CUklFRl9ET0NT
IGFuZCBTT1JUX01FTUJFUl9ET0NTLgorIyBOb3RlOiBJZiBTT1JUX0JSSUVGX0RPQ1MgaXMgc2V0
IHRvIE5PIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgZm9yIHNvcnRpbmcgYnJpZWYKKyMgbWVtYmVy
IGRvY3VtZW50YXRpb24uCisjIE5vdGU6IElmIFNPUlRfTUVNQkVSX0RPQ1MgaXMgc2V0IHRvIE5P
IHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgZm9yIHNvcnRpbmcKKyMgZGV0YWlsZWQgbWVtYmVyIGRv
Y3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworU09SVF9NRU1CRVJT
X0NUT1JTXzFTVCA9IE5PCisKKyMgSWYgdGhlIFNPUlRfR1JPVVBfTkFNRVMgdGFnIGlzIHNldCB0
byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc29ydCB0aGUgaGllcmFyY2h5CisjIG9mIGdyb3VwIG5h
bWVzIGludG8gYWxwaGFiZXRpY2FsIG9yZGVyLiBJZiBzZXQgdG8gTk8gdGhlIGdyb3VwIG5hbWVz
IHdpbGwKKyMgYXBwZWFyIGluIHRoZWlyIGRlZmluZWQgb3JkZXIuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKworU09SVF9HUk9VUF9OQU1FUyAgICAgICA9IE5PCisKKyMgSWYgdGhlIFNP
UlRfQllfU0NPUEVfTkFNRSB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIGNsYXNzIGxpc3Qgd2lsbCBi
ZSBzb3J0ZWQgYnkKKyMgZnVsbHktcXVhbGlmaWVkIG5hbWVzLCBpbmNsdWRpbmcgbmFtZXNwYWNl
cy4gSWYgc2V0IHRvIE5PLCB0aGUgY2xhc3MgbGlzdCB3aWxsCisjIGJlIHNvcnRlZCBvbmx5IGJ5
IGNsYXNzIG5hbWUsIG5vdCBpbmNsdWRpbmcgdGhlIG5hbWVzcGFjZSBwYXJ0LgorIyBOb3RlOiBU
aGlzIG9wdGlvbiBpcyBub3QgdmVyeSB1c2VmdWwgaWYgSElERV9TQ09QRV9OQU1FUyBpcyBzZXQg
dG8gWUVTLgorIyBOb3RlOiBUaGlzIG9wdGlvbiBhcHBsaWVzIG9ubHkgdG8gdGhlIGNsYXNzIGxp
c3QsIG5vdCB0byB0aGUgYWxwaGFiZXRpY2FsCisjIGxpc3QuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKworU09SVF9CWV9TQ09QRV9OQU1FICAgICA9IFlFUworCisjIElmIHRoZSBTVFJJ
Q1RfUFJPVE9fTUFUQ0hJTkcgb3B0aW9uIGlzIGVuYWJsZWQgYW5kIGRveHlnZW4gZmFpbHMgdG8g
ZG8gcHJvcGVyCisjIHR5cGUgcmVzb2x1dGlvbiBvZiBhbGwgcGFyYW1ldGVycyBvZiBhIGZ1bmN0
aW9uIGl0IHdpbGwgcmVqZWN0IGEgbWF0Y2ggYmV0d2VlbgorIyB0aGUgcHJvdG90eXBlIGFuZCB0
aGUgaW1wbGVtZW50YXRpb24gb2YgYSBtZW1iZXIgZnVuY3Rpb24gZXZlbiBpZiB0aGVyZSBpcwor
IyBvbmx5IG9uZSBjYW5kaWRhdGUgb3IgaXQgaXMgb2J2aW91cyB3aGljaCBjYW5kaWRhdGUgdG8g
Y2hvb3NlIGJ5IGRvaW5nIGEKKyMgc2ltcGxlIHN0cmluZyBtYXRjaC4gQnkgZGlzYWJsaW5nIFNU
UklDVF9QUk9UT19NQVRDSElORyBkb3h5Z2VuIHdpbGwgc3RpbGwKKyMgYWNjZXB0IGEgbWF0Y2gg
YmV0d2VlbiBwcm90b3R5cGUgYW5kIGltcGxlbWVudGF0aW9uIGluIHN1Y2ggY2FzZXMuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworU1RSSUNUX1BST1RPX01BVENISU5HICA9IE5PCisK
KyMgVGhlIEdFTkVSQVRFX1RPRE9MSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKCBZRVMp
IG9yIGRpc2FibGUgKCBOTykgdGhlCisjIHRvZG8gbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQg
YnkgcHV0dGluZyBcdG9kbyBjb21tYW5kcyBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbi4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworR0VORVJBVEVfVE9ET0xJU1QgICAgICA9IFlFUwor
CisjIFRoZSBHRU5FUkFURV9URVNUTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlICggWUVT
KSBvciBkaXNhYmxlICggTk8pIHRoZQorIyB0ZXN0IGxpc3QuIFRoaXMgbGlzdCBpcyBjcmVhdGVk
IGJ5IHB1dHRpbmcgXHRlc3QgY29tbWFuZHMgaW4gdGhlCisjIGRvY3VtZW50YXRpb24uCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0dFTkVSQVRFX1RFU1RMSVNUICAgICAgPSBOTwor
CisjIFRoZSBHRU5FUkFURV9CVUdMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKCBZRVMp
IG9yIGRpc2FibGUgKCBOTykgdGhlIGJ1ZworIyBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRlZCBi
eSBwdXR0aW5nIFxidWcgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBZRVMuCisKK0dFTkVSQVRFX0JVR0xJU1QgICAgICAgPSBOTworCisjIFRo
ZSBHRU5FUkFURV9ERVBSRUNBVEVETElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlICggWUVT
KSBvciBkaXNhYmxlICggTk8pCisjIHRoZSBkZXByZWNhdGVkIGxpc3QuIFRoaXMgbGlzdCBpcyBj
cmVhdGVkIGJ5IHB1dHRpbmcgXGRlcHJlY2F0ZWQgY29tbWFuZHMgaW4KKyMgdGhlIGRvY3VtZW50
YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0dFTkVSQVRFX0RFUFJFQ0FU
RURMSVNUPSBZRVMKKworIyBUaGUgRU5BQkxFRF9TRUNUSU9OUyB0YWcgY2FuIGJlIHVzZWQgdG8g
ZW5hYmxlIGNvbmRpdGlvbmFsIGRvY3VtZW50YXRpb24KKyMgc2VjdGlvbnMsIG1hcmtlZCBieSBc
aWYgPHNlY3Rpb25fbGFiZWw+IC4uLiBcZW5kaWYgYW5kIFxjb25kIDxzZWN0aW9uX2xhYmVsPgor
IyAuLi4gXGVuZGNvbmQgYmxvY2tzLgorCitFTkFCTEVEX1NFQ1RJT05TICAgICAgID0KKworIyBU
aGUgTUFYX0lOSVRJQUxJWkVSX0xJTkVTIHRhZyBkZXRlcm1pbmVzIHRoZSBtYXhpbXVtIG51bWJl
ciBvZiBsaW5lcyB0aGF0IHRoZQorIyBpbml0aWFsIHZhbHVlIG9mIGEgdmFyaWFibGUgb3IgbWFj
cm8gLyBkZWZpbmUgY2FuIGhhdmUgZm9yIGl0IHRvIGFwcGVhciBpbiB0aGUKKyMgZG9jdW1lbnRh
dGlvbi4gSWYgdGhlIGluaXRpYWxpemVyIGNvbnNpc3RzIG9mIG1vcmUgbGluZXMgdGhhbiBzcGVj
aWZpZWQgaGVyZQorIyBpdCB3aWxsIGJlIGhpZGRlbi4gVXNlIGEgdmFsdWUgb2YgMCB0byBoaWRl
IGluaXRpYWxpemVycyBjb21wbGV0ZWx5LiBUaGUKKyMgYXBwZWFyYW5jZSBvZiB0aGUgdmFsdWUg
b2YgaW5kaXZpZHVhbCB2YXJpYWJsZXMgYW5kIG1hY3JvcyAvIGRlZmluZXMgY2FuIGJlCisjIGNv
bnRyb2xsZWQgdXNpbmcgXHNob3dpbml0aWFsaXplciBvciBcaGlkZWluaXRpYWxpemVyIGNvbW1h
bmQgaW4gdGhlCisjIGRvY3VtZW50YXRpb24gcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuCisj
IE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMDAwLCBkZWZhdWx0IHZhbHVlOiAz
MC4KKworTUFYX0lOSVRJQUxJWkVSX0xJTkVTICA9IDMwCisKKyMgU2V0IHRoZSBTSE9XX1VTRURf
RklMRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGxpc3Qgb2YgZmlsZXMgZ2VuZXJhdGVkIGF0
CisjIHRoZSBib3R0b20gb2YgdGhlIGRvY3VtZW50YXRpb24gb2YgY2xhc3NlcyBhbmQgc3RydWN0
cy4gSWYgc2V0IHRvIFlFUyB0aGUgbGlzdAorIyB3aWxsIG1lbnRpb24gdGhlIGZpbGVzIHRoYXQg
d2VyZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogWUVTLgorCitTSE9XX1VTRURfRklMRVMgICAgICAgID0gWUVTCisKKyMgU2V0IHRo
ZSBTSE9XX0ZJTEVTIHRhZyB0byBOTyB0byBkaXNhYmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBG
aWxlcyBwYWdlLiBUaGlzCisjIHdpbGwgcmVtb3ZlIHRoZSBGaWxlcyBlbnRyeSBmcm9tIHRoZSBR
dWljayBJbmRleCBhbmQgZnJvbSB0aGUgRm9sZGVyIFRyZWUgVmlldworIyAoaWYgc3BlY2lmaWVk
KS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworU0hPV19GSUxFUyAgICAgICAgICAg
ICA9IFlFUworCisjIFNldCB0aGUgU0hPV19OQU1FU1BBQ0VTIHRhZyB0byBOTyB0byBkaXNhYmxl
IHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBOYW1lc3BhY2VzCisjIHBhZ2UuIFRoaXMgd2lsbCByZW1v
dmUgdGhlIE5hbWVzcGFjZXMgZW50cnkgZnJvbSB0aGUgUXVpY2sgSW5kZXggYW5kIGZyb20gdGhl
CisjIEZvbGRlciBUcmVlIFZpZXcgKGlmIHNwZWNpZmllZCkuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCisKK1NIT1dfTkFNRVNQQUNFUyAgICAgICAgPSBZRVMKKworIyBUaGUgRklMRV9W
RVJTSU9OX0ZJTFRFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb2dyYW0gb3Igc2Ny
aXB0IHRoYXQKKyMgZG94eWdlbiBzaG91bGQgaW52b2tlIHRvIGdldCB0aGUgY3VycmVudCB2ZXJz
aW9uIGZvciBlYWNoIGZpbGUgKHR5cGljYWxseSBmcm9tCisjIHRoZSB2ZXJzaW9uIGNvbnRyb2wg
c3lzdGVtKS4gRG94eWdlbiB3aWxsIGludm9rZSB0aGUgcHJvZ3JhbSBieSBleGVjdXRpbmcgKHZp
YQorIyBwb3BlbigpKSB0aGUgY29tbWFuZCBjb21tYW5kIGlucHV0LWZpbGUsIHdoZXJlIGNvbW1h
bmQgaXMgdGhlIHZhbHVlIG9mIHRoZQorIyBGSUxFX1ZFUlNJT05fRklMVEVSIHRhZywgYW5kIGlu
cHV0LWZpbGUgaXMgdGhlIG5hbWUgb2YgYW4gaW5wdXQgZmlsZSBwcm92aWRlZAorIyBieSBkb3h5
Z2VuLiBXaGF0ZXZlciB0aGUgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRhcmQgb3V0cHV0IGlzIHVz
ZWQgYXMgdGhlIGZpbGUKKyMgdmVyc2lvbi4gRm9yIGFuIGV4YW1wbGUgc2VlIHRoZSBkb2N1bWVu
dGF0aW9uLgorCitGSUxFX1ZFUlNJT05fRklMVEVSICAgID0KKworIyBUaGUgTEFZT1VUX0ZJTEUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBsYXlvdXQgZmlsZSB3aGljaCB3aWxsIGJlIHBh
cnNlZAorIyBieSBkb3h5Z2VuLiBUaGUgbGF5b3V0IGZpbGUgY29udHJvbHMgdGhlIGdsb2JhbCBz
dHJ1Y3R1cmUgb2YgdGhlIGdlbmVyYXRlZAorIyBvdXRwdXQgZmlsZXMgaW4gYW4gb3V0cHV0IGZv
cm1hdCBpbmRlcGVuZGVudCB3YXkuIFRvIGNyZWF0ZSB0aGUgbGF5b3V0IGZpbGUKKyMgdGhhdCBy
ZXByZXNlbnRzIGRveHlnZW4ncyBkZWZhdWx0cywgcnVuIGRveHlnZW4gd2l0aCB0aGUgLWwgb3B0
aW9uLiBZb3UgY2FuCisjIG9wdGlvbmFsbHkgc3BlY2lmeSBhIGZpbGUgbmFtZSBhZnRlciB0aGUg
b3B0aW9uLCBpZiBvbWl0dGVkIERveHlnZW5MYXlvdXQueG1sCisjIHdpbGwgYmUgdXNlZCBhcyB0
aGUgbmFtZSBvZiB0aGUgbGF5b3V0IGZpbGUuCisjCisjIE5vdGUgdGhhdCBpZiB5b3UgcnVuIGRv
eHlnZW4gZnJvbSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgZmlsZSBjYWxsZWQKKyMgRG94eWdl
bkxheW91dC54bWwsIGRveHlnZW4gd2lsbCBwYXJzZSBpdCBhdXRvbWF0aWNhbGx5IGV2ZW4gaWYg
dGhlIExBWU9VVF9GSUxFCisjIHRhZyBpcyBsZWZ0IGVtcHR5LgorCitMQVlPVVRfRklMRSAgICAg
ICAgICAgID0KKworIyBUaGUgQ0lURV9CSUJfRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
Znkgb25lIG9yIG1vcmUgYmliIGZpbGVzIGNvbnRhaW5pbmcKKyMgdGhlIHJlZmVyZW5jZSBkZWZp
bml0aW9ucy4gVGhpcyBtdXN0IGJlIGEgbGlzdCBvZiAuYmliIGZpbGVzLiBUaGUgLmJpYgorIyBl
eHRlbnNpb24gaXMgYXV0b21hdGljYWxseSBhcHBlbmRlZCBpZiBvbWl0dGVkLiBUaGlzIHJlcXVp
cmVzIHRoZSBiaWJ0ZXggdG9vbAorIyB0byBiZSBpbnN0YWxsZWQuIFNlZSBhbHNvIGh0dHA6Ly9l
bi53aWtpcGVkaWEub3JnL3dpa2kvQmliVGVYIGZvciBtb3JlIGluZm8uCisjIEZvciBMYVRlWCB0
aGUgc3R5bGUgb2YgdGhlIGJpYmxpb2dyYXBoeSBjYW4gYmUgY29udHJvbGxlZCB1c2luZworIyBM
QVRFWF9CSUJfU1RZTEUuIFRvIHVzZSB0aGlzIGZlYXR1cmUgeW91IG5lZWQgYmlidGV4IGFuZCBw
ZXJsIGF2YWlsYWJsZSBpbiB0aGUKKyMgc2VhcmNoIHBhdGguIERvIG5vdCB1c2UgZmlsZSBuYW1l
cyB3aXRoIHNwYWNlcywgYmlidGV4IGNhbm5vdCBoYW5kbGUgdGhlbS4gU2VlCisjIGFsc28gXGNp
dGUgZm9yIGluZm8gaG93IHRvIGNyZWF0ZSByZWZlcmVuY2VzLgorCitDSVRFX0JJQl9GSUxFUyAg
ICAgICAgID0KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMg
cmVsYXRlZCB0byB3YXJuaW5nIGFuZCBwcm9ncmVzcyBtZXNzYWdlcworIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisjIFRoZSBRVUlFVCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIG1l
c3NhZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCB0bworIyBzdGFuZGFyZCBvdXRwdXQgYnkgZG94eWdl
bi4gSWYgUVVJRVQgaXMgc2V0IHRvIFlFUyB0aGlzIGltcGxpZXMgdGhhdCB0aGUKKyMgbWVzc2Fn
ZXMgYXJlIG9mZi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitRVUlFVCAgICAgICAg
ICAgICAgICAgID0gTk8KKworIyBUaGUgV0FSTklOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4g
b24vb2ZmIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIHRoYXQgYXJlCisjIGdlbmVyYXRlZCB0byBzdGFu
ZGFyZCBlcnJvciAoIHN0ZGVycikgYnkgZG94eWdlbi4gSWYgV0FSTklOR1MgaXMgc2V0IHRvIFlF
UworIyB0aGlzIGltcGxpZXMgdGhhdCB0aGUgd2FybmluZ3MgYXJlIG9uLgorIworIyBUaXA6IFR1
cm4gd2FybmluZ3Mgb24gd2hpbGUgd3JpdGluZyB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworV0FSTklOR1MgICAgICAgICAgICAgICA9IFlFUworCisj
IElmIHRoZSBXQVJOX0lGX1VORE9DVU1FTlRFRCB0YWcgaXMgc2V0IHRvIFlFUywgdGhlbiBkb3h5
Z2VuIHdpbGwgZ2VuZXJhdGUKKyMgd2FybmluZ3MgZm9yIHVuZG9jdW1lbnRlZCBtZW1iZXJzLiBJ
ZiBFWFRSQUNUX0FMTCBpcyBzZXQgdG8gWUVTIHRoZW4gdGhpcyBmbGFnCisjIHdpbGwgYXV0b21h
dGljYWxseSBiZSBkaXNhYmxlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworV0FS
Tl9JRl9VTkRPQ1VNRU5URUQgICA9IFlFUworCisjIElmIHRoZSBXQVJOX0lGX0RPQ19FUlJPUiB0
YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5pbmdzIGZvcgorIyBw
b3RlbnRpYWwgZXJyb3JzIGluIHRoZSBkb2N1bWVudGF0aW9uLCBzdWNoIGFzIG5vdCBkb2N1bWVu
dGluZyBzb21lIHBhcmFtZXRlcnMKKyMgaW4gYSBkb2N1bWVudGVkIGZ1bmN0aW9uLCBvciBkb2N1
bWVudGluZyBwYXJhbWV0ZXJzIHRoYXQgZG9uJ3QgZXhpc3Qgb3IgdXNpbmcKKyMgbWFya3VwIGNv
bW1hbmRzIHdyb25nbHkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1dBUk5fSUZf
RE9DX0VSUk9SICAgICAgPSBZRVMKKworIyBUaGlzIFdBUk5fTk9fUEFSQU1ET0Mgb3B0aW9uIGNh
biBiZSBlbmFibGVkIHRvIGdldCB3YXJuaW5ncyBmb3IgZnVuY3Rpb25zIHRoYXQKKyMgYXJlIGRv
Y3VtZW50ZWQsIGJ1dCBoYXZlIG5vIGRvY3VtZW50YXRpb24gZm9yIHRoZWlyIHBhcmFtZXRlcnMg
b3IgcmV0dXJuCisjIHZhbHVlLiBJZiBzZXQgdG8gTk8gZG94eWdlbiB3aWxsIG9ubHkgd2FybiBh
Ym91dCB3cm9uZyBvciBpbmNvbXBsZXRlIHBhcmFtZXRlcgorIyBkb2N1bWVudGF0aW9uLCBidXQg
bm90IGFib3V0IHRoZSBhYnNlbmNlIG9mIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKworV0FSTl9OT19QQVJBTURPQyAgICAgICA9IE5PCisKKyMgVGhlIFdBUk5f
Rk9STUFUIHRhZyBkZXRlcm1pbmVzIHRoZSBmb3JtYXQgb2YgdGhlIHdhcm5pbmcgbWVzc2FnZXMg
dGhhdCBkb3h5Z2VuCisjIGNhbiBwcm9kdWNlLiBUaGUgc3RyaW5nIHNob3VsZCBjb250YWluIHRo
ZSAkZmlsZSwgJGxpbmUsIGFuZCAkdGV4dCB0YWdzLCB3aGljaAorIyB3aWxsIGJlIHJlcGxhY2Vk
IGJ5IHRoZSBmaWxlIGFuZCBsaW5lIG51bWJlciBmcm9tIHdoaWNoIHRoZSB3YXJuaW5nIG9yaWdp
bmF0ZWQKKyMgYW5kIHRoZSB3YXJuaW5nIHRleHQuIE9wdGlvbmFsbHkgdGhlIGZvcm1hdCBtYXkg
Y29udGFpbiAkdmVyc2lvbiwgd2hpY2ggd2lsbAorIyBiZSByZXBsYWNlZCBieSB0aGUgdmVyc2lv
biBvZiB0aGUgZmlsZSAoaWYgaXQgY291bGQgYmUgb2J0YWluZWQgdmlhCisjIEZJTEVfVkVSU0lP
Tl9GSUxURVIpCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiAkZmlsZTokbGluZTogJHRleHQuCisK
K1dBUk5fRk9STUFUICAgICAgICAgICAgPSAiJGZpbGU6JGxpbmU6ICR0ZXh0IgorCisjIFRoZSBX
QVJOX0xPR0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBmaWxlIHRvIHdoaWNoIHdh
cm5pbmcgYW5kIGVycm9yCisjIG1lc3NhZ2VzIHNob3VsZCBiZSB3cml0dGVuLiBJZiBsZWZ0IGJs
YW5rIHRoZSBvdXRwdXQgaXMgd3JpdHRlbiB0byBzdGFuZGFyZAorIyBlcnJvciAoc3RkZXJyKS4K
KworV0FSTl9MT0dGSUxFICAgICAgICAgICA9ICVXQVJOSU5HX0xPR19QQVRIJQorCisjLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBpbnB1
dCBmaWxlcworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRoZSBJTlBVVCB0YWcgaXMgdXNlZCB0
byBzcGVjaWZ5IHRoZSBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdGhhdCBjb250YWluCisjIGRv
Y3VtZW50ZWQgc291cmNlIGZpbGVzLiBZb3UgbWF5IGVudGVyIGZpbGUgbmFtZXMgbGlrZSBteWZp
bGUuY3BwIG9yCisjIGRpcmVjdG9yaWVzIGxpa2UgL3Vzci9zcmMvbXlwcm9qZWN0LiBTZXBhcmF0
ZSB0aGUgZmlsZXMgb3IgZGlyZWN0b3JpZXMgd2l0aAorIyBzcGFjZXMuCisjIE5vdGU6IElmIHRo
aXMgdGFnIGlzIGVtcHR5IHRoZSBjdXJyZW50IGRpcmVjdG9yeSBpcyBzZWFyY2hlZC4KKworSU5Q
VVQgICAgICAgICAgICAgICAgICA9IC4uL2luY2x1ZGUgXAorICAgICAgICAgICAgICAgICAgICAg
ICAgIC4uL3NyYy9saWJfanNvbiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgLgorCisjIFRo
aXMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0
aGUgc291cmNlIGZpbGVzCisjIHRoYXQgZG94eWdlbiBwYXJzZXMuIEludGVybmFsbHkgZG94eWdl
biB1c2VzIHRoZSBVVEYtOCBlbmNvZGluZy4gRG94eWdlbiB1c2VzCisjIGxpYmljb252IChvciB0
aGUgaWNvbnYgYnVpbHQgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29kaW5nLiBTZWUgdGhlIGxp
Ymljb252CisjIGRvY3VtZW50YXRpb24gKHNlZTogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl
L2xpYmljb252KSBmb3IgdGhlIGxpc3Qgb2YKKyMgcG9zc2libGUgZW5jb2RpbmdzLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogVVRGLTguCisKK0lOUFVUX0VOQ09ESU5HICAgICAgICAgPSBVVEYt
OAorCisjIElmIHRoZSB2YWx1ZSBvZiB0aGUgSU5QVVQgdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVz
LCB5b3UgY2FuIHVzZSB0aGUKKyMgRklMRV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3Ig
bW9yZSB3aWxkY2FyZCBwYXR0ZXJucyAobGlrZSAqLmNwcCBhbmQKKyMgKi5oKSB0byBmaWx0ZXIg
b3V0IHRoZSBzb3VyY2UtZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzLiBJZiBsZWZ0IGJsYW5rIHRo
ZQorIyBmb2xsb3dpbmcgcGF0dGVybnMgYXJlIHRlc3RlZDoqLmMsICouY2MsICouY3h4LCAqLmNw
cCwgKi5jKyssICouamF2YSwgKi5paSwKKyMgKi5peHgsICouaXBwLCAqLmkrKywgKi5pbmwsICou
aWRsLCAqLmRkbCwgKi5vZGwsICouaCwgKi5oaCwgKi5oeHgsICouaHBwLAorIyAqLmgrKywgKi5j
cywgKi5kLCAqLnBocCwgKi5waHA0LCAqLnBocDUsICoucGh0bWwsICouaW5jLCAqLm0sICoubWFy
a2Rvd24sCisjICoubWQsICoubW0sICouZG94LCAqLnB5LCAqLmY5MCwgKi5mLCAqLmZvciwgKi50
Y2wsICoudmhkLCAqLnZoZGwsICoudWNmLAorIyAqLnFzZiwgKi5hcyBhbmQgKi5qcy4KKworRklM
RV9QQVRURVJOUyAgICAgICAgICA9ICouaCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgKi5j
cHAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICouaW5sIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAqLmRveAorCisjIFRoZSBSRUNVUlNJVkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
Znkgd2hldGhlciBvciBub3Qgc3ViZGlyZWN0b3JpZXMgc2hvdWxkCisjIGJlIHNlYXJjaGVkIGZv
ciBpbnB1dCBmaWxlcyBhcyB3ZWxsLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1JF
Q1VSU0lWRSAgICAgICAgICAgICAgPSBZRVMKKworIyBUaGUgRVhDTFVERSB0YWcgY2FuIGJlIHVz
ZWQgdG8gc3BlY2lmeSBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUKKyMg
ZXhjbHVkZWQgZnJvbSB0aGUgSU5QVVQgc291cmNlIGZpbGVzLiBUaGlzIHdheSB5b3UgY2FuIGVh
c2lseSBleGNsdWRlIGEKKyMgc3ViZGlyZWN0b3J5IGZyb20gYSBkaXJlY3RvcnkgdHJlZSB3aG9z
ZSByb290IGlzIHNwZWNpZmllZCB3aXRoIHRoZSBJTlBVVCB0YWcuCisjCisjIE5vdGUgdGhhdCBy
ZWxhdGl2ZSBwYXRocyBhcmUgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIGRv
eHlnZW4gaXMKKyMgcnVuLgorCitFWENMVURFICAgICAgICAgICAgICAgID0KKworIyBUaGUgRVhD
TFVERV9TWU1MSU5LUyB0YWcgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IHdoZXRoZXIgb3Igbm90IGZp
bGVzIG9yCisjIGRpcmVjdG9yaWVzIHRoYXQgYXJlIHN5bWJvbGljIGxpbmtzIChhIFVuaXggZmls
ZSBzeXN0ZW0gZmVhdHVyZSkgYXJlIGV4Y2x1ZGVkCisjIGZyb20gdGhlIGlucHV0LgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0VYQ0xVREVfU1lNTElOS1MgICAgICAgPSBOTworCisj
IElmIHRoZSB2YWx1ZSBvZiB0aGUgSU5QVVQgdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3Ug
Y2FuIHVzZSB0aGUKKyMgRVhDTFVERV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9y
ZSB3aWxkY2FyZCBwYXR0ZXJucyB0byBleGNsdWRlCisjIGNlcnRhaW4gZmlsZXMgZnJvbSB0aG9z
ZSBkaXJlY3Rvcmllcy4KKyMKKyMgTm90ZSB0aGF0IHRoZSB3aWxkY2FyZHMgYXJlIG1hdGNoZWQg
YWdhaW5zdCB0aGUgZmlsZSB3aXRoIGFic29sdXRlIHBhdGgsIHNvIHRvCisjIGV4Y2x1ZGUgYWxs
IHRlc3QgZGlyZWN0b3JpZXMgZm9yIGV4YW1wbGUgdXNlIHRoZSBwYXR0ZXJuICovdGVzdC8qCisK
K0VYQ0xVREVfUEFUVEVSTlMgICAgICAgPQorCisjIFRoZSBFWENMVURFX1NZTUJPTFMgdGFnIGNh
biBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgc3ltYm9sIG5hbWVzCisjIChuYW1lc3Bh
Y2VzLCBjbGFzc2VzLCBmdW5jdGlvbnMsIGV0Yy4pIHRoYXQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZy
b20gdGhlCisjIG91dHB1dC4gVGhlIHN5bWJvbCBuYW1lIGNhbiBiZSBhIGZ1bGx5IHF1YWxpZmll
ZCBuYW1lLCBhIHdvcmQsIG9yIGlmIHRoZQorIyB3aWxkY2FyZCAqIGlzIHVzZWQsIGEgc3Vic3Ry
aW5nLiBFeGFtcGxlczogQU5hbWVzcGFjZSwgQUNsYXNzLAorIyBBQ2xhc3M6OkFOYW1lc3BhY2Us
IEFOYW1lc3BhY2U6OipUZXN0CisjCisjIE5vdGUgdGhhdCB0aGUgd2lsZGNhcmRzIGFyZSBtYXRj
aGVkIGFnYWluc3QgdGhlIGZpbGUgd2l0aCBhYnNvbHV0ZSBwYXRoLCBzbyB0bworIyBleGNsdWRl
IGFsbCB0ZXN0IGRpcmVjdG9yaWVzIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKgorCitFWENMVURF
X1NZTUJPTFMgICAgICAgID0KKworIyBUaGUgRVhBTVBMRV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0
byBzcGVjaWZ5IG9uZSBvciBtb3JlIGZpbGVzIG9yIGRpcmVjdG9yaWVzCisjIHRoYXQgY29udGFp
biBleGFtcGxlIGNvZGUgZnJhZ21lbnRzIHRoYXQgYXJlIGluY2x1ZGVkIChzZWUgdGhlIFxpbmNs
dWRlCisjIGNvbW1hbmQpLgorCitFWEFNUExFX1BBVEggICAgICAgICAgID0gLi4KKworIyBJZiB0
aGUgdmFsdWUgb2YgdGhlIEVYQU1QTEVfUEFUSCB0YWcgY29udGFpbnMgZGlyZWN0b3JpZXMsIHlv
dSBjYW4gdXNlIHRoZQorIyBFWEFNUExFX1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBt
b3JlIHdpbGRjYXJkIHBhdHRlcm4gKGxpa2UgKi5jcHAgYW5kCisjICouaCkgdG8gZmlsdGVyIG91
dCB0aGUgc291cmNlLWZpbGVzIGluIHRoZSBkaXJlY3Rvcmllcy4gSWYgbGVmdCBibGFuayBhbGwK
KyMgZmlsZXMgYXJlIGluY2x1ZGVkLgorCitFWEFNUExFX1BBVFRFUk5TICAgICAgID0gKgorCisj
IElmIHRoZSBFWEFNUExFX1JFQ1VSU0lWRSB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHN1YmRpcmVj
dG9yaWVzIHdpbGwgYmUKKyMgc2VhcmNoZWQgZm9yIGlucHV0IGZpbGVzIHRvIGJlIHVzZWQgd2l0
aCB0aGUgXGluY2x1ZGUgb3IgXGRvbnRpbmNsdWRlIGNvbW1hbmRzCisjIGlycmVzcGVjdGl2ZSBv
ZiB0aGUgdmFsdWUgb2YgdGhlIFJFQ1VSU0lWRSB0YWcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KKworRVhBTVBMRV9SRUNVUlNJVkUgICAgICA9IE5PCisKKyMgVGhlIElNQUdFX1BBVEgg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZmlsZXMgb3IgZGlyZWN0b3Jp
ZXMKKyMgdGhhdCBjb250YWluIGltYWdlcyB0aGF0IGFyZSB0byBiZSBpbmNsdWRlZCBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiAoc2VlIHRoZQorIyBcaW1hZ2UgY29tbWFuZCkuCisKK0lNQUdFX1BBVEgg
ICAgICAgICAgICAgPQorCisjIFRoZSBJTlBVVF9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgYSBwcm9ncmFtIHRoYXQgZG94eWdlbiBzaG91bGQKKyMgaW52b2tlIHRvIGZpbHRlciBm
b3IgZWFjaCBpbnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwgaW52b2tlIHRoZSBmaWx0ZXIgcHJvZ3Jh
bQorIyBieSBleGVjdXRpbmcgKHZpYSBwb3BlbigpKSB0aGUgY29tbWFuZDoKKyMKKyMgPGZpbHRl
cj4gPGlucHV0LWZpbGU+CisjCisjIHdoZXJlIDxmaWx0ZXI+IGlzIHRoZSB2YWx1ZSBvZiB0aGUg
SU5QVVRfRklMVEVSIHRhZywgYW5kIDxpbnB1dC1maWxlPiBpcyB0aGUKKyMgbmFtZSBvZiBhbiBp
bnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwgdGhlbiB1c2UgdGhlIG91dHB1dCB0aGF0IHRoZSBmaWx0
ZXIKKyMgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRhcmQgb3V0cHV0LiBJZiBGSUxURVJfUEFUVEVS
TlMgaXMgc3BlY2lmaWVkLCB0aGlzIHRhZworIyB3aWxsIGJlIGlnbm9yZWQuCisjCisjIE5vdGUg
dGhhdCB0aGUgZmlsdGVyIG11c3Qgbm90IGFkZCBvciByZW1vdmUgbGluZXM7IGl0IGlzIGFwcGxp
ZWQgYmVmb3JlIHRoZQorIyBjb2RlIGlzIHNjYW5uZWQsIGJ1dCBub3Qgd2hlbiB0aGUgb3V0cHV0
IGNvZGUgaXMgZ2VuZXJhdGVkLiBJZiBsaW5lcyBhcmUgYWRkZWQKKyMgb3IgcmVtb3ZlZCwgdGhl
IGFuY2hvcnMgd2lsbCBub3QgYmUgcGxhY2VkIGNvcnJlY3RseS4KKworSU5QVVRfRklMVEVSICAg
ICAgICAgICA9CisKKyMgVGhlIEZJTFRFUl9QQVRURVJOUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBmaWx0ZXJzIG9uIGEgcGVyIGZpbGUgcGF0dGVybgorIyBiYXNpcy4gRG94eWdlbiB3aWxs
IGNvbXBhcmUgdGhlIGZpbGUgbmFtZSB3aXRoIGVhY2ggcGF0dGVybiBhbmQgYXBwbHkgdGhlCisj
IGZpbHRlciBpZiB0aGVyZSBpcyBhIG1hdGNoLiBUaGUgZmlsdGVycyBhcmUgYSBsaXN0IG9mIHRo
ZSBmb3JtOiBwYXR0ZXJuPWZpbHRlcgorIyAobGlrZSAqLmNwcD1teV9jcHBfZmlsdGVyKS4gU2Vl
IElOUFVUX0ZJTFRFUiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvbiBob3cKKyMgZmlsdGVycyBh
cmUgdXNlZC4gSWYgdGhlIEZJTFRFUl9QQVRURVJOUyB0YWcgaXMgZW1wdHkgb3IgaWYgbm9uZSBv
ZiB0aGUKKyMgcGF0dGVybnMgbWF0Y2ggdGhlIGZpbGUgbmFtZSwgSU5QVVRfRklMVEVSIGlzIGFw
cGxpZWQuCisKK0ZJTFRFUl9QQVRURVJOUyAgICAgICAgPQorCisjIElmIHRoZSBGSUxURVJfU09V
UkNFX0ZJTEVTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgaW5wdXQgZmlsdGVyIChpZiBzZXQgdXNp
bmcKKyMgSU5QVVRfRklMVEVSICkgd2lsbCBhbHNvIGJlIHVzZWQgdG8gZmlsdGVyIHRoZSBpbnB1
dCBmaWxlcyB0aGF0IGFyZSB1c2VkIGZvcgorIyBwcm9kdWNpbmcgdGhlIHNvdXJjZSBmaWxlcyB0
byBicm93c2UgKGkuZS4gd2hlbiBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTKS4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitGSUxURVJfU09VUkNFX0ZJTEVTICAgID0gTk8KKwor
IyBUaGUgRklMVEVSX1NPVVJDRV9QQVRURVJOUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBz
b3VyY2UgZmlsdGVycyBwZXIgZmlsZQorIyBwYXR0ZXJuLiBBIHBhdHRlcm4gd2lsbCBvdmVycmlk
ZSB0aGUgc2V0dGluZyBmb3IgRklMVEVSX1BBVFRFUk4gKGlmIGFueSkgYW5kCisjIGl0IGlzIGFs
c28gcG9zc2libGUgdG8gZGlzYWJsZSBzb3VyY2UgZmlsdGVyaW5nIGZvciBhIHNwZWNpZmljIHBh
dHRlcm4gdXNpbmcKKyMgKi5leHQ9IChzbyB3aXRob3V0IG5hbWluZyBhIGZpbHRlcikuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBGSUxURVJfU09VUkNFX0ZJTEVTIGlzIHNldCB0
byBZRVMuCisKK0ZJTFRFUl9TT1VSQ0VfUEFUVEVSTlMgPQorCisjIElmIHRoZSBVU0VfTURGSUxF
X0FTX01BSU5QQUdFIHRhZyByZWZlcnMgdG8gdGhlIG5hbWUgb2YgYSBtYXJrZG93biBmaWxlIHRo
YXQKKyMgaXMgcGFydCBvZiB0aGUgaW5wdXQsIGl0cyBjb250ZW50cyB3aWxsIGJlIHBsYWNlZCBv
biB0aGUgbWFpbiBwYWdlCisjIChpbmRleC5odG1sKS4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlv
dSBoYXZlIGEgcHJvamVjdCBvbiBmb3IgaW5zdGFuY2UgR2l0SHViCisjIGFuZCB3YW50IHRvIHJl
dXNlIHRoZSBpbnRyb2R1Y3Rpb24gcGFnZSBhbHNvIGZvciB0aGUgZG94eWdlbiBvdXRwdXQuCisK
K1VTRV9NREZJTEVfQVNfTUFJTlBBR0UgPQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZp
Z3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHNvdXJjZSBicm93c2luZworIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisjIElmIHRoZSBTT1VSQ0VfQlJPV1NFUiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVu
IGEgbGlzdCBvZiBzb3VyY2UgZmlsZXMgd2lsbCBiZQorIyBnZW5lcmF0ZWQuIERvY3VtZW50ZWQg
ZW50aXRpZXMgd2lsbCBiZSBjcm9zcy1yZWZlcmVuY2VkIHdpdGggdGhlc2Ugc291cmNlcy4KKyMK
KyMgTm90ZTogVG8gZ2V0IHJpZCBvZiBhbGwgc291cmNlIGNvZGUgaW4gdGhlIGdlbmVyYXRlZCBv
dXRwdXQsIG1ha2Ugc3VyZSB0aGF0CisjIGFsc28gVkVSQkFUSU1fSEVBREVSUyBpcyBzZXQgdG8g
Tk8uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworU09VUkNFX0JST1dTRVIgICAgICAg
ICA9IE5PCisKKyMgU2V0dGluZyB0aGUgSU5MSU5FX1NPVVJDRVMgdGFnIHRvIFlFUyB3aWxsIGlu
Y2x1ZGUgdGhlIGJvZHkgb2YgZnVuY3Rpb25zLAorIyBjbGFzc2VzIGFuZCBlbnVtcyBkaXJlY3Rs
eSBpbnRvIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisK
K0lOTElORV9TT1VSQ0VTICAgICAgICAgPSBOTworCisjIFNldHRpbmcgdGhlIFNUUklQX0NPREVf
Q09NTUVOVFMgdGFnIHRvIFlFUyB3aWxsIGluc3RydWN0IGRveHlnZW4gdG8gaGlkZSBhbnkKKyMg
c3BlY2lhbCBjb21tZW50IGJsb2NrcyBmcm9tIGdlbmVyYXRlZCBzb3VyY2UgY29kZSBmcmFnbWVu
dHMuIE5vcm1hbCBDLCBDKysgYW5kCisjIEZvcnRyYW4gY29tbWVudHMgd2lsbCBhbHdheXMgcmVt
YWluIHZpc2libGUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1NUUklQX0NPREVf
Q09NTUVOVFMgICAgPSBZRVMKKworIyBJZiB0aGUgUkVGRVJFTkNFRF9CWV9SRUxBVElPTiB0YWcg
aXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRvY3VtZW50ZWQKKyMgZnVuY3Rpb24gYWxsIGRv
Y3VtZW50ZWQgZnVuY3Rpb25zIHJlZmVyZW5jaW5nIGl0IHdpbGwgYmUgbGlzdGVkLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1JFRkVSRU5DRURfQllfUkVMQVRJT04gPSBOTworCisj
IElmIHRoZSBSRUZFUkVOQ0VTX1JFTEFUSU9OIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZm9yIGVh
Y2ggZG9jdW1lbnRlZCBmdW5jdGlvbgorIyBhbGwgZG9jdW1lbnRlZCBlbnRpdGllcyBjYWxsZWQv
dXNlZCBieSB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUgbGlzdGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisKK1JFRkVSRU5DRVNfUkVMQVRJT04gICAgPSBOTworCisjIElmIHRoZSBSRUZF
UkVOQ0VTX0xJTktfU09VUkNFIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBTT1VSQ0VfQlJPV1NFUiB0
YWcgaXMgc2V0CisjIHRvIFlFUywgdGhlbiB0aGUgaHlwZXJsaW5rcyBmcm9tIGZ1bmN0aW9ucyBp
biBSRUZFUkVOQ0VTX1JFTEFUSU9OIGFuZAorIyBSRUZFUkVOQ0VEX0JZX1JFTEFUSU9OIGxpc3Rz
IHdpbGwgbGluayB0byB0aGUgc291cmNlIGNvZGUuIE90aGVyd2lzZSB0aGV5IHdpbGwKKyMgbGlu
ayB0byB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKwor
UkVGRVJFTkNFU19MSU5LX1NPVVJDRSA9IFlFUworCisjIElmIFNPVVJDRV9UT09MVElQUyBpcyBl
bmFibGVkICh0aGUgZGVmYXVsdCkgdGhlbiBob3ZlcmluZyBhIGh5cGVybGluayBpbiB0aGUKKyMg
c291cmNlIGNvZGUgd2lsbCBzaG93IGEgdG9vbHRpcCB3aXRoIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24gc3VjaCBhcyBwcm90b3R5cGUsCisjIGJyaWVmIGRlc2NyaXB0aW9uIGFuZCBsaW5rcyB0byB0
aGUgZGVmaW5pdGlvbiBhbmQgZG9jdW1lbnRhdGlvbi4gU2luY2UgdGhpcworIyB3aWxsIG1ha2Ug
dGhlIEhUTUwgZmlsZSBsYXJnZXIgYW5kIGxvYWRpbmcgb2YgbGFyZ2UgZmlsZXMgYSBiaXQgc2xv
d2VyLCB5b3UKKyMgY2FuIG9wdCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNPVVJD
RV9CUk9XU0VSIGlzIHNldCB0byBZRVMuCisKK1NPVVJDRV9UT09MVElQUyAgICAgICAgPSBZRVMK
KworIyBJZiB0aGUgVVNFX0hUQUdTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIHJlZmVyZW5j
ZXMgdG8gc291cmNlIGNvZGUgd2lsbAorIyBwb2ludCB0byB0aGUgSFRNTCBnZW5lcmF0ZWQgYnkg
dGhlIGh0YWdzKDEpIHRvb2wgaW5zdGVhZCBvZiBkb3h5Z2VuIGJ1aWx0LWluCisjIHNvdXJjZSBi
cm93c2VyLiBUaGUgaHRhZ3MgdG9vbCBpcyBwYXJ0IG9mIEdOVSdzIGdsb2JhbCBzb3VyY2UgdGFn
Z2luZyBzeXN0ZW0KKyMgKHNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ2xvYmFsL2ds
b2JhbC5odG1sKS4gWW91IHdpbGwgbmVlZCB2ZXJzaW9uCisjIDQuOC42IG9yIGhpZ2hlci4KKyMK
KyMgVG8gdXNlIGl0IGRvIHRoZSBmb2xsb3dpbmc6CisjIC0gSW5zdGFsbCB0aGUgbGF0ZXN0IHZl
cnNpb24gb2YgZ2xvYmFsCisjIC0gRW5hYmxlIFNPVVJDRV9CUk9XU0VSIGFuZCBVU0VfSFRBR1Mg
aW4gdGhlIGNvbmZpZyBmaWxlCisjIC0gTWFrZSBzdXJlIHRoZSBJTlBVVCBwb2ludHMgdG8gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlCisjIC0gUnVuIGRveHlnZW4gYXMgbm9ybWFsCisjCisj
IERveHlnZW4gd2lsbCBpbnZva2UgaHRhZ3MgKGFuZCB0aGF0IHdpbGwgaW4gdHVybiBpbnZva2Ug
Z3RhZ3MpLCBzbyB0aGVzZQorIyB0b29scyBtdXN0IGJlIGF2YWlsYWJsZSBmcm9tIHRoZSBjb21t
YW5kIGxpbmUgKGkuZS4gaW4gdGhlIHNlYXJjaCBwYXRoKS4KKyMKKyMgVGhlIHJlc3VsdDogaW5z
dGVhZCBvZiB0aGUgc291cmNlIGJyb3dzZXIgZ2VuZXJhdGVkIGJ5IGRveHlnZW4sIHRoZSBsaW5r
cyB0bworIyBzb3VyY2UgY29kZSB3aWxsIG5vdyBwb2ludCB0byB0aGUgb3V0cHV0IG9mIGh0YWdz
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTLgorCitVU0VfSFRBR1MgICAgICAg
ICAgICAgID0gTk8KKworIyBJZiB0aGUgVkVSQkFUSU1fSEVBREVSUyB0YWcgaXMgc2V0IHRoZSBZ
RVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQorIyB2ZXJiYXRpbSBjb3B5IG9mIHRoZSBo
ZWFkZXIgZmlsZSBmb3IgZWFjaCBjbGFzcyBmb3Igd2hpY2ggYW4gaW5jbHVkZSBpcworIyBzcGVj
aWZpZWQuIFNldCB0byBOTyB0byBkaXNhYmxlIHRoaXMuCisjIFNlZSBhbHNvOiBTZWN0aW9uIFxj
bGFzcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworVkVSQkFUSU1fSEVBREVSUyAg
ICAgICA9IE5PCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25z
IHJlbGF0ZWQgdG8gdGhlIGFscGhhYmV0aWNhbCBjbGFzcyBpbmRleAorIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisjIElmIHRoZSBBTFBIQUJFVElDQUxfSU5ERVggdGFnIGlzIHNldCB0byBZRVMsIGFu
IGFscGhhYmV0aWNhbCBpbmRleCBvZiBhbGwKKyMgY29tcG91bmRzIHdpbGwgYmUgZ2VuZXJhdGVk
LiBFbmFibGUgdGhpcyBpZiB0aGUgcHJvamVjdCBjb250YWlucyBhIGxvdCBvZgorIyBjbGFzc2Vz
LCBzdHJ1Y3RzLCB1bmlvbnMgb3IgaW50ZXJmYWNlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IFlFUy4KKworQUxQSEFCRVRJQ0FMX0lOREVYICAgICA9IFlFUworVE9DX0lOQ0xVREVfSEVBRElO
R1MgPSAyCisKKyMgVGhlIENPTFNfSU5fQUxQSEFfSU5ERVggdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluCisjIHdoaWNoIHRoZSBhbHBoYWJldGljYWwg
aW5kZXggbGlzdCB3aWxsIGJlIHNwbGl0LgorIyBNaW5pbXVtIHZhbHVlOiAxLCBtYXhpbXVtIHZh
bHVlOiAyMCwgZGVmYXVsdCB2YWx1ZTogNS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEFMUEhBQkVUSUNBTF9JTkRFWCBpcyBzZXQgdG8gWUVTLgorCitDT0xTX0lOX0FMUEhBX0lO
REVYICAgID0gNQorCisjIEluIGNhc2UgYWxsIGNsYXNzZXMgaW4gYSBwcm9qZWN0IHN0YXJ0IHdp
dGggYSBjb21tb24gcHJlZml4LCBhbGwgY2xhc3NlcyB3aWxsCisjIGJlIHB1dCB1bmRlciB0aGUg
c2FtZSBoZWFkZXIgaW4gdGhlIGFscGhhYmV0aWNhbCBpbmRleC4gVGhlIElHTk9SRV9QUkVGSVgg
dGFnCisjIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcmVmaXggKG9yIGEgbGlzdCBvZiBwcmVm
aXhlcykgdGhhdCBzaG91bGQgYmUgaWdub3JlZAorIyB3aGlsZSBnZW5lcmF0aW5nIHRoZSBpbmRl
eCBoZWFkZXJzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgQUxQSEFCRVRJQ0FM
X0lOREVYIGlzIHNldCB0byBZRVMuCisKK0lHTk9SRV9QUkVGSVggICAgICAgICAgPQorCisjLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBI
VE1MIG91dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBHRU5FUkFURV9IVE1M
IHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBIVE1MIG91dHB1dAorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitHRU5FUkFURV9IVE1MICAgICAgICAgID0gWUVT
CisKKyMgVGhlIEhUTUxfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIEhU
TUwgZG9jcyB3aWxsIGJlIHB1dC4gSWYgYQorIyByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhl
IHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YKKyMgaXQu
CisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogaHRtbC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9PVVRQVVQg
ICAgICAgICAgICA9ICVIVE1MX09VVFBVVCUKKworIyBUaGUgSFRNTF9GSUxFX0VYVEVOU0lPTiB0
YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZSBleHRlbnNpb24gZm9yIGVhY2gKKyMg
Z2VuZXJhdGVkIEhUTUwgcGFnZSAoZm9yIGV4YW1wbGU6IC5odG0sIC5waHAsIC5hc3ApLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogLmh0bWwuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfRklMRV9FWFRFTlNJT04g
ICAgPSAuaHRtbAorCisjIFRoZSBIVE1MX0hFQURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBhIHVzZXItZGVmaW5lZCBIVE1MIGhlYWRlciBmaWxlIGZvcgorIyBlYWNoIGdlbmVyYXRlZCBI
VE1MIHBhZ2UuIElmIHRoZSB0YWcgaXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUg
YQorIyBzdGFuZGFyZCBoZWFkZXIuCisjCisjIFRvIGdldCB2YWxpZCBIVE1MIHRoZSBoZWFkZXIg
ZmlsZSB0aGF0IGluY2x1ZGVzIGFueSBzY3JpcHRzIGFuZCBzdHlsZSBzaGVldHMKKyMgdGhhdCBk
b3h5Z2VuIG5lZWRzLCB3aGljaCBpcyBkZXBlbmRlbnQgb24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0
aW9ucyB1c2VkIChlLmcuCisjIHRoZSBzZXR0aW5nIEdFTkVSQVRFX1RSRUVWSUVXKS4gSXQgaXMg
aGlnaGx5IHJlY29tbWVuZGVkIHRvIHN0YXJ0IHdpdGggYQorIyBkZWZhdWx0IGhlYWRlciB1c2lu
ZworIyBkb3h5Z2VuIC13IGh0bWwgbmV3X2hlYWRlci5odG1sIG5ld19mb290ZXIuaHRtbCBuZXdf
c3R5bGVzaGVldC5jc3MKKyMgWW91ckNvbmZpZ0ZpbGUKKyMgYW5kIHRoZW4gbW9kaWZ5IHRoZSBm
aWxlIG5ld19oZWFkZXIuaHRtbC4gU2VlIGFsc28gc2VjdGlvbiAiRG94eWdlbiB1c2FnZSIKKyMg
Zm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSB0aGUgZGVmYXVsdCBoZWFkZXIgdGhh
dCBkb3h5Z2VuIG5vcm1hbGx5CisjIHVzZXMuCisjIE5vdGU6IFRoZSBoZWFkZXIgaXMgc3ViamVj
dCB0byBjaGFuZ2Ugc28geW91IHR5cGljYWxseSBoYXZlIHRvIHJlZ2VuZXJhdGUgdGhlCisjIGRl
ZmF1bHQgaGVhZGVyIHdoZW4gdXBncmFkaW5nIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBkb3h5Z2Vu
LiBGb3IgYSBkZXNjcmlwdGlvbgorIyBvZiB0aGUgcG9zc2libGUgbWFya2VycyBhbmQgYmxvY2sg
bmFtZXMgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0hFQURFUiAgICAgICAg
ICAgID0gaGVhZGVyLmh0bWwKKworIyBUaGUgSFRNTF9GT09URVIgdGFnIGNhbiBiZSB1c2VkIHRv
IHNwZWNpZnkgYSB1c2VyLWRlZmluZWQgSFRNTCBmb290ZXIgZm9yIGVhY2gKKyMgZ2VuZXJhdGVk
IEhUTUwgcGFnZS4gSWYgdGhlIHRhZyBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0
ZSBhIHN0YW5kYXJkCisjIGZvb3Rlci4gU2VlIEhUTUxfSEVBREVSIGZvciBtb3JlIGluZm9ybWF0
aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSBhIGRlZmF1bHQKKyMgZm9vdGVyIGFuZCB3aGF0IHNwZWNp
YWwgY29tbWFuZHMgY2FuIGJlIHVzZWQgaW5zaWRlIHRoZSBmb290ZXIuIFNlZSBhbHNvCisjIHNl
Y3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUg
dGhlIGRlZmF1bHQgZm9vdGVyCisjIHRoYXQgZG94eWdlbiBub3JtYWxseSB1c2VzLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgor
CitIVE1MX0ZPT1RFUiAgICAgICAgICAgID0gZm9vdGVyLmh0bWwKKworIyBUaGUgSFRNTF9TVFlM
RVNIRUVUIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIGNhc2NhZGlu
ZyBzdHlsZQorIyBzaGVldCB0aGF0IGlzIHVzZWQgYnkgZWFjaCBIVE1MIHBhZ2UuIEl0IGNhbiBi
ZSB1c2VkIHRvIGZpbmUtdHVuZSB0aGUgbG9vayBvZgorIyB0aGUgSFRNTCBvdXRwdXQuIElmIGxl
ZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZGVmYXVsdCBzdHlsZSBzaGVldC4KKyMg
U2VlIGFsc28gc2VjdGlvbiAiRG94eWdlbiB1c2FnZSIgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0
byBnZW5lcmF0ZSB0aGUgc3R5bGUKKyMgc2hlZXQgdGhhdCBkb3h5Z2VuIG5vcm1hbGx5IHVzZXMu
CisjIE5vdGU6IEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBIVE1MX0VYVFJBX1NUWUxFU0hFRVQg
aW5zdGVhZCBvZiB0aGlzIHRhZywgYXMKKyMgaXQgaXMgbW9yZSByb2J1c3QgYW5kIHRoaXMgdGFn
IChIVE1MX1NUWUxFU0hFRVQpIHdpbGwgaW4gdGhlIGZ1dHVyZSBiZWNvbWUKKyMgb2Jzb2xldGUu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0
byBZRVMuCisKK0hUTUxfU1RZTEVTSEVFVCAgICAgICAgPQorCisjIFRoZSBIVE1MX0VYVFJBX1NU
WUxFU0hFRVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gYWRkaXRpb25hbCB1c2VyLQor
IyBkZWZpbmVkIGNhc2NhZGluZyBzdHlsZSBzaGVldCB0aGF0IGlzIGluY2x1ZGVkIGFmdGVyIHRo
ZSBzdGFuZGFyZCBzdHlsZSBzaGVldHMKKyMgY3JlYXRlZCBieSBkb3h5Z2VuLiBVc2luZyB0aGlz
IG9wdGlvbiBvbmUgY2FuIG92ZXJydWxlIGNlcnRhaW4gc3R5bGUgYXNwZWN0cy4KKyMgVGhpcyBp
cyBwcmVmZXJyZWQgb3ZlciB1c2luZyBIVE1MX1NUWUxFU0hFRVQgc2luY2UgaXQgZG9lcyBub3Qg
cmVwbGFjZSB0aGUKKyMgc3RhbmRhcmQgc3R5bGUgc2hlZXQgYW5kIGlzIHRoZXJlZm9yZSBtb3Jl
IHJvYnVzdCBhZ2FpbnN0IGZ1dHVyZSB1cGRhdGVzLgorIyBEb3h5Z2VuIHdpbGwgY29weSB0aGUg
c3R5bGUgc2hlZXQgZmlsZSB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4gRm9yIGFuIGV4YW1wbGUK
KyMgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0VYVFJBX1NUWUxFU0hFRVQg
ID0KKworIyBUaGUgSFRNTF9FWFRSQV9GSUxFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBv
bmUgb3IgbW9yZSBleHRyYSBpbWFnZXMgb3IKKyMgb3RoZXIgc291cmNlIGZpbGVzIHdoaWNoIHNo
b3VsZCBiZSBjb3BpZWQgdG8gdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeS4gTm90ZQorIyB0aGF0
IHRoZXNlIGZpbGVzIHdpbGwgYmUgY29waWVkIHRvIHRoZSBiYXNlIEhUTUwgb3V0cHV0IGRpcmVj
dG9yeS4gVXNlIHRoZQorIyAkcmVscGF0aF4gbWFya2VyIGluIHRoZSBIVE1MX0hFQURFUiBhbmQv
b3IgSFRNTF9GT09URVIgZmlsZXMgdG8gbG9hZCB0aGVzZQorIyBmaWxlcy4gSW4gdGhlIEhUTUxf
U1RZTEVTSEVFVCBmaWxlLCB1c2UgdGhlIGZpbGUgbmFtZSBvbmx5LiBBbHNvIG5vdGUgdGhhdCB0
aGUKKyMgZmlsZXMgd2lsbCBiZSBjb3BpZWQgYXMtaXM7IHRoZXJlIGFyZSBubyBjb21tYW5kcyBv
ciBtYXJrZXJzIGF2YWlsYWJsZS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9FWFRSQV9GSUxFUyAgICAgICA9CisK
KyMgVGhlIEhUTUxfQ09MT1JTVFlMRV9IVUUgdGFnIGNvbnRyb2xzIHRoZSBjb2xvciBvZiB0aGUg
SFRNTCBvdXRwdXQuIERveHlnZW4KKyMgd2lsbCBhZGp1c3QgdGhlIGNvbG9ycyBpbiB0aGUgc3R5
bGVzaGVldCBhbmQgYmFja2dyb3VuZCBpbWFnZXMgYWNjb3JkaW5nIHRvCisjIHRoaXMgY29sb3Iu
IEh1ZSBpcyBzcGVjaWZpZWQgYXMgYW4gYW5nbGUgb24gYSBjb2xvcndoZWVsLCBzZWUKKyMgaHR0
cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IdWUgZm9yIG1vcmUgaW5mb3JtYXRpb24uIEZvciBp
bnN0YW5jZSB0aGUgdmFsdWUKKyMgMCByZXByZXNlbnRzIHJlZCwgNjAgaXMgeWVsbG93LCAxMjAg
aXMgZ3JlZW4sIDE4MCBpcyBjeWFuLCAyNDAgaXMgYmx1ZSwgMzAwCisjIHB1cnBsZSwgYW5kIDM2
MCBpcyByZWQgYWdhaW4uCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDM1OSwg
ZGVmYXVsdCB2YWx1ZTogMjIwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0NPTE9SU1RZTEVfSFVFICAgID0gMjIw
CisKKyMgVGhlIEhUTUxfQ09MT1JTVFlMRV9TQVQgdGFnIGNvbnRyb2xzIHRoZSBwdXJpdHkgKG9y
IHNhdHVyYXRpb24pIG9mIHRoZSBjb2xvcnMKKyMgaW4gdGhlIEhUTUwgb3V0cHV0LiBGb3IgYSB2
YWx1ZSBvZiAwIHRoZSBvdXRwdXQgd2lsbCB1c2UgZ3JheXNjYWxlcyBvbmx5LiBBCisjIHZhbHVl
IG9mIDI1NSB3aWxsIHByb2R1Y2UgdGhlIG1vc3Qgdml2aWQgY29sb3JzLgorIyBNaW5pbXVtIHZh
bHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAyNTUsIGRlZmF1bHQgdmFsdWU6IDEwMC4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKwor
SFRNTF9DT0xPUlNUWUxFX1NBVCAgICA9IDEwMAorCisjIFRoZSBIVE1MX0NPTE9SU1RZTEVfR0FN
TUEgdGFnIGNvbnRyb2xzIHRoZSBnYW1tYSBjb3JyZWN0aW9uIGFwcGxpZWQgdG8gdGhlCisjIGx1
bWluYW5jZSBjb21wb25lbnQgb2YgdGhlIGNvbG9ycyBpbiB0aGUgSFRNTCBvdXRwdXQuIFZhbHVl
cyBiZWxvdyAxMDAKKyMgZ3JhZHVhbGx5IG1ha2UgdGhlIG91dHB1dCBsaWdodGVyLCB3aGVyZWFz
IHZhbHVlcyBhYm92ZSAxMDAgbWFrZSB0aGUgb3V0cHV0CisjIGRhcmtlci4gVGhlIHZhbHVlIGRp
dmlkZWQgYnkgMTAwIGlzIHRoZSBhY3R1YWwgZ2FtbWEgYXBwbGllZCwgc28gODAgcmVwcmVzZW50
cworIyBhIGdhbW1hIG9mIDAuOCwgVGhlIHZhbHVlIDIyMCByZXByZXNlbnRzIGEgZ2FtbWEgb2Yg
Mi4yLCBhbmQgMTAwIGRvZXMgbm90CisjIGNoYW5nZSB0aGUgZ2FtbWEuCisjIE1pbmltdW0gdmFs
dWU6IDQwLCBtYXhpbXVtIHZhbHVlOiAyNDAsIGRlZmF1bHQgdmFsdWU6IDgwLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitI
VE1MX0NPTE9SU1RZTEVfR0FNTUEgID0gODAKKworIyBJZiB0aGUgSFRNTF9USU1FU1RBTVAgdGFn
IGlzIHNldCB0byBZRVMgdGhlbiB0aGUgZm9vdGVyIG9mIGVhY2ggZ2VuZXJhdGVkIEhUTUwKKyMg
cGFnZSB3aWxsIGNvbnRhaW4gdGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgcGFnZSB3YXMgZ2Vu
ZXJhdGVkLiBTZXR0aW5nIHRoaXMKKyMgdG8gTk8gY2FuIGhlbHAgd2hlbiBjb21wYXJpbmcgdGhl
IG91dHB1dCBvZiBtdWx0aXBsZSBydW5zLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8g
WUVTLgorCitIVE1MX1RJTUVTVEFNUCAgICAgICAgID0gTk8KKworIyBJZiB0aGUgSFRNTF9EWU5B
TUlDX1NFQ1RJT05TIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGdlbmVyYXRlZCBIVE1MCisj
IGRvY3VtZW50YXRpb24gd2lsbCBjb250YWluIHNlY3Rpb25zIHRoYXQgY2FuIGJlIGhpZGRlbiBh
bmQgc2hvd24gYWZ0ZXIgdGhlCisjIHBhZ2UgaGFzIGxvYWRlZC4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRN
TCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0RZTkFNSUNfU0VDVElPTlMgID0gWUVTCisKKyMgV2l0
aCBIVE1MX0lOREVYX05VTV9FTlRSSUVTIG9uZSBjYW4gY29udHJvbCB0aGUgcHJlZmVycmVkIG51
bWJlciBvZiBlbnRyaWVzCisjIHNob3duIGluIHRoZSB2YXJpb3VzIHRyZWUgc3RydWN0dXJlZCBp
bmRpY2VzIGluaXRpYWxseTsgdGhlIHVzZXIgY2FuIGV4cGFuZAorIyBhbmQgY29sbGFwc2UgZW50
cmllcyBkeW5hbWljYWxseSBsYXRlciBvbi4gRG94eWdlbiB3aWxsIGV4cGFuZCB0aGUgdHJlZSB0
bworIyBzdWNoIGEgbGV2ZWwgdGhhdCBhdCBtb3N0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGVu
dHJpZXMgYXJlIHZpc2libGUgKHVubGVzcworIyBhIGZ1bGx5IGNvbGxhcHNlZCB0cmVlIGFscmVh
ZHkgZXhjZWVkcyB0aGlzIGFtb3VudCkuIFNvIHNldHRpbmcgdGhlIG51bWJlciBvZgorIyBlbnRy
aWVzIDEgd2lsbCBwcm9kdWNlIGEgZnVsbCBjb2xsYXBzZWQgdHJlZSBieSBkZWZhdWx0LiAwIGlz
IGEgc3BlY2lhbCB2YWx1ZQorIyByZXByZXNlbnRpbmcgYW4gaW5maW5pdGUgbnVtYmVyIG9mIGVu
dHJpZXMgYW5kIHdpbGwgcmVzdWx0IGluIGEgZnVsbCBleHBhbmRlZAorIyB0cmVlIGJ5IGRlZmF1
bHQuCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDk5OTksIGRlZmF1bHQgdmFs
dWU6IDEwMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwg
aXMgc2V0IHRvIFlFUy4KKworSFRNTF9JTkRFWF9OVU1fRU5UUklFUyA9IDEwMAorCisjIElmIHRo
ZSBHRU5FUkFURV9ET0NTRVQgdGFnIGlzIHNldCB0byBZRVMsIGFkZGl0aW9uYWwgaW5kZXggZmls
ZXMgd2lsbCBiZQorIyBnZW5lcmF0ZWQgdGhhdCBjYW4gYmUgdXNlZCBhcyBpbnB1dCBmb3IgQXBw
bGUncyBYY29kZSAzIGludGVncmF0ZWQgZGV2ZWxvcG1lbnQKKyMgZW52aXJvbm1lbnQgKHNlZTog
aHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vdG9vbHMveGNvZGUvKSwgaW50cm9kdWNlZCB3aXRo
CisjIE9TWCAxMC41IChMZW9wYXJkKS4gVG8gY3JlYXRlIGEgZG9jdW1lbnRhdGlvbiBzZXQsIGRv
eHlnZW4gd2lsbCBnZW5lcmF0ZSBhCisjIE1ha2VmaWxlIGluIHRoZSBIVE1MIG91dHB1dCBkaXJl
Y3RvcnkuIFJ1bm5pbmcgbWFrZSB3aWxsIHByb2R1Y2UgdGhlIGRvY3NldCBpbgorIyB0aGF0IGRp
cmVjdG9yeSBhbmQgcnVubmluZyBtYWtlIGluc3RhbGwgd2lsbCBpbnN0YWxsIHRoZSBkb2NzZXQg
aW4KKyMgfi9MaWJyYXJ5L0RldmVsb3Blci9TaGFyZWQvRG9jdW1lbnRhdGlvbi9Eb2NTZXRzIHNv
IHRoYXQgWGNvZGUgd2lsbCBmaW5kIGl0IGF0CisjIHN0YXJ0dXAuIFNlZSBodHRwOi8vZGV2ZWxv
cGVyLmFwcGxlLmNvbS90b29scy9jcmVhdGluZ2RvY3NldHN3aXRoZG94eWdlbi5odG1sCisjIGZv
ciBtb3JlIGluZm9ybWF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisK
K0dFTkVSQVRFX0RPQ1NFVCAgICAgICAgPSBOTworCisjIFRoaXMgdGFnIGRldGVybWluZXMgdGhl
IG5hbWUgb2YgdGhlIGRvY3NldCBmZWVkLiBBIGRvY3VtZW50YXRpb24gZmVlZCBwcm92aWRlcwor
IyBhbiB1bWJyZWxsYSB1bmRlciB3aGljaCBtdWx0aXBsZSBkb2N1bWVudGF0aW9uIHNldHMgZnJv
bSBhIHNpbmdsZSBwcm92aWRlcgorIyAoc3VjaCBhcyBhIGNvbXBhbnkgb3IgcHJvZHVjdCBzdWl0
ZSkgY2FuIGJlIGdyb3VwZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBEb3h5Z2VuIGdlbmVy
YXRlZCBkb2NzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9D
U0VUIGlzIHNldCB0byBZRVMuCisKK0RPQ1NFVF9GRUVETkFNRSAgICAgICAgPSAiRG94eWdlbiBn
ZW5lcmF0ZWQgZG9jcyIKKworIyBUaGlzIHRhZyBzcGVjaWZpZXMgYSBzdHJpbmcgdGhhdCBzaG91
bGQgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRvY3VtZW50YXRpb24KKyMgc2V0IGJ1bmRsZS4gVGhp
cyBzaG91bGQgYmUgYSByZXZlcnNlIGRvbWFpbi1uYW1lIHN0eWxlIHN0cmluZywgZS5nLgorIyBj
b20ubXljb21wYW55Lk15RG9jU2V0LiBEb3h5Z2VuIHdpbGwgYXBwZW5kIC5kb2NzZXQgdG8gdGhl
IG5hbWUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5Qcm9qZWN0LgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DU0VUIGlzIHNldCB0byBZ
RVMuCisKK0RPQ1NFVF9CVU5ETEVfSUQgICAgICAgPSBvcmcuZG94eWdlbi5Qcm9qZWN0CisKKyMg
VGhlIERPQ1NFVF9QVUJMSVNIRVJfSUQgdGFnIHNwZWNpZmllcyBhIHN0cmluZyB0aGF0IHNob3Vs
ZCB1bmlxdWVseSBpZGVudGlmeQorIyB0aGUgZG9jdW1lbnRhdGlvbiBwdWJsaXNoZXIuIFRoaXMg
c2hvdWxkIGJlIGEgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZQorIyBzdHJpbmcsIGUuZy4gY29t
Lm15Y29tcGFueS5NeURvY1NldC5kb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogb3JnLmRveHlnZW4uUHVibGlzaGVyLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfRE9DU0VUIGlzIHNldCB0byBZRVMuCisKK0RPQ1NFVF9QVUJMSVNIRVJfSUQg
ICAgPSBvcmcuZG94eWdlbi5QdWJsaXNoZXIKKworIyBUaGUgRE9DU0VUX1BVQkxJU0hFUl9OQU1F
IHRhZyBpZGVudGlmaWVzIHRoZSBkb2N1bWVudGF0aW9uIHB1Ymxpc2hlci4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFB1Ymxpc2hlci4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgorCitET0NTRVRfUFVCTElTSEVSX05BTUUg
ID0gUHVibGlzaGVyCisKKyMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8g
WUVTIHRoZW4gZG94eWdlbiBnZW5lcmF0ZXMgdGhyZWUKKyMgYWRkaXRpb25hbCBIVE1MIGluZGV4
IGZpbGVzOiBpbmRleC5oaHAsIGluZGV4LmhoYywgYW5kIGluZGV4Lmhoay4gVGhlCisjIGluZGV4
LmhocCBpcyBhIHByb2plY3QgZmlsZSB0aGF0IGNhbiBiZSByZWFkIGJ5IE1pY3Jvc29mdCdzIEhU
TUwgSGVscCBXb3Jrc2hvcAorIyAoc2VlOiBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vZW4tdXMv
ZG93bmxvYWQvZGV0YWlscy5hc3B4P2lkPTIxMTM4KSBvbgorIyBXaW5kb3dzLgorIworIyBUaGUg
SFRNTCBIZWxwIFdvcmtzaG9wIGNvbnRhaW5zIGEgY29tcGlsZXIgdGhhdCBjYW4gY29udmVydCBh
bGwgSFRNTCBvdXRwdXQKKyMgZ2VuZXJhdGVkIGJ5IGRveHlnZW4gaW50byBhIHNpbmdsZSBjb21w
aWxlZCBIVE1MIGZpbGUgKC5jaG0pLiBDb21waWxlZCBIVE1MCisjIGZpbGVzIGFyZSBub3cgdXNl
ZCBhcyB0aGUgV2luZG93cyA5OCBoZWxwIGZvcm1hdCwgYW5kIHdpbGwgcmVwbGFjZSB0aGUgb2xk
CisjIFdpbmRvd3MgaGVscCBmb3JtYXQgKC5obHApIG9uIGFsbCBXaW5kb3dzIHBsYXRmb3JtcyBp
biB0aGUgZnV0dXJlLiBDb21wcmVzc2VkCisjIEhUTUwgZmlsZXMgYWxzbyBjb250YWluIGFuIGlu
ZGV4LCBhIHRhYmxlIG9mIGNvbnRlbnRzLCBhbmQgeW91IGNhbiBzZWFyY2ggZm9yCisjIHdvcmRz
IGluIHRoZSBkb2N1bWVudGF0aW9uLiBUaGUgSFRNTCB3b3Jrc2hvcCBhbHNvIGNvbnRhaW5zIGEg
dmlld2VyIGZvcgorIyBjb21wcmVzc2VkIEhUTUwgZmlsZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwg
aXMgc2V0IHRvIFlFUy4KKworR0VORVJBVEVfSFRNTEhFTFAgICAgICA9ICVIVE1MX0hFTFAlCisK
KyMgVGhlIENITV9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBmaWxlIG5hbWUg
b2YgdGhlIHJlc3VsdGluZyAuY2htCisjIGZpbGUuIFlvdSBjYW4gYWRkIGEgcGF0aCBpbiBmcm9u
dCBvZiB0aGUgZmlsZSBpZiB0aGUgcmVzdWx0IHNob3VsZCBub3QgYmUKKyMgd3JpdHRlbiB0byB0
aGUgaHRtbCBvdXRwdXQgZGlyZWN0b3J5LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KKworQ0hNX0ZJTEUgICAgICAgICAg
ICAgICA9IGpzb25jcHAtJUpTT05DUFBfVkVSU0lPTiUuY2htCisKKyMgVGhlIEhIQ19MT0NBVElP
TiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gKGFic29sdXRlIHBhdGgK
KyMgaW5jbHVkaW5nIGZpbGUgbmFtZSkgb2YgdGhlIEhUTUwgaGVscCBjb21waWxlciAoIGhoYy5l
eGUpLiBJZiBub24tZW1wdHkKKyMgZG94eWdlbiB3aWxsIHRyeSB0byBydW4gdGhlIEhUTUwgaGVs
cCBjb21waWxlciBvbiB0aGUgZ2VuZXJhdGVkIGluZGV4LmhocC4KKyMgVGhlIGZpbGUgaGFzIHRv
IGJlIHNwZWNpZmllZCB3aXRoIGZ1bGwgcGF0aC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCisKK0hIQ19MT0NBVElPTiAg
ICAgICAgICAgPSAiYzpcUHJvZ3JhbSBGaWxlc1xIVE1MIEhlbHAgV29ya3Nob3BcaGhjLmV4ZSIK
KworIyBUaGUgR0VORVJBVEVfQ0hJIGZsYWcgY29udHJvbHMgaWYgYSBzZXBhcmF0ZSAuY2hpIGlu
ZGV4IGZpbGUgaXMgZ2VuZXJhdGVkICgKKyMgWUVTKSBvciB0aGF0IGl0IHNob3VsZCBiZSBpbmNs
dWRlZCBpbiB0aGUgbWFzdGVyIC5jaG0gZmlsZSAoIE5PKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhF
TFAgaXMgc2V0IHRvIFlFUy4KKworR0VORVJBVEVfQ0hJICAgICAgICAgICA9IFlFUworCisjIFRo
ZSBDSE1fSU5ERVhfRU5DT0RJTkcgaXMgdXNlZCB0byBlbmNvZGUgSHRtbEhlbHAgaW5kZXggKCBo
aGspLCBjb250ZW50ICggaGhjKQorIyBhbmQgcHJvamVjdCBmaWxlIGNvbnRlbnQuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVT
LgorCitDSE1fSU5ERVhfRU5DT0RJTkcgICAgID0KKworIyBUaGUgQklOQVJZX1RPQyBmbGFnIGNv
bnRyb2xzIHdoZXRoZXIgYSBiaW5hcnkgdGFibGUgb2YgY29udGVudHMgaXMgZ2VuZXJhdGVkICgK
KyMgWUVTKSBvciBhIG5vcm1hbCB0YWJsZSBvZiBjb250ZW50cyAoIE5PKSBpbiB0aGUgLmNobSBm
aWxlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgorCitCSU5BUllfVE9D
ICAgICAgICAgICAgID0gWUVTCisKKyMgVGhlIFRPQ19FWFBBTkQgZmxhZyBjYW4gYmUgc2V0IHRv
IFlFUyB0byBhZGQgZXh0cmEgaXRlbXMgZm9yIGdyb3VwIG1lbWJlcnMgdG8KKyMgdGhlIHRhYmxl
IG9mIGNvbnRlbnRzIG9mIHRoZSBIVE1MIGhlbHAgZG9jdW1lbnRhdGlvbiBhbmQgdG8gdGhlIHRy
ZWUgdmlldy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KKworVE9DX0VY
UEFORCAgICAgICAgICAgICA9IFlFUworCisjIElmIHRoZSBHRU5FUkFURV9RSFAgdGFnIGlzIHNl
dCB0byBZRVMgYW5kIGJvdGggUUhQX05BTUVTUEFDRSBhbmQKKyMgUUhQX1ZJUlRVQUxfRk9MREVS
IGFyZSBzZXQsIGFuIGFkZGl0aW9uYWwgaW5kZXggZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCB0aGF0
CisjIGNhbiBiZSB1c2VkIGFzIGlucHV0IGZvciBRdCdzIHFoZWxwZ2VuZXJhdG9yIHRvIGdlbmVy
YXRlIGEgUXQgQ29tcHJlc3NlZCBIZWxwCisjICgucWNoKSBvZiB0aGUgZ2VuZXJhdGVkIEhUTUwg
ZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitHRU5F
UkFURV9RSFAgICAgICAgICAgID0gTk8KKworIyBJZiB0aGUgUUhHX0xPQ0FUSU9OIHRhZyBpcyBz
cGVjaWZpZWQsIHRoZSBRQ0hfRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQorIyB0aGUg
ZmlsZSBuYW1lIG9mIHRoZSByZXN1bHRpbmcgLnFjaCBmaWxlLiBUaGUgcGF0aCBzcGVjaWZpZWQg
aXMgcmVsYXRpdmUgdG8KKyMgdGhlIEhUTUwgb3V0cHV0IGZvbGRlci4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRQ0hfRklM
RSAgICAgICAgICAgICAgID0KKworIyBUaGUgUUhQX05BTUVTUEFDRSB0YWcgc3BlY2lmaWVzIHRo
ZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBRdCBIZWxwCisjIFByb2plY3Qgb3V0
cHV0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAvIE5h
bWVzcGFjZQorIyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBw
cm9qZWN0Lmh0bWwjbmFtZXNwYWNlKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5
Z2VuLlByb2plY3QuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9R
SFAgaXMgc2V0IHRvIFlFUy4KKworUUhQX05BTUVTUEFDRSAgICAgICAgICA9CisKKyMgVGhlIFFI
UF9WSVJUVUFMX0ZPTERFUiB0YWcgc3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4g
Z2VuZXJhdGluZyBRdAorIyBIZWxwIFByb2plY3Qgb3V0cHV0LiBGb3IgbW9yZSBpbmZvcm1hdGlv
biBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAvIFZpcnR1YWwKKyMgRm9sZGVycyAoc2VlOiBo
dHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjdmlydHVh
bC0KKyMgZm9sZGVycykuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBkb2MuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KKworUUhQ
X1ZJUlRVQUxfRk9MREVSICAgICA9IGRvYworCisjIElmIHRoZSBRSFBfQ1VTVF9GSUxURVJfTkFN
RSB0YWcgaXMgc2V0LCBpdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgYSBjdXN0b20KKyMgZmlsdGVy
IHRvIGFkZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3Qg
LyBDdXN0b20KKyMgRmlsdGVycyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQu
OC9xdGhlbHBwcm9qZWN0Lmh0bWwjY3VzdG9tLQorIyBmaWx0ZXJzKS4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSFBfQ1VT
VF9GSUxURVJfTkFNRSAgID0KKworIyBUaGUgUUhQX0NVU1RfRklMVEVSX0FUVFJTIHRhZyBzcGVj
aWZpZXMgdGhlIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlCisjIGN1c3RvbSBmaWx0ZXIg
dG8gYWRkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAv
IEN1c3RvbQorIyBGaWx0ZXJzIChzZWU6IGh0dHA6Ly9xdC1wcm9qZWN0Lm9yZy9kb2MvcXQtNC44
L3F0aGVscHByb2plY3QuaHRtbCNjdXN0b20tCisjIGZpbHRlcnMpLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCisKK1FIUF9DVVNU
X0ZJTFRFUl9BVFRSUyAgPQorCisjIFRoZSBRSFBfU0VDVF9GSUxURVJfQVRUUlMgdGFnIHNwZWNp
ZmllcyB0aGUgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyB0aGlzCisjIHByb2plY3QncyBmaWx0ZXIg
c2VjdGlvbiBtYXRjaGVzLiBRdCBIZWxwIFByb2plY3QgLyBGaWx0ZXIgQXR0cmlidXRlcyAoc2Vl
OgorIyBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwj
ZmlsdGVyLWF0dHJpYnV0ZXMpLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCisKK1FIUF9TRUNUX0ZJTFRFUl9BVFRSUyAgPQorCisj
IFRoZSBRSEdfTE9DQVRJT04gdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9u
IG9mIFF0J3MKKyMgcWhlbHBnZW5lcmF0b3IuIElmIG5vbi1lbXB0eSBkb3h5Z2VuIHdpbGwgdHJ5
IHRvIHJ1biBxaGVscGdlbmVyYXRvciBvbiB0aGUKKyMgZ2VuZXJhdGVkIC5xaHAgZmlsZS4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVT
LgorCitRSEdfTE9DQVRJT04gICAgICAgICAgID0KKworIyBJZiB0aGUgR0VORVJBVEVfRUNMSVBT
RUhFTFAgdGFnIGlzIHNldCB0byBZRVMsIGFkZGl0aW9uYWwgaW5kZXggZmlsZXMgd2lsbCBiZQor
IyBnZW5lcmF0ZWQsIHRvZ2V0aGVyIHdpdGggdGhlIEhUTUwgZmlsZXMsIHRoZXkgZm9ybSBhbiBF
Y2xpcHNlIGhlbHAgcGx1Z2luLiBUbworIyBpbnN0YWxsIHRoaXMgcGx1Z2luIGFuZCBtYWtlIGl0
IGF2YWlsYWJsZSB1bmRlciB0aGUgaGVscCBjb250ZW50cyBtZW51IGluCisjIEVjbGlwc2UsIHRo
ZSBjb250ZW50cyBvZiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIEhUTUwgYW5kIFhNTCBm
aWxlcyBuZWVkcworIyB0byBiZSBjb3BpZWQgaW50byB0aGUgcGx1Z2lucyBkaXJlY3Rvcnkgb2Yg
ZWNsaXBzZS4gVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeQorIyB3aXRoaW4gdGhlIHBsdWdpbnMg
ZGlyZWN0b3J5IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgRUNMSVBTRV9ET0NfSUQgdmFsdWUu
CisjIEFmdGVyIGNvcHlpbmcgRWNsaXBzZSBuZWVkcyB0byBiZSByZXN0YXJ0ZWQgYmVmb3JlIHRo
ZSBoZWxwIGFwcGVhcnMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworR0VO
RVJBVEVfRUNMSVBTRUhFTFAgICA9IE5PCisKKyMgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhl
IEVjbGlwc2UgaGVscCBwbHVnaW4uIFdoZW4gaW5zdGFsbGluZyB0aGUgcGx1Z2luCisjIHRoZSBk
aXJlY3RvcnkgbmFtZSBjb250YWluaW5nIHRoZSBIVE1MIGFuZCBYTUwgZmlsZXMgc2hvdWxkIGFs
c28gaGF2ZSB0aGlzCisjIG5hbWUuIEVhY2ggZG9jdW1lbnRhdGlvbiBzZXQgc2hvdWxkIGhhdmUg
aXRzIG93biBpZGVudGlmaWVyLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4u
UHJvamVjdC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0VDTElQ
U0VIRUxQIGlzIHNldCB0byBZRVMuCisKK0VDTElQU0VfRE9DX0lEICAgICAgICAgPSBvcmcuZG94
eWdlbi5Qcm9qZWN0CisKKyMgSWYgeW91IHdhbnQgZnVsbCBjb250cm9sIG92ZXIgdGhlIGxheW91
dCBvZiB0aGUgZ2VuZXJhdGVkIEhUTUwgcGFnZXMgaXQgbWlnaHQKKyMgYmUgbmVjZXNzYXJ5IHRv
IGRpc2FibGUgdGhlIGluZGV4IGFuZCByZXBsYWNlIGl0IHdpdGggeW91ciBvd24uIFRoZQorIyBE
SVNBQkxFX0lOREVYIHRhZyBjYW4gYmUgdXNlZCB0byB0dXJuIG9uL29mZiB0aGUgY29uZGVuc2Vk
IGluZGV4ICh0YWJzKSBhdCB0b3AKKyMgb2YgZWFjaCBIVE1MIHBhZ2UuIEEgdmFsdWUgb2YgTk8g
ZW5hYmxlcyB0aGUgaW5kZXggYW5kIHRoZSB2YWx1ZSBZRVMgZGlzYWJsZXMKKyMgaXQuIFNpbmNl
IHRoZSB0YWJzIGluIHRoZSBpbmRleCBjb250YWluIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIHRo
ZSBuYXZpZ2F0aW9uCisjIHRyZWUsIHlvdSBjYW4gc2V0IHRoaXMgb3B0aW9uIHRvIFlFUyBpZiB5
b3UgYWxzbyBzZXQgR0VORVJBVEVfVFJFRVZJRVcgdG8gWUVTLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1M
IGlzIHNldCB0byBZRVMuCisKK0RJU0FCTEVfSU5ERVggICAgICAgICAgPSBOTworCisjIFRoZSBH
RU5FUkFURV9UUkVFVklFVyB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXRoZXIgYSB0cmVlLWxp
a2UgaW5kZXgKKyMgc3RydWN0dXJlIHNob3VsZCBiZSBnZW5lcmF0ZWQgdG8gZGlzcGxheSBoaWVy
YXJjaGljYWwgaW5mb3JtYXRpb24uIElmIHRoZSB0YWcKKyMgdmFsdWUgaXMgc2V0IHRvIFlFUywg
YSBzaWRlIHBhbmVsIHdpbGwgYmUgZ2VuZXJhdGVkIGNvbnRhaW5pbmcgYSB0cmVlLWxpa2UKKyMg
aW5kZXggc3RydWN0dXJlIChqdXN0IGxpa2UgdGhlIG9uZSB0aGF0IGlzIGdlbmVyYXRlZCBmb3Ig
SFRNTCBIZWxwKS4gRm9yIHRoaXMKKyMgdG8gd29yayBhIGJyb3dzZXIgdGhhdCBzdXBwb3J0cyBK
YXZhU2NyaXB0LCBESFRNTCwgQ1NTIGFuZCBmcmFtZXMgaXMgcmVxdWlyZWQKKyMgKGkuZS4gYW55
IG1vZGVybiBicm93c2VyKS4gV2luZG93cyB1c2VycyBhcmUgcHJvYmFibHkgYmV0dGVyIG9mZiB1
c2luZyB0aGUKKyMgSFRNTCBoZWxwIGZlYXR1cmUuIFZpYSBjdXN0b20gc3R5bGVzaGVldHMgKHNl
ZSBIVE1MX0VYVFJBX1NUWUxFU0hFRVQpIG9uZSBjYW4KKyMgZnVydGhlciBmaW5lLXR1bmUgdGhl
IGxvb2sgb2YgdGhlIGluZGV4LiBBcyBhbiBleGFtcGxlLCB0aGUgZGVmYXVsdCBzdHlsZQorIyBz
aGVldCBnZW5lcmF0ZWQgYnkgZG94eWdlbiBoYXMgYW4gZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0
byBwdXQgYW4gaW1hZ2UgYXQKKyMgdGhlIHJvb3Qgb2YgdGhlIHRyZWUgaW5zdGVhZCBvZiB0aGUg
UFJPSkVDVF9OQU1FLiBTaW5jZSB0aGUgdHJlZSBiYXNpY2FsbHkgaGFzCisjIHRoZSBzYW1lIGlu
Zm9ybWF0aW9uIGFzIHRoZSB0YWIgaW5kZXgsIHlvdSBjb3VsZCBjb25zaWRlciBzZXR0aW5nCisj
IERJU0FCTEVfSU5ERVggdG8gWUVTIHdoZW4gZW5hYmxpbmcgdGhpcyBvcHRpb24uCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworR0VORVJBVEVfVFJFRVZJRVcgICAgICA9IFlF
UworCisjIFRoZSBFTlVNX1ZBTFVFU19QRVJfTElORSB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRo
ZSBudW1iZXIgb2YgZW51bSB2YWx1ZXMgdGhhdAorIyBkb3h5Z2VuIHdpbGwgZ3JvdXAgb24gb25l
IGxpbmUgaW4gdGhlIGdlbmVyYXRlZCBIVE1MIGRvY3VtZW50YXRpb24uCisjCisjIE5vdGUgdGhh
dCBhIHZhbHVlIG9mIDAgd2lsbCBjb21wbGV0ZWx5IHN1cHByZXNzIHRoZSBlbnVtIHZhbHVlcyBm
cm9tIGFwcGVhcmluZworIyBpbiB0aGUgb3ZlcnZpZXcgc2VjdGlvbi4KKyMgTWluaW11bSB2YWx1
ZTogMCwgbWF4aW11bSB2YWx1ZTogMjAsIGRlZmF1bHQgdmFsdWU6IDQuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0VOVU1f
VkFMVUVTX1BFUl9MSU5FICAgPSA0CisKKyMgSWYgdGhlIHRyZWV2aWV3IGlzIGVuYWJsZWQgKHNl
ZSBHRU5FUkFURV9UUkVFVklFVykgdGhlbiB0aGlzIHRhZyBjYW4gYmUgdXNlZAorIyB0byBzZXQg
dGhlIGluaXRpYWwgd2lkdGggKGluIHBpeGVscykgb2YgdGhlIGZyYW1lIGluIHdoaWNoIHRoZSB0
cmVlIGlzIHNob3duLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAxNTAwLCBk
ZWZhdWx0IHZhbHVlOiAyNTAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5F
UkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK1RSRUVWSUVXX1dJRFRIICAgICAgICAgPSAyNTAK
KworIyBXaGVuIHRoZSBFWFRfTElOS1NfSU5fV0lORE9XIG9wdGlvbiBpcyBzZXQgdG8gWUVTIGRv
eHlnZW4gd2lsbCBvcGVuIGxpbmtzIHRvCisjIGV4dGVybmFsIHN5bWJvbHMgaW1wb3J0ZWQgdmlh
IHRhZyBmaWxlcyBpbiBhIHNlcGFyYXRlIHdpbmRvdy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBz
ZXQgdG8gWUVTLgorCitFWFRfTElOS1NfSU5fV0lORE9XICAgID0gTk8KKworIyBVc2UgdGhpcyB0
YWcgdG8gY2hhbmdlIHRoZSBmb250IHNpemUgb2YgTGFUZVggZm9ybXVsYXMgaW5jbHVkZWQgYXMg
aW1hZ2VzIGluCisjIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uIFdoZW4geW91IGNoYW5nZSB0aGUg
Zm9udCBzaXplIGFmdGVyIGEgc3VjY2Vzc2Z1bAorIyBkb3h5Z2VuIHJ1biB5b3UgbmVlZCB0byBt
YW51YWxseSByZW1vdmUgYW55IGZvcm1fKi5wbmcgaW1hZ2VzIGZyb20gdGhlIEhUTUwKKyMgb3V0
cHV0IGRpcmVjdG9yeSB0byBmb3JjZSB0aGVtIHRvIGJlIHJlZ2VuZXJhdGVkLgorIyBNaW5pbXVt
IHZhbHVlOiA4LCBtYXhpbXVtIHZhbHVlOiA1MCwgZGVmYXVsdCB2YWx1ZTogMTAuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisK
K0ZPUk1VTEFfRk9OVFNJWkUgICAgICAgPSAxMAorCisjIFVzZSB0aGUgRk9STVVMQV9UUkFOUEFS
RU5UIHRhZyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIGltYWdlcworIyBnZW5lcmF0
ZWQgZm9yIGZvcm11bGFzIGFyZSB0cmFuc3BhcmVudCBQTkdzLiBUcmFuc3BhcmVudCBQTkdzIGFy
ZSBub3QKKyMgc3VwcG9ydGVkIHByb3Blcmx5IGZvciBJRSA2LjAsIGJ1dCBhcmUgc3VwcG9ydGVk
IG9uIGFsbCBtb2Rlcm4gYnJvd3NlcnMuCisjCisjIE5vdGUgdGhhdCB3aGVuIGNoYW5naW5nIHRo
aXMgb3B0aW9uIHlvdSBuZWVkIHRvIGRlbGV0ZSBhbnkgZm9ybV8qLnBuZyBmaWxlcyBpbgorIyB0
aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSB0aGUgY2hhbmdlcyBoYXZlIGVmZmVjdC4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworRk9STVVMQV9UUkFOU1BBUkVO
VCAgICA9IFlFUworCisjIEVuYWJsZSB0aGUgVVNFX01BVEhKQVggb3B0aW9uIHRvIHJlbmRlciBM
YVRlWCBmb3JtdWxhcyB1c2luZyBNYXRoSmF4IChzZWUKKyMgaHR0cDovL3d3dy5tYXRoamF4Lm9y
Zykgd2hpY2ggdXNlcyBjbGllbnQgc2lkZSBKYXZhU2NyaXB0IGZvciB0aGUgcmVuZGVyaW5nCisj
IGluc3RlYWQgb2YgdXNpbmcgcHJlcmVuZGVyZWQgYml0bWFwcy4gVXNlIHRoaXMgaWYgeW91IGRv
IG5vdCBoYXZlIExhVGVYCisjIGluc3RhbGxlZCBvciBpZiB5b3Ugd2FudCB0byBmb3JtdWxhcyBs
b29rIHByZXR0aWVyIGluIHRoZSBIVE1MIG91dHB1dC4gV2hlbgorIyBlbmFibGVkIHlvdSBtYXkg
YWxzbyBuZWVkIHRvIGluc3RhbGwgTWF0aEpheCBzZXBhcmF0ZWx5IGFuZCBjb25maWd1cmUgdGhl
IHBhdGgKKyMgdG8gaXQgdXNpbmcgdGhlIE1BVEhKQVhfUkVMUEFUSCBvcHRpb24uCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworVVNFX01BVEhKQVggICAgICAgICAgICA9IE5P
CisKKyMgV2hlbiBNYXRoSmF4IGlzIGVuYWJsZWQgeW91IGNhbiBzZXQgdGhlIGRlZmF1bHQgb3V0
cHV0IGZvcm1hdCB0byBiZSB1c2VkIGZvcgorIyB0aGUgTWF0aEpheCBvdXRwdXQuIFNlZSB0aGUg
TWF0aEpheCBzaXRlIChzZWU6CisjIGh0dHA6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL2xhdGVzdC9v
dXRwdXQuaHRtbCkgZm9yIG1vcmUgZGV0YWlscy4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTogSFRN
TC1DU1MgKHdoaWNoIGlzIHNsb3dlciwgYnV0IGhhcyB0aGUgYmVzdAorIyBjb21wYXRpYmlsaXR5
KSwgTmF0aXZlTU1MIChpLmUuIE1hdGhNTCkgYW5kIFNWRy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IEhUTUwtQ1NTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhK
QVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9GT1JNQVQgICAgICAgICA9IEhUTUwtQ1NTCisK
KyMgV2hlbiBNYXRoSmF4IGlzIGVuYWJsZWQgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgbG9jYXRp
b24gcmVsYXRpdmUgdG8gdGhlIEhUTUwKKyMgb3V0cHV0IGRpcmVjdG9yeSB1c2luZyB0aGUgTUFU
SEpBWF9SRUxQQVRIIG9wdGlvbi4gVGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeQorIyBzaG91bGQg
Y29udGFpbiB0aGUgTWF0aEpheC5qcyBzY3JpcHQuIEZvciBpbnN0YW5jZSwgaWYgdGhlIG1hdGhq
YXggZGlyZWN0b3J5CisjIGlzIGxvY2F0ZWQgYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIEhUTUwg
b3V0cHV0IGRpcmVjdG9yeSwgdGhlbgorIyBNQVRISkFYX1JFTFBBVEggc2hvdWxkIGJlIC4uL21h
dGhqYXguIFRoZSBkZWZhdWx0IHZhbHVlIHBvaW50cyB0byB0aGUgTWF0aEpheAorIyBDb250ZW50
IERlbGl2ZXJ5IE5ldHdvcmsgc28geW91IGNhbiBxdWlja2x5IHNlZSB0aGUgcmVzdWx0IHdpdGhv
dXQgaW5zdGFsbGluZworIyBNYXRoSmF4LiBIb3dldmVyLCBpdCBpcyBzdHJvbmdseSByZWNvbW1l
bmRlZCB0byBpbnN0YWxsIGEgbG9jYWwgY29weSBvZgorIyBNYXRoSmF4IGZyb20gaHR0cDovL3d3
dy5tYXRoamF4Lm9yZyBiZWZvcmUgZGVwbG95bWVudC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0aGpheC9sYXRlc3QuCisjIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBVU0VfTUFUSEpBWCBpcyBzZXQgdG8gWUVTLgorCitNQVRISkFYX1JF
TFBBVEggICAgICAgID0gaHR0cDovL2Nkbi5tYXRoamF4Lm9yZy9tYXRoamF4L2xhdGVzdAorCisj
IFRoZSBNQVRISkFYX0VYVEVOU0lPTlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9y
IG1vcmUgTWF0aEpheAorIyBleHRlbnNpb24gbmFtZXMgdGhhdCBzaG91bGQgYmUgZW5hYmxlZCBk
dXJpbmcgTWF0aEpheCByZW5kZXJpbmcuIEZvciBleGFtcGxlCisjIE1BVEhKQVhfRVhURU5TSU9O
UyA9IFRlWC9BTVNtYXRoIFRlWC9BTVNzeW1ib2xzCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBVU0VfTUFUSEpBWCBpcyBzZXQgdG8gWUVTLgorCitNQVRISkFYX0VYVEVOU0lPTlMg
ICAgID0KKworIyBUaGUgTUFUSEpBWF9DT0RFRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBhIGZpbGUgd2l0aCBqYXZhc2NyaXB0IHBpZWNlcworIyBvZiBjb2RlIHRoYXQgd2lsbCBiZSB1
c2VkIG9uIHN0YXJ0dXAgb2YgdGhlIE1hdGhKYXggY29kZS4gU2VlIHRoZSBNYXRoSmF4IHNpdGUK
KyMgKHNlZTogaHR0cDovL2RvY3MubWF0aGpheC5vcmcvZW4vbGF0ZXN0L291dHB1dC5odG1sKSBm
b3IgbW9yZSBkZXRhaWxzLiBGb3IgYW4KKyMgZXhhbXBsZSBzZWUgdGhlIGRvY3VtZW50YXRpb24u
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBVU0VfTUFUSEpBWCBpcyBzZXQgdG8g
WUVTLgorCitNQVRISkFYX0NPREVGSUxFICAgICAgID0KKworIyBXaGVuIHRoZSBTRUFSQ0hFTkdJ
TkUgdGFnIGlzIGVuYWJsZWQgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc2VhcmNoIGJveCBmb3IK
KyMgdGhlIEhUTUwgb3V0cHV0LiBUaGUgdW5kZXJseWluZyBzZWFyY2ggZW5naW5lIHVzZXMgamF2
YXNjcmlwdCBhbmQgREhUTUwgYW5kCisjIHNob3VsZCB3b3JrIG9uIGFueSBtb2Rlcm4gYnJvd3Nl
ci4gTm90ZSB0aGF0IHdoZW4gdXNpbmcgSFRNTCBoZWxwCisjIChHRU5FUkFURV9IVE1MSEVMUCks
IFF0IGhlbHAgKEdFTkVSQVRFX1FIUCksIG9yIGRvY3NldHMgKEdFTkVSQVRFX0RPQ1NFVCkKKyMg
dGhlcmUgaXMgYWxyZWFkeSBhIHNlYXJjaCBmdW5jdGlvbiBzbyB0aGlzIG9uZSBzaG91bGQgdHlw
aWNhbGx5IGJlIGRpc2FibGVkLgorIyBGb3IgbGFyZ2UgcHJvamVjdHMgdGhlIGphdmFzY3JpcHQg
YmFzZWQgc2VhcmNoIGVuZ2luZSBjYW4gYmUgc2xvdywgdGhlbgorIyBlbmFibGluZyBTRVJWRVJf
QkFTRURfU0VBUkNIIG1heSBwcm92aWRlIGEgYmV0dGVyIHNvbHV0aW9uLiBJdCBpcyBwb3NzaWJs
ZSB0bworIyBzZWFyY2ggdXNpbmcgdGhlIGtleWJvYXJkOyB0byBqdW1wIHRvIHRoZSBzZWFyY2gg
Ym94IHVzZSA8YWNjZXNzIGtleT4gKyBTCisjICh3aGF0IHRoZSA8YWNjZXNzIGtleT4gaXMgZGVw
ZW5kcyBvbiB0aGUgT1MgYW5kIGJyb3dzZXIsIGJ1dCBpdCBpcyB0eXBpY2FsbHkKKyMgPENUUkw+
LCA8QUxUPi88b3B0aW9uPiwgb3IgYm90aCkuIEluc2lkZSB0aGUgc2VhcmNoIGJveCB1c2UgdGhl
IDxjdXJzb3IgZG93bgorIyBrZXk+IHRvIGp1bXAgaW50byB0aGUgc2VhcmNoIHJlc3VsdHMgd2lu
ZG93LCB0aGUgcmVzdWx0cyBjYW4gYmUgbmF2aWdhdGVkCisjIHVzaW5nIHRoZSA8Y3Vyc29yIGtl
eXM+LiBQcmVzcyA8RW50ZXI+IHRvIHNlbGVjdCBhbiBpdGVtIG9yIDxlc2NhcGU+IHRvIGNhbmNl
bAorIyB0aGUgc2VhcmNoLiBUaGUgZmlsdGVyIG9wdGlvbnMgY2FuIGJlIHNlbGVjdGVkIHdoZW4g
dGhlIGN1cnNvciBpcyBpbnNpZGUgdGhlCisjIHNlYXJjaCBib3ggYnkgcHJlc3NpbmcgPFNoaWZ0
Pis8Y3Vyc29yIGRvd24+LiBBbHNvIGhlcmUgdXNlIHRoZSA8Y3Vyc29yIGtleXM+CisjIHRvIHNl
bGVjdCBhIGZpbHRlciBhbmQgPEVudGVyPiBvciA8ZXNjYXBlPiB0byBhY3RpdmF0ZSBvciBjYW5j
ZWwgdGhlIGZpbHRlcgorIyBvcHRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZ
RVMuCisKK1NFQVJDSEVOR0lORSAgICAgICAgICAgPSBOTworCisjIFdoZW4gdGhlIFNFUlZFUl9C
QVNFRF9TRUFSQ0ggdGFnIGlzIGVuYWJsZWQgdGhlIHNlYXJjaCBlbmdpbmUgd2lsbCBiZQorIyBp
bXBsZW1lbnRlZCB1c2luZyBhIHdlYiBzZXJ2ZXIgaW5zdGVhZCBvZiBhIHdlYiBjbGllbnQgdXNp
bmcgSmF2YVNjcmlwdC4gVGhlcmUKKyMgYXJlIHR3byBmbGF2b3VycyBvZiB3ZWIgc2VydmVyIGJh
c2VkIHNlYXJjaGluZyBkZXBlbmRpbmcgb24gdGhlCisjIEVYVEVSTkFMX1NFQVJDSCBzZXR0aW5n
LiBXaGVuIGRpc2FibGVkLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBQSFAgc2NyaXB0IGZvcgor
IyBzZWFyY2hpbmcgYW5kIGFuIGluZGV4IGZpbGUgdXNlZCBieSB0aGUgc2NyaXB0LiBXaGVuIEVY
VEVSTkFMX1NFQVJDSCBpcworIyBlbmFibGVkIHRoZSBpbmRleGluZyBhbmQgc2VhcmNoaW5nIG5l
ZWRzIHRvIGJlIHByb3ZpZGVkIGJ5IGV4dGVybmFsIHRvb2xzLiBTZWUKKyMgdGhlIHNlY3Rpb24g
IkV4dGVybmFsIEluZGV4aW5nIGFuZCBTZWFyY2hpbmciIGZvciBkZXRhaWxzLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFS
Q0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4KKworU0VSVkVSX0JBU0VEX1NFQVJDSCAgICA9IE5PCisK
KyMgV2hlbiBFWFRFUk5BTF9TRUFSQ0ggdGFnIGlzIGVuYWJsZWQgZG94eWdlbiB3aWxsIG5vIGxv
bmdlciBnZW5lcmF0ZSB0aGUgUEhQCisjIHNjcmlwdCBmb3Igc2VhcmNoaW5nLiBJbnN0ZWFkIHRo
ZSBzZWFyY2ggcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhbiBYTUwgZmlsZQorIyB3aGljaCBuZWVk
cyB0byBiZSBwcm9jZXNzZWQgYnkgYW4gZXh0ZXJuYWwgaW5kZXhlci4gRG94eWdlbiB3aWxsIGlu
dm9rZSBhbgorIyBleHRlcm5hbCBzZWFyY2ggZW5naW5lIHBvaW50ZWQgdG8gYnkgdGhlIFNFQVJD
SEVOR0lORV9VUkwgb3B0aW9uIHRvIG9idGFpbiB0aGUKKyMgc2VhcmNoIHJlc3VsdHMuCisjCisj
IERveHlnZW4gc2hpcHMgd2l0aCBhbiBleGFtcGxlIGluZGV4ZXIgKCBkb3h5aW5kZXhlcikgYW5k
IHNlYXJjaCBlbmdpbmUKKyMgKGRveHlzZWFyY2guY2dpKSB3aGljaCBhcmUgYmFzZWQgb24gdGhl
IG9wZW4gc291cmNlIHNlYXJjaCBlbmdpbmUgbGlicmFyeQorIyBYYXBpYW4gKHNlZTogaHR0cDov
L3hhcGlhbi5vcmcvKS4KKyMKKyMgU2VlIHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBh
bmQgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZ
RVMuCisKK0VYVEVSTkFMX1NFQVJDSCAgICAgICAgPSBOTworCisjIFRoZSBTRUFSQ0hFTkdJTkVf
VVJMIHNob3VsZCBwb2ludCB0byBhIHNlYXJjaCBlbmdpbmUgaG9zdGVkIGJ5IGEgd2ViIHNlcnZl
cgorIyB3aGljaCB3aWxsIHJldHVybiB0aGUgc2VhcmNoIHJlc3VsdHMgd2hlbiBFWFRFUk5BTF9T
RUFSQ0ggaXMgZW5hYmxlZC4KKyMKKyMgRG94eWdlbiBzaGlwcyB3aXRoIGFuIGV4YW1wbGUgaW5k
ZXhlciAoIGRveHlpbmRleGVyKSBhbmQgc2VhcmNoIGVuZ2luZQorIyAoZG94eXNlYXJjaC5jZ2kp
IHdoaWNoIGFyZSBiYXNlZCBvbiB0aGUgb3BlbiBzb3VyY2Ugc2VhcmNoIGVuZ2luZSBsaWJyYXJ5
CisjIFhhcGlhbiAoc2VlOiBodHRwOi8veGFwaWFuLm9yZy8pLiBTZWUgdGhlIHNlY3Rpb24gIkV4
dGVybmFsIEluZGV4aW5nIGFuZAorIyBTZWFyY2hpbmciIGZvciBkZXRhaWxzLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCisKK1NF
QVJDSEVOR0lORV9VUkwgICAgICAgPQorCisjIFdoZW4gU0VSVkVSX0JBU0VEX1NFQVJDSCBhbmQg
RVhURVJOQUxfU0VBUkNIIGFyZSBib3RoIGVuYWJsZWQgdGhlIHVuaW5kZXhlZAorIyBzZWFyY2gg
ZGF0YSBpcyB3cml0dGVuIHRvIGEgZmlsZSBmb3IgaW5kZXhpbmcgYnkgYW4gZXh0ZXJuYWwgdG9v
bC4gV2l0aCB0aGUKKyMgU0VBUkNIREFUQV9GSUxFIHRhZyB0aGUgbmFtZSBvZiB0aGlzIGZpbGUg
Y2FuIGJlIHNwZWNpZmllZC4KKyMgVGhlIGRlZmF1bHQgZmlsZSBpczogc2VhcmNoZGF0YS54bWwu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRv
IFlFUy4KKworU0VBUkNIREFUQV9GSUxFICAgICAgICA9IHNlYXJjaGRhdGEueG1sCisKKyMgV2hl
biBTRVJWRVJfQkFTRURfU0VBUkNIIGFuZCBFWFRFUk5BTF9TRUFSQ0ggYXJlIGJvdGggZW5hYmxl
ZCB0aGUKKyMgRVhURVJOQUxfU0VBUkNIX0lEIHRhZyBjYW4gYmUgdXNlZCBhcyBhbiBpZGVudGlm
aWVyIGZvciB0aGUgcHJvamVjdC4gVGhpcyBpcworIyB1c2VmdWwgaW4gY29tYmluYXRpb24gd2l0
aCBFWFRSQV9TRUFSQ0hfTUFQUElOR1MgdG8gc2VhcmNoIHRocm91Z2ggbXVsdGlwbGUKKyMgcHJv
amVjdHMgYW5kIHJlZGlyZWN0IHRoZSByZXN1bHRzIGJhY2sgdG8gdGhlIHJpZ2h0IHByb2plY3Qu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRv
IFlFUy4KKworRVhURVJOQUxfU0VBUkNIX0lEICAgICA9CisKKyMgVGhlIEVYVFJBX1NFQVJDSF9N
QVBQSU5HUyB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIHNlYXJjaGluZyB0aHJvdWdoIGRveHln
ZW4KKyMgcHJvamVjdHMgb3RoZXIgdGhhbiB0aGUgb25lIGRlZmluZWQgYnkgdGhpcyBjb25maWd1
cmF0aW9uIGZpbGUsIGJ1dCB0aGF0IGFyZQorIyBhbGwgYWRkZWQgdG8gdGhlIHNhbWUgZXh0ZXJu
YWwgc2VhcmNoIGluZGV4LiBFYWNoIHByb2plY3QgbmVlZHMgdG8gaGF2ZSBhCisjIHVuaXF1ZSBp
ZCBzZXQgdmlhIEVYVEVSTkFMX1NFQVJDSF9JRC4gVGhlIHNlYXJjaCBtYXBwaW5nIHRoZW4gbWFw
cyB0aGUgaWQgb2YKKyMgdG8gYSByZWxhdGl2ZSBsb2NhdGlvbiB3aGVyZSB0aGUgZG9jdW1lbnRh
dGlvbiBjYW4gYmUgZm91bmQuIFRoZSBmb3JtYXQgaXM6CisjIEVYVFJBX1NFQVJDSF9NQVBQSU5H
UyA9IHRhZ25hbWUxPWxvYzEgdGFnbmFtZTI9bG9jMiAuLi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgorCitFWFRSQV9TRUFSQ0hf
TUFQUElOR1MgID0KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlv
bnMgcmVsYXRlZCB0byB0aGUgTGFUZVggb3V0cHV0CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMg
SWYgdGhlIEdFTkVSQVRFX0xBVEVYIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5l
cmF0ZSBMYVRlWCBvdXRwdXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0dFTkVS
QVRFX0xBVEVYICAgICAgICAgPSBOTworCisjIFRoZSBMQVRFWF9PVVRQVVQgdGFnIGlzIHVzZWQg
dG8gc3BlY2lmeSB3aGVyZSB0aGUgTGFUZVggZG9jcyB3aWxsIGJlIHB1dC4gSWYgYQorIyByZWxh
dGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBi
ZSBwdXQgaW4gZnJvbnQgb2YKKyMgaXQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogbGF0
ZXguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBz
ZXQgdG8gWUVTLgorCitMQVRFWF9PVVRQVVQgICAgICAgICAgID0gbGF0ZXgKKworIyBUaGUgTEFU
RVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIExhVGVYIGNvbW1hbmQg
bmFtZSB0byBiZQorIyBpbnZva2VkLgorIworIyBOb3RlIHRoYXQgd2hlbiBlbmFibGluZyBVU0Vf
UERGTEFURVggdGhpcyBvcHRpb24gaXMgb25seSB1c2VkIGZvciBnZW5lcmF0aW5nCisjIGJpdG1h
cHMgZm9yIGZvcm11bGFzIGluIHRoZSBIVE1MIG91dHB1dCwgYnV0IG5vdCBpbiB0aGUgTWFrZWZp
bGUgdGhhdCBpcworIyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5LgorIyBUaGUgZGVm
YXVsdCBmaWxlIGlzOiBsYXRleC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX0NNRF9OQU1FICAgICAgICAgPSBs
YXRleAorCisjIFRoZSBNQUtFSU5ERVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
ZnkgdGhlIGNvbW1hbmQgbmFtZSB0byBnZW5lcmF0ZQorIyBpbmRleCBmb3IgTGFUZVguCisjIFRo
ZSBkZWZhdWx0IGZpbGUgaXM6IG1ha2VpbmRleC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK01BS0VJTkRFWF9DTURfTkFN
RSAgICAgPSBtYWtlaW5kZXgKKworIyBJZiB0aGUgQ09NUEFDVF9MQVRFWCB0YWcgaXMgc2V0IHRv
IFlFUyBkb3h5Z2VuIGdlbmVyYXRlcyBtb3JlIGNvbXBhY3QgTGFUZVgKKyMgZG9jdW1lbnRzLiBU
aGlzIG1heSBiZSB1c2VmdWwgZm9yIHNtYWxsIHByb2plY3RzIGFuZCBtYXkgaGVscCB0byBzYXZl
IHNvbWUKKyMgdHJlZXMgaW4gZ2VuZXJhbC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRv
IFlFUy4KKworQ09NUEFDVF9MQVRFWCAgICAgICAgICA9IE5PCisKKyMgVGhlIFBBUEVSX1RZUEUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgcGFwZXIgdHlwZSB0aGF0IGlzIHVzZWQgYnkgdGhl
CisjIHByaW50ZXIuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IGE0ICgyMTAgeCAyOTcgbW0pLCBs
ZXR0ZXIgKDguNSB4IDExIGluY2hlcyksIGxlZ2FsICg4LjUgeAorIyAxNCBpbmNoZXMpIGFuZCBl
eGVjdXRpdmUgKDcuMjUgeCAxMC41IGluY2hlcykuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBh
NC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNl
dCB0byBZRVMuCisKK1BBUEVSX1RZUEUgICAgICAgICAgICAgPSBhNHdpZGUKKworIyBUaGUgRVhU
UkFfUEFDS0FHRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgTGFUZVgg
cGFja2FnZSBuYW1lcworIyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgTGFUZVggb3V0
cHV0LiBUbyBnZXQgdGhlIHRpbWVzIGZvbnQgZm9yCisjIGluc3RhbmNlIHlvdSBjYW4gc3BlY2lm
eQorIyBFWFRSQV9QQUNLQUdFUz10aW1lcworIyBJZiBsZWZ0IGJsYW5rIG5vIGV4dHJhIHBhY2th
Z2VzIHdpbGwgYmUgaW5jbHVkZWQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitFWFRSQV9QQUNLQUdFUyAgICAgICAgID0K
KworIyBUaGUgTEFURVhfSEVBREVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcGVyc29u
YWwgTGFUZVggaGVhZGVyIGZvciB0aGUKKyMgZ2VuZXJhdGVkIExhVGVYIGRvY3VtZW50LiBUaGUg
aGVhZGVyIHNob3VsZCBjb250YWluIGV2ZXJ5dGhpbmcgdW50aWwgdGhlIGZpcnN0CisjIGNoYXB0
ZXIuIElmIGl0IGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhcmQg
aGVhZGVyLiBTZWUKKyMgc2VjdGlvbiAiRG94eWdlbiB1c2FnZSIgZm9yIGluZm9ybWF0aW9uIG9u
IGhvdyB0byBsZXQgZG94eWdlbiB3cml0ZSB0aGUKKyMgZGVmYXVsdCBoZWFkZXIgdG8gYSBzZXBh
cmF0ZSBmaWxlLgorIworIyBOb3RlOiBPbmx5IHVzZSBhIHVzZXItZGVmaW5lZCBoZWFkZXIgaWYg
eW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nISBUaGUKKyMgZm9sbG93aW5nIGNvbW1hbmRzIGhh
dmUgYSBzcGVjaWFsIG1lYW5pbmcgaW5zaWRlIHRoZSBoZWFkZXI6ICR0aXRsZSwKKyMgJGRhdGV0
aW1lLCAkZGF0ZSwgJGRveHlnZW52ZXJzaW9uLCAkcHJvamVjdG5hbWUsICRwcm9qZWN0bnVtYmVy
LiBEb3h5Z2VuIHdpbGwKKyMgcmVwbGFjZSB0aGVtIGJ5IHJlc3BlY3RpdmVseSB0aGUgdGl0bGUg
b2YgdGhlIHBhZ2UsIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUsCisjIG9ubHkgdGhlIGN1cnJl
bnQgZGF0ZSwgdGhlIHZlcnNpb24gbnVtYmVyIG9mIGRveHlnZW4sIHRoZSBwcm9qZWN0IG5hbWUg
KHNlZQorIyBQUk9KRUNUX05BTUUpLCBvciB0aGUgcHJvamVjdCBudW1iZXIgKHNlZSBQUk9KRUNU
X05VTUJFUikuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRF
WCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9IRUFERVIgICAgICAgICAgID0KKworIyBUaGUgTEFU
RVhfRk9PVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcGVyc29uYWwgTGFUZVggZm9v
dGVyIGZvciB0aGUKKyMgZ2VuZXJhdGVkIExhVGVYIGRvY3VtZW50LiBUaGUgZm9vdGVyIHNob3Vs
ZCBjb250YWluIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGxhc3QKKyMgY2hhcHRlci4gSWYgaXQgaXMg
bGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBzdGFuZGFyZCBmb290ZXIuCisjCisj
IE5vdGU6IE9ubHkgdXNlIGEgdXNlci1kZWZpbmVkIGZvb3RlciBpZiB5b3Uga25vdyB3aGF0IHlv
dSBhcmUgZG9pbmchCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9M
QVRFWCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9GT09URVIgICAgICAgICAgID0KKworIyBUaGUg
TEFURVhfRVhUUkFfRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUg
ZXh0cmEgaW1hZ2VzIG9yCisjIG90aGVyIHNvdXJjZSBmaWxlcyB3aGljaCBzaG91bGQgYmUgY29w
aWVkIHRvIHRoZSBMQVRFWF9PVVRQVVQgb3V0cHV0CisjIGRpcmVjdG9yeS4gTm90ZSB0aGF0IHRo
ZSBmaWxlcyB3aWxsIGJlIGNvcGllZCBhcy1pczsgdGhlcmUgYXJlIG5vIGNvbW1hbmRzIG9yCisj
IG1hcmtlcnMgYXZhaWxhYmxlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworTEFURVhfRVhUUkFfRklMRVMgICAgICA9CisK
KyMgSWYgdGhlIFBERl9IWVBFUkxJTktTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgTGFUZVggdGhh
dCBpcyBnZW5lcmF0ZWQgaXMKKyMgcHJlcGFyZWQgZm9yIGNvbnZlcnNpb24gdG8gUERGICh1c2lu
ZyBwczJwZGYgb3IgcGRmbGF0ZXgpLiBUaGUgUERGIGZpbGUgd2lsbAorIyBjb250YWluIGxpbmtz
IChqdXN0IGxpa2UgdGhlIEhUTUwgb3V0cHV0KSBpbnN0ZWFkIG9mIHBhZ2UgcmVmZXJlbmNlcy4g
VGhpcworIyBtYWtlcyB0aGUgb3V0cHV0IHN1aXRhYmxlIGZvciBvbmxpbmUgYnJvd3NpbmcgdXNp
bmcgYSBQREYgdmlld2VyLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKwor
UERGX0hZUEVSTElOS1MgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIExBVEVYX1BERkxBVEVYIHRh
ZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgdXNlIHBkZmxhdGV4IHRvIGdlbmVyYXRlCisj
IHRoZSBQREYgZmlsZSBkaXJlY3RseSBmcm9tIHRoZSBMYVRlWCBmaWxlcy4gU2V0IHRoaXMgb3B0
aW9uIHRvIFlFUyB0byBnZXQgYQorIyBoaWdoZXIgcXVhbGl0eSBQREYgZG9jdW1lbnRhdGlvbi4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK1VTRV9QREZMQVRFWCAgICAg
ICAgICAgPSBOTworCisjIElmIHRoZSBMQVRFWF9CQVRDSE1PREUgdGFnIGlzIHNldCB0byBZRVMs
IGRveHlnZW4gd2lsbCBhZGQgdGhlIFxiYXRjaG1vZGUKKyMgY29tbWFuZCB0byB0aGUgZ2VuZXJh
dGVkIExhVGVYIGZpbGVzLiBUaGlzIHdpbGwgaW5zdHJ1Y3QgTGFUZVggdG8ga2VlcCBydW5uaW5n
CisjIGlmIGVycm9ycyBvY2N1ciwgaW5zdGVhZCBvZiBhc2tpbmcgdGhlIHVzZXIgZm9yIGhlbHAu
IFRoaXMgb3B0aW9uIGlzIGFsc28gdXNlZAorIyB3aGVuIGdlbmVyYXRpbmcgZm9ybXVsYXMgaW4g
SFRNTC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworTEFURVhfQkFUQ0hN
T0RFICAgICAgICA9IE5PCisKKyMgSWYgdGhlIExBVEVYX0hJREVfSU5ESUNFUyB0YWcgaXMgc2V0
IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBub3QgaW5jbHVkZSB0aGUKKyMgaW5kZXggY2hhcHRl
cnMgKHN1Y2ggYXMgRmlsZSBJbmRleCwgQ29tcG91bmQgSW5kZXgsIGV0Yy4pIGluIHRoZSBvdXRw
dXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX0hJREVfSU5E
SUNFUyAgICAgPSBOTworCisjIElmIHRoZSBMQVRFWF9TT1VSQ0VfQ09ERSB0YWcgaXMgc2V0IHRv
IFlFUyB0aGVuIGRveHlnZW4gd2lsbCBpbmNsdWRlIHNvdXJjZQorIyBjb2RlIHdpdGggc3ludGF4
IGhpZ2hsaWdodGluZyBpbiB0aGUgTGFUZVggb3V0cHV0LgorIworIyBOb3RlIHRoYXQgd2hpY2gg
c291cmNlcyBhcmUgc2hvd24gYWxzbyBkZXBlbmRzIG9uIG90aGVyIHNldHRpbmdzIHN1Y2ggYXMK
KyMgU09VUkNFX0JST1dTRVIuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisK
K0xBVEVYX1NPVVJDRV9DT0RFICAgICAgPSBOTworCisjIFRoZSBMQVRFWF9CSUJfU1RZTEUgdGFn
IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHN0eWxlIHRvIHVzZSBmb3IgdGhlCisjIGJpYmxp
b2dyYXBoeSwgZS5nLiBwbGFpbm5hdCwgb3IgaWVlZXRyLiBTZWUKKyMgaHR0cDovL2VuLndpa2lw
ZWRpYS5vcmcvd2lraS9CaWJUZVggYW5kIFxjaXRlIGZvciBtb3JlIGluZm8uCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBwbGFpbi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX0JJQl9TVFlMRSAgICAgICAgPSBw
bGFpbgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxh
dGVkIHRvIHRoZSBSVEYgb3V0cHV0CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgdGhlIEdF
TkVSQVRFX1JURiB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgUlRGIG91
dHB1dC4gVGhlCisjIFJURiBvdXRwdXQgaXMgb3B0aW1pemVkIGZvciBXb3JkIDk3IGFuZCBtYXkg
bm90IGxvb2sgdG9vIHByZXR0eSB3aXRoIG90aGVyIFJURgorIyByZWFkZXJzL2VkaXRvcnMuCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworR0VORVJBVEVfUlRGICAgICAgICAgICA9IE5P
CisKKyMgVGhlIFJURl9PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgUlRG
IGRvY3Mgd2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2
YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0Lgor
IyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IHJ0Zi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQgdG8gWUVTLgorCitSVEZfT1VUUFVUICAgICAg
ICAgICAgID0gcnRmCisKKyMgSWYgdGhlIENPTVBBQ1RfUlRGIHRhZyBpcyBzZXQgdG8gWUVTIGRv
eHlnZW4gZ2VuZXJhdGVzIG1vcmUgY29tcGFjdCBSVEYKKyMgZG9jdW1lbnRzLiBUaGlzIG1heSBi
ZSB1c2VmdWwgZm9yIHNtYWxsIHByb2plY3RzIGFuZCBtYXkgaGVscCB0byBzYXZlIHNvbWUKKyMg
dHJlZXMgaW4gZ2VuZXJhbC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCisKK0NP
TVBBQ1RfUlRGICAgICAgICAgICAgPSBOTworCisjIElmIHRoZSBSVEZfSFlQRVJMSU5LUyB0YWcg
aXMgc2V0IHRvIFlFUywgdGhlIFJURiB0aGF0IGlzIGdlbmVyYXRlZCB3aWxsCisjIGNvbnRhaW4g
aHlwZXJsaW5rIGZpZWxkcy4gVGhlIFJURiBmaWxlIHdpbGwgY29udGFpbiBsaW5rcyAoanVzdCBs
aWtlIHRoZSBIVE1MCisjIG91dHB1dCkgaW5zdGVhZCBvZiBwYWdlIHJlZmVyZW5jZXMuIFRoaXMg
bWFrZXMgdGhlIG91dHB1dCBzdWl0YWJsZSBmb3Igb25saW5lCisjIGJyb3dzaW5nIHVzaW5nIFdv
cmQgb3Igc29tZSBvdGhlciBXb3JkIGNvbXBhdGlibGUgcmVhZGVycyB0aGF0IHN1cHBvcnQgdGhv
c2UKKyMgZmllbGRzLgorIworIyBOb3RlOiBXb3JkUGFkICh3cml0ZSkgYW5kIG90aGVycyBkbyBu
b3Qgc3VwcG9ydCBsaW5rcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCisKK1JU
Rl9IWVBFUkxJTktTICAgICAgICAgPSBOTworCisjIExvYWQgc3R5bGVzaGVldCBkZWZpbml0aW9u
cyBmcm9tIGZpbGUuIFN5bnRheCBpcyBzaW1pbGFyIHRvIGRveHlnZW4ncyBjb25maWcKKyMgZmls
ZSwgaS5lLiBhIHNlcmllcyBvZiBhc3NpZ25tZW50cy4gWW91IG9ubHkgaGF2ZSB0byBwcm92aWRl
IHJlcGxhY2VtZW50cywKKyMgbWlzc2luZyBkZWZpbml0aW9ucyBhcmUgc2V0IHRvIHRoZWlyIGRl
ZmF1bHQgdmFsdWUuCisjCisjIFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBp
bmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlCisjIGRlZmF1bHQgc3R5bGUgc2hlZXQg
dGhhdCBkb3h5Z2VuIG5vcm1hbGx5IHVzZXMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KKworUlRGX1NUWUxFU0hFRVRfRklMRSAg
ICA9CisKKyMgU2V0IG9wdGlvbmFsIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBnZW5lcmF0aW9uIG9m
IGFuIFJURiBkb2N1bWVudC4gU3ludGF4IGlzCisjIHNpbWlsYXIgdG8gZG94eWdlbidzIGNvbmZp
ZyBmaWxlLiBBIHRlbXBsYXRlIGV4dGVuc2lvbnMgZmlsZSBjYW4gYmUgZ2VuZXJhdGVkCisjIHVz
aW5nIGRveHlnZW4gLWUgcnRmIGV4dGVuc2lvbkZpbGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KKworUlRGX0VYVEVOU0lPTlNf
RklMRSAgICA9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25z
IHJlbGF0ZWQgdG8gdGhlIG1hbiBwYWdlIG91dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisj
IElmIHRoZSBHRU5FUkFURV9NQU4gdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVy
YXRlIG1hbiBwYWdlcyBmb3IKKyMgY2xhc3NlcyBhbmQgZmlsZXMuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKworR0VORVJBVEVfTUFOICAgICAgICAgICA9IE5PCisKKyMgVGhlIE1BTl9P
VVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgbWFuIHBhZ2VzIHdpbGwgYmUg
cHV0LiBJZiBhCisjIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVU
X0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBpbiBmcm9udCBvZgorIyBpdC4gQSBkaXJlY3RvcnkgbWFu
MyB3aWxsIGJlIGNyZWF0ZWQgaW5zaWRlIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5CisjIE1B
Tl9PVVRQVVQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogbWFuLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuCisKK01BTl9P
VVRQVVQgICAgICAgICAgICAgPSBtYW4KKworIyBUaGUgTUFOX0VYVEVOU0lPTiB0YWcgZGV0ZXJt
aW5lcyB0aGUgZXh0ZW5zaW9uIHRoYXQgaXMgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorIyBtYW4g
cGFnZXMuIEluIGNhc2UgdGhlIG1hbnVhbCBzZWN0aW9uIGRvZXMgbm90IHN0YXJ0IHdpdGggYSBu
dW1iZXIsIHRoZSBudW1iZXIKKyMgMyBpcyBwcmVwZW5kZWQuIFRoZSBkb3QgKC4pIGF0IHRoZSBi
ZWdpbm5pbmcgb2YgdGhlIE1BTl9FWFRFTlNJT04gdGFnIGlzCisjIG9wdGlvbmFsLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogLjMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9NQU4gaXMgc2V0IHRvIFlFUy4KKworTUFOX0VYVEVOU0lPTiAgICAgICAgICA9IC4z
CisKKyMgSWYgdGhlIE1BTl9MSU5LUyB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgZG94eWdlbiBnZW5l
cmF0ZXMgbWFuIG91dHB1dCwgdGhlbiBpdAorIyB3aWxsIGdlbmVyYXRlIG9uZSBhZGRpdGlvbmFs
IG1hbiBmaWxlIGZvciBlYWNoIGVudGl0eSBkb2N1bWVudGVkIGluIHRoZSByZWFsCisjIG1hbiBw
YWdlKHMpLiBUaGVzZSBhZGRpdGlvbmFsIGZpbGVzIG9ubHkgc291cmNlIHRoZSByZWFsIG1hbiBw
YWdlLCBidXQgd2l0aG91dAorIyB0aGVtIHRoZSBtYW4gY29tbWFuZCB3b3VsZCBiZSB1bmFibGUg
dG8gZmluZCB0aGUgY29ycmVjdCBwYWdlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9NQU4gaXMgc2V0IHRvIFlF
Uy4KKworTUFOX0xJTktTICAgICAgICAgICAgICA9IE5PCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIFhNTCBvdXRwdXQKKyMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgR0VORVJBVEVfWE1MIHRhZyBpcyBzZXQgdG8gWUVT
IGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhbiBYTUwgZmlsZSB0aGF0CisjIGNhcHR1cmVzIHRoZSBz
dHJ1Y3R1cmUgb2YgdGhlIGNvZGUgaW5jbHVkaW5nIGFsbCBkb2N1bWVudGF0aW9uLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0dFTkVSQVRFX1hNTCAgICAgICAgICAgPSBOTworCisj
IFRoZSBYTUxfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIFhNTCBwYWdl
cyB3aWxsIGJlIHB1dC4gSWYgYQorIyByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVl
IG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YKKyMgaXQuCisjIFRo
ZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogeG1sLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNldCB0byBZRVMuCisKK1hNTF9PVVRQVVQgICAgICAgICAg
ICAgPSB4bWwKKworIyBJZiB0aGUgWE1MX1BST0dSQU1MSVNUSU5HIHRhZyBpcyBzZXQgdG8gWUVT
IGRveHlnZW4gd2lsbCBkdW1wIHRoZSBwcm9ncmFtCisjIGxpc3RpbmdzIChpbmNsdWRpbmcgc3lu
dGF4IGhpZ2hsaWdodGluZyBhbmQgY3Jvc3MtcmVmZXJlbmNpbmcgaW5mb3JtYXRpb24pIHRvCisj
IHRoZSBYTUwgb3V0cHV0LiBOb3RlIHRoYXQgZW5hYmxpbmcgdGhpcyB3aWxsIHNpZ25pZmljYW50
bHkgaW5jcmVhc2UgdGhlIHNpemUKKyMgb2YgdGhlIFhNTCBvdXRwdXQuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9YTUwgaXMgc2V0IHRvIFlFUy4KKworWE1MX1BST0dSQU1MSVNUSU5HICAgICA9IFlFUworCisj
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRo
ZSBET0NCT09LIG91dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBHRU5FUkFU
RV9ET0NCT09LIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBEb2Nib29r
IGZpbGVzCisjIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgUERGLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCisKK0dFTkVSQVRFX0RPQ0JPT0sgICAgICAgPSBOTworCisjIFRoZSBE
T0NCT09LX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBEb2Nib29rIHBh
Z2VzIHdpbGwgYmUgcHV0LgorIyBJZiBhIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFs
dWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBpbgorIyBmcm9udCBvZiBpdC4KKyMg
VGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiBkb2Nib29rLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DQk9PSyBpcyBzZXQgdG8gWUVTLgorCitET0NCT09LX09V
VFBVVCAgICAgICAgID0gZG9jYm9vaworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3Vy
YXRpb24gb3B0aW9ucyBmb3IgdGhlIEF1dG9HZW4gRGVmaW5pdGlvbnMgb3V0cHV0CisjLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyMgSWYgdGhlIEdFTkVSQVRFX0FVVE9HRU5fREVGIHRhZyBpcyBzZXQg
dG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhbiBBdXRvR2VuCisjIERlZmluaXRpb25zIChz
ZWUgaHR0cDovL2F1dG9nZW4uc2YubmV0KSBmaWxlIHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVy
ZSBvZgorIyB0aGUgY29kZSBpbmNsdWRpbmcgYWxsIGRvY3VtZW50YXRpb24uIE5vdGUgdGhhdCB0
aGlzIGZlYXR1cmUgaXMgc3RpbGwKKyMgZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRo
ZSBtb21lbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworR0VORVJBVEVfQVVUT0dF
Tl9ERUYgICA9IE5PCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRp
b25zIHJlbGF0ZWQgdG8gdGhlIFBlcmwgbW9kdWxlIG91dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisjIElmIHRoZSBHRU5FUkFURV9QRVJMTU9EIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4g
d2lsbCBnZW5lcmF0ZSBhIFBlcmwgbW9kdWxlCisjIGZpbGUgdGhhdCBjYXB0dXJlcyB0aGUgc3Ry
dWN0dXJlIG9mIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4KKyMKKyMgTm90
ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBzdGlsbCBleHBlcmltZW50YWwgYW5kIGluY29tcGxldGUg
YXQgdGhlIG1vbWVudC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitHRU5FUkFURV9Q
RVJMTU9EICAgICAgID0gTk8KKworIyBJZiB0aGUgUEVSTE1PRF9MQVRFWCB0YWcgaXMgc2V0IHRv
IFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgdGhlIG5lY2Vzc2FyeQorIyBNYWtlZmlsZSBydWxl
cywgUGVybCBzY3JpcHRzIGFuZCBMYVRlWCBjb2RlIHRvIGJlIGFibGUgdG8gZ2VuZXJhdGUgUERG
IGFuZCBEVkkKKyMgb3V0cHV0IGZyb20gdGhlIFBlcmwgbW9kdWxlIG91dHB1dC4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfUEVSTE1PRCBpcyBzZXQgdG8gWUVTLgorCitQRVJMTU9EX0xBVEVYICAgICAgICAgID0g
Tk8KKworIyBJZiB0aGUgUEVSTE1PRF9QUkVUVFkgdGFnIGlzIHNldCB0byBZRVMgdGhlIFBlcmwg
bW9kdWxlIG91dHB1dCB3aWxsIGJlIG5pY2VseQorIyBmb3JtYXR0ZWQgc28gaXQgY2FuIGJlIHBh
cnNlZCBieSBhIGh1bWFuIHJlYWRlci4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8KKyMg
dW5kZXJzdGFuZCB3aGF0IGlzIGdvaW5nIG9uLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhpcyB0
YWcgaXMgc2V0IHRvIE5PIHRoZQorIyBzaXplIG9mIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQgd2ls
bCBiZSBtdWNoIHNtYWxsZXIgYW5kIFBlcmwgd2lsbCBwYXJzZSBpdAorIyBqdXN0IHRoZSBzYW1l
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfUEVSTE1PRCBpcyBzZXQgdG8gWUVTLgorCitQRVJMTU9EX1BSRVRU
WSAgICAgICAgID0gWUVTCisKKyMgVGhlIG5hbWVzIG9mIHRoZSBtYWtlIHZhcmlhYmxlcyBpbiB0
aGUgZ2VuZXJhdGVkIGRveHlydWxlcy5tYWtlIGZpbGUgYXJlCisjIHByZWZpeGVkIHdpdGggdGhl
IHN0cmluZyBjb250YWluZWQgaW4gUEVSTE1PRF9NQUtFVkFSX1BSRUZJWC4gVGhpcyBpcyB1c2Vm
dWwKKyMgc28gZGlmZmVyZW50IGRveHlydWxlcy5tYWtlIGZpbGVzIGluY2x1ZGVkIGJ5IHRoZSBz
YW1lIE1ha2VmaWxlIGRvbid0CisjIG92ZXJ3cml0ZSBlYWNoIG90aGVyJ3MgdmFyaWFibGVzLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUEVSTE1PRCBpcyBzZXQg
dG8gWUVTLgorCitQRVJMTU9EX01BS0VWQVJfUFJFRklYID0KKworIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgcHJlcHJvY2Vzc29yCisj
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgdGhlIEVOQUJMRV9QUkVQUk9DRVNTSU5HIHRhZyBp
cyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBldmFsdWF0ZSBhbGwKKyMgQy1wcmVwcm9jZXNzb3Ig
ZGlyZWN0aXZlcyBmb3VuZCBpbiB0aGUgc291cmNlcyBhbmQgaW5jbHVkZSBmaWxlcy4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworRU5BQkxFX1BSRVBST0NFU1NJTkcgICA9IFlFUwor
CisjIElmIHRoZSBNQUNST19FWFBBTlNJT04gdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxs
IGV4cGFuZCBhbGwgbWFjcm8gbmFtZXMKKyMgaW4gdGhlIHNvdXJjZSBjb2RlLiBJZiBzZXQgdG8g
Tk8gb25seSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB3aWxsIGJlCisjIHBlcmZvcm1lZC4gTWFj
cm8gZXhwYW5zaW9uIGNhbiBiZSBkb25lIGluIGEgY29udHJvbGxlZCB3YXkgYnkgc2V0dGluZwor
IyBFWFBBTkRfT05MWV9QUkVERUYgdG8gWUVTLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBp
cyBzZXQgdG8gWUVTLgorCitNQUNST19FWFBBTlNJT04gICAgICAgID0gWUVTCisKKyMgSWYgdGhl
IEVYUEFORF9PTkxZX1BSRURFRiBhbmQgTUFDUk9fRVhQQU5TSU9OIHRhZ3MgYXJlIGJvdGggc2V0
IHRvIFlFUyB0aGVuCisjIHRoZSBtYWNybyBleHBhbnNpb24gaXMgbGltaXRlZCB0byB0aGUgbWFj
cm9zIHNwZWNpZmllZCB3aXRoIHRoZSBQUkVERUZJTkVEIGFuZAorIyBFWFBBTkRfQVNfREVGSU5F
RCB0YWdzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8gWUVTLgorCitFWFBB
TkRfT05MWV9QUkVERUYgICAgID0gTk8KKworIyBJZiB0aGUgU0VBUkNIX0lOQ0xVREVTIHRhZyBp
cyBzZXQgdG8gWUVTIHRoZSBpbmNsdWRlcyBmaWxlcyBpbiB0aGUKKyMgSU5DTFVERV9QQVRIIHdp
bGwgYmUgc2VhcmNoZWQgaWYgYSAjaW5jbHVkZSBpcyBmb3VuZC4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQ
Uk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCisKK1NFQVJDSF9JTkNMVURFUyAgICAgICAgPSBZRVMK
KworIyBUaGUgSU5DTFVERV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBt
b3JlIGRpcmVjdG9yaWVzIHRoYXQKKyMgY29udGFpbiBpbmNsdWRlIGZpbGVzIHRoYXQgYXJlIG5v
dCBpbnB1dCBmaWxlcyBidXQgc2hvdWxkIGJlIHByb2Nlc3NlZCBieSB0aGUKKyMgcHJlcHJvY2Vz
c29yLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIX0lOQ0xVREVTIGlz
IHNldCB0byBZRVMuCisKK0lOQ0xVREVfUEFUSCAgICAgICAgICAgPSAuLi9pbmNsdWRlCisKKyMg
WW91IGNhbiB1c2UgdGhlIElOQ0xVREVfRklMRV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUg
b3IgbW9yZSB3aWxkY2FyZAorIyBwYXR0ZXJucyAobGlrZSAqLmggYW5kICouaHBwKSB0byBmaWx0
ZXIgb3V0IHRoZSBoZWFkZXItZmlsZXMgaW4gdGhlCisjIGRpcmVjdG9yaWVzLiBJZiBsZWZ0IGJs
YW5rLCB0aGUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggRklMRV9QQVRURVJOUyB3aWxsIGJlCisj
IHVzZWQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VT
U0lORyBpcyBzZXQgdG8gWUVTLgorCitJTkNMVURFX0ZJTEVfUEFUVEVSTlMgID0gKi5oCisKKyMg
VGhlIFBSRURFRklORUQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgbWFj
cm8gbmFtZXMgdGhhdCBhcmUKKyMgZGVmaW5lZCBiZWZvcmUgdGhlIHByZXByb2Nlc3NvciBpcyBz
dGFydGVkIChzaW1pbGFyIHRvIHRoZSAtRCBvcHRpb24gb2YgZS5nLgorIyBnY2MpLiBUaGUgYXJn
dW1lbnQgb2YgdGhlIHRhZyBpcyBhIGxpc3Qgb2YgbWFjcm9zIG9mIHRoZSBmb3JtOiBuYW1lIG9y
CisjIG5hbWU9ZGVmaW5pdGlvbiAobm8gc3BhY2VzKS4gSWYgdGhlIGRlZmluaXRpb24gYW5kIHRo
ZSAiPSIgYXJlIG9taXR0ZWQsICI9MSIKKyMgaXMgYXNzdW1lZC4gVG8gcHJldmVudCBhIG1hY3Jv
IGRlZmluaXRpb24gZnJvbSBiZWluZyB1bmRlZmluZWQgdmlhICN1bmRlZiBvcgorIyByZWN1cnNp
dmVseSBleHBhbmRlZCB1c2UgdGhlIDo9IG9wZXJhdG9yIGluc3RlYWQgb2YgdGhlID0gb3BlcmF0
b3IuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lO
RyBpcyBzZXQgdG8gWUVTLgorCitQUkVERUZJTkVEICAgICAgICAgICAgID0gIl9NU0NfVkVSPTE4
MDAiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBfQ1BQUlRUSSBcCisgICAgICAgICAgICAg
ICAgICAgICAgICAgX1dJTjMyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBKU09OQ1BQX0RP
Q19FWENMVURFX0lNUExFTUVOVEFUSU9OCisKKyMgSWYgdGhlIE1BQ1JPX0VYUEFOU0lPTiBhbmQg
RVhQQU5EX09OTFlfUFJFREVGIHRhZ3MgYXJlIHNldCB0byBZRVMgdGhlbiB0aGlzCisjIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbGlzdCBvZiBtYWNybyBuYW1lcyB0aGF0IHNob3VsZCBi
ZSBleHBhbmRlZC4gVGhlCisjIG1hY3JvIGRlZmluaXRpb24gdGhhdCBpcyBmb3VuZCBpbiB0aGUg
c291cmNlcyB3aWxsIGJlIHVzZWQuIFVzZSB0aGUgUFJFREVGSU5FRAorIyB0YWcgaWYgeW91IHdh
bnQgdG8gdXNlIGEgZGlmZmVyZW50IG1hY3JvIGRlZmluaXRpb24gdGhhdCBvdmVycnVsZXMgdGhl
CisjIGRlZmluaXRpb24gZm91bmQgaW4gdGhlIHNvdXJjZSBjb2RlLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KKwor
RVhQQU5EX0FTX0RFRklORUQgICAgICA9CisKKyMgSWYgdGhlIFNLSVBfRlVOQ1RJT05fTUFDUk9T
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbidzIHByZXByb2Nlc3NvciB3aWxsCisjIHJl
bW92ZSBhbGwgcmVmZXJlbmNlcyB0byBmdW5jdGlvbi1saWtlIG1hY3JvcyB0aGF0IGFyZSBhbG9u
ZSBvbiBhIGxpbmUsIGhhdmUgYW4KKyMgYWxsIHVwcGVyY2FzZSBuYW1lLCBhbmQgZG8gbm90IGVu
ZCB3aXRoIGEgc2VtaWNvbG9uLiBTdWNoIGZ1bmN0aW9uIG1hY3JvcyBhcmUKKyMgdHlwaWNhbGx5
IHVzZWQgZm9yIGJvaWxlci1wbGF0ZSBjb2RlLCBhbmQgd2lsbCBjb25mdXNlIHRoZSBwYXJzZXIg
aWYgbm90CisjIHJlbW92ZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8g
WUVTLgorCitTS0lQX0ZVTkNUSU9OX01BQ1JPUyAgID0gWUVTCisKKyMtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gZXh0ZXJuYWwgcmVmZXJlbmNl
cworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRoZSBUQUdGSUxFUyB0YWcgY2FuIGJlIHVzZWQg
dG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB0YWcgZmlsZXMuIEZvciBlYWNoIHRhZworIyBmaWxlIHRo
ZSBsb2NhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgYWRkZWQu
IFRoZSBmb3JtYXQgb2YKKyMgYSB0YWcgZmlsZSB3aXRob3V0IHRoaXMgbG9jYXRpb24gaXMgYXMg
Zm9sbG93czoKKyMgVEFHRklMRVMgPSBmaWxlMSBmaWxlMiAuLi4KKyMgQWRkaW5nIGxvY2F0aW9u
IGZvciB0aGUgdGFnIGZpbGVzIGlzIGRvbmUgYXMgZm9sbG93czoKKyMgVEFHRklMRVMgPSBmaWxl
MT1sb2MxICJmaWxlMiA9IGxvYzIiIC4uLgorIyB3aGVyZSBsb2MxIGFuZCBsb2MyIGNhbiBiZSBy
ZWxhdGl2ZSBvciBhYnNvbHV0ZSBwYXRocyBvciBVUkxzLiBTZWUgdGhlCisjIHNlY3Rpb24gIkxp
bmtpbmcgdG8gZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJv
dXQgdGhlIHVzZQorIyBvZiB0YWcgZmlsZXMuCisjIE5vdGU6IEVhY2ggdGFnIGZpbGUgbXVzdCBo
YXZlIGFuIHVuaXF1ZSBuYW1lICh3aGVyZSB0aGUgbmFtZSBkb2VzIE5PVCBpbmNsdWRlCisjIHRo
ZSBwYXRoKS4gSWYgYSB0YWcgZmlsZSBpcyBub3QgbG9jYXRlZCBpbiB0aGUgZGlyZWN0b3J5IGlu
IHdoaWNoIGRveHlnZW4gaXMKKyMgcnVuLCB5b3UgbXVzdCBhbHNvIHNwZWNpZnkgdGhlIHBhdGgg
dG8gdGhlIHRhZ2ZpbGUgaGVyZS4KKworVEFHRklMRVMgICAgICAgICAgICAgICA9CisKKyMgV2hl
biBhIGZpbGUgbmFtZSBpcyBzcGVjaWZpZWQgYWZ0ZXIgR0VORVJBVEVfVEFHRklMRSwgZG94eWdl
biB3aWxsIGNyZWF0ZSBhCisjIHRhZyBmaWxlIHRoYXQgaXMgYmFzZWQgb24gdGhlIGlucHV0IGZp
bGVzIGl0IHJlYWRzLiBTZWUgc2VjdGlvbiAiTGlua2luZyB0bworIyBleHRlcm5hbCBkb2N1bWVu
dGF0aW9uIiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNhZ2Ugb2YgdGFnIGZpbGVz
LgorCitHRU5FUkFURV9UQUdGSUxFICAgICAgID0KKworIyBJZiB0aGUgQUxMRVhURVJOQUxTIHRh
ZyBpcyBzZXQgdG8gWUVTIGFsbCBleHRlcm5hbCBjbGFzcyB3aWxsIGJlIGxpc3RlZCBpbiB0aGUK
KyMgY2xhc3MgaW5kZXguIElmIHNldCB0byBOTyBvbmx5IHRoZSBpbmhlcml0ZWQgZXh0ZXJuYWwg
Y2xhc3NlcyB3aWxsIGJlIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitB
TExFWFRFUk5BTFMgICAgICAgICAgID0gTk8KKworIyBJZiB0aGUgRVhURVJOQUxfR1JPVVBTIHRh
ZyBpcyBzZXQgdG8gWUVTIGFsbCBleHRlcm5hbCBncm91cHMgd2lsbCBiZSBsaXN0ZWQgaW4KKyMg
dGhlIG1vZHVsZXMgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgY3VycmVudCBwcm9qZWN0
J3MgZ3JvdXBzIHdpbGwgYmUKKyMgbGlzdGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVT
LgorCitFWFRFUk5BTF9HUk9VUFMgICAgICAgID0gWUVTCisKKyMgSWYgdGhlIEVYVEVSTkFMX1BB
R0VTIHRhZyBpcyBzZXQgdG8gWUVTIGFsbCBleHRlcm5hbCBwYWdlcyB3aWxsIGJlIGxpc3RlZCBp
bgorIyB0aGUgcmVsYXRlZCBwYWdlcyBpbmRleC4gSWYgc2V0IHRvIE5PLCBvbmx5IHRoZSBjdXJy
ZW50IHByb2plY3QncyBwYWdlcyB3aWxsCisjIGJlIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KKworRVhURVJOQUxfUEFHRVMgICAgICAgICA9IFlFUworCisjIFRoZSBQRVJM
X1BBVEggc2hvdWxkIGJlIHRoZSBhYnNvbHV0ZSBwYXRoIGFuZCBuYW1lIG9mIHRoZSBwZXJsIHNj
cmlwdAorIyBpbnRlcnByZXRlciAoaS5lLiB0aGUgcmVzdWx0IG9mICd3aGljaCBwZXJsJykuCisj
IFRoZSBkZWZhdWx0IGZpbGUgKHdpdGggYWJzb2x1dGUgcGF0aCkgaXM6IC91c3IvYmluL3Blcmwu
CisKK1BFUkxfUEFUSCAgICAgICAgICAgICAgPSAvdXNyL2Jpbi9wZXJsCisKKyMtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGRvdCB0b29s
CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgdGhlIENMQVNTX0RJQUdSQU1TIHRhZyBpcyBz
ZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNsYXNzIGRpYWdyYW0KKyMgKGluIEhU
TUwgYW5kIExhVGVYKSBmb3IgY2xhc3NlcyB3aXRoIGJhc2Ugb3Igc3VwZXIgY2xhc3Nlcy4gU2V0
dGluZyB0aGUgdGFnIHRvCisjIE5PIHR1cm5zIHRoZSBkaWFncmFtcyBvZmYuIE5vdGUgdGhhdCB0
aGlzIG9wdGlvbiBhbHNvIHdvcmtzIHdpdGggSEFWRV9ET1QKKyMgZGlzYWJsZWQsIGJ1dCBpdCBp
cyByZWNvbW1lbmRlZCB0byBpbnN0YWxsIGFuZCB1c2UgZG90LCBzaW5jZSBpdCB5aWVsZHMgbW9y
ZQorIyBwb3dlcmZ1bCBncmFwaHMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0NM
QVNTX0RJQUdSQU1TICAgICAgICAgPSBOTworCisjIFlvdSBjYW4gZGVmaW5lIG1lc3NhZ2Ugc2Vx
dWVuY2UgY2hhcnRzIHdpdGhpbiBkb3h5Z2VuIGNvbW1lbnRzIHVzaW5nIHRoZSBcbXNjCisjIGNv
bW1hbmQuIERveHlnZW4gd2lsbCB0aGVuIHJ1biB0aGUgbXNjZ2VuIHRvb2wgKHNlZToKKyMgaHR0
cDovL3d3dy5tY3Rlcm5hbi5tZS51ay9tc2NnZW4vKSkgdG8gcHJvZHVjZSB0aGUgY2hhcnQgYW5k
IGluc2VydCBpdCBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbi4gVGhlIE1TQ0dFTl9QQVRIIHRhZyBh
bGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSB3aGVyZQorIyB0aGUgbXNjZ2VuIHRv
b2wgcmVzaWRlcy4gSWYgbGVmdCBlbXB0eSB0aGUgdG9vbCBpcyBhc3N1bWVkIHRvIGJlIGZvdW5k
IGluIHRoZQorIyBkZWZhdWx0IHNlYXJjaCBwYXRoLgorCitNU0NHRU5fUEFUSCAgICAgICAgICAg
ID0KKworIyBJZiBzZXQgdG8gWUVTLCB0aGUgaW5oZXJpdGFuY2UgYW5kIGNvbGxhYm9yYXRpb24g
Z3JhcGhzIHdpbGwgaGlkZSBpbmhlcml0YW5jZQorIyBhbmQgdXNhZ2UgcmVsYXRpb25zIGlmIHRo
ZSB0YXJnZXQgaXMgdW5kb2N1bWVudGVkIG9yIGlzIG5vdCBhIGNsYXNzLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLgorCitISURFX1VORE9DX1JFTEFUSU9OUyAgID0gTk8KKworIyBJZiB5
b3Ugc2V0IHRoZSBIQVZFX0RPVCB0YWcgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGFzc3VtZSB0
aGUgZG90IHRvb2wgaXMKKyMgYXZhaWxhYmxlIGZyb20gdGhlIHBhdGguIFRoaXMgdG9vbCBpcyBw
YXJ0IG9mIEdyYXBodml6IChzZWU6CisjIGh0dHA6Ly93d3cuZ3JhcGh2aXoub3JnLyksIGEgZ3Jh
cGggdmlzdWFsaXphdGlvbiB0b29sa2l0IGZyb20gQVQmVCBhbmQgTHVjZW50CisjIEJlbGwgTGFi
cy4gVGhlIG90aGVyIG9wdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGhhdmUgbm8gZWZmZWN0IGlmIHRo
aXMgb3B0aW9uIGlzCisjIHNldCB0byBOTworIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisK
K0hBVkVfRE9UICAgICAgICAgICAgICAgPSAlSEFWRV9ET1QlCisKKyMgVGhlIERPVF9OVU1fVEhS
RUFEUyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBkb3QgaW52b2NhdGlvbnMgZG94eWdlbiBpcyBh
bGxvd2VkCisjIHRvIHJ1biBpbiBwYXJhbGxlbC4gV2hlbiBzZXQgdG8gMCBkb3h5Z2VuIHdpbGwg
YmFzZSB0aGlzIG9uIHRoZSBudW1iZXIgb2YKKyMgcHJvY2Vzc29ycyBhdmFpbGFibGUgaW4gdGhl
IHN5c3RlbS4gWW91IGNhbiBzZXQgaXQgZXhwbGljaXRseSB0byBhIHZhbHVlCisjIGxhcmdlciB0
aGFuIDAgdG8gZ2V0IGNvbnRyb2wgb3ZlciB0aGUgYmFsYW5jZSBiZXR3ZWVuIENQVSBsb2FkIGFu
ZCBwcm9jZXNzaW5nCisjIHNwZWVkLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVl
OiAzMiwgZGVmYXVsdCB2YWx1ZTogMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9OVU1fVEhSRUFEUyAgICAgICAgPSAwCisK
KyMgV2hlbiB5b3Ugd2FudCBhIGRpZmZlcmVudGx5IGxvb2tpbmcgZm9udCBuIHRoZSBkb3QgZmls
ZXMgdGhhdCBkb3h5Z2VuCisjIGdlbmVyYXRlcyB5b3UgY2FuIHNwZWNpZnkgdGhlIGZvbnQgbmFt
ZSB1c2luZyBET1RfRk9OVE5BTUUuIFlvdSBuZWVkIHRvIG1ha2UKKyMgc3VyZSBkb3QgaXMgYWJs
ZSB0byBmaW5kIHRoZSBmb250LCB3aGljaCBjYW4gYmUgZG9uZSBieSBwdXR0aW5nIGl0IGluIGEK
KyMgc3RhbmRhcmQgbG9jYXRpb24gb3IgYnkgc2V0dGluZyB0aGUgRE9URk9OVFBBVEggZW52aXJv
bm1lbnQgdmFyaWFibGUgb3IgYnkKKyMgc2V0dGluZyBET1RfRk9OVFBBVEggdG8gdGhlIGRpcmVj
dG9yeSBjb250YWluaW5nIHRoZSBmb250LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogSGVsdmV0
aWNhLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRv
IFlFUy4KKworRE9UX0ZPTlROQU1FICAgICAgICAgICA9IEZyZWVTYW5zCisKKyMgVGhlIERPVF9G
T05UU0laRSB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBzaXplIChpbiBwb2ludHMpIG9mIHRo
ZSBmb250IG9mCisjIGRvdCBncmFwaHMuCisjIE1pbmltdW0gdmFsdWU6IDQsIG1heGltdW0gdmFs
dWU6IDI0LCBkZWZhdWx0IHZhbHVlOiAxMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9GT05UU0laRSAgICAgICAgICAgPSAx
MAorCisjIEJ5IGRlZmF1bHQgZG94eWdlbiB3aWxsIHRlbGwgZG90IHRvIHVzZSB0aGUgZGVmYXVs
dCBmb250IGFzIHNwZWNpZmllZCB3aXRoCisjIERPVF9GT05UTkFNRS4gSWYgeW91IHNwZWNpZnkg
YSBkaWZmZXJlbnQgZm9udCB1c2luZyBET1RfRk9OVE5BTUUgeW91IGNhbiBzZXQKKyMgdGhlIHBh
dGggd2hlcmUgZG90IGNhbiBmaW5kIGl0IHVzaW5nIHRoaXMgdGFnLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworRE9UX0ZPTlRQQVRI
ICAgICAgICAgICA9CisKKyMgSWYgdGhlIENMQVNTX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yCisjIGVhY2ggZG9jdW1lbnRlZCBj
bGFzcyBzaG93aW5nIHRoZSBkaXJlY3QgYW5kIGluZGlyZWN0IGluaGVyaXRhbmNlIHJlbGF0aW9u
cy4KKyMgU2V0dGluZyB0aGlzIHRhZyB0byBZRVMgd2lsbCBmb3JjZSB0aGUgQ0xBU1NfRElBR1JB
TVMgdGFnIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworQ0xBU1NfR1JB
UEggICAgICAgICAgICA9IFlFUworCisjIElmIHRoZSBDT0xMQUJPUkFUSU9OX0dSQVBIIHRhZyBp
cyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKKyMgZ3JhcGggZm9yIGVh
Y2ggZG9jdW1lbnRlZCBjbGFzcyBzaG93aW5nIHRoZSBkaXJlY3QgYW5kIGluZGlyZWN0IGltcGxl
bWVudGF0aW9uCisjIGRlcGVuZGVuY2llcyAoaW5oZXJpdGFuY2UsIGNvbnRhaW5tZW50LCBhbmQg
Y2xhc3MgcmVmZXJlbmNlcyB2YXJpYWJsZXMpIG9mIHRoZQorIyBjbGFzcyB3aXRoIG90aGVyIGRv
Y3VtZW50ZWQgY2xhc3Nlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0NPTExB
Qk9SQVRJT05fR1JBUEggICAgPSBZRVMKKworIyBJZiB0aGUgR1JPVVBfR1JBUEhTIHRhZyBpcyBz
ZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yCisjIGdyb3Vw
cywgc2hvd2luZyB0aGUgZGlyZWN0IGdyb3VwcyBkZXBlbmRlbmNpZXMuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RP
VCBpcyBzZXQgdG8gWUVTLgorCitHUk9VUF9HUkFQSFMgICAgICAgICAgID0gWUVTCisKKyMgSWYg
dGhlIFVNTF9MT09LIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBpbmhl
cml0YW5jZSBhbmQKKyMgY29sbGFib3JhdGlvbiBkaWFncmFtcyBpbiBhIHN0eWxlIHNpbWlsYXIg
dG8gdGhlIE9NRydzIFVuaWZpZWQgTW9kZWxpbmcKKyMgTGFuZ3VhZ2UuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9U
IGlzIHNldCB0byBZRVMuCisKK1VNTF9MT09LICAgICAgICAgICAgICAgPSAlVU1MX0xPT0slCisK
KyMgSWYgdGhlIFVNTF9MT09LIHRhZyBpcyBlbmFibGVkLCB0aGUgZmllbGRzIGFuZCBtZXRob2Rz
IGFyZSBzaG93biBpbnNpZGUgdGhlCisjIGNsYXNzIG5vZGUuIElmIHRoZXJlIGFyZSBtYW55IGZp
ZWxkcyBvciBtZXRob2RzIGFuZCBtYW55IG5vZGVzIHRoZSBncmFwaCBtYXkKKyMgYmVjb21lIHRv
byBiaWcgdG8gYmUgdXNlZnVsLiBUaGUgVU1MX0xJTUlUX05VTV9GSUVMRFMgdGhyZXNob2xkIGxp
bWl0cyB0aGUKKyMgbnVtYmVyIG9mIGl0ZW1zIGZvciBlYWNoIHR5cGUgdG8gbWFrZSB0aGUgc2l6
ZSBtb3JlIG1hbmFnZWFibGUuIFNldCB0aGlzIHRvIDAKKyMgZm9yIG5vIGxpbWl0LiBOb3RlIHRo
YXQgdGhlIHRocmVzaG9sZCBtYXkgYmUgZXhjZWVkZWQgYnkgNTAlIGJlZm9yZSB0aGUgbGltaXQK
KyMgaXMgZW5mb3JjZWQuIFNvIHdoZW4geW91IHNldCB0aGUgdGhyZXNob2xkIHRvIDEwLCB1cCB0
byAxNSBmaWVsZHMgbWF5IGFwcGVhciwKKyMgYnV0IGlmIHRoZSBudW1iZXIgZXhjZWVkcyAxNSwg
dGhlIHRvdGFsIGFtb3VudCBvZiBmaWVsZHMgc2hvd24gaXMgbGltaXRlZCB0bworIyAxMC4KKyMg
TWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTAwLCBkZWZhdWx0IHZhbHVlOiAxMC4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CisKK1VNTF9MSU1JVF9OVU1fRklFTERTICAgPSAxMAorCisjIElmIHRoZSBURU1QTEFURV9SRUxB
VElPTlMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgaW5oZXJpdGFuY2UgYW5kCisjIGNvbGxh
Ym9yYXRpb24gZ3JhcGhzIHdpbGwgc2hvdyB0aGUgcmVsYXRpb25zIGJldHdlZW4gdGVtcGxhdGVz
IGFuZCB0aGVpcgorIyBpbnN0YW5jZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisK
K1RFTVBMQVRFX1JFTEFUSU9OUyAgICAgPSBZRVMKKworIyBJZiB0aGUgSU5DTFVERV9HUkFQSCwg
RU5BQkxFX1BSRVBST0NFU1NJTkcgYW5kIFNFQVJDSF9JTkNMVURFUyB0YWdzIGFyZSBzZXQgdG8K
KyMgWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yIGVhY2ggZG9jdW1l
bnRlZCBmaWxlIHNob3dpbmcgdGhlCisjIGRpcmVjdCBhbmQgaW5kaXJlY3QgaW5jbHVkZSBkZXBl
bmRlbmNpZXMgb2YgdGhlIGZpbGUgd2l0aCBvdGhlciBkb2N1bWVudGVkCisjIGZpbGVzLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworSU5DTFVERV9HUkFQSCAgICAgICAgICA9IFlF
UworCisjIElmIHRoZSBJTkNMVURFRF9CWV9HUkFQSCwgRU5BQkxFX1BSRVBST0NFU1NJTkcgYW5k
IFNFQVJDSF9JTkNMVURFUyB0YWdzIGFyZQorIyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxs
IGdlbmVyYXRlIGEgZ3JhcGggZm9yIGVhY2ggZG9jdW1lbnRlZCBmaWxlIHNob3dpbmcKKyMgdGhl
IGRpcmVjdCBhbmQgaW5kaXJlY3QgaW5jbHVkZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGZpbGUgd2l0
aCBvdGhlciBkb2N1bWVudGVkCisjIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVT
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlF
Uy4KKworSU5DTFVERURfQllfR1JBUEggICAgICA9IFlFUworCisjIElmIHRoZSBDQUxMX0dSQVBI
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgY2FsbAorIyBk
ZXBlbmRlbmN5IGdyYXBoIGZvciBldmVyeSBnbG9iYWwgZnVuY3Rpb24gb3IgY2xhc3MgbWV0aG9k
LgorIworIyBOb3RlIHRoYXQgZW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBzaWduaWZpY2FudGx5
IGluY3JlYXNlIHRoZSB0aW1lIG9mIGEgcnVuLgorIyBTbyBpbiBtb3N0IGNhc2VzIGl0IHdpbGwg
YmUgYmV0dGVyIHRvIGVuYWJsZSBjYWxsIGdyYXBocyBmb3Igc2VsZWN0ZWQKKyMgZnVuY3Rpb25z
IG9ubHkgdXNpbmcgdGhlIFxjYWxsZ3JhcGggY29tbWFuZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0
IHRvIFlFUy4KKworQ0FMTF9HUkFQSCAgICAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIENBTExF
Ul9HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNh
bGxlcgorIyBkZXBlbmRlbmN5IGdyYXBoIGZvciBldmVyeSBnbG9iYWwgZnVuY3Rpb24gb3IgY2xh
c3MgbWV0aG9kLgorIworIyBOb3RlIHRoYXQgZW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBzaWdu
aWZpY2FudGx5IGluY3JlYXNlIHRoZSB0aW1lIG9mIGEgcnVuLgorIyBTbyBpbiBtb3N0IGNhc2Vz
IGl0IHdpbGwgYmUgYmV0dGVyIHRvIGVuYWJsZSBjYWxsZXIgZ3JhcGhzIGZvciBzZWxlY3RlZAor
IyBmdW5jdGlvbnMgb25seSB1c2luZyB0aGUgXGNhbGxlcmdyYXBoIGNvbW1hbmQuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhB
VkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0NBTExFUl9HUkFQSCAgICAgICAgICAgPSBZRVMKKwor
IyBJZiB0aGUgR1JBUEhJQ0FMX0hJRVJBUkNIWSB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHln
ZW4gd2lsbCBncmFwaGljYWwKKyMgaGllcmFyY2h5IG9mIGFsbCBjbGFzc2VzIGluc3RlYWQgb2Yg
YSB0ZXh0dWFsIG9uZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0dSQVBISUNB
TF9ISUVSQVJDSFkgICAgPSBZRVMKKworIyBJZiB0aGUgRElSRUNUT1JZX0dSQVBIIHRhZyBpcyBz
ZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNob3cgdGhlCisjIGRlcGVuZGVuY2llcyBhIGRp
cmVjdG9yeSBoYXMgb24gb3RoZXIgZGlyZWN0b3JpZXMgaW4gYSBncmFwaGljYWwgd2F5LiBUaGUK
KyMgZGVwZW5kZW5jeSByZWxhdGlvbnMgYXJlIGRldGVybWluZWQgYnkgdGhlICNpbmNsdWRlIHJl
bGF0aW9ucyBiZXR3ZWVuIHRoZQorIyBmaWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBI
QVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitESVJFQ1RPUllfR1JBUEggICAgICAgID0gWUVTCisK
KyMgVGhlIERPVF9JTUFHRV9GT1JNQVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgaW1hZ2Ug
Zm9ybWF0IG9mIHRoZSBpbWFnZXMKKyMgZ2VuZXJhdGVkIGJ5IGRvdC4KKyMgTm90ZTogSWYgeW91
IGNob29zZSBzdmcgeW91IG5lZWQgdG8gc2V0IEhUTUxfRklMRV9FWFRFTlNJT04gdG8geGh0bWwg
aW4gb3JkZXIKKyMgdG8gbWFrZSB0aGUgU1ZHIGZpbGVzIHZpc2libGUgaW4gSUUgOSsgKG90aGVy
IGJyb3dzZXJzIGRvIG5vdCBoYXZlIHRoaXMKKyMgcmVxdWlyZW1lbnQpLgorIyBQb3NzaWJsZSB2
YWx1ZXMgYXJlOiBwbmcsIGpwZywgZ2lmIGFuZCBzdmcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBwbmcuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQg
dG8gWUVTLgorCitET1RfSU1BR0VfRk9STUFUICAgICAgID0gcG5nCisKKyMgSWYgRE9UX0lNQUdF
X0ZPUk1BVCBpcyBzZXQgdG8gc3ZnLCB0aGVuIHRoaXMgb3B0aW9uIGNhbiBiZSBzZXQgdG8gWUVT
IHRvCisjIGVuYWJsZSBnZW5lcmF0aW9uIG9mIGludGVyYWN0aXZlIFNWRyBpbWFnZXMgdGhhdCBh
bGxvdyB6b29taW5nIGFuZCBwYW5uaW5nLgorIworIyBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyBh
IG1vZGVybiBicm93c2VyIG90aGVyIHRoYW4gSW50ZXJuZXQgRXhwbG9yZXIuIFRlc3RlZAorIyBh
bmQgd29ya2luZyBhcmUgRmlyZWZveCwgQ2hyb21lLCBTYWZhcmksIGFuZCBPcGVyYS4KKyMgTm90
ZTogRm9yIElFIDkrIHlvdSBuZWVkIHRvIHNldCBIVE1MX0ZJTEVfRVhURU5TSU9OIHRvIHhodG1s
IGluIG9yZGVyIHRvIG1ha2UKKyMgdGhlIFNWRyBmaWxlcyB2aXNpYmxlLiBPbGRlciB2ZXJzaW9u
cyBvZiBJRSBkbyBub3QgaGF2ZSBTVkcgc3VwcG9ydC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRv
IFlFUy4KKworSU5URVJBQ1RJVkVfU1ZHICAgICAgICA9IE5PCisKKyMgVGhlIERPVF9QQVRIIHRh
ZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBwYXRoIHdoZXJlIHRoZSBkb3QgdG9vbCBjYW4g
YmUKKyMgZm91bmQuIElmIGxlZnQgYmxhbmssIGl0IGlzIGFzc3VtZWQgdGhlIGRvdCB0b29sIGNh
biBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9QQVRIICAgICAgICAgICAgICAgPSAlRE9U
X1BBVEglCisKKyMgVGhlIERPVEZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBv
bmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0CisjIGNvbnRhaW4gZG90IGZpbGVzIHRoYXQgYXJl
IGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIFxkb3RmaWxlCisjIGNvbW1h
bmQpLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRv
IFlFUy4KKworRE9URklMRV9ESVJTICAgICAgICAgICA9CisKKyMgVGhlIE1TQ0ZJTEVfRElSUyB0
YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0Cisj
IGNvbnRhaW4gbXNjIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9u
IChzZWUgdGhlIFxtc2NmaWxlCisjIGNvbW1hbmQpLgorCitNU0NGSUxFX0RJUlMgICAgICAgICAg
ID0KKworIyBUaGUgRE9UX0dSQVBIX01BWF9OT0RFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRo
ZSBtYXhpbXVtIG51bWJlciBvZiBub2RlcworIyB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIGdy
YXBoLiBJZiB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIGEgZ3JhcGggYmVjb21lcworIyBsYXJnZXIg
dGhhbiB0aGlzIHZhbHVlLCBkb3h5Z2VuIHdpbGwgdHJ1bmNhdGUgdGhlIGdyYXBoLCB3aGljaCBp
cyB2aXN1YWxpemVkCisjIGJ5IHJlcHJlc2VudGluZyBhIG5vZGUgYXMgYSByZWQgYm94LiBOb3Rl
IHRoYXQgZG94eWdlbiBpZiB0aGUgbnVtYmVyIG9mIGRpcmVjdAorIyBjaGlsZHJlbiBvZiB0aGUg
cm9vdCBub2RlIGluIGEgZ3JhcGggaXMgYWxyZWFkeSBsYXJnZXIgdGhhbgorIyBET1RfR1JBUEhf
TUFYX05PREVTIHRoZW4gdGhlIGdyYXBoIHdpbGwgbm90IGJlIHNob3duIGF0IGFsbC4gQWxzbyBu
b3RlIHRoYXQKKyMgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVydGhlciByZXN0cmljdGVk
IGJ5IE1BWF9ET1RfR1JBUEhfREVQVEguCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFs
dWU6IDEwMDAwLCBkZWZhdWx0IHZhbHVlOiA1MC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9HUkFQSF9NQVhfTk9ERVMgICAg
PSA1MAorCisjIFRoZSBNQVhfRE9UX0dSQVBIX0RFUFRIIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQg
dGhlIG1heGltdW0gZGVwdGggb2YgdGhlIGdyYXBocworIyBnZW5lcmF0ZWQgYnkgZG90LiBBIGRl
cHRoIHZhbHVlIG9mIDMgbWVhbnMgdGhhdCBvbmx5IG5vZGVzIHJlYWNoYWJsZSBmcm9tIHRoZQor
IyByb290IGJ5IGZvbGxvd2luZyBhIHBhdGggdmlhIGF0IG1vc3QgMyBlZGdlcyB3aWxsIGJlIHNo
b3duLiBOb2RlcyB0aGF0IGxheQorIyBmdXJ0aGVyIGZyb20gdGhlIHJvb3Qgbm9kZSB3aWxsIGJl
IG9taXR0ZWQuIE5vdGUgdGhhdCBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIDEKKyMgb3IgMiBtYXkg
Z3JlYXRseSByZWR1Y2UgdGhlIGNvbXB1dGF0aW9uIHRpbWUgbmVlZGVkIGZvciBsYXJnZSBjb2Rl
IGJhc2VzLiBBbHNvCisjIG5vdGUgdGhhdCB0aGUgc2l6ZSBvZiBhIGdyYXBoIGNhbiBiZSBmdXJ0
aGVyIHJlc3RyaWN0ZWQgYnkKKyMgRE9UX0dSQVBIX01BWF9OT0RFUy4gVXNpbmcgYSBkZXB0aCBv
ZiAwIG1lYW5zIG5vIGRlcHRoIHJlc3RyaWN0aW9uLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhp
bXVtIHZhbHVlOiAxMDAwLCBkZWZhdWx0IHZhbHVlOiAwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworTUFYX0RPVF9HUkFQSF9ERVBU
SCAgICA9IDEwMDAKKworIyBTZXQgdGhlIERPVF9UUkFOU1BBUkVOVCB0YWcgdG8gWUVTIHRvIGdl
bmVyYXRlIGltYWdlcyB3aXRoIGEgdHJhbnNwYXJlbnQKKyMgYmFja2dyb3VuZC4gVGhpcyBpcyBk
aXNhYmxlZCBieSBkZWZhdWx0LCBiZWNhdXNlIGRvdCBvbiBXaW5kb3dzIGRvZXMgbm90IHNlZW0K
KyMgdG8gc3VwcG9ydCB0aGlzIG91dCBvZiB0aGUgYm94LgorIworIyBXYXJuaW5nOiBEZXBlbmRp
bmcgb24gdGhlIHBsYXRmb3JtIHVzZWQsIGVuYWJsaW5nIHRoaXMgb3B0aW9uIG1heSBsZWFkIHRv
CisjIGJhZGx5IGFudGktYWxpYXNlZCBsYWJlbHMgb24gdGhlIGVkZ2VzIG9mIGEgZ3JhcGggKGku
ZS4gdGhleSBiZWNvbWUgaGFyZCB0bworIyByZWFkKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRv
IFlFUy4KKworRE9UX1RSQU5TUEFSRU5UICAgICAgICA9IE5PCisKKyMgU2V0IHRoZSBET1RfTVVM
VElfVEFSR0VUUyB0YWcgdG8gWUVTIGFsbG93IGRvdCB0byBnZW5lcmF0ZSBtdWx0aXBsZSBvdXRw
dXQKKyMgZmlsZXMgaW4gb25lIHJ1biAoaS5lLiBtdWx0aXBsZSAtbyBhbmQgLVQgb3B0aW9ucyBv
biB0aGUgY29tbWFuZCBsaW5lKS4gVGhpcworIyBtYWtlcyBkb3QgcnVuIGZhc3RlciwgYnV0IHNp
bmNlIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgZG90ICg+MS44LjEwKSBzdXBwb3J0CisjIHRoaXMs
IHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBz
ZXQgdG8gWUVTLgorCitET1RfTVVMVElfVEFSR0VUUyAgICAgID0gWUVTCisKKyMgSWYgdGhlIEdF
TkVSQVRFX0xFR0VORCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBs
ZWdlbmQgcGFnZQorIyBleHBsYWluaW5nIHRoZSBtZWFuaW5nIG9mIHRoZSB2YXJpb3VzIGJveGVz
IGFuZCBhcnJvd3MgaW4gdGhlIGRvdCBnZW5lcmF0ZWQKKyMgZ3JhcGhzLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9E
T1QgaXMgc2V0IHRvIFlFUy4KKworR0VORVJBVEVfTEVHRU5EICAgICAgICA9IFlFUworCisjIElm
IHRoZSBET1RfQ0xFQU5VUCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgcmVtb3ZlIHRo
ZSBpbnRlcm1lZGlhdGUgZG90CisjIGZpbGVzIHRoYXQgYXJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhl
IHZhcmlvdXMgZ3JhcGhzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworRE9UX0NM
RUFOVVAgICAgICAgICAgICA9IFlFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb3h5YnVpbGQucHkgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2RveHlidWlsZC5weQppbmRleCAwM2FkNjhkZjAyNzc2MzhhMTMxNjk2YjE1YmMxODI3ZDFm
OGExNWE3Li44NjJjMWY0M2ZmNGIwZDYzNDkyMWRhNGY3OTAzYWIzYzIyMDJkODcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL2RveHlidWlsZC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RveHlidWlsZC5weQpAQCAtMSwxMiAr
MSwyNyBAQAogIiIiU2NyaXB0IHRvIGdlbmVyYXRlIGRveHlnZW4gZG9jdW1lbnRhdGlvbi4KICIi
IgotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKK2Zyb20gZGV2dG9vbHMgaW1wb3J0IHRhcmJhbGwK
K2Zyb20gY29udGV4dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIKK2ltcG9ydCBzdWJwcm9jZXNz
CitpbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQgcmUKIGltcG9ydCBvcwotaW1wb3J0IG9zLnBhdGgK
IGltcG9ydCBzeXMKIGltcG9ydCBzaHV0aWwKLWZyb20gZGV2dG9vbHMgaW1wb3J0IHRhcmJhbGwK
KworQGNvbnRleHRtYW5hZ2VyCitkZWYgY2QobmV3ZGlyKToKKyAgICAiIiIKKyAgICBodHRwOi8v
c3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzMTY4NC9ob3ctZG8taS1jZC1pbi1weXRob24K
KyAgICAiIiIKKyAgICBwcmV2ZGlyID0gb3MuZ2V0Y3dkKCkKKyAgICBvcy5jaGRpcihuZXdkaXIp
CisgICAgdHJ5OgorICAgICAgICB5aWVsZAorICAgIGZpbmFsbHk6CisgICAgICAgIG9zLmNoZGly
KHByZXZkaXIpCiAKIGRlZiBmaW5kX3Byb2dyYW0oKmZpbGVuYW1lcyk6CiAgICAgIiIiZmluZCBh
IHByb2dyYW0gaW4gZm9sZGVycyBwYXRoX2xzdCwgYW5kIHNldHMgZW52W3Zhcl0KQEAgLTE0LDkg
KzI5LDkgQEAgZGVmIGZpbmRfcHJvZ3JhbSgqZmlsZW5hbWVzKToKICAgICBAcmV0dXJuOiB0aGUg
ZnVsbCBwYXRoIG9mIHRoZSBmaWxlbmFtZSBpZiBmb3VuZCwgb3IgJycgaWYgZmlsZW5hbWUgY291
bGQgbm90IGJlIGZvdW5kCiAiIiIKICAgICBwYXRocyA9IG9zLmVudmlyb24uZ2V0KCdQQVRIJywg
JycpLnNwbGl0KG9zLnBhdGhzZXApCi0gICAgc3VmZml4ZXMgPSAoJ3dpbjMyJyBpbiBzeXMucGxh
dGZvcm0gKSBhbmQgJy5leGUgLmNvbSAuYmF0IC5jbWQnIG9yICcnCisgICAgc3VmZml4ZXMgPSAo
J3dpbjMyJyBpbiBzeXMucGxhdGZvcm0pIGFuZCAnLmV4ZSAuY29tIC5iYXQgLmNtZCcgb3IgJycK
ICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgotICAgICAgICBmb3IgbmFtZSBpbiBbZmls
ZW5hbWUrZXh0IGZvciBleHQgaW4gc3VmZml4ZXMuc3BsaXQoKV06CisgICAgICAgIGZvciBuYW1l
IGluIFtmaWxlbmFtZStleHQgZm9yIGV4dCBpbiBzdWZmaXhlcy5zcGxpdCgnICcpXToKICAgICAg
ICAgICAgIGZvciBkaXJlY3RvcnkgaW4gcGF0aHM6CiAgICAgICAgICAgICAgICAgZnVsbF9wYXRo
ID0gb3MucGF0aC5qb2luKGRpcmVjdG9yeSwgbmFtZSkKICAgICAgICAgICAgICAgICBpZiBvcy5w
YXRoLmlzZmlsZShmdWxsX3BhdGgpOgpAQCAtMjgsNTMgKzQzLDU2IEBAIGRlZiBkb19zdWJzdF9p
bl9maWxlKHRhcmdldGZpbGUsIHNvdXJjZWZpbGUsIGRpY3QpOgogICAgIEZvciBleGFtcGxlLCBp
ZiBkaWN0IGlzIHsnJVZFUlNJT04lJzogJzEuMjM0NScsICclQkFTRSUnOiAnTXlQcm9nJ30sCiAg
ICAgdGhlbiBhbGwgaW5zdGFuY2VzIG9mICVWRVJTSU9OJSBpbiB0aGUgZmlsZSB3aWxsIGJlIHJl
cGxhY2VkIHdpdGggMS4yMzQ1IGV0Yy4KICAgICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIGYgPSBv
cGVuKHNvdXJjZWZpbGUsICdyYicpCisgICAgd2l0aCBvcGVuKHNvdXJjZWZpbGUsICdyJykgYXMg
ZjoKICAgICAgICAgY29udGVudHMgPSBmLnJlYWQoKQotICAgICAgICBmLmNsb3NlKCkKLSAgICBl
eGNlcHQ6Ci0gICAgICAgIHByaW50ICJDYW4ndCByZWFkIHNvdXJjZSBmaWxlICVzIiVzb3VyY2Vm
aWxlCi0gICAgICAgIHJhaXNlCi0gICAgZm9yIChrLHYpIGluIGRpY3QuaXRlbXMoKToKKyAgICBm
b3IgKGssdikgaW4gbGlzdChkaWN0Lml0ZW1zKCkpOgogICAgICAgICB2ID0gdi5yZXBsYWNlKCdc
XCcsJ1xcXFwnKSAKICAgICAgICAgY29udGVudHMgPSByZS5zdWIoaywgdiwgY29udGVudHMpCi0g
ICAgdHJ5OgotICAgICAgICBmID0gb3Blbih0YXJnZXRmaWxlLCAnd2InKQorICAgIHdpdGggb3Bl
bih0YXJnZXRmaWxlLCAndycpIGFzIGY6CiAgICAgICAgIGYud3JpdGUoY29udGVudHMpCi0gICAg
ICAgIGYuY2xvc2UoKQorCitkZWYgZ2V0c3RhdHVzb3V0cHV0KGNtZCk6CisgICAgIiIiY21kIGlz
IGEgbGlzdC4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNz
LlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RE
T1VUKQorICAgICAgICBvdXRwdXQsIF8gPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICAgICAg
c3RhdHVzID0gcHJvY2Vzcy5yZXR1cm5jb2RlCiAgICAgZXhjZXB0OgotICAgICAgICBwcmludCAi
Q2FuJ3Qgd3JpdGUgdGFyZ2V0IGZpbGUgJXMiJXRhcmdldGZpbGUKLSAgICAgICAgcmFpc2UKKyAg
ICAgICAgc3RhdHVzID0gLTEKKyAgICAgICAgb3V0cHV0ID0gdHJhY2ViYWNrLmZvcm1hdF9leGMo
KQorICAgIHJldHVybiBzdGF0dXMsIG91dHB1dAorCitkZWYgcnVuX2NtZChjbWQsIHNpbGVudD1G
YWxzZSk6CisgICAgIiIiUmFpc2UgZXhjZXB0aW9uIG9uIGZhaWx1cmUuCisgICAgIiIiCisgICAg
aW5mbyA9ICdSdW5uaW5nOiAlciBpbiAlcicgJSgnICcuam9pbihjbWQpLCBvcy5nZXRjd2QoKSkK
KyAgICBwcmludChpbmZvKQorICAgIHN5cy5zdGRvdXQuZmx1c2goKQorICAgIGlmIHNpbGVudDoK
KyAgICAgICAgc3RhdHVzLCBvdXRwdXQgPSBnZXRzdGF0dXNvdXRwdXQoY21kKQorICAgIGVsc2U6
CisgICAgICAgIHN0YXR1cywgb3V0cHV0ID0gc3VicHJvY2Vzcy5jYWxsKGNtZCksICcnCisgICAg
aWYgc3RhdHVzOgorICAgICAgICBtc2cgPSAnRXJyb3Igd2hpbGUgJXMgLi4uXG5cdGVycm9yPSVk
LCBvdXRwdXQ9IiIiJXMiIiInICUoaW5mbywgc3RhdHVzLCBvdXRwdXQpCisgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbihtc2cpCisKK2RlZiBhc3NlcnRfaXNfZXhlKHBhdGgpOgorICAgIGlmIG5vdCBw
YXRoOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ3BhdGggaXMgZW1wdHkuJykKKyAgICBpZiBu
b3Qgb3MucGF0aC5pc2ZpbGUocGF0aCk6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXIgaXMg
bm90IGEgZmlsZS4nICVwYXRoKQorICAgIGlmIG5vdCBvcy5hY2Nlc3MocGF0aCwgb3MuWF9PSyk6
CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXIgaXMgbm90IGV4ZWN1dGFibGUgYnkgdGhpcyB1
c2VyLicgJXBhdGgpCiAKIGRlZiBydW5fZG94eWdlbihkb3h5Z2VuX3BhdGgsIGNvbmZpZ19maWxl
LCB3b3JraW5nX2RpciwgaXNfc2lsZW50KToKLSAgICBjb25maWdfZmlsZSA9IG9zLnBhdGguYWJz
cGF0aCggY29uZmlnX2ZpbGUgKQotICAgIGRveHlnZW5fcGF0aCA9IGRveHlnZW5fcGF0aAotICAg
IG9sZF9jd2QgPSBvcy5nZXRjd2QoKQotICAgIHRyeToKLSAgICAgICAgb3MuY2hkaXIoIHdvcmtp
bmdfZGlyICkKKyAgICBhc3NlcnRfaXNfZXhlKGRveHlnZW5fcGF0aCkKKyAgICBjb25maWdfZmls
ZSA9IG9zLnBhdGguYWJzcGF0aChjb25maWdfZmlsZSkKKyAgICB3aXRoIGNkKHdvcmtpbmdfZGly
KToKICAgICAgICAgY21kID0gW2RveHlnZW5fcGF0aCwgY29uZmlnX2ZpbGVdCi0gICAgICAgIHBy
aW50ICdSdW5uaW5nOicsICcgJy5qb2luKCBjbWQgKQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBpbXBvcnQgc3VicHJvY2VzcwotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBpZiBvcy5z
eXN0ZW0oICcgJy5qb2luKCBjbWQgKSApICE9IDA6Ci0gICAgICAgICAgICAgICAgcHJpbnQgJ0Rv
Y3VtZW50YXRpb24gZ2VuZXJhdGlvbiBmYWlsZWQnCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBpc19zaWxlbnQ6Ci0gICAgICAgICAg
ICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oIGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3Mu
UElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUICkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oIGNtZCApCi0gICAgICAgICAg
ICBzdGRvdXQsIF8gPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKLSAgICAgICAgICAgIGlmIHByb2Nl
c3MucmV0dXJuY29kZToKLSAgICAgICAgICAgICAgICBwcmludCAnRG9jdW1lbnRhdGlvbiBnZW5l
cmF0aW9uIGZhaWxlZDonCi0gICAgICAgICAgICAgICAgcHJpbnQgc3Rkb3V0Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZmluYWxseToKLSAg
ICAgICAgb3MuY2hkaXIoIG9sZF9jd2QgKQorICAgICAgICBydW5fY21kKGNtZCwgaXNfc2lsZW50
KQogCi1kZWYgYnVpbGRfZG9jKCBvcHRpb25zLCAgbWFrZV9yZWxlYXNlPUZhbHNlICk6CitkZWYg
YnVpbGRfZG9jKG9wdGlvbnMsICBtYWtlX3JlbGVhc2U9RmFsc2UpOgogICAgIGlmIG1ha2VfcmVs
ZWFzZToKICAgICAgICAgb3B0aW9ucy5tYWtlX3RhcmJhbGwgPSBUcnVlCiAgICAgICAgIG9wdGlv
bnMud2l0aF9kb3QgPSBUcnVlCkBAIC04Myw2MiArMTAxLDYyIEBAIGRlZiBidWlsZF9kb2MoIG9w
dGlvbnMsICBtYWtlX3JlbGVhc2U9RmFsc2UgKToKICAgICAgICAgb3B0aW9ucy5vcGVuID0gRmFs
c2UKICAgICAgICAgb3B0aW9ucy5zaWxlbnQgPSBUcnVlCiAKLSAgICB2ZXJzaW9uID0gb3Blbign
dmVyc2lvbicsJ3J0JykucmVhZCgpLnN0cmlwKCkKKyAgICB2ZXJzaW9uID0gb3BlbigndmVyc2lv
bicsICdydCcpLnJlYWQoKS5zdHJpcCgpCiAgICAgb3V0cHV0X2RpciA9ICdkaXN0L2RveHlnZW4n
ICMgcmVsYXRpdmUgdG8gZG9jL2RveHlmaWxlIGxvY2F0aW9uLgotICAgIGlmIG5vdCBvcy5wYXRo
LmlzZGlyKCBvdXRwdXRfZGlyICk6Ci0gICAgICAgIG9zLm1ha2VkaXJzKCBvdXRwdXRfZGlyICkK
LSAgICB0b3BfZGlyID0gb3MucGF0aC5hYnNwYXRoKCAnLicgKQorICAgIGlmIG5vdCBvcy5wYXRo
LmlzZGlyKG91dHB1dF9kaXIpOgorICAgICAgICBvcy5tYWtlZGlycyhvdXRwdXRfZGlyKQorICAg
IHRvcF9kaXIgPSBvcy5wYXRoLmFic3BhdGgoJy4nKQogICAgIGh0bWxfb3V0cHV0X2Rpcm5hbWUg
PSAnanNvbmNwcC1hcGktaHRtbC0nICsgdmVyc2lvbgotICAgIHRhcmJhbGxfcGF0aCA9IG9zLnBh
dGguam9pbiggJ2Rpc3QnLCBodG1sX291dHB1dF9kaXJuYW1lICsgJy50YXIuZ3onICkKLSAgICB3
YXJuaW5nX2xvZ19wYXRoID0gb3MucGF0aC5qb2luKCBvdXRwdXRfZGlyLCAnLi4vanNvbmNwcC1k
b3h5Z2VuLXdhcm5pbmcubG9nJyApCi0gICAgaHRtbF9vdXRwdXRfcGF0aCA9IG9zLnBhdGguam9p
biggb3V0cHV0X2RpciwgaHRtbF9vdXRwdXRfZGlybmFtZSApCi0gICAgZGVmIHllc25vKCBib29s
ICk6CisgICAgdGFyYmFsbF9wYXRoID0gb3MucGF0aC5qb2luKCdkaXN0JywgaHRtbF9vdXRwdXRf
ZGlybmFtZSArICcudGFyLmd6JykKKyAgICB3YXJuaW5nX2xvZ19wYXRoID0gb3MucGF0aC5qb2lu
KG91dHB1dF9kaXIsICcuLi9qc29uY3BwLWRveHlnZW4td2FybmluZy5sb2cnKQorICAgIGh0bWxf
b3V0cHV0X3BhdGggPSBvcy5wYXRoLmpvaW4ob3V0cHV0X2RpciwgaHRtbF9vdXRwdXRfZGlybmFt
ZSkKKyAgICBkZWYgeWVzbm8oYm9vbCk6CiAgICAgICAgIHJldHVybiBib29sIGFuZCAnWUVTJyBv
ciAnTk8nCiAgICAgc3Vic3Rfa2V5cyA9IHsKICAgICAgICAgJyVKU09OQ1BQX1ZFUlNJT04lJzog
dmVyc2lvbiwKICAgICAgICAgJyVET0NfVE9QRElSJSc6ICcnLAogICAgICAgICAnJVRPUERJUiUn
OiB0b3BfZGlyLAotICAgICAgICAnJUhUTUxfT1VUUFVUJSc6IG9zLnBhdGguam9pbiggJy4uJywg
b3V0cHV0X2RpciwgaHRtbF9vdXRwdXRfZGlybmFtZSApLAorICAgICAgICAnJUhUTUxfT1VUUFVU
JSc6IG9zLnBhdGguam9pbignLi4nLCBvdXRwdXRfZGlyLCBodG1sX291dHB1dF9kaXJuYW1lKSwK
ICAgICAgICAgJyVIQVZFX0RPVCUnOiB5ZXNubyhvcHRpb25zLndpdGhfZG90KSwKICAgICAgICAg
JyVET1RfUEFUSCUnOiBvcy5wYXRoLnNwbGl0KG9wdGlvbnMuZG90X3BhdGgpWzBdLAogICAgICAg
ICAnJUhUTUxfSEVMUCUnOiB5ZXNubyhvcHRpb25zLndpdGhfaHRtbF9oZWxwKSwKICAgICAgICAg
JyVVTUxfTE9PSyUnOiB5ZXNubyhvcHRpb25zLndpdGhfdW1sX2xvb2spLAotICAgICAgICAnJVdB
Uk5JTkdfTE9HX1BBVEglJzogb3MucGF0aC5qb2luKCAnLi4nLCB3YXJuaW5nX2xvZ19wYXRoICkK
KyAgICAgICAgJyVXQVJOSU5HX0xPR19QQVRIJSc6IG9zLnBhdGguam9pbignLi4nLCB3YXJuaW5n
X2xvZ19wYXRoKQogICAgICAgICB9CiAKLSAgICBpZiBvcy5wYXRoLmlzZGlyKCBvdXRwdXRfZGly
ICk6Ci0gICAgICAgIHByaW50ICdEZWxldGluZyBkaXJlY3Rvcnk6Jywgb3V0cHV0X2RpcgotICAg
ICAgICBzaHV0aWwucm10cmVlKCBvdXRwdXRfZGlyICkKLSAgICBpZiBub3Qgb3MucGF0aC5pc2Rp
ciggb3V0cHV0X2RpciApOgotICAgICAgICBvcy5tYWtlZGlycyggb3V0cHV0X2RpciApCisgICAg
aWYgb3MucGF0aC5pc2RpcihvdXRwdXRfZGlyKToKKyAgICAgICAgcHJpbnQoJ0RlbGV0aW5nIGRp
cmVjdG9yeTonLCBvdXRwdXRfZGlyKQorICAgICAgICBzaHV0aWwucm10cmVlKG91dHB1dF9kaXIp
CisgICAgaWYgbm90IG9zLnBhdGguaXNkaXIob3V0cHV0X2Rpcik6CisgICAgICAgIG9zLm1ha2Vk
aXJzKG91dHB1dF9kaXIpCiAKLSAgICBkb19zdWJzdF9pbl9maWxlKCAnZG9jL2RveHlmaWxlJywg
J2RvYy9kb3h5ZmlsZS5pbicsIHN1YnN0X2tleXMgKQotICAgIG9rID0gcnVuX2RveHlnZW4oIG9w
dGlvbnMuZG94eWdlbl9wYXRoLCAnZG9jL2RveHlmaWxlJywgJ2RvYycsIGlzX3NpbGVudD1vcHRp
b25zLnNpbGVudCApCisgICAgZG9fc3Vic3RfaW5fZmlsZSgnZG9jL2RveHlmaWxlJywgb3B0aW9u
cy5kb3h5ZmlsZV9pbnB1dF9wYXRoLCBzdWJzdF9rZXlzKQorICAgIHJ1bl9kb3h5Z2VuKG9wdGlv
bnMuZG94eWdlbl9wYXRoLCAnZG9jL2RveHlmaWxlJywgJ2RvYycsIGlzX3NpbGVudD1vcHRpb25z
LnNpbGVudCkKICAgICBpZiBub3Qgb3B0aW9ucy5zaWxlbnQ6Ci0gICAgICAgIHByaW50IG9wZW4o
d2FybmluZ19sb2dfcGF0aCwgJ3JiJykucmVhZCgpCi0gICAgaW5kZXhfcGF0aCA9IG9zLnBhdGgu
YWJzcGF0aChvcy5wYXRoLmpvaW4oc3Vic3Rfa2V5c1snJUhUTUxfT1VUUFVUJSddLCAnaW5kZXgu
aHRtbCcpKQotICAgIHByaW50ICdHZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQg
aW46JwotICAgIHByaW50IGluZGV4X3BhdGgKKyAgICAgICAgcHJpbnQob3Blbih3YXJuaW5nX2xv
Z19wYXRoLCAncicpLnJlYWQoKSkKKyAgICBpbmRleF9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9z
LnBhdGguam9pbignZG9jJywgc3Vic3Rfa2V5c1snJUhUTUxfT1VUUFVUJSddLCAnaW5kZXguaHRt
bCcpKQorICAgIHByaW50KCdHZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgaW46
JykKKyAgICBwcmludChpbmRleF9wYXRoKQogICAgIGlmIG9wdGlvbnMub3BlbjoKICAgICAgICAg
aW1wb3J0IHdlYmJyb3dzZXIKLSAgICAgICAgd2ViYnJvd3Nlci5vcGVuKCAnZmlsZTovLycgKyBp
bmRleF9wYXRoICkKKyAgICAgICAgd2ViYnJvd3Nlci5vcGVuKCdmaWxlOi8vJyArIGluZGV4X3Bh
dGgpCiAgICAgaWYgb3B0aW9ucy5tYWtlX3RhcmJhbGw6Ci0gICAgICAgIHByaW50ICdHZW5lcmF0
aW5nIGRvYyB0YXJiYWxsIHRvJywgdGFyYmFsbF9wYXRoCisgICAgICAgIHByaW50KCdHZW5lcmF0
aW5nIGRvYyB0YXJiYWxsIHRvJywgdGFyYmFsbF9wYXRoKQogICAgICAgICB0YXJiYWxsX3NvdXJj
ZXMgPSBbCiAgICAgICAgICAgICBvdXRwdXRfZGlyLAotICAgICAgICAgICAgJ1JFQURNRS50eHQn
LAorICAgICAgICAgICAgJ1JFQURNRS5tZCcsCiAgICAgICAgICAgICAnTElDRU5TRScsCiAgICAg
ICAgICAgICAnTkVXUy50eHQnLAogICAgICAgICAgICAgJ3ZlcnNpb24nCiAgICAgICAgICAgICBd
Ci0gICAgICAgIHRhcmJhbGxfYmFzZWRpciA9IG9zLnBhdGguam9pbiggb3V0cHV0X2RpciwgaHRt
bF9vdXRwdXRfZGlybmFtZSApCi0gICAgICAgIHRhcmJhbGwubWFrZV90YXJiYWxsKCB0YXJiYWxs
X3BhdGgsIHRhcmJhbGxfc291cmNlcywgdGFyYmFsbF9iYXNlZGlyLCBodG1sX291dHB1dF9kaXJu
YW1lICkKKyAgICAgICAgdGFyYmFsbF9iYXNlZGlyID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIs
IGh0bWxfb3V0cHV0X2Rpcm5hbWUpCisgICAgICAgIHRhcmJhbGwubWFrZV90YXJiYWxsKHRhcmJh
bGxfcGF0aCwgdGFyYmFsbF9zb3VyY2VzLCB0YXJiYWxsX2Jhc2VkaXIsIGh0bWxfb3V0cHV0X2Rp
cm5hbWUpCiAgICAgcmV0dXJuIHRhcmJhbGxfcGF0aCwgaHRtbF9vdXRwdXRfZGlybmFtZQogCiBk
ZWYgbWFpbigpOgogICAgIHVzYWdlID0gIiIiJXByb2cKICAgICBHZW5lcmF0ZXMgZG94eWdlbiBk
b2N1bWVudGF0aW9uIGluIGJ1aWxkL2RveHlnZW4uCi0gICAgT3B0aW9uYWx5IG1ha2VzIGEgdGFy
YmFsbCBvZiB0aGUgZG9jdW1lbnRhdGlvbiB0byBkaXN0Ly4KKyAgICBPcHRpb25hbGx5IG1ha2Vz
IGEgdGFyYmFsbCBvZiB0aGUgZG9jdW1lbnRhdGlvbiB0byBkaXN0Ly4KIAogICAgIE11c3QgYmUg
c3RhcnRlZCBpbiB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5LiAgICAKICAgICAiIiIKQEAgLTE1
MSw2ICsxNjksOCBAQCBkZWYgbWFpbigpOgogICAgICAgICBoZWxwPSIiIlBhdGggdG8gR3JhcGhW
aXogZG90IHRvb2wuIE11c3QgYmUgZnVsbCBxdWFsaWZpZWQgcGF0aC4gW0RlZmF1bHQ6ICVkZWZh
dWx0XSIiIikKICAgICBwYXJzZXIuYWRkX29wdGlvbignLS1kb3h5Z2VuJywgZGVzdD0iZG94eWdl
bl9wYXRoIiwgYWN0aW9uPSdzdG9yZScsIGRlZmF1bHQ9ZmluZF9wcm9ncmFtKCdkb3h5Z2VuJyks
CiAgICAgICAgIGhlbHA9IiIiUGF0aCB0byBEb3h5Z2VuIHRvb2wuIFtEZWZhdWx0OiAlZGVmYXVs
dF0iIiIpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0taW4nLCBkZXN0PSJkb3h5ZmlsZV9pbnB1
dF9wYXRoIiwgYWN0aW9uPSdzdG9yZScsIGRlZmF1bHQ9J2RvYy9kb3h5ZmlsZS5pbicsCisgICAg
ICAgIGhlbHA9IiIiUGF0aCB0byBkb3h5Z2VuIGlucHV0cy4gW0RlZmF1bHQ6ICVkZWZhdWx0XSIi
IikKICAgICBwYXJzZXIuYWRkX29wdGlvbignLS13aXRoLWh0bWwtaGVscCcsIGRlc3Q9IndpdGhf
aHRtbF9oZWxwIiwgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKICAgICAgICAg
aGVscD0iIiJFbmFibGUgZ2VuZXJhdGlvbiBvZiBNaWNyb3NvZnQgSFRNTCBIRUxQIiIiKQogICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctLW5vLXVtbC1sb29rJywgZGVzdD0id2l0aF91bWxfbG9vayIs
IGFjdGlvbj0nc3RvcmVfZmFsc2UnLCBkZWZhdWx0PVRydWUsCkBAIC0xNjMsNyArMTgzLDcgQEAg
ZGVmIG1haW4oKToKICAgICAgICAgaGVscD0iIiJIaWRlcyBkb3h5Z2VuIG91dHB1dCIiIikKICAg
ICBwYXJzZXIuZW5hYmxlX2ludGVyc3BlcnNlZF9hcmdzKCkKICAgICBvcHRpb25zLCBhcmdzID0g
cGFyc2VyLnBhcnNlX2FyZ3MoKQotICAgIGJ1aWxkX2RvYyggb3B0aW9ucyApCisgICAgYnVpbGRf
ZG9jKG9wdGlvbnMpCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgbWFpbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvQ01h
a2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFjZmFiMWM1YTNiYWE5NTYwY2ZmNmY2NmNjY2Y4ZGVl
Y2U4NzI3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9DTWFrZUxpc3RzLnR4dApA
QCAtMCwwICsxLDYgQEAKK2ZpbGUoR0xPQiBJTkNMVURFX0ZJTEVTICJqc29uLyouaCIpCitpbnN0
YWxsKEZJTEVTCisgICAgJHtJTkNMVURFX0ZJTEVTfQorICAgICR7UFJPSkVDVF9CSU5BUllfRElS
fS9pbmNsdWRlL2pzb24vdmVyc2lvbi5oCisgICAgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxM
X0lOQ0xVREVESVJ9L2pzb24pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2FsbG9j
YXRvci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vYWxsb2NhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVmOTg3
ZTk3YjMxM2ZjYjUxZjdlOThiOTY5ZDJiNDM4YzkyN2RjYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvaW5jbHVkZS9qc29uL2FsbG9jYXRvci5oCkBAIC0wLDAgKzEsODkgQEAKKy8vIENvcHlyaWdo
dCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisv
LyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNp
cmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxl
IExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgQ1BQVExfSlNPTl9BTExPQ0FUT1JfSF9JTkNMVURFRAor
I2RlZmluZSBDUFBUTF9KU09OX0FMTE9DQVRPUl9IX0lOQ0xVREVECisKKyNpbmNsdWRlIDxjc3Ry
aW5nPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI3ByYWdtYSBwYWNrKHB1c2gsIDgpCisKK25hbWVz
cGFjZSBKc29uIHsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBTZWN1cmVBbGxvY2F0b3Ig
eworcHVibGljOgorICAvLyBUeXBlIGRlZmluaXRpb25zCisgIHVzaW5nIHZhbHVlX3R5cGUgPSBU
OworICB1c2luZyBwb2ludGVyID0gVCo7CisgIHVzaW5nIGNvbnN0X3BvaW50ZXIgPSBjb25zdCBU
KjsKKyAgdXNpbmcgcmVmZXJlbmNlID0gVCY7CisgIHVzaW5nIGNvbnN0X3JlZmVyZW5jZSA9IGNv
bnN0IFQmOworICB1c2luZyBzaXplX3R5cGUgPSBzdGQ6OnNpemVfdDsKKyAgdXNpbmcgZGlmZmVy
ZW5jZV90eXBlID0gc3RkOjpwdHJkaWZmX3Q7CisKKyAgLyoqCisgICAqIEFsbG9jYXRlIG1lbW9y
eSBmb3IgTiBpdGVtcyB1c2luZyB0aGUgc3RhbmRhcmQgYWxsb2NhdG9yLgorICAgKi8KKyAgcG9p
bnRlciBhbGxvY2F0ZShzaXplX3R5cGUgbikgeworICAgIC8vIGFsbG9jYXRlIHVzaW5nICJnbG9i
YWwgb3BlcmF0b3IgbmV3IgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxwb2ludGVyPig6Om9wZXJh
dG9yIG5ldyhuICogc2l6ZW9mKFQpKSk7CisgIH0KKworICAvKioKKyAgICogUmVsZWFzZSBtZW1v
cnkgd2hpY2ggd2FzIGFsbG9jYXRlZCBmb3IgTiBpdGVtcyBhdCBwb2ludGVyIFAuCisgICAqCisg
ICAqIFRoZSBtZW1vcnkgYmxvY2sgaXMgZmlsbGVkIHdpdGggemVyb2VzIGJlZm9yZSBiZWluZyBy
ZWxlYXNlZC4KKyAgICogVGhlIHBvaW50ZXIgYXJndW1lbnQgaXMgdGFnZ2VkIGFzICJ2b2xhdGls
ZSIgdG8gcHJldmVudCB0aGUKKyAgICogY29tcGlsZXIgb3B0aW1pemluZyBvdXQgdGhpcyBjcml0
aWNhbCBzdGVwLgorICAgKi8KKyAgdm9pZCBkZWFsbG9jYXRlKHZvbGF0aWxlIHBvaW50ZXIgcCwg
c2l6ZV90eXBlIG4pIHsKKyAgICBzdGQ6Om1lbXNldChwLCAwLCBuICogc2l6ZW9mKFQpKTsKKyAg
ICAvLyBmcmVlIHVzaW5nICJnbG9iYWwgb3BlcmF0b3IgZGVsZXRlIgorICAgIDo6b3BlcmF0b3Ig
ZGVsZXRlKHApOworICB9CisKKyAgLyoqCisgICAqIENvbnN0cnVjdCBhbiBpdGVtIGluLXBsYWNl
IGF0IHBvaW50ZXIgUC4KKyAgICovCisgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBBcmdzPiB2b2lk
IGNvbnN0cnVjdChwb2ludGVyIHAsIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgLy8gY29uc3RydWN0
IHVzaW5nICJwbGFjZW1lbnQgbmV3IiBhbmQgInBlcmZlY3QgZm9yd2FyZGluZyIKKyAgICA6Om5l
dyAoc3RhdGljX2Nhc3Q8dm9pZCo+KHApKSBUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7
CisgIH0KKworICBzaXplX3R5cGUgbWF4X3NpemUoKSBjb25zdCB7IHJldHVybiBzaXplX3QoLTEp
IC8gc2l6ZW9mKFQpOyB9CisKKyAgcG9pbnRlciBhZGRyZXNzKHJlZmVyZW5jZSB4KSBjb25zdCB7
IHJldHVybiBzdGQ6OmFkZHJlc3NvZih4KTsgfQorCisgIGNvbnN0X3BvaW50ZXIgYWRkcmVzcyhj
b25zdF9yZWZlcmVuY2UgeCkgY29uc3QgeyByZXR1cm4gc3RkOjphZGRyZXNzb2YoeCk7IH0KKwor
ICAvKioKKyAgICogRGVzdHJveSBhbiBpdGVtIGluLXBsYWNlIGF0IHBvaW50ZXIgUC4KKyAgICov
CisgIHZvaWQgZGVzdHJveShwb2ludGVyIHApIHsKKyAgICAvLyBkZXN0cm95IHVzaW5nICJleHBs
aWNpdCBkZXN0cnVjdG9yIgorICAgIHAtPn5UKCk7CisgIH0KKworICAvLyBCb2lsZXJwbGF0ZQor
ICBTZWN1cmVBbGxvY2F0b3IoKSB7fQorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gU2VjdXJlQWxs
b2NhdG9yKGNvbnN0IFNlY3VyZUFsbG9jYXRvcjxVPiYpIHt9CisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBVPiBzdHJ1Y3QgcmViaW5kIHsgdXNpbmcgb3RoZXIgPSBTZWN1cmVBbGxvY2F0b3I8VT47IH07
Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK2Jvb2wgb3BlcmF0b3I9
PShjb25zdCBTZWN1cmVBbGxvY2F0b3I8VD4mLCBjb25zdCBTZWN1cmVBbGxvY2F0b3I8VT4mKSB7
CisgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4K
K2Jvb2wgb3BlcmF0b3IhPShjb25zdCBTZWN1cmVBbGxvY2F0b3I8VD4mLCBjb25zdCBTZWN1cmVB
bGxvY2F0b3I8VT4mKSB7CisgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNv
bgorCisjcHJhZ21hIHBhY2socG9wKQorCisjZW5kaWYgLy8gQ1BQVExfSlNPTl9BTExPQ0FUT1Jf
SF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9pbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oCmluZGV4IGE0ODA1ODVhMGEwNmU3N2Q1YTIz
MjM3NjIzMThiOTIwZjcyYTZiODMuLjIwNzE2YjA2NzRiYTc4NzdiZmZjY2Q0MDk4YjlhNTU4NjEy
ODBhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMuaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2luY2x1ZGUvanNvbi9hc3NlcnRpb25zLmgKQEAgLTEsMzEgKzEsNTkgQEAKLS8vIENvcHly
aWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEw
IEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycwogLy8gRGlzdHJpYnV0
ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8v
IHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZv
ciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5T
RQogCiAjaWZuZGVmIENQUFRMX0pTT05fQVNTRVJUSU9OU19IX0lOQ0xVREVECi0jIGRlZmluZSBD
UFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX0FTU0VS
VElPTlNfSF9JTkNMVURFRAogCi0jaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8Y3N0ZGxp
Yj4KKyNpbmNsdWRlIDxzc3RyZWFtPgogCiAjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJ
T04pCi0jIGluY2x1ZGUgPGpzb24vY29uZmlnLmg+CisjaW5jbHVkZSAiY29uZmlnLmgiCiAjZW5k
aWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCiAKKy8qKiBJdCBzaG91bGQg
bm90IGJlIHBvc3NpYmxlIGZvciBhIG1hbGljaW91c2x5IGRlc2lnbmVkIGZpbGUgdG8KKyAqICBj
YXVzZSBhbiBhYm9ydCgpIG9yIHNlZy1mYXVsdCwgc28gdGhlc2UgbWFjcm9zIGFyZSB1c2VkIG9u
bHkKKyAqICBmb3IgcHJlLWNvbmRpdGlvbiB2aW9sYXRpb25zIGFuZCBpbnRlcm5hbCBsb2dpYyBl
cnJvcnMuCisgKi8KICNpZiBKU09OX1VTRV9FWENFUFRJT04KLSNkZWZpbmUgSlNPTl9BU1NFUlQo
IGNvbmRpdGlvbiApIGFzc2VydCggY29uZGl0aW9uICk7ICAvLyBAdG9kbyA8PSBjaGFuZ2UgdGhp
cyBpbnRvIGFuIGV4Y2VwdGlvbiB0aHJvdwotI2RlZmluZSBKU09OX0ZBSUxfTUVTU0FHRSggbWVz
c2FnZSApIHRocm93IHN0ZDo6cnVudGltZV9lcnJvciggbWVzc2FnZSApOwotI2Vsc2UgIC8vIEpT
T05fVVNFX0VYQ0VQVElPTgotI2RlZmluZSBKU09OX0FTU0VSVCggY29uZGl0aW9uICkgYXNzZXJ0
KCBjb25kaXRpb24gKTsKKworLy8gQHRvZG8gPD0gYWRkIGRldGFpbCBhYm91dCBjb25kaXRpb24g
aW4gZXhjZXB0aW9uCisjZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBpZiAoIShjb25kaXRpb24pKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBKc29uOjp0aHJvd0xvZ2ljRXJy
b3IoImFzc2VydCBqc29uIGZhaWxlZCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQorCisjZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdF
KG1lc3NhZ2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBPU3RyaW5nU3RyZWFtIG9zczsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgb3Nz
IDw8IG1lc3NhZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIEpzb246OnRocm93TG9naWNFcnJvcihvc3Muc3RyKCkpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhYm9ydCgpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgIH0KKworI2Vsc2UgLy8gSlNPTl9VU0VfRVhDRVBUSU9OCisKKyNkZWZpbmUg
SlNPTl9BU1NFUlQoY29uZGl0aW9uKSBhc3NlcnQoY29uZGl0aW9uKQogCiAvLyBUaGUgY2FsbCB0
byBhc3NlcnQoKSB3aWxsIHNob3cgdGhlIGZhaWx1cmUgbWVzc2FnZSBpbiBkZWJ1ZyBidWlsZHMu
IEluCi0vLyByZWxlYXNlIGJ1Z3Mgd2Ugd3JpdGUgdG8gaW52YWxpZCBtZW1vcnkgaW4gb3JkZXIg
dG8gY3Jhc2ggaGFyZCwgc28gdGhhdCBhCi0vLyBkZWJ1Z2dlciBvciBjcmFzaCByZXBvcnRlciBn
ZXRzIHRoZSBjaGFuY2UgdG8gdGFrZSBvdmVyLiBXZSBzdGlsbCBjYWxsIGV4aXQoKQotLy8gYWZ0
ZXJ3YXJkIGluIG9yZGVyIHRvIHRlbGwgdGhlIGNvbXBpbGVyIHRoYXQgdGhpcyBtYWNybyBkb2Vz
bid0IHJldHVybi4KLSNkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UoIG1lc3NhZ2UgKSB7IGFzc2Vy
dChmYWxzZSAmJiBtZXNzYWdlKTsgc3RyY3B5KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KDY2Niks
IG1lc3NhZ2UpOyBleGl0KDEyMyk7IH0KKy8vIHJlbGVhc2UgYnVpbGRzIHdlIGFib3J0LCBmb3Ig
YSBjb3JlLWR1bXAgb3IgZGVidWdnZXIuCisjZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKG1lc3Nh
Z2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBPU3RyaW5nU3RyZWFtIG9zczsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgb3NzIDw8IG1l
c3NhZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIGFzc2VydChmYWxzZSAmJiBvc3Muc3RyKCkuY19zdHIoKSk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhYm9ydCgpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIH0KIAogI2VuZGlmCiAKLSNkZWZpbmUgSlNPTl9BU1NFUlRfTUVTU0FHRSggY29uZGl0
aW9uLCBtZXNzYWdlICkgaWYgKCEoIGNvbmRpdGlvbiApKSB7IEpTT05fRkFJTF9NRVNTQUdFKCBt
ZXNzYWdlICkgfQorI2RlZmluZSBKU09OX0FTU0VSVF9NRVNTQUdFKGNvbmRpdGlvbiwgbWVzc2Fn
ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKCEoY29uZGl0aW9uKSkg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CiAKICNlbmRpZiAvLyBDUFBUTF9KU09O
X0FTU0VSVElPTlNfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vYXV0
b2xpbmsuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2F1dG9saW5rLmgKaW5kZXggMDIzMjhkMWYxYTVi
Y2NkZTQwM2FiYTRlZmE4NjRhZDFmYjEzN2JhNi4uYjJjMGYwMDI0ZmM4M2VmYjE2ZTlmYzQ2NjRl
YTNmMmFmZTNlODViYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vYXV0b2xpbmsuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL2luY2x1ZGUvanNvbi9hdXRvbGluay5oCkBAIC0xLDI0ICsxLDI1IEBACi0vLyBD
b3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDct
MjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
CiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKIAogI2lmbmRlZiBKU09OX0FVVE9MSU5LX0hfSU5DTFVERUQKLSMgZGVmaW5lIEpTT05f
QVVUT0xJTktfSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0FVVE9MSU5LX0hfSU5DTFVERUQKIAot
IyBpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJjb25maWcuaCIKIAotIyBpZmRlZiBKU09O
X0lOX0NQUFRMCi0jICBpbmNsdWRlIDxjcHB0bC9jcHB0bF9hdXRvbGluay5oPgotIyBlbmRpZgor
I2lmZGVmIEpTT05fSU5fQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jcHB0bF9hdXRvbGluay5oPgor
I2VuZGlmCiAKLSMgaWYgIWRlZmluZWQoSlNPTl9OT19BVVRPTElOSykgICYmICAhZGVmaW5lZChK
U09OX0RMTF9CVUlMRCkgICYmICAhZGVmaW5lZChKU09OX0lOX0NQUFRMKQotIyAgZGVmaW5lIENQ
UFRMX0FVVE9MSU5LX05BTUUgImpzb24iCi0jICB1bmRlZiBDUFBUTF9BVVRPTElOS19ETEwKLSMg
IGlmZGVmIEpTT05fRExMCi0jICAgZGVmaW5lIENQUFRMX0FVVE9MSU5LX0RMTAotIyAgZW5kaWYK
LSMgIGluY2x1ZGUgImF1dG9saW5rLmgiCi0jIGVuZGlmCisjaWYgIWRlZmluZWQoSlNPTl9OT19B
VVRPTElOSykgJiYgIWRlZmluZWQoSlNPTl9ETExfQlVJTEQpICYmICAgICAgICAgICAgICAgICAg
XAorICAgICFkZWZpbmVkKEpTT05fSU5fQ1BQVEwpCisjZGVmaW5lIENQUFRMX0FVVE9MSU5LX05B
TUUgImpzb24iCisjdW5kZWYgQ1BQVExfQVVUT0xJTktfRExMCisjaWZkZWYgSlNPTl9ETEwKKyNk
ZWZpbmUgQ1BQVExfQVVUT0xJTktfRExMCisjZW5kaWYKKyNpbmNsdWRlICJhdXRvbGluay5oIgor
I2VuZGlmCiAKICNlbmRpZiAvLyBKU09OX0FVVE9MSU5LX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvaW5jbHVkZS9qc29uL2NvbmZpZy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vY29uZmlnLmgK
aW5kZXggNzI0MzdjNGJjOGM3ODg3ZDM4Y2ExYTVkNDQyZDc5NTk2NmQxNWVkOC4uODcyNGFkOTVh
MGU4MzJmNjI1ZDAyNjM1YTg2ODE2YzNhMjY5NWViMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRl
L2pzb24vY29uZmlnLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vY29uZmlnLmgKQEAgLTEsOTgg
KzEsMTgwIEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8g
Q29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1
dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWlu
IGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8g
U2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291
cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBKU09OX0NPTkZJR19IX0lOQ0xVREVECi0j
IGRlZmluZSBKU09OX0NPTkZJR19IX0lOQ0xVREVECisjZGVmaW5lIEpTT05fQ09ORklHX0hfSU5D
TFVERUQKKyNpbmNsdWRlIDxjc3RkZGVmPgorI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8
aXN0cmVhbT4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNpbmNsdWRl
IDxzc3RyZWFtPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KIAog
Ly8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbGlicmFyeSBpcyBlbWJlZGRlZCBp
biBDcHBUTCBsaWJyYXJ5LgogLy8jIGRlZmluZSBKU09OX0lOX0NQUFRMIDEKIAogLy8vIElmIGRl
ZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbWF5IGxldmVyYWdlIENwcFRMIGxpYnJhcnkKIC8v
IyAgZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKLS8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhh
dCBjcHB0bCB2ZWN0b3IgYmFzZWQgbWFwIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2Ygc3RkOjpt
YXAKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBjcHB0bCB2ZWN0b3IgYmFzZWQgbWFw
IHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YKKy8vLyBzdGQ6Om1hcAogLy8vIGFzIFZhbHVlIGNv
bnRhaW5lci4KIC8vIyAgZGVmaW5lIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQIDEKLS8vLyBJZiBk
ZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBKc29uIHNwZWNpZmljIGNvbnRhaW5lciBzaG91bGQgYmUg
dXNlZAotLy8vIChoYXNoIHRhYmxlICYgc2ltcGxlIGRlcXVlIGNvbnRhaW5lciB3aXRoIGN1c3Rv
bWl6YWJsZSBhbGxvY2F0b3IpLgotLy8vIFRISVMgRkVBVFVSRSBJUyBTVElMTCBFWFBFUklNRU5U
QUwhIFRoZXJlIGlzIGtub3cgYnVnczogU2VlICMzMTc3MzMyCi0vLyMgIGRlZmluZSBKU09OX1ZB
TFVFX1VTRV9JTlRFUk5BTF9NQVAgMQotLy8vIEZvcmNlIHVzYWdlIG9mIHN0YW5kYXJkIG5ldy9t
YWxsb2MgYmFzZWQgYWxsb2NhdG9yIGluc3RlYWQgb2YgbWVtb3J5IHBvb2wgYmFzZWQgYWxsb2Nh
dG9yLgotLy8vIFRoZSBtZW1vcnkgcG9vbHMgYWxsb2NhdG9yIHVzZWQgb3B0aW1pemF0aW9uIChp
bml0aWFsaXppbmcgVmFsdWUgYW5kIFZhbHVlSW50ZXJuYWxMaW5rCi0vLy8gYXMgaWYgaXQgd2Fz
IGEgUE9EKSB0aGF0IG1heSBjYXVzZSBzb21lIHZhbGlkYXRpb24gdG9vbCB0byByZXBvcnQgZXJy
b3JzLgotLy8vIE9ubHkgaGFzIGVmZmVjdHMgaWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
IGlzIGRlZmluZWQuCi0vLyMgIGRlZmluZSBKU09OX1VTRV9TSU1QTEVfSU5URVJOQUxfQUxMT0NB
VE9SIDEKIAogLy8gSWYgbm9uLXplcm8sIHRoZSBsaWJyYXJ5IHVzZXMgZXhjZXB0aW9ucyB0byBy
ZXBvcnQgYmFkIGlucHV0IGluc3RlYWQgb2YgQwogLy8gYXNzZXJ0aW9uIG1hY3Jvcy4gVGhlIGRl
ZmF1bHQgaXMgdG8gdXNlIGV4Y2VwdGlvbnMuCi0jIGlmbmRlZiBKU09OX1VTRV9FWENFUFRJT04K
LSMgZGVmaW5lIEpTT05fVVNFX0VYQ0VQVElPTiAxCi0jIGVuZGlmCisjaWZuZGVmIEpTT05fVVNF
X0VYQ0VQVElPTgorI2RlZmluZSBKU09OX1VTRV9FWENFUFRJT04gMQorI2VuZGlmCisKKy8vIFRl
bXBvcmFyeSwgdHJhY2tlZCBmb3IgcmVtb3ZhbCB3aXRoIGlzc3VlICM5ODIuCisjaWZuZGVmIEpT
T05fVVNFX05VTExSRUYKKyNkZWZpbmUgSlNPTl9VU0VfTlVMTFJFRiAxCisjZW5kaWYKIAotLy8v
IElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQK
Ky8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdh
bWF0ZWQKIC8vLyB0byBwcmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KLS8vLyBSZW1h
cmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0
ZWQgaGVhZGVyLgorLy8vIFJlbWFya3M6IGl0IGlzIGF1dG9tYXRpY2FsbHkgZGVmaW5lZCBpbiB0
aGUgZ2VuZXJhdGVkIGFtYWxnYW1hdGVkIGhlYWRlci4KIC8vICNkZWZpbmUgSlNPTl9JU19BTUFM
R0FNQVRJT04KIAorI2lmZGVmIEpTT05fSU5fQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jb25maWcu
aD4KKyNpZm5kZWYgSlNPTl9VU0VfQ1BQVEwKKyNkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQorI2Vu
ZGlmCisjZW5kaWYKKworI2lmZGVmIEpTT05fSU5fQ1BQVEwKKyNkZWZpbmUgSlNPTl9BUEkgQ1BQ
VExfQVBJCisjZWxpZiBkZWZpbmVkKEpTT05fRExMX0JVSUxEKQorI2lmIGRlZmluZWQoX01TQ19W
RVIpIHx8IGRlZmluZWQoX19NSU5HVzMyX18pCisjZGVmaW5lIEpTT05fQVBJIF9fZGVjbHNwZWMo
ZGxsZXhwb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5H
CisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fY2xhbmdfXykKKyNkZWZpbmUg
SlNPTl9BUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNlbmRpZiAv
LyBpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKKyNpZiBkZWZp
bmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fTUlOR1czMl9fKQorI2RlZmluZSBKU09OX0FQSSBf
X2RlY2xzcGVjKGRsbGltcG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZB
Q0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCisjZW5kaWYgLy8gaWZk
ZWYgSlNPTl9JTl9DUFBUTAorI2lmICFkZWZpbmVkKEpTT05fQVBJKQorI2RlZmluZSBKU09OX0FQ
SQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE4MDAKKyNl
cnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgIkVSUk9SOiAgVmlzdWFsIFN0dWRpbyAxMiAoMjAx
Mykgd2l0aCBfTVNDX1ZFUj0xODAwIGlzIHRoZSBvbGRlc3Qgc3VwcG9ydGVkIGNvbXBpbGVyIHdp
dGggc3VmZmljaWVudCBDKysxMSBjYXBhYmlsaXRpZXMiCisjZW5kaWYKKworI2lmIGRlZmluZWQo
X01TQ19WRVIpICYmIF9NU0NfVkVSIDwgMTkwMAorLy8gQXMgcmVjb21tZW5kZWQgYXQKKy8vIGh0
dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI5MTU2NzIvc25wcmludGYtYW5kLXZp
c3VhbC1zdHVkaW8tMjAxMAorZXh0ZXJuIEpTT05fQVBJIGludAorbXN2Y19wcmUxOTAwX2M5OV9z
bnByaW50ZihjaGFyKiBvdXRCdWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4u
Lik7CisjZGVmaW5lIGpzb25jcHBfc25wcmludGYgbXN2Y19wcmUxOTAwX2M5OV9zbnByaW50Zgor
I2Vsc2UKKyNkZWZpbmUganNvbmNwcF9zbnByaW50ZiBzdGQ6OnNucHJpbnRmCisjZW5kaWYKIAot
IyBpZmRlZiBKU09OX0lOX0NQUFRMCi0jICBpbmNsdWRlIDxjcHB0bC9jb25maWcuaD4KLSMgIGlm
bmRlZiBKU09OX1VTRV9DUFBUTAotIyAgIGRlZmluZSBKU09OX1VTRV9DUFBUTCAxCi0jICBlbmRp
ZgotIyBlbmRpZgotCi0jIGlmZGVmIEpTT05fSU5fQ1BQVEwKLSMgIGRlZmluZSBKU09OX0FQSSBD
UFBUTF9BUEkKLSMgZWxpZiBkZWZpbmVkKEpTT05fRExMX0JVSUxEKQotIyAgZGVmaW5lIEpTT05f
QVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQotIyBlbGlmIGRlZmluZWQoSlNPTl9ETEwpCi0jICBk
ZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCi0jIGVsc2UKLSMgIGRlZmluZSBK
U09OX0FQSQotIyBlbmRpZgotCi0vLyBJZiBKU09OX05PX0lOVDY0IGlzIGRlZmluZWQsIHRoZW4g
SnNvbiBvbmx5IHN1cHBvcnQgQysrICJpbnQiIHR5cGUgZm9yIGludGVnZXIKKy8vIElmIEpTT05f
Tk9fSU5UNjQgaXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlw
ZSBmb3IKKy8vIGludGVnZXIKIC8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBv
cnQgaXMgZGlzYWJsZWQuCiAvLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQogCi0jaWYgZGVmaW5l
ZChfTVNDX1ZFUikgICYmICBfTVNDX1ZFUiA8PSAxMjAwIC8vIE1TVkMgNgotLy8gTWljcm9zb2Z0
IFZpc3VhbCBTdHVkaW8gNiBvbmx5IHN1cHBvcnQgY29udmVyc2lvbiBmcm9tIF9faW50NjQgdG8g
ZG91YmxlCi0vLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9faW50NjQpLgotI2RlZmlu
ZSBKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTiAxCi0jZW5kaWYgLy8gaWYgZGVmaW5l
ZChfTVNDX1ZFUikgICYmICBfTVNDX1ZFUiA8IDEyMDAgLy8gTVNWQyA2CisvLyBKU09OQ1BQX09W
RVJSSURFIGlzIG1haW50YWluZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9mIGV4dGVy
bmFsIHRvb2xzLgorLy8gQysrMTEgc2hvdWxkIGJlIHVzZWQgZGlyZWN0bHkgaW4gSlNPTkNQUC4K
KyNkZWZpbmUgSlNPTkNQUF9PVkVSUklERSBvdmVycmlkZQorCisjaWYgX19jcGx1c3BsdXMgPj0g
MjAxMTAzTAorI2RlZmluZSBKU09OQ1BQX05PRVhDRVBUIG5vZXhjZXB0CisjZGVmaW5lIEpTT05D
UFBfT1BfRVhQTElDSVQgZXhwbGljaXQKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0Nf
VkVSIDwgMTkwMAorI2RlZmluZSBKU09OQ1BQX05PRVhDRVBUIHRocm93KCkKKyNkZWZpbmUgSlNP
TkNQUF9PUF9FWFBMSUNJVCBleHBsaWNpdAorI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01T
Q19WRVIgPj0gMTkwMAorI2RlZmluZSBKU09OQ1BQX05PRVhDRVBUIG5vZXhjZXB0CisjZGVmaW5l
IEpTT05DUFBfT1BfRVhQTElDSVQgZXhwbGljaXQKKyNlbHNlCisjZGVmaW5lIEpTT05DUFBfTk9F
WENFUFQgdGhyb3coKQorI2RlZmluZSBKU09OQ1BQX09QX0VYUExJQ0lUCisjZW5kaWYKIAotI2lm
IGRlZmluZWQoX01TQ19WRVIpICAmJiAgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgKLS8v
LyBJbmRpY2F0ZXMgdGhhdCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCi0j
IGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVk
KG1lc3NhZ2UpKQorI2lmZGVmIF9fY2xhbmdfXworI2lmIF9faGFzX2V4dGVuc2lvbihhdHRyaWJ1
dGVfZGVwcmVjYXRlZF93aXRoX21lc3NhZ2UpCisjZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRCht
ZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKICNlbmRpZgorI2Vs
aWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBj
bGFuZyBlbXVsYXRlcyBnY2MpCisjaWYgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAm
JiBfX0dOVUNfTUlOT1JfXyA+PSA1KSkKKyNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3Nh
Z2UpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQobWVzc2FnZSkpKQorI2VsaWYgKF9fR05VQ19f
ID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSkKKyNkZWZpbmUg
SlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9f
KSkKKyNlbmRpZiAgICAgICAgICAgICAgICAgIC8vIEdOVUMgdmVyc2lvbgorI2VsaWYgZGVmaW5l
ZChfTVNDX1ZFUikgLy8gTVNWQyAoYWZ0ZXIgY2xhbmcgYmVjYXVzZSBjbGFuZyBvbiBXaW5kb3dz
IGVtdWxhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBNU1ZDKQorI2RlZmluZSBKU09O
Q1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVkKG1lc3NhZ2UpKQor
I2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXyB8fCBfTVNDX1ZFUgogCiAjaWYgIWRlZmlu
ZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQotIyBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3Nh
Z2UpCisjZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKQogI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05DUFBfREVQUkVDQVRFRCkKIAorI2lmIF9fR05VQ19fID49IDYKKyNkZWZpbmUg
SlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworI2luY2x1ZGUgImFsbG9jYXRvci5oIgorI2luY2x1
ZGUgInZlcnNpb24uaCIKKworI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFU
SU9OKQorCiBuYW1lc3BhY2UgSnNvbiB7Ci0gICB0eXBlZGVmIGludCBJbnQ7Ci0gICB0eXBlZGVm
IHVuc2lnbmVkIGludCBVSW50OwotIyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCi0gICB0eXBl
ZGVmIGludCBMYXJnZXN0SW50OwotICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgTGFyZ2VzdFVJbnQ7
Ci0jICB1bmRlZiBKU09OX0hBU19JTlQ2NAotIyBlbHNlIC8vIGlmIGRlZmluZWQoSlNPTl9OT19J
TlQ2NCkKLSAgIC8vIEZvciBNaWNyb3NvZnQgVmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBs
b25nIGxvbmcgaXMgbm90IHN1cHBvcnRlZAotIyAgaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTWlj
cm9zb2Z0IFZpc3VhbCBTdHVkaW8KLSAgIHR5cGVkZWYgX19pbnQ2NCBJbnQ2NDsKLSAgIHR5cGVk
ZWYgdW5zaWduZWQgX19pbnQ2NCBVSW50NjQ7Ci0jICBlbHNlIC8vIGlmIGRlZmluZWQoX01TQ19W
RVIpIC8vIE90aGVyIHBsYXRmb3JtcywgdXNlIGxvbmcgbG9uZwotICAgdHlwZWRlZiBsb25nIGxv
bmcgaW50IEludDY0OwotICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsK
LSMgIGVuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCi0gICB0eXBlZGVmIEludDY0IExhcmdl
c3RJbnQ7Ci0gICB0eXBlZGVmIFVJbnQ2NCBMYXJnZXN0VUludDsKLSMgIGRlZmluZSBKU09OX0hB
U19JTlQ2NAotIyBlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCi19IC8vIGVuZCBu
YW1lc3BhY2UgSnNvbgordHlwZWRlZiBpbnQgSW50OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgVUlu
dDsKKyNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit0eXBlZGVmIGludCBMYXJnZXN0SW50Owor
dHlwZWRlZiB1bnNpZ25lZCBpbnQgTGFyZ2VzdFVJbnQ7CisjdW5kZWYgSlNPTl9IQVNfSU5UNjQK
KyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCisvLyBG
b3IgTWljcm9zb2Z0IFZpc3VhbCB1c2Ugc3BlY2lmaWMgdHlwZXMgYXMgbG9uZyBsb25nIGlzIG5v
dCBzdXBwb3J0ZWQKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNaWNyb3NvZnQgVmlzdWFsIFN0
dWRpbwordHlwZWRlZiBfX2ludDY0IEludDY0OwordHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IFVJ
bnQ2NDsKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBP
dGhlciBwbGF0Zm9ybXMsIHVzZSBsb25nIGxvbmcKK3R5cGVkZWYgaW50NjRfdCBJbnQ2NDsKK3R5
cGVkZWYgdWludDY0X3QgVUludDY0OworI2VuZGlmICAgICAgICAgICAgICAgIC8vIGlmIGRlZmlu
ZWQoX01TQ19WRVIpCit0eXBlZGVmIEludDY0IExhcmdlc3RJbnQ7Cit0eXBlZGVmIFVJbnQ2NCBM
YXJnZXN0VUludDsKKyNkZWZpbmUgSlNPTl9IQVNfSU5UNjQKKyNlbmRpZiAvLyBpZiBkZWZpbmVk
KEpTT05fTk9fSU5UNjQpCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordXNpbmcgQWxsb2NhdG9y
ID0gdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxKU09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1PUlks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY3VyZUFsbG9j
YXRvcjxUPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
OjphbGxvY2F0b3I8VD4+Ojp0eXBlOwordXNpbmcgU3RyaW5nID0gc3RkOjpiYXNpY19zdHJpbmc8
Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiwgQWxsb2NhdG9yPGNoYXI+PjsKK3VzaW5nIElT
dHJpbmdTdHJlYW0gPSBzdGQ6OmJhc2ljX2lzdHJpbmdzdHJlYW08U3RyaW5nOjp2YWx1ZV90eXBl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc6
OnRyYWl0c190eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTdHJpbmc6OmFsbG9jYXRvcl90eXBlPjsKK3VzaW5nIE9TdHJpbmdTdHJlYW0gPSBzdGQ6
OmJhc2ljX29zdHJpbmdzdHJlYW08U3RyaW5nOjp2YWx1ZV90eXBlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc6OnRyYWl0c190eXBlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc6OmFsbG9j
YXRvcl90eXBlPjsKK3VzaW5nIElTdHJlYW0gPSBzdGQ6OmlzdHJlYW07Cit1c2luZyBPU3RyZWFt
ID0gc3RkOjpvc3RyZWFtOworfSAvLyBuYW1lc3BhY2UgSnNvbgogCisvLyBMZWdhY3kgbmFtZXMg
KGZvcm1lcmx5IG1hY3JvcykuCit1c2luZyBKU09OQ1BQX1NUUklORyA9IEpzb246OlN0cmluZzsK
K3VzaW5nIEpTT05DUFBfSVNUUklOR1NUUkVBTSA9IEpzb246OklTdHJpbmdTdHJlYW07Cit1c2lu
ZyBKU09OQ1BQX09TVFJJTkdTVFJFQU0gPSBKc29uOjpPU3RyaW5nU3RyZWFtOwordXNpbmcgSlNP
TkNQUF9JU1RSRUFNID0gSnNvbjo6SVN0cmVhbTsKK3VzaW5nIEpTT05DUFBfT1NUUkVBTSA9IEpz
b246Ok9TdHJlYW07CiAKICNlbmRpZiAvLyBKU09OX0NPTkZJR19IX0lOQ0xVREVECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL2luY2x1ZGUvanNvbi9mZWF0dXJlcy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vZmVh
dHVyZXMuaAppbmRleCA0MzUzMjc4NDQ2ZDdmOWViMWZmZGNlZjRiZjZmNTFkYzVmNjQ1Zjg4Li5i
YTI1ZThkYTY0NmEwNDNmMWM4OTc0ZmFiZTYyMDU2Nzc0MzM2Zjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L2luY2x1ZGUvanNvbi9mZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2ZlYXR1cmVz
LmgKQEAgLTEsNDkgKzEsNjEgQEAKLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVw
aWxsZXVyCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhl
IEpzb25DcHAgQXV0aG9ycwogLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1
YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2Rp
Y3Rpb24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCiAjaWZuZGVmIENQUFRMX0pTT05fRkVB
VFVSRVNfSF9JTkNMVURFRAotIyBkZWZpbmUgQ1BQVExfSlNPTl9GRUFUVVJFU19IX0lOQ0xVREVE
CisjZGVmaW5lIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAogCiAjaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgImZvcndhcmRzLmgiCisjaW5jbHVkZSAi
Zm9yd2FyZHMuaCIKICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikK
IAorI3ByYWdtYSBwYWNrKHB1c2gsIDgpCisKIG5hbWVzcGFjZSBKc29uIHsKIAotICAgLyoqIFxi
cmllZiBDb25maWd1cmF0aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KLSAgICAqIFRo
aXMgY29uZmlndXJhdGlvbiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRlciBv
ciBXcml0ZXIKLSAgICAqIHRvIGJlaGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5Lgot
ICAgICovCi0gICBjbGFzcyBKU09OX0FQSSBGZWF0dXJlcwotICAgewotICAgcHVibGljOgotICAg
ICAgLyoqIFxicmllZiBBIGNvbmZpZ3VyYXRpb24gdGhhdCBhbGxvd3MgYWxsIGZlYXR1cmVzIGFu
ZCBhc3N1bWVzIGFsbCBzdHJpbmdzIGFyZSBVVEYtOC4KLSAgICAgICAqIC0gQyAmIEMrKyBjb21t
ZW50cyBhcmUgYWxsb3dlZAotICAgICAgICogLSBSb290IG9iamVjdCBjYW4gYmUgYW55IEpTT04g
dmFsdWUKLSAgICAgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBlbmNvZGVkIGluIFVU
Ri04Ci0gICAgICAgKi8KLSAgICAgIHN0YXRpYyBGZWF0dXJlcyBhbGwoKTsKLQotICAgICAgLyoq
IFxicmllZiBBIGNvbmZpZ3VyYXRpb24gdGhhdCBpcyBzdHJpY3RseSBjb21wYXRpYmxlIHdpdGgg
dGhlIEpTT04gc3BlY2lmaWNhdGlvbi4KLSAgICAgICAqIC0gQ29tbWVudHMgYXJlIGZvcmJpZGRl
bi4KLSAgICAgICAqIC0gUm9vdCBvYmplY3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4g
b2JqZWN0IHZhbHVlLgotICAgICAgICogLSBBc3N1bWVzIFZhbHVlIHN0cmluZ3MgYXJlIGVuY29k
ZWQgaW4gVVRGLTgKLSAgICAgICAqLwotICAgICAgc3RhdGljIEZlYXR1cmVzIHN0cmljdE1vZGUo
KTsKLQotICAgICAgLyoqIFxicmllZiBJbml0aWFsaXplIHRoZSBjb25maWd1cmF0aW9uIGxpa2Ug
SnNvbkNvbmZpZzo6YWxsRmVhdHVyZXM7Ci0gICAgICAgKi8KLSAgICAgIEZlYXR1cmVzKCk7Ci0K
LSAgICAgIC8vLyBcYyB0cnVlIGlmIGNvbW1lbnRzIGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyB0
cnVlLgotICAgICAgYm9vbCBhbGxvd0NvbW1lbnRzXzsKLQotICAgICAgLy8vIFxjIHRydWUgaWYg
cm9vdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuIERlZmF1bHQ6
IFxjIGZhbHNlLgotICAgICAgYm9vbCBzdHJpY3RSb290XzsKLSAgIH07CisvKiogXGJyaWVmIENv
bmZpZ3VyYXRpb24gcGFzc2VkIHRvIHJlYWRlciBhbmQgd3JpdGVyLgorICogVGhpcyBjb25maWd1
cmF0aW9uIG9iamVjdCBjYW4gYmUgdXNlZCB0byBmb3JjZSB0aGUgUmVhZGVyIG9yIFdyaXRlcgor
ICogdG8gYmVoYXZlIGluIGEgc3RhbmRhcmQgY29uZm9ybWluZyB3YXkuCisgKi8KK2NsYXNzIEpT
T05fQVBJIEZlYXR1cmVzIHsKK3B1YmxpYzoKKyAgLyoqIFxicmllZiBBIGNvbmZpZ3VyYXRpb24g
dGhhdCBhbGxvd3MgYWxsIGZlYXR1cmVzIGFuZCBhc3N1bWVzIGFsbCBzdHJpbmdzCisgICAqIGFy
ZSBVVEYtOC4KKyAgICogLSBDICYgQysrIGNvbW1lbnRzIGFyZSBhbGxvd2VkCisgICAqIC0gUm9v
dCBvYmplY3QgY2FuIGJlIGFueSBKU09OIHZhbHVlCisgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJp
bmdzIGFyZSBlbmNvZGVkIGluIFVURi04CisgICAqLworICBzdGF0aWMgRmVhdHVyZXMgYWxsKCk7
CisKKyAgLyoqIFxicmllZiBBIGNvbmZpZ3VyYXRpb24gdGhhdCBpcyBzdHJpY3RseSBjb21wYXRp
YmxlIHdpdGggdGhlIEpTT04KKyAgICogc3BlY2lmaWNhdGlvbi4KKyAgICogLSBDb21tZW50cyBh
cmUgZm9yYmlkZGVuLgorICAgKiAtIFJvb3Qgb2JqZWN0IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5
IG9yIGFuIG9iamVjdCB2YWx1ZS4KKyAgICogLSBBc3N1bWVzIFZhbHVlIHN0cmluZ3MgYXJlIGVu
Y29kZWQgaW4gVVRGLTgKKyAgICovCisgIHN0YXRpYyBGZWF0dXJlcyBzdHJpY3RNb2RlKCk7CisK
KyAgLyoqIFxicmllZiBJbml0aWFsaXplIHRoZSBjb25maWd1cmF0aW9uIGxpa2UgSnNvbkNvbmZp
Zzo6YWxsRmVhdHVyZXM7CisgICAqLworICBGZWF0dXJlcygpOworCisgIC8vLyBcYyB0cnVlIGlm
IGNvbW1lbnRzIGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyB0cnVlLgorICBib29sIGFsbG93Q29t
bWVudHNfe3RydWV9OworCisgIC8vLyBcYyB0cnVlIGlmIHJvb3QgbXVzdCBiZSBlaXRoZXIgYW4g
YXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiBEZWZhdWx0OiBcYworICAvLy8gZmFsc2UuCisgIGJv
b2wgc3RyaWN0Um9vdF97ZmFsc2V9OworCisgIC8vLyBcYyB0cnVlIGlmIGRyb3BwZWQgbnVsbCBw
bGFjZWhvbGRlcnMgYXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgorICBib29sIGFsbG93
RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfe2ZhbHNlfTsKKworICAvLy8gXGMgdHJ1ZSBpZiBudW1l
cmljIG9iamVjdCBrZXkgYXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgorICBib29sIGFs
bG93TnVtZXJpY0tleXNfe2ZhbHNlfTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24KIAorI3By
YWdtYSBwYWNrKHBvcCkKKwogI2VuZGlmIC8vIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vZm9yd2FyZHMuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVk
ZS9qc29uL2ZvcndhcmRzLmgKaW5kZXggYWI4NjNkYTg1M2JlOGEwMDg4NTNjOGNmZmJlMDI0ZmFh
ZDExZjFmZC4uOTU4YjViY2M4MDM0OGEyYjI3NzVmZjg1ZmY2NTEyNTZjMzgxNmU2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vZm9yd2FyZHMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNv
bi9mb3J3YXJkcy5oCkBAIC0xLDQ0ICsxLDQzIEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJh
cHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxl
dXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNl
bnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlv
dXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkg
YXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBKU09O
X0ZPUldBUkRTX0hfSU5DTFVERUQKLSMgZGVmaW5lIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAor
I2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKIAogI2lmICFkZWZpbmVkKEpTT05fSVNf
QU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJjb25maWcuaCIK
ICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKIAogbmFtZXNwYWNl
IEpzb24gewogCi0gICAvLyB3cml0ZXIuaAotICAgY2xhc3MgRmFzdFdyaXRlcjsKLSAgIGNsYXNz
IFN0eWxlZFdyaXRlcjsKLQotICAgLy8gcmVhZGVyLmgKLSAgIGNsYXNzIFJlYWRlcjsKLQotICAg
Ly8gZmVhdHVyZXMuaAotICAgY2xhc3MgRmVhdHVyZXM7Ci0KLSAgIC8vIHZhbHVlLmgKLSAgIHR5
cGVkZWYgdW5zaWduZWQgaW50IEFycmF5SW5kZXg7Ci0gICBjbGFzcyBTdGF0aWNTdHJpbmc7Ci0g
ICBjbGFzcyBQYXRoOwotICAgY2xhc3MgUGF0aEFyZ3VtZW50OwotICAgY2xhc3MgVmFsdWU7Ci0g
ICBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsKLSAgIGNsYXNzIFZhbHVlSXRlcmF0b3I7Ci0gICBj
bGFzcyBWYWx1ZUNvbnN0SXRlcmF0b3I7Ci0jaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0gICBjbGFzcyBWYWx1ZU1hcEFsbG9jYXRvcjsKLSAgIGNsYXNzIFZhbHVlSW50ZXJuYWxM
aW5rOwotICAgY2xhc3MgVmFsdWVJbnRlcm5hbEFycmF5OwotICAgY2xhc3MgVmFsdWVJbnRlcm5h
bE1hcDsKLSNlbmRpZiAvLyAjaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCisvLyB3
cml0ZXIuaAorY2xhc3MgU3RyZWFtV3JpdGVyOworY2xhc3MgU3RyZWFtV3JpdGVyQnVpbGRlcjsK
K2NsYXNzIFdyaXRlcjsKK2NsYXNzIEZhc3RXcml0ZXI7CitjbGFzcyBTdHlsZWRXcml0ZXI7Citj
bGFzcyBTdHlsZWRTdHJlYW1Xcml0ZXI7CisKKy8vIHJlYWRlci5oCitjbGFzcyBSZWFkZXI7Citj
bGFzcyBDaGFyUmVhZGVyOworY2xhc3MgQ2hhclJlYWRlckJ1aWxkZXI7CisKKy8vIGZlYXR1cmVz
LmgKK2NsYXNzIEZlYXR1cmVzOworCisvLyB2YWx1ZS5oCit0eXBlZGVmIHVuc2lnbmVkIGludCBB
cnJheUluZGV4OworY2xhc3MgU3RhdGljU3RyaW5nOworY2xhc3MgUGF0aDsKK2NsYXNzIFBhdGhB
cmd1bWVudDsKK2NsYXNzIFZhbHVlOworY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7CitjbGFzcyBW
YWx1ZUl0ZXJhdG9yOworY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9yOwogCiB9IC8vIG5hbWVzcGFj
ZSBKc29uCiAKLQogI2VuZGlmIC8vIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9pbmNsdWRlL2pzb24vanNvbi5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vanNvbi5oCmlu
ZGV4IGRhNWZjOTY3ZWIyMWEwYjcyNTM0YjM0ODM1YWVhNjZjYjc2MzVjNjMuLjE5ZjE0YzI2NjRh
NmZkZmNkNzEyYTU4N2EwOWJlYjhkMTIwNzAyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9q
c29uL2pzb24uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9qc29uLmgKQEAgLTEsMTUgKzEsMTUg
QEAKLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmln
aHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycwog
Ly8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVz
aXJlZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmls
ZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3Jn
ZS5uZXQvTElDRU5TRQogCiAjaWZuZGVmIEpTT05fSlNPTl9IX0lOQ0xVREVECi0jIGRlZmluZSBK
U09OX0pTT05fSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0pTT05fSF9JTkNMVURFRAogCi0jIGlu
Y2x1ZGUgImF1dG9saW5rLmgiCi0jIGluY2x1ZGUgInZhbHVlLmgiCi0jIGluY2x1ZGUgInJlYWRl
ci5oIgotIyBpbmNsdWRlICJ3cml0ZXIuaCIKLSMgaW5jbHVkZSAiZmVhdHVyZXMuaCIKKyNpbmNs
dWRlICJhdXRvbGluay5oIgorI2luY2x1ZGUgImZlYXR1cmVzLmgiCisjaW5jbHVkZSAicmVhZGVy
LmgiCisjaW5jbHVkZSAidmFsdWUuaCIKKyNpbmNsdWRlICJ3cml0ZXIuaCIKIAogI2VuZGlmIC8v
IEpTT05fSlNPTl9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9yZWFk
ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3JlYWRlci5oCmluZGV4IGEzMDIzYjMxZjVmZTcyOTll
OWFkODMyODhjYTE3Nzc4YzMzNjI1NzguLjBmNDg5ZDZhZGIxYjA3ZDk5ZDhiZjc5YWJhODNhZjMw
MTJhMDI3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3JlYWRlci5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvaW5jbHVkZS9qc29uL3JlYWRlci5oCkBAIC0xLDIxMyArMSw0MTcgQEAKLS8vIENvcHlyaWdo
dCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJh
cHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycwogLy8gRGlzdHJpYnV0ZWQg
dW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8vIHJl
Y29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBk
ZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQog
CiAjaWZuZGVmIENQUFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKLSMgZGVmaW5lIENQUFRMX0pT
T05fUkVBREVSX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9SRUFERVJfSF9JTkNMVURF
RAogCiAjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgImZlYXR1
cmVzLmgiCi0jIGluY2x1ZGUgInZhbHVlLmgiCisjaW5jbHVkZSAiZmVhdHVyZXMuaCIKKyNpbmNs
dWRlICJ2YWx1ZS5oIgogI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9O
KQotIyBpbmNsdWRlIDxkZXF1ZT4KLSMgaW5jbHVkZSA8c3RhY2s+Ci0jIGluY2x1ZGUgPHN0cmlu
Zz4KKyNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxpb3Nmd2Q+CisjaW5jbHVkZSA8aXN0cmVh
bT4KKyNpbmNsdWRlIDxzdGFjaz4KKyNpbmNsdWRlIDxzdHJpbmc+CisKKy8vIERpc2FibGUgd2Fy
bmluZyBDNDI1MTogPGRhdGEgbWVtYmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVy
ZmFjZSB0bworLy8gYmUgdXNlZCBieS4uLgorI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RM
TF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJu
aW5nKGRpc2FibGUgOiA0MjUxKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxF
X0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworI3ByYWdtYSBwYWNrKHB1c2gsIDgpCiAKIG5hbWVz
cGFjZSBKc29uIHsKIAotICAgLyoqIFxicmllZiBVbnNlcmlhbGl6ZSBhIDxhIEhSRUY9Imh0dHA6
Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGRvY3VtZW50IGludG8gYSBWYWx1ZS4KLSAgICAqCisv
KiogXGJyaWVmIFVuc2VyaWFsaXplIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNP
TjwvYT4gZG9jdW1lbnQgaW50byBhCisgKlZhbHVlLgorICoKKyAqIFxkZXByZWNhdGVkIFVzZSBD
aGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgUmVh
ZGVyIHsKK3B1YmxpYzoKKyAgdHlwZWRlZiBjaGFyIENoYXI7CisgIHR5cGVkZWYgY29uc3QgQ2hh
ciogTG9jYXRpb247CisKKyAgLyoqIFxicmllZiBBbiBlcnJvciB0YWdnZWQgd2l0aCB3aGVyZSBp
biB0aGUgSlNPTiB0ZXh0IGl0IHdhcyBlbmNvdW50ZXJlZC4KKyAgICoKKyAgICogVGhlIG9mZnNl
dHMgZ2l2ZSB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSB0ZXh0
LiBOb3RlCisgICAqIHRoYXQgdGhpcyBpcyBieXRlcywgbm90IGNvZGVwb2ludHMuCisgICAqCisg
ICAqLworICBzdHJ1Y3QgU3RydWN0dXJlZEVycm9yIHsKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0X3N0
YXJ0OworICAgIHB0cmRpZmZfdCBvZmZzZXRfbGltaXQ7CisgICAgU3RyaW5nIG1lc3NhZ2U7Cisg
IH07CisKKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5nIGFsbCBmZWF0
dXJlcworICAgKiBmb3IgcGFyc2luZy4KKyAgICovCisgIEpTT05DUFBfREVQUkVDQVRFRCgiVXNl
IENoYXJSZWFkZXIgYW5kIENoYXJSZWFkZXJCdWlsZGVyIGluc3RlYWQiKQorICBSZWFkZXIoKTsK
KworICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSBSZWFkZXIgYWxsb3dpbmcgdGhlIHNwZWNpZmll
ZCBmZWF0dXJlIHNldAorICAgKiBmb3IgcGFyc2luZy4KKyAgICovCisgIEpTT05DUFBfREVQUkVD
QVRFRCgiVXNlIENoYXJSZWFkZXIgYW5kIENoYXJSZWFkZXJCdWlsZGVyIGluc3RlYWQiKQorICBS
ZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKTsKKworICAvKiogXGJyaWVmIFJlYWQgYSBW
YWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4KKyAgICog
ZG9jdW1lbnQuCisgICAqIFxwYXJhbSBkb2N1bWVudCBVVEYtOCBlbmNvZGVkIHN0cmluZyBjb250
YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250
YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAg
ICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBjb2xsZWN0Q29tbWVudHMg
XGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQorICAgKiBi
YWNrIGR1cmluZworICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxj
IGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCisgICAqICAgICAgICAgICAgICAgICAgICAgICAg
VGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgorICAgKiBGZWF0dXJlczo6YWxsb3dDb21tZW50
c18KKyAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KKyAgICogXHJldHVy
biBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFs
c2UgaWYgYW4KKyAgICogZXJyb3Igb2NjdXJyZWQuCisgICAqLworICBib29sCisgIHBhcnNlKGNv
bnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1l
bnRzID0gdHJ1ZSk7CisKKyAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9
Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+CisgICBkb2N1bWVudC4KKyAgICogXHBhcmFt
IGJlZ2luRG9jIFBvaW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBz
dHJpbmcgb2YgdGhlCisgICBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gZW5kRG9jIFBv
aW50ZXIgb24gdGhlIGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCisgICBk
b2N1bWVudCB0byByZWFkLgorICAgKiAgICAgICAgICAgICAgIE11c3QgYmUgPj0gYmVnaW5Eb2Mu
CisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRoZSBk
b2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBhcnNlZC4K
KyAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBh
bmQgYWxsb3cgd3JpdGluZyB0aGVtCisgICBiYWNrIGR1cmluZworICAgKiAgICAgICAgICAgICAg
ICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCisg
ICAqICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgor
ICAgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCisgICAqICAgICAgICAgICAgICAgICAgICAgICAg
aXMgXGMgZmFsc2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1
Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCisgICBlcnJvciBvY2N1cnJlZC4KKyAg
ICovCisgIGJvb2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAgICAgICAgY29u
c3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAg
IGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLy8vIFxicmllZiBQYXJzZSBmcm9t
IGlucHV0IHN0cmVhbS4KKyAgLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0m
LCBKc29uOjpWYWx1ZSYpLgorICBib29sIHBhcnNlKElTdHJlYW0mIGlzLCBWYWx1ZSYgcm9vdCwg
Ym9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKKworICAvKiogXGJyaWVmIFJldHVybnMgYSB1
c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3QgZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICog
ZG9jdW1lbnQuCisgICAqIFxyZXR1cm4gRm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUg
bGlzdCBvZiBlcnJvcnMgd2l0aCB0aGVpciBsb2NhdGlvbgorICAgKiBpbgorICAgKiAgICAgICAg
IHRoZSBwYXJzZWQgZG9jdW1lbnQuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBl
cnJvcgorICAgKiBvY2N1cnJlZAorICAgKiAgICAgICAgIGR1cmluZyBwYXJzaW5nLgorICAgKiBc
ZGVwcmVjYXRlZCBVc2UgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGluc3RlYWQgKHR5cG8g
Zml4KS4KKyAgICovCisgIEpTT05DUFBfREVQUkVDQVRFRCgiVXNlIGdldEZvcm1hdHRlZEVycm9y
TWVzc2FnZXMoKSBpbnN0ZWFkLiIpCisgIFN0cmluZyBnZXRGb3JtYXRlZEVycm9yTWVzc2FnZXMo
KSBjb25zdDsKKworICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0
aGF0IGxpc3QgZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1
cm4gRm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMgd2l0aCB0
aGVpciBsb2NhdGlvbgorICAgKiBpbgorICAgKiAgICAgICAgIHRoZSBwYXJzZWQgZG9jdW1lbnQu
IEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvcgorICAgKiBvY2N1cnJlZAor
ICAgKiAgICAgICAgIGR1cmluZyBwYXJzaW5nLgorICAgKi8KKyAgU3RyaW5nIGdldEZvcm1hdHRl
ZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKKworICAvKiogXGJyaWVmIFJldHVybnMgYSB2ZWN0b3Ig
b2Ygc3RydWN0dXJlZCBlcnJvcyBlbmNvdW50ZWQgd2hpbGUgcGFyc2luZy4KKyAgICogXHJldHVy
biBBIChwb3NzaWJseSBlbXB0eSkgdmVjdG9yIG9mIFN0cnVjdHVyZWRFcnJvciBvYmplY3RzLiBD
dXJyZW50bHkKKyAgICogICAgICAgICBvbmx5IG9uZSBlcnJvciBjYW4gYmUgcmV0dXJuZWQsIGJ1
dCB0aGUgY2FsbGVyIHNob3VsZCB0b2xlcmF0ZQorICAgKiBtdWx0aXBsZQorICAgKiAgICAgICAg
IGVycm9ycy4gIFRoaXMgY2FuIG9jY3VyIGlmIHRoZSBwYXJzZXIgcmVjb3ZlcnMgZnJvbSBhIG5v
bi1mYXRhbAorICAgKiAgICAgICAgIHBhcnNlIGVycm9yIGFuZCB0aGVuIGVuY291bnRlcnMgYWRk
aXRpb25hbCBlcnJvcnMuCisgICAqLworICBzdGQ6OnZlY3RvcjxTdHJ1Y3R1cmVkRXJyb3I+IGdl
dFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKKworICAvKiogXGJyaWVmIEFkZCBhIHNlbWFudGlj
IGVycm9yIG1lc3NhZ2UuCisgICAqIFxwYXJhbSB2YWx1ZSBKU09OIFZhbHVlIGxvY2F0aW9uIGFz
c29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKKyAgICogXHBhcmFtIG1lc3NhZ2UgVGhlIGVycm9yIG1l
c3NhZ2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZXJyb3Igd2FzIHN1Y2Nlc3NmdWxs
eSBhZGRlZCwgXGMgZmFsc2UgaWYgdGhlCisgICAqIFZhbHVlIG9mZnNldCBleGNlZWRzIHRoZSBk
b2N1bWVudCBzaXplLgorICAgKi8KKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVl
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworCisgIC8qKiBcYnJpZWYgQWRkIGEgc2VtYW50aWMg
ZXJyb3IgbWVzc2FnZSB3aXRoIGV4dHJhIGNvbnRleHQuCisgICAqIFxwYXJhbSB2YWx1ZSBKU09O
IFZhbHVlIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKKyAgICogXHBhcmFtIG1l
c3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuCisgICAqIFxwYXJhbSBleHRyYSBBZGRpdGlvbmFsIEpT
T04gVmFsdWUgbG9jYXRpb24gdG8gY29udGV4dHVhbGl6ZSB0aGUgZXJyb3IKKyAgICogXHJldHVy
biBcYyB0cnVlIGlmIHRoZSBlcnJvciB3YXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCBcYyBmYWxzZSBp
ZiBlaXRoZXIKKyAgICogVmFsdWUgb2Zmc2V0IGV4Y2VlZHMgdGhlIGRvY3VtZW50IHNpemUuCisg
ICAqLworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKTsKKworICAvKiogXGJyaWVmIFJldHVybiB3aGV0
aGVyIHRoZXJlIGFyZSBhbnkgZXJyb3JzLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlcmUg
YXJlIG5vIGVycm9ycyB0byByZXBvcnQgXGMgZmFsc2UgaWYKKyAgICogZXJyb3JzIGhhdmUgb2Nj
dXJyZWQuCisgICAqLworICBib29sIGdvb2QoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgZW51bSBU
b2tlblR5cGUgeworICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAorICAgIHRva2VuT2JqZWN0QmVn
aW4sCisgICAgdG9rZW5PYmplY3RFbmQsCisgICAgdG9rZW5BcnJheUJlZ2luLAorICAgIHRva2Vu
QXJyYXlFbmQsCisgICAgdG9rZW5TdHJpbmcsCisgICAgdG9rZW5OdW1iZXIsCisgICAgdG9rZW5U
cnVlLAorICAgIHRva2VuRmFsc2UsCisgICAgdG9rZW5OdWxsLAorICAgIHRva2VuQXJyYXlTZXBh
cmF0b3IsCisgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCisgICAgdG9rZW5Db21tZW50LAorICAg
IHRva2VuRXJyb3IKKyAgfTsKKworICBjbGFzcyBUb2tlbiB7CisgIHB1YmxpYzoKKyAgICBUb2tl
blR5cGUgdHlwZV87CisgICAgTG9jYXRpb24gc3RhcnRfOworICAgIExvY2F0aW9uIGVuZF87Cisg
IH07CisKKyAgY2xhc3MgRXJyb3JJbmZvIHsKKyAgcHVibGljOgorICAgIFRva2VuIHRva2VuXzsK
KyAgICBTdHJpbmcgbWVzc2FnZV87CisgICAgTG9jYXRpb24gZXh0cmFfOworICB9OworCisgIHR5
cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+IEVycm9yczsKKworICBib29sIHJlYWRUb2tlbihU
b2tlbiYgdG9rZW4pOworICB2b2lkIHNraXBTcGFjZXMoKTsKKyAgYm9vbCBtYXRjaChMb2NhdGlv
biBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCk7CisgIGJvb2wgcmVhZENvbW1lbnQoKTsKKyAg
Ym9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOworICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsK
KyAgYm9vbCByZWFkU3RyaW5nKCk7CisgIHZvaWQgcmVhZE51bWJlcigpOworICBib29sIHJlYWRW
YWx1ZSgpOworICBib29sIHJlYWRPYmplY3QoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCByZWFkQXJy
YXkoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKKyAg
Ym9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wg
ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0
b2tlbiwgU3RyaW5nJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2Vu
KTsKKyAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7Cisg
IGJvb2wgZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNl
KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRp
b24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9u
IGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1
bmljb2RlKTsKKyAgYm9vbCBhZGRFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0
b2tlbiwgTG9jYXRpb24gZXh0cmEgPSBudWxscHRyKTsKKyAgYm9vbCByZWNvdmVyRnJvbUVycm9y
KFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIGJvb2wgYWRkRXJyb3JBbmRSZWNvdmVyKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRv
a2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4p
OworICB2b2lkIHNraXBVbnRpbFNwYWNlKCk7CisgIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKKyAg
Q2hhciBnZXROZXh0Q2hhcigpOworICB2b2lkCisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihM
b2NhdGlvbiBsb2NhdGlvbiwgaW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7CisgIFN0cmlu
ZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0OworICB2
b2lkIGFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNl
bWVudCBwbGFjZW1lbnQpOworICB2b2lkIHNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbik7
CisKKyAgc3RhdGljIGJvb2wgY29udGFpbnNOZXdMaW5lKExvY2F0aW9uIGJlZ2luLCBMb2NhdGlv
biBlbmQpOworICBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZUVPTChMb2NhdGlvbiBiZWdpbiwgTG9j
YXRpb24gZW5kKTsKKworICB0eXBlZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKKyAgTm9k
ZXMgbm9kZXNfOworICBFcnJvcnMgZXJyb3JzXzsKKyAgU3RyaW5nIGRvY3VtZW50XzsKKyAgTG9j
YXRpb24gYmVnaW5fe307CisgIExvY2F0aW9uIGVuZF97fTsKKyAgTG9jYXRpb24gY3VycmVudF97
fTsKKyAgTG9jYXRpb24gbGFzdFZhbHVlRW5kX3t9OworICBWYWx1ZSogbGFzdFZhbHVlX3t9Owor
ICBTdHJpbmcgY29tbWVudHNCZWZvcmVfOworICBGZWF0dXJlcyBmZWF0dXJlc187CisgIGJvb2wg
Y29sbGVjdENvbW1lbnRzX3t9OworfTsgLy8gUmVhZGVyCisKKy8qKiBJbnRlcmZhY2UgZm9yIHJl
YWRpbmcgSlNPTiBmcm9tIGEgY2hhciBhcnJheS4KKyAqLworY2xhc3MgSlNPTl9BUEkgQ2hhclJl
YWRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfkNoYXJSZWFkZXIoKSA9IGRlZmF1bHQ7CisgIC8q
KiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3Jn
Ij5KU09OPC9hPgorICAgZG9jdW1lbnQuCisgICAqIFRoZSBkb2N1bWVudCBtdXN0IGJlIGEgVVRG
LTggZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgZG9jdW1lbnQgdG8KKyAgIHJlYWQuCisg
ICAqCisgICAqIFxwYXJhbSBiZWdpbkRvYyBQb2ludGVyIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IFVURi04IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICog
XHBhcmFtIGVuZERvYyBQb2ludGVyIG9uIHRoZSBlbmQgb2YgdGhlIFVURi04IGVuY29kZWQgc3Ry
aW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogICAgICAgIE11c3QgYmUgPj0g
YmVnaW5Eb2MuCisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVl
IG9mIHRoZSBkb2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5
IHBhcnNlZC4KKyAgICogXHBhcmFtIGVycnMgW291dF0gRm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Vz
IChpZiBub3QgTlVMTCkKKyAgICogICAgICAgIGEgdXNlciBmcmllbmRseSBzdHJpbmcgdGhhdCBs
aXN0cyBlcnJvcnMgaW4gdGhlIHBhcnNlZAorICAgKiBkb2N1bWVudC4KKyAgICogXHJldHVybiBc
YyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFsc2Ug
aWYgYW4KKyAgIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgdmlydHVhbCBib29sIHBhcnNlKGNo
YXIgY29uc3QqIGJlZ2luRG9jLAorICAgICAgICAgICAgICAgICAgICAgY2hhciBjb25zdCogZW5k
RG9jLAorICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHJvb3QsCisgICAgICAgICAgICAgICAg
ICAgICBTdHJpbmcqIGVycnMpID0gMDsKKworICBjbGFzcyBKU09OX0FQSSBGYWN0b3J5IHsKKyAg
cHVibGljOgorICAgIHZpcnR1YWwgfkZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgLyoqIFxicmll
ZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9yIG5ldygpLgorICAgICAqIFx0aHJv
dyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAoZS5nLiBpbnZhbGlkIHNl
dHRpbmdzKQorICAgICAqLworICAgIHZpcnR1YWwgQ2hhclJlYWRlciogbmV3Q2hhclJlYWRlcigp
IGNvbnN0ID0gMDsKKyAgfTsgLy8gRmFjdG9yeQorfTsgICAvLyBDaGFyUmVhZGVyCisKKy8qKiBc
YnJpZWYgQnVpbGQgYSBDaGFyUmVhZGVyIGltcGxlbWVudGF0aW9uLgorCitVc2FnZToKK1xjb2Rl
CisgIHVzaW5nIG5hbWVzcGFjZSBKc29uOworICBDaGFyUmVhZGVyQnVpbGRlciBidWlsZGVyOwor
ICBidWlsZGVyWyJjb2xsZWN0Q29tbWVudHMiXSA9IGZhbHNlOworICBWYWx1ZSB2YWx1ZTsKKyAg
U3RyaW5nIGVycnM7CisgIGJvb2wgb2sgPSBwYXJzZUZyb21TdHJlYW0oYnVpbGRlciwgc3RkOjpj
aW4sICZ2YWx1ZSwgJmVycnMpOworXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQSSBDaGFyUmVh
ZGVyQnVpbGRlciA6IHB1YmxpYyBDaGFyUmVhZGVyOjpGYWN0b3J5IHsKK3B1YmxpYzoKKyAgLy8g
Tm90ZTogV2UgdXNlIGEgSnNvbjo6VmFsdWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVtYmVy
cyB0byB0aGlzIGNsYXNzCisgIC8vIHdpdGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCisgIC8q
KiBDb25maWd1cmF0aW9uIG9mIHRoaXMgYnVpbGRlci4KKyAgICBUaGVzZSBhcmUgY2FzZS1zZW5z
aXRpdmUuCisgICAgQXZhaWxhYmxlIHNldHRpbmdzIChjYXNlLXNlbnNpdGl2ZSk6CisgICAgLSBg
ImNvbGxlY3RDb21tZW50cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgdG8gY29sbGVj
dCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgICAgICAgYmFjayBkdXJpbmcgc2Vy
aWFsaXphdGlvbiwgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4KKyAgICAgICAgVGhpcyBwYXJh
bWV0ZXIgaXMgaWdub3JlZCBpZiBhbGxvd0NvbW1lbnRzIGlzIGZhbHNlLgorICAgIC0gYCJhbGxv
d0NvbW1lbnRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiBjb21tZW50cyBhcmUg
YWxsb3dlZC4KKyAgICAtIGAic3RyaWN0Um9vdCI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRy
dWUgaWYgcm9vdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUKKyAg
ICAtIGAiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWVgCisgICAg
ICAtIHRydWUgaWYgZHJvcHBlZCBudWxsIHBsYWNlaG9sZGVycyBhcmUgYWxsb3dlZC4gKFNlZQor
ICAgIFN0cmVhbVdyaXRlckJ1aWxkZXIuKQorICAgIC0gYCJhbGxvd051bWVyaWNLZXlzIjogZmFs
c2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiBudW1lcmljIG9iamVjdCBrZXlzIGFyZSBhbGxv
d2VkLgorICAgIC0gYCJhbGxvd1NpbmdsZVF1b3RlcyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAt
IHRydWUgaWYgJycgYXJlIGFsbG93ZWQgZm9yIHN0cmluZ3MgKGJvdGgga2V5cyBhbmQgdmFsdWVz
KQorICAgIC0gYCJzdGFja0xpbWl0IjogaW50ZWdlcmAKKyAgICAgIC0gRXhjZWVkaW5nIHN0YWNr
TGltaXQgKHJlY3Vyc2l2ZSBkZXB0aCBvZiBgcmVhZFZhbHVlKClgKSB3aWxsCisgICAgICAgIGNh
dXNlIGFuIGV4Y2VwdGlvbi4KKyAgICAgIC0gVGhpcyBpcyBhIHNlY3VyaXR5IGlzc3VlIChzZWct
ZmF1bHRzIGNhdXNlZCBieSBkZWVwbHkgbmVzdGVkIEpTT04pLAorICAgICAgICBzbyB0aGUgZGVm
YXVsdCBpcyBsb3cuCisgICAgLSBgImZhaWxJZkV4dHJhIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAg
IC0gSWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ugd2hlbiBleHRyYSBub24td2hpdGVz
cGFjZSB0cmFpbHMKKyAgICAgICAgdGhlIEpTT04gdmFsdWUgaW4gdGhlIGlucHV0IHN0cmluZy4K
KyAgICAtIGAicmVqZWN0RHVwS2V5cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIElmIHRydWUs
IGBwYXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4gYSBrZXkgaXMgZHVwbGljYXRlZCB3aXRoaW4g
YW4KKyAgICBvYmplY3QuCisgICAgLSBgImFsbG93U3BlY2lhbEZsb2F0cyI6IGZhbHNlIG9yIHRy
dWVgCisgICAgICAtIElmIHRydWUsIHNwZWNpYWwgZmxvYXQgdmFsdWVzIChOYU5zIGFuZCBpbmZp
bml0aWVzKSBhcmUgYWxsb3dlZAorICAgICAgICBhbmQgdGhlaXIgdmFsdWVzIGFyZSBsb3NzZnJl
ZSByZXN0b3JhYmxlLgorCisgICAgWW91IGNhbiBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxm
CisgICAgdG8gc2VlIHRoZSBkZWZhdWx0cy4gWW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRo
ZW0ganVzdCBsaWtlIGFueQorICAgIEpTT04gVmFsdWUuCisgICAgXHNhIHNldERlZmF1bHRzKCkK
ICAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgUmVhZGVyCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAg
ICB0eXBlZGVmIGNoYXIgQ2hhcjsKLSAgICAgIHR5cGVkZWYgY29uc3QgQ2hhciAqTG9jYXRpb247
Ci0KLSAgICAgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxvd2luZyBhbGwgZmVh
dHVyZXMKLSAgICAgICAqIGZvciBwYXJzaW5nLgotICAgICAgICovCi0gICAgICBSZWFkZXIoKTsK
LQotICAgICAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5nIHRoZSBzcGVj
aWZpZWQgZmVhdHVyZSBzZXQKLSAgICAgICAqIGZvciBwYXJzaW5nLgotICAgICAgICovCi0gICAg
ICBSZWFkZXIoIGNvbnN0IEZlYXR1cmVzICZmZWF0dXJlcyApOwotCi0gICAgICAvKiogXGJyaWVm
IFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwv
YT4gZG9jdW1lbnQuCi0gICAgICAgKiBccGFyYW0gZG9jdW1lbnQgVVRGLTggZW5jb2RlZCBzdHJp
bmcgY29udGFpbmluZyB0aGUgZG9jdW1lbnQgdG8gcmVhZC4KLSAgICAgICAqIFxwYXJhbSByb290
IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRoZSBkb2N1bWVudCBpZiBpdCB3YXMK
LSAgICAgICAqICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCi0gICAgICAgKiBccGFy
YW0gY29sbGVjdENvbW1lbnRzIFxjIHRydWUgdG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3
cml0aW5nIHRoZW0gYmFjayBkdXJpbmcKLSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAg
c2VyaWFsaXphdGlvbiwgXGMgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4KLSAgICAgICAqICAg
ICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBGZWF0dXJl
czo6YWxsb3dDb21tZW50c18KLSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgaXMgXGMg
ZmFsc2UuCi0gICAgICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNj
ZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbiBlcnJvciBvY2N1cnJlZC4KLSAgICAgICAq
LwotICAgICAgYm9vbCBwYXJzZSggY29uc3Qgc3RkOjpzdHJpbmcgJmRvY3VtZW50LCAKLSAgICAg
ICAgICAgICAgICAgIFZhbHVlICZyb290LAotICAgICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0
Q29tbWVudHMgPSB0cnVlICk7Ci0KLSAgICAgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20g
YSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBkb2N1bWVudC4KLSAgICAg
ICAqIFxwYXJhbSBiZWdpbkRvYyBQb2ludGVyIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFVURi04
IGVuY29kZWQgc3RyaW5nIG9mIHRoZSBkb2N1bWVudCB0byByZWFkLgotICAgICAgICogXHBhcmFt
IGVuZERvYyBQb2ludGVyIG9uIHRoZSBlbmQgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9m
IHRoZSBkb2N1bWVudCB0byByZWFkLiAKLSAgICAgICBcICAgICAgICAgICAgICAgTXVzdCBiZSA+
PSBiZWdpbkRvYy4KLSAgICAgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290
IHZhbHVlIG9mIHRoZSBkb2N1bWVudCBpZiBpdCB3YXMKLSAgICAgICAqICAgICAgICAgICAgIHN1
Y2Nlc3NmdWxseSBwYXJzZWQuCi0gICAgICAgKiBccGFyYW0gY29sbGVjdENvbW1lbnRzIFxjIHRy
dWUgdG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0gYmFjayBkdXJpbmcK
LSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXphdGlvbiwgXGMgZmFsc2Ug
dG8gZGlzY2FyZCBjb21tZW50cy4KLSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgVGhp
cyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBGZWF0dXJlczo6YWxsb3dDb21tZW50c18KLSAgICAg
ICAqICAgICAgICAgICAgICAgICAgICAgICAgaXMgXGMgZmFsc2UuCi0gICAgICAgKiBccmV0dXJu
IFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxz
ZSBpZiBhbiBlcnJvciBvY2N1cnJlZC4KLSAgICAgICAqLwotICAgICAgYm9vbCBwYXJzZSggY29u
c3QgY2hhciAqYmVnaW5Eb2MsIGNvbnN0IGNoYXIgKmVuZERvYywgCi0gICAgICAgICAgICAgICAg
ICBWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzID0g
dHJ1ZSApOwotCi0gICAgICAvLy8gXGJyaWVmIFBhcnNlIGZyb20gaW5wdXQgc3RyZWFtLgotICAg
ICAgLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mLCBKc29uOjpWYWx1ZSYp
LgotICAgICAgYm9vbCBwYXJzZSggc3RkOjppc3RyZWFtICZpcywKLSAgICAgICAgICAgICAgICAg
IFZhbHVlICZyb290LAotICAgICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0
cnVlICk7Ci0KLSAgICAgIC8qKiBcYnJpZWYgUmV0dXJucyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5n
IHRoYXQgbGlzdCBlcnJvcnMgaW4gdGhlIHBhcnNlZCBkb2N1bWVudC4KLSAgICAgICAqIFxyZXR1
cm4gRm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMgd2l0aCB0
aGVpciBsb2NhdGlvbiBpbiAKLSAgICAgICAqICAgICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4g
QW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlmIG5vIGVycm9yIG9jY3VycmVkCi0gICAgICAg
KiAgICAgICAgIGR1cmluZyBwYXJzaW5nLgotICAgICAgICogXGRlcHJlY2F0ZWQgVXNlIGdldEZv
cm1hdHRlZEVycm9yTWVzc2FnZXMoKSBpbnN0ZWFkICh0eXBvIGZpeCkuCi0gICAgICAgKi8KLSAg
ICAgIEpTT05DUFBfREVQUkVDQVRFRCgiVXNlIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMgaW5z
dGVhZCIpIAotICAgICAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgY29u
c3Q7Ci0KLSAgICAgIC8qKiBcYnJpZWYgUmV0dXJucyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRo
YXQgbGlzdCBlcnJvcnMgaW4gdGhlIHBhcnNlZCBkb2N1bWVudC4KLSAgICAgICAqIFxyZXR1cm4g
Rm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMgd2l0aCB0aGVp
ciBsb2NhdGlvbiBpbiAKLSAgICAgICAqICAgICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4g
ZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlmIG5vIGVycm9yIG9jY3VycmVkCi0gICAgICAgKiAg
ICAgICAgIGR1cmluZyBwYXJzaW5nLgotICAgICAgICovCi0gICAgICBzdGQ6OnN0cmluZyBnZXRG
b3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICBlbnVt
IFRva2VuVHlwZQotICAgICAgewotICAgICAgICAgdG9rZW5FbmRPZlN0cmVhbSA9IDAsCi0gICAg
ICAgICB0b2tlbk9iamVjdEJlZ2luLAotICAgICAgICAgdG9rZW5PYmplY3RFbmQsCi0gICAgICAg
ICB0b2tlbkFycmF5QmVnaW4sCi0gICAgICAgICB0b2tlbkFycmF5RW5kLAotICAgICAgICAgdG9r
ZW5TdHJpbmcsCi0gICAgICAgICB0b2tlbk51bWJlciwKLSAgICAgICAgIHRva2VuVHJ1ZSwKLSAg
ICAgICAgIHRva2VuRmFsc2UsCi0gICAgICAgICB0b2tlbk51bGwsCi0gICAgICAgICB0b2tlbkFy
cmF5U2VwYXJhdG9yLAotICAgICAgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCi0gICAgICAgICB0
b2tlbkNvbW1lbnQsCi0gICAgICAgICB0b2tlbkVycm9yCi0gICAgICB9OwotCi0gICAgICBjbGFz
cyBUb2tlbgotICAgICAgewotICAgICAgcHVibGljOgotICAgICAgICAgVG9rZW5UeXBlIHR5cGVf
OwotICAgICAgICAgTG9jYXRpb24gc3RhcnRfOwotICAgICAgICAgTG9jYXRpb24gZW5kXzsKLSAg
ICAgIH07Ci0KLSAgICAgIGNsYXNzIEVycm9ySW5mbwotICAgICAgewotICAgICAgcHVibGljOgot
ICAgICAgICAgVG9rZW4gdG9rZW5fOwotICAgICAgICAgc3RkOjpzdHJpbmcgbWVzc2FnZV87Ci0g
ICAgICAgICBMb2NhdGlvbiBleHRyYV87Ci0gICAgICB9OwotCi0gICAgICB0eXBlZGVmIHN0ZDo6
ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7Ci0KLSAgICAgIGJvb2wgZXhwZWN0VG9rZW4oIFRva2Vu
VHlwZSB0eXBlLCBUb2tlbiAmdG9rZW4sIGNvbnN0IGNoYXIgKm1lc3NhZ2UgKTsKLSAgICAgIGJv
b2wgcmVhZFRva2VuKCBUb2tlbiAmdG9rZW4gKTsKLSAgICAgIHZvaWQgc2tpcFNwYWNlcygpOwot
ICAgICAgYm9vbCBtYXRjaCggTG9jYXRpb24gcGF0dGVybiwgCi0gICAgICAgICAgICAgICAgICBp
bnQgcGF0dGVybkxlbmd0aCApOwotICAgICAgYm9vbCByZWFkQ29tbWVudCgpOwotICAgICAgYm9v
bCByZWFkQ1N0eWxlQ29tbWVudCgpOwotICAgICAgYm9vbCByZWFkQ3BwU3R5bGVDb21tZW50KCk7
Ci0gICAgICBib29sIHJlYWRTdHJpbmcoKTsKLSAgICAgIHZvaWQgcmVhZE51bWJlcigpOwotICAg
ICAgYm9vbCByZWFkVmFsdWUoKTsKLSAgICAgIGJvb2wgcmVhZE9iamVjdCggVG9rZW4gJnRva2Vu
ICk7Ci0gICAgICBib29sIHJlYWRBcnJheSggVG9rZW4gJnRva2VuICk7Ci0gICAgICBib29sIGRl
Y29kZU51bWJlciggVG9rZW4gJnRva2VuICk7Ci0gICAgICBib29sIGRlY29kZVN0cmluZyggVG9r
ZW4gJnRva2VuICk7Ci0gICAgICBib29sIGRlY29kZVN0cmluZyggVG9rZW4gJnRva2VuLCBzdGQ6
OnN0cmluZyAmZGVjb2RlZCApOwotICAgICAgYm9vbCBkZWNvZGVEb3VibGUoIFRva2VuICZ0b2tl
biApOwotICAgICAgYm9vbCBkZWNvZGVVbmljb2RlQ29kZVBvaW50KCBUb2tlbiAmdG9rZW4sIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiAmY3VycmVudCwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApOwotICAg
ICAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoIFRva2VuICZ0b2tlbiwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gJmN1cnJlbnQsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICZ1bmlj
b2RlICk7Ci0gICAgICBib29sIGFkZEVycm9yKCBjb25zdCBzdGQ6OnN0cmluZyAmbWVzc2FnZSwg
Ci0gICAgICAgICAgICAgICAgICAgICBUb2tlbiAmdG9rZW4sCi0gICAgICAgICAgICAgICAgICAg
ICBMb2NhdGlvbiBleHRyYSA9IDAgKTsKLSAgICAgIGJvb2wgcmVjb3ZlckZyb21FcnJvciggVG9r
ZW5UeXBlIHNraXBVbnRpbFRva2VuICk7Ci0gICAgICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcigg
Y29uc3Qgc3RkOjpzdHJpbmcgJm1lc3NhZ2UsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRva2VuICZ0b2tlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5
cGUgc2tpcFVudGlsVG9rZW4gKTsKLSAgICAgIHZvaWQgc2tpcFVudGlsU3BhY2UoKTsKLSAgICAg
IFZhbHVlICZjdXJyZW50VmFsdWUoKTsKLSAgICAgIENoYXIgZ2V0TmV4dENoYXIoKTsKLSAgICAg
IHZvaWQgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKCBMb2NhdGlvbiBsb2NhdGlvbiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgJmxpbmUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICZjb2x1bW4gKSBjb25zdDsKLSAgICAgIHN0ZDo6
c3RyaW5nIGdldExvY2F0aW9uTGluZUFuZENvbHVtbiggTG9jYXRpb24gbG9jYXRpb24gKSBjb25z
dDsKLSAgICAgIHZvaWQgYWRkQ29tbWVudCggTG9jYXRpb24gYmVnaW4sIAotICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50
UGxhY2VtZW50IHBsYWNlbWVudCApOwotICAgICAgdm9pZCBza2lwQ29tbWVudFRva2VucyggVG9r
ZW4gJnRva2VuICk7Ci0gICAKLSAgICAgIHR5cGVkZWYgc3RkOjpzdGFjazxWYWx1ZSAqPiBOb2Rl
czsKLSAgICAgIE5vZGVzIG5vZGVzXzsKLSAgICAgIEVycm9ycyBlcnJvcnNfOwotICAgICAgc3Rk
OjpzdHJpbmcgZG9jdW1lbnRfOwotICAgICAgTG9jYXRpb24gYmVnaW5fOwotICAgICAgTG9jYXRp
b24gZW5kXzsKLSAgICAgIExvY2F0aW9uIGN1cnJlbnRfOwotICAgICAgTG9jYXRpb24gbGFzdFZh
bHVlRW5kXzsKLSAgICAgIFZhbHVlICpsYXN0VmFsdWVfOwotICAgICAgc3RkOjpzdHJpbmcgY29t
bWVudHNCZWZvcmVfOwotICAgICAgRmVhdHVyZXMgZmVhdHVyZXNfOwotICAgICAgYm9vbCBjb2xs
ZWN0Q29tbWVudHNfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBSZWFkIGZyb20gJ3NpbicgaW50
byAncm9vdCcuCi0KLSAgICBBbHdheXMga2VlcCBjb21tZW50cyBmcm9tIHRoZSBpbnB1dCBKU09O
LgotCi0gICAgVGhpcyBjYW4gYmUgdXNlZCB0byByZWFkIGEgZmlsZSBpbnRvIGEgcGFydGljdWxh
ciBzdWItb2JqZWN0LgotICAgIEZvciBleGFtcGxlOgotICAgIFxjb2RlCi0gICAgSnNvbjo6VmFs
dWUgcm9vdDsKLSAgICBjaW4gPj4gcm9vdFsiZGlyIl1bImZpbGUiXTsKLSAgICBjb3V0IDw8IHJv
b3Q7Ci0gICAgXGVuZGNvZGUKLSAgICBSZXN1bHQ6Ci0gICAgXHZlcmJhdGltCi0gICAgewotICAg
ICJkaXIiOiB7Ci0gICAgICAgICJmaWxlIjogewotICAgICAgICAvLyBUaGUgaW5wdXQgc3RyZWFt
IEpTT04gd291bGQgYmUgbmVzdGVkIGhlcmUuCi0gICAgICAgIH0KLSAgICB9Ci0gICAgfQotICAg
IFxlbmR2ZXJiYXRpbQotICAgIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBvbiBwYXJzZSBlcnJvci4K
LSAgICBcc2VlIEpzb246Om9wZXJhdG9yPDwoKQotICAgKi8KLSAgIHN0ZDo6aXN0cmVhbSYgb3Bl
cmF0b3I+Piggc3RkOjppc3RyZWFtJiwgVmFsdWUmICk7CisgIEpzb246OlZhbHVlIHNldHRpbmdz
XzsKKworICBDaGFyUmVhZGVyQnVpbGRlcigpOworICB+Q2hhclJlYWRlckJ1aWxkZXIoKSBvdmVy
cmlkZTsKKworICBDaGFyUmVhZGVyKiBuZXdDaGFyUmVhZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisK
KyAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAnc2V0dGluZ3MnIGFyZSBsZWdhbCBhbmQgY29uc2lzdGVu
dDsKKyAgICogICBvdGhlcndpc2UsIGluZGljYXRlIGJhZCBzZXR0aW5ncyB2aWEgJ2ludmFsaWQn
LgorICAgKi8KKyAgYm9vbCB2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3Q7CisK
KyAgLyoqIEEgc2ltcGxlIHdheSB0byB1cGRhdGUgYSBzcGVjaWZpYyBzZXR0aW5nLgorICAgKi8K
KyAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3QgU3RyaW5nJiBrZXkpOworCisgIC8qKiBDYWxsZWQg
YnkgY3RvciwgYnV0IHlvdSBjYW4gdXNlIHRoaXMgdG8gcmVzZXQgc2V0dGluZ3NfLgorICAgKiBc
cHJlICdzZXR0aW5ncycgIT0gTlVMTCAoYnV0IEpzb246Om51bGwgaXMgZmluZSkKKyAgICogXHJl
bWFyayBEZWZhdWx0czoKKyAgICogXHNuaXBwZXQgc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNw
cCBDaGFyUmVhZGVyQnVpbGRlckRlZmF1bHRzCisgICAqLworICBzdGF0aWMgdm9pZCBzZXREZWZh
dWx0cyhKc29uOjpWYWx1ZSogc2V0dGluZ3MpOworICAvKiogU2FtZSBhcyBvbGQgRmVhdHVyZXM6
OnN0cmljdE1vZGUoKS4KKyAgICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpu
dWxsIGlzIGZpbmUpCisgICAqIFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9s
aWJfanNvbi9qc29uX3JlYWRlci5jcHAgQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlCisgICAq
LworICBzdGF0aWMgdm9pZCBzdHJpY3RNb2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Cit9Owor
CisvKiogQ29uc3VtZSBlbnRpcmUgc3RyZWFtIGFuZCB1c2UgaXRzIGJlZ2luL2VuZC4KKyAqIFNv
bWVkYXkgd2UgbWlnaHQgaGF2ZSBhIHJlYWwgU3RyZWFtUmVhZGVyLCBidXQgZm9yIG5vdyB0aGlz
CisgKiBpcyBjb252ZW5pZW50LgorICovCitib29sIEpTT05fQVBJIHBhcnNlRnJvbVN0cmVhbShD
aGFyUmVhZGVyOjpGYWN0b3J5IGNvbnN0JiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElTdHJlYW0mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHJvb3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcqIGVycnMpOworCisvKiogXGJyaWVm
IFJlYWQgZnJvbSAnc2luJyBpbnRvICdyb290Jy4KKworIEFsd2F5cyBrZWVwIGNvbW1lbnRzIGZy
b20gdGhlIGlucHV0IEpTT04uCisKKyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYWQgYSBmaWxlIGlu
dG8gYSBwYXJ0aWN1bGFyIHN1Yi1vYmplY3QuCisgRm9yIGV4YW1wbGU6CisgXGNvZGUKKyBKc29u
OjpWYWx1ZSByb290OworIGNpbiA+PiByb290WyJkaXIiXVsiZmlsZSJdOworIGNvdXQgPDwgcm9v
dDsKKyBcZW5kY29kZQorIFJlc3VsdDoKKyBcdmVyYmF0aW0KKyB7CisgImRpciI6IHsKKyAgICAg
ImZpbGUiOiB7CisgICAgIC8vIFRoZSBpbnB1dCBzdHJlYW0gSlNPTiB3b3VsZCBiZSBuZXN0ZWQg
aGVyZS4KKyAgICAgfQorIH0KKyB9CisgXGVuZHZlcmJhdGltCisgXHRocm93IHN0ZDo6ZXhjZXB0
aW9uIG9uIHBhcnNlIGVycm9yLgorIFxzZWUgSnNvbjo6b3BlcmF0b3I8PCgpCisqLworSlNPTl9B
UEkgSVN0cmVhbSYgb3BlcmF0b3I+PihJU3RyZWFtJiwgVmFsdWUmKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSnNvbgogCisjcHJhZ21hIHBhY2socG9wKQorCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FC
TEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAv
LyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKICNl
bmRpZiAvLyBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2lu
Y2x1ZGUvanNvbi92YWx1ZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vdmFsdWUuaAppbmRleCBiMDEz
YzliOGVhYzY4YmExMjY0OWVhZTU0NWY1MTZhZTM3MDU3OWQ5Li45NTdmM2Y2ZjY3NjU2YmY1M2Vl
NWZlN2FjNjhkOTQ5ZjkwYjdmOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi92YWx1
ZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3ZhbHVlLmgKQEAgLTEsMTEwOSArMSw5MDcgQEAK
LS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmlnaHQg
MjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycwogLy8g
RGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJl
ZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmlsZSBM
SUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5u
ZXQvTElDRU5TRQogCiAjaWZuZGVmIENQUFRMX0pTT05fSF9JTkNMVURFRAotIyBkZWZpbmUgQ1BQ
VExfSlNPTl9IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAogCiAjaWYg
IWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgImZvcndhcmRzLmgiCisj
aW5jbHVkZSAiZm9yd2FyZHMuaCIKICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxH
QU1BVElPTikKLSMgaW5jbHVkZSA8c3RyaW5nPgotIyBpbmNsdWRlIDx2ZWN0b3I+Ci0KLSMgaWZu
ZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCi0jICBpbmNsdWRlIDxtYXA+Ci0jIGVsc2UKLSMg
IGluY2x1ZGUgPGNwcHRsL3NtYWxsbWFwLmg+Ci0jIGVuZGlmCi0jIGlmZGVmIEpTT05fVVNFX0NQ
UFRMCi0jICBpbmNsdWRlIDxjcHB0bC9mb3J3YXJkcy5oPgotIyBlbmRpZgorI2luY2x1ZGUgPGFy
cmF5PgorI2luY2x1ZGUgPGV4Y2VwdGlvbj4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8
c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2lmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFM
TE1BUAorI2luY2x1ZGUgPG1hcD4KKyNlbHNlCisjaW5jbHVkZSA8Y3BwdGwvc21hbGxtYXAuaD4K
KyNlbmRpZgorI2lmZGVmIEpTT05fVVNFX0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvZm9yd2FyZHMu
aD4KKyNlbmRpZgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0
eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNp
ZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21h
IHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAv
LyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNw
cmFnbWEgcGFjayhwdXNoLCA4KQogCiAvKiogXGJyaWVmIEpTT04gKEphdmFTY3JpcHQgT2JqZWN0
IE5vdGF0aW9uKS4KICAqLwogbmFtZXNwYWNlIEpzb24gewogCi0gICAvKiogXGJyaWVmIFR5cGUg
b2YgdGhlIHZhbHVlIGhlbGQgYnkgYSBWYWx1ZSBvYmplY3QuCi0gICAgKi8KLSAgIGVudW0gVmFs
dWVUeXBlCi0gICB7Ci0gICAgICBudWxsVmFsdWUgPSAwLCAvLy88ICdudWxsJyB2YWx1ZQotICAg
ICAgaW50VmFsdWUsICAgICAgLy8vPCBzaWduZWQgaW50ZWdlciB2YWx1ZQotICAgICAgdWludFZh
bHVlLCAgICAgLy8vPCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlCi0gICAgICByZWFsVmFsdWUsICAg
ICAvLy88IGRvdWJsZSB2YWx1ZQotICAgICAgc3RyaW5nVmFsdWUsICAgLy8vPCBVVEYtOCBzdHJp
bmcgdmFsdWUKLSAgICAgIGJvb2xlYW5WYWx1ZSwgIC8vLzwgYm9vbCB2YWx1ZQotICAgICAgYXJy
YXlWYWx1ZSwgICAgLy8vPCBhcnJheSB2YWx1ZSAob3JkZXJlZCBsaXN0KQotICAgICAgb2JqZWN0
VmFsdWUgICAgLy8vPCBvYmplY3QgdmFsdWUgKGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWly
cykuCi0gICB9OwotCi0gICBlbnVtIENvbW1lbnRQbGFjZW1lbnQKLSAgIHsKLSAgICAgIGNvbW1l
bnRCZWZvcmUgPSAwLCAgICAgICAgLy8vPCBhIGNvbW1lbnQgcGxhY2VkIG9uIHRoZSBsaW5lIGJl
Zm9yZSBhIHZhbHVlCi0gICAgICBjb21tZW50QWZ0ZXJPblNhbWVMaW5lLCAgIC8vLzwgYSBjb21t
ZW50IGp1c3QgYWZ0ZXIgYSB2YWx1ZSBvbiB0aGUgc2FtZSBsaW5lCi0gICAgICBjb21tZW50QWZ0
ZXIsICAgICAgICAgICAgIC8vLzwgYSBjb21tZW50IG9uIHRoZSBsaW5lIGFmdGVyIGEgdmFsdWUg
KG9ubHkgbWFrZSBzZW5zZSBmb3Igcm9vdCB2YWx1ZSkKLSAgICAgIG51bWJlck9mQ29tbWVudFBs
YWNlbWVudAotICAgfTsKKyNpZiBKU09OX1VTRV9FWENFUFRJT04KKy8qKiBCYXNlIGNsYXNzIGZv
ciBhbGwgZXhjZXB0aW9ucyB3ZSB0aHJvdy4KKyAqCisgKiBXZSB1c2Ugbm90aGluZyBidXQgdGhl
c2UgaW50ZXJuYWxseS4gT2YgY291cnNlLCBTVEwgY2FuIHRocm93IG90aGVycy4KKyAqLworY2xh
c3MgSlNPTl9BUEkgRXhjZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsKK3B1YmxpYzoK
KyAgRXhjZXB0aW9uKFN0cmluZyBtc2cpOworICB+RXhjZXB0aW9uKCkgSlNPTkNQUF9OT0VYQ0VQ
VCBvdmVycmlkZTsKKyAgY2hhciBjb25zdCogd2hhdCgpIGNvbnN0IEpTT05DUFBfTk9FWENFUFQg
b3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgU3RyaW5nIG1zZ187Cit9OworCisvKiogRXhjZXB0
aW9ucyB3aGljaCB0aGUgdXNlciBjYW5ub3QgZWFzaWx5IGF2b2lkLgorICoKKyAqIEUuZy4gb3V0
LW9mLW1lbW9yeSAod2hlbiB3ZSB1c2UgbWFsbG9jKSwgc3RhY2stb3ZlcmZsb3csIG1hbGljaW91
cyBpbnB1dAorICoKKyAqIFxyZW1hcmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgorICov
CitjbGFzcyBKU09OX0FQSSBSdW50aW1lRXJyb3IgOiBwdWJsaWMgRXhjZXB0aW9uIHsKK3B1Ymxp
YzoKKyAgUnVudGltZUVycm9yKFN0cmluZyBjb25zdCYgbXNnKTsKK307CisKKy8qKiBFeGNlcHRp
b25zIHRocm93biBieSBKU09OX0FTU0VSVC9KU09OX0ZBSUwgbWFjcm9zLgorICoKKyAqIFRoZXNl
IGFyZSBwcmVjb25kaXRpb24tdmlvbGF0aW9ucyAodXNlciBidWdzKSBhbmQgaW50ZXJuYWwgZXJy
b3JzIChvdXIgYnVncykuCisgKgorICogXHJlbWFyayBkZXJpdmVkIGZyb20gSnNvbjo6RXhjZXB0
aW9uCisgKi8KK2NsYXNzIEpTT05fQVBJIExvZ2ljRXJyb3IgOiBwdWJsaWMgRXhjZXB0aW9uIHsK
K3B1YmxpYzoKKyAgTG9naWNFcnJvcihTdHJpbmcgY29uc3QmIG1zZyk7Cit9OworI2VuZGlmCisK
Ky8vLyB1c2VkIGludGVybmFsbHkKK1tbbm9yZXR1cm5dXSB2b2lkIHRocm93UnVudGltZUVycm9y
KFN0cmluZyBjb25zdCYgbXNnKTsKKy8vLyB1c2VkIGludGVybmFsbHkKK1tbbm9yZXR1cm5dXSB2
b2lkIHRocm93TG9naWNFcnJvcihTdHJpbmcgY29uc3QmIG1zZyk7CisKKy8qKiBcYnJpZWYgVHlw
ZSBvZiB0aGUgdmFsdWUgaGVsZCBieSBhIFZhbHVlIG9iamVjdC4KKyAqLworZW51bSBWYWx1ZVR5
cGUgeworICBudWxsVmFsdWUgPSAwLCAvLy88ICdudWxsJyB2YWx1ZQorICBpbnRWYWx1ZSwgICAg
ICAvLy88IHNpZ25lZCBpbnRlZ2VyIHZhbHVlCisgIHVpbnRWYWx1ZSwgICAgIC8vLzwgdW5zaWdu
ZWQgaW50ZWdlciB2YWx1ZQorICByZWFsVmFsdWUsICAgICAvLy88IGRvdWJsZSB2YWx1ZQorICBz
dHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2YWx1ZQorICBib29sZWFuVmFsdWUsICAv
Ly88IGJvb2wgdmFsdWUKKyAgYXJyYXlWYWx1ZSwgICAgLy8vPCBhcnJheSB2YWx1ZSAob3JkZXJl
ZCBsaXN0KQorICBvYmplY3RWYWx1ZSAgICAvLy88IG9iamVjdCB2YWx1ZSAoY29sbGVjdGlvbiBv
ZiBuYW1lL3ZhbHVlIHBhaXJzKS4KK307CisKK2VudW0gQ29tbWVudFBsYWNlbWVudCB7CisgIGNv
bW1lbnRCZWZvcmUgPSAwLCAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNlZCBvbiB0aGUgbGluZSBi
ZWZvcmUgYSB2YWx1ZQorICBjb21tZW50QWZ0ZXJPblNhbWVMaW5lLCAvLy88IGEgY29tbWVudCBq
dXN0IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQorICBjb21tZW50QWZ0ZXIsIC8vLzwg
YSBjb21tZW50IG9uIHRoZSBsaW5lIGFmdGVyIGEgdmFsdWUgKG9ubHkgbWFrZSBzZW5zZSBmb3IK
KyAgLy8vIHJvb3QgdmFsdWUpCisgIG51bWJlck9mQ29tbWVudFBsYWNlbWVudAorfTsKKworLyoq
IFxicmllZiBUeXBlIG9mIHByZWNpc2lvbiBmb3IgZm9ybWF0dGluZyBvZiByZWFsIHZhbHVlcy4K
KyAqLworZW51bSBQcmVjaXNpb25UeXBlIHsKKyAgc2lnbmlmaWNhbnREaWdpdHMgPSAwLCAvLy88
IHdlIHNldCBtYXggbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBpbiBzdHJpbmcKKyAgZGVj
aW1hbFBsYWNlcyAgICAgICAgICAvLy88IHdlIHNldCBtYXggbnVtYmVyIG9mIGRpZ2l0cyBhZnRl
ciAiLiIgaW4gc3RyaW5nCit9OwogCiAvLyMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKIC8vICAgdHlw
ZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25zdCBjaGFyICo+IEVudW1NZW1iZXJOYW1lczsK
IC8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25zdCBWYWx1ZSAmPiBFbnVtVmFs
dWVzOwogLy8jIGVuZGlmCiAKLSAgIC8qKiBcYnJpZWYgTGlnaHR3ZWlnaHQgd3JhcHBlciB0byB0
YWcgc3RhdGljIHN0cmluZy4KLSAgICAqCi0gICAgKiBWYWx1ZSBjb25zdHJ1Y3RvciBhbmQgb2Jq
ZWN0VmFsdWUgbWVtYmVyIGFzc2lnbmVtZW50IHRha2VzIGFkdmFudGFnZSBvZiB0aGUKLSAgICAq
IFN0YXRpY1N0cmluZyBhbmQgYXZvaWQgdGhlIGNvc3Qgb2Ygc3RyaW5nIGR1cGxpY2F0aW9uIHdo
ZW4gc3RvcmluZyB0aGUKLSAgICAqIHN0cmluZyBvciB0aGUgbWVtYmVyIG5hbWUuCi0gICAgKgot
ICAgICogRXhhbXBsZSBvZiB1c2FnZToKLSAgICAqIFxjb2RlCi0gICAgKiBKc29uOjpWYWx1ZSBh
VmFsdWUoIFN0YXRpY1N0cmluZygic29tZSB0ZXh0IikgKTsKLSAgICAqIEpzb246OlZhbHVlIG9i
amVjdDsKLSAgICAqIHN0YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOwotICAg
ICogb2JqZWN0W2NvZGVdID0gMTIzNDsKLSAgICAqIFxlbmRjb2RlCi0gICAgKi8KLSAgIGNsYXNz
IEpTT05fQVBJIFN0YXRpY1N0cmluZwotICAgewotICAgcHVibGljOgotICAgICAgZXhwbGljaXQg
U3RhdGljU3RyaW5nKCBjb25zdCBjaGFyICpjenN0cmluZyApCi0gICAgICAgICA6IHN0cl8oIGN6
c3RyaW5nICkKLSAgICAgIHsKLSAgICAgIH0KLQotICAgICAgb3BlcmF0b3IgY29uc3QgY2hhciAq
KCkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBzdHJfOwotICAgICAgfQotCi0gICAg
ICBjb25zdCBjaGFyICpjX3N0cigpIGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gc3Ry
XzsKLSAgICAgIH0KLQotICAgcHJpdmF0ZToKLSAgICAgIGNvbnN0IGNoYXIgKnN0cl87Ci0gICB9
OwotCi0gICAvKiogXGJyaWVmIFJlcHJlc2VudHMgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24u
b3JnIj5KU09OPC9hPiB2YWx1ZS4KLSAgICAqCi0gICAgKiBUaGlzIGNsYXNzIGlzIGEgZGlzY3Jp
bWluYXRlZCB1bmlvbiB3cmFwcGVyIHRoYXQgY2FuIHJlcHJlc2VudHMgYToKLSAgICAqIC0gc2ln
bmVkIGludGVnZXIgW3JhbmdlOiBWYWx1ZTo6bWluSW50IC0gVmFsdWU6Om1heEludF0KLSAgICAq
IC0gdW5zaWduZWQgaW50ZWdlciAocmFuZ2U6IDAgLSBWYWx1ZTo6bWF4VUludCkKLSAgICAqIC0g
ZG91YmxlCi0gICAgKiAtIFVURi04IHN0cmluZwotICAgICogLSBib29sZWFuCi0gICAgKiAtICdu
dWxsJwotICAgICogLSBhbiBvcmRlcmVkIGxpc3Qgb2YgVmFsdWUKLSAgICAqIC0gY29sbGVjdGlv
biBvZiBuYW1lL3ZhbHVlIHBhaXJzIChqYXZhc2NyaXB0IG9iamVjdCkKLSAgICAqCi0gICAgKiBU
aGUgdHlwZSBvZiB0aGUgaGVsZCB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBhICNWYWx1ZVR5cGUg
YW5kIAotICAgICogY2FuIGJlIG9idGFpbmVkIHVzaW5nIHR5cGUoKS4KLSAgICAqCi0gICAgKiB2
YWx1ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNhcnJheVZhbHVlIGNhbiBiZSBhY2Nlc3NlZCB1
c2luZyBvcGVyYXRvcltdKCkgbWV0aG9kcy4gCi0gICAgKiBOb24gY29uc3QgbWV0aG9kcyB3aWxs
IGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNudWxsVmFsdWUgZWxlbWVudCAKLSAgICAqIGlm
IGl0IGRvZXMgbm90IGV4aXN0LiAKLSAgICAqIFRoZSBzZXF1ZW5jZSBvZiBhbiAjYXJyYXlWYWx1
ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVzaXplIGFuZCBpbml0aWFsaXplZCAKLSAgICAqIHdp
dGggI251bGxWYWx1ZS4gcmVzaXplKCkgY2FuIGJlIHVzZWQgdG8gZW5sYXJnZSBvciB0cnVuY2F0
ZSBhbiAjYXJyYXlWYWx1ZS4KLSAgICAqCi0gICAgKiBUaGUgZ2V0KCkgbWV0aG9kcyBjYW4gYmUg
dXNlZCB0byBvYnRhbmlzIGRlZmF1bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlIHJlcXVpcmVkIGVs
ZW1lbnQKLSAgICAqIGRvZXMgbm90IGV4aXN0LgotICAgICoKLSAgICAqIEl0IGlzIHBvc3NpYmxl
IHRvIGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBhICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcg
Ci0gICAgKiB0aGUgZ2V0TWVtYmVyTmFtZXMoKSBtZXRob2QuCi0gICAgKi8KLSAgIGNsYXNzIEpT
T05fQVBJIFZhbHVlIAotICAgewotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNl
OwotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGZyaWVuZCBjbGFz
cyBWYWx1ZUludGVybmFsTGluazsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZUludGVybmFsTWFw
OwotIyBlbmRpZgotICAgcHVibGljOgotICAgICAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4gTWVtYmVyczsKLSAgICAgIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBpdGVyYXRvcjsKLSAg
ICAgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotICAgICAgdHlw
ZWRlZiBKc29uOjpVSW50IFVJbnQ7Ci0gICAgICB0eXBlZGVmIEpzb246OkludCBJbnQ7Ci0jIGlm
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICAgICB0eXBlZGVmIEpzb246OlVJbnQ2NCBVSW50
NjQ7Ci0gICAgICB0eXBlZGVmIEpzb246OkludDY0IEludDY0OworLyoqIFxicmllZiBMaWdodHdl
aWdodCB3cmFwcGVyIHRvIHRhZyBzdGF0aWMgc3RyaW5nLgorICoKKyAqIFZhbHVlIGNvbnN0cnVj
dG9yIGFuZCBvYmplY3RWYWx1ZSBtZW1iZXIgYXNzaWdubWVudCB0YWtlcyBhZHZhbnRhZ2Ugb2Yg
dGhlCisgKiBTdGF0aWNTdHJpbmcgYW5kIGF2b2lkIHRoZSBjb3N0IG9mIHN0cmluZyBkdXBsaWNh
dGlvbiB3aGVuIHN0b3JpbmcgdGhlCisgKiBzdHJpbmcgb3IgdGhlIG1lbWJlciBuYW1lLgorICoK
KyAqIEV4YW1wbGUgb2YgdXNhZ2U6CisgKiBcY29kZQorICogSnNvbjo6VmFsdWUgYVZhbHVlKCBT
dGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7CisgKiBKc29uOjpWYWx1ZSBvYmplY3Q7CisgKiBz
dGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUiKTsKKyAqIG9iamVjdFtjb2RlXSA9
IDEyMzQ7CisgKiBcZW5kY29kZQorICovCitjbGFzcyBKU09OX0FQSSBTdGF0aWNTdHJpbmcgewor
cHVibGljOgorICBleHBsaWNpdCBTdGF0aWNTdHJpbmcoY29uc3QgY2hhciogY3pzdHJpbmcpIDog
Y19zdHJfKGN6c3RyaW5nKSB7fQorCisgIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgY29uc3QgeyBy
ZXR1cm4gY19zdHJfOyB9CisKKyAgY29uc3QgY2hhciogY19zdHIoKSBjb25zdCB7IHJldHVybiBj
X3N0cl87IH0KKworcHJpdmF0ZToKKyAgY29uc3QgY2hhciogY19zdHJfOworfTsKKworLyoqIFxi
cmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4g
dmFsdWUuCisgKgorICogVGhpcyBjbGFzcyBpcyBhIGRpc2NyaW1pbmF0ZWQgdW5pb24gd3JhcHBl
ciB0aGF0IGNhbiByZXByZXNlbnRzIGE6CisgKiAtIHNpZ25lZCBpbnRlZ2VyIFtyYW5nZTogVmFs
dWU6Om1pbkludCAtIFZhbHVlOjptYXhJbnRdCisgKiAtIHVuc2lnbmVkIGludGVnZXIgKHJhbmdl
OiAwIC0gVmFsdWU6Om1heFVJbnQpCisgKiAtIGRvdWJsZQorICogLSBVVEYtOCBzdHJpbmcKKyAq
IC0gYm9vbGVhbgorICogLSAnbnVsbCcKKyAqIC0gYW4gb3JkZXJlZCBsaXN0IG9mIFZhbHVlCisg
KiAtIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyAoamF2YXNjcmlwdCBvYmplY3QpCisg
KgorICogVGhlIHR5cGUgb2YgdGhlIGhlbGQgdmFsdWUgaXMgcmVwcmVzZW50ZWQgYnkgYSAjVmFs
dWVUeXBlIGFuZAorICogY2FuIGJlIG9idGFpbmVkIHVzaW5nIHR5cGUoKS4KKyAqCisgKiBWYWx1
ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNhcnJheVZhbHVlIGNhbiBiZSBhY2Nlc3NlZCB1c2lu
ZyBvcGVyYXRvcltdKCkKKyAqIG1ldGhvZHMuCisgKiBOb24tY29uc3QgbWV0aG9kcyB3aWxsIGF1
dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNudWxsVmFsdWUgZWxlbWVudAorICogaWYgaXQgZG9l
cyBub3QgZXhpc3QuCisgKiBUaGUgc2VxdWVuY2Ugb2YgYW4gI2FycmF5VmFsdWUgd2lsbCBiZSBh
dXRvbWF0aWNhbGx5IHJlc2l6ZWQgYW5kIGluaXRpYWxpemVkCisgKiB3aXRoICNudWxsVmFsdWUu
IHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFyZ2Ugb3IgdHJ1bmNhdGUgYW4gI2FycmF5VmFs
dWUuCisgKgorICogVGhlIGdldCgpIG1ldGhvZHMgY2FuIGJlIHVzZWQgdG8gb2J0YWluIGRlZmF1
bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlCisgKiByZXF1aXJlZCBlbGVtZW50IGRvZXMgbm90IGV4
aXN0LgorICoKKyAqIEl0IGlzIHBvc3NpYmxlIHRvIGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBt
ZW1iZXIga2V5cyBvZiBhbiBvYmplY3QgdXNpbmcKKyAqIHRoZSBnZXRNZW1iZXJOYW1lcygpIG1l
dGhvZC4KKyAqCisgKiBcbm90ZSAjVmFsdWUgc3RyaW5nLWxlbmd0aCBmaXQgaW4gc2l6ZV90LCBi
dXQga2V5cyBtdXN0IGJlIDwgMl4zMC4KKyAqIChUaGUgcmVhc29uIGlzIGFuIGltcGxlbWVudGF0
aW9uIGRldGFpbC4pIEEgI0NoYXJSZWFkZXIgd2lsbCByYWlzZSBhbgorICogZXhjZXB0aW9uIGlm
IGEgYm91bmQgaXMgZXhjZWVkZWQgdG8gYXZvaWQgc2VjdXJpdHkgaG9sZXMgaW4geW91ciBhcHAs
CisgKiBidXQgdGhlIFZhbHVlIEFQSSBkb2VzICpub3QqIGNoZWNrIGJvdW5kcy4gVGhhdCBpcyB0
aGUgcmVzcG9uc2liaWxpdHkKKyAqIG9mIHRoZSBjYWxsZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJ
IFZhbHVlIHsKKyAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOworCitwdWJsaWM6Cisg
IHR5cGVkZWYgc3RkOjp2ZWN0b3I8U3RyaW5nPiBNZW1iZXJzOworICB0eXBlZGVmIFZhbHVlSXRl
cmF0b3IgaXRlcmF0b3I7CisgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9yIGNvbnN0X2l0ZXJh
dG9yOworICB0eXBlZGVmIEpzb246OlVJbnQgVUludDsKKyAgdHlwZWRlZiBKc29uOjpJbnQgSW50
OworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIHR5cGVkZWYgSnNvbjo6VUludDY0IFVJ
bnQ2NDsKKyAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJbnQ2NDsKICNlbmRpZiAvLyBkZWZpbmVkKEpT
T05fSEFTX0lOVDY0KQotICAgICAgdHlwZWRlZiBKc29uOjpMYXJnZXN0SW50IExhcmdlc3RJbnQ7
Ci0gICAgICB0eXBlZGVmIEpzb246Okxhcmdlc3RVSW50IExhcmdlc3RVSW50OwotICAgICAgdHlw
ZWRlZiBKc29uOjpBcnJheUluZGV4IEFycmF5SW5kZXg7Ci0KLSAgICAgIHN0YXRpYyBjb25zdCBW
YWx1ZSBudWxsOwotICAgICAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBj
YW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgTGFyZ2Vz
dEludCBtaW5MYXJnZXN0SW50OwotICAgICAgLy8vIE1heGltdW0gc2lnbmVkIGludGVnZXIgdmFs
dWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29u
c3QgTGFyZ2VzdEludCBtYXhMYXJnZXN0SW50OwotICAgICAgLy8vIE1heGltdW0gdW5zaWduZWQg
aW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAg
IHN0YXRpYyBjb25zdCBMYXJnZXN0VUludCBtYXhMYXJnZXN0VUludDsKLQotICAgICAgLy8vIE1p
bmltdW0gc2lnbmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1
ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBJbnQgbWluSW50OwotICAgICAgLy8vIE1heGltdW0gc2ln
bmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAg
IHN0YXRpYyBjb25zdCBJbnQgbWF4SW50OwotICAgICAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50
IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGlj
IGNvbnN0IFVJbnQgbWF4VUludDsKLQotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAg
ICAgLy8vIE1pbmltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3Jl
ZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IEludDY0IG1pbkludDY0Owot
ICAgICAgLy8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0
b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IEludDY0IG1heEludDY0
OwotICAgICAgLy8vIE1heGltdW0gdW5zaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4g
YmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgVUludDY0IG1h
eFVJbnQ2NDsKKyAgdHlwZWRlZiBKc29uOjpMYXJnZXN0SW50IExhcmdlc3RJbnQ7CisgIHR5cGVk
ZWYgSnNvbjo6TGFyZ2VzdFVJbnQgTGFyZ2VzdFVJbnQ7CisgIHR5cGVkZWYgSnNvbjo6QXJyYXlJ
bmRleCBBcnJheUluZGV4OworCisgIC8vIFJlcXVpcmVkIGZvciBib29zdCBpbnRlZ3JhdGlvbiwg
ZS4gZy4gQk9PU1RfVEVTVAorICB0eXBlZGVmIHN0ZDo6c3RyaW5nIHZhbHVlX3R5cGU7CisKKyNp
ZiBKU09OX1VTRV9OVUxMUkVGCisgIC8vIEJpbmFyeSBjb21wYXRpYmlsaXR5IGtsdWRnZXMsIGRv
IG5vdCB1c2UuCisgIHN0YXRpYyBjb25zdCBWYWx1ZSYgbnVsbDsKKyAgc3RhdGljIGNvbnN0IFZh
bHVlJiBudWxsUmVmOworI2VuZGlmCisKKyAgLy8gbnVsbCBhbmQgbnVsbFJlZiBhcmUgZGVwcmVj
YXRlZCwgdXNlIHRoaXMgaW5zdGVhZC4KKyAgc3RhdGljIFZhbHVlIGNvbnN0JiBudWxsU2luZ2xl
dG9uKCk7CisKKyAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUg
c3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBMYXJnZXN0SW50IG1pbkxh
cmdlc3RJbnQ7CisgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQgY2FuIGJl
IHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgTGFyZ2VzdEludCBtYXhM
YXJnZXN0SW50OworICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQgY2Fu
IGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgTGFyZ2VzdFVJbnQg
bWF4TGFyZ2VzdFVJbnQ7CisKKyAgLy8vIE1pbmltdW0gc2lnbmVkIGludCB2YWx1ZSB0aGF0IGNh
biBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IEludCBtaW5JbnQ7
CisgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEg
SnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQgbWF4SW50OworICAvLy8gTWF4aW11bSB1
bnNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisg
IHN0YXRpYyBjb25zdCBVSW50IG1heFVJbnQ7CisKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0
KQorICAvLy8gTWluaW11bSBzaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3Rv
cmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQ2NCBtaW5JbnQ2NDsKKyAg
Ly8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBp
biBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50NjQgbWF4SW50NjQ7CisgIC8vLyBN
YXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBh
IEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJbnQ2NDsKICNlbmRpZiAv
LyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQogCi0gICBwcml2YXRlOgorICAvLy8gRGVmYXVsdCBw
cmVjaXNpb24gZm9yIHJlYWwgdmFsdWUgZm9yIHN0cmluZyByZXByZXNlbnRhdGlvbi4KKyAgc3Rh
dGljIGNvbnN0IFVJbnQgZGVmYXVsdFJlYWxQcmVjaXNpb247CisKKy8vIFdvcmthcm91bmQgZm9y
IGJ1ZyBpbiB0aGUgTlZJRElBcyBDVURBIDkuMSBudmNjIGNvbXBpbGVyCisvLyB3aGVuIHVzaW5n
IGdjYyBhbmQgY2xhbmcgYmFja2VuZCBjb21waWxlcnMuICBDWlN0cmluZworLy8gY2Fubm90IGJl
IGRlZmluZWQgYXMgcHJpdmF0ZS4gIFNlZSBpc3N1ZSAjNDg2CisjaWZkZWYgX19OVkNDX18KK3B1
YmxpYzoKKyNlbHNlCitwcml2YXRlOgorI2VuZGlmCiAjaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xV
REVfSU1QTEVNRU5UQVRJT04KLSMgaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAot
ICAgICAgY2xhc3MgQ1pTdHJpbmcgCi0gICAgICB7Ci0gICAgICBwdWJsaWM6Ci0gICAgICAgICBl
bnVtIER1cGxpY2F0aW9uUG9saWN5IAotICAgICAgICAgewotICAgICAgICAgICAgbm9EdXBsaWNh
dGlvbiA9IDAsCi0gICAgICAgICAgICBkdXBsaWNhdGUsCi0gICAgICAgICAgICBkdXBsaWNhdGVP
bkNvcHkKLSAgICAgICAgIH07Ci0gICAgICAgICBDWlN0cmluZyggQXJyYXlJbmRleCBpbmRleCAp
OwotICAgICAgICAgQ1pTdHJpbmcoIGNvbnN0IGNoYXIgKmNzdHIsIER1cGxpY2F0aW9uUG9saWN5
IGFsbG9jYXRlICk7Ci0gICAgICAgICBDWlN0cmluZyggY29uc3QgQ1pTdHJpbmcgJm90aGVyICk7
Ci0gICAgICAgICB+Q1pTdHJpbmcoKTsKLSAgICAgICAgIENaU3RyaW5nICZvcGVyYXRvciA9KCBj
b25zdCBDWlN0cmluZyAmb3RoZXIgKTsKLSAgICAgICAgIGJvb2wgb3BlcmF0b3I8KCBjb25zdCBD
WlN0cmluZyAmb3RoZXIgKSBjb25zdDsKLSAgICAgICAgIGJvb2wgb3BlcmF0b3I9PSggY29uc3Qg
Q1pTdHJpbmcgJm90aGVyICkgY29uc3Q7Ci0gICAgICAgICBBcnJheUluZGV4IGluZGV4KCkgY29u
c3Q7Ci0gICAgICAgICBjb25zdCBjaGFyICpjX3N0cigpIGNvbnN0OwotICAgICAgICAgYm9vbCBp
c1N0YXRpY1N0cmluZygpIGNvbnN0OwotICAgICAgcHJpdmF0ZToKLSAgICAgICAgIHZvaWQgc3dh
cCggQ1pTdHJpbmcgJm90aGVyICk7Ci0gICAgICAgICBjb25zdCBjaGFyICpjc3RyXzsKLSAgICAg
ICAgIEFycmF5SW5kZXggaW5kZXhfOwotICAgICAgfTsKLQotICAgcHVibGljOgotIyAgaWZuZGVm
IEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCi0gICAgICB0eXBlZGVmIHN0ZDo6bWFwPENaU3RyaW5n
LCBWYWx1ZT4gT2JqZWN0VmFsdWVzOwotIyAgZWxzZQotICAgICAgdHlwZWRlZiBDcHBUTDo6U21h
bGxNYXA8Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7Ci0jICBlbmRpZiAvLyBpZm5kZWYg
SlNPTl9VU0VfQ1BQVExfU01BTExNQVAKLSMgZW5kaWYgLy8gaWZuZGVmIEpTT05fVkFMVUVfVVNF
X0lOVEVSTkFMX01BUAorICBjbGFzcyBDWlN0cmluZyB7CisgIHB1YmxpYzoKKyAgICBlbnVtIER1
cGxpY2F0aW9uUG9saWN5IHsgbm9EdXBsaWNhdGlvbiA9IDAsIGR1cGxpY2F0ZSwgZHVwbGljYXRl
T25Db3B5IH07CisgICAgQ1pTdHJpbmcoQXJyYXlJbmRleCBpbmRleCk7CisgICAgQ1pTdHJpbmco
Y2hhciBjb25zdCogc3RyLCB1bnNpZ25lZCBsZW5ndGgsIER1cGxpY2F0aW9uUG9saWN5IGFsbG9j
YXRlKTsKKyAgICBDWlN0cmluZyhDWlN0cmluZyBjb25zdCYgb3RoZXIpOworICAgIENaU3RyaW5n
KENaU3RyaW5nJiYgb3RoZXIpOworICAgIH5DWlN0cmluZygpOworICAgIENaU3RyaW5nJiBvcGVy
YXRvcj0oY29uc3QgQ1pTdHJpbmcmIG90aGVyKTsKKyAgICBDWlN0cmluZyYgb3BlcmF0b3I9KENa
U3RyaW5nJiYgb3RoZXIpOworCisgICAgYm9vbCBvcGVyYXRvcjwoQ1pTdHJpbmcgY29uc3QmIG90
aGVyKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yPT0oQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBj
b25zdDsKKyAgICBBcnJheUluZGV4IGluZGV4KCkgY29uc3Q7CisgICAgLy8gY29uc3QgY2hhciog
Y19zdHIoKSBjb25zdDsgLy8vPCBcZGVwcmVjYXRlZAorICAgIGNoYXIgY29uc3QqIGRhdGEoKSBj
b25zdDsKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBib29sIGlzU3RhdGljU3Ry
aW5nKCkgY29uc3Q7CisKKyAgcHJpdmF0ZToKKyAgICB2b2lkIHN3YXAoQ1pTdHJpbmcmIG90aGVy
KTsKKworICAgIHN0cnVjdCBTdHJpbmdTdG9yYWdlIHsKKyAgICAgIHVuc2lnbmVkIHBvbGljeV8g
OiAyOworICAgICAgdW5zaWduZWQgbGVuZ3RoXyA6IDMwOyAvLyAxR0IgbWF4CisgICAgfTsKKwor
ICAgIGNoYXIgY29uc3QqIGNzdHJfOyAvLyBhY3R1YWxseSwgYSBwcmVmaXhlZCBzdHJpbmcsIHVu
bGVzcyBwb2xpY3kgaXMgbm9EdXAKKyAgICB1bmlvbiB7CisgICAgICBBcnJheUluZGV4IGluZGV4
XzsKKyAgICAgIFN0cmluZ1N0b3JhZ2Ugc3RvcmFnZV87CisgICAgfTsKKyAgfTsKKworcHVibGlj
OgorI2lmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAorICB0eXBlZGVmIHN0ZDo6bWFwPENa
U3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOworI2Vsc2UKKyAgdHlwZWRlZiBDcHBUTDo6U21h
bGxNYXA8Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7CisjZW5kaWYgLy8gaWZuZGVmIEpT
T05fVVNFX0NQUFRMX1NNQUxMTUFQCiAjZW5kaWYgLy8gaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xV
REVfSU1QTEVNRU5UQVRJT04KIAotICAgcHVibGljOgotICAgICAgLyoqIFxicmllZiBDcmVhdGUg
YSBkZWZhdWx0IFZhbHVlIG9mIHRoZSBnaXZlbiB0eXBlLgotCi0gICAgICAgIFRoaXMgaXMgYSB2
ZXJ5IHVzZWZ1bCBjb25zdHJ1Y3Rvci4KLSAgICAgICAgVG8gY3JlYXRlIGFuIGVtcHR5IGFycmF5
LCBwYXNzIGFycmF5VmFsdWUuCi0gICAgICAgIFRvIGNyZWF0ZSBhbiBlbXB0eSBvYmplY3QsIHBh
c3Mgb2JqZWN0VmFsdWUuCi0gICAgICAgIEFub3RoZXIgVmFsdWUgY2FuIHRoZW4gYmUgc2V0IHRv
IHRoaXMgb25lIGJ5IGFzc2lnbm1lbnQuCi0gICAgVGhpcyBpcyB1c2VmdWwgc2luY2UgY2xlYXIo
KSBhbmQgcmVzaXplKCkgd2lsbCBub3QgYWx0ZXIgdHlwZXMuCi0KLSAgICAgICAgRXhhbXBsZXM6
Ci0gICAgXGNvZGUKLSAgICBKc29uOjpWYWx1ZSBudWxsX3ZhbHVlOyAvLyBudWxsCi0gICAgSnNv
bjo6VmFsdWUgYXJyX3ZhbHVlKEpzb246OmFycmF5VmFsdWUpOyAvLyBbXQotICAgIEpzb246OlZh
bHVlIG9ial92YWx1ZShKc29uOjpvYmplY3RWYWx1ZSk7IC8vIHt9Ci0gICAgXGVuZGNvZGUKLSAg
ICAgICovCi0gICAgICBWYWx1ZSggVmFsdWVUeXBlIHR5cGUgPSBudWxsVmFsdWUgKTsKLSAgICAg
IFZhbHVlKCBJbnQgdmFsdWUgKTsKLSAgICAgIFZhbHVlKCBVSW50IHZhbHVlICk7CitwdWJsaWM6
CisgIC8qKiBcYnJpZWYgQ3JlYXRlIGEgZGVmYXVsdCBWYWx1ZSBvZiB0aGUgZ2l2ZW4gdHlwZS4K
KworICAgIFRoaXMgaXMgYSB2ZXJ5IHVzZWZ1bCBjb25zdHJ1Y3Rvci4KKyAgICBUbyBjcmVhdGUg
YW4gZW1wdHkgYXJyYXksIHBhc3MgYXJyYXlWYWx1ZS4KKyAgICBUbyBjcmVhdGUgYW4gZW1wdHkg
b2JqZWN0LCBwYXNzIG9iamVjdFZhbHVlLgorICAgIEFub3RoZXIgVmFsdWUgY2FuIHRoZW4gYmUg
c2V0IHRvIHRoaXMgb25lIGJ5IGFzc2lnbm1lbnQuCitUaGlzIGlzIHVzZWZ1bCBzaW5jZSBjbGVh
cigpIGFuZCByZXNpemUoKSB3aWxsIG5vdCBhbHRlciB0eXBlcy4KKworICAgIEV4YW1wbGVzOgor
XGNvZGUKK0pzb246OlZhbHVlIG51bGxfdmFsdWU7IC8vIG51bGwKK0pzb246OlZhbHVlIGFycl92
YWx1ZShKc29uOjphcnJheVZhbHVlKTsgLy8gW10KK0pzb246OlZhbHVlIG9ial92YWx1ZShKc29u
OjpvYmplY3RWYWx1ZSk7IC8vIHt9CitcZW5kY29kZQorICAqLworICBWYWx1ZShWYWx1ZVR5cGUg
dHlwZSA9IG51bGxWYWx1ZSk7CisgIFZhbHVlKEludCB2YWx1ZSk7CisgIFZhbHVlKFVJbnQgdmFs
dWUpOwogI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICAgICBWYWx1ZSggSW50NjQgdmFs
dWUgKTsKLSAgICAgIFZhbHVlKCBVSW50NjQgdmFsdWUgKTsKKyAgVmFsdWUoSW50NjQgdmFsdWUp
OworICBWYWx1ZShVSW50NjQgdmFsdWUpOwogI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCi0gICAgICBWYWx1ZSggZG91YmxlIHZhbHVlICk7Ci0gICAgICBWYWx1ZSggY29uc3Qg
Y2hhciAqdmFsdWUgKTsKLSAgICAgIFZhbHVlKCBjb25zdCBjaGFyICpiZWdpblZhbHVlLCBjb25z
dCBjaGFyICplbmRWYWx1ZSApOwotICAgICAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgdmFsdWUg
ZnJvbSBhIHN0YXRpYyBzdHJpbmcuCi0KLSAgICAgICAqIExpa2Ugb3RoZXIgdmFsdWUgc3RyaW5n
IGNvbnN0cnVjdG9yIGJ1dCBkbyBub3QgZHVwbGljYXRlIHRoZSBzdHJpbmcgZm9yCi0gICAgICAg
KiBpbnRlcm5hbCBzdG9yYWdlLiBUaGUgZ2l2ZW4gc3RyaW5nIG11c3QgcmVtYWluIGFsaXZlIGFm
dGVyIHRoZSBjYWxsIHRvIHRoaXMKLSAgICAgICAqIGNvbnN0cnVjdG9yLgotICAgICAgICogRXhh
bXBsZSBvZiB1c2FnZToKLSAgICAgICAqIFxjb2RlCi0gICAgICAgKiBKc29uOjpWYWx1ZSBhVmFs
dWUoIFN0YXRpY1N0cmluZygic29tZSB0ZXh0IikgKTsKLSAgICAgICAqIFxlbmRjb2RlCi0gICAg
ICAgKi8KLSAgICAgIFZhbHVlKCBjb25zdCBTdGF0aWNTdHJpbmcgJnZhbHVlICk7Ci0gICAgICBW
YWx1ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICk7Ci0jIGlmZGVmIEpTT05fVVNFX0NQUFRM
Ci0gICAgICBWYWx1ZSggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZ2YWx1ZSApOwotIyBlbmRp
ZgotICAgICAgVmFsdWUoIGJvb2wgdmFsdWUgKTsKLSAgICAgIFZhbHVlKCBjb25zdCBWYWx1ZSAm
b3RoZXIgKTsKLSAgICAgIH5WYWx1ZSgpOwotCi0gICAgICBWYWx1ZSAmb3BlcmF0b3I9KCBjb25z
dCBWYWx1ZSAmb3RoZXIgKTsKLSAgICAgIC8vLyBTd2FwIHZhbHVlcy4KLSAgICAgIC8vLyBcbm90
ZSBDdXJyZW50bHksIGNvbW1lbnRzIGFyZSBpbnRlbnRpb25hbGx5IG5vdCBzd2FwcGVkLCBmb3IK
LSAgICAgIC8vLyBib3RoIGxvZ2ljIGFuZCBlZmZpY2llbmN5LgotICAgICAgdm9pZCBzd2FwKCBW
YWx1ZSAmb3RoZXIgKTsKLQotICAgICAgVmFsdWVUeXBlIHR5cGUoKSBjb25zdDsKLQotICAgICAg
Ym9vbCBvcGVyYXRvciA8KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLSAgICAgIGJvb2wg
b3BlcmF0b3IgPD0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotICAgICAgYm9vbCBvcGVy
YXRvciA+PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAgICBib29sIG9wZXJhdG9y
ID4oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotCi0gICAgICBib29sIG9wZXJhdG9yID09
KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLSAgICAgIGJvb2wgb3BlcmF0b3IgIT0oIGNv
bnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotCi0gICAgICBpbnQgY29tcGFyZSggY29uc3QgVmFs
dWUgJm90aGVyICkgY29uc3Q7Ci0KLSAgICAgIGNvbnN0IGNoYXIgKmFzQ1N0cmluZygpIGNvbnN0
OwotICAgICAgc3RkOjpzdHJpbmcgYXNTdHJpbmcoKSBjb25zdDsKLSMgaWZkZWYgSlNPTl9VU0Vf
Q1BQVEwKLSAgICAgIENwcFRMOjpDb25zdFN0cmluZyBhc0NvbnN0U3RyaW5nKCkgY29uc3Q7Ci0j
IGVuZGlmCi0gICAgICBJbnQgYXNJbnQoKSBjb25zdDsKLSAgICAgIFVJbnQgYXNVSW50KCkgY29u
c3Q7CisgIFZhbHVlKGRvdWJsZSB2YWx1ZSk7CisgIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKTsg
Ly8vPCBDb3B5IHRpbCBmaXJzdCAwLiAoTlVMTCBjYXVzZXMgdG8gc2VnLWZhdWx0LikKKyAgVmFs
dWUoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCk7IC8vLzwgQ29weSBhbGwsIGlu
Y2wgemVyb2VzLgorICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSB2YWx1ZSBmcm9tIGEgc3RhdGlj
IHN0cmluZy4KKworICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBjb25zdHJ1Y3RvciBidXQg
ZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgorICAgKiBpbnRlcm5hbCBzdG9yYWdlLiBU
aGUgZ2l2ZW4gc3RyaW5nIG11c3QgcmVtYWluIGFsaXZlIGFmdGVyIHRoZSBjYWxsIHRvIHRoaXMK
KyAgICogY29uc3RydWN0b3IuCisgICAqIFxub3RlIFRoaXMgd29ya3Mgb25seSBmb3IgbnVsbC10
ZXJtaW5hdGVkIHN0cmluZ3MuIChXZSBjYW5ub3QgY2hhbmdlIHRoZQorICAgKiAgIHNpemUgb2Yg
dGhpcyBjbGFzcywgc28gd2UgaGF2ZSBub3doZXJlIHRvIHN0b3JlIHRoZSBsZW5ndGgsCisgICAq
ICAgd2hpY2ggbWlnaHQgYmUgY29tcHV0ZWQgbGF0ZXIgZm9yIHZhcmlvdXMgb3BlcmF0aW9ucy4p
CisgICAqCisgICAqIEV4YW1wbGUgb2YgdXNhZ2U6CisgICAqIFxjb2RlCisgICAqIHN0YXRpYyBT
dGF0aWNTdHJpbmcgZm9vKCJzb21lIHRleHQiKTsKKyAgICogSnNvbjo6VmFsdWUgYVZhbHVlKGZv
byk7CisgICAqIFxlbmRjb2RlCisgICAqLworICBWYWx1ZShjb25zdCBTdGF0aWNTdHJpbmcmIHZh
bHVlKTsKKyAgVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSk7IC8vLzwgQ29weSBkYXRhKCkgdGls
IHNpemUoKS4gRW1iZWRkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLzwgemVy
b2VzIHRvby4KKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICBWYWx1ZShjb25zdCBDcHBUTDo6Q29u
c3RTdHJpbmcmIHZhbHVlKTsKKyNlbmRpZgorICBWYWx1ZShib29sIHZhbHVlKTsKKyAgVmFsdWUo
Y29uc3QgVmFsdWUmIG90aGVyKTsKKyAgVmFsdWUoVmFsdWUmJiBvdGhlcik7CisgIH5WYWx1ZSgp
OworCisgIC8vLyBcbm90ZSBPdmVyd3JpdGUgZXhpc3RpbmcgY29tbWVudHMuIFRvIHByZXNlcnZl
IGNvbW1lbnRzLCB1c2UKKyAgLy8vICNzd2FwUGF5bG9hZCgpLgorICBWYWx1ZSYgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlJiBvdGhlcik7CisgIFZhbHVlJiBvcGVyYXRvcj0oVmFsdWUmJiBvdGhlcik7
CisKKyAgLy8vIFN3YXAgZXZlcnl0aGluZy4KKyAgdm9pZCBzd2FwKFZhbHVlJiBvdGhlcik7Cisg
IC8vLyBTd2FwIHZhbHVlcyBidXQgbGVhdmUgY29tbWVudHMgYW5kIHNvdXJjZSBvZmZzZXRzIGlu
IHBsYWNlLgorICB2b2lkIHN3YXBQYXlsb2FkKFZhbHVlJiBvdGhlcik7CisKKyAgLy8vIGNvcHkg
ZXZlcnl0aGluZy4KKyAgdm9pZCBjb3B5KGNvbnN0IFZhbHVlJiBvdGhlcik7CisgIC8vLyBjb3B5
IHZhbHVlcyBidXQgbGVhdmUgY29tbWVudHMgYW5kIHNvdXJjZSBvZmZzZXRzIGluIHBsYWNlLgor
ICB2b2lkIGNvcHlQYXlsb2FkKGNvbnN0IFZhbHVlJiBvdGhlcik7CisKKyAgVmFsdWVUeXBlIHR5
cGUoKSBjb25zdDsKKworICAvLy8gQ29tcGFyZSBwYXlsb2FkIG9ubHksIG5vdCBjb21tZW50cyBl
dGMuCisgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wg
b3BlcmF0b3I8PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yPj0o
Y29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvcj4oY29uc3QgVmFsdWUm
IG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29u
c3Q7CisgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBpbnQg
Y29tcGFyZShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworCisgIGNvbnN0IGNoYXIqIGFzQ1N0
cmluZygpIGNvbnN0OyAvLy88IEVtYmVkZGVkIHplcm9lcyBjb3VsZCBjYXVzZSB5b3UgdHJvdWJs
ZSEKKyNpZiBKU09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1PUlkKKyAgdW5zaWduZWQgZ2V0Q1N0cmlu
Z0xlbmd0aCgpIGNvbnN0OyAvLyBBbGxvd3MgeW91IHRvIHVuZGVyc3RhbmQgdGhlIGxlbmd0aCBv
ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBDU3RyaW5nCisj
ZW5kaWYKKyAgU3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7IC8vLzwgRW1iZWRkZWQgemVyb2VzIGFy
ZSBwb3NzaWJsZS4KKyAgLyoqIEdldCByYXcgY2hhciogb2Ygc3RyaW5nLXZhbHVlLgorICAgKiAg
XHJldHVybiBmYWxzZSBpZiAhc3RyaW5nLiAoU2VnLWZhdWx0IGlmIHN0ciBvciBlbmQgYXJlIE5V
TEwuKQorICAgKi8KKyAgYm9vbCBnZXRTdHJpbmcoY2hhciBjb25zdCoqIGJlZ2luLCBjaGFyIGNv
bnN0KiogZW5kKSBjb25zdDsKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICBDcHBUTDo6Q29uc3RT
dHJpbmcgYXNDb25zdFN0cmluZygpIGNvbnN0OworI2VuZGlmCisgIEludCBhc0ludCgpIGNvbnN0
OworICBVSW50IGFzVUludCgpIGNvbnN0OwogI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0g
ICAgICBJbnQ2NCBhc0ludDY0KCkgY29uc3Q7Ci0gICAgICBVSW50NjQgYXNVSW50NjQoKSBjb25z
dDsKKyAgSW50NjQgYXNJbnQ2NCgpIGNvbnN0OworICBVSW50NjQgYXNVSW50NjQoKSBjb25zdDsK
ICNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgTGFyZ2VzdEludCBh
c0xhcmdlc3RJbnQoKSBjb25zdDsKLSAgICAgIExhcmdlc3RVSW50IGFzTGFyZ2VzdFVJbnQoKSBj
b25zdDsKLSAgICAgIGZsb2F0IGFzRmxvYXQoKSBjb25zdDsKLSAgICAgIGRvdWJsZSBhc0RvdWJs
ZSgpIGNvbnN0OwotICAgICAgYm9vbCBhc0Jvb2woKSBjb25zdDsKLQotICAgICAgYm9vbCBpc051
bGwoKSBjb25zdDsKLSAgICAgIGJvb2wgaXNCb29sKCkgY29uc3Q7Ci0gICAgICBib29sIGlzSW50
KCkgY29uc3Q7Ci0gICAgICBib29sIGlzSW50NjQoKSBjb25zdDsKLSAgICAgIGJvb2wgaXNVSW50
KCkgY29uc3Q7Ci0gICAgICBib29sIGlzVUludDY0KCkgY29uc3Q7Ci0gICAgICBib29sIGlzSW50
ZWdyYWwoKSBjb25zdDsKLSAgICAgIGJvb2wgaXNEb3VibGUoKSBjb25zdDsKLSAgICAgIGJvb2wg
aXNOdW1lcmljKCkgY29uc3Q7Ci0gICAgICBib29sIGlzU3RyaW5nKCkgY29uc3Q7Ci0gICAgICBi
b29sIGlzQXJyYXkoKSBjb25zdDsKLSAgICAgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKLQotICAg
ICAgYm9vbCBpc0NvbnZlcnRpYmxlVG8oIFZhbHVlVHlwZSBvdGhlciApIGNvbnN0OwotCi0gICAg
ICAvLy8gTnVtYmVyIG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmplY3QKLSAgICAgIEFycmF5SW5k
ZXggc2l6ZSgpIGNvbnN0OwotCi0gICAgICAvLy8gXGJyaWVmIFJldHVybiB0cnVlIGlmIGVtcHR5
IGFycmF5LCBlbXB0eSBvYmplY3QsIG9yIG51bGw7Ci0gICAgICAvLy8gb3RoZXJ3aXNlLCBmYWxz
ZS4KLSAgICAgIGJvb2wgZW1wdHkoKSBjb25zdDsKLQotICAgICAgLy8vIFJldHVybiBpc051bGwo
KQotICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdDsKLQotICAgICAgLy8vIFJlbW92ZSBhbGwg
b2JqZWN0IG1lbWJlcnMgYW5kIGFycmF5IGVsZW1lbnRzLgotICAgICAgLy8vIFxwcmUgdHlwZSgp
IGlzIGFycmF5VmFsdWUsIG9iamVjdFZhbHVlLCBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBccG9z
dCB0eXBlKCkgaXMgdW5jaGFuZ2VkCi0gICAgICB2b2lkIGNsZWFyKCk7Ci0KLSAgICAgIC8vLyBS
ZXNpemUgdGhlIGFycmF5IHRvIHNpemUgZWxlbWVudHMuIAotICAgICAgLy8vIE5ldyBlbGVtZW50
cyBhcmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC4KLSAgICAgIC8vLyBNYXkgb25seSBiZSBjYWxsZWQg
b24gbnVsbFZhbHVlIG9yIGFycmF5VmFsdWUuCi0gICAgICAvLy8gXHByZSB0eXBlKCkgaXMgYXJy
YXlWYWx1ZSBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBccG9zdCB0eXBlKCkgaXMgYXJyYXlWYWx1
ZQotICAgICAgdm9pZCByZXNpemUoIEFycmF5SW5kZXggc2l6ZSApOwotCi0gICAgICAvLy8gQWNj
ZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KLSAgICAgIC8vLyBJZiB0
aGUgYXJyYXkgY29udGFpbnMgbGVzcyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2YWx1
ZSBhcmUgaW5zZXJ0ZWQKLSAgICAgIC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMgc2l6ZSBp
cyBpbmRleCsxLgotICAgICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRv
IGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMgZnJvbSB0
aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBWYWx1ZSAmb3BlcmF0
b3JbXSggQXJyYXlJbmRleCBpbmRleCApOwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVs
ZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KLSAgICAgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFp
bnMgbGVzcyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUgaW5zZXJ0ZWQK
LSAgICAgIC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBpbmRleCsxLgotICAg
ICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBp
bGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3
aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBWYWx1ZSAmb3BlcmF0b3JbXSggaW50IGluZGV4
ICk7Ci0KLSAgICAgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAoemVybyBiYXNlZCBpbmRl
eCApCi0gICAgICAvLy8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlv
dXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKLSAgICAgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVy
YXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKLSAgICAgIGNvbnN0IFZhbHVlICZvcGVyYXRv
cltdKCBBcnJheUluZGV4IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIC8vLyBBY2Nlc3MgYW4gYXJy
YXkgZWxlbWVudCAoemVybyBiYXNlZCBpbmRleCApCi0gICAgICAvLy8gKFlvdSBtYXkgbmVlZCB0
byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKLSAg
ICAgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikK
LSAgICAgIGNvbnN0IFZhbHVlICZvcGVyYXRvcltdKCBpbnQgaW5kZXggKSBjb25zdDsKLQotICAg
ICAgLy8vIElmIHRoZSBhcnJheSBjb250YWlucyBhdCBsZWFzdCBpbmRleCsxIGVsZW1lbnRzLCBy
ZXR1cm5zIHRoZSBlbGVtZW50IHZhbHVlLCAKLSAgICAgIC8vLyBvdGhlcndpc2UgcmV0dXJucyBk
ZWZhdWx0VmFsdWUuCi0gICAgICBWYWx1ZSBnZXQoIEFycmF5SW5kZXggaW5kZXgsIAotICAgICAg
ICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0gICAgICAvLy8g
UmV0dXJuIHRydWUgaWYgaW5kZXggPCBzaXplKCkuCi0gICAgICBib29sIGlzVmFsaWRJbmRleCgg
QXJyYXlJbmRleCBpbmRleCApIGNvbnN0OwotICAgICAgLy8vIFxicmllZiBBcHBlbmQgdmFsdWUg
dG8gYXJyYXkgYXQgdGhlIGVuZC4KLSAgICAgIC8vLwotICAgICAgLy8vIEVxdWl2YWxlbnQgdG8g
anNvbnZhbHVlW2pzb252YWx1ZS5zaXplKCldID0gdmFsdWU7Ci0gICAgICBWYWx1ZSAmYXBwZW5k
KCBjb25zdCBWYWx1ZSAmdmFsdWUgKTsKLQotICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFs
dWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0g
ICAgICBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3QgY2hhciAqa2V5ICk7Ci0gICAgICAvLy8gQWNj
ZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8g
bWVtYmVyIHdpdGggdGhhdCBuYW1lLgotICAgICAgY29uc3QgVmFsdWUgJm9wZXJhdG9yW10oIGNv
bnN0IGNoYXIgKmtleSApIGNvbnN0OwotICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUg
YnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gICAg
ICBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApOwotICAgICAgLy8v
IEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlz
IG5vIG1lbWJlciB3aXRoIHRoYXQgbmFtZS4KLSAgICAgIGNvbnN0IFZhbHVlICZvcGVyYXRvcltd
KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3Q7Ci0gICAgICAvKiogXGJyaWVmIEFjY2Vz
cyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9l
cyBub3QgZXhpc3QuCi0KLSAgICAgICAqIElmIHRoZSBvYmplY3QgYXMgbm8gZW50cnkgZm9yIHRo
YXQgbmFtZSwgdGhlbiB0aGUgbWVtYmVyIG5hbWUgdXNlZCB0byBzdG9yZQotICAgICAgICogdGhl
IG5ldyBlbnRyeSBpcyBub3QgZHVwbGljYXRlZC4KLSAgICAgICAqIEV4YW1wbGUgb2YgdXNlOgot
ICAgICAgICogXGNvZGUKLSAgICAgICAqIEpzb246OlZhbHVlIG9iamVjdDsKLSAgICAgICAqIHN0
YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOwotICAgICAgICogb2JqZWN0W2Nv
ZGVdID0gMTIzNDsKLSAgICAgICAqIFxlbmRjb2RlCi0gICAgICAgKi8KLSAgICAgIFZhbHVlICZv
cGVyYXRvcltdKCBjb25zdCBTdGF0aWNTdHJpbmcgJmtleSApOwotIyBpZmRlZiBKU09OX1VTRV9D
UFBUTAotICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEg
bnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCi0gICAgICBWYWx1ZSAmb3BlcmF0b3Jb
XSggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXkgKTsKLSAgICAgIC8vLyBBY2Nlc3MgYW4g
b2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIg
d2l0aCB0aGF0IG5hbWUuCi0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3QgQ3Bw
VEw6OkNvbnN0U3RyaW5nICZrZXkgKSBjb25zdDsKLSMgZW5kaWYKLSAgICAgIC8vLyBSZXR1cm4g
dGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2Uu
Ci0gICAgICBWYWx1ZSBnZXQoIGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgIGNv
bnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdDsKLSAgICAgIC8vLyBSZXR1cm4gdGhlIG1l
bWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCi0gICAg
ICBWYWx1ZSBnZXQoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXksCi0gICAgICAgICAgICAgICAgIGNv
bnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdDsKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwK
LSAgICAgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1
bHRWYWx1ZSBvdGhlcndpc2UuCi0gICAgICBWYWx1ZSBnZXQoIGNvbnN0IENwcFRMOjpDb25zdFN0
cmluZyAma2V5LAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkg
Y29uc3Q7Ci0jIGVuZGlmCi0gICAgICAvLy8gXGJyaWVmIFJlbW92ZSBhbmQgcmV0dXJuIHRoZSBu
YW1lZCBtZW1iZXIuICAKLSAgICAgIC8vLwotICAgICAgLy8vIERvIG5vdGhpbmcgaWYgaXQgZGlk
IG5vdCBleGlzdC4KLSAgICAgIC8vLyBccmV0dXJuIHRoZSByZW1vdmVkIFZhbHVlLCBvciBudWxs
LgotICAgICAgLy8vIFxwcmUgdHlwZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQotICAg
ICAgLy8vIFxwb3N0IHR5cGUoKSBpcyB1bmNoYW5nZWQKLSAgICAgIFZhbHVlIHJlbW92ZU1lbWJl
ciggY29uc3QgY2hhcioga2V5ICk7Ci0gICAgICAvLy8gU2FtZSBhcyByZW1vdmVNZW1iZXIoY29u
c3QgY2hhciopCi0gICAgICBWYWx1ZSByZW1vdmVNZW1iZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZr
ZXkgKTsKLQotICAgICAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVy
IG5hbWVkIGtleS4KLSAgICAgIGJvb2wgaXNNZW1iZXIoIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0
OwotICAgICAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVyIG5hbWVk
IGtleS4KLSAgICAgIGJvb2wgaXNNZW1iZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKSBjb25z
dDsKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAgICAgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUg
b2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCi0gICAgICBib29sIGlzTWVtYmVyKCBjb25z
dCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSApIGNvbnN0OwotIyBlbmRpZgotCi0gICAgICAvLy8g
XGJyaWVmIFJldHVybiBhIGxpc3Qgb2YgdGhlIG1lbWJlciBuYW1lcy4KLSAgICAgIC8vLwotICAg
ICAgLy8vIElmIG51bGwsIHJldHVybiBhbiBlbXB0eSBsaXN0LgotICAgICAgLy8vIFxwcmUgdHlw
ZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQotICAgICAgLy8vIFxwb3N0IGlmIHR5cGUo
KSB3YXMgbnVsbFZhbHVlLCBpdCByZW1haW5zIG51bGxWYWx1ZQotICAgICAgTWVtYmVycyBnZXRN
ZW1iZXJOYW1lcygpIGNvbnN0OworICBMYXJnZXN0SW50IGFzTGFyZ2VzdEludCgpIGNvbnN0Owor
ICBMYXJnZXN0VUludCBhc0xhcmdlc3RVSW50KCkgY29uc3Q7CisgIGZsb2F0IGFzRmxvYXQoKSBj
b25zdDsKKyAgZG91YmxlIGFzRG91YmxlKCkgY29uc3Q7CisgIGJvb2wgYXNCb29sKCkgY29uc3Q7
CisKKyAgYm9vbCBpc051bGwoKSBjb25zdDsKKyAgYm9vbCBpc0Jvb2woKSBjb25zdDsKKyAgYm9v
bCBpc0ludCgpIGNvbnN0OworICBib29sIGlzSW50NjQoKSBjb25zdDsKKyAgYm9vbCBpc1VJbnQo
KSBjb25zdDsKKyAgYm9vbCBpc1VJbnQ2NCgpIGNvbnN0OworICBib29sIGlzSW50ZWdyYWwoKSBj
b25zdDsKKyAgYm9vbCBpc0RvdWJsZSgpIGNvbnN0OworICBib29sIGlzTnVtZXJpYygpIGNvbnN0
OworICBib29sIGlzU3RyaW5nKCkgY29uc3Q7CisgIGJvb2wgaXNBcnJheSgpIGNvbnN0OworICBi
b29sIGlzT2JqZWN0KCkgY29uc3Q7CisKKyAgYm9vbCBpc0NvbnZlcnRpYmxlVG8oVmFsdWVUeXBl
IG90aGVyKSBjb25zdDsKKworICAvLy8gTnVtYmVyIG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmpl
Y3QKKyAgQXJyYXlJbmRleCBzaXplKCkgY29uc3Q7CisKKyAgLy8vIFxicmllZiBSZXR1cm4gdHJ1
ZSBpZiBlbXB0eSBhcnJheSwgZW1wdHkgb2JqZWN0LCBvciBudWxsOworICAvLy8gb3RoZXJ3aXNl
LCBmYWxzZS4KKyAgYm9vbCBlbXB0eSgpIGNvbnN0OworCisgIC8vLyBSZXR1cm4gIWlzTnVsbCgp
CisgIEpTT05DUFBfT1BfRVhQTElDSVQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0OworCisgIC8vLyBS
ZW1vdmUgYWxsIG9iamVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KKyAgLy8vIFxwcmUg
dHlwZSgpIGlzIGFycmF5VmFsdWUsIG9iamVjdFZhbHVlLCBvciBudWxsVmFsdWUKKyAgLy8vIFxw
b3N0IHR5cGUoKSBpcyB1bmNoYW5nZWQKKyAgdm9pZCBjbGVhcigpOworCisgIC8vLyBSZXNpemUg
dGhlIGFycmF5IHRvIG5ld1NpemUgZWxlbWVudHMuCisgIC8vLyBOZXcgZWxlbWVudHMgYXJlIGlu
aXRpYWxpemVkIHRvIG51bGwuCisgIC8vLyBNYXkgb25seSBiZSBjYWxsZWQgb24gbnVsbFZhbHVl
IG9yIGFycmF5VmFsdWUuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlIG9yIG51bGxW
YWx1ZQorICAvLy8gXHBvc3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKKyAgdm9pZCByZXNpemUoQXJy
YXlJbmRleCBuZXdTaXplKTsKKworICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8g
YmFzZWQgaW5kZXggKS4KKyAgLy8vIElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5k
ZXggZWxlbWVudCwgdGhlbiBudWxsIHZhbHVlIGFyZQorICAvLy8gaW5zZXJ0ZWQKKyAgLy8vIGlu
IHRoZSBhcnJheSBzbyB0aGF0IGl0cyBzaXplIGlzIGluZGV4KzEuCisgIC8vLyAoWW91IG1heSBu
ZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlz
aAorICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4p
CisgIFZhbHVlJiBvcGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgpOworCisgIC8vLyBBY2Nlc3Mg
YW4gYXJyYXkgZWxlbWVudCAoemVybyBiYXNlZCBpbmRleCApLgorICAvLy8gSWYgdGhlIGFycmF5
IGNvbnRhaW5zIGxlc3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCisg
IC8vLyBpbnNlcnRlZAorICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5k
ZXgrMS4KKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3Vy
IGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltd
IHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgVmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KTsK
KworICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQorICAv
Ly8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIg
dG8gZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFr
ZXMgYSBzdHJpbmcuKQorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4
KSBjb25zdDsKKworICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5k
ZXggKQorICAvLy8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIg
Y29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10g
d2hpY2ggdGFrZXMgYSBzdHJpbmcuKQorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShpbnQgaW5k
ZXgpIGNvbnN0OworCisgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgr
MSBlbGVtZW50cywgcmV0dXJucyB0aGUgZWxlbWVudAorICAvLy8gdmFsdWUsCisgIC8vLyBvdGhl
cndpc2UgcmV0dXJucyBkZWZhdWx0VmFsdWUuCisgIFZhbHVlIGdldChBcnJheUluZGV4IGluZGV4
LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIFJldHVybiB0cnVlIGlm
IGluZGV4IDwgc2l6ZSgpLgorICBib29sIGlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBj
b25zdDsKKyAgLy8vIFxicmllZiBBcHBlbmQgdmFsdWUgdG8gYXJyYXkgYXQgdGhlIGVuZC4KKyAg
Ly8vCisgIC8vLyBFcXVpdmFsZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZh
bHVlOworICBWYWx1ZSYgYXBwZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIFZhbHVlJiBhcHBl
bmQoVmFsdWUmJiB2YWx1ZSk7CisKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFt
ZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCisgIC8vLyBcbm90
ZSBCZWNhdXNlIG9mIG91ciBpbXBsZW1lbnRhdGlvbiwga2V5cyBhcmUgbGltaXRlZCB0byAyXjMw
IC0xIGNoYXJzLgorICAvLy8gIEV4Y2VlZGluZyB0aGF0IHdpbGwgY2F1c2UgYW4gZXhjZXB0aW9u
LgorICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpOworICAvLy8gQWNjZXNzIGFu
IG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVy
IHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oY29uc3Qg
Y2hhcioga2V5KSBjb25zdDsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwg
Y3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCisgIC8vLyBccGFyYW0g
a2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBWYWx1ZSYgb3BlcmF0b3JbXShjb25z
dCBTdHJpbmcmIGtleSk7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJl
dHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1lLgor
ICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgY29uc3QgVmFs
dWUmIG9wZXJhdG9yW10oY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OworICAvKiogXGJyaWVmIEFj
Y2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQg
ZG9lcyBub3QKKyAgIGV4aXN0LgorCisgICAqIElmIHRoZSBvYmplY3QgaGFzIG5vIGVudHJ5IGZv
ciB0aGF0IG5hbWUsIHRoZW4gdGhlIG1lbWJlciBuYW1lIHVzZWQgdG8KKyAgIHN0b3JlCisgICAq
IHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQuCisgICAqIEV4YW1wbGUgb2YgdXNlOgor
ICAgKiBcY29kZQorICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7CisgICAqIHN0YXRpYyBjb25zdCBT
dGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOworICAgKiBvYmplY3RbY29kZV0gPSAxMjM0OworICAg
KiBcZW5kY29kZQorICAgKi8KKyAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3QgU3RhdGljU3RyaW5n
JiBrZXkpOworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZh
bHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0Lgor
ICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSk7CisgIC8v
LyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVsbCBpZiB0aGVyZSBp
cyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1lLgorICBjb25zdCBWYWx1ZSYgb3BlcmF0
b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3Q7CisjZW5kaWYKKyAgLy8v
IFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90
aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAgY29weQorICBWYWx1ZSBnZXQoY29uc3QgY2hhciog
a2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIFJldHVybiB0aGUg
bWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAg
Ly8vIFxub3RlIGRlZXAgY29weQorICAvLy8gXG5vdGUga2V5IG1heSBjb250YWluIGVtYmVkZGVk
IG51bGxzLgorICBWYWx1ZQorICBnZXQoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVu
ZCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdGhlIG1l
bWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8v
LyBcbm90ZSBkZWVwIGNvcHkKKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQg
bnVsbHMuCisgIFZhbHVlIGdldChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgLy8vIFJldHVybiB0aGUg
bWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAg
Ly8vIFxub3RlIGRlZXAgY29weQorICBWYWx1ZSBnZXQoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5n
JiBrZXksIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworI2VuZGlmCisgIC8vLyBN
b3N0IGdlbmVyYWwgYW5kIGVmZmljaWVudCB2ZXJzaW9uIG9mIGlzTWVtYmVyKCljb25zdCwgZ2V0
KCljb25zdCwKKyAgLy8vIGFuZCBvcGVyYXRvcltdY29uc3QKKyAgLy8vIFxub3RlIEFzIHN0YXRl
ZCBlbHNld2hlcmUsIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMw
CisgIFZhbHVlIGNvbnN0KiBmaW5kKGNoYXIgY29uc3QqIGJlZ2luLCBjaGFyIGNvbnN0KiBlbmQp
IGNvbnN0OworICAvLy8gTW9zdCBnZW5lcmFsIGFuZCBlZmZpY2llbnQgdmVyc2lvbiBvZiBvYmpl
Y3QtbXV0YXRvcnMuCisgIC8vLyBcbm90ZSBBcyBzdGF0ZWQgZWxzZXdoZXJlLCBiZWhhdmlvciBp
cyB1bmRlZmluZWQgaWYgKGVuZC1iZWdpbikgPj0gMl4zMAorICAvLy8gXHJldHVybiBub24temVy
bywgYnV0IEpTT05fQVNTRVJUIGlmIHRoaXMgaXMgbmVpdGhlciBvYmplY3Qgbm9yIG51bGxWYWx1
ZS4KKyAgVmFsdWUqIGRlbWFuZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCogZW5kKTsK
KyAgLy8vIFxicmllZiBSZW1vdmUgYW5kIHJldHVybiB0aGUgbmFtZWQgbWVtYmVyLgorICAvLy8K
KyAgLy8vIERvIG5vdGhpbmcgaWYgaXQgZGlkIG5vdCBleGlzdC4KKyAgLy8vIFxwcmUgdHlwZSgp
IGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQorICAvLy8gXHBvc3QgdHlwZSgpIGlzIHVuY2hh
bmdlZAorICB2b2lkIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXkpOworICAvLy8gU2FtZSBh
cyByZW1vdmVNZW1iZXIoY29uc3QgY2hhciopCisgIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWlu
IGVtYmVkZGVkIG51bGxzLgorICB2b2lkIHJlbW92ZU1lbWJlcihjb25zdCBTdHJpbmcmIGtleSk7
CisgIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hh
ciogZW5kLCBWYWx1ZSogcmVtb3ZlZCksCisgIC8vLyBidXQgJ2tleScgaXMgbnVsbC10ZXJtaW5h
dGVkLgorICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVk
KTsKKyAgLyoqIFxicmllZiBSZW1vdmUgdGhlIG5hbWVkIG1hcCBtZW1iZXIuCisKKyAgICAgIFVw
ZGF0ZSAncmVtb3ZlZCcgaWZmIHJlbW92ZWQuCisgICAgICBccGFyYW0ga2V5IG1heSBjb250YWlu
IGVtYmVkZGVkIG51bGxzLgorICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBleGNl
cHRpb25zKQorICAqLworICBib29sIHJlbW92ZU1lbWJlcihTdHJpbmcgY29uc3QmIGtleSwgVmFs
dWUqIHJlbW92ZWQpOworICAvLy8gU2FtZSBhcyByZW1vdmVNZW1iZXIoU3RyaW5nIGNvbnN0JiBr
ZXksIFZhbHVlKiByZW1vdmVkKQorICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdp
biwgY29uc3QgY2hhciogZW5kLCBWYWx1ZSogcmVtb3ZlZCk7CisgIC8qKiBcYnJpZWYgUmVtb3Zl
IHRoZSBpbmRleGVkIGFycmF5IGVsZW1lbnQuCisKKyAgICAgIE8obikgZXhwZW5zaXZlIG9wZXJh
dGlvbnMuCisgICAgICBVcGRhdGUgJ3JlbW92ZWQnIGlmZiByZW1vdmVkLgorICAgICAgXHJldHVy
biB0cnVlIGlmIHJlbW92ZWQgKG5vIGV4Y2VwdGlvbnMpCisgICovCisgIGJvb2wgcmVtb3ZlSW5k
ZXgoQXJyYXlJbmRleCBpbmRleCwgVmFsdWUqIHJlbW92ZWQpOworCisgIC8vLyBSZXR1cm4gdHJ1
ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCisgIC8vLyBcbm90ZSAna2V5
JyBtdXN0IGJlIG51bGwtdGVybWluYXRlZC4KKyAgYm9vbCBpc01lbWJlcihjb25zdCBjaGFyKiBr
ZXkpIGNvbnN0OworICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIg
bmFtZWQga2V5LgorICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4K
KyAgYm9vbCBpc01lbWJlcihjb25zdCBTdHJpbmcmIGtleSkgY29uc3Q7CisgIC8vLyBTYW1lIGFz
IGlzTWVtYmVyKFN0cmluZyBjb25zdCYga2V5KWNvbnN0CisgIGJvb2wgaXNNZW1iZXIoY29uc3Qg
Y2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQ
VEwKKyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVyIG5hbWVkIGtl
eS4KKyAgYm9vbCBpc01lbWJlcihjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3Q7
CisjZW5kaWYKIAotLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0vLyAgICAgIEVudW1NZW1iZXJO
YW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25zdDsKLS8vICAgICAgRW51bVZhbHVlcyBlbnVtVmFs
dWVzKCkgY29uc3Q7Ci0vLyMgZW5kaWYKKyAgLy8vIFxicmllZiBSZXR1cm4gYSBsaXN0IG9mIHRo
ZSBtZW1iZXIgbmFtZXMuCisgIC8vLworICAvLy8gSWYgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IGxp
c3QuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUKKyAgLy8v
IFxwb3N0IGlmIHR5cGUoKSB3YXMgbnVsbFZhbHVlLCBpdCByZW1haW5zIG51bGxWYWx1ZQorICBN
ZW1iZXJzIGdldE1lbWJlck5hbWVzKCkgY29uc3Q7CisKKyAgLy8jIGlmZGVmIEpTT05fVVNFX0NQ
UFRMCisgIC8vICAgICAgRW51bU1lbWJlck5hbWVzIGVudW1NZW1iZXJOYW1lcygpIGNvbnN0Owor
ICAvLyAgICAgIEVudW1WYWx1ZXMgZW51bVZhbHVlcygpIGNvbnN0OworICAvLyMgZW5kaWYKKwor
ICAvLy8gXGRlcHJlY2F0ZWQgQWx3YXlzIHBhc3MgbGVuLgorICBKU09OQ1BQX0RFUFJFQ0FURUQo
IlVzZSBzZXRDb21tZW50KFN0cmluZyBjb25zdCYpIGluc3RlYWQuIikKKyAgdm9pZCBzZXRDb21t
ZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7Cisg
ICAgc2V0Q29tbWVudChTdHJpbmcoY29tbWVudCwgc3RybGVuKGNvbW1lbnQpKSwgcGxhY2VtZW50
KTsKKyAgfQorICAvLy8gQ29tbWVudHMgbXVzdCBiZSAvLy4uLiBvciAvKiAuLi4gKi8KKyAgdm9p
ZCBzZXRDb21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIHNpemVfdCBsZW4sIENvbW1lbnRQbGFj
ZW1lbnQgcGxhY2VtZW50KSB7CisgICAgc2V0Q29tbWVudChTdHJpbmcoY29tbWVudCwgbGVuKSwg
cGxhY2VtZW50KTsKKyAgfQorICAvLy8gQ29tbWVudHMgbXVzdCBiZSAvLy4uLiBvciAvKiAuLi4g
Ki8KKyAgdm9pZCBzZXRDb21tZW50KFN0cmluZyBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCk7CisgIGJvb2wgaGFzQ29tbWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkg
Y29uc3Q7CisgIC8vLyBJbmNsdWRlIGRlbGltaXRlcnMgYW5kIGVtYmVkZGVkIG5ld2xpbmVzLgor
ICBTdHJpbmcgZ2V0Q29tbWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3Q7CisK
KyAgU3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7CisKKyAgY29uc3RfaXRlcmF0b3IgYmVn
aW4oKSBjb25zdDsKKyAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7CisKKyAgaXRlcmF0b3Ig
YmVnaW4oKTsKKyAgaXRlcmF0b3IgZW5kKCk7CisKKyAgLy8gQWNjZXNzb3JzIGZvciB0aGUgW3N0
YXJ0LCBsaW1pdCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSBKU09OIHRleHQgZnJvbQorICAv
LyB3aGljaCB0aGlzIHZhbHVlIHdhcyBwYXJzZWQsIGlmIGFueS4KKyAgdm9pZCBzZXRPZmZzZXRT
dGFydChwdHJkaWZmX3Qgc3RhcnQpOworICB2b2lkIHNldE9mZnNldExpbWl0KHB0cmRpZmZfdCBs
aW1pdCk7CisgIHB0cmRpZmZfdCBnZXRPZmZzZXRTdGFydCgpIGNvbnN0OworICBwdHJkaWZmX3Qg
Z2V0T2Zmc2V0TGltaXQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgdm9pZCBzZXRUeXBlKFZhbHVl
VHlwZSB2KSB7CisgICAgYml0c18udmFsdWVfdHlwZV8gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBj
aGFyPih2KTsKKyAgfQorICBib29sIGlzQWxsb2NhdGVkKCkgY29uc3QgeyByZXR1cm4gYml0c18u
YWxsb2NhdGVkXzsgfQorICB2b2lkIHNldElzQWxsb2NhdGVkKGJvb2wgdikgeyBiaXRzXy5hbGxv
Y2F0ZWRfID0gdjsgfQorCisgIHZvaWQgaW5pdEJhc2ljKFZhbHVlVHlwZSB0eXBlLCBib29sIGFs
bG9jYXRlZCA9IGZhbHNlKTsKKyAgdm9pZCBkdXBQYXlsb2FkKGNvbnN0IFZhbHVlJiBvdGhlcik7
CisgIHZvaWQgcmVsZWFzZVBheWxvYWQoKTsKKyAgdm9pZCBkdXBNZXRhKGNvbnN0IFZhbHVlJiBv
dGhlcik7CisKKyAgVmFsdWUmIHJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5KTsKKyAg
VmFsdWUmIHJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiBlbmQp
OworCisgIC8vIHN0cnVjdCBNZW1iZXJOYW1lc1RyYW5zZm9ybQorICAvL3sKKyAgLy8gICB0eXBl
ZGVmIGNvbnN0IGNoYXIgKnJlc3VsdF90eXBlOworICAvLyAgIGNvbnN0IGNoYXIgKm9wZXJhdG9y
KCkoIGNvbnN0IENaU3RyaW5nICZuYW1lICkgY29uc3QKKyAgLy8gICB7CisgIC8vICAgICAgcmV0
dXJuIG5hbWUuY19zdHIoKTsKKyAgLy8gICB9CisgIC8vfTsKKworICB1bmlvbiBWYWx1ZUhvbGRl
ciB7CisgICAgTGFyZ2VzdEludCBpbnRfOworICAgIExhcmdlc3RVSW50IHVpbnRfOworICAgIGRv
dWJsZSByZWFsXzsKKyAgICBib29sIGJvb2xfOworICAgIGNoYXIqIHN0cmluZ187IC8vIGlmIGFs
bG9jYXRlZF8sIHB0ciB0byB7IHVuc2lnbmVkLCBjaGFyW10gfS4KKyAgICBPYmplY3RWYWx1ZXMq
IG1hcF87CisgIH0gdmFsdWVfOworCisgIHN0cnVjdCB7CisgICAgLy8gUmVhbGx5IGEgVmFsdWVU
eXBlLCBidXQgdHlwZXMgc2hvdWxkIGFncmVlIGZvciBiaXRmaWVsZCBwYWNraW5nLgorICAgIHVu
c2lnbmVkIGludCB2YWx1ZV90eXBlXyA6IDg7CisgICAgLy8gVW5sZXNzIGFsbG9jYXRlZF8sIHN0
cmluZ18gbXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCisgICAgdW5zaWduZWQgaW50IGFsbG9jYXRl
ZF8gOiAxOworICB9IGJpdHNfOworCisgIGNsYXNzIENvbW1lbnRzIHsKKyAgcHVibGljOgorICAg
IENvbW1lbnRzKCkgPSBkZWZhdWx0OworICAgIENvbW1lbnRzKGNvbnN0IENvbW1lbnRzJiB0aGF0
KTsKKyAgICBDb21tZW50cyhDb21tZW50cyYmIHRoYXQpOworICAgIENvbW1lbnRzJiBvcGVyYXRv
cj0oY29uc3QgQ29tbWVudHMmIHRoYXQpOworICAgIENvbW1lbnRzJiBvcGVyYXRvcj0oQ29tbWVu
dHMmJiB0aGF0KTsKKyAgICBib29sIGhhcyhDb21tZW50UGxhY2VtZW50IHNsb3QpIGNvbnN0Owor
ICAgIFN0cmluZyBnZXQoQ29tbWVudFBsYWNlbWVudCBzbG90KSBjb25zdDsKKyAgICB2b2lkIHNl
dChDb21tZW50UGxhY2VtZW50IHNsb3QsIFN0cmluZyBzKTsKKworICBwcml2YXRlOgorICAgIHVz
aW5nIEFycmF5ID0gc3RkOjphcnJheTxTdHJpbmcsIG51bWJlck9mQ29tbWVudFBsYWNlbWVudD47
CisgICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5PiBwdHJfOworICB9OworICBDb21tZW50cyBjb21t
ZW50c187CisKKyAgLy8gW3N0YXJ0LCBsaW1pdCkgYnl0ZSBvZmZzZXRzIGluIHRoZSBzb3VyY2Ug
SlNPTiB0ZXh0IGZyb20gd2hpY2ggdGhpcyBWYWx1ZQorICAvLyB3YXMgZXh0cmFjdGVkLgorICBw
dHJkaWZmX3Qgc3RhcnRfOworICBwdHJkaWZmX3QgbGltaXRfOworfTsKIAotICAgICAgLy8vIENv
bW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCi0gICAgICB2b2lkIHNldENvbW1lbnQo
IGNvbnN0IGNoYXIgKmNvbW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRQbGFj
ZW1lbnQgcGxhY2VtZW50ICk7Ci0gICAgICAvLy8gQ29tbWVudHMgbXVzdCBiZSAvLy4uLiBvciAv
KiAuLi4gKi8KLSAgICAgIHZvaWQgc2V0Q29tbWVudCggY29uc3Qgc3RkOjpzdHJpbmcgJmNvbW1l
bnQsCi0gICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICk7
Ci0gICAgICBib29sIGhhc0NvbW1lbnQoIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29u
c3Q7Ci0gICAgICAvLy8gSW5jbHVkZSBkZWxpbWl0ZXJzIGFuZCBlbWJlZGRlZCBuZXdsaW5lcy4K
LSAgICAgIHN0ZDo6c3RyaW5nIGdldENvbW1lbnQoIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50
ICkgY29uc3Q7Ci0KLSAgICAgIHN0ZDo6c3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7Ci0K
LSAgICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3Q7Ci0gICAgICBjb25zdF9pdGVyYXRv
ciBlbmQoKSBjb25zdDsKLQotICAgICAgaXRlcmF0b3IgYmVnaW4oKTsKLSAgICAgIGl0ZXJhdG9y
IGVuZCgpOwotCi0gICBwcml2YXRlOgotICAgICAgVmFsdWUgJnJlc29sdmVSZWZlcmVuY2UoIGNv
bnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1N0
YXRpYyApOwotCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgaW5s
aW5lIGJvb2wgaXNJdGVtQXZhaWxhYmxlKCkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVy
biBpdGVtSXNVc2VkXyA9PSAwOwotICAgICAgfQotCi0gICAgICBpbmxpbmUgdm9pZCBzZXRJdGVt
VXNlZCggYm9vbCBpc1VzZWQgPSB0cnVlICkKLSAgICAgIHsKLSAgICAgICAgIGl0ZW1Jc1VzZWRf
ID0gaXNVc2VkID8gMSA6IDA7Ci0gICAgICB9Ci0KLSAgICAgIGlubGluZSBib29sIGlzTWVtYmVy
TmFtZVN0YXRpYygpIGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gbWVtYmVyTmFtZUlz
U3RhdGljXyA9PSAwOwotICAgICAgfQotCi0gICAgICBpbmxpbmUgdm9pZCBzZXRNZW1iZXJOYW1l
SXNTdGF0aWMoIGJvb2wgaXNTdGF0aWMgKQotICAgICAgewotICAgICAgICAgbWVtYmVyTmFtZUlz
U3RhdGljXyA9IGlzU3RhdGljID8gMSA6IDA7Ci0gICAgICB9Ci0jIGVuZGlmIC8vICMgaWZkZWYg
SlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0KLSAgIHByaXZhdGU6Ci0gICAgICBzdHJ1Y3Qg
Q29tbWVudEluZm8KLSAgICAgIHsKLSAgICAgICAgIENvbW1lbnRJbmZvKCk7Ci0gICAgICAgICB+
Q29tbWVudEluZm8oKTsKLQotICAgICAgICAgdm9pZCBzZXRDb21tZW50KCBjb25zdCBjaGFyICp0
ZXh0ICk7Ci0KLSAgICAgICAgIGNoYXIgKmNvbW1lbnRfOwotICAgICAgfTsKLQotICAgICAgLy9z
dHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0KLSAgICAgIC8vewotICAgICAgLy8gICB0eXBlZGVm
IGNvbnN0IGNoYXIgKnJlc3VsdF90eXBlOwotICAgICAgLy8gICBjb25zdCBjaGFyICpvcGVyYXRv
cigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0Ci0gICAgICAvLyAgIHsKLSAgICAgIC8v
ICAgICAgcmV0dXJuIG5hbWUuY19zdHIoKTsKLSAgICAgIC8vICAgfQotICAgICAgLy99OwotCi0g
ICAgICB1bmlvbiBWYWx1ZUhvbGRlcgotICAgICAgewotICAgICAgICAgTGFyZ2VzdEludCBpbnRf
OwotICAgICAgICAgTGFyZ2VzdFVJbnQgdWludF87Ci0gICAgICAgICBkb3VibGUgcmVhbF87Ci0g
ICAgICAgICBib29sIGJvb2xfOwotICAgICAgICAgY2hhciAqc3RyaW5nXzsKLSMgaWZkZWYgSlNP
Tl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXkgKmFy
cmF5XzsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXAgKm1hcF87Ci0jZWxzZQotICAgICAgICAg
T2JqZWN0VmFsdWVzICptYXBfOwotIyBlbmRpZgotICAgICAgfSB2YWx1ZV87Ci0gICAgICBWYWx1
ZVR5cGUgdHlwZV8gOiA4OwotICAgICAgaW50IGFsbG9jYXRlZF8gOiAxOyAgICAgLy8gTm90ZXM6
IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxkIGlzIHVzZWxlc3MuCi0jIGlmZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgdW5zaWduZWQgaW50IGl0ZW1Jc1VzZWRfIDog
MTsgICAgICAvLyB1c2VkIGJ5IHRoZSBWYWx1ZUludGVybmFsTWFwIGNvbnRhaW5lci4KLSAgICAg
IGludCBtZW1iZXJOYW1lSXNTdGF0aWNfIDogMTsgICAgICAgLy8gdXNlZCBieSB0aGUgVmFsdWVJ
bnRlcm5hbE1hcCBjb250YWluZXIuCi0jIGVuZGlmCi0gICAgICBDb21tZW50SW5mbyAqY29tbWVu
dHNfOwotICAgfTsKLQotCi0gICAvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6
IHJlcHJlc2VudHMgYW4gZWxlbWVudCBvZiB0aGUgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCi0g
ICAgKi8KLSAgIGNsYXNzIFBhdGhBcmd1bWVudAotICAgewotICAgcHVibGljOgotICAgICAgZnJp
ZW5kIGNsYXNzIFBhdGg7Ci0KLSAgICAgIFBhdGhBcmd1bWVudCgpOwotICAgICAgUGF0aEFyZ3Vt
ZW50KCBBcnJheUluZGV4IGluZGV4ICk7Ci0gICAgICBQYXRoQXJndW1lbnQoIGNvbnN0IGNoYXIg
KmtleSApOwotICAgICAgUGF0aEFyZ3VtZW50KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICk7Ci0K
LSAgIHByaXZhdGU6Ci0gICAgICBlbnVtIEtpbmQKLSAgICAgIHsKLSAgICAgICAgIGtpbmROb25l
ID0gMCwKLSAgICAgICAgIGtpbmRJbmRleCwKLSAgICAgICAgIGtpbmRLZXkKLSAgICAgIH07Ci0g
ICAgICBzdGQ6OnN0cmluZyBrZXlfOwotICAgICAgQXJyYXlJbmRleCBpbmRleF87Ci0gICAgICBL
aW5kIGtpbmRfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5kIHVudGVz
dGVkOiByZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCi0gICAgKgotICAgICog
U3ludGF4OgotICAgICogLSAiLiIgPT4gcm9vdCBub2RlCi0gICAgKiAtICIuW25dIiA9PiBlbGVt
ZW50cyBhdCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2YWx1ZSkKLSAgICAqIC0g
Ii5uYW1lIiA9PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9kZSAoYW4gb2JqZWN0IHZh
bHVlKQotICAgICogLSAiLm5hbWUxLm5hbWUyLm5hbWUzIgotICAgICogLSAiLlswXVsxXVsyXS5u
YW1lMVszXSIKLSAgICAqIC0gIi4lIiA9PiBtZW1iZXIgbmFtZSBpcyBwcm92aWRlZCBhcyBwYXJh
bWV0ZXIKLSAgICAqIC0gIi5bJV0iID0+IGluZGV4IGlzIHByb3ZpZWQgYXMgcGFyYW1ldGVyCi0g
ICAgKi8KLSAgIGNsYXNzIFBhdGgKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIFBhdGgoIGNvbnN0
IHN0ZDo6c3RyaW5nICZwYXRoLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMSA9
IFBhdGhBcmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMiA9IFBh
dGhBcmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMyA9IFBhdGhB
cmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhNCA9IFBhdGhBcmd1
bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhNSA9IFBhdGhBcmd1bWVu
dCgpICk7Ci0KLSAgICAgIGNvbnN0IFZhbHVlICZyZXNvbHZlKCBjb25zdCBWYWx1ZSAmcm9vdCAp
IGNvbnN0OwotICAgICAgVmFsdWUgcmVzb2x2ZSggY29uc3QgVmFsdWUgJnJvb3QsIAotICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0OwotICAgICAg
Ly8vIENyZWF0ZXMgdGhlICJwYXRoIiB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBub2RlIGFuZCBy
ZXR1cm5zIGEgcmVmZXJlbmNlIG9uIHRoZSBub2RlLgotICAgICAgVmFsdWUgJm1ha2UoIFZhbHVl
ICZyb290ICkgY29uc3Q7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB0eXBlZGVmIHN0ZDo6dmVjdG9y
PGNvbnN0IFBhdGhBcmd1bWVudCAqPiBJbkFyZ3M7Ci0gICAgICB0eXBlZGVmIHN0ZDo6dmVjdG9y
PFBhdGhBcmd1bWVudD4gQXJnczsKLQotICAgICAgdm9pZCBtYWtlUGF0aCggY29uc3Qgc3RkOjpz
dHJpbmcgJnBhdGgsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluICk7Ci0g
ICAgICB2b2lkIGFkZFBhdGhJbkFyZyggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4sIAotICAgICAgICAgICAgICAgICAg
ICAgICAgIEluQXJnczo6Y29uc3RfaXRlcmF0b3IgJml0SW5BcmcsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kICk7Ci0gICAgICB2b2lkIGludmFsaWRQ
YXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAgICAgICAgICAgICAgICAgICAgICBp
bnQgbG9jYXRpb24gKTsKLQotICAgICAgQXJncyBhcmdzXzsKLSAgIH07Ci0KLQotCi0jaWZkZWYg
SlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAvKiogXGJyaWVmIEFsbG9jYXRvciB0byBj
dXN0b21pemUgVmFsdWUgaW50ZXJuYWwgbWFwLgotICAgICogQmVsb3cgaXMgYW4gZXhhbXBsZSBv
ZiBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiAoZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhY3R1YWxs
eQotICAgICogdXNlIG1lbW9yeSBwb29sIGZvciBzcGVlZCkuCi0gICAgKiBcY29kZQotICAgICAg
Y2xhc3MgRGVmYXVsdFZhbHVlTWFwQWxsb2NhdG9yIDogcHVibGljIFZhbHVlTWFwQWxsb2NhdG9y
Ci0gICAgICB7Ci0gICAgICBwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1ZU1hcEFsbG9j
YXRvcgotICAgICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdNYXAoKQotICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFsTWFwKCk7Ci0gICAgICAg
ICB9Ci0KLSAgICAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwQ29weSggY29u
c3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIG5ldyBWYWx1ZUludGVybmFsTWFwKCBvdGhlciApOwotICAgICAgICAgfQotCi0gICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RNYXAoIFZhbHVlSW50ZXJuYWxNYXAgKm1hcCApCi0gICAg
ICAgICB7Ci0gICAgICAgICAgICBkZWxldGUgbWFwOwotICAgICAgICAgfQotCi0gICAgICAgICB2
aXJ0dWFsIFZhbHVlSW50ZXJuYWxMaW5rICphbGxvY2F0ZU1hcEJ1Y2tldHMoIHVuc2lnbmVkIGlu
dCBzaXplICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5h
bExpbmtbc2l6ZV07Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNl
TWFwQnVja2V0cyggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtzICkKLSAgICAgICAgIHsKLSAgICAg
ICAgICAgIGRlbGV0ZSBbXSBsaW5rczsKLSAgICAgICAgIH0KLQotICAgICAgICAgdmlydHVhbCBW
YWx1ZUludGVybmFsTGluayAqYWxsb2NhdGVNYXBMaW5rKCkKLSAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbExpbmsoKTsKLSAgICAgICAgIH0KLQotICAgICAg
ICAgdmlydHVhbCB2b2lkIHJlbGVhc2VNYXBMaW5rKCBWYWx1ZUludGVybmFsTGluayAqbGluayAp
Ci0gICAgICAgICB7Ci0gICAgICAgICAgICBkZWxldGUgbGluazsKLSAgICAgICAgIH0KLSAgICAg
IH07Ci0gICAgKiBcZW5kY29kZQotICAgICovIAotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVNYXBB
bGxvY2F0b3IKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIHZpcnR1YWwgflZhbHVlTWFwQWxsb2Nh
dG9yKCk7Ci0gICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcCgpID0gMDsKLSAg
ICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwQ29weSggY29uc3QgVmFsdWVJbnRl
cm5hbE1hcCAmb3RoZXIgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RNYXAoIFZh
bHVlSW50ZXJuYWxNYXAgKm1hcCApID0gMDsKLSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExp
bmsgKmFsbG9jYXRlTWFwQnVja2V0cyggdW5zaWduZWQgaW50IHNpemUgKSA9IDA7Ci0gICAgICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcEJ1Y2tldHMoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rcyAp
ID0gMDsKLSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFsbG9jYXRlTWFwTGluaygp
ID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwTGluayggVmFsdWVJbnRlcm5hbExp
bmsgKmxpbmsgKSA9IDA7Ci0gICB9OwotCi0gICAvKiogXGJyaWVmIFZhbHVlSW50ZXJuYWxNYXAg
aGFzaC1tYXAgYnVja2V0IGNoYWluIGxpbmsgKGZvciBpbnRlcm5hbCB1c2Ugb25seSkuCi0gICAg
KiBcaW50ZXJuYWwgcHJldmlvdXNfICYgbmV4dF8gYWxsb3dzIGZvciBiaWRpcmVjdGlvbmFsIHRy
YXZlcnNhbC4KLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVJbnRlcm5hbExpbmsKLSAg
IHsKLSAgIHB1YmxpYzoKLSAgICAgIGVudW0geyBpdGVtUGVyTGluayA9IDYgfTsgIC8vIHNpemVv
ZihWYWx1ZUludGVybmFsTGluaykgPSAxMjggb24gMzIgYml0cyBhcmNoaXRlY3R1cmUuCi0gICAg
ICBlbnVtIEludGVybmFsRmxhZ3MgeyAKLSAgICAgICAgIGZsYWdBdmFpbGFibGUgPSAwLAotICAg
ICAgICAgZmxhZ1VzZWQgPSAxCi0gICAgICB9OwotCi0gICAgICBWYWx1ZUludGVybmFsTGluaygp
OwotCi0gICAgICB+VmFsdWVJbnRlcm5hbExpbmsoKTsKLQotICAgICAgVmFsdWUgaXRlbXNfW2l0
ZW1QZXJMaW5rXTsKLSAgICAgIGNoYXIgKmtleXNfW2l0ZW1QZXJMaW5rXTsKLSAgICAgIFZhbHVl
SW50ZXJuYWxMaW5rICpwcmV2aW91c187Ci0gICAgICBWYWx1ZUludGVybmFsTGluayAqbmV4dF87
Ci0gICB9OwotCi0KLSAgIC8qKiBcYnJpZWYgQSBsaW5rZWQgcGFnZSBiYXNlZCBoYXNoLXRhYmxl
IGltcGxlbWVudGF0aW9uIHVzZWQgaW50ZXJuYWxseSBieSBWYWx1ZS4KLSAgICAqIFxpbnRlcm5h
bCBWYWx1ZUludGVybmFsTWFwIGlzIGEgdHJhZGlvbmFsIGJ1Y2tldCBiYXNlZCBoYXNoLXRhYmxl
LCB3aXRoIGEgbGlua2VkCi0gICAgKiBsaXN0IGluIGVhY2ggYnVja2V0IHRvIGhhbmRsZSBjb2xs
aXNpb24uIFRoZXJlIGlzIGFuIGFkZGlvbmFsIHR3aXN0IGluIHRoYXQKLSAgICAqIGVhY2ggbm9k
ZSBvZiB0aGUgY29sbGlzaW9uIGxpbmtlZCBsaXN0IGlzIGEgcGFnZSBjb250YWluaW5nIGEgZml4
ZWQgYW1vdW50IG9mCi0gICAgKiB2YWx1ZS4gVGhpcyBwcm92aWRlcyBhIGJldHRlciBjb21wcm9t
aXNlIGJldHdlZW4gbWVtb3J5IHVzYWdlIGFuZCBzcGVlZC4KLSAgICAqIAotICAgICogRWFjaCBi
dWNrZXQgaXMgbWFkZSB1cCBvZiBhIGNoYWluZWQgbGlzdCBvZiBWYWx1ZUludGVybmFsTGluay4g
VGhlIGxhc3QKLSAgICAqIGxpbmsgb2YgYSBnaXZlbiBidWNrZXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSAncHJldmlvdXNfJyBmaWVsZCBvZiB0aGUgZm9sbG93aW5nIGJ1Y2tldC4KLSAgICAqIFRoZSBs
YXN0IGxpbmsgb2YgdGhlIGxhc3QgYnVja2V0IGlzIHN0b3JlZCBpbiB0YWlsTGlua18gYXMgaXQg
aGFzIG5vIGZvbGxvd2luZyBidWNrZXQuCi0gICAgKiBPbmx5IHRoZSBsYXN0IGxpbmsgb2YgYSBi
dWNrZXQgbWF5IGNvbnRhaW5zICdhdmFpbGFibGUnIGl0ZW0uIFRoZSBsYXN0IGxpbmsgYWx3YXlz
Ci0gICAgKiBjb250YWlucyBhdCBsZWFzdCBvbmUgZWxlbWVudCB1bmxlc3MgaXMgaXQgdGhlIGJ1
Y2tldCBvbmUgdmVyeSBmaXJzdCBsaW5rLgotICAgICovCi0gICBjbGFzcyBKU09OX0FQSSBWYWx1
ZUludGVybmFsTWFwCi0gICB7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7
Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWU7Ci0gICBwdWJsaWM6Ci0gICAgICB0eXBlZGVmIHVu
c2lnbmVkIGludCBIYXNoS2V5OwotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgQnVja2V0SW5k
ZXg7Ci0KLSMgaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KLSAgICAg
IHN0cnVjdCBJdGVyYXRvclN0YXRlCi0gICAgICB7Ci0gICAgICAgICBJdGVyYXRvclN0YXRlKCkg
Ci0gICAgICAgICAgICA6IG1hcF8oMCkKLSAgICAgICAgICAgICwgbGlua18oMCkKLSAgICAgICAg
ICAgICwgaXRlbUluZGV4XygwKQotICAgICAgICAgICAgLCBidWNrZXRJbmRleF8oMCkgCi0gICAg
ICAgICB7Ci0gICAgICAgICB9Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwICptYXBfOwotICAg
ICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtfOwotICAgICAgICAgQnVja2V0SW5kZXggaXRl
bUluZGV4XzsKLSAgICAgICAgIEJ1Y2tldEluZGV4IGJ1Y2tldEluZGV4XzsKLSAgICAgIH07Ci0j
IGVuZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLSAg
ICAgIFZhbHVlSW50ZXJuYWxNYXAoKTsKLSAgICAgIFZhbHVlSW50ZXJuYWxNYXAoIGNvbnN0IFZh
bHVlSW50ZXJuYWxNYXAgJm90aGVyICk7Ci0gICAgICBWYWx1ZUludGVybmFsTWFwICZvcGVyYXRv
ciA9KCBjb25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApOwotICAgICAgflZhbHVlSW50ZXJu
YWxNYXAoKTsKLQotICAgICAgdm9pZCBzd2FwKCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApOwot
Ci0gICAgICBCdWNrZXRJbmRleCBzaXplKCkgY29uc3Q7Ci0KLSAgICAgIHZvaWQgY2xlYXIoKTsK
LQotICAgICAgYm9vbCByZXNlcnZlRGVsdGEoIEJ1Y2tldEluZGV4IGdyb3d0aCApOwotCi0gICAg
ICBib29sIHJlc2VydmUoIEJ1Y2tldEluZGV4IG5ld0l0ZW1Db3VudCApOwotCi0gICAgICBjb25z
dCBWYWx1ZSAqZmluZCggY29uc3QgY2hhciAqa2V5ICkgY29uc3Q7Ci0KLSAgICAgIFZhbHVlICpm
aW5kKCBjb25zdCBjaGFyICprZXkgKTsKLQotICAgICAgVmFsdWUgJnJlc29sdmVSZWZlcmVuY2Uo
IGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBp
c1N0YXRpYyApOwotCi0gICAgICB2b2lkIHJlbW92ZSggY29uc3QgY2hhciAqa2V5ICk7Ci0KLSAg
ICAgIHZvaWQgZG9BY3R1YWxSZW1vdmUoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEJ1Y2tldEluZGV4IGluZGV4LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQnVja2V0SW5kZXggYnVja2V0SW5kZXggKTsKLQotICAgICAgVmFsdWVJbnRl
cm5hbExpbmsgKiZnZXRMYXN0TGlua0luQnVja2V0KCBCdWNrZXRJbmRleCBidWNrZXRJbmRleCAp
OwotCi0gICAgICBWYWx1ZSAmc2V0TmV3SXRlbSggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZUludGVybmFsTGluayAqbGluaywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgQnVj
a2V0SW5kZXggaW5kZXggKTsKLQotICAgICAgVmFsdWUgJnVuc2FmZUFkZCggY29uc3QgY2hhciAq
a2V5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgSGFzaEtleSBoYXNoZWRLZXkgKTsKLQotICAgICAgSGFzaEtleSBoYXNo
KCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLQotICAgICAgaW50IGNvbXBhcmUoIGNvbnN0IFZh
bHVlSW50ZXJuYWxNYXAgJm90aGVyICkgY29uc3Q7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB2b2lk
IG1ha2VCZWdpbkl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0OwotICAgICAgdm9p
ZCBtYWtlRW5kSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29uc3Q7Ci0gICAgICBzdGF0
aWMgYm9vbCBlcXVhbHMoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNvbnN0IEl0ZXJhdG9yU3Rh
dGUgJm90aGVyICk7Ci0gICAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnRCdWNrZXQoIEl0ZXJhdG9y
U3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgdm9pZCBkZWNyZW1lbnQoIEl0ZXJhdG9y
U3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgY29uc3QgY2hhciAqa2V5KCBjb25zdCBJ
dGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmtleSgg
Y29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IsIGJvb2wgJmlzU3RhdGljICk7Ci0gICAgICBz
dGF0aWMgVmFsdWUgJnZhbHVlKCBjb25zdCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAg
ICAgc3RhdGljIGludCBkaXN0YW5jZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3QgSXRl
cmF0b3JTdGF0ZSAmeSApOwotCi0gICBwcml2YXRlOgotICAgICAgVmFsdWVJbnRlcm5hbExpbmsg
KmJ1Y2tldHNfOwotICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKnRhaWxMaW5rXzsKLSAgICAgIEJ1
Y2tldEluZGV4IGJ1Y2tldHNTaXplXzsKLSAgICAgIEJ1Y2tldEluZGV4IGl0ZW1Db3VudF87Ci0g
ICB9OwotCi0gICAvKiogXGJyaWVmIEEgc2ltcGxpZmllZCBkZXF1ZSBpbXBsZW1lbnRhdGlvbiB1
c2VkIGludGVybmFsbHkgYnkgVmFsdWUuCi0gICAqIFxpbnRlcm5hbAotICAgKiBJdCBpcyBiYXNl
ZCBvbiBhIGxpc3Qgb2YgZml4ZWQgInBhZ2UiLCBlYWNoIHBhZ2UgY29udGFpbnMgYSBmaXhlZCBu
dW1iZXIgb2YgaXRlbXMuCi0gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBsaW5rZWQtbGlzdCwgYSBh
cnJheSBvZiBwb2ludGVyIGlzIHVzZWQgZm9yIGZhc3QgaXRlbSBsb29rLXVwLgotICAgKiBMb29r
LXVwIGZvciBhbiBlbGVtZW50IGlzIGFzIGZvbGxvdzoKLSAgICogLSBjb21wdXRlIHBhZ2UgaW5k
ZXg6IHBhZ2VJbmRleCA9IGl0ZW1JbmRleCAvIGl0ZW1zUGVyUGFnZQotICAgKiAtIGxvb2stdXAg
aXRlbSBpbiBwYWdlOiBwYWdlc19bcGFnZUluZGV4XVtpdGVtSW5kZXggJSBpdGVtc1BlclBhZ2Vd
Ci0gICAqCi0gICAqIEluc2VydGlvbiBpcyBhbW9ydGl6ZWQgY29uc3RhbnQgdGltZSAob25seSB0
aGUgYXJyYXkgY29udGFpbmluZyB0aGUgaW5kZXggb2YgcG9pbnRlcnMKLSAgICogbmVlZCB0byBi
ZSByZWFsbG9jYXRlZCB3aGVuIGl0ZW1zIGFyZSBhcHBlbmRlZCkuCi0gICAqLwotICAgY2xhc3Mg
SlNPTl9BUEkgVmFsdWVJbnRlcm5hbEFycmF5Ci0gICB7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFs
dWU7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7Ci0gICBwdWJsaWM6Ci0g
ICAgICBlbnVtIHsgaXRlbXNQZXJQYWdlID0gOCB9OyAgICAvLyBzaG91bGQgYmUgYSBwb3dlciBv
ZiAyIGZvciBmYXN0IGRpdmlkZSBhbmQgbW9kdWxvLgotICAgICAgdHlwZWRlZiBWYWx1ZTo6QXJy
YXlJbmRleCBBcnJheUluZGV4OwotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgUGFnZUluZGV4
OwotCi0jIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0gICAgICBz
dHJ1Y3QgSXRlcmF0b3JTdGF0ZSAvLyBNdXN0IGJlIGEgUE9ECi0gICAgICB7Ci0gICAgICAgICBJ
dGVyYXRvclN0YXRlKCkgCi0gICAgICAgICAgICA6IGFycmF5XygwKQotICAgICAgICAgICAgLCBj
dXJyZW50UGFnZUluZGV4XygwKQotICAgICAgICAgICAgLCBjdXJyZW50SXRlbUluZGV4XygwKSAK
LSAgICAgICAgIHsKLSAgICAgICAgIH0KLSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSAqYXJy
YXlfOwotICAgICAgICAgVmFsdWUgKipjdXJyZW50UGFnZUluZGV4XzsKLSAgICAgICAgIHVuc2ln
bmVkIGludCBjdXJyZW50SXRlbUluZGV4XzsKLSAgICAgIH07Ci0jIGVuZGlmIC8vIGlmbmRlZiBK
U09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLSAgICAgIFZhbHVlSW50ZXJuYWxB
cnJheSgpOwotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5KCBjb25zdCBWYWx1ZUludGVybmFsQXJy
YXkgJm90aGVyICk7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXkgJm9wZXJhdG9yID0oIGNvbnN0
IFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKTsKLSAgICAgIH5WYWx1ZUludGVybmFsQXJyYXko
KTsKLSAgICAgIHZvaWQgc3dhcCggVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApOwotCi0gICAg
ICB2b2lkIGNsZWFyKCk7Ci0gICAgICB2b2lkIHJlc2l6ZSggQXJyYXlJbmRleCBuZXdTaXplICk7
Ci0KLSAgICAgIFZhbHVlICZyZXNvbHZlUmVmZXJlbmNlKCBBcnJheUluZGV4IGluZGV4ICk7Ci0K
LSAgICAgIFZhbHVlICpmaW5kKCBBcnJheUluZGV4IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIEFy
cmF5SW5kZXggc2l6ZSgpIGNvbnN0OwotCi0gICAgICBpbnQgY29tcGFyZSggY29uc3QgVmFsdWVJ
bnRlcm5hbEFycmF5ICZvdGhlciApIGNvbnN0OwotCi0gICBwcml2YXRlOgotICAgICAgc3RhdGlj
IGJvb2wgZXF1YWxzKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25zdCBJdGVyYXRvclN0YXRl
ICZvdGhlciApOwotICAgICAgc3RhdGljIHZvaWQgaW5jcmVtZW50KCBJdGVyYXRvclN0YXRlICZp
dGVyYXRvciApOwotICAgICAgc3RhdGljIHZvaWQgZGVjcmVtZW50KCBJdGVyYXRvclN0YXRlICZp
dGVyYXRvciApOwotICAgICAgc3RhdGljIFZhbHVlICZkZXJlZmVyZW5jZSggY29uc3QgSXRlcmF0
b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBWYWx1ZSAmdW5zYWZlRGVyZWZlcmVu
Y2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgaW50IGRp
c3RhbmNlKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25zdCBJdGVyYXRvclN0YXRlICZ5ICk7
Ci0gICAgICBzdGF0aWMgQXJyYXlJbmRleCBpbmRleE9mKCBjb25zdCBJdGVyYXRvclN0YXRlICZp
dGVyYXRvciApOwotICAgICAgdm9pZCBtYWtlQmVnaW5JdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAm
aXQgKSBjb25zdDsKLSAgICAgIHZvaWQgbWFrZUVuZEl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZp
dCApIGNvbnN0OwotICAgICAgdm9pZCBtYWtlSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0LCBB
cnJheUluZGV4IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIHZvaWQgbWFrZUluZGV4VmFsaWQoIEFy
cmF5SW5kZXggaW5kZXggKTsKLQotICAgICAgVmFsdWUgKipwYWdlc187Ci0gICAgICBBcnJheUlu
ZGV4IHNpemVfOwotICAgICAgUGFnZUluZGV4IHBhZ2VDb3VudF87Ci0gICB9OwotCi0gICAvKiog
XGJyaWVmIEV4cGVyaW1lbnRhbDogZG8gbm90IHVzZS4gQWxsb2NhdG9yIHRvIGN1c3RvbWl6ZSBW
YWx1ZSBpbnRlcm5hbCBhcnJheS4KLSAgICAqIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBzaW1w
bGUgaW1wbGVtZW50YXRpb24gKGFjdHVhbCBpbXBsZW1lbnRhdGlvbiB1c2UKLSAgICAqIG1lbW9y
eSBwb29sKS4KLSAgICAgIFxjb2RlCi1jbGFzcyBEZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvciA6
IHB1YmxpYyBWYWx1ZUFycmF5QWxsb2NhdG9yCi17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJv
bSBWYWx1ZUFycmF5QWxsb2NhdG9yCi0gICB2aXJ0dWFsIH5EZWZhdWx0VmFsdWVBcnJheUFsbG9j
YXRvcigpCi0gICB7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdB
cnJheSgpCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxBcnJheSgpOwotICAg
fQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAqbmV3QXJyYXlDb3B5KCBjb25zdCBW
YWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVJ
bnRlcm5hbEFycmF5KCBvdGhlciApOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3Qo
IFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXkgKQotICAgewotICAgICAgZGVsZXRlIGFycmF5Owot
ICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgcmVhbGxvY2F0ZUFycmF5UGFnZUluZGV4KCBWYWx1ZSAq
KiZpbmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4ICZpbmRleENvdW50LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXgg
bWluTmV3SW5kZXhDb3VudCApCi0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJ
bmRleCBuZXdJbmRleENvdW50ID0gKGluZGV4Q291bnQqMykvMiArIDE7Ci0gICAgICBpZiAoIG1p
bk5ld0luZGV4Q291bnQgPiBuZXdJbmRleENvdW50ICkKLSAgICAgICAgIG5ld0luZGV4Q291bnQg
PSBtaW5OZXdJbmRleENvdW50OwotICAgICAgdm9pZCAqbmV3SW5kZXhlcyA9IHJlYWxsb2MoIGlu
ZGV4ZXMsIHNpemVvZihWYWx1ZSopICogbmV3SW5kZXhDb3VudCApOwotICAgICAgaWYgKCAhbmV3
SW5kZXhlcyApCi0gICAgICAgICB0aHJvdyBzdGQ6OmJhZF9hbGxvYygpOwotICAgICAgaW5kZXhD
b3VudCA9IG5ld0luZGV4Q291bnQ7Ci0gICAgICBpbmRleGVzID0gc3RhdGljX2Nhc3Q8VmFsdWUg
Kio+KCBuZXdJbmRleGVzICk7Ci0gICB9Ci0gICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUFycmF5UGFn
ZUluZGV4KCBWYWx1ZSAqKmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggaW5kZXhDb3VudCApCi0gICB7
Ci0gICAgICBpZiAoIGluZGV4ZXMgKQotICAgICAgICAgZnJlZSggaW5kZXhlcyApOwotICAgfQot
Ci0gICB2aXJ0dWFsIFZhbHVlICphbGxvY2F0ZUFycmF5UGFnZSgpCi0gICB7Ci0gICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8VmFsdWUgKj4oIG1hbGxvYyggc2l6ZW9mKFZhbHVlKSAqIFZhbHVlSW50
ZXJuYWxBcnJheTo6aXRlbXNQZXJQYWdlICkgKTsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJl
bGVhc2VBcnJheVBhZ2UoIFZhbHVlICp2YWx1ZSApCi0gICB7Ci0gICAgICBpZiAoIHZhbHVlICkK
LSAgICAgICAgIGZyZWUoIHZhbHVlICk7Ci0gICB9CisvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBh
bmQgdW50ZXN0ZWQ6IHJlcHJlc2VudHMgYW4gZWxlbWVudCBvZiB0aGUgInBhdGgiIHRvCisgKiBh
Y2Nlc3MgYSBub2RlLgorICovCitjbGFzcyBKU09OX0FQSSBQYXRoQXJndW1lbnQgeworcHVibGlj
OgorICBmcmllbmQgY2xhc3MgUGF0aDsKKworICBQYXRoQXJndW1lbnQoKTsKKyAgUGF0aEFyZ3Vt
ZW50KEFycmF5SW5kZXggaW5kZXgpOworICBQYXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KTsK
KyAgUGF0aEFyZ3VtZW50KGNvbnN0IFN0cmluZyYga2V5KTsKKworcHJpdmF0ZToKKyAgZW51bSBL
aW5kIHsga2luZE5vbmUgPSAwLCBraW5kSW5kZXgsIGtpbmRLZXkgfTsKKyAgU3RyaW5nIGtleV87
CisgIEFycmF5SW5kZXggaW5kZXhfe307CisgIEtpbmQga2luZF97a2luZE5vbmV9OwogfTsKLSAg
ICAgIFxlbmRjb2RlCi0gICAgKi8gCi0gICBjbGFzcyBKU09OX0FQSSBWYWx1ZUFycmF5QWxsb2Nh
dG9yCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICB2aXJ0dWFsIH5WYWx1ZUFycmF5QWxsb2NhdG9y
KCk7Ci0gICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAqbmV3QXJyYXkoKSA9IDA7Ci0g
ICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAqbmV3QXJyYXlDb3B5KCBjb25zdCBWYWx1
ZUludGVybmFsQXJyYXkgJm90aGVyICkgPSAwOwotICAgICAgdmlydHVhbCB2b2lkIGRlc3RydWN0
QXJyYXkoIFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXkgKSA9IDA7Ci0gICAgICAvKiogXGJyaWVm
IFJlYWxsb2NhdGUgYXJyYXkgcGFnZSBpbmRleC4KLSAgICAgICAqIFJlYWxsb2NhdGVzIGFuIGFy
cmF5IG9mIHBvaW50ZXIgb24gZWFjaCBwYWdlLgotICAgICAgICogXHBhcmFtIGluZGV4ZXMgW2lu
cHV0XSBwb2ludGVyIG9uIHRoZSBjdXJyZW50IGluZGV4LiBNYXkgYmUgXGMgTlVMTC4KLSAgICAg
ICAqICAgICAgICAgICAgICAgIFtvdXRwdXRdIHBvaW50ZXIgb24gdGhlIG5ldyBpbmRleCBvZiBh
dCBsZWFzdCAKLSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIFxhIG1pbk5ld0luZGV4
Q291bnQgcGFnZXMuIAotICAgICAgICogXHBhcmFtIGluZGV4Q291bnQgW2lucHV0XSBjdXJyZW50
IG51bWJlciBvZiBwYWdlcyBpbiB0aGUgaW5kZXguCi0gICAgICAgKiAgICAgICAgICAgICAgICAg
ICBbb3V0cHV0XSBudW1iZXIgb2YgcGFnZSB0aGUgcmVhbGxvY2F0ZWQgaW5kZXggY2FuIGhhbmRs
ZS4KLSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxiIE1VU1QgYmUgPj0gXGEg
bWluTmV3SW5kZXhDb3VudC4KLSAgICAgICAqIFxwYXJhbSBtaW5OZXdJbmRleENvdW50IE1pbmlt
dW0gbnVtYmVyIG9mIHBhZ2UgdGhlIG5ldyBpbmRleCBtdXN0IGJlIGFibGUgdG8KLSAgICAgICAq
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZS4KLSAgICAgICAqLwotICAgICAgdmlydHVh
bCB2b2lkIHJlYWxsb2NhdGVBcnJheVBhZ2VJbmRleCggVmFsdWUgKiomaW5kZXhlcywgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJy
YXk6OlBhZ2VJbmRleCAmaW5kZXhDb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IG1pbk5ld0luZGV4
Q291bnQgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUFycmF5UGFnZUluZGV4KCBW
YWx1ZSAqKmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggaW5kZXhDb3VudCApID0gMDsKLSAgICAg
IHZpcnR1YWwgVmFsdWUgKmFsbG9jYXRlQXJyYXlQYWdlKCkgPSAwOwotICAgICAgdmlydHVhbCB2
b2lkIHJlbGVhc2VBcnJheVBhZ2UoIFZhbHVlICp2YWx1ZSApID0gMDsKLSAgIH07Ci0jZW5kaWYg
Ly8gI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotCi0KLSAgIC8qKiBcYnJpZWYg
YmFzZSBjbGFzcyBmb3IgVmFsdWUgaXRlcmF0b3JzLgotICAgICoKLSAgICAqLwotICAgY2xhc3Mg
VmFsdWVJdGVyYXRvckJhc2UKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIHR5cGVkZWYgdW5zaWdu
ZWQgaW50IHNpemVfdDsKLSAgICAgIHR5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKLSAgICAg
IHR5cGVkZWYgVmFsdWVJdGVyYXRvckJhc2UgU2VsZlR5cGU7Ci0KLSAgICAgIFZhbHVlSXRlcmF0
b3JCYXNlKCk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgZXhw
bGljaXQgVmFsdWVJdGVyYXRvckJhc2UoIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJh
dG9yICZjdXJyZW50ICk7Ci0jZWxzZQotICAgICAgVmFsdWVJdGVyYXRvckJhc2UoIGNvbnN0IFZh
bHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKTsKLSAgICAgIFZhbHVlSXRl
cmF0b3JCYXNlKCBjb25zdCBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlICZzdGF0ZSAp
OwotI2VuZGlmCiAKLSAgICAgIGJvb2wgb3BlcmF0b3IgPT0oIGNvbnN0IFNlbGZUeXBlICZvdGhl
ciApIGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gaXNFcXVhbCggb3RoZXIgKTsKLSAg
ICAgIH0KKy8qKiBcYnJpZWYgRXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBh
ICJwYXRoIiB0byBhY2Nlc3MgYSBub2RlLgorICoKKyAqIFN5bnRheDoKKyAqIC0gIi4iID0+IHJv
b3Qgbm9kZQorICogLSAiLltuXSIgPT4gZWxlbWVudHMgYXQgaW5kZXggJ24nIG9mIHJvb3Qgbm9k
ZSAoYW4gYXJyYXkgdmFsdWUpCisgKiAtICIubmFtZSIgPT4gbWVtYmVyIG5hbWVkICduYW1lJyBv
ZiByb290IG5vZGUgKGFuIG9iamVjdCB2YWx1ZSkKKyAqIC0gIi5uYW1lMS5uYW1lMi5uYW1lMyIK
KyAqIC0gIi5bMF1bMV1bMl0ubmFtZTFbM10iCisgKiAtICIuJSIgPT4gbWVtYmVyIG5hbWUgaXMg
cHJvdmlkZWQgYXMgcGFyYW1ldGVyCisgKiAtICIuWyVdIiA9PiBpbmRleCBpcyBwcm92aWVkIGFz
IHBhcmFtZXRlcgorICovCitjbGFzcyBKU09OX0FQSSBQYXRoIHsKK3B1YmxpYzoKKyAgUGF0aChj
b25zdCBTdHJpbmcmIHBhdGgsCisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMSA9IFBhdGhB
cmd1bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIgPSBQYXRoQXJndW1lbnQo
KSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEzID0gUGF0aEFyZ3VtZW50KCksCisgICAg
ICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhNCA9IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0
IFBhdGhBcmd1bWVudCYgYTUgPSBQYXRoQXJndW1lbnQoKSk7CisKKyAgY29uc3QgVmFsdWUmIHJl
c29sdmUoY29uc3QgVmFsdWUmIHJvb3QpIGNvbnN0OworICBWYWx1ZSByZXNvbHZlKGNvbnN0IFZh
bHVlJiByb290LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIENyZWF0
ZXMgdGhlICJwYXRoIiB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBub2RlIGFuZCByZXR1cm5zIGEg
cmVmZXJlbmNlIG9uCisgIC8vLyB0aGUgbm9kZS4KKyAgVmFsdWUmIG1ha2UoVmFsdWUmIHJvb3Qp
IGNvbnN0OworCitwcml2YXRlOgorICB0eXBlZGVmIHN0ZDo6dmVjdG9yPGNvbnN0IFBhdGhBcmd1
bWVudCo+IEluQXJnczsKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxQYXRoQXJndW1lbnQ+IEFyZ3M7
CisKKyAgdm9pZCBtYWtlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4p
OworICB2b2lkIGFkZFBhdGhJbkFyZyhjb25zdCBTdHJpbmcmIHBhdGgsCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEluQXJncyYgaW4sCisgICAgICAgICAgICAgICAgICAgIEluQXJnczo6Y29u
c3RfaXRlcmF0b3ImIGl0SW5BcmcsCisgICAgICAgICAgICAgICAgICAgIFBhdGhBcmd1bWVudDo6
S2luZCBraW5kKTsKKyAgc3RhdGljIHZvaWQgaW52YWxpZFBhdGgoY29uc3QgU3RyaW5nJiBwYXRo
LCBpbnQgbG9jYXRpb24pOworCisgIEFyZ3MgYXJnc187Cit9OwogCi0gICAgICBib29sIG9wZXJh
dG9yICE9KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25zdAotICAgICAgewotICAgICAgICAg
cmV0dXJuICFpc0VxdWFsKCBvdGhlciApOwotICAgICAgfQorLyoqIFxicmllZiBiYXNlIGNsYXNz
IGZvciBWYWx1ZSBpdGVyYXRvcnMuCisgKgorICovCitjbGFzcyBKU09OX0FQSSBWYWx1ZUl0ZXJh
dG9yQmFzZSB7CitwdWJsaWM6CisgIHR5cGVkZWYgc3RkOjpiaWRpcmVjdGlvbmFsX2l0ZXJhdG9y
X3RhZyBpdGVyYXRvcl9jYXRlZ29yeTsKKyAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90Owor
ICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7CisgIHR5cGVkZWYgVmFsdWVJdGVyYXRvckJh
c2UgU2VsZlR5cGU7CiAKLSAgICAgIGRpZmZlcmVuY2VfdHlwZSBvcGVyYXRvciAtKCBjb25zdCBT
ZWxmVHlwZSAmb3RoZXIgKSBjb25zdAotICAgICAgewotICAgICAgICAgcmV0dXJuIGNvbXB1dGVE
aXN0YW5jZSggb3RoZXIgKTsKLSAgICAgIH0KKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNlbGZU
eXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gaXNFcXVhbChvdGhlcik7IH0KIAotICAgICAgLy8v
IFJldHVybiBlaXRoZXIgdGhlIGluZGV4IG9yIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJl
bmNlZCB2YWx1ZSBhcyBhIFZhbHVlLgotICAgICAgVmFsdWUga2V5KCkgY29uc3Q7CisgIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICFpc0VxdWFs
KG90aGVyKTsgfQogCi0gICAgICAvLy8gUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmNl
ZCBWYWx1ZS4gLTEgaWYgaXQgaXMgbm90IGFuIGFycmF5VmFsdWUuCi0gICAgICBVSW50IGluZGV4
KCkgY29uc3Q7CisgIGRpZmZlcmVuY2VfdHlwZSBvcGVyYXRvci0oY29uc3QgU2VsZlR5cGUmIG90
aGVyKSBjb25zdCB7CisgICAgcmV0dXJuIG90aGVyLmNvbXB1dGVEaXN0YW5jZSgqdGhpcyk7Cisg
IH0KIAotICAgICAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQg
VmFsdWUuICIiIGlmIGl0IGlzIG5vdCBhbiBvYmplY3RWYWx1ZS4KLSAgICAgIGNvbnN0IGNoYXIg
Km1lbWJlck5hbWUoKSBjb25zdDsKKyAgLy8vIFJldHVybiBlaXRoZXIgdGhlIGluZGV4IG9yIHRo
ZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCB2YWx1ZSBhcyBhCisgIC8vLyBWYWx1ZS4K
KyAgVmFsdWUga2V5KCkgY29uc3Q7CiAKLSAgIHByb3RlY3RlZDoKLSAgICAgIFZhbHVlICZkZXJl
ZigpIGNvbnN0OworICAvLy8gUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1
ZSwgb3IgLTEgaWYgaXQgaXMgbm90IGFuCisgIC8vLyBhcnJheVZhbHVlLgorICBVSW50IGluZGV4
KCkgY29uc3Q7CiAKLSAgICAgIHZvaWQgaW5jcmVtZW50KCk7CisgIC8vLyBSZXR1cm4gdGhlIG1l
bWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLCBvciAiIiBpZiBpdCBpcyBub3QgYW4K
KyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXG5vdGUgQXZvaWQgYGNfc3RyKClgIG9uIHJlc3Vs
dCwgYXMgZW1iZWRkZWQgemVyb2VzIGFyZSBwb3NzaWJsZS4KKyAgU3RyaW5nIG5hbWUoKSBjb25z
dDsKIAotICAgICAgdm9pZCBkZWNyZW1lbnQoKTsKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5h
bWUgb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUuICIiIGlmIGl0IGlzIG5vdCBhbgorICAvLy8gb2Jq
ZWN0VmFsdWUuCisgIC8vLyBcZGVwcmVjYXRlZCBUaGlzIGNhbm5vdCBiZSB1c2VkIGZvciBVVEYt
OCBzdHJpbmdzLCBzaW5jZSB0aGVyZSBjYW4gYmUKKyAgLy8vIGVtYmVkZGVkIG51bGxzLgorICBK
U09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBga2V5ID0gbmFtZSgpO2AgaW5zdGVhZC4iKQorICBjaGFy
IGNvbnN0KiBtZW1iZXJOYW1lKCkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1l
IG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLCBvciBOVUxMIGlmIGl0IGlzIG5vdCBhbgorICAvLy8g
b2JqZWN0VmFsdWUuCisgIC8vLyBcbm90ZSBCZXR0ZXIgdmVyc2lvbiB0aGFuIG1lbWJlck5hbWUo
KS4gQWxsb3dzIGVtYmVkZGVkIG51bGxzLgorICBjaGFyIGNvbnN0KiBtZW1iZXJOYW1lKGNoYXIg
Y29uc3QqKiBlbmQpIGNvbnN0OwogCi0gICAgICBkaWZmZXJlbmNlX3R5cGUgY29tcHV0ZURpc3Rh
bmNlKCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25zdDsKK3Byb3RlY3RlZDoKKyAgVmFsdWUm
IGRlcmVmKCkgY29uc3Q7CiAKLSAgICAgIGJvb2wgaXNFcXVhbCggY29uc3QgU2VsZlR5cGUgJm90
aGVyICkgY29uc3Q7CisgIHZvaWQgaW5jcmVtZW50KCk7CiAKLSAgICAgIHZvaWQgY29weSggY29u
c3QgU2VsZlR5cGUgJm90aGVyICk7CisgIHZvaWQgZGVjcmVtZW50KCk7CiAKLSAgIHByaXZhdGU6
Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgVmFsdWU6Ok9iamVj
dFZhbHVlczo6aXRlcmF0b3IgY3VycmVudF87Ci0gICAgICAvLyBJbmRpY2F0ZXMgdGhhdCBpdGVy
YXRvciBpcyBmb3IgYSBudWxsIHZhbHVlLgotICAgICAgYm9vbCBpc051bGxfOwotI2Vsc2UKLSAg
ICAgIHVuaW9uCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9y
U3RhdGUgYXJyYXlfOwotICAgICAgICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSBt
YXBfOwotICAgICAgfSBpdGVyYXRvcl87Ci0gICAgICBib29sIGlzQXJyYXlfOwotI2VuZGlmCi0g
ICB9OwotCi0gICAvKiogXGJyaWVmIGNvbnN0IGl0ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5
IHZhbHVlLgotICAgICoKLSAgICAqLwotICAgY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9yIDogcHVi
bGljIFZhbHVlSXRlcmF0b3JCYXNlCi0gICB7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWU7Ci0g
ICBwdWJsaWM6Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7Ci0gICAgICB0eXBl
ZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7Ci0gICAgICB0eXBlZGVmIGNvbnN0IFZhbHVlICZyZWZl
cmVuY2U7Ci0gICAgICB0eXBlZGVmIGNvbnN0IFZhbHVlICpwb2ludGVyOwotICAgICAgdHlwZWRl
ZiBWYWx1ZUNvbnN0SXRlcmF0b3IgU2VsZlR5cGU7Ci0KLSAgICAgIFZhbHVlQ29uc3RJdGVyYXRv
cigpOwotICAgcHJpdmF0ZToKLSAgICAgIC8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNy
ZWF0ZSBhbiBpdGVyYXRvci4KLSAgICAgICAqLwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgICAgIGV4cGxpY2l0IFZhbHVlQ29uc3RJdGVyYXRvciggY29uc3QgVmFsdWU6
Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgJmN1cnJlbnQgKTsKLSNlbHNlCi0gICAgICBWYWx1ZUNv
bnN0SXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSAmc3Rh
dGUgKTsKLSAgICAgIFZhbHVlQ29uc3RJdGVyYXRvciggY29uc3QgVmFsdWVJbnRlcm5hbE1hcDo6
SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKTsKLSNlbmRpZgotICAgcHVibGljOgotICAgICAgU2VsZlR5
cGUgJm9wZXJhdG9yID0oIGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlICZvdGhlciApOwotCi0gICAg
ICBTZWxmVHlwZSBvcGVyYXRvcisrKCBpbnQgKQotICAgICAgewotICAgICAgICAgU2VsZlR5cGUg
dGVtcCggKnRoaXMgKTsKLSAgICAgICAgICsrKnRoaXM7Ci0gICAgICAgICByZXR1cm4gdGVtcDsK
LSAgICAgIH0KLQotICAgICAgU2VsZlR5cGUgb3BlcmF0b3ItLSggaW50ICkKLSAgICAgIHsKLSAg
ICAgICAgIFNlbGZUeXBlIHRlbXAoICp0aGlzICk7Ci0gICAgICAgICAtLSp0aGlzOwotICAgICAg
ICAgcmV0dXJuIHRlbXA7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlICZvcGVyYXRvci0tKCkK
LSAgICAgIHsKLSAgICAgICAgIGRlY3JlbWVudCgpOwotICAgICAgICAgcmV0dXJuICp0aGlzOwot
ICAgICAgfQotCi0gICAgICBTZWxmVHlwZSAmb3BlcmF0b3IrKygpCi0gICAgICB7Ci0gICAgICAg
ICBpbmNyZW1lbnQoKTsKLSAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgIH0KLQotICAgICAg
cmVmZXJlbmNlIG9wZXJhdG9yICooKSBjb25zdAotICAgICAgewotICAgICAgICAgcmV0dXJuIGRl
cmVmKCk7Ci0gICAgICB9Ci0gICB9OwotCi0KLSAgIC8qKiBcYnJpZWYgSXRlcmF0b3IgZm9yIG9i
amVjdCBhbmQgYXJyYXkgdmFsdWUuCi0gICAgKi8KLSAgIGNsYXNzIFZhbHVlSXRlcmF0b3IgOiBw
dWJsaWMgVmFsdWVJdGVyYXRvckJhc2UKLSAgIHsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsK
LSAgIHB1YmxpYzoKLSAgICAgIHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKLSAgICAgIHR5
cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKLSAgICAgIHR5cGVkZWYgVmFsdWUgJnJlZmVyZW5j
ZTsKLSAgICAgIHR5cGVkZWYgVmFsdWUgKnBvaW50ZXI7Ci0gICAgICB0eXBlZGVmIFZhbHVlSXRl
cmF0b3IgU2VsZlR5cGU7Ci0KLSAgICAgIFZhbHVlSXRlcmF0b3IoKTsKLSAgICAgIFZhbHVlSXRl
cmF0b3IoIGNvbnN0IFZhbHVlQ29uc3RJdGVyYXRvciAmb3RoZXIgKTsKLSAgICAgIFZhbHVlSXRl
cmF0b3IoIGNvbnN0IFZhbHVlSXRlcmF0b3IgJm90aGVyICk7Ci0gICBwcml2YXRlOgotICAgICAg
LyohIFxpbnRlcm5hbCBVc2UgYnkgVmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgotICAgICAg
ICovCi0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgZXhwbGljaXQg
VmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgJmN1cnJl
bnQgKTsKLSNlbHNlCi0gICAgICBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZUludGVybmFsQXJy
YXk6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0gICAgICBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBW
YWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlICZzdGF0ZSApOwotI2VuZGlmCi0gICBwdWJs
aWM6Ci0KLSAgICAgIFNlbGZUeXBlICZvcGVyYXRvciA9KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIg
KTsKLQotICAgICAgU2VsZlR5cGUgb3BlcmF0b3IrKyggaW50ICkKLSAgICAgIHsKLSAgICAgICAg
IFNlbGZUeXBlIHRlbXAoICp0aGlzICk7Ci0gICAgICAgICArKyp0aGlzOwotICAgICAgICAgcmV0
dXJuIHRlbXA7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9yLS0oIGludCApCi0g
ICAgICB7Ci0gICAgICAgICBTZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAgICAgICAgLS0qdGhp
czsKLSAgICAgICAgIHJldHVybiB0ZW1wOwotICAgICAgfQotCi0gICAgICBTZWxmVHlwZSAmb3Bl
cmF0b3ItLSgpCi0gICAgICB7Ci0gICAgICAgICBkZWNyZW1lbnQoKTsKLSAgICAgICAgIHJldHVy
biAqdGhpczsKLSAgICAgIH0KLQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9yKysoKQotICAgICAg
ewotICAgICAgICAgaW5jcmVtZW50KCk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICB9
Ci0KLSAgICAgIHJlZmVyZW5jZSBvcGVyYXRvciAqKCkgY29uc3QKLSAgICAgIHsKLSAgICAgICAg
IHJldHVybiBkZXJlZigpOwotICAgICAgfQotICAgfTsKKyAgZGlmZmVyZW5jZV90eXBlIGNvbXB1
dGVEaXN0YW5jZShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0OwogCisgIGJvb2wgaXNFcXVh
bChjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0OworCisgIHZvaWQgY29weShjb25zdCBTZWxm
VHlwZSYgb3RoZXIpOworCitwcml2YXRlOgorICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRv
ciBjdXJyZW50XzsKKyAgLy8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2
YWx1ZS4KKyAgYm9vbCBpc051bGxfe3RydWV9OworCitwdWJsaWM6CisgIC8vIEZvciBzb21lIHJl
YXNvbiwgQk9STEFORCBuZWVkcyB0aGVzZSBhdCB0aGUgZW5kLCByYXRoZXIKKyAgLy8gdGhhbiBl
YXJsaWVyLiBObyBpZGVhIHdoeS4KKyAgVmFsdWVJdGVyYXRvckJhc2UoKTsKKyAgZXhwbGljaXQg
VmFsdWVJdGVyYXRvckJhc2UoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1
cnJlbnQpOworfTsKKworLyoqIFxicmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBh
cnJheSB2YWx1ZS4KKyAqCisgKi8KK2NsYXNzIEpTT05fQVBJIFZhbHVlQ29uc3RJdGVyYXRvciA6
IHB1YmxpYyBWYWx1ZUl0ZXJhdG9yQmFzZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKKworcHVi
bGljOgorICB0eXBlZGVmIGNvbnN0IFZhbHVlIHZhbHVlX3R5cGU7CisgIC8vIHR5cGVkZWYgdW5z
aWduZWQgaW50IHNpemVfdDsKKyAgLy8gdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0
eXBlZGVmIGNvbnN0IFZhbHVlJiByZWZlcmVuY2U7CisgIHR5cGVkZWYgY29uc3QgVmFsdWUqIHBv
aW50ZXI7CisgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9yIFNlbGZUeXBlOworCisgIFZhbHVl
Q29uc3RJdGVyYXRvcigpOworICBWYWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRvciBjb25z
dCYgb3RoZXIpOworCitwcml2YXRlOgorICAvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBj
cmVhdGUgYW4gaXRlcmF0b3IuCisgICAqLworICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3Io
Y29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOworCitwdWJsaWM6
CisgIFNlbGZUeXBlJiBvcGVyYXRvcj0oY29uc3QgVmFsdWVJdGVyYXRvckJhc2UmIG90aGVyKTsK
KworICBTZWxmVHlwZSBvcGVyYXRvcisrKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMp
OworICAgICsrKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSBvcGVy
YXRvci0tKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMpOworICAgIC0tKnRoaXM7Cisg
ICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0b3ItLSgpIHsKKyAgICBk
ZWNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0
b3IrKygpIHsKKyAgICBpbmNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBy
ZWZlcmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gZGVyZWYoKTsgfQorCisgIHBvaW50
ZXIgb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuICZkZXJlZigpOyB9Cit9OworCisvKiogXGJy
aWVmIEl0ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5IHZhbHVlLgorICovCitjbGFzcyBKU09O
X0FQSSBWYWx1ZUl0ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlIHsKKyAgZnJpZW5k
IGNsYXNzIFZhbHVlOworCitwdWJsaWM6CisgIHR5cGVkZWYgVmFsdWUgdmFsdWVfdHlwZTsKKyAg
dHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OworICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5
cGU7CisgIHR5cGVkZWYgVmFsdWUmIHJlZmVyZW5jZTsKKyAgdHlwZWRlZiBWYWx1ZSogcG9pbnRl
cjsKKyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIFNlbGZUeXBlOworCisgIFZhbHVlSXRlcmF0b3Io
KTsKKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3ImIG90
aGVyKTsKKyAgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUl0ZXJhdG9yJiBvdGhlcik7CisKK3By
aXZhdGU6CisgIC8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRv
ci4KKyAgICovCisgIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOworCitwdWJsaWM6CisgIFNlbGZUeXBlJiBvcGVyYXRv
cj0oY29uc3QgU2VsZlR5cGUmIG90aGVyKTsKKworICBTZWxmVHlwZSBvcGVyYXRvcisrKGludCkg
eworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMpOworICAgICsrKnRoaXM7CisgICAgcmV0dXJuIHRl
bXA7CisgIH0KKworICBTZWxmVHlwZSBvcGVyYXRvci0tKGludCkgeworICAgIFNlbGZUeXBlIHRl
bXAoKnRoaXMpOworICAgIC0tKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxm
VHlwZSYgb3BlcmF0b3ItLSgpIHsKKyAgICBkZWNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7
CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0b3IrKygpIHsKKyAgICBpbmNyZW1lbnQoKTsKKyAg
ICByZXR1cm4gKnRoaXM7CisgIH0KKworICByZWZlcmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QgeyBy
ZXR1cm4gZGVyZWYoKTsgfQorCisgIHBvaW50ZXIgb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJu
ICZkZXJlZigpOyB9Cit9OworCitpbmxpbmUgdm9pZCBzd2FwKFZhbHVlJiBhLCBWYWx1ZSYgYikg
eyBhLnN3YXAoYik7IH0KIAogfSAvLyBuYW1lc3BhY2UgSnNvbgogCisjcHJhZ21hIHBhY2socG9w
KQorCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQor
I3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJM
RV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCiAKICNlbmRpZiAvLyBDUFBUTF9KU09OX0hfSU5DTFVE
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3dyaXRlci5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRl
L2pzb24vd3JpdGVyLmgKaW5kZXggMzhkNDFlMWVlZGUyNTRiZTI1MmFmYzlkOTkyNzI2N2FjMzMz
MWNlYi4uMTJmZDM2YTdhODQ1Y2U4MTEyMTBjMGNiNDUyMDk5MGRjNjFkYzZhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9pbmNsdWRlL2pzb24vd3JpdGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vd3Jp
dGVyLmgKQEAgLTEsMTg0ICsxLDM2OCBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0
ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFu
ZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1
cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0
dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKICNpZm5kZWYgSlNPTl9XUklU
RVJfSF9JTkNMVURFRAotIyBkZWZpbmUgSlNPTl9XUklURVJfSF9JTkNMVURFRAorI2RlZmluZSBK
U09OX1dSSVRFUl9IX0lOQ0xVREVECiAKICNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElP
TikKLSMgaW5jbHVkZSAidmFsdWUuaCIKKyNpbmNsdWRlICJ2YWx1ZS5oIgogI2VuZGlmIC8vIGlm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDx2ZWN0b3I+Ci0jIGlu
Y2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxvc3RyZWFtPgorI2luY2x1ZGUgPHN0cmluZz4KKyNp
bmNsdWRlIDx2ZWN0b3I+CisKKy8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVtYmVy
PjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bworLy8gYmUgdXNlZCBieS4u
LgorI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykgJiYg
ZGVmaW5lZChfTVNDX1ZFUikKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5n
KGRpc2FibGUgOiA0MjUxKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RM
TF9JTlRFUkZBQ0VfV0FSTklORykKKworI3ByYWdtYSBwYWNrKHB1c2gsIDgpCiAKIG5hbWVzcGFj
ZSBKc29uIHsKIAotICAgY2xhc3MgVmFsdWU7CitjbGFzcyBWYWx1ZTsKIAotICAgLyoqIFxicmll
ZiBBYnN0cmFjdCBjbGFzcyBmb3Igd3JpdGVycy4KLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkg
V3JpdGVyCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICB2aXJ0dWFsIH5Xcml0ZXIoKTsKLQotICAg
ICAgdmlydHVhbCBzdGQ6OnN0cmluZyB3cml0ZSggY29uc3QgVmFsdWUgJnJvb3QgKSA9IDA7Ci0g
ICB9OwotCi0gICAvKiogXGJyaWVmIE91dHB1dHMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8v
d3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQgd2l0aG91dCBmb3JtYXR0aW5nIChub3QgaHVt
YW4gZnJpZW5kbHkpLgotICAgICoKLSAgICAqIFRoZSBKU09OIGRvY3VtZW50IGlzIHdyaXR0ZW4g
aW4gYSBzaW5nbGUgbGluZS4gSXQgaXMgbm90IGludGVuZGVkIGZvciAnaHVtYW4nIGNvbnN1bXB0
aW9uLAotICAgICogYnV0IG1heSBiZSB1c2VmdWxsIHRvIHN1cHBvcnQgZmVhdHVyZSBzdWNoIGFz
IFJQQyB3aGVyZSBiYW5kd2l0aCBpcyBsaW1pdGVkLgotICAgICogXHNhIFJlYWRlciwgVmFsdWUK
LSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgRmFzdFdyaXRlciA6IHB1YmxpYyBXcml0ZXIKLSAg
IHsKLSAgIHB1YmxpYzoKLSAgICAgIEZhc3RXcml0ZXIoKTsKLSAgICAgIHZpcnR1YWwgfkZhc3RX
cml0ZXIoKXt9Ci0KLSAgICAgIHZvaWQgZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKTsKLQotICAg
cHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVyCi0gICAgICB2aXJ0dWFsIHN0ZDo6c3Ry
aW5nIHdyaXRlKCBjb25zdCBWYWx1ZSAmcm9vdCApOwotCi0gICBwcml2YXRlOgotICAgICAgdm9p
ZCB3cml0ZVZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsdWUgKTsKLQotICAgICAgc3RkOjpzdHJpbmcg
ZG9jdW1lbnRfOwotICAgICAgYm9vbCB5YW1sQ29tcGF0aWJsaXR5RW5hYmxlZF87Ci0gICB9Owot
Ci0gICAvKiogXGJyaWVmIFdyaXRlcyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNv
bi5vcmciPkpTT048L2E+IGZvcm1hdCBpbiBhIGh1bWFuIGZyaWVuZGx5IHdheS4KLSAgICAqCi0g
ICAgKiBUaGUgcnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5kIGluZGVudCBhcmUgYXMgZm9sbG93Ogot
ICAgICogLSBPYmplY3QgdmFsdWU6Ci0gICAgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IHt9
IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCi0gICAgKiAgICAgLSBpZiBub3QgZW1wdHkg
dGhlIHByaW50ICd7JywgbGluZSBicmVhayAmIGluZGVudCwgcHJpbnQgb25lIHZhbHVlIHBlciBs
aW5lCi0gICAgKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBicmVhayBhbmQgcHJp
bnQgJ30nLgotICAgICogLSBBcnJheSB2YWx1ZToKLSAgICAqICAgICAtIGlmIGVtcHR5IHRoZW4g
cHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKLSAgICAqICAgICAtIGlmIHRo
ZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUgb3Ro
ZXIgdmFsdWUgdHlwZXMsCi0gICAgKiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0IG9uIG9u
ZSBsaW5lcywgdGhlbiBwcmludCB0aGUgYXJyYXkgb24gYSBzaW5nbGUgbGluZS4KLSAgICAqICAg
ICAtIG90aGVyd2lzZSwgaXQgdGhlIHZhbHVlcyBkbyBub3QgZml0IG9uIG9uZSBsaW5lLCBvciB0
aGUgYXJyYXkgY29udGFpbnMKLSAgICAqICAgICAgIG9iamVjdCBvciBub24gZW1wdHkgYXJyYXks
IHRoZW4gcHJpbnQgb25lIHZhbHVlIHBlciBsaW5lLgotICAgICoKLSAgICAqIElmIHRoZSBWYWx1
ZSBoYXZlIGNvbW1lbnRzIHRoZW4gdGhleSBhcmUgb3V0cHV0ZWQgYWNjb3JkaW5nIHRvIHRoZWly
ICNDb21tZW50UGxhY2VtZW50LgotICAgICoKLSAgICAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1
ZTo6c2V0Q29tbWVudCgpCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFN0eWxlZFdyaXRlcjog
cHVibGljIFdyaXRlcgotICAgewotICAgcHVibGljOgotICAgICAgU3R5bGVkV3JpdGVyKCk7Ci0g
ICAgICB2aXJ0dWFsIH5TdHlsZWRXcml0ZXIoKXt9Ci0KLSAgIHB1YmxpYzogLy8gb3ZlcnJpZGRl
biBmcm9tIFdyaXRlcgotICAgICAgLyoqIFxicmllZiBTZXJpYWxpemUgYSBWYWx1ZSBpbiA8YSBI
UkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQuCi0gICAgICAgKiBccGFy
YW0gcm9vdCBWYWx1ZSB0byBzZXJpYWxpemUuCi0gICAgICAgKiBccmV0dXJuIFN0cmluZyBjb250
YWluaW5nIHRoZSBKU09OIGRvY3VtZW50IHRoYXQgcmVwcmVzZW50cyB0aGUgcm9vdCB2YWx1ZS4K
LSAgICAgICAqLwotICAgICAgdmlydHVhbCBzdGQ6OnN0cmluZyB3cml0ZSggY29uc3QgVmFsdWUg
JnJvb3QgKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIHZvaWQgd3JpdGVWYWx1ZSggY29uc3QgVmFs
dWUgJnZhbHVlICk7Ci0gICAgICB2b2lkIHdyaXRlQXJyYXlWYWx1ZSggY29uc3QgVmFsdWUgJnZh
bHVlICk7Ci0gICAgICBib29sIGlzTXVsdGluZUFycmF5KCBjb25zdCBWYWx1ZSAmdmFsdWUgKTsK
LSAgICAgIHZvaWQgcHVzaFZhbHVlKCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKTsKLSAgICAg
IHZvaWQgd3JpdGVJbmRlbnQoKTsKLSAgICAgIHZvaWQgd3JpdGVXaXRoSW5kZW50KCBjb25zdCBz
dGQ6OnN0cmluZyAmdmFsdWUgKTsKLSAgICAgIHZvaWQgaW5kZW50KCk7Ci0gICAgICB2b2lkIHVu
aW5kZW50KCk7Ci0gICAgICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKCBjb25zdCBWYWx1
ZSAmcm9vdCApOwotICAgICAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSgg
Y29uc3QgVmFsdWUgJnJvb3QgKTsKLSAgICAgIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKCBjb25z
dCBWYWx1ZSAmdmFsdWUgKTsKLSAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0wo
IGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0ICk7Ci0KLSAgICAgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOwotCi0gICAgICBDaGlsZFZhbHVlcyBjaGlsZFZhbHVl
c187Ci0gICAgICBzdGQ6OnN0cmluZyBkb2N1bWVudF87Ci0gICAgICBzdGQ6OnN0cmluZyBpbmRl
bnRTdHJpbmdfOwotICAgICAgaW50IHJpZ2h0TWFyZ2luXzsKLSAgICAgIGludCBpbmRlbnRTaXpl
XzsKLSAgICAgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBX
cml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBm
b3JtYXQgaW4gYSBodW1hbiBmcmllbmRseSB3YXksCi0gICAgICAgIHRvIGEgc3RyZWFtIHJhdGhl
ciB0aGFuIHRvIGEgc3RyaW5nLgotICAgICoKLSAgICAqIFRoZSBydWxlcyBmb3IgbGluZSBicmVh
ayBhbmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6Ci0gICAgKiAtIE9iamVjdCB2YWx1ZToKLSAgICAq
ICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJl
YWsKLSAgICAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBsaW5lIGJyZWFrICYg
aW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUKLSAgICAqICAgICAgIGFuZCB0aGVuIHVu
aW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCi0gICAgKiAtIEFycmF5IHZhbHVl
OgotICAgICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVudCBhbmQg
bGluZSBicmVhawotICAgICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVjdCB2
YWx1ZSwgZW1wdHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZSB0eXBlcywKLSAgICAqICAgICAg
IGFuZCBhbGwgdGhlIHZhbHVlcyBmaXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJh
eSBvbiBhIHNpbmdsZSBsaW5lLgotICAgICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVz
IGRvIG5vdCBmaXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlucwotICAgICogICAg
ICAgb2JqZWN0IG9yIG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxp
bmUuCi0gICAgKgotICAgICogSWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5IGFy
ZSBvdXRwdXRlZCBhY2NvcmRpbmcgdG8gdGhlaXIgI0NvbW1lbnRQbGFjZW1lbnQuCi0gICAgKgot
ICAgICogXHBhcmFtIGluZGVudGF0aW9uIEVhY2ggbGV2ZWwgd2lsbCBiZSBpbmRlbnRlZCBieSB0
aGlzIGFtb3VudCBleHRyYS4KLSAgICAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0Q29t
bWVudCgpCisvKioKKworVXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAg
dm9pZCB3cml0ZVRvU3Rkb3V0KFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdG9yeSwg
VmFsdWUgY29uc3QmIHZhbHVlKSB7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4g
Y29uc3Qgd3JpdGVyKAorICAgICAgZmFjdG9yeS5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgICAgd3Jp
dGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6Y291dCk7CisgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5k
bDsgIC8vIGFkZCBsZiBhbmQgZmx1c2gKKyAgfQorXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQ
SSBTdHJlYW1Xcml0ZXIgeworcHJvdGVjdGVkOgorICBPU3RyZWFtKiBzb3V0XzsgLy8gbm90IG93
bmVkOyB3aWxsIG5vdCBkZWxldGUKK3B1YmxpYzoKKyAgU3RyZWFtV3JpdGVyKCk7CisgIHZpcnR1
YWwgflN0cmVhbVdyaXRlcigpOworICAvKiogV3JpdGUgVmFsdWUgaW50byBkb2N1bWVudCBhcyBj
b25maWd1cmVkIGluIHN1Yi1jbGFzcy4KKyAgICAgIERvIG5vdCB0YWtlIG93bmVyc2hpcCBvZiBz
b3V0LCBidXQgbWFpbnRhaW4gYSByZWZlcmVuY2UgZHVyaW5nIGZ1bmN0aW9uLgorICAgICAgXHBy
ZSBzb3V0ICE9IE5VTEwKKyAgICAgIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIChGb3Igbm93LCB3
ZSBhbHdheXMgcmV0dXJuIHplcm8sIHNvIGNoZWNrIHRoZQorICAgICBzdHJlYW0gaW5zdGVhZC4p
IFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBwb3NzaWJseSwgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRp
b24KKyAgICovCisgIHZpcnR1YWwgaW50IHdyaXRlKFZhbHVlIGNvbnN0JiByb290LCBPU3RyZWFt
KiBzb3V0KSA9IDA7CisKKyAgLyoqIFxicmllZiBBIHNpbXBsZSBhYnN0cmFjdCBmYWN0b3J5Lgor
ICAgKi8KKyAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7CisgIHB1YmxpYzoKKyAgICB2aXJ0dWFs
IH5GYWN0b3J5KCk7CisgICAgLyoqIFxicmllZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9w
ZXJhdG9yIG5ldygpLgorICAgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcg
Z29lcyB3cm9uZyAoZS5nLiBpbnZhbGlkIHNldHRpbmdzKQorICAgICAqLworICAgIHZpcnR1YWwg
U3RyZWFtV3JpdGVyKiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdCA9IDA7CisgIH07IC8vIEZhY3Rv
cnkKK307ICAgLy8gU3RyZWFtV3JpdGVyCisKKy8qKiBcYnJpZWYgV3JpdGUgaW50byBzdHJpbmdz
dHJlYW0sIHRoZW4gcmV0dXJuIHN0cmluZywgZm9yIGNvbnZlbmllbmNlLgorICogQSBTdHJlYW1X
cml0ZXIgd2lsbCBiZSBjcmVhdGVkIGZyb20gdGhlIGZhY3RvcnksIHVzZWQsIGFuZCB0aGVuIGRl
bGV0ZWQuCisgKi8KK1N0cmluZyBKU09OX0FQSSB3cml0ZVN0cmluZyhTdHJlYW1Xcml0ZXI6OkZh
Y3RvcnkgY29uc3QmIGZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUg
Y29uc3QmIHJvb3QpOworCisvKiogXGJyaWVmIEJ1aWxkIGEgU3RyZWFtV3JpdGVyIGltcGxlbWVu
dGF0aW9uLgorCitVc2FnZToKK1xjb2RlCisgIHVzaW5nIG5hbWVzcGFjZSBKc29uOworICBWYWx1
ZSB2YWx1ZSA9IC4uLjsKKyAgU3RyZWFtV3JpdGVyQnVpbGRlciBidWlsZGVyOworICBidWlsZGVy
WyJjb21tZW50U3R5bGUiXSA9ICJOb25lIjsKKyAgYnVpbGRlclsiaW5kZW50YXRpb24iXSA9ICIg
ICAiOyAgLy8gb3Igd2hhdGV2ZXIgeW91IGxpa2UKKyAgc3RkOjp1bmlxdWVfcHRyPEpzb246OlN0
cmVhbVdyaXRlcj4gd3JpdGVyKAorICAgICAgYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7Cisg
IHdyaXRlci0+d3JpdGUodmFsdWUsICZzdGQ6OmNvdXQpOworICBzdGQ6OmNvdXQgPDwgc3RkOjpl
bmRsOyAgLy8gYWRkIGxmIGFuZCBmbHVzaAorXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQSSBT
dHJlYW1Xcml0ZXJCdWlsZGVyIDogcHVibGljIFN0cmVhbVdyaXRlcjo6RmFjdG9yeSB7CitwdWJs
aWM6CisgIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246OlZhbHVlIHNvIHRoYXQgd2UgY2FuIGFkZCBk
YXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcworICAvLyB3aXRob3V0IGEgbWFqb3IgdmVyc2lvbiBi
dW1wLgorICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGlzIGJ1aWxkZXIuCisgICAgQXZhaWxhYmxl
IHNldHRpbmdzIChjYXNlLXNlbnNpdGl2ZSk6CisgICAgLSAiY29tbWVudFN0eWxlIjogIk5vbmUi
IG9yICJBbGwiCisgICAgLSAiaW5kZW50YXRpb24iOiAgIjxhbnl0aGluZz4iLgorICAgICAgLSBT
ZXR0aW5nIHRoaXMgdG8gYW4gZW1wdHkgc3RyaW5nIGFsc28gb21pdHMgbmV3bGluZSBjaGFyYWN0
ZXJzLgorICAgIC0gImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5IjogZmFsc2Ugb3IgdHJ1ZQorICAg
ICAgLSBzbGlnaHRseSBjaGFuZ2UgdGhlIHdoaXRlc3BhY2UgYXJvdW5kIGNvbG9ucworICAgIC0g
ImRyb3BOdWxsUGxhY2Vob2xkZXJzIjogZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBEcm9wIHRoZSAi
bnVsbCIgc3RyaW5nIGZyb20gdGhlIHdyaXRlcidzIG91dHB1dCBmb3IgbnVsbFZhbHVlcy4KKyAg
ICAgICAgU3RyaWN0bHkgc3BlYWtpbmcsIHRoaXMgaXMgbm90IHZhbGlkIEpTT04uIEJ1dCB3aGVu
IHRoZSBvdXRwdXQgaXMgYmVpbmcKKyAgICAgICAgZmVkIHRvIGEgYnJvd3NlcidzIEphdmFTY3Jp
cHQsIGl0IG1ha2VzIGZvciBzbWFsbGVyIG91dHB1dCBhbmQgdGhlCisgICAgICAgIGJyb3dzZXIg
Y2FuIGhhbmRsZSB0aGUgb3V0cHV0IGp1c3QgZmluZS4KKyAgICAtICJ1c2VTcGVjaWFsRmxvYXRz
IjogZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBJZiB0cnVlLCBvdXRwdXRzIG5vbi1maW5pdGUgZmxv
YXRpbmcgcG9pbnQgdmFsdWVzIGluIHRoZSBmb2xsb3dpbmcgd2F5OgorICAgICAgICBOYU4gdmFs
dWVzIGFzICJOYU4iLCBwb3NpdGl2ZSBpbmZpbml0eSBhcyAiSW5maW5pdHkiLCBhbmQgbmVnYXRp
dmUKKyAgICBpbmZpbml0eSBhcyAiLUluZmluaXR5Ii4KKyAgICAtICJwcmVjaXNpb24iOiBpbnQK
KyAgICAgIC0gTnVtYmVyIG9mIHByZWNpc2lvbiBkaWdpdHMgZm9yIGZvcm1hdHRpbmcgb2YgcmVh
bCB2YWx1ZXMuCisgICAgLSAicHJlY2lzaW9uVHlwZSI6ICJzaWduaWZpY2FudCIoZGVmYXVsdCkg
b3IgImRlY2ltYWwiCisgICAgICAtIFR5cGUgb2YgcHJlY2lzaW9uIGZvciBmb3JtYXR0aW5nIG9m
IHJlYWwgdmFsdWVzLgorCisgICAgWW91IGNhbiBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxm
CisgICAgdG8gc2VlIHRoZSBkZWZhdWx0cy4gWW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRo
ZW0ganVzdCBsaWtlIGFueQorICAgIEpTT04gVmFsdWUuCisgICAgXHNhIHNldERlZmF1bHRzKCkK
ICAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgU3R5bGVkU3RyZWFtV3JpdGVyCi0gICB7Ci0gICBw
dWJsaWM6Ci0gICAgICBTdHlsZWRTdHJlYW1Xcml0ZXIoIHN0ZDo6c3RyaW5nIGluZGVudGF0aW9u
PSJcdCIgKTsKLSAgICAgIH5TdHlsZWRTdHJlYW1Xcml0ZXIoKXt9Ci0KLSAgIHB1YmxpYzoKLSAg
ICAgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5q
c29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgotICAgICAgICogXHBhcmFtIG91dCBTdHJlYW0gdG8g
d3JpdGUgdG8uIChDYW4gYmUgb3N0cmluZ3N0cmVhbSwgZS5nLikKLSAgICAgICAqIFxwYXJhbSBy
b290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KLSAgICAgICAqIFxub3RlIFRoZXJlIGlzIG5vIHBvaW50
IGluIGRlcml2aW5nIGZyb20gV3JpdGVyLCBzaW5jZSB3cml0ZSgpIHNob3VsZCBub3QgcmV0dXJu
IGEgdmFsdWUuCi0gICAgICAgKi8KLSAgICAgIHZvaWQgd3JpdGUoIHN0ZDo6b3N0cmVhbSAmb3V0
LCBjb25zdCBWYWx1ZSAmcm9vdCApOwotCi0gICBwcml2YXRlOgotICAgICAgdm9pZCB3cml0ZVZh
bHVlKCBjb25zdCBWYWx1ZSAmdmFsdWUgKTsKLSAgICAgIHZvaWQgd3JpdGVBcnJheVZhbHVlKCBj
b25zdCBWYWx1ZSAmdmFsdWUgKTsKLSAgICAgIGJvb2wgaXNNdWx0aW5lQXJyYXkoIGNvbnN0IFZh
bHVlICZ2YWx1ZSApOwotICAgICAgdm9pZCBwdXNoVmFsdWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZ2
YWx1ZSApOwotICAgICAgdm9pZCB3cml0ZUluZGVudCgpOwotICAgICAgdm9pZCB3cml0ZVdpdGhJ
bmRlbnQoIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YWx1ZSApOwotICAgICAgdm9pZCBpbmRlbnQoKTsK
LSAgICAgIHZvaWQgdW5pbmRlbnQoKTsKLSAgICAgIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFs
dWUoIGNvbnN0IFZhbHVlICZyb290ICk7Ci0gICAgICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFs
dWVPblNhbWVMaW5lKCBjb25zdCBWYWx1ZSAmcm9vdCApOwotICAgICAgYm9vbCBoYXNDb21tZW50
Rm9yVmFsdWUoIGNvbnN0IFZhbHVlICZ2YWx1ZSApOwotICAgICAgc3RhdGljIHN0ZDo6c3RyaW5n
IG5vcm1hbGl6ZUVPTCggY29uc3Qgc3RkOjpzdHJpbmcgJnRleHQgKTsKLQotICAgICAgdHlwZWRl
ZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gQ2hpbGRWYWx1ZXM7Ci0KLSAgICAgIENoaWxkVmFs
dWVzIGNoaWxkVmFsdWVzXzsKLSAgICAgIHN0ZDo6b3N0cmVhbSogZG9jdW1lbnRfOwotICAgICAg
c3RkOjpzdHJpbmcgaW5kZW50U3RyaW5nXzsKLSAgICAgIGludCByaWdodE1hcmdpbl87Ci0gICAg
ICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbl87Ci0gICAgICBib29sIGFkZENoaWxkVmFsdWVzXzsK
LSAgIH07Ci0KLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgIHN0ZDo6c3RyaW5nIEpT
T05fQVBJIHZhbHVlVG9TdHJpbmcoIEludCB2YWx1ZSApOwotICAgc3RkOjpzdHJpbmcgSlNPTl9B
UEkgdmFsdWVUb1N0cmluZyggVUludCB2YWx1ZSApOwotIyBlbmRpZiAvLyBpZiBkZWZpbmVkKEpT
T05fSEFTX0lOVDY0KQotICAgc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyggTGFy
Z2VzdEludCB2YWx1ZSApOwotICAgc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZygg
TGFyZ2VzdFVJbnQgdmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJp
bmcoIGRvdWJsZSB2YWx1ZSApOwotICAgc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmlu
ZyggYm9vbCB2YWx1ZSApOwotICAgc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1F1b3RlZFN0
cmluZyggY29uc3QgY2hhciAqdmFsdWUgKTsKLQotICAgLy8vIFxicmllZiBPdXRwdXQgdXNpbmcg
dGhlIFN0eWxlZFN0cmVhbVdyaXRlci4KLSAgIC8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4oKQot
ICAgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KCBzdGQ6Om9zdHJlYW0mLCBjb25zdCBWYWx1ZSAm
cm9vdCApOworICBKc29uOjpWYWx1ZSBzZXR0aW5nc187CisKKyAgU3RyZWFtV3JpdGVyQnVpbGRl
cigpOworICB+U3RyZWFtV3JpdGVyQnVpbGRlcigpIG92ZXJyaWRlOworCisgIC8qKgorICAgKiBc
dGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxp
ZCBzZXR0aW5ncykKKyAgICovCisgIFN0cmVhbVdyaXRlciogbmV3U3RyZWFtV3JpdGVyKCkgY29u
c3Qgb3ZlcnJpZGU7CisKKyAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAnc2V0dGluZ3MnIGFyZSBsZWdh
bCBhbmQgY29uc2lzdGVudDsKKyAgICogICBvdGhlcndpc2UsIGluZGljYXRlIGJhZCBzZXR0aW5n
cyB2aWEgJ2ludmFsaWQnLgorICAgKi8KKyAgYm9vbCB2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52
YWxpZCkgY29uc3Q7CisgIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEgc3BlY2lmaWMgc2V0
dGluZy4KKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IFN0cmluZyYga2V5KTsKKwor
ICAvKiogQ2FsbGVkIGJ5IGN0b3IsIGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0IHNldHRp
bmdzXy4KKyAgICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZp
bmUpCisgICAqIFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9q
c29uX3dyaXRlci5jcHAgU3RyZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRzCisgICAqLworICBzdGF0
aWMgdm9pZCBzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGluZ3MpOworfTsKKworLyoqIFxi
cmllZiBBYnN0cmFjdCBjbGFzcyBmb3Igd3JpdGVycy4KKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJl
YW1Xcml0ZXIuIChBbmQgcmVhbGx5LCB0aGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4p
CisgKi8KK2NsYXNzIEpTT05DUFBfREVQUkVDQVRFRCgiVXNlIFN0cmVhbVdyaXRlciBpbnN0ZWFk
IikgSlNPTl9BUEkgV3JpdGVyIHsKK3B1YmxpYzoKKyAgdmlydHVhbCB+V3JpdGVyKCk7CisKKyAg
dmlydHVhbCBTdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpID0gMDsKK307CisKKy8qKiBc
YnJpZWYgT3V0cHV0cyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpT
T048L2E+IGZvcm1hdAorICp3aXRob3V0IGZvcm1hdHRpbmcgKG5vdCBodW1hbiBmcmllbmRseSku
CisgKgorICogVGhlIEpTT04gZG9jdW1lbnQgaXMgd3JpdHRlbiBpbiBhIHNpbmdsZSBsaW5lLiBJ
dCBpcyBub3QgaW50ZW5kZWQgZm9yICdodW1hbicKKyAqY29uc3VtcHRpb24sCisgKiBidXQgbWF5
IGJlIHVzZWZ1bCB0byBzdXBwb3J0IGZlYXR1cmUgc3VjaCBhcyBSUEMgd2hlcmUgYmFuZHdpZHRo
IGlzIGxpbWl0ZWQuCisgKiBcc2EgUmVhZGVyLCBWYWx1ZQorICogXGRlcHJlY2F0ZWQgVXNlIFN0
cmVhbVdyaXRlckJ1aWxkZXIuCisgKi8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3
YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYpIC8vIERlcml2aW5n
IGZyb20gZGVwcmVjYXRlZCBjbGFzcworI2VuZGlmCitjbGFzcyBKU09OQ1BQX0RFUFJFQ0FURUQo
IlVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyIGluc3RlYWQiKSBKU09OX0FQSSBGYXN0V3JpdGVyCisg
ICAgOiBwdWJsaWMgV3JpdGVyIHsKK3B1YmxpYzoKKyAgRmFzdFdyaXRlcigpOworICB+RmFzdFdy
aXRlcigpIG92ZXJyaWRlID0gZGVmYXVsdDsKKworICB2b2lkIGVuYWJsZVlBTUxDb21wYXRpYmls
aXR5KCk7CisKKyAgLyoqIFxicmllZiBEcm9wIHRoZSAibnVsbCIgc3RyaW5nIGZyb20gdGhlIHdy
aXRlcidzIG91dHB1dCBmb3IgbnVsbFZhbHVlcy4KKyAgICogU3RyaWN0bHkgc3BlYWtpbmcsIHRo
aXMgaXMgbm90IHZhbGlkIEpTT04uIEJ1dCB3aGVuIHRoZSBvdXRwdXQgaXMgYmVpbmcKKyAgICog
ZmVkIHRvIGEgYnJvd3NlcidzIEphdmFTY3JpcHQsIGl0IG1ha2VzIGZvciBzbWFsbGVyIG91dHB1
dCBhbmQgdGhlCisgICAqIGJyb3dzZXIgY2FuIGhhbmRsZSB0aGUgb3V0cHV0IGp1c3QgZmluZS4K
KyAgICovCisgIHZvaWQgZHJvcE51bGxQbGFjZWhvbGRlcnMoKTsKKworICB2b2lkIG9taXRFbmRp
bmdMaW5lRmVlZCgpOworCitwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKKyAgU3Ry
aW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgdm9p
ZCB3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAgU3RyaW5nIGRvY3VtZW50XzsK
KyAgYm9vbCB5YW1sQ29tcGF0aWJpbGl0eUVuYWJsZWRfe2ZhbHNlfTsKKyAgYm9vbCBkcm9wTnVs
bFBsYWNlaG9sZGVyc197ZmFsc2V9OworICBib29sIG9taXRFbmRpbmdMaW5lRmVlZF97ZmFsc2V9
OworfTsKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRp
ZgorCisvKiogXGJyaWVmIFdyaXRlcyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNv
bi5vcmciPkpTT048L2E+IGZvcm1hdCBpbiBhCisgKmh1bWFuIGZyaWVuZGx5IHdheS4KKyAqCisg
KiBUaGUgcnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5kIGluZGVudCBhcmUgYXMgZm9sbG93OgorICog
LSBPYmplY3QgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IHt9IHdpdGhvdXQg
aW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiBub3QgZW1wdHkgdGhlIHByaW50ICd7
JywgbGluZSBicmVhayAmIGluZGVudCwgcHJpbnQgb25lIHZhbHVlIHBlcgorICpsaW5lCisgKiAg
ICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBicmVhayBhbmQgcHJpbnQgJ30nLgorICog
LSBBcnJheSB2YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQgW10gd2l0aG91dCBp
bmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIHRoZSBhcnJheSBjb250YWlucyBubyBv
YmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUgb3RoZXIgdmFsdWUKKyAqdHlwZXMsCisg
KiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0IG9uIG9uZSBsaW5lcywgdGhlbiBwcmludCB0
aGUgYXJyYXkgb24gYSBzaW5nbGUKKyAqbGluZS4KKyAqICAgICAtIG90aGVyd2lzZSwgaXQgdGhl
IHZhbHVlcyBkbyBub3QgZml0IG9uIG9uZSBsaW5lLCBvciB0aGUgYXJyYXkgY29udGFpbnMKKyAq
ICAgICAgIG9iamVjdCBvciBub24gZW1wdHkgYXJyYXksIHRoZW4gcHJpbnQgb25lIHZhbHVlIHBl
ciBsaW5lLgorICoKKyAqIElmIHRoZSBWYWx1ZSBoYXZlIGNvbW1lbnRzIHRoZW4gdGhleSBhcmUg
b3V0cHV0ZWQgYWNjb3JkaW5nIHRvIHRoZWlyCisgKiNDb21tZW50UGxhY2VtZW50LgorICoKKyAq
IFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0Q29tbWVudCgpCisgKiBcZGVwcmVjYXRlZCBV
c2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjcHJh
Z21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikgLy8gRGVy
aXZpbmcgZnJvbSBkZXByZWNhdGVkIGNsYXNzCisjZW5kaWYKK2NsYXNzIEpTT05DUFBfREVQUkVD
QVRFRCgiVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIgaW5zdGVhZCIpIEpTT05fQVBJCisgICAgU3R5
bGVkV3JpdGVyIDogcHVibGljIFdyaXRlciB7CitwdWJsaWM6CisgIFN0eWxlZFdyaXRlcigpOwor
ICB+U3R5bGVkV3JpdGVyKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OworCitwdWJsaWM6IC8vIG92ZXJy
aWRkZW4gZnJvbSBXcml0ZXIKKyAgLyoqIFxicmllZiBTZXJpYWxpemUgYSBWYWx1ZSBpbiA8YSBI
UkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQuCisgICAqIFxwYXJhbSBy
b290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KKyAgICogXHJldHVybiBTdHJpbmcgY29udGFpbmluZyB0
aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhlIHJvb3QgdmFsdWUuCisgICAqLwor
ICBTdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpIG92ZXJyaWRlOworCitwcml2YXRlOgor
ICB2b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUFycmF5
VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgYm9vbCBpc011bHRpbGluZUFycmF5KGNvbnN0
IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpOwor
ICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0IFN0cmlu
ZyYgdmFsdWUpOworICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZvaWQg
d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpOworICB2b2lkIHdyaXRl
Q29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KTsKKyAgc3RhdGlj
IGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHN0YXRpYyBT
dHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgdHlwZWRlZiBzdGQ6
OnZlY3RvcjxTdHJpbmc+IENoaWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVz
XzsKKyAgU3RyaW5nIGRvY3VtZW50XzsKKyAgU3RyaW5nIGluZGVudFN0cmluZ187CisgIHVuc2ln
bmVkIGludCByaWdodE1hcmdpbl97NzR9OworICB1bnNpZ25lZCBpbnQgaW5kZW50U2l6ZV97M307
CisgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfe2ZhbHNlfTsKK307CisjaWYgZGVmaW5lZChfTVNDX1ZF
UikKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworLyoqIFxicmllZiBXcml0ZXMgYSBW
YWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQgaW4g
YQorIGh1bWFuIGZyaWVuZGx5IHdheSwKKyAgICAgdG8gYSBzdHJlYW0gcmF0aGVyIHRoYW4gdG8g
YSBzdHJpbmcuCisgKgorICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBpbmRlbnQgYXJl
IGFzIGZvbGxvdzoKKyAqIC0gT2JqZWN0IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBw
cmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICogICAgIC0gaWYgbm90IGVt
cHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9uZSB2YWx1ZSBw
ZXIKKyBsaW5lCisgKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBicmVhayBhbmQg
cHJpbnQgJ30nLgorICogLSBBcnJheSB2YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJp
bnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIHRoZSBhcnJh
eSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUgb3RoZXIgdmFs
dWUKKyB0eXBlcywKKyAqICAgICAgIGFuZCBhbGwgdGhlIHZhbHVlcyBmaXQgb24gb25lIGxpbmVz
LCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNpbmdsZQorIGxpbmUuCisgKiAgICAgLSBvdGhl
cndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3IgdGhlIGFycmF5
IGNvbnRhaW5zCisgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0aGVuIHByaW50
IG9uZSB2YWx1ZSBwZXIgbGluZS4KKyAqCisgKiBJZiB0aGUgVmFsdWUgaGF2ZSBjb21tZW50cyB0
aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgorICNDb21tZW50UGxhY2Vt
ZW50LgorICoKKyAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0Q29tbWVudCgpCisgKiBc
ZGVwcmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLworI2lmIGRlZmluZWQoX01T
Q19WRVIpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDog
NDk5NikgLy8gRGVyaXZpbmcgZnJvbSBkZXByZWNhdGVkIGNsYXNzCisjZW5kaWYKK2NsYXNzIEpT
T05DUFBfREVQUkVDQVRFRCgiVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIgaW5zdGVhZCIpIEpTT05f
QVBJCisgICAgU3R5bGVkU3RyZWFtV3JpdGVyIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIFxwYXJh
bSBpbmRlbnRhdGlvbiBFYWNoIGxldmVsIHdpbGwgYmUgaW5kZW50ZWQgYnkgdGhpcyBhbW91bnQg
ZXh0cmEuCisgICAqLworICBTdHlsZWRTdHJlYW1Xcml0ZXIoU3RyaW5nIGluZGVudGF0aW9uID0g
Ilx0Iik7CisgIH5TdHlsZWRTdHJlYW1Xcml0ZXIoKSA9IGRlZmF1bHQ7CisKK3B1YmxpYzoKKyAg
LyoqIFxicmllZiBTZXJpYWxpemUgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24u
b3JnIj5KU09OPC9hPiBmb3JtYXQuCisgICAqIFxwYXJhbSBvdXQgU3RyZWFtIHRvIHdyaXRlIHRv
LiAoQ2FuIGJlIG9zdHJpbmdzdHJlYW0sIGUuZy4pCisgICAqIFxwYXJhbSByb290IFZhbHVlIHRv
IHNlcmlhbGl6ZS4KKyAgICogXG5vdGUgVGhlcmUgaXMgbm8gcG9pbnQgaW4gZGVyaXZpbmcgZnJv
bSBXcml0ZXIsIHNpbmNlIHdyaXRlKCkgc2hvdWxkIG5vdAorICAgKiByZXR1cm4gYSB2YWx1ZS4K
KyAgICovCisgIHZvaWQgd3JpdGUoT1N0cmVhbSYgb3V0LCBjb25zdCBWYWx1ZSYgcm9vdCk7CisK
K3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICB2b2lk
IHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBib29sIGlzTXVsdGlsaW5l
QXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCBwdXNoVmFsdWUoY29uc3QgU3RyaW5n
JiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJbmRlbnQoKTsKKyAgdm9pZCB3cml0ZVdpdGhJbmRlbnQo
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgaW5kZW50KCk7CisgIHZvaWQgdW5pbmRlbnQo
KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7Cisg
IHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3Qp
OworICBzdGF0aWMgYm9vbCBoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsK
KyAgc3RhdGljIFN0cmluZyBub3JtYWxpemVFT0woY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICB0
eXBlZGVmIHN0ZDo6dmVjdG9yPFN0cmluZz4gQ2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRWYWx1ZXMg
Y2hpbGRWYWx1ZXNfOworICBPU3RyZWFtKiBkb2N1bWVudF87CisgIFN0cmluZyBpbmRlbnRTdHJp
bmdfOworICB1bnNpZ25lZCBpbnQgcmlnaHRNYXJnaW5fezc0fTsKKyAgU3RyaW5nIGluZGVudGF0
aW9uXzsKKyAgYm9vbCBhZGRDaGlsZFZhbHVlc18gOiAxOworICBib29sIGluZGVudGVkXyA6IDE7
Cit9OworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlm
CisKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorU3RyaW5nIEpTT05fQVBJIHZhbHVlVG9T
dHJpbmcoSW50IHZhbHVlKTsKK1N0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFs
dWUpOworI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCitTdHJpbmcgSlNPTl9B
UEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0SW50IHZhbHVlKTsKK1N0cmluZyBKU09OX0FQSSB2YWx1
ZVRvU3RyaW5nKExhcmdlc3RVSW50IHZhbHVlKTsKK1N0cmluZyBKU09OX0FQSQordmFsdWVUb1N0
cmluZyhkb3VibGUgdmFsdWUsCisgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwcmVjaXNpb24g
PSBWYWx1ZTo6ZGVmYXVsdFJlYWxQcmVjaXNpb24sCisgICAgICAgICAgICAgIFByZWNpc2lvblR5
cGUgcHJlY2lzaW9uVHlwZSA9IFByZWNpc2lvblR5cGU6OnNpZ25pZmljYW50RGlnaXRzKTsKK1N0
cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpOworU3RyaW5nIEpTT05fQVBJ
IHZhbHVlVG9RdW90ZWRTdHJpbmcoY29uc3QgY2hhciogdmFsdWUpOworCisvLy8gXGJyaWVmIE91
dHB1dCB1c2luZyB0aGUgU3R5bGVkU3RyZWFtV3JpdGVyLgorLy8vIFxzZWUgSnNvbjo6b3BlcmF0
b3I+PigpCitKU09OX0FQSSBPU3RyZWFtJiBvcGVyYXRvcjw8KE9TdHJlYW0mLCBjb25zdCBWYWx1
ZSYgcm9vdCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24KIAorI3ByYWdtYSBwYWNrKHBvcCkKIAor
I2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFn
bWEgd2FybmluZyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExM
X0lOVEVSRkFDRV9XQVJOSU5HKQogCiAjZW5kaWYgLy8gSlNPTl9XUklURVJfSF9JTkNMVURFRApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9tYWtlZmlsZXMvdnM3MS9qc29uY3BwLnNsbiBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZp
bGVzL3ZzNzEvanNvbmNwcC5zbG4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkMmY5
MWI0NDIwYjliMjIxMDYwZjk1ZDk0MjIzMmVjMmY0ZDNiZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tYWtlZmlsZXMvdnM3MS9qc29uY3BwLnNs
bgorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLU1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlv
IFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDguMDAKLVByb2plY3QoIns4QkM5Q0VCOC04
QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibGliX2pzb24iLCAibGliX2pzb24udmNw
cm9qIiwgIntCODRGNzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9IgotCVByb2plY3RT
ZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKLQlFbmRQcm9qZWN0U2Vj
dGlvbgotRW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBD
OTFCQzk0Mn0iKSA9ICJqc29udGVzdCIsICJqc29udGVzdC52Y3Byb2oiLCAiezI1QUYyREQyLUQz
OTYtNDY2OC1CMTg4LTQ4OEMzM0I4RTYyMH0iCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVu
ZGVuY2llcykgPSBwb3N0UHJvamVjdAotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNG
RjQyMjVCfSA9IHtCODRGNzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9Ci0JRW5kUHJv
amVjdFNlY3Rpb24KLUVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQx
MS0wMEEwQzkxQkM5NDJ9IikgPSAidGVzdF9saWJfanNvbiIsICJ0ZXN0X2xpYl9qc29uLnZjcHJv
aiIsICJ7QjdBOTZCNzgtMjc4Mi00MEQyLThGMzctQTJERUYyQjlDMjZEfSIKLQlQcm9qZWN0U2Vj
dGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0Ci0JCXtCODRGNzIzMS0xNkNF
LTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9ID0ge0I4NEY3MjMxLTE2Q0UtNDFEOC04QzA4LTdCNTIz
RkY0MjI1Qn0KLQlFbmRQcm9qZWN0U2VjdGlvbgotRW5kUHJvamVjdAotR2xvYmFsCi0JR2xvYmFs
U2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb24pID0gcHJlU29sdXRpb24KLQkJRGVidWcgPSBE
ZWJ1ZwotCQlkdW1teSA9IGR1bW15Ci0JCVJlbGVhc2UgPSBSZWxlYXNlCi0JRW5kR2xvYmFsU2Vj
dGlvbgotCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb24pID0gcG9zdFNvbHV0aW9u
Ci0JCXtCODRGNzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9LkRlYnVnLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyCi0JCXtCODRGNzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9
LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgt
N0I1MjNGRjQyMjVCfS5kdW1teS5BY3RpdmVDZmcgPSBkdW1teXxXaW4zMgotCQl7Qjg0RjcyMzEt
MTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfS5kdW1teS5CdWlsZC4wID0gZHVtbXl8V2luMzIK
LQkJe0I4NEY3MjMxLTE2Q0UtNDFEOC04QzA4LTdCNTIzRkY0MjI1Qn0uUmVsZWFzZS5BY3RpdmVD
ZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXtCODRGNzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIy
NUJ9LlJlbGVhc2UuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezI1QUYyREQyLUQzOTYtNDY2
OC1CMTg4LTQ4OEMzM0I4RTYyMH0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJezI1
QUYyREQyLUQzOTYtNDY2OC1CMTg4LTQ4OEMzM0I4RTYyMH0uRGVidWcuQnVpbGQuMCA9IERlYnVn
fFdpbjMyCi0JCXsyNUFGMkREMi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9LmR1bW15LkFj
dGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXsyNUFGMkREMi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNC
OEU2MjB9LmR1bW15LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7MjVBRjJERDItRDM5Ni00NjY4
LUIxODgtNDg4QzMzQjhFNjIwfS5SZWxlYXNlLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJ
ezI1QUYyREQyLUQzOTYtNDY2OC1CMTg4LTQ4OEMzM0I4RTYyMH0uUmVsZWFzZS5CdWlsZC4wID0g
UmVsZWFzZXxXaW4zMgotCQl7QjdBOTZCNzgtMjc4Mi00MEQyLThGMzctQTJERUYyQjlDMjZEfS5E
ZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7QjdBOTZCNzgtMjc4Mi00MEQyLThGMzct
QTJERUYyQjlDMjZEfS5EZWJ1Zy5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJe0I3QTk2Qjc4LTI3
ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0uZHVtbXkuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIK
LQkJe0I3QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0uZHVtbXkuQnVpbGQuMCA9
IERlYnVnfFdpbjMyCi0JCXtCN0E5NkI3OC0yNzgyLTQwRDItOEYzNy1BMkRFRjJCOUMyNkR9LlJl
bGVhc2UuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7QjdBOTZCNzgtMjc4Mi00MEQyLThG
MzctQTJERUYyQjlDMjZEfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JRW5kR2xv
YmFsU2VjdGlvbgotCUdsb2JhbFNlY3Rpb24oRXh0ZW5zaWJpbGl0eUdsb2JhbHMpID0gcG9zdFNv
bHV0aW9uCi0JRW5kR2xvYmFsU2VjdGlvbgotCUdsb2JhbFNlY3Rpb24oRXh0ZW5zaWJpbGl0eUFk
ZElucykgPSBwb3N0U29sdXRpb24KLQlFbmRHbG9iYWxTZWN0aW9uCi1FbmRHbG9iYWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvanNvbnRlc3QudmNwcm9qIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tYWtlZmls
ZXMvdnM3MS9qc29udGVzdC52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2
MmM3MWY2MWFkNGI4YjQ3ZWIyMGU1NmQwMzhhMDE1ODBjYWVhNjMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tYWtlZmlsZXMvdnM3MS9qc29udGVz
dC52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+Ci08VmlzdWFsU3R1ZGlvUHJvamVjdAotCVBy
b2plY3RUeXBlPSJWaXN1YWwgQysrIgotCVZlcnNpb249IjcuMTAiCi0JTmFtZT0ianNvbnRlc3Qi
Ci0JUHJvamVjdEdVSUQ9InsyNUFGMkREMi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9Igot
CUtleXdvcmQ9IldpbjMyUHJvaiI+Ci0JPFBsYXRmb3Jtcz4KLQkJPFBsYXRmb3JtCi0JCQlOYW1l
PSJXaW4zMiIvPgotCTwvUGxhdGZvcm1zPgotCTxDb25maWd1cmF0aW9ucz4KLQkJPENvbmZpZ3Vy
YXRpb24KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJT3V0cHV0RGlyZWN0b3J5PSIuLi8uLi9i
dWlsZC92czcxL2RlYnVnL2pzb250ZXN0IgotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuLi8u
Li9idWlsZC92czcxL2RlYnVnL2pzb250ZXN0IgotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiCi0J
CQlDaGFyYWN0ZXJTZXQ9IjIiPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCU9wdGltaXphdGlvbj0iMCIKLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
PSIuLi8uLi9pbmNsdWRlIgotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfREVC
VUc7X0NPTlNPTEUiCi0JCQkJTWluaW1hbFJlYnVpbGQ9IlRSVUUiCi0JCQkJQmFzaWNSdW50aW1l
Q2hlY2tzPSIzIgotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIxIgotCQkJCVVzZVByZWNvbXBpbGVkSGVh
ZGVyPSIwIgotCQkJCVdhcm5pbmdMZXZlbD0iMyIKLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5
UHJvYmxlbXM9IlRSVUUiCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iNCIvPgotCQkJPFRv
b2wKLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJW
Q0xpbmtlclRvb2wiCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpL2pzb250ZXN0LmV4ZSIKLQkJ
CQlMaW5rSW5jcmVtZW50YWw9IjIiCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVF
IgotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9IiQoT3V0RGlyKS9qc29udGVzdC5wZGIiCi0JCQkJ
U3ViU3lzdGVtPSIxIgotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4KLQkJCTxUb29sCi0JCQkJTmFt
ZT0iVkNNSURMVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9v
bCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8VG9v
bAotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJW
Q1Jlc291cmNlQ29tcGlsZXJUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDV2ViU2Vydmlj
ZVByb3h5R2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5l
cmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4K
LQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4KLQkJ
CTxUb29sCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wi
Lz4KLQkJPC9Db25maWd1cmF0aW9uPgotCQk8Q29uZmlndXJhdGlvbgotCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKLQkJCU91dHB1dERpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9yZWxlYXNlL2pz
b250ZXN0IgotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuLi8uLi9idWlsZC92czcxL3JlbGVh
c2UvanNvbnRlc3QiCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSIKLQkJCUNoYXJhY3RlclNldD0i
MiI+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz0iLi4vLi4vaW5jbHVkZSIKLQkJCQlQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz0iV0lOMzI7TkRFQlVHO19DT05TT0xFIgotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIgot
CQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgotCQkJCVdhcm5pbmdMZXZlbD0iMyIKLQkJCQlE
ZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiCi0JCQkJRGVidWdJbmZvcm1hdGlv
bkZvcm1hdD0iMyIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPgot
CQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiCi0JCQkJT3V0cHV0RmlsZT0iJChPdXRE
aXIpL2pzb250ZXN0LmV4ZSIKLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiCi0JCQkJR2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIgotCQkJCVN1YlN5c3RlbT0iMSIKLQkJCQlPcHRpbWl6ZVJl
ZmVyZW5jZXM9IjIiCi0JCQkJRW5hYmxlQ09NREFURm9sZGluZz0iMiIKLQkJCQlUYXJnZXRNYWNo
aW5lPSIxIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4KLQkJCTxUb29sCi0J
CQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQ
cmVCdWlsZEV2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRv
b2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJ
PFRvb2wKLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxU
b29sCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlO
YW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTWFuYWdl
ZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5
TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0JCTwvQ29uZmlndXJhdGlvbj4KLQk8L0Nv
bmZpZ3VyYXRpb25zPgotCTxSZWZlcmVuY2VzPgotCTwvUmVmZXJlbmNlcz4KLQk8RmlsZXM+Ci0J
CTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNyY1xqc29udGVzdHJ1bm5lclxtYWluLmNw
cCI+Ci0JCTwvRmlsZT4KLQk8L0ZpbGVzPgotCTxHbG9iYWxzPgotCTwvR2xvYmFscz4KLTwvVmlz
dWFsU3R1ZGlvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvbGliX2pz
b24udmNwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9tYWtlZmlsZXMvdnM3MS9saWJfanNvbi52Y3Byb2oKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhYTU5NzhhMWZlZjM3Nzk1ZWVmZDE4ZGMzYTg4M2M4NmUz
OWQ5ZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9tYWtlZmlsZXMvdnM3MS9saWJfanNvbi52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSwyMTQg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+Ci08
VmlzdWFsU3R1ZGlvUHJvamVjdAotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIgotCVZlcnNpb249
IjcuMTAiCi0JTmFtZT0ibGliX2pzb24iCi0JUHJvamVjdEdVSUQ9IntCODRGNzIzMS0xNkNFLTQx
RDgtOEMwOC03QjUyM0ZGNDIyNUJ9IgotCUtleXdvcmQ9IldpbjMyUHJvaiI+Ci0JPFBsYXRmb3Jt
cz4KLQkJPFBsYXRmb3JtCi0JCQlOYW1lPSJXaW4zMiIvPgotCTwvUGxhdGZvcm1zPgotCTxDb25m
aWd1cmF0aW9ucz4KLQkJPENvbmZpZ3VyYXRpb24KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJ
T3V0cHV0RGlyZWN0b3J5PSIuLi8uLi9idWlsZC92czcxL2RlYnVnL2xpYl9qc29uIgotCQkJSW50
ZXJtZWRpYXRlRGlyZWN0b3J5PSIuLi8uLi9idWlsZC92czcxL2RlYnVnL2xpYl9qc29uIgotCQkJ
Q29uZmlndXJhdGlvblR5cGU9IjQiCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPgotCQkJPFRvb2wKLQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCU9wdGltaXphdGlvbj0iMCIKLQkJCQlBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLi8uLi9pbmNsdWRlIgotCQkJCVByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPSJXSU4zMjtfREVCVUc7X0xJQiIKLQkJCQlTdHJpbmdQb29saW5nPSJUUlVF
IgotCQkJCU1pbmltYWxSZWJ1aWxkPSJUUlVFIgotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyIK
LQkJCQlSdW50aW1lTGlicmFyeT0iMSIKLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0i
VFJVRSIKLQkJCQlEaXNhYmxlTGFuZ3VhZ2VFeHRlbnNpb25zPSJUUlVFIgotCQkJCUZvcmNlQ29u
Zm9ybWFuY2VJbkZvckxvb3BTY29wZT0iRkFMU0UiCi0JCQkJUnVudGltZVR5cGVJbmZvPSJUUlVF
IgotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgotCQkJCVdhcm5pbmdMZXZlbD0iMyIKLQkJ
CQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiCi0JCQkJRGVidWdJbmZvcm1h
dGlvbkZvcm1hdD0iNCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIv
PgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0xpYnJhcmlhblRvb2wiCi0JCQkJT3V0cHV0RmlsZT0i
JChPdXREaXIpL2pzb25fdmM3MV9saWJtdGQubGliIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZD
TUlETFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4K
LQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJ
CQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNSZXNv
dXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94
eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9y
VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9v
bCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJh
dG9yVG9vbCIvPgotCQk8L0NvbmZpZ3VyYXRpb24+Ci0JCTxDb25maWd1cmF0aW9uCi0JCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgotCQkJT3V0cHV0RGlyZWN0b3J5PSIuLi8uLi9idWlsZC92czcxL3Jl
bGVhc2UvbGliX2pzb24iCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii4uLy4uL2J1aWxkL3Zz
NzEvcmVsZWFzZS9saWJfanNvbiIKLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSI0IgotCQkJQ2hhcmFj
dGVyU2V0PSIyIgotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSJUUlVFIj4KLQkJCTxUb29s
Ci0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQlHbG9iYWxPcHRpbWl6YXRpb25zPSJU
UlVFIgotCQkJCUVuYWJsZUludHJpbnNpY0Z1bmN0aW9ucz0iVFJVRSIKLQkJCQlBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPSIuLi8uLi9pbmNsdWRlIgotCQkJCVByZXByb2Nlc3NvckRlZmlu
aXRpb25zPSJXSU4zMjtOREVCVUc7X0xJQiIKLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIgotCQkJ
CVJ1bnRpbWVMaWJyYXJ5PSIwIgotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVF
IgotCQkJCURpc2FibGVMYW5ndWFnZUV4dGVuc2lvbnM9IlRSVUUiCi0JCQkJRm9yY2VDb25mb3Jt
YW5jZUluRm9yTG9vcFNjb3BlPSJGQUxTRSIKLQkJCQlSdW50aW1lVHlwZUluZm89IlRSVUUiCi0J
CQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCi0JCQkJQXNzZW1ibGVyT3V0cHV0PSI0IgotCQkJ
CVdhcm5pbmdMZXZlbD0iMyIKLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRS
VUUiCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyIvPgotCQkJPFRvb2wKLQkJCQlOYW1l
PSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0xpYnJhcmlhblRv
b2wiCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpL2pzb25fdmM3MV9saWJtdC5saWIiLz4KLQkJ
CTxUb29sCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1Bv
c3RCdWlsZEV2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRU
b29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPgotCQkJPFRv
b2wKLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5h
bWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1l
PSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTWFuYWdl
ZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5
TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0JCTwvQ29uZmlndXJhdGlvbj4KLQkJPENv
bmZpZ3VyYXRpb24KLQkJCU5hbWU9ImR1bW15fFdpbjMyIgotCQkJT3V0cHV0RGlyZWN0b3J5PSIk
KENvbmZpZ3VyYXRpb25OYW1lKSIKLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iJChDb25maWd1
cmF0aW9uTmFtZSkiCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiIKLQkJCUNoYXJhY3RlclNldD0i
MiIKLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iVFJVRSI+Ci0JCQk8VG9vbAotCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJR2xvYmFsT3B0aW1pemF0aW9ucz0iVFJVRSIKLQkJ
CQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9IlRSVUUiCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz0iLi4vLi4vaW5jbHVkZSIKLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0i
V0lOMzI7TkRFQlVHO19MSUIiCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSIKLQkJCQlSdW50aW1l
TGlicmFyeT0iNCIKLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSIKLQkJCQlE
aXNhYmxlTGFuZ3VhZ2VFeHRlbnNpb25zPSJUUlVFIgotCQkJCUZvcmNlQ29uZm9ybWFuY2VJbkZv
ckxvb3BTY29wZT0iRkFMU0UiCi0JCQkJUnVudGltZVR5cGVJbmZvPSJUUlVFIgotCQkJCVVzZVBy
ZWNvbXBpbGVkSGVhZGVyPSIwIgotCQkJCUFzc2VtYmxlck91dHB1dD0iNCIKLQkJCQlXYXJuaW5n
TGV2ZWw9IjMiCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJ
CURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0
b21CdWlsZFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIgotCQkJCUdl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSIKLQkJCQlTdWJTeXN0ZW09IjIiCi0JCQkJT3B0
aW1pemVSZWZlcmVuY2VzPSIyIgotCQkJCUVuYWJsZUNPTURBVEZvbGRpbmc9IjIiCi0JCQkJVGFy
Z2V0TWFjaGluZT0iMSIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+Ci0JCQk8
VG9vbAotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5h
bWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVMaW5r
RXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wi
Lz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+
Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29s
Ci0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJW
Q01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0F1
eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQk8L0NvbmZpZ3VyYXRpb24+
Ci0JPC9Db25maWd1cmF0aW9ucz4KLQk8UmVmZXJlbmNlcz4KLQk8L1JlZmVyZW5jZXM+Ci0JPEZp
bGVzPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxpbmNsdWRlXGpzb25cYXV0b2xp
bmsuaCI+Ci0JCTwvRmlsZT4KLQkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caW5jbHVk
ZVxqc29uXGNvbmZpZy5oIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlxpbmNsdWRlXGpzb25cZmVhdHVyZXMuaCI+Ci0JCTwvRmlsZT4KLQkJPEZpbGUKLQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5caW5jbHVkZVxqc29uXGZvcndhcmRzLmgiPgotCQk8L0ZpbGU+Ci0J
CTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGluY2x1ZGVcanNvblxqc29uLmgiPgotCQk8
L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNyY1xsaWJfanNvblxqc29u
X2JhdGNoYWxsb2NhdG9yLmgiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXHNyY1xsaWJfanNvblxqc29uX2ludGVybmFsYXJyYXkuaW5sIj4KLQkJPC9GaWxlPgot
CQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcbGliX2pzb25canNvbl9pbnRlcm5h
bG1hcC5pbmwiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNy
Y1xsaWJfanNvblxqc29uX3JlYWRlci5jcHAiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHNyY1xsaWJfanNvblxqc29uX3ZhbHVlLmNwcCI+Ci0JCTwvRmlsZT4K
LQkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cc3JjXGxpYl9qc29uXGpzb25fdmFsdWVp
dGVyYXRvci5pbmwiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XHNyY1xsaWJfanNvblxqc29uX3dyaXRlci5jcHAiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlS
ZWxhdGl2ZVBhdGg9Ii4uXC4uXGluY2x1ZGVcanNvblxyZWFkZXIuaCI+Ci0JCTwvRmlsZT4KLQkJ
PEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caW5jbHVkZVxqc29uXHZhbHVlLmgiPgotCQk8
L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGluY2x1ZGVcanNvblx3cml0
ZXIuaCI+Ci0JCTwvRmlsZT4KLQk8L0ZpbGVzPgotCTxHbG9iYWxzPgotCTwvR2xvYmFscz4KLTwv
VmlzdWFsU3R1ZGlvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvdGVz
dF9saWJfanNvbi52Y3Byb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VmaWxlcy92czcxL3Rlc3RfbGliX2pzb24udmNw
cm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZWJiOTg2YTY2NWI1YjExNWQwZDNh
NzRjMGRjODM5MDM1Y2RiOTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvdGVzdF9saWJfanNvbi52Y3Byb2oKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
V2luZG93cy0xMjUyIj8+Ci08VmlzdWFsU3R1ZGlvUHJvamVjdAotCVByb2plY3RUeXBlPSJWaXN1
YWwgQysrIgotCVZlcnNpb249IjcuMTAiCi0JTmFtZT0idGVzdF9saWJfanNvbiIKLQlQcm9qZWN0
R1VJRD0ie0I3QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0iCi0JUm9vdE5hbWVz
cGFjZT0idGVzdF9saWJfanNvbiIKLQlLZXl3b3JkPSJXaW4zMlByb2oiPgotCTxQbGF0Zm9ybXM+
Ci0JCTxQbGF0Zm9ybQotCQkJTmFtZT0iV2luMzIiLz4KLQk8L1BsYXRmb3Jtcz4KLQk8Q29uZmln
dXJhdGlvbnM+Ci0JCTxDb25maWd1cmF0aW9uCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCU91
dHB1dERpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy90ZXN0X2xpYl9qc29uIgotCQkJ
SW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuLi8uLi9idWlsZC92czcxL2RlYnVnL3Rlc3RfbGliX2pz
b24iCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSIKLQkJCUNoYXJhY3RlclNldD0iMiI+Ci0JCQk8
VG9vbAotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJT3B0aW1pemF0aW9uPSIwIgot
CQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uLy4uL2luY2x1ZGUiCi0JCQkJUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19ERUJVRztfQ09OU09MRSIKLQkJCQlNaW5pbWFs
UmVidWlsZD0iVFJVRSIKLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjMiCi0JCQkJUnVudGltZUxp
YnJhcnk9IjEiCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCi0JCQkJV2FybmluZ0xldmVs
PSIzIgotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSIKLQkJCQlEZWJ1
Z0luZm9ybWF0aW9uRm9ybWF0PSI0Ii8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQ3VzdG9tQnVp
bGRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCIKLQkJCQlPdXRwdXRG
aWxlPSIkKE91dERpcikvdGVzdF9saWJfanNvbi5leGUiCi0JCQkJTGlua0luY3JlbWVudGFsPSIy
IgotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSIKLQkJCQlQcm9ncmFtRGF0YWJh
c2VGaWxlPSIkKE91dERpcikvdGVzdF9saWJfanNvbi5wZGIiCi0JCQkJU3ViU3lzdGVtPSIxIgot
CQkJCVRhcmdldE1hY2hpbmU9IjEiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIv
PgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIKLQkJCQlEZXNjcmlw
dGlvbj0iUnVubmluZyBhbGwgdW5pdCB0ZXN0cyIKLQkJCQlDb21tYW5kTGluZT0iJChUYXJnZXRQ
YXRoKSIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8
VG9vbAotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1l
PSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDV2ViU2Vy
dmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1hNTERhdGFH
ZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wi
Lz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4K
LQkJCTxUb29sCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRv
b2wiLz4KLQkJPC9Db25maWd1cmF0aW9uPgotCQk8Q29uZmlndXJhdGlvbgotCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKLQkJCU91dHB1dERpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9yZWxlYXNl
L3Rlc3RfbGliX2pzb24iCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii4uLy4uL2J1aWxkL3Zz
NzEvcmVsZWFzZS90ZXN0X2xpYl9qc29uIgotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiCi0JCQlD
aGFyYWN0ZXJTZXQ9IjIiPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uLy4uL2luY2x1ZGUiCi0JCQkJUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfQ09OU09MRSIKLQkJCQlSdW50aW1l
TGlicmFyeT0iMCIKLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKLQkJCQlXYXJuaW5nTGV2
ZWw9IjMiCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJCURl
YnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0b21C
dWlsZFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIgotCQkJCU91dHB1
dEZpbGU9IiQoT3V0RGlyKS90ZXN0X2xpYl9qc29uLmV4ZSIKLQkJCQlMaW5rSW5jcmVtZW50YWw9
IjEiCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIgotCQkJCVN1YlN5c3RlbT0i
MSIKLQkJCQlPcHRpbWl6ZVJlZmVyZW5jZXM9IjIiCi0JCQkJRW5hYmxlQ09NREFURm9sZGluZz0i
MiIKLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTUlETFRv
b2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiCi0JCQkJRGVz
Y3JpcHRpb249IlJ1bm5pbmcgYWxsIHVuaXQgdGVzdHMiCi0JCQkJQ29tbWFuZExpbmU9IiQoVGFy
Z2V0UGF0aCkiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPgot
CQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJ
TmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dl
YlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNYTUxE
YXRhR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRU
b29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29s
Ii8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0
b3JUb29sIi8+Ci0JCTwvQ29uZmlndXJhdGlvbj4KLQk8L0NvbmZpZ3VyYXRpb25zPgotCTxSZWZl
cmVuY2VzPgotCTwvUmVmZXJlbmNlcz4KLQk8RmlsZXM+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBh
dGg9Ii4uXC4uXHNyY1x0ZXN0X2xpYl9qc29uXGpzb250ZXN0LmNwcCI+Ci0JCTwvRmlsZT4KLQkJ
PEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cc3JjXHRlc3RfbGliX2pzb25canNvbnRlc3Qu
aCI+Ci0JCTwvRmlsZT4KLQkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cc3JjXHRlc3Rf
bGliX2pzb25cbWFpbi5jcHAiPgotCQk8L0ZpbGU+Ci0JPC9GaWxlcz4KLQk8R2xvYmFscz4KLQk8
L0dsb2JhbHM+Ci08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2Vy
ZWxlYXNlLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9tYWtlcmVsZWFzZS5weQppbmRleCA2YjhlZWMzMDcwNzc4ZTU3NmFi
YTQ5NzI3Y2UyMGZiYmRkZTAxM2FhLi5iYzcxNmNiYWIzYzNjZmExOGRlYTc4OTYzODJkMDg1MmEx
NDJhMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VyZWxlYXNlLnB5CisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZXJl
bGVhc2UucHkKQEAgLTEsMyArMSw4IEBACisjIENvcHlyaWdodCAyMDEwIEJhcHRpc3RlIExlcGls
bGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGlj
ZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlv
dXIganVyaXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCiAiIiJUYWcgdGhlIHNh
bmRib3ggZm9yIHJlbGVhc2UsIG1ha2Ugc291cmNlIGFuZCBkb2MgdGFyYmFsbHMuCiAKIFJlcXVp
cmVzIFB5dGhvbiAyLjYKQEAgLTEwLDcgKzE1LDEyIEBAIHB5dGhvbiBtYWtlcmVsZWFzZS5weSAt
LWZvcmNlIC0tcmV0YWcgLS1wbGF0Zm9ybT1tc3ZjNixtc3ZjNzEsbXN2YzgwLG1pbmd3IC11Ymxl
CiAKIEV4YW1wbGUgb2YgaW52b2NhdGlvbiB3aGVuIGRvaW5nIGEgcmVsZWFzZToKIHB5dGhvbiBt
YWtlcmVsZWFzZS5weSAwLjUuMCAwLjYuMC1kZXYKKworTm90ZTogVGhpcyB3YXMgZm9yIFN1YnZl
cnNpb24uIE5vdyB0aGF0IHdlIGFyZSBpbiBHaXRIdWIsIHdlIGRvIG5vdAorbmVlZCB0byBidWls
ZCB2ZXJzaW9uZWQgdGFyYmFsbHMgYW55bW9yZSwgc28gbWFrZXJlbGVhc2UucHkgaXMgZGVmdW5j
dC4KICIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQg
b3MucGF0aAogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKQEAgLTMwLDE0MCArNDAsMTQw
IEBAIFNWTl9UQUdfUk9PVCA9IFNWTl9ST09UICsgJ3RhZ3MvanNvbmNwcCcKIFNDT05TX0xPQ0FM
X1VSTCA9ICdodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3Njb25zL2ZpbGVzL3Njb25z
LWxvY2FsLzEuMi4wL3Njb25zLWxvY2FsLTEuMi4wLnRhci5nei9kb3dubG9hZCcKIFNPVVJDRUZP
UkdFX1BST0pFQ1QgPSAnanNvbmNwcCcKIAotZGVmIHNldF92ZXJzaW9uKCB2ZXJzaW9uICk6Citk
ZWYgc2V0X3ZlcnNpb24odmVyc2lvbik6CiAgICAgd2l0aCBvcGVuKCd2ZXJzaW9uJywnd2InKSBh
cyBmOgotICAgICAgICBmLndyaXRlKCB2ZXJzaW9uLnN0cmlwKCkgKQorICAgICAgICBmLndyaXRl
KHZlcnNpb24uc3RyaXAoKSkKIAotZGVmIHJtZGlyX2lmX2V4aXN0KCBkaXJfcGF0aCApOgotICAg
IGlmIG9zLnBhdGguaXNkaXIoIGRpcl9wYXRoICk6Ci0gICAgICAgIHNodXRpbC5ybXRyZWUoIGRp
cl9wYXRoICkKK2RlZiBybWRpcl9pZl9leGlzdChkaXJfcGF0aCk6CisgICAgaWYgb3MucGF0aC5p
c2RpcihkaXJfcGF0aCk6CisgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyX3BhdGgpCiAKIGNsYXNz
IFNWTkVycm9yKEV4Y2VwdGlvbik6CiAgICAgcGFzcwogCi1kZWYgc3ZuX2NvbW1hbmQoIGNvbW1h
bmQsICphcmdzICk6CitkZWYgc3ZuX2NvbW1hbmQoY29tbWFuZCwgKmFyZ3MpOgogICAgIGNtZCA9
IFsnc3ZuJywgJy0tbm9uLWludGVyYWN0aXZlJywgY29tbWFuZF0gKyBsaXN0KGFyZ3MpCi0gICAg
cHJpbnQgJ1J1bm5pbmc6JywgJyAnLmpvaW4oIGNtZCApCi0gICAgcHJvY2VzcyA9IHN1YnByb2Nl
c3MuUG9wZW4oIGNtZCwKKyAgICBwcmludCgnUnVubmluZzonLCAnICcuam9pbihjbWQpKQorICAg
IHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUICkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKQogICAgIHN0ZG91dCA9IHByb2Nl
c3MuY29tbXVuaWNhdGUoKVswXQogICAgIGlmIHByb2Nlc3MucmV0dXJuY29kZToKLSAgICAgICAg
ZXJyb3IgPSBTVk5FcnJvciggJ1NWTiBjb21tYW5kIGZhaWxlZDpcbicgKyBzdGRvdXQgKQorICAg
ICAgICBlcnJvciA9IFNWTkVycm9yKCdTVk4gY29tbWFuZCBmYWlsZWQ6XG4nICsgc3Rkb3V0KQog
ICAgICAgICBlcnJvci5yZXR1cm5jb2RlID0gcHJvY2Vzcy5yZXR1cm5jb2RlCiAgICAgICAgIHJh
aXNlIGVycm9yCiAgICAgcmV0dXJuIHN0ZG91dAogCiBkZWYgY2hlY2tfbm9fcGVuZGluZ19jb21t
aXQoKToKICAgICAiIiJDaGVja3MgdGhhdCB0aGVyZSBpcyBubyBwZW5kaW5nIGNvbW1pdCBpbiB0
aGUgc2FuZGJveC4iIiIKLSAgICBzdGRvdXQgPSBzdm5fY29tbWFuZCggJ3N0YXR1cycsICctLXht
bCcgKQotICAgIGV0cmVlID0gRWxlbWVudFRyZWUuZnJvbXN0cmluZyggc3Rkb3V0ICkKKyAgICBz
dGRvdXQgPSBzdm5fY29tbWFuZCgnc3RhdHVzJywgJy0teG1sJykKKyAgICBldHJlZSA9IEVsZW1l
bnRUcmVlLmZyb21zdHJpbmcoc3Rkb3V0KQogICAgIG1zZyA9IFtdCi0gICAgZm9yIGVudHJ5IGlu
IGV0cmVlLmdldGl0ZXJhdG9yKCAnZW50cnknICk6CisgICAgZm9yIGVudHJ5IGluIGV0cmVlLmdl
dGl0ZXJhdG9yKCdlbnRyeScpOgogICAgICAgICBwYXRoID0gZW50cnkuZ2V0KCdwYXRoJykKICAg
ICAgICAgc3RhdHVzID0gZW50cnkuZmluZCgnd2Mtc3RhdHVzJykuZ2V0KCdpdGVtJykKICAgICAg
ICAgaWYgc3RhdHVzICE9ICd1bnZlcnNpb25lZCcgYW5kIHBhdGggIT0gJ3ZlcnNpb24nOgotICAg
ICAgICAgICAgbXNnLmFwcGVuZCggJ0ZpbGUgIiVzIiBoYXMgcGVuZGluZyBjaGFuZ2UgKHN0YXR1
cz0iJXMiKScgJSAocGF0aCwgc3RhdHVzKSApCisgICAgICAgICAgICBtc2cuYXBwZW5kKCdGaWxl
ICIlcyIgaGFzIHBlbmRpbmcgY2hhbmdlIChzdGF0dXM9IiVzIiknICUgKHBhdGgsIHN0YXR1cykp
CiAgICAgaWYgbXNnOgotICAgICAgICBtc2cuaW5zZXJ0KDAsICdQZW5kaW5nIGNoYW5nZSB0byBj
b21taXQgZm91bmQgaW4gc2FuZGJveC4gQ29tbWl0IHRoZW0gZmlyc3QhJyApCi0gICAgcmV0dXJu
ICdcbicuam9pbiggbXNnICkKKyAgICAgICAgbXNnLmluc2VydCgwLCAnUGVuZGluZyBjaGFuZ2Ug
dG8gY29tbWl0IGZvdW5kIGluIHNhbmRib3guIENvbW1pdCB0aGVtIGZpcnN0IScpCisgICAgcmV0
dXJuICdcbicuam9pbihtc2cpCiAKLWRlZiBzdm5fam9pbl91cmwoIGJhc2VfdXJsLCBzdWZmaXgg
KToKK2RlZiBzdm5fam9pbl91cmwoYmFzZV91cmwsIHN1ZmZpeCk6CiAgICAgaWYgbm90IGJhc2Vf
dXJsLmVuZHN3aXRoKCcvJyk6CiAgICAgICAgIGJhc2VfdXJsICs9ICcvJwogICAgIGlmIHN1ZmZp
eC5zdGFydHN3aXRoKCcvJyk6CiAgICAgICAgIHN1ZmZpeCA9IHN1ZmZpeFsxOl0KICAgICByZXR1
cm4gYmFzZV91cmwgKyBzdWZmaXgKIAotZGVmIHN2bl9jaGVja19pZl90YWdfZXhpc3QoIHRhZ191
cmwgKToKK2RlZiBzdm5fY2hlY2tfaWZfdGFnX2V4aXN0KHRhZ191cmwpOgogICAgICIiIkNoZWNr
cyBpZiBhIHRhZyBleGlzdC4KICAgICBSZXR1cm5zOiBUcnVlIGlmIHRoZSB0YWcgZXhpc3QsIEZh
bHNlIG90aGVyd2lzZS4KICAgICAiIiIKICAgICB0cnk6Ci0gICAgICAgIGxpc3Rfc3Rkb3V0ID0g
c3ZuX2NvbW1hbmQoICdsaXN0JywgdGFnX3VybCApCi0gICAgZXhjZXB0IFNWTkVycm9yLCBlOgor
ICAgICAgICBsaXN0X3N0ZG91dCA9IHN2bl9jb21tYW5kKCdsaXN0JywgdGFnX3VybCkKKyAgICBl
eGNlcHQgU1ZORXJyb3IgYXMgZToKICAgICAgICAgaWYgZS5yZXR1cm5jb2RlICE9IDEgb3Igbm90
IHN0cihlKS5maW5kKCd0YWdfdXJsJyk6CiAgICAgICAgICAgICByYWlzZSBlCiAgICAgICAgICMg
b3RoZXJ3aXNlIGlnbm9yZSBlcnJvciwgbWVhbmluZyB0YWcgZG9lcyBub3QgZXhpc3QKICAgICAg
ICAgcmV0dXJuIEZhbHNlCiAgICAgcmV0dXJuIFRydWUKIAotZGVmIHN2bl9jb21taXQoIG1lc3Nh
Z2UgKToKK2RlZiBzdm5fY29tbWl0KG1lc3NhZ2UpOgogICAgICIiIkNvbW1pdCB0aGUgc2FuZGJv
eCwgcHJvdmlkaW5nIHRoZSBzcGVjaWZpZWQgY29tbWVudC4KICAgICAiIiIKLSAgICBzdm5fY29t
bWFuZCggJ2NpJywgJy1tJywgbWVzc2FnZSApCisgICAgc3ZuX2NvbW1hbmQoJ2NpJywgJy1tJywg
bWVzc2FnZSkKIAotZGVmIHN2bl90YWdfc2FuZGJveCggdGFnX3VybCwgbWVzc2FnZSApOgorZGVm
IHN2bl90YWdfc2FuZGJveCh0YWdfdXJsLCBtZXNzYWdlKToKICAgICAiIiJNYWtlcyBhIHRhZyBi
YXNlZCBvbiB0aGUgc2FuZGJveCByZXZpc2lvbnMuCiAgICAgIiIiCi0gICAgc3ZuX2NvbW1hbmQo
ICdjb3B5JywgJy1tJywgbWVzc2FnZSwgJy4nLCB0YWdfdXJsICkKKyAgICBzdm5fY29tbWFuZCgn
Y29weScsICctbScsIG1lc3NhZ2UsICcuJywgdGFnX3VybCkKIAotZGVmIHN2bl9yZW1vdmVfdGFn
KCB0YWdfdXJsLCBtZXNzYWdlICk6CitkZWYgc3ZuX3JlbW92ZV90YWcodGFnX3VybCwgbWVzc2Fn
ZSk6CiAgICAgIiIiUmVtb3ZlcyBhbiBleGlzdGluZyB0YWcuCiAgICAgIiIiCi0gICAgc3ZuX2Nv
bW1hbmQoICdkZWxldGUnLCAnLW0nLCBtZXNzYWdlLCB0YWdfdXJsICkKKyAgICBzdm5fY29tbWFu
ZCgnZGVsZXRlJywgJy1tJywgbWVzc2FnZSwgdGFnX3VybCkKIAotZGVmIHN2bl9leHBvcnQoIHRh
Z191cmwsIGV4cG9ydF9kaXIgKToKK2RlZiBzdm5fZXhwb3J0KHRhZ191cmwsIGV4cG9ydF9kaXIp
OgogICAgICIiIkV4cG9ydHMgdGhlIHRhZ191cmwgcmV2aXNpb24gdG8gZXhwb3J0X2Rpci4KICAg
ICAgICBUYXJnZXQgZGlyZWN0b3J5LCBpbmNsdWRpbmcgaXRzIHBhcmVudCBpcyBjcmVhdGVkIGlm
IGl0IGRvZXMgbm90IGV4aXN0LgogICAgICAgIElmIHRoZSBkaXJlY3RvcnkgZXhwb3J0X2RpciBl
eGlzdCwgaXQgaXMgZGVsZXRlZCBiZWZvcmUgZXhwb3J0IHByb2NlZWQuCiAgICAgIiIiCi0gICAg
cm1kaXJfaWZfZXhpc3QoIGV4cG9ydF9kaXIgKQotICAgIHN2bl9jb21tYW5kKCAnZXhwb3J0Jywg
dGFnX3VybCwgZXhwb3J0X2RpciApCisgICAgcm1kaXJfaWZfZXhpc3QoZXhwb3J0X2RpcikKKyAg
ICBzdm5fY29tbWFuZCgnZXhwb3J0JywgdGFnX3VybCwgZXhwb3J0X2RpcikKIAotZGVmIGZpeF9z
b3VyY2VzX2VvbCggZGlzdF9kaXIgKToKK2RlZiBmaXhfc291cmNlc19lb2woZGlzdF9kaXIpOgog
ICAgICIiIlNldCBmaWxlIEVPTCBmb3IgdGFyYmFsbCBkaXN0cmlidXRpb24uCiAgICAgIiIiCi0g
ICAgcHJpbnQgJ1ByZXBhcmluZyBleHBvcnRlZCBzb3VyY2UgZmlsZSBFT0wgZm9yIGRpc3RyaWJ1
dGlvbi4uLicKKyAgICBwcmludCgnUHJlcGFyaW5nIGV4cG9ydGVkIHNvdXJjZSBmaWxlIEVPTCBm
b3IgZGlzdHJpYnV0aW9uLi4uJykKICAgICBwcnVuZV9kaXJzID0gYW50Z2xvYi5wcnVuZV9kaXJz
ICsgJ3Njb25zLWxvY2FsKiAuL2J1aWxkKiAuL2xpYnMgLi9kaXN0JwotICAgIHdpbl9zb3VyY2Vz
ID0gYW50Z2xvYi5nbG9iKCBkaXN0X2RpciwgCisgICAgd2luX3NvdXJjZXMgPSBhbnRnbG9iLmds
b2IoZGlzdF9kaXIsIAogICAgICAgICBpbmNsdWRlcyA9ICcqKi8qLnNsbiAqKi8qLnZjcHJvaics
Ci0gICAgICAgIHBydW5lX2RpcnMgPSBwcnVuZV9kaXJzICkKLSAgICB1bml4X3NvdXJjZXMgPSBh
bnRnbG9iLmdsb2IoIGRpc3RfZGlyLAorICAgICAgICBwcnVuZV9kaXJzID0gcHJ1bmVfZGlycykK
KyAgICB1bml4X3NvdXJjZXMgPSBhbnRnbG9iLmdsb2IoZGlzdF9kaXIsCiAgICAgICAgIGluY2x1
ZGVzID0gJycnKiovKi5oICoqLyouY3BwICoqLyouaW5sICoqLyoudHh0ICoqLyouZG94ICoqLyou
cHkgKiovKi5odG1sICoqLyouaW4KICAgICAgICAgc2NvbnNjcmlwdCAqLmpzb24gKi5leHBlY3Rl
ZCBBVVRIT1JTIExJQ0VOU0UnJycsCiAgICAgICAgIGV4Y2x1ZGVzID0gYW50Z2xvYi5kZWZhdWx0
X2V4Y2x1ZGVzICsgJ3Njb25zLnB5IHNjb25zaWduLnB5IHNjb25zLSonLAotICAgICAgICBwcnVu
ZV9kaXJzID0gcHJ1bmVfZGlycyApCisgICAgICAgIHBydW5lX2RpcnMgPSBwcnVuZV9kaXJzKQog
ICAgIGZvciBwYXRoIGluIHdpbl9zb3VyY2VzOgotICAgICAgICBmaXhlb2wuZml4X3NvdXJjZV9l
b2woIHBhdGgsIGlzX2RyeV9ydW4gPSBGYWxzZSwgdmVyYm9zZSA9IFRydWUsIGVvbCA9ICdcclxu
JyApCisgICAgICAgIGZpeGVvbC5maXhfc291cmNlX2VvbChwYXRoLCBpc19kcnlfcnVuID0gRmFs
c2UsIHZlcmJvc2UgPSBUcnVlLCBlb2wgPSAnXHJcbicpCiAgICAgZm9yIHBhdGggaW4gdW5peF9z
b3VyY2VzOgotICAgICAgICBmaXhlb2wuZml4X3NvdXJjZV9lb2woIHBhdGgsIGlzX2RyeV9ydW4g
PSBGYWxzZSwgdmVyYm9zZSA9IFRydWUsIGVvbCA9ICdcbicgKQorICAgICAgICBmaXhlb2wuZml4
X3NvdXJjZV9lb2wocGF0aCwgaXNfZHJ5X3J1biA9IEZhbHNlLCB2ZXJib3NlID0gVHJ1ZSwgZW9s
ID0gJ1xuJykKIAotZGVmIGRvd25sb2FkKCB1cmwsIHRhcmdldF9wYXRoICk6CitkZWYgZG93bmxv
YWQodXJsLCB0YXJnZXRfcGF0aCk6CiAgICAgIiIiRG93bmxvYWQgZmlsZSByZXByZXNlbnRlZCBi
eSB1cmwgdG8gdGFyZ2V0X3BhdGguCiAgICAgIiIiCi0gICAgZiA9IHVybGxpYjIudXJsb3Blbigg
dXJsICkKKyAgICBmID0gdXJsbGliMi51cmxvcGVuKHVybCkKICAgICB0cnk6CiAgICAgICAgIGRh
dGEgPSBmLnJlYWQoKQogICAgIGZpbmFsbHk6CiAgICAgICAgIGYuY2xvc2UoKQotICAgIGZvdXQg
PSBvcGVuKCB0YXJnZXRfcGF0aCwgJ3diJyApCisgICAgZm91dCA9IG9wZW4odGFyZ2V0X3BhdGgs
ICd3YicpCiAgICAgdHJ5OgotICAgICAgICBmb3V0LndyaXRlKCBkYXRhICkKKyAgICAgICAgZm91
dC53cml0ZShkYXRhKQogICAgIGZpbmFsbHk6CiAgICAgICAgIGZvdXQuY2xvc2UoKQogCi1kZWYg
Y2hlY2tfY29tcGlsZSggZGlzdGNoZWNrX3RvcF9kaXIsIHBsYXRmb3JtICk6CitkZWYgY2hlY2tf
Y29tcGlsZShkaXN0Y2hlY2tfdG9wX2RpciwgcGxhdGZvcm0pOgogICAgIGNtZCA9IFtzeXMuZXhl
Y3V0YWJsZSwgJ3Njb25zLnB5JywgJ3BsYXRmb3JtPSVzJyAlIHBsYXRmb3JtLCAnY2hlY2snXQot
ICAgIHByaW50ICdSdW5uaW5nOicsICcgJy5qb2luKCBjbWQgKQotICAgIGxvZ19wYXRoID0gb3Mu
cGF0aC5qb2luKCBkaXN0Y2hlY2tfdG9wX2RpciwgJ2J1aWxkLSVzLmxvZycgJSBwbGF0Zm9ybSAp
Ci0gICAgZmxvZyA9IG9wZW4oIGxvZ19wYXRoLCAnd2InICkKKyAgICBwcmludCgnUnVubmluZzon
LCAnICcuam9pbihjbWQpKQorICAgIGxvZ19wYXRoID0gb3MucGF0aC5qb2luKGRpc3RjaGVja190
b3BfZGlyLCAnYnVpbGQtJXMubG9nJyAlIHBsYXRmb3JtKQorICAgIGZsb2cgPSBvcGVuKGxvZ19w
YXRoLCAnd2InKQogICAgIHRyeToKLSAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4o
IGNtZCwKKyAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PWZsb2csCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9ZGlzdGNoZWNrX3RvcF9kaXIgKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dkPWRpc3RjaGVja190b3BfZGlyKQogICAg
ICAgICBzdGRvdXQgPSBwcm9jZXNzLmNvbW11bmljYXRlKClbMF0KICAgICAgICAgc3RhdHVzID0g
KHByb2Nlc3MucmV0dXJuY29kZSA9PSAwKQogICAgIGZpbmFsbHk6CiAgICAgICAgIGZsb2cuY2xv
c2UoKQogICAgIHJldHVybiAoc3RhdHVzLCBsb2dfcGF0aCkKIAotZGVmIHdyaXRlX3RlbXBmaWxl
KCBjb250ZW50LCAqKmt3YXJncyApOgotICAgIGZkLCBwYXRoID0gdGVtcGZpbGUubWtzdGVtcCgg
Kiprd2FyZ3MgKQotICAgIGYgPSBvcy5mZG9wZW4oIGZkLCAnd3QnICkKK2RlZiB3cml0ZV90ZW1w
ZmlsZShjb250ZW50LCAqKmt3YXJncyk6CisgICAgZmQsIHBhdGggPSB0ZW1wZmlsZS5ta3N0ZW1w
KCoqa3dhcmdzKQorICAgIGYgPSBvcy5mZG9wZW4oZmQsICd3dCcpCiAgICAgdHJ5OgotICAgICAg
ICBmLndyaXRlKCBjb250ZW50ICkKKyAgICAgICAgZi53cml0ZShjb250ZW50KQogICAgIGZpbmFs
bHk6CiAgICAgICAgIGYuY2xvc2UoKQogICAgIHJldHVybiBwYXRoCkBAIC0xNzEsMzQgKzE4MSwz
NCBAQCBkZWYgd3JpdGVfdGVtcGZpbGUoIGNvbnRlbnQsICoqa3dhcmdzICk6CiBjbGFzcyBTRlRQ
RXJyb3IoRXhjZXB0aW9uKToKICAgICBwYXNzCiAKLWRlZiBydW5fc2Z0cF9iYXRjaCggdXNlcmhv
c3QsIHNmdHAsIGJhdGNoLCByZXRyeT0wICk6Ci0gICAgcGF0aCA9IHdyaXRlX3RlbXBmaWxlKCBi
YXRjaCwgc3VmZml4PScuc2Z0cCcsIHRleHQ9VHJ1ZSApCitkZWYgcnVuX3NmdHBfYmF0Y2godXNl
cmhvc3QsIHNmdHAsIGJhdGNoLCByZXRyeT0wKToKKyAgICBwYXRoID0gd3JpdGVfdGVtcGZpbGUo
YmF0Y2gsIHN1ZmZpeD0nLnNmdHAnLCB0ZXh0PVRydWUpCiAgICAgIyBwc2Z0cCAtYWdlbnQgLUMg
YmxlcCxqc29uY3BwQHdlYi5zb3VyY2Vmb3JnZS5uZXQgLWJhdGNoIC1iIGJhdGNoLnNmdHAgLWJj
CiAgICAgY21kID0gW3NmdHAsICctYWdlbnQnLCAnLUMnLCAnLWJhdGNoJywgJy1iJywgcGF0aCwg
Jy1iYycsIHVzZXJob3N0XQogICAgIGVycm9yID0gTm9uZQotICAgIGZvciByZXRyeV9pbmRleCBp
biB4cmFuZ2UoMCwgbWF4KDEscmV0cnkpKToKKyAgICBmb3IgcmV0cnlfaW5kZXggaW4gcmFuZ2Uo
MCwgbWF4KDEscmV0cnkpKToKICAgICAgICAgaGVhZGluZyA9IHJldHJ5X2luZGV4ID09IDAgYW5k
ICdSdW5uaW5nOicgb3IgJ1JldHJ5aW5nOicKLSAgICAgICAgcHJpbnQgaGVhZGluZywgJyAnLmpv
aW4oIGNtZCApCi0gICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQsIHN0ZG91
dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCApCisgICAgICAgIHBy
aW50KGhlYWRpbmcsICcgJy5qb2luKGNtZCkpCisgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNz
LlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RE
T1VUKQogICAgICAgICBzdGRvdXQgPSBwcm9jZXNzLmNvbW11bmljYXRlKClbMF0KICAgICAgICAg
aWYgcHJvY2Vzcy5yZXR1cm5jb2RlICE9IDA6Ci0gICAgICAgICAgICBlcnJvciA9IFNGVFBFcnJv
ciggJ1NGVFAgYmF0Y2ggZmFpbGVkOlxuJyArIHN0ZG91dCApCisgICAgICAgICAgICBlcnJvciA9
IFNGVFBFcnJvcignU0ZUUCBiYXRjaCBmYWlsZWQ6XG4nICsgc3Rkb3V0KQogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgYnJlYWsKICAgICBpZiBlcnJvcjoKICAgICAgICAgcmFpc2UgZXJyb3IK
ICAgICByZXR1cm4gc3Rkb3V0CiAKLWRlZiBzb3VyY2Vmb3JnZV93ZWJfc3luY2hybyggc291cmNl
Zm9yZ2VfcHJvamVjdCwgZG9jX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
cj1Ob25lLCBzZnRwPSdzZnRwJyApOgorZGVmIHNvdXJjZWZvcmdlX3dlYl9zeW5jaHJvKHNvdXJj
ZWZvcmdlX3Byb2plY3QsIGRvY19kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVz
ZXI9Tm9uZSwgc2Z0cD0nc2Z0cCcpOgogICAgICIiIk5vdGVzOiBkb2VzIG5vdCBzeW5jaHJvbml6
ZSBzdWItZGlyZWN0b3J5IG9mIGRvYy1kaXIuCiAgICAgIiIiCiAgICAgdXNlcmhvc3QgPSAnJXMs
JXNAd2ViLnNvdXJjZWZvcmdlLm5ldCcgJSAodXNlciwgc291cmNlZm9yZ2VfcHJvamVjdCkKLSAg
ICBzdGRvdXQgPSBydW5fc2Z0cF9iYXRjaCggdXNlcmhvc3QsIHNmdHAsICIiIgorICAgIHN0ZG91
dCA9IHJ1bl9zZnRwX2JhdGNoKHVzZXJob3N0LCBzZnRwLCAiIiIKIGNkIGh0ZG9jcwogZGlyCiBl
eGl0Ci0iIiIgKQorIiIiKQogICAgIGV4aXN0aW5nX3BhdGhzID0gc2V0KCkKICAgICBjb2xsZWN0
ID0gMAogICAgIGZvciBsaW5lIGluIHN0ZG91dC5zcGxpdCgnXG4nKToKQEAgLTIxMiwzNiArMjIy
LDM2IEBAIGV4aXQKICAgICAgICAgZWxpZiBjb2xsZWN0ID09IDI6CiAgICAgICAgICAgICBwYXRo
ID0gbGluZS5zdHJpcCgpLnNwbGl0KClbLTE6XQogICAgICAgICAgICAgaWYgcGF0aCBhbmQgcGF0
aFswXSBub3QgaW4gKCcuJywgJy4uJyk6Ci0gICAgICAgICAgICAgICAgZXhpc3RpbmdfcGF0aHMu
YWRkKCBwYXRoWzBdICkKLSAgICB1cGxvYWRfcGF0aHMgPSBzZXQoIFtvcy5wYXRoLmJhc2VuYW1l
KHApIGZvciBwIGluIGFudGdsb2IuZ2xvYiggZG9jX2RpciApXSApCisgICAgICAgICAgICAgICAg
ZXhpc3RpbmdfcGF0aHMuYWRkKHBhdGhbMF0pCisgICAgdXBsb2FkX3BhdGhzID0gc2V0KFtvcy5w
YXRoLmJhc2VuYW1lKHApIGZvciBwIGluIGFudGdsb2IuZ2xvYihkb2NfZGlyKV0pCiAgICAgcGF0
aHNfdG9fcmVtb3ZlID0gZXhpc3RpbmdfcGF0aHMgLSB1cGxvYWRfcGF0aHMKICAgICBpZiBwYXRo
c190b19yZW1vdmU6Ci0gICAgICAgIHByaW50ICdSZW1vdmluZyB0aGUgZm9sbG93aW5nIGZpbGUg
ZnJvbSB3ZWI6JwotICAgICAgICBwcmludCAnXG4nLmpvaW4oIHBhdGhzX3RvX3JlbW92ZSApCi0g
ICAgICAgIHN0ZG91dCA9IHJ1bl9zZnRwX2JhdGNoKCB1c2VyaG9zdCwgc2Z0cCwgIiIiY2QgaHRk
b2NzCisgICAgICAgIHByaW50KCdSZW1vdmluZyB0aGUgZm9sbG93aW5nIGZpbGUgZnJvbSB3ZWI6
JykKKyAgICAgICAgcHJpbnQoJ1xuJy5qb2luKHBhdGhzX3RvX3JlbW92ZSkpCisgICAgICAgIHN0
ZG91dCA9IHJ1bl9zZnRwX2JhdGNoKHVzZXJob3N0LCBzZnRwLCAiIiJjZCBodGRvY3MKIHJtICVz
Ci1leGl0IiIiICUgJyAnLmpvaW4ocGF0aHNfdG9fcmVtb3ZlKSApCi0gICAgcHJpbnQgJ1VwbG9h
ZGluZyAlZCBmaWxlczonICUgbGVuKHVwbG9hZF9wYXRocykKK2V4aXQiIiIgJSAnICcuam9pbihw
YXRoc190b19yZW1vdmUpKQorICAgIHByaW50KCdVcGxvYWRpbmcgJWQgZmlsZXM6JyAlIGxlbih1
cGxvYWRfcGF0aHMpKQogICAgIGJhdGNoX3NpemUgPSAxMAogICAgIHVwbG9hZF9wYXRocyA9IGxp
c3QodXBsb2FkX3BhdGhzKQogICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQotICAgIGZvciBp
bmRleCBpbiB4cmFuZ2UoMCxsZW4odXBsb2FkX3BhdGhzKSxiYXRjaF9zaXplKToKKyAgICBmb3Ig
aW5kZXggaW4gcmFuZ2UoMCxsZW4odXBsb2FkX3BhdGhzKSxiYXRjaF9zaXplKToKICAgICAgICAg
cGF0aHMgPSB1cGxvYWRfcGF0aHNbaW5kZXg6aW5kZXgrYmF0Y2hfc2l6ZV0KICAgICAgICAgZmls
ZV9wZXJfc2VjID0gKHRpbWUudGltZSgpIC0gc3RhcnRfdGltZSkgLyAoaW5kZXgrMSkKICAgICAg
ICAgcmVtYWluaW5nX2ZpbGVzID0gbGVuKHVwbG9hZF9wYXRocykgLSBpbmRleAogICAgICAgICBy
ZW1haW5pbmdfc2VjID0gZmlsZV9wZXJfc2VjICogcmVtYWluaW5nX2ZpbGVzCi0gICAgICAgIHBy
aW50ICclZC8lZCwgRVRBPSUuMWZzJyAlIChpbmRleCsxLCBsZW4odXBsb2FkX3BhdGhzKSwgcmVt
YWluaW5nX3NlYykKLSAgICAgICAgcnVuX3NmdHBfYmF0Y2goIHVzZXJob3N0LCBzZnRwLCAiIiJj
ZCBodGRvY3MKKyAgICAgICAgcHJpbnQoJyVkLyVkLCBFVEE9JS4xZnMnICUgKGluZGV4KzEsIGxl
bih1cGxvYWRfcGF0aHMpLCByZW1haW5pbmdfc2VjKSkKKyAgICAgICAgcnVuX3NmdHBfYmF0Y2go
dXNlcmhvc3QsIHNmdHAsICIiImNkIGh0ZG9jcwogbGNkICVzCiBtcHV0ICVzCi1leGl0IiIiICUg
KGRvY19kaXIsICcgJy5qb2luKHBhdGhzKSApLCByZXRyeT0zICkKK2V4aXQiIiIgJSAoZG9jX2Rp
ciwgJyAnLmpvaW4ocGF0aHMpKSwgcmV0cnk9MykKIAotZGVmIHNvdXJjZWZvcmdlX3JlbGVhc2Vf
dGFyYmFsbCggc291cmNlZm9yZ2VfcHJvamVjdCwgcGF0aHMsIHVzZXI9Tm9uZSwgc2Z0cD0nc2Z0
cCcgKToKK2RlZiBzb3VyY2Vmb3JnZV9yZWxlYXNlX3RhcmJhbGwoc291cmNlZm9yZ2VfcHJvamVj
dCwgcGF0aHMsIHVzZXI9Tm9uZSwgc2Z0cD0nc2Z0cCcpOgogICAgIHVzZXJob3N0ID0gJyVzLCVz
QGZycy5zb3VyY2Vmb3JnZS5uZXQnICUgKHVzZXIsIHNvdXJjZWZvcmdlX3Byb2plY3QpCi0gICAg
cnVuX3NmdHBfYmF0Y2goIHVzZXJob3N0LCBzZnRwLCAiIiIKKyAgICBydW5fc2Z0cF9iYXRjaCh1
c2VyaG9zdCwgc2Z0cCwgIiIiCiBtcHV0ICVzCiBleGl0Ci0iIiIgJSAoJyAnLmpvaW4ocGF0aHMp
LCkgKQorIiIiICUgKCcgJy5qb2luKHBhdGhzKSwpKQogCiAKIGRlZiBtYWluKCk6CkBAIC0yNTUs
NyArMjY1LDcgQEAgUGVyZm9ybXMgYW4gc3ZuIGV4cG9ydCBvZiB0YWcgcmVsZWFzZSB2ZXJzaW9u
LCBhbmQgYnVpbGQgYSBzb3VyY2UgdGFyYmFsbC4KIAogTXVzdCBiZSBzdGFydGVkIGluIHRoZSBw
cm9qZWN0IHRvcCBkaXJlY3RvcnkuCiAKLVdhcm5pbmc6IC0tZm9yY2Ugc2hvdWxkIG9ubHkgYmUg
dXNlZCB3aGVuIGRldmVsb3BwaW5nL3Rlc3RpbmcgdGhlIHJlbGVhc2Ugc2NyaXB0LgorV2Fybmlu
ZzogLS1mb3JjZSBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4gZGV2ZWxvcGluZy90ZXN0aW5nIHRo
ZSByZWxlYXNlIHNjcmlwdC4KICIiIgogICAgIGZyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBh
cnNlcgogICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcih1c2FnZT11c2FnZSkKQEAgLTI4Miw5OSAr
MjkyLDk5IEBAIFdhcm5pbmc6IC0tZm9yY2Ugc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGRldmVs
b3BwaW5nL3Rlc3RpbmcgdGhlIHJlbGVhc2Ugc2NyaXB0CiAgICAgb3B0aW9ucywgYXJncyA9IHBh
cnNlci5wYXJzZV9hcmdzKCkKIAogICAgIGlmIGxlbihhcmdzKSAhPSAyOgotICAgICAgICBwYXJz
ZXIuZXJyb3IoICdyZWxlYXNlX3ZlcnNpb24gbWlzc2luZyBvbiBjb21tYW5kLWxpbmUuJyApCisg
ICAgICAgIHBhcnNlci5lcnJvcigncmVsZWFzZV92ZXJzaW9uIG1pc3Npbmcgb24gY29tbWFuZC1s
aW5lLicpCiAgICAgcmVsZWFzZV92ZXJzaW9uID0gYXJnc1swXQogICAgIG5leHRfdmVyc2lvbiA9
IGFyZ3NbMV0KIAogICAgIGlmIG5vdCBvcHRpb25zLnBsYXRmb3JtcyBhbmQgbm90IG9wdGlvbnMu
bm9fdGVzdDoKLSAgICAgICAgcGFyc2VyLmVycm9yKCAnWW91IG11c3Qgc3BlY2lmeSBlaXRoZXIg
LS1wbGF0Zm9ybSBvciAtLW5vLXRlc3Qgb3B0aW9uLicgKQorICAgICAgICBwYXJzZXIuZXJyb3Io
J1lvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tcGxhdGZvcm0gb3IgLS1uby10ZXN0IG9wdGlvbi4n
KQogCiAgICAgaWYgb3B0aW9ucy5pZ25vcmVfcGVuZGluZ19jb21taXQ6CiAgICAgICAgIG1zZyA9
ICcnCiAgICAgZWxzZToKICAgICAgICAgbXNnID0gY2hlY2tfbm9fcGVuZGluZ19jb21taXQoKQog
ICAgIGlmIG5vdCBtc2c6Ci0gICAgICAgIHByaW50ICdTZXR0aW5nIHZlcnNpb24gdG8nLCByZWxl
YXNlX3ZlcnNpb24KLSAgICAgICAgc2V0X3ZlcnNpb24oIHJlbGVhc2VfdmVyc2lvbiApCi0gICAg
ICAgIHN2bl9jb21taXQoICdSZWxlYXNlICcgKyByZWxlYXNlX3ZlcnNpb24gKQotICAgICAgICB0
YWdfdXJsID0gc3ZuX2pvaW5fdXJsKCBTVk5fVEFHX1JPT1QsIHJlbGVhc2VfdmVyc2lvbiApCi0g
ICAgICAgIGlmIHN2bl9jaGVja19pZl90YWdfZXhpc3QoIHRhZ191cmwgKToKKyAgICAgICAgcHJp
bnQoJ1NldHRpbmcgdmVyc2lvbiB0bycsIHJlbGVhc2VfdmVyc2lvbikKKyAgICAgICAgc2V0X3Zl
cnNpb24ocmVsZWFzZV92ZXJzaW9uKQorICAgICAgICBzdm5fY29tbWl0KCdSZWxlYXNlICcgKyBy
ZWxlYXNlX3ZlcnNpb24pCisgICAgICAgIHRhZ191cmwgPSBzdm5fam9pbl91cmwoU1ZOX1RBR19S
T09ULCByZWxlYXNlX3ZlcnNpb24pCisgICAgICAgIGlmIHN2bl9jaGVja19pZl90YWdfZXhpc3Qo
dGFnX3VybCk6CiAgICAgICAgICAgICBpZiBvcHRpb25zLnJldGFnX3JlbGVhc2U6Ci0gICAgICAg
ICAgICAgICAgc3ZuX3JlbW92ZV90YWcoIHRhZ191cmwsICdPdmVyd3JpdGluZyBwcmV2aW91cyB0
YWcnICkKKyAgICAgICAgICAgICAgICBzdm5fcmVtb3ZlX3RhZyh0YWdfdXJsLCAnT3ZlcndyaXRp
bmcgcHJldmlvdXMgdGFnJykKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJp
bnQgJ0Fib3J0aW5nLCB0YWcgJXMgYWxyZWFkeSBleGlzdC4gVXNlIC0tcmV0YWcgdG8gb3Zlcndy
aXRlIGl0IScgJSB0YWdfdXJsCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoIDEgKQotICAgICAg
ICBzdm5fdGFnX3NhbmRib3goIHRhZ191cmwsICdSZWxlYXNlICcgKyByZWxlYXNlX3ZlcnNpb24g
KQorICAgICAgICAgICAgICAgIHByaW50KCdBYm9ydGluZywgdGFnICVzIGFscmVhZHkgZXhpc3Qu
IFVzZSAtLXJldGFnIHRvIG92ZXJ3cml0ZSBpdCEnICUgdGFnX3VybCkKKyAgICAgICAgICAgICAg
ICBzeXMuZXhpdCgxKQorICAgICAgICBzdm5fdGFnX3NhbmRib3godGFnX3VybCwgJ1JlbGVhc2Ug
JyArIHJlbGVhc2VfdmVyc2lvbikKIAotICAgICAgICBwcmludCAnR2VuZXJhdGVkIGRveHlnZW4g
ZG9jdW1lbnQuLi4nCisgICAgICAgIHByaW50KCdHZW5lcmF0ZWQgZG94eWdlbiBkb2N1bWVudC4u
LicpCiAjIyAgICAgICAgZG9jX2Rpcm5hbWUgPSByJ2pzb25jcHAtYXBpLWh0bWwtMC41LjAnCiAj
IyAgICAgICAgZG9jX3RhcmJhbGxfcGF0aCA9IHInZTpccHJnXHZjXExpYlxqc29uY3BwLXRydW5r
XGRpc3RcanNvbmNwcC1hcGktaHRtbC0wLjUuMC50YXIuZ3onCi0gICAgICAgIGRvY190YXJiYWxs
X3BhdGgsIGRvY19kaXJuYW1lID0gZG94eWJ1aWxkLmJ1aWxkX2RvYyggb3B0aW9ucywgbWFrZV9y
ZWxlYXNlPVRydWUgKQorICAgICAgICBkb2NfdGFyYmFsbF9wYXRoLCBkb2NfZGlybmFtZSA9IGRv
eHlidWlsZC5idWlsZF9kb2Mob3B0aW9ucywgbWFrZV9yZWxlYXNlPVRydWUpCiAgICAgICAgIGRv
Y19kaXN0Y2hlY2tfZGlyID0gJ2Rpc3QvZG9jY2hlY2snCi0gICAgICAgIHRhcmJhbGwuZGVjb21w
cmVzcyggZG9jX3RhcmJhbGxfcGF0aCwgZG9jX2Rpc3RjaGVja19kaXIgKQotICAgICAgICBkb2Nf
ZGlzdGNoZWNrX3RvcF9kaXIgPSBvcy5wYXRoLmpvaW4oIGRvY19kaXN0Y2hlY2tfZGlyLCBkb2Nf
ZGlybmFtZSApCisgICAgICAgIHRhcmJhbGwuZGVjb21wcmVzcyhkb2NfdGFyYmFsbF9wYXRoLCBk
b2NfZGlzdGNoZWNrX2RpcikKKyAgICAgICAgZG9jX2Rpc3RjaGVja190b3BfZGlyID0gb3MucGF0
aC5qb2luKGRvY19kaXN0Y2hlY2tfZGlyLCBkb2NfZGlybmFtZSkKICAgICAgICAgCiAgICAgICAg
IGV4cG9ydF9kaXIgPSAnZGlzdC9leHBvcnQnCi0gICAgICAgIHN2bl9leHBvcnQoIHRhZ191cmws
IGV4cG9ydF9kaXIgKQotICAgICAgICBmaXhfc291cmNlc19lb2woIGV4cG9ydF9kaXIgKQorICAg
ICAgICBzdm5fZXhwb3J0KHRhZ191cmwsIGV4cG9ydF9kaXIpCisgICAgICAgIGZpeF9zb3VyY2Vz
X2VvbChleHBvcnRfZGlyKQogICAgICAgICAKICAgICAgICAgc291cmNlX2RpciA9ICdqc29uY3Bw
LXNyYy0nICsgcmVsZWFzZV92ZXJzaW9uCiAgICAgICAgIHNvdXJjZV90YXJiYWxsX3BhdGggPSAn
ZGlzdC8lcy50YXIuZ3onICUgc291cmNlX2RpcgotICAgICAgICBwcmludCAnR2VuZXJhdGluZyBz
b3VyY2UgdGFyYmFsbCB0bycsIHNvdXJjZV90YXJiYWxsX3BhdGgKLSAgICAgICAgdGFyYmFsbC5t
YWtlX3RhcmJhbGwoIHNvdXJjZV90YXJiYWxsX3BhdGgsIFtleHBvcnRfZGlyXSwgZXhwb3J0X2Rp
ciwgcHJlZml4X2Rpcj1zb3VyY2VfZGlyICkKKyAgICAgICAgcHJpbnQoJ0dlbmVyYXRpbmcgc291
cmNlIHRhcmJhbGwgdG8nLCBzb3VyY2VfdGFyYmFsbF9wYXRoKQorICAgICAgICB0YXJiYWxsLm1h
a2VfdGFyYmFsbChzb3VyY2VfdGFyYmFsbF9wYXRoLCBbZXhwb3J0X2Rpcl0sIGV4cG9ydF9kaXIs
IHByZWZpeF9kaXI9c291cmNlX2RpcikKIAogICAgICAgICBhbWFsZ2FtYXRpb25fdGFyYmFsbF9w
YXRoID0gJ2Rpc3QvJXMtYW1hbGdhbWF0aW9uLnRhci5neicgJSBzb3VyY2VfZGlyCi0gICAgICAg
IHByaW50ICdHZW5lcmF0aW5nIGFtYWxnYW1hdGlvbiBzb3VyY2UgdGFyYmFsbCB0bycsIGFtYWxn
YW1hdGlvbl90YXJiYWxsX3BhdGgKKyAgICAgICAgcHJpbnQoJ0dlbmVyYXRpbmcgYW1hbGdhbWF0
aW9uIHNvdXJjZSB0YXJiYWxsIHRvJywgYW1hbGdhbWF0aW9uX3RhcmJhbGxfcGF0aCkKICAgICAg
ICAgYW1hbGdhbWF0aW9uX2RpciA9ICdkaXN0L2FtYWxnYW1hdGlvbicKLSAgICAgICAgYW1hbGdh
bWF0ZS5hbWFsZ2FtYXRlX3NvdXJjZSggZXhwb3J0X2RpciwgJyVzL2pzb25jcHAuY3BwJyAlIGFt
YWxnYW1hdGlvbl9kaXIsICdqc29uL2pzb24uaCcgKQorICAgICAgICBhbWFsZ2FtYXRlLmFtYWxn
YW1hdGVfc291cmNlKGV4cG9ydF9kaXIsICclcy9qc29uY3BwLmNwcCcgJSBhbWFsZ2FtYXRpb25f
ZGlyLCAnanNvbi9qc29uLmgnKQogICAgICAgICBhbWFsZ2FtYXRpb25fc291cmNlX2RpciA9ICdq
c29uY3BwLXNyYy1hbWFsZ2FtYXRpb24nICsgcmVsZWFzZV92ZXJzaW9uCi0gICAgICAgIHRhcmJh
bGwubWFrZV90YXJiYWxsKCBhbWFsZ2FtYXRpb25fdGFyYmFsbF9wYXRoLCBbYW1hbGdhbWF0aW9u
X2Rpcl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWFsZ2FtYXRpb25fZGlyLCBw
cmVmaXhfZGlyPWFtYWxnYW1hdGlvbl9zb3VyY2VfZGlyICkKKyAgICAgICAgdGFyYmFsbC5tYWtl
X3RhcmJhbGwoYW1hbGdhbWF0aW9uX3RhcmJhbGxfcGF0aCwgW2FtYWxnYW1hdGlvbl9kaXJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1hbGdhbWF0aW9uX2RpciwgcHJlZml4X2Rp
cj1hbWFsZ2FtYXRpb25fc291cmNlX2RpcikKIAogICAgICAgICAjIERlY29tcHJlc3Mgc291cmNl
IHRhcmJhbGwsIGRvd25sb2FkIGFuZCBpbnN0YWxsIHNjb25zLWxvY2FsCiAgICAgICAgIGRpc3Rj
aGVja19kaXIgPSAnZGlzdC9kaXN0Y2hlY2snCiAgICAgICAgIGRpc3RjaGVja190b3BfZGlyID0g
ZGlzdGNoZWNrX2RpciArICcvJyArIHNvdXJjZV9kaXIKLSAgICAgICAgcHJpbnQgJ0RlY29tcHJl
c3Npbmcgc291cmNlIHRhcmJhbGwgdG8nLCBkaXN0Y2hlY2tfZGlyCi0gICAgICAgIHJtZGlyX2lm
X2V4aXN0KCBkaXN0Y2hlY2tfZGlyICkKLSAgICAgICAgdGFyYmFsbC5kZWNvbXByZXNzKCBzb3Vy
Y2VfdGFyYmFsbF9wYXRoLCBkaXN0Y2hlY2tfZGlyICkKKyAgICAgICAgcHJpbnQoJ0RlY29tcHJl
c3Npbmcgc291cmNlIHRhcmJhbGwgdG8nLCBkaXN0Y2hlY2tfZGlyKQorICAgICAgICBybWRpcl9p
Zl9leGlzdChkaXN0Y2hlY2tfZGlyKQorICAgICAgICB0YXJiYWxsLmRlY29tcHJlc3Moc291cmNl
X3RhcmJhbGxfcGF0aCwgZGlzdGNoZWNrX2RpcikKICAgICAgICAgc2NvbnNfbG9jYWxfcGF0aCA9
ICdkaXN0L3Njb25zLWxvY2FsLnRhci5neicKLSAgICAgICAgcHJpbnQgJ0Rvd25sb2FkaW5nIHNj
b25zLWxvY2FsIHRvJywgc2NvbnNfbG9jYWxfcGF0aAotICAgICAgICBkb3dubG9hZCggU0NPTlNf
TE9DQUxfVVJMLCBzY29uc19sb2NhbF9wYXRoICkKLSAgICAgICAgcHJpbnQgJ0RlY29tcHJlc3Np
bmcgc2NvbnMtbG9jYWwgdG8nLCBkaXN0Y2hlY2tfdG9wX2RpcgotICAgICAgICB0YXJiYWxsLmRl
Y29tcHJlc3MoIHNjb25zX2xvY2FsX3BhdGgsIGRpc3RjaGVja190b3BfZGlyICkKKyAgICAgICAg
cHJpbnQoJ0Rvd25sb2FkaW5nIHNjb25zLWxvY2FsIHRvJywgc2NvbnNfbG9jYWxfcGF0aCkKKyAg
ICAgICAgZG93bmxvYWQoU0NPTlNfTE9DQUxfVVJMLCBzY29uc19sb2NhbF9wYXRoKQorICAgICAg
ICBwcmludCgnRGVjb21wcmVzc2luZyBzY29ucy1sb2NhbCB0bycsIGRpc3RjaGVja190b3BfZGly
KQorICAgICAgICB0YXJiYWxsLmRlY29tcHJlc3Moc2NvbnNfbG9jYWxfcGF0aCwgZGlzdGNoZWNr
X3RvcF9kaXIpCiAKICAgICAgICAgIyBSdW4gY29tcGlsYXRpb24KLSAgICAgICAgcHJpbnQgJ0Nv
bXBpbGluZyBkZWNvbXByZXNzZWQgdGFyYmFsbCcKKyAgICAgICAgcHJpbnQoJ0NvbXBpbGluZyBk
ZWNvbXByZXNzZWQgdGFyYmFsbCcpCiAgICAgICAgIGFsbF9idWlsZF9zdGF0dXMgPSBUcnVlCiAg
ICAgICAgIGZvciBwbGF0Zm9ybSBpbiBvcHRpb25zLnBsYXRmb3Jtcy5zcGxpdCgnLCcpOgotICAg
ICAgICAgICAgcHJpbnQgJ1Rlc3RpbmcgcGxhdGZvcm06JywgcGxhdGZvcm0KLSAgICAgICAgICAg
IGJ1aWxkX3N0YXR1cywgbG9nX3BhdGggPSBjaGVja19jb21waWxlKCBkaXN0Y2hlY2tfdG9wX2Rp
ciwgcGxhdGZvcm0gKQotICAgICAgICAgICAgcHJpbnQgJ3NlZSBidWlsZCBsb2c6JywgbG9nX3Bh
dGgKLSAgICAgICAgICAgIHByaW50IGJ1aWxkX3N0YXR1cyBhbmQgJz0+IG9rJyBvciAnPT4gRkFJ
TEVEJworICAgICAgICAgICAgcHJpbnQoJ1Rlc3RpbmcgcGxhdGZvcm06JywgcGxhdGZvcm0pCisg
ICAgICAgICAgICBidWlsZF9zdGF0dXMsIGxvZ19wYXRoID0gY2hlY2tfY29tcGlsZShkaXN0Y2hl
Y2tfdG9wX2RpciwgcGxhdGZvcm0pCisgICAgICAgICAgICBwcmludCgnc2VlIGJ1aWxkIGxvZzon
LCBsb2dfcGF0aCkKKyAgICAgICAgICAgIHByaW50KGJ1aWxkX3N0YXR1cyBhbmQgJz0+IG9rJyBv
ciAnPT4gRkFJTEVEJykKICAgICAgICAgICAgIGFsbF9idWlsZF9zdGF0dXMgPSBhbGxfYnVpbGRf
c3RhdHVzIGFuZCBidWlsZF9zdGF0dXMKICAgICAgICAgaWYgbm90IGJ1aWxkX3N0YXR1czoKLSAg
ICAgICAgICAgIHByaW50ICdUZXN0aW5nIGZhaWxlZCBvbiBhdCBsZWFzdCBvbmUgcGxhdGZvcm0s
IGFib3J0aW5nLi4uJwotICAgICAgICAgICAgc3ZuX3JlbW92ZV90YWcoIHRhZ191cmwsICdSZW1v
dmluZyB0YWcgZHVlIHRvIGZhaWxlZCB0ZXN0aW5nJyApCisgICAgICAgICAgICBwcmludCgnVGVz
dGluZyBmYWlsZWQgb24gYXQgbGVhc3Qgb25lIHBsYXRmb3JtLCBhYm9ydGluZy4uLicpCisgICAg
ICAgICAgICBzdm5fcmVtb3ZlX3RhZyh0YWdfdXJsLCAnUmVtb3ZpbmcgdGFnIGR1ZSB0byBmYWls
ZWQgdGVzdGluZycpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogICAgICAgICBpZiBvcHRpb25z
LnVzZXI6CiAgICAgICAgICAgICBpZiBub3Qgb3B0aW9ucy5ub193ZWI6Ci0gICAgICAgICAgICAg
ICAgcHJpbnQgJ1VwbG9hZGluZyBkb2N1bWVudGF0aW9uIHVzaW5nIHVzZXInLCBvcHRpb25zLnVz
ZXIKLSAgICAgICAgICAgICAgICBzb3VyY2Vmb3JnZV93ZWJfc3luY2hybyggU09VUkNFRk9SR0Vf
UFJPSkVDVCwgZG9jX2Rpc3RjaGVja190b3BfZGlyLCB1c2VyPW9wdGlvbnMudXNlciwgc2Z0cD1v
cHRpb25zLnNmdHAgKQotICAgICAgICAgICAgICAgIHByaW50ICdDb21wbGV0ZWQgZG9jdW1lbnRh
dGlvbiB1cGxvYWQnCi0gICAgICAgICAgICBwcmludCAnVXBsb2FkaW5nIHNvdXJjZSBhbmQgZG9j
dW1lbnRhdGlvbiB0YXJiYWxscyBmb3IgcmVsZWFzZSB1c2luZyB1c2VyJywgb3B0aW9ucy51c2Vy
Ci0gICAgICAgICAgICBzb3VyY2Vmb3JnZV9yZWxlYXNlX3RhcmJhbGwoIFNPVVJDRUZPUkdFX1BS
T0pFQ1QsCisgICAgICAgICAgICAgICAgcHJpbnQoJ1VwbG9hZGluZyBkb2N1bWVudGF0aW9uIHVz
aW5nIHVzZXInLCBvcHRpb25zLnVzZXIpCisgICAgICAgICAgICAgICAgc291cmNlZm9yZ2Vfd2Vi
X3N5bmNocm8oU09VUkNFRk9SR0VfUFJPSkVDVCwgZG9jX2Rpc3RjaGVja190b3BfZGlyLCB1c2Vy
PW9wdGlvbnMudXNlciwgc2Z0cD1vcHRpb25zLnNmdHApCisgICAgICAgICAgICAgICAgcHJpbnQo
J0NvbXBsZXRlZCBkb2N1bWVudGF0aW9uIHVwbG9hZCcpCisgICAgICAgICAgICBwcmludCgnVXBs
b2FkaW5nIHNvdXJjZSBhbmQgZG9jdW1lbnRhdGlvbiB0YXJiYWxscyBmb3IgcmVsZWFzZSB1c2lu
ZyB1c2VyJywgb3B0aW9ucy51c2VyKQorICAgICAgICAgICAgc291cmNlZm9yZ2VfcmVsZWFzZV90
YXJiYWxsKFNPVVJDRUZPUkdFX1BST0pFQ1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtzb3VyY2VfdGFyYmFsbF9wYXRoLCBkb2NfdGFyYmFsbF9wYXRoXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj1vcHRpb25zLnVzZXIs
IHNmdHA9b3B0aW9ucy5zZnRwICkKLSAgICAgICAgICAgIHByaW50ICdTb3VyY2UgYW5kIGRvYyBy
ZWxlYXNlIHRhcmJhbGxzIHVwbG9hZGVkJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1c2VyPW9wdGlvbnMudXNlciwgc2Z0cD1vcHRpb25zLnNmdHApCisgICAgICAg
ICAgICBwcmludCgnU291cmNlIGFuZCBkb2MgcmVsZWFzZSB0YXJiYWxscyB1cGxvYWRlZCcpCiAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCAnTm8gdXBsb2FkIHVzZXIgc3BlY2lmaWVk
LiBXZWIgc2l0ZSBhbmQgZG93bmxvYWQgdGFyYmFsIHdlcmUgbm90IHVwbG9hZGVkLicKLSAgICAg
ICAgICAgIHByaW50ICdUYXJiYWxsIGNhbiBiZSBmb3VuZCBhdDonLCBkb2NfdGFyYmFsbF9wYXRo
CisgICAgICAgICAgICBwcmludCgnTm8gdXBsb2FkIHVzZXIgc3BlY2lmaWVkLiBXZWIgc2l0ZSBh
bmQgZG93bmxvYWQgdGFyYmFsbCB3ZXJlIG5vdCB1cGxvYWRlZC4nKQorICAgICAgICAgICAgcHJp
bnQoJ1RhcmJhbGwgY2FuIGJlIGZvdW5kIGF0OicsIGRvY190YXJiYWxsX3BhdGgpCiAKICAgICAg
ICAgIyBTZXQgbmV4dCB2ZXJzaW9uIG51bWJlciBhbmQgY29tbWl0ICAgICAgICAgICAgCi0gICAg
ICAgIHNldF92ZXJzaW9uKCBuZXh0X3ZlcnNpb24gKQotICAgICAgICBzdm5fY29tbWl0KCAnUmVs
ZWFzZWQgJyArIHJlbGVhc2VfdmVyc2lvbiApCisgICAgICAgIHNldF92ZXJzaW9uKG5leHRfdmVy
c2lvbikKKyAgICAgICAgc3ZuX2NvbW1pdCgnUmVsZWFzZWQgJyArIHJlbGVhc2VfdmVyc2lvbikK
ICAgICBlbHNlOgotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCBtc2cgKyAnXG4nICkKKyAgICAg
ICAgc3lzLnN0ZGVyci53cml0ZShtc2cgKyAnXG4nKQogIAogaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICBtYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWVzb24uYnVpbGQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21l
c29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZTk0N2M0Y2RmODBlYThlZjc3MTI1ZTNmZTJlMjc5NjAz
ZDhlNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21lc29uLmJ1aWxkCkBAIC0wLDAgKzEsMTE2
IEBACitwcm9qZWN0KAorICAnanNvbmNwcCcsCisgICdjcHAnLAorICB2ZXJzaW9uIDogJzEuOS4w
JywKKyAgZGVmYXVsdF9vcHRpb25zIDogWworICAgICdidWlsZHR5cGU9cmVsZWFzZScsCisgICAg
J2NwcF9zdGQ9YysrMTEnLAorICAgICd3YXJuaW5nX2xldmVsPTEnXSwKKyAgbGljZW5zZSA6ICdQ
dWJsaWMgRG9tYWluJywKKyAgbWVzb25fdmVyc2lvbiA6ICc+PSAwLjUwLjAnKQorCitqc29uY3Bw
X3Zlcl9hcnIgPSBtZXNvbi5wcm9qZWN0X3ZlcnNpb24oKS5zcGxpdCgnLicpCitqc29uY3BwX21h
am9yX3ZlcnNpb24gPSBqc29uY3BwX3Zlcl9hcnJbMF0KK2pzb25jcHBfbWlub3JfdmVyc2lvbiA9
IGpzb25jcHBfdmVyX2FyclsxXQoranNvbmNwcF9wYXRjaF92ZXJzaW9uID0ganNvbmNwcF92ZXJf
YXJyWzJdCisKK2pzb25jcHBfY2RhdGEgPSBjb25maWd1cmF0aW9uX2RhdGEoKQoranNvbmNwcF9j
ZGF0YS5zZXQoJ0pTT05DUFBfVkVSU0lPTicsIG1lc29uLnByb2plY3RfdmVyc2lvbigpKQoranNv
bmNwcF9jZGF0YS5zZXQoJ0pTT05DUFBfVkVSU0lPTl9NQUpPUicsIGpzb25jcHBfbWFqb3JfdmVy
c2lvbikKK2pzb25jcHBfY2RhdGEuc2V0KCdKU09OQ1BQX1ZFUlNJT05fTUlOT1InLCBqc29uY3Bw
X21pbm9yX3ZlcnNpb24pCitqc29uY3BwX2NkYXRhLnNldCgnSlNPTkNQUF9WRVJTSU9OX1BBVENI
JywganNvbmNwcF9wYXRjaF92ZXJzaW9uKQoranNvbmNwcF9jZGF0YS5zZXQoJ0pTT05DUFBfVVNF
X1NFQ1VSRV9NRU1PUlknLDApCisKK2pzb25jcHBfZ2VuX3NvdXJjZXMgPSBjb25maWd1cmVfZmls
ZSgKKyAgaW5wdXQgOiAnc3JjL2xpYl9qc29uL3ZlcnNpb24uaC5pbicsCisgIG91dHB1dCA6ICd2
ZXJzaW9uLmgnLAorICBjb25maWd1cmF0aW9uIDoganNvbmNwcF9jZGF0YSwKKyAgaW5zdGFsbCA6
IHRydWUsCisgIGluc3RhbGxfZGlyIDogam9pbl9wYXRocyhnZXRfb3B0aW9uKCdwcmVmaXgnKSwg
Z2V0X29wdGlvbignaW5jbHVkZWRpcicpLCAnanNvbicpCispCisKK2pzb25jcHBfaGVhZGVycyA9
IFsKKyAgJ2luY2x1ZGUvanNvbi9hbGxvY2F0b3IuaCcsCisgICdpbmNsdWRlL2pzb24vYXNzZXJ0
aW9ucy5oJywKKyAgJ2luY2x1ZGUvanNvbi9hdXRvbGluay5oJywKKyAgJ2luY2x1ZGUvanNvbi9j
b25maWcuaCcsCisgICdpbmNsdWRlL2pzb24vZmVhdHVyZXMuaCcsCisgICdpbmNsdWRlL2pzb24v
Zm9yd2FyZHMuaCcsCisgICdpbmNsdWRlL2pzb24vanNvbi5oJywKKyAgJ2luY2x1ZGUvanNvbi9y
ZWFkZXIuaCcsCisgICdpbmNsdWRlL2pzb24vdmFsdWUuaCcsCisgICdpbmNsdWRlL2pzb24vd3Jp
dGVyLmgnXQoranNvbmNwcF9pbmNsdWRlX2RpcmVjdG9yaWVzID0gaW5jbHVkZV9kaXJlY3Rvcmll
cygnaW5jbHVkZScpCisKK2luc3RhbGxfaGVhZGVycygKKyAganNvbmNwcF9oZWFkZXJzLAorICBz
dWJkaXIgOiAnanNvbicpCisKK2lmIGdldF9vcHRpb24oJ2RlZmF1bHRfbGlicmFyeScpID09ICdz
aGFyZWQnIGFuZCBtZXNvbi5nZXRfY29tcGlsZXIoJ2NwcCcpLmdldF9pZCgpID09ICdtc3ZjJwor
ICBkbGxfZXhwb3J0X2ZsYWcgPSAnLURKU09OX0RMTF9CVUlMRCcKKyAgZGxsX2ltcG9ydF9mbGFn
ID0gJy1ESlNPTl9ETEwnCitlbHNlCisgIGRsbF9leHBvcnRfZmxhZyA9IFtdCisgIGRsbF9pbXBv
cnRfZmxhZyA9IFtdCitlbmRpZgorCitqc29uY3BwX2xpYiA9IGxpYnJhcnkoCisgICdqc29uY3Bw
JywKKyAgWyBqc29uY3BwX2dlbl9zb3VyY2VzLAorICAgIGpzb25jcHBfaGVhZGVycywKKyAgICAn
c3JjL2xpYl9qc29uL2pzb25fdG9vbC5oJywKKyAgICAnc3JjL2xpYl9qc29uL2pzb25fcmVhZGVy
LmNwcCcsCisgICAgJ3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcCcsCisgICAgJ3NyYy9saWJf
anNvbi9qc29uX3dyaXRlci5jcHAnXSwKKyAgc292ZXJzaW9uIDogMjEsCisgIGluc3RhbGwgOiB0
cnVlLAorICBpbmNsdWRlX2RpcmVjdG9yaWVzIDoganNvbmNwcF9pbmNsdWRlX2RpcmVjdG9yaWVz
LAorICBjcHBfYXJnczogZGxsX2V4cG9ydF9mbGFnKQorCitpbXBvcnQoJ3BrZ2NvbmZpZycpLmdl
bmVyYXRlKAorICBsaWJyYXJpZXMgOiBqc29uY3BwX2xpYiwKKyAgdmVyc2lvbiA6IG1lc29uLnBy
b2plY3RfdmVyc2lvbigpLAorICBuYW1lIDogJ2pzb25jcHAnLAorICBmaWxlYmFzZSA6ICdqc29u
Y3BwJywKKyAgZGVzY3JpcHRpb24gOiAnQSBDKysgbGlicmFyeSBmb3IgaW50ZXJhY3Rpbmcgd2l0
aCBKU09OJykKKworIyBmb3IgbGlicmFyaWVzIGJ1bmRsaW5nIGpzb25jcHAKK2pzb25jcHBfZGVw
ID0gZGVjbGFyZV9kZXBlbmRlbmN5KAorICBpbmNsdWRlX2RpcmVjdG9yaWVzIDoganNvbmNwcF9p
bmNsdWRlX2RpcmVjdG9yaWVzLAorICBsaW5rX3dpdGggOiBqc29uY3BwX2xpYiwKKyAgdmVyc2lv
biA6IG1lc29uLnByb2plY3RfdmVyc2lvbigpLAorICBzb3VyY2VzIDoganNvbmNwcF9nZW5fc291
cmNlcykKKworIyB0ZXN0cworcHl0aG9uID0gaW1wb3J0KCdweXRob24zJykuZmluZF9weXRob24o
KQorCitqc29uY3BwX3Rlc3QgPSBleGVjdXRhYmxlKAorICAnanNvbmNwcF90ZXN0JywKKyAgWyAn
c3JjL3Rlc3RfbGliX2pzb24vanNvbnRlc3QuY3BwJywKKyAgICAnc3JjL3Rlc3RfbGliX2pzb24v
anNvbnRlc3QuaCcsCisgICAgJ3NyYy90ZXN0X2xpYl9qc29uL21haW4uY3BwJywKKyAgICAnc3Jj
L3Rlc3RfbGliX2pzb24vZnV6ei5jcHAnXSwKKyAgaW5jbHVkZV9kaXJlY3RvcmllcyA6IGpzb25j
cHBfaW5jbHVkZV9kaXJlY3RvcmllcywKKyAgbGlua193aXRoIDoganNvbmNwcF9saWIsCisgIGlu
c3RhbGwgOiBmYWxzZSwKKyAgY3BwX2FyZ3M6IGRsbF9pbXBvcnRfZmxhZykKK3Rlc3QoCisgICd1
bml0dGVzdF9qc29uY3BwX3Rlc3QnLAorICBqc29uY3BwX3Rlc3QpCisKK2pzb250ZXN0cnVubmVy
ID0gZXhlY3V0YWJsZSgKKyAgJ2pzb250ZXN0cnVubmVyJywKKyAgJ3NyYy9qc29udGVzdHJ1bm5l
ci9tYWluLmNwcCcsCisgIGluY2x1ZGVfZGlyZWN0b3JpZXMgOiBqc29uY3BwX2luY2x1ZGVfZGly
ZWN0b3JpZXMsCisgIGxpbmtfd2l0aCA6IGpzb25jcHBfbGliLAorICBpbnN0YWxsIDogZmFsc2Us
CisgIGNwcF9hcmdzOiBkbGxfaW1wb3J0X2ZsYWcpCit0ZXN0KAorICAndW5pdHRlc3RfanNvbnRl
c3RydW5uZXInLAorICBweXRob24sCisgIGFyZ3MgOiBbCisgICAgJy1CJywKKyAgICBqb2luX3Bh
dGhzKG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLCAndGVzdC9ydW5qc29udGVzdHMucHknKSwK
KyAgICBqc29udGVzdHJ1bm5lciwKKyAgICBqb2luX3BhdGhzKG1lc29uLmN1cnJlbnRfc291cmNl
X2RpcigpLCAndGVzdC9kYXRhJyldCisgICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvcGtnLWNvbmZpZy9q
c29uY3BwLnBjLmluIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9wa2ctY29uZmlnL2pzb25jcHAucGMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGVhNTFmNTEyNWEyZDc1ZGZjNTZjYTJkNDY2MTI3NTRmYjI0YWNmOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvcGtnLWNvbmZpZy9qc29uY3BwLnBjLmluCkBAIC0wLDAgKzEsOSBAQAorbGliZGly
PUBDTUFLRV9JTlNUQUxMX0ZVTExfTElCRElSQAoraW5jbHVkZWRpcj1AQ01BS0VfSU5TVEFMTF9G
VUxMX0lOQ0xVREVESVJACisKK05hbWU6IGpzb25jcHAKK0Rlc2NyaXB0aW9uOiBBIEMrKyBsaWJy
YXJ5IGZvciBpbnRlcmFjdGluZyB3aXRoIEpTT04KK1ZlcnNpb246IEBKU09OQ1BQX1ZFUlNJT05A
CitVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAKK0xp
YnM6IC1MJHtsaWJkaXJ9IC1sanNvbmNwcAorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvZ2xvYnRvb2wucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL2ds
b2J0b29sLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTExNDBlOGFhYjYyMGU0
NGQ5YWVlYThjNTA5YTU2NzMwZjgwOTY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvZ2xvYnRvb2wucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw1MyArMCwwIEBACi1pbXBvcnQgZm5tYXRjaAotaW1wb3J0IG9zCi0KLWRlZiBnZW5l
cmF0ZSggZW52ICk6IAotICAgZGVmIEdsb2IoIGVudiwgaW5jbHVkZXMgPSBOb25lLCBleGNsdWRl
cyA9IE5vbmUsIGRpciA9ICcuJyApOgotICAgICAgIiIiQWRkcyBHbG9iKCBpbmNsdWRlcyA9IFNw
bGl0KCAnKicgKSwgZXhjbHVkZXMgPSBOb25lLCBkaXIgPSAnLicpCi0gICAgICAgaGVscGVyIGZ1
bmN0aW9uIHRvIGVudmlyb25tZW50LgotCi0gICAgICAgR2xvYiBib3RoIHRoZSBmaWxlLXN5c3Rl
bSBmaWxlcy4KLQotICAgICAgIGluY2x1ZGVzOiBsaXN0IG9mIGZpbGUgbmFtZSBwYXR0ZXJuIGlu
Y2x1ZGVkIGluIHRoZSByZXR1cm4gbGlzdCB3aGVuIG1hdGNoZWQuCi0gICAgICAgZXhjbHVkZXM6
IGxpc3Qgb2YgZmlsZSBuYW1lIHBhdHRlcm4gZXhsdWNlZCBmcm9tIHRoZSByZXR1cm4gbGlzdC4K
LQotICAgICAgIEV4YW1wbGU6Ci0gICAgICAgc291cmNlcyA9IGVudi5HbG9iKCAoIiouY3BwIiwg
JyouaCcpLCAifiouY3BwIiwgIiNzcmMiICkKLSAgICAgICIiIgotICAgICAgZGVmIGZpbHRlckZp
bGVuYW1lKHBhdGgpOgotICAgICAgICAgYWJzX3BhdGggPSBvcy5wYXRoLmpvaW4oIGRpciwgcGF0
aCApCi0gICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoYWJzX3BhdGgpOgotICAgICAgICAg
ICAgcmV0dXJuIDAKLSAgICAgICAgIGZuID0gb3MucGF0aC5iYXNlbmFtZShwYXRoKQotICAgICAg
ICAgbWF0Y2ggPSAwCi0gICAgICAgICBmb3IgaW5jbHVkZSBpbiBpbmNsdWRlczoKLSAgICAgICAg
ICAgIGlmIGZubWF0Y2guZm5tYXRjaGNhc2UoIGZuLCBpbmNsdWRlICk6Ci0gICAgICAgICAgICAg
ICBtYXRjaCA9IDEKLSAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICBpZiBtYXRjaCA9PSAx
IGFuZCBub3QgZXhjbHVkZXMgaXMgTm9uZToKLSAgICAgICAgICAgIGZvciBleGNsdWRlIGluIGV4
Y2x1ZGVzOgotICAgICAgICAgICAgICAgaWYgZm5tYXRjaC5mbm1hdGNoY2FzZSggZm4sIGV4Y2x1
ZGUgKToKLSAgICAgICAgICAgICAgICAgIG1hdGNoID0gMAotICAgICAgICAgICAgICAgICAgYnJl
YWsKLSAgICAgICAgIHJldHVybiBtYXRjaAotICAgICAgaWYgaW5jbHVkZXMgaXMgTm9uZToKLSAg
ICAgICAgIGluY2x1ZGVzID0gKCcqJywpCi0gICAgICBlbGlmIHR5cGUoaW5jbHVkZXMpIGluICgg
dHlwZSgnJyksIHR5cGUodScnKSApOgotICAgICAgICAgaW5jbHVkZXMgPSAoaW5jbHVkZXMsKQot
ICAgICAgaWYgdHlwZShleGNsdWRlcykgaW4gKCB0eXBlKCcnKSwgdHlwZSh1JycpICk6Ci0gICAg
ICAgICBleGNsdWRlcyA9IChleGNsdWRlcywpCi0gICAgICBkaXIgPSBlbnYuRGlyKGRpcikuYWJz
cGF0aAotICAgICAgcGF0aHMgPSBvcy5saXN0ZGlyKCBkaXIgKQotICAgICAgZGVmIG1ha2VBYnNG
aWxlTm9kZSggcGF0aCApOgotICAgICAgICAgcmV0dXJuIGVudi5GaWxlKCBvcy5wYXRoLmpvaW4o
IGRpciwgcGF0aCApICkKLSAgICAgIG5vZGVzID0gZmlsdGVyKCBmaWx0ZXJGaWxlbmFtZSwgcGF0
aHMgKQotICAgICAgcmV0dXJuIG1hcCggbWFrZUFic0ZpbGVOb2RlLCBub2RlcyApCi0KLSAgIGZy
b20gU0NvbnMuU2NyaXB0IGltcG9ydCBFbnZpcm9ubWVudAotICAgRW52aXJvbm1lbnQuR2xvYiA9
IEdsb2IKLQotZGVmIGV4aXN0cyhlbnYpOgotICAgICIiIgotICAgIFRvb2wgYWx3YXlzIGV4aXN0
cy4KLSAgICAiIiIKLSAgICByZXR1cm4gVHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zY29ucy10b29s
cy9zcmNkaXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9zY29ucy10b29scy9zcmNkaXN0LnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4NjRmZjQwODE1ODBlZDE1YTA1NjRmNGJjZjBlMWIzN2VkZGUzN2Rj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc2Nv
bnMtdG9vbHMvc3JjZGlzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi1pbXBv
cnQgb3MKLWltcG9ydCBvcy5wYXRoCi1mcm9tIGZubWF0Y2ggaW1wb3J0IGZubWF0Y2gKLWltcG9y
dCB0YXJnegotCi0jI2RlZiBEb3h5ZmlsZVBhcnNlKGZpbGVfY29udGVudHMpOgotIyMgICAiIiIK
LSMjICAgUGFyc2UgYSBEb3h5Z2VuIHNvdXJjZSBmaWxlIGFuZCByZXR1cm4gYSBkaWN0aW9uYXJ5
IG9mIGFsbCB0aGUgdmFsdWVzLgotIyMgICBWYWx1ZXMgd2lsbCBiZSBzdHJpbmdzIGFuZCBsaXN0
cyBvZiBzdHJpbmdzLgotIyMgICAiIiIKLSMjICAgZGF0YSA9IHt9Ci0jIwotIyMgICBpbXBvcnQg
c2hsZXgKLSMjICAgbGV4ID0gc2hsZXguc2hsZXgoaW5zdHJlYW0gPSBmaWxlX2NvbnRlbnRzLCBw
b3NpeCA9IFRydWUpCi0jIyAgIGxleC53b3JkY2hhcnMgKz0gIiorLi8tOiIKLSMjICAgbGV4Lndo
aXRlc3BhY2UgPSBsZXgud2hpdGVzcGFjZS5yZXBsYWNlKCJcbiIsICIiKQotIyMgICBsZXguZXNj
YXBlID0gIiIKLSMjCi0jIyAgIGxpbmVubyA9IGxleC5saW5lbm8KLSMjICAgbGFzdF9iYWNrc2xh
c2hfbGluZW5vID0gbGluZW5vCi0jIyAgIHRva2VuID0gbGV4LmdldF90b2tlbigpCi0jIyAgIGtl
eSA9IHRva2VuICAgIyB0aGUgZmlyc3QgdG9rZW4gc2hvdWxkIGJlIGEga2V5Ci0jIyAgIGxhc3Rf
dG9rZW4gPSAiIgotIyMgICBrZXlfdG9rZW4gPSBGYWxzZQotIyMgICBuZXh0X2tleSA9IEZhbHNl
Ci0jIyAgIG5ld19kYXRhID0gVHJ1ZQotIyMKLSMjICAgZGVmIGFwcGVuZF9kYXRhKGRhdGEsIGtl
eSwgbmV3X2RhdGEsIHRva2VuKToKLSMjICAgICAgaWYgbmV3X2RhdGEgb3IgbGVuKGRhdGFba2V5
XSkgPT0gMDoKLSMjICAgICAgICAgZGF0YVtrZXldLmFwcGVuZCh0b2tlbikKLSMjICAgICAgZWxz
ZToKLSMjICAgICAgICAgZGF0YVtrZXldWy0xXSArPSB0b2tlbgotIyMKLSMjICAgd2hpbGUgdG9r
ZW46Ci0jIyAgICAgIGlmIHRva2VuIGluIFsnXG4nXToKLSMjICAgICAgICAgaWYgbGFzdF90b2tl
biBub3QgaW4gWydcXCddOgotIyMgICAgICAgICAgICBrZXlfdG9rZW4gPSBUcnVlCi0jIyAgICAg
IGVsaWYgdG9rZW4gaW4gWydcXCddOgotIyMgICAgICAgICBwYXNzCi0jIyAgICAgIGVsaWYga2V5
X3Rva2VuOgotIyMgICAgICAgICBrZXkgPSB0b2tlbgotIyMgICAgICAgICBrZXlfdG9rZW4gPSBG
YWxzZQotIyMgICAgICBlbHNlOgotIyMgICAgICAgICBpZiB0b2tlbiA9PSAiKz0iOgotIyMgICAg
ICAgICAgICBpZiBub3QgZGF0YS5oYXNfa2V5KGtleSk6Ci0jIyAgICAgICAgICAgICAgIGRhdGFb
a2V5XSA9IGxpc3QoKQotIyMgICAgICAgICBlbGlmIHRva2VuID09ICI9IjoKLSMjICAgICAgICAg
ICAgZGF0YVtrZXldID0gbGlzdCgpCi0jIyAgICAgICAgIGVsc2U6Ci0jIyAgICAgICAgICAgIGFw
cGVuZF9kYXRhKCBkYXRhLCBrZXksIG5ld19kYXRhLCB0b2tlbiApCi0jIyAgICAgICAgICAgIG5l
d19kYXRhID0gVHJ1ZQotIyMKLSMjICAgICAgbGFzdF90b2tlbiA9IHRva2VuCi0jIyAgICAgIHRv
a2VuID0gbGV4LmdldF90b2tlbigpCi0jIyAgICAgIAotIyMgICAgICBpZiBsYXN0X3Rva2VuID09
ICdcXCcgYW5kIHRva2VuICE9ICdcbic6Ci0jIyAgICAgICAgIG5ld19kYXRhID0gRmFsc2UKLSMj
ICAgICAgICAgYXBwZW5kX2RhdGEoIGRhdGEsIGtleSwgbmV3X2RhdGEsICdcXCcgKQotIyMKLSMj
ICAgIyBjb21wcmVzcyBsaXN0cyBvZiBsZW4gMSBpbnRvIHNpbmdsZSBzdHJpbmdzCi0jIyAgIGZv
ciAoaywgdikgaW4gZGF0YS5pdGVtcygpOgotIyMgICAgICBpZiBsZW4odikgPT0gMDoKLSMjICAg
ICAgICAgZGF0YS5wb3AoaykKLSMjCi0jIyAgICAgICMgaXRlbXMgaW4gdGhlIGZvbGxvd2luZyBs
aXN0IHdpbGwgYmUga2VwdCBhcyBsaXN0cyBhbmQgbm90IGNvbnZlcnRlZCB0byBzdHJpbmdzCi0j
IyAgICAgIGlmIGsgaW4gWyJJTlBVVCIsICJGSUxFX1BBVFRFUk5TIiwgIkVYQ0xVREVfUEFUVEVS
TlMiXToKLSMjICAgICAgICAgY29udGludWUKLSMjCi0jIyAgICAgIGlmIGxlbih2KSA9PSAxOgot
IyMgICAgICAgICBkYXRhW2tdID0gdlswXQotIyMKLSMjICAgcmV0dXJuIGRhdGEKLSMjCi0jI2Rl
ZiBEb3h5U291cmNlU2Nhbihub2RlLCBlbnYsIHBhdGgpOgotIyMgICAiIiIKLSMjICAgRG94eWdl
biBEb3h5ZmlsZSBzb3VyY2Ugc2Nhbm5lci4gIFRoaXMgc2hvdWxkIHNjYW4gdGhlIERveHlnZW4g
ZmlsZSBhbmQgYWRkCi0jIyAgIGFueSBmaWxlcyB1c2VkIHRvIGdlbmVyYXRlIGRvY3MgdG8gdGhl
IGxpc3Qgb2Ygc291cmNlIGZpbGVzLgotIyMgICAiIiIKLSMjICAgZGVmYXVsdF9maWxlX3BhdHRl
cm5zID0gWwotIyMgICAgICAnKi5jJywgJyouY2MnLCAnKi5jeHgnLCAnKi5jcHAnLCAnKi5jKysn
LCAnKi5qYXZhJywgJyouaWknLCAnKi5peHgnLAotIyMgICAgICAnKi5pcHAnLCAnKi5pKysnLCAn
Ki5pbmwnLCAnKi5oJywgJyouaGggJywgJyouaHh4JywgJyouaHBwJywgJyouaCsrJywKLSMjICAg
ICAgJyouaWRsJywgJyoub2RsJywgJyouY3MnLCAnKi5waHAnLCAnKi5waHAzJywgJyouaW5jJywg
JyoubScsICcqLm1tJywKLSMjICAgICAgJyoucHknLAotIyMgICBdCi0jIwotIyMgICBkZWZhdWx0
X2V4Y2x1ZGVfcGF0dGVybnMgPSBbCi0jIyAgICAgICcqficsCi0jIyAgIF0KLSMjCi0jIyAgIHNv
dXJjZXMgPSBbXQotIyMKLSMjICAgZGF0YSA9IERveHlmaWxlUGFyc2Uobm9kZS5nZXRfY29udGVu
dHMoKSkKLSMjCi0jIyAgIGlmIGRhdGEuZ2V0KCJSRUNVUlNJVkUiLCAiTk8iKSA9PSAiWUVTIjoK
LSMjICAgICAgcmVjdXJzaXZlID0gVHJ1ZQotIyMgICBlbHNlOgotIyMgICAgICByZWN1cnNpdmUg
PSBGYWxzZQotIyMKLSMjICAgZmlsZV9wYXR0ZXJucyA9IGRhdGEuZ2V0KCJGSUxFX1BBVFRFUk5T
IiwgZGVmYXVsdF9maWxlX3BhdHRlcm5zKQotIyMgICBleGNsdWRlX3BhdHRlcm5zID0gZGF0YS5n
ZXQoIkVYQ0xVREVfUEFUVEVSTlMiLCBkZWZhdWx0X2V4Y2x1ZGVfcGF0dGVybnMpCi0jIwotIyMg
ICBmb3Igbm9kZSBpbiBkYXRhLmdldCgiSU5QVVQiLCBbXSk6Ci0jIyAgICAgIGlmIG9zLnBhdGgu
aXNmaWxlKG5vZGUpOgotIyMgICAgICAgICBzb3VyY2VzLmFkZChub2RlKQotIyMgICAgICBlbGlm
IG9zLnBhdGguaXNkaXIobm9kZSk6Ci0jIyAgICAgICAgIGlmIHJlY3Vyc2l2ZToKLSMjICAgICAg
ICAgICAgZm9yIHJvb3QsIGRpcnMsIGZpbGVzIGluIG9zLndhbGsobm9kZSk6Ci0jIyAgICAgICAg
ICAgICAgIGZvciBmIGluIGZpbGVzOgotIyMgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IG9z
LnBhdGguam9pbihyb290LCBmKQotIyMKLSMjICAgICAgICAgICAgICAgICAgcGF0dGVybl9jaGVj
ayA9IHJlZHVjZShsYW1iZGEgeCwgeTogeCBvciBib29sKGZubWF0Y2goZmlsZW5hbWUsIHkpKSwg
ZmlsZV9wYXR0ZXJucywgRmFsc2UpCi0jIyAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVfY2hlY2sg
PSByZWR1Y2UobGFtYmRhIHgsIHk6IHggYW5kIGZubWF0Y2goZmlsZW5hbWUsIHkpLCBleGNsdWRl
X3BhdHRlcm5zLCBUcnVlKQotIyMKLSMjICAgICAgICAgICAgICAgICAgaWYgcGF0dGVybl9jaGVj
ayBhbmQgbm90IGV4Y2x1ZGVfY2hlY2s6Ci0jIyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZXMu
YXBwZW5kKGZpbGVuYW1lKQotIyMgICAgICAgICBlbHNlOgotIyMgICAgICAgICAgICBmb3IgcGF0
dGVybiBpbiBmaWxlX3BhdHRlcm5zOgotIyMgICAgICAgICAgICAgICBzb3VyY2VzLmV4dGVuZChn
bG9iLmdsb2IoIi8iLmpvaW4oW25vZGUsIHBhdHRlcm5dKSkpCi0jIyAgIHNvdXJjZXMgPSBtYXAo
IGxhbWJkYSBwYXRoOiBlbnYuRmlsZShwYXRoKSwgc291cmNlcyApCi0jIyAgIHJldHVybiBzb3Vy
Y2VzCi0jIwotIyMKLSMjZGVmIERveHlTb3VyY2VTY2FuQ2hlY2sobm9kZSwgZW52KToKLSMjICAg
IiIiQ2hlY2sgaWYgd2Ugc2hvdWxkIHNjYW4gdGhpcyBmaWxlIiIiCi0jIyAgIHJldHVybiBvcy5w
YXRoLmlzZmlsZShub2RlLnBhdGgpCi0KLWRlZiBzcmNEaXN0RW1pdHRlcihzb3VyY2UsIHRhcmdl
dCwgZW52KToKLSMjICAgIiIiRG94eWdlbiBEb3h5ZmlsZSBlbWl0dGVyIiIiCi0jIyAgICMgcG9z
c2libGUgb3V0cHV0IGZvcm1hdHMgYW5kIHRoZWlyIGRlZmF1bHQgdmFsdWVzIGFuZCBvdXRwdXQg
bG9jYXRpb25zCi0jIyAgIG91dHB1dF9mb3JtYXRzID0gewotIyMgICAgICAiSFRNTCI6ICgiWUVT
IiwgImh0bWwiKSwKLSMjICAgICAgIkxBVEVYIjogKCJZRVMiLCAibGF0ZXgiKSwKLSMjICAgICAg
IlJURiI6ICgiTk8iLCAicnRmIiksCi0jIyAgICAgICJNQU4iOiAoIllFUyIsICJtYW4iKSwKLSMj
ICAgICAgIlhNTCI6ICgiTk8iLCAieG1sIiksCi0jIyAgIH0KLSMjCi0jIyAgIGRhdGEgPSBEb3h5
ZmlsZVBhcnNlKHNvdXJjZVswXS5nZXRfY29udGVudHMoKSkKLSMjCi0jIyAgIHRhcmdldHMgPSBb
XQotIyMgICBvdXRfZGlyID0gZGF0YS5nZXQoIk9VVFBVVF9ESVJFQ1RPUlkiLCAiLiIpCi0jIwot
IyMgICAjIGFkZCBvdXIgb3V0cHV0IGxvY2F0aW9ucwotIyMgICBmb3IgKGssIHYpIGluIG91dHB1
dF9mb3JtYXRzLml0ZW1zKCk6Ci0jIyAgICAgIGlmIGRhdGEuZ2V0KCJHRU5FUkFURV8iICsgaywg
dlswXSkgPT0gIllFUyI6Ci0jIyAgICAgICAgIHRhcmdldHMuYXBwZW5kKGVudi5EaXIoIG9zLnBh
dGguam9pbihvdXRfZGlyLCBkYXRhLmdldChrICsgIl9PVVRQVVQiLCB2WzFdKSkpICkKLSMjCi0j
IyAgICMgZG9uJ3QgY2xvYmJlciB0YXJnZXRzCi0jIyAgIGZvciBub2RlIGluIHRhcmdldHM6Ci0j
IyAgICAgIGVudi5QcmVjaW91cyhub2RlKQotIyMKLSMjICAgIyBzZXQgdXAgY2xlYW5pbmcgc3R1
ZmYKLSMjICAgZm9yIG5vZGUgaW4gdGFyZ2V0czoKLSMjICAgICAgZW52LkNsZWFuKG5vZGUsIG5v
ZGUpCi0jIwotIyMgICByZXR1cm4gKHRhcmdldHMsIHNvdXJjZSkKLSAgIHJldHVybiAodGFyZ2V0
LHNvdXJjZSkKLQotZGVmIGdlbmVyYXRlKGVudik6Ci0gICAiIiIKLSAgIEFkZCBidWlsZGVycyBh
bmQgY29uc3RydWN0aW9uIHZhcmlhYmxlcyBmb3IgdGhlCi0gICBTcmNEaXN0IHRvb2wuCi0gICAi
IiIKLSMjICAgZG94eWZpbGVfc2Nhbm5lciA9IGVudi5TY2FubmVyKAotIyMgICAgICBEb3h5U291
cmNlU2NhbiwKLSMjICAgICAgIkRveHlTb3VyY2VTY2FuIiwKLSMjICAgICAgc2Nhbl9jaGVjayA9
IERveHlTb3VyY2VTY2FuQ2hlY2ssCi0jIyAgICkKLQotICAgaWYgdGFyZ3ouZXhpc3RzKGVudik6
Ci0gICAgICBzcmNkaXN0X2J1aWxkZXIgPSB0YXJnei5tYWtlQnVpbGRlciggc3JjRGlzdEVtaXR0
ZXIgKQotCi0gICAgICBlbnZbJ0JVSUxERVJTJ11bJ1NyY0Rpc3QnXSA9IHNyY2Rpc3RfYnVpbGRl
cgotCi1kZWYgZXhpc3RzKGVudik6Ci0gICAiIiIKLSAgIE1ha2Ugc3VyZSBzcmNkaXN0IGV4aXN0
cy4KLSAgICIiIgotICAgcmV0dXJuIHRhcmd6LmV4aXN0cyhlbnYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Njb25zLXRvb2xzL3N1YnN0aW5maWxlLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zY29ucy10b29scy9zdWJzdGluZmls
ZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQzMDU4NTFiYjBiYTA3NzM1MWRm
YzIyNTU0NjE0YzUzYzZjNDExYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL3N1YnN0aW5maWxlLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsNzkgKzAsMCBAQAotaW1wb3J0IHJlCi1mcm9tIFNDb25zLlNjcmlwdCBpbXBvcnQgKiAg
IyB0aGUgdXN1YWwgc2NvbnMgc3R1ZmYgeW91IGdldCBpbiBhIFNDb25zY3JpcHQKLQotZGVmIGdl
bmVyYXRlKGVudik6Ci0gICAgIiIiCi0gICAgQWRkIGJ1aWxkZXJzIGFuZCBjb25zdHJ1Y3Rpb24g
dmFyaWFibGVzIGZvciB0aGUKLSAgICBTdWJzdEluRmlsZSB0b29sLgotCi0gICAgQWRkcyBTdWJz
dEluRmlsZSBidWlsZGVyLCB3aGljaCBzdWJzdGl0dXRlcyB0aGUga2V5cy0+dmFsdWVzIG9mIFNV
QlNUX0RJQ1QKLSAgICBmcm9tIHRoZSBzb3VyY2UgdG8gdGhlIHRhcmdldC4KLSAgICBUaGUgdmFs
dWVzIG9mIFNVQlNUX0RJQ1QgZmlyc3QgaGF2ZSBhbnkgY29uc3RydWN0aW9uIHZhcmlhYmxlcyBl
eHBhbmRlZAotICAgIChpdHMga2V5cyBhcmUgbm90IGV4cGFuZGVkKS4KLSAgICBJZiBhIHZhbHVl
IG9mIFNVQlNUX0RJQ1QgaXMgYSBweXRob24gY2FsbGFibGUgZnVuY3Rpb24sIGl0IGlzIGNhbGxl
ZCBhbmQKLSAgICB0aGUgcmVzdWx0IGlzIGV4cGFuZGVkIGFzIHRoZSB2YWx1ZS4KLSAgICBJZiB0
aGVyZSdzIG1vcmUgdGhhbiBvbmUgc291cmNlIGFuZCBtb3JlIHRoYW4gb25lIHRhcmdldCwgZWFj
aCB0YXJnZXQgZ2V0cwotICAgIHN1YnN0aXR1dGVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgc291
cmNlLgotICAgICIiIgotICAgIGRlZiBkb19zdWJzdF9pbl9maWxlKHRhcmdldGZpbGUsIHNvdXJj
ZWZpbGUsIGRpY3QpOgotICAgICAgICAiIiJSZXBsYWNlIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGtl
eXMgb2YgZGljdCB3aXRoIHRoZWlyIHZhbHVlcy4KLSAgICAgICAgRm9yIGV4YW1wbGUsIGlmIGRp
Y3QgaXMgeyclVkVSU0lPTiUnOiAnMS4yMzQ1JywgJyVCQVNFJSc6ICdNeVByb2cnfSwKLSAgICAg
ICAgdGhlbiBhbGwgaW5zdGFuY2VzIG9mICVWRVJTSU9OJSBpbiB0aGUgZmlsZSB3aWxsIGJlIHJl
cGxhY2VkIHdpdGggMS4yMzQ1IGV0Yy4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGYgPSBvcGVuKHNvdXJjZWZpbGUsICdyYicpCi0gICAgICAgICAgICBjb250ZW50cyA9
IGYucmVhZCgpCi0gICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgZXhjZXB0OgotICAgICAg
ICAgICAgcmFpc2UgU0NvbnMuRXJyb3JzLlVzZXJFcnJvciwgIkNhbid0IHJlYWQgc291cmNlIGZp
bGUgJXMiJXNvdXJjZWZpbGUKLSAgICAgICAgZm9yIChrLHYpIGluIGRpY3QuaXRlbXMoKToKLSAg
ICAgICAgICAgIGNvbnRlbnRzID0gcmUuc3ViKGssIHYsIGNvbnRlbnRzKQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBmID0gb3Blbih0YXJnZXRmaWxlLCAnd2InKQotICAgICAgICAgICAgZi53
cml0ZShjb250ZW50cykKLSAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICBleGNlcHQ6Ci0g
ICAgICAgICAgICByYWlzZSBTQ29ucy5FcnJvcnMuVXNlckVycm9yLCAiQ2FuJ3Qgd3JpdGUgdGFy
Z2V0IGZpbGUgJXMiJXRhcmdldGZpbGUKLSAgICAgICAgcmV0dXJuIDAgIyBzdWNjZXNzCi0KLSAg
ICBkZWYgc3Vic3RfaW5fZmlsZSh0YXJnZXQsIHNvdXJjZSwgZW52KToKLSAgICAgICAgaWYgbm90
IGVudi5oYXNfa2V5KCdTVUJTVF9ESUNUJyk6Ci0gICAgICAgICAgICByYWlzZSBTQ29ucy5FcnJv
cnMuVXNlckVycm9yLCAiU3Vic3RJbkZpbGUgcmVxdWlyZXMgU1VCU1RfRElDVCB0byBiZSBzZXQu
IgotICAgICAgICBkID0gZGljdChlbnZbJ1NVQlNUX0RJQ1QnXSkgIyBjb3B5IGl0Ci0gICAgICAg
IGZvciAoayx2KSBpbiBkLml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBjYWxsYWJsZSh2KToKLSAg
ICAgICAgICAgICAgICBkW2tdID0gZW52LnN1YnN0KHYoKSkucmVwbGFjZSgnXFwnLCdcXFxcJykK
LSAgICAgICAgICAgIGVsaWYgU0NvbnMuVXRpbC5pc19TdHJpbmcodik6Ci0gICAgICAgICAgICAg
ICAgZFtrXSA9IGVudi5zdWJzdCh2KS5yZXBsYWNlKCdcXCcsJ1xcXFwnKQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBTQ29ucy5FcnJvcnMuVXNlckVycm9yLCAiU3Vi
c3RJbkZpbGU6IGtleSAlczogJXMgbXVzdCBiZSBhIHN0cmluZyBvciBjYWxsYWJsZSIlKGssIHJl
cHIodikpCi0gICAgICAgIGZvciAodCxzKSBpbiB6aXAodGFyZ2V0LCBzb3VyY2UpOgotICAgICAg
ICAgICAgcmV0dXJuIGRvX3N1YnN0X2luX2ZpbGUoc3RyKHQpLCBzdHIocyksIGQpCi0KLSAgICBk
ZWYgc3Vic3RfaW5fZmlsZV9zdHJpbmcodGFyZ2V0LCBzb3VyY2UsIGVudik6Ci0gICAgICAgICIi
IlRoaXMgaXMgd2hhdCBnZXRzIHByaW50ZWQgb24gdGhlIGNvbnNvbGUuIiIiCi0gICAgICAgIHJl
dHVybiAnXG4nLmpvaW4oWydTdWJzdGl0dXRpbmcgdmFycyBmcm9tICVzIGludG8gJXMnJShzdHIo
cyksIHN0cih0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh0LHMpIGluIHppcCh0
YXJnZXQsIHNvdXJjZSldKQotCi0gICAgZGVmIHN1YnN0X2VtaXR0ZXIodGFyZ2V0LCBzb3VyY2Us
IGVudik6Ci0gICAgICAgICIiIkFkZCBkZXBlbmRlbmN5IGZyb20gc3Vic3RpdHV0ZWQgU1VCU1Rf
RElDVCB0byB0YXJnZXQuCi0gICAgICAgIFJldHVybnMgb3JpZ2luYWwgdGFyZ2V0LCBzb3VyY2Ug
dHVwbGUgdW5jaGFuZ2VkLgotICAgICAgICAiIiIKLSAgICAgICAgZCA9IGVudlsnU1VCU1RfRElD
VCddLmNvcHkoKSAjIGNvcHkgaXQKLSAgICAgICAgZm9yIChrLHYpIGluIGQuaXRlbXMoKToKLSAg
ICAgICAgICAgIGlmIGNhbGxhYmxlKHYpOgotICAgICAgICAgICAgICAgIGRba10gPSBlbnYuc3Vi
c3QodigpKQotICAgICAgICAgICAgZWxpZiBTQ29ucy5VdGlsLmlzX1N0cmluZyh2KToKLSAgICAg
ICAgICAgICAgICBkW2tdPWVudi5zdWJzdCh2KQotICAgICAgICBEZXBlbmRzKHRhcmdldCwgU0Nv
bnMuTm9kZS5QeXRob24uVmFsdWUoZCkpCi0gICAgICAgIHJldHVybiB0YXJnZXQsIHNvdXJjZQot
Ci0jIyAgICBlbnYuQXBwZW5kKFRPT0xTID0gJ3N1YnN0aW5maWxlJykgICAgICAgIyB0aGlzIHNo
b3VsZCBiZSBhdXRvbWF0aWNhbHkgZG9uZSBieSBTY29ucyA/IT8KLSAgICBzdWJzdF9hY3Rpb24g
PSBTQ29ucy5BY3Rpb24uQWN0aW9uKCBzdWJzdF9pbl9maWxlLCBzdWJzdF9pbl9maWxlX3N0cmlu
ZyApCi0gICAgZW52WydCVUlMREVSUyddWydTdWJzdEluRmlsZSddID0gQnVpbGRlcihhY3Rpb249
c3Vic3RfYWN0aW9uLCBlbWl0dGVyPXN1YnN0X2VtaXR0ZXIpCi0KLWRlZiBleGlzdHMoZW52KToK
LSAgICAiIiIKLSAgICBNYWtlIHN1cmUgdG9vbCBleGlzdHMuCi0gICAgIiIiCi0gICAgcmV0dXJu
IFRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvdGFyZ3oucHkgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Njb25z
LXRvb2xzL3Rhcmd6LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTQzMjAwM2Rm
NzMxZGY2MDRjMzMxZjVkMDcyYzM0ZmY0OWIyZmJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvdGFyZ3oucHkKKysrIC9kZXYv
bnVsbApAQCAtMSw4MiArMCwwIEBACi0iIiJ0YXJiYWxsCi0KLVRvb2wtc3BlY2lmaWMgaW5pdGlh
bGl6YXRpb24gZm9yIHRhcmJhbGwuCi0KLSIiIgotCi0jIyBDb21tYW5kcyB0byB0YWNrbGUgYSBj
b21tYW5kIGJhc2VkIGltcGxlbWVudGF0aW9uOgotIyN0byB1bnBhY2sgb24gdGhlIGZseS4uLgot
IyNndW56aXAgPCBGSUxFLnRhci5neiB8IHRhciB4dmYgLQotIyN0byBwYWNrIG9uIHRoZSBmbHku
Li4KLSMjdGFyIGN2ZiAtIEZJTEUtTElTVCB8IGd6aXAgLWMgPiBGSUxFLnRhci5neiAKLQotaW1w
b3J0IG9zLnBhdGgKLQotaW1wb3J0IFNDb25zLkJ1aWxkZXIKLWltcG9ydCBTQ29ucy5Ob2RlLkZT
Ci1pbXBvcnQgU0NvbnMuVXRpbAotCi10cnk6Ci0gICAgaW1wb3J0IGd6aXAKLSAgICBpbXBvcnQg
dGFyZmlsZQotICAgIGludGVybmFsX3Rhcmd6ID0gMQotZXhjZXB0IEltcG9ydEVycm9yOgotICAg
IGludGVybmFsX3Rhcmd6ID0gMAotCi1UQVJHWl9ERUZBVUxUX0NPTVBSRVNTSU9OX0xFVkVMID0g
OQotCi1pZiBpbnRlcm5hbF90YXJnejoKLSAgICBkZWYgdGFyZ3oodGFyZ2V0LCBzb3VyY2UsIGVu
dik6Ci0gICAgICAgIGRlZiBhcmNoaXZlX25hbWUoIHBhdGggKToKLSAgICAgICAgICAgIHBhdGgg
PSBvcy5wYXRoLm5vcm1wYXRoKCBvcy5wYXRoLmFic3BhdGgoIHBhdGggKSApCi0gICAgICAgICAg
ICBjb21tb25fcGF0aCA9IG9zLnBhdGguY29tbW9ucHJlZml4KCAoYmFzZV9kaXIsIHBhdGgpICkK
LSAgICAgICAgICAgIGFyY2hpdmVfbmFtZSA9IHBhdGhbbGVuKGNvbW1vbl9wYXRoKTpdCi0gICAg
ICAgICAgICByZXR1cm4gYXJjaGl2ZV9uYW1lCi0gICAgICAgICAgICAKLSAgICAgICAgZGVmIHZp
c2l0KHRhciwgZGlybmFtZSwgbmFtZXMpOgotICAgICAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6
Ci0gICAgICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihkaXJuYW1lLCBuYW1lKQotICAg
ICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHBhdGgpOgotICAgICAgICAgICAgICAgICAg
ICB0YXIuYWRkKHBhdGgsIGFyY2hpdmVfbmFtZShwYXRoKSApCi0gICAgICAgIGNvbXByZXNzaW9u
ID0gZW52LmdldCgnVEFSR1pfQ09NUFJFU1NJT05fTEVWRUwnLFRBUkdaX0RFRkFVTFRfQ09NUFJF
U1NJT05fTEVWRUwpCi0gICAgICAgIGJhc2VfZGlyID0gb3MucGF0aC5ub3JtcGF0aCggZW52Lmdl
dCgnVEFSR1pfQkFTRURJUicsIGVudi5EaXIoJy4nKSkuYWJzcGF0aCApCi0gICAgICAgIHRhcmdl
dF9wYXRoID0gc3RyKHRhcmdldFswXSkKLSAgICAgICAgZmlsZW9iaiA9IGd6aXAuR3ppcEZpbGUo
IHRhcmdldF9wYXRoLCAnd2InLCBjb21wcmVzc2lvbiApCi0gICAgICAgIHRhciA9IHRhcmZpbGUu
VGFyRmlsZShvcy5wYXRoLnNwbGl0ZXh0KHRhcmdldF9wYXRoKVswXSwgJ3cnLCBmaWxlb2JqKQot
ICAgICAgICBmb3Igc291cmNlIGluIHNvdXJjZToKLSAgICAgICAgICAgIHNvdXJjZV9wYXRoID0g
c3RyKHNvdXJjZSkKLSAgICAgICAgICAgIGlmIHNvdXJjZS5pc2RpcigpOgotICAgICAgICAgICAg
ICAgIG9zLnBhdGgud2Fsayhzb3VyY2VfcGF0aCwgdmlzaXQsIHRhcikKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgdGFyLmFkZChzb3VyY2VfcGF0aCwgYXJjaGl2ZV9uYW1lKHNv
dXJjZV9wYXRoKSApICAgICAgIyBmaWxlbmFtZSwgYXJjbmFtZQotICAgICAgICB0YXIuY2xvc2Uo
KQotCi0gICAgdGFyZ3pBY3Rpb24gPSBTQ29ucy5BY3Rpb24uQWN0aW9uKHRhcmd6LCB2YXJsaXN0
PVsnVEFSR1pfQ09NUFJFU1NJT05fTEVWRUwnLCdUQVJHWl9CQVNFRElSJ10pCi0KLSAgICBkZWYg
bWFrZUJ1aWxkZXIoIGVtaXR0ZXIgPSBOb25lICk6Ci0gICAgICAgIHJldHVybiBTQ29ucy5CdWls
ZGVyLkJ1aWxkZXIoYWN0aW9uID0gU0NvbnMuQWN0aW9uLkFjdGlvbignJFRBUkdaX0NPTScsICck
VEFSR1pfQ09NU1RSJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291
cmNlX2ZhY3RvcnkgPSBTQ29ucy5Ob2RlLkZTLkVudHJ5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNvdXJjZV9zY2FubmVyID0gU0NvbnMuRGVmYXVsdHMuRGlyU2Nhbm5l
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSAnJFRBUkda
X1NVRkZJWCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGkgPSAx
KQotICAgIFRhckd6QnVpbGRlciA9IG1ha2VCdWlsZGVyKCkKLQotICAgIGRlZiBnZW5lcmF0ZShl
bnYpOgotICAgICAgICAiIiJBZGQgQnVpbGRlcnMgYW5kIGNvbnN0cnVjdGlvbiB2YXJpYWJsZXMg
Zm9yIHppcCB0byBhbiBFbnZpcm9ubWVudC4KLSAgICAgICAgICAgVGhlIGZvbGxvd2luZyBlbnZp
cm9ubmVtZW50IHZhcmlhYmxlcyBtYXkgYmUgc2V0OgotICAgICAgICAgICBUQVJHWl9DT01QUkVT
U0lPTl9MRVZFTDogaW50ZWdlciwgWzAtOV0uIDA6IG5vIGNvbXByZXNzaW9uLCA5OiBiZXN0IGNv
bXByZXNzaW9uIChzYW1lIGFzIGd6aXAgY29tcHJlc3Npb24gbGV2ZWwpLgotICAgICAgICAgICBU
QVJHWl9CQVNFRElSOiBiYXNlLWRpcmVjdG9yeSB1c2VkIHRvIGRldGVybWluZSBhcmNoaXZlIG5h
bWUgKHRoaXMgYWxsb3cgYXJjaGl2ZSBuYW1lIHRvIGJlIHJlbGF0aXZlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIHRvcC1kaXIpLgotICAgICAgICAi
IiIKLSAgICAgICAgZW52WydCVUlMREVSUyddWydUYXJHeiddID0gVGFyR3pCdWlsZGVyCi0gICAg
ICAgIGVudlsnVEFSR1pfQ09NJ10gPSB0YXJnekFjdGlvbgotICAgICAgICBlbnZbJ1RBUkdaX0NP
TVBSRVNTSU9OX0xFVkVMJ10gPSBUQVJHWl9ERUZBVUxUX0NPTVBSRVNTSU9OX0xFVkVMICMgcmFu
Z2UgMC05Ci0gICAgICAgIGVudlsnVEFSR1pfU1VGRklYJ10gID0gJy50YXIuZ3onCi0gICAgICAg
IGVudlsnVEFSR1pfQkFTRURJUiddID0gZW52LkRpcignLicpICAgICAjIFNvdXJjZXMgYXJjaGl2
ZSBuYW1lIGFyZSBtYWRlIHJlbGF0aXZlIHRvIHRoYXQgZGlyZWN0b3J5LgotZWxzZToKLSAgICBk
ZWYgZ2VuZXJhdGUoZW52KToKLSAgICAgICAgcGFzcwotCi0KLWRlZiBleGlzdHMoZW52KToKLSAg
ICByZXR1cm4gaW50ZXJuYWxfdGFyZ3oKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9zcmMvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY4MmE3NDYzMzEyMWU0
MGViNDAzMTAzYmMxOGRkYjMxYzdiZDVjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL0NN
YWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsNSBAQAorYWRkX3N1YmRpcmVjdG9yeShsaWJfanNvbikK
K2lmKEpTT05DUFBfV0lUSF9URVNUUykKKyAgICBhZGRfc3ViZGlyZWN0b3J5KGpzb250ZXN0cnVu
bmVyKQorICAgIGFkZF9zdWJkaXJlY3RvcnkodGVzdF9saWJfanNvbikKK2VuZGlmKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc3JjL2pzb250ZXN0cnVubmVyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMv
anNvbnRlc3RydW5uZXIvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDIzYTQ0ZTY0YmE1MjY0
NGQwMWNmOTUwM2M3ODE3ZjBlZDk1YTUwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2pz
b250ZXN0cnVubmVyL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsMzYgQEAKK2ZpbmRfcGFja2Fn
ZShQeXRob25JbnRlcnAgMi42KQorCithZGRfZXhlY3V0YWJsZShqc29udGVzdHJ1bm5lcl9leGUK
KyAgICAgICAgICAgICAgIG1haW4uY3BwCisgICAgICAgICAgICAgICApCisKK2lmKEJVSUxEX1NI
QVJFRF9MSUJTKQorICAgIGFkZF9jb21waWxlX2RlZmluaXRpb25zKCBKU09OX0RMTCApCitlbmRp
ZigpCit0YXJnZXRfbGlua19saWJyYXJpZXMoanNvbnRlc3RydW5uZXJfZXhlIGpzb25jcHBfbGli
KQorCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoanNvbnRlc3RydW5uZXJfZXhlIFBST1BFUlRJRVMg
T1VUUFVUX05BTUUganNvbnRlc3RydW5uZXJfZXhlKQorCitpZihQWVRIT05JTlRFUlBfRk9VTkQp
CisgICAgIyBSdW4gZW5kIHRvIGVuZCBwYXJzZXIvd3JpdGVyIHRlc3RzCisgICAgc2V0KFRFU1Rf
RElSICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi8uLi90ZXN0KQorICAgIHNldChSVU5K
U09OVEVTVFNfUEFUSCAke1RFU1RfRElSfS9ydW5qc29udGVzdHMucHkpCisKKyAgICAjIFJ1biB1
bml0IHRlc3RzIGluIHBvc3QtYnVpbGQKKyAgICAjIChkZWZhdWx0IGNtYWtlIHdvcmtmbG93IGhp
ZGVzIGF3YXkgdGhlIHRlc3QgcmVzdWx0IGludG8gYSBmaWxlLCByZXN1bHRpbmcgaW4gcG9vciBk
ZXYgd29ya2Zsb3c/IT8pCisgICAgYWRkX2N1c3RvbV90YXJnZXQoanNvbmNwcF9yZWFkZXJ3cml0
ZXJfdGVzdHMKKyAgICAgICAgICAgICAgICAgICAgICAiJHtQWVRIT05fRVhFQ1VUQUJMRX0iIC1C
ICIke1JVTkpTT05URVNUU19QQVRIfSIgJDxUQVJHRVRfRklMRTpqc29udGVzdHJ1bm5lcl9leGU+
ICIke1RFU1RfRElSfS9kYXRhIgorICAgICAgICAgICAgICAgICAgICAgIERFUEVORFMganNvbnRl
c3RydW5uZXJfZXhlIGpzb25jcHBfdGVzdAorICAgICAgICAgICAgICAgICAgICAgICkKKyAgICBh
ZGRfY3VzdG9tX3RhcmdldChqc29uY3BwX2NoZWNrIERFUEVORFMganNvbmNwcF9yZWFkZXJ3cml0
ZXJfdGVzdHMpCisKKyAgICAjIyBDcmVhdGUgdGVzdHMgZm9yIGRhc2hib2FyZCBzdWJtaXNzaW9u
LCBhbGxvd3MgZWFzeSByZXZpZXcgb2YgQ0kgcmVzdWx0cyBodHRwczovL215LmNkYXNoLm9yZy9p
bmRleC5waHA/cHJvamVjdD1qc29uY3BwCisgICAgYWRkX3Rlc3QoTkFNRSBqc29uY3BwX3JlYWRl
cndyaXRlcgorICAgICAgICAgICAgIENPTU1BTkQgIiR7UFlUSE9OX0VYRUNVVEFCTEV9IiAtQiAi
JHtSVU5KU09OVEVTVFNfUEFUSH0iICQ8VEFSR0VUX0ZJTEU6anNvbnRlc3RydW5uZXJfZXhlPiAi
JHtURVNUX0RJUn0vZGF0YSIKKyAgICAgICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAiJHtURVNU
X0RJUn0vZGF0YSIKKyAgICApCisgICAgYWRkX3Rlc3QoTkFNRSBqc29uY3BwX3JlYWRlcndyaXRl
cl9qc29uX2NoZWNrZXIKKyAgICAgICAgICAgICBDT01NQU5EICIke1BZVEhPTl9FWEVDVVRBQkxF
fSIgLUIgIiR7UlVOSlNPTlRFU1RTX1BBVEh9IiAtLXdpdGgtanNvbi1jaGVja2VyICAkPFRBUkdF
VF9GSUxFOmpzb250ZXN0cnVubmVyX2V4ZT4gIiR7VEVTVF9ESVJ9L2RhdGEiCisgICAgICAgICAg
ICAgV09SS0lOR19ESVJFQ1RPUlkgIiR7VEVTVF9ESVJ9L2RhdGEiCisgICAgKQorZW5kaWYoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRlc3RydW5uZXIvbWFpbi5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9q
c29udGVzdHJ1bm5lci9tYWluLmNwcAppbmRleCA3NGYwMjE2NWMzYzJkOGVmMGVmNDZiOWRiODgz
MzJjNWU4NGI1YjNjLi5kMmQ0MWFhNWZkOTliMTAwMGRkNTJkNTNmNDg4MmJmNzZiNzc5YjVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3NyYy9qc29udGVzdHJ1bm5lci9tYWluLmNwcAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Ny
Yy9qc29udGVzdHJ1bm5lci9tYWluLmNwcApAQCAtMSwyOTMgKzEsMzAwIEBACi0vLyBDb3B5cmln
aHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBC
YXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVk
IHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyBy
ZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3Ig
ZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UK
IAorI2lmIGRlZmluZWQoX19HTlVDX18pCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYp
CisjZW5kaWYKKwogLyogVGhpcyBleGVjdXRhYmxlIGlzIHVzZWQgZm9yIHRlc3RpbmcgcGFyc2Vy
L3dyaXRlciB1c2luZyByZWFsIEpTT04gZmlsZXMuCiAgKi8KIAotCi0jaW5jbHVkZSA8anNvbi9q
c29uLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPiAvLyBzb3J0Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
LQotI2lmIGRlZmluZWQoX01TQ19WRVIpICAmJiAgX01TQ19WRVIgPj0gMTMxMAotIyBwcmFnbWEg
d2FybmluZyggZGlzYWJsZTogNDk5NiApICAgICAvLyBkaXNhYmxlIGZvcGVuIGRlcHJlY2F0aW9u
IHdhcm5pbmcKLSNlbmRpZgotCi1zdGF0aWMgc3RkOjpzdHJpbmcgCi1ub3JtYWxpemVGbG9hdGlu
Z1BvaW50U3RyKCBkb3VibGUgdmFsdWUgKQotewotICAgIGNoYXIgYnVmZmVyWzMyXTsKLSAgICBz
cHJpbnRmKCBidWZmZXIsICIlLjE2ZyIsIHZhbHVlICk7Ci0gICAgYnVmZmVyW3NpemVvZihidWZm
ZXIpLTFdID0gMDsKLSAgICBzdGQ6OnN0cmluZyBzKCBidWZmZXIgKTsKLSAgICBzdGQ6OnN0cmlu
Zzo6c2l6ZV90eXBlIGluZGV4ID0gcy5maW5kX2xhc3Rfb2YoICJlRSIgKTsKLSAgICBpZiAoIGlu
ZGV4ICE9IHN0ZDo6c3RyaW5nOjpucG9zICkKKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8
anNvbi9qc29uLmg+CisjaW5jbHVkZSA8c3N0cmVhbT4KKworc3RydWN0IE9wdGlvbnMgeworICBK
c29uOjpTdHJpbmcgcGF0aDsKKyAgSnNvbjo6RmVhdHVyZXMgZmVhdHVyZXM7CisgIGJvb2wgcGFy
c2VPbmx5OworICB1c2luZyB3cml0ZUZ1bmNUeXBlID0gSnNvbjo6U3RyaW5nICgqKShKc29uOjpW
YWx1ZSBjb25zdCYpOworICB3cml0ZUZ1bmNUeXBlIHdyaXRlOworfTsKKworc3RhdGljIEpzb246
OlN0cmluZyBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKGRvdWJsZSB2YWx1ZSkgeworICBjaGFy
IGJ1ZmZlclszMl07CisgIGpzb25jcHBfc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwg
IiUuMTZnIiwgdmFsdWUpOworICBidWZmZXJbc2l6ZW9mKGJ1ZmZlcikgLSAxXSA9IDA7CisgIEpz
b246OlN0cmluZyBzKGJ1ZmZlcik7CisgIEpzb246OlN0cmluZzo6c2l6ZV90eXBlIGluZGV4ID0g
cy5maW5kX2xhc3Rfb2YoImVFIik7CisgIGlmIChpbmRleCAhPSBKc29uOjpTdHJpbmc6Om5wb3Mp
IHsKKyAgICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBoYXNTaWduID0KKyAgICAgICAgKHNbaW5k
ZXggKyAxXSA9PSAnKycgfHwgc1tpbmRleCArIDFdID09ICctJykgPyAxIDogMDsKKyAgICBKc29u
OjpTdHJpbmc6OnNpemVfdHlwZSBleHBvbmVudFN0YXJ0SW5kZXggPSBpbmRleCArIDEgKyBoYXNT
aWduOworICAgIEpzb246OlN0cmluZyBub3JtYWxpemVkID0gcy5zdWJzdHIoMCwgZXhwb25lbnRT
dGFydEluZGV4KTsKKyAgICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBpbmRleERpZ2l0ID0KKyAg
ICAgICAgcy5maW5kX2ZpcnN0X25vdF9vZignMCcsIGV4cG9uZW50U3RhcnRJbmRleCk7CisgICAg
SnNvbjo6U3RyaW5nIGV4cG9uZW50ID0gIjAiOworICAgIGlmIChpbmRleERpZ2l0ICE9IEpzb246
OlN0cmluZzo6bnBvcykgLy8gVGhlcmUgaXMgYW4gZXhwb25lbnQgZGlmZmVyZW50CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIDAKICAgICB7Ci0gICAg
ICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaGFzU2lnbiA9IChzW2luZGV4KzFdID09ICcrJyB8
fCBzW2luZGV4KzFdID09ICctJykgPyAxIDogMDsKLSAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVf
dHlwZSBleHBvbmVudFN0YXJ0SW5kZXggPSBpbmRleCArIDEgKyBoYXNTaWduOwotICAgICAgICBz
dGQ6OnN0cmluZyBub3JtYWxpemVkID0gcy5zdWJzdHIoIDAsIGV4cG9uZW50U3RhcnRJbmRleCAp
OwotICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGluZGV4RGlnaXQgPSBzLmZpbmRfZmly
c3Rfbm90X29mKCAnMCcsIGV4cG9uZW50U3RhcnRJbmRleCApOwotICAgICAgICBzdGQ6OnN0cmlu
ZyBleHBvbmVudCA9ICIwIjsKLSAgICAgICAgaWYgKCBpbmRleERpZ2l0ICE9IHN0ZDo6c3RyaW5n
OjpucG9zICkgLy8gVGhlcmUgaXMgYW4gZXhwb25lbnQgZGlmZmVyZW50IGZyb20gMAotICAgICAg
ICB7Ci0gICAgICAgICAgICBleHBvbmVudCA9IHMuc3Vic3RyKCBpbmRleERpZ2l0ICk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQgKyBleHBvbmVudDsKKyAgICAgIGV4cG9u
ZW50ID0gcy5zdWJzdHIoaW5kZXhEaWdpdCk7CiAgICAgfQotICAgIHJldHVybiBzOworICAgIHJl
dHVybiBub3JtYWxpemVkICsgZXhwb25lbnQ7CisgIH0KKyAgcmV0dXJuIHM7CiB9CiAKLQotc3Rh
dGljIHN0ZDo6c3RyaW5nCi1yZWFkSW5wdXRUZXN0RmlsZSggY29uc3QgY2hhciAqcGF0aCApCi17
Ci0gICBGSUxFICpmaWxlID0gZm9wZW4oIHBhdGgsICJyYiIgKTsKLSAgIGlmICggIWZpbGUgKQot
ICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCIiKTsKLSAgIGZzZWVrKCBmaWxlLCAwLCBTRUVLX0VO
RCApOwotICAgbG9uZyBzaXplID0gZnRlbGwoIGZpbGUgKTsKLSAgIGZzZWVrKCBmaWxlLCAwLCBT
RUVLX1NFVCApOwotICAgc3RkOjpzdHJpbmcgdGV4dDsKLSAgIGNoYXIgKmJ1ZmZlciA9IG5ldyBj
aGFyW3NpemUrMV07Ci0gICBidWZmZXJbc2l6ZV0gPSAwOwotICAgaWYgKCBmcmVhZCggYnVmZmVy
LCAxLCBzaXplLCBmaWxlICkgPT0gKHVuc2lnbmVkIGxvbmcpc2l6ZSApCi0gICAgICB0ZXh0ID0g
YnVmZmVyOwotICAgZmNsb3NlKCBmaWxlICk7Ci0gICBkZWxldGVbXSBidWZmZXI7Ci0gICByZXR1
cm4gdGV4dDsKK3N0YXRpYyBKc29uOjpTdHJpbmcgcmVhZElucHV0VGVzdEZpbGUoY29uc3QgY2hh
ciogcGF0aCkgeworICBGSUxFKiBmaWxlID0gZm9wZW4ocGF0aCwgInJiIik7CisgIGlmICghZmls
ZSkKKyAgICByZXR1cm4gIiI7CisgIGZzZWVrKGZpbGUsIDAsIFNFRUtfRU5EKTsKKyAgbG9uZyBj
b25zdCBzaXplID0gZnRlbGwoZmlsZSk7CisgIHNpemVfdCBjb25zdCB1c2l6ZSA9IHN0YXRpY19j
YXN0PHVuc2lnbmVkIGxvbmc+KHNpemUpOworICBmc2VlayhmaWxlLCAwLCBTRUVLX1NFVCk7Cisg
IGNoYXIqIGJ1ZmZlciA9IG5ldyBjaGFyW3NpemUgKyAxXTsKKyAgYnVmZmVyW3NpemVdID0gMDsK
KyAgSnNvbjo6U3RyaW5nIHRleHQ7CisgIGlmIChmcmVhZChidWZmZXIsIDEsIHVzaXplLCBmaWxl
KSA9PSB1c2l6ZSkKKyAgICB0ZXh0ID0gYnVmZmVyOworICBmY2xvc2UoZmlsZSk7CisgIGRlbGV0
ZVtdIGJ1ZmZlcjsKKyAgcmV0dXJuIHRleHQ7CiB9CiAKIHN0YXRpYyB2b2lkCi1wcmludFZhbHVl
VHJlZSggRklMRSAqZm91dCwgSnNvbjo6VmFsdWUgJnZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyAm
cGF0aCA9ICIuIiApCi17Ci0gICBzd2l0Y2ggKCB2YWx1ZS50eXBlKCkgKQotICAgewotICAgY2Fz
ZSBKc29uOjpudWxsVmFsdWU6Ci0gICAgICBmcHJpbnRmKCBmb3V0LCAiJXM9bnVsbFxuIiwgcGF0
aC5jX3N0cigpICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgSnNvbjo6aW50VmFsdWU6Ci0gICAg
ICBmcHJpbnRmKCBmb3V0LCAiJXM9JXNcbiIsIHBhdGguY19zdHIoKSwgSnNvbjo6dmFsdWVUb1N0
cmluZyggdmFsdWUuYXNMYXJnZXN0SW50KCkgKS5jX3N0cigpICk7Ci0gICAgICBicmVhazsKLSAg
IGNhc2UgSnNvbjo6dWludFZhbHVlOgotICAgICAgZnByaW50ZiggZm91dCwgIiVzPSVzXG4iLCBw
YXRoLmNfc3RyKCksIEpzb246OnZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSAp
LmNfc3RyKCkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBKc29uOjpyZWFsVmFsdWU6Ci0gICAg
ICAgZnByaW50ZiggZm91dCwgIiVzPSVzXG4iLCBwYXRoLmNfc3RyKCksIG5vcm1hbGl6ZUZsb2F0
aW5nUG9pbnRTdHIodmFsdWUuYXNEb3VibGUoKSkuY19zdHIoKSApOwotICAgICAgYnJlYWs7Ci0g
ICBjYXNlIEpzb246OnN0cmluZ1ZhbHVlOgotICAgICAgZnByaW50ZiggZm91dCwgIiVzPVwiJXNc
IlxuIiwgcGF0aC5jX3N0cigpLCB2YWx1ZS5hc1N0cmluZygpLmNfc3RyKCkgKTsKLSAgICAgIGJy
ZWFrOwotICAgY2FzZSBKc29uOjpib29sZWFuVmFsdWU6Ci0gICAgICBmcHJpbnRmKCBmb3V0LCAi
JXM9JXNcbiIsIHBhdGguY19zdHIoKSwgdmFsdWUuYXNCb29sKCkgPyAidHJ1ZSIgOiAiZmFsc2Ui
ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgSnNvbjo6YXJyYXlWYWx1ZToKLSAgICAgIHsKLSAg
ICAgICAgIGZwcmludGYoIGZvdXQsICIlcz1bXVxuIiwgcGF0aC5jX3N0cigpICk7Ci0gICAgICAg
ICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKLSAgICAgICAgIGZvciAoIGludCBpbmRleCA9MDsg
aW5kZXggPCBzaXplOyArK2luZGV4ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHN0YXRpYyBj
aGFyIGJ1ZmZlclsxNl07Ci0gICAgICAgICAgICBzcHJpbnRmKCBidWZmZXIsICJbJWRdIiwgaW5k
ZXggKTsKLSAgICAgICAgICAgIHByaW50VmFsdWVUcmVlKCBmb3V0LCB2YWx1ZVtpbmRleF0sIHBh
dGggKyBidWZmZXIgKTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgY2Fz
ZSBKc29uOjpvYmplY3RWYWx1ZToKLSAgICAgIHsKLSAgICAgICAgIGZwcmludGYoIGZvdXQsICIl
cz17fVxuIiwgcGF0aC5jX3N0cigpICk7Ci0gICAgICAgICBKc29uOjpWYWx1ZTo6TWVtYmVycyBt
ZW1iZXJzKCB2YWx1ZS5nZXRNZW1iZXJOYW1lcygpICk7Ci0gICAgICAgICBzdGQ6OnNvcnQoIG1l
bWJlcnMuYmVnaW4oKSwgbWVtYmVycy5lbmQoKSApOwotICAgICAgICAgc3RkOjpzdHJpbmcgc3Vm
Zml4ID0gKihwYXRoLmVuZCgpLTEpID09ICcuJyA/ICIiIDogIi4iOwotICAgICAgICAgZm9yICgg
SnNvbjo6VmFsdWU6Ok1lbWJlcnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOyAKLSAg
ICAgICAgICAgICAgIGl0ICE9IG1lbWJlcnMuZW5kKCk7IAotICAgICAgICAgICAgICAgKytpdCAp
Ci0gICAgICAgICB7Ci0gICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSA9ICppdDsK
LSAgICAgICAgICAgIHByaW50VmFsdWVUcmVlKCBmb3V0LCB2YWx1ZVtuYW1lXSwgcGF0aCArIHN1
ZmZpeCArIG5hbWUgKTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgZGVm
YXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotfQotCi0KLXN0YXRpYyBpbnQKLXBhcnNlQW5kU2F2
ZVZhbHVlVHJlZSggY29uc3Qgc3RkOjpzdHJpbmcgJmlucHV0LCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJmFjdHVhbCwKLSAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgc3RkOjpzdHJpbmcgJmtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgIEpzb246OlZh
bHVlICZyb290LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBKc29uOjpGZWF0dXJlcyAm
ZmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFyc2VPbmx5ICkKLXsKLSAg
IEpzb246OlJlYWRlciByZWFkZXIoIGZlYXR1cmVzICk7Ci0gICBib29sIHBhcnNpbmdTdWNjZXNz
ZnVsID0gcmVhZGVyLnBhcnNlKCBpbnB1dCwgcm9vdCApOwotICAgaWYgKCAhcGFyc2luZ1N1Y2Nl
c3NmdWwgKQotICAgewotICAgICAgcHJpbnRmKCAiRmFpbGVkIHRvIHBhcnNlICVzIGZpbGU6IFxu
JXNcbiIsIAotICAgICAgICAgICAgICBraW5kLmNfc3RyKCksCi0gICAgICAgICAgICAgIHJlYWRl
ci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkuY19zdHIoKSApOwotICAgICAgcmV0dXJuIDE7
Ci0gICB9Ci0KLSAgIGlmICggIXBhcnNlT25seSApCi0gICB7Ci0gICAgICBGSUxFICpmYWN0dWFs
ID0gZm9wZW4oIGFjdHVhbC5jX3N0cigpLCAid3QiICk7Ci0gICAgICBpZiAoICFmYWN0dWFsICkK
LSAgICAgIHsKLSAgICAgICAgIHByaW50ZiggIkZhaWxlZCB0byBjcmVhdGUgJXMgYWN0dWFsIGZp
bGUuXG4iLCBraW5kLmNfc3RyKCkgKTsKLSAgICAgICAgIHJldHVybiAyOwotICAgICAgfQotICAg
ICAgcHJpbnRWYWx1ZVRyZWUoIGZhY3R1YWwsIHJvb3QgKTsKLSAgICAgIGZjbG9zZSggZmFjdHVh
bCApOwotICAgfQotICAgcmV0dXJuIDA7CitwcmludFZhbHVlVHJlZShGSUxFKiBmb3V0LCBKc29u
OjpWYWx1ZSYgdmFsdWUsIGNvbnN0IEpzb246OlN0cmluZyYgcGF0aCA9ICIuIikgeworICBpZiAo
dmFsdWUuaGFzQ29tbWVudChKc29uOjpjb21tZW50QmVmb3JlKSkgeworICAgIGZwcmludGYoZm91
dCwgIiVzXG4iLCB2YWx1ZS5nZXRDb21tZW50KEpzb246OmNvbW1lbnRCZWZvcmUpLmNfc3RyKCkp
OworICB9CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2UgSnNvbjo6bnVsbFZhbHVl
OgorICAgIGZwcmludGYoZm91dCwgIiVzPW51bGxcbiIsIHBhdGguY19zdHIoKSk7CisgICAgYnJl
YWs7CisgIGNhc2UgSnNvbjo6aW50VmFsdWU6CisgICAgZnByaW50Zihmb3V0LCAiJXM9JXNcbiIs
IHBhdGguY19zdHIoKSwKKyAgICAgICAgICAgIEpzb246OnZhbHVlVG9TdHJpbmcodmFsdWUuYXNM
YXJnZXN0SW50KCkpLmNfc3RyKCkpOworICAgIGJyZWFrOworICBjYXNlIEpzb246OnVpbnRWYWx1
ZToKKyAgICBmcHJpbnRmKGZvdXQsICIlcz0lc1xuIiwgcGF0aC5jX3N0cigpLAorICAgICAgICAg
ICAgSnNvbjo6dmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpLmNfc3RyKCkpOwor
ICAgIGJyZWFrOworICBjYXNlIEpzb246OnJlYWxWYWx1ZToKKyAgICBmcHJpbnRmKGZvdXQsICIl
cz0lc1xuIiwgcGF0aC5jX3N0cigpLAorICAgICAgICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2lu
dFN0cih2YWx1ZS5hc0RvdWJsZSgpKS5jX3N0cigpKTsKKyAgICBicmVhazsKKyAgY2FzZSBKc29u
OjpzdHJpbmdWYWx1ZToKKyAgICBmcHJpbnRmKGZvdXQsICIlcz1cIiVzXCJcbiIsIHBhdGguY19z
dHIoKSwgdmFsdWUuYXNTdHJpbmcoKS5jX3N0cigpKTsKKyAgICBicmVhazsKKyAgY2FzZSBKc29u
Ojpib29sZWFuVmFsdWU6CisgICAgZnByaW50Zihmb3V0LCAiJXM9JXNcbiIsIHBhdGguY19zdHIo
KSwgdmFsdWUuYXNCb29sKCkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICBicmVhazsKKyAgY2Fz
ZSBKc29uOjphcnJheVZhbHVlOiB7CisgICAgZnByaW50Zihmb3V0LCAiJXM9W11cbiIsIHBhdGgu
Y19zdHIoKSk7CisgICAgSnNvbjo6QXJyYXlJbmRleCBzaXplID0gdmFsdWUuc2l6ZSgpOworICAg
IGZvciAoSnNvbjo6QXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkg
eworICAgICAgc3RhdGljIGNoYXIgYnVmZmVyWzE2XTsKKyAgICAgIGpzb25jcHBfc25wcmludGYo
YnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIlsldV0iLCBpbmRleCk7CisgICAgICBwcmludFZhbHVl
VHJlZShmb3V0LCB2YWx1ZVtpbmRleF0sIHBhdGggKyBidWZmZXIpOworICAgIH0KKyAgfSBicmVh
azsKKyAgY2FzZSBKc29uOjpvYmplY3RWYWx1ZTogeworICAgIGZwcmludGYoZm91dCwgIiVzPXt9
XG4iLCBwYXRoLmNfc3RyKCkpOworICAgIEpzb246OlZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFs
dWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgc3RkOjpzb3J0KG1lbWJlcnMuYmVnaW4oKSwgbWVt
YmVycy5lbmQoKSk7CisgICAgSnNvbjo6U3RyaW5nIHN1ZmZpeCA9ICoocGF0aC5lbmQoKSAtIDEp
ID09ICcuJyA/ICIiIDogIi4iOworICAgIGZvciAoYXV0byBuYW1lIDogbWVtYmVycykgeworICAg
ICAgcHJpbnRWYWx1ZVRyZWUoZm91dCwgdmFsdWVbbmFtZV0sIHBhdGggKyBzdWZmaXggKyBuYW1l
KTsKKyAgICB9CisgIH0gYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKworICBp
ZiAodmFsdWUuaGFzQ29tbWVudChKc29uOjpjb21tZW50QWZ0ZXIpKSB7CisgICAgZnByaW50Zihm
b3V0LCAiJXNcbiIsIHZhbHVlLmdldENvbW1lbnQoSnNvbjo6Y29tbWVudEFmdGVyKS5jX3N0cigp
KTsKKyAgfQogfQogCi0KLXN0YXRpYyBpbnQKLXJld3JpdGVWYWx1ZVRyZWUoIGNvbnN0IHN0ZDo6
c3RyaW5nICZyZXdyaXRlUGF0aCwgCi0gICAgICAgICAgICAgICAgICBjb25zdCBKc29uOjpWYWx1
ZSAmcm9vdCwgCi0gICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyAmcmV3cml0ZSApCi17Ci0g
ICAvL0pzb246OkZhc3RXcml0ZXIgd3JpdGVyOwotICAgLy93cml0ZXIuZW5hYmxlWUFNTENvbXBh
dGliaWxpdHkoKTsKLSAgIEpzb246OlN0eWxlZFdyaXRlciB3cml0ZXI7Ci0gICByZXdyaXRlID0g
d3JpdGVyLndyaXRlKCByb290ICk7Ci0gICBGSUxFICpmb3V0ID0gZm9wZW4oIHJld3JpdGVQYXRo
LmNfc3RyKCksICJ3dCIgKTsKLSAgIGlmICggIWZvdXQgKQotICAgewotICAgICAgcHJpbnRmKCAi
RmFpbGVkIHRvIGNyZWF0ZSByZXdyaXRlIGZpbGU6ICVzXG4iLCByZXdyaXRlUGF0aC5jX3N0cigp
ICk7CitzdGF0aWMgaW50IHBhcnNlQW5kU2F2ZVZhbHVlVHJlZShjb25zdCBKc29uOjpTdHJpbmcm
IGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6U3Ry
aW5nJiBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBKc29u
OjpTdHJpbmcmIGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBK
c29uOjpGZWF0dXJlcyYgZmVhdHVyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIHBhcnNlT25seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpzb246
OlZhbHVlKiByb290KSB7CisgIEpzb246OlJlYWRlciByZWFkZXIoZmVhdHVyZXMpOworICBib29s
IHBhcnNpbmdTdWNjZXNzZnVsID0KKyAgICAgIHJlYWRlci5wYXJzZShpbnB1dC5kYXRhKCksIGlu
cHV0LmRhdGEoKSArIGlucHV0LnNpemUoKSwgKnJvb3QpOworICBpZiAoIXBhcnNpbmdTdWNjZXNz
ZnVsKSB7CisgICAgcHJpbnRmKCJGYWlsZWQgdG8gcGFyc2UgJXMgZmlsZTogXG4lc1xuIiwga2lu
ZC5jX3N0cigpLAorICAgICAgICAgICByZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygp
LmNfc3RyKCkpOworICAgIHJldHVybiAxOworICB9CisgIGlmICghcGFyc2VPbmx5KSB7CisgICAg
RklMRSogZmFjdHVhbCA9IGZvcGVuKGFjdHVhbC5jX3N0cigpLCAid3QiKTsKKyAgICBpZiAoIWZh
Y3R1YWwpIHsKKyAgICAgIHByaW50ZigiRmFpbGVkIHRvIGNyZWF0ZSAlcyBhY3R1YWwgZmlsZS5c
biIsIGtpbmQuY19zdHIoKSk7CiAgICAgICByZXR1cm4gMjsKLSAgIH0KLSAgIGZwcmludGYoIGZv
dXQsICIlc1xuIiwgcmV3cml0ZS5jX3N0cigpICk7Ci0gICBmY2xvc2UoIGZvdXQgKTsKLSAgIHJl
dHVybiAwOworICAgIH0KKyAgICBwcmludFZhbHVlVHJlZShmYWN0dWFsLCAqcm9vdCk7CisgICAg
ZmNsb3NlKGZhY3R1YWwpOworICB9CisgIHJldHVybiAwOwogfQotCi0KLXN0YXRpYyBzdGQ6OnN0
cmluZwotcmVtb3ZlU3VmZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZleHRlbnNpb24gKQotewotICAgaWYgKCBleHRlbnNpb24u
bGVuZ3RoKCkgPj0gcGF0aC5sZW5ndGgoKSApCi0gICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIiIp
OwotICAgc3RkOjpzdHJpbmcgc3VmZml4ID0gcGF0aC5zdWJzdHIoIHBhdGgubGVuZ3RoKCkgLSBl
eHRlbnNpb24ubGVuZ3RoKCkgKTsKLSAgIGlmICggc3VmZml4ICE9IGV4dGVuc2lvbiApCi0gICAg
ICByZXR1cm4gc3RkOjpzdHJpbmcoIiIpOwotICAgcmV0dXJuIHBhdGguc3Vic3RyKCAwLCBwYXRo
Lmxlbmd0aCgpIC0gZXh0ZW5zaW9uLmxlbmd0aCgpICk7CisvLyBzdGF0aWMgSnNvbjo6U3RyaW5n
IHVzZUZhc3RXcml0ZXIoSnNvbjo6VmFsdWUgY29uc3QmIHJvb3QpIHsKKy8vICAgSnNvbjo6RmFz
dFdyaXRlciB3cml0ZXI7CisvLyAgIHdyaXRlci5lbmFibGVZQU1MQ29tcGF0aWJpbGl0eSgpOwor
Ly8gICByZXR1cm4gd3JpdGVyLndyaXRlKHJvb3QpOworLy8gfQorc3RhdGljIEpzb246OlN0cmlu
ZyB1c2VTdHlsZWRXcml0ZXIoSnNvbjo6VmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgSnNvbjo6U3R5
bGVkV3JpdGVyIHdyaXRlcjsKKyAgcmV0dXJuIHdyaXRlci53cml0ZShyb290KTsKK30KK3N0YXRp
YyBKc29uOjpTdHJpbmcgdXNlU3R5bGVkU3RyZWFtV3JpdGVyKEpzb246OlZhbHVlIGNvbnN0JiBy
b290KSB7CisgIEpzb246OlN0eWxlZFN0cmVhbVdyaXRlciB3cml0ZXI7CisgIEpzb246Ok9TdHJp
bmdTdHJlYW0gc291dDsKKyAgd3JpdGVyLndyaXRlKHNvdXQsIHJvb3QpOworICByZXR1cm4gc291
dC5zdHIoKTsKK30KK3N0YXRpYyBKc29uOjpTdHJpbmcgdXNlQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXIoSnNvbjo6VmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRl
ciBidWlsZGVyOworICByZXR1cm4gSnNvbjo6d3JpdGVTdHJpbmcoYnVpbGRlciwgcm9vdCk7Cit9
CitzdGF0aWMgaW50IHJld3JpdGVWYWx1ZVRyZWUoY29uc3QgSnNvbjo6U3RyaW5nJiByZXdyaXRl
UGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBKc29uOjpWYWx1ZSYgcm9v
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpb25zOjp3cml0ZUZ1bmNUeXBlIHdy
aXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpzb246OlN0cmluZyogcmV3cml0ZSkg
eworICAqcmV3cml0ZSA9IHdyaXRlKHJvb3QpOworICBGSUxFKiBmb3V0ID0gZm9wZW4ocmV3cml0
ZVBhdGguY19zdHIoKSwgInd0Iik7CisgIGlmICghZm91dCkgeworICAgIHByaW50ZigiRmFpbGVk
IHRvIGNyZWF0ZSByZXdyaXRlIGZpbGU6ICVzXG4iLCByZXdyaXRlUGF0aC5jX3N0cigpKTsKKyAg
ICByZXR1cm4gMjsKKyAgfQorICBmcHJpbnRmKGZvdXQsICIlc1xuIiwgcmV3cml0ZS0+Y19zdHIo
KSk7CisgIGZjbG9zZShmb3V0KTsKKyAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBKc29uOjpTdHJp
bmcgcmVtb3ZlU3VmZml4KGNvbnN0IEpzb246OlN0cmluZyYgcGF0aCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEpzb246OlN0cmluZyYgZXh0ZW5zaW9uKSB7CisgIGlm
IChleHRlbnNpb24ubGVuZ3RoKCkgPj0gcGF0aC5sZW5ndGgoKSkKKyAgICByZXR1cm4gSnNvbjo6
U3RyaW5nKCIiKTsKKyAgSnNvbjo6U3RyaW5nIHN1ZmZpeCA9IHBhdGguc3Vic3RyKHBhdGgubGVu
Z3RoKCkgLSBleHRlbnNpb24ubGVuZ3RoKCkpOworICBpZiAoc3VmZml4ICE9IGV4dGVuc2lvbikK
KyAgICByZXR1cm4gSnNvbjo6U3RyaW5nKCIiKTsKKyAgcmV0dXJuIHBhdGguc3Vic3RyKDAsIHBh
dGgubGVuZ3RoKCkgLSBleHRlbnNpb24ubGVuZ3RoKCkpOworfQogCi1zdGF0aWMgdm9pZAotcHJp
bnRDb25maWcoKQotewotICAgLy8gUHJpbnQgdGhlIGNvbmZpZ3VyYXRpb24gdXNlZCB0byBjb21w
aWxlIEpzb25DcHAKK3N0YXRpYyB2b2lkIHByaW50Q29uZmlnKCkgeworLy8gUHJpbnQgdGhlIGNv
bmZpZ3VyYXRpb24gdXNlZCB0byBjb21waWxlIEpzb25DcHAKICNpZiBkZWZpbmVkKEpTT05fTk9f
SU5UNjQpCi0gICBwcmludGYoICJKU09OX05PX0lOVDY0PTFcbiIgKTsKKyAgcHJpbnRmKCJKU09O
X05PX0lOVDY0PTFcbiIpOwogI2Vsc2UKLSAgIHByaW50ZiggIkpTT05fTk9fSU5UNjQ9MFxuIiAp
OworICBwcmludGYoIkpTT05fTk9fSU5UNjQ9MFxuIik7CiAjZW5kaWYKIH0KIAotCi1zdGF0aWMg
aW50IAotcHJpbnRVc2FnZSggY29uc3QgY2hhciAqYXJndltdICkKLXsKLSAgIHByaW50ZiggIlVz
YWdlOiAlcyBbLS1zdHJpY3RdIGlucHV0LWpzb24tZmlsZSIsIGFyZ3ZbMF0gKTsKLSAgIHJldHVy
biAzOworc3RhdGljIGludCBwcmludFVzYWdlKGNvbnN0IGNoYXIqIGFyZ3ZbXSkgeworICBwcmlu
dGYoIlVzYWdlOiAlcyBbLS1zdHJpY3RdIGlucHV0LWpzb24tZmlsZSIsIGFyZ3ZbMF0pOworICBy
ZXR1cm4gMzsKIH0KIAotCi1pbnQKLXBhcnNlQ29tbWFuZExpbmUoIGludCBhcmdjLCBjb25zdCBj
aGFyICphcmd2W10sIAotICAgICAgICAgICAgICAgICAgSnNvbjo6RmVhdHVyZXMgJmZlYXR1cmVz
LCBzdGQ6OnN0cmluZyAmcGF0aCwKLSAgICAgICAgICAgICAgICAgIGJvb2wgJnBhcnNlT25seSAp
Ci17Ci0gICBwYXJzZU9ubHkgPSBmYWxzZTsKLSAgIGlmICggYXJnYyA8IDIgKQotICAgewotICAg
ICAgcmV0dXJuIHByaW50VXNhZ2UoIGFyZ3YgKTsKLSAgIH0KLQotICAgaW50IGluZGV4ID0gMTsK
LSAgIGlmICggc3RkOjpzdHJpbmcoYXJndlsxXSkgPT0gIi0tanNvbi1jaGVja2VyIiApCi0gICB7
Ci0gICAgICBmZWF0dXJlcyA9IEpzb246OkZlYXR1cmVzOjpzdHJpY3RNb2RlKCk7Ci0gICAgICBw
YXJzZU9ubHkgPSB0cnVlOwotICAgICAgKytpbmRleDsKLSAgIH0KLQotICAgaWYgKCBzdGQ6OnN0
cmluZyhhcmd2WzFdKSA9PSAiLS1qc29uLWNvbmZpZyIgKQotICAgewotICAgICAgcHJpbnRDb25m
aWcoKTsKLSAgICAgIHJldHVybiAzOwotICAgfQotCi0gICBpZiAoIGluZGV4ID09IGFyZ2MgIHx8
ICBpbmRleCArIDEgPCBhcmdjICkKLSAgIHsKLSAgICAgIHJldHVybiBwcmludFVzYWdlKCBhcmd2
ICk7Ci0gICB9Ci0KLSAgIHBhdGggPSBhcmd2W2luZGV4XTsKLSAgIHJldHVybiAwOworc3RhdGlj
IGludCBwYXJzZUNvbW1hbmRMaW5lKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10sIE9wdGlv
bnMqIG9wdHMpIHsKKyAgb3B0cy0+cGFyc2VPbmx5ID0gZmFsc2U7CisgIG9wdHMtPndyaXRlID0g
JnVzZVN0eWxlZFdyaXRlcjsKKyAgaWYgKGFyZ2MgPCAyKSB7CisgICAgcmV0dXJuIHByaW50VXNh
Z2UoYXJndik7CisgIH0KKyAgaW50IGluZGV4ID0gMTsKKyAgaWYgKEpzb246OlN0cmluZyhhcmd2
W2luZGV4XSkgPT0gIi0tanNvbi1jaGVja2VyIikgeworICAgIG9wdHMtPmZlYXR1cmVzID0gSnNv
bjo6RmVhdHVyZXM6OnN0cmljdE1vZGUoKTsKKyAgICBvcHRzLT5wYXJzZU9ubHkgPSB0cnVlOwor
ICAgICsraW5kZXg7CisgIH0KKyAgaWYgKEpzb246OlN0cmluZyhhcmd2W2luZGV4XSkgPT0gIi0t
anNvbi1jb25maWciKSB7CisgICAgcHJpbnRDb25maWcoKTsKKyAgICByZXR1cm4gMzsKKyAgfQor
ICBpZiAoSnNvbjo6U3RyaW5nKGFyZ3ZbaW5kZXhdKSA9PSAiLS1qc29uLXdyaXRlciIpIHsKKyAg
ICArK2luZGV4OworICAgIEpzb246OlN0cmluZyBjb25zdCB3cml0ZXJOYW1lKGFyZ3ZbaW5kZXgr
K10pOworICAgIGlmICh3cml0ZXJOYW1lID09ICJTdHlsZWRXcml0ZXIiKSB7CisgICAgICBvcHRz
LT53cml0ZSA9ICZ1c2VTdHlsZWRXcml0ZXI7CisgICAgfSBlbHNlIGlmICh3cml0ZXJOYW1lID09
ICJTdHlsZWRTdHJlYW1Xcml0ZXIiKSB7CisgICAgICBvcHRzLT53cml0ZSA9ICZ1c2VTdHlsZWRT
dHJlYW1Xcml0ZXI7CisgICAgfSBlbHNlIGlmICh3cml0ZXJOYW1lID09ICJCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlciIpIHsKKyAgICAgIG9wdHMtPndyaXRlID0gJnVzZUJ1aWx0U3R5bGVkU3RyZWFt
V3JpdGVyOworICAgIH0gZWxzZSB7CisgICAgICBwcmludGYoIlVua25vd24gJy0tanNvbi13cml0
ZXIgJXMnXG4iLCB3cml0ZXJOYW1lLmNfc3RyKCkpOworICAgICAgcmV0dXJuIDQ7CisgICAgfQor
ICB9CisgIGlmIChpbmRleCA9PSBhcmdjIHx8IGluZGV4ICsgMSA8IGFyZ2MpIHsKKyAgICByZXR1
cm4gcHJpbnRVc2FnZShhcmd2KTsKKyAgfQorICBvcHRzLT5wYXRoID0gYXJndltpbmRleF07Cisg
IHJldHVybiAwOwogfQotCi0KLWludCBtYWluKCBpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltd
ICkKLXsKLSAgIHN0ZDo6c3RyaW5nIHBhdGg7Ci0gICBKc29uOjpGZWF0dXJlcyBmZWF0dXJlczsK
LSAgIGJvb2wgcGFyc2VPbmx5OwotICAgaW50IGV4aXRDb2RlID0gcGFyc2VDb21tYW5kTGluZSgg
YXJnYywgYXJndiwgZmVhdHVyZXMsIHBhdGgsIHBhcnNlT25seSApOwotICAgaWYgKCBleGl0Q29k
ZSAhPSAwICkKLSAgIHsKK3N0YXRpYyBpbnQgcnVuVGVzdChPcHRpb25zIGNvbnN0JiBvcHRzKSB7
CisgIGludCBleGl0Q29kZSA9IDA7CisKKyAgSnNvbjo6U3RyaW5nIGlucHV0ID0gcmVhZElucHV0
VGVzdEZpbGUob3B0cy5wYXRoLmNfc3RyKCkpOworICBpZiAoaW5wdXQuZW1wdHkoKSkgeworICAg
IHByaW50ZigiRmFpbGVkIHRvIHJlYWQgaW5wdXQgb3IgZW1wdHkgaW5wdXQ6ICVzXG4iLCBvcHRz
LnBhdGguY19zdHIoKSk7CisgICAgcmV0dXJuIDM7CisgIH0KKworICBKc29uOjpTdHJpbmcgYmFz
ZVBhdGggPSByZW1vdmVTdWZmaXgob3B0cy5wYXRoLCAiLmpzb24iKTsKKyAgaWYgKCFvcHRzLnBh
cnNlT25seSAmJiBiYXNlUGF0aC5lbXB0eSgpKSB7CisgICAgcHJpbnRmKCJCYWQgaW5wdXQgcGF0
aC4gUGF0aCBkb2VzIG5vdCBlbmQgd2l0aCAnLmV4cGVjdGVkJzpcbiVzXG4iLAorICAgICAgICAg
ICBvcHRzLnBhdGguY19zdHIoKSk7CisgICAgcmV0dXJuIDM7CisgIH0KKworICBKc29uOjpTdHJp
bmcgY29uc3QgYWN0dWFsUGF0aCA9IGJhc2VQYXRoICsgIi5hY3R1YWwiOworICBKc29uOjpTdHJp
bmcgY29uc3QgcmV3cml0ZVBhdGggPSBiYXNlUGF0aCArICIucmV3cml0ZSI7CisgIEpzb246OlN0
cmluZyBjb25zdCByZXdyaXRlQWN0dWFsUGF0aCA9IGJhc2VQYXRoICsgIi5hY3R1YWwtcmV3cml0
ZSI7CisKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgZXhpdENvZGUgPSBwYXJzZUFuZFNhdmVWYWx1
ZVRyZWUoaW5wdXQsIGFjdHVhbFBhdGgsICJpbnB1dCIsIG9wdHMuZmVhdHVyZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMucGFyc2VPbmx5LCAmcm9vdCk7CisgIGlm
IChleGl0Q29kZSB8fCBvcHRzLnBhcnNlT25seSkgeworICAgIHJldHVybiBleGl0Q29kZTsKKyAg
fQorICBKc29uOjpTdHJpbmcgcmV3cml0ZTsKKyAgZXhpdENvZGUgPSByZXdyaXRlVmFsdWVUcmVl
KHJld3JpdGVQYXRoLCByb290LCBvcHRzLndyaXRlLCAmcmV3cml0ZSk7CisgIGlmIChleGl0Q29k
ZSkgeworICAgIHJldHVybiBleGl0Q29kZTsKKyAgfQorICBKc29uOjpWYWx1ZSByZXdyaXRlUm9v
dDsKKyAgZXhpdENvZGUgPSBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUocmV3cml0ZSwgcmV3cml0ZUFj
dHVhbFBhdGgsICJyZXdyaXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0cy5mZWF0dXJlcywgb3B0cy5wYXJzZU9ubHksICZyZXdyaXRlUm9vdCk7CisgIGlmIChleGl0
Q29kZSkgeworICAgIHJldHVybiBleGl0Q29kZTsKKyAgfQorICByZXR1cm4gMDsKK30KK2ludCBt
YWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pIHsKKyAgT3B0aW9ucyBvcHRzOworICB0
cnkgeworICAgIGludCBleGl0Q29kZSA9IHBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndiwgJm9w
dHMpOworICAgIGlmIChleGl0Q29kZSAhPSAwKSB7CisgICAgICBwcmludGYoIkZhaWxlZCB0byBw
YXJzZSBjb21tYW5kLWxpbmUuIik7CiAgICAgICByZXR1cm4gZXhpdENvZGU7Ci0gICB9Ci0KLSAg
IHRyeQotICAgewotICAgICAgc3RkOjpzdHJpbmcgaW5wdXQgPSByZWFkSW5wdXRUZXN0RmlsZSgg
cGF0aC5jX3N0cigpICk7Ci0gICAgICBpZiAoIGlucHV0LmVtcHR5KCkgKQotICAgICAgewotICAg
ICAgICAgcHJpbnRmKCAiRmFpbGVkIHRvIHJlYWQgaW5wdXQgb3IgZW1wdHkgaW5wdXQ6ICVzXG4i
LCBwYXRoLmNfc3RyKCkgKTsKLSAgICAgICAgIHJldHVybiAzOwotICAgICAgfQotCi0gICAgICBz
dGQ6OnN0cmluZyBiYXNlUGF0aCA9IHJlbW92ZVN1ZmZpeCggYXJndlsxXSwgIi5qc29uIiApOwot
ICAgICAgaWYgKCAhcGFyc2VPbmx5ICAmJiAgYmFzZVBhdGguZW1wdHkoKSApCi0gICAgICB7Ci0g
ICAgICAgICBwcmludGYoICJCYWQgaW5wdXQgcGF0aC4gUGF0aCBkb2VzIG5vdCBlbmQgd2l0aCAn
LmV4cGVjdGVkJzpcbiVzXG4iLCBwYXRoLmNfc3RyKCkgKTsKLSAgICAgICAgIHJldHVybiAzOwot
ICAgICAgfQotCi0gICAgICBzdGQ6OnN0cmluZyBhY3R1YWxQYXRoID0gYmFzZVBhdGggKyAiLmFj
dHVhbCI7Ci0gICAgICBzdGQ6OnN0cmluZyByZXdyaXRlUGF0aCA9IGJhc2VQYXRoICsgIi5yZXdy
aXRlIjsKLSAgICAgIHN0ZDo6c3RyaW5nIHJld3JpdGVBY3R1YWxQYXRoID0gYmFzZVBhdGggKyAi
LmFjdHVhbC1yZXdyaXRlIjsKLQotICAgICAgSnNvbjo6VmFsdWUgcm9vdDsKLSAgICAgIGV4aXRD
b2RlID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKCBpbnB1dCwgYWN0dWFsUGF0aCwgImlucHV0Iiwg
cm9vdCwgZmVhdHVyZXMsIHBhcnNlT25seSApOwotICAgICAgaWYgKCBleGl0Q29kZSA9PSAwICAm
JiAgIXBhcnNlT25seSApCi0gICAgICB7Ci0gICAgICAgICBzdGQ6OnN0cmluZyByZXdyaXRlOwot
ICAgICAgICAgZXhpdENvZGUgPSByZXdyaXRlVmFsdWVUcmVlKCByZXdyaXRlUGF0aCwgcm9vdCwg
cmV3cml0ZSApOwotICAgICAgICAgaWYgKCBleGl0Q29kZSA9PSAwICkKLSAgICAgICAgIHsKLSAg
ICAgICAgICAgIEpzb246OlZhbHVlIHJld3JpdGVSb290OwotICAgICAgICAgICAgZXhpdENvZGUg
PSBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUoIHJld3JpdGUsIHJld3JpdGVBY3R1YWxQYXRoLCAKLSAg
ICAgICAgICAgICAgICJyZXdyaXRlIiwgcmV3cml0ZVJvb3QsIGZlYXR1cmVzLCBwYXJzZU9ubHkg
KTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIGNhdGNoICggY29uc3Qgc3RkOjpleGNl
cHRpb24gJmUgKQotICAgewotICAgICAgcHJpbnRmKCAiVW5oYW5kbGVkIGV4Y2VwdGlvbjpcbiVz
XG4iLCBlLndoYXQoKSApOwotICAgICAgZXhpdENvZGUgPSAxOwotICAgfQotCi0gICByZXR1cm4g
ZXhpdENvZGU7CisgICAgfQorICAgIHJldHVybiBydW5UZXN0KG9wdHMpOworICB9IGNhdGNoIChj
b25zdCBzdGQ6OmV4Y2VwdGlvbiYgZSkgeworICAgIHByaW50ZigiVW5oYW5kbGVkIGV4Y2VwdGlv
bjpcbiVzXG4iLCBlLndoYXQoKSk7CisgICAgcmV0dXJuIDE7CisgIH0KIH0KIAorI2lmIGRlZmlu
ZWQoX19HTlVDX18pCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3NyYy9qc29udGVzdHJ1bm5lci9zY29uc2NyaXB0IGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRl
c3RydW5uZXIvc2NvbnNjcmlwdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU2OGUz
MTUzM2VmNDNlMDdiYmRlMzk3OWE3ODk2ZTVmNmYyYTNhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9qc29udGVzdHJ1bm5lci9zY29uc2Ny
aXB0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1JbXBvcnQoICdlbnZfdGVzdGluZyBi
dWlsZEpTT05UZXN0cycgKQotCi1idWlsZEpTT05UZXN0cyggZW52X3Rlc3RpbmcsIFNwbGl0KCAi
IiIKLSAgICBtYWluLmNwcAotICAgICAiIiIgKSwKLSAgICAnanNvbnRlc3RydW5uZXInICkKLQot
IyBGb3IgJ2NoZWNrJyB0byB3b3JrLCAnbGlicycgbXVzdCBiZSBidWlsdCBmaXJzdC4KLWVudl90
ZXN0aW5nLkRlcGVuZHMoJ2pzb250ZXN0cnVubmVyJywgJyNsaWJzJykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2Uvc3JjL2xpYl9qc29uL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vQ01ha2VM
aXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5MjA5MmFmN2E1ZTRmY2VmN2I0YzQ5YjNjNTcyZWI0NWZk
ZGQwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL0NNYWtlTGlzdHMudHh0
CkBAIC0wLDAgKzEsMTQ2IEBACitpZiggQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYICkKKyAgICAj
R2V0IGNvbXBpbGVyIHZlcnNpb24uCisgICAgZXhlY3V0ZV9wcm9jZXNzKCBDT01NQU5EICR7Q01B
S0VfQ1hYX0NPTVBJTEVSfSAtZHVtcHZlcnNpb24KKyAgICAgICAgICAgICAgICAgICAgIE9VVFBV
VF9WQVJJQUJMRSBHTlVDWFhfVkVSU0lPTiApCisKKyAgICAjLVdlcnJvcj0qIHdhcyBpbnRyb2R1
Y2VkIC1hZnRlci0gR0NDIDQuMS4yCisgICAgaWYoIEdOVUNYWF9WRVJTSU9OIFZFUlNJT05fR1JF
QVRFUiA0LjEuMiApCisgICAgICAgIHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZM
QUdTfSAtV2Vycm9yPXN0cmljdC1hbGlhc2luZyIpCisgICAgZW5kaWYoKQorZW5kaWYoIENNQUtF
X0NPTVBJTEVSX0lTX0dOVUNYWCApCisKK2luY2x1ZGUoQ2hlY2tJbmNsdWRlRmlsZUNYWCkKK2lu
Y2x1ZGUoQ2hlY2tUeXBlU2l6ZSkKK2luY2x1ZGUoQ2hlY2tTdHJ1Y3RIYXNNZW1iZXIpCitpbmNs
dWRlKENoZWNrQ1hYU3ltYm9sRXhpc3RzKQorCitjaGVja19pbmNsdWRlX2ZpbGVfY3h4KGNsb2Nh
bGUgSEFWRV9DTE9DQUxFKQorY2hlY2tfY3h4X3N5bWJvbF9leGlzdHMobG9jYWxlY29udiBjbG9j
YWxlIEhBVkVfTE9DQUxFQ09OVikKKworaWYoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xFU1MgMy4w
LjApCisgICAgIyBUaGUgIkxBTkdVQUdFIENYWCIgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQg
aW4gQ01ha2UgdmVyc2lvbnMgYmVsb3cgMywKKyAgICAjIHNvIHRoZSBDIGNvbXBpbGVyIGFuZCBo
ZWFkZXIgaGFzIHRvIGJlIHVzZWQuCisgICAgY2hlY2tfaW5jbHVkZV9maWxlKGxvY2FsZS5oIEhB
VkVfTE9DQUxFX0gpCisgICAgc2V0KENNQUtFX0VYVFJBX0lOQ0xVREVfRklMRVMgbG9jYWxlLmgp
CisgICAgY2hlY2tfdHlwZV9zaXplKCJzdHJ1Y3QgbGNvbnYiIExDT05WX1NJWkUpCisgICAgdW5z
ZXQoQ01BS0VfRVhUUkFfSU5DTFVERV9GSUxFUykKKyAgICBjaGVja19zdHJ1Y3RfaGFzX21lbWJl
cigic3RydWN0IGxjb252IiBkZWNpbWFsX3BvaW50IGxvY2FsZS5oIEhBVkVfREVDSU1BTF9QT0lO
VCkKK2Vsc2UoKQorICAgIHNldChDTUFLRV9FWFRSQV9JTkNMVURFX0ZJTEVTIGNsb2NhbGUpCisg
ICAgY2hlY2tfdHlwZV9zaXplKGxjb252IExDT05WX1NJWkUgTEFOR1VBR0UgQ1hYKQorICAgIHVu
c2V0KENNQUtFX0VYVFJBX0lOQ0xVREVfRklMRVMpCisgICAgY2hlY2tfc3RydWN0X2hhc19tZW1i
ZXIobGNvbnYgZGVjaW1hbF9wb2ludCBjbG9jYWxlIEhBVkVfREVDSU1BTF9QT0lOVCBMQU5HVUFH
RSBDWFgpCitlbmRpZigpCisKK2lmKE5PVCAoSEFWRV9DTE9DQUxFIEFORCBIQVZFX0xDT05WX1NJ
WkUgQU5EIEhBVkVfREVDSU1BTF9QT0lOVCBBTkQgSEFWRV9MT0NBTEVDT05WKSkKKyAgICBtZXNz
YWdlKFdBUk5JTkcgIkxvY2FsZSBmdW5jdGlvbmFsaXR5IGlzIG5vdCBzdXBwb3J0ZWQiKQorICAg
IGFkZF9jb21waWxlX2RlZmluaXRpb25zKEpTT05DUFBfTk9fTE9DQUxFX1NVUFBPUlQpCitlbmRp
ZigpCisKK3NldCggSlNPTkNQUF9JTkNMVURFX0RJUiAuLi8uLi9pbmNsdWRlICkKKworc2V0KCBQ
VUJMSUNfSEVBREVSUworICAgICR7SlNPTkNQUF9JTkNMVURFX0RJUn0vanNvbi9jb25maWcuaAor
ICAgICR7SlNPTkNQUF9JTkNMVURFX0RJUn0vanNvbi9mb3J3YXJkcy5oCisgICAgJHtKU09OQ1BQ
X0lOQ0xVREVfRElSfS9qc29uL2ZlYXR1cmVzLmgKKyAgICAke0pTT05DUFBfSU5DTFVERV9ESVJ9
L2pzb24vdmFsdWUuaAorICAgICR7SlNPTkNQUF9JTkNMVURFX0RJUn0vanNvbi9yZWFkZXIuaAor
ICAgICR7SlNPTkNQUF9JTkNMVURFX0RJUn0vanNvbi93cml0ZXIuaAorICAgICR7SlNPTkNQUF9J
TkNMVURFX0RJUn0vanNvbi9hc3NlcnRpb25zLmgKKyAgICAke1BST0pFQ1RfQklOQVJZX0RJUn0v
aW5jbHVkZS9qc29uL3ZlcnNpb24uaAorICAgICkKKworc291cmNlX2dyb3VwKCAiUHVibGljIEFQ
SSIgRklMRVMgJHtQVUJMSUNfSEVBREVSU30gKQorCitzZXQoanNvbmNwcF9zb3VyY2VzCisgICAg
ICAgICAgICAgICAganNvbl90b29sLmgKKyAgICAgICAgICAgICAgICBqc29uX3JlYWRlci5jcHAK
KyAgICAgICAgICAgICAgICBqc29uX3ZhbHVlaXRlcmF0b3IuaW5sCisgICAgICAgICAgICAgICAg
anNvbl92YWx1ZS5jcHAKKyAgICAgICAgICAgICAgICBqc29uX3dyaXRlci5jcHAKKyAgICAgICAg
ICAgICAgICB2ZXJzaW9uLmguaW4pCisKKyMgSW5zdGFsbCBpbnN0cnVjdGlvbnMgZm9yIHRoaXMg
dGFyZ2V0CitpZihKU09OQ1BQX1dJVEhfQ01BS0VfUEFDS0FHRSkKKyAgICBzZXQoSU5TVEFMTF9F
WFBPUlQgRVhQT1JUIGpzb25jcHApCitlbHNlKEpTT05DUFBfV0lUSF9DTUFLRV9QQUNLQUdFKQor
ICAgIHNldChJTlNUQUxMX0VYUE9SVCkKK2VuZGlmKCkKKworaWYoQlVJTERfU0hBUkVEX0xJQlMp
CisgICAgYWRkX2NvbXBpbGVfZGVmaW5pdGlvbnMoIEpTT05fRExMX0JVSUxEICkKK2VuZGlmKCkK
KworCithZGRfbGlicmFyeShqc29uY3BwX2xpYiAke1BVQkxJQ19IRUFERVJTfSAke2pzb25jcHBf
c291cmNlc30pCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoIGpzb25jcHBfbGliIFBST1BFUlRJRVMg
VkVSU0lPTiAke0pTT05DUFBfVkVSU0lPTn0gU09WRVJTSU9OICR7SlNPTkNQUF9TT1ZFUlNJT059
KQorc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCBqc29uY3BwX2xpYiBQUk9QRVJUSUVTIE9VVFBVVF9O
QU1FIGpzb25jcHAKKyAgICAgICAgICAgICAgICAgICAgICAgIERFQlVHX09VVFBVVF9OQU1FIGpz
b25jcHAke0RFQlVHX0xJQk5BTUVfU1VGRklYfSApCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoIGpz
b25jcHBfbGliIFBST1BFUlRJRVMgUE9TSVRJT05fSU5ERVBFTkRFTlRfQ09ERSBPTikKKworIyBT
ZXQgbGlicmFyeSdzIHJ1bnRpbWUgc2VhcmNoIHBhdGggb24gT1NYCitpZihBUFBMRSkKKyAgICBz
ZXRfdGFyZ2V0X3Byb3BlcnRpZXMoIGpzb25jcHBfbGliIFBST1BFUlRJRVMgSU5TVEFMTF9SUEFU
SCAiQGxvYWRlcl9wYXRoLy4iICkKK2VuZGlmKCkKKworIyBTcGVjaWZ5IGNvbXBpbGVyIGZlYXR1
cmVzIHJlcXVpcmVkIHdoZW4gY29tcGlsaW5nIGEgZ2l2ZW4gdGFyZ2V0LgorIyBTZWUgaHR0cHM6
Ly9jbWFrZS5vcmcvY21ha2UvaGVscC92My4xL3Byb3BfZ2JsL0NNQUtFX0NYWF9LTk9XTl9GRUFU
VVJFUy5odG1sI3Byb3BfZ2JsOkNNQUtFX0NYWF9LTk9XTl9GRUFUVVJFUworIyBmb3IgY29tcGxl
dGUgbGlzdCBvZiBmZWF0dXJlcyBhdmFpbGFibGUKK3RhcmdldF9jb21waWxlX2ZlYXR1cmVzKGpz
b25jcHBfbGliIFBVQkxJQworICAgICAgICBjeHhfc3RkXzExICMgQ29tcGlsZXIgbW9kZSBpcyBh
d2FyZSBvZiBDKysgMTEuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2FsaWduYXMgIyBBbGlnbm1l
bnQgY29udHJvbCBhbGlnbmFzLCBhcyBkZWZpbmVkIGluIE4yMzQxLgorICAgICAgICAjTVNWQyAx
OTAwIGN4eF9hbGlnbm9mICMgQWxpZ25tZW50IGNvbnRyb2wgYWxpZ25vZiwgYXMgZGVmaW5lZCBp
biBOMjM0MS4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhfYXR0cmlidXRlcyAjIEdlbmVyaWMgYXR0
cmlidXRlcywgYXMgZGVmaW5lZCBpbiBOMjc2MS4KKyAgICAgICAgY3h4X2F1dG9fdHlwZSAjIEF1
dG9tYXRpYyB0eXBlIGRlZHVjdGlvbiwgYXMgZGVmaW5lZCBpbiBOMTk4NC4KKyAgICAgICAgI01T
VkMgMTkwMCBjeHhfY29uc3RleHByICMgQ29uc3RhbnQgZXhwcmVzc2lvbnMsIGFzIGRlZmluZWQg
aW4gTjIyMzUuCisgICAgICAgIGN4eF9kZWNsdHlwZSAjIERlY2x0eXBlLCBhcyBkZWZpbmVkIGlu
IE4yMzQzLgorICAgICAgICBjeHhfZGVmYXVsdF9mdW5jdGlvbl90ZW1wbGF0ZV9hcmdzICMgRGVm
YXVsdCB0ZW1wbGF0ZSBhcmd1bWVudHMgZm9yIGZ1bmN0aW9uIHRlbXBsYXRlcywgYXMgZGVmaW5l
ZCBpbiBEUjIyNgorICAgICAgICBjeHhfZGVmYXVsdGVkX2Z1bmN0aW9ucyAjIERlZmF1bHRlZCBm
dW5jdGlvbnMsIGFzIGRlZmluZWQgaW4gTjIzNDYuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2Rl
ZmF1bHRlZF9tb3ZlX2luaXRpYWxpemVycyAjIERlZmF1bHRlZCBtb3ZlIGluaXRpYWxpemVycywg
YXMgZGVmaW5lZCBpbiBOMzA1My4KKyAgICAgICAgY3h4X2RlbGVnYXRpbmdfY29uc3RydWN0b3Jz
ICMgRGVsZWdhdGluZyBjb25zdHJ1Y3RvcnMsIGFzIGRlZmluZWQgaW4gTjE5ODYuCisgICAgICAg
ICNNU1ZDIDE5MDAgY3h4X2RlbGV0ZWRfZnVuY3Rpb25zICMgRGVsZXRlZCBmdW5jdGlvbnMsIGFz
IGRlZmluZWQgaW4gTjIzNDYuCisgICAgICAgIGN4eF9lbnVtX2ZvcndhcmRfZGVjbGFyYXRpb25z
ICMgRW51bSBmb3J3YXJkIGRlY2xhcmF0aW9ucywgYXMgZGVmaW5lZCBpbiBOMjc2NC4KKyAgICAg
ICAgY3h4X2V4cGxpY2l0X2NvbnZlcnNpb25zICMgRXhwbGljaXQgY29udmVyc2lvbiBvcGVyYXRv
cnMsIGFzIGRlZmluZWQgaW4gTjI0MzcuCisgICAgICAgIGN4eF9leHRlbmRlZF9mcmllbmRfZGVj
bGFyYXRpb25zICMgRXh0ZW5kZWQgZnJpZW5kIGRlY2xhcmF0aW9ucywgYXMgZGVmaW5lZCBpbiBO
MTc5MS4KKyAgICAgICAgY3h4X2V4dGVybl90ZW1wbGF0ZXMgIyBFeHRlcm4gdGVtcGxhdGVzLCBh
cyBkZWZpbmVkIGluIE4xOTg3LgorICAgICAgICBjeHhfZmluYWwgIyBPdmVycmlkZSBjb250cm9s
IGZpbmFsIGtleXdvcmQsIGFzIGRlZmluZWQgaW4gTjI5MjgsIE4zMjA2IGFuZCBOMzI3Mi4KKyAg
ICAgICAgI01TVkMgMTkwMCBjeHhfZnVuY19pZGVudGlmaWVyICMgUHJlZGVmaW5lZCBfX2Z1bmNf
XyBpZGVudGlmaWVyLCBhcyBkZWZpbmVkIGluIE4yMzQwLgorICAgICAgICAjTVNWQyAxOTAwIGN4
eF9nZW5lcmFsaXplZF9pbml0aWFsaXplcnMgIyBJbml0aWFsaXplciBsaXN0cywgYXMgZGVmaW5l
ZCBpbiBOMjY3Mi4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhfaW5oZXJpdGluZ19jb25zdHJ1Y3Rv
cnMgIyBJbmhlcml0aW5nIGNvbnN0cnVjdG9ycywgYXMgZGVmaW5lZCBpbiBOMjU0MC4KKyAgICAg
ICAgI01TVkMgMTkwMCBjeHhfaW5saW5lX25hbWVzcGFjZXMgIyBJbmxpbmUgbmFtZXNwYWNlcywg
YXMgZGVmaW5lZCBpbiBOMjUzNS4KKyAgICAgICAgY3h4X2xhbWJkYXMgIyBMYW1iZGEgZnVuY3Rp
b25zLCBhcyBkZWZpbmVkIGluIE4yOTI3LgorICAgICAgICAjTVNWQyAxOTAwIGN4eF9sb2NhbF90
eXBlX3RlbXBsYXRlX2FyZ3MgIyBMb2NhbCBhbmQgdW5uYW1lZCB0eXBlcyBhcyB0ZW1wbGF0ZSBh
cmd1bWVudHMsIGFzIGRlZmluZWQgaW4gTjI2NTcuCisgICAgICAgIGN4eF9sb25nX2xvbmdfdHlw
ZSAjIGxvbmcgbG9uZyB0eXBlLCBhcyBkZWZpbmVkIGluIE4xODExLgorICAgICAgICAjTVNWQyAx
OTAwIGN4eF9ub2V4Y2VwdCAjIEV4Y2VwdGlvbiBzcGVjaWZpY2F0aW9ucywgYXMgZGVmaW5lZCBp
biBOMzA1MC4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhfbm9uc3RhdGljX21lbWJlcl9pbml0ICMg
Tm9uLXN0YXRpYyBkYXRhIG1lbWJlciBpbml0aWFsaXphdGlvbiwgYXMgZGVmaW5lZCBpbiBOMjc1
Ni4KKyAgICAgICAgY3h4X251bGxwdHIgIyBOdWxsIHBvaW50ZXIsIGFzIGRlZmluZWQgaW4gTjI0
MzEuCisgICAgICAgIGN4eF9vdmVycmlkZSAjIE92ZXJyaWRlIGNvbnRyb2wgb3ZlcnJpZGUga2V5
d29yZCwgYXMgZGVmaW5lZCBpbiBOMjkyOCwgTjMyMDYgYW5kIE4zMjcyLgorICAgICAgICBjeHhf
cmFuZ2VfZm9yICMgUmFuZ2UtYmFzZWQgZm9yLCBhcyBkZWZpbmVkIGluIE4yOTMwLgorICAgICAg
ICBjeHhfcmF3X3N0cmluZ19saXRlcmFscyAjIFJhdyBzdHJpbmcgbGl0ZXJhbHMsIGFzIGRlZmlu
ZWQgaW4gTjI0NDIuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X3JlZmVyZW5jZV9xdWFsaWZpZWRf
ZnVuY3Rpb25zICMgUmVmZXJlbmNlIHF1YWxpZmllZCBmdW5jdGlvbnMsIGFzIGRlZmluZWQgaW4g
TjI0MzkuCisgICAgICAgIGN4eF9yaWdodF9hbmdsZV9icmFja2V0cyAjIFJpZ2h0IGFuZ2xlIGJy
YWNrZXQgcGFyc2luZywgYXMgZGVmaW5lZCBpbiBOMTc1Ny4KKyAgICAgICAgY3h4X3J2YWx1ZV9y
ZWZlcmVuY2VzICMgUi12YWx1ZSByZWZlcmVuY2VzLCBhcyBkZWZpbmVkIGluIE4yMTE4LgorICAg
ICAgICAjTVNWQyAxOTAwIGN4eF9zaXplb2ZfbWVtYmVyICMgU2l6ZSBvZiBub24tc3RhdGljIGRh
dGEgbWVtYmVycywgYXMgZGVmaW5lZCBpbiBOMjI1My4KKyAgICAgICAgY3h4X3N0YXRpY19hc3Nl
cnQgIyBTdGF0aWMgYXNzZXJ0LCBhcyBkZWZpbmVkIGluIE4xNzIwLgorICAgICAgICBjeHhfc3Ry
b25nX2VudW1zICMgU3Ryb25nbHkgdHlwZWQgZW51bXMsIGFzIGRlZmluZWQgaW4gTjIzNDcuCisg
ICAgICAgICNNU1ZDIDE5MDAgY3h4X3RocmVhZF9sb2NhbCAjIFRocmVhZC1sb2NhbCB2YXJpYWJs
ZXMsIGFzIGRlZmluZWQgaW4gTjI2NTkuCisgICAgICAgIGN4eF90cmFpbGluZ19yZXR1cm5fdHlw
ZXMgIyBBdXRvbWF0aWMgZnVuY3Rpb24gcmV0dXJuIHR5cGUsIGFzIGRlZmluZWQgaW4gTjI1NDEu
CisgICAgICAgICNNU1ZDIDE5MDAgY3h4X3VuaWNvZGVfbGl0ZXJhbHMgIyBVbmljb2RlIHN0cmlu
ZyBsaXRlcmFscywgYXMgZGVmaW5lZCBpbiBOMjQ0Mi4KKyAgICAgICAgY3h4X3VuaWZvcm1faW5p
dGlhbGl6YXRpb24gIyBVbmlmb3JtIGluaXRpYWxpemF0aW9uLCBhcyBkZWZpbmVkIGluIE4yNjQw
LgorICAgICAgICAjTVNWQyAxOTAwIGN4eF91bnJlc3RyaWN0ZWRfdW5pb25zICMgVW5yZXN0cmlj
dGVkIHVuaW9ucywgYXMgZGVmaW5lZCBpbiBOMjU0NC4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhf
dXNlcl9saXRlcmFscyAjIFVzZXItZGVmaW5lZCBsaXRlcmFscywgYXMgZGVmaW5lZCBpbiBOMjc2
NS4KKyAgICAgICAgY3h4X3ZhcmlhZGljX21hY3JvcyAjIFZhcmlhZGljIG1hY3JvcywgYXMgZGVm
aW5lZCBpbiBOMTY1My4KKyAgICAgICAgY3h4X3ZhcmlhZGljX3RlbXBsYXRlcyAjIFZhcmlhZGlj
IHRlbXBsYXRlcywgYXMgZGVmaW5lZCBpbiBOMjI0Mi4KKykKKworaW5zdGFsbCggVEFSR0VUUyBq
c29uY3BwX2xpYiAke0lOU1RBTExfRVhQT1JUfQorICAgICAgICAgIFJVTlRJTUUgREVTVElOQVRJ
T04gJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0KKyAgICAgICAgICBMSUJSQVJZIERFU1RJTkFUSU9O
ICR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9CisgICAgICAgICAgQVJDSElWRSBERVNUSU5BVElPTiAk
e0NNQUtFX0lOU1RBTExfTElCRElSfSkKKworaWYoTk9UIENNQUtFX1ZFUlNJT04gVkVSU0lPTl9M
RVNTIDIuOC4xMSkKKyAgICB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcygganNvbmNwcF9saWIg
UFVCTElDCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ8SU5TVEFMTF9JTlRFUkZB
Q0U6JHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9PgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfTElTVF9ESVJ9LyR7SlNP
TkNQUF9JTkNMVURFX0RJUn0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ8QlVJ
TERfSU5URVJGQUNFOiR7UFJPSkVDVF9CSU5BUllfRElSfS9pbmNsdWRlL2pzb24+KQorZW5kaWYo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl9iYXRjaGFsbG9jYXRvci5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9zcmMvbGliX2pzb24vanNvbl9iYXRjaGFsbG9jYXRvci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyYTdjMDI0MTcxYzc5OGFmMzVhZjVlMjg3ZDQ2ZmFjMDNjZTA5YTc4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xp
Yl9qc29uL2pzb25fYmF0Y2hhbGxvY2F0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNyArMCww
IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJp
YnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQK
LS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQotCi0jaWZuZGVmIEpTT05DUFBfQkFUQ0hBTExPQ0FUT1JfSF9JTkNMVURFRAotIyBkZWZp
bmUgSlNPTkNQUF9CQVRDSEFMTE9DQVRPUl9IX0lOQ0xVREVECi0KLSMgaW5jbHVkZSA8c3RkbGli
Lmg+Ci0jIGluY2x1ZGUgPGFzc2VydC5oPgotCi0jIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURF
X0lNUExFTUVOVEFUSU9OCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLyogRmFzdCBtZW1vcnkgYWxs
b2NhdG9yLgotICoKLSAqIFRoaXMgbWVtb3J5IGFsbG9jYXRvciBhbGxvY2F0ZXMgbWVtb3J5IGZv
ciBhIGJhdGNoIG9mIG9iamVjdCAoc3BlY2lmaWVkIGJ5Ci0gKiB0aGUgcGFnZSBzaXplLCB0aGUg
bnVtYmVyIG9mIG9iamVjdCBpbiBlYWNoIHBhZ2UpLgotICoKLSAqIEl0IGRvZXMgbm90IGFsbG93
IHRoZSBkZXN0cnVjdGlvbiBvZiBhIHNpbmdsZSBvYmplY3QuIEFsbCB0aGUgYWxsb2NhdGVkIG9i
amVjdHMKLSAqIGNhbiBiZSBkZXN0cm95ZWQgYXQgb25jZS4gVGhlIG1lbW9yeSBjYW4gYmUgZWl0
aGVyIHJlbGVhc2VkIG9yIHJldXNlZCBmb3IgZnV0dXJlCi0gKiBhbGxvY2F0aW9uLgotICogCi0g
KiBUaGUgaW4tcGxhY2UgbmV3IG9wZXJhdG9yIG11c3QgYmUgdXNlZCB0byBjb25zdHJ1Y3QgdGhl
IG9iamVjdCB1c2luZyB0aGUgcG9pbnRlcgotICogcmV0dXJuZWQgYnkgYWxsb2NhdGUuCi0gKi8K
LXRlbXBsYXRlPHR5cGVuYW1lIEFsbG9jYXRlZFR5cGUKLSAgICAgICAgLGNvbnN0IHVuc2lnbmVk
IGludCBvYmplY3RQZXJBbGxvY2F0aW9uPgotY2xhc3MgQmF0Y2hBbGxvY2F0b3IKLXsKLXB1Ymxp
YzoKLSAgIEJhdGNoQWxsb2NhdG9yKCB1bnNpZ25lZCBpbnQgb2JqZWN0c1BlclBhZ2UgPSAyNTUg
KQotICAgICAgOiBmcmVlSGVhZF8oIDAgKQotICAgICAgLCBvYmplY3RzUGVyUGFnZV8oIG9iamVj
dHNQZXJQYWdlICkKLSAgIHsKLS8vICAgICAgcHJpbnRmKCAiU2l6ZTogJWQgPT4gJXNcbiIsIHNp
emVvZihBbGxvY2F0ZWRUeXBlKSwgdHlwZWlkKEFsbG9jYXRlZFR5cGUpLm5hbWUoKSApOwotICAg
ICAgYXNzZXJ0KCBzaXplb2YoQWxsb2NhdGVkVHlwZSkgKiBvYmplY3RQZXJBbGxvY2F0aW9uID49
IHNpemVvZihBbGxvY2F0ZWRUeXBlICopICk7IC8vIFdlIG11c3QgYmUgYWJsZSB0byBzdG9yZSBh
IHNsaXN0IGluIHRoZSBvYmplY3QgZnJlZSBzcGFjZS4KLSAgICAgIGFzc2VydCggb2JqZWN0c1Bl
clBhZ2UgPj0gMTYgKTsKLSAgICAgIGJhdGNoZXNfID0gYWxsb2NhdGVCYXRjaCggMCApOyAgIC8v
IGFsbG9jYXRlZCBhIGR1bW15IHBhZ2UKLSAgICAgIGN1cnJlbnRCYXRjaF8gPSBiYXRjaGVzXzsK
LSAgIH0KLQotICAgfkJhdGNoQWxsb2NhdG9yKCkKLSAgIHsKLSAgICAgIGZvciAoIEJhdGNoSW5m
byAqYmF0Y2ggPSBiYXRjaGVzXzsgYmF0Y2g7ICApCi0gICAgICB7Ci0gICAgICAgICBCYXRjaElu
Zm8gKm5leHRCYXRjaCA9IGJhdGNoLT5uZXh0XzsKLSAgICAgICAgIGZyZWUoIGJhdGNoICk7Ci0g
ICAgICAgICBiYXRjaCA9IG5leHRCYXRjaDsKLSAgICAgIH0KLSAgIH0KLQotICAgLy8vIGFsbG9j
YXRlIHNwYWNlIGZvciBhbiBhcnJheSBvZiBvYmplY3RQZXJBbGxvY2F0aW9uIG9iamVjdC4KLSAg
IC8vLyBAd2FybmluZyBpdCBpcyB0aGUgcmVzcG9uc2FiaWxpdHkgb2YgdGhlIGNhbGxlciB0byBj
YWxsIG9iamVjdHMgY29uc3RydWN0b3JzLgotICAgQWxsb2NhdGVkVHlwZSAqYWxsb2NhdGUoKQot
ICAgewotICAgICAgaWYgKCBmcmVlSGVhZF8gKSAvLyByZXR1cm5zIG5vZGUgZnJvbSBmcmVlIGxp
c3QuCi0gICAgICB7Ci0gICAgICAgICBBbGxvY2F0ZWRUeXBlICpvYmplY3QgPSBmcmVlSGVhZF87
Ci0gICAgICAgICBmcmVlSGVhZF8gPSAqKEFsbG9jYXRlZFR5cGUgKiopb2JqZWN0OwotICAgICAg
ICAgcmV0dXJuIG9iamVjdDsKLSAgICAgIH0KLSAgICAgIGlmICggY3VycmVudEJhdGNoXy0+dXNl
ZF8gPT0gY3VycmVudEJhdGNoXy0+ZW5kXyApCi0gICAgICB7Ci0gICAgICAgICBjdXJyZW50QmF0
Y2hfID0gY3VycmVudEJhdGNoXy0+bmV4dF87Ci0gICAgICAgICB3aGlsZSAoIGN1cnJlbnRCYXRj
aF8gICYmICBjdXJyZW50QmF0Y2hfLT51c2VkXyA9PSBjdXJyZW50QmF0Y2hfLT5lbmRfICkKLSAg
ICAgICAgICAgIGN1cnJlbnRCYXRjaF8gPSBjdXJyZW50QmF0Y2hfLT5uZXh0XzsKLQotICAgICAg
ICAgaWYgKCAhY3VycmVudEJhdGNoXyAgKSAvLyBubyBmcmVlIGJhdGNoIGZvdW5kLCBhbGxvY2F0
ZSBhIG5ldyBvbmUKLSAgICAgICAgIHsgCi0gICAgICAgICAgICBjdXJyZW50QmF0Y2hfID0gYWxs
b2NhdGVCYXRjaCggb2JqZWN0c1BlclBhZ2VfICk7Ci0gICAgICAgICAgICBjdXJyZW50QmF0Y2hf
LT5uZXh0XyA9IGJhdGNoZXNfOyAvLyBpbnNlcnQgYXQgdGhlIGhlYWQgb2YgdGhlIGxpc3QKLSAg
ICAgICAgICAgIGJhdGNoZXNfID0gY3VycmVudEJhdGNoXzsKLSAgICAgICAgIH0KLSAgICAgIH0K
LSAgICAgIEFsbG9jYXRlZFR5cGUgKmFsbG9jYXRlZCA9IGN1cnJlbnRCYXRjaF8tPnVzZWRfOwot
ICAgICAgY3VycmVudEJhdGNoXy0+dXNlZF8gKz0gb2JqZWN0UGVyQWxsb2NhdGlvbjsKLSAgICAg
IHJldHVybiBhbGxvY2F0ZWQ7Ci0gICB9Ci0KLSAgIC8vLyBSZWxlYXNlIHRoZSBvYmplY3QuCi0g
ICAvLy8gQHdhcm5pbmcgaXQgaXMgdGhlIHJlc3BvbnNhYmlsaXR5IG9mIHRoZSBjYWxsZXIgdG8g
YWN0dWFsbHkgZGVzdHJ1Y3QgdGhlIG9iamVjdC4KLSAgIHZvaWQgcmVsZWFzZSggQWxsb2NhdGVk
VHlwZSAqb2JqZWN0ICkKLSAgIHsKLSAgICAgIGFzc2VydCggb2JqZWN0ICE9IDAgKTsKLSAgICAg
ICooQWxsb2NhdGVkVHlwZSAqKilvYmplY3QgPSBmcmVlSGVhZF87Ci0gICAgICBmcmVlSGVhZF8g
PSBvYmplY3Q7Ci0gICB9Ci0KLXByaXZhdGU6Ci0gICBzdHJ1Y3QgQmF0Y2hJbmZvCi0gICB7Ci0g
ICAgICBCYXRjaEluZm8gKm5leHRfOwotICAgICAgQWxsb2NhdGVkVHlwZSAqdXNlZF87Ci0gICAg
ICBBbGxvY2F0ZWRUeXBlICplbmRfOwotICAgICAgQWxsb2NhdGVkVHlwZSBidWZmZXJfW29iamVj
dFBlckFsbG9jYXRpb25dOwotICAgfTsKLQotICAgLy8gZGlzYWJsZWQgY29weSBjb25zdHJ1Y3Rv
ciBhbmQgYXNzaWduZW1lbnQgb3BlcmF0b3IuCi0gICBCYXRjaEFsbG9jYXRvciggY29uc3QgQmF0
Y2hBbGxvY2F0b3IgJiApOwotICAgdm9pZCBvcGVyYXRvciA9KCBjb25zdCBCYXRjaEFsbG9jYXRv
ciAmKTsKLQotICAgc3RhdGljIEJhdGNoSW5mbyAqYWxsb2NhdGVCYXRjaCggdW5zaWduZWQgaW50
IG9iamVjdHNQZXJQYWdlICkKLSAgIHsKLSAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBtYWxsb2NT
aXplID0gc2l6ZW9mKEJhdGNoSW5mbykgLSBzaXplb2YoQWxsb2NhdGVkVHlwZSkqIG9iamVjdFBl
ckFsbG9jYXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzaXplb2YoQWxs
b2NhdGVkVHlwZSkgKiBvYmplY3RQZXJBbGxvY2F0aW9uICogb2JqZWN0c1BlclBhZ2U7Ci0gICAg
ICBCYXRjaEluZm8gKmJhdGNoID0gc3RhdGljX2Nhc3Q8QmF0Y2hJbmZvKj4oIG1hbGxvYyggbWFs
bG9jU2l6ZSApICk7Ci0gICAgICBiYXRjaC0+bmV4dF8gPSAwOwotICAgICAgYmF0Y2gtPnVzZWRf
ID0gYmF0Y2gtPmJ1ZmZlcl87Ci0gICAgICBiYXRjaC0+ZW5kXyA9IGJhdGNoLT5idWZmZXJfICsg
b2JqZWN0c1BlclBhZ2U7Ci0gICAgICByZXR1cm4gYmF0Y2g7Ci0gICB9Ci0KLSAgIEJhdGNoSW5m
byAqYmF0Y2hlc187Ci0gICBCYXRjaEluZm8gKmN1cnJlbnRCYXRjaF87Ci0gICAvLy8gSGVhZCBv
ZiBhIHNpbmdsZSBsaW5rZWQgbGlzdCB3aXRoaW4gdGhlIGFsbG9jYXRlZCBzcGFjZSBvZiBmcmVl
ZWQgb2JqZWN0Ci0gICBBbGxvY2F0ZWRUeXBlICpmcmVlSGVhZF87Ci0gICB1bnNpZ25lZCBpbnQg
b2JqZWN0c1BlclBhZ2VfOwotfTsKLQotCi19IC8vIG5hbWVzcGFjZSBKc29uCi0KLSMgZW5kaWYg
Ly8gaWZuZGVmIEpTT05DUFBfRE9DX0lOQ0xVREVfSU1QTEVNRU5UQVRJT04KLQotI2VuZGlmIC8v
IEpTT05DUFBfQkFUQ0hBTExPQ0FUT1JfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMv
bGliX2pzb24vanNvbl9pbnRlcm5hbGFycmF5LmlubCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25f
aW50ZXJuYWxhcnJheS5pbmwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlOGI4ZWZm
NDFlNDJlMTJiMDliODc4OTE2OGE5ZjQ0ZDhkYzRkNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl9pbnRlcm5hbGFy
cmF5LmlubAorKysgL2Rldi9udWxsCkBAIC0xLDQ1NCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAw
Ny0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91
ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0vLyBpbmNsdWRlZCBi
eSBqc29uX3ZhbHVlLmNwcAotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlSW50ZXJuYWxBcnJheQotLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1WYWx1ZUFycmF5QWxsb2Nh
dG9yOjp+VmFsdWVBcnJheUFsbG9jYXRvcigpCi17Ci19Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gY2xh
c3MgRGVmYXVsdFZhbHVlQXJyYXlBbGxvY2F0b3IKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotI2lmZGVmIEpTT05f
VVNFX1NJTVBMRV9JTlRFUk5BTF9BTExPQ0FUT1IKLWNsYXNzIERlZmF1bHRWYWx1ZUFycmF5QWxs
b2NhdG9yIDogcHVibGljIFZhbHVlQXJyYXlBbGxvY2F0b3IKLXsKLXB1YmxpYzogLy8gb3ZlcnJp
ZGRlbiBmcm9tIFZhbHVlQXJyYXlBbGxvY2F0b3IKLSAgIHZpcnR1YWwgfkRlZmF1bHRWYWx1ZUFy
cmF5QWxsb2NhdG9yKCkKLSAgIHsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJy
YXkgKm5ld0FycmF5KCkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbEFycmF5
KCk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheUNvcHko
IGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKQotICAgewotICAgICAgcmV0dXJuIG5l
dyBWYWx1ZUludGVybmFsQXJyYXkoIG90aGVyICk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCBk
ZXN0cnVjdEFycmF5KCBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5ICkKLSAgIHsKLSAgICAgIGRl
bGV0ZSBhcnJheTsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlYWxsb2NhdGVBcnJheVBhZ2VJ
bmRleCggVmFsdWUgKiomaW5kZXhlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCAmaW5kZXhDb3VudCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJh
eTo6UGFnZUluZGV4IG1pbk5ld0luZGV4Q291bnQgKQotICAgewotICAgICAgVmFsdWVJbnRlcm5h
bEFycmF5OjpQYWdlSW5kZXggbmV3SW5kZXhDb3VudCA9IChpbmRleENvdW50KjMpLzIgKyAxOwot
ICAgICAgaWYgKCBtaW5OZXdJbmRleENvdW50ID4gbmV3SW5kZXhDb3VudCApCi0gICAgICAgICBu
ZXdJbmRleENvdW50ID0gbWluTmV3SW5kZXhDb3VudDsKLSAgICAgIHZvaWQgKm5ld0luZGV4ZXMg
PSByZWFsbG9jKCBpbmRleGVzLCBzaXplb2YoVmFsdWUqKSAqIG5ld0luZGV4Q291bnQgKTsKLSAg
ICAgIEpTT05fQVNTRVJUX01FU1NBR0UobmV3SW5kZXhlcywgIkNvdWxkbid0IHJlYWxsb2MuIik7
Ci0gICAgICBpbmRleENvdW50ID0gbmV3SW5kZXhDb3VudDsKLSAgICAgIGluZGV4ZXMgPSBzdGF0
aWNfY2FzdDxWYWx1ZSAqKj4oIG5ld0luZGV4ZXMgKTsKLSAgIH0KLSAgIHZpcnR1YWwgdm9pZCBy
ZWxlYXNlQXJyYXlQYWdlSW5kZXgoIFZhbHVlICoqaW5kZXhlcywgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBpbmRl
eENvdW50ICkKLSAgIHsKLSAgICAgIGlmICggaW5kZXhlcyApCi0gICAgICAgICBmcmVlKCBpbmRl
eGVzICk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWUgKmFsbG9jYXRlQXJyYXlQYWdlKCkKLSAg
IHsKLSAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxWYWx1ZSAqPiggbWFsbG9jKCBzaXplb2YoVmFs
dWUpICogVmFsdWVJbnRlcm5hbEFycmF5OjppdGVtc1BlclBhZ2UgKSApOwotICAgfQotCi0gICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZUFycmF5UGFnZSggVmFsdWUgKnZhbHVlICkKLSAgIHsKLSAgICAg
IGlmICggdmFsdWUgKQotICAgICAgICAgZnJlZSggdmFsdWUgKTsKLSAgIH0KLX07Ci0KLSNlbHNl
IC8vICNpZmRlZiBKU09OX1VTRV9TSU1QTEVfSU5URVJOQUxfQUxMT0NBVE9SCi0vLy8gQHRvZG8g
bWFrZSB0aGlzIHRocmVhZC1zYWZlIChsb2NrIHdoZW4gYWNjZXNzaWduIGJhdGNoIGFsbG9jYXRv
cikKLWNsYXNzIERlZmF1bHRWYWx1ZUFycmF5QWxsb2NhdG9yIDogcHVibGljIFZhbHVlQXJyYXlB
bGxvY2F0b3IKLXsKLXB1YmxpYzogLy8gb3ZlcnJpZGRlbiBmcm9tIFZhbHVlQXJyYXlBbGxvY2F0
b3IKLSAgIHZpcnR1YWwgfkRlZmF1bHRWYWx1ZUFycmF5QWxsb2NhdG9yKCkKLSAgIHsKLSAgIH0K
LQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5KCkKLSAgIHsKLSAgICAg
IFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXkgPSBhcnJheXNBbGxvY2F0b3JfLmFsbG9jYXRlKCk7
Ci0gICAgICBuZXcgKGFycmF5KSBWYWx1ZUludGVybmFsQXJyYXkoKTsgLy8gcGxhY2VtZW50IG5l
dwotICAgICAgcmV0dXJuIGFycmF5OwotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxB
cnJheSAqbmV3QXJyYXlDb3B5KCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLSAg
IHsKLSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXkgPSBhcnJheXNBbGxvY2F0b3JfLmFs
bG9jYXRlKCk7Ci0gICAgICBuZXcgKGFycmF5KSBWYWx1ZUludGVybmFsQXJyYXkoIG90aGVyICk7
IC8vIHBsYWNlbWVudCBuZXcKLSAgICAgIHJldHVybiBhcnJheTsKLSAgIH0KLQotICAgdmlydHVh
bCB2b2lkIGRlc3RydWN0QXJyYXkoIFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXkgKQotICAgewot
ICAgICAgaWYgKCBhcnJheSApCi0gICAgICB7Ci0gICAgICAgICBhcnJheS0+flZhbHVlSW50ZXJu
YWxBcnJheSgpOwotICAgICAgICAgYXJyYXlzQWxsb2NhdG9yXy5yZWxlYXNlKCBhcnJheSApOwot
ICAgICAgfQotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgcmVhbGxvY2F0ZUFycmF5UGFnZUluZGV4
KCBWYWx1ZSAqKiZpbmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4ICZpbmRleENvdW50LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQ
YWdlSW5kZXggbWluTmV3SW5kZXhDb3VudCApCi0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsQXJy
YXk6OlBhZ2VJbmRleCBuZXdJbmRleENvdW50ID0gKGluZGV4Q291bnQqMykvMiArIDE7Ci0gICAg
ICBpZiAoIG1pbk5ld0luZGV4Q291bnQgPiBuZXdJbmRleENvdW50ICkKLSAgICAgICAgIG5ld0lu
ZGV4Q291bnQgPSBtaW5OZXdJbmRleENvdW50OwotICAgICAgdm9pZCAqbmV3SW5kZXhlcyA9IHJl
YWxsb2MoIGluZGV4ZXMsIHNpemVvZihWYWx1ZSopICogbmV3SW5kZXhDb3VudCApOwotICAgICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShuZXdJbmRleGVzLCAiQ291bGRuJ3QgcmVhbGxvYy4iKTsKLSAg
ICAgIGluZGV4Q291bnQgPSBuZXdJbmRleENvdW50OwotICAgICAgaW5kZXhlcyA9IHN0YXRpY19j
YXN0PFZhbHVlICoqPiggbmV3SW5kZXhlcyApOwotICAgfQotICAgdmlydHVhbCB2b2lkIHJlbGVh
c2VBcnJheVBhZ2VJbmRleCggVmFsdWUgKippbmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IGluZGV4Q291
bnQgKQotICAgewotICAgICAgaWYgKCBpbmRleGVzICkKLSAgICAgICAgIGZyZWUoIGluZGV4ZXMg
KTsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZSAqYWxsb2NhdGVBcnJheVBhZ2UoKQotICAgewot
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlICo+KCBwYWdlc0FsbG9jYXRvcl8uYWxsb2Nh
dGUoKSApOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUFycmF5UGFnZSggVmFsdWUg
KnZhbHVlICkKLSAgIHsKLSAgICAgIGlmICggdmFsdWUgKQotICAgICAgICAgcGFnZXNBbGxvY2F0
b3JfLnJlbGVhc2UoIHZhbHVlICk7Ci0gICB9Ci1wcml2YXRlOgotICAgQmF0Y2hBbGxvY2F0b3I8
VmFsdWVJbnRlcm5hbEFycmF5LDE+IGFycmF5c0FsbG9jYXRvcl87Ci0gICBCYXRjaEFsbG9jYXRv
cjxWYWx1ZSxWYWx1ZUludGVybmFsQXJyYXk6Oml0ZW1zUGVyUGFnZT4gcGFnZXNBbGxvY2F0b3Jf
OwotfTsKLSNlbmRpZiAvLyAjaWZkZWYgSlNPTl9VU0VfU0lNUExFX0lOVEVSTkFMX0FMTE9DQVRP
UgotCi1zdGF0aWMgVmFsdWVBcnJheUFsbG9jYXRvciAqJmFycmF5QWxsb2NhdG9yKCkKLXsKLSAg
IHN0YXRpYyBEZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvciBkZWZhdWx0QWxsb2NhdG9yOwotICAg
c3RhdGljIFZhbHVlQXJyYXlBbGxvY2F0b3IgKmFycmF5QWxsb2NhdG9yID0gJmRlZmF1bHRBbGxv
Y2F0b3I7Ci0gICByZXR1cm4gYXJyYXlBbGxvY2F0b3I7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgRHVt
bXlBcnJheUFsbG9jYXRvckluaXRpYWxpemVyIHsKLSAgIER1bW15QXJyYXlBbGxvY2F0b3JJbml0
aWFsaXplcigpIAotICAgewotICAgICAgYXJyYXlBbGxvY2F0b3IoKTsgICAgICAvLyBlbnN1cmUg
YXJyYXlBbGxvY2F0b3IoKSBzdGF0aWNzIGFyZSBpbml0aWFsaXplZCBiZWZvcmUgbWFpbigpLgot
ICAgfQotfSBkdW1teUFycmF5QWxsb2NhdG9ySW5pdGlhbGl6ZXI7Ci0KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gY2xhc3MgVmFsdWVJbnRlcm5hbEFycmF5Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLWJvb2wgCi1WYWx1ZUlu
dGVybmFsQXJyYXk6OmVxdWFscyggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgSXRlcmF0b3JTdGF0ZSAmb3RoZXIgKQotewotICAgcmV0
dXJuIHguYXJyYXlfID09IG90aGVyLmFycmF5XyAgCi0gICAgICAgICAgJiYgIHguY3VycmVudEl0
ZW1JbmRleF8gPT0gb3RoZXIuY3VycmVudEl0ZW1JbmRleF8gIAotICAgICAgICAgICYmICB4LmN1
cnJlbnRQYWdlSW5kZXhfID09IG90aGVyLmN1cnJlbnRQYWdlSW5kZXhfOwotfQotCi0KLXZvaWQg
Ci1WYWx1ZUludGVybmFsQXJyYXk6OmluY3JlbWVudCggSXRlcmF0b3JTdGF0ZSAmaXQgKQotewot
ICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggaXQuYXJyYXlfICAmJgotICAgICAgKGl0LmN1cnJlbnRQ
YWdlSW5kZXhfIC0gaXQuYXJyYXlfLT5wYWdlc18pKml0ZW1zUGVyUGFnZSArIGl0LmN1cnJlbnRJ
dGVtSW5kZXhfCi0gICAgICAhPSBpdC5hcnJheV8tPnNpemVfLAotICAgICAgIlZhbHVlSW50ZXJu
YWxBcnJheTo6aW5jcmVtZW50KCk6IG1vdmluZyBpdGVyYXRvciBiZXlvbmQgZW5kIiApOwotICAg
KysoaXQuY3VycmVudEl0ZW1JbmRleF8pOwotICAgaWYgKCBpdC5jdXJyZW50SXRlbUluZGV4XyA9
PSBpdGVtc1BlclBhZ2UgKQotICAgewotICAgICAgaXQuY3VycmVudEl0ZW1JbmRleF8gPSAwOwot
ICAgICAgKysoaXQuY3VycmVudFBhZ2VJbmRleF8pOwotICAgfQotfQotCi0KLXZvaWQgCi1WYWx1
ZUludGVybmFsQXJyYXk6OmRlY3JlbWVudCggSXRlcmF0b3JTdGF0ZSAmaXQgKQotewotICAgSlNP
Tl9BU1NFUlRfTUVTU0FHRSggaXQuYXJyYXlfICAmJiAgaXQuY3VycmVudFBhZ2VJbmRleF8gPT0g
aXQuYXJyYXlfLT5wYWdlc18gCi0gICAgICAgICAgICAgICAgICAgICAgICAmJiAgaXQuY3VycmVu
dEl0ZW1JbmRleF8gPT0gMCwKLSAgICAgICJWYWx1ZUludGVybmFsQXJyYXk6OmRlY3JlbWVudCgp
OiBtb3ZpbmcgaXRlcmF0b3IgYmV5b25kIGVuZCIgKTsKLSAgIGlmICggaXQuY3VycmVudEl0ZW1J
bmRleF8gPT0gMCApCi0gICB7Ci0gICAgICBpdC5jdXJyZW50SXRlbUluZGV4XyA9IGl0ZW1zUGVy
UGFnZS0xOwotICAgICAgLS0oaXQuY3VycmVudFBhZ2VJbmRleF8pOwotICAgfQotICAgZWxzZQot
ICAgewotICAgICAgLS0oaXQuY3VycmVudEl0ZW1JbmRleF8pOwotICAgfQotfQotCi0KLVZhbHVl
ICYKLVZhbHVlSW50ZXJuYWxBcnJheTo6dW5zYWZlRGVyZWZlcmVuY2UoIGNvbnN0IEl0ZXJhdG9y
U3RhdGUgJml0ICkKLXsKLSAgIHJldHVybiAoKihpdC5jdXJyZW50UGFnZUluZGV4XykpW2l0LmN1
cnJlbnRJdGVtSW5kZXhfXTsKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZUludGVybmFsQXJyYXk6OmRl
cmVmZXJlbmNlKCBjb25zdCBJdGVyYXRvclN0YXRlICZpdCApCi17Ci0gICBKU09OX0FTU0VSVF9N
RVNTQUdFKCBpdC5hcnJheV8gICYmCi0gICAgICAoaXQuY3VycmVudFBhZ2VJbmRleF8gLSBpdC5h
cnJheV8tPnBhZ2VzXykqaXRlbXNQZXJQYWdlICsgaXQuY3VycmVudEl0ZW1JbmRleF8KLSAgICAg
IDwgaXQuYXJyYXlfLT5zaXplXywKLSAgICAgICJWYWx1ZUludGVybmFsQXJyYXk6OmRlcmVmZXJl
bmNlKCk6IGRlcmVmZXJlbmNpbmcgaW52YWxpZCBpdGVyYXRvciIgKTsKLSAgIHJldHVybiB1bnNh
ZmVEZXJlZmVyZW5jZSggaXQgKTsKLX0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6bWFr
ZUJlZ2luSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29uc3QKLXsKLSAgIGl0LmFycmF5
XyA9IGNvbnN0X2Nhc3Q8VmFsdWVJbnRlcm5hbEFycmF5ICo+KCB0aGlzICk7Ci0gICBpdC5jdXJy
ZW50SXRlbUluZGV4XyA9IDA7Ci0gICBpdC5jdXJyZW50UGFnZUluZGV4XyA9IHBhZ2VzXzsKLX0K
LQotCi12b2lkIAotVmFsdWVJbnRlcm5hbEFycmF5OjptYWtlSXRlcmF0b3IoIEl0ZXJhdG9yU3Rh
dGUgJml0LCBBcnJheUluZGV4IGluZGV4ICkgY29uc3QKLXsKLSAgIGl0LmFycmF5XyA9IGNvbnN0
X2Nhc3Q8VmFsdWVJbnRlcm5hbEFycmF5ICo+KCB0aGlzICk7Ci0gICBpdC5jdXJyZW50SXRlbUlu
ZGV4XyA9IGluZGV4ICUgaXRlbXNQZXJQYWdlOwotICAgaXQuY3VycmVudFBhZ2VJbmRleF8gPSBw
YWdlc18gKyBpbmRleCAvIGl0ZW1zUGVyUGFnZTsKLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5h
bEFycmF5OjptYWtlRW5kSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29uc3QKLXsKLSAg
IG1ha2VJdGVyYXRvciggaXQsIHNpemVfICk7Ci19Ci0KLQotVmFsdWVJbnRlcm5hbEFycmF5OjpW
YWx1ZUludGVybmFsQXJyYXkoKQotICAgOiBwYWdlc18oIDAgKQotICAgLCBzaXplXyggMCApCi0g
ICAsIHBhZ2VDb3VudF8oIDAgKQotewotfQotCi0KLVZhbHVlSW50ZXJuYWxBcnJheTo6VmFsdWVJ
bnRlcm5hbEFycmF5KCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLSAgIDogcGFn
ZXNfKCAwICkKLSAgICwgc2l6ZV8oIG90aGVyLnNpemVfICkKLSAgICwgcGFnZUNvdW50XyggMCAp
Ci17Ci0gICBQYWdlSW5kZXggbWluTmV3UGFnZXMgPSBvdGhlci5zaXplXyAvIGl0ZW1zUGVyUGFn
ZTsKLSAgIGFycmF5QWxsb2NhdG9yKCktPnJlYWxsb2NhdGVBcnJheVBhZ2VJbmRleCggcGFnZXNf
LCBwYWdlQ291bnRfLCBtaW5OZXdQYWdlcyApOwotICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggcGFn
ZUNvdW50XyA+PSBtaW5OZXdQYWdlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWVJ
bnRlcm5hbEFycmF5OjpyZXNlcnZlKCk6IGJhZCByZWFsbG9jYXRpb24iICk7Ci0gICBJdGVyYXRv
clN0YXRlIGl0T3RoZXI7Ci0gICBvdGhlci5tYWtlQmVnaW5JdGVyYXRvciggaXRPdGhlciApOwot
ICAgVmFsdWUgKnZhbHVlOwotICAgZm9yICggQXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZV87ICsraW5kZXgsIGluY3JlbWVudChpdE90aGVyKSApCi0gICB7Ci0gICAgICBpZiAoIGlu
ZGV4ICUgaXRlbXNQZXJQYWdlID09IDAgKQotICAgICAgewotICAgICAgICAgUGFnZUluZGV4IHBh
Z2VJbmRleCA9IGluZGV4IC8gaXRlbXNQZXJQYWdlOwotICAgICAgICAgdmFsdWUgPSBhcnJheUFs
bG9jYXRvcigpLT5hbGxvY2F0ZUFycmF5UGFnZSgpOwotICAgICAgICAgcGFnZXNfW3BhZ2VJbmRl
eF0gPSB2YWx1ZTsKLSAgICAgIH0KLSAgICAgIG5ldyAodmFsdWUpIFZhbHVlKCBkZXJlZmVyZW5j
ZSggaXRPdGhlciApICk7Ci0gICB9Ci19Ci0KLQotVmFsdWVJbnRlcm5hbEFycmF5ICYKLVZhbHVl
SW50ZXJuYWxBcnJheTo6b3BlcmF0b3IgPSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhl
ciApCi17Ci0gICBWYWx1ZUludGVybmFsQXJyYXkgdGVtcCggb3RoZXIgKTsKLSAgIHN3YXAoIHRl
bXAgKTsKLSAgIHJldHVybiAqdGhpczsKLX0KLQotCi1WYWx1ZUludGVybmFsQXJyYXk6On5WYWx1
ZUludGVybmFsQXJyYXkoKQotewotICAgLy8gZGVzdHJveSBhbGwgY29uc3RydWN0ZWQgaXRlbXMK
LSAgIEl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICBJdGVyYXRvclN0YXRlIGl0RW5kOwotICAgbWFrZUJl
Z2luSXRlcmF0b3IoIGl0KTsKLSAgIG1ha2VFbmRJdGVyYXRvciggaXRFbmQgKTsKLSAgIGZvciAo
IDsgIWVxdWFscyhpdCxpdEVuZCk7IGluY3JlbWVudChpdCkgKQotICAgewotICAgICAgVmFsdWUg
KnZhbHVlID0gJmRlcmVmZXJlbmNlKGl0KTsKLSAgICAgIHZhbHVlLT5+VmFsdWUoKTsKLSAgIH0K
LSAgIC8vIHJlbGVhc2UgYWxsIHBhZ2VzCi0gICBQYWdlSW5kZXggbGFzdFBhZ2VJbmRleCA9IHNp
emVfIC8gaXRlbXNQZXJQYWdlOwotICAgZm9yICggUGFnZUluZGV4IHBhZ2VJbmRleCA9IDA7IHBh
Z2VJbmRleCA8IGxhc3RQYWdlSW5kZXg7ICsrcGFnZUluZGV4ICkKLSAgICAgIGFycmF5QWxsb2Nh
dG9yKCktPnJlbGVhc2VBcnJheVBhZ2UoIHBhZ2VzX1twYWdlSW5kZXhdICk7Ci0gICAvLyByZWxl
YXNlIHBhZ2VzIGluZGV4Ci0gICBhcnJheUFsbG9jYXRvcigpLT5yZWxlYXNlQXJyYXlQYWdlSW5k
ZXgoIHBhZ2VzXywgcGFnZUNvdW50XyApOwotfQotCi0KLXZvaWQgCi1WYWx1ZUludGVybmFsQXJy
YXk6OnN3YXAoIFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKQotewotICAgVmFsdWUgKip0ZW1w
UGFnZXMgPSBwYWdlc187Ci0gICBwYWdlc18gPSBvdGhlci5wYWdlc187Ci0gICBvdGhlci5wYWdl
c18gPSB0ZW1wUGFnZXM7Ci0gICBBcnJheUluZGV4IHRlbXBTaXplID0gc2l6ZV87Ci0gICBzaXpl
XyA9IG90aGVyLnNpemVfOwotICAgb3RoZXIuc2l6ZV8gPSB0ZW1wU2l6ZTsKLSAgIFBhZ2VJbmRl
eCB0ZW1wUGFnZUNvdW50ID0gcGFnZUNvdW50XzsKLSAgIHBhZ2VDb3VudF8gPSBvdGhlci5wYWdl
Q291bnRfOwotICAgb3RoZXIucGFnZUNvdW50XyA9IHRlbXBQYWdlQ291bnQ7Ci19Ci0KLXZvaWQg
Ci1WYWx1ZUludGVybmFsQXJyYXk6OmNsZWFyKCkKLXsKLSAgIFZhbHVlSW50ZXJuYWxBcnJheSBk
dW1teTsKLSAgIHN3YXAoIGR1bW15ICk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxBcnJh
eTo6cmVzaXplKCBBcnJheUluZGV4IG5ld1NpemUgKQotewotICAgaWYgKCBuZXdTaXplID09IDAg
KQotICAgICAgY2xlYXIoKTsKLSAgIGVsc2UgaWYgKCBuZXdTaXplIDwgc2l6ZV8gKQotICAgewot
ICAgICAgSXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgIEl0ZXJhdG9yU3RhdGUgaXRFbmQ7Ci0gICAg
ICBtYWtlSXRlcmF0b3IoIGl0LCBuZXdTaXplICk7Ci0gICAgICBtYWtlSXRlcmF0b3IoIGl0RW5k
LCBzaXplXyApOwotICAgICAgZm9yICggOyAhZXF1YWxzKGl0LGl0RW5kKTsgaW5jcmVtZW50KGl0
KSApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZSAqdmFsdWUgPSAmZGVyZWZlcmVuY2UoaXQpOwot
ICAgICAgICAgdmFsdWUtPn5WYWx1ZSgpOwotICAgICAgfQotICAgICAgUGFnZUluZGV4IHBhZ2VJ
bmRleCA9IChuZXdTaXplICsgaXRlbXNQZXJQYWdlIC0gMSkgLyBpdGVtc1BlclBhZ2U7Ci0gICAg
ICBQYWdlSW5kZXggbGFzdFBhZ2VJbmRleCA9IHNpemVfIC8gaXRlbXNQZXJQYWdlOwotICAgICAg
Zm9yICggOyBwYWdlSW5kZXggPCBsYXN0UGFnZUluZGV4OyArK3BhZ2VJbmRleCApCi0gICAgICAg
ICBhcnJheUFsbG9jYXRvcigpLT5yZWxlYXNlQXJyYXlQYWdlKCBwYWdlc19bcGFnZUluZGV4XSAp
OwotICAgICAgc2l6ZV8gPSBuZXdTaXplOwotICAgfQotICAgZWxzZSBpZiAoIG5ld1NpemUgPiBz
aXplXyApCi0gICAgICByZXNvbHZlUmVmZXJlbmNlKCBuZXdTaXplICk7Ci19Ci0KLQotdm9pZCAK
LVZhbHVlSW50ZXJuYWxBcnJheTo6bWFrZUluZGV4VmFsaWQoIEFycmF5SW5kZXggaW5kZXggKQot
ewotICAgLy8gTmVlZCB0byBlbmxhcmdlIHBhZ2UgaW5kZXggPwotICAgaWYgKCBpbmRleCA+PSBw
YWdlQ291bnRfICogaXRlbXNQZXJQYWdlICkKLSAgIHsKLSAgICAgIFBhZ2VJbmRleCBtaW5OZXdQ
YWdlcyA9IChpbmRleCArIDEpIC8gaXRlbXNQZXJQYWdlOwotICAgICAgYXJyYXlBbGxvY2F0b3Io
KS0+cmVhbGxvY2F0ZUFycmF5UGFnZUluZGV4KCBwYWdlc18sIHBhZ2VDb3VudF8sIG1pbk5ld1Bh
Z2VzICk7Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKCBwYWdlQ291bnRfID49IG1pbk5ld1Bh
Z2VzLCAiVmFsdWVJbnRlcm5hbEFycmF5OjpyZXNlcnZlKCk6IGJhZCByZWFsbG9jYXRpb24iICk7
Ci0gICB9Ci0KLSAgIC8vIE5lZWQgdG8gYWxsb2NhdGUgbmV3IHBhZ2VzID8KLSAgIEFycmF5SW5k
ZXggbmV4dFBhZ2VJbmRleCA9IAotICAgICAgKHNpemVfICUgaXRlbXNQZXJQYWdlKSAhPSAwID8g
c2l6ZV8gLSAoc2l6ZV8laXRlbXNQZXJQYWdlKSArIGl0ZW1zUGVyUGFnZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogc2l6ZV87Ci0gICBpZiAoIG5leHRQYWdlSW5kZXggPD0g
aW5kZXggKQotICAgewotICAgICAgUGFnZUluZGV4IHBhZ2VJbmRleCA9IG5leHRQYWdlSW5kZXgg
LyBpdGVtc1BlclBhZ2U7Ci0gICAgICBQYWdlSW5kZXggcGFnZVRvQWxsb2NhdGUgPSAoaW5kZXgg
LSBuZXh0UGFnZUluZGV4KSAvIGl0ZW1zUGVyUGFnZSArIDE7Ci0gICAgICBmb3IgKCA7IHBhZ2VU
b0FsbG9jYXRlLS0gPiAwOyArK3BhZ2VJbmRleCApCi0gICAgICAgICBwYWdlc19bcGFnZUluZGV4
XSA9IGFycmF5QWxsb2NhdG9yKCktPmFsbG9jYXRlQXJyYXlQYWdlKCk7Ci0gICB9Ci0KLSAgIC8v
IEluaXRpYWxpemUgYWxsIG5ldyBlbnRyaWVzCi0gICBJdGVyYXRvclN0YXRlIGl0OwotICAgSXRl
cmF0b3JTdGF0ZSBpdEVuZDsKLSAgIG1ha2VJdGVyYXRvciggaXQsIHNpemVfICk7Ci0gICBzaXpl
XyA9IGluZGV4ICsgMTsKLSAgIG1ha2VJdGVyYXRvciggaXRFbmQsIHNpemVfICk7Ci0gICBmb3Ig
KCA7ICFlcXVhbHMoaXQsaXRFbmQpOyBpbmNyZW1lbnQoaXQpICkKLSAgIHsKLSAgICAgIFZhbHVl
ICp2YWx1ZSA9ICZkZXJlZmVyZW5jZShpdCk7Ci0gICAgICBuZXcgKHZhbHVlKSBWYWx1ZSgpOyAv
LyBDb25zdHJ1Y3QgYSBkZWZhdWx0IHZhbHVlIHVzaW5nIHBsYWNlbWVudCBuZXcKLSAgIH0KLX0K
LQotVmFsdWUgJgotVmFsdWVJbnRlcm5hbEFycmF5OjpyZXNvbHZlUmVmZXJlbmNlKCBBcnJheUlu
ZGV4IGluZGV4ICkKLXsKLSAgIGlmICggaW5kZXggPj0gc2l6ZV8gKQotICAgICAgbWFrZUluZGV4
VmFsaWQoIGluZGV4ICk7Ci0gICByZXR1cm4gcGFnZXNfW2luZGV4L2l0ZW1zUGVyUGFnZV1baW5k
ZXglaXRlbXNQZXJQYWdlXTsKLX0KLQotVmFsdWUgKgotVmFsdWVJbnRlcm5hbEFycmF5OjpmaW5k
KCBBcnJheUluZGV4IGluZGV4ICkgY29uc3QKLXsKLSAgIGlmICggaW5kZXggPj0gc2l6ZV8gKQot
ICAgICAgcmV0dXJuIDA7Ci0gICByZXR1cm4gJihwYWdlc19baW5kZXgvaXRlbXNQZXJQYWdlXVtp
bmRleCVpdGVtc1BlclBhZ2VdKTsKLX0KLQotVmFsdWVJbnRlcm5hbEFycmF5OjpBcnJheUluZGV4
IAotVmFsdWVJbnRlcm5hbEFycmF5OjpzaXplKCkgY29uc3QKLXsKLSAgIHJldHVybiBzaXplXzsK
LX0KLQotaW50IAotVmFsdWVJbnRlcm5hbEFycmF5OjpkaXN0YW5jZSggY29uc3QgSXRlcmF0b3JT
dGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JTdGF0ZSAmeSApCi17Ci0gICByZXR1cm4gaW5kZXhPZih5
KSAtIGluZGV4T2YoeCk7Ci19Ci0KLQotVmFsdWVJbnRlcm5hbEFycmF5OjpBcnJheUluZGV4IAot
VmFsdWVJbnRlcm5hbEFycmF5OjppbmRleE9mKCBjb25zdCBJdGVyYXRvclN0YXRlICZpdGVyYXRv
ciApCi17Ci0gICBpZiAoICFpdGVyYXRvci5hcnJheV8gKQotICAgICAgcmV0dXJuIEFycmF5SW5k
ZXgoLTEpOwotICAgcmV0dXJuIEFycmF5SW5kZXgoCi0gICAgICAoaXRlcmF0b3IuY3VycmVudFBh
Z2VJbmRleF8gLSBpdGVyYXRvci5hcnJheV8tPnBhZ2VzXykgKiBpdGVtc1BlclBhZ2UgCi0gICAg
ICArIGl0ZXJhdG9yLmN1cnJlbnRJdGVtSW5kZXhfICk7Ci19Ci0KLQotaW50IAotVmFsdWVJbnRl
cm5hbEFycmF5Ojpjb21wYXJlKCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkgY29u
c3QKLXsKLSAgIGludCBzaXplRGlmZiggc2l6ZV8gLSBvdGhlci5zaXplXyApOwotICAgaWYgKCBz
aXplRGlmZiAhPSAwICkKLSAgICAgIHJldHVybiBzaXplRGlmZjsKLSAgIAotICAgZm9yICggQXJy
YXlJbmRleCBpbmRleCA9MDsgaW5kZXggPCBzaXplXzsgKytpbmRleCApCi0gICB7Ci0gICAgICBp
bnQgZGlmZiA9IHBhZ2VzX1tpbmRleC9pdGVtc1BlclBhZ2VdW2luZGV4JWl0ZW1zUGVyUGFnZV0u
Y29tcGFyZSggCi0gICAgICAgICBvdGhlci5wYWdlc19baW5kZXgvaXRlbXNQZXJQYWdlXVtpbmRl
eCVpdGVtc1BlclBhZ2VdICk7Ci0gICAgICBpZiAoIGRpZmYgIT0gMCApCi0gICAgICAgICByZXR1
cm4gZGlmZjsKLSAgIH0KLSAgIHJldHVybiAwOwotfQotCi19IC8vIG5hbWVzcGFjZSBKc29uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX2ludGVybmFsbWFwLmlubCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
c3JjL2xpYl9qc29uL2pzb25faW50ZXJuYWxtYXAuaW5sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMmZhMTYwNjU1MmFlNjA5YzliYTNkZjQ5Yjk3M2UwODc5ZTJlNmE4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29u
L2pzb25faW50ZXJuYWxtYXAuaW5sCisrKyAvZGV2L251bGwKQEAgLTEsNjE1ICswLDAgQEAKLS8v
IENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0K
LS8vIGluY2x1ZGVkIGJ5IGpzb25fdmFsdWUuY3BwCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gY2xhc3MgVmFsdWVJbnRl
cm5hbE1hcAotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0vKiog
XGludGVybmFsIE1VU1QgYmUgc2FmZWx5IGluaXRpYWxpemVkIHVzaW5nIG1lbXNldCggdGhpcywg
MCwgc2l6ZW9mKFZhbHVlSW50ZXJuYWxMaW5rKSApOwotICAgKiBUaGlzIG9wdGltaXphdGlvbiBp
cyB1c2VkIGJ5IHRoZSBmYXN0IGFsbG9jYXRvci4KLSAgICovCi1WYWx1ZUludGVybmFsTGluazo6
VmFsdWVJbnRlcm5hbExpbmsoKQotICAgOiBwcmV2aW91c18oIDAgKQotICAgLCBuZXh0XyggMCAp
Ci17Ci19Ci0KLVZhbHVlSW50ZXJuYWxMaW5rOjp+VmFsdWVJbnRlcm5hbExpbmsoKQoteyAKLSAg
IGZvciAoIGludCBpbmRleCA9MDsgaW5kZXggPCBpdGVtUGVyTGluazsgKytpbmRleCApCi0gICB7
Ci0gICAgICBpZiAoICFpdGVtc19baW5kZXhdLmlzSXRlbUF2YWlsYWJsZSgpICkKLSAgICAgIHsK
LSAgICAgICAgIGlmICggIWl0ZW1zX1tpbmRleF0uaXNNZW1iZXJOYW1lU3RhdGljKCkgKQotICAg
ICAgICAgICAgZnJlZSgga2V5c19baW5kZXhdICk7Ci0gICAgICB9Ci0gICAgICBlbHNlCi0gICAg
ICAgICBicmVhazsKLSAgIH0KLX0KLQotCi0KLVZhbHVlTWFwQWxsb2NhdG9yOjp+VmFsdWVNYXBB
bGxvY2F0b3IoKQotewotfQotCi0jaWZkZWYgSlNPTl9VU0VfU0lNUExFX0lOVEVSTkFMX0FMTE9D
QVRPUgotY2xhc3MgRGVmYXVsdFZhbHVlTWFwQWxsb2NhdG9yIDogcHVibGljIFZhbHVlTWFwQWxs
b2NhdG9yCi17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1ZU1hcEFsbG9jYXRvcgot
ICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdNYXAoKQotICAgewotICAgICAgcmV0dXJu
IG5ldyBWYWx1ZUludGVybmFsTWFwKCk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5h
bE1hcCAqbmV3TWFwQ29weSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotICAgewot
ICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFsTWFwKCBvdGhlciApOwotICAgfQotCi0gICB2
aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RNYXAoIFZhbHVlSW50ZXJuYWxNYXAgKm1hcCApCi0gICB7Ci0g
ICAgICBkZWxldGUgbWFwOwotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxMaW5rICph
bGxvY2F0ZU1hcEJ1Y2tldHMoIHVuc2lnbmVkIGludCBzaXplICkKLSAgIHsKLSAgICAgIHJldHVy
biBuZXcgVmFsdWVJbnRlcm5hbExpbmtbc2l6ZV07Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCBy
ZWxlYXNlTWFwQnVja2V0cyggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtzICkKLSAgIHsKLSAgICAg
IGRlbGV0ZSBbXSBsaW5rczsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsTGluayAq
YWxsb2NhdGVNYXBMaW5rKCkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbExp
bmsoKTsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlbGVhc2VNYXBMaW5rKCBWYWx1ZUludGVy
bmFsTGluayAqbGluayApCi0gICB7Ci0gICAgICBkZWxldGUgbGluazsKLSAgIH0KLX07Ci0jZWxz
ZQotLy8vIEB0b2RvIG1ha2UgdGhpcyB0aHJlYWQtc2FmZSAobG9jayB3aGVuIGFjY2Vzc2lnbiBi
YXRjaCBhbGxvY2F0b3IpCi1jbGFzcyBEZWZhdWx0VmFsdWVNYXBBbGxvY2F0b3IgOiBwdWJsaWMg
VmFsdWVNYXBBbGxvY2F0b3IKLXsKLXB1YmxpYzogLy8gb3ZlcnJpZGRlbiBmcm9tIFZhbHVlTWFw
QWxsb2NhdG9yCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcCgpCi0gICB7Ci0g
ICAgICBWYWx1ZUludGVybmFsTWFwICptYXAgPSBtYXBzQWxsb2NhdG9yXy5hbGxvY2F0ZSgpOwot
ICAgICAgbmV3IChtYXApIFZhbHVlSW50ZXJuYWxNYXAoKTsgLy8gcGxhY2VtZW50IG5ldwotICAg
ICAgcmV0dXJuIG1hcDsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdN
YXBDb3B5KCBjb25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApCi0gICB7Ci0gICAgICBWYWx1
ZUludGVybmFsTWFwICptYXAgPSBtYXBzQWxsb2NhdG9yXy5hbGxvY2F0ZSgpOwotICAgICAgbmV3
IChtYXApIFZhbHVlSW50ZXJuYWxNYXAoIG90aGVyICk7IC8vIHBsYWNlbWVudCBuZXcKLSAgICAg
IHJldHVybiBtYXA7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCBkZXN0cnVjdE1hcCggVmFsdWVJ
bnRlcm5hbE1hcCAqbWFwICkKLSAgIHsKLSAgICAgIGlmICggbWFwICkKLSAgICAgIHsKLSAgICAg
ICAgIG1hcC0+flZhbHVlSW50ZXJuYWxNYXAoKTsKLSAgICAgICAgIG1hcHNBbGxvY2F0b3JfLnJl
bGVhc2UoIG1hcCApOwotICAgICAgfQotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxM
aW5rICphbGxvY2F0ZU1hcEJ1Y2tldHMoIHVuc2lnbmVkIGludCBzaXplICkKLSAgIHsKLSAgICAg
IHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbExpbmtbc2l6ZV07Ci0gICB9Ci0KLSAgIHZpcnR1YWwg
dm9pZCByZWxlYXNlTWFwQnVja2V0cyggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtzICkKLSAgIHsK
LSAgICAgIGRlbGV0ZSBbXSBsaW5rczsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFs
TGluayAqYWxsb2NhdGVNYXBMaW5rKCkKLSAgIHsKLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICps
aW5rID0gbGlua3NBbGxvY2F0b3JfLmFsbG9jYXRlKCk7Ci0gICAgICBtZW1zZXQoIGxpbmssIDAs
IHNpemVvZihWYWx1ZUludGVybmFsTGluaykgKTsKLSAgICAgIHJldHVybiBsaW5rOwotICAgfQot
Ci0gICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcExpbmsoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5r
ICkKLSAgIHsKLSAgICAgIGxpbmstPn5WYWx1ZUludGVybmFsTGluaygpOwotICAgICAgbGlua3NB
bGxvY2F0b3JfLnJlbGVhc2UoIGxpbmsgKTsKLSAgIH0KLXByaXZhdGU6Ci0gICBCYXRjaEFsbG9j
YXRvcjxWYWx1ZUludGVybmFsTWFwLDE+IG1hcHNBbGxvY2F0b3JfOwotICAgQmF0Y2hBbGxvY2F0
b3I8VmFsdWVJbnRlcm5hbExpbmssMT4gbGlua3NBbGxvY2F0b3JfOwotfTsKLSNlbmRpZgotCi1z
dGF0aWMgVmFsdWVNYXBBbGxvY2F0b3IgKiZtYXBBbGxvY2F0b3IoKQotewotICAgc3RhdGljIERl
ZmF1bHRWYWx1ZU1hcEFsbG9jYXRvciBkZWZhdWx0QWxsb2NhdG9yOwotICAgc3RhdGljIFZhbHVl
TWFwQWxsb2NhdG9yICptYXBBbGxvY2F0b3IgPSAmZGVmYXVsdEFsbG9jYXRvcjsKLSAgIHJldHVy
biBtYXBBbGxvY2F0b3I7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgRHVtbXlNYXBBbGxvY2F0b3JJbml0
aWFsaXplciB7Ci0gICBEdW1teU1hcEFsbG9jYXRvckluaXRpYWxpemVyKCkgCi0gICB7Ci0gICAg
ICBtYXBBbGxvY2F0b3IoKTsgICAgICAvLyBlbnN1cmUgbWFwQWxsb2NhdG9yKCkgc3RhdGljcyBh
cmUgaW5pdGlhbGl6ZWQgYmVmb3JlIG1haW4oKS4KLSAgIH0KLX0gZHVtbXlNYXBBbGxvY2F0b3JJ
bml0aWFsaXplcjsKLQotCi0KLS8vIGgoSykgPSB2YWx1ZSAqIEsgPj4gdyA7IHdpdGggdyA9IDMy
ICYgSyBwcmltZSB3LnIudC4gMl4zMi4KLQotLyoKLXVzZSBsaW5rZWQgbGlzdCBoYXNoIG1hcC4g
Ci1idWNrZXRzIGFycmF5IGlzIGEgY29udGFpbmVyLgotbGlua2VkIGxpc3QgZWxlbWVudCBjb250
YWlucyA2IGtleS92YWx1ZXMuIChtZW1vcnkgPSAoMTYrNCkgKiA2ICsgNCA9IDEyNCkKLXZhbHVl
IGhhdmUgZXh0cmEgc3RhdGU6IHZhbGlkLCBhdmFpbGFibGUsIGRlbGV0ZWQKLSovCi0KLQotVmFs
dWVJbnRlcm5hbE1hcDo6VmFsdWVJbnRlcm5hbE1hcCgpCi0gICA6IGJ1Y2tldHNfKCAwICkKLSAg
ICwgdGFpbExpbmtfKCAwICkKLSAgICwgYnVja2V0c1NpemVfKCAwICkKLSAgICwgaXRlbUNvdW50
XyggMCApCi17Ci19Ci0KLQotVmFsdWVJbnRlcm5hbE1hcDo6VmFsdWVJbnRlcm5hbE1hcCggY29u
c3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotICAgOiBidWNrZXRzXyggMCApCi0gICAsIHRh
aWxMaW5rXyggMCApCi0gICAsIGJ1Y2tldHNTaXplXyggMCApCi0gICAsIGl0ZW1Db3VudF8oIDAg
KQotewotICAgcmVzZXJ2ZSggb3RoZXIuaXRlbUNvdW50XyApOwotICAgSXRlcmF0b3JTdGF0ZSBp
dDsKLSAgIEl0ZXJhdG9yU3RhdGUgaXRFbmQ7Ci0gICBvdGhlci5tYWtlQmVnaW5JdGVyYXRvcigg
aXQgKTsKLSAgIG90aGVyLm1ha2VFbmRJdGVyYXRvciggaXRFbmQgKTsKLSAgIGZvciAoIDsgIWVx
dWFscyhpdCxpdEVuZCk7IGluY3JlbWVudChpdCkgKQotICAgewotICAgICAgYm9vbCBpc1N0YXRp
YzsKLSAgICAgIGNvbnN0IGNoYXIgKm1lbWJlck5hbWUgPSBrZXkoIGl0LCBpc1N0YXRpYyApOwot
ICAgICAgY29uc3QgVmFsdWUgJmFWYWx1ZSA9IHZhbHVlKCBpdCApOwotICAgICAgcmVzb2x2ZVJl
ZmVyZW5jZShtZW1iZXJOYW1lLCBpc1N0YXRpYykgPSBhVmFsdWU7Ci0gICB9Ci19Ci0KLQotVmFs
dWVJbnRlcm5hbE1hcCAmCi1WYWx1ZUludGVybmFsTWFwOjpvcGVyYXRvciA9KCBjb25zdCBWYWx1
ZUludGVybmFsTWFwICZvdGhlciApCi17Ci0gICBWYWx1ZUludGVybmFsTWFwIGR1bW15KCBvdGhl
ciApOwotICAgc3dhcCggZHVtbXkgKTsKLSAgIHJldHVybiAqdGhpczsKLX0KLQotCi1WYWx1ZUlu
dGVybmFsTWFwOjp+VmFsdWVJbnRlcm5hbE1hcCgpCi17Ci0gICBpZiAoIGJ1Y2tldHNfICkKLSAg
IHsKLSAgICAgIGZvciAoIEJ1Y2tldEluZGV4IGJ1Y2tldEluZGV4ID0wOyBidWNrZXRJbmRleCA8
IGJ1Y2tldHNTaXplXzsgKytidWNrZXRJbmRleCApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUlu
dGVybmFsTGluayAqbGluayA9IGJ1Y2tldHNfW2J1Y2tldEluZGV4XS5uZXh0XzsKLSAgICAgICAg
IHdoaWxlICggbGluayApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBWYWx1ZUludGVybmFsTGlu
ayAqbGlua1RvUmVsZWFzZSA9IGxpbms7Ci0gICAgICAgICAgICBsaW5rID0gbGluay0+bmV4dF87
Ci0gICAgICAgICAgICBtYXBBbGxvY2F0b3IoKS0+cmVsZWFzZU1hcExpbmsoIGxpbmtUb1JlbGVh
c2UgKTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIG1hcEFsbG9jYXRvcigpLT5yZWxlYXNl
TWFwQnVja2V0cyggYnVja2V0c18gKTsKLSAgIH0KLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5h
bE1hcDo6c3dhcCggVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotewotICAgVmFsdWVJbnRlcm5h
bExpbmsgKnRlbXBCdWNrZXRzID0gYnVja2V0c187Ci0gICBidWNrZXRzXyA9IG90aGVyLmJ1Y2tl
dHNfOwotICAgb3RoZXIuYnVja2V0c18gPSB0ZW1wQnVja2V0czsKLSAgIFZhbHVlSW50ZXJuYWxM
aW5rICp0ZW1wVGFpbExpbmsgPSB0YWlsTGlua187Ci0gICB0YWlsTGlua18gPSBvdGhlci50YWls
TGlua187Ci0gICBvdGhlci50YWlsTGlua18gPSB0ZW1wVGFpbExpbms7Ci0gICBCdWNrZXRJbmRl
eCB0ZW1wQnVja2V0c1NpemUgPSBidWNrZXRzU2l6ZV87Ci0gICBidWNrZXRzU2l6ZV8gPSBvdGhl
ci5idWNrZXRzU2l6ZV87Ci0gICBvdGhlci5idWNrZXRzU2l6ZV8gPSB0ZW1wQnVja2V0c1NpemU7
Ci0gICBCdWNrZXRJbmRleCB0ZW1wSXRlbUNvdW50ID0gaXRlbUNvdW50XzsKLSAgIGl0ZW1Db3Vu
dF8gPSBvdGhlci5pdGVtQ291bnRfOwotICAgb3RoZXIuaXRlbUNvdW50XyA9IHRlbXBJdGVtQ291
bnQ7Ci19Ci0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxNYXA6OmNsZWFyKCkKLXsKLSAgIFZhbHVl
SW50ZXJuYWxNYXAgZHVtbXk7Ci0gICBzd2FwKCBkdW1teSApOwotfQotCi0KLVZhbHVlSW50ZXJu
YWxNYXA6OkJ1Y2tldEluZGV4IAotVmFsdWVJbnRlcm5hbE1hcDo6c2l6ZSgpIGNvbnN0Ci17Ci0g
ICByZXR1cm4gaXRlbUNvdW50XzsKLX0KLQotYm9vbCAKLVZhbHVlSW50ZXJuYWxNYXA6OnJlc2Vy
dmVEZWx0YSggQnVja2V0SW5kZXggZ3Jvd3RoICkKLXsKLSAgIHJldHVybiByZXNlcnZlKCBpdGVt
Q291bnRfICsgZ3Jvd3RoICk7Ci19Ci0KLWJvb2wgCi1WYWx1ZUludGVybmFsTWFwOjpyZXNlcnZl
KCBCdWNrZXRJbmRleCBuZXdJdGVtQ291bnQgKQotewotICAgaWYgKCAhYnVja2V0c18gICYmICBu
ZXdJdGVtQ291bnQgPiAwICkKLSAgIHsKLSAgICAgIGJ1Y2tldHNfID0gbWFwQWxsb2NhdG9yKCkt
PmFsbG9jYXRlTWFwQnVja2V0cyggMSApOwotICAgICAgYnVja2V0c1NpemVfID0gMTsKLSAgICAg
IHRhaWxMaW5rXyA9ICZidWNrZXRzX1swXTsKLSAgIH0KLS8vICAgQnVja2V0SW5kZXggaWRlYWxC
dWNrZXRDb3VudCA9IChuZXdJdGVtQ291bnQgKyBWYWx1ZUludGVybmFsTGluazo6aXRlbVBlckxp
bmspIC8gVmFsdWVJbnRlcm5hbExpbms6Oml0ZW1QZXJMaW5rOwotICAgcmV0dXJuIHRydWU7Ci19
Ci0KLQotY29uc3QgVmFsdWUgKgotVmFsdWVJbnRlcm5hbE1hcDo6ZmluZCggY29uc3QgY2hhciAq
a2V5ICkgY29uc3QKLXsKLSAgIGlmICggIWJ1Y2tldHNTaXplXyApCi0gICAgICByZXR1cm4gMDsK
LSAgIEhhc2hLZXkgaGFzaGVkS2V5ID0gaGFzaCgga2V5ICk7Ci0gICBCdWNrZXRJbmRleCBidWNr
ZXRJbmRleCA9IGhhc2hlZEtleSAlIGJ1Y2tldHNTaXplXzsKLSAgIGZvciAoIGNvbnN0IFZhbHVl
SW50ZXJuYWxMaW5rICpjdXJyZW50ID0gJmJ1Y2tldHNfW2J1Y2tldEluZGV4XTsgCi0gICAgICAg
ICBjdXJyZW50ICE9IDA7IAotICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQtPm5leHRfICkKLSAg
IHsKLSAgICAgIGZvciAoIEJ1Y2tldEluZGV4IGluZGV4PTA7IGluZGV4IDwgVmFsdWVJbnRlcm5h
bExpbms6Oml0ZW1QZXJMaW5rOyArK2luZGV4ICkKLSAgICAgIHsKLSAgICAgICAgIGlmICggY3Vy
cmVudC0+aXRlbXNfW2luZGV4XS5pc0l0ZW1BdmFpbGFibGUoKSApCi0gICAgICAgICAgICByZXR1
cm4gMDsKLSAgICAgICAgIGlmICggc3RyY21wKCBrZXksIGN1cnJlbnQtPmtleXNfW2luZGV4XSAp
ID09IDAgKQotICAgICAgICAgICAgcmV0dXJuICZjdXJyZW50LT5pdGVtc19baW5kZXhdOwotICAg
ICAgfQotICAgfQotICAgcmV0dXJuIDA7Ci19Ci0KLQotVmFsdWUgKgotVmFsdWVJbnRlcm5hbE1h
cDo6ZmluZCggY29uc3QgY2hhciAqa2V5ICkKLXsKLSAgIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAg
KmNvbnN0VGhpcyA9IHRoaXM7Ci0gICByZXR1cm4gY29uc3RfY2FzdDxWYWx1ZSAqPiggY29uc3RU
aGlzLT5maW5kKCBrZXkgKSApOwotfQotCi0KLVZhbHVlICYKLVZhbHVlSW50ZXJuYWxNYXA6OnJl
c29sdmVSZWZlcmVuY2UoIGNvbnN0IGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMgKQotewotICAgSGFzaEtleSBoYXNoZWRLZXkgPSBo
YXNoKCBrZXkgKTsKLSAgIGlmICggYnVja2V0c1NpemVfICkKLSAgIHsKLSAgICAgIEJ1Y2tldElu
ZGV4IGJ1Y2tldEluZGV4ID0gaGFzaGVkS2V5ICUgYnVja2V0c1NpemVfOwotICAgICAgVmFsdWVJ
bnRlcm5hbExpbmsgKipwcmV2aW91cyA9IDA7Ci0gICAgICBCdWNrZXRJbmRleCBpbmRleDsKLSAg
ICAgIGZvciAoIFZhbHVlSW50ZXJuYWxMaW5rICpjdXJyZW50ID0gJmJ1Y2tldHNfW2J1Y2tldElu
ZGV4XTsgCi0gICAgICAgICAgICBjdXJyZW50ICE9IDA7IAotICAgICAgICAgICAgcHJldmlvdXMg
PSAmY3VycmVudC0+bmV4dF8sIGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0XyApCi0gICAgICB7Ci0g
ICAgICAgICBmb3IgKCBpbmRleD0wOyBpbmRleCA8IFZhbHVlSW50ZXJuYWxMaW5rOjppdGVtUGVy
TGluazsgKytpbmRleCApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIGN1cnJlbnQtPml0
ZW1zX1tpbmRleF0uaXNJdGVtQXZhaWxhYmxlKCkgKQotICAgICAgICAgICAgICAgcmV0dXJuIHNl
dE5ld0l0ZW0oIGtleSwgaXNTdGF0aWMsIGN1cnJlbnQsIGluZGV4ICk7Ci0gICAgICAgICAgICBp
ZiAoIHN0cmNtcCgga2V5LCBjdXJyZW50LT5rZXlzX1tpbmRleF0gKSA9PSAwICkKLSAgICAgICAg
ICAgICAgIHJldHVybiBjdXJyZW50LT5pdGVtc19baW5kZXhdOwotICAgICAgICAgfQotICAgICAg
fQotICAgfQotCi0gICByZXNlcnZlRGVsdGEoIDEgKTsKLSAgIHJldHVybiB1bnNhZmVBZGQoIGtl
eSwgaXNTdGF0aWMsIGhhc2hlZEtleSApOwotfQotCi0KLXZvaWQgCi1WYWx1ZUludGVybmFsTWFw
OjpyZW1vdmUoIGNvbnN0IGNoYXIgKmtleSApCi17Ci0gICBIYXNoS2V5IGhhc2hlZEtleSA9IGhh
c2goIGtleSApOwotICAgaWYgKCAhYnVja2V0c1NpemVfICkKLSAgICAgIHJldHVybjsKLSAgIEJ1
Y2tldEluZGV4IGJ1Y2tldEluZGV4ID0gaGFzaGVkS2V5ICUgYnVja2V0c1NpemVfOwotICAgZm9y
ICggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmsgPSAmYnVja2V0c19bYnVja2V0SW5kZXhdOyAKLSAg
ICAgICAgIGxpbmsgIT0gMDsgCi0gICAgICAgICBsaW5rID0gbGluay0+bmV4dF8gKQotICAgewot
ICAgICAgQnVja2V0SW5kZXggaW5kZXg7Ci0gICAgICBmb3IgKCBpbmRleCA9MDsgaW5kZXggPCBW
YWx1ZUludGVybmFsTGluazo6aXRlbVBlckxpbms7ICsraW5kZXggKQotICAgICAgewotICAgICAg
ICAgaWYgKCBsaW5rLT5pdGVtc19baW5kZXhdLmlzSXRlbUF2YWlsYWJsZSgpICkKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgIGlmICggc3RyY21wKCBrZXksIGxpbmstPmtleXNfW2luZGV4
XSApID09IDAgKQotICAgICAgICAgewotICAgICAgICAgICAgZG9BY3R1YWxSZW1vdmUoIGxpbmss
IGluZGV4LCBidWNrZXRJbmRleCApOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfQot
ICAgICAgfQotICAgfQotfQotCi12b2lkIAotVmFsdWVJbnRlcm5hbE1hcDo6ZG9BY3R1YWxSZW1v
dmUoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBCdWNrZXRJbmRleCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCdWNrZXRJbmRleCBidWNrZXRJbmRleCApCi17Ci0gICAvLyBmaW5kIGxhc3QgaXRlbSBv
ZiB0aGUgYnVja2V0IGFuZCBzd2FwIGl0IHdpdGggdGhlICdyZW1vdmVkJyBvbmUuCi0gICAvLyBz
ZXQgcmVtb3ZlZCBpdGVtcyBmbGFncyB0byAnYXZhaWxhYmxlJy4KLSAgIC8vIGlmIGxhc3QgcGFn
ZSBvbmx5IGNvbnRhaW5zICdhdmFpbGFibGUnIGl0ZW1zLCB0aGVuIGRlc2FsbG9jYXRlIGl0IChp
dCdzIGVtcHR5KQotICAgVmFsdWVJbnRlcm5hbExpbmsgKiZsYXN0TGluayA9IGdldExhc3RMaW5r
SW5CdWNrZXQoIGluZGV4ICk7Ci0gICBCdWNrZXRJbmRleCBsYXN0SXRlbUluZGV4ID0gMTsgLy8g
YSBsaW5rIGNhbiBuZXZlciBiZSBlbXB0eSwgc28gc3RhcnQgYXQgMQotICAgZm9yICggOyAgIAot
ICAgICAgICAgbGFzdEl0ZW1JbmRleCA8IFZhbHVlSW50ZXJuYWxMaW5rOjppdGVtUGVyTGluazsg
Ci0gICAgICAgICArK2xhc3RJdGVtSW5kZXggKSAvLyBtYXkgYmUgb3B0aW1pemVkIHdpdGggZGlj
b3RvbWljIHNlYXJjaAotICAgewotICAgICAgaWYgKCBsYXN0TGluay0+aXRlbXNfW2xhc3RJdGVt
SW5kZXhdLmlzSXRlbUF2YWlsYWJsZSgpICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAgCi0g
ICBCdWNrZXRJbmRleCBsYXN0VXNlZEluZGV4ID0gbGFzdEl0ZW1JbmRleCAtIDE7Ci0gICBWYWx1
ZSAqdmFsdWVUb0RlbGV0ZSA9ICZsaW5rLT5pdGVtc19baW5kZXhdOwotICAgVmFsdWUgKnZhbHVl
VG9QcmVzZXJ2ZSA9ICZsYXN0TGluay0+aXRlbXNfW2xhc3RVc2VkSW5kZXhdOwotICAgaWYgKCB2
YWx1ZVRvRGVsZXRlICE9IHZhbHVlVG9QcmVzZXJ2ZSApCi0gICAgICB2YWx1ZVRvRGVsZXRlLT5z
d2FwKCAqdmFsdWVUb1ByZXNlcnZlICk7Ci0gICBpZiAoIGxhc3RVc2VkSW5kZXggPT0gMCApICAv
LyBwYWdlIGlzIG5vdyBlbXB0eQotICAgeyAgLy8gcmVtb3ZlIGl0IGZyb20gYnVja2V0IGxpbmtl
ZCBsaXN0IGFuZCBkZWxldGUgaXQuCi0gICAgICBWYWx1ZUludGVybmFsTGluayAqbGlua1ByZXZp
b3VzVG9MYXN0ID0gbGFzdExpbmstPnByZXZpb3VzXzsKLSAgICAgIGlmICggbGlua1ByZXZpb3Vz
VG9MYXN0ICE9IDAgKSAgIC8vIGNhbiBub3QgZGVsZXRlZCBidWNrZXQgbGluay4KLSAgICAgIHsK
LSAgICAgICAgIG1hcEFsbG9jYXRvcigpLT5yZWxlYXNlTWFwTGluayggbGFzdExpbmsgKTsKLSAg
ICAgICAgIGxpbmtQcmV2aW91c1RvTGFzdC0+bmV4dF8gPSAwOwotICAgICAgICAgbGFzdExpbmsg
PSBsaW5rUHJldmlvdXNUb0xhc3Q7Ci0gICAgICB9Ci0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAg
ICBWYWx1ZSBkdW1teTsKLSAgICAgIHZhbHVlVG9QcmVzZXJ2ZS0+c3dhcCggZHVtbXkgKTsgLy8g
cmVzdG9yZSBkZWxldGVkIHRvIGRlZmF1bHQgVmFsdWUuCi0gICAgICB2YWx1ZVRvUHJlc2VydmUt
PnNldEl0ZW1Vc2VkKCBmYWxzZSApOwotICAgfQotICAgLS1pdGVtQ291bnRfOwotfQotCi0KLVZh
bHVlSW50ZXJuYWxMaW5rIComCi1WYWx1ZUludGVybmFsTWFwOjpnZXRMYXN0TGlua0luQnVja2V0
KCBCdWNrZXRJbmRleCBidWNrZXRJbmRleCApCi17Ci0gICBpZiAoIGJ1Y2tldEluZGV4ID09IGJ1
Y2tldHNTaXplXyAtIDEgKQotICAgICAgcmV0dXJuIHRhaWxMaW5rXzsKLSAgIFZhbHVlSW50ZXJu
YWxMaW5rIComcHJldmlvdXMgPSBidWNrZXRzX1tidWNrZXRJbmRleCsxXS5wcmV2aW91c187Ci0g
ICBpZiAoICFwcmV2aW91cyApCi0gICAgICBwcmV2aW91cyA9ICZidWNrZXRzX1tidWNrZXRJbmRl
eF07Ci0gICByZXR1cm4gcHJldmlvdXM7Ci19Ci0KLQotVmFsdWUgJgotVmFsdWVJbnRlcm5hbE1h
cDo6c2V0TmV3SXRlbSggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgaXNTdGF0aWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZUludGVybmFsTGluayAqbGluaywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWNr
ZXRJbmRleCBpbmRleCApCi17Ci0gICBjaGFyICpkdXBsaWNhdGVkS2V5ID0gbWFrZU1lbWJlck5h
bWUoIGtleSApOwotICAgKytpdGVtQ291bnRfOwotICAgbGluay0+a2V5c19baW5kZXhdID0gZHVw
bGljYXRlZEtleTsKLSAgIGxpbmstPml0ZW1zX1tpbmRleF0uc2V0SXRlbVVzZWQoKTsKLSAgIGxp
bmstPml0ZW1zX1tpbmRleF0uc2V0TWVtYmVyTmFtZUlzU3RhdGljKCBpc1N0YXRpYyApOwotICAg
cmV0dXJuIGxpbmstPml0ZW1zX1tpbmRleF07IC8vIGl0ZW1zIGFscmVhZHkgZGVmYXVsdCBjb25z
dHJ1Y3RlZC4KLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZUludGVybmFsTWFwOjp1bnNhZmVBZGQoIGNv
bnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0
aWMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoS2V5IGhhc2hlZEtleSApCi17
Ci0gICBKU09OX0FTU0VSVF9NRVNTQUdFKCBidWNrZXRzU2l6ZV8gPiAwLCAiVmFsdWVJbnRlcm5h
bE1hcDo6dW5zYWZlQWRkKCk6IGludGVybmFsIGxvZ2ljIGVycm9yLiIgKTsKLSAgIEJ1Y2tldElu
ZGV4IGJ1Y2tldEluZGV4ID0gaGFzaGVkS2V5ICUgYnVja2V0c1NpemVfOwotICAgVmFsdWVJbnRl
cm5hbExpbmsgKiZwcmV2aW91c0xpbmsgPSBnZXRMYXN0TGlua0luQnVja2V0KCBidWNrZXRJbmRl
eCApOwotICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmsgPSBwcmV2aW91c0xpbms7Ci0gICBCdWNr
ZXRJbmRleCBpbmRleDsKLSAgIGZvciAoIGluZGV4ID0wOyBpbmRleCA8IFZhbHVlSW50ZXJuYWxM
aW5rOjppdGVtUGVyTGluazsgKytpbmRleCApCi0gICB7Ci0gICAgICBpZiAoIGxpbmstPml0ZW1z
X1tpbmRleF0uaXNJdGVtQXZhaWxhYmxlKCkgKQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci0gICBp
ZiAoIGluZGV4ID09IFZhbHVlSW50ZXJuYWxMaW5rOjppdGVtUGVyTGluayApIC8vIG5lZWQgdG8g
YWRkIGEgbmV3IHBhZ2UKLSAgIHsKLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICpuZXdMaW5rID0g
bWFwQWxsb2NhdG9yKCktPmFsbG9jYXRlTWFwTGluaygpOwotICAgICAgaW5kZXggPSAwOwotICAg
ICAgbGluay0+bmV4dF8gPSBuZXdMaW5rOwotICAgICAgcHJldmlvdXNMaW5rID0gbmV3TGluazsK
LSAgICAgIGxpbmsgPSBuZXdMaW5rOwotICAgfQotICAgcmV0dXJuIHNldE5ld0l0ZW0oIGtleSwg
aXNTdGF0aWMsIGxpbmssIGluZGV4ICk7Ci19Ci0KLQotVmFsdWVJbnRlcm5hbE1hcDo6SGFzaEtl
eSAKLVZhbHVlSW50ZXJuYWxNYXA6Omhhc2goIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0Ci17Ci0g
ICBIYXNoS2V5IGhhc2ggPSAwOwotICAgd2hpbGUgKCAqa2V5ICkKLSAgICAgIGhhc2ggKz0gKmtl
eSsrICogMzc7Ci0gICByZXR1cm4gaGFzaDsKLX0KLQotCi1pbnQgCi1WYWx1ZUludGVybmFsTWFw
Ojpjb21wYXJlKCBjb25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApIGNvbnN0Ci17Ci0gICBp
bnQgc2l6ZURpZmYoIGl0ZW1Db3VudF8gLSBvdGhlci5pdGVtQ291bnRfICk7Ci0gICBpZiAoIHNp
emVEaWZmICE9IDAgKQotICAgICAgcmV0dXJuIHNpemVEaWZmOwotICAgLy8gU3RyaWN0IG9yZGVy
IGd1YXJhbnR5IGlzIHJlcXVpcmVkLiBDb21wYXJlIGFsbCBrZXlzIEZJUlNULCB0aGVuIGNvbXBh
cmUgdmFsdWVzLgotICAgSXRlcmF0b3JTdGF0ZSBpdDsKLSAgIEl0ZXJhdG9yU3RhdGUgaXRFbmQ7
Ci0gICBtYWtlQmVnaW5JdGVyYXRvciggaXQgKTsKLSAgIG1ha2VFbmRJdGVyYXRvciggaXRFbmQg
KTsKLSAgIGZvciAoIDsgIWVxdWFscyhpdCxpdEVuZCk7IGluY3JlbWVudChpdCkgKQotICAgewot
ICAgICAgaWYgKCAhb3RoZXIuZmluZCgga2V5KCBpdCApICkgKQotICAgICAgICAgcmV0dXJuIDE7
Ci0gICB9Ci0KLSAgIC8vIEFsbCBrZXlzIGFyZSBlcXVhbHMsIGxldCdzIGNvbXBhcmUgdmFsdWVz
Ci0gICBtYWtlQmVnaW5JdGVyYXRvciggaXQgKTsKLSAgIGZvciAoIDsgIWVxdWFscyhpdCxpdEVu
ZCk7IGluY3JlbWVudChpdCkgKQotICAgewotICAgICAgY29uc3QgVmFsdWUgKm90aGVyVmFsdWUg
PSBvdGhlci5maW5kKCBrZXkoIGl0ICkgKTsKLSAgICAgIGludCB2YWx1ZURpZmYgPSB2YWx1ZShp
dCkuY29tcGFyZSggKm90aGVyVmFsdWUgKTsKLSAgICAgIGlmICggdmFsdWVEaWZmICE9IDAgKQot
ICAgICAgICAgcmV0dXJuIHZhbHVlRGlmZjsKLSAgIH0KLSAgIHJldHVybiAwOwotfQotCi0KLXZv
aWQgCi1WYWx1ZUludGVybmFsTWFwOjptYWtlQmVnaW5JdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAm
aXQgKSBjb25zdAotewotICAgaXQubWFwXyA9IGNvbnN0X2Nhc3Q8VmFsdWVJbnRlcm5hbE1hcCAq
PiggdGhpcyApOwotICAgaXQuYnVja2V0SW5kZXhfID0gMDsKLSAgIGl0Lml0ZW1JbmRleF8gPSAw
OwotICAgaXQubGlua18gPSBidWNrZXRzXzsKLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbE1h
cDo6bWFrZUVuZEl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0Ci17Ci0gICBpdC5t
YXBfID0gY29uc3RfY2FzdDxWYWx1ZUludGVybmFsTWFwICo+KCB0aGlzICk7Ci0gICBpdC5idWNr
ZXRJbmRleF8gPSBidWNrZXRzU2l6ZV87Ci0gICBpdC5pdGVtSW5kZXhfID0gMDsKLSAgIGl0Lmxp
bmtfID0gMDsKLX0KLQotCi1ib29sIAotVmFsdWVJbnRlcm5hbE1hcDo6ZXF1YWxzKCBjb25zdCBJ
dGVyYXRvclN0YXRlICZ4LCBjb25zdCBJdGVyYXRvclN0YXRlICZvdGhlciApCi17Ci0gICByZXR1
cm4geC5tYXBfID09IG90aGVyLm1hcF8gIAotICAgICAgICAgICYmICB4LmJ1Y2tldEluZGV4XyA9
PSBvdGhlci5idWNrZXRJbmRleF8gIAotICAgICAgICAgICYmICB4LmxpbmtfID09IG90aGVyLmxp
bmtfCi0gICAgICAgICAgJiYgIHguaXRlbUluZGV4XyA9PSBvdGhlci5pdGVtSW5kZXhfOwotfQot
Ci0KLXZvaWQgCi1WYWx1ZUludGVybmFsTWFwOjppbmNyZW1lbnRCdWNrZXQoIEl0ZXJhdG9yU3Rh
dGUgJml0ZXJhdG9yICkKLXsKLSAgICsraXRlcmF0b3IuYnVja2V0SW5kZXhfOwotICAgSlNPTl9B
U1NFUlRfTUVTU0FHRSggaXRlcmF0b3IuYnVja2V0SW5kZXhfIDw9IGl0ZXJhdG9yLm1hcF8tPmJ1
Y2tldHNTaXplXywKLSAgICAgICJWYWx1ZUludGVybmFsTWFwOjppbmNyZW1lbnQoKTogYXR0ZW1w
dGluZyB0byBpdGVyYXRlIGJleW9uZCBlbmQuIiApOwotICAgaWYgKCBpdGVyYXRvci5idWNrZXRJ
bmRleF8gPT0gaXRlcmF0b3IubWFwXy0+YnVja2V0c1NpemVfICkKLSAgICAgIGl0ZXJhdG9yLmxp
bmtfID0gMDsKLSAgIGVsc2UKLSAgICAgIGl0ZXJhdG9yLmxpbmtfID0gJihpdGVyYXRvci5tYXBf
LT5idWNrZXRzX1tpdGVyYXRvci5idWNrZXRJbmRleF9dKTsKLSAgIGl0ZXJhdG9yLml0ZW1JbmRl
eF8gPSAwOwotfQotCi0KLXZvaWQgCi1WYWx1ZUludGVybmFsTWFwOjppbmNyZW1lbnQoIEl0ZXJh
dG9yU3RhdGUgJml0ZXJhdG9yICkKLXsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0ZXJhdG9y
Lm1hcF8sICJBdHRlbXB0aW5nIHRvIGl0ZXJhdG9yIHVzaW5nIGludmFsaWQgaXRlcmF0b3IuIiAp
OwotICAgKytpdGVyYXRvci5pdGVtSW5kZXhfOwotICAgaWYgKCBpdGVyYXRvci5pdGVtSW5kZXhf
ID09IFZhbHVlSW50ZXJuYWxMaW5rOjppdGVtUGVyTGluayApCi0gICB7Ci0gICAgICBKU09OX0FT
U0VSVF9NRVNTQUdFKCBpdGVyYXRvci5saW5rXyAhPSAwLAotICAgICAgICAgIlZhbHVlSW50ZXJu
YWxNYXA6OmluY3JlbWVudCgpOiBhdHRlbXB0aW5nIHRvIGl0ZXJhdGUgYmV5b25kIGVuZC4iICk7
Ci0gICAgICBpdGVyYXRvci5saW5rXyA9IGl0ZXJhdG9yLmxpbmtfLT5uZXh0XzsKLSAgICAgIGlm
ICggaXRlcmF0b3IubGlua18gPT0gMCApCi0gICAgICAgICBpbmNyZW1lbnRCdWNrZXQoIGl0ZXJh
dG9yICk7Ci0gICB9Ci0gICBlbHNlIGlmICggaXRlcmF0b3IubGlua18tPml0ZW1zX1tpdGVyYXRv
ci5pdGVtSW5kZXhfXS5pc0l0ZW1BdmFpbGFibGUoKSApCi0gICB7Ci0gICAgICBpbmNyZW1lbnRC
dWNrZXQoIGl0ZXJhdG9yICk7Ci0gICB9Ci19Ci0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxNYXA6
OmRlY3JlbWVudCggSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IgKQotewotICAgaWYgKCBpdGVyYXRv
ci5pdGVtSW5kZXhfID09IDAgKQotICAgewotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggaXRl
cmF0b3IubWFwXywgIkF0dGVtcHRpbmcgdG8gaXRlcmF0ZSB1c2luZyBpbnZhbGlkIGl0ZXJhdG9y
LiIgKTsKLSAgICAgIGlmICggaXRlcmF0b3IubGlua18gPT0gJml0ZXJhdG9yLm1hcF8tPmJ1Y2tl
dHNfW2l0ZXJhdG9yLmJ1Y2tldEluZGV4X10gKQotICAgICAgewotICAgICAgICAgSlNPTl9BU1NF
UlRfTUVTU0FHRSggaXRlcmF0b3IuYnVja2V0SW5kZXhfID4gMCwgIkF0dGVtcHRpbmcgdG8gaXRl
cmF0ZSBiZXlvbmQgYmVnaW5uaW5nLiIgKTsKLSAgICAgICAgIC0tKGl0ZXJhdG9yLmJ1Y2tldElu
ZGV4Xyk7Ci0gICAgICB9Ci0gICAgICBpdGVyYXRvci5saW5rXyA9IGl0ZXJhdG9yLmxpbmtfLT5w
cmV2aW91c187Ci0gICAgICBpdGVyYXRvci5pdGVtSW5kZXhfID0gVmFsdWVJbnRlcm5hbExpbms6
Oml0ZW1QZXJMaW5rIC0gMTsKLSAgIH0KLX0KLQotCi1jb25zdCBjaGFyICoKLVZhbHVlSW50ZXJu
YWxNYXA6OmtleSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IgKQotewotICAgSlNPTl9B
U1NFUlRfTUVTU0FHRSggaXRlcmF0b3IubGlua18sICJBdHRlbXB0aW5nIHRvIGl0ZXJhdGUgdXNp
bmcgaW52YWxpZCBpdGVyYXRvci4iICk7Ci0gICByZXR1cm4gaXRlcmF0b3IubGlua18tPmtleXNf
W2l0ZXJhdG9yLml0ZW1JbmRleF9dOwotfQotCi1jb25zdCBjaGFyICoKLVZhbHVlSW50ZXJuYWxN
YXA6OmtleSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IsIGJvb2wgJmlzU3RhdGljICkK
LXsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0ZXJhdG9yLmxpbmtfLCAiQXR0ZW1wdGluZyB0
byBpdGVyYXRlIHVzaW5nIGludmFsaWQgaXRlcmF0b3IuIiApOwotICAgaXNTdGF0aWMgPSBpdGVy
YXRvci5saW5rXy0+aXRlbXNfW2l0ZXJhdG9yLml0ZW1JbmRleF9dLmlzTWVtYmVyTmFtZVN0YXRp
YygpOwotICAgcmV0dXJuIGl0ZXJhdG9yLmxpbmtfLT5rZXlzX1tpdGVyYXRvci5pdGVtSW5kZXhf
XTsKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZUludGVybmFsTWFwOjp2YWx1ZSggY29uc3QgSXRlcmF0
b3JTdGF0ZSAmaXRlcmF0b3IgKQotewotICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggaXRlcmF0b3Iu
bGlua18sICJBdHRlbXB0aW5nIHRvIGl0ZXJhdGUgdXNpbmcgaW52YWxpZCBpdGVyYXRvci4iICk7
Ci0gICByZXR1cm4gaXRlcmF0b3IubGlua18tPml0ZW1zX1tpdGVyYXRvci5pdGVtSW5kZXhfXTsK
LX0KLQotCi1pbnQgCi1WYWx1ZUludGVybmFsTWFwOjpkaXN0YW5jZSggY29uc3QgSXRlcmF0b3JT
dGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JTdGF0ZSAmeSApCi17Ci0gICBpbnQgb2Zmc2V0ID0gMDsK
LSAgIEl0ZXJhdG9yU3RhdGUgaXQgPSB4OwotICAgd2hpbGUgKCAhZXF1YWxzKCBpdCwgeSApICkK
LSAgICAgIGluY3JlbWVudCggaXQgKTsKLSAgIHJldHVybiBvZmZzZXQ7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIEpzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcAppbmRleCAxZjM4NzNhZDk1NTY3
OTRmMzFlY2E4MGE0ZTFjMmNjMjllZmU4YjdkLi4wMDVhYjI2ODkyN2JmNWU4OGYzMGUwNzZmYzM5
NmRmMzUxMWJmMzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5j
cHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwCkBAIC0xLDkxOCArMSwy
MDE3IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDExIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29w
eXJpZ2h0IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhv
cnMKKy8vIENvcHlyaWdodCAoQykgMjAxNiBJbmZvVGVDUyBKU0MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBp
ZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNl
ZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC9MSUNFTlNFCiAKICNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikK
LSMgaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+Ci0jIGluY2x1ZGUgPGpzb24vcmVhZGVyLmg+
Ci0jIGluY2x1ZGUgPGpzb24vdmFsdWUuaD4KLSMgaW5jbHVkZSAianNvbl90b29sLmgiCisjaW5j
bHVkZSAianNvbl90b29sLmgiCisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+CisjaW5jbHVk
ZSA8anNvbi9yZWFkZXIuaD4KKyNpbmNsdWRlIDxqc29uL3ZhbHVlLmg+CiAjZW5kaWYgLy8gaWYg
IWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNs
dWRlIDxjc3RkaW8+CiAjaW5jbHVkZSA8Y2Fzc2VydD4KICNpbmNsdWRlIDxjc3RyaW5nPgotI2lu
Y2x1ZGUgPHN0ZGV4Y2VwdD4KKyNpbmNsdWRlIDxpc3RyZWFtPgorI2luY2x1ZGUgPGxpbWl0cz4K
KyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUgPHNzdHJlYW0+Cisj
aW5jbHVkZSA8dXRpbGl0eT4KKworI2luY2x1ZGUgPGNzdGRpbz4KKyNpZiBfX2NwbHVzcGx1cyA+
PSAyMDExMDNMCiAKLSNpZiBfTVNDX1ZFUiA+PSAxNDAwIC8vIFZDKysgOC4wCi0jcHJhZ21hIHdh
cm5pbmcoIGRpc2FibGUgOiA0OTk2ICkgICAvLyBkaXNhYmxlIHdhcm5pbmcgYWJvdXQgc3RyZHVw
IGJlaW5nIGRlcHJlY2F0ZWQuCisjaWYgIWRlZmluZWQoc3NjYW5mKQorI2RlZmluZSBzc2NhbmYg
c3RkOjpzc2NhbmYKICNlbmRpZgogCisjZW5kaWYgLy9fX2NwbHVzcGx1cworCisjaWYgZGVmaW5l
ZChfTVNDX1ZFUikKKyNpZiAhZGVmaW5lZChfQ1JUX1NFQ1VSRV9DUFBfT1ZFUkxPQURfU1RBTkRB
UkRfTkFNRVMpCisjZGVmaW5lIF9DUlRfU0VDVVJFX0NQUF9PVkVSTE9BRF9TVEFOREFSRF9OQU1F
UyAxCisjZW5kaWYgLy9fQ1JUX1NFQ1VSRV9DUFBfT1ZFUkxPQURfU1RBTkRBUkRfTkFNRVMKKyNl
bmRpZiAvL19NU0NfVkVSCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorLy8gRGlzYWJsZSB3YXJu
aW5nIGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgorI3ByYWdtYSB3YXJuaW5nKGRpc2Fi
bGUgOiA0OTk2KQorI2VuZGlmCisKKy8vIERlZmluZSBKU09OQ1BQX0RFUFJFQ0FURURfU1RBQ0tf
TElNSVQgYXMgYW4gYXBwcm9wcmlhdGUgaW50ZWdlciBhdCBjb21waWxlCisvLyB0aW1lIHRvIGNo
YW5nZSB0aGUgc3RhY2sgbGltaXQKKyNpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURURfU1RB
Q0tfTElNSVQpCisjZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRF9TVEFDS19MSU1JVCAxMDAwCisj
ZW5kaWYKKworc3RhdGljIHNpemVfdCBjb25zdCBzdGFja0xpbWl0X2cgPQorICAgIEpTT05DUFBf
REVQUkVDQVRFRF9TVEFDS19MSU1JVDsgLy8gc2VlIHJlYWRWYWx1ZSgpCisKIG5hbWVzcGFjZSBK
c29uIHsKIAorI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9W
RVIpICYmIF9DUFBMSUJfVkVSID49IDUyMCkKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENoYXJS
ZWFkZXI+IENoYXJSZWFkZXJQdHI7CisjZWxzZQordHlwZWRlZiBzdGQ6OmF1dG9fcHRyPENoYXJS
ZWFkZXI+IENoYXJSZWFkZXJQdHI7CisjZW5kaWYKKwogLy8gSW1wbGVtZW50YXRpb24gb2YgY2xh
c3MgRmVhdHVyZXMKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLUZlYXR1
cmVzOjpGZWF0dXJlcygpCi0gICA6IGFsbG93Q29tbWVudHNfKCB0cnVlICkKLSAgICwgc3RyaWN0
Um9vdF8oIGZhbHNlICkKLXsKLX0KK0ZlYXR1cmVzOjpGZWF0dXJlcygpID0gZGVmYXVsdDsKIAor
RmVhdHVyZXMgRmVhdHVyZXM6OmFsbCgpIHsgcmV0dXJuIHt9OyB9CiAKLUZlYXR1cmVzIAotRmVh
dHVyZXM6OmFsbCgpCi17Ci0gICByZXR1cm4gRmVhdHVyZXMoKTsKK0ZlYXR1cmVzIEZlYXR1cmVz
OjpzdHJpY3RNb2RlKCkgeworICBGZWF0dXJlcyBmZWF0dXJlczsKKyAgZmVhdHVyZXMuYWxsb3dD
b21tZW50c18gPSBmYWxzZTsKKyAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSB0cnVlOworICBmZWF0
dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IGZhbHNlOworICBmZWF0dXJlcy5h
bGxvd051bWVyaWNLZXlzXyA9IGZhbHNlOworICByZXR1cm4gZmVhdHVyZXM7CiB9CiAKKy8vIElt
cGxlbWVudGF0aW9uIG9mIGNsYXNzIFJlYWRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KIAotRmVhdHVyZXMgCi1GZWF0dXJlczo6c3RyaWN0TW9kZSgpCi17Ci0gICBGZWF0
dXJlcyBmZWF0dXJlczsKLSAgIGZlYXR1cmVzLmFsbG93Q29tbWVudHNfID0gZmFsc2U7Ci0gICBm
ZWF0dXJlcy5zdHJpY3RSb290XyA9IHRydWU7Ci0gICByZXR1cm4gZmVhdHVyZXM7Citib29sIFJl
YWRlcjo6Y29udGFpbnNOZXdMaW5lKFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIFJlYWRlcjo6TG9j
YXRpb24gZW5kKSB7CisgIGZvciAoOyBiZWdpbiA8IGVuZDsgKytiZWdpbikKKyAgICBpZiAoKmJl
Z2luID09ICdcbicgfHwgKmJlZ2luID09ICdccicpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgcmV0
dXJuIGZhbHNlOwogfQogCi0vLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDbGFzcyBSZWFkZXIKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCitSZWFkZXI6OlJlYWRlcigpCisgICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBj
b21tZW50c0JlZm9yZV8oKSwgZmVhdHVyZXNfKEZlYXR1cmVzOjphbGwoKSkge30KIAotc3RhdGlj
IGlubGluZSBib29sIAotaW4oIFJlYWRlcjo6Q2hhciBjLCBSZWFkZXI6OkNoYXIgYzEsIFJlYWRl
cjo6Q2hhciBjMiwgUmVhZGVyOjpDaGFyIGMzLCBSZWFkZXI6OkNoYXIgYzQgKQotewotICAgcmV0
dXJuIGMgPT0gYzEgIHx8ICBjID09IGMyICB8fCAgYyA9PSBjMyAgfHwgIGMgPT0gYzQ7CitSZWFk
ZXI6OlJlYWRlcihjb25zdCBGZWF0dXJlcyYgZmVhdHVyZXMpCisgICAgOiBlcnJvcnNfKCksIGRv
Y3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCks
CisgICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18oZmVhdHVy
ZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkgewogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgCi1pbigg
UmVhZGVyOjpDaGFyIGMsIFJlYWRlcjo6Q2hhciBjMSwgUmVhZGVyOjpDaGFyIGMyLCBSZWFkZXI6
OkNoYXIgYzMsIFJlYWRlcjo6Q2hhciBjNCwgUmVhZGVyOjpDaGFyIGM1ICkKLXsKLSAgIHJldHVy
biBjID09IGMxICB8fCAgYyA9PSBjMiAgfHwgIGMgPT0gYzMgIHx8ICBjID09IGM0ICB8fCAgYyA9
PSBjNTsKK2Jvb2wgUmVhZGVyOjpwYXJzZShjb25zdCBzdGQ6OnN0cmluZyYgZG9jdW1lbnQsCisg
ICAgICAgICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgICAgICAgYm9vbCBj
b2xsZWN0Q29tbWVudHMpIHsKKyAgZG9jdW1lbnRfLmFzc2lnbihkb2N1bWVudC5iZWdpbigpLCBk
b2N1bWVudC5lbmQoKSk7CisgIGNvbnN0IGNoYXIqIGJlZ2luID0gZG9jdW1lbnRfLmNfc3RyKCk7
CisgIGNvbnN0IGNoYXIqIGVuZCA9IGJlZ2luICsgZG9jdW1lbnRfLmxlbmd0aCgpOworICByZXR1
cm4gcGFyc2UoYmVnaW4sIGVuZCwgcm9vdCwgY29sbGVjdENvbW1lbnRzKTsKIH0KIAorYm9vbCBS
ZWFkZXI6OnBhcnNlKHN0ZDo6aXN0cmVhbSYgaXMsIFZhbHVlJiByb290LCBib29sIGNvbGxlY3RD
b21tZW50cykgeworICAvLyBzdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4gYmVnaW4oaXMpOwor
ICAvLyBzdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4gZW5kOworICAvLyBUaG9zZSB3b3VsZCBh
bGxvdyBzdHJlYW1lZCBpbnB1dCBmcm9tIGEgZmlsZSwgaWYgcGFyc2UoKSB3ZXJlIGEKKyAgLy8g
dGVtcGxhdGUgZnVuY3Rpb24uCisKKyAgLy8gU2luY2UgU3RyaW5nIGlzIHJlZmVyZW5jZS1jb3Vu
dGVkLCB0aGlzIGF0IGxlYXN0IGRvZXMgbm90CisgIC8vIGNyZWF0ZSBhbiBleHRyYSBjb3B5Lgor
ICBTdHJpbmcgZG9jOworICBzdGQ6OmdldGxpbmUoaXMsIGRvYywgKGNoYXIpRU9GKTsKKyAgcmV0
dXJuIHBhcnNlKGRvYy5kYXRhKCksIGRvYy5kYXRhKCkgKyBkb2Muc2l6ZSgpLCByb290LCBjb2xs
ZWN0Q29tbWVudHMpOworfQogCi1zdGF0aWMgYm9vbCAKLWNvbnRhaW5zTmV3TGluZSggUmVhZGVy
OjpMb2NhdGlvbiBiZWdpbiwgCi0gICAgICAgICAgICAgICAgIFJlYWRlcjo6TG9jYXRpb24gZW5k
ICkKLXsKLSAgIGZvciAoIDtiZWdpbiA8IGVuZDsgKytiZWdpbiApCi0gICAgICBpZiAoICpiZWdp
biA9PSAnXG4nICB8fCAgKmJlZ2luID09ICdccicgKQotICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICByZXR1cm4gZmFsc2U7Citib29sIFJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2Ms
CisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgICAg
ICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRz
KSB7CisgIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7CisgICAgY29sbGVjdENvbW1l
bnRzID0gZmFsc2U7CisgIH0KKworICBiZWdpbl8gPSBiZWdpbkRvYzsKKyAgZW5kXyA9IGVuZERv
YzsKKyAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKKyAgY3VycmVudF8gPSBi
ZWdpbl87CisgIGxhc3RWYWx1ZUVuZF8gPSBudWxscHRyOworICBsYXN0VmFsdWVfID0gbnVsbHB0
cjsKKyAgY29tbWVudHNCZWZvcmVfLmNsZWFyKCk7CisgIGVycm9yc18uY2xlYXIoKTsKKyAgd2hp
bGUgKCFub2Rlc18uZW1wdHkoKSkKKyAgICBub2Rlc18ucG9wKCk7CisgIG5vZGVzXy5wdXNoKCZy
b290KTsKKworICBib29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFsdWUoKTsKKyAgVG9rZW4gdG9rZW47
CisgIHNraXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYg
IWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKQorICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0Jl
Zm9yZV8sIGNvbW1lbnRBZnRlcik7CisgIGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKKyAg
ICBpZiAoIXJvb3QuaXNBcnJheSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsKKyAgICAgIC8vIFNl
dCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0
IHRva2VuIGZvdW5kCisgICAgICAvLyBpbiBkb2MKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5F
cnJvcjsKKyAgICAgIHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9jOworICAgICAgdG9rZW4uZW5kXyA9
IGVuZERvYzsKKyAgICAgIGFkZEVycm9yKAorICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1l
bnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCisgICAgICAg
ICAgdG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICByZXR1cm4gc3Vj
Y2Vzc2Z1bDsKIH0KIAorYm9vbCBSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKKyAgLy8gcmVhZFZhbHVl
KCkgbWF5IGNhbGwgaXRzZWxmIG9ubHkgaWYgaXQgY2FsbHMgcmVhZE9iamVjdCgpIG9yIFJlYWRB
cnJheSgpLgorICAvLyBUaGVzZSBtZXRob2RzIGV4ZWN1dGUgbm9kZXNfLnB1c2goKSBqdXN0IGJl
Zm9yZSBhbmQgbm9kZXNfLnBvcCkoKSBqdXN0CisgIC8vIGFmdGVyIGNhbGxpbmcgcmVhZFZhbHVl
KCkuIHBhcnNlKCkgZXhlY3V0ZXMgb25lIG5vZGVzXy5wdXNoKCksIHNvID4gaW5zdGVhZAorICAv
LyBvZiA+PS4KKyAgaWYgKG5vZGVzXy5zaXplKCkgPiBzdGFja0xpbWl0X2cpCisgICAgdGhyb3dS
dW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4gcmVhZFZhbHVlKCkuIik7CisKKyAg
VG9rZW4gdG9rZW47CisgIHNraXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgYm9vbCBzdWNjZXNz
ZnVsID0gdHJ1ZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVf
LmVtcHR5KCkpIHsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3Jl
XywgY29tbWVudEJlZm9yZSk7CisgICAgY29tbWVudHNCZWZvcmVfLmNsZWFyKCk7CisgIH0KKwor
ICBzd2l0Y2ggKHRva2VuLnR5cGVfKSB7CisgIGNhc2UgdG9rZW5PYmplY3RCZWdpbjoKKyAgICBz
dWNjZXNzZnVsID0gcmVhZE9iamVjdCh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zm
c2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuQXJy
YXlCZWdpbjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZEFycmF5KHRva2VuKTsKKyAgICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7Cisg
IGNhc2UgdG9rZW5OdW1iZXI6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZU51bWJlcih0b2tlbik7
CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5TdHJpbmc6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29k
ZVN0cmluZyh0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5UcnVlOiB7CisgICAgVmFs
dWUgdih0cnVlKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICB9IGJy
ZWFrOworICBjYXNlIHRva2VuRmFsc2U6IHsKKyAgICBWYWx1ZSB2KGZhbHNlKTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRT
dGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICB9IGJyZWFrOworICBjYXNlIHRva2VuTnVs
bDogeworICAgIFZhbHVlIHY7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Cisg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsK
KyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsK
KyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5U2VwYXJhdG9yOgorICBjYXNlIHRva2VuT2Jq
ZWN0RW5kOgorICBjYXNlIHRva2VuQXJyYXlFbmQ6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ry
b3BwZWROdWxsUGxhY2Vob2xkZXJzXykgeworICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50
IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJyZW50IHZhbHVlIGFzIGEgbnVsbAorICAgICAgLy8gdG9r
ZW4uCisgICAgICBjdXJyZW50Xy0tOworICAgICAgVmFsdWUgdjsKKyAgICAgIGN1cnJlbnRWYWx1
ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQo
Y3VycmVudF8gLSBiZWdpbl8gLSAxKTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICAgIGJyZWFrOworICAgIH0gLy8gRWxzZSwgZmFs
bCB0aHJvdWdoLi4uCisgIGRlZmF1bHQ6CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICByZXR1cm4gYWRkRXJyb3IoIlN5bnRheCBl
cnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSBleHBlY3RlZC4iLCB0b2tlbik7CisgIH0KKwor
ICBpZiAoY29sbGVjdENvbW1lbnRzXykgeworICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsK
KyAgICBsYXN0VmFsdWVfID0gJmN1cnJlbnRWYWx1ZSgpOworICB9CisKKyAgcmV0dXJuIHN1Y2Nl
c3NmdWw7Cit9CiAKLS8vIENsYXNzIFJlYWRlcgotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCit2b2lkIFJlYWRlcjo6
c2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7CisgIGlmIChmZWF0dXJlc18uYWxsb3dD
b21tZW50c18pIHsKKyAgICBkbyB7CisgICAgICByZWFkVG9rZW4odG9rZW4pOworICAgIH0gd2hp
bGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCk7CisgIH0gZWxzZSB7CisgICAgcmVhZFRv
a2VuKHRva2VuKTsKKyAgfQorfQogCi1SZWFkZXI6OlJlYWRlcigpCi0gICAgOiBlcnJvcnNfKCks
Ci0gICAgICBkb2N1bWVudF8oKSwKLSAgICAgIGJlZ2luXygpLAotICAgICAgZW5kXygpLAotICAg
ICAgY3VycmVudF8oKSwKLSAgICAgIGxhc3RWYWx1ZUVuZF8oKSwKLSAgICAgIGxhc3RWYWx1ZV8o
KSwKLSAgICAgIGNvbW1lbnRzQmVmb3JlXygpLAotICAgICAgZmVhdHVyZXNfKCBGZWF0dXJlczo6
YWxsKCkgKSwKLSAgICAgIGNvbGxlY3RDb21tZW50c18oKQotewotfQotCi0KLVJlYWRlcjo6UmVh
ZGVyKCBjb25zdCBGZWF0dXJlcyAmZmVhdHVyZXMgKQotICAgIDogZXJyb3JzXygpLAotICAgICAg
ZG9jdW1lbnRfKCksCi0gICAgICBiZWdpbl8oKSwKLSAgICAgIGVuZF8oKSwKLSAgICAgIGN1cnJl
bnRfKCksCi0gICAgICBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksCi0gICAg
ICBjb21tZW50c0JlZm9yZV8oKSwKLSAgICAgIGZlYXR1cmVzXyggZmVhdHVyZXMgKSwKLSAgICAg
IGNvbGxlY3RDb21tZW50c18oKQotewotfQotCi0KLWJvb2wKLVJlYWRlcjo6cGFyc2UoIGNvbnN0
IHN0ZDo6c3RyaW5nICZkb2N1bWVudCwgCi0gICAgICAgICAgICAgICBWYWx1ZSAmcm9vdCwKLSAg
ICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzICkKLXsKLSAgIGRvY3VtZW50XyA9IGRv
Y3VtZW50OwotICAgY29uc3QgY2hhciAqYmVnaW4gPSBkb2N1bWVudF8uY19zdHIoKTsKLSAgIGNv
bnN0IGNoYXIgKmVuZCA9IGJlZ2luICsgZG9jdW1lbnRfLmxlbmd0aCgpOwotICAgcmV0dXJuIHBh
cnNlKCBiZWdpbiwgZW5kLCByb290LCBjb2xsZWN0Q29tbWVudHMgKTsKLX0KLQotCi1ib29sCi1S
ZWFkZXI6OnBhcnNlKCBzdGQ6OmlzdHJlYW0mIHNpbiwKLSAgICAgICAgICAgICAgIFZhbHVlICZy
b290LAotICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgKQotewotICAgLy9zdGQ6
OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4gYmVnaW4oc2luKTsKLSAgIC8vc3RkOjppc3RyZWFtX2l0
ZXJhdG9yPGNoYXI+IGVuZDsKLSAgIC8vIFRob3NlIHdvdWxkIGFsbG93IHN0cmVhbWVkIGlucHV0
IGZyb20gYSBmaWxlLCBpZiBwYXJzZSgpIHdlcmUgYQotICAgLy8gdGVtcGxhdGUgZnVuY3Rpb24u
Ci0KLSAgIC8vIFNpbmNlIHN0ZDo6c3RyaW5nIGlzIHJlZmVyZW5jZS1jb3VudGVkLCB0aGlzIGF0
IGxlYXN0IGRvZXMgbm90Ci0gICAvLyBjcmVhdGUgYW4gZXh0cmEgY29weS4KLSAgIHN0ZDo6c3Ry
aW5nIGRvYzsKLSAgIHN0ZDo6Z2V0bGluZShzaW4sIGRvYywgKGNoYXIpRU9GKTsKLSAgIHJldHVy
biBwYXJzZSggZG9jLCByb290LCBjb2xsZWN0Q29tbWVudHMgKTsKLX0KLQotYm9vbCAKLVJlYWRl
cjo6cGFyc2UoIGNvbnN0IGNoYXIgKmJlZ2luRG9jLCBjb25zdCBjaGFyICplbmREb2MsIAotICAg
ICAgICAgICAgICAgVmFsdWUgJnJvb3QsCi0gICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21t
ZW50cyApCi17Ci0gICBpZiAoICFmZWF0dXJlc18uYWxsb3dDb21tZW50c18gKQotICAgewotICAg
ICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7Ci0gICB9Ci0KLSAgIGJlZ2luXyA9IGJlZ2luRG9j
OwotICAgZW5kXyA9IGVuZERvYzsKLSAgIGNvbGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29tbWVu
dHM7Ci0gICBjdXJyZW50XyA9IGJlZ2luXzsKLSAgIGxhc3RWYWx1ZUVuZF8gPSAwOwotICAgbGFz
dFZhbHVlXyA9IDA7Ci0gICBjb21tZW50c0JlZm9yZV8gPSAiIjsKLSAgIGVycm9yc18uY2xlYXIo
KTsKLSAgIHdoaWxlICggIW5vZGVzXy5lbXB0eSgpICkKLSAgICAgIG5vZGVzXy5wb3AoKTsKLSAg
IG5vZGVzXy5wdXNoKCAmcm9vdCApOwotICAgCi0gICBib29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFs
dWUoKTsKLSAgIFRva2VuIHRva2VuOwotICAgc2tpcENvbW1lbnRUb2tlbnMoIHRva2VuICk7Ci0g
ICBpZiAoIGNvbGxlY3RDb21tZW50c18gICYmICAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkgKQot
ICAgICAgcm9vdC5zZXRDb21tZW50KCBjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlciApOwot
ICAgaWYgKCBmZWF0dXJlc18uc3RyaWN0Um9vdF8gKQotICAgewotICAgICAgaWYgKCAhcm9vdC5p
c0FycmF5KCkgICYmICAhcm9vdC5pc09iamVjdCgpICkKLSAgICAgIHsKLSAgICAgICAgIC8vIFNl
dCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0
IHRva2VuIGZvdW5kIGluIGRvYwotICAgICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOwot
ICAgICAgICAgdG9rZW4uc3RhcnRfID0gYmVnaW5Eb2M7Ci0gICAgICAgICB0b2tlbi5lbmRfID0g
ZW5kRG9jOwotICAgICAgICAgYWRkRXJyb3IoICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBi
ZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgICAgICAg
ICAgdG9rZW4gKTsKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgIH0KLSAgIHJl
dHVybiBzdWNjZXNzZnVsOworYm9vbCBSZWFkZXI6OnJlYWRUb2tlbihUb2tlbiYgdG9rZW4pIHsK
KyAgc2tpcFNwYWNlcygpOworICB0b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKKyAgQ2hhciBjID0g
Z2V0TmV4dENoYXIoKTsKKyAgYm9vbCBvayA9IHRydWU7CisgIHN3aXRjaCAoYykgeworICBjYXNl
ICd7JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47CisgICAgYnJlYWs7Cisg
IGNhc2UgJ30nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7CisgICAgYnJlYWs7
CisgIGNhc2UgJ1snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUJlZ2luOworICAgIGJy
ZWFrOworICBjYXNlICddJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlFbmQ7CisgICAg
YnJlYWs7CisgIGNhc2UgJyInOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7CisgICAg
b2sgPSByZWFkU3RyaW5nKCk7CisgICAgYnJlYWs7CisgIGNhc2UgJy8nOgorICAgIHRva2VuLnR5
cGVfID0gdG9rZW5Db21tZW50OworICAgIG9rID0gcmVhZENvbW1lbnQoKTsKKyAgICBicmVhazsK
KyAgY2FzZSAnMCc6CisgIGNhc2UgJzEnOgorICBjYXNlICcyJzoKKyAgY2FzZSAnMyc6CisgIGNh
c2UgJzQnOgorICBjYXNlICc1JzoKKyAgY2FzZSAnNic6CisgIGNhc2UgJzcnOgorICBjYXNlICc4
JzoKKyAgY2FzZSAnOSc6CisgIGNhc2UgJy0nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdW1i
ZXI7CisgICAgcmVhZE51bWJlcigpOworICAgIGJyZWFrOworICBjYXNlICd0JzoKKyAgICB0b2tl
bi50eXBlXyA9IHRva2VuVHJ1ZTsKKyAgICBvayA9IG1hdGNoKCJydWUiLCAzKTsKKyAgICBicmVh
azsKKyAgY2FzZSAnZic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOworICAgIG9rID0g
bWF0Y2goImFsc2UiLCA0KTsKKyAgICBicmVhazsKKyAgY2FzZSAnbic6CisgICAgdG9rZW4udHlw
ZV8gPSB0b2tlbk51bGw7CisgICAgb2sgPSBtYXRjaCgidWxsIiwgMyk7CisgICAgYnJlYWs7Cisg
IGNhc2UgJywnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheVNlcGFyYXRvcjsKKyAgICBi
cmVhazsKKyAgY2FzZSAnOic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk1lbWJlclNlcGFyYXRv
cjsKKyAgICBicmVhazsKKyAgY2FzZSAwOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FbmRPZlN0
cmVhbTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBvayA9IGZhbHNlOworICAgIGJyZWFr
OworICB9CisgIGlmICghb2spCisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tl
bi5lbmRfID0gY3VycmVudF87CisgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFJlYWRlcjo6c2tp
cFNwYWNlcygpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAq
Y3VycmVudF87CisgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdccicgfHwg
YyA9PSAnXG4nKQorICAgICAgKytjdXJyZW50XzsKKyAgICBlbHNlCisgICAgICBicmVhazsKKyAg
fQorfQogCi1ib29sCi1SZWFkZXI6OnJlYWRWYWx1ZSgpCi17Ci0gICBUb2tlbiB0b2tlbjsKLSAg
IHNraXBDb21tZW50VG9rZW5zKCB0b2tlbiApOwotICAgYm9vbCBzdWNjZXNzZnVsID0gdHJ1ZTsK
K2Jvb2wgUmVhZGVyOjptYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCkg
eworICBpZiAoZW5kXyAtIGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCkKKyAgICByZXR1cm4gZmFs
c2U7CisgIGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7CisgIHdoaWxlIChpbmRleC0tKQorICAg
IGlmIChjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltpbmRleF0pCisgICAgICByZXR1cm4gZmFs
c2U7CisgIGN1cnJlbnRfICs9IHBhdHRlcm5MZW5ndGg7CisgIHJldHVybiB0cnVlOworfQogCi0g
ICBpZiAoIGNvbGxlY3RDb21tZW50c18gICYmICAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkgKQot
ICAgewotICAgICAgY3VycmVudFZhbHVlKCkuc2V0Q29tbWVudCggY29tbWVudHNCZWZvcmVfLCBj
b21tZW50QmVmb3JlICk7Ci0gICAgICBjb21tZW50c0JlZm9yZV8gPSAiIjsKLSAgIH0KK2Jvb2wg
UmVhZGVyOjpyZWFkQ29tbWVudCgpIHsKKyAgTG9jYXRpb24gY29tbWVudEJlZ2luID0gY3VycmVu
dF8gLSAxOworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29sIHN1Y2Nlc3NmdWwgPSBm
YWxzZTsKKyAgaWYgKGMgPT0gJyonKQorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ1N0eWxlQ29tbWVu
dCgpOworICBlbHNlIGlmIChjID09ICcvJykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENwcFN0eWxl
Q29tbWVudCgpOworICBpZiAoIXN1Y2Nlc3NmdWwpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGlm
IChjb2xsZWN0Q29tbWVudHNfKSB7CisgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgPSBj
b21tZW50QmVmb3JlOworICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFjb250YWluc05ld0xpbmUo
bGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luKSkgeworICAgICAgaWYgKGMgIT0gJyonIHx8ICFj
b250YWluc05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCisgICAgICAgIHBsYWNlbWVu
dCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7CisgICAgfQogCisgICAgYWRkQ29tbWVudChjb21t
ZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQog
Ci0gICBzd2l0Y2ggKCB0b2tlbi50eXBlXyApCi0gICB7Ci0gICBjYXNlIHRva2VuT2JqZWN0QmVn
aW46Ci0gICAgICBzdWNjZXNzZnVsID0gcmVhZE9iamVjdCggdG9rZW4gKTsKLSAgICAgIGJyZWFr
OwotICAgY2FzZSB0b2tlbkFycmF5QmVnaW46Ci0gICAgICBzdWNjZXNzZnVsID0gcmVhZEFycmF5
KCB0b2tlbiApOworU3RyaW5nIFJlYWRlcjo6bm9ybWFsaXplRU9MKFJlYWRlcjo6TG9jYXRpb24g
YmVnaW4sIFJlYWRlcjo6TG9jYXRpb24gZW5kKSB7CisgIFN0cmluZyBub3JtYWxpemVkOworICBu
b3JtYWxpemVkLnJlc2VydmUoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbmQgLSBiZWdpbikpOworICBS
ZWFkZXI6OkxvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbjsKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5k
KSB7CisgICAgY2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAg
ICBpZiAoY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgLy8gY29u
dmVydCBkb3MgRU9MCisgICAgICAgICsrY3VycmVudDsKKyAgICAgIC8vIGNvbnZlcnQgTWFjIEVP
TAorICAgICAgbm9ybWFsaXplZCArPSAnXG4nOworICAgIH0gZWxzZSB7CisgICAgICBub3JtYWxp
emVkICs9IGM7CisgICAgfQorICB9CisgIHJldHVybiBub3JtYWxpemVkOworfQorCit2b2lkIFJl
YWRlcjo6YWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQg
cGxhY2VtZW50KSB7CisgIGFzc2VydChjb2xsZWN0Q29tbWVudHNfKTsKKyAgY29uc3QgU3RyaW5n
JiBub3JtYWxpemVkID0gbm9ybWFsaXplRU9MKGJlZ2luLCBlbmQpOworICBpZiAocGxhY2VtZW50
ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHsKKyAgICBhc3NlcnQobGFzdFZhbHVlXyAhPSBu
dWxscHRyKTsKKyAgICBsYXN0VmFsdWVfLT5zZXRDb21tZW50KG5vcm1hbGl6ZWQsIHBsYWNlbWVu
dCk7CisgIH0gZWxzZSB7CisgICAgY29tbWVudHNCZWZvcmVfICs9IG5vcm1hbGl6ZWQ7CisgIH0K
K30KKworYm9vbCBSZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAoKGN1cnJl
bnRfICsgMSkgPCBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAo
YyA9PSAnKicgJiYgKmN1cnJlbnRfID09ICcvJykKICAgICAgIGJyZWFrOwotICAgY2FzZSB0b2tl
bk51bWJlcjoKLSAgICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIoIHRva2VuICk7CisgIH0K
KyAgcmV0dXJuIGdldE5leHRDaGFyKCkgPT0gJy8nOworfQorCitib29sIFJlYWRlcjo6cmVhZENw
cFN0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFy
IGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICdcbicpCiAgICAgICBicmVhazsKLSAg
IGNhc2UgdG9rZW5TdHJpbmc6Ci0gICAgICBzdWNjZXNzZnVsID0gZGVjb2RlU3RyaW5nKCB0b2tl
biApOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4gSXQg
d2lsbCBiZSBub3JtYWxpemVkIGluIGFkZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8gIT0g
ZW5kXyAmJiAqY3VycmVudF8gPT0gJ1xuJykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICAg
IC8vIEJyZWFrIG9uIE1vYyBPUyA5IEVPTC4KICAgICAgIGJyZWFrOwotICAgY2FzZSB0b2tlblRy
dWU6Ci0gICAgICBjdXJyZW50VmFsdWUoKSA9IHRydWU7CisgICAgfQorICB9CisgIHJldHVybiB0
cnVlOworfQorCit2b2lkIFJlYWRlcjo6cmVhZE51bWJlcigpIHsKKyAgY29uc3QgY2hhciogcCA9
IGN1cnJlbnRfOworICBjaGFyIGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9yIGFscmVhZHkgY29uc3Vt
ZWQgY2hhcmFjdGVyCisgIC8vIGludGVncmFsIHBhcnQKKyAgd2hpbGUgKGMgPj0gJzAnICYmIGMg
PD0gJzknKQorICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogJ1wwJzsKKyAg
Ly8gZnJhY3Rpb25hbCBwYXJ0CisgIGlmIChjID09ICcuJykgeworICAgIGMgPSAoY3VycmVudF8g
PSBwKSA8IGVuZF8gPyAqcCsrIDogJ1wwJzsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAn
OScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIH0K
KyAgLy8gZXhwb25lbnRpYWwgcGFydAorICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKKyAg
ICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgICAgaWYgKGMgPT0g
JysnIHx8IGMgPT0gJy0nKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysg
OiAnXDAnOworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogJ1wwJzsKKyAgfQorfQorCitib29sIFJlYWRlcjo6
cmVhZFN0cmluZygpIHsKKyAgQ2hhciBjID0gJ1wwJzsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVu
ZF8pIHsKKyAgICBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAg
Z2V0TmV4dENoYXIoKTsKKyAgICBlbHNlIGlmIChjID09ICciJykKICAgICAgIGJyZWFrOwotICAg
Y2FzZSB0b2tlbkZhbHNlOgotICAgICAgY3VycmVudFZhbHVlKCkgPSBmYWxzZTsKKyAgfQorICBy
ZXR1cm4gYyA9PSAnIic7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkT2JqZWN0KFRva2VuJiB0b2tl
bikgeworICBUb2tlbiB0b2tlbk5hbWU7CisgIFN0cmluZyBuYW1lOworICBWYWx1ZSBpbml0KG9i
amVjdFZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIHdoaWxl
IChyZWFkVG9rZW4odG9rZW5OYW1lKSkgeworICAgIGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVl
OworICAgIHdoaWxlICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIGluaXRpYWxU
b2tlbk9rKQorICAgICAgaW5pdGlhbFRva2VuT2sgPSByZWFkVG9rZW4odG9rZW5OYW1lKTsKKyAg
ICBpZiAoIWluaXRpYWxUb2tlbk9rKQogICAgICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuTnVsbDoK
LSAgICAgIGN1cnJlbnRWYWx1ZSgpID0gVmFsdWUoKTsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVf
ID09IHRva2VuT2JqZWN0RW5kICYmIG5hbWUuZW1wdHkoKSkgLy8gZW1wdHkgb2JqZWN0CisgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBuYW1lLmNsZWFyKCk7CisgICAgaWYgKHRva2VuTmFtZS50eXBl
XyA9PSB0b2tlblN0cmluZykgeworICAgICAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBu
YW1lKSkKKyAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOwor
ICAgIH0gZWxzZSBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuTnVtYmVyICYmIGZlYXR1cmVz
Xy5hbGxvd051bWVyaWNLZXlzXykgeworICAgICAgVmFsdWUgbnVtYmVyTmFtZTsKKyAgICAgIGlm
ICghZGVjb2RlTnVtYmVyKHRva2VuTmFtZSwgbnVtYmVyTmFtZSkpCisgICAgICAgIHJldHVybiBy
ZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKyAgICAgIG5hbWUgPSBTdHJpbmcobnVt
YmVyTmFtZS5hc0NTdHJpbmcoKSk7CisgICAgfSBlbHNlIHsKICAgICAgIGJyZWFrOwotICAgZGVm
YXVsdDoKLSAgICAgIHJldHVybiBhZGRFcnJvciggIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVj
dCBvciBhcnJheSBleHBlY3RlZC4iLCB0b2tlbiApOwotICAgfQorICAgIH0KIAotICAgaWYgKCBj
b2xsZWN0Q29tbWVudHNfICkKLSAgIHsKLSAgICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsK
LSAgICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7Ci0gICB9CisgICAgVG9rZW4gY29s
b247CisgICAgaWYgKCFyZWFkVG9rZW4oY29sb24pIHx8IGNvbG9uLnR5cGVfICE9IHRva2VuTWVt
YmVyU2VwYXJhdG9yKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCJNaXNzaW5n
ICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCBjb2xvbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBWYWx1ZSYgdmFsdWUg
PSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKKyAgICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAgIGJv
b2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBub2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykgLy8g
ZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2Jq
ZWN0RW5kKTsKKworICAgIFRva2VuIGNvbW1hOworICAgIGlmICghcmVhZFRva2VuKGNvbW1hKSB8
fAorICAgICAgICAoY29tbWEudHlwZV8gIT0gdG9rZW5PYmplY3RFbmQgJiYgY29tbWEudHlwZV8g
IT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgorICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5D
b21tZW50KSkgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlzc2luZyAnLCcg
b3IgJ30nIGluIG9iamVjdCBkZWNsYXJhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIGJvb2wgZmluYWxpemVU
b2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5Db21tZW50ICYm
IGZpbmFsaXplVG9rZW5PaykKKyAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRUb2tlbihjb21t
YSk7CisgICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQorICAgICAgcmV0dXJu
IHRydWU7CisgIH0KKyAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlzc2luZyAnfScgb3Ig
b2JqZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRva2VuT2JqZWN0RW5kKTsKK30KIAotICAgcmV0dXJuIHN1Y2Nlc3NmdWw7Citib29sIFJl
YWRlcjo6cmVhZEFycmF5KFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBpbml0KGFycmF5VmFsdWUp
OworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgc2tpcFNwYWNlcygpOwor
ICBpZiAoY3VycmVudF8gIT0gZW5kXyAmJiAqY3VycmVudF8gPT0gJ10nKSAvLyBlbXB0eSBhcnJh
eQorICB7CisgICAgVG9rZW4gZW5kQXJyYXk7CisgICAgcmVhZFRva2VuKGVuZEFycmF5KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgfQorICBpbnQgaW5kZXggPSAwOworICBmb3IgKDs7KSB7CisgICAg
VmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107CisgICAgbm9kZXNfLnB1c2go
JnZhbHVlKTsKKyAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOwor
ICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZy
b21FcnJvcih0b2tlbkFycmF5RW5kKTsKKworICAgIFRva2VuIGN1cnJlbnRUb2tlbjsKKyAgICAv
LyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgorICAgIG9rID0g
cmVhZFRva2VuKGN1cnJlbnRUb2tlbik7CisgICAgd2hpbGUgKGN1cnJlbnRUb2tlbi50eXBlXyA9
PSB0b2tlbkNvbW1lbnQgJiYgb2spIHsKKyAgICAgIG9rID0gcmVhZFRva2VuKGN1cnJlbnRUb2tl
bik7CisgICAgfQorICAgIGJvb2wgYmFkVG9rZW5UeXBlID0gKGN1cnJlbnRUb2tlbi50eXBlXyAh
PSB0b2tlbkFycmF5U2VwYXJhdG9yICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVu
dFRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlFbmQpOworICAgIGlmICghb2sgfHwgYmFkVG9rZW5U
eXBlKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCJNaXNzaW5nICcsJyBvciAn
XScgaW4gYXJyYXkgZGVjbGFyYXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjdXJyZW50VG9rZW4sIHRva2VuQXJyYXlFbmQpOworICAgIH0KKyAgICBpZiAoY3VycmVudFRv
a2VuLnR5cGVfID09IHRva2VuQXJyYXlFbmQpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKKyAg
VmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQorICAg
IHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7Cisg
IGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7Cisg
IGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICBy
ZXR1cm4gdHJ1ZTsKK30KIAotdm9pZCAKLVJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoIFRva2Vu
ICZ0b2tlbiApCi17Ci0gICBpZiAoIGZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXyApCi0gICB7Ci0g
ICAgICBkbwotICAgICAgewotICAgICAgICAgcmVhZFRva2VuKCB0b2tlbiApOworYm9vbCBSZWFk
ZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIC8vIEF0
dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBp
cworICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50
ZWdlciB0aGVuCisgIC8vIHdlIGRlY29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgorICBMb2Nh
dGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOworICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVu
dCA9PSAnLSc7CisgIGlmIChpc05lZ2F0aXZlKQorICAgICsrY3VycmVudDsKKyAgLy8gVE9ETzog
SGVscCB0aGUgY29tcGlsZXIgZG8gdGhlIGRpdiBhbmQgbW9kIGF0IGNvbXBpbGUgdGltZSBvciBn
ZXQgcmlkIG9mCisgIC8vIHRoZW0uCisgIFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFs
dWUgPQorICAgICAgaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFy
Z2VzdEludCkgKyAxCisgICAgICAgICAgICAgICAgIDogVmFsdWU6Om1heExhcmdlc3RVSW50Owor
ICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50ZWdlclZhbHVlIC8gMTA7Cisg
IFZhbHVlOjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgdG9rZW4u
ZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPCAnMCcgfHwgYyA+
ICc5JykKKyAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOworICAgIGF1
dG8gZGlnaXQoc3RhdGljX2Nhc3Q8VmFsdWU6OlVJbnQ+KGMgLSAnMCcpKTsKKyAgICBpZiAodmFs
dWUgPj0gdGhyZXNob2xkKSB7CisgICAgICAvLyBXZSd2ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1h
eCB2YWx1ZSBkaXZpZGVkIGJ5IDEwIChyb3VuZGVkIGRvd24pLiBJZgorICAgICAgLy8gYSkgd2Un
dmUgb25seSBqdXN0IHRvdWNoZWQgdGhlIGxpbWl0LCBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0
LCBhbmQKKyAgICAgIC8vIGMpIGl0J3Mgc21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5k
aW5nIGRlbHRhLCB3ZSdyZSBva2F5LgorICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVt
YmVyIGFzIGEgZG91YmxlIHRvIGF2b2lkIG92ZXJmbG93LgorICAgICAgaWYgKHZhbHVlID4gdGhy
ZXNob2xkIHx8IGN1cnJlbnQgIT0gdG9rZW4uZW5kXyB8fAorICAgICAgICAgIGRpZ2l0ID4gbWF4
SW50ZWdlclZhbHVlICUgMTApIHsKKyAgICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwg
ZGVjb2RlZCk7CiAgICAgICB9Ci0gICAgICB3aGlsZSAoIHRva2VuLnR5cGVfID09IHRva2VuQ29t
bWVudCApOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgcmVhZFRva2VuKCB0b2tlbiApOwot
ICAgfQotfQotCi0KLWJvb2wgCi1SZWFkZXI6OmV4cGVjdFRva2VuKCBUb2tlblR5cGUgdHlwZSwg
VG9rZW4gJnRva2VuLCBjb25zdCBjaGFyICptZXNzYWdlICkKLXsKLSAgIHJlYWRUb2tlbiggdG9r
ZW4gKTsKLSAgIGlmICggdG9rZW4udHlwZV8gIT0gdHlwZSApCi0gICAgICByZXR1cm4gYWRkRXJy
b3IoIG1lc3NhZ2UsIHRva2VuICk7Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1ib29sIAotUmVh
ZGVyOjpyZWFkVG9rZW4oIFRva2VuICZ0b2tlbiApCi17Ci0gICBza2lwU3BhY2VzKCk7Ci0gICB0
b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKLSAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7Ci0gICBi
b29sIG9rID0gdHJ1ZTsKLSAgIHN3aXRjaCAoIGMgKQotICAgewotICAgY2FzZSAneyc6Ci0gICAg
ICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47Ci0gICAgICBicmVhazsKLSAgIGNhc2Ug
J30nOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEVuZDsKKyAgICB9CisgICAgdmFs
dWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7CisgIH0KKyAgaWYgKGlzTmVnYXRpdmUgJiYgdmFsdWUg
PT0gbWF4SW50ZWdlclZhbHVlKQorICAgIGRlY29kZWQgPSBWYWx1ZTo6bWluTGFyZ2VzdEludDsK
KyAgZWxzZSBpZiAoaXNOZWdhdGl2ZSkKKyAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50
KHZhbHVlKTsKKyAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjpt
YXhJbnQpKQorICAgIGRlY29kZWQgPSBWYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UK
KyAgICBkZWNvZGVkID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6
ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAoIWRl
Y29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJl
YWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKKyAgZG91
YmxlIHZhbHVlID0gMDsKKyAgU3RyaW5nIGJ1ZmZlcih0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8p
OworICBJU3RyaW5nU3RyZWFtIGlzKGJ1ZmZlcik7CisgIGlmICghKGlzID4+IHZhbHVlKSkKKyAg
ICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICInIiArIFN0cmluZyh0b2tlbi5zdGFydF8sIHRv
a2VuLmVuZF8pICsgIicgaXMgbm90IGEgbnVtYmVyLiIsIHRva2VuKTsKKyAgZGVjb2RlZCA9IHZh
bHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZVN0cmluZyhUb2tl
biYgdG9rZW4pIHsKKyAgU3RyaW5nIGRlY29kZWRfc3RyaW5nOworICBpZiAoIWRlY29kZVN0cmlu
Zyh0b2tlbiwgZGVjb2RlZF9zdHJpbmcpKQorICAgIHJldHVybiBmYWxzZTsKKyAgVmFsdWUgZGVj
b2RlZChkZWNvZGVkX3N0cmluZyk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29k
ZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdp
bl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5f
KTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4m
IHRva2VuLCBTdHJpbmcmIGRlY29kZWQpIHsKKyAgZGVjb2RlZC5yZXNlcnZlKHN0YXRpY19jYXN0
PHNpemVfdD4odG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIpKTsKKyAgTG9jYXRpb24gY3Vy
cmVudCA9IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAgJyInCisgIExvY2F0aW9uIGVuZCA9IHRv
a2VuLmVuZF8gLSAxOyAgICAgICAvLyBkbyBub3QgaW5jbHVkZSAnIicKKyAgd2hpbGUgKGN1cnJl
bnQgIT0gZW5kKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnIicp
CiAgICAgICBicmVhazsKLSAgIGNhc2UgJ1snOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFy
cmF5QmVnaW47CisgICAgZWxzZSBpZiAoYyA9PSAnXFwnKSB7CisgICAgICBpZiAoY3VycmVudCA9
PSBlbmQpCisgICAgICAgIHJldHVybiBhZGRFcnJvcigiRW1wdHkgZXNjYXBlIHNlcXVlbmNlIGlu
IHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKKyAgICAgIENoYXIgZXNjYXBlID0gKmN1cnJlbnQr
KzsKKyAgICAgIHN3aXRjaCAoZXNjYXBlKSB7CisgICAgICBjYXNlICciJzoKKyAgICAgICAgZGVj
b2RlZCArPSAnIic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnLyc6CisgICAgICAgIGRl
Y29kZWQgKz0gJy8nOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ1xcJzoKKyAgICAgICAg
ZGVjb2RlZCArPSAnXFwnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2InOgorICAgICAg
ICBkZWNvZGVkICs9ICdcYic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnZic6CisgICAg
ICAgIGRlY29kZWQgKz0gJ1xmJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICduJzoKKyAg
ICAgICAgZGVjb2RlZCArPSAnXG4nOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3InOgor
ICAgICAgICBkZWNvZGVkICs9ICdccic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAndCc6
CisgICAgICAgIGRlY29kZWQgKz0gJ1x0JzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd1
JzogeworICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKKyAgICAgICAgaWYgKCFkZWNvZGVV
bmljb2RlQ29kZVBvaW50KHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQorICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgodW5pY29k
ZSk7CisgICAgICB9IGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGFkZEVy
cm9yKCJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKKyAg
ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgZGVjb2RlZCArPSBjOworICAgIH0KKyAgfQorICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9r
ZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24m
IGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBl
bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVu
aWNvZGUpIHsKKworICBpZiAoIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3Vy
cmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGlmICh1bmljb2RlID49
IDB4RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikgeworICAgIC8vIHN1cnJvZ2F0ZSBwYWlycwor
ICAgIGlmIChlbmQgLSBjdXJyZW50IDwgNikKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAg
ICAgICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2Rl
IHN1cnJvZ2F0ZSBwYWlyLiIsCisgICAgICAgICAgdG9rZW4sIGN1cnJlbnQpOworICAgIGlmICgq
KGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKykgPT0gJ3UnKSB7CisgICAgICB1bnNp
Z25lZCBpbnQgc3Vycm9nYXRlUGFpcjsKKyAgICAgIGlmIChkZWNvZGVVbmljb2RlRXNjYXBlU2Vx
dWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFpcikpIHsKKyAgICAgICAgdW5p
Y29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwgMTApICsgKHN1cnJvZ2F0ZVBh
aXIgJiAweDNGRik7CisgICAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0g
ZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKCJleHBlY3RpbmcgYW5vdGhlciBcXHUgdG9rZW4g
dG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mICIKKyAgICAgICAgICAgICAgICAgICAgICAiYSB1
bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKKyAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgY3Vy
cmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVVbmlj
b2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHJldF91bmljb2RlKSB7CisgIGlmIChl
bmQgLSBjdXJyZW50IDwgNCkKKyAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICJCYWQgdW5p
Y29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBmb3VyIGRpZ2l0cyBleHBlY3RlZC4iLCB0
b2tlbiwKKyAgICAgICAgY3VycmVudCk7CisgIGludCB1bmljb2RlID0gMDsKKyAgZm9yIChpbnQg
aW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsr
OworICAgIHVuaWNvZGUgKj0gMTY7CisgICAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAg
ICAgdW5pY29kZSArPSBjIC0gJzAnOworICAgIGVsc2UgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ2Yn
KQorICAgICAgdW5pY29kZSArPSBjIC0gJ2EnICsgMTA7CisgICAgZWxzZSBpZiAoYyA+PSAnQScg
JiYgYyA8PSAnRicpCisgICAgICB1bmljb2RlICs9IGMgLSAnQScgKyAxMDsKKyAgICBlbHNlCisg
ICAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1
ZW5jZSBpbiBzdHJpbmc6IGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkLiIsCisgICAgICAgICAg
dG9rZW4sIGN1cnJlbnQpOworICB9CisgIHJldF91bmljb2RlID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgaW50Pih1bmljb2RlKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjphZGRF
cnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEp
IHsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8ubWVz
c2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IGV4dHJhOworICBlcnJvcnNfLnB1c2hf
YmFjayhpbmZvKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJlYWRlcjo6cmVjb3ZlckZy
b21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgc2l6ZV90IGNvbnN0IGVycm9y
Q291bnQgPSBlcnJvcnNfLnNpemUoKTsKKyAgVG9rZW4gc2tpcDsKKyAgZm9yICg7OykgeworICAg
IGlmICghcmVhZFRva2VuKHNraXApKQorICAgICAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7
IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQorICAgIGlmIChza2lwLnR5cGVf
ID09IHNraXBVbnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0cmVhbSkKICAg
ICAgIGJyZWFrOwotICAgY2FzZSAnXSc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlF
bmQ7CisgIH0KKyAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7CisgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7Cisg
IGFkZEVycm9yKG1lc3NhZ2UsIHRva2VuKTsKKyAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tp
cFVudGlsVG9rZW4pOworfQorCitWYWx1ZSYgUmVhZGVyOjpjdXJyZW50VmFsdWUoKSB7IHJldHVy
biAqKG5vZGVzXy50b3AoKSk7IH0KKworUmVhZGVyOjpDaGFyIFJlYWRlcjo6Z2V0TmV4dENoYXIo
KSB7CisgIGlmIChjdXJyZW50XyA9PSBlbmRfKQorICAgIHJldHVybiAwOworICByZXR1cm4gKmN1
cnJlbnRfKys7Cit9CisKK3ZvaWQgUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9j
YXRpb24gbG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCYgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBjb2x1
bW4pIGNvbnN0IHsKKyAgTG9jYXRpb24gY3VycmVudCA9IGJlZ2luXzsKKyAgTG9jYXRpb24gbGFz
dExpbmVTdGFydCA9IGN1cnJlbnQ7CisgIGxpbmUgPSAwOworICB3aGlsZSAoY3VycmVudCA8IGxv
Y2F0aW9uICYmIGN1cnJlbnQgIT0gZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Cisg
ICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKCpjdXJyZW50ID09ICdcbicpCisgICAgICAg
ICsrY3VycmVudDsKKyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKytsaW5l
OworICAgIH0gZWxzZSBpZiAoYyA9PSAnXG4nKSB7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3Vy
cmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9CisgIH0KKyAgLy8gY29sdW1uICYgbGluZSBzdGFy
dCBhdCAxCisgIGNvbHVtbiA9IGludChsb2NhdGlvbiAtIGxhc3RMaW5lU3RhcnQpICsgMTsKKyAg
KytsaW5lOworfQorCitTdHJpbmcgUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9j
YXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAgaW50IGxpbmUsIGNvbHVtbjsKKyAgZ2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4pOworICBjaGFyIGJ1ZmZlclsx
OCArIDE2ICsgMTYgKyAxXTsKKyAganNvbmNwcF9zbnByaW50ZihidWZmZXIsIHNpemVvZihidWZm
ZXIpLCAiTGluZSAlZCwgQ29sdW1uICVkIiwgbGluZSwgY29sdW1uKTsKKyAgcmV0dXJuIGJ1ZmZl
cjsKK30KKworLy8gRGVwcmVjYXRlZC4gUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmls
aXR5CitTdHJpbmcgUmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7Cisg
IHJldHVybiBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCk7Cit9CisKK1N0cmluZyBSZWFkZXI6
OmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIFN0cmluZyBmb3JtYXR0ZWRN
ZXNzYWdlOworICBmb3IgKGNvbnN0IGF1dG8mIGVycm9yIDogZXJyb3JzXykgeworICAgIGZvcm1h
dHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgIiogIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihl
cnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiICAi
ICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOworICAgIGlmIChlcnJvci5leHRyYV8pCisgICAgICBm
b3JtYXR0ZWRNZXNzYWdlICs9CisgICAgICAgICAgIlNlZSAiICsgZ2V0TG9jYXRpb25MaW5lQW5k
Q29sdW1uKGVycm9yLmV4dHJhXykgKyAiIGZvciBkZXRhaWwuXG4iOworICB9CisgIHJldHVybiBm
b3JtYXR0ZWRNZXNzYWdlOworfQorCitzdGQ6OnZlY3RvcjxSZWFkZXI6OlN0cnVjdHVyZWRFcnJv
cj4gUmVhZGVyOjpnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3QgeworICBzdGQ6OnZlY3RvcjxS
ZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gYWxsRXJyb3JzOworICBmb3IgKGNvbnN0IGF1dG8mIGVy
cm9yIDogZXJyb3JzXykgeworICAgIFJlYWRlcjo6U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7
CisgICAgc3RydWN0dXJlZC5vZmZzZXRfc3RhcnQgPSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVn
aW5fOworICAgIHN0cnVjdHVyZWQub2Zmc2V0X2xpbWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBi
ZWdpbl87CisgICAgc3RydWN0dXJlZC5tZXNzYWdlID0gZXJyb3IubWVzc2FnZV87CisgICAgYWxs
RXJyb3JzLnB1c2hfYmFjayhzdHJ1Y3R1cmVkKTsKKyAgfQorICByZXR1cm4gYWxsRXJyb3JzOwor
fQorCitib29sIFJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKSB7CisgIHB0cmRpZmZfdCBjb25zdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5f
OworICBpZiAodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxlbmd0aCB8fCB2YWx1ZS5nZXRPZmZz
ZXRMaW1pdCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9rZW47Cisg
IHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFs
dWUuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGJlZ2luXyArIHZhbHVlLmdldE9m
ZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOwor
ICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBudWxscHRyOworICBl
cnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVy
OjpwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZhbHVl
JiBleHRyYSkgeworICBwdHJkaWZmX3QgY29uc3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAg
aWYgKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGggfHwgdmFsdWUuZ2V0T2Zmc2V0TGlt
aXQoKSA+IGxlbmd0aCB8fAorICAgICAgZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkK
KyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2Vu
RXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7
CisgIHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJv
ckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1l
c3NhZ2U7CisgIGluZm8uZXh0cmFfID0gYmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsK
KyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJl
YWRlcjo6Z29vZCgpIGNvbnN0IHsgcmV0dXJuIGVycm9yc18uZW1wdHkoKTsgfQorCisvLyBPcmln
aW5hbGx5IGNvcGllZCBmcm9tIHRoZSBGZWF0dXJlcyBjbGFzcyAobm93IGRlcHJlY2F0ZWQpLCB1
c2VkIGludGVybmFsbHkKKy8vIGZvciBmZWF0dXJlcyBpbXBsZW1lbnRhdGlvbi4KK2NsYXNzIE91
ckZlYXR1cmVzIHsKK3B1YmxpYzoKKyAgc3RhdGljIE91ckZlYXR1cmVzIGFsbCgpOworICBib29s
IGFsbG93Q29tbWVudHNfOworICBib29sIHN0cmljdFJvb3RfOworICBib29sIGFsbG93RHJvcHBl
ZE51bGxQbGFjZWhvbGRlcnNfOworICBib29sIGFsbG93TnVtZXJpY0tleXNfOworICBib29sIGFs
bG93U2luZ2xlUXVvdGVzXzsKKyAgYm9vbCBmYWlsSWZFeHRyYV87CisgIGJvb2wgcmVqZWN0RHVw
S2V5c187CisgIGJvb2wgYWxsb3dTcGVjaWFsRmxvYXRzXzsKKyAgc2l6ZV90IHN0YWNrTGltaXRf
OworfTsgLy8gT3VyRmVhdHVyZXMKKworT3VyRmVhdHVyZXMgT3VyRmVhdHVyZXM6OmFsbCgpIHsg
cmV0dXJuIHt9OyB9CisKKy8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIFJlYWRlcgorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gT3JpZ2luYWxseSBjb3BpZWQgZnJv
bSB0aGUgUmVhZGVyIGNsYXNzIChub3cgZGVwcmVjYXRlZCksIHVzZWQgaW50ZXJuYWxseQorLy8g
Zm9yIGltcGxlbWVudGluZyBKU09OIHJlYWRpbmcuCitjbGFzcyBPdXJSZWFkZXIgeworcHVibGlj
OgorICB0eXBlZGVmIGNoYXIgQ2hhcjsKKyAgdHlwZWRlZiBjb25zdCBDaGFyKiBMb2NhdGlvbjsK
KyAgc3RydWN0IFN0cnVjdHVyZWRFcnJvciB7CisgICAgcHRyZGlmZl90IG9mZnNldF9zdGFydDsK
KyAgICBwdHJkaWZmX3Qgb2Zmc2V0X2xpbWl0OworICAgIFN0cmluZyBtZXNzYWdlOworICB9Owor
CisgIE91clJlYWRlcihPdXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpOworICBib29sIHBhcnNl
KGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywK
KyAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21t
ZW50cyA9IHRydWUpOworICBTdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0
OworICBzdGQ6OnZlY3RvcjxTdHJ1Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBj
b25zdDsKKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKTsKKyAgYm9vbCBnb29kKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgIE91clJlYWRlcihPdXJSZWFkZXIgY29uc3QmKTsgICAgICAvLyBubyBp
bXBsCisgIHZvaWQgb3BlcmF0b3I9KE91clJlYWRlciBjb25zdCYpOyAvLyBubyBpbXBsCisKKyAg
ZW51bSBUb2tlblR5cGUgeworICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAorICAgIHRva2VuT2Jq
ZWN0QmVnaW4sCisgICAgdG9rZW5PYmplY3RFbmQsCisgICAgdG9rZW5BcnJheUJlZ2luLAorICAg
IHRva2VuQXJyYXlFbmQsCisgICAgdG9rZW5TdHJpbmcsCisgICAgdG9rZW5OdW1iZXIsCisgICAg
dG9rZW5UcnVlLAorICAgIHRva2VuRmFsc2UsCisgICAgdG9rZW5OdWxsLAorICAgIHRva2VuTmFO
LAorICAgIHRva2VuUG9zSW5mLAorICAgIHRva2VuTmVnSW5mLAorICAgIHRva2VuQXJyYXlTZXBh
cmF0b3IsCisgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCisgICAgdG9rZW5Db21tZW50LAorICAg
IHRva2VuRXJyb3IKKyAgfTsKKworICBjbGFzcyBUb2tlbiB7CisgIHB1YmxpYzoKKyAgICBUb2tl
blR5cGUgdHlwZV87CisgICAgTG9jYXRpb24gc3RhcnRfOworICAgIExvY2F0aW9uIGVuZF87Cisg
IH07CisKKyAgY2xhc3MgRXJyb3JJbmZvIHsKKyAgcHVibGljOgorICAgIFRva2VuIHRva2VuXzsK
KyAgICBTdHJpbmcgbWVzc2FnZV87CisgICAgTG9jYXRpb24gZXh0cmFfOworICB9OworCisgIHR5
cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+IEVycm9yczsKKworICBib29sIHJlYWRUb2tlbihU
b2tlbiYgdG9rZW4pOworICB2b2lkIHNraXBTcGFjZXMoKTsKKyAgYm9vbCBtYXRjaChMb2NhdGlv
biBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCk7CisgIGJvb2wgcmVhZENvbW1lbnQoKTsKKyAg
Ym9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOworICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsK
KyAgYm9vbCByZWFkU3RyaW5nKCk7CisgIGJvb2wgcmVhZFN0cmluZ1NpbmdsZVF1b3RlKCk7Cisg
IGJvb2wgcmVhZE51bWJlcihib29sIGNoZWNrSW5mKTsKKyAgYm9vbCByZWFkVmFsdWUoKTsKKyAg
Ym9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7CisgIGJvb2wgcmVhZEFycmF5KFRva2VuJiB0
b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2Rl
TnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOworICBib29sIGRlY29kZVN0cmlu
ZyhUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIFN0cmlu
ZyYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbik7CisgIGJvb2wg
ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOworICBib29sIGRlY29k
ZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQm
IHVuaWNvZGUpOworICBib29sIGRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9r
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7Cisg
IGJvb2wgYWRkRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0
aW9uIGV4dHJhID0gbnVsbHB0cik7CisgIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUg
c2tpcFVudGlsVG9rZW4pOworICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgdm9pZCBz
a2lwVW50aWxTcGFjZSgpOworICBWYWx1ZSYgY3VycmVudFZhbHVlKCk7CisgIENoYXIgZ2V0TmV4
dENoYXIoKTsKKyAgdm9pZAorICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9j
YXRpb24sIGludCYgbGluZSwgaW50JiBjb2x1bW4pIGNvbnN0OworICBTdHJpbmcgZ2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRDb21t
ZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KTsKKyAgdm9pZCBza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pOworCisgIHN0YXRp
YyBTdHJpbmcgbm9ybWFsaXplRU9MKExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQpOworICBz
dGF0aWMgYm9vbCBjb250YWluc05ld0xpbmUoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCk7
CisKKyAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVlKj4gTm9kZXM7CisgIE5vZGVzIG5vZGVzXzsK
KyAgRXJyb3JzIGVycm9yc187CisgIFN0cmluZyBkb2N1bWVudF87CisgIExvY2F0aW9uIGJlZ2lu
XzsKKyAgTG9jYXRpb24gZW5kXzsKKyAgTG9jYXRpb24gY3VycmVudF87CisgIExvY2F0aW9uIGxh
c3RWYWx1ZUVuZF87CisgIFZhbHVlKiBsYXN0VmFsdWVfOworICBTdHJpbmcgY29tbWVudHNCZWZv
cmVfOworCisgIE91ckZlYXR1cmVzIGNvbnN0IGZlYXR1cmVzXzsKKyAgYm9vbCBjb2xsZWN0Q29t
bWVudHNfOworfTsgLy8gT3VyUmVhZGVyCisKKy8vIGNvbXBsZXRlIGNvcHkgb2YgUmVhZCBpbXBs
LCBmb3IgT3VyUmVhZGVyCisKK2Jvb2wgT3VyUmVhZGVyOjpjb250YWluc05ld0xpbmUoT3VyUmVh
ZGVyOjpMb2NhdGlvbiBiZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Vy
UmVhZGVyOjpMb2NhdGlvbiBlbmQpIHsKKyAgZm9yICg7IGJlZ2luIDwgZW5kOyArK2JlZ2luKQor
ICAgIGlmICgqYmVnaW4gPT0gJ1xuJyB8fCAqYmVnaW4gPT0gJ1xyJykKKyAgICAgIHJldHVybiB0
cnVlOworICByZXR1cm4gZmFsc2U7Cit9CisKK091clJlYWRlcjo6T3VyUmVhZGVyKE91ckZlYXR1
cmVzIGNvbnN0JiBmZWF0dXJlcykKKyAgICA6IGVycm9yc18oKSwgZG9jdW1lbnRfKCksIGJlZ2lu
XygpLCBlbmRfKCksIGN1cnJlbnRfKCksIGxhc3RWYWx1ZUVuZF8oKSwKKyAgICAgIGxhc3RWYWx1
ZV8oKSwgY29tbWVudHNCZWZvcmVfKCksIGZlYXR1cmVzXyhmZWF0dXJlcyksIGNvbGxlY3RDb21t
ZW50c18oKSB7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRv
YywKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCisgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb2xs
ZWN0Q29tbWVudHMpIHsKKyAgaWYgKCFmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKKyAgICBj
b2xsZWN0Q29tbWVudHMgPSBmYWxzZTsKKyAgfQorCisgIGJlZ2luXyA9IGJlZ2luRG9jOworICBl
bmRfID0gZW5kRG9jOworICBjb2xsZWN0Q29tbWVudHNfID0gY29sbGVjdENvbW1lbnRzOworICBj
dXJyZW50XyA9IGJlZ2luXzsKKyAgbGFzdFZhbHVlRW5kXyA9IG51bGxwdHI7CisgIGxhc3RWYWx1
ZV8gPSBudWxscHRyOworICBjb21tZW50c0JlZm9yZV8uY2xlYXIoKTsKKyAgZXJyb3JzXy5jbGVh
cigpOworICB3aGlsZSAoIW5vZGVzXy5lbXB0eSgpKQorICAgIG5vZGVzXy5wb3AoKTsKKyAgbm9k
ZXNfLnB1c2goJnJvb3QpOworCisgIGJvb2wgc3VjY2Vzc2Z1bCA9IHJlYWRWYWx1ZSgpOworICBu
b2Rlc18ucG9wKCk7CisgIFRva2VuIHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7
CisgIGlmIChmZWF0dXJlc18uZmFpbElmRXh0cmFfKSB7CisgICAgaWYgKChmZWF0dXJlc18uc3Ry
aWN0Um9vdF8gfHwgdG9rZW4udHlwZV8gIT0gdG9rZW5FcnJvcikgJiYKKyAgICAgICAgdG9rZW4u
dHlwZV8gIT0gdG9rZW5FbmRPZlN0cmVhbSkgeworICAgICAgYWRkRXJyb3IoIkV4dHJhIG5vbi13
aGl0ZXNwYWNlIGFmdGVyIEpTT04gdmFsdWUuIiwgdG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgfQorICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVf
LmVtcHR5KCkpCisgICAgcm9vdC5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEFm
dGVyKTsKKyAgaWYgKGZlYXR1cmVzXy5zdHJpY3RSb290XykgeworICAgIGlmICghcm9vdC5pc0Fy
cmF5KCkgJiYgIXJvb3QuaXNPYmplY3QoKSkgeworICAgICAgLy8gU2V0IGVycm9yIGxvY2F0aW9u
IHRvIHN0YXJ0IG9mIGRvYywgaWRlYWxseSBzaG91bGQgYmUgZmlyc3QgdG9rZW4gZm91bmQKKyAg
ICAgIC8vIGluIGRvYworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICAgICAgdG9r
ZW4uc3RhcnRfID0gYmVnaW5Eb2M7CisgICAgICB0b2tlbi5lbmRfID0gZW5kRG9jOworICAgICAg
YWRkRXJyb3IoCisgICAgICAgICAgIkEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhl
ciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuIiwKKyAgICAgICAgICB0b2tlbik7CisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHJldHVybiBzdWNjZXNzZnVsOworfQorCiti
b29sIE91clJlYWRlcjo6cmVhZFZhbHVlKCkgeworICAvLyAgVG8gcHJlc2VydmUgdGhlIG9sZCBi
ZWhhdmlvdXIgd2UgY2FzdCBzaXplX3QgdG8gaW50LgorICBpZiAobm9kZXNfLnNpemUoKSA+IGZl
YXR1cmVzXy5zdGFja0xpbWl0XykKKyAgICB0aHJvd1J1bnRpbWVFcnJvcigiRXhjZWVkZWQgc3Rh
Y2tMaW1pdCBpbiByZWFkVmFsdWUoKS4iKTsKKyAgVG9rZW4gdG9rZW47CisgIHNraXBDb21tZW50
VG9rZW5zKHRva2VuKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gdHJ1ZTsKKworICBpZiAoY29sbGVj
dENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkpIHsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEJlZm9yZSk7CisgICAgY29t
bWVudHNCZWZvcmVfLmNsZWFyKCk7CisgIH0KKworICBzd2l0Y2ggKHRva2VuLnR5cGVfKSB7Cisg
IGNhc2UgdG9rZW5PYmplY3RCZWdpbjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZE9iamVjdCh0b2tl
bik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8p
OworICAgIGJyZWFrOworICBjYXNlIHRva2VuQXJyYXlCZWdpbjoKKyAgICBzdWNjZXNzZnVsID0g
cmVhZEFycmF5KHRva2VuKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJy
ZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OdW1iZXI6CisgICAgc3Vj
Y2Vzc2Z1bCA9IGRlY29kZU51bWJlcih0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5T
dHJpbmc6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZVN0cmluZyh0b2tlbik7CisgICAgYnJlYWs7
CisgIGNhc2UgdG9rZW5UcnVlOiB7CisgICAgVmFsdWUgdih0cnVlKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0
b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICB9IGJyZWFrOworICBjYXNlIHRva2VuRmFsc2U6IHsK
KyAgICBWYWx1ZSB2KGZhbHNlKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsK
KyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8p
OworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8p
OworICB9IGJyZWFrOworICBjYXNlIHRva2VuTnVsbDogeworICAgIFZhbHVlIHY7CisgICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbk5h
TjogeworICAgIFZhbHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4o
KSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAg
Y2FzZSB0b2tlblBvc0luZjogeworICAgIFZhbHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwor
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwor
ICB9IGJyZWFrOworICBjYXNlIHRva2VuTmVnSW5mOiB7CisgICAgVmFsdWUgdigtc3RkOjpudW1l
cmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2Fw
UGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFy
dF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVu
ZF8gLSBiZWdpbl8pOworICB9IGJyZWFrOworICBjYXNlIHRva2VuQXJyYXlTZXBhcmF0b3I6Cisg
IGNhc2UgdG9rZW5PYmplY3RFbmQ6CisgIGNhc2UgdG9rZW5BcnJheUVuZDoKKyAgICBpZiAoZmVh
dHVyZXNfLmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKSB7CisgICAgICAvLyAiVW4tcmVh
ZCIgdGhlIGN1cnJlbnQgdG9rZW4gYW5kIG1hcmsgdGhlIGN1cnJlbnQgdmFsdWUgYXMgYSBudWxs
CisgICAgICAvLyB0b2tlbi4KKyAgICAgIGN1cnJlbnRfLS07CisgICAgICBWYWx1ZSB2OworICAg
ICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgICBjdXJyZW50VmFsdWUoKS5z
ZXRPZmZzZXRTdGFydChjdXJyZW50XyAtIGJlZ2luXyAtIDEpOworICAgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOwogICAgICAgYnJlYWs7Ci0gICBj
YXNlICciJzoKKyAgICB9IC8vIGVsc2UsIGZhbGwgdGhyb3VnaCAuLi4KKyAgZGVmYXVsdDoKKyAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwor
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwor
ICAgIHJldHVybiBhZGRFcnJvcigiU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5
IGV4cGVjdGVkLiIsIHRva2VuKTsKKyAgfQorCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7Cisg
ICAgbGFzdFZhbHVlRW5kXyA9IGN1cnJlbnRfOworICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZh
bHVlKCk7CisgIH0KKworICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKwordm9pZCBPdXJSZWFkZXI6
OnNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVhdHVyZXNfLmFsbG93
Q29tbWVudHNfKSB7CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgICB9IHdo
aWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2UgeworICAgIHJlYWRU
b2tlbih0b2tlbik7CisgIH0KK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRUb2tlbihUb2tlbiYg
dG9rZW4pIHsKKyAgc2tpcFNwYWNlcygpOworICB0b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKKyAg
Q2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBvayA9IHRydWU7CisgIHN3aXRjaCAoYykg
eworICBjYXNlICd7JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47CisgICAg
YnJlYWs7CisgIGNhc2UgJ30nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7Cisg
ICAgYnJlYWs7CisgIGNhc2UgJ1snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUJlZ2lu
OworICAgIGJyZWFrOworICBjYXNlICddJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlF
bmQ7CisgICAgYnJlYWs7CisgIGNhc2UgJyInOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJp
bmc7CisgICAgb2sgPSByZWFkU3RyaW5nKCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ1wnJzoKKyAg
ICBpZiAoZmVhdHVyZXNfLmFsbG93U2luZ2xlUXVvdGVzXykgewogICAgICAgdG9rZW4udHlwZV8g
PSB0b2tlblN0cmluZzsKLSAgICAgIG9rID0gcmVhZFN0cmluZygpOwotICAgICAgYnJlYWs7Ci0g
ICBjYXNlICcvJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5Db21tZW50OwotICAgICAgb2sg
PSByZWFkQ29tbWVudCgpOworICAgICAgb2sgPSByZWFkU3RyaW5nU2luZ2xlUXVvdGUoKTsKICAg
ICAgIGJyZWFrOwotICAgY2FzZSAnMCc6Ci0gICBjYXNlICcxJzoKLSAgIGNhc2UgJzInOgotICAg
Y2FzZSAnMyc6Ci0gICBjYXNlICc0JzoKLSAgIGNhc2UgJzUnOgotICAgY2FzZSAnNic6Ci0gICBj
YXNlICc3JzoKLSAgIGNhc2UgJzgnOgotICAgY2FzZSAnOSc6Ci0gICBjYXNlICctJzoKKyAgICB9
IC8vIGVsc2UgZmFsbCB0aHJvdWdoCisgIGNhc2UgJy8nOgorICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5Db21tZW50OworICAgIG9rID0gcmVhZENvbW1lbnQoKTsKKyAgICBicmVhazsKKyAgY2FzZSAn
MCc6CisgIGNhc2UgJzEnOgorICBjYXNlICcyJzoKKyAgY2FzZSAnMyc6CisgIGNhc2UgJzQnOgor
ICBjYXNlICc1JzoKKyAgY2FzZSAnNic6CisgIGNhc2UgJzcnOgorICBjYXNlICc4JzoKKyAgY2Fz
ZSAnOSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKKyAgICByZWFkTnVtYmVyKGZh
bHNlKTsKKyAgICBicmVhazsKKyAgY2FzZSAnLSc6CisgICAgaWYgKHJlYWROdW1iZXIodHJ1ZSkp
IHsKICAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdW1iZXI7Ci0gICAgICByZWFkTnVtYmVyKCk7
CisgICAgfSBlbHNlIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OZWdJbmY7CisgICAgICBv
ayA9IGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfICYmIG1hdGNoKCJuZmluaXR5IiwgNyk7
CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICd0JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2Vu
VHJ1ZTsKKyAgICBvayA9IG1hdGNoKCJydWUiLCAzKTsKKyAgICBicmVhazsKKyAgY2FzZSAnZic6
CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOworICAgIG9rID0gbWF0Y2goImFsc2UiLCA0
KTsKKyAgICBicmVhazsKKyAgY2FzZSAnbic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bGw7
CisgICAgb2sgPSBtYXRjaCgidWxsIiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2UgJ04nOgorICAg
IGlmIChmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXykgeworICAgICAgdG9rZW4udHlwZV8g
PSB0b2tlbk5hTjsKKyAgICAgIG9rID0gbWF0Y2goImFOIiwgMik7CisgICAgfSBlbHNlIHsKKyAg
ICAgIG9rID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICdJJzoKKyAgICBpZiAo
ZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5Qb3NJbmY7CisgICAgICBvayA9IG1hdGNoKCJuZmluaXR5IiwgNyk7CisgICAgfSBlbHNlIHsK
KyAgICAgIG9rID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICcsJzoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7CisgICAgYnJlYWs7CisgIGNhc2UgJzon
OgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0b3I7CisgICAgYnJlYWs7Cisg
IGNhc2UgMDoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZTdHJlYW07CisgICAgYnJlYWs7
CisgIGRlZmF1bHQ6CisgICAgb2sgPSBmYWxzZTsKKyAgICBicmVhazsKKyAgfQorICBpZiAoIW9r
KQorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uZW5kXyA9IGN1cnJlbnRf
OworICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBPdXJSZWFkZXI6OnNraXBTcGFjZXMoKSB7Cisg
IHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnRfOworICAg
IGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1xuJykKKyAg
ICAgICsrY3VycmVudF87CisgICAgZWxzZQogICAgICAgYnJlYWs7Ci0gICBjYXNlICd0JzoKLSAg
ICAgIHRva2VuLnR5cGVfID0gdG9rZW5UcnVlOwotICAgICAgb2sgPSBtYXRjaCggInJ1ZSIsIDMg
KTsKKyAgfQorfQorCitib29sIE91clJlYWRlcjo6bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50
IHBhdHRlcm5MZW5ndGgpIHsKKyAgaWYgKGVuZF8gLSBjdXJyZW50XyA8IHBhdHRlcm5MZW5ndGgp
CisgICAgcmV0dXJuIGZhbHNlOworICBpbnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3RoOworICB3aGls
ZSAoaW5kZXgtLSkKKyAgICBpZiAoY3VycmVudF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhdKQor
ICAgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50XyArPSBwYXR0ZXJuTGVuZ3RoOworICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRDb21tZW50KCkgeworICBMb2NhdGlv
biBjb21tZW50QmVnaW4gPSBjdXJyZW50XyAtIDE7CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7
CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IGZhbHNlOworICBpZiAoYyA9PSAnKicpCisgICAgc3VjY2Vz
c2Z1bCA9IHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGVsc2UgaWYgKGMgPT0gJy8nKQorICAgIHN1
Y2Nlc3NmdWwgPSByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGlmICghc3VjY2Vzc2Z1bCkKKyAg
ICByZXR1cm4gZmFsc2U7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBDb21tZW50
UGxhY2VtZW50IHBsYWNlbWVudCA9IGNvbW1lbnRCZWZvcmU7CisgICAgaWYgKGxhc3RWYWx1ZUVu
ZF8gJiYgIWNvbnRhaW5zTmV3TGluZShsYXN0VmFsdWVFbmRfLCBjb21tZW50QmVnaW4pKSB7Cisg
ICAgICBpZiAoYyAhPSAnKicgfHwgIWNvbnRhaW5zTmV3TGluZShjb21tZW50QmVnaW4sIGN1cnJl
bnRfKSkKKyAgICAgICAgcGxhY2VtZW50ID0gY29tbWVudEFmdGVyT25TYW1lTGluZTsKKyAgICB9
CisKKyAgICBhZGRDb21tZW50KGNvbW1lbnRCZWdpbiwgY3VycmVudF8sIHBsYWNlbWVudCk7Cisg
IH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK1N0cmluZyBPdXJSZWFkZXI6Om5vcm1hbGl6ZUVPTChP
dXJSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE91clJlYWRlcjo6TG9jYXRpb24gZW5kKSB7CisgIFN0cmluZyBub3JtYWxpemVkOworICBub3Jt
YWxpemVkLnJlc2VydmUoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbmQgLSBiZWdpbikpOworICBPdXJS
ZWFkZXI6OkxvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbjsKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5k
KSB7CisgICAgY2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAg
ICBpZiAoY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgLy8gY29u
dmVydCBkb3MgRU9MCisgICAgICAgICsrY3VycmVudDsKKyAgICAgIC8vIGNvbnZlcnQgTWFjIEVP
TAorICAgICAgbm9ybWFsaXplZCArPSAnXG4nOworICAgIH0gZWxzZSB7CisgICAgICBub3JtYWxp
emVkICs9IGM7CisgICAgfQorICB9CisgIHJldHVybiBub3JtYWxpemVkOworfQorCit2b2lkIE91
clJlYWRlcjo6YWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRQ
bGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIGFzc2VydChjb2xsZWN0Q29tbWVudHNfKTsKKyAgY29u
c3QgU3RyaW5nJiBub3JtYWxpemVkID0gbm9ybWFsaXplRU9MKGJlZ2luLCBlbmQpOworICBpZiAo
cGxhY2VtZW50ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHsKKyAgICBhc3NlcnQobGFzdFZh
bHVlXyAhPSBudWxscHRyKTsKKyAgICBsYXN0VmFsdWVfLT5zZXRDb21tZW50KG5vcm1hbGl6ZWQs
IHBsYWNlbWVudCk7CisgIH0gZWxzZSB7CisgICAgY29tbWVudHNCZWZvcmVfICs9IG5vcm1hbGl6
ZWQ7CisgIH0KK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50KCkgeworICB3
aGlsZSAoKGN1cnJlbnRfICsgMSkgPCBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIo
KTsKKyAgICBpZiAoYyA9PSAnKicgJiYgKmN1cnJlbnRfID09ICcvJykKICAgICAgIGJyZWFrOwot
ICAgY2FzZSAnZic6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuRmFsc2U7Ci0gICAgICBvayA9
IG1hdGNoKCAiYWxzZSIsIDQgKTsKKyAgfQorICByZXR1cm4gZ2V0TmV4dENoYXIoKSA9PSAnLyc7
Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ3BwU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAo
Y3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYg
KGMgPT0gJ1xuJykKICAgICAgIGJyZWFrOwotICAgY2FzZSAnbic6Ci0gICAgICB0b2tlbi50eXBl
XyA9IHRva2VuTnVsbDsKLSAgICAgIG9rID0gbWF0Y2goICJ1bGwiLCAzICk7CisgICAgaWYgKGMg
PT0gJ1xyJykgeworICAgICAgLy8gQ29uc3VtZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6
ZWQgaW4gYWRkQ29tbWVudC4KKyAgICAgIGlmIChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50
XyA9PSAnXG4nKQorICAgICAgICBnZXROZXh0Q2hhcigpOworICAgICAgLy8gQnJlYWsgb24gTW9j
IE9TIDkgRU9MLgogICAgICAgYnJlYWs7Ci0gICBjYXNlICcsJzoKLSAgICAgIHRva2VuLnR5cGVf
ID0gdG9rZW5BcnJheVNlcGFyYXRvcjsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgT3VyUmVhZGVyOjpyZWFkTnVtYmVyKGJvb2wgY2hlY2tJbmYpIHsKKyAgY29uc3QgY2hh
ciogcCA9IGN1cnJlbnRfOworICBpZiAoY2hlY2tJbmYgJiYgcCAhPSBlbmRfICYmICpwID09ICdJ
JykgeworICAgIGN1cnJlbnRfID0gKytwOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBjaGFy
IGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9yIGFscmVhZHkgY29uc3VtZWQgY2hhcmFjdGVyCisgIC8v
IGludGVncmFsIHBhcnQKKyAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgIGMgPSAo
Y3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogJ1wwJzsKKyAgLy8gZnJhY3Rpb25hbCBwYXJ0
CisgIGlmIChjID09ICcuJykgeworICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsr
IDogJ1wwJzsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1
cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIH0KKyAgLy8gZXhwb25lbnRpYWwg
cGFydAorICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKKyAgICBjID0gKGN1cnJlbnRfID0g
cCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgICAgaWYgKGMgPT0gJysnIHx8IGMgPT0gJy0nKQor
ICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAnXDAnOworICAgIHdoaWxl
IChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8g
PyAqcCsrIDogJ1wwJzsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KK2Jvb2wgT3VyUmVhZGVyOjpy
ZWFkU3RyaW5nKCkgeworICBDaGFyIGMgPSAwOworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykg
eworICAgIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICdcXCcpCisgICAgICBnZXRO
ZXh0Q2hhcigpOworICAgIGVsc2UgaWYgKGMgPT0gJyInKQogICAgICAgYnJlYWs7Ci0gICBjYXNl
ICc6JzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0b3I7CisgIH0KKyAg
cmV0dXJuIGMgPT0gJyInOworfQorCitib29sIE91clJlYWRlcjo6cmVhZFN0cmluZ1NpbmdsZVF1
b3RlKCkgeworICBDaGFyIGMgPSAwOworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAg
IGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICdcXCcpCisgICAgICBnZXROZXh0Q2hh
cigpOworICAgIGVsc2UgaWYgKGMgPT0gJ1wnJykKICAgICAgIGJyZWFrOwotICAgY2FzZSAwOgot
ICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOworICB9CisgIHJldHVybiBjID09
ICdcJyc7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkT2JqZWN0KFRva2VuJiB0b2tlbikgewor
ICBUb2tlbiB0b2tlbk5hbWU7CisgIFN0cmluZyBuYW1lOworICBWYWx1ZSBpbml0KG9iamVjdFZh
bHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIHdoaWxlIChyZWFk
VG9rZW4odG9rZW5OYW1lKSkgeworICAgIGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVlOworICAg
IHdoaWxlICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIGluaXRpYWxUb2tlbk9r
KQorICAgICAgaW5pdGlhbFRva2VuT2sgPSByZWFkVG9rZW4odG9rZW5OYW1lKTsKKyAgICBpZiAo
IWluaXRpYWxUb2tlbk9rKQogICAgICAgYnJlYWs7Ci0gICBkZWZhdWx0OgotICAgICAgb2sgPSBm
YWxzZTsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2JqZWN0RW5kICYmIG5hbWUu
ZW1wdHkoKSkgLy8gZW1wdHkgb2JqZWN0CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBuYW1lLmNs
ZWFyKCk7CisgICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlblN0cmluZykgeworICAgICAg
aWYgKCFkZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBuYW1lKSkKKyAgICAgICAgcmV0dXJuIHJlY292
ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworICAgIH0gZWxzZSBpZiAodG9rZW5OYW1lLnR5
cGVfID09IHRva2VuTnVtYmVyICYmIGZlYXR1cmVzXy5hbGxvd051bWVyaWNLZXlzXykgeworICAg
ICAgVmFsdWUgbnVtYmVyTmFtZTsKKyAgICAgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuTmFtZSwg
bnVtYmVyTmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0
RW5kKTsKKyAgICAgIG5hbWUgPSBudW1iZXJOYW1lLmFzU3RyaW5nKCk7CisgICAgfSBlbHNlIHsK
ICAgICAgIGJyZWFrOwotICAgfQotICAgaWYgKCAhb2sgKQotICAgICAgdG9rZW4udHlwZV8gPSB0
b2tlbkVycm9yOwotICAgdG9rZW4uZW5kXyA9IGN1cnJlbnRfOwotICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorICAgIGlmIChuYW1lLmxlbmd0aCgpID49ICgxVSA8PCAzMCkpCisgICAgICB0aHJvd1J1
bnRpbWVFcnJvcigia2V5bGVuZ3RoID49IDJeMzAiKTsKKyAgICBpZiAoZmVhdHVyZXNfLnJlamVj
dER1cEtleXNfICYmIGN1cnJlbnRWYWx1ZSgpLmlzTWVtYmVyKG5hbWUpKSB7CisgICAgICBTdHJp
bmcgbXNnID0gIkR1cGxpY2F0ZSBrZXk6ICciICsgbmFtZSArICInIjsKKyAgICAgIHJldHVybiBh
ZGRFcnJvckFuZFJlY292ZXIobXNnLCB0b2tlbk5hbWUsIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9
CisKKyAgICBUb2tlbiBjb2xvbjsKKyAgICBpZiAoIXJlYWRUb2tlbihjb2xvbikgfHwgY29sb24u
dHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFu
ZFJlY292ZXIoIk1pc3NpbmcgJzonIGFmdGVyIG9iamVjdCBtZW1iZXIgbmFtZSIsIGNvbG9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbk9iamVjdEVuZCk7CisgICAgfQor
ICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW25hbWVdOworICAgIG5vZGVzXy5wdXNo
KCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsK
KyAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJG
cm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworCisgICAgVG9rZW4gY29tbWE7CisgICAgaWYgKCFy
ZWFkVG9rZW4oY29tbWEpIHx8CisgICAgICAgIChjb21tYS50eXBlXyAhPSB0b2tlbk9iamVjdEVu
ZCAmJiBjb21tYS50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYmCisgICAgICAgICBjb21t
YS50eXBlXyAhPSB0b2tlbkNvbW1lbnQpKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNv
dmVyKCJNaXNzaW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9uIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29tbWEsIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9Cisg
ICAgYm9vbCBmaW5hbGl6ZVRva2VuT2sgPSB0cnVlOworICAgIHdoaWxlIChjb21tYS50eXBlXyA9
PSB0b2tlbkNvbW1lbnQgJiYgZmluYWxpemVUb2tlbk9rKQorICAgICAgZmluYWxpemVUb2tlbk9r
ID0gcmVhZFRva2VuKGNvbW1hKTsKKyAgICBpZiAoY29tbWEudHlwZV8gPT0gdG9rZW5PYmplY3RF
bmQpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVy
KCJNaXNzaW5nICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCB0b2tlbk5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdG9rZW5PYmplY3RFbmQpOwogfQogCitib29sIE91clJlYWRl
cjo6cmVhZEFycmF5KFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBpbml0KGFycmF5VmFsdWUpOwor
ICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgc2tpcFNwYWNlcygpOworICBp
ZiAoY3VycmVudF8gIT0gZW5kXyAmJiAqY3VycmVudF8gPT0gJ10nKSAvLyBlbXB0eSBhcnJheQor
ICB7CisgICAgVG9rZW4gZW5kQXJyYXk7CisgICAgcmVhZFRva2VuKGVuZEFycmF5KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKKyAgfQorICBpbnQgaW5kZXggPSAwOworICBmb3IgKDs7KSB7CisgICAgVmFs
dWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107CisgICAgbm9kZXNfLnB1c2goJnZh
bHVlKTsKKyAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAg
IGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21F
cnJvcih0b2tlbkFycmF5RW5kKTsKKworICAgIFRva2VuIGN1cnJlbnRUb2tlbjsKKyAgICAvLyBB
Y2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgorICAgIG9rID0gcmVh
ZFRva2VuKGN1cnJlbnRUb2tlbik7CisgICAgd2hpbGUgKGN1cnJlbnRUb2tlbi50eXBlXyA9PSB0
b2tlbkNvbW1lbnQgJiYgb2spIHsKKyAgICAgIG9rID0gcmVhZFRva2VuKGN1cnJlbnRUb2tlbik7
CisgICAgfQorICAgIGJvb2wgYmFkVG9rZW5UeXBlID0gKGN1cnJlbnRUb2tlbi50eXBlXyAhPSB0
b2tlbkFycmF5U2VwYXJhdG9yICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRv
a2VuLnR5cGVfICE9IHRva2VuQXJyYXlFbmQpOworICAgIGlmICghb2sgfHwgYmFkVG9rZW5UeXBl
KSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCJNaXNzaW5nICcsJyBvciAnXScg
aW4gYXJyYXkgZGVjbGFyYXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
dXJyZW50VG9rZW4sIHRva2VuQXJyYXlFbmQpOworICAgIH0KKyAgICBpZiAoY3VycmVudFRva2Vu
LnR5cGVfID09IHRva2VuQXJyYXlFbmQpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gdHJ1
ZTsKK30KIAotdm9pZCAKLVJlYWRlcjo6c2tpcFNwYWNlcygpCi17Ci0gICB3aGlsZSAoIGN1cnJl
bnRfICE9IGVuZF8gKQotICAgewotICAgICAgQ2hhciBjID0gKmN1cnJlbnRfOwotICAgICAgaWYg
KCBjID09ICcgJyAgfHwgIGMgPT0gJ1x0JyAgfHwgIGMgPT0gJ1xyJyAgfHwgIGMgPT0gJ1xuJyAp
Ci0gICAgICAgICArK2N1cnJlbnRfOwotICAgICAgZWxzZQotICAgICAgICAgYnJlYWs7Ci0gICB9
Citib29sIE91clJlYWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBk
ZWNvZGVkOworICBpZiAoIWRlY29kZU51bWJlcih0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJu
IGZhbHNlOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0
cnVlOwogfQogCitib29sIE91clJlYWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFs
dWUmIGRlY29kZWQpIHsKKyAgLy8gQXR0ZW1wdHMgdG8gcGFyc2UgdGhlIG51bWJlciBhcyBhbiBp
bnRlZ2VyLiBJZiB0aGUgbnVtYmVyIGlzCisgIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHN1
cHBvcnRlZCB2YWx1ZSBvZiBhbiBpbnRlZ2VyIHRoZW4KKyAgLy8gd2UgZGVjb2RlIHRoZSBudW1i
ZXIgYXMgYSBkb3VibGUuCisgIExvY2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF87CisgIGJv
b2wgaXNOZWdhdGl2ZSA9ICpjdXJyZW50ID09ICctJzsKKyAgaWYgKGlzTmVnYXRpdmUpCisgICAg
KytjdXJyZW50OworCisgIC8vIFRPRE8oaXNzdWUgIzk2MCk6IENoYW5nZSB0byBjb25zdGV4cHIK
KyAgc3RhdGljIGNvbnN0IGF1dG8gcG9zaXRpdmVfdGhyZXNob2xkID0gVmFsdWU6Om1heExhcmdl
c3RVSW50IC8gMTA7CisgIHN0YXRpYyBjb25zdCBhdXRvIHBvc2l0aXZlX2xhc3RfZGlnaXQgPSBW
YWx1ZTo6bWF4TGFyZ2VzdFVJbnQgJSAxMDsKKyAgc3RhdGljIGNvbnN0IGF1dG8gbmVnYXRpdmVf
dGhyZXNob2xkID0KKyAgICAgIFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWluTGFyZ2VzdElu
dCkgLyAxMDsKKyAgc3RhdGljIGNvbnN0IGF1dG8gbmVnYXRpdmVfbGFzdF9kaWdpdCA9CisgICAg
ICBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1pbkxhcmdlc3RJbnQpICUgMTA7CisKKyAgY29u
c3QgYXV0byB0aHJlc2hvbGQgPSBpc05lZ2F0aXZlID8gbmVnYXRpdmVfdGhyZXNob2xkIDogcG9z
aXRpdmVfdGhyZXNob2xkOworICBjb25zdCBhdXRvIGxhc3RfZGlnaXQgPQorICAgICAgaXNOZWdh
dGl2ZSA/IG5lZ2F0aXZlX2xhc3RfZGlnaXQgOiBwb3NpdGl2ZV9sYXN0X2RpZ2l0OworCisgIFZh
bHVlOjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgdG9rZW4uZW5k
XykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5
JykKKyAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOworCisgICAgY29u
c3QgYXV0byBkaWdpdChzdGF0aWNfY2FzdDxWYWx1ZTo6VUludD4oYyAtICcwJykpOworICAgIGlm
ICh2YWx1ZSA+PSB0aHJlc2hvbGQpIHsKKyAgICAgIC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0
aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQgZG93bikuIElmCisgICAgICAvLyBh
KSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUgbGltaXQsIG1lYWluZyB2YWx1ZSA9PSB0aHJl
c2hvbGQsCisgICAgICAvLyBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0LCBvcgorICAgICAgLy8g
YykgaXQncyBzbWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3Jl
IG9rYXkuCisgICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUg
dG8gYXZvaWQgb3ZlcmZsb3cuCisgICAgICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwgY3VycmVu
dCAhPSB0b2tlbi5lbmRfIHx8IGRpZ2l0ID4gbGFzdF9kaWdpdCkgeworICAgICAgICByZXR1cm4g
ZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKyAgICAgIH0KKyAgICB9CisgICAgdmFsdWUg
PSB2YWx1ZSAqIDEwICsgZGlnaXQ7CisgIH0KIAotYm9vbCAKLVJlYWRlcjo6bWF0Y2goIExvY2F0
aW9uIHBhdHRlcm4sIAotICAgICAgICAgICAgICAgaW50IHBhdHRlcm5MZW5ndGggKQotewotICAg
aWYgKCBlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoICkKLSAgICAgIHJldHVybiBmYWxz
ZTsKLSAgIGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7Ci0gICB3aGlsZSAoIGluZGV4LS0gKQot
ICAgICAgaWYgKCBjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltpbmRleF0gKQotICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKLSAgIHJldHVybiB0
cnVlOwotfQotCi0KLWJvb2wKLVJlYWRlcjo6cmVhZENvbW1lbnQoKQotewotICAgTG9jYXRpb24g
Y29tbWVudEJlZ2luID0gY3VycmVudF8gLSAxOwotICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsK
LSAgIGJvb2wgc3VjY2Vzc2Z1bCA9IGZhbHNlOwotICAgaWYgKCBjID09ICcqJyApCi0gICAgICBz
dWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKLSAgIGVsc2UgaWYgKCBjID09ICcvJyAp
Ci0gICAgICBzdWNjZXNzZnVsID0gcmVhZENwcFN0eWxlQ29tbWVudCgpOwotICAgaWYgKCAhc3Vj
Y2Vzc2Z1bCApCi0gICAgICByZXR1cm4gZmFsc2U7CisgIGlmIChpc05lZ2F0aXZlKQorICAgIGRl
Y29kZWQgPSAtVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlIGlmICh2YWx1ZSA8PSBW
YWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpKQorICAgIGRlY29kZWQgPSBW
YWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UKKyAgICBkZWNvZGVkID0gdmFsdWU7CiAK
LSAgIGlmICggY29sbGVjdENvbW1lbnRzXyApCi0gICB7Ci0gICAgICBDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCA9IGNvbW1lbnRCZWZvcmU7Ci0gICAgICBpZiAoIGxhc3RWYWx1ZUVuZF8gICYm
ICAhY29udGFpbnNOZXdMaW5lKCBsYXN0VmFsdWVFbmRfLCBjb21tZW50QmVnaW4gKSApCi0gICAg
ICB7Ci0gICAgICAgICBpZiAoIGMgIT0gJyonICB8fCAgIWNvbnRhaW5zTmV3TGluZSggY29tbWVu
dEJlZ2luLCBjdXJyZW50XyApICkKLSAgICAgICAgICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRl
ck9uU2FtZUxpbmU7Ci0gICAgICB9CisgIHJldHVybiB0cnVlOworfQogCi0gICAgICBhZGRDb21t
ZW50KCBjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQgKTsKLSAgIH0KLSAgIHJldHVy
biB0cnVlOwotfQotCi0KLXZvaWQgCi1SZWFkZXI6OmFkZENvbW1lbnQoIExvY2F0aW9uIGJlZ2lu
LCAKLSAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLCAKLSAgICAgICAgICAgICAgICAg
ICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKQotewotICAgYXNzZXJ0KCBjb2xsZWN0Q29t
bWVudHNfICk7Ci0gICBpZiAoIHBsYWNlbWVudCA9PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lICkK
LSAgIHsKLSAgICAgIGFzc2VydCggbGFzdFZhbHVlXyAhPSAwICk7Ci0gICAgICBsYXN0VmFsdWVf
LT5zZXRDb21tZW50KCBzdGQ6OnN0cmluZyggYmVnaW4sIGVuZCApLCBwbGFjZW1lbnQgKTsKLSAg
IH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIGlmICggIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpICkK
LSAgICAgICAgIGNvbW1lbnRzQmVmb3JlXyArPSAiXG4iOwotICAgICAgY29tbWVudHNCZWZvcmVf
ICs9IHN0ZDo6c3RyaW5nKCBiZWdpbiwgZW5kICk7Ci0gICB9Ci19Ci0KLQotYm9vbCAKLVJlYWRl
cjo6cmVhZENTdHlsZUNvbW1lbnQoKQotewotICAgd2hpbGUgKCBjdXJyZW50XyAhPSBlbmRfICkK
LSAgIHsKLSAgICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7Ci0gICAgICBpZiAoIGMgPT0gJyon
ICAmJiAgKmN1cnJlbnRfID09ICcvJyApCi0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVy
biBnZXROZXh0Q2hhcigpID09ICcvJzsKLX0KLQotCi1ib29sIAotUmVhZGVyOjpyZWFkQ3BwU3R5
bGVDb21tZW50KCkKLXsKLSAgIHdoaWxlICggY3VycmVudF8gIT0gZW5kXyApCi0gICB7Ci0gICAg
ICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICAgICAgaWYgKCAgYyA9PSAnXHInICB8fCAgYyA9
PSAnXG4nICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQot
dm9pZCAKLVJlYWRlcjo6cmVhZE51bWJlcigpCi17Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVu
ZF8gKQotICAgewotICAgICAgaWYgKCAhKCpjdXJyZW50XyA+PSAnMCcgICYmICAqY3VycmVudF8g
PD0gJzknKSAgJiYKLSAgICAgICAgICAgIWluKCAqY3VycmVudF8sICcuJywgJ2UnLCAnRScsICcr
JywgJy0nICkgKQotICAgICAgICAgYnJlYWs7Ci0gICAgICArK2N1cnJlbnRfOwotICAgfQotfQot
Ci1ib29sCi1SZWFkZXI6OnJlYWRTdHJpbmcoKQotewotICAgQ2hhciBjID0gMDsKLSAgIHdoaWxl
ICggY3VycmVudF8gIT0gZW5kXyApCi0gICB7Ci0gICAgICBjID0gZ2V0TmV4dENoYXIoKTsKLSAg
ICAgIGlmICggYyA9PSAnXFwnICkKLSAgICAgICAgIGdldE5leHRDaGFyKCk7Ci0gICAgICBlbHNl
IGlmICggYyA9PSAnIicgKQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gYyA9PSAn
Iic7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6cmVhZE9iamVjdCggVG9rZW4gJi8qdG9rZW5TdGFy
dCovICkKLXsKLSAgIFRva2VuIHRva2VuTmFtZTsKLSAgIHN0ZDo6c3RyaW5nIG5hbWU7Ci0gICBj
dXJyZW50VmFsdWUoKSA9IFZhbHVlKCBvYmplY3RWYWx1ZSApOwotICAgd2hpbGUgKCByZWFkVG9r
ZW4oIHRva2VuTmFtZSApICkKLSAgIHsKLSAgICAgIGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVl
OwotICAgICAgd2hpbGUgKCB0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5Db21tZW50ICAmJiAgaW5p
dGlhbFRva2VuT2sgKQotICAgICAgICAgaW5pdGlhbFRva2VuT2sgPSByZWFkVG9rZW4oIHRva2Vu
TmFtZSApOwotICAgICAgaWYgICggIWluaXRpYWxUb2tlbk9rICkKLSAgICAgICAgIGJyZWFrOwot
ICAgICAgaWYgKCB0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5PYmplY3RFbmQgICYmICBuYW1lLmVt
cHR5KCkgKSAgLy8gZW1wdHkgb2JqZWN0Ci0gICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIGlm
ICggdG9rZW5OYW1lLnR5cGVfICE9IHRva2VuU3RyaW5nICkKLSAgICAgICAgIGJyZWFrOwotICAg
ICAgCi0gICAgICBuYW1lID0gIiI7Ci0gICAgICBpZiAoICFkZWNvZGVTdHJpbmcoIHRva2VuTmFt
ZSwgbmFtZSApICkKLSAgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKCB0b2tlbk9iamVj
dEVuZCApOwotCi0gICAgICBUb2tlbiBjb2xvbjsKLSAgICAgIGlmICggIXJlYWRUb2tlbiggY29s
b24gKSB8fCAgY29sb24udHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IgKQotICAgICAgewot
ICAgICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlciggIk1pc3NpbmcgJzonIGFmdGVyIG9i
amVjdCBtZW1iZXIgbmFtZSIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29sb24sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5PYmplY3RF
bmQgKTsKLSAgICAgIH0KLSAgICAgIFZhbHVlICZ2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpWyBuYW1l
IF07Ci0gICAgICBub2Rlc18ucHVzaCggJnZhbHVlICk7Ci0gICAgICBib29sIG9rID0gcmVhZFZh
bHVlKCk7Ci0gICAgICBub2Rlc18ucG9wKCk7Ci0gICAgICBpZiAoICFvayApIC8vIGVycm9yIGFs
cmVhZHkgc2V0Ci0gICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvciggdG9rZW5PYmplY3RF
bmQgKTsKLQotICAgICAgVG9rZW4gY29tbWE7Ci0gICAgICBpZiAoICFyZWFkVG9rZW4oIGNvbW1h
ICkKLSAgICAgICAgICAgIHx8ICAoIGNvbW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICAmJiAg
Ci0gICAgICAgICAgICAgICAgICBjb21tYS50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYm
Ci0gICAgICAgICAgICAgICAgICBjb21tYS50eXBlXyAhPSB0b2tlbkNvbW1lbnQgKSApCi0gICAg
ICB7Ci0gICAgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCAiTWlzc2luZyAnLCcgb3Ig
J30nIGluIG9iamVjdCBkZWNsYXJhdGlvbiIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWEsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9r
ZW5PYmplY3RFbmQgKTsKLSAgICAgIH0KLSAgICAgIGJvb2wgZmluYWxpemVUb2tlbk9rID0gdHJ1
ZTsKLSAgICAgIHdoaWxlICggY29tbWEudHlwZV8gPT0gdG9rZW5Db21tZW50ICYmCi0gICAgICAg
ICAgICAgIGZpbmFsaXplVG9rZW5PayApCi0gICAgICAgICBmaW5hbGl6ZVRva2VuT2sgPSByZWFk
VG9rZW4oIGNvbW1hICk7Ci0gICAgICBpZiAoIGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5k
ICkKLSAgICAgICAgIHJldHVybiB0cnVlOwotICAgfQotICAgcmV0dXJuIGFkZEVycm9yQW5kUmVj
b3ZlciggIk1pc3NpbmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZSIsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdG9rZW5OYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRva2VuT2JqZWN0RW5kICk7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6cmVhZEFycmF5KCBU
b2tlbiAmLyp0b2tlblN0YXJ0Ki8gKQotewotICAgY3VycmVudFZhbHVlKCkgPSBWYWx1ZSggYXJy
YXlWYWx1ZSApOwotICAgc2tpcFNwYWNlcygpOwotICAgaWYgKCAqY3VycmVudF8gPT0gJ10nICkg
Ly8gZW1wdHkgYXJyYXkKLSAgIHsKLSAgICAgIFRva2VuIGVuZEFycmF5OwotICAgICAgcmVhZFRv
a2VuKCBlbmRBcnJheSApOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICB9Ci0gICBpbnQgaW5kZXgg
PSAwOwotICAgZm9yICg7OykKLSAgIHsKLSAgICAgIFZhbHVlICZ2YWx1ZSA9IGN1cnJlbnRWYWx1
ZSgpWyBpbmRleCsrIF07Ci0gICAgICBub2Rlc18ucHVzaCggJnZhbHVlICk7Ci0gICAgICBib29s
IG9rID0gcmVhZFZhbHVlKCk7Ci0gICAgICBub2Rlc18ucG9wKCk7Ci0gICAgICBpZiAoICFvayAp
IC8vIGVycm9yIGFscmVhZHkgc2V0Ci0gICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcigg
dG9rZW5BcnJheUVuZCApOwotCi0gICAgICBUb2tlbiB0b2tlbjsKLSAgICAgIC8vIEFjY2VwdCBD
b21tZW50IGFmdGVyIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCi0gICAgICBvayA9IHJlYWRUb2tl
biggdG9rZW4gKTsKLSAgICAgIHdoaWxlICggdG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50ICAm
JiAgb2sgKQotICAgICAgewotICAgICAgICAgb2sgPSByZWFkVG9rZW4oIHRva2VuICk7Ci0gICAg
ICB9Ci0gICAgICBib29sIGJhZFRva2VuVHlwZSA9ICggdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJh
eVNlcGFyYXRvciAgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi50eXBlXyAh
PSB0b2tlbkFycmF5RW5kICk7Ci0gICAgICBpZiAoICFvayAgfHwgIGJhZFRva2VuVHlwZSApCi0g
ICAgICB7Ci0gICAgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCAiTWlzc2luZyAnLCcg
b3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0b2tlbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
b2tlbkFycmF5RW5kICk7Ci0gICAgICB9Ci0gICAgICBpZiAoIHRva2VuLnR5cGVfID09IHRva2Vu
QXJyYXlFbmQgKQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQot
Ci1ib29sIAotUmVhZGVyOjpkZWNvZGVOdW1iZXIoIFRva2VuICZ0b2tlbiApCi17Ci0gICBib29s
IGlzRG91YmxlID0gZmFsc2U7Ci0gICBmb3IgKCBMb2NhdGlvbiBpbnNwZWN0ID0gdG9rZW4uc3Rh
cnRfOyBpbnNwZWN0ICE9IHRva2VuLmVuZF87ICsraW5zcGVjdCApCi0gICB7Ci0gICAgICBpc0Rv
dWJsZSA9IGlzRG91YmxlICAKLSAgICAgICAgICAgICAgICAgfHwgIGluKCAqaW5zcGVjdCwgJy4n
LCAnZScsICdFJywgJysnICkgIAotICAgICAgICAgICAgICAgICB8fCAgKCAqaW5zcGVjdCA9PSAn
LScgICYmICBpbnNwZWN0ICE9IHRva2VuLnN0YXJ0XyApOwotICAgfQotICAgaWYgKCBpc0RvdWJs
ZSApCi0gICAgICByZXR1cm4gZGVjb2RlRG91YmxlKCB0b2tlbiApOwotICAgLy8gQXR0ZW1wdHMg
dG8gcGFyc2UgdGhlIG51bWJlciBhcyBhbiBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVyIGlzCi0gICAv
LyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50ZWdlciB0
aGVuCi0gICAvLyB3ZSBkZWNvZGUgdGhlIG51bWJlciBhcyBhIGRvdWJsZS4KLSAgIExvY2F0aW9u
IGN1cnJlbnQgPSB0b2tlbi5zdGFydF87Ci0gICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVudCA9
PSAnLSc7Ci0gICBpZiAoIGlzTmVnYXRpdmUgKQotICAgICAgKytjdXJyZW50OwotICAgVmFsdWU6
Okxhcmdlc3RVSW50IG1heEludGVnZXJWYWx1ZSA9IGlzTmVnYXRpdmUgPyBWYWx1ZTo6TGFyZ2Vz
dFVJbnQoLVZhbHVlOjptaW5MYXJnZXN0SW50KSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDogVmFsdWU6Om1heExhcmdlc3RVSW50OwotICAgVmFs
dWU6Okxhcmdlc3RVSW50IHRocmVzaG9sZCA9IG1heEludGVnZXJWYWx1ZSAvIDEwOwotICAgVmFs
dWU6Okxhcmdlc3RVSW50IHZhbHVlID0gMDsKLSAgIHdoaWxlICggY3VycmVudCA8IHRva2VuLmVu
ZF8gKQotICAgewotICAgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICAgIGlmICggYyA8ICcw
JyAgfHwgIGMgPiAnOScgKQotICAgICAgICAgcmV0dXJuIGFkZEVycm9yKCAiJyIgKyBzdGQ6OnN0
cmluZyggdG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfICkgKyAiJyBpcyBub3QgYSBudW1iZXIuIiwg
dG9rZW4gKTsKLSAgICAgIFZhbHVlOjpVSW50IGRpZ2l0KGMgLSAnMCcpOwotICAgICAgaWYgKCB2
YWx1ZSA+PSB0aHJlc2hvbGQgKQotICAgICAgewotICAgICAgICAgLy8gV2UndmUgaGl0IG9yIGV4
Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAocm91bmRlZCBkb3duKS4gSWYKLSAg
ICAgICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRoZSBsaW1pdCwgYikgdGhpcyBp
cyB0aGUgbGFzdCBkaWdpdCwgYW5kCi0gICAgICAgICAvLyBjKSBpdCdzIHNtYWxsIGVub3VnaCB0
byBmaXQgaW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4KLSAgICAgICAgIC8vIE90
aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9pZCBvdmVyZmxvdy4K
LSAgICAgICAgIGlmICh2YWx1ZSA+IHRocmVzaG9sZCB8fAotICAgICAgICAgICAgIGN1cnJlbnQg
IT0gdG9rZW4uZW5kXyB8fAotICAgICAgICAgICAgIGRpZ2l0ID4gbWF4SW50ZWdlclZhbHVlICUg
MTApCi0gICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKCB0b2tlbiAp
OwotICAgICAgICAgfQotICAgICAgfQotICAgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7
Ci0gICB9Ci0gICBpZiAoIGlzTmVnYXRpdmUgKQotICAgICAgY3VycmVudFZhbHVlKCkgPSAtVmFs
dWU6Okxhcmdlc3RJbnQoIHZhbHVlICk7Ci0gICBlbHNlIGlmICggdmFsdWUgPD0gVmFsdWU6Okxh
cmdlc3RVSW50KFZhbHVlOjptYXhJbnQpICkKLSAgICAgIGN1cnJlbnRWYWx1ZSgpID0gVmFsdWU6
Okxhcmdlc3RJbnQoIHZhbHVlICk7Ci0gICBlbHNlCi0gICAgICBjdXJyZW50VmFsdWUoKSA9IHZh
bHVlOwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2RlRG91Ymxl
KCBUb2tlbiAmdG9rZW4gKQotewotICAgZG91YmxlIHZhbHVlID0gMDsKLSAgIGNvbnN0IGludCBi
dWZmZXJTaXplID0gMzI7Ci0gICBpbnQgY291bnQ7Ci0gICBpbnQgbGVuZ3RoID0gaW50KHRva2Vu
LmVuZF8gLSB0b2tlbi5zdGFydF8pOwotCi0gICAvLyBTYW5pdHkgY2hlY2sgdG8gYXZvaWQgYnVm
ZmVyIG92ZXJmbG93IGV4cGxvaXRzLgotICAgaWYgKGxlbmd0aCA8IDApIHsKLSAgICAgIHJldHVy
biBhZGRFcnJvciggIlVuYWJsZSB0byBwYXJzZSB0b2tlbiBsZW5ndGgiLCB0b2tlbiApOwotICAg
fQotCi0gICAvLyBBdm9pZCB1c2luZyBhIHN0cmluZyBjb25zdGFudCBmb3IgdGhlIGZvcm1hdCBj
b250cm9sIHN0cmluZyBnaXZlbiB0bwotICAgLy8gc3NjYW5mLCBhcyB0aGlzIGNhbiBjYXVzZSBo
YXJkIHRvIGRlYnVnIGNyYXNoZXMgb24gT1MgWC4gU2VlIGhlcmUgZm9yIG1vcmUKLSAgIC8vIGlu
Zm86Ci0gICAvLwotICAgLy8gICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkv
bWFjLyNET0NVTUVOVEFUSU9OL0RldmVsb3BlclRvb2xzL2djYy00LjAuMS9nY2MvSW5jb21wYXRp
YmlsaXRpZXMuaHRtbAotICAgY2hhciBmb3JtYXRbXSA9ICIlbGYiOwotCi0gICBpZiAoIGxlbmd0
aCA8PSBidWZmZXJTaXplICkKLSAgIHsKLSAgICAgIENoYXIgYnVmZmVyW2J1ZmZlclNpemUrMV07
Ci0gICAgICBtZW1jcHkoIGJ1ZmZlciwgdG9rZW4uc3RhcnRfLCBsZW5ndGggKTsKLSAgICAgIGJ1
ZmZlcltsZW5ndGhdID0gMDsKLSAgICAgIGNvdW50ID0gc3NjYW5mKCBidWZmZXIsIGZvcm1hdCwg
JnZhbHVlICk7Ci0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAgICBzdGQ6OnN0cmluZyBidWZmZXIo
IHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyApOwotICAgICAgY291bnQgPSBzc2NhbmYoIGJ1ZmZl
ci5jX3N0cigpLCBmb3JtYXQsICZ2YWx1ZSApOwotICAgfQotCi0gICBpZiAoIGNvdW50ICE9IDEg
KQotICAgICAgcmV0dXJuIGFkZEVycm9yKCAiJyIgKyBzdGQ6OnN0cmluZyggdG9rZW4uc3RhcnRf
LCB0b2tlbi5lbmRfICkgKyAiJyBpcyBub3QgYSBudW1iZXIuIiwgdG9rZW4gKTsKLSAgIGN1cnJl
bnRWYWx1ZSgpID0gdmFsdWU7Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1ib29sIAotUmVhZGVy
OjpkZWNvZGVTdHJpbmcoIFRva2VuICZ0b2tlbiApCi17Ci0gICBzdGQ6OnN0cmluZyBkZWNvZGVk
OwotICAgaWYgKCAhZGVjb2RlU3RyaW5nKCB0b2tlbiwgZGVjb2RlZCApICkKLSAgICAgIHJldHVy
biBmYWxzZTsKLSAgIGN1cnJlbnRWYWx1ZSgpID0gZGVjb2RlZDsKLSAgIHJldHVybiB0cnVlOwot
fQotCi0KLWJvb2wgCi1SZWFkZXI6OmRlY29kZVN0cmluZyggVG9rZW4gJnRva2VuLCBzdGQ6OnN0
cmluZyAmZGVjb2RlZCApCi17Ci0gICBkZWNvZGVkLnJlc2VydmUoIHRva2VuLmVuZF8gLSB0b2tl
bi5zdGFydF8gLSAyICk7Ci0gICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfICsgMTsg
Ly8gc2tpcCAnIicKLSAgIExvY2F0aW9uIGVuZCA9IHRva2VuLmVuZF8gLSAxOyAgICAgIC8vIGRv
IG5vdCBpbmNsdWRlICciJwotICAgd2hpbGUgKCBjdXJyZW50ICE9IGVuZCApCi0gICB7Ci0gICAg
ICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgICAgaWYgKCBjID09ICciJyApCi0gICAgICAgICBi
cmVhazsKLSAgICAgIGVsc2UgaWYgKCBjID09ICdcXCcgKQotICAgICAgewotICAgICAgICAgaWYg
KCBjdXJyZW50ID09IGVuZCApCi0gICAgICAgICAgICByZXR1cm4gYWRkRXJyb3IoICJFbXB0eSBl
c2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQgKTsKLSAgICAgICAgIENo
YXIgZXNjYXBlID0gKmN1cnJlbnQrKzsKLSAgICAgICAgIHN3aXRjaCAoIGVzY2FwZSApCi0gICAg
ICAgICB7Ci0gICAgICAgICBjYXNlICciJzogZGVjb2RlZCArPSAnIic7IGJyZWFrOwotICAgICAg
ICAgY2FzZSAnLyc6IGRlY29kZWQgKz0gJy8nOyBicmVhazsKLSAgICAgICAgIGNhc2UgJ1xcJzog
ZGVjb2RlZCArPSAnXFwnOyBicmVhazsKLSAgICAgICAgIGNhc2UgJ2InOiBkZWNvZGVkICs9ICdc
Yic7IGJyZWFrOwotICAgICAgICAgY2FzZSAnZic6IGRlY29kZWQgKz0gJ1xmJzsgYnJlYWs7Ci0g
ICAgICAgICBjYXNlICduJzogZGVjb2RlZCArPSAnXG4nOyBicmVhazsKLSAgICAgICAgIGNhc2Ug
J3InOiBkZWNvZGVkICs9ICdccic7IGJyZWFrOwotICAgICAgICAgY2FzZSAndCc6IGRlY29kZWQg
Kz0gJ1x0JzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICd1JzoKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCB1bmljb2RlOwotICAgICAgICAgICAgICAgaWYgKCAhZGVj
b2RlVW5pY29kZUNvZGVQb2ludCggdG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSApICkKLSAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgIGRlY29kZWQgKz0g
Y29kZVBvaW50VG9VVEY4KHVuaWNvZGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGFkZEVycm9yKCAiQmFk
IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCApOwotICAgICAgICAg
fQotICAgICAgfQotICAgICAgZWxzZQotICAgICAgewotICAgICAgICAgZGVjb2RlZCArPSBjOwot
ICAgICAgfQotICAgfQotICAgcmV0dXJuIHRydWU7Citib29sIE91clJlYWRlcjo6ZGVjb2RlRG91
YmxlKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAoIWRlY29kZURvdWJs
ZSh0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50VmFsdWUoKS5z
d2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9r
ZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9r
ZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOwogfQogCi1ib29sCi1SZWFkZXI6OmRl
Y29kZVVuaWNvZGVDb2RlUG9pbnQoIFRva2VuICZ0b2tlbiwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYXRpb24gJmN1cnJlbnQsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICZ1bmljb2RlICkKLXsKK2Jvb2wgT3VyUmVhZGVy
OjpkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCkgeworICBkb3VibGUg
dmFsdWUgPSAwOworICBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDMyOworICBpbnQgY291bnQ7Cisg
IHB0cmRpZmZfdCBjb25zdCBsZW5ndGggPSB0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfOworCisg
IC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCBidWZmZXIgb3ZlcmZsb3cgZXhwbG9pdHMuCisgIGlm
IChsZW5ndGggPCAwKSB7CisgICAgcmV0dXJuIGFkZEVycm9yKCJVbmFibGUgdG8gcGFyc2UgdG9r
ZW4gbGVuZ3RoIiwgdG9rZW4pOworICB9CisgIGF1dG8gY29uc3QgdWxlbmd0aCA9IHN0YXRpY19j
YXN0PHNpemVfdD4obGVuZ3RoKTsKKworICAvLyBBdm9pZCB1c2luZyBhIHN0cmluZyBjb25zdGFu
dCBmb3IgdGhlIGZvcm1hdCBjb250cm9sIHN0cmluZyBnaXZlbiB0bworICAvLyBzc2NhbmYsIGFz
IHRoaXMgY2FuIGNhdXNlIGhhcmQgdG8gZGVidWcgY3Jhc2hlcyBvbiBPUyBYLiBTZWUgaGVyZSBm
b3IgbW9yZQorICAvLyBpbmZvOgorICAvLworICAvLyAgICAgaHR0cDovL2RldmVsb3Blci5hcHBs
ZS5jb20vbGlicmFyeS9tYWMvI0RPQ1VNRU5UQVRJT04vRGV2ZWxvcGVyVG9vbHMvZ2NjLTQuMC4x
L2djYy9JbmNvbXBhdGliaWxpdGllcy5odG1sCisgIGNoYXIgZm9ybWF0W10gPSAiJWxmIjsKKwor
ICBpZiAobGVuZ3RoIDw9IGJ1ZmZlclNpemUpIHsKKyAgICBDaGFyIGJ1ZmZlcltidWZmZXJTaXpl
ICsgMV07CisgICAgbWVtY3B5KGJ1ZmZlciwgdG9rZW4uc3RhcnRfLCB1bGVuZ3RoKTsKKyAgICBi
dWZmZXJbbGVuZ3RoXSA9IDA7CisgICAgZml4TnVtZXJpY0xvY2FsZUlucHV0KGJ1ZmZlciwgYnVm
ZmVyICsgbGVuZ3RoKTsKKyAgICBjb3VudCA9IHNzY2FuZihidWZmZXIsIGZvcm1hdCwgJnZhbHVl
KTsKKyAgfSBlbHNlIHsKKyAgICBTdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5k
Xyk7CisgICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLmNfc3RyKCksIGZvcm1hdCwgJnZhbHVlKTsK
KyAgfQorCisgIGlmIChjb3VudCAhPSAxKQorICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAg
IiciICsgU3RyaW5nKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXykgKyAiJyBpcyBub3QgYSBudW1i
ZXIuIiwgdG9rZW4pOworICBkZWNvZGVkID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQogCi0g
ICBpZiAoICFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoIHRva2VuLCBjdXJyZW50LCBlbmQs
IHVuaWNvZGUgKSApCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBpZiAodW5pY29kZSA+PSAweEQ4
MDAgJiYgdW5pY29kZSA8PSAweERCRkYpCi0gICB7Ci0gICAgICAvLyBzdXJyb2dhdGUgcGFpcnMK
LSAgICAgIGlmIChlbmQgLSBjdXJyZW50IDwgNikKLSAgICAgICAgIHJldHVybiBhZGRFcnJvcigg
ImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJy
b2dhdGUgcGFpci4iLCB0b2tlbiwgY3VycmVudCApOwotICAgICAgdW5zaWduZWQgaW50IHN1cnJv
Z2F0ZVBhaXI7Ci0gICAgICBpZiAoKihjdXJyZW50KyspID09ICdcXCcgJiYgKihjdXJyZW50Kysp
PT0gJ3UnKQotICAgICAgewotICAgICAgICAgaWYgKGRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5j
ZSggdG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFpciApKQotICAgICAgICAgewotICAg
ICAgICAgICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwgMTApICsg
KHN1cnJvZ2F0ZVBhaXIgJiAweDNGRik7Ci0gICAgICAgICB9IAotICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgfSAKLSAgICAgIGVsc2UKLSAgICAgICAgIHJl
dHVybiBhZGRFcnJvciggImV4cGVjdGluZyBhbm90aGVyIFxcdSB0b2tlbiB0byBiZWdpbiB0aGUg
c2Vjb25kIGhhbGYgb2YgYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwgdG9rZW4sIGN1cnJlbnQg
KTsKLSAgIH0KLSAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIAotUmVhZGVyOjpkZWNvZGVVbmlj
b2RlRXNjYXBlU2VxdWVuY2UoIFRva2VuICZ0b2tlbiwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYXRpb24gJmN1cnJlbnQsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50ICZ1bmljb2RlICkKLXsKLSAgIGlmICggZW5kIC0gY3Vy
cmVudCA8IDQgKQotICAgICAgcmV0dXJuIGFkZEVycm9yKCAiQmFkIHVuaWNvZGUgZXNjYXBlIHNl
cXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwgdG9rZW4sIGN1cnJlbnQg
KTsKLSAgIHVuaWNvZGUgPSAwOwotICAgZm9yICggaW50IGluZGV4ID0wOyBpbmRleCA8IDQ7ICsr
aW5kZXggKQotICAgewotICAgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICAgIHVuaWNvZGUg
Kj0gMTY7Ci0gICAgICBpZiAoIGMgPj0gJzAnICAmJiAgYyA8PSAnOScgKQotICAgICAgICAgdW5p
Y29kZSArPSBjIC0gJzAnOwotICAgICAgZWxzZSBpZiAoIGMgPj0gJ2EnICAmJiAgYyA8PSAnZicg
KQotICAgICAgICAgdW5pY29kZSArPSBjIC0gJ2EnICsgMTA7Ci0gICAgICBlbHNlIGlmICggYyA+
PSAnQScgICYmICBjIDw9ICdGJyApCi0gICAgICAgICB1bmljb2RlICs9IGMgLSAnQScgKyAxMDsK
LSAgICAgIGVsc2UKLSAgICAgICAgIHJldHVybiBhZGRFcnJvciggIkJhZCB1bmljb2RlIGVzY2Fw
ZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkLiIsIHRva2Vu
LCBjdXJyZW50ICk7Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1ib29sIAotUmVhZGVy
OjphZGRFcnJvciggY29uc3Qgc3RkOjpzdHJpbmcgJm1lc3NhZ2UsIAotICAgICAgICAgICAgICAg
ICAgVG9rZW4gJnRva2VuLAotICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZXh0cmEgKQotewot
ICAgRXJyb3JJbmZvIGluZm87Ci0gICBpbmZvLnRva2VuXyA9IHRva2VuOwotICAgaW5mby5tZXNz
YWdlXyA9IG1lc3NhZ2U7Ci0gICBpbmZvLmV4dHJhXyA9IGV4dHJhOwotICAgZXJyb3JzXy5wdXNo
X2JhY2soIGluZm8gKTsKLSAgIHJldHVybiBmYWxzZTsKLX0KLQotCi1ib29sIAotUmVhZGVyOjpy
ZWNvdmVyRnJvbUVycm9yKCBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4gKQotewotICAgaW50IGVy
cm9yQ291bnQgPSBpbnQoZXJyb3JzXy5zaXplKCkpOwotICAgVG9rZW4gc2tpcDsKLSAgIGZvciAo
OzspCi0gICB7Ci0gICAgICBpZiAoICFyZWFkVG9rZW4oc2tpcCkgKQotICAgICAgICAgZXJyb3Jz
Xy5yZXNpemUoIGVycm9yQ291bnQgKTsgLy8gZGlzY2FyZCBlcnJvcnMgY2F1c2VkIGJ5IHJlY292
ZXJ5Ci0gICAgICBpZiAoIHNraXAudHlwZV8gPT0gc2tpcFVudGlsVG9rZW4gIHx8ICBza2lwLnR5
cGVfID09IHRva2VuRW5kT2ZTdHJlYW0gKQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci0gICBlcnJv
cnNfLnJlc2l6ZSggZXJyb3JDb3VudCApOwotICAgcmV0dXJuIGZhbHNlOwotfQotCi0KLWJvb2wg
Ci1SZWFkZXI6OmFkZEVycm9yQW5kUmVjb3ZlciggY29uc3Qgc3RkOjpzdHJpbmcgJm1lc3NhZ2Us
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuICZ0b2tlbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4gKQotewotICAgYWRkRXJy
b3IoIG1lc3NhZ2UsIHRva2VuICk7Ci0gICByZXR1cm4gcmVjb3ZlckZyb21FcnJvciggc2tpcFVu
dGlsVG9rZW4gKTsKLX0KLQotCi1WYWx1ZSAmCi1SZWFkZXI6OmN1cnJlbnRWYWx1ZSgpCi17Ci0g
ICByZXR1cm4gKihub2Rlc18udG9wKCkpOwotfQotCi0KLVJlYWRlcjo6Q2hhciAKLVJlYWRlcjo6
Z2V0TmV4dENoYXIoKQotewotICAgaWYgKCBjdXJyZW50XyA9PSBlbmRfICkKLSAgICAgIHJldHVy
biAwOwotICAgcmV0dXJuICpjdXJyZW50XysrOwotfQotCi0KLXZvaWQgCi1SZWFkZXI6OmdldExv
Y2F0aW9uTGluZUFuZENvbHVtbiggTG9jYXRpb24gbG9jYXRpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50ICZsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCAmY29sdW1uICkgY29uc3QKLXsKLSAgIExvY2F0aW9uIGN1cnJlbnQgPSBiZWdp
bl87Ci0gICBMb2NhdGlvbiBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgIGxpbmUgPSAwOwot
ICAgd2hpbGUgKCBjdXJyZW50IDwgbG9jYXRpb24gICYmICBjdXJyZW50ICE9IGVuZF8gKQotICAg
ewotICAgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICAgIGlmICggYyA9PSAnXHInICkKLSAg
ICAgIHsKLSAgICAgICAgIGlmICggKmN1cnJlbnQgPT0gJ1xuJyApCi0gICAgICAgICAgICArK2N1
cnJlbnQ7Ci0gICAgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgICAgICAgICsrbGlu
ZTsKLSAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCBjID09ICdcbicgKQotICAgICAgewotICAgICAg
ICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICAgICAgICArK2xpbmU7Citib29sIE91clJl
YWRlcjo6ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbikgeworICBTdHJpbmcgZGVjb2RlZF9zdHJp
bmc7CisgIGlmICghZGVjb2RlU3RyaW5nKHRva2VuLCBkZWNvZGVkX3N0cmluZykpCisgICAgcmV0
dXJuIGZhbHNlOworICBWYWx1ZSBkZWNvZGVkKGRlY29kZWRfc3RyaW5nKTsKKyAgY3VycmVudFZh
bHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJS
ZWFkZXI6OmRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIFN0cmluZyYgZGVjb2RlZCkgeworICBk
ZWNvZGVkLnJlc2VydmUoc3RhdGljX2Nhc3Q8c2l6ZV90Pih0b2tlbi5lbmRfIC0gdG9rZW4uc3Rh
cnRfIC0gMikpOworICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfICsgMTsgLy8gc2tp
cCAnIicKKyAgTG9jYXRpb24gZW5kID0gdG9rZW4uZW5kXyAtIDE7ICAgICAgIC8vIGRvIG5vdCBp
bmNsdWRlICciJworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBDaGFyIGMgPSAqY3Vy
cmVudCsrOworICAgIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICAgIGVsc2UgaWYgKGMg
PT0gJ1xcJykgeworICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kKQorICAgICAgICByZXR1cm4gYWRk
RXJyb3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7
CisgICAgICBDaGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7CisgICAgICBzd2l0Y2ggKGVzY2FwZSkg
eworICAgICAgY2FzZSAnIic6CisgICAgICAgIGRlY29kZWQgKz0gJyInOworICAgICAgICBicmVh
azsKKyAgICAgIGNhc2UgJy8nOgorICAgICAgICBkZWNvZGVkICs9ICcvJzsKKyAgICAgICAgYnJl
YWs7CisgICAgICBjYXNlICdcXCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1xcJzsKKyAgICAgICAg
YnJlYWs7CisgICAgICBjYXNlICdiJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGInOworICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ2YnOgorICAgICAgICBkZWNvZGVkICs9ICdcZic7CisgICAg
ICAgIGJyZWFrOworICAgICAgY2FzZSAnbic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKKyAg
ICAgICAgYnJlYWs7CisgICAgICBjYXNlICdyJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHInOwor
ICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3QnOgorICAgICAgICBkZWNvZGVkICs9ICdcdCc7
CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAndSc6IHsKKyAgICAgICAgdW5zaWduZWQgaW50
IHVuaWNvZGU7CisgICAgICAgIGlmICghZGVjb2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3Vy
cmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRl
Y29kZWQgKz0gY29kZVBvaW50VG9VVEY4KHVuaWNvZGUpOworICAgICAgfSBicmVhazsKKyAgICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBhZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBp
biBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7CiAgICAgICB9Ci0gICB9Ci0gICAvLyBjb2x1bW4g
JiBsaW5lIHN0YXJ0IGF0IDEKLSAgIGNvbHVtbiA9IGludChsb2NhdGlvbiAtIGxhc3RMaW5lU3Rh
cnQpICsgMTsKLSAgICsrbGluZTsKKyAgICB9IGVsc2UgeworICAgICAgZGVjb2RlZCArPSBjOwor
ICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBPdXJSZWFkZXI6OmRlY29kZVVu
aWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKKworICBpZiAoIWRlY29kZVVuaWNv
ZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICByZXR1
cm4gZmFsc2U7CisgIGlmICh1bmljb2RlID49IDB4RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikg
eworICAgIC8vIHN1cnJvZ2F0ZSBwYWlycworICAgIGlmIChlbmQgLSBjdXJyZW50IDwgNikKKyAg
ICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVy
cyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyLiIsCisgICAgICAgICAg
dG9rZW4sIGN1cnJlbnQpOworICAgIGlmICgqKGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJl
bnQrKykgPT0gJ3UnKSB7CisgICAgICB1bnNpZ25lZCBpbnQgc3Vycm9nYXRlUGFpcjsKKyAgICAg
IGlmIChkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vy
cm9nYXRlUGFpcikpIHsKKyAgICAgICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAw
eDNGRikgPDwgMTApICsgKHN1cnJvZ2F0ZVBhaXIgJiAweDNGRik7CisgICAgICB9IGVsc2UKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKCJl
eHBlY3RpbmcgYW5vdGhlciBcXHUgdG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mICIK
KyAgICAgICAgICAgICAgICAgICAgICAiYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKKyAgICAg
ICAgICAgICAgICAgICAgICB0b2tlbiwgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9
CiAKLXN0ZDo6c3RyaW5nCi1SZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbiggTG9jYXRp
b24gbG9jYXRpb24gKSBjb25zdAotewotICAgaW50IGxpbmUsIGNvbHVtbjsKLSAgIGdldExvY2F0
aW9uTGluZUFuZENvbHVtbiggbG9jYXRpb24sIGxpbmUsIGNvbHVtbiApOwotICAgY2hhciBidWZm
ZXJbMTgrMTYrMTYrMV07Ci0gICBzcHJpbnRmKCBidWZmZXIsICJMaW5lICVkLCBDb2x1bW4gJWQi
LCBsaW5lLCBjb2x1bW4gKTsKLSAgIHJldHVybiBidWZmZXI7Citib29sIE91clJlYWRlcjo6ZGVj
b2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiByZXRfdW5p
Y29kZSkgeworICBpZiAoZW5kIC0gY3VycmVudCA8IDQpCisgICAgcmV0dXJuIGFkZEVycm9yKAor
ICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdp
dHMgZXhwZWN0ZWQuIiwgdG9rZW4sCisgICAgICAgIGN1cnJlbnQpOworICBpbnQgdW5pY29kZSA9
IDA7CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7CisgICAgQ2hh
ciBjID0gKmN1cnJlbnQrKzsKKyAgICB1bmljb2RlICo9IDE2OworICAgIGlmIChjID49ICcwJyAm
JiBjIDw9ICc5JykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICcwJzsKKyAgICBlbHNlIGlmIChjID49
ICdhJyAmJiBjIDw9ICdmJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOworICAgIGVs
c2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsg
MTA7CisgICAgZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJCYWQgdW5p
Y29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3Rl
ZC4iLAorICAgICAgICAgIHRva2VuLCBjdXJyZW50KTsKKyAgfQorICByZXRfdW5pY29kZSA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkIGludD4odW5pY29kZSk7CisgIHJldHVybiB0cnVlOwogfQogCiti
b29sIE91clJlYWRlcjo6YWRkRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9r
ZW4sIExvY2F0aW9uIGV4dHJhKSB7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9
IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBleHRy
YTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiBmYWxzZTsKK30KIAotLy8g
RGVwcmVjYXRlZC4gUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1zdGQ6OnN0
cmluZyAKLVJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOwotfQotCi0KLXN0ZDo6c3RyaW5nIAot
UmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QKLXsKLSAgIHN0ZDo6c3Ry
aW5nIGZvcm1hdHRlZE1lc3NhZ2U7Ci0gICBmb3IgKCBFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0
RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7Ci0gICAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5k
KCk7Ci0gICAgICAgICArK2l0RXJyb3IgKQotICAgewotICAgICAgY29uc3QgRXJyb3JJbmZvICZl
cnJvciA9ICppdEVycm9yOwotICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiKiAiICsgZ2V0TG9j
YXRpb25MaW5lQW5kQ29sdW1uKCBlcnJvci50b2tlbl8uc3RhcnRfICkgKyAiXG4iOwotICAgICAg
Zm9ybWF0dGVkTWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOwotICAgICAg
aWYgKCBlcnJvci5leHRyYV8gKQotICAgICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiU2VlICIg
KyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oIGVycm9yLmV4dHJhXyApICsgIiBmb3IgZGV0YWls
LlxuIjsKLSAgIH0KLSAgIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOwotfQotCi0KLXN0ZDo6aXN0
cmVhbSYgb3BlcmF0b3I+Piggc3RkOjppc3RyZWFtICZzaW4sIFZhbHVlICZyb290ICkKLXsKLSAg
ICBKc29uOjpSZWFkZXIgcmVhZGVyOwotICAgIGJvb2wgb2sgPSByZWFkZXIucGFyc2Uoc2luLCBy
b290LCB0cnVlKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICBmcHJpbnRmKAotICAgICAgICAgIHN0
ZGVyciwKLSAgICAgICAgICAiRXJyb3IgZnJvbSByZWFkZXI6ICVzIiwKLSAgICAgICAgICByZWFk
ZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpLmNfc3RyKCkpOwotCi0gICAgICBKU09OX0ZB
SUxfTUVTU0FHRSgicmVhZGVyIGVycm9yIik7Citib29sIE91clJlYWRlcjo6cmVjb3ZlckZyb21F
cnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgc2l6ZV90IGVycm9yQ291bnQgPSBl
cnJvcnNfLnNpemUoKTsKKyAgVG9rZW4gc2tpcDsKKyAgZm9yICg7OykgeworICAgIGlmICghcmVh
ZFRva2VuKHNraXApKQorICAgICAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7IC8vIGRpc2Nh
cmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQorICAgIGlmIChza2lwLnR5cGVfID09IHNraXBV
bnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0cmVhbSkKKyAgICAgIGJyZWFr
OworICB9CisgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOworICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgT3VyUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tl
bikgeworICBhZGRFcnJvcihtZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVyRnJvbUVy
cm9yKHNraXBVbnRpbFRva2VuKTsKK30KKworVmFsdWUmIE91clJlYWRlcjo6Y3VycmVudFZhbHVl
KCkgeyByZXR1cm4gKihub2Rlc18udG9wKCkpOyB9CisKK091clJlYWRlcjo6Q2hhciBPdXJSZWFk
ZXI6OmdldE5leHRDaGFyKCkgeworICBpZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1cm4g
MDsKKyAgcmV0dXJuICpjdXJyZW50XysrOworfQorCit2b2lkIE91clJlYWRlcjo6Z2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQmIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCYgY29sdW1uKSBjb25zdCB7CisgIExvY2F0aW9uIGN1cnJlbnQg
PSBiZWdpbl87CisgIExvY2F0aW9uIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICBsaW5lID0g
MDsKKyAgd2hpbGUgKGN1cnJlbnQgPCBsb2NhdGlvbiAmJiBjdXJyZW50ICE9IGVuZF8pIHsKKyAg
ICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmICgq
Y3VycmVudCA9PSAnXG4nKQorICAgICAgICArK2N1cnJlbnQ7CisgICAgICBsYXN0TGluZVN0YXJ0
ID0gY3VycmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9IGVsc2UgaWYgKGMgPT0gJ1xuJykgewor
ICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CiAgICAgfQotICAg
IHJldHVybiBzaW47CisgIH0KKyAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCisgIGNvbHVt
biA9IGludChsb2NhdGlvbiAtIGxhc3RMaW5lU3RhcnQpICsgMTsKKyAgKytsaW5lOworfQorCitT
dHJpbmcgT3VyUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRp
b24pIGNvbnN0IHsKKyAgaW50IGxpbmUsIGNvbHVtbjsKKyAgZ2V0TG9jYXRpb25MaW5lQW5kQ29s
dW1uKGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4pOworICBjaGFyIGJ1ZmZlclsxOCArIDE2ICsgMTYg
KyAxXTsKKyAganNvbmNwcF9zbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAl
ZCwgQ29sdW1uICVkIiwgbGluZSwgY29sdW1uKTsKKyAgcmV0dXJuIGJ1ZmZlcjsKK30KKworU3Ry
aW5nIE91clJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0IHsKKyAgU3Ry
aW5nIGZvcm1hdHRlZE1lc3NhZ2U7CisgIGZvciAoY29uc3QgYXV0byYgZXJyb3IgOiBlcnJvcnNf
KSB7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAiKiAiICsgZ2V0TG9jYXRpb25M
aW5lQW5kQ29sdW1uKGVycm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICBmb3JtYXR0ZWRN
ZXNzYWdlICs9ICIgICIgKyBlcnJvci5tZXNzYWdlXyArICJcbiI7CisgICAgaWYgKGVycm9yLmV4
dHJhXykKKyAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgICAiU2VlICIgKyBnZXRM
b2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IuZXh0cmFfKSArICIgZm9yIGRldGFpbC5cbiI7Cisg
IH0KKyAgcmV0dXJuIGZvcm1hdHRlZE1lc3NhZ2U7Cit9CisKK3N0ZDo6dmVjdG9yPE91clJlYWRl
cjo6U3RydWN0dXJlZEVycm9yPiBPdXJSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25z
dCB7CisgIHN0ZDo6dmVjdG9yPE91clJlYWRlcjo6U3RydWN0dXJlZEVycm9yPiBhbGxFcnJvcnM7
CisgIGZvciAoY29uc3QgYXV0byYgZXJyb3IgOiBlcnJvcnNfKSB7CisgICAgT3VyUmVhZGVyOjpT
dHJ1Y3R1cmVkRXJyb3Igc3RydWN0dXJlZDsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9zdGFydCA9
IGVycm9yLnRva2VuXy5zdGFydF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJlZC5vZmZzZXRfbGlt
aXQgPSBlcnJvci50b2tlbl8uZW5kXyAtIGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm1lc3NhZ2Ug
PSBlcnJvci5tZXNzYWdlXzsKKyAgICBhbGxFcnJvcnMucHVzaF9iYWNrKHN0cnVjdHVyZWQpOwor
ICB9CisgIHJldHVybiBhbGxFcnJvcnM7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwdXNoRXJyb3Io
Y29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsKKyAgcHRyZGlmZl90
IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlmICh2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4g
bGVuZ3RoIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZh
bHNlOworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tl
bi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRf
ID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87Cisg
IGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZv
LmV4dHJhXyA9IG51bGxwdHI7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBPdXJSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUmIGV4dHJhKSB7CisgIHB0cmRpZmZfdCBs
ZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBpZiAodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxl
bmd0aCB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoIHx8CisgICAgICBleHRyYS5n
ZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9r
ZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5f
ICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGJlZ2luXyArIHZhbHVl
LmdldE9mZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRv
a2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBiZWdpbl8g
KyBleHRyYS5nZXRPZmZzZXRTdGFydCgpOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpnb29kKCkgY29uc3QgeyByZXR1cm4g
ZXJyb3JzXy5lbXB0eSgpOyB9CisKK2NsYXNzIE91ckNoYXJSZWFkZXIgOiBwdWJsaWMgQ2hhclJl
YWRlciB7CisgIGJvb2wgY29uc3QgY29sbGVjdENvbW1lbnRzXzsKKyAgT3VyUmVhZGVyIHJlYWRl
cl87CisKK3B1YmxpYzoKKyAgT3VyQ2hhclJlYWRlcihib29sIGNvbGxlY3RDb21tZW50cywgT3Vy
RmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKQorICAgICAgOiBjb2xsZWN0Q29tbWVudHNfKGNvbGxl
Y3RDb21tZW50cyksIHJlYWRlcl8oZmVhdHVyZXMpIHt9CisgIGJvb2wgcGFyc2UoY2hhciBjb25z
dCogYmVnaW5Eb2MsCisgICAgICAgICAgICAgY2hhciBjb25zdCogZW5kRG9jLAorICAgICAgICAg
ICAgIFZhbHVlKiByb290LAorICAgICAgICAgICAgIFN0cmluZyogZXJycykgb3ZlcnJpZGUgewor
ICAgIGJvb2wgb2sgPSByZWFkZXJfLnBhcnNlKGJlZ2luRG9jLCBlbmREb2MsICpyb290LCBjb2xs
ZWN0Q29tbWVudHNfKTsKKyAgICBpZiAoZXJycykgeworICAgICAgKmVycnMgPSByZWFkZXJfLmdl
dEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKKyAgICB9CisgICAgcmV0dXJuIG9rOworICB9Cit9
OworCitDaGFyUmVhZGVyQnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxkZXIoKSB7IHNldERlZmF1bHRz
KCZzZXR0aW5nc18pOyB9CitDaGFyUmVhZGVyQnVpbGRlcjo6fkNoYXJSZWFkZXJCdWlsZGVyKCkg
PSBkZWZhdWx0OworQ2hhclJlYWRlciogQ2hhclJlYWRlckJ1aWxkZXI6Om5ld0NoYXJSZWFkZXIo
KSBjb25zdCB7CisgIGJvb2wgY29sbGVjdENvbW1lbnRzID0gc2V0dGluZ3NfWyJjb2xsZWN0Q29t
bWVudHMiXS5hc0Jvb2woKTsKKyAgT3VyRmVhdHVyZXMgZmVhdHVyZXMgPSBPdXJGZWF0dXJlczo6
YWxsKCk7CisgIGZlYXR1cmVzLmFsbG93Q29tbWVudHNfID0gc2V0dGluZ3NfWyJhbGxvd0NvbW1l
bnRzIl0uYXNCb29sKCk7CisgIGZlYXR1cmVzLnN0cmljdFJvb3RfID0gc2V0dGluZ3NfWyJzdHJp
Y3RSb290Il0uYXNCb29sKCk7CisgIGZlYXR1cmVzLmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRl
cnNfID0KKyAgICAgIHNldHRpbmdzX1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdLmFz
Qm9vbCgpOworICBmZWF0dXJlcy5hbGxvd051bWVyaWNLZXlzXyA9IHNldHRpbmdzX1siYWxsb3dO
dW1lcmljS2V5cyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd1NpbmdsZVF1b3Rlc18gPSBz
ZXR0aW5nc19bImFsbG93U2luZ2xlUXVvdGVzIl0uYXNCb29sKCk7CisKKyAgLy8gU3RhY2sgbGlt
aXQgaXMgYWx3YXlzIGEgc2l6ZV90LCBzbyB3ZSBnZXQgdGhpcyBhcyBhbiB1bnNpZ25lZCBpbnQK
KyAgLy8gcmVnYXJkbGVzcyBvZiBpdCB3ZSBoYXZlIDY0LWJpdCBpbnRlZ2VyIHN1cHBvcnQgZW5h
YmxlZC4KKyAgZmVhdHVyZXMuc3RhY2tMaW1pdF8gPSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNldHRp
bmdzX1sic3RhY2tMaW1pdCJdLmFzVUludCgpKTsKKyAgZmVhdHVyZXMuZmFpbElmRXh0cmFfID0g
c2V0dGluZ3NfWyJmYWlsSWZFeHRyYSJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5yZWplY3REdXBL
ZXlzXyA9IHNldHRpbmdzX1sicmVqZWN0RHVwS2V5cyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5h
bGxvd1NwZWNpYWxGbG9hdHNfID0gc2V0dGluZ3NfWyJhbGxvd1NwZWNpYWxGbG9hdHMiXS5hc0Jv
b2woKTsKKyAgcmV0dXJuIG5ldyBPdXJDaGFyUmVhZGVyKGNvbGxlY3RDb21tZW50cywgZmVhdHVy
ZXMpOworfQorc3RhdGljIHZvaWQgZ2V0VmFsaWRSZWFkZXJLZXlzKHN0ZDo6c2V0PFN0cmluZz4q
IHZhbGlkX2tleXMpIHsKKyAgdmFsaWRfa2V5cy0+Y2xlYXIoKTsKKyAgdmFsaWRfa2V5cy0+aW5z
ZXJ0KCJjb2xsZWN0Q29tbWVudHMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0NvbW1l
bnRzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgic3RyaWN0Um9vdCIpOworICB2YWxpZF9rZXlz
LT5pbnNlcnQoImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiKTsKKyAgdmFsaWRfa2V5cy0+
aW5zZXJ0KCJhbGxvd051bWVyaWNLZXlzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dT
aW5nbGVRdW90ZXMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJzdGFja0xpbWl0Iik7CisgIHZh
bGlkX2tleXMtPmluc2VydCgiZmFpbElmRXh0cmEiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJy
ZWplY3REdXBLZXlzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dTcGVjaWFsRmxvYXRz
Iik7Cit9Citib29sIENoYXJSZWFkZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52
YWxpZCkgY29uc3QgeworICBKc29uOjpWYWx1ZSBteV9pbnZhbGlkOworICBpZiAoIWludmFsaWQp
CisgICAgaW52YWxpZCA9ICZteV9pbnZhbGlkOyAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0
IGZvciBOVUxMCisgIEpzb246OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKKyAgc3RkOjpzZXQ8U3Ry
aW5nPiB2YWxpZF9rZXlzOworICBnZXRWYWxpZFJlYWRlcktleXMoJnZhbGlkX2tleXMpOworICBW
YWx1ZTo6TWVtYmVycyBrZXlzID0gc2V0dGluZ3NfLmdldE1lbWJlck5hbWVzKCk7CisgIHNpemVf
dCBuID0ga2V5cy5zaXplKCk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7Cisg
ICAgU3RyaW5nIGNvbnN0JiBrZXkgPSBrZXlzW2ldOworICAgIGlmICh2YWxpZF9rZXlzLmZpbmQo
a2V5KSA9PSB2YWxpZF9rZXlzLmVuZCgpKSB7CisgICAgICBpbnZba2V5XSA9IHNldHRpbmdzX1tr
ZXldOworICAgIH0KKyAgfQorICByZXR1cm4gaW52LmVtcHR5KCk7Cit9CitWYWx1ZSYgQ2hhclJl
YWRlckJ1aWxkZXI6Om9wZXJhdG9yW10oY29uc3QgU3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHNl
dHRpbmdzX1trZXldOworfQorLy8gc3RhdGljCit2b2lkIENoYXJSZWFkZXJCdWlsZGVyOjpzdHJp
Y3RNb2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncykgeworICAvLyEgW0NoYXJSZWFkZXJCdWlsZGVy
U3RyaWN0TW9kZV0KKyAgKCpzZXR0aW5ncylbImFsbG93Q29tbWVudHMiXSA9IGZhbHNlOworICAo
KnNldHRpbmdzKVsic3RyaWN0Um9vdCJdID0gdHJ1ZTsKKyAgKCpzZXR0aW5ncylbImFsbG93RHJv
cHBlZE51bGxQbGFjZWhvbGRlcnMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dOdW1l
cmljS2V5cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd1NpbmdsZVF1b3RlcyJdID0g
ZmFsc2U7CisgICgqc2V0dGluZ3MpWyJzdGFja0xpbWl0Il0gPSAxMDAwOworICAoKnNldHRpbmdz
KVsiZmFpbElmRXh0cmEiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJyZWplY3REdXBLZXlzIl0g
PSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dTcGVjaWFsRmxvYXRzIl0gPSBmYWxzZTsKKyAg
Ly8hIFtDaGFyUmVhZGVyQnVpbGRlclN0cmljdE1vZGVdCit9CisvLyBzdGF0aWMKK3ZvaWQgQ2hh
clJlYWRlckJ1aWxkZXI6OnNldERlZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncykgeworICAv
LyEgW0NoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHNdCisgICgqc2V0dGluZ3MpWyJjb2xsZWN0Q29t
bWVudHMiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0gPSB0cnVlOwor
ICAoKnNldHRpbmdzKVsic3RyaWN0Um9vdCJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxv
d0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93
TnVtZXJpY0tleXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dTaW5nbGVRdW90ZXMi
XSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAwMDsKKyAgKCpzZXR0
aW5ncylbImZhaWxJZkV4dHJhIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbInJlamVjdER1cEtl
eXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dTcGVjaWFsRmxvYXRzIl0gPSBmYWxz
ZTsKKyAgLy8hIFtDaGFyUmVhZGVyQnVpbGRlckRlZmF1bHRzXQorfQorCisvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBnbG9iYWwgZnVuY3Rpb25zCisKK2Jvb2wgcGFyc2VG
cm9tU3RyZWFtKENoYXJSZWFkZXI6OkZhY3RvcnkgY29uc3QmIGZhY3QsCisgICAgICAgICAgICAg
ICAgICAgICBJU3RyZWFtJiBzaW4sCisgICAgICAgICAgICAgICAgICAgICBWYWx1ZSogcm9vdCwK
KyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyogZXJycykgeworICBPU3RyaW5nU3RyZWFtIHNz
aW47CisgIHNzaW4gPDwgc2luLnJkYnVmKCk7CisgIFN0cmluZyBkb2MgPSBzc2luLnN0cigpOwor
ICBjaGFyIGNvbnN0KiBiZWdpbiA9IGRvYy5kYXRhKCk7CisgIGNoYXIgY29uc3QqIGVuZCA9IGJl
Z2luICsgZG9jLnNpemUoKTsKKyAgLy8gTm90ZSB0aGF0IHdlIGRvIG5vdCBhY3R1YWxseSBuZWVk
IGEgbnVsbC10ZXJtaW5hdG9yLgorICBDaGFyUmVhZGVyUHRyIGNvbnN0IHJlYWRlcihmYWN0Lm5l
d0NoYXJSZWFkZXIoKSk7CisgIHJldHVybiByZWFkZXItPnBhcnNlKGJlZ2luLCBlbmQsIHJvb3Qs
IGVycnMpOworfQorCitJU3RyZWFtJiBvcGVyYXRvcj4+KElTdHJlYW0mIHNpbiwgVmFsdWUmIHJv
b3QpIHsKKyAgQ2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgU3RyaW5nIGVycnM7CisgIGJvb2wgb2sg
PSBwYXJzZUZyb21TdHJlYW0oYiwgc2luLCAmcm9vdCwgJmVycnMpOworICBpZiAoIW9rKSB7Cisg
ICAgdGhyb3dSdW50aW1lRXJyb3IoZXJycyk7CisgIH0KKyAgcmV0dXJuIHNpbjsKK30KIAogfSAv
LyBuYW1lc3BhY2UgSnNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl90b29s
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3Rvb2wuaAppbmRleCA2NTgwMzFiYmJhMzk2MDc1
OTgxYTg4ODFjOTRkMWEyNTI4YzI3YzVhLi41YzEzZjFmZWQyMDdkNTg2YjkzZWNlY2RhYzhkNDVl
NzM1NzI4OWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3Rvb2wuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9saWJfanNvbi9qc29uX3Rvb2wuaApAQCAtMSwxMCArMSwyMyBAQAotLy8gQ29w
eXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIw
MTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmli
dXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAog
Ly8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0Ug
Zm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNF
TlNFCiAKICNpZm5kZWYgTElCX0pTT05DUFBfSlNPTl9UT09MX0hfSU5DTFVERUQKLSMgZGVmaW5l
IExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECisjZGVmaW5lIExJQl9KU09OQ1BQX0pT
T05fVE9PTF9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikK
KyNpbmNsdWRlIDxqc29uL2NvbmZpZy5oPgorI2VuZGlmCisKKy8vIEFsc28gc3VwcG9ydCBvbGQg
ZmxhZyBOT19MT0NBTEVfU1VQUE9SVAorI2lmZGVmIE5PX0xPQ0FMRV9TVVBQT1JUCisjZGVmaW5l
IEpTT05DUFBfTk9fTE9DQUxFX1NVUFBPUlQKKyNlbmRpZgorCisjaWZuZGVmIEpTT05DUFBfTk9f
TE9DQUxFX1NVUFBPUlQKKyNpbmNsdWRlIDxjbG9jYWxlPgorI2VuZGlmCiAKIC8qIFRoaXMgaGVh
ZGVyIHByb3ZpZGVzIGNvbW1vbiBzdHJpbmcgbWFuaXB1bGF0aW9uIHN1cHBvcnQsIHN1Y2ggYXMg
VVRGLTgsCiAgKiBwb3J0YWJsZSBjb252ZXJzaW9uIGZyb20vdG8gc3RyaW5nLi4uCkBAIC0xMyw4
MSArMjYsMTA5IEBACiAgKi8KIAogbmFtZXNwYWNlIEpzb24geworc3RhdGljIGlubGluZSBjaGFy
IGdldERlY2ltYWxQb2ludCgpIHsKKyNpZmRlZiBKU09OQ1BQX05PX0xPQ0FMRV9TVVBQT1JUCisg
IHJldHVybiAnXDAnOworI2Vsc2UKKyAgc3RydWN0IGxjb252KiBsYyA9IGxvY2FsZWNvbnYoKTsK
KyAgcmV0dXJuIGxjID8gKihsYy0+ZGVjaW1hbF9wb2ludCkgOiAnXDAnOworI2VuZGlmCit9CiAK
IC8vLyBDb252ZXJ0cyBhIHVuaWNvZGUgY29kZS1wb2ludCB0byBVVEYtOC4KLXN0YXRpYyBpbmxp
bmUgc3RkOjpzdHJpbmcgCi1jb2RlUG9pbnRUb1VURjgodW5zaWduZWQgaW50IGNwKQotewotICAg
c3RkOjpzdHJpbmcgcmVzdWx0OwotICAgCi0gICAvLyBiYXNlZCBvbiBkZXNjcmlwdGlvbiBmcm9t
IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTgKLQotICAgaWYgKGNwIDw9IDB4N2Yp
IAotICAgewotICAgICAgcmVzdWx0LnJlc2l6ZSgxKTsKLSAgICAgIHJlc3VsdFswXSA9IHN0YXRp
Y19jYXN0PGNoYXI+KGNwKTsKLSAgIH0gCi0gICBlbHNlIGlmIChjcCA8PSAweDdGRikgCi0gICB7
Ci0gICAgICByZXN1bHQucmVzaXplKDIpOwotICAgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKLSAgICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4QzAgfCAoMHgxZiAmIChjcCA+PiA2KSkpOwotICAgfSAKLSAgIGVsc2UgaWYgKGNw
IDw9IDB4RkZGRikgCi0gICB7Ci0gICAgICByZXN1bHQucmVzaXplKDMpOwotICAgICAgcmVzdWx0
WzJdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKLSAgICAgIHJlc3Vs
dFsxXSA9IDB4ODAgfCBzdGF0aWNfY2FzdDxjaGFyPigoMHgzZiAmIChjcCA+PiA2KSkpOwotICAg
ICAgcmVzdWx0WzBdID0gMHhFMCB8IHN0YXRpY19jYXN0PGNoYXI+KCgweGYgJiAoY3AgPj4gMTIp
KSk7Ci0gICB9Ci0gICBlbHNlIGlmIChjcCA8PSAweDEwRkZGRikgCi0gICB7Ci0gICAgICByZXN1
bHQucmVzaXplKDQpOwotICAgICAgcmVzdWx0WzNdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8
ICgweDNmICYgY3ApKTsKLSAgICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAg
fCAoMHgzZiAmIChjcCA+PiA2KSkpOwotICAgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hh
cj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDEyKSkpOwotICAgICAgcmVzdWx0WzBdID0gc3RhdGlj
X2Nhc3Q8Y2hhcj4oMHhGMCB8ICgweDcgJiAoY3AgPj4gMTgpKSk7Ci0gICB9Ci0KLSAgIHJldHVy
biByZXN1bHQ7Ci19CitzdGF0aWMgaW5saW5lIFN0cmluZyBjb2RlUG9pbnRUb1VURjgodW5zaWdu
ZWQgaW50IGNwKSB7CisgIFN0cmluZyByZXN1bHQ7CiAKKyAgLy8gYmFzZWQgb24gZGVzY3JpcHRp
b24gZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04CiAKLS8vLyBSZXR1cm5z
IHRydWUgaWYgY2ggaXMgYSBjb250cm9sIGNoYXJhY3RlciAoaW4gcmFuZ2UgWzAsMzJbKS4KLXN0
YXRpYyBpbmxpbmUgYm9vbCAKLWlzQ29udHJvbENoYXJhY3RlcihjaGFyIGNoKQotewotICAgcmV0
dXJuIGNoID4gMCAmJiBjaCA8PSAweDFGOwotfQorICBpZiAoY3AgPD0gMHg3ZikgeworICAgIHJl
c3VsdC5yZXNpemUoMSk7CisgICAgcmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oY3ApOwor
ICB9IGVsc2UgaWYgKGNwIDw9IDB4N0ZGKSB7CisgICAgcmVzdWx0LnJlc2l6ZSgyKTsKKyAgICBy
ZXN1bHRbMV0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiBjcCkpOworICAgIHJl
c3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4QzAgfCAoMHgxZiAmIChjcCA+PiA2KSkpOwor
ICB9IGVsc2UgaWYgKGNwIDw9IDB4RkZGRikgeworICAgIHJlc3VsdC5yZXNpemUoMyk7CisgICAg
cmVzdWx0WzJdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKKyAgICBy
ZXN1bHRbMV0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gNikpKTsK
KyAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPigweEUwIHwgKDB4ZiAmIChjcCA+PiAx
MikpKTsKKyAgfSBlbHNlIGlmIChjcCA8PSAweDEwRkZGRikgeworICAgIHJlc3VsdC5yZXNpemUo
NCk7CisgICAgcmVzdWx0WzNdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3Ap
KTsKKyAgICByZXN1bHRbMl0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3Ag
Pj4gNikpKTsKKyAgICByZXN1bHRbMV0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2Yg
JiAoY3AgPj4gMTIpKSk7CisgICAgcmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhGMCB8
ICgweDcgJiAoY3AgPj4gMTgpKSk7CisgIH0KIAorICByZXR1cm4gcmVzdWx0OworfQogCi1lbnVt
IHsgCi0gICAvLy8gQ29uc3RhbnQgdGhhdCBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBidWZmZXIg
dGhhdCBtdXN0IGJlIHBhc3NlZCB0byB1aW50VG9TdHJpbmcuCi0gICB1aW50VG9TdHJpbmdCdWZm
ZXJTaXplID0gMypzaXplb2YoTGFyZ2VzdFVJbnQpKzEgCitlbnVtIHsKKyAgLy8vIENvbnN0YW50
IHRoYXQgc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHRoYXQgbXVzdCBiZSBwYXNzZWQg
dG8KKyAgLy8vIHVpbnRUb1N0cmluZy4KKyAgdWludFRvU3RyaW5nQnVmZmVyU2l6ZSA9IDMgKiBz
aXplb2YoTGFyZ2VzdFVJbnQpICsgMQogfTsKIAogLy8gRGVmaW5lcyBhIGNoYXIgYnVmZmVyIGZv
ciB1c2Ugd2l0aCB1aW50VG9TdHJpbmcoKS4KIHR5cGVkZWYgY2hhciBVSW50VG9TdHJpbmdCdWZm
ZXJbdWludFRvU3RyaW5nQnVmZmVyU2l6ZV07CiAKLQogLyoqIENvbnZlcnRzIGFuIHVuc2lnbmVk
IGludGVnZXIgdG8gc3RyaW5nLgotICogQHBhcmFtIHZhbHVlIFVuc2lnbmVkIGludGVyZ2VyIHRv
IGNvbnZlcnQgdG8gc3RyaW5nCi0gKiBAcGFyYW0gY3VycmVudCBJbnB1dC9PdXRwdXQgc3RyaW5n
IGJ1ZmZlci4gCisgKiBAcGFyYW0gdmFsdWUgVW5zaWduZWQgaW50ZWdlciB0byBjb252ZXJ0IHRv
IHN0cmluZworICogQHBhcmFtIGN1cnJlbnQgSW5wdXQvT3V0cHV0IHN0cmluZyBidWZmZXIuCiAg
KiAgICAgICAgTXVzdCBoYXZlIGF0IGxlYXN0IHVpbnRUb1N0cmluZ0J1ZmZlclNpemUgY2hhcnMg
ZnJlZS4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIAotdWludFRvU3RyaW5nKCBMYXJnZXN0VUlu
dCB2YWx1ZSwgCi0gICAgICAgICAgICAgIGNoYXIgKiZjdXJyZW50ICkKLXsKLSAgICotLWN1cnJl
bnQgPSAwOwotICAgZG8KLSAgIHsKLSAgICAgICotLWN1cnJlbnQgPSBjaGFyKHZhbHVlICUgMTAp
ICsgJzAnOwotICAgICAgdmFsdWUgLz0gMTA7Ci0gICB9Ci0gICB3aGlsZSAoIHZhbHVlICE9IDAg
KTsKK3N0YXRpYyBpbmxpbmUgdm9pZCB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQgdmFsdWUsIGNo
YXIqJiBjdXJyZW50KSB7CisgICotLWN1cnJlbnQgPSAwOworICBkbyB7CisgICAgKi0tY3VycmVu
dCA9IHN0YXRpY19jYXN0PGNoYXI+KHZhbHVlICUgMTBVICsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KCcwJykpOworICAgIHZhbHVlIC89IDEwOworICB9IHdoaWxlICh2YWx1ZSAhPSAwKTsKK30KKwor
LyoqIENoYW5nZSAnLCcgdG8gJy4nIGV2ZXJ5d2hlcmUgaW4gYnVmZmVyLgorICoKKyAqIFdlIGhh
ZCBhIHNvcGhpc3RpY2F0ZWQgd2F5LCBidXQgaXQgZGlkIG5vdCB3b3JrIGluIFdpbkNFLgorICog
QHNlZSBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3B1bGwv
OQorICovCit0ZW1wbGF0ZSA8dHlwZW5hbWUgSXRlcj4gSXRlciBmaXhOdW1lcmljTG9jYWxlKEl0
ZXIgYmVnaW4sIEl0ZXIgZW5kKSB7CisgIGZvciAoOyBiZWdpbiAhPSBlbmQ7ICsrYmVnaW4pIHsK
KyAgICBpZiAoKmJlZ2luID09ICcsJykgeworICAgICAgKmJlZ2luID0gJy4nOworICAgIH0KKyAg
fQorICByZXR1cm4gYmVnaW47Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJdGVyPiB2b2lkIGZp
eE51bWVyaWNMb2NhbGVJbnB1dChJdGVyIGJlZ2luLCBJdGVyIGVuZCkgeworICBjaGFyIGRlY2lt
YWxQb2ludCA9IGdldERlY2ltYWxQb2ludCgpOworICBpZiAoZGVjaW1hbFBvaW50ID09ICdcMCcg
fHwgZGVjaW1hbFBvaW50ID09ICcuJykgeworICAgIHJldHVybjsKKyAgfQorICBmb3IgKDsgYmVn
aW4gIT0gZW5kOyArK2JlZ2luKSB7CisgICAgaWYgKCpiZWdpbiA9PSAnLicpIHsKKyAgICAgICpi
ZWdpbiA9IGRlY2ltYWxQb2ludDsKKyAgICB9CisgIH0KK30KKworLyoqCisgKiBSZXR1cm4gaXRl
cmF0b3IgdGhhdCB3b3VsZCBiZSB0aGUgbmV3IGVuZCBvZiB0aGUgcmFuZ2UgW2JlZ2luLGVuZCks
IGlmIHdlCisgKiB3ZXJlIHRvIGRlbGV0ZSB6ZXJvcyBpbiB0aGUgZW5kIG9mIHN0cmluZywgYnV0
IG5vdCB0aGUgbGFzdCB6ZXJvIGJlZm9yZSAnLicuCisgKi8KK3RlbXBsYXRlIDx0eXBlbmFtZSBJ
dGVyPiBJdGVyIGZpeFplcm9zSW5UaGVFbmQoSXRlciBiZWdpbiwgSXRlciBlbmQpIHsKKyAgZm9y
ICg7IGJlZ2luICE9IGVuZDsgLS1lbmQpIHsKKyAgICBpZiAoKihlbmQgLSAxKSAhPSAnMCcpIHsK
KyAgICAgIHJldHVybiBlbmQ7CisgICAgfQorICAgIC8vIERvbid0IGRlbGV0ZSB0aGUgbGFzdCB6
ZXJvIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludC4KKyAgICBpZiAoYmVnaW4gIT0gKGVuZCAtIDEp
ICYmICooZW5kIC0gMikgPT0gJy4nKSB7CisgICAgICByZXR1cm4gZW5kOworICAgIH0KKyAgfQor
ICByZXR1cm4gZW5kOwogfQogCi19IC8vIG5hbWVzcGFjZSBKc29uIHsKK30gLy8gbmFtZXNwYWNl
IEpzb24KIAogI2VuZGlmIC8vIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9q
c29uL2pzb25fdmFsdWUuY3BwCmluZGV4IDkxZjMxMmUxZDg0MWZlZTFkYzNhZmQ0MWJmNGMwMWMx
Yzk3OGVlZGEuLmQ4MTNjMTZhMGU4ZDhiYmY3ZTNhNGFmMTNhZWUwNjFjYjY3NDk1OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xp
Yl9qc29uL2pzb25fdmFsdWUuY3BwCkBAIC0xLDc2ICsxLDEzNSBAQAotLy8gQ29weXJpZ2h0IDIw
MTEgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxl
dXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNl
bnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlv
dXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkg
YXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmICFkZWZpbmVk
KEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDxqc29uL2Fzc2VydGlvbnMuaD4KLSMg
aW5jbHVkZSA8anNvbi92YWx1ZS5oPgotIyBpbmNsdWRlIDxqc29uL3dyaXRlci5oPgotIyBpZm5k
ZWYgSlNPTl9VU0VfU0lNUExFX0lOVEVSTkFMX0FMTE9DQVRPUgotIyAgaW5jbHVkZSAianNvbl9i
YXRjaGFsbG9jYXRvci5oIgotIyBlbmRpZiAvLyAjaWZuZGVmIEpTT05fVVNFX1NJTVBMRV9JTlRF
Uk5BTF9BTExPQ0FUT1IKKyNpbmNsdWRlIDxqc29uL2Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDxq
c29uL3ZhbHVlLmg+CisjaW5jbHVkZSA8anNvbi93cml0ZXIuaD4KICNlbmRpZiAvLyBpZiAhZGVm
aW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8
Y2Fzc2VydD4KKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUg
PHNzdHJlYW0+CiAjaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRlIDxzdGRleGNlcHQ+Ci0jaW5j
bHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxjYXNzZXJ0PgogI2lmZGVmIEpTT05fVVNFX0NQUFRM
Ci0jIGluY2x1ZGUgPGNwcHRsL2NvbnN0c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3BwdGwvY29uc3Rz
dHJpbmcuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gbWluKCkKKyNpbmNsdWRl
IDxjc3RkZGVmPiAgIC8vIHNpemVfdAorCisvLyBQcm92aWRlIGltcGxlbWVudGF0aW9uIGVxdWl2
YWxlbnQgb2Ygc3RkOjpzbnByaW50ZiBmb3Igb2xkZXIgX01TQyBjb21waWxlcnMKKyNpZiBkZWZp
bmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE5MDAKKyNpbmNsdWRlIDxzdGRhcmcuaD4KK3N0
YXRpYyBpbnQgbXN2Y19wcmUxOTAwX2M5OV92c25wcmludGYoY2hhciogb3V0QnVmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZm9ybWF0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFwKSB7CisgIGludCBjb3VudCA9
IC0xOworICBpZiAoc2l6ZSAhPSAwKQorICAgIGNvdW50ID0gX3ZzbnByaW50Zl9zKG91dEJ1Ziwg
c2l6ZSwgX1RSVU5DQVRFLCBmb3JtYXQsIGFwKTsKKyAgaWYgKGNvdW50ID09IC0xKQorICAgIGNv
dW50ID0gX3ZzY3ByaW50Zihmb3JtYXQsIGFwKTsKKyAgcmV0dXJuIGNvdW50OworfQorCitpbnQg
SlNPTl9BUEkgbXN2Y19wcmUxOTAwX2M5OV9zbnByaW50ZihjaGFyKiBvdXRCdWYsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1hdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikgeworICB2YV9saXN0IGFwOworICB2
YV9zdGFydChhcCwgZm9ybWF0KTsKKyAgY29uc3QgaW50IGNvdW50ID0gbXN2Y19wcmUxOTAwX2M5
OV92c25wcmludGYob3V0QnVmLCBzaXplLCBmb3JtYXQsIGFwKTsKKyAgdmFfZW5kKGFwKTsKKyAg
cmV0dXJuIGNvdW50OworfQorI2VuZGlmCisKKy8vIERpc2FibGUgd2FybmluZyBDNDcwMiA6IHVu
cmVhY2hhYmxlIGNvZGUKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKGRp
c2FibGUgOiA0NzAyKQogI2VuZGlmCi0jaW5jbHVkZSA8Y3N0ZGRlZj4gICAgLy8gc2l6ZV90CiAK
LSNkZWZpbmUgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEUgYXNzZXJ0KCBmYWxzZSApCisjZGVmaW5l
IEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFIGFzc2VydChmYWxzZSkKIAogbmFtZXNwYWNlIEpzb24g
ewordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFQ+IGNsb25l
VW5pcXVlKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxUPiYgcCkgeworICBzdGQ6OnVuaXF1ZV9wdHI8
VD4gcjsKKyAgaWYgKHApIHsKKyAgICByID0gc3RkOjp1bmlxdWVfcHRyPFQ+KG5ldyBUKCpwKSk7
CisgIH0KKyAgcmV0dXJuIHI7Cit9CisKKy8vIFRoaXMgaXMgYSB3YWxrYXJvdW5kIHRvIGF2b2lk
IHRoZSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gb2YgVmFsdWU6Om51bGwuCisvLyBrTnVsbCBtdXN0
IGJlIHdvcmQtYWxpZ25lZCB0byBhdm9pZCBjcmFzaGluZyBvbiBBUk0uICBXZSB1c2UgYW4gYWxp
Z25tZW50IG9mCisvLyA4IChpbnN0ZWFkIG9mIDQpIGFzIGEgYml0IG9mIGZ1dHVyZS1wcm9vZmlu
Zy4KKyNpZiBkZWZpbmVkKF9fQVJNRUxfXykKKyNkZWZpbmUgQUxJR05BUyhieXRlX2FsaWdubWVu
dCkgX19hdHRyaWJ1dGVfXygoYWxpZ25lZChieXRlX2FsaWdubWVudCkpKQorI2Vsc2UKKyNkZWZp
bmUgQUxJR05BUyhieXRlX2FsaWdubWVudCkKKyNlbmRpZgorCisvLyBzdGF0aWMKK1ZhbHVlIGNv
bnN0JiBWYWx1ZTo6bnVsbFNpbmdsZXRvbigpIHsKKyAgc3RhdGljIFZhbHVlIGNvbnN0IG51bGxT
dGF0aWM7CisgIHJldHVybiBudWxsU3RhdGljOworfQorCisjaWYgSlNPTl9VU0VfTlVMTFJFRgor
Ly8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3ZSdsbCBsZWF2ZSB0aGVzZSBnbG9iYWwg
cmVmZXJlbmNlcyBhcm91bmQsIGJ1dAorLy8gRE8gTk9UIHVzZSB0aGVtIGluIEpTT05DUFAgbGli
cmFyeSBjb2RlIGFueSBtb3JlIQorLy8gc3RhdGljCitWYWx1ZSBjb25zdCYgVmFsdWU6Om51bGwg
PSBWYWx1ZTo6bnVsbFNpbmdsZXRvbigpOwogCi1jb25zdCBWYWx1ZSBWYWx1ZTo6bnVsbDsKLWNv
bnN0IEludCBWYWx1ZTo6bWluSW50ID0gSW50KCB+KFVJbnQoLTEpLzIpICk7Ci1jb25zdCBJbnQg
VmFsdWU6Om1heEludCA9IEludCggVUludCgtMSkvMiApOworLy8gc3RhdGljCitWYWx1ZSBjb25z
dCYgVmFsdWU6Om51bGxSZWYgPSBWYWx1ZTo6bnVsbFNpbmdsZXRvbigpOworI2VuZGlmCisKK2Nv
bnN0IEludCBWYWx1ZTo6bWluSW50ID0gSW50KH4oVUludCgtMSkgLyAyKSk7Citjb25zdCBJbnQg
VmFsdWU6Om1heEludCA9IEludChVSW50KC0xKSAvIDIpOwogY29uc3QgVUludCBWYWx1ZTo6bWF4
VUludCA9IFVJbnQoLTEpOwotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotY29uc3QgSW50
NjQgVmFsdWU6Om1pbkludDY0ID0gSW50NjQoIH4oVUludDY0KC0xKS8yKSApOwotY29uc3QgSW50
NjQgVmFsdWU6Om1heEludDY0ID0gSW50NjQoIFVJbnQ2NCgtMSkvMiApOworI2lmIGRlZmluZWQo
SlNPTl9IQVNfSU5UNjQpCitjb25zdCBJbnQ2NCBWYWx1ZTo6bWluSW50NjQgPSBJbnQ2NCh+KFVJ
bnQ2NCgtMSkgLyAyKSk7Citjb25zdCBJbnQ2NCBWYWx1ZTo6bWF4SW50NjQgPSBJbnQ2NChVSW50
NjQoLTEpIC8gMik7CiBjb25zdCBVSW50NjQgVmFsdWU6Om1heFVJbnQ2NCA9IFVJbnQ2NCgtMSk7
CiAvLyBUaGUgY29uc3RhbnQgaXMgaGFyZC1jb2RlZCBiZWNhdXNlIHNvbWUgY29tcGlsZXIgaGF2
ZSB0cm91YmxlCiAvLyBjb252ZXJ0aW5nIFZhbHVlOjptYXhVSW50NjQgdG8gYSBkb3VibGUgY29y
cmVjdGx5IChBSVgveGxDKS4KIC8vIEFzc3VtZXMgdGhhdCBVSW50NjQgaXMgYSA2NCBiaXRzIGlu
dGVnZXIuCiBzdGF0aWMgY29uc3QgZG91YmxlIG1heFVJbnQ2NEFzRG91YmxlID0gMTg0NDY3NDQw
NzM3MDk1NTE2MTUuMDsKICNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotY29uc3Qg
TGFyZ2VzdEludCBWYWx1ZTo6bWluTGFyZ2VzdEludCA9IExhcmdlc3RJbnQoIH4oTGFyZ2VzdFVJ
bnQoLTEpLzIpICk7Ci1jb25zdCBMYXJnZXN0SW50IFZhbHVlOjptYXhMYXJnZXN0SW50ID0gTGFy
Z2VzdEludCggTGFyZ2VzdFVJbnQoLTEpLzIgKTsKK2NvbnN0IExhcmdlc3RJbnQgVmFsdWU6Om1p
bkxhcmdlc3RJbnQgPSBMYXJnZXN0SW50KH4oTGFyZ2VzdFVJbnQoLTEpIC8gMikpOworY29uc3Qg
TGFyZ2VzdEludCBWYWx1ZTo6bWF4TGFyZ2VzdEludCA9IExhcmdlc3RJbnQoTGFyZ2VzdFVJbnQo
LTEpIC8gMik7CiBjb25zdCBMYXJnZXN0VUludCBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQgPSBMYXJn
ZXN0VUludCgtMSk7CiAKLQotLy8vIFVua25vd24gc2l6ZSBtYXJrZXIKLXN0YXRpYyBjb25zdCB1
bnNpZ25lZCBpbnQgdW5rbm93biA9ICh1bnNpZ25lZCktMTsKK2NvbnN0IFVJbnQgVmFsdWU6OmRl
ZmF1bHRSZWFsUHJlY2lzaW9uID0gMTc7CiAKICNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9E
T1VCTEVfQ09OVkVSU0lPTikKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogc3Rh
dGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWluLCBVIG1heCkgewotICAgcmV0
dXJuIGQgPj0gbWluICYmIGQgPD0gbWF4OworICAvLyBUaGUgY2FzdHMgY2FuIGxvc2UgcHJlY2lz
aW9uLCBidXQgd2UgYXJlIGxvb2tpbmcgb25seSBmb3IKKyAgLy8gYW4gYXBwcm94aW1hdGUgcmFu
Z2UuIE1pZ2h0IGZhaWwgb24gZWRnZSBjYXNlcyB0aG91Z2guIH5jZHVubgorICAvLyByZXR1cm4g
ZCA+PSBzdGF0aWNfY2FzdDxkb3VibGU+KG1pbikgJiYgZCA8PSBzdGF0aWNfY2FzdDxkb3VibGU+
KG1heCk7CisgIHJldHVybiBkID49IG1pbiAmJiBkIDw9IG1heDsKIH0KLSNlbHNlIC8vIGlmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotc3RhdGljIGlubGluZSBk
b3VibGUgaW50ZWdlclRvRG91YmxlKCBKc29uOjpVSW50NjQgdmFsdWUgKQotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxkb3VibGU+KCBJbnQ2NCh2YWx1ZS8yKSApICogMi4wICsgSW50NjQodmFs
dWUgJiAxKTsKKyNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0RvdWJsZShKc29uOjpVSW50
NjQgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oSW50NjQodmFsdWUgLyAy
KSkgKiAyLjAgKworICAgICAgICAgc3RhdGljX2Nhc3Q8ZG91YmxlPihJbnQ2NCh2YWx1ZSAmIDEp
KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVn
ZXJUb0RvdWJsZSggVCB2YWx1ZSApCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4o
IHZhbHVlICk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSBkb3VibGUgaW50
ZWdlclRvRG91YmxlKFQgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFs
dWUpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KIHN0YXRpYyBpbmxp
bmUgYm9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBtYXgpIHsKLSAgIHJldHVybiBkID49
IGludGVnZXJUb0RvdWJsZShtaW4pICYmIGQgPD0gaW50ZWdlclRvRG91YmxlKG1heCk7CisgIHJl
dHVybiBkID49IGludGVnZXJUb0RvdWJsZShtaW4pICYmIGQgPD0gaW50ZWdlclRvRG91YmxlKG1h
eCk7CiB9CiAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZF
UlNJT04pCiAKLQogLyoqIER1cGxpY2F0ZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgdmFsdWUuCiAg
KiBAcGFyYW0gdmFsdWUgUG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGR1cGxpY2F0ZS4gTXVzdCBi
ZSB6ZXJvLXRlcm1pbmF0ZWQgaWYKICAqICAgICAgICAgICAgICBsZW5ndGggaXMgInVua25vd24i
LgpAQCAtNzgsMzggKzEzNyw4MSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgSW5SYW5nZShkb3VibGUg
ZCwgVCBtaW4sIFUgbWF4KSB7CiAgKiAgICAgICAgICAgICAgIGNvbXB1dGVkIHVzaW5nIHN0cmxl
bih2YWx1ZSkuCiAgKiBAcmV0dXJuIFBvaW50ZXIgb24gdGhlIGR1cGxpY2F0ZSBpbnN0YW5jZSBv
ZiBzdHJpbmcuCiAgKi8KLXN0YXRpYyBpbmxpbmUgY2hhciAqCi1kdXBsaWNhdGVTdHJpbmdWYWx1
ZSggY29uc3QgY2hhciAqdmFsdWUsIAotICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBsZW5ndGggPSB1bmtub3duICkKLXsKLSAgIGlmICggbGVuZ3RoID09IHVua25vd24gKQotICAg
ICAgbGVuZ3RoID0gKHVuc2lnbmVkIGludClzdHJsZW4odmFsdWUpOwotCi0gICAvLyBBdm9pZCBh
biBpbnRlZ2VyIG92ZXJmbG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBsaW1pdGlu
ZyBsZW5ndGgKLSAgIC8vIHRvIGEgc2FuZSB2YWx1ZS4KLSAgIGlmIChsZW5ndGggPj0gKHVuc2ln
bmVkKVZhbHVlOjptYXhJbnQpCi0gICAgICBsZW5ndGggPSBWYWx1ZTo6bWF4SW50IC0gMTsKLQot
ICAgY2hhciAqbmV3U3RyaW5nID0gc3RhdGljX2Nhc3Q8Y2hhciAqPiggbWFsbG9jKCBsZW5ndGgg
KyAxICkgKTsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIG5ld1N0cmluZyAhPSAwLCAiRmFpbGVk
IHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiICk7Ci0gICBtZW1jcHkoIG5ld1N0cmlu
ZywgdmFsdWUsIGxlbmd0aCApOwotICAgbmV3U3RyaW5nW2xlbmd0aF0gPSAwOwotICAgcmV0dXJu
IG5ld1N0cmluZzsKLX0KLQotCi0vKiogRnJlZSB0aGUgc3RyaW5nIGR1cGxpY2F0ZWQgYnkgZHVw
bGljYXRlU3RyaW5nVmFsdWUoKS4KK3N0YXRpYyBpbmxpbmUgY2hhciogZHVwbGljYXRlU3RyaW5n
VmFsdWUoY29uc3QgY2hhciogdmFsdWUsIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8gQXZvaWQgYW4g
aW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcg
bGVuZ3RoCisgIC8vIHRvIGEgc2FuZSB2YWx1ZS4KKyAgaWYgKGxlbmd0aCA+PSBzdGF0aWNfY2Fz
dDxzaXplX3Q+KFZhbHVlOjptYXhJbnQpKQorICAgIGxlbmd0aCA9IFZhbHVlOjptYXhJbnQgLSAx
OworCisgIGNoYXIqIG5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MobGVuZ3Ro
ICsgMSkpOworICBpZiAobmV3U3RyaW5nID09IG51bGxwdHIpIHsKKyAgICB0aHJvd1J1bnRpbWVF
cnJvcigiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCk6ICIKKyAgICAgICAg
ICAgICAgICAgICAgICAiRmFpbGVkIHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiKTsK
KyAgfQorICBtZW1jcHkobmV3U3RyaW5nLCB2YWx1ZSwgbGVuZ3RoKTsKKyAgbmV3U3RyaW5nW2xl
bmd0aF0gPSAwOworICByZXR1cm4gbmV3U3RyaW5nOworfQorCisvKiBSZWNvcmQgdGhlIGxlbmd0
aCBhcyBhIHByZWZpeC4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIAotcmVsZWFzZVN0cmluZ1Zh
bHVlKCBjaGFyICp2YWx1ZSApCi17Ci0gICBpZiAoIHZhbHVlICkKLSAgICAgIGZyZWUoIHZhbHVl
ICk7Ci19CitzdGF0aWMgaW5saW5lIGNoYXIqIGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVl
KGNvbnN0IGNoYXIqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoKSB7CisgIC8vIEF2b2lkIGFuIGludGVn
ZXIgb3ZlcmZsb3cgaW4gdGhlIGNhbGwgdG8gbWFsbG9jIGJlbG93IGJ5IGxpbWl0aW5nIGxlbmd0
aAorICAvLyB0byBhIHNhbmUgdmFsdWUuCisgIEpTT05fQVNTRVJUX01FU1NBR0UobGVuZ3RoIDw9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihWYWx1ZTo6bWF4SW50KSAtCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplb2YodW5zaWduZWQpIC0gMVUsCisgICAgICAgICAgICAg
ICAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgp
OiAiCisgICAgICAgICAgICAgICAgICAgICAgImxlbmd0aCB0b28gYmlnIGZvciBwcmVmaXhpbmci
KTsKKyAgdW5zaWduZWQgYWN0dWFsTGVuZ3RoID0gbGVuZ3RoICsgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHNpemVvZih1bnNpZ25lZCkpICsgMVU7CisgIGNoYXIqIG5ld1N0cmluZyA9IHN0YXRpY19j
YXN0PGNoYXIqPihtYWxsb2MoYWN0dWFsTGVuZ3RoKSk7CisgIGlmIChuZXdTdHJpbmcgPT0gbnVs
bHB0cikgeworICAgIHRocm93UnVudGltZUVycm9yKCJpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRl
QW5kUHJlZml4U3RyaW5nVmFsdWUoKTogIgorICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQg
dG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZlciIpOworICB9CisgICpyZWludGVycHJldF9j
YXN0PHVuc2lnbmVkKj4obmV3U3RyaW5nKSA9IGxlbmd0aDsKKyAgbWVtY3B5KG5ld1N0cmluZyAr
IHNpemVvZih1bnNpZ25lZCksIHZhbHVlLCBsZW5ndGgpOworICBuZXdTdHJpbmdbYWN0dWFsTGVu
Z3RoIC0gMVVdID0KKyAgICAgIDA7IC8vIHRvIGF2b2lkIGJ1ZmZlciBvdmVyLXJ1biBhY2NpZGVu
dHMgYnkgdXNlcnMgbGF0ZXIKKyAgcmV0dXJuIG5ld1N0cmluZzsKK30KK2lubGluZSBzdGF0aWMg
dm9pZCBkZWNvZGVQcmVmaXhlZFN0cmluZyhib29sIGlzUHJlZml4ZWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjb25zdCogcHJlZml4ZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQqIGxlbmd0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvbnN0KiogdmFsdWUpIHsK
KyAgaWYgKCFpc1ByZWZpeGVkKSB7CisgICAgKmxlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzdHJsZW4ocHJlZml4ZWQpKTsKKyAgICAqdmFsdWUgPSBwcmVmaXhlZDsKKyAgfSBlbHNlIHsK
KyAgICAqbGVuZ3RoID0gKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY29uc3QqPihwcmVmaXhl
ZCk7CisgICAgKnZhbHVlID0gcHJlZml4ZWQgKyBzaXplb2YodW5zaWduZWQpOworICB9Cit9Cisv
KiogRnJlZSB0aGUgc3RyaW5nIGR1cGxpY2F0ZWQgYnkKKyAqIGR1cGxpY2F0ZVN0cmluZ1ZhbHVl
KCkvZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKS4KKyAqLworI2lmIEpTT05DUFBfVVNJ
TkdfU0VDVVJFX01FTU9SWQorc3RhdGljIGlubGluZSB2b2lkIHJlbGVhc2VQcmVmaXhlZFN0cmlu
Z1ZhbHVlKGNoYXIqIHZhbHVlKSB7CisgIHVuc2lnbmVkIGxlbmd0aCA9IDA7CisgIGNoYXIgY29u
c3QqIHZhbHVlRGVjb2RlZDsKKyAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodHJ1ZSwgdmFsdWUsICZs
ZW5ndGgsICZ2YWx1ZURlY29kZWQpOworICBzaXplX3QgY29uc3Qgc2l6ZSA9IHNpemVvZih1bnNp
Z25lZCkgKyBsZW5ndGggKyAxVTsKKyAgbWVtc2V0KHZhbHVlLCAwLCBzaXplKTsKKyAgZnJlZSh2
YWx1ZSk7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQgcmVsZWFzZVN0cmluZ1ZhbHVlKGNoYXIqIHZh
bHVlLCB1bnNpZ25lZCBsZW5ndGgpIHsKKyAgLy8gbGVuZ3RoPT0wID0+IHdlIGFsbG9jYXRlZCB0
aGUgc3RyaW5ncyBtZW1vcnkKKyAgc2l6ZV90IHNpemUgPSAobGVuZ3RoID09IDApID8gc3RybGVu
KHZhbHVlKSA6IGxlbmd0aDsKKyAgbWVtc2V0KHZhbHVlLCAwLCBzaXplKTsKKyAgZnJlZSh2YWx1
ZSk7Cit9CisjZWxzZSAgLy8gIUpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWQorc3RhdGljIGlu
bGluZSB2b2lkIHJlbGVhc2VQcmVmaXhlZFN0cmluZ1ZhbHVlKGNoYXIqIHZhbHVlKSB7IGZyZWUo
dmFsdWUpOyB9CitzdGF0aWMgaW5saW5lIHZvaWQgcmVsZWFzZVN0cmluZ1ZhbHVlKGNoYXIqIHZh
bHVlLCB1bnNpZ25lZCkgeyBmcmVlKHZhbHVlKTsgfQorI2VuZGlmIC8vIEpTT05DUFBfVVNJTkdf
U0VDVVJFX01FTU9SWQogCiB9IC8vIG5hbWVzcGFjZSBKc29uCiAKLQogLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMTE4LDQ4ICsyMjAsMjggQEAgcmVsZWFzZVN0
cmluZ1ZhbHVlKCBjaGFyICp2YWx1ZSApCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSMgIGluY2x1ZGUgImpzb25faW50ZXJuYWxhcnJheS5pbmwiCi0jICBpbmNs
dWRlICJqc29uX2ludGVybmFsbWFwLmlubCIKLSMgZW5kaWYgLy8gSlNPTl9WQUxVRV9VU0VfSU5U
RVJOQUxfTUFQCiAKLSMgaW5jbHVkZSAianNvbl92YWx1ZWl0ZXJhdG9yLmlubCIKKyNpbmNsdWRl
ICJqc29uX3ZhbHVlaXRlcmF0b3IuaW5sIgogI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNf
QU1BTEdBTUFUSU9OKQogCiBuYW1lc3BhY2UgSnNvbiB7CiAKLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlOjpDb21tZW50SW5mbwotLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0KLVZhbHVlOjpDb21tZW50SW5m
bzo6Q29tbWVudEluZm8oKQotICAgOiBjb21tZW50XyggMCApCi17Ci19Ci0KLVZhbHVlOjpDb21t
ZW50SW5mbzo6fkNvbW1lbnRJbmZvKCkKLXsKLSAgIGlmICggY29tbWVudF8gKQotICAgICAgcmVs
ZWFzZVN0cmluZ1ZhbHVlKCBjb21tZW50XyApOwotfQotCi0KLXZvaWQgCi1WYWx1ZTo6Q29tbWVu
dEluZm86OnNldENvbW1lbnQoIGNvbnN0IGNoYXIgKnRleHQgKQotewotICAgaWYgKCBjb21tZW50
XyApCi0gICAgICByZWxlYXNlU3RyaW5nVmFsdWUoIGNvbW1lbnRfICk7Ci0gICBKU09OX0FTU0VS
VCggdGV4dCAhPSAwICk7Ci0gICBKU09OX0FTU0VSVF9NRVNTQUdFKCB0ZXh0WzBdPT0nXDAnIHx8
IHRleHRbMF09PScvJywgIkNvbW1lbnRzIG11c3Qgc3RhcnQgd2l0aCAvIik7Ci0gICAvLyBJdCBz
ZWVtcyB0aGF0IC8qKi8gc3R5bGUgY29tbWVudHMgYXJlIGFjY2VwdGFibGUgYXMgd2VsbC4KLSAg
IGNvbW1lbnRfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUoIHRleHQgKTsKLX0KLQorI2lmIEpTT05f
VVNFX0VYQ0VQVElPTgorRXhjZXB0aW9uOjpFeGNlcHRpb24oU3RyaW5nIG1zZykgOiBtc2dfKHN0
ZDo6bW92ZShtc2cpKSB7fQorRXhjZXB0aW9uOjp+RXhjZXB0aW9uKCkgSlNPTkNQUF9OT0VYQ0VQ
VCB7fQorY2hhciBjb25zdCogRXhjZXB0aW9uOjp3aGF0KCkgY29uc3QgSlNPTkNQUF9OT0VYQ0VQ
VCB7IHJldHVybiBtc2dfLmNfc3RyKCk7IH0KK1J1bnRpbWVFcnJvcjo6UnVudGltZUVycm9yKFN0
cmluZyBjb25zdCYgbXNnKSA6IEV4Y2VwdGlvbihtc2cpIHt9CitMb2dpY0Vycm9yOjpMb2dpY0Vy
cm9yKFN0cmluZyBjb25zdCYgbXNnKSA6IEV4Y2VwdGlvbihtc2cpIHt9CitbW25vcmV0dXJuXV0g
dm9pZCB0aHJvd1J1bnRpbWVFcnJvcihTdHJpbmcgY29uc3QmIG1zZykgeworICB0aHJvdyBSdW50
aW1lRXJyb3IobXNnKTsKK30KK1tbbm9yZXR1cm5dXSB2b2lkIHRocm93TG9naWNFcnJvcihTdHJp
bmcgY29uc3QmIG1zZykgeworICB0aHJvdyBMb2dpY0Vycm9yKG1zZyk7Cit9CisjZWxzZSAvLyAh
SlNPTl9VU0VfRVhDRVBUSU9OCitbW25vcmV0dXJuXV0gdm9pZCB0aHJvd1J1bnRpbWVFcnJvcihT
dHJpbmcgY29uc3QmIG1zZykgeyBhYm9ydCgpOyB9CitbW25vcmV0dXJuXV0gdm9pZCB0aHJvd0xv
Z2ljRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpIHsgYWJvcnQoKTsgfQorI2VuZGlmCiAKIC8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC0xNjgsOTMgKzI1MCwxMTAgQEAgVmFsdWU6OkNvbW1l
bnRJbmZvOjpzZXRDb21tZW50KCBjb25zdCBjaGFyICp0ZXh0ICkKIC8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSMgaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFM
X01BUAogCi0vLyBOb3RlczogaW5kZXhfIGluZGljYXRlcyBpZiB0aGUgc3RyaW5nIHdhcyBhbGxv
Y2F0ZWQgd2hlbgorLy8gTm90ZXM6IHBvbGljeV8gaW5kaWNhdGVzIGlmIHRoZSBzdHJpbmcgd2Fz
IGFsbG9jYXRlZCB3aGVuCiAvLyBhIHN0cmluZyBpcyBzdG9yZWQuCiAKLVZhbHVlOjpDWlN0cmlu
Zzo6Q1pTdHJpbmcoIEFycmF5SW5kZXggaW5kZXggKQotICAgOiBjc3RyXyggMCApCi0gICAsIGlu
ZGV4XyggaW5kZXggKQoteworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhBcnJheUluZGV4IGlu
ZGV4KSA6IGNzdHJfKG51bGxwdHIpLCBpbmRleF8oaW5kZXgpIHt9CisKK1ZhbHVlOjpDWlN0cmlu
Zzo6Q1pTdHJpbmcoY2hhciBjb25zdCogc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIER1cGxpY2F0aW9uUG9s
aWN5IGFsbG9jYXRlKQorICAgIDogY3N0cl8oc3RyKSB7CisgIC8vIGFsbG9jYXRlICE9IGR1cGxp
Y2F0ZQorICBzdG9yYWdlXy5wb2xpY3lfID0gYWxsb2NhdGUgJiAweDM7CisgIHN0b3JhZ2VfLmxl
bmd0aF8gPSBsZW5ndGggJiAweDNGRkZGRkZGOworfQorCitWYWx1ZTo6Q1pTdHJpbmc6OkNaU3Ry
aW5nKGNvbnN0IENaU3RyaW5nJiBvdGhlcikgeworICBjc3RyXyA9IChvdGhlci5zdG9yYWdlXy5w
b2xpY3lfICE9IG5vRHVwbGljYXRpb24gJiYgb3RoZXIuY3N0cl8gIT0gbnVsbHB0cgorICAgICAg
ICAgICAgICAgPyBkdXBsaWNhdGVTdHJpbmdWYWx1ZShvdGhlci5jc3RyXywgb3RoZXIuc3RvcmFn
ZV8ubGVuZ3RoXykKKyAgICAgICAgICAgICAgIDogb3RoZXIuY3N0cl8pOworICBzdG9yYWdlXy5w
b2xpY3lfID0KKyAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPigKKyAgICAgICAgICBvdGhlci5j
c3RyXworICAgICAgICAgICAgICA/IChzdGF0aWNfY2FzdDxEdXBsaWNhdGlvblBvbGljeT4ob3Ro
ZXIuc3RvcmFnZV8ucG9saWN5XykgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICBub0R1cGxp
Y2F0aW9uCisgICAgICAgICAgICAgICAgICAgICA/IG5vRHVwbGljYXRpb24KKyAgICAgICAgICAg
ICAgICAgICAgIDogZHVwbGljYXRlKQorICAgICAgICAgICAgICA6IHN0YXRpY19jYXN0PER1cGxp
Y2F0aW9uUG9saWN5PihvdGhlci5zdG9yYWdlXy5wb2xpY3lfKSkgJgorICAgICAgM1U7CisgIHN0
b3JhZ2VfLmxlbmd0aF8gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOworfQorCitWYWx1ZTo6Q1pT
dHJpbmc6OkNaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpCisgICAgOiBjc3RyXyhvdGhlci5jc3Ry
XyksIGluZGV4XyhvdGhlci5pbmRleF8pIHsKKyAgb3RoZXIuY3N0cl8gPSBudWxscHRyOworfQor
CitWYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmluZygpIHsKKyAgaWYgKGNzdHJfICYmIHN0b3JhZ2Vf
LnBvbGljeV8gPT0gZHVwbGljYXRlKSB7CisgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKGNvbnN0X2Nh
c3Q8Y2hhcio+KGNzdHJfKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZV8ubGVuZ3Ro
XyArIDF1KTsgLy8gKzEgZm9yIG51bGwgdGVybWluYXRpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIGZvciBzYWtlIG9mCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBsZXRlbmVz
cyBidXQgbm90IGFjdHVhbGx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIG5lY2Vzc2FyeQorICB9Cit9CisKK3ZvaWQgVmFsdWU6OkNaU3RyaW5nOjpz
d2FwKENaU3RyaW5nJiBvdGhlcikgeworICBzdGQ6OnN3YXAoY3N0cl8sIG90aGVyLmNzdHJfKTsK
KyAgc3RkOjpzd2FwKGluZGV4Xywgb3RoZXIuaW5kZXhfKTsKK30KKworVmFsdWU6OkNaU3RyaW5n
JiBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPShjb25zdCBDWlN0cmluZyYgb3RoZXIpIHsKKyAg
Y3N0cl8gPSBvdGhlci5jc3RyXzsKKyAgaW5kZXhfID0gb3RoZXIuaW5kZXhfOworICByZXR1cm4g
KnRoaXM7Cit9CisKK1ZhbHVlOjpDWlN0cmluZyYgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0o
Q1pTdHJpbmcmJiBvdGhlcikgeworICBjc3RyXyA9IG90aGVyLmNzdHJfOworICBpbmRleF8gPSBv
dGhlci5pbmRleF87CisgIG90aGVyLmNzdHJfID0gbnVsbHB0cjsKKyAgcmV0dXJuICp0aGlzOwor
fQorCitib29sIFZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I8KGNvbnN0IENaU3RyaW5nJiBvdGhl
cikgY29uc3QgeworICBpZiAoIWNzdHJfKQorICAgIHJldHVybiBpbmRleF8gPCBvdGhlci5pbmRl
eF87CisgIC8vIHJldHVybiBzdHJjbXAoY3N0cl8sIG90aGVyLmNzdHJfKSA8IDA7CisgIC8vIEFz
c3VtZSBib3RoIGFyZSBzdHJpbmdzLgorICB1bnNpZ25lZCB0aGlzX2xlbiA9IHRoaXMtPnN0b3Jh
Z2VfLmxlbmd0aF87CisgIHVuc2lnbmVkIG90aGVyX2xlbiA9IG90aGVyLnN0b3JhZ2VfLmxlbmd0
aF87CisgIHVuc2lnbmVkIG1pbl9sZW4gPSBzdGQ6Om1pbjx1bnNpZ25lZD4odGhpc19sZW4sIG90
aGVyX2xlbik7CisgIEpTT05fQVNTRVJUKHRoaXMtPmNzdHJfICYmIG90aGVyLmNzdHJfKTsKKyAg
aW50IGNvbXAgPSBtZW1jbXAodGhpcy0+Y3N0cl8sIG90aGVyLmNzdHJfLCBtaW5fbGVuKTsKKyAg
aWYgKGNvbXAgPCAwKQorICAgIHJldHVybiB0cnVlOworICBpZiAoY29tcCA+IDApCisgICAgcmV0
dXJuIGZhbHNlOworICByZXR1cm4gKHRoaXNfbGVuIDwgb3RoZXJfbGVuKTsKK30KKworYm9vbCBW
YWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPT0oY29uc3QgQ1pTdHJpbmcmIG90aGVyKSBjb25zdCB7
CisgIGlmICghY3N0cl8pCisgICAgcmV0dXJuIGluZGV4XyA9PSBvdGhlci5pbmRleF87CisgIC8v
IHJldHVybiBzdHJjbXAoY3N0cl8sIG90aGVyLmNzdHJfKSA9PSAwOworICAvLyBBc3N1bWUgYm90
aCBhcmUgc3RyaW5ncy4KKyAgdW5zaWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5sZW5n
dGhfOworICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOworICBp
ZiAodGhpc19sZW4gIT0gb3RoZXJfbGVuKQorICAgIHJldHVybiBmYWxzZTsKKyAgSlNPTl9BU1NF
UlQodGhpcy0+Y3N0cl8gJiYgb3RoZXIuY3N0cl8pOworICBpbnQgY29tcCA9IG1lbWNtcCh0aGlz
LT5jc3RyXywgb3RoZXIuY3N0cl8sIHRoaXNfbGVuKTsKKyAgcmV0dXJuIGNvbXAgPT0gMDsKK30K
KworQXJyYXlJbmRleCBWYWx1ZTo6Q1pTdHJpbmc6OmluZGV4KCkgY29uc3QgeyByZXR1cm4gaW5k
ZXhfOyB9CisKKy8vIGNvbnN0IGNoYXIqIFZhbHVlOjpDWlN0cmluZzo6Y19zdHIoKSBjb25zdCB7
IHJldHVybiBjc3RyXzsgfQorY29uc3QgY2hhciogVmFsdWU6OkNaU3RyaW5nOjpkYXRhKCkgY29u
c3QgeyByZXR1cm4gY3N0cl87IH0KK3Vuc2lnbmVkIFZhbHVlOjpDWlN0cmluZzo6bGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gc3RvcmFnZV8ubGVuZ3RoXzsgfQorYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6
OmlzU3RhdGljU3RyaW5nKCkgY29uc3QgeworICByZXR1cm4gc3RvcmFnZV8ucG9saWN5XyA9PSBu
b0R1cGxpY2F0aW9uOwogfQogCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKCBjb25zdCBjaGFy
ICpjc3RyLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSApCi0gICA6IGNzdHJfKCBhbGxvY2F0
ZSA9PSBkdXBsaWNhdGUgPyBkdXBsaWNhdGVTdHJpbmdWYWx1ZShjc3RyKSAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA6IGNzdHIgKQotICAgLCBpbmRleF8oIGFsbG9jYXRlICkK
LXsKLX0KLQotVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyggY29uc3QgQ1pTdHJpbmcgJm90aGVy
ICkKLTogY3N0cl8oIG90aGVyLmluZGV4XyAhPSBub0R1cGxpY2F0aW9uICYmICBvdGhlci5jc3Ry
XyAhPSAwCi0gICAgICAgICAgICAgICAgPyAgZHVwbGljYXRlU3RyaW5nVmFsdWUoIG90aGVyLmNz
dHJfICkKLSAgICAgICAgICAgICAgICA6IG90aGVyLmNzdHJfICkKLSAgICwgaW5kZXhfKCBvdGhl
ci5jc3RyXyA/IChvdGhlci5pbmRleF8gPT0gbm9EdXBsaWNhdGlvbiA/IG5vRHVwbGljYXRpb24g
OiBkdXBsaWNhdGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgOiBvdGhlci5pbmRleF8gKQot
ewotfQotCi1WYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmluZygpCi17Ci0gICBpZiAoIGNzdHJfICAm
JiAgaW5kZXhfID09IGR1cGxpY2F0ZSApCi0gICAgICByZWxlYXNlU3RyaW5nVmFsdWUoIGNvbnN0
X2Nhc3Q8Y2hhciAqPiggY3N0cl8gKSApOwotfQotCi12b2lkIAotVmFsdWU6OkNaU3RyaW5nOjpz
d2FwKCBDWlN0cmluZyAmb3RoZXIgKQotewotICAgc3RkOjpzd2FwKCBjc3RyXywgb3RoZXIuY3N0
cl8gKTsKLSAgIHN0ZDo6c3dhcCggaW5kZXhfLCBvdGhlci5pbmRleF8gKTsKLX0KLQotVmFsdWU6
OkNaU3RyaW5nICYKLVZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3IgPSggY29uc3QgQ1pTdHJpbmcg
Jm90aGVyICkKLXsKLSAgIENaU3RyaW5nIHRlbXAoIG90aGVyICk7Ci0gICBzd2FwKCB0ZW1wICk7
Ci0gICByZXR1cm4gKnRoaXM7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9y
PCggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkgY29uc3QgCi17Ci0gICBpZiAoIGNzdHJfICkKLSAg
ICAgIHJldHVybiBzdHJjbXAoIGNzdHJfLCBvdGhlci5jc3RyXyApIDwgMDsKLSAgIHJldHVybiBp
bmRleF8gPCBvdGhlci5pbmRleF87Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6Q1pTdHJpbmc6Om9wZXJh
dG9yPT0oIGNvbnN0IENaU3RyaW5nICZvdGhlciApIGNvbnN0IAotewotICAgaWYgKCBjc3RyXyAp
Ci0gICAgICByZXR1cm4gc3RyY21wKCBjc3RyXywgb3RoZXIuY3N0cl8gKSA9PSAwOwotICAgcmV0
dXJuIGluZGV4XyA9PSBvdGhlci5pbmRleF87Ci19Ci0KLQotQXJyYXlJbmRleCAKLVZhbHVlOjpD
WlN0cmluZzo6aW5kZXgoKSBjb25zdAotewotICAgcmV0dXJuIGluZGV4XzsKLX0KLQotCi1jb25z
dCBjaGFyICoKLVZhbHVlOjpDWlN0cmluZzo6Y19zdHIoKSBjb25zdAotewotICAgcmV0dXJuIGNz
dHJfOwotfQotCi1ib29sIAotVmFsdWU6OkNaU3RyaW5nOjppc1N0YXRpY1N0cmluZygpIGNvbnN0
Ci17Ci0gICByZXR1cm4gaW5kZXhfID09IG5vRHVwbGljYXRpb247Ci19Ci0KLSNlbmRpZiAvLyBp
Zm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0KLQogLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjY3LDEwODUgKzM2Niw5MzUgQEAgVmFsdWU6OkNa
U3RyaW5nOjppc1N0YXRpY1N0cmluZygpIGNvbnN0CiAgKiBtZW1zZXQoIHRoaXMsIDAsIHNpemVv
ZihWYWx1ZSkgKQogICogVGhpcyBvcHRpbWl6YXRpb24gaXMgdXNlZCBpbiBWYWx1ZUludGVybmFs
TWFwIGZhc3QgYWxsb2NhdG9yLgogICovCi1WYWx1ZTo6VmFsdWUoIFZhbHVlVHlwZSB0eXBlICkK
LSAgIDogdHlwZV8oIHR5cGUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpT
T05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYK
LSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHN3aXRjaCAoIHR5cGUgKQotICAgewotICAgY2Fz
ZSBudWxsVmFsdWU6Ci0gICAgICBicmVhazsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICBjYXNlIHVp
bnRWYWx1ZToKLSAgICAgIHZhbHVlXy5pbnRfID0gMDsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBy
ZWFsVmFsdWU6Ci0gICAgICB2YWx1ZV8ucmVhbF8gPSAwLjA7Ci0gICAgICBicmVhazsKLSAgIGNh
c2Ugc3RyaW5nVmFsdWU6Ci0gICAgICB2YWx1ZV8uc3RyaW5nXyA9IDA7Ci0gICAgICBicmVhazsK
LSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6
Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFs
dWVzKCk7Ci0gICAgICBicmVhazsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICB2
YWx1ZV8uYXJyYXlfID0gYXJyYXlBbGxvY2F0b3IoKS0+bmV3QXJyYXkoKTsKLSAgICAgIGJyZWFr
OwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfID0gbWFwQWxsb2NhdG9y
KCktPm5ld01hcCgpOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGNhc2UgYm9vbGVhblZhbHVl
OgotICAgICAgdmFsdWVfLmJvb2xfID0gZmFsc2U7Ci0gICAgICBicmVhazsKLSAgIGRlZmF1bHQ6
Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0KK1ZhbHVlOjpWYWx1ZShWYWx1
ZVR5cGUgdHlwZSkgeworICBzdGF0aWMgY2hhciBjb25zdCBlbXB0eVN0cmluZ1tdID0gIiI7Cisg
IGluaXRCYXNpYyh0eXBlKTsKKyAgc3dpdGNoICh0eXBlKSB7CisgIGNhc2UgbnVsbFZhbHVlOgor
ICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVpbnRWYWx1ZToKKyAgICB2YWx1
ZV8uaW50XyA9IDA7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHZhbHVlXy5y
ZWFsXyA9IDAuMDsKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICAvLyBhbGxv
Y2F0ZWRfID09IGZhbHNlLCBzbyB0aGlzIGlzIHNhZmUuCisgICAgdmFsdWVfLnN0cmluZ18gPSBj
b25zdF9jYXN0PGNoYXIqPihzdGF0aWNfY2FzdDxjaGFyIGNvbnN0Kj4oZW1wdHlTdHJpbmcpKTsK
KyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAg
IHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygpOworICAgIGJyZWFrOworICBjYXNlIGJv
b2xlYW5WYWx1ZToKKyAgICB2YWx1ZV8uYm9vbF8gPSBmYWxzZTsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorfQorCitWYWx1ZTo6VmFs
dWUoSW50IHZhbHVlKSB7CisgIGluaXRCYXNpYyhpbnRWYWx1ZSk7CisgIHZhbHVlXy5pbnRfID0g
dmFsdWU7Cit9CisKK1ZhbHVlOjpWYWx1ZShVSW50IHZhbHVlKSB7CisgIGluaXRCYXNpYyh1aW50
VmFsdWUpOworICB2YWx1ZV8udWludF8gPSB2YWx1ZTsKIH0KLQotCi1WYWx1ZTo6VmFsdWUoIFVJ
bnQgdmFsdWUgKQotICAgOiB0eXBlXyggdWludFZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFs
c2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNl
ZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8udWludF8g
PSB2YWx1ZTsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorVmFsdWU6OlZhbHVlKEludDY0
IHZhbHVlKSB7CisgIGluaXRCYXNpYyhpbnRWYWx1ZSk7CisgIHZhbHVlXy5pbnRfID0gdmFsdWU7
CiB9Ci0KLVZhbHVlOjpWYWx1ZSggSW50IHZhbHVlICkKLSAgIDogdHlwZV8oIGludFZhbHVlICkK
LSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5B
TF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCAp
Ci17Ci0gICB2YWx1ZV8uaW50XyA9IHZhbHVlOworVmFsdWU6OlZhbHVlKFVJbnQ2NCB2YWx1ZSkg
eworICBpbml0QmFzaWModWludFZhbHVlKTsKKyAgdmFsdWVfLnVpbnRfID0gdmFsdWU7CiB9Cisj
ZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKIAotCi0jIGlmIGRlZmluZWQoSlNPTl9I
QVNfSU5UNjQpCi1WYWx1ZTo6VmFsdWUoIEludDY0IHZhbHVlICkKLSAgIDogdHlwZV8oIGludFZh
bHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRz
XyggMCApCi17Ci0gICB2YWx1ZV8uaW50XyA9IHZhbHVlOworVmFsdWU6OlZhbHVlKGRvdWJsZSB2
YWx1ZSkgeworICBpbml0QmFzaWMocmVhbFZhbHVlKTsKKyAgdmFsdWVfLnJlYWxfID0gdmFsdWU7
CiB9CiAKLQotVmFsdWU6OlZhbHVlKCBVSW50NjQgdmFsdWUgKQotICAgOiB0eXBlXyggdWludFZh
bHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRz
XyggMCApCi17Ci0gICB2YWx1ZV8udWludF8gPSB2YWx1ZTsKK1ZhbHVlOjpWYWx1ZShjb25zdCBj
aGFyKiB2YWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOworICBKU09OX0FT
U0VSVF9NRVNTQUdFKHZhbHVlICE9IG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgIk51
bGwgVmFsdWUgUGFzc2VkIHRvIFZhbHVlIENvbnN0cnVjdG9yIik7CisgIHZhbHVlXy5zdHJpbmdf
ID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoCisgICAgICB2YWx1ZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHN0cmxlbih2YWx1ZSkpKTsKIH0KLSNlbmRpZiAvLyBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQogCi1WYWx1ZTo6VmFsdWUoIGRvdWJsZSB2YWx1ZSApCi0gICA6IHR5cGVfKCBy
ZWFsVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVf
VVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29t
bWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5yZWFsXyA9IHZhbHVlOworVmFsdWU6OlZhbHVlKGNv
bnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1Zh
bHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPQorICAgICAgZHVwbGljYXRlQW5kUHJlZml4
U3RyaW5nVmFsdWUoYmVnaW4sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBiZWdpbikpOwog
fQogCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IGNoYXIgKnZhbHVlICkKLSAgIDogdHlwZV8oIHN0cmlu
Z1ZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggdHJ1ZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNF
X0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVu
dHNfKCAwICkKLXsKLSAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUoIHZh
bHVlICk7CitWYWx1ZTo6VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICBpbml0QmFzaWMo
c3RyaW5nVmFsdWUsIHRydWUpOworICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKAorICAgICAgdmFsdWUuZGF0YSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
dmFsdWUubGVuZ3RoKCkpKTsKIH0KIAotCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IGNoYXIgKmJlZ2lu
VmFsdWUsIAotICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmRWYWx1ZSApCi0gICA6IHR5cGVf
KCBzdHJpbmdWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBpZmRlZiBKU09OX1ZB
TFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAs
IGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmluZ1Zh
bHVlKCBiZWdpblZhbHVlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh1bnNpZ25lZCBpbnQpKGVuZFZhbHVlIC0gYmVnaW5WYWx1ZSkgKTsKK1ZhbHVlOjpWYWx1
ZShjb25zdCBTdGF0aWNTdHJpbmcmIHZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSk7
CisgIHZhbHVlXy5zdHJpbmdfID0gY29uc3RfY2FzdDxjaGFyKj4odmFsdWUuY19zdHIoKSk7CiB9
CiAKLQotVmFsdWU6OlZhbHVlKCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKQotICAgOiB0eXBl
Xyggc3RyaW5nVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCB0cnVlICkKLSMgaWZkZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAg
LCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVTdHJpbmdW
YWx1ZSggdmFsdWUuY19zdHIoKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodW5zaWduZWQgaW50KXZhbHVlLmxlbmd0aCgpICk7Ci0KKyNpZmRlZiBKU09OX1VT
RV9DUFBUTAorVmFsdWU6OlZhbHVlKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYgdmFsdWUpIHsK
KyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPSBkdXBs
aWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgKKyAgICAgIHZhbHVlLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odmFsdWUubGVuZ3RoKCkpKTsKIH0KLQotVmFsdWU6OlZhbHVlKCBjb25zdCBTdGF0aWNT
dHJpbmcgJnZhbHVlICkKLSAgIDogdHlwZV8oIHN0cmluZ1ZhbHVlICkKLSAgICwgYWxsb2NhdGVk
XyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRl
bUlzVXNlZF8oIDAgKQogI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8u
c3RyaW5nXyA9IGNvbnN0X2Nhc3Q8Y2hhciAqPiggdmFsdWUuY19zdHIoKSApOwotfQotCiAKLSMg
aWZkZWYgSlNPTl9VU0VfQ1BQVEwKLVZhbHVlOjpWYWx1ZSggY29uc3QgQ3BwVEw6OkNvbnN0U3Ry
aW5nICZ2YWx1ZSApCi0gICA6IHR5cGVfKCBzdHJpbmdWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8o
IHRydWUgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlz
VXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8uc3Ry
aW5nXyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCB2YWx1ZSwgdmFsdWUubGVuZ3RoKCkgKTsKK1Zh
bHVlOjpWYWx1ZShib29sIHZhbHVlKSB7CisgIGluaXRCYXNpYyhib29sZWFuVmFsdWUpOworICB2
YWx1ZV8uYm9vbF8gPSB2YWx1ZTsKIH0KLSMgZW5kaWYKIAotVmFsdWU6OlZhbHVlKCBib29sIHZh
bHVlICkKLSAgIDogdHlwZV8oIGJvb2xlYW5WYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNl
ICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRf
KCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLmJvb2xfID0g
dmFsdWU7CitWYWx1ZTo6VmFsdWUoY29uc3QgVmFsdWUmIG90aGVyKSB7CisgIGR1cFBheWxvYWQo
b3RoZXIpOworICBkdXBNZXRhKG90aGVyKTsKIH0KIAotCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IFZh
bHVlICZvdGhlciApCi0gICA6IHR5cGVfKCBvdGhlci50eXBlXyApCi0gICAsIGFsbG9jYXRlZF8o
IGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1J
c1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgc3dpdGNoICgg
dHlwZV8gKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICBjYXNlIGludFZhbHVlOgotICAg
Y2FzZSB1aW50VmFsdWU6Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgIGNhc2UgYm9vbGVhblZhbHVl
OgotICAgICAgdmFsdWVfID0gb3RoZXIudmFsdWVfOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHN0
cmluZ1ZhbHVlOgotICAgICAgaWYgKCBvdGhlci52YWx1ZV8uc3RyaW5nXyApCi0gICAgICB7Ci0g
ICAgICAgICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCBvdGhlci52YWx1
ZV8uc3RyaW5nXyApOwotICAgICAgICAgYWxsb2NhdGVkXyA9IHRydWU7Ci0gICAgICB9Ci0gICAg
ICBlbHNlCi0gICAgICAgICB2YWx1ZV8uc3RyaW5nXyA9IDA7Ci0gICAgICBicmVhazsKLSNpZm5k
ZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBj
YXNlIG9iamVjdFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCAq
b3RoZXIudmFsdWVfLm1hcF8gKTsKLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlW
YWx1ZToKLSAgICAgIHZhbHVlXy5hcnJheV8gPSBhcnJheUFsbG9jYXRvcigpLT5uZXdBcnJheUNv
cHkoICpvdGhlci52YWx1ZV8uYXJyYXlfICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0
VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXyA9IG1hcEFsbG9jYXRvcigpLT5uZXdNYXBDb3B5KCAq
b3RoZXIudmFsdWVfLm1hcF8gKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0Ogot
ICAgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0gICBpZiAoIG90aGVyLmNvbW1l
bnRzXyApCi0gICB7Ci0gICAgICBjb21tZW50c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZD
b21tZW50UGxhY2VtZW50XTsKLSAgICAgIGZvciAoIGludCBjb21tZW50ID0wOyBjb21tZW50IDwg
bnVtYmVyT2ZDb21tZW50UGxhY2VtZW50OyArK2NvbW1lbnQgKQotICAgICAgewotICAgICAgICAg
Y29uc3QgQ29tbWVudEluZm8gJm90aGVyQ29tbWVudCA9IG90aGVyLmNvbW1lbnRzX1tjb21tZW50
XTsKLSAgICAgICAgIGlmICggb3RoZXJDb21tZW50LmNvbW1lbnRfICkKLSAgICAgICAgICAgIGNv
bW1lbnRzX1tjb21tZW50XS5zZXRDb21tZW50KCBvdGhlckNvbW1lbnQuY29tbWVudF8gKTsKLSAg
ICAgIH0KLSAgIH0KLX0KLQotCi1WYWx1ZTo6flZhbHVlKCkKLXsKLSAgIHN3aXRjaCAoIHR5cGVf
ICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgY2FzZSBpbnRWYWx1ZToKLSAgIGNhc2Ug
dWludFZhbHVlOgotICAgY2FzZSByZWFsVmFsdWU6Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICAgIGJyZWFrOwotICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIGlmICggYWxsb2NhdGVkXyAp
Ci0gICAgICAgICByZWxlYXNlU3RyaW5nVmFsdWUoIHZhbHVlXy5zdHJpbmdfICk7Ci0gICAgICBi
cmVhazsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5
VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgZGVsZXRlIHZhbHVlXy5tYXBfOwot
ICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgYXJyYXlBbGxv
Y2F0b3IoKS0+ZGVzdHJ1Y3RBcnJheSggdmFsdWVfLmFycmF5XyApOwotICAgICAgYnJlYWs7Ci0g
ICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgbWFwQWxsb2NhdG9yKCktPmRlc3RydWN0TWFwKCB2
YWx1ZV8ubWFwXyApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBK
U09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0KLQotICAgaWYgKCBjb21tZW50c18gKQotICAg
ICAgZGVsZXRlW10gY29tbWVudHNfOworVmFsdWU6OlZhbHVlKFZhbHVlJiYgb3RoZXIpIHsKKyAg
aW5pdEJhc2ljKG51bGxWYWx1ZSk7CisgIHN3YXAob3RoZXIpOwogfQogCi1WYWx1ZSAmCi1WYWx1
ZTo6b3BlcmF0b3I9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKQotewotICAgVmFsdWUgdGVtcCggb3Ro
ZXIgKTsKLSAgIHN3YXAoIHRlbXAgKTsKLSAgIHJldHVybiAqdGhpczsKK1ZhbHVlOjp+VmFsdWUo
KSB7CisgIHJlbGVhc2VQYXlsb2FkKCk7CisgIHZhbHVlXy51aW50XyA9IDA7CiB9CiAKLXZvaWQg
Ci1WYWx1ZTo6c3dhcCggVmFsdWUgJm90aGVyICkKLXsKLSAgIFZhbHVlVHlwZSB0ZW1wID0gdHlw
ZV87Ci0gICB0eXBlXyA9IG90aGVyLnR5cGVfOwotICAgb3RoZXIudHlwZV8gPSB0ZW1wOwotICAg
c3RkOjpzd2FwKCB2YWx1ZV8sIG90aGVyLnZhbHVlXyApOwotICAgaW50IHRlbXAyID0gYWxsb2Nh
dGVkXzsKLSAgIGFsbG9jYXRlZF8gPSBvdGhlci5hbGxvY2F0ZWRfOwotICAgb3RoZXIuYWxsb2Nh
dGVkXyA9IHRlbXAyOworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcj0oY29uc3QgVmFsdWUmIG90aGVy
KSB7CisgIFZhbHVlKG90aGVyKS5zd2FwKCp0aGlzKTsKKyAgcmV0dXJuICp0aGlzOwogfQogCi1W
YWx1ZVR5cGUgCi1WYWx1ZTo6dHlwZSgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV87CitWYWx1
ZSYgVmFsdWU6Om9wZXJhdG9yPShWYWx1ZSYmIG90aGVyKSB7CisgIG90aGVyLnN3YXAoKnRoaXMp
OworICByZXR1cm4gKnRoaXM7CiB9CiAKLQotaW50IAotVmFsdWU6OmNvbXBhcmUoIGNvbnN0IFZh
bHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICBpZiAoICp0aGlzIDwgb3RoZXIgKQotICAgICAgcmV0
dXJuIC0xOwotICAgaWYgKCAqdGhpcyA+IG90aGVyICkKLSAgICAgIHJldHVybiAxOwotICAgcmV0
dXJuIDA7Cit2b2lkIFZhbHVlOjpzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpIHsKKyAgc3RkOjpz
d2FwKGJpdHNfLCBvdGhlci5iaXRzXyk7CisgIHN0ZDo6c3dhcCh2YWx1ZV8sIG90aGVyLnZhbHVl
Xyk7CiB9CiAKK3ZvaWQgVmFsdWU6OmNvcHlQYXlsb2FkKGNvbnN0IFZhbHVlJiBvdGhlcikgewor
ICByZWxlYXNlUGF5bG9hZCgpOworICBkdXBQYXlsb2FkKG90aGVyKTsKK30KIAotYm9vbCAKLVZh
bHVlOjpvcGVyYXRvciA8KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdAotewotICAgaW50IHR5
cGVEZWx0YSA9IHR5cGVfIC0gb3RoZXIudHlwZV87Ci0gICBpZiAoIHR5cGVEZWx0YSApCi0gICAg
ICByZXR1cm4gdHlwZURlbHRhIDwgMCA/IHRydWUgOiBmYWxzZTsKLSAgIHN3aXRjaCAoIHR5cGVf
ICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIGZhbHNlOwotICAgY2Fz
ZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uaW50XyA8IG90aGVyLnZhbHVlXy5pbnRf
OwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDwgb3RoZXIu
dmFsdWVfLnVpbnRfOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnJl
YWxfIDwgb3RoZXIudmFsdWVfLnJlYWxfOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICBy
ZXR1cm4gdmFsdWVfLmJvb2xfIDwgb3RoZXIudmFsdWVfLmJvb2xfOwotICAgY2FzZSBzdHJpbmdW
YWx1ZToKLSAgICAgIHJldHVybiAoIHZhbHVlXy5zdHJpbmdfID09IDAgICYmICBvdGhlci52YWx1
ZV8uc3RyaW5nXyApCi0gICAgICAgICAgICAgfHwgKCBvdGhlci52YWx1ZV8uc3RyaW5nXyAgCi0g
ICAgICAgICAgICAgICAgICAmJiAgdmFsdWVfLnN0cmluZ18gIAotICAgICAgICAgICAgICAgICAg
JiYgc3RyY21wKCB2YWx1ZV8uc3RyaW5nXywgb3RoZXIudmFsdWVfLnN0cmluZ18gKSA8IDAgKTsK
LSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6
Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgewotICAgICAgICAgaW50IGRlbHRhID0gaW50
KCB2YWx1ZV8ubWFwXy0+c2l6ZSgpIC0gb3RoZXIudmFsdWVfLm1hcF8tPnNpemUoKSApOwotICAg
ICAgICAgaWYgKCBkZWx0YSApCi0gICAgICAgICAgICByZXR1cm4gZGVsdGEgPCAwOwotICAgICAg
ICAgcmV0dXJuICgqdmFsdWVfLm1hcF8pIDwgKCpvdGhlci52YWx1ZV8ubWFwXyk7Ci0gICAgICB9
Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5hcnJheV8t
PmNvbXBhcmUoICoob3RoZXIudmFsdWVfLmFycmF5XykgKSA8IDA7Ci0gICBjYXNlIG9iamVjdFZh
bHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5tYXBfLT5jb21wYXJlKCAqKG90aGVyLnZhbHVlXy5t
YXBfKSApIDwgMDsKLSNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIEpTT05fQVNTRVJUX1VOUkVB
Q0hBQkxFOwotICAgfQotICAgcmV0dXJuIGZhbHNlOyAgLy8gdW5yZWFjaGFibGUKK3ZvaWQgVmFs
dWU6OnN3YXAoVmFsdWUmIG90aGVyKSB7CisgIHN3YXBQYXlsb2FkKG90aGVyKTsKKyAgc3RkOjpz
d2FwKGNvbW1lbnRzXywgb3RoZXIuY29tbWVudHNfKTsKKyAgc3RkOjpzd2FwKHN0YXJ0Xywgb3Ro
ZXIuc3RhcnRfKTsKKyAgc3RkOjpzd2FwKGxpbWl0Xywgb3RoZXIubGltaXRfKTsKIH0KIAotYm9v
bCAKLVZhbHVlOjpvcGVyYXRvciA8PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3QKLXsKLSAg
IHJldHVybiAhKG90aGVyIDwgKnRoaXMpOwordm9pZCBWYWx1ZTo6Y29weShjb25zdCBWYWx1ZSYg
b3RoZXIpIHsKKyAgY29weVBheWxvYWQob3RoZXIpOworICBkdXBNZXRhKG90aGVyKTsKIH0KIAot
Ym9vbCAKLVZhbHVlOjpvcGVyYXRvciA+PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3QKLXsK
LSAgIHJldHVybiAhKCp0aGlzIDwgb3RoZXIpOworVmFsdWVUeXBlIFZhbHVlOjp0eXBlKCkgY29u
c3QgeworICByZXR1cm4gc3RhdGljX2Nhc3Q8VmFsdWVUeXBlPihiaXRzXy52YWx1ZV90eXBlXyk7
CiB9CiAKLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPiggY29uc3QgVmFsdWUgJm90aGVyICkgY29u
c3QKLXsKLSAgIHJldHVybiBvdGhlciA8ICp0aGlzOworaW50IFZhbHVlOjpjb21wYXJlKGNvbnN0
IFZhbHVlJiBvdGhlcikgY29uc3QgeworICBpZiAoKnRoaXMgPCBvdGhlcikKKyAgICByZXR1cm4g
LTE7CisgIGlmICgqdGhpcyA+IG90aGVyKQorICAgIHJldHVybiAxOworICByZXR1cm4gMDsKIH0K
IAotYm9vbCAKLVZhbHVlOjpvcGVyYXRvciA9PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3QK
LXsKLSAgIC8vaWYgKCB0eXBlXyAhPSBvdGhlci50eXBlXyApCi0gICAvLyBHQ0MgMi45NS4zIHNh
eXM6Ci0gICAvLyBhdHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiBiaXQtZmllbGQgc3RydWN0dXJl
IG1lbWJlciBgSnNvbjo6VmFsdWU6OnR5cGVfJwotICAgLy8gQmVhdHMgbWUsIGJ1dCBhIHRlbXAg
c29sdmVzIHRoZSBwcm9ibGVtLgotICAgaW50IHRlbXAgPSBvdGhlci50eXBlXzsKLSAgIGlmICgg
dHlwZV8gIT0gdGVtcCApCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBzd2l0Y2ggKCB0eXBlXyAp
Ci0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPChjb25zdCBW
YWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAgaW50IHR5cGVEZWx0YSA9IHR5cGUoKSAtIG90aGVyLnR5
cGUoKTsKKyAgaWYgKHR5cGVEZWx0YSkKKyAgICByZXR1cm4gdHlwZURlbHRhIDwgMCA/IHRydWUg
OiBmYWxzZTsKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0
dXJuIGZhbHNlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA8IG90
aGVyLnZhbHVlXy5pbnRfOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVp
bnRfIDwgb3RoZXIudmFsdWVfLnVpbnRfOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4g
dmFsdWVfLnJlYWxfIDwgb3RoZXIudmFsdWVfLnJlYWxfOworICBjYXNlIGJvb2xlYW5WYWx1ZToK
KyAgICByZXR1cm4gdmFsdWVfLmJvb2xfIDwgb3RoZXIudmFsdWVfLmJvb2xfOworICBjYXNlIHN0
cmluZ1ZhbHVlOiB7CisgICAgaWYgKCh2YWx1ZV8uc3RyaW5nXyA9PSBudWxscHRyKSB8fCAob3Ro
ZXIudmFsdWVfLnN0cmluZ18gPT0gbnVsbHB0cikpIHsKKyAgICAgIGlmIChvdGhlci52YWx1ZV8u
c3RyaW5nXykKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICBlbHNlCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgdW5zaWduZWQgdGhpc19sZW47CisgICAgdW5zaWduZWQgb3Ro
ZXJfbGVuOworICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICAgIGNoYXIgY29uc3QqIG90aGVy
X3N0cjsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5pc0FsbG9jYXRlZCgpLCB0aGlz
LT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICZ0
aGlzX3N0cik7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcob3RoZXIuaXNBbGxvY2F0ZWQoKSwg
b3RoZXIudmFsdWVfLnN0cmluZ18sICZvdGhlcl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgJm90aGVyX3N0cik7CisgICAgdW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluPHVuc2lnbmVk
Pih0aGlzX2xlbiwgb3RoZXJfbGVuKTsKKyAgICBKU09OX0FTU0VSVCh0aGlzX3N0ciAmJiBvdGhl
cl9zdHIpOworICAgIGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBvdGhlcl9zdHIsIG1pbl9s
ZW4pOworICAgIGlmIChjb21wIDwgMCkKICAgICAgIHJldHVybiB0cnVlOwotICAgY2FzZSBpbnRW
YWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uaW50XyA9PSBvdGhlci52YWx1ZV8uaW50XzsKLSAg
IGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA9PSBvdGhlci52YWx1
ZV8udWludF87Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8g
PT0gb3RoZXIudmFsdWVfLnJlYWxfOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1
cm4gdmFsdWVfLmJvb2xfID09IG90aGVyLnZhbHVlXy5ib29sXzsKLSAgIGNhc2Ugc3RyaW5nVmFs
dWU6Ci0gICAgICByZXR1cm4gKCB2YWx1ZV8uc3RyaW5nXyA9PSBvdGhlci52YWx1ZV8uc3RyaW5n
XyApCi0gICAgICAgICAgICAgfHwgKCBvdGhlci52YWx1ZV8uc3RyaW5nXyAgCi0gICAgICAgICAg
ICAgICAgICAmJiAgdmFsdWVfLnN0cmluZ18gIAotICAgICAgICAgICAgICAgICAgJiYgc3RyY21w
KCB2YWx1ZV8uc3RyaW5nXywgb3RoZXIudmFsdWVfLnN0cmluZ18gKSA9PSAwICk7Ci0jaWZuZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2Fz
ZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IG90aGVy
LnZhbHVlXy5tYXBfLT5zaXplKCkKLSAgICAgICAgICAgICAmJiAoKnZhbHVlXy5tYXBfKSA9PSAo
Km90aGVyLnZhbHVlXy5tYXBfKTsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICBy
ZXR1cm4gdmFsdWVfLmFycmF5Xy0+Y29tcGFyZSggKihvdGhlci52YWx1ZV8uYXJyYXlfKSApID09
IDA7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5tYXBfLT5jb21w
YXJlKCAqKG90aGVyLnZhbHVlXy5tYXBfKSApID09IDA7CisgICAgaWYgKGNvbXAgPiAwKQorICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAodGhpc19sZW4gPCBvdGhlcl9sZW4pOworICB9
CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIGludCBkZWx0
YSA9IGludCh2YWx1ZV8ubWFwXy0+c2l6ZSgpIC0gb3RoZXIudmFsdWVfLm1hcF8tPnNpemUoKSk7
CisgICAgaWYgKGRlbHRhKQorICAgICAgcmV0dXJuIGRlbHRhIDwgMDsKKyAgICByZXR1cm4gKCp2
YWx1ZV8ubWFwXykgPCAoKm90aGVyLnZhbHVlXy5tYXBfKTsKKyAgfQorICBkZWZhdWx0OgorICAg
IEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9CisgIHJldHVybiBmYWxzZTsgLy8gdW5yZWFj
aGFibGUKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I8PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuICEob3RoZXIgPCAqdGhpcyk7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I+
PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPCBvdGhlcik7IH0K
KworYm9vbCBWYWx1ZTo6b3BlcmF0b3I+KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1
cm4gb3RoZXIgPCAqdGhpczsgfQorCitib29sIFZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IFZhbHVl
JiBvdGhlcikgY29uc3QgeworICBpZiAodHlwZSgpICE9IG90aGVyLnR5cGUoKSkKKyAgICByZXR1
cm4gZmFsc2U7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJl
dHVybiB0cnVlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA9PSBv
dGhlci52YWx1ZV8uaW50XzsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51
aW50XyA9PSBvdGhlci52YWx1ZV8udWludF87CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVy
biB2YWx1ZV8ucmVhbF8gPT0gb3RoZXIudmFsdWVfLnJlYWxfOworICBjYXNlIGJvb2xlYW5WYWx1
ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID09IG90aGVyLnZhbHVlXy5ib29sXzsKKyAgY2Fz
ZSBzdHJpbmdWYWx1ZTogeworICAgIGlmICgodmFsdWVfLnN0cmluZ18gPT0gbnVsbHB0cikgfHwg
KG90aGVyLnZhbHVlXy5zdHJpbmdfID09IG51bGxwdHIpKSB7CisgICAgICByZXR1cm4gKHZhbHVl
Xy5zdHJpbmdfID09IG90aGVyLnZhbHVlXy5zdHJpbmdfKTsKKyAgICB9CisgICAgdW5zaWduZWQg
dGhpc19sZW47CisgICAgdW5zaWduZWQgb3RoZXJfbGVuOworICAgIGNoYXIgY29uc3QqIHRoaXNf
c3RyOworICAgIGNoYXIgY29uc3QqIG90aGVyX3N0cjsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmlu
Zyh0aGlzLT5pc0FsbG9jYXRlZCgpLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGlzX3N0cik7CisgICAgZGVjb2RlUHJlZml4ZWRT
dHJpbmcob3RoZXIuaXNBbGxvY2F0ZWQoKSwgb3RoZXIudmFsdWVfLnN0cmluZ18sICZvdGhlcl9s
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgJm90aGVyX3N0cik7CisgICAgaWYgKHRoaXNf
bGVuICE9IG90aGVyX2xlbikKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBKU09OX0FTU0VSVCh0
aGlzX3N0ciAmJiBvdGhlcl9zdHIpOworICAgIGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBv
dGhlcl9zdHIsIHRoaXNfbGVuKTsKKyAgICByZXR1cm4gY29tcCA9PSAwOworICB9CisgIGNhc2Ug
YXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLm1hcF8t
PnNpemUoKSA9PSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpICYmCisgICAgICAgICAgICgqdmFs
dWVfLm1hcF8pID09ICgqb3RoZXIudmFsdWVfLm1hcF8pOworICBkZWZhdWx0OgorICAgIEpTT05f
QVNTRVJUX1VOUkVBQ0hBQkxFOworICB9CisgIHJldHVybiBmYWxzZTsgLy8gdW5yZWFjaGFibGUK
K30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisKK2NvbnN0IGNoYXIqIFZhbHVlOjphc0NTdHJp
bmcoKSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZSgpID09IHN0cmluZ1ZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6YXNDU3RyaW5nKCk6IHJl
cXVpcmVzIHN0cmluZ1ZhbHVlIik7CisgIGlmICh2YWx1ZV8uc3RyaW5nXyA9PSBudWxscHRyKQor
ICAgIHJldHVybiBudWxscHRyOworICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgY2hhciBjb25zdCog
dGhpc19zdHI7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmlzQWxsb2NhdGVkKCksIHRo
aXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhpc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICZ0
aGlzX3N0cik7CisgIHJldHVybiB0aGlzX3N0cjsKK30KKworI2lmIEpTT05DUFBfVVNJTkdfU0VD
VVJFX01FTU9SWQordW5zaWduZWQgVmFsdWU6OmdldENTdHJpbmdMZW5ndGgoKSBjb25zdCB7Cisg
IEpTT05fQVNTRVJUX01FU1NBR0UodHlwZSgpID09IHN0cmluZ1ZhbHVlLAorICAgICAgICAgICAg
ICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6YXNDU3RyaW5nKCk6IHJlcXVpcmVzIHN0cmluZ1Zh
bHVlIik7CisgIGlmICh2YWx1ZV8uc3RyaW5nXyA9PSAwKQorICAgIHJldHVybiAwOworICB1bnNp
Z25lZCB0aGlzX2xlbjsKKyAgY2hhciBjb25zdCogdGhpc19zdHI7CisgIGRlY29kZVByZWZpeGVk
U3RyaW5nKHRoaXMtPmlzQWxsb2NhdGVkKCksIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhpc19s
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICZ0aGlzX3N0cik7CisgIHJldHVybiB0aGlzX2xl
bjsKK30KICNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxF
OwotICAgfQotICAgcmV0dXJuIGZhbHNlOyAgLy8gdW5yZWFjaGFibGUKKworYm9vbCBWYWx1ZTo6
Z2V0U3RyaW5nKGNoYXIgY29uc3QqKiBiZWdpbiwgY2hhciBjb25zdCoqIGVuZCkgY29uc3Qgewor
ICBpZiAodHlwZSgpICE9IHN0cmluZ1ZhbHVlKQorICAgIHJldHVybiBmYWxzZTsKKyAgaWYgKHZh
bHVlXy5zdHJpbmdfID09IG51bGxwdHIpCisgICAgcmV0dXJuIGZhbHNlOworICB1bnNpZ25lZCBs
ZW5ndGg7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmlzQWxsb2NhdGVkKCksIHRoaXMt
PnZhbHVlXy5zdHJpbmdfLCAmbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICBiZWdpbik7
CisgICplbmQgPSAqYmVnaW4gKyBsZW5ndGg7CisgIHJldHVybiB0cnVlOworfQorCitTdHJpbmcg
VmFsdWU6OmFzU3RyaW5nKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIG51
bGxWYWx1ZToKKyAgICByZXR1cm4gIiI7CisgIGNhc2Ugc3RyaW5nVmFsdWU6IHsKKyAgICBpZiAo
dmFsdWVfLnN0cmluZ18gPT0gbnVsbHB0cikKKyAgICAgIHJldHVybiAiIjsKKyAgICB1bnNpZ25l
ZCB0aGlzX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAgICBkZWNvZGVQcmVmaXhl
ZFN0cmluZyh0aGlzLT5pc0FsbG9jYXRlZCgpLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNf
bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGlzX3N0cik7CisgICAgcmV0dXJuIFN0
cmluZyh0aGlzX3N0ciwgdGhpc19sZW4pOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAg
IHJldHVybiB2YWx1ZV8uYm9vbF8gPyAidHJ1ZSIgOiAiZmFsc2UiOworICBjYXNlIGludFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFs
dWU6CisgICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFs
VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVs
dDoKKyAgICBKU09OX0ZBSUxfTUVTU0FHRSgiVHlwZSBpcyBub3QgY29udmVydGlibGUgdG8gc3Ry
aW5nIik7CisgIH0KIH0KIAotYm9vbCAKLVZhbHVlOjpvcGVyYXRvciAhPSggY29uc3QgVmFsdWUg
Jm90aGVyICkgY29uc3QKLXsKLSAgIHJldHVybiAhKCAqdGhpcyA9PSBvdGhlciApOworI2lmZGVm
IEpTT05fVVNFX0NQUFRMCitDcHBUTDo6Q29uc3RTdHJpbmcgVmFsdWU6OmFzQ29uc3RTdHJpbmco
KSBjb25zdCB7CisgIHVuc2lnbmVkIGxlbjsKKyAgY2hhciBjb25zdCogc3RyOworICBkZWNvZGVQ
cmVmaXhlZFN0cmluZyhpc0FsbG9jYXRlZCgpLCB2YWx1ZV8uc3RyaW5nXywgJmxlbiwgJnN0cik7
CisgIHJldHVybiBDcHBUTDo6Q29uc3RTdHJpbmcoc3RyLCBsZW4pOwogfQorI2VuZGlmCiAKLWNv
bnN0IGNoYXIgKgotVmFsdWU6OmFzQ1N0cmluZygpIGNvbnN0Ci17Ci0gICBKU09OX0FTU0VSVCgg
dHlwZV8gPT0gc3RyaW5nVmFsdWUgKTsKLSAgIHJldHVybiB2YWx1ZV8uc3RyaW5nXzsKK1ZhbHVl
OjpJbnQgVmFsdWU6OmFzSW50KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNl
IGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RJbnQg
b3V0IG9mIEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQodmFsdWVfLmludF8pOworICBjYXNl
IHVpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCksICJMYXJnZXN0VUlu
dCBvdXQgb2YgSW50IHJhbmdlIik7CisgICAgcmV0dXJuIEludCh2YWx1ZV8udWludF8pOworICBj
YXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJl
YWxfLCBtaW5JbnQsIG1heEludCksCisgICAgICAgICAgICAgICAgICAgICAgICAiZG91YmxlIG91
dCBvZiBJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50KHZhbHVlXy5yZWFsXyk7CisgIGNhc2Ug
bnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1
cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAg
SlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBJbnQuIik7Cit9
CisKK1ZhbHVlOjpVSW50IFZhbHVlOjphc1VJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgp
KSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwg
Ikxhcmdlc3RJbnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gVUludCh2YWx1ZV8u
aW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50
KCksICJMYXJnZXN0VUludCBvdXQgb2YgVUludCByYW5nZSIpOworICAgIHJldHVybiBVSW50KHZh
bHVlXy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0Uo
SW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgImRvdWJsZSBvdXQgb2YgVUludCByYW5nZSIpOworICAgIHJldHVybiBVSW50KHZhbHVlXy5y
ZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJvb2xlYW5W
YWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6CisgICAg
YnJlYWs7CisgIH0KKyAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJs
ZSB0byBVSW50LiIpOwogfQogCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKIAotc3RkOjpz
dHJpbmcgCi1WYWx1ZTo6YXNTdHJpbmcoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQot
ICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gIiI7Ci0gICBjYXNlIHN0cmlu
Z1ZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5zdHJpbmdfID8gdmFsdWVfLnN0cmluZ18gOiAi
IjsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/ICJ0
cnVlIiA6ICJmYWxzZSI7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlVG9T
dHJpbmcoIHZhbHVlXy5pbnRfICk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2
YWx1ZVRvU3RyaW5nKCB2YWx1ZV8udWludF8gKTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAg
cmV0dXJuIHZhbHVlVG9TdHJpbmcoIHZhbHVlXy5yZWFsXyApOwotICAgZGVmYXVsdDoKLSAgICAg
IEpTT05fRkFJTF9NRVNTQUdFKCAiVHlwZSBpcyBub3QgY29udmVydGlibGUgdG8gc3RyaW5nIiAp
OwotICAgfQotfQotCi0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi1DcHBUTDo6Q29uc3RTdHJpbmcg
Ci1WYWx1ZTo6YXNDb25zdFN0cmluZygpIGNvbnN0Ci17Ci0gICByZXR1cm4gQ3BwVEw6OkNvbnN0
U3RyaW5nKCBhc1N0cmluZygpLmNfc3RyKCkgKTsKLX0KLSMgZW5kaWYKLQotCi1WYWx1ZTo6SW50
IAotVmFsdWU6OmFzSW50KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAg
IGNhc2UgaW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCksICJMYXJn
ZXN0SW50IG91dCBvZiBJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBJbnQodmFsdWVfLmludF8p
OwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCks
ICJMYXJnZXN0VUludCBvdXQgb2YgSW50IHJhbmdlIik7Ci0gICAgICByZXR1cm4gSW50KHZhbHVl
Xy51aW50Xyk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0Uo
SW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludCwgbWF4SW50KSwgImRvdWJsZSBvdXQgb2YgSW50
IHJhbmdlIik7Ci0gICAgICByZXR1cm4gSW50KHZhbHVlXy5yZWFsXyk7Ci0gICBjYXNlIG51bGxW
YWx1ZToKLSAgICAgIHJldHVybiAwOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1
cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9
Ci0gICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIEludC4i
KTsKLX0KLQotCi1WYWx1ZTo6VUludCAKLVZhbHVlOjphc1VJbnQoKSBjb25zdAotewotICAgc3dp
dGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJU
X01FU1NBR0UoaXNVSW50KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50IHJhbmdlIik7Ci0gICAg
ICByZXR1cm4gVUludCh2YWx1ZV8uaW50Xyk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIEpT
T05fQVNTRVJUX01FU1NBR0UoaXNVSW50KCksICJMYXJnZXN0VUludCBvdXQgb2YgVUludCByYW5n
ZSIpOwotICAgICAgcmV0dXJuIFVJbnQodmFsdWVfLnVpbnRfKTsKLSAgIGNhc2UgcmVhbFZhbHVl
OgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4
VUludCksICJkb3VibGUgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBVSW50KCB2
YWx1ZV8ucmVhbF8gKTsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDA7Ci0gICBj
YXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAg
IGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1
ZSBpcyBub3QgY29udmVydGlibGUgdG8gVUludC4iKTsKLX0KLQotCi0jIGlmIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCi0KLVZhbHVlOjpJbnQ2NAotVmFsdWU6OmFzSW50NjQoKSBjb25zdAotewot
ICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVy
biBJbnQ2NCh2YWx1ZV8uaW50Xyk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIEpTT05fQVNT
RVJUX01FU1NBR0UoaXNJbnQ2NCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIEludDY0IHJhbmdlIik7
Ci0gICAgICByZXR1cm4gSW50NjQodmFsdWVfLnVpbnRfKTsKLSAgIGNhc2UgcmVhbFZhbHVlOgot
ICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50NjQs
IG1heEludDY0KSwgImRvdWJsZSBvdXQgb2YgSW50NjQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBJ
bnQ2NCh2YWx1ZV8ucmVhbF8pOwotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gMDsK
LSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAw
OwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0Uo
IlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBJbnQ2NC4iKTsKLX0KLQotCi1WYWx1ZTo6VUlu
dDY0Ci1WYWx1ZTo6YXNVSW50NjQoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAg
ewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50NjQo
KSwgIkxhcmdlc3RJbnQgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOwotICAgICAgcmV0dXJuIFVJbnQ2
NCh2YWx1ZV8uaW50Xyk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiBVSW50NjQo
dmFsdWVfLnVpbnRfKTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVT
U0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUludDY0KSwgImRvdWJsZSBvdXQgb2Yg
VUludDY0IHJhbmdlIik7Ci0gICAgICByZXR1cm4gVUludDY0KCB2YWx1ZV8ucmVhbF8gKTsKLSAg
IGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDA7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToK
LSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAgIGRlZmF1bHQ6Ci0gICAgICBi
cmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGli
bGUgdG8gVUludDY0LiIpOwotfQotIyBlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0
KQotCi0KLUxhcmdlc3RJbnQgCi1WYWx1ZTo6YXNMYXJnZXN0SW50KCkgY29uc3QKLXsKK1ZhbHVl
OjpJbnQ2NCBWYWx1ZTo6YXNJbnQ2NCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAg
Y2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gSW50NjQodmFsdWVfLmludF8pOworICBjYXNlIHVp
bnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50NjQoKSwgIkxhcmdlc3RVSW50
IG91dCBvZiBJbnQ2NCByYW5nZSIpOworICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8udWludF8pOwor
ICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVf
LnJlYWxfLCBtaW5JbnQ2NCwgbWF4SW50NjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRv
dWJsZSBvdXQgb2YgSW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50NjQodmFsdWVfLnJlYWxf
KTsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICBicmVh
azsKKyAgfQorICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRv
IEludDY0LiIpOworfQorCitWYWx1ZTo6VUludDY0IFZhbHVlOjphc1VJbnQ2NCgpIGNvbnN0IHsK
KyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9N
RVNTQUdFKGlzVUludDY0KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKKyAg
ICByZXR1cm4gVUludDY0KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0
dXJuIFVJbnQ2NCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FT
U0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50NjQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2YgVUludDY0IHJhbmdlIik7CisgICAgcmV0
dXJuIFVJbnQ2NCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4g
MDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAw
OworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1
ZSBpcyBub3QgY29udmVydGlibGUgdG8gVUludDY0LiIpOworfQorI2VuZGlmIC8vIGlmIGRlZmlu
ZWQoSlNPTl9IQVNfSU5UNjQpCisKK0xhcmdlc3RJbnQgVmFsdWU6OmFzTGFyZ2VzdEludCgpIGNv
bnN0IHsKICNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCi0gICAgcmV0dXJuIGFzSW50KCk7Cisg
IHJldHVybiBhc0ludCgpOwogI2Vsc2UKLSAgICByZXR1cm4gYXNJbnQ2NCgpOworICByZXR1cm4g
YXNJbnQ2NCgpOwogI2VuZGlmCiB9CiAKLQotTGFyZ2VzdFVJbnQgCi1WYWx1ZTo6YXNMYXJnZXN0
VUludCgpIGNvbnN0Ci17CitMYXJnZXN0VUludCBWYWx1ZTo6YXNMYXJnZXN0VUludCgpIGNvbnN0
IHsKICNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCi0gICAgcmV0dXJuIGFzVUludCgpOworICBy
ZXR1cm4gYXNVSW50KCk7CiAjZWxzZQotICAgIHJldHVybiBhc1VJbnQ2NCgpOworICByZXR1cm4g
YXNVSW50NjQoKTsKICNlbmRpZgogfQogCi0KLWRvdWJsZSAKLVZhbHVlOjphc0RvdWJsZSgpIGNv
bnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oIHZhbHVlXy5pbnRfICk7Ci0gICBjYXNlIHVp
bnRWYWx1ZToKK2RvdWJsZSBWYWx1ZTo6YXNEb3VibGUoKSBjb25zdCB7CisgIHN3aXRjaCAodHlw
ZSgpKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4o
dmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKICNpZiAhZGVmaW5lZChKU09OX1VTRV9J
TlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+
KCB2YWx1ZV8udWludF8gKTsKLSNlbHNlIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RP
VUJMRV9DT05WRVJTSU9OKQotICAgICAgcmV0dXJuIGludGVnZXJUb0RvdWJsZSggdmFsdWVfLnVp
bnRfICk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWVfLnVpbnRfKTsKKyNl
bHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKKyAg
ICByZXR1cm4gaW50ZWdlclRvRG91YmxlKHZhbHVlXy51aW50Xyk7CiAjZW5kaWYgLy8gaWYgIWRl
ZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0gICBjYXNlIHJlYWxWYWx1
ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF87Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAg
IHJldHVybiAwLjA7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8u
Ym9vbF8gPyAxLjAgOiAwLjA7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBK
U09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIGRvdWJsZS4iKTsK
LX0KLQotZmxvYXQKLVZhbHVlOjphc0Zsb2F0KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVf
ICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KCB2YWx1ZV8uaW50XyApOwotICAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF87CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVy
biAwLjA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAx
LjAgOiAwLjA7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgSlNPTl9GQUlMX01FU1NB
R0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBkb3VibGUuIik7Cit9CisKK2Zsb2F0IFZh
bHVlOjphc0Zsb2F0KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGludFZh
bHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLmludF8pOworICBjYXNl
IHVpbnRWYWx1ZToKICNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lP
TikKLSAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oIHZhbHVlXy51aW50XyApOwotI2Vs
c2UgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0gICAg
ICByZXR1cm4gaW50ZWdlclRvRG91YmxlKCB2YWx1ZV8udWludF8gKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy51aW50Xyk7CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNP
Tl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgICAgLy8gVGhpcyBjYW4gZmFpbCAoc2ls
ZW50bHk/KSBpZiB0aGUgdmFsdWUgaXMgYmlnZ2VyIHRoYW4gTUFYX0ZMT0FULgorICAgIHJldHVy
biBzdGF0aWNfY2FzdDxmbG9hdD4oaW50ZWdlclRvRG91YmxlKHZhbHVlXy51aW50XykpOwogI2Vu
ZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAg
Y2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KCB2YWx1ZV8u
cmVhbF8gKTsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDAuMDsKLSAgIGNhc2Ug
Ym9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMGYgOiAwLjBmOwot
ICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZh
bHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBmbG9hdC4iKTsKLX0KLQotYm9vbCAKLVZhbHVlOjph
c0Jvb2woKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBib29s
ZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xfOwotICAgY2FzZSBudWxsVmFsdWU6
Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHZh
bHVlXy5pbnRfID8gdHJ1ZSA6IGZhbHNlOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1
cm4gdmFsdWVfLnVpbnRfID8gdHJ1ZSA6IGZhbHNlOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAg
ICByZXR1cm4gdmFsdWVfLnJlYWxfID8gdHJ1ZSA6IGZhbHNlOwotICAgZGVmYXVsdDoKLSAgICAg
IGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0
aWJsZSB0byBib29sLiIpOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNDb252ZXJ0aWJsZVRvKCBW
YWx1ZVR5cGUgb3RoZXIgKSBjb25zdAotewotICAgc3dpdGNoICggb3RoZXIgKQotICAgewotICAg
Y2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gKCBpc051bWVyaWMoKSAmJiBhc0RvdWJsZSgp
ID09IDAuMCApCi0gICAgICAgICAgICAgfHwgKCB0eXBlXyA9PSBib29sZWFuVmFsdWUgJiYgdmFs
dWVfLmJvb2xfID09IGZhbHNlICkKLSAgICAgICAgICAgICB8fCAoIHR5cGVfID09IHN0cmluZ1Zh
bHVlICYmIGFzU3RyaW5nKCkgPT0gIiIgKQotICAgICAgICAgICAgIHx8ICggdHlwZV8gPT0gYXJy
YXlWYWx1ZSAmJiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IDAgKQotICAgICAgICAgICAgIHx8ICgg
dHlwZV8gPT0gb2JqZWN0VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwICkKLSAgICAg
ICAgICAgICB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAg
cmV0dXJuIGlzSW50KCkKLSAgICAgICAgICAgICB8fCAodHlwZV8gPT0gcmVhbFZhbHVlICYmIElu
UmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCkpCi0gICAgICAgICAgICAgfHwgdHlw
ZV8gPT0gYm9vbGVhblZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwot
ICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gaXNVSW50KCkKLSAgICAgICAgICAgICB8
fCAodHlwZV8gPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50
KSkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUKLSAgICAgICAgICAgICB8
fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiBp
c051bWVyaWMoKQotICAgICAgICAgICAgIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZQotICAgICAg
ICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAg
ICAgcmV0dXJuIGlzTnVtZXJpYygpCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gYm9vbGVhblZh
bHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBzdHJpbmdW
YWx1ZToKLSAgICAgIHJldHVybiBpc051bWVyaWMoKQotICAgICAgICAgICAgIHx8IHR5cGVfID09
IGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IHN0cmluZ1ZhbHVlCi0gICAg
ICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBhcnJheVZhbHVlOgotICAg
ICAgcmV0dXJuIHR5cGVfID09IGFycmF5VmFsdWUKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBu
dWxsVmFsdWU7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgcmV0dXJuIHR5cGVfID09IG9i
amVjdFZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgfQotICAg
SlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICByZXR1cm4gZmFsc2U7CisgIGNhc2UgcmVhbFZh
bHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLnJlYWxfKTsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDAuMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAg
cmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMGYgOiAwLjBmOworICBkZWZhdWx0OgorICAgIGJyZWFr
OworICB9CisgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8g
ZmxvYXQuIik7Cit9CisKK2Jvb2wgVmFsdWU6OmFzQm9vbCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0
eXBlKCkpIHsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXzsK
KyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIGZhbHNlOworICBjYXNlIGludFZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZV8uaW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2FzZSB1aW50VmFsdWU6
CisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2FzZSByZWFsVmFs
dWU6IHsKKyAgICAvLyBBY2NvcmRpbmcgdG8gSmF2YVNjcmlwdCBsYW5ndWFnZSB6ZXJvIG9yIE5h
TiBpcyByZWdhcmRlZCBhcyBmYWxzZQorICAgIGNvbnN0IGF1dG8gdmFsdWVfY2xhc3NpZmljYXRp
b24gPSBzdGQ6OmZwY2xhc3NpZnkodmFsdWVfLnJlYWxfKTsKKyAgICByZXR1cm4gdmFsdWVfY2xh
c3NpZmljYXRpb24gIT0gRlBfWkVSTyAmJiB2YWx1ZV9jbGFzc2lmaWNhdGlvbiAhPSBGUF9OQU47
CisgIH0KKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICBKU09OX0ZBSUxfTUVTU0FHRSgi
VmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIGJvb2wuIik7Cit9CisKK2Jvb2wgVmFsdWU6Omlz
Q29udmVydGlibGVUbyhWYWx1ZVR5cGUgb3RoZXIpIGNvbnN0IHsKKyAgc3dpdGNoIChvdGhlcikg
eworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gKGlzTnVtZXJpYygpICYmIGFzRG91Ymxl
KCkgPT0gMC4wKSB8fAorICAgICAgICAgICAodHlwZSgpID09IGJvb2xlYW5WYWx1ZSAmJiB2YWx1
ZV8uYm9vbF8gPT0gZmFsc2UpIHx8CisgICAgICAgICAgICh0eXBlKCkgPT0gc3RyaW5nVmFsdWUg
JiYgYXNTdHJpbmcoKS5lbXB0eSgpKSB8fAorICAgICAgICAgICAodHlwZSgpID09IGFycmF5VmFs
dWUgJiYgdmFsdWVfLm1hcF8tPmVtcHR5KCkpIHx8CisgICAgICAgICAgICh0eXBlKCkgPT0gb2Jq
ZWN0VmFsdWUgJiYgdmFsdWVfLm1hcF8tPmVtcHR5KCkpIHx8CisgICAgICAgICAgIHR5cGUoKSA9
PSBudWxsVmFsdWU7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIGlzSW50KCkgfHwKKyAg
ICAgICAgICAgKHR5cGUoKSA9PSByZWFsVmFsdWUgJiYgSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1p
bkludCwgbWF4SW50KSkgfHwKKyAgICAgICAgICAgdHlwZSgpID09IGJvb2xlYW5WYWx1ZSB8fCB0
eXBlKCkgPT0gbnVsbFZhbHVlOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gaXNVSW50
KCkgfHwKKyAgICAgICAgICAgKHR5cGUoKSA9PSByZWFsVmFsdWUgJiYgSW5SYW5nZSh2YWx1ZV8u
cmVhbF8sIDAsIG1heFVJbnQpKSB8fAorICAgICAgICAgICB0eXBlKCkgPT0gYm9vbGVhblZhbHVl
IHx8IHR5cGUoKSA9PSBudWxsVmFsdWU7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiBp
c051bWVyaWMoKSB8fCB0eXBlKCkgPT0gYm9vbGVhblZhbHVlIHx8IHR5cGUoKSA9PSBudWxsVmFs
dWU7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBl
KCkgPT0gYm9vbGVhblZhbHVlIHx8IHR5cGUoKSA9PSBudWxsVmFsdWU7CisgIGNhc2Ugc3RyaW5n
VmFsdWU6CisgICAgcmV0dXJuIGlzTnVtZXJpYygpIHx8IHR5cGUoKSA9PSBib29sZWFuVmFsdWUg
fHwgdHlwZSgpID09IHN0cmluZ1ZhbHVlIHx8CisgICAgICAgICAgIHR5cGUoKSA9PSBudWxsVmFs
dWU7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICByZXR1cm4gdHlwZSgpID09IGFycmF5VmFsdWUg
fHwgdHlwZSgpID09IG51bGxWYWx1ZTsKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICByZXR1cm4g
dHlwZSgpID09IG9iamVjdFZhbHVlIHx8IHR5cGUoKSA9PSBudWxsVmFsdWU7CisgIH0KKyAgSlNP
Tl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIHJldHVybiBmYWxzZTsKIH0KIAotCiAvLy8gTnVtYmVy
IG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmplY3QKLUFycmF5SW5kZXggCi1WYWx1ZTo6c2l6ZSgp
IGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToK
LSAgIGNhc2UgaW50VmFsdWU6Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgIGNhc2UgcmVhbFZhbHVl
OgotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgcmV0
dXJuIDA7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJh
eVZhbHVlOiAgLy8gc2l6ZSBvZiB0aGUgYXJyYXkgaXMgaGlnaGVzdCBpbmRleCArIDEKLSAgICAg
IGlmICggIXZhbHVlXy5tYXBfLT5lbXB0eSgpICkKLSAgICAgIHsKLSAgICAgICAgIE9iamVjdFZh
bHVlczo6Y29uc3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFsdWVfLm1hcF8tPmVuZCgpOwotICAgICAg
ICAgLS1pdExhc3Q7Ci0gICAgICAgICByZXR1cm4gKCppdExhc3QpLmZpcnN0LmluZGV4KCkrMTsK
LSAgICAgIH0KLSAgICAgIHJldHVybiAwOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJl
dHVybiBBcnJheUluZGV4KCB2YWx1ZV8ubWFwXy0+c2l6ZSgpICk7Ci0jZWxzZQotICAgY2FzZSBh
cnJheVZhbHVlOgotICAgICAgcmV0dXJuIEludCggdmFsdWVfLmFycmF5Xy0+c2l6ZSgpICk7Ci0g
ICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgcmV0dXJuIEludCggdmFsdWVfLm1hcF8tPnNpemUo
KSApOwotI2VuZGlmCi0gICB9Ci0gICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIHJldHVy
biAwOyAvLyB1bnJlYWNoYWJsZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmVtcHR5KCkgY29uc3QK
LXsKLSAgIGlmICggaXNOdWxsKCkgfHwgaXNBcnJheSgpIHx8IGlzT2JqZWN0KCkgKQotICAgICAg
cmV0dXJuIHNpemUoKSA9PSAwdTsKLSAgIGVsc2UKLSAgICAgIHJldHVybiBmYWxzZTsKK0FycmF5
SW5kZXggVmFsdWU6OnNpemUoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2Ug
bnVsbFZhbHVlOgorICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVpbnRWYWx1ZToKKyAgY2FzZSBy
ZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICBjYXNlIHN0cmluZ1ZhbHVlOgorICAg
IHJldHVybiAwOworICBjYXNlIGFycmF5VmFsdWU6IC8vIHNpemUgb2YgdGhlIGFycmF5IGlzIGhp
Z2hlc3QgaW5kZXggKyAxCisgICAgaWYgKCF2YWx1ZV8ubWFwXy0+ZW1wdHkoKSkgeworICAgICAg
T2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdExhc3QgPSB2YWx1ZV8ubWFwXy0+ZW5kKCk7
CisgICAgICAtLWl0TGFzdDsKKyAgICAgIHJldHVybiAoKml0TGFzdCkuZmlyc3QuaW5kZXgoKSAr
IDE7CisgICAgfQorICAgIHJldHVybiAwOworICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHJldHVy
biBBcnJheUluZGV4KHZhbHVlXy5tYXBfLT5zaXplKCkpOworICB9CisgIEpTT05fQVNTRVJUX1VO
UkVBQ0hBQkxFOworICByZXR1cm4gMDsgLy8gdW5yZWFjaGFibGU7Cit9CisKK2Jvb2wgVmFsdWU6
OmVtcHR5KCkgY29uc3QgeworICBpZiAoaXNOdWxsKCkgfHwgaXNBcnJheSgpIHx8IGlzT2JqZWN0
KCkpCisgICAgcmV0dXJuIHNpemUoKSA9PSAwdTsKKyAgZWxzZQorICAgIHJldHVybiBmYWxzZTsK
K30KKworVmFsdWU6Om9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhaXNOdWxsKCk7IH0K
Kwordm9pZCBWYWx1ZTo6Y2xlYXIoKSB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZSgpID09
IG51bGxWYWx1ZSB8fCB0eXBlKCkgPT0gYXJyYXlWYWx1ZSB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlKCkgPT0gb2JqZWN0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgImlu
IEpzb246OlZhbHVlOjpjbGVhcigpOiByZXF1aXJlcyBjb21wbGV4IHZhbHVlIik7CisgIHN0YXJ0
XyA9IDA7CisgIGxpbWl0XyA9IDA7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgYXJyYXlW
YWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFwXy0+Y2xlYXIoKTsKKyAg
ICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorfQorCit2b2lkIFZhbHVlOjpy
ZXNpemUoQXJyYXlJbmRleCBuZXdTaXplKSB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZSgp
ID09IG51bGxWYWx1ZSB8fCB0eXBlKCkgPT0gYXJyYXlWYWx1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlc2l6ZSgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7Cisg
IGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUoYXJyYXlWYWx1ZSk7
CisgIEFycmF5SW5kZXggb2xkU2l6ZSA9IHNpemUoKTsKKyAgaWYgKG5ld1NpemUgPT0gMCkKKyAg
ICBjbGVhcigpOworICBlbHNlIGlmIChuZXdTaXplID4gb2xkU2l6ZSkKKyAgICB0aGlzLT5vcGVy
YXRvcltdKG5ld1NpemUgLSAxKTsKKyAgZWxzZSB7CisgICAgZm9yIChBcnJheUluZGV4IGluZGV4
ID0gbmV3U2l6ZTsgaW5kZXggPCBvbGRTaXplOyArK2luZGV4KSB7CisgICAgICB2YWx1ZV8ubWFw
Xy0+ZXJhc2UoaW5kZXgpOworICAgIH0KKyAgICBKU09OX0FTU0VSVChzaXplKCkgPT0gbmV3U2l6
ZSk7CisgIH0KK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgp
IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGUoKSA9PSBudWxsVmFsdWUgfHwg
dHlwZSgpID09IGFycmF5VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10o
QXJyYXlJbmRleCk6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKKyAgaWYgKHR5cGUoKSA9PSBudWxs
VmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShhcnJheVZhbHVlKTsKKyAgQ1pTdHJpbmcga2V5KGlu
ZGV4KTsKKyAgYXV0byBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChrZXkpOworICBpZiAo
aXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGtleSkKKyAgICByZXR1
cm4gKCppdCkuc2Vjb25kOworCisgIE9iamVjdFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFs
dWUoa2V5LCBudWxsU2luZ2xldG9uKCkpOworICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQs
IGRlZmF1bHRWYWx1ZSk7CisgIHJldHVybiAoKml0KS5zZWNvbmQ7Cit9CisKK1ZhbHVlJiBWYWx1
ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAg
IGluZGV4ID49IDAsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4
KTogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7CisgIHJldHVybiAoKnRoaXMpW0FycmF5SW5k
ZXgoaW5kZXgpXTsKK30KKworY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5k
ZXggaW5kZXgpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGUoKSA9
PSBudWxsVmFsdWUgfHwgdHlwZSgpID09IGFycmF5VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFs
dWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCljb25zdDogcmVxdWlyZXMgYXJyYXlWYWx1ZSIpOwor
ICBpZiAodHlwZSgpID09IG51bGxWYWx1ZSkKKyAgICByZXR1cm4gbnVsbFNpbmdsZXRvbigpOwor
ICBDWlN0cmluZyBrZXkoaW5kZXgpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5KTsKKyAgaWYgKGl0ID09IHZhbHVlXy5tYXBfLT5lbmQo
KSkKKyAgICByZXR1cm4gbnVsbFNpbmdsZXRvbigpOworICByZXR1cm4gKCppdCkuc2Vjb25kOwor
fQorCitjb25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSBjb25zdCB7Cisg
IEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRleCA+PSAwLAorICAgICAgImluIEpzb246
OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3Q6IGluZGV4IGNhbm5vdCBiZSBuZWdh
dGl2ZSIpOworICByZXR1cm4gKCp0aGlzKVtBcnJheUluZGV4KGluZGV4KV07Cit9CisKK3ZvaWQg
VmFsdWU6OmluaXRCYXNpYyhWYWx1ZVR5cGUgdHlwZSwgYm9vbCBhbGxvY2F0ZWQpIHsKKyAgc2V0
VHlwZSh0eXBlKTsKKyAgc2V0SXNBbGxvY2F0ZWQoYWxsb2NhdGVkKTsKKyAgY29tbWVudHNfID0g
Q29tbWVudHN7fTsKKyAgc3RhcnRfID0gMDsKKyAgbGltaXRfID0gMDsKK30KKwordm9pZCBWYWx1
ZTo6ZHVwUGF5bG9hZChjb25zdCBWYWx1ZSYgb3RoZXIpIHsKKyAgc2V0VHlwZShvdGhlci50eXBl
KCkpOworICBzZXRJc0FsbG9jYXRlZChmYWxzZSk7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNh
c2UgbnVsbFZhbHVlOgorICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVpbnRWYWx1ZToKKyAgY2Fz
ZSByZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHZhbHVlXyA9IG90aGVyLnZh
bHVlXzsKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICBpZiAob3RoZXIudmFs
dWVfLnN0cmluZ18gJiYgb3RoZXIuaXNBbGxvY2F0ZWQoKSkgeworICAgICAgdW5zaWduZWQgbGVu
OworICAgICAgY2hhciBjb25zdCogc3RyOworICAgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcob3Ro
ZXIuaXNBbGxvY2F0ZWQoKSwgb3RoZXIudmFsdWVfLnN0cmluZ18sICZsZW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmc3RyKTsKKyAgICAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRl
QW5kUHJlZml4U3RyaW5nVmFsdWUoc3RyLCBsZW4pOworICAgICAgc2V0SXNBbGxvY2F0ZWQodHJ1
ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhbHVlXy5zdHJpbmdfID0gb3RoZXIudmFsdWVfLnN0
cmluZ187CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2Jq
ZWN0VmFsdWU6CisgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCpvdGhlci52YWx1
ZV8ubWFwXyk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NFUlRfVU5SRUFD
SEFCTEU7CisgIH0KK30KKwordm9pZCBWYWx1ZTo6cmVsZWFzZVBheWxvYWQoKSB7CisgIHN3aXRj
aCAodHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICBjYXNlIGludFZhbHVlOgorICBjYXNl
IHVpbnRWYWx1ZToKKyAgY2FzZSByZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAg
IGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIGlmIChpc0FsbG9jYXRlZCgpKQorICAg
ICAgcmVsZWFzZVByZWZpeGVkU3RyaW5nVmFsdWUodmFsdWVfLnN0cmluZ18pOworICAgIGJyZWFr
OworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgZGVsZXRlIHZh
bHVlXy5tYXBfOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVB
Q0hBQkxFOworICB9Cit9CisKK3ZvaWQgVmFsdWU6OmR1cE1ldGEoY29uc3QgVmFsdWUmIG90aGVy
KSB7CisgIGNvbW1lbnRzXyA9IG90aGVyLmNvbW1lbnRzXzsKKyAgc3RhcnRfID0gb3RoZXIuc3Rh
cnRfOworICBsaW1pdF8gPSBvdGhlci5saW1pdF87Cit9CisKKy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3Qu
CisvLyBAcHJlIFR5cGUgb2YgJyp0aGlzJyBpcyBvYmplY3Qgb3IgbnVsbC4KKy8vIEBwYXJhbSBr
ZXkgaXMgbnVsbC10ZXJtaW5hdGVkLgorVmFsdWUmIFZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGNv
bnN0IGNoYXIqIGtleSkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdHlwZSgpID09
IG51bGxWYWx1ZSB8fCB0eXBlKCkgPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFs
dWU6OnJlc29sdmVSZWZlcmVuY2UoKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUiKTsKKyAgaWYgKHR5
cGUoKSA9PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShvYmplY3RWYWx1ZSk7CisgIENa
U3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdHJsZW4oa2V5KSks
CisgICAgICAgICAgICAgICAgICAgICBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbik7IC8vIE5PVEUh
CisgIGF1dG8gaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsKKyAgaWYg
KGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkpCisg
ICAgcmV0dXJuICgqaXQpLnNlY29uZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVm
YXVsdFZhbHVlKGFjdHVhbEtleSwgbnVsbFNpbmdsZXRvbigpKTsKKyAgaXQgPSB2YWx1ZV8ubWFw
Xy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOworICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5zZWNv
bmQ7CisgIHJldHVybiB2YWx1ZTsKK30KKworLy8gQHBhcmFtIGtleSBpcyBub3QgbnVsbC10ZXJt
aW5hdGVkLgorVmFsdWUmIFZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGNoYXIgY29uc3QqIGtleSwg
Y2hhciBjb25zdCogZW5kKSB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlKCkg
PT0gbnVsbFZhbHVlIHx8IHR5cGUoKSA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpW
YWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShrZXksIGVuZCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7
CisgIGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFs
dWUpOworICBDWlN0cmluZyBhY3R1YWxLZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5k
IC0ga2V5KSwKKyAgICAgICAgICAgICAgICAgICAgIENaU3RyaW5nOjpkdXBsaWNhdGVPbkNvcHkp
OworICBhdXRvIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGFjdHVhbEtleSk7CisgIGlm
IChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0gYWN0dWFsS2V5KQor
ICAgIHJldHVybiAoKml0KS5zZWNvbmQ7CisKKyAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRl
ZmF1bHRWYWx1ZShhY3R1YWxLZXksIG51bGxTaW5nbGV0b24oKSk7CisgIGl0ID0gdmFsdWVfLm1h
cF8tPmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsKKyAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vj
b25kOworICByZXR1cm4gdmFsdWU7Cit9CisKK1ZhbHVlIFZhbHVlOjpnZXQoQXJyYXlJbmRleCBp
bmRleCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3QgeworICBjb25zdCBWYWx1ZSog
dmFsdWUgPSAmKCgqdGhpcylbaW5kZXhdKTsKKyAgcmV0dXJuIHZhbHVlID09ICZudWxsU2luZ2xl
dG9uKCkgPyBkZWZhdWx0VmFsdWUgOiAqdmFsdWU7Cit9CisKK2Jvb2wgVmFsdWU6OmlzVmFsaWRJ
bmRleChBcnJheUluZGV4IGluZGV4KSBjb25zdCB7IHJldHVybiBpbmRleCA8IHNpemUoKTsgfQor
CitWYWx1ZSBjb25zdCogVmFsdWU6OmZpbmQoY2hhciBjb25zdCogYmVnaW4sIGNoYXIgY29uc3Qq
IGVuZCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBudWxsVmFsdWUg
fHwgdHlwZSgpID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29u
OjpWYWx1ZTo6ZmluZChiZWdpbiwgZW5kKTogcmVxdWlyZXMgIgorICAgICAgICAgICAgICAgICAg
ICAgICJvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUiKTsKKyAgaWYgKHR5cGUoKSA9PSBudWxsVmFs
dWUpCisgICAgcmV0dXJuIG51bGxwdHI7CisgIENaU3RyaW5nIGFjdHVhbEtleShiZWdpbiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGVuZCAtIGJlZ2luKSwKKyAgICAgICAgICAgICAgICAgICAgIENa
U3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBp
dCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFw
Xy0+ZW5kKCkpCisgICAgcmV0dXJuIG51bGxwdHI7CisgIHJldHVybiAmKCppdCkuc2Vjb25kOwor
fQorVmFsdWUqIFZhbHVlOjpkZW1hbmQoY2hhciBjb25zdCogYmVnaW4sIGNoYXIgY29uc3QqIGVu
ZCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBudWxsVmFsdWUgfHwgdHlwZSgp
ID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6
ZGVtYW5kKGJlZ2luLCBlbmQpOiByZXF1aXJlcyAiCisgICAgICAgICAgICAgICAgICAgICAgIm9i
amVjdFZhbHVlIG9yIG51bGxWYWx1ZSIpOworICByZXR1cm4gJnJlc29sdmVSZWZlcmVuY2UoYmVn
aW4sIGVuZCk7Cit9Citjb25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgY2hhciog
a2V5KSBjb25zdCB7CisgIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBrZXkgKyBzdHJs
ZW4oa2V5KSk7CisgIGlmICghZm91bmQpCisgICAgcmV0dXJuIG51bGxTaW5nbGV0b24oKTsKKyAg
cmV0dXJuICpmb3VuZDsKK30KK1ZhbHVlIGNvbnN0JiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBT
dHJpbmcmIGtleSkgY29uc3QgeworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleS5kYXRh
KCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCkpOworICBpZiAoIWZvdW5kKQorICAgIHJldHVy
biBudWxsU2luZ2xldG9uKCk7CisgIHJldHVybiAqZm91bmQ7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6
b3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uo
a2V5LCBrZXkgKyBzdHJsZW4oa2V5KSk7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShj
b25zdCBTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShrZXkuZGF0YSgp
LCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRv
cltdKGNvbnN0IFN0YXRpY1N0cmluZyYga2V5KSB7CisgIHJldHVybiByZXNvbHZlUmVmZXJlbmNl
KGtleS5jX3N0cigpKTsKIH0KIAotCi1ib29sCi1WYWx1ZTo6b3BlcmF0b3IhKCkgY29uc3QKLXsK
LSAgIHJldHVybiBpc051bGwoKTsKLX0KLQotCi12b2lkIAotVmFsdWU6OmNsZWFyKCkKLXsKLSAg
IEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVl
ICB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSApOwotCi0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7
Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVl
OgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfLT5jbGVhcigpOwotICAg
ICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgdmFsdWVfLmFycmF5
Xy0+Y2xlYXIoKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHZh
bHVlXy5tYXBfLT5jbGVhcigpOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0g
ICAgICBicmVhazsKLSAgIH0KLX0KLQotdm9pZCAKLVZhbHVlOjpyZXNpemUoIEFycmF5SW5kZXgg
bmV3U2l6ZSApCi17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlw
ZV8gPT0gYXJyYXlWYWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAg
KnRoaXMgPSBWYWx1ZSggYXJyYXlWYWx1ZSApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgIEFycmF5SW5kZXggb2xkU2l6ZSA9IHNpemUoKTsKLSAgIGlmICggbmV3U2l6
ZSA9PSAwICkKLSAgICAgIGNsZWFyKCk7Ci0gICBlbHNlIGlmICggbmV3U2l6ZSA+IG9sZFNpemUg
KQotICAgICAgKCp0aGlzKVsgbmV3U2l6ZSAtIDEgXTsKLSAgIGVsc2UKLSAgIHsKLSAgICAgIGZv
ciAoIEFycmF5SW5kZXggaW5kZXggPSBuZXdTaXplOyBpbmRleCA8IG9sZFNpemU7ICsraW5kZXgg
KQotICAgICAgewotICAgICAgICAgdmFsdWVfLm1hcF8tPmVyYXNlKCBpbmRleCApOwotICAgICAg
fQotICAgICAgYXNzZXJ0KCBzaXplKCkgPT0gbmV3U2l6ZSApOwotICAgfQotI2Vsc2UKLSAgIHZh
bHVlXy5hcnJheV8tPnJlc2l6ZSggbmV3U2l6ZSApOwotI2VuZGlmCi19Ci0KLQotVmFsdWUgJgot
VmFsdWU6Om9wZXJhdG9yW10oIEFycmF5SW5kZXggaW5kZXggKQotewotICAgSlNPTl9BU1NFUlQo
IHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IGFycmF5VmFsdWUgKTsKLSAgIGlmICgg
dHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAgICp0aGlzID0gVmFsdWUoIGFycmF5VmFsdWUgKTsK
LSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBDWlN0cmluZyBrZXkoIGlu
ZGV4ICk7Ci0gICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2Vy
X2JvdW5kKCBrZXkgKTsKLSAgIGlmICggaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICAmJiAgKCpp
dCkuZmlyc3QgPT0ga2V5ICkKLSAgICAgIHJldHVybiAoKml0KS5zZWNvbmQ7Ci0KLSAgIE9iamVj
dFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFsdWUoIGtleSwgbnVsbCApOwotICAgaXQgPSB2
YWx1ZV8ubWFwXy0+aW5zZXJ0KCBpdCwgZGVmYXVsdFZhbHVlICk7Ci0gICByZXR1cm4gKCppdCku
c2Vjb25kOwotI2Vsc2UKLSAgIHJldHVybiB2YWx1ZV8uYXJyYXlfLT5yZXNvbHZlUmVmZXJlbmNl
KCBpbmRleCApOwotI2VuZGlmCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1ZhbHVlJiBWYWx1ZTo6
b3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVz
b2x2ZVJlZmVyZW5jZShrZXkuY19zdHIoKSwga2V5LmVuZF9jX3N0cigpKTsKIH0KLQotCi1WYWx1
ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggaW50IGluZGV4ICkKLXsKLSAgIEpTT05fQVNTRVJUKCBp
bmRleCA+PSAwICk7Ci0gICByZXR1cm4gKCp0aGlzKVsgQXJyYXlJbmRleChpbmRleCkgXTsKK1Zh
bHVlIGNvbnN0JiBWYWx1ZTo6b3BlcmF0b3JbXShDcHBUTDo6Q29uc3RTdHJpbmcgY29uc3QmIGtl
eSkgY29uc3QgeworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleS5jX3N0cigpLCBrZXku
ZW5kX2Nfc3RyKCkpOworICBpZiAoIWZvdW5kKQorICAgIHJldHVybiBudWxsU2luZ2xldG9uKCk7
CisgIHJldHVybiAqZm91bmQ7CiB9Ci0KLQotY29uc3QgVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9y
W10oIEFycmF5SW5kZXggaW5kZXggKSBjb25zdAotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09
IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IGFycmF5VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0g
bnVsbFZhbHVlICkKLSAgICAgIHJldHVybiBudWxsOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgIENaU3RyaW5nIGtleSggaW5kZXggKTsKLSAgIE9iamVjdFZhbHVlczo6
Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZCgga2V5ICk7Ci0gICBpZiAoIGl0
ID09IHZhbHVlXy5tYXBfLT5lbmQoKSApCi0gICAgICByZXR1cm4gbnVsbDsKLSAgIHJldHVybiAo
Kml0KS5zZWNvbmQ7Ci0jZWxzZQotICAgVmFsdWUgKnZhbHVlID0gdmFsdWVfLmFycmF5Xy0+Zmlu
ZCggaW5kZXggKTsKLSAgIHJldHVybiB2YWx1ZSA/ICp2YWx1ZSA6IG51bGw7CiAjZW5kaWYKLX0K
LQogCi1jb25zdCBWYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggaW50IGluZGV4ICkgY29uc3QK
LXsKLSAgIEpTT05fQVNTRVJUKCBpbmRleCA+PSAwICk7Ci0gICByZXR1cm4gKCp0aGlzKVsgQXJy
YXlJbmRleChpbmRleCkgXTsKK1ZhbHVlJiBWYWx1ZTo6YXBwZW5kKGNvbnN0IFZhbHVlJiB2YWx1
ZSkgeyByZXR1cm4gKCp0aGlzKVtzaXplKCldID0gdmFsdWU7IH0KKworVmFsdWUmIFZhbHVlOjph
cHBlbmQoVmFsdWUmJiB2YWx1ZSkgeworICByZXR1cm4gKCp0aGlzKVtzaXplKCldID0gc3RkOjpt
b3ZlKHZhbHVlKTsKK30KKworVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBiZWdpbiwKKyAg
ICAgICAgICAgICAgICAgY2hhciBjb25zdCogZW5kLAorICAgICAgICAgICAgICAgICBWYWx1ZSBj
b25zdCYgZGVmYXVsdFZhbHVlKSBjb25zdCB7CisgIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQo
YmVnaW4sIGVuZCk7CisgIHJldHVybiAhZm91bmQgPyBkZWZhdWx0VmFsdWUgOiAqZm91bmQ7Cit9
CitWYWx1ZSBWYWx1ZTo6Z2V0KGNoYXIgY29uc3QqIGtleSwgVmFsdWUgY29uc3QmIGRlZmF1bHRW
YWx1ZSkgY29uc3QgeworICByZXR1cm4gZ2V0KGtleSwga2V5ICsgc3RybGVuKGtleSksIGRlZmF1
bHRWYWx1ZSk7Cit9CitWYWx1ZSBWYWx1ZTo6Z2V0KFN0cmluZyBjb25zdCYga2V5LCBWYWx1ZSBj
b25zdCYgZGVmYXVsdFZhbHVlKSBjb25zdCB7CisgIHJldHVybiBnZXQoa2V5LmRhdGEoKSwga2V5
LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgZGVmYXVsdFZhbHVlKTsKK30KKworYm9vbCBWYWx1ZTo6
cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIFZhbHVlKiBy
ZW1vdmVkKSB7CisgIGlmICh0eXBlKCkgIT0gb2JqZWN0VmFsdWUpIHsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KGJlZ2luLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oZW5kIC0gYmVnaW4pLAorICAgICAgICAgICAgICAgICAgICAgQ1pTdHJpbmc6Om5vRHVwbGlj
YXRpb24pOworICBhdXRvIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoYWN0dWFsS2V5KTsKKyAgaWYg
KGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGlmIChyZW1v
dmVkKQorICAgICpyZW1vdmVkID0gc3RkOjptb3ZlKGl0LT5zZWNvbmQpOworICB2YWx1ZV8ubWFw
Xy0+ZXJhc2UoaXQpOworICByZXR1cm4gdHJ1ZTsKK30KK2Jvb2wgVmFsdWU6OnJlbW92ZU1lbWJl
cihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVkKSB7CisgIHJldHVybiByZW1vdmVNZW1i
ZXIoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSwgcmVtb3ZlZCk7Cit9Citib29sIFZhbHVlOjpyZW1v
dmVNZW1iZXIoU3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKSB7CisgIHJldHVybiBy
ZW1vdmVNZW1iZXIoa2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSwgcmVtb3Zl
ZCk7Cit9Cit2b2lkIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5KSB7CisgIEpT
T05fQVNTRVJUX01FU1NBR0UodHlwZSgpID09IG51bGxWYWx1ZSB8fCB0eXBlKCkgPT0gb2JqZWN0
VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpyZW1vdmVNZW1i
ZXIoKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUiKTsKKyAgaWYgKHR5cGUoKSA9PSBudWxsVmFsdWUp
CisgICAgcmV0dXJuOworCisgIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHVuc2lnbmVkKHN0cmxl
bihrZXkpKSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOworICB2YWx1ZV8ubWFwXy0+ZXJhc2Uo
YWN0dWFsS2V5KTsKK30KK3ZvaWQgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBTdHJpbmcmIGtl
eSkgeyByZW1vdmVNZW1iZXIoa2V5LmNfc3RyKCkpOyB9CisKK2Jvb2wgVmFsdWU6OnJlbW92ZUlu
ZGV4KEFycmF5SW5kZXggaW5kZXgsIFZhbHVlKiByZW1vdmVkKSB7CisgIGlmICh0eXBlKCkgIT0g
YXJyYXlWYWx1ZSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDWlN0cmluZyBrZXkoaW5k
ZXgpOworICBhdXRvIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5KTsKKyAgaWYgKGl0ID09IHZh
bHVlXy5tYXBfLT5lbmQoKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAocmVtb3Zl
ZCkKKyAgICAqcmVtb3ZlZCA9IGl0LT5zZWNvbmQ7CisgIEFycmF5SW5kZXggb2xkU2l6ZSA9IHNp
emUoKTsKKyAgLy8gc2hpZnQgbGVmdCBhbGwgaXRlbXMgbGVmdCwgaW50byB0aGUgcGxhY2Ugb2Yg
dGhlICJyZW1vdmVkIgorICBmb3IgKEFycmF5SW5kZXggaSA9IGluZGV4OyBpIDwgKG9sZFNpemUg
LSAxKTsgKytpKSB7CisgICAgQ1pTdHJpbmcga2VleShpKTsKKyAgICAoKnZhbHVlXy5tYXBfKVtr
ZWV5XSA9ICgqdGhpcylbaSArIDFdOworICB9CisgIC8vIGVyYXNlIHRoZSBsYXN0IG9uZSAoImxl
ZnRvdmVyIikKKyAgQ1pTdHJpbmcga2V5TGFzdChvbGRTaXplIC0gMSk7CisgIGF1dG8gaXRMYXN0
ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5TGFzdCk7CisgIHZhbHVlXy5tYXBfLT5lcmFzZShpdExh
c3QpOworICByZXR1cm4gdHJ1ZTsKIH0KIAotCi1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSgg
Y29uc3QgY2hhciAqa2V5ICkKLXsKLSAgIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKCBrZXksIGZh
bHNlICk7Ci19Ci0KLQotVmFsdWUgJgotVmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoIGNvbnN0IGNo
YXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1N0YXRpYyApCi17Ci0g
ICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gb2JqZWN0VmFs
dWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAgICp0aGlzID0gVmFsdWUo
IG9iamVjdFZhbHVlICk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAg
Q1pTdHJpbmcgYWN0dWFsS2V5KCBrZXksIGlzU3RhdGljID8gQ1pTdHJpbmc6Om5vRHVwbGljYXRp
b24gCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBDWlN0cmluZzo6ZHVw
bGljYXRlT25Db3B5ICk7Ci0gICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1h
cF8tPmxvd2VyX2JvdW5kKCBhY3R1YWxLZXkgKTsKLSAgIGlmICggaXQgIT0gdmFsdWVfLm1hcF8t
PmVuZCgpICAmJiAgKCppdCkuZmlyc3QgPT0gYWN0dWFsS2V5ICkKLSAgICAgIHJldHVybiAoKml0
KS5zZWNvbmQ7Ci0KLSAgIE9iamVjdFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFsdWUoIGFj
dHVhbEtleSwgbnVsbCApOwotICAgaXQgPSB2YWx1ZV8ubWFwXy0+aW5zZXJ0KCBpdCwgZGVmYXVs
dFZhbHVlICk7Ci0gICBWYWx1ZSAmdmFsdWUgPSAoKml0KS5zZWNvbmQ7Ci0gICByZXR1cm4gdmFs
dWU7Ci0jZWxzZQotICAgcmV0dXJuIHZhbHVlXy5tYXBfLT5yZXNvbHZlUmVmZXJlbmNlKCBrZXks
IGlzU3RhdGljICk7Ci0jZW5kaWYKLX0KLQotCi1WYWx1ZSAKLVZhbHVlOjpnZXQoIEFycmF5SW5k
ZXggaW5kZXgsIAotICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0
Ci17Ci0gICBjb25zdCBWYWx1ZSAqdmFsdWUgPSAmKCgqdGhpcylbaW5kZXhdKTsKLSAgIHJldHVy
biB2YWx1ZSA9PSAmbnVsbCA/IGRlZmF1bHRWYWx1ZSA6ICp2YWx1ZTsKLX0KLQotCi1ib29sIAot
VmFsdWU6OmlzVmFsaWRJbmRleCggQXJyYXlJbmRleCBpbmRleCApIGNvbnN0Ci17Ci0gICByZXR1
cm4gaW5kZXggPCBzaXplKCk7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1ZhbHVlIFZhbHVlOjpn
ZXQoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXksCisgICAgICAgICAgICAgICAgIGNvbnN0
IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgcmV0dXJuIGdldChrZXkuY19zdHIoKSwg
a2V5LmVuZF9jX3N0cigpLCBkZWZhdWx0VmFsdWUpOwogfQotCi0KLQotY29uc3QgVmFsdWUgJgot
VmFsdWU6Om9wZXJhdG9yW10oIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0Ci17Ci0gICBKU09OX0FT
U0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gb2JqZWN0VmFsdWUgKTsKLSAg
IGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAgIHJldHVybiBudWxsOwotI2lmbmRlZiBK
U09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIENaU3RyaW5nIGFjdHVhbEtleSgga2V5LCBD
WlN0cmluZzo6bm9EdXBsaWNhdGlvbiApOwotICAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRv
ciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKCBhY3R1YWxLZXkgKTsKLSAgIGlmICggaXQgPT0gdmFs
dWVfLm1hcF8tPmVuZCgpICkKLSAgICAgIHJldHVybiBudWxsOwotICAgcmV0dXJuICgqaXQpLnNl
Y29uZDsKLSNlbHNlCi0gICBjb25zdCBWYWx1ZSAqdmFsdWUgPSB2YWx1ZV8ubWFwXy0+ZmluZCgg
a2V5ICk7Ci0gICByZXR1cm4gdmFsdWUgPyAqdmFsdWUgOiBudWxsOwogI2VuZGlmCi19CiAKLQot
VmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKQotewot
ICAgcmV0dXJuICgqdGhpcylbIGtleS5jX3N0cigpIF07Ci19Ci0KLQotY29uc3QgVmFsdWUgJgot
VmFsdWU6Om9wZXJhdG9yW10oIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKSBjb25zdAotewotICAg
cmV0dXJuICgqdGhpcylbIGtleS5jX3N0cigpIF07Citib29sIFZhbHVlOjppc01lbWJlcihjaGFy
IGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCogZW5kKSBjb25zdCB7CisgIFZhbHVlIGNvbnN0KiB2
YWx1ZSA9IGZpbmQoYmVnaW4sIGVuZCk7CisgIHJldHVybiBudWxscHRyICE9IHZhbHVlOwogfQot
Ci1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggY29uc3QgU3RhdGljU3RyaW5nICZrZXkgKQot
ewotICAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2UoIGtleSwgdHJ1ZSApOworYm9vbCBWYWx1ZTo6
aXNNZW1iZXIoY2hhciBjb25zdCoga2V5KSBjb25zdCB7CisgIHJldHVybiBpc01lbWJlcihrZXks
IGtleSArIHN0cmxlbihrZXkpKTsKIH0KLQotCi0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1
ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXkgKQot
ewotICAgcmV0dXJuICgqdGhpcylbIGtleS5jX3N0cigpIF07Citib29sIFZhbHVlOjppc01lbWJl
cihTdHJpbmcgY29uc3QmIGtleSkgY29uc3QgeworICByZXR1cm4gaXNNZW1iZXIoa2V5LmRhdGEo
KSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7CiB9CiAKLQotY29uc3QgVmFsdWUgJgotVmFs
dWU6Om9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICkgY29uc3QKLXsK
LSAgIHJldHVybiAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOwotfQotIyBlbmRpZgotCi0KLVZhbHVl
ICYKLVZhbHVlOjphcHBlbmQoIGNvbnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICByZXR1cm4gKCp0
aGlzKVtzaXplKCldID0gdmFsdWU7Ci19Ci0KLQotVmFsdWUgCi1WYWx1ZTo6Z2V0KCBjb25zdCBj
aGFyICprZXksIAotICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0
Ci17Ci0gICBjb25zdCBWYWx1ZSAqdmFsdWUgPSAmKCgqdGhpcylba2V5XSk7Ci0gICByZXR1cm4g
dmFsdWUgPT0gJm51bGwgPyBkZWZhdWx0VmFsdWUgOiAqdmFsdWU7Ci19Ci0KLQotVmFsdWUgCi1W
YWx1ZTo6Z2V0KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5LAotICAgICAgICAgICAgY29uc3QgVmFs
dWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0Ci17Ci0gICByZXR1cm4gZ2V0KCBrZXkuY19zdHIoKSwg
ZGVmYXVsdFZhbHVlICk7Ci19Ci0KLVZhbHVlCi1WYWx1ZTo6cmVtb3ZlTWVtYmVyKCBjb25zdCBj
aGFyKiBrZXkgKQotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5
cGVfID09IG9iamVjdFZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAg
ICByZXR1cm4gbnVsbDsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBD
WlN0cmluZyBhY3R1YWxLZXkoIGtleSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24gKTsKLSAgIE9i
amVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZCggYWN0dWFsS2V5ICk7
Ci0gICBpZiAoIGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSApCi0gICAgICByZXR1cm4gbnVsbDsK
LSAgIFZhbHVlIG9sZChpdC0+c2Vjb25kKTsKLSAgIHZhbHVlXy5tYXBfLT5lcmFzZShpdCk7Ci0g
ICByZXR1cm4gb2xkOwotI2Vsc2UKLSAgIFZhbHVlICp2YWx1ZSA9IHZhbHVlXy5tYXBfLT5maW5k
KCBrZXkgKTsKLSAgIGlmICh2YWx1ZSl7Ci0gICAgICBWYWx1ZSBvbGQoKnZhbHVlKTsKLSAgICAg
IHZhbHVlXy5tYXBfLnJlbW92ZSgga2V5ICk7Ci0gICAgICByZXR1cm4gb2xkOwotICAgfSBlbHNl
IHsKLSAgICAgIHJldHVybiBudWxsOwotICAgfQotI2VuZGlmCi19Ci0KLVZhbHVlCi1WYWx1ZTo6
cmVtb3ZlTWVtYmVyKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLXsKLSAgIHJldHVybiByZW1v
dmVNZW1iZXIoIGtleS5jX3N0cigpICk7Ci19Ci0KLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLVZh
bHVlIAotVmFsdWU6OmdldCggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXksCi0gICAgICAg
ICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3QKLXsKLSAgIHJldHVybiBnZXQo
IGtleS5jX3N0cigpLCBkZWZhdWx0VmFsdWUgKTsKLX0KLSMgZW5kaWYKLQotYm9vbCAKLVZhbHVl
Ojppc01lbWJlciggY29uc3QgY2hhciAqa2V5ICkgY29uc3QKLXsKLSAgIGNvbnN0IFZhbHVlICp2
YWx1ZSA9ICYoKCp0aGlzKVtrZXldKTsKLSAgIHJldHVybiB2YWx1ZSAhPSAmbnVsbDsKLX0KLQot
Ci1ib29sIAotVmFsdWU6OmlzTWVtYmVyKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3QK
LXsKLSAgIHJldHVybiBpc01lbWJlcigga2V5LmNfc3RyKCkgKTsKLX0KLQotCi0jIGlmZGVmIEpT
T05fVVNFX0NQUFRMCi1ib29sIAotVmFsdWU6OmlzTWVtYmVyKCBjb25zdCBDcHBUTDo6Q29uc3RT
dHJpbmcgJmtleSApIGNvbnN0Ci17Ci0gICByZXR1cm4gaXNNZW1iZXIoIGtleS5jX3N0cigpICk7
CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK2Jvb2wgVmFsdWU6OmlzTWVtYmVyKGNvbnN0IENwcFRM
OjpDb25zdFN0cmluZyYga2V5KSBjb25zdCB7CisgIHJldHVybiBpc01lbWJlcihrZXkuY19zdHIo
KSwga2V5LmVuZF9jX3N0cigpKTsKIH0KICNlbmRpZgogCi1WYWx1ZTo6TWVtYmVycyAKLVZhbHVl
OjpnZXRNZW1iZXJOYW1lcygpIGNvbnN0Ci17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVs
bFZhbHVlICB8fCAgdHlwZV8gPT0gb2JqZWN0VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVs
bFZhbHVlICkKLSAgICAgICByZXR1cm4gVmFsdWU6Ok1lbWJlcnMoKTsKLSAgIE1lbWJlcnMgbWVt
YmVyczsKLSAgIG1lbWJlcnMucmVzZXJ2ZSggdmFsdWVfLm1hcF8tPnNpemUoKSApOwotI2lmbmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRl
cmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+YmVnaW4oKTsKLSAgIE9iamVjdFZhbHVlczo6Y29uc3Rf
aXRlcmF0b3IgaXRFbmQgPSB2YWx1ZV8ubWFwXy0+ZW5kKCk7Ci0gICBmb3IgKCA7IGl0ICE9IGl0
RW5kOyArK2l0ICkKLSAgICAgIG1lbWJlcnMucHVzaF9iYWNrKCBzdGQ6OnN0cmluZyggKCppdCku
Zmlyc3QuY19zdHIoKSApICk7Ci0jZWxzZQotICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JT
dGF0ZSBpdDsKLSAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgaXRFbmQ7Ci0gICB2
YWx1ZV8ubWFwXy0+bWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICB2YWx1ZV8ubWFwXy0+bWFr
ZUVuZEl0ZXJhdG9yKCBpdEVuZCApOwotICAgZm9yICggOyAhVmFsdWVJbnRlcm5hbE1hcDo6ZXF1
YWxzKCBpdCwgaXRFbmQgKTsgVmFsdWVJbnRlcm5hbE1hcDo6aW5jcmVtZW50KGl0KSApCi0gICAg
ICBtZW1iZXJzLnB1c2hfYmFjayggc3RkOjpzdHJpbmcoIFZhbHVlSW50ZXJuYWxNYXA6OmtleSgg
aXQgKSApICk7Ci0jZW5kaWYKLSAgIHJldHVybiBtZW1iZXJzOworVmFsdWU6Ok1lbWJlcnMgVmFs
dWU6OmdldE1lbWJlck5hbWVzKCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAg
ICAgdHlwZSgpID09IG51bGxWYWx1ZSB8fCB0eXBlKCkgPT0gb2JqZWN0VmFsdWUsCisgICAgICAi
aW4gSnNvbjo6VmFsdWU6OmdldE1lbWJlck5hbWVzKCksIHZhbHVlIG11c3QgYmUgb2JqZWN0VmFs
dWUiKTsKKyAgaWYgKHR5cGUoKSA9PSBudWxsVmFsdWUpCisgICAgcmV0dXJuIFZhbHVlOjpNZW1i
ZXJzKCk7CisgIE1lbWJlcnMgbWVtYmVyczsKKyAgbWVtYmVycy5yZXNlcnZlKHZhbHVlXy5tYXBf
LT5zaXplKCkpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1h
cF8tPmJlZ2luKCk7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1
ZV8ubWFwXy0+ZW5kKCk7CisgIGZvciAoOyBpdCAhPSBpdEVuZDsgKytpdCkgeworICAgIG1lbWJl
cnMucHVzaF9iYWNrKFN0cmluZygoKml0KS5maXJzdC5kYXRhKCksICgqaXQpLmZpcnN0Lmxlbmd0
aCgpKSk7CisgIH0KKyAgcmV0dXJuIG1lbWJlcnM7CiB9CiAvLwogLy8jIGlmZGVmIEpTT05fVVNF
X0NQUFRMCi0vL0VudW1NZW1iZXJOYW1lcwotLy9WYWx1ZTo6ZW51bU1lbWJlck5hbWVzKCkgY29u
c3QKKy8vIEVudW1NZW1iZXJOYW1lcworLy8gVmFsdWU6OmVudW1NZW1iZXJOYW1lcygpIGNvbnN0
CiAvL3sKLS8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RWYWx1ZSApCisvLyAgIGlmICggdHlwZSgp
ID09IG9iamVjdFZhbHVlICkKIC8vICAgewogLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06OmFu
eSggIENwcFRMOjpFbnVtOjp0cmFuc2Zvcm0oCiAvLyAgICAgICAgIENwcFRMOjpFbnVtOjprZXlz
KCAqKHZhbHVlXy5tYXBfKSwgQ3BwVEw6OlR5cGU8Y29uc3QgQ1pTdHJpbmcgJj4oKSApLApAQCAt
MTM1NSwxMSArMTMwNCwxMSBAQCBWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMoKSBjb25zdAogLy99CiAv
LwogLy8KLS8vRW51bVZhbHVlcyAKLS8vVmFsdWU6OmVudW1WYWx1ZXMoKSBjb25zdAorLy8gRW51
bVZhbHVlcworLy8gVmFsdWU6OmVudW1WYWx1ZXMoKSBjb25zdAogLy97Ci0vLyAgIGlmICggdHlw
ZV8gPT0gb2JqZWN0VmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICkKLS8vICAgICAgcmV0
dXJuIENwcFRMOjpFbnVtOjphbnlWYWx1ZXMoICoodmFsdWVfLm1hcF8pLCAKKy8vICAgaWYgKCB0
eXBlKCkgPT0gb2JqZWN0VmFsdWUgIHx8ICB0eXBlKCkgPT0gYXJyYXlWYWx1ZSApCisvLyAgICAg
IHJldHVybiBDcHBUTDo6RW51bTo6YW55VmFsdWVzKCAqKHZhbHVlXy5tYXBfKSwKIC8vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENwcFRMOjpUeXBlPGNvbnN0IFZhbHVlICY+
KCkgKTsKIC8vICAgcmV0dXJuIEVudW1WYWx1ZXMoKTsKIC8vfQpAQCAtMTM3MSw1NTAgKzEzMjAs
Mzg4IEBAIHN0YXRpYyBib29sIElzSW50ZWdyYWwoZG91YmxlIGQpIHsKICAgcmV0dXJuIG1vZGYo
ZCwgJmludGVncmFsX3BhcnQpID09IDAuMDsKIH0KIAorYm9vbCBWYWx1ZTo6aXNOdWxsKCkgY29u
c3QgeyByZXR1cm4gdHlwZSgpID09IG51bGxWYWx1ZTsgfQogCi1ib29sCi1WYWx1ZTo6aXNOdWxs
KCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXyA9PSBudWxsVmFsdWU7Ci19Ci0KLQotYm9vbCAK
LVZhbHVlOjppc0Jvb2woKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09IGJvb2xlYW5WYWx1
ZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzSW50KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5
cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmludF8g
Pj0gbWluSW50ICAmJiAgdmFsdWVfLmludF8gPD0gbWF4SW50OwotICAgY2FzZSB1aW50VmFsdWU6
Ci0gICAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQobWF4SW50KTsKLSAgIGNhc2UgcmVh
bFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBtaW5JbnQgJiYKLSAgICAgICAg
ICAgICB2YWx1ZV8ucmVhbF8gPD0gbWF4SW50ICYmCi0gICAgICAgICAgICAgSXNJbnRlZ3JhbCh2
YWx1ZV8ucmVhbF8pOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJu
IGZhbHNlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNVSW50KCkgY29uc3QKLXsKLSAgIHN3aXRj
aCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVf
LmludF8gPj0gMCAmJiBMYXJnZXN0VUludCh2YWx1ZV8uaW50XykgPD0gTGFyZ2VzdFVJbnQobWF4
VUludCk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0g
bWF4VUludDsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+
PSAwICYmCi0gICAgICAgICAgICAgdmFsdWVfLnJlYWxfIDw9IG1heFVJbnQgJiYKLSAgICAgICAg
ICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7
Ci0gICB9Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6aXNJbnQ2NCgpIGNv
bnN0Ci17Ci0jIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICBzd2l0Y2ggKCB0eXBlXyAp
Ci0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICByZXR1cm4gdHJ1ZTsKLSAgIGNhc2UgdWlu
dFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50NjQobWF4SW50NjQpOwot
ICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICAvLyBOb3RlIHRoYXQgbWF4SW50NjQgKD0gMl42MyAt
IDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQotICAgICAgLy8gZG91YmxlLCBz
byBkb3VibGUobWF4SW50NjQpIHdpbGwgYmUgcm91bmRlZCB1cCB0byAyXjYzLiBUaGVyZWZvcmUg
d2UKLSAgICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0
aGUgbGltaXQuCi0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IGRvdWJsZShtaW5JbnQ2NCkg
JiYKLSAgICAgICAgICAgICB2YWx1ZV8ucmVhbF8gPCBkb3VibGUobWF4SW50NjQpICYmCi0gICAg
ICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOwotICAgZGVmYXVsdDoKLSAgICAgIGJy
ZWFrOwotICAgfQotIyBlbmRpZiAgLy8gSlNPTl9IQVNfSU5UNjQKLSAgIHJldHVybiBmYWxzZTsK
LX0KLQotYm9vbCAKLVZhbHVlOjppc1VJbnQ2NCgpIGNvbnN0Ci17Ci0jIGlmIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCi0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVl
OgotICAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMDsKLSAgIGNhc2UgdWludFZhbHVlOgotICAg
ICAgcmV0dXJuIHRydWU7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIC8vIE5vdGUgdGhhdCBt
YXhVSW50NjQgKD0gMl42NCAtIDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQot
ICAgICAgLy8gZG91YmxlLCBzbyBkb3VibGUobWF4VUludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAg
dG8gMl42NC4gVGhlcmVmb3JlIHdlCi0gICAgICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBz
dHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0LgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+
PSAwICYmCi0gICAgICAgICAgICAgdmFsdWVfLnJlYWxfIDwgbWF4VUludDY0QXNEb3VibGUgJiYK
LSAgICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gICBkZWZhdWx0OgotICAg
ICAgYnJlYWs7Ci0gICB9Ci0jIGVuZGlmICAvLyBKU09OX0hBU19JTlQ2NAotICAgcmV0dXJuIGZh
bHNlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNJbnRlZ3JhbCgpIGNvbnN0Ci17Citib29sIFZh
bHVlOjppc0Jvb2woKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gYm9vbGVhblZhbHVlOyB9CisK
K2Jvb2wgVmFsdWU6OmlzSW50KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNl
IGludFZhbHVlOgorI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgICAgcmV0dXJuIHZhbHVl
Xy5pbnRfID49IG1pbkludCAmJiB2YWx1ZV8uaW50XyA8PSBtYXhJbnQ7CisjZWxzZQorICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
dWludF8gPD0gVUludChtYXhJbnQpOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLnJlYWxfID49IG1pbkludCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4SW50ICYmCisgICAgICAg
ICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAg
fQorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6OmlzVUludCgpIGNvbnN0IHsKKyAg
c3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBpbnRWYWx1ZToKICNpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQotICByZXR1cm4gaXNJbnQ2NCgpIHx8IGlzVUludDY0KCk7CisgICAgcmV0dXJuIHZh
bHVlXy5pbnRfID49IDAgJiYgTGFyZ2VzdFVJbnQodmFsdWVfLmludF8pIDw9IExhcmdlc3RVSW50
KG1heFVJbnQpOwogI2Vsc2UKLSAgcmV0dXJuIGlzSW50KCkgfHwgaXNVSW50KCk7CisgICAgcmV0
dXJuIHZhbHVlXy5pbnRfID49IDA7CiAjZW5kaWYKKyAgY2FzZSB1aW50VmFsdWU6CisjaWYgZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IG1heFVJbnQ7
CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgIGNhc2UgcmVhbFZhbHVlOgorICAg
IHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAmJgor
ICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJl
YWs7CisgIH0KKyAgcmV0dXJuIGZhbHNlOwogfQogCi0KLWJvb2wgCi1WYWx1ZTo6aXNEb3VibGUo
KSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09IHJlYWxWYWx1ZSB8fCBpc0ludGVncmFsKCk7
Citib29sIFZhbHVlOjppc0ludDY0KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHRy
dWU7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludDY0
KG1heEludDY0KTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgLy8gTm90ZSB0aGF0IG1heEludDY0
ICg9IDJeNjMgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKKyAgICAvLyBk
b3VibGUsIHNvIGRvdWJsZShtYXhJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjMuIFRo
ZXJlZm9yZSB3ZQorICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3Mg
dGhhbiB0aGUgbGltaXQuCisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBkb3VibGUobWluSW50
NjQpICYmCisgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IGRvdWJsZShtYXhJbnQ2NCkgJiYgSXNJ
bnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisjZW5k
aWYgLy8gSlNPTl9IQVNfSU5UNjQKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjpp
c1VJbnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBzd2l0Y2gg
KHR5cGUoKSkgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAw
OworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdHJ1ZTsKKyAgY2FzZSByZWFsVmFsdWU6
CisgICAgLy8gTm90ZSB0aGF0IG1heFVJbnQ2NCAoPSAyXjY0IC0gMSkgaXMgbm90IGV4YWN0bHkg
cmVwcmVzZW50YWJsZSBhcyBhCisgICAgLy8gZG91YmxlLCBzbyBkb3VibGUobWF4VUludDY0KSB3
aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42NC4gVGhlcmVmb3JlIHdlCisgICAgLy8gcmVxdWlyZSB0
aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KKyAgICByZXR1cm4g
dmFsdWVfLnJlYWxfID49IDAgJiYgdmFsdWVfLnJlYWxfIDwgbWF4VUludDY0QXNEb3VibGUgJiYK
KyAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJy
ZWFrOworICB9CisjZW5kaWYgLy8gSlNPTl9IQVNfSU5UNjQKKyAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFZhbHVlOjppc0ludGVncmFsKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgewor
ICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdHJ1ZTsKKyAg
Y2FzZSByZWFsVmFsdWU6CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgICAvLyBOb3Rl
IHRoYXQgbWF4VUludDY0ICg9IDJeNjQgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxl
IGFzIGEKKyAgICAvLyBkb3VibGUsIHNvIGRvdWJsZShtYXhVSW50NjQpIHdpbGwgYmUgcm91bmRl
ZCB1cCB0byAyXjY0LiBUaGVyZWZvcmUgd2UKKyAgICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBi
ZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0LgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8g
Pj0gZG91YmxlKG1pbkludDY0KSAmJgorICAgICAgICAgICB2YWx1ZV8ucmVhbF8gPCBtYXhVSW50
NjRBc0RvdWJsZSAmJiBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisjZWxzZQorICAgIHJldHVy
biB2YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYmIHZhbHVlXy5yZWFsXyA8PSBtYXhVSW50ICYmCisg
ICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyNlbmRpZiAvLyBKU09OX0hBU19J
TlQ2NAorICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBmYWxzZTsKIH0KIAot
Ci1ib29sIAotVmFsdWU6OmlzTnVtZXJpYygpIGNvbnN0Ci17Ci0gICByZXR1cm4gaXNJbnRlZ3Jh
bCgpIHx8IGlzRG91YmxlKCk7Citib29sIFZhbHVlOjppc0RvdWJsZSgpIGNvbnN0IHsKKyAgcmV0
dXJuIHR5cGUoKSA9PSBpbnRWYWx1ZSB8fCB0eXBlKCkgPT0gdWludFZhbHVlIHx8IHR5cGUoKSA9
PSByZWFsVmFsdWU7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzTnVtZXJpYygpIGNvbnN0IHsgcmV0dXJu
IGlzRG91YmxlKCk7IH0KIAotYm9vbCAKLVZhbHVlOjppc1N0cmluZygpIGNvbnN0Ci17Ci0gICBy
ZXR1cm4gdHlwZV8gPT0gc3RyaW5nVmFsdWU7Ci19Citib29sIFZhbHVlOjppc1N0cmluZygpIGNv
bnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBzdHJpbmdWYWx1ZTsgfQogCitib29sIFZhbHVlOjppc0Fy
cmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IGFycmF5VmFsdWU7IH0KIAotYm9vbCAKLVZh
bHVlOjppc0FycmF5KCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVlOwot
fQorYm9vbCBWYWx1ZTo6aXNPYmplY3QoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gb2JqZWN0
VmFsdWU7IH0KKworVmFsdWU6OkNvbW1lbnRzOjpDb21tZW50cyhjb25zdCBDb21tZW50cyYgdGhh
dCkKKyAgICA6IHB0cl97Y2xvbmVVbmlxdWUodGhhdC5wdHJfKX0ge30KIAorVmFsdWU6OkNvbW1l
bnRzOjpDb21tZW50cyhDb21tZW50cyYmIHRoYXQpIDogcHRyX3tzdGQ6Om1vdmUodGhhdC5wdHJf
KX0ge30KIAotYm9vbCAKLVZhbHVlOjppc09iamVjdCgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlw
ZV8gPT0gb2JqZWN0VmFsdWU7CitWYWx1ZTo6Q29tbWVudHMmIFZhbHVlOjpDb21tZW50czo6b3Bl
cmF0b3I9KGNvbnN0IENvbW1lbnRzJiB0aGF0KSB7CisgIHB0cl8gPSBjbG9uZVVuaXF1ZSh0aGF0
LnB0cl8pOworICByZXR1cm4gKnRoaXM7CiB9CiAKK1ZhbHVlOjpDb21tZW50cyYgVmFsdWU6OkNv
bW1lbnRzOjpvcGVyYXRvcj0oQ29tbWVudHMmJiB0aGF0KSB7CisgIHB0cl8gPSBzdGQ6Om1vdmUo
dGhhdC5wdHJfKTsKKyAgcmV0dXJuICp0aGlzOworfQogCi12b2lkIAotVmFsdWU6OnNldENvbW1l
bnQoIGNvbnN0IGNoYXIgKmNvbW1lbnQsCi0gICAgICAgICAgICAgICAgICAgQ29tbWVudFBsYWNl
bWVudCBwbGFjZW1lbnQgKQotewotICAgaWYgKCAhY29tbWVudHNfICkKLSAgICAgIGNvbW1lbnRz
XyA9IG5ldyBDb21tZW50SW5mb1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOwotICAgY29tbWVu
dHNfW3BsYWNlbWVudF0uc2V0Q29tbWVudCggY29tbWVudCApOworYm9vbCBWYWx1ZTo6Q29tbWVu
dHM6OmhhcyhDb21tZW50UGxhY2VtZW50IHNsb3QpIGNvbnN0IHsKKyAgcmV0dXJuIHB0cl8gJiYg
ISgqcHRyXylbc2xvdF0uZW1wdHkoKTsKIH0KIAorU3RyaW5nIFZhbHVlOjpDb21tZW50czo6Z2V0
KENvbW1lbnRQbGFjZW1lbnQgc2xvdCkgY29uc3QgeworICBpZiAoIXB0cl8pCisgICAgcmV0dXJu
IHt9OworICByZXR1cm4gKCpwdHJfKVtzbG90XTsKK30KIAotdm9pZCAKLVZhbHVlOjpzZXRDb21t
ZW50KCBjb25zdCBzdGQ6OnN0cmluZyAmY29tbWVudCwKLSAgICAgICAgICAgICAgICAgICBDb21t
ZW50UGxhY2VtZW50IHBsYWNlbWVudCApCi17Ci0gICBzZXRDb21tZW50KCBjb21tZW50LmNfc3Ry
KCksIHBsYWNlbWVudCApOwordm9pZCBWYWx1ZTo6Q29tbWVudHM6OnNldChDb21tZW50UGxhY2Vt
ZW50IHNsb3QsIFN0cmluZyBjb21tZW50KSB7CisgIGlmICghcHRyXykgeworICAgIHB0cl8gPSBz
dGQ6OnVuaXF1ZV9wdHI8QXJyYXk+KG5ldyBBcnJheSgpKTsKKyAgfQorICAoKnB0cl8pW3Nsb3Rd
ID0gc3RkOjptb3ZlKGNvbW1lbnQpOwogfQogCit2b2lkIFZhbHVlOjpzZXRDb21tZW50KFN0cmlu
ZyBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBpZiAoIWNvbW1lbnQu
ZW1wdHkoKSAmJiAoY29tbWVudC5iYWNrKCkgPT0gJ1xuJykpIHsKKyAgICAvLyBBbHdheXMgZGlz
Y2FyZCB0cmFpbGluZyBuZXdsaW5lLCB0byBhaWQgaW5kZW50YXRpb24uCisgICAgY29tbWVudC5w
b3BfYmFjaygpOworICB9CisgIEpTT05fQVNTRVJUKCFjb21tZW50LmVtcHR5KCkpOworICBKU09O
X0FTU0VSVF9NRVNTQUdFKAorICAgICAgY29tbWVudFswXSA9PSAnXDAnIHx8IGNvbW1lbnRbMF0g
PT0gJy8nLAorICAgICAgImluIEpzb246OlZhbHVlOjpzZXRDb21tZW50KCk6IENvbW1lbnRzIG11
c3Qgc3RhcnQgd2l0aCAvIik7CisgIGNvbW1lbnRzXy5zZXQocGxhY2VtZW50LCBzdGQ6Om1vdmUo
Y29tbWVudCkpOworfQogCi1ib29sIAotVmFsdWU6Omhhc0NvbW1lbnQoIENvbW1lbnRQbGFjZW1l
bnQgcGxhY2VtZW50ICkgY29uc3QKLXsKLSAgIHJldHVybiBjb21tZW50c18gIT0gMCAgJiYgIGNv
bW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfICE9IDA7Citib29sIFZhbHVlOjpoYXNDb21tZW50
KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdCB7CisgIHJldHVybiBjb21tZW50c18u
aGFzKHBsYWNlbWVudCk7CiB9CiAKLXN0ZDo6c3RyaW5nIAotVmFsdWU6OmdldENvbW1lbnQoIENv
bW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29uc3QKLXsKLSAgIGlmICggaGFzQ29tbWVudChw
bGFjZW1lbnQpICkKLSAgICAgIHJldHVybiBjb21tZW50c19bcGxhY2VtZW50XS5jb21tZW50XzsK
LSAgIHJldHVybiAiIjsKK1N0cmluZyBWYWx1ZTo6Z2V0Q29tbWVudChDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCkgY29uc3QgeworICByZXR1cm4gY29tbWVudHNfLmdldChwbGFjZW1lbnQpOwog
fQogCit2b2lkIFZhbHVlOjpzZXRPZmZzZXRTdGFydChwdHJkaWZmX3Qgc3RhcnQpIHsgc3RhcnRf
ID0gc3RhcnQ7IH0KIAotc3RkOjpzdHJpbmcgCi1WYWx1ZTo6dG9TdHlsZWRTdHJpbmcoKSBjb25z
dAotewotICAgU3R5bGVkV3JpdGVyIHdyaXRlcjsKLSAgIHJldHVybiB3cml0ZXIud3JpdGUoICp0
aGlzICk7Ci19Cit2b2lkIFZhbHVlOjpzZXRPZmZzZXRMaW1pdChwdHJkaWZmX3QgbGltaXQpIHsg
bGltaXRfID0gbGltaXQ7IH0KIAorcHRyZGlmZl90IFZhbHVlOjpnZXRPZmZzZXRTdGFydCgpIGNv
bnN0IHsgcmV0dXJuIHN0YXJ0XzsgfQogCi1WYWx1ZTo6Y29uc3RfaXRlcmF0b3IgCi1WYWx1ZTo6
YmVnaW4oKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotI2lmZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgaWYgKCB2
YWx1ZV8uYXJyYXlfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6SXRl
cmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5hcnJheV8tPm1ha2VCZWdpbkl0ZXJhdG9y
KCBpdCApOwotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQot
ICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFw
XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0
OwotICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgICAg
ICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0j
ZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlm
ICggdmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCB2YWx1ZV8u
bWFwXy0+YmVnaW4oKSApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAg
ICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBjb25zdF9pdGVyYXRvcigpOwotfQotCi1WYWx1ZTo6
Y29uc3RfaXRlcmF0b3IgCi1WYWx1ZTo6ZW5kKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVf
ICkKLSAgIHsKLSNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJy
YXlWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLmFycmF5XyApCi0gICAgICB7Ci0gICAgICAgICBW
YWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJy
YXlfLT5tYWtlRW5kSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAgICByZXR1cm4gY29uc3RfaXRlcmF0
b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0g
ICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxN
YXA6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8ubWFwXy0+bWFrZUVuZEl0ZXJh
dG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAg
fQotICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmpl
Y3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGNvbnN0
X2l0ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+ZW5kKCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0g
ICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gY29uc3RfaXRlcmF0b3Io
KTsKLX0KLQotCi1WYWx1ZTo6aXRlcmF0b3IgCi1WYWx1ZTo6YmVnaW4oKQotewotICAgc3dpdGNo
ICggdHlwZV8gKQotICAgewotI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAg
Y2FzZSBhcnJheVZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8uYXJyYXlfICkKLSAgICAgIHsKLSAg
ICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZh
bHVlXy5hcnJheV8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0
ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVl
OgotICAgICAgaWYgKCB2YWx1ZV8ubWFwXyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVy
bmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VCZWdp
bkl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCBpdCApOwotICAgICAg
fQotICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmpl
Y3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGl0ZXJh
dG9yKCB2YWx1ZV8ubWFwXy0+YmVnaW4oKSApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRl
ZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBpdGVyYXRvcigpOwotfQotCi1W
YWx1ZTo6aXRlcmF0b3IgCi1WYWx1ZTo6ZW5kKCkKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAg
IHsKLSNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1
ZToKLSAgICAgIGlmICggdmFsdWVfLmFycmF5XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUlu
dGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlfLT5t
YWtlRW5kSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAgICByZXR1cm4gaXRlcmF0b3IoIGl0ICk7Ci0g
ICAgICB9Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZh
bHVlXy5tYXBfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9y
U3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8ubWFwXy0+bWFrZUVuZEl0ZXJhdG9yKCBpdCApOwot
ICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0j
ZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlm
ICggdmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+
ZW5kKCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7
Ci0gICB9Ci0gICByZXR1cm4gaXRlcmF0b3IoKTsKLX0KK3B0cmRpZmZfdCBWYWx1ZTo6Z2V0T2Zm
c2V0TGltaXQoKSBjb25zdCB7IHJldHVybiBsaW1pdF87IH0KIAorU3RyaW5nIFZhbHVlOjp0b1N0
eWxlZFN0cmluZygpIGNvbnN0IHsKKyAgU3RyZWFtV3JpdGVyQnVpbGRlciBidWlsZGVyOwogCi0v
LyBjbGFzcyBQYXRoQXJndW1lbnQKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICBTdHJpbmcgb3V0ID0gdGhpcy0+
aGFzQ29tbWVudChjb21tZW50QmVmb3JlKSA/ICJcbiIgOiAiIjsKKyAgb3V0ICs9IEpzb246Ondy
aXRlU3RyaW5nKGJ1aWxkZXIsICp0aGlzKTsKKyAgb3V0ICs9ICdcbic7CiAKLVBhdGhBcmd1bWVu
dDo6UGF0aEFyZ3VtZW50KCkKLSAgIDoga2V5XygpCi0gICAsIGluZGV4XygpCi0gICAsIGtpbmRf
KCBraW5kTm9uZSApCi17CisgIHJldHVybiBvdXQ7CiB9CiAKK1ZhbHVlOjpjb25zdF9pdGVyYXRv
ciBWYWx1ZTo6YmVnaW4oKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgYXJy
YXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAg
ICByZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmJlZ2luKCkpOworICAgIGJyZWFr
OworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiB7fTsKK30KIAotUGF0aEFy
Z3VtZW50OjpQYXRoQXJndW1lbnQoIEFycmF5SW5kZXggaW5kZXggKQotICAgOiBrZXlfKCkKLSAg
ICwgaW5kZXhfKCBpbmRleCApCi0gICAsIGtpbmRfKCBraW5kSW5kZXggKQoteworVmFsdWU6OmNv
bnN0X2l0ZXJhdG9yIFZhbHVlOjplbmQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgpKSB7Cisg
IGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1h
cF8pCisgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgpKTsKKyAg
ICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4ge307CiB9CiAK
K1ZhbHVlOjppdGVyYXRvciBWYWx1ZTo6YmVnaW4oKSB7CisgIHN3aXRjaCAodHlwZSgpKSB7Cisg
IGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1h
cF8pCisgICAgICByZXR1cm4gaXRlcmF0b3IodmFsdWVfLm1hcF8tPmJlZ2luKCkpOworICAgIGJy
ZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBpdGVyYXRvcigpOwor
fQogCi1QYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCggY29uc3QgY2hhciAqa2V5ICkKLSAgIDog
a2V5Xygga2V5ICkKLSAgICwgaW5kZXhfKCkKLSAgICwga2luZF8oIGtpbmRLZXkgKQoteworVmFs
dWU6Oml0ZXJhdG9yIFZhbHVlOjplbmQoKSB7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2Ug
YXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisg
ICAgICByZXR1cm4gaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgpKTsKKyAgICBicmVhazsKKyAg
ZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gaXRlcmF0b3IoKTsKIH0KIAorLy8g
Y2xhc3MgUGF0aEFyZ3VtZW50CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotUGF0aEFyZ3VtZW50OjpQYXRoQXJn
dW1lbnQoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKQotICAgOiBrZXlfKCBrZXkuY19zdHIoKSAp
Ci0gICAsIGluZGV4XygpCi0gICAsIGtpbmRfKCBraW5kS2V5ICkKLXsKLX0KK1BhdGhBcmd1bWVu
dDo6UGF0aEFyZ3VtZW50KCkgOiBrZXlfKCkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1l
bnQoQXJyYXlJbmRleCBpbmRleCkKKyAgICA6IGtleV8oKSwgaW5kZXhfKGluZGV4KSwga2luZF8o
a2luZEluZGV4KSB7fQorCitQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudChjb25zdCBjaGFyKiBr
ZXkpCisgICAgOiBrZXlfKGtleSksIGluZGV4XygpLCBraW5kXyhraW5kS2V5KSB7fQorCitQYXRo
QXJndW1lbnQ6OlBhdGhBcmd1bWVudChjb25zdCBTdHJpbmcmIGtleSkKKyAgICA6IGtleV8oa2V5
LmNfc3RyKCkpLCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KIAogLy8gY2xhc3MgUGF0aAog
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAKLVBhdGg6OlBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5nICZwYXRoLAotICAg
ICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhB
cmd1bWVudCAmYTIsCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmEzLAotICAgICAg
ICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhNCwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1
bWVudCAmYTUgKQotewotICAgSW5BcmdzIGluOwotICAgaW4ucHVzaF9iYWNrKCAmYTEgKTsKLSAg
IGluLnB1c2hfYmFjayggJmEyICk7Ci0gICBpbi5wdXNoX2JhY2soICZhMyApOwotICAgaW4ucHVz
aF9iYWNrKCAmYTQgKTsKLSAgIGluLnB1c2hfYmFjayggJmE1ICk7Ci0gICBtYWtlUGF0aCggcGF0
aCwgaW4gKTsKLX0KLQotCi12b2lkIAotUGF0aDo6bWFrZVBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5n
ICZwYXRoLAotICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4gKQotewotICAgY29uc3Qg
Y2hhciAqY3VycmVudCA9IHBhdGguY19zdHIoKTsKLSAgIGNvbnN0IGNoYXIgKmVuZCA9IGN1cnJl
bnQgKyBwYXRoLmxlbmd0aCgpOwotICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciBpdEluQXJnID0g
aW4uYmVnaW4oKTsKLSAgIHdoaWxlICggY3VycmVudCAhPSBlbmQgKQotICAgewotICAgICAgaWYg
KCAqY3VycmVudCA9PSAnWycgKQotICAgICAgewotICAgICAgICAgKytjdXJyZW50OwotICAgICAg
ICAgaWYgKCAqY3VycmVudCA9PSAnJScgKQotICAgICAgICAgICAgYWRkUGF0aEluQXJnKCBwYXRo
LCBpbiwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKTsKLSAgICAgICAgIGVsc2UK
LSAgICAgICAgIHsKLSAgICAgICAgICAgIEFycmF5SW5kZXggaW5kZXggPSAwOwotICAgICAgICAg
ICAgZm9yICggOyBjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVudCA+PSAnMCcgICYmICAqY3VycmVu
dCA8PSAnOSc7ICsrY3VycmVudCApCi0gICAgICAgICAgICAgICBpbmRleCA9IGluZGV4ICogMTAg
KyBBcnJheUluZGV4KCpjdXJyZW50IC0gJzAnKTsKLSAgICAgICAgICAgIGFyZ3NfLnB1c2hfYmFj
ayggaW5kZXggKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmICggY3VycmVudCA9PSBlbmQgIHx8
ICAqY3VycmVudCsrICE9ICddJyApCi0gICAgICAgICAgICBpbnZhbGlkUGF0aCggcGF0aCwgaW50
KGN1cnJlbnQgLSBwYXRoLmNfc3RyKCkpICk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICggKmN1
cnJlbnQgPT0gJyUnICkKLSAgICAgIHsKLSAgICAgICAgIGFkZFBhdGhJbkFyZyggcGF0aCwgaW4s
IGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZEtleSApOwotICAgICAgICAgKytjdXJyZW50Owot
ICAgICAgfQotICAgICAgZWxzZSBpZiAoICpjdXJyZW50ID09ICcuJyApCi0gICAgICB7Ci0gICAg
ICAgICArK2N1cnJlbnQ7CitQYXRoOjpQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwKKyAgICAgICAg
ICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMSwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50
JiBhMiwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMywKKyAgICAgICAgICAgY29u
c3QgUGF0aEFyZ3VtZW50JiBhNCwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhNSkg
eworICBJbkFyZ3MgaW47CisgIGluLnJlc2VydmUoNSk7CisgIGluLnB1c2hfYmFjaygmYTEpOwor
ICBpbi5wdXNoX2JhY2soJmEyKTsKKyAgaW4ucHVzaF9iYWNrKCZhMyk7CisgIGluLnB1c2hfYmFj
aygmYTQpOworICBpbi5wdXNoX2JhY2soJmE1KTsKKyAgbWFrZVBhdGgocGF0aCwgaW4pOworfQor
Cit2b2lkIFBhdGg6Om1ha2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgSW5BcmdzJiBp
bikgeworICBjb25zdCBjaGFyKiBjdXJyZW50ID0gcGF0aC5jX3N0cigpOworICBjb25zdCBjaGFy
KiBlbmQgPSBjdXJyZW50ICsgcGF0aC5sZW5ndGgoKTsKKyAgYXV0byBpdEluQXJnID0gaW4uYmVn
aW4oKTsKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7CisgICAgaWYgKCpjdXJyZW50ID09ICdb
JykgeworICAgICAgKytjdXJyZW50OworICAgICAgaWYgKCpjdXJyZW50ID09ICclJykKKyAgICAg
ICAgYWRkUGF0aEluQXJnKHBhdGgsIGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRJbmRl
eCk7CisgICAgICBlbHNlIHsKKyAgICAgICAgQXJyYXlJbmRleCBpbmRleCA9IDA7CisgICAgICAg
IGZvciAoOyBjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVudCA+PSAnMCcgJiYgKmN1cnJlbnQgPD0g
JzknOyArK2N1cnJlbnQpCisgICAgICAgICAgaW5kZXggPSBpbmRleCAqIDEwICsgQXJyYXlJbmRl
eCgqY3VycmVudCAtICcwJyk7CisgICAgICAgIGFyZ3NfLnB1c2hfYmFjayhpbmRleCk7CiAgICAg
ICB9Ci0gICAgICBlbHNlCi0gICAgICB7Ci0gICAgICAgICBjb25zdCBjaGFyICpiZWdpbk5hbWUg
PSBjdXJyZW50OwotICAgICAgICAgd2hpbGUgKCBjdXJyZW50ICE9IGVuZCAgJiYgICFzdHJjaHIo
ICJbLiIsICpjdXJyZW50ICkgKQotICAgICAgICAgICAgKytjdXJyZW50OwotICAgICAgICAgYXJn
c18ucHVzaF9iYWNrKCBzdGQ6OnN0cmluZyggYmVnaW5OYW1lLCBjdXJyZW50ICkgKTsKLSAgICAg
IH0KLSAgIH0KLX0KLQotCi12b2lkIAotUGF0aDo6YWRkUGF0aEluQXJnKCBjb25zdCBzdGQ6OnN0
cmluZyAmcGF0aCwgCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4sIAotICAg
ICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yICZpdEluQXJnLCAKLSAgICAg
ICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQgKQotewotICAgaWYgKCBpdElu
QXJnID09IGluLmVuZCgpICkKLSAgIHsKLSAgICAgIC8vIEVycm9yOiBtaXNzaW5nIGFyZ3VtZW50
ICVkCi0gICB9Ci0gICBlbHNlIGlmICggKCppdEluQXJnKS0+a2luZF8gIT0ga2luZCApCi0gICB7
Ci0gICAgICAvLyBFcnJvcjogYmFkIGFyZ3VtZW50IHR5cGUKLSAgIH0KLSAgIGVsc2UKLSAgIHsK
LSAgICAgIGFyZ3NfLnB1c2hfYmFjayggKippdEluQXJnICk7Ci0gICB9Ci19Ci0KLQotdm9pZCAK
LVBhdGg6OmludmFsaWRQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAgICAgICAg
ICAgICAgICAgaW50IGxvY2F0aW9uICkKLXsKLSAgIC8vIEVycm9yOiBpbnZhbGlkIHBhdGguCi19
Ci0KLQotY29uc3QgVmFsdWUgJgotUGF0aDo6cmVzb2x2ZSggY29uc3QgVmFsdWUgJnJvb3QgKSBj
b25zdAotewotICAgY29uc3QgVmFsdWUgKm5vZGUgPSAmcm9vdDsKLSAgIGZvciAoIEFyZ3M6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQg
KQotICAgewotICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhcmcgPSAqaXQ7Ci0gICAgICBpZiAo
IGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCApCi0gICAgICB7Ci0gICAgICAg
ICBpZiAoICFub2RlLT5pc0FycmF5KCkgIHx8ICAhbm9kZS0+aXNWYWxpZEluZGV4KCBhcmcuaW5k
ZXhfICkgKQotICAgICAgICAgewotICAgICAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNv
bHZlIHBhdGggKGFycmF5IHZhbHVlIGV4cGVjdGVkIGF0IHBvc2l0aW9uLi4uCi0gICAgICAgICB9
Ci0gICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsKKyAgICAgIGlmIChjdXJy
ZW50ID09IGVuZCB8fCAqKytjdXJyZW50ICE9ICddJykKKyAgICAgICAgaW52YWxpZFBhdGgocGF0
aCwgaW50KGN1cnJlbnQgLSBwYXRoLmNfc3RyKCkpKTsKKyAgICB9IGVsc2UgaWYgKCpjdXJyZW50
ID09ICclJykgeworICAgICAgYWRkUGF0aEluQXJnKHBhdGgsIGluLCBpdEluQXJnLCBQYXRoQXJn
dW1lbnQ6OmtpbmRLZXkpOworICAgICAgKytjdXJyZW50OworICAgIH0gZWxzZSBpZiAoKmN1cnJl
bnQgPT0gJy4nIHx8ICpjdXJyZW50ID09ICddJykgeworICAgICAgKytjdXJyZW50OworICAgIH0g
ZWxzZSB7CisgICAgICBjb25zdCBjaGFyKiBiZWdpbk5hbWUgPSBjdXJyZW50OworICAgICAgd2hp
bGUgKGN1cnJlbnQgIT0gZW5kICYmICFzdHJjaHIoIlsuIiwgKmN1cnJlbnQpKQorICAgICAgICAr
K2N1cnJlbnQ7CisgICAgICBhcmdzXy5wdXNoX2JhY2soU3RyaW5nKGJlZ2luTmFtZSwgY3VycmVu
dCkpOworICAgIH0KKyAgfQorfQorCit2b2lkIFBhdGg6OmFkZFBhdGhJbkFyZyhjb25zdCBTdHJp
bmcmIC8qcGF0aCovLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5BcmdzJiBpbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIEluQXJnczo6Y29uc3RfaXRlcmF0b3ImIGl0SW5Bcmcs
CisgICAgICAgICAgICAgICAgICAgICAgICBQYXRoQXJndW1lbnQ6OktpbmQga2luZCkgeworICBp
ZiAoaXRJbkFyZyA9PSBpbi5lbmQoKSkgeworICAgIC8vIEVycm9yOiBtaXNzaW5nIGFyZ3VtZW50
ICVkCisgIH0gZWxzZSBpZiAoKCppdEluQXJnKS0+a2luZF8gIT0ga2luZCkgeworICAgIC8vIEVy
cm9yOiBiYWQgYXJndW1lbnQgdHlwZQorICB9IGVsc2UgeworICAgIGFyZ3NfLnB1c2hfYmFjaygq
Kml0SW5BcmcrKyk7CisgIH0KK30KKwordm9pZCBQYXRoOjppbnZhbGlkUGF0aChjb25zdCBTdHJp
bmcmIC8qcGF0aCovLCBpbnQgLypsb2NhdGlvbiovKSB7CisgIC8vIEVycm9yOiBpbnZhbGlkIHBh
dGguCit9CisKK2NvbnN0IFZhbHVlJiBQYXRoOjpyZXNvbHZlKGNvbnN0IFZhbHVlJiByb290KSBj
b25zdCB7CisgIGNvbnN0IFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZvciAoY29uc3QgYXV0byYg
YXJnIDogYXJnc18pIHsKKyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZElu
ZGV4KSB7CisgICAgICBpZiAoIW5vZGUtPmlzQXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4
KGFyZy5pbmRleF8pKSB7CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRo
IChhcnJheSB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLiApCisgICAgICAgIHJldHVybiBW
YWx1ZTo6bnVsbFNpbmdsZXRvbigpOwogICAgICAgfQotICAgICAgZWxzZSBpZiAoIGFyZy5raW5k
XyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKQotICAgICAgewotICAgICAgICAgaWYgKCAhbm9k
ZS0+aXNPYmplY3QoKSApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAvLyBFcnJvcjogdW5hYmxl
IHRvIHJlc29sdmUgcGF0aCAob2JqZWN0IHZhbHVlIGV4cGVjdGVkIGF0IHBvc2l0aW9uLi4uKQot
ICAgICAgICAgfQotICAgICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwotICAgICAg
ICAgaWYgKCBub2RlID09ICZWYWx1ZTo6bnVsbCApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAv
LyBFcnJvcjogdW5hYmxlIHRvIHJlc29sdmUgcGF0aCAob2JqZWN0IGhhcyBubyBtZW1iZXIgbmFt
ZWQgJycgYXQgcG9zaXRpb24uLi4pCi0gICAgICAgICB9CisgICAgICBub2RlID0gJigoKm5vZGUp
W2FyZy5pbmRleF9dKTsKKyAgICB9IGVsc2UgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6
OmtpbmRLZXkpIHsKKyAgICAgIGlmICghbm9kZS0+aXNPYmplY3QoKSkgeworICAgICAgICAvLyBF
cnJvcjogdW5hYmxlIHRvIHJlc29sdmUgcGF0aCAob2JqZWN0IHZhbHVlIGV4cGVjdGVkIGF0IHBv
c2l0aW9uLi4uKQorICAgICAgICByZXR1cm4gVmFsdWU6Om51bGxTaW5nbGV0b24oKTsKICAgICAg
IH0KLSAgIH0KLSAgIHJldHVybiAqbm9kZTsKLX0KLQotCi1WYWx1ZSAKLVBhdGg6OnJlc29sdmUo
IGNvbnN0IFZhbHVlICZyb290LCAKLSAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0
VmFsdWUgKSBjb25zdAotewotICAgY29uc3QgVmFsdWUgKm5vZGUgPSAmcm9vdDsKLSAgIGZvciAo
IEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5k
KCk7ICsraXQgKQotICAgewotICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhcmcgPSAqaXQ7Ci0g
ICAgICBpZiAoIGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCApCi0gICAgICB7
Ci0gICAgICAgICBpZiAoICFub2RlLT5pc0FycmF5KCkgIHx8ICAhbm9kZS0+aXNWYWxpZEluZGV4
KCBhcmcuaW5kZXhfICkgKQotICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKLSAgICAg
ICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgICAgbm9kZSA9ICYoKCpub2Rl
KVthcmcua2V5X10pOworICAgICAgaWYgKG5vZGUgPT0gJlZhbHVlOjpudWxsU2luZ2xldG9uKCkp
IHsKKyAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCBoYXMg
bm8gbWVtYmVyIG5hbWVkICcnIGF0CisgICAgICAgIC8vIHBvc2l0aW9uLi4uKQorICAgICAgICBy
ZXR1cm4gVmFsdWU6Om51bGxTaW5nbGV0b24oKTsKICAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCBh
cmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5ICkKLSAgICAgIHsKLSAgICAgICAgIGlm
ICggIW5vZGUtPmlzT2JqZWN0KCkgKQotICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
LSAgICAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKLSAgICAgICAgIGlmICggbm9k
ZSA9PSAmVmFsdWU6Om51bGwgKQotICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAg
ICB9CisgIH0KKyAgcmV0dXJuICpub2RlOworfQorCitWYWx1ZSBQYXRoOjpyZXNvbHZlKGNvbnN0
IFZhbHVlJiByb290LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdCB7CisgIGNvbnN0
IFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZvciAoY29uc3QgYXV0byYgYXJnIDogYXJnc18pIHsK
KyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4KSB7CisgICAgICBp
ZiAoIW5vZGUtPmlzQXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKQor
ICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcu
aW5kZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5k
S2V5KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBkZWZh
dWx0VmFsdWU7CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7CisgICAgICBpZiAo
bm9kZSA9PSAmVmFsdWU6Om51bGxTaW5nbGV0b24oKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRW
YWx1ZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuICpub2RlOworfQorCitWYWx1ZSYgUGF0aDo6bWFr
ZShWYWx1ZSYgcm9vdCkgY29uc3QgeworICBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3IgKGNv
bnN0IGF1dG8mIGFyZyA6IGFyZ3NfKSB7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1l
bnQ6OmtpbmRJbmRleCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkpIHsKKyAgICAgICAg
Ly8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIGFycmF5IGF0IHBvc2l0aW9uIC4uLgogICAgICAgfQot
ICAgfQotICAgcmV0dXJuICpub2RlOwotfQotCi0KLVZhbHVlICYKLVBhdGg6Om1ha2UoIFZhbHVl
ICZyb290ICkgY29uc3QKLXsKLSAgIFZhbHVlICpub2RlID0gJnJvb3Q7Ci0gICBmb3IgKCBBcmdz
Ojpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyAr
K2l0ICkKLSAgIHsKLSAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYXJnID0gKml0OwotICAgICAg
aWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKQotICAgICAgewotICAg
ICAgICAgaWYgKCAhbm9kZS0+aXNBcnJheSgpICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIC8v
IEVycm9yOiBub2RlIGlzIG5vdCBhbiBhcnJheSBhdCBwb3NpdGlvbiAuLi4KLSAgICAgICAgIH0K
LSAgICAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgICAgbm9kZSA9ICYo
KCpub2RlKVthcmcuaW5kZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFy
Z3VtZW50OjpraW5kS2V5KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsKKyAgICAg
ICAgLy8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIG9iamVjdCBhdCBwb3NpdGlvbi4uLgogICAgICAg
fQotICAgICAgZWxzZSBpZiAoIGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKQot
ICAgICAgewotICAgICAgICAgaWYgKCAhbm9kZS0+aXNPYmplY3QoKSApCi0gICAgICAgICB7Ci0g
ICAgICAgICAgICAvLyBFcnJvcjogbm9kZSBpcyBub3QgYW4gb2JqZWN0IGF0IHBvc2l0aW9uLi4u
Ci0gICAgICAgICB9Ci0gICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAg
ICB9Ci0gICB9Ci0gICByZXR1cm4gKm5vZGU7CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5r
ZXlfXSk7CisgICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKIH0KIAotCiB9IC8vIG5hbWVzcGFj
ZSBKc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRlcmF0b3Iu
aW5sIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl92YWx1ZWl0ZXJhdG9yLmlubAppbmRleCA3NDU3
Y2EzODllNjAyZGNjNjA1MmRkZDQ0OGExOTgzOTQ3YzU0ZmI2Li40YTNkMjEwZGUzMWM2NGM4MzUx
ZTg0MWIxN2RhY2IwOGE1OTQ3OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29u
X3ZhbHVlaXRlcmF0b3IuaW5sCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fdmFsdWVpdGVy
YXRvci5pbmwKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5k
IFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBv
ciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVy
aXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0
cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKQEAgLTE1LDIwMiArMTUsOTkgQEAg
bmFtZXNwYWNlIEpzb24gewogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotVmFsdWVJdGVy
YXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKCkKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5U
RVJOQUxfTUFQCi0gICA6IGN1cnJlbnRfKCkKLSAgICwgaXNOdWxsXyggdHJ1ZSApCi17Ci19Ci0j
ZWxzZQotICAgOiBpc0FycmF5XyggdHJ1ZSApCi0gICAsIGlzTnVsbF8oIHRydWUgKQotewotICAg
aXRlcmF0b3JfLmFycmF5XyA9IFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSgpOwot
fQotI2VuZGlmCitWYWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoKSA6IGN1cnJl
bnRfKCkge30KIAorVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKAorICAgIGNv
bnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQorICAgIDogY3VycmVu
dF8oY3VycmVudCksIGlzTnVsbF8oZmFsc2UpIHt9CiAKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoIGNvbnN0
IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yICZjdXJyZW50ICkKLSAgIDogY3VycmVudF8o
IGN1cnJlbnQgKQotICAgLCBpc051bGxfKCBmYWxzZSApCi17Ci19Ci0jZWxzZQotVmFsdWVJdGVy
YXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXk6Okl0
ZXJhdG9yU3RhdGUgJnN0YXRlICkKLSAgIDogaXNBcnJheV8oIHRydWUgKQotewotICAgaXRlcmF0
b3JfLmFycmF5XyA9IHN0YXRlOwotfQorVmFsdWUmIFZhbHVlSXRlcmF0b3JCYXNlOjpkZXJlZigp
IGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRfLT5zZWNvbmQ7IH0KIAordm9pZCBWYWx1ZUl0ZXJhdG9y
QmFzZTo6aW5jcmVtZW50KCkgeyArK2N1cnJlbnRfOyB9CiAKLVZhbHVlSXRlcmF0b3JCYXNlOjpW
YWx1ZUl0ZXJhdG9yQmFzZSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSAm
c3RhdGUgKQotICAgOiBpc0FycmF5XyggZmFsc2UgKQotewotICAgaXRlcmF0b3JfLm1hcF8gPSBz
dGF0ZTsKLX0KLSNlbmRpZgordm9pZCBWYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVjcmVtZW50KCkgeyAt
LWN1cnJlbnRfOyB9CiAKLVZhbHVlICYKLVZhbHVlSXRlcmF0b3JCYXNlOjpkZXJlZigpIGNvbnN0
Ci17Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgcmV0dXJuIGN1cnJl
bnRfLT5zZWNvbmQ7CitWYWx1ZUl0ZXJhdG9yQmFzZTo6ZGlmZmVyZW5jZV90eXBlCitWYWx1ZUl0
ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3RhbmNlKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3Qg
eworI2lmZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCisgIHJldHVybiBvdGhlci5jdXJyZW50
XyAtIGN1cnJlbnRfOwogI2Vsc2UKLSAgIGlmICggaXNBcnJheV8gKQotICAgICAgcmV0dXJuIFZh
bHVlSW50ZXJuYWxBcnJheTo6ZGVyZWZlcmVuY2UoIGl0ZXJhdG9yXy5hcnJheV8gKTsKLSAgIHJl
dHVybiBWYWx1ZUludGVybmFsTWFwOjp2YWx1ZSggaXRlcmF0b3JfLm1hcF8gKTsKKyAgLy8gSXRl
cmF0b3IgZm9yIG51bGwgdmFsdWUgYXJlIGluaXRpYWxpemVkIHVzaW5nIHRoZSBkZWZhdWx0Cisg
IC8vIGNvbnN0cnVjdG9yLCB3aGljaCBpbml0aWFsaXplIGN1cnJlbnRfIHRvIHRoZSBkZWZhdWx0
CisgIC8vIHN0ZDo6bWFwOjppdGVyYXRvci4gQXMgYmVnaW4oKSBhbmQgZW5kKCkgYXJlIHR3byBp
bnN0YW5jZQorICAvLyBvZiB0aGUgZGVmYXVsdCBzdGQ6Om1hcDo6aXRlcmF0b3IsIHRoZXkgY2Fu
IG5vdCBiZSBjb21wYXJlZC4KKyAgLy8gVG8gYWxsb3cgdGhpcywgd2UgaGFuZGxlIHRoaXMgY29t
cGFyaXNvbiBzcGVjaWZpY2FsbHkuCisgIGlmIChpc051bGxfICYmIG90aGVyLmlzTnVsbF8pIHsK
KyAgICByZXR1cm4gMDsKKyAgfQorCisgIC8vIFVzYWdlIG9mIHN0ZDo6ZGlzdGFuY2UgaXMgbm90
IHBvcnRhYmxlIChkb2VzIG5vdCBjb21waWxlIHdpdGggU3VuIFN0dWRpbyAxMgorICAvLyBSb2d1
ZVdhdmUgU1RMLAorICAvLyB3aGljaCBpcyB0aGUgb25lIHVzZWQgYnkgZGVmYXVsdCkuCisgIC8v
IFVzaW5nIGEgcG9ydGFibGUgaGFuZC1tYWRlIHZlcnNpb24gZm9yIG5vbiByYW5kb20gaXRlcmF0
b3IgaW5zdGVhZDoKKyAgLy8gICByZXR1cm4gZGlmZmVyZW5jZV90eXBlKCBzdGQ6OmRpc3RhbmNl
KCBjdXJyZW50Xywgb3RoZXIuY3VycmVudF8gKSApOworICBkaWZmZXJlbmNlX3R5cGUgbXlEaXN0
YW5jZSA9IDA7CisgIGZvciAoVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSBjdXJy
ZW50XzsgaXQgIT0gb3RoZXIuY3VycmVudF87CisgICAgICAgKytpdCkgeworICAgICsrbXlEaXN0
YW5jZTsKKyAgfQorICByZXR1cm4gbXlEaXN0YW5jZTsKICNlbmRpZgogfQogCi0KLXZvaWQgCi1W
YWx1ZUl0ZXJhdG9yQmFzZTo6aW5jcmVtZW50KCkKLXsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi0gICArK2N1cnJlbnRfOwotI2Vsc2UKLSAgIGlmICggaXNBcnJheV8gKQot
ICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjppbmNyZW1lbnQoIGl0ZXJhdG9yXy5hcnJheV8gKTsK
LSAgIFZhbHVlSW50ZXJuYWxNYXA6OmluY3JlbWVudCggaXRlcmF0b3JfLm1hcF8gKTsKLSNlbmRp
ZgorYm9vbCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aXNFcXVhbChjb25zdCBTZWxmVHlwZSYgb3RoZXIp
IGNvbnN0IHsKKyAgaWYgKGlzTnVsbF8pIHsKKyAgICByZXR1cm4gb3RoZXIuaXNOdWxsXzsKKyAg
fQorICByZXR1cm4gY3VycmVudF8gPT0gb3RoZXIuY3VycmVudF87CiB9CiAKLQotdm9pZCAKLVZh
bHVlSXRlcmF0b3JCYXNlOjpkZWNyZW1lbnQoKQotewotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgIC0tY3VycmVudF87Ci0jZWxzZQotICAgaWYgKCBpc0FycmF5XyApCi0g
ICAgICBWYWx1ZUludGVybmFsQXJyYXk6OmRlY3JlbWVudCggaXRlcmF0b3JfLmFycmF5XyApOwot
ICAgVmFsdWVJbnRlcm5hbE1hcDo6ZGVjcmVtZW50KCBpdGVyYXRvcl8ubWFwXyApOwotI2VuZGlm
Cit2b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgewor
ICBjdXJyZW50XyA9IG90aGVyLmN1cnJlbnRfOworICBpc051bGxfID0gb3RoZXIuaXNOdWxsXzsK
IH0KIAotCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6ZGlmZmVyZW5jZV90eXBlIAotVmFsdWVJdGVyYXRv
ckJhc2U6OmNvbXB1dGVEaXN0YW5jZSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3QKLXsK
LSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0jIGlmZGVmIEpTT05fVVNFX0NQ
UFRMX1NNQUxMTUFQCi0gICByZXR1cm4gY3VycmVudF8gLSBvdGhlci5jdXJyZW50XzsKLSMgZWxz
ZQotICAgLy8gSXRlcmF0b3IgZm9yIG51bGwgdmFsdWUgYXJlIGluaXRpYWxpemVkIHVzaW5nIHRo
ZSBkZWZhdWx0Ci0gICAvLyBjb25zdHJ1Y3Rvciwgd2hpY2ggaW5pdGlhbGl6ZSBjdXJyZW50XyB0
byB0aGUgZGVmYXVsdAotICAgLy8gc3RkOjptYXA6Oml0ZXJhdG9yLiBBcyBiZWdpbigpIGFuZCBl
bmQoKSBhcmUgdHdvIGluc3RhbmNlIAotICAgLy8gb2YgdGhlIGRlZmF1bHQgc3RkOjptYXA6Oml0
ZXJhdG9yLCB0aGV5IGNhbiBub3QgYmUgY29tcGFyZWQuCi0gICAvLyBUbyBhbGxvdyB0aGlzLCB3
ZSBoYW5kbGUgdGhpcyBjb21wYXJpc29uIHNwZWNpZmljYWxseS4KLSAgIGlmICggaXNOdWxsXyAg
JiYgIG90aGVyLmlzTnVsbF8gKQotICAgewotICAgICAgcmV0dXJuIDA7Ci0gICB9Ci0KLQotICAg
Ly8gVXNhZ2Ugb2Ygc3RkOjpkaXN0YW5jZSBpcyBub3QgcG9ydGFibGUgKGRvZXMgbm90IGNvbXBp
bGUgd2l0aCBTdW4gU3R1ZGlvIDEyIFJvZ3VlV2F2ZSBTVEwsCi0gICAvLyB3aGljaCBpcyB0aGUg
b25lIHVzZWQgYnkgZGVmYXVsdCkuCi0gICAvLyBVc2luZyBhIHBvcnRhYmxlIGhhbmQtbWFkZSB2
ZXJzaW9uIGZvciBub24gcmFuZG9tIGl0ZXJhdG9yIGluc3RlYWQ6Ci0gICAvLyAgIHJldHVybiBk
aWZmZXJlbmNlX3R5cGUoIHN0ZDo6ZGlzdGFuY2UoIGN1cnJlbnRfLCBvdGhlci5jdXJyZW50XyAp
ICk7Ci0gICBkaWZmZXJlbmNlX3R5cGUgbXlEaXN0YW5jZSA9IDA7Ci0gICBmb3IgKCBWYWx1ZTo6
T2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IGN1cnJlbnRfOyBpdCAhPSBvdGhlci5jdXJyZW50
XzsgKytpdCApCi0gICB7Ci0gICAgICArK215RGlzdGFuY2U7Ci0gICB9Ci0gICByZXR1cm4gbXlE
aXN0YW5jZTsKLSMgZW5kaWYKLSNlbHNlCi0gICBpZiAoIGlzQXJyYXlfICkKLSAgICAgIHJldHVy
biBWYWx1ZUludGVybmFsQXJyYXk6OmRpc3RhbmNlKCBpdGVyYXRvcl8uYXJyYXlfLCBvdGhlci5p
dGVyYXRvcl8uYXJyYXlfICk7Ci0gICByZXR1cm4gVmFsdWVJbnRlcm5hbE1hcDo6ZGlzdGFuY2Uo
IGl0ZXJhdG9yXy5tYXBfLCBvdGhlci5pdGVyYXRvcl8ubWFwXyApOwotI2VuZGlmCitWYWx1ZSBW
YWx1ZUl0ZXJhdG9yQmFzZTo6a2V5KCkgY29uc3QgeworICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcg
Y3pzdHJpbmcgPSAoKmN1cnJlbnRfKS5maXJzdDsKKyAgaWYgKGN6c3RyaW5nLmRhdGEoKSkgewor
ICAgIGlmIChjenN0cmluZy5pc1N0YXRpY1N0cmluZygpKQorICAgICAgcmV0dXJuIFZhbHVlKFN0
YXRpY1N0cmluZyhjenN0cmluZy5kYXRhKCkpKTsKKyAgICByZXR1cm4gVmFsdWUoY3pzdHJpbmcu
ZGF0YSgpLCBjenN0cmluZy5kYXRhKCkgKyBjenN0cmluZy5sZW5ndGgoKSk7CisgIH0KKyAgcmV0
dXJuIFZhbHVlKGN6c3RyaW5nLmluZGV4KCkpOwogfQogCi0KLWJvb2wgCi1WYWx1ZUl0ZXJhdG9y
QmFzZTo6aXNFcXVhbCggY29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3QKLXsKLSNpZm5kZWYg
SlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBpZiAoIGlzTnVsbF8gKQotICAgewotICAg
ICAgcmV0dXJuIG90aGVyLmlzTnVsbF87Ci0gICB9Ci0gICByZXR1cm4gY3VycmVudF8gPT0gb3Ro
ZXIuY3VycmVudF87Ci0jZWxzZQotICAgaWYgKCBpc0FycmF5XyApCi0gICAgICByZXR1cm4gVmFs
dWVJbnRlcm5hbEFycmF5OjplcXVhbHMoIGl0ZXJhdG9yXy5hcnJheV8sIG90aGVyLml0ZXJhdG9y
Xy5hcnJheV8gKTsKLSAgIHJldHVybiBWYWx1ZUludGVybmFsTWFwOjplcXVhbHMoIGl0ZXJhdG9y
Xy5tYXBfLCBvdGhlci5pdGVyYXRvcl8ubWFwXyApOwotI2VuZGlmCitVSW50IFZhbHVlSXRlcmF0
b3JCYXNlOjppbmRleCgpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWU6OkNaU3RyaW5nIGN6c3RyaW5n
ID0gKCpjdXJyZW50XykuZmlyc3Q7CisgIGlmICghY3pzdHJpbmcuZGF0YSgpKQorICAgIHJldHVy
biBjenN0cmluZy5pbmRleCgpOworICByZXR1cm4gVmFsdWU6OlVJbnQoLTEpOwogfQogCi0KLXZv
aWQgCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6Y29weSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkKLXsK
LSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjdXJyZW50XyA9IG90aGVy
LmN1cnJlbnRfOwotI2Vsc2UKLSAgIGlmICggaXNBcnJheV8gKQotICAgICAgaXRlcmF0b3JfLmFy
cmF5XyA9IG90aGVyLml0ZXJhdG9yXy5hcnJheV87Ci0gICBpdGVyYXRvcl8ubWFwXyA9IG90aGVy
Lml0ZXJhdG9yXy5tYXBfOwotI2VuZGlmCitTdHJpbmcgVmFsdWVJdGVyYXRvckJhc2U6Om5hbWUo
KSBjb25zdCB7CisgIGNoYXIgY29uc3QqIGtlZXk7CisgIGNoYXIgY29uc3QqIGVuZDsKKyAga2Vl
eSA9IG1lbWJlck5hbWUoJmVuZCk7CisgIGlmICgha2VleSkKKyAgICByZXR1cm4gU3RyaW5nKCk7
CisgIHJldHVybiBTdHJpbmcoa2VleSwgZW5kKTsKIH0KIAotCi1WYWx1ZSAKLVZhbHVlSXRlcmF0
b3JCYXNlOjprZXkoKSBjb25zdAotewotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9N
QVAKLSAgIGNvbnN0IFZhbHVlOjpDWlN0cmluZyBjenN0cmluZyA9ICgqY3VycmVudF8pLmZpcnN0
OwotICAgaWYgKCBjenN0cmluZy5jX3N0cigpICkKLSAgIHsKLSAgICAgIGlmICggY3pzdHJpbmcu
aXNTdGF0aWNTdHJpbmcoKSApCi0gICAgICAgICByZXR1cm4gVmFsdWUoIFN0YXRpY1N0cmluZygg
Y3pzdHJpbmcuY19zdHIoKSApICk7Ci0gICAgICByZXR1cm4gVmFsdWUoIGN6c3RyaW5nLmNfc3Ry
KCkgKTsKLSAgIH0KLSAgIHJldHVybiBWYWx1ZSggY3pzdHJpbmcuaW5kZXgoKSApOwotI2Vsc2UK
LSAgIGlmICggaXNBcnJheV8gKQotICAgICAgcmV0dXJuIFZhbHVlKCBWYWx1ZUludGVybmFsQXJy
YXk6OmluZGV4T2YoIGl0ZXJhdG9yXy5hcnJheV8gKSApOwotICAgYm9vbCBpc1N0YXRpYzsKLSAg
IGNvbnN0IGNoYXIgKm1lbWJlck5hbWUgPSBWYWx1ZUludGVybmFsTWFwOjprZXkoIGl0ZXJhdG9y
Xy5tYXBfLCBpc1N0YXRpYyApOwotICAgaWYgKCBpc1N0YXRpYyApCi0gICAgICByZXR1cm4gVmFs
dWUoIFN0YXRpY1N0cmluZyggbWVtYmVyTmFtZSApICk7Ci0gICByZXR1cm4gVmFsdWUoIG1lbWJl
ck5hbWUgKTsKLSNlbmRpZgorY2hhciBjb25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5h
bWUoKSBjb25zdCB7CisgIGNvbnN0IGNoYXIqIGNuYW1lID0gKCpjdXJyZW50XykuZmlyc3QuZGF0
YSgpOworICByZXR1cm4gY25hbWUgPyBjbmFtZSA6ICIiOwogfQogCi0KLVVJbnQgCi1WYWx1ZUl0
ZXJhdG9yQmFzZTo6aW5kZXgoKSBjb25zdAotewotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgIGNvbnN0IFZhbHVlOjpDWlN0cmluZyBjenN0cmluZyA9ICgqY3VycmVudF8p
LmZpcnN0OwotICAgaWYgKCAhY3pzdHJpbmcuY19zdHIoKSApCi0gICAgICByZXR1cm4gY3pzdHJp
bmcuaW5kZXgoKTsKLSAgIHJldHVybiBWYWx1ZTo6VUludCggLTEgKTsKLSNlbHNlCi0gICBpZiAo
IGlzQXJyYXlfICkKLSAgICAgIHJldHVybiBWYWx1ZTo6VUludCggVmFsdWVJbnRlcm5hbEFycmF5
OjppbmRleE9mKCBpdGVyYXRvcl8uYXJyYXlfICkgKTsKLSAgIHJldHVybiBWYWx1ZTo6VUludCgg
LTEgKTsKLSNlbmRpZgotfQotCi0KLWNvbnN0IGNoYXIgKgotVmFsdWVJdGVyYXRvckJhc2U6Om1l
bWJlck5hbWUoKSBjb25zdAotewotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAK
LSAgIGNvbnN0IGNoYXIgKm5hbWUgPSAoKmN1cnJlbnRfKS5maXJzdC5jX3N0cigpOwotICAgcmV0
dXJuIG5hbWUgPyBuYW1lIDogIiI7Ci0jZWxzZQotICAgaWYgKCAhaXNBcnJheV8gKQotICAgICAg
cmV0dXJuIFZhbHVlSW50ZXJuYWxNYXA6OmtleSggaXRlcmF0b3JfLm1hcF8gKTsKLSAgIHJldHVy
biAiIjsKLSNlbmRpZgorY2hhciBjb25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5hbWUo
Y2hhciBjb25zdCoqIGVuZCkgY29uc3QgeworICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVu
dF8pLmZpcnN0LmRhdGEoKTsKKyAgaWYgKCFjbmFtZSkgeworICAgICplbmQgPSBudWxscHRyOwor
ICAgIHJldHVybiBudWxscHRyOworICB9CisgICplbmQgPSBjbmFtZSArICgqY3VycmVudF8pLmZp
cnN0Lmxlbmd0aCgpOworICByZXR1cm4gY25hbWU7CiB9CiAKLQogLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjE5LDM1ICsxMTYsMjAgQEAgVmFsdWVJdGVyYXRv
ckJhc2U6Om1lbWJlck5hbWUoKSBjb25zdAogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAot
VmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoKQotewotfQorVmFsdWVDb25z
dEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoKSA9IGRlZmF1bHQ7CiAKK1ZhbHVlQ29uc3RJ
dGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKAorICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQorICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkg
e30KIAotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLVZhbHVlQ29uc3RJdGVy
YXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKCBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVy
YXRvciAmY3VycmVudCApCi0gICA6IFZhbHVlSXRlcmF0b3JCYXNlKCBjdXJyZW50ICkKLXsKLX0K
LSNlbHNlCi1WYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvciggY29uc3QgVmFs
dWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlICZzdGF0ZSApCi0gICA6IFZhbHVlSXRlcmF0
b3JCYXNlKCBzdGF0ZSApCi17Ci19CitWYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVy
YXRvcihWYWx1ZUl0ZXJhdG9yIGNvbnN0JiBvdGhlcikKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNl
KG90aGVyKSB7fQogCi1WYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvciggY29u
c3QgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKQotICAgOiBWYWx1ZUl0
ZXJhdG9yQmFzZSggc3RhdGUgKQoteworVmFsdWVDb25zdEl0ZXJhdG9yJiBWYWx1ZUNvbnN0SXRl
cmF0b3I6Ogorb3BlcmF0b3I9KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcikgeworICBj
b3B5KG90aGVyKTsKKyAgcmV0dXJuICp0aGlzOwogfQotI2VuZGlmCi0KLVZhbHVlQ29uc3RJdGVy
YXRvciAmCi1WYWx1ZUNvbnN0SXRlcmF0b3I6Om9wZXJhdG9yID0oIGNvbnN0IFZhbHVlSXRlcmF0
b3JCYXNlICZvdGhlciApCi17Ci0gICBjb3B5KCBvdGhlciApOwotICAgcmV0dXJuICp0aGlzOwot
fQotCiAKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC0yNTcsNDMgKzEzOSwyMSBAQCBW
YWx1ZUNvbnN0SXRlcmF0b3I6Om9wZXJhdG9yID0oIGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlICZv
dGhlciApCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi1WYWx1ZUl0ZXJhdG9yOjpWYWx1
ZUl0ZXJhdG9yKCkKLXsKLX0KK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoKSA9IGRlZmF1
bHQ7CiAKK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShjdXJyZW50
KSB7fQogCi0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotVmFsdWVJdGVyYXRv
cjo6VmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgJmN1
cnJlbnQgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggY3VycmVudCApCi17Ci19Ci0jZWxzZQot
VmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5OjpJ
dGVyYXRvclN0YXRlICZzdGF0ZSApCi0gICA6IFZhbHVlSXRlcmF0b3JCYXNlKCBzdGF0ZSApCi17
CitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlQ29uc3RJdGVyYXRvciYg
b3RoZXIpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikgeworICB0aHJvd1J1bnRpbWVF
cnJvcigiQ29uc3RJdGVyYXRvciB0byBJdGVyYXRvciBzaG91bGQgbmV2ZXIgYmUgYWxsb3dlZC4i
KTsKIH0KIAotVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJbnRlcm5h
bE1hcDo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggc3Rh
dGUgKQotewotfQotI2VuZGlmCi0KLVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoIGNvbnN0
IFZhbHVlQ29uc3RJdGVyYXRvciAmb3RoZXIgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggb3Ro
ZXIgKQotewotfQotCi1WYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZUl0
ZXJhdG9yICZvdGhlciApCi0gICA6IFZhbHVlSXRlcmF0b3JCYXNlKCBvdGhlciApCi17Ci19CitW
YWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlSXRlcmF0b3ImIG90aGVyKSA9
IGRlZmF1bHQ7CiAKLVZhbHVlSXRlcmF0b3IgJgotVmFsdWVJdGVyYXRvcjo6b3BlcmF0b3IgPSgg
Y29uc3QgU2VsZlR5cGUgJm90aGVyICkKLXsKLSAgIGNvcHkoIG90aGVyICk7Ci0gICByZXR1cm4g
KnRoaXM7CitWYWx1ZUl0ZXJhdG9yJiBWYWx1ZUl0ZXJhdG9yOjpvcGVyYXRvcj0oY29uc3QgU2Vs
ZlR5cGUmIG90aGVyKSB7CisgIGNvcHkob3RoZXIpOworICByZXR1cm4gKnRoaXM7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIEpzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fd3Jp
dGVyLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fd3JpdGVyLmNwcAppbmRleCBiNDRkZWYz
NzE2ZGY2NmUxYTY4ZjZkNGVkNDI0ODVjYmJhNWNhZjY4Li40MWRmZDhjZjYwOGNjZjUwMzUyNzdi
ZjU2ZGNmOTI1Y2EyMTYwZmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3dy
aXRlci5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwCkBAIC0xLDg0
MSArMSwxMjUzIEBACi0vLyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENv
cHlyaWdodCAyMDExIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycwog
Ly8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVz
aXJlZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmls
ZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3Jn
ZS5uZXQvTElDRU5TRQogCiAjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGlu
Y2x1ZGUgPGpzb24vd3JpdGVyLmg+Ci0jIGluY2x1ZGUgImpzb25fdG9vbC5oIgorI2luY2x1ZGUg
Impzb25fdG9vbC5oIgorI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CiAjZW5kaWYgLy8gaWYgIWRl
ZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRl
IDxhc3NlcnQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2lu
Y2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVkZSA8Y2Fzc2VydD4KKyNpbmNsdWRlIDxjc3RyaW5nPgog
I2luY2x1ZGUgPGlvbWFuaXA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNldD4KKyNp
bmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPHV0aWxpdHk+CiAKLSNpZiBfTVNDX1ZFUiA+PSAx
NDAwIC8vIFZDKysgOC4wCi0jcHJhZ21hIHdhcm5pbmcoIGRpc2FibGUgOiA0OTk2ICkgICAvLyBk
aXNhYmxlIHdhcm5pbmcgYWJvdXQgc3RyZHVwIGJlaW5nIGRlcHJlY2F0ZWQuCisjaWYgX19jcGx1
c3BsdXMgPj0gMjAxMTAzTAorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGNzdGRpbz4KKwor
I2lmICFkZWZpbmVkKGlzbmFuKQorI2RlZmluZSBpc25hbiBzdGQ6OmlzbmFuCiAjZW5kaWYKIAot
bmFtZXNwYWNlIEpzb24geworI2lmICFkZWZpbmVkKGlzZmluaXRlKQorI2RlZmluZSBpc2Zpbml0
ZSBzdGQ6OmlzZmluaXRlCisjZW5kaWYKIAotc3RhdGljIGJvb2wgY29udGFpbnNDb250cm9sQ2hh
cmFjdGVyKCBjb25zdCBjaGFyKiBzdHIgKQotewotICAgd2hpbGUgKCAqc3RyICkgCi0gICB7Ci0g
ICAgICBpZiAoIGlzQ29udHJvbENoYXJhY3RlciggKihzdHIrKykgKSApCi0gICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgIH0KLSAgIHJldHVybiBmYWxzZTsKLX0KKyNlbHNlCisjaW5jbHVkZSA8Y21h
dGg+CisjaW5jbHVkZSA8Y3N0ZGlvPgogCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNpZiAhZGVm
aW5lZChpc25hbikKKyNpbmNsdWRlIDxmbG9hdC5oPgorI2RlZmluZSBpc25hbiBfaXNuYW4KKyNl
bmRpZgogCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKCBMYXJnZXN0SW50IHZhbHVlICkKLXsK
LSAgIFVJbnRUb1N0cmluZ0J1ZmZlciBidWZmZXI7Ci0gICBjaGFyICpjdXJyZW50ID0gYnVmZmVy
ICsgc2l6ZW9mKGJ1ZmZlcik7Ci0gICBib29sIGlzTmVnYXRpdmUgPSB2YWx1ZSA8IDA7Ci0gICBp
ZiAoIGlzTmVnYXRpdmUgKQotICAgICAgdmFsdWUgPSAtdmFsdWU7Ci0gICB1aW50VG9TdHJpbmco
IExhcmdlc3RVSW50KHZhbHVlKSwgY3VycmVudCApOwotICAgaWYgKCBpc05lZ2F0aXZlICkKLSAg
ICAgICotLWN1cnJlbnQgPSAnLSc7Ci0gICBhc3NlcnQoIGN1cnJlbnQgPj0gYnVmZmVyICk7Ci0g
ICByZXR1cm4gY3VycmVudDsKLX0KKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNpbmNsdWRlIDxm
bG9hdC5oPgorI2RlZmluZSBpc2Zpbml0ZSBfZmluaXRlCisjZW5kaWYKIAorI2lmICFkZWZpbmVk
KF9DUlRfU0VDVVJFX0NQUF9PVkVSTE9BRF9TVEFOREFSRF9OQU1FUykKKyNkZWZpbmUgX0NSVF9T
RUNVUkVfQ1BQX09WRVJMT0FEX1NUQU5EQVJEX05BTUVTIDEKKyNlbmRpZiAvL19DUlRfU0VDVVJF
X0NQUF9PVkVSTE9BRF9TVEFOREFSRF9OQU1FUwogCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5n
KCBMYXJnZXN0VUludCB2YWx1ZSApCi17Ci0gICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOwot
ICAgY2hhciAqY3VycmVudCA9IGJ1ZmZlciArIHNpemVvZihidWZmZXIpOwotICAgdWludFRvU3Ry
aW5nKCB2YWx1ZSwgY3VycmVudCApOwotICAgYXNzZXJ0KCBjdXJyZW50ID49IGJ1ZmZlciApOwot
ICAgcmV0dXJuIGN1cnJlbnQ7Ci19CisjZW5kaWYgLy9fTVNDX1ZFUgogCi0jaWYgZGVmaW5lZChK
U09OX0hBU19JTlQ2NCkKKyNpZiBkZWZpbmVkKF9fc3VuKSAmJiBkZWZpbmVkKF9fU1ZSNCkgLy8g
U29sYXJpcworI2lmICFkZWZpbmVkKGlzZmluaXRlKQorI2luY2x1ZGUgPGllZWVmcC5oPgorI2Rl
ZmluZSBpc2Zpbml0ZSBmaW5pdGUKKyNlbmRpZgorI2VuZGlmCiAKLXN0ZDo6c3RyaW5nIHZhbHVl
VG9TdHJpbmcoIEludCB2YWx1ZSApCi17Ci0gICByZXR1cm4gdmFsdWVUb1N0cmluZyggTGFyZ2Vz
dEludCh2YWx1ZSkgKTsKLX0KKyNpZiBkZWZpbmVkKF9faHB1eCkKKyNpZiAhZGVmaW5lZChpc2Zp
bml0ZSkKKyNpZiBkZWZpbmVkKF9faWE2NCkgJiYgIWRlZmluZWQoZmluaXRlKQorI2RlZmluZSBp
c2Zpbml0ZSh4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgKChzaXplb2YoeCkgPT0gc2l6ZW9mKGZsb2F0KSA/IF9Jc2Zpbml0
ZWYoeCkgOiBfSXNGaW5pdGUoeCkpKQorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgogCisjaWYgIWRl
ZmluZWQoaXNuYW4pCisvLyBJRUVFIHN0YW5kYXJkIHN0YXRlcyB0aGF0IE5hTiB2YWx1ZXMgd2ls
bCBub3QgY29tcGFyZSB0byB0aGVtc2VsdmVzCisjZGVmaW5lIGlzbmFuKHgpICh4ICE9IHgpCisj
ZW5kaWYKIAotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyggVUludCB2YWx1ZSApCi17Ci0gICBy
ZXR1cm4gdmFsdWVUb1N0cmluZyggTGFyZ2VzdFVJbnQodmFsdWUpICk7Ci19CisjaWYgIWRlZmlu
ZWQoX19BUFBMRV9fKQorI2lmICFkZWZpbmVkKGlzZmluaXRlKQorI2RlZmluZSBpc2Zpbml0ZSBm
aW5pdGUKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKIAotI2VuZGlmIC8vICMgaWYgZGVmaW5lZChK
U09OX0hBU19JTlQ2NCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorLy8gRGlzYWJsZSB3YXJuaW5n
IGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUg
OiA0OTk2KQorI2VuZGlmCiAKK25hbWVzcGFjZSBKc29uIHsKIAotc3RkOjpzdHJpbmcgdmFsdWVU
b1N0cmluZyggZG91YmxlIHZhbHVlICkKLXsKLSAgIGNoYXIgYnVmZmVyWzMyXTsKLSNpZiBkZWZp
bmVkKF9NU0NfVkVSKSAmJiBkZWZpbmVkKF9fU1REQ19TRUNVUkVfTElCX18pIC8vIFVzZSBzZWN1
cmUgdmVyc2lvbiB3aXRoIHZpc3VhbCBzdHVkaW8gMjAwNSB0byBhdm9pZCB3YXJuaW5nLiAKLSAg
IHNwcmludGZfcyhidWZmZXIsIHNpemVvZihidWZmZXIpLCAiJSMuMTZnIiwgdmFsdWUpOyAKLSNl
bHNlCQotICAgc3ByaW50ZihidWZmZXIsICIlIy4xNmciLCB2YWx1ZSk7IAorI2lmIF9fY3BsdXNw
bHVzID49IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSID49
IDUyMCkKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gU3RyZWFtV3JpdGVy
UHRyOworI2Vsc2UKK3R5cGVkZWYgc3RkOjphdXRvX3B0cjxTdHJlYW1Xcml0ZXI+IFN0cmVhbVdy
aXRlclB0cjsKICNlbmRpZgotICAgY2hhciogY2ggPSBidWZmZXIgKyBzdHJsZW4oYnVmZmVyKSAt
IDE7Ci0gICBpZiAoKmNoICE9ICcwJykgcmV0dXJuIGJ1ZmZlcjsgLy8gbm90aGluZyB0byB0cnVu
Y2F0ZSwgc28gc2F2ZSB0aW1lCi0gICB3aGlsZShjaCA+IGJ1ZmZlciAmJiAqY2ggPT0gJzAnKXsK
LSAgICAgLS1jaDsKLSAgIH0KLSAgIGNoYXIqIGxhc3Rfbm9uemVybyA9IGNoOwotICAgd2hpbGUo
Y2ggPj0gYnVmZmVyKXsKLSAgICAgc3dpdGNoKCpjaCl7Ci0gICAgIGNhc2UgJzAnOgotICAgICBj
YXNlICcxJzoKLSAgICAgY2FzZSAnMic6Ci0gICAgIGNhc2UgJzMnOgotICAgICBjYXNlICc0JzoK
LSAgICAgY2FzZSAnNSc6Ci0gICAgIGNhc2UgJzYnOgotICAgICBjYXNlICc3JzoKLSAgICAgY2Fz
ZSAnOCc6Ci0gICAgIGNhc2UgJzknOgotICAgICAgIC0tY2g7Ci0gICAgICAgY29udGludWU7Ci0g
ICAgIGNhc2UgJy4nOgotICAgICAgIC8vIFRydW5jYXRlIHplcm9lcyB0byBzYXZlIGJ5dGVzIGlu
IG91dHB1dCwgYnV0IGtlZXAgb25lLgotICAgICAgICoobGFzdF9ub256ZXJvKzIpID0gJ1wwJzsK
LSAgICAgICByZXR1cm4gYnVmZmVyOwotICAgICBkZWZhdWx0OgotICAgICAgIHJldHVybiBidWZm
ZXI7Ci0gICAgIH0KLSAgIH0KLSAgIHJldHVybiBidWZmZXI7Ci19Ci0KLQotc3RkOjpzdHJpbmcg
dmFsdWVUb1N0cmluZyggYm9vbCB2YWx1ZSApCi17Ci0gICByZXR1cm4gdmFsdWUgPyAidHJ1ZSIg
OiAiZmFsc2UiOwotfQotCi1zdGQ6OnN0cmluZyB2YWx1ZVRvUXVvdGVkU3RyaW5nKCBjb25zdCBj
aGFyICp2YWx1ZSApCi17Ci0gICBpZiAodmFsdWUgPT0gTlVMTCkKLSAgICAgIHJldHVybiAiIjsK
LSAgIC8vIE5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdW5pY29kZS4uLgotICAgaWYgKHN0cnBicmso
dmFsdWUsICJcIlxcXGJcZlxuXHJcdCIpID09IE5VTEwgJiYgIWNvbnRhaW5zQ29udHJvbENoYXJh
Y3RlciggdmFsdWUgKSkKLSAgICAgIHJldHVybiBzdGQ6OnN0cmluZygiXCIiKSArIHZhbHVlICsg
IlwiIjsKLSAgIC8vIFdlIGhhdmUgdG8gd2FsayB2YWx1ZSBhbmQgZXNjYXBlIGFueSBzcGVjaWFs
IGNoYXJhY3RlcnMuCi0gICAvLyBBcHBlbmRpbmcgdG8gc3RkOjpzdHJpbmcgaXMgbm90IGVmZmlj
aWVudCwgYnV0IHRoaXMgc2hvdWxkIGJlIHJhcmUuCi0gICAvLyAoTm90ZTogZm9yd2FyZCBzbGFz
aGVzIGFyZSAqbm90KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBpbmcgdGhlbS4pCi0gICBzdGQ6
OnN0cmluZzo6c2l6ZV90eXBlIG1heHNpemUgPSBzdHJsZW4odmFsdWUpKjIgKyAzOyAvLyBhbGxl
c2NhcGVkK3F1b3RlcytOVUxMCi0gICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0gICByZXN1bHQucmVz
ZXJ2ZShtYXhzaXplKTsgLy8gdG8gYXZvaWQgbG90cyBvZiBtYWxsb2NzCi0gICByZXN1bHQgKz0g
IlwiIjsKLSAgIGZvciAoY29uc3QgY2hhciogYz12YWx1ZTsgKmMgIT0gMDsgKytjKQotICAgewot
ICAgICAgc3dpdGNoKCpjKQotICAgICAgewotICAgICAgICAgY2FzZSAnXCInOgotICAgICAgICAg
ICAgcmVzdWx0ICs9ICJcXFwiIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgY2FzZSAn
XFwnOgotICAgICAgICAgICAgcmVzdWx0ICs9ICJcXFxcIjsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgY2FzZSAnXGInOgotICAgICAgICAgICAgcmVzdWx0ICs9ICJcXGIiOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICBjYXNlICdcZic6Ci0gICAgICAgICAgICByZXN1bHQgKz0g
IlxcZiI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgIGNhc2UgJ1xuJzoKLSAgICAgICAg
ICAgIHJlc3VsdCArPSAiXFxuIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgY2FzZSAn
XHInOgotICAgICAgICAgICAgcmVzdWx0ICs9ICJcXHIiOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICBjYXNlICdcdCc6Ci0gICAgICAgICAgICByZXN1bHQgKz0gIlxcdCI7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgIC8vY2FzZSAnLyc6Ci0gICAgICAgICAgICAvLyBFdmVuIHRo
b3VnaCBcLyBpcyBjb25zaWRlcmVkIGEgbGVnYWwgZXNjYXBlIGluIEpTT04sIGEgYmFyZQotICAg
ICAgICAgICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28gSSBzZWUgbm8gcmVhc29uIHRvIGVz
Y2FwZSBpdC4KLSAgICAgICAgICAgIC8vIChJIGhvcGUgSSBhbSBub3QgbWlzdW5kZXJzdGFuZGlu
ZyBzb21ldGhpbmcuCi0gICAgICAgICAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGlu
ZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8gCi0gICAgICAgICAg
ICAvLyBzZXF1ZW5jZS4KLSAgICAgICAgICAgIC8vIFNob3VsZCBhZGQgYSBmbGFnIHRvIGFsbG93
IHRoaXMgY29tcGF0aWJpbGl0eSBtb2RlIGFuZCBwcmV2ZW50IHRoaXMgCi0gICAgICAgICAgICAv
LyBzZXF1ZW5jZSBmcm9tIG9jY3VycmluZy4KLSAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICBpZiAoIGlzQ29udHJvbENoYXJhY3RlciggKmMgKSApCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gb3NzOwotICAgICAgICAgICAgICAgb3NzIDw8ICJc
XHUiIDw8IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0ZDo6c2V0ZmlsbCgnMCcpIDw8
IHN0ZDo6c2V0dyg0KSA8PCBzdGF0aWNfY2FzdDxpbnQ+KCpjKTsKLSAgICAgICAgICAgICAgIHJl
c3VsdCArPSBvc3Muc3RyKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICByZXN1bHQgKz0gKmM7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgIH0KLSAgIHJlc3VsdCArPSAiXCIiOwotICAg
cmV0dXJuIHJlc3VsdDsKKworU3RyaW5nIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSkg
eworICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICBjaGFyKiBjdXJyZW50ID0gYnVmZmVy
ICsgc2l6ZW9mKGJ1ZmZlcik7CisgIGlmICh2YWx1ZSA9PSBWYWx1ZTo6bWluTGFyZ2VzdEludCkg
eworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFyZ2VzdEludCkgKyAx
LCBjdXJyZW50KTsKKyAgICAqLS1jdXJyZW50ID0gJy0nOworICB9IGVsc2UgaWYgKHZhbHVlIDwg
MCkgeworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludCgtdmFsdWUpLCBjdXJyZW50KTsKKyAg
ICAqLS1jdXJyZW50ID0gJy0nOworICB9IGVsc2UgeworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0
VUludCh2YWx1ZSksIGN1cnJlbnQpOworICB9CisgIGFzc2VydChjdXJyZW50ID49IGJ1ZmZlcik7
CisgIHJldHVybiBjdXJyZW50OwogfQogCi0vLyBDbGFzcyBXcml0ZXIKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
V3JpdGVyOjp+V3JpdGVyKCkKLXsKK1N0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdlc3RVSW50IHZh
bHVlKSB7CisgIFVJbnRUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgIGNoYXIqIGN1cnJlbnQgPSBi
dWZmZXIgKyBzaXplb2YoYnVmZmVyKTsKKyAgdWludFRvU3RyaW5nKHZhbHVlLCBjdXJyZW50KTsK
KyAgYXNzZXJ0KGN1cnJlbnQgPj0gYnVmZmVyKTsKKyAgcmV0dXJuIGN1cnJlbnQ7CiB9CiAKKyNp
ZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitTdHJpbmcgdmFsdWVUb1N0cmluZyhJbnQgdmFs
dWUpIHsgcmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCh2YWx1ZSkpOyB9CiAKLS8vIENs
YXNzIEZhc3RXcml0ZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworU3RyaW5nIHZhbHVlVG9TdHJpbmcoVUludCB2
YWx1ZSkgeyByZXR1cm4gdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCh2YWx1ZSkpOyB9CiAKLUZh
c3RXcml0ZXI6OkZhc3RXcml0ZXIoKQotICAgOiB5YW1sQ29tcGF0aWJsaXR5RW5hYmxlZF8oIGZh
bHNlICkKLXsKLX0KKyNlbmRpZiAvLyAjIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCiAKK25h
bWVzcGFjZSB7CitTdHJpbmcgdmFsdWVUb1N0cmluZyhkb3VibGUgdmFsdWUsCisgICAgICAgICAg
ICAgICAgICAgICBib29sIHVzZVNwZWNpYWxGbG9hdHMsCisgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgcHJlY2lzaW9uLAorICAgICAgICAgICAgICAgICAgICAgUHJlY2lzaW9uVHlw
ZSBwcmVjaXNpb25UeXBlKSB7CisgIC8vIFByaW50IGludG8gdGhlIGJ1ZmZlci4gV2UgbmVlZCBu
b3QgcmVxdWVzdCB0aGUgYWx0ZXJuYXRpdmUgcmVwcmVzZW50YXRpb24KKyAgLy8gdGhhdCBhbHdh
eXMgaGFzIGEgZGVjaW1hbCBwb2ludCBiZWNhdXNlIEpTT04gZG9lc24ndCBkaXN0aW5ndWlzaCB0
aGUKKyAgLy8gY29uY2VwdHMgb2YgcmVhbHMgYW5kIGludGVnZXJzLgorICBpZiAoIWlzZmluaXRl
KHZhbHVlKSkgeworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCByZXBzWzJdWzNdID0ge3si
TmFOIiwgIi1JbmZpbml0eSIsICJJbmZpbml0eSJ9LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsibnVsbCIsICItMWUrOTk5OSIsICIxZSs5OTk5In19OworICAg
IHJldHVybiByZXBzW3VzZVNwZWNpYWxGbG9hdHMgPyAwIDogMV0KKyAgICAgICAgICAgICAgIFtp
c25hbih2YWx1ZSkgPyAwIDogKHZhbHVlIDwgMCkgPyAxIDogMl07CisgIH0KKworICBTdHJpbmcg
YnVmZmVyKHNpemVfdCgzNiksICdcMCcpOworICB3aGlsZSAodHJ1ZSkgeworICAgIGludCBsZW4g
PSBqc29uY3BwX3NucHJpbnRmKAorICAgICAgICAmKmJ1ZmZlci5iZWdpbigpLCBidWZmZXIuc2l6
ZSgpLAorICAgICAgICAocHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb25UeXBlOjpzaWduaWZpY2Fu
dERpZ2l0cykgPyAiJS4qZyIgOiAiJS4qZiIsCisgICAgICAgIHByZWNpc2lvbiwgdmFsdWUpOwor
ICAgIGFzc2VydChsZW4gPj0gMCk7CisgICAgYXV0byB3b3VsZFByaW50ID0gc3RhdGljX2Nhc3Q8
c2l6ZV90PihsZW4pOworICAgIGlmICh3b3VsZFByaW50ID49IGJ1ZmZlci5zaXplKCkpIHsKKyAg
ICAgIGJ1ZmZlci5yZXNpemUod291bGRQcmludCArIDEpOworICAgICAgY29udGludWU7CisgICAg
fQorICAgIGJ1ZmZlci5yZXNpemUod291bGRQcmludCk7CisgICAgYnJlYWs7CisgIH0KKworICBi
dWZmZXIuZXJhc2UoZml4TnVtZXJpY0xvY2FsZShidWZmZXIuYmVnaW4oKSwgYnVmZmVyLmVuZCgp
KSwgYnVmZmVyLmVuZCgpKTsKKworICAvLyBzdHJpcCB0aGUgemVybyBwYWRkaW5nIGZyb20gdGhl
IHJpZ2h0CisgIGlmIChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvblR5cGU6OmRlY2ltYWxQbGFj
ZXMpIHsKKyAgICBidWZmZXIuZXJhc2UoZml4WmVyb3NJblRoZUVuZChidWZmZXIuYmVnaW4oKSwg
YnVmZmVyLmVuZCgpKSwgYnVmZmVyLmVuZCgpKTsKKyAgfQorCisgIC8vIHRyeSB0byBlbnN1cmUg
d2UgcHJlc2VydmUgdGhlIGZhY3QgdGhhdCB0aGlzIHdhcyBnaXZlbiB0byB1cyBhcyBhIGRvdWJs
ZSBvbgorICAvLyBpbnB1dAorICBpZiAoYnVmZmVyLmZpbmQoJy4nKSA9PSBidWZmZXIubnBvcyAm
JiBidWZmZXIuZmluZCgnZScpID09IGJ1ZmZlci5ucG9zKSB7CisgICAgYnVmZmVyICs9ICIuMCI7
CisgIH0KKyAgcmV0dXJuIGJ1ZmZlcjsKK30KK30gLy8gbmFtZXNwYWNlCiAKLXZvaWQgCi1GYXN0
V3JpdGVyOjplbmFibGVZQU1MQ29tcGF0aWJpbGl0eSgpCi17Ci0gICB5YW1sQ29tcGF0aWJsaXR5
RW5hYmxlZF8gPSB0cnVlOworU3RyaW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHByZWNpc2lvbiwKKyAgICAgICAgICAgICAg
ICAgICAgIFByZWNpc2lvblR5cGUgcHJlY2lzaW9uVHlwZSkgeworICByZXR1cm4gdmFsdWVUb1N0
cmluZyh2YWx1ZSwgZmFsc2UsIHByZWNpc2lvbiwgcHJlY2lzaW9uVHlwZSk7CiB9CiAKK1N0cmlu
ZyB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpIHsgcmV0dXJuIHZhbHVlID8gInRydWUiIDogImZh
bHNlIjsgfQorCitzdGF0aWMgYm9vbCBpc0FueUNoYXJSZXF1aXJlZFF1b3RpbmcoY2hhciBjb25z
dCogcywgc2l6ZV90IG4pIHsKKyAgYXNzZXJ0KHMgfHwgIW4pOwogCi1zdGQ6OnN0cmluZyAKLUZh
c3RXcml0ZXI6OndyaXRlKCBjb25zdCBWYWx1ZSAmcm9vdCApCi17Ci0gICBkb2N1bWVudF8gPSAi
IjsKLSAgIHdyaXRlVmFsdWUoIHJvb3QgKTsKLSAgIGRvY3VtZW50XyArPSAiXG4iOwotICAgcmV0
dXJuIGRvY3VtZW50XzsKKyAgY2hhciBjb25zdCogY29uc3QgZW5kID0gcyArIG47CisgIGZvciAo
Y2hhciBjb25zdCogY3VyID0gczsgY3VyIDwgZW5kOyArK2N1cikgeworICAgIGlmICgqY3VyID09
ICdcXCcgfHwgKmN1ciA9PSAnXCInIHx8ICpjdXIgPCAnICcgfHwKKyAgICAgICAgc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4oKmN1cikgPCAweDgwKQorICAgICAgcmV0dXJuIHRydWU7CisgIH0K
KyAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IHV0ZjhUb0NvZGVwb2lu
dChjb25zdCBjaGFyKiYgcywgY29uc3QgY2hhciogZSkgeworICBjb25zdCB1bnNpZ25lZCBpbnQg
UkVQTEFDRU1FTlRfQ0hBUkFDVEVSID0gMHhGRkZEOworCisgIHVuc2lnbmVkIGludCBmaXJzdEJ5
dGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPigqcyk7CisKKyAgaWYgKGZpcnN0Qnl0ZSA8
IDB4ODApCisgICAgcmV0dXJuIGZpcnN0Qnl0ZTsKKworICBpZiAoZmlyc3RCeXRlIDwgMHhFMCkg
eworICAgIGlmIChlIC0gcyA8IDIpCisgICAgICByZXR1cm4gUkVQTEFDRU1FTlRfQ0hBUkFDVEVS
OworCisgICAgdW5zaWduZWQgaW50IGNhbGN1bGF0ZWQgPQorICAgICAgICAoKGZpcnN0Qnl0ZSAm
IDB4MUYpIDw8IDYpIHwgKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oc1sxXSkgJiAweDNGKTsK
KyAgICBzICs9IDE7CisgICAgLy8gb3ZlcnNpemVkIGVuY29kZWQgY2hhcmFjdGVycyBhcmUgaW52
YWxpZAorICAgIHJldHVybiBjYWxjdWxhdGVkIDwgMHg4MCA/IFJFUExBQ0VNRU5UX0NIQVJBQ1RF
UiA6IGNhbGN1bGF0ZWQ7CisgIH0KKworICBpZiAoZmlyc3RCeXRlIDwgMHhGMCkgeworICAgIGlm
IChlIC0gcyA8IDMpCisgICAgICByZXR1cm4gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAg
dW5zaWduZWQgaW50IGNhbGN1bGF0ZWQgPSAoKGZpcnN0Qnl0ZSAmIDB4MEYpIDw8IDEyKSB8Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4o
c1sxXSkgJiAweDNGKSA8PCA2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgaW50PihzWzJdKSAmIDB4M0YpOworICAgIHMgKz0gMjsKKyAgICAv
LyBzdXJyb2dhdGVzIGFyZW4ndCB2YWxpZCBjb2RlcG9pbnRzIGl0c2VsZgorICAgIC8vIHNob3Vs
ZG4ndCBiZSBVVEYtOCBlbmNvZGVkCisgICAgaWYgKGNhbGN1bGF0ZWQgPj0gMHhEODAwICYmIGNh
bGN1bGF0ZWQgPD0gMHhERkZGKQorICAgICAgcmV0dXJuIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsK
KyAgICAvLyBvdmVyc2l6ZWQgZW5jb2RlZCBjaGFyYWN0ZXJzIGFyZSBpbnZhbGlkCisgICAgcmV0
dXJuIGNhbGN1bGF0ZWQgPCAweDgwMCA/IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA6IGNhbGN1bGF0
ZWQ7CisgIH0KKworICBpZiAoZmlyc3RCeXRlIDwgMHhGOCkgeworICAgIGlmIChlIC0gcyA8IDQp
CisgICAgICByZXR1cm4gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgdW5zaWduZWQgaW50
IGNhbGN1bGF0ZWQgPSAoKGZpcnN0Qnl0ZSAmIDB4MDcpIDw8IDE4KSB8CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oc1sxXSkgJiAweDNG
KSA8PCAxMikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdGF0aWNfY2FzdDx1
bnNpZ25lZCBpbnQ+KHNbMl0pICYgMHgzRikgPDwgNikgfAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oc1szXSkgJiAweDNGKTsKKyAgICBz
ICs9IDM7CisgICAgLy8gb3ZlcnNpemVkIGVuY29kZWQgY2hhcmFjdGVycyBhcmUgaW52YWxpZAor
ICAgIHJldHVybiBjYWxjdWxhdGVkIDwgMHgxMDAwMCA/IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA6
IGNhbGN1bGF0ZWQ7CisgIH0KKworICByZXR1cm4gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworfQog
Ci12b2lkIAotRmFzdFdyaXRlcjo6d3JpdGVWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsK
LSAgIHN3aXRjaCAoIHZhbHVlLnR5cGUoKSApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAg
ICAgIGRvY3VtZW50XyArPSAibnVsbCI7CitzdGF0aWMgY29uc3QgY2hhciBoZXgyW10gPSAiMDAw
MTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2YiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiNDA0MTQyNDM0NDQ1NDY0NzQ4NDk0YTRiNGM0ZDRlNGYiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiNTA1MTUyNTM1NDU1NTY1NzU4NTk1YTViNWM1ZDVl
NWYiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZi
NmM2ZDZlNmYiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiNzA3MTcyNzM3NDc1NzY3Nzc4
Nzk3YTdiN2M3ZDdlN2YiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiODA4MTgyODM4NDg1
ODY4Nzg4ODk4YThiOGM4ZDhlOGYiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiOTA5MTky
OTM5NDk1OTY5Nzk4OTk5YTliOWM5ZDllOWYiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAi
YTBhMWEyYTNhNGE1YTZhN2E4YTlhYWFiYWNhZGFlYWYiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYjBiMWIyYjNiNGI1YjZiN2I4YjliYWJiYmNiZGJlYmYiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYzBjMWMyYzNjNGM1YzZjN2M4YzljYWNiY2NjZGNlY2YiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZDBkMWQyZDNkNGQ1ZDZkN2Q4ZDlkYWRiZGNkZGRlZGYiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZTBlMWUyZTNlNGU1ZTZlN2U4ZTllYWViZWNlZGVlZWYi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAiZjBmMWYyZjNmNGY1ZjZmN2Y4ZjlmYWZiZmNm
ZGZlZmYiOworCitzdGF0aWMgU3RyaW5nIHRvSGV4MTZCaXQodW5zaWduZWQgaW50IHgpIHsKKyAg
Y29uc3QgdW5zaWduZWQgaW50IGhpID0gKHggPj4gOCkgJiAweGZmOworICBjb25zdCB1bnNpZ25l
ZCBpbnQgbG8gPSB4ICYgMHhmZjsKKyAgU3RyaW5nIHJlc3VsdCg0LCAnICcpOworICByZXN1bHRb
MF0gPSBoZXgyWzIgKiBoaV07CisgIHJlc3VsdFsxXSA9IGhleDJbMiAqIGhpICsgMV07CisgIHJl
c3VsdFsyXSA9IGhleDJbMiAqIGxvXTsKKyAgcmVzdWx0WzNdID0gaGV4MlsyICogbG8gKyAxXTsK
KyAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFN0cmluZyB2YWx1ZVRvUXVvdGVkU3RyaW5n
Tihjb25zdCBjaGFyKiB2YWx1ZSwgdW5zaWduZWQgbGVuZ3RoKSB7CisgIGlmICh2YWx1ZSA9PSBu
dWxscHRyKQorICAgIHJldHVybiAiIjsKKworICBpZiAoIWlzQW55Q2hhclJlcXVpcmVkUXVvdGlu
Zyh2YWx1ZSwgbGVuZ3RoKSkKKyAgICByZXR1cm4gU3RyaW5nKCJcIiIpICsgdmFsdWUgKyAiXCIi
OworICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5kIGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFy
YWN0ZXJzLgorICAvLyBBcHBlbmRpbmcgdG8gU3RyaW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0
aGlzIHNob3VsZCBiZSByYXJlLgorICAvLyAoTm90ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90
KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBpbmcgdGhlbS4pCisgIFN0cmluZzo6c2l6ZV90eXBl
IG1heHNpemUgPSBsZW5ndGggKiAyICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVMTAorICBT
dHJpbmcgcmVzdWx0OworICByZXN1bHQucmVzZXJ2ZShtYXhzaXplKTsgLy8gdG8gYXZvaWQgbG90
cyBvZiBtYWxsb2NzCisgIHJlc3VsdCArPSAiXCIiOworICBjaGFyIGNvbnN0KiBlbmQgPSB2YWx1
ZSArIGxlbmd0aDsKKyAgZm9yIChjb25zdCBjaGFyKiBjID0gdmFsdWU7IGMgIT0gZW5kOyArK2Mp
IHsKKyAgICBzd2l0Y2ggKCpjKSB7CisgICAgY2FzZSAnXCInOgorICAgICAgcmVzdWx0ICs9ICJc
XFwiIjsKICAgICAgIGJyZWFrOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIGRvY3VtZW50XyAr
PSB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xhcmdlc3RJbnQoKSApOworICAgIGNhc2UgJ1xcJzoK
KyAgICAgIHJlc3VsdCArPSAiXFxcXCI7CiAgICAgICBicmVhazsKLSAgIGNhc2UgdWludFZhbHVl
OgotICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzTGFyZ2VzdFVJbnQo
KSApOworICAgIGNhc2UgJ1xiJzoKKyAgICAgIHJlc3VsdCArPSAiXFxiIjsKICAgICAgIGJyZWFr
OwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZygg
dmFsdWUuYXNEb3VibGUoKSApOworICAgIGNhc2UgJ1xmJzoKKyAgICAgIHJlc3VsdCArPSAiXFxm
IjsKICAgICAgIGJyZWFrOwotICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIGRvY3VtZW50XyAr
PSB2YWx1ZVRvUXVvdGVkU3RyaW5nKCB2YWx1ZS5hc0NTdHJpbmcoKSApOworICAgIGNhc2UgJ1xu
JzoKKyAgICAgIHJlc3VsdCArPSAiXFxuIjsKICAgICAgIGJyZWFrOwotICAgY2FzZSBib29sZWFu
VmFsdWU6Ci0gICAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyggdmFsdWUuYXNCb29sKCkg
KTsKKyAgICBjYXNlICdccic6CisgICAgICByZXN1bHQgKz0gIlxcciI7CiAgICAgICBicmVhazsK
LSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHsKLSAgICAgICAgIGRvY3VtZW50XyArPSAiWyI7
Ci0gICAgICAgICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKLSAgICAgICAgIGZvciAoIGludCBp
bmRleCA9MDsgaW5kZXggPCBzaXplOyArK2luZGV4ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAg
IGlmICggaW5kZXggPiAwICkKLSAgICAgICAgICAgICAgIGRvY3VtZW50XyArPSAiLCI7Ci0gICAg
ICAgICAgICB3cml0ZVZhbHVlKCB2YWx1ZVtpbmRleF0gKTsKLSAgICAgICAgIH0KLSAgICAgICAg
IGRvY3VtZW50XyArPSAiXSI7Ci0gICAgICB9CisgICAgY2FzZSAnXHQnOgorICAgICAgcmVzdWx0
ICs9ICJcXHQiOwogICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgewot
ICAgICAgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyggdmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSAp
OwotICAgICAgICAgZG9jdW1lbnRfICs9ICJ7IjsKLSAgICAgICAgIGZvciAoIFZhbHVlOjpNZW1i
ZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsgCi0gICAgICAgICAgICAgICBpdCAh
PSBtZW1iZXJzLmVuZCgpOyAKLSAgICAgICAgICAgICAgICsraXQgKQotICAgICAgICAgewotICAg
ICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUgPSAqaXQ7Ci0gICAgICAgICAgICBpZiAo
IGl0ICE9IG1lbWJlcnMuYmVnaW4oKSApCi0gICAgICAgICAgICAgICBkb2N1bWVudF8gKz0gIiwi
OwotICAgICAgICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJpbmcoIG5hbWUuY19z
dHIoKSApOwotICAgICAgICAgICAgZG9jdW1lbnRfICs9IHlhbWxDb21wYXRpYmxpdHlFbmFibGVk
XyA/ICI6ICIgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDogIjoiOwotICAgICAgICAgICAgd3JpdGVWYWx1ZSggdmFsdWVbbmFtZV0gKTsKLSAgICAg
ICAgIH0KLSAgICAgICAgIGRvY3VtZW50XyArPSAifSI7CisgICAgLy8gY2FzZSAnLyc6CisgICAg
Ly8gRXZlbiB0aG91Z2ggXC8gaXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVzY2FwZSBpbiBKU09OLCBh
IGJhcmUKKyAgICAvLyBzbGFzaCBpcyBhbHNvIGxlZ2FsLCBzbyBJIHNlZSBubyByZWFzb24gdG8g
ZXNjYXBlIGl0LgorICAgIC8vIChJIGhvcGUgSSBhbSBub3QgbWlzdW5kZXJzdGFuZGluZyBzb21l
dGhpbmcuKQorICAgIC8vIGJsZXAgbm90ZXM6IGFjdHVhbGx5IGVzY2FwaW5nIFwvIG1heSBiZSB1
c2VmdWwgaW4gamF2YXNjcmlwdCB0byBhdm9pZCA8LworICAgIC8vIHNlcXVlbmNlLgorICAgIC8v
IFNob3VsZCBhZGQgYSBmbGFnIHRvIGFsbG93IHRoaXMgY29tcGF0aWJpbGl0eSBtb2RlIGFuZCBw
cmV2ZW50IHRoaXMKKyAgICAvLyBzZXF1ZW5jZSBmcm9tIG9jY3VycmluZy4KKyAgICBkZWZhdWx0
OiB7CisgICAgICB1bnNpZ25lZCBpbnQgY3AgPSB1dGY4VG9Db2RlcG9pbnQoYywgZW5kKTsKKyAg
ICAgIC8vIGRvbid0IGVzY2FwZSBub24tY29udHJvbCBjaGFyYWN0ZXJzCisgICAgICAvLyAoc2hv
cnQgZXNjYXBlIHNlcXVlbmNlIGFyZSBhcHBsaWVkIGFib3ZlKQorICAgICAgaWYgKGNwIDwgMHg4
MCAmJiBjcCA+PSAweDIwKQorICAgICAgICByZXN1bHQgKz0gc3RhdGljX2Nhc3Q8Y2hhcj4oY3Ap
OworICAgICAgZWxzZSBpZiAoY3AgPCAweDEwMDAwKSB7IC8vIGNvZGVwb2ludCBpcyBpbiBCYXNp
YyBNdWx0aWxpbmd1YWwgUGxhbmUKKyAgICAgICAgcmVzdWx0ICs9ICJcXHUiOworICAgICAgICBy
ZXN1bHQgKz0gdG9IZXgxNkJpdChjcCk7CisgICAgICB9IGVsc2UgeyAvLyBjb2RlcG9pbnQgaXMg
bm90IGluIEJhc2ljIE11bHRpbGluZ3VhbCBQbGFuZQorICAgICAgICAgICAgICAgLy8gY29udmVy
dCB0byBzdXJyb2dhdGUgcGFpciBmaXJzdAorICAgICAgICBjcCAtPSAweDEwMDAwOworICAgICAg
ICByZXN1bHQgKz0gIlxcdSI7CisgICAgICAgIHJlc3VsdCArPSB0b0hleDE2Qml0KChjcCA+PiAx
MCkgKyAweEQ4MDApOworICAgICAgICByZXN1bHQgKz0gIlxcdSI7CisgICAgICAgIHJlc3VsdCAr
PSB0b0hleDE2Qml0KChjcCAmIDB4M0ZGKSArIDB4REMwMCk7CiAgICAgICB9Ci0gICAgICBicmVh
azsKLSAgIH0KKyAgICB9IGJyZWFrOworICAgIH0KKyAgfQorICByZXN1bHQgKz0gIlwiIjsKKyAg
cmV0dXJuIHJlc3VsdDsKIH0KIAorU3RyaW5nIHZhbHVlVG9RdW90ZWRTdHJpbmcoY29uc3QgY2hh
ciogdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlVG9RdW90ZWRTdHJpbmdOKHZhbHVlLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZCBpbnQ+KHN0cmxlbih2YWx1ZSkpKTsKK30KIAotLy8gQ2xhc3MgU3R5bGVk
V3JpdGVyCisvLyBDbGFzcyBXcml0ZXIKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworV3JpdGVyOjp+V3JpdGVyKCkg
PSBkZWZhdWx0OwogCi1TdHlsZWRXcml0ZXI6OlN0eWxlZFdyaXRlcigpCi0gICA6IHJpZ2h0TWFy
Z2luXyggNzQgKQotICAgLCBpbmRlbnRTaXplXyggMyApCi0gICAsIGFkZENoaWxkVmFsdWVzXygp
Ci17Ci19CisvLyBDbGFzcyBGYXN0V3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworRmFzdFdyaXRlcjo6
RmFzdFdyaXRlcigpCisKKyAgICA9IGRlZmF1bHQ7CisKK3ZvaWQgRmFzdFdyaXRlcjo6ZW5hYmxl
WUFNTENvbXBhdGliaWxpdHkoKSB7IHlhbWxDb21wYXRpYmlsaXR5RW5hYmxlZF8gPSB0cnVlOyB9
CiAKK3ZvaWQgRmFzdFdyaXRlcjo6ZHJvcE51bGxQbGFjZWhvbGRlcnMoKSB7IGRyb3BOdWxsUGxh
Y2Vob2xkZXJzXyA9IHRydWU7IH0KIAotc3RkOjpzdHJpbmcgCi1TdHlsZWRXcml0ZXI6OndyaXRl
KCBjb25zdCBWYWx1ZSAmcm9vdCApCi17Ci0gICBkb2N1bWVudF8gPSAiIjsKLSAgIGFkZENoaWxk
VmFsdWVzXyA9IGZhbHNlOwotICAgaW5kZW50U3RyaW5nXyA9ICIiOwotICAgd3JpdGVDb21tZW50
QmVmb3JlVmFsdWUoIHJvb3QgKTsKLSAgIHdyaXRlVmFsdWUoIHJvb3QgKTsKLSAgIHdyaXRlQ29t
bWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKCByb290ICk7Ci0gICBkb2N1bWVudF8gKz0gIlxuIjsK
LSAgIHJldHVybiBkb2N1bWVudF87Cit2b2lkIEZhc3RXcml0ZXI6Om9taXRFbmRpbmdMaW5lRmVl
ZCgpIHsgb21pdEVuZGluZ0xpbmVGZWVkXyA9IHRydWU7IH0KKworU3RyaW5nIEZhc3RXcml0ZXI6
OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50Xy5jbGVhcigpOworICB3cml0
ZVZhbHVlKHJvb3QpOworICBpZiAoIW9taXRFbmRpbmdMaW5lRmVlZF8pCisgICAgZG9jdW1lbnRf
ICs9ICdcbic7CisgIHJldHVybiBkb2N1bWVudF87CiB9CiAKK3ZvaWQgRmFzdFdyaXRlcjo6d3Jp
dGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsK
KyAgY2FzZSBudWxsVmFsdWU6CisgICAgaWYgKCFkcm9wTnVsbFBsYWNlaG9sZGVyc18pCisgICAg
ICBkb2N1bWVudF8gKz0gIm51bGwiOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAg
IGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKTsKKyAgICBi
cmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNMYXJnZXN0VUludCgpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6Cisg
ICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSk7CisgICAgYnJl
YWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6IHsKKyAgICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2
YWx1ZS5zdHJpbmdfPyBOby4KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgY2hhciBjb25zdCog
ZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYg
KG9rKQorICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGVuZCAtIHN0cikpOworICAgIGJyZWFrOworICB9CisgIGNhc2UgYm9v
bGVhblZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgp
KTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOiB7CisgICAgZG9jdW1lbnRfICs9ICdb
JzsKKyAgICBBcnJheUluZGV4IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgICAgZm9yIChBcnJheUlu
ZGV4IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaW5kZXgg
PiAwKQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOworICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtp
bmRleF0pOworICAgIH0KKyAgICBkb2N1bWVudF8gKz0gJ10nOworICB9IGJyZWFrOworICBjYXNl
IG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1i
ZXJOYW1lcygpKTsKKyAgICBkb2N1bWVudF8gKz0gJ3snOworICAgIGZvciAoYXV0byBpdCA9IG1l
bWJlcnMuYmVnaW4oKTsgaXQgIT0gbWVtYmVycy5lbmQoKTsgKytpdCkgeworICAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lID0gKml0OworICAgICAgaWYgKGl0ICE9IG1lbWJlcnMuYmVnaW4oKSkKKyAg
ICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvUXVvdGVk
U3RyaW5nTihuYW1lLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkpOworICAgICAgZG9jdW1l
bnRfICs9IHlhbWxDb21wYXRpYmlsaXR5RW5hYmxlZF8gPyAiOiAiIDogIjoiOworICAgICAgd3Jp
dGVWYWx1ZSh2YWx1ZVtuYW1lXSk7CisgICAgfQorICAgIGRvY3VtZW50XyArPSAnfSc7CisgIH0g
YnJlYWs7CisgIH0KK30KIAotdm9pZCAKLVN0eWxlZFdyaXRlcjo6d3JpdGVWYWx1ZSggY29uc3Qg
VmFsdWUgJnZhbHVlICkKLXsKLSAgIHN3aXRjaCAoIHZhbHVlLnR5cGUoKSApCi0gICB7Ci0gICBj
YXNlIG51bGxWYWx1ZToKLSAgICAgIHB1c2hWYWx1ZSggIm51bGwiICk7Ci0gICAgICBicmVhazsK
LSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoIHZhbHVlVG9TdHJpbmcoIHZhbHVl
LmFzTGFyZ2VzdEludCgpICkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgICBwdXNoVmFsdWUoIHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSApICk7
Ci0gICAgICBicmVhazsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1
ZVRvU3RyaW5nKCB2YWx1ZS5hc0RvdWJsZSgpICkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBz
dHJpbmdWYWx1ZToKLSAgICAgIHB1c2hWYWx1ZSggdmFsdWVUb1F1b3RlZFN0cmluZyggdmFsdWUu
YXNDU3RyaW5nKCkgKSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICAgIHB1c2hWYWx1ZSggdmFsdWVUb1N0cmluZyggdmFsdWUuYXNCb29sKCkgKSApOwotICAgICAg
YnJlYWs7Ci0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICB3cml0ZUFycmF5VmFsdWUoIHZhbHVl
KTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHsKLSAgICAgICAg
IFZhbHVlOjpNZW1iZXJzIG1lbWJlcnMoIHZhbHVlLmdldE1lbWJlck5hbWVzKCkgKTsKLSAgICAg
ICAgIGlmICggbWVtYmVycy5lbXB0eSgpICkKLSAgICAgICAgICAgIHB1c2hWYWx1ZSggInt9IiAp
OwotICAgICAgICAgZWxzZQotICAgICAgICAgewotICAgICAgICAgICAgd3JpdGVXaXRoSW5kZW50
KCAieyIgKTsKLSAgICAgICAgICAgIGluZGVudCgpOwotICAgICAgICAgICAgVmFsdWU6Ok1lbWJl
cnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOwotICAgICAgICAgICAgZm9yICg7OykK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lID0g
Kml0OwotICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmNoaWxkVmFsdWUgPSB2YWx1ZVtuYW1l
XTsKLSAgICAgICAgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKCBjaGlsZFZhbHVlICk7
Ci0gICAgICAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoIHZhbHVlVG9RdW90ZWRTdHJpbmcoIG5h
bWUuY19zdHIoKSApICk7Ci0gICAgICAgICAgICAgICBkb2N1bWVudF8gKz0gIiA6ICI7Ci0gICAg
ICAgICAgICAgICB3cml0ZVZhbHVlKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICAgICBpZiAo
ICsraXQgPT0gbWVtYmVycy5lbmQoKSApCi0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY2hpbGRWYWx1ZSApOwotICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBk
b2N1bWVudF8gKz0gIiwiOwotICAgICAgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9u
U2FtZUxpbmUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVuaW5k
ZW50KCk7Ci0gICAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoICJ9IiApOwotICAgICAgICAgfQot
ICAgICAgfQotICAgICAgYnJlYWs7Ci0gICB9Ci19Ci0KLQotdm9pZCAKLVN0eWxlZFdyaXRlcjo6
d3JpdGVBcnJheVZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsdWUgKQotewotICAgdW5zaWduZWQgc2l6
ZSA9IHZhbHVlLnNpemUoKTsKLSAgIGlmICggc2l6ZSA9PSAwICkKLSAgICAgIHB1c2hWYWx1ZSgg
IltdIiApOwotICAgZWxzZQotICAgewotICAgICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNN
dWx0aW5lQXJyYXkoIHZhbHVlICk7Ci0gICAgICBpZiAoIGlzQXJyYXlNdWx0aUxpbmUgKQotICAg
ICAgewotICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCAiWyIgKTsKLSAgICAgICAgIGluZGVudCgp
OwotICAgICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0eSgpOwot
ICAgICAgICAgdW5zaWduZWQgaW5kZXggPTA7Ci0gICAgICAgICBmb3IgKDs7KQotICAgICAgICAg
ewotICAgICAgICAgICAgY29uc3QgVmFsdWUgJmNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07Ci0g
ICAgICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSggY2hpbGRWYWx1ZSApOwotICAgICAg
ICAgICAgaWYgKCBoYXNDaGlsZFZhbHVlICkKLSAgICAgICAgICAgICAgIHdyaXRlV2l0aEluZGVu
dCggY2hpbGRWYWx1ZXNfW2luZGV4XSApOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQoKTsKLSAgICAgICAgICAgICAgIHdyaXRlVmFs
dWUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICggKytpbmRl
eCA9PSBzaXplICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRvY3VtZW50XyArPSAiLCI7Ci0gICAgICAgICAg
ICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY2hpbGRWYWx1ZSApOwotICAgICAg
ICAgfQotICAgICAgICAgdW5pbmRlbnQoKTsKLSAgICAgICAgIHdyaXRlV2l0aEluZGVudCggIl0i
ICk7CisvLyBDbGFzcyBTdHlsZWRXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitTdHlsZWRXcml0ZXI6
OlN0eWxlZFdyaXRlcigpID0gZGVmYXVsdDsKKworU3RyaW5nIFN0eWxlZFdyaXRlcjo6d3JpdGUo
Y29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgZG9jdW1lbnRfLmNsZWFyKCk7CisgIGFkZENoaWxkVmFs
dWVzXyA9IGZhbHNlOworICBpbmRlbnRTdHJpbmdfLmNsZWFyKCk7CisgIHdyaXRlQ29tbWVudEJl
Zm9yZVZhbHVlKHJvb3QpOworICB3cml0ZVZhbHVlKHJvb3QpOworICB3cml0ZUNvbW1lbnRBZnRl
clZhbHVlT25TYW1lTGluZShyb290KTsKKyAgZG9jdW1lbnRfICs9ICdcbic7CisgIHJldHVybiBk
b2N1bWVudF87Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVl
JiB2YWx1ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToK
KyAgICBwdXNoVmFsdWUoIm51bGwiKTsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAg
ICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOworICAgIGJy
ZWFrOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1
ZS5hc0xhcmdlc3RVSW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAg
cHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSkpOworICAgIGJyZWFrOwor
ICBjYXNlIHN0cmluZ1ZhbHVlOiB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3IgdmFsdWUu
c3RyaW5nXz8gTm8uCisgICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsK
KyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykK
KyAgICAgIHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihlbmQgLSBzdHIpKSk7CisgICAgZWxzZQorICAgICAgcHVzaFZhbHVlKCIiKTsKKyAg
ICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVU
b1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6
CisgICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RW
YWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMo
KSk7CisgICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAg
ICBlbHNlIHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7Cisg
ICAgICBhdXRvIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAgICAgZm9yICg7OykgeworICAgICAg
ICBjb25zdCBTdHJpbmcmIG5hbWUgPSAqaXQ7CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZh
bHVlID0gdmFsdWVbbmFtZV07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxk
VmFsdWUpOworICAgICAgICB3cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZyhuYW1l
LmNfc3RyKCkpKTsKKyAgICAgICAgZG9jdW1lbnRfICs9ICIgOiAiOworICAgICAgICB3cml0ZVZh
bHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7Cisg
ICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Cisg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAg
ICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CiAgICAg
ICB9Ci0gICAgICBlbHNlIC8vIG91dHB1dCBvbiBhIHNpbmdsZSBsaW5lCi0gICAgICB7Ci0gICAg
ICAgICBhc3NlcnQoIGNoaWxkVmFsdWVzXy5zaXplKCkgPT0gc2l6ZSApOwotICAgICAgICAgZG9j
dW1lbnRfICs9ICJbICI7Ci0gICAgICAgICBmb3IgKCB1bnNpZ25lZCBpbmRleCA9MDsgaW5kZXgg
PCBzaXplOyArK2luZGV4ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICggaW5kZXggPiAw
ICkKLSAgICAgICAgICAgICAgIGRvY3VtZW50XyArPSAiLCAiOwotICAgICAgICAgICAgZG9jdW1l
bnRfICs9IGNoaWxkVmFsdWVzX1tpbmRleF07Ci0gICAgICAgICB9Ci0gICAgICAgICBkb2N1bWVu
dF8gKz0gIiBdIjsKKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0i
KTsKKyAgICB9CisgIH0gYnJlYWs7CisgIH0KK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRl
QXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVl
LnNpemUoKTsKKyAgaWYgKHNpemUgPT0gMCkKKyAgICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2Ug
eworICAgIGJvb2wgaXNBcnJheU11bHRpTGluZSA9IGlzTXVsdGlsaW5lQXJyYXkodmFsdWUpOwor
ICAgIGlmIChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsK
KyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVz
Xy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9yICg7Oykgewor
ICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICAgICAg
d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmIChoYXNDaGls
ZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICB3cml0
ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlmICgrK2luZGV4ID09IHNp
emUpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZh
bHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudF8gKz0g
JywnOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVl
KTsKICAgICAgIH0KLSAgIH0KLX0KLQotCi1ib29sIAotU3R5bGVkV3JpdGVyOjppc011bHRpbmVB
cnJheSggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAgIGludCBzaXplID0gdmFsdWUuc2l6ZSgp
OwotICAgYm9vbCBpc011bHRpTGluZSA9IHNpemUqMyA+PSByaWdodE1hcmdpbl8gOwotICAgY2hp
bGRWYWx1ZXNfLmNsZWFyKCk7Ci0gICBmb3IgKCBpbnQgaW5kZXggPTA7IGluZGV4IDwgc2l6ZSAg
JiYgICFpc011bHRpTGluZTsgKytpbmRleCApCi0gICB7Ci0gICAgICBjb25zdCBWYWx1ZSAmY2hp
bGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKLSAgICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUg
IHx8Ci0gICAgICAgICAgICAgICAgICAgICAoIChjaGlsZFZhbHVlLmlzQXJyYXkoKSAgfHwgIGNo
aWxkVmFsdWUuaXNPYmplY3QoKSkgICYmICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
VmFsdWUuc2l6ZSgpID4gMCApOwotICAgfQotICAgaWYgKCAhaXNNdWx0aUxpbmUgKSAvLyBjaGVj
ayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxlbmd0aAotICAgewotICAgICAgY2hpbGRWYWx1
ZXNfLnJlc2VydmUoIHNpemUgKTsKLSAgICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7Ci0gICAg
ICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZS0xKSoyOyAvLyAnWyAnICsgJywgJypuICsgJyBd
JwotICAgICAgZm9yICggaW50IGluZGV4ID0wOyBpbmRleCA8IHNpemUgICYmICAhaXNNdWx0aUxp
bmU7ICsraW5kZXggKQotICAgICAgewotICAgICAgICAgd3JpdGVWYWx1ZSggdmFsdWVbaW5kZXhd
ICk7Ci0gICAgICAgICBsaW5lTGVuZ3RoICs9IGludCggY2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5n
dGgoKSApOwotICAgICAgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGluZSAgJiYgIGhhc0NvbW1l
bnRGb3JWYWx1ZSggdmFsdWVbaW5kZXhdICk7CisgICAgICB1bmluZGVudCgpOworICAgICAgd3Jp
dGVXaXRoSW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBvbiBhIHNpbmdsZSBsaW5l
CisgICAgeworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkgPT0gc2l6ZSk7CisgICAg
ICBkb2N1bWVudF8gKz0gIlsgIjsKKyAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRl
eCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgICBk
b2N1bWVudF8gKz0gIiwgIjsKKyAgICAgICAgZG9jdW1lbnRfICs9IGNoaWxkVmFsdWVzX1tpbmRl
eF07CiAgICAgICB9Ci0gICAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKLSAgICAgIGlzTXVs
dGlMaW5lID0gaXNNdWx0aUxpbmUgIHx8ICBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKLSAg
IH0KLSAgIHJldHVybiBpc011bHRpTGluZTsKKyAgICAgIGRvY3VtZW50XyArPSAiIF0iOworICAg
IH0KKyAgfQogfQogCitib29sIFN0eWxlZFdyaXRlcjo6aXNNdWx0aWxpbmVBcnJheShjb25zdCBW
YWx1ZSYgdmFsdWUpIHsKKyAgQXJyYXlJbmRleCBjb25zdCBzaXplID0gdmFsdWUuc2l6ZSgpOwor
ICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmlnaHRNYXJnaW5fOworICBjaGlsZFZh
bHVlc18uY2xlYXIoKTsKKyAgZm9yIChBcnJheUluZGV4IGluZGV4ID0gMDsgaW5kZXggPCBzaXpl
ICYmICFpc011bHRpTGluZTsgKytpbmRleCkgeworICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVl
ID0gdmFsdWVbaW5kZXhdOworICAgIGlzTXVsdGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXko
KSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkpICYmCisgICAgICAgICAgICAgICAgICAgIWNoaWxk
VmFsdWUuZW1wdHkoKSk7CisgIH0KKyAgaWYgKCFpc011bHRpTGluZSkgLy8gY2hlY2sgaWYgbGlu
ZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAgIGNoaWxkVmFsdWVzXy5yZXNlcnZl
KHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7CisgICAgQXJyYXlJbmRleCBsaW5l
TGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAyOyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAg
IGZvciAoQXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAg
ICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7CisgICAgICAgIGlzTXVs
dGlMaW5lID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsK
KyAgICAgIGxpbmVMZW5ndGggKz0gc3RhdGljX2Nhc3Q8QXJyYXlJbmRleD4oY2hpbGRWYWx1ZXNf
W2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOwor
ICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSByaWdodE1hcmdp
bl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOworfQogCi12b2lkIAotU3R5bGVkV3JpdGVy
OjpwdXNoVmFsdWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YWx1ZSApCi17Ci0gICBpZiAoIGFkZENo
aWxkVmFsdWVzXyApCi0gICAgICBjaGlsZFZhbHVlc18ucHVzaF9iYWNrKCB2YWx1ZSApOwotICAg
ZWxzZQotICAgICAgZG9jdW1lbnRfICs9IHZhbHVlOwordm9pZCBTdHlsZWRXcml0ZXI6OnB1c2hW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVlc18pCisgICAg
Y2hpbGRWYWx1ZXNfLnB1c2hfYmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICBkb2N1bWVudF8gKz0g
dmFsdWU7CiB9CiAKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgaWYgKCFk
b2N1bWVudF8uZW1wdHkoKSkgeworICAgIGNoYXIgbGFzdCA9IGRvY3VtZW50X1tkb2N1bWVudF8u
bGVuZ3RoKCkgLSAxXTsKKyAgICBpZiAobGFzdCA9PSAnICcpIC8vIGFscmVhZHkgaW5kZW50ZWQK
KyAgICAgIHJldHVybjsKKyAgICBpZiAobGFzdCAhPSAnXG4nKSAvLyBDb21tZW50cyBtYXkgYWRk
IG5ldy1saW5lCisgICAgICBkb2N1bWVudF8gKz0gJ1xuJzsKKyAgfQorICBkb2N1bWVudF8gKz0g
aW5kZW50U3RyaW5nXzsKK30KIAotdm9pZCAKLVN0eWxlZFdyaXRlcjo6d3JpdGVJbmRlbnQoKQot
ewotICAgaWYgKCAhZG9jdW1lbnRfLmVtcHR5KCkgKQotICAgewotICAgICAgY2hhciBsYXN0ID0g
ZG9jdW1lbnRfW2RvY3VtZW50Xy5sZW5ndGgoKS0xXTsKLSAgICAgIGlmICggbGFzdCA9PSAnICcg
KSAgICAgLy8gYWxyZWFkeSBpbmRlbnRlZAotICAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKCBs
YXN0ICE9ICdcbicgKSAgICAvLyBDb21tZW50cyBtYXkgYWRkIG5ldy1saW5lCi0gICAgICAgICBk
b2N1bWVudF8gKz0gJ1xuJzsKLSAgIH0KLSAgIGRvY3VtZW50XyArPSBpbmRlbnRTdHJpbmdfOwor
dm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudChjb25zdCBTdHJpbmcmIHZhbHVlKSB7
CisgIHdyaXRlSW5kZW50KCk7CisgIGRvY3VtZW50XyArPSB2YWx1ZTsKIH0KIAordm9pZCBTdHls
ZWRXcml0ZXI6OmluZGVudCgpIHsgaW5kZW50U3RyaW5nXyArPSBTdHJpbmcoaW5kZW50U2l6ZV8s
ICcgJyk7IH0KKwordm9pZCBTdHlsZWRXcml0ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW5k
ZW50U3RyaW5nXy5zaXplKCkgPj0gaW5kZW50U2l6ZV8pOworICBpbmRlbnRTdHJpbmdfLnJlc2l6
ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudFNpemVfKTsKK30KIAotdm9pZCAKLVN0eWxl
ZFdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKQotewot
ICAgd3JpdGVJbmRlbnQoKTsKLSAgIGRvY3VtZW50XyArPSB2YWx1ZTsKK3ZvaWQgU3R5bGVkV3Jp
dGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAo
IXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSkKKyAgICByZXR1cm47CisKKyAgZG9jdW1l
bnRfICs9ICdcbic7CisgIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IFN0cmluZyYgY29tbWVudCA9
IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKKyAgU3RyaW5nOjpjb25zdF9pdGVyYXRv
ciBpdGVyID0gY29tbWVudC5iZWdpbigpOworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgp
KSB7CisgICAgZG9jdW1lbnRfICs9ICppdGVyOworICAgIGlmICgqaXRlciA9PSAnXG4nICYmICgo
aXRlciArIDEpICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0gJy8nKSkKKyAgICAg
IHdyaXRlSW5kZW50KCk7CisgICAgKytpdGVyOworICB9CisKKyAgLy8gQ29tbWVudHMgYXJlIHN0
cmlwcGVkIG9mIHRyYWlsaW5nIG5ld2xpbmVzLCBzbyBhZGQgb25lIGhlcmUKKyAgZG9jdW1lbnRf
ICs9ICdcbic7CiB9CiAKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVl
T25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAocm9vdC5oYXNDb21tZW50KGNv
bW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgIGRvY3VtZW50XyArPSAiICIgKyByb290LmdldENv
bW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisKKyAgaWYgKHJvb3QuaGFzQ29tbWVudChj
b21tZW50QWZ0ZXIpKSB7CisgICAgZG9jdW1lbnRfICs9ICdcbic7CisgICAgZG9jdW1lbnRfICs9
IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXIpOworICAgIGRvY3VtZW50XyArPSAnXG4nOwor
ICB9Cit9CiAKLXZvaWQgCi1TdHlsZWRXcml0ZXI6OmluZGVudCgpCi17Ci0gICBpbmRlbnRTdHJp
bmdfICs9IHN0ZDo6c3RyaW5nKCBpbmRlbnRTaXplXywgJyAnICk7Citib29sIFN0eWxlZFdyaXRl
cjo6aGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICByZXR1cm4gdmFs
dWUuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVu
dChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChj
b21tZW50QWZ0ZXIpOwogfQogCisvLyBDbGFzcyBTdHlsZWRTdHJlYW1Xcml0ZXIKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCi12b2lkIAotU3R5bGVkV3JpdGVyOjp1bmluZGVudCgpCi17Ci0gICBhc3NlcnQoIGlu
dChpbmRlbnRTdHJpbmdfLnNpemUoKSkgPj0gaW5kZW50U2l6ZV8gKTsKLSAgIGluZGVudFN0cmlu
Z18ucmVzaXplKCBpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudFNpemVfICk7CitTdHlsZWRT
dHJlYW1Xcml0ZXI6OlN0eWxlZFN0cmVhbVdyaXRlcihTdHJpbmcgaW5kZW50YXRpb24pCisgICAg
OiBkb2N1bWVudF8obnVsbHB0ciksIGluZGVudGF0aW9uXyhzdGQ6Om1vdmUoaW5kZW50YXRpb24p
KSwKKyAgICAgIGFkZENoaWxkVmFsdWVzXygpLCBpbmRlbnRlZF8oZmFsc2UpIHt9CisKK3ZvaWQg
U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZShPU3RyZWFtJiBvdXQsIGNvbnN0IFZhbHVlJiByb290
KSB7CisgIGRvY3VtZW50XyA9ICZvdXQ7CisgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOworICBp
bmRlbnRTdHJpbmdfLmNsZWFyKCk7CisgIGluZGVudGVkXyA9IHRydWU7CisgIHdyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKHJvb3QpOworICBpZiAoIWluZGVudGVkXykKKyAgICB3cml0ZUluZGVudCgp
OworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZVZhbHVlKHJvb3QpOworICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsKKyAgKmRvY3VtZW50XyA8PCAiXG4iOworICBk
b2N1bWVudF8gPSBudWxscHRyOyAvLyBGb3JnZXQgdGhlIHN0cmVhbSwgZm9yIHNhZmV0eS4KIH0K
IAordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVl
KSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHB1
c2hWYWx1ZSgibnVsbCIpOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAgIHB1c2hW
YWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKSk7CisgICAgYnJlYWs7Cisg
IGNhc2UgdWludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFy
Z2VzdFVJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBwdXNoVmFs
dWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKSk7CisgICAgYnJlYWs7CisgIGNhc2Ug
c3RyaW5nVmFsdWU6IHsKKyAgICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdf
PyBOby4KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgY2hhciBjb25zdCogZW5kOworICAgIGJv
b2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYgKG9rKQorICAgICAg
cHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGVuZCAtIHN0cikpKTsKKyAgICBlbHNlCisgICAgICBwdXNoVmFsdWUoIiIpOworICAgIGJyZWFr
OworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5n
KHZhbHVlLmFzQm9vbCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICB3
cml0ZUFycmF5VmFsdWUodmFsdWUpOworICAgIGJyZWFrOworICBjYXNlIG9iamVjdFZhbHVlOiB7
CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygpKTsKKyAg
ICBpZiAobWVtYmVycy5lbXB0eSgpKQorICAgICAgcHVzaFZhbHVlKCJ7fSIpOworICAgIGVsc2Ug
eworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGF1
dG8gaXQgPSBtZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAgIGNvbnN0
IFN0cmluZyYgbmFtZSA9ICppdDsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNoaWxkVmFsdWUgPSB2
YWx1ZVtuYW1lXTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7
CisgICAgICAgIHdyaXRlV2l0aEluZGVudCh2YWx1ZVRvUXVvdGVkU3RyaW5nKG5hbWUuY19zdHIo
KSkpOworICAgICAgICAqZG9jdW1lbnRfIDw8ICIgOiAiOworICAgICAgICB3cml0ZVZhbHVlKGNo
aWxkVmFsdWUpOworICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7CisgICAgICAg
ICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKmRvY3VtZW50XyA8PCAiLCI7CisgICAgICAg
IHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQor
ICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgifSIpOworICAgIH0KKyAg
fSBicmVhazsKKyAgfQorfQogCi12b2lkIAotU3R5bGVkV3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZv
cmVWYWx1ZSggY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAgaWYgKCAhcm9vdC5oYXNDb21tZW50
KCBjb21tZW50QmVmb3JlICkgKQotICAgICAgcmV0dXJuOwotICAgZG9jdW1lbnRfICs9IG5vcm1h
bGl6ZUVPTCggcm9vdC5nZXRDb21tZW50KCBjb21tZW50QmVmb3JlICkgKTsKLSAgIGRvY3VtZW50
XyArPSAiXG4iOwotfQotCi0KLXZvaWQgCi1TdHlsZWRXcml0ZXI6OndyaXRlQ29tbWVudEFmdGVy
VmFsdWVPblNhbWVMaW5lKCBjb25zdCBWYWx1ZSAmcm9vdCApCi17Ci0gICBpZiAoIHJvb3QuaGFz
Q29tbWVudCggY29tbWVudEFmdGVyT25TYW1lTGluZSApICkKLSAgICAgIGRvY3VtZW50XyArPSAi
ICIgKyBub3JtYWxpemVFT0woIHJvb3QuZ2V0Q29tbWVudCggY29tbWVudEFmdGVyT25TYW1lTGlu
ZSApICk7Ci0KLSAgIGlmICggcm9vdC5oYXNDb21tZW50KCBjb21tZW50QWZ0ZXIgKSApCi0gICB7
Ci0gICAgICBkb2N1bWVudF8gKz0gIlxuIjsKLSAgICAgIGRvY3VtZW50XyArPSBub3JtYWxpemVF
T0woIHJvb3QuZ2V0Q29tbWVudCggY29tbWVudEFmdGVyICkgKTsKLSAgICAgIGRvY3VtZW50XyAr
PSAiXG4iOwotICAgfQotfQotCi0KLWJvb2wgCi1TdHlsZWRXcml0ZXI6Omhhc0NvbW1lbnRGb3JW
YWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50
KCBjb21tZW50QmVmb3JlICkKLSAgICAgICAgICB8fCAgdmFsdWUuaGFzQ29tbWVudCggY29tbWVu
dEFmdGVyT25TYW1lTGluZSApCi0gICAgICAgICAgfHwgIHZhbHVlLmhhc0NvbW1lbnQoIGNvbW1l
bnRBZnRlciApOwotfQotCi0KLXN0ZDo6c3RyaW5nIAotU3R5bGVkV3JpdGVyOjpub3JtYWxpemVF
T0woIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0ICkKLXsKLSAgIHN0ZDo6c3RyaW5nIG5vcm1hbGl6
ZWQ7Ci0gICBub3JtYWxpemVkLnJlc2VydmUoIHRleHQubGVuZ3RoKCkgKTsKLSAgIGNvbnN0IGNo
YXIgKmJlZ2luID0gdGV4dC5jX3N0cigpOwotICAgY29uc3QgY2hhciAqZW5kID0gYmVnaW4gKyB0
ZXh0Lmxlbmd0aCgpOwotICAgY29uc3QgY2hhciAqY3VycmVudCA9IGJlZ2luOwotICAgd2hpbGUg
KCBjdXJyZW50ICE9IGVuZCApCi0gICB7Ci0gICAgICBjaGFyIGMgPSAqY3VycmVudCsrOwotICAg
ICAgaWYgKCBjID09ICdccicgKSAvLyBtYWMgb3IgZG9zIEVPTAotICAgICAgewotICAgICAgICAg
aWYgKCAqY3VycmVudCA9PSAnXG4nICkgLy8gY29udmVydCBkb3MgRU9MCi0gICAgICAgICAgICAr
K2N1cnJlbnQ7Ci0gICAgICAgICBub3JtYWxpemVkICs9ICdcbic7Cit2b2lkIFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICB1bnNpZ25l
ZCBzaXplID0gdmFsdWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgi
W10iKTsKKyAgZWxzZSB7CisgICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNNdWx0aWxpbmVB
cnJheSh2YWx1ZSk7CisgICAgaWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsKKyAgICAgIHdyaXRlV2l0
aEluZGVudCgiWyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBib29sIGhhc0NoaWxkVmFsdWUg
PSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7CisgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAg
ICBmb3IgKDs7KSB7CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbaW5k
ZXhdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAg
ICAgaWYgKGhhc0NoaWxkVmFsdWUpCisgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KGNoaWxkVmFs
dWVzX1tpbmRleF0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICBpZiAoIWluZGVudGVkXykK
KyAgICAgICAgICAgIHdyaXRlSW5kZW50KCk7CisgICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsK
KyAgICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICAgIGluZGVudGVkXyA9
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsKKyAgICAg
ICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKKyAgICAg
ICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CiAgICAgICB9
Ci0gICAgICBlbHNlIC8vIGhhbmRsZSB1bml4IEVPTCAmIG90aGVyIGNoYXIKLSAgICAgICAgIG5v
cm1hbGl6ZWQgKz0gYzsKLSAgIH0KLSAgIHJldHVybiBub3JtYWxpemVkOworICAgICAgdW5pbmRl
bnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOworICAgIH0gZWxzZSAvLyBvdXRwdXQg
b24gYSBzaW5nbGUgbGluZQorICAgIHsKKyAgICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgp
ID09IHNpemUpOworICAgICAgKmRvY3VtZW50XyA8PCAiWyAiOworICAgICAgZm9yICh1bnNpZ25l
ZCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgICBpZiAoaW5kZXgg
PiAwKQorICAgICAgICAgICpkb2N1bWVudF8gPDwgIiwgIjsKKyAgICAgICAgKmRvY3VtZW50XyA8
PCBjaGlsZFZhbHVlc19baW5kZXhdOworICAgICAgfQorICAgICAgKmRvY3VtZW50XyA8PCAiIF0i
OworICAgIH0KKyAgfQogfQogCitib29sIFN0eWxlZFN0cmVhbVdyaXRlcjo6aXNNdWx0aWxpbmVB
cnJheShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgQXJyYXlJbmRleCBjb25zdCBzaXplID0gdmFs
dWUuc2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmlnaHRNYXJnaW5f
OworICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChBcnJheUluZGV4IGluZGV4ID0gMDsg
aW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytpbmRleCkgeworICAgIGNvbnN0IFZhbHVl
JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAgIGlzTXVsdGlMaW5lID0gKChjaGlsZFZh
bHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkpICYmCisgICAgICAgICAgICAg
ICAgICAgIWNoaWxkVmFsdWUuZW1wdHkoKSk7CisgIH0KKyAgaWYgKCFpc011bHRpTGluZSkgLy8g
Y2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAgIGNoaWxkVmFs
dWVzXy5yZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7CisgICAgQXJy
YXlJbmRleCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAyOyAvLyAnWyAnICsgJywgJypu
ICsgJyBdJworICAgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytp
bmRleCkgeworICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7Cisg
ICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFs
dWVbaW5kZXhdKTsKKyAgICAgIGxpbmVMZW5ndGggKz0gc3RhdGljX2Nhc3Q8QXJyYXlJbmRleD4o
Y2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVz
XyA9IGZhbHNlOworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+
PSByaWdodE1hcmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOworfQogCi0vLyBDbGFz
cyBTdHlsZWRTdHJlYW1Xcml0ZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwordm9pZCBTdHlsZWRTdHJlYW1Xcml0
ZXI6OnB1c2hWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVl
c18pCisgICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICAqZG9j
dW1lbnRfIDw8IHZhbHVlOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRl
bnQoKSB7CisgIC8vIGJsZXAgaW50ZW5kZWQgdGhpcyB0byBsb29rIGF0IHRoZSBzby1mYXItd3Jp
dHRlbiBzdHJpbmcKKyAgLy8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgYXJlIGFscmVhZHkgaW5k
ZW50ZWQsIGJ1dAorICAvLyB3aXRoIGEgc3RyZWFtIHdlIGNhbm5vdCBkbyB0aGF0LiBTbyB3ZSBy
ZWx5IG9uIHNvbWUgc2F2ZWQgc3RhdGUuCisgIC8vIFRoZSBjYWxsZXIgY2hlY2tzIGluZGVudGVk
Xy4KKyAgKmRvY3VtZW50XyA8PCAnXG4nIDw8IGluZGVudFN0cmluZ187Cit9CiAKLVN0eWxlZFN0
cmVhbVdyaXRlcjo6U3R5bGVkU3RyZWFtV3JpdGVyKCBzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiAp
Ci0gICA6IGRvY3VtZW50XyhOVUxMKQotICAgLCByaWdodE1hcmdpbl8oIDc0ICkKLSAgICwgaW5k
ZW50YXRpb25fKCBpbmRlbnRhdGlvbiApCi0gICAsIGFkZENoaWxkVmFsdWVzXygpCi17Cit2b2lk
IFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KGNvbnN0IFN0cmluZyYgdmFsdWUp
IHsKKyAgaWYgKCFpbmRlbnRlZF8pCisgICAgd3JpdGVJbmRlbnQoKTsKKyAgKmRvY3VtZW50XyA8
PCB2YWx1ZTsKKyAgaW5kZW50ZWRfID0gZmFsc2U7CiB9CiAKK3ZvaWQgU3R5bGVkU3RyZWFtV3Jp
dGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOyB9CiAKLXZvaWQK
LVN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoIHN0ZDo6b3N0cmVhbSAmb3V0LCBjb25zdCBWYWx1
ZSAmcm9vdCApCi17Ci0gICBkb2N1bWVudF8gPSAmb3V0OwotICAgYWRkQ2hpbGRWYWx1ZXNfID0g
ZmFsc2U7Ci0gICBpbmRlbnRTdHJpbmdfID0gIiI7Ci0gICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZSggcm9vdCApOwotICAgd3JpdGVWYWx1ZSggcm9vdCApOwotICAgd3JpdGVDb21tZW50QWZ0ZXJW
YWx1ZU9uU2FtZUxpbmUoIHJvb3QgKTsKLSAgICpkb2N1bWVudF8gPDwgIlxuIjsKLSAgIGRvY3Vt
ZW50XyA9IE5VTEw7IC8vIEZvcmdldCB0aGUgc3RyZWFtLCBmb3Igc2FmZXR5Lgordm9pZCBTdHls
ZWRTdHJlYW1Xcml0ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW5kZW50U3RyaW5nXy5zaXpl
KCkgPj0gaW5kZW50YXRpb25fLnNpemUoKSk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVu
dFN0cmluZ18uc2l6ZSgpIC0gaW5kZW50YXRpb25fLnNpemUoKSk7CiB9CiAKK3ZvaWQgU3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCkg
eworICBpZiAoIXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSkKKyAgICByZXR1cm47CisK
KyAgaWYgKCFpbmRlbnRlZF8pCisgICAgd3JpdGVJbmRlbnQoKTsKKyAgY29uc3QgU3RyaW5nJiBj
b21tZW50ID0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRCZWZvcmUpOworICBTdHJpbmc6OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7CisgIHdoaWxlIChpdGVyICE9IGNvbW1l
bnQuZW5kKCkpIHsKKyAgICAqZG9jdW1lbnRfIDw8ICppdGVyOworICAgIGlmICgqaXRlciA9PSAn
XG4nICYmICgoaXRlciArIDEpICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0gJy8n
KSkKKyAgICAgIC8vIHdyaXRlSW5kZW50KCk7ICAvLyB3b3VsZCBpbmNsdWRlIG5ld2xpbmUKKyAg
ICAgICpkb2N1bWVudF8gPDwgaW5kZW50U3RyaW5nXzsKKyAgICArK2l0ZXI7CisgIH0KKyAgaW5k
ZW50ZWRfID0gZmFsc2U7Cit9CiAKLXZvaWQgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFs
dWUoIGNvbnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICBzd2l0Y2ggKCB2YWx1ZS50eXBlKCkgKQot
ICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoICJudWxsIiApOwotICAg
ICAgYnJlYWs7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRvU3Ry
aW5nKCB2YWx1ZS5hc0xhcmdlc3RJbnQoKSApICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgdWlu
dFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xhcmdlc3RV
SW50KCkgKSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHB1c2hW
YWx1ZSggdmFsdWVUb1N0cmluZyggdmFsdWUuYXNEb3VibGUoKSApICk7Ci0gICAgICBicmVhazsK
LSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoIHZhbHVlVG9RdW90ZWRTdHJp
bmcoIHZhbHVlLmFzQ1N0cmluZygpICkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBib29sZWFu
VmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoIHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzQm9vbCgpICkg
KTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgd3JpdGVBcnJheVZh
bHVlKCB2YWx1ZSk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB7
Ci0gICAgICAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKCB2YWx1ZS5nZXRNZW1iZXJOYW1lcygp
ICk7Ci0gICAgICAgICBpZiAoIG1lbWJlcnMuZW1wdHkoKSApCi0gICAgICAgICAgICBwdXNoVmFs
dWUoICJ7fSIgKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHdyaXRl
V2l0aEluZGVudCggInsiICk7Ci0gICAgICAgICAgICBpbmRlbnQoKTsKLSAgICAgICAgICAgIFZh
bHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKLSAgICAgICAgICAg
IGZvciAoOzspCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmlu
ZyAmbmFtZSA9ICppdDsKLSAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZjaGlsZFZhbHVlID0g
dmFsdWVbbmFtZV07Ci0gICAgICAgICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSggY2hp
bGRWYWx1ZSApOwotICAgICAgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCB2YWx1ZVRvUXVvdGVk
U3RyaW5nKCBuYW1lLmNfc3RyKCkgKSApOwotICAgICAgICAgICAgICAgKmRvY3VtZW50XyA8PCAi
IDogIjsKLSAgICAgICAgICAgICAgIHdyaXRlVmFsdWUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAg
ICAgICAgIGlmICggKytpdCA9PSBtZW1iZXJzLmVuZCgpICkKLSAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKCBjaGlsZFZh
bHVlICk7Ci0gICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICpkb2N1bWVudF8gPDwgIiwiOwotICAgICAgICAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHVuaW5kZW50KCk7Ci0gICAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoICJ9IiApOwot
ICAgICAgICAgfQotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICB9Ci19Ci0KLQotdm9pZCAKLVN0
eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsdWUgKQot
ewotICAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKLSAgIGlmICggc2l6ZSA9PSAwICkK
LSAgICAgIHB1c2hWYWx1ZSggIltdIiApOwotICAgZWxzZQotICAgewotICAgICAgYm9vbCBpc0Fy
cmF5TXVsdGlMaW5lID0gaXNNdWx0aW5lQXJyYXkoIHZhbHVlICk7Ci0gICAgICBpZiAoIGlzQXJy
YXlNdWx0aUxpbmUgKQotICAgICAgewotICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCAiWyIgKTsK
LSAgICAgICAgIGluZGVudCgpOwotICAgICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxk
VmFsdWVzXy5lbXB0eSgpOwotICAgICAgICAgdW5zaWduZWQgaW5kZXggPTA7Ci0gICAgICAgICBm
b3IgKDs7KQotICAgICAgICAgewotICAgICAgICAgICAgY29uc3QgVmFsdWUgJmNoaWxkVmFsdWUg
PSB2YWx1ZVtpbmRleF07Ci0gICAgICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSggY2hp
bGRWYWx1ZSApOwotICAgICAgICAgICAgaWYgKCBoYXNDaGlsZFZhbHVlICkKLSAgICAgICAgICAg
ICAgIHdyaXRlV2l0aEluZGVudCggY2hpbGRWYWx1ZXNfW2luZGV4XSApOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQoKTsKLSAgICAg
ICAgICAgICAgIHdyaXRlVmFsdWUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGlmICggKytpbmRleCA9PSBzaXplICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKCBjaGlsZFZhbHVlICk7Ci0gICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICpkb2N1bWVudF8g
PDwgIiwiOwotICAgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNo
aWxkVmFsdWUgKTsKLSAgICAgICAgIH0KLSAgICAgICAgIHVuaW5kZW50KCk7Ci0gICAgICAgICB3
cml0ZVdpdGhJbmRlbnQoICJdIiApOwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29t
bWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGlmIChyb290
Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCisgICAgKmRvY3VtZW50XyA8PCAn
ICcgPDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOworCisgIGlmIChy
b290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgeworICAgIHdyaXRlSW5kZW50KCk7CisgICAg
KmRvY3VtZW50XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgfQorICBpbmRl
bnRlZF8gPSBmYWxzZTsKK30KKworYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRG
b3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQo
Y29tbWVudEJlZm9yZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVy
T25TYW1lTGluZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsK
K30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyCisKKy8vLyBTY29wZWQgZW51bXMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgQysrMTEuCitz
dHJ1Y3QgQ29tbWVudFN0eWxlIHsKKyAgLy8vIERlY2lkZSB3aGV0aGVyIHRvIHdyaXRlIGNvbW1l
bnRzLgorICBlbnVtIEVudW0geworICAgIE5vbmUsIC8vLzwgRHJvcCBhbGwgY29tbWVudHMuCisg
ICAgTW9zdCwgLy8vPCBSZWNvdmVyIG9kZCBiZWhhdmlvciBvZiBwcmV2aW91cyB2ZXJzaW9ucyAo
bm90IGltcGxlbWVudGVkIHlldCkuCisgICAgQWxsICAgLy8vPCBLZWVwIGFsbCBjb21tZW50cy4K
KyAgfTsKK307CisKK3N0cnVjdCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlciA6IHB1YmxpYyBTdHJl
YW1Xcml0ZXIgeworICBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcihTdHJpbmcgaW5kZW50YXRpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRTdHlsZTo6RW51bSBjcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbG9uU3ltYm9sLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBTdHJpbmcgbnVsbFN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
U3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sLAorICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIHVzZVNwZWNpYWxGbG9hdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBwcmVjaXNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFByZWNpc2lvblR5cGUg
cHJlY2lzaW9uVHlwZSk7CisgIGludCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgT1N0cmVhbSog
c291dCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShWYWx1ZSBjb25z
dCYgdmFsdWUpOworICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpOwor
ICBib29sIGlzTXVsdGlsaW5lQXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKTsKKyAgdm9pZCBwdXNo
VmFsdWUoU3RyaW5nIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJbmRlbnQoKTsKKyAgdm9p
ZCB3cml0ZVdpdGhJbmRlbnQoU3RyaW5nIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgaW5kZW50KCk7
CisgIHZvaWQgdW5pbmRlbnQoKTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1
ZSBjb25zdCYgcm9vdCk7CisgIHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUo
VmFsdWUgY29uc3QmIHJvb3QpOworICBzdGF0aWMgYm9vbCBoYXNDb21tZW50Rm9yVmFsdWUoY29u
c3QgVmFsdWUmIHZhbHVlKTsKKworICB0eXBlZGVmIHN0ZDo6dmVjdG9yPFN0cmluZz4gQ2hpbGRW
YWx1ZXM7CisKKyAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNfOworICBTdHJpbmcgaW5kZW50U3Ry
aW5nXzsKKyAgdW5zaWduZWQgaW50IHJpZ2h0TWFyZ2luXzsKKyAgU3RyaW5nIGluZGVudGF0aW9u
XzsKKyAgQ29tbWVudFN0eWxlOjpFbnVtIGNzXzsKKyAgU3RyaW5nIGNvbG9uU3ltYm9sXzsKKyAg
U3RyaW5nIG51bGxTeW1ib2xfOworICBTdHJpbmcgZW5kaW5nTGluZUZlZWRTeW1ib2xfOworICBi
b29sIGFkZENoaWxkVmFsdWVzXyA6IDE7CisgIGJvb2wgaW5kZW50ZWRfIDogMTsKKyAgYm9vbCB1
c2VTcGVjaWFsRmxvYXRzXyA6IDE7CisgIHVuc2lnbmVkIGludCBwcmVjaXNpb25fOworICBQcmVj
aXNpb25UeXBlIHByZWNpc2lvblR5cGVfOworfTsKK0J1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpC
dWlsdFN0eWxlZFN0cmVhbVdyaXRlcihTdHJpbmcgaW5kZW50YXRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudFN0eWxlOjpFbnVtIGNz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmlu
ZyBjb2xvblN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJpbmcgbnVsbFN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZW5kaW5nTGluZUZlZWRTeW1ib2wsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB1c2VTcGVjaWFs
RmxvYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGludCBwcmVjaXNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUHJlY2lzaW9uVHlwZSBwcmVjaXNpb25UeXBlKQorICAgIDogcmln
aHRNYXJnaW5fKDc0KSwgaW5kZW50YXRpb25fKHN0ZDo6bW92ZShpbmRlbnRhdGlvbikpLCBjc18o
Y3MpLAorICAgICAgY29sb25TeW1ib2xfKHN0ZDo6bW92ZShjb2xvblN5bWJvbCkpLCBudWxsU3lt
Ym9sXyhzdGQ6Om1vdmUobnVsbFN5bWJvbCkpLAorICAgICAgZW5kaW5nTGluZUZlZWRTeW1ib2xf
KHN0ZDo6bW92ZShlbmRpbmdMaW5lRmVlZFN5bWJvbCkpLAorICAgICAgYWRkQ2hpbGRWYWx1ZXNf
KGZhbHNlKSwgaW5kZW50ZWRfKGZhbHNlKSwKKyAgICAgIHVzZVNwZWNpYWxGbG9hdHNfKHVzZVNw
ZWNpYWxGbG9hdHMpLCBwcmVjaXNpb25fKHByZWNpc2lvbiksCisgICAgICBwcmVjaXNpb25UeXBl
XyhwcmVjaXNpb25UeXBlKSB7fQoraW50IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZShW
YWx1ZSBjb25zdCYgcm9vdCwgT1N0cmVhbSogc291dCkgeworICBzb3V0XyA9IHNvdXQ7CisgIGFk
ZENoaWxkVmFsdWVzXyA9IGZhbHNlOworICBpbmRlbnRlZF8gPSB0cnVlOworICBpbmRlbnRTdHJp
bmdfLmNsZWFyKCk7CisgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKHJvb3QpOworICBpZiAoIWlu
ZGVudGVkXykKKyAgICB3cml0ZUluZGVudCgpOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0
ZVZhbHVlKHJvb3QpOworICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsK
KyAgKnNvdXRfIDw8IGVuZGluZ0xpbmVGZWVkU3ltYm9sXzsKKyAgc291dF8gPSBudWxscHRyOwor
ICByZXR1cm4gMDsKK30KK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUo
VmFsdWUgY29uc3QmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2Ug
bnVsbFZhbHVlOgorICAgIHB1c2hWYWx1ZShudWxsU3ltYm9sXyk7CisgICAgYnJlYWs7CisgIGNh
c2UgaW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0
SW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZh
bHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2Ug
cmVhbFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCks
IHVzZVNwZWNpYWxGbG9hdHNfLCBwcmVjaXNpb25fLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZWNpc2lvblR5cGVfKSk7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6IHsK
KyAgICAvLyBJcyBOVUxMIGlzIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPyBOby4KKyAgICBj
aGFyIGNvbnN0KiBzdHI7CisgICAgY2hhciBjb25zdCogZW5kOworICAgIGJvb2wgb2sgPSB2YWx1
ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYgKG9rKQorICAgICAgcHVzaFZhbHVlKHZh
bHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZCAtIHN0cikp
KTsKKyAgICBlbHNlCisgICAgICBwdXNoVmFsdWUoIiIpOworICAgIGJyZWFrOworICB9CisgIGNh
c2UgYm9vbGVhblZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9v
bCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICB3cml0ZUFycmF5VmFs
dWUodmFsdWUpOworICAgIGJyZWFrOworICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6
Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygpKTsKKyAgICBpZiAobWVtYmVy
cy5lbXB0eSgpKQorICAgICAgcHVzaFZhbHVlKCJ7fSIpOworICAgIGVsc2UgeworICAgICAgd3Jp
dGVXaXRoSW5kZW50KCJ7Iik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGF1dG8gaXQgPSBtZW1i
ZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAgIFN0cmluZyBjb25zdCYgbmFt
ZSA9ICppdDsKKyAgICAgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtuYW1lXTsK
KyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIHdy
aXRlV2l0aEluZGVudCh2YWx1ZVRvUXVvdGVkU3RyaW5nTigKKyAgICAgICAgICAgIG5hbWUuZGF0
YSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkpKTsKKyAgICAgICAgKnNv
dXRfIDw8IGNvbG9uU3ltYm9sXzsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAg
ICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAgIHdyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgICpzb3V0XyA8PCAiLCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVy
VmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwogICAgICAgfQotICAgICAgZWxzZSAvLyBvdXRw
dXQgb24gYSBzaW5nbGUgbGluZQotICAgICAgewotICAgICAgICAgYXNzZXJ0KCBjaGlsZFZhbHVl
c18uc2l6ZSgpID09IHNpemUgKTsKLSAgICAgICAgICpkb2N1bWVudF8gPDwgIlsgIjsKLSAgICAg
ICAgIGZvciAoIHVuc2lnbmVkIGluZGV4ID0wOyBpbmRleCA8IHNpemU7ICsraW5kZXggKQotICAg
ICAgICAgewotICAgICAgICAgICAgaWYgKCBpbmRleCA+IDAgKQotICAgICAgICAgICAgICAgKmRv
Y3VtZW50XyA8PCAiLCAiOwotICAgICAgICAgICAgKmRvY3VtZW50XyA8PCBjaGlsZFZhbHVlc19b
aW5kZXhdOwotICAgICAgICAgfQotICAgICAgICAgKmRvY3VtZW50XyA8PCAiIF0iOworICAgICAg
dW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgifSIpOworICAgIH0KKyAgfSBicmVh
azsKKyAgfQorfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFs
dWUoVmFsdWUgY29uc3QmIHZhbHVlKSB7CisgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7
CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZhbHVlKCJbXSIpOworICBlbHNlIHsKKyAgICBi
b29sIGlzTXVsdGlMaW5lID0gKGNzXyA9PSBDb21tZW50U3R5bGU6OkFsbCkgfHwgaXNNdWx0aWxp
bmVBcnJheSh2YWx1ZSk7CisgICAgaWYgKGlzTXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJ
bmRlbnQoIlsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0g
IWNoaWxkVmFsdWVzXy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAg
Zm9yICg7OykgeworICAgICAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4
XTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAg
IGlmIChoYXNDaGlsZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVl
c19baW5kZXhdKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYgKCFpbmRlbnRlZF8pCisg
ICAgICAgICAgICB3cml0ZUluZGVudCgpOworICAgICAgICAgIGluZGVudGVkXyA9IHRydWU7Cisg
ICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSBm
YWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXplKSB7CisgICAgICAg
ICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKnNvdXRfIDw8ICIsIjsKKyAgICAgICAgd3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CiAgICAgICB9Ci0gICB9
Ci19Ci0KLQotYm9vbCAKLVN0eWxlZFN0cmVhbVdyaXRlcjo6aXNNdWx0aW5lQXJyYXkoIGNvbnN0
IFZhbHVlICZ2YWx1ZSApCi17Ci0gICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKLSAgIGJvb2wg
aXNNdWx0aUxpbmUgPSBzaXplKjMgPj0gcmlnaHRNYXJnaW5fIDsKLSAgIGNoaWxkVmFsdWVzXy5j
bGVhcigpOwotICAgZm9yICggaW50IGluZGV4ID0wOyBpbmRleCA8IHNpemUgICYmICAhaXNNdWx0
aUxpbmU7ICsraW5kZXggKQotICAgewotICAgICAgY29uc3QgVmFsdWUgJmNoaWxkVmFsdWUgPSB2
YWx1ZVtpbmRleF07Ci0gICAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lICB8fAotICAgICAg
ICAgICAgICAgICAgICAgKCAoY2hpbGRWYWx1ZS5pc0FycmF5KCkgIHx8ICBjaGlsZFZhbHVlLmlz
T2JqZWN0KCkpICAmJiAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUo
KSA+IDAgKTsKLSAgIH0KLSAgIGlmICggIWlzTXVsdGlMaW5lICkgLy8gY2hlY2sgaWYgbGluZSBs
ZW5ndGggPiBtYXggbGluZSBsZW5ndGgKLSAgIHsKLSAgICAgIGNoaWxkVmFsdWVzXy5yZXNlcnZl
KCBzaXplICk7Ci0gICAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOwotICAgICAgaW50IGxpbmVM
ZW5ndGggPSA0ICsgKHNpemUtMSkqMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICAgIGZv
ciAoIGludCBpbmRleCA9MDsgaW5kZXggPCBzaXplICAmJiAgIWlzTXVsdGlMaW5lOyArK2luZGV4
ICkKLSAgICAgIHsKLSAgICAgICAgIHdyaXRlVmFsdWUoIHZhbHVlW2luZGV4XSApOwotICAgICAg
ICAgbGluZUxlbmd0aCArPSBpbnQoIGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkgKTsKLSAg
ICAgICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgICYmICBoYXNDb21tZW50Rm9yVmFsdWUo
IHZhbHVlW2luZGV4XSApOworICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVu
dCgiXSIpOworICAgIH0gZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAgIHsKKyAg
ICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgKnNvdXRfIDw8
ICJbIjsKKyAgICAgIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpCisgICAgICAgICpzb3V0XyA8
PCAiICI7CisgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2lu
ZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+IDApCisgICAgICAgICAgKnNvdXRfIDw8ICgoIWlu
ZGVudGF0aW9uXy5lbXB0eSgpKSA/ICIsICIgOiAiLCIpOworICAgICAgICAqc291dF8gPDwgY2hp
bGRWYWx1ZXNfW2luZGV4XTsKICAgICAgIH0KLSAgICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNl
OwotICAgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGluZSAgfHwgIGxpbmVMZW5ndGggPj0gcmln
aHRNYXJnaW5fOwotICAgfQotICAgcmV0dXJuIGlzTXVsdGlMaW5lOworICAgICAgaWYgKCFpbmRl
bnRhdGlvbl8uZW1wdHkoKSkKKyAgICAgICAgKnNvdXRfIDw8ICIgIjsKKyAgICAgICpzb3V0XyA8
PCAiXSI7CisgICAgfQorICB9CiB9CiAKLQotdm9pZCAKLVN0eWxlZFN0cmVhbVdyaXRlcjo6cHVz
aFZhbHVlKCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKQotewotICAgaWYgKCBhZGRDaGlsZFZh
bHVlc18gKQotICAgICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayggdmFsdWUgKTsKLSAgIGVsc2UK
LSAgICAgICpkb2N1bWVudF8gPDwgdmFsdWU7Citib29sIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojppc011bHRpbGluZUFycmF5KFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICBBcnJheUluZGV4IGNv
bnN0IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGJvb2wgaXNNdWx0aUxpbmUgPSBzaXplICogMyA+
PSByaWdodE1hcmdpbl87CisgIGNoaWxkVmFsdWVzXy5jbGVhcigpOworICBmb3IgKEFycmF5SW5k
ZXggaW5kZXggPSAwOyBpbmRleCA8IHNpemUgJiYgIWlzTXVsdGlMaW5lOyArK2luZGV4KSB7Cisg
ICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxp
bmUgPSAoKGNoaWxkVmFsdWUuaXNBcnJheSgpIHx8IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYK
KyAgICAgICAgICAgICAgICAgICAhY2hpbGRWYWx1ZS5lbXB0eSgpKTsKKyAgfQorICBpZiAoIWlz
TXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxlbmd0aAorICB7
CisgICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0g
dHJ1ZTsKKyAgICBBcnJheUluZGV4IGxpbmVMZW5ndGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8v
ICdbICcgKyAnLCAnKm4gKyAnIF0nCisgICAgZm9yIChBcnJheUluZGV4IGluZGV4ID0gMDsgaW5k
ZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZhbHVl
W2luZGV4XSkpIHsKKyAgICAgICAgaXNNdWx0aUxpbmUgPSB0cnVlOworICAgICAgfQorICAgICAg
d3JpdGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgICAgbGluZUxlbmd0aCArPSBzdGF0aWNfY2Fz
dDxBcnJheUluZGV4PihjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0aCgpKTsKKyAgICB9CisgICAg
YWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGluZSB8
fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICByZXR1cm4gaXNNdWx0aUxpbmU7
CiB9CiAKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZShTdHJpbmcgY29u
c3QmIHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVlc18pCisgICAgY2hpbGRWYWx1ZXNfLnB1
c2hfYmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICAqc291dF8gPDwgdmFsdWU7Cit9CiAKLXZvaWQg
Ci1TdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KCkKLXsKLSAgLyoKLSAgICBTb21lIGNv
bW1lbnRzIGluIHRoaXMgbWV0aG9kIHdvdWxkIGhhdmUgYmVlbiBuaWNlLiA7LSkKK3ZvaWQgQnVp
bHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KCkgeworICAvLyBibGVwIGludGVuZGVk
IHRoaXMgdG8gbG9vayBhdCB0aGUgc28tZmFyLXdyaXR0ZW4gc3RyaW5nCisgIC8vIHRvIGRldGVy
bWluZSB3aGV0aGVyIHdlIGFyZSBhbHJlYWR5IGluZGVudGVkLCBidXQKKyAgLy8gd2l0aCBhIHN0
cmVhbSB3ZSBjYW5ub3QgZG8gdGhhdC4gU28gd2UgcmVseSBvbiBzb21lIHNhdmVkIHN0YXRlLgor
ICAvLyBUaGUgY2FsbGVyIGNoZWNrcyBpbmRlbnRlZF8uCiAKLSAgIGlmICggIWRvY3VtZW50Xy5l
bXB0eSgpICkKLSAgIHsKLSAgICAgIGNoYXIgbGFzdCA9IGRvY3VtZW50X1tkb2N1bWVudF8ubGVu
Z3RoKCktMV07Ci0gICAgICBpZiAoIGxhc3QgPT0gJyAnICkgICAgIC8vIGFscmVhZHkgaW5kZW50
ZWQKLSAgICAgICAgIHJldHVybjsKLSAgICAgIGlmICggbGFzdCAhPSAnXG4nICkgICAgLy8gQ29t
bWVudHMgbWF5IGFkZCBuZXctbGluZQotICAgICAgICAgKmRvY3VtZW50XyA8PCAnXG4nOwotICAg
fQotICAqLwotICAgKmRvY3VtZW50XyA8PCAnXG4nIDw8IGluZGVudFN0cmluZ187CisgIGlmICgh
aW5kZW50YXRpb25fLmVtcHR5KCkpIHsKKyAgICAvLyBJbiB0aGlzIGNhc2UsIGRyb3AgbmV3bGlu
ZXMgdG9vLgorICAgICpzb3V0XyA8PCAnXG4nIDw8IGluZGVudFN0cmluZ187CisgIH0KIH0KIAot
Ci12b2lkIAotU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQoIGNvbnN0IHN0ZDo6
c3RyaW5nICZ2YWx1ZSApCi17Ci0gICB3cml0ZUluZGVudCgpOwotICAgKmRvY3VtZW50XyA8PCB2
YWx1ZTsKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVudChTdHJp
bmcgY29uc3QmIHZhbHVlKSB7CisgIGlmICghaW5kZW50ZWRfKQorICAgIHdyaXRlSW5kZW50KCk7
CisgICpzb3V0XyA8PCB2YWx1ZTsKKyAgaW5kZW50ZWRfID0gZmFsc2U7CiB9CiAKK3ZvaWQgQnVp
bHRTdHlsZWRTdHJlYW1Xcml0ZXI6OmluZGVudCgpIHsgaW5kZW50U3RyaW5nXyArPSBpbmRlbnRh
dGlvbl87IH0KIAotdm9pZCAKLVN0eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkKLXsKLSAgIGlu
ZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRl
cjo6dW5pbmRlbnQoKSB7CisgIGFzc2VydChpbmRlbnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRh
dGlvbl8uc2l6ZSgpKTsKKyAgaW5kZW50U3RyaW5nXy5yZXNpemUoaW5kZW50U3RyaW5nXy5zaXpl
KCkgLSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKIH0KIAotCi12b2lkIAotU3R5bGVkU3RyZWFtV3Jp
dGVyOjp1bmluZGVudCgpCi17Ci0gICBhc3NlcnQoIGluZGVudFN0cmluZ18uc2l6ZSgpID49IGlu
ZGVudGF0aW9uXy5zaXplKCkgKTsKLSAgIGluZGVudFN0cmluZ18ucmVzaXplKCBpbmRlbnRTdHJp
bmdfLnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkgKTsKK3ZvaWQgQnVpbHRTdHlsZWRTdHJl
YW1Xcml0ZXI6OndyaXRlQ29tbWVudEJlZm9yZVZhbHVlKFZhbHVlIGNvbnN0JiByb290KSB7Cisg
IGlmIChjc18gPT0gQ29tbWVudFN0eWxlOjpOb25lKQorICAgIHJldHVybjsKKyAgaWYgKCFyb290
Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisgICAgcmV0dXJuOworCisgIGlmICghaW5kZW50
ZWRfKQorICAgIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IFN0cmluZyYgY29tbWVudCA9IHJvb3Qu
Z2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKKyAgU3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVy
ID0gY29tbWVudC5iZWdpbigpOworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7Cisg
ICAgKnNvdXRfIDw8ICppdGVyOworICAgIGlmICgqaXRlciA9PSAnXG4nICYmICgoaXRlciArIDEp
ICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0gJy8nKSkKKyAgICAgIC8vIHdyaXRl
SW5kZW50KCk7ICAvLyB3b3VsZCB3cml0ZSBleHRyYSBuZXdsaW5lCisgICAgICAqc291dF8gPDwg
aW5kZW50U3RyaW5nXzsKKyAgICArK2l0ZXI7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7CiB9
CiAKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVP
blNhbWVMaW5lKAorICAgIFZhbHVlIGNvbnN0JiByb290KSB7CisgIGlmIChjc18gPT0gQ29tbWVu
dFN0eWxlOjpOb25lKQorICAgIHJldHVybjsKKyAgaWYgKHJvb3QuaGFzQ29tbWVudChjb21tZW50
QWZ0ZXJPblNhbWVMaW5lKSkKKyAgICAqc291dF8gPDwgIiAiICsgcm9vdC5nZXRDb21tZW50KGNv
bW1lbnRBZnRlck9uU2FtZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFm
dGVyKSkgeworICAgIHdyaXRlSW5kZW50KCk7CisgICAgKnNvdXRfIDw8IHJvb3QuZ2V0Q29tbWVu
dChjb21tZW50QWZ0ZXIpOworICB9Cit9CiAKLXZvaWQgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6Ondy
aXRlQ29tbWVudEJlZm9yZVZhbHVlKCBjb25zdCBWYWx1ZSAmcm9vdCApCi17Ci0gICBpZiAoICFy
b290Lmhhc0NvbW1lbnQoIGNvbW1lbnRCZWZvcmUgKSApCi0gICAgICByZXR1cm47Ci0gICAqZG9j
dW1lbnRfIDw8IG5vcm1hbGl6ZUVPTCggcm9vdC5nZXRDb21tZW50KCBjb21tZW50QmVmb3JlICkg
KTsKLSAgICpkb2N1bWVudF8gPDwgIlxuIjsKLX0KLQotCi12b2lkIAotU3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY29uc3QgVmFsdWUgJnJvb3Qg
KQotewotICAgaWYgKCByb290Lmhhc0NvbW1lbnQoIGNvbW1lbnRBZnRlck9uU2FtZUxpbmUgKSAp
Ci0gICAgICAqZG9jdW1lbnRfIDw8ICIgIiArIG5vcm1hbGl6ZUVPTCggcm9vdC5nZXRDb21tZW50
KCBjb21tZW50QWZ0ZXJPblNhbWVMaW5lICkgKTsKLQotICAgaWYgKCByb290Lmhhc0NvbW1lbnQo
IGNvbW1lbnRBZnRlciApICkKLSAgIHsKLSAgICAgICpkb2N1bWVudF8gPDwgIlxuIjsKLSAgICAg
ICpkb2N1bWVudF8gPDwgbm9ybWFsaXplRU9MKCByb290LmdldENvbW1lbnQoIGNvbW1lbnRBZnRl
ciApICk7Ci0gICAgICAqZG9jdW1lbnRfIDw8ICJcbiI7Ci0gICB9Ci19Ci0KLQotYm9vbCAKLVN0
eWxlZFN0cmVhbVdyaXRlcjo6aGFzQ29tbWVudEZvclZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsdWUg
KQotewotICAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoIGNvbW1lbnRCZWZvcmUgKQotICAgICAg
ICAgIHx8ICB2YWx1ZS5oYXNDb21tZW50KCBjb21tZW50QWZ0ZXJPblNhbWVMaW5lICkKLSAgICAg
ICAgICB8fCAgdmFsdWUuaGFzQ29tbWVudCggY29tbWVudEFmdGVyICk7Ci19Ci0KLQotc3RkOjpz
dHJpbmcgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6Om5vcm1hbGl6ZUVPTCggY29uc3Qgc3RkOjpzdHJp
bmcgJnRleHQgKQotewotICAgc3RkOjpzdHJpbmcgbm9ybWFsaXplZDsKLSAgIG5vcm1hbGl6ZWQu
cmVzZXJ2ZSggdGV4dC5sZW5ndGgoKSApOwotICAgY29uc3QgY2hhciAqYmVnaW4gPSB0ZXh0LmNf
c3RyKCk7Ci0gICBjb25zdCBjaGFyICplbmQgPSBiZWdpbiArIHRleHQubGVuZ3RoKCk7Ci0gICBj
b25zdCBjaGFyICpjdXJyZW50ID0gYmVnaW47Ci0gICB3aGlsZSAoIGN1cnJlbnQgIT0gZW5kICkK
LSAgIHsKLSAgICAgIGNoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICBpZiAoIGMgPT0gJ1xyJyAp
IC8vIG1hYyBvciBkb3MgRU9MCi0gICAgICB7Ci0gICAgICAgICBpZiAoICpjdXJyZW50ID09ICdc
bicgKSAvLyBjb252ZXJ0IGRvcyBFT0wKLSAgICAgICAgICAgICsrY3VycmVudDsKLSAgICAgICAg
IG5vcm1hbGl6ZWQgKz0gJ1xuJzsKLSAgICAgIH0KLSAgICAgIGVsc2UgLy8gaGFuZGxlIHVuaXgg
RU9MICYgb3RoZXIgY2hhcgotICAgICAgICAgbm9ybWFsaXplZCArPSBjOwotICAgfQotICAgcmV0
dXJuIG5vcm1hbGl6ZWQ7CisvLyBzdGF0aWMKK2Jvb2wgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVl
Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQo
Y29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29t
bWVudEFmdGVyKTsKIH0KIAorLy8vLy8vLy8vLy8vLy8vCisvLyBTdHJlYW1Xcml0ZXIKKworU3Ry
ZWFtV3JpdGVyOjpTdHJlYW1Xcml0ZXIoKSA6IHNvdXRfKG51bGxwdHIpIHt9CitTdHJlYW1Xcml0
ZXI6On5TdHJlYW1Xcml0ZXIoKSA9IGRlZmF1bHQ7CitTdHJlYW1Xcml0ZXI6OkZhY3Rvcnk6On5G
YWN0b3J5KCkgPSBkZWZhdWx0OworU3RyZWFtV3JpdGVyQnVpbGRlcjo6U3RyZWFtV3JpdGVyQnVp
bGRlcigpIHsgc2V0RGVmYXVsdHMoJnNldHRpbmdzXyk7IH0KK1N0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKCkgPSBkZWZhdWx0OworU3RyZWFtV3JpdGVyKiBTdHJlYW1X
cml0ZXJCdWlsZGVyOjpuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdCB7CisgIFN0cmluZyBpbmRlbnRh
dGlvbiA9IHNldHRpbmdzX1siaW5kZW50YXRpb24iXS5hc1N0cmluZygpOworICBTdHJpbmcgY3Nf
c3RyID0gc2V0dGluZ3NfWyJjb21tZW50U3R5bGUiXS5hc1N0cmluZygpOworICBTdHJpbmcgcHRf
c3RyID0gc2V0dGluZ3NfWyJwcmVjaXNpb25UeXBlIl0uYXNTdHJpbmcoKTsKKyAgYm9vbCBleWMg
PSBzZXR0aW5nc19bImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Il0uYXNCb29sKCk7CisgIGJvb2wg
ZG5wID0gc2V0dGluZ3NfWyJkcm9wTnVsbFBsYWNlaG9sZGVycyJdLmFzQm9vbCgpOworICBib29s
IHVzZiA9IHNldHRpbmdzX1sidXNlU3BlY2lhbEZsb2F0cyJdLmFzQm9vbCgpOworICB1bnNpZ25l
ZCBpbnQgcHJlID0gc2V0dGluZ3NfWyJwcmVjaXNpb24iXS5hc1VJbnQoKTsKKyAgQ29tbWVudFN0
eWxlOjpFbnVtIGNzID0gQ29tbWVudFN0eWxlOjpBbGw7CisgIGlmIChjc19zdHIgPT0gIkFsbCIp
IHsKKyAgICBjcyA9IENvbW1lbnRTdHlsZTo6QWxsOworICB9IGVsc2UgaWYgKGNzX3N0ciA9PSAi
Tm9uZSIpIHsKKyAgICBjcyA9IENvbW1lbnRTdHlsZTo6Tm9uZTsKKyAgfSBlbHNlIHsKKyAgICB0
aHJvd1J1bnRpbWVFcnJvcigiY29tbWVudFN0eWxlIG11c3QgYmUgJ0FsbCcgb3IgJ05vbmUnIik7
CisgIH0KKyAgUHJlY2lzaW9uVHlwZSBwcmVjaXNpb25UeXBlKHNpZ25pZmljYW50RGlnaXRzKTsK
KyAgaWYgKHB0X3N0ciA9PSAic2lnbmlmaWNhbnQiKSB7CisgICAgcHJlY2lzaW9uVHlwZSA9IFBy
ZWNpc2lvblR5cGU6OnNpZ25pZmljYW50RGlnaXRzOworICB9IGVsc2UgaWYgKHB0X3N0ciA9PSAi
ZGVjaW1hbCIpIHsKKyAgICBwcmVjaXNpb25UeXBlID0gUHJlY2lzaW9uVHlwZTo6ZGVjaW1hbFBs
YWNlczsKKyAgfSBlbHNlIHsKKyAgICB0aHJvd1J1bnRpbWVFcnJvcigicHJlY2lzaW9uVHlwZSBt
dXN0IGJlICdzaWduaWZpY2FudCcgb3IgJ2RlY2ltYWwnIik7CisgIH0KKyAgU3RyaW5nIGNvbG9u
U3ltYm9sID0gIiA6ICI7CisgIGlmIChleWMpIHsKKyAgICBjb2xvblN5bWJvbCA9ICI6ICI7Cisg
IH0gZWxzZSBpZiAoaW5kZW50YXRpb24uZW1wdHkoKSkgeworICAgIGNvbG9uU3ltYm9sID0gIjoi
OworICB9CisgIFN0cmluZyBudWxsU3ltYm9sID0gIm51bGwiOworICBpZiAoZG5wKSB7CisgICAg
bnVsbFN5bWJvbC5jbGVhcigpOworICB9CisgIGlmIChwcmUgPiAxNykKKyAgICBwcmUgPSAxNzsK
KyAgU3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sOworICByZXR1cm4gbmV3IEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyKGluZGVudGF0aW9uLCBjcywgY29sb25TeW1ib2wsIG51bGxTeW1ib2wsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kaW5nTGluZUZlZWRTeW1ib2ws
IHVzZiwgcHJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNpc2lv
blR5cGUpOworfQorc3RhdGljIHZvaWQgZ2V0VmFsaWRXcml0ZXJLZXlzKHN0ZDo6c2V0PFN0cmlu
Zz4qIHZhbGlkX2tleXMpIHsKKyAgdmFsaWRfa2V5cy0+Y2xlYXIoKTsKKyAgdmFsaWRfa2V5cy0+
aW5zZXJ0KCJpbmRlbnRhdGlvbiIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImNvbW1lbnRTdHls
ZSIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Iik7Cisg
IHZhbGlkX2tleXMtPmluc2VydCgiZHJvcE51bGxQbGFjZWhvbGRlcnMiKTsKKyAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJ1c2VTcGVjaWFsRmxvYXRzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgicHJl
Y2lzaW9uIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgicHJlY2lzaW9uVHlwZSIpOworfQorYm9v
bCBTdHJlYW1Xcml0ZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29u
c3QgeworICBKc29uOjpWYWx1ZSBteV9pbnZhbGlkOworICBpZiAoIWludmFsaWQpCisgICAgaW52
YWxpZCA9ICZteV9pbnZhbGlkOyAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0IGZvciBOVUxM
CisgIEpzb246OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKKyAgc3RkOjpzZXQ8U3RyaW5nPiB2YWxp
ZF9rZXlzOworICBnZXRWYWxpZFdyaXRlcktleXMoJnZhbGlkX2tleXMpOworICBWYWx1ZTo6TWVt
YmVycyBrZXlzID0gc2V0dGluZ3NfLmdldE1lbWJlck5hbWVzKCk7CisgIHNpemVfdCBuID0ga2V5
cy5zaXplKCk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgU3RyaW5n
IGNvbnN0JiBrZXkgPSBrZXlzW2ldOworICAgIGlmICh2YWxpZF9rZXlzLmZpbmQoa2V5KSA9PSB2
YWxpZF9rZXlzLmVuZCgpKSB7CisgICAgICBpbnZba2V5XSA9IHNldHRpbmdzX1trZXldOworICAg
IH0KKyAgfQorICByZXR1cm4gaW52LmVtcHR5KCk7Cit9CitWYWx1ZSYgU3RyZWFtV3JpdGVyQnVp
bGRlcjo6b3BlcmF0b3JbXShjb25zdCBTdHJpbmcmIGtleSkgeworICByZXR1cm4gc2V0dGluZ3Nf
W2tleV07Cit9CisvLyBzdGF0aWMKK3ZvaWQgU3RyZWFtV3JpdGVyQnVpbGRlcjo6c2V0RGVmYXVs
dHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKSB7CisgIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRlckRl
ZmF1bHRzXQorICAoKnNldHRpbmdzKVsiY29tbWVudFN0eWxlIl0gPSAiQWxsIjsKKyAgKCpzZXR0
aW5ncylbImluZGVudGF0aW9uIl0gPSAiXHQiOworICAoKnNldHRpbmdzKVsiZW5hYmxlWUFNTENv
bXBhdGliaWxpdHkiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiZHJvcE51bGxQbGFjZWhvbGRl
cnMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsidXNlU3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7
CisgICgqc2V0dGluZ3MpWyJwcmVjaXNpb24iXSA9IDE3OworICAoKnNldHRpbmdzKVsicHJlY2lz
aW9uVHlwZSJdID0gInNpZ25pZmljYW50IjsKKyAgLy8hIFtTdHJlYW1Xcml0ZXJCdWlsZGVyRGVm
YXVsdHNdCit9CiAKLXN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCggc3RkOjpvc3RyZWFtICZzb3V0
LCBjb25zdCBWYWx1ZSAmcm9vdCApCi17Ci0gICBKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXIgd3Jp
dGVyOwotICAgd3JpdGVyLndyaXRlKHNvdXQsIHJvb3QpOwotICAgcmV0dXJuIHNvdXQ7CitTdHJp
bmcgd3JpdGVTdHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0b3J5LCBWYWx1
ZSBjb25zdCYgcm9vdCkgeworICBPU3RyaW5nU3RyZWFtIHNvdXQ7CisgIFN0cmVhbVdyaXRlclB0
ciBjb25zdCB3cml0ZXIoZmFjdG9yeS5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgIHdyaXRlci0+d3Jp
dGUocm9vdCwgJnNvdXQpOworICByZXR1cm4gc291dC5zdHIoKTsKIH0KIAorT1N0cmVhbSYgb3Bl
cmF0b3I8PChPU3RyZWFtJiBzb3V0LCBWYWx1ZSBjb25zdCYgcm9vdCkgeworICBTdHJlYW1Xcml0
ZXJCdWlsZGVyIGJ1aWxkZXI7CisgIFN0cmVhbVdyaXRlclB0ciBjb25zdCB3cml0ZXIoYnVpbGRl
ci5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgIHdyaXRlci0+d3JpdGUocm9vdCwgJnNvdXQpOworICBy
ZXR1cm4gc291dDsKK30KIAogfSAvLyBuYW1lc3BhY2UgSnNvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9z
cmMvbGliX2pzb24vc2NvbnNjcmlwdCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL3Njb25zY3JpcHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlN2M2YzhhMDc2YzQ4ODA1MDUwNWQ1N2E2MzRi
YTFjOTJlMGUyY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9zcmMvbGliX2pzb24vc2NvbnNjcmlwdAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAs
MCBAQAotSW1wb3J0KCAnZW52IGJ1aWxkTGlicmFyeScgKQotCi1idWlsZExpYnJhcnkoIGVudiwg
U3BsaXQoICIiIgotICAgIGpzb25fcmVhZGVyLmNwcCAKLSAgICBqc29uX3ZhbHVlLmNwcCAKLSAg
ICBqc29uX3dyaXRlci5jcHAKLSAgICAgIiIiICksCi0gICAgJ2pzb24nICkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2Uvc3JjL2xpYl9qc29uL3ZlcnNpb24uaC5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL3ZlcnNp
b24uaC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40Y2Y0MzljY2M4YjNmZjE0Y2I0Y2E2OWUwY2I4MTM2NjUzMzcx
M2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vdmVyc2lvbi5oLmluCkBA
IC0wLDAgKzEsMjIgQEAKKy8vIERPIE5PVCBFRElULiBUaGlzIGZpbGUgKGFuZCAidmVyc2lvbiIp
IGlzIGEgdGVtcGxhdGUgdXNlZCBieSB0aGUgYnVpbGQgc3lzdGVtCisvLyAoZWl0aGVyIENNYWtl
IG9yIE1lc29uKSB0byBnZW5lcmF0ZSBhICJ2ZXJzaW9uLmgiIGhlYWRlciBmaWxlLgorI2lmbmRl
ZiBKU09OX1ZFUlNJT05fSF9JTkNMVURFRAorI2RlZmluZSBKU09OX1ZFUlNJT05fSF9JTkNMVURF
RAorCisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9TVFJJTkcgIkBKU09OQ1BQX1ZFUlNJT05AIgor
I2RlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUFKT1IgQEpTT05DUFBfVkVSU0lPTl9NQUpPUkAKKyNk
ZWZpbmUgSlNPTkNQUF9WRVJTSU9OX01JTk9SIEBKU09OQ1BQX1ZFUlNJT05fTUlOT1JACisjZGVm
aW5lIEpTT05DUFBfVkVSU0lPTl9QQVRDSCBASlNPTkNQUF9WRVJTSU9OX1BBVENIQAorI2RlZmlu
ZSBKU09OQ1BQX1ZFUlNJT05fUVVBTElGSUVSCisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9IRVhB
ICgoSlNPTkNQUF9WRVJTSU9OX01BSk9SIDw8IDI0KSBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAoSlNPTkNQUF9WRVJTSU9OX01JTk9SIDw8IDE2KSBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAoSlNPTkNQUF9WRVJTSU9OX1BBVENIIDw8IDgpKQorCisjaWZkZWYgSlNP
TkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZCisjdW5kZWYgSlNPTkNQUF9VU0lOR19TRUNVUkVfTUVN
T1JZCisjZW5kaWYKKyNkZWZpbmUgSlNPTkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZIEBKU09OQ1BQ
X1VTRV9TRUNVUkVfTUVNT1JZQAorLy8gSWYgbm9uLXplcm8sIHRoZSBsaWJyYXJ5IHplcm9lcyBh
bnkgbWVtb3J5IHRoYXQgaXQgaGFzIGFsbG9jYXRlZCBiZWZvcmUKKy8vIGl0IGZyZWVzIGl0cyBt
ZW1vcnkuCisKKyNlbmRpZiAvLyBKU09OX1ZFUlNJT05fSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9zcmMvdGVzdF9saWJfanNvbi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGli
X2pzb24vQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJiMTgxMzYxYjJiZjJjZjdjYzk3NjJm
YTZiMmI0ODE2YTg5YmRjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pz
b24vQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSw0MiBAQAorIyB2aW06IGV0IHRzPTQgc3RzPTQg
c3c9NCB0dz0wCisKK2FkZF9leGVjdXRhYmxlKCBqc29uY3BwX3Rlc3QKKyAgICAgICAgICAgICAg
ICBqc29udGVzdC5jcHAKKyAgICAgICAgICAgICAgICBqc29udGVzdC5oCisgICAgICAgICAgICAg
ICAgZnV6ei5jcHAKKyAgICAgICAgICAgICAgICBmdXp6LmgKKyAgICAgICAgICAgICAgICBtYWlu
LmNwcAorICAgICAgICAgICAgICAgICkKKworCitpZihCVUlMRF9TSEFSRURfTElCUykKKyAgICBh
ZGRfY29tcGlsZV9kZWZpbml0aW9ucyggSlNPTl9ETEwgKQorZW5kaWYoKQordGFyZ2V0X2xpbmtf
bGlicmFyaWVzKGpzb25jcHBfdGVzdCBqc29uY3BwX2xpYikKKworIyBhbm90aGVyIHdheSB0byBz
b2x2ZSBpc3N1ZSAjOTAKKyNzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoanNvbmNwcF90ZXN0IFBST1BF
UlRJRVMgQ09NUElMRV9GTEFHUyAtZmZsb2F0LXN0b3JlKQorCisjIFJ1biB1bml0IHRlc3RzIGlu
IHBvc3QtYnVpbGQKKyMgKGRlZmF1bHQgY21ha2Ugd29ya2Zsb3cgaGlkZXMgYXdheSB0aGUgdGVz
dCByZXN1bHQgaW50byBhIGZpbGUsIHJlc3VsdGluZyBpbiBwb29yIGRldiB3b3JrZmxvdz8hPykK
K2lmKEpTT05DUFBfV0lUSF9QT1NUX0JVSUxEX1VOSVRURVNUKQorICAgIGlmKEJVSUxEX1NIQVJF
RF9MSUJTKQorICAgICAgICAjIEZpcnN0LCBjb3B5IHRoZSBzaGFyZWQgbGliLCBmb3IgTWljcm9z
b2Z0LgorICAgICAgICAjIFRoZW4sIHJ1biB0aGUgdGVzdCBleGVjdXRhYmxlLgorICAgICAgICBh
ZGRfY3VzdG9tX2NvbW1hbmQoIFRBUkdFVCBqc29uY3BwX3Rlc3QKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQT1NUX0JVSUxECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09NTUFO
RCAke0NNQUtFX0NPTU1BTkR9IC1FIGNvcHlfaWZfZGlmZmVyZW50ICQ8VEFSR0VUX0ZJTEU6anNv
bmNwcF9saWI+ICQ8VEFSR0VUX0ZJTEVfRElSOmpzb25jcHBfdGVzdD4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDT01NQU5EICR7Q01BS0VfQ1JPU1NDT01QSUxJTkdfRU1VTEFUT1J9ICQ8
VEFSR0VUX0ZJTEU6anNvbmNwcF90ZXN0PikKKyAgICBlbHNlKEJVSUxEX1NIQVJFRF9MSUJTKQor
ICAgICAgICAjIEp1c3QgcnVuIHRoZSB0ZXN0IGV4ZWN1dGFibGUuCisgICAgICAgIGFkZF9jdXN0
b21fY29tbWFuZCggVEFSR0VUIGpzb25jcHBfdGVzdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBPU1RfQlVJTEQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICR7Q01B
S0VfQ1JPU1NDT01QSUxJTkdfRU1VTEFUT1J9ICQ8VEFSR0VUX0ZJTEU6anNvbmNwcF90ZXN0PikK
KyAgICBlbmRpZigpCisgICAgIyMgQ3JlYXRlIHRlc3RzIGZvciBkYXNoYm9hcmQgc3VibWlzc2lv
biwgYWxsb3dzIGVhc3kgcmV2aWV3IG9mIENJIHJlc3VsdHMgaHR0cHM6Ly9teS5jZGFzaC5vcmcv
aW5kZXgucGhwP3Byb2plY3Q9anNvbmNwcAorICAgIGFkZF90ZXN0KE5BTUUganNvbmNwcF90ZXN0
CisgICAgICAgQ09NTUFORCAke0NNQUtFX0NST1NTQ09NUElMSU5HX0VNVUxBVE9SfSAgJDxUQVJH
RVRfRklMRTpqc29uY3BwX3Rlc3Q+CisgICAgKQorZW5kaWYoKQorCitzZXRfdGFyZ2V0X3Byb3Bl
cnRpZXMoanNvbmNwcF90ZXN0IFBST1BFUlRJRVMgT1VUUFVUX05BTUUganNvbmNwcF90ZXN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9mdXp6LmNwcCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rl
c3RfbGliX2pzb24vZnV6ei5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc5ZjE5ZmZlZTRkYTQ3MWFhYzFmODc2
MGRmNjk4MjRkYTAzZTU5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pz
b24vZnV6ei5jcHAKQEAgLTAsMCArMSw0OSBAQAorLy8gQ29weXJpZ2h0IDIwMDctMjAxOSBUaGUg
SnNvbkNwcCBBdXRob3JzCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVi
bGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGlj
dGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9q
c29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpbmNsdWRlICJmdXp6LmgiCisKKyNp
bmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPGpzb24vY29uZmlnLmg+CisjaW5jbHVkZSA8anNv
bi9qc29uLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1
ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIEpzb24geworY2xhc3MgRXhjZXB0aW9uOworfQorCitl
eHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEs
IHNpemVfdCBzaXplKSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGJ1aWxkZXI7CisKKyAg
aWYgKHNpemUgPCBzaXplb2YodWludDMyX3QpKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKworICB1
aW50MzJfdCBoYXNoX3NldHRpbmdzID0gKihjb25zdCB1aW50MzJfdCopZGF0YTsKKyAgZGF0YSAr
PSBzaXplb2YodWludDMyX3QpOworCisgIGJ1aWxkZXIuc2V0dGluZ3NfWyJmYWlsSWZFeHRyYSJd
ID0gaGFzaF9zZXR0aW5ncyAmICgxIDw8IDApOworICBidWlsZGVyLnNldHRpbmdzX1siYWxsb3dD
b21tZW50c18iXSA9IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCAxKTsKKyAgYnVpbGRlci5zZXR0aW5n
c19bInN0cmljdFJvb3RfIl0gPSBoYXNoX3NldHRpbmdzICYgKDEgPDwgMik7CisgIGJ1aWxkZXIu
c2V0dGluZ3NfWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyJdID0gaGFzaF9zZXR0aW5n
cyAmICgxIDw8IDMpOworICBidWlsZGVyLnNldHRpbmdzX1siYWxsb3dOdW1lcmljS2V5c18iXSA9
IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCA0KTsKKyAgYnVpbGRlci5zZXR0aW5nc19bImFsbG93U2lu
Z2xlUXVvdGVzXyJdID0gaGFzaF9zZXR0aW5ncyAmICgxIDw8IDUpOworICBidWlsZGVyLnNldHRp
bmdzX1siZmFpbElmRXh0cmFfIl0gPSBoYXNoX3NldHRpbmdzICYgKDEgPDwgNik7CisgIGJ1aWxk
ZXIuc2V0dGluZ3NfWyJyZWplY3REdXBLZXlzXyJdID0gaGFzaF9zZXR0aW5ncyAmICgxIDw8IDcp
OworICBidWlsZGVyLnNldHRpbmdzX1siYWxsb3dTcGVjaWFsRmxvYXRzXyJdID0gaGFzaF9zZXR0
aW5ncyAmICgxIDw8IDgpOworCisgIHN0ZDo6dW5pcXVlX3B0cjxKc29uOjpDaGFyUmVhZGVyPiBy
ZWFkZXIoYnVpbGRlci5uZXdDaGFyUmVhZGVyKCkpOworCisgIEpzb246OlZhbHVlIHJvb3Q7Cisg
IGNvbnN0IGNoYXIqIGRhdGFfc3RyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0
YSk7CisgIHRyeSB7CisgICAgcmVhZGVyLT5wYXJzZShkYXRhX3N0ciwgZGF0YV9zdHIgKyBzaXpl
LCAmcm9vdCwgbnVsbHB0cik7CisgIH0gY2F0Y2ggKEpzb246OkV4Y2VwdGlvbiBjb25zdCYpIHsK
KyAgfQorICAvLyBXaGV0aGVyIGl0IHN1Y2NlZWRlZCBvciBub3QgZG9lc24ndCBtYXR0ZXIuCisg
IHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9mdXp6Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2Z1enouaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODE2ZDI3NTdjZTU4
OTY5NGRlNzFhY2JhNGVjNGFhMGI2Yzk1M2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMv
dGVzdF9saWJfanNvbi9mdXp6LmgKQEAgLTAsMCArMSwxNCBAQAorLy8gQ29weXJpZ2h0IDIwMDct
MjAxMCBUaGUgSnNvbkNwcCBBdXRob3JzCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5z
ZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3Vy
IGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0
IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgRlVaWl9I
X0lOQ0xVREVECisjZGVmaW5lIEZVWlpfSF9JTkNMVURFRAorCisjaW5jbHVkZSA8Y3N0ZGRlZj4K
KyNpbmNsdWRlIDxzdGRpbnQuaD4KKworZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJ
bnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSk7CisKKyNlbmRpZiAvLyBpZm5k
ZWYgRlVaWl9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pz
b250ZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vanNvbnRlc3QuY3BwCmluZGV4IDMy
N2QzNDRiY2VhOWZlNzZmOTU0NmU2ZTI4YTA5ZGJmOWM5ZWZjOGUuLmMwYjUyOTZkOTM3N2Y2Nzcy
YmFhZmVhMThjODNiNjdkNDc2ZDczNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pz
b24vanNvbnRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vanNvbnRlc3QuY3Bw
CkBAIC0xLDU3NSArMSw0MzUgQEAKLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVw
aWxsZXVyCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhl
IEpzb25DcHAgQXV0aG9ycwogLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1
YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2Rp
Y3Rpb24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCiAjZGVmaW5lIF9DUlRfU0VDVVJFX05P
X1dBUk5JTkdTIDEgLy8gUHJldmVudHMgZGVwcmVjYXRpb24gd2FybmluZyB3aXRoIE1TVkMKICNp
bmNsdWRlICJqc29udGVzdC5oIgotI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8Y3N0ZGlv
PgogI2luY2x1ZGUgPHN0cmluZz4KIAogI2lmIGRlZmluZWQoX01TQ19WRVIpCiAvLyBVc2VkIHRv
IGluc3RhbGwgYSByZXBvcnQgaG9vayB0aGF0IHByZXZlbnQgZGlhbG9nIG9uIGFzc2VydGlvbiBh
bmQgZXJyb3IuCi0jIGluY2x1ZGUgPGNydGRiZy5oPgorI2luY2x1ZGUgPGNydGRiZy5oPgogI2Vu
ZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCiAKICNpZiBkZWZpbmVkKF9XSU4zMikKIC8vIFVz
ZWQgdG8gcHJldmVudCBkaWFsb2cgb24gbWVtb3J5IGZhdWx0LgogLy8gTGltaXRzIGhlYWRlcnMg
aW5jbHVkZWQgYnkgV2luZG93cy5oCi0jIGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCi0jIGRl
ZmluZSBOT1NFUlZJQ0UKLSMgZGVmaW5lIE5PTUNYCi0jIGRlZmluZSBOT0lNRQotIyBkZWZpbmUg
Tk9TT1VORAotIyBkZWZpbmUgTk9DT01NCi0jIGRlZmluZSBOT1JQQwotIyBkZWZpbmUgTk9HREkK
LSMgZGVmaW5lIE5PVVNFUgotIyBkZWZpbmUgTk9EUklWRVJTCi0jIGRlZmluZSBOT0xPR0VSUk9S
Ci0jIGRlZmluZSBOT1BST0ZJTEVSCi0jIGRlZmluZSBOT01FTU1HUgotIyBkZWZpbmUgTk9MRklM
RUlPCi0jIGRlZmluZSBOT09QRU5GSUxFCi0jIGRlZmluZSBOT1JFU09VUkNFCi0jIGRlZmluZSBO
T0FUT00KLSMgZGVmaW5lIE5PTEFOR1VBR0UKLSMgZGVmaW5lIE5PTFNUUklORwotIyBkZWZpbmUg
Tk9EQkNTCi0jIGRlZmluZSBOT0tFWUJPQVJESU5GTwotIyBkZWZpbmUgTk9HRElDQVBNQVNLUwot
IyBkZWZpbmUgTk9DT0xPUgotIyBkZWZpbmUgTk9HRElPQkoKLSMgZGVmaW5lIE5PRFJBV1RFWFQK
LSMgZGVmaW5lIE5PVEVYVE1FVFJJQwotIyBkZWZpbmUgTk9TQ0FMQUJMRUZPTlQKLSMgZGVmaW5l
IE5PQklUTUFQCi0jIGRlZmluZSBOT1JBU1RFUk9QUwotIyBkZWZpbmUgTk9NRVRBRklMRQotIyBk
ZWZpbmUgTk9TWVNNRVRSSUNTCi0jIGRlZmluZSBOT1NZU1RFTVBBUkFNU0lORk8KLSMgZGVmaW5l
IE5PTVNHCi0jIGRlZmluZSBOT1dJTlNUWUxFUwotIyBkZWZpbmUgTk9XSU5PRkZTRVRTCi0jIGRl
ZmluZSBOT1NIT1dXSU5ET1cKLSMgZGVmaW5lIE5PREVGRVJXSU5ET1dQT1MKLSMgZGVmaW5lIE5P
VklSVFVBTEtFWUNPREVTCi0jIGRlZmluZSBOT0tFWVNUQVRFUwotIyBkZWZpbmUgTk9XSAotIyBk
ZWZpbmUgTk9NRU5VUwotIyBkZWZpbmUgTk9TQ1JPTEwKLSMgZGVmaW5lIE5PQ0xJUEJPQVJECi0j
IGRlZmluZSBOT0lDT05TCi0jIGRlZmluZSBOT01CCi0jIGRlZmluZSBOT1NZU0NPTU1BTkRTCi0j
IGRlZmluZSBOT01ESQotIyBkZWZpbmUgTk9DVExNR1IKLSMgZGVmaW5lIE5PV0lOTUVTU0FHRVMK
LSMgaW5jbHVkZSA8d2luZG93cy5oPgorI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCisjZGVm
aW5lIE5PU0VSVklDRQorI2RlZmluZSBOT01DWAorI2RlZmluZSBOT0lNRQorI2RlZmluZSBOT1NP
VU5ECisjZGVmaW5lIE5PQ09NTQorI2RlZmluZSBOT1JQQworI2RlZmluZSBOT0dESQorI2RlZmlu
ZSBOT1VTRVIKKyNkZWZpbmUgTk9EUklWRVJTCisjZGVmaW5lIE5PTE9HRVJST1IKKyNkZWZpbmUg
Tk9QUk9GSUxFUgorI2RlZmluZSBOT01FTU1HUgorI2RlZmluZSBOT0xGSUxFSU8KKyNkZWZpbmUg
Tk9PUEVORklMRQorI2RlZmluZSBOT1JFU09VUkNFCisjZGVmaW5lIE5PQVRPTQorI2RlZmluZSBO
T0xBTkdVQUdFCisjZGVmaW5lIE5PTFNUUklORworI2RlZmluZSBOT0RCQ1MKKyNkZWZpbmUgTk9L
RVlCT0FSRElORk8KKyNkZWZpbmUgTk9HRElDQVBNQVNLUworI2RlZmluZSBOT0NPTE9SCisjZGVm
aW5lIE5PR0RJT0JKCisjZGVmaW5lIE5PRFJBV1RFWFQKKyNkZWZpbmUgTk9URVhUTUVUUklDCisj
ZGVmaW5lIE5PU0NBTEFCTEVGT05UCisjZGVmaW5lIE5PQklUTUFQCisjZGVmaW5lIE5PUkFTVEVS
T1BTCisjZGVmaW5lIE5PTUVUQUZJTEUKKyNkZWZpbmUgTk9TWVNNRVRSSUNTCisjZGVmaW5lIE5P
U1lTVEVNUEFSQU1TSU5GTworI2RlZmluZSBOT01TRworI2RlZmluZSBOT1dJTlNUWUxFUworI2Rl
ZmluZSBOT1dJTk9GRlNFVFMKKyNkZWZpbmUgTk9TSE9XV0lORE9XCisjZGVmaW5lIE5PREVGRVJX
SU5ET1dQT1MKKyNkZWZpbmUgTk9WSVJUVUFMS0VZQ09ERVMKKyNkZWZpbmUgTk9LRVlTVEFURVMK
KyNkZWZpbmUgTk9XSAorI2RlZmluZSBOT01FTlVTCisjZGVmaW5lIE5PU0NST0xMCisjZGVmaW5l
IE5PQ0xJUEJPQVJECisjZGVmaW5lIE5PSUNPTlMKKyNkZWZpbmUgTk9NQgorI2RlZmluZSBOT1NZ
U0NPTU1BTkRTCisjZGVmaW5lIE5PTURJCisjZGVmaW5lIE5PQ1RMTUdSCisjZGVmaW5lIE5PV0lO
TUVTU0FHRVMKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYgLy8gaWYgZGVmaW5lZChfV0lO
MzIpCiAKIG5hbWVzcGFjZSBKc29uVGVzdCB7CiAKLQogLy8gY2xhc3MgVGVzdFJlc3VsdAogLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAKLVRlc3RSZXN1bHQ6OlRlc3RSZXN1bHQoKQotICAgOiBwcmVkaWNhdGVJZF8o
IDEgKQotICAgLCBsYXN0VXNlZFByZWRpY2F0ZUlkXyggMCApCi0gICAsIG1lc3NhZ2VUYXJnZXRf
KCAwICkKLXsKLSAgIC8vIFRoZSByb290IHByZWRpY2F0ZSBoYXMgaWQgMAotICAgcm9vdFByZWRp
Y2F0ZU5vZGVfLmlkXyA9IDA7Ci0gICByb290UHJlZGljYXRlTm9kZV8ubmV4dF8gPSAwOwotICAg
cHJlZGljYXRlU3RhY2tUYWlsXyA9ICZyb290UHJlZGljYXRlTm9kZV87Ci19Ci0KLQotdm9pZCAK
LVRlc3RSZXN1bHQ6OnNldFRlc3ROYW1lKCBjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSApCi17Ci0g
ICBuYW1lXyA9IG5hbWU7Ci19Ci0KLVRlc3RSZXN1bHQgJgotVGVzdFJlc3VsdDo6YWRkRmFpbHVy
ZSggY29uc3QgY2hhciAqZmlsZSwgdW5zaWduZWQgaW50IGxpbmUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyICpleHByICkKLXsKLSAgIC8vLyBXYWxrcyB0aGUgUHJlZGljYXRl
Q29udGV4dCBzdGFjayBhZGRpbmcgdGhlbSB0byBmYWlsdXJlc18gaWYgbm90IGFscmVhZHkgYWRk
ZWQuCi0gICB1bnNpZ25lZCBpbnQgbmVzdGluZ0xldmVsID0gMDsKLSAgIFByZWRpY2F0ZUNvbnRl
eHQgKmxhc3ROb2RlID0gcm9vdFByZWRpY2F0ZU5vZGVfLm5leHRfOwotICAgZm9yICggOyBsYXN0
Tm9kZSAhPSAwOyBsYXN0Tm9kZSA9IGxhc3ROb2RlLT5uZXh0XyApCi0gICB7Ci0gICAgICBpZiAo
IGxhc3ROb2RlLT5pZF8gPiBsYXN0VXNlZFByZWRpY2F0ZUlkXyApIC8vIG5ldyBQcmVkaWNhdGVD
b250ZXh0Ci0gICAgICB7Ci0gICAgICAgICBsYXN0VXNlZFByZWRpY2F0ZUlkXyA9IGxhc3ROb2Rl
LT5pZF87Ci0gICAgICAgICBhZGRGYWlsdXJlSW5mbyggbGFzdE5vZGUtPmZpbGVfLCBsYXN0Tm9k
ZS0+bGluZV8sIGxhc3ROb2RlLT5leHByXywKLSAgICAgICAgICAgICAgICAgICAgICAgICBuZXN0
aW5nTGV2ZWwgKTsKLSAgICAgICAgIC8vIExpbmsgdGhlIFByZWRpY2F0ZUNvbnRleHQgdG8gdGhl
IGZhaWx1cmUgZm9yIG1lc3NhZ2UgdGFyZ2V0IHdoZW4gCi0gICAgICAgICAvLyBwb3BwaW5nIHRo
ZSBQcmVkaWNhdGVDb250ZXh0LgotICAgICAgICAgbGFzdE5vZGUtPmZhaWx1cmVfID0gJiggZmFp
bHVyZXNfLmJhY2soKSApOwotICAgICAgfQotICAgICAgKytuZXN0aW5nTGV2ZWw7Ci0gICB9Ci0K
LSAgIC8vIEFkZHMgdGhlIGZhaWxlZCBhc3NlcnRpb24KLSAgIGFkZEZhaWx1cmVJbmZvKCBmaWxl
LCBsaW5lLCBleHByLCBuZXN0aW5nTGV2ZWwgKTsKLSAgIG1lc3NhZ2VUYXJnZXRfID0gJiggZmFp
bHVyZXNfLmJhY2soKSApOwotICAgcmV0dXJuICp0aGlzOworVGVzdFJlc3VsdDo6VGVzdFJlc3Vs
dCgpIHsKKyAgLy8gVGhlIHJvb3QgcHJlZGljYXRlIGhhcyBpZCAwCisgIHJvb3RQcmVkaWNhdGVO
b2RlXy5pZF8gPSAwOworICByb290UHJlZGljYXRlTm9kZV8ubmV4dF8gPSBudWxscHRyOworICBw
cmVkaWNhdGVTdGFja1RhaWxfID0gJnJvb3RQcmVkaWNhdGVOb2RlXzsKIH0KIAotCi12b2lkIAot
VGVzdFJlc3VsdDo6YWRkRmFpbHVyZUluZm8oIGNvbnN0IGNoYXIgKmZpbGUsIHVuc2lnbmVkIGlu
dCBsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmV4cHIsIHVu
c2lnbmVkIGludCBuZXN0aW5nTGV2ZWwgKQotewotICAgRmFpbHVyZSBmYWlsdXJlOwotICAgZmFp
bHVyZS5maWxlXyA9IGZpbGU7Ci0gICBmYWlsdXJlLmxpbmVfID0gbGluZTsKLSAgIGlmICggZXhw
ciApCi0gICB7Ci0gICAgICBmYWlsdXJlLmV4cHJfID0gZXhwcjsKLSAgIH0KLSAgIGZhaWx1cmUu
bmVzdGluZ0xldmVsXyA9IG5lc3RpbmdMZXZlbDsKLSAgIGZhaWx1cmVzXy5wdXNoX2JhY2soIGZh
aWx1cmUgKTsKLX0KLQotCi1UZXN0UmVzdWx0ICYKLVRlc3RSZXN1bHQ6OnBvcFByZWRpY2F0ZUNv
bnRleHQoKQotewotICAgUHJlZGljYXRlQ29udGV4dCAqbGFzdE5vZGUgPSAmcm9vdFByZWRpY2F0
ZU5vZGVfOwotICAgd2hpbGUgKCBsYXN0Tm9kZS0+bmV4dF8gIT0gMCAgJiYgIGxhc3ROb2RlLT5u
ZXh0Xy0+bmV4dF8gIT0gMCApCi0gICB7Ci0gICAgICBsYXN0Tm9kZSA9IGxhc3ROb2RlLT5uZXh0
XzsKLSAgIH0KLSAgIC8vIFNldCBtZXNzYWdlIHRhcmdldCB0byBwb3BwZWQgZmFpbHVyZQotICAg
UHJlZGljYXRlQ29udGV4dCAqdGFpbCA9IGxhc3ROb2RlLT5uZXh0XzsKLSAgIGlmICggdGFpbCAh
PSAwICAmJiAgdGFpbC0+ZmFpbHVyZV8gIT0gMCApCi0gICB7Ci0gICAgICBtZXNzYWdlVGFyZ2V0
XyA9IHRhaWwtPmZhaWx1cmVfOwotICAgfQotICAgLy8gUmVtb3ZlIHRhaWwgZnJvbSBsaXN0Ci0g
ICBwcmVkaWNhdGVTdGFja1RhaWxfID0gbGFzdE5vZGU7Ci0gICBsYXN0Tm9kZS0+bmV4dF8gPSAw
OwotICAgcmV0dXJuICp0aGlzOwordm9pZCBUZXN0UmVzdWx0OjpzZXRUZXN0TmFtZShjb25zdCBK
c29uOjpTdHJpbmcmIG5hbWUpIHsgbmFtZV8gPSBuYW1lOyB9CisKK1Rlc3RSZXN1bHQmCitUZXN0
UmVzdWx0OjphZGRGYWlsdXJlKGNvbnN0IGNoYXIqIGZpbGUsIHVuc2lnbmVkIGludCBsaW5lLCBj
b25zdCBjaGFyKiBleHByKSB7CisgIC8vLyBXYWxrcyB0aGUgUHJlZGljYXRlQ29udGV4dCBzdGFj
ayBhZGRpbmcgdGhlbSB0byBmYWlsdXJlc18gaWYgbm90IGFscmVhZHkKKyAgLy8vIGFkZGVkLgor
ICB1bnNpZ25lZCBpbnQgbmVzdGluZ0xldmVsID0gMDsKKyAgUHJlZGljYXRlQ29udGV4dCogbGFz
dE5vZGUgPSByb290UHJlZGljYXRlTm9kZV8ubmV4dF87CisgIGZvciAoOyBsYXN0Tm9kZSAhPSBu
dWxscHRyOyBsYXN0Tm9kZSA9IGxhc3ROb2RlLT5uZXh0XykgeworICAgIGlmIChsYXN0Tm9kZS0+
aWRfID4gbGFzdFVzZWRQcmVkaWNhdGVJZF8pIC8vIG5ldyBQcmVkaWNhdGVDb250ZXh0CisgICAg
eworICAgICAgbGFzdFVzZWRQcmVkaWNhdGVJZF8gPSBsYXN0Tm9kZS0+aWRfOworICAgICAgYWRk
RmFpbHVyZUluZm8obGFzdE5vZGUtPmZpbGVfLCBsYXN0Tm9kZS0+bGluZV8sIGxhc3ROb2RlLT5l
eHByXywKKyAgICAgICAgICAgICAgICAgICAgIG5lc3RpbmdMZXZlbCk7CisgICAgICAvLyBMaW5r
IHRoZSBQcmVkaWNhdGVDb250ZXh0IHRvIHRoZSBmYWlsdXJlIGZvciBtZXNzYWdlIHRhcmdldCB3
aGVuCisgICAgICAvLyBwb3BwaW5nIHRoZSBQcmVkaWNhdGVDb250ZXh0LgorICAgICAgbGFzdE5v
ZGUtPmZhaWx1cmVfID0gJihmYWlsdXJlc18uYmFjaygpKTsKKyAgICB9CisgICAgKytuZXN0aW5n
TGV2ZWw7CisgIH0KKworICAvLyBBZGRzIHRoZSBmYWlsZWQgYXNzZXJ0aW9uCisgIGFkZEZhaWx1
cmVJbmZvKGZpbGUsIGxpbmUsIGV4cHIsIG5lc3RpbmdMZXZlbCk7CisgIG1lc3NhZ2VUYXJnZXRf
ID0gJihmYWlsdXJlc18uYmFjaygpKTsKKyAgcmV0dXJuICp0aGlzOwogfQogCi0KLWJvb2wgCi1U
ZXN0UmVzdWx0OjpmYWlsZWQoKSBjb25zdAotewotICAgcmV0dXJuICFmYWlsdXJlc18uZW1wdHko
KTsKK3ZvaWQgVGVzdFJlc3VsdDo6YWRkRmFpbHVyZUluZm8oY29uc3QgY2hhciogZmlsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxpbmUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuZXN0aW5nTGV2ZWwpIHsKKyAgRmFpbHVy
ZSBmYWlsdXJlOworICBmYWlsdXJlLmZpbGVfID0gZmlsZTsKKyAgZmFpbHVyZS5saW5lXyA9IGxp
bmU7CisgIGlmIChleHByKSB7CisgICAgZmFpbHVyZS5leHByXyA9IGV4cHI7CisgIH0KKyAgZmFp
bHVyZS5uZXN0aW5nTGV2ZWxfID0gbmVzdGluZ0xldmVsOworICBmYWlsdXJlc18ucHVzaF9iYWNr
KGZhaWx1cmUpOwogfQogCi0KLXVuc2lnbmVkIGludCAKLVRlc3RSZXN1bHQ6OmdldEFzc2VydGlv
bk5lc3RpbmdMZXZlbCgpIGNvbnN0Ci17Ci0gICB1bnNpZ25lZCBpbnQgbGV2ZWwgPSAwOwotICAg
Y29uc3QgUHJlZGljYXRlQ29udGV4dCAqbGFzdE5vZGUgPSAmcm9vdFByZWRpY2F0ZU5vZGVfOwot
ICAgd2hpbGUgKCBsYXN0Tm9kZS0+bmV4dF8gIT0gMCApCi0gICB7Ci0gICAgICBsYXN0Tm9kZSA9
IGxhc3ROb2RlLT5uZXh0XzsKLSAgICAgICsrbGV2ZWw7Ci0gICB9Ci0gICByZXR1cm4gbGV2ZWw7
CitUZXN0UmVzdWx0JiBUZXN0UmVzdWx0Ojpwb3BQcmVkaWNhdGVDb250ZXh0KCkgeworICBQcmVk
aWNhdGVDb250ZXh0KiBsYXN0Tm9kZSA9ICZyb290UHJlZGljYXRlTm9kZV87CisgIHdoaWxlIChs
YXN0Tm9kZS0+bmV4dF8gIT0gbnVsbHB0ciAmJiBsYXN0Tm9kZS0+bmV4dF8tPm5leHRfICE9IG51
bGxwdHIpIHsKKyAgICBsYXN0Tm9kZSA9IGxhc3ROb2RlLT5uZXh0XzsKKyAgfQorICAvLyBTZXQg
bWVzc2FnZSB0YXJnZXQgdG8gcG9wcGVkIGZhaWx1cmUKKyAgUHJlZGljYXRlQ29udGV4dCogdGFp
bCA9IGxhc3ROb2RlLT5uZXh0XzsKKyAgaWYgKHRhaWwgIT0gbnVsbHB0ciAmJiB0YWlsLT5mYWls
dXJlXyAhPSBudWxscHRyKSB7CisgICAgbWVzc2FnZVRhcmdldF8gPSB0YWlsLT5mYWlsdXJlXzsK
KyAgfQorICAvLyBSZW1vdmUgdGFpbCBmcm9tIGxpc3QKKyAgcHJlZGljYXRlU3RhY2tUYWlsXyA9
IGxhc3ROb2RlOworICBsYXN0Tm9kZS0+bmV4dF8gPSBudWxscHRyOworICByZXR1cm4gKnRoaXM7
CiB9CiAKLQotdm9pZCAKLVRlc3RSZXN1bHQ6OnByaW50RmFpbHVyZSggYm9vbCBwcmludFRlc3RO
YW1lICkgY29uc3QKLXsKLSAgIGlmICggZmFpbHVyZXNfLmVtcHR5KCkgKQotICAgewotICAgICAg
cmV0dXJuOwotICAgfQotCi0gICBpZiAoIHByaW50VGVzdE5hbWUgKQotICAgewotICAgICAgcHJp
bnRmKCAiKiBEZXRhaWwgb2YgJXMgdGVzdCBmYWlsdXJlOlxuIiwgbmFtZV8uY19zdHIoKSApOwot
ICAgfQotCi0gICAvLyBQcmludCBpbiByZXZlcnNlIHRvIGRpc3BsYXkgdGhlIGNhbGxzdGFjayBp
biB0aGUgcmlnaHQgb3JkZXIKLSAgIEZhaWx1cmVzOjpjb25zdF9pdGVyYXRvciBpdEVuZCA9IGZh
aWx1cmVzXy5lbmQoKTsKLSAgIGZvciAoIEZhaWx1cmVzOjpjb25zdF9pdGVyYXRvciBpdCA9IGZh
aWx1cmVzXy5iZWdpbigpOyBpdCAhPSBpdEVuZDsgKytpdCApCi0gICB7Ci0gICAgICBjb25zdCBG
YWlsdXJlICZmYWlsdXJlID0gKml0OwotICAgICAgc3RkOjpzdHJpbmcgaW5kZW50KCBmYWlsdXJl
Lm5lc3RpbmdMZXZlbF8gKiAyLCAnICcgKTsKLSAgICAgIGlmICggZmFpbHVyZS5maWxlXyApCi0g
ICAgICB7Ci0gICAgICAgICBwcmludGYoICIlcyVzKCVkKTogIiwgaW5kZW50LmNfc3RyKCksIGZh
aWx1cmUuZmlsZV8sIGZhaWx1cmUubGluZV8gKTsKLSAgICAgIH0KLSAgICAgIGlmICggIWZhaWx1
cmUuZXhwcl8uZW1wdHkoKSApCi0gICAgICB7Ci0gICAgICAgICBwcmludGYoICIlc1xuIiwgZmFp
bHVyZS5leHByXy5jX3N0cigpICk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICggZmFpbHVyZS5m
aWxlXyApCi0gICAgICB7Ci0gICAgICAgICBwcmludGYoICJcbiIgKTsKLSAgICAgIH0KLSAgICAg
IGlmICggIWZhaWx1cmUubWVzc2FnZV8uZW1wdHkoKSApCi0gICAgICB7Ci0gICAgICAgICBzdGQ6
OnN0cmluZyByZWluZGVudGVkID0gaW5kZW50VGV4dCggZmFpbHVyZS5tZXNzYWdlXywgaW5kZW50
ICsgIiAgIiApOwotICAgICAgICAgcHJpbnRmKCAiJXNcbiIsIHJlaW5kZW50ZWQuY19zdHIoKSAp
OwotICAgICAgfQotICAgfQorYm9vbCBUZXN0UmVzdWx0OjpmYWlsZWQoKSBjb25zdCB7IHJldHVy
biAhZmFpbHVyZXNfLmVtcHR5KCk7IH0KKwordm9pZCBUZXN0UmVzdWx0OjpwcmludEZhaWx1cmUo
Ym9vbCBwcmludFRlc3ROYW1lKSBjb25zdCB7CisgIGlmIChmYWlsdXJlc18uZW1wdHkoKSkgewor
ICAgIHJldHVybjsKKyAgfQorCisgIGlmIChwcmludFRlc3ROYW1lKSB7CisgICAgcHJpbnRmKCIq
IERldGFpbCBvZiAlcyB0ZXN0IGZhaWx1cmU6XG4iLCBuYW1lXy5jX3N0cigpKTsKKyAgfQorCisg
IC8vIFByaW50IGluIHJldmVyc2UgdG8gZGlzcGxheSB0aGUgY2FsbHN0YWNrIGluIHRoZSByaWdo
dCBvcmRlcgorICBmb3IgKGNvbnN0IGF1dG8mIGZhaWx1cmUgOiBmYWlsdXJlc18pIHsKKyAgICBK
c29uOjpTdHJpbmcgaW5kZW50KGZhaWx1cmUubmVzdGluZ0xldmVsXyAqIDIsICcgJyk7CisgICAg
aWYgKGZhaWx1cmUuZmlsZV8pIHsKKyAgICAgIHByaW50ZigiJXMlcygldSk6ICIsIGluZGVudC5j
X3N0cigpLCBmYWlsdXJlLmZpbGVfLCBmYWlsdXJlLmxpbmVfKTsKKyAgICB9CisgICAgaWYgKCFm
YWlsdXJlLmV4cHJfLmVtcHR5KCkpIHsKKyAgICAgIHByaW50ZigiJXNcbiIsIGZhaWx1cmUuZXhw
cl8uY19zdHIoKSk7CisgICAgfSBlbHNlIGlmIChmYWlsdXJlLmZpbGVfKSB7CisgICAgICBwcmlu
dGYoIlxuIik7CisgICAgfQorICAgIGlmICghZmFpbHVyZS5tZXNzYWdlXy5lbXB0eSgpKSB7Cisg
ICAgICBKc29uOjpTdHJpbmcgcmVpbmRlbnRlZCA9IGluZGVudFRleHQoZmFpbHVyZS5tZXNzYWdl
XywgaW5kZW50ICsgIiAgIik7CisgICAgICBwcmludGYoIiVzXG4iLCByZWluZGVudGVkLmNfc3Ry
KCkpOworICAgIH0KKyAgfQogfQogCi0KLXN0ZDo6c3RyaW5nIAotVGVzdFJlc3VsdDo6aW5kZW50
VGV4dCggY29uc3Qgc3RkOjpzdHJpbmcgJnRleHQsIAotICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgc3RkOjpzdHJpbmcgJmluZGVudCApCi17Ci0gICBzdGQ6OnN0cmluZyByZWluZGVudGVk
OwotICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBsYXN0SW5kZXggPSAwOwotICAgd2hpbGUgKCBs
YXN0SW5kZXggPCB0ZXh0LnNpemUoKSApCi0gICB7Ci0gICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIG5leHRJbmRleCA9IHRleHQuZmluZCggJ1xuJywgbGFzdEluZGV4ICk7Ci0gICAgICBpZiAo
IG5leHRJbmRleCA9PSBzdGQ6OnN0cmluZzo6bnBvcyApCi0gICAgICB7Ci0gICAgICAgICBuZXh0
SW5kZXggPSB0ZXh0LnNpemUoKSAtIDE7Ci0gICAgICB9Ci0gICAgICByZWluZGVudGVkICs9IGlu
ZGVudDsKLSAgICAgIHJlaW5kZW50ZWQgKz0gdGV4dC5zdWJzdHIoIGxhc3RJbmRleCwgbmV4dElu
ZGV4IC0gbGFzdEluZGV4ICsgMSApOwotICAgICAgbGFzdEluZGV4ID0gbmV4dEluZGV4ICsgMTsK
LSAgIH0KLSAgIHJldHVybiByZWluZGVudGVkOworSnNvbjo6U3RyaW5nIFRlc3RSZXN1bHQ6Omlu
ZGVudFRleHQoY29uc3QgSnNvbjo6U3RyaW5nJiB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6U3RyaW5nJiBpbmRlbnQpIHsKKyAgSnNvbjo6U3Ry
aW5nIHJlaW5kZW50ZWQ7CisgIEpzb246OlN0cmluZzo6c2l6ZV90eXBlIGxhc3RJbmRleCA9IDA7
CisgIHdoaWxlIChsYXN0SW5kZXggPCB0ZXh0LnNpemUoKSkgeworICAgIEpzb246OlN0cmluZzo6
c2l6ZV90eXBlIG5leHRJbmRleCA9IHRleHQuZmluZCgnXG4nLCBsYXN0SW5kZXgpOworICAgIGlm
IChuZXh0SW5kZXggPT0gSnNvbjo6U3RyaW5nOjpucG9zKSB7CisgICAgICBuZXh0SW5kZXggPSB0
ZXh0LnNpemUoKSAtIDE7CisgICAgfQorICAgIHJlaW5kZW50ZWQgKz0gaW5kZW50OworICAgIHJl
aW5kZW50ZWQgKz0gdGV4dC5zdWJzdHIobGFzdEluZGV4LCBuZXh0SW5kZXggLSBsYXN0SW5kZXgg
KyAxKTsKKyAgICBsYXN0SW5kZXggPSBuZXh0SW5kZXggKyAxOworICB9CisgIHJldHVybiByZWlu
ZGVudGVkOwogfQogCi0KLVRlc3RSZXN1bHQgJgotVGVzdFJlc3VsdDo6YWRkVG9MYXN0RmFpbHVy
ZSggY29uc3Qgc3RkOjpzdHJpbmcgJm1lc3NhZ2UgKQotewotICAgaWYgKCBtZXNzYWdlVGFyZ2V0
XyAhPSAwICkKLSAgIHsKLSAgICAgIG1lc3NhZ2VUYXJnZXRfLT5tZXNzYWdlXyArPSBtZXNzYWdl
OwotICAgfQotICAgcmV0dXJuICp0aGlzOworVGVzdFJlc3VsdCYgVGVzdFJlc3VsdDo6YWRkVG9M
YXN0RmFpbHVyZShjb25zdCBKc29uOjpTdHJpbmcmIG1lc3NhZ2UpIHsKKyAgaWYgKG1lc3NhZ2VU
YXJnZXRfICE9IG51bGxwdHIpIHsKKyAgICBtZXNzYWdlVGFyZ2V0Xy0+bWVzc2FnZV8gKz0gbWVz
c2FnZTsKKyAgfQorICByZXR1cm4gKnRoaXM7CiB9CiAKLVRlc3RSZXN1bHQgJgotVGVzdFJlc3Vs
dDo6b3BlcmF0b3IgPDwgKCBKc29uOjpJbnQ2NCB2YWx1ZSApIHsKLSAgIHJldHVybiBhZGRUb0xh
c3RGYWlsdXJlKCBKc29uOjp2YWx1ZVRvU3RyaW5nKHZhbHVlKSApOworVGVzdFJlc3VsdCYgVGVz
dFJlc3VsdDo6b3BlcmF0b3I8PChKc29uOjpJbnQ2NCB2YWx1ZSkgeworICByZXR1cm4gYWRkVG9M
YXN0RmFpbHVyZShKc29uOjp2YWx1ZVRvU3RyaW5nKHZhbHVlKSk7CiB9CiAKLQotVGVzdFJlc3Vs
dCAmCi1UZXN0UmVzdWx0OjpvcGVyYXRvciA8PCAoIEpzb246OlVJbnQ2NCB2YWx1ZSApIHsKLSAg
IHJldHVybiBhZGRUb0xhc3RGYWlsdXJlKCBKc29uOjp2YWx1ZVRvU3RyaW5nKHZhbHVlKSApOwor
VGVzdFJlc3VsdCYgVGVzdFJlc3VsdDo6b3BlcmF0b3I8PChKc29uOjpVSW50NjQgdmFsdWUpIHsK
KyAgcmV0dXJuIGFkZFRvTGFzdEZhaWx1cmUoSnNvbjo6dmFsdWVUb1N0cmluZyh2YWx1ZSkpOwog
fQogCi0KLVRlc3RSZXN1bHQgJgotVGVzdFJlc3VsdDo6b3BlcmF0b3IgPDwgKCBib29sIHZhbHVl
ICkgewotICAgcmV0dXJuIGFkZFRvTGFzdEZhaWx1cmUodmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2Ui
KTsKK1Rlc3RSZXN1bHQmIFRlc3RSZXN1bHQ6Om9wZXJhdG9yPDwoYm9vbCB2YWx1ZSkgeworICBy
ZXR1cm4gYWRkVG9MYXN0RmFpbHVyZSh2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogfQogCi0K
IC8vIGNsYXNzIFRlc3RDYXNlCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotVGVzdENhc2U6OlRlc3RDYXNlKCkK
LSAgIDogcmVzdWx0XyggMCApCi17Ci19Ci0KLQotVGVzdENhc2U6On5UZXN0Q2FzZSgpCi17Ci19
CitUZXN0Q2FzZTo6VGVzdENhc2UoKSA9IGRlZmF1bHQ7CiAKK1Rlc3RDYXNlOjp+VGVzdENhc2Uo
KSA9IGRlZmF1bHQ7CiAKLXZvaWQgCi1UZXN0Q2FzZTo6cnVuKCBUZXN0UmVzdWx0ICZyZXN1bHQg
KQotewotICAgcmVzdWx0XyA9ICZyZXN1bHQ7Ci0gICBydW5UZXN0Q2FzZSgpOwordm9pZCBUZXN0
Q2FzZTo6cnVuKFRlc3RSZXN1bHQmIHJlc3VsdCkgeworICByZXN1bHRfID0gJnJlc3VsdDsKKyAg
cnVuVGVzdENhc2UoKTsKIH0KIAotCi0KIC8vIGNsYXNzIFJ1bm5lcgogLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAK
LVJ1bm5lcjo6UnVubmVyKCkKLXsKLX0KK1J1bm5lcjo6UnVubmVyKCkgPSBkZWZhdWx0OwogCi0K
LVJ1bm5lciAmCi1SdW5uZXI6OmFkZCggVGVzdENhc2VGYWN0b3J5IGZhY3RvcnkgKQotewotICAg
dGVzdHNfLnB1c2hfYmFjayggZmFjdG9yeSApOwotICAgcmV0dXJuICp0aGlzOwotfQotCi0KLXVu
c2lnbmVkIGludCAKLVJ1bm5lcjo6dGVzdENvdW50KCkgY29uc3QKLXsKLSAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KCB0ZXN0c18uc2l6ZSgpICk7CitSdW5uZXImIFJ1bm5lcjo6
YWRkKFRlc3RDYXNlRmFjdG9yeSBmYWN0b3J5KSB7CisgIHRlc3RzXy5wdXNoX2JhY2soZmFjdG9y
eSk7CisgIHJldHVybiAqdGhpczsKIH0KIAorc2l6ZV90IFJ1bm5lcjo6dGVzdENvdW50KCkgY29u
c3QgeyByZXR1cm4gdGVzdHNfLnNpemUoKTsgfQogCi1zdGQ6OnN0cmluZyAKLVJ1bm5lcjo6dGVz
dE5hbWVBdCggdW5zaWduZWQgaW50IGluZGV4ICkgY29uc3QKLXsKLSAgIFRlc3RDYXNlICp0ZXN0
ID0gdGVzdHNfW2luZGV4XSgpOwotICAgc3RkOjpzdHJpbmcgbmFtZSA9IHRlc3QtPnRlc3ROYW1l
KCk7Ci0gICBkZWxldGUgdGVzdDsKLSAgIHJldHVybiBuYW1lOworSnNvbjo6U3RyaW5nIFJ1bm5l
cjo6dGVzdE5hbWVBdChzaXplX3QgaW5kZXgpIGNvbnN0IHsKKyAgVGVzdENhc2UqIHRlc3QgPSB0
ZXN0c19baW5kZXhdKCk7CisgIEpzb246OlN0cmluZyBuYW1lID0gdGVzdC0+dGVzdE5hbWUoKTsK
KyAgZGVsZXRlIHRlc3Q7CisgIHJldHVybiBuYW1lOwogfQogCi0KLXZvaWQgCi1SdW5uZXI6OnJ1
blRlc3RBdCggdW5zaWduZWQgaW50IGluZGV4LCBUZXN0UmVzdWx0ICZyZXN1bHQgKSBjb25zdAot
ewotICAgVGVzdENhc2UgKnRlc3QgPSB0ZXN0c19baW5kZXhdKCk7Ci0gICByZXN1bHQuc2V0VGVz
dE5hbWUoIHRlc3QtPnRlc3ROYW1lKCkgKTsKLSAgIHByaW50ZiggIlRlc3RpbmcgJXM6ICIsIHRl
c3QtPnRlc3ROYW1lKCkgKTsKLSAgIGZmbHVzaCggc3Rkb3V0ICk7Cit2b2lkIFJ1bm5lcjo6cnVu
VGVzdEF0KHNpemVfdCBpbmRleCwgVGVzdFJlc3VsdCYgcmVzdWx0KSBjb25zdCB7CisgIFRlc3RD
YXNlKiB0ZXN0ID0gdGVzdHNfW2luZGV4XSgpOworICByZXN1bHQuc2V0VGVzdE5hbWUodGVzdC0+
dGVzdE5hbWUoKSk7CisgIHByaW50ZigiVGVzdGluZyAlczogIiwgdGVzdC0+dGVzdE5hbWUoKSk7
CisgIGZmbHVzaChzdGRvdXQpOwogI2lmIEpTT05fVVNFX0VYQ0VQVElPTgotICAgdHJ5IAotICAg
eworICB0cnkgewogI2VuZGlmIC8vIGlmIEpTT05fVVNFX0VYQ0VQVElPTgotICAgICAgdGVzdC0+
cnVuKCByZXN1bHQgKTsKKyAgICB0ZXN0LT5ydW4ocmVzdWx0KTsKICNpZiBKU09OX1VTRV9FWENF
UFRJT04KLSAgIH0gCi0gICBjYXRjaCAoIGNvbnN0IHN0ZDo6ZXhjZXB0aW9uICZlICkgCi0gICB7
Ci0gICAgICByZXN1bHQuYWRkRmFpbHVyZSggX19GSUxFX18sIF9fTElORV9fLCAKLSAgICAgICAg
ICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiBjYXVnaHQ6IiApIDw8IGUud2hhdCgpOwotICAgfQorICB9
IGNhdGNoIChjb25zdCBzdGQ6OmV4Y2VwdGlvbiYgZSkgeworICAgIHJlc3VsdC5hZGRGYWlsdXJl
KF9fRklMRV9fLCBfX0xJTkVfXywgIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIGNhdWdodDoiKQorICAg
ICAgICA8PCBlLndoYXQoKTsKKyAgfQogI2VuZGlmIC8vIGlmIEpTT05fVVNFX0VYQ0VQVElPTgot
ICAgZGVsZXRlIHRlc3Q7Ci0gICBjb25zdCBjaGFyICpzdGF0dXMgPSByZXN1bHQuZmFpbGVkKCkg
PyAiRkFJTEVEIiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJP
SyI7Ci0gICBwcmludGYoICIlc1xuIiwgc3RhdHVzICk7Ci0gICBmZmx1c2goIHN0ZG91dCApOwor
ICBkZWxldGUgdGVzdDsKKyAgY29uc3QgY2hhciogc3RhdHVzID0gcmVzdWx0LmZhaWxlZCgpID8g
IkZBSUxFRCIgOiAiT0siOworICBwcmludGYoIiVzXG4iLCBzdGF0dXMpOworICBmZmx1c2goc3Rk
b3V0KTsKIH0KIAorYm9vbCBSdW5uZXI6OnJ1bkFsbFRlc3QoYm9vbCBwcmludFN1bW1hcnkpIGNv
bnN0IHsKKyAgc2l6ZV90IGNvbnN0IGNvdW50ID0gdGVzdENvdW50KCk7CisgIHN0ZDo6ZGVxdWU8
VGVzdFJlc3VsdD4gZmFpbHVyZXM7CisgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBj
b3VudDsgKytpbmRleCkgeworICAgIFRlc3RSZXN1bHQgcmVzdWx0OworICAgIHJ1blRlc3RBdChp
bmRleCwgcmVzdWx0KTsKKyAgICBpZiAocmVzdWx0LmZhaWxlZCgpKSB7CisgICAgICBmYWlsdXJl
cy5wdXNoX2JhY2socmVzdWx0KTsKKyAgICB9CisgIH0KKworICBpZiAoZmFpbHVyZXMuZW1wdHko
KSkgeworICAgIGlmIChwcmludFN1bW1hcnkpIHsKKyAgICAgIHByaW50ZigiQWxsICV6dSB0ZXN0
cyBwYXNzZWRcbiIsIGNvdW50KTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0gZWxzZSB7
CisgICAgZm9yIChhdXRvJiByZXN1bHQgOiBmYWlsdXJlcykgeworICAgICAgcmVzdWx0LnByaW50
RmFpbHVyZShjb3VudCA+IDEpOworICAgIH0KKworICAgIGlmIChwcmludFN1bW1hcnkpIHsKKyAg
ICAgIHNpemVfdCBjb25zdCBmYWlsZWRDb3VudCA9IGZhaWx1cmVzLnNpemUoKTsKKyAgICAgIHNp
emVfdCBjb25zdCBwYXNzZWRDb3VudCA9IGNvdW50IC0gZmFpbGVkQ291bnQ7CisgICAgICBwcmlu
dGYoIiV6dS8lenUgdGVzdHMgcGFzc2VkICglenUgZmFpbHVyZShzKSlcbiIsIHBhc3NlZENvdW50
LCBjb3VudCwKKyAgICAgICAgICAgICBmYWlsZWRDb3VudCk7CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKKyAgfQorfQogCi1ib29sIAotUnVubmVyOjpydW5BbGxUZXN0KCBib29sIHByaW50U3Vt
bWFyeSApIGNvbnN0Ci17Ci0gICB1bnNpZ25lZCBpbnQgY291bnQgPSB0ZXN0Q291bnQoKTsKLSAg
IHN0ZDo6ZGVxdWU8VGVzdFJlc3VsdD4gZmFpbHVyZXM7Ci0gICBmb3IgKCB1bnNpZ25lZCBpbnQg
aW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4ICkKLSAgIHsKLSAgICAgIFRlc3RSZXN1
bHQgcmVzdWx0OwotICAgICAgcnVuVGVzdEF0KCBpbmRleCwgcmVzdWx0ICk7Ci0gICAgICBpZiAo
IHJlc3VsdC5mYWlsZWQoKSApCi0gICAgICB7Ci0gICAgICAgICBmYWlsdXJlcy5wdXNoX2JhY2so
IHJlc3VsdCApOwotICAgICAgfQotICAgfQotCi0gICBpZiAoIGZhaWx1cmVzLmVtcHR5KCkgKQot
ICAgewotICAgICAgaWYgKCBwcmludFN1bW1hcnkgKQotICAgICAgewotICAgICAgICAgcHJpbnRm
KCAiQWxsICVkIHRlc3RzIHBhc3NlZFxuIiwgY291bnQgKTsKLSAgICAgIH0KK2Jvb2wgUnVubmVy
Ojp0ZXN0SW5kZXgoY29uc3QgSnNvbjo6U3RyaW5nJiB0ZXN0TmFtZSwgc2l6ZV90JiBpbmRleE91
dCkgY29uc3QgeworICBjb25zdCBzaXplX3QgY291bnQgPSB0ZXN0Q291bnQoKTsKKyAgZm9yIChz
aXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgaWYgKHRlc3RO
YW1lQXQoaW5kZXgpID09IHRlc3ROYW1lKSB7CisgICAgICBpbmRleE91dCA9IGluZGV4OwogICAg
ICAgcmV0dXJuIHRydWU7Ci0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAgICBmb3IgKCB1bnNpZ25l
ZCBpbnQgaW5kZXggPSAwOyBpbmRleCA8IGZhaWx1cmVzLnNpemUoKTsgKytpbmRleCApCi0gICAg
ICB7Ci0gICAgICAgICBUZXN0UmVzdWx0ICZyZXN1bHQgPSBmYWlsdXJlc1tpbmRleF07Ci0gICAg
ICAgICByZXN1bHQucHJpbnRGYWlsdXJlKCBjb3VudCA+IDEgKTsKLSAgICAgIH0KLQotICAgICAg
aWYgKCBwcmludFN1bW1hcnkgKQotICAgICAgewotICAgICAgICAgdW5zaWduZWQgaW50IGZhaWxl
ZENvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PiggZmFpbHVyZXMuc2l6ZSgpICk7Ci0g
ICAgICAgICB1bnNpZ25lZCBpbnQgcGFzc2VkQ291bnQgPSBjb3VudCAtIGZhaWxlZENvdW50Owot
ICAgICAgICAgcHJpbnRmKCAiJWQvJWQgdGVzdHMgcGFzc2VkICglZCBmYWlsdXJlKHMpKVxuIiwg
cGFzc2VkQ291bnQsIGNvdW50LCBmYWlsZWRDb3VudCApOwotICAgICAgfQotICAgICAgcmV0dXJu
IGZhbHNlOwotICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gZmFsc2U7CiB9CiAKLQotYm9vbCAK
LVJ1bm5lcjo6dGVzdEluZGV4KCBjb25zdCBzdGQ6OnN0cmluZyAmdGVzdE5hbWUsIAotICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGludCAmaW5kZXhPdXQgKSBjb25zdAotewotICAgdW5zaWdu
ZWQgaW50IGNvdW50ID0gdGVzdENvdW50KCk7Ci0gICBmb3IgKCB1bnNpZ25lZCBpbnQgaW5kZXgg
PSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4ICkKLSAgIHsKLSAgICAgIGlmICggdGVzdE5hbWVB
dChpbmRleCkgPT0gdGVzdE5hbWUgKQotICAgICAgewotICAgICAgICAgaW5kZXhPdXQgPSBpbmRl
eDsKLSAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgfQotICAgfQotICAgcmV0dXJuIGZhbHNl
Owordm9pZCBSdW5uZXI6Omxpc3RUZXN0cygpIGNvbnN0IHsKKyAgY29uc3Qgc2l6ZV90IGNvdW50
ID0gdGVzdENvdW50KCk7CisgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsg
KytpbmRleCkgeworICAgIHByaW50ZigiJXNcbiIsIHRlc3ROYW1lQXQoaW5kZXgpLmNfc3RyKCkp
OworICB9CiB9CiAKLQotdm9pZCAKLVJ1bm5lcjo6bGlzdFRlc3RzKCkgY29uc3QKLXsKLSAgIHVu
c2lnbmVkIGludCBjb3VudCA9IHRlc3RDb3VudCgpOwotICAgZm9yICggdW5zaWduZWQgaW50IGlu
ZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCApCi0gICB7Ci0gICAgICBwcmludGYoICIl
c1xuIiwgdGVzdE5hbWVBdCggaW5kZXggKS5jX3N0cigpICk7Ci0gICB9Ci19Ci0KLQotaW50IAot
UnVubmVyOjpydW5Db21tYW5kTGluZSggaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSApIGNv
bnN0Ci17Ci0gICB0eXBlZGVmIHN0ZDo6ZGVxdWU8c3RkOjpzdHJpbmc+IFRlc3ROYW1lczsKLSAg
IFJ1bm5lciBzdWJydW5uZXI7Ci0gICBmb3IgKCBpbnQgaW5kZXggPSAxOyBpbmRleCA8IGFyZ2M7
ICsraW5kZXggKQotICAgewotICAgICAgc3RkOjpzdHJpbmcgb3B0ID0gYXJndltpbmRleF07Ci0g
ICAgICBpZiAoIG9wdCA9PSAiLS1saXN0LXRlc3RzIiApCi0gICAgICB7Ci0gICAgICAgICBsaXN0
VGVzdHMoKTsKLSAgICAgICAgIHJldHVybiAwOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoIG9w
dCA9PSAiLS10ZXN0LWF1dG8iICkKLSAgICAgIHsKLSAgICAgICAgIHByZXZlbnREaWFsb2dPbkNy
YXNoKCk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICggb3B0ID09ICItLXRlc3QiICkKLSAgICAg
IHsKLSAgICAgICAgICsraW5kZXg7Ci0gICAgICAgICBpZiAoIGluZGV4IDwgYXJnYyApCi0gICAg
ICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGVzdE5hbWVJbmRleDsKLSAgICAgICAg
ICAgIGlmICggdGVzdEluZGV4KCBhcmd2W2luZGV4XSwgdGVzdE5hbWVJbmRleCApICkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgIHN1YnJ1bm5lci5hZGQoIHRlc3RzX1t0ZXN0TmFtZUlu
ZGV4XSApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgZnByaW50Ziggc3RkZXJyLCAiVGVzdCAnJXMnIGRvZXMgbm90IGV4aXN0
IVxuIiwgYXJndltpbmRleF0gKTsKLSAgICAgICAgICAgICAgIHJldHVybiAyOwotICAgICAgICAg
ICAgfQotICAgICAgICAgfQotICAgICAgICAgZWxzZQotICAgICAgICAgewotICAgICAgICAgICAg
cHJpbnRVc2FnZSggYXJndlswXSApOwotICAgICAgICAgICAgcmV0dXJuIDI7Ci0gICAgICAgICB9
CitpbnQgUnVubmVyOjpydW5Db21tYW5kTGluZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltd
KSBjb25zdCB7CisgIC8vIHR5cGVkZWYgc3RkOjpkZXF1ZTxTdHJpbmc+IFRlc3ROYW1lczsKKyAg
UnVubmVyIHN1YnJ1bm5lcjsKKyAgZm9yIChpbnQgaW5kZXggPSAxOyBpbmRleCA8IGFyZ2M7ICsr
aW5kZXgpIHsKKyAgICBKc29uOjpTdHJpbmcgb3B0ID0gYXJndltpbmRleF07CisgICAgaWYgKG9w
dCA9PSAiLS1saXN0LXRlc3RzIikgeworICAgICAgbGlzdFRlc3RzKCk7CisgICAgICByZXR1cm4g
MDsKKyAgICB9IGVsc2UgaWYgKG9wdCA9PSAiLS10ZXN0LWF1dG8iKSB7CisgICAgICBwcmV2ZW50
RGlhbG9nT25DcmFzaCgpOworICAgIH0gZWxzZSBpZiAob3B0ID09ICItLXRlc3QiKSB7CisgICAg
ICArK2luZGV4OworICAgICAgaWYgKGluZGV4IDwgYXJnYykgeworICAgICAgICBzaXplX3QgdGVz
dE5hbWVJbmRleDsKKyAgICAgICAgaWYgKHRlc3RJbmRleChhcmd2W2luZGV4XSwgdGVzdE5hbWVJ
bmRleCkpIHsKKyAgICAgICAgICBzdWJydW5uZXIuYWRkKHRlc3RzX1t0ZXN0TmFtZUluZGV4XSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJUZXN0ICclcycg
ZG9lcyBub3QgZXhpc3QhXG4iLCBhcmd2W2luZGV4XSk7CisgICAgICAgICAgcmV0dXJuIDI7Cisg
ICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50VXNhZ2UoYXJndlswXSk7Cisg
ICAgICAgIHJldHVybiAyOwogICAgICAgfQotICAgICAgZWxzZQotICAgICAgewotICAgICAgICAg
cHJpbnRVc2FnZSggYXJndlswXSApOwotICAgICAgICAgcmV0dXJuIDI7Ci0gICAgICB9Ci0gICB9
Ci0gICBib29sIHN1Y2NlZWRlZDsKLSAgIGlmICggc3VicnVubmVyLnRlc3RDb3VudCgpID4gMCAp
Ci0gICB7Ci0gICAgICBzdWNjZWVkZWQgPSBzdWJydW5uZXIucnVuQWxsVGVzdCggc3VicnVubmVy
LnRlc3RDb3VudCgpID4gMSApOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgc3VjY2VlZGVk
ID0gcnVuQWxsVGVzdCggdHJ1ZSApOwotICAgfQotICAgcmV0dXJuIHN1Y2NlZWRlZCA/IDAgCi0g
ICAgICAgICAgICAgICAgICAgIDogMTsKKyAgICB9IGVsc2UgeworICAgICAgcHJpbnRVc2FnZShh
cmd2WzBdKTsKKyAgICAgIHJldHVybiAyOworICAgIH0KKyAgfQorICBib29sIHN1Y2NlZWRlZDsK
KyAgaWYgKHN1YnJ1bm5lci50ZXN0Q291bnQoKSA+IDApIHsKKyAgICBzdWNjZWVkZWQgPSBzdWJy
dW5uZXIucnVuQWxsVGVzdChzdWJydW5uZXIudGVzdENvdW50KCkgPiAxKTsKKyAgfSBlbHNlIHsK
KyAgICBzdWNjZWVkZWQgPSBydW5BbGxUZXN0KHRydWUpOworICB9CisgIHJldHVybiBzdWNjZWVk
ZWQgPyAwIDogMTsKIH0KIAotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNpZiBkZWZpbmVkKF9N
U0NfVkVSKSAmJiBkZWZpbmVkKF9ERUJVRykKIC8vIEhvb2sgTVNWQ1JUIGFzc2VydGlvbnMgdG8g
cHJldmVudCBkaWFsb2cgZnJvbSBhcHBlYXJpbmcKLXN0YXRpYyBpbnQgCi1tc3ZjcnRTaWxlbnRS
ZXBvcnRIb29rKCBpbnQgcmVwb3J0VHlwZSwgY2hhciAqbWVzc2FnZSwgaW50ICpyZXR1cm5WYWx1
ZSApCi17Ci0gICAvLyBUaGUgZGVmYXVsdCBDUlQgaGFuZGxpbmcgb2YgZXJyb3IgYW5kIGFzc2Vy
dGlvbiBpcyB0byBkaXNwbGF5Ci0gICAvLyBhbiBlcnJvciBkaWFsb2cgdG8gdGhlIHVzZXIuCi0g
ICAvLyBJbnN0ZWFkLCB3aGVuIGFuIGVycm9yIG9yIGFuIGFzc2VydGlvbiBvY2N1cnMsIHdlIGZv
cmNlIHRoZSAKLSAgIC8vIGFwcGxpY2F0aW9uIHRvIHRlcm1pbmF0ZSB1c2luZyBhYm9ydCgpIGFm
dGVyIGRpc3BsYXkKLSAgIC8vIHRoZSBtZXNzYWdlIG9uIHN0ZGVyci4gCi0gICBpZiAoIHJlcG9y
dFR5cGUgPT0gX0NSVF9FUlJPUiAgfHwgIAotICAgICAgICByZXBvcnRUeXBlID09IF9DUlRfQVNT
RVJUICkKLSAgIHsKLSAgICAgIC8vIGNhbGxpbmcgYWJvcnQoKSBjYXVzZSB0aGUgUmVwb3J0SG9v
ayB0byBiZSBjYWxsZWQKLSAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgdXNlZCB0byBkZXRlY3Qg
dGhpcyBjYXNlIGFuZCBsZXQncyB0aGUKLSAgICAgIC8vIGVycm9yIGhhbmRsZXIgZmFsbGJhY2sg
b24gaXRzIGRlZmF1bHQgYmVoYXZpb3VyICgKLSAgICAgIC8vIGRpc3BsYXkgYSB3YXJuaW5nIG1l
c3NhZ2UpCi0gICAgICBzdGF0aWMgdm9sYXRpbGUgYm9vbCBpc0Fib3J0aW5nID0gZmFsc2U7Ci0g
ICAgICBpZiAoIGlzQWJvcnRpbmcgKSAKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBUUlVFOwot
ICAgICAgfQotICAgICAgaXNBYm9ydGluZyA9IHRydWU7Ci0KLSAgICAgIGZwcmludGYoIHN0ZGVy
ciwgIkNSVCBFcnJvci9Bc3NlcnQ6XG4lc1xuIiwgbWVzc2FnZSApOwotICAgICAgZmZsdXNoKCBz
dGRlcnIgKTsKLSAgICAgIGFib3J0KCk7Ci0gICB9Ci0gICAvLyBMZXQncyBvdGhlciByZXBvcnRU
eXBlIChfQ1JUX1dBUk5JTkcpIGJlIGhhbmRsZWQgYXMgdGhleSB3b3VsZCBieSBkZWZhdWx0Ci0g
ICByZXR1cm4gRkFMU0U7CitzdGF0aWMgaW50Cittc3ZjcnRTaWxlbnRSZXBvcnRIb29rKGludCBy
ZXBvcnRUeXBlLCBjaGFyKiBtZXNzYWdlLCBpbnQqIC8qcmV0dXJuVmFsdWUqLykgeworICAvLyBU
aGUgZGVmYXVsdCBDUlQgaGFuZGxpbmcgb2YgZXJyb3IgYW5kIGFzc2VydGlvbiBpcyB0byBkaXNw
bGF5CisgIC8vIGFuIGVycm9yIGRpYWxvZyB0byB0aGUgdXNlci4KKyAgLy8gSW5zdGVhZCwgd2hl
biBhbiBlcnJvciBvciBhbiBhc3NlcnRpb24gb2NjdXJzLCB3ZSBmb3JjZSB0aGUKKyAgLy8gYXBw
bGljYXRpb24gdG8gdGVybWluYXRlIHVzaW5nIGFib3J0KCkgYWZ0ZXIgZGlzcGxheQorICAvLyB0
aGUgbWVzc2FnZSBvbiBzdGRlcnIuCisgIGlmIChyZXBvcnRUeXBlID09IF9DUlRfRVJST1IgfHwg
cmVwb3J0VHlwZSA9PSBfQ1JUX0FTU0VSVCkgeworICAgIC8vIGNhbGxpbmcgYWJvcnQoKSBjYXVz
ZSB0aGUgUmVwb3J0SG9vayB0byBiZSBjYWxsZWQKKyAgICAvLyBUaGUgZm9sbG93aW5nIGlzIHVz
ZWQgdG8gZGV0ZWN0IHRoaXMgY2FzZSBhbmQgbGV0J3MgdGhlCisgICAgLy8gZXJyb3IgaGFuZGxl
ciBmYWxsYmFjayBvbiBpdHMgZGVmYXVsdCBiZWhhdmlvdXIgKAorICAgIC8vIGRpc3BsYXkgYSB3
YXJuaW5nIG1lc3NhZ2UpCisgICAgc3RhdGljIHZvbGF0aWxlIGJvb2wgaXNBYm9ydGluZyA9IGZh
bHNlOworICAgIGlmIChpc0Fib3J0aW5nKSB7CisgICAgICByZXR1cm4gVFJVRTsKKyAgICB9Cisg
ICAgaXNBYm9ydGluZyA9IHRydWU7CisKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkNSVCBFcnJvci9B
c3NlcnQ6XG4lc1xuIiwgbWVzc2FnZSk7CisgICAgZmZsdXNoKHN0ZGVycik7CisgICAgYWJvcnQo
KTsKKyAgfQorICAvLyBMZXQncyBvdGhlciByZXBvcnRUeXBlIChfQ1JUX1dBUk5JTkcpIGJlIGhh
bmRsZWQgYXMgdGhleSB3b3VsZCBieSBkZWZhdWx0CisgIHJldHVybiBGQUxTRTsKIH0KICNlbmRp
ZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQogCi0KLXZvaWQgCi1SdW5uZXI6OnByZXZlbnREaWFs
b2dPbkNyYXNoKCkKLXsKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQotICAgLy8gSW5zdGFsbCBhIGhv
b2sgdG8gcHJldmVudCBNU1ZDUlQgZXJyb3IgYW5kIGFzc2VydGlvbiBmcm9tCi0gICAvLyBwb3Bw
aW5nIGEgZGlhbG9nLgotICAgX0NydFNldFJlcG9ydEhvb2soICZtc3ZjcnRTaWxlbnRSZXBvcnRI
b29rICk7Cit2b2lkIFJ1bm5lcjo6cHJldmVudERpYWxvZ09uQ3Jhc2goKSB7CisjaWYgZGVmaW5l
ZChfTVNDX1ZFUikgJiYgZGVmaW5lZChfREVCVUcpCisgIC8vIEluc3RhbGwgYSBob29rIHRvIHBy
ZXZlbnQgTVNWQ1JUIGVycm9yIGFuZCBhc3NlcnRpb24gZnJvbQorICAvLyBwb3BwaW5nIGEgZGlh
bG9nCisgIC8vIFRoaXMgZnVuY3Rpb24gYSBOTy1PUCBpbiByZWxlYXNlIGNvbmZpZ3VyYXRpb24K
KyAgLy8gKHdoaWNoIGNhdXNlIHdhcm5pbmcgc2luY2UgbXN2Y3J0U2lsZW50UmVwb3J0SG9vayBp
cyBub3QgcmVmZXJlbmNlZCkKKyAgX0NydFNldFJlcG9ydEhvb2soJm1zdmNydFNpbGVudFJlcG9y
dEhvb2spOwogI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCiAKLSAgIC8vIEB0b2RvIGlu
dmVzdGlndWF0ZSB0aGlzIGhhbmRsZXIgKGZvciBidWZmZXIgb3ZlcmZsb3cpCi0gICAvLyBfc2V0
X3NlY3VyaXR5X2Vycm9yX2hhbmRsZXIKKyAgLy8gQHRvZG8gaW52ZXN0aWdhdGUgdGhpcyBoYW5k
bGVyIChmb3IgYnVmZmVyIG92ZXJmbG93KQorICAvLyBfc2V0X3NlY3VyaXR5X2Vycm9yX2hhbmRs
ZXIKIAogI2lmIGRlZmluZWQoX1dJTjMyKQotICAgLy8gUHJldmVudHMgdGhlIHN5c3RlbSBmcm9t
IHBvcHBpbmcgYSBkaWFsb2cgZm9yIGRlYnVnZ2luZyBpZiB0aGUKLSAgIC8vIGFwcGxpY2F0aW9u
IGZhaWxzIGR1ZSB0byBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCi0gICBTZXRFcnJvck1vZGUoIFNF
TV9GQUlMQ1JJVElDQUxFUlJPUlMgCi0gICAgICAgICAgICAgICAgIHwgU0VNX05PR1BGQVVMVEVS
Uk9SQk9YIAotICAgICAgICAgICAgICAgICB8IFNFTV9OT09QRU5GSUxFRVJST1JCT1ggKTsKKyAg
Ly8gUHJldmVudHMgdGhlIHN5c3RlbSBmcm9tIHBvcHBpbmcgYSBkaWFsb2cgZm9yIGRlYnVnZ2lu
ZyBpZiB0aGUKKyAgLy8gYXBwbGljYXRpb24gZmFpbHMgZHVlIHRvIGludmFsaWQgbWVtb3J5IGFj
Y2Vzcy4KKyAgU2V0RXJyb3JNb2RlKFNFTV9GQUlMQ1JJVElDQUxFUlJPUlMgfCBTRU1fTk9HUEZB
VUxURVJST1JCT1ggfAorICAgICAgICAgICAgICAgU0VNX05PT1BFTkZJTEVFUlJPUkJPWCk7CiAj
ZW5kaWYgLy8gaWYgZGVmaW5lZChfV0lOMzIpCiB9CiAKLXZvaWQgCi1SdW5uZXI6OnByaW50VXNh
Z2UoIGNvbnN0IGNoYXIgKmFwcE5hbWUgKQotewotICAgcHJpbnRmKCAKLSAgICAgICJVc2FnZTog
JXMgW29wdGlvbnNdXG4iCi0gICAgICAiXG4iCi0gICAgICAiSWYgLS10ZXN0IGlzIG5vdCBzcGVj
aWZpZWQsIHRoZW4gYWxsIHRoZSB0ZXN0IGNhc2VzIGJlIHJ1bi5cbiIKLSAgICAgICJcbiIKLSAg
ICAgICJWYWxpZCBvcHRpb25zOlxuIgotICAgICAgIi0tbGlzdC10ZXN0czogcHJpbnQgdGhlIG5h
bWUgb2YgYWxsIHRlc3QgY2FzZXMgb24gdGhlIHN0YW5kYXJkXG4iCi0gICAgICAiICAgICAgICAg
ICAgICBvdXRwdXQgYW5kIGV4aXQuXG4iCi0gICAgICAiLS10ZXN0IFRFU1ROQU1FOiBleGVjdXRl
cyB0aGUgdGVzdCBjYXNlIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLlxuIgotICAgICAgIiAgICAg
ICAgICAgICAgICAgTWF5IGJlIHJlcGVhdGVkLlxuIgotICAgICAgIi0tdGVzdC1hdXRvOiBwcmV2
ZW50IGRpYWxvZyBwcm9tcHRpbmcgZm9yIGRlYnVnZ2luZyBvbiBjcmFzaC5cbiIKLSAgICAgICwg
YXBwTmFtZSApOwordm9pZCBSdW5uZXI6OnByaW50VXNhZ2UoY29uc3QgY2hhciogYXBwTmFtZSkg
eworICBwcmludGYoIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyAgICAgICAgICJcbiIKKyAgICAg
ICAgICJJZiAtLXRlc3QgaXMgbm90IHNwZWNpZmllZCwgdGhlbiBhbGwgdGhlIHRlc3QgY2FzZXMg
YmUgcnVuLlxuIgorICAgICAgICAgIlxuIgorICAgICAgICAgIlZhbGlkIG9wdGlvbnM6XG4iCisg
ICAgICAgICAiLS1saXN0LXRlc3RzOiBwcmludCB0aGUgbmFtZSBvZiBhbGwgdGVzdCBjYXNlcyBv
biB0aGUgc3RhbmRhcmRcbiIKKyAgICAgICAgICIgICAgICAgICAgICAgIG91dHB1dCBhbmQgZXhp
dC5cbiIKKyAgICAgICAgICItLXRlc3QgVEVTVE5BTUU6IGV4ZWN1dGVzIHRoZSB0ZXN0IGNhc2Ug
d2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuXG4iCisgICAgICAgICAiICAgICAgICAgICAgICAgICBN
YXkgYmUgcmVwZWF0ZWQuXG4iCisgICAgICAgICAiLS10ZXN0LWF1dG86IHByZXZlbnQgZGlhbG9n
IHByb21wdGluZyBmb3IgZGVidWdnaW5nIG9uIGNyYXNoLlxuIiwKKyAgICAgICAgIGFwcE5hbWUp
OwogfQogCi0KLQogLy8gQXNzZXJ0aW9uIGZ1bmN0aW9ucwogLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLVRlc3RS
ZXN1bHQgJgotY2hlY2tTdHJpbmdFcXVhbCggVGVzdFJlc3VsdCAmcmVzdWx0LCAKLSAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZleHBlY3RlZCwgY29uc3Qgc3RkOjpzdHJpbmcg
JmFjdHVhbCwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZpbGUsIHVuc2lnbmVkIGlu
dCBsaW5lLCBjb25zdCBjaGFyICpleHByICkKLXsKLSAgIGlmICggZXhwZWN0ZWQgIT0gYWN0dWFs
ICkKLSAgIHsKLSAgICAgIHJlc3VsdC5hZGRGYWlsdXJlKCBmaWxlLCBsaW5lLCBleHByICk7Ci0g
ICAgICByZXN1bHQgPDwgIkV4cGVjdGVkOiAnIiA8PCBleHBlY3RlZCA8PCAiJ1xuIjsKLSAgICAg
IHJlc3VsdCA8PCAiQWN0dWFsICA6ICciIDw8IGFjdHVhbCA8PCAiJyI7Ci0gICB9Ci0gICByZXR1
cm4gcmVzdWx0OworSnNvbjo6U3RyaW5nIFRvSnNvblN0cmluZyhjb25zdCBjaGFyKiB0b0NvbnZl
cnQpIHsKKyAgcmV0dXJuIEpzb246OlN0cmluZyh0b0NvbnZlcnQpOwogfQogCitKc29uOjpTdHJp
bmcgVG9Kc29uU3RyaW5nKEpzb246OlN0cmluZyBpbikgeyByZXR1cm4gaW47IH0KKworI2lmIEpT
T05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWQorSnNvbjo6U3RyaW5nIFRvSnNvblN0cmluZyhzdGQ6
OnN0cmluZyBpbikgeworICByZXR1cm4gSnNvbjo6U3RyaW5nKGluLmRhdGEoKSwgaW4uZGF0YSgp
ICsgaW4ubGVuZ3RoKCkpOworfQorI2VuZGlmCisKK1Rlc3RSZXN1bHQmIGNoZWNrU3RyaW5nRXF1
YWwoVGVzdFJlc3VsdCYgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBKc29uOjpTdHJpbmcmIGV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBKc29uOjpTdHJpbmcmIGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4cHIp
IHsKKyAgaWYgKGV4cGVjdGVkICE9IGFjdHVhbCkgeworICAgIHJlc3VsdC5hZGRGYWlsdXJlKGZp
bGUsIGxpbmUsIGV4cHIpOworICAgIHJlc3VsdCA8PCAiRXhwZWN0ZWQ6ICciIDw8IGV4cGVjdGVk
IDw8ICInXG4iOworICAgIHJlc3VsdCA8PCAiQWN0dWFsICA6ICciIDw8IGFjdHVhbCA8PCAiJyI7
CisgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30KIAogfSAvLyBuYW1lc3BhY2UgSnNvblRlc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vanNvbnRlc3QuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rl
c3RfbGliX2pzb24vanNvbnRlc3QuaAppbmRleCAyMDc2OTJiYzE1Y2NiNmVmYjViN2Y0Nzg2N2Nh
YjBhOGIxNWFjYjQxLi5lOWMxMWE0NzA3ZDI3N2MyOTlhZGM5NWQxYTYzNTA1MTYxYzcxM2YzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0LmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9z
cmMvdGVzdF9saWJfanNvbi9qc29udGVzdC5oCkBAIC0xLDE4ICsxLDE4IEBACi0vLyBDb3B5cmln
aHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBC
YXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVk
IHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyBy
ZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3Ig
ZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UK
IAogI2lmbmRlZiBKU09OVEVTVF9IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OVEVTVF9IX0lOQ0xV
REVECisjZGVmaW5lIEpTT05URVNUX0hfSU5DTFVERUQKIAotIyBpbmNsdWRlIDxqc29uL2NvbmZp
Zy5oPgotIyBpbmNsdWRlIDxqc29uL3ZhbHVlLmg+Ci0jIGluY2x1ZGUgPGpzb24vd3JpdGVyLmg+
Ci0jIGluY2x1ZGUgPHN0ZGlvLmg+Ci0jIGluY2x1ZGUgPGRlcXVlPgotIyBpbmNsdWRlIDxzc3Ry
ZWFtPgotIyBpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGRl
cXVlPgorI2luY2x1ZGUgPGpzb24vY29uZmlnLmg+CisjaW5jbHVkZSA8anNvbi92YWx1ZS5oPgor
I2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDxz
dHJpbmc+CiAKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC0yMCw4ICsyMCw2IEBACiAv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi0KLQogLyoqIFxicmllZiBVbml0IHRlc3Rpbmcg
ZnJhbWV3b3JrLgogICogXHdhcm5pbmc6IGFsbCBhc3NlcnRpb25zIGFyZSBub24tYWJvcnRpbmcs
IHRlc3QgY2FzZSBleGVjdXRpb24gd2lsbCBjb250aW51ZQogICogICAgICAgICAgIGV2ZW4gaWYg
YW4gYXNzZXJ0aW9uIG5hbWVzcGFjZS4KQEAgLTMwLDI0NCArMjgsMjQ5IEBACiAgKi8KIG5hbWVz
cGFjZSBKc29uVGVzdCB7CiAKLQotICAgY2xhc3MgRmFpbHVyZQotICAgewotICAgcHVibGljOgot
ICAgICAgY29uc3QgY2hhciAqZmlsZV87Ci0gICAgICB1bnNpZ25lZCBpbnQgbGluZV87Ci0gICAg
ICBzdGQ6OnN0cmluZyBleHByXzsKLSAgICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2VfOwotICAgICAg
dW5zaWduZWQgaW50IG5lc3RpbmdMZXZlbF87Ci0gICB9OwotCi0KLSAgIC8vLyBDb250ZXh0IHVz
ZWQgdG8gY3JlYXRlIHRoZSBhc3NlcnRpb24gY2FsbHN0YWNrIG9uIGZhaWx1cmUuCi0gICAvLy8g
TXVzdCBiZSBhIFBPRCB0byBhbGxvdyBpbmxpbmUgaW5pdGlhbGlzYXRpb24gd2l0aG91dCBzdGVw
cGluZyAKLSAgIC8vLyBpbnRvIHRoZSBkZWJ1Z2dlci4KLSAgIHN0cnVjdCBQcmVkaWNhdGVDb250
ZXh0Ci0gICB7Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBJZDsKLSAgICAgIElkIGlkXzsK
LSAgICAgIGNvbnN0IGNoYXIgKmZpbGVfOwotICAgICAgdW5zaWduZWQgaW50IGxpbmVfOwotICAg
ICAgY29uc3QgY2hhciAqZXhwcl87Ci0gICAgICBQcmVkaWNhdGVDb250ZXh0ICpuZXh0XzsKLSAg
ICAgIC8vLyBSZWxhdGVkIEZhaWx1cmUsIHNldCB3aGVuIHRoZSBQcmVkaWNhdGVDb250ZXh0IGlz
IGNvbnZlcnRlZAotICAgICAgLy8vIGludG8gYSBGYWlsdXJlLgotICAgICAgRmFpbHVyZSAqZmFp
bHVyZV87Ci0gICB9OwotCi0gICBjbGFzcyBUZXN0UmVzdWx0Ci0gICB7Ci0gICBwdWJsaWM6Ci0g
ICAgICBUZXN0UmVzdWx0KCk7Ci0KLSAgICAgIC8vLyBcaW50ZXJuYWwgSW1wbGVtZW50YXRpb24g
ZGV0YWlsIGZvciBhc3NlcnRpb24gbWFjcm9zCi0gICAgICAvLy8gTm90IGVuY2Fwc3VsYXRlZCB0
byBwcmV2ZW50IHN0ZXAgaW50byB3aGVuIGRlYnVnZ2luZyBmYWlsZWQgYXNzZXJ0aW9ucwotICAg
ICAgLy8vIEluY3JlbWVudGVkIGJ5IG9uZSBvbiBhc3NlcnRpb24gcHJlZGljYXRlIGVudHJ5LCBk
ZWNyZWFzZWQgYnkgb25lCi0gICAgICAvLy8gYnkgYWRkUHJlZGljYXRlQ29udGV4dCgpLgotICAg
ICAgUHJlZGljYXRlQ29udGV4dDo6SWQgcHJlZGljYXRlSWRfOwotCi0gICAgICAvLy8gXGludGVy
bmFsIEltcGxlbWVudGF0aW9uIGRldGFpbCBmb3IgcHJlZGljYXRlIG1hY3JvcwotICAgICAgUHJl
ZGljYXRlQ29udGV4dCAqcHJlZGljYXRlU3RhY2tUYWlsXzsKLQotICAgICAgdm9pZCBzZXRUZXN0
TmFtZSggY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUgKTsKLQotICAgICAgLy8vIEFkZHMgYW4gYXNz
ZXJ0aW9uIGZhaWx1cmUuCi0gICAgICBUZXN0UmVzdWx0ICZhZGRGYWlsdXJlKCBjb25zdCBjaGFy
ICpmaWxlLCB1bnNpZ25lZCBpbnQgbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgKmV4cHIgPSAwICk7Ci0KLSAgICAgIC8vLyBSZW1vdmVzIHRoZSBsYXN0IFBy
ZWRpY2F0ZUNvbnRleHQgYWRkZWQgdG8gdGhlIHByZWRpY2F0ZSBzdGFjawotICAgICAgLy8vIGNo
YWluZWQgbGlzdC4KLSAgICAgIC8vLyBOZXh0IG1lc3NhZ2VzIHdpbGwgYmUgdGFyZ2VkIGF0IHRo
ZSBQcmVkaWNhdGVDb250ZXh0IHRoYXQgd2FzIHJlbW92ZWQuCi0gICAgICBUZXN0UmVzdWx0ICZw
b3BQcmVkaWNhdGVDb250ZXh0KCk7Ci0KLSAgICAgIGJvb2wgZmFpbGVkKCkgY29uc3Q7Ci0KLSAg
ICAgIHZvaWQgcHJpbnRGYWlsdXJlKCBib29sIHByaW50VGVzdE5hbWUgKSBjb25zdDsKLQotICAg
ICAgLy8gR2VuZXJpYyBvcGVyYXRvciB0aGF0IHdpbGwgd29yayB3aXRoIGFueXRoaW5nIG9zdHJl
YW0gY2FuIGRlYWwgd2l0aC4KLSAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICAgICAgVGVz
dFJlc3VsdCAmb3BlcmF0b3IgPDwgKCBjb25zdCBUJiB2YWx1ZSApIHsKLSAgICAgICAgIHN0ZDo6
b3N0cmluZ3N0cmVhbSBvc3M7Ci0gICAgICAgICBvc3MucHJlY2lzaW9uKCAxNiApOwotICAgICAg
ICAgb3NzLnNldGYoIHN0ZDo6aW9zX2Jhc2U6OmZsb2F0ZmllbGQgKTsKLSAgICAgICAgIG9zcyA8
PCB2YWx1ZTsKLSAgICAgICAgIHJldHVybiBhZGRUb0xhc3RGYWlsdXJlKG9zcy5zdHIoKSk7Ci0g
ICAgICB9Ci0KLSAgICAgIC8vIFNwZWNpYWxpemVkIHZlcnNpb25zLgotICAgICAgVGVzdFJlc3Vs
dCAmb3BlcmF0b3IgPDwgKCBib29sIHZhbHVlICk7Ci0gICAgICAvLyBzdGQ6b3N0cmVhbSBkb2Vz
IG5vdCBzdXBwb3J0IDY0Yml0cyBpbnRlZ2VycyBvbiBhbGwgU1RMIGltcGxlbWVudGF0aW9uCi0g
ICAgICBUZXN0UmVzdWx0ICZvcGVyYXRvciA8PCAoIEpzb246OkludDY0IHZhbHVlICk7Ci0gICAg
ICBUZXN0UmVzdWx0ICZvcGVyYXRvciA8PCAoIEpzb246OlVJbnQ2NCB2YWx1ZSApOwotCi0gICBw
cml2YXRlOgotICAgICAgVGVzdFJlc3VsdCAmYWRkVG9MYXN0RmFpbHVyZSggY29uc3Qgc3RkOjpz
dHJpbmcgJm1lc3NhZ2UgKTsKLSAgICAgIHVuc2lnbmVkIGludCBnZXRBc3NlcnRpb25OZXN0aW5n
TGV2ZWwoKSBjb25zdDsKLSAgICAgIC8vLyBBZGRzIGEgZmFpbHVyZSBvciBhIHByZWRpY2F0ZSBj
b250ZXh0Ci0gICAgICB2b2lkIGFkZEZhaWx1cmVJbmZvKCBjb25zdCBjaGFyICpmaWxlLCB1bnNp
Z25lZCBpbnQgbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmV4
cHIsIHVuc2lnbmVkIGludCBuZXN0aW5nTGV2ZWwgICk7Ci0gICAgICBzdGF0aWMgc3RkOjpzdHJp
bmcgaW5kZW50VGV4dCggY29uc3Qgc3RkOjpzdHJpbmcgJnRleHQsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZpbmRlbnQgKTsKLQotICAg
ICAgdHlwZWRlZiBzdGQ6OmRlcXVlPEZhaWx1cmU+IEZhaWx1cmVzOwotICAgICAgRmFpbHVyZXMg
ZmFpbHVyZXNfOwotICAgICAgc3RkOjpzdHJpbmcgbmFtZV87Ci0gICAgICBQcmVkaWNhdGVDb250
ZXh0IHJvb3RQcmVkaWNhdGVOb2RlXzsKLSAgICAgIFByZWRpY2F0ZUNvbnRleHQ6OklkIGxhc3RV
c2VkUHJlZGljYXRlSWRfOwotICAgICAgLy8vIEZhaWx1cmUgd2hpY2ggaXMgdGhlIHRhcmdldCBv
ZiB0aGUgbWVzc2FnZXMgYWRkZWQgdXNpbmcgb3BlcmF0b3IgPDwKLSAgICAgIEZhaWx1cmUgKm1l
c3NhZ2VUYXJnZXRfOwotICAgfTsKLQotCi0gICBjbGFzcyBUZXN0Q2FzZQotICAgewotICAgcHVi
bGljOgotICAgICAgVGVzdENhc2UoKTsKLQotICAgICAgdmlydHVhbCB+VGVzdENhc2UoKTsKLQot
ICAgICAgdm9pZCBydW4oIFRlc3RSZXN1bHQgJnJlc3VsdCApOwotCi0gICAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIgKnRlc3ROYW1lKCkgY29uc3QgPSAwOwotCi0gICBwcm90ZWN0ZWQ6Ci0gICAgICBU
ZXN0UmVzdWx0ICpyZXN1bHRfOwotCi0gICBwcml2YXRlOgotICAgICAgdmlydHVhbCB2b2lkIHJ1
blRlc3RDYXNlKCkgPSAwOwotICAgfTsKLQotICAgLy8vIEZ1bmN0aW9uIHBvaW50ZXIgdHlwZSBm
b3IgVGVzdENhc2UgZmFjdG9yeQotICAgdHlwZWRlZiBUZXN0Q2FzZSAqKCpUZXN0Q2FzZUZhY3Rv
cnkpKCk7Ci0KLSAgIGNsYXNzIFJ1bm5lcgotICAgewotICAgcHVibGljOgotICAgICAgUnVubmVy
KCk7Ci0KLSAgICAgIC8vLyBBZGRzIGEgdGVzdCB0byB0aGUgc3VpdGUKLSAgICAgIFJ1bm5lciAm
YWRkKCBUZXN0Q2FzZUZhY3RvcnkgZmFjdG9yeSApOwotCi0gICAgICAvLy8gUnVucyB0ZXN0IGFz
IHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZC1saW5lCi0gICAgICAvLy8gSWYgbm8gY29tbWFuZC1s
aW5lIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQsIHJ1biBhbGwgdGVzdHMuCi0gICAgICAvLy8gSWYg
LS1saXN0LXRlc3RzIGlzIHByb3ZpZGVkLCB0aGVuIHByaW50IHRoZSBsaXN0IG9mIGFsbCB0ZXN0
IGNhc2VzCi0gICAgICAvLy8gSWYgLS10ZXN0IDx0ZXN0bmFtZT4gaXMgcHJvdmlkZWQsIHRoZW4g
cnVuIHRlc3QgdGVzdG5hbWUuCi0gICAgICBpbnQgcnVuQ29tbWFuZExpbmUoIGludCBhcmdjLCBj
b25zdCBjaGFyICphcmd2W10gKSBjb25zdDsKLQotICAgICAgLy8vIFJ1bnMgYWxsIHRoZSB0ZXN0
IGNhc2VzCi0gICAgICBib29sIHJ1bkFsbFRlc3QoIGJvb2wgcHJpbnRTdW1tYXJ5ICkgY29uc3Q7
Ci0KLSAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlIGluIHRoZSBzdWl0
ZQotICAgICAgdW5zaWduZWQgaW50IHRlc3RDb3VudCgpIGNvbnN0OwotCi0gICAgICAvLy8gUmV0
dXJucyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXgKLSAg
ICAgIHN0ZDo6c3RyaW5nIHRlc3ROYW1lQXQoIHVuc2lnbmVkIGludCBpbmRleCApIGNvbnN0Owot
Ci0gICAgICAvLy8gUnVucyB0aGUgdGVzdCBjYXNlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggdXNp
bmcgdGhlIHNwZWNpZmllZCBUZXN0UmVzdWx0Ci0gICAgICB2b2lkIHJ1blRlc3RBdCggdW5zaWdu
ZWQgaW50IGluZGV4LCBUZXN0UmVzdWx0ICZyZXN1bHQgKSBjb25zdDsKLQotICAgICAgc3RhdGlj
IHZvaWQgcHJpbnRVc2FnZSggY29uc3QgY2hhciAqYXBwTmFtZSApOwotCi0gICBwcml2YXRlOiAv
LyBwcmV2ZW50cyBjb3B5IGNvbnN0cnVjdGlvbiBhbmQgYXNzaWdubWVudAotICAgICAgUnVubmVy
KCBjb25zdCBSdW5uZXIgJm90aGVyICk7Ci0gICAgICBSdW5uZXIgJm9wZXJhdG9yID0oIGNvbnN0
IFJ1bm5lciAmb3RoZXIgKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIHZvaWQgbGlzdFRlc3RzKCkg
Y29uc3Q7Ci0gICAgICBib29sIHRlc3RJbmRleCggY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3ROYW1l
LCB1bnNpZ25lZCBpbnQgJmluZGV4ICkgY29uc3Q7Ci0gICAgICBzdGF0aWMgdm9pZCBwcmV2ZW50
RGlhbG9nT25DcmFzaCgpOwotCi0gICBwcml2YXRlOgotICAgICAgdHlwZWRlZiBzdGQ6OmRlcXVl
PFRlc3RDYXNlRmFjdG9yeT4gRmFjdG9yaWVzOwotICAgICAgRmFjdG9yaWVzIHRlc3RzXzsKLSAg
IH07Ci0KLSAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci0gICBUZXN0UmVzdWx0
ICYKLSAgIGNoZWNrRXF1YWwoIFRlc3RSZXN1bHQgJnJlc3VsdCwgY29uc3QgVCAmZXhwZWN0ZWQs
IGNvbnN0IFUgJmFjdHVhbCwgCi0gICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlLCB1bnNp
Z25lZCBpbnQgbGluZSwgY29uc3QgY2hhciAqZXhwciApCi0gICB7Ci0gICAgICBpZiAoIGV4cGVj
dGVkICE9IGFjdHVhbCApCi0gICAgICB7Ci0gICAgICAgICByZXN1bHQuYWRkRmFpbHVyZSggZmls
ZSwgbGluZSwgZXhwciApOwotICAgICAgICAgcmVzdWx0IDw8ICJFeHBlY3RlZDogIiA8PCBleHBl
Y3RlZCA8PCAiXG4iOwotICAgICAgICAgcmVzdWx0IDw8ICJBY3R1YWwgIDogIiA8PCBhY3R1YWw7
Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmVzdWx0OwotICAgfQotCi0KLSAgIFRlc3RSZXN1bHQg
JgotICAgY2hlY2tTdHJpbmdFcXVhbCggVGVzdFJlc3VsdCAmcmVzdWx0LCAKLSAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZleHBlY3RlZCwgY29uc3Qgc3RkOjpzdHJpbmcg
JmFjdHVhbCwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZpbGUsIHVuc2lnbmVk
IGludCBsaW5lLCBjb25zdCBjaGFyICpleHByICk7CitjbGFzcyBGYWlsdXJlIHsKK3B1YmxpYzoK
KyAgY29uc3QgY2hhciogZmlsZV87CisgIHVuc2lnbmVkIGludCBsaW5lXzsKKyAgSnNvbjo6U3Ry
aW5nIGV4cHJfOworICBKc29uOjpTdHJpbmcgbWVzc2FnZV87CisgIHVuc2lnbmVkIGludCBuZXN0
aW5nTGV2ZWxfOworfTsKKworLy8vIENvbnRleHQgdXNlZCB0byBjcmVhdGUgdGhlIGFzc2VydGlv
biBjYWxsc3RhY2sgb24gZmFpbHVyZS4KKy8vLyBNdXN0IGJlIGEgUE9EIHRvIGFsbG93IGlubGlu
ZSBpbml0aWFsaXNhdGlvbiB3aXRob3V0IHN0ZXBwaW5nCisvLy8gaW50byB0aGUgZGVidWdnZXIu
CitzdHJ1Y3QgUHJlZGljYXRlQ29udGV4dCB7CisgIHR5cGVkZWYgdW5zaWduZWQgaW50IElkOwor
ICBJZCBpZF87CisgIGNvbnN0IGNoYXIqIGZpbGVfOworICB1bnNpZ25lZCBpbnQgbGluZV87Cisg
IGNvbnN0IGNoYXIqIGV4cHJfOworICBQcmVkaWNhdGVDb250ZXh0KiBuZXh0XzsKKyAgLy8vIFJl
bGF0ZWQgRmFpbHVyZSwgc2V0IHdoZW4gdGhlIFByZWRpY2F0ZUNvbnRleHQgaXMgY29udmVydGVk
CisgIC8vLyBpbnRvIGEgRmFpbHVyZS4KKyAgRmFpbHVyZSogZmFpbHVyZV87Cit9OworCitjbGFz
cyBUZXN0UmVzdWx0IHsKK3B1YmxpYzoKKyAgVGVzdFJlc3VsdCgpOworCisgIC8vLyBcaW50ZXJu
YWwgSW1wbGVtZW50YXRpb24gZGV0YWlsIGZvciBhc3NlcnRpb24gbWFjcm9zCisgIC8vLyBOb3Qg
ZW5jYXBzdWxhdGVkIHRvIHByZXZlbnQgc3RlcCBpbnRvIHdoZW4gZGVidWdnaW5nIGZhaWxlZCBh
c3NlcnRpb25zCisgIC8vLyBJbmNyZW1lbnRlZCBieSBvbmUgb24gYXNzZXJ0aW9uIHByZWRpY2F0
ZSBlbnRyeSwgZGVjcmVhc2VkIGJ5IG9uZQorICAvLy8gYnkgYWRkUHJlZGljYXRlQ29udGV4dCgp
LgorICBQcmVkaWNhdGVDb250ZXh0OjpJZCBwcmVkaWNhdGVJZF97MX07CisKKyAgLy8vIFxpbnRl
cm5hbCBJbXBsZW1lbnRhdGlvbiBkZXRhaWwgZm9yIHByZWRpY2F0ZSBtYWNyb3MKKyAgUHJlZGlj
YXRlQ29udGV4dCogcHJlZGljYXRlU3RhY2tUYWlsXzsKKworICB2b2lkIHNldFRlc3ROYW1lKGNv
bnN0IEpzb246OlN0cmluZyYgbmFtZSk7CisKKyAgLy8vIEFkZHMgYW4gYXNzZXJ0aW9uIGZhaWx1
cmUuCisgIFRlc3RSZXN1bHQmCisgIGFkZEZhaWx1cmUoY29uc3QgY2hhciogZmlsZSwgdW5zaWdu
ZWQgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGV4cHIgPSBudWxscHRyKTsKKworICAvLy8gUmVtb3Zl
cyB0aGUgbGFzdCBQcmVkaWNhdGVDb250ZXh0IGFkZGVkIHRvIHRoZSBwcmVkaWNhdGUgc3RhY2sK
KyAgLy8vIGNoYWluZWQgbGlzdC4KKyAgLy8vIE5leHQgbWVzc2FnZXMgd2lsbCBiZSB0YXJnZWQg
YXQgdGhlIFByZWRpY2F0ZUNvbnRleHQgdGhhdCB3YXMgcmVtb3ZlZC4KKyAgVGVzdFJlc3VsdCYg
cG9wUHJlZGljYXRlQ29udGV4dCgpOworCisgIGJvb2wgZmFpbGVkKCkgY29uc3Q7CisKKyAgdm9p
ZCBwcmludEZhaWx1cmUoYm9vbCBwcmludFRlc3ROYW1lKSBjb25zdDsKKworICAvLyBHZW5lcmlj
IG9wZXJhdG9yIHRoYXQgd2lsbCB3b3JrIHdpdGggYW55dGhpbmcgb3N0cmVhbSBjYW4gZGVhbCB3
aXRoLgorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVGVzdFJlc3VsdCYgb3BlcmF0b3I8PChjb25z
dCBUJiB2YWx1ZSkgeworICAgIEpzb246Ok9TdHJpbmdTdHJlYW0gb3NzOworICAgIG9zcy5wcmVj
aXNpb24oMTYpOworICAgIG9zcy5zZXRmKHN0ZDo6aW9zX2Jhc2U6OmZsb2F0ZmllbGQpOworICAg
IG9zcyA8PCB2YWx1ZTsKKyAgICByZXR1cm4gYWRkVG9MYXN0RmFpbHVyZShvc3Muc3RyKCkpOwor
ICB9CisKKyAgLy8gU3BlY2lhbGl6ZWQgdmVyc2lvbnMuCisgIFRlc3RSZXN1bHQmIG9wZXJhdG9y
PDwoYm9vbCB2YWx1ZSk7CisgIC8vIHN0ZDpvc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgNjRiaXRz
IGludGVnZXJzIG9uIGFsbCBTVEwgaW1wbGVtZW50YXRpb24KKyAgVGVzdFJlc3VsdCYgb3BlcmF0
b3I8PChKc29uOjpJbnQ2NCB2YWx1ZSk7CisgIFRlc3RSZXN1bHQmIG9wZXJhdG9yPDwoSnNvbjo6
VUludDY0IHZhbHVlKTsKKworcHJpdmF0ZToKKyAgVGVzdFJlc3VsdCYgYWRkVG9MYXN0RmFpbHVy
ZShjb25zdCBKc29uOjpTdHJpbmcmIG1lc3NhZ2UpOworICAvLy8gQWRkcyBhIGZhaWx1cmUgb3Ig
YSBwcmVkaWNhdGUgY29udGV4dAorICB2b2lkIGFkZEZhaWx1cmVJbmZvKGNvbnN0IGNoYXIqIGZp
bGUsCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxpbmUsCisgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogZXhwciwKKyAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgbmVzdGluZ0xldmVsKTsKKyAgc3RhdGljIEpzb246OlN0cmluZyBpbmRlbnRUZXh0
KGNvbnN0IEpzb246OlN0cmluZyYgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEpzb246OlN0cmluZyYgaW5kZW50KTsKKworICB0eXBlZGVmIHN0ZDo6ZGVxdWU8
RmFpbHVyZT4gRmFpbHVyZXM7CisgIEZhaWx1cmVzIGZhaWx1cmVzXzsKKyAgSnNvbjo6U3RyaW5n
IG5hbWVfOworICBQcmVkaWNhdGVDb250ZXh0IHJvb3RQcmVkaWNhdGVOb2RlXzsKKyAgUHJlZGlj
YXRlQ29udGV4dDo6SWQgbGFzdFVzZWRQcmVkaWNhdGVJZF97MH07CisgIC8vLyBGYWlsdXJlIHdo
aWNoIGlzIHRoZSB0YXJnZXQgb2YgdGhlIG1lc3NhZ2VzIGFkZGVkIHVzaW5nIG9wZXJhdG9yIDw8
CisgIEZhaWx1cmUqIG1lc3NhZ2VUYXJnZXRfe251bGxwdHJ9OworfTsKKworY2xhc3MgVGVzdENh
c2UgeworcHVibGljOgorICBUZXN0Q2FzZSgpOworCisgIHZpcnR1YWwgflRlc3RDYXNlKCk7CisK
KyAgdm9pZCBydW4oVGVzdFJlc3VsdCYgcmVzdWx0KTsKKworICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IHRlc3ROYW1lKCkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6CisgIFRlc3RSZXN1bHQqIHJlc3Vs
dF97bnVsbHB0cn07CisKK3ByaXZhdGU6CisgIHZpcnR1YWwgdm9pZCBydW5UZXN0Q2FzZSgpID0g
MDsKK307CisKKy8vLyBGdW5jdGlvbiBwb2ludGVyIHR5cGUgZm9yIFRlc3RDYXNlIGZhY3RvcnkK
K3R5cGVkZWYgVGVzdENhc2UqICgqVGVzdENhc2VGYWN0b3J5KSgpOworCitjbGFzcyBSdW5uZXIg
eworcHVibGljOgorICBSdW5uZXIoKTsKKworICAvLy8gQWRkcyBhIHRlc3QgdG8gdGhlIHN1aXRl
CisgIFJ1bm5lciYgYWRkKFRlc3RDYXNlRmFjdG9yeSBmYWN0b3J5KTsKKworICAvLy8gUnVucyB0
ZXN0IGFzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZC1saW5lCisgIC8vLyBJZiBubyBjb21tYW5k
LWxpbmUgYXJndW1lbnRzIGFyZSBwcm92aWRlZCwgcnVuIGFsbCB0ZXN0cy4KKyAgLy8vIElmIC0t
bGlzdC10ZXN0cyBpcyBwcm92aWRlZCwgdGhlbiBwcmludCB0aGUgbGlzdCBvZiBhbGwgdGVzdCBj
YXNlcworICAvLy8gSWYgLS10ZXN0IDx0ZXN0bmFtZT4gaXMgcHJvdmlkZWQsIHRoZW4gcnVuIHRl
c3QgdGVzdG5hbWUuCisgIGludCBydW5Db21tYW5kTGluZShpbnQgYXJnYywgY29uc3QgY2hhciog
YXJndltdKSBjb25zdDsKKworICAvLy8gUnVucyBhbGwgdGhlIHRlc3QgY2FzZXMKKyAgYm9vbCBy
dW5BbGxUZXN0KGJvb2wgcHJpbnRTdW1tYXJ5KSBjb25zdDsKKworICAvLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIHRlc3QgY2FzZSBpbiB0aGUgc3VpdGUKKyAgc2l6ZV90IHRlc3RDb3VudCgpIGNv
bnN0OworCisgIC8vLyBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UgYXQgdGhlIHNw
ZWNpZmllZCBpbmRleAorICBKc29uOjpTdHJpbmcgdGVzdE5hbWVBdChzaXplX3QgaW5kZXgpIGNv
bnN0OworCisgIC8vLyBSdW5zIHRoZSB0ZXN0IGNhc2UgYXQgdGhlIHNwZWNpZmllZCBpbmRleCB1
c2luZyB0aGUgc3BlY2lmaWVkIFRlc3RSZXN1bHQKKyAgdm9pZCBydW5UZXN0QXQoc2l6ZV90IGlu
ZGV4LCBUZXN0UmVzdWx0JiByZXN1bHQpIGNvbnN0OworCisgIHN0YXRpYyB2b2lkIHByaW50VXNh
Z2UoY29uc3QgY2hhciogYXBwTmFtZSk7CisKK3ByaXZhdGU6IC8vIHByZXZlbnRzIGNvcHkgY29u
c3RydWN0aW9uIGFuZCBhc3NpZ25tZW50CisgIFJ1bm5lcihjb25zdCBSdW5uZXImIG90aGVyKSA9
IGRlbGV0ZTsKKyAgUnVubmVyJiBvcGVyYXRvcj0oY29uc3QgUnVubmVyJiBvdGhlcikgPSBkZWxl
dGU7CisKK3ByaXZhdGU6CisgIHZvaWQgbGlzdFRlc3RzKCkgY29uc3Q7CisgIGJvb2wgdGVzdElu
ZGV4KGNvbnN0IEpzb246OlN0cmluZyYgdGVzdE5hbWUsIHNpemVfdCYgaW5kZXhPdXQpIGNvbnN0
OworICBzdGF0aWMgdm9pZCBwcmV2ZW50RGlhbG9nT25DcmFzaCgpOworCitwcml2YXRlOgorICB0
eXBlZGVmIHN0ZDo6ZGVxdWU8VGVzdENhc2VGYWN0b3J5PiBGYWN0b3JpZXM7CisgIEZhY3Rvcmll
cyB0ZXN0c187Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK1Rlc3RS
ZXN1bHQmIGNoZWNrRXF1YWwoVGVzdFJlc3VsdCYgcmVzdWx0LAorICAgICAgICAgICAgICAgICAg
ICAgICBUIGV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICBVIGFjdHVhbCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IGV4cHIpIHsKKyAgaWYgKHN0YXRpY19jYXN0PFU+KGV4cGVjdGVkKSAhPSBhY3R1YWwpIHsKKyAg
ICByZXN1bHQuYWRkRmFpbHVyZShmaWxlLCBsaW5lLCBleHByKTsKKyAgICByZXN1bHQgPDwgIkV4
cGVjdGVkOiAiIDw8IHN0YXRpY19jYXN0PFU+KGV4cGVjdGVkKSA8PCAiXG4iOworICAgIHJlc3Vs
dCA8PCAiQWN0dWFsICA6ICIgPDwgYWN0dWFsOworICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisK
K0pzb246OlN0cmluZyBUb0pzb25TdHJpbmcoY29uc3QgY2hhciogdG9Db252ZXJ0KTsKK0pzb246
OlN0cmluZyBUb0pzb25TdHJpbmcoSnNvbjo6U3RyaW5nIGluKTsKKyNpZiBKU09OQ1BQX1VTSU5H
X1NFQ1VSRV9NRU1PUlkKK0pzb246OlN0cmluZyBUb0pzb25TdHJpbmcoc3RkOjpzdHJpbmcgaW4p
OworI2VuZGlmCisKK1Rlc3RSZXN1bHQmIGNoZWNrU3RyaW5nRXF1YWwoVGVzdFJlc3VsdCYgcmVz
dWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBKc29uOjpTdHJpbmcmIGV4
cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBKc29uOjpTdHJpbmcm
IGFjdHVhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxpbmUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4cHIpOwogCiB9IC8vIG5hbWVzcGFj
ZSBKc29uVGVzdAogCi0KIC8vLyBcYnJpZWYgQXNzZXJ0cyB0aGF0IHRoZSBnaXZlbiBleHByZXNz
aW9uIGlzIHRydWUuCiAvLy8gSlNPTlRFU1RfQVNTRVJUKCB4ID09IHkgKSA8PCAieD0iIDw8IHgg
PDwgIiwgeT0iIDw8IHk7CiAvLy8gSlNPTlRFU1RfQVNTRVJUKCB4ID09IHkgKTsKLSNkZWZpbmUg
SlNPTlRFU1RfQVNTRVJUKCBleHByICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgIGlmICggZXhwciApICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIGVsc2UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgIHJlc3VsdF8tPmFkZEZhaWx1cmUoIF9fRklMRV9fLCBfX0xJTkVfXywgI2V4cHIgKQorI2Rl
ZmluZSBKU09OVEVTVF9BU1NFUlQoZXhwcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKGV4cHIpIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0gZWxzZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIHJlc3VsdF8tPmFkZEZhaWx1cmUoX19GSUxFX18sIF9fTElORV9f
LCAjZXhwcikKIAogLy8vIFxicmllZiBBc3NlcnRzIHRoYXQgdGhlIGdpdmVuIHByZWRpY2F0ZSBp
cyB0cnVlLgotLy8vIFRoZSBwcmVkaWNhdGUgbWF5IGRvIG90aGVyIGFzc2VydGlvbnMgYW5kIGJl
IGEgbWVtYmVyIGZ1bmN0aW9uIG9mIHRoZSBmaXh0dXJlLgotI2RlZmluZSBKU09OVEVTVF9BU1NF
UlRfUFJFRCggZXhwciApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgSnNvblRlc3Q6OlByZWRpY2F0ZUNvbnRleHQgX21pbml0ZXN0
X0NvbnRleHQgPSB7ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgcmVzdWx0Xy0+cHJlZGlj
YXRlSWRfLCBfX0ZJTEVfXywgX19MSU5FX18sICNleHByIH07ICAgICAgICAgICAgXAotICAgICAg
cmVzdWx0Xy0+cHJlZGljYXRlU3RhY2tUYWlsXy0+bmV4dF8gPSAmX21pbml0ZXN0X0NvbnRleHQ7
ICAgICAgICAgXAotICAgICAgcmVzdWx0Xy0+cHJlZGljYXRlSWRfICs9IDE7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgcmVzdWx0Xy0+cHJlZGljYXRlU3Rh
Y2tUYWlsXyA9ICZfbWluaXRlc3RfQ29udGV4dDsgICAgICAgICAgICAgICAgXAotICAgICAgKGV4
cHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgcmVzdWx0Xy0+cG9wUHJlZGljYXRlQ29udGV4dCgpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgKnJlc3VsdF8K
Ky8vLyBUaGUgcHJlZGljYXRlIG1heSBkbyBvdGhlciBhc3NlcnRpb25zIGFuZCBiZSBhIG1lbWJl
ciBmdW5jdGlvbiBvZiB0aGUKKy8vLyBmaXh0dXJlLgorI2RlZmluZSBKU09OVEVTVF9BU1NFUlRf
UFJFRChleHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgSnNvblRlc3Q6OlByZWRpY2F0ZUNvbnRleHQg
X21pbml0ZXN0X0NvbnRleHQgPSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICByZXN1bHRfLT5wcmVkaWNhdGVJZF8sIF9fRklMRV9fLCBfX0xJTkVfXywgI2V4cHIsIE5VTEws
IE5VTEx9OyAgICAgICAgIFwKKyAgICByZXN1bHRfLT5wcmVkaWNhdGVTdGFja1RhaWxfLT5uZXh0
XyA9ICZfbWluaXRlc3RfQ29udGV4dDsgICAgICAgICAgICAgICAgICBcCisgICAgcmVzdWx0Xy0+
cHJlZGljYXRlSWRfICs9IDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIHJlc3VsdF8tPnByZWRpY2F0ZVN0YWNrVGFpbF8gPSAmX21pbml0ZXN0
X0NvbnRleHQ7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoZXhwcik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgcmVzdWx0Xy0+cG9wUHJlZGljYXRlQ29udGV4dCgpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CiAKIC8vLyBcYnJpZWYgQXNzZXJ0cyB0
aGF0IHR3byB2YWx1ZXMgYXJlIGVxdWFscy4KLSNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KCBleHBlY3RlZCwgYWN0dWFsICkgICAgICAgICAgXAotICAgSnNvblRlc3Q6OmNoZWNrRXF1YWwo
ICpyZXN1bHRfLCBleHBlY3RlZCwgYWN0dWFsLCAgICAgICBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgX19GSUxFX18sIF9fTElORV9fLCAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAjZXhwZWN0ZWQgIiA9PSAiICNhY3R1YWwgKQorI2RlZmluZSBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgSnNvblRlc3Q6OmNoZWNrRXF1YWwoKnJlc3VsdF8sIGV4cGVjdGVkLCBhY3R1YWws
IF9fRklMRV9fLCBfX0xJTkVfXywgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICNl
eHBlY3RlZCAiID09ICIgI2FjdHVhbCkKIAogLy8vIFxicmllZiBBc3NlcnRzIHRoYXQgdHdvIHZh
bHVlcyBhcmUgZXF1YWxzLgotI2RlZmluZSBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCBl
eHBlY3RlZCwgYWN0dWFsICkgXAotICAgSnNvblRlc3Q6OmNoZWNrU3RyaW5nRXF1YWwoICpyZXN1
bHRfLCAgICAgICAgICAgICAgICAgXAotICAgICAgc3RkOjpzdHJpbmcoZXhwZWN0ZWQpLCBzdGQ6
OnN0cmluZyhhY3R1YWwpLCAgICAgICAgXAotICAgICAgX19GSUxFX18sIF9fTElORV9fLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgI2V4cGVjdGVkICIgPT0gIiAjYWN0
dWFsICkKKyNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgYWN0
dWFsKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEpzb25UZXN0OjpjaGVja1N0cmluZ0Vx
dWFsKCpyZXN1bHRfLCBKc29uVGVzdDo6VG9Kc29uU3RyaW5nKGV4cGVjdGVkKSwgICAgICAgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKc29uVGVzdDo6VG9Kc29uU3RyaW5nKGFjdHVh
bCksIF9fRklMRV9fLCAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19M
SU5FX18sICNleHBlY3RlZCAiID09ICIgI2FjdHVhbCkKKworLy8vIFxicmllZiBBc3NlcnRzIHRo
YXQgYSBnaXZlbiBleHByZXNzaW9uIHRocm93cyBhbiBleGNlcHRpb24KKyNkZWZpbmUgSlNPTlRF
U1RfQVNTRVJUX1RIUk9XUyhleHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGJvb2wgX3RocmV3ID0gZmFs
c2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICB0cnkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBleHByOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IH0gY2F0Y2ggKC4uLikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIF90aHJldyA9IHRydWU7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIGlmICghX3RocmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHJlc3VsdF8tPmFk
ZEZhaWx1cmUoX19GSUxFX18sIF9fTElORV9fLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBleGNlcHRpb24gdGhy
b3duOiAiICNleHByKTsgICAgICAgICAgICAgICAgXAorICB9CiAKIC8vLyBcYnJpZWYgQmVnaW4g
YSBmaXh0dXJlIHRlc3QgY2FzZS4KLSNkZWZpbmUgSlNPTlRFU1RfRklYVFVSRSggRml4dHVyZVR5
cGUsIG5hbWUgKSAgICAgICAgICAgICAgICAgIFwKLSAgIGNsYXNzIFRlc3QjI0ZpeHR1cmVUeXBl
IyNuYW1lIDogcHVibGljIEZpeHR1cmVUeXBlICAgICAgICAgIFwKLSAgIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIHB1Ymxp
YzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgIHN0YXRpYyBKc29uVGVzdDo6VGVzdENhc2UgKmZhY3RvcnkoKSAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgIHJldHVybiBuZXcgVGVzdCMjRml4dHVyZVR5cGUj
I25hbWUoKTsgICAgICAgICAgICAgICAgIFwKLSAgICAgIH0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIHB1YmxpYzogLyogb3Zlcmlk
ZGVuIGZyb20gVGVzdENhc2UgKi8gICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHZpcnR1
YWwgY29uc3QgY2hhciAqdGVzdE5hbWUoKSBjb25zdCAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgIHJldHVybiAjRml4dHVyZVR5cGUgIi8iICNuYW1lOyAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHZpcnR1YWwgdm9pZCBydW5UZXN0Q2FzZSgp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIH07ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIHZv
aWQgVGVzdCMjRml4dHVyZVR5cGUjI25hbWU6OnJ1blRlc3RDYXNlKCkKLQotI2RlZmluZSBKU09O
VEVTVF9GSVhUVVJFX0ZBQ1RPUlkoIEZpeHR1cmVUeXBlLCBuYW1lICkgXAotICAgJlRlc3QjI0Zp
eHR1cmVUeXBlIyNuYW1lOjpmYWN0b3J5Ci0KLSNkZWZpbmUgSlNPTlRFU1RfUkVHSVNURVJfRklY
VFVSRSggcnVubmVyLCBGaXh0dXJlVHlwZSwgbmFtZSApIFwKLSAgIChydW5uZXIpLmFkZCggSlNP
TlRFU1RfRklYVFVSRV9GQUNUT1JZKCBGaXh0dXJlVHlwZSwgbmFtZSApICkKKyNkZWZpbmUgSlNP
TlRFU1RfRklYVFVSRShGaXh0dXJlVHlwZSwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgIGNsYXNzIFRlc3QjI0ZpeHR1cmVUeXBlIyNuYW1lIDogcHVibGljIEZp
eHR1cmVUeXBlIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBwdWJsaWM6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBzdGF0aWMgSnNvblRlc3Q6OlRlc3RDYXNlKiBmYWN0b3J5KCkgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICByZXR1cm4gbmV3IFRlc3QjI0Zp
eHR1cmVUeXBlIyNuYW1lKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHB1Ymxp
YzogLyogb3ZlcnJpZGRlbiBmcm9tIFRlc3RDYXNlICovICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIGNvbnN0IGNoYXIqIHRlc3ROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gI0ZpeHR1cmVUeXBlICIvIiAjbmFtZTsgfSAgIFwKKyAgICB2b2lkIHJ1blRl
c3RDYXNlKCkgb3ZlcnJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgdm9pZCBUZXN0IyNGaXh0dXJlVHlwZSMjbmFtZTo6cnVuVGVzdENhc2UoKQorCisjZGVm
aW5lIEpTT05URVNUX0ZJWFRVUkVfRkFDVE9SWShGaXh0dXJlVHlwZSwgbmFtZSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAmVGVzdCMjRml4dHVyZVR5cGUjI25hbWU6OmZhY3RvcnkK
KworI2RlZmluZSBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgRml4dHVyZVR5cGUs
IG5hbWUpICAgICAgICAgICAgICAgICAgIFwKKyAgKHJ1bm5lcikuYWRkKEpTT05URVNUX0ZJWFRV
UkVfRkFDVE9SWShGaXh0dXJlVHlwZSwgbmFtZSkpCiAKICNlbmRpZiAvLyBpZm5kZWYgSlNPTlRF
U1RfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9tYWluLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vbWFpbi5jcHAKaW5kZXggYzZhYjYxOTg4MmRlY2Ji
NGQzMGMxNGI2NzhkYWE4OTFhZWQzMmIzMy4uZmNkYTYwZTgxYzQ2ODg1ZTA3ZmY0ODc3NTEzNWNl
YTQyNmIyMDlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9tYWluLmNwcAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL21haW4uY3BwCkBAIC0xLDExICsxLDI2IEBACi0v
LyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIw
MDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERp
c3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQg
YW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElD
RU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0
L0xJQ0VOU0UKIAorI2lmIGRlZmluZWQoX19HTlVDX18pCisjcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJs
ZSA6IDQ5OTYpCisjZW5kaWYKKworI2luY2x1ZGUgImZ1enouaCIKKyNpbmNsdWRlICJqc29udGVz
dC5oIgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8aW9t
YW5pcD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxqc29uL2NvbmZpZy5oPgogI2lu
Y2x1ZGUgPGpzb24vanNvbi5oPgotI2luY2x1ZGUgImpzb250ZXN0LmgiCisjaW5jbHVkZSA8bGlt
aXRzPgorI2luY2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVkZSA8c3RyaW5nPgogCiAvLyBNYWtlIG51
bWVyaWMgbGltaXRzIG1vcmUgY29udmVuaWVudCB0byB0YWxrIGFib3V0LgogLy8gQXNzdW1lcyBp
bnQgdHlwZSBpbiAzMiBiaXRzLgpAQCAtMTYsMTIgKzMxLDExIEBACiAjZGVmaW5lIGtpbnQ2NG1p
biBKc29uOjpWYWx1ZTo6bWluSW50NjQKICNkZWZpbmUga3VpbnQ2NG1heCBKc29uOjpWYWx1ZTo6
bWF4VUludDY0CiAKLXN0YXRpYyBjb25zdCBkb3VibGUga2RpbnQ2NG1heCA9IGRvdWJsZShraW50
NjRtYXgpOwotc3RhdGljIGNvbnN0IGZsb2F0IGtmaW50NjRtYXggPSBmbG9hdChraW50NjRtYXgp
OworLy8gc3RhdGljIGNvbnN0IGRvdWJsZSBrZGludDY0bWF4ID0gZG91YmxlKGtpbnQ2NG1heCk7
CisvLyBzdGF0aWMgY29uc3QgZmxvYXQga2ZpbnQ2NG1heCA9IGZsb2F0KGtpbnQ2NG1heCk7CiBz
dGF0aWMgY29uc3QgZmxvYXQga2ZpbnQzMm1heCA9IGZsb2F0KGtpbnQzMm1heCk7CiBzdGF0aWMg
Y29uc3QgZmxvYXQga2Z1aW50MzJtYXggPSBmbG9hdChrdWludDMybWF4KTsKIAotCiAvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogLy8gSnNvbiBMaWJyYXJ5IHRlc3QgY2FzZXMKQEAgLTI5LDEz
OTYgKzQzLDI2MTUgQEAgc3RhdGljIGNvbnN0IGZsb2F0IGtmdWludDMybWF4ID0gZmxvYXQoa3Vp
bnQzMm1heCk7CiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RP
VUJMRV9DT05WRVJTSU9OKQotc3RhdGljIGlubGluZSBkb3VibGUgdWludDY0VG9Eb3VibGUoIEpz
b246OlVJbnQ2NCB2YWx1ZSApCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oIHZh
bHVlICk7CitzdGF0aWMgaW5saW5lIGRvdWJsZSB1aW50NjRUb0RvdWJsZShKc29uOjpVSW50NjQg
dmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpOwogfQotI2Vsc2Ug
Ly8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi1zdGF0aWMg
aW5saW5lIGRvdWJsZSB1aW50NjRUb0RvdWJsZSggSnNvbjo6VUludDY0IHZhbHVlICkKLXsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPiggSnNvbjo6SW50NjQodmFsdWUvMikgKSAqIDIu
MCArIEpzb246OkludDY0KHZhbHVlICYgMSk7CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9V
U0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCitzdGF0aWMgaW5saW5lIGRvdWJsZSB1aW50NjRU
b0RvdWJsZShKc29uOjpVSW50NjQgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJs
ZT4oSnNvbjo6SW50NjQodmFsdWUgLyAyKSkgKiAyLjAgKworICAgICAgICAgc3RhdGljX2Nhc3Q8
ZG91YmxlPihKc29uOjpJbnQ2NCh2YWx1ZSAmIDEpKTsKIH0KICNlbmRpZiAvLyBpZiAhZGVmaW5l
ZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKIAotc3RydWN0IFZhbHVlVGVzdCA6
IEpzb25UZXN0OjpUZXN0Q2FzZQotewotICAgSnNvbjo6VmFsdWUgbnVsbF87Ci0gICBKc29uOjpW
YWx1ZSBlbXB0eUFycmF5XzsKLSAgIEpzb246OlZhbHVlIGVtcHR5T2JqZWN0XzsKLSAgIEpzb246
OlZhbHVlIGludGVnZXJfOwotICAgSnNvbjo6VmFsdWUgdW5zaWduZWRJbnRlZ2VyXzsKLSAgIEpz
b246OlZhbHVlIHNtYWxsVW5zaWduZWRJbnRlZ2VyXzsKLSAgIEpzb246OlZhbHVlIHJlYWxfOwot
ICAgSnNvbjo6VmFsdWUgZmxvYXRfOwotICAgSnNvbjo6VmFsdWUgYXJyYXkxXzsKLSAgIEpzb246
OlZhbHVlIG9iamVjdDFfOwotICAgSnNvbjo6VmFsdWUgZW1wdHlTdHJpbmdfOwotICAgSnNvbjo6
VmFsdWUgc3RyaW5nMV87Ci0gICBKc29uOjpWYWx1ZSBzdHJpbmdfOwotICAgSnNvbjo6VmFsdWUg
dHJ1ZV87Ci0gICBKc29uOjpWYWx1ZSBmYWxzZV87Ci0KLQotICAgVmFsdWVUZXN0KCkKLSAgICAg
IDogZW1wdHlBcnJheV8oIEpzb246OmFycmF5VmFsdWUgKQotICAgICAgLCBlbXB0eU9iamVjdF8o
IEpzb246Om9iamVjdFZhbHVlICkKLSAgICAgICwgaW50ZWdlcl8oIDEyMzQ1Njc4OSApCi0gICAg
ICAsIHNtYWxsVW5zaWduZWRJbnRlZ2VyXyggSnNvbjo6VmFsdWU6OlVJbnQoIEpzb246OlZhbHVl
OjptYXhJbnQgKSApCi0gICAgICAsIHVuc2lnbmVkSW50ZWdlcl8oIDM0NTY3ODkwdSApCi0gICAg
ICAsIHJlYWxfKCAxMjM0LjU2Nzg5ICkKLSAgICAgICwgZmxvYXRfKCAwLjAwMzkwNjI1ZiApCi0g
ICAgICAsIGVtcHR5U3RyaW5nXyggIiIgKQotICAgICAgLCBzdHJpbmcxXyggImEiICkKLSAgICAg
ICwgc3RyaW5nXyggInNvbWV0ZXh0IHdpdGggc3BhY2UiICkKLSAgICAgICwgdHJ1ZV8oIHRydWUg
KQotICAgICAgLCBmYWxzZV8oIGZhbHNlICkKLSAgIHsKLSAgICAgIGFycmF5MV8uYXBwZW5kKCAx
MjM0ICk7Ci0gICAgICBvYmplY3QxX1siaWQiXSA9IDEyMzQ7Ci0gICB9Ci0KLSAgIHN0cnVjdCBJ
c0NoZWNrCi0gICB7Ci0gICAgICAvLy8gSW5pdGlhbGl6ZSBhbGwgY2hlY2tzIHRvIFxjIGZhbHNl
IGJ5IGRlZmF1bHQuCi0gICAgICBJc0NoZWNrKCk7Ci0KLSAgICAgIGJvb2wgaXNPYmplY3RfOwot
ICAgICAgYm9vbCBpc0FycmF5XzsKLSAgICAgIGJvb2wgaXNCb29sXzsKLSAgICAgIGJvb2wgaXNT
dHJpbmdfOwotICAgICAgYm9vbCBpc051bGxfOwotCi0gICAgICBib29sIGlzSW50XzsKLSAgICAg
IGJvb2wgaXNJbnQ2NF87Ci0gICAgICBib29sIGlzVUludF87Ci0gICAgICBib29sIGlzVUludDY0
XzsKLSAgICAgIGJvb2wgaXNJbnRlZ3JhbF87Ci0gICAgICBib29sIGlzRG91YmxlXzsKLSAgICAg
IGJvb2wgaXNOdW1lcmljXzsKLSAgIH07Ci0KLSAgIHZvaWQgY2hlY2tDb25zdE1lbWJlckNvdW50
KCBjb25zdCBKc29uOjpWYWx1ZSAmdmFsdWUsIHVuc2lnbmVkIGludCBleHBlY3RlZENvdW50ICk7
Ci0KLSAgIHZvaWQgY2hlY2tNZW1iZXJDb3VudCggSnNvbjo6VmFsdWUgJnZhbHVlLCB1bnNpZ25l
ZCBpbnQgZXhwZWN0ZWRDb3VudCApOwotCi0gICB2b2lkIGNoZWNrSXMoIGNvbnN0IEpzb246OlZh
bHVlICZ2YWx1ZSwgY29uc3QgSXNDaGVjayAmY2hlY2sgKTsKLQotICAgdm9pZCBjaGVja0lzTGVz
cyggY29uc3QgSnNvbjo6VmFsdWUgJngsIGNvbnN0IEpzb246OlZhbHVlICZ5ICk7Ci0KLSAgIHZv
aWQgY2hlY2tJc0VxdWFsKCBjb25zdCBKc29uOjpWYWx1ZSAmeCwgY29uc3QgSnNvbjo6VmFsdWUg
JnkgKTsKLQotICAgLy8vIE5vcm1hbGl6ZSB0aGUgcmVwcmVzZW50YXRpb24gb2YgZmxvYXRpbmct
cG9pbnQgbnVtYmVyIGJ5IHN0cmlwcGVkIGxlYWRpbmcgMCBpbiBleHBvbmVudC4KLSAgIHN0YXRp
YyBzdGQ6OnN0cmluZyBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmcyApOworc3RydWN0IFZhbHVlVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7CisgIEpzb246
OlZhbHVlIG51bGxfOworICBKc29uOjpWYWx1ZSBlbXB0eUFycmF5XzsKKyAgSnNvbjo6VmFsdWUg
ZW1wdHlPYmplY3RfOworICBKc29uOjpWYWx1ZSBpbnRlZ2VyXzsKKyAgSnNvbjo6VmFsdWUgdW5z
aWduZWRJbnRlZ2VyXzsKKyAgSnNvbjo6VmFsdWUgc21hbGxVbnNpZ25lZEludGVnZXJfOworICBK
c29uOjpWYWx1ZSByZWFsXzsKKyAgSnNvbjo6VmFsdWUgZmxvYXRfOworICBKc29uOjpWYWx1ZSBh
cnJheTFfOworICBKc29uOjpWYWx1ZSBvYmplY3QxXzsKKyAgSnNvbjo6VmFsdWUgZW1wdHlTdHJp
bmdfOworICBKc29uOjpWYWx1ZSBzdHJpbmcxXzsKKyAgSnNvbjo6VmFsdWUgc3RyaW5nXzsKKyAg
SnNvbjo6VmFsdWUgdHJ1ZV87CisgIEpzb246OlZhbHVlIGZhbHNlXzsKKworICBWYWx1ZVRlc3Qo
KQorICAgICAgOiBlbXB0eUFycmF5XyhKc29uOjphcnJheVZhbHVlKSwgZW1wdHlPYmplY3RfKEpz
b246Om9iamVjdFZhbHVlKSwKKyAgICAgICAgaW50ZWdlcl8oMTIzNDU2Nzg5KSwgdW5zaWduZWRJ
bnRlZ2VyXygzNDU2Nzg5MHUpLAorICAgICAgICBzbWFsbFVuc2lnbmVkSW50ZWdlcl8oSnNvbjo6
VmFsdWU6OlVJbnQoSnNvbjo6VmFsdWU6Om1heEludCkpLAorICAgICAgICByZWFsXygxMjM0LjU2
Nzg5KSwgZmxvYXRfKDAuMDAzOTA2MjVmKSwgZW1wdHlTdHJpbmdfKCIiKSwgc3RyaW5nMV8oImEi
KSwKKyAgICAgICAgc3RyaW5nXygic29tZXRleHQgd2l0aCBzcGFjZSIpLCB0cnVlXyh0cnVlKSwg
ZmFsc2VfKGZhbHNlKSB7CisgICAgYXJyYXkxXy5hcHBlbmQoMTIzNCk7CisgICAgb2JqZWN0MV9b
ImlkIl0gPSAxMjM0OworICB9CisKKyAgc3RydWN0IElzQ2hlY2sgeworICAgIC8vLyBJbml0aWFs
aXplIGFsbCBjaGVja3MgdG8gXGMgZmFsc2UgYnkgZGVmYXVsdC4KKyAgICBJc0NoZWNrKCk7CisK
KyAgICBib29sIGlzT2JqZWN0X3tmYWxzZX07CisgICAgYm9vbCBpc0FycmF5X3tmYWxzZX07Cisg
ICAgYm9vbCBpc0Jvb2xfe2ZhbHNlfTsKKyAgICBib29sIGlzU3RyaW5nX3tmYWxzZX07CisgICAg
Ym9vbCBpc051bGxfe2ZhbHNlfTsKKworICAgIGJvb2wgaXNJbnRfe2ZhbHNlfTsKKyAgICBib29s
IGlzSW50NjRfe2ZhbHNlfTsKKyAgICBib29sIGlzVUludF97ZmFsc2V9OworICAgIGJvb2wgaXNV
SW50NjRfe2ZhbHNlfTsKKyAgICBib29sIGlzSW50ZWdyYWxfe2ZhbHNlfTsKKyAgICBib29sIGlz
RG91YmxlX3tmYWxzZX07CisgICAgYm9vbCBpc051bWVyaWNfe2ZhbHNlfTsKKyAgfTsKKworICB2
b2lkIGNoZWNrQ29uc3RNZW1iZXJDb3VudChjb25zdCBKc29uOjpWYWx1ZSYgdmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBleHBlY3RlZENvdW50KTsKKwor
ICB2b2lkIGNoZWNrTWVtYmVyQ291bnQoSnNvbjo6VmFsdWUmIHZhbHVlLCB1bnNpZ25lZCBpbnQg
ZXhwZWN0ZWRDb3VudCk7CisKKyAgdm9pZCBjaGVja0lzKGNvbnN0IEpzb246OlZhbHVlJiB2YWx1
ZSwgY29uc3QgSXNDaGVjayYgY2hlY2spOworCisgIHZvaWQgY2hlY2tJc0xlc3MoY29uc3QgSnNv
bjo6VmFsdWUmIHgsIGNvbnN0IEpzb246OlZhbHVlJiB5KTsKKworICB2b2lkIGNoZWNrSXNFcXVh
bChjb25zdCBKc29uOjpWYWx1ZSYgeCwgY29uc3QgSnNvbjo6VmFsdWUmIHkpOworCisgIC8vLyBO
b3JtYWxpemUgdGhlIHJlcHJlc2VudGF0aW9uIG9mIGZsb2F0aW5nLXBvaW50IG51bWJlciBieSBz
dHJpcHBlZCBsZWFkaW5nCisgIC8vLyAwIGluIGV4cG9uZW50LgorICBzdGF0aWMgSnNvbjo6U3Ry
aW5nIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoY29uc3QgSnNvbjo6U3RyaW5nJiBzKTsKIH07
CiAKLQotc3RkOjpzdHJpbmcgCi1WYWx1ZVRlc3Q6Om5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIo
IGNvbnN0IHN0ZDo6c3RyaW5nICZzICkKLXsKLSAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGlu
ZGV4ID0gcy5maW5kX2xhc3Rfb2YoICJlRSIgKTsKLSAgICBpZiAoIGluZGV4ICE9IHN0ZDo6c3Ry
aW5nOjpucG9zICkKK0pzb246OlN0cmluZyBWYWx1ZVRlc3Q6Om5vcm1hbGl6ZUZsb2F0aW5nUG9p
bnRTdHIoY29uc3QgSnNvbjo6U3RyaW5nJiBzKSB7CisgIEpzb246OlN0cmluZzo6c2l6ZV90eXBl
IGluZGV4ID0gcy5maW5kX2xhc3Rfb2YoImVFIik7CisgIGlmIChpbmRleCAhPSBKc29uOjpTdHJp
bmc6Om5wb3MpIHsKKyAgICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBoYXNTaWduID0KKyAgICAg
ICAgKHNbaW5kZXggKyAxXSA9PSAnKycgfHwgc1tpbmRleCArIDFdID09ICctJykgPyAxIDogMDsK
KyAgICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBleHBvbmVudFN0YXJ0SW5kZXggPSBpbmRleCAr
IDEgKyBoYXNTaWduOworICAgIEpzb246OlN0cmluZyBub3JtYWxpemVkID0gcy5zdWJzdHIoMCwg
ZXhwb25lbnRTdGFydEluZGV4KTsKKyAgICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBpbmRleERp
Z2l0ID0KKyAgICAgICAgcy5maW5kX2ZpcnN0X25vdF9vZignMCcsIGV4cG9uZW50U3RhcnRJbmRl
eCk7CisgICAgSnNvbjo6U3RyaW5nIGV4cG9uZW50ID0gIjAiOworICAgIGlmIChpbmRleERpZ2l0
ICE9IEpzb246OlN0cmluZzo6bnBvcykgLy8gVGhlcmUgaXMgYW4gZXhwb25lbnQgZGlmZmVyZW50
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIDAKICAg
ICB7Ci0gICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaGFzU2lnbiA9IChzW2luZGV4KzFd
ID09ICcrJyB8fCBzW2luZGV4KzFdID09ICctJykgPyAxIDogMDsKLSAgICAgICAgc3RkOjpzdHJp
bmc6OnNpemVfdHlwZSBleHBvbmVudFN0YXJ0SW5kZXggPSBpbmRleCArIDEgKyBoYXNTaWduOwot
ICAgICAgICBzdGQ6OnN0cmluZyBub3JtYWxpemVkID0gcy5zdWJzdHIoIDAsIGV4cG9uZW50U3Rh
cnRJbmRleCApOwotICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGluZGV4RGlnaXQgPSBz
LmZpbmRfZmlyc3Rfbm90X29mKCAnMCcsIGV4cG9uZW50U3RhcnRJbmRleCApOwotICAgICAgICBz
dGQ6OnN0cmluZyBleHBvbmVudCA9ICIwIjsKLSAgICAgICAgaWYgKCBpbmRleERpZ2l0ICE9IHN0
ZDo6c3RyaW5nOjpucG9zICkgLy8gVGhlcmUgaXMgYW4gZXhwb25lbnQgZGlmZmVyZW50IGZyb20g
MAotICAgICAgICB7Ci0gICAgICAgICAgICBleHBvbmVudCA9IHMuc3Vic3RyKCBpbmRleERpZ2l0
ICk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQgKyBleHBvbmVudDsKKyAg
ICAgIGV4cG9uZW50ID0gcy5zdWJzdHIoaW5kZXhEaWdpdCk7CiAgICAgfQotICAgIHJldHVybiBz
OworICAgIHJldHVybiBub3JtYWxpemVkICsgZXhwb25lbnQ7CisgIH0KKyAgcmV0dXJuIHM7CiB9
CiAKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjaGVja05vcm1hbGl6ZUZsb2F0aW5nUG9p
bnRTdHIpIHsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMC4wIiwgbm9ybWFsaXpl
RmxvYXRpbmdQb2ludFN0cigiMC4wIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCIwZTAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIwZTAiKSk7CisgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoIjEyMzQuMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEy
MzQuMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNC4wZTAiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEy
MzQuMGUwIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMjM0LjBlKzAiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIo
IjEyMzQuMGUrMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNGUtMSIs
IG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlLTEiKSk7CisgIEpTT05URVNUX0FTU0VS
VF9TVFJJTkdfRVFVQUwoIjEyMzRlMTAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0
ZTEwIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMjM0ZTEwIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0
ZTAxMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNGUrMTAiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEy
MzRlKzAxMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNGUtMTAiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIo
IjEyMzRlLTAxMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNGUrMTAw
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50
U3RyKCIxMjM0ZSsxMDAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEyMzRl
LTEwMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplRmxvYXRpbmdQ
b2ludFN0cigiMTIzNGUtMTAwIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIx
MjM0ZSsxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGlu
Z1BvaW50U3RyKCIxMjM0ZSswMDEiKSk7Cit9CiAKLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVz
dCwgY2hlY2tOb3JtYWxpemVGbG9hdGluZ1BvaW50U3RyICkKLXsKLSAgICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCAiMC4wIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMC4wIikg
KTsKLSAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMGUwIiwgbm9ybWFsaXplRmxv
YXRpbmdQb2ludFN0cigiMGUwIikgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCAiMTIzNC4wIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNC4wIikgKTsKLSAgICBK
U09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMTIzNC4wZTAiLCBub3JtYWxpemVGbG9hdGlu
Z1BvaW50U3RyKCIxMjM0LjBlMCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TCggIjEyMzQuMGUrMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzQuMGUrMCIpICk7
Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzRlLTEiLCBub3JtYWxpemVG
bG9hdGluZ1BvaW50U3RyKCIxMjM0ZS0xIikgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKCAiMTIzNGUxMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlMTAiKSAp
OwotICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoICIxMjM0ZTEwIiwgbm9ybWFsaXpl
RmxvYXRpbmdQb2ludFN0cigiMTIzNGUwMTAiKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoICIxMjM0ZSsxMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlKzAx
MCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzRlLTEwIiwgbm9y
bWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNGUtMDEwIikgKTsKLSAgICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCAiMTIzNGUrMTAwIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigi
MTIzNGUrMTAwIikgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMTIzNGUt
MTAwIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNGUtMTAwIikgKTsKLSAgICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMTIzNGUrMSIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9p
bnRTdHIoIjEyMzRlKzAwMSIpICk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgbWVtYmVy
Q291bnQpIHsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1iZXJDb3VudChlbXB0eUFy
cmF5XywgMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNvdW50KGVtcHR5
T2JqZWN0XywgMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNvdW50KGFy
cmF5MV8sIDEpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1iZXJDb3VudChvYmpl
Y3QxXywgMSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNvdW50KG51bGxf
LCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291bnQoaW50ZWdlcl8s
IDApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1iZXJDb3VudCh1bnNpZ25lZElu
dGVnZXJfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291bnQoc21h
bGxVbnNpZ25lZEludGVnZXJfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVt
YmVyQ291bnQocmVhbF8sIDApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1iZXJD
b3VudChlbXB0eVN0cmluZ18sIDApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1i
ZXJDb3VudChzdHJpbmdfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVy
Q291bnQodHJ1ZV8sIDApKTsKIH0KIAorSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIG9iamVj
dHMpIHsKKyAgLy8gVHlwZXMKKyAgSXNDaGVjayBjaGVja3M7CisgIGNoZWNrcy5pc09iamVjdF8g
PSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKGVtcHR5T2JqZWN0XywgY2hl
Y2tzKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMob2JqZWN0MV8sIGNoZWNrcykp
OworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpvYmplY3RWYWx1ZSwgZW1wdHlPYmpl
Y3RfLnR5cGUoKSk7CisKKyAgLy8gRW1wdHkgb2JqZWN0IG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJU
KGVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisKKyAgLy8g
Tm9uLWVtcHR5IG9iamVjdCBub3Qgb2theQorICBKU09OVEVTVF9BU1NFUlQoIW9iamVjdDFfLmlz
Q29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKworICAvLyBBbHdheXMgb2theQorICBK
U09OVEVTVF9BU1NFUlQoZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RW
YWx1ZSkpOworCisgIC8vIE5ldmVyIG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eU9iamVj
dF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KCFlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246
OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmpl
Y3RfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworCisgIC8vIEFjY2VzcyB0
aHJvdWdoIGNvbnN0IHJlZmVyZW5jZQorICBjb25zdCBKc29uOjpWYWx1ZSYgY29uc3RPYmplY3Qg
PSBvYmplY3QxXzsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCks
IGNvbnN0T2JqZWN0WyJpZCJdKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVl
KCksIGNvbnN0T2JqZWN0WyJ1bmtub3duIGlkIl0pOworCisgIC8vIEFjY2VzcyB0aHJvdWdoIGZp
bmQoKQorICBjb25zdCBjaGFyIGlkS2V5W10gPSAiaWQiOworICBjb25zdCBKc29uOjpWYWx1ZSog
Zm91bmRJZCA9IG9iamVjdDFfLmZpbmQoaWRLZXksIGlkS2V5ICsgc3RybGVuKGlkS2V5KSk7Cisg
IEpTT05URVNUX0FTU0VSVChmb3VuZElkICE9IG51bGxwdHIpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoSnNvbjo6VmFsdWUoMTIzNCksICpmb3VuZElkKTsKKworICBjb25zdCBjaGFyIHVua25v
d25JZEtleVtdID0gInVua25vd24gaWQiOworICBjb25zdCBKc29uOjpWYWx1ZSogZm91bmRVbmtu
b3duSWQgPQorICAgICAgb2JqZWN0MV8uZmluZCh1bmtub3duSWRLZXksIHVua25vd25JZEtleSAr
IHN0cmxlbih1bmtub3duSWRLZXkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKG51bGxwdHIs
IGZvdW5kVW5rbm93bklkKTsKKworICAvLyBBY2Nlc3MgdGhyb3VnaCBkZW1hbmQoKQorICBjb25z
dCBjaGFyIHlldEFub3RoZXJJZEtleVtdID0gInlldCBhbm90aGVyIGlkIjsKKyAgY29uc3QgSnNv
bjo6VmFsdWUqIGZvdW5kWWV0QW5vdGhlcklkID0KKyAgICAgIG9iamVjdDFfLmZpbmQoeWV0QW5v
dGhlcklkS2V5LCB5ZXRBbm90aGVySWRLZXkgKyBzdHJsZW4oeWV0QW5vdGhlcklkS2V5KSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChudWxscHRyLCBmb3VuZFlldEFub3RoZXJJZCk7CisgIEpz
b246OlZhbHVlKiBkZW1hbmRlZFlldEFub3RoZXJJZCA9IG9iamVjdDFfLmRlbWFuZCgKKyAgICAg
IHlldEFub3RoZXJJZEtleSwgeWV0QW5vdGhlcklkS2V5ICsgc3RybGVuKHlldEFub3RoZXJJZEtl
eSkpOworICBKU09OVEVTVF9BU1NFUlQoZGVtYW5kZWRZZXRBbm90aGVySWQgIT0gbnVsbHB0cik7
CisgICpkZW1hbmRlZFlldEFub3RoZXJJZCA9ICJiYXoiOworCisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChKc29uOjpWYWx1ZSgiYmF6IiksIG9iamVjdDFfWyJ5ZXQgYW5vdGhlciBpZCJdKTsKKwor
ICAvLyBBY2Nlc3MgdGhyb3VnaCBub24tY29uc3QgcmVmZXJlbmNlCisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgb2JqZWN0MV9bImlkIl0pOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoKSwgb2JqZWN0MV9bInVua25vd24gaWQiXSk7CisKKyAg
b2JqZWN0MV9bInNvbWUgb3RoZXIgaWQiXSA9ICJmb28iOworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoSnNvbjo6VmFsdWUoImZvbyIpLCBvYmplY3QxX1sic29tZSBvdGhlciBpZCJdKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCJmb28iKSwgb2JqZWN0MV9bInNvbWUgb3Ro
ZXIgaWQiXSk7CisKKyAgLy8gUmVtb3ZlLgorICBKc29uOjpWYWx1ZSBnb3Q7CisgIGJvb2wgZGlk
OworICBkaWQgPSBvYmplY3QxXy5yZW1vdmVNZW1iZXIoInNvbWUgb3RoZXIgaWQiLCAmZ290KTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCJmb28iKSwgZ290KTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIGRpZCk7CisgIGdvdCA9IEpzb246OlZhbHVlKCJiYXIi
KTsKKyAgZGlkID0gb2JqZWN0MV8ucmVtb3ZlTWVtYmVyKCJzb21lIG90aGVyIGlkIiwgJmdvdCk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgiYmFyIiksIGdvdCk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgZGlkKTsKKworICBvYmplY3QxX1sic29tZSBvdGhl
ciBpZCJdID0gImZvbyI7CisgIEpzb246OlZhbHVlKiBnb3RQdHIgPSBudWxscHRyOworICBkaWQg
PSBvYmplY3QxXy5yZW1vdmVNZW1iZXIoInNvbWUgb3RoZXIgaWQiLCBnb3RQdHIpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwobnVsbHB0ciwgZ290UHRyKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKHRydWUsIGRpZCk7Cit9CiAKLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgbWVtYmVy
Q291bnQgKQotewotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrTWVtYmVyQ291bnQoZW1w
dHlBcnJheV8sIDApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tNZW1iZXJDb3Vu
dChlbXB0eU9iamVjdF8sIDApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tNZW1i
ZXJDb3VudChhcnJheTFfLCAxKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrTWVt
YmVyQ291bnQob2JqZWN0MV8sIDEpICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tN
ZW1iZXJDb3VudChudWxsXywgMCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01l
bWJlckNvdW50KGludGVnZXJfLCAwKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNr
TWVtYmVyQ291bnQodW5zaWduZWRJbnRlZ2VyXywgMCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKCBjaGVja01lbWJlckNvdW50KHNtYWxsVW5zaWduZWRJbnRlZ2VyXywgMCkgKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50KHJlYWxfLCAwKSApOwotICAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrTWVtYmVyQ291bnQoZW1wdHlTdHJpbmdfLCAwKSApOwot
ICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrTWVtYmVyQ291bnQoc3RyaW5nXywgMCkgKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50KHRydWVfLCAwKSApOwor
SlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIGFycmF5cykgeworICBjb25zdCB1bnNpZ25lZCBp
bnQgaW5kZXgwID0gMDsKKworICAvLyBUeXBlcworICBJc0NoZWNrIGNoZWNrczsKKyAgY2hlY2tz
LmlzQXJyYXlfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyhlbXB0eUFy
cmF5XywgY2hlY2tzKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMoYXJyYXkxXywg
Y2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmFycmF5VmFsdWUsIGFy
cmF5MV8udHlwZSgpKTsKKworICAvLyBFbXB0eSBhcnJheSBva2F5CisgIEpTT05URVNUX0FTU0VS
VChlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisKKyAgLy8g
Tm9uLWVtcHR5IGFycmF5IG5vdCBva2F5CisgIEpTT05URVNUX0FTU0VSVCghYXJyYXkxXy5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisKKyAgLy8gQWx3YXlzIG9rYXkKKyAgSlNP
TlRFU1RfQVNTRVJUKGVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVl
KSk7CisKKyAgLy8gTmV2ZXIgb2theQorICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlz
Q29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIWVt
cHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoIWVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpz
b246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlzQ29u
dmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworCisgIC8vIEFjY2VzcyB0aHJvdWdoIGNv
bnN0IHJlZmVyZW5jZQorICBjb25zdCBKc29uOjpWYWx1ZSYgY29uc3RBcnJheSA9IGFycmF5MV87
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgY29uc3RBcnJheVtp
bmRleDBdKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBjb25z
dEFycmF5WzBdKTsKKworICAvLyBBY2Nlc3MgdGhyb3VnaCBub24tY29uc3QgcmVmZXJlbmNlCisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgYXJyYXkxX1tpbmRleDBd
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBhcnJheTFfWzBd
KTsKKworICBhcnJheTFfWzJdID0gSnNvbjo6VmFsdWUoMTcpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoSnNvbjo6VmFsdWUoKSwgYXJyYXkxX1sxXSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjpWYWx1ZSgxNyksIGFycmF5MV9bMl0pOworICBKc29uOjpWYWx1ZSBnb3Q7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCBhcnJheTFfLnJlbW92ZUluZGV4KDIsICZnb3QpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDE3KSwgZ290KTsKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKGZhbHNlLCBhcnJheTFfLnJlbW92ZUluZGV4KDIsICZnb3QpKTsgLy8g
Z29uZSBub3cKK30KK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBhcnJheUlzc3VlMjUyKSB7
CisgIGludCBjb3VudCA9IDU7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIEpzb246OlZhbHVlIGl0
ZW07CisgIHJvb3RbImFycmF5Il0gPSBKc29uOjpWYWx1ZTo6bnVsbFJlZjsKKyAgZm9yIChpbnQg
aSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgaXRlbVsiYSJdID0gaTsKKyAgICBpdGVtWyJi
Il0gPSBpOworICAgIHJvb3RbImFycmF5Il1baV0gPSBpdGVtOworICB9CisgIC8vIEpTT05URVNU
X0FTU0VSVF9FUVVBTCg1LCByb290WyJhcnJheSJdLnNpemUoKSk7CiB9CiAKK0pTT05URVNUX0ZJ
WFRVUkUoVmFsdWVUZXN0LCBudWxsKSB7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpu
dWxsVmFsdWUsIG51bGxfLnR5cGUoKSk7CisKKyAgSXNDaGVjayBjaGVja3M7CisgIGNoZWNrcy5p
c051bGxfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyhudWxsXywgY2hl
Y2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpu
dWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29u
OjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252ZXJ0aWJsZVRvKEpz
b246OnVpbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252ZXJ0aWJsZVRv
KEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252
ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVChudWxsXy5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQobnVs
bF8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKEpzb246OkludCgwKSwgbnVsbF8uYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjpMYXJnZXN0SW50KDApLCBudWxsXy5hc0xhcmdlc3RJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpVSW50KDApLCBudWxsXy5hc1VJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpMYXJnZXN0VUludCgwKSwgbnVsbF8uYXNMYXJnZXN0
VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgbnVsbF8uYXNEb3VibGUoKSk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIG51bGxfLmFzRmxvYXQoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIG51bGxfLmFzU3RyaW5nKCkpOworCisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZTo6bnVsbCwgbnVsbF8pOworCisgIC8vIFRlc3Qg
dXNpbmcgYSBWYWx1ZSBpbiBhIGJvb2xlYW4gY29udGV4dCAoZmFsc2UgaWZmIG51bGwpCisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChudWxsXywgZmFsc2UpOworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwob2JqZWN0MV8sIHRydWUpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoIW51bGxfLCB0cnVl
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCFvYmplY3QxXywgZmFsc2UpOworfQorCitKU09O
VEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgc3RyaW5ncykgeworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoSnNvbjo6c3RyaW5nVmFsdWUsIHN0cmluZzFfLnR5cGUoKSk7CisKKyAgSXNDaGVjayBjaGVj
a3M7CisgIGNoZWNrcy5pc1N0cmluZ18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChj
aGVja0lzKGVtcHR5U3RyaW5nXywgY2hlY2tzKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNo
ZWNrSXMoc3RyaW5nXywgY2hlY2tzKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMo
c3RyaW5nMV8sIGNoZWNrcykpOworCisgIC8vIEVtcHR5IHN0cmluZyBva2F5CisgIEpTT05URVNU
X0FTU0VSVChlbXB0eVN0cmluZ18uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwor
CisgIC8vIE5vbi1lbXB0eSBzdHJpbmcgbm90IG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKCFzdHJp
bmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisKKyAgLy8gQWx3YXlzIG9r
YXkKKyAgSlNPTlRFU1RfQVNTRVJUKHN0cmluZzFfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJp
bmdWYWx1ZSkpOworCisgIC8vIE5ldmVyIG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKCFzdHJpbmcx
Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVT
VF9BU1NFUlQoIXN0cmluZzFfLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQoIXN0cmluZzFfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVh
bFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiYSIsIHN0cmluZzFf
LmFzU3RyaW5nKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJhIiwgc3RyaW5n
MV8uYXNDU3RyaW5nKCkpOworfQogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIG9iamVj
dHMgKQotewotICAgLy8gVHlwZXMKLSAgIElzQ2hlY2sgY2hlY2tzOwotICAgY2hlY2tzLmlzT2Jq
ZWN0XyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggZW1wdHlPYmpl
Y3RfLCBjaGVja3MgKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIG9iamVj
dDFfLCBjaGVja3MgKSApOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIGJvb2xzKSB7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpib29sZWFuVmFsdWUsIGZhbHNlXy50eXBlKCkp
OworCisgIElzQ2hlY2sgY2hlY2tzOworICBjaGVja3MuaXNCb29sXyA9IHRydWU7CisgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMoZmFsc2VfLCBjaGVja3MpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoY2hlY2tJcyh0cnVlXywgY2hlY2tzKSk7CisKKyAgLy8gRmFsc2Ugb2theQorICBK
U09OVEVTVF9BU1NFUlQoZmFsc2VfLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsK
KworICAvLyBUcnVlIG5vdCBva2F5CisgIEpTT05URVNUX0FTU0VSVCghdHJ1ZV8uaXNDb252ZXJ0
aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworCisgIC8vIEFsd2F5cyBva2F5CisgIEpTT05URVNU
X0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKHRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUKHRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKHRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdW
YWx1ZSkpOworCisgIC8vIE5ldmVyIG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKCF0cnVlXy5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXRydWVf
LmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCh0cnVlLCB0cnVlXy5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgx
LCB0cnVlXy5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHRydWVfLmFzTGFy
Z2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHRydWVfLmFzVUludCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHRydWVfLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgxLjAsIHRydWVfLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMS4wLCB0cnVlXy5hc0Zsb2F0KCkpOworCisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChmYWxzZSwgZmFsc2VfLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAs
IGZhbHNlXy5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIGZhbHNlXy5hc0xh
cmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCBmYWxzZV8uYXNVSW50KCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgZmFsc2VfLmFzTGFyZ2VzdFVJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIGZhbHNlXy5hc0RvdWJsZSgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDAuMCwgZmFsc2VfLmFzRmxvYXQoKSk7Cit9CiAKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChKc29uOjpvYmplY3RWYWx1ZSwgZW1wdHlPYmplY3RfLnR5cGUoKSk7Ci0K
LSAgIC8vIEVtcHR5IG9iamVjdCBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQoZW1wdHlPYmplY3Rf
LmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFs
dWVUZXN0LCBpbnRlZ2VycykgeworICBJc0NoZWNrIGNoZWNrczsKKyAgSnNvbjo6VmFsdWUgdmFs
OworCisgIC8vIENvbnZlcnNpb25zIHRoYXQgZG9uJ3QgZGVwZW5kIG9uIHRoZSB2YWx1ZS4KKyAg
SlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3KS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVh
bFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgx
NykuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQoIUpzb246OlZhbHVlKDE3KS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3KS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
b2JqZWN0VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTdVKS5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVChKc29uOjpW
YWx1ZSgxN1UpLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVT
VF9BU1NFUlQoSnNvbjo6VmFsdWUoMTdVKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTdVKS5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3
VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNT
RVJUKEpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29u
OjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcuMCkuaXND
b252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIUpz
b246OlZhbHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTcuMCkuaXNDb252ZXJ0aWJsZVRvKEpzb246Om9i
amVjdFZhbHVlKSk7CisKKyAgLy8gRGVmYXVsdCBpbnQKKyAgdmFsID0gSnNvbjo6VmFsdWUoSnNv
bjo6aW50VmFsdWUpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwg
dmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnRfID0g
dHJ1ZTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludF8gPSB0cnVl
OworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1
ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1
ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpT
T05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKwor
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzSW50KCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KDAsIHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJn
ZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKGZhbHNlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRf
U1RSSU5HX0VRVUFMKCIwIiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIERlZmF1bHQgdWludAor
ICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjp1aW50VmFsdWUpOworCisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hl
Y2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7
CisgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Cisg
IGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwor
ICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNr
SXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVU
byhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5h
c0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RJbnQoKSk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNVSW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwg
dmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsLmFzQm9v
bCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMCIsIHZhbC5hc1N0cmluZygp
KTsKKworICAvLyBEZWZhdWx0IHJlYWwKKyAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6cmVhbFZh
bHVlKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlw
ZSgpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxs
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWlu
dFZhbHVlKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnRfID0gdHJ1
ZTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwor
ICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsK
KyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgwLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFs
LmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdf
RVFVQUwoIjAuMCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBaZXJvIChzaWduZWQgY29uc3Ry
dWN0b3IgYXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZSgwKTsKKworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2so
KTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Cisg
IGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNo
ZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBj
aGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMo
dmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0lu
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNVSW50KCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFs
LmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsLmFzQm9vbCgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMCIsIHZhbC5hc1N0cmluZygpKTsK
KworICAvLyBaZXJvICh1bnNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCisgIHZhbCA9IEpzb246OlZh
bHVlKDB1KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwu
dHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVl
OworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRydWU7Cisg
IGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwor
ICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRF
U1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgwLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwg
dmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RV
SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIjAiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gWmVybyAoZmxvYXRpbmctcG9p
bnQgY29uc3RydWN0b3IgYXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZSgwLjApOworCisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNr
cyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0
XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9
IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8g
PSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KDAsIHZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdl
c3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNVSW50KCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKDAuMCwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwg
dmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMC4wIiwgdmFs
LmFzU3RyaW5nKCkpOworCisgIC8vIDJeMjAgKHNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCisgIHZh
bCA9IEpzb246OlZhbHVlKDEgPDwgMjApOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29u
OjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tz
LmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJ
bnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVn
cmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1l
cmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3Mp
KTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRW
YWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0ludCgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzVUludCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKCIxMDQ4NTc2IiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIDJeMjAgKHVuc2ln
bmVkIGNvbnN0cnVjdG9yIGFyZykKKyAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6VUludCgxIDw8
IDIwKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1ZSwgdmFsLnR5
cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsK
KyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludF8gPSB0cnVlOworICBj
aGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAg
Y2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzSW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoKDEgPDwgMjApLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRy
dWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEwNDg1
NzYiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gMl4yMCAoZmxvYXRpbmctcG9pbnQgY29uc3Ry
dWN0b3IgYXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZSgoMSA8PCAyMCkgLyAxLjApOworCisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNo
ZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0lu
dDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0
XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJs
ZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VS
VF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgoMSA8PCAyMCksIHZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgx
IDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgx
IDw8IDIwKSwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIw
KSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAy
MCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwg
dmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29s
KCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjEwNDg1NzYuMCIs
CisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmco
dmFsLmFzU3RyaW5nKCkpKSk7CisKKyAgLy8gLTJeMjAKKyAgdmFsID0gSnNvbjo6VmFsdWUoLSgx
IDw8IDIwKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwu
dHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVl
OworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVl
OworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVl
OworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNP
TlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0oMSA8PCAyMCksIHZhbC5hc0ludCgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKC0oMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIi0xMDQ4NTc2IiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIGludDMyIG1heAor
ICB2YWwgPSBKc29uOjpWYWx1ZShraW50MzJtYXgpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOwor
ICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hl
Y2tzLmlzVUludF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tz
LmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNr
cy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWws
IGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFs
LmFzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNMYXJn
ZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNVSW50
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNMYXJnZXN0VUlu
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzRG91YmxlKCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ZpbnQzMm1heCwgdmFsLmFzRmxvYXQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIyMTQ3NDgzNjQ3IiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8v
IGludDMyIG1pbgorICB2YWwgPSBKc29uOjpWYWx1ZShraW50MzJtaW4pOworCisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0g
SXNDaGVjaygpOworICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50NjRfID0g
dHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9
IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChraW50MzJtaW4sIHZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQz
Mm1pbiwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQz
Mm1pbiwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWlu
LCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jv
b2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIi0yMTQ3NDgzNjQ4IiwgdmFs
LmFzU3RyaW5nKCkpOworCisgIC8vIHVpbnQzMiBtYXgKKyAgdmFsID0gSnNvbjo6VmFsdWUoa3Vp
bnQzMm1heCk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1ZSwgdmFs
LnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnQ2NF8gPSB0
cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVl
OworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1
ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChj
aGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CiAKLSAgIC8vIE5vbi1lbXB0eSBvYmplY3Qgbm90
IG9rYXkKLSAgIEpTT05URVNUX0FTU0VSVCghb2JqZWN0MV8uaXNDb252ZXJ0aWJsZVRvKEpzb246
Om51bGxWYWx1ZSkpOworI2lmbmRlZiBKU09OX05PX0lOVDY0CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChrdWludDMybWF4LCB2YWwuYXNMYXJnZXN0SW50KCkpOworI2VuZGlmCisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChrdWludDMybWF4LCB2YWwuYXNVSW50KCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoa3VpbnQzMm1heCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChrdWludDMybWF4LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChrZnVpbnQzMm1heCwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCI0Mjk0OTY3Mjk1IiwgdmFsLmFzU3RyaW5nKCkpOwogCi0gICAvLyBBbHdheXMgb2theQotICAg
SlNPTlRFU1RfQVNTRVJUKGVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0
VmFsdWUpKTsKKyNpZmRlZiBKU09OX05PX0lOVDY0CisgIC8vIGludDY0IG1heAorICB2YWwgPSBK
c29uOjpWYWx1ZShkb3VibGUoa2ludDY0bWF4KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOwor
ICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChkb3VibGUoa2ludDY0bWF4KSwgdmFsLmFzRG91YmxlKCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoa2ludDY0bWF4KSwgdmFsLmFzRmxvYXQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCI5LjIyMzM3ZSsxOCIsIHZhbC5hc1N0cmluZygpKTsK
KworICAvLyBpbnQ2NCBtaW4KKyAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGtpbnQ2NG1pbikp
OworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkp
OworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Cisg
IGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJ
cyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVU
byhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZG91Ymxl
KGtpbnQ2NG1pbiksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZs
b2F0KGtpbnQ2NG1pbiksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
dHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiLTku
MjIzMzdlKzE4IiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIHVpbnQ2NCBtYXgKKyAgdmFsID0g
SnNvbjo6VmFsdWUoZG91YmxlKGt1aW50NjRtYXgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7
CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7
CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGRvdWJsZShrdWludDY0bWF4KSwgdmFsLmFzRG91Ymxl
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoa3VpbnQ2NG1heCksIHZhbC5hc0Zs
b2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMS44NDQ2N2UrMTkiLCB2YWwuYXNTdHJpbmco
KSk7CisjZWxzZSAvLyBpZmRlZiBKU09OX05PX0lOVDY0CisgIC8vIDJeNDAgKHNpZ25lZCBjb25z
dHJ1Y3RvciBhcmcpCisgIHZhbCA9IEpzb246OlZhbHVlKEpzb246OkludDY0KDEpIDw8IDQwKTsK
KworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwor
CisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hl
Y2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNo
ZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpT
T05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVT
VF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0ludDY0KCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFz
TGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8
PCA0MCksIHZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJ
bnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRmxvYXQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIxMDk5NTExNjI3Nzc2IiwgdmFsLmFzU3RyaW5nKCkpOworCisg
IC8vIDJeNDAgKHVuc2lnbmVkIGNvbnN0cnVjdG9yIGFyZykKKyAgdmFsID0gSnNvbjo6VmFsdWUo
SnNvbjo6VUludDY0KDEpIDw8IDQwKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
dWludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNr
cy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3Mu
aXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tz
LmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwg
Y2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQo
MSkgPDwgNDApLCB2YWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29u
OjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNVSW50NjQoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUlu
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZh
bC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8
PCA0MCksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFs
LmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTA5OTUxMTYyNzc3
NiIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyAyXjQwIChmbG9hdGluZy1wb2ludCBjb25zdHJ1
Y3RvciBhcmcpCisgIHZhbCA9IEpzb246OlZhbHVlKChKc29uOjpJbnQ2NCgxKSA8PCA0MCkgLyAx
LjApOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBl
KCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsK
KyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7
CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7
CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0lu
dDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwg
dmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2
NCgxKSA8PCA0MCksIHZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChK
c29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRG91YmxlKCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRmxvYXQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjEwOTk1MTE2Mjc3NzYuMCIsCisgICAg
ICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFz
U3RyaW5nKCkpKSk7CisKKyAgLy8gLTJeNDAKKyAgdmFsID0gSnNvbjo6VmFsdWUoLShKc29uOjpJ
bnQ2NCgxKSA8PCA0MCkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1
ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnQ2
NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3Vi
bGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NF
UlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgtKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzSW50NjQoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgtKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzTGFyZ2VzdElu
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0oSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2
YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKEpzb246OkludDY0KDEp
IDw8IDQwKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2
YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItMTA5OTUxMTYy
Nzc3NiIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBpbnQ2NCBtYXgKKyAgdmFsID0gSnNvbjo6
VmFsdWUoSnNvbjo6SW50NjQoa2ludDY0bWF4KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7Cisg
IGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBj
aGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAg
Y2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lz
KHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRt
YXgsIHZhbC5hc0ludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWF4LCB2
YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWF4LCB2
YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtYXgsIHZhbC5h
c0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZG91YmxlKGtpbnQ2NG1h
eCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KGtpbnQ2
NG1heCksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFs
LmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiOTIyMzM3MjAzNjg1
NDc3NTgwNyIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBpbnQ2NCBtYXggKGZsb2F0aW5nIHBv
aW50IGNvbnN0cnVjdG9yKS4gTm90ZSB0aGF0IGtpbnQ2NG1heCBpcyBub3QgZXhhY3RseQorICAv
LyByZXByZXNlbnRhYmxlIGFzIGEgZG91YmxlLCBhbmQgd2lsbCBiZSByb3VuZGVkIHVwIHRvIGJl
IGhpZ2hlci4KKyAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGtpbnQ2NG1heCkpOworCisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNo
ZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5p
c0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3Mu
aXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBj
aGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlVJbnQ2NCgx
KSA8PCA2MywgdmFsLmFzVUludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
VUludDY0KDEpIDw8IDYzLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKHVpbnQ2NFRvRG91YmxlKEpzb246OlVJbnQ2NCgxKSA8PCA2MyksIHZhbC5hc0RvdWJs
ZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KEpzb246OlVJbnQ2NCgxKSA8PCA2
MyksIHZhbC5hc0Zsb2F0KCkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwu
YXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjkuMjIz
MzcyMDM2ODU0Nzc1OGUrMTgiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29u
VGVzdDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworCisgIC8vIGludDY0IG1pbgor
ICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpJbnQ2NChraW50NjRtaW4pKTsKKworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9
IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdy
YWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVy
aWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykp
OworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFs
dWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50
VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWluLCB2YWwuYXNJbnQ2
NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1pbiwgdmFsLmFzTGFyZ2VzdElu
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGRvdWJsZShraW50NjRtaW4pLCB2YWwuYXNE
b3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChraW50NjRtaW4pLCB2YWwu
YXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7
CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIi05MjIzMzcyMDM2ODU0Nzc1ODA4Iiwg
dmFsLmFzU3RyaW5nKCkpOworCisgIC8vIGludDY0IG1pbiAoZmxvYXRpbmcgcG9pbnQgY29uc3Ry
dWN0b3IpLiBOb3RlIHRoYXQga2ludDY0bWluICppcyogZXhhY3RseQorICAvLyByZXByZXNlbnRh
YmxlIGFzIGEgZG91YmxlLgorICB2YWwgPSBKc29uOjpWYWx1ZShkb3VibGUoa2ludDY0bWluKSk7
CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7
CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBj
aGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAg
Y2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lz
KHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRt
aW4sIHZhbC5hc0ludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWluLCB2
YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTkyMjMzNzIwMzY4
NTQ3NzU4MDguMCwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTky
MjMzNzIwMzY4NTQ3NzU4MDguMCwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KAorICAgICAgIi05LjIyMzM3MjAzNjg1NDc3NThlKzE4IiwKKyAgICAgIG5vcm1hbGl6ZUZsb2F0
aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwuYXNTdHJpbmcoKSkpKTsKKwor
ICAvLyAxMF4xOQorICBjb25zdCBhdXRvIHRlbl90b18xOSA9IHN0YXRpY19jYXN0PEpzb246OlVJ
bnQ2ND4oMWUxOSk7CisgIHZhbCA9IEpzb246OlZhbHVlKEpzb246OlVJbnQ2NCh0ZW5fdG9fMTkp
KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwudHlwZSgp
KTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwor
ICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsK
KyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVj
a0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0ZW5f
dG9fMTksIHZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRlbl90b18x
OSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh1aW50NjRU
b0RvdWJsZSh0ZW5fdG9fMTkpLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChmbG9hdCh1aW50NjRUb0RvdWJsZSh0ZW5fdG9fMTkpKSwgdmFsLmFzRmxvYXQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIxMDAwMDAwMDAwMDAwMDAwMDAwMCIsIHZhbC5hc1N0cmluZygp
KTsKKworICAvLyAxMF4xOSAoZG91YmxlIGNvbnN0cnVjdG9yKS4gTm90ZSB0aGF0IDEwXjE5IGlz
IG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUKKyAgLy8gYXMgYSBkb3VibGUuCisgIHZhbCA9IEpz
b246OlZhbHVlKHVpbnQ2NFRvRG91YmxlKHRlbl90b18xOSkpOworCisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hl
Y2soKTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9
IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9
IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKwor
ICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7
CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkp
OworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVl
KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDFlMTksIHZhbC5hc0RvdWJsZSgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKDFlMTksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCgKKyAgICAgICIxZSsxOSIsCisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3Ry
KEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7CisKKyAgLy8gdWludDY0
IG1heAorICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpVSW50NjQoa3VpbnQ2NG1heCkpOworCisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisg
IGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNr
cy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVj
a3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFs
LCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50NjRtYXgs
IHZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50NjRtYXgsIHZh
bC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodWludDY0VG9Eb3Vi
bGUoa3VpbnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGZsb2F0KHVpbnQ2NFRvRG91YmxlKGt1aW50NjRtYXgpKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCIxODQ0Njc0NDA3MzcwOTU1MTYxNSIsIHZhbC5hc1N0cmluZygpKTsK
KworICAvLyB1aW50NjQgbWF4IChmbG9hdGluZyBwb2ludCBjb25zdHJ1Y3RvcikuIE5vdGUgdGhh
dCBrdWludDY0bWF4IGlzIG5vdAorICAvLyBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYSBkb3Vi
bGUsIGFuZCB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gYmUgaGlnaGVyLgorICB2YWwgPSBKc29uOjpW
YWx1ZSh1aW50NjRUb0RvdWJsZShrdWludDY0bWF4KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygp
OworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVl
OworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNP
TlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwor
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxODQ0Njc0NDA3MzcwOTU1MTYxNi4wLCB2YWwuYXNE
b3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxODQ0Njc0NDA3MzcwOTU1MTYxNi4w
LCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jv
b2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoCisgICAgICAiMS44NDQ2NzQ0
MDczNzA5NTUyZSsxOSIsCisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0
OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7CisjZW5kaWYKK30KIAotICAgLy8gTmV2
ZXIgb2theQotICAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRv
KEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlz
Q29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0
eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKCFlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmJv
b2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eU9iamVjdF8uaXNDb252ZXJ0
aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwg
bm9uSW50ZWdlcnMpIHsKKyAgSXNDaGVjayBjaGVja3M7CisgIEpzb246OlZhbHVlIHZhbDsKKwor
ICAvLyBTbWFsbCBwb3NpdGl2ZSBudW1iZXIKKyAgdmFsID0gSnNvbjo6VmFsdWUoMS41KTsKKwor
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKwor
ICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVj
a3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFs
LCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
Ojp1aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6cmVhbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVU
byhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgxLjUsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEuNSwgdmFs
LmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB2YWwuYXNJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KDEsIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwg
dmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCIxLjUiLCB2YWwuYXNTdHJp
bmcoKSk7CisKKyAgLy8gU21hbGwgbmVnYXRpdmUgbnVtYmVyCisgIHZhbCA9IEpzb246OlZhbHVl
KC0xLjUpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50
eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRy
dWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgtMS41LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgtMS41LCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0xLCB2
YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMSwgdmFsLmFzTGFyZ2VzdElu
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgiLTEuNSIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBBIGJp
dCBvdmVyIGludDMyIG1heAorICB2YWwgPSBKc29uOjpWYWx1ZShraW50MzJtYXggKyAwLjUpOwor
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwor
CisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNo
ZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2
YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246OnVpbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjpyZWFsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6Ym9vbGVhblZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgyMTQ3NDgzNjQ3LjUsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGZsb2F0KDIxNDc0ODM2NDcuNSksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoMjE0NzQ4MzY0N1UsIHZhbC5hc1VJbnQoKSk7CisjaWZkZWYgSlNPTl9IQVNfSU5U
NjQKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDIxNDc0ODM2NDdMLCB2YWwuYXNMYXJnZXN0SW50
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMjE0NzQ4MzY0N1UsIHZhbC5hc0xhcmdlc3RV
SW50KCkpOworI2VuZGlmCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29s
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoCisgICAgICAiMjE0NzQ4MzY0Ny41IiwKKyAg
ICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwu
YXNTdHJpbmcoKSkpKTsKKworICAvLyBBIGJpdCB1bmRlciBpbnQzMiBtaW4KKyAgdmFsID0gSnNv
bjo6VmFsdWUoa2ludDMybWluIC0gMC41KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNo
ZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpT
T05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9B
U1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Cisg
IEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZh
bHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0yMTQ3NDgzNjQ4LjUsIHZhbC5hc0Rv
dWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KC0yMTQ3NDgzNjQ4LjUpLCB2
YWwuYXNGbG9hdCgpKTsKKyNpZmRlZiBKU09OX0hBU19JTlQ2NAorICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCAzMSksIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisjZW5k
aWYKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgKKyAgICAgICItMjE0NzQ4MzY0OC41IiwKKyAgICAgIG5vcm1hbGl6
ZUZsb2F0aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwuYXNTdHJpbmcoKSkp
KTsKKworICAvLyBBIGJpdCBvdmVyIHVpbnQzMiBtYXgKKyAgdmFsID0gSnNvbjo6VmFsdWUoa3Vp
bnQzMm1heCArIDAuNSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1
ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNEb3Vi
bGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NF
UlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQo
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCg0Mjk0OTY3Mjk1LjUsIHZhbC5hc0RvdWJsZSgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KDQyOTQ5NjcyOTUuNSksIHZhbC5hc0Zsb2F0KCkp
OworI2lmZGVmIEpTT05fSEFTX0lOVDY0CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6
SW50NjQoMSkgPDwgMzIpIC0gMSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKChKc29uOjpVSW50NjQoMSkgPDwgMzIpIC0gSnNvbjo6VUludDY0KDEpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisjZW5kaWYKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgKKyAgICAgICI0Mjk0OTY3Mjk1LjUiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQ
b2ludFN0cihKc29uVGVzdDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworCisgIHZh
bCA9IEpzb246OlZhbHVlKDEuMjM0NTY3ODkwMTIzNCk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoCisgICAgICAiMS4yMzQ1Njc4OTAxMjM0MDAxIiwKKyAgICAgIG5vcm1hbGl6ZUZs
b2F0aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwuYXNTdHJpbmcoKSkpKTsK
KworICAvLyBBIDE2LWRpZ2l0IGZsb2F0aW5nIHBvaW50IG51bWJlci4KKyAgdmFsID0gSnNvbjo6
VmFsdWUoMjE5OTAyMzI1NTU1MjAwMC4wZik7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9h
dCgyMTk5MDIzMjU1NTUyMDAwLjBmKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9TVFJJTkdfRVFVQUwoCisgICAgICAiMjE5OTAyMzI1NTU1MjAwMC4wIiwKKyAgICAgIG5vcm1h
bGl6ZUZsb2F0aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwuYXNTdHJpbmco
KSkpKTsKKworICAvLyBBIHZlcnkgbGFyZ2UgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLgorICB2YWwg
PSBKc29uOjpWYWx1ZSgzLjQwMjgyMzQ2NjM4NTI4OWUzOCk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChmbG9hdCgzLjQwMjgyMzQ2NjM4NTI4OWUzOCksIHZhbC5hc0Zsb2F0KCkpOworICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjMuNDAyODIzNDY2Mzg1Mjg5ZSszOCIs
CisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmco
dmFsLmFzU3RyaW5nKCkpKSk7CisKKyAgLy8gQW4gZXZlbiBsYXJnZXIgZmxvYXRpbmcgcG9pbnQg
bnVtYmVyLgorICB2YWwgPSBKc29uOjpWYWx1ZSgxLjIzNDU2NzhlMzAwKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKGRvdWJsZSgxLjIzNDU2NzhlMzAwKSwgdmFsLmFzRG91YmxlKCkpOworICBK
U09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjEuMjM0NTY3OGUrMzAwIiwKKyAg
ICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwu
YXNTdHJpbmcoKSkpKTsKK30KIAotICAgLy8gQWNjZXNzIHRocm91Z2ggY29uc3QgcmVmZXJlbmNl
Ci0gICBjb25zdCBKc29uOjpWYWx1ZSAmY29uc3RPYmplY3QgPSBvYmplY3QxXzsKK3ZvaWQgVmFs
dWVUZXN0OjpjaGVja0NvbnN0TWVtYmVyQ291bnQoY29uc3QgSnNvbjo6VmFsdWUmIHZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXhwZWN0
ZWRDb3VudCkgeworICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOworICBKc29uOjpWYWx1ZTo6Y29u
c3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1ZS5lbmQoKTsKKyAgZm9yIChKc29uOjpWYWx1ZTo6Y29u
c3RfaXRlcmF0b3IgaXQgPSB2YWx1ZS5iZWdpbigpOyBpdCAhPSBpdEVuZDsgKytpdCkgeworICAg
ICsrY291bnQ7CisgIH0KKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVkQ291bnQsIGNv
dW50KSA8PCAiSnNvbjo6VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIjsKK30KIAotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBjb25zdE9iamVjdFsiaWQiXSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoKSwgY29uc3RPYmplY3RbInVua25vd24g
aWQiXSk7Cit2b2lkIFZhbHVlVGVzdDo6Y2hlY2tNZW1iZXJDb3VudChKc29uOjpWYWx1ZSYgdmFs
dWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXhwZWN0
ZWRDb3VudCkgeworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZXhwZWN0ZWRDb3VudCwgdmFsdWUu
c2l6ZSgpKTsKIAotICAgLy8gQWNjZXNzIHRocm91Z2ggbm9uLWNvbnN0IHJlZmVyZW5jZQotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBvYmplY3QxX1siaWQiXSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoKSwgb2JqZWN0MV9bInVua25v
d24gaWQiXSk7CisgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CisgIEpzb246OlZhbHVlOjppdGVy
YXRvciBpdEVuZCA9IHZhbHVlLmVuZCgpOworICBmb3IgKEpzb246OlZhbHVlOjppdGVyYXRvciBp
dCA9IHZhbHVlLmJlZ2luKCk7IGl0ICE9IGl0RW5kOyArK2l0KSB7CisgICAgKytjb3VudDsKKyAg
fQorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZXhwZWN0ZWRDb3VudCwgY291bnQpIDw8ICJKc29u
OjpWYWx1ZTo6aXRlcmF0b3IiOwogCi0gICBvYmplY3QxX1sic29tZSBvdGhlciBpZCJdID0gImZv
byI7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoImZvbyIpLCBvYmplY3Qx
X1sic29tZSBvdGhlciBpZCJdKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tDb25zdE1l
bWJlckNvdW50KHZhbHVlLCBleHBlY3RlZENvdW50KSk7CiB9CiAKK1ZhbHVlVGVzdDo6SXNDaGVj
azo6SXNDaGVjaygpCisKKyAgICA9IGRlZmF1bHQ7CiAKLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVl
VGVzdCwgYXJyYXlzICkKLXsKLSAgIGNvbnN0IHVuc2lnbmVkIGludCBpbmRleDAgPSAwOwordm9p
ZCBWYWx1ZVRlc3Q6OmNoZWNrSXMoY29uc3QgSnNvbjo6VmFsdWUmIHZhbHVlLCBjb25zdCBJc0No
ZWNrJiBjaGVjaykgeworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNPYmplY3RfLCB2
YWx1ZS5pc09iamVjdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzQXJyYXlf
LCB2YWx1ZS5pc0FycmF5KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNCb29s
XywgdmFsdWUuaXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNEb3Vi
bGVfLCB2YWx1ZS5pc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlz
SW50XywgdmFsdWUuaXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc1VJ
bnRfLCB2YWx1ZS5pc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc0lu
dGVncmFsXywgdmFsdWUuaXNJbnRlZ3JhbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNo
ZWNrLmlzTnVtZXJpY18sIHZhbHVlLmlzTnVtZXJpYygpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGNoZWNrLmlzU3RyaW5nXywgdmFsdWUuaXNTdHJpbmcoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChjaGVjay5pc051bGxfLCB2YWx1ZS5pc051bGwoKSk7CiAKLSAgIC8vIFR5cGVzCi0g
ICBJc0NoZWNrIGNoZWNrczsKLSAgIGNoZWNrcy5pc0FycmF5XyA9IHRydWU7Ci0gICBKU09OVEVT
VF9BU1NFUlRfUFJFRCggY2hlY2tJcyggZW1wdHlBcnJheV8sIGNoZWNrcyApICk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggYXJyYXkxXywgY2hlY2tzICkgKTsKKyNpZmRlZiBK
U09OX0hBU19JTlQ2NAorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNJbnQ2NF8sIHZh
bHVlLmlzSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc1VJbnQ2NF8s
IHZhbHVlLmlzVUludDY0KCkpOworI2Vsc2UKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNl
LCB2YWx1ZS5pc0ludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbHVl
LmlzVUludDY0KCkpOworI2VuZGlmCit9CiAKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29u
OjphcnJheVZhbHVlLCBhcnJheTFfLnR5cGUoKSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVz
dCwgY29tcGFyZU51bGwpIHsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFsKEpz
b246OlZhbHVlKCksIEpzb246OlZhbHVlKCkpKTsKK30KIAotICAgLy8gRW1wdHkgYXJyYXkgb2th
eQotICAgSlNPTlRFU1RfQVNTRVJUKGVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjpu
dWxsVmFsdWUpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21wYXJlSW50KSB7Cisg
IEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKDAsIDEwKSk7CisgIEpTT05URVNUX0FT
U0VSVF9QUkVEKGNoZWNrSXNFcXVhbCgxMCwgMTApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJc0VxdWFsKC0xMCwgLTEwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNM
ZXNzKC0xMCwgMCkpOworfQogCi0gICAvLyBOb24tZW1wdHkgYXJyYXkgbm90IG9rYXkKLSAgIEpT
T05URVNUX0FTU0VSVCghYXJyYXkxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7
CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY29tcGFyZVVJbnQpIHsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoMHUsIDEwdSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJF
RChjaGVja0lzTGVzcygwdSwgSnNvbjo6VmFsdWU6Om1heFVJbnQpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoY2hlY2tJc0VxdWFsKDEwdSwgMTB1KSk7Cit9CiAKLSAgIC8vIEFsd2F5cyBva2F5
Ci0gICBKU09OVEVTVF9BU1NFUlQoZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFy
cmF5VmFsdWUpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21wYXJlRG91YmxlKSB7
CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKDAuMCwgMTAuMCkpOworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwoMTAuMCwgMTAuMCkpOworICBKU09OVEVTVF9B
U1NFUlRfUFJFRChjaGVja0lzRXF1YWwoLTEwLjAsIC0xMC4wKSk7CisgIEpTT05URVNUX0FTU0VS
VF9QUkVEKGNoZWNrSXNMZXNzKC0xMC4wLCAwLjApKTsKK30KIAotICAgLy8gTmV2ZXIgb2theQot
ICAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2Jq
ZWN0VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlz
Q29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghZW1w
dHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjpz
dHJpbmdWYWx1ZSkpOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIGNvbXBhcmVTdHJpbmcp
IHsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoIiIsICIgIikpOworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygiIiwgImEiKSk7CisgIEpTT05URVNUX0FTU0VS
VF9QUkVEKGNoZWNrSXNMZXNzKCJhYmNkIiwgInp5dWkiKSk7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrSXNMZXNzKCJhYmMiLCAiYWJjZCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJc0VxdWFsKCJhYmNkIiwgImFiY2QiKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNo
ZWNrSXNFcXVhbCgiICIsICIgIikpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVz
cygiQUJDRCIsICJhYmNkIikpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwo
IkFCQ0QiLCAiQUJDRCIpKTsKK30KIAotICAgLy8gQWNjZXNzIHRocm91Z2ggY29uc3QgcmVmZXJl
bmNlCi0gICBjb25zdCBKc29uOjpWYWx1ZSAmY29uc3RBcnJheSA9IGFycmF5MV87Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCksIGNvbnN0QXJyYXlbaW5kZXgwXSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCksIGNvbnN0QXJyYXlb
MF0pOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIGNvbXBhcmVCb29sZWFuKSB7CisgIEpT
T05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKGZhbHNlLCB0cnVlKSk7CisgIEpTT05URVNU
X0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbChmYWxzZSwgZmFsc2UpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoY2hlY2tJc0VxdWFsKHRydWUsIHRydWUpKTsKK30KIAotICAgLy8gQWNjZXNzIHRo
cm91Z2ggbm9uLWNvbnN0IHJlZmVyZW5jZQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OlZhbHVlKDEyMzQpLCBhcnJheTFfW2luZGV4MF0pOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KEpzb246OlZhbHVlKDEyMzQpLCBhcnJheTFfWzBdKTsKLQotICAgYXJyYXkxX1syXSA9IEpzb246
OlZhbHVlKDE3KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgpLCBhcnJh
eTFfWzFdKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxNyksIGFycmF5
MV9bMl0pOwotfQorSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIGNvbXBhcmVBcnJheSkgewor
ICAvLyBhcnJheSBjb21wYXJlIHNpemUgdGhlbiBjb250ZW50CisgIEpzb246OlZhbHVlIGVtcHR5
QXJyYXkoSnNvbjo6YXJyYXlWYWx1ZSk7CisgIEpzb246OlZhbHVlIGwxYUFycmF5OworICBsMWFB
cnJheS5hcHBlbmQoMCk7CisgIEpzb246OlZhbHVlIGwxYkFycmF5OworICBsMWJBcnJheS5hcHBl
bmQoMTApOworICBKc29uOjpWYWx1ZSBsMmFBcnJheTsKKyAgbDJhQXJyYXkuYXBwZW5kKDApOwor
ICBsMmFBcnJheS5hcHBlbmQoMCk7CisgIEpzb246OlZhbHVlIGwyYkFycmF5OworICBsMmJBcnJh
eS5hcHBlbmQoMCk7CisgIGwyYkFycmF5LmFwcGVuZCgxMCk7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrSXNMZXNzKGVtcHR5QXJyYXksIGwxYUFycmF5KSk7CisgIEpTT05URVNUX0FTU0VS
VF9QUkVEKGNoZWNrSXNMZXNzKGVtcHR5QXJyYXksIGwyYUFycmF5KSk7CisgIEpTT05URVNUX0FT
U0VSVF9QUkVEKGNoZWNrSXNMZXNzKGwxYUFycmF5LCBsMmFBcnJheSkpOworICBKU09OVEVTVF9B
U1NFUlRfUFJFRChjaGVja0lzTGVzcyhsMmFBcnJheSwgbDJiQXJyYXkpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFsKGVtcHR5QXJyYXksIEpzb246OlZhbHVlKGVtcHR5QXJy
YXkpKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbChsMWFBcnJheSwgSnNv
bjo6VmFsdWUobDFhQXJyYXkpKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVh
bChsMmJBcnJheSwgSnNvbjo6VmFsdWUobDJiQXJyYXkpKSk7Cit9CiAKK0pTT05URVNUX0ZJWFRV
UkUoVmFsdWVUZXN0LCBjb21wYXJlT2JqZWN0KSB7CisgIC8vIG9iamVjdCBjb21wYXJlIHNpemUg
dGhlbiBjb250ZW50CisgIEpzb246OlZhbHVlIGVtcHR5T2JqZWN0KEpzb246Om9iamVjdFZhbHVl
KTsKKyAgSnNvbjo6VmFsdWUgbDFhT2JqZWN0OworICBsMWFPYmplY3RbImtleTEiXSA9IDA7Cisg
IEpzb246OlZhbHVlIGwxYk9iamVjdDsKKyAgbDFhT2JqZWN0WyJrZXkxIl0gPSAxMDsKKyAgSnNv
bjo6VmFsdWUgbDJhT2JqZWN0OworICBsMmFPYmplY3RbImtleTEiXSA9IDA7CisgIGwyYU9iamVj
dFsia2V5MiJdID0gMDsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoZW1wdHlP
YmplY3QsIGwxYU9iamVjdCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhl
bXB0eU9iamVjdCwgbDJhT2JqZWN0KSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNM
ZXNzKGwxYU9iamVjdCwgbDJhT2JqZWN0KSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNr
SXNFcXVhbChlbXB0eU9iamVjdCwgSnNvbjo6VmFsdWUoZW1wdHlPYmplY3QpKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbChsMWFPYmplY3QsIEpzb246OlZhbHVlKGwxYU9i
amVjdCkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFsKGwyYU9iamVjdCwg
SnNvbjo6VmFsdWUobDJhT2JqZWN0KSkpOworfQogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRl
c3QsIG51bGwgKQotewotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246Om51bGxWYWx1ZSwg
bnVsbF8udHlwZSgpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21wYXJlVHlwZSkg
eworICAvLyBvYmplY3Qgb2YgZGlmZmVyZW50IHR5cGUgYXJlIG9yZGVyZWQgYWNjb3JkaW5nIHRv
IHRoZWlyIHR5cGUKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoSnNvbjo6VmFs
dWUoKSwgSnNvbjo6VmFsdWUoMSkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xl
c3MoSnNvbjo6VmFsdWUoMSksIEpzb246OlZhbHVlKDF1KSkpOworICBKU09OVEVTVF9BU1NFUlRf
UFJFRChjaGVja0lzTGVzcyhKc29uOjpWYWx1ZSgxdSksIEpzb246OlZhbHVlKDEuMCkpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoSnNvbjo6VmFsdWUoMS4wKSwgSnNvbjo6
VmFsdWUoImEiKSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhKc29uOjpW
YWx1ZSgiYSIpLCBKc29uOjpWYWx1ZSh0cnVlKSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRCgK
KyAgICAgIGNoZWNrSXNMZXNzKEpzb246OlZhbHVlKHRydWUpLCBKc29uOjpWYWx1ZShKc29uOjph
cnJheVZhbHVlKSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhKc29uOjpW
YWx1ZShKc29uOjphcnJheVZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSnNvbjo6VmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpKSk7Cit9CiAKLSAgIElzQ2hlY2sgY2hl
Y2tzOwotICAgY2hlY2tzLmlzTnVsbF8gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
IGNoZWNrSXMoIG51bGxfLCBjaGVja3MgKSApOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3Qs
IENvcHlPYmplY3QpIHsKKyAgSnNvbjo6VmFsdWUgYXJyYXlWYWw7CisgIGFycmF5VmFsLmFwcGVu
ZCgidmFsMSIpOworICBhcnJheVZhbC5hcHBlbmQoInZhbDIiKTsKKyAgYXJyYXlWYWwuYXBwZW5k
KCJ2YWwzIik7CisgIEpzb246OlZhbHVlIHN0cmluZ1ZhbCgic3RyaW5nIHZhbHVlIik7CisgIEpz
b246OlZhbHVlIGNvcHkxLCBjb3B5MjsKKyAgeworICAgIEpzb246OlZhbHVlIGFycmF5Q29weSwg
c3RyaW5nQ29weTsKKyAgICBhcnJheUNvcHkuY29weShhcnJheVZhbCk7CisgICAgc3RyaW5nQ29w
eS5jb3B5KHN0cmluZ1ZhbCk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFs
KGFycmF5Q29weSwgYXJyYXlWYWwpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lz
RXF1YWwoc3RyaW5nQ29weSwgc3RyaW5nVmFsKSk7CisgICAgYXJyYXlDb3B5LmFwcGVuZCgidmFs
NCIpOworICAgIEpTT05URVNUX0FTU0VSVChhcnJheUNvcHkuc2l6ZSgpID09IDQpOworICAgIGFy
cmF5VmFsLmFwcGVuZCgibmV3NCIpOworICAgIGFycmF5VmFsLmFwcGVuZCgibmV3NSIpOworICAg
IEpTT05URVNUX0FTU0VSVChhcnJheVZhbC5zaXplKCkgPT0gNSk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKCEoYXJyYXlDb3B5ID09IGFycmF5VmFsKSk7CisgICAgc3RyaW5nQ29weSA9ICJhbm90aGVy
IHN0cmluZyI7CisgICAgSlNPTlRFU1RfQVNTRVJUKCEoc3RyaW5nQ29weSA9PSBzdHJpbmdWYWwp
KTsKKyAgICBjb3B5MS5jb3B5KGFycmF5Q29weSk7CisgICAgY29weTIuY29weShzdHJpbmdDb3B5
KTsKKyAgfQorICBKU09OVEVTVF9BU1NFUlQoYXJyYXlWYWwuc2l6ZSgpID09IDUpOworICBKU09O
VEVTVF9BU1NFUlQoc3RyaW5nVmFsID09ICJzdHJpbmcgdmFsdWUiKTsKKyAgSlNPTlRFU1RfQVNT
RVJUKGNvcHkxLnNpemUoKSA9PSA0KTsKKyAgSlNPTlRFU1RfQVNTRVJUKGNvcHkyID09ICJhbm90
aGVyIHN0cmluZyIpOworICBjb3B5MS5jb3B5KHN0cmluZ1ZhbCk7CisgIEpTT05URVNUX0FTU0VS
VChjb3B5MSA9PSAic3RyaW5nIHZhbHVlIik7CisgIGNvcHkyLmNvcHkoYXJyYXlWYWwpOworICBK
U09OVEVTVF9BU1NFUlQoY29weTIuc2l6ZSgpID09IDUpOworfQogCi0gICBKU09OVEVTVF9BU1NF
UlQobnVsbF8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLSAgIEpT
T05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1
ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJp
bmdWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29u
OjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252ZXJ0aWJsZVRv
KEpzb246Om9iamVjdFZhbHVlKSk7Cit2b2lkIFZhbHVlVGVzdDo6Y2hlY2tJc0xlc3MoY29uc3Qg
SnNvbjo6VmFsdWUmIHgsIGNvbnN0IEpzb246OlZhbHVlJiB5KSB7CisgIEpTT05URVNUX0FTU0VS
VCh4IDwgeSk7CisgIEpTT05URVNUX0FTU0VSVCh5ID4geCk7CisgIEpTT05URVNUX0FTU0VSVCh4
IDw9IHkpOworICBKU09OVEVTVF9BU1NFUlQoeSA+PSB4KTsKKyAgSlNPTlRFU1RfQVNTRVJUKCEo
eCA9PSB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkgPT0geCkpOworICBKU09OVEVTVF9BU1NF
UlQoISh4ID49IHkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCEoeSA8PSB4KSk7CisgIEpTT05URVNU
X0FTU0VSVCghKHggPiB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkgPCB4KSk7CisgIEpTT05U
RVNUX0FTU0VSVCh4LmNvbXBhcmUoeSkgPCAwKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkuY29tcGFy
ZSh4KSA+PSAwKTsKK30KIAotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OkludCgwKSwg
bnVsbF8uYXNJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6TGFyZ2VzdElu
dCgwKSwgbnVsbF8uYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpz
b246OlVJbnQoMCksIG51bGxfLmFzVUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChK
c29uOjpMYXJnZXN0VUludCgwKSwgbnVsbF8uYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgwLjAsIG51bGxfLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDAuMCwgbnVsbF8uYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdf
RVFVQUwoIiIsIG51bGxfLmFzU3RyaW5nKCkpOwordm9pZCBWYWx1ZVRlc3Q6OmNoZWNrSXNFcXVh
bChjb25zdCBKc29uOjpWYWx1ZSYgeCwgY29uc3QgSnNvbjo6VmFsdWUmIHkpIHsKKyAgSlNPTlRF
U1RfQVNTRVJUKHggPT0geSk7CisgIEpTT05URVNUX0FTU0VSVCh5ID09IHgpOworICBKU09OVEVT
VF9BU1NFUlQoeCA8PSB5KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkgPD0geCk7CisgIEpTT05URVNU
X0FTU0VSVCh4ID49IHkpOworICBKU09OVEVTVF9BU1NFUlQoeSA+PSB4KTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKCEoeCA8IHkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCEoeSA8IHgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCEoeCA+IHkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCEoeSA+IHgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUKHguY29tcGFyZSh5KSA9PSAwKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkuY29t
cGFyZSh4KSA9PSAwKTsKIH0KIAorSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIHR5cGVDaGVj
a3NUaHJvd0V4Y2VwdGlvbnMpIHsKKyNpZiBKU09OX1VTRV9FWENFUFRJT04KIAotSlNPTlRFU1Rf
RklYVFVSRSggVmFsdWVUZXN0LCBzdHJpbmdzICkKLXsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjpzdHJpbmdWYWx1ZSwgc3RyaW5nMV8udHlwZSgpKTsKKyAgSnNvbjo6VmFsdWUgaW50
VmFsKDEpOworICBKc29uOjpWYWx1ZSBzdHJWYWwoIlRlc3QiKTsKKyAgSnNvbjo6VmFsdWUgb2Jq
VmFsKEpzb246Om9iamVjdFZhbHVlKTsKKyAgSnNvbjo6VmFsdWUgYXJyVmFsKEpzb246OmFycmF5
VmFsdWUpOwogCi0gICBJc0NoZWNrIGNoZWNrczsKLSAgIGNoZWNrcy5pc1N0cmluZ18gPSB0cnVl
OwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIGVtcHR5U3RyaW5nXywgY2hlY2tz
ICkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCBzdHJpbmdfLCBjaGVja3Mg
KSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHN0cmluZzFfLCBjaGVja3Mg
KSApOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGludFZhbFsidGVzdCJdKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1RIUk9XUyhzdHJWYWxbInRlc3QiXSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJP
V1MoYXJyVmFsWyJ0ZXN0Il0pOwogCi0gICAvLyBFbXB0eSBzdHJpbmcgb2theQotICAgSlNPTlRF
U1RfQVNTRVJUKGVtcHR5U3RyaW5nXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7
CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1MoaW50VmFsLnJlbW92ZU1lbWJlcigidGVzdCIpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhzdHJWYWwucmVtb3ZlTWVtYmVyKCJ0ZXN0IikpOwor
ICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5yZW1vdmVNZW1iZXIoInRlc3QiKSk7CiAK
LSAgIC8vIE5vbi1lbXB0eSBzdHJpbmcgbm90IG9rYXkKLSAgIEpTT05URVNUX0FTU0VSVCghc3Ry
aW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlRfVEhST1dTKGludFZhbC5nZXRNZW1iZXJOYW1lcygpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RI
Uk9XUyhzdHJWYWwuZ2V0TWVtYmVyTmFtZXMoKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mo
YXJyVmFsLmdldE1lbWJlck5hbWVzKCkpOwogCi0gICAvLyBBbHdheXMgb2theQotICAgSlNPTlRF
U1RfQVNTRVJUKHN0cmluZzFfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGludFZhbFswXSk7CisgIEpTT05URVNUX0FTU0VSVF9U
SFJPV1Mob2JqVmFsWzBdKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhzdHJWYWxbMF0pOwog
Ci0gICAvLyBOZXZlciBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQoIXN0cmluZzFfLmlzQ29udmVy
dGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCFzdHJpbmcx
Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJU
KCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotICAg
SlNPTlRFU1RfQVNTRVJUKCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVl
KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImEiLCBzdHJpbmcxXy5hc1N0
cmluZygpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImEiLCBzdHJpbmcxXy5h
c0NTdHJpbmcoKSk7Ci19Ci0KLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBib29scyAp
Ci17Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6Ym9vbGVhblZhbHVlLCBmYWxzZV8u
dHlwZSgpKTsKLQotICAgSXNDaGVjayBjaGVja3M7Ci0gICBjaGVja3MuaXNCb29sXyA9IHRydWU7
Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggZmFsc2VfLCBjaGVja3MgKSApOwot
ICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHRydWVfLCBjaGVja3MgKSApOwotCi0g
ICAvLyBGYWxzZSBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQoZmFsc2VfLmlzQ29udmVydGlibGVU
byhKc29uOjpudWxsVmFsdWUpKTsKLQotICAgLy8gVHJ1ZSBub3Qgb2theQotICAgSlNPTlRFU1Rf
QVNTRVJUKCF0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0KLSAgIC8v
IEFsd2F5cyBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQodHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpz
b246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodHJ1ZV8uaXNDb252ZXJ0aWJsZVRv
KEpzb246OnVpbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHRydWVfLmlzQ29udmVydGli
bGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh0cnVlXy5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodHJ1ZV8u
aXNDb252ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7Ci0KLSAgIC8vIE5ldmVyIG9rYXkK
LSAgIEpTT05URVNUX0FTU0VSVCghdHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFs
dWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om9i
amVjdFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB0cnVlXy5hc0Jv
b2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdHJ1ZV8uYXNJbnQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdHJ1ZV8uYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDEsIHRydWVfLmFzVUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgxLCB0cnVlXy5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KDEuMCwgdHJ1ZV8uYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMS4wLCB0
cnVlXy5hc0Zsb2F0KCkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIGZhbHNl
Xy5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgZmFsc2VfLmFzSW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIGZhbHNlXy5hc0xhcmdlc3RJbnQoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgZmFsc2VfLmFzVUludCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgwLCBmYWxzZV8uYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgwLjAsIGZhbHNlXy5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgwLjAsIGZhbHNlXy5hc0Zsb2F0KCkpOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZh
bHVlVGVzdCwgaW50ZWdlcnMgKQotewotICAgSXNDaGVjayBjaGVja3M7Ci0gICBKc29uOjpWYWx1
ZSB2YWw7Ci0KLSAgIC8vIENvbnZlcnNpb25zIHRoYXQgZG9uJ3QgZGVwZW5kIG9uIHRoZSB2YWx1
ZS4KLSAgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpz
b246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3KS5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChKc29u
OjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNP
TlRFU1RfQVNTRVJUKCFKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5
VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTcpLmlzQ29udmVydGli
bGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFs
dWUoMTdVKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlQoSnNvbjo6VmFsdWUoMTdVKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxN1UpLmlzQ29udmVydGlibGVUbyhK
c29uOjpib29sZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTdV
KS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJU
KCFKc29uOjpWYWx1ZSgxN1UpLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwot
Ci0gICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcuMCkuaXNDb252ZXJ0aWJsZVRvKEpz
b246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3LjApLmlz
Q29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKEpz
b246OlZhbHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKLSAg
IEpTT05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTcuMCkuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmFycmF5VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTcuMCkuaXND
b252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7Ci0KLSAgIC8vIERlZmF1bHQgaW50Ci0g
ICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjppbnRWYWx1ZSk7Ci0KLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hl
Y2soKTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1
ZTsKLSAgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVl
OwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0
cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFs
LmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNVSW50
KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VR
VUFMKCIwIiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyBEZWZhdWx0IHVpbnQKLSAgIHZhbCA9
IEpzb246OlZhbHVlKEpzb246OnVpbnRWYWx1ZSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7
Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKLSAg
IGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsK
LSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBj
aGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoMCwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xh
cmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGZhbHNlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgi
MCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gRGVmYXVsdCByZWFsCi0gICB2YWwgPSBKc29u
OjpWYWx1ZShKc29uOjpyZWFsVmFsdWUpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2so
KTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsK
LSAgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwot
ICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVl
OwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
IGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAs
IHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJbnQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxz
ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAuMCIs
IHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gWmVybyAoc2lnbmVkIGNvbnN0cnVjdG9yIGFyZykK
LSAgIHZhbCA9IEpzb246OlZhbHVlKDApOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBj
aGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBjaGVj
a3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNo
ZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
KCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwg
dmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RJ
bnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNl
LCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMCIsIHZh
bC5hc1N0cmluZygpKTsKLQotICAgLy8gWmVybyAodW5zaWduZWQgY29uc3RydWN0b3IgYXJnKQot
ICAgdmFsID0gSnNvbjo6VmFsdWUoMHUpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAg
Y2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hl
Y2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVj
a3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBj
aGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJ
cyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAs
IHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJbnQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxz
ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAiLCB2
YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIFplcm8gKGZsb2F0aW5nLXBvaW50IGNvbnN0cnVjdG9y
IGFyZykKLSAgIHZhbCA9IEpzb246OlZhbHVlKDAuMCk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNr
KCk7Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7
Ci0gICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsK
LSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1
ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVE
KCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMCwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5h
c0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGZhbHNlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TCgiMC4wIiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyAyXjIwIChzaWduZWQgY29uc3RydWN0
b3IgYXJnKQotICAgdmFsID0gSnNvbjo6VmFsdWUoMSA8PCAyMCk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0gICBjaGVja3MgPSBJc0No
ZWNrKCk7Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRy
dWU7Ci0gICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0gdHJ1
ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgoMSA8PCAyMCksIHZhbC5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
KDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoMSA8PCAyMCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgo
MSA8PCAyMCksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUs
IHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMDQ4NTc2
IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyAyXjIwICh1bnNpZ25lZCBjb25zdHJ1Y3RvciBh
cmcpCi0gICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpVSW50KDEgPDwgMjApKTsKLQotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNo
ZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlz
SW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJ
bnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5p
c0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNJbnQoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzVUludCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoIjEwNDg1NzYiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIDJeMjAgKGZsb2F0aW5nLXBv
aW50IGNvbnN0cnVjdG9yIGFyZykKLSAgIHZhbCA9IEpzb246OlZhbHVlKCgxIDw8IDIwKSAvIDEu
MCk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBl
KCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsK
LSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7
Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1
ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVl
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFs
dWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzSW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc1VJbnQoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0RvdWJsZSgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCIxMDQ4NTc2LjAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKHZh
bC5hc1N0cmluZygpKSk7Ci0KLSAgIC8vIC0yXjIwCi0gICB2YWwgPSBKc29uOjpWYWx1ZSgtKDEg
PDwgMjApKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwu
dHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRy
dWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18g
PSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkg
KTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1
aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0oMSA8PCAyMCksIHZhbC5h
c0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNMYXJn
ZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0oMSA8PCAyMCksIHZhbC5hc0Rv
dWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNGbG9h
dCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiLTEwNDg1NzYiLCB2YWwuYXNTdHJpbmcoKSk7
Ci0KLSAgIC8vIGludDMyIG1heAotICAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMybWF4KTsKLQot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQot
ICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVj
a3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tz
LmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hl
Y2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAg
SlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtYXgsIHZhbC5hc0ludCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtYXgsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNVSW50KCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoa2ZpbnQzMm1heCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIjIxNDc0ODM2NDciLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIGludDMyIG1p
bgotICAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMybWluKTsKLQotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVj
aygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVl
OwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0
cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKGtpbnQzMm1pbiwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGtpbnQzMm1pbiwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChraW50MzJtaW4sIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChraW50MzJtaW4sIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRy
dWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItMjE0
NzQ4MzY0OCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gdWludDMyIG1heAotICAgdmFsID0g
SnNvbjo6VmFsdWUoa3VpbnQzMm1heCk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29u
Ojp1aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBj
aGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hl
Y2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAg
Y2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkp
OworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGludFZhbC5jbGVhcigpKTsKIAotI2lmbmRlZiBK
U09OX05PX0lOVDY0Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQzMm1heCwgdmFsLmFz
TGFyZ2VzdEludCgpKTsKLSNlbmRpZgotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50MzJt
YXgsIHZhbC5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQzMm1heCwg
dmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQzMm1h
eCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtmdWludDMybWF4
LCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNC
b29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiNDI5NDk2NzI5NSIsIHZh
bC5hc1N0cmluZygpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWwucmVzaXplKDEp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhzdHJWYWwucmVzaXplKDEpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwucmVzaXplKDEpKTsKKworICBKU09OVEVTVF9BU1NFUlRf
VEhST1dTKGludFZhbC5hc0NTdHJpbmcoKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhv
YmpWYWwuYXNTdHJpbmcoKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1MoYXJyVmFsLmFzU3Ry
aW5nKCkpOworCisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLmFzSW50KCkpOworICBK
U09OVEVTVF9BU1NFUlRfVEhST1dTKG9ialZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X1RIUk9XUyhhcnJWYWwuYXNJbnQoKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhzdHJW
YWwuYXNVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKG9ialZhbC5hc1VJbnQoKSk7
CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1MoYXJyVmFsLmFzVUludCgpKTsKKworICBKU09OVEVT
VF9BU1NFUlRfVEhST1dTKHN0clZhbC5hc0ludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhS
T1dTKG9ialZhbC5hc0ludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5h
c0ludDY0KCkpOworCisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLmFzVUludDY0KCkp
OworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKG9ialZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwuYXNVSW50NjQoKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJU
X1RIUk9XUyhzdHJWYWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mob2Jq
VmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5hc0RvdWJs
ZSgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKHN0clZhbC5hc0Zsb2F0KCkpOworICBK
U09OVEVTVF9BU1NFUlRfVEhST1dTKG9ialZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NF
UlRfVEhST1dTKGFyclZhbC5hc0Zsb2F0KCkpOworCisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mo
c3RyVmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNCb29s
KCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5hc0Jvb2woKSk7CiAKLSNpZmRl
ZiBKU09OX05PX0lOVDY0Ci0gICAvLyBpbnQ2NCBtYXgKLSAgIHZhbCA9IEpzb246OlZhbHVlKGRv
dWJsZShraW50NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxW
YWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5p
c0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChkb3VibGUoa2ludDY0bWF4KSwgdmFsLmFzRG91YmxlKCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KGtpbnQ2NG1heCksIHZhbC5hc0Zsb2F0
KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCI5LjIyMzM3ZSsxOCIsIHZhbC5hc1N0cmluZygp
KTsKLQotICAgLy8gaW50NjQgbWluCi0gICB2YWwgPSBKc29uOjpWYWx1ZShkb3VibGUoa2ludDY0
bWluKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50
eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJU
KCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoZG91YmxlKGtpbnQ2NG1pbiksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChmbG9hdChraW50NjRtaW4pLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgiLTkuMjIzMzdlKzE4IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAv
LyB1aW50NjQgbWF4Ci0gICB2YWwgPSBKc29uOjpWYWx1ZShkb3VibGUoa3VpbnQ2NG1heCkpOwot
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsK
LQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hl
Y2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGRvdWJsZShrdWludDY0bWF4KSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKGZsb2F0KGt1aW50NjRtYXgpLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCgiMS44NDQ2N2UrMTkiLCB2YWwuYXNTdHJpbmcoKSk7Ci0jZWxzZSAgLy8gaWZk
ZWYgSlNPTl9OT19JTlQ2NAotICAgLy8gMl40MCAoc2lnbmVkIGNvbnN0cnVjdG9yIGFyZykKLSAg
IHZhbCA9IEpzb246OlZhbHVlKEpzb246OkludDY0KDEpIDw8IDQwKTsKLQotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0g
SXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2
NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0Rv
dWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNJbnQ2NCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwu
YXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgx
KSA8PCA0MCksIHZhbC5hc1VJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNv
bjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRmxvYXQo
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEwOTk1MTE2Mjc3NzYiLCB2YWwuYXNTdHJpbmco
KSk7Ci0KLSAgIC8vIDJeNDAgKHVuc2lnbmVkIGNvbnN0cnVjdG9yIGFyZykKLSAgIHZhbCA9IEpz
b246OlZhbHVlKEpzb246OlVJbnQ2NCgxKSA8PCA0MCk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNr
KCk7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRy
dWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9
IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRf
UFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0ludDY0KCkpOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdl
c3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQw
KSwgdmFsLmFzVUludDY0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2
NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNGbG9hdCgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX1NUUklOR19FUVVBTCgiMTA5OTUxMTYyNzc3NiIsIHZhbC5hc1N0cmluZygpKTsKLQot
ICAgLy8gMl40MCAoZmxvYXRpbmctcG9pbnQgY29uc3RydWN0b3IgYXJnKQotICAgdmFsID0gSnNv
bjo6VmFsdWUoKEpzb246OkludDY0KDEpIDw8IDQwKSAvIDEuMCk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJ
c0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0
XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91
YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9B
U1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NF
UlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0ludDY0KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5h
c0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEp
IDw8IDQwKSwgdmFsLmFzVUludDY0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29u
OjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNGbG9hdCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTA5OTUxMTYyNzc3Ni4wIiwgbm9ybWFsaXplRmxv
YXRpbmdQb2ludFN0cih2YWwuYXNTdHJpbmcoKSkpOwotCi0gICAvLyAtMl40MAotICAgdmFsID0g
SnNvbjo6VmFsdWUoLShKc29uOjpJbnQ2NCgxKSA8PCA0MCkpOwotCi0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0No
ZWNrKCk7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxf
ID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJp
Y18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tz
ICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51
bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKEpzb246OkludDY0
KDEpIDw8IDQwKSwgdmFsLmFzSW50NjQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLShK
c29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0RvdWJsZSgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRmxv
YXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIi0xMDk5NTExNjI3Nzc2IiwgdmFsLmFzU3Ry
aW5nKCkpOwotCi0gICAvLyBpbnQ2NCBtYXgKLSAgIHZhbCA9IEpzb246OlZhbHVlKEpzb246Oklu
dDY0KGtpbnQ2NG1heCkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFs
dWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJ
bnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJ
bnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3Mu
aXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFs
LCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2
NG1heCwgdmFsLmFzSW50NjQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWF4
LCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1h
eCwgdmFsLmFzVUludDY0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1heCwg
dmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZG91YmxlKGtp
bnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9h
dChraW50NjRtYXgpLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0
cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiOTIy
MzM3MjAzNjg1NDc3NTgwNyIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gaW50NjQgbWF4IChm
bG9hdGluZyBwb2ludCBjb25zdHJ1Y3RvcikuIE5vdGUgdGhhdCBraW50NjRtYXggaXMgbm90IGV4
YWN0bHkKLSAgIC8vIHJlcHJlc2VudGFibGUgYXMgYSBkb3VibGUsIGFuZCB3aWxsIGJlIHJvdW5k
ZWQgdXAgdG8gYmUgaGlnaGVyLgotICAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGtpbnQ2NG1h
eCkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlw
ZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRy
dWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9
IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRf
UFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKEpzb246OlVJbnQ2NCgxKSA8PCA2MywgdmFsLmFzVUludDY0KCkpOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlVJbnQ2NCgxKSA8PCA2MywgdmFsLmFzTGFyZ2Vz
dFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodWludDY0VG9Eb3VibGUoSnNvbjo6
VUludDY0KDEpIDw8IDYzKSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGZsb2F0KHVpbnQ2NFRvRG91YmxlKEpzb246OlVJbnQ2NCgxKSA8PCA2MykpLCB2YWwuYXNG
bG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiOS4yMjMzNzIwMzY4NTQ3NzZlKzE4Iiwg
bm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cih2YWwuYXNTdHJpbmcoKSkpOwotCi0gICAvLyBpbnQ2
NCBtaW4KLSAgIHZhbCA9IEpzb246OlZhbHVlKEpzb246OkludDY0KGtpbnQ2NG1pbikpOwotCi0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0g
ICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hl
Y2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAg
Y2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNr
SXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChraW50NjRtaW4sIHZhbC5hc0ludDY0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtp
bnQ2NG1pbiwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChk
b3VibGUoa2ludDY0bWluKSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGZsb2F0KGtpbnQ2NG1pbiksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VR
VUFMKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gaW50
NjQgbWluIChmbG9hdGluZyBwb2ludCBjb25zdHJ1Y3RvcikuIE5vdGUgdGhhdCBraW50NjRtaW4g
KmlzKiBleGFjdGx5Ci0gICAvLyByZXByZXNlbnRhYmxlIGFzIGEgZG91YmxlLgotICAgdmFsID0g
SnNvbjo6VmFsdWUoZG91YmxlKGtpbnQ2NG1pbikpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygp
OwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRy
dWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0g
dHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7
Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFs
dWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWluLCB2YWwuYXNJ
bnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtaW4sIHZhbC5hc0xhcmdl
c3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTkyMjMzNzIwMzY4NTQ3NzU4MDgu
MCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC05MjIzMzcyMDM2
ODU0Nzc1ODA4LjAsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRy
dWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItOS4y
MjMzNzIwMzY4NTQ3NzZlKzE4Iiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cih2YWwuYXNTdHJp
bmcoKSkpOwotCi0gICAvLyB1aW50NjQgbWF4Ci0gICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpV
SW50NjQoa3VpbnQ2NG1heCkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6dWlu
dFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tz
LmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hl
Y2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAg
IEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsK
LQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50NjRtYXgsIHZhbC5hc1VJbnQ2NCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChrdWludDY0bWF4LCB2YWwuYXNMYXJnZXN0VUludCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh1aW50NjRUb0RvdWJsZShrdWludDY0bWF4KSwg
dmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KHVpbnQ2NFRv
RG91YmxlKGt1aW50NjRtYXgpKSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoIjE4NDQ2NzQ0MDczNzA5NTUxNjE1IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyB1aW50
NjQgbWF4IChmbG9hdGluZyBwb2ludCBjb25zdHJ1Y3RvcikuIE5vdGUgdGhhdCBrdWludDY0bWF4
IGlzIG5vdAotICAgLy8gZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEgZG91YmxlLCBhbmQgd2ls
bCBiZSByb3VuZGVkIHVwIHRvIGJlIGhpZ2hlci4KLSAgIHZhbCA9IEpzb246OlZhbHVlKHVpbnQ2
NFRvRG91YmxlKGt1aW50NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNo
ZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAg
SlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNP
TlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAg
SlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7
Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxODQ0Njc0NDA3MzcwOTU1MTYxNi4wLCB2YWwu
YXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMTg0NDY3NDQwNzM3MDk1NTE2
MTYuMCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFs
LmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEuODQ0Njc0NDA3
MzcwOTU1ZSsxOSIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsK
ICNlbmRpZgogfQogCitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgb2Zmc2V0QWNjZXNzb3Jz
KSB7CisgIEpzb246OlZhbHVlIHg7CisgIEpTT05URVNUX0FTU0VSVCh4LmdldE9mZnNldFN0YXJ0
KCkgPT0gMCk7CisgIEpTT05URVNUX0FTU0VSVCh4LmdldE9mZnNldExpbWl0KCkgPT0gMCk7Cisg
IHguc2V0T2Zmc2V0U3RhcnQoMTApOworICB4LnNldE9mZnNldExpbWl0KDIwKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKHguZ2V0T2Zmc2V0U3RhcnQoKSA9PSAxMCk7CisgIEpTT05URVNUX0FTU0VSVCh4
LmdldE9mZnNldExpbWl0KCkgPT0gMjApOworICBKc29uOjpWYWx1ZSB5KHgpOworICBKU09OVEVT
VF9BU1NFUlQoeS5nZXRPZmZzZXRTdGFydCgpID09IDEwKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHku
Z2V0T2Zmc2V0TGltaXQoKSA9PSAyMCk7CisgIEpzb246OlZhbHVlIHo7CisgIHouc3dhcCh5KTsK
KyAgSlNPTlRFU1RfQVNTRVJUKHouZ2V0T2Zmc2V0U3RhcnQoKSA9PSAxMCk7CisgIEpTT05URVNU
X0FTU0VSVCh6LmdldE9mZnNldExpbWl0KCkgPT0gMjApOworICBKU09OVEVTVF9BU1NFUlQoeS5n
ZXRPZmZzZXRTdGFydCgpID09IDApOworICBKU09OVEVTVF9BU1NFUlQoeS5nZXRPZmZzZXRMaW1p
dCgpID09IDApOworfQogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIG5vbkludGVnZXJz
ICkKLXsKLSAgIElzQ2hlY2sgY2hlY2tzOwotICAgSnNvbjo6VmFsdWUgdmFsOwotCi0gICAvLyBT
bWFsbCBwb3NpdGl2ZSBudW1iZXIKLSAgIHZhbCA9IEpzb246OlZhbHVlKDEuNSk7Ci0KLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBj
aGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2
YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVU
byhKc29uOjp1aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotCi0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMS41LCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMS41LCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB2
YWwuYXNJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzTGFyZ2VzdElu
dCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB2YWwuYXNVSW50KCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDEsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoIjEuNTAiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIFNtYWxsIG5lZ2F0aXZlIG51bWJl
cgotICAgdmFsID0gSnNvbjo6VmFsdWUoLTEuNSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7
Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1
ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5W
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3Ry
aW5nVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjp1aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVU
byhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0x
LjUsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMS41LCB2YWwu
YXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMSwgdmFsLmFzSW50KCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0xLCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoIi0xLjUwIiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyBBIGJpdCBvdmVyIGlu
dDMyIG1heAotICAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMybWF4ICsgMC41KTsKLQotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNo
ZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tz
LmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZh
bCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVU
byhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotCi0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMjE0NzQ4MzY0Ny41LCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoZmxvYXQoMjE0NzQ4MzY0Ny41KSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMjE0NzQ4MzY0N1UsIHZhbC5hc1VJbnQoKSk7Ci0jaWZkZWYg
SlNPTl9IQVNfSU5UNjQKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgyMTQ3NDgzNjQ3TCwgdmFs
LmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgyMTQ3NDgzNjQ3VSwg
dmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0jZW5kaWYKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0
cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCIyMTQ3NDgzNjQ3
LjUwIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cih2YWwuYXNTdHJpbmcoKSkpOwotCi0gICAv
LyBBIGJpdCB1bmRlciBpbnQzMiBtaW4KLSAgIHZhbCA9IEpzb246OlZhbHVlKGtpbnQzMm1pbiAt
IDAuNSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50
eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVl
KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMjE0NzQ4MzY0OC41LCB2YWwuYXNEb3Vi
bGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoLTIxNDc0ODM2NDguNSksIHZh
bC5hc0Zsb2F0KCkpOwotI2lmZGVmIEpTT05fSEFTX0lOVDY0Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoLUpzb246OkludDY0KDEpPDwgMzEsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0jZW5kaWYK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKCItMjE0NzQ4MzY0OC41MCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRT
dHIodmFsLmFzU3RyaW5nKCkpKTsKLQotICAgLy8gQSBiaXQgb3ZlciB1aW50MzIgbWF4Ci0gICB2
YWwgPSBKc29uOjpWYWx1ZShrdWludDMybWF4ICsgMC41KTsKLQotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hl
Y2soKTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18g
PSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkg
KTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZh
bHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpib29s
ZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OnN0cmluZ1ZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKDQyOTQ5NjcyOTUuNSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGZsb2F0KDQyOTQ5NjcyOTUuNSksIHZhbC5hc0Zsb2F0KCkpOwotI2lmZGVmIEpTT05fSEFT
X0lOVDY0Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDMyKS0x
LCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpV
SW50NjQoMSkgPDwgMzIpLUpzb246OlVJbnQ2NCgxKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0j
ZW5kaWYKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKCI0Mjk0OTY3Mjk1LjUwIiwgbm9ybWFsaXplRmxvYXRpbmdQ
b2ludFN0cih2YWwuYXNTdHJpbmcoKSkpOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIFN0
YXRpY1N0cmluZykgeworICBjaGFyIG11dGFudFtdID0gImhlbGxvIjsKKyAgSnNvbjo6U3RhdGlj
U3RyaW5nIHNzKG11dGFudCk7CisgIEpzb246OlN0cmluZyByZWd1bGFyKG11dGFudCk7CisgIG11
dGFudFsxXSA9ICdhJzsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiaGFsbG8iLCBz
cy5jX3N0cigpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiaGVsbG8iLCByZWd1
bGFyLmNfc3RyKCkpOworICB7CisgICAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgICByb290WyJ0b3Ai
XSA9IHNzOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImhhbGxvIiwgcm9vdFsi
dG9wIl0uYXNTdHJpbmcoKSk7CisgICAgbXV0YW50WzFdID0gJ3UnOworICAgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoImh1bGxvIiwgcm9vdFsidG9wIl0uYXNTdHJpbmcoKSk7CisgIH0K
KyAgeworICAgIEpzb246OlZhbHVlIHJvb3Q7CisgICAgcm9vdFsidG9wIl0gPSByZWd1bGFyOwor
ICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImhlbGxvIiwgcm9vdFsidG9wIl0uYXNT
dHJpbmcoKSk7CisgICAgbXV0YW50WzFdID0gJ3UnOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoImhlbGxvIiwgcm9vdFsidG9wIl0uYXNTdHJpbmcoKSk7CisgIH0KK30KIAotICAg
dmFsID0gSnNvbjo6VmFsdWUoMS4yMzQ1Njc4OTAxMjM0KTsKLSAgIEpTT05URVNUX0FTU0VSVF9T
VFJJTkdfRVFVQUwoICIxLjIzNDU2Nzg5MDEyMzQwIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0
cih2YWwuYXNTdHJpbmcoKSkpOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIFdpZGVTdHJp
bmcpIHsKKyAgLy8gaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNw
cC9pc3N1ZXMvNzU2CisgIGNvbnN0IHN0ZDo6c3RyaW5nIHVuaSA9IHU4IuW8j++8jOi/myI7IC8v
ICJcdTVmMGZcdWZmMGNcdThmZGIiCisgIHN0ZDo6c3RyaW5nIHN0eWxlZDsKKyAgeworICAgIEpz
b246OlZhbHVlIHY7CisgICAgdlsiYWJjIl0gPSB1bmk7CisgICAgc3R5bGVkID0gdi50b1N0eWxl
ZFN0cmluZygpOworICB9CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIHsKKyAgICBKU09OQ1BQX1NU
UklORyBlcnJzOworICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpc3Moc3R5bGVkKTsKKyAgICBib29s
IG9rID0gcGFyc2VGcm9tU3RyZWFtKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyKCksIGlzcywgJnJv
b3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIGlmICghb2spIHsKKyAg
ICAgIHN0ZDo6Y2VyciA8PCAiZXJyczogIiA8PCBlcnJzIDw8IHN0ZDo6ZW5kbDsKKyAgICB9Cisg
IH0KKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChyb290WyJhYmMiXS5hc1N0cmluZygp
LCB1bmkpOwogfQogCitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgQ29tbWVudEJlZm9yZSkg
eworICBKc29uOjpWYWx1ZSB2YWw7IC8vIGZpbGwgdmFsCisgIHZhbC5zZXRDb21tZW50KEpzb246
OlN0cmluZygiLy8gdGhpcyBjb21tZW50IHNob3VsZCBhcHBlYXIgYmVmb3JlIiksCisgICAgICAg
ICAgICAgICAgIEpzb246OmNvbW1lbnRCZWZvcmUpOworICBKc29uOjpTdHJlYW1Xcml0ZXJCdWls
ZGVyIHdidWlsZGVyOworICB3YnVpbGRlci5zZXR0aW5nc19bImNvbW1lbnRTdHlsZSJdID0gIkFs
bCI7CisgIHsKKyAgICBjaGFyIGNvbnN0IGV4cGVjdGVkW10gPSAiLy8gdGhpcyBjb21tZW50IHNo
b3VsZCBhcHBlYXIgYmVmb3JlXG5udWxsIjsKKyAgICBKc29uOjpTdHJpbmcgcmVzdWx0ID0gSnNv
bjo6d3JpdGVTdHJpbmcod2J1aWxkZXIsIHZhbCk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTChleHBlY3RlZCwgcmVzdWx0KTsKKyAgICBKc29uOjpTdHJpbmcgcmVzMiA9IHZhbC50
b1N0eWxlZFN0cmluZygpOworICAgIEpzb246OlN0cmluZyBleHAyID0gIlxuIjsKKyAgICBleHAy
ICs9IGV4cGVjdGVkOworICAgIGV4cDIgKz0gIlxuIjsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKGV4cDIsIHJlczIpOworICB9CisgIEpzb246OlZhbHVlIG90aGVyID0gImhlbGxv
IjsKKyAgdmFsLnN3YXBQYXlsb2FkKG90aGVyKTsKKyAgeworICAgIGNoYXIgY29uc3QgZXhwZWN0
ZWRbXSA9ICIvLyB0aGlzIGNvbW1lbnQgc2hvdWxkIGFwcGVhciBiZWZvcmVcblwiaGVsbG9cIiI7
CisgICAgSnNvbjo6U3RyaW5nIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKHdidWlsZGVyLCB2
YWwpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7
CisgICAgSnNvbjo6U3RyaW5nIHJlczIgPSB2YWwudG9TdHlsZWRTdHJpbmcoKTsKKyAgICBKc29u
OjpTdHJpbmcgZXhwMiA9ICJcbiI7CisgICAgZXhwMiArPSBleHBlY3RlZDsKKyAgICBleHAyICs9
ICJcbiI7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHAyLCByZXMyKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJudWxsXG4iLCBvdGhlci50b1N0eWxlZFN0
cmluZygpKTsKKyAgfQorICB2YWwgPSAiaGVsbG8iOworICAvLyB2YWwuc2V0Q29tbWVudCgiLy8g
dGhpcyBjb21tZW50IHNob3VsZCBhcHBlYXIgYmVmb3JlIiwKKyAgLy8gSnNvbjo6Q29tbWVudFBs
YWNlbWVudDo6Y29tbWVudEJlZm9yZSk7IEFzc2lnbm1lbnQgb3Zlci13cml0ZXMgY29tbWVudHMu
CisgIHsKKyAgICBjaGFyIGNvbnN0IGV4cGVjdGVkW10gPSAiXCJoZWxsb1wiIjsKKyAgICBKc29u
OjpTdHJpbmcgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcod2J1aWxkZXIsIHZhbCk7CisgICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgcmVzdWx0KTsKKyAgICBKc29u
OjpTdHJpbmcgcmVzMiA9IHZhbC50b1N0eWxlZFN0cmluZygpOworICAgIEpzb246OlN0cmluZyBl
eHAyID0gIiI7CisgICAgZXhwMiArPSBleHBlY3RlZDsKKyAgICBleHAyICs9ICJcbiI7CisgICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHAyLCByZXMyKTsKKyAgfQorfQorCitKU09O
VEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgemVyb2VzKSB7CisgIGNoYXIgY29uc3QgY3N0cltdID0g
ImhcMGkiOworICBKc29uOjpTdHJpbmcgYmluYXJ5KGNzdHIsIHNpemVvZihjc3RyKSk7IC8vIGlu
Y2x1ZGUgdHJhaWxpbmcgMAorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoNFUsIGJpbmFyeS5sZW5n
dGgoKSk7CisgIEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXIgYjsKKyAgeworICAgIEpzb246OlZh
bHVlIHJvb3Q7CisgICAgcm9vdCA9IGJpbmFyeTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKGJpbmFyeSwgcm9vdC5hc1N0cmluZygpKTsKKyAgfQorICB7CisgICAgY2hhciBjb25z
dCB0b3BbXSA9ICJ0b3AiOworICAgIEpzb246OlZhbHVlIHJvb3Q7CisgICAgcm9vdFt0b3BdID0g
YmluYXJ5OworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoYmluYXJ5LCByb290W3Rv
cF0uYXNTdHJpbmcoKSk7CisgICAgSnNvbjo6VmFsdWUgcmVtb3ZlZDsKKyAgICBib29sIGRpZDsK
KyAgICBkaWQgPSByb290LnJlbW92ZU1lbWJlcih0b3AsIHRvcCArIHNpemVvZih0b3ApIC0gMVUs
ICZyZW1vdmVkKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoZGlkKTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKGJpbmFyeSwgcmVtb3ZlZC5hc1N0cmluZygpKTsKKyAgICBkaWQgPSBy
b290LnJlbW92ZU1lbWJlcih0b3AsIHRvcCArIHNpemVvZih0b3ApIC0gMVUsICZyZW1vdmVkKTsK
KyAgICBKU09OVEVTVF9BU1NFUlQoIWRpZCk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19F
UVVBTChiaW5hcnksIHJlbW92ZWQuYXNTdHJpbmcoKSk7IC8vIHN0aWxsCisgIH0KK30KIAotdm9p
ZAotVmFsdWVUZXN0OjpjaGVja0NvbnN0TWVtYmVyQ291bnQoIGNvbnN0IEpzb246OlZhbHVlICZ2
YWx1ZSwgdW5zaWduZWQgaW50IGV4cGVjdGVkQ291bnQgKQotewotICAgdW5zaWduZWQgaW50IGNv
dW50ID0gMDsKLSAgIEpzb246OlZhbHVlOjpjb25zdF9pdGVyYXRvciBpdEVuZCA9IHZhbHVlLmVu
ZCgpOwotICAgZm9yICggSnNvbjo6VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWUuYmVn
aW4oKTsgaXQgIT0gaXRFbmQ7ICsraXQgKQotICAgewotICAgICAgKytjb3VudDsKLSAgIH0KLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCggZXhwZWN0ZWRDb3VudCwgY291bnQgKSA8PCAiSnNvbjo6
VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIjsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCB6ZXJv
ZXNJbktleXMpIHsKKyAgY2hhciBjb25zdCBjc3RyW10gPSAiaFwwaSI7CisgIEpzb246OlN0cmlu
ZyBiaW5hcnkoY3N0ciwgc2l6ZW9mKGNzdHIpKTsgLy8gaW5jbHVkZSB0cmFpbGluZyAwCisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCg0VSwgYmluYXJ5Lmxlbmd0aCgpKTsKKyAgeworICAgIEpzb246
OlZhbHVlIHJvb3Q7CisgICAgcm9vdFtiaW5hcnldID0gInRoZXJlIjsKKyAgICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCJ0aGVyZSIsIHJvb3RbYmluYXJ5XS5hc1N0cmluZygpKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlQoIXJvb3QuaXNNZW1iZXIoImgiKSk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKHJvb3QuaXNNZW1iZXIoYmluYXJ5KSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19F
UVVBTCgKKyAgICAgICAgInRoZXJlIiwgcm9vdC5nZXQoYmluYXJ5LCBKc29uOjpWYWx1ZTo6bnVs
bFJlZikuYXNTdHJpbmcoKSk7CisgICAgSnNvbjo6VmFsdWUgcmVtb3ZlZDsKKyAgICBib29sIGRp
ZDsKKyAgICBkaWQgPSByb290LnJlbW92ZU1lbWJlcihiaW5hcnkuZGF0YSgpLCBiaW5hcnkuZGF0
YSgpICsgYmluYXJ5Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZW1v
dmVkKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoZGlkKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKCJ0aGVyZSIsIHJlbW92ZWQuYXNTdHJpbmcoKSk7CisgICAgZGlkID0gcm9vdC5y
ZW1vdmVNZW1iZXIoYmluYXJ5LmRhdGEoKSwgYmluYXJ5LmRhdGEoKSArIGJpbmFyeS5sZW5ndGgo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVtb3ZlZCk7CisgICAgSlNPTlRFU1Rf
QVNTRVJUKCFkaWQpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoInRoZXJlIiwg
cmVtb3ZlZC5hc1N0cmluZygpKTsgLy8gc3RpbGwKKyAgICBKU09OVEVTVF9BU1NFUlQoIXJvb3Qu
aXNNZW1iZXIoYmluYXJ5KSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAg
ICAgICAgIiIsIHJvb3QuZ2V0KGJpbmFyeSwgSnNvbjo6VmFsdWU6Om51bGxSZWYpLmFzU3RyaW5n
KCkpOworICB9CiB9CiAKLXZvaWQKLVZhbHVlVGVzdDo6Y2hlY2tNZW1iZXJDb3VudCggSnNvbjo6
VmFsdWUgJnZhbHVlLCB1bnNpZ25lZCBpbnQgZXhwZWN0ZWRDb3VudCApCi17Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoZXhwZWN0ZWRDb3VudCwgdmFsdWUuc2l6ZSgpICk7CitKU09OVEVTVF9G
SVhUVVJFKFZhbHVlVGVzdCwgc3BlY2lhbEZsb2F0cykgeworICBKc29uOjpTdHJlYW1Xcml0ZXJC
dWlsZGVyIGI7CisgIGIuc2V0dGluZ3NfWyJ1c2VTcGVjaWFsRmxvYXRzIl0gPSB0cnVlOwogCi0g
ICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOwotICAgSnNvbjo6VmFsdWU6Oml0ZXJhdG9yIGl0RW5k
ID0gdmFsdWUuZW5kKCk7Ci0gICBmb3IgKCBKc29uOjpWYWx1ZTo6aXRlcmF0b3IgaXQgPSB2YWx1
ZS5iZWdpbigpOyBpdCAhPSBpdEVuZDsgKytpdCApCi0gICB7Ci0gICAgICArK2NvdW50OwotICAg
fQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCBleHBlY3RlZENvdW50LCBjb3VudCApIDw8ICJK
c29uOjpWYWx1ZTo6aXRlcmF0b3IiOworICBKc29uOjpWYWx1ZSB2ID0gc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgSnNvbjo6U3RyaW5nIGV4cGVjdGVkID0gIk5h
TiI7CisgIEpzb246OlN0cmluZyByZXN1bHQgPSBKc29uOjp3cml0ZVN0cmluZyhiLCB2KTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgcmVzdWx0KTsKIAotICAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrQ29uc3RNZW1iZXJDb3VudCh2YWx1ZSwgZXhwZWN0ZWRD
b3VudCkgKTsKKyAgdiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsK
KyAgZXhwZWN0ZWQgPSAiSW5maW5pdHkiOworICByZXN1bHQgPSBKc29uOjp3cml0ZVN0cmluZyhi
LCB2KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgcmVzdWx0KTsK
KworICB2ID0gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKKyAgZXhw
ZWN0ZWQgPSAiLUluZmluaXR5IjsKKyAgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7
CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CiB9CiAK
K0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBwcmVjaXNpb24pIHsKKyAgSnNvbjo6U3RyZWFt
V3JpdGVyQnVpbGRlciBiOworICBiLnNldHRpbmdzX1sicHJlY2lzaW9uIl0gPSA1OworCisgIEpz
b246OlZhbHVlIHYgPSAxMDAuMCAvIDM7CisgIEpzb246OlN0cmluZyBleHBlY3RlZCA9ICIzMy4z
MzMiOworICBKc29uOjpTdHJpbmcgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7Cisg
IEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisKKyAgdiA9
IDAuMjUwMDAwMDA7CisgIGV4cGVjdGVkID0gIjAuMjUiOworICByZXN1bHQgPSBKc29uOjp3cml0
ZVN0cmluZyhiLCB2KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwg
cmVzdWx0KTsKKworICB2ID0gMC4yNTYzNDU2OworICBleHBlY3RlZCA9ICIwLjI1NjM1IjsKKyAg
cmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisKKyAgYi5zZXR0aW5nc19bInByZWNpc2lvbiJd
ID0gMTsKKyAgZXhwZWN0ZWQgPSAiMC4zIjsKKyAgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmco
Yiwgdik7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7
CisKKyAgYi5zZXR0aW5nc19bInByZWNpc2lvbiJdID0gMTc7CisgIHYgPSAxMjM0ODU3NDc2MzA1
LjI1NjM0NTY5NDg3Mzc0MDU0NTA2ODsKKyAgZXhwZWN0ZWQgPSAiMTIzNDg1NzQ3NjMwNS4yNTYz
IjsKKyAgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7CisgIEpTT05URVNUX0FTU0VS
VF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisKKyAgYi5zZXR0aW5nc19bInByZWNp
c2lvbiJdID0gMjQ7CisgIHYgPSAwLjI1NjM0NTY5NDg3Mzc0MDU0NTA2ODsKKyAgZXhwZWN0ZWQg
PSAiMC4yNTYzNDU2OTQ4NzM3NDA1NCI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIs
IHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOwor
CisgIGIuc2V0dGluZ3NfWyJwcmVjaXNpb24iXSA9IDU7CisgIGIuc2V0dGluZ3NfWyJwcmVjaXNp
b25UeXBlIl0gPSAiZGVjaW1hbCI7CisgIHYgPSAwLjI1NjM0NTY5NDg3Mzc0MDU0NTA2ODsKKyAg
ZXhwZWN0ZWQgPSAiMC4yNTYzNSI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYp
OworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworCisg
IGIuc2V0dGluZ3NfWyJwcmVjaXNpb24iXSA9IDE7CisgIGIuc2V0dGluZ3NfWyJwcmVjaXNpb25U
eXBlIl0gPSAiZGVjaW1hbCI7CisgIHYgPSAwLjI1NjM0NTY5NDg3Mzc0MDU0NTA2ODsKKyAgZXhw
ZWN0ZWQgPSAiMC4zIjsKKyAgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7CisgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisKKyAgYi5zZXR0
aW5nc19bInByZWNpc2lvbiJdID0gMTA7CisgIGIuc2V0dGluZ3NfWyJwcmVjaXNpb25UeXBlIl0g
PSAiZGVjaW1hbCI7CisgIHYgPSAwLjIzMzAwMDAwOworICBleHBlY3RlZCA9ICIwLjIzMyI7Cisg
IHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworfQogCi1WYWx1ZVRlc3Q6OklzQ2hlY2s6Oklz
Q2hlY2soKQotICAgOiBpc09iamVjdF8oIGZhbHNlICkKLSAgICwgaXNBcnJheV8oIGZhbHNlICkK
LSAgICwgaXNCb29sXyggZmFsc2UgKQotICAgLCBpc1N0cmluZ18oIGZhbHNlICkKLSAgICwgaXNO
dWxsXyggZmFsc2UgKQotICAgLCBpc0ludF8oIGZhbHNlICkKLSAgICwgaXNJbnQ2NF8oIGZhbHNl
ICkKLSAgICwgaXNVSW50XyggZmFsc2UgKQotICAgLCBpc1VJbnQ2NF8oIGZhbHNlICkKLSAgICwg
aXNJbnRlZ3JhbF8oIGZhbHNlICkKLSAgICwgaXNEb3VibGVfKCBmYWxzZSApCi0gICAsIGlzTnVt
ZXJpY18oIGZhbHNlICkKLXsKLX0KLQotCi12b2lkIAotVmFsdWVUZXN0OjpjaGVja0lzKCBjb25z
dCBKc29uOjpWYWx1ZSAmdmFsdWUsIGNvbnN0IElzQ2hlY2sgJmNoZWNrICkKLXsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc09iamVjdF8sIHZhbHVlLmlzT2JqZWN0KCkgKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc0FycmF5XywgdmFsdWUuaXNBcnJheSgpICk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNCb29sXywgdmFsdWUuaXNCb29sKCkg
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc0RvdWJsZV8sIHZhbHVlLmlzRG91
YmxlKCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc0ludF8sIHZhbHVlLmlz
SW50KCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc1VJbnRfLCB2YWx1ZS5p
c1VJbnQoKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzSW50ZWdyYWxfLCB2
YWx1ZS5pc0ludGVncmFsKCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc051
bWVyaWNfLCB2YWx1ZS5pc051bWVyaWMoKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNo
ZWNrLmlzU3RyaW5nXywgdmFsdWUuaXNTdHJpbmcoKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGNoZWNrLmlzTnVsbF8sIHZhbHVlLmlzTnVsbCgpICk7CitzdHJ1Y3QgV3JpdGVyVGVzdCA6
IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKIAotI2lmZGVmIEpTT05fSEFTX0lOVDY0Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNJbnQ2NF8sIHZhbHVlLmlzSW50NjQoKSApOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzVUludDY0XywgdmFsdWUuaXNVSW50NjQoKSAp
OwotI2Vsc2UKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsdWUuaXNJbnQ2NCgp
ICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbHVlLmlzVUludDY0KCkgKTsK
LSNlbmRpZgorSlNPTlRFU1RfRklYVFVSRShXcml0ZXJUZXN0LCBkcm9wTnVsbFBsYWNlaG9sZGVy
cykgeworICBKc29uOjpGYXN0V3JpdGVyIHdyaXRlcjsKKyAgSnNvbjo6VmFsdWUgbnVsbFZhbHVl
OworICBKU09OVEVTVF9BU1NFUlQod3JpdGVyLndyaXRlKG51bGxWYWx1ZSkgPT0gIm51bGxcbiIp
OworCisgIHdyaXRlci5kcm9wTnVsbFBsYWNlaG9sZGVycygpOworICBKU09OVEVTVF9BU1NFUlQo
d3JpdGVyLndyaXRlKG51bGxWYWx1ZSkgPT0gIlxuIik7Cit9CisKK3N0cnVjdCBTdHJlYW1Xcml0
ZXJUZXN0IDogSnNvblRlc3Q6OlRlc3RDYXNlIHt9OworCitKU09OVEVTVF9GSVhUVVJFKFN0cmVh
bVdyaXRlclRlc3QsIGRyb3BOdWxsUGxhY2Vob2xkZXJzKSB7CisgIEpzb246OlN0cmVhbVdyaXRl
ckJ1aWxkZXIgYjsKKyAgSnNvbjo6VmFsdWUgbnVsbFZhbHVlOworICBiLnNldHRpbmdzX1siZHJv
cE51bGxQbGFjZWhvbGRlcnMiXSA9IGZhbHNlOworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6d3Jp
dGVTdHJpbmcoYiwgbnVsbFZhbHVlKSA9PSAibnVsbCIpOworICBiLnNldHRpbmdzX1siZHJvcE51
bGxQbGFjZWhvbGRlcnMiXSA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVChKc29uOjp3cml0ZVN0
cmluZyhiLCBudWxsVmFsdWUpLmVtcHR5KCkpOworfQorCitKU09OVEVTVF9GSVhUVVJFKFN0cmVh
bVdyaXRlclRlc3QsIHdyaXRlWmVyb2VzKSB7CisgIEpzb246OlN0cmluZyBiaW5hcnkoImhpIiwg
Myk7IC8vIGluY2x1ZGUgdHJhaWxpbmcgMAorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMywgYmlu
YXJ5Lmxlbmd0aCgpKTsKKyAgSnNvbjo6U3RyaW5nIGV4cGVjdGVkKCJcImhpXFx1MDAwMFwiIik7
IC8vIHVuaWNvZGVkIHplcm8KKyAgSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlciBiOworICB7Cisg
ICAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgICByb290ID0gYmluYXJ5OworICAgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoYmluYXJ5LCByb290LmFzU3RyaW5nKCkpOworICAgIEpzb246OlN0
cmluZyBvdXQgPSBKc29uOjp3cml0ZVN0cmluZyhiLCByb290KTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoZXhwZWN0ZWQuc2l6ZSgpLCBvdXQuc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCBvdXQpOworICB9CisgIHsKKyAgICBKc29uOjpWYWx1
ZSByb290OworICAgIHJvb3RbInRvcCJdID0gYmluYXJ5OworICAgIEpTT05URVNUX0FTU0VSVF9T
VFJJTkdfRVFVQUwoYmluYXJ5LCByb290WyJ0b3AiXS5hc1N0cmluZygpKTsKKyAgICBKc29uOjpT
dHJpbmcgb3V0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgcm9vdFsidG9wIl0pOworICAgIEpTT05U
RVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIG91dCk7CisgIH0KIH0KIAotSlNPTlRF
U1RfRklYVFVSRSggVmFsdWVUZXN0LCBjb21wYXJlTnVsbCApCi17Ci0gICAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggSnNvbjo6VmFsdWUoKSwgSnNvbjo6VmFsdWUoKSApICk7
CitzdHJ1Y3QgUmVhZGVyVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1Rf
RklYVFVSRShSZWFkZXJUZXN0LCBwYXJzZVdpdGhOb0Vycm9ycykgeworICBKc29uOjpSZWFkZXIg
cmVhZGVyOworICBKc29uOjpWYWx1ZSByb290OworICBib29sIG9rID0gcmVhZGVyLnBhcnNlKCJ7
IFwicHJvcGVydHlcIiA6IFwidmFsdWVcIiB9Iiwgcm9vdCk7CisgIEpTT05URVNUX0FTU0VSVChv
ayk7CisgIEpTT05URVNUX0FTU0VSVChyZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygp
LmVtcHR5KCkpOworICBKU09OVEVTVF9BU1NFUlQocmVhZGVyLmdldFN0cnVjdHVyZWRFcnJvcnMo
KS5lbXB0eSgpKTsKIH0KIAotCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIGNvbXBhcmVJ
bnQgKQotewotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggMCwgMTAgKSAp
OwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIDEwLCAxMCApICk7Ci0g
ICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggLTEwLCAtMTAgKSApOwotICAg
IEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggLTEwLCAwICkgKTsKK0pTT05URVNU
X0ZJWFRVUkUoUmVhZGVyVGVzdCwgcGFyc2VXaXRoTm9FcnJvcnNUZXN0aW5nT2Zmc2V0cykgewor
ICBKc29uOjpSZWFkZXIgcmVhZGVyOworICBKc29uOjpWYWx1ZSByb290OworICBib29sIG9rID0g
cmVhZGVyLnBhcnNlKCJ7IFwicHJvcGVydHlcIiA6IFtcInZhbHVlXCIsIFwidmFsdWUyXCJdLCBc
Im9ialwiIDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICJ7IFwibmVzdGVkXCIgOiAxMjMs
IFwiYm9vbFwiIDogdHJ1ZX0sIFwibnVsbFwiIDogIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICJudWxsLCBcImZhbHNlXCIgOiBmYWxzZSB9IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBy
b290KTsKKyAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJlYWRlci5n
ZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkuZW1wdHkoKSk7CisgIEpTT05URVNUX0FTU0VSVChy
ZWFkZXIuZ2V0U3RydWN0dXJlZEVycm9ycygpLmVtcHR5KCkpOworICBKU09OVEVTVF9BU1NFUlQo
cm9vdFsicHJvcGVydHkiXS5nZXRPZmZzZXRTdGFydCgpID09IDE1KTsKKyAgSlNPTlRFU1RfQVNT
RVJUKHJvb3RbInByb3BlcnR5Il0uZ2V0T2Zmc2V0TGltaXQoKSA9PSAzNCk7CisgIEpTT05URVNU
X0FTU0VSVChyb290WyJwcm9wZXJ0eSJdWzBdLmdldE9mZnNldFN0YXJ0KCkgPT0gMTYpOworICBK
U09OVEVTVF9BU1NFUlQocm9vdFsicHJvcGVydHkiXVswXS5nZXRPZmZzZXRMaW1pdCgpID09IDIz
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbInByb3BlcnR5Il1bMV0uZ2V0T2Zmc2V0U3RhcnQo
KSA9PSAyNSk7CisgIEpTT05URVNUX0FTU0VSVChyb290WyJwcm9wZXJ0eSJdWzFdLmdldE9mZnNl
dExpbWl0KCkgPT0gMzMpOworICBKU09OVEVTVF9BU1NFUlQocm9vdFsib2JqIl0uZ2V0T2Zmc2V0
U3RhcnQoKSA9PSA0NCk7CisgIEpTT05URVNUX0FTU0VSVChyb290WyJvYmoiXS5nZXRPZmZzZXRM
aW1pdCgpID09IDc2KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbIm9iaiJdWyJuZXN0ZWQiXS5n
ZXRPZmZzZXRTdGFydCgpID09IDU3KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbIm9iaiJdWyJu
ZXN0ZWQiXS5nZXRPZmZzZXRMaW1pdCgpID09IDYwKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3Rb
Im9iaiJdWyJib29sIl0uZ2V0T2Zmc2V0U3RhcnQoKSA9PSA3MSk7CisgIEpTT05URVNUX0FTU0VS
VChyb290WyJvYmoiXVsiYm9vbCJdLmdldE9mZnNldExpbWl0KCkgPT0gNzUpOworICBKU09OVEVT
VF9BU1NFUlQocm9vdFsibnVsbCJdLmdldE9mZnNldFN0YXJ0KCkgPT0gODcpOworICBKU09OVEVT
VF9BU1NFUlQocm9vdFsibnVsbCJdLmdldE9mZnNldExpbWl0KCkgPT0gOTEpOworICBKU09OVEVT
VF9BU1NFUlQocm9vdFsiZmFsc2UiXS5nZXRPZmZzZXRTdGFydCgpID09IDEwMyk7CisgIEpTT05U
RVNUX0FTU0VSVChyb290WyJmYWxzZSJdLmdldE9mZnNldExpbWl0KCkgPT0gMTA4KTsKKyAgSlNP
TlRFU1RfQVNTRVJUKHJvb3QuZ2V0T2Zmc2V0U3RhcnQoKSA9PSAwKTsKKyAgSlNPTlRFU1RfQVNT
RVJUKHJvb3QuZ2V0T2Zmc2V0TGltaXQoKSA9PSAxMTApOwogfQogCitKU09OVEVTVF9GSVhUVVJF
KFJlYWRlclRlc3QsIHBhcnNlV2l0aE9uZUVycm9yKSB7CisgIEpzb246OlJlYWRlciByZWFkZXI7
CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGJvb2wgb2sgPSByZWFkZXIucGFyc2UoInsgXCJwcm9w
ZXJ0eVwiIDo6IFwidmFsdWVcIiB9Iiwgcm9vdCk7CisgIEpTT05URVNUX0FTU0VSVCghb2spOwor
ICBKU09OVEVTVF9BU1NFUlQocmVhZGVyLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSA9PQor
ICAgICAgICAgICAgICAgICAgIiogTGluZSAxLCBDb2x1bW4gMTVcbiAgU3ludGF4IGVycm9yOiB2
YWx1ZSwgb2JqZWN0IG9yIGFycmF5ICIKKyAgICAgICAgICAgICAgICAgICJleHBlY3RlZC5cbiIp
OworICBzdGQ6OnZlY3RvcjxKc29uOjpSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gZXJyb3JzID0K
KyAgICAgIHJlYWRlci5nZXRTdHJ1Y3R1cmVkRXJyb3JzKCk7CisgIEpTT05URVNUX0FTU0VSVChl
cnJvcnMuc2l6ZSgpID09IDEpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDApLm9mZnNl
dF9zdGFydCA9PSAxNCk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCkub2Zmc2V0X2xp
bWl0ID09IDE1KTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5hdCgwKS5tZXNzYWdlID09Cisg
ICAgICAgICAgICAgICAgICAiU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4
cGVjdGVkLiIpOworfQogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIGNvbXBhcmVVSW50
ICkKLXsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIDB1LCAxMHUgKSAp
OwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggMHUsIEpzb246OlZhbHVl
OjptYXhVSW50ICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCAx
MHUsIDEwdSApICk7Ci19Ci0KLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBjb21wYXJl
RG91YmxlICkKLXsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIDAuMCwg
MTAuMCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggMTAuMCwg
MTAuMCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggLTEwLjAs
IC0xMC4wICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIC0xMC4w
LCAwLjAgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgY29tcGFyZVN0
cmluZyApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCAiIiwgIiAi
ICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoICIiLCAiYSIgKSAp
OwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggImFiY2QiLCAienl1aSIg
KSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggImFiYyIsICJhYmNk
IiApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggImFiY2QiLCAi
YWJjZCIgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoICIgIiwg
IiAiICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoICJBQkNEIiwg
ImFiY2QiICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCAiQUJD
RCIsICJBQkNEIiApICk7Ci19Ci0KLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBjb21w
YXJlQm9vbGVhbiApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBm
YWxzZSwgdHJ1ZSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCgg
ZmFsc2UsIGZhbHNlICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFs
KCB0cnVlLCB0cnVlICkgKTsKLX0KLQotCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIGNv
bXBhcmVBcnJheSApCi17Ci0gICAgLy8gYXJyYXkgY29tcGFyZSBzaXplIHRoZW4gY29udGVudAot
ICAgIEpzb246OlZhbHVlIGVtcHR5QXJyYXkoSnNvbjo6YXJyYXlWYWx1ZSk7Ci0gICAgSnNvbjo6
VmFsdWUgbDFhQXJyYXk7Ci0gICAgbDFhQXJyYXkuYXBwZW5kKCAwICk7Ci0gICAgSnNvbjo6VmFs
dWUgbDFiQXJyYXk7Ci0gICAgbDFiQXJyYXkuYXBwZW5kKCAxMCApOwotICAgIEpzb246OlZhbHVl
IGwyYUFycmF5OwotICAgIGwyYUFycmF5LmFwcGVuZCggMCApOwotICAgIGwyYUFycmF5LmFwcGVu
ZCggMCApOwotICAgIEpzb246OlZhbHVlIGwyYkFycmF5OwotICAgIGwyYkFycmF5LmFwcGVuZCgg
MCApOwotICAgIGwyYkFycmF5LmFwcGVuZCggMTAgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJF
RCggY2hlY2tJc0xlc3MoIGVtcHR5QXJyYXksIGwxYUFycmF5ICkgKTsKLSAgICBKU09OVEVTVF9B
U1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIGVtcHR5QXJyYXksIGwyYUFycmF5ICkgKTsKLSAgICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIGwxYUFycmF5LCBsMmFBcnJheSApICk7
Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBsMmFBcnJheSwgbDJiQXJy
YXkgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIGVtcHR5QXJy
YXksIEpzb246OlZhbHVlKCBlbXB0eUFycmF5ICkgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKCBjaGVja0lzRXF1YWwoIGwxYUFycmF5LCBKc29uOjpWYWx1ZSggbDFhQXJyYXkpICkgKTsK
LSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCBsMmJBcnJheSwgSnNvbjo6
VmFsdWUoIGwyYkFycmF5KSApICk7Ci19Ci0KLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0
LCBjb21wYXJlT2JqZWN0ICkKLXsKLSAgICAvLyBvYmplY3QgY29tcGFyZSBzaXplIHRoZW4gY29u
dGVudAotICAgIEpzb246OlZhbHVlIGVtcHR5T2JqZWN0KEpzb246Om9iamVjdFZhbHVlKTsKLSAg
ICBKc29uOjpWYWx1ZSBsMWFPYmplY3Q7Ci0gICAgbDFhT2JqZWN0WyJrZXkxIl0gPSAwOwotICAg
IEpzb246OlZhbHVlIGwxYk9iamVjdDsKLSAgICBsMWFPYmplY3RbImtleTEiXSA9IDEwOwotICAg
IEpzb246OlZhbHVlIGwyYU9iamVjdDsKLSAgICBsMmFPYmplY3RbImtleTEiXSA9IDA7Ci0gICAg
bDJhT2JqZWN0WyJrZXkyIl0gPSAwOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
TGVzcyggZW1wdHlPYmplY3QsIGwxYU9iamVjdCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoIGNoZWNrSXNMZXNzKCBlbXB0eU9iamVjdCwgbDJhT2JqZWN0ICkgKTsKLSAgICBKU09OVEVT
VF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIGwxYU9iamVjdCwgbDJhT2JqZWN0ICkgKTsKLSAg
ICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCBlbXB0eU9iamVjdCwgSnNvbjo6
VmFsdWUoIGVtcHR5T2JqZWN0ICkgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVj
a0lzRXF1YWwoIGwxYU9iamVjdCwgSnNvbjo6VmFsdWUoIGwxYU9iamVjdCApICkgKTsKLSAgICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCBsMmFPYmplY3QsIEpzb246OlZhbHVl
KCBsMmFPYmplY3QgKSApICk7Ci19Ci0KLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBj
b21wYXJlVHlwZSApCi17Ci0gICAgLy8gb2JqZWN0IG9mIGRpZmZlcmVudCB0eXBlIGFyZSBvcmRl
cmVkIGFjY29yZGluZyB0byB0aGVpciB0eXBlCi0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNo
ZWNrSXNMZXNzKCBKc29uOjpWYWx1ZSgpLCBKc29uOjpWYWx1ZSgxKSApICk7Ci0gICAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBKc29uOjpWYWx1ZSgxKSwgSnNvbjo6VmFsdWUo
MXUpICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIEpzb246OlZh
bHVlKDF1KSwgSnNvbjo6VmFsdWUoMS4wKSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
IGNoZWNrSXNMZXNzKCBKc29uOjpWYWx1ZSgxLjApLCBKc29uOjpWYWx1ZSgiYSIpICkgKTsKLSAg
ICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIEpzb246OlZhbHVlKCJhIiksIEpz
b246OlZhbHVlKHRydWUpICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xl
c3MoIEpzb246OlZhbHVlKHRydWUpLCBKc29uOjpWYWx1ZShKc29uOjphcnJheVZhbHVlKSApICk7
Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBKc29uOjpWYWx1ZShKc29u
OjphcnJheVZhbHVlKSwgSnNvbjo6VmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpICkgKTsKLX0KLQot
Ci12b2lkIAotVmFsdWVUZXN0OjpjaGVja0lzTGVzcyggY29uc3QgSnNvbjo6VmFsdWUgJngsIGNv
bnN0IEpzb246OlZhbHVlICZ5ICkKLXsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHggPCB5ICk7Ci0g
ICAgSlNPTlRFU1RfQVNTRVJUKCB5ID4geCApOwotICAgIEpTT05URVNUX0FTU0VSVCggeCA8PSB5
ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB5ID49IHggKTsKLSAgICBKU09OVEVTVF9BU1NFUlQo
ICEoeCA9PSB5KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggISh5ID09IHgpICk7Ci0gICAgSlNP
TlRFU1RfQVNTRVJUKCAhKHggPj0geSkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoICEoeSA8PSB4
KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggISh4ID4geSkgKTsKLSAgICBKU09OVEVTVF9BU1NF
UlQoICEoeSA8IHgpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB4LmNvbXBhcmUoIHkgKSA8IDAg
KTsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHkuY29tcGFyZSggeCApID49IDAgKTsKLX0KLQotCi12
b2lkIAotVmFsdWVUZXN0OjpjaGVja0lzRXF1YWwoIGNvbnN0IEpzb246OlZhbHVlICZ4LCBjb25z
dCBKc29uOjpWYWx1ZSAmeSApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB4ID09IHkgKTsKLSAg
ICBKU09OVEVTVF9BU1NFUlQoIHkgPT0geCApOwotICAgIEpTT05URVNUX0FTU0VSVCggeCA8PSB5
ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB5IDw9IHggKTsKLSAgICBKU09OVEVTVF9BU1NFUlQo
IHggPj0geSApOwotICAgIEpTT05URVNUX0FTU0VSVCggeSA+PSB4ICk7Ci0gICAgSlNPTlRFU1Rf
QVNTRVJUKCAhKHggPCB5KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggISh5IDwgeCkgKTsKLSAg
ICBKU09OVEVTVF9BU1NFUlQoICEoeCA+IHkpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCAhKHkg
PiB4KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggeC5jb21wYXJlKCB5ICkgPT0gMCApOwotICAg
IEpTT05URVNUX0FTU0VSVCggeS5jb21wYXJlKCB4ICkgPT0gMCApOwotfQotCi1pbnQgbWFpbigg
aW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSApCi17Ci0gICBKc29uVGVzdDo6UnVubmVyIHJ1
bm5lcjsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBj
aGVja05vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJ
WFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBtZW1iZXJDb3VudCApOwotICAgSlNPTlRFU1RfUkVH
SVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIG9iamVjdHMgKTsKLSAgIEpTT05URVNU
X1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBhcnJheXMgKTsKLSAgIEpTT05U
RVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBudWxsICk7Ci0gICBKU09O
VEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgc3RyaW5ncyApOwotICAg
SlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIGJvb2xzICk7Ci0g
ICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgaW50ZWdlcnMg
KTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBub25J
bnRlZ2VycyApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRl
c3QsIGNvbXBhcmVOdWxsICk7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIs
IFZhbHVlVGVzdCwgY29tcGFyZUludCApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSgg
cnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVVSW50ICk7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9G
SVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgY29tcGFyZURvdWJsZSApOwotICAgSlNPTlRFU1Rf
UkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVTdHJpbmcgKTsKLSAg
IEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlQm9v
bGVhbiApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3Qs
IGNvbXBhcmVBcnJheSApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBW
YWx1ZVRlc3QsIGNvbXBhcmVPYmplY3QgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUo
IHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlVHlwZSApOwotICAgcmV0dXJuIHJ1bm5lci5ydW5D
b21tYW5kTGluZSggYXJnYywgYXJndiApOworSlNPTlRFU1RfRklYVFVSRShSZWFkZXJUZXN0LCBw
YXJzZUNoaW5lc2VXaXRoT25lRXJyb3IpIHsKKyAgSnNvbjo6UmVhZGVyIHJlYWRlcjsKKyAgSnNv
bjo6VmFsdWUgcm9vdDsKKyAgYm9vbCBvayA9IHJlYWRlci5wYXJzZSgieyBcInBy5L2Q6JekZXJ0
eVwiIDo6IFwidmFsdWVcIiB9Iiwgcm9vdCk7CisgIEpTT05URVNUX0FTU0VSVCghb2spOworICBK
U09OVEVTVF9BU1NFUlQocmVhZGVyLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSA9PQorICAg
ICAgICAgICAgICAgICAgIiogTGluZSAxLCBDb2x1bW4gMTlcbiAgU3ludGF4IGVycm9yOiB2YWx1
ZSwgb2JqZWN0IG9yIGFycmF5ICIKKyAgICAgICAgICAgICAgICAgICJleHBlY3RlZC5cbiIpOwor
ICBzdGQ6OnZlY3RvcjxKc29uOjpSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gZXJyb3JzID0KKyAg
ICAgIHJlYWRlci5nZXRTdHJ1Y3R1cmVkRXJyb3JzKCk7CisgIEpTT05URVNUX0FTU0VSVChlcnJv
cnMuc2l6ZSgpID09IDEpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDApLm9mZnNldF9z
dGFydCA9PSAxOCk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCkub2Zmc2V0X2xpbWl0
ID09IDE5KTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5hdCgwKS5tZXNzYWdlID09CisgICAg
ICAgICAgICAgICAgICAiU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVj
dGVkLiIpOwogfQorCitKU09OVEVTVF9GSVhUVVJFKFJlYWRlclRlc3QsIHBhcnNlV2l0aERldGFp
bEVycm9yKSB7CisgIEpzb246OlJlYWRlciByZWFkZXI7CisgIEpzb246OlZhbHVlIHJvb3Q7Cisg
IGJvb2wgb2sgPSByZWFkZXIucGFyc2UoInsgXCJwcm9wZXJ0eVwiIDogXCJ2XFxhbHVlXCIgfSIs
IHJvb3QpOworICBKU09OVEVTVF9BU1NFUlQoIW9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJlYWRl
ci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgPT0KKyAgICAgICAgICAgICAgICAgICIqIExp
bmUgMSwgQ29sdW1uIDE2XG4gIEJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nXG5TZWUgIgor
ICAgICAgICAgICAgICAgICAgIkxpbmUgMSwgQ29sdW1uIDIwIGZvciBkZXRhaWwuXG4iKTsKKyAg
c3RkOjp2ZWN0b3I8SnNvbjo6UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IGVycm9ycyA9CisgICAg
ICByZWFkZXIuZ2V0U3RydWN0dXJlZEVycm9ycygpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3Jz
LnNpemUoKSA9PSAxKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5hdCgwKS5vZmZzZXRfc3Rh
cnQgPT0gMTUpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDApLm9mZnNldF9saW1pdCA9
PSAyMyk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCkubWVzc2FnZSA9PSAiQmFkIGVz
Y2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciKTsKK30KKworc3RydWN0IENoYXJSZWFkZXJUZXN0IDog
SnNvblRlc3Q6OlRlc3RDYXNlIHt9OworCitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJUZXN0
LCBwYXJzZVdpdGhOb0Vycm9ycykgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBK
c29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJp
bmcgZXJyczsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9ICJ7IFwi
cHJvcGVydHlcIiA6IFwidmFsdWVcIiB9IjsKKyAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9j
LCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICBKU09OVEVTVF9BU1NF
UlQob2spOworICBKU09OVEVTVF9BU1NFUlQoZXJycy5lbXB0eSgpKTsKKyAgZGVsZXRlIHJlYWRl
cjsKK30KKworSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyVGVzdCwgcGFyc2VXaXRoTm9FcnJv
cnNUZXN0aW5nT2Zmc2V0cykgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBKc29u
OjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJpbmcg
ZXJyczsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9ICJ7IFwicHJv
cGVydHlcIiA6IFtcInZhbHVlXCIsIFwidmFsdWUyXCJdLCBcIm9ialwiIDogIgorICAgICAgICAg
ICAgICAgICAgICAgInsgXCJuZXN0ZWRcIiA6IDEyMywgXCJib29sXCIgOiB0cnVlfSwgXCJudWxs
XCIgOiAiCisgICAgICAgICAgICAgICAgICAgICAibnVsbCwgXCJmYWxzZVwiIDogZmFsc2UgfSI7
CisgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwg
JnJvb3QsICZlcnJzKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KGVycnMuZW1wdHkoKSk7CisgIGRlbGV0ZSByZWFkZXI7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUo
Q2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aE9uZUVycm9yKSB7CisgIEpzb246OkNoYXJSZWFkZXJC
dWlsZGVyIGI7CisgIEpzb246OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7
CisgIEpzb246OlN0cmluZyBlcnJzOworICBKc29uOjpWYWx1ZSByb290OworICBjaGFyIGNvbnN0
IGRvY1tdID0gInsgXCJwcm9wZXJ0eVwiIDo6IFwidmFsdWVcIiB9IjsKKyAgYm9vbCBvayA9IHJl
YWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOwor
ICBKU09OVEVTVF9BU1NFUlQoIW9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycnMgPT0KKyAgICAg
ICAgICAgICAgICAgICIqIExpbmUgMSwgQ29sdW1uIDE1XG4gIFN5bnRheCBlcnJvcjogdmFsdWUs
IG9iamVjdCBvciBhcnJheSAiCisgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQuXG4iKTsKKyAg
ZGVsZXRlIHJlYWRlcjsKK30KKworSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyVGVzdCwgcGFy
c2VDaGluZXNlV2l0aE9uZUVycm9yKSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7Cisg
IEpzb246OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgIEpzb246OlN0
cmluZyBlcnJzOworICBKc29uOjpWYWx1ZSByb290OworICBjaGFyIGNvbnN0IGRvY1tdID0gInsg
XCJwcuS9kOiXpGVydHlcIiA6OiBcInZhbHVlXCIgfSI7CisgIGJvb2wgb2sgPSByZWFkZXItPnBh
cnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCFvayk7CisgIEpTT05URVNUX0FTU0VSVChlcnJzID09CisgICAgICAgICAgICAg
ICAgICAiKiBMaW5lIDEsIENvbHVtbiAxOVxuICBTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qg
b3IgYXJyYXkgIgorICAgICAgICAgICAgICAgICAgImV4cGVjdGVkLlxuIik7CisgIGRlbGV0ZSBy
ZWFkZXI7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aERl
dGFpbEVycm9yKSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIEpzb246OkNoYXJS
ZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgIEpzb246OlN0cmluZyBlcnJzOwor
ICBKc29uOjpWYWx1ZSByb290OworICBjaGFyIGNvbnN0IGRvY1tdID0gInsgXCJwcm9wZXJ0eVwi
IDogXCJ2XFxhbHVlXCIgfSI7CisgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsg
c3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFvayk7
CisgIEpTT05URVNUX0FTU0VSVChlcnJzID09CisgICAgICAgICAgICAgICAgICAiKiBMaW5lIDEs
IENvbHVtbiAxNlxuICBCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZ1xuU2VlICIKKyAgICAg
ICAgICAgICAgICAgICJMaW5lIDEsIENvbHVtbiAyMCBmb3IgZGV0YWlsLlxuIik7CisgIGRlbGV0
ZSByZWFkZXI7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0
aFN0YWNrTGltaXQpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgSnNvbjo6VmFs
dWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9ICJ7IFwicHJvcGVydHlcIiA6IFwidmFsdWVc
IiB9IjsKKyAgeworICAgIGIuc2V0dGluZ3NfWyJzdGFja0xpbWl0Il0gPSAyOworICAgIEpzb246
OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgICAgSnNvbjo6U3RyaW5n
IGVycnM7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxl
bihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNP
TlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCJ2
YWx1ZSIsIHJvb3RbInByb3BlcnR5Il0pOworICAgIGRlbGV0ZSByZWFkZXI7CisgIH0KKyAgewor
ICAgIGIuc2V0dGluZ3NfWyJzdGFja0xpbWl0Il0gPSAxOworICAgIEpzb246OkNoYXJSZWFkZXIq
IHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgICAgSnNvbjo6U3RyaW5nIGVycnM7CisgICAg
SlNPTlRFU1RfQVNTRVJUX1RIUk9XUygKKyAgICAgICAgcmVhZGVyLT5wYXJzZShkb2MsIGRvYyAr
IHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycykpOworICAgIGRlbGV0ZSByZWFkZXI7Cisg
IH0KK30KKworc3RydWN0IENoYXJSZWFkZXJTdHJpY3RNb2RlVGVzdCA6IEpzb25UZXN0OjpUZXN0
Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyU3RyaWN0TW9kZVRlc3QsIGR1
cEtleXMpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgSnNvbjo6VmFsdWUgcm9v
dDsKKyAgY2hhciBjb25zdCBkb2NbXSA9CisgICAgICAieyBcInByb3BlcnR5XCIgOiBcInZhbHVl
XCIsIFwia2V5XCIgOiBcInZhbDFcIiwgXCJrZXlcIiA6IFwidmFsMlwiIH0iOworICB7CisgICAg
Yi5zdHJpY3RNb2RlKCZiLnNldHRpbmdzXyk7CisgICAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVy
KGIubmV3Q2hhclJlYWRlcigpKTsKKyAgICBKc29uOjpTdHJpbmcgZXJyczsKKyAgICBib29sIG9r
ID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJy
cyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKCFvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCgiKiBMaW5lIDEsIENvbHVtbiA0MVxuIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiAgRHVwbGljYXRlIGtleTogJ2tleSdcbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoInZhbDEiLCBy
b290WyJrZXkiXSk7IC8vIHNvIGZhcgorICAgIGRlbGV0ZSByZWFkZXI7CisgIH0KK30KK3N0cnVj
dCBDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0IDogSnNvblRlc3Q6OlRlc3RDYXNlIHt9OworCitK
U09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJGYWlsSWZFeHRyYVRlc3QsIGlzc3VlMTY0KSB7Cisg
IC8vIFRoaXMgaXMgaW50ZXJwcmV0ZWQgYXMgYSBzdHJpbmcgdmFsdWUgZm9sbG93ZWQgYnkgYSBj
b2xvbi4KKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgSnNvbjo6VmFsdWUgcm9vdDsK
KyAgY2hhciBjb25zdCBkb2NbXSA9ICIgXCJwcm9wZXJ0eVwiIDogXCJ2YWx1ZVwiIH0iOworICB7
CisgICAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJhIl0gPSBmYWxzZTsKKyAgICBKc29uOjpDaGFy
UmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICAgIEpzb246OlN0cmluZyBlcnJz
OworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9j
KSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNU
X0FTU0VSVChlcnJzLmVtcHR5KCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgicHJvcGVy
dHkiLCByb290KTsKKyAgICBkZWxldGUgcmVhZGVyOworICB9CisgIHsKKyAgICBiLnNldHRpbmdz
X1siZmFpbElmRXh0cmEiXSA9IHRydWU7CisgICAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIu
bmV3Q2hhclJlYWRlcigpKTsKKyAgICBKc29uOjpTdHJpbmcgZXJyczsKKyAgICBib29sIG9rID0g
cmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7
CisgICAgSlNPTlRFU1RfQVNTRVJUKCFvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19F
UVVBTChlcnJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiogTGluZSAxLCBD
b2x1bW4gMTNcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIEV4dHJhIG5v
bi13aGl0ZXNwYWNlIGFmdGVyIEpTT04gdmFsdWUuXG4iKTsKKyAgICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoInByb3BlcnR5Iiwgcm9vdCk7CisgICAgZGVsZXRlIHJlYWRlcjsKKyAgfQorICB7Cisg
ICAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJhIl0gPSBmYWxzZTsKKyAgICBiLnN0cmljdE1vZGUo
JmIuc2V0dGluZ3NfKTsKKyAgICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVh
ZGVyKCkpOworICAgIEpzb246OlN0cmluZyBlcnJzOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBh
cnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09O
VEVTVF9BU1NFUlQoIW9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGVycnMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKiBMaW5lIDEsIENvbHVtbiAxM1xu
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgRXh0cmEgbm9uLXdoaXRlc3Bh
Y2UgYWZ0ZXIgSlNPTiB2YWx1ZS5cbiIpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgicHJv
cGVydHkiLCByb290KTsKKyAgICBkZWxldGUgcmVhZGVyOworICB9Cit9CitKU09OVEVTVF9GSVhU
VVJFKENoYXJSZWFkZXJGYWlsSWZFeHRyYVRlc3QsIGlzc3VlMTA3KSB7CisgIC8vIFRoaXMgaXMg
aW50ZXJwcmV0ZWQgYXMgYW4gaW50IHZhbHVlIGZvbGxvd2VkIGJ5IGEgY29sb24uCisgIEpzb246
OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3Qg
ZG9jW10gPSAiMToyOjMiOworICBiLnNldHRpbmdzX1siZmFpbElmRXh0cmEiXSA9IHRydWU7Cisg
IEpzb246OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgIEpzb246OlN0
cmluZyBlcnJzOworICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3Ry
bGVuKGRvYyksICZyb290LCAmZXJycyk7CisgIEpTT05URVNUX0FTU0VSVCghb2spOworICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIqIExpbmUgMSwgQ29sdW1uIDJcbiIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiICBFeHRyYSBub24td2hpdGVzcGFjZSBhZnRlciBKU09O
IHZhbHVlLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJzKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDEsIHJvb3QuYXNJbnQoKSk7CisgIGRlbGV0ZSByZWFkZXI7Cit9
CitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJGYWlsSWZFeHRyYVRlc3QsIGNvbW1lbnRBZnRl
ck9iamVjdCkgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBKc29uOjpWYWx1ZSBy
b290OworICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJ7IFwicHJvcGVydHlcIiA6IFwidmFs
dWVcIiB9IC8vdHJhaWxpbmdcbi8vY29tbWVudFxuIjsKKyAgICBiLnNldHRpbmdzX1siZmFpbElm
RXh0cmEiXSA9IHRydWU7CisgICAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJl
YWRlcigpKTsKKyAgICBKc29uOjpTdHJpbmcgZXJyczsKKyAgICBib29sIG9rID0gcmVhZGVyLT5w
YXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNP
TlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBl
cnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoInZhbHVlIiwgcm9vdFsicHJvcGVydHki
XSk7CisgICAgZGVsZXRlIHJlYWRlcjsKKyAgfQorfQorSlNPTlRFU1RfRklYVFVSRShDaGFyUmVh
ZGVyRmFpbElmRXh0cmFUZXN0LCBjb21tZW50QWZ0ZXJBcnJheSkgeworICBKc29uOjpDaGFyUmVh
ZGVyQnVpbGRlciBiOworICBKc29uOjpWYWx1ZSByb290OworICBjaGFyIGNvbnN0IGRvY1tdID0g
IlsgXCJwcm9wZXJ0eVwiICwgXCJ2YWx1ZVwiIF0gLy90cmFpbGluZ1xuLy9jb21tZW50XG4iOwor
ICBiLnNldHRpbmdzX1siZmFpbElmRXh0cmEiXSA9IHRydWU7CisgIEpzb246OkNoYXJSZWFkZXIq
IHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgIEpzb246OlN0cmluZyBlcnJzOworICBib29s
IG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAm
ZXJycyk7CisgIEpTT05URVNUX0FTU0VSVChvayk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdf
RVFVQUwoIiIsIGVycnMpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoInZhbHVlIiwgcm9vdFsx
dV0pOworICBkZWxldGUgcmVhZGVyOworfQorSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyRmFp
bElmRXh0cmFUZXN0LCBjb21tZW50QWZ0ZXJCb29sKSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWls
ZGVyIGI7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3QgZG9jW10gPSAiIHRydWUg
Lyp0cmFpbGluZ1xuY29tbWVudCovIjsKKyAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJhIl0gPSB0
cnVlOworICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBK
c29uOjpTdHJpbmcgZXJyczsKKyAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBz
dGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICBKU09OVEVTVF9BU1NFUlQob2spOwor
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKHRydWUsIHJvb3QuYXNCb29sKCkpOworICBkZWxldGUgcmVhZGVyOworfQorc3Ry
dWN0IENoYXJSZWFkZXJBbGxvd0Ryb3BOdWxsVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsK
KworSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyQWxsb3dEcm9wTnVsbFRlc3QsIGlzc3VlMTc4
KSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIGIuc2V0dGluZ3NfWyJhbGxvd0Ry
b3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSB0cnVlOworICBKc29uOjpWYWx1ZSByb290OworICBK
c29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJl
YWRlcigpKTsKKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAie1wiYVwiOixcImJcIjp0cnVl
fSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihk
b2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKDJ1LCByb290LnNpemUoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246Om51
bGxWYWx1ZSwgcm9vdC5nZXQoImEiLCB0cnVlKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3Qg
ZG9jW10gPSAie1wiYVwiOn0iOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9j
ICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQo
b2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgxdSwgcm9vdC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjpudWxsVmFsdWUsIHJvb3QuZ2V0KCJhIiwgdHJ1ZSkpOworICB9CisgIHsK
KyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIltdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJz
ZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRF
U1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoZXJycy5lbXB0eSgpKTsKKyAgICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMHUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6YXJyYXlWYWx1ZSwgcm9vdCk7CisgIH0KKyAgeworICAgIGNoYXIgY29u
c3QgZG9jW10gPSAiW251bGxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRv
YyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJU
KG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoZXJycy5lbXB0eSgpKTsKKyAgICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMXUsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7CisgICAgY2hhciBjb25zdCBk
b2NbXSA9ICJbLF0iOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3Rk
OjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOwor
ICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgydSwgcm9vdC5zaXplKCkpOworICB9CisgIHsKKyAgICBjaGFyIGNvbnN0
IGRvY1tdID0gIlssLCxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyAr
IHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9r
KTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoNHUsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7CisgICAgY2hhciBj
b25zdCBkb2NbXSA9ICJbbnVsbCxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2Ms
IGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7CisgICAg
Y2hhciBjb25zdCBkb2NbXSA9ICJbLG51bGxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJz
ZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRF
U1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoZXJycy5lbXB0eSgpKTsKKyAgICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7CisgICAgY2hh
ciBjb25zdCBkb2NbXSA9ICJbLCxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2Ms
IGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoM3UsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7CisgICAg
Y2hhciBjb25zdCBkb2NbXSA9ICJbbnVsbCwsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFy
c2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05U
RVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJy
cyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDN1LCByb290LnNpemUoKSk7CisgIH0KKyAg
eworICAgIGNoYXIgY29uc3QgZG9jW10gPSAiWyxudWxsLF0iOworICAgIGJvb2wgb2sgPSByZWFk
ZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
IiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgzdSwgcm9vdC5zaXplKCkpOwor
ICB9CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIlssLG51bGxdIjsKKyAgICBib29sIG9r
ID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJy
cyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoZXJycy5l
bXB0eSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoM3UsIHJvb3Quc2l6ZSgpKTsKKyAg
fQorICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJbW10sLCxdIjsKKyAgICBib29sIG9rID0g
cmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7
CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VR
VUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoNHUsIHJvb3Quc2l6ZSgp
KTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6YXJyYXlWYWx1ZSwgcm9vdFswdV0p
OworICB9CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIlssW10sLF0iOworICAgIGJvb2wg
b2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZl
cnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCg0dSwgcm9vdC5z
aXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjphcnJheVZhbHVlLCByb290
WzF1XSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAiWywsLFtdXSI7CisgICAg
Ym9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9v
dCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJU
KGVycnMuZW1wdHkoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDR1LCByb290LnNpemUo
KSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmFycmF5VmFsdWUsIHJvb3RbM3Vd
KTsKKyAgfQorICBkZWxldGUgcmVhZGVyOworfQorCitzdHJ1Y3QgQ2hhclJlYWRlckFsbG93U2lu
Z2xlUXVvdGVzVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVS
RShDaGFyUmVhZGVyQWxsb3dTaW5nbGVRdW90ZXNUZXN0LCBpc3N1ZTE4MikgeworICBKc29uOjpD
aGFyUmVhZGVyQnVpbGRlciBiOworICBiLnNldHRpbmdzX1siYWxsb3dTaW5nbGVRdW90ZXMiXSA9
IHRydWU7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIEpzb246OlN0cmluZyBlcnJzOworICBKc29u
OjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICB7CisgICAgY2hhciBj
b25zdCBkb2NbXSA9ICJ7J2EnOnRydWUsXCJiXCI6dHJ1ZX0iOworICAgIGJvb2wgb2sgPSByZWFk
ZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
IiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgydSwgcm9vdC5zaXplKCkpOwor
ICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByb290LmdldCgiYSIsIGZhbHNlKSk7Cisg
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHJvb3QuZ2V0KCJiIiwgZmFsc2UpKTsKKyAg
fQorICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJ7J2EnOiAneCcsIFwiYlwiOid5J30iOwor
ICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwg
JnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgy
dSwgcm9vdC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIngiLCBy
b290WyJhIl0uYXNTdHJpbmcoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgi
eSIsIHJvb3RbImIiXS5hc1N0cmluZygpKTsKKyAgfQorICBkZWxldGUgcmVhZGVyOworfQorCitz
dHJ1Y3QgQ2hhclJlYWRlckFsbG93WmVyb2VzVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsK
KworSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyQWxsb3daZXJvZXNUZXN0LCBpc3N1ZTE3Nikg
eworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBiLnNldHRpbmdzX1siYWxsb3dTaW5n
bGVRdW90ZXMiXSA9IHRydWU7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIEpzb246OlN0cmluZyBl
cnJzOworICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICB7
CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJ7J2EnOnRydWUsXCJiXCI6dHJ1ZX0iOworICAgIGJv
b2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3Qs
ICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VSVF9T
VFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgydSwgcm9v
dC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByb290LmdldCgiYSIs
IGZhbHNlKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHJvb3QuZ2V0KCJiIiwg
ZmFsc2UpKTsKKyAgfQorICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJ7J2EnOiAneCcsIFwi
YlwiOid5J30iOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpz
dHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAg
IEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgydSwgcm9vdC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdf
RVFVQUwoIngiLCByb290WyJhIl0uYXNTdHJpbmcoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCgieSIsIHJvb3RbImIiXS5hc1N0cmluZygpKTsKKyAgfQorICBkZWxldGUgcmVh
ZGVyOworfQorCitzdHJ1Y3QgQ2hhclJlYWRlckFsbG93U3BlY2lhbEZsb2F0c1Rlc3QgOiBKc29u
VGVzdDo6VGVzdENhc2Uge307CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlckFsbG93U3Bl
Y2lhbEZsb2F0c1Rlc3QsIGlzc3VlMjA5KSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7
CisgIGIuc2V0dGluZ3NfWyJhbGxvd1NwZWNpYWxGbG9hdHMiXSA9IHRydWU7CisgIEpzb246OlZh
bHVlIHJvb3Q7CisgIEpzb246OlN0cmluZyBlcnJzOworICBKc29uOjpDaGFyUmVhZGVyKiByZWFk
ZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJ7XCJh
XCI6TmFOLFwiYlwiOkluZmluaXR5LFwiY1wiOi1JbmZpbml0eX0iOworICAgIGJvb2wgb2sgPSBy
ZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsK
KyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgzdSwgcm9vdC5zaXplKCkp
OworICAgIGRvdWJsZSBuID0gcm9vdFsiYSJdLmFzRG91YmxlKCk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKHN0ZDo6aXNuYW4obikpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHJvb3QuZ2V0KCJiIiwgMC4wKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC1zdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJvb3QuZ2V0KCJjIiwgMC4wKSk7CisgIH0KKworICBzdHJ1Y3QgVGVzdERhdGEgeworICAg
IGludCBsaW5lOworICAgIGJvb2wgb2s7CisgICAgSnNvbjo6U3RyaW5nIGluOworICB9OworICBj
b25zdCBUZXN0RGF0YSB0ZXN0X2RhdGFbXSA9IHsKKyAgICAgIHtfX0xJTkVfXywgdHJ1ZSwgIntc
ImFcIjo5fSJ9LCAgICAgICAgICAvLworICAgICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjow
SW5maW5pdHl9In0sIC8vCisgICAgICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOjFJbmZpbml0
eX0ifSwgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6OUluZmluaXR5fSJ9LCAv
LworICAgICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjowbmZpbml0eX0ifSwgIC8vCisgICAg
ICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOjFuZmluaXR5fSJ9LCAgLy8KKyAgICAgIHtfX0xJ
TkVfXywgZmFsc2UsICJ7XCJhXCI6OW5maW5pdHl9In0sICAvLworICAgICAge19fTElORV9fLCBm
YWxzZSwgIntcImFcIjpuZmluaXR5fSJ9LCAgIC8vCisgICAgICB7X19MSU5FX18sIGZhbHNlLCAi
e1wiYVwiOi5uZmluaXR5fSJ9LCAgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6
OW5maW5pdHl9In0sICAvLworICAgICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjotbmZpbml0
eX0ifSwgIC8vCisgICAgICB7X19MSU5FX18sIHRydWUsICJ7XCJhXCI6SW5maW5pdHl9In0sICAg
Ly8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6LkluZmluaXR5fSJ9LCAvLworICAg
ICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjpfSW5maW5pdHl9In0sIC8vCisgICAgICB7X19M
SU5FX18sIGZhbHNlLCAie1wiYVwiOl9uZmluaXR5fSJ9LCAgLy8KKyAgICAgIHtfX0xJTkVfXywg
dHJ1ZSwgIntcImFcIjotSW5maW5pdHl9In0gICAvLworICB9OworICBmb3IgKGNvbnN0IGF1dG8m
IHRkIDogdGVzdF9kYXRhKSB7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoJip0ZC5pbi5i
ZWdpbigpLCAmKnRkLmluLmJlZ2luKCkgKyB0ZC5pbi5zaXplKCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQodGQub2sgPT0g
b2spIDw8ICJsaW5lOiIgPDwgdGQubGluZSA8PCAiXG4iCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8PCAiICBleHBlY3RlZDogeyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDw8ICJvazoiIDw8IHRkLm9rIDw8ICIsIGluOlwnIiA8PCB0ZC5pbiA8PCAiXCciCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAifVxuIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPDwgIiAgYWN0dWFsOiB7IgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgIm9rOiIgPDwgb2sgPDwgIn1cbiI7CisgIH0KKworICB7CisgICAgY2hh
ciBjb25zdCBkb2NbXSA9ICJ7XCJwb3NJbmZcIjogSW5maW5pdHksIFwiTmVnSW5mXCI6IC1JbmZp
bml0eX0iOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJs
ZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgydSwgcm9vdC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJvb3RbInBvc0luZiJdLmFzRG91YmxlKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICByb290WyJOZWdJbmYiXS5hc0RvdWJsZSgpKTsKKyAgfQorICBkZWxl
dGUgcmVhZGVyOworfQorCitzdHJ1Y3QgQnVpbGRlclRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Ug
e307CisKK0pTT05URVNUX0ZJWFRVUkUoQnVpbGRlclRlc3QsIHNldHRpbmdzKSB7CisgIHsKKyAg
ICBKc29uOjpWYWx1ZSBlcnJzOworICAgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIHJiOworICAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgcmIuc2V0dGluZ3NfLmlzTWVtYmVyKCJmb28i
KSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHJiLnZhbGlkYXRlKCZlcnJzKSk7
CisgICAgcmJbImZvbyJdID0gImJhciI7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUs
IHJiLnNldHRpbmdzXy5pc01lbWJlcigiZm9vIikpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChmYWxzZSwgcmIudmFsaWRhdGUoJmVycnMpKTsKKyAgfQorICB7CisgICAgSnNvbjo6VmFsdWUg
ZXJyczsKKyAgICBKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyIHdiOworICAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChmYWxzZSwgd2Iuc2V0dGluZ3NfLmlzTWVtYmVyKCJmb28iKSk7CisgICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHdiLnZhbGlkYXRlKCZlcnJzKSk7CisgICAgd2JbImZv
byJdID0gImJhciI7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHdiLnNldHRpbmdz
Xy5pc01lbWJlcigiZm9vIikpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgd2Iu
dmFsaWRhdGUoJmVycnMpKTsKKyAgfQorfQorCitzdHJ1Y3QgSXRlcmF0b3JUZXN0IDogSnNvblRl
c3Q6OlRlc3RDYXNlIHt9OworCitKU09OVEVTVF9GSVhUVVJFKEl0ZXJhdG9yVGVzdCwgZGlzdGFu
Y2UpIHsKKyAgSnNvbjo6VmFsdWUganNvbjsKKyAganNvblsiazEiXSA9ICJhIjsKKyAganNvblsi
azIiXSA9ICJiIjsKKyAgaW50IGRpc3QgPSAwOworICBKc29uOjpTdHJpbmcgc3RyOworICBmb3Ig
KEpzb246OlZhbHVlSXRlcmF0b3IgaXQgPSBqc29uLmJlZ2luKCk7IGl0ICE9IGpzb24uZW5kKCk7
ICsraXQpIHsKKyAgICBkaXN0ID0gaXQgLSBqc29uLmJlZ2luKCk7CisgICAgc3RyID0gaXQtPmFz
U3RyaW5nKCkuY19zdHIoKTsKKyAgfQorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgZGlzdCk7
CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImIiLCBzdHIpOworfQorCitKU09OVEVT
VF9GSVhUVVJFKEl0ZXJhdG9yVGVzdCwgbmFtZXMpIHsKKyAgSnNvbjo6VmFsdWUganNvbjsKKyAg
anNvblsiazEiXSA9ICJhIjsKKyAganNvblsiazIiXSA9ICJiIjsKKyAgSnNvbjo6VmFsdWVJdGVy
YXRvciBpdCA9IGpzb24uYmVnaW4oKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGl0ICE9IGpzb24uZW5k
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoImsxIiksIGl0LmtleSgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiazEiLCBpdC5uYW1lKCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoLTEsIGl0LmluZGV4KCkpOworICArK2l0OworICBKU09OVEVT
VF9BU1NFUlQoaXQgIT0ganNvbi5lbmQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29u
OjpWYWx1ZSgiazIiKSwgaXQua2V5KCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCJrMiIsIGl0Lm5hbWUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMSwgaXQuaW5kZXgo
KSk7CisgICsraXQ7CisgIEpTT05URVNUX0FTU0VSVChpdCA9PSBqc29uLmVuZCgpKTsKK30KKwor
SlNPTlRFU1RfRklYVFVSRShJdGVyYXRvclRlc3QsIGluZGV4ZXMpIHsKKyAgSnNvbjo6VmFsdWUg
anNvbjsKKyAganNvblswXSA9ICJhIjsKKyAganNvblsxXSA9ICJiIjsKKyAgSnNvbjo6VmFsdWVJ
dGVyYXRvciBpdCA9IGpzb24uYmVnaW4oKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGl0ICE9IGpzb24u
ZW5kKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoSnNvbjo6QXJyYXlJ
bmRleCgwKSksIGl0LmtleSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwg
aXQubmFtZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIGl0LmluZGV4KCkpOworICAr
K2l0OworICBKU09OVEVTVF9BU1NFUlQoaXQgIT0ganNvbi5lbmQoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChKc29uOjpWYWx1ZShKc29uOjpBcnJheUluZGV4KDEpKSwgaXQua2V5KCkpOwor
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBpdC5uYW1lKCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMSwgaXQuaW5kZXgoKSk7CisgICsraXQ7CisgIEpTT05URVNUX0FTU0VS
VChpdCA9PSBqc29uLmVuZCgpKTsKK30KKworSlNPTlRFU1RfRklYVFVSRShJdGVyYXRvclRlc3Qs
IGNvbnN0KSB7CisgIEpzb246OlZhbHVlIGNvbnN0IHY7CisgIEpTT05URVNUX0FTU0VSVF9USFJP
V1MoCisgICAgICBKc29uOjpWYWx1ZTo6aXRlcmF0b3IgaXQodi5iZWdpbigpKSAvLyBDb21waWxl
LCBidXQgdGhyb3cuCisgICk7CisKKyAgSnNvbjo6VmFsdWUgdmFsdWU7CisKKyAgZm9yIChpbnQg
aSA9IDk7IGkgPCAxMjsgKytpKSB7CisgICAgSnNvbjo6T1N0cmluZ1N0cmVhbSBvdXQ7CisgICAg
b3V0IDw8IHN0ZDo6c2V0dygyKSA8PCBpOworICAgIEpzb246OlN0cmluZyBzdHIgPSBvdXQuc3Ry
KCk7CisgICAgdmFsdWVbc3RyXSA9IHN0cjsKKyAgfQorCisgIEpzb246Ok9TdHJpbmdTdHJlYW0g
b3V0OworICAvLyBpbiBvbGQgY29kZSwgdGhpcyB3aWxsIGdldCBhIGNvbXBpbGUgZXJyb3IKKyAg
SnNvbjo6VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSB2YWx1ZS5iZWdpbigpOworICBmb3Ig
KDsgaXRlciAhPSB2YWx1ZS5lbmQoKTsgKytpdGVyKSB7CisgICAgb3V0IDw8ICppdGVyIDw8ICcs
JzsKKyAgfQorICBKc29uOjpTdHJpbmcgZXhwZWN0ZWQgPSAiXCIgOVwiLFwiMTBcIixcIjExXCIs
IjsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgb3V0LnN0cigpKTsK
K30KKworc3RydWN0IFJWYWx1ZVRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307CisKK0pTT05U
RVNUX0ZJWFRVUkUoUlZhbHVlVGVzdCwgbW92ZUNvbnN0cnVjdGlvbikgeworICBKc29uOjpWYWx1
ZSBqc29uOworICBqc29uWyJrZXkiXSA9ICJ2YWx1ZSI7CisgIEpzb246OlZhbHVlIG1vdmVkID0g
c3RkOjptb3ZlKGpzb24pOworICBKU09OVEVTVF9BU1NFUlQobW92ZWQgIT0ganNvbik7IC8vIFBv
c3NpYmx5IG5vdCBudWxsVmFsdWU7IGRlZmluaXRlbHkgbm90CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gZXF1YWwuCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpv
YmplY3RWYWx1ZSwgbW92ZWQudHlwZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OnN0cmluZ1ZhbHVlLCBtb3ZlZFsia2V5Il0udHlwZSgpKTsKK30KKworc3RydWN0IEZ1enpUZXN0
IDogSnNvblRlc3Q6OlRlc3RDYXNlIHt9OworCisvLyBCdWlsZCBhbmQgcnVuIHRoZSBmdXp6IHRl
c3Qgd2l0aG91dCBhbnkgZnV6emVyLCBzbyB0aGF0IGl0J3MgZ3VhcmFudGVlZCBub3QKKy8vIGdv
IG91dCBvZiBkYXRlLCBldmVuIGlmIGl0J3MgbmV2ZXIgcnVuIGFzIGFuIGFjdHVhbCBmdXp6IHRl
c3QuCitKU09OVEVTVF9GSVhUVVJFKEZ1enpUZXN0LCBmdXp6RG9lc250Q3Jhc2gpIHsKKyAgY29u
c3Qgc3RkOjpzdHJpbmcgZXhhbXBsZSA9ICJ7fSI7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgK
KyAgICAgIDAsCisgICAgICBMTFZNRnV6emVyVGVzdE9uZUlucHV0KHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KGV4YW1wbGUuY19zdHIoKSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4YW1wbGUuc2l6ZSgpKSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pIHsKKyAgSnNvblRlc3Q6OlJ1bm5lciBydW5uZXI7CisgIEpTT05URVNUX1JF
R0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGNoZWNrTm9ybWFsaXplRmxvYXRpbmdQ
b2ludFN0cik7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3Qs
IG1lbWJlckNvdW50KTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVl
VGVzdCwgb2JqZWN0cyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1
ZVRlc3QsIGFycmF5cyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1
ZVRlc3QsIGFycmF5SXNzdWUyNTIpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgVmFsdWVUZXN0LCBudWxsKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIs
IFZhbHVlVGVzdCwgc3RyaW5ncyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVy
LCBWYWx1ZVRlc3QsIGJvb2xzKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIs
IFZhbHVlVGVzdCwgaW50ZWdlcnMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgVmFsdWVUZXN0LCBub25JbnRlZ2Vycyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUo
cnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVOdWxsKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklY
VFVSRShydW5uZXIsIFZhbHVlVGVzdCwgY29tcGFyZUludCk7CisgIEpTT05URVNUX1JFR0lTVEVS
X0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVVSW50KTsKKyAgSlNPTlRFU1RfUkVH
SVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgY29tcGFyZURvdWJsZSk7CisgIEpTT05U
RVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVTdHJpbmcpOwor
ICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlQm9v
bGVhbik7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGNv
bXBhcmVBcnJheSk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRl
c3QsIGNvbXBhcmVPYmplY3QpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwg
VmFsdWVUZXN0LCBjb21wYXJlVHlwZSk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVu
bmVyLCBWYWx1ZVRlc3QsIENvcHlPYmplY3QpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJF
KHJ1bm5lciwgVmFsdWVUZXN0LCBvZmZzZXRBY2Nlc3NvcnMpOworICBKU09OVEVTVF9SRUdJU1RF
Ul9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCB0eXBlQ2hlY2tzVGhyb3dFeGNlcHRpb25zKTsK
KyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgU3RhdGljU3Ry
aW5nKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgV2lk
ZVN0cmluZyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3Qs
IENvbW1lbnRCZWZvcmUpOworICAvLyBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwg
VmFsdWVUZXN0LCBudWxscyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBW
YWx1ZVRlc3QsIHplcm9lcyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBW
YWx1ZVRlc3QsIHplcm9lc0luS2V5cyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVu
bmVyLCBWYWx1ZVRlc3QsIHNwZWNpYWxGbG9hdHMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhU
VVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBwcmVjaXNpb24pOworCisgIEpTT05URVNUX1JFR0lTVEVS
X0ZJWFRVUkUocnVubmVyLCBXcml0ZXJUZXN0LCBkcm9wTnVsbFBsYWNlaG9sZGVycyk7CisgIEpT
T05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBTdHJlYW1Xcml0ZXJUZXN0LCBkcm9wTnVs
bFBsYWNlaG9sZGVycyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBTdHJl
YW1Xcml0ZXJUZXN0LCB3cml0ZVplcm9lcyk7CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVS
RShydW5uZXIsIFJlYWRlclRlc3QsIHBhcnNlV2l0aE5vRXJyb3JzKTsKKyAgSlNPTlRFU1RfUkVH
SVNURVJfRklYVFVSRShydW5uZXIsIFJlYWRlclRlc3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFyc2VXaXRoTm9FcnJvcnNUZXN0aW5nT2Zmc2V0cyk7CisgIEpTT05URVNUX1JFR0lT
VEVSX0ZJWFRVUkUocnVubmVyLCBSZWFkZXJUZXN0LCBwYXJzZVdpdGhPbmVFcnJvcik7CisgIEpT
T05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBSZWFkZXJUZXN0LCBwYXJzZUNoaW5lc2VX
aXRoT25lRXJyb3IpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgUmVhZGVy
VGVzdCwgcGFyc2VXaXRoRGV0YWlsRXJyb3IpOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRV
UkUocnVubmVyLCBDaGFyUmVhZGVyVGVzdCwgcGFyc2VXaXRoTm9FcnJvcnMpOworICBKU09OVEVT
VF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclRlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyc2VXaXRoTm9FcnJvcnNUZXN0aW5nT2Zmc2V0cyk7CisgIEpTT05U
RVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVhZGVyVGVzdCwgcGFyc2VXaXRoT25l
RXJyb3IpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclRl
c3QsIHBhcnNlQ2hpbmVzZVdpdGhPbmVFcnJvcik7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRV
UkUocnVubmVyLCBDaGFyUmVhZGVyVGVzdCwgcGFyc2VXaXRoRGV0YWlsRXJyb3IpOworICBKU09O
VEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aFN0
YWNrTGltaXQpOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVh
ZGVyU3RyaWN0TW9kZVRlc3QsIGR1cEtleXMpOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRV
UkUocnVubmVyLCBDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0LCBpc3N1ZTE2NCk7CisgIEpTT05U
RVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0LCBp
c3N1ZTEwNyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVhZGVy
RmFpbElmRXh0cmFUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRBZnRl
ck9iamVjdCk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVhZGVy
RmFpbElmRXh0cmFUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRBZnRl
ckFycmF5KTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJG
YWlsSWZFeHRyYVRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudEFmdGVy
Qm9vbCk7CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJB
bGxvd0Ryb3BOdWxsVGVzdCwgaXNzdWUxNzgpOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRV
UkUocnVubmVyLCBDaGFyUmVhZGVyQWxsb3dTaW5nbGVRdW90ZXNUZXN0LCBpc3N1ZTE4Mik7CisK
KyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJBbGxvd1plcm9l
c1Rlc3QsIGlzc3VlMTc2KTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwg
Q2hhclJlYWRlckFsbG93U3BlY2lhbEZsb2F0c1Rlc3QsIGlzc3VlMjA5KTsKKworICBKU09OVEVT
VF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQnVpbGRlclRlc3QsIHNldHRpbmdzKTsKKworICBK
U09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgSXRlcmF0b3JUZXN0LCBkaXN0YW5jZSk7
CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBJdGVyYXRvclRlc3QsIG5hbWVz
KTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIEl0ZXJhdG9yVGVzdCwgaW5k
ZXhlcyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBJdGVyYXRvclRlc3Qs
IGNvbnN0KTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgUlZhbHVlVGVz
dCwgbW92ZUNvbnN0cnVjdGlvbik7CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5u
ZXIsIEZ1enpUZXN0LCBmdXp6RG9lc250Q3Jhc2gpOworCisgIHJldHVybiBydW5uZXIucnVuQ29t
bWFuZExpbmUoYXJnYywgYXJndik7Cit9CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9s
aWJfanNvbi9zY29uc2NyaXB0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9zY29uc2NyaXB0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTVmZDAxYzBhMzkzODA3ZTk2ZDIwYzgzODc0
ZTY4Njc0Mzc2NWU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vc2NvbnNjcmlwdAorKysgL2Rldi9udWxsCkBAIC0x
LDEwICswLDAgQEAKLUltcG9ydCggJ2Vudl90ZXN0aW5nIGJ1aWxkVW5pdFRlc3RzJyApCi0KLWJ1
aWxkVW5pdFRlc3RzKCBlbnZfdGVzdGluZywgU3BsaXQoICIiIgotICAgIG1haW4uY3BwCi0gICAg
anNvbnRlc3QuY3BwCi0gICAgICIiIiApLAotICAgICd0ZXN0X2xpYl9qc29uJyApCi0KLSMgRm9y
ICdjaGVjaycgdG8gd29yaywgJ2xpYnMnIG11c3QgYmUgYnVpbHQgZmlyc3QuCi1lbnZfdGVzdGlu
Zy5EZXBlbmRzKCd0ZXN0X2xpYl9qc29uJywgJyNsaWJzJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVz
dC9jbGVhbnRlc3RzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2NsZWFudGVzdHMucHkKaW5kZXggYzM4ZmQ4ZmZk
ZDE4YTQxYmZiYzdjZjkyMDFhNjMyYWJiMDI3NTNmNi4uMzZkNWI5YjQ2MTA0OGIyNDA1NWMxZDY4
YTI3ZDU4MmM3M2NjODA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2NsZWFudGVzdHMucHkKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS90ZXN0L2NsZWFudGVzdHMucHkKQEAgLTEsMTAgKzEsMTYgQEAKLSMgcmVtb3ZlcyBh
bGwgZmlsZXMgY3JlYXRlZCBkdXJpbmcgdGVzdGluZworIyBDb3B5cmlnaHQgMjAwNyBCYXB0aXN0
ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQgdW5kZXIg
TUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVjb2duaXpl
ZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworIiIiUmVt
b3ZlcyBhbGwgZmlsZXMgY3JlYXRlZCBkdXJpbmcgdGVzdGluZy4iIiIKKwogaW1wb3J0IGdsb2IK
IGltcG9ydCBvcwogCiBwYXRocyA9IFtdCiBmb3IgcGF0dGVybiBpbiBbICcqLmFjdHVhbCcsICcq
LmFjdHVhbC1yZXdyaXRlJywgJyoucmV3cml0ZScsICcqLnByb2Nlc3Mtb3V0cHV0JyBdOgotICAg
IHBhdGhzICs9IGdsb2IuZ2xvYiggJ2RhdGEvJyArIHBhdHRlcm4gKQorICAgIHBhdGhzICs9IGds
b2IuZ2xvYignZGF0YS8nICsgcGF0dGVybikKIAogZm9yIHBhdGggaW4gcGF0aHM6Ci0gICAgb3Mu
dW5saW5rKCBwYXRoICkKKyAgICBvcy51bmxpbmsocGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVz
dC9kYXRhL2ZhaWxfdGVzdF9zdGFja19saW1pdC5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvZmFpbF90
ZXN0X3N0YWNrX2xpbWl0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUyNGUwYmJiOTU1Y2M0MTY4NTdmMTZj
OWM4MDYzZmQxODk5MDQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL2ZhaWxf
dGVzdF9zdGFja19saW1pdC5qc29uCkBAIC0wLDAgKzEgQEAKK1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfYmFzaWNfMDguZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X2Jhc2ljXzA4LmV4cGVjdGVkCmluZGV4IGM4ZGI4MjJlNTg0YjM1ODcwNDM4YTYyNzEy
MzExMGNmNmE1ZDY3NjguLmNhZjUzNTJhMTEzOTkzZGFkNzliOTExOWFjYjI4OGU3OGQ0MTY4NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfYmFzaWNfMDguZXhwZWN0ZWQKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS90ZXN0L2RhdGEvdGVzdF9iYXNpY18wOC5leHBlY3RlZApAQCAtMSwyICsxLDMgQEAKKy8v
IEMrKyBzdHlsZSBjb21tZW50CiAuPW51bGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEv
dGVzdF9iYXNpY18wOS5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfYmFzaWNfMDkuZXhw
ZWN0ZWQKaW5kZXggYzhkYjgyMmU1ODRiMzU4NzA0MzhhNjI3MTIzMTEwY2Y2YTVkNjc2OC4uOGIx
MjlkYTQyZTRjZGRiMTE0NTM1YTFlZGZiNDcwM2ZiMDg4OWM4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9iYXNpY18wOS5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0
X2Jhc2ljXzA5LmV4cGVjdGVkCkBAIC0xLDIgKzEsNCBAQAorLyogQyBzdHlsZSBjb21tZW50Cisg
Ki8KIC49bnVsbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDAu
ZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDAuZXhwZWN0ZWQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjg0YTc5N2Q3MTQ3MjkyOGE4NWNlNWM3Zjg5YWY3NDFkOWM5NDVjMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMC5leHBlY3RlZApAQCAtMCww
ICsxLDQgQEAKKy8vIENvbW1lbnQgZm9yIGFycmF5CisuPVtdCisvLyBDb21tZW50IHdpdGhpbiBh
cnJheQorLlswXT0ib25lLWVsZW1lbnQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0
X2NvbW1lbnRfMDAuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMC5qc29uCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRkZjU3N2E4YWUyMjA3NjExZTFkYjlkYWM0ZWVlOTMwNjBmMWVmMzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDAuanNvbgpAQCAtMCww
ICsxLDUgQEAKKy8vIENvbW1lbnQgZm9yIGFycmF5CitbCisgICAvLyBDb21tZW50IHdpdGhpbiBh
cnJheQorICAgIm9uZS1lbGVtZW50IgorXQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVz
dF9jb21tZW50XzAxLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAxLmV4
cGVjdGVkCmluZGV4IDJhN2YwMGM0NTBiNDNjNzg5NDk1MDZjYzUxNjFmY2NhNjUzYmQwODguLjFl
ZDAxYmExMDBjNGJkYmJhMzc1M2Q4MDkyZDY4MGJiNTY5NTk2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMS5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90
ZXN0X2NvbW1lbnRfMDEuZXhwZWN0ZWQKQEAgLTEsNSArMSw3IEBACiAuPXt9CisvLyBDb21tZW50
IGZvciBhcnJheQogLnRlc3Q9W10KKy8vIENvbW1lbnQgd2l0aGluIGFycmF5CiAudGVzdFswXT17
fQogLnRlc3RbMF0uYT0iYWFhIgogLnRlc3RbMV09e30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9k
YXRhL3Rlc3RfY29tbWVudF8wMS5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAx
Lmpzb24KaW5kZXggNzM2MzQ5MGE5MWQ5OTE4YzYzNTZmMTQwZjc2MDEzMDZhNGU3Y2JlOC4uNmRl
ZmU0MDA0MDRhMTdiNTBhMGRmYTFkMzllYWU4NzI1ZTk5MjNlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAxLmpzb24KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9j
b21tZW50XzAxLmpzb24KQEAgLTEsNiArMSw4IEBACiB7CiAgICAgInRlc3QiOgorICAgIC8vIENv
bW1lbnQgZm9yIGFycmF5CiAgICAgWworICAgICAgIC8vIENvbW1lbnQgd2l0aGluIGFycmF5CiAg
ICAgICAgeyAiYSIgOiAiYWFhIiB9LCAvLyBDb21tZW50IGZvciBhCiAgICAgICAgeyAiYiIgOiAi
YmJiIiB9LCAvLyBDb21tZW50IGZvciBiCiAgICAgICAgeyAiYyIgOiAiY2NjIiB9IC8vIENvbW1l
bnQgZm9yIGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMi5leHBl
Y3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMi5leHBlY3RlZApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44OTg2ZGJhYzA1ZWJiZjRjZTAwYjNkM2I0M2YxYWRiM2I2ZWQwNTZhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAyLmV4cGVjdGVkCkBAIC0wLDAgKzEs
MjMgQEAKKy49e30KKy8qIEMtc3R5bGUgY29tbWVudAorCisgICAgQy1zdHlsZS0yIGNvbW1lbnQg
Ki8KKy5jLXRlc3Q9e30KKy5jLXRlc3QuYT0xCisvKiBJbnRlcm5hbCBjb21tZW50IGMtc3R5bGUg
Ki8KKy5jLXRlc3QuYj0yCisvLyBDKystc3R5bGUgY29tbWVudAorLmNwcC10ZXN0PXt9CisvLyBN
dWx0aWxpbmUgY29tbWVudCBjcHAtc3R5bGUKKy8vIFNlY29uZCBsaW5lCisuY3BwLXRlc3QuYz0z
CisvLyBDb21tZW50IGJlZm9yZSBkb3VibGUKKy5jcHAtdGVzdC5kPTQuMQorLy8gQ29tbWVudCBi
ZWZvcmUgc3RyaW5nCisuY3BwLXRlc3QuZT0iZS1zdHJpbmciCisvLyBDb21tZW50IGJlZm9yZSB0
cnVlCisuY3BwLXRlc3QuZj10cnVlCisvLyBDb21tZW50IGJlZm9yZSBmYWxzZQorLmNwcC10ZXN0
Lmc9ZmFsc2UKKy8vIENvbW1lbnQgYmVmb3JlIG51bGwKKy5jcHAtdGVzdC5oPW51bGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMi5qc29uIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2Rh
dGEvdGVzdF9jb21tZW50XzAyLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUwNDJlMGRkNjhlYWMzZmFiZTQ4
ZDFhYjA5NDkzMDZiYTNkY2Q4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rl
c3RfY29tbWVudF8wMi5qc29uCkBAIC0wLDAgKzEsMjYgQEAKK3sKKyAgIC8qIEMtc3R5bGUgY29t
bWVudAorCisgICAgQy1zdHlsZS0yIGNvbW1lbnQgKi8KKyAgICJjLXRlc3QiIDogeworICAgICAg
ImEiIDogMSwKKyAgICAgIC8qIEludGVybmFsIGNvbW1lbnQgYy1zdHlsZSAqLworICAgICAgImIi
IDogMgorICAgfSwKKyAgIC8vIEMrKy1zdHlsZSBjb21tZW50CisgICAiY3BwLXRlc3QiIDogewor
ICAgICAgLy8gTXVsdGlsaW5lIGNvbW1lbnQgY3BwLXN0eWxlCisgICAgICAvLyBTZWNvbmQgbGlu
ZQorICAgICAgImMiIDogMywKKyAgICAgIC8vIENvbW1lbnQgYmVmb3JlIGRvdWJsZQorICAgICAg
ImQiIDogNC4xLAorICAgICAgLy8gQ29tbWVudCBiZWZvcmUgc3RyaW5nCisgICAgICAiZSIgOiAi
ZS1zdHJpbmciLAorICAgICAgLy8gQ29tbWVudCBiZWZvcmUgdHJ1ZQorICAgICAgImYiIDogdHJ1
ZSwKKyAgICAgIC8vIENvbW1lbnQgYmVmb3JlIGZhbHNlCisgICAgICAiZyIgOiBmYWxzZSwKKyAg
ICAgIC8vIENvbW1lbnQgYmVmb3JlIG51bGwKKyAgICAgICJoIiA6IG51bGwKKyAgIH0KK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMS5leHBlY3RlZCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMS5leHBlY3RlZAppbmRleCA1OTNmMWRiMzJiYjY5ZjAy
Y2M0NTU3OWQ1OTY2NjJhOWRlNWM1YTc5Li40NjNlMTQ5ZGU4NzEzMDllNDM1NTIyNDcwZWU2ZDE1
ZjM3MjU1YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDEuZXhw
ZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAxLmV4cGVjdGVkCkBAIC0x
ICsxLDIgQEAKKy8vIE1heCBzaWduZWQgaW50ZWdlcgogLj0yMTQ3NDgzNjQ3CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDIuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X2ludGVnZXJfMDIuZXhwZWN0ZWQKaW5kZXggNGI4M2JkN2NhZTNkOGU1ODYwYTkxNThl
ZWY5MzNmMGE5ZjhhY2MzNC4uMDc3M2UwODUxYTQ5ZGE3YWI3NWJhYzllNzMyOGM2MDQ4YmIyYWU0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAyLmV4cGVjdGVkCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMi5leHBlY3RlZApAQCAtMSArMSwyIEBA
CisvLyBNaW4gc2lnbmVkIGludGVnZXIKIC49LTIxNDc0ODM2NDgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMy5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3Rf
aW50ZWdlcl8wMy5leHBlY3RlZAppbmRleCAzN2MxY2IxNDZiMGUxZGJkMmVkMmU1NDA3ZWJhYmMy
NjBhMGI4MTc5Li5jN2VmZmY3OTllYjMzNjlhYWVmY2UyYzNjNTg2ZDc4ZTA3YmRkOGE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDMuZXhwZWN0ZWQKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAzLmV4cGVjdGVkCkBAIC0xICsxLDIgQEAKKy8vIE1h
eCB1bnNpZ25lZCBpbnRlZ2VyCiAuPTQyOTQ5NjcyOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9k
YXRhL3Rlc3RfaW50ZWdlcl8wNC5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdl
cl8wNC5leHBlY3RlZAppbmRleCBiN2I1NDhlM2QzMzI4ZWY3NjBlNGQxOTNjMjljOGM0NGI4OWU5
NWM2Li4zOWY4NTY3MDQwZmM4YzlkMmMxM2E5ZmQzOGFlZDRmNmZlMWEwMjgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDQuZXhwZWN0ZWQKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0
L2RhdGEvdGVzdF9pbnRlZ2VyXzA0LmV4cGVjdGVkCkBAIC0xLDIgKzEsMyBAQAorLy8gTWluIHVu
c2lnbmVkIGludGVnZXIKIC49MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3By
ZXNlcnZlX2NvbW1lbnRfMDEuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3ByZXNlcnZl
X2NvbW1lbnRfMDEuZXhwZWN0ZWQKaW5kZXggOGQ4ODA0MTA4NjZhMzg2NGI0OTdjZmU0YTE2Y2Ji
YjBhZTE1MTUxMC4uMjc5N2FhN2Q2YmVkZjU0MjU0OWYxZTkyODE3N2U5OTI2MTdkNjEwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9wcmVzZXJ2ZV9jb21tZW50XzAxLmV4cGVjdGVk
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcHJlc2VydmVfY29tbWVudF8wMS5leHBlY3RlZApA
QCAtMSwzICsxLDExIEBACisvKiBBIGNvbW1lbnQKKyAgIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhl
IGZpbGUuCisgKi8KIC49e30KIC5maXJzdD0xCisvKiBDb21tZW50IGJlZm9yZSAnc2Vjb25kJwor
ICovCiAuc2Vjb25kPTIKKy8qIEEgY29tbWVudCBhdCAKKyAgIHRoZSBlbmQgb2YgdGhlIGZpbGUu
CisgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wMS5leHBlY3RlZCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wMS5leHBlY3RlZAppbmRleCBhZTIzNTcyMzFlOTRi
NThkZTU4OTc1MTI4MWE1ZjNiNDcwNGQxNjMwLi45NTE0ODI3MDhhMGE0YzJjMDIzZDllMzM0MmFk
NGVmNDk5NmU0MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDEuZXhw
ZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzAxLmV4cGVjdGVkCkBAIC0xLDIg
KzEsMyBAQAorLy8gMl4zMyA9PiBvdXQgb2YgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRvdWJs
ZQogLj04NTg5OTM0NTkyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8w
Mi5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wMi5leHBlY3RlZAppbmRleCBk
ZjhkZTQyMTA5YWQwYzlkOTQ1ZTg1ZjU2ODUxMDBiZGI4NjBjYzlkLi5iODBjMDA0ODExOTQ2MDQ3
NWIzN2U5NTg4Y2ViZjI3NGFmMGQ5YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0
X3JlYWxfMDIuZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzAyLmV4cGVj
dGVkCkBAIC0xLDIgKzEsMyBAQAorLy8gLTJeMzIgPT4gb3V0IG9mIHNpZ25lZCBpbnRlZ2VyIHJh
bmdlLCBzd2l0Y2ggdG8gZG91YmxlCiAuPS00Mjk0OTY3Mjk1CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9kYXRhL3Rlc3RfcmVhbF8wMy5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVh
bF8wMy5leHBlY3RlZAppbmRleCBkZjhkZTQyMTA5YWQwYzlkOTQ1ZTg1ZjU2ODUxMDBiZGI4NjBj
YzlkLi5iODBjMDA0ODExOTQ2MDQ3NWIzN2U5NTg4Y2ViZjI3NGFmMGQ5YzBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDMuZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2Rh
dGEvdGVzdF9yZWFsXzAzLmV4cGVjdGVkCkBAIC0xLDIgKzEsMyBAQAorLy8gLTJeMzIgPT4gb3V0
IG9mIHNpZ25lZCBpbnRlZ2VyIHJhbmdlLCBzd2l0Y2ggdG8gZG91YmxlCiAuPS00Mjk0OTY3Mjk1
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNC5leHBlY3RlZCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNC5leHBlY3RlZAppbmRleCBkNzI2YWJlNDBiYTQyNDI1
ZmRlODNhYWY0YWUwZjI4YTExM2JiNmI3Li5mZjcxYTIzZTE0MTU1N2MyYjU3ODhkZjkzMjgxMTll
NDA0Y2U4ZWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDQuZXhwZWN0
ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA0LmV4cGVjdGVkCkBAIC0xLDIgKzEs
MyBAQAorLy8gMS4yMzQ1Njc4CiAuPTEuMjM0NTY3OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3Qv
ZGF0YS90ZXN0X3JlYWxfMDUuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDUu
ZXhwZWN0ZWQKaW5kZXggOTQ5ZmQ4ZjU1ZGU5N2E0MjY2YzlhYjY1ZGJmNTJiMGUxYTFmZTBkZC4u
N2E0NjA5MzJkN2I3YzVmYTY0MmJhNjc5MzM3YWI0NzJiZTAxNzFhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA1LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rl
c3RfcmVhbF8wNS5leHBlY3RlZApAQCAtMSwzICsxLDQgQEAKKy8vIDEyMzQ1NjcuOAogLj0xMjM0
NTY3LjgKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDYuZXhwZWN0
ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDYuZXhwZWN0ZWQKaW5kZXggMDNiN2Q3Zjk4
NzI5ZjliYjlkNjY2NGVmOGI0NGVlM2M0MGIxNzYzMy4uYTRhMDA0ZGViMTQwNDI1YTliYzI5YWJh
NjZkNmMyMWZlM2ExMThhZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA2
LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNi5leHBlY3RlZApAQCAt
MSwzICsxLDQgQEAKKy8vIC0xLjIzNDU2NzgKIC49LTEuMjM0NTY3OAogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNy5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rl
c3RfcmVhbF8wNy5leHBlY3RlZAppbmRleCAxMjAyNWE0MDRiMGVhOWQ1YzI4NzA4N2YwYzY5MmVl
MDQzNGYyOGM5Li5kYzAyYTg5NTgzMTEyOTNjY2Y4ZTU1Zjc4ZjQ4ZmU3YjU2NWRjNjY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDcuZXhwZWN0ZWQKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9yZWFsXzA3LmV4cGVjdGVkCkBAIC0xLDMgKzEsNCBAQAorLy8gLTEyMzQ1
NjcuOAogLj0tMTIzNDU2Ny44CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9y
ZWFsXzA4LmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA4LmV4cGVjdGVkCmlu
ZGV4IDlhNWYwNjI4NDIxZmI3YzM5OTI3YmVlMmUyOTVkYjdhNGQ5YmFmYmYuLmIxZGVlZjkxOWU5
NWIyODJjYTE4NTE0YWQ3OTM3NTQyNmFmYzA2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRh
L3Rlc3RfcmVhbF8wOC5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDgu
ZXhwZWN0ZWQKQEAgLTEgKzEsNCBAQAorLy8gT3V0IG9mIDMyLWJpdCBpbnRlZ2VyIHJhbmdlLCBz
d2l0Y2ggdG8gZG91YmxlIGluIDMyLWJpdCBtb2RlLiBMZW5ndGggdGhlCisvLyBzYW1lIGFzIFVJ
TlRfTUFYIGluIGJhc2UgMTAgYW5kIGRpZ2l0IGxlc3MgdGhhbiBVSU5UX01BWCdzIGxhc3QgZGln
aXQgaW4KKy8vIG9yZGVyIHRvIGNhdGNoIGEgYnVnIGluIHRoZSBwYXJzaW5nIGNvZGUuCiAuPTQz
MDAwMDAwMDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wOS5leHBlY3Rl
ZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wOS5leHBlY3RlZAppbmRleCA2ZGE4MTVlNjY5
ZWM5MTIwMjQ5ZGYyZTJhMWU0ZGFlNWZkMTQ2NDJjLi5hYTJkYmIyODQ5ZDI1MWJlZDViYjE5ZGEw
NTUxYTlhNmY0ZjE3NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDku
ZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA5LmV4cGVjdGVkCkBAIC0x
ICsxLDQgQEAKKy8vIE91dCBvZiA2NC1iaXQgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRvdWJs
ZSBpbiBhbGwgbW9kZXMuIExlbmd0aCB0aGUgc2FtZQorLy8gYXMgVUxPTkdfTUFYIGluIGJhc2Ug
MTAgYW5kIGRpZ2l0IGxlc3MgdGhhbiBVTE9OR19NQVgncyBsYXN0IGRpZ2l0IGluIG9yZGVyCisv
LyB0byBjYXRjaCBhIGJ1ZyBpbiB0aGUgcGFyc2luZyBjb2RlLgogLj0xLjllKzE5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMTAuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X3JlYWxfMTAuZXhwZWN0ZWQKaW5kZXggMDExMjZiZmJlYzFmZjUxMDU1MjY4NjA1YzAy
NzM0ZWZmODFiM2U5OC4uZDI4YTQzMGVhYjRkOWM3MzdjZGNiODI2NWY0YWNjOWI4N2Y5MDEyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzEwLmV4cGVjdGVkCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8xMC5leHBlY3RlZApAQCAtMSArMSw0IEBACisvLyBPdXQg
b2YgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHJhbmdlLCBzd2l0Y2ggdG8gZG91YmxlIGluIGFsbCBt
b2Rlcy4gTGVuZ3RoCisvLyB0aGUgc2FtZSBhcyBJTlRfTUlOIGluIGJhc2UgMTAgYW5kIGRpZ2l0
IGxlc3MgdGhhbiBJTlRfTUlOJ3MgbGFzdCBkaWdpdCBpbgorLy8gb3JkZXIgdG8gY2F0Y2ggYSBi
dWcgaW4gdGhlIHBhcnNpbmcgY29kZS4KIC49LTIyMDAwMDAwMDEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9kYXRhL3Rlc3RfcmVhbF8xMS5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVh
bF8xMS5leHBlY3RlZAppbmRleCAxN2Y0MTg3Yjk4ZTU4MmE5YzQ0YjA3M2E4ZGQ2YTkyMDYwZmQ1
ZTRhLi4yNTUxOTQ2ZjUyZjZhNGI5YWNlYzE1MjY5MjQwNTdlYzdmZGE3ZWVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMTEuZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2Rh
dGEvdGVzdF9yZWFsXzExLmV4cGVjdGVkCkBAIC0xICsxLDQgQEAKKy8vIE91dCBvZiA2NC1iaXQg
c2lnbmVkIGludGVnZXIgcmFuZ2UsIHN3aXRjaCB0byBkb3VibGUgaW4gYWxsIG1vZGVzLiBMZW5n
dGgKKy8vIHRoZSBzYW1lIGFzIExPTkdfTUlOIGluIGJhc2UgMTAgYW5kIGRpZ2l0IGxlc3MgdGhh
biBMT05HX01JTidzIGxhc3QgZGlnaXQgaW4KKy8vIG9yZGVyIHRvIGNhdGNoIGEgYnVnIGluIHRo
ZSBwYXJzaW5nIGNvZGUuCiAuPS05LjNlKzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90
ZXN0X3JlYWxfMTIuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMTIuZXhwZWN0
ZWQKaW5kZXggYTAwMDMxOTJkZDE5YjcxY2Y5YjI3YTFmNmUyMDFmMTNhM2Y3NjJiNS4uOTNlMjQx
N2QzNDI0ZGVhMWIyNzUxOTYyMGIyYTNiMjQ1ZTEyMTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0
L2RhdGEvdGVzdF9yZWFsXzEyLmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVh
bF8xMi5leHBlY3RlZApAQCAtMSArMSwyIEBACisvLyAyXjY0IC0+IHN3aXRjaCB0byBkb3VibGUu
CiAuPTEuODQ0Njc0NDA3MzcwOTU1ZSsxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2dlbmVyYXRl
X2V4cGVjdGVkLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2dlbmVyYXRlX2V4cGVjdGVkLnB5CmluZGV4IDViMjE1
YzQ2NzA0YjUyMjI1NjNiNmEzZDg5MzQ2YWU0ZDMyOTQ5NWQuLmUwNDlhYjVmNGQxMjMzNjNmMGVj
Y2VmNzQ5YmY0YThhNDIwZGUyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9nZW5lcmF0ZV9leHBl
Y3RlZC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZ2VuZXJhdGVfZXhwZWN0ZWQucHkKQEAgLTEsMTEgKzEs
MTcgQEAKKyMgQ29weXJpZ2h0IDIwMDcgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNw
cCBBdXRob3JzCisjIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCisjIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisj
IFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNv
dXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu
Y3Rpb24KIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MucGF0aAotZm9yIHBhdGggaW4gZ2xvYi5nbG9i
KCAnKi5qc29uJyApOgorZm9yIHBhdGggaW4gZ2xvYi5nbG9iKCcqLmpzb24nKToKICAgICB0ZXh0
ID0gZmlsZShwYXRoLCdydCcpLnJlYWQoKQogICAgIHRhcmdldCA9IG9zLnBhdGguc3BsaXRleHQo
cGF0aClbMF0gKyAnLmV4cGVjdGVkJwotICAgIGlmIG9zLnBhdGguZXhpc3RzKCB0YXJnZXQgKToK
LSAgICAgICAgcHJpbnQgJ3NraXBwaW5nOicsIHRhcmdldAorICAgIGlmIG9zLnBhdGguZXhpc3Rz
KHRhcmdldCk6CisgICAgICAgIHByaW50KCdza2lwcGluZzonLCB0YXJnZXQpCiAgICAgZWxzZToK
LSAgICAgICAgcHJpbnQgJ2NyZWF0aW5nOicsIHRhcmdldAorICAgICAgICBwcmludCgnY3JlYXRp
bmc6JywgdGFyZ2V0KQogICAgICAgICBmaWxlKHRhcmdldCwnd3QnKS53cml0ZSh0ZXh0KQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Rlc3QvcHlqc29udGVzdHJ1bm5lci5weSBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9weWpz
b250ZXN0cnVubmVyLnB5CmluZGV4IDUwNGYzZGIyZTc5YTI4MTE3NDEyMmZlYzM4NTE3Y2U1ODIx
MjAzMzkuLmJkNzQ5YjUzMGYzMGU4MjY0MjIxZmFmMGY5MmRmNjVkZTcyOTQ5MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9weWpzb250ZXN0cnVubmVyLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9weWpzb250
ZXN0cnVubmVyLnB5CkBAIC0xLDEyICsxLDE5IEBACi0jIFNpbXBsZSBpbXBsZW1lbnRhdGlvbiBv
ZiBhIGpzb24gdGVzdCBydW5uZXIgdG8gcnVuIHRoZSB0ZXN0IGFnYWluc3QganNvbi1weS4KKyMg
Q29weXJpZ2h0IDIwMDcgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3Jz
CisjIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRl
c2lyZWQgYW5kCisjIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxl
IExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC9MSUNFTlNFCiAKKyIiIlNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBhIGpzb24gdGVzdCBy
dW5uZXIgdG8gcnVuIHRoZSB0ZXN0IGFnYWluc3QKK2pzb24tcHkuIiIiCisKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBzeXMKIGltcG9ydCBvcy5wYXRoCiBp
bXBvcnQganNvbgogaW1wb3J0IHR5cGVzCiAKIGlmIGxlbihzeXMuYXJndikgIT0gMjoKLSAgICBw
cmludCAiVXNhZ2U6ICVzIGlucHV0LWpzb24tZmlsZSIsIHN5cy5hcmd2WzBdCisgICAgcHJpbnQo
IlVzYWdlOiAlcyBpbnB1dC1qc29uLWZpbGUiLCBzeXMuYXJndlswXSkKICAgICBzeXMuZXhpdCgz
KQogICAgIAogaW5wdXRfcGF0aCA9IHN5cy5hcmd2WzFdCkBAIC0xNSw1MCArMjIsNTAgQEAgYWN0
dWFsX3BhdGggPSBiYXNlX3BhdGggKyAnLmFjdHVhbCcKIHJld3JpdGVfcGF0aCA9IGJhc2VfcGF0
aCArICcucmV3cml0ZScKIHJld3JpdGVfYWN0dWFsX3BhdGggPSBiYXNlX3BhdGggKyAnLmFjdHVh
bC1yZXdyaXRlJwogCi1kZWYgdmFsdWVUcmVlVG9TdHJpbmcoIGZvdXQsIHZhbHVlLCBwYXRoID0g
Jy4nICk6CitkZWYgdmFsdWVUcmVlVG9TdHJpbmcoZm91dCwgdmFsdWUsIHBhdGggPSAnLicpOgog
ICAgIHR5ID0gdHlwZSh2YWx1ZSkgCiAgICAgaWYgdHkgIGlzIHR5cGVzLkRpY3RUeXBlOgotICAg
ICAgICBmb3V0LndyaXRlKCAnJXM9e31cbicgJSBwYXRoICkKKyAgICAgICAgZm91dC53cml0ZSgn
JXM9e31cbicgJSBwYXRoKQogICAgICAgICBzdWZmaXggPSBwYXRoWy0xXSAhPSAnLicgYW5kICcu
JyBvciAnJwogICAgICAgICBuYW1lcyA9IHZhbHVlLmtleXMoKQogICAgICAgICBuYW1lcy5zb3J0
KCkKICAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6Ci0gICAgICAgICAgICB2YWx1ZVRyZWVUb1N0
cmluZyggZm91dCwgdmFsdWVbbmFtZV0sIHBhdGggKyBzdWZmaXggKyBuYW1lICkKKyAgICAgICAg
ICAgIHZhbHVlVHJlZVRvU3RyaW5nKGZvdXQsIHZhbHVlW25hbWVdLCBwYXRoICsgc3VmZml4ICsg
bmFtZSkKICAgICBlbGlmIHR5IGlzIHR5cGVzLkxpc3RUeXBlOgotICAgICAgICBmb3V0LndyaXRl
KCAnJXM9W11cbicgJSBwYXRoICkKLSAgICAgICAgZm9yIGluZGV4LCBjaGlsZFZhbHVlIGluIHpp
cCggeHJhbmdlKDAsbGVuKHZhbHVlKSksIHZhbHVlICk6Ci0gICAgICAgICAgICB2YWx1ZVRyZWVU
b1N0cmluZyggZm91dCwgY2hpbGRWYWx1ZSwgcGF0aCArICdbJWRdJyAlIGluZGV4ICkKKyAgICAg
ICAgZm91dC53cml0ZSgnJXM9W11cbicgJSBwYXRoKQorICAgICAgICBmb3IgaW5kZXgsIGNoaWxk
VmFsdWUgaW4gemlwKHhyYW5nZSgwLGxlbih2YWx1ZSkpLCB2YWx1ZSk6CisgICAgICAgICAgICB2
YWx1ZVRyZWVUb1N0cmluZyhmb3V0LCBjaGlsZFZhbHVlLCBwYXRoICsgJ1slZF0nICUgaW5kZXgp
CiAgICAgZWxpZiB0eSBpcyB0eXBlcy5TdHJpbmdUeXBlOgotICAgICAgICBmb3V0LndyaXRlKCAn
JXM9IiVzIlxuJyAlIChwYXRoLHZhbHVlKSApCisgICAgICAgIGZvdXQud3JpdGUoJyVzPSIlcyJc
bicgJSAocGF0aCx2YWx1ZSkpCiAgICAgZWxpZiB0eSBpcyB0eXBlcy5JbnRUeXBlOgotICAgICAg
ICBmb3V0LndyaXRlKCAnJXM9JWRcbicgJSAocGF0aCx2YWx1ZSkgKQorICAgICAgICBmb3V0Lndy
aXRlKCclcz0lZFxuJyAlIChwYXRoLHZhbHVlKSkKICAgICBlbGlmIHR5IGlzIHR5cGVzLkZsb2F0
VHlwZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPSUuMTZnXG4nICUgKHBhdGgsdmFsdWUpICkK
KyAgICAgICAgZm91dC53cml0ZSgnJXM9JS4xNmdcbicgJSAocGF0aCx2YWx1ZSkpCiAgICAgZWxp
ZiB2YWx1ZSBpcyBUcnVlOgotICAgICAgICBmb3V0LndyaXRlKCAnJXM9dHJ1ZVxuJyAlIHBhdGgg
KQorICAgICAgICBmb3V0LndyaXRlKCclcz10cnVlXG4nICUgcGF0aCkKICAgICBlbGlmIHZhbHVl
IGlzIEZhbHNlOgotICAgICAgICBmb3V0LndyaXRlKCAnJXM9ZmFsc2VcbicgJSBwYXRoICkKKyAg
ICAgICAgZm91dC53cml0ZSgnJXM9ZmFsc2VcbicgJSBwYXRoKQogICAgIGVsaWYgdmFsdWUgaXMg
Tm9uZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPW51bGxcbicgJSBwYXRoICkKKyAgICAgICAg
Zm91dC53cml0ZSgnJXM9bnVsbFxuJyAlIHBhdGgpCiAgICAgZWxzZToKICAgICAgICAgYXNzZXJ0
IEZhbHNlIGFuZCAiVW5leHBlY3RlZCB2YWx1ZSB0eXBlIgogICAgICAgICAKLWRlZiBwYXJzZUFu
ZFNhdmVWYWx1ZVRyZWUoIGlucHV0LCBhY3R1YWxfcGF0aCApOgotICAgIHJvb3QgPSBqc29uLmxv
YWRzKCBpbnB1dCApCi0gICAgZm91dCA9IGZpbGUoIGFjdHVhbF9wYXRoLCAnd3QnICkKLSAgICB2
YWx1ZVRyZWVUb1N0cmluZyggZm91dCwgcm9vdCApCitkZWYgcGFyc2VBbmRTYXZlVmFsdWVUcmVl
KGlucHV0LCBhY3R1YWxfcGF0aCk6CisgICAgcm9vdCA9IGpzb24ubG9hZHMoaW5wdXQpCisgICAg
Zm91dCA9IGZpbGUoYWN0dWFsX3BhdGgsICd3dCcpCisgICAgdmFsdWVUcmVlVG9TdHJpbmcoZm91
dCwgcm9vdCkKICAgICBmb3V0LmNsb3NlKCkKICAgICByZXR1cm4gcm9vdAogCi1kZWYgcmV3cml0
ZVZhbHVlVHJlZSggdmFsdWUsIHJld3JpdGVfcGF0aCApOgotICAgIHJld3JpdGUgPSBqc29uLmR1
bXBzKCB2YWx1ZSApCitkZWYgcmV3cml0ZVZhbHVlVHJlZSh2YWx1ZSwgcmV3cml0ZV9wYXRoKToK
KyAgICByZXdyaXRlID0ganNvbi5kdW1wcyh2YWx1ZSkKICAgICAjcmV3cml0ZSA9IHJld3JpdGVb
MTotMV0gICMgU29tZWhvdyB0aGUgc3RyaW5nIGlzIHF1b3RlZCAhIGpzb25weSBidWcgPwotICAg
IGZpbGUoIHJld3JpdGVfcGF0aCwgJ3d0Jykud3JpdGUoIHJld3JpdGUgKyAnXG4nICkKKyAgICBm
aWxlKHJld3JpdGVfcGF0aCwgJ3d0Jykud3JpdGUocmV3cml0ZSArICdcbicpCiAgICAgcmV0dXJu
IHJld3JpdGUKICAgICAKLWlucHV0ID0gZmlsZSggaW5wdXRfcGF0aCwgJ3J0JyApLnJlYWQoKQot
cm9vdCA9IHBhcnNlQW5kU2F2ZVZhbHVlVHJlZSggaW5wdXQsIGFjdHVhbF9wYXRoICkKLXJld3Jp
dGUgPSByZXdyaXRlVmFsdWVUcmVlKCBqc29uLndyaXRlKCByb290ICksIHJld3JpdGVfcGF0aCAp
Ci1yZXdyaXRlX3Jvb3QgPSBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUoIHJld3JpdGUsIHJld3JpdGVf
YWN0dWFsX3BhdGggKQoraW5wdXQgPSBmaWxlKGlucHV0X3BhdGgsICdydCcpLnJlYWQoKQorcm9v
dCA9IHBhcnNlQW5kU2F2ZVZhbHVlVHJlZShpbnB1dCwgYWN0dWFsX3BhdGgpCityZXdyaXRlID0g
cmV3cml0ZVZhbHVlVHJlZShqc29uLndyaXRlKHJvb3QpLCByZXdyaXRlX3BhdGgpCityZXdyaXRl
X3Jvb3QgPSBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUocmV3cml0ZSwgcmV3cml0ZV9hY3R1YWxfcGF0
aCkKIAotc3lzLmV4aXQoIDAgKQorc3lzLmV4aXQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9y
dW5qc29udGVzdHMucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcnVuanNvbnRlc3RzLnB5CmluZGV4IGZmZThiZDUx
ZWEyZGYxMDY0OGMxMmQ0MmQyMGM3MDUwMGFmZDU5OTQuLmRmZGVjYTNlYWJmZTYwNWUyMjEyZTk0
MTVjMDNiNTdmM2MxYWM4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9ydW5qc29udGVzdHMucHkK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS90ZXN0L3J1bmpzb250ZXN0cy5weQpAQCAtMSwxNyArMSw0MiBAQAorIyBDb3B5
cmlnaHQgMjAwNyBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMg
RGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJl
ZCBhbmQKKyMgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKyMgU2VlIGZpbGUgTElD
RU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0
L0xJQ0VOU0UKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCitmcm9tIGlvIGltcG9ydCBvcGVuCitm
cm9tIGdsb2IgaW1wb3J0IGdsb2IKIGltcG9ydCBzeXMKIGltcG9ydCBvcwogaW1wb3J0IG9zLnBh
dGgKLWZyb20gZ2xvYiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9wdHBhcnNlCiAKIFZBTEdSSU5EX0NN
RCA9ICd2YWxncmluZCAtLXRvb2w9bWVtY2hlY2sgLS1sZWFrLWNoZWNrPXllcyAtLXVuZGVmLXZh
bHVlLWVycm9ycz15ZXMgJwogCi1kZWYgY29tcGFyZU91dHB1dHMoIGV4cGVjdGVkLCBhY3R1YWws
IG1lc3NhZ2UgKToKK2RlZiBnZXRTdGF0dXNPdXRwdXQoY21kKToKKyAgICAiIiIKKyAgICBSZXR1
cm4gaW50LCB1bmljb2RlIChmb3IgYm90aCBQeXRob24gMiBhbmQgMykuCisgICAgTm90ZTogb3Mu
cG9wZW4oKS5jbG9zZSgpIHdvdWxkIHJldHVybiBOb25lIGZvciAwLgorICAgICIiIgorICAgIHBy
aW50KGNtZCwgZmlsZT1zeXMuc3RkZXJyKQorICAgIHBpcGUgPSBvcy5wb3BlbihjbWQpCisgICAg
cHJvY2Vzc19vdXRwdXQgPSBwaXBlLnJlYWQoKQorICAgIHRyeToKKyAgICAgICAgIyBXZSBoYXZl
IGJlZW4gdXNpbmcgb3MucG9wZW4oKS4gV2hlbiB3ZSByZWFkKCkgdGhlIHJlc3VsdAorICAgICAg
ICAjIHdlIGdldCAnc3RyJyAoYnl0ZXMpIGluIHB5MiwgYW5kICdzdHInICh1bmljb2RlKSBpbiBw
eTMuCisgICAgICAgICMgVWdoISBUaGVyZSBtdXN0IGJlIGEgYmV0dGVyIHdheSB0byBoYW5kbGUg
dGhpcy4KKyAgICAgICAgcHJvY2Vzc19vdXRwdXQgPSBwcm9jZXNzX291dHB1dC5kZWNvZGUoJ3V0
Zi04JykKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgIHBhc3MgICMgcHl0aG9u
MworICAgIHN0YXR1cyA9IHBpcGUuY2xvc2UoKQorICAgIHJldHVybiBzdGF0dXMsIHByb2Nlc3Nf
b3V0cHV0CitkZWYgY29tcGFyZU91dHB1dHMoZXhwZWN0ZWQsIGFjdHVhbCwgbWVzc2FnZSk6CiAg
ICAgZXhwZWN0ZWQgPSBleHBlY3RlZC5zdHJpcCgpLnJlcGxhY2UoJ1xyJywnJykuc3BsaXQoJ1xu
JykKICAgICBhY3R1YWwgPSBhY3R1YWwuc3RyaXAoKS5yZXBsYWNlKCdccicsJycpLnNwbGl0KCdc
bicpCiAgICAgZGlmZl9saW5lID0gMAotICAgIG1heF9saW5lX3RvX2NvbXBhcmUgPSBtaW4oIGxl
bihleHBlY3RlZCksIGxlbihhY3R1YWwpICkKLSAgICBmb3IgaW5kZXggaW4geHJhbmdlKDAsbWF4
X2xpbmVfdG9fY29tcGFyZSk6CisgICAgbWF4X2xpbmVfdG9fY29tcGFyZSA9IG1pbihsZW4oZXhw
ZWN0ZWQpLCBsZW4oYWN0dWFsKSkKKyAgICBmb3IgaW5kZXggaW4gcmFuZ2UoMCxtYXhfbGluZV90
b19jb21wYXJlKToKICAgICAgICAgaWYgZXhwZWN0ZWRbaW5kZXhdLnN0cmlwKCkgIT0gYWN0dWFs
W2luZGV4XS5zdHJpcCgpOgogICAgICAgICAgICAgZGlmZl9saW5lID0gaW5kZXggKyAxCiAgICAg
ICAgICAgICBicmVhawpAQCAtMTksNyArNDQsNyBAQCBkZWYgY29tcGFyZU91dHB1dHMoIGV4cGVj
dGVkLCBhY3R1YWwsIG1lc3NhZ2UgKToKICAgICAgICAgZGlmZl9saW5lID0gbWF4X2xpbmVfdG9f
Y29tcGFyZSsxCiAgICAgaWYgZGlmZl9saW5lID09IDA6CiAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgZGVmIHNhZmVHZXRMaW5lKCBsaW5lcywgaW5kZXggKToKKyAgICBkZWYgc2FmZUdldExpbmUo
bGluZXMsIGluZGV4KToKICAgICAgICAgaW5kZXggKz0gLTEKICAgICAgICAgaWYgaW5kZXggPj0g
bGVuKGxpbmVzKToKICAgICAgICAgICAgIHJldHVybiAnJwpAQCAtMjksODUgKzU0LDEyMSBAQCBk
ZWYgY29tcGFyZU91dHB1dHMoIGV4cGVjdGVkLCBhY3R1YWwsIG1lc3NhZ2UgKToKICAgQWN0dWFs
OiAgICclcycKICIiIiAlIChtZXNzYWdlLCBkaWZmX2xpbmUsCiAgICAgICAgc2FmZUdldExpbmUo
ZXhwZWN0ZWQsZGlmZl9saW5lKSwKLSAgICAgICBzYWZlR2V0TGluZShhY3R1YWwsZGlmZl9saW5l
KSApCi0gICAgICAgIAotZGVmIHNhZmVSZWFkRmlsZSggcGF0aCApOgorICAgICAgIHNhZmVHZXRM
aW5lKGFjdHVhbCxkaWZmX2xpbmUpKQorCitkZWYgc2FmZVJlYWRGaWxlKHBhdGgpOgogICAgIHRy
eToKLSAgICAgICAgcmV0dXJuIGZpbGUoIHBhdGgsICdydCcgKS5yZWFkKCkKLSAgICBleGNlcHQg
SU9FcnJvciwgZToKKyAgICAgICAgcmV0dXJuIG9wZW4ocGF0aCwgJ3J0JywgZW5jb2RpbmcgPSAn
dXRmLTgnKS5yZWFkKCkKKyAgICBleGNlcHQgSU9FcnJvciBhcyBlOgogICAgICAgICByZXR1cm4g
JzxGaWxlICIlcyIgaXMgbWlzc2luZzogJXM+JyAlIChwYXRoLGUpCiAKLWRlZiBydW5BbGxUZXN0
cygganNvbnRlc3RfZXhlY3V0YWJsZV9wYXRoLCBpbnB1dF9kaXIgPSBOb25lLAotICAgICAgICAg
ICAgICAgICB1c2VfdmFsZ3JpbmQ9RmFsc2UsIHdpdGhfanNvbl9jaGVja2VyPUZhbHNlICk6Citk
ZWYgcnVuQWxsVGVzdHMoanNvbnRlc3RfZXhlY3V0YWJsZV9wYXRoLCBpbnB1dF9kaXIgPSBOb25l
LAorICAgICAgICAgICAgICAgICB1c2VfdmFsZ3JpbmQ9RmFsc2UsIHdpdGhfanNvbl9jaGVja2Vy
PUZhbHNlLAorICAgICAgICAgICAgICAgICB3cml0ZXJDbGFzcz0nU3R5bGVkV3JpdGVyJyk6CiAg
ICAgaWYgbm90IGlucHV0X2RpcjoKLSAgICAgICAgaW5wdXRfZGlyID0gb3MucGF0aC5qb2luKCBv
cy5nZXRjd2QoKSwgJ2RhdGEnICkKLSAgICB0ZXN0cyA9IGdsb2IoIG9zLnBhdGguam9pbiggaW5w
dXRfZGlyLCAnKi5qc29uJyApICkKKyAgICAgICAgaW5wdXRfZGlyID0gb3MucGF0aC5qb2luKG9z
LmdldGN3ZCgpLCAnZGF0YScpCisgICAgdGVzdHMgPSBnbG9iKG9zLnBhdGguam9pbihpbnB1dF9k
aXIsICcqLmpzb24nKSkKICAgICBpZiB3aXRoX2pzb25fY2hlY2tlcjoKLSAgICAgICAgdGVzdF9q
c29uY2hlY2tlciA9IGdsb2IoIG9zLnBhdGguam9pbiggaW5wdXRfZGlyLCAnLi4vanNvbmNoZWNr
ZXInLCAnKi5qc29uJyApICkKKyAgICAgICAgYWxsX3Rlc3RfanNvbmNoZWNrZXIgPSBnbG9iKG9z
LnBhdGguam9pbihpbnB1dF9kaXIsICcuLi9qc29uY2hlY2tlcicsICcqLmpzb24nKSkKKyAgICAg
ICAgIyBUaGVzZSB0ZXN0cyBmYWlsIHdpdGggc3RyaWN0IGpzb24gc3VwcG9ydCwgYnV0IHBhc3Mg
d2l0aCBqc29uY3BwIGV4dHJhIGxpZW5pZW5jeQorICAgICAgICAiIiIKKyAgICAgICAgRmFpbHVy
ZSBkZXRhaWxzOgorICAgICAgICAqIFRlc3QgLi4vanNvbmNoZWNrZXIvZmFpbDI1Lmpzb24KKyAg
ICAgICAgUGFyc2luZyBzaG91bGQgaGF2ZSBmYWlsZWQ6CisgICAgICAgIFsiCXRhYgljaGFyYWN0
ZXIJaW4Jc3RyaW5nCSJdCisKKyAgICAgICAgKiBUZXN0IC4uL2pzb25jaGVja2VyL2ZhaWwxMy5q
c29uCisgICAgICAgIFBhcnNpbmcgc2hvdWxkIGhhdmUgZmFpbGVkOgorICAgICAgICB7Ik51bWJl
cnMgY2Fubm90IGhhdmUgbGVhZGluZyB6ZXJvZXMiOiAwMTN9CisKKyAgICAgICAgKiBUZXN0IC4u
L2pzb25jaGVja2VyL2ZhaWwxOC5qc29uCisgICAgICAgIFBhcnNpbmcgc2hvdWxkIGhhdmUgZmFp
bGVkOgorICAgICAgICBbW1tbW1tbW1tbW1tbW1tbW1tbWyJUb28gZGVlcCJdXV1dXV1dXV1dXV1d
XV1dXV1dXQorCisgICAgICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsOC5qc29uCisgICAg
ICAgIFBhcnNpbmcgc2hvdWxkIGhhdmUgZmFpbGVkOgorICAgICAgICBbIkV4dHJhIGNsb3NlIl1d
CisKKyAgICAgICAgKiBUZXN0IC4uL2pzb25jaGVja2VyL2ZhaWw3Lmpzb24KKyAgICAgICAgUGFy
c2luZyBzaG91bGQgaGF2ZSBmYWlsZWQ6CisgICAgICAgIFsiQ29tbWEgYWZ0ZXIgdGhlIGNsb3Nl
Il0sCisKKyAgICAgICAgKiBUZXN0IC4uL2pzb25jaGVja2VyL2ZhaWwxMC5qc29uCisgICAgICAg
IFBhcnNpbmcgc2hvdWxkIGhhdmUgZmFpbGVkOgorICAgICAgICB7IkV4dHJhIHZhbHVlIGFmdGVy
IGNsb3NlIjogdHJ1ZX0gIm1pc3BsYWNlZCBxdW90ZWQgdmFsdWUiCisKKyAgICAgICAgKiBUZXN0
IC4uL2pzb25jaGVja2VyL2ZhaWwyNy5qc29uCisgICAgICAgIFBhcnNpbmcgc2hvdWxkIGhhdmUg
ZmFpbGVkOgorICAgICAgICBbImxpbmUKKyAgICAgICAgYnJlYWsiXQorICAgICAgICAiIiIKKyAg
ICAgICAga25vd25fZGlmZmVyZW5jZXNfd2l0aGpzb25jaGVja2VyID0gWyAiZmFpbDI1Lmpzb24i
LCAiZmFpbDEzLmpzb24iLCAiZmFpbDE4Lmpzb24iLCAiZmFpbDguanNvbiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWw3Lmpzb24iLCAiZmFpbDEw
Lmpzb24iLCAiZmFpbDI3Lmpzb24iIF0KKyAgICAgICAgdGVzdF9qc29uY2hlY2tlciA9IFsgdGVz
dCBmb3IgdGVzdCBpbiBhbGxfdGVzdF9qc29uY2hlY2tlciBpZiBvcy5wYXRoLmJhc2VuYW1lKHRl
c3QpIG5vdCBpbiBrbm93bl9kaWZmZXJlbmNlc193aXRoanNvbmNoZWNrZXIgXQorCiAgICAgZWxz
ZToKICAgICAgICAgdGVzdF9qc29uY2hlY2tlciA9IFtdCiAgICAgZmFpbGVkX3Rlc3RzID0gW10K
ICAgICB2YWxncmluZF9wYXRoID0gdXNlX3ZhbGdyaW5kIGFuZCBWQUxHUklORF9DTUQgb3IgJycK
ICAgICBmb3IgaW5wdXRfcGF0aCBpbiB0ZXN0cyArIHRlc3RfanNvbmNoZWNrZXI6Ci0gICAgICAg
IGV4cGVjdF9mYWlsdXJlID0gb3MucGF0aC5iYXNlbmFtZSggaW5wdXRfcGF0aCApLnN0YXJ0c3dp
dGgoICdmYWlsJyApCisgICAgICAgIGV4cGVjdF9mYWlsdXJlID0gb3MucGF0aC5iYXNlbmFtZShp
bnB1dF9wYXRoKS5zdGFydHN3aXRoKCdmYWlsJykKICAgICAgICAgaXNfanNvbl9jaGVja2VyX3Rl
c3QgPSAoaW5wdXRfcGF0aCBpbiB0ZXN0X2pzb25jaGVja2VyKSBvciBleHBlY3RfZmFpbHVyZQot
ICAgICAgICBwcmludCAnVEVTVElORzonLCBpbnB1dF9wYXRoLAorICAgICAgICBwcmludCgnVEVT
VElORzonLCBpbnB1dF9wYXRoLCBlbmQ9JyAnKQogICAgICAgICBvcHRpb25zID0gaXNfanNvbl9j
aGVja2VyX3Rlc3QgYW5kICctLWpzb24tY2hlY2tlcicgb3IgJycKLSAgICAgICAgcGlwZSA9IG9z
LnBvcGVuKCAiJXMlcyAlcyAlcyIgJSAoCi0gICAgICAgICAgICB2YWxncmluZF9wYXRoLCBqc29u
dGVzdF9leGVjdXRhYmxlX3BhdGgsIG9wdGlvbnMsCi0gICAgICAgICAgICBpbnB1dF9wYXRoKSAp
Ci0gICAgICAgIHByb2Nlc3Nfb3V0cHV0ID0gcGlwZS5yZWFkKCkKLSAgICAgICAgc3RhdHVzID0g
cGlwZS5jbG9zZSgpCisgICAgICAgIG9wdGlvbnMgKz0gJyAtLWpzb24td3JpdGVyICVzJyV3cml0
ZXJDbGFzcworICAgICAgICBjbWQgPSAnJXMlcyAlcyAiJXMiJyAlICggICAgICAgICAgICB2YWxn
cmluZF9wYXRoLCBqc29udGVzdF9leGVjdXRhYmxlX3BhdGgsIG9wdGlvbnMsCisgICAgICAgICAg
ICBpbnB1dF9wYXRoKQorICAgICAgICBzdGF0dXMsIHByb2Nlc3Nfb3V0cHV0ID0gZ2V0U3RhdHVz
T3V0cHV0KGNtZCkKICAgICAgICAgaWYgaXNfanNvbl9jaGVja2VyX3Rlc3Q6CiAgICAgICAgICAg
ICBpZiBleHBlY3RfZmFpbHVyZToKLSAgICAgICAgICAgICAgICBpZiBzdGF0dXMgaXMgTm9uZToK
LSAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0ZBSUxFRCcKLSAgICAgICAgICAgICAgICAgICAg
ZmFpbGVkX3Rlc3RzLmFwcGVuZCggKGlucHV0X3BhdGgsICdQYXJzaW5nIHNob3VsZCBoYXZlIGZh
aWxlZDpcbiVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
YWZlUmVhZEZpbGUoaW5wdXRfcGF0aCkpICkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVz
OgorICAgICAgICAgICAgICAgICAgICBwcmludCgnRkFJTEVEJykKKyAgICAgICAgICAgICAgICAg
ICAgZmFpbGVkX3Rlc3RzLmFwcGVuZCgoaW5wdXRfcGF0aCwgJ1BhcnNpbmcgc2hvdWxkIGhhdmUg
ZmFpbGVkOlxuJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNhZmVSZWFkRmlsZShpbnB1dF9wYXRoKSkpCiAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnQgJ09LJworICAgICAgICAgICAgICAgICAgICBwcmludCgnT0sn
KQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBzdGF0dXMgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICdGQUlMRUQnCi0gICAgICAgICAgICAgICAg
ICAgIGZhaWxlZF90ZXN0cy5hcHBlbmQoIChpbnB1dF9wYXRoLCAnUGFyc2luZyBmYWlsZWQ6XG4n
ICsgcHJvY2Vzc19vdXRwdXQpICkKKyAgICAgICAgICAgICAgICBpZiBzdGF0dXM6CisgICAgICAg
ICAgICAgICAgICAgIHByaW50KCdGQUlMRUQnKQorICAgICAgICAgICAgICAgICAgICBmYWlsZWRf
dGVzdHMuYXBwZW5kKChpbnB1dF9wYXRoLCAnUGFyc2luZyBmYWlsZWQ6XG4nICsgcHJvY2Vzc19v
dXRwdXQpKQogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50
ICdPSycKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ09LJykKICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgIGJhc2VfcGF0aCA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRfcGF0aClbMF0KLSAg
ICAgICAgICAgIGFjdHVhbF9vdXRwdXQgPSBzYWZlUmVhZEZpbGUoIGJhc2VfcGF0aCArICcuYWN0
dWFsJyApCi0gICAgICAgICAgICBhY3R1YWxfcmV3cml0ZV9vdXRwdXQgPSBzYWZlUmVhZEZpbGUo
IGJhc2VfcGF0aCArICcuYWN0dWFsLXJld3JpdGUnICkKLSAgICAgICAgICAgIGZpbGUoYmFzZV9w
YXRoICsgJy5wcm9jZXNzLW91dHB1dCcsJ3d0Jykud3JpdGUoIHByb2Nlc3Nfb3V0cHV0ICkKKyAg
ICAgICAgICAgIGFjdHVhbF9vdXRwdXQgPSBzYWZlUmVhZEZpbGUoYmFzZV9wYXRoICsgJy5hY3R1
YWwnKQorICAgICAgICAgICAgYWN0dWFsX3Jld3JpdGVfb3V0cHV0ID0gc2FmZVJlYWRGaWxlKGJh
c2VfcGF0aCArICcuYWN0dWFsLXJld3JpdGUnKQorICAgICAgICAgICAgb3BlbihiYXNlX3BhdGgg
KyAnLnByb2Nlc3Mtb3V0cHV0JywgJ3d0JywgZW5jb2RpbmcgPSAndXRmLTgnKS53cml0ZShwcm9j
ZXNzX291dHB1dCkKICAgICAgICAgICAgIGlmIHN0YXR1czoKLSAgICAgICAgICAgICAgICBwcmlu
dCAncGFyc2luZyBmYWlsZWQnCi0gICAgICAgICAgICAgICAgZmFpbGVkX3Rlc3RzLmFwcGVuZCgg
KGlucHV0X3BhdGgsICdQYXJzaW5nIGZhaWxlZDpcbicgKyBwcm9jZXNzX291dHB1dCkgKQorICAg
ICAgICAgICAgICAgIHByaW50KCdwYXJzaW5nIGZhaWxlZCcpCisgICAgICAgICAgICAgICAgZmFp
bGVkX3Rlc3RzLmFwcGVuZCgoaW5wdXRfcGF0aCwgJ1BhcnNpbmcgZmFpbGVkOlxuJyArIHByb2Nl
c3Nfb3V0cHV0KSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf
b3V0cHV0X3BhdGggPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X3BhdGgpWzBdICsgJy5leHBlY3Rl
ZCcKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9vdXRwdXQgPSBmaWxlKCBleHBlY3RlZF9vdXRw
dXRfcGF0aCwgJ3J0JyApLnJlYWQoKQotICAgICAgICAgICAgICAgIGRldGFpbCA9ICggY29tcGFy
ZU91dHB1dHMoIGV4cGVjdGVkX291dHB1dCwgYWN0dWFsX291dHB1dCwgJ2lucHV0JyApCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3IgY29tcGFyZU91dHB1dHMoIGV4cGVjdGVkX291dHB1
dCwgYWN0dWFsX3Jld3JpdGVfb3V0cHV0LCAncmV3cml0ZScgKSApCisgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfb3V0cHV0ID0gb3BlbihleHBlY3RlZF9vdXRwdXRfcGF0aCwgJ3J0JywgZW5jb2Rp
bmcgPSAndXRmLTgnKS5yZWFkKCkKKyAgICAgICAgICAgICAgICBkZXRhaWwgPSAoY29tcGFyZU91
dHB1dHMoZXhwZWN0ZWRfb3V0cHV0LCBhY3R1YWxfb3V0cHV0LCAnaW5wdXQnKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9yIGNvbXBhcmVPdXRwdXRzKGV4cGVjdGVkX291dHB1dCwgYWN0
dWFsX3Jld3JpdGVfb3V0cHV0LCAncmV3cml0ZScpKQogICAgICAgICAgICAgICAgIGlmIGRldGFp
bDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0ZBSUxFRCcKLSAgICAgICAgICAgICAgICAg
ICAgZmFpbGVkX3Rlc3RzLmFwcGVuZCggKGlucHV0X3BhdGgsIGRldGFpbCkgKQorICAgICAgICAg
ICAgICAgICAgICBwcmludCgnRkFJTEVEJykKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkX3Rl
c3RzLmFwcGVuZCgoaW5wdXRfcGF0aCwgZGV0YWlsKSkKICAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBwcmludCAnT0snCisgICAgICAgICAgICAgICAgICAgIHByaW50
KCdPSycpCiAKICAgICBpZiBmYWlsZWRfdGVzdHM6Ci0gICAgICAgIHByaW50Ci0gICAgICAgIHBy
aW50ICdGYWlsdXJlIGRldGFpbHM6JworICAgICAgICBwcmludCgpCisgICAgICAgIHByaW50KCdG
YWlsdXJlIGRldGFpbHM6JykKICAgICAgICAgZm9yIGZhaWxlZF90ZXN0IGluIGZhaWxlZF90ZXN0
czoKLSAgICAgICAgICAgIHByaW50ICcqIFRlc3QnLCBmYWlsZWRfdGVzdFswXQotICAgICAgICAg
ICAgcHJpbnQgZmFpbGVkX3Rlc3RbMV0KLSAgICAgICAgICAgIHByaW50Ci0gICAgICAgIHByaW50
ICdUZXN0IHJlc3VsdHM6ICVkIHBhc3NlZCwgJWQgZmFpbGVkLicgJSAobGVuKHRlc3RzKS1sZW4o
ZmFpbGVkX3Rlc3RzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZW4oZmFpbGVkX3Rlc3RzKSApCisgICAgICAgICAgICBwcmludCgnKiBU
ZXN0JywgZmFpbGVkX3Rlc3RbMF0pCisgICAgICAgICAgICBwcmludChmYWlsZWRfdGVzdFsxXSkK
KyAgICAgICAgICAgIHByaW50KCkKKyAgICAgICAgcHJpbnQoJ1Rlc3QgcmVzdWx0czogJWQgcGFz
c2VkLCAlZCBmYWlsZWQuJyAlIChsZW4odGVzdHMpLWxlbihmYWlsZWRfdGVzdHMpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihmYWls
ZWRfdGVzdHMpKSkKICAgICAgICAgcmV0dXJuIDEKICAgICBlbHNlOgotICAgICAgICBwcmludCAn
QWxsICVkIHRlc3RzIHBhc3NlZC4nICUgbGVuKHRlc3RzKQorICAgICAgICBwcmludCgnQWxsICVk
IHRlc3RzIHBhc3NlZC4nICUgbGVuKHRlc3RzKSkKICAgICAgICAgcmV0dXJuIDAKIAogZGVmIG1h
aW4oKToKICAgICBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKLSAgICBwYXJzZXIg
PSBPcHRpb25QYXJzZXIoIHVzYWdlPSIlcHJvZyBbb3B0aW9uc10gPHBhdGggdG8ganNvbnRlc3Ry
dW5uZXIuZXhlPiBbdGVzdCBjYXNlIGRpcmVjdG9yeV0iICkKKyAgICBwYXJzZXIgPSBPcHRpb25Q
YXJzZXIodXNhZ2U9IiVwcm9nIFtvcHRpb25zXSA8cGF0aCB0byBqc29udGVzdHJ1bm5lci5leGU+
IFt0ZXN0IGNhc2UgZGlyZWN0b3J5XSIpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oIi0tdmFsZ3Jp
bmQiLAogICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0idmFsZ3Jp
bmQiLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAgICAgICAgaGVscD0icnVuIGFsbCB0aGUg
dGVzdHMgdXNpbmcgdmFsZ3JpbmQgdG8gZGV0ZWN0IG1lbW9yeSBsZWFrcyIpCkBAIC0xMTgsMTcg
KzE3OSwzMiBAQCBkZWYgbWFpbigpOgogICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2Vf
YXJncygpCiAKICAgICBpZiBsZW4oYXJncykgPCAxIG9yIGxlbihhcmdzKSA+IDI6Ci0gICAgICAg
IHBhcnNlci5lcnJvciggJ011c3QgcHJvdmlkZXMgYXQgbGVhc3QgcGF0aCB0byBqc29udGVzdHJ1
bm5lciBleGVjdXRhYmxlLicgKQotICAgICAgICBzeXMuZXhpdCggMSApCisgICAgICAgIHBhcnNl
ci5lcnJvcignTXVzdCBwcm92aWRlcyBhdCBsZWFzdCBwYXRoIHRvIGpzb250ZXN0cnVubmVyIGV4
ZWN1dGFibGUuJykKKyAgICAgICAgc3lzLmV4aXQoMSkKIAotICAgIGpzb250ZXN0X2V4ZWN1dGFi
bGVfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgoIG9zLnBhdGguYWJzcGF0aCggYXJnc1swXSApICkK
KyAgICBqc29udGVzdF9leGVjdXRhYmxlX3BhdGggPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGgu
YWJzcGF0aChhcmdzWzBdKSkKICAgICBpZiBsZW4oYXJncykgPiAxOgotICAgICAgICBpbnB1dF9w
YXRoID0gb3MucGF0aC5ub3JtcGF0aCggb3MucGF0aC5hYnNwYXRoKCBhcmdzWzFdICkgKQorICAg
ICAgICBpbnB1dF9wYXRoID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmFic3BhdGgoYXJnc1sx
XSkpCiAgICAgZWxzZToKICAgICAgICAgaW5wdXRfcGF0aCA9IE5vbmUKLSAgICBzdGF0dXMgPSBy
dW5BbGxUZXN0cygganNvbnRlc3RfZXhlY3V0YWJsZV9wYXRoLCBpbnB1dF9wYXRoLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICB1c2VfdmFsZ3JpbmQ9b3B0aW9ucy52YWxncmluZCwgd2l0aF9q
c29uX2NoZWNrZXI9b3B0aW9ucy53aXRoX2pzb25fY2hlY2tlciApCi0gICAgc3lzLmV4aXQoIHN0
YXR1cyApCisgICAgc3RhdHVzID0gcnVuQWxsVGVzdHMoanNvbnRlc3RfZXhlY3V0YWJsZV9wYXRo
LCBpbnB1dF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV92YWxncmluZD1vcHRp
b25zLnZhbGdyaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhfanNvbl9jaGVja2Vy
PW9wdGlvbnMud2l0aF9qc29uX2NoZWNrZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgd3Jp
dGVyQ2xhc3M9J1N0eWxlZFdyaXRlcicpCisgICAgaWYgc3RhdHVzOgorICAgICAgICBzeXMuZXhp
dChzdGF0dXMpCisgICAgc3RhdHVzID0gcnVuQWxsVGVzdHMoanNvbnRlc3RfZXhlY3V0YWJsZV9w
YXRoLCBpbnB1dF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV92YWxncmluZD1v
cHRpb25zLnZhbGdyaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhfanNvbl9jaGVj
a2VyPW9wdGlvbnMud2l0aF9qc29uX2NoZWNrZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
d3JpdGVyQ2xhc3M9J1N0eWxlZFN0cmVhbVdyaXRlcicpCisgICAgaWYgc3RhdHVzOgorICAgICAg
ICBzeXMuZXhpdChzdGF0dXMpCisgICAgc3RhdHVzID0gcnVuQWxsVGVzdHMoanNvbnRlc3RfZXhl
Y3V0YWJsZV9wYXRoLCBpbnB1dF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV92
YWxncmluZD1vcHRpb25zLnZhbGdyaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhf
anNvbl9jaGVja2VyPW9wdGlvbnMud2l0aF9qc29uX2NoZWNrZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgd3JpdGVyQ2xhc3M9J0J1aWx0U3R5bGVkU3RyZWFtV3JpdGVyJykKKyAgICBpZiBz
dGF0dXM6CisgICAgICAgIHN5cy5leGl0KHN0YXR1cykKIAogaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICBtYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9ydW51bml0dGVzdHMucHkg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvcnVudW5pdHRlc3RzLnB5CmluZGV4IDM2NjE4NGNmYjUwMDcxMzUxYWNhMDk0
ZDFmZmMwMTZkMjY1NzMyMDIuLjY2MzRlNzI0MTk2NzhjYTQzZmM4YjA4NzZkMGE5Yzc5Nzc3YTdl
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9ydW51bml0dGVzdHMucHkKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0
L3J1bnVuaXR0ZXN0cy5weQpAQCAtMSw2MSArMSw3MiBAQAorIyBDb3B5cmlnaHQgMjAwOSBCYXB0
aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVjb2du
aXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCB1bmljb2RlX2xpdGVyYWxzCitmcm9tIGlvIGltcG9ydCBvcGVuCitmcm9tIGdsb2IgaW1wb3J0
IGdsb2IKIGltcG9ydCBzeXMKIGltcG9ydCBvcwogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzdWJw
cm9jZXNzCi1mcm9tIGdsb2IgaW1wb3J0IGdsb2IKIGltcG9ydCBvcHRwYXJzZQogCiBWQUxHUklO
RF9DTUQgPSAndmFsZ3JpbmQgLS10b29sPW1lbWNoZWNrIC0tbGVhay1jaGVjaz15ZXMgLS11bmRl
Zi12YWx1ZS1lcnJvcnM9eWVzJwogCiBjbGFzcyBUZXN0UHJveHkob2JqZWN0KToKLSAgICBkZWYg
X19pbml0X18oIHNlbGYsIHRlc3RfZXhlX3BhdGgsIHVzZV92YWxncmluZD1GYWxzZSApOgotICAg
ICAgICBzZWxmLnRlc3RfZXhlX3BhdGggPSBvcy5wYXRoLm5vcm1wYXRoKCBvcy5wYXRoLmFic3Bh
dGgoIHRlc3RfZXhlX3BhdGggKSApCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfZXhlX3Bh
dGgsIHVzZV92YWxncmluZD1GYWxzZSk6CisgICAgICAgIHNlbGYudGVzdF9leGVfcGF0aCA9IG9z
LnBhdGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKHRlc3RfZXhlX3BhdGgpKQogICAgICAgICBz
ZWxmLnVzZV92YWxncmluZCA9IHVzZV92YWxncmluZAogCi0gICAgZGVmIHJ1biggc2VsZiwgb3B0
aW9ucyApOgorICAgIGRlZiBydW4oc2VsZiwgb3B0aW9ucyk6CiAgICAgICAgIGlmIHNlbGYudXNl
X3ZhbGdyaW5kOgogICAgICAgICAgICAgY21kID0gVkFMR1JJTkRfQ01ELnNwbGl0KCkKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIGNtZCA9IFtdCi0gICAgICAgIGNtZC5leHRlbmQoIFtzZWxm
LnRlc3RfZXhlX3BhdGgsICctLXRlc3QtYXV0byddICsgb3B0aW9ucyApCi0gICAgICAgIHByb2Nl
c3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVy
cj1zdWJwcm9jZXNzLlNURE9VVCApCisgICAgICAgIGNtZC5leHRlbmQoW3NlbGYudGVzdF9leGVf
cGF0aCwgJy0tdGVzdC1hdXRvJ10gKyBvcHRpb25zKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUs
IHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAg
cHJpbnQoY21kKQorICAgICAgICAgICAgcmFpc2UKICAgICAgICAgc3Rkb3V0ID0gcHJvY2Vzcy5j
b21tdW5pY2F0ZSgpWzBdCiAgICAgICAgIGlmIHByb2Nlc3MucmV0dXJuY29kZToKICAgICAgICAg
ICAgIHJldHVybiBGYWxzZSwgc3Rkb3V0CiAgICAgICAgIHJldHVybiBUcnVlLCBzdGRvdXQKIAot
ZGVmIHJ1bkFsbFRlc3RzKCBleGVfcGF0aCwgdXNlX3ZhbGdyaW5kPUZhbHNlICk6Ci0gICAgdGVz
dF9wcm94eSA9IFRlc3RQcm94eSggZXhlX3BhdGgsIHVzZV92YWxncmluZD11c2VfdmFsZ3JpbmQg
KQotICAgIHN0YXR1cywgdGVzdF9uYW1lcyA9IHRlc3RfcHJveHkucnVuKCBbJy0tbGlzdC10ZXN0
cyddICkKK2RlZiBydW5BbGxUZXN0cyhleGVfcGF0aCwgdXNlX3ZhbGdyaW5kPUZhbHNlKToKKyAg
ICB0ZXN0X3Byb3h5ID0gVGVzdFByb3h5KGV4ZV9wYXRoLCB1c2VfdmFsZ3JpbmQ9dXNlX3ZhbGdy
aW5kKQorICAgIHN0YXR1cywgdGVzdF9uYW1lcyA9IHRlc3RfcHJveHkucnVuKFsnLS1saXN0LXRl
c3RzJ10pCiAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwg
IkZhaWxlZCB0byBvYnRhaW4gdW5pdCB0ZXN0cyBsaXN0OlxuIiArIHRlc3RfbmFtZXMKKyAgICAg
ICAgcHJpbnQoIkZhaWxlZCB0byBvYnRhaW4gdW5pdCB0ZXN0cyBsaXN0OlxuIiArIHRlc3RfbmFt
ZXMsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgcmV0dXJuIDEKLSAgICB0ZXN0X25hbWVzID0g
W25hbWUuc3RyaXAoKSBmb3IgbmFtZSBpbiB0ZXN0X25hbWVzLnN0cmlwKCkuc3BsaXQoJ1xuJyld
CisgICAgdGVzdF9uYW1lcyA9IFtuYW1lLnN0cmlwKCkgZm9yIG5hbWUgaW4gdGVzdF9uYW1lcy5k
ZWNvZGUoJ3V0Zi04Jykuc3RyaXAoKS5zcGxpdCgnXG4nKV0KICAgICBmYWlsdXJlcyA9IFtdCiAg
ICAgZm9yIG5hbWUgaW4gdGVzdF9uYW1lczoKLSAgICAgICAgcHJpbnQgJ1RFU1RJTkcgJXM6JyAl
IG5hbWUsCi0gICAgICAgIHN1Y2NlZWQsIHJlc3VsdCA9IHRlc3RfcHJveHkucnVuKCBbJy0tdGVz
dCcsIG5hbWVdICkKKyAgICAgICAgcHJpbnQoJ1RFU1RJTkcgJXM6JyAlIG5hbWUsIGVuZD0nICcp
CisgICAgICAgIHN1Y2NlZWQsIHJlc3VsdCA9IHRlc3RfcHJveHkucnVuKFsnLS10ZXN0JywgbmFt
ZV0pCiAgICAgICAgIGlmIHN1Y2NlZWQ6Ci0gICAgICAgICAgICBwcmludCAnT0snCisgICAgICAg
ICAgICBwcmludCgnT0snKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmFpbHVyZXMuYXBw
ZW5kKCAobmFtZSwgcmVzdWx0KSApCi0gICAgICAgICAgICBwcmludCAnRkFJTEVEJworICAgICAg
ICAgICAgZmFpbHVyZXMuYXBwZW5kKChuYW1lLCByZXN1bHQpKQorICAgICAgICAgICAgcHJpbnQo
J0ZBSUxFRCcpCiAgICAgZmFpbGVkX2NvdW50ID0gbGVuKGZhaWx1cmVzKQogICAgIHBhc3NfY291
bnQgPSBsZW4odGVzdF9uYW1lcykgLSBmYWlsZWRfY291bnQKICAgICBpZiBmYWlsZWRfY291bnQ6
Ci0gICAgICAgIHByaW50CisgICAgICAgIHByaW50KCkKICAgICAgICAgZm9yIG5hbWUsIHJlc3Vs
dCBpbiBmYWlsdXJlczoKLSAgICAgICAgICAgIHByaW50IHJlc3VsdAotICAgICAgICBwcmludCAn
JWQvJWQgdGVzdHMgcGFzc2VkICglZCBmYWlsdXJlKHMpKScgJSAoCi0gICAgICAgICAgICBwYXNz
X2NvdW50LCBsZW4odGVzdF9uYW1lcyksIGZhaWxlZF9jb3VudCkKKyAgICAgICAgICAgIHByaW50
KHJlc3VsdCkKKyAgICAgICAgcHJpbnQoJyVkLyVkIHRlc3RzIHBhc3NlZCAoJWQgZmFpbHVyZShz
KSknICUgKCAgICAgICAgICAgIHBhc3NfY291bnQsIGxlbih0ZXN0X25hbWVzKSwgZmFpbGVkX2Nv
dW50KSkKICAgICAgICAgcmV0dXJuIDEKICAgICBlbHNlOgotICAgICAgICBwcmludCAnQWxsICVk
IHRlc3RzIHBhc3NlZCcgJSBsZW4odGVzdF9uYW1lcykKKyAgICAgICAgcHJpbnQoJ0FsbCAlZCB0
ZXN0cyBwYXNzZWQnICUgbGVuKHRlc3RfbmFtZXMpKQogICAgICAgICByZXR1cm4gMAogCiBkZWYg
bWFpbigpOgogICAgIGZyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBhcnNlcgotICAgIHBhcnNl
ciA9IE9wdGlvblBhcnNlciggdXNhZ2U9IiVwcm9nIFtvcHRpb25zXSA8cGF0aCB0byB0ZXN0X2xp
Yl9qc29uLmV4ZT4iICkKKyAgICBwYXJzZXIgPSBPcHRpb25QYXJzZXIodXNhZ2U9IiVwcm9nIFtv
cHRpb25zXSA8cGF0aCB0byB0ZXN0X2xpYl9qc29uLmV4ZT4iKQogICAgIHBhcnNlci5hZGRfb3B0
aW9uKCItLXZhbGdyaW5kIiwKICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlc3Q9InZhbGdyaW5kIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgIGhlbHA9
InJ1biBhbGwgdGhlIHRlc3RzIHVzaW5nIHZhbGdyaW5kIHRvIGRldGVjdCBtZW1vcnkgbGVha3Mi
KQpAQCAtNjMsMTEgKzc0LDExIEBAIGRlZiBtYWluKCk6CiAgICAgb3B0aW9ucywgYXJncyA9IHBh
cnNlci5wYXJzZV9hcmdzKCkKIAogICAgIGlmIGxlbihhcmdzKSAhPSAxOgotICAgICAgICBwYXJz
ZXIuZXJyb3IoICdNdXN0IHByb3ZpZGVzIGF0IGxlYXN0IHBhdGggdG8gdGVzdF9saWJfanNvbiBl
eGVjdXRhYmxlLicgKQotICAgICAgICBzeXMuZXhpdCggMSApCisgICAgICAgIHBhcnNlci5lcnJv
cignTXVzdCBwcm92aWRlcyBhdCBsZWFzdCBwYXRoIHRvIHRlc3RfbGliX2pzb24gZXhlY3V0YWJs
ZS4nKQorICAgICAgICBzeXMuZXhpdCgxKQogCi0gICAgZXhpdF9jb2RlID0gcnVuQWxsVGVzdHMo
IGFyZ3NbMF0sIHVzZV92YWxncmluZD1vcHRpb25zLnZhbGdyaW5kICkKLSAgICBzeXMuZXhpdCgg
ZXhpdF9jb2RlICkKKyAgICBleGl0X2NvZGUgPSBydW5BbGxUZXN0cyhhcmdzWzBdLCB1c2VfdmFs
Z3JpbmQ9b3B0aW9ucy52YWxncmluZCkKKyAgICBzeXMuZXhpdChleGl0X2NvZGUpCiAKIGlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3ZlcnNp
b24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3ZlcnNpb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkZWZlMWVh
MTA2M2M0MjM3MmMxZDRiMzcwODEzMzkwYTlhN2VkODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9uCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotMC42LjAtZGV2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS92ZXJzaW9uLmluIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9uLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYzAzZjdk
ZDcyOTY2ZDI3ZDk2MTcyMDI5NzhiODkyNGI1OTFjMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3ZlcnNpb24uaW4KQEAgLTAsMCArMSBAQAorQEpTT05DUFBfVkVSU0lPTkAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdmVyc2lvbi50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3ZlcnNpb24udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYTM2M2U3
NmVkNzE3MzhiOTI1MWM2ODhiNWY4MTNjMzUxYjk5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3ZlcnNpb24udHh0CkBAIC0wLDAgKzEgQEAKKzEuOC40Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380515</attachid>
            <date>2019-10-09 01:48:04 -0700</date>
            <delta_ts>2019-10-09 02:03:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202729-20191009104633.patch</filename>
            <type>text/plain</type>
            <size>8799595</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBhMDk4ZGJmZjA5MjM3ZGU2MTNmNzA2NjRlNzI1OWM4MTAxZTU5ZTI4Li41ZDE1
Y2MxNDEyNTI5NmJhYjQ2NjdiMDQxZjM2ZWM4ODYzMzdkNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMC0wOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyB0aGly
ZC1wYXJ0eSBib3Jpbmdzc2wgdG8gTTc4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI3MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2w6IFVwZGF0ZWQu
CisKIDIwMTktMTAtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVwZGF0ZSBsaWJ3ZWJydGMgdGhpcmQtcGFydHkganNvbmNwcCB0byBNNzgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL0JVSUxELmdlbmVyYXRlZC5nbmkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nZW5lcmF0ZWQuZ25pCmluZGV4IDE2ZDVm
NGM2Y2FlZDlhNTQ2Y2I1YmI5YzJjYTFkZjQ4MzQ5NzkyODUuLjdiMDBhYThkMzMwYjgyMDJlYTZh
MDdmNzkxYTNiZjE1ZTFjOTg0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmdlbmVyYXRlZC5nbmkKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvQlVJTEQuZ2VuZXJhdGVkLmduaQpAQCAtMTEwLDYgKzExMCw4IEBAIGNyeXB0b19zb3VyY2Vz
ID0gWwogICAic3JjL2NyeXB0by9ldnAvcF9lZDI1NTE5X2FzbjEuYyIsCiAgICJzcmMvY3J5cHRv
L2V2cC9wX3JzYS5jIiwKICAgInNyYy9jcnlwdG8vZXZwL3BfcnNhX2FzbjEuYyIsCisgICJzcmMv
Y3J5cHRvL2V2cC9wX3gyNTUxOS5jIiwKKyAgInNyYy9jcnlwdG8vZXZwL3BfeDI1NTE5X2FzbjEu
YyIsCiAgICJzcmMvY3J5cHRvL2V2cC9wYmtkZi5jIiwKICAgInNyYy9jcnlwdG8vZXZwL3ByaW50
LmMiLAogICAic3JjL2NyeXB0by9ldnAvc2NyeXB0LmMiLApAQCAtMTI3LDEyICsxMjksMTcgQEAg
Y3J5cHRvX3NvdXJjZXMgPSBbCiAgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvaW50ZXJuYWwu
aCIsCiAgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjQtdGFibGUuaCIsCiAg
ICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjQuaCIsCisgICJzcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvZmlwc19zaGFyZWRfc3VwcG9ydC5jIiwKICAgInNyYy9jcnlwdG8vZmlwc21v
ZHVsZS9pc19maXBzLmMiLAorICAic3JjL2NyeXB0by9maXBzbW9kdWxlL21kNS9pbnRlcm5hbC5o
IiwKICAgInNyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9pbnRlcm5hbC5oIiwKICAgInNyYy9j
cnlwdG8vZmlwc21vZHVsZS9yYW5kL2ludGVybmFsLmgiLAogICAic3JjL2NyeXB0by9maXBzbW9k
dWxlL3JzYS9pbnRlcm5hbC5oIiwKKyAgInNyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvaW50ZXJu
YWwuaCIsCiAgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvdGxzL2ludGVybmFsLmgiLAogICAic3Jj
L2NyeXB0by9oa2RmL2hrZGYuYyIsCisgICJzcmMvY3J5cHRvL2hyc3MvaHJzcy5jIiwKKyAgInNy
Yy9jcnlwdG8vaHJzcy9pbnRlcm5hbC5oIiwKICAgInNyYy9jcnlwdG8vaW50ZXJuYWwuaCIsCiAg
ICJzcmMvY3J5cHRvL2xoYXNoL2xoYXNoLmMiLAogICAic3JjL2NyeXB0by9tZW0uYyIsCkBAIC0x
NzAsNiArMTc3LDcgQEAgY3J5cHRvX3NvdXJjZXMgPSBbCiAgICJzcmMvY3J5cHRvL3JlZmNvdW50
X2xvY2suYyIsCiAgICJzcmMvY3J5cHRvL3JzYV9leHRyYS9yc2FfYXNuMS5jIiwKICAgInNyYy9j
cnlwdG8vcnNhX2V4dHJhL3JzYV9wcmludC5jIiwKKyAgInNyYy9jcnlwdG8vc2lwaGFzaC9zaXBo
YXNoLmMiLAogICAic3JjL2NyeXB0by9zdGFjay9zdGFjay5jIiwKICAgInNyYy9jcnlwdG8vdGhy
ZWFkLmMiLAogICAic3JjL2NyeXB0by90aHJlYWRfbm9uZS5jIiwKQEAgLTI2NCw4ICsyNzIsMjEg
QEAgY3J5cHRvX3NvdXJjZXMgPSBbCiAgICJzcmMvY3J5cHRvL3g1MDl2My92M19zeG5ldC5jIiwK
ICAgInNyYy9jcnlwdG8veDUwOXYzL3YzX3V0bC5jIiwKICAgInNyYy90aGlyZF9wYXJ0eS9maWF0
L2N1cnZlMjU1MTkuYyIsCisgICJzcmMvdGhpcmRfcGFydHkvZmlhdC9jdXJ2ZTI1NTE5XzMyLmgi
LAorICAic3JjL3RoaXJkX3BhcnR5L2ZpYXQvY3VydmUyNTUxOV82NC5oIiwKICAgInNyYy90aGly
ZF9wYXJ0eS9maWF0L2N1cnZlMjU1MTlfdGFibGVzLmgiLAogICAic3JjL3RoaXJkX3BhcnR5L2Zp
YXQvaW50ZXJuYWwuaCIsCisgICJzcmMvdGhpcmRfcGFydHkvZmlhdC9wMjU2XzMyLmgiLAorICAi
c3JjL3RoaXJkX3BhcnR5L2ZpYXQvcDI1Nl82NC5oIiwKKyAgInNyYy90aGlyZF9wYXJ0eS9zaWtl
L2FzbS9mcF9nZW5lcmljLmMiLAorICAic3JjL3RoaXJkX3BhcnR5L3Npa2UvY3VydmVfcGFyYW1z
LmMiLAorICAic3JjL3RoaXJkX3BhcnR5L3Npa2UvZnB4LmMiLAorICAic3JjL3RoaXJkX3BhcnR5
L3Npa2UvZnB4LmgiLAorICAic3JjL3RoaXJkX3BhcnR5L3Npa2UvaXNvZ2VueS5jIiwKKyAgInNy
Yy90aGlyZF9wYXJ0eS9zaWtlL2lzb2dlbnkuaCIsCisgICJzcmMvdGhpcmRfcGFydHkvc2lrZS9z
aWtlLmMiLAorICAic3JjL3RoaXJkX3BhcnR5L3Npa2Uvc2lrZS5oIiwKKyAgInNyYy90aGlyZF9w
YXJ0eS9zaWtlL3V0aWxzLmgiLAogXQogCiBjcnlwdG9faGVhZGVycyA9IFsKQEAgLTMwNiw2ICsz
MjcsNyBAQCBjcnlwdG9faGVhZGVycyA9IFsKICAgInNyYy9pbmNsdWRlL29wZW5zc2wvZXhfZGF0
YS5oIiwKICAgInNyYy9pbmNsdWRlL29wZW5zc2wvaGtkZi5oIiwKICAgInNyYy9pbmNsdWRlL29w
ZW5zc2wvaG1hYy5oIiwKKyAgInNyYy9pbmNsdWRlL29wZW5zc2wvaHJzcy5oIiwKICAgInNyYy9p
bmNsdWRlL29wZW5zc2wvaXNfYm9yaW5nc3NsLmgiLAogICAic3JjL2luY2x1ZGUvb3BlbnNzbC9s
aGFzaC5oIiwKICAgInNyYy9pbmNsdWRlL29wZW5zc2wvbWQ0LmgiLApAQCAtMzMwLDYgKzM1Miw3
IEBAIGNyeXB0b19oZWFkZXJzID0gWwogICAic3JjL2luY2x1ZGUvb3BlbnNzbC9yc2EuaCIsCiAg
ICJzcmMvaW5jbHVkZS9vcGVuc3NsL3NhZmVzdGFjay5oIiwKICAgInNyYy9pbmNsdWRlL29wZW5z
c2wvc2hhLmgiLAorICAic3JjL2luY2x1ZGUvb3BlbnNzbC9zaXBoYXNoLmgiLAogICAic3JjL2lu
Y2x1ZGUvb3BlbnNzbC9zcGFuLmgiLAogICAic3JjL2luY2x1ZGUvb3BlbnNzbC9zdGFjay5oIiwK
ICAgInNyYy9pbmNsdWRlL29wZW5zc2wvdGhyZWFkLmgiLApAQCAtMzkxLDEwICs0MTQsMTQgQEAg
Y3J5cHRvX3NvdXJjZXNfaW9zX2FhcmNoNjQgPSBbCiAgICJpb3MtYWFyY2g2NC9jcnlwdG8vY2hh
Y2hhL2NoYWNoYS1hcm12OC5TIiwKICAgImlvcy1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2Fl
c3Y4LWFybXg2NC5TIiwKICAgImlvcy1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2FybXY4LW1v
bnQuUyIsCisgICJpb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1uZW9uLWFybXY4
LlMiLAogICAiaW9zLWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2h2OC1hcm14NjQuUyIs
CiAgICJpb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9zaGExLWFybXY4LlMiLAogICAiaW9z
LWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhMjU2LWFybXY4LlMiLAogICAiaW9zLWFhcmNo
NjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLWFybXY4LlMiLAorICAiaW9zLWFhcmNoNjQvY3J5
cHRvL2ZpcHNtb2R1bGUvdnBhZXMtYXJtdjguUyIsCisgICJpb3MtYWFyY2g2NC9jcnlwdG8vdGVz
dC90cmFtcG9saW5lLWFybXY4LlMiLAorICAiaW9zLWFhcmNoNjQvY3J5cHRvL3RoaXJkX3BhcnR5
L3Npa2UvYXNtL2ZwLWFybXY4LlMiLAogXQogCiBjcnlwdG9fc291cmNlc19pb3NfYXJtID0gWwpA
QCAtNDA4LDE2ICs0MzUsMjEgQEAgY3J5cHRvX3NvdXJjZXNfaW9zX2FybSA9IFsKICAgImlvcy1h
cm0vY3J5cHRvL2ZpcHNtb2R1bGUvc2hhMS1hcm12NC1sYXJnZS5TIiwKICAgImlvcy1hcm0vY3J5
cHRvL2ZpcHNtb2R1bGUvc2hhMjU2LWFybXY0LlMiLAogICAiaW9zLWFybS9jcnlwdG8vZmlwc21v
ZHVsZS9zaGE1MTItYXJtdjQuUyIsCisgICJpb3MtYXJtL2NyeXB0by90ZXN0L3RyYW1wb2xpbmUt
YXJtdjQuUyIsCiBdCiAKIGNyeXB0b19zb3VyY2VzX2xpbnV4X2FhcmNoNjQgPSBbCiAgICJsaW51
eC1hYXJjaDY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLWFybXY4LlMiLAogICAibGludXgtYWFyY2g2
NC9jcnlwdG8vZmlwc21vZHVsZS9hZXN2OC1hcm14NjQuUyIsCiAgICJsaW51eC1hYXJjaDY0L2Ny
eXB0by9maXBzbW9kdWxlL2FybXY4LW1vbnQuUyIsCisgICJsaW51eC1hYXJjaDY0L2NyeXB0by9m
aXBzbW9kdWxlL2doYXNoLW5lb24tYXJtdjguUyIsCiAgICJsaW51eC1hYXJjaDY0L2NyeXB0by9m
aXBzbW9kdWxlL2doYXNodjgtYXJteDY0LlMiLAogICAibGludXgtYWFyY2g2NC9jcnlwdG8vZmlw
c21vZHVsZS9zaGExLWFybXY4LlMiLAogICAibGludXgtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVs
ZS9zaGEyNTYtYXJtdjguUyIsCiAgICJsaW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3No
YTUxMi1hcm12OC5TIiwKKyAgImxpbnV4LWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMt
YXJtdjguUyIsCisgICJsaW51eC1hYXJjaDY0L2NyeXB0by90ZXN0L3RyYW1wb2xpbmUtYXJtdjgu
UyIsCisgICJsaW51eC1hYXJjaDY0L2NyeXB0by90aGlyZF9wYXJ0eS9zaWtlL2FzbS9mcC1hcm12
OC5TIiwKIF0KIAogY3J5cHRvX3NvdXJjZXNfbGludXhfYXJtID0gWwpAQCAtNDMxLDYgKzQ2Myw3
IEBAIGNyeXB0b19zb3VyY2VzX2xpbnV4X2FybSA9IFsKICAgImxpbnV4LWFybS9jcnlwdG8vZmlw
c21vZHVsZS9zaGExLWFybXY0LWxhcmdlLlMiLAogICAibGludXgtYXJtL2NyeXB0by9maXBzbW9k
dWxlL3NoYTI1Ni1hcm12NC5TIiwKICAgImxpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9zaGE1
MTItYXJtdjQuUyIsCisgICJsaW51eC1hcm0vY3J5cHRvL3Rlc3QvdHJhbXBvbGluZS1hcm12NC5T
IiwKICAgInNyYy9jcnlwdG8vY3VydmUyNTUxOS9hc20veDI1NTE5LWFzbS1hcm0uUyIsCiAgICJz
cmMvY3J5cHRvL3BvbHkxMzA1L3BvbHkxMzA1X2FybV9hc20uUyIsCiBdCkBAIC00NDYsNiArNDc5
LDcgQEAgY3J5cHRvX3NvdXJjZXNfbGludXhfeDg2ID0gWwogICAibGludXgteDg2L2NyeXB0by9m
aXBzbW9kdWxlL2Flc25pLXg4Ni5TIiwKICAgImxpbnV4LXg4Ni9jcnlwdG8vZmlwc21vZHVsZS9i
bi01ODYuUyIsCiAgICJsaW51eC14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvY28tNTg2LlMiLAorICAi
bGludXgteDg2L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLXNzc2UzLXg4Ni5TIiwKICAgImxpbnV4
LXg4Ni9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC14ODYuUyIsCiAgICJsaW51eC14ODYvY3J5cHRv
L2ZpcHNtb2R1bGUvbWQ1LTU4Ni5TIiwKICAgImxpbnV4LXg4Ni9jcnlwdG8vZmlwc21vZHVsZS9z
aGExLTU4Ni5TIiwKQEAgLTQ1Myw2ICs0ODcsNyBAQCBjcnlwdG9fc291cmNlc19saW51eF94ODYg
PSBbCiAgICJsaW51eC14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLTU4Ni5TIiwKICAgImxp
bnV4LXg4Ni9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy14ODYuUyIsCiAgICJsaW51eC14ODYvY3J5
cHRvL2ZpcHNtb2R1bGUveDg2LW1vbnQuUyIsCisgICJsaW51eC14ODYvY3J5cHRvL3Rlc3QvdHJh
bXBvbGluZS14ODYuUyIsCiBdCiAKIGNyeXB0b19zb3VyY2VzX2xpbnV4X3g4Nl82NCA9IFsKQEAg
LTQ2Miw3ICs0OTcsNyBAQCBjcnlwdG9fc291cmNlc19saW51eF94ODZfNjQgPSBbCiAgICJsaW51
eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzLXg4Nl82NC5TIiwKICAgImxpbnV4LXg4Nl82
NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS1nY20teDg2XzY0LlMiLAogICAibGludXgteDg2XzY0
L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLXg4Nl82NC5TIiwKLSAgImxpbnV4LXg4Nl82NC9jcnlw
dG8vZmlwc21vZHVsZS9ic2Flcy14ODZfNjQuUyIsCisgICJsaW51eC14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvZ2hhc2gtc3NzZTMteDg2XzY0LlMiLAogICAibGludXgteDg2XzY0L2NyeXB0by9m
aXBzbW9kdWxlL2doYXNoLXg4Nl82NC5TIiwKICAgImxpbnV4LXg4Nl82NC9jcnlwdG8vZmlwc21v
ZHVsZS9tZDUteDg2XzY0LlMiLAogICAibGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3Ay
NTYteDg2XzY0LWFzbS5TIiwKQEAgLTQ3NSw2ICs1MTAsOSBAQCBjcnlwdG9fc291cmNlc19saW51
eF94ODZfNjQgPSBbCiAgICJsaW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMteDg2
XzY0LlMiLAogICAibGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3g4Nl82NC1tb250LlMi
LAogICAibGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3g4Nl82NC1tb250NS5TIiwKKyAg
ImxpbnV4LXg4Nl82NC9jcnlwdG8vdGVzdC90cmFtcG9saW5lLXg4Nl82NC5TIiwKKyAgImxpbnV4
LXg4Nl82NC9jcnlwdG8vdGhpcmRfcGFydHkvc2lrZS9hc20vZnAteDg2XzY0LlMiLAorICAic3Jj
L2NyeXB0by9ocnNzL2FzbS9wb2x5X3JxX211bC5TIiwKIF0KIAogY3J5cHRvX3NvdXJjZXNfbWFj
X3g4NiA9IFsKQEAgLTQ4Myw2ICs1MjEsNyBAQCBjcnlwdG9fc291cmNlc19tYWNfeDg2ID0gWwog
ICAibWFjLXg4Ni9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS14ODYuUyIsCiAgICJtYWMteDg2L2Ny
eXB0by9maXBzbW9kdWxlL2JuLTU4Ni5TIiwKICAgIm1hYy14ODYvY3J5cHRvL2ZpcHNtb2R1bGUv
Y28tNTg2LlMiLAorICAibWFjLXg4Ni9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1zc3NlMy14ODYu
UyIsCiAgICJtYWMteDg2L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLXg4Ni5TIiwKICAgIm1hYy14
ODYvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1LTU4Ni5TIiwKICAgIm1hYy14ODYvY3J5cHRvL2ZpcHNt
b2R1bGUvc2hhMS01ODYuUyIsCkBAIC00OTAsNiArNTI5LDcgQEAgY3J5cHRvX3NvdXJjZXNfbWFj
X3g4NiA9IFsKICAgIm1hYy14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLTU4Ni5TIiwKICAg
Im1hYy14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMteDg2LlMiLAogICAibWFjLXg4Ni9jcnlw
dG8vZmlwc21vZHVsZS94ODYtbW9udC5TIiwKKyAgIm1hYy14ODYvY3J5cHRvL3Rlc3QvdHJhbXBv
bGluZS14ODYuUyIsCiBdCiAKIGNyeXB0b19zb3VyY2VzX21hY194ODZfNjQgPSBbCkBAIC00OTks
NyArNTM5LDcgQEAgY3J5cHRvX3NvdXJjZXNfbWFjX3g4Nl82NCA9IFsKICAgIm1hYy14ODZfNjQv
Y3J5cHRvL2ZpcHNtb2R1bGUvYWVzLXg4Nl82NC5TIiwKICAgIm1hYy14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvYWVzbmktZ2NtLXg4Nl82NC5TIiwKICAgIm1hYy14ODZfNjQvY3J5cHRvL2ZpcHNt
b2R1bGUvYWVzbmkteDg2XzY0LlMiLAotICAibWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9i
c2Flcy14ODZfNjQuUyIsCisgICJtYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLXNz
c2UzLXg4Nl82NC5TIiwKICAgIm1hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2gteDg2
XzY0LlMiLAogICAibWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9tZDUteDg2XzY0LlMiLAog
ICAibWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9wMjU2LXg4Nl82NC1hc20uUyIsCkBAIC01
MTIsNiArNTUyLDggQEAgY3J5cHRvX3NvdXJjZXNfbWFjX3g4Nl82NCA9IFsKICAgIm1hYy14ODZf
NjQvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMteDg2XzY0LlMiLAogICAibWFjLXg4Nl82NC9jcnlw
dG8vZmlwc21vZHVsZS94ODZfNjQtbW9udC5TIiwKICAgIm1hYy14ODZfNjQvY3J5cHRvL2ZpcHNt
b2R1bGUveDg2XzY0LW1vbnQ1LlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vdGVzdC90cmFtcG9s
aW5lLXg4Nl82NC5TIiwKKyAgIm1hYy14ODZfNjQvY3J5cHRvL3RoaXJkX3BhcnR5L3Npa2UvYXNt
L2ZwLXg4Nl82NC5TIiwKIF0KIAogY3J5cHRvX3NvdXJjZXNfd2luX3g4NiA9IFsKQEAgLTUyMCw2
ICs1NjIsNyBAQCBjcnlwdG9fc291cmNlc193aW5feDg2ID0gWwogICAid2luLXg4Ni9jcnlwdG8v
Zmlwc21vZHVsZS9hZXNuaS14ODYuYXNtIiwKICAgIndpbi14ODYvY3J5cHRvL2ZpcHNtb2R1bGUv
Ym4tNTg2LmFzbSIsCiAgICJ3aW4teDg2L2NyeXB0by9maXBzbW9kdWxlL2NvLTU4Ni5hc20iLAor
ICAid2luLXg4Ni9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1zc3NlMy14ODYuYXNtIiwKICAgIndp
bi14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2gteDg2LmFzbSIsCiAgICJ3aW4teDg2L2NyeXB0
by9maXBzbW9kdWxlL21kNS01ODYuYXNtIiwKICAgIndpbi14ODYvY3J5cHRvL2ZpcHNtb2R1bGUv
c2hhMS01ODYuYXNtIiwKQEAgLTUyNyw2ICs1NzAsNyBAQCBjcnlwdG9fc291cmNlc193aW5feDg2
ID0gWwogICAid2luLXg4Ni9jcnlwdG8vZmlwc21vZHVsZS9zaGE1MTItNTg2LmFzbSIsCiAgICJ3
aW4teDg2L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Ni5hc20iLAogICAid2luLXg4Ni9jcnlw
dG8vZmlwc21vZHVsZS94ODYtbW9udC5hc20iLAorICAid2luLXg4Ni9jcnlwdG8vdGVzdC90cmFt
cG9saW5lLXg4Ni5hc20iLAogXQogCiBjcnlwdG9fc291cmNlc193aW5feDg2XzY0ID0gWwpAQCAt
NTM2LDcgKzU4MCw3IEBAIGNyeXB0b19zb3VyY2VzX3dpbl94ODZfNjQgPSBbCiAgICJ3aW4teDg2
XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flcy14ODZfNjQuYXNtIiwKICAgIndpbi14ODZfNjQvY3J5
cHRvL2ZpcHNtb2R1bGUvYWVzbmktZ2NtLXg4Nl82NC5hc20iLAogICAid2luLXg4Nl82NC9jcnlw
dG8vZmlwc21vZHVsZS9hZXNuaS14ODZfNjQuYXNtIiwKLSAgIndpbi14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvYnNhZXMteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9maXBzbW9k
dWxlL2doYXNoLXNzc2UzLXg4Nl82NC5hc20iLAogICAid2luLXg4Nl82NC9jcnlwdG8vZmlwc21v
ZHVsZS9naGFzaC14ODZfNjQuYXNtIiwKICAgIndpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUv
bWQ1LXg4Nl82NC5hc20iLAogICAid2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9wMjU2LXg4
Nl82NC1hc20uYXNtIiwKQEAgLTU0OSw2ICs1OTMsOCBAQCBjcnlwdG9fc291cmNlc193aW5feDg2
XzY0ID0gWwogICAid2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy14ODZfNjQuYXNt
IiwKICAgIndpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUveDg2XzY0LW1vbnQuYXNtIiwKICAg
Indpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUveDg2XzY0LW1vbnQ1LmFzbSIsCisgICJ3aW4t
eDg2XzY0L2NyeXB0by90ZXN0L3RyYW1wb2xpbmUteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0
L2NyeXB0by90aGlyZF9wYXJ0eS9zaWtlL2FzbS9mcC14ODZfNjQuYXNtIiwKIF0KIAogZnV6emVy
cyA9IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmdlbmVyYXRlZF90ZXN0cy5nbmkgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nZW5l
cmF0ZWRfdGVzdHMuZ25pCmluZGV4IDAyZmEzNmMxMWE3M2EwZTgxOThhMTQ0YmU4ODk2Yzc2ODhi
ZjJjNjkuLjFiMDkwMzVmZTU2NmU1ZDI1NDcyMzJjZDg0NDRjNTZlYWFlYzMyN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL0JVSUxELmdlbmVyYXRlZF90ZXN0cy5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ2VuZXJhdGVkX3Rlc3Rz
LmduaQpAQCAtNSw2ICs1LDcgQEAKICMgVGhpcyBmaWxlIGlzIGNyZWF0ZWQgYnkgZ2VuZXJhdGVf
YnVpbGRfZmlsZXMucHkuIERvIG5vdCBlZGl0IG1hbnVhbGx5LgogCiB0ZXN0X3N1cHBvcnRfc291
cmNlcyA9IFsKKyAgInNyYy9jcnlwdG8vdGVzdC9hYmlfdGVzdC5oIiwKICAgInNyYy9jcnlwdG8v
dGVzdC9maWxlX3Rlc3QuY2MiLAogICAic3JjL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIiwKICAg
InNyYy9jcnlwdG8vdGVzdC9ndGVzdF9tYWluLmgiLApAQCAtMjQsNyArMjUsNyBAQCB0ZXN0X3N1
cHBvcnRfc291cmNlcyA9IFsKIF0KIAogY3J5cHRvX3Rlc3Rfc291cmNlcyA9IFsKLSAgImNyeXB0
b190ZXN0X2RhdGEuY2MiLAorICAic3JjL2NyeXB0by9hYmlfc2VsZl90ZXN0LmNjIiwKICAgInNy
Yy9jcnlwdG8vYXNuMS9hc24xX3Rlc3QuY2MiLAogICAic3JjL2NyeXB0by9iYXNlNjQvYmFzZTY0
X3Rlc3QuY2MiLAogICAic3JjL2NyeXB0by9iaW8vYmlvX3Rlc3QuY2MiLApAQCAtNTQsMTAgKzU1
LDE0IEBAIGNyeXB0b190ZXN0X3NvdXJjZXMgPSBbCiAgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUv
ZWMvZWNfdGVzdC5jYyIsCiAgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjRf
dGVzdC5jYyIsCiAgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWNkc2EvZWNkc2FfdGVzdC5jYyIs
CisgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1L21kNV90ZXN0LmNjIiwKICAgInNyYy9jcnlw
dG8vZmlwc21vZHVsZS9tb2Rlcy9nY21fdGVzdC5jYyIsCiAgICJzcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvcmFuZC9jdHJkcmJnX3Rlc3QuY2MiLAorICAic3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9z
aGFfdGVzdC5jYyIsCiAgICJzcmMvY3J5cHRvL2hrZGYvaGtkZl90ZXN0LmNjIiwKICAgInNyYy9j
cnlwdG8vaG1hY19leHRyYS9obWFjX3Rlc3QuY2MiLAorICAic3JjL2NyeXB0by9ocnNzL2hyc3Nf
dGVzdC5jYyIsCisgICJzcmMvY3J5cHRvL2ltcGxfZGlzcGF0Y2hfdGVzdC5jYyIsCiAgICJzcmMv
Y3J5cHRvL2xoYXNoL2xoYXNoX3Rlc3QuY2MiLAogICAic3JjL2NyeXB0by9vYmovb2JqX3Rlc3Qu
Y2MiLAogICAic3JjL2NyeXB0by9wZW0vcGVtX3Rlc3QuY2MiLApAQCAtNzAsNyArNzUsOSBAQCBj
cnlwdG9fdGVzdF9zb3VyY2VzID0gWwogICAic3JjL2NyeXB0by9yZWZjb3VudF90ZXN0LmNjIiwK
ICAgInNyYy9jcnlwdG8vcnNhX2V4dHJhL3JzYV90ZXN0LmNjIiwKICAgInNyYy9jcnlwdG8vc2Vs
Zl90ZXN0LmNjIiwKKyAgInNyYy9jcnlwdG8vc2lwaGFzaC9zaXBoYXNoX3Rlc3QuY2MiLAogICAi
c3JjL2NyeXB0by9zdGFjay9zdGFja190ZXN0LmNjIiwKKyAgInNyYy9jcnlwdG8vdGVzdC9hYmlf
dGVzdC5jYyIsCiAgICJzcmMvY3J5cHRvL3Rlc3QvZmlsZV90ZXN0X2d0ZXN0LmNjIiwKICAgInNy
Yy9jcnlwdG8vdGVzdC9ndGVzdF9tYWluLmNjIiwKICAgInNyYy9jcnlwdG8vdGhyZWFkX3Rlc3Qu
Y2MiLApAQCAtODAsOCArODcsOTkgQEAgY3J5cHRvX3Rlc3Rfc291cmNlcyA9IFsKICAgInNyYy9j
cnlwdG8veDUwOXYzL3YzbmFtZV90ZXN0LmNjIiwKIF0KIAorY3J5cHRvX3Rlc3RfZGF0YSA9IFsK
KyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvYWVzXzEyOF9jYmNfc2hhMV90bHNfaW1w
bGljaXRfaXZfdGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvYWVz
XzEyOF9jYmNfc2hhMV90bHNfdGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJh
L3Rlc3QvYWVzXzEyOF9jYmNfc2hhMjU2X3Rsc190ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9j
aXBoZXJfZXh0cmEvdGVzdC9hZXNfMTI4X2NjbV9ibHVldG9vdGhfOF90ZXN0cy50eHQiLAorICAi
c3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvdGVzdC9hZXNfMTI4X2NjbV9ibHVldG9vdGhfdGVzdHMu
dHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvYWVzXzEyOF9jdHJfaG1hY19z
aGEyNTYudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvYWVzXzEyOF9nY21f
c2l2X3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5cHRvL2NpcGhlcl9leHRyYS90ZXN0L2Flc18xMjhf
Z2NtX3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5cHRvL2NpcGhlcl9leHRyYS90ZXN0L2Flc18yNTZf
Y2JjX3NoYTFfdGxzX2ltcGxpY2l0X2l2X3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5cHRvL2NpcGhl
cl9leHRyYS90ZXN0L2Flc18yNTZfY2JjX3NoYTFfdGxzX3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5
cHRvL2NpcGhlcl9leHRyYS90ZXN0L2Flc18yNTZfY2JjX3NoYTI1Nl90bHNfdGVzdHMudHh0IiwK
KyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvYWVzXzI1Nl9jYmNfc2hhMzg0X3Rsc190
ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvdGVzdC9hZXNfMjU2X2N0cl9o
bWFjX3NoYTI1Ni50eHQiLAorICAic3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvdGVzdC9hZXNfMjU2
X2djbV9zaXZfdGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvYWVz
XzI1Nl9nY21fdGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvY2hh
Y2hhMjBfcG9seTEzMDVfdGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rl
c3QvY2lwaGVyX3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5cHRvL2NpcGhlcl9leHRyYS90ZXN0L2Rl
c19lZGUzX2NiY19zaGExX3Rsc19pbXBsaWNpdF9pdl90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0
by9jaXBoZXJfZXh0cmEvdGVzdC9kZXNfZWRlM19jYmNfc2hhMV90bHNfdGVzdHMudHh0IiwKKyAg
InNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvbmlzdF9jYXZwL2Flc18xMjhfY2JjLnR4dCIs
CisgICJzcmMvY3J5cHRvL2NpcGhlcl9leHRyYS90ZXN0L25pc3RfY2F2cC9hZXNfMTI4X2N0ci50
eHQiLAorICAic3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvdGVzdC9uaXN0X2NhdnAvYWVzXzEyOF9n
Y20udHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvbmlzdF9jYXZwL2Flc18x
OTJfY2JjLnR4dCIsCisgICJzcmMvY3J5cHRvL2NpcGhlcl9leHRyYS90ZXN0L25pc3RfY2F2cC9h
ZXNfMTkyX2N0ci50eHQiLAorICAic3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvdGVzdC9uaXN0X2Nh
dnAvYWVzXzI1Nl9jYmMudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3Qvbmlz
dF9jYXZwL2Flc18yNTZfY3RyLnR4dCIsCisgICJzcmMvY3J5cHRvL2NpcGhlcl9leHRyYS90ZXN0
L25pc3RfY2F2cC9hZXNfMjU2X2djbS50eHQiLAorICAic3JjL2NyeXB0by9jaXBoZXJfZXh0cmEv
dGVzdC9uaXN0X2NhdnAvdGRlc19jYmMudHh0IiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyX2V4dHJh
L3Rlc3QvbmlzdF9jYXZwL3RkZXNfZWNiLnR4dCIsCisgICJzcmMvY3J5cHRvL2NpcGhlcl9leHRy
YS90ZXN0L3hjaGFjaGEyMF9wb2x5MTMwNV90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9jbWFj
L2NhdnBfM2Rlc19jbWFjX3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5cHRvL2NtYWMvY2F2cF9hZXMx
MjhfY21hY190ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9jbWFjL2NhdnBfYWVzMTkyX2NtYWNf
dGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8vY21hYy9jYXZwX2FlczI1Nl9jbWFjX3Rlc3RzLnR4
dCIsCisgICJzcmMvY3J5cHRvL2N1cnZlMjU1MTkvZWQyNTUxOV90ZXN0cy50eHQiLAorICAic3Jj
L2NyeXB0by9lY2RoX2V4dHJhL2VjZGhfdGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8vZXZwL2V2
cF90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9ldnAvc2NyeXB0X3Rlc3RzLnR4dCIsCisgICJz
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2Flc190ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9m
aXBzbW9kdWxlL2JuL2JuX3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMv
ZWNfc2NhbGFyX2Jhc2VfbXVsdF90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9maXBzbW9kdWxl
L2VjL3AyNTYteDg2XzY0X3Rlc3RzLnR4dCIsCisgICJzcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWNk
c2EvZWNkc2Ffc2lnbl90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9maXBzbW9kdWxlL2VjZHNh
L2VjZHNhX3ZlcmlmeV90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVz
L2djbV90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0by9maXBzbW9kdWxlL3JhbmQvY3RyZHJiZ192
ZWN0b3JzLnR4dCIsCisgICJzcmMvY3J5cHRvL2htYWNfZXh0cmEvaG1hY190ZXN0cy50eHQiLAor
ICAic3JjL2NyeXB0by9wb2x5MTMwNS9wb2x5MTMwNV90ZXN0cy50eHQiLAorICAic3JjL2NyeXB0
by9zaXBoYXNoL3NpcGhhc2hfdGVzdHMudHh0IiwKKyAgInNyYy9jcnlwdG8veDUwOS9tYW55X2Nv
bnN0cmFpbnRzLnBlbSIsCisgICJzcmMvY3J5cHRvL3g1MDkvbWFueV9uYW1lczEucGVtIiwKKyAg
InNyYy9jcnlwdG8veDUwOS9tYW55X25hbWVzMi5wZW0iLAorICAic3JjL2NyeXB0by94NTA5L21h
bnlfbmFtZXMzLnBlbSIsCisgICJzcmMvY3J5cHRvL3g1MDkvc29tZV9uYW1lczEucGVtIiwKKyAg
InNyYy9jcnlwdG8veDUwOS9zb21lX25hbWVzMi5wZW0iLAorICAic3JjL2NyeXB0by94NTA5L3Nv
bWVfbmFtZXMzLnBlbSIsCisgICJzcmMvdGhpcmRfcGFydHkvd3ljaGVwcm9vZl90ZXN0dmVjdG9y
cy9hZXNfY2JjX3BrY3M1X3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNoZXByb29m
X3Rlc3R2ZWN0b3JzL2Flc19jbWFjX3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNo
ZXByb29mX3Rlc3R2ZWN0b3JzL2Flc19nY21fc2l2X3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9w
YXJ0eS93eWNoZXByb29mX3Rlc3R2ZWN0b3JzL2Flc19nY21fdGVzdC50eHQiLAorICAic3JjL3Ro
aXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZlY3RvcnMvY2hhY2hhMjBfcG9seTEzMDVfdGVzdC50
eHQiLAorICAic3JjL3RoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZlY3RvcnMvZHNhX3Rlc3Qu
dHh0IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNoZXByb29mX3Rlc3R2ZWN0b3JzL2VjZGhfc2Vj
cDIyNHIxX3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNoZXByb29mX3Rlc3R2ZWN0
b3JzL2VjZGhfc2VjcDI1NnIxX3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNoZXBy
b29mX3Rlc3R2ZWN0b3JzL2VjZGhfc2VjcDM4NHIxX3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9w
YXJ0eS93eWNoZXByb29mX3Rlc3R2ZWN0b3JzL2VjZGhfc2VjcDUyMXIxX3Rlc3QudHh0IiwKKyAg
InNyYy90aGlyZF9wYXJ0eS93eWNoZXByb29mX3Rlc3R2ZWN0b3JzL2VjZHNhX3NlY3AyMjRyMV9z
aGEyMjRfdGVzdC50eHQiLAorICAic3JjL3RoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZlY3Rv
cnMvZWNkc2Ffc2VjcDIyNHIxX3NoYTI1Nl90ZXN0LnR4dCIsCisgICJzcmMvdGhpcmRfcGFydHkv
d3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9lY2RzYV9zZWNwMjI0cjFfc2hhNTEyX3Rlc3QudHh0IiwK
KyAgInNyYy90aGlyZF9wYXJ0eS93eWNoZXByb29mX3Rlc3R2ZWN0b3JzL2VjZHNhX3NlY3AyNTZy
MV9zaGEyNTZfdGVzdC50eHQiLAorICAic3JjL3RoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZl
Y3RvcnMvZWNkc2Ffc2VjcDI1NnIxX3NoYTUxMl90ZXN0LnR4dCIsCisgICJzcmMvdGhpcmRfcGFy
dHkvd3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9lY2RzYV9zZWNwMzg0cjFfc2hhMzg0X3Rlc3QudHh0
IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNoZXByb29mX3Rlc3R2ZWN0b3JzL2VjZHNhX3NlY3Az
ODRyMV9zaGE1MTJfdGVzdC50eHQiLAorICAic3JjL3RoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVz
dHZlY3RvcnMvZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMl90ZXN0LnR4dCIsCisgICJzcmMvdGhpcmRf
cGFydHkvd3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9lZGRzYV90ZXN0LnR4dCIsCisgICJzcmMvdGhp
cmRfcGFydHkvd3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9rd190ZXN0LnR4dCIsCisgICJzcmMvdGhp
cmRfcGFydHkvd3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9rd3BfdGVzdC50eHQiLAorICAic3JjL3Ro
aXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZlY3RvcnMvcnNhX3Bzc18yMDQ4X3NoYTFfbWdmMV8y
MF90ZXN0LnR4dCIsCisgICJzcmMvdGhpcmRfcGFydHkvd3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9y
c2FfcHNzXzIwNDhfc2hhMjU2X21nZjFfMF90ZXN0LnR4dCIsCisgICJzcmMvdGhpcmRfcGFydHkv
d3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9yc2FfcHNzXzIwNDhfc2hhMjU2X21nZjFfMzJfdGVzdC50
eHQiLAorICAic3JjL3RoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZlY3RvcnMvcnNhX3Bzc18z
MDcyX3NoYTI1Nl9tZ2YxXzMyX3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNoZXBy
b29mX3Rlc3R2ZWN0b3JzL3JzYV9wc3NfNDA5Nl9zaGEyNTZfbWdmMV8zMl90ZXN0LnR4dCIsCisg
ICJzcmMvdGhpcmRfcGFydHkvd3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9yc2FfcHNzXzQwOTZfc2hh
NTEyX21nZjFfMzJfdGVzdC50eHQiLAorICAic3JjL3RoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVz
dHZlY3RvcnMvcnNhX3Bzc19taXNjX3Rlc3QudHh0IiwKKyAgInNyYy90aGlyZF9wYXJ0eS93eWNo
ZXByb29mX3Rlc3R2ZWN0b3JzL3JzYV9zaWduYXR1cmVfdGVzdC50eHQiLAorICAic3JjL3RoaXJk
X3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZlY3RvcnMveDI1NTE5X3Rlc3QudHh0IiwKK10KKwogc3Ns
X3Rlc3Rfc291cmNlcyA9IFsKKyAgInNyYy9jcnlwdG8vdGVzdC9hYmlfdGVzdC5jYyIsCiAgICJz
cmMvY3J5cHRvL3Rlc3QvZ3Rlc3RfbWFpbi5jYyIsCiAgICJzcmMvc3NsL3NwYW5fdGVzdC5jYyIs
CisgICJzcmMvc3NsL3NzbF9jX3Rlc3QuYyIsCiAgICJzcmMvc3NsL3NzbF90ZXN0LmNjIiwKIF0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KaW5kZXggNmU0ZmM4NWYxMjRlZDZkZDRh
N2FjMTgxMjY4NmZhNTljNGU1MGNkZi4uMjUwZWQ4NTQyNDdhNmYyZjE3NjkwZmZiOTU1MjRlYjU3
YzcyNTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KQEAgLTU2LDYgKzU2
LDkgQEAgaWYgKGlzX3dpbiAmJiAhaXNfbXNhbiAmJiBjdXJyZW50X2NwdSAhPSAiYXJtNjQiKSB7
CiAgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IikgewogICAgICAgc291cmNlcyA9
IGNyeXB0b19zb3VyY2VzX3dpbl94ODYKICAgICB9CisgICAgaWYgKCFpc19kZWJ1ZykgeworICAg
ICAgbmFzbV9mbGFncyA9IFsgIi1ETkRFQlVHIiBdCisgICAgfQogICB9CiB9IGVsc2UgewogICAj
IFRoaXMgaGFzIG5vIHNvdXJjZXMgb24gc29tZSBwbGF0Zm9ybXMgc28gbXVzdCBiZSBhIHNvdXJj
ZV9zZXQuCkBAIC0xMTEsMTAgKzExNCwxNiBAQCBjb21wb25lbnQoImJvcmluZ3NzbCIpIHsKICAg
cHVibGljID0gYWxsX2hlYWRlcnMKICAgZnJpZW5kID0gWyAiOioiIF0KICAgZGVwcyA9IFsKLSAg
ICAiOmJvcmluZ3NzbF9hc20iLAogICAgICIvL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZmlhdDpmaWF0X2xpY2Vuc2UiLAogICBdCiAKKyAgIyBNYXJrIGJvcmluZ3NzbF9h
c20gYXMgYSBwdWJsaWMgZGVwZW5kZW5jeSBzbyB0aGUgT1BFTlNTTF9OT19BU00KKyAgIyBjb25m
aWcgaXMgZm9yd2FyZGVkIHRvIGNhbGxlcnMuIEluIHBhcnRpY3VsYXIsIGJvcmluZ3NzbF9jcnlw
dG9fdGVzdHMKKyAgIyByZXF1aXJlcyBpdC4KKyAgcHVibGljX2RlcHMgPSBbCisgICAgIjpib3Jp
bmdzc2xfYXNtIiwKKyAgXQorCiAgIHB1YmxpY19jb25maWdzID0gWyAiOmV4dGVybmFsX2NvbmZp
ZyIgXQogICBjb25maWdzICs9IFsgIjppbnRlcm5hbF9jb25maWciIF0KIApAQCAtMTI2LDUxICsx
MzUsNjMgQEAgY29tcG9uZW50KCJib3Jpbmdzc2wiKSB7CiAgIH0KIH0KIAotIyBUaGVzZSB0YXJn
ZXRzIGFyZSBuYW1lZCAiX3Rlc3RzIiByYXRoZXIgdGhhbiAiX3Rlc3QiIHRvIGF2b2lkIGNvbGxp
ZGluZyB3aXRoIGEKLSMgaGlzdG9yaWNhbCAiYm9yaW5nc3NsX3NzbF90ZXN0IiB0YXJnZXQuIFRo
aXMgd29ya3MgYXJvdW5kIGEgYnVnIHdpdGggdGhlIGlPUwotIyBidWlsZCBydWxlcy4KK2lmIChi
dWlsZF93aXRoX2Nocm9taXVtKSB7CisgICMgVGhlc2UgdGFyZ2V0cyBhcmUgbmFtZWQgIl90ZXN0
cyIgcmF0aGVyIHRoYW4gIl90ZXN0IiB0byBhdm9pZCBjb2xsaWRpbmcgd2l0aAorICAjIGEgaGlz
dG9yaWNhbCAiYm9yaW5nc3NsX3NzbF90ZXN0IiB0YXJnZXQuIFRoaXMgd29ya3MgYXJvdW5kIGEg
YnVnIHdpdGggdGhlCisgICMgaU9TIGJ1aWxkIHJ1bGVzLgorCisgIGJ1bmRsZV9kYXRhKCJib3Jp
bmdzc2xfY3J5cHRvX3Rlc3RzX2J1bmRsZV9kYXRhIikgeworICAgIHNvdXJjZXMgPSBjcnlwdG9f
dGVzdF9kYXRhCisgICAgdGVzdG9ubHkgPSB0cnVlCisgICAgb3V0cHV0cyA9IFsKKyAgICAgICJ7
e2J1bmRsZV9yZXNvdXJjZXNfZGlyfX0vIiArCisgICAgICAgICAgInt7c291cmNlX3Jvb3RfcmVs
YXRpdmVfZGlyfX0ve3tzb3VyY2VfZmlsZV9wYXJ0fX0iLAorICAgIF0KKyAgfQogCi10ZXN0KCJi
b3Jpbmdzc2xfY3J5cHRvX3Rlc3RzIikgewotICBzb3VyY2VzID0gY3J5cHRvX3Rlc3Rfc291cmNl
cyArIHRlc3Rfc3VwcG9ydF9zb3VyY2VzCi0gIGRlcHMgPSBbCi0gICAgIjpib3Jpbmdzc2wiLAot
ICAgICIvL3Rlc3RpbmcvZ3Rlc3QiLAotICBdCisgIHRlc3QoImJvcmluZ3NzbF9jcnlwdG9fdGVz
dHMiKSB7CisgICAgc291cmNlcyA9IGNyeXB0b190ZXN0X3NvdXJjZXMgKyB0ZXN0X3N1cHBvcnRf
c291cmNlcworICAgIGRhdGEgPSBjcnlwdG9fdGVzdF9kYXRhCisgICAgZGVwcyA9IFsKKyAgICAg
ICI6Ym9yaW5nc3NsIiwKKyAgICAgICI6Ym9yaW5nc3NsX2NyeXB0b190ZXN0c19idW5kbGVfZGF0
YSIsCisgICAgICAiLy90ZXN0aW5nL2d0ZXN0IiwKKyAgICBdCiAKLSAgY29uZmlncyAtPSBbICIv
L2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBdCi0gIGNvbmZpZ3MgKz0gWwot
ICAgICI6aW50ZXJuYWxfY29uZmlnIiwKLSAgICAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6bm9f
Y2hyb21pdW1fY29kZSIsCi0gIF0KKyAgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29uZmlnL2Nv
bXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKyAgICBjb25maWdzICs9IFsKKyAgICAgICI6aW50ZXJu
YWxfY29uZmlnIiwKKyAgICAgICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpub19jaHJvbWl1bV9j
b2RlIiwKKyAgICBdCiAKLSAgIyBDaHJvbWl1bSBpbmZyYXN0cnVjdHVyZSBkb2VzIG5vdCBzdXBw
b3J0IEdUZXN0LCBvbmx5IHRoZSAvL2Jhc2Ugd3JhcHBlci4KLSAgaWYgKGJ1aWxkX3dpdGhfY2hy
b21pdW0pIHsKKyAgICAjIENocm9taXVtIGluZnJhc3RydWN0dXJlIGRvZXMgbm90IHN1cHBvcnQg
R1Rlc3QsIG9ubHkgdGhlIC8vYmFzZSB3cmFwcGVyLgogICAgIHNvdXJjZXMgLT0gWwogICAgICAg
InNyYy9jcnlwdG8vdGVzdC9ndGVzdF9tYWluLmNjIiwKIAogICAgICAgIyAvL2Jhc2UgaW5jbHVk
ZXMgaXRzIG93biBjb25mbGljdGluZyBtYWxsb2Mgc2hpbS4KICAgICAgICJzcmMvY3J5cHRvL3Rl
c3QvbWFsbG9jLmNjIiwKICAgICBdCi0gICAgc291cmNlcyArPSBbICJndGVzdF9tYWluX2Nocm9t
aXVtLmNjIiBdCisgICAgc291cmNlcyArPSBbCisgICAgICAiZ3Rlc3RfbWFpbl9jaHJvbWl1bS5j
YyIsCisgICAgICAidGVzdF9kYXRhX2Nocm9taXVtLmNjIiwKKyAgICBdCiAgICAgZGVwcyArPSBb
ICIvL2Jhc2UvdGVzdDp0ZXN0X3N1cHBvcnQiIF0KICAgfQotfQogCi10ZXN0KCJib3Jpbmdzc2xf
c3NsX3Rlc3RzIikgewotICBzb3VyY2VzID0gc3NsX3Rlc3Rfc291cmNlcyArIHRlc3Rfc3VwcG9y
dF9zb3VyY2VzCi0gIGRlcHMgPSBbCi0gICAgIjpib3Jpbmdzc2wiLAotICAgICIvL3Rlc3Rpbmcv
Z3Rlc3QiLAotICBdCisgIHRlc3QoImJvcmluZ3NzbF9zc2xfdGVzdHMiKSB7CisgICAgc291cmNl
cyA9IHNzbF90ZXN0X3NvdXJjZXMgKyB0ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGRlcHMgPSBb
CisgICAgICAiOmJvcmluZ3NzbCIsCisgICAgICAiLy90ZXN0aW5nL2d0ZXN0IiwKKyAgICBdCiAK
LSAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBd
Ci0gIGNvbmZpZ3MgKz0gWwotICAgICI6aW50ZXJuYWxfY29uZmlnIiwKLSAgICAiLy9idWlsZC9j
b25maWcvY29tcGlsZXI6bm9fY2hyb21pdW1fY29kZSIsCi0gIF0KKyAgICBjb25maWdzIC09IFsg
Ii8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKyAgICBjb25maWdzICs9
IFsKKyAgICAgICI6aW50ZXJuYWxfY29uZmlnIiwKKyAgICAgICIvL2J1aWxkL2NvbmZpZy9jb21w
aWxlcjpub19jaHJvbWl1bV9jb2RlIiwKKyAgICBdCiAKLSAgIyBDaHJvbWl1bSBpbmZyYXN0cnVj
dHVyZSBkb2VzIG5vdCBzdXBwb3J0IEdUZXN0LCBvbmx5IHRoZSAvL2Jhc2Ugd3JhcHBlci4KLSAg
aWYgKGJ1aWxkX3dpdGhfY2hyb21pdW0pIHsKKyAgICAjIENocm9taXVtIGluZnJhc3RydWN0dXJl
IGRvZXMgbm90IHN1cHBvcnQgR1Rlc3QsIG9ubHkgdGhlIC8vYmFzZSB3cmFwcGVyLgogICAgIHNv
dXJjZXMgLT0gWwogICAgICAgInNyYy9jcnlwdG8vdGVzdC9ndGVzdF9tYWluLmNjIiwKIApAQCAt
MTgwLDkgKzIwMSw3IEBAIHRlc3QoImJvcmluZ3NzbF9zc2xfdGVzdHMiKSB7CiAgICAgc291cmNl
cyArPSBbICJndGVzdF9tYWluX2Nocm9taXVtLmNjIiBdCiAgICAgZGVwcyArPSBbICIvL2Jhc2Uv
dGVzdDp0ZXN0X3N1cHBvcnQiIF0KICAgfQotfQogCi1pZiAoYnVpbGRfd2l0aF9jaHJvbWl1bSkg
ewogICBjb25maWcoImZ1enplcl9jb25maWciKSB7CiAgICAgdmlzaWJpbGl0eSA9IFsgIjoqIiBd
ICAjIE9ubHkgdGFyZ2V0cyBpbiB0aGlzIGZpbGUgY2FuIGRlcGVuZCBvbiB0aGlzLgogICAgIGRl
ZmluZXMgPSBbCkBAIC0xOTcsNiArMjE2LDEzIEBAIGlmIChidWlsZF93aXRoX2Nocm9taXVtKSB7
CiAKICAgICBzb3VyY2VzID0gYWxsX3NvdXJjZXMKICAgICBkZXBzID0gWworICAgICAgIi8vdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9maWF0OmZpYXRfbGljZW5zZSIsCisg
ICAgXQorCisgICAgIyBNYXJrIGJvcmluZ3NzbF9hc20gYXMgYSBwdWJsaWMgZGVwZW5kZW5jeSBz
byB0aGUgT1BFTlNTTF9OT19BU00KKyAgICAjIGNvbmZpZyBpcyBmb3J3YXJkZWQgdG8gY2FsbGVy
cy4gSW4gcGFydGljdWxhciwgYm9yaW5nc3NsX2NyeXB0b190ZXN0cworICAgICMgcmVxdWlyZXMg
aXQuCisgICAgcHVibGljX2RlcHMgPSBbCiAgICAgICAiOmJvcmluZ3NzbF9hc20iLAogICAgIF0K
IApAQCAtMjIxLDYgKzI0Nyw3IEBAIGlmIChidWlsZF93aXRoX2Nocm9taXVtKSB7CiAgICAgICAg
ICJzcmMvc3NsL3Rlc3QvZnV6emVyLmgiLAogICAgICAgICAic3JjL3NzbC90ZXN0L2Z1enplcl90
YWdzLmgiLAogICAgICAgXQorICAgICAgYWRkaXRpb25hbF9jb25maWdzID0gWyAiOmludGVybmFs
X2NvbmZpZyIgXQogICAgICAgZGVwcyA9IFsKICAgICAgICAgIjpib3Jpbmdzc2xfZnV6emVyIiwK
ICAgICAgIF0KQEAgLTI1OSw2ICsyODYsMTMgQEAgaWYgKGJ1aWxkX3dpdGhfY2hyb21pdW0pIHsK
IAogICAgIHNvdXJjZXMgPSBhbGxfc291cmNlcwogICAgIGRlcHMgPSBbCisgICAgICAiLy90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2ZpYXQ6ZmlhdF9saWNlbnNlIiwKKyAg
ICBdCisKKyAgICAjIE1hcmsgYm9yaW5nc3NsX2FzbSBhcyBhIHB1YmxpYyBkZXBlbmRlbmN5IHNv
IHRoZSBPUEVOU1NMX05PX0FTTQorICAgICMgY29uZmlnIGlzIGZvcndhcmRlZCB0byBjYWxsZXJz
LiBJbiBwYXJ0aWN1bGFyLCBib3Jpbmdzc2xfY3J5cHRvX3Rlc3RzCisgICAgIyByZXF1aXJlcyBp
dC4KKyAgICBwdWJsaWNfZGVwcyA9IFsKICAgICAgICI6Ym9yaW5nc3NsX2FzbSIsCiAgICAgXQog
CkBAIC0yODIsNiArMzE2LDcgQEAgaWYgKGJ1aWxkX3dpdGhfY2hyb21pdW0pIHsKICAgICAgICJz
cmMvc3NsL3Rlc3QvZnV6emVyLmgiLAogICAgICAgInNyYy9zc2wvdGVzdC9mdXp6ZXJfdGFncy5o
IiwKICAgICBdCisgICAgYWRkaXRpb25hbF9jb25maWdzID0gWyAiOmludGVybmFsX2NvbmZpZyIg
XQogICAgIGRlcHMgPSBbCiAgICAgICAiOmJvcmluZ3NzbF9mdXp6ZXJfbm9fZnV6emVyX21vZGUi
LAogICAgIF0KQEAgLTI5NCw2ICszMjksNyBAQCBpZiAoYnVpbGRfd2l0aF9jaHJvbWl1bSkgewog
ICAgICAgInNyYy9zc2wvdGVzdC9mdXp6ZXIuaCIsCiAgICAgICAic3JjL3NzbC90ZXN0L2Z1enpl
cl90YWdzLmgiLAogICAgIF0KKyAgICBhZGRpdGlvbmFsX2NvbmZpZ3MgPSBbICI6aW50ZXJuYWxf
Y29uZmlnIiBdCiAgICAgZGVwcyA9IFsKICAgICAgICI6Ym9yaW5nc3NsX2Z1enplcl9ub19mdXp6
ZXJfbW9kZSIsCiAgICAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvREVQUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0RFUFMKaW5kZXggNGUxNDdhMTZm
YzMyNjBjYjYyNTM5YzNlYzczMzkxNzExMmY3OTU5ZS4uNjllZDE5YzU5Y2FmZTgzYTVmYTkwOWJi
MWY3ZTdkOGE3YzI4NGY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvREVQUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9ERVBTCkBAIC0zLDQgKzMs
NyBAQCBzcGVjaWZpY19pbmNsdWRlX3J1bGVzID0gewogICAgICIrYmFzZSIsCiAgICAgIit0ZXN0
aW5nIiwKICAgXSwKKyAgInRlc3RfZGF0YV9jaHJvbWl1bVwuY2MiOiBbCisgICAgIitiYXNlIiwK
KyAgXSwKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL09XTkVSUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL09XTkVSUwppbmRleCA3Nzg5NmIzMDk4Nzdi
MzNlMTIyMDE1YTdmNzc2ZDcwNmQ2MTI1NWRiLi41NGZiNGJlMDU4YTM1OGE4NjAyNzkxOTNlNTE0
NDc3YWI0NGI0YzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9PV05FUlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvT1dORVJTCkBAIC00LDMgKzQs
NCBAQCByc2xlZXZpQGNocm9taXVtLm9yZwogc3ZhbGRlekBjaHJvbWl1bS5vcmcKIAogIyBDT01Q
T05FTlQ6IEludGVybmFscz5OZXR3b3JrPlNTTAorIyBURUFNOiBuZXQtZGV2QGNocm9taXVtLm9y
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvUkVBRE1FLmNocm9taXVtIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvUkVBRE1FLmNocm9taXVtCmluZGV4IDM5
YWQ0YmFiNzNhZTQwNzY3NGY2ODBjNjYwZTMzMzY5NmNkZjA2MjAuLjU5YzRhNjk4YTk5MDJmMmI5
YmRmZWEwYjIwYWYyMGMyNzUzM2JjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL1JFQURNRS5jaHJvbWl1bQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9SRUFETUUuY2hyb21pdW0KQEAgLTEzLDcgKzEzLDcgQEAgaHR0cHM6Ly93d3cuaW1wZXJpYWx2
aW9sZXQub3JnLzIwMTQvMDYvMjAvYm9yaW5nc3NsLmh0bWwKIE5vdGU6IHdoZW4gcm9sbGluZyBE
RVBTIGZvcndhcmQsIHJlbWVtYmVyIHRvIHJ1bgogCiAgIGNkIHRoaXJkX3BhcnR5L2JvcmluZ3Nz
bAotICBweXRob24gc3JjL3V0aWwvZ2VuZXJhdGVfYnVpbGRfZmlsZXMucHkgZ24KKyAgcHl0aG9u
IHNyYy91dGlsL2dlbmVyYXRlX2J1aWxkX2ZpbGVzLnB5IC0tZW1iZWRfdGVzdF9kYXRhPWZhbHNl
IGduCiAKIGZyb20gYSBzeXN0ZW0gd2l0aCBib3RoIFBlcmwgYW5kIEdvIGluc3RhbGxlZC4gQWx0
ZXJuYXRpdmVseSwgdXNlIHRoZQogcm9sbF9ib3Jpbmdzc2wucHkgc2NyaXB0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvZXJyX2RhdGEuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL2Vycl9kYXRhLmMKaW5kZXggOTU0NmFkMmVkOTljZDNhNjllZmNmYWYw
ZjJiMTFiOTdmYmNjZjdkYy4uMzM1NzBhMDIzNmRmZTQzOWI3NmY5NDIwMGE5MTEwNTE3MWZiZTI4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvZXJyX2RhdGEuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9lcnJfZGF0YS5jCkBAIC03NSw1NCArNzUs
NTQgQEAgY29uc3QgdWludDMyX3Qga09wZW5TU0xSZWFzb25WYWx1ZXNbXSA9IHsKICAgICAweGMz
YjAwZWEsCiAgICAgMHhjM2I4OGQ2LAogICAgIDB4MTAzMjA4NDcsCi0gICAgMHgxMDMyOTU3NCwK
LSAgICAweDEwMzMxNTgwLAotICAgIDB4MTAzMzk1OTksCi0gICAgMHgxMDM0MTVhYywKLSAgICAw
eDEwMzQ4ZjE0LAorICAgIDB4MTAzMjk1ODUsCisgICAgMHgxMDMzMTU5MSwKKyAgICAweDEwMzM5
NWFhLAorICAgIDB4MTAzNDE1YmQsCisgICAgMHgxMDM0OGYyNywKICAgICAweDEwMzUwYzYwLAot
ICAgIDB4MTAzNTk1YmYsCi0gICAgMHgxMDM2MTVlOSwKLSAgICAweDEwMzY5NWZjLAotICAgIDB4
MTAzNzE2MWIsCi0gICAgMHgxMDM3OTYzNCwKLSAgICAweDEwMzgxNjQ5LAotICAgIDB4MTAzODk2
NjcsCi0gICAgMHgxMDM5MTY3NiwKLSAgICAweDEwMzk5NjkyLAotICAgIDB4MTAzYTE2YWQsCi0g
ICAgMHgxMDNhOTZiYywKLSAgICAweDEwM2IxNmQ4LAotICAgIDB4MTAzYjk2ZjMsCi0gICAgMHgx
MDNjMTcxOSwKKyAgICAweDEwMzU5NWQwLAorICAgIDB4MTAzNjE1ZmEsCisgICAgMHgxMDM2OTYw
ZCwKKyAgICAweDEwMzcxNjJjLAorICAgIDB4MTAzNzk2NDUsCisgICAgMHgxMDM4MTY1YSwKKyAg
ICAweDEwMzg5Njc4LAorICAgIDB4MTAzOTE2ODcsCisgICAgMHgxMDM5OTZhMywKKyAgICAweDEw
M2ExNmJlLAorICAgIDB4MTAzYTk2Y2QsCisgICAgMHgxMDNiMTZlOSwKKyAgICAweDEwM2I5NzA0
LAorICAgIDB4MTAzYzE3MmEsCiAgICAgMHgxMDNjODBlYSwKLSAgICAweDEwM2QxNzJhLAotICAg
IDB4MTAzZDk3M2UsCi0gICAgMHgxMDNlMTc1ZCwKLSAgICAweDEwM2U5NzZjLAotICAgIDB4MTAz
ZjE3ODMsCi0gICAgMHgxMDNmOTc5NiwKKyAgICAweDEwM2QxNzNiLAorICAgIDB4MTAzZDk3NGYs
CisgICAgMHgxMDNlMTc2ZSwKKyAgICAweDEwM2U5NzdkLAorICAgIDB4MTAzZjE3OTQsCisgICAg
MHgxMDNmOTdhNywKICAgICAweDEwNDAwYzI0LAotICAgIDB4MTA0MDk3YTksCi0gICAgMHgxMDQx
MTdjNywKLSAgICAweDEwNDE5N2RhLAotICAgIDB4MTA0MjE3ZjQsCi0gICAgMHgxMDQyOTgwNCwK
LSAgICAweDEwNDMxODE4LAotICAgIDB4MTA0Mzk4MmUsCi0gICAgMHgxMDQ0MTg0NiwKLSAgICAw
eDEwNDQ5ODViLAotICAgIDB4MTA0NTE4NmYsCi0gICAgMHgxMDQ1OTg4MSwKKyAgICAweDEwNDA5
N2JhLAorICAgIDB4MTA0MTE3ZDgsCisgICAgMHgxMDQxOTdlYiwKKyAgICAweDEwNDIxODA1LAor
ICAgIDB4MTA0Mjk4MTUsCisgICAgMHgxMDQzMTgyOSwKKyAgICAweDEwNDM5ODNmLAorICAgIDB4
MTA0NDE4NTcsCisgICAgMHgxMDQ0OTg2YywKKyAgICAweDEwNDUxODgwLAorICAgIDB4MTA0NTk4
OTIsCiAgICAgMHgxMDQ2MDVmZCwKICAgICAweDEwNDY4OTRmLAotICAgIDB4MTA0NzE4OTYsCi0g
ICAgMHgxMDQ3OThhZCwKLSAgICAweDEwNDgxOGMyLAotICAgIDB4MTA0ODk4ZDAsCi0gICAgMHgx
MDQ5MGU2MCwKLSAgICAweDEwNDk5NzBhLAotICAgIDB4MTA0YTE1ZDQsCisgICAgMHgxMDQ3MThh
NywKKyAgICAweDEwNDc5OGJlLAorICAgIDB4MTA0ODE4ZDMsCisgICAgMHgxMDQ4OThlMSwKKyAg
ICAweDEwNDkwZTczLAorICAgIDB4MTA0OTk3MWIsCisgICAgMHgxMDRhMTVlNSwKICAgICAweDE0
MzIwYzA3LAogICAgIDB4MTQzMjhjMTUsCiAgICAgMHgxNDMzMGMyNCwKQEAgLTEzMCwxMDEgKzEz
MCwxMDMgQEAgY29uc3QgdWludDMyX3Qga09wZW5TU0xSZWFzb25WYWx1ZXNbXSA9IHsKICAgICAw
eDE0MzQwMGFjLAogICAgIDB4MTQzNDgwZWEsCiAgICAgMHgxODMyMDA4MywKLSAgICAweDE4MzI4
ZjZhLAorICAgIDB4MTgzMjhmN2QsCiAgICAgMHgxODMzMDBhYywKLSAgICAweDE4MzM4ZjgwLAot
ICAgIDB4MTgzNDBmOTQsCisgICAgMHgxODMzOGY5MywKKyAgICAweDE4MzQwZmE3LAogICAgIDB4
MTgzNDgwZWEsCi0gICAgMHgxODM1MGZhOSwKLSAgICAweDE4MzU4ZmMxLAotICAgIDB4MTgzNjBm
ZDYsCi0gICAgMHgxODM2OGZlYSwKLSAgICAweDE4MzcxMDBlLAotICAgIDB4MTgzNzkwMjQsCi0g
ICAgMHgxODM4MTAzOCwKLSAgICAweDE4Mzg5MDQ4LAorICAgIDB4MTgzNTBmYmMsCisgICAgMHgx
ODM1OGZkNCwKKyAgICAweDE4MzYwZmU5LAorICAgIDB4MTgzNjhmZmQsCisgICAgMHgxODM3MTAy
MSwKKyAgICAweDE4Mzc5MDM3LAorICAgIDB4MTgzODEwNGIsCisgICAgMHgxODM4OTA1YiwKICAg
ICAweDE4MzkwYTc1LAotICAgIDB4MTgzOTkwNTgsCi0gICAgMHgxODNhMTA4MCwKLSAgICAweDE4
M2E5MGE2LAotICAgIDB4MTgzYjBjNmMsCi0gICAgMHgxODNiOTBkYiwKLSAgICAweDE4M2MxMGVk
LAotICAgIDB4MTgzYzkwZjgsCi0gICAgMHgxODNkMTEwOCwKLSAgICAweDE4M2Q5MTE5LAotICAg
IDB4MTgzZTExMmEsCi0gICAgMHgxODNlOTEzYywKLSAgICAweDE4M2YxMTY1LAotICAgIDB4MTgz
ZjkxN2UsCi0gICAgMHgxODQwMTE5NiwKKyAgICAweDE4Mzk5MDZiLAorICAgIDB4MTgzYTEwOTEs
CisgICAgMHgxODNhOTBiNywKKyAgICAweDE4M2IwYzdmLAorICAgIDB4MTgzYjkwZWMsCisgICAg
MHgxODNjMTBmZSwKKyAgICAweDE4M2M5MTA5LAorICAgIDB4MTgzZDExMTksCisgICAgMHgxODNk
OTEyYSwKKyAgICAweDE4M2UxMTNiLAorICAgIDB4MTgzZTkxNGQsCisgICAgMHgxODNmMTE3NiwK
KyAgICAweDE4M2Y5MThmLAorICAgIDB4MTg0MDExYTcsCiAgICAgMHgxODQwODZkNSwKLSAgICAw
eDE4NDExMGM5LAotICAgIDB4MTg0MTkwOTQsCi0gICAgMHgxODQyMTBiMywKLSAgICAweDE4NDI5
MDZkLAotICAgIDB4MjAzMjExZDAsCi0gICAgMHgyMDMyOTFiZCwKLSAgICAweDI0MzIxMWRjLAor
ICAgIDB4MTg0MTEwZGEsCisgICAgMHgxODQxOTBhNSwKKyAgICAweDE4NDIxMGM0LAorICAgIDB4
MTg0MjhjNmMsCisgICAgMHgxODQzMTA4MCwKKyAgICAweDIwMzIxMWUxLAorICAgIDB4MjAzMjkx
Y2UsCisgICAgMHgyNDMyMTFlZCwKICAgICAweDI0MzI4OTk1LAotICAgIDB4MjQzMzExZWUsCi0g
ICAgMHgyNDMzOTFmYiwKLSAgICAweDI0MzQxMjA4LAotICAgIDB4MjQzNDkyMWEsCi0gICAgMHgy
NDM1MTIyOSwKLSAgICAweDI0MzU5MjQ2LAotICAgIDB4MjQzNjEyNTMsCi0gICAgMHgyNDM2OTI2
MSwKLSAgICAweDI0MzcxMjZmLAotICAgIDB4MjQzNzkyN2QsCi0gICAgMHgyNDM4MTI4NiwKLSAg
ICAweDI0Mzg5MjkzLAotICAgIDB4MjQzOTEyYTYsCisgICAgMHgyNDMzMTFmZiwKKyAgICAweDI0
MzM5MjBjLAorICAgIDB4MjQzNDEyMTksCisgICAgMHgyNDM0OTIyYiwKKyAgICAweDI0MzUxMjNh
LAorICAgIDB4MjQzNTkyNTcsCisgICAgMHgyNDM2MTI2NCwKKyAgICAweDI0MzY5MjcyLAorICAg
IDB4MjQzNzEyODAsCisgICAgMHgyNDM3OTI4ZSwKKyAgICAweDI0MzgxMjk3LAorICAgIDB4MjQz
ODkyYTQsCisgICAgMHgyNDM5MTJiNywKICAgICAweDI4MzIwYzU0LAotICAgIDB4MjgzMjhjNmMs
CisgICAgMHgyODMyOGM3ZiwKICAgICAweDI4MzMwYzI0LAotICAgIDB4MjgzMzhjN2YsCisgICAg
MHgyODMzOGM5MiwKICAgICAweDI4MzQwYzYwLAogICAgIDB4MjgzNDgwYWMsCiAgICAgMHgyODM1
MDBlYSwKLSAgICAweDJjMzIyZTkyLAotICAgIDB4MmMzMjkyYmQsCi0gICAgMHgyYzMzMmVhMCwK
LSAgICAweDJjMzNhZWIyLAotICAgIDB4MmMzNDJlYzYsCi0gICAgMHgyYzM0YWVkOCwKLSAgICAw
eDJjMzUyZWYzLAotICAgIDB4MmMzNWFmMDUsCi0gICAgMHgyYzM2MmYxOCwKKyAgICAweDI4MzU4
YzZjLAorICAgIDB4MmMzMjJlZjIsCisgICAgMHgyYzMyOTJjZSwKKyAgICAweDJjMzMyZjAwLAor
ICAgIDB4MmMzM2FmMTIsCisgICAgMHgyYzM0MmYyNiwKKyAgICAweDJjMzRhZjM4LAorICAgIDB4
MmMzNTJmNTMsCisgICAgMHgyYzM1YWY2NSwKKyAgICAweDJjMzYyZjc4LAogICAgIDB4MmMzNjgz
MmQsCi0gICAgMHgyYzM3MmYyNSwKLSAgICAweDJjMzdhZjM3LAotICAgIDB4MmMzODJmNWMsCi0g
ICAgMHgyYzM4YWY3MywKLSAgICAweDJjMzkyZjgxLAotICAgIDB4MmMzOWFmOTEsCi0gICAgMHgy
YzNhMmZhMywKLSAgICAweDJjM2FhZmI3LAotICAgIDB4MmMzYjJmYzgsCi0gICAgMHgyYzNiYWZl
NywKLSAgICAweDJjM2MxMmNmLAotICAgIDB4MmMzYzkyZTUsCi0gICAgMHgyYzNkMmZmYiwKLSAg
ICAweDJjM2Q5MmZlLAotICAgIDB4MmMzZTMwMTgsCi0gICAgMHgyYzNlYjAyNiwKLSAgICAweDJj
M2YzMDNlLAotICAgIDB4MmMzZmIwNTYsCi0gICAgMHgyYzQwMzA4MCwKLSAgICAweDJjNDA5MWQw
LAotICAgIDB4MmM0MTMwOTEsCi0gICAgMHgyYzQxYjBhNCwKLSAgICAweDJjNDIxMTk2LAotICAg
IDB4MmM0MmIwYjUsCisgICAgMHgyYzM3MmY4NSwKKyAgICAweDJjMzdhZjk3LAorICAgIDB4MmMz
ODJmYmMsCisgICAgMHgyYzM4YWZkMywKKyAgICAweDJjMzkyZmUxLAorICAgIDB4MmMzOWFmZjEs
CisgICAgMHgyYzNhMzAwMywKKyAgICAweDJjM2FiMDE3LAorICAgIDB4MmMzYjMwMjgsCisgICAg
MHgyYzNiYjA0NywKKyAgICAweDJjM2MxMmUwLAorICAgIDB4MmMzYzkyZjYsCisgICAgMHgyYzNk
MzA1YiwKKyAgICAweDJjM2Q5MzBmLAorICAgIDB4MmMzZTMwNzgsCisgICAgMHgyYzNlYjA4NiwK
KyAgICAweDJjM2YzMDllLAorICAgIDB4MmMzZmIwYjYsCisgICAgMHgyYzQwMzBlMCwKKyAgICAw
eDJjNDA5MWUxLAorICAgIDB4MmM0MTMwZjEsCisgICAgMHgyYzQxYjEwNCwKKyAgICAweDJjNDIx
MWE3LAorICAgIDB4MmM0MmIxMTUsCiAgICAgMHgyYzQzMDcyMiwKLSAgICAweDJjNDNhZmQ5LAot
ICAgIDB4MmM0NDJmNGEsCi0gICAgMHgyYzQ0YjA2MywKKyAgICAweDJjNDNiMDM5LAorICAgIDB4
MmM0NDJmYWEsCisgICAgMHgyYzQ0YjBjMywKICAgICAweDMwMzIwMDAwLAogICAgIDB4MzAzMjgw
MTUsCiAgICAgMHgzMDMzMDAxZiwKQEAgLTMyNiwyNzEgKzMyOCwyNzQgQEAgY29uc3QgdWludDMy
X3Qga09wZW5TU0xSZWFzb25WYWx1ZXNbXSA9IHsKICAgICAweDM0MzQ4YmYxLAogICAgIDB4MzQz
NTBiZDUsCiAgICAgMHgzYzMyMDA4MywKLSAgICAweDNjMzI4Y2E5LAotICAgIDB4M2MzMzBjYzIs
Ci0gICAgMHgzYzMzOGNkZCwKLSAgICAweDNjMzQwY2ZhLAotICAgIDB4M2MzNDhkMjQsCi0gICAg
MHgzYzM1MGQzZiwKLSAgICAweDNjMzU4ZDY1LAotICAgIDB4M2MzNjBkN2UsCi0gICAgMHgzYzM2
OGQ5NiwKLSAgICAweDNjMzcwZGE3LAotICAgIDB4M2MzNzhkYjUsCi0gICAgMHgzYzM4MGRjMiwK
LSAgICAweDNjMzg4ZGQ2LAotICAgIDB4M2MzOTBjNmMsCi0gICAgMHgzYzM5OGRmOSwKLSAgICAw
eDNjM2EwZTBkLAorICAgIDB4M2MzMjhjYmMsCisgICAgMHgzYzMzMGNkNSwKKyAgICAweDNjMzM4
Y2YwLAorICAgIDB4M2MzNDBkMGQsCisgICAgMHgzYzM0OGQzNywKKyAgICAweDNjMzUwZDUyLAor
ICAgIDB4M2MzNThkNzgsCisgICAgMHgzYzM2MGQ5MSwKKyAgICAweDNjMzY4ZGE5LAorICAgIDB4
M2MzNzBkYmEsCisgICAgMHgzYzM3OGRjOCwKKyAgICAweDNjMzgwZGQ1LAorICAgIDB4M2MzODhk
ZTksCisgICAgMHgzYzM5MGM3ZiwKKyAgICAweDNjMzk4ZTBjLAorICAgIDB4M2MzYTBlMjAsCiAg
ICAgMHgzYzNhODkwZiwKLSAgICAweDNjM2IwZTFkLAotICAgIDB4M2MzYjhlMzgsCi0gICAgMHgz
YzNjMGU0YSwKLSAgICAweDNjM2M4ZTdkLAotICAgIDB4M2MzZDBlODcsCi0gICAgMHgzYzNkOGU5
YiwKLSAgICAweDNjM2UwZWE5LAotICAgIDB4M2MzZThlY2UsCi0gICAgMHgzYzNmMGM5NSwKLSAg
ICAweDNjM2Y4ZWI3LAorICAgIDB4M2MzYjBlMzAsCisgICAgMHgzYzNiOGU0YiwKKyAgICAweDNj
M2MwZTVkLAorICAgIDB4M2MzYzhlOTAsCisgICAgMHgzYzNkMGU5YSwKKyAgICAweDNjM2Q4ZWFl
LAorICAgIDB4M2MzZTBlYmMsCisgICAgMHgzYzNlOGVlMSwKKyAgICAweDNjM2YwY2E4LAorICAg
IDB4M2MzZjhlY2EsCiAgICAgMHgzYzQwMDBhYywKICAgICAweDNjNDA4MGVhLAotICAgIDB4M2M0
MTBkMTUsCi0gICAgMHgzYzQxOGQ1NCwKLSAgICAweDNjNDIwZTYwLAotICAgIDB4M2M0MjhkZWEs
Ci0gICAgMHg0MDMyMTk0NiwKLSAgICAweDQwMzI5OTVjLAotICAgIDB4NDAzMzE5OGEsCi0gICAg
MHg0MDMzOTk5NCwKLSAgICAweDQwMzQxOWFiLAotICAgIDB4NDAzNDk5YzksCi0gICAgMHg0MDM1
MTlkOSwKLSAgICAweDQwMzU5OWViLAotICAgIDB4NDAzNjE5ZjgsCi0gICAgMHg0MDM2OWEwNCwK
LSAgICAweDQwMzcxYTE5LAotICAgIDB4NDAzNzlhMmIsCi0gICAgMHg0MDM4MWEzNiwKLSAgICAw
eDQwMzg5YTQ4LAotICAgIDB4NDAzOTBmMTQsCi0gICAgMHg0MDM5OWE1OCwKLSAgICAweDQwM2Ex
YTZiLAotICAgIDB4NDAzYTlhOGMsCi0gICAgMHg0MDNiMWE5ZCwKLSAgICAweDQwM2I5YWFkLAor
ICAgIDB4M2M0MTBkMjgsCisgICAgMHgzYzQxOGQ2NywKKyAgICAweDNjNDIwZTczLAorICAgIDB4
M2M0MjhkZmQsCisgICAgMHg0MDMyMTk1NywKKyAgICAweDQwMzI5OTZkLAorICAgIDB4NDAzMzE5
OWIsCisgICAgMHg0MDMzOTlhNSwKKyAgICAweDQwMzQxOWJjLAorICAgIDB4NDAzNDk5ZGEsCisg
ICAgMHg0MDM1MTllYSwKKyAgICAweDQwMzU5OWZjLAorICAgIDB4NDAzNjFhMDksCisgICAgMHg0
MDM2OWExNSwKKyAgICAweDQwMzcxYTJhLAorICAgIDB4NDAzNzlhM2MsCisgICAgMHg0MDM4MWE0
NywKKyAgICAweDQwMzg5YTU5LAorICAgIDB4NDAzOTBmMjcsCisgICAgMHg0MDM5OWE2OSwKKyAg
ICAweDQwM2ExYTdjLAorICAgIDB4NDAzYTlhOWQsCisgICAgMHg0MDNiMWFhZSwKKyAgICAweDQw
M2I5YWJlLAogICAgIDB4NDAzYzAwNjQsCiAgICAgMHg0MDNjODA4MywKLSAgICAweDQwM2QxYjMx
LAotICAgIDB4NDAzZDliNDcsCi0gICAgMHg0MDNlMWI1NiwKLSAgICAweDQwM2U5YjhlLAotICAg
IDB4NDAzZjFiYTgsCi0gICAgMHg0MDNmOWJkMCwKLSAgICAweDQwNDAxYmU1LAotICAgIDB4NDA0
MDliZjksCi0gICAgMHg0MDQxMWMxNiwKLSAgICAweDQwNDE5YzMxLAotICAgIDB4NDA0MjFjNGEs
Ci0gICAgMHg0MDQyOWM1ZCwKLSAgICAweDQwNDMxYzcxLAotICAgIDB4NDA0MzljODksCi0gICAg
MHg0MDQ0MWNhMCwKKyAgICAweDQwM2QxYjQyLAorICAgIDB4NDAzZDliNTgsCisgICAgMHg0MDNl
MWI2NywKKyAgICAweDQwM2U5YjlmLAorICAgIDB4NDAzZjFiYjksCisgICAgMHg0MDNmOWJlMSwK
KyAgICAweDQwNDAxYmY2LAorICAgIDB4NDA0MDljMGEsCisgICAgMHg0MDQxMWMyNywKKyAgICAw
eDQwNDE5YzQyLAorICAgIDB4NDA0MjFjNWIsCisgICAgMHg0MDQyOWM2ZSwKKyAgICAweDQwNDMx
YzgyLAorICAgIDB4NDA0MzljOWEsCisgICAgMHg0MDQ0MWNiMSwKICAgICAweDQwNDQ4MGFjLAot
ICAgIDB4NDA0NTFjYjUsCi0gICAgMHg0MDQ1OWNjNywKLSAgICAweDQwNDYxY2ViLAotICAgIDB4
NDA0NjlkMGIsCi0gICAgMHg0MDQ3MWQxOSwKLSAgICAweDQwNDc5ZDQwLAotICAgIDB4NDA0ODFk
YjEsCi0gICAgMHg0MDQ4OWRlNCwKLSAgICAweDQwNDkxZGZiLAotICAgIDB4NDA0OTllMTUsCi0g
ICAgMHg0MDRhMWUyYywKLSAgICAweDQwNGE5ZTRhLAotICAgIDB4NDA0YjFlNjIsCi0gICAgMHg0
MDRiOWU3OSwKLSAgICAweDQwNGMxZThmLAotICAgIDB4NDA0YzllYTEsCi0gICAgMHg0MDRkMWVj
MiwKLSAgICAweDQwNGQ5ZWZiLAotICAgIDB4NDA0ZTFmMGYsCi0gICAgMHg0MDRlOWYxYywKLSAg
ICAweDQwNGYxZjQ5LAotICAgIDB4NDA0ZjlmNzIsCi0gICAgMHg0MDUwMWZjOSwKLSAgICAweDQw
NTA5ZmRkLAotICAgIDB4NDA1MTFmZjgsCi0gICAgMHg0MDUyMjAwOCwKLSAgICAweDQwNTJhMDJj
LAotICAgIDB4NDA1MzIwNDQsCi0gICAgMHg0MDUzYTA1NywKLSAgICAweDQwNTQyMDZjLAotICAg
IDB4NDA1NGEwOGYsCi0gICAgMHg0MDU1MjA5ZCwKLSAgICAweDQwNTVhMGRhLAotICAgIDB4NDA1
NjIwZTcsCi0gICAgMHg0MDU2YTEwMCwKLSAgICAweDQwNTcyMTE4LAotICAgIDB4NDA1N2ExMmIs
Ci0gICAgMHg0MDU4MjE0MCwKLSAgICAweDQwNThhMTY3LAotICAgIDB4NDA1OTIxOTYsCi0gICAg
MHg0MDU5YTFjMywKLSAgICAweDQwNWEyMWQ3LAotICAgIDB4NDA1YWExZTcsCi0gICAgMHg0MDVi
MjFmZiwKLSAgICAweDQwNWJhMjEwLAotICAgIDB4NDA1YzIyMjMsCi0gICAgMHg0MDVjYTI2MiwK
LSAgICAweDQwNWQyMjZmLAotICAgIDB4NDA1ZGEyOTQsCi0gICAgMHg0MDVlMjJkMiwKKyAgICAw
eDQwNDUxY2M2LAorICAgIDB4NDA0NTljZDgsCisgICAgMHg0MDQ2MWNmYywKKyAgICAweDQwNDY5
ZDFjLAorICAgIDB4NDA0NzFkMmEsCisgICAgMHg0MDQ3OWQ1MSwKKyAgICAweDQwNDgxZGMyLAor
ICAgIDB4NDA0ODlkZjUsCisgICAgMHg0MDQ5MWUwYywKKyAgICAweDQwNDk5ZTI2LAorICAgIDB4
NDA0YTFlM2QsCisgICAgMHg0MDRhOWU1YiwKKyAgICAweDQwNGIxZTczLAorICAgIDB4NDA0Yjll
OGEsCisgICAgMHg0MDRjMWVhMCwKKyAgICAweDQwNGM5ZWIyLAorICAgIDB4NDA0ZDFlZDMsCisg
ICAgMHg0MDRkOWYwYywKKyAgICAweDQwNGUxZjIwLAorICAgIDB4NDA0ZTlmMmQsCisgICAgMHg0
MDRmMWY3NCwKKyAgICAweDQwNGY5ZmJhLAorICAgIDB4NDA1MDIwMTEsCisgICAgMHg0MDUwYTAy
NSwKKyAgICAweDQwNTEyMDU4LAorICAgIDB4NDA1MjIwNjgsCisgICAgMHg0MDUyYTA4YywKKyAg
ICAweDQwNTMyMGE0LAorICAgIDB4NDA1M2EwYjcsCisgICAgMHg0MDU0MjBjYywKKyAgICAweDQw
NTRhMGVmLAorICAgIDB4NDA1NTIwZmQsCisgICAgMHg0MDU1YTEzYSwKKyAgICAweDQwNTYyMTQ3
LAorICAgIDB4NDA1NmExNjAsCisgICAgMHg0MDU3MjE3OCwKKyAgICAweDQwNTdhMThiLAorICAg
IDB4NDA1ODIxYTAsCisgICAgMHg0MDU4YTFjNywKKyAgICAweDQwNTkyMWY2LAorICAgIDB4NDA1
OWEyMjMsCisgICAgMHg0MDVhMjIzNywKKyAgICAweDQwNWFhMjQ3LAorICAgIDB4NDA1YjIyNWYs
CisgICAgMHg0MDViYTI3MCwKKyAgICAweDQwNWMyMjgzLAorICAgIDB4NDA1Y2EyYzIsCisgICAg
MHg0MDVkMjJjZiwKKyAgICAweDQwNWRhMmY0LAorICAgIDB4NDA1ZTIzMzIsCiAgICAgMHg0MDVl
OGFiMywKLSAgICAweDQwNWYyMmYzLAotICAgIDB4NDA1ZmEzMDAsCi0gICAgMHg0MDYwMjMwZSwK
LSAgICAweDQwNjBhMzMwLAotICAgIDB4NDA2MTIzOTEsCi0gICAgMHg0MDYxYTNjOSwKLSAgICAw
eDQwNjIyM2UwLAotICAgIDB4NDA2MmEzZjEsCi0gICAgMHg0MDYzMjQxNiwKLSAgICAweDQwNjNh
NDJiLAotICAgIDB4NDA2NDI0NDIsCi0gICAgMHg0MDY0YTQ2ZSwKLSAgICAweDQwNjUyNDg5LAot
ICAgIDB4NDA2NWE0YTAsCi0gICAgMHg0MDY2MjRiOCwKLSAgICAweDQwNjZhNGUyLAotICAgIDB4
NDA2NzI1MGQsCi0gICAgMHg0MDY3YTU1MiwKLSAgICAweDQwNjgyNTlhLAotICAgIDB4NDA2OGE1
YmIsCi0gICAgMHg0MDY5MjVlZCwKLSAgICAweDQwNjlhNjFiLAotICAgIDB4NDA2YTI2M2MsCi0g
ICAgMHg0MDZhYTY1YywKLSAgICAweDQwNmIyN2U0LAotICAgIDB4NDA2YmE4MDcsCi0gICAgMHg0
MDZjMjgxZCwKLSAgICAweDQwNmNhYWMwLAotICAgIDB4NDA2ZDJhZWYsCi0gICAgMHg0MDZkYWIx
NywKLSAgICAweDQwNmUyYjQ1LAotICAgIDB4NDA2ZWFiOTIsCi0gICAgMHg0MDZmMmJjZCwKLSAg
ICAweDQwNmZhYzA1LAotICAgIDB4NDA3MDJjMTgsCi0gICAgMHg0MDcwYWMzNSwKKyAgICAweDQw
NWYyMzUzLAorICAgIDB4NDA1ZmEzNjAsCisgICAgMHg0MDYwMjM2ZSwKKyAgICAweDQwNjBhMzkw
LAorICAgIDB4NDA2MTIzZjEsCisgICAgMHg0MDYxYTQyOSwKKyAgICAweDQwNjIyNDQwLAorICAg
IDB4NDA2MmE0NTEsCisgICAgMHg0MDYzMjQ3NiwKKyAgICAweDQwNjNhNDhiLAorICAgIDB4NDA2
NDI0YTIsCisgICAgMHg0MDY0YTRjZSwKKyAgICAweDQwNjUyNGU5LAorICAgIDB4NDA2NWE1MDAs
CisgICAgMHg0MDY2MjUxOCwKKyAgICAweDQwNjZhNTQyLAorICAgIDB4NDA2NzI1NmQsCisgICAg
MHg0MDY3YTViMiwKKyAgICAweDQwNjgyNWZhLAorICAgIDB4NDA2OGE2MWIsCisgICAgMHg0MDY5
MjY0ZCwKKyAgICAweDQwNjlhNjdiLAorICAgIDB4NDA2YTI2OWMsCisgICAgMHg0MDZhYTZiYywK
KyAgICAweDQwNmIyODQ0LAorICAgIDB4NDA2YmE4NjcsCisgICAgMHg0MDZjMjg3ZCwKKyAgICAw
eDQwNmNhYjIwLAorICAgIDB4NDA2ZDJiNGYsCisgICAgMHg0MDZkYWI3NywKKyAgICAweDQwNmUy
YmE1LAorICAgIDB4NDA2ZWFiZjIsCisgICAgMHg0MDZmMmMyZCwKKyAgICAweDQwNmZhYzY1LAor
ICAgIDB4NDA3MDJjNzgsCisgICAgMHg0MDcwYWM5NSwKICAgICAweDQwNzEwODAyLAotICAgIDB4
NDA3MWFjNDcsCi0gICAgMHg0MDcyMmM1YSwKLSAgICAweDQwNzJhYzkwLAotICAgIDB4NDA3MzJj
YTgsCi0gICAgMHg0MDczOTRjZiwKLSAgICAweDQwNzQyY2JjLAotICAgIDB4NDA3NGFjZDYsCi0g
ICAgMHg0MDc1MmNlNywKLSAgICAweDQwNzVhY2ZiLAotICAgIDB4NDA3NjJkMDksCi0gICAgMHg0
MDc2OTI5MywKLSAgICAweDQwNzcyZDJlLAotICAgIDB4NDA3N2FkNTAsCi0gICAgMHg0MDc4MmQ2
YiwKLSAgICAweDQwNzhhZGE0LAotICAgIDB4NDA3OTJkYmIsCi0gICAgMHg0MDc5YWRkMSwKLSAg
ICAweDQwN2EyZGZkLAotICAgIDB4NDA3YWFlMTAsCi0gICAgMHg0MDdiMmUyNSwKLSAgICAweDQw
N2JhZTM3LAotICAgIDB4NDA3YzJlNjgsCi0gICAgMHg0MDdjYWU3MSwKLSAgICAweDQwN2QyNWQ2
LAotICAgIDB4NDA3ZDlmODIsCi0gICAgMHg0MDdlMmQ4MCwKLSAgICAweDQwN2VhMTc3LAotICAg
IDB4NDA3ZjFkMmQsCi0gICAgMHg0MDdmOWFkMywKLSAgICAweDQwODAxZjU5LAotICAgIDB4NDA4
MDlkNTUsCi0gICAgMHg0MDgxMjAxYSwKLSAgICAweDQwODE5ZjMzLAotICAgIDB4NDA4MjJiMzAs
Ci0gICAgMHg0MDgyOWFiOSwKLSAgICAweDQwODMyMTUyLAotICAgIDB4NDA4M2E0NTMsCi0gICAg
MHg0MDg0MWQ2OSwKLSAgICAweDQwODRhMWFmLAotICAgIDB4NDA4NTIyMzQsCi0gICAgMHg0MDg1
YTM1OCwKLSAgICAweDQwODYyMmI0LAotICAgIDB4NDA4NjlmOWMsCi0gICAgMHg0MDg3MmI3NiwK
LSAgICAweDQwODdhM2E2LAotICAgIDB4NDA4ODFiMWEsCi0gICAgMHg0MDg4YTU2NSwKLSAgICAw
eDQwODkxYjY5LAotICAgIDB4NDA4OTlhZjYsCi0gICAgMHg0MDhhMjg1NSwKLSAgICAweDQwOGE5
OGU3LAotICAgIDB4NDA4YjJlNGMsCi0gICAgMHg0MDhiYWJlMiwKLSAgICAweDQwOGMyMjQ0LAot
ICAgIDB4NDA4Yzk5MDMsCi0gICAgMHg0MDhkMWRjYSwKLSAgICAweDQwOGQ5ZDliLAotICAgIDB4
NDA4ZTFlZTQsCi0gICAgMHg0MDhlYTBiYSwKLSAgICAweDQwOGYyNTc5LAotICAgIDB4NDA4ZmEz
NzQsCi0gICAgMHg0MDkwMjUyZSwKLSAgICAweDQwOTBhMjg2LAotICAgIDB4NDA5MTI4M2QsCi0g
ICAgMHg0MDkxOTkyOSwKLSAgICAweDQwOTIxYmI2LAotICAgIDB4NDA5MmFiYjEsCi0gICAgMHg0
MDkzMmM3MywKLSAgICAweDQwOTM5ZmFkLAotICAgIDB4NDA5NDFkN2QsCi0gICAgMHg0MDk0YTg2
ZSwKLSAgICAweDQwOTUyNDAyLAotICAgIDB4NDA5NWFkZGQsCi0gICAgMHg0MWY0MjcwZiwKLSAg
ICAweDQxZjkyN2ExLAotICAgIDB4NDFmZTI2OTQsCi0gICAgMHg0MWZlYThiMSwKLSAgICAweDQx
ZmYyOWEyLAotICAgIDB4NDIwMzI3MjgsCi0gICAgMHg0MjA4Mjc0YSwKLSAgICAweDQyMDhhNzg2
LAotICAgIDB4NDIwOTI2NzgsCi0gICAgMHg0MjA5YTdjMCwKLSAgICAweDQyMGEyNmNmLAotICAg
IDB4NDIwYWE2YWYsCi0gICAgMHg0MjBiMjZlZiwKLSAgICAweDQyMGJhNzY4LAotICAgIDB4NDIw
YzI5YmUsCi0gICAgMHg0MjBjYTg3ZSwKLSAgICAweDQyMGQyODk4LAotICAgIDB4NDIwZGE4Y2Ys
Ci0gICAgMHg0MjEyMjhlOSwKLSAgICAweDQyMTcyOTg1LAotICAgIDB4NDIxN2E5MmIsCi0gICAg
MHg0MjFjMjk0ZCwKLSAgICAweDQyMWYyOTA4LAotICAgIDB4NDIyMTI5ZDUsCi0gICAgMHg0MjI2
Mjk2OCwKLSAgICAweDQyMmIyYWE0LAotICAgIDB4NDIyYmFhNTIsCi0gICAgMHg0MjJjMmE4YywK
LSAgICAweDQyMmNhYTExLAotICAgIDB4NDIyZDI5ZjAsCi0gICAgMHg0MjJkYWE3MSwKLSAgICAw
eDQyMmUyYTM3LAotICAgIDB4NDIyZWFiNWQsCisgICAgMHg0MDcxYWNhNywKKyAgICAweDQwNzIy
Y2JhLAorICAgIDB4NDA3MmFjZjAsCisgICAgMHg0MDczMmQwOCwKKyAgICAweDQwNzM5NGUwLAor
ICAgIDB4NDA3NDJkMWMsCisgICAgMHg0MDc0YWQzNiwKKyAgICAweDQwNzUyZDQ3LAorICAgIDB4
NDA3NWFkNWIsCisgICAgMHg0MDc2MmQ2OSwKKyAgICAweDQwNzY5MmE0LAorICAgIDB4NDA3NzJk
OGUsCisgICAgMHg0MDc3YWRiMCwKKyAgICAweDQwNzgyZGNiLAorICAgIDB4NDA3OGFlMDQsCisg
ICAgMHg0MDc5MmUxYiwKKyAgICAweDQwNzlhZTMxLAorICAgIDB4NDA3YTJlNWQsCisgICAgMHg0
MDdhYWU3MCwKKyAgICAweDQwN2IyZTg1LAorICAgIDB4NDA3YmFlOTcsCisgICAgMHg0MDdjMmVj
OCwKKyAgICAweDQwN2NhZWQxLAorICAgIDB4NDA3ZDI2MzYsCisgICAgMHg0MDdkOWZjYSwKKyAg
ICAweDQwN2UyZGUwLAorICAgIDB4NDA3ZWExZDcsCisgICAgMHg0MDdmMWQzZSwKKyAgICAweDQw
N2Y5YWU0LAorICAgIDB4NDA4MDFmODQsCisgICAgMHg0MDgwOWQ2NiwKKyAgICAweDQwODEyMDdh
LAorICAgIDB4NDA4MTlmNWUsCisgICAgMHg0MDgyMmI5MCwKKyAgICAweDQwODI5YWNhLAorICAg
IDB4NDA4MzIxYjIsCisgICAgMHg0MDgzYTRiMywKKyAgICAweDQwODQxZDdhLAorICAgIDB4NDA4
NGEyMGYsCisgICAgMHg0MDg1MjI5NCwKKyAgICAweDQwODVhM2I4LAorICAgIDB4NDA4NjIzMTQs
CisgICAgMHg0MDg2OWZlNCwKKyAgICAweDQwODcyYmQ2LAorICAgIDB4NDA4N2E0MDYsCisgICAg
MHg0MDg4MWIyYiwKKyAgICAweDQwODhhNWM1LAorICAgIDB4NDA4OTFiN2EsCisgICAgMHg0MDg5
OWIwNywKKyAgICAweDQwOGEyOGI1LAorICAgIDB4NDA4YTk4ZjgsCisgICAgMHg0MDhiMmVhYywK
KyAgICAweDQwOGJhYzQyLAorICAgIDB4NDA4YzIyYTQsCisgICAgMHg0MDhjOTkxNCwKKyAgICAw
eDQwOGQxZGRiLAorICAgIDB4NDA4ZDlkYWMsCisgICAgMHg0MDhlMWVmNSwKKyAgICAweDQwOGVh
MTFhLAorICAgIDB4NDA4ZjI1ZDksCisgICAgMHg0MDhmYTNkNCwKKyAgICAweDQwOTAyNThlLAor
ICAgIDB4NDA5MGEyZTYsCisgICAgMHg0MDkxMjg5ZCwKKyAgICAweDQwOTE5OTNhLAorICAgIDB4
NDA5MjFiYzcsCisgICAgMHg0MDkyYWMxMSwKKyAgICAweDQwOTMyY2QzLAorICAgIDB4NDA5Mzlm
ZjUsCisgICAgMHg0MDk0MWQ4ZSwKKyAgICAweDQwOTRhOGNlLAorICAgIDB4NDA5NTI0NjIsCisg
ICAgMHg0MDk1YWUzZCwKKyAgICAweDQwOTYyYmJkLAorICAgIDB4NDA5NjlmOWQsCisgICAgMHg0
MDk3MjA0MCwKKyAgICAweDQwOTc5ZjQ0LAorICAgIDB4NDFmNDI3NmYsCisgICAgMHg0MWY5Mjgw
MSwKKyAgICAweDQxZmUyNmY0LAorICAgIDB4NDFmZWE5MTEsCisgICAgMHg0MWZmMmEwMiwKKyAg
ICAweDQyMDMyNzg4LAorICAgIDB4NDIwODI3YWEsCisgICAgMHg0MjA4YTdlNiwKKyAgICAweDQy
MDkyNmQ4LAorICAgIDB4NDIwOWE4MjAsCisgICAgMHg0MjBhMjcyZiwKKyAgICAweDQyMGFhNzBm
LAorICAgIDB4NDIwYjI3NGYsCisgICAgMHg0MjBiYTdjOCwKKyAgICAweDQyMGMyYTFlLAorICAg
IDB4NDIwY2E4ZGUsCisgICAgMHg0MjBkMjhmOCwKKyAgICAweDQyMGRhOTJmLAorICAgIDB4NDIx
MjI5NDksCisgICAgMHg0MjE3MjllNSwKKyAgICAweDQyMTdhOThiLAorICAgIDB4NDIxYzI5YWQs
CisgICAgMHg0MjFmMjk2OCwKKyAgICAweDQyMjEyYTM1LAorICAgIDB4NDIyNjI5YzgsCisgICAg
MHg0MjJiMmIwNCwKKyAgICAweDQyMmJhYWIyLAorICAgIDB4NDIyYzJhZWMsCisgICAgMHg0MjJj
YWE3MSwKKyAgICAweDQyMmQyYTUwLAorICAgIDB4NDIyZGFhZDEsCisgICAgMHg0MjJlMmE5NywK
ICAgICAweDQ0MzIwNzJkLAogICAgIDB4NDQzMjg3M2MsCiAgICAgMHg0NDMzMDc0OCwKQEAgLTYw
OCwxMTcgKzYxMywxMTcgQEAgY29uc3QgdWludDMyX3Qga09wZW5TU0xSZWFzb25WYWx1ZXNbXSA9
IHsKICAgICAweDQ0MzkwODAyLAogICAgIDB4NDQzOTg4MTAsCiAgICAgMHg0NDNhMDgyMywKLSAg
ICAweDQ4MzIxMmJkLAotICAgIDB4NDgzMjkyY2YsCi0gICAgMHg0ODMzMTJlNSwKLSAgICAweDQ4
MzM5MmZlLAotICAgIDB4NGMzMjEzMjMsCi0gICAgMHg0YzMyOTMzMywKLSAgICAweDRjMzMxMzQ2
LAotICAgIDB4NGMzMzkzNjYsCisgICAgMHg0ODMyMTJjZSwKKyAgICAweDQ4MzI5MmUwLAorICAg
IDB4NDgzMzEyZjYsCisgICAgMHg0ODMzOTMwZiwKKyAgICAweDRjMzIxMzM0LAorICAgIDB4NGMz
MjkzNDQsCisgICAgMHg0YzMzMTM1NywKKyAgICAweDRjMzM5Mzc3LAogICAgIDB4NGMzNDAwYWMs
CiAgICAgMHg0YzM0ODBlYSwKLSAgICAweDRjMzUxMzcyLAotICAgIDB4NGMzNTkzODAsCi0gICAg
MHg0YzM2MTM5YywKLSAgICAweDRjMzY5M2MyLAotICAgIDB4NGMzNzEzZDEsCi0gICAgMHg0YzM3
OTNkZiwKLSAgICAweDRjMzgxM2Y0LAotICAgIDB4NGMzODk0MDAsCi0gICAgMHg0YzM5MTQyMCwK
LSAgICAweDRjMzk5NDRhLAotICAgIDB4NGMzYTE0NjMsCi0gICAgMHg0YzNhOTQ3YywKKyAgICAw
eDRjMzUxMzgzLAorICAgIDB4NGMzNTkzOTEsCisgICAgMHg0YzM2MTNhZCwKKyAgICAweDRjMzY5
M2QzLAorICAgIDB4NGMzNzEzZTIsCisgICAgMHg0YzM3OTNmMCwKKyAgICAweDRjMzgxNDA1LAor
ICAgIDB4NGMzODk0MTEsCisgICAgMHg0YzM5MTQzMSwKKyAgICAweDRjMzk5NDViLAorICAgIDB4
NGMzYTE0NzQsCisgICAgMHg0YzNhOTQ4ZCwKICAgICAweDRjM2IwNWZkLAotICAgIDB4NGMzYjk0
OTUsCi0gICAgMHg0YzNjMTRhNywKLSAgICAweDRjM2M5NGI2LAotICAgIDB4NGMzZDE0Y2YsCisg
ICAgMHg0YzNiOTRhNiwKKyAgICAweDRjM2MxNGI4LAorICAgIDB4NGMzYzk0YzcsCisgICAgMHg0
YzNkMTRlMCwKICAgICAweDRjM2Q4YzQ3LAotICAgIDB4NGMzZTE1M2MsCi0gICAgMHg0YzNlOTRk
ZSwKLSAgICAweDRjM2YxNTVlLAotICAgIDB4NGMzZjkyOTMsCi0gICAgMHg0YzQwMTRmNCwKLSAg
ICAweDRjNDA5MzBmLAotICAgIDB4NGM0MTE1MmMsCi0gICAgMHg0YzQxOTNhZiwKLSAgICAweDRj
NDIxNTE4LAotICAgIDB4NTAzMjMwYzcsCi0gICAgMHg1MDMyYjBkNiwKLSAgICAweDUwMzMzMGUx
LAotICAgIDB4NTAzM2IwZjEsCi0gICAgMHg1MDM0MzEwYSwKLSAgICAweDUwMzRiMTI0LAotICAg
IDB4NTAzNTMxMzIsCi0gICAgMHg1MDM1YjE0OCwKLSAgICAweDUwMzYzMTVhLAotICAgIDB4NTAz
NmIxNzAsCi0gICAgMHg1MDM3MzE4OSwKLSAgICAweDUwMzdiMTljLAotICAgIDB4NTAzODMxYjQs
Ci0gICAgMHg1MDM4YjFjNSwKLSAgICAweDUwMzkzMWRhLAotICAgIDB4NTAzOWIxZWUsCi0gICAg
MHg1MDNhMzIwZSwKLSAgICAweDUwM2FiMjI0LAotICAgIDB4NTAzYjMyM2MsCi0gICAgMHg1MDNi
YjI0ZSwKLSAgICAweDUwM2MzMjZhLAotICAgIDB4NTAzY2IyODEsCi0gICAgMHg1MDNkMzI5YSwK
LSAgICAweDUwM2RiMmIwLAotICAgIDB4NTAzZTMyYmQsCi0gICAgMHg1MDNlYjJkMywKLSAgICAw
eDUwM2YzMmU1LAorICAgIDB4NGMzZTE1NGQsCisgICAgMHg0YzNlOTRlZiwKKyAgICAweDRjM2Yx
NTZmLAorICAgIDB4NGMzZjkyYTQsCisgICAgMHg0YzQwMTUwNSwKKyAgICAweDRjNDA5MzIwLAor
ICAgIDB4NGM0MTE1M2QsCisgICAgMHg0YzQxOTNjMCwKKyAgICAweDRjNDIxNTI5LAorICAgIDB4
NTAzMjMxMjcsCisgICAgMHg1MDMyYjEzNiwKKyAgICAweDUwMzMzMTQxLAorICAgIDB4NTAzM2Ix
NTEsCisgICAgMHg1MDM0MzE2YSwKKyAgICAweDUwMzRiMTg0LAorICAgIDB4NTAzNTMxOTIsCisg
ICAgMHg1MDM1YjFhOCwKKyAgICAweDUwMzYzMWJhLAorICAgIDB4NTAzNmIxZDAsCisgICAgMHg1
MDM3MzFlOSwKKyAgICAweDUwMzdiMWZjLAorICAgIDB4NTAzODMyMTQsCisgICAgMHg1MDM4YjIy
NSwKKyAgICAweDUwMzkzMjNhLAorICAgIDB4NTAzOWIyNGUsCisgICAgMHg1MDNhMzI2ZSwKKyAg
ICAweDUwM2FiMjg0LAorICAgIDB4NTAzYjMyOWMsCisgICAgMHg1MDNiYjJhZSwKKyAgICAweDUw
M2MzMmNhLAorICAgIDB4NTAzY2IyZTEsCisgICAgMHg1MDNkMzJmYSwKKyAgICAweDUwM2RiMzEw
LAorICAgIDB4NTAzZTMzMWQsCisgICAgMHg1MDNlYjMzMywKKyAgICAweDUwM2YzMzQ1LAogICAg
IDB4NTAzZjgzN2IsCi0gICAgMHg1MDQwMzJmOCwKLSAgICAweDUwNDBiMzA4LAotICAgIDB4NTA0
MTMzMjIsCi0gICAgMHg1MDQxYjMzMSwKLSAgICAweDUwNDIzMzRiLAotICAgIDB4NTA0MmIzNjgs
Ci0gICAgMHg1MDQzMzM3OCwKLSAgICAweDUwNDNiMzg4LAotICAgIDB4NTA0NDMzOTcsCisgICAg
MHg1MDQwMzM1OCwKKyAgICAweDUwNDBiMzY4LAorICAgIDB4NTA0MTMzODIsCisgICAgMHg1MDQx
YjM5MSwKKyAgICAweDUwNDIzM2FiLAorICAgIDB4NTA0MmIzYzgsCisgICAgMHg1MDQzMzNkOCwK
KyAgICAweDUwNDNiM2U4LAorICAgIDB4NTA0NDMzZjcsCiAgICAgMHg1MDQ0ODQzMSwKLSAgICAw
eDUwNDUzM2FiLAotICAgIDB4NTA0NWIzYzksCi0gICAgMHg1MDQ2MzNkYywKLSAgICAweDUwNDZi
M2YyLAotICAgIDB4NTA0NzM0MDQsCi0gICAgMHg1MDQ3YjQxOSwKLSAgICAweDUwNDgzNDNmLAot
ICAgIDB4NTA0OGI0NGQsCi0gICAgMHg1MDQ5MzQ2MCwKLSAgICAweDUwNDliNDc1LAotICAgIDB4
NTA0YTM0OGIsCi0gICAgMHg1MDRhYjQ5YiwKLSAgICAweDUwNGIzNGJiLAotICAgIDB4NTA0YmI0
Y2UsCi0gICAgMHg1MDRjMzRmMSwKLSAgICAweDUwNGNiNTFmLAotICAgIDB4NTA0ZDM1MzEsCi0g
ICAgMHg1MDRkYjU0ZSwKLSAgICAweDUwNGUzNTY5LAotICAgIDB4NTA0ZWI1ODUsCi0gICAgMHg1
MDRmMzU5NywKLSAgICAweDUwNGZiNWFlLAotICAgIDB4NTA1MDM1YmQsCisgICAgMHg1MDQ1MzQw
YiwKKyAgICAweDUwNDViNDI5LAorICAgIDB4NTA0NjM0M2MsCisgICAgMHg1MDQ2YjQ1MiwKKyAg
ICAweDUwNDczNDY0LAorICAgIDB4NTA0N2I0NzksCisgICAgMHg1MDQ4MzQ5ZiwKKyAgICAweDUw
NDhiNGFkLAorICAgIDB4NTA0OTM0YzAsCisgICAgMHg1MDQ5YjRkNSwKKyAgICAweDUwNGEzNGVi
LAorICAgIDB4NTA0YWI0ZmIsCisgICAgMHg1MDRiMzUxYiwKKyAgICAweDUwNGJiNTJlLAorICAg
IDB4NTA0YzM1NTEsCisgICAgMHg1MDRjYjU3ZiwKKyAgICAweDUwNGQzNTkxLAorICAgIDB4NTA0
ZGI1YWUsCisgICAgMHg1MDRlMzVjOSwKKyAgICAweDUwNGViNWU1LAorICAgIDB4NTA0ZjM1Zjcs
CisgICAgMHg1MDRmYjYwZSwKKyAgICAweDUwNTAzNjFkLAogICAgIDB4NTA1MDg2ZjEsCi0gICAg
MHg1MDUxMzVkMCwKLSAgICAweDU4MzIwZjUyLAotICAgIDB4NjgzMjBmMTQsCi0gICAgMHg2ODMy
OGM2YywKLSAgICAweDY4MzMwYzdmLAotICAgIDB4NjgzMzhmMjIsCi0gICAgMHg2ODM0MGYzMiwK
KyAgICAweDUwNTEzNjMwLAorICAgIDB4NTgzMjBmNjUsCisgICAgMHg2ODMyMGYyNywKKyAgICAw
eDY4MzI4YzdmLAorICAgIDB4NjgzMzBjOTIsCisgICAgMHg2ODMzOGYzNSwKKyAgICAweDY4MzQw
ZjQ1LAogICAgIDB4NjgzNDgwZWEsCi0gICAgMHg2YzMyMGVkYSwKKyAgICAweDZjMzIwZWVkLAog
ICAgIDB4NmMzMjhjMzYsCi0gICAgMHg2YzMzMGVlNSwKLSAgICAweDZjMzM4ZWZlLAorICAgIDB4
NmMzMzBlZjgsCisgICAgMHg2YzMzOGYxMSwKICAgICAweDc0MzIwYTFiLAogICAgIDB4NzQzMjgw
YWMsCiAgICAgMHg3NDMzMGM0NywKQEAgLTc0OCw3ICs3NTMsNyBAQCBjb25zdCB1aW50MzJfdCBr
T3BlblNTTFJlYXNvblZhbHVlc1tdID0gewogICAgIDB4NzgzZDhiNGMsCiAgICAgMHg3ODNlMGFh
MiwKICAgICAweDc4M2U4YTU0LAotICAgIDB4N2MzMjExYWMsCisgICAgMHg3YzMyMTFiZCwKIH07
CiAKIGNvbnN0IHNpemVfdCBrT3BlblNTTFJlYXNvblZhbHVlc0xlbiA9IHNpemVvZihrT3BlblNT
TFJlYXNvblZhbHVlcykgLyBzaXplb2Yoa09wZW5TU0xSZWFzb25WYWx1ZXNbMF0pOwpAQCAtOTIy
LDYgKzkyNyw3IEBAIGNvbnN0IGNoYXIga09wZW5TU0xSZWFzb25TdHJpbmdEYXRhW10gPQogICAg
ICJVTktOT1dOX0hBU0hcMCIKICAgICAiQkFEX1FfVkFMVUVcMCIKICAgICAiQkFEX1ZFUlNJT05c
MCIKKyAgICAiSU5WQUxJRF9QQVJBTUVURVJTXDAiCiAgICAgIk1JU1NJTkdfUEFSQU1FVEVSU1ww
IgogICAgICJORUVEX05FV19TRVRVUF9WQUxVRVNcMCIKICAgICAiQklHTlVNX09VVF9PRl9SQU5H
RVwwIgpAQCAtOTcyLDcgKzk3OCw3IEBAIGNvbnN0IGNoYXIga09wZW5TU0xSZWFzb25TdHJpbmdE
YXRhW10gPQogICAgICJJTlZBTElEX0tFWUJJVFNcMCIKICAgICAiSU5WQUxJRF9NR0YxX01EXDAi
CiAgICAgIklOVkFMSURfUEFERElOR19NT0RFXDAiCi0gICAgIklOVkFMSURfUEFSQU1FVEVSU1ww
IgorICAgICJJTlZBTElEX1BFRVJfS0VZXDAiCiAgICAgIklOVkFMSURfUFNTX1NBTFRMRU5cMCIK
ICAgICAiSU5WQUxJRF9TSUdOQVRVUkVcMCIKICAgICAiS0VZU19OT1RfU0VUXDAiCkBAIC0xMTQ4
LDE1ICsxMTU0LDE4IEBAIGNvbnN0IGNoYXIga09wZW5TU0xSZWFzb25TdHJpbmdEYXRhW10gPQog
ICAgICJIVFRQU19QUk9YWV9SRVFVRVNUXDAiCiAgICAgIkhUVFBfUkVRVUVTVFwwIgogICAgICJJ
TkFQUFJPUFJJQVRFX0ZBTExCQUNLXDAiCisgICAgIklOQ09OU0lTVEVOVF9DTElFTlRfSEVMTE9c
MCIKICAgICAiSU5WQUxJRF9BTFBOX1BST1RPQ09MXDAiCiAgICAgIklOVkFMSURfQ09NTUFORFww
IgogICAgICJJTlZBTElEX0NPTVBSRVNTSU9OX0xJU1RcMCIKKyAgICAiSU5WQUxJRF9ERUxFR0FU
RURfQ1JFREVOVElBTFwwIgogICAgICJJTlZBTElEX01FU1NBR0VcMCIKICAgICAiSU5WQUxJRF9P
VVRFUl9SRUNPUkRfVFlQRVwwIgogICAgICJJTlZBTElEX1NDVF9MSVNUXDAiCiAgICAgIklOVkFM
SURfU0lHTkFUVVJFX0FMR09SSVRITVwwIgogICAgICJJTlZBTElEX1NTTF9TRVNTSU9OXDAiCiAg
ICAgIklOVkFMSURfVElDS0VUX0tFWVNfTEVOR1RIXDAiCisgICAgIktFWV9VU0FHRV9CSVRfSU5D
T1JSRUNUXDAiCiAgICAgIkxFTkdUSF9NSVNNQVRDSFwwIgogICAgICJNSVNTSU5HX0VYVEVOU0lP
TlwwIgogICAgICJNSVNTSU5HX0tFWV9TSEFSRVwwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFhcmNoNjQv
Y3J5cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjguUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0by9jaGFjaGEv
Y2hhY2hhLWFybXY4LlMKaW5kZXggYzM0YmI1OTFhYzFkYjM5YTk5OTAxODUzZDFlZjUxYTU5OGU5
ZWNlMi4uYjE0NDY2ZGRkNzdjOWY1YzQxYmM2ODdmNjcwZmI1MmFiNGE0M2FkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvaW9zLWFhcmNoNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjguUworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFy
Y2g2NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12OC5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBU
aGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQg
aW4gdGhlIEJvcmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAK
LSNpZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkK
KyNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1l
bW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVO
U1NMX05PX0FTTQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNN
KQogI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKQEAgLTIyLDEyICsyMyw2IEBAIExzaWdt
YToKIC5xdWFkCTB4MzMyMDY0NmU2MTcwNzg2NSwweDZiMjA2NTc0Nzk2MjJkMzIJCS8vIGVuZGlh
bi1uZXV0cmFsCiBMb25lOgogLmxvbmcJMSwwLDAsMAotTE9QRU5TU0xfYXJtY2FwX1A6Ci0jaWZk
ZWYJX19JTFAzMl9fCi0ubG9uZwlfT1BFTlNTTF9hcm1jYXBfUC0uCi0jZWxzZQotLnF1YWQJX09Q
RU5TU0xfYXJtY2FwX1AtLgotI2VuZGlmCiAuYnl0ZQk2NywxMDQsOTcsNjcsMTA0LDk3LDUwLDQ4
LDMyLDEwMiwxMTEsMTE0LDMyLDY1LDgyLDc3LDExOCw1Niw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3
OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwx
MTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCiAuYWxpZ24JMgogCkBA
IC0zOSwxMSArMzQsMTQgQEAgTE9QRU5TU0xfYXJtY2FwX1A6CiAuYWxpZ24JNQogX0NoYUNoYTIw
X2N0cjMyOgogCWNiegl4MixMYWJvcnQKKyNpZiBfX2hhc19mZWF0dXJlKGh3YWRkcmVzc19zYW5p
dGl6ZXIpICYmIF9fY2xhbmdfbWFqb3JfXyA+PSAxMAorCWFkcnAJeDUsOnBnX2hpMjFfbmM6X09Q
RU5TU0xfYXJtY2FwX1AKKyNlbHNlCiAJYWRycAl4NSxfT1BFTlNTTF9hcm1jYXBfUEBQQUdFCisj
ZW5kaWYKIAljbXAJeDIsIzE5MgogCWIubG8JTHNob3J0Ci0JYWRkCXg1LHg1LF9PUEVOU1NMX2Fy
bWNhcF9QQFBBR0VPRkYKLQlsZHIJdzE3LFt4NV0KKwlsZHIJdzE3LFt4NSxfT1BFTlNTTF9hcm1j
YXBfUEBQQUdFT0ZGXQogCXRzdAl3MTcsI0FSTVY3X05FT04KIAliLm5lCUNoYUNoYTIwX25lb24K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvaW9zLWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzdjgtYXJteDY0
LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9hZXN2OC1hcm14NjQuUwppbmRleCA3
OGUwMzc5NWZjOTAzNjY1NWQ5ZTA3NjIwMmJkZTViZjFkOGRmMWY2Li5kYzJkNmU0MzJjOWVlZWE1
MDU4M2FmMzFmNzRmNjliZDI2YmJhZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8v
Zmlwc21vZHVsZS9hZXN2OC1hcm14NjQuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21v
ZHVsZS9hZXN2OC1hcm14NjQuUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlzIGdl
bmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdT
U0wKIC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChf
X2hhc19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFz
X2ZlYXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVy
KSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNl
bmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZpbmVk
KEJPUklOR1NTTF9QUkVGSVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21v
ZHVsZS9hcm12OC1tb250LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9hcm12OC1t
b250LlMKaW5kZXggNmYxMWZkN2U2M2E1ZjYyYjQxMGNjMzhlNjk2YTY0MDMyNjRlZWY3MC4uM2Q4
M2Y0ZDhkNjIzNzdiOTg5NzAyNDg3YmZmYWFlNWYzNjYwZDE4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFh
cmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYXJtdjgtbW9udC5TCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2Ny
eXB0by9maXBzbW9kdWxlL2FybXY4LW1vbnQuUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBm
aWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRo
ZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYg
ZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVm
aW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlf
c2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9O
T19BU00KICNlbmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNp
ZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlw
dG8vZmlwc21vZHVsZS9naGFzaC1uZW9uLWFybXY4LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlw
c21vZHVsZS9naGFzaC1uZW9uLWFybXY4LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBiZmYzMTAxODY5N2ViMmUy
OTRiMmM2MTlmNjRiODcyNTZhODAyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2Ny
eXB0by9maXBzbW9kdWxlL2doYXNoLW5lb24tYXJtdjguUwpAQCAtMCwwICsxLDMzOCBAQAorLy8g
VGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0
IGluIHRoZSBCb3JpbmdTU0wKKy8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgor
CisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAw
CisjZW5kaWYKKyNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVk
KE9QRU5TU0xfTk9fQVNNKQorI2RlZmluZSBPUEVOU1NMX05PX0FTTQorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNpZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgpCisj
aW5jbHVkZSA8Ym9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX2FzbS5oPgorI2VuZGlmCisudGV4dAor
CisuZ2xvYmwJX2djbV9pbml0X25lb24KKy5wcml2YXRlX2V4dGVybglfZ2NtX2luaXRfbmVvbgor
CisuYWxpZ24JNAorX2djbV9pbml0X25lb246CisJLy8gVGhpcyBmdW5jdGlvbiBpcyBhZGFwdGVk
IGZyb20gZ2NtX2luaXRfdjguIHhDMiBpcyB0My4KKwlsZDEJe3YxNy4yZH0sIFt4MV0JCQkvLyBs
b2FkIEgKKwltb3ZpCXYxOS4xNmIsICMweGUxCisJc2hsCXYxOS4yZCwgdjE5LjJkLCAjNTcJCS8v
IDB4YzIuMAorCWV4dAl2My4xNmIsIHYxNy4xNmIsIHYxNy4xNmIsICM4CisJdXNocgl2MTguMmQs
IHYxOS4yZCwgIzYzCisJZHVwCXYxNy40cywgdjE3LnNbMV0KKwlleHQJdjE2LjE2YiwgdjE4LjE2
YiwgdjE5LjE2YiwgIzgJLy8gdDA9MHhjMi4uLi4wMQorCXVzaHIJdjE4LjJkLCB2My4yZCwgIzYz
CisJc3Nocgl2MTcuNHMsIHYxNy40cywgIzMxCQkvLyBicm9hZGNhc3QgY2FycnkgYml0CisJYW5k
CXYxOC4xNmIsIHYxOC4xNmIsIHYxNi4xNmIKKwlzaGwJdjMuMmQsIHYzLjJkLCAjMQorCWV4dAl2
MTguMTZiLCB2MTguMTZiLCB2MTguMTZiLCAjOAorCWFuZAl2MTYuMTZiLCB2MTYuMTZiLCB2MTcu
MTZiCisJb3JyCXYzLjE2YiwgdjMuMTZiLCB2MTguMTZiCS8vIEg8PDw9MQorCWVvcgl2NS4xNmIs
IHYzLjE2YiwgdjE2LjE2YgkvLyB0d2lzdGVkIEgKKwlzdDEJe3Y1LjJkfSwgW3gwXQkJCS8vIHN0
b3JlIEh0YWJsZVswXQorCXJldAorCisKKy5nbG9ibAlfZ2NtX2dtdWx0X25lb24KKy5wcml2YXRl
X2V4dGVybglfZ2NtX2dtdWx0X25lb24KKworLmFsaWduCTQKK19nY21fZ211bHRfbmVvbjoKKwls
ZDEJe3YzLjE2Yn0sIFt4MF0JCS8vIGxvYWQgWGkKKwlsZDEJe3Y1LjFkfSwgW3gxXSwgIzgJCS8v
IGxvYWQgdHdpc3RlZCBICisJbGQxCXt2Ni4xZH0sIFt4MV0KKwlhZHJwCXg5LCBMbWFza3NAUEFH
RQkJLy8gbG9hZCBjb25zdGFudHMKKwlhZGQJeDksIHg5LCBMbWFza3NAUEFHRU9GRgorCWxkMQl7
djI0LjJkLCB2MjUuMmR9LCBbeDldCisJcmV2NjQJdjMuMTZiLCB2My4xNmIJCS8vIGJ5dGVzd2Fw
IFhpCisJZXh0CXYzLjE2YiwgdjMuMTZiLCB2My4xNmIsICM4CisJZW9yCXY3LjhiLCB2NS44Yiwg
djYuOGIJLy8gS2FyYXRzdWJhIHByZS1wcm9jZXNzaW5nCisKKwltb3YJeDMsICMxNgorCWIJTGdt
dWx0X25lb24KKworCisuZ2xvYmwJX2djbV9naGFzaF9uZW9uCisucHJpdmF0ZV9leHRlcm4JX2dj
bV9naGFzaF9uZW9uCisKKy5hbGlnbgk0CitfZ2NtX2doYXNoX25lb246CisJbGQxCXt2MC4xNmJ9
LCBbeDBdCQkvLyBsb2FkIFhpCisJbGQxCXt2NS4xZH0sIFt4MV0sICM4CQkvLyBsb2FkIHR3aXN0
ZWQgSAorCWxkMQl7djYuMWR9LCBbeDFdCisJYWRycAl4OSwgTG1hc2tzQFBBR0UJCS8vIGxvYWQg
Y29uc3RhbnRzCisJYWRkCXg5LCB4OSwgTG1hc2tzQFBBR0VPRkYKKwlsZDEJe3YyNC4yZCwgdjI1
LjJkfSwgW3g5XQorCXJldjY0CXYwLjE2YiwgdjAuMTZiCQkvLyBieXRlc3dhcCBYaQorCWV4dAl2
MC4xNmIsIHYwLjE2YiwgdjAuMTZiLCAjOAorCWVvcgl2Ny44YiwgdjUuOGIsIHY2LjhiCS8vIEth
cmF0c3ViYSBwcmUtcHJvY2Vzc2luZworCitMb29wX25lb246CisJbGQxCXt2My4xNmJ9LCBbeDJd
LCAjMTYJLy8gbG9hZCBpbnAKKwlyZXY2NAl2My4xNmIsIHYzLjE2YgkJLy8gYnl0ZXN3YXAgaW5w
CisJZXh0CXYzLjE2YiwgdjMuMTZiLCB2My4xNmIsICM4CisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2
MC4xNmIJLy8gaW5wIF49IFhpCisKK0xnbXVsdF9uZW9uOgorCS8vIFNwbGl0IHRoZSBpbnB1dCBp
bnRvIHYzIGFuZCB2NC4gKFRoZSB1cHBlciBoYWx2ZXMgYXJlIHVudXNlZCwKKwkvLyBzbyBpdCBp
cyBva2F5IHRvIGxlYXZlIHRoZW0gYWxvbmUuKQorCWlucwl2NC5kWzBdLCB2My5kWzFdCisJZXh0
CXYxNi44YiwgdjUuOGIsIHY1LjhiLCAjMQkvLyBBMQorCXBtdWxsCXYxNi44aCwgdjE2LjhiLCB2
My44YgkJLy8gRiA9IEExKkIKKwlleHQJdjAuOGIsIHYzLjhiLCB2My44YiwgIzEJCS8vIEIxCisJ
cG11bGwJdjAuOGgsIHY1LjhiLCB2MC44YgkJLy8gRSA9IEEqQjEKKwlleHQJdjE3LjhiLCB2NS44
YiwgdjUuOGIsICMyCS8vIEEyCisJcG11bGwJdjE3LjhoLCB2MTcuOGIsIHYzLjhiCQkvLyBIID0g
QTIqQgorCWV4dAl2MTkuOGIsIHYzLjhiLCB2My44YiwgIzIJLy8gQjIKKwlwbXVsbAl2MTkuOGgs
IHY1LjhiLCB2MTkuOGIJCS8vIEcgPSBBKkIyCisJZXh0CXYxOC44YiwgdjUuOGIsIHY1LjhiLCAj
MwkvLyBBMworCWVvcgl2MTYuMTZiLCB2MTYuMTZiLCB2MC4xNmIJLy8gTCA9IEUgKyBGCisJcG11
bGwJdjE4LjhoLCB2MTguOGIsIHYzLjhiCQkvLyBKID0gQTMqQgorCWV4dAl2MC44YiwgdjMuOGIs
IHYzLjhiLCAjMwkJLy8gQjMKKwllb3IJdjE3LjE2YiwgdjE3LjE2YiwgdjE5LjE2YgkvLyBNID0g
RyArIEgKKwlwbXVsbAl2MC44aCwgdjUuOGIsIHYwLjhiCQkvLyBJID0gQSpCMworCisJLy8gSGVy
ZSB3ZSBkaXZlcmdlIGZyb20gdGhlIDMyLWJpdCB2ZXJzaW9uLiBJdCBjb21wdXRlcyB0aGUgZm9s
bG93aW5nCisJLy8gKGluc3RydWN0aW9ucyByZW9yZGVyZWQgZm9yIGNsYXJpdHkpOgorCS8vCisJ
Ly8gICAgIHZlb3IJJHQwI2xvLCAkdDAjbG8sICR0MCNoaQlAIHQwID0gUDAgKyBQMSAoTCkKKwkv
LyAgICAgdmFuZAkkdDAjaGksICR0MCNoaSwgJGs0OAorCS8vICAgICB2ZW9yCSR0MCNsbywgJHQw
I2xvLCAkdDAjaGkKKwkvLworCS8vICAgICB2ZW9yCSR0MSNsbywgJHQxI2xvLCAkdDEjaGkJQCB0
MSA9IFAyICsgUDMgKE0pCisJLy8gICAgIHZhbmQJJHQxI2hpLCAkdDEjaGksICRrMzIKKwkvLyAg
ICAgdmVvcgkkdDEjbG8sICR0MSNsbywgJHQxI2hpCisJLy8KKwkvLyAgICAgdmVvcgkkdDIjbG8s
ICR0MiNsbywgJHQyI2hpCUAgdDIgPSBQNCArIFA1IChOKQorCS8vICAgICB2YW5kCSR0MiNoaSwg
JHQyI2hpLCAkazE2CisJLy8gICAgIHZlb3IJJHQyI2xvLCAkdDIjbG8sICR0MiNoaQorCS8vCisJ
Ly8gICAgIHZlb3IJJHQzI2xvLCAkdDMjbG8sICR0MyNoaQlAIHQzID0gUDYgKyBQNyAoSykKKwkv
LyAgICAgdm1vdi5pNjQJJHQzI2hpLCAjMAorCS8vCisJLy8gJGtOIGlzIGEgbWFzayB3aXRoIHRo
ZSBib3R0b20gTiBiaXRzIHNldC4gQUFyY2g2NCBjYW5ub3QgY29tcHV0ZSBvbgorCS8vIHVwcGVy
IGhhbHZlcyBvZiBTSU1EIHJlZ2lzdGVycywgc28gd2UgbXVzdCBzcGxpdCBlYWNoIGhhbGYgaW50
bworCS8vIHNlcGFyYXRlIHJlZ2lzdGVycy4gVG8gY29tcGVuc2F0ZSwgd2UgcGFpciBjb21wdXRh
dGlvbnMgdXAgYW5kCisJLy8gcGFyYWxsZWxpemUuCisKKwlleHQJdjE5LjhiLCB2My44YiwgdjMu
OGIsICM0CS8vIEI0CisJZW9yCXYxOC4xNmIsIHYxOC4xNmIsIHYwLjE2YgkvLyBOID0gSSArIEoK
KwlwbXVsbAl2MTkuOGgsIHY1LjhiLCB2MTkuOGIJCS8vIEsgPSBBKkI0CisKKwkvLyBUaGlzIGNh
biBwcm9iYWJseSBiZSBzY2hlZHVsZWQgbW9yZSBlZmZpY2llbnRseS4gRm9yIG5vdywgd2UganVz
dAorCS8vIHBhaXIgdXAgaW5kZXBlbmRlbnQgaW5zdHJ1Y3Rpb25zLgorCXppcDEJdjIwLjJkLCB2
MTYuMmQsIHYxNy4yZAorCXppcDEJdjIyLjJkLCB2MTguMmQsIHYxOS4yZAorCXppcDIJdjIxLjJk
LCB2MTYuMmQsIHYxNy4yZAorCXppcDIJdjIzLjJkLCB2MTguMmQsIHYxOS4yZAorCWVvcgl2MjAu
MTZiLCB2MjAuMTZiLCB2MjEuMTZiCisJZW9yCXYyMi4xNmIsIHYyMi4xNmIsIHYyMy4xNmIKKwlh
bmQJdjIxLjE2YiwgdjIxLjE2YiwgdjI0LjE2YgorCWFuZAl2MjMuMTZiLCB2MjMuMTZiLCB2MjUu
MTZiCisJZW9yCXYyMC4xNmIsIHYyMC4xNmIsIHYyMS4xNmIKKwllb3IJdjIyLjE2YiwgdjIyLjE2
YiwgdjIzLjE2YgorCXppcDEJdjE2LjJkLCB2MjAuMmQsIHYyMS4yZAorCXppcDEJdjE4LjJkLCB2
MjIuMmQsIHYyMy4yZAorCXppcDIJdjE3LjJkLCB2MjAuMmQsIHYyMS4yZAorCXppcDIJdjE5LjJk
LCB2MjIuMmQsIHYyMy4yZAorCisJZXh0CXYxNi4xNmIsIHYxNi4xNmIsIHYxNi4xNmIsICMxNQkv
LyB0MCA9IHQwIDw8IDgKKwlleHQJdjE3LjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzE0CS8vIHQx
ID0gdDEgPDwgMTYKKwlwbXVsbAl2MC44aCwgdjUuOGIsIHYzLjhiCQkvLyBEID0gQSpCCisJZXh0
CXYxOS4xNmIsIHYxOS4xNmIsIHYxOS4xNmIsICMxMgkvLyB0MyA9IHQzIDw8IDMyCisJZXh0CXYx
OC4xNmIsIHYxOC4xNmIsIHYxOC4xNmIsICMxMwkvLyB0MiA9IHQyIDw8IDI0CisJZW9yCXYxNi4x
NmIsIHYxNi4xNmIsIHYxNy4xNmIKKwllb3IJdjE4LjE2YiwgdjE4LjE2YiwgdjE5LjE2YgorCWVv
cgl2MC4xNmIsIHYwLjE2YiwgdjE2LjE2YgorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjE4LjE2Ygor
CWVvcgl2My44YiwgdjMuOGIsIHY0LjhiCS8vIEthcmF0c3ViYSBwcmUtcHJvY2Vzc2luZworCWV4
dAl2MTYuOGIsIHY3LjhiLCB2Ny44YiwgIzEJLy8gQTEKKwlwbXVsbAl2MTYuOGgsIHYxNi44Yiwg
djMuOGIJCS8vIEYgPSBBMSpCCisJZXh0CXYxLjhiLCB2My44YiwgdjMuOGIsICMxCQkvLyBCMQor
CXBtdWxsCXYxLjhoLCB2Ny44YiwgdjEuOGIJCS8vIEUgPSBBKkIxCisJZXh0CXYxNy44Yiwgdjcu
OGIsIHY3LjhiLCAjMgkvLyBBMgorCXBtdWxsCXYxNy44aCwgdjE3LjhiLCB2My44YgkJLy8gSCA9
IEEyKkIKKwlleHQJdjE5LjhiLCB2My44YiwgdjMuOGIsICMyCS8vIEIyCisJcG11bGwJdjE5Ljho
LCB2Ny44YiwgdjE5LjhiCQkvLyBHID0gQSpCMgorCWV4dAl2MTguOGIsIHY3LjhiLCB2Ny44Yiwg
IzMJLy8gQTMKKwllb3IJdjE2LjE2YiwgdjE2LjE2YiwgdjEuMTZiCS8vIEwgPSBFICsgRgorCXBt
dWxsCXYxOC44aCwgdjE4LjhiLCB2My44YgkJLy8gSiA9IEEzKkIKKwlleHQJdjEuOGIsIHYzLjhi
LCB2My44YiwgIzMJCS8vIEIzCisJZW9yCXYxNy4xNmIsIHYxNy4xNmIsIHYxOS4xNmIJLy8gTSA9
IEcgKyBICisJcG11bGwJdjEuOGgsIHY3LjhiLCB2MS44YgkJLy8gSSA9IEEqQjMKKworCS8vIEhl
cmUgd2UgZGl2ZXJnZSBmcm9tIHRoZSAzMi1iaXQgdmVyc2lvbi4gSXQgY29tcHV0ZXMgdGhlIGZv
bGxvd2luZworCS8vIChpbnN0cnVjdGlvbnMgcmVvcmRlcmVkIGZvciBjbGFyaXR5KToKKwkvLwor
CS8vICAgICB2ZW9yCSR0MCNsbywgJHQwI2xvLCAkdDAjaGkJQCB0MCA9IFAwICsgUDEgKEwpCisJ
Ly8gICAgIHZhbmQJJHQwI2hpLCAkdDAjaGksICRrNDgKKwkvLyAgICAgdmVvcgkkdDAjbG8sICR0
MCNsbywgJHQwI2hpCisJLy8KKwkvLyAgICAgdmVvcgkkdDEjbG8sICR0MSNsbywgJHQxI2hpCUAg
dDEgPSBQMiArIFAzIChNKQorCS8vICAgICB2YW5kCSR0MSNoaSwgJHQxI2hpLCAkazMyCisJLy8g
ICAgIHZlb3IJJHQxI2xvLCAkdDEjbG8sICR0MSNoaQorCS8vCisJLy8gICAgIHZlb3IJJHQyI2xv
LCAkdDIjbG8sICR0MiNoaQlAIHQyID0gUDQgKyBQNSAoTikKKwkvLyAgICAgdmFuZAkkdDIjaGks
ICR0MiNoaSwgJGsxNgorCS8vICAgICB2ZW9yCSR0MiNsbywgJHQyI2xvLCAkdDIjaGkKKwkvLwor
CS8vICAgICB2ZW9yCSR0MyNsbywgJHQzI2xvLCAkdDMjaGkJQCB0MyA9IFA2ICsgUDcgKEspCisJ
Ly8gICAgIHZtb3YuaTY0CSR0MyNoaSwgIzAKKwkvLworCS8vICRrTiBpcyBhIG1hc2sgd2l0aCB0
aGUgYm90dG9tIE4gYml0cyBzZXQuIEFBcmNoNjQgY2Fubm90IGNvbXB1dGUgb24KKwkvLyB1cHBl
ciBoYWx2ZXMgb2YgU0lNRCByZWdpc3RlcnMsIHNvIHdlIG11c3Qgc3BsaXQgZWFjaCBoYWxmIGlu
dG8KKwkvLyBzZXBhcmF0ZSByZWdpc3RlcnMuIFRvIGNvbXBlbnNhdGUsIHdlIHBhaXIgY29tcHV0
YXRpb25zIHVwIGFuZAorCS8vIHBhcmFsbGVsaXplLgorCisJZXh0CXYxOS44YiwgdjMuOGIsIHYz
LjhiLCAjNAkvLyBCNAorCWVvcgl2MTguMTZiLCB2MTguMTZiLCB2MS4xNmIJLy8gTiA9IEkgKyBK
CisJcG11bGwJdjE5LjhoLCB2Ny44YiwgdjE5LjhiCQkvLyBLID0gQSpCNAorCisJLy8gVGhpcyBj
YW4gcHJvYmFibHkgYmUgc2NoZWR1bGVkIG1vcmUgZWZmaWNpZW50bHkuIEZvciBub3csIHdlIGp1
c3QKKwkvLyBwYWlyIHVwIGluZGVwZW5kZW50IGluc3RydWN0aW9ucy4KKwl6aXAxCXYyMC4yZCwg
djE2LjJkLCB2MTcuMmQKKwl6aXAxCXYyMi4yZCwgdjE4LjJkLCB2MTkuMmQKKwl6aXAyCXYyMS4y
ZCwgdjE2LjJkLCB2MTcuMmQKKwl6aXAyCXYyMy4yZCwgdjE4LjJkLCB2MTkuMmQKKwllb3IJdjIw
LjE2YiwgdjIwLjE2YiwgdjIxLjE2YgorCWVvcgl2MjIuMTZiLCB2MjIuMTZiLCB2MjMuMTZiCisJ
YW5kCXYyMS4xNmIsIHYyMS4xNmIsIHYyNC4xNmIKKwlhbmQJdjIzLjE2YiwgdjIzLjE2YiwgdjI1
LjE2YgorCWVvcgl2MjAuMTZiLCB2MjAuMTZiLCB2MjEuMTZiCisJZW9yCXYyMi4xNmIsIHYyMi4x
NmIsIHYyMy4xNmIKKwl6aXAxCXYxNi4yZCwgdjIwLjJkLCB2MjEuMmQKKwl6aXAxCXYxOC4yZCwg
djIyLjJkLCB2MjMuMmQKKwl6aXAyCXYxNy4yZCwgdjIwLjJkLCB2MjEuMmQKKwl6aXAyCXYxOS4y
ZCwgdjIyLjJkLCB2MjMuMmQKKworCWV4dAl2MTYuMTZiLCB2MTYuMTZiLCB2MTYuMTZiLCAjMTUJ
Ly8gdDAgPSB0MCA8PCA4CisJZXh0CXYxNy4xNmIsIHYxNy4xNmIsIHYxNy4xNmIsICMxNAkvLyB0
MSA9IHQxIDw8IDE2CisJcG11bGwJdjEuOGgsIHY3LjhiLCB2My44YgkJLy8gRCA9IEEqQgorCWV4
dAl2MTkuMTZiLCB2MTkuMTZiLCB2MTkuMTZiLCAjMTIJLy8gdDMgPSB0MyA8PCAzMgorCWV4dAl2
MTguMTZiLCB2MTguMTZiLCB2MTguMTZiLCAjMTMJLy8gdDIgPSB0MiA8PCAyNAorCWVvcgl2MTYu
MTZiLCB2MTYuMTZiLCB2MTcuMTZiCisJZW9yCXYxOC4xNmIsIHYxOC4xNmIsIHYxOS4xNmIKKwll
b3IJdjEuMTZiLCB2MS4xNmIsIHYxNi4xNmIKKwllb3IJdjEuMTZiLCB2MS4xNmIsIHYxOC4xNmIK
KwlleHQJdjE2LjhiLCB2Ni44YiwgdjYuOGIsICMxCS8vIEExCisJcG11bGwJdjE2LjhoLCB2MTYu
OGIsIHY0LjhiCQkvLyBGID0gQTEqQgorCWV4dAl2Mi44YiwgdjQuOGIsIHY0LjhiLCAjMQkJLy8g
QjEKKwlwbXVsbAl2Mi44aCwgdjYuOGIsIHYyLjhiCQkvLyBFID0gQSpCMQorCWV4dAl2MTcuOGIs
IHY2LjhiLCB2Ni44YiwgIzIJLy8gQTIKKwlwbXVsbAl2MTcuOGgsIHYxNy44YiwgdjQuOGIJCS8v
IEggPSBBMipCCisJZXh0CXYxOS44YiwgdjQuOGIsIHY0LjhiLCAjMgkvLyBCMgorCXBtdWxsCXYx
OS44aCwgdjYuOGIsIHYxOS44YgkJLy8gRyA9IEEqQjIKKwlleHQJdjE4LjhiLCB2Ni44YiwgdjYu
OGIsICMzCS8vIEEzCisJZW9yCXYxNi4xNmIsIHYxNi4xNmIsIHYyLjE2YgkvLyBMID0gRSArIEYK
KwlwbXVsbAl2MTguOGgsIHYxOC44YiwgdjQuOGIJCS8vIEogPSBBMypCCisJZXh0CXYyLjhiLCB2
NC44YiwgdjQuOGIsICMzCQkvLyBCMworCWVvcgl2MTcuMTZiLCB2MTcuMTZiLCB2MTkuMTZiCS8v
IE0gPSBHICsgSAorCXBtdWxsCXYyLjhoLCB2Ni44YiwgdjIuOGIJCS8vIEkgPSBBKkIzCisKKwkv
LyBIZXJlIHdlIGRpdmVyZ2UgZnJvbSB0aGUgMzItYml0IHZlcnNpb24uIEl0IGNvbXB1dGVzIHRo
ZSBmb2xsb3dpbmcKKwkvLyAoaW5zdHJ1Y3Rpb25zIHJlb3JkZXJlZCBmb3IgY2xhcml0eSk6CisJ
Ly8KKwkvLyAgICAgdmVvcgkkdDAjbG8sICR0MCNsbywgJHQwI2hpCUAgdDAgPSBQMCArIFAxIChM
KQorCS8vICAgICB2YW5kCSR0MCNoaSwgJHQwI2hpLCAkazQ4CisJLy8gICAgIHZlb3IJJHQwI2xv
LCAkdDAjbG8sICR0MCNoaQorCS8vCisJLy8gICAgIHZlb3IJJHQxI2xvLCAkdDEjbG8sICR0MSNo
aQlAIHQxID0gUDIgKyBQMyAoTSkKKwkvLyAgICAgdmFuZAkkdDEjaGksICR0MSNoaSwgJGszMgor
CS8vICAgICB2ZW9yCSR0MSNsbywgJHQxI2xvLCAkdDEjaGkKKwkvLworCS8vICAgICB2ZW9yCSR0
MiNsbywgJHQyI2xvLCAkdDIjaGkJQCB0MiA9IFA0ICsgUDUgKE4pCisJLy8gICAgIHZhbmQJJHQy
I2hpLCAkdDIjaGksICRrMTYKKwkvLyAgICAgdmVvcgkkdDIjbG8sICR0MiNsbywgJHQyI2hpCisJ
Ly8KKwkvLyAgICAgdmVvcgkkdDMjbG8sICR0MyNsbywgJHQzI2hpCUAgdDMgPSBQNiArIFA3IChL
KQorCS8vICAgICB2bW92Lmk2NAkkdDMjaGksICMwCisJLy8KKwkvLyAka04gaXMgYSBtYXNrIHdp
dGggdGhlIGJvdHRvbSBOIGJpdHMgc2V0LiBBQXJjaDY0IGNhbm5vdCBjb21wdXRlIG9uCisJLy8g
dXBwZXIgaGFsdmVzIG9mIFNJTUQgcmVnaXN0ZXJzLCBzbyB3ZSBtdXN0IHNwbGl0IGVhY2ggaGFs
ZiBpbnRvCisJLy8gc2VwYXJhdGUgcmVnaXN0ZXJzLiBUbyBjb21wZW5zYXRlLCB3ZSBwYWlyIGNv
bXB1dGF0aW9ucyB1cCBhbmQKKwkvLyBwYXJhbGxlbGl6ZS4KKworCWV4dAl2MTkuOGIsIHY0Ljhi
LCB2NC44YiwgIzQJLy8gQjQKKwllb3IJdjE4LjE2YiwgdjE4LjE2YiwgdjIuMTZiCS8vIE4gPSBJ
ICsgSgorCXBtdWxsCXYxOS44aCwgdjYuOGIsIHYxOS44YgkJLy8gSyA9IEEqQjQKKworCS8vIFRo
aXMgY2FuIHByb2JhYmx5IGJlIHNjaGVkdWxlZCBtb3JlIGVmZmljaWVudGx5LiBGb3Igbm93LCB3
ZSBqdXN0CisJLy8gcGFpciB1cCBpbmRlcGVuZGVudCBpbnN0cnVjdGlvbnMuCisJemlwMQl2MjAu
MmQsIHYxNi4yZCwgdjE3LjJkCisJemlwMQl2MjIuMmQsIHYxOC4yZCwgdjE5LjJkCisJemlwMgl2
MjEuMmQsIHYxNi4yZCwgdjE3LjJkCisJemlwMgl2MjMuMmQsIHYxOC4yZCwgdjE5LjJkCisJZW9y
CXYyMC4xNmIsIHYyMC4xNmIsIHYyMS4xNmIKKwllb3IJdjIyLjE2YiwgdjIyLjE2YiwgdjIzLjE2
YgorCWFuZAl2MjEuMTZiLCB2MjEuMTZiLCB2MjQuMTZiCisJYW5kCXYyMy4xNmIsIHYyMy4xNmIs
IHYyNS4xNmIKKwllb3IJdjIwLjE2YiwgdjIwLjE2YiwgdjIxLjE2YgorCWVvcgl2MjIuMTZiLCB2
MjIuMTZiLCB2MjMuMTZiCisJemlwMQl2MTYuMmQsIHYyMC4yZCwgdjIxLjJkCisJemlwMQl2MTgu
MmQsIHYyMi4yZCwgdjIzLjJkCisJemlwMgl2MTcuMmQsIHYyMC4yZCwgdjIxLjJkCisJemlwMgl2
MTkuMmQsIHYyMi4yZCwgdjIzLjJkCisKKwlleHQJdjE2LjE2YiwgdjE2LjE2YiwgdjE2LjE2Yiwg
IzE1CS8vIHQwID0gdDAgPDwgOAorCWV4dAl2MTcuMTZiLCB2MTcuMTZiLCB2MTcuMTZiLCAjMTQJ
Ly8gdDEgPSB0MSA8PCAxNgorCXBtdWxsCXYyLjhoLCB2Ni44YiwgdjQuOGIJCS8vIEQgPSBBKkIK
KwlleHQJdjE5LjE2YiwgdjE5LjE2YiwgdjE5LjE2YiwgIzEyCS8vIHQzID0gdDMgPDwgMzIKKwll
eHQJdjE4LjE2YiwgdjE4LjE2YiwgdjE4LjE2YiwgIzEzCS8vIHQyID0gdDIgPDwgMjQKKwllb3IJ
djE2LjE2YiwgdjE2LjE2YiwgdjE3LjE2YgorCWVvcgl2MTguMTZiLCB2MTguMTZiLCB2MTkuMTZi
CisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2MTYuMTZiCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2MTgu
MTZiCisJZXh0CXYxNi4xNmIsIHYwLjE2YiwgdjIuMTZiLCAjOAorCWVvcgl2MS4xNmIsIHYxLjE2
YiwgdjAuMTZiCS8vIEthcmF0c3ViYSBwb3N0LXByb2Nlc3NpbmcKKwllb3IJdjEuMTZiLCB2MS4x
NmIsIHYyLjE2YgorCWVvcgl2MS4xNmIsIHYxLjE2YiwgdjE2LjE2YgkvLyBYbSBvdmVybGFwcyBY
aC5sbyBhbmQgWGwuaGkKKwlpbnMJdjAuZFsxXSwgdjEuZFswXQkJLy8gWGh8WGwgLSAyNTYtYml0
IHJlc3VsdAorCS8vIFRoaXMgaXMgYSBuby1vcCBkdWUgdG8gdGhlIGlucyBpbnN0cnVjdGlvbiBi
ZWxvdy4KKwkvLyBpbnMJdjIuZFswXSwgdjEuZFsxXQorCisJLy8gZXF1aXZhbGVudCBvZiByZWR1
Y3Rpb25fYXZ4IGZyb20gZ2hhc2gteDg2XzY0LnBsCisJc2hsCXYxNy4yZCwgdjAuMmQsICM1NwkJ
Ly8gMXN0IHBoYXNlCisJc2hsCXYxOC4yZCwgdjAuMmQsICM2MgorCWVvcgl2MTguMTZiLCB2MTgu
MTZiLCB2MTcuMTZiCS8vCisJc2hsCXYxNy4yZCwgdjAuMmQsICM2MworCWVvcgl2MTguMTZiLCB2
MTguMTZiLCB2MTcuMTZiCS8vCisJLy8gTm90ZSBYbSBjb250YWlucyB7WGwuZFsxXSwgWGguZFsw
XX0uCisJZW9yCXYxOC4xNmIsIHYxOC4xNmIsIHYxLjE2YgorCWlucwl2MC5kWzFdLCB2MTguZFsw
XQkJLy8gWGwuZFsxXSBePSB0Mi5kWzBdCisJaW5zCXYyLmRbMF0sIHYxOC5kWzFdCQkvLyBYaC5k
WzBdIF49IHQyLmRbMV0KKworCXVzaHIJdjE4LjJkLCB2MC4yZCwgIzEJCS8vIDJuZCBwaGFzZQor
CWVvcgl2Mi4xNmIsIHYyLjE2Yix2MC4xNmIKKwllb3IJdjAuMTZiLCB2MC4xNmIsdjE4LjE2Ygkv
LworCXVzaHIJdjE4LjJkLCB2MTguMmQsICM2CisJdXNocgl2MC4yZCwgdjAuMmQsICMxCQkvLwor
CWVvcgl2MC4xNmIsIHYwLjE2YiwgdjIuMTZiCS8vCisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2MTgu
MTZiCS8vCisKKwlzdWJzCXgzLCB4MywgIzE2CisJYm5lCUxvb3BfbmVvbgorCisJcmV2NjQJdjAu
MTZiLCB2MC4xNmIJCS8vIGJ5dGVzd2FwIFhpIGFuZCB3cml0ZQorCWV4dAl2MC4xNmIsIHYwLjE2
YiwgdjAuMTZiLCAjOAorCXN0MQl7djAuMTZifSwgW3gwXQorCisJcmV0CisKKworLnNlY3Rpb24J
X19URVhULF9fY29uc3QKKy5hbGlnbgk0CitMbWFza3M6CisucXVhZAkweDAwMDBmZmZmZmZmZmZm
ZmYJLy8gazQ4CisucXVhZAkweDAwMDAwMDAwZmZmZmZmZmYJLy8gazMyCisucXVhZAkweDAwMDAw
MDAwMDAwMGZmZmYJLy8gazE2CisucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAJLy8gazAKKy5ieXRl
CTcxLDcyLDY1LDgzLDcyLDMyLDEwMiwxMTEsMTE0LDMyLDY1LDgyLDc3LDExOCw1Niw0NCwzMiwx
MDAsMTAxLDExNCwxMDUsMTE4LDEwMSwxMDAsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDY1LDgyLDc3
LDExOCw1MiwzMiwxMTgsMTAxLDExNCwxMTUsMTA1LDExMSwxMTAsMzIsOTgsMTIxLDMyLDYwLDk3
LDExMiwxMTIsMTE0LDExMSw2NCwxMTEsMTEyLDEwMSwxMTAsMTE1LDExNSwxMDgsNDYsMTExLDEx
NCwxMDMsNjIsMAorLmFsaWduCTIKKy5hbGlnbgkyCisjZW5kaWYgIC8vICFPUEVOU1NMX05PX0FT
TQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvaW9zLWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2h2OC1hcm14
NjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2doYXNodjgtYXJteDY0LlMKaW5k
ZXggYjBhZjk5ZDY5Mzk4Nzk1MDM2NmY5ZjkzZDQxZGE4MDRmMjQ4MzRkMC4uYmUwZTI4M2MzNjZk
N2RmYTI0MDViMTM3YTlhNGJkOWM4OTM3OWYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFhcmNoNjQvY3J5
cHRvL2ZpcHNtb2R1bGUvZ2hhc2h2OC1hcm14NjQuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8v
Zmlwc21vZHVsZS9naGFzaHY4LWFybXg2NC5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZp
bGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhl
IEJvcmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBk
ZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZp
bmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9z
YW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05P
X0FTTQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lm
IGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0
by9maXBzbW9kdWxlL3NoYTEtYXJtdjguUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxl
L3NoYTEtYXJtdjguUwppbmRleCAwYjkxOTE2OWQ0NTk5OTZlOWU1ZTkzZWQ2OGQwNGIwMGQ2ZjZh
NGNkLi4zNzkxMDdlZmJmOGQwMGEzMmQ5YTFkNWNhZDg0MTkwODNkYTkxOTFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9zaGExLWFybXY4LlMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFh
cmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhMS1hcm12OC5TCkBAIC0xLDExICsxLDEyIEBACiAv
LyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3Jp
cHQgaW4gdGhlIEJvcmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQu
CiAKLSNpZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVy
ZSkKKyNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJl
KG1lbW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBP
UEVOU1NMX05PX0FTTQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9f
QVNNKQogI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKQEAgLTIxLDkgKzIyLDEyIEBACiAK
IC5hbGlnbgk2CiBfc2hhMV9ibG9ja19kYXRhX29yZGVyOgorI2lmIF9faGFzX2ZlYXR1cmUoaHdh
ZGRyZXNzX3Nhbml0aXplcikgJiYgX19jbGFuZ19tYWpvcl9fID49IDEwCisJYWRycAl4MTYsOnBn
X2hpMjFfbmM6X09QRU5TU0xfYXJtY2FwX1AKKyNlbHNlCiAJYWRycAl4MTYsX09QRU5TU0xfYXJt
Y2FwX1BAUEFHRQotCWFkZAl4MTYseDE2LF9PUEVOU1NMX2FybWNhcF9QQFBBR0VPRkYKLQlsZHIJ
dzE2LFt4MTZdCisjZW5kaWYKKwlsZHIJdzE2LFt4MTYsX09QRU5TU0xfYXJtY2FwX1BAUEFHRU9G
Rl0KIAl0c3QJdzE2LCNBUk1WOF9TSEExCiAJYi5uZQlMdjhfZW50cnkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
aW9zLWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhMjU2LWFybXY4LlMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2
NC9jcnlwdG8vZmlwc21vZHVsZS9zaGEyNTYtYXJtdjguUwppbmRleCA2MTdhZmM5NDhiOWE1Zjdk
NGVmZTg0YWM2ZDk4ZDJjNzQ2ZjdlOGE3Li5kNmZhNWE5MzBkZjZhOTJkYzdhNDZjMTRjOGU0YWMw
NTg1NTcwNDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9zaGEy
NTYtYXJtdjguUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9zaGEyNTYtYXJt
djguUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEg
c2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0
cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQor
I2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAor
I2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChP
UEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNlbmRpZgotI2VuZGlmCiAK
ICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVG
SVgpCkBAIC02Myw5ICs2NCwxMiBAQAogLmFsaWduCTYKIF9zaGEyNTZfYmxvY2tfZGF0YV9vcmRl
cjoKICNpZm5kZWYJX19LRVJORUxfXworI2lmIF9faGFzX2ZlYXR1cmUoaHdhZGRyZXNzX3Nhbml0
aXplcikgJiYgX19jbGFuZ19tYWpvcl9fID49IDEwCisJYWRycAl4MTYsOnBnX2hpMjFfbmM6X09Q
RU5TU0xfYXJtY2FwX1AKKyNlbHNlCiAJYWRycAl4MTYsX09QRU5TU0xfYXJtY2FwX1BAUEFHRQot
CWFkZAl4MTYseDE2LF9PUEVOU1NMX2FybWNhcF9QQFBBR0VPRkYKLQlsZHIJdzE2LFt4MTZdCisj
ZW5kaWYKKwlsZHIJdzE2LFt4MTYsX09QRU5TU0xfYXJtY2FwX1BAUEFHRU9GRl0KIAl0c3QJdzE2
LCNBUk1WOF9TSEEyNTYKIAliLm5lCUx2OF9lbnRyeQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3Mt
YWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9zaGE1MTItYXJtdjguUyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2Ny
eXB0by9maXBzbW9kdWxlL3NoYTUxMi1hcm12OC5TCmluZGV4IGEyYTkyZDdiZjNlNGQ0NWE0ODM4
MGNiOGRmMGJmYTJmNTQ1NTFhYzQuLjI5ZTEyMmIxODA4MTg5MGZlMDE0Y2Y1ZTllMTdjODVmOGY3
YjY5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTUxMi1h
cm12OC5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTUxMi1hcm12OC5T
CkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1p
bGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NTTAogLy8gc291cmNlIHRyZWUu
IERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYg
IWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5k
aWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5T
U0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FTTQogI2VuZGlmCi0jZW5kaWYKIAogI2lm
ICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLWFybXY4LlMg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy1hcm12OC5TCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBmNWNiZWFkYWZkZGI2ZDI3NWU0ZDllOTllNDdiMTc2NjFhOWRmNGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy1hcm12OC5TCkBAIC0wLDAg
KzEsMTIxMyBAQAorLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5h
bWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKKy8vIHNvdXJjZSB0cmVlLiBEbyBub3Qg
ZWRpdCBieSBoYW5kLgorCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19o
YXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKKyNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6
ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQorI2RlZmluZSBPUEVOU1NMX05PX0FTTQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNpZiBkZWZpbmVkKEJPUklO
R1NTTF9QUkVGSVgpCisjaW5jbHVkZSA8Ym9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX2FzbS5oPgor
I2VuZGlmCisuc2VjdGlvbglfX1RFWFQsX19jb25zdAorCisKKy5hbGlnbgk3CS8vIHRvdGFsbHkg
c3RyYXRlZ2ljIGFsaWdubWVudAorX3ZwYWVzX2NvbnN0czoKK0xrX21jX2ZvcndhcmQ6CS8vCW1j
X2ZvcndhcmQKKy5xdWFkCTB4MDQwNzA2MDUwMDAzMDIwMSwgMHgwQzBGMEUwRDA4MEIwQTA5Cisu
cXVhZAkweDA4MEIwQTA5MDQwNzA2MDUsIDB4MDAwMzAyMDEwQzBGMEUwRAorLnF1YWQJMHgwQzBG
MEUwRDA4MEIwQTA5LCAweDA0MDcwNjA1MDAwMzAyMDEKKy5xdWFkCTB4MDAwMzAyMDEwQzBGMEUw
RCwgMHgwODBCMEEwOTA0MDcwNjA1CitMa19tY19iYWNrd2FyZDoJLy8JbWNfYmFja3dhcmQKKy5x
dWFkCTB4MDYwNTA0MDcwMjAxMDAwMywgMHgwRTBEMEMwRjBBMDkwODBCCisucXVhZAkweDAyMDEw
MDAzMEUwRDBDMEYsIDB4MEEwOTA4MEIwNjA1MDQwNworLnF1YWQJMHgwRTBEMEMwRjBBMDkwODBC
LCAweDA2MDUwNDA3MDIwMTAwMDMKKy5xdWFkCTB4MEEwOTA4MEIwNjA1MDQwNywgMHgwMjAxMDAw
MzBFMEQwQzBGCitMa19zcjoJLy8Jc3IKKy5xdWFkCTB4MDcwNjA1MDQwMzAyMDEwMCwgMHgwRjBF
MEQwQzBCMEEwOTA4CisucXVhZAkweDAzMEUwOTA0MEYwQTA1MDAsIDB4MEIwNjAxMEMwNzAyMEQw
OAorLnF1YWQJMHgwRjA2MEQwNDBCMDIwOTAwLCAweDA3MEUwNTBDMDMwQTAxMDgKKy5xdWFkCTB4
MEIwRTAxMDQwNzBBMEQwMCwgMHgwMzA2MDkwQzBGMDIwNTA4CisKKy8vCisvLyAiSG90IiBjb25z
dGFudHMKKy8vCitMa19pbnY6CS8vCWludiwgaW52YQorLnF1YWQJMHgwRTA1MDYwRjBEMDgwMTgw
LCAweDA0MDcwMzA5MEEwQjBDMDIKKy5xdWFkCTB4MDEwNDBBMDYwRjBCMDc4MCwgMHgwMzBEMEUw
QzAyMDUwODA5CitMa19pcHQ6CS8vCWlucHV0IHRyYW5zZm9ybSAobG8sIGhpKQorLnF1YWQJMHhD
MkIyRTg5ODVBMkE3MDAwLCAweENBQkFFMDkwNTIyMjc4MDgKKy5xdWFkCTB4NEMwMTMwN0QzMTdD
NEQwMCwgMHhDRDgwQjFGQ0IwRkRDQzgxCitMa19zYm86CS8vCXNib3UsIHNib3QKKy5xdWFkCTB4
RDBEMjZEMTc2RkJEQzcwMCwgMHgxNUFBQkY3QUM1MDJBODc4CisucXVhZAkweENGRTQ3NEE1NUZC
QjZBMDAsIDB4OEUxRTkwRDE0MTJCMzVGQQorTGtfc2IxOgkvLwlzYjF1LCBzYjF0CisucXVhZAkw
eDM2MThENDE1RkFFMjIzMDAsIDB4M0JGN0NDQzEwRDJFRDlFRgorLnF1YWQJMHhCMTlCRTE4RkNC
NTAzRTAwLCAweEE1REY3QTZFMTQyQUY1NDQKK0xrX3NiMjoJLy8Jc2IydSwgc2IydAorLnF1YWQJ
MHg2OUVCODg0MDBBRTEyOTAwLCAweEMyQTE2M0M4QUI4MjIzNEEKKy5xdWFkCTB4RTI3QTkzQzYw
QjcxMjQwMCwgMHg1RUI3RTk1NUJDOTgyRkNECisKKy8vCisvLyAgRGVjcnlwdGlvbiBzdHVmZgor
Ly8KK0xrX2RpcHQ6CS8vCWRlY3J5cHRpb24gaW5wdXQgdHJhbnNmb3JtCisucXVhZAkweDBGNTA1
QjA0MEI1NDVGMDAsIDB4MTU0QTQxMUUxMTRFNDUxQQorLnF1YWQJMHg4NkUzODNFNjYwMDU2NTAw
LCAweDEyNzcxNzcyRjQ5MUYxOTQKK0xrX2RzYm86CS8vCWRlY3J5cHRpb24gc2JveCBmaW5hbCBv
dXRwdXQKKy5xdWFkCTB4MTM4N0VBNTM3RUY5NDAwMCwgMHhDN0FBNkRCOUQ0OTQzRTJECisucXVh
ZAkweDEyRDc1NjBGOTM0NDFEMDAsIDB4Q0E0QjgxNTlEOEM1OEU5QworTGtfZHNiOToJLy8JZGVj
cnlwdGlvbiBzYm94IG91dHB1dCAqOSp1LCAqOSp0CisucXVhZAkweDg1MUMwMzUzOUE4NkQ2MDAs
IDB4Q0FENTFGNTA0Rjk5NENDOQorLnF1YWQJMHhDMDNCMTc4OUVDRDc0OTAwLCAweDcyNUUyQzlF
QjJGQkE1NjUKK0xrX2RzYmQ6CS8vCWRlY3J5cHRpb24gc2JveCBvdXRwdXQgKkQqdSwgKkQqdAor
LnF1YWQJMHg3RDU3Q0NERkU2QjFBMjAwLCAweEY1NkU5QjEzODgyQTQ0MzkKKy5xdWFkCTB4M0NF
MkZBRjcyNEM2Q0IwMCwgMHgyOTMxMTgwRDE1REVFRkQzCitMa19kc2JiOgkvLwlkZWNyeXB0aW9u
IHNib3ggb3V0cHV0ICpCKnUsICpCKnQKKy5xdWFkCTB4RDAyMjY0OTI5NkI0NDIwMCwgMHg2MDI2
NDZGNkIwRjJENDA0CisucXVhZAkweEMxOTQ5OEE2Q0Q1OTY3MDAsIDB4RjNGRjBDM0UzMjU1QUE2
QgorTGtfZHNiZToJLy8JZGVjcnlwdGlvbiBzYm94IG91dHB1dCAqRSp1LCAqRSp0CisucXVhZAkw
eDQ2RjI5Mjk2MjZENEQwMDAsIDB4MjI0MjYwMDQ2NEI0RjZCMAorLnF1YWQJMHgwQzU1QTZDREZG
QUFDMTAwLCAweDk0NjdGMzZCOTg1OTNFMzIKKworLy8KKy8vICBLZXkgc2NoZWR1bGUgY29uc3Rh
bnRzCisvLworTGtfZGtzZDoJLy8JZGVjcnlwdGlvbiBrZXkgc2NoZWR1bGU6IGludnNrZXcgeCpE
CisucXVhZAkweEZFQjkxQTVEQTNFNDQ3MDAsIDB4MDc0MEUzQTQ1QTFEQkVGOQorLnF1YWQJMHg0
MUMyNzdGNEI1MzY4MzAwLCAweDVGREM2OUVBQUIyODlEMUUKK0xrX2Rrc2I6CS8vCWRlY3J5cHRp
b24ga2V5IHNjaGVkdWxlOiBpbnZza2V3IHgqQgorLnF1YWQJMHg5QTRGQ0ExRjg1NTBENTAwLCAw
eDAzRDY1Mzg2MUNDOTRDOTkKKy5xdWFkCTB4MTE1QkVEQTdCNkZDNEEwMCwgMHhEOTkzMjU2RjdF
MzQ4MkM4CitMa19ka3NlOgkvLwlkZWNyeXB0aW9uIGtleSBzY2hlZHVsZTogaW52c2tldyB4KkUg
KyAweDYzCisucXVhZAkweEQ1MDMxQ0NBMUZDOUQ2MDAsIDB4NTM4NTlBNEM5OTRGNTA4NgorLnF1
YWQJMHhBMjMxOTYwNTRGREM3QkU4LCAweENENUVGOTZBMjBCMzE0ODcKK0xrX2Rrczk6CS8vCWRl
Y3J5cHRpb24ga2V5IHNjaGVkdWxlOiBpbnZza2V3IHgqOQorLnF1YWQJMHhCNjExNkZDODdFRDlB
NzAwLCAweDRBRUQ5MzM0ODIyNTVCRkMKKy5xdWFkCTB4NDU3NjUxNjIyNzE0MzMwMCwgMHg4QkI4
OUZBQ0U5REFGRENFCisKK0xrX3Jjb246CS8vCXJjb24KKy5xdWFkCTB4MUY4MzkxQjlBRjlERUVC
NiwgMHg3MDJBOTgwODREN0M3RDgxCisKK0xrX29wdDoJLy8Jb3V0cHV0IHRyYW5zZm9ybQorLnF1
YWQJMHhGRjlGNDkyOUQ2QjY2MDAwLCAweEY3OTc0MTIxREVCRTY4MDgKKy5xdWFkCTB4MDFFREJE
NTE1MEJDRUMwMCwgMHhFMTBENURCMUIwNUMwQ0UwCitMa19kZXNrZXc6CS8vCWRlc2tldyB0YWJs
ZXM6IGludmVydHMgdGhlIHNib3gncyAic2tldyIKKy5xdWFkCTB4MDdFNEEzNDA0N0E0RTMwMCwg
MHgxREZFQjk1QTVEQkVGOTFBCisucXVhZAkweDVGMzZCNURDODNFQTY5MDAsIDB4Mjg0MUMyQUJG
NDlEMUU3NworCisuYnl0ZQk4NiwxMDEsOTksMTE2LDExMSwxMTQsMzIsODAsMTAxLDExNCwxMDks
MTE3LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsNjUsNjksODMsMzIsMTAyLDExMSwxMTQsMzIs
NjUsODIsNzcsMTE4LDU2LDQ0LDMyLDc3LDEwNSwxMDcsMTAxLDMyLDcyLDk3LDEwOSw5OCwxMTcs
MTE0LDEwMywzMiw0MCw4MywxMTYsOTcsMTEwLDEwMiwxMTEsMTE0LDEwMCwzMiw4NSwxMTAsMTA1
LDExOCwxMDEsMTE0LDExNSwxMDUsMTE2LDEyMSw0MSwwCisuYWxpZ24JMgorCisuYWxpZ24JNgor
CisudGV4dAorIyMKKyMjICBfYWVzX3ByZWhlYXQKKyMjCisjIyAgRmlsbHMgcmVnaXN0ZXIgJXIx
MCAtPiAuYWVzX2NvbnN0cyAoc28geW91IGNhbiAtZlBJQykKKyMjICBhbmQgJXhtbTktJXhtbTE1
IGFzIHNwZWNpZmllZCBiZWxvdy4KKyMjCisKKy5hbGlnbgk0CitfdnBhZXNfZW5jcnlwdF9wcmVo
ZWF0OgorCWFkcnAJeDEwLCBMa19pbnZAUEFHRQorCWFkZAl4MTAsIHgxMCwgTGtfaW52QFBBR0VP
RkYKKwltb3ZpCXYxNy4xNmIsICMweDBmCisJbGQxCXt2MTguMmQsdjE5LjJkfSwgW3gxMF0sIzMy
CS8vIExrX2ludgorCWxkMQl7djIwLjJkLHYyMS4yZCx2MjIuMmQsdjIzLjJkfSwgW3gxMF0sIzY0
CS8vIExrX2lwdCwgTGtfc2JvCisJbGQxCXt2MjQuMmQsdjI1LjJkLHYyNi4yZCx2MjcuMmR9LCBb
eDEwXQkJLy8gTGtfc2IxLCBMa19zYjIKKwlyZXQKKworCisjIworIyMgIF9hZXNfZW5jcnlwdF9j
b3JlCisjIworIyMgIEFFUy1lbmNyeXB0ICV4bW0wLgorIyMKKyMjICBJbnB1dHM6CisjIyAgICAg
JXhtbTAgPSBpbnB1dAorIyMgICAgICV4bW05LSV4bW0xNSBhcyBpbiBfdnBhZXNfcHJlaGVhdAor
IyMgICAgKCVyZHgpID0gc2NoZWR1bGVkIGtleXMKKyMjCisjIyAgT3V0cHV0IGluICV4bW0wCisj
IyAgQ2xvYmJlcnMgICV4bW0xLSV4bW01LCAlcjksICVyMTAsICVyMTEsICVyYXgKKyMjICBQcmVz
ZXJ2ZXMgJXhtbTYgLSAleG1tOCBzbyB5b3UgZ2V0IHNvbWUgbG9jYWwgdmVjdG9ycworIyMKKyMj
CisKKy5hbGlnbgk0CitfdnBhZXNfZW5jcnlwdF9jb3JlOgorCW1vdgl4OSwgeDIKKwlsZHIJdzgs
IFt4MiwjMjQwXQkJCS8vIHB1bGwgcm91bmRzCisJYWRycAl4MTEsIExrX21jX2ZvcndhcmRAUEFH
RSsxNgorCWFkZAl4MTEsIHgxMSwgTGtfbWNfZm9yd2FyZEBQQUdFT0ZGKzE2CisJCQkJCQkvLyB2
bW92ZHFhCS5Ma19pcHQoJXJpcCksCSV4bW0yCSMgaXB0bG8KKwlsZDEJe3YxNi4yZH0sIFt4OV0s
ICMxNgkJLy8gdm1vdmRxdQkoJXI5KSwJJXhtbTUJCSMgcm91bmQwIGtleQorCWFuZAl2MS4xNmIs
IHY3LjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTksCSV4bW0wLAkleG1tMQorCXVzaHIJdjAu
MTZiLCB2Ny4xNmIsICM0CQkvLyB2cHNybGIJJDQsCSV4bW0wLAkleG1tMAorCXRibAl2MS4xNmIs
IHt2MjAuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0yLAkleG1tMQorCQkJCQkJ
Ly8gdm1vdmRxYQkuTGtfaXB0KzE2KCVyaXApLCAleG1tMwkjIGlwdGhpCisJdGJsCXYyLjE2Yiwg
e3YyMS4xNmJ9LCB2MC4xNmIJLy8gdnBzaHVmYgkleG1tMCwJJXhtbTMsCSV4bW0yCisJZW9yCXYw
LjE2YiwgdjEuMTZiLCB2MTYuMTZiCQkvLyB2cHhvcgkleG1tNSwJJXhtbTEsCSV4bW0wCisJZW9y
CXYwLjE2YiwgdjAuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMCwJJXhtbTAKKwli
CUxlbmNfZW50cnkKKworLmFsaWduCTQKK0xlbmNfbG9vcDoKKwkvLyBtaWRkbGUgb2YgbWlkZGxl
IHJvdW5kCisJYWRkCXgxMCwgeDExLCAjMHg0MAorCXRibAl2NC4xNmIsIHt2MjUuMTZifSwgdjIu
MTZiCQkvLyB2cHNodWZiCSV4bW0yLAkleG1tMTMsCSV4bW00CSMgNCA9IHNiMXUKKwlsZDEJe3Yx
LjJkfSwgW3gxMV0sICMxNgkJLy8gdm1vdmRxYQktMHg0MCglcjExLCVyMTApLCAleG1tMQkjIExr
X21jX2ZvcndhcmRbXQorCXRibAl2MC4xNmIsIHt2MjQuMTZifSwgdjMuMTZiCQkvLyB2cHNodWZi
CSV4bW0zLAkleG1tMTIsCSV4bW0wCSMgMCA9IHNiMXQKKwllb3IJdjQuMTZiLCB2NC4xNmIsIHYx
Ni4xNmIJCS8vIHZweG9yCSV4bW01LAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwl0YmwJ
djUuMTZiLAl7djI3LjE2Yn0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTE1LAkleG1t
NQkjIDQgPSBzYjJ1CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00
LAkleG1tMCwJJXhtbTAJIyAwID0gQQorCXRibAl2Mi4xNmIsIHt2MjYuMTZifSwgdjMuMTZiCQkv
LyB2cHNodWZiCSV4bW0zLAkleG1tMTQsCSV4bW0yCSMgMiA9IHNiMnQKKwlsZDEJe3Y0LjJkfSwg
W3gxMF0JCQkvLyB2bW92ZHFhCSglcjExLCVyMTApLCAleG1tNAkjIExrX21jX2JhY2t3YXJkW10K
Kwl0YmwJdjMuMTZiLCB7djAuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0wLAkl
eG1tMwkjIDAgPSBCCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2NS4xNmIJCS8vIHZweG9yCSV4bW01
LAkleG1tMiwJJXhtbTIJIyAyID0gMkEKKwl0YmwJdjAuMTZiLCB7djAuMTZifSwgdjQuMTZiCS8v
IHZwc2h1ZmIJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDMgPSBECisJZW9yCXYzLjE2YiwgdjMuMTZi
LCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMJIyAwID0gMkErQgorCXRibAl2
NC4xNmIsIHt2My4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW00CSMg
MCA9IDJCK0MKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYzLjE2YgkJLy8gdnB4b3IJJXhtbTMsCSV4
bW0wLAkleG1tMAkjIDMgPSAyQStCK0QKKwlhbmQJeDExLCB4MTEsICN+KDE8PDYpCQkvLyBhbmQJ
CSQweDMwLAklcjExCQkjIC4uLiBtb2QgNAorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjQuMTZiCQkv
LyB2cHhvcgkleG1tNCwJJXhtbTAsICV4bW0wCSMgMCA9IDJBKzNCK0MrRAorCXN1Ygl3OCwgdzgs
ICMxCQkJLy8gbnItLQorCitMZW5jX2VudHJ5OgorCS8vIHRvcCBvZiByb3VuZAorCWFuZAl2MS4x
NmIsIHYwLjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTAsCSV4bW05LAkleG1tMSAgICMgMCA9
IGsKKwl1c2hyCXYwLjE2YiwgdjAuMTZiLCAjNAkJLy8gdnBzcmxiCSQ0LAkleG1tMCwJJXhtbTAJ
IyAxID0gaQorCXRibAl2NS4xNmIsIHt2MTkuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEs
CSV4bW0xMSwJJXhtbTUJIyAyID0gYS9rCisJZW9yCXYxLjE2YiwgdjEuMTZiLCB2MC4xNmIJCS8v
IHZweG9yCSV4bW0wLAkleG1tMSwJJXhtbTEJIyAwID0gagorCXRibAl2My4xNmIsIHt2MTguMTZi
fSwgdjAuMTZiCS8vIHZwc2h1ZmIJJXhtbTAsIAkleG1tMTAsCSV4bW0zICAJIyAzID0gMS9pCisJ
dGJsCXY0LjE2Yiwge3YxOC4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwgCSV4bW0xMCwJ
JXhtbTQgIAkjIDQgPSAxL2oKKwllb3IJdjMuMTZiLCB2My4xNmIsIHY1LjE2YgkJLy8gdnB4b3IJ
JXhtbTUsCSV4bW0zLAkleG1tMwkjIDMgPSBpYWsgPSAxL2kgKyBhL2sKKwllb3IJdjQuMTZiLCB2
NC4xNmIsIHY1LjE2YgkJLy8gdnB4b3IJJXhtbTUsCSV4bW00LAkleG1tNCAgCSMgNCA9IGphayA9
IDEvaiArIGEvaworCXRibAl2Mi4xNmIsIHt2MTguMTZifSwgdjMuMTZiCS8vIHZwc2h1ZmIJJXht
bTMsCSV4bW0xMCwJJXhtbTIgIAkjIDIgPSAxL2lhaworCXRibAl2My4xNmIsIHt2MTguMTZifSwg
djQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0xMCwJJXhtbTMJIyAzID0gMS9qYWsKKwllb3IJ
djIuMTZiLCB2Mi4xNmIsIHYxLjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW0yLAkleG1tMiAgCSMg
MiA9IGlvCisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2MC4xNmIJCS8vIHZweG9yCSV4bW0wLAkleG1t
MywJJXhtbTMJIyAzID0gam8KKwlsZDEJe3YxNi4yZH0sIFt4OV0sIzE2CQkvLyB2bW92ZHF1CSgl
cjkpLAkleG1tNQorCWNibnoJdzgsIExlbmNfbG9vcAorCisJLy8gbWlkZGxlIG9mIGxhc3Qgcm91
bmQKKwlhZGQJeDEwLCB4MTEsICMweDgwCisJCQkJCQkvLyB2bW92ZHFhCS0weDYwKCVyMTApLCAl
eG1tNAkjIDMgOiBzYm91CS5Ma19zYm8KKwkJCQkJCS8vIHZtb3ZkcWEJLTB4NTAoJXIxMCksICV4
bW0wCSMgMCA6IHNib3QJLkxrX3NibysxNgorCXRibAl2NC4xNmIsIHt2MjIuMTZifSwgdjIuMTZi
CQkvLyB2cHNodWZiCSV4bW0yLAkleG1tNCwJJXhtbTQJIyA0ID0gc2JvdQorCWxkMQl7djEuMmR9
LCBbeDEwXQkJCS8vIHZtb3ZkcWEJMHg0MCglcjExLCVyMTApLCAleG1tMQkjIExrX3NyW10KKwl0
YmwJdjAuMTZiLCB7djIzLjE2Yn0sIHYzLjE2YgkJLy8gdnBzaHVmYgkleG1tMywJJXhtbTAsCSV4
bW0wCSMgMCA9IHNiMXQKKwllb3IJdjQuMTZiLCB2NC4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCSV4
bW01LAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHY0
LjE2YgkJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDAgPSBBCisJdGJsCXYwLjE2Yiwg
e3YwLjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMCwJJXhtbTAKKwlyZXQKKwor
CisuZ2xvYmwJX3ZwYWVzX2VuY3J5cHQKKy5wcml2YXRlX2V4dGVybglfdnBhZXNfZW5jcnlwdAor
CisuYWxpZ24JNAorX3ZwYWVzX2VuY3J5cHQ6CisJc3RwCXgyOSx4MzAsW3NwLCMtMTZdIQorCWFk
ZAl4Mjksc3AsIzAKKworCWxkMQl7djcuMTZifSwgW3gwXQorCWJsCV92cGFlc19lbmNyeXB0X3By
ZWhlYXQKKwlibAlfdnBhZXNfZW5jcnlwdF9jb3JlCisJc3QxCXt2MC4xNmJ9LCBbeDFdCisKKwls
ZHAJeDI5LHgzMCxbc3BdLCMxNgorCXJldAorCisKKworLmFsaWduCTQKK192cGFlc19lbmNyeXB0
XzJ4OgorCW1vdgl4OSwgeDIKKwlsZHIJdzgsIFt4MiwjMjQwXQkJCS8vIHB1bGwgcm91bmRzCisJ
YWRycAl4MTEsIExrX21jX2ZvcndhcmRAUEFHRSsxNgorCWFkZAl4MTEsIHgxMSwgTGtfbWNfZm9y
d2FyZEBQQUdFT0ZGKzE2CisJCQkJCQkvLyB2bW92ZHFhCS5Ma19pcHQoJXJpcCksCSV4bW0yCSMg
aXB0bG8KKwlsZDEJe3YxNi4yZH0sIFt4OV0sICMxNgkJLy8gdm1vdmRxdQkoJXI5KSwJJXhtbTUJ
CSMgcm91bmQwIGtleQorCWFuZAl2MS4xNmIsICB2MTQuMTZiLCAgdjE3LjE2YgkvLyB2cGFuZAkl
eG1tOSwJJXhtbTAsCSV4bW0xCisJdXNocgl2MC4xNmIsICB2MTQuMTZiLCAgIzQJCS8vIHZwc3Js
YgkkNCwJJXhtbTAsCSV4bW0wCisJYW5kCXY5LjE2YiwgIHYxNS4xNmIsICB2MTcuMTZiCisJdXNo
cgl2OC4xNmIsICB2MTUuMTZiLCAgIzQKKwl0YmwJdjEuMTZiLCAge3YyMC4xNmJ9LCB2MS4xNmIJ
Ly8gdnBzaHVmYgkleG1tMSwJJXhtbTIsCSV4bW0xCisJdGJsCXY5LjE2YiwgIHt2MjAuMTZifSwg
djkuMTZiCisJCQkJCQkvLyB2bW92ZHFhCS5Ma19pcHQrMTYoJXJpcCksICV4bW0zCSMgaXB0aGkK
Kwl0YmwJdjIuMTZiLCAge3YyMS4xNmJ9LCB2MC4xNmIJLy8gdnBzaHVmYgkleG1tMCwJJXhtbTMs
CSV4bW0yCisJdGJsCXYxMC4xNmIsIHt2MjEuMTZifSwgdjguMTZiCisJZW9yCXYwLjE2YiwgIHYx
LjE2YiwgICB2MTYuMTZiCS8vIHZweG9yCSV4bW01LAkleG1tMSwJJXhtbTAKKwllb3IJdjguMTZi
LCAgdjkuMTZiLCAgIHYxNi4xNmIKKwllb3IJdjAuMTZiLCAgdjAuMTZiLCAgIHYyLjE2YgkvLyB2
cHhvcgkleG1tMiwJJXhtbTAsCSV4bW0wCisJZW9yCXY4LjE2YiwgIHY4LjE2YiwgICB2MTAuMTZi
CisJYglMZW5jXzJ4X2VudHJ5CisKKy5hbGlnbgk0CitMZW5jXzJ4X2xvb3A6CisJLy8gbWlkZGxl
IG9mIG1pZGRsZSByb3VuZAorCWFkZAl4MTAsIHgxMSwgIzB4NDAKKwl0YmwJdjQuMTZiLCAge3Yy
NS4xNmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTEzLAkleG1tNAkjIDQgPSBzYjF1
CisJdGJsCXYxMi4xNmIsIHt2MjUuMTZifSwgdjEwLjE2YgorCWxkMQl7djEuMmR9LCBbeDExXSwg
IzE2CQkvLyB2bW92ZHFhCS0weDQwKCVyMTEsJXIxMCksICV4bW0xCSMgTGtfbWNfZm9yd2FyZFtd
CisJdGJsCXYwLjE2YiwgIHt2MjQuMTZifSwgdjMuMTZiCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0x
MiwJJXhtbTAJIyAwID0gc2IxdAorCXRibAl2OC4xNmIsICB7djI0LjE2Yn0sIHYxMS4xNmIKKwll
b3IJdjQuMTZiLCAgdjQuMTZiLCAgdjE2LjE2YgkvLyB2cHhvcgkleG1tNSwJJXhtbTQsCSV4bW00
CSMgNCA9IHNiMXUgKyBrCisJZW9yCXYxMi4xNmIsIHYxMi4xNmIsIHYxNi4xNmIKKwl0YmwJdjUu
MTZiLAkge3YyNy4xNmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTE1LAkleG1tNQkj
IDQgPSBzYjJ1CisJdGJsCXYxMy4xNmIsIHt2MjcuMTZifSwgdjEwLjE2YgorCWVvcgl2MC4xNmIs
ICB2MC4xNmIsICB2NC4xNmIJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDAgPSBBCisJ
ZW9yCXY4LjE2YiwgIHY4LjE2YiwgIHYxMi4xNmIKKwl0YmwJdjIuMTZiLCAge3YyNi4xNmJ9LCB2
My4xNmIJLy8gdnBzaHVmYgkleG1tMywJJXhtbTE0LAkleG1tMgkjIDIgPSBzYjJ0CisJdGJsCXYx
MC4xNmIsIHt2MjYuMTZifSwgdjExLjE2YgorCWxkMQl7djQuMmR9LCBbeDEwXQkJCS8vIHZtb3Zk
cWEJKCVyMTEsJXIxMCksICV4bW00CSMgTGtfbWNfYmFja3dhcmRbXQorCXRibAl2My4xNmIsICB7
djAuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0wLAkleG1tMwkjIDAgPSBCCisJ
dGJsCXYxMS4xNmIsIHt2OC4xNmJ9LCB2MS4xNmIKKwllb3IJdjIuMTZiLCAgdjIuMTZiLCAgdjUu
MTZiCS8vIHZweG9yCSV4bW01LAkleG1tMiwJJXhtbTIJIyAyID0gMkEKKwllb3IJdjEwLjE2Yiwg
djEwLjE2YiwgdjEzLjE2YgorCXRibAl2MC4xNmIsICB7djAuMTZifSwgdjQuMTZiCS8vIHZwc2h1
ZmIJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDMgPSBECisJdGJsCXY4LjE2YiwgIHt2OC4xNmJ9LCB2
NC4xNmIKKwllb3IJdjMuMTZiLCAgdjMuMTZiLCAgdjIuMTZiCS8vIHZweG9yCSV4bW0yLAkleG1t
MywJJXhtbTMJIyAwID0gMkErQgorCWVvcgl2MTEuMTZiLCB2MTEuMTZiLCB2MTAuMTZiCisJdGJs
CXY0LjE2YiwgIHt2My4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW00
CSMgMCA9IDJCK0MKKwl0YmwJdjEyLjE2Yiwge3YxMS4xNmJ9LHYxLjE2YgorCWVvcgl2MC4xNmIs
ICB2MC4xNmIsICB2My4xNmIJLy8gdnB4b3IJJXhtbTMsCSV4bW0wLAkleG1tMAkjIDMgPSAyQStC
K0QKKwllb3IJdjguMTZiLCAgdjguMTZiLCAgdjExLjE2YgorCWFuZAl4MTEsIHgxMSwgI34oMTw8
NikJCS8vIGFuZAkJJDB4MzAsCSVyMTEJCSMgLi4uIG1vZCA0CisJZW9yCXYwLjE2YiwgIHYwLjE2
YiwgIHY0LjE2YgkvLyB2cHhvcgkleG1tNCwJJXhtbTAsICV4bW0wCSMgMCA9IDJBKzNCK0MrRAor
CWVvcgl2OC4xNmIsICB2OC4xNmIsICB2MTIuMTZiCisJc3ViCXc4LCB3OCwgIzEJCQkvLyBuci0t
CisKK0xlbmNfMnhfZW50cnk6CisJLy8gdG9wIG9mIHJvdW5kCisJYW5kCXYxLjE2YiwgIHYwLjE2
YiwgdjE3LjE2YgkvLyB2cGFuZAkleG1tMCwJJXhtbTksCSV4bW0xICAgIyAwID0gaworCXVzaHIJ
djAuMTZiLCAgdjAuMTZiLCAjNAkJLy8gdnBzcmxiCSQ0LAkleG1tMCwJJXhtbTAJIyAxID0gaQor
CWFuZAl2OS4xNmIsICB2OC4xNmIsIHYxNy4xNmIKKwl1c2hyCXY4LjE2YiwgIHY4LjE2YiwgIzQK
Kwl0YmwJdjUuMTZiLCAge3YxOS4xNmJ9LHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMTEs
CSV4bW01CSMgMiA9IGEvaworCXRibAl2MTMuMTZiLCB7djE5LjE2Yn0sdjkuMTZiCisJZW9yCXYx
LjE2YiwgIHYxLjE2YiwgIHYwLjE2YgkvLyB2cHhvcgkleG1tMCwJJXhtbTEsCSV4bW0xCSMgMCA9
IGoKKwllb3IJdjkuMTZiLCAgdjkuMTZiLCAgdjguMTZiCisJdGJsCXYzLjE2YiwgIHt2MTguMTZi
fSx2MC4xNmIJLy8gdnBzaHVmYgkleG1tMCwgCSV4bW0xMCwJJXhtbTMgIAkjIDMgPSAxL2kKKwl0
YmwJdjExLjE2Yiwge3YxOC4xNmJ9LHY4LjE2YgorCXRibAl2NC4xNmIsICB7djE4LjE2Yn0sdjEu
MTZiCS8vIHZwc2h1ZmIJJXhtbTEsIAkleG1tMTAsCSV4bW00ICAJIyA0ID0gMS9qCisJdGJsCXYx
Mi4xNmIsIHt2MTguMTZifSx2OS4xNmIKKwllb3IJdjMuMTZiLCAgdjMuMTZiLCAgdjUuMTZiCS8v
IHZweG9yCSV4bW01LAkleG1tMywJJXhtbTMJIyAzID0gaWFrID0gMS9pICsgYS9rCisJZW9yCXYx
MS4xNmIsIHYxMS4xNmIsIHYxMy4xNmIKKwllb3IJdjQuMTZiLCAgdjQuMTZiLCAgdjUuMTZiCS8v
IHZweG9yCSV4bW01LAkleG1tNCwJJXhtbTQgIAkjIDQgPSBqYWsgPSAxL2ogKyBhL2sKKwllb3IJ
djEyLjE2YiwgdjEyLjE2YiwgdjEzLjE2YgorCXRibAl2Mi4xNmIsICB7djE4LjE2Yn0sdjMuMTZi
CS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xMCwJJXhtbTIgIAkjIDIgPSAxL2lhaworCXRibAl2MTAu
MTZiLCB7djE4LjE2Yn0sdjExLjE2YgorCXRibAl2My4xNmIsICB7djE4LjE2Yn0sdjQuMTZiCS8v
IHZwc2h1ZmIJJXhtbTQsCSV4bW0xMCwJJXhtbTMJIyAzID0gMS9qYWsKKwl0YmwJdjExLjE2Yiwg
e3YxOC4xNmJ9LHYxMi4xNmIKKwllb3IJdjIuMTZiLCAgdjIuMTZiLCAgdjEuMTZiCS8vIHZweG9y
CSV4bW0xLAkleG1tMiwJJXhtbTIgIAkjIDIgPSBpbworCWVvcgl2MTAuMTZiLCB2MTAuMTZiLCB2
OS4xNmIKKwllb3IJdjMuMTZiLCAgdjMuMTZiLCAgdjAuMTZiCS8vIHZweG9yCSV4bW0wLAkleG1t
MywJJXhtbTMJIyAzID0gam8KKwllb3IJdjExLjE2YiwgdjExLjE2YiwgdjguMTZiCisJbGQxCXt2
MTYuMmR9LCBbeDldLCMxNgkJLy8gdm1vdmRxdQkoJXI5KSwJJXhtbTUKKwljYm56CXc4LCBMZW5j
XzJ4X2xvb3AKKworCS8vIG1pZGRsZSBvZiBsYXN0IHJvdW5kCisJYWRkCXgxMCwgeDExLCAjMHg4
MAorCQkJCQkJLy8gdm1vdmRxYQktMHg2MCglcjEwKSwgJXhtbTQJIyAzIDogc2JvdQkuTGtfc2Jv
CisJCQkJCQkvLyB2bW92ZHFhCS0weDUwKCVyMTApLCAleG1tMAkjIDAgOiBzYm90CS5Ma19zYm8r
MTYKKwl0YmwJdjQuMTZiLCAge3YyMi4xNmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJJXht
bTQsCSV4bW00CSMgNCA9IHNib3UKKwl0YmwJdjEyLjE2Yiwge3YyMi4xNmJ9LCB2MTAuMTZiCisJ
bGQxCXt2MS4yZH0sIFt4MTBdCQkJLy8gdm1vdmRxYQkweDQwKCVyMTEsJXIxMCksICV4bW0xCSMg
TGtfc3JbXQorCXRibAl2MC4xNmIsICB7djIzLjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0z
LAkleG1tMCwJJXhtbTAJIyAwID0gc2IxdAorCXRibAl2OC4xNmIsICB7djIzLjE2Yn0sIHYxMS4x
NmIKKwllb3IJdjQuMTZiLCAgdjQuMTZiLCAgdjE2LjE2YgkvLyB2cHhvcgkleG1tNSwJJXhtbTQs
CSV4bW00CSMgNCA9IHNiMXUgKyBrCisJZW9yCXYxMi4xNmIsIHYxMi4xNmIsIHYxNi4xNmIKKwll
b3IJdjAuMTZiLCAgdjAuMTZiLCAgdjQuMTZiCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJ
IyAwID0gQQorCWVvcgl2OC4xNmIsICB2OC4xNmIsICB2MTIuMTZiCisJdGJsCXYwLjE2YiwgIHt2
MC4xNmJ9LHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMCwJJXhtbTAKKwl0YmwJdjEuMTZi
LCAge3Y4LjE2Yn0sdjEuMTZiCisJcmV0CisKKworCisuYWxpZ24JNAorX3ZwYWVzX2RlY3J5cHRf
cHJlaGVhdDoKKwlhZHJwCXgxMCwgTGtfaW52QFBBR0UKKwlhZGQJeDEwLCB4MTAsIExrX2ludkBQ
QUdFT0ZGCisJbW92aQl2MTcuMTZiLCAjMHgwZgorCWFkcnAJeDExLCBMa19kaXB0QFBBR0UKKwlh
ZGQJeDExLCB4MTEsIExrX2RpcHRAUEFHRU9GRgorCWxkMQl7djE4LjJkLHYxOS4yZH0sIFt4MTBd
LCMzMgkvLyBMa19pbnYKKwlsZDEJe3YyMC4yZCx2MjEuMmQsdjIyLjJkLHYyMy4yZH0sIFt4MTFd
LCM2NAkvLyBMa19kaXB0LCBMa19kc2JvCisJbGQxCXt2MjQuMmQsdjI1LjJkLHYyNi4yZCx2Mjcu
MmR9LCBbeDExXSwjNjQJLy8gTGtfZHNiOSwgTGtfZHNiZAorCWxkMQl7djI4LjJkLHYyOS4yZCx2
MzAuMmQsdjMxLjJkfSwgW3gxMV0JCS8vIExrX2RzYmIsIExrX2RzYmUKKwlyZXQKKworCisjIwor
IyMgIERlY3J5cHRpb24gY29yZQorIyMKKyMjICBTYW1lIEFQSSBhcyBlbmNyeXB0aW9uIGNvcmUu
CisjIworCisuYWxpZ24JNAorX3ZwYWVzX2RlY3J5cHRfY29yZToKKwltb3YJeDksIHgyCisJbGRy
CXc4LCBbeDIsIzI0MF0JCQkvLyBwdWxsIHJvdW5kcworCisJCQkJCQkvLyB2bW92ZHFhCS5Ma19k
aXB0KCVyaXApLCAleG1tMgkjIGlwdGxvCisJbHNsCXgxMSwgeDgsICM0CQkJLy8gbW92CSVyYXgs
CSVyMTE7CXNobAkkNCwgJXIxMQorCWVvcgl4MTEsIHgxMSwgIzB4MzAJCQkvLyB4b3IJCSQweDMw
LAklcjExCisJYWRycAl4MTAsIExrX3NyQFBBR0UKKwlhZGQJeDEwLCB4MTAsIExrX3NyQFBBR0VP
RkYKKwlhbmQJeDExLCB4MTEsICMweDMwCQkJLy8gYW5kCQkkMHgzMCwJJXIxMQorCWFkZAl4MTEs
IHgxMSwgeDEwCisJYWRycAl4MTAsIExrX21jX2ZvcndhcmRAUEFHRSs0OAorCWFkZAl4MTAsIHgx
MCwgTGtfbWNfZm9yd2FyZEBQQUdFT0ZGKzQ4CisKKwlsZDEJe3YxNi4yZH0sIFt4OV0sIzE2CQkv
LyB2bW92ZHF1CSglcjkpLAkleG1tNAkJIyByb3VuZDAga2V5CisJYW5kCXYxLjE2YiwgdjcuMTZi
LCB2MTcuMTZiCQkvLyB2cGFuZAkleG1tOSwJJXhtbTAsCSV4bW0xCisJdXNocgl2MC4xNmIsIHY3
LjE2YiwgIzQJCS8vIHZwc3JsYgkkNCwJJXhtbTAsCSV4bW0wCisJdGJsCXYyLjE2Yiwge3YyMC4x
NmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTIsCSV4bW0yCisJbGQxCXt2NS4yZH0s
IFt4MTBdCQkJLy8gdm1vdmRxYQlMa19tY19mb3J3YXJkKzQ4KCVyaXApLCAleG1tNQorCQkJCQkJ
Ly8gdm1vdmRxYQkuTGtfZGlwdCsxNiglcmlwKSwgJXhtbTEgIyBpcHRoaQorCXRibAl2MC4xNmIs
IHt2MjEuMTZifSwgdjAuMTZiCS8vIHZwc2h1ZmIJJXhtbTAsCSV4bW0xLAkleG1tMAorCWVvcgl2
Mi4xNmIsIHYyLjE2YiwgdjE2LjE2YgkJLy8gdnB4b3IJJXhtbTQsCSV4bW0yLAkleG1tMgorCWVv
cgl2MC4xNmIsIHYwLjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkleG1tMiwJJXhtbTAsCSV4bW0wCisJ
YglMZGVjX2VudHJ5CisKKy5hbGlnbgk0CitMZGVjX2xvb3A6CisvLworLy8gIEludmVyc2UgbWl4
IGNvbHVtbnMKKy8vCisJCQkJCQkvLyB2bW92ZHFhCS0weDIwKCVyMTApLCV4bW00CQkjIDQgOiBz
Yjl1CisJCQkJCQkvLyB2bW92ZHFhCS0weDEwKCVyMTApLCV4bW0xCQkjIDAgOiBzYjl0CisJdGJs
CXY0LjE2Yiwge3YyNC4xNmJ9LCB2Mi4xNmIJCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1t
NAkJIyA0ID0gc2I5dQorCXRibAl2MS4xNmIsIHt2MjUuMTZifSwgdjMuMTZiCQkvLyB2cHNodWZi
CSV4bW0zLAkleG1tMSwJJXhtbTEJCSMgMCA9IHNiOXQKKwllb3IJdjAuMTZiLCB2NC4xNmIsIHYx
Ni4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAKKwkJCQkJCS8vIHZtb3ZkcWEJMHgw
MCglcjEwKSwleG1tNAkJIyA0IDogc2JkdQorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjEuMTZiCQkv
LyB2cHhvcgkleG1tMSwJJXhtbTAsCSV4bW0wCQkjIDAgPSBjaAorCQkJCQkJLy8gdm1vdmRxYQkw
eDEwKCVyMTApLCV4bW0xCQkjIDAgOiBzYmR0CisKKwl0YmwJdjQuMTZiLCB7djI2LjE2Yn0sIHYy
LjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CQkjIDQgPSBzYmR1CisJdGJsCXYw
LjE2Yiwge3YwLjE2Yn0sIHY1LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMCwJJXhtbTAJCSMg
TUMgY2gKKwl0YmwJdjEuMTZiLCB7djI3LjE2Yn0sIHYzLjE2YgkJLy8gdnBzaHVmYgkleG1tMywJ
JXhtbTEsCSV4bW0xCQkjIDAgPSBzYmR0CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2NC4xNmIJCS8v
IHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJCSMgNCA9IGNoCisJCQkJCQkvLyB2bW92ZHFhCTB4
MjAoJXIxMCksCSV4bW00CQkjIDQgOiBzYmJ1CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2MS4xNmIJ
CS8vIHZweG9yCSV4bW0xLAkleG1tMCwJJXhtbTAJCSMgMCA9IGNoCisJCQkJCQkvLyB2bW92ZHFh
CTB4MzAoJXIxMCksCSV4bW0xCQkjIDAgOiBzYmJ0CisKKwl0YmwJdjQuMTZiLCB7djI4LjE2Yn0s
IHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CQkjIDQgPSBzYmJ1CisJdGJs
CXYwLjE2Yiwge3YwLjE2Yn0sIHY1LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMCwJJXhtbTAJ
CSMgTUMgY2gKKwl0YmwJdjEuMTZiLCB7djI5LjE2Yn0sIHYzLjE2YgkJLy8gdnBzaHVmYgkleG1t
MywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmJ0CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2NC4xNmIJ
CS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJCSMgNCA9IGNoCisJCQkJCQkvLyB2bW92ZHFh
CTB4NDAoJXIxMCksCSV4bW00CQkjIDQgOiBzYmV1CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2MS4x
NmIJCS8vIHZweG9yCSV4bW0xLAkleG1tMCwJJXhtbTAJCSMgMCA9IGNoCisJCQkJCQkvLyB2bW92
ZHFhCTB4NTAoJXIxMCksCSV4bW0xCQkjIDAgOiBzYmV0CisKKwl0YmwJdjQuMTZiLCB7djMwLjE2
Yn0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CQkjIDQgPSBzYmV1CisJ
dGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHY1LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMCwJJXht
bTAJCSMgTUMgY2gKKwl0YmwJdjEuMTZiLCB7djMxLjE2Yn0sIHYzLjE2YgkJLy8gdnBzaHVmYgkl
eG1tMywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmV0CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2NC4x
NmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJCSMgNCA9IGNoCisJZXh0CXY1LjE2Yiwg
djUuMTZiLCB2NS4xNmIsICMxMgkvLyB2cGFsaWduciAkMTIsCSV4bW01LAkleG1tNSwJJXhtbTUK
Kwllb3IJdjAuMTZiLCB2MC4xNmIsIHYxLjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1t
MAkJIyAwID0gY2gKKwlzdWIJdzgsIHc4LCAjMQkJCS8vIHN1YgkJJDEsJXJheAkJCSMgbnItLQor
CitMZGVjX2VudHJ5OgorCS8vIHRvcCBvZiByb3VuZAorCWFuZAl2MS4xNmIsIHYwLjE2YiwgdjE3
LjE2YgkJLy8gdnBhbmQJJXhtbTksCSV4bW0wLAkleG1tMQkjIDAgPSBrCisJdXNocgl2MC4xNmIs
IHYwLjE2YiwgIzQJCS8vIHZwc3JsYgkkNCwJJXhtbTAsCSV4bW0wCSMgMSA9IGkKKwl0YmwJdjIu
MTZiLCB7djE5LjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMTEsCSV4bW0yCSMg
MiA9IGEvaworCWVvcgl2MS4xNmIsCXYxLjE2YiwgdjAuMTZiCQkvLyB2cHhvcgkleG1tMCwJJXht
bTEsCSV4bW0xCSMgMCA9IGoKKwl0YmwJdjMuMTZiLCB7djE4LjE2Yn0sIHYwLjE2YgkvLyB2cHNo
dWZiCSV4bW0wLCAJJXhtbTEwLAkleG1tMwkjIDMgPSAxL2kKKwl0YmwJdjQuMTZiLCB7djE4LjE2
Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMTAsCSV4bW00CSMgNCA9IDEvagorCWVv
cgl2My4xNmIsIHYzLjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkleG1tMiwJJXhtbTMsCSV4bW0zCSMg
MyA9IGlhayA9IDEvaSArIGEvaworCWVvcgl2NC4xNmIsIHY0LjE2YiwgdjIuMTZiCQkvLyB2cHhv
cgkleG1tMiwgCSV4bW00LAkleG1tNAkjIDQgPSBqYWsgPSAxL2ogKyBhL2sKKwl0YmwJdjIuMTZi
LCB7djE4LjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTAsCSV4bW0yCSMgMiA9
IDEvaWFrCisJdGJsCXYzLjE2Yiwge3YxOC4xNmJ9LCB2NC4xNmIJLy8gdnBzaHVmYgkleG1tNCwg
ICV4bW0xMCwJJXhtbTMJIyAzID0gMS9qYWsKKwllb3IJdjIuMTZiLCB2Mi4xNmIsIHYxLjE2YgkJ
Ly8gdnB4b3IJJXhtbTEsCSV4bW0yLAkleG1tMgkjIDIgPSBpbworCWVvcgl2My4xNmIsIHYzLjE2
YiwgdjAuMTZiCQkvLyB2cHhvcgkleG1tMCwgICV4bW0zLAkleG1tMwkjIDMgPSBqbworCWxkMQl7
djE2LjJkfSwgW3g5XSwjMTYJCS8vIHZtb3ZkcXUJKCVyOSksCSV4bW0wCisJY2Juegl3OCwgTGRl
Y19sb29wCisKKwkvLyBtaWRkbGUgb2YgbGFzdCByb3VuZAorCQkJCQkJLy8gdm1vdmRxYQkweDYw
KCVyMTApLAkleG1tNAkjIDMgOiBzYm91CisJdGJsCXY0LjE2Yiwge3YyMi4xNmJ9LCB2Mi4xNmIJ
CS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkjIDQgPSBzYm91CisJCQkJCQkvLyB2bW92
ZHFhCTB4NzAoJXIxMCksCSV4bW0xCSMgMCA6IHNib3QKKwlsZDEJe3YyLjJkfSwgW3gxMV0JCQkv
LyB2bW92ZHFhCS0weDE2MCglcjExKSwJJXhtbTIJIyBMa19zci1Ma19kc2JkPS0weDE2MAorCXRi
bAl2MS4xNmIsIHt2MjMuMTZifSwgdjMuMTZiCQkvLyB2cHNodWZiCSV4bW0zLAkleG1tMSwJJXht
bTEJIyAwID0gc2IxdAorCWVvcgl2NC4xNmIsIHY0LjE2YiwgdjE2LjE2YgkJLy8gdnB4b3IJJXht
bTAsCSV4bW00LAkleG1tNAkjIDQgPSBzYjF1ICsgaworCWVvcgl2MC4xNmIsIHYxLjE2YiwgdjQu
MTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTEsCSV4bW0wCSMgMCA9IEEKKwl0YmwJdjAuMTZiLCB7
djAuMTZifSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW0wLAkleG1tMAorCXJldAorCisK
Ky5nbG9ibAlfdnBhZXNfZGVjcnlwdAorLnByaXZhdGVfZXh0ZXJuCV92cGFlc19kZWNyeXB0CisK
Ky5hbGlnbgk0CitfdnBhZXNfZGVjcnlwdDoKKwlzdHAJeDI5LHgzMCxbc3AsIy0xNl0hCisJYWRk
CXgyOSxzcCwjMAorCisJbGQxCXt2Ny4xNmJ9LCBbeDBdCisJYmwJX3ZwYWVzX2RlY3J5cHRfcHJl
aGVhdAorCWJsCV92cGFlc19kZWNyeXB0X2NvcmUKKwlzdDEJe3YwLjE2Yn0sIFt4MV0KKworCWxk
cAl4MjkseDMwLFtzcF0sIzE2CisJcmV0CisKKworLy8gdjE0LXYxNSBpbnB1dCwgdjAtdjEgb3V0
cHV0CisKKy5hbGlnbgk0CitfdnBhZXNfZGVjcnlwdF8yeDoKKwltb3YJeDksIHgyCisJbGRyCXc4
LCBbeDIsIzI0MF0JCQkvLyBwdWxsIHJvdW5kcworCisJCQkJCQkvLyB2bW92ZHFhCS5Ma19kaXB0
KCVyaXApLCAleG1tMgkjIGlwdGxvCisJbHNsCXgxMSwgeDgsICM0CQkJLy8gbW92CSVyYXgsCSVy
MTE7CXNobAkkNCwgJXIxMQorCWVvcgl4MTEsIHgxMSwgIzB4MzAJCQkvLyB4b3IJCSQweDMwLAkl
cjExCisJYWRycAl4MTAsIExrX3NyQFBBR0UKKwlhZGQJeDEwLCB4MTAsIExrX3NyQFBBR0VPRkYK
KwlhbmQJeDExLCB4MTEsICMweDMwCQkJLy8gYW5kCQkkMHgzMCwJJXIxMQorCWFkZAl4MTEsIHgx
MSwgeDEwCisJYWRycAl4MTAsIExrX21jX2ZvcndhcmRAUEFHRSs0OAorCWFkZAl4MTAsIHgxMCwg
TGtfbWNfZm9yd2FyZEBQQUdFT0ZGKzQ4CisKKwlsZDEJe3YxNi4yZH0sIFt4OV0sIzE2CQkvLyB2
bW92ZHF1CSglcjkpLAkleG1tNAkJIyByb3VuZDAga2V5CisJYW5kCXYxLjE2YiwgIHYxNC4xNmIs
IHYxNy4xNmIJLy8gdnBhbmQJJXhtbTksCSV4bW0wLAkleG1tMQorCXVzaHIJdjAuMTZiLCAgdjE0
LjE2YiwgIzQJCS8vIHZwc3JsYgkkNCwJJXhtbTAsCSV4bW0wCisJYW5kCXY5LjE2YiwgIHYxNS4x
NmIsIHYxNy4xNmIKKwl1c2hyCXY4LjE2YiwgIHYxNS4xNmIsICM0CisJdGJsCXYyLjE2YiwgIHt2
MjAuMTZifSx2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTIsCSV4bW0yCisJdGJsCXYxMC4x
NmIsIHt2MjAuMTZifSx2OS4xNmIKKwlsZDEJe3Y1LjJkfSwgW3gxMF0JCQkvLyB2bW92ZHFhCUxr
X21jX2ZvcndhcmQrNDgoJXJpcCksICV4bW01CisJCQkJCQkvLyB2bW92ZHFhCS5Ma19kaXB0KzE2
KCVyaXApLCAleG1tMSAjIGlwdGhpCisJdGJsCXYwLjE2YiwgIHt2MjEuMTZifSx2MC4xNmIJLy8g
dnBzaHVmYgkleG1tMCwJJXhtbTEsCSV4bW0wCisJdGJsCXY4LjE2YiwgIHt2MjEuMTZifSx2OC4x
NmIKKwllb3IJdjIuMTZiLCAgdjIuMTZiLCAgdjE2LjE2YgkvLyB2cHhvcgkleG1tNCwJJXhtbTIs
CSV4bW0yCisJZW9yCXYxMC4xNmIsIHYxMC4xNmIsIHYxNi4xNmIKKwllb3IJdjAuMTZiLCAgdjAu
MTZiLCAgdjIuMTZiCS8vIHZweG9yCSV4bW0yLAkleG1tMCwJJXhtbTAKKwllb3IJdjguMTZiLCAg
djguMTZiLCAgdjEwLjE2YgorCWIJTGRlY18yeF9lbnRyeQorCisuYWxpZ24JNAorTGRlY18yeF9s
b29wOgorLy8KKy8vICBJbnZlcnNlIG1peCBjb2x1bW5zCisvLworCQkJCQkJLy8gdm1vdmRxYQkt
MHgyMCglcjEwKSwleG1tNAkJIyA0IDogc2I5dQorCQkJCQkJLy8gdm1vdmRxYQktMHgxMCglcjEw
KSwleG1tMQkJIyAwIDogc2I5dAorCXRibAl2NC4xNmIsICB7djI0LjE2Yn0sIHYyLjE2YgkvLyB2
cHNodWZiCSV4bW0yLAkleG1tNCwJJXhtbTQJCSMgNCA9IHNiOXUKKwl0YmwJdjEyLjE2Yiwge3Yy
NC4xNmJ9LCB2MTAuMTZiCisJdGJsCXYxLjE2YiwgIHt2MjUuMTZifSwgdjMuMTZiCS8vIHZwc2h1
ZmIJJXhtbTMsCSV4bW0xLAkleG1tMQkJIyAwID0gc2I5dAorCXRibAl2OS4xNmIsICB7djI1LjE2
Yn0sIHYxMS4xNmIKKwllb3IJdjAuMTZiLCAgdjQuMTZiLCAgdjE2LjE2YgkvLyB2cHhvcgkleG1t
NCwJJXhtbTAsCSV4bW0wCisJZW9yCXY4LjE2YiwgIHYxMi4xNmIsIHYxNi4xNmIKKwkJCQkJCS8v
IHZtb3ZkcWEJMHgwMCglcjEwKSwleG1tNAkJIyA0IDogc2JkdQorCWVvcgl2MC4xNmIsICB2MC4x
NmIsICB2MS4xNmIJLy8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyAwID0gY2gKKwllb3IJ
djguMTZiLCAgdjguMTZiLCAgdjkuMTZiCS8vIHZweG9yCSV4bW0xLAkleG1tMCwJJXhtbTAJCSMg
MCA9IGNoCisJCQkJCQkvLyB2bW92ZHFhCTB4MTAoJXIxMCksJXhtbTEJCSMgMCA6IHNiZHQKKwor
CXRibAl2NC4xNmIsICB7djI2LjE2Yn0sIHYyLjE2YgkvLyB2cHNodWZiCSV4bW0yLAkleG1tNCwJ
JXhtbTQJCSMgNCA9IHNiZHUKKwl0YmwJdjEyLjE2Yiwge3YyNi4xNmJ9LCB2MTAuMTZiCisJdGJs
CXYwLjE2YiwgIHt2MC4xNmJ9LHY1LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMCwJJXhtbTAJ
CSMgTUMgY2gKKwl0YmwJdjguMTZiLCAge3Y4LjE2Yn0sdjUuMTZiCisJdGJsCXYxLjE2YiwgIHt2
MjcuMTZifSwgdjMuMTZiCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xLAkleG1tMQkJIyAwID0gc2Jk
dAorCXRibAl2OS4xNmIsICB7djI3LjE2Yn0sIHYxMS4xNmIKKwllb3IJdjAuMTZiLCAgdjAuMTZi
LCAgdjQuMTZiCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJCSMgNCA9IGNoCisJZW9yCXY4
LjE2YiwgIHY4LjE2YiwgIHYxMi4xNmIKKwkJCQkJCS8vIHZtb3ZkcWEJMHgyMCglcjEwKSwJJXht
bTQJCSMgNCA6IHNiYnUKKwllb3IJdjAuMTZiLCAgdjAuMTZiLCAgdjEuMTZiCS8vIHZweG9yCSV4
bW0xLAkleG1tMCwJJXhtbTAJCSMgMCA9IGNoCisJZW9yCXY4LjE2YiwgIHY4LjE2YiwgIHY5LjE2
YgorCQkJCQkJLy8gdm1vdmRxYQkweDMwKCVyMTApLAkleG1tMQkJIyAwIDogc2JidAorCisJdGJs
CXY0LjE2YiwgIHt2MjguMTZifSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1t
NAkJIyA0ID0gc2JidQorCXRibAl2MTIuMTZiLCB7djI4LjE2Yn0sIHYxMC4xNmIKKwl0YmwJdjAu
MTZiLCAge3YwLjE2Yn0sdjUuMTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4bW0wLAkleG1tMAkJIyBN
QyBjaAorCXRibAl2OC4xNmIsICB7djguMTZifSx2NS4xNmIKKwl0YmwJdjEuMTZiLCAge3YyOS4x
NmJ9LCB2My4xNmIJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmJ0CisJ
dGJsCXY5LjE2YiwgIHt2MjkuMTZifSwgdjExLjE2YgorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2
NC4xNmIJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkJIyA0ID0gY2gKKwllb3IJdjguMTZi
LCAgdjguMTZiLCAgdjEyLjE2YgorCQkJCQkJLy8gdm1vdmRxYQkweDQwKCVyMTApLAkleG1tNAkJ
IyA0IDogc2JldQorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2MS4xNmIJLy8gdnB4b3IJJXhtbTEs
CSV4bW0wLAkleG1tMAkJIyAwID0gY2gKKwllb3IJdjguMTZiLCAgdjguMTZiLCAgdjkuMTZiCisJ
CQkJCQkvLyB2bW92ZHFhCTB4NTAoJXIxMCksCSV4bW0xCQkjIDAgOiBzYmV0CisKKwl0YmwJdjQu
MTZiLCAge3YzMC4xNmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CQkj
IDQgPSBzYmV1CisJdGJsCXYxMi4xNmIsIHt2MzAuMTZifSwgdjEwLjE2YgorCXRibAl2MC4xNmIs
ICB7djAuMTZifSx2NS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTAsCSV4bW0wCQkjIE1DIGNo
CisJdGJsCXY4LjE2YiwgIHt2OC4xNmJ9LHY1LjE2YgorCXRibAl2MS4xNmIsICB7djMxLjE2Yn0s
IHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMSwJJXhtbTEJCSMgMCA9IHNiZXQKKwl0YmwJ
djkuMTZiLCAge3YzMS4xNmJ9LCB2MTEuMTZiCisJZW9yCXYwLjE2YiwgIHYwLjE2YiwgIHY0LjE2
YgkvLyB2cHhvcgkleG1tNCwJJXhtbTAsCSV4bW0wCQkjIDQgPSBjaAorCWVvcgl2OC4xNmIsICB2
OC4xNmIsICB2MTIuMTZiCisJZXh0CXY1LjE2YiwgIHY1LjE2YiwgIHY1LjE2YiwgIzEyCS8vIHZw
YWxpZ25yICQxMiwJJXhtbTUsCSV4bW01LAkleG1tNQorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2
MS4xNmIJLy8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyAwID0gY2gKKwllb3IJdjguMTZi
LCAgdjguMTZiLCAgdjkuMTZiCisJc3ViCXc4LCB3OCwgIzEJCQkvLyBzdWIJCSQxLCVyYXgJCQkj
IG5yLS0KKworTGRlY18yeF9lbnRyeToKKwkvLyB0b3Agb2Ygcm91bmQKKwlhbmQJdjEuMTZiLCAg
djAuMTZiLCAgdjE3LjE2YgkvLyB2cGFuZAkleG1tOSwJJXhtbTAsCSV4bW0xCSMgMCA9IGsKKwl1
c2hyCXYwLjE2YiwgIHYwLjE2YiwgICM0CQkvLyB2cHNybGIJJDQsCSV4bW0wLAkleG1tMAkjIDEg
PSBpCisJYW5kCXY5LjE2YiwgIHY4LjE2YiwgIHYxNy4xNmIKKwl1c2hyCXY4LjE2YiwgIHY4LjE2
YiwgICM0CisJdGJsCXYyLjE2YiwgIHt2MTkuMTZifSx2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJ
JXhtbTExLAkleG1tMgkjIDIgPSBhL2sKKwl0YmwJdjEwLjE2Yiwge3YxOS4xNmJ9LHY5LjE2Ygor
CWVvcgl2MS4xNmIsCSB2MS4xNmIsICB2MC4xNmIJLy8gdnB4b3IJJXhtbTAsCSV4bW0xLAkleG1t
MQkjIDAgPSBqCisJZW9yCXY5LjE2YiwJIHY5LjE2YiwgIHY4LjE2YgorCXRibAl2My4xNmIsICB7
djE4LjE2Yn0sdjAuMTZiCS8vIHZwc2h1ZmIJJXhtbTAsIAkleG1tMTAsCSV4bW0zCSMgMyA9IDEv
aQorCXRibAl2MTEuMTZiLCB7djE4LjE2Yn0sdjguMTZiCisJdGJsCXY0LjE2YiwgIHt2MTguMTZi
fSx2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTEwLAkleG1tNAkjIDQgPSAxL2oKKwl0YmwJ
djEyLjE2Yiwge3YxOC4xNmJ9LHY5LjE2YgorCWVvcgl2My4xNmIsICB2My4xNmIsICB2Mi4xNmIJ
Ly8gdnB4b3IJJXhtbTIsCSV4bW0zLAkleG1tMwkjIDMgPSBpYWsgPSAxL2kgKyBhL2sKKwllb3IJ
djExLjE2YiwgdjExLjE2YiwgdjEwLjE2YgorCWVvcgl2NC4xNmIsICB2NC4xNmIsICB2Mi4xNmIJ
Ly8gdnB4b3IJJXhtbTIsIAkleG1tNCwJJXhtbTQJIyA0ID0gamFrID0gMS9qICsgYS9rCisJZW9y
CXYxMi4xNmIsIHYxMi4xNmIsIHYxMC4xNmIKKwl0YmwJdjIuMTZiLCAge3YxOC4xNmJ9LHYzLjE2
YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTAsCSV4bW0yCSMgMiA9IDEvaWFrCisJdGJsCXYxMC4x
NmIsIHt2MTguMTZifSx2MTEuMTZiCisJdGJsCXYzLjE2YiwgIHt2MTguMTZifSx2NC4xNmIJLy8g
dnBzaHVmYgkleG1tNCwgICV4bW0xMCwJJXhtbTMJIyAzID0gMS9qYWsKKwl0YmwJdjExLjE2Yiwg
e3YxOC4xNmJ9LHYxMi4xNmIKKwllb3IJdjIuMTZiLCAgdjIuMTZiLCAgdjEuMTZiCS8vIHZweG9y
CSV4bW0xLAkleG1tMiwJJXhtbTIJIyAyID0gaW8KKwllb3IJdjEwLjE2YiwgdjEwLjE2Yiwgdjku
MTZiCisJZW9yCXYzLjE2YiwgIHYzLjE2YiwgIHYwLjE2YgkvLyB2cHhvcgkleG1tMCwgICV4bW0z
LAkleG1tMwkjIDMgPSBqbworCWVvcgl2MTEuMTZiLCB2MTEuMTZiLCB2OC4xNmIKKwlsZDEJe3Yx
Ni4yZH0sIFt4OV0sIzE2CQkvLyB2bW92ZHF1CSglcjkpLAkleG1tMAorCWNibnoJdzgsIExkZWNf
MnhfbG9vcAorCisJLy8gbWlkZGxlIG9mIGxhc3Qgcm91bmQKKwkJCQkJCS8vIHZtb3ZkcWEJMHg2
MCglcjEwKSwJJXhtbTQJIyAzIDogc2JvdQorCXRibAl2NC4xNmIsICB7djIyLjE2Yn0sIHYyLjE2
YgkvLyB2cHNodWZiCSV4bW0yLAkleG1tNCwJJXhtbTQJIyA0ID0gc2JvdQorCXRibAl2MTIuMTZi
LCB7djIyLjE2Yn0sIHYxMC4xNmIKKwkJCQkJCS8vIHZtb3ZkcWEJMHg3MCglcjEwKSwJJXhtbTEJ
IyAwIDogc2JvdAorCXRibAl2MS4xNmIsICB7djIzLjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4
bW0zLAkleG1tMSwJJXhtbTEJIyAwID0gc2IxdAorCXRibAl2OS4xNmIsICB7djIzLjE2Yn0sIHYx
MS4xNmIKKwlsZDEJe3YyLjJkfSwgW3gxMV0JCQkvLyB2bW92ZHFhCS0weDE2MCglcjExKSwJJXht
bTIJIyBMa19zci1Ma19kc2JkPS0weDE2MAorCWVvcgl2NC4xNmIsICB2NC4xNmIsICB2MTYuMTZi
CS8vIHZweG9yCSV4bW0wLAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwllb3IJdjEyLjE2
YiwgdjEyLjE2YiwgdjE2LjE2YgorCWVvcgl2MC4xNmIsICB2MS4xNmIsICB2NC4xNmIJLy8gdnB4
b3IJJXhtbTQsCSV4bW0xLAkleG1tMAkjIDAgPSBBCisJZW9yCXY4LjE2YiwgIHY5LjE2YiwgIHYx
Mi4xNmIKKwl0YmwJdjAuMTZiLCAge3YwLjE2Yn0sdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4
bW0wLAkleG1tMAorCXRibAl2MS4xNmIsICB7djguMTZifSx2Mi4xNmIKKwlyZXQKKworIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjCisjIyAg
ICAgICAgICAgICAgICAgIEFFUyBrZXkgc2NoZWR1bGUgICAgICAgICAgICAgICAgICAjIworIyMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKKyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK
Ky5hbGlnbgk0CitfdnBhZXNfa2V5X3ByZWhlYXQ6CisJYWRycAl4MTAsIExrX2ludkBQQUdFCisJ
YWRkCXgxMCwgeDEwLCBMa19pbnZAUEFHRU9GRgorCW1vdmkJdjE2LjE2YiwgIzB4NWIJCQkvLyBM
a19zNjMKKwlhZHJwCXgxMSwgTGtfc2IxQFBBR0UKKwlhZGQJeDExLCB4MTEsIExrX3NiMUBQQUdF
T0ZGCisJbW92aQl2MTcuMTZiLCAjMHgwZgkJCS8vIExrX3MwRgorCWxkMQl7djE4LjJkLHYxOS4y
ZCx2MjAuMmQsdjIxLjJkfSwgW3gxMF0JCS8vIExrX2ludiwgTGtfaXB0CisJYWRycAl4MTAsIExr
X2Rrc2RAUEFHRQorCWFkZAl4MTAsIHgxMCwgTGtfZGtzZEBQQUdFT0ZGCisJbGQxCXt2MjIuMmQs
djIzLjJkfSwgW3gxMV0JCS8vIExrX3NiMQorCWFkcnAJeDExLCBMa19tY19mb3J3YXJkQFBBR0UK
KwlhZGQJeDExLCB4MTEsIExrX21jX2ZvcndhcmRAUEFHRU9GRgorCWxkMQl7djI0LjJkLHYyNS4y
ZCx2MjYuMmQsdjI3LjJkfSwgW3gxMF0sIzY0CS8vIExrX2Rrc2QsIExrX2Rrc2IKKwlsZDEJe3Yy
OC4yZCx2MjkuMmQsdjMwLjJkLHYzMS4yZH0sIFt4MTBdLCM2NAkvLyBMa19ka3NlLCBMa19ka3M5
CisJbGQxCXt2OC4yZH0sIFt4MTBdCQkJLy8gTGtfcmNvbgorCWxkMQl7djkuMmR9LCBbeDExXQkJ
CS8vIExrX21jX2ZvcndhcmRbMF0KKwlyZXQKKworCisKKy5hbGlnbgk0CitfdnBhZXNfc2NoZWR1
bGVfY29yZToKKwlzdHAJeDI5LCB4MzAsIFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNwLCMwCisKKwli
bAlfdnBhZXNfa2V5X3ByZWhlYXQJCS8vIGxvYWQgdGhlIHRhYmxlcworCisJbGQxCXt2MC4xNmJ9
LCBbeDBdLCMxNgkJLy8gdm1vdmRxdQkoJXJkaSksCSV4bW0wCQkjIGxvYWQga2V5ICh1bmFsaWdu
ZWQpCisKKwkvLyBpbnB1dCB0cmFuc2Zvcm0KKwltb3YJdjMuMTZiLCB2MC4xNmIJCQkvLyB2bW92
ZHFhCSV4bW0wLAkleG1tMworCWJsCV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0KKwltb3YJdjcu
MTZiLCB2MC4xNmIJCQkvLyB2bW92ZHFhCSV4bW0wLAkleG1tNworCisJYWRycAl4MTAsIExrX3Ny
QFBBR0UJCS8vIGxlYQlMa19zciglcmlwKSwlcjEwCisJYWRkCXgxMCwgeDEwLCBMa19zckBQQUdF
T0ZGCisKKwlhZGQJeDgsIHg4LCB4MTAKKwljYm56CXczLCBMc2NoZWR1bGVfYW1fZGVjcnlwdGlu
ZworCisJLy8gZW5jcnlwdGluZywgb3V0cHV0IHplcm90aCByb3VuZCBrZXkgYWZ0ZXIgdHJhbnNm
b3JtCisJc3QxCXt2MC4yZH0sIFt4Ml0JCQkvLyB2bW92ZHF1CSV4bW0wLAkoJXJkeCkKKwliCUxz
Y2hlZHVsZV9nbworCitMc2NoZWR1bGVfYW1fZGVjcnlwdGluZzoKKwkvLyBkZWNyeXB0aW5nLCBv
dXRwdXQgemVyb3RoIHJvdW5kIGtleSBhZnRlciBzaGlmdHJvd3MKKwlsZDEJe3YxLjJkfSwgW3g4
XQkJCS8vIHZtb3ZkcWEJKCVyOCwlcjEwKSwJJXhtbTEKKwl0YmwJdjMuMTZiLCB7djMuMTZifSwg
djEuMTZiCS8vIHZwc2h1ZmIgICV4bW0xLAkleG1tMywJJXhtbTMKKwlzdDEJe3YzLjJkfSwgW3gy
XQkJCS8vIHZtb3ZkcXUJJXhtbTMsCSglcmR4KQorCWVvcgl4OCwgeDgsICMweDMwCQkJLy8geG9y
CSQweDMwLCAlcjgKKworTHNjaGVkdWxlX2dvOgorCWNtcAl3MSwgIzE5MgkJCS8vIGNtcAkkMTky
LAklZXNpCisJYi5oaQlMc2NoZWR1bGVfMjU2CisJYi5lcQlMc2NoZWR1bGVfMTkyCisJLy8gMTI4
OiBmYWxsIHRob3VnaAorCisjIworIyMgIC5zY2hlZHVsZV8xMjgKKyMjCisjIyAgMTI4LWJpdCBz
cGVjaWZpYyBwYXJ0IG9mIGtleSBzY2hlZHVsZS4KKyMjCisjIyAgVGhpcyBzY2hlZHVsZSBpcyBy
ZWFsbHkgc2ltcGxlLCBiZWNhdXNlIGFsbCBpdHMgcGFydHMKKyMjICBhcmUgYWNjb21wbGlzaGVk
IGJ5IHRoZSBzdWJyb3V0aW5lcy4KKyMjCitMc2NoZWR1bGVfMTI4OgorCW1vdgl4MCwgIzEwCQkJ
Ly8gbW92CSQxMCwgJWVzaQorCitMb29wX3NjaGVkdWxlXzEyODoKKwlzdWIJeDAsIHgwLCAjMQkJ
CS8vIGRlYwklZXNpCisJYmwJX3ZwYWVzX3NjaGVkdWxlX3JvdW5kCisJY2J6CXgwLCBMc2NoZWR1
bGVfbWFuZ2xlX2xhc3QKKwlibAlfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlCQkvLyB3cml0ZSBvdXRw
dXQKKwliCUxvb3Bfc2NoZWR1bGVfMTI4CisKKyMjCisjIyAgLmFlc19zY2hlZHVsZV8xOTIKKyMj
CisjIyAgMTkyLWJpdCBzcGVjaWZpYyBwYXJ0IG9mIGtleSBzY2hlZHVsZS4KKyMjCisjIyAgVGhl
IG1haW4gYm9keSBvZiB0aGlzIHNjaGVkdWxlIGlzIHRoZSBzYW1lIGFzIHRoZSAxMjgtYml0Cisj
IyAgc2NoZWR1bGUsIGJ1dCB3aXRoIG1vcmUgc21lYXJpbmcuICBUaGUgbG9uZywgaGlnaCBzaWRl
IGlzCisjIyAgc3RvcmVkIGluICV4bW03IGFzIGJlZm9yZSwgYW5kIHRoZSBzaG9ydCwgbG93IHNp
ZGUgaXMgaW4KKyMjICB0aGUgaGlnaCBiaXRzIG9mICV4bW02LgorIyMKKyMjICBUaGlzIHNjaGVk
dWxlIGlzIHNvbWV3aGF0IG5hc3RpZXIsIGhvd2V2ZXIsIGJlY2F1c2UgZWFjaAorIyMgIHJvdW5k
IHByb2R1Y2VzIDE5MiBiaXRzIG9mIGtleSBtYXRlcmlhbCwgb3IgMS41IHJvdW5kIGtleXMuCisj
IyAgVGhlcmVmb3JlLCBvbiBlYWNoIGN5Y2xlIHdlIGRvIDIgcm91bmRzIGFuZCBwcm9kdWNlIDMg
cm91bmQKKyMjICBrZXlzLgorIyMKKy5hbGlnbgk0CitMc2NoZWR1bGVfMTkyOgorCXN1Ygl4MCwg
eDAsICM4CisJbGQxCXt2MC4xNmJ9LCBbeDBdCQkvLyB2bW92ZHF1CTgoJXJkaSksJXhtbTAJCSMg
bG9hZCBrZXkgcGFydCAyICh2ZXJ5IHVuYWxpZ25lZCkKKwlibAlfdnBhZXNfc2NoZWR1bGVfdHJh
bnNmb3JtCS8vIGlucHV0IHRyYW5zZm9ybQorCW1vdgl2Ni4xNmIsIHYwLjE2YgkJCS8vIHZtb3Zk
cWEJJXhtbTAsCSV4bW02CQkjIHNhdmUgc2hvcnQgcGFydAorCWVvcgl2NC4xNmIsIHY0LjE2Yiwg
djQuMTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTQsICV4bW00CSMgY2xlYXIgNAorCWlucwl2Ni5k
WzBdLCB2NC5kWzBdCQkvLyB2bW92aGxwcwkleG1tNCwJJXhtbTYsCSV4bW02CQkjIGNsb2JiZXIg
bG93IHNpZGUgd2l0aCB6ZXJvcworCW1vdgl4MCwgIzQJCQkvLyBtb3YJJDQsCSVlc2kKKworTG9v
cF9zY2hlZHVsZV8xOTI6CisJc3ViCXgwLCB4MCwgIzEJCQkvLyBkZWMJJWVzaQorCWJsCV92cGFl
c19zY2hlZHVsZV9yb3VuZAorCWV4dAl2MC4xNmIsIHY2LjE2YiwgdjAuMTZiLCAjOAkvLyB2cGFs
aWducgkkOCwleG1tNiwleG1tMCwleG1tMAorCWJsCV92cGFlc19zY2hlZHVsZV9tYW5nbGUJCS8v
IHNhdmUga2V5IG4KKwlibAlfdnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyCisJYmwJX3ZwYWVzX3Nj
aGVkdWxlX21hbmdsZQkJLy8gc2F2ZSBrZXkgbisxCisJYmwJX3ZwYWVzX3NjaGVkdWxlX3JvdW5k
CisJY2J6CXgwLCBMc2NoZWR1bGVfbWFuZ2xlX2xhc3QKKwlibAlfdnBhZXNfc2NoZWR1bGVfbWFu
Z2xlCQkvLyBzYXZlIGtleSBuKzIKKwlibAlfdnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyCisJYglM
b29wX3NjaGVkdWxlXzE5MgorCisjIworIyMgIC5hZXNfc2NoZWR1bGVfMjU2CisjIworIyMgIDI1
Ni1iaXQgc3BlY2lmaWMgcGFydCBvZiBrZXkgc2NoZWR1bGUuCisjIworIyMgIFRoZSBzdHJ1Y3R1
cmUgaGVyZSBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhlIDEyOC1iaXQKKyMjICBzY2hlZHVsZSwgYnV0
IHdpdGggYW4gYWRkaXRpb25hbCAibG93IHNpZGUiIGluCisjIyAgJXhtbTYuICBUaGUgbG93IHNp
ZGUncyByb3VuZHMgYXJlIHRoZSBzYW1lIGFzIHRoZQorIyMgIGhpZ2ggc2lkZSdzLCBleGNlcHQg
bm8gcmNvbiBhbmQgbm8gcm90YXRpb24uCisjIworLmFsaWduCTQKK0xzY2hlZHVsZV8yNTY6CisJ
bGQxCXt2MC4xNmJ9LCBbeDBdCQkvLyB2bW92ZHF1CTE2KCVyZGkpLCV4bW0wCQkjIGxvYWQga2V5
IHBhcnQgMiAodW5hbGlnbmVkKQorCWJsCV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0JLy8gaW5w
dXQgdHJhbnNmb3JtCisJbW92CXgwLCAjNwkJCS8vIG1vdgkkNywgJWVzaQorCitMb29wX3NjaGVk
dWxlXzI1NjoKKwlzdWIJeDAsIHgwLCAjMQkJCS8vIGRlYwklZXNpCisJYmwJX3ZwYWVzX3NjaGVk
dWxlX21hbmdsZQkJLy8gb3V0cHV0IGxvdyByZXN1bHQKKwltb3YJdjYuMTZiLCB2MC4xNmIJCQkv
LyB2bW92ZHFhCSV4bW0wLAkleG1tNgkJIyBzYXZlIGN1cl9sbyBpbiB4bW02CisKKwkvLyBoaWdo
IHJvdW5kCisJYmwJX3ZwYWVzX3NjaGVkdWxlX3JvdW5kCisJY2J6CXgwLCBMc2NoZWR1bGVfbWFu
Z2xlX2xhc3QKKwlibAlfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlCisKKwkvLyBsb3cgcm91bmQuIHN3
YXAgeG1tNyBhbmQgeG1tNgorCWR1cAl2MC40cywgdjAuc1szXQkJCS8vIHZwc2h1ZmQJJDB4RkYs
CSV4bW0wLAkleG1tMAorCW1vdmkJdjQuMTZiLCAjMAorCW1vdgl2NS4xNmIsIHY3LjE2YgkJCS8v
IHZtb3ZkcWEJJXhtbTcsCSV4bW01CisJbW92CXY3LjE2YiwgdjYuMTZiCQkJLy8gdm1vdmRxYQkl
eG1tNiwJJXhtbTcKKwlibAlfdnBhZXNfc2NoZWR1bGVfbG93X3JvdW5kCisJbW92CXY3LjE2Yiwg
djUuMTZiCQkJLy8gdm1vdmRxYQkleG1tNSwJJXhtbTcKKworCWIJTG9vcF9zY2hlZHVsZV8yNTYK
KworIyMKKyMjICAuYWVzX3NjaGVkdWxlX21hbmdsZV9sYXN0CisjIworIyMgIE1hbmdsZXIgZm9y
IGxhc3Qgcm91bmQgb2Yga2V5IHNjaGVkdWxlCisjIyAgTWFuZ2xlcyAleG1tMAorIyMgICAgd2hl
biBlbmNyeXB0aW5nLCBvdXRwdXRzIG91dCgleG1tMCkgXiA2MworIyMgICAgd2hlbiBkZWNyeXB0
aW5nLCBvdXRwdXRzIHVuc2tldygleG1tMCkKKyMjCisjIyAgQWx3YXlzIGNhbGxlZCByaWdodCBi
ZWZvcmUgcmV0dXJuLi4uIGp1bXBzIHRvIGNsZWFudXAgYW5kIGV4aXRzCisjIworLmFsaWduCTQK
K0xzY2hlZHVsZV9tYW5nbGVfbGFzdDoKKwkvLyBzY2hlZHVsZSBsYXN0IHJvdW5kIGtleSBmcm9t
IHhtbTAKKwlhZHJwCXgxMSwgTGtfZGVza2V3QFBBR0UJLy8gbGVhCUxrX2Rlc2tldyglcmlwKSwl
cjExCSMgcHJlcGFyZSB0byBkZXNrZXcKKwlhZGQJeDExLCB4MTEsIExrX2Rlc2tld0BQQUdFT0ZG
CisKKwljYm56CXczLCBMc2NoZWR1bGVfbWFuZ2xlX2xhc3RfZGVjCisKKwkvLyBlbmNyeXB0aW5n
CisJbGQxCXt2MS4yZH0sIFt4OF0JCQkvLyB2bW92ZHFhCSglcjgsJXIxMCksJXhtbTEKKwlhZHJw
CXgxMSwgTGtfb3B0QFBBR0UJCS8vIGxlYQlMa19vcHQoJXJpcCksCSVyMTEJCSMgcHJlcGFyZSB0
byBvdXRwdXQgdHJhbnNmb3JtCisJYWRkCXgxMSwgeDExLCBMa19vcHRAUEFHRU9GRgorCWFkZAl4
MiwgeDIsICMzMgkJCS8vIGFkZAkkMzIsCSVyZHgKKwl0YmwJdjAuMTZiLCB7djAuMTZifSwgdjEu
MTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyBvdXRwdXQgcGVybXV0ZQorCitM
c2NoZWR1bGVfbWFuZ2xlX2xhc3RfZGVjOgorCWxkMQl7djIwLjJkLHYyMS4yZH0sIFt4MTFdCQkv
LyByZWxvYWQgY29uc3RhbnRzCisJc3ViCXgyLCB4MiwgIzE2CQkJLy8gYWRkCSQtMTYsCSVyZHgK
Kwllb3IJdjAuMTZiLCB2MC4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCUxrX3M2MyglcmlwKSwJJXht
bTAsCSV4bW0wCisJYmwJX3ZwYWVzX3NjaGVkdWxlX3RyYW5zZm9ybQkvLyBvdXRwdXQgdHJhbnNm
b3JtCisJc3QxCXt2MC4yZH0sIFt4Ml0JCQkvLyB2bW92ZHF1CSV4bW0wLAkoJXJkeCkJCSMgc2F2
ZSBsYXN0IGtleQorCisJLy8gY2xlYW51cAorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjAuMTZiCQkv
LyB2cHhvcgkleG1tMCwJJXhtbTAsCSV4bW0wCisJZW9yCXYxLjE2YiwgdjEuMTZiLCB2MS4xNmIJ
CS8vIHZweG9yCSV4bW0xLAkleG1tMSwJJXhtbTEKKwllb3IJdjIuMTZiLCB2Mi4xNmIsIHYyLjE2
YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW0yLAkleG1tMgorCWVvcgl2My4xNmIsIHYzLjE2YiwgdjMu
MTZiCQkvLyB2cHhvcgkleG1tMywJJXhtbTMsCSV4bW0zCisJZW9yCXY0LjE2YiwgdjQuMTZiLCB2
NC4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tNCwJJXhtbTQKKwllb3IJdjUuMTZiLCB2NS4xNmIs
IHY1LjE2YgkJLy8gdnB4b3IJJXhtbTUsCSV4bW01LAkleG1tNQorCWVvcgl2Ni4xNmIsIHY2LjE2
YiwgdjYuMTZiCQkvLyB2cHhvcgkleG1tNiwJJXhtbTYsCSV4bW02CisJZW9yCXY3LjE2Yiwgdjcu
MTZiLCB2Ny4xNmIJCS8vIHZweG9yCSV4bW03LAkleG1tNywJJXhtbTcKKwlsZHAJeDI5LCB4MzAs
IFtzcF0sIzE2CisJcmV0CisKKworIyMKKyMjICAuYWVzX3NjaGVkdWxlXzE5Ml9zbWVhcgorIyMK
KyMjICBTbWVhciB0aGUgc2hvcnQsIGxvdyBzaWRlIGluIHRoZSAxOTItYml0IGtleSBzY2hlZHVs
ZS4KKyMjCisjIyAgSW5wdXRzOgorIyMgICAgJXhtbTc6IGhpZ2ggc2lkZSwgYiAgYSAgeCAgeQor
IyMgICAgJXhtbTY6ICBsb3cgc2lkZSwgZCAgYyAgMCAgMAorIyMgICAgJXhtbTEzOiAwCisjIwor
IyMgIE91dHB1dHM6CisjIyAgICAleG1tNjogYitjK2QgIGIrYyAgMCAgMAorIyMgICAgJXhtbTA6
IGIrYytkICBiK2MgIGIgIGEKKyMjCisKKy5hbGlnbgk0CitfdnBhZXNfc2NoZWR1bGVfMTkyX3Nt
ZWFyOgorCW1vdmkJdjEuMTZiLCAjMAorCWR1cAl2MC40cywgdjcuc1szXQorCWlucwl2MS5zWzNd
LCB2Ni5zWzJdCS8vIHZwc2h1ZmQJJDB4ODAsCSV4bW02LAkleG1tMQkjIGQgYyAwIDAgLT4gYyAw
IDAgMAorCWlucwl2MC5zWzBdLCB2Ny5zWzJdCS8vIHZwc2h1ZmQJJDB4RkUsCSV4bW03LAkleG1t
MAkjIGIgYSBfIF8gLT4gYiBiIGIgYQorCWVvcgl2Ni4xNmIsIHY2LjE2YiwgdjEuMTZiCS8vIHZw
eG9yCSV4bW0xLAkleG1tNiwJJXhtbTYJIyAtPiBjK2QgYyAwIDAKKwllb3IJdjEuMTZiLCB2MS4x
NmIsIHYxLjE2YgkvLyB2cHhvcgkleG1tMSwJJXhtbTEsCSV4bW0xCisJZW9yCXY2LjE2YiwgdjYu
MTZiLCB2MC4xNmIJLy8gdnB4b3IJJXhtbTAsCSV4bW02LAkleG1tNgkjIC0+IGIrYytkIGIrYyBi
IGEKKwltb3YJdjAuMTZiLCB2Ni4xNmIJCS8vIHZtb3ZkcWEJJXhtbTYsCSV4bW0wCisJaW5zCXY2
LmRbMF0sIHYxLmRbMF0JLy8gdm1vdmhscHMJJXhtbTEsCSV4bW02LAkleG1tNgkjIGNsb2JiZXIg
bG93IHNpZGUgd2l0aCB6ZXJvcworCXJldAorCisKKyMjCisjIyAgLmFlc19zY2hlZHVsZV9yb3Vu
ZAorIyMKKyMjICBSdW5zIG9uZSBtYWluIHJvdW5kIG9mIHRoZSBrZXkgc2NoZWR1bGUgb24gJXht
bTAsICV4bW03CisjIworIyMgIFNwZWNpZmljYWxseSwgcnVucyBzdWJieXRlcyBvbiB0aGUgaGln
aCBkd29yZCBvZiAleG1tMAorIyMgIHRoZW4gcm90YXRlcyBpdCBieSBvbmUgYnl0ZSBhbmQgeG9y
cyBpbnRvIHRoZSBsb3cgZHdvcmQgb2YKKyMjICAleG1tNy4KKyMjCisjIyAgQWRkcyByY29uIGZy
b20gbG93IGJ5dGUgb2YgJXhtbTgsIHRoZW4gcm90YXRlcyAleG1tOCBmb3IKKyMjICBuZXh0IHJj
b24uCisjIworIyMgIFNtZWFycyB0aGUgZHdvcmRzIG9mICV4bW03IGJ5IHhvcmluZyB0aGUgbG93
IGludG8gdGhlCisjIyAgc2Vjb25kIGxvdywgcmVzdWx0IGludG8gdGhpcmQsIHJlc3VsdCBpbnRv
IGhpZ2hlc3QuCisjIworIyMgIFJldHVybnMgcmVzdWx0cyBpbiAleG1tNyA9ICV4bW0wLgorIyMg
IENsb2JiZXJzICV4bW0xLSV4bW00LCAlcjExLgorIyMKKworLmFsaWduCTQKK192cGFlc19zY2hl
ZHVsZV9yb3VuZDoKKwkvLyBleHRyYWN0IHJjb24gZnJvbSB4bW04CisJbW92aQl2NC4xNmIsICMw
CQkJLy8gdnB4b3IJJXhtbTQsCSV4bW00LAkleG1tNAorCWV4dAl2MS4xNmIsIHY4LjE2YiwgdjQu
MTZiLCAjMTUJLy8gdnBhbGlnbnIJJDE1LAkleG1tOCwJJXhtbTQsCSV4bW0xCisJZXh0CXY4LjE2
YiwgdjguMTZiLCB2OC4xNmIsICMxNQkvLyB2cGFsaWducgkkMTUsCSV4bW04LAkleG1tOCwJJXht
bTgKKwllb3IJdjcuMTZiLCB2Ny4xNmIsIHYxLjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW03LAkl
eG1tNworCisJLy8gcm90YXRlCisJZHVwCXYwLjRzLCB2MC5zWzNdCQkJLy8gdnBzaHVmZAkkMHhG
RiwJJXhtbTAsCSV4bW0wCisJZXh0CXYwLjE2YiwgdjAuMTZiLCB2MC4xNmIsICMxCS8vIHZwYWxp
Z25yCSQxLAkleG1tMCwJJXhtbTAsCSV4bW0wCisKKwkvLyBmYWxsIHRocm91Z2guLi4KKworCS8v
IGxvdyByb3VuZDogc2FtZSBhcyBoaWdoIHJvdW5kLCBidXQgbm8gcm90YXRpb24gYW5kIG5vIHJj
b24uCitfdnBhZXNfc2NoZWR1bGVfbG93X3JvdW5kOgorCS8vIHNtZWFyIHhtbTcKKwlleHQJdjEu
MTZiLCB2NC4xNmIsIHY3LjE2YiwgIzEyCS8vIHZwc2xsZHEJJDQsCSV4bW03LAkleG1tMQorCWVv
cgl2Ny4xNmIsIHY3LjE2YiwgdjEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTcsCSV4bW03CisJ
ZXh0CXY0LjE2YiwgdjQuMTZiLCB2Ny4xNmIsICM4CS8vIHZwc2xsZHEJJDgsCSV4bW03LAkleG1t
NAorCisJLy8gc3ViYnl0ZXMKKwlhbmQJdjEuMTZiLCB2MC4xNmIsIHYxNy4xNmIJCS8vIHZwYW5k
CSV4bW05LAkleG1tMCwJJXhtbTEJCSMgMCA9IGsKKwl1c2hyCXYwLjE2YiwgdjAuMTZiLCAjNAkJ
Ly8gdnBzcmxiCSQ0LAkleG1tMCwJJXhtbTAJCSMgMSA9IGkKKwllb3IJdjcuMTZiLCB2Ny4xNmIs
IHY0LjE2YgkJLy8gdnB4b3IJJXhtbTQsCSV4bW03LAkleG1tNworCXRibAl2Mi4xNmIsIHt2MTku
MTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0xMSwJJXhtbTIJCSMgMiA9IGEvawor
CWVvcgl2MS4xNmIsIHYxLjE2YiwgdjAuMTZiCQkvLyB2cHhvcgkleG1tMCwJJXhtbTEsCSV4bW0x
CQkjIDAgPSBqCisJdGJsCXYzLjE2Yiwge3YxOC4xNmJ9LCB2MC4xNmIJLy8gdnBzaHVmYgkleG1t
MCwgCSV4bW0xMCwJJXhtbTMJCSMgMyA9IDEvaQorCWVvcgl2My4xNmIsIHYzLjE2YiwgdjIuMTZi
CQkvLyB2cHhvcgkleG1tMiwJJXhtbTMsCSV4bW0zCQkjIDMgPSBpYWsgPSAxL2kgKyBhL2sKKwl0
YmwJdjQuMTZiLCB7djE4LjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMTAsCSV4
bW00CQkjIDQgPSAxL2oKKwllb3IJdjcuMTZiLCB2Ny4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCUxr
X3M2MyglcmlwKSwJJXhtbTcsCSV4bW03CisJdGJsCXYzLjE2Yiwge3YxOC4xNmJ9LCB2My4xNmIJ
Ly8gdnBzaHVmYgkleG1tMywJJXhtbTEwLAkleG1tMwkJIyAyID0gMS9pYWsKKwllb3IJdjQuMTZi
LCB2NC4xNmIsIHYyLjE2YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW00LAkleG1tNAkJIyA0ID0gamFr
ID0gMS9qICsgYS9rCisJdGJsCXYyLjE2Yiwge3YxOC4xNmJ9LCB2NC4xNmIJLy8gdnBzaHVmYgkl
eG1tNCwJJXhtbTEwLAkleG1tMgkJIyAzID0gMS9qYWsKKwllb3IJdjMuMTZiLCB2My4xNmIsIHYx
LjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW0zLAkleG1tMwkJIyAyID0gaW8KKwllb3IJdjIuMTZi
LCB2Mi4xNmIsIHYwLjE2YgkJLy8gdnB4b3IJJXhtbTAsCSV4bW0yLAkleG1tMgkJIyAzID0gam8K
Kwl0YmwJdjQuMTZiLCB7djIzLjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTMs
CSV4bW00CQkjIDQgPSBzYm91CisJdGJsCXYxLjE2Yiwge3YyMi4xNmJ9LCB2Mi4xNmIJLy8gdnBz
aHVmYgkleG1tMiwJJXhtbTEyLAkleG1tMQkJIyAwID0gc2IxdAorCWVvcgl2MS4xNmIsIHYxLjE2
YiwgdjQuMTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYm94IG91dHB1
dAorCisJLy8gYWRkIGluIHNtZWFyZWQgc3R1ZmYKKwllb3IJdjAuMTZiLCB2MS4xNmIsIHY3LjE2
YgkJLy8gdnB4b3IJJXhtbTcsCSV4bW0xLAkleG1tMAorCWVvcgl2Ny4xNmIsIHYxLjE2Yiwgdjcu
MTZiCQkvLyB2bW92ZHFhCSV4bW0wLAkleG1tNworCXJldAorCisKKyMjCisjIyAgLmFlc19zY2hl
ZHVsZV90cmFuc2Zvcm0KKyMjCisjIyAgTGluZWFyLXRyYW5zZm9ybSAleG1tMCBhY2NvcmRpbmcg
dG8gdGFibGVzIGF0ICglcjExKQorIyMKKyMjICBSZXF1aXJlcyB0aGF0ICV4bW05ID0gMHgwRjBG
Li4uIGFzIGluIHByZWhlYXQKKyMjICBPdXRwdXQgaW4gJXhtbTAKKyMjICBDbG9iYmVycyAleG1t
MSwgJXhtbTIKKyMjCisKKy5hbGlnbgk0CitfdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3JtOgorCWFu
ZAl2MS4xNmIsIHYwLjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTksCSV4bW0wLAkleG1tMQor
CXVzaHIJdjAuMTZiLCB2MC4xNmIsICM0CQkvLyB2cHNybGIJJDQsCSV4bW0wLAkleG1tMAorCQkJ
CQkJLy8gdm1vdmRxYQkoJXIxMSksCSV4bW0yIAkjIGxvCisJdGJsCXYyLjE2Yiwge3YyMC4xNmJ9
LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTIsCSV4bW0yCisJCQkJCQkvLyB2bW92ZHFh
CTE2KCVyMTEpLAkleG1tMSAjIGhpCisJdGJsCXYwLjE2Yiwge3YyMS4xNmJ9LCB2MC4xNmIJLy8g
dnBzaHVmYgkleG1tMCwJJXhtbTEsCSV4bW0wCisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2Mi4xNmIJ
CS8vIHZweG9yCSV4bW0yLAkleG1tMCwJJXhtbTAKKwlyZXQKKworCisjIworIyMgIC5hZXNfc2No
ZWR1bGVfbWFuZ2xlCisjIworIyMgIE1hbmdsZSB4bW0wIGZyb20gKGJhc2lzLXRyYW5zZm9ybWVk
KSBzdGFuZGFyZCB2ZXJzaW9uCisjIyAgdG8gb3VyIHZlcnNpb24uCisjIworIyMgIE9uIGVuY3J5
cHQsCisjIyAgICB4b3Igd2l0aCAweDYzCisjIyAgICBtdWx0aXBseSBieSBjaXJjdWxhbnQgMCwx
LDEsMQorIyMgICAgYXBwbHkgc2hpZnRyb3dzIHRyYW5zZm9ybQorIyMKKyMjICBPbiBkZWNyeXB0
LAorIyMgICAgeG9yIHdpdGggMHg2MworIyMgICAgbXVsdGlwbHkgYnkgImludmVyc2UgbWl4Y29s
dW1ucyIgY2lyY3VsYW50IEUsQixELDkKKyMjICAgIGRlc2tldworIyMgICAgYXBwbHkgc2hpZnRy
b3dzIHRyYW5zZm9ybQorIyMKKyMjCisjIyAgV3JpdGVzIG91dCB0byAoJXJkeCksIGFuZCBpbmNy
ZW1lbnRzIG9yIGRlY3JlbWVudHMgaXQKKyMjICBLZWVwcyB0cmFjayBvZiByb3VuZCBudW1iZXIg
bW9kIDQgaW4gJXI4CisjIyAgUHJlc2VydmVzIHhtbTAKKyMjICBDbG9iYmVycyB4bW0xLXhtbTUK
KyMjCisKKy5hbGlnbgk0CitfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlOgorCW1vdgl2NC4xNmIsIHYw
LjE2YgkJCS8vIHZtb3ZkcWEJJXhtbTAsCSV4bW00CSMgc2F2ZSB4bW0wIGZvciBsYXRlcgorCQkJ
CQkJLy8gdm1vdmRxYQkuTGtfbWNfZm9yd2FyZCglcmlwKSwleG1tNQorCWNibnoJdzMsIExzY2hl
ZHVsZV9tYW5nbGVfZGVjCisKKwkvLyBlbmNyeXB0aW5nCisJZW9yCXY0LjE2YiwgdjAuMTZiLCB2
MTYuMTZiCQkvLyB2cHhvcglMa19zNjMoJXJpcCksCSV4bW0wLAkleG1tNAorCWFkZAl4MiwgeDIs
ICMxNgkJCS8vIGFkZAkkMTYsCSVyZHgKKwl0YmwJdjQuMTZiLCB7djQuMTZifSwgdjkuMTZiCS8v
IHZwc2h1ZmIJJXhtbTUsCSV4bW00LAkleG1tNAorCXRibAl2MS4xNmIsIHt2NC4xNmJ9LCB2OS4x
NmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTQsCSV4bW0xCisJdGJsCXYzLjE2Yiwge3YxLjE2Yn0s
IHY5LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMSwJJXhtbTMKKwllb3IJdjQuMTZiLCB2NC4x
NmIsIHYxLjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW00LAkleG1tNAorCWxkMQl7djEuMmR9LCBb
eDhdCQkJLy8gdm1vdmRxYQkoJXI4LCVyMTApLAkleG1tMQorCWVvcgl2My4xNmIsIHYzLjE2Yiwg
djQuMTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTMsCSV4bW0zCisKKwliCUxzY2hlZHVsZV9tYW5n
bGVfYm90aAorLmFsaWduCTQKK0xzY2hlZHVsZV9tYW5nbGVfZGVjOgorCS8vIGludmVyc2UgbWl4
IGNvbHVtbnMKKwkJCQkJCS8vIGxlYQkuTGtfZGtzZCglcmlwKSwlcjExCisJdXNocgl2MS4xNmIs
IHY0LjE2YiwgIzQJCS8vIHZwc3JsYgkkNCwJJXhtbTQsCSV4bW0xCSMgMSA9IGhpCisJYW5kCXY0
LjE2YiwgdjQuMTZiLCB2MTcuMTZiCQkvLyB2cGFuZAkleG1tOSwJJXhtbTQsCSV4bW00CSMgNCA9
IGxvCisKKwkJCQkJCS8vIHZtb3ZkcWEJMHgwMCglcjExKSwJJXhtbTIKKwl0YmwJdjIuMTZiLCB7
djI0LjE2Yn0sIHY0LjE2YgkvLyB2cHNodWZiCSV4bW00LAkleG1tMiwJJXhtbTIKKwkJCQkJCS8v
IHZtb3ZkcWEJMHgxMCglcjExKSwJJXhtbTMKKwl0YmwJdjMuMTZiLAl7djI1LjE2Yn0sIHYxLjE2
YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMywJJXhtbTMKKwllb3IJdjMuMTZiLCB2My4xNmIsIHYy
LjE2YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW0zLAkleG1tMworCXRibAl2My4xNmIsIHt2My4xNmJ9
LCB2OS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTMsCSV4bW0zCisKKwkJCQkJCS8vIHZtb3Zk
cWEJMHgyMCglcjExKSwJJXhtbTIKKwl0YmwJdjIuMTZiLCB7djI2LjE2Yn0sIHY0LjE2YgkvLyB2
cHNodWZiCSV4bW00LAkleG1tMiwJJXhtbTIKKwllb3IJdjIuMTZiLCB2Mi4xNmIsIHYzLjE2YgkJ
Ly8gdnB4b3IJJXhtbTMsCSV4bW0yLAkleG1tMgorCQkJCQkJLy8gdm1vdmRxYQkweDMwKCVyMTEp
LAkleG1tMworCXRibAl2My4xNmIsIHt2MjcuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEs
CSV4bW0zLAkleG1tMworCWVvcgl2My4xNmIsIHYzLjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkleG1t
MiwJJXhtbTMsCSV4bW0zCisJdGJsCXYzLjE2Yiwge3YzLjE2Yn0sIHY5LjE2YgkvLyB2cHNodWZi
CSV4bW01LAkleG1tMywJJXhtbTMKKworCQkJCQkJLy8gdm1vdmRxYQkweDQwKCVyMTEpLAkleG1t
MgorCXRibAl2Mi4xNmIsIHt2MjguMTZifSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0y
LAkleG1tMgorCWVvcgl2Mi4xNmIsIHYyLjE2YiwgdjMuMTZiCQkvLyB2cHhvcgkleG1tMywJJXht
bTIsCSV4bW0yCisJCQkJCQkvLyB2bW92ZHFhCTB4NTAoJXIxMSksCSV4bW0zCisJdGJsCXYzLjE2
Yiwge3YyOS4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW0zCisJZW9y
CXYzLjE2YiwgdjMuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMKKwor
CQkJCQkJLy8gdm1vdmRxYQkweDYwKCVyMTEpLAkleG1tMgorCXRibAl2Mi4xNmIsIHt2MzAuMTZi
fSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0yLAkleG1tMgorCXRibAl2My4xNmIsIHt2
My4xNmJ9LCB2OS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTMsCSV4bW0zCisJCQkJCQkvLyB2
bW92ZHFhCTB4NzAoJXIxMSksCSV4bW00CisJdGJsCXY0LjE2Yiwge3YzMS4xNmJ9LCB2MS4xNmIJ
Ly8gdnBzaHVmYgkleG1tMSwJJXhtbTQsCSV4bW00CisJbGQxCXt2MS4yZH0sIFt4OF0JCQkvLyB2
bW92ZHFhCSglcjgsJXIxMCksCSV4bW0xCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2My4xNmIJCS8v
IHZweG9yCSV4bW0zLAkleG1tMiwJJXhtbTIKKwllb3IJdjMuMTZiLCB2NC4xNmIsIHYyLjE2YgkJ
Ly8gdnB4b3IJJXhtbTIsCSV4bW00LAkleG1tMworCisJc3ViCXgyLCB4MiwgIzE2CQkJLy8gYWRk
CSQtMTYsCSVyZHgKKworTHNjaGVkdWxlX21hbmdsZV9ib3RoOgorCXRibAl2My4xNmIsIHt2My4x
NmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW0zCisJYWRkCXg4LCB4OCwg
IzY0LTE2CQkJLy8gYWRkCSQtMTYsCSVyOAorCWFuZAl4OCwgeDgsICN+KDE8PDYpCQkvLyBhbmQJ
JDB4MzAsCSVyOAorCXN0MQl7djMuMmR9LCBbeDJdCQkJLy8gdm1vdmRxdQkleG1tMywJKCVyZHgp
CisJcmV0CisKKworLmdsb2JsCV92cGFlc19zZXRfZW5jcnlwdF9rZXkKKy5wcml2YXRlX2V4dGVy
bglfdnBhZXNfc2V0X2VuY3J5cHRfa2V5CisKKy5hbGlnbgk0CitfdnBhZXNfc2V0X2VuY3J5cHRf
a2V5OgorCXN0cAl4MjkseDMwLFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNwLCMwCisJc3RwCWQ4LGQ5
LFtzcCwjLTE2XSEJLy8gQUJJIHNwZWMgc2F5cyBzbworCisJbHNyCXc5LCB3MSwgIzUJCS8vIHNo
cgkkNSwlZWF4CisJYWRkCXc5LCB3OSwgIzUJCS8vICQ1LCVlYXgKKwlzdHIJdzksIFt4MiwjMjQw
XQkJLy8gbW92CSVlYXgsMjQwKCVyZHgpCSMgQUVTX0tFWS0+cm91bmRzID0gbmJpdHMvMzIrNTsK
KworCW1vdgl3MywgIzAJCS8vIG1vdgkkMCwlZWN4CisJbW92CXg4LCAjMHgzMAkJLy8gbW92CSQw
eDMwLCVyOGQKKwlibAlfdnBhZXNfc2NoZWR1bGVfY29yZQorCWVvcgl4MCwgeDAsIHgwCisKKwls
ZHAJZDgsZDksW3NwXSwjMTYKKwlsZHAJeDI5LHgzMCxbc3BdLCMxNgorCXJldAorCisKKy5nbG9i
bAlfdnBhZXNfc2V0X2RlY3J5cHRfa2V5CisucHJpdmF0ZV9leHRlcm4JX3ZwYWVzX3NldF9kZWNy
eXB0X2tleQorCisuYWxpZ24JNAorX3ZwYWVzX3NldF9kZWNyeXB0X2tleToKKwlzdHAJeDI5LHgz
MCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCXN0cAlkOCxkOSxbc3AsIy0xNl0hCS8vIEFC
SSBzcGVjIHNheXMgc28KKworCWxzcgl3OSwgdzEsICM1CQkvLyBzaHIJJDUsJWVheAorCWFkZAl3
OSwgdzksICM1CQkvLyAkNSwlZWF4CisJc3RyCXc5LCBbeDIsIzI0MF0JCS8vIG1vdgklZWF4LDI0
MCglcmR4KQkjIEFFU19LRVktPnJvdW5kcyA9IG5iaXRzLzMyKzU7CisJbHNsCXc5LCB3OSwgIzQJ
CS8vIHNobAkkNCwlZWF4CisJYWRkCXgyLCB4MiwgIzE2CQkvLyBsZWEJMTYoJXJkeCwlcmF4KSwl
cmR4CisJYWRkCXgyLCB4MiwgeDkKKworCW1vdgl3MywgIzEJCS8vIG1vdgkkMSwlZWN4CisJbHNy
CXc4LCB3MSwgIzEJCS8vIHNocgkkMSwlcjhkCisJYW5kCXg4LCB4OCwgIzMyCQkvLyBhbmQJJDMy
LCVyOGQKKwllb3IJeDgsIHg4LCAjMzIJCS8vIHhvcgkkMzIsJXI4ZAkjIG5iaXRzPT0xOTI/MDoz
MgorCWJsCV92cGFlc19zY2hlZHVsZV9jb3JlCisKKwlsZHAJZDgsZDksW3NwXSwjMTYKKwlsZHAJ
eDI5LHgzMCxbc3BdLCMxNgorCXJldAorCisuZ2xvYmwJX3ZwYWVzX2NiY19lbmNyeXB0CisucHJp
dmF0ZV9leHRlcm4JX3ZwYWVzX2NiY19lbmNyeXB0CisKKy5hbGlnbgk0CitfdnBhZXNfY2JjX2Vu
Y3J5cHQ6CisJY2J6CXgyLCBMY2JjX2Fib3J0CisJY21wCXc1LCAjMAkJCS8vIGNoZWNrIGRpcmVj
dGlvbgorCWIuZXEJdnBhZXNfY2JjX2RlY3J5cHQKKworCXN0cAl4MjkseDMwLFtzcCwjLTE2XSEK
KwlhZGQJeDI5LHNwLCMwCisKKwltb3YJeDE3LCB4MgkJLy8gcmVhc3NpZ24KKwltb3YJeDIsICB4
MwkJLy8gcmVhc3NpZ24KKworCWxkMQl7djAuMTZifSwgW3g0XQkvLyBsb2FkIGl2ZWMKKwlibAlf
dnBhZXNfZW5jcnlwdF9wcmVoZWF0CisJYglMY2JjX2VuY19sb29wCisKKy5hbGlnbgk0CitMY2Jj
X2VuY19sb29wOgorCWxkMQl7djcuMTZifSwgW3gwXSwjMTYJLy8gbG9hZCBpbnB1dAorCWVvcgl2
Ny4xNmIsIHY3LjE2YiwgdjAuMTZiCS8vIHhvciB3aXRoIGl2ZWMKKwlibAlfdnBhZXNfZW5jcnlw
dF9jb3JlCisJc3QxCXt2MC4xNmJ9LCBbeDFdLCMxNgkvLyBzYXZlIG91dHB1dAorCXN1YnMJeDE3
LCB4MTcsICMxNgorCWIuaGkJTGNiY19lbmNfbG9vcAorCisJc3QxCXt2MC4xNmJ9LCBbeDRdCS8v
IHdyaXRlIGl2ZWMKKworCWxkcAl4MjkseDMwLFtzcF0sIzE2CitMY2JjX2Fib3J0OgorCXJldAor
CisKKworLmFsaWduCTQKK3ZwYWVzX2NiY19kZWNyeXB0OgorCXN0cAl4MjkseDMwLFtzcCwjLTE2
XSEKKwlhZGQJeDI5LHNwLCMwCisJc3RwCWQ4LGQ5LFtzcCwjLTE2XSEJLy8gQUJJIHNwZWMgc2F5
cyBzbworCXN0cAlkMTAsZDExLFtzcCwjLTE2XSEKKwlzdHAJZDEyLGQxMyxbc3AsIy0xNl0hCisJ
c3RwCWQxNCxkMTUsW3NwLCMtMTZdIQorCisJbW92CXgxNywgeDIJCS8vIHJlYXNzaWduCisJbW92
CXgyLCAgeDMJCS8vIHJlYXNzaWduCisJbGQxCXt2Ni4xNmJ9LCBbeDRdCS8vIGxvYWQgaXZlYwor
CWJsCV92cGFlc19kZWNyeXB0X3ByZWhlYXQKKwl0c3QJeDE3LCAjMTYKKwliLmVxCUxjYmNfZGVj
X2xvb3AyeAorCisJbGQxCXt2Ny4xNmJ9LCBbeDBdLCAjMTYJLy8gbG9hZCBpbnB1dAorCWJsCV92
cGFlc19kZWNyeXB0X2NvcmUKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHY2LjE2YgkvLyB4b3Igd2l0
aCBpdmVjCisJb3JyCXY2LjE2YiwgdjcuMTZiLCB2Ny4xNmIJLy8gbmV4dCBpdmVjIHZhbHVlCisJ
c3QxCXt2MC4xNmJ9LCBbeDFdLCAjMTYKKwlzdWJzCXgxNywgeDE3LCAjMTYKKwliLmxzCUxjYmNf
ZGVjX2RvbmUKKworLmFsaWduCTQKK0xjYmNfZGVjX2xvb3AyeDoKKwlsZDEJe3YxNC4xNmIsdjE1
LjE2Yn0sIFt4MF0sICMzMgorCWJsCV92cGFlc19kZWNyeXB0XzJ4CisJZW9yCXYwLjE2YiwgdjAu
MTZiLCB2Ni4xNmIJLy8geG9yIHdpdGggaXZlYworCWVvcgl2MS4xNmIsIHYxLjE2YiwgdjE0LjE2
YgorCW9ycgl2Ni4xNmIsIHYxNS4xNmIsIHYxNS4xNmIKKwlzdDEJe3YwLjE2Yix2MS4xNmJ9LCBb
eDFdLCAjMzIKKwlzdWJzCXgxNywgeDE3LCAjMzIKKwliLmhpCUxjYmNfZGVjX2xvb3AyeAorCitM
Y2JjX2RlY19kb25lOgorCXN0MQl7djYuMTZifSwgW3g0XQorCisJbGRwCWQxNCxkMTUsW3NwXSwj
MTYKKwlsZHAJZDEyLGQxMyxbc3BdLCMxNgorCWxkcAlkMTAsZDExLFtzcF0sIzE2CisJbGRwCWQ4
LGQ5LFtzcF0sIzE2CisJbGRwCXgyOSx4MzAsW3NwXSwjMTYKKwlyZXQKKworLmdsb2JsCV92cGFl
c19jdHIzMl9lbmNyeXB0X2Jsb2NrcworLnByaXZhdGVfZXh0ZXJuCV92cGFlc19jdHIzMl9lbmNy
eXB0X2Jsb2NrcworCisuYWxpZ24JNAorX3ZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzOgorCXN0
cAl4MjkseDMwLFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNwLCMwCisJc3RwCWQ4LGQ5LFtzcCwjLTE2
XSEJLy8gQUJJIHNwZWMgc2F5cyBzbworCXN0cAlkMTAsZDExLFtzcCwjLTE2XSEKKwlzdHAJZDEy
LGQxMyxbc3AsIy0xNl0hCisJc3RwCWQxNCxkMTUsW3NwLCMtMTZdIQorCisJY2J6CXgyLCBMY3Ry
MzJfZG9uZQorCisJLy8gTm90ZSwgdW5saWtlIHRoZSBvdGhlciBmdW5jdGlvbnMsIHgyIGhlcmUg
aXMgbWVhc3VyZWQgaW4gYmxvY2tzLAorCS8vIG5vdCBieXRlcy4KKwltb3YJeDE3LCB4MgorCW1v
dgl4MiwgIHgzCisKKwkvLyBMb2FkIHRoZSBJViBhbmQgY291bnRlciBwb3J0aW9uLgorCWxkcgl3
NiwgW3g0LCAjMTJdCisJbGQxCXt2Ny4xNmJ9LCBbeDRdCisKKwlibAlfdnBhZXNfZW5jcnlwdF9w
cmVoZWF0CisJdHN0CXgxNywgIzEKKwlyZXYJdzYsIHc2CQkvLyBUaGUgY291bnRlciBpcyBiaWct
ZW5kaWFuLgorCWIuZXEJTGN0cjMyX3ByZXBfbG9vcAorCisJLy8gSGFuZGxlIG9uZSBibG9jayBz
byB0aGUgcmVtYWluaW5nIGJsb2NrIGNvdW50IGlzIGV2ZW4gZm9yCisJLy8gX3ZwYWVzX2VuY3J5
cHRfMnguCisJbGQxCXt2Ni4xNmJ9LCBbeDBdLCAjMTYJLy8gTG9hZCBpbnB1dCBhaGVhZCBvZiB0
aW1lCisJYmwJX3ZwYWVzX2VuY3J5cHRfY29yZQorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjYuMTZi
CS8vIFhPUiBpbnB1dCBhbmQgcmVzdWx0CisJc3QxCXt2MC4xNmJ9LCBbeDFdLCAjMTYKKwlzdWJz
CXgxNywgeDE3LCAjMQorCS8vIFVwZGF0ZSB0aGUgY291bnRlci4KKwlhZGQJdzYsIHc2LCAjMQor
CXJldgl3NywgdzYKKwltb3YJdjcuc1szXSwgdzcKKwliLmxzCUxjdHIzMl9kb25lCisKK0xjdHIz
Ml9wcmVwX2xvb3A6CisJLy8gX3ZwYWVzX2VuY3J5cHRfY29yZSB0YWtlcyBpdHMgaW5wdXQgZnJv
bSB2Nywgd2hpbGUgX3ZwYWVzX2VuY3J5cHRfMngKKwkvLyB1c2VzIHYxNCBhbmQgdjE1LgorCW1v
dgl2MTUuMTZiLCB2Ny4xNmIKKwltb3YJdjE0LjE2YiwgdjcuMTZiCisJYWRkCXc2LCB3NiwgIzEK
KwlyZXYJdzcsIHc2CisJbW92CXYxNS5zWzNdLCB3NworCitMY3RyMzJfbG9vcDoKKwlsZDEJe3Y2
LjE2Yix2Ny4xNmJ9LCBbeDBdLCAjMzIJLy8gTG9hZCBpbnB1dCBhaGVhZCBvZiB0aW1lCisJYmwJ
X3ZwYWVzX2VuY3J5cHRfMngKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHY2LjE2YgkJLy8gWE9SIGlu
cHV0IGFuZCByZXN1bHQKKwllb3IJdjEuMTZiLCB2MS4xNmIsIHY3LjE2YgkJLy8gWE9SIGlucHV0
IGFuZCByZXN1bHQgKCMyKQorCXN0MQl7djAuMTZiLHYxLjE2Yn0sIFt4MV0sICMzMgorCXN1YnMJ
eDE3LCB4MTcsICMyCisJLy8gVXBkYXRlIHRoZSBjb3VudGVyLgorCWFkZAl3NywgdzYsICMxCisJ
YWRkCXc2LCB3NiwgIzIKKwlyZXYJdzcsIHc3CisJbW92CXYxNC5zWzNdLCB3NworCXJldgl3Nywg
dzYKKwltb3YJdjE1LnNbM10sIHc3CisJYi5oaQlMY3RyMzJfbG9vcAorCitMY3RyMzJfZG9uZToK
KwlsZHAJZDE0LGQxNSxbc3BdLCMxNgorCWxkcAlkMTIsZDEzLFtzcF0sIzE2CisJbGRwCWQxMCxk
MTEsW3NwXSwjMTYKKwlsZHAJZDgsZDksW3NwXSwjMTYKKwlsZHAJeDI5LHgzMCxbc3BdLCMxNgor
CXJldAorCisjZW5kaWYgIC8vICFPUEVOU1NMX05PX0FTTQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFhcmNo
NjQvY3J5cHRvL3Rlc3QvdHJhbXBvbGluZS1hcm12OC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFhcmNoNjQvY3J5cHRvL3Rl
c3QvdHJhbXBvbGluZS1hcm12OC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzOGU5Mjk4YzBhNjA4YmE0MDVkNDcx
ZTFkNThmYjBjY2EyODcyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8v
dGVzdC90cmFtcG9saW5lLWFybXY4LlMKQEAgLTAsMCArMSw2ODUgQEAKKy8vIFRoaXMgZmlsZSBp
cyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9y
aW5nU1NMCisvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KKworI2lmICFkZWZp
bmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCisj
aWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05P
X0FTTSkKKyNkZWZpbmUgT1BFTlNTTF9OT19BU00KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoT1BF
TlNTTF9OT19BU00pCisjaWYgZGVmaW5lZChCT1JJTkdTU0xfUFJFRklYKQorI2luY2x1ZGUgPGJv
cmluZ3NzbF9wcmVmaXhfc3ltYm9sc19hc20uaD4KKyNlbmRpZgorLnRleHQKKworLy8gYWJpX3Rl
c3RfdHJhbXBvbGluZSBsb2FkcyBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGZyb20gfHN0YXRlfCwg
Y2FsbHMgfGZ1bmN8CisvLyB3aXRoIHxhcmd2fCwgdGhlbiBzYXZlcyB0aGUgY2FsbGVlLXNhdmVk
IHJlZ2lzdGVycyBpbnRvIHxzdGF0ZXwuIEl0IHJldHVybnMKKy8vIHRoZSByZXN1bHQgb2YgfGZ1
bmN8LiBUaGUgfHVud2luZHwgYXJndW1lbnQgaXMgdW51c2VkLgorLy8gdWludDY0X3QgYWJpX3Rl
c3RfdHJhbXBvbGluZSh2b2lkICgqZnVuYykoLi4uKSwgQ2FsbGVyU3RhdGUgKnN0YXRlLAorLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50NjRfdCAqYXJndiwgc2l6ZV90
IGFyZ2MsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHVud2luZCk7
CisKKy5nbG9ibAlfYWJpX3Rlc3RfdHJhbXBvbGluZQorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVz
dF90cmFtcG9saW5lCisuYWxpZ24JNAorX2FiaV90ZXN0X3RyYW1wb2xpbmU6CitMYWJpX3Rlc3Rf
dHJhbXBvbGluZV9iZWdpbjoKKwkvLyBTdGFjayBsYXlvdXQgKGxvdyB0byBoaWdoIGFkZHJlc3Nl
cykKKwkvLyAgIHgyOSx4MzAgKDE2IGJ5dGVzKQorCS8vICAgIGQ4LWQxNSAoNjQgYnl0ZXMpCisJ
Ly8gICB4MTkteDI4ICg4MCBieXRlcykKKwkvLyAgICB4MSAoOCBieXRlcykKKwkvLyAgIHBhZGRp
bmcgKDggYnl0ZXMpCisJc3RwCXgyOSwgeDMwLCBbc3AsICMtMTc2XSEKKwltb3YJeDI5LCBzcAor
CisJLy8gU2F2ZWQgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBhbmQgfHN0YXRlfC4KKwlzdHAJZDgs
IGQ5LCBbc3AsICMxNl0KKwlzdHAJZDEwLCBkMTEsIFtzcCwgIzMyXQorCXN0cAlkMTIsIGQxMywg
W3NwLCAjNDhdCisJc3RwCWQxNCwgZDE1LCBbc3AsICM2NF0KKwlzdHAJeDE5LCB4MjAsIFtzcCwg
IzgwXQorCXN0cAl4MjEsIHgyMiwgW3NwLCAjOTZdCisJc3RwCXgyMywgeDI0LCBbc3AsICMxMTJd
CisJc3RwCXgyNSwgeDI2LCBbc3AsICMxMjhdCisJc3RwCXgyNywgeDI4LCBbc3AsICMxNDRdCisJ
c3RyCXgxLCBbc3AsICMxNjBdCisKKwkvLyBMb2FkIHJlZ2lzdGVycyBmcm9tIHxzdGF0ZXwsIHdp
dGggdGhlIGV4Y2VwdGlvbiBvZiB4MjkuIHgyOSBpcyB0aGUKKwkvLyBmcmFtZSBwb2ludGVyIGFu
ZCBhbHNvIGNhbGxlZS1zYXZlZCwgYnV0IEFBUENTNjQgYWxsb3dzIHBsYXRmb3JtcyB0bworCS8v
IG1hbmRhdGUgdGhhdCB4MjkgYWx3YXlzIHBvaW50IHRvIGEgZnJhbWUuIGlPUzY0IGRvZXMgc28s
IHdoaWNoIG1lYW5zCisJLy8gd2UgY2Fubm90IGZpbGwgeDI5IHdpdGggZW50cm9weSB3aXRob3V0
IHZpb2xhdGluZyBBQkkgcnVsZXMKKwkvLyBvdXJzZWx2ZXMuIHgyOSBpcyB0ZXN0ZWQgc2VwYXJh
dGVseSBiZWxvdy4KKwlsZHAJZDgsIGQ5LCBbeDFdLCAjMTYKKwlsZHAJZDEwLCBkMTEsIFt4MV0s
ICMxNgorCWxkcAlkMTIsIGQxMywgW3gxXSwgIzE2CisJbGRwCWQxNCwgZDE1LCBbeDFdLCAjMTYK
KwlsZHAJeDE5LCB4MjAsIFt4MV0sICMxNgorCWxkcAl4MjEsIHgyMiwgW3gxXSwgIzE2CisJbGRw
CXgyMywgeDI0LCBbeDFdLCAjMTYKKwlsZHAJeDI1LCB4MjYsIFt4MV0sICMxNgorCWxkcAl4Mjcs
IHgyOCwgW3gxXSwgIzE2CisKKwkvLyBNb3ZlIHBhcmFtZXRlcnMgaW50byB0ZW1wb3JhcnkgcmVn
aXN0ZXJzLgorCW1vdgl4OSwgeDAKKwltb3YJeDEwLCB4MgorCW1vdgl4MTEsIHgzCisKKwkvLyBM
b2FkIHBhcmFtZXRlcnMgaW50byByZWdpc3RlcnMuCisJY2J6CXgxMSwgTGFyZ3NfZG9uZQorCWxk
cgl4MCwgW3gxMF0sICM4CisJc3Vicwl4MTEsIHgxMSwgIzEKKwliLmVxCUxhcmdzX2RvbmUKKwls
ZHIJeDEsIFt4MTBdLCAjOAorCXN1YnMJeDExLCB4MTEsICMxCisJYi5lcQlMYXJnc19kb25lCisJ
bGRyCXgyLCBbeDEwXSwgIzgKKwlzdWJzCXgxMSwgeDExLCAjMQorCWIuZXEJTGFyZ3NfZG9uZQor
CWxkcgl4MywgW3gxMF0sICM4CisJc3Vicwl4MTEsIHgxMSwgIzEKKwliLmVxCUxhcmdzX2RvbmUK
KwlsZHIJeDQsIFt4MTBdLCAjOAorCXN1YnMJeDExLCB4MTEsICMxCisJYi5lcQlMYXJnc19kb25l
CisJbGRyCXg1LCBbeDEwXSwgIzgKKwlzdWJzCXgxMSwgeDExLCAjMQorCWIuZXEJTGFyZ3NfZG9u
ZQorCWxkcgl4NiwgW3gxMF0sICM4CisJc3Vicwl4MTEsIHgxMSwgIzEKKwliLmVxCUxhcmdzX2Rv
bmUKKwlsZHIJeDcsIFt4MTBdLCAjOAorCitMYXJnc19kb25lOgorCWJscgl4OQorCisJLy8gUmVs
b2FkIHxzdGF0ZXwgYW5kIHN0b3JlIHJlZ2lzdGVycy4KKwlsZHIJeDEsIFtzcCwgIzE2MF0KKwlz
dHAJZDgsIGQ5LCBbeDFdLCAjMTYKKwlzdHAJZDEwLCBkMTEsIFt4MV0sICMxNgorCXN0cAlkMTIs
IGQxMywgW3gxXSwgIzE2CisJc3RwCWQxNCwgZDE1LCBbeDFdLCAjMTYKKwlzdHAJeDE5LCB4MjAs
IFt4MV0sICMxNgorCXN0cAl4MjEsIHgyMiwgW3gxXSwgIzE2CisJc3RwCXgyMywgeDI0LCBbeDFd
LCAjMTYKKwlzdHAJeDI1LCB4MjYsIFt4MV0sICMxNgorCXN0cAl4MjcsIHgyOCwgW3gxXSwgIzE2
CisKKwkvLyB8ZnVuY3wgaXMgcmVxdWlyZWQgdG8gcHJlc2VydmUgeDI5LCB0aGUgZnJhbWUgcG9p
bnRlci4gV2UgY2Fubm90IGxvYWQKKwkvLyByYW5kb20gdmFsdWVzIGludG8geDI5IChzZWUgY29t
bWVudCBhYm92ZSksIHNvIGNvbXBhcmUgaXQgYWdhaW5zdCB0aGUKKwkvLyBleHBlY3RlZCB2YWx1
ZSBhbmQgemVybyB0aGUgZmllbGQgb2YgfHN0YXRlfCBpZiBjb3JydXB0ZWQuCisJbW92CXg5LCBz
cAorCWNtcAl4MjksIHg5CisJYi5lcQlMeDI5X29rCisJc3RyCXh6ciwgW3gxXQorCitMeDI5X29r
OgorCS8vIFJlc3RvcmUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KKwlsZHAJZDgsIGQ5LCBbc3As
ICMxNl0KKwlsZHAJZDEwLCBkMTEsIFtzcCwgIzMyXQorCWxkcAlkMTIsIGQxMywgW3NwLCAjNDhd
CisJbGRwCWQxNCwgZDE1LCBbc3AsICM2NF0KKwlsZHAJeDE5LCB4MjAsIFtzcCwgIzgwXQorCWxk
cAl4MjEsIHgyMiwgW3NwLCAjOTZdCisJbGRwCXgyMywgeDI0LCBbc3AsICMxMTJdCisJbGRwCXgy
NSwgeDI2LCBbc3AsICMxMjhdCisJbGRwCXgyNywgeDI4LCBbc3AsICMxNDRdCisKKwlsZHAJeDI5
LCB4MzAsIFtzcF0sICMxNzYKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDAK
Ky5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94MAorLmFsaWduCTQKK19hYmlfdGVz
dF9jbG9iYmVyX3gwOgorCW1vdgl4MCwgeHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9j
bG9iYmVyX3gxCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfeDEKKy5hbGlnbgk0
CitfYWJpX3Rlc3RfY2xvYmJlcl94MToKKwltb3YJeDEsIHh6cgorCXJldAorCisKKy5nbG9ibAlf
YWJpX3Rlc3RfY2xvYmJlcl94MgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3gy
CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeDI6CisJbW92CXgyLCB4enIKKwlyZXQKKwor
CisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDMKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3Rf
Y2xvYmJlcl94MworLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3gzOgorCW1vdgl4MywgeHpy
CisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3g0CisucHJpdmF0ZV9leHRlcm4J
X2FiaV90ZXN0X2Nsb2JiZXJfeDQKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94NDoKKwlt
b3YJeDQsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94NQorLnByaXZh
dGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3g1CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2Ji
ZXJfeDU6CisJbW92CXg1LCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJf
eDYKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94NgorLmFsaWduCTQKK19hYmlf
dGVzdF9jbG9iYmVyX3g2OgorCW1vdgl4NiwgeHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVz
dF9jbG9iYmVyX3g3CisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfeDcKKy5hbGln
bgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94NzoKKwltb3YJeDcsIHh6cgorCXJldAorCisKKy5nbG9i
bAlfYWJpX3Rlc3RfY2xvYmJlcl94OAorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVy
X3g4CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeDg6CisJbW92CXg4LCB4enIKKwlyZXQK
KworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDkKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rl
c3RfY2xvYmJlcl94OQorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3g5OgorCW1vdgl4OSwg
eHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3gxMAorLnByaXZhdGVfZXh0
ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3gxMAorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3gx
MDoKKwltb3YJeDEwLCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDEx
CisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfeDExCisuYWxpZ24JNAorX2FiaV90
ZXN0X2Nsb2JiZXJfeDExOgorCW1vdgl4MTEsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rl
c3RfY2xvYmJlcl94MTIKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94MTIKKy5h
bGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94MTI6CisJbW92CXgxMiwgeHpyCisJcmV0CisKKwor
Lmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3gxMworLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9j
bG9iYmVyX3gxMworLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3gxMzoKKwltb3YJeDEzLCB4
enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDE0CisucHJpdmF0ZV9leHRl
cm4JX2FiaV90ZXN0X2Nsb2JiZXJfeDE0CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeDE0
OgorCW1vdgl4MTQsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94MTUK
Ky5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94MTUKKy5hbGlnbgk0CitfYWJpX3Rl
c3RfY2xvYmJlcl94MTU6CisJbW92CXgxNSwgeHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVz
dF9jbG9iYmVyX3gxNgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3gxNgorLmFs
aWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3gxNjoKKwltb3YJeDE2LCB4enIKKwlyZXQKKworCisu
Z2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDE3CisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Ns
b2JiZXJfeDE3CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeDE3OgorCW1vdgl4MTcsIHh6
cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94MTkKKy5wcml2YXRlX2V4dGVy
bglfYWJpX3Rlc3RfY2xvYmJlcl94MTkKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94MTk6
CisJbW92CXgxOSwgeHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3gyMAor
LnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3gyMAorLmFsaWduCTQKK19hYmlfdGVz
dF9jbG9iYmVyX3gyMDoKKwltb3YJeDIwLCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0
X2Nsb2JiZXJfeDIxCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfeDIxCisuYWxp
Z24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeDIxOgorCW1vdgl4MjEsIHh6cgorCXJldAorCisKKy5n
bG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94MjIKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xv
YmJlcl94MjIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94MjI6CisJbW92CXgyMiwgeHpy
CisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3gyMworLnByaXZhdGVfZXh0ZXJu
CV9hYmlfdGVzdF9jbG9iYmVyX3gyMworLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3gyMzoK
Kwltb3YJeDIzLCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDI0Cisu
cHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfeDI0CisuYWxpZ24JNAorX2FiaV90ZXN0
X2Nsb2JiZXJfeDI0OgorCW1vdgl4MjQsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3Rf
Y2xvYmJlcl94MjUKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94MjUKKy5hbGln
bgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94MjU6CisJbW92CXgyNSwgeHpyCisJcmV0CisKKworLmds
b2JsCV9hYmlfdGVzdF9jbG9iYmVyX3gyNgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9i
YmVyX3gyNgorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3gyNjoKKwltb3YJeDI2LCB4enIK
KwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeDI3CisucHJpdmF0ZV9leHRlcm4J
X2FiaV90ZXN0X2Nsb2JiZXJfeDI3CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeDI3Ogor
CW1vdgl4MjcsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94MjgKKy5w
cml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94MjgKKy5hbGlnbgk0CitfYWJpX3Rlc3Rf
Y2xvYmJlcl94Mjg6CisJbW92CXgyOCwgeHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9j
bG9iYmVyX3gyOQorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3gyOQorLmFsaWdu
CTQKK19hYmlfdGVzdF9jbG9iYmVyX3gyOToKKwltb3YJeDI5LCB4enIKKwlyZXQKKworCisuZ2xv
YmwJX2FiaV90ZXN0X2Nsb2JiZXJfZDAKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJl
cl9kMAorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX2QwOgorCWZtb3YJZDAsIHh6cgorCXJl
dAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMQorLnByaXZhdGVfZXh0ZXJuCV9hYmlf
dGVzdF9jbG9iYmVyX2QxCisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDE6CisJZm1vdglk
MSwgeHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX2QyCisucHJpdmF0ZV9l
eHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZDIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9k
MjoKKwlmbW92CWQyLCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfZDMK
Ky5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMworLmFsaWduCTQKK19hYmlfdGVz
dF9jbG9iYmVyX2QzOgorCWZtb3YJZDMsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3Rf
Y2xvYmJlcl9kNAorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2Q0CisuYWxpZ24J
NAorX2FiaV90ZXN0X2Nsb2JiZXJfZDQ6CisJZm1vdglkNCwgeHpyCisJcmV0CisKKworLmdsb2Js
CV9hYmlfdGVzdF9jbG9iYmVyX2Q1CisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJf
ZDUKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kNToKKwlmbW92CWQ1LCB4enIKKwlyZXQK
KworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfZDYKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rl
c3RfY2xvYmJlcl9kNgorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX2Q2OgorCWZtb3YJZDYs
IHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kNworLnByaXZhdGVfZXh0
ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2Q3CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDc6
CisJZm1vdglkNywgeHpyCisJcmV0CisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX2Q4Cisu
cHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZDgKKy5hbGlnbgk0CitfYWJpX3Rlc3Rf
Y2xvYmJlcl9kODoKKwlmbW92CWQ4LCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Ns
b2JiZXJfZDkKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kOQorLmFsaWduCTQK
K19hYmlfdGVzdF9jbG9iYmVyX2Q5OgorCWZtb3YJZDksIHh6cgorCXJldAorCisKKy5nbG9ibAlf
YWJpX3Rlc3RfY2xvYmJlcl9kMTAKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9k
MTAKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTA6CisJZm1vdglkMTAsIHh6cgorCXJl
dAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTEKKy5wcml2YXRlX2V4dGVybglfYWJp
X3Rlc3RfY2xvYmJlcl9kMTEKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTE6CisJZm1v
dglkMTEsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTIKKy5wcml2
YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMTIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xv
YmJlcl9kMTI6CisJZm1vdglkMTIsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xv
YmJlcl9kMTMKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMTMKKy5hbGlnbgk0
CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTM6CisJZm1vdglkMTMsIHh6cgorCXJldAorCisKKy5nbG9i
bAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTQKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJl
cl9kMTQKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTQ6CisJZm1vdglkMTQsIHh6cgor
CXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTUKKy5wcml2YXRlX2V4dGVybglf
YWJpX3Rlc3RfY2xvYmJlcl9kMTUKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTU6CisJ
Zm1vdglkMTUsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTYKKy5w
cml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMTYKKy5hbGlnbgk0CitfYWJpX3Rlc3Rf
Y2xvYmJlcl9kMTY6CisJZm1vdglkMTYsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3Rf
Y2xvYmJlcl9kMTcKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMTcKKy5hbGln
bgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTc6CisJZm1vdglkMTcsIHh6cgorCXJldAorCisKKy5n
bG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTgKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xv
YmJlcl9kMTgKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTg6CisJZm1vdglkMTgsIHh6
cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTkKKy5wcml2YXRlX2V4dGVy
bglfYWJpX3Rlc3RfY2xvYmJlcl9kMTkKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTk6
CisJZm1vdglkMTksIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMjAK
Ky5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMjAKKy5hbGlnbgk0CitfYWJpX3Rl
c3RfY2xvYmJlcl9kMjA6CisJZm1vdglkMjAsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rl
c3RfY2xvYmJlcl9kMjEKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMjEKKy5h
bGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMjE6CisJZm1vdglkMjEsIHh6cgorCXJldAorCisK
Ky5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMjIKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3Rf
Y2xvYmJlcl9kMjIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMjI6CisJZm1vdglkMjIs
IHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMjMKKy5wcml2YXRlX2V4
dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMjMKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9k
MjM6CisJZm1vdglkMjMsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9k
MjQKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMjQKKy5hbGlnbgk0CitfYWJp
X3Rlc3RfY2xvYmJlcl9kMjQ6CisJZm1vdglkMjQsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJp
X3Rlc3RfY2xvYmJlcl9kMjUKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMjUK
Ky5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMjU6CisJZm1vdglkMjUsIHh6cgorCXJldAor
CisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMjYKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rl
c3RfY2xvYmJlcl9kMjYKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMjY6CisJZm1vdglk
MjYsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMjcKKy5wcml2YXRl
X2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMjcKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJl
cl9kMjc6CisJZm1vdglkMjcsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJl
cl9kMjgKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMjgKKy5hbGlnbgk0Citf
YWJpX3Rlc3RfY2xvYmJlcl9kMjg6CisJZm1vdglkMjgsIHh6cgorCXJldAorCisKKy5nbG9ibAlf
YWJpX3Rlc3RfY2xvYmJlcl9kMjkKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9k
MjkKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMjk6CisJZm1vdglkMjksIHh6cgorCXJl
dAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMzAKKy5wcml2YXRlX2V4dGVybglfYWJp
X3Rlc3RfY2xvYmJlcl9kMzAKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMzA6CisJZm1v
dglkMzAsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMzEKKy5wcml2
YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMzEKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xv
YmJlcl9kMzE6CisJZm1vdglkMzEsIHh6cgorCXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xv
YmJlcl92OF91cHBlcgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3Y4X3VwcGVy
CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfdjhfdXBwZXI6CisJZm1vdgl2OC5kWzFdLCB4
enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfdjlfdXBwZXIKKy5wcml2YXRl
X2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl92OV91cHBlcgorLmFsaWduCTQKK19hYmlfdGVzdF9j
bG9iYmVyX3Y5X3VwcGVyOgorCWZtb3YJdjkuZFsxXSwgeHpyCisJcmV0CisKKworLmdsb2JsCV9h
YmlfdGVzdF9jbG9iYmVyX3YxMF91cHBlcgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9i
YmVyX3YxMF91cHBlcgorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3YxMF91cHBlcjoKKwlm
bW92CXYxMC5kWzFdLCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfdjEx
X3VwcGVyCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfdjExX3VwcGVyCisuYWxp
Z24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfdjExX3VwcGVyOgorCWZtb3YJdjExLmRbMV0sIHh6cgor
CXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl92MTJfdXBwZXIKKy5wcml2YXRlX2V4
dGVybglfYWJpX3Rlc3RfY2xvYmJlcl92MTJfdXBwZXIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xv
YmJlcl92MTJfdXBwZXI6CisJZm1vdgl2MTIuZFsxXSwgeHpyCisJcmV0CisKKworLmdsb2JsCV9h
YmlfdGVzdF9jbG9iYmVyX3YxM191cHBlcgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9i
YmVyX3YxM191cHBlcgorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3YxM191cHBlcjoKKwlm
bW92CXYxMy5kWzFdLCB4enIKKwlyZXQKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfdjE0
X3VwcGVyCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfdjE0X3VwcGVyCisuYWxp
Z24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfdjE0X3VwcGVyOgorCWZtb3YJdjE0LmRbMV0sIHh6cgor
CXJldAorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl92MTVfdXBwZXIKKy5wcml2YXRlX2V4
dGVybglfYWJpX3Rlc3RfY2xvYmJlcl92MTVfdXBwZXIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xv
YmJlcl92MTVfdXBwZXI6CisJZm1vdgl2MTUuZFsxXSwgeHpyCisJcmV0CisKKyNlbmRpZiAgLy8g
IU9QRU5TU0xfTk9fQVNNCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vdGhpcmRfcGFy
dHkvc2lrZS9hc20vZnAtYXJtdjguUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hYXJjaDY0L2NyeXB0by90aGlyZF9wYXJ0eS9z
aWtlL2FzbS9mcC1hcm12OC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ODg2M2Y2NWZmYWE4NjdhZDJhMzI0ZjI1
ZDlkOWJhMTg1NTJmZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYWFyY2g2NC9jcnlwdG8vdGhp
cmRfcGFydHkvc2lrZS9hc20vZnAtYXJtdjguUwpAQCAtMCwwICsxLDk5NiBAQAorLy8gVGhpcyBm
aWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRo
ZSBCb3JpbmdTU0wKKy8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgorCisjaWYg
IWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5k
aWYKKyNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5T
U0xfTk9fQVNNKQorI2RlZmluZSBPUEVOU1NMX05PX0FTTQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChPUEVOU1NMX05PX0FTTSkKKyNpZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgpCisjaW5jbHVk
ZSA8Ym9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX2FzbS5oPgorI2VuZGlmCisuc2VjdGlvbglfX1RF
WFQsX19jb25zdAorCisjIHA0MzQgeCAyCitMcDQzNHgyOgorLnF1YWQJMHhGRkZGRkZGRkZGRkZG
RkZFLCAweEZGRkZGRkZGRkZGRkZGRkYKKy5xdWFkCTB4RkI4MkVDRjVDNUZGRkZGRiwgMHhGNzhD
QjhGMDYyQjE1RDQ3CisucXVhZAkweEQ5RjhCRkFEMDM4QTQwQUMsIDB4MDAwNDY4M0U0RTJFRTY4
OAorCisjIHA0MzQgKyAxCitMcDQzNHAxOgorLnF1YWQJMHhGREMxNzY3QUUzMDAwMDAwLCAweDdC
QzY1Qzc4MzE1OEFFQTMKKy5xdWFkCTB4NkNGQzVGRDY4MUM1MjA1NiwgMHgwMDAyMzQxRjI3MTc3
MzQ0CisKKy50ZXh0CisuZ2xvYmwJX3Npa2VfbXBtdWwKKy5wcml2YXRlX2V4dGVybglfc2lrZV9t
cG11bAorLmFsaWduCTQKK19zaWtlX21wbXVsOgorCXN0cAl4MjksIHgzMCwgW3NwLCMtOTZdIQor
CWFkZAl4MjksIHNwLCAjMAorCXN0cAl4MTksIHgyMCwgW3NwLCMxNl0KKwlzdHAJeDIxLCB4MjIs
IFtzcCwjMzJdCisJc3RwCXgyMywgeDI0LCBbc3AsIzQ4XQorCXN0cAl4MjUsIHgyNiwgW3NwLCM2
NF0KKwlzdHAJeDI3LCB4MjgsIFtzcCwjODBdCisKKwlsZHAJeDMsICB4NCwgW3gwXQorCWxkcAl4
NSwgIHg2LCBbeDAsIzE2XQorCWxkcAl4NywgIHg4LCBbeDAsIzMyXQorCWxkcgl4OSwgICAgICBb
eDAsIzQ4XQorCWxkcAl4MTAsIHgxMSwgW3gxLCMwXQorCWxkcAl4MTIsIHgxMywgW3gxLCMxNl0K
KwlsZHAJeDE0LCB4MTUsIFt4MSwjMzJdCisJbGRyCXgxNiwgICAgICBbeDEsIzQ4XQorCisgICAg
ICAgIC8vIHgzLXg3IDwtIEFIICsgQUwsIHg3IDwtIGNhcnJ5CisJYWRkcwl4MywgeDMsIHg3CisJ
YWRjcwl4NCwgeDQsIHg4CisJYWRjcwl4NSwgeDUsIHg5CisJYWRjcwl4NiwgeDYsIHh6cgorCWFk
Ywl4NywgeHpyLCB4enIKKworICAgICAgICAvLyB4MTAteDEzIDwtIEJIICsgQkwsIHg4IDwtIGNh
cnJ5CisJYWRkcwl4MTAsIHgxMCwgeDE0CisJYWRjcwl4MTEsIHgxMSwgeDE1CisJYWRjcwl4MTIs
IHgxMiwgeDE2CisJYWRjcwl4MTMsIHgxMywgeHpyCisJYWRjCXg4LCB4enIsIHh6cgorCisgICAg
ICAgIC8vIHg5IDwtIGNvbWJpbmVkIGNhcnJ5CisJYW5kCXg5LCB4NywgeDgKKyAgICAgICAgLy8g
eDcteDggPC0gbWFzaworCXN1Ygl4NywgeHpyLCB4NworCXN1Ygl4OCwgeHpyLCB4OAorCisgICAg
ICAgIC8vIHgxNS14MTkgPC0gbWFza2VkIChCSCArIEJMKQorCWFuZAl4MTQsIHgxMCwgeDcKKwlh
bmQJeDE1LCB4MTEsIHg3CisJYW5kCXgxNiwgeDEyLCB4NworCWFuZAl4MTcsIHgxMywgeDcKKwor
ICAgICAgICAvLyB4MjAteDIzIDwtIG1hc2tlZCAoQUggKyBBTCkKKwlhbmQJeDIwLCB4MywgeDgK
KwlhbmQJeDIxLCB4NCwgeDgKKwlhbmQJeDIyLCB4NSwgeDgKKwlhbmQJeDIzLCB4NiwgeDgKKwor
ICAgICAgICAvLyB4MTUteDE5LCB4NyA8LSBtYXNrZWQgKEFIK0FMKSArIG1hc2tlZCAoQkgrQkwp
LCBzdGVwIDEKKwlhZGRzCXgxNCwgeDE0LCB4MjAKKwlhZGNzCXgxNSwgeDE1LCB4MjEKKwlhZGNz
CXgxNiwgeDE2LCB4MjIKKwlhZGNzCXgxNywgeDE3LCB4MjMKKwlhZGMJeDcsIHg5LCB4enIKKwor
ICAgICAgICAvLyB4OC14OSx4MTkseDIwLXgyNCA8LSAoQUgrQUwpIHggKEJIK0JMKSwgbG93IHBh
cnQKKwlzdHAJeDMsIHg0LCBbeDIsIzBdCisgICAgICAgICAgICAgICAgLy8gQTAtQTEgPC0gQUgg
KyBBTCwgVDAgPC0gbWFzaworCWFkZHMJeDMsIHgzLCB4NQorCWFkY3MJeDQsIHg0LCB4NgorCWFk
Ywl4MjUsIHh6ciwgeHpyCisKKyAgICAgICAgLy8gQzYsIFQxIDwtIEJIICsgQkwsIEM3IDwtIG1h
c2sKKwlhZGRzCXgyMywgeDEwLCB4MTIKKwlhZGNzCXgyNiwgeDExLCB4MTMKKwlhZGMJeDI0LCB4
enIsIHh6cgorCisgICAgICAgIC8vIEMwLUMxIDwtIG1hc2tlZCAoQkggKyBCTCkKKwlzdWIJeDE5
LCB4enIsIHgyNQorCXN1Ygl4MjAsIHh6ciwgeDI0CisJYW5kCXg4LCB4MjMsIHgxOQorCWFuZAl4
OSwgeDI2LCB4MTkKKworICAgICAgICAvLyBDNC1DNSA8LSBtYXNrZWQgKEFIICsgQUwpLCBUMCA8
LSBjb21iaW5lZCBjYXJyeQorCWFuZAl4MjEsIHgzLCB4MjAKKwlhbmQJeDIyLCB4NCwgeDIwCisJ
bXVsCXgxOSwgeDMsIHgyMworCW11bAl4MjAsIHgzLCB4MjYKKwlhbmQJeDI1LCB4MjUsIHgyNAor
CisgICAgICAgIC8vIEMwLUMxLCBUMCA8LSAoQUgrQUwpIHggKEJIK0JMKSwgcGFydCAxCisJYWRk
cwl4OCwgeDIxLCB4OAorCXVtdWxoCXgyMSwgeDMsIHgyNgorCWFkY3MJeDksIHgyMiwgeDkKKwl1
bXVsaAl4MjIsIHgzLCB4MjMKKwlhZGMJeDI1LCB4MjUsIHh6cgorCisgICAgICAgIC8vIEMyLUM1
IDwtIChBSCtBTCkgeCAoQkgrQkwpLCBsb3cgcGFydAorCW11bAl4MywgeDQsIHgyMworCXVtdWxo
CXgyMywgeDQsIHgyMworCWFkZHMJeDIwLCB4MjAsIHgyMgorCWFkYwl4MjEsIHgyMSwgeHpyCisK
KwltdWwJeDI0LCB4NCwgeDI2CisJdW11bGgJeDI2LCB4NCwgeDI2CisJYWRkcwl4MjAsIHgyMCwg
eDMKKwlhZGNzCXgyMSwgeDIxLCB4MjMKKwlhZGMJeDIyLCB4enIsIHh6cgorCisJYWRkcwl4MjEs
IHgyMSwgeDI0CisJYWRjCXgyMiwgeDIyLCB4MjYKKworCWxkcAl4MywgeDQsIFt4MiwjMF0KKwor
ICAgICAgICAvLyBDMi1DNSwgVDAgPC0gKEFIK0FMKSB4IChCSCtCTCksIGZpbmFsIHBhcnQKKwlh
ZGRzCXgyMSwgeDgsIHgyMQorCXVtdWxoCXgyNCwgeDMsIHgxMAorCXVtdWxoCXgyNiwgeDMsIHgx
MQorCWFkY3MJeDIyLCB4OSwgeDIyCisJbXVsCXg4LCB4MywgeDEwCisJbXVsCXg5LCB4MywgeDEx
CisJYWRjCXgyNSwgeDI1LCB4enIKKworICAgICAgICAvLyBDMC1DMSwgVDEsIEM3IDwtIEFMIHgg
QkwKKwltdWwJeDMsIHg0LCB4MTAKKwl1bXVsaAl4MTAsIHg0LCB4MTAKKwlhZGRzCXg5LCB4OSwg
eDI0CisJYWRjCXgyNiwgeDI2LCB4enIKKworCW11bAl4MjMsIHg0LCB4MTEKKwl1bXVsaAl4MTEs
IHg0LCB4MTEKKwlhZGRzCXg5LCB4OSwgeDMKKwlhZGNzCXgyNiwgeDI2LCB4MTAKKwlhZGMJeDI0
LCB4enIsIHh6cgorCisJYWRkcwl4MjYsIHgyNiwgeDIzCisJYWRjCXgyNCwgeDI0LCB4MTEKKwor
CisgICAgICAgIC8vIEMyLUM1LCBUMCA8LSAoQUgrQUwpIHggKEJIK0JMKSAtIEFMeEJMCisJbXVs
CXgzLCB4NSwgeDEyCisJdW11bGgJeDEwLCB4NSwgeDEyCisJc3Vicwl4MTksIHgxOSwgeDgKKwlz
YmNzCXgyMCwgeDIwLCB4OQorCXNiY3MJeDIxLCB4MjEsIHgyNgorCW11bAl4NCwgeDUsIHgxMwor
CXVtdWxoCXgyMywgeDUsIHgxMworCXNiY3MJeDIyLCB4MjIsIHgyNAorCXNiYwl4MjUsIHgyNSwg
eHpyCisKKyAgICAgICAgLy8gQTAsIEExLCBDNiwgQjAgPC0gQUggeCBCSAorCW11bAl4NSwgeDYs
IHgxMgorCXVtdWxoCXgxMiwgeDYsIHgxMgorCWFkZHMJeDQsIHg0LCB4MTAKKwlhZGMJeDIzLCB4
MjMsIHh6cgorCisJbXVsCXgxMSwgeDYsIHgxMworCXVtdWxoCXgxMywgeDYsIHgxMworCWFkZHMJ
eDQsIHg0LCB4NQorCWFkY3MJeDIzLCB4MjMsIHgxMgorCWFkYwl4MTAsIHh6ciwgeHpyCisKKwlh
ZGRzCXgyMywgeDIzLCB4MTEKKwlhZGMJeDEwLCB4MTAsIHgxMworCisKKyAgICAgICAgLy8gQzIt
QzUsIFQwIDwtIChBSCtBTCkgeCAoQkgrQkwpIC0gQUx4QkwgLSBBSHhCSAorCXN1YnMJeDE5LCB4
MTksIHgzCisJc2Jjcwl4MjAsIHgyMCwgeDQKKwlzYmNzCXgyMSwgeDIxLCB4MjMKKwlzYmNzCXgy
MiwgeDIyLCB4MTAKKwlzYmMJeDI1LCB4MjUsIHh6cgorCisJYWRkcwl4MTksIHgxOSwgeDI2CisJ
YWRjcwl4MjAsIHgyMCwgeDI0CisJYWRjcwl4MjEsIHgyMSwgeDMKKwlhZGNzCXgyMiwgeDIyLCB4
NAorCWFkY3MJeDIzLCB4MjUsIHgyMworCWFkYwl4MjQsIHgxMCwgeHpyCisKKworICAgICAgICAv
LyB4MTUteDE5LCB4NyA8LSAoQUgrQUwpIHggKEJIK0JMKSwgZmluYWwgc3RlcAorCWFkZHMJeDE0
LCB4MTQsIHgyMQorCWFkY3MJeDE1LCB4MTUsIHgyMgorCWFkY3MJeDE2LCB4MTYsIHgyMworCWFk
Y3MJeDE3LCB4MTcsIHgyNAorCWFkYwl4NywgeDcsIHh6cgorCisgICAgICAgIC8vIExvYWQgQUwK
KwlsZHAJeDMsIHg0LCBbeDBdCisJbGRwCXg1LCB4NiwgW3gwLCMxNl0KKyAgICAgICAgLy8gTG9h
ZCBCTAorCWxkcAl4MTAsIHgxMSwgW3gxLCMwXQorCWxkcAl4MTIsIHgxMywgW3gxLCMxNl0KKwor
ICAgICAgICAvLyBUZW1wb3JhcmlseSBzdG9yZSB4OCBpbiB4MgorCXN0cAl4OCwgeDksIFt4Miwj
MF0KKyAgICAgICAgLy8geDIxLXgyOCA8LSBBTCB4IEJMCisgICAgICAgICAgICAgICAgLy8gQTAt
QTEgPC0gQUggKyBBTCwgVDAgPC0gbWFzaworCWFkZHMJeDMsIHgzLCB4NQorCWFkY3MJeDQsIHg0
LCB4NgorCWFkYwl4OCwgeHpyLCB4enIKKworICAgICAgICAvLyBDNiwgVDEgPC0gQkggKyBCTCwg
QzcgPC0gbWFzaworCWFkZHMJeDI3LCB4MTAsIHgxMgorCWFkY3MJeDksIHgxMSwgeDEzCisJYWRj
CXgyOCwgeHpyLCB4enIKKworICAgICAgICAvLyBDMC1DMSA8LSBtYXNrZWQgKEJIICsgQkwpCisJ
c3ViCXgyMywgeHpyLCB4OAorCXN1Ygl4MjQsIHh6ciwgeDI4CisJYW5kCXgyMSwgeDI3LCB4MjMK
KwlhbmQJeDIyLCB4OSwgeDIzCisKKyAgICAgICAgLy8gQzQtQzUgPC0gbWFza2VkIChBSCArIEFM
KSwgVDAgPC0gY29tYmluZWQgY2FycnkKKwlhbmQJeDI1LCB4MywgeDI0CisJYW5kCXgyNiwgeDQs
IHgyNAorCW11bAl4MjMsIHgzLCB4MjcKKwltdWwJeDI0LCB4MywgeDkKKwlhbmQJeDgsIHg4LCB4
MjgKKworICAgICAgICAvLyBDMC1DMSwgVDAgPC0gKEFIK0FMKSB4IChCSCtCTCksIHBhcnQgMQor
CWFkZHMJeDIxLCB4MjUsIHgyMQorCXVtdWxoCXgyNSwgeDMsIHg5CisJYWRjcwl4MjIsIHgyNiwg
eDIyCisJdW11bGgJeDI2LCB4MywgeDI3CisJYWRjCXg4LCB4OCwgeHpyCisKKyAgICAgICAgLy8g
QzItQzUgPC0gKEFIK0FMKSB4IChCSCtCTCksIGxvdyBwYXJ0CisJbXVsCXgzLCB4NCwgeDI3CisJ
dW11bGgJeDI3LCB4NCwgeDI3CisJYWRkcwl4MjQsIHgyNCwgeDI2CisJYWRjCXgyNSwgeDI1LCB4
enIKKworCW11bAl4MjgsIHg0LCB4OQorCXVtdWxoCXg5LCB4NCwgeDkKKwlhZGRzCXgyNCwgeDI0
LCB4MworCWFkY3MJeDI1LCB4MjUsIHgyNworCWFkYwl4MjYsIHh6ciwgeHpyCisKKwlhZGRzCXgy
NSwgeDI1LCB4MjgKKwlhZGMJeDI2LCB4MjYsIHg5CisKKwlsZHAJeDMsIHg0LCBbeDAsIzBdCisK
KyAgICAgICAgLy8gQzItQzUsIFQwIDwtIChBSCtBTCkgeCAoQkgrQkwpLCBmaW5hbCBwYXJ0CisJ
YWRkcwl4MjUsIHgyMSwgeDI1CisJdW11bGgJeDI4LCB4MywgeDEwCisJdW11bGgJeDksIHgzLCB4
MTEKKwlhZGNzCXgyNiwgeDIyLCB4MjYKKwltdWwJeDIxLCB4MywgeDEwCisJbXVsCXgyMiwgeDMs
IHgxMQorCWFkYwl4OCwgeDgsIHh6cgorCisgICAgICAgIC8vIEMwLUMxLCBUMSwgQzcgPC0gQUwg
eCBCTAorCW11bAl4MywgeDQsIHgxMAorCXVtdWxoCXgxMCwgeDQsIHgxMAorCWFkZHMJeDIyLCB4
MjIsIHgyOAorCWFkYwl4OSwgeDksIHh6cgorCisJbXVsCXgyNywgeDQsIHgxMQorCXVtdWxoCXgx
MSwgeDQsIHgxMQorCWFkZHMJeDIyLCB4MjIsIHgzCisJYWRjcwl4OSwgeDksIHgxMAorCWFkYwl4
MjgsIHh6ciwgeHpyCisKKwlhZGRzCXg5LCB4OSwgeDI3CisJYWRjCXgyOCwgeDI4LCB4MTEKKwor
CisgICAgICAgIC8vIEMyLUM1LCBUMCA8LSAoQUgrQUwpIHggKEJIK0JMKSAtIEFMeEJMCisJbXVs
CXgzLCB4NSwgeDEyCisJdW11bGgJeDEwLCB4NSwgeDEyCisJc3Vicwl4MjMsIHgyMywgeDIxCisJ
c2Jjcwl4MjQsIHgyNCwgeDIyCisJc2Jjcwl4MjUsIHgyNSwgeDkKKwltdWwJeDQsIHg1LCB4MTMK
Kwl1bXVsaAl4MjcsIHg1LCB4MTMKKwlzYmNzCXgyNiwgeDI2LCB4MjgKKwlzYmMJeDgsIHg4LCB4
enIKKworICAgICAgICAvLyBBMCwgQTEsIEM2LCBCMCA8LSBBSCB4IEJICisJbXVsCXg1LCB4Niwg
eDEyCisJdW11bGgJeDEyLCB4NiwgeDEyCisJYWRkcwl4NCwgeDQsIHgxMAorCWFkYwl4MjcsIHgy
NywgeHpyCisKKwltdWwJeDExLCB4NiwgeDEzCisJdW11bGgJeDEzLCB4NiwgeDEzCisJYWRkcwl4
NCwgeDQsIHg1CisJYWRjcwl4MjcsIHgyNywgeDEyCisJYWRjCXgxMCwgeHpyLCB4enIKKworCWFk
ZHMJeDI3LCB4MjcsIHgxMQorCWFkYwl4MTAsIHgxMCwgeDEzCisKKworICAgICAgICAvLyBDMi1D
NSwgVDAgPC0gKEFIK0FMKSB4IChCSCtCTCkgLSBBTHhCTCAtIEFIeEJICisJc3Vicwl4MjMsIHgy
MywgeDMKKwlzYmNzCXgyNCwgeDI0LCB4NAorCXNiY3MJeDI1LCB4MjUsIHgyNworCXNiY3MJeDI2
LCB4MjYsIHgxMAorCXNiYwl4OCwgeDgsIHh6cgorCisJYWRkcwl4MjMsIHgyMywgeDkKKwlhZGNz
CXgyNCwgeDI0LCB4MjgKKwlhZGNzCXgyNSwgeDI1LCB4MworCWFkY3MJeDI2LCB4MjYsIHg0CisJ
YWRjcwl4MjcsIHg4LCB4MjcKKwlhZGMJeDI4LCB4MTAsIHh6cgorCisgICAgICAgIC8vIFJlc3Rv
cmUgeDgKKwlsZHAJeDgsIHg5LCBbeDIsIzBdCisKKyAgICAgICAgLy8geDgteDEwLHgyMCx4MTUt
eDE3LHgxOSA8LSBtYXNrZCAoQUgrQUwpIHggKEJIK0JMKSAtIEFMeEJMCisJc3Vicwl4OCwgeDgs
IHgyMQorCXNiY3MJeDksIHg5LCB4MjIKKwlzYmNzCXgxOSwgeDE5LCB4MjMKKwlzYmNzCXgyMCwg
eDIwLCB4MjQKKwlzYmNzCXgxNCwgeDE0LCB4MjUKKwlzYmNzCXgxNSwgeDE1LCB4MjYKKwlzYmNz
CXgxNiwgeDE2LCB4MjcKKwlzYmNzCXgxNywgeDE3LCB4MjgKKwlzYmMJeDcsIHg3LCB4enIKKwor
ICAgICAgICAvLyBTdG9yZSBBTHhCTCwgbG93CisJc3RwCXgyMSwgeDIyLCBbeDJdCisJc3RwCXgy
MywgeDI0LCBbeDIsIzE2XQorCisgICAgICAgIC8vIExvYWQgQUgKKwlsZHAJeDMsIHg0LCBbeDAs
IzMyXQorCWxkcgl4NSwgICAgIFt4MCwjNDhdCisgICAgICAgIC8vIExvYWQgQkgKKwlsZHAJeDEw
LCB4MTEsIFt4MSwjMzJdCisJbGRyCXgxMiwgICAgICBbeDEsIzQ4XQorCisJYWRkcwl4OCwgIHg4
LCB4MjUKKwlhZGNzCXg5LCAgeDksIHgyNgorCWFkY3MJeDE5LCB4MTksIHgyNworCWFkY3MJeDIw
LCB4MjAsIHgyOAorCWFkYwl4MSwgeHpyLCB4enIKKworCWFkZAl4MCwgeDAsICMzMgorICAgICAg
ICAvLyBUZW1wb3JhcmlseSBzdG9yZSB4OCx4OSBpbiB4MgorCXN0cAl4OCx4OSwgW3gyLCMzMl0K
KyAgICAgICAgLy8geDIxLXgyOCA8LSBBSCB4IEJICisKKyAgICAgICAgLy8gQTAgKiBCMAorCW11
bAl4MjEsIHgzLCB4MTAgIC8vIEMwCisJdW11bGgJeDI0LCB4MywgeDEwCisKKyAgICAgICAgLy8g
QTAgKiBCMQorCW11bAl4MjIsIHgzLCB4MTEKKwl1bXVsaAl4MjMsIHgzLCB4MTEKKworICAgICAg
ICAvLyBBMSAqIEIwCisJbXVsCXg4LCB4NCwgeDEwCisJdW11bGgJeDksIHg0LCB4MTAKKwlhZGRz
CXgyMiwgeDIyLCB4MjQKKwlhZGMJeDIzLCB4MjMsIHh6cgorCisgICAgICAgIC8vIEEwICogQjIK
KwltdWwJeDI3LCB4MywgeDEyCisJdW11bGgJeDI4LCB4MywgeDEyCisJYWRkcwl4MjIsIHgyMiwg
eDggIC8vIEMxCisJYWRjcwl4MjMsIHgyMywgeDkKKwlhZGMJeDI0LCB4enIsIHh6cgorCisgICAg
ICAgIC8vIEEyICogQjAKKwltdWwJeDgsIHg1LCB4MTAKKwl1bXVsaAl4MjUsIHg1LCB4MTAKKwlh
ZGRzCXgyMywgeDIzLCB4MjcKKwlhZGNzCXgyNCwgeDI0LCB4MjUKKwlhZGMJeDI1LCB4enIsIHh6
cgorCisgICAgICAgIC8vIEExICogQjEKKwltdWwJeDI3LCB4NCwgeDExCisJdW11bGgJeDksIHg0
LCB4MTEKKwlhZGRzCXgyMywgeDIzLCB4OAorCWFkY3MJeDI0LCB4MjQsIHgyOAorCWFkYwl4MjUs
IHgyNSwgeHpyCisKKyAgICAgICAgLy8gQTEgKiBCMgorCW11bAl4OCwgeDQsIHgxMgorCXVtdWxo
CXgyOCwgeDQsIHgxMgorCWFkZHMJeDIzLCB4MjMsIHgyNyAvLyBDMgorCWFkY3MJeDI0LCB4MjQs
IHg5CisJYWRjCXgyNSwgeDI1LCB4enIKKworICAgICAgICAvLyBBMiAqIEIxCisJbXVsCXgyNywg
eDUsIHgxMQorCXVtdWxoCXg5LCB4NSwgeDExCisJYWRkcwl4MjQsIHgyNCwgeDgKKwlhZGNzCXgy
NSwgeDI1LCB4MjgKKwlhZGMJeDI2LCB4enIsIHh6cgorCisgICAgICAgIC8vIEEyICogQjIKKwlt
dWwJeDgsIHg1LCB4MTIKKwl1bXVsaAl4MjgsIHg1LCB4MTIKKwlhZGRzCXgyNCwgeDI0LCB4Mjcg
Ly8gQzMKKwlhZGNzCXgyNSwgeDI1LCB4OQorCWFkYwl4MjYsIHgyNiwgeHpyCisKKwlhZGRzCXgy
NSwgeDI1LCB4OCAvLyBDNAorCWFkYwl4MjYsIHgyNiwgeDI4IC8vIEM1CisKKyAgICAgICAgLy8g
UmVzdG9yZSB4OCx4OQorCWxkcAl4OCx4OSwgW3gyLCMzMl0KKworCW5lZwl4MSwgeDEKKworICAg
ICAgICAvLyB4OC14OSx4MTkseDIwLHgxNC14MTcgPC0gKEFIK0FMKSB4IChCSCtCTCkgLSBBTHhC
TCAtIEFIeEJICisJc3Vicwl4OCwgeDgsIHgyMQorCXNiY3MJeDksIHg5LCB4MjIKKwlzYmNzCXgx
OSwgeDE5LCB4MjMKKwlzYmNzCXgyMCwgeDIwLCB4MjQKKwlzYmNzCXgxNCwgeDE0LCB4MjUKKwlz
YmNzCXgxNSwgeDE1LCB4MjYKKwlzYmNzCXgxNiwgeDE2LCB4enIKKwlzYmNzCXgxNywgeDE3LCB4
enIKKwlzYmMJeDcsIHg3LCB4enIKKworICAgICAgICAvLyBTdG9yZSAoQUgrQUwpIHggKEJIK0JM
KSAtIEFMeEJMIC0gQUh4QkgsIGxvdworCXN0cAl4OCwgIHg5LCBbeDIsIzMyXQorCXN0cAl4MTks
IHgyMCwgW3gyLCM0OF0KKworCWFkZHMJeDEsICB4MSwgIzEKKwlhZGNzCXgxNCwgeDE0LCB4MjEK
KwlhZGNzCXgxNSwgeDE1LCB4MjIKKwlhZGNzCXgxNiwgeDE2LCB4MjMKKwlhZGNzCXgxNywgeDE3
LCB4MjQKKwlhZGNzCXgyNSwgIHg3LCB4MjUKKwlhZGMJeDI2LCB4MjYsIHh6cgorCisJc3RwCXgx
NCwgeDE1LCBbeDIsIzY0XQorCXN0cAl4MTYsIHgxNywgW3gyLCM4MF0KKwlzdHAJeDI1LCB4MjYs
IFt4MiwjOTZdCisKKwlsZHAJeDE5LCB4MjAsIFt4MjksIzE2XQorCWxkcAl4MjEsIHgyMiwgW3gy
OSwjMzJdCisJbGRwCXgyMywgeDI0LCBbeDI5LCM0OF0KKwlsZHAJeDI1LCB4MjYsIFt4MjksIzY0
XQorCWxkcAl4MjcsIHgyOCwgW3gyOSwjODBdCisJbGRwCXgyOSwgeDMwLCBbc3BdLCM5NgorCXJl
dAorLmdsb2JsCV9zaWtlX2ZwcmRjCisucHJpdmF0ZV9leHRlcm4JX3Npa2VfZnByZGMKKy5hbGln
bgk0Citfc2lrZV9mcHJkYzoKKwlzdHAJeDI5LCB4MzAsIFtzcCwgIy05Nl0hCisJYWRkCXgyOSwg
c3AsIHh6cgorCXN0cAl4MTksIHgyMCwgW3NwLCMxNl0KKwlzdHAJeDIxLCB4MjIsIFtzcCwjMzJd
CisJc3RwCXgyMywgeDI0LCBbc3AsIzQ4XQorCXN0cAl4MjUsIHgyNiwgW3NwLCM2NF0KKwlzdHAJ
eDI3LCB4MjgsIFtzcCwjODBdCisKKwlsZHAJeDIsIHgzLCBbeDAsIzBdICAgICAgIC8vIGFbMC0x
XQorCisgICAgICAgIC8vIExvYWQgdGhlIHByaW1lIGNvbnN0YW50CisJYWRycAl4MjYsIExwNDM0
cDFAUEFHRQorCWFkZAl4MjYsIHgyNiwgTHA0MzRwMUBQQUdFT0ZGCisJbGRwCXgyMywgeDI0LCBb
eDI2LCAjMHgwXQorCWxkcAl4MjUsIHgyNiwgW3gyNiwjMHgxMF0KKworICAgICAgICAvLyBhWzAt
MV0gKiBwNDM0KzEKKwltdWwJeDQsIHgyLCB4MjMgIC8vIEMwCisJdW11bGgJeDcsIHgyLCB4MjMK
KworCW11bAl4NSwgeDIsIHgyNAorCXVtdWxoCXg2LCB4MiwgeDI0CisKKwltdWwJeDEwLCB4Mywg
eDIzCisJdW11bGgJeDExLCB4MywgeDIzCisJYWRkcwl4NSwgeDUsIHg3CisJYWRjCXg2LCB4Niwg
eHpyCisKKwltdWwJeDI3LCB4MiwgeDI1CisJdW11bGgJeDI4LCB4MiwgeDI1CisJYWRkcwl4NSwg
eDUsIHgxMCAgLy8gQzEKKwlhZGNzCXg2LCB4NiwgeDExCisJYWRjCXg3LCB4enIsIHh6cgorCisJ
bXVsCXgxMCwgeDMsIHgyNAorCXVtdWxoCXgxMSwgeDMsIHgyNAorCWFkZHMJeDYsIHg2LCB4MjcK
KwlhZGNzCXg3LCB4NywgeDI4CisJYWRjCXg4LCB4enIsIHh6cgorCisJbXVsCXgyNywgeDIsIHgy
NgorCXVtdWxoCXgyOCwgeDIsIHgyNgorCWFkZHMJeDYsIHg2LCB4MTAgIC8vIEMyCisJYWRjcwl4
NywgeDcsIHgxMQorCWFkYwl4OCwgeDgsIHh6cgorCisJbXVsCXgxMCwgeDMsIHgyNQorCXVtdWxo
CXgxMSwgeDMsIHgyNQorCWFkZHMJeDcsIHg3LCB4MjcKKwlhZGNzCXg4LCB4OCwgeDI4CisJYWRj
CXg5LCB4enIsIHh6cgorCisJbXVsCXgyNywgeDMsIHgyNgorCXVtdWxoCXgyOCwgeDMsIHgyNgor
CWFkZHMJeDcsIHg3LCB4MTAgIC8vIEMzCisJYWRjcwl4OCwgeDgsIHgxMQorCWFkYwl4OSwgeDks
IHh6cgorCWFkZHMJeDgsIHg4LCB4MjcgIC8vIEM0CisJYWRjCXg5LCB4OSwgeDI4ICAvLyBDNQor
CisKKworCWxkcAl4MTAsIHgxMSwgW3gwLCAjMHgxOF0KKwlsZHAJeDEyLCB4MTMsIFt4MCwgIzB4
MjhdCisJbGRwCXgxNCwgeDE1LCBbeDAsICMweDM4XQorCWxkcAl4MTYsIHgxNywgW3gwLCAjMHg0
OF0KKwlsZHAJeDE5LCB4MjAsIFt4MCwgIzB4NThdCisJbGRyCXgyMSwgICAgICBbeDAsICMweDY4
XQorCisJYWRkcwl4MTAsIHgxMCwgeDQKKwlhZGNzCXgxMSwgeDExLCB4NQorCWFkY3MJeDEyLCB4
MTIsIHg2CisJYWRjcwl4MTMsIHgxMywgeDcKKwlhZGNzCXgxNCwgeDE0LCB4OAorCWFkY3MJeDE1
LCB4MTUsIHg5CisJYWRjcwl4MjIsIHgxNiwgeHpyCisJYWRjcwl4MTcsIHgxNywgeHpyCisJYWRj
cwl4MTksIHgxOSwgeHpyCisJYWRjcwl4MjAsIHgyMCwgeHpyCisJYWRjCXgyMSwgeDIxLCB4enIK
KworCWxkcgl4MiwgIFt4MCwjMHgxMF0gICAgICAgLy8gYVsyXQorICAgICAgICAvLyBhWzItM10g
KiBwNDM0KzEKKwltdWwJeDQsIHgyLCB4MjMgIC8vIEMwCisJdW11bGgJeDcsIHgyLCB4MjMKKwor
CW11bAl4NSwgeDIsIHgyNAorCXVtdWxoCXg2LCB4MiwgeDI0CisKKwltdWwJeDAsIHgxMCwgeDIz
CisJdW11bGgJeDMsIHgxMCwgeDIzCisJYWRkcwl4NSwgeDUsIHg3CisJYWRjCXg2LCB4NiwgeHpy
CisKKwltdWwJeDI3LCB4MiwgeDI1CisJdW11bGgJeDI4LCB4MiwgeDI1CisJYWRkcwl4NSwgeDUs
IHgwICAvLyBDMQorCWFkY3MJeDYsIHg2LCB4MworCWFkYwl4NywgeHpyLCB4enIKKworCW11bAl4
MCwgeDEwLCB4MjQKKwl1bXVsaAl4MywgeDEwLCB4MjQKKwlhZGRzCXg2LCB4NiwgeDI3CisJYWRj
cwl4NywgeDcsIHgyOAorCWFkYwl4OCwgeHpyLCB4enIKKworCW11bAl4MjcsIHgyLCB4MjYKKwl1
bXVsaAl4MjgsIHgyLCB4MjYKKwlhZGRzCXg2LCB4NiwgeDAgIC8vIEMyCisJYWRjcwl4NywgeDcs
IHgzCisJYWRjCXg4LCB4OCwgeHpyCisKKwltdWwJeDAsIHgxMCwgeDI1CisJdW11bGgJeDMsIHgx
MCwgeDI1CisJYWRkcwl4NywgeDcsIHgyNworCWFkY3MJeDgsIHg4LCB4MjgKKwlhZGMJeDksIHh6
ciwgeHpyCisKKwltdWwJeDI3LCB4MTAsIHgyNgorCXVtdWxoCXgyOCwgeDEwLCB4MjYKKwlhZGRz
CXg3LCB4NywgeDAgIC8vIEMzCisJYWRjcwl4OCwgeDgsIHgzCisJYWRjCXg5LCB4OSwgeHpyCisJ
YWRkcwl4OCwgeDgsIHgyNyAgLy8gQzQKKwlhZGMJeDksIHg5LCB4MjggIC8vIEM1CisKKworCisJ
YWRkcwl4MTIsIHgxMiwgeDQKKwlhZGNzCXgxMywgeDEzLCB4NQorCWFkY3MJeDE0LCB4MTQsIHg2
CisJYWRjcwl4MTUsIHgxNSwgeDcKKwlhZGNzCXgxNiwgeDIyLCB4OAorCWFkY3MJeDE3LCB4MTcs
IHg5CisJYWRjcwl4MjIsIHgxOSwgeHpyCisJYWRjcwl4MjAsIHgyMCwgeHpyCisJYWRjCXgyMSwg
eDIxLCB4enIKKworCW11bAl4NCwgeDExLCB4MjMgIC8vIEMwCisJdW11bGgJeDcsIHgxMSwgeDIz
CisKKwltdWwJeDUsIHgxMSwgeDI0CisJdW11bGgJeDYsIHgxMSwgeDI0CisKKwltdWwJeDEwLCB4
MTIsIHgyMworCXVtdWxoCXgzLCB4MTIsIHgyMworCWFkZHMJeDUsIHg1LCB4NworCWFkYwl4Niwg
eDYsIHh6cgorCisJbXVsCXgyNywgeDExLCB4MjUKKwl1bXVsaAl4MjgsIHgxMSwgeDI1CisJYWRk
cwl4NSwgeDUsIHgxMCAgLy8gQzEKKwlhZGNzCXg2LCB4NiwgeDMKKwlhZGMJeDcsIHh6ciwgeHpy
CisKKwltdWwJeDEwLCB4MTIsIHgyNAorCXVtdWxoCXgzLCB4MTIsIHgyNAorCWFkZHMJeDYsIHg2
LCB4MjcKKwlhZGNzCXg3LCB4NywgeDI4CisJYWRjCXg4LCB4enIsIHh6cgorCisJbXVsCXgyNywg
eDExLCB4MjYKKwl1bXVsaAl4MjgsIHgxMSwgeDI2CisJYWRkcwl4NiwgeDYsIHgxMCAgLy8gQzIK
KwlhZGNzCXg3LCB4NywgeDMKKwlhZGMJeDgsIHg4LCB4enIKKworCW11bAl4MTAsIHgxMiwgeDI1
CisJdW11bGgJeDMsIHgxMiwgeDI1CisJYWRkcwl4NywgeDcsIHgyNworCWFkY3MJeDgsIHg4LCB4
MjgKKwlhZGMJeDksIHh6ciwgeHpyCisKKwltdWwJeDI3LCB4MTIsIHgyNgorCXVtdWxoCXgyOCwg
eDEyLCB4MjYKKwlhZGRzCXg3LCB4NywgeDEwICAvLyBDMworCWFkY3MJeDgsIHg4LCB4MworCWFk
Ywl4OSwgeDksIHh6cgorCWFkZHMJeDgsIHg4LCB4MjcgIC8vIEM0CisJYWRjCXg5LCB4OSwgeDI4
ICAvLyBDNQorCisKKwlhZGRzCXgxNCwgeDE0LCB4NAorCWFkY3MJeDE1LCB4MTUsIHg1CisJYWRj
cwl4MTYsIHgxNiwgeDYKKwlhZGNzCXgxNywgeDE3LCB4NworCWFkY3MJeDE5LCB4MjIsIHg4CisJ
YWRjcwl4MjAsIHgyMCwgeDkKKwlhZGMJeDIyLCB4MjEsIHh6cgorCisJc3RwCXgxNCwgeDE1LCBb
eDEsICMweDBdICAgICAvLyBDMCwgQzEKKworCW11bAl4NCwgeDEzLCB4MjMgICAgLy8gQzAKKwl1
bXVsaAl4MTAsIHgxMywgeDIzCisKKwltdWwJeDUsIHgxMywgeDI0CisJdW11bGgJeDI3LCB4MTMs
IHgyNAorCWFkZHMJeDUsIHg1LCB4MTAgICAgLy8gQzEKKwlhZGMJeDEwLCB4enIsIHh6cgorCisJ
bXVsCXg2LCB4MTMsIHgyNQorCXVtdWxoCXgyOCwgeDEzLCB4MjUKKwlhZGRzCXgyNywgeDEwLCB4
MjcKKwlhZGNzCXg2LCB4NiwgeDI3ICAgIC8vIEMyCisJYWRjCXgxMCwgeHpyLCB4enIKKworCW11
bAl4NywgeDEzLCB4MjYKKwl1bXVsaAl4OCwgeDEzLCB4MjYKKwlhZGRzCXgyOCwgeDEwLCB4MjgK
KwlhZGNzCXg3LCB4NywgeDI4ICAgIC8vIEMzCisJYWRjCXg4LCB4OCwgeHpyICAgIC8vIEM0CisK
KwlhZGRzCXgxNiwgeDE2LCB4NAorCWFkY3MJeDE3LCB4MTcsIHg1CisJYWRjcwl4MTksIHgxOSwg
eDYKKwlhZGNzCXgyMCwgeDIwLCB4NworCWFkYwl4MjEsIHgyMiwgeDgKKworCXN0cgl4MTYsICAg
ICAgIFt4MSwgIzB4MTBdCisJc3RwCXgxNywgeDE5LCAgW3gxLCAjMHgxOF0KKwlzdHAJeDIwLCB4
MjEsICBbeDEsICMweDI4XQorCisJbGRwCXgxOSwgeDIwLCBbeDI5LCMxNl0KKwlsZHAJeDIxLCB4
MjIsIFt4MjksIzMyXQorCWxkcAl4MjMsIHgyNCwgW3gyOSwjNDhdCisJbGRwCXgyNSwgeDI2LCBb
eDI5LCM2NF0KKwlsZHAJeDI3LCB4MjgsIFt4MjksIzgwXQorCWxkcAl4MjksIHgzMCwgW3NwXSwj
OTYKKwlyZXQKKy5nbG9ibAlfc2lrZV9mcGFkZAorLnByaXZhdGVfZXh0ZXJuCV9zaWtlX2ZwYWRk
CisuYWxpZ24JNAorX3Npa2VfZnBhZGQ6CisJc3RwCXgyOSx4MzAsIFtzcCwjLTE2XSEKKwlhZGQJ
eDI5LCBzcCwgIzAKKworCWxkcAl4MywgeDQsICAgW3gwLCMwXQorCWxkcAl4NSwgeDYsICAgW3gw
LCMxNl0KKwlsZHAJeDcsIHg4LCAgIFt4MCwjMzJdCisJbGRyCXg5LCAgICAgICBbeDAsIzQ4XQor
CWxkcAl4MTEsIHgxMiwgW3gxLCMwXQorCWxkcAl4MTMsIHgxNCwgW3gxLCMxNl0KKwlsZHAJeDE1
LCB4MTYsIFt4MSwjMzJdCisJbGRyCXgxNywgICAgICBbeDEsIzQ4XQorCisgICAgICAgIC8vIEFk
ZCBhICsgYgorCWFkZHMJeDMsIHgzLCB4MTEKKwlhZGNzCXg0LCB4NCwgeDEyCisJYWRjcwl4NSwg
eDUsIHgxMworCWFkY3MJeDYsIHg2LCB4MTQKKwlhZGNzCXg3LCB4NywgeDE1CisJYWRjcwl4OCwg
eDgsIHgxNgorCWFkYwl4OSwgeDksIHgxNworCisgICAgICAgIC8vICBTdWJ0cmFjdCAyeHA0MzQK
KwlhZHJwCXgxNywgTHA0MzR4MkBQQUdFCisJYWRkCXgxNywgeDE3LCBMcDQzNHgyQFBBR0VPRkYK
KwlsZHAJeDExLCB4MTIsIFt4MTcsICMwXQorCWxkcAl4MTMsIHgxNCwgW3gxNywgIzE2XQorCWxk
cAl4MTUsIHgxNiwgW3gxNywgIzMyXQorCXN1YnMJeDMsIHgzLCB4MTEKKwlzYmNzCXg0LCB4NCwg
eDEyCisJc2Jjcwl4NSwgeDUsIHgxMgorCXNiY3MJeDYsIHg2LCB4MTMKKwlzYmNzCXg3LCB4Nywg
eDE0CisJc2Jjcwl4OCwgeDgsIHgxNQorCXNiY3MJeDksIHg5LCB4MTYKKwlzYmMJeDAsIHh6ciwg
eHpyICAgIC8vIHgwIGNhbiBiZSByZXVzZWQgbm93CisKKyAgICAgICAgLy8gQWRkIDJ4cDQzNCBh
bmRlZCB3aXRoIHRoZSBtYXNrIGluIHgwCisJYW5kCXgxMSwgeDExLCB4MAorCWFuZAl4MTIsIHgx
MiwgeDAKKwlhbmQJeDEzLCB4MTMsIHgwCisJYW5kCXgxNCwgeDE0LCB4MAorCWFuZAl4MTUsIHgx
NSwgeDAKKwlhbmQJeDE2LCB4MTYsIHgwCisKKwlhZGRzCXgzLCB4MywgeDExCisJYWRjcwl4NCwg
eDQsIHgxMgorCWFkY3MJeDUsIHg1LCB4MTIKKwlhZGNzCXg2LCB4NiwgeDEzCisJYWRjcwl4Nywg
eDcsIHgxNAorCWFkY3MJeDgsIHg4LCB4MTUKKwlhZGMJeDksIHg5LCB4MTYKKworCXN0cAl4Mywg
eDQsICBbeDIsIzBdCisJc3RwCXg1LCB4NiwgIFt4MiwjMTZdCisJc3RwCXg3LCB4OCwgIFt4Miwj
MzJdCisJc3RyCXg5LCAgICAgIFt4MiwjNDhdCisKKwlsZHAJeDI5LCB4MzAsIFtzcF0sIzE2CisJ
cmV0CisuZ2xvYmwJX3Npa2VfZnBzdWIKKy5wcml2YXRlX2V4dGVybglfc2lrZV9mcHN1YgorLmFs
aWduCTQKK19zaWtlX2Zwc3ViOgorCXN0cAl4MjksIHgzMCwgW3NwLCMtMTZdIQorCWFkZAl4Mjks
IHNwLCAjMAorCisJbGRwCXgzLCB4NCwgICBbeDAsIzBdCisJbGRwCXg1LCB4NiwgICBbeDAsIzE2
XQorCWxkcAl4NywgeDgsICAgW3gwLCMzMl0KKwlsZHIJeDksICAgICAgIFt4MCwjNDhdCisJbGRw
CXgxMSwgeDEyLCBbeDEsIzBdCisJbGRwCXgxMywgeDE0LCBbeDEsIzE2XQorCWxkcAl4MTUsIHgx
NiwgW3gxLCMzMl0KKwlsZHIJeDE3LCAgICAgIFt4MSwjNDhdCisKKyAgICAgICAgLy8gU3VidHJh
Y3QgYSAtIGIKKwlzdWJzCXgzLCB4MywgeDExCisJc2Jjcwl4NCwgeDQsIHgxMgorCXNiY3MJeDUs
IHg1LCB4MTMKKwlzYmNzCXg2LCB4NiwgeDE0CisJc2Jjcwl4NywgeDcsIHgxNQorCXNiY3MJeDgs
IHg4LCB4MTYKKwlzYmNzCXg5LCB4OSwgeDE3CisJc2JjCXgwLCB4enIsIHh6cgorCisgICAgICAg
IC8vIEFkZCAyeHA0MzQgYW5kZWQgd2l0aCB0aGUgbWFzayBpbiB4MAorCWFkcnAJeDE3LCBMcDQz
NHgyQFBBR0UKKwlhZGQJeDE3LCB4MTcsIExwNDM0eDJAUEFHRU9GRgorCisgICAgICAgIC8vIEZp
cnN0IGhhbGYKKwlsZHAJeDExLCB4MTIsIFt4MTcsICMwXQorCWxkcAl4MTMsIHgxNCwgW3gxNywg
IzE2XQorCWxkcAl4MTUsIHgxNiwgW3gxNywgIzMyXQorCisgICAgICAgIC8vIEFkZCAyeHA0MzQg
YW5kZWQgd2l0aCB0aGUgbWFzayBpbiB4MAorCWFuZAl4MTEsIHgxMSwgeDAKKwlhbmQJeDEyLCB4
MTIsIHgwCisJYW5kCXgxMywgeDEzLCB4MAorCWFuZAl4MTQsIHgxNCwgeDAKKwlhbmQJeDE1LCB4
MTUsIHgwCisJYW5kCXgxNiwgeDE2LCB4MAorCisJYWRkcwl4MywgeDMsIHgxMQorCWFkY3MJeDQs
IHg0LCB4MTIKKwlhZGNzCXg1LCB4NSwgeDEyCisJYWRjcwl4NiwgeDYsIHgxMworCWFkY3MJeDcs
IHg3LCB4MTQKKwlhZGNzCXg4LCB4OCwgeDE1CisJYWRjCXg5LCB4OSwgeDE2CisKKwlzdHAJeDMs
IHg0LCAgW3gyLCMwXQorCXN0cAl4NSwgeDYsICBbeDIsIzE2XQorCXN0cAl4NywgeDgsICBbeDIs
IzMyXQorCXN0cgl4OSwgICAgICBbeDIsIzQ4XQorCisJbGRwCXgyOSwgeDMwLCBbc3BdLCMxNgor
CXJldAorLmdsb2JsCV9zaWtlX21wYWRkX2FzbQorLnByaXZhdGVfZXh0ZXJuCV9zaWtlX21wYWRk
X2FzbQorLmFsaWduCTQKK19zaWtlX21wYWRkX2FzbToKKwlzdHAJeDI5LCB4MzAsIFtzcCwjLTE2
XSEKKwlhZGQJeDI5LCBzcCwgIzAKKworCWxkcAl4MywgeDQsICAgW3gwLCMwXQorCWxkcAl4NSwg
eDYsICAgW3gwLCMxNl0KKwlsZHAJeDcsIHg4LCAgIFt4MCwjMzJdCisJbGRyCXg5LCAgICAgICBb
eDAsIzQ4XQorCWxkcAl4MTEsIHgxMiwgW3gxLCMwXQorCWxkcAl4MTMsIHgxNCwgW3gxLCMxNl0K
KwlsZHAJeDE1LCB4MTYsIFt4MSwjMzJdCisJbGRyCXgxNywgICAgICBbeDEsIzQ4XQorCisJYWRk
cwl4MywgeDMsIHgxMQorCWFkY3MJeDQsIHg0LCB4MTIKKwlhZGNzCXg1LCB4NSwgeDEzCisJYWRj
cwl4NiwgeDYsIHgxNAorCWFkY3MJeDcsIHg3LCB4MTUKKwlhZGNzCXg4LCB4OCwgeDE2CisJYWRj
CXg5LCB4OSwgeDE3CisKKwlzdHAJeDMsIHg0LCAgIFt4MiwjMF0KKwlzdHAJeDUsIHg2LCAgIFt4
MiwjMTZdCisJc3RwCXg3LCB4OCwgICBbeDIsIzMyXQorCXN0cgl4OSwgICAgICAgW3gyLCM0OF0K
KworCWxkcAl4MjksIHgzMCwgW3NwXSwjMTYKKwlyZXQKKy5nbG9ibAlfc2lrZV9tcHN1YngyX2Fz
bQorLnByaXZhdGVfZXh0ZXJuCV9zaWtlX21wc3VieDJfYXNtCisuYWxpZ24JNAorX3Npa2VfbXBz
dWJ4Ml9hc206CisJc3RwCXgyOSwgeDMwLCBbc3AsIy0xNl0hCisJYWRkCXgyOSwgc3AsICMwCisK
KwlsZHAJeDMsIHg0LCAgIFt4MCwjMF0KKwlsZHAJeDUsIHg2LCAgIFt4MCwjMTZdCisJbGRwCXgx
MSwgeDEyLCBbeDEsIzBdCisJbGRwCXgxMywgeDE0LCBbeDEsIzE2XQorCXN1YnMJeDMsIHgzLCB4
MTEKKwlzYmNzCXg0LCB4NCwgeDEyCisJc2Jjcwl4NSwgeDUsIHgxMworCXNiY3MJeDYsIHg2LCB4
MTQKKwlsZHAJeDcsIHg4LCAgIFt4MCwjMzJdCisJbGRwCXg5LCB4MTAsICBbeDAsIzQ4XQorCWxk
cAl4MTEsIHgxMiwgW3gxLCMzMl0KKwlsZHAJeDEzLCB4MTQsIFt4MSwjNDhdCisJc2Jjcwl4Nywg
eDcsIHgxMQorCXNiY3MJeDgsIHg4LCB4MTIKKwlzYmNzCXg5LCB4OSwgeDEzCisJc2Jjcwl4MTAs
IHgxMCwgeDE0CisKKwlzdHAJeDMsIHg0LCAgIFt4MiwjMF0KKwlzdHAJeDUsIHg2LCAgIFt4Miwj
MTZdCisJc3RwCXg3LCB4OCwgICBbeDIsIzMyXQorCXN0cAl4OSwgeDEwLCAgW3gyLCM0OF0KKwor
CWxkcAl4MywgeDQsICAgW3gwLCM2NF0KKwlsZHAJeDUsIHg2LCAgIFt4MCwjODBdCisJbGRwCXgx
MSwgeDEyLCBbeDEsIzY0XQorCWxkcAl4MTMsIHgxNCwgW3gxLCM4MF0KKwlzYmNzCXgzLCB4Mywg
eDExCisJc2Jjcwl4NCwgeDQsIHgxMgorCXNiY3MJeDUsIHg1LCB4MTMKKwlzYmNzCXg2LCB4Niwg
eDE0CisJbGRwCXg3LCB4OCwgICBbeDAsIzk2XQorCWxkcAl4MTEsIHgxMiwgW3gxLCM5Nl0KKwlz
YmNzCXg3LCB4NywgeDExCisJc2Jjcwl4OCwgeDgsIHgxMgorCXNiYwl4MCwgeHpyLCB4enIKKwor
CXN0cAl4MywgeDQsICAgW3gyLCM2NF0KKwlzdHAJeDUsIHg2LCAgIFt4MiwjODBdCisJc3RwCXg3
LCB4OCwgICBbeDIsIzk2XQorCisJbGRwCXgyOSwgeDMwLCBbc3BdLCMxNgorCXJldAorLmdsb2Js
CV9zaWtlX21wZGJsc3VieDJfYXNtCisucHJpdmF0ZV9leHRlcm4JX3Npa2VfbXBkYmxzdWJ4Ml9h
c20KKy5hbGlnbgk0Citfc2lrZV9tcGRibHN1YngyX2FzbToKKwlzdHAJeDI5LCB4MzAsIFtzcCwg
Iy0xNl0hCisJYWRkCXgyOSwgc3AsICMwCisKKwlsZHAJeDMsIHg0LCAgIFt4MiwgIzBdCisJbGRw
CXg1LCB4NiwgICBbeDIsIzE2XQorCWxkcAl4NywgeDgsICAgW3gyLCMzMl0KKworCWxkcAl4MTEs
IHgxMiwgW3gwLCAjMF0KKwlsZHAJeDEzLCB4MTQsIFt4MCwjMTZdCisJbGRwCXgxNSwgeDE2LCBb
eDAsIzMyXQorCisJc3Vicwl4MywgeDMsIHgxMQorCXNiY3MJeDQsIHg0LCB4MTIKKwlzYmNzCXg1
LCB4NSwgeDEzCisJc2Jjcwl4NiwgeDYsIHgxNAorCXNiY3MJeDcsIHg3LCB4MTUKKwlzYmNzCXg4
LCB4OCwgeDE2CisKKyAgICAgICAgLy8geDkgc3RvcmVzIGNhcnJ5CisJYWRjCXg5LCB4enIsIHh6
cgorCisJbGRwCXgxMSwgeDEyLCBbeDEsICMwXQorCWxkcAl4MTMsIHgxNCwgW3gxLCMxNl0KKwls
ZHAJeDE1LCB4MTYsIFt4MSwjMzJdCisJc3Vicwl4MywgeDMsIHgxMQorCXNiY3MJeDQsIHg0LCB4
MTIKKwlzYmNzCXg1LCB4NSwgeDEzCisJc2Jjcwl4NiwgeDYsIHgxNAorCXNiY3MJeDcsIHg3LCB4
MTUKKwlzYmNzCXg4LCB4OCwgeDE2CisJYWRjCXg5LCB4OSwgeHpyCisKKwlzdHAJeDMsIHg0LCAg
IFt4MiwgIzBdCisJc3RwCXg1LCB4NiwgICBbeDIsIzE2XQorCXN0cAl4NywgeDgsICAgW3gyLCMz
Ml0KKworCWxkcAl4MywgeDQsICAgW3gyLCM0OF0KKwlsZHAJeDUsIHg2LCAgIFt4MiwjNjRdCisJ
bGRwCXg3LCB4OCwgICBbeDIsIzgwXQorCisJbGRwCXgxMSwgeDEyLCBbeDAsIzQ4XQorCWxkcAl4
MTMsIHgxNCwgW3gwLCM2NF0KKwlsZHAJeDE1LCB4MTYsIFt4MCwjODBdCisKKyAgICAgICAgLy8g
eDkgPSAyIC0geDkKKwluZWcJeDksIHg5CisJYWRkCXg5LCB4OSwgIzIKKworCXN1YnMJeDMsIHgz
LCB4OQorCXNiY3MJeDMsIHgzLCB4MTEKKwlzYmNzCXg0LCB4NCwgeDEyCisJc2Jjcwl4NSwgeDUs
IHgxMworCXNiY3MJeDYsIHg2LCB4MTQKKwlzYmNzCXg3LCB4NywgeDE1CisJc2Jjcwl4OCwgeDgs
IHgxNgorCWFkYwl4OSwgeHpyLCB4enIKKworCWxkcAl4MTEsIHgxMiwgW3gxLCM0OF0KKwlsZHAJ
eDEzLCB4MTQsIFt4MSwjNjRdCisJbGRwCXgxNSwgeDE2LCBbeDEsIzgwXQorCXN1YnMJeDMsIHgz
LCB4MTEKKwlzYmNzCXg0LCB4NCwgeDEyCisJc2Jjcwl4NSwgeDUsIHgxMworCXNiY3MJeDYsIHg2
LCB4MTQKKwlzYmNzCXg3LCB4NywgeDE1CisJc2Jjcwl4OCwgeDgsIHgxNgorCWFkYwl4OSwgeDks
IHh6cgorCisJc3RwCXgzLCB4NCwgICBbeDIsIzQ4XQorCXN0cAl4NSwgeDYsICAgW3gyLCM2NF0K
KwlzdHAJeDcsIHg4LCAgIFt4MiwjODBdCisKKwlsZHAJeDMsICB4NCwgW3gyLCM5Nl0KKwlsZHAJ
eDExLCB4MTIsIFt4MCwjOTZdCisJbGRwCXgxMywgeDE0LCBbeDEsIzk2XQorCisgICAgICAgIC8v
IHg5ID0gMiAtIHg5CisJbmVnCXg5LCB4OQorCWFkZAl4OSwgeDksICMyCisKKwlzdWJzCXgzLCB4
MywgeDkKKwlzYmNzCXgzLCB4MywgeDExCisJc2Jjcwl4NCwgeDQsIHgxMgorCXN1YnMJeDMsIHgz
LCB4MTMKKwlzYmMJeDQsIHg0LCB4MTQKKwlzdHAJeDMsIHg0LCAgIFt4MiwjOTZdCisKKwlsZHAJ
eDI5LCB4MzAsIFtzcF0sIzE2CisJcmV0CisjZW5kaWYgIC8vICFPUEVOU1NMX05PX0FTTQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12NC5TIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9j
cnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12NC5TCmluZGV4IDc5ZDQzODk4YzUxMmE4M2QxYjA4ZTYw
MTI1MjliODE5MGUwZTQzNGQuLmNhZGYyYjYyM2I5Nzg1ZTI5YmFmMTY4NWE5MmY1NzJlODRkNTg3
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjQuUworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9pb3MtYXJtL2NyeXB0by9jaGFjaGEvY2hhY2hhLWFybXY0LlMKQEAgLTEsMTEgKzEsMTIgQEAK
IC8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNj
cmlwdCBpbiB0aGUgQm9yaW5nU1NMCiAvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFu
ZC4KIAotI2lmIGRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0
dXJlKQorI2RlZmluZSBfX2hhc19mZWF0dXJlKHgpIDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1
cmUobWVtb3J5X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5l
IE9QRU5TU0xfTk9fQVNNCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9O
T19BU00pCiAjaWYgZGVmaW5lZChCT1JJTkdTU0xfUFJFRklYKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFy
bS9jcnlwdG8vZmlwc21vZHVsZS9hZXMtYXJtdjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1
bGUvYWVzLWFybXY0LlMKaW5kZXggMmZlYjI5ZTMxYmQwZDVlNTVlMGUyNmE0ODg0MTQ5ZmMyYTFj
MzY0MC4uNjNlMmVjNzE2MzI1ZTEyNTNmZTkwYWViZjI4ZDMwODUwYWM0NTA5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvaW9zLWFybS9jcnlwdG8vZmlwc21vZHVsZS9hZXMtYXJtdjQuUworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2Ny
eXB0by9maXBzbW9kdWxlL2Flcy1hcm12NC5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZp
bGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhl
IEJvcmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBk
ZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZp
bmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9z
YW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05P
X0FTTQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lm
IGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2Zp
cHNtb2R1bGUvYWVzdjgtYXJteDMyLlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2NyeXB0by9maXBzbW9kdWxlL2Flc3Y4
LWFybXgzMi5TCmluZGV4IDE3ZDk3MjdmMTU2MGQ0NTAzOGMxMjhjZTU1ZDFkYzdmMDMzMDA1ODku
LjczOTIyMzFkZjIwMDQ1ZmFmYmYxZDQwOWNjNjY0MjEzZWI5NzliMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lv
cy1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvYWVzdjgtYXJteDMyLlMKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlw
dG8vZmlwc21vZHVsZS9hZXN2OC1hcm14MzIuUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBm
aWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRo
ZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYg
ZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVm
aW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlf
c2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9O
T19BU00KICNlbmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNp
ZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2NyeXB0by9m
aXBzbW9kdWxlL2FybXY0LW1vbnQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvYXJtdjQt
bW9udC5TCmluZGV4IDhjY2M3NjMzYTBmY2VlMTQ1ZDM5NmYyM2U4OTJhMDNlOGQ3MTVhOWMuLmU1
NDlkMWYxNjMwNTBhMDUwYzYxMjE3NTdkMzFlOTFiZGMwNWE4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1h
cm0vY3J5cHRvL2ZpcHNtb2R1bGUvYXJtdjQtbW9udC5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2Zp
cHNtb2R1bGUvYXJtdjQtbW9udC5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUgaXMg
Z2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmlu
Z1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZpbmVk
KF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19o
YXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6
ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FTTQog
I2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRlZmlu
ZWQoQk9SSU5HU1NMX1BSRUZJWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1
bGUvYnNhZXMtYXJtdjcuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvYnNhZXMtYXJtdjcu
UwppbmRleCBkOTk3YzZjYjYxMGE2NGE3MWE2MzZjMDczZWY2NTRhMThhOGE2YzdmLi44MzI5YThj
MjAyOTQ4MDlhZjNiZWJlMDUzNGI0ZDExMjRmNmMxNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2Ny
eXB0by9maXBzbW9kdWxlL2JzYWVzLWFybXY3LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vZmlwc21v
ZHVsZS9ic2Flcy1hcm12Ny5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUgaXMgZ2Vu
ZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NT
TAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZpbmVkKF9f
aGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19oYXNf
ZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIp
ICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FTTQogI2Vu
ZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRlZmluZWQo
Qk9SSU5HU1NMX1BSRUZJWCkKQEAgLTEwODYsOSArMTA4Nyw2IEBAIExrZXlfbG9vcDoKIAlAIGRv
bid0IHNhdmUgbGFzdCByb3VuZCBrZXkKIAlieAlscgogCi0KLQotCiAuZ2xvYmwJX2JzYWVzX2Ni
Y19lbmNyeXB0CiAucHJpdmF0ZV9leHRlcm4JX2JzYWVzX2NiY19lbmNyeXB0CiAjaWZkZWYgX190
aHVtYjJfXwpAQCAtMTA5NiwxNiArMTA5NCw4IEBAIExrZXlfbG9vcDoKICNlbmRpZgogLmFsaWdu
CTUKIF9ic2Flc19jYmNfZW5jcnlwdDoKLSNpZm5kZWYJX19LRVJORUxfXwotCWNtcAlyMiwgIzEy
OAotI2lmbmRlZglfX3RodW1iX18KLQlibG8JX0FFU19jYmNfZW5jcnlwdAotI2Vsc2UKLQliaHMJ
MWYKLQliCV9BRVNfY2JjX2VuY3J5cHQKLTE6Ci0jZW5kaWYKLSNlbmRpZgorCUAgSW4gT3BlblNT
TCwgdGhpcyBmdW5jdGlvbiBoYWQgYSBmYWxsYmFjayB0byBhZXNfbm9od19jYmNfZW5jcnlwdCBm
b3IKKwlAIHNob3J0IGlucHV0cy4gV2UgcGF0Y2ggdGhpcyBvdXQsIHVzaW5nIGJzYWVzIGZvciBh
bGwgaW5wdXQgc2l6ZXMuCiAKIAlAIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gbWFrZSBzdXJl
IHdlIGFyZSBjYWxsZWQgd2l0aCBlbmMgPT0gMAogCkBAIC0xMjAzLDEwICsxMTkzLDcgQEAgTGNi
Y19kZWNfbG9vcF9maW5pc2g6CiAJYWRkcwlyMiwgcjIsICM4CiAJYmVxCUxjYmNfZGVjX2RvbmUK
IAotCXZsZDEuOAl7cTB9LCBbcjBdIQkJQCBsb2FkIGlucHV0Ci0JY21wCXIyLCAjMgotCWJsbwlM
Y2JjX2RlY19vbmUKLQl2bGQxLjgJe3ExfSwgW3IwXSEKKwlAIFNldCB1cCBtb3N0IHBhcmFtZXRl
cnMgZm9yIHRoZSBfYnNhZXNfZGVjcnlwdDggY2FsbC4KICNpZm5kZWYJQlNBRVNfQVNNX0VYVEVO
REVEX0tFWQogCW1vdglyNCwgc3AJCQlAIHBhc3MgdGhlIGtleQogI2Vsc2UKQEAgLTEyMTQsNiAr
MTIwMSwxMSBAQCBMY2JjX2RlY19sb29wX2ZpbmlzaDoKICNlbmRpZgogCW1vdglyNSwgcjEwCiAJ
dnN0bWlhCXI5LCB7cTE1fQkJCUAgcHV0IGFzaWRlIElWCisKKwl2bGQxLjgJe3EwfSwgW3IwXSEJ
CUAgbG9hZCBpbnB1dAorCWNtcAlyMiwgIzIKKwlibG8JTGNiY19kZWNfb25lCisJdmxkMS44CXtx
MX0sIFtyMF0hCiAJYmVxCUxjYmNfZGVjX3R3bwogCXZsZDEuOAl7cTJ9LCBbcjBdIQogCWNtcAly
MiwgIzQKQEAgLTEzMzEsMTYgKzEzMjMsMTEgQEAgTGNiY19kZWNfdHdvOgogLmFsaWduCTQKIExj
YmNfZGVjX29uZToKIAlzdWIJcjAsIHIwLCAjMHgxMAotCW1vdglyMTAsIHIxCQkJQCBzYXZlIG9y
aWdpbmFsIG91dCBwb2ludGVyCi0JbW92CXIxLCByOQkJCUAgdXNlIHRoZSBpdiBzY3JhdGNoIHNw
YWNlIGFzIG91dCBidWZmZXIKLQltb3YJcjIsIHIzCi0Jdm1vdglxNCxxMTUJCUAganVzdCBpbiBj
YXNlIGVuc3VyZSB0aGF0IElWCi0Jdm1vdglxNSxxMAkJCUAgYW5kIGlucHV0IGFyZSBwcmVzZXJ2
ZWQKLQlibAlfQUVTX2RlY3J5cHQKLQl2bGQxLjgJe3EwfSwgW3I5XQkJQCBsb2FkIHJlc3VsdAot
CXZlb3IJcTAsIHEwLCBxNAlAIF49IElWCi0Jdm1vdglxMTUsIHE1CQlAIHE1IGhvbGRzIGlucHV0
Ci0JdnN0MS44CXtxMH0sIFtyMTBdCQlAIHdyaXRlIG91dHB1dAorCWJsCV9ic2Flc19kZWNyeXB0
OAorCXZsZG1pYQlyOSwge3ExNH0JCQlAIHJlbG9hZCBJVgorCXZsZDEuOAl7cTE1fSwgW3IwXSEJ
CUAgcmVsb2FkIGlucHV0CisJdmVvcglxMCwgcTAsIHExNAlAIF49IElWCisJdnN0MS44CXtxMH0s
IFtyMV0hCQlAIHdyaXRlIG91dHB1dAogCiBMY2JjX2RlY19kb25lOgogI2lmbmRlZglCU0FFU19B
U01fRVhURU5ERURfS0VZCkBAIC0xMzU4LDcgKzEzNDUsNiBAQCBMY2JjX2RlY19iemVybzpAIHdp
cGUga2V5IHNjaGVkdWxlIFtpZiBhbnldCiAJVkZQX0FCSV9QT1AKIAlsZG1pYQlzcCEsIHtyNCxy
NSxyNixyNyxyOCxyOSxyMTAsIHBjfQogCi0KIC5nbG9ibAlfYnNhZXNfY3RyMzJfZW5jcnlwdF9i
bG9ja3MKIC5wcml2YXRlX2V4dGVybglfYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKICNpZmRl
ZiBfX3RodW1iMl9fCkBAIC0xMzY2LDkgKzEzNTIsOCBAQCBMY2JjX2RlY19iemVybzpAIHdpcGUg
a2V5IHNjaGVkdWxlIFtpZiBhbnldCiAjZW5kaWYKIC5hbGlnbgk1CiBfYnNhZXNfY3RyMzJfZW5j
cnlwdF9ibG9ja3M6Ci0JY21wCXIyLCAjOAkJCUAgdXNlIHBsYWluIEFFUyBmb3IKLQlibG8JTGN0
cl9lbmNfc2hvcnQJCQlAIHNtYWxsIHNpemVzCi0KKwlAIEluIE9wZW5TU0wsIHNob3J0IGlucHV0
cyBmYWxsIGJhY2sgdG8gYWVzX25vaHdfKiBoZXJlLiBXZSBwYXRjaCB0aGlzCisJQCBvdXQgdG8g
cmV0YWluIGEgY29uc3RhbnQtdGltZSBpbXBsZW1lbnRhdGlvbi4KIAltb3YJaXAsIHNwCiAJc3Rt
ZGIJc3AhLCB7cjQscjUscjYscjcscjgscjkscjEwLCBscn0KIAlWRlBfQUJJX1BVU0gKQEAgLTE1
NDQsMTA0NiArMTUyOSw4IEBAIExjdHJfZW5jX2J6ZXJvOkAgd2lwZSBrZXkgc2NoZWR1bGUgW2lm
IGFueV0KIAlWRlBfQUJJX1BPUAogCWxkbWlhCXNwISwge3I0LHI1LHI2LHI3LHI4LHI5LHIxMCwg
cGN9CUAgcmV0dXJuCiAKLS5hbGlnbgk0Ci1MY3RyX2VuY19zaG9ydDoKLQlsZHIJaXAsIFtzcF0J
CUAgY3RyIHBvaW50ZXIgaXMgcGFzc2VkIG9uIHN0YWNrCi0Jc3RtZGIJc3AhLCB7cjQscjUscjYs
cjcscjgsIGxyfQotCi0JbW92CXI0LCByMAkJQCBjb3B5IGFyZ3VtZW50cwotCW1vdglyNSwgcjEK
LQltb3YJcjYsIHIyCi0JbW92CXI3LCByMwotCWxkcglyOCwgW2lwLCAjMTJdCQlAIGxvYWQgY291
bnRlciBMU1cKLQl2bGQxLjgJe3ExfSwgW2lwXQkJQCBsb2FkIHdob2xlIGNvdW50ZXIgdmFsdWUK
LSNpZmRlZiBfX0FSTUVMX18KLQlyZXYJcjgsIHI4Ci0jZW5kaWYKLQlzdWIJc3AsIHNwLCAjMHgx
MAotCXZzdDEuOAl7cTF9LCBbc3BdCQlAIGNvcHkgY291bnRlciB2YWx1ZQotCXN1YglzcCwgc3As
ICMweDEwCi0KLUxjdHJfZW5jX3Nob3J0X2xvb3A6Ci0JYWRkCXIwLCBzcCwgIzB4MTAJCUAgaW5w
dXQgY291bnRlciB2YWx1ZQotCW1vdglyMSwgc3AJCQlAIG91dHB1dCBvbiB0aGUgc3RhY2sKLQlt
b3YJcjIsIHI3CQkJQCBrZXkKLQotCWJsCV9BRVNfZW5jcnlwdAotCi0JdmxkMS44CXtxMH0sIFty
NF0hCUAgbG9hZCBpbnB1dAotCXZsZDEuOAl7cTF9LCBbc3BdCQlAIGxvYWQgZW5jcnlwdGVkIGNv
dW50ZXIKLQlhZGQJcjgsIHI4LCAjMQotI2lmZGVmIF9fQVJNRUxfXwotCXJldglyMCwgcjgKLQlz
dHIJcjAsIFtzcCwgIzB4MWNdCQlAIG5leHQgY291bnRlciB2YWx1ZQotI2Vsc2UKLQlzdHIJcjgs
IFtzcCwgIzB4MWNdCQlAIG5leHQgY291bnRlciB2YWx1ZQotI2VuZGlmCi0JdmVvcglxMCxxMCxx
MQotCXZzdDEuOAl7cTB9LCBbcjVdIQlAIHN0b3JlIG91dHB1dAotCXN1YnMJcjYsIHI2LCAjMQot
CWJuZQlMY3RyX2VuY19zaG9ydF9sb29wCi0KLQl2bW92LmkzMglxMCwgIzAKLQl2bW92LmkzMglx
MSwgIzAKLQl2c3RtaWEJc3AhLCB7cTAscTF9Ci0KLQlsZG1pYQlzcCEsIHtyNCxyNSxyNixyNyxy
OCwgcGN9Ci0KLS5nbG9ibAlfYnNhZXNfeHRzX2VuY3J5cHQKLS5wcml2YXRlX2V4dGVybglfYnNh
ZXNfeHRzX2VuY3J5cHQKLSNpZmRlZiBfX3RodW1iMl9fCi0udGh1bWJfZnVuYwlfYnNhZXNfeHRz
X2VuY3J5cHQKLSNlbmRpZgotLmFsaWduCTQKLV9ic2Flc194dHNfZW5jcnlwdDoKLQltb3YJaXAs
IHNwCi0Jc3RtZGIJc3AhLCB7cjQscjUscjYscjcscjgscjkscjEwLCBscn0JCUAgMHgyMAotCVZG
UF9BQklfUFVTSAotCW1vdglyNiwgc3AJCQkJQCBmdXR1cmUgcjMKLQotCW1vdglyNywgcjAKLQlt
b3YJcjgsIHIxCi0JbW92CXI5LCByMgotCW1vdglyMTAsIHIzCi0KLQlzdWIJcjAsIHNwLCAjMHgx
MAkJCUAgMHgxMAotCWJpYwlyMCwgIzB4ZgkJCUAgYWxpZ24gYXQgMTYgYnl0ZXMKLQltb3YJc3As
IHIwCi0KLSNpZmRlZglYVFNfQ0hBSU5fVFdFQUsKLQlsZHIJcjAsIFtpcF0JCQlAIHBvaW50ZXIg
dG8gaW5wdXQgdHdlYWsKLSNlbHNlCi0JQCBnZW5lcmF0ZSBpbml0aWFsIHR3ZWFrCi0JbGRyCXIw
LCBbaXAsICM0XQkJCUAgaXZbXQotCW1vdglyMSwgc3AKLQlsZHIJcjIsIFtpcCwgIzBdCQkJQCBr
ZXkyCi0JYmwJX0FFU19lbmNyeXB0Ci0JbW92CXIwLHNwCQkJCUAgcG9pbnRlciB0byBpbml0aWFs
IHR3ZWFrCi0jZW5kaWYKLQotCWxkcglyMSwgW3IxMCwgIzI0MF0JCUAgZ2V0ICMgb2Ygcm91bmRz
Ci0JbW92CXIzLCByNgotI2lmbmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCi0JQCBhbGxvY2F0
ZSB0aGUga2V5IHNjaGVkdWxlIG9uIHRoZSBzdGFjawotCXN1YglyMTIsIHNwLCByMSwgbHNsIzcJ
CUAgMTI4IGJ5dGVzIHBlciBpbm5lciByb3VuZCBrZXkKLQlAIGFkZAlyMTIsICM5NgkJCUAgc2l6
ZSBvZiBiaXQtc2xpY2VkIGtleSBzY2hlZHVsZQotCXN1YglyMTIsICM0OAkJCUAgcGxhY2UgZm9y
IHR3ZWFrWzldCi0KLQlAIHBvcHVsYXRlIHRoZSBrZXkgc2NoZWR1bGUKLQltb3YJcjQsIHIxMAkJ
CUAgcGFzcyBrZXkKLQltb3YJcjUsIHIxCQkJQCBwYXNzICMgb2Ygcm91bmRzCi0JbW92CXNwLCBy
MTIKLQlhZGQJcjEyLCAjMHg5MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLQlibAlfYnNhZXNfa2V5
X2NvbnZlcnQKLQl2ZW9yCXE3LCBxNywgcTE1CUAgZml4IHVwIGxhc3Qgcm91bmQga2V5Ci0JdnN0
bWlhCXIxMiwge3E3fQkJCUAgc2F2ZSBsYXN0IHJvdW5kIGtleQotI2Vsc2UKLQlsZHIJcjEyLCBb
cjEwLCAjMjQ0XQotCWVvcnMJcjEyLCAjMQotCWJlcQkwZgotCi0Jc3RyCXIxMiwgW3IxMCwgIzI0
NF0KLQltb3YJcjQsIHIxMAkJCUAgcGFzcyBrZXkKLQltb3YJcjUsIHIxCQkJQCBwYXNzICMgb2Yg
cm91bmRzCi0JYWRkCXIxMiwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotCWJsCV9i
c2Flc19rZXlfY29udmVydAotCXZlb3IJcTcsIHE3LCBxMTUJQCBmaXggdXAgbGFzdCByb3VuZCBr
ZXkKLQl2c3RtaWEJcjEyLCB7cTd9Ci0KLS5hbGlnbgkyCi0Jc3ViCXNwLCAjMHg5MAkJCUAgcGxh
Y2UgZm9yIHR3ZWFrWzldCi0jZW5kaWYKLQotCXZsZDEuOAl7cTh9LCBbcjBdCQkJQCBpbml0aWFs
IHR3ZWFrCi0JYWRyCXIyLCBMeHRzX21hZ2ljCi0KLQlzdWJzCXI5LCAjMHg4MAotCWJsbwlMeHRz
X2VuY19zaG9ydAotCWIJTHh0c19lbmNfbG9vcAotCi0uYWxpZ24JNAotTHh0c19lbmNfbG9vcDoK
LQl2bGRtaWEJcjIsIHtxNX0JQCBsb2FkIFhUUyBtYWdpYwotCXZzaHIuczY0CXE2LCBxOCwgIzYz
Ci0JbW92CXIwLCBzcAotCXZhbmQJcTYsIHE2LCBxNQotCXZhZGQudTY0CXE5LCBxOCwgcTgKLQl2
c3QxLjY0CXtxOH0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hyLnM2NAlxNywgcTks
ICM2MwotCXZlb3IJcTksIHE5LCBxNgotCXZhbmQJcTcsIHE3LCBxNQotCXZhZGQudTY0CXExMCwg
cTksIHE5Ci0JdnN0MS42NAl7cTl9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5z
NjQJcTYsIHExMCwgIzYzCi0JdmVvcglxMTAsIHExMCwgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2
bGQxLjgJe3EwfSwgW3I3XSEKLQl2YWRkLnU2NAlxMTEsIHExMCwgcTEwCi0JdnN0MS42NAl7cTEw
fSwgW3IwLDoxMjhdIQotCXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3LCBxMTEsICM2MwotCXZl
b3IJcTExLCBxMTEsIHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmxkMS44CXtxMX0sIFtyN10hCi0J
dmVvcglxMCwgcTAsIHE4Ci0JdmFkZC51NjQJcTEyLCBxMTEsIHExMQotCXZzdDEuNjQJe3ExMX0s
IFtyMCw6MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2c2hyLnM2NAlxNiwgcTEyLCAjNjMKLQl2ZW9y
CXExMiwgcTEyLCBxNwotCXZhbmQJcTYsIHE2LCBxNQotCXZsZDEuOAl7cTJ9LCBbcjddIQotCXZl
b3IJcTEsIHExLCBxOQotCXZhZGQudTY0CXExMywgcTEyLCBxMTIKLQl2c3QxLjY0CXtxMTJ9LCBb
cjAsOjEyOF0hCi0JdnN3cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExMywgIzYzCi0JdmVvcglx
MTMsIHExMywgcTYKLQl2YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3EzfSwgW3I3XSEKLQl2ZW9y
CXEyLCBxMiwgcTEwCi0JdmFkZC51NjQJcTE0LCBxMTMsIHExMwotCXZzdDEuNjQJe3ExM30sIFty
MCw6MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2c2hyLnM2NAlxNiwgcTE0LCAjNjMKLQl2ZW9yCXEx
NCwgcTE0LCBxNwotCXZhbmQJcTYsIHE2LCBxNQotCXZsZDEuOAl7cTR9LCBbcjddIQotCXZlb3IJ
cTMsIHEzLCBxMTEKLQl2YWRkLnU2NAlxMTUsIHExNCwgcTE0Ci0JdnN0MS42NAl7cTE0fSwgW3Iw
LDoxMjhdIQotCXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3LCBxMTUsICM2MwotCXZlb3IJcTE1
LCBxMTUsIHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmxkMS44CXtxNX0sIFtyN10hCi0JdmVvcglx
NCwgcTQsIHExMgotCXZhZGQudTY0CXE4LCBxMTUsIHExNQotCXZzdDEuNjQJe3ExNX0sIFtyMCw6
MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2ZW9yCXE4LCBxOCwgcTcKLQl2c3QxLjY0CXtxOH0sIFty
MCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0KLQl2bGQxLjgJe3E2LHE3fSwgW3I3XSEKLQl2
ZW9yCXE1LCBxNSwgcTEzCi0jaWZuZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlhZGQJcjQs
IHNwLCAjMHg5MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCByMTAsICMy
NDgJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZW5kaWYKLQl2ZW9yCXE2LCBxNiwgcTE0Ci0JbW92
CXI1LCByMQkJCUAgcGFzcyByb3VuZHMKLQl2ZW9yCXE3LCBxNywgcTE1Ci0JbW92CXIwLCBzcAot
Ci0JYmwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEKLQl2
bGQxLjY0CXtxMTAscTExfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEuNjQJ
e3ExMixxMTN9LCBbcjAsOjEyOF0hCi0JdmVvcglxMSwgcTEsIHE5Ci0JdmVvcglxOCwgcTQsIHEx
MAotCXZzdDEuOAl7cTAscTF9LCBbcjhdIQotCXZlb3IJcTksIHE2LCBxMTEKLQl2bGQxLjY0CXtx
MTQscTE1fSwgW3IwLDoxMjhdIQotCXZlb3IJcTEwLCBxMywgcTEyCi0JdnN0MS44CXtxOCxxOX0s
IFtyOF0hCi0JdmVvcglxMTEsIHE3LCBxMTMKLQl2ZW9yCXExMiwgcTIsIHExNAotCXZzdDEuOAl7
cTEwLHExMX0sIFtyOF0hCi0JdmVvcglxMTMsIHE1LCBxMTUKLQl2c3QxLjgJe3ExMixxMTN9LCBb
cjhdIQotCi0JdmxkMS42NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCi0J
c3VicwlyOSwgIzB4ODAKLQlicGwJTHh0c19lbmNfbG9vcAotCi1MeHRzX2VuY19zaG9ydDoKLQlh
ZGRzCXI5LCAjMHg3MAotCWJtaQlMeHRzX2VuY19kb25lCi0KLQl2bGRtaWEJcjIsIHtxNX0JQCBs
b2FkIFhUUyBtYWdpYwotCXZzaHIuczY0CXE3LCBxOCwgIzYzCi0JbW92CXIwLCBzcAotCXZhbmQJ
cTcsIHE3LCBxNQotCXZhZGQudTY0CXE5LCBxOCwgcTgKLQl2c3QxLjY0CXtxOH0sIFtyMCw6MTI4
XSEKLQl2c3dwCWQxNSxkMTQKLQl2c2hyLnM2NAlxNiwgcTksICM2MwotCXZlb3IJcTksIHE5LCBx
NwotCXZhbmQJcTYsIHE2LCBxNQotCXZhZGQudTY0CXExMCwgcTksIHE5Ci0JdnN0MS42NAl7cTl9
LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExMCwgIzYzCi0JdmVv
cglxMTAsIHExMCwgcTYKLQl2YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3EwfSwgW3I3XSEKLQlz
dWJzCXI5LCAjMHgxMAotCWJtaQlMeHRzX2VuY18xCi0JdmFkZC51NjQJcTExLCBxMTAsIHExMAot
CXZzdDEuNjQJe3ExMH0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2c2hyLnM2NAlxNiwg
cTExLCAjNjMKLQl2ZW9yCXExMSwgcTExLCBxNwotCXZhbmQJcTYsIHE2LCBxNQotCXZsZDEuOAl7
cTF9LCBbcjddIQotCXN1YnMJcjksICMweDEwCi0JYm1pCUx4dHNfZW5jXzIKLQl2ZW9yCXEwLCBx
MCwgcTgKLQl2YWRkLnU2NAlxMTIsIHExMSwgcTExCi0JdnN0MS42NAl7cTExfSwgW3IwLDoxMjhd
IQotCXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3LCBxMTIsICM2MwotCXZlb3IJcTEyLCBxMTIs
IHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmxkMS44CXtxMn0sIFtyN10hCi0Jc3VicwlyOSwgIzB4
MTAKLQlibWkJTHh0c19lbmNfMwotCXZlb3IJcTEsIHExLCBxOQotCXZhZGQudTY0CXExMywgcTEy
LCBxMTIKLQl2c3QxLjY0CXtxMTJ9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5z
NjQJcTYsIHExMywgIzYzCi0JdmVvcglxMTMsIHExMywgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2
bGQxLjgJe3EzfSwgW3I3XSEKLQlzdWJzCXI5LCAjMHgxMAotCWJtaQlMeHRzX2VuY180Ci0JdmVv
cglxMiwgcTIsIHExMAotCXZhZGQudTY0CXExNCwgcTEzLCBxMTMKLQl2c3QxLjY0CXtxMTN9LCBb
cjAsOjEyOF0hCi0JdnN3cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExNCwgIzYzCi0JdmVvcglx
MTQsIHExNCwgcTYKLQl2YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3E0fSwgW3I3XSEKLQlzdWJz
CXI5LCAjMHgxMAotCWJtaQlMeHRzX2VuY181Ci0JdmVvcglxMywgcTMsIHExMQotCXZhZGQudTY0
CXExNSwgcTE0LCBxMTQKLQl2c3QxLjY0CXtxMTR9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0
Ci0JdnNoci5zNjQJcTYsIHExNSwgIzYzCi0JdmVvcglxMTUsIHExNSwgcTcKLQl2YW5kCXE2LCBx
NiwgcTUKLQl2bGQxLjgJe3E1fSwgW3I3XSEKLQlzdWJzCXI5LCAjMHgxMAotCWJtaQlMeHRzX2Vu
Y182Ci0JdmVvcglxNCwgcTQsIHExMgotCXN1YglyOSwgIzB4MTAKLQl2c3QxLjY0CXtxMTV9LCBb
cjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCi0JdmxkMS44CXtxNn0sIFtyN10hCi0JdmVv
cglxNSwgcTUsIHExMwotI2lmbmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBz
cCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4
CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVvcglxNiwgcTYsIHExNAotCW1vdgly
NSwgcjEJCQlAIHBhc3Mgcm91bmRzCi0JbW92CXIwLCBzcAotCi0JYmwJX2JzYWVzX2VuY3J5cHQ4
Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEKLQl2bGQxLjY0CXtxMTAscTExfSwgW3Iw
LDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEuNjQJe3ExMixxMTN9LCBbcjAsOjEyOF0h
Ci0JdmVvcglxMSwgcTEsIHE5Ci0JdmVvcglxOCwgcTQsIHExMAotCXZzdDEuOAl7cTAscTF9LCBb
cjhdIQotCXZlb3IJcTksIHE2LCBxMTEKLQl2bGQxLjY0CXtxMTR9LCBbcjAsOjEyOF0hCi0JdmVv
cglxMTAsIHEzLCBxMTIKLQl2c3QxLjgJe3E4LHE5fSwgW3I4XSEKLQl2ZW9yCXExMSwgcTcsIHEx
MwotCXZlb3IJcTEyLCBxMiwgcTE0Ci0JdnN0MS44CXtxMTAscTExfSwgW3I4XSEKLQl2c3QxLjgJ
e3ExMn0sIFtyOF0hCi0KLQl2bGQxLjY0CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3
ZWFrCi0JYglMeHRzX2VuY19kb25lCi0uYWxpZ24JNAotTHh0c19lbmNfNjoKLQl2ZW9yCXE0LCBx
NCwgcTEyCi0jaWZuZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlhZGQJcjQsIHNwLCAjMHg5
MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCByMTAsICMyNDgJCQlAIHBh
c3Mga2V5IHNjaGVkdWxlCi0jZW5kaWYKLQl2ZW9yCXE1LCBxNSwgcTEzCi0JbW92CXI1LCByMQkJ
CUAgcGFzcyByb3VuZHMKLQltb3YJcjAsIHNwCi0KLQlibAlfYnNhZXNfZW5jcnlwdDgKLQotCXZs
ZDEuNjQJe3E4LHE5fSwgW3IwLDoxMjhdIQotCXZsZDEuNjQJe3ExMCxxMTF9LCBbcjAsOjEyOF0h
Ci0JdmVvcglxMCwgcTAsIHE4Ci0JdmxkMS42NAl7cTEyLHExM30sIFtyMCw6MTI4XSEKLQl2ZW9y
CXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBxNCwgcTEwCi0JdnN0MS44CXtxMCxxMX0sIFtyOF0hCi0J
dmVvcglxOSwgcTYsIHExMQotCXZlb3IJcTEwLCBxMywgcTEyCi0JdnN0MS44CXtxOCxxOX0sIFty
OF0hCi0JdmVvcglxMTEsIHE3LCBxMTMKLQl2c3QxLjgJe3ExMCxxMTF9LCBbcjhdIQotCi0Jdmxk
MS42NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCWIJTHh0c19lbmNfZG9u
ZQotCi1AIHB1dCB0aGlzIGluIHJhbmdlIGZvciBib3RoIEFSTSBhbmQgVGh1bWIgbW9kZSBhZHIg
aW5zdHJ1Y3Rpb25zCi0uYWxpZ24JNQotTHh0c19tYWdpYzoKLS5xdWFkCTEsIDB4ODcKLQotLmFs
aWduCTUKLUx4dHNfZW5jXzU6Ci0JdmVvcglxMywgcTMsIHExMQotI2lmbmRlZglCU0FFU19BU01f
RVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0j
ZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0J
dmVvcglxNCwgcTQsIHExMgotCW1vdglyNSwgcjEJCQlAIHBhc3Mgcm91bmRzCi0JbW92CXIwLCBz
cAotCi0JYmwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEK
LQl2bGQxLjY0CXtxMTAscTExfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEu
NjQJe3ExMn0sIFtyMCw6MTI4XSEKLQl2ZW9yCXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBxNCwgcTEw
Ci0JdnN0MS44CXtxMCxxMX0sIFtyOF0hCi0JdmVvcglxOSwgcTYsIHExMQotCXZlb3IJcTEwLCBx
MywgcTEyCi0JdnN0MS44CXtxOCxxOX0sIFtyOF0hCi0JdnN0MS44CXtxMTB9LCBbcjhdIQotCi0J
dmxkMS42NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCWIJTHh0c19lbmNf
ZG9uZQotLmFsaWduCTQKLUx4dHNfZW5jXzQ6Ci0JdmVvcglxMiwgcTIsIHExMAotI2lmbmRlZglC
U0FFU19BU01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNj
aGVkdWxlCi0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQot
I2VuZGlmCi0JdmVvcglxMywgcTMsIHExMQotCW1vdglyNSwgcjEJCQlAIHBhc3Mgcm91bmRzCi0J
bW92CXIwLCBzcAotCi0JYmwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFty
MCw6MTI4XSEKLQl2bGQxLjY0CXtxMTAscTExfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBx
OAotCXZlb3IJcTEsIHExLCBxOQotCXZlb3IJcTgsIHE0LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwg
W3I4XSEKLQl2ZW9yCXE5LCBxNiwgcTExCi0JdnN0MS44CXtxOCxxOX0sIFtyOF0hCi0KLQl2bGQx
LjY0CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0JYglMeHRzX2VuY19kb25l
Ci0uYWxpZ24JNAotTHh0c19lbmNfMzoKLQl2ZW9yCXExLCBxMSwgcTkKLSNpZm5kZWYJQlNBRVNf
QVNNX0VYVEVOREVEX0tFWQotCWFkZAlyNCwgc3AsICMweDkwCQkJQCBwYXNzIGtleSBzY2hlZHVs
ZQotI2Vsc2UKLQlhZGQJcjQsIHIxMCwgIzI0OAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbmRp
ZgotCXZlb3IJcTIsIHEyLCBxMTAKLQltb3YJcjUsIHIxCQkJQCBwYXNzIHJvdW5kcwotCW1vdgly
MCwgc3AKLQotCWJsCV9ic2Flc19lbmNyeXB0OAotCi0JdmxkMS42NAl7cTgscTl9LCBbcjAsOjEy
OF0hCi0JdmxkMS42NAl7cTEwfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZlb3IJ
cTEsIHExLCBxOQotCXZlb3IJcTgsIHE0LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwgW3I4XSEKLQl2
c3QxLjgJe3E4fSwgW3I4XSEKLQotCXZsZDEuNjQJe3E4fSwgW3IwLDoxMjhdCQlAIG5leHQgcm91
bmQgdHdlYWsKLQliCUx4dHNfZW5jX2RvbmUKLS5hbGlnbgk0Ci1MeHRzX2VuY18yOgotCXZlb3IJ
cTAsIHEwLCBxOAotI2lmbmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwg
IzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJ
QCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVvcglxMSwgcTEsIHE5Ci0JbW92CXI1LCBy
MQkJCUAgcGFzcyByb3VuZHMKLQltb3YJcjAsIHNwCi0KLQlibAlfYnNhZXNfZW5jcnlwdDgKLQot
CXZsZDEuNjQJe3E4LHE5fSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZlb3IJcTEs
IHExLCBxOQotCXZzdDEuOAl7cTAscTF9LCBbcjhdIQotCi0JdmxkMS42NAl7cTh9LCBbcjAsOjEy
OF0JCUAgbmV4dCByb3VuZCB0d2VhawotCWIJTHh0c19lbmNfZG9uZQotLmFsaWduCTQKLUx4dHNf
ZW5jXzE6Ci0JbW92CXIwLCBzcAotCXZlb3IJcTAsIHEwLCBxOAotCW1vdglyMSwgc3AKLQl2c3Qx
LjgJe3EwfSwgW3NwLDoxMjhdCi0JbW92CXIyLCByMTAKLQltb3YJcjQsIHIzCQkJCUAgcHJlc2Vy
dmUgZnAKLQotCWJsCV9BRVNfZW5jcnlwdAotCi0JdmxkMS44CXtxMH0sIFtzcCw6MTI4XQotCXZl
b3IJcTAsIHEwLCBxOAotCXZzdDEuOAl7cTB9LCBbcjhdIQotCW1vdglyMywgcjQKLQotCXZtb3YJ
cTgsIHE5CQlAIG5leHQgcm91bmQgdHdlYWsKLQotTHh0c19lbmNfZG9uZToKLSNpZm5kZWYJWFRT
X0NIQUlOX1RXRUFLCi0JYWRkcwlyOSwgIzB4MTAKLQliZXEJTHh0c19lbmNfcmV0Ci0Jc3ViCXI2
LCByOCwgIzB4MTAKLQotTHh0c19lbmNfc3RlYWw6Ci0JbGRyYglyMCwgW3I3XSwgIzEKLQlsZHJi
CXIxLCBbcjgsICMtMHgxMF0KLQlzdHJiCXIwLCBbcjgsICMtMHgxMF0KLQlzdHJiCXIxLCBbcjhd
LCAjMQotCi0Jc3VicwlyOSwgIzEKLQliaGkJTHh0c19lbmNfc3RlYWwKLQotCXZsZDEuOAl7cTB9
LCBbcjZdCi0JbW92CXIwLCBzcAotCXZlb3IJcTAsIHEwLCBxOAotCW1vdglyMSwgc3AKLQl2c3Qx
LjgJe3EwfSwgW3NwLDoxMjhdCi0JbW92CXIyLCByMTAKLQltb3YJcjQsIHIzCQkJQCBwcmVzZXJ2
ZSBmcAotCi0JYmwJX0FFU19lbmNyeXB0Ci0KLQl2bGQxLjgJe3EwfSwgW3NwLDoxMjhdCi0JdmVv
cglxMCwgcTAsIHE4Ci0JdnN0MS44CXtxMH0sIFtyNl0KLQltb3YJcjMsIHI0Ci0jZW5kaWYKLQot
THh0c19lbmNfcmV0OgotCWJpYwlyMCwgcjMsICMweGYKLQl2bW92LmkzMglxMCwgIzAKLQl2bW92
LmkzMglxMSwgIzAKLSNpZmRlZglYVFNfQ0hBSU5fVFdFQUsKLQlsZHIJcjEsIFtyMywgIzB4MjAr
VkZQX0FCSV9GUkFNRV0JQCBjaGFpbiB0d2VhawotI2VuZGlmCi1MeHRzX2VuY19iemVybzpAIHdp
cGUga2V5IHNjaGVkdWxlIFtpZiBhbnldCi0JdnN0bWlhCXNwISwge3EwLHExfQotCWNtcAlzcCwg
cjAKLQlibmUJTHh0c19lbmNfYnplcm8KLQotCW1vdglzcCwgcjMKLSNpZmRlZglYVFNfQ0hBSU5f
VFdFQUsKLQl2c3QxLjgJe3E4fSwgW3IxXQotI2VuZGlmCi0JVkZQX0FCSV9QT1AKLQlsZG1pYQlz
cCEsIHtyNCxyNSxyNixyNyxyOCxyOSxyMTAsIHBjfQlAIHJldHVybgotCi0KLQotLmdsb2JsCV9i
c2Flc194dHNfZGVjcnlwdAotLnByaXZhdGVfZXh0ZXJuCV9ic2Flc194dHNfZGVjcnlwdAotI2lm
ZGVmIF9fdGh1bWIyX18KLS50aHVtYl9mdW5jCV9ic2Flc194dHNfZGVjcnlwdAotI2VuZGlmCi0u
YWxpZ24JNAotX2JzYWVzX3h0c19kZWNyeXB0OgotCW1vdglpcCwgc3AKLQlzdG1kYglzcCEsIHty
NCxyNSxyNixyNyxyOCxyOSxyMTAsIGxyfQkJQCAweDIwCi0JVkZQX0FCSV9QVVNICi0JbW92CXI2
LCBzcAkJCQlAIGZ1dHVyZSByMwotCi0JbW92CXI3LCByMAotCW1vdglyOCwgcjEKLQltb3YJcjks
IHIyCi0JbW92CXIxMCwgcjMKLQotCXN1YglyMCwgc3AsICMweDEwCQkJQCAweDEwCi0JYmljCXIw
LCAjMHhmCQkJQCBhbGlnbiBhdCAxNiBieXRlcwotCW1vdglzcCwgcjAKLQotI2lmZGVmCVhUU19D
SEFJTl9UV0VBSwotCWxkcglyMCwgW2lwXQkJCUAgcG9pbnRlciB0byBpbnB1dCB0d2VhawotI2Vs
c2UKLQlAIGdlbmVyYXRlIGluaXRpYWwgdHdlYWsKLQlsZHIJcjAsIFtpcCwgIzRdCQkJQCBpdltd
Ci0JbW92CXIxLCBzcAotCWxkcglyMiwgW2lwLCAjMF0JCQlAIGtleTIKLQlibAlfQUVTX2VuY3J5
cHQKLQltb3YJcjAsIHNwCQkJCUAgcG9pbnRlciB0byBpbml0aWFsIHR3ZWFrCi0jZW5kaWYKLQot
CWxkcglyMSwgW3IxMCwgIzI0MF0JCUAgZ2V0ICMgb2Ygcm91bmRzCi0JbW92CXIzLCByNgotI2lm
bmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCi0JQCBhbGxvY2F0ZSB0aGUga2V5IHNjaGVkdWxl
IG9uIHRoZSBzdGFjawotCXN1YglyMTIsIHNwLCByMSwgbHNsIzcJCUAgMTI4IGJ5dGVzIHBlciBp
bm5lciByb3VuZCBrZXkKLQlAIGFkZAlyMTIsICM5NgkJCUAgc2l6ZSBvZiBiaXQtc2xpY2VkIGtl
eSBzY2hlZHVsZQotCXN1YglyMTIsICM0OAkJCUAgcGxhY2UgZm9yIHR3ZWFrWzldCi0KLQlAIHBv
cHVsYXRlIHRoZSBrZXkgc2NoZWR1bGUKLQltb3YJcjQsIHIxMAkJCUAgcGFzcyBrZXkKLQltb3YJ
cjUsIHIxCQkJQCBwYXNzICMgb2Ygcm91bmRzCi0JbW92CXNwLCByMTIKLQlhZGQJcjEyLCAjMHg5
MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLQlibAlfYnNhZXNfa2V5X2NvbnZlcnQKLQlhZGQJcjQs
IHNwLCAjMHg5MAotCXZsZG1pYQlyNCwge3E2fQotCXZzdG1pYQlyMTIsICB7cTE1fQkJQCBzYXZl
IGxhc3Qgcm91bmQga2V5Ci0JdmVvcglxNywgcTcsIHE2CUAgZml4IHVwIHJvdW5kIDAga2V5Ci0J
dnN0bWlhCXI0LCB7cTd9Ci0jZWxzZQotCWxkcglyMTIsIFtyMTAsICMyNDRdCi0JZW9ycwlyMTIs
ICMxCi0JYmVxCTBmCi0KLQlzdHIJcjEyLCBbcjEwLCAjMjQ0XQotCW1vdglyNCwgcjEwCQkJQCBw
YXNzIGtleQotCW1vdglyNSwgcjEJCQlAIHBhc3MgIyBvZiByb3VuZHMKLQlhZGQJcjEyLCByMTAs
ICMyNDgJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0JYmwJX2JzYWVzX2tleV9jb252ZXJ0Ci0JYWRk
CXI0LCByMTAsICMyNDgKLQl2bGRtaWEJcjQsIHtxNn0KLQl2c3RtaWEJcjEyLCAge3ExNX0JCUAg
c2F2ZSBsYXN0IHJvdW5kIGtleQotCXZlb3IJcTcsIHE3LCBxNglAIGZpeCB1cCByb3VuZCAwIGtl
eQotCXZzdG1pYQlyNCwge3E3fQotCi0uYWxpZ24JMgotCXN1YglzcCwgIzB4OTAJCQlAIHBsYWNl
IGZvciB0d2Vha1s5XQotI2VuZGlmCi0JdmxkMS44CXtxOH0sIFtyMF0JCQlAIGluaXRpYWwgdHdl
YWsKLQlhZHIJcjIsIEx4dHNfbWFnaWMKLQotI2lmbmRlZglYVFNfQ0hBSU5fVFdFQUsKLQl0c3QJ
cjksICMweGYJCQlAIGlmIG5vdCBtdWx0aXBsZSBvZiAxNgotCWl0CW5lCQkJCUAgVGh1bWIyIHRo
aW5nLCBzYW5pdHkgY2hlY2sgaW4gQVJNCi0Jc3VibmUJcjksICMweDEwCQkJQCBzdWJ0cmFjdCBh
bm90aGVyIDE2IGJ5dGVzCi0jZW5kaWYKLQlzdWJzCXI5LCAjMHg4MAotCi0JYmxvCUx4dHNfZGVj
X3Nob3J0Ci0JYglMeHRzX2RlY19sb29wCi0KLS5hbGlnbgk0Ci1MeHRzX2RlY19sb29wOgotCXZs
ZG1pYQlyMiwge3E1fQlAIGxvYWQgWFRTIG1hZ2ljCi0JdnNoci5zNjQJcTYsIHE4LCAjNjMKLQlt
b3YJcjAsIHNwCi0JdmFuZAlxNiwgcTYsIHE1Ci0JdmFkZC51NjQJcTksIHE4LCBxOAotCXZzdDEu
NjQJe3E4fSwgW3IwLDoxMjhdIQotCXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3LCBxOSwgIzYz
Ci0JdmVvcglxOSwgcTksIHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmFkZC51NjQJcTEwLCBxOSwg
cTkKLQl2c3QxLjY0CXtxOX0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2c2hyLnM2NAlx
NiwgcTEwLCAjNjMKLQl2ZW9yCXExMCwgcTEwLCBxNwotCXZhbmQJcTYsIHE2LCBxNQotCXZsZDEu
OAl7cTB9LCBbcjddIQotCXZhZGQudTY0CXExMSwgcTEwLCBxMTAKLQl2c3QxLjY0CXtxMTB9LCBb
cjAsOjEyOF0hCi0JdnN3cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExMSwgIzYzCi0JdmVvcglx
MTEsIHExMSwgcTYKLQl2YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3ExfSwgW3I3XSEKLQl2ZW9y
CXEwLCBxMCwgcTgKLQl2YWRkLnU2NAlxMTIsIHExMSwgcTExCi0JdnN0MS42NAl7cTExfSwgW3Iw
LDoxMjhdIQotCXZzd3AJZDE1LGQxNAotCXZzaHIuczY0CXE2LCBxMTIsICM2MwotCXZlb3IJcTEy
LCBxMTIsIHE3Ci0JdmFuZAlxNiwgcTYsIHE1Ci0JdmxkMS44CXtxMn0sIFtyN10hCi0JdmVvcglx
MSwgcTEsIHE5Ci0JdmFkZC51NjQJcTEzLCBxMTIsIHExMgotCXZzdDEuNjQJe3ExMn0sIFtyMCw6
MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hyLnM2NAlxNywgcTEzLCAjNjMKLQl2ZW9yCXExMywg
cTEzLCBxNgotCXZhbmQJcTcsIHE3LCBxNQotCXZsZDEuOAl7cTN9LCBbcjddIQotCXZlb3IJcTIs
IHEyLCBxMTAKLQl2YWRkLnU2NAlxMTQsIHExMywgcTEzCi0JdnN0MS42NAl7cTEzfSwgW3IwLDox
MjhdIQotCXZzd3AJZDE1LGQxNAotCXZzaHIuczY0CXE2LCBxMTQsICM2MwotCXZlb3IJcTE0LCBx
MTQsIHE3Ci0JdmFuZAlxNiwgcTYsIHE1Ci0JdmxkMS44CXtxNH0sIFtyN10hCi0JdmVvcglxMywg
cTMsIHExMQotCXZhZGQudTY0CXExNSwgcTE0LCBxMTQKLQl2c3QxLjY0CXtxMTR9LCBbcjAsOjEy
OF0hCi0JdnN3cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExNSwgIzYzCi0JdmVvcglxMTUsIHEx
NSwgcTYKLQl2YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3E1fSwgW3I3XSEKLQl2ZW9yCXE0LCBx
NCwgcTEyCi0JdmFkZC51NjQJcTgsIHExNSwgcTE1Ci0JdnN0MS42NAl7cTE1fSwgW3IwLDoxMjhd
IQotCXZzd3AJZDE1LGQxNAotCXZlb3IJcTgsIHE4LCBxNwotCXZzdDEuNjQJe3E4fSwgW3IwLDox
MjhdCQlAIG5leHQgcm91bmQgdHdlYWsKLQotCXZsZDEuOAl7cTYscTd9LCBbcjddIQotCXZlb3IJ
cTUsIHE1LCBxMTMKLSNpZm5kZWYJQlNBRVNfQVNNX0VYVEVOREVEX0tFWQotCWFkZAlyNCwgc3As
ICMweDkwCQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2Vsc2UKLQlhZGQJcjQsIHIxMCwgIzI0OAkJ
CUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbmRpZgotCXZlb3IJcTYsIHE2LCBxMTQKLQltb3YJcjUs
IHIxCQkJQCBwYXNzIHJvdW5kcwotCXZlb3IJcTcsIHE3LCBxMTUKLQltb3YJcjAsIHNwCi0KLQli
bAlfYnNhZXNfZGVjcnlwdDgKLQotCXZsZDEuNjQJe3E4LHE5fSwgW3IwLDoxMjhdIQotCXZsZDEu
NjQJe3ExMCxxMTF9LCBbcjAsOjEyOF0hCi0JdmVvcglxMCwgcTAsIHE4Ci0JdmxkMS42NAl7cTEy
LHExM30sIFtyMCw6MTI4XSEKLQl2ZW9yCXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBxNiwgcTEwCi0J
dnN0MS44CXtxMCxxMX0sIFtyOF0hCi0JdmVvcglxOSwgcTQsIHExMQotCXZsZDEuNjQJe3ExNCxx
MTV9LCBbcjAsOjEyOF0hCi0JdmVvcglxMTAsIHEyLCBxMTIKLQl2c3QxLjgJe3E4LHE5fSwgW3I4
XSEKLQl2ZW9yCXExMSwgcTcsIHExMwotCXZlb3IJcTEyLCBxMywgcTE0Ci0JdnN0MS44CXtxMTAs
cTExfSwgW3I4XSEKLQl2ZW9yCXExMywgcTUsIHExNQotCXZzdDEuOAl7cTEyLHExM30sIFtyOF0h
Ci0KLQl2bGQxLjY0CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0KLQlzdWJz
CXI5LCAjMHg4MAotCWJwbAlMeHRzX2RlY19sb29wCi0KLUx4dHNfZGVjX3Nob3J0OgotCWFkZHMJ
cjksICMweDcwCi0JYm1pCUx4dHNfZGVjX2RvbmUKLQotCXZsZG1pYQlyMiwge3E1fQlAIGxvYWQg
WFRTIG1hZ2ljCi0JdnNoci5zNjQJcTcsIHE4LCAjNjMKLQltb3YJcjAsIHNwCi0JdmFuZAlxNywg
cTcsIHE1Ci0JdmFkZC51NjQJcTksIHE4LCBxOAotCXZzdDEuNjQJe3E4fSwgW3IwLDoxMjhdIQot
CXZzd3AJZDE1LGQxNAotCXZzaHIuczY0CXE2LCBxOSwgIzYzCi0JdmVvcglxOSwgcTksIHE3Ci0J
dmFuZAlxNiwgcTYsIHE1Ci0JdmFkZC51NjQJcTEwLCBxOSwgcTkKLQl2c3QxLjY0CXtxOX0sIFty
MCw6MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hyLnM2NAlxNywgcTEwLCAjNjMKLQl2ZW9yCXEx
MCwgcTEwLCBxNgotCXZhbmQJcTcsIHE3LCBxNQotCXZsZDEuOAl7cTB9LCBbcjddIQotCXN1YnMJ
cjksICMweDEwCi0JYm1pCUx4dHNfZGVjXzEKLQl2YWRkLnU2NAlxMTEsIHExMCwgcTEwCi0JdnN0
MS42NAl7cTEwfSwgW3IwLDoxMjhdIQotCXZzd3AJZDE1LGQxNAotCXZzaHIuczY0CXE2LCBxMTEs
ICM2MwotCXZlb3IJcTExLCBxMTEsIHE3Ci0JdmFuZAlxNiwgcTYsIHE1Ci0JdmxkMS44CXtxMX0s
IFtyN10hCi0Jc3VicwlyOSwgIzB4MTAKLQlibWkJTHh0c19kZWNfMgotCXZlb3IJcTAsIHEwLCBx
OAotCXZhZGQudTY0CXExMiwgcTExLCBxMTEKLQl2c3QxLjY0CXtxMTF9LCBbcjAsOjEyOF0hCi0J
dnN3cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExMiwgIzYzCi0JdmVvcglxMTIsIHExMiwgcTYK
LQl2YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3EyfSwgW3I3XSEKLQlzdWJzCXI5LCAjMHgxMAot
CWJtaQlMeHRzX2RlY18zCi0JdmVvcglxMSwgcTEsIHE5Ci0JdmFkZC51NjQJcTEzLCBxMTIsIHEx
MgotCXZzdDEuNjQJe3ExMn0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2c2hyLnM2NAlx
NiwgcTEzLCAjNjMKLQl2ZW9yCXExMywgcTEzLCBxNwotCXZhbmQJcTYsIHE2LCBxNQotCXZsZDEu
OAl7cTN9LCBbcjddIQotCXN1YnMJcjksICMweDEwCi0JYm1pCUx4dHNfZGVjXzQKLQl2ZW9yCXEy
LCBxMiwgcTEwCi0JdmFkZC51NjQJcTE0LCBxMTMsIHExMwotCXZzdDEuNjQJe3ExM30sIFtyMCw6
MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hyLnM2NAlxNywgcTE0LCAjNjMKLQl2ZW9yCXExNCwg
cTE0LCBxNgotCXZhbmQJcTcsIHE3LCBxNQotCXZsZDEuOAl7cTR9LCBbcjddIQotCXN1YnMJcjks
ICMweDEwCi0JYm1pCUx4dHNfZGVjXzUKLQl2ZW9yCXEzLCBxMywgcTExCi0JdmFkZC51NjQJcTE1
LCBxMTQsIHExNAotCXZzdDEuNjQJe3ExNH0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2
c2hyLnM2NAlxNiwgcTE1LCAjNjMKLQl2ZW9yCXExNSwgcTE1LCBxNwotCXZhbmQJcTYsIHE2LCBx
NQotCXZsZDEuOAl7cTV9LCBbcjddIQotCXN1YnMJcjksICMweDEwCi0JYm1pCUx4dHNfZGVjXzYK
LQl2ZW9yCXE0LCBxNCwgcTEyCi0Jc3ViCXI5LCAjMHgxMAotCXZzdDEuNjQJe3ExNX0sIFtyMCw6
MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0KLQl2bGQxLjgJe3E2fSwgW3I3XSEKLQl2ZW9yCXE1
LCBxNSwgcTEzCi0jaWZuZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlhZGQJcjQsIHNwLCAj
MHg5MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCByMTAsICMyNDgJCQlA
IHBhc3Mga2V5IHNjaGVkdWxlCi0jZW5kaWYKLQl2ZW9yCXE2LCBxNiwgcTE0Ci0JbW92CXI1LCBy
MQkJCUAgcGFzcyByb3VuZHMKLQltb3YJcjAsIHNwCi0KLQlibAlfYnNhZXNfZGVjcnlwdDgKLQot
CXZsZDEuNjQJe3E4LHE5fSwgW3IwLDoxMjhdIQotCXZsZDEuNjQJe3ExMCxxMTF9LCBbcjAsOjEy
OF0hCi0JdmVvcglxMCwgcTAsIHE4Ci0JdmxkMS42NAl7cTEyLHExM30sIFtyMCw6MTI4XSEKLQl2
ZW9yCXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBxNiwgcTEwCi0JdnN0MS44CXtxMCxxMX0sIFtyOF0h
Ci0JdmVvcglxOSwgcTQsIHExMQotCXZsZDEuNjQJe3ExNH0sIFtyMCw6MTI4XSEKLQl2ZW9yCXEx
MCwgcTIsIHExMgotCXZzdDEuOAl7cTgscTl9LCBbcjhdIQotCXZlb3IJcTExLCBxNywgcTEzCi0J
dmVvcglxMTIsIHEzLCBxMTQKLQl2c3QxLjgJe3ExMCxxMTF9LCBbcjhdIQotCXZzdDEuOAl7cTEy
fSwgW3I4XSEKLQotCXZsZDEuNjQJe3E4fSwgW3IwLDoxMjhdCQlAIG5leHQgcm91bmQgdHdlYWsK
LQliCUx4dHNfZGVjX2RvbmUKLS5hbGlnbgk0Ci1MeHRzX2RlY182OgotCXZzdDEuNjQJe3ExNH0s
IFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0KLQl2ZW9yCXE0LCBxNCwgcTEyCi0jaWZu
ZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlhZGQJcjQsIHNwLCAjMHg5MAkJCUAgcGFzcyBr
ZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCByMTAsICMyNDgJCQlAIHBhc3Mga2V5IHNjaGVk
dWxlCi0jZW5kaWYKLQl2ZW9yCXE1LCBxNSwgcTEzCi0JbW92CXI1LCByMQkJCUAgcGFzcyByb3Vu
ZHMKLQltb3YJcjAsIHNwCi0KLQlibAlfYnNhZXNfZGVjcnlwdDgKLQotCXZsZDEuNjQJe3E4LHE5
fSwgW3IwLDoxMjhdIQotCXZsZDEuNjQJe3ExMCxxMTF9LCBbcjAsOjEyOF0hCi0JdmVvcglxMCwg
cTAsIHE4Ci0JdmxkMS42NAl7cTEyLHExM30sIFtyMCw6MTI4XSEKLQl2ZW9yCXExLCBxMSwgcTkK
LQl2ZW9yCXE4LCBxNiwgcTEwCi0JdnN0MS44CXtxMCxxMX0sIFtyOF0hCi0JdmVvcglxOSwgcTQs
IHExMQotCXZlb3IJcTEwLCBxMiwgcTEyCi0JdnN0MS44CXtxOCxxOX0sIFtyOF0hCi0JdmVvcglx
MTEsIHE3LCBxMTMKLQl2c3QxLjgJe3ExMCxxMTF9LCBbcjhdIQotCi0JdmxkMS42NAl7cTh9LCBb
cjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCWIJTHh0c19kZWNfZG9uZQotLmFsaWduCTQK
LUx4dHNfZGVjXzU6Ci0JdmVvcglxMywgcTMsIHExMQotI2lmbmRlZglCU0FFU19BU01fRVhURU5E
RURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxzZQot
CWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVvcglx
NCwgcTQsIHExMgotCW1vdglyNSwgcjEJCQlAIHBhc3Mgcm91bmRzCi0JbW92CXIwLCBzcAotCi0J
YmwJX2JzYWVzX2RlY3J5cHQ4Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEKLQl2bGQx
LjY0CXtxMTAscTExfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEuNjQJe3Ex
Mn0sIFtyMCw6MTI4XSEKLQl2ZW9yCXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBxNiwgcTEwCi0JdnN0
MS44CXtxMCxxMX0sIFtyOF0hCi0JdmVvcglxOSwgcTQsIHExMQotCXZlb3IJcTEwLCBxMiwgcTEy
Ci0JdnN0MS44CXtxOCxxOX0sIFtyOF0hCi0JdnN0MS44CXtxMTB9LCBbcjhdIQotCi0JdmxkMS42
NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCWIJTHh0c19kZWNfZG9uZQot
LmFsaWduCTQKLUx4dHNfZGVjXzQ6Ci0JdmVvcglxMiwgcTIsIHExMAotI2lmbmRlZglCU0FFU19B
U01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxl
Ci0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlm
Ci0JdmVvcglxMywgcTMsIHExMQotCW1vdglyNSwgcjEJCQlAIHBhc3Mgcm91bmRzCi0JbW92CXIw
LCBzcAotCi0JYmwJX2JzYWVzX2RlY3J5cHQ4Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4
XSEKLQl2bGQxLjY0CXtxMTAscTExfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZl
b3IJcTEsIHExLCBxOQotCXZlb3IJcTgsIHE2LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwgW3I4XSEK
LQl2ZW9yCXE5LCBxNCwgcTExCi0JdnN0MS44CXtxOCxxOX0sIFtyOF0hCi0KLQl2bGQxLjY0CXtx
OH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0JYglMeHRzX2RlY19kb25lCi0uYWxp
Z24JNAotTHh0c19kZWNfMzoKLQl2ZW9yCXExLCBxMSwgcTkKLSNpZm5kZWYJQlNBRVNfQVNNX0VY
VEVOREVEX0tFWQotCWFkZAlyNCwgc3AsICMweDkwCQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2Vs
c2UKLQlhZGQJcjQsIHIxMCwgIzI0OAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbmRpZgotCXZl
b3IJcTIsIHEyLCBxMTAKLQltb3YJcjUsIHIxCQkJQCBwYXNzIHJvdW5kcwotCW1vdglyMCwgc3AK
LQotCWJsCV9ic2Flc19kZWNyeXB0OAotCi0JdmxkMS42NAl7cTgscTl9LCBbcjAsOjEyOF0hCi0J
dmxkMS42NAl7cTEwfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZlb3IJcTEsIHEx
LCBxOQotCXZlb3IJcTgsIHE2LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwgW3I4XSEKLQl2c3QxLjgJ
e3E4fSwgW3I4XSEKLQotCXZsZDEuNjQJe3E4fSwgW3IwLDoxMjhdCQlAIG5leHQgcm91bmQgdHdl
YWsKLQliCUx4dHNfZGVjX2RvbmUKLS5hbGlnbgk0Ci1MeHRzX2RlY18yOgotCXZlb3IJcTAsIHEw
LCBxOAotI2lmbmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJ
CQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNz
IGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVvcglxMSwgcTEsIHE5Ci0JbW92CXI1LCByMQkJCUAg
cGFzcyByb3VuZHMKLQltb3YJcjAsIHNwCi0KLQlibAlfYnNhZXNfZGVjcnlwdDgKLQotCXZsZDEu
NjQJe3E4LHE5fSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZlb3IJcTEsIHExLCBx
OQotCXZzdDEuOAl7cTAscTF9LCBbcjhdIQotCi0JdmxkMS42NAl7cTh9LCBbcjAsOjEyOF0JCUAg
bmV4dCByb3VuZCB0d2VhawotCWIJTHh0c19kZWNfZG9uZQotLmFsaWduCTQKLUx4dHNfZGVjXzE6
Ci0JbW92CXIwLCBzcAotCXZlb3IJcTAsIHEwLCBxOAotCW1vdglyMSwgc3AKLQl2c3QxLjgJe3Ew
fSwgW3NwLDoxMjhdCi0JbW92CXI1LCByMgkJCUAgcHJlc2VydmUgbWFnaWMKLQltb3YJcjIsIHIx
MAotCW1vdglyNCwgcjMJCQkJQCBwcmVzZXJ2ZSBmcAotCi0JYmwJX0FFU19kZWNyeXB0Ci0KLQl2
bGQxLjgJe3EwfSwgW3NwLDoxMjhdCi0JdmVvcglxMCwgcTAsIHE4Ci0JdnN0MS44CXtxMH0sIFty
OF0hCi0JbW92CXIzLCByNAotCW1vdglyMiwgcjUKLQotCXZtb3YJcTgsIHE5CQlAIG5leHQgcm91
bmQgdHdlYWsKLQotTHh0c19kZWNfZG9uZToKLSNpZm5kZWYJWFRTX0NIQUlOX1RXRUFLCi0JYWRk
cwlyOSwgIzB4MTAKLQliZXEJTHh0c19kZWNfcmV0Ci0KLQlAIGNhbGN1bGF0ZSBvbmUgcm91bmQg
b2YgZXh0cmEgdHdlYWsgZm9yIHRoZSBzdG9sZW4gY2lwaGVydGV4dAotCXZsZG1pYQlyMiwge3E1
fQotCXZzaHIuczY0CXE2LCBxOCwgIzYzCi0JdmFuZAlxNiwgcTYsIHE1Ci0JdmFkZC51NjQJcTks
IHE4LCBxOAotCXZzd3AJZDEzLGQxMgotCXZlb3IJcTksIHE5LCBxNgotCi0JQCBwZXJmb3JtIHRo
ZSBmaW5hbCBkZWNyeXB0aW9uIHdpdGggdGhlIGxhc3QgdHdlYWsgdmFsdWUKLQl2bGQxLjgJe3Ew
fSwgW3I3XSEKLQltb3YJcjAsIHNwCi0JdmVvcglxMCwgcTAsIHE5Ci0JbW92CXIxLCBzcAotCXZz
dDEuOAl7cTB9LCBbc3AsOjEyOF0KLQltb3YJcjIsIHIxMAotCW1vdglyNCwgcjMJCQlAIHByZXNl
cnZlIGZwCi0KLQlibAlfQUVTX2RlY3J5cHQKLQotCXZsZDEuOAl7cTB9LCBbc3AsOjEyOF0KLQl2
ZW9yCXEwLCBxMCwgcTkKLQl2c3QxLjgJe3EwfSwgW3I4XQotCi0JbW92CXI2LCByOAotTHh0c19k
ZWNfc3RlYWw6Ci0JbGRyYglyMSwgW3I4XQotCWxkcmIJcjAsIFtyN10sICMxCi0Jc3RyYglyMSwg
W3I4LCAjMHgxMF0KLQlzdHJiCXIwLCBbcjhdLCAjMQotCi0Jc3VicwlyOSwgIzEKLQliaGkJTHh0
c19kZWNfc3RlYWwKLQotCXZsZDEuOAl7cTB9LCBbcjZdCi0JbW92CXIwLCBzcAotCXZlb3IJcTAs
IHE4Ci0JbW92CXIxLCBzcAotCXZzdDEuOAl7cTB9LCBbc3AsOjEyOF0KLQltb3YJcjIsIHIxMAot
Ci0JYmwJX0FFU19kZWNyeXB0Ci0KLQl2bGQxLjgJe3EwfSwgW3NwLDoxMjhdCi0JdmVvcglxMCwg
cTAsIHE4Ci0JdnN0MS44CXtxMH0sIFtyNl0KLQltb3YJcjMsIHI0Ci0jZW5kaWYKLQotTHh0c19k
ZWNfcmV0OgotCWJpYwlyMCwgcjMsICMweGYKLQl2bW92LmkzMglxMCwgIzAKLQl2bW92LmkzMglx
MSwgIzAKLSNpZmRlZglYVFNfQ0hBSU5fVFdFQUsKLQlsZHIJcjEsIFtyMywgIzB4MjArVkZQX0FC
SV9GUkFNRV0JQCBjaGFpbiB0d2VhawotI2VuZGlmCi1MeHRzX2RlY19iemVybzpAIHdpcGUga2V5
IHNjaGVkdWxlIFtpZiBhbnldCi0JdnN0bWlhCXNwISwge3EwLHExfQotCWNtcAlzcCwgcjAKLQli
bmUJTHh0c19kZWNfYnplcm8KLQotCW1vdglzcCwgcjMKLSNpZmRlZglYVFNfQ0hBSU5fVFdFQUsK
LQl2c3QxLjgJe3E4fSwgW3IxXQotI2VuZGlmCi0JVkZQX0FCSV9QT1AKLQlsZG1pYQlzcCEsIHty
NCxyNSxyNixyNyxyOCxyOSxyMTAsIHBjfQlAIHJldHVybgotCisJQCBPcGVuU1NMIGNvbnRhaW5z
IGFlc19ub2h3XyogZmFsbGJhY2sgY29kZSBoZXJlLiBXZSBwYXRjaCB0aGlzCisJQCBvdXQgdG8g
cmV0YWluIGEgY29uc3RhbnQtdGltZSBpbXBsZW1lbnRhdGlvbi4KIAogI2VuZGlmCiAjZW5kaWYg
IC8vICFPUEVOU1NMX05PX0FTTQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vZmlwc21vZHVs
ZS9naGFzaC1hcm12NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1hcm12NC5T
CmluZGV4IDJmNDM3MGVhNzRlNTRkZjk0ODkyYzlkNzg0ODkyNzdmYWQ0OWY1ODcuLmZjY2Q1N2Qz
MGU4NzU2MGNmNjk1NWI2NDIwOWJkMDNhOTNkZjNlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5
cHRvL2ZpcHNtb2R1bGUvZ2hhc2gtYXJtdjQuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2NyeXB0by9maXBzbW9k
dWxlL2doYXNoLWFybXY0LlMKQEAgLTEsMTEgKzEsMTIgQEAKIC8vIFRoaXMgZmlsZSBpcyBnZW5l
cmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NM
CiAvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KIAotI2lmIGRlZmluZWQoX19o
YXNfZmVhdHVyZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2RlZmluZSBfX2hhc19m
ZWF0dXJlKHgpIDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5X3Nhbml0aXplcikg
JiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5lIE9QRU5TU0xfTk9fQVNNCiAjZW5k
aWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjaWYgZGVmaW5lZChC
T1JJTkdTU0xfUFJFRklYKQpAQCAtMjEsNiArMjIsOCBAQAogLnRleHQKICNpZiBkZWZpbmVkKF9f
dGh1bWIyX18pIHx8IGRlZmluZWQoX19jbGFuZ19fKQogLnN5bnRheAl1bmlmaWVkCisjZGVmaW5l
IGxkcnBsYiAgbGRyYnBsCisjZGVmaW5lIGxkcm5lYiAgbGRyYm5lCiAjZW5kaWYKICNpZiBkZWZp
bmVkKF9fdGh1bWIyX18pCiAudGh1bWIKQEAgLTI4LDExICszMSw2IEBACiAuY29kZQkzMgogI2Vu
ZGlmCiAKLSNpZmRlZiAgX19jbGFuZ19fCi0jZGVmaW5lIGxkcnBsYiAgbGRyYnBsCi0jZGVmaW5l
IGxkcm5lYiAgbGRyYm5lCi0jZW5kaWYKLQogCiAuYWxpZ24JNQogcmVtXzRiaXQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9pb3MtYXJtL2NyeXB0by9maXBzbW9kdWxlL2doYXNodjgtYXJteDMyLlMgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJt
L2NyeXB0by9maXBzbW9kdWxlL2doYXNodjgtYXJteDMyLlMKaW5kZXggNWY0YjBjNmM0MGY4Nzg4
MTcyY2RhNjlmMTk2MzM5ZTFlMDA3M2E2Mi4uZjVkZTY3ZjAzNzNmN2RjNDZlNzE0YzA1YTY3MmNl
OWVmZDkxZDdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vZmlwc21vZHVsZS9naGFzaHY4
LWFybXgzMi5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2h2OC1hcm14MzIu
UwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2lt
aWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0cmVl
LiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2lm
ICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2Vu
ZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVO
U1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNlbmRpZgotI2VuZGlmCiAKICNp
ZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9pb3MtYXJtL2NyeXB0by9maXBzbW9kdWxlL3NoYTEtYXJtdjQtbGFyZ2Uu
UyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvc2hhMS1hcm12NC1sYXJnZS5TCmluZGV4IGFl
ZjczNWY1ZTdmMTQ1YTIxOTE3OGE0OWY5YTRmNjI4Mzc3YWIyNDEuLjgyYWM4ZGY0ZmM2OWY0NzE2
MjFmYThlMGJiMTI0OWQ3OTVjYTdjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNt
b2R1bGUvc2hhMS1hcm12NC1sYXJnZS5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUv
c2hhMS1hcm12NC1sYXJnZS5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUgaXMgZ2Vu
ZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NT
TAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZpbmVkKF9f
aGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19oYXNf
ZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIp
ICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FTTQogI2Vu
ZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRlZmluZWQo
Qk9SSU5HU1NMX1BSRUZJWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUv
c2hhMjU2LWFybXY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2NyeXB0by9maXBzbW9kdWxlL3NoYTI1Ni1hcm12NC5T
CmluZGV4IDRkYTg5YzUxMTg5Y2ZlZmExNWMzNThiZmFkZjAxMDczZDdkZTc5NDcuLjBjZjM2NDgy
ZDRjODc5NWNjMTZiOWI3MTA3OWVlM2UxNjcyMzg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5
cHRvL2ZpcHNtb2R1bGUvc2hhMjU2LWFybXY0LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vZmlwc21v
ZHVsZS9zaGEyNTYtYXJtdjQuUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlzIGdl
bmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdT
U0wKIC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChf
X2hhc19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFz
X2ZlYXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVy
KSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNl
bmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZpbmVk
KEJPUklOR1NTTF9QUkVGSVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2NyeXB0by9maXBzbW9kdWxl
L3NoYTUxMi1hcm12NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vZmlwc21vZHVsZS9zaGE1MTItYXJtdjQu
UwppbmRleCBlMjEyYmFkOTNhZmU0NDBiYzQ5ODFmMTE5YjUxNzYzNDQ3OTBkYmU4Li4yMTkxM2Ni
MmJhMjBhMjUwNjMyMmE0NDdmOWVhNzZhNTU0NjVlY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2Ny
eXB0by9maXBzbW9kdWxlL3NoYTUxMi1hcm12NC5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2lvcy1hcm0vY3J5cHRvL2ZpcHNt
b2R1bGUvc2hhNTEyLWFybXY0LlMKQEAgLTEsMTEgKzEsMTIgQEAKIC8vIFRoaXMgZmlsZSBpcyBn
ZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5n
U1NMCiAvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KIAotI2lmIGRlZmluZWQo
X19oYXNfZmVhdHVyZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2RlZmluZSBfX2hh
c19mZWF0dXJlKHgpIDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5X3Nhbml0aXpl
cikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5lIE9QRU5TU0xfTk9fQVNNCiAj
ZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjaWYgZGVmaW5l
ZChCT1JJTkdTU0xfUFJFRklYKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vdGVzdC90cmFt
cG9saW5lLWFybXY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9pb3MtYXJtL2NyeXB0by90ZXN0L3RyYW1wb2xpbmUtYXJtdjQuUwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MWFjMjQ5ZWY1NTJiZGZmOTkzZDk2YjZhNTI2NzhmMjE1ZmZkYWI3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvaW9zLWFybS9jcnlwdG8vdGVzdC90cmFtcG9saW5lLWFybXY0LlMKQEAg
LTAsMCArMSwzNzcgQEAKKy8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJs
eS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NMCisvLyBzb3VyY2UgdHJlZS4gRG8g
bm90IGVkaXQgYnkgaGFuZC4KKworI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5l
IF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCisjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2Fu
aXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BFTlNTTF9OT19B
U00KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCisjaWYgZGVmaW5lZChC
T1JJTkdTU0xfUFJFRklYKQorI2luY2x1ZGUgPGJvcmluZ3NzbF9wcmVmaXhfc3ltYm9sc19hc20u
aD4KKyNlbmRpZgorLnN5bnRheAl1bmlmaWVkCisKKworCisKKy50ZXh0CisKK0AgYWJpX3Rlc3Rf
dHJhbXBvbGluZSBsb2FkcyBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGZyb20gfHN0YXRlfCwgY2Fs
bHMgfGZ1bmN8CitAIHdpdGggfGFyZ3Z8LCB0aGVuIHNhdmVzIHRoZSBjYWxsZWUtc2F2ZWQgcmVn
aXN0ZXJzIGludG8gfHN0YXRlfC4gSXQgcmV0dXJucworQCB0aGUgcmVzdWx0IG9mIHxmdW5jfC4g
VGhlIHx1bndpbmR8IGFyZ3VtZW50IGlzIHVudXNlZC4KK0AgdWludDMyX3QgYWJpX3Rlc3RfdHJh
bXBvbGluZSh2b2lkICgqZnVuYykoLi4uKSwgQ2FsbGVyU3RhdGUgKnN0YXRlLAorQCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICphcmd2LCBzaXplX3QgYXJnYywK
K0AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdW53aW5kKTsKKworLmdsb2JsCV9h
YmlfdGVzdF90cmFtcG9saW5lCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X3RyYW1wb2xpbmUK
Ky5hbGlnbgk0CitfYWJpX3Rlc3RfdHJhbXBvbGluZToKK0xhYmlfdGVzdF90cmFtcG9saW5lX2Jl
Z2luOgorCUAgU2F2ZSBwYXJhbWV0ZXJzIGFuZCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4g
Rm9yIGNvbnZlbmllbmNlLCB3ZQorCUAgc2F2ZSByOSBvbiBpT1MgZXZlbiB0aG91Z2ggaXQncyB2
b2xhdGlsZS4KKwl2c3RtZGIJc3AhLCB7ZDgsZDksZDEwLGQxMSxkMTIsZDEzLGQxNCxkMTV9CisJ
c3RtZGIJc3AhLCB7cjAscjEscjIscjMscjQscjUscjYscjcscjgscjkscjEwLHIxMSxscn0KKwor
CUAgUmVzZXJ2ZSBzdGFjayBzcGFjZSBmb3Igc2l4ICgxMC00KSBzdGFjayBwYXJhbWV0ZXJzLCBw
bHVzIGFuIGV4dHJhIDQKKwlAIGJ5dGVzIHRvIGtlZXAgaXQgOC1ieXRlLWFsaWduZWQgKHNlZSBB
QVBDUywgc2VjdGlvbiA1LjMpLgorCXN1YglzcCwgc3AsICMyOAorCisJQCBFdmVyeSByZWdpc3Rl
ciBpbiBBQVBDUyBpcyBlaXRoZXIgbm9uLXZvbGF0aWxlIG9yIGEgcGFyYW1ldGVyIChleGNlcHQK
KwlAIHI5IG9uIGlPUyksIHNvIHRoaXMgY29kZSwgYnkgdGhlIGFjdHVhbCBjYWxsLCBsb3NlcyBh
bGwgaXRzIHNjcmF0Y2gKKwlAIHJlZ2lzdGVycy4gRmlyc3QgZmlsbCBpbiBzdGFjayBwYXJhbWV0
ZXJzIHdoaWxlIHRoZXJlIGFyZSByZWdpc3RlcnMKKwlAIHRvIHNwYXJlLgorCWNtcAlyMywgIzQK
KwlibHMJTHN0YWNrX2FyZ3NfZG9uZQorCW1vdglyNCwgc3AJCQkJQCByNCBpcyB0aGUgb3V0cHV0
IHBvaW50ZXIuCisJYWRkCXI1LCByMiwgcjMsIGxzbCAjMglAIFNldCByNSB0byB0aGUgZW5kIG9m
IGFyZ3YuCisJYWRkCXIyLCByMiwgIzE2CQlAIFNraXAgZm91ciBhcmd1bWVudHMuCitMc3RhY2tf
YXJnc19sb29wOgorCWxkcglyNiwgW3IyXSwgIzQKKwljbXAJcjIsIHI1CisJc3RyCXI2LCBbcjRd
LCAjNAorCWJuZQlMc3RhY2tfYXJnc19sb29wCisKK0xzdGFja19hcmdzX2RvbmU6CisJQCBMb2Fk
IHJlZ2lzdGVycyBmcm9tIHxyMXwuCisJdmxkbWlhCXIxISwge2Q4LGQ5LGQxMCxkMTEsZDEyLGQx
MyxkMTQsZDE1fQorI2lmIGRlZmluZWQoX19BUFBMRV9fKQorCUAgcjkgaXMgbm90IHZvbGF0aWxl
IG9uIGlPUy4KKwlsZG1pYQlyMSEsIHtyNCxyNSxyNixyNyxyOCxyMTAtcjExfQorI2Vsc2UKKwls
ZG1pYQlyMSEsIHtyNCxyNSxyNixyNyxyOCxyOSxyMTAscjExfQorI2VuZGlmCisKKwlAIExvYWQg
cmVnaXN0ZXIgcGFyYW1ldGVycy4gVGhpcyB1c2VzIHVwIG91ciByZW1haW5pbmcgcmVnaXN0ZXJz
LCBzbyB3ZQorCUAgcmVwdXJwb3NlIGxyIGFzIHNjcmF0Y2ggc3BhY2UuCisJbGRyCXIzLCBbc3As
ICM0MF0JQCBSZWxvYWQgYXJnYy4KKwlsZHIJbHIsIFtzcCwgIzM2XQkJQCBMb2FkIGFyZ3YgaW50
byBsci4KKwljbXAJcjMsICMzCisJYmhpCUxhcmdfcjMKKwliZXEJTGFyZ19yMgorCWNtcAlyMywg
IzEKKwliaGkJTGFyZ19yMQorCWJlcQlMYXJnX3IwCisJYglMYXJnc19kb25lCisKK0xhcmdfcjM6
CisJbGRyCXIzLCBbbHIsICMxMl0JQCBhcmd2WzNdCitMYXJnX3IyOgorCWxkcglyMiwgW2xyLCAj
OF0JQCBhcmd2WzJdCitMYXJnX3IxOgorCWxkcglyMSwgW2xyLCAjNF0JQCBhcmd2WzFdCitMYXJn
X3IwOgorCWxkcglyMCwgW2xyXQlAIGFyZ3ZbMF0KK0xhcmdzX2RvbmU6CisKKwlAIFdpdGggZXZl
cnkgb3RoZXIgcmVnaXN0ZXIgaW4gdXNlLCBsb2FkIHRoZSBmdW5jdGlvbiBwb2ludGVyIGludG8g
bHIKKwlAIGFuZCBjYWxsIHRoZSBmdW5jdGlvbi4KKwlsZHIJbHIsIFtzcCwgIzI4XQorCWJseAls
cgorCisJQCByMS1yMyBhcmUgZnJlZSBmb3IgdXNlIGFnYWluLiBUaGUgdHJhbXBvbGluZSBvbmx5
IHN1cHBvcnRzCisJQCBzaW5nbGUtcmV0dXJuIGZ1bmN0aW9ucy4gUGFzcyByNC1yMTEgdG8gdGhl
IGNhbGxlci4KKwlsZHIJcjEsIFtzcCwgIzMyXQorCXZzdG1pYQlyMSEsIHtkOCxkOSxkMTAsZDEx
LGQxMixkMTMsZDE0LGQxNX0KKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykKKwlAIHI5IGlzIG5vdCB2
b2xhdGlsZSBvbiBpT1MuCisJc3RtaWEJcjEhLCB7cjQscjUscjYscjcscjgscjEwLXIxMX0KKyNl
bHNlCisJc3RtaWEJcjEhLCB7cjQscjUscjYscjcscjgscjkscjEwLHIxMX0KKyNlbmRpZgorCisJ
QCBVbndpbmQgdGhlIHN0YWNrIGFuZCByZXN0b3JlIHJlZ2lzdGVycy4KKwlhZGQJc3AsIHNwLCAj
NDQJCUAgNDQgPSAyOCsxNgorCWxkbWlhCXNwISwge3I0LHI1LHI2LHI3LHI4LHI5LHIxMCxyMTEs
bHJ9CUAgU2tpcCByMC1yMyAoc2VlICsxNiBhYm92ZSkuCisJdmxkbWlhCXNwISwge2Q4LGQ5LGQx
MCxkMTEsZDEyLGQxMyxkMTQsZDE1fQorCisJYngJbHIKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Ns
b2JiZXJfcjAKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9yMAorLmFsaWduCTQK
K19hYmlfdGVzdF9jbG9iYmVyX3IwOgorCW1vdglyMCwgIzAKKwlieAlscgorCisKKy5nbG9ibAlf
YWJpX3Rlc3RfY2xvYmJlcl9yMQorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3Ix
CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfcjE6CisJbW92CXIxLCAjMAorCWJ4CWxyCisK
KworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3IyCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0
X2Nsb2JiZXJfcjIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yMjoKKwltb3YJcjIsICMw
CisJYngJbHIKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfcjMKKy5wcml2YXRlX2V4dGVy
bglfYWJpX3Rlc3RfY2xvYmJlcl9yMworLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3IzOgor
CW1vdglyMywgIzAKKwlieAlscgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9yNAorLnBy
aXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3I0CisuYWxpZ24JNAorX2FiaV90ZXN0X2Ns
b2JiZXJfcjQ6CisJbW92CXI0LCAjMAorCWJ4CWxyCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9i
YmVyX3I1CisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfcjUKKy5hbGlnbgk0Citf
YWJpX3Rlc3RfY2xvYmJlcl9yNToKKwltb3YJcjUsICMwCisJYngJbHIKKworCisuZ2xvYmwJX2Fi
aV90ZXN0X2Nsb2JiZXJfcjYKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9yNgor
LmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3I2OgorCW1vdglyNiwgIzAKKwlieAlscgorCisK
Ky5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9yNworLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9j
bG9iYmVyX3I3CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfcjc6CisJbW92CXI3LCAjMAor
CWJ4CWxyCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3I4CisucHJpdmF0ZV9leHRlcm4J
X2FiaV90ZXN0X2Nsb2JiZXJfcjgKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yODoKKwlt
b3YJcjgsICMwCisJYngJbHIKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfcjkKKy5wcml2
YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9yOQorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9i
YmVyX3I5OgorCW1vdglyOSwgIzAKKwlieAlscgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJl
cl9yMTAKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9yMTAKKy5hbGlnbgk0Citf
YWJpX3Rlc3RfY2xvYmJlcl9yMTA6CisJbW92CXIxMCwgIzAKKwlieAlscgorCisKKy5nbG9ibAlf
YWJpX3Rlc3RfY2xvYmJlcl9yMTEKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9y
MTEKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yMTE6CisJbW92CXIxMSwgIzAKKwlieAls
cgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9yMTIKKy5wcml2YXRlX2V4dGVybglfYWJp
X3Rlc3RfY2xvYmJlcl9yMTIKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yMTI6CisJbW92
CXIxMiwgIzAKKwlieAlscgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMAorLnByaXZh
dGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2QwCisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2Ji
ZXJfZDA6CisJbW92CXIwLCAjMAorCXZtb3YJczAsIHIwCisJdm1vdglzMSwgcjAKKwlieAlscgor
CisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMQorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVz
dF9jbG9iYmVyX2QxCisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDE6CisJbW92CXIwLCAj
MAorCXZtb3YJczIsIHIwCisJdm1vdglzMywgcjAKKwlieAlscgorCisKKy5nbG9ibAlfYWJpX3Rl
c3RfY2xvYmJlcl9kMgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2QyCisuYWxp
Z24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDI6CisJbW92CXIwLCAjMAorCXZtb3YJczQsIHIwCisJ
dm1vdglzNSwgcjAKKwlieAlscgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMworLnBy
aXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2QzCisuYWxpZ24JNAorX2FiaV90ZXN0X2Ns
b2JiZXJfZDM6CisJbW92CXIwLCAjMAorCXZtb3YJczYsIHIwCisJdm1vdglzNywgcjAKKwlieAls
cgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kNAorLnByaXZhdGVfZXh0ZXJuCV9hYmlf
dGVzdF9jbG9iYmVyX2Q0CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDQ6CisJbW92CXIw
LCAjMAorCXZtb3YJczgsIHIwCisJdm1vdglzOSwgcjAKKwlieAlscgorCisKKy5nbG9ibAlfYWJp
X3Rlc3RfY2xvYmJlcl9kNQorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2Q1Cisu
YWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDU6CisJbW92CXIwLCAjMAorCXZtb3YJczEwLCBy
MAorCXZtb3YJczExLCByMAorCWJ4CWxyCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX2Q2
CisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZDYKKy5hbGlnbgk0CitfYWJpX3Rl
c3RfY2xvYmJlcl9kNjoKKwltb3YJcjAsICMwCisJdm1vdglzMTIsIHIwCisJdm1vdglzMTMsIHIw
CisJYngJbHIKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfZDcKKy5wcml2YXRlX2V4dGVy
bglfYWJpX3Rlc3RfY2xvYmJlcl9kNworLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX2Q3Ogor
CW1vdglyMCwgIzAKKwl2bW92CXMxNCwgcjAKKwl2bW92CXMxNSwgcjAKKwlieAlscgorCisKKy5n
bG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kOAorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9i
YmVyX2Q4CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDg6CisJbW92CXIwLCAjMAorCXZt
b3YJczE2LCByMAorCXZtb3YJczE3LCByMAorCWJ4CWxyCisKKworLmdsb2JsCV9hYmlfdGVzdF9j
bG9iYmVyX2Q5CisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZDkKKy5hbGlnbgk0
CitfYWJpX3Rlc3RfY2xvYmJlcl9kOToKKwltb3YJcjAsICMwCisJdm1vdglzMTgsIHIwCisJdm1v
dglzMTksIHIwCisJYngJbHIKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfZDEwCisucHJp
dmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZDEwCisuYWxpZ24JNAorX2FiaV90ZXN0X2Ns
b2JiZXJfZDEwOgorCW1vdglyMCwgIzAKKwl2bW92CXMyMCwgcjAKKwl2bW92CXMyMSwgcjAKKwli
eAlscgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTEKKy5wcml2YXRlX2V4dGVybglf
YWJpX3Rlc3RfY2xvYmJlcl9kMTEKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9kMTE6CisJ
bW92CXIwLCAjMAorCXZtb3YJczIyLCByMAorCXZtb3YJczIzLCByMAorCWJ4CWxyCisKKworLmds
b2JsCV9hYmlfdGVzdF9jbG9iYmVyX2QxMgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9i
YmVyX2QxMgorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX2QxMjoKKwltb3YJcjAsICMwCisJ
dm1vdglzMjQsIHIwCisJdm1vdglzMjUsIHIwCisJYngJbHIKKworCisuZ2xvYmwJX2FiaV90ZXN0
X2Nsb2JiZXJfZDEzCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZDEzCisuYWxp
Z24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfZDEzOgorCW1vdglyMCwgIzAKKwl2bW92CXMyNiwgcjAK
Kwl2bW92CXMyNywgcjAKKwlieAlscgorCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9kMTQK
Ky5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9kMTQKKy5hbGlnbgk0CitfYWJpX3Rl
c3RfY2xvYmJlcl9kMTQ6CisJbW92CXIwLCAjMAorCXZtb3YJczI4LCByMAorCXZtb3YJczI5LCBy
MAorCWJ4CWxyCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX2QxNQorLnByaXZhdGVfZXh0
ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2QxNQorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX2Qx
NToKKwltb3YJcjAsICMwCisJdm1vdglzMzAsIHIwCisJdm1vdglzMzEsIHIwCisJYngJbHIKKwor
I2VuZGlmICAvLyAhT1BFTlNTTF9OT19BU00KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5
cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjguUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL2NoYWNoYS9j
aGFjaGEtYXJtdjguUwppbmRleCBmZjhmOTc3NzVhM2EzZWRhYjc3MTUyNGExYTRkYjAxNjVhYmE5
MTA0Li5lMDVhMjY1ZjljNWE0ZWU1YTJmMDgzMzJmMjA4MThkNzZiMDJlZTg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9saW51eC1hYXJjaDY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLWFybXY4LlMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgt
YWFyY2g2NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12OC5TCkBAIC0xLDExICsxLDEyIEBACiAv
LyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3Jp
cHQgaW4gdGhlIEJvcmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQu
CiAKLSNpZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVy
ZSkKKyNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJl
KG1lbW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBP
UEVOU1NMX05PX0FTTQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9f
QVNNKQogI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCkBAIC0yMywxMiArMjQsNiBAQAogLnF1YWQJ
MHgzMzIwNjQ2ZTYxNzA3ODY1LDB4NmIyMDY1NzQ3OTYyMmQzMgkJLy8gZW5kaWFuLW5ldXRyYWwK
IC5Mb25lOgogLmxvbmcJMSwwLDAsMAotLkxPUEVOU1NMX2FybWNhcF9QOgotI2lmZGVmCV9fSUxQ
MzJfXwotLmxvbmcJT1BFTlNTTF9hcm1jYXBfUC0uCi0jZWxzZQotLnF1YWQJT1BFTlNTTF9hcm1j
YXBfUC0uCi0jZW5kaWYKIC5ieXRlCTY3LDEwNCw5Nyw2NywxMDQsOTcsNTAsNDgsMzIsMTAyLDEx
MSwxMTQsMzIsNjUsODIsNzcsMTE4LDU2LDQ0LDMyLDY3LDgyLDg5LDgwLDg0LDc5LDcxLDY1LDc3
LDgzLDMyLDk4LDEyMSwzMiw2MCw5NywxMTIsMTEyLDExNCwxMTEsNjQsMTExLDExMiwxMDEsMTEw
LDExNSwxMTUsMTA4LDQ2LDExMSwxMTQsMTAzLDYyLDAKIC5hbGlnbgkyCiAKQEAgLTQwLDExICsz
NSwxNCBAQAogLmFsaWduCTUKIENoYUNoYTIwX2N0cjMyOgogCWNiegl4MiwuTGFib3J0CisjaWYg
X19oYXNfZmVhdHVyZShod2FkZHJlc3Nfc2FuaXRpemVyKSAmJiBfX2NsYW5nX21ham9yX18gPj0g
MTAKKwlhZHJwCXg1LDpwZ19oaTIxX25jOk9QRU5TU0xfYXJtY2FwX1AKKyNlbHNlCiAJYWRycAl4
NSxPUEVOU1NMX2FybWNhcF9QCisjZW5kaWYKIAljbXAJeDIsIzE5MgogCWIubG8JLkxzaG9ydAot
CWFkZAl4NSx4NSw6bG8xMjpPUEVOU1NMX2FybWNhcF9QCi0JbGRyCXcxNyxbeDVdCisJbGRyCXcx
NyxbeDUsOmxvMTI6T1BFTlNTTF9hcm1jYXBfUF0KIAl0c3QJdzE3LCNBUk1WN19ORU9OCiAJYi5u
ZQlDaGFDaGEyMF9uZW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL2ZpcHNt
b2R1bGUvYWVzdjgtYXJteDY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2Fl
c3Y4LWFybXg2NC5TCmluZGV4IDE5YjU4NWYwNDk3ZDcxNmQwOWQwMDYyODZlZTcxMThmMTdhNDEw
ZDMuLjE2ODA0NDRlMDk5Nzk5Y2VlODA0NGU4ZjNlOTA4NjA2ZmRjMmJkOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L2xpbnV4LWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzdjgtYXJteDY0LlMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGlu
dXgtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9hZXN2OC1hcm14NjQuUwpAQCAtMSwxMSArMSwx
MiBAQAogLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBl
cmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBi
eSBoYW5kLgogCi0jaWYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFz
X2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNf
ZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNk
ZWZpbmUgT1BFTlNTTF9OT19BU00KICNlbmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVO
U1NMX05PX0FTTSkKICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgt
YWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9hcm12OC1tb250LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2Ny
eXB0by9maXBzbW9kdWxlL2FybXY4LW1vbnQuUwppbmRleCAzZGNhNDQzOTc2YTBhOGY1MjRmZjk4
MGI3NzJiNjhiYmRhNTE4YzI4Li4xZWEwNWJhOWY2ZmUyYjg1MTE2MzdmMjVjZGJkMzU2YmNiZmI2
YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2FybXY4LW1v
bnQuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2FybXY4LW1vbnQuUwpA
QCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxh
cmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0cmVlLiBE
byBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2lmICFk
ZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlm
CiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NM
X05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNlbmRpZgotI2VuZGlmCiAKICNpZiAh
ZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1uZW9uLWFybXY4LlMg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLW5lb24tYXJtdjguUwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNTY3NjgzMDdkYzRkMDk5MWI4ZDk3MzY3OTBjMTMwMDhhMDE0OTY0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1uZW9uLWFy
bXY4LlMKQEAgLTAsMCArMSwzNDAgQEAKKy8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBh
IHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NMCisvLyBzb3VyY2Ug
dHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KKworI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUp
CisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCisjaWYgX19oYXNfZmVhdHVyZSht
ZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BF
TlNTTF9OT19BU00KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCisjaWYg
ZGVmaW5lZChfX2FhcmNoNjRfXykKKyNpZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgpCisjaW5j
bHVkZSA8Ym9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX2FzbS5oPgorI2VuZGlmCisudGV4dAorCisu
Z2xvYmwJZ2NtX2luaXRfbmVvbgorLmhpZGRlbglnY21faW5pdF9uZW9uCisudHlwZQlnY21faW5p
dF9uZW9uLCVmdW5jdGlvbgorLmFsaWduCTQKK2djbV9pbml0X25lb246CisJLy8gVGhpcyBmdW5j
dGlvbiBpcyBhZGFwdGVkIGZyb20gZ2NtX2luaXRfdjguIHhDMiBpcyB0My4KKwlsZDEJe3YxNy4y
ZH0sIFt4MV0JCQkvLyBsb2FkIEgKKwltb3ZpCXYxOS4xNmIsICMweGUxCisJc2hsCXYxOS4yZCwg
djE5LjJkLCAjNTcJCS8vIDB4YzIuMAorCWV4dAl2My4xNmIsIHYxNy4xNmIsIHYxNy4xNmIsICM4
CisJdXNocgl2MTguMmQsIHYxOS4yZCwgIzYzCisJZHVwCXYxNy40cywgdjE3LnNbMV0KKwlleHQJ
djE2LjE2YiwgdjE4LjE2YiwgdjE5LjE2YiwgIzgJLy8gdDA9MHhjMi4uLi4wMQorCXVzaHIJdjE4
LjJkLCB2My4yZCwgIzYzCisJc3Nocgl2MTcuNHMsIHYxNy40cywgIzMxCQkvLyBicm9hZGNhc3Qg
Y2FycnkgYml0CisJYW5kCXYxOC4xNmIsIHYxOC4xNmIsIHYxNi4xNmIKKwlzaGwJdjMuMmQsIHYz
LjJkLCAjMQorCWV4dAl2MTguMTZiLCB2MTguMTZiLCB2MTguMTZiLCAjOAorCWFuZAl2MTYuMTZi
LCB2MTYuMTZiLCB2MTcuMTZiCisJb3JyCXYzLjE2YiwgdjMuMTZiLCB2MTguMTZiCS8vIEg8PDw9
MQorCWVvcgl2NS4xNmIsIHYzLjE2YiwgdjE2LjE2YgkvLyB0d2lzdGVkIEgKKwlzdDEJe3Y1LjJk
fSwgW3gwXQkJCS8vIHN0b3JlIEh0YWJsZVswXQorCXJldAorLnNpemUJZ2NtX2luaXRfbmVvbiwu
LWdjbV9pbml0X25lb24KKworLmdsb2JsCWdjbV9nbXVsdF9uZW9uCisuaGlkZGVuCWdjbV9nbXVs
dF9uZW9uCisudHlwZQlnY21fZ211bHRfbmVvbiwlZnVuY3Rpb24KKy5hbGlnbgk0CitnY21fZ211
bHRfbmVvbjoKKwlsZDEJe3YzLjE2Yn0sIFt4MF0JCS8vIGxvYWQgWGkKKwlsZDEJe3Y1LjFkfSwg
W3gxXSwgIzgJCS8vIGxvYWQgdHdpc3RlZCBICisJbGQxCXt2Ni4xZH0sIFt4MV0KKwlhZHJwCXg5
LCAuTG1hc2tzCQkvLyBsb2FkIGNvbnN0YW50cworCWFkZAl4OSwgeDksIDpsbzEyOi5MbWFza3MK
KwlsZDEJe3YyNC4yZCwgdjI1LjJkfSwgW3g5XQorCXJldjY0CXYzLjE2YiwgdjMuMTZiCQkvLyBi
eXRlc3dhcCBYaQorCWV4dAl2My4xNmIsIHYzLjE2YiwgdjMuMTZiLCAjOAorCWVvcgl2Ny44Yiwg
djUuOGIsIHY2LjhiCS8vIEthcmF0c3ViYSBwcmUtcHJvY2Vzc2luZworCisJbW92CXgzLCAjMTYK
KwliCS5MZ211bHRfbmVvbgorLnNpemUJZ2NtX2dtdWx0X25lb24sLi1nY21fZ211bHRfbmVvbgor
CisuZ2xvYmwJZ2NtX2doYXNoX25lb24KKy5oaWRkZW4JZ2NtX2doYXNoX25lb24KKy50eXBlCWdj
bV9naGFzaF9uZW9uLCVmdW5jdGlvbgorLmFsaWduCTQKK2djbV9naGFzaF9uZW9uOgorCWxkMQl7
djAuMTZifSwgW3gwXQkJLy8gbG9hZCBYaQorCWxkMQl7djUuMWR9LCBbeDFdLCAjOAkJLy8gbG9h
ZCB0d2lzdGVkIEgKKwlsZDEJe3Y2LjFkfSwgW3gxXQorCWFkcnAJeDksIC5MbWFza3MJCS8vIGxv
YWQgY29uc3RhbnRzCisJYWRkCXg5LCB4OSwgOmxvMTI6LkxtYXNrcworCWxkMQl7djI0LjJkLCB2
MjUuMmR9LCBbeDldCisJcmV2NjQJdjAuMTZiLCB2MC4xNmIJCS8vIGJ5dGVzd2FwIFhpCisJZXh0
CXYwLjE2YiwgdjAuMTZiLCB2MC4xNmIsICM4CisJZW9yCXY3LjhiLCB2NS44YiwgdjYuOGIJLy8g
S2FyYXRzdWJhIHByZS1wcm9jZXNzaW5nCisKKy5Mb29wX25lb246CisJbGQxCXt2My4xNmJ9LCBb
eDJdLCAjMTYJLy8gbG9hZCBpbnAKKwlyZXY2NAl2My4xNmIsIHYzLjE2YgkJLy8gYnl0ZXN3YXAg
aW5wCisJZXh0CXYzLjE2YiwgdjMuMTZiLCB2My4xNmIsICM4CisJZW9yCXYzLjE2YiwgdjMuMTZi
LCB2MC4xNmIJLy8gaW5wIF49IFhpCisKKy5MZ211bHRfbmVvbjoKKwkvLyBTcGxpdCB0aGUgaW5w
dXQgaW50byB2MyBhbmQgdjQuIChUaGUgdXBwZXIgaGFsdmVzIGFyZSB1bnVzZWQsCisJLy8gc28g
aXQgaXMgb2theSB0byBsZWF2ZSB0aGVtIGFsb25lLikKKwlpbnMJdjQuZFswXSwgdjMuZFsxXQor
CWV4dAl2MTYuOGIsIHY1LjhiLCB2NS44YiwgIzEJLy8gQTEKKwlwbXVsbAl2MTYuOGgsIHYxNi44
YiwgdjMuOGIJCS8vIEYgPSBBMSpCCisJZXh0CXYwLjhiLCB2My44YiwgdjMuOGIsICMxCQkvLyBC
MQorCXBtdWxsCXYwLjhoLCB2NS44YiwgdjAuOGIJCS8vIEUgPSBBKkIxCisJZXh0CXYxNy44Yiwg
djUuOGIsIHY1LjhiLCAjMgkvLyBBMgorCXBtdWxsCXYxNy44aCwgdjE3LjhiLCB2My44YgkJLy8g
SCA9IEEyKkIKKwlleHQJdjE5LjhiLCB2My44YiwgdjMuOGIsICMyCS8vIEIyCisJcG11bGwJdjE5
LjhoLCB2NS44YiwgdjE5LjhiCQkvLyBHID0gQSpCMgorCWV4dAl2MTguOGIsIHY1LjhiLCB2NS44
YiwgIzMJLy8gQTMKKwllb3IJdjE2LjE2YiwgdjE2LjE2YiwgdjAuMTZiCS8vIEwgPSBFICsgRgor
CXBtdWxsCXYxOC44aCwgdjE4LjhiLCB2My44YgkJLy8gSiA9IEEzKkIKKwlleHQJdjAuOGIsIHYz
LjhiLCB2My44YiwgIzMJCS8vIEIzCisJZW9yCXYxNy4xNmIsIHYxNy4xNmIsIHYxOS4xNmIJLy8g
TSA9IEcgKyBICisJcG11bGwJdjAuOGgsIHY1LjhiLCB2MC44YgkJLy8gSSA9IEEqQjMKKworCS8v
IEhlcmUgd2UgZGl2ZXJnZSBmcm9tIHRoZSAzMi1iaXQgdmVyc2lvbi4gSXQgY29tcHV0ZXMgdGhl
IGZvbGxvd2luZworCS8vIChpbnN0cnVjdGlvbnMgcmVvcmRlcmVkIGZvciBjbGFyaXR5KToKKwkv
LworCS8vICAgICB2ZW9yCSR0MCNsbywgJHQwI2xvLCAkdDAjaGkJQCB0MCA9IFAwICsgUDEgKEwp
CisJLy8gICAgIHZhbmQJJHQwI2hpLCAkdDAjaGksICRrNDgKKwkvLyAgICAgdmVvcgkkdDAjbG8s
ICR0MCNsbywgJHQwI2hpCisJLy8KKwkvLyAgICAgdmVvcgkkdDEjbG8sICR0MSNsbywgJHQxI2hp
CUAgdDEgPSBQMiArIFAzIChNKQorCS8vICAgICB2YW5kCSR0MSNoaSwgJHQxI2hpLCAkazMyCisJ
Ly8gICAgIHZlb3IJJHQxI2xvLCAkdDEjbG8sICR0MSNoaQorCS8vCisJLy8gICAgIHZlb3IJJHQy
I2xvLCAkdDIjbG8sICR0MiNoaQlAIHQyID0gUDQgKyBQNSAoTikKKwkvLyAgICAgdmFuZAkkdDIj
aGksICR0MiNoaSwgJGsxNgorCS8vICAgICB2ZW9yCSR0MiNsbywgJHQyI2xvLCAkdDIjaGkKKwkv
LworCS8vICAgICB2ZW9yCSR0MyNsbywgJHQzI2xvLCAkdDMjaGkJQCB0MyA9IFA2ICsgUDcgKEsp
CisJLy8gICAgIHZtb3YuaTY0CSR0MyNoaSwgIzAKKwkvLworCS8vICRrTiBpcyBhIG1hc2sgd2l0
aCB0aGUgYm90dG9tIE4gYml0cyBzZXQuIEFBcmNoNjQgY2Fubm90IGNvbXB1dGUgb24KKwkvLyB1
cHBlciBoYWx2ZXMgb2YgU0lNRCByZWdpc3RlcnMsIHNvIHdlIG11c3Qgc3BsaXQgZWFjaCBoYWxm
IGludG8KKwkvLyBzZXBhcmF0ZSByZWdpc3RlcnMuIFRvIGNvbXBlbnNhdGUsIHdlIHBhaXIgY29t
cHV0YXRpb25zIHVwIGFuZAorCS8vIHBhcmFsbGVsaXplLgorCisJZXh0CXYxOS44YiwgdjMuOGIs
IHYzLjhiLCAjNAkvLyBCNAorCWVvcgl2MTguMTZiLCB2MTguMTZiLCB2MC4xNmIJLy8gTiA9IEkg
KyBKCisJcG11bGwJdjE5LjhoLCB2NS44YiwgdjE5LjhiCQkvLyBLID0gQSpCNAorCisJLy8gVGhp
cyBjYW4gcHJvYmFibHkgYmUgc2NoZWR1bGVkIG1vcmUgZWZmaWNpZW50bHkuIEZvciBub3csIHdl
IGp1c3QKKwkvLyBwYWlyIHVwIGluZGVwZW5kZW50IGluc3RydWN0aW9ucy4KKwl6aXAxCXYyMC4y
ZCwgdjE2LjJkLCB2MTcuMmQKKwl6aXAxCXYyMi4yZCwgdjE4LjJkLCB2MTkuMmQKKwl6aXAyCXYy
MS4yZCwgdjE2LjJkLCB2MTcuMmQKKwl6aXAyCXYyMy4yZCwgdjE4LjJkLCB2MTkuMmQKKwllb3IJ
djIwLjE2YiwgdjIwLjE2YiwgdjIxLjE2YgorCWVvcgl2MjIuMTZiLCB2MjIuMTZiLCB2MjMuMTZi
CisJYW5kCXYyMS4xNmIsIHYyMS4xNmIsIHYyNC4xNmIKKwlhbmQJdjIzLjE2YiwgdjIzLjE2Yiwg
djI1LjE2YgorCWVvcgl2MjAuMTZiLCB2MjAuMTZiLCB2MjEuMTZiCisJZW9yCXYyMi4xNmIsIHYy
Mi4xNmIsIHYyMy4xNmIKKwl6aXAxCXYxNi4yZCwgdjIwLjJkLCB2MjEuMmQKKwl6aXAxCXYxOC4y
ZCwgdjIyLjJkLCB2MjMuMmQKKwl6aXAyCXYxNy4yZCwgdjIwLjJkLCB2MjEuMmQKKwl6aXAyCXYx
OS4yZCwgdjIyLjJkLCB2MjMuMmQKKworCWV4dAl2MTYuMTZiLCB2MTYuMTZiLCB2MTYuMTZiLCAj
MTUJLy8gdDAgPSB0MCA8PCA4CisJZXh0CXYxNy4xNmIsIHYxNy4xNmIsIHYxNy4xNmIsICMxNAkv
LyB0MSA9IHQxIDw8IDE2CisJcG11bGwJdjAuOGgsIHY1LjhiLCB2My44YgkJLy8gRCA9IEEqQgor
CWV4dAl2MTkuMTZiLCB2MTkuMTZiLCB2MTkuMTZiLCAjMTIJLy8gdDMgPSB0MyA8PCAzMgorCWV4
dAl2MTguMTZiLCB2MTguMTZiLCB2MTguMTZiLCAjMTMJLy8gdDIgPSB0MiA8PCAyNAorCWVvcgl2
MTYuMTZiLCB2MTYuMTZiLCB2MTcuMTZiCisJZW9yCXYxOC4xNmIsIHYxOC4xNmIsIHYxOS4xNmIK
Kwllb3IJdjAuMTZiLCB2MC4xNmIsIHYxNi4xNmIKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYxOC4x
NmIKKwllb3IJdjMuOGIsIHYzLjhiLCB2NC44YgkvLyBLYXJhdHN1YmEgcHJlLXByb2Nlc3NpbmcK
KwlleHQJdjE2LjhiLCB2Ny44YiwgdjcuOGIsICMxCS8vIEExCisJcG11bGwJdjE2LjhoLCB2MTYu
OGIsIHYzLjhiCQkvLyBGID0gQTEqQgorCWV4dAl2MS44YiwgdjMuOGIsIHYzLjhiLCAjMQkJLy8g
QjEKKwlwbXVsbAl2MS44aCwgdjcuOGIsIHYxLjhiCQkvLyBFID0gQSpCMQorCWV4dAl2MTcuOGIs
IHY3LjhiLCB2Ny44YiwgIzIJLy8gQTIKKwlwbXVsbAl2MTcuOGgsIHYxNy44YiwgdjMuOGIJCS8v
IEggPSBBMipCCisJZXh0CXYxOS44YiwgdjMuOGIsIHYzLjhiLCAjMgkvLyBCMgorCXBtdWxsCXYx
OS44aCwgdjcuOGIsIHYxOS44YgkJLy8gRyA9IEEqQjIKKwlleHQJdjE4LjhiLCB2Ny44Yiwgdjcu
OGIsICMzCS8vIEEzCisJZW9yCXYxNi4xNmIsIHYxNi4xNmIsIHYxLjE2YgkvLyBMID0gRSArIEYK
KwlwbXVsbAl2MTguOGgsIHYxOC44YiwgdjMuOGIJCS8vIEogPSBBMypCCisJZXh0CXYxLjhiLCB2
My44YiwgdjMuOGIsICMzCQkvLyBCMworCWVvcgl2MTcuMTZiLCB2MTcuMTZiLCB2MTkuMTZiCS8v
IE0gPSBHICsgSAorCXBtdWxsCXYxLjhoLCB2Ny44YiwgdjEuOGIJCS8vIEkgPSBBKkIzCisKKwkv
LyBIZXJlIHdlIGRpdmVyZ2UgZnJvbSB0aGUgMzItYml0IHZlcnNpb24uIEl0IGNvbXB1dGVzIHRo
ZSBmb2xsb3dpbmcKKwkvLyAoaW5zdHJ1Y3Rpb25zIHJlb3JkZXJlZCBmb3IgY2xhcml0eSk6CisJ
Ly8KKwkvLyAgICAgdmVvcgkkdDAjbG8sICR0MCNsbywgJHQwI2hpCUAgdDAgPSBQMCArIFAxIChM
KQorCS8vICAgICB2YW5kCSR0MCNoaSwgJHQwI2hpLCAkazQ4CisJLy8gICAgIHZlb3IJJHQwI2xv
LCAkdDAjbG8sICR0MCNoaQorCS8vCisJLy8gICAgIHZlb3IJJHQxI2xvLCAkdDEjbG8sICR0MSNo
aQlAIHQxID0gUDIgKyBQMyAoTSkKKwkvLyAgICAgdmFuZAkkdDEjaGksICR0MSNoaSwgJGszMgor
CS8vICAgICB2ZW9yCSR0MSNsbywgJHQxI2xvLCAkdDEjaGkKKwkvLworCS8vICAgICB2ZW9yCSR0
MiNsbywgJHQyI2xvLCAkdDIjaGkJQCB0MiA9IFA0ICsgUDUgKE4pCisJLy8gICAgIHZhbmQJJHQy
I2hpLCAkdDIjaGksICRrMTYKKwkvLyAgICAgdmVvcgkkdDIjbG8sICR0MiNsbywgJHQyI2hpCisJ
Ly8KKwkvLyAgICAgdmVvcgkkdDMjbG8sICR0MyNsbywgJHQzI2hpCUAgdDMgPSBQNiArIFA3IChL
KQorCS8vICAgICB2bW92Lmk2NAkkdDMjaGksICMwCisJLy8KKwkvLyAka04gaXMgYSBtYXNrIHdp
dGggdGhlIGJvdHRvbSBOIGJpdHMgc2V0LiBBQXJjaDY0IGNhbm5vdCBjb21wdXRlIG9uCisJLy8g
dXBwZXIgaGFsdmVzIG9mIFNJTUQgcmVnaXN0ZXJzLCBzbyB3ZSBtdXN0IHNwbGl0IGVhY2ggaGFs
ZiBpbnRvCisJLy8gc2VwYXJhdGUgcmVnaXN0ZXJzLiBUbyBjb21wZW5zYXRlLCB3ZSBwYWlyIGNv
bXB1dGF0aW9ucyB1cCBhbmQKKwkvLyBwYXJhbGxlbGl6ZS4KKworCWV4dAl2MTkuOGIsIHYzLjhi
LCB2My44YiwgIzQJLy8gQjQKKwllb3IJdjE4LjE2YiwgdjE4LjE2YiwgdjEuMTZiCS8vIE4gPSBJ
ICsgSgorCXBtdWxsCXYxOS44aCwgdjcuOGIsIHYxOS44YgkJLy8gSyA9IEEqQjQKKworCS8vIFRo
aXMgY2FuIHByb2JhYmx5IGJlIHNjaGVkdWxlZCBtb3JlIGVmZmljaWVudGx5LiBGb3Igbm93LCB3
ZSBqdXN0CisJLy8gcGFpciB1cCBpbmRlcGVuZGVudCBpbnN0cnVjdGlvbnMuCisJemlwMQl2MjAu
MmQsIHYxNi4yZCwgdjE3LjJkCisJemlwMQl2MjIuMmQsIHYxOC4yZCwgdjE5LjJkCisJemlwMgl2
MjEuMmQsIHYxNi4yZCwgdjE3LjJkCisJemlwMgl2MjMuMmQsIHYxOC4yZCwgdjE5LjJkCisJZW9y
CXYyMC4xNmIsIHYyMC4xNmIsIHYyMS4xNmIKKwllb3IJdjIyLjE2YiwgdjIyLjE2YiwgdjIzLjE2
YgorCWFuZAl2MjEuMTZiLCB2MjEuMTZiLCB2MjQuMTZiCisJYW5kCXYyMy4xNmIsIHYyMy4xNmIs
IHYyNS4xNmIKKwllb3IJdjIwLjE2YiwgdjIwLjE2YiwgdjIxLjE2YgorCWVvcgl2MjIuMTZiLCB2
MjIuMTZiLCB2MjMuMTZiCisJemlwMQl2MTYuMmQsIHYyMC4yZCwgdjIxLjJkCisJemlwMQl2MTgu
MmQsIHYyMi4yZCwgdjIzLjJkCisJemlwMgl2MTcuMmQsIHYyMC4yZCwgdjIxLjJkCisJemlwMgl2
MTkuMmQsIHYyMi4yZCwgdjIzLjJkCisKKwlleHQJdjE2LjE2YiwgdjE2LjE2YiwgdjE2LjE2Yiwg
IzE1CS8vIHQwID0gdDAgPDwgOAorCWV4dAl2MTcuMTZiLCB2MTcuMTZiLCB2MTcuMTZiLCAjMTQJ
Ly8gdDEgPSB0MSA8PCAxNgorCXBtdWxsCXYxLjhoLCB2Ny44YiwgdjMuOGIJCS8vIEQgPSBBKkIK
KwlleHQJdjE5LjE2YiwgdjE5LjE2YiwgdjE5LjE2YiwgIzEyCS8vIHQzID0gdDMgPDwgMzIKKwll
eHQJdjE4LjE2YiwgdjE4LjE2YiwgdjE4LjE2YiwgIzEzCS8vIHQyID0gdDIgPDwgMjQKKwllb3IJ
djE2LjE2YiwgdjE2LjE2YiwgdjE3LjE2YgorCWVvcgl2MTguMTZiLCB2MTguMTZiLCB2MTkuMTZi
CisJZW9yCXYxLjE2YiwgdjEuMTZiLCB2MTYuMTZiCisJZW9yCXYxLjE2YiwgdjEuMTZiLCB2MTgu
MTZiCisJZXh0CXYxNi44YiwgdjYuOGIsIHY2LjhiLCAjMQkvLyBBMQorCXBtdWxsCXYxNi44aCwg
djE2LjhiLCB2NC44YgkJLy8gRiA9IEExKkIKKwlleHQJdjIuOGIsIHY0LjhiLCB2NC44YiwgIzEJ
CS8vIEIxCisJcG11bGwJdjIuOGgsIHY2LjhiLCB2Mi44YgkJLy8gRSA9IEEqQjEKKwlleHQJdjE3
LjhiLCB2Ni44YiwgdjYuOGIsICMyCS8vIEEyCisJcG11bGwJdjE3LjhoLCB2MTcuOGIsIHY0Ljhi
CQkvLyBIID0gQTIqQgorCWV4dAl2MTkuOGIsIHY0LjhiLCB2NC44YiwgIzIJLy8gQjIKKwlwbXVs
bAl2MTkuOGgsIHY2LjhiLCB2MTkuOGIJCS8vIEcgPSBBKkIyCisJZXh0CXYxOC44YiwgdjYuOGIs
IHY2LjhiLCAjMwkvLyBBMworCWVvcgl2MTYuMTZiLCB2MTYuMTZiLCB2Mi4xNmIJLy8gTCA9IEUg
KyBGCisJcG11bGwJdjE4LjhoLCB2MTguOGIsIHY0LjhiCQkvLyBKID0gQTMqQgorCWV4dAl2Mi44
YiwgdjQuOGIsIHY0LjhiLCAjMwkJLy8gQjMKKwllb3IJdjE3LjE2YiwgdjE3LjE2YiwgdjE5LjE2
YgkvLyBNID0gRyArIEgKKwlwbXVsbAl2Mi44aCwgdjYuOGIsIHYyLjhiCQkvLyBJID0gQSpCMwor
CisJLy8gSGVyZSB3ZSBkaXZlcmdlIGZyb20gdGhlIDMyLWJpdCB2ZXJzaW9uLiBJdCBjb21wdXRl
cyB0aGUgZm9sbG93aW5nCisJLy8gKGluc3RydWN0aW9ucyByZW9yZGVyZWQgZm9yIGNsYXJpdHkp
OgorCS8vCisJLy8gICAgIHZlb3IJJHQwI2xvLCAkdDAjbG8sICR0MCNoaQlAIHQwID0gUDAgKyBQ
MSAoTCkKKwkvLyAgICAgdmFuZAkkdDAjaGksICR0MCNoaSwgJGs0OAorCS8vICAgICB2ZW9yCSR0
MCNsbywgJHQwI2xvLCAkdDAjaGkKKwkvLworCS8vICAgICB2ZW9yCSR0MSNsbywgJHQxI2xvLCAk
dDEjaGkJQCB0MSA9IFAyICsgUDMgKE0pCisJLy8gICAgIHZhbmQJJHQxI2hpLCAkdDEjaGksICRr
MzIKKwkvLyAgICAgdmVvcgkkdDEjbG8sICR0MSNsbywgJHQxI2hpCisJLy8KKwkvLyAgICAgdmVv
cgkkdDIjbG8sICR0MiNsbywgJHQyI2hpCUAgdDIgPSBQNCArIFA1IChOKQorCS8vICAgICB2YW5k
CSR0MiNoaSwgJHQyI2hpLCAkazE2CisJLy8gICAgIHZlb3IJJHQyI2xvLCAkdDIjbG8sICR0MiNo
aQorCS8vCisJLy8gICAgIHZlb3IJJHQzI2xvLCAkdDMjbG8sICR0MyNoaQlAIHQzID0gUDYgKyBQ
NyAoSykKKwkvLyAgICAgdm1vdi5pNjQJJHQzI2hpLCAjMAorCS8vCisJLy8gJGtOIGlzIGEgbWFz
ayB3aXRoIHRoZSBib3R0b20gTiBiaXRzIHNldC4gQUFyY2g2NCBjYW5ub3QgY29tcHV0ZSBvbgor
CS8vIHVwcGVyIGhhbHZlcyBvZiBTSU1EIHJlZ2lzdGVycywgc28gd2UgbXVzdCBzcGxpdCBlYWNo
IGhhbGYgaW50bworCS8vIHNlcGFyYXRlIHJlZ2lzdGVycy4gVG8gY29tcGVuc2F0ZSwgd2UgcGFp
ciBjb21wdXRhdGlvbnMgdXAgYW5kCisJLy8gcGFyYWxsZWxpemUuCisKKwlleHQJdjE5LjhiLCB2
NC44YiwgdjQuOGIsICM0CS8vIEI0CisJZW9yCXYxOC4xNmIsIHYxOC4xNmIsIHYyLjE2YgkvLyBO
ID0gSSArIEoKKwlwbXVsbAl2MTkuOGgsIHY2LjhiLCB2MTkuOGIJCS8vIEsgPSBBKkI0CisKKwkv
LyBUaGlzIGNhbiBwcm9iYWJseSBiZSBzY2hlZHVsZWQgbW9yZSBlZmZpY2llbnRseS4gRm9yIG5v
dywgd2UganVzdAorCS8vIHBhaXIgdXAgaW5kZXBlbmRlbnQgaW5zdHJ1Y3Rpb25zLgorCXppcDEJ
djIwLjJkLCB2MTYuMmQsIHYxNy4yZAorCXppcDEJdjIyLjJkLCB2MTguMmQsIHYxOS4yZAorCXpp
cDIJdjIxLjJkLCB2MTYuMmQsIHYxNy4yZAorCXppcDIJdjIzLjJkLCB2MTguMmQsIHYxOS4yZAor
CWVvcgl2MjAuMTZiLCB2MjAuMTZiLCB2MjEuMTZiCisJZW9yCXYyMi4xNmIsIHYyMi4xNmIsIHYy
My4xNmIKKwlhbmQJdjIxLjE2YiwgdjIxLjE2YiwgdjI0LjE2YgorCWFuZAl2MjMuMTZiLCB2MjMu
MTZiLCB2MjUuMTZiCisJZW9yCXYyMC4xNmIsIHYyMC4xNmIsIHYyMS4xNmIKKwllb3IJdjIyLjE2
YiwgdjIyLjE2YiwgdjIzLjE2YgorCXppcDEJdjE2LjJkLCB2MjAuMmQsIHYyMS4yZAorCXppcDEJ
djE4LjJkLCB2MjIuMmQsIHYyMy4yZAorCXppcDIJdjE3LjJkLCB2MjAuMmQsIHYyMS4yZAorCXpp
cDIJdjE5LjJkLCB2MjIuMmQsIHYyMy4yZAorCisJZXh0CXYxNi4xNmIsIHYxNi4xNmIsIHYxNi4x
NmIsICMxNQkvLyB0MCA9IHQwIDw8IDgKKwlleHQJdjE3LjE2YiwgdjE3LjE2YiwgdjE3LjE2Yiwg
IzE0CS8vIHQxID0gdDEgPDwgMTYKKwlwbXVsbAl2Mi44aCwgdjYuOGIsIHY0LjhiCQkvLyBEID0g
QSpCCisJZXh0CXYxOS4xNmIsIHYxOS4xNmIsIHYxOS4xNmIsICMxMgkvLyB0MyA9IHQzIDw8IDMy
CisJZXh0CXYxOC4xNmIsIHYxOC4xNmIsIHYxOC4xNmIsICMxMwkvLyB0MiA9IHQyIDw8IDI0CisJ
ZW9yCXYxNi4xNmIsIHYxNi4xNmIsIHYxNy4xNmIKKwllb3IJdjE4LjE2YiwgdjE4LjE2YiwgdjE5
LjE2YgorCWVvcgl2Mi4xNmIsIHYyLjE2YiwgdjE2LjE2YgorCWVvcgl2Mi4xNmIsIHYyLjE2Yiwg
djE4LjE2YgorCWV4dAl2MTYuMTZiLCB2MC4xNmIsIHYyLjE2YiwgIzgKKwllb3IJdjEuMTZiLCB2
MS4xNmIsIHYwLjE2YgkvLyBLYXJhdHN1YmEgcG9zdC1wcm9jZXNzaW5nCisJZW9yCXYxLjE2Yiwg
djEuMTZiLCB2Mi4xNmIKKwllb3IJdjEuMTZiLCB2MS4xNmIsIHYxNi4xNmIJLy8gWG0gb3Zlcmxh
cHMgWGgubG8gYW5kIFhsLmhpCisJaW5zCXYwLmRbMV0sIHYxLmRbMF0JCS8vIFhofFhsIC0gMjU2
LWJpdCByZXN1bHQKKwkvLyBUaGlzIGlzIGEgbm8tb3AgZHVlIHRvIHRoZSBpbnMgaW5zdHJ1Y3Rp
b24gYmVsb3cuCisJLy8gaW5zCXYyLmRbMF0sIHYxLmRbMV0KKworCS8vIGVxdWl2YWxlbnQgb2Yg
cmVkdWN0aW9uX2F2eCBmcm9tIGdoYXNoLXg4Nl82NC5wbAorCXNobAl2MTcuMmQsIHYwLjJkLCAj
NTcJCS8vIDFzdCBwaGFzZQorCXNobAl2MTguMmQsIHYwLjJkLCAjNjIKKwllb3IJdjE4LjE2Yiwg
djE4LjE2YiwgdjE3LjE2YgkvLworCXNobAl2MTcuMmQsIHYwLjJkLCAjNjMKKwllb3IJdjE4LjE2
YiwgdjE4LjE2YiwgdjE3LjE2YgkvLworCS8vIE5vdGUgWG0gY29udGFpbnMge1hsLmRbMV0sIFho
LmRbMF19LgorCWVvcgl2MTguMTZiLCB2MTguMTZiLCB2MS4xNmIKKwlpbnMJdjAuZFsxXSwgdjE4
LmRbMF0JCS8vIFhsLmRbMV0gXj0gdDIuZFswXQorCWlucwl2Mi5kWzBdLCB2MTguZFsxXQkJLy8g
WGguZFswXSBePSB0Mi5kWzFdCisKKwl1c2hyCXYxOC4yZCwgdjAuMmQsICMxCQkvLyAybmQgcGhh
c2UKKwllb3IJdjIuMTZiLCB2Mi4xNmIsdjAuMTZiCisJZW9yCXYwLjE2YiwgdjAuMTZiLHYxOC4x
NmIJLy8KKwl1c2hyCXYxOC4yZCwgdjE4LjJkLCAjNgorCXVzaHIJdjAuMmQsIHYwLjJkLCAjMQkJ
Ly8KKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYyLjE2YgkvLworCWVvcgl2MC4xNmIsIHYwLjE2Yiwg
djE4LjE2YgkvLworCisJc3Vicwl4MywgeDMsICMxNgorCWJuZQkuTG9vcF9uZW9uCisKKwlyZXY2
NAl2MC4xNmIsIHYwLjE2YgkJLy8gYnl0ZXN3YXAgWGkgYW5kIHdyaXRlCisJZXh0CXYwLjE2Yiwg
djAuMTZiLCB2MC4xNmIsICM4CisJc3QxCXt2MC4xNmJ9LCBbeDBdCisKKwlyZXQKKy5zaXplCWdj
bV9naGFzaF9uZW9uLC4tZ2NtX2doYXNoX25lb24KKworLnNlY3Rpb24JLnJvZGF0YQorLmFsaWdu
CTQKKy5MbWFza3M6CisucXVhZAkweDAwMDBmZmZmZmZmZmZmZmYJLy8gazQ4CisucXVhZAkweDAw
MDAwMDAwZmZmZmZmZmYJLy8gazMyCisucXVhZAkweDAwMDAwMDAwMDAwMGZmZmYJLy8gazE2Cisu
cXVhZAkweDAwMDAwMDAwMDAwMDAwMDAJLy8gazAKKy5ieXRlCTcxLDcyLDY1LDgzLDcyLDMyLDEw
MiwxMTEsMTE0LDMyLDY1LDgyLDc3LDExOCw1Niw0NCwzMiwxMDAsMTAxLDExNCwxMDUsMTE4LDEw
MSwxMDAsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDY1LDgyLDc3LDExOCw1MiwzMiwxMTgsMTAxLDEx
NCwxMTUsMTA1LDExMSwxMTAsMzIsOTgsMTIxLDMyLDYwLDk3LDExMiwxMTIsMTE0LDExMSw2NCwx
MTEsMTEyLDEwMSwxMTAsMTE1LDExNSwxMDgsNDYsMTExLDExNCwxMDMsNjIsMAorLmFsaWduCTIK
Ky5hbGlnbgkyCisjZW5kaWYKKyNlbmRpZiAgLy8gIU9QRU5TU0xfTk9fQVNNCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2doYXNodjgtYXJteDY0LlMgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51
eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL2doYXNodjgtYXJteDY0LlMKaW5kZXggYTYxMTMy
NDNmYmRiMmZmNGQ2NTY3ODUwNDMzNTdiNjViMmYxYTY3OS4uMTI2NzkzN2JiZjI4OGYwZTYzZDcz
NTYyZTg3MWIwMWEzNGZmMDA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vZmlw
c21vZHVsZS9naGFzaHY4LWFybXg2NC5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL2ZpcHNt
b2R1bGUvZ2hhc2h2OC1hcm14NjQuUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlz
IGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3Jp
bmdTU0wKIC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5l
ZChfX2hhc19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9f
aGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRp
emVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00K
ICNlbmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZp
bmVkKF9fYWFyY2g2NF9fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vZmlwc21v
ZHVsZS9zaGExLWFybXY4LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTEt
YXJtdjguUwppbmRleCA4YTE2ZmVhYjkzMWVjY2Y3OTE5MDkzZjIxMzc0M2YzMzYwZGJkMTBkLi5l
Y2I0ODg1OWU3MDEyZGY2NTM0YzZhOTZiZDJlNmZkMjdmYzBlN2M2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51
eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTEtYXJtdjguUworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJj
aDY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTEtYXJtdjguUwpAQCAtMSwxMSArMSwxMiBAQAogLy8g
VGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0
IGluIHRoZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgog
Ci0jaWYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUp
CisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZSht
ZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BF
TlNTTF9OT19BU00KICNlbmRpZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FT
TSkKICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQpAQCAtMjIsOSArMjMsMTIgQEAKIC50eXBlCXNo
YTFfYmxvY2tfZGF0YV9vcmRlciwlZnVuY3Rpb24KIC5hbGlnbgk2CiBzaGExX2Jsb2NrX2RhdGFf
b3JkZXI6CisjaWYgX19oYXNfZmVhdHVyZShod2FkZHJlc3Nfc2FuaXRpemVyKSAmJiBfX2NsYW5n
X21ham9yX18gPj0gMTAKKwlhZHJwCXgxNiw6cGdfaGkyMV9uYzpPUEVOU1NMX2FybWNhcF9QCisj
ZWxzZQogCWFkcnAJeDE2LE9QRU5TU0xfYXJtY2FwX1AKLQlhZGQJeDE2LHgxNiw6bG8xMjpPUEVO
U1NMX2FybWNhcF9QCi0JbGRyCXcxNixbeDE2XQorI2VuZGlmCisJbGRyCXcxNixbeDE2LDpsbzEy
Ok9QRU5TU0xfYXJtY2FwX1BdCiAJdHN0CXcxNiwjQVJNVjhfU0hBMQogCWIubmUJLkx2OF9lbnRy
eQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTI1Ni1h
cm12OC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9zaGEyNTYtYXJtdjguUwpp
bmRleCBjZjljNjViOGE5MDlhZTVhOGYzZGMzNmQwMjY3YmE4MjY2MGQyMDZhLi5iMzE5Njg4MmU1
ZmZlZWJlYjgxNWVhNDAxNjFmMzU4MmFjYTYwODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0
L2NyeXB0by9maXBzbW9kdWxlL3NoYTI1Ni1hcm12OC5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5
cHRvL2ZpcHNtb2R1bGUvc2hhMjU2LWFybXY4LlMKQEAgLTEsMTEgKzEsMTIgQEAKIC8vIFRoaXMg
ZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0
aGUgQm9yaW5nU1NMCiAvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KIAotI2lm
IGRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2Rl
ZmluZSBfX2hhc19mZWF0dXJlKHgpIDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5
X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5lIE9QRU5TU0xf
Tk9fQVNNCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAj
aWYgZGVmaW5lZChfX2FhcmNoNjRfXykKQEAgLTY0LDkgKzY1LDEyIEBACiAuYWxpZ24JNgogc2hh
MjU2X2Jsb2NrX2RhdGFfb3JkZXI6CiAjaWZuZGVmCV9fS0VSTkVMX18KKyNpZiBfX2hhc19mZWF0
dXJlKGh3YWRkcmVzc19zYW5pdGl6ZXIpICYmIF9fY2xhbmdfbWFqb3JfXyA+PSAxMAorCWFkcnAJ
eDE2LDpwZ19oaTIxX25jOk9QRU5TU0xfYXJtY2FwX1AKKyNlbHNlCiAJYWRycAl4MTYsT1BFTlNT
TF9hcm1jYXBfUAotCWFkZAl4MTYseDE2LDpsbzEyOk9QRU5TU0xfYXJtY2FwX1AKLQlsZHIJdzE2
LFt4MTZdCisjZW5kaWYKKwlsZHIJdzE2LFt4MTYsOmxvMTI6T1BFTlNTTF9hcm1jYXBfUF0KIAl0
c3QJdzE2LCNBUk1WOF9TSEEyNTYKIAliLm5lCS5MdjhfZW50cnkKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvbGludXgtYWFyY2g2NC9jcnlwdG8vZmlwc21vZHVsZS9zaGE1MTItYXJtdjguUyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4
LWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLWFybXY4LlMKaW5kZXggZDFlMGFhNGQ2
YTVhZTExY2I2YzFiYTgzNmMwMTRhZDE2ZDEwYmUzOS4uMzdlMDBkNzlmNGIyOTYyOGM5ZWRmNTcy
NWVjY2I0OGYzZWYzMzEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vZmlwc21v
ZHVsZS9zaGE1MTItYXJtdjguUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxl
L3NoYTUxMi1hcm12OC5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUgaXMgZ2VuZXJh
dGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NTTAog
Ly8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZpbmVkKF9faGFz
X2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19oYXNfZmVh
dHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpICYm
ICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FTTQogI2VuZGlm
Ci0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRlZmluZWQoX19h
YXJjaDY0X18pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3Zw
YWVzLWFybXY4LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLWFybXY4
LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2EzNDIwOWQxNTA0OTg1ZGM4MmIxYmVkOTAwZGVkNGY4ZGIzZTZkNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMt
YXJtdjguUwpAQCAtMCwwICsxLDEyMTUgQEAKKy8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJv
bSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NMCisvLyBzb3Vy
Y2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KKworI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1
cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCisjaWYgX19oYXNfZmVhdHVy
ZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUg
T1BFTlNTTF9OT19BU00KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCisj
aWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyNpZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgpCisj
aW5jbHVkZSA8Ym9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX2FzbS5oPgorI2VuZGlmCisuc2VjdGlv
bgkucm9kYXRhCisKKy50eXBlCV92cGFlc19jb25zdHMsJW9iamVjdAorLmFsaWduCTcJLy8gdG90
YWxseSBzdHJhdGVnaWMgYWxpZ25tZW50CitfdnBhZXNfY29uc3RzOgorLkxrX21jX2ZvcndhcmQ6
CS8vCW1jX2ZvcndhcmQKKy5xdWFkCTB4MDQwNzA2MDUwMDAzMDIwMSwgMHgwQzBGMEUwRDA4MEIw
QTA5CisucXVhZAkweDA4MEIwQTA5MDQwNzA2MDUsIDB4MDAwMzAyMDEwQzBGMEUwRAorLnF1YWQJ
MHgwQzBGMEUwRDA4MEIwQTA5LCAweDA0MDcwNjA1MDAwMzAyMDEKKy5xdWFkCTB4MDAwMzAyMDEw
QzBGMEUwRCwgMHgwODBCMEEwOTA0MDcwNjA1CisuTGtfbWNfYmFja3dhcmQ6CS8vCW1jX2JhY2t3
YXJkCisucXVhZAkweDA2MDUwNDA3MDIwMTAwMDMsIDB4MEUwRDBDMEYwQTA5MDgwQgorLnF1YWQJ
MHgwMjAxMDAwMzBFMEQwQzBGLCAweDBBMDkwODBCMDYwNTA0MDcKKy5xdWFkCTB4MEUwRDBDMEYw
QTA5MDgwQiwgMHgwNjA1MDQwNzAyMDEwMDAzCisucXVhZAkweDBBMDkwODBCMDYwNTA0MDcsIDB4
MDIwMTAwMDMwRTBEMEMwRgorLkxrX3NyOgkvLwlzcgorLnF1YWQJMHgwNzA2MDUwNDAzMDIwMTAw
LCAweDBGMEUwRDBDMEIwQTA5MDgKKy5xdWFkCTB4MDMwRTA5MDQwRjBBMDUwMCwgMHgwQjA2MDEw
QzA3MDIwRDA4CisucXVhZAkweDBGMDYwRDA0MEIwMjA5MDAsIDB4MDcwRTA1MEMwMzBBMDEwOAor
LnF1YWQJMHgwQjBFMDEwNDA3MEEwRDAwLCAweDAzMDYwOTBDMEYwMjA1MDgKKworLy8KKy8vICJI
b3QiIGNvbnN0YW50cworLy8KKy5Ma19pbnY6CS8vCWludiwgaW52YQorLnF1YWQJMHgwRTA1MDYw
RjBEMDgwMTgwLCAweDA0MDcwMzA5MEEwQjBDMDIKKy5xdWFkCTB4MDEwNDBBMDYwRjBCMDc4MCwg
MHgwMzBEMEUwQzAyMDUwODA5CisuTGtfaXB0OgkvLwlpbnB1dCB0cmFuc2Zvcm0gKGxvLCBoaSkK
Ky5xdWFkCTB4QzJCMkU4OTg1QTJBNzAwMCwgMHhDQUJBRTA5MDUyMjI3ODA4CisucXVhZAkweDRD
MDEzMDdEMzE3QzREMDAsIDB4Q0Q4MEIxRkNCMEZEQ0M4MQorLkxrX3NibzoJLy8Jc2JvdSwgc2Jv
dAorLnF1YWQJMHhEMEQyNkQxNzZGQkRDNzAwLCAweDE1QUFCRjdBQzUwMkE4NzgKKy5xdWFkCTB4
Q0ZFNDc0QTU1RkJCNkEwMCwgMHg4RTFFOTBEMTQxMkIzNUZBCisuTGtfc2IxOgkvLwlzYjF1LCBz
YjF0CisucXVhZAkweDM2MThENDE1RkFFMjIzMDAsIDB4M0JGN0NDQzEwRDJFRDlFRgorLnF1YWQJ
MHhCMTlCRTE4RkNCNTAzRTAwLCAweEE1REY3QTZFMTQyQUY1NDQKKy5Ma19zYjI6CS8vCXNiMnUs
IHNiMnQKKy5xdWFkCTB4NjlFQjg4NDAwQUUxMjkwMCwgMHhDMkExNjNDOEFCODIyMzRBCisucXVh
ZAkweEUyN0E5M0M2MEI3MTI0MDAsIDB4NUVCN0U5NTVCQzk4MkZDRAorCisvLworLy8gIERlY3J5
cHRpb24gc3R1ZmYKKy8vCisuTGtfZGlwdDoJLy8JZGVjcnlwdGlvbiBpbnB1dCB0cmFuc2Zvcm0K
Ky5xdWFkCTB4MEY1MDVCMDQwQjU0NUYwMCwgMHgxNTRBNDExRTExNEU0NTFBCisucXVhZAkweDg2
RTM4M0U2NjAwNTY1MDAsIDB4MTI3NzE3NzJGNDkxRjE5NAorLkxrX2RzYm86CS8vCWRlY3J5cHRp
b24gc2JveCBmaW5hbCBvdXRwdXQKKy5xdWFkCTB4MTM4N0VBNTM3RUY5NDAwMCwgMHhDN0FBNkRC
OUQ0OTQzRTJECisucXVhZAkweDEyRDc1NjBGOTM0NDFEMDAsIDB4Q0E0QjgxNTlEOEM1OEU5Qwor
LkxrX2RzYjk6CS8vCWRlY3J5cHRpb24gc2JveCBvdXRwdXQgKjkqdSwgKjkqdAorLnF1YWQJMHg4
NTFDMDM1MzlBODZENjAwLCAweENBRDUxRjUwNEY5OTRDQzkKKy5xdWFkCTB4QzAzQjE3ODlFQ0Q3
NDkwMCwgMHg3MjVFMkM5RUIyRkJBNTY1CisuTGtfZHNiZDoJLy8JZGVjcnlwdGlvbiBzYm94IG91
dHB1dCAqRCp1LCAqRCp0CisucXVhZAkweDdENTdDQ0RGRTZCMUEyMDAsIDB4RjU2RTlCMTM4ODJB
NDQzOQorLnF1YWQJMHgzQ0UyRkFGNzI0QzZDQjAwLCAweDI5MzExODBEMTVERUVGRDMKKy5Ma19k
c2JiOgkvLwlkZWNyeXB0aW9uIHNib3ggb3V0cHV0ICpCKnUsICpCKnQKKy5xdWFkCTB4RDAyMjY0
OTI5NkI0NDIwMCwgMHg2MDI2NDZGNkIwRjJENDA0CisucXVhZAkweEMxOTQ5OEE2Q0Q1OTY3MDAs
IDB4RjNGRjBDM0UzMjU1QUE2QgorLkxrX2RzYmU6CS8vCWRlY3J5cHRpb24gc2JveCBvdXRwdXQg
KkUqdSwgKkUqdAorLnF1YWQJMHg0NkYyOTI5NjI2RDREMDAwLCAweDIyNDI2MDA0NjRCNEY2QjAK
Ky5xdWFkCTB4MEM1NUE2Q0RGRkFBQzEwMCwgMHg5NDY3RjM2Qjk4NTkzRTMyCisKKy8vCisvLyAg
S2V5IHNjaGVkdWxlIGNvbnN0YW50cworLy8KKy5Ma19ka3NkOgkvLwlkZWNyeXB0aW9uIGtleSBz
Y2hlZHVsZTogaW52c2tldyB4KkQKKy5xdWFkCTB4RkVCOTFBNURBM0U0NDcwMCwgMHgwNzQwRTNB
NDVBMURCRUY5CisucXVhZAkweDQxQzI3N0Y0QjUzNjgzMDAsIDB4NUZEQzY5RUFBQjI4OUQxRQor
LkxrX2Rrc2I6CS8vCWRlY3J5cHRpb24ga2V5IHNjaGVkdWxlOiBpbnZza2V3IHgqQgorLnF1YWQJ
MHg5QTRGQ0ExRjg1NTBENTAwLCAweDAzRDY1Mzg2MUNDOTRDOTkKKy5xdWFkCTB4MTE1QkVEQTdC
NkZDNEEwMCwgMHhEOTkzMjU2RjdFMzQ4MkM4CisuTGtfZGtzZToJLy8JZGVjcnlwdGlvbiBrZXkg
c2NoZWR1bGU6IGludnNrZXcgeCpFICsgMHg2MworLnF1YWQJMHhENTAzMUNDQTFGQzlENjAwLCAw
eDUzODU5QTRDOTk0RjUwODYKKy5xdWFkCTB4QTIzMTk2MDU0RkRDN0JFOCwgMHhDRDVFRjk2QTIw
QjMxNDg3CisuTGtfZGtzOToJLy8JZGVjcnlwdGlvbiBrZXkgc2NoZWR1bGU6IGludnNrZXcgeCo5
CisucXVhZAkweEI2MTE2RkM4N0VEOUE3MDAsIDB4NEFFRDkzMzQ4MjI1NUJGQworLnF1YWQJMHg0
NTc2NTE2MjI3MTQzMzAwLCAweDhCQjg5RkFDRTlEQUZEQ0UKKworLkxrX3Jjb246CS8vCXJjb24K
Ky5xdWFkCTB4MUY4MzkxQjlBRjlERUVCNiwgMHg3MDJBOTgwODREN0M3RDgxCisKKy5Ma19vcHQ6
CS8vCW91dHB1dCB0cmFuc2Zvcm0KKy5xdWFkCTB4RkY5RjQ5MjlENkI2NjAwMCwgMHhGNzk3NDEy
MURFQkU2ODA4CisucXVhZAkweDAxRURCRDUxNTBCQ0VDMDAsIDB4RTEwRDVEQjFCMDVDMENFMAor
LkxrX2Rlc2tldzoJLy8JZGVza2V3IHRhYmxlczogaW52ZXJ0cyB0aGUgc2JveCdzICJza2V3Igor
LnF1YWQJMHgwN0U0QTM0MDQ3QTRFMzAwLCAweDFERkVCOTVBNURCRUY5MUEKKy5xdWFkCTB4NUYz
NkI1REM4M0VBNjkwMCwgMHgyODQxQzJBQkY0OUQxRTc3CisKKy5ieXRlCTg2LDEwMSw5OSwxMTYs
MTExLDExNCwzMiw4MCwxMDEsMTE0LDEwOSwxMTcsMTE2LDk3LDExNiwxMDUsMTExLDExMCwzMiw2
NSw2OSw4MywzMiwxMDIsMTExLDExNCwzMiw2NSw4Miw3NywxMTgsNTYsNDQsMzIsNzcsMTA1LDEw
NywxMDEsMzIsNzIsOTcsMTA5LDk4LDExNywxMTQsMTAzLDMyLDQwLDgzLDExNiw5NywxMTAsMTAy
LDExMSwxMTQsMTAwLDMyLDg1LDExMCwxMDUsMTE4LDEwMSwxMTQsMTE1LDEwNSwxMTYsMTIxLDQx
LDAKKy5hbGlnbgkyCisuc2l6ZQlfdnBhZXNfY29uc3RzLC4tX3ZwYWVzX2NvbnN0cworLmFsaWdu
CTYKKworLnRleHQKKyMjCisjIyAgX2Flc19wcmVoZWF0CisjIworIyMgIEZpbGxzIHJlZ2lzdGVy
ICVyMTAgLT4gLmFlc19jb25zdHMgKHNvIHlvdSBjYW4gLWZQSUMpCisjIyAgYW5kICV4bW05LSV4
bW0xNSBhcyBzcGVjaWZpZWQgYmVsb3cuCisjIworLnR5cGUJX3ZwYWVzX2VuY3J5cHRfcHJlaGVh
dCwlZnVuY3Rpb24KKy5hbGlnbgk0CitfdnBhZXNfZW5jcnlwdF9wcmVoZWF0OgorCWFkcnAJeDEw
LCAuTGtfaW52CisJYWRkCXgxMCwgeDEwLCA6bG8xMjouTGtfaW52CisJbW92aQl2MTcuMTZiLCAj
MHgwZgorCWxkMQl7djE4LjJkLHYxOS4yZH0sIFt4MTBdLCMzMgkvLyAuTGtfaW52CisJbGQxCXt2
MjAuMmQsdjIxLjJkLHYyMi4yZCx2MjMuMmR9LCBbeDEwXSwjNjQJLy8gLkxrX2lwdCwgLkxrX3Ni
bworCWxkMQl7djI0LjJkLHYyNS4yZCx2MjYuMmQsdjI3LjJkfSwgW3gxMF0JCS8vIC5Ma19zYjEs
IC5Ma19zYjIKKwlyZXQKKy5zaXplCV92cGFlc19lbmNyeXB0X3ByZWhlYXQsLi1fdnBhZXNfZW5j
cnlwdF9wcmVoZWF0CisKKyMjCisjIyAgX2Flc19lbmNyeXB0X2NvcmUKKyMjCisjIyAgQUVTLWVu
Y3J5cHQgJXhtbTAuCisjIworIyMgIElucHV0czoKKyMjICAgICAleG1tMCA9IGlucHV0CisjIyAg
ICAgJXhtbTktJXhtbTE1IGFzIGluIF92cGFlc19wcmVoZWF0CisjIyAgICAoJXJkeCkgPSBzY2hl
ZHVsZWQga2V5cworIyMKKyMjICBPdXRwdXQgaW4gJXhtbTAKKyMjICBDbG9iYmVycyAgJXhtbTEt
JXhtbTUsICVyOSwgJXIxMCwgJXIxMSwgJXJheAorIyMgIFByZXNlcnZlcyAleG1tNiAtICV4bW04
IHNvIHlvdSBnZXQgc29tZSBsb2NhbCB2ZWN0b3JzCisjIworIyMKKy50eXBlCV92cGFlc19lbmNy
eXB0X2NvcmUsJWZ1bmN0aW9uCisuYWxpZ24JNAorX3ZwYWVzX2VuY3J5cHRfY29yZToKKwltb3YJ
eDksIHgyCisJbGRyCXc4LCBbeDIsIzI0MF0JCQkvLyBwdWxsIHJvdW5kcworCWFkcnAJeDExLCAu
TGtfbWNfZm9yd2FyZCsxNgorCWFkZAl4MTEsIHgxMSwgOmxvMTI6LkxrX21jX2ZvcndhcmQrMTYK
KwkJCQkJCS8vIHZtb3ZkcWEJLkxrX2lwdCglcmlwKSwJJXhtbTIJIyBpcHRsbworCWxkMQl7djE2
LjJkfSwgW3g5XSwgIzE2CQkvLyB2bW92ZHF1CSglcjkpLAkleG1tNQkJIyByb3VuZDAga2V5CisJ
YW5kCXYxLjE2YiwgdjcuMTZiLCB2MTcuMTZiCQkvLyB2cGFuZAkleG1tOSwJJXhtbTAsCSV4bW0x
CisJdXNocgl2MC4xNmIsIHY3LjE2YiwgIzQJCS8vIHZwc3JsYgkkNCwJJXhtbTAsCSV4bW0wCisJ
dGJsCXYxLjE2Yiwge3YyMC4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTIsCSV4
bW0xCisJCQkJCQkvLyB2bW92ZHFhCS5Ma19pcHQrMTYoJXJpcCksICV4bW0zCSMgaXB0aGkKKwl0
YmwJdjIuMTZiLCB7djIxLjE2Yn0sIHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLAkleG1tMywJJXht
bTIKKwllb3IJdjAuMTZiLCB2MS4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCSV4bW01LAkleG1tMSwJ
JXhtbTAKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYyLjE2YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW0w
LAkleG1tMAorCWIJLkxlbmNfZW50cnkKKworLmFsaWduCTQKKy5MZW5jX2xvb3A6CisJLy8gbWlk
ZGxlIG9mIG1pZGRsZSByb3VuZAorCWFkZAl4MTAsIHgxMSwgIzB4NDAKKwl0YmwJdjQuMTZiLCB7
djI1LjE2Yn0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTEzLAkleG1tNAkjIDQgPSBz
YjF1CisJbGQxCXt2MS4yZH0sIFt4MTFdLCAjMTYJCS8vIHZtb3ZkcWEJLTB4NDAoJXIxMSwlcjEw
KSwgJXhtbTEJIyAuTGtfbWNfZm9yd2FyZFtdCisJdGJsCXYwLjE2Yiwge3YyNC4xNmJ9LCB2My4x
NmIJCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xMiwJJXhtbTAJIyAwID0gc2IxdAorCWVvcgl2NC4x
NmIsIHY0LjE2YiwgdjE2LjE2YgkJLy8gdnB4b3IJJXhtbTUsCSV4bW00LAkleG1tNAkjIDQgPSBz
YjF1ICsgaworCXRibAl2NS4xNmIsCXt2MjcuMTZifSwgdjIuMTZiCQkvLyB2cHNodWZiCSV4bW0y
LAkleG1tMTUsCSV4bW01CSMgNCA9IHNiMnUKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHY0LjE2YgkJ
Ly8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDAgPSBBCisJdGJsCXYyLjE2Yiwge3YyNi4x
NmJ9LCB2My4xNmIJCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xNCwJJXhtbTIJIyAyID0gc2IydAor
CWxkMQl7djQuMmR9LCBbeDEwXQkJCS8vIHZtb3ZkcWEJKCVyMTEsJXIxMCksICV4bW00CSMgLkxr
X21jX2JhY2t3YXJkW10KKwl0YmwJdjMuMTZiLCB7djAuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJ
JXhtbTEsCSV4bW0wLAkleG1tMwkjIDAgPSBCCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2NS4xNmIJ
CS8vIHZweG9yCSV4bW01LAkleG1tMiwJJXhtbTIJIyAyID0gMkEKKwl0YmwJdjAuMTZiLCB7djAu
MTZifSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDMgPSBECisJZW9y
CXYzLjE2YiwgdjMuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMJIyAw
ID0gMkErQgorCXRibAl2NC4xNmIsIHt2My4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJ
JXhtbTMsCSV4bW00CSMgMCA9IDJCK0MKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYzLjE2YgkJLy8g
dnB4b3IJJXhtbTMsCSV4bW0wLAkleG1tMAkjIDMgPSAyQStCK0QKKwlhbmQJeDExLCB4MTEsICN+
KDE8PDYpCQkvLyBhbmQJCSQweDMwLAklcjExCQkjIC4uLiBtb2QgNAorCWVvcgl2MC4xNmIsIHYw
LjE2YiwgdjQuMTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTAsICV4bW0wCSMgMCA9IDJBKzNCK0Mr
RAorCXN1Ygl3OCwgdzgsICMxCQkJLy8gbnItLQorCisuTGVuY19lbnRyeToKKwkvLyB0b3Agb2Yg
cm91bmQKKwlhbmQJdjEuMTZiLCB2MC4xNmIsIHYxNy4xNmIJCS8vIHZwYW5kCSV4bW0wLAkleG1t
OSwJJXhtbTEgICAjIDAgPSBrCisJdXNocgl2MC4xNmIsIHYwLjE2YiwgIzQJCS8vIHZwc3JsYgkk
NCwJJXhtbTAsCSV4bW0wCSMgMSA9IGkKKwl0YmwJdjUuMTZiLCB7djE5LjE2Yn0sIHYxLjE2Ygkv
LyB2cHNodWZiCSV4bW0xLAkleG1tMTEsCSV4bW01CSMgMiA9IGEvaworCWVvcgl2MS4xNmIsIHYx
LjE2YiwgdjAuMTZiCQkvLyB2cHhvcgkleG1tMCwJJXhtbTEsCSV4bW0xCSMgMCA9IGoKKwl0YmwJ
djMuMTZiLCB7djE4LjE2Yn0sIHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLCAJJXhtbTEwLAkleG1t
MyAgCSMgMyA9IDEvaQorCXRibAl2NC4xNmIsIHt2MTguMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJ
JXhtbTEsIAkleG1tMTAsCSV4bW00ICAJIyA0ID0gMS9qCisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2
NS4xNmIJCS8vIHZweG9yCSV4bW01LAkleG1tMywJJXhtbTMJIyAzID0gaWFrID0gMS9pICsgYS9r
CisJZW9yCXY0LjE2YiwgdjQuMTZiLCB2NS4xNmIJCS8vIHZweG9yCSV4bW01LAkleG1tNCwJJXht
bTQgIAkjIDQgPSBqYWsgPSAxL2ogKyBhL2sKKwl0YmwJdjIuMTZiLCB7djE4LjE2Yn0sIHYzLjE2
YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTAsCSV4bW0yICAJIyAyID0gMS9pYWsKKwl0YmwJdjMu
MTZiLCB7djE4LjE2Yn0sIHY0LjE2YgkvLyB2cHNodWZiCSV4bW00LAkleG1tMTAsCSV4bW0zCSMg
MyA9IDEvamFrCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2MS4xNmIJCS8vIHZweG9yCSV4bW0xLAkl
eG1tMiwJJXhtbTIgIAkjIDIgPSBpbworCWVvcgl2My4xNmIsIHYzLjE2YiwgdjAuMTZiCQkvLyB2
cHhvcgkleG1tMCwJJXhtbTMsCSV4bW0zCSMgMyA9IGpvCisJbGQxCXt2MTYuMmR9LCBbeDldLCMx
NgkJLy8gdm1vdmRxdQkoJXI5KSwJJXhtbTUKKwljYm56CXc4LCAuTGVuY19sb29wCisKKwkvLyBt
aWRkbGUgb2YgbGFzdCByb3VuZAorCWFkZAl4MTAsIHgxMSwgIzB4ODAKKwkJCQkJCS8vIHZtb3Zk
cWEJLTB4NjAoJXIxMCksICV4bW00CSMgMyA6IHNib3UJLkxrX3NibworCQkJCQkJLy8gdm1vdmRx
YQktMHg1MCglcjEwKSwgJXhtbTAJIyAwIDogc2JvdAkuTGtfc2JvKzE2CisJdGJsCXY0LjE2Yiwg
e3YyMi4xNmJ9LCB2Mi4xNmIJCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkjIDQgPSBz
Ym91CisJbGQxCXt2MS4yZH0sIFt4MTBdCQkJLy8gdm1vdmRxYQkweDQwKCVyMTEsJXIxMCksICV4
bW0xCSMgLkxrX3NyW10KKwl0YmwJdjAuMTZiLCB7djIzLjE2Yn0sIHYzLjE2YgkJLy8gdnBzaHVm
YgkleG1tMywJJXhtbTAsCSV4bW0wCSMgMCA9IHNiMXQKKwllb3IJdjQuMTZiLCB2NC4xNmIsIHYx
Ni4xNmIJCS8vIHZweG9yCSV4bW01LAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwllb3IJ
djAuMTZiLCB2MC4xNmIsIHY0LjE2YgkJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDAg
PSBBCisJdGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1t
MCwJJXhtbTAKKwlyZXQKKy5zaXplCV92cGFlc19lbmNyeXB0X2NvcmUsLi1fdnBhZXNfZW5jcnlw
dF9jb3JlCisKKy5nbG9ibAl2cGFlc19lbmNyeXB0CisuaGlkZGVuCXZwYWVzX2VuY3J5cHQKKy50
eXBlCXZwYWVzX2VuY3J5cHQsJWZ1bmN0aW9uCisuYWxpZ24JNAordnBhZXNfZW5jcnlwdDoKKwlz
dHAJeDI5LHgzMCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCisJbGQxCXt2Ny4xNmJ9LCBb
eDBdCisJYmwJX3ZwYWVzX2VuY3J5cHRfcHJlaGVhdAorCWJsCV92cGFlc19lbmNyeXB0X2NvcmUK
KwlzdDEJe3YwLjE2Yn0sIFt4MV0KKworCWxkcAl4MjkseDMwLFtzcF0sIzE2CisJcmV0Cisuc2l6
ZQl2cGFlc19lbmNyeXB0LC4tdnBhZXNfZW5jcnlwdAorCisudHlwZQlfdnBhZXNfZW5jcnlwdF8y
eCwlZnVuY3Rpb24KKy5hbGlnbgk0CitfdnBhZXNfZW5jcnlwdF8yeDoKKwltb3YJeDksIHgyCisJ
bGRyCXc4LCBbeDIsIzI0MF0JCQkvLyBwdWxsIHJvdW5kcworCWFkcnAJeDExLCAuTGtfbWNfZm9y
d2FyZCsxNgorCWFkZAl4MTEsIHgxMSwgOmxvMTI6LkxrX21jX2ZvcndhcmQrMTYKKwkJCQkJCS8v
IHZtb3ZkcWEJLkxrX2lwdCglcmlwKSwJJXhtbTIJIyBpcHRsbworCWxkMQl7djE2LjJkfSwgW3g5
XSwgIzE2CQkvLyB2bW92ZHF1CSglcjkpLAkleG1tNQkJIyByb3VuZDAga2V5CisJYW5kCXYxLjE2
YiwgIHYxNC4xNmIsICB2MTcuMTZiCS8vIHZwYW5kCSV4bW05LAkleG1tMCwJJXhtbTEKKwl1c2hy
CXYwLjE2YiwgIHYxNC4xNmIsICAjNAkJLy8gdnBzcmxiCSQ0LAkleG1tMCwJJXhtbTAKKwlhbmQJ
djkuMTZiLCAgdjE1LjE2YiwgIHYxNy4xNmIKKwl1c2hyCXY4LjE2YiwgIHYxNS4xNmIsICAjNAor
CXRibAl2MS4xNmIsICB7djIwLjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMiwJ
JXhtbTEKKwl0YmwJdjkuMTZiLCAge3YyMC4xNmJ9LCB2OS4xNmIKKwkJCQkJCS8vIHZtb3ZkcWEJ
LkxrX2lwdCsxNiglcmlwKSwgJXhtbTMJIyBpcHRoaQorCXRibAl2Mi4xNmIsICB7djIxLjE2Yn0s
IHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLAkleG1tMywJJXhtbTIKKwl0YmwJdjEwLjE2Yiwge3Yy
MS4xNmJ9LCB2OC4xNmIKKwllb3IJdjAuMTZiLCAgdjEuMTZiLCAgIHYxNi4xNmIJLy8gdnB4b3IJ
JXhtbTUsCSV4bW0xLAkleG1tMAorCWVvcgl2OC4xNmIsICB2OS4xNmIsICAgdjE2LjE2YgorCWVv
cgl2MC4xNmIsICB2MC4xNmIsICAgdjIuMTZiCS8vIHZweG9yCSV4bW0yLAkleG1tMCwJJXhtbTAK
Kwllb3IJdjguMTZiLCAgdjguMTZiLCAgIHYxMC4xNmIKKwliCS5MZW5jXzJ4X2VudHJ5CisKKy5h
bGlnbgk0CisuTGVuY18yeF9sb29wOgorCS8vIG1pZGRsZSBvZiBtaWRkbGUgcm91bmQKKwlhZGQJ
eDEwLCB4MTEsICMweDQwCisJdGJsCXY0LjE2YiwgIHt2MjUuMTZifSwgdjIuMTZiCS8vIHZwc2h1
ZmIJJXhtbTIsCSV4bW0xMywJJXhtbTQJIyA0ID0gc2IxdQorCXRibAl2MTIuMTZiLCB7djI1LjE2
Yn0sIHYxMC4xNmIKKwlsZDEJe3YxLjJkfSwgW3gxMV0sICMxNgkJLy8gdm1vdmRxYQktMHg0MCgl
cjExLCVyMTApLCAleG1tMQkjIC5Ma19tY19mb3J3YXJkW10KKwl0YmwJdjAuMTZiLCAge3YyNC4x
NmJ9LCB2My4xNmIJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEyLAkleG1tMAkjIDAgPSBzYjF0CisJ
dGJsCXY4LjE2YiwgIHt2MjQuMTZifSwgdjExLjE2YgorCWVvcgl2NC4xNmIsICB2NC4xNmIsICB2
MTYuMTZiCS8vIHZweG9yCSV4bW01LAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwllb3IJ
djEyLjE2YiwgdjEyLjE2YiwgdjE2LjE2YgorCXRibAl2NS4xNmIsCSB7djI3LjE2Yn0sIHYyLjE2
YgkvLyB2cHNodWZiCSV4bW0yLAkleG1tMTUsCSV4bW01CSMgNCA9IHNiMnUKKwl0YmwJdjEzLjE2
Yiwge3YyNy4xNmJ9LCB2MTAuMTZiCisJZW9yCXYwLjE2YiwgIHYwLjE2YiwgIHY0LjE2YgkvLyB2
cHhvcgkleG1tNCwJJXhtbTAsCSV4bW0wCSMgMCA9IEEKKwllb3IJdjguMTZiLCAgdjguMTZiLCAg
djEyLjE2YgorCXRibAl2Mi4xNmIsICB7djI2LjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0z
LAkleG1tMTQsCSV4bW0yCSMgMiA9IHNiMnQKKwl0YmwJdjEwLjE2Yiwge3YyNi4xNmJ9LCB2MTEu
MTZiCisJbGQxCXt2NC4yZH0sIFt4MTBdCQkJLy8gdm1vdmRxYQkoJXIxMSwlcjEwKSwgJXhtbTQJ
IyAuTGtfbWNfYmFja3dhcmRbXQorCXRibAl2My4xNmIsICB7djAuMTZifSwgdjEuMTZiCS8vIHZw
c2h1ZmIJJXhtbTEsCSV4bW0wLAkleG1tMwkjIDAgPSBCCisJdGJsCXYxMS4xNmIsIHt2OC4xNmJ9
LCB2MS4xNmIKKwllb3IJdjIuMTZiLCAgdjIuMTZiLCAgdjUuMTZiCS8vIHZweG9yCSV4bW01LAkl
eG1tMiwJJXhtbTIJIyAyID0gMkEKKwllb3IJdjEwLjE2YiwgdjEwLjE2YiwgdjEzLjE2YgorCXRi
bAl2MC4xNmIsICB7djAuMTZifSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0wLAkleG1t
MAkjIDMgPSBECisJdGJsCXY4LjE2YiwgIHt2OC4xNmJ9LCB2NC4xNmIKKwllb3IJdjMuMTZiLCAg
djMuMTZiLCAgdjIuMTZiCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMJIyAwID0gMkErQgor
CWVvcgl2MTEuMTZiLCB2MTEuMTZiLCB2MTAuMTZiCisJdGJsCXY0LjE2YiwgIHt2My4xNmJ9LCB2
MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW00CSMgMCA9IDJCK0MKKwl0YmwJdjEy
LjE2Yiwge3YxMS4xNmJ9LHYxLjE2YgorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2My4xNmIJLy8g
dnB4b3IJJXhtbTMsCSV4bW0wLAkleG1tMAkjIDMgPSAyQStCK0QKKwllb3IJdjguMTZiLCAgdjgu
MTZiLCAgdjExLjE2YgorCWFuZAl4MTEsIHgxMSwgI34oMTw8NikJCS8vIGFuZAkJJDB4MzAsCSVy
MTEJCSMgLi4uIG1vZCA0CisJZW9yCXYwLjE2YiwgIHYwLjE2YiwgIHY0LjE2YgkvLyB2cHhvcgkl
eG1tNCwJJXhtbTAsICV4bW0wCSMgMCA9IDJBKzNCK0MrRAorCWVvcgl2OC4xNmIsICB2OC4xNmIs
ICB2MTIuMTZiCisJc3ViCXc4LCB3OCwgIzEJCQkvLyBuci0tCisKKy5MZW5jXzJ4X2VudHJ5Ogor
CS8vIHRvcCBvZiByb3VuZAorCWFuZAl2MS4xNmIsICB2MC4xNmIsIHYxNy4xNmIJLy8gdnBhbmQJ
JXhtbTAsCSV4bW05LAkleG1tMSAgICMgMCA9IGsKKwl1c2hyCXYwLjE2YiwgIHYwLjE2YiwgIzQJ
CS8vIHZwc3JsYgkkNCwJJXhtbTAsCSV4bW0wCSMgMSA9IGkKKwlhbmQJdjkuMTZiLCAgdjguMTZi
LCB2MTcuMTZiCisJdXNocgl2OC4xNmIsICB2OC4xNmIsICM0CisJdGJsCXY1LjE2YiwgIHt2MTku
MTZifSx2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTExLAkleG1tNQkjIDIgPSBhL2sKKwl0
YmwJdjEzLjE2Yiwge3YxOS4xNmJ9LHY5LjE2YgorCWVvcgl2MS4xNmIsICB2MS4xNmIsICB2MC4x
NmIJLy8gdnB4b3IJJXhtbTAsCSV4bW0xLAkleG1tMQkjIDAgPSBqCisJZW9yCXY5LjE2YiwgIHY5
LjE2YiwgIHY4LjE2YgorCXRibAl2My4xNmIsICB7djE4LjE2Yn0sdjAuMTZiCS8vIHZwc2h1ZmIJ
JXhtbTAsIAkleG1tMTAsCSV4bW0zICAJIyAzID0gMS9pCisJdGJsCXYxMS4xNmIsIHt2MTguMTZi
fSx2OC4xNmIKKwl0YmwJdjQuMTZiLCAge3YxOC4xNmJ9LHYxLjE2YgkvLyB2cHNodWZiCSV4bW0x
LCAJJXhtbTEwLAkleG1tNCAgCSMgNCA9IDEvagorCXRibAl2MTIuMTZiLCB7djE4LjE2Yn0sdjku
MTZiCisJZW9yCXYzLjE2YiwgIHYzLjE2YiwgIHY1LjE2YgkvLyB2cHhvcgkleG1tNSwJJXhtbTMs
CSV4bW0zCSMgMyA9IGlhayA9IDEvaSArIGEvaworCWVvcgl2MTEuMTZiLCB2MTEuMTZiLCB2MTMu
MTZiCisJZW9yCXY0LjE2YiwgIHY0LjE2YiwgIHY1LjE2YgkvLyB2cHhvcgkleG1tNSwJJXhtbTQs
CSV4bW00ICAJIyA0ID0gamFrID0gMS9qICsgYS9rCisJZW9yCXYxMi4xNmIsIHYxMi4xNmIsIHYx
My4xNmIKKwl0YmwJdjIuMTZiLCAge3YxOC4xNmJ9LHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkl
eG1tMTAsCSV4bW0yICAJIyAyID0gMS9pYWsKKwl0YmwJdjEwLjE2Yiwge3YxOC4xNmJ9LHYxMS4x
NmIKKwl0YmwJdjMuMTZiLCAge3YxOC4xNmJ9LHY0LjE2YgkvLyB2cHNodWZiCSV4bW00LAkleG1t
MTAsCSV4bW0zCSMgMyA9IDEvamFrCisJdGJsCXYxMS4xNmIsIHt2MTguMTZifSx2MTIuMTZiCisJ
ZW9yCXYyLjE2YiwgIHYyLjE2YiwgIHYxLjE2YgkvLyB2cHhvcgkleG1tMSwJJXhtbTIsCSV4bW0y
ICAJIyAyID0gaW8KKwllb3IJdjEwLjE2YiwgdjEwLjE2YiwgdjkuMTZiCisJZW9yCXYzLjE2Yiwg
IHYzLjE2YiwgIHYwLjE2YgkvLyB2cHhvcgkleG1tMCwJJXhtbTMsCSV4bW0zCSMgMyA9IGpvCisJ
ZW9yCXYxMS4xNmIsIHYxMS4xNmIsIHY4LjE2YgorCWxkMQl7djE2LjJkfSwgW3g5XSwjMTYJCS8v
IHZtb3ZkcXUJKCVyOSksCSV4bW01CisJY2Juegl3OCwgLkxlbmNfMnhfbG9vcAorCisJLy8gbWlk
ZGxlIG9mIGxhc3Qgcm91bmQKKwlhZGQJeDEwLCB4MTEsICMweDgwCisJCQkJCQkvLyB2bW92ZHFh
CS0weDYwKCVyMTApLCAleG1tNAkjIDMgOiBzYm91CS5Ma19zYm8KKwkJCQkJCS8vIHZtb3ZkcWEJ
LTB4NTAoJXIxMCksICV4bW0wCSMgMCA6IHNib3QJLkxrX3NibysxNgorCXRibAl2NC4xNmIsICB7
djIyLjE2Yn0sIHYyLjE2YgkvLyB2cHNodWZiCSV4bW0yLAkleG1tNCwJJXhtbTQJIyA0ID0gc2Jv
dQorCXRibAl2MTIuMTZiLCB7djIyLjE2Yn0sIHYxMC4xNmIKKwlsZDEJe3YxLjJkfSwgW3gxMF0J
CQkvLyB2bW92ZHFhCTB4NDAoJXIxMSwlcjEwKSwgJXhtbTEJIyAuTGtfc3JbXQorCXRibAl2MC4x
NmIsICB7djIzLjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMCwJJXhtbTAJIyAw
ID0gc2IxdAorCXRibAl2OC4xNmIsICB7djIzLjE2Yn0sIHYxMS4xNmIKKwllb3IJdjQuMTZiLCAg
djQuMTZiLCAgdjE2LjE2YgkvLyB2cHhvcgkleG1tNSwJJXhtbTQsCSV4bW00CSMgNCA9IHNiMXUg
KyBrCisJZW9yCXYxMi4xNmIsIHYxMi4xNmIsIHYxNi4xNmIKKwllb3IJdjAuMTZiLCAgdjAuMTZi
LCAgdjQuMTZiCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJIyAwID0gQQorCWVvcgl2OC4x
NmIsICB2OC4xNmIsICB2MTIuMTZiCisJdGJsCXYwLjE2YiwgIHt2MC4xNmJ9LHYxLjE2YgkvLyB2
cHNodWZiCSV4bW0xLAkleG1tMCwJJXhtbTAKKwl0YmwJdjEuMTZiLCAge3Y4LjE2Yn0sdjEuMTZi
CisJcmV0Cisuc2l6ZQlfdnBhZXNfZW5jcnlwdF8yeCwuLV92cGFlc19lbmNyeXB0XzJ4CisKKy50
eXBlCV92cGFlc19kZWNyeXB0X3ByZWhlYXQsJWZ1bmN0aW9uCisuYWxpZ24JNAorX3ZwYWVzX2Rl
Y3J5cHRfcHJlaGVhdDoKKwlhZHJwCXgxMCwgLkxrX2ludgorCWFkZAl4MTAsIHgxMCwgOmxvMTI6
LkxrX2ludgorCW1vdmkJdjE3LjE2YiwgIzB4MGYKKwlhZHJwCXgxMSwgLkxrX2RpcHQKKwlhZGQJ
eDExLCB4MTEsIDpsbzEyOi5Ma19kaXB0CisJbGQxCXt2MTguMmQsdjE5LjJkfSwgW3gxMF0sIzMy
CS8vIC5Ma19pbnYKKwlsZDEJe3YyMC4yZCx2MjEuMmQsdjIyLjJkLHYyMy4yZH0sIFt4MTFdLCM2
NAkvLyAuTGtfZGlwdCwgLkxrX2RzYm8KKwlsZDEJe3YyNC4yZCx2MjUuMmQsdjI2LjJkLHYyNy4y
ZH0sIFt4MTFdLCM2NAkvLyAuTGtfZHNiOSwgLkxrX2RzYmQKKwlsZDEJe3YyOC4yZCx2MjkuMmQs
djMwLjJkLHYzMS4yZH0sIFt4MTFdCQkvLyAuTGtfZHNiYiwgLkxrX2RzYmUKKwlyZXQKKy5zaXpl
CV92cGFlc19kZWNyeXB0X3ByZWhlYXQsLi1fdnBhZXNfZGVjcnlwdF9wcmVoZWF0CisKKyMjCisj
IyAgRGVjcnlwdGlvbiBjb3JlCisjIworIyMgIFNhbWUgQVBJIGFzIGVuY3J5cHRpb24gY29yZS4K
KyMjCisudHlwZQlfdnBhZXNfZGVjcnlwdF9jb3JlLCVmdW5jdGlvbgorLmFsaWduCTQKK192cGFl
c19kZWNyeXB0X2NvcmU6CisJbW92CXg5LCB4MgorCWxkcgl3OCwgW3gyLCMyNDBdCQkJLy8gcHVs
bCByb3VuZHMKKworCQkJCQkJLy8gdm1vdmRxYQkuTGtfZGlwdCglcmlwKSwgJXhtbTIJIyBpcHRs
bworCWxzbAl4MTEsIHg4LCAjNAkJCS8vIG1vdgklcmF4LAklcjExOwlzaGwJJDQsICVyMTEKKwll
b3IJeDExLCB4MTEsICMweDMwCQkJLy8geG9yCQkkMHgzMCwJJXIxMQorCWFkcnAJeDEwLCAuTGtf
c3IKKwlhZGQJeDEwLCB4MTAsIDpsbzEyOi5Ma19zcgorCWFuZAl4MTEsIHgxMSwgIzB4MzAJCQkv
LyBhbmQJCSQweDMwLAklcjExCisJYWRkCXgxMSwgeDExLCB4MTAKKwlhZHJwCXgxMCwgLkxrX21j
X2ZvcndhcmQrNDgKKwlhZGQJeDEwLCB4MTAsIDpsbzEyOi5Ma19tY19mb3J3YXJkKzQ4CisKKwls
ZDEJe3YxNi4yZH0sIFt4OV0sIzE2CQkvLyB2bW92ZHF1CSglcjkpLAkleG1tNAkJIyByb3VuZDAg
a2V5CisJYW5kCXYxLjE2YiwgdjcuMTZiLCB2MTcuMTZiCQkvLyB2cGFuZAkleG1tOSwJJXhtbTAs
CSV4bW0xCisJdXNocgl2MC4xNmIsIHY3LjE2YiwgIzQJCS8vIHZwc3JsYgkkNCwJJXhtbTAsCSV4
bW0wCisJdGJsCXYyLjE2Yiwge3YyMC4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXht
bTIsCSV4bW0yCisJbGQxCXt2NS4yZH0sIFt4MTBdCQkJLy8gdm1vdmRxYQkuTGtfbWNfZm9yd2Fy
ZCs0OCglcmlwKSwgJXhtbTUKKwkJCQkJCS8vIHZtb3ZkcWEJLkxrX2RpcHQrMTYoJXJpcCksICV4
bW0xICMgaXB0aGkKKwl0YmwJdjAuMTZiLCB7djIxLjE2Yn0sIHYwLjE2YgkvLyB2cHNodWZiCSV4
bW0wLAkleG1tMSwJJXhtbTAKKwllb3IJdjIuMTZiLCB2Mi4xNmIsIHYxNi4xNmIJCS8vIHZweG9y
CSV4bW00LAkleG1tMiwJJXhtbTIKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYyLjE2YgkJLy8gdnB4
b3IJJXhtbTIsCSV4bW0wLAkleG1tMAorCWIJLkxkZWNfZW50cnkKKworLmFsaWduCTQKKy5MZGVj
X2xvb3A6CisvLworLy8gIEludmVyc2UgbWl4IGNvbHVtbnMKKy8vCisJCQkJCQkvLyB2bW92ZHFh
CS0weDIwKCVyMTApLCV4bW00CQkjIDQgOiBzYjl1CisJCQkJCQkvLyB2bW92ZHFhCS0weDEwKCVy
MTApLCV4bW0xCQkjIDAgOiBzYjl0CisJdGJsCXY0LjE2Yiwge3YyNC4xNmJ9LCB2Mi4xNmIJCS8v
IHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkJIyA0ID0gc2I5dQorCXRibAl2MS4xNmIsIHt2
MjUuMTZifSwgdjMuMTZiCQkvLyB2cHNodWZiCSV4bW0zLAkleG1tMSwJJXhtbTEJCSMgMCA9IHNi
OXQKKwllb3IJdjAuMTZiLCB2NC4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJ
JXhtbTAKKwkJCQkJCS8vIHZtb3ZkcWEJMHgwMCglcjEwKSwleG1tNAkJIyA0IDogc2JkdQorCWVv
cgl2MC4xNmIsIHYwLjE2YiwgdjEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTAsCSV4bW0wCQkj
IDAgPSBjaAorCQkJCQkJLy8gdm1vdmRxYQkweDEwKCVyMTApLCV4bW0xCQkjIDAgOiBzYmR0CisK
Kwl0YmwJdjQuMTZiLCB7djI2LjE2Yn0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQs
CSV4bW00CQkjIDQgPSBzYmR1CisJdGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHY1LjE2YgkvLyB2cHNo
dWZiCSV4bW01LAkleG1tMCwJJXhtbTAJCSMgTUMgY2gKKwl0YmwJdjEuMTZiLCB7djI3LjE2Yn0s
IHYzLjE2YgkJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmR0CisJZW9y
CXYwLjE2YiwgdjAuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJCSMg
NCA9IGNoCisJCQkJCQkvLyB2bW92ZHFhCTB4MjAoJXIxMCksCSV4bW00CQkjIDQgOiBzYmJ1CisJ
ZW9yCXYwLjE2YiwgdjAuMTZiLCB2MS4xNmIJCS8vIHZweG9yCSV4bW0xLAkleG1tMCwJJXhtbTAJ
CSMgMCA9IGNoCisJCQkJCQkvLyB2bW92ZHFhCTB4MzAoJXIxMCksCSV4bW0xCQkjIDAgOiBzYmJ0
CisKKwl0YmwJdjQuMTZiLCB7djI4LjE2Yn0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXht
bTQsCSV4bW00CQkjIDQgPSBzYmJ1CisJdGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHY1LjE2YgkvLyB2
cHNodWZiCSV4bW01LAkleG1tMCwJJXhtbTAJCSMgTUMgY2gKKwl0YmwJdjEuMTZiLCB7djI5LjE2
Yn0sIHYzLjE2YgkJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmJ0CisJ
ZW9yCXYwLjE2YiwgdjAuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJ
CSMgNCA9IGNoCisJCQkJCQkvLyB2bW92ZHFhCTB4NDAoJXIxMCksCSV4bW00CQkjIDQgOiBzYmV1
CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2MS4xNmIJCS8vIHZweG9yCSV4bW0xLAkleG1tMCwJJXht
bTAJCSMgMCA9IGNoCisJCQkJCQkvLyB2bW92ZHFhCTB4NTAoJXIxMCksCSV4bW0xCQkjIDAgOiBz
YmV0CisKKwl0YmwJdjQuMTZiLCB7djMwLjE2Yn0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJ
JXhtbTQsCSV4bW00CQkjIDQgPSBzYmV1CisJdGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHY1LjE2Ygkv
LyB2cHNodWZiCSV4bW01LAkleG1tMCwJJXhtbTAJCSMgTUMgY2gKKwl0YmwJdjEuMTZiLCB7djMx
LjE2Yn0sIHYzLjE2YgkJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmV0
CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXht
bTAJCSMgNCA9IGNoCisJZXh0CXY1LjE2YiwgdjUuMTZiLCB2NS4xNmIsICMxMgkvLyB2cGFsaWdu
ciAkMTIsCSV4bW01LAkleG1tNSwJJXhtbTUKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYxLjE2YgkJ
Ly8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyAwID0gY2gKKwlzdWIJdzgsIHc4LCAjMQkJ
CS8vIHN1YgkJJDEsJXJheAkJCSMgbnItLQorCisuTGRlY19lbnRyeToKKwkvLyB0b3Agb2Ygcm91
bmQKKwlhbmQJdjEuMTZiLCB2MC4xNmIsIHYxNy4xNmIJCS8vIHZwYW5kCSV4bW05LAkleG1tMCwJ
JXhtbTEJIyAwID0gaworCXVzaHIJdjAuMTZiLCB2MC4xNmIsICM0CQkvLyB2cHNybGIJJDQsCSV4
bW0wLAkleG1tMAkjIDEgPSBpCisJdGJsCXYyLjE2Yiwge3YxOS4xNmJ9LCB2MS4xNmIJLy8gdnBz
aHVmYgkleG1tMSwJJXhtbTExLAkleG1tMgkjIDIgPSBhL2sKKwllb3IJdjEuMTZiLAl2MS4xNmIs
IHYwLjE2YgkJLy8gdnB4b3IJJXhtbTAsCSV4bW0xLAkleG1tMQkjIDAgPSBqCisJdGJsCXYzLjE2
Yiwge3YxOC4xNmJ9LCB2MC4xNmIJLy8gdnBzaHVmYgkleG1tMCwgCSV4bW0xMCwJJXhtbTMJIyAz
ID0gMS9pCisJdGJsCXY0LjE2Yiwge3YxOC4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJ
JXhtbTEwLAkleG1tNAkjIDQgPSAxL2oKKwllb3IJdjMuMTZiLCB2My4xNmIsIHYyLjE2YgkJLy8g
dnB4b3IJJXhtbTIsCSV4bW0zLAkleG1tMwkjIDMgPSBpYWsgPSAxL2kgKyBhL2sKKwllb3IJdjQu
MTZiLCB2NC4xNmIsIHYyLjE2YgkJLy8gdnB4b3IJJXhtbTIsIAkleG1tNCwJJXhtbTQJIyA0ID0g
amFrID0gMS9qICsgYS9rCisJdGJsCXYyLjE2Yiwge3YxOC4xNmJ9LCB2My4xNmIJLy8gdnBzaHVm
YgkleG1tMywJJXhtbTEwLAkleG1tMgkjIDIgPSAxL2lhaworCXRibAl2My4xNmIsIHt2MTguMTZi
fSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsICAleG1tMTAsCSV4bW0zCSMgMyA9IDEvamFrCisJ
ZW9yCXYyLjE2YiwgdjIuMTZiLCB2MS4xNmIJCS8vIHZweG9yCSV4bW0xLAkleG1tMiwJJXhtbTIJ
IyAyID0gaW8KKwllb3IJdjMuMTZiLCB2My4xNmIsIHYwLjE2YgkJLy8gdnB4b3IJJXhtbTAsICAl
eG1tMywJJXhtbTMJIyAzID0gam8KKwlsZDEJe3YxNi4yZH0sIFt4OV0sIzE2CQkvLyB2bW92ZHF1
CSglcjkpLAkleG1tMAorCWNibnoJdzgsIC5MZGVjX2xvb3AKKworCS8vIG1pZGRsZSBvZiBsYXN0
IHJvdW5kCisJCQkJCQkvLyB2bW92ZHFhCTB4NjAoJXIxMCksCSV4bW00CSMgMyA6IHNib3UKKwl0
YmwJdjQuMTZiLCB7djIyLjE2Yn0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4
bW00CSMgNCA9IHNib3UKKwkJCQkJCS8vIHZtb3ZkcWEJMHg3MCglcjEwKSwJJXhtbTEJIyAwIDog
c2JvdAorCWxkMQl7djIuMmR9LCBbeDExXQkJCS8vIHZtb3ZkcWEJLTB4MTYwKCVyMTEpLAkleG1t
MgkjIC5Ma19zci0uTGtfZHNiZD0tMHgxNjAKKwl0YmwJdjEuMTZiLCB7djIzLjE2Yn0sIHYzLjE2
YgkJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEsCSV4bW0xCSMgMCA9IHNiMXQKKwllb3IJdjQuMTZi
LCB2NC4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCSV4bW0wLAkleG1tNCwJJXhtbTQJIyA0ID0gc2Ix
dSArIGsKKwllb3IJdjAuMTZiLCB2MS4xNmIsIHY0LjE2YgkJLy8gdnB4b3IJJXhtbTQsCSV4bW0x
LAkleG1tMAkjIDAgPSBBCisJdGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHYyLjE2YgkvLyB2cHNodWZi
CSV4bW0yLAkleG1tMCwJJXhtbTAKKwlyZXQKKy5zaXplCV92cGFlc19kZWNyeXB0X2NvcmUsLi1f
dnBhZXNfZGVjcnlwdF9jb3JlCisKKy5nbG9ibAl2cGFlc19kZWNyeXB0CisuaGlkZGVuCXZwYWVz
X2RlY3J5cHQKKy50eXBlCXZwYWVzX2RlY3J5cHQsJWZ1bmN0aW9uCisuYWxpZ24JNAordnBhZXNf
ZGVjcnlwdDoKKwlzdHAJeDI5LHgzMCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCisJbGQx
CXt2Ny4xNmJ9LCBbeDBdCisJYmwJX3ZwYWVzX2RlY3J5cHRfcHJlaGVhdAorCWJsCV92cGFlc19k
ZWNyeXB0X2NvcmUKKwlzdDEJe3YwLjE2Yn0sIFt4MV0KKworCWxkcAl4MjkseDMwLFtzcF0sIzE2
CisJcmV0Cisuc2l6ZQl2cGFlc19kZWNyeXB0LC4tdnBhZXNfZGVjcnlwdAorCisvLyB2MTQtdjE1
IGlucHV0LCB2MC12MSBvdXRwdXQKKy50eXBlCV92cGFlc19kZWNyeXB0XzJ4LCVmdW5jdGlvbgor
LmFsaWduCTQKK192cGFlc19kZWNyeXB0XzJ4OgorCW1vdgl4OSwgeDIKKwlsZHIJdzgsIFt4Miwj
MjQwXQkJCS8vIHB1bGwgcm91bmRzCisKKwkJCQkJCS8vIHZtb3ZkcWEJLkxrX2RpcHQoJXJpcCks
ICV4bW0yCSMgaXB0bG8KKwlsc2wJeDExLCB4OCwgIzQJCQkvLyBtb3YJJXJheCwJJXIxMTsJc2hs
CSQ0LCAlcjExCisJZW9yCXgxMSwgeDExLCAjMHgzMAkJCS8vIHhvcgkJJDB4MzAsCSVyMTEKKwlh
ZHJwCXgxMCwgLkxrX3NyCisJYWRkCXgxMCwgeDEwLCA6bG8xMjouTGtfc3IKKwlhbmQJeDExLCB4
MTEsICMweDMwCQkJLy8gYW5kCQkkMHgzMCwJJXIxMQorCWFkZAl4MTEsIHgxMSwgeDEwCisJYWRy
cAl4MTAsIC5Ma19tY19mb3J3YXJkKzQ4CisJYWRkCXgxMCwgeDEwLCA6bG8xMjouTGtfbWNfZm9y
d2FyZCs0OAorCisJbGQxCXt2MTYuMmR9LCBbeDldLCMxNgkJLy8gdm1vdmRxdQkoJXI5KSwJJXht
bTQJCSMgcm91bmQwIGtleQorCWFuZAl2MS4xNmIsICB2MTQuMTZiLCB2MTcuMTZiCS8vIHZwYW5k
CSV4bW05LAkleG1tMCwJJXhtbTEKKwl1c2hyCXYwLjE2YiwgIHYxNC4xNmIsICM0CQkvLyB2cHNy
bGIJJDQsCSV4bW0wLAkleG1tMAorCWFuZAl2OS4xNmIsICB2MTUuMTZiLCB2MTcuMTZiCisJdXNo
cgl2OC4xNmIsICB2MTUuMTZiLCAjNAorCXRibAl2Mi4xNmIsICB7djIwLjE2Yn0sdjEuMTZiCS8v
IHZwc2h1ZmIJJXhtbTEsCSV4bW0yLAkleG1tMgorCXRibAl2MTAuMTZiLCB7djIwLjE2Yn0sdjku
MTZiCisJbGQxCXt2NS4yZH0sIFt4MTBdCQkJLy8gdm1vdmRxYQkuTGtfbWNfZm9yd2FyZCs0OCgl
cmlwKSwgJXhtbTUKKwkJCQkJCS8vIHZtb3ZkcWEJLkxrX2RpcHQrMTYoJXJpcCksICV4bW0xICMg
aXB0aGkKKwl0YmwJdjAuMTZiLCAge3YyMS4xNmJ9LHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLAkl
eG1tMSwJJXhtbTAKKwl0YmwJdjguMTZiLCAge3YyMS4xNmJ9LHY4LjE2YgorCWVvcgl2Mi4xNmIs
ICB2Mi4xNmIsICB2MTYuMTZiCS8vIHZweG9yCSV4bW00LAkleG1tMiwJJXhtbTIKKwllb3IJdjEw
LjE2YiwgdjEwLjE2YiwgdjE2LjE2YgorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2Mi4xNmIJLy8g
dnB4b3IJJXhtbTIsCSV4bW0wLAkleG1tMAorCWVvcgl2OC4xNmIsICB2OC4xNmIsICB2MTAuMTZi
CisJYgkuTGRlY18yeF9lbnRyeQorCisuYWxpZ24JNAorLkxkZWNfMnhfbG9vcDoKKy8vCisvLyAg
SW52ZXJzZSBtaXggY29sdW1ucworLy8KKwkJCQkJCS8vIHZtb3ZkcWEJLTB4MjAoJXIxMCksJXht
bTQJCSMgNCA6IHNiOXUKKwkJCQkJCS8vIHZtb3ZkcWEJLTB4MTAoJXIxMCksJXhtbTEJCSMgMCA6
IHNiOXQKKwl0YmwJdjQuMTZiLCAge3YyNC4xNmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJ
JXhtbTQsCSV4bW00CQkjIDQgPSBzYjl1CisJdGJsCXYxMi4xNmIsIHt2MjQuMTZifSwgdjEwLjE2
YgorCXRibAl2MS4xNmIsICB7djI1LjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1t
MSwJJXhtbTEJCSMgMCA9IHNiOXQKKwl0YmwJdjkuMTZiLCAge3YyNS4xNmJ9LCB2MTEuMTZiCisJ
ZW9yCXYwLjE2YiwgIHY0LjE2YiwgIHYxNi4xNmIJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1t
MAorCWVvcgl2OC4xNmIsICB2MTIuMTZiLCB2MTYuMTZiCisJCQkJCQkvLyB2bW92ZHFhCTB4MDAo
JXIxMCksJXhtbTQJCSMgNCA6IHNiZHUKKwllb3IJdjAuMTZiLCAgdjAuMTZiLCAgdjEuMTZiCS8v
IHZweG9yCSV4bW0xLAkleG1tMCwJJXhtbTAJCSMgMCA9IGNoCisJZW9yCXY4LjE2YiwgIHY4LjE2
YiwgIHY5LjE2YgkvLyB2cHhvcgkleG1tMSwJJXhtbTAsCSV4bW0wCQkjIDAgPSBjaAorCQkJCQkJ
Ly8gdm1vdmRxYQkweDEwKCVyMTApLCV4bW0xCQkjIDAgOiBzYmR0CisKKwl0YmwJdjQuMTZiLCAg
e3YyNi4xNmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CQkjIDQgPSBz
YmR1CisJdGJsCXYxMi4xNmIsIHt2MjYuMTZifSwgdjEwLjE2YgorCXRibAl2MC4xNmIsICB7djAu
MTZifSx2NS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTAsCSV4bW0wCQkjIE1DIGNoCisJdGJs
CXY4LjE2YiwgIHt2OC4xNmJ9LHY1LjE2YgorCXRibAl2MS4xNmIsICB7djI3LjE2Yn0sIHYzLjE2
YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMSwJJXhtbTEJCSMgMCA9IHNiZHQKKwl0YmwJdjkuMTZi
LCAge3YyNy4xNmJ9LCB2MTEuMTZiCisJZW9yCXYwLjE2YiwgIHYwLjE2YiwgIHY0LjE2YgkvLyB2
cHhvcgkleG1tNCwJJXhtbTAsCSV4bW0wCQkjIDQgPSBjaAorCWVvcgl2OC4xNmIsICB2OC4xNmIs
ICB2MTIuMTZiCisJCQkJCQkvLyB2bW92ZHFhCTB4MjAoJXIxMCksCSV4bW00CQkjIDQgOiBzYmJ1
CisJZW9yCXYwLjE2YiwgIHYwLjE2YiwgIHYxLjE2YgkvLyB2cHhvcgkleG1tMSwJJXhtbTAsCSV4
bW0wCQkjIDAgPSBjaAorCWVvcgl2OC4xNmIsICB2OC4xNmIsICB2OS4xNmIKKwkJCQkJCS8vIHZt
b3ZkcWEJMHgzMCglcjEwKSwJJXhtbTEJCSMgMCA6IHNiYnQKKworCXRibAl2NC4xNmIsICB7djI4
LjE2Yn0sIHYyLjE2YgkvLyB2cHNodWZiCSV4bW0yLAkleG1tNCwJJXhtbTQJCSMgNCA9IHNiYnUK
Kwl0YmwJdjEyLjE2Yiwge3YyOC4xNmJ9LCB2MTAuMTZiCisJdGJsCXYwLjE2YiwgIHt2MC4xNmJ9
LHY1LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMCwJJXhtbTAJCSMgTUMgY2gKKwl0YmwJdjgu
MTZiLCAge3Y4LjE2Yn0sdjUuMTZiCisJdGJsCXYxLjE2YiwgIHt2MjkuMTZifSwgdjMuMTZiCS8v
IHZwc2h1ZmIJJXhtbTMsCSV4bW0xLAkleG1tMQkJIyAwID0gc2JidAorCXRibAl2OS4xNmIsICB7
djI5LjE2Yn0sIHYxMS4xNmIKKwllb3IJdjAuMTZiLCAgdjAuMTZiLCAgdjQuMTZiCS8vIHZweG9y
CSV4bW00LAkleG1tMCwJJXhtbTAJCSMgNCA9IGNoCisJZW9yCXY4LjE2YiwgIHY4LjE2YiwgIHYx
Mi4xNmIKKwkJCQkJCS8vIHZtb3ZkcWEJMHg0MCglcjEwKSwJJXhtbTQJCSMgNCA6IHNiZXUKKwll
b3IJdjAuMTZiLCAgdjAuMTZiLCAgdjEuMTZiCS8vIHZweG9yCSV4bW0xLAkleG1tMCwJJXhtbTAJ
CSMgMCA9IGNoCisJZW9yCXY4LjE2YiwgIHY4LjE2YiwgIHY5LjE2YgorCQkJCQkJLy8gdm1vdmRx
YQkweDUwKCVyMTApLAkleG1tMQkJIyAwIDogc2JldAorCisJdGJsCXY0LjE2YiwgIHt2MzAuMTZi
fSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkJIyA0ID0gc2JldQorCXRi
bAl2MTIuMTZiLCB7djMwLjE2Yn0sIHYxMC4xNmIKKwl0YmwJdjAuMTZiLCAge3YwLjE2Yn0sdjUu
MTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4bW0wLAkleG1tMAkJIyBNQyBjaAorCXRibAl2OC4xNmIs
ICB7djguMTZifSx2NS4xNmIKKwl0YmwJdjEuMTZiLCAge3YzMS4xNmJ9LCB2My4xNmIJLy8gdnBz
aHVmYgkleG1tMywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmV0CisJdGJsCXY5LjE2YiwgIHt2MzEu
MTZifSwgdjExLjE2YgorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2NC4xNmIJLy8gdnB4b3IJJXht
bTQsCSV4bW0wLAkleG1tMAkJIyA0ID0gY2gKKwllb3IJdjguMTZiLCAgdjguMTZiLCAgdjEyLjE2
YgorCWV4dAl2NS4xNmIsICB2NS4xNmIsICB2NS4xNmIsICMxMgkvLyB2cGFsaWduciAkMTIsCSV4
bW01LAkleG1tNSwJJXhtbTUKKwllb3IJdjAuMTZiLCAgdjAuMTZiLCAgdjEuMTZiCS8vIHZweG9y
CSV4bW0xLAkleG1tMCwJJXhtbTAJCSMgMCA9IGNoCisJZW9yCXY4LjE2YiwgIHY4LjE2YiwgIHY5
LjE2YgorCXN1Ygl3OCwgdzgsICMxCQkJLy8gc3ViCQkkMSwlcmF4CQkJIyBuci0tCisKKy5MZGVj
XzJ4X2VudHJ5OgorCS8vIHRvcCBvZiByb3VuZAorCWFuZAl2MS4xNmIsICB2MC4xNmIsICB2MTcu
MTZiCS8vIHZwYW5kCSV4bW05LAkleG1tMCwJJXhtbTEJIyAwID0gaworCXVzaHIJdjAuMTZiLCAg
djAuMTZiLCAgIzQJCS8vIHZwc3JsYgkkNCwJJXhtbTAsCSV4bW0wCSMgMSA9IGkKKwlhbmQJdjku
MTZiLCAgdjguMTZiLCAgdjE3LjE2YgorCXVzaHIJdjguMTZiLCAgdjguMTZiLCAgIzQKKwl0YmwJ
djIuMTZiLCAge3YxOS4xNmJ9LHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMTEsCSV4bW0y
CSMgMiA9IGEvaworCXRibAl2MTAuMTZiLCB7djE5LjE2Yn0sdjkuMTZiCisJZW9yCXYxLjE2YiwJ
IHYxLjE2YiwgIHYwLjE2YgkvLyB2cHhvcgkleG1tMCwJJXhtbTEsCSV4bW0xCSMgMCA9IGoKKwll
b3IJdjkuMTZiLAkgdjkuMTZiLCAgdjguMTZiCisJdGJsCXYzLjE2YiwgIHt2MTguMTZifSx2MC4x
NmIJLy8gdnBzaHVmYgkleG1tMCwgCSV4bW0xMCwJJXhtbTMJIyAzID0gMS9pCisJdGJsCXYxMS4x
NmIsIHt2MTguMTZifSx2OC4xNmIKKwl0YmwJdjQuMTZiLCAge3YxOC4xNmJ9LHYxLjE2YgkvLyB2
cHNodWZiCSV4bW0xLAkleG1tMTAsCSV4bW00CSMgNCA9IDEvagorCXRibAl2MTIuMTZiLCB7djE4
LjE2Yn0sdjkuMTZiCisJZW9yCXYzLjE2YiwgIHYzLjE2YiwgIHYyLjE2YgkvLyB2cHhvcgkleG1t
MiwJJXhtbTMsCSV4bW0zCSMgMyA9IGlhayA9IDEvaSArIGEvaworCWVvcgl2MTEuMTZiLCB2MTEu
MTZiLCB2MTAuMTZiCisJZW9yCXY0LjE2YiwgIHY0LjE2YiwgIHYyLjE2YgkvLyB2cHhvcgkleG1t
MiwgCSV4bW00LAkleG1tNAkjIDQgPSBqYWsgPSAxL2ogKyBhL2sKKwllb3IJdjEyLjE2YiwgdjEy
LjE2YiwgdjEwLjE2YgorCXRibAl2Mi4xNmIsICB7djE4LjE2Yn0sdjMuMTZiCS8vIHZwc2h1ZmIJ
JXhtbTMsCSV4bW0xMCwJJXhtbTIJIyAyID0gMS9pYWsKKwl0YmwJdjEwLjE2Yiwge3YxOC4xNmJ9
LHYxMS4xNmIKKwl0YmwJdjMuMTZiLCAge3YxOC4xNmJ9LHY0LjE2YgkvLyB2cHNodWZiCSV4bW00
LCAgJXhtbTEwLAkleG1tMwkjIDMgPSAxL2phaworCXRibAl2MTEuMTZiLCB7djE4LjE2Yn0sdjEy
LjE2YgorCWVvcgl2Mi4xNmIsICB2Mi4xNmIsICB2MS4xNmIJLy8gdnB4b3IJJXhtbTEsCSV4bW0y
LAkleG1tMgkjIDIgPSBpbworCWVvcgl2MTAuMTZiLCB2MTAuMTZiLCB2OS4xNmIKKwllb3IJdjMu
MTZiLCAgdjMuMTZiLCAgdjAuMTZiCS8vIHZweG9yCSV4bW0wLCAgJXhtbTMsCSV4bW0zCSMgMyA9
IGpvCisJZW9yCXYxMS4xNmIsIHYxMS4xNmIsIHY4LjE2YgorCWxkMQl7djE2LjJkfSwgW3g5XSwj
MTYJCS8vIHZtb3ZkcXUJKCVyOSksCSV4bW0wCisJY2Juegl3OCwgLkxkZWNfMnhfbG9vcAorCisJ
Ly8gbWlkZGxlIG9mIGxhc3Qgcm91bmQKKwkJCQkJCS8vIHZtb3ZkcWEJMHg2MCglcjEwKSwJJXht
bTQJIyAzIDogc2JvdQorCXRibAl2NC4xNmIsICB7djIyLjE2Yn0sIHYyLjE2YgkvLyB2cHNodWZi
CSV4bW0yLAkleG1tNCwJJXhtbTQJIyA0ID0gc2JvdQorCXRibAl2MTIuMTZiLCB7djIyLjE2Yn0s
IHYxMC4xNmIKKwkJCQkJCS8vIHZtb3ZkcWEJMHg3MCglcjEwKSwJJXhtbTEJIyAwIDogc2JvdAor
CXRibAl2MS4xNmIsICB7djIzLjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMSwJ
JXhtbTEJIyAwID0gc2IxdAorCXRibAl2OS4xNmIsICB7djIzLjE2Yn0sIHYxMS4xNmIKKwlsZDEJ
e3YyLjJkfSwgW3gxMV0JCQkvLyB2bW92ZHFhCS0weDE2MCglcjExKSwJJXhtbTIJIyAuTGtfc3It
LkxrX2RzYmQ9LTB4MTYwCisJZW9yCXY0LjE2YiwgIHY0LjE2YiwgIHYxNi4xNmIJLy8gdnB4b3IJ
JXhtbTAsCSV4bW00LAkleG1tNAkjIDQgPSBzYjF1ICsgaworCWVvcgl2MTIuMTZiLCB2MTIuMTZi
LCB2MTYuMTZiCisJZW9yCXYwLjE2YiwgIHYxLjE2YiwgIHY0LjE2YgkvLyB2cHhvcgkleG1tNCwJ
JXhtbTEsCSV4bW0wCSMgMCA9IEEKKwllb3IJdjguMTZiLCAgdjkuMTZiLCAgdjEyLjE2YgorCXRi
bAl2MC4xNmIsICB7djAuMTZifSx2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTAsCSV4bW0w
CisJdGJsCXYxLjE2YiwgIHt2OC4xNmJ9LHYyLjE2YgorCXJldAorLnNpemUJX3ZwYWVzX2RlY3J5
cHRfMngsLi1fdnBhZXNfZGVjcnlwdF8yeAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICMjCisjIyAgICAgICAgICAgICAgICAgIEFFUyBrZXkg
c2NoZWR1bGUgICAgICAgICAgICAgICAgICAjIworIyMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisudHlwZQlfdnBhZXNfa2V5X3ByZWhlYXQs
JWZ1bmN0aW9uCisuYWxpZ24JNAorX3ZwYWVzX2tleV9wcmVoZWF0OgorCWFkcnAJeDEwLCAuTGtf
aW52CisJYWRkCXgxMCwgeDEwLCA6bG8xMjouTGtfaW52CisJbW92aQl2MTYuMTZiLCAjMHg1YgkJ
CS8vIC5Ma19zNjMKKwlhZHJwCXgxMSwgLkxrX3NiMQorCWFkZAl4MTEsIHgxMSwgOmxvMTI6Lkxr
X3NiMQorCW1vdmkJdjE3LjE2YiwgIzB4MGYJCQkvLyAuTGtfczBGCisJbGQxCXt2MTguMmQsdjE5
LjJkLHYyMC4yZCx2MjEuMmR9LCBbeDEwXQkJLy8gLkxrX2ludiwgLkxrX2lwdAorCWFkcnAJeDEw
LCAuTGtfZGtzZAorCWFkZAl4MTAsIHgxMCwgOmxvMTI6LkxrX2Rrc2QKKwlsZDEJe3YyMi4yZCx2
MjMuMmR9LCBbeDExXQkJLy8gLkxrX3NiMQorCWFkcnAJeDExLCAuTGtfbWNfZm9yd2FyZAorCWFk
ZAl4MTEsIHgxMSwgOmxvMTI6LkxrX21jX2ZvcndhcmQKKwlsZDEJe3YyNC4yZCx2MjUuMmQsdjI2
LjJkLHYyNy4yZH0sIFt4MTBdLCM2NAkvLyAuTGtfZGtzZCwgLkxrX2Rrc2IKKwlsZDEJe3YyOC4y
ZCx2MjkuMmQsdjMwLjJkLHYzMS4yZH0sIFt4MTBdLCM2NAkvLyAuTGtfZGtzZSwgLkxrX2RrczkK
KwlsZDEJe3Y4LjJkfSwgW3gxMF0JCQkvLyAuTGtfcmNvbgorCWxkMQl7djkuMmR9LCBbeDExXQkJ
CS8vIC5Ma19tY19mb3J3YXJkWzBdCisJcmV0Cisuc2l6ZQlfdnBhZXNfa2V5X3ByZWhlYXQsLi1f
dnBhZXNfa2V5X3ByZWhlYXQKKworLnR5cGUJX3ZwYWVzX3NjaGVkdWxlX2NvcmUsJWZ1bmN0aW9u
CisuYWxpZ24JNAorX3ZwYWVzX3NjaGVkdWxlX2NvcmU6CisJc3RwCXgyOSwgeDMwLCBbc3AsIy0x
Nl0hCisJYWRkCXgyOSxzcCwjMAorCisJYmwJX3ZwYWVzX2tleV9wcmVoZWF0CQkvLyBsb2FkIHRo
ZSB0YWJsZXMKKworCWxkMQl7djAuMTZifSwgW3gwXSwjMTYJCS8vIHZtb3ZkcXUJKCVyZGkpLAkl
eG1tMAkJIyBsb2FkIGtleSAodW5hbGlnbmVkKQorCisJLy8gaW5wdXQgdHJhbnNmb3JtCisJbW92
CXYzLjE2YiwgdjAuMTZiCQkJLy8gdm1vdmRxYQkleG1tMCwJJXhtbTMKKwlibAlfdnBhZXNfc2No
ZWR1bGVfdHJhbnNmb3JtCisJbW92CXY3LjE2YiwgdjAuMTZiCQkJLy8gdm1vdmRxYQkleG1tMCwJ
JXhtbTcKKworCWFkcnAJeDEwLCAuTGtfc3IJCS8vIGxlYQkuTGtfc3IoJXJpcCksJXIxMAorCWFk
ZAl4MTAsIHgxMCwgOmxvMTI6LkxrX3NyCisKKwlhZGQJeDgsIHg4LCB4MTAKKwljYm56CXczLCAu
THNjaGVkdWxlX2FtX2RlY3J5cHRpbmcKKworCS8vIGVuY3J5cHRpbmcsIG91dHB1dCB6ZXJvdGgg
cm91bmQga2V5IGFmdGVyIHRyYW5zZm9ybQorCXN0MQl7djAuMmR9LCBbeDJdCQkJLy8gdm1vdmRx
dQkleG1tMCwJKCVyZHgpCisJYgkuTHNjaGVkdWxlX2dvCisKKy5Mc2NoZWR1bGVfYW1fZGVjcnlw
dGluZzoKKwkvLyBkZWNyeXB0aW5nLCBvdXRwdXQgemVyb3RoIHJvdW5kIGtleSBhZnRlciBzaGlm
dHJvd3MKKwlsZDEJe3YxLjJkfSwgW3g4XQkJCS8vIHZtb3ZkcWEJKCVyOCwlcjEwKSwJJXhtbTEK
Kwl0YmwJdjMuMTZiLCB7djMuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIgICV4bW0xLAkleG1tMywJ
JXhtbTMKKwlzdDEJe3YzLjJkfSwgW3gyXQkJCS8vIHZtb3ZkcXUJJXhtbTMsCSglcmR4KQorCWVv
cgl4OCwgeDgsICMweDMwCQkJLy8geG9yCSQweDMwLCAlcjgKKworLkxzY2hlZHVsZV9nbzoKKwlj
bXAJdzEsICMxOTIJCQkvLyBjbXAJJDE5MiwJJWVzaQorCWIuaGkJLkxzY2hlZHVsZV8yNTYKKwli
LmVxCS5Mc2NoZWR1bGVfMTkyCisJLy8gMTI4OiBmYWxsIHRob3VnaAorCisjIworIyMgIC5zY2hl
ZHVsZV8xMjgKKyMjCisjIyAgMTI4LWJpdCBzcGVjaWZpYyBwYXJ0IG9mIGtleSBzY2hlZHVsZS4K
KyMjCisjIyAgVGhpcyBzY2hlZHVsZSBpcyByZWFsbHkgc2ltcGxlLCBiZWNhdXNlIGFsbCBpdHMg
cGFydHMKKyMjICBhcmUgYWNjb21wbGlzaGVkIGJ5IHRoZSBzdWJyb3V0aW5lcy4KKyMjCisuTHNj
aGVkdWxlXzEyODoKKwltb3YJeDAsICMxMAkJCS8vIG1vdgkkMTAsICVlc2kKKworLkxvb3Bfc2No
ZWR1bGVfMTI4OgorCXN1Ygl4MCwgeDAsICMxCQkJLy8gZGVjCSVlc2kKKwlibAlfdnBhZXNfc2No
ZWR1bGVfcm91bmQKKwljYnoJeDAsIC5Mc2NoZWR1bGVfbWFuZ2xlX2xhc3QKKwlibAlfdnBhZXNf
c2NoZWR1bGVfbWFuZ2xlCQkvLyB3cml0ZSBvdXRwdXQKKwliCS5Mb29wX3NjaGVkdWxlXzEyOAor
CisjIworIyMgIC5hZXNfc2NoZWR1bGVfMTkyCisjIworIyMgIDE5Mi1iaXQgc3BlY2lmaWMgcGFy
dCBvZiBrZXkgc2NoZWR1bGUuCisjIworIyMgIFRoZSBtYWluIGJvZHkgb2YgdGhpcyBzY2hlZHVs
ZSBpcyB0aGUgc2FtZSBhcyB0aGUgMTI4LWJpdAorIyMgIHNjaGVkdWxlLCBidXQgd2l0aCBtb3Jl
IHNtZWFyaW5nLiAgVGhlIGxvbmcsIGhpZ2ggc2lkZSBpcworIyMgIHN0b3JlZCBpbiAleG1tNyBh
cyBiZWZvcmUsIGFuZCB0aGUgc2hvcnQsIGxvdyBzaWRlIGlzIGluCisjIyAgdGhlIGhpZ2ggYml0
cyBvZiAleG1tNi4KKyMjCisjIyAgVGhpcyBzY2hlZHVsZSBpcyBzb21ld2hhdCBuYXN0aWVyLCBo
b3dldmVyLCBiZWNhdXNlIGVhY2gKKyMjICByb3VuZCBwcm9kdWNlcyAxOTIgYml0cyBvZiBrZXkg
bWF0ZXJpYWwsIG9yIDEuNSByb3VuZCBrZXlzLgorIyMgIFRoZXJlZm9yZSwgb24gZWFjaCBjeWNs
ZSB3ZSBkbyAyIHJvdW5kcyBhbmQgcHJvZHVjZSAzIHJvdW5kCisjIyAga2V5cy4KKyMjCisuYWxp
Z24JNAorLkxzY2hlZHVsZV8xOTI6CisJc3ViCXgwLCB4MCwgIzgKKwlsZDEJe3YwLjE2Yn0sIFt4
MF0JCS8vIHZtb3ZkcXUJOCglcmRpKSwleG1tMAkJIyBsb2FkIGtleSBwYXJ0IDIgKHZlcnkgdW5h
bGlnbmVkKQorCWJsCV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0JLy8gaW5wdXQgdHJhbnNmb3Jt
CisJbW92CXY2LjE2YiwgdjAuMTZiCQkJLy8gdm1vdmRxYQkleG1tMCwJJXhtbTYJCSMgc2F2ZSBz
aG9ydCBwYXJ0CisJZW9yCXY0LjE2YiwgdjQuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkl
eG1tNCwgJXhtbTQJIyBjbGVhciA0CisJaW5zCXY2LmRbMF0sIHY0LmRbMF0JCS8vIHZtb3ZobHBz
CSV4bW00LAkleG1tNiwJJXhtbTYJCSMgY2xvYmJlciBsb3cgc2lkZSB3aXRoIHplcm9zCisJbW92
CXgwLCAjNAkJCS8vIG1vdgkkNCwJJWVzaQorCisuTG9vcF9zY2hlZHVsZV8xOTI6CisJc3ViCXgw
LCB4MCwgIzEJCQkvLyBkZWMJJWVzaQorCWJsCV92cGFlc19zY2hlZHVsZV9yb3VuZAorCWV4dAl2
MC4xNmIsIHY2LjE2YiwgdjAuMTZiLCAjOAkvLyB2cGFsaWducgkkOCwleG1tNiwleG1tMCwleG1t
MAorCWJsCV92cGFlc19zY2hlZHVsZV9tYW5nbGUJCS8vIHNhdmUga2V5IG4KKwlibAlfdnBhZXNf
c2NoZWR1bGVfMTkyX3NtZWFyCisJYmwJX3ZwYWVzX3NjaGVkdWxlX21hbmdsZQkJLy8gc2F2ZSBr
ZXkgbisxCisJYmwJX3ZwYWVzX3NjaGVkdWxlX3JvdW5kCisJY2J6CXgwLCAuTHNjaGVkdWxlX21h
bmdsZV9sYXN0CisJYmwJX3ZwYWVzX3NjaGVkdWxlX21hbmdsZQkJLy8gc2F2ZSBrZXkgbisyCisJ
YmwJX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVhcgorCWIJLkxvb3Bfc2NoZWR1bGVfMTkyCisKKyMj
CisjIyAgLmFlc19zY2hlZHVsZV8yNTYKKyMjCisjIyAgMjU2LWJpdCBzcGVjaWZpYyBwYXJ0IG9m
IGtleSBzY2hlZHVsZS4KKyMjCisjIyAgVGhlIHN0cnVjdHVyZSBoZXJlIGlzIHZlcnkgc2ltaWxh
ciB0byB0aGUgMTI4LWJpdAorIyMgIHNjaGVkdWxlLCBidXQgd2l0aCBhbiBhZGRpdGlvbmFsICJs
b3cgc2lkZSIgaW4KKyMjICAleG1tNi4gIFRoZSBsb3cgc2lkZSdzIHJvdW5kcyBhcmUgdGhlIHNh
bWUgYXMgdGhlCisjIyAgaGlnaCBzaWRlJ3MsIGV4Y2VwdCBubyByY29uIGFuZCBubyByb3RhdGlv
bi4KKyMjCisuYWxpZ24JNAorLkxzY2hlZHVsZV8yNTY6CisJbGQxCXt2MC4xNmJ9LCBbeDBdCQkv
LyB2bW92ZHF1CTE2KCVyZGkpLCV4bW0wCQkjIGxvYWQga2V5IHBhcnQgMiAodW5hbGlnbmVkKQor
CWJsCV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0JLy8gaW5wdXQgdHJhbnNmb3JtCisJbW92CXgw
LCAjNwkJCS8vIG1vdgkkNywgJWVzaQorCisuTG9vcF9zY2hlZHVsZV8yNTY6CisJc3ViCXgwLCB4
MCwgIzEJCQkvLyBkZWMJJWVzaQorCWJsCV92cGFlc19zY2hlZHVsZV9tYW5nbGUJCS8vIG91dHB1
dCBsb3cgcmVzdWx0CisJbW92CXY2LjE2YiwgdjAuMTZiCQkJLy8gdm1vdmRxYQkleG1tMCwJJXht
bTYJCSMgc2F2ZSBjdXJfbG8gaW4geG1tNgorCisJLy8gaGlnaCByb3VuZAorCWJsCV92cGFlc19z
Y2hlZHVsZV9yb3VuZAorCWNiegl4MCwgLkxzY2hlZHVsZV9tYW5nbGVfbGFzdAorCWJsCV92cGFl
c19zY2hlZHVsZV9tYW5nbGUKKworCS8vIGxvdyByb3VuZC4gc3dhcCB4bW03IGFuZCB4bW02CisJ
ZHVwCXYwLjRzLCB2MC5zWzNdCQkJLy8gdnBzaHVmZAkkMHhGRiwJJXhtbTAsCSV4bW0wCisJbW92
aQl2NC4xNmIsICMwCisJbW92CXY1LjE2YiwgdjcuMTZiCQkJLy8gdm1vdmRxYQkleG1tNywJJXht
bTUKKwltb3YJdjcuMTZiLCB2Ni4xNmIJCQkvLyB2bW92ZHFhCSV4bW02LAkleG1tNworCWJsCV92
cGFlc19zY2hlZHVsZV9sb3dfcm91bmQKKwltb3YJdjcuMTZiLCB2NS4xNmIJCQkvLyB2bW92ZHFh
CSV4bW01LAkleG1tNworCisJYgkuTG9vcF9zY2hlZHVsZV8yNTYKKworIyMKKyMjICAuYWVzX3Nj
aGVkdWxlX21hbmdsZV9sYXN0CisjIworIyMgIE1hbmdsZXIgZm9yIGxhc3Qgcm91bmQgb2Yga2V5
IHNjaGVkdWxlCisjIyAgTWFuZ2xlcyAleG1tMAorIyMgICAgd2hlbiBlbmNyeXB0aW5nLCBvdXRw
dXRzIG91dCgleG1tMCkgXiA2MworIyMgICAgd2hlbiBkZWNyeXB0aW5nLCBvdXRwdXRzIHVuc2tl
dygleG1tMCkKKyMjCisjIyAgQWx3YXlzIGNhbGxlZCByaWdodCBiZWZvcmUgcmV0dXJuLi4uIGp1
bXBzIHRvIGNsZWFudXAgYW5kIGV4aXRzCisjIworLmFsaWduCTQKKy5Mc2NoZWR1bGVfbWFuZ2xl
X2xhc3Q6CisJLy8gc2NoZWR1bGUgbGFzdCByb3VuZCBrZXkgZnJvbSB4bW0wCisJYWRycAl4MTEs
IC5Ma19kZXNrZXcJLy8gbGVhCS5Ma19kZXNrZXcoJXJpcCksJXIxMQkjIHByZXBhcmUgdG8gZGVz
a2V3CisJYWRkCXgxMSwgeDExLCA6bG8xMjouTGtfZGVza2V3CisKKwljYm56CXczLCAuTHNjaGVk
dWxlX21hbmdsZV9sYXN0X2RlYworCisJLy8gZW5jcnlwdGluZworCWxkMQl7djEuMmR9LCBbeDhd
CQkJLy8gdm1vdmRxYQkoJXI4LCVyMTApLCV4bW0xCisJYWRycAl4MTEsIC5Ma19vcHQJCS8vIGxl
YQkuTGtfb3B0KCVyaXApLAklcjExCQkjIHByZXBhcmUgdG8gb3V0cHV0IHRyYW5zZm9ybQorCWFk
ZAl4MTEsIHgxMSwgOmxvMTI6LkxrX29wdAorCWFkZAl4MiwgeDIsICMzMgkJCS8vIGFkZAkkMzIs
CSVyZHgKKwl0YmwJdjAuMTZiLCB7djAuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4
bW0wLAkleG1tMAkJIyBvdXRwdXQgcGVybXV0ZQorCisuTHNjaGVkdWxlX21hbmdsZV9sYXN0X2Rl
YzoKKwlsZDEJe3YyMC4yZCx2MjEuMmR9LCBbeDExXQkJLy8gcmVsb2FkIGNvbnN0YW50cworCXN1
Ygl4MiwgeDIsICMxNgkJCS8vIGFkZAkkLTE2LAklcmR4CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2
MTYuMTZiCQkvLyB2cHhvcgkuTGtfczYzKCVyaXApLAkleG1tMCwJJXhtbTAKKwlibAlfdnBhZXNf
c2NoZWR1bGVfdHJhbnNmb3JtCS8vIG91dHB1dCB0cmFuc2Zvcm0KKwlzdDEJe3YwLjJkfSwgW3gy
XQkJCS8vIHZtb3ZkcXUJJXhtbTAsCSglcmR4KQkJIyBzYXZlIGxhc3Qga2V5CisKKwkvLyBjbGVh
bnVwCisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2MC4xNmIJCS8vIHZweG9yCSV4bW0wLAkleG1tMCwJ
JXhtbTAKKwllb3IJdjEuMTZiLCB2MS4xNmIsIHYxLjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW0x
LAkleG1tMQorCWVvcgl2Mi4xNmIsIHYyLjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkleG1tMiwJJXht
bTIsCSV4bW0yCisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2My4xNmIJCS8vIHZweG9yCSV4bW0zLAkl
eG1tMywJJXhtbTMKKwllb3IJdjQuMTZiLCB2NC4xNmIsIHY0LjE2YgkJLy8gdnB4b3IJJXhtbTQs
CSV4bW00LAkleG1tNAorCWVvcgl2NS4xNmIsIHY1LjE2YiwgdjUuMTZiCQkvLyB2cHhvcgkleG1t
NSwJJXhtbTUsCSV4bW01CisJZW9yCXY2LjE2YiwgdjYuMTZiLCB2Ni4xNmIJCS8vIHZweG9yCSV4
bW02LAkleG1tNiwJJXhtbTYKKwllb3IJdjcuMTZiLCB2Ny4xNmIsIHY3LjE2YgkJLy8gdnB4b3IJ
JXhtbTcsCSV4bW03LAkleG1tNworCWxkcAl4MjksIHgzMCwgW3NwXSwjMTYKKwlyZXQKKy5zaXpl
CV92cGFlc19zY2hlZHVsZV9jb3JlLC4tX3ZwYWVzX3NjaGVkdWxlX2NvcmUKKworIyMKKyMjICAu
YWVzX3NjaGVkdWxlXzE5Ml9zbWVhcgorIyMKKyMjICBTbWVhciB0aGUgc2hvcnQsIGxvdyBzaWRl
IGluIHRoZSAxOTItYml0IGtleSBzY2hlZHVsZS4KKyMjCisjIyAgSW5wdXRzOgorIyMgICAgJXht
bTc6IGhpZ2ggc2lkZSwgYiAgYSAgeCAgeQorIyMgICAgJXhtbTY6ICBsb3cgc2lkZSwgZCAgYyAg
MCAgMAorIyMgICAgJXhtbTEzOiAwCisjIworIyMgIE91dHB1dHM6CisjIyAgICAleG1tNjogYitj
K2QgIGIrYyAgMCAgMAorIyMgICAgJXhtbTA6IGIrYytkICBiK2MgIGIgIGEKKyMjCisudHlwZQlf
dnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyLCVmdW5jdGlvbgorLmFsaWduCTQKK192cGFlc19zY2hl
ZHVsZV8xOTJfc21lYXI6CisJbW92aQl2MS4xNmIsICMwCisJZHVwCXYwLjRzLCB2Ny5zWzNdCisJ
aW5zCXYxLnNbM10sIHY2LnNbMl0JLy8gdnBzaHVmZAkkMHg4MCwJJXhtbTYsCSV4bW0xCSMgZCBj
IDAgMCAtPiBjIDAgMCAwCisJaW5zCXYwLnNbMF0sIHY3LnNbMl0JLy8gdnBzaHVmZAkkMHhGRSwJ
JXhtbTcsCSV4bW0wCSMgYiBhIF8gXyAtPiBiIGIgYiBhCisJZW9yCXY2LjE2YiwgdjYuMTZiLCB2
MS4xNmIJLy8gdnB4b3IJJXhtbTEsCSV4bW02LAkleG1tNgkjIC0+IGMrZCBjIDAgMAorCWVvcgl2
MS4xNmIsIHYxLjE2YiwgdjEuMTZiCS8vIHZweG9yCSV4bW0xLAkleG1tMSwJJXhtbTEKKwllb3IJ
djYuMTZiLCB2Ni4xNmIsIHYwLjE2YgkvLyB2cHhvcgkleG1tMCwJJXhtbTYsCSV4bW02CSMgLT4g
YitjK2QgYitjIGIgYQorCW1vdgl2MC4xNmIsIHY2LjE2YgkJLy8gdm1vdmRxYQkleG1tNiwJJXht
bTAKKwlpbnMJdjYuZFswXSwgdjEuZFswXQkvLyB2bW92aGxwcwkleG1tMSwJJXhtbTYsCSV4bW02
CSMgY2xvYmJlciBsb3cgc2lkZSB3aXRoIHplcm9zCisJcmV0Cisuc2l6ZQlfdnBhZXNfc2NoZWR1
bGVfMTkyX3NtZWFyLC4tX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVhcgorCisjIworIyMgIC5hZXNf
c2NoZWR1bGVfcm91bmQKKyMjCisjIyAgUnVucyBvbmUgbWFpbiByb3VuZCBvZiB0aGUga2V5IHNj
aGVkdWxlIG9uICV4bW0wLCAleG1tNworIyMKKyMjICBTcGVjaWZpY2FsbHksIHJ1bnMgc3ViYnl0
ZXMgb24gdGhlIGhpZ2ggZHdvcmQgb2YgJXhtbTAKKyMjICB0aGVuIHJvdGF0ZXMgaXQgYnkgb25l
IGJ5dGUgYW5kIHhvcnMgaW50byB0aGUgbG93IGR3b3JkIG9mCisjIyAgJXhtbTcuCisjIworIyMg
IEFkZHMgcmNvbiBmcm9tIGxvdyBieXRlIG9mICV4bW04LCB0aGVuIHJvdGF0ZXMgJXhtbTggZm9y
CisjIyAgbmV4dCByY29uLgorIyMKKyMjICBTbWVhcnMgdGhlIGR3b3JkcyBvZiAleG1tNyBieSB4
b3JpbmcgdGhlIGxvdyBpbnRvIHRoZQorIyMgIHNlY29uZCBsb3csIHJlc3VsdCBpbnRvIHRoaXJk
LCByZXN1bHQgaW50byBoaWdoZXN0LgorIyMKKyMjICBSZXR1cm5zIHJlc3VsdHMgaW4gJXhtbTcg
PSAleG1tMC4KKyMjICBDbG9iYmVycyAleG1tMS0leG1tNCwgJXIxMS4KKyMjCisudHlwZQlfdnBh
ZXNfc2NoZWR1bGVfcm91bmQsJWZ1bmN0aW9uCisuYWxpZ24JNAorX3ZwYWVzX3NjaGVkdWxlX3Jv
dW5kOgorCS8vIGV4dHJhY3QgcmNvbiBmcm9tIHhtbTgKKwltb3ZpCXY0LjE2YiwgIzAJCQkvLyB2
cHhvcgkleG1tNCwJJXhtbTQsCSV4bW00CisJZXh0CXYxLjE2YiwgdjguMTZiLCB2NC4xNmIsICMx
NQkvLyB2cGFsaWducgkkMTUsCSV4bW04LAkleG1tNCwJJXhtbTEKKwlleHQJdjguMTZiLCB2OC4x
NmIsIHY4LjE2YiwgIzE1CS8vIHZwYWxpZ25yCSQxNSwJJXhtbTgsCSV4bW04LAkleG1tOAorCWVv
cgl2Ny4xNmIsIHY3LjE2YiwgdjEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTcsCSV4bW03CisK
KwkvLyByb3RhdGUKKwlkdXAJdjAuNHMsIHYwLnNbM10JCQkvLyB2cHNodWZkCSQweEZGLAkleG1t
MCwJJXhtbTAKKwlleHQJdjAuMTZiLCB2MC4xNmIsIHYwLjE2YiwgIzEJLy8gdnBhbGlnbnIJJDEs
CSV4bW0wLAkleG1tMCwJJXhtbTAKKworCS8vIGZhbGwgdGhyb3VnaC4uLgorCisJLy8gbG93IHJv
dW5kOiBzYW1lIGFzIGhpZ2ggcm91bmQsIGJ1dCBubyByb3RhdGlvbiBhbmQgbm8gcmNvbi4KK192
cGFlc19zY2hlZHVsZV9sb3dfcm91bmQ6CisJLy8gc21lYXIgeG1tNworCWV4dAl2MS4xNmIsIHY0
LjE2YiwgdjcuMTZiLCAjMTIJLy8gdnBzbGxkcQkkNCwJJXhtbTcsCSV4bW0xCisJZW9yCXY3LjE2
YiwgdjcuMTZiLCB2MS4xNmIJCS8vIHZweG9yCSV4bW0xLAkleG1tNywJJXhtbTcKKwlleHQJdjQu
MTZiLCB2NC4xNmIsIHY3LjE2YiwgIzgJLy8gdnBzbGxkcQkkOCwJJXhtbTcsCSV4bW00CisKKwkv
LyBzdWJieXRlcworCWFuZAl2MS4xNmIsIHYwLjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTks
CSV4bW0wLAkleG1tMQkJIyAwID0gaworCXVzaHIJdjAuMTZiLCB2MC4xNmIsICM0CQkvLyB2cHNy
bGIJJDQsCSV4bW0wLAkleG1tMAkJIyAxID0gaQorCWVvcgl2Ny4xNmIsIHY3LjE2YiwgdjQuMTZi
CQkvLyB2cHhvcgkleG1tNCwJJXhtbTcsCSV4bW03CisJdGJsCXYyLjE2Yiwge3YxOS4xNmJ9LCB2
MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTExLAkleG1tMgkJIyAyID0gYS9rCisJZW9yCXYx
LjE2YiwgdjEuMTZiLCB2MC4xNmIJCS8vIHZweG9yCSV4bW0wLAkleG1tMSwJJXhtbTEJCSMgMCA9
IGoKKwl0YmwJdjMuMTZiLCB7djE4LjE2Yn0sIHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLCAJJXht
bTEwLAkleG1tMwkJIyAzID0gMS9pCisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2Mi4xNmIJCS8vIHZw
eG9yCSV4bW0yLAkleG1tMywJJXhtbTMJCSMgMyA9IGlhayA9IDEvaSArIGEvaworCXRibAl2NC4x
NmIsIHt2MTguMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0xMCwJJXhtbTQJCSMg
NCA9IDEvagorCWVvcgl2Ny4xNmIsIHY3LjE2YiwgdjE2LjE2YgkJLy8gdnB4b3IJLkxrX3M2Mygl
cmlwKSwJJXhtbTcsCSV4bW03CisJdGJsCXYzLjE2Yiwge3YxOC4xNmJ9LCB2My4xNmIJLy8gdnBz
aHVmYgkleG1tMywJJXhtbTEwLAkleG1tMwkJIyAyID0gMS9pYWsKKwllb3IJdjQuMTZiLCB2NC4x
NmIsIHYyLjE2YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW00LAkleG1tNAkJIyA0ID0gamFrID0gMS9q
ICsgYS9rCisJdGJsCXYyLjE2Yiwge3YxOC4xNmJ9LCB2NC4xNmIJLy8gdnBzaHVmYgkleG1tNCwJ
JXhtbTEwLAkleG1tMgkJIyAzID0gMS9qYWsKKwllb3IJdjMuMTZiLCB2My4xNmIsIHYxLjE2YgkJ
Ly8gdnB4b3IJJXhtbTEsCSV4bW0zLAkleG1tMwkJIyAyID0gaW8KKwllb3IJdjIuMTZiLCB2Mi4x
NmIsIHYwLjE2YgkJLy8gdnB4b3IJJXhtbTAsCSV4bW0yLAkleG1tMgkJIyAzID0gam8KKwl0YmwJ
djQuMTZiLCB7djIzLjE2Yn0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTMsCSV4bW00
CQkjIDQgPSBzYm91CisJdGJsCXYxLjE2Yiwge3YyMi4xNmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkl
eG1tMiwJJXhtbTEyLAkleG1tMQkJIyAwID0gc2IxdAorCWVvcgl2MS4xNmIsIHYxLjE2YiwgdjQu
MTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYm94IG91dHB1dAorCisJ
Ly8gYWRkIGluIHNtZWFyZWQgc3R1ZmYKKwllb3IJdjAuMTZiLCB2MS4xNmIsIHY3LjE2YgkJLy8g
dnB4b3IJJXhtbTcsCSV4bW0xLAkleG1tMAorCWVvcgl2Ny4xNmIsIHYxLjE2YiwgdjcuMTZiCQkv
LyB2bW92ZHFhCSV4bW0wLAkleG1tNworCXJldAorLnNpemUJX3ZwYWVzX3NjaGVkdWxlX3JvdW5k
LC4tX3ZwYWVzX3NjaGVkdWxlX3JvdW5kCisKKyMjCisjIyAgLmFlc19zY2hlZHVsZV90cmFuc2Zv
cm0KKyMjCisjIyAgTGluZWFyLXRyYW5zZm9ybSAleG1tMCBhY2NvcmRpbmcgdG8gdGFibGVzIGF0
ICglcjExKQorIyMKKyMjICBSZXF1aXJlcyB0aGF0ICV4bW05ID0gMHgwRjBGLi4uIGFzIGluIHBy
ZWhlYXQKKyMjICBPdXRwdXQgaW4gJXhtbTAKKyMjICBDbG9iYmVycyAleG1tMSwgJXhtbTIKKyMj
CisudHlwZQlfdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3JtLCVmdW5jdGlvbgorLmFsaWduCTQKK192
cGFlc19zY2hlZHVsZV90cmFuc2Zvcm06CisJYW5kCXYxLjE2YiwgdjAuMTZiLCB2MTcuMTZiCQkv
LyB2cGFuZAkleG1tOSwJJXhtbTAsCSV4bW0xCisJdXNocgl2MC4xNmIsIHYwLjE2YiwgIzQJCS8v
IHZwc3JsYgkkNCwJJXhtbTAsCSV4bW0wCisJCQkJCQkvLyB2bW92ZHFhCSglcjExKSwJJXhtbTIg
CSMgbG8KKwl0YmwJdjIuMTZiLCB7djIwLjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkl
eG1tMiwJJXhtbTIKKwkJCQkJCS8vIHZtb3ZkcWEJMTYoJXIxMSksCSV4bW0xICMgaGkKKwl0YmwJ
djAuMTZiLCB7djIxLjE2Yn0sIHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLAkleG1tMSwJJXhtbTAK
Kwllb3IJdjAuMTZiLCB2MC4xNmIsIHYyLjE2YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW0wLAkleG1t
MAorCXJldAorLnNpemUJX3ZwYWVzX3NjaGVkdWxlX3RyYW5zZm9ybSwuLV92cGFlc19zY2hlZHVs
ZV90cmFuc2Zvcm0KKworIyMKKyMjICAuYWVzX3NjaGVkdWxlX21hbmdsZQorIyMKKyMjICBNYW5n
bGUgeG1tMCBmcm9tIChiYXNpcy10cmFuc2Zvcm1lZCkgc3RhbmRhcmQgdmVyc2lvbgorIyMgIHRv
IG91ciB2ZXJzaW9uLgorIyMKKyMjICBPbiBlbmNyeXB0LAorIyMgICAgeG9yIHdpdGggMHg2Mwor
IyMgICAgbXVsdGlwbHkgYnkgY2lyY3VsYW50IDAsMSwxLDEKKyMjICAgIGFwcGx5IHNoaWZ0cm93
cyB0cmFuc2Zvcm0KKyMjCisjIyAgT24gZGVjcnlwdCwKKyMjICAgIHhvciB3aXRoIDB4NjMKKyMj
ICAgIG11bHRpcGx5IGJ5ICJpbnZlcnNlIG1peGNvbHVtbnMiIGNpcmN1bGFudCBFLEIsRCw5Cisj
IyAgICBkZXNrZXcKKyMjICAgIGFwcGx5IHNoaWZ0cm93cyB0cmFuc2Zvcm0KKyMjCisjIworIyMg
IFdyaXRlcyBvdXQgdG8gKCVyZHgpLCBhbmQgaW5jcmVtZW50cyBvciBkZWNyZW1lbnRzIGl0Cisj
IyAgS2VlcHMgdHJhY2sgb2Ygcm91bmQgbnVtYmVyIG1vZCA0IGluICVyOAorIyMgIFByZXNlcnZl
cyB4bW0wCisjIyAgQ2xvYmJlcnMgeG1tMS14bW01CisjIworLnR5cGUJX3ZwYWVzX3NjaGVkdWxl
X21hbmdsZSwlZnVuY3Rpb24KKy5hbGlnbgk0CitfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlOgorCW1v
dgl2NC4xNmIsIHYwLjE2YgkJCS8vIHZtb3ZkcWEJJXhtbTAsCSV4bW00CSMgc2F2ZSB4bW0wIGZv
ciBsYXRlcgorCQkJCQkJLy8gdm1vdmRxYQkuTGtfbWNfZm9yd2FyZCglcmlwKSwleG1tNQorCWNi
bnoJdzMsIC5Mc2NoZWR1bGVfbWFuZ2xlX2RlYworCisJLy8gZW5jcnlwdGluZworCWVvcgl2NC4x
NmIsIHYwLjE2YiwgdjE2LjE2YgkJLy8gdnB4b3IJLkxrX3M2MyglcmlwKSwJJXhtbTAsCSV4bW00
CisJYWRkCXgyLCB4MiwgIzE2CQkJLy8gYWRkCSQxNiwJJXJkeAorCXRibAl2NC4xNmIsIHt2NC4x
NmJ9LCB2OS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTQsCSV4bW00CisJdGJsCXYxLjE2Yiwg
e3Y0LjE2Yn0sIHY5LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tNCwJJXhtbTEKKwl0YmwJdjMu
MTZiLCB7djEuMTZifSwgdjkuMTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4bW0xLAkleG1tMworCWVv
cgl2NC4xNmIsIHY0LjE2YiwgdjEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTQsCSV4bW00CisJ
bGQxCXt2MS4yZH0sIFt4OF0JCQkvLyB2bW92ZHFhCSglcjgsJXIxMCksCSV4bW0xCisJZW9yCXYz
LjE2YiwgdjMuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMywJJXhtbTMKKworCWIJ
LkxzY2hlZHVsZV9tYW5nbGVfYm90aAorLmFsaWduCTQKKy5Mc2NoZWR1bGVfbWFuZ2xlX2RlYzoK
KwkvLyBpbnZlcnNlIG1peCBjb2x1bW5zCisJCQkJCQkvLyBsZWEJLkxrX2Rrc2QoJXJpcCksJXIx
MQorCXVzaHIJdjEuMTZiLCB2NC4xNmIsICM0CQkvLyB2cHNybGIJJDQsCSV4bW00LAkleG1tMQkj
IDEgPSBoaQorCWFuZAl2NC4xNmIsIHY0LjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTksCSV4
bW00LAkleG1tNAkjIDQgPSBsbworCisJCQkJCQkvLyB2bW92ZHFhCTB4MDAoJXIxMSksCSV4bW0y
CisJdGJsCXYyLjE2Yiwge3YyNC4xNmJ9LCB2NC4xNmIJLy8gdnBzaHVmYgkleG1tNCwJJXhtbTIs
CSV4bW0yCisJCQkJCQkvLyB2bW92ZHFhCTB4MTAoJXIxMSksCSV4bW0zCisJdGJsCXYzLjE2YiwJ
e3YyNS4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW0zCisJZW9yCXYz
LjE2YiwgdjMuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMKKwl0YmwJ
djMuMTZiLCB7djMuMTZifSwgdjkuMTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4bW0zLAkleG1tMwor
CisJCQkJCQkvLyB2bW92ZHFhCTB4MjAoJXIxMSksCSV4bW0yCisJdGJsCXYyLjE2Yiwge3YyNi4x
NmJ9LCB2NC4xNmIJLy8gdnBzaHVmYgkleG1tNCwJJXhtbTIsCSV4bW0yCisJZW9yCXYyLjE2Yiwg
djIuMTZiLCB2My4xNmIJCS8vIHZweG9yCSV4bW0zLAkleG1tMiwJJXhtbTIKKwkJCQkJCS8vIHZt
b3ZkcWEJMHgzMCglcjExKSwJJXhtbTMKKwl0YmwJdjMuMTZiLCB7djI3LjE2Yn0sIHYxLjE2Ygkv
LyB2cHNodWZiCSV4bW0xLAkleG1tMywJJXhtbTMKKwllb3IJdjMuMTZiLCB2My4xNmIsIHYyLjE2
YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW0zLAkleG1tMworCXRibAl2My4xNmIsIHt2My4xNmJ9LCB2
OS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTMsCSV4bW0zCisKKwkJCQkJCS8vIHZtb3ZkcWEJ
MHg0MCglcjExKSwJJXhtbTIKKwl0YmwJdjIuMTZiLCB7djI4LjE2Yn0sIHY0LjE2YgkvLyB2cHNo
dWZiCSV4bW00LAkleG1tMiwJJXhtbTIKKwllb3IJdjIuMTZiLCB2Mi4xNmIsIHYzLjE2YgkJLy8g
dnB4b3IJJXhtbTMsCSV4bW0yLAkleG1tMgorCQkJCQkJLy8gdm1vdmRxYQkweDUwKCVyMTEpLAkl
eG1tMworCXRibAl2My4xNmIsIHt2MjkuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4
bW0zLAkleG1tMworCWVvcgl2My4xNmIsIHYzLjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkleG1tMiwJ
JXhtbTMsCSV4bW0zCisKKwkJCQkJCS8vIHZtb3ZkcWEJMHg2MCglcjExKSwJJXhtbTIKKwl0YmwJ
djIuMTZiLCB7djMwLjE2Yn0sIHY0LjE2YgkvLyB2cHNodWZiCSV4bW00LAkleG1tMiwJJXhtbTIK
Kwl0YmwJdjMuMTZiLCB7djMuMTZifSwgdjkuMTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4bW0zLAkl
eG1tMworCQkJCQkJLy8gdm1vdmRxYQkweDcwKCVyMTEpLAkleG1tNAorCXRibAl2NC4xNmIsIHt2
MzEuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW00LAkleG1tNAorCWxkMQl7djEu
MmR9LCBbeDhdCQkJLy8gdm1vdmRxYQkoJXI4LCVyMTApLAkleG1tMQorCWVvcgl2Mi4xNmIsIHYy
LjE2YiwgdjMuMTZiCQkvLyB2cHhvcgkleG1tMywJJXhtbTIsCSV4bW0yCisJZW9yCXYzLjE2Yiwg
djQuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tNCwJJXhtbTMKKworCXN1Ygl4Miwg
eDIsICMxNgkJCS8vIGFkZAkkLTE2LAklcmR4CisKKy5Mc2NoZWR1bGVfbWFuZ2xlX2JvdGg6CisJ
dGJsCXYzLjE2Yiwge3YzLjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMywJJXht
bTMKKwlhZGQJeDgsIHg4LCAjNjQtMTYJCQkvLyBhZGQJJC0xNiwJJXI4CisJYW5kCXg4LCB4OCwg
I34oMTw8NikJCS8vIGFuZAkkMHgzMCwJJXI4CisJc3QxCXt2My4yZH0sIFt4Ml0JCQkvLyB2bW92
ZHF1CSV4bW0zLAkoJXJkeCkKKwlyZXQKKy5zaXplCV92cGFlc19zY2hlZHVsZV9tYW5nbGUsLi1f
dnBhZXNfc2NoZWR1bGVfbWFuZ2xlCisKKy5nbG9ibAl2cGFlc19zZXRfZW5jcnlwdF9rZXkKKy5o
aWRkZW4JdnBhZXNfc2V0X2VuY3J5cHRfa2V5CisudHlwZQl2cGFlc19zZXRfZW5jcnlwdF9rZXks
JWZ1bmN0aW9uCisuYWxpZ24JNAordnBhZXNfc2V0X2VuY3J5cHRfa2V5OgorCXN0cAl4MjkseDMw
LFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNwLCMwCisJc3RwCWQ4LGQ5LFtzcCwjLTE2XSEJLy8gQUJJ
IHNwZWMgc2F5cyBzbworCisJbHNyCXc5LCB3MSwgIzUJCS8vIHNocgkkNSwlZWF4CisJYWRkCXc5
LCB3OSwgIzUJCS8vICQ1LCVlYXgKKwlzdHIJdzksIFt4MiwjMjQwXQkJLy8gbW92CSVlYXgsMjQw
KCVyZHgpCSMgQUVTX0tFWS0+cm91bmRzID0gbmJpdHMvMzIrNTsKKworCW1vdgl3MywgIzAJCS8v
IG1vdgkkMCwlZWN4CisJbW92CXg4LCAjMHgzMAkJLy8gbW92CSQweDMwLCVyOGQKKwlibAlfdnBh
ZXNfc2NoZWR1bGVfY29yZQorCWVvcgl4MCwgeDAsIHgwCisKKwlsZHAJZDgsZDksW3NwXSwjMTYK
KwlsZHAJeDI5LHgzMCxbc3BdLCMxNgorCXJldAorLnNpemUJdnBhZXNfc2V0X2VuY3J5cHRfa2V5
LC4tdnBhZXNfc2V0X2VuY3J5cHRfa2V5CisKKy5nbG9ibAl2cGFlc19zZXRfZGVjcnlwdF9rZXkK
Ky5oaWRkZW4JdnBhZXNfc2V0X2RlY3J5cHRfa2V5CisudHlwZQl2cGFlc19zZXRfZGVjcnlwdF9r
ZXksJWZ1bmN0aW9uCisuYWxpZ24JNAordnBhZXNfc2V0X2RlY3J5cHRfa2V5OgorCXN0cAl4Mjks
eDMwLFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNwLCMwCisJc3RwCWQ4LGQ5LFtzcCwjLTE2XSEJLy8g
QUJJIHNwZWMgc2F5cyBzbworCisJbHNyCXc5LCB3MSwgIzUJCS8vIHNocgkkNSwlZWF4CisJYWRk
CXc5LCB3OSwgIzUJCS8vICQ1LCVlYXgKKwlzdHIJdzksIFt4MiwjMjQwXQkJLy8gbW92CSVlYXgs
MjQwKCVyZHgpCSMgQUVTX0tFWS0+cm91bmRzID0gbmJpdHMvMzIrNTsKKwlsc2wJdzksIHc5LCAj
NAkJLy8gc2hsCSQ0LCVlYXgKKwlhZGQJeDIsIHgyLCAjMTYJCS8vIGxlYQkxNiglcmR4LCVyYXgp
LCVyZHgKKwlhZGQJeDIsIHgyLCB4OQorCisJbW92CXczLCAjMQkJLy8gbW92CSQxLCVlY3gKKwls
c3IJdzgsIHcxLCAjMQkJLy8gc2hyCSQxLCVyOGQKKwlhbmQJeDgsIHg4LCAjMzIJCS8vIGFuZAkk
MzIsJXI4ZAorCWVvcgl4OCwgeDgsICMzMgkJLy8geG9yCSQzMiwlcjhkCSMgbmJpdHM9PTE5Mj8w
OjMyCisJYmwJX3ZwYWVzX3NjaGVkdWxlX2NvcmUKKworCWxkcAlkOCxkOSxbc3BdLCMxNgorCWxk
cAl4MjkseDMwLFtzcF0sIzE2CisJcmV0Cisuc2l6ZQl2cGFlc19zZXRfZGVjcnlwdF9rZXksLi12
cGFlc19zZXRfZGVjcnlwdF9rZXkKKy5nbG9ibAl2cGFlc19jYmNfZW5jcnlwdAorLmhpZGRlbgl2
cGFlc19jYmNfZW5jcnlwdAorLnR5cGUJdnBhZXNfY2JjX2VuY3J5cHQsJWZ1bmN0aW9uCisuYWxp
Z24JNAordnBhZXNfY2JjX2VuY3J5cHQ6CisJY2J6CXgyLCAuTGNiY19hYm9ydAorCWNtcAl3NSwg
IzAJCQkvLyBjaGVjayBkaXJlY3Rpb24KKwliLmVxCXZwYWVzX2NiY19kZWNyeXB0CisKKwlzdHAJ
eDI5LHgzMCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCisJbW92CXgxNywgeDIJCS8vIHJl
YXNzaWduCisJbW92CXgyLCAgeDMJCS8vIHJlYXNzaWduCisKKwlsZDEJe3YwLjE2Yn0sIFt4NF0J
Ly8gbG9hZCBpdmVjCisJYmwJX3ZwYWVzX2VuY3J5cHRfcHJlaGVhdAorCWIJLkxjYmNfZW5jX2xv
b3AKKworLmFsaWduCTQKKy5MY2JjX2VuY19sb29wOgorCWxkMQl7djcuMTZifSwgW3gwXSwjMTYJ
Ly8gbG9hZCBpbnB1dAorCWVvcgl2Ny4xNmIsIHY3LjE2YiwgdjAuMTZiCS8vIHhvciB3aXRoIGl2
ZWMKKwlibAlfdnBhZXNfZW5jcnlwdF9jb3JlCisJc3QxCXt2MC4xNmJ9LCBbeDFdLCMxNgkvLyBz
YXZlIG91dHB1dAorCXN1YnMJeDE3LCB4MTcsICMxNgorCWIuaGkJLkxjYmNfZW5jX2xvb3AKKwor
CXN0MQl7djAuMTZifSwgW3g0XQkvLyB3cml0ZSBpdmVjCisKKwlsZHAJeDI5LHgzMCxbc3BdLCMx
NgorLkxjYmNfYWJvcnQ6CisJcmV0Cisuc2l6ZQl2cGFlc19jYmNfZW5jcnlwdCwuLXZwYWVzX2Ni
Y19lbmNyeXB0CisKKy50eXBlCXZwYWVzX2NiY19kZWNyeXB0LCVmdW5jdGlvbgorLmFsaWduCTQK
K3ZwYWVzX2NiY19kZWNyeXB0OgorCXN0cAl4MjkseDMwLFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNw
LCMwCisJc3RwCWQ4LGQ5LFtzcCwjLTE2XSEJLy8gQUJJIHNwZWMgc2F5cyBzbworCXN0cAlkMTAs
ZDExLFtzcCwjLTE2XSEKKwlzdHAJZDEyLGQxMyxbc3AsIy0xNl0hCisJc3RwCWQxNCxkMTUsW3Nw
LCMtMTZdIQorCisJbW92CXgxNywgeDIJCS8vIHJlYXNzaWduCisJbW92CXgyLCAgeDMJCS8vIHJl
YXNzaWduCisJbGQxCXt2Ni4xNmJ9LCBbeDRdCS8vIGxvYWQgaXZlYworCWJsCV92cGFlc19kZWNy
eXB0X3ByZWhlYXQKKwl0c3QJeDE3LCAjMTYKKwliLmVxCS5MY2JjX2RlY19sb29wMngKKworCWxk
MQl7djcuMTZifSwgW3gwXSwgIzE2CS8vIGxvYWQgaW5wdXQKKwlibAlfdnBhZXNfZGVjcnlwdF9j
b3JlCisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2Ni4xNmIJLy8geG9yIHdpdGggaXZlYworCW9ycgl2
Ni4xNmIsIHY3LjE2YiwgdjcuMTZiCS8vIG5leHQgaXZlYyB2YWx1ZQorCXN0MQl7djAuMTZifSwg
W3gxXSwgIzE2CisJc3Vicwl4MTcsIHgxNywgIzE2CisJYi5scwkuTGNiY19kZWNfZG9uZQorCisu
YWxpZ24JNAorLkxjYmNfZGVjX2xvb3AyeDoKKwlsZDEJe3YxNC4xNmIsdjE1LjE2Yn0sIFt4MF0s
ICMzMgorCWJsCV92cGFlc19kZWNyeXB0XzJ4CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2Ni4xNmIJ
Ly8geG9yIHdpdGggaXZlYworCWVvcgl2MS4xNmIsIHYxLjE2YiwgdjE0LjE2YgorCW9ycgl2Ni4x
NmIsIHYxNS4xNmIsIHYxNS4xNmIKKwlzdDEJe3YwLjE2Yix2MS4xNmJ9LCBbeDFdLCAjMzIKKwlz
dWJzCXgxNywgeDE3LCAjMzIKKwliLmhpCS5MY2JjX2RlY19sb29wMngKKworLkxjYmNfZGVjX2Rv
bmU6CisJc3QxCXt2Ni4xNmJ9LCBbeDRdCisKKwlsZHAJZDE0LGQxNSxbc3BdLCMxNgorCWxkcAlk
MTIsZDEzLFtzcF0sIzE2CisJbGRwCWQxMCxkMTEsW3NwXSwjMTYKKwlsZHAJZDgsZDksW3NwXSwj
MTYKKwlsZHAJeDI5LHgzMCxbc3BdLCMxNgorCXJldAorLnNpemUJdnBhZXNfY2JjX2RlY3J5cHQs
Li12cGFlc19jYmNfZGVjcnlwdAorLmdsb2JsCXZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzCisu
aGlkZGVuCXZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzCisudHlwZQl2cGFlc19jdHIzMl9lbmNy
eXB0X2Jsb2NrcywlZnVuY3Rpb24KKy5hbGlnbgk0Cit2cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2Nr
czoKKwlzdHAJeDI5LHgzMCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCXN0cAlkOCxkOSxb
c3AsIy0xNl0hCS8vIEFCSSBzcGVjIHNheXMgc28KKwlzdHAJZDEwLGQxMSxbc3AsIy0xNl0hCisJ
c3RwCWQxMixkMTMsW3NwLCMtMTZdIQorCXN0cAlkMTQsZDE1LFtzcCwjLTE2XSEKKworCWNiegl4
MiwgLkxjdHIzMl9kb25lCisKKwkvLyBOb3RlLCB1bmxpa2UgdGhlIG90aGVyIGZ1bmN0aW9ucywg
eDIgaGVyZSBpcyBtZWFzdXJlZCBpbiBibG9ja3MsCisJLy8gbm90IGJ5dGVzLgorCW1vdgl4MTcs
IHgyCisJbW92CXgyLCAgeDMKKworCS8vIExvYWQgdGhlIElWIGFuZCBjb3VudGVyIHBvcnRpb24u
CisJbGRyCXc2LCBbeDQsICMxMl0KKwlsZDEJe3Y3LjE2Yn0sIFt4NF0KKworCWJsCV92cGFlc19l
bmNyeXB0X3ByZWhlYXQKKwl0c3QJeDE3LCAjMQorCXJldgl3NiwgdzYJCS8vIFRoZSBjb3VudGVy
IGlzIGJpZy1lbmRpYW4uCisJYi5lcQkuTGN0cjMyX3ByZXBfbG9vcAorCisJLy8gSGFuZGxlIG9u
ZSBibG9jayBzbyB0aGUgcmVtYWluaW5nIGJsb2NrIGNvdW50IGlzIGV2ZW4gZm9yCisJLy8gX3Zw
YWVzX2VuY3J5cHRfMnguCisJbGQxCXt2Ni4xNmJ9LCBbeDBdLCAjMTYJLy8gLkxvYWQgaW5wdXQg
YWhlYWQgb2YgdGltZQorCWJsCV92cGFlc19lbmNyeXB0X2NvcmUKKwllb3IJdjAuMTZiLCB2MC4x
NmIsIHY2LjE2YgkvLyBYT1IgaW5wdXQgYW5kIHJlc3VsdAorCXN0MQl7djAuMTZifSwgW3gxXSwg
IzE2CisJc3Vicwl4MTcsIHgxNywgIzEKKwkvLyBVcGRhdGUgdGhlIGNvdW50ZXIuCisJYWRkCXc2
LCB3NiwgIzEKKwlyZXYJdzcsIHc2CisJbW92CXY3LnNbM10sIHc3CisJYi5scwkuTGN0cjMyX2Rv
bmUKKworLkxjdHIzMl9wcmVwX2xvb3A6CisJLy8gX3ZwYWVzX2VuY3J5cHRfY29yZSB0YWtlcyBp
dHMgaW5wdXQgZnJvbSB2Nywgd2hpbGUgX3ZwYWVzX2VuY3J5cHRfMngKKwkvLyB1c2VzIHYxNCBh
bmQgdjE1LgorCW1vdgl2MTUuMTZiLCB2Ny4xNmIKKwltb3YJdjE0LjE2YiwgdjcuMTZiCisJYWRk
CXc2LCB3NiwgIzEKKwlyZXYJdzcsIHc2CisJbW92CXYxNS5zWzNdLCB3NworCisuTGN0cjMyX2xv
b3A6CisJbGQxCXt2Ni4xNmIsdjcuMTZifSwgW3gwXSwgIzMyCS8vIC5Mb2FkIGlucHV0IGFoZWFk
IG9mIHRpbWUKKwlibAlfdnBhZXNfZW5jcnlwdF8yeAorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjYu
MTZiCQkvLyBYT1IgaW5wdXQgYW5kIHJlc3VsdAorCWVvcgl2MS4xNmIsIHYxLjE2YiwgdjcuMTZi
CQkvLyBYT1IgaW5wdXQgYW5kIHJlc3VsdCAoIzIpCisJc3QxCXt2MC4xNmIsdjEuMTZifSwgW3gx
XSwgIzMyCisJc3Vicwl4MTcsIHgxNywgIzIKKwkvLyBVcGRhdGUgdGhlIGNvdW50ZXIuCisJYWRk
CXc3LCB3NiwgIzEKKwlhZGQJdzYsIHc2LCAjMgorCXJldgl3NywgdzcKKwltb3YJdjE0LnNbM10s
IHc3CisJcmV2CXc3LCB3NgorCW1vdgl2MTUuc1szXSwgdzcKKwliLmhpCS5MY3RyMzJfbG9vcAor
CisuTGN0cjMyX2RvbmU6CisJbGRwCWQxNCxkMTUsW3NwXSwjMTYKKwlsZHAJZDEyLGQxMyxbc3Bd
LCMxNgorCWxkcAlkMTAsZDExLFtzcF0sIzE2CisJbGRwCWQ4LGQ5LFtzcF0sIzE2CisJbGRwCXgy
OSx4MzAsW3NwXSwjMTYKKwlyZXQKKy5zaXplCXZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzLC4t
dnBhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKKyNlbmRpZgorI2VuZGlmICAvLyAhT1BFTlNTTF9O
T19BU00KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3Rlc3QvdHJhbXBvbGluZS1h
cm12OC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vdGVzdC90cmFtcG9saW5lLWFybXY4LlMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjUyOTZmNjg1ZWJlMmQ2ODA1MTY3ZmJiYzg5NWFlNmE5MDg0YjE5YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3Rlc3QvdHJhbXBvbGluZS1hcm12OC5T
CkBAIC0wLDAgKzEsNjg3IEBACisvLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1p
bGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NTTAorLy8gc291cmNlIHRyZWUu
IERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2Rl
ZmluZSBfX2hhc19mZWF0dXJlKHgpIDAKKyNlbmRpZgorI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5
X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCisjZGVmaW5lIE9QRU5TU0xf
Tk9fQVNNCisjZW5kaWYKKworI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQorI2lmIGRlZmlu
ZWQoX19hYXJjaDY0X18pCisjaWYgZGVmaW5lZChCT1JJTkdTU0xfUFJFRklYKQorI2luY2x1ZGUg
PGJvcmluZ3NzbF9wcmVmaXhfc3ltYm9sc19hc20uaD4KKyNlbmRpZgorLnRleHQKKworLy8gYWJp
X3Rlc3RfdHJhbXBvbGluZSBsb2FkcyBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGZyb20gfHN0YXRl
fCwgY2FsbHMgfGZ1bmN8CisvLyB3aXRoIHxhcmd2fCwgdGhlbiBzYXZlcyB0aGUgY2FsbGVlLXNh
dmVkIHJlZ2lzdGVycyBpbnRvIHxzdGF0ZXwuIEl0IHJldHVybnMKKy8vIHRoZSByZXN1bHQgb2Yg
fGZ1bmN8LiBUaGUgfHVud2luZHwgYXJndW1lbnQgaXMgdW51c2VkLgorLy8gdWludDY0X3QgYWJp
X3Rlc3RfdHJhbXBvbGluZSh2b2lkICgqZnVuYykoLi4uKSwgQ2FsbGVyU3RhdGUgKnN0YXRlLAor
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50NjRfdCAqYXJndiwgc2l6
ZV90IGFyZ2MsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHVud2lu
ZCk7CisudHlwZQlhYmlfdGVzdF90cmFtcG9saW5lLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVz
dF90cmFtcG9saW5lCisuaGlkZGVuCWFiaV90ZXN0X3RyYW1wb2xpbmUKKy5hbGlnbgk0CithYmlf
dGVzdF90cmFtcG9saW5lOgorLkxhYmlfdGVzdF90cmFtcG9saW5lX2JlZ2luOgorCS8vIFN0YWNr
IGxheW91dCAobG93IHRvIGhpZ2ggYWRkcmVzc2VzKQorCS8vICAgeDI5LHgzMCAoMTYgYnl0ZXMp
CisJLy8gICAgZDgtZDE1ICg2NCBieXRlcykKKwkvLyAgIHgxOS14MjggKDgwIGJ5dGVzKQorCS8v
ICAgIHgxICg4IGJ5dGVzKQorCS8vICAgcGFkZGluZyAoOCBieXRlcykKKwlzdHAJeDI5LCB4MzAs
IFtzcCwgIy0xNzZdIQorCW1vdgl4MjksIHNwCisKKwkvLyBTYXZlZCBjYWxsZWUtc2F2ZWQgcmVn
aXN0ZXJzIGFuZCB8c3RhdGV8LgorCXN0cAlkOCwgZDksIFtzcCwgIzE2XQorCXN0cAlkMTAsIGQx
MSwgW3NwLCAjMzJdCisJc3RwCWQxMiwgZDEzLCBbc3AsICM0OF0KKwlzdHAJZDE0LCBkMTUsIFtz
cCwgIzY0XQorCXN0cAl4MTksIHgyMCwgW3NwLCAjODBdCisJc3RwCXgyMSwgeDIyLCBbc3AsICM5
Nl0KKwlzdHAJeDIzLCB4MjQsIFtzcCwgIzExMl0KKwlzdHAJeDI1LCB4MjYsIFtzcCwgIzEyOF0K
KwlzdHAJeDI3LCB4MjgsIFtzcCwgIzE0NF0KKwlzdHIJeDEsIFtzcCwgIzE2MF0KKworCS8vIExv
YWQgcmVnaXN0ZXJzIGZyb20gfHN0YXRlfCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHgyOS4geDI5
IGlzIHRoZQorCS8vIGZyYW1lIHBvaW50ZXIgYW5kIGFsc28gY2FsbGVlLXNhdmVkLCBidXQgQUFQ
Q1M2NCBhbGxvd3MgcGxhdGZvcm1zIHRvCisJLy8gbWFuZGF0ZSB0aGF0IHgyOSBhbHdheXMgcG9p
bnQgdG8gYSBmcmFtZS4gaU9TNjQgZG9lcyBzbywgd2hpY2ggbWVhbnMKKwkvLyB3ZSBjYW5ub3Qg
ZmlsbCB4Mjkgd2l0aCBlbnRyb3B5IHdpdGhvdXQgdmlvbGF0aW5nIEFCSSBydWxlcworCS8vIG91
cnNlbHZlcy4geDI5IGlzIHRlc3RlZCBzZXBhcmF0ZWx5IGJlbG93LgorCWxkcAlkOCwgZDksIFt4
MV0sICMxNgorCWxkcAlkMTAsIGQxMSwgW3gxXSwgIzE2CisJbGRwCWQxMiwgZDEzLCBbeDFdLCAj
MTYKKwlsZHAJZDE0LCBkMTUsIFt4MV0sICMxNgorCWxkcAl4MTksIHgyMCwgW3gxXSwgIzE2CisJ
bGRwCXgyMSwgeDIyLCBbeDFdLCAjMTYKKwlsZHAJeDIzLCB4MjQsIFt4MV0sICMxNgorCWxkcAl4
MjUsIHgyNiwgW3gxXSwgIzE2CisJbGRwCXgyNywgeDI4LCBbeDFdLCAjMTYKKworCS8vIE1vdmUg
cGFyYW1ldGVycyBpbnRvIHRlbXBvcmFyeSByZWdpc3RlcnMuCisJbW92CXg5LCB4MAorCW1vdgl4
MTAsIHgyCisJbW92CXgxMSwgeDMKKworCS8vIExvYWQgcGFyYW1ldGVycyBpbnRvIHJlZ2lzdGVy
cy4KKwljYnoJeDExLCAuTGFyZ3NfZG9uZQorCWxkcgl4MCwgW3gxMF0sICM4CisJc3Vicwl4MTEs
IHgxMSwgIzEKKwliLmVxCS5MYXJnc19kb25lCisJbGRyCXgxLCBbeDEwXSwgIzgKKwlzdWJzCXgx
MSwgeDExLCAjMQorCWIuZXEJLkxhcmdzX2RvbmUKKwlsZHIJeDIsIFt4MTBdLCAjOAorCXN1YnMJ
eDExLCB4MTEsICMxCisJYi5lcQkuTGFyZ3NfZG9uZQorCWxkcgl4MywgW3gxMF0sICM4CisJc3Vi
cwl4MTEsIHgxMSwgIzEKKwliLmVxCS5MYXJnc19kb25lCisJbGRyCXg0LCBbeDEwXSwgIzgKKwlz
dWJzCXgxMSwgeDExLCAjMQorCWIuZXEJLkxhcmdzX2RvbmUKKwlsZHIJeDUsIFt4MTBdLCAjOAor
CXN1YnMJeDExLCB4MTEsICMxCisJYi5lcQkuTGFyZ3NfZG9uZQorCWxkcgl4NiwgW3gxMF0sICM4
CisJc3Vicwl4MTEsIHgxMSwgIzEKKwliLmVxCS5MYXJnc19kb25lCisJbGRyCXg3LCBbeDEwXSwg
IzgKKworLkxhcmdzX2RvbmU6CisJYmxyCXg5CisKKwkvLyBSZWxvYWQgfHN0YXRlfCBhbmQgc3Rv
cmUgcmVnaXN0ZXJzLgorCWxkcgl4MSwgW3NwLCAjMTYwXQorCXN0cAlkOCwgZDksIFt4MV0sICMx
NgorCXN0cAlkMTAsIGQxMSwgW3gxXSwgIzE2CisJc3RwCWQxMiwgZDEzLCBbeDFdLCAjMTYKKwlz
dHAJZDE0LCBkMTUsIFt4MV0sICMxNgorCXN0cAl4MTksIHgyMCwgW3gxXSwgIzE2CisJc3RwCXgy
MSwgeDIyLCBbeDFdLCAjMTYKKwlzdHAJeDIzLCB4MjQsIFt4MV0sICMxNgorCXN0cAl4MjUsIHgy
NiwgW3gxXSwgIzE2CisJc3RwCXgyNywgeDI4LCBbeDFdLCAjMTYKKworCS8vIHxmdW5jfCBpcyBy
ZXF1aXJlZCB0byBwcmVzZXJ2ZSB4MjksIHRoZSBmcmFtZSBwb2ludGVyLiBXZSBjYW5ub3QgbG9h
ZAorCS8vIHJhbmRvbSB2YWx1ZXMgaW50byB4MjkgKHNlZSBjb21tZW50IGFib3ZlKSwgc28gY29t
cGFyZSBpdCBhZ2FpbnN0IHRoZQorCS8vIGV4cGVjdGVkIHZhbHVlIGFuZCB6ZXJvIHRoZSBmaWVs
ZCBvZiB8c3RhdGV8IGlmIGNvcnJ1cHRlZC4KKwltb3YJeDksIHNwCisJY21wCXgyOSwgeDkKKwli
LmVxCS5MeDI5X29rCisJc3RyCXh6ciwgW3gxXQorCisuTHgyOV9vazoKKwkvLyBSZXN0b3JlIGNh
bGxlZS1zYXZlZCByZWdpc3RlcnMuCisJbGRwCWQ4LCBkOSwgW3NwLCAjMTZdCisJbGRwCWQxMCwg
ZDExLCBbc3AsICMzMl0KKwlsZHAJZDEyLCBkMTMsIFtzcCwgIzQ4XQorCWxkcAlkMTQsIGQxNSwg
W3NwLCAjNjRdCisJbGRwCXgxOSwgeDIwLCBbc3AsICM4MF0KKwlsZHAJeDIxLCB4MjIsIFtzcCwg
Izk2XQorCWxkcAl4MjMsIHgyNCwgW3NwLCAjMTEyXQorCWxkcAl4MjUsIHgyNiwgW3NwLCAjMTI4
XQorCWxkcAl4MjcsIHgyOCwgW3NwLCAjMTQ0XQorCisJbGRwCXgyOSwgeDMwLCBbc3BdLCAjMTc2
CisJcmV0Cisuc2l6ZQlhYmlfdGVzdF90cmFtcG9saW5lLC4tYWJpX3Rlc3RfdHJhbXBvbGluZQor
LnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94MCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xv
YmJlcl94MAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3gwCisuYWxpZ24JNAorYWJpX3Rlc3Rf
Y2xvYmJlcl94MDoKKwltb3YJeDAsIHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94
MCwuLWFiaV90ZXN0X2Nsb2JiZXJfeDAKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeDEsICVmdW5j
dGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeDEKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJl
cl94MQorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfeDE6CisJbW92CXgxLCB4enIKKwlyZXQK
Ky5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeDEsLi1hYmlfdGVzdF9jbG9iYmVyX3gxCisudHlwZQlh
YmlfdGVzdF9jbG9iYmVyX3gyLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3gy
CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfeDIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVy
X3gyOgorCW1vdgl4MiwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3gyLC4tYWJp
X3Rlc3RfY2xvYmJlcl94MgorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94MywgJWZ1bmN0aW9uCisu
Z2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94MworLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3gzCisu
YWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl94MzoKKwltb3YJeDMsIHh6cgorCXJldAorLnNpemUJ
YWJpX3Rlc3RfY2xvYmJlcl94MywuLWFiaV90ZXN0X2Nsb2JiZXJfeDMKKy50eXBlCWFiaV90ZXN0
X2Nsb2JiZXJfeDQsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeDQKKy5oaWRk
ZW4JYWJpX3Rlc3RfY2xvYmJlcl94NAorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfeDQ6CisJ
bW92CXg0LCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeDQsLi1hYmlfdGVzdF9j
bG9iYmVyX3g0CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3g1LCAlZnVuY3Rpb24KKy5nbG9ibAlh
YmlfdGVzdF9jbG9iYmVyX3g1CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfeDUKKy5hbGlnbgk0
CithYmlfdGVzdF9jbG9iYmVyX3g1OgorCW1vdgl4NSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVz
dF9jbG9iYmVyX3g1LC4tYWJpX3Rlc3RfY2xvYmJlcl94NQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJl
cl94NiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94NgorLmhpZGRlbglhYmlf
dGVzdF9jbG9iYmVyX3g2CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl94NjoKKwltb3YJeDYs
IHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94NiwuLWFiaV90ZXN0X2Nsb2JiZXJf
eDYKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeDcsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0
X2Nsb2JiZXJfeDcKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94NworLmFsaWduCTQKK2FiaV90
ZXN0X2Nsb2JiZXJfeDc6CisJbW92CXg3LCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2Ji
ZXJfeDcsLi1hYmlfdGVzdF9jbG9iYmVyX3g3CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3g4LCAl
ZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3g4CisuaGlkZGVuCWFiaV90ZXN0X2Ns
b2JiZXJfeDgKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3g4OgorCW1vdgl4OCwgeHpyCisJ
cmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3g4LC4tYWJpX3Rlc3RfY2xvYmJlcl94OAorLnR5
cGUJYWJpX3Rlc3RfY2xvYmJlcl94OSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJl
cl94OQorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3g5CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xv
YmJlcl94OToKKwltb3YJeDksIHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94OSwu
LWFiaV90ZXN0X2Nsb2JiZXJfeDkKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeDEwLCAlZnVuY3Rp
b24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3gxMAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVy
X3gxMAorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfeDEwOgorCW1vdgl4MTAsIHh6cgorCXJl
dAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94MTAsLi1hYmlfdGVzdF9jbG9iYmVyX3gxMAorLnR5
cGUJYWJpX3Rlc3RfY2xvYmJlcl94MTEsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2Ji
ZXJfeDExCisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfeDExCisuYWxpZ24JNAorYWJpX3Rlc3Rf
Y2xvYmJlcl94MTE6CisJbW92CXgxMSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVy
X3gxMSwuLWFiaV90ZXN0X2Nsb2JiZXJfeDExCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3gxMiwg
JWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94MTIKKy5oaWRkZW4JYWJpX3Rlc3Rf
Y2xvYmJlcl94MTIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3gxMjoKKwltb3YJeDEyLCB4
enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeDEyLC4tYWJpX3Rlc3RfY2xvYmJlcl94
MTIKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeDEzLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVz
dF9jbG9iYmVyX3gxMworLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3gxMworLmFsaWduCTQKK2Fi
aV90ZXN0X2Nsb2JiZXJfeDEzOgorCW1vdgl4MTMsIHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3Rf
Y2xvYmJlcl94MTMsLi1hYmlfdGVzdF9jbG9iYmVyX3gxMworLnR5cGUJYWJpX3Rlc3RfY2xvYmJl
cl94MTQsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeDE0CisuaGlkZGVuCWFi
aV90ZXN0X2Nsb2JiZXJfeDE0CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl94MTQ6CisJbW92
CXgxNCwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3gxNCwuLWFiaV90ZXN0X2Ns
b2JiZXJfeDE0CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3gxNSwgJWZ1bmN0aW9uCisuZ2xvYmwJ
YWJpX3Rlc3RfY2xvYmJlcl94MTUKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94MTUKKy5hbGln
bgk0CithYmlfdGVzdF9jbG9iYmVyX3gxNToKKwltb3YJeDE1LCB4enIKKwlyZXQKKy5zaXplCWFi
aV90ZXN0X2Nsb2JiZXJfeDE1LC4tYWJpX3Rlc3RfY2xvYmJlcl94MTUKKy50eXBlCWFiaV90ZXN0
X2Nsb2JiZXJfeDE2LCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3gxNgorLmhp
ZGRlbglhYmlfdGVzdF9jbG9iYmVyX3gxNgorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfeDE2
OgorCW1vdgl4MTYsIHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94MTYsLi1hYmlf
dGVzdF9jbG9iYmVyX3gxNgorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94MTcsICVmdW5jdGlvbgor
Lmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeDE3CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfeDE3
CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl94MTc6CisJbW92CXgxNywgeHpyCisJcmV0Cisu
c2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3gxNywuLWFiaV90ZXN0X2Nsb2JiZXJfeDE3CisudHlwZQlh
YmlfdGVzdF9jbG9iYmVyX3gxOSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94
MTkKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94MTkKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9i
YmVyX3gxOToKKwltb3YJeDE5LCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeDE5
LC4tYWJpX3Rlc3RfY2xvYmJlcl94MTkKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeDIwLCAlZnVu
Y3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3gyMAorLmhpZGRlbglhYmlfdGVzdF9jbG9i
YmVyX3gyMAorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfeDIwOgorCW1vdgl4MjAsIHh6cgor
CXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94MjAsLi1hYmlfdGVzdF9jbG9iYmVyX3gyMAor
LnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94MjEsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Ns
b2JiZXJfeDIxCisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfeDIxCisuYWxpZ24JNAorYWJpX3Rl
c3RfY2xvYmJlcl94MjE6CisJbW92CXgyMSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9i
YmVyX3gyMSwuLWFiaV90ZXN0X2Nsb2JiZXJfeDIxCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3gy
MiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94MjIKKy5oaWRkZW4JYWJpX3Rl
c3RfY2xvYmJlcl94MjIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3gyMjoKKwltb3YJeDIy
LCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeDIyLC4tYWJpX3Rlc3RfY2xvYmJl
cl94MjIKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeDIzLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlf
dGVzdF9jbG9iYmVyX3gyMworLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3gyMworLmFsaWduCTQK
K2FiaV90ZXN0X2Nsb2JiZXJfeDIzOgorCW1vdgl4MjMsIHh6cgorCXJldAorLnNpemUJYWJpX3Rl
c3RfY2xvYmJlcl94MjMsLi1hYmlfdGVzdF9jbG9iYmVyX3gyMworLnR5cGUJYWJpX3Rlc3RfY2xv
YmJlcl94MjQsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeDI0CisuaGlkZGVu
CWFiaV90ZXN0X2Nsb2JiZXJfeDI0CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl94MjQ6CisJ
bW92CXgyNCwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3gyNCwuLWFiaV90ZXN0
X2Nsb2JiZXJfeDI0CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3gyNSwgJWZ1bmN0aW9uCisuZ2xv
YmwJYWJpX3Rlc3RfY2xvYmJlcl94MjUKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94MjUKKy5h
bGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3gyNToKKwltb3YJeDI1LCB4enIKKwlyZXQKKy5zaXpl
CWFiaV90ZXN0X2Nsb2JiZXJfeDI1LC4tYWJpX3Rlc3RfY2xvYmJlcl94MjUKKy50eXBlCWFiaV90
ZXN0X2Nsb2JiZXJfeDI2LCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3gyNgor
LmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3gyNgorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJf
eDI2OgorCW1vdgl4MjYsIHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94MjYsLi1h
YmlfdGVzdF9jbG9iYmVyX3gyNgorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94MjcsICVmdW5jdGlv
bgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeDI3CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJf
eDI3CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl94Mjc6CisJbW92CXgyNywgeHpyCisJcmV0
Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3gyNywuLWFiaV90ZXN0X2Nsb2JiZXJfeDI3CisudHlw
ZQlhYmlfdGVzdF9jbG9iYmVyX3gyOCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJl
cl94MjgKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94MjgKKy5hbGlnbgk0CithYmlfdGVzdF9j
bG9iYmVyX3gyODoKKwltb3YJeDI4LCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJf
eDI4LC4tYWJpX3Rlc3RfY2xvYmJlcl94MjgKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeDI5LCAl
ZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3gyOQorLmhpZGRlbglhYmlfdGVzdF9j
bG9iYmVyX3gyOQorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfeDI5OgorCW1vdgl4MjksIHh6
cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94MjksLi1hYmlfdGVzdF9jbG9iYmVyX3gy
OQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9kMCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3Rf
Y2xvYmJlcl9kMAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2QwCisuYWxpZ24JNAorYWJpX3Rl
c3RfY2xvYmJlcl9kMDoKKwlmbW92CWQwLCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2Ji
ZXJfZDAsLi1hYmlfdGVzdF9jbG9iYmVyX2QwCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxLCAl
ZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX2QxCisuaGlkZGVuCWFiaV90ZXN0X2Ns
b2JiZXJfZDEKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QxOgorCWZtb3YJZDEsIHh6cgor
CXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kMSwuLWFiaV90ZXN0X2Nsb2JiZXJfZDEKKy50
eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDIsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2Ji
ZXJfZDIKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMgorLmFsaWduCTQKK2FiaV90ZXN0X2Ns
b2JiZXJfZDI6CisJZm1vdglkMiwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2Qy
LC4tYWJpX3Rlc3RfY2xvYmJlcl9kMgorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9kMywgJWZ1bmN0
aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMworLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVy
X2QzCisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl9kMzoKKwlmbW92CWQzLCB4enIKKwlyZXQK
Ky5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZDMsLi1hYmlfdGVzdF9jbG9iYmVyX2QzCisudHlwZQlh
YmlfdGVzdF9jbG9iYmVyX2Q0LCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX2Q0
CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfZDQKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVy
X2Q0OgorCWZtb3YJZDQsIHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kNCwuLWFi
aV90ZXN0X2Nsb2JiZXJfZDQKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDUsICVmdW5jdGlvbgor
Lmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfZDUKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kNQor
LmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfZDU6CisJZm1vdglkNSwgeHpyCisJcmV0Cisuc2l6
ZQlhYmlfdGVzdF9jbG9iYmVyX2Q1LC4tYWJpX3Rlc3RfY2xvYmJlcl9kNQorLnR5cGUJYWJpX3Rl
c3RfY2xvYmJlcl9kNiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kNgorLmhp
ZGRlbglhYmlfdGVzdF9jbG9iYmVyX2Q2CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl9kNjoK
KwlmbW92CWQ2LCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZDYsLi1hYmlfdGVz
dF9jbG9iYmVyX2Q2CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2Q3LCAlZnVuY3Rpb24KKy5nbG9i
bAlhYmlfdGVzdF9jbG9iYmVyX2Q3CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfZDcKKy5hbGln
bgk0CithYmlfdGVzdF9jbG9iYmVyX2Q3OgorCWZtb3YJZDcsIHh6cgorCXJldAorLnNpemUJYWJp
X3Rlc3RfY2xvYmJlcl9kNywuLWFiaV90ZXN0X2Nsb2JiZXJfZDcKKy50eXBlCWFiaV90ZXN0X2Ns
b2JiZXJfZDgsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfZDgKKy5oaWRkZW4J
YWJpX3Rlc3RfY2xvYmJlcl9kOAorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfZDg6CisJZm1v
dglkOCwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2Q4LC4tYWJpX3Rlc3RfY2xv
YmJlcl9kOAorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9kOSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJp
X3Rlc3RfY2xvYmJlcl9kOQorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2Q5CisuYWxpZ24JNAor
YWJpX3Rlc3RfY2xvYmJlcl9kOToKKwlmbW92CWQ5LCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0
X2Nsb2JiZXJfZDksLi1hYmlfdGVzdF9jbG9iYmVyX2Q5CisudHlwZQlhYmlfdGVzdF9jbG9iYmVy
X2QxMCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTAKKy5oaWRkZW4JYWJp
X3Rlc3RfY2xvYmJlcl9kMTAKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QxMDoKKwlmbW92
CWQxMCwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QxMCwuLWFiaV90ZXN0X2Ns
b2JiZXJfZDEwCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxMSwgJWZ1bmN0aW9uCisuZ2xvYmwJ
YWJpX3Rlc3RfY2xvYmJlcl9kMTEKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTEKKy5hbGln
bgk0CithYmlfdGVzdF9jbG9iYmVyX2QxMToKKwlmbW92CWQxMSwgeHpyCisJcmV0Cisuc2l6ZQlh
YmlfdGVzdF9jbG9iYmVyX2QxMSwuLWFiaV90ZXN0X2Nsb2JiZXJfZDExCisudHlwZQlhYmlfdGVz
dF9jbG9iYmVyX2QxMiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTIKKy5o
aWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2Qx
MjoKKwlmbW92CWQxMiwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QxMiwuLWFi
aV90ZXN0X2Nsb2JiZXJfZDEyCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxMywgJWZ1bmN0aW9u
CisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTMKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9k
MTMKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QxMzoKKwlmbW92CWQxMywgeHpyCisJcmV0
Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QxMywuLWFiaV90ZXN0X2Nsb2JiZXJfZDEzCisudHlw
ZQlhYmlfdGVzdF9jbG9iYmVyX2QxNCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJl
cl9kMTQKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTQKKy5hbGlnbgk0CithYmlfdGVzdF9j
bG9iYmVyX2QxNDoKKwlmbW92CWQxNCwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVy
X2QxNCwuLWFiaV90ZXN0X2Nsb2JiZXJfZDE0CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxNSwg
JWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTUKKy5oaWRkZW4JYWJpX3Rlc3Rf
Y2xvYmJlcl9kMTUKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QxNToKKwlmbW92CWQxNSwg
eHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QxNSwuLWFiaV90ZXN0X2Nsb2JiZXJf
ZDE1CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxNiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rl
c3RfY2xvYmJlcl9kMTYKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTYKKy5hbGlnbgk0Cith
YmlfdGVzdF9jbG9iYmVyX2QxNjoKKwlmbW92CWQxNiwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVz
dF9jbG9iYmVyX2QxNiwuLWFiaV90ZXN0X2Nsb2JiZXJfZDE2CisudHlwZQlhYmlfdGVzdF9jbG9i
YmVyX2QxNywgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTcKKy5oaWRkZW4J
YWJpX3Rlc3RfY2xvYmJlcl9kMTcKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QxNzoKKwlm
bW92CWQxNywgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QxNywuLWFiaV90ZXN0
X2Nsb2JiZXJfZDE3CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxOCwgJWZ1bmN0aW9uCisuZ2xv
YmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTgKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTgKKy5h
bGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QxODoKKwlmbW92CWQxOCwgeHpyCisJcmV0Cisuc2l6
ZQlhYmlfdGVzdF9jbG9iYmVyX2QxOCwuLWFiaV90ZXN0X2Nsb2JiZXJfZDE4CisudHlwZQlhYmlf
dGVzdF9jbG9iYmVyX2QxOSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTkK
Ky5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTkKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVy
X2QxOToKKwlmbW92CWQxOSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QxOSwu
LWFiaV90ZXN0X2Nsb2JiZXJfZDE5CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QyMCwgJWZ1bmN0
aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMjAKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJl
cl9kMjAKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QyMDoKKwlmbW92CWQyMCwgeHpyCisJ
cmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QyMCwuLWFiaV90ZXN0X2Nsb2JiZXJfZDIwCisu
dHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QyMSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xv
YmJlcl9kMjEKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMjEKKy5hbGlnbgk0CithYmlfdGVz
dF9jbG9iYmVyX2QyMToKKwlmbW92CWQyMSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9i
YmVyX2QyMSwuLWFiaV90ZXN0X2Nsb2JiZXJfZDIxCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2Qy
MiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMjIKKy5oaWRkZW4JYWJpX3Rl
c3RfY2xvYmJlcl9kMjIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QyMjoKKwlmbW92CWQy
MiwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QyMiwuLWFiaV90ZXN0X2Nsb2Ji
ZXJfZDIyCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QyMywgJWZ1bmN0aW9uCisuZ2xvYmwJYWJp
X3Rlc3RfY2xvYmJlcl9kMjMKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMjMKKy5hbGlnbgk0
CithYmlfdGVzdF9jbG9iYmVyX2QyMzoKKwlmbW92CWQyMywgeHpyCisJcmV0Cisuc2l6ZQlhYmlf
dGVzdF9jbG9iYmVyX2QyMywuLWFiaV90ZXN0X2Nsb2JiZXJfZDIzCisudHlwZQlhYmlfdGVzdF9j
bG9iYmVyX2QyNCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMjQKKy5oaWRk
ZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMjQKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QyNDoK
KwlmbW92CWQyNCwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QyNCwuLWFiaV90
ZXN0X2Nsb2JiZXJfZDI0CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QyNSwgJWZ1bmN0aW9uCisu
Z2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMjUKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMjUK
Ky5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QyNToKKwlmbW92CWQyNSwgeHpyCisJcmV0Cisu
c2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QyNSwuLWFiaV90ZXN0X2Nsb2JiZXJfZDI1CisudHlwZQlh
YmlfdGVzdF9jbG9iYmVyX2QyNiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9k
MjYKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMjYKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9i
YmVyX2QyNjoKKwlmbW92CWQyNiwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2Qy
NiwuLWFiaV90ZXN0X2Nsb2JiZXJfZDI2CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QyNywgJWZ1
bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMjcKKy5oaWRkZW4JYWJpX3Rlc3RfY2xv
YmJlcl9kMjcKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QyNzoKKwlmbW92CWQyNywgeHpy
CisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QyNywuLWFiaV90ZXN0X2Nsb2JiZXJfZDI3
CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QyOCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3Rf
Y2xvYmJlcl9kMjgKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMjgKKy5hbGlnbgk0CithYmlf
dGVzdF9jbG9iYmVyX2QyODoKKwlmbW92CWQyOCwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9j
bG9iYmVyX2QyOCwuLWFiaV90ZXN0X2Nsb2JiZXJfZDI4CisudHlwZQlhYmlfdGVzdF9jbG9iYmVy
X2QyOSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMjkKKy5oaWRkZW4JYWJp
X3Rlc3RfY2xvYmJlcl9kMjkKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QyOToKKwlmbW92
CWQyOSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QyOSwuLWFiaV90ZXN0X2Ns
b2JiZXJfZDI5CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QzMCwgJWZ1bmN0aW9uCisuZ2xvYmwJ
YWJpX3Rlc3RfY2xvYmJlcl9kMzAKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMzAKKy5hbGln
bgk0CithYmlfdGVzdF9jbG9iYmVyX2QzMDoKKwlmbW92CWQzMCwgeHpyCisJcmV0Cisuc2l6ZQlh
YmlfdGVzdF9jbG9iYmVyX2QzMCwuLWFiaV90ZXN0X2Nsb2JiZXJfZDMwCisudHlwZQlhYmlfdGVz
dF9jbG9iYmVyX2QzMSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kMzEKKy5o
aWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMzEKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2Qz
MToKKwlmbW92CWQzMSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QzMSwuLWFi
aV90ZXN0X2Nsb2JiZXJfZDMxCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3Y4X3VwcGVyLCAlZnVu
Y3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3Y4X3VwcGVyCisuaGlkZGVuCWFiaV90ZXN0
X2Nsb2JiZXJfdjhfdXBwZXIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3Y4X3VwcGVyOgor
CWZtb3YJdjguZFsxXSwgeHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3Y4X3VwcGVy
LC4tYWJpX3Rlc3RfY2xvYmJlcl92OF91cHBlcgorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl92OV91
cHBlciwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl92OV91cHBlcgorLmhpZGRl
bglhYmlfdGVzdF9jbG9iYmVyX3Y5X3VwcGVyCisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl92
OV91cHBlcjoKKwlmbW92CXY5LmRbMV0sIHh6cgorCXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJl
cl92OV91cHBlciwuLWFiaV90ZXN0X2Nsb2JiZXJfdjlfdXBwZXIKKy50eXBlCWFiaV90ZXN0X2Ns
b2JiZXJfdjEwX3VwcGVyLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3YxMF91
cHBlcgorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3YxMF91cHBlcgorLmFsaWduCTQKK2FiaV90
ZXN0X2Nsb2JiZXJfdjEwX3VwcGVyOgorCWZtb3YJdjEwLmRbMV0sIHh6cgorCXJldAorLnNpemUJ
YWJpX3Rlc3RfY2xvYmJlcl92MTBfdXBwZXIsLi1hYmlfdGVzdF9jbG9iYmVyX3YxMF91cHBlcgor
LnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl92MTFfdXBwZXIsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90
ZXN0X2Nsb2JiZXJfdjExX3VwcGVyCisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfdjExX3VwcGVy
CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl92MTFfdXBwZXI6CisJZm1vdgl2MTEuZFsxXSwg
eHpyCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3YxMV91cHBlciwuLWFiaV90ZXN0X2Ns
b2JiZXJfdjExX3VwcGVyCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3YxMl91cHBlciwgJWZ1bmN0
aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl92MTJfdXBwZXIKKy5oaWRkZW4JYWJpX3Rlc3Rf
Y2xvYmJlcl92MTJfdXBwZXIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3YxMl91cHBlcjoK
KwlmbW92CXYxMi5kWzFdLCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfdjEyX3Vw
cGVyLC4tYWJpX3Rlc3RfY2xvYmJlcl92MTJfdXBwZXIKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJf
djEzX3VwcGVyLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3YxM191cHBlcgor
LmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3YxM191cHBlcgorLmFsaWduCTQKK2FiaV90ZXN0X2Ns
b2JiZXJfdjEzX3VwcGVyOgorCWZtb3YJdjEzLmRbMV0sIHh6cgorCXJldAorLnNpemUJYWJpX3Rl
c3RfY2xvYmJlcl92MTNfdXBwZXIsLi1hYmlfdGVzdF9jbG9iYmVyX3YxM191cHBlcgorLnR5cGUJ
YWJpX3Rlc3RfY2xvYmJlcl92MTRfdXBwZXIsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Ns
b2JiZXJfdjE0X3VwcGVyCisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfdjE0X3VwcGVyCisuYWxp
Z24JNAorYWJpX3Rlc3RfY2xvYmJlcl92MTRfdXBwZXI6CisJZm1vdgl2MTQuZFsxXSwgeHpyCisJ
cmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3YxNF91cHBlciwuLWFiaV90ZXN0X2Nsb2JiZXJf
djE0X3VwcGVyCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3YxNV91cHBlciwgJWZ1bmN0aW9uCisu
Z2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl92MTVfdXBwZXIKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJl
cl92MTVfdXBwZXIKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3YxNV91cHBlcjoKKwlmbW92
CXYxNS5kWzFdLCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfdjE1X3VwcGVyLC4t
YWJpX3Rlc3RfY2xvYmJlcl92MTVfdXBwZXIKKyNlbmRpZgorI2VuZGlmICAvLyAhT1BFTlNTTF9O
T19BU00KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3RoaXJkX3BhcnR5L3Npa2Uv
YXNtL2ZwLWFybXY4LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by90aGlyZF9wYXJ0eS9zaWtlL2Fz
bS9mcC1hcm12OC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhNDlhNDAxMzM0YWRmYjg1MmYyMTQ3ODYwNzFmYzdk
MmVlMzQ2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by90aGlyZF9w
YXJ0eS9zaWtlL2FzbS9mcC1hcm12OC5TCkBAIC0wLDAgKzEsOTk4IEBACisvLyBUaGlzIGZpbGUg
aXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJv
cmluZ1NTTAorLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpZiAhZGVm
aW5lZChfX2hhc19mZWF0dXJlKQorI2RlZmluZSBfX2hhc19mZWF0dXJlKHgpIDAKKyNlbmRpZgor
I2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9O
T19BU00pCisjZGVmaW5lIE9QRU5TU0xfTk9fQVNNCisjZW5kaWYKKworI2lmICFkZWZpbmVkKE9Q
RU5TU0xfTk9fQVNNKQorI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCisjaWYgZGVmaW5lZChCT1JJ
TkdTU0xfUFJFRklYKQorI2luY2x1ZGUgPGJvcmluZ3NzbF9wcmVmaXhfc3ltYm9sc19hc20uaD4K
KyNlbmRpZgorLnNlY3Rpb24JLnJvZGF0YQorCisjIHA0MzQgeCAyCisuTHA0MzR4MjoKKy5xdWFk
CTB4RkZGRkZGRkZGRkZGRkZGRSwgMHhGRkZGRkZGRkZGRkZGRkZGCisucXVhZAkweEZCODJFQ0Y1
QzVGRkZGRkYsIDB4Rjc4Q0I4RjA2MkIxNUQ0NworLnF1YWQJMHhEOUY4QkZBRDAzOEE0MEFDLCAw
eDAwMDQ2ODNFNEUyRUU2ODgKKworIyBwNDM0ICsgMQorLkxwNDM0cDE6CisucXVhZAkweEZEQzE3
NjdBRTMwMDAwMDAsIDB4N0JDNjVDNzgzMTU4QUVBMworLnF1YWQJMHg2Q0ZDNUZENjgxQzUyMDU2
LCAweDAwMDIzNDFGMjcxNzczNDQKKworLnRleHQKKy5nbG9ibAlzaWtlX21wbXVsCisuaGlkZGVu
CXNpa2VfbXBtdWwKKy5hbGlnbgk0CitzaWtlX21wbXVsOgorCXN0cAl4MjksIHgzMCwgW3NwLCMt
OTZdIQorCWFkZAl4MjksIHNwLCAjMAorCXN0cAl4MTksIHgyMCwgW3NwLCMxNl0KKwlzdHAJeDIx
LCB4MjIsIFtzcCwjMzJdCisJc3RwCXgyMywgeDI0LCBbc3AsIzQ4XQorCXN0cAl4MjUsIHgyNiwg
W3NwLCM2NF0KKwlzdHAJeDI3LCB4MjgsIFtzcCwjODBdCisKKwlsZHAJeDMsICB4NCwgW3gwXQor
CWxkcAl4NSwgIHg2LCBbeDAsIzE2XQorCWxkcAl4NywgIHg4LCBbeDAsIzMyXQorCWxkcgl4OSwg
ICAgICBbeDAsIzQ4XQorCWxkcAl4MTAsIHgxMSwgW3gxLCMwXQorCWxkcAl4MTIsIHgxMywgW3gx
LCMxNl0KKwlsZHAJeDE0LCB4MTUsIFt4MSwjMzJdCisJbGRyCXgxNiwgICAgICBbeDEsIzQ4XQor
CisgICAgICAgIC8vIHgzLXg3IDwtIEFIICsgQUwsIHg3IDwtIGNhcnJ5CisJYWRkcwl4MywgeDMs
IHg3CisJYWRjcwl4NCwgeDQsIHg4CisJYWRjcwl4NSwgeDUsIHg5CisJYWRjcwl4NiwgeDYsIHh6
cgorCWFkYwl4NywgeHpyLCB4enIKKworICAgICAgICAvLyB4MTAteDEzIDwtIEJIICsgQkwsIHg4
IDwtIGNhcnJ5CisJYWRkcwl4MTAsIHgxMCwgeDE0CisJYWRjcwl4MTEsIHgxMSwgeDE1CisJYWRj
cwl4MTIsIHgxMiwgeDE2CisJYWRjcwl4MTMsIHgxMywgeHpyCisJYWRjCXg4LCB4enIsIHh6cgor
CisgICAgICAgIC8vIHg5IDwtIGNvbWJpbmVkIGNhcnJ5CisJYW5kCXg5LCB4NywgeDgKKyAgICAg
ICAgLy8geDcteDggPC0gbWFzaworCXN1Ygl4NywgeHpyLCB4NworCXN1Ygl4OCwgeHpyLCB4OAor
CisgICAgICAgIC8vIHgxNS14MTkgPC0gbWFza2VkIChCSCArIEJMKQorCWFuZAl4MTQsIHgxMCwg
eDcKKwlhbmQJeDE1LCB4MTEsIHg3CisJYW5kCXgxNiwgeDEyLCB4NworCWFuZAl4MTcsIHgxMywg
eDcKKworICAgICAgICAvLyB4MjAteDIzIDwtIG1hc2tlZCAoQUggKyBBTCkKKwlhbmQJeDIwLCB4
MywgeDgKKwlhbmQJeDIxLCB4NCwgeDgKKwlhbmQJeDIyLCB4NSwgeDgKKwlhbmQJeDIzLCB4Niwg
eDgKKworICAgICAgICAvLyB4MTUteDE5LCB4NyA8LSBtYXNrZWQgKEFIK0FMKSArIG1hc2tlZCAo
QkgrQkwpLCBzdGVwIDEKKwlhZGRzCXgxNCwgeDE0LCB4MjAKKwlhZGNzCXgxNSwgeDE1LCB4MjEK
KwlhZGNzCXgxNiwgeDE2LCB4MjIKKwlhZGNzCXgxNywgeDE3LCB4MjMKKwlhZGMJeDcsIHg5LCB4
enIKKworICAgICAgICAvLyB4OC14OSx4MTkseDIwLXgyNCA8LSAoQUgrQUwpIHggKEJIK0JMKSwg
bG93IHBhcnQKKwlzdHAJeDMsIHg0LCBbeDIsIzBdCisgICAgICAgICAgICAgICAgLy8gQTAtQTEg
PC0gQUggKyBBTCwgVDAgPC0gbWFzaworCWFkZHMJeDMsIHgzLCB4NQorCWFkY3MJeDQsIHg0LCB4
NgorCWFkYwl4MjUsIHh6ciwgeHpyCisKKyAgICAgICAgLy8gQzYsIFQxIDwtIEJIICsgQkwsIEM3
IDwtIG1hc2sKKwlhZGRzCXgyMywgeDEwLCB4MTIKKwlhZGNzCXgyNiwgeDExLCB4MTMKKwlhZGMJ
eDI0LCB4enIsIHh6cgorCisgICAgICAgIC8vIEMwLUMxIDwtIG1hc2tlZCAoQkggKyBCTCkKKwlz
dWIJeDE5LCB4enIsIHgyNQorCXN1Ygl4MjAsIHh6ciwgeDI0CisJYW5kCXg4LCB4MjMsIHgxOQor
CWFuZAl4OSwgeDI2LCB4MTkKKworICAgICAgICAvLyBDNC1DNSA8LSBtYXNrZWQgKEFIICsgQUwp
LCBUMCA8LSBjb21iaW5lZCBjYXJyeQorCWFuZAl4MjEsIHgzLCB4MjAKKwlhbmQJeDIyLCB4NCwg
eDIwCisJbXVsCXgxOSwgeDMsIHgyMworCW11bAl4MjAsIHgzLCB4MjYKKwlhbmQJeDI1LCB4MjUs
IHgyNAorCisgICAgICAgIC8vIEMwLUMxLCBUMCA8LSAoQUgrQUwpIHggKEJIK0JMKSwgcGFydCAx
CisJYWRkcwl4OCwgeDIxLCB4OAorCXVtdWxoCXgyMSwgeDMsIHgyNgorCWFkY3MJeDksIHgyMiwg
eDkKKwl1bXVsaAl4MjIsIHgzLCB4MjMKKwlhZGMJeDI1LCB4MjUsIHh6cgorCisgICAgICAgIC8v
IEMyLUM1IDwtIChBSCtBTCkgeCAoQkgrQkwpLCBsb3cgcGFydAorCW11bAl4MywgeDQsIHgyMwor
CXVtdWxoCXgyMywgeDQsIHgyMworCWFkZHMJeDIwLCB4MjAsIHgyMgorCWFkYwl4MjEsIHgyMSwg
eHpyCisKKwltdWwJeDI0LCB4NCwgeDI2CisJdW11bGgJeDI2LCB4NCwgeDI2CisJYWRkcwl4MjAs
IHgyMCwgeDMKKwlhZGNzCXgyMSwgeDIxLCB4MjMKKwlhZGMJeDIyLCB4enIsIHh6cgorCisJYWRk
cwl4MjEsIHgyMSwgeDI0CisJYWRjCXgyMiwgeDIyLCB4MjYKKworCWxkcAl4MywgeDQsIFt4Miwj
MF0KKworICAgICAgICAvLyBDMi1DNSwgVDAgPC0gKEFIK0FMKSB4IChCSCtCTCksIGZpbmFsIHBh
cnQKKwlhZGRzCXgyMSwgeDgsIHgyMQorCXVtdWxoCXgyNCwgeDMsIHgxMAorCXVtdWxoCXgyNiwg
eDMsIHgxMQorCWFkY3MJeDIyLCB4OSwgeDIyCisJbXVsCXg4LCB4MywgeDEwCisJbXVsCXg5LCB4
MywgeDExCisJYWRjCXgyNSwgeDI1LCB4enIKKworICAgICAgICAvLyBDMC1DMSwgVDEsIEM3IDwt
IEFMIHggQkwKKwltdWwJeDMsIHg0LCB4MTAKKwl1bXVsaAl4MTAsIHg0LCB4MTAKKwlhZGRzCXg5
LCB4OSwgeDI0CisJYWRjCXgyNiwgeDI2LCB4enIKKworCW11bAl4MjMsIHg0LCB4MTEKKwl1bXVs
aAl4MTEsIHg0LCB4MTEKKwlhZGRzCXg5LCB4OSwgeDMKKwlhZGNzCXgyNiwgeDI2LCB4MTAKKwlh
ZGMJeDI0LCB4enIsIHh6cgorCisJYWRkcwl4MjYsIHgyNiwgeDIzCisJYWRjCXgyNCwgeDI0LCB4
MTEKKworCisgICAgICAgIC8vIEMyLUM1LCBUMCA8LSAoQUgrQUwpIHggKEJIK0JMKSAtIEFMeEJM
CisJbXVsCXgzLCB4NSwgeDEyCisJdW11bGgJeDEwLCB4NSwgeDEyCisJc3Vicwl4MTksIHgxOSwg
eDgKKwlzYmNzCXgyMCwgeDIwLCB4OQorCXNiY3MJeDIxLCB4MjEsIHgyNgorCW11bAl4NCwgeDUs
IHgxMworCXVtdWxoCXgyMywgeDUsIHgxMworCXNiY3MJeDIyLCB4MjIsIHgyNAorCXNiYwl4MjUs
IHgyNSwgeHpyCisKKyAgICAgICAgLy8gQTAsIEExLCBDNiwgQjAgPC0gQUggeCBCSAorCW11bAl4
NSwgeDYsIHgxMgorCXVtdWxoCXgxMiwgeDYsIHgxMgorCWFkZHMJeDQsIHg0LCB4MTAKKwlhZGMJ
eDIzLCB4MjMsIHh6cgorCisJbXVsCXgxMSwgeDYsIHgxMworCXVtdWxoCXgxMywgeDYsIHgxMwor
CWFkZHMJeDQsIHg0LCB4NQorCWFkY3MJeDIzLCB4MjMsIHgxMgorCWFkYwl4MTAsIHh6ciwgeHpy
CisKKwlhZGRzCXgyMywgeDIzLCB4MTEKKwlhZGMJeDEwLCB4MTAsIHgxMworCisKKyAgICAgICAg
Ly8gQzItQzUsIFQwIDwtIChBSCtBTCkgeCAoQkgrQkwpIC0gQUx4QkwgLSBBSHhCSAorCXN1YnMJ
eDE5LCB4MTksIHgzCisJc2Jjcwl4MjAsIHgyMCwgeDQKKwlzYmNzCXgyMSwgeDIxLCB4MjMKKwlz
YmNzCXgyMiwgeDIyLCB4MTAKKwlzYmMJeDI1LCB4MjUsIHh6cgorCisJYWRkcwl4MTksIHgxOSwg
eDI2CisJYWRjcwl4MjAsIHgyMCwgeDI0CisJYWRjcwl4MjEsIHgyMSwgeDMKKwlhZGNzCXgyMiwg
eDIyLCB4NAorCWFkY3MJeDIzLCB4MjUsIHgyMworCWFkYwl4MjQsIHgxMCwgeHpyCisKKworICAg
ICAgICAvLyB4MTUteDE5LCB4NyA8LSAoQUgrQUwpIHggKEJIK0JMKSwgZmluYWwgc3RlcAorCWFk
ZHMJeDE0LCB4MTQsIHgyMQorCWFkY3MJeDE1LCB4MTUsIHgyMgorCWFkY3MJeDE2LCB4MTYsIHgy
MworCWFkY3MJeDE3LCB4MTcsIHgyNAorCWFkYwl4NywgeDcsIHh6cgorCisgICAgICAgIC8vIExv
YWQgQUwKKwlsZHAJeDMsIHg0LCBbeDBdCisJbGRwCXg1LCB4NiwgW3gwLCMxNl0KKyAgICAgICAg
Ly8gTG9hZCBCTAorCWxkcAl4MTAsIHgxMSwgW3gxLCMwXQorCWxkcAl4MTIsIHgxMywgW3gxLCMx
Nl0KKworICAgICAgICAvLyBUZW1wb3JhcmlseSBzdG9yZSB4OCBpbiB4MgorCXN0cAl4OCwgeDks
IFt4MiwjMF0KKyAgICAgICAgLy8geDIxLXgyOCA8LSBBTCB4IEJMCisgICAgICAgICAgICAgICAg
Ly8gQTAtQTEgPC0gQUggKyBBTCwgVDAgPC0gbWFzaworCWFkZHMJeDMsIHgzLCB4NQorCWFkY3MJ
eDQsIHg0LCB4NgorCWFkYwl4OCwgeHpyLCB4enIKKworICAgICAgICAvLyBDNiwgVDEgPC0gQkgg
KyBCTCwgQzcgPC0gbWFzaworCWFkZHMJeDI3LCB4MTAsIHgxMgorCWFkY3MJeDksIHgxMSwgeDEz
CisJYWRjCXgyOCwgeHpyLCB4enIKKworICAgICAgICAvLyBDMC1DMSA8LSBtYXNrZWQgKEJIICsg
QkwpCisJc3ViCXgyMywgeHpyLCB4OAorCXN1Ygl4MjQsIHh6ciwgeDI4CisJYW5kCXgyMSwgeDI3
LCB4MjMKKwlhbmQJeDIyLCB4OSwgeDIzCisKKyAgICAgICAgLy8gQzQtQzUgPC0gbWFza2VkIChB
SCArIEFMKSwgVDAgPC0gY29tYmluZWQgY2FycnkKKwlhbmQJeDI1LCB4MywgeDI0CisJYW5kCXgy
NiwgeDQsIHgyNAorCW11bAl4MjMsIHgzLCB4MjcKKwltdWwJeDI0LCB4MywgeDkKKwlhbmQJeDgs
IHg4LCB4MjgKKworICAgICAgICAvLyBDMC1DMSwgVDAgPC0gKEFIK0FMKSB4IChCSCtCTCksIHBh
cnQgMQorCWFkZHMJeDIxLCB4MjUsIHgyMQorCXVtdWxoCXgyNSwgeDMsIHg5CisJYWRjcwl4MjIs
IHgyNiwgeDIyCisJdW11bGgJeDI2LCB4MywgeDI3CisJYWRjCXg4LCB4OCwgeHpyCisKKyAgICAg
ICAgLy8gQzItQzUgPC0gKEFIK0FMKSB4IChCSCtCTCksIGxvdyBwYXJ0CisJbXVsCXgzLCB4NCwg
eDI3CisJdW11bGgJeDI3LCB4NCwgeDI3CisJYWRkcwl4MjQsIHgyNCwgeDI2CisJYWRjCXgyNSwg
eDI1LCB4enIKKworCW11bAl4MjgsIHg0LCB4OQorCXVtdWxoCXg5LCB4NCwgeDkKKwlhZGRzCXgy
NCwgeDI0LCB4MworCWFkY3MJeDI1LCB4MjUsIHgyNworCWFkYwl4MjYsIHh6ciwgeHpyCisKKwlh
ZGRzCXgyNSwgeDI1LCB4MjgKKwlhZGMJeDI2LCB4MjYsIHg5CisKKwlsZHAJeDMsIHg0LCBbeDAs
IzBdCisKKyAgICAgICAgLy8gQzItQzUsIFQwIDwtIChBSCtBTCkgeCAoQkgrQkwpLCBmaW5hbCBw
YXJ0CisJYWRkcwl4MjUsIHgyMSwgeDI1CisJdW11bGgJeDI4LCB4MywgeDEwCisJdW11bGgJeDks
IHgzLCB4MTEKKwlhZGNzCXgyNiwgeDIyLCB4MjYKKwltdWwJeDIxLCB4MywgeDEwCisJbXVsCXgy
MiwgeDMsIHgxMQorCWFkYwl4OCwgeDgsIHh6cgorCisgICAgICAgIC8vIEMwLUMxLCBUMSwgQzcg
PC0gQUwgeCBCTAorCW11bAl4MywgeDQsIHgxMAorCXVtdWxoCXgxMCwgeDQsIHgxMAorCWFkZHMJ
eDIyLCB4MjIsIHgyOAorCWFkYwl4OSwgeDksIHh6cgorCisJbXVsCXgyNywgeDQsIHgxMQorCXVt
dWxoCXgxMSwgeDQsIHgxMQorCWFkZHMJeDIyLCB4MjIsIHgzCisJYWRjcwl4OSwgeDksIHgxMAor
CWFkYwl4MjgsIHh6ciwgeHpyCisKKwlhZGRzCXg5LCB4OSwgeDI3CisJYWRjCXgyOCwgeDI4LCB4
MTEKKworCisgICAgICAgIC8vIEMyLUM1LCBUMCA8LSAoQUgrQUwpIHggKEJIK0JMKSAtIEFMeEJM
CisJbXVsCXgzLCB4NSwgeDEyCisJdW11bGgJeDEwLCB4NSwgeDEyCisJc3Vicwl4MjMsIHgyMywg
eDIxCisJc2Jjcwl4MjQsIHgyNCwgeDIyCisJc2Jjcwl4MjUsIHgyNSwgeDkKKwltdWwJeDQsIHg1
LCB4MTMKKwl1bXVsaAl4MjcsIHg1LCB4MTMKKwlzYmNzCXgyNiwgeDI2LCB4MjgKKwlzYmMJeDgs
IHg4LCB4enIKKworICAgICAgICAvLyBBMCwgQTEsIEM2LCBCMCA8LSBBSCB4IEJICisJbXVsCXg1
LCB4NiwgeDEyCisJdW11bGgJeDEyLCB4NiwgeDEyCisJYWRkcwl4NCwgeDQsIHgxMAorCWFkYwl4
MjcsIHgyNywgeHpyCisKKwltdWwJeDExLCB4NiwgeDEzCisJdW11bGgJeDEzLCB4NiwgeDEzCisJ
YWRkcwl4NCwgeDQsIHg1CisJYWRjcwl4MjcsIHgyNywgeDEyCisJYWRjCXgxMCwgeHpyLCB4enIK
KworCWFkZHMJeDI3LCB4MjcsIHgxMQorCWFkYwl4MTAsIHgxMCwgeDEzCisKKworICAgICAgICAv
LyBDMi1DNSwgVDAgPC0gKEFIK0FMKSB4IChCSCtCTCkgLSBBTHhCTCAtIEFIeEJICisJc3Vicwl4
MjMsIHgyMywgeDMKKwlzYmNzCXgyNCwgeDI0LCB4NAorCXNiY3MJeDI1LCB4MjUsIHgyNworCXNi
Y3MJeDI2LCB4MjYsIHgxMAorCXNiYwl4OCwgeDgsIHh6cgorCisJYWRkcwl4MjMsIHgyMywgeDkK
KwlhZGNzCXgyNCwgeDI0LCB4MjgKKwlhZGNzCXgyNSwgeDI1LCB4MworCWFkY3MJeDI2LCB4MjYs
IHg0CisJYWRjcwl4MjcsIHg4LCB4MjcKKwlhZGMJeDI4LCB4MTAsIHh6cgorCisgICAgICAgIC8v
IFJlc3RvcmUgeDgKKwlsZHAJeDgsIHg5LCBbeDIsIzBdCisKKyAgICAgICAgLy8geDgteDEwLHgy
MCx4MTUteDE3LHgxOSA8LSBtYXNrZCAoQUgrQUwpIHggKEJIK0JMKSAtIEFMeEJMCisJc3Vicwl4
OCwgeDgsIHgyMQorCXNiY3MJeDksIHg5LCB4MjIKKwlzYmNzCXgxOSwgeDE5LCB4MjMKKwlzYmNz
CXgyMCwgeDIwLCB4MjQKKwlzYmNzCXgxNCwgeDE0LCB4MjUKKwlzYmNzCXgxNSwgeDE1LCB4MjYK
KwlzYmNzCXgxNiwgeDE2LCB4MjcKKwlzYmNzCXgxNywgeDE3LCB4MjgKKwlzYmMJeDcsIHg3LCB4
enIKKworICAgICAgICAvLyBTdG9yZSBBTHhCTCwgbG93CisJc3RwCXgyMSwgeDIyLCBbeDJdCisJ
c3RwCXgyMywgeDI0LCBbeDIsIzE2XQorCisgICAgICAgIC8vIExvYWQgQUgKKwlsZHAJeDMsIHg0
LCBbeDAsIzMyXQorCWxkcgl4NSwgICAgIFt4MCwjNDhdCisgICAgICAgIC8vIExvYWQgQkgKKwls
ZHAJeDEwLCB4MTEsIFt4MSwjMzJdCisJbGRyCXgxMiwgICAgICBbeDEsIzQ4XQorCisJYWRkcwl4
OCwgIHg4LCB4MjUKKwlhZGNzCXg5LCAgeDksIHgyNgorCWFkY3MJeDE5LCB4MTksIHgyNworCWFk
Y3MJeDIwLCB4MjAsIHgyOAorCWFkYwl4MSwgeHpyLCB4enIKKworCWFkZAl4MCwgeDAsICMzMgor
ICAgICAgICAvLyBUZW1wb3JhcmlseSBzdG9yZSB4OCx4OSBpbiB4MgorCXN0cAl4OCx4OSwgW3gy
LCMzMl0KKyAgICAgICAgLy8geDIxLXgyOCA8LSBBSCB4IEJICisKKyAgICAgICAgLy8gQTAgKiBC
MAorCW11bAl4MjEsIHgzLCB4MTAgIC8vIEMwCisJdW11bGgJeDI0LCB4MywgeDEwCisKKyAgICAg
ICAgLy8gQTAgKiBCMQorCW11bAl4MjIsIHgzLCB4MTEKKwl1bXVsaAl4MjMsIHgzLCB4MTEKKwor
ICAgICAgICAvLyBBMSAqIEIwCisJbXVsCXg4LCB4NCwgeDEwCisJdW11bGgJeDksIHg0LCB4MTAK
KwlhZGRzCXgyMiwgeDIyLCB4MjQKKwlhZGMJeDIzLCB4MjMsIHh6cgorCisgICAgICAgIC8vIEEw
ICogQjIKKwltdWwJeDI3LCB4MywgeDEyCisJdW11bGgJeDI4LCB4MywgeDEyCisJYWRkcwl4MjIs
IHgyMiwgeDggIC8vIEMxCisJYWRjcwl4MjMsIHgyMywgeDkKKwlhZGMJeDI0LCB4enIsIHh6cgor
CisgICAgICAgIC8vIEEyICogQjAKKwltdWwJeDgsIHg1LCB4MTAKKwl1bXVsaAl4MjUsIHg1LCB4
MTAKKwlhZGRzCXgyMywgeDIzLCB4MjcKKwlhZGNzCXgyNCwgeDI0LCB4MjUKKwlhZGMJeDI1LCB4
enIsIHh6cgorCisgICAgICAgIC8vIEExICogQjEKKwltdWwJeDI3LCB4NCwgeDExCisJdW11bGgJ
eDksIHg0LCB4MTEKKwlhZGRzCXgyMywgeDIzLCB4OAorCWFkY3MJeDI0LCB4MjQsIHgyOAorCWFk
Ywl4MjUsIHgyNSwgeHpyCisKKyAgICAgICAgLy8gQTEgKiBCMgorCW11bAl4OCwgeDQsIHgxMgor
CXVtdWxoCXgyOCwgeDQsIHgxMgorCWFkZHMJeDIzLCB4MjMsIHgyNyAvLyBDMgorCWFkY3MJeDI0
LCB4MjQsIHg5CisJYWRjCXgyNSwgeDI1LCB4enIKKworICAgICAgICAvLyBBMiAqIEIxCisJbXVs
CXgyNywgeDUsIHgxMQorCXVtdWxoCXg5LCB4NSwgeDExCisJYWRkcwl4MjQsIHgyNCwgeDgKKwlh
ZGNzCXgyNSwgeDI1LCB4MjgKKwlhZGMJeDI2LCB4enIsIHh6cgorCisgICAgICAgIC8vIEEyICog
QjIKKwltdWwJeDgsIHg1LCB4MTIKKwl1bXVsaAl4MjgsIHg1LCB4MTIKKwlhZGRzCXgyNCwgeDI0
LCB4MjcgLy8gQzMKKwlhZGNzCXgyNSwgeDI1LCB4OQorCWFkYwl4MjYsIHgyNiwgeHpyCisKKwlh
ZGRzCXgyNSwgeDI1LCB4OCAvLyBDNAorCWFkYwl4MjYsIHgyNiwgeDI4IC8vIEM1CisKKyAgICAg
ICAgLy8gUmVzdG9yZSB4OCx4OQorCWxkcAl4OCx4OSwgW3gyLCMzMl0KKworCW5lZwl4MSwgeDEK
KworICAgICAgICAvLyB4OC14OSx4MTkseDIwLHgxNC14MTcgPC0gKEFIK0FMKSB4IChCSCtCTCkg
LSBBTHhCTCAtIEFIeEJICisJc3Vicwl4OCwgeDgsIHgyMQorCXNiY3MJeDksIHg5LCB4MjIKKwlz
YmNzCXgxOSwgeDE5LCB4MjMKKwlzYmNzCXgyMCwgeDIwLCB4MjQKKwlzYmNzCXgxNCwgeDE0LCB4
MjUKKwlzYmNzCXgxNSwgeDE1LCB4MjYKKwlzYmNzCXgxNiwgeDE2LCB4enIKKwlzYmNzCXgxNywg
eDE3LCB4enIKKwlzYmMJeDcsIHg3LCB4enIKKworICAgICAgICAvLyBTdG9yZSAoQUgrQUwpIHgg
KEJIK0JMKSAtIEFMeEJMIC0gQUh4QkgsIGxvdworCXN0cAl4OCwgIHg5LCBbeDIsIzMyXQorCXN0
cAl4MTksIHgyMCwgW3gyLCM0OF0KKworCWFkZHMJeDEsICB4MSwgIzEKKwlhZGNzCXgxNCwgeDE0
LCB4MjEKKwlhZGNzCXgxNSwgeDE1LCB4MjIKKwlhZGNzCXgxNiwgeDE2LCB4MjMKKwlhZGNzCXgx
NywgeDE3LCB4MjQKKwlhZGNzCXgyNSwgIHg3LCB4MjUKKwlhZGMJeDI2LCB4MjYsIHh6cgorCisJ
c3RwCXgxNCwgeDE1LCBbeDIsIzY0XQorCXN0cAl4MTYsIHgxNywgW3gyLCM4MF0KKwlzdHAJeDI1
LCB4MjYsIFt4MiwjOTZdCisKKwlsZHAJeDE5LCB4MjAsIFt4MjksIzE2XQorCWxkcAl4MjEsIHgy
MiwgW3gyOSwjMzJdCisJbGRwCXgyMywgeDI0LCBbeDI5LCM0OF0KKwlsZHAJeDI1LCB4MjYsIFt4
MjksIzY0XQorCWxkcAl4MjcsIHgyOCwgW3gyOSwjODBdCisJbGRwCXgyOSwgeDMwLCBbc3BdLCM5
NgorCXJldAorLmdsb2JsCXNpa2VfZnByZGMKKy5oaWRkZW4Jc2lrZV9mcHJkYworLmFsaWduCTQK
K3Npa2VfZnByZGM6CisJc3RwCXgyOSwgeDMwLCBbc3AsICMtOTZdIQorCWFkZAl4MjksIHNwLCB4
enIKKwlzdHAJeDE5LCB4MjAsIFtzcCwjMTZdCisJc3RwCXgyMSwgeDIyLCBbc3AsIzMyXQorCXN0
cAl4MjMsIHgyNCwgW3NwLCM0OF0KKwlzdHAJeDI1LCB4MjYsIFtzcCwjNjRdCisJc3RwCXgyNywg
eDI4LCBbc3AsIzgwXQorCisJbGRwCXgyLCB4MywgW3gwLCMwXSAgICAgICAvLyBhWzAtMV0KKwor
ICAgICAgICAvLyBMb2FkIHRoZSBwcmltZSBjb25zdGFudAorCWFkcnAJeDI2LCAuTHA0MzRwMQor
CWFkZAl4MjYsIHgyNiwgOmxvMTI6LkxwNDM0cDEKKwlsZHAJeDIzLCB4MjQsIFt4MjYsICMweDBd
CisJbGRwCXgyNSwgeDI2LCBbeDI2LCMweDEwXQorCisgICAgICAgIC8vIGFbMC0xXSAqIHA0MzQr
MQorCW11bAl4NCwgeDIsIHgyMyAgLy8gQzAKKwl1bXVsaAl4NywgeDIsIHgyMworCisJbXVsCXg1
LCB4MiwgeDI0CisJdW11bGgJeDYsIHgyLCB4MjQKKworCW11bAl4MTAsIHgzLCB4MjMKKwl1bXVs
aAl4MTEsIHgzLCB4MjMKKwlhZGRzCXg1LCB4NSwgeDcKKwlhZGMJeDYsIHg2LCB4enIKKworCW11
bAl4MjcsIHgyLCB4MjUKKwl1bXVsaAl4MjgsIHgyLCB4MjUKKwlhZGRzCXg1LCB4NSwgeDEwICAv
LyBDMQorCWFkY3MJeDYsIHg2LCB4MTEKKwlhZGMJeDcsIHh6ciwgeHpyCisKKwltdWwJeDEwLCB4
MywgeDI0CisJdW11bGgJeDExLCB4MywgeDI0CisJYWRkcwl4NiwgeDYsIHgyNworCWFkY3MJeDcs
IHg3LCB4MjgKKwlhZGMJeDgsIHh6ciwgeHpyCisKKwltdWwJeDI3LCB4MiwgeDI2CisJdW11bGgJ
eDI4LCB4MiwgeDI2CisJYWRkcwl4NiwgeDYsIHgxMCAgLy8gQzIKKwlhZGNzCXg3LCB4NywgeDEx
CisJYWRjCXg4LCB4OCwgeHpyCisKKwltdWwJeDEwLCB4MywgeDI1CisJdW11bGgJeDExLCB4Mywg
eDI1CisJYWRkcwl4NywgeDcsIHgyNworCWFkY3MJeDgsIHg4LCB4MjgKKwlhZGMJeDksIHh6ciwg
eHpyCisKKwltdWwJeDI3LCB4MywgeDI2CisJdW11bGgJeDI4LCB4MywgeDI2CisJYWRkcwl4Nywg
eDcsIHgxMCAgLy8gQzMKKwlhZGNzCXg4LCB4OCwgeDExCisJYWRjCXg5LCB4OSwgeHpyCisJYWRk
cwl4OCwgeDgsIHgyNyAgLy8gQzQKKwlhZGMJeDksIHg5LCB4MjggIC8vIEM1CisKKworCisJbGRw
CXgxMCwgeDExLCBbeDAsICMweDE4XQorCWxkcAl4MTIsIHgxMywgW3gwLCAjMHgyOF0KKwlsZHAJ
eDE0LCB4MTUsIFt4MCwgIzB4MzhdCisJbGRwCXgxNiwgeDE3LCBbeDAsICMweDQ4XQorCWxkcAl4
MTksIHgyMCwgW3gwLCAjMHg1OF0KKwlsZHIJeDIxLCAgICAgIFt4MCwgIzB4NjhdCisKKwlhZGRz
CXgxMCwgeDEwLCB4NAorCWFkY3MJeDExLCB4MTEsIHg1CisJYWRjcwl4MTIsIHgxMiwgeDYKKwlh
ZGNzCXgxMywgeDEzLCB4NworCWFkY3MJeDE0LCB4MTQsIHg4CisJYWRjcwl4MTUsIHgxNSwgeDkK
KwlhZGNzCXgyMiwgeDE2LCB4enIKKwlhZGNzCXgxNywgeDE3LCB4enIKKwlhZGNzCXgxOSwgeDE5
LCB4enIKKwlhZGNzCXgyMCwgeDIwLCB4enIKKwlhZGMJeDIxLCB4MjEsIHh6cgorCisJbGRyCXgy
LCAgW3gwLCMweDEwXSAgICAgICAvLyBhWzJdCisgICAgICAgIC8vIGFbMi0zXSAqIHA0MzQrMQor
CW11bAl4NCwgeDIsIHgyMyAgLy8gQzAKKwl1bXVsaAl4NywgeDIsIHgyMworCisJbXVsCXg1LCB4
MiwgeDI0CisJdW11bGgJeDYsIHgyLCB4MjQKKworCW11bAl4MCwgeDEwLCB4MjMKKwl1bXVsaAl4
MywgeDEwLCB4MjMKKwlhZGRzCXg1LCB4NSwgeDcKKwlhZGMJeDYsIHg2LCB4enIKKworCW11bAl4
MjcsIHgyLCB4MjUKKwl1bXVsaAl4MjgsIHgyLCB4MjUKKwlhZGRzCXg1LCB4NSwgeDAgIC8vIEMx
CisJYWRjcwl4NiwgeDYsIHgzCisJYWRjCXg3LCB4enIsIHh6cgorCisJbXVsCXgwLCB4MTAsIHgy
NAorCXVtdWxoCXgzLCB4MTAsIHgyNAorCWFkZHMJeDYsIHg2LCB4MjcKKwlhZGNzCXg3LCB4Nywg
eDI4CisJYWRjCXg4LCB4enIsIHh6cgorCisJbXVsCXgyNywgeDIsIHgyNgorCXVtdWxoCXgyOCwg
eDIsIHgyNgorCWFkZHMJeDYsIHg2LCB4MCAgLy8gQzIKKwlhZGNzCXg3LCB4NywgeDMKKwlhZGMJ
eDgsIHg4LCB4enIKKworCW11bAl4MCwgeDEwLCB4MjUKKwl1bXVsaAl4MywgeDEwLCB4MjUKKwlh
ZGRzCXg3LCB4NywgeDI3CisJYWRjcwl4OCwgeDgsIHgyOAorCWFkYwl4OSwgeHpyLCB4enIKKwor
CW11bAl4MjcsIHgxMCwgeDI2CisJdW11bGgJeDI4LCB4MTAsIHgyNgorCWFkZHMJeDcsIHg3LCB4
MCAgLy8gQzMKKwlhZGNzCXg4LCB4OCwgeDMKKwlhZGMJeDksIHg5LCB4enIKKwlhZGRzCXg4LCB4
OCwgeDI3ICAvLyBDNAorCWFkYwl4OSwgeDksIHgyOCAgLy8gQzUKKworCisKKwlhZGRzCXgxMiwg
eDEyLCB4NAorCWFkY3MJeDEzLCB4MTMsIHg1CisJYWRjcwl4MTQsIHgxNCwgeDYKKwlhZGNzCXgx
NSwgeDE1LCB4NworCWFkY3MJeDE2LCB4MjIsIHg4CisJYWRjcwl4MTcsIHgxNywgeDkKKwlhZGNz
CXgyMiwgeDE5LCB4enIKKwlhZGNzCXgyMCwgeDIwLCB4enIKKwlhZGMJeDIxLCB4MjEsIHh6cgor
CisJbXVsCXg0LCB4MTEsIHgyMyAgLy8gQzAKKwl1bXVsaAl4NywgeDExLCB4MjMKKworCW11bAl4
NSwgeDExLCB4MjQKKwl1bXVsaAl4NiwgeDExLCB4MjQKKworCW11bAl4MTAsIHgxMiwgeDIzCisJ
dW11bGgJeDMsIHgxMiwgeDIzCisJYWRkcwl4NSwgeDUsIHg3CisJYWRjCXg2LCB4NiwgeHpyCisK
KwltdWwJeDI3LCB4MTEsIHgyNQorCXVtdWxoCXgyOCwgeDExLCB4MjUKKwlhZGRzCXg1LCB4NSwg
eDEwICAvLyBDMQorCWFkY3MJeDYsIHg2LCB4MworCWFkYwl4NywgeHpyLCB4enIKKworCW11bAl4
MTAsIHgxMiwgeDI0CisJdW11bGgJeDMsIHgxMiwgeDI0CisJYWRkcwl4NiwgeDYsIHgyNworCWFk
Y3MJeDcsIHg3LCB4MjgKKwlhZGMJeDgsIHh6ciwgeHpyCisKKwltdWwJeDI3LCB4MTEsIHgyNgor
CXVtdWxoCXgyOCwgeDExLCB4MjYKKwlhZGRzCXg2LCB4NiwgeDEwICAvLyBDMgorCWFkY3MJeDcs
IHg3LCB4MworCWFkYwl4OCwgeDgsIHh6cgorCisJbXVsCXgxMCwgeDEyLCB4MjUKKwl1bXVsaAl4
MywgeDEyLCB4MjUKKwlhZGRzCXg3LCB4NywgeDI3CisJYWRjcwl4OCwgeDgsIHgyOAorCWFkYwl4
OSwgeHpyLCB4enIKKworCW11bAl4MjcsIHgxMiwgeDI2CisJdW11bGgJeDI4LCB4MTIsIHgyNgor
CWFkZHMJeDcsIHg3LCB4MTAgIC8vIEMzCisJYWRjcwl4OCwgeDgsIHgzCisJYWRjCXg5LCB4OSwg
eHpyCisJYWRkcwl4OCwgeDgsIHgyNyAgLy8gQzQKKwlhZGMJeDksIHg5LCB4MjggIC8vIEM1CisK
KworCWFkZHMJeDE0LCB4MTQsIHg0CisJYWRjcwl4MTUsIHgxNSwgeDUKKwlhZGNzCXgxNiwgeDE2
LCB4NgorCWFkY3MJeDE3LCB4MTcsIHg3CisJYWRjcwl4MTksIHgyMiwgeDgKKwlhZGNzCXgyMCwg
eDIwLCB4OQorCWFkYwl4MjIsIHgyMSwgeHpyCisKKwlzdHAJeDE0LCB4MTUsIFt4MSwgIzB4MF0g
ICAgIC8vIEMwLCBDMQorCisJbXVsCXg0LCB4MTMsIHgyMyAgICAvLyBDMAorCXVtdWxoCXgxMCwg
eDEzLCB4MjMKKworCW11bAl4NSwgeDEzLCB4MjQKKwl1bXVsaAl4MjcsIHgxMywgeDI0CisJYWRk
cwl4NSwgeDUsIHgxMCAgICAvLyBDMQorCWFkYwl4MTAsIHh6ciwgeHpyCisKKwltdWwJeDYsIHgx
MywgeDI1CisJdW11bGgJeDI4LCB4MTMsIHgyNQorCWFkZHMJeDI3LCB4MTAsIHgyNworCWFkY3MJ
eDYsIHg2LCB4MjcgICAgLy8gQzIKKwlhZGMJeDEwLCB4enIsIHh6cgorCisJbXVsCXg3LCB4MTMs
IHgyNgorCXVtdWxoCXg4LCB4MTMsIHgyNgorCWFkZHMJeDI4LCB4MTAsIHgyOAorCWFkY3MJeDcs
IHg3LCB4MjggICAgLy8gQzMKKwlhZGMJeDgsIHg4LCB4enIgICAgLy8gQzQKKworCWFkZHMJeDE2
LCB4MTYsIHg0CisJYWRjcwl4MTcsIHgxNywgeDUKKwlhZGNzCXgxOSwgeDE5LCB4NgorCWFkY3MJ
eDIwLCB4MjAsIHg3CisJYWRjCXgyMSwgeDIyLCB4OAorCisJc3RyCXgxNiwgICAgICAgW3gxLCAj
MHgxMF0KKwlzdHAJeDE3LCB4MTksICBbeDEsICMweDE4XQorCXN0cAl4MjAsIHgyMSwgIFt4MSwg
IzB4MjhdCisKKwlsZHAJeDE5LCB4MjAsIFt4MjksIzE2XQorCWxkcAl4MjEsIHgyMiwgW3gyOSwj
MzJdCisJbGRwCXgyMywgeDI0LCBbeDI5LCM0OF0KKwlsZHAJeDI1LCB4MjYsIFt4MjksIzY0XQor
CWxkcAl4MjcsIHgyOCwgW3gyOSwjODBdCisJbGRwCXgyOSwgeDMwLCBbc3BdLCM5NgorCXJldAor
Lmdsb2JsCXNpa2VfZnBhZGQKKy5oaWRkZW4Jc2lrZV9mcGFkZAorLmFsaWduCTQKK3Npa2VfZnBh
ZGQ6CisJc3RwCXgyOSx4MzAsIFtzcCwjLTE2XSEKKwlhZGQJeDI5LCBzcCwgIzAKKworCWxkcAl4
MywgeDQsICAgW3gwLCMwXQorCWxkcAl4NSwgeDYsICAgW3gwLCMxNl0KKwlsZHAJeDcsIHg4LCAg
IFt4MCwjMzJdCisJbGRyCXg5LCAgICAgICBbeDAsIzQ4XQorCWxkcAl4MTEsIHgxMiwgW3gxLCMw
XQorCWxkcAl4MTMsIHgxNCwgW3gxLCMxNl0KKwlsZHAJeDE1LCB4MTYsIFt4MSwjMzJdCisJbGRy
CXgxNywgICAgICBbeDEsIzQ4XQorCisgICAgICAgIC8vIEFkZCBhICsgYgorCWFkZHMJeDMsIHgz
LCB4MTEKKwlhZGNzCXg0LCB4NCwgeDEyCisJYWRjcwl4NSwgeDUsIHgxMworCWFkY3MJeDYsIHg2
LCB4MTQKKwlhZGNzCXg3LCB4NywgeDE1CisJYWRjcwl4OCwgeDgsIHgxNgorCWFkYwl4OSwgeDks
IHgxNworCisgICAgICAgIC8vICBTdWJ0cmFjdCAyeHA0MzQKKwlhZHJwCXgxNywgLkxwNDM0eDIK
KwlhZGQJeDE3LCB4MTcsIDpsbzEyOi5McDQzNHgyCisJbGRwCXgxMSwgeDEyLCBbeDE3LCAjMF0K
KwlsZHAJeDEzLCB4MTQsIFt4MTcsICMxNl0KKwlsZHAJeDE1LCB4MTYsIFt4MTcsICMzMl0KKwlz
dWJzCXgzLCB4MywgeDExCisJc2Jjcwl4NCwgeDQsIHgxMgorCXNiY3MJeDUsIHg1LCB4MTIKKwlz
YmNzCXg2LCB4NiwgeDEzCisJc2Jjcwl4NywgeDcsIHgxNAorCXNiY3MJeDgsIHg4LCB4MTUKKwlz
YmNzCXg5LCB4OSwgeDE2CisJc2JjCXgwLCB4enIsIHh6ciAgICAvLyB4MCBjYW4gYmUgcmV1c2Vk
IG5vdworCisgICAgICAgIC8vIEFkZCAyeHA0MzQgYW5kZWQgd2l0aCB0aGUgbWFzayBpbiB4MAor
CWFuZAl4MTEsIHgxMSwgeDAKKwlhbmQJeDEyLCB4MTIsIHgwCisJYW5kCXgxMywgeDEzLCB4MAor
CWFuZAl4MTQsIHgxNCwgeDAKKwlhbmQJeDE1LCB4MTUsIHgwCisJYW5kCXgxNiwgeDE2LCB4MAor
CisJYWRkcwl4MywgeDMsIHgxMQorCWFkY3MJeDQsIHg0LCB4MTIKKwlhZGNzCXg1LCB4NSwgeDEy
CisJYWRjcwl4NiwgeDYsIHgxMworCWFkY3MJeDcsIHg3LCB4MTQKKwlhZGNzCXg4LCB4OCwgeDE1
CisJYWRjCXg5LCB4OSwgeDE2CisKKwlzdHAJeDMsIHg0LCAgW3gyLCMwXQorCXN0cAl4NSwgeDYs
ICBbeDIsIzE2XQorCXN0cAl4NywgeDgsICBbeDIsIzMyXQorCXN0cgl4OSwgICAgICBbeDIsIzQ4
XQorCisJbGRwCXgyOSwgeDMwLCBbc3BdLCMxNgorCXJldAorLmdsb2JsCXNpa2VfZnBzdWIKKy5o
aWRkZW4Jc2lrZV9mcHN1YgorLmFsaWduCTQKK3Npa2VfZnBzdWI6CisJc3RwCXgyOSwgeDMwLCBb
c3AsIy0xNl0hCisJYWRkCXgyOSwgc3AsICMwCisKKwlsZHAJeDMsIHg0LCAgIFt4MCwjMF0KKwls
ZHAJeDUsIHg2LCAgIFt4MCwjMTZdCisJbGRwCXg3LCB4OCwgICBbeDAsIzMyXQorCWxkcgl4OSwg
ICAgICAgW3gwLCM0OF0KKwlsZHAJeDExLCB4MTIsIFt4MSwjMF0KKwlsZHAJeDEzLCB4MTQsIFt4
MSwjMTZdCisJbGRwCXgxNSwgeDE2LCBbeDEsIzMyXQorCWxkcgl4MTcsICAgICAgW3gxLCM0OF0K
KworICAgICAgICAvLyBTdWJ0cmFjdCBhIC0gYgorCXN1YnMJeDMsIHgzLCB4MTEKKwlzYmNzCXg0
LCB4NCwgeDEyCisJc2Jjcwl4NSwgeDUsIHgxMworCXNiY3MJeDYsIHg2LCB4MTQKKwlzYmNzCXg3
LCB4NywgeDE1CisJc2Jjcwl4OCwgeDgsIHgxNgorCXNiY3MJeDksIHg5LCB4MTcKKwlzYmMJeDAs
IHh6ciwgeHpyCisKKyAgICAgICAgLy8gQWRkIDJ4cDQzNCBhbmRlZCB3aXRoIHRoZSBtYXNrIGlu
IHgwCisJYWRycAl4MTcsIC5McDQzNHgyCisJYWRkCXgxNywgeDE3LCA6bG8xMjouTHA0MzR4Mgor
CisgICAgICAgIC8vIEZpcnN0IGhhbGYKKwlsZHAJeDExLCB4MTIsIFt4MTcsICMwXQorCWxkcAl4
MTMsIHgxNCwgW3gxNywgIzE2XQorCWxkcAl4MTUsIHgxNiwgW3gxNywgIzMyXQorCisgICAgICAg
IC8vIEFkZCAyeHA0MzQgYW5kZWQgd2l0aCB0aGUgbWFzayBpbiB4MAorCWFuZAl4MTEsIHgxMSwg
eDAKKwlhbmQJeDEyLCB4MTIsIHgwCisJYW5kCXgxMywgeDEzLCB4MAorCWFuZAl4MTQsIHgxNCwg
eDAKKwlhbmQJeDE1LCB4MTUsIHgwCisJYW5kCXgxNiwgeDE2LCB4MAorCisJYWRkcwl4MywgeDMs
IHgxMQorCWFkY3MJeDQsIHg0LCB4MTIKKwlhZGNzCXg1LCB4NSwgeDEyCisJYWRjcwl4NiwgeDYs
IHgxMworCWFkY3MJeDcsIHg3LCB4MTQKKwlhZGNzCXg4LCB4OCwgeDE1CisJYWRjCXg5LCB4OSwg
eDE2CisKKwlzdHAJeDMsIHg0LCAgW3gyLCMwXQorCXN0cAl4NSwgeDYsICBbeDIsIzE2XQorCXN0
cAl4NywgeDgsICBbeDIsIzMyXQorCXN0cgl4OSwgICAgICBbeDIsIzQ4XQorCisJbGRwCXgyOSwg
eDMwLCBbc3BdLCMxNgorCXJldAorLmdsb2JsCXNpa2VfbXBhZGRfYXNtCisuaGlkZGVuCXNpa2Vf
bXBhZGRfYXNtCisuYWxpZ24JNAorc2lrZV9tcGFkZF9hc206CisJc3RwCXgyOSwgeDMwLCBbc3As
Iy0xNl0hCisJYWRkCXgyOSwgc3AsICMwCisKKwlsZHAJeDMsIHg0LCAgIFt4MCwjMF0KKwlsZHAJ
eDUsIHg2LCAgIFt4MCwjMTZdCisJbGRwCXg3LCB4OCwgICBbeDAsIzMyXQorCWxkcgl4OSwgICAg
ICAgW3gwLCM0OF0KKwlsZHAJeDExLCB4MTIsIFt4MSwjMF0KKwlsZHAJeDEzLCB4MTQsIFt4MSwj
MTZdCisJbGRwCXgxNSwgeDE2LCBbeDEsIzMyXQorCWxkcgl4MTcsICAgICAgW3gxLCM0OF0KKwor
CWFkZHMJeDMsIHgzLCB4MTEKKwlhZGNzCXg0LCB4NCwgeDEyCisJYWRjcwl4NSwgeDUsIHgxMwor
CWFkY3MJeDYsIHg2LCB4MTQKKwlhZGNzCXg3LCB4NywgeDE1CisJYWRjcwl4OCwgeDgsIHgxNgor
CWFkYwl4OSwgeDksIHgxNworCisJc3RwCXgzLCB4NCwgICBbeDIsIzBdCisJc3RwCXg1LCB4Niwg
ICBbeDIsIzE2XQorCXN0cAl4NywgeDgsICAgW3gyLCMzMl0KKwlzdHIJeDksICAgICAgIFt4Miwj
NDhdCisKKwlsZHAJeDI5LCB4MzAsIFtzcF0sIzE2CisJcmV0CisuZ2xvYmwJc2lrZV9tcHN1Yngy
X2FzbQorLmhpZGRlbglzaWtlX21wc3VieDJfYXNtCisuYWxpZ24JNAorc2lrZV9tcHN1YngyX2Fz
bToKKwlzdHAJeDI5LCB4MzAsIFtzcCwjLTE2XSEKKwlhZGQJeDI5LCBzcCwgIzAKKworCWxkcAl4
MywgeDQsICAgW3gwLCMwXQorCWxkcAl4NSwgeDYsICAgW3gwLCMxNl0KKwlsZHAJeDExLCB4MTIs
IFt4MSwjMF0KKwlsZHAJeDEzLCB4MTQsIFt4MSwjMTZdCisJc3Vicwl4MywgeDMsIHgxMQorCXNi
Y3MJeDQsIHg0LCB4MTIKKwlzYmNzCXg1LCB4NSwgeDEzCisJc2Jjcwl4NiwgeDYsIHgxNAorCWxk
cAl4NywgeDgsICAgW3gwLCMzMl0KKwlsZHAJeDksIHgxMCwgIFt4MCwjNDhdCisJbGRwCXgxMSwg
eDEyLCBbeDEsIzMyXQorCWxkcAl4MTMsIHgxNCwgW3gxLCM0OF0KKwlzYmNzCXg3LCB4NywgeDEx
CisJc2Jjcwl4OCwgeDgsIHgxMgorCXNiY3MJeDksIHg5LCB4MTMKKwlzYmNzCXgxMCwgeDEwLCB4
MTQKKworCXN0cAl4MywgeDQsICAgW3gyLCMwXQorCXN0cAl4NSwgeDYsICAgW3gyLCMxNl0KKwlz
dHAJeDcsIHg4LCAgIFt4MiwjMzJdCisJc3RwCXg5LCB4MTAsICBbeDIsIzQ4XQorCisJbGRwCXgz
LCB4NCwgICBbeDAsIzY0XQorCWxkcAl4NSwgeDYsICAgW3gwLCM4MF0KKwlsZHAJeDExLCB4MTIs
IFt4MSwjNjRdCisJbGRwCXgxMywgeDE0LCBbeDEsIzgwXQorCXNiY3MJeDMsIHgzLCB4MTEKKwlz
YmNzCXg0LCB4NCwgeDEyCisJc2Jjcwl4NSwgeDUsIHgxMworCXNiY3MJeDYsIHg2LCB4MTQKKwls
ZHAJeDcsIHg4LCAgIFt4MCwjOTZdCisJbGRwCXgxMSwgeDEyLCBbeDEsIzk2XQorCXNiY3MJeDcs
IHg3LCB4MTEKKwlzYmNzCXg4LCB4OCwgeDEyCisJc2JjCXgwLCB4enIsIHh6cgorCisJc3RwCXgz
LCB4NCwgICBbeDIsIzY0XQorCXN0cAl4NSwgeDYsICAgW3gyLCM4MF0KKwlzdHAJeDcsIHg4LCAg
IFt4MiwjOTZdCisKKwlsZHAJeDI5LCB4MzAsIFtzcF0sIzE2CisJcmV0CisuZ2xvYmwJc2lrZV9t
cGRibHN1YngyX2FzbQorLmhpZGRlbglzaWtlX21wZGJsc3VieDJfYXNtCisuYWxpZ24JNAorc2lr
ZV9tcGRibHN1YngyX2FzbToKKwlzdHAJeDI5LCB4MzAsIFtzcCwgIy0xNl0hCisJYWRkCXgyOSwg
c3AsICMwCisKKwlsZHAJeDMsIHg0LCAgIFt4MiwgIzBdCisJbGRwCXg1LCB4NiwgICBbeDIsIzE2
XQorCWxkcAl4NywgeDgsICAgW3gyLCMzMl0KKworCWxkcAl4MTEsIHgxMiwgW3gwLCAjMF0KKwls
ZHAJeDEzLCB4MTQsIFt4MCwjMTZdCisJbGRwCXgxNSwgeDE2LCBbeDAsIzMyXQorCisJc3Vicwl4
MywgeDMsIHgxMQorCXNiY3MJeDQsIHg0LCB4MTIKKwlzYmNzCXg1LCB4NSwgeDEzCisJc2Jjcwl4
NiwgeDYsIHgxNAorCXNiY3MJeDcsIHg3LCB4MTUKKwlzYmNzCXg4LCB4OCwgeDE2CisKKyAgICAg
ICAgLy8geDkgc3RvcmVzIGNhcnJ5CisJYWRjCXg5LCB4enIsIHh6cgorCisJbGRwCXgxMSwgeDEy
LCBbeDEsICMwXQorCWxkcAl4MTMsIHgxNCwgW3gxLCMxNl0KKwlsZHAJeDE1LCB4MTYsIFt4MSwj
MzJdCisJc3Vicwl4MywgeDMsIHgxMQorCXNiY3MJeDQsIHg0LCB4MTIKKwlzYmNzCXg1LCB4NSwg
eDEzCisJc2Jjcwl4NiwgeDYsIHgxNAorCXNiY3MJeDcsIHg3LCB4MTUKKwlzYmNzCXg4LCB4OCwg
eDE2CisJYWRjCXg5LCB4OSwgeHpyCisKKwlzdHAJeDMsIHg0LCAgIFt4MiwgIzBdCisJc3RwCXg1
LCB4NiwgICBbeDIsIzE2XQorCXN0cAl4NywgeDgsICAgW3gyLCMzMl0KKworCWxkcAl4MywgeDQs
ICAgW3gyLCM0OF0KKwlsZHAJeDUsIHg2LCAgIFt4MiwjNjRdCisJbGRwCXg3LCB4OCwgICBbeDIs
IzgwXQorCisJbGRwCXgxMSwgeDEyLCBbeDAsIzQ4XQorCWxkcAl4MTMsIHgxNCwgW3gwLCM2NF0K
KwlsZHAJeDE1LCB4MTYsIFt4MCwjODBdCisKKyAgICAgICAgLy8geDkgPSAyIC0geDkKKwluZWcJ
eDksIHg5CisJYWRkCXg5LCB4OSwgIzIKKworCXN1YnMJeDMsIHgzLCB4OQorCXNiY3MJeDMsIHgz
LCB4MTEKKwlzYmNzCXg0LCB4NCwgeDEyCisJc2Jjcwl4NSwgeDUsIHgxMworCXNiY3MJeDYsIHg2
LCB4MTQKKwlzYmNzCXg3LCB4NywgeDE1CisJc2Jjcwl4OCwgeDgsIHgxNgorCWFkYwl4OSwgeHpy
LCB4enIKKworCWxkcAl4MTEsIHgxMiwgW3gxLCM0OF0KKwlsZHAJeDEzLCB4MTQsIFt4MSwjNjRd
CisJbGRwCXgxNSwgeDE2LCBbeDEsIzgwXQorCXN1YnMJeDMsIHgzLCB4MTEKKwlzYmNzCXg0LCB4
NCwgeDEyCisJc2Jjcwl4NSwgeDUsIHgxMworCXNiY3MJeDYsIHg2LCB4MTQKKwlzYmNzCXg3LCB4
NywgeDE1CisJc2Jjcwl4OCwgeDgsIHgxNgorCWFkYwl4OSwgeDksIHh6cgorCisJc3RwCXgzLCB4
NCwgICBbeDIsIzQ4XQorCXN0cAl4NSwgeDYsICAgW3gyLCM2NF0KKwlzdHAJeDcsIHg4LCAgIFt4
MiwjODBdCisKKwlsZHAJeDMsICB4NCwgW3gyLCM5Nl0KKwlsZHAJeDExLCB4MTIsIFt4MCwjOTZd
CisJbGRwCXgxMywgeDE0LCBbeDEsIzk2XQorCisgICAgICAgIC8vIHg5ID0gMiAtIHg5CisJbmVn
CXg5LCB4OQorCWFkZAl4OSwgeDksICMyCisKKwlzdWJzCXgzLCB4MywgeDkKKwlzYmNzCXgzLCB4
MywgeDExCisJc2Jjcwl4NCwgeDQsIHgxMgorCXN1YnMJeDMsIHgzLCB4MTMKKwlzYmMJeDQsIHg0
LCB4MTQKKwlzdHAJeDMsIHg0LCAgIFt4MiwjOTZdCisKKwlsZHAJeDI5LCB4MzAsIFtzcF0sIzE2
CisJcmV0CisjZW5kaWYKKyNlbmRpZiAgLy8gIU9QRU5TU0xfTk9fQVNNCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9s
aW51eC1hcm0vY3J5cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8v
Y2hhY2hhL2NoYWNoYS1hcm12NC5TCmluZGV4IDRjMTcxMjRmODE2YThkMGNlMzQxMjdjODRhOTcx
MTg5NjY5NDZmMDIuLmFlZDdjYTY0NGI3NzBlYTM4MTgyNTJhZDU3YzYwMzVhMDQzYmM4MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12NC5TCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xp
bnV4LWFybS9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12NC5TCkBAIC0xLDExICsxLDEyIEBACiAv
LyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3Jp
cHQgaW4gdGhlIEJvcmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQu
CiAKLSNpZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVy
ZSkKKyNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJl
KG1lbW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBP
UEVOU1NMX05PX0FTTQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9f
QVNNKQogI2lmIGRlZmluZWQoX19hcm1fXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8v
Zmlwc21vZHVsZS9hZXMtYXJtdjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9hZXMt
YXJtdjQuUwppbmRleCAwYTAxNjk0OWEwMGRmYWQ3NTI1MzZkZjdkNmNmYmY0M2ZkZGUyZmMxLi5i
Mjk2NmI0YWJkY2M2OGM4YTlmNDNlNmYxZTdiNTEzMWNmNWJmYTkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51
eC1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvYWVzLWFybXY0LlMKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0
by9maXBzbW9kdWxlL2Flcy1hcm12NC5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUg
aXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJv
cmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZp
bmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUg
X19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5p
dGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FT
TQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRl
ZmluZWQoX19hcm1fXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9h
ZXN2OC1hcm14MzIuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9hZXN2OC1hcm14MzIu
UwppbmRleCA0MjYyNWZlNThmZjQ2YzczOGNlZWZkNDdjYWIyOThiZGJmYzNmYzMzLi4zYTJkMmU0
M2UwOTNlZDdjMzY2N2M1MTZlMjQ0MTlmNjAwODBkMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0v
Y3J5cHRvL2ZpcHNtb2R1bGUvYWVzdjgtYXJteDMyLlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9m
aXBzbW9kdWxlL2Flc3Y4LWFybXgzMi5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUg
aXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJv
cmluZ1NTTAogLy8gc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZp
bmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUg
X19oYXNfZmVhdHVyZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5p
dGl6ZXIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FT
TQogI2VuZGlmCi0jZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRl
ZmluZWQoX19hcm1fXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9h
cm12NC1tb250LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvYXJtdjQtbW9udC5TCmlu
ZGV4IDcwMjgzMGE2MjY5MzY4MzdlMzNkMzFhMWE2NTc0ODAzZTlhNzNhZDYuLjEyZWJlNDBjNzc5
MzZhMTBhYjJlNTFjMWM4OTMwY2VmMjRjNjg1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlw
dG8vZmlwc21vZHVsZS9hcm12NC1tb250LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9k
dWxlL2FybXY0LW1vbnQuUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlzIGdlbmVy
YXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wK
IC8vIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChfX2hh
c19mZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2Zl
YXR1cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAm
JiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNlbmRp
ZgotI2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZpbmVkKF9f
YXJtX18pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvYnNhZXMtYXJt
djcuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9ic2Flcy1hcm12Ny5TCmluZGV4IDM4
YTAyOTAyOTMxOWYxNjc1NjRkZmE4ZDU3MWZmYzM4MzljNzViNmIuLmY2Y2VjM2RiZDY5NjQ5ZmRk
MjVhNDU3N2I2MWYxMzE5ODJiOWU1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlw
c21vZHVsZS9ic2Flcy1hcm12Ny5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9i
c2Flcy1hcm12Ny5TCkBAIC0xLDExICsxLDEyIEBACiAvLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVk
IGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NTTAogLy8g
c291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCiAKLSNpZiBkZWZpbmVkKF9faGFzX2Zl
YXR1cmUpCisjaWYgIWRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNkZWZpbmUgX19oYXNfZmVhdHVy
ZSh4KSAwCisjZW5kaWYKICNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpICYmICFk
ZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2RlZmluZSBPUEVOU1NMX05PX0FTTQogI2VuZGlmCi0j
ZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQogI2lmIGRlZmluZWQoX19hcm1f
XykKQEAgLTEwODEsMjQgKzEwODIsMTMgQEAgX2JzYWVzX2tleV9jb252ZXJ0OgogCUAgZG9uJ3Qg
c2F2ZSBsYXN0IHJvdW5kIGtleQogCWJ4CWxyCiAuc2l6ZQlfYnNhZXNfa2V5X2NvbnZlcnQsLi1f
YnNhZXNfa2V5X2NvbnZlcnQKLQotCi0KIC5nbG9ibAlic2Flc19jYmNfZW5jcnlwdAogLmhpZGRl
bglic2Flc19jYmNfZW5jcnlwdAogLnR5cGUJYnNhZXNfY2JjX2VuY3J5cHQsJWZ1bmN0aW9uCiAu
YWxpZ24JNQogYnNhZXNfY2JjX2VuY3J5cHQ6Ci0jaWZuZGVmCV9fS0VSTkVMX18KLQljbXAJcjIs
ICMxMjgKLSNpZm5kZWYJX190aHVtYl9fCi0JYmxvCUFFU19jYmNfZW5jcnlwdAotI2Vsc2UKLQli
aHMJMWYKLQliCUFFU19jYmNfZW5jcnlwdAotMToKLSNlbmRpZgotI2VuZGlmCisJQCBJbiBPcGVu
U1NMLCB0aGlzIGZ1bmN0aW9uIGhhZCBhIGZhbGxiYWNrIHRvIGFlc19ub2h3X2NiY19lbmNyeXB0
IGZvcgorCUAgc2hvcnQgaW5wdXRzLiBXZSBwYXRjaCB0aGlzIG91dCwgdXNpbmcgYnNhZXMgZm9y
IGFsbCBpbnB1dCBzaXplcy4KIAogCUAgaXQgaXMgdXAgdG8gdGhlIGNhbGxlciB0byBtYWtlIHN1
cmUgd2UgYXJlIGNhbGxlZCB3aXRoIGVuYyA9PSAwCiAKQEAgLTExOTYsMTAgKzExODYsNyBAQCBi
c2Flc19jYmNfZW5jcnlwdDoKIAlhZGRzCXIyLCByMiwgIzgKIAliZXEJLkxjYmNfZGVjX2RvbmUK
IAotCXZsZDEuOAl7cTB9LCBbcjBdIQkJQCBsb2FkIGlucHV0Ci0JY21wCXIyLCAjMgotCWJsbwku
TGNiY19kZWNfb25lCi0JdmxkMS44CXtxMX0sIFtyMF0hCisJQCBTZXQgdXAgbW9zdCBwYXJhbWV0
ZXJzIGZvciB0aGUgX2JzYWVzX2RlY3J5cHQ4IGNhbGwuCiAjaWZuZGVmCUJTQUVTX0FTTV9FWFRF
TkRFRF9LRVkKIAltb3YJcjQsIHNwCQkJQCBwYXNzIHRoZSBrZXkKICNlbHNlCkBAIC0xMjA3LDYg
KzExOTQsMTEgQEAgYnNhZXNfY2JjX2VuY3J5cHQ6CiAjZW5kaWYKIAltb3YJcjUsIHIxMAogCXZz
dG1pYQlyOSwge3ExNX0JCQlAIHB1dCBhc2lkZSBJVgorCisJdmxkMS44CXtxMH0sIFtyMF0hCQlA
IGxvYWQgaW5wdXQKKwljbXAJcjIsICMyCisJYmxvCS5MY2JjX2RlY19vbmUKKwl2bGQxLjgJe3Ex
fSwgW3IwXSEKIAliZXEJLkxjYmNfZGVjX3R3bwogCXZsZDEuOAl7cTJ9LCBbcjBdIQogCWNtcAly
MiwgIzQKQEAgLTEzMjQsMTYgKzEzMTYsMTEgQEAgYnNhZXNfY2JjX2VuY3J5cHQ6CiAuYWxpZ24J
NAogLkxjYmNfZGVjX29uZToKIAlzdWIJcjAsIHIwLCAjMHgxMAotCW1vdglyMTAsIHIxCQkJQCBz
YXZlIG9yaWdpbmFsIG91dCBwb2ludGVyCi0JbW92CXIxLCByOQkJCUAgdXNlIHRoZSBpdiBzY3Jh
dGNoIHNwYWNlIGFzIG91dCBidWZmZXIKLQltb3YJcjIsIHIzCi0Jdm1vdglxNCxxMTUJCUAganVz
dCBpbiBjYXNlIGVuc3VyZSB0aGF0IElWCi0Jdm1vdglxNSxxMAkJCUAgYW5kIGlucHV0IGFyZSBw
cmVzZXJ2ZWQKLQlibAlBRVNfZGVjcnlwdAotCXZsZDEuOAl7cTB9LCBbcjldCQlAIGxvYWQgcmVz
dWx0Ci0JdmVvcglxMCwgcTAsIHE0CUAgXj0gSVYKLQl2bW92CXExNSwgcTUJCUAgcTUgaG9sZHMg
aW5wdXQKLQl2c3QxLjgJe3EwfSwgW3IxMF0JCUAgd3JpdGUgb3V0cHV0CisJYmwJX2JzYWVzX2Rl
Y3J5cHQ4CisJdmxkbWlhCXI5LCB7cTE0fQkJCUAgcmVsb2FkIElWCisJdmxkMS44CXtxMTV9LCBb
cjBdIQkJQCByZWxvYWQgaW5wdXQKKwl2ZW9yCXEwLCBxMCwgcTE0CUAgXj0gSVYKKwl2c3QxLjgJ
e3EwfSwgW3IxXSEJCUAgd3JpdGUgb3V0cHV0CiAKIC5MY2JjX2RlY19kb25lOgogI2lmbmRlZglC
U0FFU19BU01fRVhURU5ERURfS0VZCkBAIC0xMzUxLDE1ICsxMzM4LDEzIEBAIGJzYWVzX2NiY19l
bmNyeXB0OgogCVZGUF9BQklfUE9QCiAJbGRtaWEJc3AhLCB7cjQscjUscjYscjcscjgscjkscjEw
LCBwY30KIC5zaXplCWJzYWVzX2NiY19lbmNyeXB0LC4tYnNhZXNfY2JjX2VuY3J5cHQKLQogLmds
b2JsCWJzYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzCiAuaGlkZGVuCWJzYWVzX2N0cjMyX2VuY3J5
cHRfYmxvY2tzCiAudHlwZQlic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrcywlZnVuY3Rpb24KIC5h
bGlnbgk1CiBic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrczoKLQljbXAJcjIsICM4CQkJQCB1c2Ug
cGxhaW4gQUVTIGZvcgotCWJsbwkuTGN0cl9lbmNfc2hvcnQJCQlAIHNtYWxsIHNpemVzCi0KKwlA
IEluIE9wZW5TU0wsIHNob3J0IGlucHV0cyBmYWxsIGJhY2sgdG8gYWVzX25vaHdfKiBoZXJlLiBX
ZSBwYXRjaCB0aGlzCisJQCBvdXQgdG8gcmV0YWluIGEgY29uc3RhbnQtdGltZSBpbXBsZW1lbnRh
dGlvbi4KIAltb3YJaXAsIHNwCiAJc3RtZGIJc3AhLCB7cjQscjUscjYscjcscjgscjkscjEwLCBs
cn0KIAlWRlBfQUJJX1BVU0gKQEAgLTE1MzUsMTA0MyArMTUyMCw5IEBAIGJzYWVzX2N0cjMyX2Vu
Y3J5cHRfYmxvY2tzOgogCVZGUF9BQklfUE9QCiAJbGRtaWEJc3AhLCB7cjQscjUscjYscjcscjgs
cjkscjEwLCBwY30JQCByZXR1cm4KIAotLmFsaWduCTQKLS5MY3RyX2VuY19zaG9ydDoKLQlsZHIJ
aXAsIFtzcF0JCUAgY3RyIHBvaW50ZXIgaXMgcGFzc2VkIG9uIHN0YWNrCi0Jc3RtZGIJc3AhLCB7
cjQscjUscjYscjcscjgsIGxyfQotCi0JbW92CXI0LCByMAkJQCBjb3B5IGFyZ3VtZW50cwotCW1v
dglyNSwgcjEKLQltb3YJcjYsIHIyCi0JbW92CXI3LCByMwotCWxkcglyOCwgW2lwLCAjMTJdCQlA
IGxvYWQgY291bnRlciAuTFNXCi0JdmxkMS44CXtxMX0sIFtpcF0JCUAgbG9hZCB3aG9sZSBjb3Vu
dGVyIHZhbHVlCi0jaWZkZWYgX19BUk1FTF9fCi0JcmV2CXI4LCByOAotI2VuZGlmCi0Jc3ViCXNw
LCBzcCwgIzB4MTAKLQl2c3QxLjgJe3ExfSwgW3NwXQkJQCBjb3B5IGNvdW50ZXIgdmFsdWUKLQlz
dWIJc3AsIHNwLCAjMHgxMAotCi0uTGN0cl9lbmNfc2hvcnRfbG9vcDoKLQlhZGQJcjAsIHNwLCAj
MHgxMAkJQCBpbnB1dCBjb3VudGVyIHZhbHVlCi0JbW92CXIxLCBzcAkJCUAgb3V0cHV0IG9uIHRo
ZSBzdGFjawotCW1vdglyMiwgcjcJCQlAIGtleQotCi0JYmwJQUVTX2VuY3J5cHQKLQotCXZsZDEu
OAl7cTB9LCBbcjRdIQlAIGxvYWQgaW5wdXQKLQl2bGQxLjgJe3ExfSwgW3NwXQkJQCBsb2FkIGVu
Y3J5cHRlZCBjb3VudGVyCi0JYWRkCXI4LCByOCwgIzEKLSNpZmRlZiBfX0FSTUVMX18KLQlyZXYJ
cjAsIHI4Ci0Jc3RyCXIwLCBbc3AsICMweDFjXQkJQCBuZXh0IGNvdW50ZXIgdmFsdWUKLSNlbHNl
Ci0Jc3RyCXI4LCBbc3AsICMweDFjXQkJQCBuZXh0IGNvdW50ZXIgdmFsdWUKLSNlbmRpZgotCXZl
b3IJcTAscTAscTEKLQl2c3QxLjgJe3EwfSwgW3I1XSEJQCBzdG9yZSBvdXRwdXQKLQlzdWJzCXI2
LCByNiwgIzEKLQlibmUJLkxjdHJfZW5jX3Nob3J0X2xvb3AKLQotCXZtb3YuaTMyCXEwLCAjMAot
CXZtb3YuaTMyCXExLCAjMAotCXZzdG1pYQlzcCEsIHtxMCxxMX0KLQotCWxkbWlhCXNwISwge3I0
LHI1LHI2LHI3LHI4LCBwY30KKwlAIE9wZW5TU0wgY29udGFpbnMgYWVzX25vaHdfKiBmYWxsYmFj
ayBjb2RlIGhlcmUuIFdlIHBhdGNoIHRoaXMKKwlAIG91dCB0byByZXRhaW4gYSBjb25zdGFudC10
aW1lIGltcGxlbWVudGF0aW9uLgogLnNpemUJYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MsLi1i
c2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrcwotLmdsb2JsCWJzYWVzX3h0c19lbmNyeXB0Ci0uaGlk
ZGVuCWJzYWVzX3h0c19lbmNyeXB0Ci0udHlwZQlic2Flc194dHNfZW5jcnlwdCwlZnVuY3Rpb24K
LS5hbGlnbgk0Ci1ic2Flc194dHNfZW5jcnlwdDoKLQltb3YJaXAsIHNwCi0Jc3RtZGIJc3AhLCB7
cjQscjUscjYscjcscjgscjkscjEwLCBscn0JCUAgMHgyMAotCVZGUF9BQklfUFVTSAotCW1vdgly
Niwgc3AJCQkJQCBmdXR1cmUgcjMKLQotCW1vdglyNywgcjAKLQltb3YJcjgsIHIxCi0JbW92CXI5
LCByMgotCW1vdglyMTAsIHIzCi0KLQlzdWIJcjAsIHNwLCAjMHgxMAkJCUAgMHgxMAotCWJpYwly
MCwgIzB4ZgkJCUAgYWxpZ24gYXQgMTYgYnl0ZXMKLQltb3YJc3AsIHIwCi0KLSNpZmRlZglYVFNf
Q0hBSU5fVFdFQUsKLQlsZHIJcjAsIFtpcF0JCQlAIHBvaW50ZXIgdG8gaW5wdXQgdHdlYWsKLSNl
bHNlCi0JQCBnZW5lcmF0ZSBpbml0aWFsIHR3ZWFrCi0JbGRyCXIwLCBbaXAsICM0XQkJCUAgaXZb
XQotCW1vdglyMSwgc3AKLQlsZHIJcjIsIFtpcCwgIzBdCQkJQCBrZXkyCi0JYmwJQUVTX2VuY3J5
cHQKLQltb3YJcjAsc3AJCQkJQCBwb2ludGVyIHRvIGluaXRpYWwgdHdlYWsKLSNlbmRpZgotCi0J
bGRyCXIxLCBbcjEwLCAjMjQwXQkJQCBnZXQgIyBvZiByb3VuZHMKLQltb3YJcjMsIHI2Ci0jaWZu
ZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlAIGFsbG9jYXRlIHRoZSBrZXkgc2NoZWR1bGUg
b24gdGhlIHN0YWNrCi0Jc3ViCXIxMiwgc3AsIHIxLCBsc2wjNwkJQCAxMjggYnl0ZXMgcGVyIGlu
bmVyIHJvdW5kIGtleQotCUAgYWRkCXIxMiwgIzk2CQkJQCBzaXplIG9mIGJpdC1zbGljZWQga2V5
IHNjaGVkdWxlCi0Jc3ViCXIxMiwgIzQ4CQkJQCBwbGFjZSBmb3IgdHdlYWtbOV0KLQotCUAgcG9w
dWxhdGUgdGhlIGtleSBzY2hlZHVsZQotCW1vdglyNCwgcjEwCQkJQCBwYXNzIGtleQotCW1vdgly
NSwgcjEJCQlAIHBhc3MgIyBvZiByb3VuZHMKLQltb3YJc3AsIHIxMgotCWFkZAlyMTIsICMweDkw
CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotCWJsCV9ic2Flc19rZXlfY29udmVydAotCXZlb3IJcTcs
IHE3LCBxMTUJQCBmaXggdXAgbGFzdCByb3VuZCBrZXkKLQl2c3RtaWEJcjEyLCB7cTd9CQkJQCBz
YXZlIGxhc3Qgcm91bmQga2V5Ci0jZWxzZQotCWxkcglyMTIsIFtyMTAsICMyNDRdCi0JZW9ycwly
MTIsICMxCi0JYmVxCTBmCi0KLQlzdHIJcjEyLCBbcjEwLCAjMjQ0XQotCW1vdglyNCwgcjEwCQkJ
QCBwYXNzIGtleQotCW1vdglyNSwgcjEJCQlAIHBhc3MgIyBvZiByb3VuZHMKLQlhZGQJcjEyLCBy
MTAsICMyNDgJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0JYmwJX2JzYWVzX2tleV9jb252ZXJ0Ci0J
dmVvcglxNywgcTcsIHExNQlAIGZpeCB1cCBsYXN0IHJvdW5kIGtleQotCXZzdG1pYQlyMTIsIHtx
N30KLQotLmFsaWduCTIKLQlzdWIJc3AsICMweDkwCQkJQCBwbGFjZSBmb3IgdHdlYWtbOV0KLSNl
bmRpZgotCi0JdmxkMS44CXtxOH0sIFtyMF0JCQlAIGluaXRpYWwgdHdlYWsKLQlhZHIJcjIsIC5M
eHRzX21hZ2ljCi0KLQlzdWJzCXI5LCAjMHg4MAotCWJsbwkuTHh0c19lbmNfc2hvcnQKLQliCS5M
eHRzX2VuY19sb29wCi0KLS5hbGlnbgk0Ci0uTHh0c19lbmNfbG9vcDoKLQl2bGRtaWEJcjIsIHtx
NX0JQCBsb2FkIFhUUyBtYWdpYwotCXZzaHIuczY0CXE2LCBxOCwgIzYzCi0JbW92CXIwLCBzcAot
CXZhbmQJcTYsIHE2LCBxNQotCXZhZGQudTY0CXE5LCBxOCwgcTgKLQl2c3QxLjY0CXtxOH0sIFty
MCw6MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hyLnM2NAlxNywgcTksICM2MwotCXZlb3IJcTks
IHE5LCBxNgotCXZhbmQJcTcsIHE3LCBxNQotCXZhZGQudTY0CXExMCwgcTksIHE5Ci0JdnN0MS42
NAl7cTl9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5zNjQJcTYsIHExMCwgIzYz
Ci0JdmVvcglxMTAsIHExMCwgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2bGQxLjgJe3EwfSwgW3I3
XSEKLQl2YWRkLnU2NAlxMTEsIHExMCwgcTEwCi0JdnN0MS42NAl7cTEwfSwgW3IwLDoxMjhdIQot
CXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3LCBxMTEsICM2MwotCXZlb3IJcTExLCBxMTEsIHE2
Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmxkMS44CXtxMX0sIFtyN10hCi0JdmVvcglxMCwgcTAsIHE4
Ci0JdmFkZC51NjQJcTEyLCBxMTEsIHExMQotCXZzdDEuNjQJe3ExMX0sIFtyMCw6MTI4XSEKLQl2
c3dwCWQxNSxkMTQKLQl2c2hyLnM2NAlxNiwgcTEyLCAjNjMKLQl2ZW9yCXExMiwgcTEyLCBxNwot
CXZhbmQJcTYsIHE2LCBxNQotCXZsZDEuOAl7cTJ9LCBbcjddIQotCXZlb3IJcTEsIHExLCBxOQot
CXZhZGQudTY0CXExMywgcTEyLCBxMTIKLQl2c3QxLjY0CXtxMTJ9LCBbcjAsOjEyOF0hCi0JdnN3
cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExMywgIzYzCi0JdmVvcglxMTMsIHExMywgcTYKLQl2
YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3EzfSwgW3I3XSEKLQl2ZW9yCXEyLCBxMiwgcTEwCi0J
dmFkZC51NjQJcTE0LCBxMTMsIHExMwotCXZzdDEuNjQJe3ExM30sIFtyMCw6MTI4XSEKLQl2c3dw
CWQxNSxkMTQKLQl2c2hyLnM2NAlxNiwgcTE0LCAjNjMKLQl2ZW9yCXExNCwgcTE0LCBxNwotCXZh
bmQJcTYsIHE2LCBxNQotCXZsZDEuOAl7cTR9LCBbcjddIQotCXZlb3IJcTMsIHEzLCBxMTEKLQl2
YWRkLnU2NAlxMTUsIHExNCwgcTE0Ci0JdnN0MS42NAl7cTE0fSwgW3IwLDoxMjhdIQotCXZzd3AJ
ZDEzLGQxMgotCXZzaHIuczY0CXE3LCBxMTUsICM2MwotCXZlb3IJcTE1LCBxMTUsIHE2Ci0JdmFu
ZAlxNywgcTcsIHE1Ci0JdmxkMS44CXtxNX0sIFtyN10hCi0JdmVvcglxNCwgcTQsIHExMgotCXZh
ZGQudTY0CXE4LCBxMTUsIHExNQotCXZzdDEuNjQJe3ExNX0sIFtyMCw6MTI4XSEKLQl2c3dwCWQx
NSxkMTQKLQl2ZW9yCXE4LCBxOCwgcTcKLQl2c3QxLjY0CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0
IHJvdW5kIHR3ZWFrCi0KLQl2bGQxLjgJe3E2LHE3fSwgW3I3XSEKLQl2ZW9yCXE1LCBxNSwgcTEz
Ci0jaWZuZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlhZGQJcjQsIHNwLCAjMHg5MAkJCUAg
cGFzcyBrZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCByMTAsICMyNDgJCQlAIHBhc3Mga2V5
IHNjaGVkdWxlCi0jZW5kaWYKLQl2ZW9yCXE2LCBxNiwgcTE0Ci0JbW92CXI1LCByMQkJCUAgcGFz
cyByb3VuZHMKLQl2ZW9yCXE3LCBxNywgcTE1Ci0JbW92CXIwLCBzcAotCi0JYmwJX2JzYWVzX2Vu
Y3J5cHQ4Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEKLQl2bGQxLjY0CXtxMTAscTEx
fSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEuNjQJe3ExMixxMTN9LCBbcjAs
OjEyOF0hCi0JdmVvcglxMSwgcTEsIHE5Ci0JdmVvcglxOCwgcTQsIHExMAotCXZzdDEuOAl7cTAs
cTF9LCBbcjhdIQotCXZlb3IJcTksIHE2LCBxMTEKLQl2bGQxLjY0CXtxMTQscTE1fSwgW3IwLDox
MjhdIQotCXZlb3IJcTEwLCBxMywgcTEyCi0JdnN0MS44CXtxOCxxOX0sIFtyOF0hCi0JdmVvcglx
MTEsIHE3LCBxMTMKLQl2ZW9yCXExMiwgcTIsIHExNAotCXZzdDEuOAl7cTEwLHExMX0sIFtyOF0h
Ci0JdmVvcglxMTMsIHE1LCBxMTUKLQl2c3QxLjgJe3ExMixxMTN9LCBbcjhdIQotCi0JdmxkMS42
NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCi0Jc3VicwlyOSwgIzB4ODAK
LQlicGwJLkx4dHNfZW5jX2xvb3AKLQotLkx4dHNfZW5jX3Nob3J0OgotCWFkZHMJcjksICMweDcw
Ci0JYm1pCS5MeHRzX2VuY19kb25lCi0KLQl2bGRtaWEJcjIsIHtxNX0JQCBsb2FkIFhUUyBtYWdp
YwotCXZzaHIuczY0CXE3LCBxOCwgIzYzCi0JbW92CXIwLCBzcAotCXZhbmQJcTcsIHE3LCBxNQot
CXZhZGQudTY0CXE5LCBxOCwgcTgKLQl2c3QxLjY0CXtxOH0sIFtyMCw6MTI4XSEKLQl2c3dwCWQx
NSxkMTQKLQl2c2hyLnM2NAlxNiwgcTksICM2MwotCXZlb3IJcTksIHE5LCBxNwotCXZhbmQJcTYs
IHE2LCBxNQotCXZhZGQudTY0CXExMCwgcTksIHE5Ci0JdnN0MS42NAl7cTl9LCBbcjAsOjEyOF0h
Ci0JdnN3cAlkMTMsZDEyCi0JdnNoci5zNjQJcTcsIHExMCwgIzYzCi0JdmVvcglxMTAsIHExMCwg
cTYKLQl2YW5kCXE3LCBxNywgcTUKLQl2bGQxLjgJe3EwfSwgW3I3XSEKLQlzdWJzCXI5LCAjMHgx
MAotCWJtaQkuTHh0c19lbmNfMQotCXZhZGQudTY0CXExMSwgcTEwLCBxMTAKLQl2c3QxLjY0CXtx
MTB9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5zNjQJcTYsIHExMSwgIzYzCi0J
dmVvcglxMTEsIHExMSwgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2bGQxLjgJe3ExfSwgW3I3XSEK
LQlzdWJzCXI5LCAjMHgxMAotCWJtaQkuTHh0c19lbmNfMgotCXZlb3IJcTAsIHEwLCBxOAotCXZh
ZGQudTY0CXExMiwgcTExLCBxMTEKLQl2c3QxLjY0CXtxMTF9LCBbcjAsOjEyOF0hCi0JdnN3cAlk
MTMsZDEyCi0JdnNoci5zNjQJcTcsIHExMiwgIzYzCi0JdmVvcglxMTIsIHExMiwgcTYKLQl2YW5k
CXE3LCBxNywgcTUKLQl2bGQxLjgJe3EyfSwgW3I3XSEKLQlzdWJzCXI5LCAjMHgxMAotCWJtaQku
THh0c19lbmNfMwotCXZlb3IJcTEsIHExLCBxOQotCXZhZGQudTY0CXExMywgcTEyLCBxMTIKLQl2
c3QxLjY0CXtxMTJ9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5zNjQJcTYsIHEx
MywgIzYzCi0JdmVvcglxMTMsIHExMywgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2bGQxLjgJe3Ez
fSwgW3I3XSEKLQlzdWJzCXI5LCAjMHgxMAotCWJtaQkuTHh0c19lbmNfNAotCXZlb3IJcTIsIHEy
LCBxMTAKLQl2YWRkLnU2NAlxMTQsIHExMywgcTEzCi0JdnN0MS42NAl7cTEzfSwgW3IwLDoxMjhd
IQotCXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3LCBxMTQsICM2MwotCXZlb3IJcTE0LCBxMTQs
IHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmxkMS44CXtxNH0sIFtyN10hCi0Jc3VicwlyOSwgIzB4
MTAKLQlibWkJLkx4dHNfZW5jXzUKLQl2ZW9yCXEzLCBxMywgcTExCi0JdmFkZC51NjQJcTE1LCBx
MTQsIHExNAotCXZzdDEuNjQJe3ExNH0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxNSxkMTQKLQl2c2hy
LnM2NAlxNiwgcTE1LCAjNjMKLQl2ZW9yCXExNSwgcTE1LCBxNwotCXZhbmQJcTYsIHE2LCBxNQot
CXZsZDEuOAl7cTV9LCBbcjddIQotCXN1YnMJcjksICMweDEwCi0JYm1pCS5MeHRzX2VuY182Ci0J
dmVvcglxNCwgcTQsIHExMgotCXN1YglyOSwgIzB4MTAKLQl2c3QxLjY0CXtxMTV9LCBbcjAsOjEy
OF0JCUAgbmV4dCByb3VuZCB0d2VhawotCi0JdmxkMS44CXtxNn0sIFtyN10hCi0JdmVvcglxNSwg
cTUsIHExMwotI2lmbmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4
OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBw
YXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVvcglxNiwgcTYsIHExNAotCW1vdglyNSwgcjEJ
CQlAIHBhc3Mgcm91bmRzCi0JbW92CXIwLCBzcAotCi0JYmwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQl2
bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEKLQl2bGQxLjY0CXtxMTAscTExfSwgW3IwLDoxMjhd
IQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEuNjQJe3ExMixxMTN9LCBbcjAsOjEyOF0hCi0JdmVv
cglxMSwgcTEsIHE5Ci0JdmVvcglxOCwgcTQsIHExMAotCXZzdDEuOAl7cTAscTF9LCBbcjhdIQot
CXZlb3IJcTksIHE2LCBxMTEKLQl2bGQxLjY0CXtxMTR9LCBbcjAsOjEyOF0hCi0JdmVvcglxMTAs
IHEzLCBxMTIKLQl2c3QxLjgJe3E4LHE5fSwgW3I4XSEKLQl2ZW9yCXExMSwgcTcsIHExMwotCXZl
b3IJcTEyLCBxMiwgcTE0Ci0JdnN0MS44CXtxMTAscTExfSwgW3I4XSEKLQl2c3QxLjgJe3ExMn0s
IFtyOF0hCi0KLQl2bGQxLjY0CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0J
YgkuTHh0c19lbmNfZG9uZQotLmFsaWduCTQKLS5MeHRzX2VuY182OgotCXZlb3IJcTQsIHE0LCBx
MTIKLSNpZm5kZWYJQlNBRVNfQVNNX0VYVEVOREVEX0tFWQotCWFkZAlyNCwgc3AsICMweDkwCQkJ
QCBwYXNzIGtleSBzY2hlZHVsZQotI2Vsc2UKLQlhZGQJcjQsIHIxMCwgIzI0OAkJCUAgcGFzcyBr
ZXkgc2NoZWR1bGUKLSNlbmRpZgotCXZlb3IJcTUsIHE1LCBxMTMKLQltb3YJcjUsIHIxCQkJQCBw
YXNzIHJvdW5kcwotCW1vdglyMCwgc3AKLQotCWJsCV9ic2Flc19lbmNyeXB0OAotCi0JdmxkMS42
NAl7cTgscTl9LCBbcjAsOjEyOF0hCi0JdmxkMS42NAl7cTEwLHExMX0sIFtyMCw6MTI4XSEKLQl2
ZW9yCXEwLCBxMCwgcTgKLQl2bGQxLjY0CXtxMTIscTEzfSwgW3IwLDoxMjhdIQotCXZlb3IJcTEs
IHExLCBxOQotCXZlb3IJcTgsIHE0LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwgW3I4XSEKLQl2ZW9y
CXE5LCBxNiwgcTExCi0JdmVvcglxMTAsIHEzLCBxMTIKLQl2c3QxLjgJe3E4LHE5fSwgW3I4XSEK
LQl2ZW9yCXExMSwgcTcsIHExMwotCXZzdDEuOAl7cTEwLHExMX0sIFtyOF0hCi0KLQl2bGQxLjY0
CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0JYgkuTHh0c19lbmNfZG9uZQot
Ci1AIHB1dCB0aGlzIGluIHJhbmdlIGZvciBib3RoIEFSTSBhbmQgVGh1bWIgbW9kZSBhZHIgaW5z
dHJ1Y3Rpb25zCi0uYWxpZ24JNQotLkx4dHNfbWFnaWM6Ci0ucXVhZAkxLCAweDg3Ci0KLS5hbGln
bgk1Ci0uTHh0c19lbmNfNToKLQl2ZW9yCXEzLCBxMywgcTExCi0jaWZuZGVmCUJTQUVTX0FTTV9F
WFRFTkRFRF9LRVkKLQlhZGQJcjQsIHNwLCAjMHg5MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNl
bHNlCi0JYWRkCXI0LCByMTAsICMyNDgJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZW5kaWYKLQl2
ZW9yCXE0LCBxNCwgcTEyCi0JbW92CXI1LCByMQkJCUAgcGFzcyByb3VuZHMKLQltb3YJcjAsIHNw
Ci0KLQlibAlfYnNhZXNfZW5jcnlwdDgKLQotCXZsZDEuNjQJe3E4LHE5fSwgW3IwLDoxMjhdIQot
CXZsZDEuNjQJe3ExMCxxMTF9LCBbcjAsOjEyOF0hCi0JdmVvcglxMCwgcTAsIHE4Ci0JdmxkMS42
NAl7cTEyfSwgW3IwLDoxMjhdIQotCXZlb3IJcTEsIHExLCBxOQotCXZlb3IJcTgsIHE0LCBxMTAK
LQl2c3QxLjgJe3EwLHExfSwgW3I4XSEKLQl2ZW9yCXE5LCBxNiwgcTExCi0JdmVvcglxMTAsIHEz
LCBxMTIKLQl2c3QxLjgJe3E4LHE5fSwgW3I4XSEKLQl2c3QxLjgJe3ExMH0sIFtyOF0hCi0KLQl2
bGQxLjY0CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0JYgkuTHh0c19lbmNf
ZG9uZQotLmFsaWduCTQKLS5MeHRzX2VuY180OgotCXZlb3IJcTIsIHEyLCBxMTAKLSNpZm5kZWYJ
QlNBRVNfQVNNX0VYVEVOREVEX0tFWQotCWFkZAlyNCwgc3AsICMweDkwCQkJQCBwYXNzIGtleSBz
Y2hlZHVsZQotI2Vsc2UKLQlhZGQJcjQsIHIxMCwgIzI0OAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUK
LSNlbmRpZgotCXZlb3IJcTMsIHEzLCBxMTEKLQltb3YJcjUsIHIxCQkJQCBwYXNzIHJvdW5kcwot
CW1vdglyMCwgc3AKLQotCWJsCV9ic2Flc19lbmNyeXB0OAotCi0JdmxkMS42NAl7cTgscTl9LCBb
cjAsOjEyOF0hCi0JdmxkMS42NAl7cTEwLHExMX0sIFtyMCw6MTI4XSEKLQl2ZW9yCXEwLCBxMCwg
cTgKLQl2ZW9yCXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBxNCwgcTEwCi0JdnN0MS44CXtxMCxxMX0s
IFtyOF0hCi0JdmVvcglxOSwgcTYsIHExMQotCXZzdDEuOAl7cTgscTl9LCBbcjhdIQotCi0Jdmxk
MS42NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCWIJLkx4dHNfZW5jX2Rv
bmUKLS5hbGlnbgk0Ci0uTHh0c19lbmNfMzoKLQl2ZW9yCXExLCBxMSwgcTkKLSNpZm5kZWYJQlNB
RVNfQVNNX0VYVEVOREVEX0tFWQotCWFkZAlyNCwgc3AsICMweDkwCQkJQCBwYXNzIGtleSBzY2hl
ZHVsZQotI2Vsc2UKLQlhZGQJcjQsIHIxMCwgIzI0OAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNl
bmRpZgotCXZlb3IJcTIsIHEyLCBxMTAKLQltb3YJcjUsIHIxCQkJQCBwYXNzIHJvdW5kcwotCW1v
dglyMCwgc3AKLQotCWJsCV9ic2Flc19lbmNyeXB0OAotCi0JdmxkMS42NAl7cTgscTl9LCBbcjAs
OjEyOF0hCi0JdmxkMS42NAl7cTEwfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZl
b3IJcTEsIHExLCBxOQotCXZlb3IJcTgsIHE0LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwgW3I4XSEK
LQl2c3QxLjgJe3E4fSwgW3I4XSEKLQotCXZsZDEuNjQJe3E4fSwgW3IwLDoxMjhdCQlAIG5leHQg
cm91bmQgdHdlYWsKLQliCS5MeHRzX2VuY19kb25lCi0uYWxpZ24JNAotLkx4dHNfZW5jXzI6Ci0J
dmVvcglxMCwgcTAsIHE4Ci0jaWZuZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlhZGQJcjQs
IHNwLCAjMHg5MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCByMTAsICMy
NDgJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZW5kaWYKLQl2ZW9yCXExLCBxMSwgcTkKLQltb3YJ
cjUsIHIxCQkJQCBwYXNzIHJvdW5kcwotCW1vdglyMCwgc3AKLQotCWJsCV9ic2Flc19lbmNyeXB0
OAotCi0JdmxkMS42NAl7cTgscTl9LCBbcjAsOjEyOF0hCi0JdmVvcglxMCwgcTAsIHE4Ci0JdmVv
cglxMSwgcTEsIHE5Ci0JdnN0MS44CXtxMCxxMX0sIFtyOF0hCi0KLQl2bGQxLjY0CXtxOH0sIFty
MCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0JYgkuTHh0c19lbmNfZG9uZQotLmFsaWduCTQK
LS5MeHRzX2VuY18xOgotCW1vdglyMCwgc3AKLQl2ZW9yCXEwLCBxMCwgcTgKLQltb3YJcjEsIHNw
Ci0JdnN0MS44CXtxMH0sIFtzcCw6MTI4XQotCW1vdglyMiwgcjEwCi0JbW92CXI0LCByMwkJCQlA
IHByZXNlcnZlIGZwCi0KLQlibAlBRVNfZW5jcnlwdAotCi0JdmxkMS44CXtxMH0sIFtzcCw6MTI4
XQotCXZlb3IJcTAsIHEwLCBxOAotCXZzdDEuOAl7cTB9LCBbcjhdIQotCW1vdglyMywgcjQKLQot
CXZtb3YJcTgsIHE5CQlAIG5leHQgcm91bmQgdHdlYWsKLQotLkx4dHNfZW5jX2RvbmU6Ci0jaWZu
ZGVmCVhUU19DSEFJTl9UV0VBSwotCWFkZHMJcjksICMweDEwCi0JYmVxCS5MeHRzX2VuY19yZXQK
LQlzdWIJcjYsIHI4LCAjMHgxMAotCi0uTHh0c19lbmNfc3RlYWw6Ci0JbGRyYglyMCwgW3I3XSwg
IzEKLQlsZHJiCXIxLCBbcjgsICMtMHgxMF0KLQlzdHJiCXIwLCBbcjgsICMtMHgxMF0KLQlzdHJi
CXIxLCBbcjhdLCAjMQotCi0Jc3VicwlyOSwgIzEKLQliaGkJLkx4dHNfZW5jX3N0ZWFsCi0KLQl2
bGQxLjgJe3EwfSwgW3I2XQotCW1vdglyMCwgc3AKLQl2ZW9yCXEwLCBxMCwgcTgKLQltb3YJcjEs
IHNwCi0JdnN0MS44CXtxMH0sIFtzcCw6MTI4XQotCW1vdglyMiwgcjEwCi0JbW92CXI0LCByMwkJ
CUAgcHJlc2VydmUgZnAKLQotCWJsCUFFU19lbmNyeXB0Ci0KLQl2bGQxLjgJe3EwfSwgW3NwLDox
MjhdCi0JdmVvcglxMCwgcTAsIHE4Ci0JdnN0MS44CXtxMH0sIFtyNl0KLQltb3YJcjMsIHI0Ci0j
ZW5kaWYKLQotLkx4dHNfZW5jX3JldDoKLQliaWMJcjAsIHIzLCAjMHhmCi0Jdm1vdi5pMzIJcTAs
ICMwCi0Jdm1vdi5pMzIJcTEsICMwCi0jaWZkZWYJWFRTX0NIQUlOX1RXRUFLCi0JbGRyCXIxLCBb
cjMsICMweDIwK1ZGUF9BQklfRlJBTUVdCUAgY2hhaW4gdHdlYWsKLSNlbmRpZgotLkx4dHNfZW5j
X2J6ZXJvOkAgd2lwZSBrZXkgc2NoZWR1bGUgW2lmIGFueV0KLQl2c3RtaWEJc3AhLCB7cTAscTF9
Ci0JY21wCXNwLCByMAotCWJuZQkuTHh0c19lbmNfYnplcm8KLQotCW1vdglzcCwgcjMKLSNpZmRl
ZglYVFNfQ0hBSU5fVFdFQUsKLQl2c3QxLjgJe3E4fSwgW3IxXQotI2VuZGlmCi0JVkZQX0FCSV9Q
T1AKLQlsZG1pYQlzcCEsIHtyNCxyNSxyNixyNyxyOCxyOSxyMTAsIHBjfQlAIHJldHVybgotCi0u
c2l6ZQlic2Flc194dHNfZW5jcnlwdCwuLWJzYWVzX3h0c19lbmNyeXB0Ci0KLS5nbG9ibAlic2Fl
c194dHNfZGVjcnlwdAotLmhpZGRlbglic2Flc194dHNfZGVjcnlwdAotLnR5cGUJYnNhZXNfeHRz
X2RlY3J5cHQsJWZ1bmN0aW9uCi0uYWxpZ24JNAotYnNhZXNfeHRzX2RlY3J5cHQ6Ci0JbW92CWlw
LCBzcAotCXN0bWRiCXNwISwge3I0LHI1LHI2LHI3LHI4LHI5LHIxMCwgbHJ9CQlAIDB4MjAKLQlW
RlBfQUJJX1BVU0gKLQltb3YJcjYsIHNwCQkJCUAgZnV0dXJlIHIzCi0KLQltb3YJcjcsIHIwCi0J
bW92CXI4LCByMQotCW1vdglyOSwgcjIKLQltb3YJcjEwLCByMwotCi0Jc3ViCXIwLCBzcCwgIzB4
MTAJCQlAIDB4MTAKLQliaWMJcjAsICMweGYJCQlAIGFsaWduIGF0IDE2IGJ5dGVzCi0JbW92CXNw
LCByMAotCi0jaWZkZWYJWFRTX0NIQUlOX1RXRUFLCi0JbGRyCXIwLCBbaXBdCQkJQCBwb2ludGVy
IHRvIGlucHV0IHR3ZWFrCi0jZWxzZQotCUAgZ2VuZXJhdGUgaW5pdGlhbCB0d2VhawotCWxkcgly
MCwgW2lwLCAjNF0JCQlAIGl2W10KLQltb3YJcjEsIHNwCi0JbGRyCXIyLCBbaXAsICMwXQkJCUAg
a2V5MgotCWJsCUFFU19lbmNyeXB0Ci0JbW92CXIwLCBzcAkJCQlAIHBvaW50ZXIgdG8gaW5pdGlh
bCB0d2VhawotI2VuZGlmCi0KLQlsZHIJcjEsIFtyMTAsICMyNDBdCQlAIGdldCAjIG9mIHJvdW5k
cwotCW1vdglyMywgcjYKLSNpZm5kZWYJQlNBRVNfQVNNX0VYVEVOREVEX0tFWQotCUAgYWxsb2Nh
dGUgdGhlIGtleSBzY2hlZHVsZSBvbiB0aGUgc3RhY2sKLQlzdWIJcjEyLCBzcCwgcjEsIGxzbCM3
CQlAIDEyOCBieXRlcyBwZXIgaW5uZXIgcm91bmQga2V5Ci0JQCBhZGQJcjEyLCAjOTYJCQlAIHNp
emUgb2YgYml0LXNsaWNlZCBrZXkgc2NoZWR1bGUKLQlzdWIJcjEyLCAjNDgJCQlAIHBsYWNlIGZv
ciB0d2Vha1s5XQotCi0JQCBwb3B1bGF0ZSB0aGUga2V5IHNjaGVkdWxlCi0JbW92CXI0LCByMTAJ
CQlAIHBhc3Mga2V5Ci0JbW92CXI1LCByMQkJCUAgcGFzcyAjIG9mIHJvdW5kcwotCW1vdglzcCwg
cjEyCi0JYWRkCXIxMiwgIzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0JYmwJX2JzYWVzX2tl
eV9jb252ZXJ0Ci0JYWRkCXI0LCBzcCwgIzB4OTAKLQl2bGRtaWEJcjQsIHtxNn0KLQl2c3RtaWEJ
cjEyLCAge3ExNX0JCUAgc2F2ZSBsYXN0IHJvdW5kIGtleQotCXZlb3IJcTcsIHE3LCBxNglAIGZp
eCB1cCByb3VuZCAwIGtleQotCXZzdG1pYQlyNCwge3E3fQotI2Vsc2UKLQlsZHIJcjEyLCBbcjEw
LCAjMjQ0XQotCWVvcnMJcjEyLCAjMQotCWJlcQkwZgotCi0Jc3RyCXIxMiwgW3IxMCwgIzI0NF0K
LQltb3YJcjQsIHIxMAkJCUAgcGFzcyBrZXkKLQltb3YJcjUsIHIxCQkJQCBwYXNzICMgb2Ygcm91
bmRzCi0JYWRkCXIxMiwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotCWJsCV9ic2Fl
c19rZXlfY29udmVydAotCWFkZAlyNCwgcjEwLCAjMjQ4Ci0JdmxkbWlhCXI0LCB7cTZ9Ci0JdnN0
bWlhCXIxMiwgIHtxMTV9CQlAIHNhdmUgbGFzdCByb3VuZCBrZXkKLQl2ZW9yCXE3LCBxNywgcTYJ
QCBmaXggdXAgcm91bmQgMCBrZXkKLQl2c3RtaWEJcjQsIHtxN30KLQotLmFsaWduCTIKLQlzdWIJ
c3AsICMweDkwCQkJQCBwbGFjZSBmb3IgdHdlYWtbOV0KLSNlbmRpZgotCXZsZDEuOAl7cTh9LCBb
cjBdCQkJQCBpbml0aWFsIHR3ZWFrCi0JYWRyCXIyLCAuTHh0c19tYWdpYwotCi0jaWZuZGVmCVhU
U19DSEFJTl9UV0VBSwotCXRzdAlyOSwgIzB4ZgkJCUAgaWYgbm90IG11bHRpcGxlIG9mIDE2Ci0J
aXQJbmUJCQkJQCBUaHVtYjIgdGhpbmcsIHNhbml0eSBjaGVjayBpbiBBUk0KLQlzdWJuZQlyOSwg
IzB4MTAJCQlAIHN1YnRyYWN0IGFub3RoZXIgMTYgYnl0ZXMKLSNlbmRpZgotCXN1YnMJcjksICMw
eDgwCi0KLQlibG8JLkx4dHNfZGVjX3Nob3J0Ci0JYgkuTHh0c19kZWNfbG9vcAotCi0uYWxpZ24J
NAotLkx4dHNfZGVjX2xvb3A6Ci0JdmxkbWlhCXIyLCB7cTV9CUAgbG9hZCBYVFMgbWFnaWMKLQl2
c2hyLnM2NAlxNiwgcTgsICM2MwotCW1vdglyMCwgc3AKLQl2YW5kCXE2LCBxNiwgcTUKLQl2YWRk
LnU2NAlxOSwgcTgsIHE4Ci0JdnN0MS42NAl7cTh9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTMsZDEy
Ci0JdnNoci5zNjQJcTcsIHE5LCAjNjMKLQl2ZW9yCXE5LCBxOSwgcTYKLQl2YW5kCXE3LCBxNywg
cTUKLQl2YWRkLnU2NAlxMTAsIHE5LCBxOQotCXZzdDEuNjQJe3E5fSwgW3IwLDoxMjhdIQotCXZz
d3AJZDE1LGQxNAotCXZzaHIuczY0CXE2LCBxMTAsICM2MwotCXZlb3IJcTEwLCBxMTAsIHE3Ci0J
dmFuZAlxNiwgcTYsIHE1Ci0JdmxkMS44CXtxMH0sIFtyN10hCi0JdmFkZC51NjQJcTExLCBxMTAs
IHExMAotCXZzdDEuNjQJe3ExMH0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hyLnM2
NAlxNywgcTExLCAjNjMKLQl2ZW9yCXExMSwgcTExLCBxNgotCXZhbmQJcTcsIHE3LCBxNQotCXZs
ZDEuOAl7cTF9LCBbcjddIQotCXZlb3IJcTAsIHEwLCBxOAotCXZhZGQudTY0CXExMiwgcTExLCBx
MTEKLQl2c3QxLjY0CXtxMTF9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5zNjQJ
cTYsIHExMiwgIzYzCi0JdmVvcglxMTIsIHExMiwgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2bGQx
LjgJe3EyfSwgW3I3XSEKLQl2ZW9yCXExLCBxMSwgcTkKLQl2YWRkLnU2NAlxMTMsIHExMiwgcTEy
Ci0JdnN0MS42NAl7cTEyfSwgW3IwLDoxMjhdIQotCXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3
LCBxMTMsICM2MwotCXZlb3IJcTEzLCBxMTMsIHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmxkMS44
CXtxM30sIFtyN10hCi0JdmVvcglxMiwgcTIsIHExMAotCXZhZGQudTY0CXExNCwgcTEzLCBxMTMK
LQl2c3QxLjY0CXtxMTN9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5zNjQJcTYs
IHExNCwgIzYzCi0JdmVvcglxMTQsIHExNCwgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2bGQxLjgJ
e3E0fSwgW3I3XSEKLQl2ZW9yCXEzLCBxMywgcTExCi0JdmFkZC51NjQJcTE1LCBxMTQsIHExNAot
CXZzdDEuNjQJe3ExNH0sIFtyMCw6MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hyLnM2NAlxNywg
cTE1LCAjNjMKLQl2ZW9yCXExNSwgcTE1LCBxNgotCXZhbmQJcTcsIHE3LCBxNQotCXZsZDEuOAl7
cTV9LCBbcjddIQotCXZlb3IJcTQsIHE0LCBxMTIKLQl2YWRkLnU2NAlxOCwgcTE1LCBxMTUKLQl2
c3QxLjY0CXtxMTV9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdmVvcglxOCwgcTgsIHE3
Ci0JdnN0MS42NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCi0JdmxkMS44
CXtxNixxN30sIFtyN10hCi0JdmVvcglxNSwgcTUsIHExMwotI2lmbmRlZglCU0FFU19BU01fRVhU
RU5ERURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxz
ZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVv
cglxNiwgcTYsIHExNAotCW1vdglyNSwgcjEJCQlAIHBhc3Mgcm91bmRzCi0JdmVvcglxNywgcTcs
IHExNQotCW1vdglyMCwgc3AKLQotCWJsCV9ic2Flc19kZWNyeXB0OAotCi0JdmxkMS42NAl7cTgs
cTl9LCBbcjAsOjEyOF0hCi0JdmxkMS42NAl7cTEwLHExMX0sIFtyMCw6MTI4XSEKLQl2ZW9yCXEw
LCBxMCwgcTgKLQl2bGQxLjY0CXtxMTIscTEzfSwgW3IwLDoxMjhdIQotCXZlb3IJcTEsIHExLCBx
OQotCXZlb3IJcTgsIHE2LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwgW3I4XSEKLQl2ZW9yCXE5LCBx
NCwgcTExCi0JdmxkMS42NAl7cTE0LHExNX0sIFtyMCw6MTI4XSEKLQl2ZW9yCXExMCwgcTIsIHEx
MgotCXZzdDEuOAl7cTgscTl9LCBbcjhdIQotCXZlb3IJcTExLCBxNywgcTEzCi0JdmVvcglxMTIs
IHEzLCBxMTQKLQl2c3QxLjgJe3ExMCxxMTF9LCBbcjhdIQotCXZlb3IJcTEzLCBxNSwgcTE1Ci0J
dnN0MS44CXtxMTIscTEzfSwgW3I4XSEKLQotCXZsZDEuNjQJe3E4fSwgW3IwLDoxMjhdCQlAIG5l
eHQgcm91bmQgdHdlYWsKLQotCXN1YnMJcjksICMweDgwCi0JYnBsCS5MeHRzX2RlY19sb29wCi0K
LS5MeHRzX2RlY19zaG9ydDoKLQlhZGRzCXI5LCAjMHg3MAotCWJtaQkuTHh0c19kZWNfZG9uZQot
Ci0JdmxkbWlhCXIyLCB7cTV9CUAgbG9hZCBYVFMgbWFnaWMKLQl2c2hyLnM2NAlxNywgcTgsICM2
MwotCW1vdglyMCwgc3AKLQl2YW5kCXE3LCBxNywgcTUKLQl2YWRkLnU2NAlxOSwgcTgsIHE4Ci0J
dnN0MS42NAl7cTh9LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5zNjQJcTYsIHE5
LCAjNjMKLQl2ZW9yCXE5LCBxOSwgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2YWRkLnU2NAlxMTAs
IHE5LCBxOQotCXZzdDEuNjQJe3E5fSwgW3IwLDoxMjhdIQotCXZzd3AJZDEzLGQxMgotCXZzaHIu
czY0CXE3LCBxMTAsICM2MwotCXZlb3IJcTEwLCBxMTAsIHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0J
dmxkMS44CXtxMH0sIFtyN10hCi0Jc3VicwlyOSwgIzB4MTAKLQlibWkJLkx4dHNfZGVjXzEKLQl2
YWRkLnU2NAlxMTEsIHExMCwgcTEwCi0JdnN0MS42NAl7cTEwfSwgW3IwLDoxMjhdIQotCXZzd3AJ
ZDE1LGQxNAotCXZzaHIuczY0CXE2LCBxMTEsICM2MwotCXZlb3IJcTExLCBxMTEsIHE3Ci0JdmFu
ZAlxNiwgcTYsIHE1Ci0JdmxkMS44CXtxMX0sIFtyN10hCi0Jc3VicwlyOSwgIzB4MTAKLQlibWkJ
Lkx4dHNfZGVjXzIKLQl2ZW9yCXEwLCBxMCwgcTgKLQl2YWRkLnU2NAlxMTIsIHExMSwgcTExCi0J
dnN0MS42NAl7cTExfSwgW3IwLDoxMjhdIQotCXZzd3AJZDEzLGQxMgotCXZzaHIuczY0CXE3LCBx
MTIsICM2MwotCXZlb3IJcTEyLCBxMTIsIHE2Ci0JdmFuZAlxNywgcTcsIHE1Ci0JdmxkMS44CXtx
Mn0sIFtyN10hCi0Jc3VicwlyOSwgIzB4MTAKLQlibWkJLkx4dHNfZGVjXzMKLQl2ZW9yCXExLCBx
MSwgcTkKLQl2YWRkLnU2NAlxMTMsIHExMiwgcTEyCi0JdnN0MS42NAl7cTEyfSwgW3IwLDoxMjhd
IQotCXZzd3AJZDE1LGQxNAotCXZzaHIuczY0CXE2LCBxMTMsICM2MwotCXZlb3IJcTEzLCBxMTMs
IHE3Ci0JdmFuZAlxNiwgcTYsIHE1Ci0JdmxkMS44CXtxM30sIFtyN10hCi0Jc3VicwlyOSwgIzB4
MTAKLQlibWkJLkx4dHNfZGVjXzQKLQl2ZW9yCXEyLCBxMiwgcTEwCi0JdmFkZC51NjQJcTE0LCBx
MTMsIHExMwotCXZzdDEuNjQJe3ExM30sIFtyMCw6MTI4XSEKLQl2c3dwCWQxMyxkMTIKLQl2c2hy
LnM2NAlxNywgcTE0LCAjNjMKLQl2ZW9yCXExNCwgcTE0LCBxNgotCXZhbmQJcTcsIHE3LCBxNQot
CXZsZDEuOAl7cTR9LCBbcjddIQotCXN1YnMJcjksICMweDEwCi0JYm1pCS5MeHRzX2RlY181Ci0J
dmVvcglxMywgcTMsIHExMQotCXZhZGQudTY0CXExNSwgcTE0LCBxMTQKLQl2c3QxLjY0CXtxMTR9
LCBbcjAsOjEyOF0hCi0JdnN3cAlkMTUsZDE0Ci0JdnNoci5zNjQJcTYsIHExNSwgIzYzCi0JdmVv
cglxMTUsIHExNSwgcTcKLQl2YW5kCXE2LCBxNiwgcTUKLQl2bGQxLjgJe3E1fSwgW3I3XSEKLQlz
dWJzCXI5LCAjMHgxMAotCWJtaQkuTHh0c19kZWNfNgotCXZlb3IJcTQsIHE0LCBxMTIKLQlzdWIJ
cjksICMweDEwCi0JdnN0MS42NAl7cTE1fSwgW3IwLDoxMjhdCQlAIG5leHQgcm91bmQgdHdlYWsK
LQotCXZsZDEuOAl7cTZ9LCBbcjddIQotCXZlb3IJcTUsIHE1LCBxMTMKLSNpZm5kZWYJQlNBRVNf
QVNNX0VYVEVOREVEX0tFWQotCWFkZAlyNCwgc3AsICMweDkwCQkJQCBwYXNzIGtleSBzY2hlZHVs
ZQotI2Vsc2UKLQlhZGQJcjQsIHIxMCwgIzI0OAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbmRp
ZgotCXZlb3IJcTYsIHE2LCBxMTQKLQltb3YJcjUsIHIxCQkJQCBwYXNzIHJvdW5kcwotCW1vdgly
MCwgc3AKLQotCWJsCV9ic2Flc19kZWNyeXB0OAotCi0JdmxkMS42NAl7cTgscTl9LCBbcjAsOjEy
OF0hCi0JdmxkMS42NAl7cTEwLHExMX0sIFtyMCw6MTI4XSEKLQl2ZW9yCXEwLCBxMCwgcTgKLQl2
bGQxLjY0CXtxMTIscTEzfSwgW3IwLDoxMjhdIQotCXZlb3IJcTEsIHExLCBxOQotCXZlb3IJcTgs
IHE2LCBxMTAKLQl2c3QxLjgJe3EwLHExfSwgW3I4XSEKLQl2ZW9yCXE5LCBxNCwgcTExCi0Jdmxk
MS42NAl7cTE0fSwgW3IwLDoxMjhdIQotCXZlb3IJcTEwLCBxMiwgcTEyCi0JdnN0MS44CXtxOCxx
OX0sIFtyOF0hCi0JdmVvcglxMTEsIHE3LCBxMTMKLQl2ZW9yCXExMiwgcTMsIHExNAotCXZzdDEu
OAl7cTEwLHExMX0sIFtyOF0hCi0JdnN0MS44CXtxMTJ9LCBbcjhdIQotCi0JdmxkMS42NAl7cTh9
LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2VhawotCWIJLkx4dHNfZGVjX2RvbmUKLS5hbGln
bgk0Ci0uTHh0c19kZWNfNjoKLQl2c3QxLjY0CXtxMTR9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3Vu
ZCB0d2VhawotCi0JdmVvcglxNCwgcTQsIHExMgotI2lmbmRlZglCU0FFU19BU01fRVhURU5ERURf
S0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxzZQotCWFk
ZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVvcglxNSwg
cTUsIHExMwotCW1vdglyNSwgcjEJCQlAIHBhc3Mgcm91bmRzCi0JbW92CXIwLCBzcAotCi0JYmwJ
X2JzYWVzX2RlY3J5cHQ4Ci0KLQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEKLQl2bGQxLjY0
CXtxMTAscTExfSwgW3IwLDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEuNjQJe3ExMixx
MTN9LCBbcjAsOjEyOF0hCi0JdmVvcglxMSwgcTEsIHE5Ci0JdmVvcglxOCwgcTYsIHExMAotCXZz
dDEuOAl7cTAscTF9LCBbcjhdIQotCXZlb3IJcTksIHE0LCBxMTEKLQl2ZW9yCXExMCwgcTIsIHEx
MgotCXZzdDEuOAl7cTgscTl9LCBbcjhdIQotCXZlb3IJcTExLCBxNywgcTEzCi0JdnN0MS44CXtx
MTAscTExfSwgW3I4XSEKLQotCXZsZDEuNjQJe3E4fSwgW3IwLDoxMjhdCQlAIG5leHQgcm91bmQg
dHdlYWsKLQliCS5MeHRzX2RlY19kb25lCi0uYWxpZ24JNAotLkx4dHNfZGVjXzU6Ci0JdmVvcglx
MywgcTMsIHExMQotI2lmbmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwg
IzB4OTAJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJ
QCBwYXNzIGtleSBzY2hlZHVsZQotI2VuZGlmCi0JdmVvcglxNCwgcTQsIHExMgotCW1vdglyNSwg
cjEJCQlAIHBhc3Mgcm91bmRzCi0JbW92CXIwLCBzcAotCi0JYmwJX2JzYWVzX2RlY3J5cHQ4Ci0K
LQl2bGQxLjY0CXtxOCxxOX0sIFtyMCw6MTI4XSEKLQl2bGQxLjY0CXtxMTAscTExfSwgW3IwLDox
MjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZsZDEuNjQJe3ExMn0sIFtyMCw6MTI4XSEKLQl2ZW9y
CXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBxNiwgcTEwCi0JdnN0MS44CXtxMCxxMX0sIFtyOF0hCi0J
dmVvcglxOSwgcTQsIHExMQotCXZlb3IJcTEwLCBxMiwgcTEyCi0JdnN0MS44CXtxOCxxOX0sIFty
OF0hCi0JdnN0MS44CXtxMTB9LCBbcjhdIQotCi0JdmxkMS42NAl7cTh9LCBbcjAsOjEyOF0JCUAg
bmV4dCByb3VuZCB0d2VhawotCWIJLkx4dHNfZGVjX2RvbmUKLS5hbGlnbgk0Ci0uTHh0c19kZWNf
NDoKLQl2ZW9yCXEyLCBxMiwgcTEwCi0jaWZuZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlh
ZGQJcjQsIHNwLCAjMHg5MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCBy
MTAsICMyNDgJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZW5kaWYKLQl2ZW9yCXEzLCBxMywgcTEx
Ci0JbW92CXI1LCByMQkJCUAgcGFzcyByb3VuZHMKLQltb3YJcjAsIHNwCi0KLQlibAlfYnNhZXNf
ZGVjcnlwdDgKLQotCXZsZDEuNjQJe3E4LHE5fSwgW3IwLDoxMjhdIQotCXZsZDEuNjQJe3ExMCxx
MTF9LCBbcjAsOjEyOF0hCi0JdmVvcglxMCwgcTAsIHE4Ci0JdmVvcglxMSwgcTEsIHE5Ci0JdmVv
cglxOCwgcTYsIHExMAotCXZzdDEuOAl7cTAscTF9LCBbcjhdIQotCXZlb3IJcTksIHE0LCBxMTEK
LQl2c3QxLjgJe3E4LHE5fSwgW3I4XSEKLQotCXZsZDEuNjQJe3E4fSwgW3IwLDoxMjhdCQlAIG5l
eHQgcm91bmQgdHdlYWsKLQliCS5MeHRzX2RlY19kb25lCi0uYWxpZ24JNAotLkx4dHNfZGVjXzM6
Ci0JdmVvcglxMSwgcTEsIHE5Ci0jaWZuZGVmCUJTQUVTX0FTTV9FWFRFTkRFRF9LRVkKLQlhZGQJ
cjQsIHNwLCAjMHg5MAkJCUAgcGFzcyBrZXkgc2NoZWR1bGUKLSNlbHNlCi0JYWRkCXI0LCByMTAs
ICMyNDgJCQlAIHBhc3Mga2V5IHNjaGVkdWxlCi0jZW5kaWYKLQl2ZW9yCXEyLCBxMiwgcTEwCi0J
bW92CXI1LCByMQkJCUAgcGFzcyByb3VuZHMKLQltb3YJcjAsIHNwCi0KLQlibAlfYnNhZXNfZGVj
cnlwdDgKLQotCXZsZDEuNjQJe3E4LHE5fSwgW3IwLDoxMjhdIQotCXZsZDEuNjQJe3ExMH0sIFty
MCw6MTI4XSEKLQl2ZW9yCXEwLCBxMCwgcTgKLQl2ZW9yCXExLCBxMSwgcTkKLQl2ZW9yCXE4LCBx
NiwgcTEwCi0JdnN0MS44CXtxMCxxMX0sIFtyOF0hCi0JdnN0MS44CXtxOH0sIFtyOF0hCi0KLQl2
bGQxLjY0CXtxOH0sIFtyMCw6MTI4XQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0JYgkuTHh0c19kZWNf
ZG9uZQotLmFsaWduCTQKLS5MeHRzX2RlY18yOgotCXZlb3IJcTAsIHEwLCBxOAotI2lmbmRlZglC
U0FFU19BU01fRVhURU5ERURfS0VZCi0JYWRkCXI0LCBzcCwgIzB4OTAJCQlAIHBhc3Mga2V5IHNj
aGVkdWxlCi0jZWxzZQotCWFkZAlyNCwgcjEwLCAjMjQ4CQkJQCBwYXNzIGtleSBzY2hlZHVsZQot
I2VuZGlmCi0JdmVvcglxMSwgcTEsIHE5Ci0JbW92CXI1LCByMQkJCUAgcGFzcyByb3VuZHMKLQlt
b3YJcjAsIHNwCi0KLQlibAlfYnNhZXNfZGVjcnlwdDgKLQotCXZsZDEuNjQJe3E4LHE5fSwgW3Iw
LDoxMjhdIQotCXZlb3IJcTAsIHEwLCBxOAotCXZlb3IJcTEsIHExLCBxOQotCXZzdDEuOAl7cTAs
cTF9LCBbcjhdIQotCi0JdmxkMS42NAl7cTh9LCBbcjAsOjEyOF0JCUAgbmV4dCByb3VuZCB0d2Vh
awotCWIJLkx4dHNfZGVjX2RvbmUKLS5hbGlnbgk0Ci0uTHh0c19kZWNfMToKLQltb3YJcjAsIHNw
Ci0JdmVvcglxMCwgcTAsIHE4Ci0JbW92CXIxLCBzcAotCXZzdDEuOAl7cTB9LCBbc3AsOjEyOF0K
LQltb3YJcjUsIHIyCQkJQCBwcmVzZXJ2ZSBtYWdpYwotCW1vdglyMiwgcjEwCi0JbW92CXI0LCBy
MwkJCQlAIHByZXNlcnZlIGZwCi0KLQlibAlBRVNfZGVjcnlwdAotCi0JdmxkMS44CXtxMH0sIFtz
cCw6MTI4XQotCXZlb3IJcTAsIHEwLCBxOAotCXZzdDEuOAl7cTB9LCBbcjhdIQotCW1vdglyMywg
cjQKLQltb3YJcjIsIHI1Ci0KLQl2bW92CXE4LCBxOQkJQCBuZXh0IHJvdW5kIHR3ZWFrCi0KLS5M
eHRzX2RlY19kb25lOgotI2lmbmRlZglYVFNfQ0hBSU5fVFdFQUsKLQlhZGRzCXI5LCAjMHgxMAot
CWJlcQkuTHh0c19kZWNfcmV0Ci0KLQlAIGNhbGN1bGF0ZSBvbmUgcm91bmQgb2YgZXh0cmEgdHdl
YWsgZm9yIHRoZSBzdG9sZW4gY2lwaGVydGV4dAotCXZsZG1pYQlyMiwge3E1fQotCXZzaHIuczY0
CXE2LCBxOCwgIzYzCi0JdmFuZAlxNiwgcTYsIHE1Ci0JdmFkZC51NjQJcTksIHE4LCBxOAotCXZz
d3AJZDEzLGQxMgotCXZlb3IJcTksIHE5LCBxNgotCi0JQCBwZXJmb3JtIHRoZSBmaW5hbCBkZWNy
eXB0aW9uIHdpdGggdGhlIGxhc3QgdHdlYWsgdmFsdWUKLQl2bGQxLjgJe3EwfSwgW3I3XSEKLQlt
b3YJcjAsIHNwCi0JdmVvcglxMCwgcTAsIHE5Ci0JbW92CXIxLCBzcAotCXZzdDEuOAl7cTB9LCBb
c3AsOjEyOF0KLQltb3YJcjIsIHIxMAotCW1vdglyNCwgcjMJCQlAIHByZXNlcnZlIGZwCi0KLQli
bAlBRVNfZGVjcnlwdAotCi0JdmxkMS44CXtxMH0sIFtzcCw6MTI4XQotCXZlb3IJcTAsIHEwLCBx
OQotCXZzdDEuOAl7cTB9LCBbcjhdCi0KLQltb3YJcjYsIHI4Ci0uTHh0c19kZWNfc3RlYWw6Ci0J
bGRyYglyMSwgW3I4XQotCWxkcmIJcjAsIFtyN10sICMxCi0Jc3RyYglyMSwgW3I4LCAjMHgxMF0K
LQlzdHJiCXIwLCBbcjhdLCAjMQotCi0Jc3VicwlyOSwgIzEKLQliaGkJLkx4dHNfZGVjX3N0ZWFs
Ci0KLQl2bGQxLjgJe3EwfSwgW3I2XQotCW1vdglyMCwgc3AKLQl2ZW9yCXEwLCBxOAotCW1vdgly
MSwgc3AKLQl2c3QxLjgJe3EwfSwgW3NwLDoxMjhdCi0JbW92CXIyLCByMTAKLQotCWJsCUFFU19k
ZWNyeXB0Ci0KLQl2bGQxLjgJe3EwfSwgW3NwLDoxMjhdCi0JdmVvcglxMCwgcTAsIHE4Ci0JdnN0
MS44CXtxMH0sIFtyNl0KLQltb3YJcjMsIHI0Ci0jZW5kaWYKLQotLkx4dHNfZGVjX3JldDoKLQli
aWMJcjAsIHIzLCAjMHhmCi0Jdm1vdi5pMzIJcTAsICMwCi0Jdm1vdi5pMzIJcTEsICMwCi0jaWZk
ZWYJWFRTX0NIQUlOX1RXRUFLCi0JbGRyCXIxLCBbcjMsICMweDIwK1ZGUF9BQklfRlJBTUVdCUAg
Y2hhaW4gdHdlYWsKLSNlbmRpZgotLkx4dHNfZGVjX2J6ZXJvOkAgd2lwZSBrZXkgc2NoZWR1bGUg
W2lmIGFueV0KLQl2c3RtaWEJc3AhLCB7cTAscTF9Ci0JY21wCXNwLCByMAotCWJuZQkuTHh0c19k
ZWNfYnplcm8KLQotCW1vdglzcCwgcjMKLSNpZmRlZglYVFNfQ0hBSU5fVFdFQUsKLQl2c3QxLjgJ
e3E4fSwgW3IxXQotI2VuZGlmCi0JVkZQX0FCSV9QT1AKLQlsZG1pYQlzcCEsIHtyNCxyNSxyNixy
NyxyOCxyOSxyMTAsIHBjfQlAIHJldHVybgotCi0uc2l6ZQlic2Flc194dHNfZGVjcnlwdCwuLWJz
YWVzX3h0c19kZWNyeXB0CiAjZW5kaWYKICNlbmRpZgogI2VuZGlmICAvLyAhT1BFTlNTTF9OT19B
U00KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1hcm12NC5T
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9kdWxlL2doYXNoLWFybXY0LlMKaW5kZXggNDU5ZWU4
MmU3ZTBhZTY0OGUxM2JlZjM0ODMyNmY1MDkwM2Q0YmI4MS4uYTBmYTUzYzZjNDEwMDJiN2M3NGFl
ODdhZmZjZmM4ZTFjZTI3ZTBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9k
dWxlL2doYXNoLWFybXY0LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9kdWxlL2doYXNo
LWFybXY0LlMKQEAgLTEsMTEgKzEsMTIgQEAKIC8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJv
bSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NMCiAvLyBzb3Vy
Y2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KIAotI2lmIGRlZmluZWQoX19oYXNfZmVhdHVy
ZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2RlZmluZSBfX2hhc19mZWF0dXJlKHgp
IDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5X3Nhbml0aXplcikgJiYgIWRlZmlu
ZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5lIE9QRU5TU0xfTk9fQVNNCiAjZW5kaWYKLSNlbmRp
ZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjaWYgZGVmaW5lZChfX2FybV9fKQpA
QCAtMjIsNiArMjMsOCBAQAogLnRleHQKICNpZiBkZWZpbmVkKF9fdGh1bWIyX18pIHx8IGRlZmlu
ZWQoX19jbGFuZ19fKQogLnN5bnRheAl1bmlmaWVkCisjZGVmaW5lIGxkcnBsYiAgbGRyYnBsCisj
ZGVmaW5lIGxkcm5lYiAgbGRyYm5lCiAjZW5kaWYKICNpZiBkZWZpbmVkKF9fdGh1bWIyX18pCiAu
dGh1bWIKQEAgLTI5LDExICszMiw2IEBACiAuY29kZQkzMgogI2VuZGlmCiAKLSNpZmRlZiAgX19j
bGFuZ19fCi0jZGVmaW5lIGxkcnBsYiAgbGRyYnBsCi0jZGVmaW5lIGxkcm5lYiAgbGRyYm5lCi0j
ZW5kaWYKLQogLnR5cGUJcmVtXzRiaXQsJW9iamVjdAogLmFsaWduCTUKIHJlbV80Yml0OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9kdWxlL2doYXNodjgtYXJteDMyLlMgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9s
aW51eC1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2h2OC1hcm14MzIuUwppbmRleCBkZGY3NGNk
YjkzZWFmYzA0ZjU2M2E3ZjA1MzlhOTZiNjZhMDRiOTNmLi42NWM5ZjIyYTk4OWUzMTI3YjhhMTQ2
OGMyOGZjMGFjZTYzNmM4ZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2ZpcHNtb2R1
bGUvZ2hhc2h2OC1hcm14MzIuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvZ2hh
c2h2OC1hcm14MzIuUwpAQCAtMSwxMSArMSwxMiBAQAogLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRl
ZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKIC8v
IHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChfX2hhc19m
ZWF0dXJlKQorI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1
cmUoeCkgMAorI2VuZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAh
ZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNlbmRpZgot
I2VuZGlmCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKICNpZiBkZWZpbmVkKF9fYXJt
X18pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2ZpcHNtb2R1bGUvc2hhMS1hcm12NC1s
YXJnZS5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9kdWxlL3NoYTEtYXJtdjQtbGFyZ2UuUwpp
bmRleCAzZTQ0Njk4YWZlMDVmNTg4Mzg2MGFmMGMzNjk3Y2RkN2IxMjFmNWZlLi4yYjcwYTMyNTE1
ZDk2NTIyMDUzMDI3ZDY0M2NjYjUxNzFkZGZiYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5
cHRvL2ZpcHNtb2R1bGUvc2hhMS1hcm12NC1sYXJnZS5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8v
Zmlwc21vZHVsZS9zaGExLWFybXY0LWxhcmdlLlMKQEAgLTEsMTEgKzEsMTIgQEAKIC8vIFRoaXMg
ZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0
aGUgQm9yaW5nU1NMCiAvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KIAotI2lm
IGRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2Rl
ZmluZSBfX2hhc19mZWF0dXJlKHgpIDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5
X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5lIE9QRU5TU0xf
Tk9fQVNNCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAj
aWYgZGVmaW5lZChfX2FybV9fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9k
dWxlL3NoYTI1Ni1hcm12NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9kdWxlL3NoYTI1Ni1h
cm12NC5TCmluZGV4IDRmNTczOWE3MTY0N2E3Y2I3NTMxMjE5OTYyODg2MzE5OTU3YjBlNGEuLjE5
MjgwNzUzNDllMzRhNWFmMjFhN2MxMmFjY2YyNWU5OGM1ZmNiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4
LWFybS9jcnlwdG8vZmlwc21vZHVsZS9zaGEyNTYtYXJtdjQuUworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5
cHRvL2ZpcHNtb2R1bGUvc2hhMjU2LWFybXY0LlMKQEAgLTEsMTEgKzEsMTIgQEAKIC8vIFRoaXMg
ZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0
aGUgQm9yaW5nU1NMCiAvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KIAotI2lm
IGRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2Rl
ZmluZSBfX2hhc19mZWF0dXJlKHgpIDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5
X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5lIE9QRU5TU0xf
Tk9fQVNNCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAj
aWYgZGVmaW5lZChfX2FybV9fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9k
dWxlL3NoYTUxMi1hcm12NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9maXBzbW9kdWxlL3NoYTUxMi1h
cm12NC5TCmluZGV4IDNkMWQ3ODE1Yjg0YjE2OTk2NTQyODkyZTNhODIzMWExNThkNDljMTkuLmM0
NGZjYzZjNzc4OTI0ODMyODQ0ZDUwZDYzZmRlZmU1OWUyYTMzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4
LWFybS9jcnlwdG8vZmlwc21vZHVsZS9zaGE1MTItYXJtdjQuUworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5
cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLWFybXY0LlMKQEAgLTEsMTEgKzEsMTIgQEAKIC8vIFRoaXMg
ZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0
aGUgQm9yaW5nU1NMCiAvLyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KIAotI2lm
IGRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNpZiAhZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2Rl
ZmluZSBfX2hhc19mZWF0dXJlKHgpIDAKKyNlbmRpZgogI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5
X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAjZGVmaW5lIE9QRU5TU0xf
Tk9fQVNNCiAjZW5kaWYKLSNlbmRpZgogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCiAj
aWYgZGVmaW5lZChfX2FybV9fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by90ZXN0L3Ry
YW1wb2xpbmUtYXJtdjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vdGVzdC90cmFtcG9saW5lLWFybXY0
LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTUyNmU5OTMxNDRjMTdkNDQ3Y2Y5YzZkZDY1MGNmODEwN2RlMTBmYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vdGVzdC90cmFtcG9saW5lLWFybXY0
LlMKQEAgLTAsMCArMSwzNzkgQEAKKy8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNp
bWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NMCisvLyBzb3VyY2UgdHJl
ZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KKworI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisj
ZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2VuZGlmCisjaWYgX19oYXNfZmVhdHVyZShtZW1v
cnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BFTlNT
TF9OT19BU00KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCisjaWYgZGVm
aW5lZChfX2FybV9fKQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNsdWRlIDxi
b3Jpbmdzc2xfcHJlZml4X3N5bWJvbHNfYXNtLmg+CisjZW5kaWYKKy5zeW50YXgJdW5pZmllZAor
CisuYXJjaAlhcm12Ny1hCisuZnB1CXZmcAorCisudGV4dAorCitAIGFiaV90ZXN0X3RyYW1wb2xp
bmUgbG9hZHMgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBmcm9tIHxzdGF0ZXwsIGNhbGxzIHxmdW5j
fAorQCB3aXRoIHxhcmd2fCwgdGhlbiBzYXZlcyB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBp
bnRvIHxzdGF0ZXwuIEl0IHJldHVybnMKK0AgdGhlIHJlc3VsdCBvZiB8ZnVuY3wuIFRoZSB8dW53
aW5kfCBhcmd1bWVudCBpcyB1bnVzZWQuCitAIHVpbnQzMl90IGFiaV90ZXN0X3RyYW1wb2xpbmUo
dm9pZCAoKmZ1bmMpKC4uLiksIENhbGxlclN0YXRlICpzdGF0ZSwKK0AgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqYXJndiwgc2l6ZV90IGFyZ2MsCitAICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHVud2luZCk7CisudHlwZQlhYmlfdGVzdF90cmFt
cG9saW5lLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF90cmFtcG9saW5lCisuaGlkZGVuCWFi
aV90ZXN0X3RyYW1wb2xpbmUKKy5hbGlnbgk0CithYmlfdGVzdF90cmFtcG9saW5lOgorLkxhYmlf
dGVzdF90cmFtcG9saW5lX2JlZ2luOgorCUAgU2F2ZSBwYXJhbWV0ZXJzIGFuZCBhbGwgY2FsbGVl
LXNhdmVkIHJlZ2lzdGVycy4gRm9yIGNvbnZlbmllbmNlLCB3ZQorCUAgc2F2ZSByOSBvbiBpT1Mg
ZXZlbiB0aG91Z2ggaXQncyB2b2xhdGlsZS4KKwl2c3RtZGIJc3AhLCB7ZDgsZDksZDEwLGQxMSxk
MTIsZDEzLGQxNCxkMTV9CisJc3RtZGIJc3AhLCB7cjAscjEscjIscjMscjQscjUscjYscjcscjgs
cjkscjEwLHIxMSxscn0KKworCUAgUmVzZXJ2ZSBzdGFjayBzcGFjZSBmb3Igc2l4ICgxMC00KSBz
dGFjayBwYXJhbWV0ZXJzLCBwbHVzIGFuIGV4dHJhIDQKKwlAIGJ5dGVzIHRvIGtlZXAgaXQgOC1i
eXRlLWFsaWduZWQgKHNlZSBBQVBDUywgc2VjdGlvbiA1LjMpLgorCXN1YglzcCwgc3AsICMyOAor
CisJQCBFdmVyeSByZWdpc3RlciBpbiBBQVBDUyBpcyBlaXRoZXIgbm9uLXZvbGF0aWxlIG9yIGEg
cGFyYW1ldGVyIChleGNlcHQKKwlAIHI5IG9uIGlPUyksIHNvIHRoaXMgY29kZSwgYnkgdGhlIGFj
dHVhbCBjYWxsLCBsb3NlcyBhbGwgaXRzIHNjcmF0Y2gKKwlAIHJlZ2lzdGVycy4gRmlyc3QgZmls
bCBpbiBzdGFjayBwYXJhbWV0ZXJzIHdoaWxlIHRoZXJlIGFyZSByZWdpc3RlcnMKKwlAIHRvIHNw
YXJlLgorCWNtcAlyMywgIzQKKwlibHMJLkxzdGFja19hcmdzX2RvbmUKKwltb3YJcjQsIHNwCQkJ
CUAgcjQgaXMgdGhlIG91dHB1dCBwb2ludGVyLgorCWFkZAlyNSwgcjIsIHIzLCBsc2wgIzIJQCBT
ZXQgcjUgdG8gdGhlIGVuZCBvZiBhcmd2LgorCWFkZAlyMiwgcjIsICMxNgkJQCBTa2lwIGZvdXIg
YXJndW1lbnRzLgorLkxzdGFja19hcmdzX2xvb3A6CisJbGRyCXI2LCBbcjJdLCAjNAorCWNtcAly
MiwgcjUKKwlzdHIJcjYsIFtyNF0sICM0CisJYm5lCS5Mc3RhY2tfYXJnc19sb29wCisKKy5Mc3Rh
Y2tfYXJnc19kb25lOgorCUAgTG9hZCByZWdpc3RlcnMgZnJvbSB8cjF8LgorCXZsZG1pYQlyMSEs
IHtkOCxkOSxkMTAsZDExLGQxMixkMTMsZDE0LGQxNX0KKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykK
KwlAIHI5IGlzIG5vdCB2b2xhdGlsZSBvbiBpT1MuCisJbGRtaWEJcjEhLCB7cjQscjUscjYscjcs
cjgscjEwLXIxMX0KKyNlbHNlCisJbGRtaWEJcjEhLCB7cjQscjUscjYscjcscjgscjkscjEwLHIx
MX0KKyNlbmRpZgorCisJQCBMb2FkIHJlZ2lzdGVyIHBhcmFtZXRlcnMuIFRoaXMgdXNlcyB1cCBv
dXIgcmVtYWluaW5nIHJlZ2lzdGVycywgc28gd2UKKwlAIHJlcHVycG9zZSBsciBhcyBzY3JhdGNo
IHNwYWNlLgorCWxkcglyMywgW3NwLCAjNDBdCUAgUmVsb2FkIGFyZ2MuCisJbGRyCWxyLCBbc3As
ICMzNl0JCUAgLkxvYWQgYXJndiBpbnRvIGxyLgorCWNtcAlyMywgIzMKKwliaGkJLkxhcmdfcjMK
KwliZXEJLkxhcmdfcjIKKwljbXAJcjMsICMxCisJYmhpCS5MYXJnX3IxCisJYmVxCS5MYXJnX3Iw
CisJYgkuTGFyZ3NfZG9uZQorCisuTGFyZ19yMzoKKwlsZHIJcjMsIFtsciwgIzEyXQlAIGFyZ3Zb
M10KKy5MYXJnX3IyOgorCWxkcglyMiwgW2xyLCAjOF0JQCBhcmd2WzJdCisuTGFyZ19yMToKKwls
ZHIJcjEsIFtsciwgIzRdCUAgYXJndlsxXQorLkxhcmdfcjA6CisJbGRyCXIwLCBbbHJdCUAgYXJn
dlswXQorLkxhcmdzX2RvbmU6CisKKwlAIFdpdGggZXZlcnkgb3RoZXIgcmVnaXN0ZXIgaW4gdXNl
LCBsb2FkIHRoZSBmdW5jdGlvbiBwb2ludGVyIGludG8gbHIKKwlAIGFuZCBjYWxsIHRoZSBmdW5j
dGlvbi4KKwlsZHIJbHIsIFtzcCwgIzI4XQorCWJseAlscgorCisJQCByMS1yMyBhcmUgZnJlZSBm
b3IgdXNlIGFnYWluLiBUaGUgdHJhbXBvbGluZSBvbmx5IHN1cHBvcnRzCisJQCBzaW5nbGUtcmV0
dXJuIGZ1bmN0aW9ucy4gUGFzcyByNC1yMTEgdG8gdGhlIGNhbGxlci4KKwlsZHIJcjEsIFtzcCwg
IzMyXQorCXZzdG1pYQlyMSEsIHtkOCxkOSxkMTAsZDExLGQxMixkMTMsZDE0LGQxNX0KKyNpZiBk
ZWZpbmVkKF9fQVBQTEVfXykKKwlAIHI5IGlzIG5vdCB2b2xhdGlsZSBvbiBpT1MuCisJc3RtaWEJ
cjEhLCB7cjQscjUscjYscjcscjgscjEwLXIxMX0KKyNlbHNlCisJc3RtaWEJcjEhLCB7cjQscjUs
cjYscjcscjgscjkscjEwLHIxMX0KKyNlbmRpZgorCisJQCBVbndpbmQgdGhlIHN0YWNrIGFuZCBy
ZXN0b3JlIHJlZ2lzdGVycy4KKwlhZGQJc3AsIHNwLCAjNDQJCUAgNDQgPSAyOCsxNgorCWxkbWlh
CXNwISwge3I0LHI1LHI2LHI3LHI4LHI5LHIxMCxyMTEsbHJ9CUAgU2tpcCByMC1yMyAoc2VlICsx
NiBhYm92ZSkuCisJdmxkbWlhCXNwISwge2Q4LGQ5LGQxMCxkMTEsZDEyLGQxMyxkMTQsZDE1fQor
CisJYngJbHIKKy5zaXplCWFiaV90ZXN0X3RyYW1wb2xpbmUsLi1hYmlfdGVzdF90cmFtcG9saW5l
CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3IwLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9j
bG9iYmVyX3IwCisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfcjAKKy5hbGlnbgk0CithYmlfdGVz
dF9jbG9iYmVyX3IwOgorCW1vdglyMCwgIzAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJl
cl9yMCwuLWFiaV90ZXN0X2Nsb2JiZXJfcjAKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfcjEsICVm
dW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfcjEKKy5oaWRkZW4JYWJpX3Rlc3RfY2xv
YmJlcl9yMQorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfcjE6CisJbW92CXIxLCAjMAorCWJ4
CWxyCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3IxLC4tYWJpX3Rlc3RfY2xvYmJlcl9yMQorLnR5
cGUJYWJpX3Rlc3RfY2xvYmJlcl9yMiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJl
cl9yMgorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3IyCisuYWxpZ24JNAorYWJpX3Rlc3RfY2xv
YmJlcl9yMjoKKwltb3YJcjIsICMwCisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfcjIs
Li1hYmlfdGVzdF9jbG9iYmVyX3IyCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3IzLCAlZnVuY3Rp
b24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3IzCisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJf
cjMKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3IzOgorCW1vdglyMywgIzAKKwlieAlscgor
LnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9yMywuLWFiaV90ZXN0X2Nsb2JiZXJfcjMKKy50eXBlCWFi
aV90ZXN0X2Nsb2JiZXJfcjQsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfcjQK
Ky5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9yNAorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJf
cjQ6CisJbW92CXI0LCAjMAorCWJ4CWxyCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3I0LC4tYWJp
X3Rlc3RfY2xvYmJlcl9yNAorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9yNSwgJWZ1bmN0aW9uCisu
Z2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9yNQorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3I1Cisu
YWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl9yNToKKwltb3YJcjUsICMwCisJYngJbHIKKy5zaXpl
CWFiaV90ZXN0X2Nsb2JiZXJfcjUsLi1hYmlfdGVzdF9jbG9iYmVyX3I1CisudHlwZQlhYmlfdGVz
dF9jbG9iYmVyX3I2LCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3I2CisuaGlk
ZGVuCWFiaV90ZXN0X2Nsb2JiZXJfcjYKKy5hbGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX3I2Ogor
CW1vdglyNiwgIzAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9yNiwuLWFiaV90ZXN0
X2Nsb2JiZXJfcjYKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfcjcsICVmdW5jdGlvbgorLmdsb2Js
CWFiaV90ZXN0X2Nsb2JiZXJfcjcKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9yNworLmFsaWdu
CTQKK2FiaV90ZXN0X2Nsb2JiZXJfcjc6CisJbW92CXI3LCAjMAorCWJ4CWxyCisuc2l6ZQlhYmlf
dGVzdF9jbG9iYmVyX3I3LC4tYWJpX3Rlc3RfY2xvYmJlcl9yNworLnR5cGUJYWJpX3Rlc3RfY2xv
YmJlcl9yOCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9yOAorLmhpZGRlbglh
YmlfdGVzdF9jbG9iYmVyX3I4CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl9yODoKKwltb3YJ
cjgsICMwCisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfcjgsLi1hYmlfdGVzdF9jbG9i
YmVyX3I4CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3I5LCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlf
dGVzdF9jbG9iYmVyX3I5CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfcjkKKy5hbGlnbgk0Cith
YmlfdGVzdF9jbG9iYmVyX3I5OgorCW1vdglyOSwgIzAKKwlieAlscgorLnNpemUJYWJpX3Rlc3Rf
Y2xvYmJlcl9yOSwuLWFiaV90ZXN0X2Nsb2JiZXJfcjkKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJf
cjEwLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3IxMAorLmhpZGRlbglhYmlf
dGVzdF9jbG9iYmVyX3IxMAorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfcjEwOgorCW1vdgly
MTAsICMwCisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfcjEwLC4tYWJpX3Rlc3RfY2xv
YmJlcl9yMTAKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfcjExLCAlZnVuY3Rpb24KKy5nbG9ibAlh
YmlfdGVzdF9jbG9iYmVyX3IxMQorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX3IxMQorLmFsaWdu
CTQKK2FiaV90ZXN0X2Nsb2JiZXJfcjExOgorCW1vdglyMTEsICMwCisJYngJbHIKKy5zaXplCWFi
aV90ZXN0X2Nsb2JiZXJfcjExLC4tYWJpX3Rlc3RfY2xvYmJlcl9yMTEKKy50eXBlCWFiaV90ZXN0
X2Nsb2JiZXJfcjEyLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3IxMgorLmhp
ZGRlbglhYmlfdGVzdF9jbG9iYmVyX3IxMgorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfcjEy
OgorCW1vdglyMTIsICMwCisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfcjEyLC4tYWJp
X3Rlc3RfY2xvYmJlcl9yMTIKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDAsICVmdW5jdGlvbgor
Lmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfZDAKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMAor
LmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfZDA6CisJbW92CXIwLCAjMAorCXZtb3YJczAsIHIw
CisJdm1vdglzMSwgcjAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kMCwuLWFiaV90
ZXN0X2Nsb2JiZXJfZDAKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDEsICVmdW5jdGlvbgorLmds
b2JsCWFiaV90ZXN0X2Nsb2JiZXJfZDEKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMQorLmFs
aWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfZDE6CisJbW92CXIwLCAjMAorCXZtb3YJczIsIHIwCisJ
dm1vdglzMywgcjAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kMSwuLWFiaV90ZXN0
X2Nsb2JiZXJfZDEKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDIsICVmdW5jdGlvbgorLmdsb2Js
CWFiaV90ZXN0X2Nsb2JiZXJfZDIKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMgorLmFsaWdu
CTQKK2FiaV90ZXN0X2Nsb2JiZXJfZDI6CisJbW92CXIwLCAjMAorCXZtb3YJczQsIHIwCisJdm1v
dglzNSwgcjAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kMiwuLWFiaV90ZXN0X2Ns
b2JiZXJfZDIKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDMsICVmdW5jdGlvbgorLmdsb2JsCWFi
aV90ZXN0X2Nsb2JiZXJfZDMKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMworLmFsaWduCTQK
K2FiaV90ZXN0X2Nsb2JiZXJfZDM6CisJbW92CXIwLCAjMAorCXZtb3YJczYsIHIwCisJdm1vdglz
NywgcjAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kMywuLWFiaV90ZXN0X2Nsb2Ji
ZXJfZDMKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDQsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90
ZXN0X2Nsb2JiZXJfZDQKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kNAorLmFsaWduCTQKK2Fi
aV90ZXN0X2Nsb2JiZXJfZDQ6CisJbW92CXIwLCAjMAorCXZtb3YJczgsIHIwCisJdm1vdglzOSwg
cjAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kNCwuLWFiaV90ZXN0X2Nsb2JiZXJf
ZDQKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDUsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0
X2Nsb2JiZXJfZDUKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kNQorLmFsaWduCTQKK2FiaV90
ZXN0X2Nsb2JiZXJfZDU6CisJbW92CXIwLCAjMAorCXZtb3YJczEwLCByMAorCXZtb3YJczExLCBy
MAorCWJ4CWxyCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2Q1LC4tYWJpX3Rlc3RfY2xvYmJlcl9k
NQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9kNiwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3Rf
Y2xvYmJlcl9kNgorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2Q2CisuYWxpZ24JNAorYWJpX3Rl
c3RfY2xvYmJlcl9kNjoKKwltb3YJcjAsICMwCisJdm1vdglzMTIsIHIwCisJdm1vdglzMTMsIHIw
CisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZDYsLi1hYmlfdGVzdF9jbG9iYmVyX2Q2
CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2Q3LCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9j
bG9iYmVyX2Q3CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfZDcKKy5hbGlnbgk0CithYmlfdGVz
dF9jbG9iYmVyX2Q3OgorCW1vdglyMCwgIzAKKwl2bW92CXMxNCwgcjAKKwl2bW92CXMxNSwgcjAK
KwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kNywuLWFiaV90ZXN0X2Nsb2JiZXJfZDcK
Ky50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDgsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Ns
b2JiZXJfZDgKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kOAorLmFsaWduCTQKK2FiaV90ZXN0
X2Nsb2JiZXJfZDg6CisJbW92CXIwLCAjMAorCXZtb3YJczE2LCByMAorCXZtb3YJczE3LCByMAor
CWJ4CWxyCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2Q4LC4tYWJpX3Rlc3RfY2xvYmJlcl9kOAor
LnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9kOSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xv
YmJlcl9kOQorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2Q5CisuYWxpZ24JNAorYWJpX3Rlc3Rf
Y2xvYmJlcl9kOToKKwltb3YJcjAsICMwCisJdm1vdglzMTgsIHIwCisJdm1vdglzMTksIHIwCisJ
YngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZDksLi1hYmlfdGVzdF9jbG9iYmVyX2Q5Cisu
dHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxMCwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xv
YmJlcl9kMTAKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTAKKy5hbGlnbgk0CithYmlfdGVz
dF9jbG9iYmVyX2QxMDoKKwltb3YJcjAsICMwCisJdm1vdglzMjAsIHIwCisJdm1vdglzMjEsIHIw
CisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZDEwLC4tYWJpX3Rlc3RfY2xvYmJlcl9k
MTAKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDExLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVz
dF9jbG9iYmVyX2QxMQorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2QxMQorLmFsaWduCTQKK2Fi
aV90ZXN0X2Nsb2JiZXJfZDExOgorCW1vdglyMCwgIzAKKwl2bW92CXMyMiwgcjAKKwl2bW92CXMy
MywgcjAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kMTEsLi1hYmlfdGVzdF9jbG9i
YmVyX2QxMQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9kMTIsICVmdW5jdGlvbgorLmdsb2JsCWFi
aV90ZXN0X2Nsb2JiZXJfZDEyCisuaGlkZGVuCWFiaV90ZXN0X2Nsb2JiZXJfZDEyCisuYWxpZ24J
NAorYWJpX3Rlc3RfY2xvYmJlcl9kMTI6CisJbW92CXIwLCAjMAorCXZtb3YJczI0LCByMAorCXZt
b3YJczI1LCByMAorCWJ4CWxyCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX2QxMiwuLWFiaV90ZXN0
X2Nsb2JiZXJfZDEyCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX2QxMywgJWZ1bmN0aW9uCisuZ2xv
YmwJYWJpX3Rlc3RfY2xvYmJlcl9kMTMKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl9kMTMKKy5h
bGlnbgk0CithYmlfdGVzdF9jbG9iYmVyX2QxMzoKKwltb3YJcjAsICMwCisJdm1vdglzMjYsIHIw
CisJdm1vdglzMjcsIHIwCisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZDEzLC4tYWJp
X3Rlc3RfY2xvYmJlcl9kMTMKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfZDE0LCAlZnVuY3Rpb24K
Ky5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX2QxNAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2Qx
NAorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfZDE0OgorCW1vdglyMCwgIzAKKwl2bW92CXMy
OCwgcjAKKwl2bW92CXMyOSwgcjAKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kMTQs
Li1hYmlfdGVzdF9jbG9iYmVyX2QxNAorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9kMTUsICVmdW5j
dGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfZDE1CisuaGlkZGVuCWFiaV90ZXN0X2Nsb2Ji
ZXJfZDE1CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl9kMTU6CisJbW92CXIwLCAjMAorCXZt
b3YJczMwLCByMAorCXZtb3YJczMxLCByMAorCWJ4CWxyCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVy
X2QxNSwuLWFiaV90ZXN0X2Nsb2JiZXJfZDE1CisjZW5kaWYKKyNlbmRpZiAgLy8gIU9QRU5TU0xf
Tk9fQVNNCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1wcGM2NGxlL2NyeXB0by9maXBzbW9kdWxlL2Flc3A4
LXBwYy5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbGludXgtcHBjNjRsZS9jcnlwdG8vZmlwc21vZHVsZS9hZXNwOC1wcGMuUwppbmRl
eCA0MmI2OWMxNTRkOTQ3ODEyZTBkY2RlNGY0NGJkNWIxN2U0NzEyZTk3Li45MTFkNjM4M2FjZDEx
NDEzNWI5NDI1MmNjNTkwN2I4ODFlZTUxOGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1wcGM2NGxlL2Ny
eXB0by9maXBzbW9kdWxlL2Flc3A4LXBwYy5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXBwYzY0bGUvY3J5cHRvL2Zp
cHNtb2R1bGUvYWVzcDgtcHBjLlMKQEAgLTE3NzgsNyArMTc3OCw3IEBAIF9hZXNwOF9jdHIzMl9l
bmNyeXB0OHg6CiAJLmxvbmcJMHg3RTA4Mjc5OQogCS5sb25nCTB4N0UzQTI3OTkKIAlhZGRpCTQs
NCwweDMwCi0JYgkuTGNiY19kZWM4eF9kb25lCisJYgkuTGN0cjMyX2VuYzh4X2RvbmUKIAogLmFs
aWduCTUKIC5MY3RyMzJfZW5jOHhfdHdvOgpAQCAtMTc5MCw3ICsxNzkwLDcgQEAgX2Flc3A4X2N0
cjMyX2VuY3J5cHQ4eDoKIAkubG9uZwkweDdERTAyNzk5CiAJLmxvbmcJMHg3RTA4Mjc5OQogCWFk
ZGkJNCw0LDB4MjAKLQliCS5MY2JjX2RlYzh4X2RvbmUKKwliCS5MY3RyMzJfZW5jOHhfZG9uZQog
CiAuYWxpZ24JNQogLkxjdHIzMl9lbmM4eF9vbmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5
cHRvL2ZpcHNtb2R1bGUvYWVzbmkteDg2LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL2ZpcHNtb2R1bGUv
YWVzbmkteDg2LlMKaW5kZXggYjE5Mzk2NmUzMzE0MDc5NGRjNWZjMjNlZTI3MDk1N2Q5ZTZkZDlm
ZS4uYmQwZjI3MTVhNTJjNTBhYjI3YmNlMjI4NjQyNzg3NmY3MmE1ZDI5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
bGludXgteDg2L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLXg4Ni5TCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Ni9j
cnlwdG8vZmlwc21vZHVsZS9hZXNuaS14ODYuUwpAQCAtNiwxMiArNiwyNiBAQAogI2luY2x1ZGUg
PGJvcmluZ3NzbF9wcmVmaXhfc3ltYm9sc19hc20uaD4KICNlbmRpZgogLnRleHQKKyNpZm5kZWYg
TkRFQlVHCisjZW5kaWYKIC5nbG9ibAlhZXNfaHdfZW5jcnlwdAogLmhpZGRlbglhZXNfaHdfZW5j
cnlwdAogLnR5cGUJYWVzX2h3X2VuY3J5cHQsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIGFlc19od19l
bmNyeXB0OgogLkxfYWVzX2h3X2VuY3J5cHRfYmVnaW46CisjaWZuZGVmIE5ERUJVRworCXB1c2hs
CSVlYngKKwlwdXNobAklZWR4CisJY2FsbAkuTDAwMHBpYworLkwwMDBwaWM6CisJcG9wbAklZWJ4
CisJbGVhbAlCT1JJTkdTU0xfZnVuY3Rpb25faGl0KzEtLkwwMDBwaWMoJWVieCksJWVieAorCW1v
dmwJJDEsJWVkeAorCW1vdmIJJWRsLCglZWJ4KQorCXBvcGwJJWVkeAorCXBvcGwJJWVieAorI2Vu
ZGlmCiAJbW92bAk0KCVlc3ApLCVlYXgKIAltb3ZsCTEyKCVlc3ApLCVlZHgKIAltb3Z1cHMJKCVl
YXgpLCV4bW0yCkBAIC0yMSwxMiArMzUsMTIgQEAgYWVzX2h3X2VuY3J5cHQ6CiAJbW92dXBzCTE2
KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLS5M
MDAwZW5jMV9sb29wXzE6CisuTDAwMWVuYzFfbG9vcF8xOgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4
Ci0Jam56CS5MMDAwZW5jMV9sb29wXzEKKwlqbnoJLkwwMDFlbmMxX2xvb3BfMQogLmJ5dGUJMTAy
LDE1LDU2LDIyMSwyMDkKIAlweG9yCSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMQpAQCAt
NDksMTIgKzYzLDEyIEBAIGFlc19od19kZWNyeXB0OgogCW1vdnVwcwkxNiglZWR4KSwleG1tMQog
CWxlYWwJMzIoJWVkeCksJWVkeAogCXhvcnBzCSV4bW0wLCV4bW0yCi0uTDAwMWRlYzFfbG9vcF8y
OgorLkwwMDJkZWMxX2xvb3BfMjoKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CiAJZGVjbAklZWN4
CiAJbW92dXBzCSglZWR4KSwleG1tMQogCWxlYWwJMTYoJWVkeCksJWVkeAotCWpuegkuTDAwMWRl
YzFfbG9vcF8yCisJam56CS5MMDAyZGVjMV9sb29wXzIKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5
CiAJcHhvcgkleG1tMCwleG1tMAogCXB4b3IJJXhtbTEsJXhtbTEKQEAgLTc1LDcgKzg5LDcgQEAg
X2Flc25pX2VuY3J5cHQyOgogCWxlYWwJMzIoJWVkeCwlZWN4LDEpLCVlZHgKIAluZWdsCSVlY3gK
IAlhZGRsCSQxNiwlZWN4Ci0uTDAwMmVuYzJfbG9vcDoKKy5MMDAzZW5jMl9sb29wOgogLmJ5dGUJ
MTAyLDE1LDU2LDIyMCwyMDkKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3CiAJbW92dXBzCSglZWR4
LCVlY3gsMSksJXhtbTEKQEAgLTgzLDcgKzk3LDcgQEAgX2Flc25pX2VuY3J5cHQyOgogLmJ5dGUJ
MTAyLDE1LDU2LDIyMCwyMDgKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2CiAJbW92dXBzCS0xNigl
ZWR4LCVlY3gsMSksJXhtbTAKLQlqbnoJLkwwMDJlbmMyX2xvb3AKKwlqbnoJLkwwMDNlbmMyX2xv
b3AKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwogLmJ5
dGUJMTAyLDE1LDU2LDIyMSwyMDgKQEAgLTEwMyw3ICsxMTcsNyBAQCBfYWVzbmlfZGVjcnlwdDI6
CiAJbGVhbAkzMiglZWR4LCVlY3gsMSksJWVkeAogCW5lZ2wJJWVjeAogCWFkZGwJJDE2LCVlY3gK
LS5MMDAzZGVjMl9sb29wOgorLkwwMDRkZWMyX2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIw
OQogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKIAltb3Z1cHMJKCVlZHgsJWVjeCwxKSwleG1tMQpA
QCAtMTExLDcgKzEyNSw3IEBAIF9hZXNuaV9kZWNyeXB0MjoKIC5ieXRlCTEwMiwxNSw1NiwyMjIs
MjA4CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNgogCW1vdnVwcwktMTYoJWVkeCwlZWN4LDEpLCV4
bW0wCi0Jam56CS5MMDAzZGVjMl9sb29wCisJam56CS5MMDA0ZGVjMl9sb29wCiAuYnl0ZQkxMDIs
MTUsNTYsMjIyLDIwOQogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKIC5ieXRlCTEwMiwxNSw1Niwy
MjMsMjA4CkBAIC0xMzIsNyArMTQ2LDcgQEAgX2Flc25pX2VuY3J5cHQzOgogCWxlYWwJMzIoJWVk
eCwlZWN4LDEpLCVlZHgKIAluZWdsCSVlY3gKIAlhZGRsCSQxNiwlZWN4Ci0uTDAwNGVuYzNfbG9v
cDoKKy5MMDA1ZW5jM19sb29wOgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIC5ieXRlCTEwMiwx
NSw1NiwyMjAsMjE3CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNQpAQCAtMTQyLDcgKzE1Niw3IEBA
IF9hZXNuaV9lbmNyeXB0MzoKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2CiAuYnl0ZQkxMDIsMTUs
NTYsMjIwLDIyNAogCW1vdnVwcwktMTYoJWVkeCwlZWN4LDEpLCV4bW0wCi0Jam56CS5MMDA0ZW5j
M19sb29wCisJam56CS5MMDA1ZW5jM19sb29wCiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQogLmJ5
dGUJMTAyLDE1LDU2LDIyMCwyMTcKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1CkBAIC0xNjUsNyAr
MTc5LDcgQEAgX2Flc25pX2RlY3J5cHQzOgogCWxlYWwJMzIoJWVkeCwlZWN4LDEpLCVlZHgKIAlu
ZWdsCSVlY3gKIAlhZGRsCSQxNiwlZWN4Ci0uTDAwNWRlYzNfbG9vcDoKKy5MMDA2ZGVjM19sb29w
OgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjE3CiAuYnl0
ZQkxMDIsMTUsNTYsMjIyLDIyNQpAQCAtMTc1LDcgKzE4OSw3IEBAIF9hZXNuaV9kZWNyeXB0MzoK
IC5ieXRlCTEwMiwxNSw1NiwyMjIsMjE2CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAogCW1vdnVw
cwktMTYoJWVkeCwlZWN4LDEpLCV4bW0wCi0Jam56CS5MMDA1ZGVjM19sb29wCisJam56CS5MMDA2
ZGVjM19sb29wCiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MTcKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjI1CkBAIC0yMDAsNyArMjE0LDcgQEAgX2Flc25pX2Vu
Y3J5cHQ0OgogCW5lZ2wJJWVjeAogLmJ5dGUJMTUsMzEsNjQsMAogCWFkZGwJJDE2LCVlY3gKLS5M
MDA2ZW5jNF9sb29wOgorLkwwMDdlbmM0X2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQog
LmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1CkBAIC0yMTIs
NyArMjI2LDcgQEAgX2Flc25pX2VuY3J5cHQ0OgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjQKIC5i
eXRlCTEwMiwxNSw1NiwyMjAsMjMyCiAJbW92dXBzCS0xNiglZWR4LCVlY3gsMSksJXhtbTAKLQlq
bnoJLkwwMDZlbmM0X2xvb3AKKwlqbnoJLkwwMDdlbmM0X2xvb3AKIC5ieXRlCTEwMiwxNSw1Niwy
MjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjUK
QEAgLTIzOSw3ICsyNTMsNyBAQCBfYWVzbmlfZGVjcnlwdDQ6CiAJbmVnbAklZWN4CiAuYnl0ZQkx
NSwzMSw2NCwwCiAJYWRkbAkkMTYsJWVjeAotLkwwMDdkZWM0X2xvb3A6CisuTDAwOGRlYzRfbG9v
cDoKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwogLmJ5
dGUJMTAyLDE1LDU2LDIyMiwyMjUKQEAgLTI1MSw3ICsyNjUsNyBAQCBfYWVzbmlfZGVjcnlwdDQ6
CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMzIKIAltb3Z1
cHMJLTE2KCVlZHgsJWVjeCwxKSwleG1tMAotCWpuegkuTDAwN2RlYzRfbG9vcAorCWpuegkuTDAw
OGRlYzRfbG9vcAogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKIC5ieXRlCTEwMiwxNSw1NiwyMjIs
MjE3CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNQpAQCAtMjgyLDEzICsyOTYsMTMgQEAgX2Flc25p
X2VuY3J5cHQ2OgogCXB4b3IJJXhtbTAsJXhtbTcKIAltb3Z1cHMJKCVlZHgsJWVjeCwxKSwleG1t
MAogCWFkZGwJJDE2LCVlY3gKLQlqbXAJLkwwMDhfYWVzbmlfZW5jcnlwdDZfaW5uZXIKKwlqbXAJ
LkwwMDlfYWVzbmlfZW5jcnlwdDZfaW5uZXIKIC5hbGlnbgkxNgotLkwwMDllbmM2X2xvb3A6Cisu
TDAxMGVuYzZfbG9vcDoKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYs
MjIwLDIxNwogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjUKLS5MMDA4X2Flc25pX2VuY3J5cHQ2X2lu
bmVyOgorLkwwMDlfYWVzbmlfZW5jcnlwdDZfaW5uZXI6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIz
MwogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDEKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ5CkBAIC0z
MDIsNyArMzE2LDcgQEAgX2Flc25pX2VuY3J5cHQ2OgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDAK
IC5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ4CiAJbW92dXBzCS0xNiglZWR4LCVlY3gsMSksJXhtbTAK
LQlqbnoJLkwwMDllbmM2X2xvb3AKKwlqbnoJLkwwMTBlbmM2X2xvb3AKIC5ieXRlCTEwMiwxNSw1
NiwyMjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwogLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MjUKQEAgLTMzNywxMyArMzUxLDEzIEBAIF9hZXNuaV9kZWNyeXB0NjoKIAlweG9yCSV4bW0wLCV4
bW03CiAJbW92dXBzCSglZWR4LCVlY3gsMSksJXhtbTAKIAlhZGRsCSQxNiwlZWN4Ci0Jam1wCS5M
MDEwX2Flc25pX2RlY3J5cHQ2X2lubmVyCisJam1wCS5MMDExX2Flc25pX2RlY3J5cHQ2X2lubmVy
CiAuYWxpZ24JMTYKLS5MMDExZGVjNl9sb29wOgorLkwwMTJkZWM2X2xvb3A6CiAuYnl0ZQkxMDIs
MTUsNTYsMjIyLDIwOQogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKIC5ieXRlCTEwMiwxNSw1Niwy
MjIsMjI1Ci0uTDAxMF9hZXNuaV9kZWNyeXB0Nl9pbm5lcjoKKy5MMDExX2Flc25pX2RlY3J5cHQ2
X2lubmVyOgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMzMKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjQx
CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OQpAQCAtMzU3LDcgKzM3MSw3IEBAIF9hZXNuaV9kZWNy
eXB0NjoKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjQwCiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OAog
CW1vdnVwcwktMTYoJWVkeCwlZWN4LDEpLCV4bW0wCi0Jam56CS5MMDExZGVjNl9sb29wCisJam56
CS5MMDEyZGVjNl9sb29wCiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogLmJ5dGUJMTAyLDE1LDU2
LDIyMiwyMTcKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjI1CkBAIC0zODgsMTQgKzQwMiwxNCBAQCBh
ZXNfaHdfZWNiX2VuY3J5cHQ6CiAJbW92bAkzMiglZXNwKSwlZWR4CiAJbW92bAkzNiglZXNwKSwl
ZWJ4CiAJYW5kbAkkLTE2LCVlYXgKLQlqegkuTDAxMmVjYl9yZXQKKwlqegkuTDAxM2VjYl9yZXQK
IAltb3ZsCTI0MCglZWR4KSwlZWN4CiAJdGVzdGwJJWVieCwlZWJ4Ci0JanoJLkwwMTNlY2JfZGVj
cnlwdAorCWp6CS5MMDE0ZWNiX2RlY3J5cHQKIAltb3ZsCSVlZHgsJWVicAogCW1vdmwJJWVjeCwl
ZWJ4CiAJY21wbAkkOTYsJWVheAotCWpiCS5MMDE0ZWNiX2VuY190YWlsCisJamIJLkwwMTVlY2Jf
ZW5jX3RhaWwKIAltb3ZkcXUJKCVlc2kpLCV4bW0yCiAJbW92ZHF1CTE2KCVlc2kpLCV4bW0zCiAJ
bW92ZHF1CTMyKCVlc2kpLCV4bW00CkBAIC00MDQsOSArNDE4LDkgQEAgYWVzX2h3X2VjYl9lbmNy
eXB0OgogCW1vdmRxdQk4MCglZXNpKSwleG1tNwogCWxlYWwJOTYoJWVzaSksJWVzaQogCXN1YmwJ
JDk2LCVlYXgKLQlqbXAJLkwwMTVlY2JfZW5jX2xvb3A2X2VudGVyCisJam1wCS5MMDE2ZWNiX2Vu
Y19sb29wNl9lbnRlcgogLmFsaWduCTE2Ci0uTDAxNmVjYl9lbmNfbG9vcDY6CisuTDAxN2VjYl9l
bmNfbG9vcDY6CiAJbW92dXBzCSV4bW0yLCglZWRpKQogCW1vdmRxdQkoJWVzaSksJXhtbTIKIAlt
b3Z1cHMJJXhtbTMsMTYoJWVkaSkKQEAgLTQyMSwxMiArNDM1LDEyIEBAIGFlc19od19lY2JfZW5j
cnlwdDoKIAlsZWFsCTk2KCVlZGkpLCVlZGkKIAltb3ZkcXUJODAoJWVzaSksJXhtbTcKIAlsZWFs
CTk2KCVlc2kpLCVlc2kKLS5MMDE1ZWNiX2VuY19sb29wNl9lbnRlcjoKKy5MMDE2ZWNiX2VuY19s
b29wNl9lbnRlcjoKIAljYWxsCV9hZXNuaV9lbmNyeXB0NgogCW1vdmwJJWVicCwlZWR4CiAJbW92
bAklZWJ4LCVlY3gKIAlzdWJsCSQ5NiwlZWF4Ci0Jam5jCS5MMDE2ZWNiX2VuY19sb29wNgorCWpu
YwkuTDAxN2VjYl9lbmNfbG9vcDYKIAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92dXBzCSV4bW0z
LDE2KCVlZGkpCiAJbW92dXBzCSV4bW00LDMyKCVlZGkpCkBAIC00MzUsMTggKzQ0OSwxOCBAQCBh
ZXNfaHdfZWNiX2VuY3J5cHQ6CiAJbW92dXBzCSV4bW03LDgwKCVlZGkpCiAJbGVhbAk5NiglZWRp
KSwlZWRpCiAJYWRkbAkkOTYsJWVheAotCWp6CS5MMDEyZWNiX3JldAotLkwwMTRlY2JfZW5jX3Rh
aWw6CisJanoJLkwwMTNlY2JfcmV0CisuTDAxNWVjYl9lbmNfdGFpbDoKIAltb3Z1cHMJKCVlc2kp
LCV4bW0yCiAJY21wbAkkMzIsJWVheAotCWpiCS5MMDE3ZWNiX2VuY19vbmUKKwlqYgkuTDAxOGVj
Yl9lbmNfb25lCiAJbW92dXBzCTE2KCVlc2kpLCV4bW0zCi0JamUJLkwwMThlY2JfZW5jX3R3bwor
CWplCS5MMDE5ZWNiX2VuY190d28KIAltb3Z1cHMJMzIoJWVzaSksJXhtbTQKIAljbXBsCSQ2NCwl
ZWF4Ci0JamIJLkwwMTllY2JfZW5jX3RocmVlCisJamIJLkwwMjBlY2JfZW5jX3RocmVlCiAJbW92
dXBzCTQ4KCVlc2kpLCV4bW01Ci0JamUJLkwwMjBlY2JfZW5jX2ZvdXIKKwlqZQkuTDAyMWVjYl9l
bmNfZm91cgogCW1vdnVwcwk2NCglZXNpKSwleG1tNgogCXhvcnBzCSV4bW03LCV4bW03CiAJY2Fs
bAlfYWVzbmlfZW5jcnlwdDYKQEAgLTQ1NSw0OSArNDY5LDQ5IEBAIGFlc19od19lY2JfZW5jcnlw
dDoKIAltb3Z1cHMJJXhtbTQsMzIoJWVkaSkKIAltb3Z1cHMJJXhtbTUsNDgoJWVkaSkKIAltb3Z1
cHMJJXhtbTYsNjQoJWVkaSkKLQlqbXAJLkwwMTJlY2JfcmV0CisJam1wCS5MMDEzZWNiX3JldAog
LmFsaWduCTE2Ci0uTDAxN2VjYl9lbmNfb25lOgorLkwwMThlY2JfZW5jX29uZToKIAltb3Z1cHMJ
KCVlZHgpLCV4bW0wCiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4
CiAJeG9ycHMJJXhtbTAsJXhtbTIKLS5MMDIxZW5jMV9sb29wXzM6CisuTDAyMmVuYzFfbG9vcF8z
OgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4
bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4Ci0Jam56CS5MMDIxZW5jMV9sb29wXzMKKwlqbnoJLkww
MjJlbmMxX2xvb3BfMwogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDkKIAltb3Z1cHMJJXhtbTIsKCVl
ZGkpCi0Jam1wCS5MMDEyZWNiX3JldAorCWptcAkuTDAxM2VjYl9yZXQKIC5hbGlnbgkxNgotLkww
MThlY2JfZW5jX3R3bzoKKy5MMDE5ZWNiX2VuY190d286CiAJY2FsbAlfYWVzbmlfZW5jcnlwdDIK
IAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92dXBzCSV4bW0zLDE2KCVlZGkpCi0Jam1wCS5MMDEy
ZWNiX3JldAorCWptcAkuTDAxM2VjYl9yZXQKIC5hbGlnbgkxNgotLkwwMTllY2JfZW5jX3RocmVl
OgorLkwwMjBlY2JfZW5jX3RocmVlOgogCWNhbGwJX2Flc25pX2VuY3J5cHQzCiAJbW92dXBzCSV4
bW0yLCglZWRpKQogCW1vdnVwcwkleG1tMywxNiglZWRpKQogCW1vdnVwcwkleG1tNCwzMiglZWRp
KQotCWptcAkuTDAxMmVjYl9yZXQKKwlqbXAJLkwwMTNlY2JfcmV0CiAuYWxpZ24JMTYKLS5MMDIw
ZWNiX2VuY19mb3VyOgorLkwwMjFlY2JfZW5jX2ZvdXI6CiAJY2FsbAlfYWVzbmlfZW5jcnlwdDQK
IAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92dXBzCSV4bW0zLDE2KCVlZGkpCiAJbW92dXBzCSV4
bW00LDMyKCVlZGkpCiAJbW92dXBzCSV4bW01LDQ4KCVlZGkpCi0Jam1wCS5MMDEyZWNiX3JldAor
CWptcAkuTDAxM2VjYl9yZXQKIC5hbGlnbgkxNgotLkwwMTNlY2JfZGVjcnlwdDoKKy5MMDE0ZWNi
X2RlY3J5cHQ6CiAJbW92bAklZWR4LCVlYnAKIAltb3ZsCSVlY3gsJWVieAogCWNtcGwJJDk2LCVl
YXgKLQlqYgkuTDAyMmVjYl9kZWNfdGFpbAorCWpiCS5MMDIzZWNiX2RlY190YWlsCiAJbW92ZHF1
CSglZXNpKSwleG1tMgogCW1vdmRxdQkxNiglZXNpKSwleG1tMwogCW1vdmRxdQkzMiglZXNpKSwl
eG1tNApAQCAtNTA2LDkgKzUyMCw5IEBAIGFlc19od19lY2JfZW5jcnlwdDoKIAltb3ZkcXUJODAo
JWVzaSksJXhtbTcKIAlsZWFsCTk2KCVlc2kpLCVlc2kKIAlzdWJsCSQ5NiwlZWF4Ci0Jam1wCS5M
MDIzZWNiX2RlY19sb29wNl9lbnRlcgorCWptcAkuTDAyNGVjYl9kZWNfbG9vcDZfZW50ZXIKIC5h
bGlnbgkxNgotLkwwMjRlY2JfZGVjX2xvb3A2OgorLkwwMjVlY2JfZGVjX2xvb3A2OgogCW1vdnVw
cwkleG1tMiwoJWVkaSkKIAltb3ZkcXUJKCVlc2kpLCV4bW0yCiAJbW92dXBzCSV4bW0zLDE2KCVl
ZGkpCkBAIC01MjMsMTIgKzUzNywxMiBAQCBhZXNfaHdfZWNiX2VuY3J5cHQ6CiAJbGVhbAk5Nigl
ZWRpKSwlZWRpCiAJbW92ZHF1CTgwKCVlc2kpLCV4bW03CiAJbGVhbAk5NiglZXNpKSwlZXNpCi0u
TDAyM2VjYl9kZWNfbG9vcDZfZW50ZXI6CisuTDAyNGVjYl9kZWNfbG9vcDZfZW50ZXI6CiAJY2Fs
bAlfYWVzbmlfZGVjcnlwdDYKIAltb3ZsCSVlYnAsJWVkeAogCW1vdmwJJWVieCwlZWN4CiAJc3Vi
bAkkOTYsJWVheAotCWpuYwkuTDAyNGVjYl9kZWNfbG9vcDYKKwlqbmMJLkwwMjVlY2JfZGVjX2xv
b3A2CiAJbW92dXBzCSV4bW0yLCglZWRpKQogCW1vdnVwcwkleG1tMywxNiglZWRpKQogCW1vdnVw
cwkleG1tNCwzMiglZWRpKQpAQCAtNTM3LDE4ICs1NTEsMTggQEAgYWVzX2h3X2VjYl9lbmNyeXB0
OgogCW1vdnVwcwkleG1tNyw4MCglZWRpKQogCWxlYWwJOTYoJWVkaSksJWVkaQogCWFkZGwJJDk2
LCVlYXgKLQlqegkuTDAxMmVjYl9yZXQKLS5MMDIyZWNiX2RlY190YWlsOgorCWp6CS5MMDEzZWNi
X3JldAorLkwwMjNlY2JfZGVjX3RhaWw6CiAJbW92dXBzCSglZXNpKSwleG1tMgogCWNtcGwJJDMy
LCVlYXgKLQlqYgkuTDAyNWVjYl9kZWNfb25lCisJamIJLkwwMjZlY2JfZGVjX29uZQogCW1vdnVw
cwkxNiglZXNpKSwleG1tMwotCWplCS5MMDI2ZWNiX2RlY190d28KKwlqZQkuTDAyN2VjYl9kZWNf
dHdvCiAJbW92dXBzCTMyKCVlc2kpLCV4bW00CiAJY21wbAkkNjQsJWVheAotCWpiCS5MMDI3ZWNi
X2RlY190aHJlZQorCWpiCS5MMDI4ZWNiX2RlY190aHJlZQogCW1vdnVwcwk0OCglZXNpKSwleG1t
NQotCWplCS5MMDI4ZWNiX2RlY19mb3VyCisJamUJLkwwMjllY2JfZGVjX2ZvdXIKIAltb3Z1cHMJ
NjQoJWVzaSksJXhtbTYKIAl4b3JwcwkleG1tNywleG1tNwogCWNhbGwJX2Flc25pX2RlY3J5cHQ2
CkBAIC01NTcsNDMgKzU3MSw0MyBAQCBhZXNfaHdfZWNiX2VuY3J5cHQ6CiAJbW92dXBzCSV4bW00
LDMyKCVlZGkpCiAJbW92dXBzCSV4bW01LDQ4KCVlZGkpCiAJbW92dXBzCSV4bW02LDY0KCVlZGkp
Ci0Jam1wCS5MMDEyZWNiX3JldAorCWptcAkuTDAxM2VjYl9yZXQKIC5hbGlnbgkxNgotLkwwMjVl
Y2JfZGVjX29uZToKKy5MMDI2ZWNiX2RlY19vbmU6CiAJbW92dXBzCSglZWR4KSwleG1tMAogCW1v
dnVwcwkxNiglZWR4KSwleG1tMQogCWxlYWwJMzIoJWVkeCksJWVkeAogCXhvcnBzCSV4bW0wLCV4
bW0yCi0uTDAyOWRlYzFfbG9vcF80OgorLkwwMzBkZWMxX2xvb3BfNDoKIC5ieXRlCTEwMiwxNSw1
NiwyMjIsMjA5CiAJZGVjbAklZWN4CiAJbW92dXBzCSglZWR4KSwleG1tMQogCWxlYWwJMTYoJWVk
eCksJWVkeAotCWpuegkuTDAyOWRlYzFfbG9vcF80CisJam56CS5MMDMwZGVjMV9sb29wXzQKIC5i
eXRlCTEwMiwxNSw1NiwyMjMsMjA5CiAJbW92dXBzCSV4bW0yLCglZWRpKQotCWptcAkuTDAxMmVj
Yl9yZXQKKwlqbXAJLkwwMTNlY2JfcmV0CiAuYWxpZ24JMTYKLS5MMDI2ZWNiX2RlY190d286Cisu
TDAyN2VjYl9kZWNfdHdvOgogCWNhbGwJX2Flc25pX2RlY3J5cHQyCiAJbW92dXBzCSV4bW0yLCgl
ZWRpKQogCW1vdnVwcwkleG1tMywxNiglZWRpKQotCWptcAkuTDAxMmVjYl9yZXQKKwlqbXAJLkww
MTNlY2JfcmV0CiAuYWxpZ24JMTYKLS5MMDI3ZWNiX2RlY190aHJlZToKKy5MMDI4ZWNiX2RlY190
aHJlZToKIAljYWxsCV9hZXNuaV9kZWNyeXB0MwogCW1vdnVwcwkleG1tMiwoJWVkaSkKIAltb3Z1
cHMJJXhtbTMsMTYoJWVkaSkKIAltb3Z1cHMJJXhtbTQsMzIoJWVkaSkKLQlqbXAJLkwwMTJlY2Jf
cmV0CisJam1wCS5MMDEzZWNiX3JldAogLmFsaWduCTE2Ci0uTDAyOGVjYl9kZWNfZm91cjoKKy5M
MDI5ZWNiX2RlY19mb3VyOgogCWNhbGwJX2Flc25pX2RlY3J5cHQ0CiAJbW92dXBzCSV4bW0yLCgl
ZWRpKQogCW1vdnVwcwkleG1tMywxNiglZWRpKQogCW1vdnVwcwkleG1tNCwzMiglZWRpKQogCW1v
dnVwcwkleG1tNSw0OCglZWRpKQotLkwwMTJlY2JfcmV0OgorLkwwMTNlY2JfcmV0OgogCXB4b3IJ
JXhtbTAsJXhtbTAKIAlweG9yCSV4bW0xLCV4bW0xCiAJcHhvcgkleG1tMiwleG1tMgpAQCAtNjQ5
LDcgKzY2Myw3IEBAIGFlc19od19jY202NF9lbmNyeXB0X2Jsb2NrczoKIAlsZWFsCTMyKCVlZHgs
JWVjeCwxKSwlZWR4CiAJc3VibAklZWN4LCVlYngKIC5ieXRlCTEwMiwxNSw1NiwwLDI1MwotLkww
MzBjY202NF9lbmNfb3V0ZXI6CisuTDAzMWNjbTY0X2VuY19vdXRlcjoKIAltb3Z1cHMJKCVlYnAp
LCV4bW0wCiAJbW92bAklZWJ4LCVlY3gKIAltb3Z1cHMJKCVlc2kpLCV4bW02CkBAIC02NTgsNyAr
NjcyLDcgQEAgYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzOgogCXhvcnBzCSV4bW02LCV4bW0w
CiAJeG9ycHMJJXhtbTAsJXhtbTMKIAltb3Z1cHMJMzIoJWVicCksJXhtbTAKLS5MMDMxY2NtNjRf
ZW5jMl9sb29wOgorLkwwMzJjY202NF9lbmMyX2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIw
OQogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKIAltb3Z1cHMJKCVlZHgsJWVjeCwxKSwleG1tMQpA
QCAtNjY2LDcgKzY4MCw3IEBAIGFlc19od19jY202NF9lbmNyeXB0X2Jsb2NrczoKIC5ieXRlCTEw
MiwxNSw1NiwyMjAsMjA4CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNgogCW1vdnVwcwktMTYoJWVk
eCwlZWN4LDEpLCV4bW0wCi0Jam56CS5MMDMxY2NtNjRfZW5jMl9sb29wCisJam56CS5MMDMyY2Nt
NjRfZW5jMl9sb29wCiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQogLmJ5dGUJMTAyLDE1LDU2LDIy
MCwyMTcKIAlwYWRkcQkxNiglZXNwKSwleG1tNwpAQCAtNjc5LDcgKzY5Myw3IEBAIGFlc19od19j
Y202NF9lbmNyeXB0X2Jsb2NrczoKIAltb3Z1cHMJJXhtbTYsKCVlZGkpCiAuYnl0ZQkxMDIsMTUs
NTYsMCwyMTMKIAlsZWFsCTE2KCVlZGkpLCVlZGkKLQlqbnoJLkwwMzBjY202NF9lbmNfb3V0ZXIK
KwlqbnoJLkwwMzFjY202NF9lbmNfb3V0ZXIKIAltb3ZsCTQ4KCVlc3ApLCVlc3AKIAltb3ZsCTQw
KCVlc3ApLCVlZGkKIAltb3Z1cHMJJXhtbTMsKCVlZGkpCkBAIC03MzksMTIgKzc1MywxMiBAQCBh
ZXNfaHdfY2NtNjRfZGVjcnlwdF9ibG9ja3M6CiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVh
bAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLS5MMDMyZW5jMV9sb29wXzU6Cisu
TDAzM2VuYzFfbG9vcF81OgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIAlkZWNsCSVlY3gKIAlt
b3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4Ci0Jam56CS5MMDMyZW5jMV9s
b29wXzUKKwlqbnoJLkwwMzNlbmMxX2xvb3BfNQogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDkKIAlz
aGxsCSQ0LCVlYngKIAltb3ZsCSQxNiwlZWN4CkBAIC03NTQsMTYgKzc2OCwxNiBAQCBhZXNfaHdf
Y2NtNjRfZGVjcnlwdF9ibG9ja3M6CiAJc3VibAklZWJ4LCVlY3gKIAlsZWFsCTMyKCVlYnAsJWVi
eCwxKSwlZWR4CiAJbW92bAklZWN4LCVlYngKLQlqbXAJLkwwMzNjY202NF9kZWNfb3V0ZXIKKwlq
bXAJLkwwMzRjY202NF9kZWNfb3V0ZXIKIC5hbGlnbgkxNgotLkwwMzNjY202NF9kZWNfb3V0ZXI6
CisuTDAzNGNjbTY0X2RlY19vdXRlcjoKIAl4b3JwcwkleG1tMiwleG1tNgogCW1vdmRxYQkleG1t
NywleG1tMgogCW1vdnVwcwkleG1tNiwoJWVkaSkKIAlsZWFsCTE2KCVlZGkpLCVlZGkKIC5ieXRl
CTEwMiwxNSw1NiwwLDIxMwogCXN1YmwJJDEsJWVheAotCWp6CS5MMDM0Y2NtNjRfZGVjX2JyZWFr
CisJanoJLkwwMzVjY202NF9kZWNfYnJlYWsKIAltb3Z1cHMJKCVlYnApLCV4bW0wCiAJbW92bAkl
ZWJ4LCVlY3gKIAltb3Z1cHMJMTYoJWVicCksJXhtbTEKQEAgLTc3MSw3ICs3ODUsNyBAQCBhZXNf
aHdfY2NtNjRfZGVjcnlwdF9ibG9ja3M6CiAJeG9ycHMJJXhtbTAsJXhtbTIKIAl4b3JwcwkleG1t
NiwleG1tMwogCW1vdnVwcwkzMiglZWJwKSwleG1tMAotLkwwMzVjY202NF9kZWMyX2xvb3A6Cisu
TDAzNmNjbTY0X2RlYzJfbG9vcDoKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAuYnl0ZQkxMDIs
MTUsNTYsMjIwLDIxNwogCW1vdnVwcwkoJWVkeCwlZWN4LDEpLCV4bW0xCkBAIC03NzksNyArNzkz
LDcgQEAgYWVzX2h3X2NjbTY0X2RlY3J5cHRfYmxvY2tzOgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MDgKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2CiAJbW92dXBzCS0xNiglZWR4LCVlY3gsMSksJXht
bTAKLQlqbnoJLkwwMzVjY202NF9kZWMyX2xvb3AKKwlqbnoJLkwwMzZjY202NF9kZWMyX2xvb3AK
IAltb3Z1cHMJKCVlc2kpLCV4bW02CiAJcGFkZHEJMTYoJWVzcCksJXhtbTcKIC5ieXRlCTEwMiwx
NSw1NiwyMjAsMjA5CkBAIC03ODcsOSArODAxLDkgQEAgYWVzX2h3X2NjbTY0X2RlY3J5cHRfYmxv
Y2tzOgogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDgKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjE2CiAJ
bGVhbAkxNiglZXNpKSwlZXNpCi0Jam1wCS5MMDMzY2NtNjRfZGVjX291dGVyCisJam1wCS5MMDM0
Y2NtNjRfZGVjX291dGVyCiAuYWxpZ24JMTYKLS5MMDM0Y2NtNjRfZGVjX2JyZWFrOgorLkwwMzVj
Y202NF9kZWNfYnJlYWs6CiAJbW92bAkyNDAoJWVicCksJWVjeAogCW1vdmwJJWVicCwlZWR4CiAJ
bW92dXBzCSglZWR4KSwleG1tMApAQCAtNzk3LDEyICs4MTEsMTIgQEAgYWVzX2h3X2NjbTY0X2Rl
Y3J5cHRfYmxvY2tzOgogCXhvcnBzCSV4bW0wLCV4bW02CiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJ
eG9ycHMJJXhtbTYsJXhtbTMKLS5MMDM2ZW5jMV9sb29wXzY6CisuTDAzN2VuYzFfbG9vcF82Ogog
LmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0x
CiAJbGVhbAkxNiglZWR4KSwlZWR4Ci0Jam56CS5MMDM2ZW5jMV9sb29wXzYKKwlqbnoJLkwwMzdl
bmMxX2xvb3BfNgogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTcKIAltb3ZsCTQ4KCVlc3ApLCVlc3AK
IAltb3ZsCTQwKCVlc3ApLCVlZGkKQEAgLTgzMSw2ICs4NDUsMTggQEAgYWVzX2h3X2N0cjMyX2Vu
Y3J5cHRfYmxvY2tzOgogCXB1c2hsCSVlYngKIAlwdXNobAklZXNpCiAJcHVzaGwJJWVkaQorI2lm
bmRlZiBOREVCVUcKKwlwdXNobAklZWJ4CisJcHVzaGwJJWVkeAorCWNhbGwJLkwwMzhwaWMKKy5M
MDM4cGljOgorCXBvcGwJJWVieAorCWxlYWwJQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCswLS5MMDM4
cGljKCVlYngpLCVlYngKKwltb3ZsCSQxLCVlZHgKKwltb3ZiCSVkbCwoJWVieCkKKwlwb3BsCSVl
ZHgKKwlwb3BsCSVlYngKKyNlbmRpZgogCW1vdmwJMjAoJWVzcCksJWVzaQogCW1vdmwJMjQoJWVz
cCksJWVkaQogCW1vdmwJMjgoJWVzcCksJWVheApAQCAtODQxLDcgKzg2Nyw3IEBAIGFlc19od19j
dHIzMl9lbmNyeXB0X2Jsb2NrczoKIAlhbmRsCSQtMTYsJWVzcAogCW1vdmwJJWVicCw4MCglZXNw
KQogCWNtcGwJJDEsJWVheAotCWplCS5MMDM3Y3RyMzJfb25lX3Nob3J0Y3V0CisJamUJLkwwMzlj
dHIzMl9vbmVfc2hvcnRjdXQKIAltb3ZkcXUJKCVlYngpLCV4bW03CiAJbW92bAkkMjAyMTgyMTU5
LCglZXNwKQogCW1vdmwJJDEzNDgxMDEyMyw0KCVlc3ApCkBAIC04NzksNyArOTA1LDcgQEAgYWVz
X2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tzOgogCXBzaHVmZAkkMTkyLCV4bW0wLCV4bW0yCiAJcHNo
dWZkCSQxMjgsJXhtbTAsJXhtbTMKIAljbXBsCSQ2LCVlYXgKLQlqYgkuTDAzOGN0cjMyX3RhaWwK
KwlqYgkuTDA0MGN0cjMyX3RhaWwKIAlweG9yCSV4bW02LCV4bW03CiAJc2hsbAkkNCwlZWN4CiAJ
bW92bAkkMTYsJWVieApAQCAtODg4LDkgKzkxNCw5IEBAIGFlc19od19jdHIzMl9lbmNyeXB0X2Js
b2NrczoKIAlzdWJsCSVlY3gsJWVieAogCWxlYWwJMzIoJWVkeCwlZWN4LDEpLCVlZHgKIAlzdWJs
CSQ2LCVlYXgKLQlqbXAJLkwwMzljdHIzMl9sb29wNgorCWptcAkuTDA0MWN0cjMyX2xvb3A2CiAu
YWxpZ24JMTYKLS5MMDM5Y3RyMzJfbG9vcDY6CisuTDA0MWN0cjMyX2xvb3A2OgogCXBzaHVmZAkk
NjQsJXhtbTAsJXhtbTQKIAltb3ZkcWEJMzIoJWVzcCksJXhtbTAKIAlwc2h1ZmQJJDE5MiwleG1t
MSwleG1tNQpAQCAtOTQ0LDI3ICs5NzAsMjcgQEAgYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tz
OgogCWxlYWwJOTYoJWVkaSksJWVkaQogCXBzaHVmZAkkMTI4LCV4bW0wLCV4bW0zCiAJc3VibAkk
NiwlZWF4Ci0Jam5jCS5MMDM5Y3RyMzJfbG9vcDYKKwlqbmMJLkwwNDFjdHIzMl9sb29wNgogCWFk
ZGwJJDYsJWVheAotCWp6CS5MMDQwY3RyMzJfcmV0CisJanoJLkwwNDJjdHIzMl9yZXQKIAltb3Zk
cXUJKCVlYnApLCV4bW03CiAJbW92bAklZWJwLCVlZHgKIAlweG9yCTMyKCVlc3ApLCV4bW03CiAJ
bW92bAkyNDAoJWVicCksJWVjeAotLkwwMzhjdHIzMl90YWlsOgorLkwwNDBjdHIzMl90YWlsOgog
CXBvcgkleG1tNywleG1tMgogCWNtcGwJJDIsJWVheAotCWpiCS5MMDQxY3RyMzJfb25lCisJamIJ
LkwwNDNjdHIzMl9vbmUKIAlwc2h1ZmQJJDY0LCV4bW0wLCV4bW00CiAJcG9yCSV4bW03LCV4bW0z
Ci0JamUJLkwwNDJjdHIzMl90d28KKwlqZQkuTDA0NGN0cjMyX3R3bwogCXBzaHVmZAkkMTkyLCV4
bW0xLCV4bW01CiAJcG9yCSV4bW03LCV4bW00CiAJY21wbAkkNCwlZWF4Ci0JamIJLkwwNDNjdHIz
Ml90aHJlZQorCWpiCS5MMDQ1Y3RyMzJfdGhyZWUKIAlwc2h1ZmQJJDEyOCwleG1tMSwleG1tNgog
CXBvcgkleG1tNywleG1tNQotCWplCS5MMDQ0Y3RyMzJfZm91cgorCWplCS5MMDQ2Y3RyMzJfZm91
cgogCXBvcgkleG1tNywleG1tNgogCWNhbGwJX2Flc25pX2VuY3J5cHQ2CiAJbW92dXBzCSglZXNp
KSwleG1tMQpAQCAtOTgyLDI5ICsxMDA4LDI5IEBAIGFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2Nr
czoKIAltb3Z1cHMJJXhtbTQsMzIoJWVkaSkKIAltb3Z1cHMJJXhtbTUsNDgoJWVkaSkKIAltb3Z1
cHMJJXhtbTYsNjQoJWVkaSkKLQlqbXAJLkwwNDBjdHIzMl9yZXQKKwlqbXAJLkwwNDJjdHIzMl9y
ZXQKIC5hbGlnbgkxNgotLkwwMzdjdHIzMl9vbmVfc2hvcnRjdXQ6CisuTDAzOWN0cjMyX29uZV9z
aG9ydGN1dDoKIAltb3Z1cHMJKCVlYngpLCV4bW0yCiAJbW92bAkyNDAoJWVkeCksJWVjeAotLkww
NDFjdHIzMl9vbmU6CisuTDA0M2N0cjMyX29uZToKIAltb3Z1cHMJKCVlZHgpLCV4bW0wCiAJbW92
dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXhtbTAsJXht
bTIKLS5MMDQ1ZW5jMV9sb29wXzc6CisuTDA0N2VuYzFfbG9vcF83OgogLmJ5dGUJMTAyLDE1LDU2
LDIyMCwyMDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4
KSwlZWR4Ci0Jam56CS5MMDQ1ZW5jMV9sb29wXzcKKwlqbnoJLkwwNDdlbmMxX2xvb3BfNwogLmJ5
dGUJMTAyLDE1LDU2LDIyMSwyMDkKIAltb3Z1cHMJKCVlc2kpLCV4bW02CiAJeG9ycHMJJXhtbTIs
JXhtbTYKIAltb3Z1cHMJJXhtbTYsKCVlZGkpCi0Jam1wCS5MMDQwY3RyMzJfcmV0CisJam1wCS5M
MDQyY3RyMzJfcmV0CiAuYWxpZ24JMTYKLS5MMDQyY3RyMzJfdHdvOgorLkwwNDRjdHIzMl90d286
CiAJY2FsbAlfYWVzbmlfZW5jcnlwdDIKIAltb3Z1cHMJKCVlc2kpLCV4bW01CiAJbW92dXBzCTE2
KCVlc2kpLCV4bW02CkBAIC0xMDEyLDkgKzEwMzgsOSBAQCBhZXNfaHdfY3RyMzJfZW5jcnlwdF9i
bG9ja3M6CiAJeG9ycHMJJXhtbTYsJXhtbTMKIAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92dXBz
CSV4bW0zLDE2KCVlZGkpCi0Jam1wCS5MMDQwY3RyMzJfcmV0CisJam1wCS5MMDQyY3RyMzJfcmV0
CiAuYWxpZ24JMTYKLS5MMDQzY3RyMzJfdGhyZWU6CisuTDA0NWN0cjMyX3RocmVlOgogCWNhbGwJ
X2Flc25pX2VuY3J5cHQzCiAJbW92dXBzCSglZXNpKSwleG1tNQogCW1vdnVwcwkxNiglZXNpKSwl
eG1tNgpAQCAtMTAyNSw5ICsxMDUxLDkgQEAgYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tzOgog
CXhvcnBzCSV4bW03LCV4bW00CiAJbW92dXBzCSV4bW0zLDE2KCVlZGkpCiAJbW92dXBzCSV4bW00
LDMyKCVlZGkpCi0Jam1wCS5MMDQwY3RyMzJfcmV0CisJam1wCS5MMDQyY3RyMzJfcmV0CiAuYWxp
Z24JMTYKLS5MMDQ0Y3RyMzJfZm91cjoKKy5MMDQ2Y3RyMzJfZm91cjoKIAljYWxsCV9hZXNuaV9l
bmNyeXB0NAogCW1vdnVwcwkoJWVzaSksJXhtbTYKIAltb3Z1cHMJMTYoJWVzaSksJXhtbTcKQEAg
LTEwNDEsNyArMTA2Nyw3IEBAIGFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2NrczoKIAl4b3Jwcwkl
eG1tMCwleG1tNQogCW1vdnVwcwkleG1tNCwzMiglZWRpKQogCW1vdnVwcwkleG1tNSw0OCglZWRp
KQotLkwwNDBjdHIzMl9yZXQ6CisuTDA0MmN0cjMyX3JldDoKIAlweG9yCSV4bW0wLCV4bW0wCiAJ
cHhvcgkleG1tMSwleG1tMQogCXB4b3IJJXhtbTIsJXhtbTIKQEAgLTEwNzgsMTIgKzExMDQsMTIg
QEAgYWVzX2h3X3h0c19lbmNyeXB0OgogCW1vdnVwcwkxNiglZWR4KSwleG1tMQogCWxlYWwJMzIo
JWVkeCksJWVkeAogCXhvcnBzCSV4bW0wLCV4bW0yCi0uTDA0NmVuYzFfbG9vcF84OgorLkwwNDhl
bmMxX2xvb3BfODoKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjbAklZWN4CiAJbW92dXBz
CSglZWR4KSwleG1tMQogCWxlYWwJMTYoJWVkeCksJWVkeAotCWpuegkuTDA0NmVuYzFfbG9vcF84
CisJam56CS5MMDQ4ZW5jMV9sb29wXzgKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjA5CiAJbW92bAky
MCglZXNwKSwlZXNpCiAJbW92bAkyNCglZXNwKSwlZWRpCkBAIC0xMTA3LDE0ICsxMTMzLDE0IEBA
IGFlc19od194dHNfZW5jcnlwdDoKIAltb3ZsCSVlZHgsJWVicAogCW1vdmwJJWVjeCwlZWJ4CiAJ
c3VibAkkOTYsJWVheAotCWpjCS5MMDQ3eHRzX2VuY19zaG9ydAorCWpjCS5MMDQ5eHRzX2VuY19z
aG9ydAogCXNobGwJJDQsJWVjeAogCW1vdmwJJDE2LCVlYngKIAlzdWJsCSVlY3gsJWVieAogCWxl
YWwJMzIoJWVkeCwlZWN4LDEpLCVlZHgKLQlqbXAJLkwwNDh4dHNfZW5jX2xvb3A2CisJam1wCS5M
MDUweHRzX2VuY19sb29wNgogLmFsaWduCTE2Ci0uTDA0OHh0c19lbmNfbG9vcDY6CisuTDA1MHh0
c19lbmNfbG9vcDY6CiAJcHNodWZkCSQxOSwleG1tMCwleG1tMgogCXB4b3IJJXhtbTAsJXhtbTAK
IAltb3ZkcWEJJXhtbTEsKCVlc3ApCkBAIC0xMjAzLDIzICsxMjI5LDIzIEBAIGFlc19od194dHNf
ZW5jcnlwdDoKIAlwY21wZ3RkCSV4bW0xLCV4bW0wCiAJcHhvcgkleG1tMiwleG1tMQogCXN1YmwJ
JDk2LCVlYXgKLQlqbmMJLkwwNDh4dHNfZW5jX2xvb3A2CisJam5jCS5MMDUweHRzX2VuY19sb29w
NgogCW1vdmwJMjQwKCVlYnApLCVlY3gKIAltb3ZsCSVlYnAsJWVkeAogCW1vdmwJJWVjeCwlZWJ4
Ci0uTDA0N3h0c19lbmNfc2hvcnQ6CisuTDA0OXh0c19lbmNfc2hvcnQ6CiAJYWRkbAkkOTYsJWVh
eAotCWp6CS5MMDQ5eHRzX2VuY19kb25lNngKKwlqegkuTDA1MXh0c19lbmNfZG9uZTZ4CiAJbW92
ZHFhCSV4bW0xLCV4bW01CiAJY21wbAkkMzIsJWVheAotCWpiCS5MMDUweHRzX2VuY19vbmUKKwlq
YgkuTDA1Mnh0c19lbmNfb25lCiAJcHNodWZkCSQxOSwleG1tMCwleG1tMgogCXB4b3IJJXhtbTAs
JXhtbTAKIAlwYWRkcQkleG1tMSwleG1tMQogCXBhbmQJJXhtbTMsJXhtbTIKIAlwY21wZ3RkCSV4
bW0xLCV4bW0wCiAJcHhvcgkleG1tMiwleG1tMQotCWplCS5MMDUxeHRzX2VuY190d28KKwlqZQku
TDA1M3h0c19lbmNfdHdvCiAJcHNodWZkCSQxOSwleG1tMCwleG1tMgogCXB4b3IJJXhtbTAsJXht
bTAKIAltb3ZkcWEJJXhtbTEsJXhtbTYKQEAgLTEyMjgsNyArMTI1NCw3IEBAIGFlc19od194dHNf
ZW5jcnlwdDoKIAlwY21wZ3RkCSV4bW0xLCV4bW0wCiAJcHhvcgkleG1tMiwleG1tMQogCWNtcGwJ
JDY0LCVlYXgKLQlqYgkuTDA1Mnh0c19lbmNfdGhyZWUKKwlqYgkuTDA1NHh0c19lbmNfdGhyZWUK
IAlwc2h1ZmQJJDE5LCV4bW0wLCV4bW0yCiAJcHhvcgkleG1tMCwleG1tMAogCW1vdmRxYQkleG1t
MSwleG1tNwpAQCAtMTIzOCw3ICsxMjY0LDcgQEAgYWVzX2h3X3h0c19lbmNyeXB0OgogCXB4b3IJ
JXhtbTIsJXhtbTEKIAltb3ZkcWEJJXhtbTUsKCVlc3ApCiAJbW92ZHFhCSV4bW02LDE2KCVlc3Ap
Ci0JamUJLkwwNTN4dHNfZW5jX2ZvdXIKKwlqZQkuTDA1NXh0c19lbmNfZm91cgogCW1vdmRxYQkl
eG1tNywzMiglZXNwKQogCXBzaHVmZAkkMTksJXhtbTAsJXhtbTcKIAltb3ZkcWEJJXhtbTEsNDgo
JWVzcCkKQEAgLTEyNzAsOSArMTI5Niw5IEBAIGFlc19od194dHNfZW5jcnlwdDoKIAltb3Z1cHMJ
JXhtbTUsNDgoJWVkaSkKIAltb3Z1cHMJJXhtbTYsNjQoJWVkaSkKIAlsZWFsCTgwKCVlZGkpLCVl
ZGkKLQlqbXAJLkwwNTR4dHNfZW5jX2RvbmUKKwlqbXAJLkwwNTZ4dHNfZW5jX2RvbmUKIC5hbGln
bgkxNgotLkwwNTB4dHNfZW5jX29uZToKKy5MMDUyeHRzX2VuY19vbmU6CiAJbW92dXBzCSglZXNp
KSwleG1tMgogCWxlYWwJMTYoJWVzaSksJWVzaQogCXhvcnBzCSV4bW01LCV4bW0yCkBAIC0xMjgw
LDIwICsxMzA2LDIwIEBAIGFlc19od194dHNfZW5jcnlwdDoKIAltb3Z1cHMJMTYoJWVkeCksJXht
bTEKIAlsZWFsCTMyKCVlZHgpLCVlZHgKIAl4b3JwcwkleG1tMCwleG1tMgotLkwwNTVlbmMxX2xv
b3BfOToKKy5MMDU3ZW5jMV9sb29wXzk6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQogCWRlY2wJ
JWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVlZHgpLCVlZHgKLQlqbnoJLkww
NTVlbmMxX2xvb3BfOQorCWpuegkuTDA1N2VuYzFfbG9vcF85CiAuYnl0ZQkxMDIsMTUsNTYsMjIx
LDIwOQogCXhvcnBzCSV4bW01LCV4bW0yCiAJbW92dXBzCSV4bW0yLCglZWRpKQogCWxlYWwJMTYo
JWVkaSksJWVkaQogCW1vdmRxYQkleG1tNSwleG1tMQotCWptcAkuTDA1NHh0c19lbmNfZG9uZQor
CWptcAkuTDA1Nnh0c19lbmNfZG9uZQogLmFsaWduCTE2Ci0uTDA1MXh0c19lbmNfdHdvOgorLkww
NTN4dHNfZW5jX3R3bzoKIAltb3ZhcHMJJXhtbTEsJXhtbTYKIAltb3Z1cHMJKCVlc2kpLCV4bW0y
CiAJbW92dXBzCTE2KCVlc2kpLCV4bW0zCkBAIC0xMzA3LDkgKzEzMzMsOSBAQCBhZXNfaHdfeHRz
X2VuY3J5cHQ6CiAJbW92dXBzCSV4bW0zLDE2KCVlZGkpCiAJbGVhbAkzMiglZWRpKSwlZWRpCiAJ
bW92ZHFhCSV4bW02LCV4bW0xCi0Jam1wCS5MMDU0eHRzX2VuY19kb25lCisJam1wCS5MMDU2eHRz
X2VuY19kb25lCiAuYWxpZ24JMTYKLS5MMDUyeHRzX2VuY190aHJlZToKKy5MMDU0eHRzX2VuY190
aHJlZToKIAltb3ZhcHMJJXhtbTEsJXhtbTcKIAltb3Z1cHMJKCVlc2kpLCV4bW0yCiAJbW92dXBz
CTE2KCVlc2kpLCV4bW0zCkBAIC0xMzI3LDkgKzEzNTMsOSBAQCBhZXNfaHdfeHRzX2VuY3J5cHQ6
CiAJbW92dXBzCSV4bW00LDMyKCVlZGkpCiAJbGVhbAk0OCglZWRpKSwlZWRpCiAJbW92ZHFhCSV4
bW03LCV4bW0xCi0Jam1wCS5MMDU0eHRzX2VuY19kb25lCisJam1wCS5MMDU2eHRzX2VuY19kb25l
CiAuYWxpZ24JMTYKLS5MMDUzeHRzX2VuY19mb3VyOgorLkwwNTV4dHNfZW5jX2ZvdXI6CiAJbW92
YXBzCSV4bW0xLCV4bW02CiAJbW92dXBzCSglZXNpKSwleG1tMgogCW1vdnVwcwkxNiglZXNpKSwl
eG1tMwpAQCAtMTM1MSwyOCArMTM3NywyOCBAQCBhZXNfaHdfeHRzX2VuY3J5cHQ6CiAJbW92dXBz
CSV4bW01LDQ4KCVlZGkpCiAJbGVhbAk2NCglZWRpKSwlZWRpCiAJbW92ZHFhCSV4bW02LCV4bW0x
Ci0Jam1wCS5MMDU0eHRzX2VuY19kb25lCisJam1wCS5MMDU2eHRzX2VuY19kb25lCiAuYWxpZ24J
MTYKLS5MMDQ5eHRzX2VuY19kb25lNng6CisuTDA1MXh0c19lbmNfZG9uZTZ4OgogCW1vdmwJMTEy
KCVlc3ApLCVlYXgKIAlhbmRsCSQxNSwlZWF4Ci0JanoJLkwwNTZ4dHNfZW5jX3JldAorCWp6CS5M
MDU4eHRzX2VuY19yZXQKIAltb3ZkcWEJJXhtbTEsJXhtbTUKIAltb3ZsCSVlYXgsMTEyKCVlc3Ap
Ci0Jam1wCS5MMDU3eHRzX2VuY19zdGVhbAorCWptcAkuTDA1OXh0c19lbmNfc3RlYWwKIC5hbGln
bgkxNgotLkwwNTR4dHNfZW5jX2RvbmU6CisuTDA1Nnh0c19lbmNfZG9uZToKIAltb3ZsCTExMigl
ZXNwKSwlZWF4CiAJcHhvcgkleG1tMCwleG1tMAogCWFuZGwJJDE1LCVlYXgKLQlqegkuTDA1Nnh0
c19lbmNfcmV0CisJanoJLkwwNTh4dHNfZW5jX3JldAogCXBjbXBndGQJJXhtbTEsJXhtbTAKIAlt
b3ZsCSVlYXgsMTEyKCVlc3ApCiAJcHNodWZkCSQxOSwleG1tMCwleG1tNQogCXBhZGRxCSV4bW0x
LCV4bW0xCiAJcGFuZAk5NiglZXNwKSwleG1tNQogCXB4b3IJJXhtbTEsJXhtbTUKLS5MMDU3eHRz
X2VuY19zdGVhbDoKKy5MMDU5eHRzX2VuY19zdGVhbDoKIAltb3Z6YmwJKCVlc2kpLCVlY3gKIAlt
b3Z6YmwJLTE2KCVlZGkpLCVlZHgKIAlsZWFsCTEoJWVzaSksJWVzaQpAQCAtMTM4MCw3ICsxNDA2
LDcgQEAgYWVzX2h3X3h0c19lbmNyeXB0OgogCW1vdmIJJWRsLCglZWRpKQogCWxlYWwJMSglZWRp
KSwlZWRpCiAJc3VibAkkMSwlZWF4Ci0Jam56CS5MMDU3eHRzX2VuY19zdGVhbAorCWpuegkuTDA1
OXh0c19lbmNfc3RlYWwKIAlzdWJsCTExMiglZXNwKSwlZWRpCiAJbW92bAklZWJwLCVlZHgKIAlt
b3ZsCSVlYngsJWVjeApAQCAtMTM5MCwxNiArMTQxNiwxNiBAQCBhZXNfaHdfeHRzX2VuY3J5cHQ6
CiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXht
bTAsJXhtbTIKLS5MMDU4ZW5jMV9sb29wXzEwOgorLkwwNjBlbmMxX2xvb3BfMTA6CiAuYnl0ZQkx
MDIsMTUsNTYsMjIwLDIwOQogCWRlY2wJJWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFs
CTE2KCVlZHgpLCVlZHgKLQlqbnoJLkwwNThlbmMxX2xvb3BfMTAKKwlqbnoJLkwwNjBlbmMxX2xv
b3BfMTAKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjA5CiAJeG9ycHMJJXhtbTUsJXhtbTIKIAltb3Z1
cHMJJXhtbTIsLTE2KCVlZGkpCi0uTDA1Nnh0c19lbmNfcmV0OgorLkwwNTh4dHNfZW5jX3JldDoK
IAlweG9yCSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMQogCXB4b3IJJXhtbTIsJXhtbTIK
QEAgLTE0MzksMTIgKzE0NjUsMTIgQEAgYWVzX2h3X3h0c19kZWNyeXB0OgogCW1vdnVwcwkxNigl
ZWR4KSwleG1tMQogCWxlYWwJMzIoJWVkeCksJWVkeAogCXhvcnBzCSV4bW0wLCV4bW0yCi0uTDA1
OWVuYzFfbG9vcF8xMToKKy5MMDYxZW5jMV9sb29wXzExOgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4
Ci0Jam56CS5MMDU5ZW5jMV9sb29wXzExCisJam56CS5MMDYxZW5jMV9sb29wXzExCiAuYnl0ZQkx
MDIsMTUsNTYsMjIxLDIwOQogCW1vdmwJMjAoJWVzcCksJWVzaQogCW1vdmwJMjQoJWVzcCksJWVk
aQpAQCAtMTQ3MywxNCArMTQ5OSwxNCBAQCBhZXNfaHdfeHRzX2RlY3J5cHQ6CiAJcGNtcGd0ZAkl
eG1tMSwleG1tMAogCWFuZGwJJC0xNiwlZWF4CiAJc3VibAkkOTYsJWVheAotCWpjCS5MMDYweHRz
X2RlY19zaG9ydAorCWpjCS5MMDYyeHRzX2RlY19zaG9ydAogCXNobGwJJDQsJWVjeAogCW1vdmwJ
JDE2LCVlYngKIAlzdWJsCSVlY3gsJWVieAogCWxlYWwJMzIoJWVkeCwlZWN4LDEpLCVlZHgKLQlq
bXAJLkwwNjF4dHNfZGVjX2xvb3A2CisJam1wCS5MMDYzeHRzX2RlY19sb29wNgogLmFsaWduCTE2
Ci0uTDA2MXh0c19kZWNfbG9vcDY6CisuTDA2M3h0c19kZWNfbG9vcDY6CiAJcHNodWZkCSQxOSwl
eG1tMCwleG1tMgogCXB4b3IJJXhtbTAsJXhtbTAKIAltb3ZkcWEJJXhtbTEsKCVlc3ApCkBAIC0x
NTY5LDIzICsxNTk1LDIzIEBAIGFlc19od194dHNfZGVjcnlwdDoKIAlwY21wZ3RkCSV4bW0xLCV4
bW0wCiAJcHhvcgkleG1tMiwleG1tMQogCXN1YmwJJDk2LCVlYXgKLQlqbmMJLkwwNjF4dHNfZGVj
X2xvb3A2CisJam5jCS5MMDYzeHRzX2RlY19sb29wNgogCW1vdmwJMjQwKCVlYnApLCVlY3gKIAlt
b3ZsCSVlYnAsJWVkeAogCW1vdmwJJWVjeCwlZWJ4Ci0uTDA2MHh0c19kZWNfc2hvcnQ6CisuTDA2
Mnh0c19kZWNfc2hvcnQ6CiAJYWRkbAkkOTYsJWVheAotCWp6CS5MMDYyeHRzX2RlY19kb25lNngK
KwlqegkuTDA2NHh0c19kZWNfZG9uZTZ4CiAJbW92ZHFhCSV4bW0xLCV4bW01CiAJY21wbAkkMzIs
JWVheAotCWpiCS5MMDYzeHRzX2RlY19vbmUKKwlqYgkuTDA2NXh0c19kZWNfb25lCiAJcHNodWZk
CSQxOSwleG1tMCwleG1tMgogCXB4b3IJJXhtbTAsJXhtbTAKIAlwYWRkcQkleG1tMSwleG1tMQog
CXBhbmQJJXhtbTMsJXhtbTIKIAlwY21wZ3RkCSV4bW0xLCV4bW0wCiAJcHhvcgkleG1tMiwleG1t
MQotCWplCS5MMDY0eHRzX2RlY190d28KKwlqZQkuTDA2Nnh0c19kZWNfdHdvCiAJcHNodWZkCSQx
OSwleG1tMCwleG1tMgogCXB4b3IJJXhtbTAsJXhtbTAKIAltb3ZkcWEJJXhtbTEsJXhtbTYKQEAg
LTE1OTQsNyArMTYyMCw3IEBAIGFlc19od194dHNfZGVjcnlwdDoKIAlwY21wZ3RkCSV4bW0xLCV4
bW0wCiAJcHhvcgkleG1tMiwleG1tMQogCWNtcGwJJDY0LCVlYXgKLQlqYgkuTDA2NXh0c19kZWNf
dGhyZWUKKwlqYgkuTDA2N3h0c19kZWNfdGhyZWUKIAlwc2h1ZmQJJDE5LCV4bW0wLCV4bW0yCiAJ
cHhvcgkleG1tMCwleG1tMAogCW1vdmRxYQkleG1tMSwleG1tNwpAQCAtMTYwNCw3ICsxNjMwLDcg
QEAgYWVzX2h3X3h0c19kZWNyeXB0OgogCXB4b3IJJXhtbTIsJXhtbTEKIAltb3ZkcWEJJXhtbTUs
KCVlc3ApCiAJbW92ZHFhCSV4bW02LDE2KCVlc3ApCi0JamUJLkwwNjZ4dHNfZGVjX2ZvdXIKKwlq
ZQkuTDA2OHh0c19kZWNfZm91cgogCW1vdmRxYQkleG1tNywzMiglZXNwKQogCXBzaHVmZAkkMTks
JXhtbTAsJXhtbTcKIAltb3ZkcWEJJXhtbTEsNDgoJWVzcCkKQEAgLTE2MzYsOSArMTY2Miw5IEBA
IGFlc19od194dHNfZGVjcnlwdDoKIAltb3Z1cHMJJXhtbTUsNDgoJWVkaSkKIAltb3Z1cHMJJXht
bTYsNjQoJWVkaSkKIAlsZWFsCTgwKCVlZGkpLCVlZGkKLQlqbXAJLkwwNjd4dHNfZGVjX2RvbmUK
KwlqbXAJLkwwNjl4dHNfZGVjX2RvbmUKIC5hbGlnbgkxNgotLkwwNjN4dHNfZGVjX29uZToKKy5M
MDY1eHRzX2RlY19vbmU6CiAJbW92dXBzCSglZXNpKSwleG1tMgogCWxlYWwJMTYoJWVzaSksJWVz
aQogCXhvcnBzCSV4bW01LCV4bW0yCkBAIC0xNjQ2LDIwICsxNjcyLDIwIEBAIGFlc19od194dHNf
ZGVjcnlwdDoKIAltb3Z1cHMJMTYoJWVkeCksJXhtbTEKIAlsZWFsCTMyKCVlZHgpLCVlZHgKIAl4
b3JwcwkleG1tMCwleG1tMgotLkwwNjhkZWMxX2xvb3BfMTI6CisuTDA3MGRlYzFfbG9vcF8xMjoK
IC5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CiAJZGVjbAklZWN4CiAJbW92dXBzCSglZWR4KSwleG1t
MQogCWxlYWwJMTYoJWVkeCksJWVkeAotCWpuegkuTDA2OGRlYzFfbG9vcF8xMgorCWpuegkuTDA3
MGRlYzFfbG9vcF8xMgogLmJ5dGUJMTAyLDE1LDU2LDIyMywyMDkKIAl4b3JwcwkleG1tNSwleG1t
MgogCW1vdnVwcwkleG1tMiwoJWVkaSkKIAlsZWFsCTE2KCVlZGkpLCVlZGkKIAltb3ZkcWEJJXht
bTUsJXhtbTEKLQlqbXAJLkwwNjd4dHNfZGVjX2RvbmUKKwlqbXAJLkwwNjl4dHNfZGVjX2RvbmUK
IC5hbGlnbgkxNgotLkwwNjR4dHNfZGVjX3R3bzoKKy5MMDY2eHRzX2RlY190d286CiAJbW92YXBz
CSV4bW0xLCV4bW02CiAJbW92dXBzCSglZXNpKSwleG1tMgogCW1vdnVwcwkxNiglZXNpKSwleG1t
MwpAQCAtMTY3Myw5ICsxNjk5LDkgQEAgYWVzX2h3X3h0c19kZWNyeXB0OgogCW1vdnVwcwkleG1t
MywxNiglZWRpKQogCWxlYWwJMzIoJWVkaSksJWVkaQogCW1vdmRxYQkleG1tNiwleG1tMQotCWpt
cAkuTDA2N3h0c19kZWNfZG9uZQorCWptcAkuTDA2OXh0c19kZWNfZG9uZQogLmFsaWduCTE2Ci0u
TDA2NXh0c19kZWNfdGhyZWU6CisuTDA2N3h0c19kZWNfdGhyZWU6CiAJbW92YXBzCSV4bW0xLCV4
bW03CiAJbW92dXBzCSglZXNpKSwleG1tMgogCW1vdnVwcwkxNiglZXNpKSwleG1tMwpAQCAtMTY5
Myw5ICsxNzE5LDkgQEAgYWVzX2h3X3h0c19kZWNyeXB0OgogCW1vdnVwcwkleG1tNCwzMiglZWRp
KQogCWxlYWwJNDgoJWVkaSksJWVkaQogCW1vdmRxYQkleG1tNywleG1tMQotCWptcAkuTDA2N3h0
c19kZWNfZG9uZQorCWptcAkuTDA2OXh0c19kZWNfZG9uZQogLmFsaWduCTE2Ci0uTDA2Nnh0c19k
ZWNfZm91cjoKKy5MMDY4eHRzX2RlY19mb3VyOgogCW1vdmFwcwkleG1tMSwleG1tNgogCW1vdnVw
cwkoJWVzaSksJXhtbTIKIAltb3Z1cHMJMTYoJWVzaSksJXhtbTMKQEAgLTE3MTcsMjAgKzE3NDMs
MjAgQEAgYWVzX2h3X3h0c19kZWNyeXB0OgogCW1vdnVwcwkleG1tNSw0OCglZWRpKQogCWxlYWwJ
NjQoJWVkaSksJWVkaQogCW1vdmRxYQkleG1tNiwleG1tMQotCWptcAkuTDA2N3h0c19kZWNfZG9u
ZQorCWptcAkuTDA2OXh0c19kZWNfZG9uZQogLmFsaWduCTE2Ci0uTDA2Mnh0c19kZWNfZG9uZTZ4
OgorLkwwNjR4dHNfZGVjX2RvbmU2eDoKIAltb3ZsCTExMiglZXNwKSwlZWF4CiAJYW5kbAkkMTUs
JWVheAotCWp6CS5MMDY5eHRzX2RlY19yZXQKKwlqegkuTDA3MXh0c19kZWNfcmV0CiAJbW92bAkl
ZWF4LDExMiglZXNwKQotCWptcAkuTDA3MHh0c19kZWNfb25seV9vbmVfbW9yZQorCWptcAkuTDA3
Mnh0c19kZWNfb25seV9vbmVfbW9yZQogLmFsaWduCTE2Ci0uTDA2N3h0c19kZWNfZG9uZToKKy5M
MDY5eHRzX2RlY19kb25lOgogCW1vdmwJMTEyKCVlc3ApLCVlYXgKIAlweG9yCSV4bW0wLCV4bW0w
CiAJYW5kbAkkMTUsJWVheAotCWp6CS5MMDY5eHRzX2RlY19yZXQKKwlqegkuTDA3MXh0c19kZWNf
cmV0CiAJcGNtcGd0ZAkleG1tMSwleG1tMAogCW1vdmwJJWVheCwxMTIoJWVzcCkKIAlwc2h1ZmQJ
JDE5LCV4bW0wLCV4bW0yCkBAIC0xNzQwLDcgKzE3NjYsNyBAQCBhZXNfaHdfeHRzX2RlY3J5cHQ6
CiAJcGFuZAkleG1tMywleG1tMgogCXBjbXBndGQJJXhtbTEsJXhtbTAKIAlweG9yCSV4bW0yLCV4
bW0xCi0uTDA3MHh0c19kZWNfb25seV9vbmVfbW9yZToKKy5MMDcyeHRzX2RlY19vbmx5X29uZV9t
b3JlOgogCXBzaHVmZAkkMTksJXhtbTAsJXhtbTUKIAltb3ZkcWEJJXhtbTEsJXhtbTYKIAlwYWRk
cQkleG1tMSwleG1tMQpAQCAtMTc1NCwxNiArMTc4MCwxNiBAQCBhZXNfaHdfeHRzX2RlY3J5cHQ6
CiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXht
bTAsJXhtbTIKLS5MMDcxZGVjMV9sb29wXzEzOgorLkwwNzNkZWMxX2xvb3BfMTM6CiAuYnl0ZQkx
MDIsMTUsNTYsMjIyLDIwOQogCWRlY2wJJWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFs
CTE2KCVlZHgpLCVlZHgKLQlqbnoJLkwwNzFkZWMxX2xvb3BfMTMKKwlqbnoJLkwwNzNkZWMxX2xv
b3BfMTMKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5CiAJeG9ycHMJJXhtbTUsJXhtbTIKIAltb3Z1
cHMJJXhtbTIsKCVlZGkpCi0uTDA3Mnh0c19kZWNfc3RlYWw6CisuTDA3NHh0c19kZWNfc3RlYWw6
CiAJbW92emJsCTE2KCVlc2kpLCVlY3gKIAltb3Z6YmwJKCVlZGkpLCVlZHgKIAlsZWFsCTEoJWVz
aSksJWVzaQpAQCAtMTc3MSw3ICsxNzk3LDcgQEAgYWVzX2h3X3h0c19kZWNyeXB0OgogCW1vdmIJ
JWRsLDE2KCVlZGkpCiAJbGVhbAkxKCVlZGkpLCVlZGkKIAlzdWJsCSQxLCVlYXgKLQlqbnoJLkww
NzJ4dHNfZGVjX3N0ZWFsCisJam56CS5MMDc0eHRzX2RlY19zdGVhbAogCXN1YmwJMTEyKCVlc3Ap
LCVlZGkKIAltb3ZsCSVlYnAsJWVkeAogCW1vdmwJJWVieCwlZWN4CkBAIC0xNzgxLDE2ICsxODA3
LDE2IEBAIGFlc19od194dHNfZGVjcnlwdDoKIAltb3Z1cHMJMTYoJWVkeCksJXhtbTEKIAlsZWFs
CTMyKCVlZHgpLCVlZHgKIAl4b3JwcwkleG1tMCwleG1tMgotLkwwNzNkZWMxX2xvb3BfMTQ6Cisu
TDA3NWRlYzFfbG9vcF8xNDoKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CiAJZGVjbAklZWN4CiAJ
bW92dXBzCSglZWR4KSwleG1tMQogCWxlYWwJMTYoJWVkeCksJWVkeAotCWpuegkuTDA3M2RlYzFf
bG9vcF8xNAorCWpuegkuTDA3NWRlYzFfbG9vcF8xNAogLmJ5dGUJMTAyLDE1LDU2LDIyMywyMDkK
IAl4b3JwcwkleG1tNiwleG1tMgogCW1vdnVwcwkleG1tMiwoJWVkaSkKLS5MMDY5eHRzX2RlY19y
ZXQ6CisuTDA3MXh0c19kZWNfcmV0OgogCXB4b3IJJXhtbTAsJXhtbTAKIAlweG9yCSV4bW0xLCV4
bW0xCiAJcHhvcgkleG1tMiwleG1tMgpAQCAtMTgzMSw3ICsxODU3LDcgQEAgYWVzX2h3X2NiY19l
bmNyeXB0OgogCW1vdmwJMzIoJWVzcCksJWVkeAogCW1vdmwJMzYoJWVzcCksJWVicAogCXRlc3Rs
CSVlYXgsJWVheAotCWp6CS5MMDc0Y2JjX2Fib3J0CisJanoJLkwwNzZjYmNfYWJvcnQKIAljbXBs
CSQwLDQwKCVlc3ApCiAJeGNoZ2wJJWVzcCwlZWJ4CiAJbW92dXBzCSglZWJwKSwleG1tNwpAQCAt
MTgzOSwxNCArMTg2NSwxNCBAQCBhZXNfaHdfY2JjX2VuY3J5cHQ6CiAJbW92bAklZWR4LCVlYnAK
IAltb3ZsCSVlYngsMTYoJWVzcCkKIAltb3ZsCSVlY3gsJWVieAotCWplCS5MMDc1Y2JjX2RlY3J5
cHQKKwlqZQkuTDA3N2NiY19kZWNyeXB0CiAJbW92YXBzCSV4bW03LCV4bW0yCiAJY21wbAkkMTYs
JWVheAotCWpiCS5MMDc2Y2JjX2VuY190YWlsCisJamIJLkwwNzhjYmNfZW5jX3RhaWwKIAlzdWJs
CSQxNiwlZWF4Ci0Jam1wCS5MMDc3Y2JjX2VuY19sb29wCisJam1wCS5MMDc5Y2JjX2VuY19sb29w
CiAuYWxpZ24JMTYKLS5MMDc3Y2JjX2VuY19sb29wOgorLkwwNzljYmNfZW5jX2xvb3A6CiAJbW92
dXBzCSglZXNpKSwleG1tNwogCWxlYWwJMTYoJWVzaSksJWVzaQogCW1vdnVwcwkoJWVkeCksJXht
bTAKQEAgLTE4NTQsMjUgKzE4ODAsMjUgQEAgYWVzX2h3X2NiY19lbmNyeXB0OgogCXhvcnBzCSV4
bW0wLCV4bW03CiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXhtbTcsJXhtbTIKLS5MMDc4
ZW5jMV9sb29wXzE1OgorLkwwODBlbmMxX2xvb3BfMTU6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIw
OQogCWRlY2wJJWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVlZHgpLCVlZHgK
LQlqbnoJLkwwNzhlbmMxX2xvb3BfMTUKKwlqbnoJLkwwODBlbmMxX2xvb3BfMTUKIC5ieXRlCTEw
MiwxNSw1NiwyMjEsMjA5CiAJbW92bAklZWJ4LCVlY3gKIAltb3ZsCSVlYnAsJWVkeAogCW1vdnVw
cwkleG1tMiwoJWVkaSkKIAlsZWFsCTE2KCVlZGkpLCVlZGkKIAlzdWJsCSQxNiwlZWF4Ci0Jam5j
CS5MMDc3Y2JjX2VuY19sb29wCisJam5jCS5MMDc5Y2JjX2VuY19sb29wCiAJYWRkbAkkMTYsJWVh
eAotCWpuegkuTDA3NmNiY19lbmNfdGFpbAorCWpuegkuTDA3OGNiY19lbmNfdGFpbAogCW1vdmFw
cwkleG1tMiwleG1tNwogCXB4b3IJJXhtbTIsJXhtbTIKLQlqbXAJLkwwNzljYmNfcmV0Ci0uTDA3
NmNiY19lbmNfdGFpbDoKKwlqbXAJLkwwODFjYmNfcmV0CisuTDA3OGNiY19lbmNfdGFpbDoKIAlt
b3ZsCSVlYXgsJWVjeAogLmxvbmcJMjc2NzQ1MTc4NQogCW1vdmwJJDE2LCVlY3gKQEAgLTE4ODMs
MjAgKzE5MDksMjAgQEAgYWVzX2h3X2NiY19lbmNyeXB0OgogCW1vdmwJJWVieCwlZWN4CiAJbW92
bAklZWRpLCVlc2kKIAltb3ZsCSVlYnAsJWVkeAotCWptcAkuTDA3N2NiY19lbmNfbG9vcAorCWpt
cAkuTDA3OWNiY19lbmNfbG9vcAogLmFsaWduCTE2Ci0uTDA3NWNiY19kZWNyeXB0OgorLkwwNzdj
YmNfZGVjcnlwdDoKIAljbXBsCSQ4MCwlZWF4Ci0JamJlCS5MMDgwY2JjX2RlY190YWlsCisJamJl
CS5MMDgyY2JjX2RlY190YWlsCiAJbW92YXBzCSV4bW03LCglZXNwKQogCXN1YmwJJDgwLCVlYXgK
LQlqbXAJLkwwODFjYmNfZGVjX2xvb3A2X2VudGVyCisJam1wCS5MMDgzY2JjX2RlY19sb29wNl9l
bnRlcgogLmFsaWduCTE2Ci0uTDA4MmNiY19kZWNfbG9vcDY6CisuTDA4NGNiY19kZWNfbG9vcDY6
CiAJbW92YXBzCSV4bW0wLCglZXNwKQogCW1vdnVwcwkleG1tNywoJWVkaSkKIAlsZWFsCTE2KCVl
ZGkpLCVlZGkKLS5MMDgxY2JjX2RlY19sb29wNl9lbnRlcjoKKy5MMDgzY2JjX2RlY19sb29wNl9l
bnRlcjoKIAltb3ZkcXUJKCVlc2kpLCV4bW0yCiAJbW92ZHF1CTE2KCVlc2kpLCV4bW0zCiAJbW92
ZHF1CTMyKCVlc2kpLCV4bW00CkBAIC0xOTI2LDI4ICsxOTUyLDI4IEBAIGFlc19od19jYmNfZW5j
cnlwdDoKIAltb3Z1cHMJJXhtbTYsNjQoJWVkaSkKIAlsZWFsCTgwKCVlZGkpLCVlZGkKIAlzdWJs
CSQ5NiwlZWF4Ci0JamEJLkwwODJjYmNfZGVjX2xvb3A2CisJamEJLkwwODRjYmNfZGVjX2xvb3A2
CiAJbW92YXBzCSV4bW03LCV4bW0yCiAJbW92YXBzCSV4bW0wLCV4bW03CiAJYWRkbAkkODAsJWVh
eAotCWpsZQkuTDA4M2NiY19kZWNfY2xlYXJfdGFpbF9jb2xsZWN0ZWQKKwlqbGUJLkwwODVjYmNf
ZGVjX2NsZWFyX3RhaWxfY29sbGVjdGVkCiAJbW92dXBzCSV4bW0yLCglZWRpKQogCWxlYWwJMTYo
JWVkaSksJWVkaQotLkwwODBjYmNfZGVjX3RhaWw6CisuTDA4MmNiY19kZWNfdGFpbDoKIAltb3Z1
cHMJKCVlc2kpLCV4bW0yCiAJbW92YXBzCSV4bW0yLCV4bW02CiAJY21wbAkkMTYsJWVheAotCWpi
ZQkuTDA4NGNiY19kZWNfb25lCisJamJlCS5MMDg2Y2JjX2RlY19vbmUKIAltb3Z1cHMJMTYoJWVz
aSksJXhtbTMKIAltb3ZhcHMJJXhtbTMsJXhtbTUKIAljbXBsCSQzMiwlZWF4Ci0JamJlCS5MMDg1
Y2JjX2RlY190d28KKwlqYmUJLkwwODdjYmNfZGVjX3R3bwogCW1vdnVwcwkzMiglZXNpKSwleG1t
NAogCWNtcGwJJDQ4LCVlYXgKLQlqYmUJLkwwODZjYmNfZGVjX3RocmVlCisJamJlCS5MMDg4Y2Jj
X2RlY190aHJlZQogCW1vdnVwcwk0OCglZXNpKSwleG1tNQogCWNtcGwJJDY0LCVlYXgKLQlqYmUJ
LkwwODdjYmNfZGVjX2ZvdXIKKwlqYmUJLkwwODljYmNfZGVjX2ZvdXIKIAltb3Z1cHMJNjQoJWVz
aSksJXhtbTYKIAltb3ZhcHMJJXhtbTcsKCVlc3ApCiAJbW92dXBzCSglZXNpKSwleG1tMgpAQCAt
MTk3NCwyNiArMjAwMCwyNiBAQCBhZXNfaHdfY2JjX2VuY3J5cHQ6CiAJbW92YXBzCSV4bW02LCV4
bW0yCiAJcHhvcgkleG1tNiwleG1tNgogCXN1YmwJJDgwLCVlYXgKLQlqbXAJLkwwODhjYmNfZGVj
X3RhaWxfY29sbGVjdGVkCisJam1wCS5MMDkwY2JjX2RlY190YWlsX2NvbGxlY3RlZAogLmFsaWdu
CTE2Ci0uTDA4NGNiY19kZWNfb25lOgorLkwwODZjYmNfZGVjX29uZToKIAltb3Z1cHMJKCVlZHgp
LCV4bW0wCiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9y
cHMJJXhtbTAsJXhtbTIKLS5MMDg5ZGVjMV9sb29wXzE2OgorLkwwOTFkZWMxX2xvb3BfMTY6CiAu
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogCWRlY2wJJWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEK
IAlsZWFsCTE2KCVlZHgpLCVlZHgKLQlqbnoJLkwwODlkZWMxX2xvb3BfMTYKKwlqbnoJLkwwOTFk
ZWMxX2xvb3BfMTYKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5CiAJeG9ycHMJJXhtbTcsJXhtbTIK
IAltb3ZhcHMJJXhtbTYsJXhtbTcKIAlzdWJsCSQxNiwlZWF4Ci0Jam1wCS5MMDg4Y2JjX2RlY190
YWlsX2NvbGxlY3RlZAorCWptcAkuTDA5MGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKIC5hbGlnbgkx
NgotLkwwODVjYmNfZGVjX3R3bzoKKy5MMDg3Y2JjX2RlY190d286CiAJY2FsbAlfYWVzbmlfZGVj
cnlwdDIKIAl4b3JwcwkleG1tNywleG1tMgogCXhvcnBzCSV4bW02LCV4bW0zCkBAIC0yMDAzLDkg
KzIwMjksOSBAQCBhZXNfaHdfY2JjX2VuY3J5cHQ6CiAJbGVhbAkxNiglZWRpKSwlZWRpCiAJbW92
YXBzCSV4bW01LCV4bW03CiAJc3VibAkkMzIsJWVheAotCWptcAkuTDA4OGNiY19kZWNfdGFpbF9j
b2xsZWN0ZWQKKwlqbXAJLkwwOTBjYmNfZGVjX3RhaWxfY29sbGVjdGVkCiAuYWxpZ24JMTYKLS5M
MDg2Y2JjX2RlY190aHJlZToKKy5MMDg4Y2JjX2RlY190aHJlZToKIAljYWxsCV9hZXNuaV9kZWNy
eXB0MwogCXhvcnBzCSV4bW03LCV4bW0yCiAJeG9ycHMJJXhtbTYsJXhtbTMKQEAgLTIwMTgsOSAr
MjA0NCw5IEBAIGFlc19od19jYmNfZW5jcnlwdDoKIAlsZWFsCTMyKCVlZGkpLCVlZGkKIAltb3Z1
cHMJMzIoJWVzaSksJXhtbTcKIAlzdWJsCSQ0OCwlZWF4Ci0Jam1wCS5MMDg4Y2JjX2RlY190YWls
X2NvbGxlY3RlZAorCWptcAkuTDA5MGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKIC5hbGlnbgkxNgot
LkwwODdjYmNfZGVjX2ZvdXI6CisuTDA4OWNiY19kZWNfZm91cjoKIAljYWxsCV9hZXNuaV9kZWNy
eXB0NAogCW1vdnVwcwkxNiglZXNpKSwleG1tMQogCW1vdnVwcwkzMiglZXNpKSwleG1tMApAQCAt
MjAzOCwyMSArMjA2NCwyMSBAQCBhZXNfaHdfY2JjX2VuY3J5cHQ6CiAJbW92YXBzCSV4bW01LCV4
bW0yCiAJcHhvcgkleG1tNSwleG1tNQogCXN1YmwJJDY0LCVlYXgKLQlqbXAJLkwwODhjYmNfZGVj
X3RhaWxfY29sbGVjdGVkCisJam1wCS5MMDkwY2JjX2RlY190YWlsX2NvbGxlY3RlZAogLmFsaWdu
CTE2Ci0uTDA4M2NiY19kZWNfY2xlYXJfdGFpbF9jb2xsZWN0ZWQ6CisuTDA4NWNiY19kZWNfY2xl
YXJfdGFpbF9jb2xsZWN0ZWQ6CiAJcHhvcgkleG1tMywleG1tMwogCXB4b3IJJXhtbTQsJXhtbTQK
IAlweG9yCSV4bW01LCV4bW01CiAJcHhvcgkleG1tNiwleG1tNgotLkwwODhjYmNfZGVjX3RhaWxf
Y29sbGVjdGVkOgorLkwwOTBjYmNfZGVjX3RhaWxfY29sbGVjdGVkOgogCWFuZGwJJDE1LCVlYXgK
LQlqbnoJLkwwOTBjYmNfZGVjX3RhaWxfcGFydGlhbAorCWpuegkuTDA5MmNiY19kZWNfdGFpbF9w
YXJ0aWFsCiAJbW92dXBzCSV4bW0yLCglZWRpKQogCXB4b3IJJXhtbTAsJXhtbTAKLQlqbXAJLkww
NzljYmNfcmV0CisJam1wCS5MMDgxY2JjX3JldAogLmFsaWduCTE2Ci0uTDA5MGNiY19kZWNfdGFp
bF9wYXJ0aWFsOgorLkwwOTJjYmNfZGVjX3RhaWxfcGFydGlhbDoKIAltb3ZhcHMJJXhtbTIsKCVl
c3ApCiAJcHhvcgkleG1tMCwleG1tMAogCW1vdmwJJDE2LCVlY3gKQEAgLTIwNjAsMTQgKzIwODYs
MTQgQEAgYWVzX2h3X2NiY19lbmNyeXB0OgogCXN1YmwJJWVheCwlZWN4CiAubG9uZwkyNzY3NDUx
Nzg1CiAJbW92ZHFhCSV4bW0yLCglZXNwKQotLkwwNzljYmNfcmV0OgorLkwwODFjYmNfcmV0Ogog
CW1vdmwJMTYoJWVzcCksJWVzcAogCW1vdmwJMzYoJWVzcCksJWVicAogCXB4b3IJJXhtbTIsJXht
bTIKIAlweG9yCSV4bW0xLCV4bW0xCiAJbW92dXBzCSV4bW03LCglZWJwKQogCXB4b3IJJXhtbTcs
JXhtbTcKLS5MMDc0Y2JjX2Fib3J0OgorLkwwNzZjYmNfYWJvcnQ6CiAJcG9wbAklZWRpCiAJcG9w
bAklZXNpCiAJcG9wbAklZWJ4CkBAIC0yMDgxLDEzICsyMTA3LDEzIEBAIF9hZXNuaV9zZXRfZW5j
cnlwdF9rZXk6CiAJcHVzaGwJJWVicAogCXB1c2hsCSVlYngKIAl0ZXN0bAklZWF4LCVlYXgKLQlq
egkuTDA5MWJhZF9wb2ludGVyCisJanoJLkwwOTNiYWRfcG9pbnRlcgogCXRlc3RsCSVlZHgsJWVk
eAotCWp6CS5MMDkxYmFkX3BvaW50ZXIKLQljYWxsCS5MMDkycGljCi0uTDA5MnBpYzoKKwlqegku
TDA5M2JhZF9wb2ludGVyCisJY2FsbAkuTDA5NHBpYworLkwwOTRwaWM6CiAJcG9wbAklZWJ4Ci0J
bGVhbAkuTGtleV9jb25zdC0uTDA5MnBpYyglZWJ4KSwlZWJ4CisJbGVhbAkuTGtleV9jb25zdC0u
TDA5NHBpYyglZWJ4KSwlZWJ4CiAJbGVhbAlPUEVOU1NMX2lhMzJjYXBfUC0uTGtleV9jb25zdCgl
ZWJ4KSwlZWJwCiAJbW92dXBzCSglZWF4KSwleG1tMAogCXhvcnBzCSV4bW00LCV4bW00CkBAIC0y
MDk1LDQ1ICsyMTIxLDQ1IEBAIF9hZXNuaV9zZXRfZW5jcnlwdF9rZXk6CiAJbGVhbAkxNiglZWR4
KSwlZWR4CiAJYW5kbAkkMjY4NDM3NTA0LCVlYnAKIAljbXBsCSQyNTYsJWVjeAotCWplCS5MMDkz
MTRyb3VuZHMKKwlqZQkuTDA5NTE0cm91bmRzCiAJY21wbAkkMTkyLCVlY3gKLQlqZQkuTDA5NDEy
cm91bmRzCisJamUJLkwwOTYxMnJvdW5kcwogCWNtcGwJJDEyOCwlZWN4Ci0Jam5lCS5MMDk1YmFk
X2tleWJpdHMKKwlqbmUJLkwwOTdiYWRfa2V5Yml0cwogLmFsaWduCTE2Ci0uTDA5NjEwcm91bmRz
OgorLkwwOTgxMHJvdW5kczoKIAljbXBsCSQyNjg0MzU0NTYsJWVicAotCWplCS5MMDk3MTByb3Vu
ZHNfYWx0CisJamUJLkwwOTkxMHJvdW5kc19hbHQKIAltb3ZsCSQ5LCVlY3gKIAltb3Z1cHMJJXht
bTAsLTE2KCVlZHgpCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCwxCi0JY2FsbAkuTDA5OGtleV8x
MjhfY29sZAorCWNhbGwJLkwxMDBrZXlfMTI4X2NvbGQKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAw
LDIKLQljYWxsCS5MMDk5a2V5XzEyOAorCWNhbGwJLkwxMDFrZXlfMTI4CiAuYnl0ZQkxMDIsMTUs
NTgsMjIzLDIwMCw0Ci0JY2FsbAkuTDA5OWtleV8xMjgKKwljYWxsCS5MMTAxa2V5XzEyOAogLmJ5
dGUJMTAyLDE1LDU4LDIyMywyMDAsOAotCWNhbGwJLkwwOTlrZXlfMTI4CisJY2FsbAkuTDEwMWtl
eV8xMjgKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAwLDE2Ci0JY2FsbAkuTDA5OWtleV8xMjgKKwlj
YWxsCS5MMTAxa2V5XzEyOAogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDAsMzIKLQljYWxsCS5MMDk5
a2V5XzEyOAorCWNhbGwJLkwxMDFrZXlfMTI4CiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCw2NAot
CWNhbGwJLkwwOTlrZXlfMTI4CisJY2FsbAkuTDEwMWtleV8xMjgKIC5ieXRlCTEwMiwxNSw1OCwy
MjMsMjAwLDEyOAotCWNhbGwJLkwwOTlrZXlfMTI4CisJY2FsbAkuTDEwMWtleV8xMjgKIC5ieXRl
CTEwMiwxNSw1OCwyMjMsMjAwLDI3Ci0JY2FsbAkuTDA5OWtleV8xMjgKKwljYWxsCS5MMTAxa2V5
XzEyOAogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDAsNTQKLQljYWxsCS5MMDk5a2V5XzEyOAorCWNh
bGwJLkwxMDFrZXlfMTI4CiAJbW92dXBzCSV4bW0wLCglZWR4KQogCW1vdmwJJWVjeCw4MCglZWR4
KQotCWptcAkuTDEwMGdvb2Rfa2V5CisJam1wCS5MMTAyZ29vZF9rZXkKIC5hbGlnbgkxNgotLkww
OTlrZXlfMTI4OgorLkwxMDFrZXlfMTI4OgogCW1vdnVwcwkleG1tMCwoJWVkeCkKIAlsZWFsCTE2
KCVlZHgpLCVlZHgKLS5MMDk4a2V5XzEyOF9jb2xkOgorLkwxMDBrZXlfMTI4X2NvbGQ6CiAJc2h1
ZnBzCSQxNiwleG1tMCwleG1tNAogCXhvcnBzCSV4bW00LCV4bW0wCiAJc2h1ZnBzCSQxNDAsJXht
bTAsJXhtbTQKQEAgLTIxNDIsMTMgKzIxNjgsMTMgQEAgX2Flc25pX3NldF9lbmNyeXB0X2tleToK
IAl4b3JwcwkleG1tMSwleG1tMAogCXJldAogLmFsaWduCTE2Ci0uTDA5NzEwcm91bmRzX2FsdDoK
Ky5MMDk5MTByb3VuZHNfYWx0OgogCW1vdmRxYQkoJWVieCksJXhtbTUKIAltb3ZsCSQ4LCVlY3gK
IAltb3ZkcWEJMzIoJWVieCksJXhtbTQKIAltb3ZkcWEJJXhtbTAsJXhtbTIKIAltb3ZkcXUJJXht
bTAsLTE2KCVlZHgpCi0uTDEwMWxvb3Bfa2V5MTI4OgorLkwxMDNsb29wX2tleTEyODoKIC5ieXRl
CTEwMiwxNSw1NiwwLDE5NwogLmJ5dGUJMTAyLDE1LDU2LDIyMSwxOTYKIAlwc2xsZAkkMSwleG1t
NApAQCAtMjE2NCw3ICsyMTkwLDcgQEAgX2Flc25pX3NldF9lbmNyeXB0X2tleToKIAltb3ZkcXUJ
JXhtbTAsLTE2KCVlZHgpCiAJbW92ZHFhCSV4bW0wLCV4bW0yCiAJZGVjbAklZWN4Ci0Jam56CS5M
MTAxbG9vcF9rZXkxMjgKKwlqbnoJLkwxMDNsb29wX2tleTEyOAogCW1vdmRxYQk0OCglZWJ4KSwl
eG1tNAogLmJ5dGUJMTAyLDE1LDU2LDAsMTk3CiAuYnl0ZQkxMDIsMTUsNTYsMjIxLDE5NgpAQCAt
MjE5Miw0MSArMjIxOCw0MSBAQCBfYWVzbmlfc2V0X2VuY3J5cHRfa2V5OgogCW1vdmRxdQkleG1t
MCwxNiglZWR4KQogCW1vdmwJJDksJWVjeAogCW1vdmwJJWVjeCw5NiglZWR4KQotCWptcAkuTDEw
MGdvb2Rfa2V5CisJam1wCS5MMTAyZ29vZF9rZXkKIC5hbGlnbgkxNgotLkwwOTQxMnJvdW5kczoK
Ky5MMDk2MTJyb3VuZHM6CiAJbW92cQkxNiglZWF4KSwleG1tMgogCWNtcGwJJDI2ODQzNTQ1Niwl
ZWJwCi0JamUJLkwxMDIxMnJvdW5kc19hbHQKKwlqZQkuTDEwNDEycm91bmRzX2FsdAogCW1vdmwJ
JDExLCVlY3gKIAltb3Z1cHMJJXhtbTAsLTE2KCVlZHgpCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIw
MiwxCi0JY2FsbAkuTDEwM2tleV8xOTJhX2NvbGQKKwljYWxsCS5MMTA1a2V5XzE5MmFfY29sZAog
LmJ5dGUJMTAyLDE1LDU4LDIyMywyMDIsMgotCWNhbGwJLkwxMDRrZXlfMTkyYgorCWNhbGwJLkwx
MDZrZXlfMTkyYgogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDIsNAotCWNhbGwJLkwxMDVrZXlfMTky
YQorCWNhbGwJLkwxMDdrZXlfMTkyYQogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDIsOAotCWNhbGwJ
LkwxMDRrZXlfMTkyYgorCWNhbGwJLkwxMDZrZXlfMTkyYgogLmJ5dGUJMTAyLDE1LDU4LDIyMywy
MDIsMTYKLQljYWxsCS5MMTA1a2V5XzE5MmEKKwljYWxsCS5MMTA3a2V5XzE5MmEKIC5ieXRlCTEw
MiwxNSw1OCwyMjMsMjAyLDMyCi0JY2FsbAkuTDEwNGtleV8xOTJiCisJY2FsbAkuTDEwNmtleV8x
OTJiCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMiw2NAotCWNhbGwJLkwxMDVrZXlfMTkyYQorCWNh
bGwJLkwxMDdrZXlfMTkyYQogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDIsMTI4Ci0JY2FsbAkuTDEw
NGtleV8xOTJiCisJY2FsbAkuTDEwNmtleV8xOTJiCiAJbW92dXBzCSV4bW0wLCglZWR4KQogCW1v
dmwJJWVjeCw0OCglZWR4KQotCWptcAkuTDEwMGdvb2Rfa2V5CisJam1wCS5MMTAyZ29vZF9rZXkK
IC5hbGlnbgkxNgotLkwxMDVrZXlfMTkyYToKKy5MMTA3a2V5XzE5MmE6CiAJbW92dXBzCSV4bW0w
LCglZWR4KQogCWxlYWwJMTYoJWVkeCksJWVkeAogLmFsaWduCTE2Ci0uTDEwM2tleV8xOTJhX2Nv
bGQ6CisuTDEwNWtleV8xOTJhX2NvbGQ6CiAJbW92YXBzCSV4bW0yLCV4bW01Ci0uTDEwNmtleV8x
OTJiX3dhcm06CisuTDEwOGtleV8xOTJiX3dhcm06CiAJc2h1ZnBzCSQxNiwleG1tMCwleG1tNAog
CW1vdmRxYQkleG1tMiwleG1tMwogCXhvcnBzCSV4bW00LCV4bW0wCkBAIC0yMjQwLDIxICsyMjY2
LDIxIEBAIF9hZXNuaV9zZXRfZW5jcnlwdF9rZXk6CiAJcHhvcgkleG1tMywleG1tMgogCXJldAog
LmFsaWduCTE2Ci0uTDEwNGtleV8xOTJiOgorLkwxMDZrZXlfMTkyYjoKIAltb3ZhcHMJJXhtbTAs
JXhtbTMKIAlzaHVmcHMJJDY4LCV4bW0wLCV4bW01CiAJbW92dXBzCSV4bW01LCglZWR4KQogCXNo
dWZwcwkkNzgsJXhtbTIsJXhtbTMKIAltb3Z1cHMJJXhtbTMsMTYoJWVkeCkKIAlsZWFsCTMyKCVl
ZHgpLCVlZHgKLQlqbXAJLkwxMDZrZXlfMTkyYl93YXJtCisJam1wCS5MMTA4a2V5XzE5MmJfd2Fy
bQogLmFsaWduCTE2Ci0uTDEwMjEycm91bmRzX2FsdDoKKy5MMTA0MTJyb3VuZHNfYWx0OgogCW1v
dmRxYQkxNiglZWJ4KSwleG1tNQogCW1vdmRxYQkzMiglZWJ4KSwleG1tNAogCW1vdmwJJDgsJWVj
eAogCW1vdmRxdQkleG1tMCwtMTYoJWVkeCkKLS5MMTA3bG9vcF9rZXkxOTI6CisuTDEwOWxvb3Bf
a2V5MTkyOgogCW1vdnEJJXhtbTIsKCVlZHgpCiAJbW92ZHFhCSV4bW0yLCV4bW0xCiAuYnl0ZQkx
MDIsMTUsNTYsMCwyMTMKQEAgLTIyNzYsNTQgKzIzMDIsNTQgQEAgX2Flc25pX3NldF9lbmNyeXB0
X2tleToKIAlweG9yCSV4bW0zLCV4bW0yCiAJbW92ZHF1CSV4bW0wLC0xNiglZWR4KQogCWRlY2wJ
JWVjeAotCWpuegkuTDEwN2xvb3Bfa2V5MTkyCisJam56CS5MMTA5bG9vcF9rZXkxOTIKIAltb3Zs
CSQxMSwlZWN4CiAJbW92bAklZWN4LDMyKCVlZHgpCi0Jam1wCS5MMTAwZ29vZF9rZXkKKwlqbXAJ
LkwxMDJnb29kX2tleQogLmFsaWduCTE2Ci0uTDA5MzE0cm91bmRzOgorLkwwOTUxNHJvdW5kczoK
IAltb3Z1cHMJMTYoJWVheCksJXhtbTIKIAlsZWFsCTE2KCVlZHgpLCVlZHgKIAljbXBsCSQyNjg0
MzU0NTYsJWVicAotCWplCS5MMTA4MTRyb3VuZHNfYWx0CisJamUJLkwxMTAxNHJvdW5kc19hbHQK
IAltb3ZsCSQxMywlZWN4CiAJbW92dXBzCSV4bW0wLC0zMiglZWR4KQogCW1vdnVwcwkleG1tMiwt
MTYoJWVkeCkKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAyLDEKLQljYWxsCS5MMTA5a2V5XzI1NmFf
Y29sZAorCWNhbGwJLkwxMTFrZXlfMjU2YV9jb2xkCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCwx
Ci0JY2FsbAkuTDExMGtleV8yNTZiCisJY2FsbAkuTDExMmtleV8yNTZiCiAuYnl0ZQkxMDIsMTUs
NTgsMjIzLDIwMiwyCi0JY2FsbAkuTDExMWtleV8yNTZhCisJY2FsbAkuTDExM2tleV8yNTZhCiAu
Ynl0ZQkxMDIsMTUsNTgsMjIzLDIwMCwyCi0JY2FsbAkuTDExMGtleV8yNTZiCisJY2FsbAkuTDEx
MmtleV8yNTZiCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMiw0Ci0JY2FsbAkuTDExMWtleV8yNTZh
CisJY2FsbAkuTDExM2tleV8yNTZhCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCw0Ci0JY2FsbAku
TDExMGtleV8yNTZiCisJY2FsbAkuTDExMmtleV8yNTZiCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIw
Miw4Ci0JY2FsbAkuTDExMWtleV8yNTZhCisJY2FsbAkuTDExM2tleV8yNTZhCiAuYnl0ZQkxMDIs
MTUsNTgsMjIzLDIwMCw4Ci0JY2FsbAkuTDExMGtleV8yNTZiCisJY2FsbAkuTDExMmtleV8yNTZi
CiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMiwxNgotCWNhbGwJLkwxMTFrZXlfMjU2YQorCWNhbGwJ
LkwxMTNrZXlfMjU2YQogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDAsMTYKLQljYWxsCS5MMTEwa2V5
XzI1NmIKKwljYWxsCS5MMTEya2V5XzI1NmIKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAyLDMyCi0J
Y2FsbAkuTDExMWtleV8yNTZhCisJY2FsbAkuTDExM2tleV8yNTZhCiAuYnl0ZQkxMDIsMTUsNTgs
MjIzLDIwMCwzMgotCWNhbGwJLkwxMTBrZXlfMjU2YgorCWNhbGwJLkwxMTJrZXlfMjU2YgogLmJ5
dGUJMTAyLDE1LDU4LDIyMywyMDIsNjQKLQljYWxsCS5MMTExa2V5XzI1NmEKKwljYWxsCS5MMTEz
a2V5XzI1NmEKIAltb3Z1cHMJJXhtbTAsKCVlZHgpCiAJbW92bAklZWN4LDE2KCVlZHgpCiAJeG9y
bAklZWF4LCVlYXgKLQlqbXAJLkwxMDBnb29kX2tleQorCWptcAkuTDEwMmdvb2Rfa2V5CiAuYWxp
Z24JMTYKLS5MMTExa2V5XzI1NmE6CisuTDExM2tleV8yNTZhOgogCW1vdnVwcwkleG1tMiwoJWVk
eCkKIAlsZWFsCTE2KCVlZHgpLCVlZHgKLS5MMTA5a2V5XzI1NmFfY29sZDoKKy5MMTExa2V5XzI1
NmFfY29sZDoKIAlzaHVmcHMJJDE2LCV4bW0wLCV4bW00CiAJeG9ycHMJJXhtbTQsJXhtbTAKIAlz
aHVmcHMJJDE0MCwleG1tMCwleG1tNApAQCAtMjMzMiw3ICsyMzU4LDcgQEAgX2Flc25pX3NldF9l
bmNyeXB0X2tleToKIAl4b3JwcwkleG1tMSwleG1tMAogCXJldAogLmFsaWduCTE2Ci0uTDExMGtl
eV8yNTZiOgorLkwxMTJrZXlfMjU2YjoKIAltb3Z1cHMJJXhtbTAsKCVlZHgpCiAJbGVhbAkxNigl
ZWR4KSwlZWR4CiAJc2h1ZnBzCSQxNiwleG1tMiwleG1tNApAQCAtMjM0MywxNCArMjM2OSwxNCBA
QCBfYWVzbmlfc2V0X2VuY3J5cHRfa2V5OgogCXhvcnBzCSV4bW0xLCV4bW0yCiAJcmV0CiAuYWxp
Z24JMTYKLS5MMTA4MTRyb3VuZHNfYWx0OgorLkwxMTAxNHJvdW5kc19hbHQ6CiAJbW92ZHFhCSgl
ZWJ4KSwleG1tNQogCW1vdmRxYQkzMiglZWJ4KSwleG1tNAogCW1vdmwJJDcsJWVjeAogCW1vdmRx
dQkleG1tMCwtMzIoJWVkeCkKIAltb3ZkcWEJJXhtbTIsJXhtbTEKIAltb3ZkcXUJJXhtbTIsLTE2
KCVlZHgpCi0uTDExMmxvb3Bfa2V5MjU2OgorLkwxMTRsb29wX2tleTI1NjoKIC5ieXRlCTEwMiwx
NSw1NiwwLDIxMwogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTIKIAltb3ZkcWEJJXhtbTAsJXhtbTMK
QEAgLTIzNjQsNyArMjM5MCw3IEBAIF9hZXNuaV9zZXRfZW5jcnlwdF9rZXk6CiAJcHhvcgkleG1t
MiwleG1tMAogCW1vdmRxdQkleG1tMCwoJWVkeCkKIAlkZWNsCSVlY3gKLQlqegkuTDExM2RvbmVf
a2V5MjU2CisJanoJLkwxMTVkb25lX2tleTI1NgogCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0yCiAJ
cHhvcgkleG1tMywleG1tMwogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTEKQEAgLTIzNzksMTEgKzI0
MDUsMTEgQEAgX2Flc25pX3NldF9lbmNyeXB0X2tleToKIAltb3ZkcXUJJXhtbTIsMTYoJWVkeCkK
IAlsZWFsCTMyKCVlZHgpLCVlZHgKIAltb3ZkcWEJJXhtbTIsJXhtbTEKLQlqbXAJLkwxMTJsb29w
X2tleTI1NgotLkwxMTNkb25lX2tleTI1NjoKKwlqbXAJLkwxMTRsb29wX2tleTI1NgorLkwxMTVk
b25lX2tleTI1NjoKIAltb3ZsCSQxMywlZWN4CiAJbW92bAklZWN4LDE2KCVlZHgpCi0uTDEwMGdv
b2Rfa2V5OgorLkwxMDJnb29kX2tleToKIAlweG9yCSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwl
eG1tMQogCXB4b3IJJXhtbTIsJXhtbTIKQEAgLTIzOTUsMTMgKzI0MjEsMTMgQEAgX2Flc25pX3Nl
dF9lbmNyeXB0X2tleToKIAlwb3BsCSVlYnAKIAlyZXQKIC5hbGlnbgk0Ci0uTDA5MWJhZF9wb2lu
dGVyOgorLkwwOTNiYWRfcG9pbnRlcjoKIAltb3ZsCSQtMSwlZWF4CiAJcG9wbAklZWJ4CiAJcG9w
bAklZWJwCiAJcmV0CiAuYWxpZ24JNAotLkwwOTViYWRfa2V5Yml0czoKKy5MMDk3YmFkX2tleWJp
dHM6CiAJcHhvcgkleG1tMCwleG1tMAogCW1vdmwJJC0yLCVlYXgKIAlwb3BsCSVlYngKQEAgLTI0
MTQsNiArMjQ0MCwxOCBAQCBfYWVzbmlfc2V0X2VuY3J5cHRfa2V5OgogLmFsaWduCTE2CiBhZXNf
aHdfc2V0X2VuY3J5cHRfa2V5OgogLkxfYWVzX2h3X3NldF9lbmNyeXB0X2tleV9iZWdpbjoKKyNp
Zm5kZWYgTkRFQlVHCisJcHVzaGwJJWVieAorCXB1c2hsCSVlZHgKKwljYWxsCS5MMTE2cGljCisu
TDExNnBpYzoKKwlwb3BsCSVlYngKKwlsZWFsCUJPUklOR1NTTF9mdW5jdGlvbl9oaXQrMy0uTDEx
NnBpYyglZWJ4KSwlZWJ4CisJbW92bAkkMSwlZWR4CisJbW92YgklZGwsKCVlYngpCisJcG9wbAkl
ZWR4CisJcG9wbAklZWJ4CisjZW5kaWYKIAltb3ZsCTQoJWVzcCksJWVheAogCW1vdmwJOCglZXNw
KSwlZWN4CiAJbW92bAkxMiglZXNwKSwlZWR4CkBAIC0yNDMzLDcgKzI0NzEsNyBAQCBhZXNfaHdf
c2V0X2RlY3J5cHRfa2V5OgogCW1vdmwJMTIoJWVzcCksJWVkeAogCXNobGwJJDQsJWVjeAogCXRl
c3RsCSVlYXgsJWVheAotCWpuegkuTDExNGRlY19rZXlfcmV0CisJam56CS5MMTE3ZGVjX2tleV9y
ZXQKIAlsZWFsCTE2KCVlZHgsJWVjeCwxKSwlZWF4CiAJbW92dXBzCSglZWR4KSwleG1tMAogCW1v
dnVwcwkoJWVheCksJXhtbTEKQEAgLTI0NDEsNyArMjQ3OSw3IEBAIGFlc19od19zZXRfZGVjcnlw
dF9rZXk6CiAJbW92dXBzCSV4bW0xLCglZWR4KQogCWxlYWwJMTYoJWVkeCksJWVkeAogCWxlYWwJ
LTE2KCVlYXgpLCVlYXgKLS5MMTE1ZGVjX2tleV9pbnZlcnNlOgorLkwxMThkZWNfa2V5X2ludmVy
c2U6CiAJbW92dXBzCSglZWR4KSwleG1tMAogCW1vdnVwcwkoJWVheCksJXhtbTEKIC5ieXRlCTEw
MiwxNSw1NiwyMTksMTkyCkBAIC0yNDUxLDE0ICsyNDg5LDE0IEBAIGFlc19od19zZXRfZGVjcnlw
dF9rZXk6CiAJbW92dXBzCSV4bW0wLDE2KCVlYXgpCiAJbW92dXBzCSV4bW0xLC0xNiglZWR4KQog
CWNtcGwJJWVkeCwlZWF4Ci0JamEJLkwxMTVkZWNfa2V5X2ludmVyc2UKKwlqYQkuTDExOGRlY19r
ZXlfaW52ZXJzZQogCW1vdnVwcwkoJWVkeCksJXhtbTAKIC5ieXRlCTEwMiwxNSw1NiwyMTksMTky
CiAJbW92dXBzCSV4bW0wLCglZWR4KQogCXB4b3IJJXhtbTAsJXhtbTAKIAlweG9yCSV4bW0xLCV4
bW0xCiAJeG9ybAklZWF4LCVlYXgKLS5MMTE0ZGVjX2tleV9yZXQ6CisuTDExN2RlY19rZXlfcmV0
OgogCXJldAogLnNpemUJYWVzX2h3X3NldF9kZWNyeXB0X2tleSwuLS5MX2Flc19od19zZXRfZGVj
cnlwdF9rZXlfYmVnaW4KIC5hbGlnbgk2NApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9m
aXBzbW9kdWxlL2doYXNoLXNzc2UzLXg4Ni5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9maXBzbW9kdWxl
L2doYXNoLXNzc2UzLXg4Ni5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYTBlYTUyMTFmN2JkNTY5ZDVjOTFmMzc3
OGI0YjVmNjhiMmUxOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL2ZpcHNt
b2R1bGUvZ2hhc2gtc3NzZTMteDg2LlMKQEAgLTAsMCArMSwyOTMgQEAKKyMgVGhpcyBmaWxlIGlz
IGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3Jp
bmdTU0wKKyMgc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpZiBkZWZpbmVk
KF9faTM4Nl9fKQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNsdWRlIDxib3Jp
bmdzc2xfcHJlZml4X3N5bWJvbHNfYXNtLmg+CisjZW5kaWYKKy50ZXh0CisuZ2xvYmwJZ2NtX2dt
dWx0X3Nzc2UzCisuaGlkZGVuCWdjbV9nbXVsdF9zc3NlMworLnR5cGUJZ2NtX2dtdWx0X3Nzc2Uz
LEBmdW5jdGlvbgorLmFsaWduCTE2CitnY21fZ211bHRfc3NzZTM6CisuTF9nY21fZ211bHRfc3Nz
ZTNfYmVnaW46CisJcHVzaGwJJWVicAorCXB1c2hsCSVlYngKKwlwdXNobAklZXNpCisJcHVzaGwJ
JWVkaQorCW1vdmwJMjAoJWVzcCksJWVkaQorCW1vdmwJMjQoJWVzcCksJWVzaQorCW1vdmRxdQko
JWVkaSksJXhtbTAKKwljYWxsCS5MMDAwcGljX3BvaW50CisuTDAwMHBpY19wb2ludDoKKwlwb3Bs
CSVlYXgKKwltb3ZkcWEJLkxyZXZlcnNlX2J5dGVzLS5MMDAwcGljX3BvaW50KCVlYXgpLCV4bW03
CisJbW92ZHFhCS5MbG93NF9tYXNrLS5MMDAwcGljX3BvaW50KCVlYXgpLCV4bW0yCisuYnl0ZQkx
MDIsMTUsNTYsMCwxOTkKKwltb3ZkcWEJJXhtbTIsJXhtbTEKKwlwYW5kbgkleG1tMCwleG1tMQor
CXBzcmxkCSQ0LCV4bW0xCisJcGFuZAkleG1tMiwleG1tMAorCXB4b3IJJXhtbTIsJXhtbTIKKwlw
eG9yCSV4bW0zLCV4bW0zCisJbW92bAkkNSwlZWF4CisuTDAwMWxvb3Bfcm93XzE6CisJbW92ZHFh
CSglZXNpKSwleG1tNAorCWxlYWwJMTYoJWVzaSksJWVzaQorCW1vdmRxYQkleG1tMiwleG1tNgor
LmJ5dGUJMTAyLDE1LDU4LDE1LDI0MywxCisJbW92ZHFhCSV4bW02LCV4bW0zCisJcHNybGRxCSQx
LCV4bW0yCisJbW92ZHFhCSV4bW00LCV4bW01CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRl
CTEwMiwxNSw1NiwwLDIzMworCXB4b3IJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTQsJXhtbTUK
Kwlwc2xscQkkNjAsJXhtbTUKKwltb3ZkcWEJJXhtbTUsJXhtbTYKKwlwc2xsZHEJJDgsJXhtbTYK
KwlweG9yCSV4bW02LCV4bW0zCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1tNSwleG1tMgor
CXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCXN1YmwJJDEsJWVheAorCWpuegku
TDAwMWxvb3Bfcm93XzEKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9y
CSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJ
JDUsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1tMworCW1vdmwJJDUs
JWVheAorLkwwMDJsb29wX3Jvd18yOgorCW1vdmRxYQkoJWVzaSksJXhtbTQKKwlsZWFsCTE2KCVl
c2kpLCVlc2kKKwltb3ZkcWEJJXhtbTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1OCwxNSwyNDMsMQor
CW1vdmRxYQkleG1tNiwleG1tMworCXBzcmxkcQkkMSwleG1tMgorCW1vdmRxYQkleG1tNCwleG1t
NQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIsMTUsNTYsMCwyMzMKKwlweG9yCSV4
bW01LCV4bW0yCisJbW92ZHFhCSV4bW00LCV4bW01CisJcHNsbHEJJDYwLCV4bW01CisJbW92ZHFh
CSV4bW01LCV4bW02CisJcHNsbGRxCSQ4LCV4bW02CisJcHhvcgkleG1tNiwleG1tMworCXBzcmxk
cQkkOCwleG1tNQorCXB4b3IJJXhtbTUsJXhtbTIKKwlwc3JscQkkNCwleG1tNAorCXB4b3IJJXht
bTQsJXhtbTIKKwlzdWJsCSQxLCVlYXgKKwlqbnoJLkwwMDJsb29wX3Jvd18yCisJcHhvcgkleG1t
MywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4
bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1t
MgorCXB4b3IJJXhtbTMsJXhtbTMKKwltb3ZsCSQ2LCVlYXgKKy5MMDAzbG9vcF9yb3dfMzoKKwlt
b3ZkcWEJKCVlc2kpLCV4bW00CisJbGVhbAkxNiglZXNpKSwlZXNpCisJbW92ZHFhCSV4bW0yLCV4
bW02CisuYnl0ZQkxMDIsMTUsNTgsMTUsMjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3Js
ZHEJJDEsJXhtbTIKKwltb3ZkcWEJJXhtbTQsJXhtbTUKKy5ieXRlCTEwMiwxNSw1NiwwLDIyNAor
LmJ5dGUJMTAyLDE1LDU2LDAsMjMzCisJcHhvcgkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tNCwl
eG1tNQorCXBzbGxxCSQ2MCwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwl
eG1tNgorCXB4b3IJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01LCV4
bW0yCisJcHNybHEJJDQsJXhtbTQKKwlweG9yCSV4bW00LCV4bW0yCisJc3VibAkkMSwlZWF4CisJ
am56CS5MMDAzbG9vcF9yb3dfMworCXB4b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkMSwleG1tMwor
CXB4b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkMSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIKKwlw
c3JscQkkNSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0zLCV4bW0zCisuYnl0
ZQkxMDIsMTUsNTYsMCwyMTUKKwltb3ZkcXUJJXhtbTIsKCVlZGkpCisJcHhvcgkleG1tMCwleG1t
MAorCXB4b3IJJXhtbTEsJXhtbTEKKwlweG9yCSV4bW0yLCV4bW0yCisJcHhvcgkleG1tMywleG1t
MworCXB4b3IJJXhtbTQsJXhtbTQKKwlweG9yCSV4bW01LCV4bW01CisJcHhvcgkleG1tNiwleG1t
NgorCXBvcGwJJWVkaQorCXBvcGwJJWVzaQorCXBvcGwJJWVieAorCXBvcGwJJWVicAorCXJldAor
LnNpemUJZ2NtX2dtdWx0X3Nzc2UzLC4tLkxfZ2NtX2dtdWx0X3Nzc2UzX2JlZ2luCisuZ2xvYmwJ
Z2NtX2doYXNoX3Nzc2UzCisuaGlkZGVuCWdjbV9naGFzaF9zc3NlMworLnR5cGUJZ2NtX2doYXNo
X3Nzc2UzLEBmdW5jdGlvbgorLmFsaWduCTE2CitnY21fZ2hhc2hfc3NzZTM6CisuTF9nY21fZ2hh
c2hfc3NzZTNfYmVnaW46CisJcHVzaGwJJWVicAorCXB1c2hsCSVlYngKKwlwdXNobAklZXNpCisJ
cHVzaGwJJWVkaQorCW1vdmwJMjAoJWVzcCksJWVkaQorCW1vdmwJMjQoJWVzcCksJWVzaQorCW1v
dmwJMjgoJWVzcCksJWVkeAorCW1vdmwJMzIoJWVzcCksJWVjeAorCW1vdmRxdQkoJWVkaSksJXht
bTAKKwljYWxsCS5MMDA0cGljX3BvaW50CisuTDAwNHBpY19wb2ludDoKKwlwb3BsCSVlYngKKwlt
b3ZkcWEJLkxyZXZlcnNlX2J5dGVzLS5MMDA0cGljX3BvaW50KCVlYngpLCV4bW03CisJYW5kbAkk
LTE2LCVlY3gKKy5ieXRlCTEwMiwxNSw1NiwwLDE5OQorCXB4b3IJJXhtbTMsJXhtbTMKKy5MMDA1
bG9vcF9naGFzaDoKKwltb3ZkcWEJLkxsb3c0X21hc2stLkwwMDRwaWNfcG9pbnQoJWVieCksJXht
bTIKKwltb3ZkcXUJKCVlZHgpLCV4bW0xCisuYnl0ZQkxMDIsMTUsNTYsMCwyMDcKKwlweG9yCSV4
bW0xLCV4bW0wCisJbW92ZHFhCSV4bW0yLCV4bW0xCisJcGFuZG4JJXhtbTAsJXhtbTEKKwlwc3Js
ZAkkNCwleG1tMQorCXBhbmQJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0yCisJbW92bAkk
NSwlZWF4CisuTDAwNmxvb3Bfcm93XzQ6CisJbW92ZHFhCSglZXNpKSwleG1tNAorCWxlYWwJMTYo
JWVzaSksJWVzaQorCW1vdmRxYQkleG1tMiwleG1tNgorLmJ5dGUJMTAyLDE1LDU4LDE1LDI0Mywx
CisJbW92ZHFhCSV4bW02LCV4bW0zCisJcHNybGRxCSQxLCV4bW0yCisJbW92ZHFhCSV4bW00LCV4
bW01CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRlCTEwMiwxNSw1NiwwLDIzMworCXB4b3IJ
JXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTQsJXhtbTUKKwlwc2xscQkkNjAsJXhtbTUKKwltb3Zk
cWEJJXhtbTUsJXhtbTYKKwlwc2xsZHEJJDgsJXhtbTYKKwlweG9yCSV4bW02LCV4bW0zCisJcHNy
bGRxCSQ4LCV4bW01CisJcHhvcgkleG1tNSwleG1tMgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkl
eG1tNCwleG1tMgorCXN1YmwJJDEsJWVheAorCWpuegkuTDAwNmxvb3Bfcm93XzQKKwlweG9yCSV4
bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEs
JXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDUsJXhtbTMKKwlweG9yCSV4bW0zLCV4
bW0yCisJcHhvcgkleG1tMywleG1tMworCW1vdmwJJDUsJWVheAorLkwwMDdsb29wX3Jvd181Ogor
CW1vdmRxYQkoJWVzaSksJXhtbTQKKwlsZWFsCTE2KCVlc2kpLCVlc2kKKwltb3ZkcWEJJXhtbTIs
JXhtbTYKKy5ieXRlCTEwMiwxNSw1OCwxNSwyNDMsMQorCW1vdmRxYQkleG1tNiwleG1tMworCXBz
cmxkcQkkMSwleG1tMgorCW1vdmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0
CisuYnl0ZQkxMDIsMTUsNTYsMCwyMzMKKwlweG9yCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW00
LCV4bW01CisJcHNsbHEJJDYwLCV4bW01CisJbW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4
LCV4bW02CisJcHhvcgkleG1tNiwleG1tMworCXBzcmxkcQkkOCwleG1tNQorCXB4b3IJJXhtbTUs
JXhtbTIKKwlwc3JscQkkNCwleG1tNAorCXB4b3IJJXhtbTQsJXhtbTIKKwlzdWJsCSQxLCVlYXgK
KwlqbnoJLkwwMDdsb29wX3Jvd181CisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0z
CisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgor
CXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlt
b3ZsCSQ2LCVlYXgKKy5MMDA4bG9vcF9yb3dfNjoKKwltb3ZkcWEJKCVlc2kpLCV4bW00CisJbGVh
bAkxNiglZXNpKSwlZXNpCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUsNTgsMTUs
MjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKwltb3ZkcWEJJXht
bTQsJXhtbTUKKy5ieXRlCTEwMiwxNSw1NiwwLDIyNAorLmJ5dGUJMTAyLDE1LDU2LDAsMjMzCisJ
cHhvcgkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tNCwleG1tNQorCXBzbGxxCSQ2MCwleG1tNQor
CW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwleG1tNgorCXB4b3IJJXhtbTYsJXhtbTMK
Kwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0yCisJcHNybHEJJDQsJXhtbTQKKwlw
eG9yCSV4bW00LCV4bW0yCisJc3VibAkkMSwlZWF4CisJam56CS5MMDA4bG9vcF9yb3dfNgorCXB4
b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkMSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIKKwlwc3Js
cQkkMSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkNSwleG1tMworCXB4b3IJJXht
bTMsJXhtbTIKKwlweG9yCSV4bW0zLCV4bW0zCisJbW92ZHFhCSV4bW0yLCV4bW0wCisJbGVhbAkt
MjU2KCVlc2kpLCVlc2kKKwlsZWFsCTE2KCVlZHgpLCVlZHgKKwlzdWJsCSQxNiwlZWN4CisJam56
CS5MMDA1bG9vcF9naGFzaAorLmJ5dGUJMTAyLDE1LDU2LDAsMTk5CisJbW92ZHF1CSV4bW0wLCgl
ZWRpKQorCXB4b3IJJXhtbTAsJXhtbTAKKwlweG9yCSV4bW0xLCV4bW0xCisJcHhvcgkleG1tMiwl
eG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlweG9yCSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwl
eG1tNQorCXB4b3IJJXhtbTYsJXhtbTYKKwlwb3BsCSVlZGkKKwlwb3BsCSVlc2kKKwlwb3BsCSVl
YngKKwlwb3BsCSVlYnAKKwlyZXQKKy5zaXplCWdjbV9naGFzaF9zc3NlMywuLS5MX2djbV9naGFz
aF9zc3NlM19iZWdpbgorLmFsaWduCTE2CisuTHJldmVyc2VfYnl0ZXM6CisuYnl0ZQkxNSwxNCwx
MywxMiwxMSwxMCw5LDgsNyw2LDUsNCwzLDIsMSwwCisuYWxpZ24JMTYKKy5MbG93NF9tYXNrOgor
LmxvbmcJMjUyNjQ1MTM1LDI1MjY0NTEzNSwyNTI2NDUxMzUsMjUyNjQ1MTM1CisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL2xpbnV4LXg4Ni9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy14ODYuUyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4
LXg4Ni9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy14ODYuUwppbmRleCBiMmM2M2U1NzM1MDVhZWM4
MmQ1NTE2ZmYxOWU4MzMzMGMzNzA1YjdlLi40ZWE5MmVkMDhiMmVlN2UxOGQ3OGEwY2E1NjdmMGJl
MDY4MzMyNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMt
eDg2LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Ni5TCkBAIC02
LDYgKzYsOCBAQAogI2luY2x1ZGUgPGJvcmluZ3NzbF9wcmVmaXhfc3ltYm9sc19hc20uaD4KICNl
bmRpZgogLnRleHQKKyNpZm5kZWYgTkRFQlVHCisjZW5kaWYKIC5hbGlnbgk2NAogLkxfdnBhZXNf
Y29uc3RzOgogLmxvbmcJMjE4NjI4NDgwLDIzNTIxMDI1NSwxNjg0OTYxMzAsNjc1NjgzOTMKQEAg
LTQ4Myw2ICs0ODUsMTggQEAgdnBhZXNfc2V0X2VuY3J5cHRfa2V5OgogCXB1c2hsCSVlYngKIAlw
dXNobAklZXNpCiAJcHVzaGwJJWVkaQorI2lmbmRlZiBOREVCVUcKKwlwdXNobAklZWJ4CisJcHVz
aGwJJWVkeAorCWNhbGwJLkwwMTZwaWMKKy5MMDE2cGljOgorCXBvcGwJJWVieAorCWxlYWwJQk9S
SU5HU1NMX2Z1bmN0aW9uX2hpdCs1LS5MMDE2cGljKCVlYngpLCVlYngKKwltb3ZsCSQxLCVlZHgK
Kwltb3ZiCSVkbCwoJWVieCkKKwlwb3BsCSVlZHgKKwlwb3BsCSVlYngKKyNlbmRpZgogCW1vdmwJ
MjAoJWVzcCksJWVzaQogCWxlYWwJLTU2KCVlc3ApLCVlYngKIAltb3ZsCTI0KCVlc3ApLCVlYXgK
QEAgLTQ5Niw5ICs1MTAsOSBAQCB2cGFlc19zZXRfZW5jcnlwdF9rZXk6CiAJbW92bAklZWJ4LDI0
MCglZWR4KQogCW1vdmwJJDQ4LCVlY3gKIAltb3ZsCSQwLCVlZGkKLQlsZWFsCS5MX3ZwYWVzX2Nv
bnN0cysweDMwLS5MMDE2cGljX3BvaW50LCVlYnAKKwlsZWFsCS5MX3ZwYWVzX2NvbnN0cysweDMw
LS5MMDE3cGljX3BvaW50LCVlYnAKIAljYWxsCV92cGFlc19zY2hlZHVsZV9jb3JlCi0uTDAxNnBp
Y19wb2ludDoKKy5MMDE3cGljX3BvaW50OgogCW1vdmwJNDgoJWVzcCksJWVzcAogCXhvcmwJJWVh
eCwlZWF4CiAJcG9wbAklZWRpCkBAIC01MzUsOSArNTQ5LDkgQEAgdnBhZXNfc2V0X2RlY3J5cHRf
a2V5OgogCXNocmwJJDEsJWVjeAogCWFuZGwJJDMyLCVlY3gKIAl4b3JsCSQzMiwlZWN4Ci0JbGVh
bAkuTF92cGFlc19jb25zdHMrMHgzMC0uTDAxN3BpY19wb2ludCwlZWJwCisJbGVhbAkuTF92cGFl
c19jb25zdHMrMHgzMC0uTDAxOHBpY19wb2ludCwlZWJwCiAJY2FsbAlfdnBhZXNfc2NoZWR1bGVf
Y29yZQotLkwwMTdwaWNfcG9pbnQ6CisuTDAxOHBpY19wb2ludDoKIAltb3ZsCTQ4KCVlc3ApLCVl
c3AKIAl4b3JsCSVlYXgsJWVheAogCXBvcGwJJWVkaQpAQCAtNTU2LDkgKzU3MCwyMSBAQCB2cGFl
c19lbmNyeXB0OgogCXB1c2hsCSVlYngKIAlwdXNobAklZXNpCiAJcHVzaGwJJWVkaQotCWxlYWwJ
LkxfdnBhZXNfY29uc3RzKzB4MzAtLkwwMThwaWNfcG9pbnQsJWVicAorI2lmbmRlZiBOREVCVUcK
KwlwdXNobAklZWJ4CisJcHVzaGwJJWVkeAorCWNhbGwJLkwwMTlwaWMKKy5MMDE5cGljOgorCXBv
cGwJJWVieAorCWxlYWwJQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCs0LS5MMDE5cGljKCVlYngpLCVl
YngKKwltb3ZsCSQxLCVlZHgKKwltb3ZiCSVkbCwoJWVieCkKKwlwb3BsCSVlZHgKKwlwb3BsCSVl
YngKKyNlbmRpZgorCWxlYWwJLkxfdnBhZXNfY29uc3RzKzB4MzAtLkwwMjBwaWNfcG9pbnQsJWVi
cAogCWNhbGwJX3ZwYWVzX3ByZWhlYXQKLS5MMDE4cGljX3BvaW50OgorLkwwMjBwaWNfcG9pbnQ6
CiAJbW92bAkyMCglZXNwKSwlZXNpCiAJbGVhbAktNTYoJWVzcCksJWVieAogCW1vdmwJMjQoJWVz
cCksJWVkaQpAQCAtNTg2LDkgKzYxMiw5IEBAIHZwYWVzX2RlY3J5cHQ6CiAJcHVzaGwJJWVieAog
CXB1c2hsCSVlc2kKIAlwdXNobAklZWRpCi0JbGVhbAkuTF92cGFlc19jb25zdHMrMHgzMC0uTDAx
OXBpY19wb2ludCwlZWJwCisJbGVhbAkuTF92cGFlc19jb25zdHMrMHgzMC0uTDAyMXBpY19wb2lu
dCwlZWJwCiAJY2FsbAlfdnBhZXNfcHJlaGVhdAotLkwwMTlwaWNfcG9pbnQ6CisuTDAyMXBpY19w
b2ludDoKIAltb3ZsCTIwKCVlc3ApLCVlc2kKIAlsZWFsCS01NiglZXNwKSwlZWJ4CiAJbW92bAky
NCglZXNwKSwlZWRpCkBAIC02MjEsNyArNjQ3LDcgQEAgdnBhZXNfY2JjX2VuY3J5cHQ6CiAJbW92
bAkyOCglZXNwKSwlZWF4CiAJbW92bAkzMiglZXNwKSwlZWR4CiAJc3VibAkkMTYsJWVheAotCWpj
CS5MMDIwY2JjX2Fib3J0CisJamMJLkwwMjJjYmNfYWJvcnQKIAlsZWFsCS01NiglZXNwKSwlZWJ4
CiAJbW92bAkzNiglZXNwKSwlZWJwCiAJYW5kbAkkLTE2LCVlYngKQEAgLTYzNCwxNCArNjYwLDE0
IEBAIHZwYWVzX2NiY19lbmNyeXB0OgogCW1vdmwJJWVkeCw0KCVlc3ApCiAJbW92bAklZWJwLDgo
JWVzcCkKIAltb3ZsCSVlYXgsJWVkaQotCWxlYWwJLkxfdnBhZXNfY29uc3RzKzB4MzAtLkwwMjFw
aWNfcG9pbnQsJWVicAorCWxlYWwJLkxfdnBhZXNfY29uc3RzKzB4MzAtLkwwMjNwaWNfcG9pbnQs
JWVicAogCWNhbGwJX3ZwYWVzX3ByZWhlYXQKLS5MMDIxcGljX3BvaW50OgorLkwwMjNwaWNfcG9p
bnQ6CiAJY21wbAkkMCwlZWN4Ci0JamUJLkwwMjJjYmNfZGVjX2xvb3AKLQlqbXAJLkwwMjNjYmNf
ZW5jX2xvb3AKKwlqZQkuTDAyNGNiY19kZWNfbG9vcAorCWptcAkuTDAyNWNiY19lbmNfbG9vcAog
LmFsaWduCTE2Ci0uTDAyM2NiY19lbmNfbG9vcDoKKy5MMDI1Y2JjX2VuY19sb29wOgogCW1vdmRx
dQkoJWVzaSksJXhtbTAKIAlweG9yCSV4bW0xLCV4bW0wCiAJY2FsbAlfdnBhZXNfZW5jcnlwdF9j
b3JlCkBAIC02NTEsMTAgKzY3NywxMCBAQCB2cGFlc19jYmNfZW5jcnlwdDoKIAltb3ZkcXUJJXht
bTAsKCVlYngsJWVzaSwxKQogCWxlYWwJMTYoJWVzaSksJWVzaQogCXN1YmwJJDE2LCVlZGkKLQlq
bmMJLkwwMjNjYmNfZW5jX2xvb3AKLQlqbXAJLkwwMjRjYmNfZG9uZQorCWpuYwkuTDAyNWNiY19l
bmNfbG9vcAorCWptcAkuTDAyNmNiY19kb25lCiAuYWxpZ24JMTYKLS5MMDIyY2JjX2RlY19sb29w
OgorLkwwMjRjYmNfZGVjX2xvb3A6CiAJbW92ZHF1CSglZXNpKSwleG1tMAogCW1vdmRxYQkleG1t
MSwxNiglZXNwKQogCW1vdmRxYQkleG1tMCwzMiglZXNwKQpAQCAtNjY2LDEyICs2OTIsMTIgQEAg
dnBhZXNfY2JjX2VuY3J5cHQ6CiAJbW92ZHF1CSV4bW0wLCglZWJ4LCVlc2ksMSkKIAlsZWFsCTE2
KCVlc2kpLCVlc2kKIAlzdWJsCSQxNiwlZWRpCi0Jam5jCS5MMDIyY2JjX2RlY19sb29wCi0uTDAy
NGNiY19kb25lOgorCWpuYwkuTDAyNGNiY19kZWNfbG9vcAorLkwwMjZjYmNfZG9uZToKIAltb3Zs
CTgoJWVzcCksJWVieAogCW1vdmwJNDgoJWVzcCksJWVzcAogCW1vdmRxdQkleG1tMSwoJWVieCkK
LS5MMDIwY2JjX2Fib3J0OgorLkwwMjJjYmNfYWJvcnQ6CiAJcG9wbAklZWRpCiAJcG9wbAklZXNp
CiAJcG9wbAklZWJ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL3Rlc3QvdHJhbXBvbGlu
ZS14ODYuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL2xpbnV4LXg4Ni9jcnlwdG8vdGVzdC90cmFtcG9saW5lLXg4Ni5TCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIyMjIzNDdhYWVlNDNjOTA3Njk1ZWJlNTBmZTY3OTUyODE2NGRiOTQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9saW51eC14ODYvY3J5cHRvL3Rlc3QvdHJhbXBvbGluZS14ODYuUwpAQCAtMCwwICsx
LDIwNSBAQAorIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gYSBzaW1pbGFybHktbmFtZWQg
UGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NTTAorIyBzb3VyY2UgdHJlZS4gRG8gbm90IGVkaXQg
YnkgaGFuZC4KKworI2lmIGRlZmluZWQoX19pMzg2X18pCisjaWYgZGVmaW5lZChCT1JJTkdTU0xf
UFJFRklYKQorI2luY2x1ZGUgPGJvcmluZ3NzbF9wcmVmaXhfc3ltYm9sc19hc20uaD4KKyNlbmRp
ZgorLnRleHQKKy5nbG9ibAlhYmlfdGVzdF90cmFtcG9saW5lCisuaGlkZGVuCWFiaV90ZXN0X3Ry
YW1wb2xpbmUKKy50eXBlCWFiaV90ZXN0X3RyYW1wb2xpbmUsQGZ1bmN0aW9uCisuYWxpZ24JMTYK
K2FiaV90ZXN0X3RyYW1wb2xpbmU6CisuTF9hYmlfdGVzdF90cmFtcG9saW5lX2JlZ2luOgorCXB1
c2hsCSVlYnAKKwlwdXNobAklZWJ4CisJcHVzaGwJJWVzaQorCXB1c2hsCSVlZGkKKwltb3ZsCTI0
KCVlc3ApLCVlY3gKKwltb3ZsCSglZWN4KSwlZXNpCisJbW92bAk0KCVlY3gpLCVlZGkKKwltb3Zs
CTgoJWVjeCksJWVieAorCW1vdmwJMTIoJWVjeCksJWVicAorCXN1YmwJJDQ0LCVlc3AKKwltb3Zs
CTcyKCVlc3ApLCVlYXgKKwl4b3JsCSVlY3gsJWVjeAorLkwwMDBsb29wOgorCWNtcGwJNzYoJWVz
cCksJWVjeAorCWphZQkuTDAwMWxvb3BfZG9uZQorCW1vdmwJKCVlYXgsJWVjeCw0KSwlZWR4CisJ
bW92bAklZWR4LCglZXNwLCVlY3gsNCkKKwlhZGRsCSQxLCVlY3gKKwlqbXAJLkwwMDBsb29wCisu
TDAwMWxvb3BfZG9uZToKKwljYWxsCSo2NCglZXNwKQorCWFkZGwJJDQ0LCVlc3AKKwltb3ZsCTI0
KCVlc3ApLCVlY3gKKwltb3ZsCSVlc2ksKCVlY3gpCisJbW92bAklZWRpLDQoJWVjeCkKKwltb3Zs
CSVlYngsOCglZWN4KQorCW1vdmwJJWVicCwxMiglZWN4KQorCXBvcGwJJWVkaQorCXBvcGwJJWVz
aQorCXBvcGwJJWVieAorCXBvcGwJJWVicAorCXJldAorLnNpemUJYWJpX3Rlc3RfdHJhbXBvbGlu
ZSwuLS5MX2FiaV90ZXN0X3RyYW1wb2xpbmVfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9nZXRfYW5k
X2NsZWFyX2RpcmVjdGlvbl9mbGFnCisuaGlkZGVuCWFiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGly
ZWN0aW9uX2ZsYWcKKy50eXBlCWFiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2ZsYWcs
QGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2Zs
YWc6CisuTF9hYmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVjdGlvbl9mbGFnX2JlZ2luOgorCXB1
c2hmbAorCXBvcGwJJWVheAorCWFuZGwJJDEwMjQsJWVheAorCXNocmwJJDEwLCVlYXgKKwljbGQK
KwlyZXQKKy5zaXplCWFiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2ZsYWcsLi0uTF9h
YmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVjdGlvbl9mbGFnX2JlZ2luCisuZ2xvYmwJYWJpX3Rl
c3Rfc2V0X2RpcmVjdGlvbl9mbGFnCisuaGlkZGVuCWFiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxh
ZworLnR5cGUJYWJpX3Rlc3Rfc2V0X2RpcmVjdGlvbl9mbGFnLEBmdW5jdGlvbgorLmFsaWduCTE2
CithYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWc6CisuTF9hYmlfdGVzdF9zZXRfZGlyZWN0aW9u
X2ZsYWdfYmVnaW46CisJc3RkCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2Zs
YWcsLi0uTF9hYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWdfYmVnaW4KKy5nbG9ibAlhYmlfdGVz
dF9jbG9iYmVyX2VheAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2VheAorLnR5cGUJYWJpX3Rl
c3RfY2xvYmJlcl9lYXgsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfZWF4
OgorLkxfYWJpX3Rlc3RfY2xvYmJlcl9lYXhfYmVnaW46CisJeG9ybAklZWF4LCVlYXgKKwlyZXQK
Ky5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZWF4LC4tLkxfYWJpX3Rlc3RfY2xvYmJlcl9lYXhfYmVn
aW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX2VieAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVy
X2VieAorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9lYngsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2Fi
aV90ZXN0X2Nsb2JiZXJfZWJ4OgorLkxfYWJpX3Rlc3RfY2xvYmJlcl9lYnhfYmVnaW46CisJeG9y
bAklZWJ4LCVlYngKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZWJ4LC4tLkxfYWJpX3Rl
c3RfY2xvYmJlcl9lYnhfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX2VjeAorLmhpZGRl
bglhYmlfdGVzdF9jbG9iYmVyX2VjeAorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9lY3gsQGZ1bmN0
aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfZWN4OgorLkxfYWJpX3Rlc3RfY2xvYmJl
cl9lY3hfYmVnaW46CisJeG9ybAklZWN4LCVlY3gKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2Ji
ZXJfZWN4LC4tLkxfYWJpX3Rlc3RfY2xvYmJlcl9lY3hfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9j
bG9iYmVyX2VkeAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2VkeAorLnR5cGUJYWJpX3Rlc3Rf
Y2xvYmJlcl9lZHgsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfZWR4Ogor
LkxfYWJpX3Rlc3RfY2xvYmJlcl9lZHhfYmVnaW46CisJeG9ybAklZWR4LCVlZHgKKwlyZXQKKy5z
aXplCWFiaV90ZXN0X2Nsb2JiZXJfZWR4LC4tLkxfYWJpX3Rlc3RfY2xvYmJlcl9lZHhfYmVnaW4K
Ky5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX2VkaQorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2Vk
aQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9lZGksQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90
ZXN0X2Nsb2JiZXJfZWRpOgorLkxfYWJpX3Rlc3RfY2xvYmJlcl9lZGlfYmVnaW46CisJeG9ybAkl
ZWRpLCVlZGkKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZWRpLC4tLkxfYWJpX3Rlc3Rf
Y2xvYmJlcl9lZGlfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX2VzaQorLmhpZGRlbglh
YmlfdGVzdF9jbG9iYmVyX2VzaQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9lc2ksQGZ1bmN0aW9u
CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfZXNpOgorLkxfYWJpX3Rlc3RfY2xvYmJlcl9l
c2lfYmVnaW46CisJeG9ybAklZXNpLCVlc2kKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJf
ZXNpLC4tLkxfYWJpX3Rlc3RfY2xvYmJlcl9lc2lfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9i
YmVyX2VicAorLmhpZGRlbglhYmlfdGVzdF9jbG9iYmVyX2VicAorLnR5cGUJYWJpX3Rlc3RfY2xv
YmJlcl9lYnAsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfZWJwOgorLkxf
YWJpX3Rlc3RfY2xvYmJlcl9lYnBfYmVnaW46CisJeG9ybAklZWJwLCVlYnAKKwlyZXQKKy5zaXpl
CWFiaV90ZXN0X2Nsb2JiZXJfZWJwLC4tLkxfYWJpX3Rlc3RfY2xvYmJlcl9lYnBfYmVnaW4KKy5n
bG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTAKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94bW0w
CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTAsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90
ZXN0X2Nsb2JiZXJfeG1tMDoKKy5MX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMF9iZWdpbjoKKwlweG9y
CSV4bW0wLCV4bW0wCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTAsLi0uTF9hYmlf
dGVzdF9jbG9iYmVyX3htbTBfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTEKKy5o
aWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94bW0xCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTEs
QGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMToKKy5MX2FiaV90ZXN0
X2Nsb2JiZXJfeG1tMV9iZWdpbjoKKwlweG9yCSV4bW0xLCV4bW0xCisJcmV0Cisuc2l6ZQlhYmlf
dGVzdF9jbG9iYmVyX3htbTEsLi0uTF9hYmlfdGVzdF9jbG9iYmVyX3htbTFfYmVnaW4KKy5nbG9i
bAlhYmlfdGVzdF9jbG9iYmVyX3htbTIKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94bW0yCisu
dHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTIsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0
X2Nsb2JiZXJfeG1tMjoKKy5MX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMl9iZWdpbjoKKwlweG9yCSV4
bW0yLCV4bW0yCisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTIsLi0uTF9hYmlfdGVz
dF9jbG9iYmVyX3htbTJfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTMKKy5oaWRk
ZW4JYWJpX3Rlc3RfY2xvYmJlcl94bW0zCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTMsQGZ1
bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMzoKKy5MX2FiaV90ZXN0X2Ns
b2JiZXJfeG1tM19iZWdpbjoKKwlweG9yCSV4bW0zLCV4bW0zCisJcmV0Cisuc2l6ZQlhYmlfdGVz
dF9jbG9iYmVyX3htbTMsLi0uTF9hYmlfdGVzdF9jbG9iYmVyX3htbTNfYmVnaW4KKy5nbG9ibAlh
YmlfdGVzdF9jbG9iYmVyX3htbTQKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94bW00CisudHlw
ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTQsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Ns
b2JiZXJfeG1tNDoKKy5MX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNF9iZWdpbjoKKwlweG9yCSV4bW00
LCV4bW00CisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTQsLi0uTF9hYmlfdGVzdF9j
bG9iYmVyX3htbTRfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTUKKy5oaWRkZW4J
YWJpX3Rlc3RfY2xvYmJlcl94bW01CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTUsQGZ1bmN0
aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tNToKKy5MX2FiaV90ZXN0X2Nsb2Ji
ZXJfeG1tNV9iZWdpbjoKKwlweG9yCSV4bW01LCV4bW01CisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9j
bG9iYmVyX3htbTUsLi0uTF9hYmlfdGVzdF9jbG9iYmVyX3htbTVfYmVnaW4KKy5nbG9ibAlhYmlf
dGVzdF9jbG9iYmVyX3htbTYKKy5oaWRkZW4JYWJpX3Rlc3RfY2xvYmJlcl94bW02CisudHlwZQlh
YmlfdGVzdF9jbG9iYmVyX3htbTYsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2Ji
ZXJfeG1tNjoKKy5MX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNl9iZWdpbjoKKwlweG9yCSV4bW02LCV4
bW02CisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTYsLi0uTF9hYmlfdGVzdF9jbG9i
YmVyX3htbTZfYmVnaW4KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTcKKy5oaWRkZW4JYWJp
X3Rlc3RfY2xvYmJlcl94bW03CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTcsQGZ1bmN0aW9u
CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tNzoKKy5MX2FiaV90ZXN0X2Nsb2JiZXJf
eG1tN19iZWdpbjoKKwlweG9yCSV4bW03LCV4bW03CisJcmV0Cisuc2l6ZQlhYmlfdGVzdF9jbG9i
YmVyX3htbTcsLi0uTF9hYmlfdGVzdF9jbG9iYmVyX3htbTdfYmVnaW4KKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5TIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgt
eDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5TCmluZGV4IDc4NWIyZGM0NTNkMzRh
NTk3YTllMzAxMTI0OTM0Y2MwMmMyNjEzZTguLjRlMjI2N2JiMjM0NGI0ODNlNzg2NDE2NDEyYjQx
YTUzMjQxOWIwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNo
YS14ODZfNjQuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0
LlMKQEAgLTUwLDYgKzUwLDcgQEAKIC50eXBlCUNoYUNoYTIwX2N0cjMyLEBmdW5jdGlvbgogLmFs
aWduCTY0CiBDaGFDaGEyMF9jdHIzMjoKKy5jZmlfc3RhcnRwcm9jCQogCWNtcHEJJDAsJXJkeAog
CWplCS5Mbm9fZGF0YQogCW1vdnEJT1BFTlNTTF9pYTMyY2FwX1ArNCglcmlwKSwlcjEwCkBAIC01
NywxMiArNTgsMjUgQEAgQ2hhQ2hhMjBfY3RyMzI6CiAJam56CS5MQ2hhQ2hhMjBfc3NzZTMKIAog
CXB1c2hxCSVyYngKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJcmJ4LC0x
NgogCXB1c2hxCSVyYnAKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJcmJw
LC0yNAogCXB1c2hxCSVyMTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJ
cjEyLC0zMgogCXB1c2hxCSVyMTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZz
ZXQJcjEzLC00MAogCXB1c2hxCSVyMTQKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9v
ZmZzZXQJcjE0LC00OAogCXB1c2hxCSVyMTUKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNm
aV9vZmZzZXQJcjE1LC01NgogCXN1YnEJJDY0KzI0LCVyc3AKKy5jZmlfYWRqdXN0X2NmYV9vZmZz
ZXQJODgKIC5MY3RyMzJfYm9keToKIAogCkBAIC0zMDMsMjAgKzMxNywzMCBAQCBDaGFDaGEyMF9j
dHIzMjoKIC5MZG9uZToKIAlsZWFxCTY0KzI0KzQ4KCVyc3ApLCVyc2kKIAltb3ZxCS00OCglcnNp
KSwlcjE1CisuY2ZpX3Jlc3RvcmUJcjE1CiAJbW92cQktNDAoJXJzaSksJXIxNAorLmNmaV9yZXN0
b3JlCXIxNAogCW1vdnEJLTMyKCVyc2kpLCVyMTMKKy5jZmlfcmVzdG9yZQlyMTMKIAltb3ZxCS0y
NCglcnNpKSwlcjEyCisuY2ZpX3Jlc3RvcmUJcjEyCiAJbW92cQktMTYoJXJzaSksJXJicAorLmNm
aV9yZXN0b3JlCXJicAogCW1vdnEJLTgoJXJzaSksJXJieAorLmNmaV9yZXN0b3JlCXJieAogCWxl
YXEJKCVyc2kpLCVyc3AKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTEzNgogLkxub19kYXRhOgog
CS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9jCQogLnNpemUJQ2hhQ2hhMjBfY3RyMzIsLi1D
aGFDaGEyMF9jdHIzMgogLnR5cGUJQ2hhQ2hhMjBfc3NzZTMsQGZ1bmN0aW9uCiAuYWxpZ24JMzIK
IENoYUNoYTIwX3Nzc2UzOgogLkxDaGFDaGEyMF9zc3NlMzoKKy5jZmlfc3RhcnRwcm9jCQogCW1v
dnEJJXJzcCwlcjkKKy5jZmlfZGVmX2NmYV9yZWdpc3RlcglyOQogCWNtcHEJJDEyOCwlcmR4CiAJ
amEJLkxDaGFDaGEyMF80eAogCkBAIC00NDIsMTQgKzQ2NiwxOCBAQCBDaGFDaGEyMF9zc3NlMzoK
IAogLkxkb25lX3Nzc2UzOgogCWxlYXEJKCVyOSksJXJzcAorLmNmaV9kZWZfY2ZhX3JlZ2lzdGVy
CXJzcAogLkxzc3NlM19lcGlsb2d1ZToKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkK
IC5zaXplCUNoYUNoYTIwX3Nzc2UzLC4tQ2hhQ2hhMjBfc3NzZTMKIC50eXBlCUNoYUNoYTIwXzR4
LEBmdW5jdGlvbgogLmFsaWduCTMyCiBDaGFDaGEyMF80eDoKIC5MQ2hhQ2hhMjBfNHg6CisuY2Zp
X3N0YXJ0cHJvYwkKIAltb3ZxCSVyc3AsJXI5CisuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJcjkKIAlt
b3ZxCSVyMTAsJXIxMQogCXNocnEJJDMyLCVyMTAKIAl0ZXN0cQkkMzIsJXIxMApAQCAtOTkwLDE0
ICsxMDE4LDE4IEBAIENoYUNoYTIwXzR4OgogCiAuTGRvbmU0eDoKIAlsZWFxCSglcjkpLCVyc3AK
Ky5jZmlfZGVmX2NmYV9yZWdpc3Rlcglyc3AKIC5MNHhfZXBpbG9ndWU6CiAJLmJ5dGUJMHhmMyww
eGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlDaGFDaGEyMF80eCwuLUNoYUNoYTIwXzR4CiAudHlw
ZQlDaGFDaGEyMF84eCxAZnVuY3Rpb24KIC5hbGlnbgkzMgogQ2hhQ2hhMjBfOHg6CiAuTENoYUNo
YTIwXzh4OgorLmNmaV9zdGFydHByb2MJCiAJbW92cQklcnNwLCVyOQorLmNmaV9kZWZfY2ZhX3Jl
Z2lzdGVyCXI5CiAJc3VicQkkMHgyODArOCwlcnNwCiAJYW5kcQkkLTMyLCVyc3AKIAl2emVyb3Vw
cGVyCkBAIC0xNTkyLDcgKzE2MjQsOSBAQCBDaGFDaGEyMF84eDoKIC5MZG9uZTh4OgogCXZ6ZXJv
YWxsCiAJbGVhcQkoJXI5KSwlcnNwCisuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJcnNwCiAuTDh4X2Vw
aWxvZ3VlOgogCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9jCQogLnNpemUJQ2hhQ2hhMjBf
OHgsLi1DaGFDaGEyMF84eAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRv
L2ZpcHNtb2R1bGUvYWVzLXg4Nl82NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxl
L2Flcy14ODZfNjQuUwppbmRleCAwZGNhMjYxNzA0MGYzYjI1MGVkMTUxMjJlMTA5NTI1MTMzYzBj
M2IwLi5mNDVlMDEwZTI4MTA2MzhlMjIxNWYxMWQxYzc3YjZiZDg2MmI2NzMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzLXg4Nl82NC5TCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4
LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9hZXMteDg2XzY0LlMKQEAgLTE2OCw2ICsxNjgsNyBA
QCBfeDg2XzY0X0FFU19lbmNyeXB0OgogLnR5cGUJX3g4Nl82NF9BRVNfZW5jcnlwdF9jb21wYWN0
LEBmdW5jdGlvbgogLmFsaWduCTE2CiBfeDg2XzY0X0FFU19lbmNyeXB0X2NvbXBhY3Q6CisuY2Zp
X3N0YXJ0cHJvYwkKIAlsZWFxCTEyOCglcjE0KSwlcjgKIAltb3ZsCTAtMTI4KCVyOCksJWVkaQog
CW1vdmwJMzItMTI4KCVyOCksJWVicApAQCAtMzM3LDYgKzMzOCw3IEBAIF94ODZfNjRfQUVTX2Vu
Y3J5cHRfY29tcGFjdDoKIAl4b3JsCTgoJXIxNSksJWVjeAogCXhvcmwJMTIoJXIxNSksJWVkeAog
LmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfeDg2XzY0X0FFU19lbmNyeXB0
X2NvbXBhY3QsLi1feDg2XzY0X0FFU19lbmNyeXB0X2NvbXBhY3QKIC5hbGlnbgkxNgogLmdsb2Js
CWFlc19ub2h3X2VuY3J5cHQKQEAgLTU4MCw2ICs1ODIsNyBAQCBfeDg2XzY0X0FFU19kZWNyeXB0
OgogLnR5cGUJX3g4Nl82NF9BRVNfZGVjcnlwdF9jb21wYWN0LEBmdW5jdGlvbgogLmFsaWduCTE2
CiBfeDg2XzY0X0FFU19kZWNyeXB0X2NvbXBhY3Q6CisuY2ZpX3N0YXJ0cHJvYwkKIAlsZWFxCTEy
OCglcjE0KSwlcjgKIAltb3ZsCTAtMTI4KCVyOCksJWVkaQogCW1vdmwJMzItMTI4KCVyOCksJWVi
cApAQCAtODAxLDYgKzgwNCw3IEBAIF94ODZfNjRfQUVTX2RlY3J5cHRfY29tcGFjdDoKIAl4b3Js
CTgoJXIxNSksJWVjeAogCXhvcmwJMTIoJXIxNSksJWVkeAogLmJ5dGUJMHhmMywweGMzCisuY2Zp
X2VuZHByb2MJCiAuc2l6ZQlfeDg2XzY0X0FFU19kZWNyeXB0X2NvbXBhY3QsLi1feDg2XzY0X0FF
U19kZWNyeXB0X2NvbXBhY3QKIC5hbGlnbgkxNgogLmdsb2JsCWFlc19ub2h3X2RlY3J5cHQKQEAg
LTkzMiw2ICs5MzYsNyBAQCBhZXNfbm9od19zZXRfZW5jcnlwdF9rZXk6CiAudHlwZQlfeDg2XzY0
X0FFU19zZXRfZW5jcnlwdF9rZXksQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIF94ODZfNjRfQUVTX3Nl
dF9lbmNyeXB0X2tleToKKy5jZmlfc3RhcnRwcm9jCQogCW1vdmwJJWVzaSwlZWN4CiAJbW92cQkl
cmRpLCVyc2kKIAltb3ZxCSVyZHgsJXJkaQpAQCAtMTE2Nyw2ICsxMTcyLDcgQEAgX3g4Nl82NF9B
RVNfc2V0X2VuY3J5cHRfa2V5OgogCW1vdnEJJC0xLCVyYXgKIC5MZXhpdDoKIC5ieXRlCTB4ZjMs
MHhjMworLmNmaV9lbmRwcm9jCQogLnNpemUJX3g4Nl82NF9BRVNfc2V0X2VuY3J5cHRfa2V5LC4t
X3g4Nl82NF9BRVNfc2V0X2VuY3J5cHRfa2V5CiAuYWxpZ24JMTYKIC5nbG9ibAlhZXNfbm9od19z
ZXRfZGVjcnlwdF9rZXkKQEAgLTEzOTAsOCArMTM5Niw5IEBAIGFlc19ub2h3X2NiY19lbmNyeXB0
OgogCWNtcHEJJDAsJXJkeAogCWplCS5MY2JjX2VwaWxvZ3VlCiAJcHVzaGZxCisKKwogLmNmaV9h
ZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAk0OSwtMTYKIAlwdXNocQklcmJ4CiAuY2Zp
X2FkanVzdF9jZmFfb2Zmc2V0CTgKIC5jZmlfb2Zmc2V0CSVyYngsLTI0CkBAIC0xNDIwLDYgKzE0
MjcsNyBAQCBhZXNfbm9od19jYmNfZW5jcnlwdDoKIAljbXBxCSQwLCVyOQogCWNtb3ZlcQklcjEw
LCVyMTQKIAorLmNmaV9yZW1lbWJlcl9zdGF0ZQkKIAlsZWFxCU9QRU5TU0xfaWEzMmNhcF9QKCVy
aXApLCVyMTAKIAltb3ZsCSglcjEwKSwlcjEwZAogCWNtcHEJJDUxMiwlcmR4CkBAIC0xNjU2LDYg
KzE2NjQsNyBAQCBhZXNfbm9od19jYmNfZW5jcnlwdDoKIAogLmFsaWduCTE2CiAuTGNiY19zbG93
X3Byb2xvZ3VlOgorLmNmaV9yZXN0b3JlX3N0YXRlCQogCiAJbGVhcQktODgoJXJzcCksJXJicAog
CWFuZHEJJC02NCwlcmJwCkBAIC0xNjY3LDggKzE2NzYsMTAgQEAgYWVzX25vaHdfY2JjX2VuY3J5
cHQ6CiAJc3VicQklcjEwLCVyYnAKIAogCXhjaGdxCSVyc3AsJXJicAorLmNmaV9kZWZfY2ZhX3Jl
Z2lzdGVyCSVyYnAKIAogCW1vdnEJJXJicCwxNiglcnNwKQorLmNmaV9lc2NhcGUJMHgwZiwweDA1
LDB4NzcsMHgxMCwweDA2LDB4MjMsMHg0MAogLkxjYmNfc2xvd19ib2R5OgogCiAKQEAgLTE4NTcs
OCArMTg2OCw5IEBAIGFlc19ub2h3X2NiY19lbmNyeXB0OgogLmNmaV9kZWZfY2ZhCSVyc3AsMTYK
IC5MY2JjX3BvcGZxOgogCXBvcGZxCisKKwogLmNmaV9hZGp1c3RfY2ZhX29mZnNldAktOAotLmNm
aV9yZXN0b3JlCTQ5CiAuTGNiY19lcGlsb2d1ZToKIAkuYnl0ZQkweGYzLDB4YzMKIC5jZmlfZW5k
cHJvYwkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS1n
Y20teDg2XzY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzbmktZ2NtLXg4
Nl82NC5TCmluZGV4IDA2NmY0Nzc0NDI5YTRjNDc2NGYyNjY0OTRiNzNmZjgwZGE5MzJmMzguLjI0
MGNiNWQ0NzMwZjMwZDI4YjlmMDg3Yjk1ZWU4OTI2MzdkMzRlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4
LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS1nY20teDg2XzY0LlMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgt
eDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLWdjbS14ODZfNjQuUwpAQCAtNTU2LDYgKzU1
NiwxMyBAQCBfYWVzbmlfY3RyMzJfNng6CiAuYWxpZ24JMzIKIGFlc25pX2djbV9lbmNyeXB0Ogog
LmNmaV9zdGFydHByb2MJCisjaWZuZGVmIE5ERUJVRworI2lmbmRlZiBCT1JJTkdTU0xfRklQUwor
LmV4dGVybglCT1JJTkdTU0xfZnVuY3Rpb25faGl0CisuaGlkZGVuIEJPUklOR1NTTF9mdW5jdGlv
bl9oaXQKKwltb3ZiCSQxLEJPUklOR1NTTF9mdW5jdGlvbl9oaXQrMiglcmlwKQorI2VuZGlmCisj
ZW5kaWYKIAl4b3JxCSVyMTAsJXIxMAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlw
dG8vZmlwc21vZHVsZS9hZXNuaS14ODZfNjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vZmlwc21v
ZHVsZS9hZXNuaS14ODZfNjQuUwppbmRleCA5ZWE5ODI0NmYxNWVmMWRmNTg5ZDJkNWIzZjI3Zjc2
OTJjMDVlMmZlLi40MmU1NTMwN2ZmMmZjMTFiYzg0NDJmNGRlNzY0MjBiYjc1MDlmYWE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzbmkteDg2XzY0LlMKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLXg4Nl82NC5TCkBAIC0xOSw2
ICsxOSwxNCBAQAogLnR5cGUJYWVzX2h3X2VuY3J5cHQsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIGFl
c19od19lbmNyeXB0OgorLmNmaV9zdGFydHByb2MJCisjaWZuZGVmIE5ERUJVRworI2lmbmRlZiBC
T1JJTkdTU0xfRklQUworLmV4dGVybglCT1JJTkdTU0xfZnVuY3Rpb25faGl0CisuaGlkZGVuIEJP
UklOR1NTTF9mdW5jdGlvbl9oaXQKKwltb3ZiCSQxLEJPUklOR1NTTF9mdW5jdGlvbl9oaXQrMSgl
cmlwKQorI2VuZGlmCisjZW5kaWYKIAltb3Z1cHMJKCVyZGkpLCV4bW0yCiAJbW92bAkyNDAoJXJk
eCksJWVheAogCW1vdnVwcwkoJXJkeCksJXhtbTAKQEAgLTM3LDYgKzQ1LDcgQEAgYWVzX2h3X2Vu
Y3J5cHQ6CiAJbW92dXBzCSV4bW0yLCglcnNpKQogCXB4b3IJJXhtbTIsJXhtbTIKIAkuYnl0ZQkw
eGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCWFlc19od19lbmNyeXB0LC4tYWVzX2h3X2Vu
Y3J5cHQKIAogLmdsb2JsCWFlc19od19kZWNyeXB0CkBAIC00NCw2ICs1Myw3IEBAIGFlc19od19l
bmNyeXB0OgogLnR5cGUJYWVzX2h3X2RlY3J5cHQsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIGFlc19o
d19kZWNyeXB0OgorLmNmaV9zdGFydHByb2MJCiAJbW92dXBzCSglcmRpKSwleG1tMgogCW1vdmwJ
MjQwKCVyZHgpLCVlYXgKIAltb3Z1cHMJKCVyZHgpLCV4bW0wCkBAIC02MiwxMCArNzIsMTIgQEAg
YWVzX2h3X2RlY3J5cHQ6CiAJbW92dXBzCSV4bW0yLCglcnNpKQogCXB4b3IJJXhtbTIsJXhtbTIK
IAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCWFlc19od19kZWNyeXB0LCAu
LWFlc19od19kZWNyeXB0CiAudHlwZQlfYWVzbmlfZW5jcnlwdDIsQGZ1bmN0aW9uCiAuYWxpZ24J
MTYKIF9hZXNuaV9lbmNyeXB0MjoKKy5jZmlfc3RhcnRwcm9jCQogCW1vdnVwcwkoJXJjeCksJXht
bTAKIAlzaGxsCSQ0LCVlYXgKIAltb3Z1cHMJMTYoJXJjeCksJXhtbTEKQEAgLTkxLDEwICsxMDMs
MTIgQEAgX2Flc25pX2VuY3J5cHQyOgogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDgKIC5ieXRlCTEw
MiwxNSw1NiwyMjEsMjE2CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlf
YWVzbmlfZW5jcnlwdDIsLi1fYWVzbmlfZW5jcnlwdDIKIC50eXBlCV9hZXNuaV9kZWNyeXB0MixA
ZnVuY3Rpb24KIC5hbGlnbgkxNgogX2Flc25pX2RlY3J5cHQyOgorLmNmaV9zdGFydHByb2MJCiAJ
bW92dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4KSwleG1t
MQpAQCAtMTIwLDEwICsxMzQsMTIgQEAgX2Flc25pX2RlY3J5cHQyOgogLmJ5dGUJMTAyLDE1LDU2
LDIyMywyMDgKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjE2CiAJLmJ5dGUJMHhmMywweGMzCisuY2Zp
X2VuZHByb2MJCiAuc2l6ZQlfYWVzbmlfZGVjcnlwdDIsLi1fYWVzbmlfZGVjcnlwdDIKIC50eXBl
CV9hZXNuaV9lbmNyeXB0MyxAZnVuY3Rpb24KIC5hbGlnbgkxNgogX2Flc25pX2VuY3J5cHQzOgor
LmNmaV9zdGFydHByb2MJCiAJbW92dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1v
dnVwcwkxNiglcmN4KSwleG1tMQpAQCAtMTU0LDEwICsxNzAsMTIgQEAgX2Flc25pX2VuY3J5cHQz
OgogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTYKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjI0CiAJLmJ5
dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfYWVzbmlfZW5jcnlwdDMsLi1fYWVz
bmlfZW5jcnlwdDMKIC50eXBlCV9hZXNuaV9kZWNyeXB0MyxAZnVuY3Rpb24KIC5hbGlnbgkxNgog
X2Flc25pX2RlY3J5cHQzOgorLmNmaV9zdGFydHByb2MJCiAJbW92dXBzCSglcmN4KSwleG1tMAog
CXNobGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4KSwleG1tMQpAQCAtMTg4LDEwICsyMDYsMTIg
QEAgX2Flc25pX2RlY3J5cHQzOgogLmJ5dGUJMTAyLDE1LDU2LDIyMywyMTYKIC5ieXRlCTEwMiwx
NSw1NiwyMjMsMjI0CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfYWVz
bmlfZGVjcnlwdDMsLi1fYWVzbmlfZGVjcnlwdDMKIC50eXBlCV9hZXNuaV9lbmNyeXB0NCxAZnVu
Y3Rpb24KIC5hbGlnbgkxNgogX2Flc25pX2VuY3J5cHQ0OgorLmNmaV9zdGFydHByb2MJCiAJbW92
dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4KSwleG1tMQpA
QCAtMjI4LDEwICsyNDgsMTIgQEAgX2Flc25pX2VuY3J5cHQ0OgogLmJ5dGUJMTAyLDE1LDU2LDIy
MSwyMjQKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjMyCiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2Vu
ZHByb2MJCiAuc2l6ZQlfYWVzbmlfZW5jcnlwdDQsLi1fYWVzbmlfZW5jcnlwdDQKIC50eXBlCV9h
ZXNuaV9kZWNyeXB0NCxAZnVuY3Rpb24KIC5hbGlnbgkxNgogX2Flc25pX2RlY3J5cHQ0OgorLmNm
aV9zdGFydHByb2MJCiAJbW92dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVw
cwkxNiglcmN4KSwleG1tMQpAQCAtMjY4LDEwICsyOTAsMTIgQEAgX2Flc25pX2RlY3J5cHQ0Ogog
LmJ5dGUJMTAyLDE1LDU2LDIyMywyMjQKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjMyCiAJLmJ5dGUJ
MHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfYWVzbmlfZGVjcnlwdDQsLi1fYWVzbmlf
ZGVjcnlwdDQKIC50eXBlCV9hZXNuaV9lbmNyeXB0NixAZnVuY3Rpb24KIC5hbGlnbgkxNgogX2Fl
c25pX2VuY3J5cHQ2OgorLmNmaV9zdGFydHByb2MJCiAJbW92dXBzCSglcmN4KSwleG1tMAogCXNo
bGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4KSwleG1tMQpAQCAtMzIyLDEwICszNDYsMTIgQEAg
X2Flc25pX2VuY3J5cHQ2OgogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyNDAKIC5ieXRlCTEwMiwxNSw1
NiwyMjEsMjQ4CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfYWVzbmlf
ZW5jcnlwdDYsLi1fYWVzbmlfZW5jcnlwdDYKIC50eXBlCV9hZXNuaV9kZWNyeXB0NixAZnVuY3Rp
b24KIC5hbGlnbgkxNgogX2Flc25pX2RlY3J5cHQ2OgorLmNmaV9zdGFydHByb2MJCiAJbW92dXBz
CSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4KSwleG1tMQpAQCAt
Mzc2LDEwICs0MDIsMTIgQEAgX2Flc25pX2RlY3J5cHQ2OgogLmJ5dGUJMTAyLDE1LDU2LDIyMywy
NDAKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjQ4CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHBy
b2MJCiAuc2l6ZQlfYWVzbmlfZGVjcnlwdDYsLi1fYWVzbmlfZGVjcnlwdDYKIC50eXBlCV9hZXNu
aV9lbmNyeXB0OCxAZnVuY3Rpb24KIC5hbGlnbgkxNgogX2Flc25pX2VuY3J5cHQ4OgorLmNmaV9z
dGFydHByb2MJCiAJbW92dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVwcwkx
NiglcmN4KSwleG1tMQpAQCAtNDQwLDEwICs0NjgsMTIgQEAgX2Flc25pX2VuY3J5cHQ4OgogLmJ5
dGUJMTAyLDY4LDE1LDU2LDIyMSwxOTIKIC5ieXRlCTEwMiw2OCwxNSw1NiwyMjEsMjAwCiAJLmJ5
dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfYWVzbmlfZW5jcnlwdDgsLi1fYWVz
bmlfZW5jcnlwdDgKIC50eXBlCV9hZXNuaV9kZWNyeXB0OCxAZnVuY3Rpb24KIC5hbGlnbgkxNgog
X2Flc25pX2RlY3J5cHQ4OgorLmNmaV9zdGFydHByb2MJCiAJbW92dXBzCSglcmN4KSwleG1tMAog
CXNobGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4KSwleG1tMQpAQCAtNTA0LDEyICs1MzQsMTQg
QEAgX2Flc25pX2RlY3J5cHQ4OgogLmJ5dGUJMTAyLDY4LDE1LDU2LDIyMywxOTIKIC5ieXRlCTEw
Miw2OCwxNSw1NiwyMjMsMjAwCiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6
ZQlfYWVzbmlfZGVjcnlwdDgsLi1fYWVzbmlfZGVjcnlwdDgKIC5nbG9ibAlhZXNfaHdfZWNiX2Vu
Y3J5cHQKIC5oaWRkZW4gYWVzX2h3X2VjYl9lbmNyeXB0CiAudHlwZQlhZXNfaHdfZWNiX2VuY3J5
cHQsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIGFlc19od19lY2JfZW5jcnlwdDoKKy5jZmlfc3RhcnRw
cm9jCQogCWFuZHEJJC0xNiwlcmR4CiAJanoJLkxlY2JfcmV0CiAKQEAgLTg0NywxNzUgKzg3OSwx
OSBAQCBhZXNfaHdfZWNiX2VuY3J5cHQ6CiAJeG9ycHMJJXhtbTAsJXhtbTAKIAlweG9yCSV4bW0x
LCV4bW0xCiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlhZXNfaHdfZWNi
X2VuY3J5cHQsLi1hZXNfaHdfZWNiX2VuY3J5cHQKLS5nbG9ibAlhZXNfaHdfY2NtNjRfZW5jcnlw
dF9ibG9ja3MKLS5oaWRkZW4gYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzCi0udHlwZQlhZXNf
aHdfY2NtNjRfZW5jcnlwdF9ibG9ja3MsQGZ1bmN0aW9uCi0uYWxpZ24JMTYKLWFlc19od19jY202
NF9lbmNyeXB0X2Jsb2NrczoKLQltb3ZsCTI0MCglcmN4KSwlZWF4Ci0JbW92ZHF1CSglcjgpLCV4
bW02Ci0JbW92ZHFhCS5MaW5jcmVtZW50NjQoJXJpcCksJXhtbTkKLQltb3ZkcWEJLkxic3dhcF9t
YXNrKCVyaXApLCV4bW03Ci0KLQlzaGxsCSQ0LCVlYXgKLQltb3ZsCSQxNiwlcjEwZAotCWxlYXEJ
MCglcmN4KSwlcjExCi0JbW92ZHF1CSglcjkpLCV4bW0zCi0JbW92ZHFhCSV4bW02LCV4bW0yCi0J
bGVhcQkzMiglcmN4LCVyYXgsMSksJXJjeAotLmJ5dGUJMTAyLDE1LDU2LDAsMjQ3Ci0Jc3VicQkl
cmF4LCVyMTAKLQlqbXAJLkxjY202NF9lbmNfb3V0ZXIKLS5hbGlnbgkxNgotLkxjY202NF9lbmNf
b3V0ZXI6Ci0JbW92dXBzCSglcjExKSwleG1tMAotCW1vdnEJJXIxMCwlcmF4Ci0JbW92dXBzCSgl
cmRpKSwleG1tOAotCi0JeG9ycHMJJXhtbTAsJXhtbTIKLQltb3Z1cHMJMTYoJXIxMSksJXhtbTEK
LQl4b3JwcwkleG1tOCwleG1tMAotCXhvcnBzCSV4bW0wLCV4bW0zCi0JbW92dXBzCTMyKCVyMTEp
LCV4bW0wCi0KLS5MY2NtNjRfZW5jMl9sb29wOgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5i
eXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0JbW92dXBzCSglcmN4LCVyYXgsMSksJXhtbTEKLQlhZGRx
CSQzMiwlcmF4Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MTYKLQltb3Z1cHMJLTE2KCVyY3gsJXJheCwxKSwleG1tMAotCWpuegkuTGNjbTY0X2VuYzJfbG9v
cAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0JcGFk
ZHEJJXhtbTksJXhtbTYKLQlkZWNxCSVyZHgKLS5ieXRlCTEwMiwxNSw1NiwyMjEsMjA4Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIxLDIxNgotCi0JbGVhcQkxNiglcmRpKSwlcmRpCi0JeG9ycHMJJXhtbTIs
JXhtbTgKLQltb3ZkcWEJJXhtbTYsJXhtbTIKLQltb3Z1cHMJJXhtbTgsKCVyc2kpCi0uYnl0ZQkx
MDIsMTUsNTYsMCwyMTUKLQlsZWFxCTE2KCVyc2kpLCVyc2kKLQlqbnoJLkxjY202NF9lbmNfb3V0
ZXIKLQotCXB4b3IJJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xCi0JcHhvcgkleG1tMiwl
eG1tMgotCW1vdnVwcwkleG1tMywoJXI5KQotCXB4b3IJJXhtbTMsJXhtbTMKLQlweG9yCSV4bW04
LCV4bW04Ci0JcHhvcgkleG1tNiwleG1tNgotCS5ieXRlCTB4ZjMsMHhjMwotLnNpemUJYWVzX2h3
X2NjbTY0X2VuY3J5cHRfYmxvY2tzLC4tYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzCi0uZ2xv
YmwJYWVzX2h3X2NjbTY0X2RlY3J5cHRfYmxvY2tzCi0uaGlkZGVuIGFlc19od19jY202NF9kZWNy
eXB0X2Jsb2NrcwotLnR5cGUJYWVzX2h3X2NjbTY0X2RlY3J5cHRfYmxvY2tzLEBmdW5jdGlvbgot
LmFsaWduCTE2Ci1hZXNfaHdfY2NtNjRfZGVjcnlwdF9ibG9ja3M6Ci0JbW92bAkyNDAoJXJjeCks
JWVheAotCW1vdnVwcwkoJXI4KSwleG1tNgotCW1vdmRxdQkoJXI5KSwleG1tMwotCW1vdmRxYQku
TGluY3JlbWVudDY0KCVyaXApLCV4bW05Ci0JbW92ZHFhCS5MYnN3YXBfbWFzayglcmlwKSwleG1t
NwotCi0JbW92YXBzCSV4bW02LCV4bW0yCi0JbW92bAklZWF4LCVyMTBkCi0JbW92cQklcmN4LCVy
MTEKLS5ieXRlCTEwMiwxNSw1NiwwLDI0NwotCW1vdnVwcwkoJXJjeCksJXhtbTAKLQltb3Z1cHMJ
MTYoJXJjeCksJXhtbTEKLQlsZWFxCTMyKCVyY3gpLCVyY3gKLQl4b3JwcwkleG1tMCwleG1tMgot
Lkxvb3BfZW5jMV81OgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLQlkZWNsCSVlYXgKLQltb3Z1
cHMJKCVyY3gpLCV4bW0xCi0JbGVhcQkxNiglcmN4KSwlcmN4Ci0Jam56CS5Mb29wX2VuYzFfNQot
LmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDkKLQlzaGxsCSQ0LCVyMTBkCi0JbW92bAkkMTYsJWVheAot
CW1vdnVwcwkoJXJkaSksJXhtbTgKLQlwYWRkcQkleG1tOSwleG1tNgotCWxlYXEJMTYoJXJkaSks
JXJkaQotCXN1YnEJJXIxMCwlcmF4Ci0JbGVhcQkzMiglcjExLCVyMTAsMSksJXJjeAotCW1vdnEJ
JXJheCwlcjEwCi0Jam1wCS5MY2NtNjRfZGVjX291dGVyCi0uYWxpZ24JMTYKLS5MY2NtNjRfZGVj
X291dGVyOgotCXhvcnBzCSV4bW0yLCV4bW04Ci0JbW92ZHFhCSV4bW02LCV4bW0yCi0JbW92dXBz
CSV4bW04LCglcnNpKQotCWxlYXEJMTYoJXJzaSksJXJzaQotLmJ5dGUJMTAyLDE1LDU2LDAsMjE1
Ci0KLQlzdWJxCSQxLCVyZHgKLQlqegkuTGNjbTY0X2RlY19icmVhawotCi0JbW92dXBzCSglcjEx
KSwleG1tMAotCW1vdnEJJXIxMCwlcmF4Ci0JbW92dXBzCTE2KCVyMTEpLCV4bW0xCi0JeG9ycHMJ
JXhtbTAsJXhtbTgKLQl4b3JwcwkleG1tMCwleG1tMgotCXhvcnBzCSV4bW04LCV4bW0zCi0JbW92
dXBzCTMyKCVyMTEpLCV4bW0wCi0Jam1wCS5MY2NtNjRfZGVjMl9sb29wCi0uYWxpZ24JMTYKLS5M
Y2NtNjRfZGVjMl9sb29wOgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1
NiwyMjAsMjE3Ci0JbW92dXBzCSglcmN4LCVyYXgsMSksJXhtbTEKLQlhZGRxCSQzMiwlcmF4Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIwOAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTYKLQltb3Z1cHMJ
LTE2KCVyY3gsJXJheCwxKSwleG1tMAotCWpuegkuTGNjbTY0X2RlYzJfbG9vcAotCW1vdnVwcwko
JXJkaSksJXhtbTgKLQlwYWRkcQkleG1tOSwleG1tNgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0uYnl0ZQkxMDIsMTUsNTYsMjIxLDIwOAotLmJ5dGUJ
MTAyLDE1LDU2LDIyMSwyMTYKLQlsZWFxCTE2KCVyZGkpLCVyZGkKLQlqbXAJLkxjY202NF9kZWNf
b3V0ZXIKLQotLmFsaWduCTE2Ci0uTGNjbTY0X2RlY19icmVhazoKLQotCW1vdmwJMjQwKCVyMTEp
LCVlYXgKLQltb3Z1cHMJKCVyMTEpLCV4bW0wCi0JbW92dXBzCTE2KCVyMTEpLCV4bW0xCi0JeG9y
cHMJJXhtbTAsJXhtbTgKLQlsZWFxCTMyKCVyMTEpLCVyMTEKLQl4b3JwcwkleG1tOCwleG1tMwot
Lkxvb3BfZW5jMV82OgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKLQlkZWNsCSVlYXgKLQltb3Z1
cHMJKCVyMTEpLCV4bW0xCi0JbGVhcQkxNiglcjExKSwlcjExCi0Jam56CS5Mb29wX2VuYzFfNgot
LmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTcKLQlweG9yCSV4bW0wLCV4bW0wCi0JcHhvcgkleG1tMSwl
eG1tMQotCXB4b3IJJXhtbTIsJXhtbTIKLQltb3Z1cHMJJXhtbTMsKCVyOSkKLQlweG9yCSV4bW0z
LCV4bW0zCi0JcHhvcgkleG1tOCwleG1tOAotCXB4b3IJJXhtbTYsJXhtbTYKLQkuYnl0ZQkweGYz
LDB4YzMKLS5zaXplCWFlc19od19jY202NF9kZWNyeXB0X2Jsb2NrcywuLWFlc19od19jY202NF9k
ZWNyeXB0X2Jsb2NrcwogLmdsb2JsCWFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2NrcwogLmhpZGRl
biBhZXNfaHdfY3RyMzJfZW5jcnlwdF9ibG9ja3MKIC50eXBlCWFlc19od19jdHIzMl9lbmNyeXB0
X2Jsb2NrcyxAZnVuY3Rpb24KIC5hbGlnbgkxNgogYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tz
OgogLmNmaV9zdGFydHByb2MJCisjaWZuZGVmIE5ERUJVRworI2lmbmRlZiBCT1JJTkdTU0xfRklQ
UworCW1vdmIJJDEsQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCglcmlwKQorI2VuZGlmCisjZW5kaWYK
IAljbXBxCSQxLCVyZHgKIAlqbmUJLkxjdHIzMl9idWxrCiAKQEAgLTEwMjgsMTIgKzkwNCwxMiBA
QCBhZXNfaHdfY3RyMzJfZW5jcnlwdF9ibG9ja3M6CiAJbW92dXBzCTE2KCVyY3gpLCV4bW0xCiAJ
bGVhcQkzMiglcmN4KSwlcmN4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLS5Mb29wX2VuYzFfNzoKKy5M
b29wX2VuYzFfNToKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjbAklZWR4CiAJbW92dXBz
CSglcmN4KSwleG1tMQogCWxlYXEJMTYoJXJjeCksJXJjeAotCWpuegkuTG9vcF9lbmMxXzcKKwlq
bnoJLkxvb3BfZW5jMV81CiAuYnl0ZQkxMDIsMTUsNTYsMjIxLDIwOQogCXB4b3IJJXhtbTAsJXht
bTAKIAlweG9yCSV4bW0xLCV4bW0xCkBAIC0xNTkwLDE5NjUgKzE0NjYsMTMyIEBAIGFlc19od19j
dHIzMl9lbmNyeXB0X2Jsb2NrczoKIAkuYnl0ZQkweGYzLDB4YzMKIC5jZmlfZW5kcHJvYwkKIC5z
aXplCWFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2NrcywuLWFlc19od19jdHIzMl9lbmNyeXB0X2Js
b2NrcwotLmdsb2JsCWFlc19od194dHNfZW5jcnlwdAotLmhpZGRlbiBhZXNfaHdfeHRzX2VuY3J5
cHQKLS50eXBlCWFlc19od194dHNfZW5jcnlwdCxAZnVuY3Rpb24KKy5nbG9ibAlhZXNfaHdfY2Jj
X2VuY3J5cHQKKy5oaWRkZW4gYWVzX2h3X2NiY19lbmNyeXB0CisudHlwZQlhZXNfaHdfY2JjX2Vu
Y3J5cHQsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKLWFlc19od194dHNfZW5jcnlwdDoKK2Flc19od19j
YmNfZW5jcnlwdDoKIC5jZmlfc3RhcnRwcm9jCQotCWxlYXEJKCVyc3ApLCVyMTEKLS5jZmlfZGVm
X2NmYV9yZWdpc3RlcgklcjExCi0JcHVzaHEJJXJicAotLmNmaV9vZmZzZXQJJXJicCwtMTYKLQlz
dWJxCSQxMTIsJXJzcAotCWFuZHEJJC0xNiwlcnNwCi0JbW92dXBzCSglcjkpLCV4bW0yCi0JbW92
bAkyNDAoJXI4KSwlZWF4CisJdGVzdHEJJXJkeCwlcmR4CisJanoJLkxjYmNfcmV0CisKIAltb3Zs
CTI0MCglcmN4KSwlcjEwZAotCW1vdnVwcwkoJXI4KSwleG1tMAotCW1vdnVwcwkxNiglcjgpLCV4
bW0xCi0JbGVhcQkzMiglcjgpLCVyOAotCXhvcnBzCSV4bW0wLCV4bW0yCi0uTG9vcF9lbmMxXzg6
CisJbW92cQklcmN4LCVyMTEKKwl0ZXN0bAklcjlkLCVyOWQKKwlqegkuTGNiY19kZWNyeXB0CisK
Kwltb3Z1cHMJKCVyOCksJXhtbTIKKwltb3ZsCSVyMTBkLCVlYXgKKwljbXBxCSQxNiwlcmR4CisJ
amIJLkxjYmNfZW5jX3RhaWwKKwlzdWJxCSQxNiwlcmR4CisJam1wCS5MY2JjX2VuY19sb29wCisu
YWxpZ24JMTYKKy5MY2JjX2VuY19sb29wOgorCW1vdnVwcwkoJXJkaSksJXhtbTMKKwlsZWFxCTE2
KCVyZGkpLCVyZGkKKworCW1vdnVwcwkoJXJjeCksJXhtbTAKKwltb3Z1cHMJMTYoJXJjeCksJXht
bTEKKwl4b3JwcwkleG1tMCwleG1tMworCWxlYXEJMzIoJXJjeCksJXJjeAorCXhvcnBzCSV4bW0z
LCV4bW0yCisuTG9vcF9lbmMxXzY6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQogCWRlY2wJJWVh
eAotCW1vdnVwcwkoJXI4KSwleG1tMQotCWxlYXEJMTYoJXI4KSwlcjgKLQlqbnoJLkxvb3BfZW5j
MV84CisJbW92dXBzCSglcmN4KSwleG1tMQorCWxlYXEJMTYoJXJjeCksJXJjeAorCWpuegkuTG9v
cF9lbmMxXzYKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjA5Ci0JbW92dXBzCSglcmN4KSwleG1tMAot
CW1vdnEJJXJjeCwlcmJwCiAJbW92bAklcjEwZCwlZWF4Ci0Jc2hsbAkkNCwlcjEwZAotCW1vdnEJ
JXJkeCwlcjkKLQlhbmRxCSQtMTYsJXJkeAorCW1vdnEJJXIxMSwlcmN4CisJbW92dXBzCSV4bW0y
LDAoJXJzaSkKKwlsZWFxCTE2KCVyc2kpLCVyc2kKKwlzdWJxCSQxNiwlcmR4CisJam5jCS5MY2Jj
X2VuY19sb29wCisJYWRkcQkkMTYsJXJkeAorCWpuegkuTGNiY19lbmNfdGFpbAorCXB4b3IJJXht
bTAsJXhtbTAKKwlweG9yCSV4bW0xLCV4bW0xCisJbW92dXBzCSV4bW0yLCglcjgpCisJcHhvcgkl
eG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlqbXAJLkxjYmNfcmV0CiAKLQltb3Z1cHMJ
MTYoJXJjeCwlcjEwLDEpLCV4bW0xCisuTGNiY19lbmNfdGFpbDoKKwltb3ZxCSVyZHgsJXJjeAor
CXhjaGdxCSVyZGksJXJzaQorLmxvbmcJMHg5MDY2QTRGMworCW1vdmwJJDE2LCVlY3gKKwlzdWJx
CSVyZHgsJXJjeAorCXhvcmwJJWVheCwlZWF4CisubG9uZwkweDkwNjZBQUYzCisJbGVhcQktMTYo
JXJkaSksJXJkaQorCW1vdmwJJXIxMGQsJWVheAorCW1vdnEJJXJkaSwlcnNpCisJbW92cQklcjEx
LCVyY3gKKwl4b3JxCSVyZHgsJXJkeAorCWptcAkuTGNiY19lbmNfbG9vcAogCi0JbW92ZHFhCS5M
eHRzX21hZ2ljKCVyaXApLCV4bW04Ci0JbW92ZHFhCSV4bW0yLCV4bW0xNQotCXBzaHVmZAkkMHg1
ZiwleG1tMiwleG1tOQotCXB4b3IJJXhtbTAsJXhtbTEKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0J
cGFkZGQJJXhtbTksJXhtbTkKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBzcmFkCSQzMSwleG1t
MTQKLQlwYWRkcQkleG1tMTUsJXhtbTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLQlweG9yCSV4bW0w
LCV4bW0xMAotCXB4b3IJJXhtbTE0LCV4bW0xNQotCW1vdmRxYQkleG1tOSwleG1tMTQKLQlwYWRk
ZAkleG1tOSwleG1tOQotCW1vdmRxYQkleG1tMTUsJXhtbTExCi0JcHNyYWQJJDMxLCV4bW0xNAot
CXBhZGRxCSV4bW0xNSwleG1tMTUKLQlwYW5kCSV4bW04LCV4bW0xNAotCXB4b3IJJXhtbTAsJXht
bTExCi0JcHhvcgkleG1tMTQsJXhtbTE1Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRkCSV4
bW05LCV4bW05Ci0JbW92ZHFhCSV4bW0xNSwleG1tMTIKLQlwc3JhZAkkMzEsJXhtbTE0Ci0JcGFk
ZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTE0Ci0JcHhvcgkleG1tMCwleG1tMTIK
LQlweG9yCSV4bW0xNCwleG1tMTUKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0JcGFkZGQJJXhtbTks
JXhtbTkKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMwotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkl
eG1tMTUsJXhtbTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLQlweG9yCSV4bW0wLCV4bW0xMwotCXB4
b3IJJXhtbTE0LCV4bW0xNQotCW1vdmRxYQkleG1tMTUsJXhtbTE0Ci0JcHNyYWQJJDMxLCV4bW05
Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTkKLQlweG9yCSV4bW0wLCV4
bW0xNAotCXB4b3IJJXhtbTksJXhtbTE1Ci0JbW92YXBzCSV4bW0xLDk2KCVyc3ApCisuYWxpZ24J
MTYKKy5MY2JjX2RlY3J5cHQ6CisJY21wcQkkMTYsJXJkeAorCWpuZQkuTGNiY19kZWNyeXB0X2J1
bGsKIAotCXN1YnEJJDk2LCVyZHgKLQlqYwkuTHh0c19lbmNfc2hvcnQKIAotCW1vdmwJJDE2Kzk2
LCVlYXgKLQlsZWFxCTMyKCVyYnAsJXIxMCwxKSwlcmN4Ci0Jc3VicQklcjEwLCVyYXgKLQltb3Z1
cHMJMTYoJXJicCksJXhtbTEKLQltb3ZxCSVyYXgsJXIxMAotCWxlYXEJLkx4dHNfbWFnaWMoJXJp
cCksJXI4Ci0Jam1wCS5MeHRzX2VuY19ncmFuZGxvb3AKIAotLmFsaWduCTMyCi0uTHh0c19lbmNf
Z3JhbmRsb29wOgorCW1vdmRxdQkoJXJkaSksJXhtbTIKKwltb3ZkcXUJKCVyOCksJXhtbTMKKwlt
b3ZkcWEJJXhtbTIsJXhtbTQKKwltb3Z1cHMJKCVyY3gpLCV4bW0wCisJbW92dXBzCTE2KCVyY3gp
LCV4bW0xCisJbGVhcQkzMiglcmN4KSwlcmN4CisJeG9ycHMJJXhtbTAsJXhtbTIKKy5Mb29wX2Rl
YzFfNzoKKy5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CisJZGVjbAklcjEwZAorCW1vdnVwcwkoJXJj
eCksJXhtbTEKKwlsZWFxCTE2KCVyY3gpLCVyY3gKKwlqbnoJLkxvb3BfZGVjMV83CisuYnl0ZQkx
MDIsMTUsNTYsMjIzLDIwOQorCXB4b3IJJXhtbTAsJXhtbTAKKwlweG9yCSV4bW0xLCV4bW0xCisJ
bW92ZHF1CSV4bW00LCglcjgpCisJeG9ycHMJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0zLCV4bW0z
CisJbW92dXBzCSV4bW0yLCglcnNpKQorCXB4b3IJJXhtbTIsJXhtbTIKKwlqbXAJLkxjYmNfcmV0
CisuYWxpZ24JMTYKKy5MY2JjX2RlY3J5cHRfYnVsazoKKwlsZWFxCSglcnNwKSwlcjExCisuY2Zp
X2RlZl9jZmFfcmVnaXN0ZXIJJXIxMQorCXB1c2hxCSVyYnAKKy5jZmlfb2Zmc2V0CSVyYnAsLTE2
CisJc3VicQkkMTYsJXJzcAorCWFuZHEJJC0xNiwlcnNwCisJbW92cQklcmN4LCVyYnAKKwltb3Z1
cHMJKCVyOCksJXhtbTEwCisJbW92bAklcjEwZCwlZWF4CisJY21wcQkkMHg1MCwlcmR4CisJamJl
CS5MY2JjX2RlY190YWlsCisKKwltb3Z1cHMJKCVyY3gpLCV4bW0wCiAJbW92ZHF1CTAoJXJkaSks
JXhtbTIKLQltb3ZkcWEJJXhtbTAsJXhtbTgKIAltb3ZkcXUJMTYoJXJkaSksJXhtbTMKLQlweG9y
CSV4bW0xMCwleG1tMgorCW1vdmRxYQkleG1tMiwleG1tMTEKIAltb3ZkcXUJMzIoJXJkaSksJXht
bTQKLQlweG9yCSV4bW0xMSwleG1tMwotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKKwltb3ZkcWEJ
JXhtbTMsJXhtbTEyCiAJbW92ZHF1CTQ4KCVyZGkpLCV4bW01Ci0JcHhvcgkleG1tMTIsJXhtbTQK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3CisJbW92ZHFhCSV4bW00LCV4bW0xMwogCW1vdmRxdQk2
NCglcmRpKSwleG1tNgotCXB4b3IJJXhtbTEzLCV4bW01Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIy
NQorCW1vdmRxYQkleG1tNSwleG1tMTQKIAltb3ZkcXUJODAoJXJkaSksJXhtbTcKLQlweG9yCSV4
bW0xNSwleG1tOAotCW1vdmRxYQk5NiglcnNwKSwleG1tOQotCXB4b3IJJXhtbTE0LCV4bW02Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIzMwotCW1vdnVwcwkzMiglcmJwKSwleG1tMAotCWxlYXEJOTYo
JXJkaSksJXJkaQotCXB4b3IJJXhtbTgsJXhtbTcKLQotCXB4b3IJJXhtbTksJXhtbTEwCi0uYnl0
ZQkxMDIsMTUsNTYsMjIwLDI0MQotCXB4b3IJJXhtbTksJXhtbTExCi0JbW92ZHFhCSV4bW0xMCww
KCVyc3ApCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OQotCW1vdnVwcwk0OCglcmJwKSwleG1tMQot
CXB4b3IJJXhtbTksJXhtbTEyCi0KLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA4Ci0JcHhvcgkleG1t
OSwleG1tMTMKLQltb3ZkcWEJJXhtbTExLDE2KCVyc3ApCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIx
NgotCXB4b3IJJXhtbTksJXhtbTE0Ci0JbW92ZHFhCSV4bW0xMiwzMiglcnNwKQotLmJ5dGUJMTAy
LDE1LDU2LDIyMCwyMjQKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjMyCi0JcHhvcgkleG1tOSwleG1t
OAotCW1vdmRxYQkleG1tMTQsNjQoJXJzcCkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQwCi0uYnl0
ZQkxMDIsMTUsNTYsMjIwLDI0OAotCW1vdnVwcwk2NCglcmJwKSwleG1tMAotCW1vdmRxYQkleG1t
OCw4MCglcnNwKQotCXBzaHVmZAkkMHg1ZiwleG1tMTUsJXhtbTkKLQlqbXAJLkx4dHNfZW5jX2xv
b3A2Ci0uYWxpZ24JMzIKLS5MeHRzX2VuY19sb29wNjoKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5
Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjUKLS5ieXRl
CTEwMiwxNSw1NiwyMjAsMjMzCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0MQotLmJ5dGUJMTAyLDE1
LDU2LDIyMCwyNDkKLQltb3Z1cHMJLTY0KCVyY3gsJXJheCwxKSwleG1tMQotCWFkZHEJJDMyLCVy
YXgKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLS5ieXRlCTEw
MiwxNSw1NiwyMjAsMjQwCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OAotCW1vdnVwcwktODAoJXJj
eCwlcmF4LDEpLCV4bW0wCi0Jam56CS5MeHRzX2VuY19sb29wNgotCi0JbW92ZHFhCSglcjgpLCV4
bW04Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRkCSV4bW05LCV4bW05Ci0uYnl0ZQkxMDIs
MTUsNTYsMjIwLDIwOQotCXBhZGRxCSV4bW0xNSwleG1tMTUKLQlwc3JhZAkkMzEsJXhtbTE0Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIxNwotCXBhbmQJJXhtbTgsJXhtbTE0Ci0JbW92dXBzCSglcmJw
KSwleG1tMTAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIz
MwotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDEKLQlweG9yCSV4bW0xNCwleG1tMTUKLQltb3ZhcHMJ
JXhtbTEwLCV4bW0xMQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDkKLQltb3Z1cHMJLTY0KCVyY3gp
LCV4bW0xCi0KLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOAot
CXBhZGRkCSV4bW05LCV4bW05Ci0JcHhvcgkleG1tMTUsJXhtbTEwCi0uYnl0ZQkxMDIsMTUsNTYs
MjIwLDIxNgotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkleG1tMTUsJXhtbTE1Ci0uYnl0ZQkx
MDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLQlwYW5kCSV4bW04LCV4
bW0xNAotCW1vdmFwcwkleG1tMTEsJXhtbTEyCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0MAotCXB4
b3IJJXhtbTE0LCV4bW0xNQotCW1vdmRxYQkleG1tOSwleG1tMTQKLS5ieXRlCTEwMiwxNSw1Niwy
MjAsMjQ4Ci0JbW92dXBzCS00OCglcmN4KSwleG1tMAotCi0JcGFkZGQJJXhtbTksJXhtbTkKLS5i
eXRlCTEwMiwxNSw1NiwyMjAsMjA5Ci0JcHhvcgkleG1tMTUsJXhtbTExCi0JcHNyYWQJJDMxLCV4
bW0xNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKLQlwYWRkcQkleG1tMTUsJXhtbTE1Ci0JcGFu
ZAkleG1tOCwleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYs
MjIwLDIzMwotCW1vdmRxYQkleG1tMTMsNDgoJXJzcCkKLQlweG9yCSV4bW0xNCwleG1tMTUKLS5i
eXRlCTEwMiwxNSw1NiwyMjAsMjQxCi0JbW92YXBzCSV4bW0xMiwleG1tMTMKLQltb3ZkcWEJJXht
bTksJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OQotCW1vdnVwcwktMzIoJXJjeCksJXht
bTEKLQotCXBhZGRkCSV4bW05LCV4bW05Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOAotCXB4b3IJ
JXhtbTE1LCV4bW0xMgotCXBzcmFkCSQzMSwleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2
Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTE0Ci0uYnl0ZQkxMDIsMTUs
NTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLS5ieXRlCTEwMiwxNSw1NiwyMjAs
MjQwCi0JcHhvcgkleG1tMTQsJXhtbTE1Ci0JbW92YXBzCSV4bW0xMywleG1tMTQKLS5ieXRlCTEw
MiwxNSw1NiwyMjAsMjQ4Ci0KLQltb3ZkcWEJJXhtbTksJXhtbTAKLQlwYWRkZAkleG1tOSwleG1t
OQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLQlweG9yCSV4bW0xNSwleG1tMTMKLQlwc3JhZAkk
MzEsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQot
CXBhbmQJJXhtbTgsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0ZQkxMDIsMTUs
NTYsMjIwLDIzMwotCXB4b3IJJXhtbTAsJXhtbTE1Ci0JbW92dXBzCSglcmJwKSwleG1tMAotLmJ5
dGUJMTAyLDE1LDU2LDIyMCwyNDEKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ5Ci0JbW92dXBzCTE2
KCVyYnApLCV4bW0xCi0KLQlweG9yCSV4bW0xNSwleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjEs
ODQsMzYsMAotCXBzcmFkCSQzMSwleG1tOQotCXBhZGRxCSV4bW0xNSwleG1tMTUKLS5ieXRlCTEw
MiwxNSw1NiwyMjEsOTIsMzYsMTYKLS5ieXRlCTEwMiwxNSw1NiwyMjEsMTAwLDM2LDMyCi0JcGFu
ZAkleG1tOCwleG1tOQotCW1vdnEJJXIxMCwlcmF4Ci0uYnl0ZQkxMDIsMTUsNTYsMjIxLDEwOCwz
Niw0OAotLmJ5dGUJMTAyLDE1LDU2LDIyMSwxMTYsMzYsNjQKLS5ieXRlCTEwMiwxNSw1NiwyMjEs
MTI0LDM2LDgwCi0JcHhvcgkleG1tOSwleG1tMTUKLQotCWxlYXEJOTYoJXJzaSksJXJzaQotCW1v
dnVwcwkleG1tMiwtOTYoJXJzaSkKLQltb3Z1cHMJJXhtbTMsLTgwKCVyc2kpCi0JbW92dXBzCSV4
bW00LC02NCglcnNpKQotCW1vdnVwcwkleG1tNSwtNDgoJXJzaSkKLQltb3Z1cHMJJXhtbTYsLTMy
KCVyc2kpCi0JbW92dXBzCSV4bW03LC0xNiglcnNpKQotCXN1YnEJJDk2LCVyZHgKLQlqbmMJLkx4
dHNfZW5jX2dyYW5kbG9vcAotCi0JbW92bAkkMTYrOTYsJWVheAotCXN1YmwJJXIxMGQsJWVheAot
CW1vdnEJJXJicCwlcmN4Ci0Jc2hybAkkNCwlZWF4Ci0KLS5MeHRzX2VuY19zaG9ydDoKLQotCW1v
dmwJJWVheCwlcjEwZAotCXB4b3IJJXhtbTAsJXhtbTEwCi0JYWRkcQkkOTYsJXJkeAotCWp6CS5M
eHRzX2VuY19kb25lCi0KLQlweG9yCSV4bW0wLCV4bW0xMQotCWNtcHEJJDB4MjAsJXJkeAotCWpi
CS5MeHRzX2VuY19vbmUKLQlweG9yCSV4bW0wLCV4bW0xMgotCWplCS5MeHRzX2VuY190d28KLQot
CXB4b3IJJXhtbTAsJXhtbTEzCi0JY21wcQkkMHg0MCwlcmR4Ci0JamIJLkx4dHNfZW5jX3RocmVl
Ci0JcHhvcgkleG1tMCwleG1tMTQKLQlqZQkuTHh0c19lbmNfZm91cgotCi0JbW92ZHF1CSglcmRp
KSwleG1tMgotCW1vdmRxdQkxNiglcmRpKSwleG1tMwotCW1vdmRxdQkzMiglcmRpKSwleG1tNAot
CXB4b3IJJXhtbTEwLCV4bW0yCi0JbW92ZHF1CTQ4KCVyZGkpLCV4bW01Ci0JcHhvcgkleG1tMTEs
JXhtbTMKLQltb3ZkcXUJNjQoJXJkaSksJXhtbTYKLQlsZWFxCTgwKCVyZGkpLCVyZGkKLQlweG9y
CSV4bW0xMiwleG1tNAotCXB4b3IJJXhtbTEzLCV4bW01Ci0JcHhvcgkleG1tMTQsJXhtbTYKLQlw
eG9yCSV4bW03LCV4bW03Ci0KLQljYWxsCV9hZXNuaV9lbmNyeXB0NgotCi0JeG9ycHMJJXhtbTEw
LCV4bW0yCi0JbW92ZHFhCSV4bW0xNSwleG1tMTAKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3Jw
cwkleG1tMTIsJXhtbTQKLQltb3ZkcXUJJXhtbTIsKCVyc2kpCi0JeG9ycHMJJXhtbTEzLCV4bW01
Ci0JbW92ZHF1CSV4bW0zLDE2KCVyc2kpCi0JeG9ycHMJJXhtbTE0LCV4bW02Ci0JbW92ZHF1CSV4
bW00LDMyKCVyc2kpCi0JbW92ZHF1CSV4bW01LDQ4KCVyc2kpCi0JbW92ZHF1CSV4bW02LDY0KCVy
c2kpCi0JbGVhcQk4MCglcnNpKSwlcnNpCi0Jam1wCS5MeHRzX2VuY19kb25lCi0KLS5hbGlnbgkx
NgotLkx4dHNfZW5jX29uZToKLQltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JbGVhcQkxNiglcmRpKSwl
cmRpCi0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnVwcwkx
NiglcmN4KSwleG1tMQotCWxlYXEJMzIoJXJjeCksJXJjeAotCXhvcnBzCSV4bW0wLCV4bW0yCi0u
TG9vcF9lbmMxXzk6Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQotCWRlY2wJJWVheAotCW1vdnVw
cwkoJXJjeCksJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQlqbnoJLkxvb3BfZW5jMV85Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIxLDIwOQotCXhvcnBzCSV4bW0xMCwleG1tMgotCW1vdmRxYQkleG1t
MTEsJXhtbTEwCi0JbW92dXBzCSV4bW0yLCglcnNpKQotCWxlYXEJMTYoJXJzaSksJXJzaQotCWpt
cAkuTHh0c19lbmNfZG9uZQotCi0uYWxpZ24JMTYKLS5MeHRzX2VuY190d286Ci0JbW92dXBzCSgl
cmRpKSwleG1tMgotCW1vdnVwcwkxNiglcmRpKSwleG1tMwotCWxlYXEJMzIoJXJkaSksJXJkaQot
CXhvcnBzCSV4bW0xMCwleG1tMgotCXhvcnBzCSV4bW0xMSwleG1tMwotCi0JY2FsbAlfYWVzbmlf
ZW5jcnlwdDIKLQotCXhvcnBzCSV4bW0xMCwleG1tMgotCW1vdmRxYQkleG1tMTIsJXhtbTEwCi0J
eG9ycHMJJXhtbTExLCV4bW0zCi0JbW92dXBzCSV4bW0yLCglcnNpKQotCW1vdnVwcwkleG1tMywx
NiglcnNpKQotCWxlYXEJMzIoJXJzaSksJXJzaQotCWptcAkuTHh0c19lbmNfZG9uZQotCi0uYWxp
Z24JMTYKLS5MeHRzX2VuY190aHJlZToKLQltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JbW92dXBzCTE2
KCVyZGkpLCV4bW0zCi0JbW92dXBzCTMyKCVyZGkpLCV4bW00Ci0JbGVhcQk0OCglcmRpKSwlcmRp
Ci0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JeG9ycHMJJXhtbTExLCV4bW0zCi0JeG9ycHMJJXhtbTEy
LCV4bW00Ci0KLQljYWxsCV9hZXNuaV9lbmNyeXB0MwotCi0JeG9ycHMJJXhtbTEwLCV4bW0yCi0J
bW92ZHFhCSV4bW0xMywleG1tMTAKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3JwcwkleG1tMTIs
JXhtbTQKLQltb3Z1cHMJJXhtbTIsKCVyc2kpCi0JbW92dXBzCSV4bW0zLDE2KCVyc2kpCi0JbW92
dXBzCSV4bW00LDMyKCVyc2kpCi0JbGVhcQk0OCglcnNpKSwlcnNpCi0Jam1wCS5MeHRzX2VuY19k
b25lCi0KLS5hbGlnbgkxNgotLkx4dHNfZW5jX2ZvdXI6Ci0JbW92dXBzCSglcmRpKSwleG1tMgot
CW1vdnVwcwkxNiglcmRpKSwleG1tMwotCW1vdnVwcwkzMiglcmRpKSwleG1tNAotCXhvcnBzCSV4
bW0xMCwleG1tMgotCW1vdnVwcwk0OCglcmRpKSwleG1tNQotCWxlYXEJNjQoJXJkaSksJXJkaQot
CXhvcnBzCSV4bW0xMSwleG1tMwotCXhvcnBzCSV4bW0xMiwleG1tNAotCXhvcnBzCSV4bW0xMywl
eG1tNQotCi0JY2FsbAlfYWVzbmlfZW5jcnlwdDQKLQotCXB4b3IJJXhtbTEwLCV4bW0yCi0JbW92
ZHFhCSV4bW0xNCwleG1tMTAKLQlweG9yCSV4bW0xMSwleG1tMwotCXB4b3IJJXhtbTEyLCV4bW00
Ci0JbW92ZHF1CSV4bW0yLCglcnNpKQotCXB4b3IJJXhtbTEzLCV4bW01Ci0JbW92ZHF1CSV4bW0z
LDE2KCVyc2kpCi0JbW92ZHF1CSV4bW00LDMyKCVyc2kpCi0JbW92ZHF1CSV4bW01LDQ4KCVyc2kp
Ci0JbGVhcQk2NCglcnNpKSwlcnNpCi0Jam1wCS5MeHRzX2VuY19kb25lCi0KLS5hbGlnbgkxNgot
Lkx4dHNfZW5jX2RvbmU6Ci0JYW5kcQkkMTUsJXI5Ci0JanoJLkx4dHNfZW5jX3JldAotCW1vdnEJ
JXI5LCVyZHgKLQotLkx4dHNfZW5jX3N0ZWFsOgotCW1vdnpibAkoJXJkaSksJWVheAotCW1vdnpi
bAktMTYoJXJzaSksJWVjeAotCWxlYXEJMSglcmRpKSwlcmRpCi0JbW92YgklYWwsLTE2KCVyc2kp
Ci0JbW92YgklY2wsMCglcnNpKQotCWxlYXEJMSglcnNpKSwlcnNpCi0Jc3VicQkkMSwlcmR4Ci0J
am56CS5MeHRzX2VuY19zdGVhbAotCi0Jc3VicQklcjksJXJzaQotCW1vdnEJJXJicCwlcmN4Ci0J
bW92bAklcjEwZCwlZWF4Ci0KLQltb3Z1cHMJLTE2KCVyc2kpLCV4bW0yCi0JeG9ycHMJJXhtbTEw
LCV4bW0yCi0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnVwcwkxNiglcmN4KSwleG1tMQotCWxl
YXEJMzIoJXJjeCksJXJjeAotCXhvcnBzCSV4bW0wLCV4bW0yCi0uTG9vcF9lbmMxXzEwOgotLmJ5
dGUJMTAyLDE1LDU2LDIyMCwyMDkKLQlkZWNsCSVlYXgKLQltb3Z1cHMJKCVyY3gpLCV4bW0xCi0J
bGVhcQkxNiglcmN4KSwlcmN4Ci0Jam56CS5Mb29wX2VuYzFfMTAKLS5ieXRlCTEwMiwxNSw1Niwy
MjEsMjA5Ci0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JbW92dXBzCSV4bW0yLC0xNiglcnNpKQotCi0u
THh0c19lbmNfcmV0OgotCXhvcnBzCSV4bW0wLCV4bW0wCi0JcHhvcgkleG1tMSwleG1tMQotCXB4
b3IJJXhtbTIsJXhtbTIKLQlweG9yCSV4bW0zLCV4bW0zCi0JcHhvcgkleG1tNCwleG1tNAotCXB4
b3IJJXhtbTUsJXhtbTUKLQlweG9yCSV4bW02LCV4bW02Ci0JcHhvcgkleG1tNywleG1tNwotCW1v
dmFwcwkleG1tMCwwKCVyc3ApCi0JcHhvcgkleG1tOCwleG1tOAotCW1vdmFwcwkleG1tMCwxNigl
cnNwKQotCXB4b3IJJXhtbTksJXhtbTkKLQltb3ZhcHMJJXhtbTAsMzIoJXJzcCkKLQlweG9yCSV4
bW0xMCwleG1tMTAKLQltb3ZhcHMJJXhtbTAsNDgoJXJzcCkKLQlweG9yCSV4bW0xMSwleG1tMTEK
LQltb3ZhcHMJJXhtbTAsNjQoJXJzcCkKLQlweG9yCSV4bW0xMiwleG1tMTIKLQltb3ZhcHMJJXht
bTAsODAoJXJzcCkKLQlweG9yCSV4bW0xMywleG1tMTMKLQltb3ZhcHMJJXhtbTAsOTYoJXJzcCkK
LQlweG9yCSV4bW0xNCwleG1tMTQKLQlweG9yCSV4bW0xNSwleG1tMTUKLQltb3ZxCS04KCVyMTEp
LCVyYnAKLS5jZmlfcmVzdG9yZQklcmJwCi0JbGVhcQkoJXIxMSksJXJzcAotLmNmaV9kZWZfY2Zh
X3JlZ2lzdGVyCSVyc3AKLS5MeHRzX2VuY19lcGlsb2d1ZToKLQkuYnl0ZQkweGYzLDB4YzMKLS5j
ZmlfZW5kcHJvYwkKLS5zaXplCWFlc19od194dHNfZW5jcnlwdCwuLWFlc19od194dHNfZW5jcnlw
dAotLmdsb2JsCWFlc19od194dHNfZGVjcnlwdAotLmhpZGRlbiBhZXNfaHdfeHRzX2RlY3J5cHQK
LS50eXBlCWFlc19od194dHNfZGVjcnlwdCxAZnVuY3Rpb24KLS5hbGlnbgkxNgotYWVzX2h3X3h0
c19kZWNyeXB0OgotLmNmaV9zdGFydHByb2MJCi0JbGVhcQkoJXJzcCksJXIxMQotLmNmaV9kZWZf
Y2ZhX3JlZ2lzdGVyCSVyMTEKLQlwdXNocQklcmJwCi0uY2ZpX29mZnNldAklcmJwLC0xNgotCXN1
YnEJJDExMiwlcnNwCi0JYW5kcQkkLTE2LCVyc3AKLQltb3Z1cHMJKCVyOSksJXhtbTIKLQltb3Zs
CTI0MCglcjgpLCVlYXgKLQltb3ZsCTI0MCglcmN4KSwlcjEwZAotCW1vdnVwcwkoJXI4KSwleG1t
MAotCW1vdnVwcwkxNiglcjgpLCV4bW0xCi0JbGVhcQkzMiglcjgpLCVyOAotCXhvcnBzCSV4bW0w
LCV4bW0yCi0uTG9vcF9lbmMxXzExOgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLQlkZWNsCSVl
YXgKLQltb3Z1cHMJKCVyOCksJXhtbTEKLQlsZWFxCTE2KCVyOCksJXI4Ci0Jam56CS5Mb29wX2Vu
YzFfMTEKLS5ieXRlCTEwMiwxNSw1NiwyMjEsMjA5Ci0JeG9ybAklZWF4LCVlYXgKLQl0ZXN0cQkk
MTUsJXJkeAotCXNldG56CSVhbAotCXNobHEJJDQsJXJheAotCXN1YnEJJXJheCwlcmR4Ci0KLQlt
b3Z1cHMJKCVyY3gpLCV4bW0wCi0JbW92cQklcmN4LCVyYnAKLQltb3ZsCSVyMTBkLCVlYXgKLQlz
aGxsCSQ0LCVyMTBkCi0JbW92cQklcmR4LCVyOQotCWFuZHEJJC0xNiwlcmR4Ci0KLQltb3Z1cHMJ
MTYoJXJjeCwlcjEwLDEpLCV4bW0xCi0KLQltb3ZkcWEJLkx4dHNfbWFnaWMoJXJpcCksJXhtbTgK
LQltb3ZkcWEJJXhtbTIsJXhtbTE1Ci0JcHNodWZkCSQweDVmLCV4bW0yLCV4bW05Ci0JcHhvcgkl
eG1tMCwleG1tMQotCW1vdmRxYQkleG1tOSwleG1tMTQKLQlwYWRkZAkleG1tOSwleG1tOQotCW1v
dmRxYQkleG1tMTUsJXhtbTEwCi0JcHNyYWQJJDMxLCV4bW0xNAotCXBhZGRxCSV4bW0xNSwleG1t
MTUKLQlwYW5kCSV4bW04LCV4bW0xNAotCXB4b3IJJXhtbTAsJXhtbTEwCi0JcHhvcgkleG1tMTQs
JXhtbTE1Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRkCSV4bW05LCV4bW05Ci0JbW92ZHFh
CSV4bW0xNSwleG1tMTEKLQlwc3JhZAkkMzEsJXhtbTE0Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQot
CXBhbmQJJXhtbTgsJXhtbTE0Ci0JcHhvcgkleG1tMCwleG1tMTEKLQlweG9yCSV4bW0xNCwleG1t
MTUKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0JcGFkZGQJJXhtbTksJXhtbTkKLQltb3ZkcWEJJXht
bTE1LCV4bW0xMgotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkleG1tMTUsJXhtbTE1Ci0JcGFu
ZAkleG1tOCwleG1tMTQKLQlweG9yCSV4bW0wLCV4bW0xMgotCXB4b3IJJXhtbTE0LCV4bW0xNQot
CW1vdmRxYQkleG1tOSwleG1tMTQKLQlwYWRkZAkleG1tOSwleG1tOQotCW1vdmRxYQkleG1tMTUs
JXhtbTEzCi0JcHNyYWQJJDMxLCV4bW0xNAotCXBhZGRxCSV4bW0xNSwleG1tMTUKLQlwYW5kCSV4
bW04LCV4bW0xNAotCXB4b3IJJXhtbTAsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE1Ci0JbW92
ZHFhCSV4bW0xNSwleG1tMTQKLQlwc3JhZAkkMzEsJXhtbTkKLQlwYWRkcQkleG1tMTUsJXhtbTE1
Ci0JcGFuZAkleG1tOCwleG1tOQotCXB4b3IJJXhtbTAsJXhtbTE0Ci0JcHhvcgkleG1tOSwleG1t
MTUKLQltb3ZhcHMJJXhtbTEsOTYoJXJzcCkKLQotCXN1YnEJJDk2LCVyZHgKLQlqYwkuTHh0c19k
ZWNfc2hvcnQKLQotCW1vdmwJJDE2Kzk2LCVlYXgKLQlsZWFxCTMyKCVyYnAsJXIxMCwxKSwlcmN4
Ci0Jc3VicQklcjEwLCVyYXgKLQltb3Z1cHMJMTYoJXJicCksJXhtbTEKLQltb3ZxCSVyYXgsJXIx
MAotCWxlYXEJLkx4dHNfbWFnaWMoJXJpcCksJXI4Ci0Jam1wCS5MeHRzX2RlY19ncmFuZGxvb3AK
LQotLmFsaWduCTMyCi0uTHh0c19kZWNfZ3JhbmRsb29wOgotCW1vdmRxdQkwKCVyZGkpLCV4bW0y
Ci0JbW92ZHFhCSV4bW0wLCV4bW04Ci0JbW92ZHF1CTE2KCVyZGkpLCV4bW0zCi0JcHhvcgkleG1t
MTAsJXhtbTIKLQltb3ZkcXUJMzIoJXJkaSksJXhtbTQKLQlweG9yCSV4bW0xMSwleG1tMwotLmJ5
dGUJMTAyLDE1LDU2LDIyMiwyMDkKLQltb3ZkcXUJNDgoJXJkaSksJXhtbTUKLQlweG9yCSV4bW0x
MiwleG1tNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKLQltb3ZkcXUJNjQoJXJkaSksJXhtbTYK
LQlweG9yCSV4bW0xMywleG1tNQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjUKLQltb3ZkcXUJODAo
JXJkaSksJXhtbTcKLQlweG9yCSV4bW0xNSwleG1tOAotCW1vdmRxYQk5NiglcnNwKSwleG1tOQot
CXB4b3IJJXhtbTE0LCV4bW02Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotCW1vdnVwcwkzMigl
cmJwKSwleG1tMAotCWxlYXEJOTYoJXJkaSksJXJkaQotCXB4b3IJJXhtbTgsJXhtbTcKLQotCXB4
b3IJJXhtbTksJXhtbTEwCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0MQotCXB4b3IJJXhtbTksJXht
bTExCi0JbW92ZHFhCSV4bW0xMCwwKCVyc3ApCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OQotCW1v
dnVwcwk0OCglcmJwKSwleG1tMQotCXB4b3IJJXhtbTksJXhtbTEyCi0KLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjA4Ci0JcHhvcgkleG1tOSwleG1tMTMKLQltb3ZkcWEJJXhtbTExLDE2KCVyc3ApCi0u
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIxNgotCXB4b3IJJXhtbTksJXhtbTE0Ci0JbW92ZHFhCSV4bW0x
MiwzMiglcnNwKQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjQKLS5ieXRlCTEwMiwxNSw1NiwyMjIs
MjMyCi0JcHhvcgkleG1tOSwleG1tOAotCW1vdmRxYQkleG1tMTQsNjQoJXJzcCkKLS5ieXRlCTEw
MiwxNSw1NiwyMjIsMjQwCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OAotCW1vdnVwcwk2NCglcmJw
KSwleG1tMAotCW1vdmRxYQkleG1tOCw4MCglcnNwKQotCXBzaHVmZAkkMHg1ZiwleG1tMTUsJXht
bTkKLQlqbXAJLkx4dHNfZGVjX2xvb3A2Ci0uYWxpZ24JMzIKLS5MeHRzX2RlY19sb29wNjoKLS5i
eXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJMTAy
LDE1LDU2LDIyMiwyMjUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCi0uYnl0ZQkxMDIsMTUsNTYs
MjIyLDI0MQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDkKLQltb3Z1cHMJLTY0KCVyY3gsJXJheCwx
KSwleG1tMQotCWFkZHEJJDMyLCVyYXgKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDgKLS5ieXRl
CTEwMiwxNSw1NiwyMjIsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1
LDU2LDIyMiwyMzIKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQwCi0uYnl0ZQkxMDIsMTUsNTYsMjIy
LDI0OAotCW1vdnVwcwktODAoJXJjeCwlcmF4LDEpLCV4bW0wCi0Jam56CS5MeHRzX2RlY19sb29w
NgotCi0JbW92ZHFhCSglcjgpLCV4bW04Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRkCSV4
bW05LCV4bW05Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQotCXBhZGRxCSV4bW0xNSwleG1tMTUK
LQlwc3JhZAkkMzEsJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotCXBhbmQJJXhtbTgs
JXhtbTE0Ci0JbW92dXBzCSglcmJwKSwleG1tMTAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjI1Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDEKLQlweG9yCSV4
bW0xNCwleG1tMTUKLQltb3ZhcHMJJXhtbTEwLCV4bW0xMQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
NDkKLQltb3Z1cHMJLTY0KCVyY3gpLCV4bW0xCi0KLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIyLDIwOAotCXBhZGRkCSV4bW05LCV4bW05Ci0JcHhvcgkleG1tMTUsJXht
bTEwCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNgotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkl
eG1tMTUsJXhtbTE1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIy
MiwyMzIKLQlwYW5kCSV4bW04LCV4bW0xNAotCW1vdmFwcwkleG1tMTEsJXhtbTEyCi0uYnl0ZQkx
MDIsMTUsNTYsMjIyLDI0MAotCXB4b3IJJXhtbTE0LCV4bW0xNQotCW1vdmRxYQkleG1tOSwleG1t
MTQKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4Ci0JbW92dXBzCS00OCglcmN4KSwleG1tMAotCi0J
cGFkZGQJJXhtbTksJXhtbTkKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0JcHhvcgkleG1tMTUs
JXhtbTExCi0JcHNyYWQJJDMxLCV4bW0xNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKLQlwYWRk
cQkleG1tMTUsJXhtbTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjIs
MjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotCW1vdmRxYQkleG1tMTMsNDgoJXJzcCkKLQlw
eG9yCSV4bW0xNCwleG1tMTUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQxCi0JbW92YXBzCSV4bW0x
MiwleG1tMTMKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OQot
CW1vdnVwcwktMzIoJXJjeCksJXhtbTEKLQotCXBhZGRkCSV4bW05LCV4bW05Ci0uYnl0ZQkxMDIs
MTUsNTYsMjIyLDIwOAotCXB4b3IJJXhtbTE1LCV4bW0xMgotCXBzcmFkCSQzMSwleG1tMTQKLS5i
eXRlCTEwMiwxNSw1NiwyMjIsMjE2Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgs
JXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMzIK
LS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQwCi0JcHhvcgkleG1tMTQsJXhtbTE1Ci0JbW92YXBzCSV4
bW0xMywleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4Ci0KLQltb3ZkcWEJJXhtbTksJXht
bTAKLQlwYWRkZAkleG1tOSwleG1tOQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLQlweG9yCSV4
bW0xNSwleG1tMTMKLQlwc3JhZAkkMzEsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjE3Ci0J
cGFkZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTAKLS5ieXRlCTEwMiwxNSw1Niwy
MjIsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotCXB4b3IJJXhtbTAsJXhtbTE1Ci0JbW92
dXBzCSglcmJwKSwleG1tMAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDEKLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjQ5Ci0JbW92dXBzCTE2KCVyYnApLCV4bW0xCi0KLQlweG9yCSV4bW0xNSwleG1tMTQK
LS5ieXRlCTEwMiwxNSw1NiwyMjMsODQsMzYsMAotCXBzcmFkCSQzMSwleG1tOQotCXBhZGRxCSV4
bW0xNSwleG1tMTUKLS5ieXRlCTEwMiwxNSw1NiwyMjMsOTIsMzYsMTYKLS5ieXRlCTEwMiwxNSw1
NiwyMjMsMTAwLDM2LDMyCi0JcGFuZAkleG1tOCwleG1tOQotCW1vdnEJJXIxMCwlcmF4Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIzLDEwOCwzNiw0OAotLmJ5dGUJMTAyLDE1LDU2LDIyMywxMTYsMzYsNjQK
LS5ieXRlCTEwMiwxNSw1NiwyMjMsMTI0LDM2LDgwCi0JcHhvcgkleG1tOSwleG1tMTUKLQotCWxl
YXEJOTYoJXJzaSksJXJzaQotCW1vdnVwcwkleG1tMiwtOTYoJXJzaSkKLQltb3Z1cHMJJXhtbTMs
LTgwKCVyc2kpCi0JbW92dXBzCSV4bW00LC02NCglcnNpKQotCW1vdnVwcwkleG1tNSwtNDgoJXJz
aSkKLQltb3Z1cHMJJXhtbTYsLTMyKCVyc2kpCi0JbW92dXBzCSV4bW03LC0xNiglcnNpKQotCXN1
YnEJJDk2LCVyZHgKLQlqbmMJLkx4dHNfZGVjX2dyYW5kbG9vcAotCi0JbW92bAkkMTYrOTYsJWVh
eAotCXN1YmwJJXIxMGQsJWVheAotCW1vdnEJJXJicCwlcmN4Ci0Jc2hybAkkNCwlZWF4Ci0KLS5M
eHRzX2RlY19zaG9ydDoKLQotCW1vdmwJJWVheCwlcjEwZAotCXB4b3IJJXhtbTAsJXhtbTEwCi0J
cHhvcgkleG1tMCwleG1tMTEKLQlhZGRxCSQ5NiwlcmR4Ci0JanoJLkx4dHNfZGVjX2RvbmUKLQot
CXB4b3IJJXhtbTAsJXhtbTEyCi0JY21wcQkkMHgyMCwlcmR4Ci0JamIJLkx4dHNfZGVjX29uZQot
CXB4b3IJJXhtbTAsJXhtbTEzCi0JamUJLkx4dHNfZGVjX3R3bwotCi0JcHhvcgkleG1tMCwleG1t
MTQKLQljbXBxCSQweDQwLCVyZHgKLQlqYgkuTHh0c19kZWNfdGhyZWUKLQlqZQkuTHh0c19kZWNf
Zm91cgotCi0JbW92ZHF1CSglcmRpKSwleG1tMgotCW1vdmRxdQkxNiglcmRpKSwleG1tMwotCW1v
dmRxdQkzMiglcmRpKSwleG1tNAotCXB4b3IJJXhtbTEwLCV4bW0yCi0JbW92ZHF1CTQ4KCVyZGkp
LCV4bW01Ci0JcHhvcgkleG1tMTEsJXhtbTMKLQltb3ZkcXUJNjQoJXJkaSksJXhtbTYKLQlsZWFx
CTgwKCVyZGkpLCVyZGkKLQlweG9yCSV4bW0xMiwleG1tNAotCXB4b3IJJXhtbTEzLCV4bW01Ci0J
cHhvcgkleG1tMTQsJXhtbTYKLQotCWNhbGwJX2Flc25pX2RlY3J5cHQ2Ci0KLQl4b3JwcwkleG1t
MTAsJXhtbTIKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3JwcwkleG1tMTIsJXhtbTQKLQltb3Zk
cXUJJXhtbTIsKCVyc2kpCi0JeG9ycHMJJXhtbTEzLCV4bW01Ci0JbW92ZHF1CSV4bW0zLDE2KCVy
c2kpCi0JeG9ycHMJJXhtbTE0LCV4bW02Ci0JbW92ZHF1CSV4bW00LDMyKCVyc2kpCi0JcHhvcgkl
eG1tMTQsJXhtbTE0Ci0JbW92ZHF1CSV4bW01LDQ4KCVyc2kpCi0JcGNtcGd0ZAkleG1tMTUsJXht
bTE0Ci0JbW92ZHF1CSV4bW02LDY0KCVyc2kpCi0JbGVhcQk4MCglcnNpKSwlcnNpCi0JcHNodWZk
CSQweDEzLCV4bW0xNCwleG1tMTEKLQlhbmRxCSQxNSwlcjkKLQlqegkuTHh0c19kZWNfcmV0Ci0K
LQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBhZGRxCSV4bW0xNSwleG1tMTUKLQlwYW5kCSV4bW04
LCV4bW0xMQotCXB4b3IJJXhtbTE1LCV4bW0xMQotCWptcAkuTHh0c19kZWNfZG9uZTIKLQotLmFs
aWduCTE2Ci0uTHh0c19kZWNfb25lOgotCW1vdnVwcwkoJXJkaSksJXhtbTIKLQlsZWFxCTE2KCVy
ZGkpLCVyZGkKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Z1cHMJKCVyY3gpLCV4bW0wCi0JbW92
dXBzCTE2KCVyY3gpLCV4bW0xCi0JbGVhcQkzMiglcmN4KSwlcmN4Ci0JeG9ycHMJJXhtbTAsJXht
bTIKLS5Mb29wX2RlYzFfMTI6Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQotCWRlY2wJJWVheAot
CW1vdnVwcwkoJXJjeCksJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQlqbnoJLkxvb3BfZGVj
MV8xMgotLmJ5dGUJMTAyLDE1LDU2LDIyMywyMDkKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Zk
cWEJJXhtbTExLCV4bW0xMAotCW1vdnVwcwkleG1tMiwoJXJzaSkKLQltb3ZkcWEJJXhtbTEyLCV4
bW0xMQotCWxlYXEJMTYoJXJzaSksJXJzaQotCWptcAkuTHh0c19kZWNfZG9uZQotCi0uYWxpZ24J
MTYKLS5MeHRzX2RlY190d286Ci0JbW92dXBzCSglcmRpKSwleG1tMgotCW1vdnVwcwkxNiglcmRp
KSwleG1tMwotCWxlYXEJMzIoJXJkaSksJXJkaQotCXhvcnBzCSV4bW0xMCwleG1tMgotCXhvcnBz
CSV4bW0xMSwleG1tMwotCi0JY2FsbAlfYWVzbmlfZGVjcnlwdDIKLQotCXhvcnBzCSV4bW0xMCwl
eG1tMgotCW1vdmRxYQkleG1tMTIsJXhtbTEwCi0JeG9ycHMJJXhtbTExLCV4bW0zCi0JbW92ZHFh
CSV4bW0xMywleG1tMTEKLQltb3Z1cHMJJXhtbTIsKCVyc2kpCi0JbW92dXBzCSV4bW0zLDE2KCVy
c2kpCi0JbGVhcQkzMiglcnNpKSwlcnNpCi0Jam1wCS5MeHRzX2RlY19kb25lCi0KLS5hbGlnbgkx
NgotLkx4dHNfZGVjX3RocmVlOgotCW1vdnVwcwkoJXJkaSksJXhtbTIKLQltb3Z1cHMJMTYoJXJk
aSksJXhtbTMKLQltb3Z1cHMJMzIoJXJkaSksJXhtbTQKLQlsZWFxCTQ4KCVyZGkpLCVyZGkKLQl4
b3JwcwkleG1tMTAsJXhtbTIKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3JwcwkleG1tMTIsJXht
bTQKLQotCWNhbGwJX2Flc25pX2RlY3J5cHQzCi0KLQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Zk
cWEJJXhtbTEzLCV4bW0xMAotCXhvcnBzCSV4bW0xMSwleG1tMwotCW1vdmRxYQkleG1tMTQsJXht
bTExCi0JeG9ycHMJJXhtbTEyLCV4bW00Ci0JbW92dXBzCSV4bW0yLCglcnNpKQotCW1vdnVwcwkl
eG1tMywxNiglcnNpKQotCW1vdnVwcwkleG1tNCwzMiglcnNpKQotCWxlYXEJNDgoJXJzaSksJXJz
aQotCWptcAkuTHh0c19kZWNfZG9uZQotCi0uYWxpZ24JMTYKLS5MeHRzX2RlY19mb3VyOgotCW1v
dnVwcwkoJXJkaSksJXhtbTIKLQltb3Z1cHMJMTYoJXJkaSksJXhtbTMKLQltb3Z1cHMJMzIoJXJk
aSksJXhtbTQKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Z1cHMJNDgoJXJkaSksJXhtbTUKLQls
ZWFxCTY0KCVyZGkpLCVyZGkKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3JwcwkleG1tMTIsJXht
bTQKLQl4b3JwcwkleG1tMTMsJXhtbTUKLQotCWNhbGwJX2Flc25pX2RlY3J5cHQ0Ci0KLQlweG9y
CSV4bW0xMCwleG1tMgotCW1vdmRxYQkleG1tMTQsJXhtbTEwCi0JcHhvcgkleG1tMTEsJXhtbTMK
LQltb3ZkcWEJJXhtbTE1LCV4bW0xMQotCXB4b3IJJXhtbTEyLCV4bW00Ci0JbW92ZHF1CSV4bW0y
LCglcnNpKQotCXB4b3IJJXhtbTEzLCV4bW01Ci0JbW92ZHF1CSV4bW0zLDE2KCVyc2kpCi0JbW92
ZHF1CSV4bW00LDMyKCVyc2kpCi0JbW92ZHF1CSV4bW01LDQ4KCVyc2kpCi0JbGVhcQk2NCglcnNp
KSwlcnNpCi0Jam1wCS5MeHRzX2RlY19kb25lCi0KLS5hbGlnbgkxNgotLkx4dHNfZGVjX2RvbmU6
Ci0JYW5kcQkkMTUsJXI5Ci0JanoJLkx4dHNfZGVjX3JldAotLkx4dHNfZGVjX2RvbmUyOgotCW1v
dnEJJXI5LCVyZHgKLQltb3ZxCSVyYnAsJXJjeAotCW1vdmwJJXIxMGQsJWVheAotCi0JbW92dXBz
CSglcmRpKSwleG1tMgotCXhvcnBzCSV4bW0xMSwleG1tMgotCW1vdnVwcwkoJXJjeCksJXhtbTAK
LQltb3Z1cHMJMTYoJXJjeCksJXhtbTEKLQlsZWFxCTMyKCVyY3gpLCVyY3gKLQl4b3JwcwkleG1t
MCwleG1tMgotLkxvb3BfZGVjMV8xMzoKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0JZGVjbAkl
ZWF4Ci0JbW92dXBzCSglcmN4KSwleG1tMQotCWxlYXEJMTYoJXJjeCksJXJjeAotCWpuegkuTG9v
cF9kZWMxXzEzCi0uYnl0ZQkxMDIsMTUsNTYsMjIzLDIwOQotCXhvcnBzCSV4bW0xMSwleG1tMgot
CW1vdnVwcwkleG1tMiwoJXJzaSkKLQotLkx4dHNfZGVjX3N0ZWFsOgotCW1vdnpibAkxNiglcmRp
KSwlZWF4Ci0JbW92emJsCSglcnNpKSwlZWN4Ci0JbGVhcQkxKCVyZGkpLCVyZGkKLQltb3ZiCSVh
bCwoJXJzaSkKLQltb3ZiCSVjbCwxNiglcnNpKQotCWxlYXEJMSglcnNpKSwlcnNpCi0Jc3VicQkk
MSwlcmR4Ci0Jam56CS5MeHRzX2RlY19zdGVhbAotCi0Jc3VicQklcjksJXJzaQotCW1vdnEJJXJi
cCwlcmN4Ci0JbW92bAklcjEwZCwlZWF4Ci0KLQltb3Z1cHMJKCVyc2kpLCV4bW0yCi0JeG9ycHMJ
JXhtbTEwLCV4bW0yCi0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnVwcwkxNiglcmN4KSwleG1t
MQotCWxlYXEJMzIoJXJjeCksJXJjeAotCXhvcnBzCSV4bW0wLCV4bW0yCi0uTG9vcF9kZWMxXzE0
OgotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLQlkZWNsCSVlYXgKLQltb3Z1cHMJKCVyY3gpLCV4
bW0xCi0JbGVhcQkxNiglcmN4KSwlcmN4Ci0Jam56CS5Mb29wX2RlYzFfMTQKLS5ieXRlCTEwMiwx
NSw1NiwyMjMsMjA5Ci0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JbW92dXBzCSV4bW0yLCglcnNpKQot
Ci0uTHh0c19kZWNfcmV0OgotCXhvcnBzCSV4bW0wLCV4bW0wCi0JcHhvcgkleG1tMSwleG1tMQot
CXB4b3IJJXhtbTIsJXhtbTIKLQlweG9yCSV4bW0zLCV4bW0zCi0JcHhvcgkleG1tNCwleG1tNAot
CXB4b3IJJXhtbTUsJXhtbTUKLQlweG9yCSV4bW02LCV4bW02Ci0JcHhvcgkleG1tNywleG1tNwot
CW1vdmFwcwkleG1tMCwwKCVyc3ApCi0JcHhvcgkleG1tOCwleG1tOAotCW1vdmFwcwkleG1tMCwx
NiglcnNwKQotCXB4b3IJJXhtbTksJXhtbTkKLQltb3ZhcHMJJXhtbTAsMzIoJXJzcCkKLQlweG9y
CSV4bW0xMCwleG1tMTAKLQltb3ZhcHMJJXhtbTAsNDgoJXJzcCkKLQlweG9yCSV4bW0xMSwleG1t
MTEKLQltb3ZhcHMJJXhtbTAsNjQoJXJzcCkKLQlweG9yCSV4bW0xMiwleG1tMTIKLQltb3ZhcHMJ
JXhtbTAsODAoJXJzcCkKLQlweG9yCSV4bW0xMywleG1tMTMKLQltb3ZhcHMJJXhtbTAsOTYoJXJz
cCkKLQlweG9yCSV4bW0xNCwleG1tMTQKLQlweG9yCSV4bW0xNSwleG1tMTUKLQltb3ZxCS04KCVy
MTEpLCVyYnAKLS5jZmlfcmVzdG9yZQklcmJwCi0JbGVhcQkoJXIxMSksJXJzcAotLmNmaV9kZWZf
Y2ZhX3JlZ2lzdGVyCSVyc3AKLS5MeHRzX2RlY19lcGlsb2d1ZToKLQkuYnl0ZQkweGYzLDB4YzMK
LS5jZmlfZW5kcHJvYwkKLS5zaXplCWFlc19od194dHNfZGVjcnlwdCwuLWFlc19od194dHNfZGVj
cnlwdAotLmdsb2JsCWFlc19od19vY2JfZW5jcnlwdAotLmhpZGRlbiBhZXNfaHdfb2NiX2VuY3J5
cHQKLS50eXBlCWFlc19od19vY2JfZW5jcnlwdCxAZnVuY3Rpb24KLS5hbGlnbgkzMgotYWVzX2h3
X29jYl9lbmNyeXB0OgotLmNmaV9zdGFydHByb2MJCi0JbGVhcQkoJXJzcCksJXJheAotCXB1c2hx
CSVyYngKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXJieCwtMTYKLQlw
dXNocQklcmJwCi0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyYnAsLTI0
Ci0JcHVzaHEJJXIxMgotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcjEy
LC0zMgotCXB1c2hxCSVyMTMKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJ
JXIxMywtNDAKLQlwdXNocQklcjE0Ci0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zm
c2V0CSVyMTQsLTQ4Ci0JbW92cQk4KCVyYXgpLCVyYngKLQltb3ZxCTgrOCglcmF4KSwlcmJwCi0K
LQltb3ZsCTI0MCglcmN4KSwlcjEwZAotCW1vdnEJJXJjeCwlcjExCi0Jc2hsbAkkNCwlcjEwZAot
CW1vdnVwcwkoJXJjeCksJXhtbTkKLQltb3Z1cHMJMTYoJXJjeCwlcjEwLDEpLCV4bW0xCi0KLQlt
b3ZkcXUJKCVyOSksJXhtbTE1Ci0JcHhvcgkleG1tMSwleG1tOQotCXB4b3IJJXhtbTEsJXhtbTE1
Ci0KLQltb3ZsCSQxNiszMiwlZWF4Ci0JbGVhcQkzMiglcjExLCVyMTAsMSksJXJjeAotCW1vdnVw
cwkxNiglcjExKSwleG1tMQotCXN1YnEJJXIxMCwlcmF4Ci0JbW92cQklcmF4LCVyMTAKLQotCW1v
dmRxdQkoJXJieCksJXhtbTEwCi0JbW92ZHF1CSglcmJwKSwleG1tOAotCi0JdGVzdHEJJDEsJXI4
Ci0Jam56CS5Mb2NiX2VuY19vZGQKLQotCWJzZnEJJXI4LCVyMTIKLQlhZGRxCSQxLCVyOAotCXNo
bHEJJDQsJXIxMgotCW1vdmRxdQkoJXJieCwlcjEyLDEpLCV4bW03Ci0JbW92ZHF1CSglcmRpKSwl
eG1tMgotCWxlYXEJMTYoJXJkaSksJXJkaQotCi0JY2FsbAlfX29jYl9lbmNyeXB0MQotCi0JbW92
ZHFhCSV4bW03LCV4bW0xNQotCW1vdnVwcwkleG1tMiwoJXJzaSkKLQlsZWFxCTE2KCVyc2kpLCVy
c2kKLQlzdWJxCSQxLCVyZHgKLQlqegkuTG9jYl9lbmNfZG9uZQotCi0uTG9jYl9lbmNfb2RkOgot
CWxlYXEJMSglcjgpLCVyMTIKLQlsZWFxCTMoJXI4KSwlcjEzCi0JbGVhcQk1KCVyOCksJXIxNAot
CWxlYXEJNiglcjgpLCVyOAotCWJzZnEJJXIxMiwlcjEyCi0JYnNmcQklcjEzLCVyMTMKLQlic2Zx
CSVyMTQsJXIxNAotCXNobHEJJDQsJXIxMgotCXNobHEJJDQsJXIxMwotCXNobHEJJDQsJXIxNAot
Ci0Jc3VicQkkNiwlcmR4Ci0JamMJLkxvY2JfZW5jX3Nob3J0Ci0Jam1wCS5Mb2NiX2VuY19ncmFu
ZGxvb3AKLQotLmFsaWduCTMyCi0uTG9jYl9lbmNfZ3JhbmRsb29wOgotCW1vdmRxdQkwKCVyZGkp
LCV4bW0yCi0JbW92ZHF1CTE2KCVyZGkpLCV4bW0zCi0JbW92ZHF1CTMyKCVyZGkpLCV4bW00Ci0J
bW92ZHF1CTQ4KCVyZGkpLCV4bW01Ci0JbW92ZHF1CTY0KCVyZGkpLCV4bW02Ci0JbW92ZHF1CTgw
KCVyZGkpLCV4bW03Ci0JbGVhcQk5NiglcmRpKSwlcmRpCi0KLQljYWxsCV9fb2NiX2VuY3J5cHQ2
Ci0KLQltb3Z1cHMJJXhtbTIsMCglcnNpKQotCW1vdnVwcwkleG1tMywxNiglcnNpKQotCW1vdnVw
cwkleG1tNCwzMiglcnNpKQotCW1vdnVwcwkleG1tNSw0OCglcnNpKQotCW1vdnVwcwkleG1tNiw2
NCglcnNpKQotCW1vdnVwcwkleG1tNyw4MCglcnNpKQotCWxlYXEJOTYoJXJzaSksJXJzaQotCXN1
YnEJJDYsJXJkeAotCWpuYwkuTG9jYl9lbmNfZ3JhbmRsb29wCi0KLS5Mb2NiX2VuY19zaG9ydDoK
LQlhZGRxCSQ2LCVyZHgKLQlqegkuTG9jYl9lbmNfZG9uZQotCi0JbW92ZHF1CTAoJXJkaSksJXht
bTIKLQljbXBxCSQyLCVyZHgKLQlqYgkuTG9jYl9lbmNfb25lCi0JbW92ZHF1CTE2KCVyZGkpLCV4
bW0zCi0JamUJLkxvY2JfZW5jX3R3bwotCi0JbW92ZHF1CTMyKCVyZGkpLCV4bW00Ci0JY21wcQkk
NCwlcmR4Ci0JamIJLkxvY2JfZW5jX3RocmVlCi0JbW92ZHF1CTQ4KCVyZGkpLCV4bW01Ci0JamUJ
LkxvY2JfZW5jX2ZvdXIKLQotCW1vdmRxdQk2NCglcmRpKSwleG1tNgotCXB4b3IJJXhtbTcsJXht
bTcKLQotCWNhbGwJX19vY2JfZW5jcnlwdDYKLQotCW1vdmRxYQkleG1tMTQsJXhtbTE1Ci0JbW92
dXBzCSV4bW0yLDAoJXJzaSkKLQltb3Z1cHMJJXhtbTMsMTYoJXJzaSkKLQltb3Z1cHMJJXhtbTQs
MzIoJXJzaSkKLQltb3Z1cHMJJXhtbTUsNDgoJXJzaSkKLQltb3Z1cHMJJXhtbTYsNjQoJXJzaSkK
LQotCWptcAkuTG9jYl9lbmNfZG9uZQotCi0uYWxpZ24JMTYKLS5Mb2NiX2VuY19vbmU6Ci0JbW92
ZHFhCSV4bW0xMCwleG1tNwotCi0JY2FsbAlfX29jYl9lbmNyeXB0MQotCi0JbW92ZHFhCSV4bW03
LCV4bW0xNQotCW1vdnVwcwkleG1tMiwwKCVyc2kpCi0Jam1wCS5Mb2NiX2VuY19kb25lCi0KLS5h
bGlnbgkxNgotLkxvY2JfZW5jX3R3bzoKLQlweG9yCSV4bW00LCV4bW00Ci0JcHhvcgkleG1tNSwl
eG1tNQotCi0JY2FsbAlfX29jYl9lbmNyeXB0NAotCi0JbW92ZHFhCSV4bW0xMSwleG1tMTUKLQlt
b3Z1cHMJJXhtbTIsMCglcnNpKQotCW1vdnVwcwkleG1tMywxNiglcnNpKQotCi0Jam1wCS5Mb2Ni
X2VuY19kb25lCi0KLS5hbGlnbgkxNgotLkxvY2JfZW5jX3RocmVlOgotCXB4b3IJJXhtbTUsJXht
bTUKLQotCWNhbGwJX19vY2JfZW5jcnlwdDQKLQotCW1vdmRxYQkleG1tMTIsJXhtbTE1Ci0JbW92
dXBzCSV4bW0yLDAoJXJzaSkKLQltb3Z1cHMJJXhtbTMsMTYoJXJzaSkKLQltb3Z1cHMJJXhtbTQs
MzIoJXJzaSkKLQotCWptcAkuTG9jYl9lbmNfZG9uZQotCi0uYWxpZ24JMTYKLS5Mb2NiX2VuY19m
b3VyOgotCWNhbGwJX19vY2JfZW5jcnlwdDQKLQotCW1vdmRxYQkleG1tMTMsJXhtbTE1Ci0JbW92
dXBzCSV4bW0yLDAoJXJzaSkKLQltb3Z1cHMJJXhtbTMsMTYoJXJzaSkKLQltb3Z1cHMJJXhtbTQs
MzIoJXJzaSkKLQltb3Z1cHMJJXhtbTUsNDgoJXJzaSkKLQotLkxvY2JfZW5jX2RvbmU6Ci0JcHhv
cgkleG1tMCwleG1tMTUKLQltb3ZkcXUJJXhtbTgsKCVyYnApCi0JbW92ZHF1CSV4bW0xNSwoJXI5
KQotCi0JeG9ycHMJJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xCi0JcHhvcgkleG1tMiwl
eG1tMgotCXB4b3IJJXhtbTMsJXhtbTMKLQlweG9yCSV4bW00LCV4bW00Ci0JcHhvcgkleG1tNSwl
eG1tNQotCXB4b3IJJXhtbTYsJXhtbTYKLQlweG9yCSV4bW03LCV4bW03Ci0JcHhvcgkleG1tOCwl
eG1tOAotCXB4b3IJJXhtbTksJXhtbTkKLQlweG9yCSV4bW0xMCwleG1tMTAKLQlweG9yCSV4bW0x
MSwleG1tMTEKLQlweG9yCSV4bW0xMiwleG1tMTIKLQlweG9yCSV4bW0xMywleG1tMTMKLQlweG9y
CSV4bW0xNCwleG1tMTQKLQlweG9yCSV4bW0xNSwleG1tMTUKLQlsZWFxCTQwKCVyc3ApLCVyYXgK
LS5jZmlfZGVmX2NmYQklcmF4LDgKLQltb3ZxCS00MCglcmF4KSwlcjE0Ci0uY2ZpX3Jlc3RvcmUJ
JXIxNAotCW1vdnEJLTMyKCVyYXgpLCVyMTMKLS5jZmlfcmVzdG9yZQklcjEzCi0JbW92cQktMjQo
JXJheCksJXIxMgotLmNmaV9yZXN0b3JlCSVyMTIKLQltb3ZxCS0xNiglcmF4KSwlcmJwCi0uY2Zp
X3Jlc3RvcmUJJXJicAotCW1vdnEJLTgoJXJheCksJXJieAotLmNmaV9yZXN0b3JlCSVyYngKLQls
ZWFxCSglcmF4KSwlcnNwCi0uY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJJXJzcAotLkxvY2JfZW5jX2Vw
aWxvZ3VlOgotCS5ieXRlCTB4ZjMsMHhjMwotLmNmaV9lbmRwcm9jCQotLnNpemUJYWVzX2h3X29j
Yl9lbmNyeXB0LC4tYWVzX2h3X29jYl9lbmNyeXB0Ci0KLS50eXBlCV9fb2NiX2VuY3J5cHQ2LEBm
dW5jdGlvbgotLmFsaWduCTMyCi1fX29jYl9lbmNyeXB0NjoKLQlweG9yCSV4bW05LCV4bW0xNQot
CW1vdmRxdQkoJXJieCwlcjEyLDEpLCV4bW0xMQotCW1vdmRxYQkleG1tMTAsJXhtbTEyCi0JbW92
ZHF1CSglcmJ4LCVyMTMsMSksJXhtbTEzCi0JbW92ZHFhCSV4bW0xMCwleG1tMTQKLQlweG9yCSV4
bW0xNSwleG1tMTAKLQltb3ZkcXUJKCVyYngsJXIxNCwxKSwleG1tMTUKLQlweG9yCSV4bW0xMCwl
eG1tMTEKLQlweG9yCSV4bW0yLCV4bW04Ci0JcHhvcgkleG1tMTAsJXhtbTIKLQlweG9yCSV4bW0x
MSwleG1tMTIKLQlweG9yCSV4bW0zLCV4bW04Ci0JcHhvcgkleG1tMTEsJXhtbTMKLQlweG9yCSV4
bW0xMiwleG1tMTMKLQlweG9yCSV4bW00LCV4bW04Ci0JcHhvcgkleG1tMTIsJXhtbTQKLQlweG9y
CSV4bW0xMywleG1tMTQKLQlweG9yCSV4bW01LCV4bW04Ci0JcHhvcgkleG1tMTMsJXhtbTUKLQlw
eG9yCSV4bW0xNCwleG1tMTUKLQlweG9yCSV4bW02LCV4bW04Ci0JcHhvcgkleG1tMTQsJXhtbTYK
LQlweG9yCSV4bW03LCV4bW04Ci0JcHhvcgkleG1tMTUsJXhtbTcKLQltb3Z1cHMJMzIoJXIxMSks
JXhtbTAKLQotCWxlYXEJMSglcjgpLCVyMTIKLQlsZWFxCTMoJXI4KSwlcjEzCi0JbGVhcQk1KCVy
OCksJXIxNAotCWFkZHEJJDYsJXI4Ci0JcHhvcgkleG1tOSwleG1tMTAKLQlic2ZxCSVyMTIsJXIx
MgotCWJzZnEJJXIxMywlcjEzCi0JYnNmcQklcjE0LCVyMTQKLQotLmJ5dGUJMTAyLDE1LDU2LDIy
MCwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNQot
LmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzMKLQlweG9yCSV4bW05LCV4bW0xMQotCXB4b3IJJXhtbTks
JXhtbTEyCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0MQotCXB4b3IJJXhtbTksJXhtbTEzCi0JcHhv
cgkleG1tOSwleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ5Ci0JbW92dXBzCTQ4KCVyMTEp
LCV4bW0xCi0JcHhvcgkleG1tOSwleG1tMTUKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgKLS5i
eXRlCTEwMiwxNSw1NiwyMjAsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAy
LDE1LDU2LDIyMCwyMzIKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQwCi0uYnl0ZQkxMDIsMTUsNTYs
MjIwLDI0OAotCW1vdnVwcwk2NCglcjExKSwleG1tMAotCXNobHEJJDQsJXIxMgotCXNobHEJJDQs
JXIxMwotCWptcAkuTG9jYl9lbmNfbG9vcDYKLQotLmFsaWduCTMyCi0uTG9jYl9lbmNfbG9vcDY6
Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKLS5ieXRl
CTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIzMwotLmJ5dGUJMTAyLDE1
LDU2LDIyMCwyNDEKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ5Ci0JbW92dXBzCSglcmN4LCVyYXgs
MSksJXhtbTEKLQlhZGRxCSQzMiwlcmF4Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA4Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIwLDIxNgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjQKLS5ieXRlCTEwMiwx
NSw1NiwyMjAsMjMyCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0MAotLmJ5dGUJMTAyLDE1LDU2LDIy
MCwyNDgKLQltb3Z1cHMJLTE2KCVyY3gsJXJheCwxKSwleG1tMAotCWpuegkuTG9jYl9lbmNfbG9v
cDYKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIyNQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzMKLS5ieXRlCTEw
MiwxNSw1NiwyMjAsMjQxCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OQotCW1vdnVwcwkxNiglcjEx
KSwleG1tMQotCXNobHEJJDQsJXIxNAotCi0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIxLDIxMAotCW1v
dmRxdQkoJXJieCksJXhtbTEwCi0JbW92cQklcjEwLCVyYXgKLS5ieXRlCTEwMiw2NSwxNSw1Niwy
MjEsMjE5Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIxLDIyOAotLmJ5dGUJMTAyLDY1LDE1LDU2LDIy
MSwyMzcKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjEsMjQ2Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIx
LDI1NQotCS5ieXRlCTB4ZjMsMHhjMwotLnNpemUJX19vY2JfZW5jcnlwdDYsLi1fX29jYl9lbmNy
eXB0NgotCi0udHlwZQlfX29jYl9lbmNyeXB0NCxAZnVuY3Rpb24KLS5hbGlnbgkzMgotX19vY2Jf
ZW5jcnlwdDQ6Ci0JcHhvcgkleG1tOSwleG1tMTUKLQltb3ZkcXUJKCVyYngsJXIxMiwxKSwleG1t
MTEKLQltb3ZkcWEJJXhtbTEwLCV4bW0xMgotCW1vdmRxdQkoJXJieCwlcjEzLDEpLCV4bW0xMwot
CXB4b3IJJXhtbTE1LCV4bW0xMAotCXB4b3IJJXhtbTEwLCV4bW0xMQotCXB4b3IJJXhtbTIsJXht
bTgKLQlweG9yCSV4bW0xMCwleG1tMgotCXB4b3IJJXhtbTExLCV4bW0xMgotCXB4b3IJJXhtbTMs
JXhtbTgKLQlweG9yCSV4bW0xMSwleG1tMwotCXB4b3IJJXhtbTEyLCV4bW0xMwotCXB4b3IJJXht
bTQsJXhtbTgKLQlweG9yCSV4bW0xMiwleG1tNAotCXB4b3IJJXhtbTUsJXhtbTgKLQlweG9yCSV4
bW0xMywleG1tNQotCW1vdnVwcwkzMiglcjExKSwleG1tMAotCi0JcHhvcgkleG1tOSwleG1tMTAK
LQlweG9yCSV4bW05LCV4bW0xMQotCXB4b3IJJXhtbTksJXhtbTEyCi0JcHhvcgkleG1tOSwleG1t
MTMKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIyNQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzMKLQltb3Z1cHMJ
NDgoJXIxMSksJXhtbTEKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgKLS5ieXRlCTEwMiwxNSw1
NiwyMjAsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MzIKLQltb3Z1cHMJNjQoJXIxMSksJXhtbTAKLQlqbXAJLkxvY2JfZW5jX2xvb3A0Ci0KLS5hbGln
bgkzMgotLkxvY2JfZW5jX2xvb3A0OgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5ieXRlCTEw
MiwxNSw1NiwyMjAsMjE3Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNQotLmJ5dGUJMTAyLDE1LDU2
LDIyMCwyMzMKLQltb3Z1cHMJKCVyY3gsJXJheCwxKSwleG1tMQotCWFkZHEJJDMyLCVyYXgKLQot
LmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2Ci0uYnl0ZQkx
MDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLQltb3Z1cHMJLTE2KCVy
Y3gsJXJheCwxKSwleG1tMAotCWpuegkuTG9jYl9lbmNfbG9vcDQKLQotLmJ5dGUJMTAyLDE1LDU2
LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIy
NQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzMKLQltb3Z1cHMJMTYoJXIxMSksJXhtbTEKLQltb3Zx
CSVyMTAsJXJheAotCi0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIxLDIxMAotLmJ5dGUJMTAyLDY1LDE1
LDU2LDIyMSwyMTkKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjEsMjI4Ci0uYnl0ZQkxMDIsNjUsMTUs
NTYsMjIxLDIzNwotCS5ieXRlCTB4ZjMsMHhjMwotLnNpemUJX19vY2JfZW5jcnlwdDQsLi1fX29j
Yl9lbmNyeXB0NAotCi0udHlwZQlfX29jYl9lbmNyeXB0MSxAZnVuY3Rpb24KLS5hbGlnbgkzMgot
X19vY2JfZW5jcnlwdDE6Ci0JcHhvcgkleG1tMTUsJXhtbTcKLQlweG9yCSV4bW05LCV4bW03Ci0J
cHhvcgkleG1tMiwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTIKLQltb3Z1cHMJMzIoJXIxMSksJXht
bTAKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLQltb3Z1cHMJNDgoJXIxMSksJXhtbTEKLQlw
eG9yCSV4bW05LCV4bW03Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA4Ci0JbW92dXBzCTY0KCVy
MTEpLCV4bW0wCi0Jam1wCS5Mb2NiX2VuY19sb29wMQotCi0uYWxpZ24JMzIKLS5Mb2NiX2VuY19s
b29wMToKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5Ci0JbW92dXBzCSglcmN4LCVyYXgsMSksJXht
bTEKLQlhZGRxCSQzMiwlcmF4Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA4Ci0JbW92dXBzCS0x
NiglcmN4LCVyYXgsMSksJXhtbTAKLQlqbnoJLkxvY2JfZW5jX2xvb3AxCi0KLS5ieXRlCTEwMiwx
NSw1NiwyMjAsMjA5Ci0JbW92dXBzCTE2KCVyMTEpLCV4bW0xCi0JbW92cQklcjEwLCVyYXgKLQot
LmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTUKLQkuYnl0ZQkweGYzLDB4YzMKLS5zaXplCV9fb2NiX2Vu
Y3J5cHQxLC4tX19vY2JfZW5jcnlwdDEKLQotLmdsb2JsCWFlc19od19vY2JfZGVjcnlwdAotLmhp
ZGRlbiBhZXNfaHdfb2NiX2RlY3J5cHQKLS50eXBlCWFlc19od19vY2JfZGVjcnlwdCxAZnVuY3Rp
b24KLS5hbGlnbgkzMgotYWVzX2h3X29jYl9kZWNyeXB0OgotLmNmaV9zdGFydHByb2MJCi0JbGVh
cQkoJXJzcCksJXJheAotCXB1c2hxCSVyYngKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNm
aV9vZmZzZXQJJXJieCwtMTYKLQlwdXNocQklcmJwCi0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgK
LS5jZmlfb2Zmc2V0CSVyYnAsLTI0Ci0JcHVzaHEJJXIxMgotLmNmaV9hZGp1c3RfY2ZhX29mZnNl
dAk4Ci0uY2ZpX29mZnNldAklcjEyLC0zMgotCXB1c2hxCSVyMTMKLS5jZmlfYWRqdXN0X2NmYV9v
ZmZzZXQJOAotLmNmaV9vZmZzZXQJJXIxMywtNDAKLQlwdXNocQklcjE0Ci0uY2ZpX2FkanVzdF9j
ZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyMTQsLTQ4Ci0JbW92cQk4KCVyYXgpLCVyYngKLQlt
b3ZxCTgrOCglcmF4KSwlcmJwCi0KLQltb3ZsCTI0MCglcmN4KSwlcjEwZAotCW1vdnEJJXJjeCwl
cjExCi0Jc2hsbAkkNCwlcjEwZAotCW1vdnVwcwkoJXJjeCksJXhtbTkKLQltb3Z1cHMJMTYoJXJj
eCwlcjEwLDEpLCV4bW0xCi0KLQltb3ZkcXUJKCVyOSksJXhtbTE1Ci0JcHhvcgkleG1tMSwleG1t
OQotCXB4b3IJJXhtbTEsJXhtbTE1Ci0KLQltb3ZsCSQxNiszMiwlZWF4Ci0JbGVhcQkzMiglcjEx
LCVyMTAsMSksJXJjeAotCW1vdnVwcwkxNiglcjExKSwleG1tMQotCXN1YnEJJXIxMCwlcmF4Ci0J
bW92cQklcmF4LCVyMTAKLQotCW1vdmRxdQkoJXJieCksJXhtbTEwCi0JbW92ZHF1CSglcmJwKSwl
eG1tOAotCi0JdGVzdHEJJDEsJXI4Ci0Jam56CS5Mb2NiX2RlY19vZGQKLQotCWJzZnEJJXI4LCVy
MTIKLQlhZGRxCSQxLCVyOAotCXNobHEJJDQsJXIxMgotCW1vdmRxdQkoJXJieCwlcjEyLDEpLCV4
bW03Ci0JbW92ZHF1CSglcmRpKSwleG1tMgotCWxlYXEJMTYoJXJkaSksJXJkaQotCi0JY2FsbAlf
X29jYl9kZWNyeXB0MQotCi0JbW92ZHFhCSV4bW03LCV4bW0xNQotCW1vdnVwcwkleG1tMiwoJXJz
aSkKLQl4b3JwcwkleG1tMiwleG1tOAotCWxlYXEJMTYoJXJzaSksJXJzaQotCXN1YnEJJDEsJXJk
eAotCWp6CS5Mb2NiX2RlY19kb25lCi0KLS5Mb2NiX2RlY19vZGQ6Ci0JbGVhcQkxKCVyOCksJXIx
MgotCWxlYXEJMyglcjgpLCVyMTMKLQlsZWFxCTUoJXI4KSwlcjE0Ci0JbGVhcQk2KCVyOCksJXI4
Ci0JYnNmcQklcjEyLCVyMTIKLQlic2ZxCSVyMTMsJXIxMwotCWJzZnEJJXIxNCwlcjE0Ci0Jc2hs
cQkkNCwlcjEyCi0Jc2hscQkkNCwlcjEzCi0Jc2hscQkkNCwlcjE0Ci0KLQlzdWJxCSQ2LCVyZHgK
LQlqYwkuTG9jYl9kZWNfc2hvcnQKLQlqbXAJLkxvY2JfZGVjX2dyYW5kbG9vcAotCi0uYWxpZ24J
MzIKLS5Mb2NiX2RlY19ncmFuZGxvb3A6Ci0JbW92ZHF1CTAoJXJkaSksJXhtbTIKLQltb3ZkcXUJ
MTYoJXJkaSksJXhtbTMKLQltb3ZkcXUJMzIoJXJkaSksJXhtbTQKLQltb3ZkcXUJNDgoJXJkaSks
JXhtbTUKLQltb3ZkcXUJNjQoJXJkaSksJXhtbTYKLQltb3ZkcXUJODAoJXJkaSksJXhtbTcKLQls
ZWFxCTk2KCVyZGkpLCVyZGkKLQotCWNhbGwJX19vY2JfZGVjcnlwdDYKLQotCW1vdnVwcwkleG1t
MiwwKCVyc2kpCi0JcHhvcgkleG1tMiwleG1tOAotCW1vdnVwcwkleG1tMywxNiglcnNpKQotCXB4
b3IJJXhtbTMsJXhtbTgKLQltb3Z1cHMJJXhtbTQsMzIoJXJzaSkKLQlweG9yCSV4bW00LCV4bW04
Ci0JbW92dXBzCSV4bW01LDQ4KCVyc2kpCi0JcHhvcgkleG1tNSwleG1tOAotCW1vdnVwcwkleG1t
Niw2NCglcnNpKQotCXB4b3IJJXhtbTYsJXhtbTgKLQltb3Z1cHMJJXhtbTcsODAoJXJzaSkKLQlw
eG9yCSV4bW03LCV4bW04Ci0JbGVhcQk5NiglcnNpKSwlcnNpCi0Jc3VicQkkNiwlcmR4Ci0Jam5j
CS5Mb2NiX2RlY19ncmFuZGxvb3AKLQotLkxvY2JfZGVjX3Nob3J0OgotCWFkZHEJJDYsJXJkeAot
CWp6CS5Mb2NiX2RlY19kb25lCi0KLQltb3ZkcXUJMCglcmRpKSwleG1tMgotCWNtcHEJJDIsJXJk
eAotCWpiCS5Mb2NiX2RlY19vbmUKLQltb3ZkcXUJMTYoJXJkaSksJXhtbTMKLQlqZQkuTG9jYl9k
ZWNfdHdvCi0KLQltb3ZkcXUJMzIoJXJkaSksJXhtbTQKLQljbXBxCSQ0LCVyZHgKLQlqYgkuTG9j
Yl9kZWNfdGhyZWUKLQltb3ZkcXUJNDgoJXJkaSksJXhtbTUKLQlqZQkuTG9jYl9kZWNfZm91cgot
Ci0JbW92ZHF1CTY0KCVyZGkpLCV4bW02Ci0JcHhvcgkleG1tNywleG1tNwotCi0JY2FsbAlfX29j
Yl9kZWNyeXB0NgotCi0JbW92ZHFhCSV4bW0xNCwleG1tMTUKLQltb3Z1cHMJJXhtbTIsMCglcnNp
KQotCXB4b3IJJXhtbTIsJXhtbTgKLQltb3Z1cHMJJXhtbTMsMTYoJXJzaSkKLQlweG9yCSV4bW0z
LCV4bW04Ci0JbW92dXBzCSV4bW00LDMyKCVyc2kpCi0JcHhvcgkleG1tNCwleG1tOAotCW1vdnVw
cwkleG1tNSw0OCglcnNpKQotCXB4b3IJJXhtbTUsJXhtbTgKLQltb3Z1cHMJJXhtbTYsNjQoJXJz
aSkKLQlweG9yCSV4bW02LCV4bW04Ci0KLQlqbXAJLkxvY2JfZGVjX2RvbmUKLQotLmFsaWduCTE2
Ci0uTG9jYl9kZWNfb25lOgotCW1vdmRxYQkleG1tMTAsJXhtbTcKLQotCWNhbGwJX19vY2JfZGVj
cnlwdDEKLQotCW1vdmRxYQkleG1tNywleG1tMTUKLQltb3Z1cHMJJXhtbTIsMCglcnNpKQotCXhv
cnBzCSV4bW0yLCV4bW04Ci0Jam1wCS5Mb2NiX2RlY19kb25lCi0KLS5hbGlnbgkxNgotLkxvY2Jf
ZGVjX3R3bzoKLQlweG9yCSV4bW00LCV4bW00Ci0JcHhvcgkleG1tNSwleG1tNQotCi0JY2FsbAlf
X29jYl9kZWNyeXB0NAotCi0JbW92ZHFhCSV4bW0xMSwleG1tMTUKLQltb3Z1cHMJJXhtbTIsMCgl
cnNpKQotCXhvcnBzCSV4bW0yLCV4bW04Ci0JbW92dXBzCSV4bW0zLDE2KCVyc2kpCi0JeG9ycHMJ
JXhtbTMsJXhtbTgKLQotCWptcAkuTG9jYl9kZWNfZG9uZQotCi0uYWxpZ24JMTYKLS5Mb2NiX2Rl
Y190aHJlZToKLQlweG9yCSV4bW01LCV4bW01Ci0KLQljYWxsCV9fb2NiX2RlY3J5cHQ0Ci0KLQlt
b3ZkcWEJJXhtbTEyLCV4bW0xNQotCW1vdnVwcwkleG1tMiwwKCVyc2kpCi0JeG9ycHMJJXhtbTIs
JXhtbTgKLQltb3Z1cHMJJXhtbTMsMTYoJXJzaSkKLQl4b3JwcwkleG1tMywleG1tOAotCW1vdnVw
cwkleG1tNCwzMiglcnNpKQotCXhvcnBzCSV4bW00LCV4bW04Ci0KLQlqbXAJLkxvY2JfZGVjX2Rv
bmUKLQotLmFsaWduCTE2Ci0uTG9jYl9kZWNfZm91cjoKLQljYWxsCV9fb2NiX2RlY3J5cHQ0Ci0K
LQltb3ZkcWEJJXhtbTEzLCV4bW0xNQotCW1vdnVwcwkleG1tMiwwKCVyc2kpCi0JcHhvcgkleG1t
MiwleG1tOAotCW1vdnVwcwkleG1tMywxNiglcnNpKQotCXB4b3IJJXhtbTMsJXhtbTgKLQltb3Z1
cHMJJXhtbTQsMzIoJXJzaSkKLQlweG9yCSV4bW00LCV4bW04Ci0JbW92dXBzCSV4bW01LDQ4KCVy
c2kpCi0JcHhvcgkleG1tNSwleG1tOAotCi0uTG9jYl9kZWNfZG9uZToKLQlweG9yCSV4bW0wLCV4
bW0xNQotCW1vdmRxdQkleG1tOCwoJXJicCkKLQltb3ZkcXUJJXhtbTE1LCglcjkpCi0KLQl4b3Jw
cwkleG1tMCwleG1tMAotCXB4b3IJJXhtbTEsJXhtbTEKLQlweG9yCSV4bW0yLCV4bW0yCi0JcHhv
cgkleG1tMywleG1tMwotCXB4b3IJJXhtbTQsJXhtbTQKLQlweG9yCSV4bW01LCV4bW01Ci0JcHhv
cgkleG1tNiwleG1tNgotCXB4b3IJJXhtbTcsJXhtbTcKLQlweG9yCSV4bW04LCV4bW04Ci0JcHhv
cgkleG1tOSwleG1tOQotCXB4b3IJJXhtbTEwLCV4bW0xMAotCXB4b3IJJXhtbTExLCV4bW0xMQot
CXB4b3IJJXhtbTEyLCV4bW0xMgotCXB4b3IJJXhtbTEzLCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4
bW0xNAotCXB4b3IJJXhtbTE1LCV4bW0xNQotCWxlYXEJNDAoJXJzcCksJXJheAotLmNmaV9kZWZf
Y2ZhCSVyYXgsOAotCW1vdnEJLTQwKCVyYXgpLCVyMTQKLS5jZmlfcmVzdG9yZQklcjE0Ci0JbW92
cQktMzIoJXJheCksJXIxMwotLmNmaV9yZXN0b3JlCSVyMTMKLQltb3ZxCS0yNCglcmF4KSwlcjEy
Ci0uY2ZpX3Jlc3RvcmUJJXIxMgotCW1vdnEJLTE2KCVyYXgpLCVyYnAKLS5jZmlfcmVzdG9yZQkl
cmJwCi0JbW92cQktOCglcmF4KSwlcmJ4Ci0uY2ZpX3Jlc3RvcmUJJXJieAotCWxlYXEJKCVyYXgp
LCVyc3AKLS5jZmlfZGVmX2NmYV9yZWdpc3RlcgklcnNwCi0uTG9jYl9kZWNfZXBpbG9ndWU6Ci0J
LmJ5dGUJMHhmMywweGMzCi0uY2ZpX2VuZHByb2MJCi0uc2l6ZQlhZXNfaHdfb2NiX2RlY3J5cHQs
Li1hZXNfaHdfb2NiX2RlY3J5cHQKLQotLnR5cGUJX19vY2JfZGVjcnlwdDYsQGZ1bmN0aW9uCi0u
YWxpZ24JMzIKLV9fb2NiX2RlY3J5cHQ2OgotCXB4b3IJJXhtbTksJXhtbTE1Ci0JbW92ZHF1CSgl
cmJ4LCVyMTIsMSksJXhtbTExCi0JbW92ZHFhCSV4bW0xMCwleG1tMTIKLQltb3ZkcXUJKCVyYngs
JXIxMywxKSwleG1tMTMKLQltb3ZkcWEJJXhtbTEwLCV4bW0xNAotCXB4b3IJJXhtbTE1LCV4bW0x
MAotCW1vdmRxdQkoJXJieCwlcjE0LDEpLCV4bW0xNQotCXB4b3IJJXhtbTEwLCV4bW0xMQotCXB4
b3IJJXhtbTEwLCV4bW0yCi0JcHhvcgkleG1tMTEsJXhtbTEyCi0JcHhvcgkleG1tMTEsJXhtbTMK
LQlweG9yCSV4bW0xMiwleG1tMTMKLQlweG9yCSV4bW0xMiwleG1tNAotCXB4b3IJJXhtbTEzLCV4
bW0xNAotCXB4b3IJJXhtbTEzLCV4bW01Ci0JcHhvcgkleG1tMTQsJXhtbTE1Ci0JcHhvcgkleG1t
MTQsJXhtbTYKLQlweG9yCSV4bW0xNSwleG1tNwotCW1vdnVwcwkzMiglcjExKSwleG1tMAotCi0J
bGVhcQkxKCVyOCksJXIxMgotCWxlYXEJMyglcjgpLCVyMTMKLQlsZWFxCTUoJXI4KSwlcjE0Ci0J
YWRkcQkkNiwlcjgKLQlweG9yCSV4bW05LCV4bW0xMAotCWJzZnEJJXIxMiwlcjEyCi0JYnNmcQkl
cjEzLCVyMTMKLQlic2ZxCSVyMTQsJXIxNAotCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQotLmJ5
dGUJMTAyLDE1LDU2LDIyMiwyMTcKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjI1Ci0uYnl0ZQkxMDIs
MTUsNTYsMjIyLDIzMwotCXB4b3IJJXhtbTksJXhtbTExCi0JcHhvcgkleG1tOSwleG1tMTIKLS5i
eXRlCTEwMiwxNSw1NiwyMjIsMjQxCi0JcHhvcgkleG1tOSwleG1tMTMKLQlweG9yCSV4bW05LCV4
bW0xNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDkKLQltb3Z1cHMJNDgoJXIxMSksJXhtbTEKLQlw
eG9yCSV4bW05LCV4bW0xNQotCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOAotLmJ5dGUJMTAyLDE1
LDU2LDIyMiwyMTYKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjI0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIy
LDIzMgotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4Ci0J
bW92dXBzCTY0KCVyMTEpLCV4bW0wCi0Jc2hscQkkNCwlcjEyCi0Jc2hscQkkNCwlcjEzCi0Jam1w
CS5Mb2NiX2RlY19sb29wNgotCi0uYWxpZ24JMzIKLS5Mb2NiX2RlY19sb29wNjoKLS5ieXRlCTEw
MiwxNSw1NiwyMjIsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJMTAyLDE1LDU2
LDIyMiwyMjUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0
MQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDkKLQltb3Z1cHMJKCVyY3gsJXJheCwxKSwleG1tMQot
CWFkZHEJJDMyLCVyYXgKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDgKLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MzIKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQwCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OAotCW1v
dnVwcwktMTYoJXJjeCwlcmF4LDEpLCV4bW0wCi0Jam56CS5Mb2NiX2RlY19sb29wNgotCi0uYnl0
ZQkxMDIsMTUsNTYsMjIyLDIwOQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKLS5ieXRlCTEwMiwx
NSw1NiwyMjIsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotLmJ5dGUJMTAyLDE1LDU2LDIy
MiwyNDEKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ5Ci0JbW92dXBzCTE2KCVyMTEpLCV4bW0xCi0J
c2hscQkkNCwlcjE0Ci0KLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjMsMjEwCi0JbW92ZHF1CSglcmJ4
KSwleG1tMTAKLQltb3ZxCSVyMTAsJXJheAotLmJ5dGUJMTAyLDY1LDE1LDU2LDIyMywyMTkKLS5i
eXRlCTEwMiw2NSwxNSw1NiwyMjMsMjI4Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIzLDIzNwotLmJ5
dGUJMTAyLDY1LDE1LDU2LDIyMywyNDYKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjMsMjU1Ci0JLmJ5
dGUJMHhmMywweGMzCi0uc2l6ZQlfX29jYl9kZWNyeXB0NiwuLV9fb2NiX2RlY3J5cHQ2Ci0KLS50
eXBlCV9fb2NiX2RlY3J5cHQ0LEBmdW5jdGlvbgotLmFsaWduCTMyCi1fX29jYl9kZWNyeXB0NDoK
LQlweG9yCSV4bW05LCV4bW0xNQotCW1vdmRxdQkoJXJieCwlcjEyLDEpLCV4bW0xMQotCW1vdmRx
YQkleG1tMTAsJXhtbTEyCi0JbW92ZHF1CSglcmJ4LCVyMTMsMSksJXhtbTEzCi0JcHhvcgkleG1t
MTUsJXhtbTEwCi0JcHhvcgkleG1tMTAsJXhtbTExCi0JcHhvcgkleG1tMTAsJXhtbTIKLQlweG9y
CSV4bW0xMSwleG1tMTIKLQlweG9yCSV4bW0xMSwleG1tMwotCXB4b3IJJXhtbTEyLCV4bW0xMwot
CXB4b3IJJXhtbTEyLCV4bW00Ci0JcHhvcgkleG1tMTMsJXhtbTUKLQltb3Z1cHMJMzIoJXIxMSks
JXhtbTAKLQotCXB4b3IJJXhtbTksJXhtbTEwCi0JcHhvcgkleG1tOSwleG1tMTEKLQlweG9yCSV4
bW05LCV4bW0xMgotCXB4b3IJJXhtbTksJXhtbTEzCi0KLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5
Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjUKLS5ieXRl
CTEwMiwxNSw1NiwyMjIsMjMzCi0JbW92dXBzCTQ4KCVyMTEpLCV4bW0xCi0KLS5ieXRlCTEwMiwx
NSw1NiwyMjIsMjA4Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNgotLmJ5dGUJMTAyLDE1LDU2LDIy
MiwyMjQKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMyCi0JbW92dXBzCTY0KCVyMTEpLCV4bW0wCi0J
am1wCS5Mb2NiX2RlY19sb29wNAotCi0uYWxpZ24JMzIKLS5Mb2NiX2RlY19sb29wNDoKLS5ieXRl
CTEwMiwxNSw1NiwyMjIsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJMTAyLDE1
LDU2LDIyMiwyMjUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCi0JbW92dXBzCSglcmN4LCVyYXgs
MSksJXhtbTEKLQlhZGRxCSQzMiwlcmF4Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA4Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIyLDIxNgotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjQKLS5ieXRlCTEwMiwx
NSw1NiwyMjIsMjMyCi0JbW92dXBzCS0xNiglcmN4LCVyYXgsMSksJXhtbTAKLQlqbnoJLkxvY2Jf
ZGVjX2xvb3A0Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIy
LDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCi0J
bW92dXBzCTE2KCVyMTEpLCV4bW0xCi0JbW92cQklcjEwLCVyYXgKLQotLmJ5dGUJMTAyLDY1LDE1
LDU2LDIyMywyMTAKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjMsMjE5Ci0uYnl0ZQkxMDIsNjUsMTUs
NTYsMjIzLDIyOAotLmJ5dGUJMTAyLDY1LDE1LDU2LDIyMywyMzcKLQkuYnl0ZQkweGYzLDB4YzMK
LS5zaXplCV9fb2NiX2RlY3J5cHQ0LC4tX19vY2JfZGVjcnlwdDQKLQotLnR5cGUJX19vY2JfZGVj
cnlwdDEsQGZ1bmN0aW9uCi0uYWxpZ24JMzIKLV9fb2NiX2RlY3J5cHQxOgotCXB4b3IJJXhtbTE1
LCV4bW03Ci0JcHhvcgkleG1tOSwleG1tNwotCXB4b3IJJXhtbTcsJXhtbTIKLQltb3Z1cHMJMzIo
JXIxMSksJXhtbTAKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLQltb3Z1cHMJNDgoJXIxMSks
JXhtbTEKLQlweG9yCSV4bW05LCV4bW03Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA4Ci0JbW92
dXBzCTY0KCVyMTEpLCV4bW0wCi0Jam1wCS5Mb2NiX2RlY19sb29wMQotCi0uYWxpZ24JMzIKLS5M
b2NiX2RlY19sb29wMToKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0JbW92dXBzCSglcmN4LCVy
YXgsMSksJXhtbTEKLQlhZGRxCSQzMiwlcmF4Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA4Ci0J
bW92dXBzCS0xNiglcmN4LCVyYXgsMSksJXhtbTAKLQlqbnoJLkxvY2JfZGVjX2xvb3AxCi0KLS5i
eXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0JbW92dXBzCTE2KCVyMTEpLCV4bW0xCi0JbW92cQklcjEw
LCVyYXgKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMywyMTUKLQkuYnl0ZQkweGYzLDB4YzMKLS5zaXpl
CV9fb2NiX2RlY3J5cHQxLC4tX19vY2JfZGVjcnlwdDEKLS5nbG9ibAlhZXNfaHdfY2JjX2VuY3J5
cHQKLS5oaWRkZW4gYWVzX2h3X2NiY19lbmNyeXB0Ci0udHlwZQlhZXNfaHdfY2JjX2VuY3J5cHQs
QGZ1bmN0aW9uCi0uYWxpZ24JMTYKLWFlc19od19jYmNfZW5jcnlwdDoKLS5jZmlfc3RhcnRwcm9j
CQotCXRlc3RxCSVyZHgsJXJkeAotCWp6CS5MY2JjX3JldAotCi0JbW92bAkyNDAoJXJjeCksJXIx
MGQKLQltb3ZxCSVyY3gsJXIxMQotCXRlc3RsCSVyOWQsJXI5ZAotCWp6CS5MY2JjX2RlY3J5cHQK
LQotCW1vdnVwcwkoJXI4KSwleG1tMgotCW1vdmwJJXIxMGQsJWVheAotCWNtcHEJJDE2LCVyZHgK
LQlqYgkuTGNiY19lbmNfdGFpbAotCXN1YnEJJDE2LCVyZHgKLQlqbXAJLkxjYmNfZW5jX2xvb3AK
LS5hbGlnbgkxNgotLkxjYmNfZW5jX2xvb3A6Ci0JbW92dXBzCSglcmRpKSwleG1tMwotCWxlYXEJ
MTYoJXJkaSksJXJkaQotCi0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnVwcwkxNiglcmN4KSwl
eG1tMQotCXhvcnBzCSV4bW0wLCV4bW0zCi0JbGVhcQkzMiglcmN4KSwlcmN4Ci0JeG9ycHMJJXht
bTMsJXhtbTIKLS5Mb29wX2VuYzFfMTU6Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQotCWRlY2wJ
JWVheAotCW1vdnVwcwkoJXJjeCksJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQlqbnoJLkxv
b3BfZW5jMV8xNQotLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDkKLQltb3ZsCSVyMTBkLCVlYXgKLQlt
b3ZxCSVyMTEsJXJjeAotCW1vdnVwcwkleG1tMiwwKCVyc2kpCi0JbGVhcQkxNiglcnNpKSwlcnNp
Ci0Jc3VicQkkMTYsJXJkeAotCWpuYwkuTGNiY19lbmNfbG9vcAotCWFkZHEJJDE2LCVyZHgKLQlq
bnoJLkxjYmNfZW5jX3RhaWwKLQlweG9yCSV4bW0wLCV4bW0wCi0JcHhvcgkleG1tMSwleG1tMQot
CW1vdnVwcwkleG1tMiwoJXI4KQotCXB4b3IJJXhtbTIsJXhtbTIKLQlweG9yCSV4bW0zLCV4bW0z
Ci0Jam1wCS5MY2JjX3JldAotCi0uTGNiY19lbmNfdGFpbDoKLQltb3ZxCSVyZHgsJXJjeAotCXhj
aGdxCSVyZGksJXJzaQotLmxvbmcJMHg5MDY2QTRGMwotCW1vdmwJJDE2LCVlY3gKLQlzdWJxCSVy
ZHgsJXJjeAotCXhvcmwJJWVheCwlZWF4Ci0ubG9uZwkweDkwNjZBQUYzCi0JbGVhcQktMTYoJXJk
aSksJXJkaQotCW1vdmwJJXIxMGQsJWVheAotCW1vdnEJJXJkaSwlcnNpCi0JbW92cQklcjExLCVy
Y3gKLQl4b3JxCSVyZHgsJXJkeAotCWptcAkuTGNiY19lbmNfbG9vcAotCi0uYWxpZ24JMTYKLS5M
Y2JjX2RlY3J5cHQ6Ci0JY21wcQkkMTYsJXJkeAotCWpuZQkuTGNiY19kZWNyeXB0X2J1bGsKLQot
Ci0KLQltb3ZkcXUJKCVyZGkpLCV4bW0yCi0JbW92ZHF1CSglcjgpLCV4bW0zCi0JbW92ZHFhCSV4
bW0yLCV4bW00Ci0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnVwcwkxNiglcmN4KSwleG1tMQot
CWxlYXEJMzIoJXJjeCksJXJjeAotCXhvcnBzCSV4bW0wLCV4bW0yCi0uTG9vcF9kZWMxXzE2Ogot
LmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLQlkZWNsCSVyMTBkCi0JbW92dXBzCSglcmN4KSwleG1t
MQotCWxlYXEJMTYoJXJjeCksJXJjeAotCWpuegkuTG9vcF9kZWMxXzE2Ci0uYnl0ZQkxMDIsMTUs
NTYsMjIzLDIwOQotCXB4b3IJJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xCi0JbW92ZHF1
CSV4bW00LCglcjgpCi0JeG9ycHMJJXhtbTMsJXhtbTIKLQlweG9yCSV4bW0zLCV4bW0zCi0JbW92
dXBzCSV4bW0yLCglcnNpKQotCXB4b3IJJXhtbTIsJXhtbTIKLQlqbXAJLkxjYmNfcmV0Ci0uYWxp
Z24JMTYKLS5MY2JjX2RlY3J5cHRfYnVsazoKLQlsZWFxCSglcnNwKSwlcjExCi0uY2ZpX2RlZl9j
ZmFfcmVnaXN0ZXIJJXIxMQotCXB1c2hxCSVyYnAKLS5jZmlfb2Zmc2V0CSVyYnAsLTE2Ci0Jc3Vi
cQkkMTYsJXJzcAotCWFuZHEJJC0xNiwlcnNwCi0JbW92cQklcmN4LCVyYnAKLQltb3Z1cHMJKCVy
OCksJXhtbTEwCi0JbW92bAklcjEwZCwlZWF4Ci0JY21wcQkkMHg1MCwlcmR4Ci0JamJlCS5MY2Jj
X2RlY190YWlsCi0KLQltb3Z1cHMJKCVyY3gpLCV4bW0wCi0JbW92ZHF1CTAoJXJkaSksJXhtbTIK
LQltb3ZkcXUJMTYoJXJkaSksJXhtbTMKLQltb3ZkcWEJJXhtbTIsJXhtbTExCi0JbW92ZHF1CTMy
KCVyZGkpLCV4bW00Ci0JbW92ZHFhCSV4bW0zLCV4bW0xMgotCW1vdmRxdQk0OCglcmRpKSwleG1t
NQotCW1vdmRxYQkleG1tNCwleG1tMTMKLQltb3ZkcXUJNjQoJXJkaSksJXhtbTYKLQltb3ZkcWEJ
JXhtbTUsJXhtbTE0Ci0JbW92ZHF1CTgwKCVyZGkpLCV4bW03Ci0JbW92ZHFhCSV4bW02LCV4bW0x
NQotCWxlYXEJT1BFTlNTTF9pYTMyY2FwX1AoJXJpcCksJXI5Ci0JbW92bAk0KCVyOSksJXI5ZAot
CWNtcHEJJDB4NzAsJXJkeAotCWpiZQkuTGNiY19kZWNfc2l4X29yX3NldmVuCisJbW92ZHFhCSV4
bW02LCV4bW0xNQorCWxlYXEJT1BFTlNTTF9pYTMyY2FwX1AoJXJpcCksJXI5CisJbW92bAk0KCVy
OSksJXI5ZAorCWNtcHEJJDB4NzAsJXJkeAorCWpiZQkuTGNiY19kZWNfc2l4X29yX3NldmVuCiAK
IAlhbmRsCSQ3MTMwMzE2OCwlcjlkCiAJc3VicQkkMHg1MCwlcmR4CkBAIC0zOTIyLDEyICsxOTY1
LDEyIEBAIGFlc19od19jYmNfZW5jcnlwdDoKIAltb3Z1cHMJMTYoJXJjeCksJXhtbTEKIAlsZWFx
CTMyKCVyY3gpLCVyY3gKIAl4b3JwcwkleG1tMCwleG1tMgotLkxvb3BfZGVjMV8xNzoKKy5Mb29w
X2RlYzFfODoKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CiAJZGVjbAklZWF4CiAJbW92dXBzCSgl
cmN4KSwleG1tMQogCWxlYXEJMTYoJXJjeCksJXJjeAotCWpuegkuTG9vcF9kZWMxXzE3CisJam56
CS5Mb29wX2RlYzFfOAogLmJ5dGUJMTAyLDE1LDU2LDIyMywyMDkKIAl4b3JwcwkleG1tMTAsJXht
bTIKIAltb3ZhcHMJJXhtbTExLCV4bW0xMApAQCAtNDA2OCw2ICsyMTExLDExIEBAIGFlc19od19z
ZXRfZGVjcnlwdF9rZXk6CiBhZXNfaHdfc2V0X2VuY3J5cHRfa2V5OgogX19hZXNuaV9zZXRfZW5j
cnlwdF9rZXk6CiAuY2ZpX3N0YXJ0cHJvYwkKKyNpZm5kZWYgTkRFQlVHCisjaWZuZGVmIEJPUklO
R1NTTF9GSVBTCisJbW92YgkkMSxCT1JJTkdTU0xfZnVuY3Rpb25faGl0KzMoJXJpcCkKKyNlbmRp
ZgorI2VuZGlmCiAuYnl0ZQkweDQ4LDB4ODMsMHhFQywweDA4CiAuY2ZpX2FkanVzdF9jZmFfb2Zm
c2V0CTgKIAltb3ZxCSQtMSwlcmF4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvYnNhZXMteDg2XzY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUv
YnNhZXMteDg2XzY0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkZDMxNjFiYTZj
ZDc4MGQ3MjRiZWJhNjVkODA2ZTRlNjljY2M2NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2JzYWVz
LXg4Nl82NC5TCisrKyAvZGV2L251bGwKQEAgLTEsMjYxMCArMCwwIEBACi0jIFRoaXMgZmlsZSBp
cyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9y
aW5nU1NMCi0jIHNvdXJjZSB0cmVlLiBEbyBub3QgZWRpdCBieSBoYW5kLgotCi0jaWYgZGVmaW5l
ZChfX2hhc19mZWF0dXJlKQotI2lmIF9faGFzX2ZlYXR1cmUobWVtb3J5X3Nhbml0aXplcikgJiYg
IWRlZmluZWQoT1BFTlNTTF9OT19BU00pCi0jZGVmaW5lIE9QRU5TU0xfTk9fQVNNCi0jZW5kaWYK
LSNlbmRpZgotCi0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiAhZGVmaW5lZChPUEVOU1NMX05P
X0FTTSkKLSNpZiBkZWZpbmVkKEJPUklOR1NTTF9QUkVGSVgpCi0jaW5jbHVkZSA8Ym9yaW5nc3Ns
X3ByZWZpeF9zeW1ib2xzX2FzbS5oPgotI2VuZGlmCi0udGV4dAkKLQotLmV4dGVybglhZXNfbm9o
d19lbmNyeXB0Ci0uaGlkZGVuIGFlc19ub2h3X2VuY3J5cHQKLS5leHRlcm4JYWVzX25vaHdfZGVj
cnlwdAotLmhpZGRlbiBhZXNfbm9od19kZWNyeXB0Ci0KLS50eXBlCV9ic2Flc19lbmNyeXB0OCxA
ZnVuY3Rpb24KLS5hbGlnbgk2NAotX2JzYWVzX2VuY3J5cHQ4OgotCWxlYXEJLkxCUzAoJXJpcCks
JXIxMQotCi0JbW92ZHFhCSglcmF4KSwleG1tOAotCWxlYXEJMTYoJXJheCksJXJheAotCW1vdmRx
YQk4MCglcjExKSwleG1tNwotCXB4b3IJJXhtbTgsJXhtbTE1Ci0JcHhvcgkleG1tOCwleG1tMAot
CXB4b3IJJXhtbTgsJXhtbTEKLQlweG9yCSV4bW04LCV4bW0yCi0uYnl0ZQkxMDIsNjgsMTUsNTYs
MCwyNTUKLS5ieXRlCTEwMiwxNSw1NiwwLDE5OQotCXB4b3IJJXhtbTgsJXhtbTMKLQlweG9yCSV4
bW04LCV4bW00Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMDcKLS5ieXRlCTEwMiwxNSw1NiwwLDIxNQot
CXB4b3IJJXhtbTgsJXhtbTUKLQlweG9yCSV4bW04LCV4bW02Ci0uYnl0ZQkxMDIsMTUsNTYsMCwy
MjMKLS5ieXRlCTEwMiwxNSw1NiwwLDIzMQotLmJ5dGUJMTAyLDE1LDU2LDAsMjM5Ci0uYnl0ZQkx
MDIsMTUsNTYsMCwyNDcKLV9ic2Flc19lbmNyeXB0OF9iaXRzbGljZToKLQltb3ZkcWEJMCglcjEx
KSwleG1tNwotCW1vdmRxYQkxNiglcjExKSwleG1tOAotCW1vdmRxYQkleG1tNSwleG1tOQotCXBz
cmxxCSQxLCV4bW01Ci0JbW92ZHFhCSV4bW0zLCV4bW0xMAotCXBzcmxxCSQxLCV4bW0zCi0JcHhv
cgkleG1tNiwleG1tNQotCXB4b3IJJXhtbTQsJXhtbTMKLQlwYW5kCSV4bW03LCV4bW01Ci0JcGFu
ZAkleG1tNywleG1tMwotCXB4b3IJJXhtbTUsJXhtbTYKLQlwc2xscQkkMSwleG1tNQotCXB4b3IJ
JXhtbTMsJXhtbTQKLQlwc2xscQkkMSwleG1tMwotCXB4b3IJJXhtbTksJXhtbTUKLQlweG9yCSV4
bW0xMCwleG1tMwotCW1vdmRxYQkleG1tMSwleG1tOQotCXBzcmxxCSQxLCV4bW0xCi0JbW92ZHFh
CSV4bW0xNSwleG1tMTAKLQlwc3JscQkkMSwleG1tMTUKLQlweG9yCSV4bW0yLCV4bW0xCi0JcHhv
cgkleG1tMCwleG1tMTUKLQlwYW5kCSV4bW03LCV4bW0xCi0JcGFuZAkleG1tNywleG1tMTUKLQlw
eG9yCSV4bW0xLCV4bW0yCi0JcHNsbHEJJDEsJXhtbTEKLQlweG9yCSV4bW0xNSwleG1tMAotCXBz
bGxxCSQxLCV4bW0xNQotCXB4b3IJJXhtbTksJXhtbTEKLQlweG9yCSV4bW0xMCwleG1tMTUKLQlt
b3ZkcWEJMzIoJXIxMSksJXhtbTcKLQltb3ZkcWEJJXhtbTQsJXhtbTkKLQlwc3JscQkkMiwleG1t
NAotCW1vdmRxYQkleG1tMywleG1tMTAKLQlwc3JscQkkMiwleG1tMwotCXB4b3IJJXhtbTYsJXht
bTQKLQlweG9yCSV4bW01LCV4bW0zCi0JcGFuZAkleG1tOCwleG1tNAotCXBhbmQJJXhtbTgsJXht
bTMKLQlweG9yCSV4bW00LCV4bW02Ci0JcHNsbHEJJDIsJXhtbTQKLQlweG9yCSV4bW0zLCV4bW01
Ci0JcHNsbHEJJDIsJXhtbTMKLQlweG9yCSV4bW05LCV4bW00Ci0JcHhvcgkleG1tMTAsJXhtbTMK
LQltb3ZkcWEJJXhtbTAsJXhtbTkKLQlwc3JscQkkMiwleG1tMAotCW1vdmRxYQkleG1tMTUsJXht
bTEwCi0JcHNybHEJJDIsJXhtbTE1Ci0JcHhvcgkleG1tMiwleG1tMAotCXB4b3IJJXhtbTEsJXht
bTE1Ci0JcGFuZAkleG1tOCwleG1tMAotCXBhbmQJJXhtbTgsJXhtbTE1Ci0JcHhvcgkleG1tMCwl
eG1tMgotCXBzbGxxCSQyLCV4bW0wCi0JcHhvcgkleG1tMTUsJXhtbTEKLQlwc2xscQkkMiwleG1t
MTUKLQlweG9yCSV4bW05LCV4bW0wCi0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JbW92ZHFhCSV4bW0y
LCV4bW05Ci0JcHNybHEJJDQsJXhtbTIKLQltb3ZkcWEJJXhtbTEsJXhtbTEwCi0JcHNybHEJJDQs
JXhtbTEKLQlweG9yCSV4bW02LCV4bW0yCi0JcHhvcgkleG1tNSwleG1tMQotCXBhbmQJJXhtbTcs
JXhtbTIKLQlwYW5kCSV4bW03LCV4bW0xCi0JcHhvcgkleG1tMiwleG1tNgotCXBzbGxxCSQ0LCV4
bW0yCi0JcHhvcgkleG1tMSwleG1tNQotCXBzbGxxCSQ0LCV4bW0xCi0JcHhvcgkleG1tOSwleG1t
MgotCXB4b3IJJXhtbTEwLCV4bW0xCi0JbW92ZHFhCSV4bW0wLCV4bW05Ci0JcHNybHEJJDQsJXht
bTAKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBzcmxxCSQ0LCV4bW0xNQotCXB4b3IJJXhtbTQs
JXhtbTAKLQlweG9yCSV4bW0zLCV4bW0xNQotCXBhbmQJJXhtbTcsJXhtbTAKLQlwYW5kCSV4bW03
LCV4bW0xNQotCXB4b3IJJXhtbTAsJXhtbTQKLQlwc2xscQkkNCwleG1tMAotCXB4b3IJJXhtbTE1
LCV4bW0zCi0JcHNsbHEJJDQsJXhtbTE1Ci0JcHhvcgkleG1tOSwleG1tMAotCXB4b3IJJXhtbTEw
LCV4bW0xNQotCWRlY2wJJXIxMGQKLQlqbXAJLkxlbmNfc2JveAotLmFsaWduCTE2Ci0uTGVuY19s
b29wOgotCXB4b3IJMCglcmF4KSwleG1tMTUKLQlweG9yCTE2KCVyYXgpLCV4bW0wCi0JcHhvcgkz
MiglcmF4KSwleG1tMQotCXB4b3IJNDgoJXJheCksJXhtbTIKLS5ieXRlCTEwMiw2OCwxNSw1Niww
LDI1NQotLmJ5dGUJMTAyLDE1LDU2LDAsMTk5Ci0JcHhvcgk2NCglcmF4KSwleG1tMwotCXB4b3IJ
ODAoJXJheCksJXhtbTQKLS5ieXRlCTEwMiwxNSw1NiwwLDIwNwotLmJ5dGUJMTAyLDE1LDU2LDAs
MjE1Ci0JcHhvcgk5NiglcmF4KSwleG1tNQotCXB4b3IJMTEyKCVyYXgpLCV4bW02Ci0uYnl0ZQkx
MDIsMTUsNTYsMCwyMjMKLS5ieXRlCTEwMiwxNSw1NiwwLDIzMQotLmJ5dGUJMTAyLDE1LDU2LDAs
MjM5Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyNDcKLQlsZWFxCTEyOCglcmF4KSwlcmF4Ci0uTGVuY19z
Ym94OgotCXB4b3IJJXhtbTUsJXhtbTQKLQlweG9yCSV4bW0wLCV4bW0xCi0JcHhvcgkleG1tMTUs
JXhtbTIKLQlweG9yCSV4bW0xLCV4bW01Ci0JcHhvcgkleG1tMTUsJXhtbTQKLQotCXB4b3IJJXht
bTIsJXhtbTUKLQlweG9yCSV4bW02LCV4bW0yCi0JcHhvcgkleG1tNCwleG1tNgotCXB4b3IJJXht
bTMsJXhtbTIKLQlweG9yCSV4bW00LCV4bW0zCi0JcHhvcgkleG1tMCwleG1tMgotCi0JcHhvcgkl
eG1tNiwleG1tMQotCXB4b3IJJXhtbTQsJXhtbTAKLQltb3ZkcWEJJXhtbTYsJXhtbTEwCi0JbW92
ZHFhCSV4bW0wLCV4bW05Ci0JbW92ZHFhCSV4bW00LCV4bW04Ci0JbW92ZHFhCSV4bW0xLCV4bW0x
MgotCW1vdmRxYQkleG1tNSwleG1tMTEKLQotCXB4b3IJJXhtbTMsJXhtbTEwCi0JcHhvcgkleG1t
MSwleG1tOQotCXB4b3IJJXhtbTIsJXhtbTgKLQltb3ZkcWEJJXhtbTEwLCV4bW0xMwotCXB4b3IJ
JXhtbTMsJXhtbTEyCi0JbW92ZHFhCSV4bW05LCV4bW03Ci0JcHhvcgkleG1tMTUsJXhtbTExCi0J
bW92ZHFhCSV4bW0xMCwleG1tMTQKLQotCXBvcgkleG1tOCwleG1tOQotCXBvcgkleG1tMTEsJXht
bTEwCi0JcHhvcgkleG1tNywleG1tMTQKLQlwYW5kCSV4bW0xMSwleG1tMTMKLQlweG9yCSV4bW04
LCV4bW0xMQotCXBhbmQJJXhtbTgsJXhtbTcKLQlwYW5kCSV4bW0xMSwleG1tMTQKLQltb3ZkcWEJ
JXhtbTIsJXhtbTExCi0JcHhvcgkleG1tMTUsJXhtbTExCi0JcGFuZAkleG1tMTEsJXhtbTEyCi0J
cHhvcgkleG1tMTIsJXhtbTEwCi0JcHhvcgkleG1tMTIsJXhtbTkKLQltb3ZkcWEJJXhtbTYsJXht
bTEyCi0JbW92ZHFhCSV4bW00LCV4bW0xMQotCXB4b3IJJXhtbTAsJXhtbTEyCi0JcHhvcgkleG1t
NSwleG1tMTEKLQltb3ZkcWEJJXhtbTEyLCV4bW04Ci0JcGFuZAkleG1tMTEsJXhtbTEyCi0JcG9y
CSV4bW0xMSwleG1tOAotCXB4b3IJJXhtbTEyLCV4bW03Ci0JcHhvcgkleG1tMTQsJXhtbTEwCi0J
cHhvcgkleG1tMTMsJXhtbTkKLQlweG9yCSV4bW0xNCwleG1tOAotCW1vdmRxYQkleG1tMSwleG1t
MTEKLQlweG9yCSV4bW0xMywleG1tNwotCW1vdmRxYQkleG1tMywleG1tMTIKLQlweG9yCSV4bW0x
MywleG1tOAotCW1vdmRxYQkleG1tMCwleG1tMTMKLQlwYW5kCSV4bW0yLCV4bW0xMQotCW1vdmRx
YQkleG1tNiwleG1tMTQKLQlwYW5kCSV4bW0xNSwleG1tMTIKLQlwYW5kCSV4bW00LCV4bW0xMwot
CXBvcgkleG1tNSwleG1tMTQKLQlweG9yCSV4bW0xMSwleG1tMTAKLQlweG9yCSV4bW0xMiwleG1t
OQotCXB4b3IJJXhtbTEzLCV4bW04Ci0JcHhvcgkleG1tMTQsJXhtbTcKLQotCi0KLQotCi0JbW92
ZHFhCSV4bW0xMCwleG1tMTEKLQlwYW5kCSV4bW04LCV4bW0xMAotCXB4b3IJJXhtbTksJXhtbTEx
Ci0KLQltb3ZkcWEJJXhtbTcsJXhtbTEzCi0JbW92ZHFhCSV4bW0xMSwleG1tMTQKLQlweG9yCSV4
bW0xMCwleG1tMTMKLQlwYW5kCSV4bW0xMywleG1tMTQKLQotCW1vdmRxYQkleG1tOCwleG1tMTIK
LQlweG9yCSV4bW05LCV4bW0xNAotCXB4b3IJJXhtbTcsJXhtbTEyCi0KLQlweG9yCSV4bW05LCV4
bW0xMAotCi0JcGFuZAkleG1tMTAsJXhtbTEyCi0KLQltb3ZkcWEJJXhtbTEzLCV4bW05Ci0JcHhv
cgkleG1tNywleG1tMTIKLQotCXB4b3IJJXhtbTEyLCV4bW05Ci0JcHhvcgkleG1tMTIsJXhtbTgK
LQotCXBhbmQJJXhtbTcsJXhtbTkKLQotCXB4b3IJJXhtbTksJXhtbTEzCi0JcHhvcgkleG1tOSwl
eG1tOAotCi0JcGFuZAkleG1tMTQsJXhtbTEzCi0KLQlweG9yCSV4bW0xMSwleG1tMTMKLQltb3Zk
cWEJJXhtbTUsJXhtbTExCi0JbW92ZHFhCSV4bW00LCV4bW03Ci0JbW92ZHFhCSV4bW0xNCwleG1t
OQotCXB4b3IJJXhtbTEzLCV4bW05Ci0JcGFuZAkleG1tNSwleG1tOQotCXB4b3IJJXhtbTQsJXht
bTUKLQlwYW5kCSV4bW0xNCwleG1tNAotCXBhbmQJJXhtbTEzLCV4bW01Ci0JcHhvcgkleG1tNCwl
eG1tNQotCXB4b3IJJXhtbTksJXhtbTQKLQlweG9yCSV4bW0xNSwleG1tMTEKLQlweG9yCSV4bW0y
LCV4bW03Ci0JcHhvcgkleG1tMTIsJXhtbTE0Ci0JcHhvcgkleG1tOCwleG1tMTMKLQltb3ZkcWEJ
JXhtbTE0LCV4bW0xMAotCW1vdmRxYQkleG1tMTIsJXhtbTkKLQlweG9yCSV4bW0xMywleG1tMTAK
LQlweG9yCSV4bW04LCV4bW05Ci0JcGFuZAkleG1tMTEsJXhtbTEwCi0JcGFuZAkleG1tMTUsJXht
bTkKLQlweG9yCSV4bW03LCV4bW0xMQotCXB4b3IJJXhtbTIsJXhtbTE1Ci0JcGFuZAkleG1tMTQs
JXhtbTcKLQlwYW5kCSV4bW0xMiwleG1tMgotCXBhbmQJJXhtbTEzLCV4bW0xMQotCXBhbmQJJXht
bTgsJXhtbTE1Ci0JcHhvcgkleG1tMTEsJXhtbTcKLQlweG9yCSV4bW0yLCV4bW0xNQotCXB4b3IJ
JXhtbTEwLCV4bW0xMQotCXB4b3IJJXhtbTksJXhtbTIKLQlweG9yCSV4bW0xMSwleG1tNQotCXB4
b3IJJXhtbTExLCV4bW0xNQotCXB4b3IJJXhtbTcsJXhtbTQKLQlweG9yCSV4bW03LCV4bW0yCi0K
LQltb3ZkcWEJJXhtbTYsJXhtbTExCi0JbW92ZHFhCSV4bW0wLCV4bW03Ci0JcHhvcgkleG1tMywl
eG1tMTEKLQlweG9yCSV4bW0xLCV4bW03Ci0JbW92ZHFhCSV4bW0xNCwleG1tMTAKLQltb3ZkcWEJ
JXhtbTEyLCV4bW05Ci0JcHhvcgkleG1tMTMsJXhtbTEwCi0JcHhvcgkleG1tOCwleG1tOQotCXBh
bmQJJXhtbTExLCV4bW0xMAotCXBhbmQJJXhtbTMsJXhtbTkKLQlweG9yCSV4bW03LCV4bW0xMQot
CXB4b3IJJXhtbTEsJXhtbTMKLQlwYW5kCSV4bW0xNCwleG1tNwotCXBhbmQJJXhtbTEyLCV4bW0x
Ci0JcGFuZAkleG1tMTMsJXhtbTExCi0JcGFuZAkleG1tOCwleG1tMwotCXB4b3IJJXhtbTExLCV4
bW03Ci0JcHhvcgkleG1tMSwleG1tMwotCXB4b3IJJXhtbTEwLCV4bW0xMQotCXB4b3IJJXhtbTks
JXhtbTEKLQlweG9yCSV4bW0xMiwleG1tMTQKLQlweG9yCSV4bW04LCV4bW0xMwotCW1vdmRxYQkl
eG1tMTQsJXhtbTEwCi0JcHhvcgkleG1tMTMsJXhtbTEwCi0JcGFuZAkleG1tNiwleG1tMTAKLQlw
eG9yCSV4bW0wLCV4bW02Ci0JcGFuZAkleG1tMTQsJXhtbTAKLQlwYW5kCSV4bW0xMywleG1tNgot
CXB4b3IJJXhtbTAsJXhtbTYKLQlweG9yCSV4bW0xMCwleG1tMAotCXB4b3IJJXhtbTExLCV4bW02
Ci0JcHhvcgkleG1tMTEsJXhtbTMKLQlweG9yCSV4bW03LCV4bW0wCi0JcHhvcgkleG1tNywleG1t
MQotCXB4b3IJJXhtbTE1LCV4bW02Ci0JcHhvcgkleG1tNSwleG1tMAotCXB4b3IJJXhtbTYsJXht
bTMKLQlweG9yCSV4bW0xNSwleG1tNQotCXB4b3IJJXhtbTAsJXhtbTE1Ci0KLQlweG9yCSV4bW00
LCV4bW0wCi0JcHhvcgkleG1tMSwleG1tNAotCXB4b3IJJXhtbTIsJXhtbTEKLQlweG9yCSV4bW00
LCV4bW0yCi0JcHhvcgkleG1tNCwleG1tMwotCi0JcHhvcgkleG1tMiwleG1tNQotCWRlY2wJJXIx
MGQKLQlqbAkuTGVuY19kb25lCi0JcHNodWZkCSQweDkzLCV4bW0xNSwleG1tNwotCXBzaHVmZAkk
MHg5MywleG1tMCwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQweDkzLCV4bW0z
LCV4bW05Ci0JcHhvcgkleG1tOCwleG1tMAotCXBzaHVmZAkkMHg5MywleG1tNSwleG1tMTAKLQlw
eG9yCSV4bW05LCV4bW0zCi0JcHNodWZkCSQweDkzLCV4bW0yLCV4bW0xMQotCXB4b3IJJXhtbTEw
LCV4bW01Ci0JcHNodWZkCSQweDkzLCV4bW02LCV4bW0xMgotCXB4b3IJJXhtbTExLCV4bW0yCi0J
cHNodWZkCSQweDkzLCV4bW0xLCV4bW0xMwotCXB4b3IJJXhtbTEyLCV4bW02Ci0JcHNodWZkCSQw
eDkzLCV4bW00LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW0xCi0JcHhvcgkleG1tMTQsJXhtbTQK
LQotCXB4b3IJJXhtbTE1LCV4bW04Ci0JcHhvcgkleG1tNCwleG1tNwotCXB4b3IJJXhtbTQsJXht
bTgKLQlwc2h1ZmQJJDB4NEUsJXhtbTE1LCV4bW0xNQotCXB4b3IJJXhtbTAsJXhtbTkKLQlwc2h1
ZmQJJDB4NEUsJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0yLCV4bW0xMgotCXB4b3IJJXhtbTcsJXht
bTE1Ci0JcHhvcgkleG1tNiwleG1tMTMKLQlweG9yCSV4bW04LCV4bW0wCi0JcHhvcgkleG1tNSwl
eG1tMTEKLQlwc2h1ZmQJJDB4NEUsJXhtbTIsJXhtbTcKLQlweG9yCSV4bW0xLCV4bW0xNAotCXBz
aHVmZAkkMHg0RSwleG1tNiwleG1tOAotCXB4b3IJJXhtbTMsJXhtbTEwCi0JcHNodWZkCSQweDRF
LCV4bW01LCV4bW0yCi0JcHhvcgkleG1tNCwleG1tMTAKLQlwc2h1ZmQJJDB4NEUsJXhtbTQsJXht
bTYKLQlweG9yCSV4bW00LCV4bW0xMQotCXBzaHVmZAkkMHg0RSwleG1tMSwleG1tNQotCXB4b3IJ
JXhtbTExLCV4bW03Ci0JcHNodWZkCSQweDRFLCV4bW0zLCV4bW0xCi0JcHhvcgkleG1tMTIsJXht
bTgKLQlweG9yCSV4bW0xMCwleG1tMgotCXB4b3IJJXhtbTE0LCV4bW02Ci0JcHhvcgkleG1tMTMs
JXhtbTUKLQltb3ZkcWEJJXhtbTcsJXhtbTMKLQlweG9yCSV4bW05LCV4bW0xCi0JbW92ZHFhCSV4
bW04LCV4bW00Ci0JbW92ZHFhCTQ4KCVyMTEpLCV4bW03Ci0Jam56CS5MZW5jX2xvb3AKLQltb3Zk
cWEJNjQoJXIxMSksJXhtbTcKLQlqbXAJLkxlbmNfbG9vcAotLmFsaWduCTE2Ci0uTGVuY19kb25l
OgotCW1vdmRxYQkwKCVyMTEpLCV4bW03Ci0JbW92ZHFhCTE2KCVyMTEpLCV4bW04Ci0JbW92ZHFh
CSV4bW0xLCV4bW05Ci0JcHNybHEJJDEsJXhtbTEKLQltb3ZkcWEJJXhtbTIsJXhtbTEwCi0JcHNy
bHEJJDEsJXhtbTIKLQlweG9yCSV4bW00LCV4bW0xCi0JcHhvcgkleG1tNiwleG1tMgotCXBhbmQJ
JXhtbTcsJXhtbTEKLQlwYW5kCSV4bW03LCV4bW0yCi0JcHhvcgkleG1tMSwleG1tNAotCXBzbGxx
CSQxLCV4bW0xCi0JcHhvcgkleG1tMiwleG1tNgotCXBzbGxxCSQxLCV4bW0yCi0JcHhvcgkleG1t
OSwleG1tMQotCXB4b3IJJXhtbTEwLCV4bW0yCi0JbW92ZHFhCSV4bW0zLCV4bW05Ci0JcHNybHEJ
JDEsJXhtbTMKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBzcmxxCSQxLCV4bW0xNQotCXB4b3IJ
JXhtbTUsJXhtbTMKLQlweG9yCSV4bW0wLCV4bW0xNQotCXBhbmQJJXhtbTcsJXhtbTMKLQlwYW5k
CSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTMsJXhtbTUKLQlwc2xscQkkMSwleG1tMwotCXB4b3IJ
JXhtbTE1LCV4bW0wCi0JcHNsbHEJJDEsJXhtbTE1Ci0JcHhvcgkleG1tOSwleG1tMwotCXB4b3IJ
JXhtbTEwLCV4bW0xNQotCW1vdmRxYQkzMiglcjExKSwleG1tNwotCW1vdmRxYQkleG1tNiwleG1t
OQotCXBzcmxxCSQyLCV4bW02Ci0JbW92ZHFhCSV4bW0yLCV4bW0xMAotCXBzcmxxCSQyLCV4bW0y
Ci0JcHhvcgkleG1tNCwleG1tNgotCXB4b3IJJXhtbTEsJXhtbTIKLQlwYW5kCSV4bW04LCV4bW02
Ci0JcGFuZAkleG1tOCwleG1tMgotCXB4b3IJJXhtbTYsJXhtbTQKLQlwc2xscQkkMiwleG1tNgot
CXB4b3IJJXhtbTIsJXhtbTEKLQlwc2xscQkkMiwleG1tMgotCXB4b3IJJXhtbTksJXhtbTYKLQlw
eG9yCSV4bW0xMCwleG1tMgotCW1vdmRxYQkleG1tMCwleG1tOQotCXBzcmxxCSQyLCV4bW0wCi0J
bW92ZHFhCSV4bW0xNSwleG1tMTAKLQlwc3JscQkkMiwleG1tMTUKLQlweG9yCSV4bW01LCV4bW0w
Ci0JcHhvcgkleG1tMywleG1tMTUKLQlwYW5kCSV4bW04LCV4bW0wCi0JcGFuZAkleG1tOCwleG1t
MTUKLQlweG9yCSV4bW0wLCV4bW01Ci0JcHNsbHEJJDIsJXhtbTAKLQlweG9yCSV4bW0xNSwleG1t
MwotCXBzbGxxCSQyLCV4bW0xNQotCXB4b3IJJXhtbTksJXhtbTAKLQlweG9yCSV4bW0xMCwleG1t
MTUKLQltb3ZkcWEJJXhtbTUsJXhtbTkKLQlwc3JscQkkNCwleG1tNQotCW1vdmRxYQkleG1tMywl
eG1tMTAKLQlwc3JscQkkNCwleG1tMwotCXB4b3IJJXhtbTQsJXhtbTUKLQlweG9yCSV4bW0xLCV4
bW0zCi0JcGFuZAkleG1tNywleG1tNQotCXBhbmQJJXhtbTcsJXhtbTMKLQlweG9yCSV4bW01LCV4
bW00Ci0JcHNsbHEJJDQsJXhtbTUKLQlweG9yCSV4bW0zLCV4bW0xCi0JcHNsbHEJJDQsJXhtbTMK
LQlweG9yCSV4bW05LCV4bW01Ci0JcHhvcgkleG1tMTAsJXhtbTMKLQltb3ZkcWEJJXhtbTAsJXht
bTkKLQlwc3JscQkkNCwleG1tMAotCW1vdmRxYQkleG1tMTUsJXhtbTEwCi0JcHNybHEJJDQsJXht
bTE1Ci0JcHhvcgkleG1tNiwleG1tMAotCXB4b3IJJXhtbTIsJXhtbTE1Ci0JcGFuZAkleG1tNywl
eG1tMAotCXBhbmQJJXhtbTcsJXhtbTE1Ci0JcHhvcgkleG1tMCwleG1tNgotCXBzbGxxCSQ0LCV4
bW0wCi0JcHhvcgkleG1tMTUsJXhtbTIKLQlwc2xscQkkNCwleG1tMTUKLQlweG9yCSV4bW05LCV4
bW0wCi0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JbW92ZHFhCSglcmF4KSwleG1tNwotCXB4b3IJJXht
bTcsJXhtbTMKLQlweG9yCSV4bW03LCV4bW01Ci0JcHhvcgkleG1tNywleG1tMgotCXB4b3IJJXht
bTcsJXhtbTYKLQlweG9yCSV4bW03LCV4bW0xCi0JcHhvcgkleG1tNywleG1tNAotCXB4b3IJJXht
bTcsJXhtbTE1Ci0JcHhvcgkleG1tNywleG1tMAotCS5ieXRlCTB4ZjMsMHhjMwotLnNpemUJX2Jz
YWVzX2VuY3J5cHQ4LC4tX2JzYWVzX2VuY3J5cHQ4Ci0KLS50eXBlCV9ic2Flc19kZWNyeXB0OCxA
ZnVuY3Rpb24KLS5hbGlnbgk2NAotX2JzYWVzX2RlY3J5cHQ4OgotCWxlYXEJLkxCUzAoJXJpcCks
JXIxMQotCi0JbW92ZHFhCSglcmF4KSwleG1tOAotCWxlYXEJMTYoJXJheCksJXJheAotCW1vdmRx
YQktNDgoJXIxMSksJXhtbTcKLQlweG9yCSV4bW04LCV4bW0xNQotCXB4b3IJJXhtbTgsJXhtbTAK
LQlweG9yCSV4bW04LCV4bW0xCi0JcHhvcgkleG1tOCwleG1tMgotLmJ5dGUJMTAyLDY4LDE1LDU2
LDAsMjU1Ci0uYnl0ZQkxMDIsMTUsNTYsMCwxOTkKLQlweG9yCSV4bW04LCV4bW0zCi0JcHhvcgkl
eG1tOCwleG1tNAotLmJ5dGUJMTAyLDE1LDU2LDAsMjA3Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMTUK
LQlweG9yCSV4bW04LCV4bW01Ci0JcHhvcgkleG1tOCwleG1tNgotLmJ5dGUJMTAyLDE1LDU2LDAs
MjIzCi0uYnl0ZQkxMDIsMTUsNTYsMCwyMzEKLS5ieXRlCTEwMiwxNSw1NiwwLDIzOQotLmJ5dGUJ
MTAyLDE1LDU2LDAsMjQ3Ci0JbW92ZHFhCTAoJXIxMSksJXhtbTcKLQltb3ZkcWEJMTYoJXIxMSks
JXhtbTgKLQltb3ZkcWEJJXhtbTUsJXhtbTkKLQlwc3JscQkkMSwleG1tNQotCW1vdmRxYQkleG1t
MywleG1tMTAKLQlwc3JscQkkMSwleG1tMwotCXB4b3IJJXhtbTYsJXhtbTUKLQlweG9yCSV4bW00
LCV4bW0zCi0JcGFuZAkleG1tNywleG1tNQotCXBhbmQJJXhtbTcsJXhtbTMKLQlweG9yCSV4bW01
LCV4bW02Ci0JcHNsbHEJJDEsJXhtbTUKLQlweG9yCSV4bW0zLCV4bW00Ci0JcHNsbHEJJDEsJXht
bTMKLQlweG9yCSV4bW05LCV4bW01Ci0JcHhvcgkleG1tMTAsJXhtbTMKLQltb3ZkcWEJJXhtbTEs
JXhtbTkKLQlwc3JscQkkMSwleG1tMQotCW1vdmRxYQkleG1tMTUsJXhtbTEwCi0JcHNybHEJJDEs
JXhtbTE1Ci0JcHhvcgkleG1tMiwleG1tMQotCXB4b3IJJXhtbTAsJXhtbTE1Ci0JcGFuZAkleG1t
NywleG1tMQotCXBhbmQJJXhtbTcsJXhtbTE1Ci0JcHhvcgkleG1tMSwleG1tMgotCXBzbGxxCSQx
LCV4bW0xCi0JcHhvcgkleG1tMTUsJXhtbTAKLQlwc2xscQkkMSwleG1tMTUKLQlweG9yCSV4bW05
LCV4bW0xCi0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JbW92ZHFhCTMyKCVyMTEpLCV4bW03Ci0JbW92
ZHFhCSV4bW00LCV4bW05Ci0JcHNybHEJJDIsJXhtbTQKLQltb3ZkcWEJJXhtbTMsJXhtbTEwCi0J
cHNybHEJJDIsJXhtbTMKLQlweG9yCSV4bW02LCV4bW00Ci0JcHhvcgkleG1tNSwleG1tMwotCXBh
bmQJJXhtbTgsJXhtbTQKLQlwYW5kCSV4bW04LCV4bW0zCi0JcHhvcgkleG1tNCwleG1tNgotCXBz
bGxxCSQyLCV4bW00Ci0JcHhvcgkleG1tMywleG1tNQotCXBzbGxxCSQyLCV4bW0zCi0JcHhvcgkl
eG1tOSwleG1tNAotCXB4b3IJJXhtbTEwLCV4bW0zCi0JbW92ZHFhCSV4bW0wLCV4bW05Ci0JcHNy
bHEJJDIsJXhtbTAKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBzcmxxCSQyLCV4bW0xNQotCXB4
b3IJJXhtbTIsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTAKLQlw
YW5kCSV4bW04LCV4bW0xNQotCXB4b3IJJXhtbTAsJXhtbTIKLQlwc2xscQkkMiwleG1tMAotCXB4
b3IJJXhtbTE1LCV4bW0xCi0JcHNsbHEJJDIsJXhtbTE1Ci0JcHhvcgkleG1tOSwleG1tMAotCXB4
b3IJJXhtbTEwLCV4bW0xNQotCW1vdmRxYQkleG1tMiwleG1tOQotCXBzcmxxCSQ0LCV4bW0yCi0J
bW92ZHFhCSV4bW0xLCV4bW0xMAotCXBzcmxxCSQ0LCV4bW0xCi0JcHhvcgkleG1tNiwleG1tMgot
CXB4b3IJJXhtbTUsJXhtbTEKLQlwYW5kCSV4bW03LCV4bW0yCi0JcGFuZAkleG1tNywleG1tMQot
CXB4b3IJJXhtbTIsJXhtbTYKLQlwc2xscQkkNCwleG1tMgotCXB4b3IJJXhtbTEsJXhtbTUKLQlw
c2xscQkkNCwleG1tMQotCXB4b3IJJXhtbTksJXhtbTIKLQlweG9yCSV4bW0xMCwleG1tMQotCW1v
dmRxYQkleG1tMCwleG1tOQotCXBzcmxxCSQ0LCV4bW0wCi0JbW92ZHFhCSV4bW0xNSwleG1tMTAK
LQlwc3JscQkkNCwleG1tMTUKLQlweG9yCSV4bW00LCV4bW0wCi0JcHhvcgkleG1tMywleG1tMTUK
LQlwYW5kCSV4bW03LCV4bW0wCi0JcGFuZAkleG1tNywleG1tMTUKLQlweG9yCSV4bW0wLCV4bW00
Ci0JcHNsbHEJJDQsJXhtbTAKLQlweG9yCSV4bW0xNSwleG1tMwotCXBzbGxxCSQ0LCV4bW0xNQot
CXB4b3IJJXhtbTksJXhtbTAKLQlweG9yCSV4bW0xMCwleG1tMTUKLQlkZWNsCSVyMTBkCi0Jam1w
CS5MZGVjX3Nib3gKLS5hbGlnbgkxNgotLkxkZWNfbG9vcDoKLQlweG9yCTAoJXJheCksJXhtbTE1
Ci0JcHhvcgkxNiglcmF4KSwleG1tMAotCXB4b3IJMzIoJXJheCksJXhtbTEKLQlweG9yCTQ4KCVy
YXgpLCV4bW0yCi0uYnl0ZQkxMDIsNjgsMTUsNTYsMCwyNTUKLS5ieXRlCTEwMiwxNSw1NiwwLDE5
OQotCXB4b3IJNjQoJXJheCksJXhtbTMKLQlweG9yCTgwKCVyYXgpLCV4bW00Ci0uYnl0ZQkxMDIs
MTUsNTYsMCwyMDcKLS5ieXRlCTEwMiwxNSw1NiwwLDIxNQotCXB4b3IJOTYoJXJheCksJXhtbTUK
LQlweG9yCTExMiglcmF4KSwleG1tNgotLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCi0uYnl0ZQkxMDIs
MTUsNTYsMCwyMzEKLS5ieXRlCTEwMiwxNSw1NiwwLDIzOQotLmJ5dGUJMTAyLDE1LDU2LDAsMjQ3
Ci0JbGVhcQkxMjgoJXJheCksJXJheAotLkxkZWNfc2JveDoKLQlweG9yCSV4bW0zLCV4bW0yCi0K
LQlweG9yCSV4bW02LCV4bW0zCi0JcHhvcgkleG1tNiwleG1tMQotCXB4b3IJJXhtbTMsJXhtbTUK
LQlweG9yCSV4bW01LCV4bW02Ci0JcHhvcgkleG1tNiwleG1tMAotCi0JcHhvcgkleG1tMCwleG1t
MTUKLQlweG9yCSV4bW00LCV4bW0xCi0JcHhvcgkleG1tMTUsJXhtbTIKLQlweG9yCSV4bW0xNSwl
eG1tNAotCXB4b3IJJXhtbTIsJXhtbTAKLQltb3ZkcWEJJXhtbTIsJXhtbTEwCi0JbW92ZHFhCSV4
bW02LCV4bW05Ci0JbW92ZHFhCSV4bW0wLCV4bW04Ci0JbW92ZHFhCSV4bW0zLCV4bW0xMgotCW1v
dmRxYQkleG1tNCwleG1tMTEKLQotCXB4b3IJJXhtbTE1LCV4bW0xMAotCXB4b3IJJXhtbTMsJXht
bTkKLQlweG9yCSV4bW01LCV4bW04Ci0JbW92ZHFhCSV4bW0xMCwleG1tMTMKLQlweG9yCSV4bW0x
NSwleG1tMTIKLQltb3ZkcWEJJXhtbTksJXhtbTcKLQlweG9yCSV4bW0xLCV4bW0xMQotCW1vdmRx
YQkleG1tMTAsJXhtbTE0Ci0KLQlwb3IJJXhtbTgsJXhtbTkKLQlwb3IJJXhtbTExLCV4bW0xMAot
CXB4b3IJJXhtbTcsJXhtbTE0Ci0JcGFuZAkleG1tMTEsJXhtbTEzCi0JcHhvcgkleG1tOCwleG1t
MTEKLQlwYW5kCSV4bW04LCV4bW03Ci0JcGFuZAkleG1tMTEsJXhtbTE0Ci0JbW92ZHFhCSV4bW01
LCV4bW0xMQotCXB4b3IJJXhtbTEsJXhtbTExCi0JcGFuZAkleG1tMTEsJXhtbTEyCi0JcHhvcgkl
eG1tMTIsJXhtbTEwCi0JcHhvcgkleG1tMTIsJXhtbTkKLQltb3ZkcWEJJXhtbTIsJXhtbTEyCi0J
bW92ZHFhCSV4bW0wLCV4bW0xMQotCXB4b3IJJXhtbTYsJXhtbTEyCi0JcHhvcgkleG1tNCwleG1t
MTEKLQltb3ZkcWEJJXhtbTEyLCV4bW04Ci0JcGFuZAkleG1tMTEsJXhtbTEyCi0JcG9yCSV4bW0x
MSwleG1tOAotCXB4b3IJJXhtbTEyLCV4bW03Ci0JcHhvcgkleG1tMTQsJXhtbTEwCi0JcHhvcgkl
eG1tMTMsJXhtbTkKLQlweG9yCSV4bW0xNCwleG1tOAotCW1vdmRxYQkleG1tMywleG1tMTEKLQlw
eG9yCSV4bW0xMywleG1tNwotCW1vdmRxYQkleG1tMTUsJXhtbTEyCi0JcHhvcgkleG1tMTMsJXht
bTgKLQltb3ZkcWEJJXhtbTYsJXhtbTEzCi0JcGFuZAkleG1tNSwleG1tMTEKLQltb3ZkcWEJJXht
bTIsJXhtbTE0Ci0JcGFuZAkleG1tMSwleG1tMTIKLQlwYW5kCSV4bW0wLCV4bW0xMwotCXBvcgkl
eG1tNCwleG1tMTQKLQlweG9yCSV4bW0xMSwleG1tMTAKLQlweG9yCSV4bW0xMiwleG1tOQotCXB4
b3IJJXhtbTEzLCV4bW04Ci0JcHhvcgkleG1tMTQsJXhtbTcKLQotCi0KLQotCi0JbW92ZHFhCSV4
bW0xMCwleG1tMTEKLQlwYW5kCSV4bW04LCV4bW0xMAotCXB4b3IJJXhtbTksJXhtbTExCi0KLQlt
b3ZkcWEJJXhtbTcsJXhtbTEzCi0JbW92ZHFhCSV4bW0xMSwleG1tMTQKLQlweG9yCSV4bW0xMCwl
eG1tMTMKLQlwYW5kCSV4bW0xMywleG1tMTQKLQotCW1vdmRxYQkleG1tOCwleG1tMTIKLQlweG9y
CSV4bW05LCV4bW0xNAotCXB4b3IJJXhtbTcsJXhtbTEyCi0KLQlweG9yCSV4bW05LCV4bW0xMAot
Ci0JcGFuZAkleG1tMTAsJXhtbTEyCi0KLQltb3ZkcWEJJXhtbTEzLCV4bW05Ci0JcHhvcgkleG1t
NywleG1tMTIKLQotCXB4b3IJJXhtbTEyLCV4bW05Ci0JcHhvcgkleG1tMTIsJXhtbTgKLQotCXBh
bmQJJXhtbTcsJXhtbTkKLQotCXB4b3IJJXhtbTksJXhtbTEzCi0JcHhvcgkleG1tOSwleG1tOAot
Ci0JcGFuZAkleG1tMTQsJXhtbTEzCi0KLQlweG9yCSV4bW0xMSwleG1tMTMKLQltb3ZkcWEJJXht
bTQsJXhtbTExCi0JbW92ZHFhCSV4bW0wLCV4bW03Ci0JbW92ZHFhCSV4bW0xNCwleG1tOQotCXB4
b3IJJXhtbTEzLCV4bW05Ci0JcGFuZAkleG1tNCwleG1tOQotCXB4b3IJJXhtbTAsJXhtbTQKLQlw
YW5kCSV4bW0xNCwleG1tMAotCXBhbmQJJXhtbTEzLCV4bW00Ci0JcHhvcgkleG1tMCwleG1tNAot
CXB4b3IJJXhtbTksJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xMQotCXB4b3IJJXhtbTUsJXhtbTcK
LQlweG9yCSV4bW0xMiwleG1tMTQKLQlweG9yCSV4bW04LCV4bW0xMwotCW1vdmRxYQkleG1tMTQs
JXhtbTEwCi0JbW92ZHFhCSV4bW0xMiwleG1tOQotCXB4b3IJJXhtbTEzLCV4bW0xMAotCXB4b3IJ
JXhtbTgsJXhtbTkKLQlwYW5kCSV4bW0xMSwleG1tMTAKLQlwYW5kCSV4bW0xLCV4bW05Ci0JcHhv
cgkleG1tNywleG1tMTEKLQlweG9yCSV4bW01LCV4bW0xCi0JcGFuZAkleG1tMTQsJXhtbTcKLQlw
YW5kCSV4bW0xMiwleG1tNQotCXBhbmQJJXhtbTEzLCV4bW0xMQotCXBhbmQJJXhtbTgsJXhtbTEK
LQlweG9yCSV4bW0xMSwleG1tNwotCXB4b3IJJXhtbTUsJXhtbTEKLQlweG9yCSV4bW0xMCwleG1t
MTEKLQlweG9yCSV4bW05LCV4bW01Ci0JcHhvcgkleG1tMTEsJXhtbTQKLQlweG9yCSV4bW0xMSwl
eG1tMQotCXB4b3IJJXhtbTcsJXhtbTAKLQlweG9yCSV4bW03LCV4bW01Ci0KLQltb3ZkcWEJJXht
bTIsJXhtbTExCi0JbW92ZHFhCSV4bW02LCV4bW03Ci0JcHhvcgkleG1tMTUsJXhtbTExCi0JcHhv
cgkleG1tMywleG1tNwotCW1vdmRxYQkleG1tMTQsJXhtbTEwCi0JbW92ZHFhCSV4bW0xMiwleG1t
OQotCXB4b3IJJXhtbTEzLCV4bW0xMAotCXB4b3IJJXhtbTgsJXhtbTkKLQlwYW5kCSV4bW0xMSwl
eG1tMTAKLQlwYW5kCSV4bW0xNSwleG1tOQotCXB4b3IJJXhtbTcsJXhtbTExCi0JcHhvcgkleG1t
MywleG1tMTUKLQlwYW5kCSV4bW0xNCwleG1tNwotCXBhbmQJJXhtbTEyLCV4bW0zCi0JcGFuZAkl
eG1tMTMsJXhtbTExCi0JcGFuZAkleG1tOCwleG1tMTUKLQlweG9yCSV4bW0xMSwleG1tNwotCXB4
b3IJJXhtbTMsJXhtbTE1Ci0JcHhvcgkleG1tMTAsJXhtbTExCi0JcHhvcgkleG1tOSwleG1tMwot
CXB4b3IJJXhtbTEyLCV4bW0xNAotCXB4b3IJJXhtbTgsJXhtbTEzCi0JbW92ZHFhCSV4bW0xNCwl
eG1tMTAKLQlweG9yCSV4bW0xMywleG1tMTAKLQlwYW5kCSV4bW0yLCV4bW0xMAotCXB4b3IJJXht
bTYsJXhtbTIKLQlwYW5kCSV4bW0xNCwleG1tNgotCXBhbmQJJXhtbTEzLCV4bW0yCi0JcHhvcgkl
eG1tNiwleG1tMgotCXB4b3IJJXhtbTEwLCV4bW02Ci0JcHhvcgkleG1tMTEsJXhtbTIKLQlweG9y
CSV4bW0xMSwleG1tMTUKLQlweG9yCSV4bW03LCV4bW02Ci0JcHhvcgkleG1tNywleG1tMwotCXB4
b3IJJXhtbTYsJXhtbTAKLQlweG9yCSV4bW00LCV4bW01Ci0KLQlweG9yCSV4bW0wLCV4bW0zCi0J
cHhvcgkleG1tNiwleG1tMQotCXB4b3IJJXhtbTYsJXhtbTQKLQlweG9yCSV4bW0xLCV4bW0zCi0J
cHhvcgkleG1tMTUsJXhtbTYKLQlweG9yCSV4bW00LCV4bW0zCi0JcHhvcgkleG1tNSwleG1tMgot
CXB4b3IJJXhtbTAsJXhtbTUKLQlweG9yCSV4bW0zLCV4bW0yCi0KLQlweG9yCSV4bW0xNSwleG1t
MwotCXB4b3IJJXhtbTIsJXhtbTYKLQlkZWNsCSVyMTBkCi0JamwJLkxkZWNfZG9uZQotCi0JcHNo
dWZkCSQweDRFLCV4bW0xNSwleG1tNwotCXBzaHVmZAkkMHg0RSwleG1tMiwleG1tMTMKLQlweG9y
CSV4bW0xNSwleG1tNwotCXBzaHVmZAkkMHg0RSwleG1tNCwleG1tMTQKLQlweG9yCSV4bW0yLCV4
bW0xMwotCXBzaHVmZAkkMHg0RSwleG1tMCwleG1tOAotCXB4b3IJJXhtbTQsJXhtbTE0Ci0JcHNo
dWZkCSQweDRFLCV4bW01LCV4bW05Ci0JcHhvcgkleG1tMCwleG1tOAotCXBzaHVmZAkkMHg0RSwl
eG1tMywleG1tMTAKLQlweG9yCSV4bW01LCV4bW05Ci0JcHhvcgkleG1tMTMsJXhtbTE1Ci0JcHhv
cgkleG1tMTMsJXhtbTAKLQlwc2h1ZmQJJDB4NEUsJXhtbTEsJXhtbTExCi0JcHhvcgkleG1tMywl
eG1tMTAKLQlweG9yCSV4bW03LCV4bW01Ci0JcHhvcgkleG1tOCwleG1tMwotCXBzaHVmZAkkMHg0
RSwleG1tNiwleG1tMTIKLQlweG9yCSV4bW0xLCV4bW0xMQotCXB4b3IJJXhtbTE0LCV4bW0wCi0J
cHhvcgkleG1tOSwleG1tMQotCXB4b3IJJXhtbTYsJXhtbTEyCi0KLQlweG9yCSV4bW0xNCwleG1t
NQotCXB4b3IJJXhtbTEzLCV4bW0zCi0JcHhvcgkleG1tMTMsJXhtbTEKLQlweG9yCSV4bW0xMCwl
eG1tNgotCXB4b3IJJXhtbTExLCV4bW0yCi0JcHhvcgkleG1tMTQsJXhtbTEKLQlweG9yCSV4bW0x
NCwleG1tNgotCXB4b3IJJXhtbTEyLCV4bW00Ci0JcHNodWZkCSQweDkzLCV4bW0xNSwleG1tNwot
CXBzaHVmZAkkMHg5MywleG1tMCwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQw
eDkzLCV4bW01LCV4bW05Ci0JcHhvcgkleG1tOCwleG1tMAotCXBzaHVmZAkkMHg5MywleG1tMywl
eG1tMTAKLQlweG9yCSV4bW05LCV4bW01Ci0JcHNodWZkCSQweDkzLCV4bW0xLCV4bW0xMQotCXB4
b3IJJXhtbTEwLCV4bW0zCi0JcHNodWZkCSQweDkzLCV4bW02LCV4bW0xMgotCXB4b3IJJXhtbTEx
LCV4bW0xCi0JcHNodWZkCSQweDkzLCV4bW0yLCV4bW0xMwotCXB4b3IJJXhtbTEyLCV4bW02Ci0J
cHNodWZkCSQweDkzLCV4bW00LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW0yCi0JcHhvcgkleG1t
MTQsJXhtbTQKLQotCXB4b3IJJXhtbTE1LCV4bW04Ci0JcHhvcgkleG1tNCwleG1tNwotCXB4b3IJ
JXhtbTQsJXhtbTgKLQlwc2h1ZmQJJDB4NEUsJXhtbTE1LCV4bW0xNQotCXB4b3IJJXhtbTAsJXht
bTkKLQlwc2h1ZmQJJDB4NEUsJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xMgotCXB4b3IJ
JXhtbTcsJXhtbTE1Ci0JcHhvcgkleG1tNiwleG1tMTMKLQlweG9yCSV4bW04LCV4bW0wCi0JcHhv
cgkleG1tMywleG1tMTEKLQlwc2h1ZmQJJDB4NEUsJXhtbTEsJXhtbTcKLQlweG9yCSV4bW0yLCV4
bW0xNAotCXBzaHVmZAkkMHg0RSwleG1tNiwleG1tOAotCXB4b3IJJXhtbTUsJXhtbTEwCi0JcHNo
dWZkCSQweDRFLCV4bW0zLCV4bW0xCi0JcHhvcgkleG1tNCwleG1tMTAKLQlwc2h1ZmQJJDB4NEUs
JXhtbTQsJXhtbTYKLQlweG9yCSV4bW00LCV4bW0xMQotCXBzaHVmZAkkMHg0RSwleG1tMiwleG1t
MwotCXB4b3IJJXhtbTExLCV4bW03Ci0JcHNodWZkCSQweDRFLCV4bW01LCV4bW0yCi0JcHhvcgkl
eG1tMTIsJXhtbTgKLQlweG9yCSV4bW0xLCV4bW0xMAotCXB4b3IJJXhtbTE0LCV4bW02Ci0JcHhv
cgkleG1tMywleG1tMTMKLQltb3ZkcWEJJXhtbTcsJXhtbTMKLQlweG9yCSV4bW05LCV4bW0yCi0J
bW92ZHFhCSV4bW0xMywleG1tNQotCW1vdmRxYQkleG1tOCwleG1tNAotCW1vdmRxYQkleG1tMiwl
eG1tMQotCW1vdmRxYQkleG1tMTAsJXhtbTIKLQltb3ZkcWEJLTE2KCVyMTEpLCV4bW03Ci0Jam56
CS5MZGVjX2xvb3AKLQltb3ZkcWEJLTMyKCVyMTEpLCV4bW03Ci0Jam1wCS5MZGVjX2xvb3AKLS5h
bGlnbgkxNgotLkxkZWNfZG9uZToKLQltb3ZkcWEJMCglcjExKSwleG1tNwotCW1vdmRxYQkxNigl
cjExKSwleG1tOAotCW1vdmRxYQkleG1tMiwleG1tOQotCXBzcmxxCSQxLCV4bW0yCi0JbW92ZHFh
CSV4bW0xLCV4bW0xMAotCXBzcmxxCSQxLCV4bW0xCi0JcHhvcgkleG1tNCwleG1tMgotCXB4b3IJ
JXhtbTYsJXhtbTEKLQlwYW5kCSV4bW03LCV4bW0yCi0JcGFuZAkleG1tNywleG1tMQotCXB4b3IJ
JXhtbTIsJXhtbTQKLQlwc2xscQkkMSwleG1tMgotCXB4b3IJJXhtbTEsJXhtbTYKLQlwc2xscQkk
MSwleG1tMQotCXB4b3IJJXhtbTksJXhtbTIKLQlweG9yCSV4bW0xMCwleG1tMQotCW1vdmRxYQkl
eG1tNSwleG1tOQotCXBzcmxxCSQxLCV4bW01Ci0JbW92ZHFhCSV4bW0xNSwleG1tMTAKLQlwc3Js
cQkkMSwleG1tMTUKLQlweG9yCSV4bW0zLCV4bW01Ci0JcHhvcgkleG1tMCwleG1tMTUKLQlwYW5k
CSV4bW03LCV4bW01Ci0JcGFuZAkleG1tNywleG1tMTUKLQlweG9yCSV4bW01LCV4bW0zCi0JcHNs
bHEJJDEsJXhtbTUKLQlweG9yCSV4bW0xNSwleG1tMAotCXBzbGxxCSQxLCV4bW0xNQotCXB4b3IJ
JXhtbTksJXhtbTUKLQlweG9yCSV4bW0xMCwleG1tMTUKLQltb3ZkcWEJMzIoJXIxMSksJXhtbTcK
LQltb3ZkcWEJJXhtbTYsJXhtbTkKLQlwc3JscQkkMiwleG1tNgotCW1vdmRxYQkleG1tMSwleG1t
MTAKLQlwc3JscQkkMiwleG1tMQotCXB4b3IJJXhtbTQsJXhtbTYKLQlweG9yCSV4bW0yLCV4bW0x
Ci0JcGFuZAkleG1tOCwleG1tNgotCXBhbmQJJXhtbTgsJXhtbTEKLQlweG9yCSV4bW02LCV4bW00
Ci0JcHNsbHEJJDIsJXhtbTYKLQlweG9yCSV4bW0xLCV4bW0yCi0JcHNsbHEJJDIsJXhtbTEKLQlw
eG9yCSV4bW05LCV4bW02Ci0JcHhvcgkleG1tMTAsJXhtbTEKLQltb3ZkcWEJJXhtbTAsJXhtbTkK
LQlwc3JscQkkMiwleG1tMAotCW1vdmRxYQkleG1tMTUsJXhtbTEwCi0JcHNybHEJJDIsJXhtbTE1
Ci0JcHhvcgkleG1tMywleG1tMAotCXB4b3IJJXhtbTUsJXhtbTE1Ci0JcGFuZAkleG1tOCwleG1t
MAotCXBhbmQJJXhtbTgsJXhtbTE1Ci0JcHhvcgkleG1tMCwleG1tMwotCXBzbGxxCSQyLCV4bW0w
Ci0JcHhvcgkleG1tMTUsJXhtbTUKLQlwc2xscQkkMiwleG1tMTUKLQlweG9yCSV4bW05LCV4bW0w
Ci0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JbW92ZHFhCSV4bW0zLCV4bW05Ci0JcHNybHEJJDQsJXht
bTMKLQltb3ZkcWEJJXhtbTUsJXhtbTEwCi0JcHNybHEJJDQsJXhtbTUKLQlweG9yCSV4bW00LCV4
bW0zCi0JcHhvcgkleG1tMiwleG1tNQotCXBhbmQJJXhtbTcsJXhtbTMKLQlwYW5kCSV4bW03LCV4
bW01Ci0JcHhvcgkleG1tMywleG1tNAotCXBzbGxxCSQ0LCV4bW0zCi0JcHhvcgkleG1tNSwleG1t
MgotCXBzbGxxCSQ0LCV4bW01Ci0JcHhvcgkleG1tOSwleG1tMwotCXB4b3IJJXhtbTEwLCV4bW01
Ci0JbW92ZHFhCSV4bW0wLCV4bW05Ci0JcHNybHEJJDQsJXhtbTAKLQltb3ZkcWEJJXhtbTE1LCV4
bW0xMAotCXBzcmxxCSQ0LCV4bW0xNQotCXB4b3IJJXhtbTYsJXhtbTAKLQlweG9yCSV4bW0xLCV4
bW0xNQotCXBhbmQJJXhtbTcsJXhtbTAKLQlwYW5kCSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTAs
JXhtbTYKLQlwc2xscQkkNCwleG1tMAotCXB4b3IJJXhtbTE1LCV4bW0xCi0JcHNsbHEJJDQsJXht
bTE1Ci0JcHhvcgkleG1tOSwleG1tMAotCXB4b3IJJXhtbTEwLCV4bW0xNQotCW1vdmRxYQkoJXJh
eCksJXhtbTcKLQlweG9yCSV4bW03LCV4bW01Ci0JcHhvcgkleG1tNywleG1tMwotCXB4b3IJJXht
bTcsJXhtbTEKLQlweG9yCSV4bW03LCV4bW02Ci0JcHhvcgkleG1tNywleG1tMgotCXB4b3IJJXht
bTcsJXhtbTQKLQlweG9yCSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTcsJXhtbTAKLQkuYnl0ZQkw
eGYzLDB4YzMKLS5zaXplCV9ic2Flc19kZWNyeXB0OCwuLV9ic2Flc19kZWNyeXB0OAotLnR5cGUJ
X2JzYWVzX2tleV9jb252ZXJ0LEBmdW5jdGlvbgotLmFsaWduCTE2Ci1fYnNhZXNfa2V5X2NvbnZl
cnQ6Ci0JbGVhcQkuTG1hc2tzKCVyaXApLCVyMTEKLQltb3ZkcXUJKCVyY3gpLCV4bW03Ci0JbGVh
cQkxNiglcmN4KSwlcmN4Ci0JbW92ZHFhCTAoJXIxMSksJXhtbTAKLQltb3ZkcWEJMTYoJXIxMSks
JXhtbTEKLQltb3ZkcWEJMzIoJXIxMSksJXhtbTIKLQltb3ZkcWEJNDgoJXIxMSksJXhtbTMKLQlt
b3ZkcWEJNjQoJXIxMSksJXhtbTQKLQlwY21wZXFkCSV4bW01LCV4bW01Ci0KLQltb3ZkcXUJKCVy
Y3gpLCV4bW02Ci0JbW92ZHFhCSV4bW03LCglcmF4KQotCWxlYXEJMTYoJXJheCksJXJheAotCWRl
Y2wJJXIxMGQKLQlqbXAJLkxrZXlfbG9vcAotLmFsaWduCTE2Ci0uTGtleV9sb29wOgotLmJ5dGUJ
MTAyLDE1LDU2LDAsMjQ0Ci0KLQltb3ZkcWEJJXhtbTAsJXhtbTgKLQltb3ZkcWEJJXhtbTEsJXht
bTkKLQotCXBhbmQJJXhtbTYsJXhtbTgKLQlwYW5kCSV4bW02LCV4bW05Ci0JbW92ZHFhCSV4bW0y
LCV4bW0xMAotCXBjbXBlcWIJJXhtbTAsJXhtbTgKLQlwc2xscQkkNCwleG1tMAotCW1vdmRxYQkl
eG1tMywleG1tMTEKLQlwY21wZXFiCSV4bW0xLCV4bW05Ci0JcHNsbHEJJDQsJXhtbTEKLQotCXBh
bmQJJXhtbTYsJXhtbTEwCi0JcGFuZAkleG1tNiwleG1tMTEKLQltb3ZkcWEJJXhtbTAsJXhtbTEy
Ci0JcGNtcGVxYgkleG1tMiwleG1tMTAKLQlwc2xscQkkNCwleG1tMgotCW1vdmRxYQkleG1tMSwl
eG1tMTMKLQlwY21wZXFiCSV4bW0zLCV4bW0xMQotCXBzbGxxCSQ0LCV4bW0zCi0KLQltb3ZkcWEJ
JXhtbTIsJXhtbTE0Ci0JbW92ZHFhCSV4bW0zLCV4bW0xNQotCXB4b3IJJXhtbTUsJXhtbTgKLQlw
eG9yCSV4bW01LCV4bW05Ci0KLQlwYW5kCSV4bW02LCV4bW0xMgotCXBhbmQJJXhtbTYsJXhtbTEz
Ci0JbW92ZHFhCSV4bW04LDAoJXJheCkKLQlwY21wZXFiCSV4bW0wLCV4bW0xMgotCXBzcmxxCSQ0
LCV4bW0wCi0JbW92ZHFhCSV4bW05LDE2KCVyYXgpCi0JcGNtcGVxYgkleG1tMSwleG1tMTMKLQlw
c3JscQkkNCwleG1tMQotCWxlYXEJMTYoJXJjeCksJXJjeAotCi0JcGFuZAkleG1tNiwleG1tMTQK
LQlwYW5kCSV4bW02LCV4bW0xNQotCW1vdmRxYQkleG1tMTAsMzIoJXJheCkKLQlwY21wZXFiCSV4
bW0yLCV4bW0xNAotCXBzcmxxCSQ0LCV4bW0yCi0JbW92ZHFhCSV4bW0xMSw0OCglcmF4KQotCXBj
bXBlcWIJJXhtbTMsJXhtbTE1Ci0JcHNybHEJJDQsJXhtbTMKLQltb3ZkcXUJKCVyY3gpLCV4bW02
Ci0KLQlweG9yCSV4bW01LCV4bW0xMwotCXB4b3IJJXhtbTUsJXhtbTE0Ci0JbW92ZHFhCSV4bW0x
Miw2NCglcmF4KQotCW1vdmRxYQkleG1tMTMsODAoJXJheCkKLQltb3ZkcWEJJXhtbTE0LDk2KCVy
YXgpCi0JbW92ZHFhCSV4bW0xNSwxMTIoJXJheCkKLQlsZWFxCTEyOCglcmF4KSwlcmF4Ci0JZGVj
bAklcjEwZAotCWpuegkuTGtleV9sb29wCi0KLQltb3ZkcWEJODAoJXIxMSksJXhtbTcKLQotCS5i
eXRlCTB4ZjMsMHhjMwotLnNpemUJX2JzYWVzX2tleV9jb252ZXJ0LC4tX2JzYWVzX2tleV9jb252
ZXJ0Ci0uZXh0ZXJuCWFlc19ub2h3X2NiY19lbmNyeXB0Ci0uaGlkZGVuIGFlc19ub2h3X2NiY19l
bmNyeXB0Ci0uZ2xvYmwJYnNhZXNfY2JjX2VuY3J5cHQKLS5oaWRkZW4gYnNhZXNfY2JjX2VuY3J5
cHQKLS50eXBlCWJzYWVzX2NiY19lbmNyeXB0LEBmdW5jdGlvbgotLmFsaWduCTE2Ci1ic2Flc19j
YmNfZW5jcnlwdDoKLS5jZmlfc3RhcnRwcm9jCQotCWNtcGwJJDAsJXI5ZAotCWpuZQlhZXNfbm9o
d19jYmNfZW5jcnlwdAotCWNtcHEJJDEyOCwlcmR4Ci0JamIJYWVzX25vaHdfY2JjX2VuY3J5cHQK
LQotCW1vdnEJJXJzcCwlcmF4Ci0uTGNiY19kZWNfcHJvbG9ndWU6Ci0JcHVzaHEJJXJicAotLmNm
aV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcmJwLC0xNgotCXB1c2hxCSVyYngK
LS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXJieCwtMjQKLQlwdXNocQkl
cjEyCi0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyMTIsLTMyCi0JcHVz
aHEJJXIxMwotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcjEzLC00MAot
CXB1c2hxCSVyMTQKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXIxNCwt
NDgKLQlwdXNocQklcjE1Ci0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVy
MTUsLTU2Ci0JbGVhcQktNzIoJXJzcCksJXJzcAotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAkweDQ4
Ci0JbW92cQklcnNwLCVyYnAKLS5jZmlfZGVmX2NmYV9yZWdpc3RlcgklcmJwCi0JbW92bAkyNDAo
JXJjeCksJWVheAotCW1vdnEJJXJkaSwlcjEyCi0JbW92cQklcnNpLCVyMTMKLQltb3ZxCSVyZHgs
JXIxNAotCW1vdnEJJXJjeCwlcjE1Ci0JbW92cQklcjgsJXJieAotCXNocnEJJDQsJXIxNAotCi0J
bW92bAklZWF4LCVlZHgKLQlzaGxxCSQ3LCVyYXgKLQlzdWJxCSQ5NiwlcmF4Ci0Jc3VicQklcmF4
LCVyc3AKLQotCW1vdnEJJXJzcCwlcmF4Ci0JbW92cQklcjE1LCVyY3gKLQltb3ZsCSVlZHgsJXIx
MGQKLQljYWxsCV9ic2Flc19rZXlfY29udmVydAotCXB4b3IJKCVyc3ApLCV4bW03Ci0JbW92ZHFh
CSV4bW02LCglcmF4KQotCW1vdmRxYQkleG1tNywoJXJzcCkKLQotCW1vdmRxdQkoJXJieCksJXht
bTE0Ci0Jc3VicQkkOCwlcjE0Ci0uTGNiY19kZWNfbG9vcDoKLQltb3ZkcXUJMCglcjEyKSwleG1t
MTUKLQltb3ZkcXUJMTYoJXIxMiksJXhtbTAKLQltb3ZkcXUJMzIoJXIxMiksJXhtbTEKLQltb3Zk
cXUJNDgoJXIxMiksJXhtbTIKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTMKLQltb3ZkcXUJODAoJXIx
MiksJXhtbTQKLQltb3ZxCSVyc3AsJXJheAotCW1vdmRxdQk5NiglcjEyKSwleG1tNQotCW1vdmwJ
JWVkeCwlcjEwZAotCW1vdmRxdQkxMTIoJXIxMiksJXhtbTYKLQltb3ZkcWEJJXhtbTE0LDMyKCVy
YnApCi0KLQljYWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgkzMiglcmJwKSwleG1tMTUKLQlt
b3ZkcXUJMCglcjEyKSwleG1tNwotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCXB4b3IJJXhtbTcs
JXhtbTAKLQltb3ZkcXUJMzIoJXIxMiksJXhtbTkKLQlweG9yCSV4bW04LCV4bW01Ci0JbW92ZHF1
CTQ4KCVyMTIpLCV4bW0xMAotCXB4b3IJJXhtbTksJXhtbTMKLQltb3ZkcXUJNjQoJXIxMiksJXht
bTExCi0JcHhvcgkleG1tMTAsJXhtbTEKLQltb3ZkcXUJODAoJXIxMiksJXhtbTEyCi0JcHhvcgkl
eG1tMTEsJXhtbTYKLQltb3ZkcXUJOTYoJXIxMiksJXhtbTEzCi0JcHhvcgkleG1tMTIsJXhtbTIK
LQltb3ZkcXUJMTEyKCVyMTIpLCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW00Ci0JbW92ZHF1CSV4
bW0xNSwwKCVyMTMpCi0JbGVhcQkxMjgoJXIxMiksJXIxMgotCW1vdmRxdQkleG1tMCwxNiglcjEz
KQotCW1vdmRxdQkleG1tNSwzMiglcjEzKQotCW1vdmRxdQkleG1tMyw0OCglcjEzKQotCW1vdmRx
dQkleG1tMSw2NCglcjEzKQotCW1vdmRxdQkleG1tNiw4MCglcjEzKQotCW1vdmRxdQkleG1tMiw5
NiglcjEzKQotCW1vdmRxdQkleG1tNCwxMTIoJXIxMykKLQlsZWFxCTEyOCglcjEzKSwlcjEzCi0J
c3VicQkkOCwlcjE0Ci0Jam5jCS5MY2JjX2RlY19sb29wCi0KLQlhZGRxCSQ4LCVyMTQKLQlqegku
TGNiY19kZWNfZG9uZQotCi0JbW92ZHF1CTAoJXIxMiksJXhtbTE1Ci0JbW92cQklcnNwLCVyYXgK
LQltb3ZsCSVlZHgsJXIxMGQKLQljbXBxCSQyLCVyMTQKLQlqYgkuTGNiY19kZWNfb25lCi0JbW92
ZHF1CTE2KCVyMTIpLCV4bW0wCi0JamUJLkxjYmNfZGVjX3R3bwotCW1vdmRxdQkzMiglcjEyKSwl
eG1tMQotCWNtcHEJJDQsJXIxNAotCWpiCS5MY2JjX2RlY190aHJlZQotCW1vdmRxdQk0OCglcjEy
KSwleG1tMgotCWplCS5MY2JjX2RlY19mb3VyCi0JbW92ZHF1CTY0KCVyMTIpLCV4bW0zCi0JY21w
cQkkNiwlcjE0Ci0JamIJLkxjYmNfZGVjX2ZpdmUKLQltb3ZkcXUJODAoJXIxMiksJXhtbTQKLQlq
ZQkuTGNiY19kZWNfc2l4Ci0JbW92ZHF1CTk2KCVyMTIpLCV4bW01Ci0JbW92ZHFhCSV4bW0xNCwz
MiglcmJwKQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgkzMiglcmJwKSwleG1tMTUKLQlt
b3ZkcXUJMCglcjEyKSwleG1tNwotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCXB4b3IJJXhtbTcs
JXhtbTAKLQltb3ZkcXUJMzIoJXIxMiksJXhtbTkKLQlweG9yCSV4bW04LCV4bW01Ci0JbW92ZHF1
CTQ4KCVyMTIpLCV4bW0xMAotCXB4b3IJJXhtbTksJXhtbTMKLQltb3ZkcXUJNjQoJXIxMiksJXht
bTExCi0JcHhvcgkleG1tMTAsJXhtbTEKLQltb3ZkcXUJODAoJXIxMiksJXhtbTEyCi0JcHhvcgkl
eG1tMTEsJXhtbTYKLQltb3ZkcXUJOTYoJXIxMiksJXhtbTE0Ci0JcHhvcgkleG1tMTIsJXhtbTIK
LQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQltb3ZkcXUJ
JXhtbTUsMzIoJXIxMykKLQltb3ZkcXUJJXhtbTMsNDgoJXIxMykKLQltb3ZkcXUJJXhtbTEsNjQo
JXIxMykKLQltb3ZkcXUJJXhtbTYsODAoJXIxMykKLQltb3ZkcXUJJXhtbTIsOTYoJXIxMykKLQlq
bXAJLkxjYmNfZGVjX2RvbmUKLS5hbGlnbgkxNgotLkxjYmNfZGVjX3NpeDoKLQltb3ZkcWEJJXht
bTE0LDMyKCVyYnApCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlweG9yCTMyKCVyYnApLCV4bW0x
NQotCW1vdmRxdQkwKCVyMTIpLCV4bW03Ci0JbW92ZHF1CTE2KCVyMTIpLCV4bW04Ci0JcHhvcgkl
eG1tNywleG1tMAotCW1vdmRxdQkzMiglcjEyKSwleG1tOQotCXB4b3IJJXhtbTgsJXhtbTUKLQlt
b3ZkcXUJNDgoJXIxMiksJXhtbTEwCi0JcHhvcgkleG1tOSwleG1tMwotCW1vdmRxdQk2NCglcjEy
KSwleG1tMTEKLQlweG9yCSV4bW0xMCwleG1tMQotCW1vdmRxdQk4MCglcjEyKSwleG1tMTQKLQlw
eG9yCSV4bW0xMSwleG1tNgotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCW1vdmRxdQkleG1tMCwx
NiglcjEzKQotCW1vdmRxdQkleG1tNSwzMiglcjEzKQotCW1vdmRxdQkleG1tMyw0OCglcjEzKQot
CW1vdmRxdQkleG1tMSw2NCglcjEzKQotCW1vdmRxdQkleG1tNiw4MCglcjEzKQotCWptcAkuTGNi
Y19kZWNfZG9uZQotLmFsaWduCTE2Ci0uTGNiY19kZWNfZml2ZToKLQltb3ZkcWEJJXhtbTE0LDMy
KCVyYnApCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlweG9yCTMyKCVyYnApLCV4bW0xNQotCW1v
dmRxdQkwKCVyMTIpLCV4bW03Ci0JbW92ZHF1CTE2KCVyMTIpLCV4bW04Ci0JcHhvcgkleG1tNywl
eG1tMAotCW1vdmRxdQkzMiglcjEyKSwleG1tOQotCXB4b3IJJXhtbTgsJXhtbTUKLQltb3ZkcXUJ
NDgoJXIxMiksJXhtbTEwCi0JcHhvcgkleG1tOSwleG1tMwotCW1vdmRxdQk2NCglcjEyKSwleG1t
MTQKLQlweG9yCSV4bW0xMCwleG1tMQotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCW1vdmRxdQkl
eG1tMCwxNiglcjEzKQotCW1vdmRxdQkleG1tNSwzMiglcjEzKQotCW1vdmRxdQkleG1tMyw0OCgl
cjEzKQotCW1vdmRxdQkleG1tMSw2NCglcjEzKQotCWptcAkuTGNiY19kZWNfZG9uZQotLmFsaWdu
CTE2Ci0uTGNiY19kZWNfZm91cjoKLQltb3ZkcWEJJXhtbTE0LDMyKCVyYnApCi0JY2FsbAlfYnNh
ZXNfZGVjcnlwdDgKLQlweG9yCTMyKCVyYnApLCV4bW0xNQotCW1vdmRxdQkwKCVyMTIpLCV4bW03
Ci0JbW92ZHF1CTE2KCVyMTIpLCV4bW04Ci0JcHhvcgkleG1tNywleG1tMAotCW1vdmRxdQkzMigl
cjEyKSwleG1tOQotCXB4b3IJJXhtbTgsJXhtbTUKLQltb3ZkcXUJNDgoJXIxMiksJXhtbTE0Ci0J
cHhvcgkleG1tOSwleG1tMwotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCW1vdmRxdQkleG1tMCwx
NiglcjEzKQotCW1vdmRxdQkleG1tNSwzMiglcjEzKQotCW1vdmRxdQkleG1tMyw0OCglcjEzKQot
CWptcAkuTGNiY19kZWNfZG9uZQotLmFsaWduCTE2Ci0uTGNiY19kZWNfdGhyZWU6Ci0JbW92ZHFh
CSV4bW0xNCwzMiglcmJwKQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgkzMiglcmJwKSwl
eG1tMTUKLQltb3ZkcXUJMCglcjEyKSwleG1tNwotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCXB4
b3IJJXhtbTcsJXhtbTAKLQltb3ZkcXUJMzIoJXIxMiksJXhtbTE0Ci0JcHhvcgkleG1tOCwleG1t
NQotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCW1vdmRx
dQkleG1tNSwzMiglcjEzKQotCWptcAkuTGNiY19kZWNfZG9uZQotLmFsaWduCTE2Ci0uTGNiY19k
ZWNfdHdvOgotCW1vdmRxYQkleG1tMTQsMzIoJXJicCkKLQljYWxsCV9ic2Flc19kZWNyeXB0OAot
CXB4b3IJMzIoJXJicCksJXhtbTE1Ci0JbW92ZHF1CTAoJXIxMiksJXhtbTcKLQltb3ZkcXUJMTYo
JXIxMiksJXhtbTE0Ci0JcHhvcgkleG1tNywleG1tMAotCW1vdmRxdQkleG1tMTUsMCglcjEzKQot
CW1vdmRxdQkleG1tMCwxNiglcjEzKQotCWptcAkuTGNiY19kZWNfZG9uZQotLmFsaWduCTE2Ci0u
TGNiY19kZWNfb25lOgotCWxlYXEJKCVyMTIpLCVyZGkKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQls
ZWFxCSglcjE1KSwlcmR4Ci0JY2FsbAlhZXNfbm9od19kZWNyeXB0Ci0JcHhvcgkzMiglcmJwKSwl
eG1tMTQKLQltb3ZkcXUJJXhtbTE0LCglcjEzKQotCW1vdmRxYQkleG1tMTUsJXhtbTE0Ci0KLS5M
Y2JjX2RlY19kb25lOgotCW1vdmRxdQkleG1tMTQsKCVyYngpCi0JbGVhcQkoJXJzcCksJXJheAot
CXB4b3IJJXhtbTAsJXhtbTAKLS5MY2JjX2RlY19iemVybzoKLQltb3ZkcWEJJXhtbTAsMCglcmF4
KQotCW1vdmRxYQkleG1tMCwxNiglcmF4KQotCWxlYXEJMzIoJXJheCksJXJheAotCWNtcHEJJXJh
eCwlcmJwCi0JamEJLkxjYmNfZGVjX2J6ZXJvCi0KLQlsZWFxCTEyMCglcmJwKSwlcmF4Ci0uY2Zp
X2RlZl9jZmEJJXJheCw4Ci0JbW92cQktNDgoJXJheCksJXIxNQotLmNmaV9yZXN0b3JlCSVyMTUK
LQltb3ZxCS00MCglcmF4KSwlcjE0Ci0uY2ZpX3Jlc3RvcmUJJXIxNAotCW1vdnEJLTMyKCVyYXgp
LCVyMTMKLS5jZmlfcmVzdG9yZQklcjEzCi0JbW92cQktMjQoJXJheCksJXIxMgotLmNmaV9yZXN0
b3JlCSVyMTIKLQltb3ZxCS0xNiglcmF4KSwlcmJ4Ci0uY2ZpX3Jlc3RvcmUJJXJieAotCW1vdnEJ
LTgoJXJheCksJXJicAotLmNmaV9yZXN0b3JlCSVyYnAKLQlsZWFxCSglcmF4KSwlcnNwCi0uY2Zp
X2RlZl9jZmFfcmVnaXN0ZXIJJXJzcAotLkxjYmNfZGVjX2VwaWxvZ3VlOgotCS5ieXRlCTB4ZjMs
MHhjMwotLmNmaV9lbmRwcm9jCQotLnNpemUJYnNhZXNfY2JjX2VuY3J5cHQsLi1ic2Flc19jYmNf
ZW5jcnlwdAotCi0uZ2xvYmwJYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKLS5oaWRkZW4gYnNh
ZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKLS50eXBlCWJzYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tz
LEBmdW5jdGlvbgotLmFsaWduCTE2Ci1ic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrczoKLS5jZmlf
c3RhcnRwcm9jCQotCW1vdnEJJXJzcCwlcmF4Ci0uTGN0cl9lbmNfcHJvbG9ndWU6Ci0JcHVzaHEJ
JXJicAotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcmJwLC0xNgotCXB1
c2hxCSVyYngKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXJieCwtMjQK
LQlwdXNocQklcjEyCi0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyMTIs
LTMyCi0JcHVzaHEJJXIxMwotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAkl
cjEzLC00MAotCXB1c2hxCSVyMTQKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZz
ZXQJJXIxNCwtNDgKLQlwdXNocQklcjE1Ci0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlf
b2Zmc2V0CSVyMTUsLTU2Ci0JbGVhcQktNzIoJXJzcCksJXJzcAotLmNmaV9hZGp1c3RfY2ZhX29m
ZnNldAkweDQ4Ci0JbW92cQklcnNwLCVyYnAKLS5jZmlfZGVmX2NmYV9yZWdpc3RlcgklcmJwCi0J
bW92ZHF1CSglcjgpLCV4bW0wCi0JbW92bAkyNDAoJXJjeCksJWVheAotCW1vdnEJJXJkaSwlcjEy
Ci0JbW92cQklcnNpLCVyMTMKLQltb3ZxCSVyZHgsJXIxNAotCW1vdnEJJXJjeCwlcjE1Ci0JbW92
ZHFhCSV4bW0wLDMyKCVyYnApCi0JY21wcQkkOCwlcmR4Ci0JamIJLkxjdHJfZW5jX3Nob3J0Ci0K
LQltb3ZsCSVlYXgsJWVieAotCXNobHEJJDcsJXJheAotCXN1YnEJJDk2LCVyYXgKLQlzdWJxCSVy
YXgsJXJzcAotCi0JbW92cQklcnNwLCVyYXgKLQltb3ZxCSVyMTUsJXJjeAotCW1vdmwJJWVieCwl
cjEwZAotCWNhbGwJX2JzYWVzX2tleV9jb252ZXJ0Ci0JcHhvcgkleG1tNiwleG1tNwotCW1vdmRx
YQkleG1tNywoJXJheCkKLQotCW1vdmRxYQkoJXJzcCksJXhtbTgKLQlsZWFxCS5MQUREMSglcmlw
KSwlcjExCi0JbW92ZHFhCTMyKCVyYnApLCV4bW0xNQotCW1vdmRxYQktMzIoJXIxMSksJXhtbTcK
LS5ieXRlCTEwMiw2OCwxNSw1NiwwLDE5OQotLmJ5dGUJMTAyLDY4LDE1LDU2LDAsMjU1Ci0JbW92
ZHFhCSV4bW04LCglcnNwKQotCWptcAkuTGN0cl9lbmNfbG9vcAotLmFsaWduCTE2Ci0uTGN0cl9l
bmNfbG9vcDoKLQltb3ZkcWEJJXhtbTE1LDMyKCVyYnApCi0JbW92ZHFhCSV4bW0xNSwleG1tMAot
CW1vdmRxYQkleG1tMTUsJXhtbTEKLQlwYWRkZAkwKCVyMTEpLCV4bW0wCi0JbW92ZHFhCSV4bW0x
NSwleG1tMgotCXBhZGRkCTE2KCVyMTEpLCV4bW0xCi0JbW92ZHFhCSV4bW0xNSwleG1tMwotCXBh
ZGRkCTMyKCVyMTEpLCV4bW0yCi0JbW92ZHFhCSV4bW0xNSwleG1tNAotCXBhZGRkCTQ4KCVyMTEp
LCV4bW0zCi0JbW92ZHFhCSV4bW0xNSwleG1tNQotCXBhZGRkCTY0KCVyMTEpLCV4bW00Ci0JbW92
ZHFhCSV4bW0xNSwleG1tNgotCXBhZGRkCTgwKCVyMTEpLCV4bW01Ci0JcGFkZGQJOTYoJXIxMSks
JXhtbTYKLQotCi0KLQltb3ZkcWEJKCVyc3ApLCV4bW04Ci0JbGVhcQkxNiglcnNwKSwlcmF4Ci0J
bW92ZHFhCS0xNiglcjExKSwleG1tNwotCXB4b3IJJXhtbTgsJXhtbTE1Ci0JcHhvcgkleG1tOCwl
eG1tMAotCXB4b3IJJXhtbTgsJXhtbTEKLQlweG9yCSV4bW04LCV4bW0yCi0uYnl0ZQkxMDIsNjgs
MTUsNTYsMCwyNTUKLS5ieXRlCTEwMiwxNSw1NiwwLDE5OQotCXB4b3IJJXhtbTgsJXhtbTMKLQlw
eG9yCSV4bW04LCV4bW00Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMDcKLS5ieXRlCTEwMiwxNSw1Niww
LDIxNQotCXB4b3IJJXhtbTgsJXhtbTUKLQlweG9yCSV4bW04LCV4bW02Ci0uYnl0ZQkxMDIsMTUs
NTYsMCwyMjMKLS5ieXRlCTEwMiwxNSw1NiwwLDIzMQotLmJ5dGUJMTAyLDE1LDU2LDAsMjM5Ci0u
Ynl0ZQkxMDIsMTUsNTYsMCwyNDcKLQlsZWFxCS5MQlMwKCVyaXApLCVyMTEKLQltb3ZsCSVlYngs
JXIxMGQKLQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4X2JpdHNsaWNlCi0KLQlzdWJxCSQ4LCVyMTQK
LQlqYwkuTGN0cl9lbmNfbG9vcF9kb25lCi0KLQltb3ZkcXUJMCglcjEyKSwleG1tNwotCW1vdmRx
dQkxNiglcjEyKSwleG1tOAotCW1vdmRxdQkzMiglcjEyKSwleG1tOQotCW1vdmRxdQk0OCglcjEy
KSwleG1tMTAKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0JbW92ZHF1CTgwKCVyMTIpLCV4bW0x
MgotCW1vdmRxdQk5NiglcjEyKSwleG1tMTMKLQltb3ZkcXUJMTEyKCVyMTIpLCV4bW0xNAotCWxl
YXEJMTI4KCVyMTIpLCVyMTIKLQlweG9yCSV4bW0xNSwleG1tNwotCW1vdmRxYQkzMiglcmJwKSwl
eG1tMTUKLQlweG9yCSV4bW04LCV4bW0wCi0JbW92ZHF1CSV4bW03LDAoJXIxMykKLQlweG9yCSV4
bW05LCV4bW0zCi0JbW92ZHF1CSV4bW0wLDE2KCVyMTMpCi0JcHhvcgkleG1tMTAsJXhtbTUKLQlt
b3ZkcXUJJXhtbTMsMzIoJXIxMykKLQlweG9yCSV4bW0xMSwleG1tMgotCW1vdmRxdQkleG1tNSw0
OCglcjEzKQotCXB4b3IJJXhtbTEyLCV4bW02Ci0JbW92ZHF1CSV4bW0yLDY0KCVyMTMpCi0JcHhv
cgkleG1tMTMsJXhtbTEKLQltb3ZkcXUJJXhtbTYsODAoJXIxMykKLQlweG9yCSV4bW0xNCwleG1t
NAotCW1vdmRxdQkleG1tMSw5NiglcjEzKQotCWxlYXEJLkxBREQxKCVyaXApLCVyMTEKLQltb3Zk
cXUJJXhtbTQsMTEyKCVyMTMpCi0JbGVhcQkxMjgoJXIxMyksJXIxMwotCXBhZGRkCTExMiglcjEx
KSwleG1tMTUKLQlqbnoJLkxjdHJfZW5jX2xvb3AKLQotCWptcAkuTGN0cl9lbmNfZG9uZQotLmFs
aWduCTE2Ci0uTGN0cl9lbmNfbG9vcF9kb25lOgotCWFkZHEJJDgsJXIxNAotCW1vdmRxdQkwKCVy
MTIpLCV4bW03Ci0JcHhvcgkleG1tNywleG1tMTUKLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQlj
bXBxCSQyLCVyMTQKLQlqYgkuTGN0cl9lbmNfZG9uZQotCW1vdmRxdQkxNiglcjEyKSwleG1tOAot
CXB4b3IJJXhtbTgsJXhtbTAKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQlqZQkuTGN0cl9lbmNf
ZG9uZQotCW1vdmRxdQkzMiglcjEyKSwleG1tOQotCXB4b3IJJXhtbTksJXhtbTMKLQltb3ZkcXUJ
JXhtbTMsMzIoJXIxMykKLQljbXBxCSQ0LCVyMTQKLQlqYgkuTGN0cl9lbmNfZG9uZQotCW1vdmRx
dQk0OCglcjEyKSwleG1tMTAKLQlweG9yCSV4bW0xMCwleG1tNQotCW1vdmRxdQkleG1tNSw0OCgl
cjEzKQotCWplCS5MY3RyX2VuY19kb25lCi0JbW92ZHF1CTY0KCVyMTIpLCV4bW0xMQotCXB4b3IJ
JXhtbTExLCV4bW0yCi0JbW92ZHF1CSV4bW0yLDY0KCVyMTMpCi0JY21wcQkkNiwlcjE0Ci0JamIJ
LkxjdHJfZW5jX2RvbmUKLQltb3ZkcXUJODAoJXIxMiksJXhtbTEyCi0JcHhvcgkleG1tMTIsJXht
bTYKLQltb3ZkcXUJJXhtbTYsODAoJXIxMykKLQlqZQkuTGN0cl9lbmNfZG9uZQotCW1vdmRxdQk5
NiglcjEyKSwleG1tMTMKLQlweG9yCSV4bW0xMywleG1tMQotCW1vdmRxdQkleG1tMSw5NiglcjEz
KQotCWptcAkuTGN0cl9lbmNfZG9uZQotCi0uYWxpZ24JMTYKLS5MY3RyX2VuY19zaG9ydDoKLQls
ZWFxCTMyKCVyYnApLCVyZGkKLQlsZWFxCTQ4KCVyYnApLCVyc2kKLQlsZWFxCSglcjE1KSwlcmR4
Ci0JY2FsbAlhZXNfbm9od19lbmNyeXB0Ci0JbW92ZHF1CSglcjEyKSwleG1tMAotCWxlYXEJMTYo
JXIxMiksJXIxMgotCW1vdmwJNDQoJXJicCksJWVheAotCWJzd2FwbAklZWF4Ci0JcHhvcgk0OCgl
cmJwKSwleG1tMAotCWluY2wJJWVheAotCW1vdmRxdQkleG1tMCwoJXIxMykKLQlic3dhcGwJJWVh
eAotCWxlYXEJMTYoJXIxMyksJXIxMwotCW1vdmwJJWVheCw0NCglcnNwKQotCWRlY3EJJXIxNAot
CWpuegkuTGN0cl9lbmNfc2hvcnQKLQotLkxjdHJfZW5jX2RvbmU6Ci0JbGVhcQkoJXJzcCksJXJh
eAotCXB4b3IJJXhtbTAsJXhtbTAKLS5MY3RyX2VuY19iemVybzoKLQltb3ZkcWEJJXhtbTAsMCgl
cmF4KQotCW1vdmRxYQkleG1tMCwxNiglcmF4KQotCWxlYXEJMzIoJXJheCksJXJheAotCWNtcHEJ
JXJheCwlcmJwCi0JamEJLkxjdHJfZW5jX2J6ZXJvCi0KLQlsZWFxCTEyMCglcmJwKSwlcmF4Ci0u
Y2ZpX2RlZl9jZmEJJXJheCw4Ci0JbW92cQktNDgoJXJheCksJXIxNQotLmNmaV9yZXN0b3JlCSVy
MTUKLQltb3ZxCS00MCglcmF4KSwlcjE0Ci0uY2ZpX3Jlc3RvcmUJJXIxNAotCW1vdnEJLTMyKCVy
YXgpLCVyMTMKLS5jZmlfcmVzdG9yZQklcjEzCi0JbW92cQktMjQoJXJheCksJXIxMgotLmNmaV9y
ZXN0b3JlCSVyMTIKLQltb3ZxCS0xNiglcmF4KSwlcmJ4Ci0uY2ZpX3Jlc3RvcmUJJXJieAotCW1v
dnEJLTgoJXJheCksJXJicAotLmNmaV9yZXN0b3JlCSVyYnAKLQlsZWFxCSglcmF4KSwlcnNwCi0u
Y2ZpX2RlZl9jZmFfcmVnaXN0ZXIJJXJzcAotLkxjdHJfZW5jX2VwaWxvZ3VlOgotCS5ieXRlCTB4
ZjMsMHhjMwotLmNmaV9lbmRwcm9jCQotLnNpemUJYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3Ms
Li1ic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrcwotLmdsb2JsCWJzYWVzX3h0c19lbmNyeXB0Ci0u
aGlkZGVuIGJzYWVzX3h0c19lbmNyeXB0Ci0udHlwZQlic2Flc194dHNfZW5jcnlwdCxAZnVuY3Rp
b24KLS5hbGlnbgkxNgotYnNhZXNfeHRzX2VuY3J5cHQ6Ci0uY2ZpX3N0YXJ0cHJvYwkKLQltb3Zx
CSVyc3AsJXJheAotLkx4dHNfZW5jX3Byb2xvZ3VlOgotCXB1c2hxCSVyYnAKLS5jZmlfYWRqdXN0
X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXJicCwtMTYKLQlwdXNocQklcmJ4Ci0uY2ZpX2Fk
anVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyYngsLTI0Ci0JcHVzaHEJJXIxMgotLmNm
aV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcjEyLC0zMgotCXB1c2hxCSVyMTMK
LS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXIxMywtNDAKLQlwdXNocQkl
cjE0Ci0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyMTQsLTQ4Ci0JcHVz
aHEJJXIxNQotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcjE1LC01Ngot
CWxlYXEJLTcyKCVyc3ApLCVyc3AKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJMHg0OAotCW1vdnEJ
JXJzcCwlcmJwCi0uY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJJXJicAotCW1vdnEJJXJkaSwlcjEyCi0J
bW92cQklcnNpLCVyMTMKLQltb3ZxCSVyZHgsJXIxNAotCW1vdnEJJXJjeCwlcjE1Ci0KLQlsZWFx
CSglcjkpLCVyZGkKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQlsZWFxCSglcjgpLCVyZHgKLQljYWxs
CWFlc19ub2h3X2VuY3J5cHQKLQotCW1vdmwJMjQwKCVyMTUpLCVlYXgKLQltb3ZxCSVyMTQsJXJi
eAotCi0JbW92bAklZWF4LCVlZHgKLQlzaGxxCSQ3LCVyYXgKLQlzdWJxCSQ5NiwlcmF4Ci0Jc3Vi
cQklcmF4LCVyc3AKLQotCW1vdnEJJXJzcCwlcmF4Ci0JbW92cQklcjE1LCVyY3gKLQltb3ZsCSVl
ZHgsJXIxMGQKLQljYWxsCV9ic2Flc19rZXlfY29udmVydAotCXB4b3IJJXhtbTYsJXhtbTcKLQlt
b3ZkcWEJJXhtbTcsKCVyYXgpCi0KLQlhbmRxCSQtMTYsJXIxNAotCXN1YnEJJDB4ODAsJXJzcAot
CW1vdmRxYQkzMiglcmJwKSwleG1tNgotCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCS5M
eHRzX21hZ2ljKCVyaXApLCV4bW0xMgotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0KLQlzdWJxCSQw
eDgwLCVyMTQKLQlqYwkuTHh0c19lbmNfc2hvcnQKLQlqbXAJLkx4dHNfZW5jX2xvb3AKLQotLmFs
aWduCTE2Ci0uTHh0c19lbmNfbG9vcDoKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4
b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMTUKLQltb3ZkcWEJJXhtbTYsMCgl
cnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkl
eG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCXBzaHVmZAkkMHgxMywleG1tMTQsJXht
bTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW0wCi0JbW92ZHFhCSV4
bW02LDE2KCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlw
Y21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTAoJXIxMiks
JXhtbTcKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAot
CW1vdmRxYQkleG1tNiwleG1tMQotCW1vdmRxYQkleG1tNiwzMiglcnNwKQotCXBhZGRxCSV4bW02
LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9y
CSV4bW0xMywleG1tNgotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTE1
Ci0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3Zk
cWEJJXhtbTYsJXhtbTIKLQltb3ZkcWEJJXhtbTYsNDgoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1t
NgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1t
MTMsJXhtbTYKLQltb3ZkcXUJMzIoJXIxMiksJXhtbTkKLQlweG9yCSV4bW04LCV4bW0wCi0JcHNo
dWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXht
bTYsJXhtbTMKLQltb3ZkcWEJJXhtbTYsNjQoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBh
bmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXht
bTYKLQltb3ZkcXUJNDgoJXIxMiksJXhtbTEwCi0JcHhvcgkleG1tOSwleG1tMQotCXBzaHVmZAkk
MHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4
bW00Ci0JbW92ZHFhCSV4bW02LDgwKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4
bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0J
bW92ZHF1CTY0KCVyMTIpLCV4bW0xMQotCXB4b3IJJXhtbTEwLCV4bW0yCi0JcHNodWZkCSQweDEz
LCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTUK
LQltb3ZkcWEJJXhtbTYsOTYoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEy
LCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3Zk
cXUJODAoJXIxMiksJXhtbTEyCi0JcHhvcgkleG1tMTEsJXhtbTMKLQltb3ZkcXUJOTYoJXIxMiks
JXhtbTEzCi0JcHhvcgkleG1tMTIsJXhtbTQKLQltb3ZkcXUJMTEyKCVyMTIpLCV4bW0xNAotCWxl
YXEJMTI4KCVyMTIpLCVyMTIKLQltb3ZkcWEJJXhtbTYsMTEyKCVyc3ApCi0JcHhvcgkleG1tMTMs
JXhtbTUKLQlsZWFxCTEyOCglcnNwKSwlcmF4Ci0JcHhvcgkleG1tMTQsJXhtbTYKLQltb3ZsCSVl
ZHgsJXIxMGQKLQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQlweG9yCTAoJXJzcCksJXhtbTE1
Ci0JcHhvcgkxNiglcnNwKSwleG1tMAotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCXB4b3IJMzIo
JXJzcCksJXhtbTMKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQlweG9yCTQ4KCVyc3ApLCV4bW01
Ci0JbW92ZHF1CSV4bW0zLDMyKCVyMTMpCi0JcHhvcgk2NCglcnNwKSwleG1tMgotCW1vdmRxdQkl
eG1tNSw0OCglcjEzKQotCXB4b3IJODAoJXJzcCksJXhtbTYKLQltb3ZkcXUJJXhtbTIsNjQoJXIx
MykKLQlweG9yCTk2KCVyc3ApLCV4bW0xCi0JbW92ZHF1CSV4bW02LDgwKCVyMTMpCi0JcHhvcgkx
MTIoJXJzcCksJXhtbTQKLQltb3ZkcXUJJXhtbTEsOTYoJXIxMykKLQltb3ZkcXUJJXhtbTQsMTEy
KCVyMTMpCi0JbGVhcQkxMjgoJXIxMyksJXIxMwotCi0JbW92ZHFhCTExMiglcnNwKSwleG1tNgot
CXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkuTHh0c19tYWdpYyglcmlwKSwleG1tMTIKLQlw
Y21wZ3RkCSV4bW02LCV4bW0xNAotCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkl
eG1tMTQsJXhtbTE0Ci0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlw
Y21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0KLQlzdWJxCSQweDgwLCVy
MTQKLQlqbmMJLkx4dHNfZW5jX2xvb3AKLQotLkx4dHNfZW5jX3Nob3J0OgotCWFkZHEJJDB4ODAs
JXIxNAotCWp6CS5MeHRzX2VuY19kb25lCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlw
eG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTE1Ci0JbW92ZHFhCSV4bW02LDAo
JXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJ
JXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4
bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMAotCW1vdmRxYQkl
eG1tNiwxNiglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0J
cGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQkwKCVyMTIp
LCV4bW03Ci0JY21wcQkkMTYsJXIxNAotCWplCS5MeHRzX2VuY18xCi0JcHNodWZkCSQweDEzLCV4
bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTEKLQlt
b3ZkcWEJJXhtbTYsMzIoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4
bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJ
MTYoJXIxMiksJXhtbTgKLQljbXBxCSQzMiwlcjE0Ci0JamUJLkx4dHNfZW5jXzIKLQlweG9yCSV4
bW03LCV4bW0xNQotCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXht
bTE0Ci0JbW92ZHFhCSV4bW02LCV4bW0yCi0JbW92ZHFhCSV4bW02LDQ4KCVyc3ApCi0JcGFkZHEJ
JXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAot
CXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTMyKCVyMTIpLCV4bW05Ci0JY21wcQkkNDgsJXIx
NAotCWplCS5MeHRzX2VuY18zCi0JcHhvcgkleG1tOCwleG1tMAotCXBzaHVmZAkkMHgxMywleG1t
MTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW0zCi0JbW92
ZHFhCSV4bW02LDY0KCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1t
MTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTQ4
KCVyMTIpLCV4bW0xMAotCWNtcHEJJDY0LCVyMTQKLQlqZQkuTHh0c19lbmNfNAotCXB4b3IJJXht
bTksJXhtbTEKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0x
NAotCW1vdmRxYQkleG1tNiwleG1tNAotCW1vdmRxYQkleG1tNiw4MCglcnNwKQotCXBhZGRxCSV4
bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlw
eG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQk2NCglcjEyKSwleG1tMTEKLQljbXBxCSQ4MCwlcjE0
Ci0JamUJLkx4dHNfZW5jXzUKLQlweG9yCSV4bW0xMCwleG1tMgotCXBzaHVmZAkkMHgxMywleG1t
MTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW01Ci0JbW92
ZHFhCSV4bW02LDk2KCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1t
MTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTgw
KCVyMTIpLCV4bW0xMgotCWNtcHEJJDk2LCVyMTQKLQlqZQkuTHh0c19lbmNfNgotCXB4b3IJJXht
bTExLCV4bW0zCi0JbW92ZHF1CTk2KCVyMTIpLCV4bW0xMwotCXB4b3IJJXhtbTEyLCV4bW00Ci0J
bW92ZHFhCSV4bW02LDExMiglcnNwKQotCWxlYXEJMTEyKCVyMTIpLCVyMTIKLQlweG9yCSV4bW0x
MywleG1tNQotCWxlYXEJMTI4KCVyc3ApLCVyYXgKLQltb3ZsCSVlZHgsJXIxMGQKLQotCWNhbGwJ
X2JzYWVzX2VuY3J5cHQ4Ci0KLQlweG9yCTAoJXJzcCksJXhtbTE1Ci0JcHhvcgkxNiglcnNwKSwl
eG1tMAotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCXB4b3IJMzIoJXJzcCksJXhtbTMKLQltb3Zk
cXUJJXhtbTAsMTYoJXIxMykKLQlweG9yCTQ4KCVyc3ApLCV4bW01Ci0JbW92ZHF1CSV4bW0zLDMy
KCVyMTMpCi0JcHhvcgk2NCglcnNwKSwleG1tMgotCW1vdmRxdQkleG1tNSw0OCglcjEzKQotCXB4
b3IJODAoJXJzcCksJXhtbTYKLQltb3ZkcXUJJXhtbTIsNjQoJXIxMykKLQlweG9yCTk2KCVyc3Ap
LCV4bW0xCi0JbW92ZHF1CSV4bW02LDgwKCVyMTMpCi0JbW92ZHF1CSV4bW0xLDk2KCVyMTMpCi0J
bGVhcQkxMTIoJXIxMyksJXIxMwotCi0JbW92ZHFhCTExMiglcnNwKSwleG1tNgotCWptcAkuTHh0
c19lbmNfZG9uZQotLmFsaWduCTE2Ci0uTHh0c19lbmNfNjoKLQlweG9yCSV4bW0xMSwleG1tMwot
CWxlYXEJOTYoJXIxMiksJXIxMgotCXB4b3IJJXhtbTEyLCV4bW00Ci0JbGVhcQkxMjgoJXJzcCks
JXJheAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZW5jcnlwdDgKLQotCXB4b3IJ
MCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVy
MTMpCi0JcHhvcgkzMiglcnNwKSwleG1tMwotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJ
NDgoJXJzcCksJXhtbTUKLQltb3ZkcXUJJXhtbTMsMzIoJXIxMykKLQlweG9yCTY0KCVyc3ApLCV4
bW0yCi0JbW92ZHF1CSV4bW01LDQ4KCVyMTMpCi0JcHhvcgk4MCglcnNwKSwleG1tNgotCW1vdmRx
dQkleG1tMiw2NCglcjEzKQotCW1vdmRxdQkleG1tNiw4MCglcjEzKQotCWxlYXEJOTYoJXIxMyks
JXIxMwotCi0JbW92ZHFhCTk2KCVyc3ApLCV4bW02Ci0Jam1wCS5MeHRzX2VuY19kb25lCi0uYWxp
Z24JMTYKLS5MeHRzX2VuY181OgotCXB4b3IJJXhtbTEwLCV4bW0yCi0JbGVhcQk4MCglcjEyKSwl
cjEyCi0JcHhvcgkleG1tMTEsJXhtbTMKLQlsZWFxCTEyOCglcnNwKSwlcmF4Ci0JbW92bAklZWR4
LCVyMTBkCi0KLQljYWxsCV9ic2Flc19lbmNyeXB0OAotCi0JcHhvcgkwKCVyc3ApLCV4bW0xNQot
CXB4b3IJMTYoJXJzcCksJXhtbTAKLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQlweG9yCTMyKCVy
c3ApLCV4bW0zCi0JbW92ZHF1CSV4bW0wLDE2KCVyMTMpCi0JcHhvcgk0OCglcnNwKSwleG1tNQot
CW1vdmRxdQkleG1tMywzMiglcjEzKQotCXB4b3IJNjQoJXJzcCksJXhtbTIKLQltb3ZkcXUJJXht
bTUsNDgoJXIxMykKLQltb3ZkcXUJJXhtbTIsNjQoJXIxMykKLQlsZWFxCTgwKCVyMTMpLCVyMTMK
LQotCW1vdmRxYQk4MCglcnNwKSwleG1tNgotCWptcAkuTHh0c19lbmNfZG9uZQotLmFsaWduCTE2
Ci0uTHh0c19lbmNfNDoKLQlweG9yCSV4bW05LCV4bW0xCi0JbGVhcQk2NCglcjEyKSwlcjEyCi0J
cHhvcgkleG1tMTAsJXhtbTIKLQlsZWFxCTEyOCglcnNwKSwlcmF4Ci0JbW92bAklZWR4LCVyMTBk
Ci0KLQljYWxsCV9ic2Flc19lbmNyeXB0OAotCi0JcHhvcgkwKCVyc3ApLCV4bW0xNQotCXB4b3IJ
MTYoJXJzcCksJXhtbTAKLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQlweG9yCTMyKCVyc3ApLCV4
bW0zCi0JbW92ZHF1CSV4bW0wLDE2KCVyMTMpCi0JcHhvcgk0OCglcnNwKSwleG1tNQotCW1vdmRx
dQkleG1tMywzMiglcjEzKQotCW1vdmRxdQkleG1tNSw0OCglcjEzKQotCWxlYXEJNjQoJXIxMyks
JXIxMwotCi0JbW92ZHFhCTY0KCVyc3ApLCV4bW02Ci0Jam1wCS5MeHRzX2VuY19kb25lCi0uYWxp
Z24JMTYKLS5MeHRzX2VuY18zOgotCXB4b3IJJXhtbTgsJXhtbTAKLQlsZWFxCTQ4KCVyMTIpLCVy
MTIKLQlweG9yCSV4bW05LCV4bW0xCi0JbGVhcQkxMjgoJXJzcCksJXJheAotCW1vdmwJJWVkeCwl
cjEwZAotCi0JY2FsbAlfYnNhZXNfZW5jcnlwdDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlw
eG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNw
KSwleG1tMwotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCW1vdmRxdQkleG1tMywzMiglcjEzKQot
CWxlYXEJNDgoJXIxMyksJXIxMwotCi0JbW92ZHFhCTQ4KCVyc3ApLCV4bW02Ci0Jam1wCS5MeHRz
X2VuY19kb25lCi0uYWxpZ24JMTYKLS5MeHRzX2VuY18yOgotCXB4b3IJJXhtbTcsJXhtbTE1Ci0J
bGVhcQkzMiglcjEyKSwlcjEyCi0JcHhvcgkleG1tOCwleG1tMAotCWxlYXEJMTI4KCVyc3ApLCVy
YXgKLQltb3ZsCSVlZHgsJXIxMGQKLQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQlweG9yCTAo
JXJzcCksJXhtbTE1Ci0JcHhvcgkxNiglcnNwKSwleG1tMAotCW1vdmRxdQkleG1tMTUsMCglcjEz
KQotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCWxlYXEJMzIoJXIxMyksJXIxMwotCi0JbW92ZHFh
CTMyKCVyc3ApLCV4bW02Ci0Jam1wCS5MeHRzX2VuY19kb25lCi0uYWxpZ24JMTYKLS5MeHRzX2Vu
Y18xOgotCXB4b3IJJXhtbTE1LCV4bW03Ci0JbGVhcQkxNiglcjEyKSwlcjEyCi0JbW92ZHFhCSV4
bW03LDMyKCVyYnApCi0JbGVhcQkzMiglcmJwKSwlcmRpCi0JbGVhcQkzMiglcmJwKSwlcnNpCi0J
bGVhcQkoJXIxNSksJXJkeAotCWNhbGwJYWVzX25vaHdfZW5jcnlwdAotCXB4b3IJMzIoJXJicCks
JXhtbTE1Ci0KLQotCi0KLQotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCWxlYXEJMTYoJXIxMyks
JXIxMwotCi0JbW92ZHFhCTE2KCVyc3ApLCV4bW02Ci0KLS5MeHRzX2VuY19kb25lOgotCWFuZGwJ
JDE1LCVlYngKLQlqegkuTHh0c19lbmNfcmV0Ci0JbW92cQklcjEzLCVyZHgKLQotLkx4dHNfZW5j
X3N0ZWFsOgotCW1vdnpibAkoJXIxMiksJWVheAotCW1vdnpibAktMTYoJXJkeCksJWVjeAotCWxl
YXEJMSglcjEyKSwlcjEyCi0JbW92YgklYWwsLTE2KCVyZHgpCi0JbW92YgklY2wsMCglcmR4KQot
CWxlYXEJMSglcmR4KSwlcmR4Ci0Jc3VibAkkMSwlZWJ4Ci0Jam56CS5MeHRzX2VuY19zdGVhbAot
Ci0JbW92ZHF1CS0xNiglcjEzKSwleG1tMTUKLQlsZWFxCTMyKCVyYnApLCVyZGkKLQlweG9yCSV4
bW02LCV4bW0xNQotCWxlYXEJMzIoJXJicCksJXJzaQotCW1vdmRxYQkleG1tMTUsMzIoJXJicCkK
LQlsZWFxCSglcjE1KSwlcmR4Ci0JY2FsbAlhZXNfbm9od19lbmNyeXB0Ci0JcHhvcgkzMiglcmJw
KSwleG1tNgotCW1vdmRxdQkleG1tNiwtMTYoJXIxMykKLQotLkx4dHNfZW5jX3JldDoKLQlsZWFx
CSglcnNwKSwlcmF4Ci0JcHhvcgkleG1tMCwleG1tMAotLkx4dHNfZW5jX2J6ZXJvOgotCW1vdmRx
YQkleG1tMCwwKCVyYXgpCi0JbW92ZHFhCSV4bW0wLDE2KCVyYXgpCi0JbGVhcQkzMiglcmF4KSwl
cmF4Ci0JY21wcQklcmF4LCVyYnAKLQlqYQkuTHh0c19lbmNfYnplcm8KLQotCWxlYXEJMTIwKCVy
YnApLCVyYXgKLS5jZmlfZGVmX2NmYQklcmF4LDgKLQltb3ZxCS00OCglcmF4KSwlcjE1Ci0uY2Zp
X3Jlc3RvcmUJJXIxNQotCW1vdnEJLTQwKCVyYXgpLCVyMTQKLS5jZmlfcmVzdG9yZQklcjE0Ci0J
bW92cQktMzIoJXJheCksJXIxMwotLmNmaV9yZXN0b3JlCSVyMTMKLQltb3ZxCS0yNCglcmF4KSwl
cjEyCi0uY2ZpX3Jlc3RvcmUJJXIxMgotCW1vdnEJLTE2KCVyYXgpLCVyYngKLS5jZmlfcmVzdG9y
ZQklcmJ4Ci0JbW92cQktOCglcmF4KSwlcmJwCi0uY2ZpX3Jlc3RvcmUJJXJicAotCWxlYXEJKCVy
YXgpLCVyc3AKLS5jZmlfZGVmX2NmYV9yZWdpc3RlcgklcnNwCi0uTHh0c19lbmNfZXBpbG9ndWU6
Ci0JLmJ5dGUJMHhmMywweGMzCi0uY2ZpX2VuZHByb2MJCi0uc2l6ZQlic2Flc194dHNfZW5jcnlw
dCwuLWJzYWVzX3h0c19lbmNyeXB0Ci0KLS5nbG9ibAlic2Flc194dHNfZGVjcnlwdAotLmhpZGRl
biBic2Flc194dHNfZGVjcnlwdAotLnR5cGUJYnNhZXNfeHRzX2RlY3J5cHQsQGZ1bmN0aW9uCi0u
YWxpZ24JMTYKLWJzYWVzX3h0c19kZWNyeXB0OgotLmNmaV9zdGFydHByb2MJCi0JbW92cQklcnNw
LCVyYXgKLS5MeHRzX2RlY19wcm9sb2d1ZToKLQlwdXNocQklcmJwCi0uY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyYnAsLTE2Ci0JcHVzaHEJJXJieAotLmNmaV9hZGp1c3Rf
Y2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcmJ4LC0yNAotCXB1c2hxCSVyMTIKLS5jZmlfYWRq
dXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXIxMiwtMzIKLQlwdXNocQklcjEzCi0uY2Zp
X2FkanVzdF9jZmFfb2Zmc2V0CTgKLS5jZmlfb2Zmc2V0CSVyMTMsLTQwCi0JcHVzaHEJJXIxNAot
LmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4Ci0uY2ZpX29mZnNldAklcjE0LC00OAotCXB1c2hxCSVy
MTUKLS5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAotLmNmaV9vZmZzZXQJJXIxNSwtNTYKLQlsZWFx
CS03MiglcnNwKSwlcnNwCi0uY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTB4NDgKLQltb3ZxCSVyc3As
JXJicAotCW1vdnEJJXJkaSwlcjEyCi0JbW92cQklcnNpLCVyMTMKLQltb3ZxCSVyZHgsJXIxNAot
CW1vdnEJJXJjeCwlcjE1Ci0KLQlsZWFxCSglcjkpLCVyZGkKLQlsZWFxCTMyKCVyYnApLCVyc2kK
LQlsZWFxCSglcjgpLCVyZHgKLQljYWxsCWFlc19ub2h3X2VuY3J5cHQKLQotCW1vdmwJMjQwKCVy
MTUpLCVlYXgKLQltb3ZxCSVyMTQsJXJieAotCi0JbW92bAklZWF4LCVlZHgKLQlzaGxxCSQ3LCVy
YXgKLQlzdWJxCSQ5NiwlcmF4Ci0Jc3VicQklcmF4LCVyc3AKLQotCW1vdnEJJXJzcCwlcmF4Ci0J
bW92cQklcjE1LCVyY3gKLQltb3ZsCSVlZHgsJXIxMGQKLQljYWxsCV9ic2Flc19rZXlfY29udmVy
dAotCXB4b3IJKCVyc3ApLCV4bW03Ci0JbW92ZHFhCSV4bW02LCglcmF4KQotCW1vdmRxYQkleG1t
NywoJXJzcCkKLQotCXhvcmwJJWVheCwlZWF4Ci0JYW5kcQkkLTE2LCVyMTQKLQl0ZXN0bAkkMTUs
JWVieAotCXNldG56CSVhbAotCXNobHEJJDQsJXJheAotCXN1YnEJJXJheCwlcjE0Ci0KLQlzdWJx
CSQweDgwLCVyc3AKLQltb3ZkcWEJMzIoJXJicCksJXhtbTYKLQotCXB4b3IJJXhtbTE0LCV4bW0x
NAotCW1vdmRxYQkuTHh0c19tYWdpYyglcmlwKSwleG1tMTIKLQlwY21wZ3RkCSV4bW02LCV4bW0x
NAotCi0Jc3VicQkkMHg4MCwlcjE0Ci0JamMJLkx4dHNfZGVjX3Nob3J0Ci0Jam1wCS5MeHRzX2Rl
Y19sb29wCi0KLS5hbGlnbgkxNgotLkx4dHNfZGVjX2xvb3A6Ci0JcHNodWZkCSQweDEzLCV4bW0x
NCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTE1Ci0JbW92
ZHFhCSV4bW02LDAoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0x
MwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQlwc2h1ZmQJJDB4
MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1t
MAotCW1vdmRxYQkleG1tNiwxNiglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1t
MTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1v
dmRxdQkwKCVyMTIpLCV4bW03Ci0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4
bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTEKLQltb3ZkcWEJJXhtbTYsMzIoJXJzcCkK
LQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYs
JXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJMTYoJXIxMiksJXhtbTgKLQlweG9y
CSV4bW03LCV4bW0xNQotCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQs
JXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW0yCi0JbW92ZHFhCSV4bW02LDQ4KCVyc3ApCi0JcGFk
ZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0x
NAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTMyKCVyMTIpLCV4bW05Ci0JcHhvcgkleG1t
OCwleG1tMAotCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0
Ci0JbW92ZHFhCSV4bW02LCV4bW0zCi0JbW92ZHFhCSV4bW02LDY0KCVyc3ApCi0JcGFkZHEJJXht
bTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4
b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTQ4KCVyMTIpLCV4bW0xMAotCXB4b3IJJXhtbTksJXht
bTEKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1v
dmRxYQkleG1tNiwleG1tNAotCW1vdmRxYQkleG1tNiw4MCglcnNwKQotCXBhZGRxCSV4bW02LCV4
bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4
bW0xMywleG1tNgotCW1vdmRxdQk2NCglcjEyKSwleG1tMTEKLQlweG9yCSV4bW0xMCwleG1tMgot
CXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFh
CSV4bW02LCV4bW01Ci0JbW92ZHFhCSV4bW02LDk2KCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYK
LQlwYW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEz
LCV4bW02Ci0JbW92ZHF1CTgwKCVyMTIpLCV4bW0xMgotCXB4b3IJJXhtbTExLCV4bW0zCi0JbW92
ZHF1CTk2KCVyMTIpLCV4bW0xMwotCXB4b3IJJXhtbTEyLCV4bW00Ci0JbW92ZHF1CTExMiglcjEy
KSwleG1tMTQKLQlsZWFxCTEyOCglcjEyKSwlcjEyCi0JbW92ZHFhCSV4bW02LDExMiglcnNwKQot
CXB4b3IJJXhtbTEzLCV4bW01Ci0JbGVhcQkxMjgoJXJzcCksJXJheAotCXB4b3IJJXhtbTE0LCV4
bW02Ci0JbW92bAklZWR4LCVyMTBkCi0KLQljYWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgkw
KCVyc3ApLCV4bW0xNQotCXB4b3IJMTYoJXJzcCksJXhtbTAKLQltb3ZkcXUJJXhtbTE1LDAoJXIx
MykKLQlweG9yCTMyKCVyc3ApLCV4bW01Ci0JbW92ZHF1CSV4bW0wLDE2KCVyMTMpCi0JcHhvcgk0
OCglcnNwKSwleG1tMwotCW1vdmRxdQkleG1tNSwzMiglcjEzKQotCXB4b3IJNjQoJXJzcCksJXht
bTEKLQltb3ZkcXUJJXhtbTMsNDgoJXIxMykKLQlweG9yCTgwKCVyc3ApLCV4bW02Ci0JbW92ZHF1
CSV4bW0xLDY0KCVyMTMpCi0JcHhvcgk5NiglcnNwKSwleG1tMgotCW1vdmRxdQkleG1tNiw4MCgl
cjEzKQotCXB4b3IJMTEyKCVyc3ApLCV4bW00Ci0JbW92ZHF1CSV4bW0yLDk2KCVyMTMpCi0JbW92
ZHF1CSV4bW00LDExMiglcjEzKQotCWxlYXEJMTI4KCVyMTMpLCVyMTMKLQotCW1vdmRxYQkxMTIo
JXJzcCksJXhtbTYKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJLkx4dHNfbWFnaWMoJXJp
cCksJXhtbTEyCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4
bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1t
MTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCi0J
c3VicQkkMHg4MCwlcjE0Ci0Jam5jCS5MeHRzX2RlY19sb29wCi0KLS5MeHRzX2RlY19zaG9ydDoK
LQlhZGRxCSQweDgwLCVyMTQKLQlqegkuTHh0c19kZWNfZG9uZQotCXBzaHVmZAkkMHgxMywleG1t
MTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW0xNQotCW1v
dmRxYQkleG1tNiwwKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1t
MTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JcHNodWZkCSQw
eDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXht
bTAKLQltb3ZkcWEJJXhtbTYsMTYoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXht
bTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQlt
b3ZkcXUJMCglcjEyKSwleG1tNwotCWNtcHEJJDE2LCVyMTQKLQlqZQkuTHh0c19kZWNfMQotCXBz
aHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4
bW02LCV4bW0xCi0JbW92ZHFhCSV4bW02LDMyKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlw
YW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4
bW02Ci0JbW92ZHF1CTE2KCVyMTIpLCV4bW04Ci0JY21wcQkkMzIsJXIxNAotCWplCS5MeHRzX2Rl
Y18yCi0JcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4
b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMgotCW1vdmRxYQkleG1tNiw0OCgl
cnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkl
eG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQkzMiglcjEyKSwleG1tOQot
CWNtcHEJJDQ4LCVyMTQKLQlqZQkuTHh0c19kZWNfMwotCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1
ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1t
NiwleG1tMwotCW1vdmRxYQkleG1tNiw2NCglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFu
ZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1t
NgotCW1vdmRxdQk0OCglcjEyKSwleG1tMTAKLQljbXBxCSQ2NCwlcjE0Ci0JamUJLkx4dHNfZGVj
XzQKLQlweG9yCSV4bW05LCV4bW0xCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9y
CSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTQKLQltb3ZkcWEJJXhtbTYsODAoJXJz
cCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXht
bTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0J
Y21wcQkkODAsJXIxNAotCWplCS5MeHRzX2RlY181Ci0JcHhvcgkleG1tMTAsJXhtbTIKLQlwc2h1
ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1t
NiwleG1tNQotCW1vdmRxYQkleG1tNiw5NiglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFu
ZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1t
NgotCW1vdmRxdQk4MCglcjEyKSwleG1tMTIKLQljbXBxCSQ5NiwlcjE0Ci0JamUJLkx4dHNfZGVj
XzYKLQlweG9yCSV4bW0xMSwleG1tMwotCW1vdmRxdQk5NiglcjEyKSwleG1tMTMKLQlweG9yCSV4
bW0xMiwleG1tNAotCW1vdmRxYQkleG1tNiwxMTIoJXJzcCkKLQlsZWFxCTExMiglcjEyKSwlcjEy
Ci0JcHhvcgkleG1tMTMsJXhtbTUKLQlsZWFxCTEyOCglcnNwKSwlcmF4Ci0JbW92bAklZWR4LCVy
MTBkCi0KLQljYWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgkwKCVyc3ApLCV4bW0xNQotCXB4
b3IJMTYoJXJzcCksJXhtbTAKLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQlweG9yCTMyKCVyc3Ap
LCV4bW01Ci0JbW92ZHF1CSV4bW0wLDE2KCVyMTMpCi0JcHhvcgk0OCglcnNwKSwleG1tMwotCW1v
dmRxdQkleG1tNSwzMiglcjEzKQotCXB4b3IJNjQoJXJzcCksJXhtbTEKLQltb3ZkcXUJJXhtbTMs
NDgoJXIxMykKLQlweG9yCTgwKCVyc3ApLCV4bW02Ci0JbW92ZHF1CSV4bW0xLDY0KCVyMTMpCi0J
cHhvcgk5NiglcnNwKSwleG1tMgotCW1vdmRxdQkleG1tNiw4MCglcjEzKQotCW1vdmRxdQkleG1t
Miw5NiglcjEzKQotCWxlYXEJMTEyKCVyMTMpLCVyMTMKLQotCW1vdmRxYQkxMTIoJXJzcCksJXht
bTYKLQlqbXAJLkx4dHNfZGVjX2RvbmUKLS5hbGlnbgkxNgotLkx4dHNfZGVjXzY6Ci0JcHhvcgkl
eG1tMTEsJXhtbTMKLQlsZWFxCTk2KCVyMTIpLCVyMTIKLQlweG9yCSV4bW0xMiwleG1tNAotCWxl
YXEJMTI4KCVyc3ApLCVyYXgKLQltb3ZsCSVlZHgsJXIxMGQKLQotCWNhbGwJX2JzYWVzX2RlY3J5
cHQ4Ci0KLQlweG9yCTAoJXJzcCksJXhtbTE1Ci0JcHhvcgkxNiglcnNwKSwleG1tMAotCW1vdmRx
dQkleG1tMTUsMCglcjEzKQotCXB4b3IJMzIoJXJzcCksJXhtbTUKLQltb3ZkcXUJJXhtbTAsMTYo
JXIxMykKLQlweG9yCTQ4KCVyc3ApLCV4bW0zCi0JbW92ZHF1CSV4bW01LDMyKCVyMTMpCi0JcHhv
cgk2NCglcnNwKSwleG1tMQotCW1vdmRxdQkleG1tMyw0OCglcjEzKQotCXB4b3IJODAoJXJzcCks
JXhtbTYKLQltb3ZkcXUJJXhtbTEsNjQoJXIxMykKLQltb3ZkcXUJJXhtbTYsODAoJXIxMykKLQls
ZWFxCTk2KCVyMTMpLCVyMTMKLQotCW1vdmRxYQk5NiglcnNwKSwleG1tNgotCWptcAkuTHh0c19k
ZWNfZG9uZQotLmFsaWduCTE2Ci0uTHh0c19kZWNfNToKLQlweG9yCSV4bW0xMCwleG1tMgotCWxl
YXEJODAoJXIxMiksJXIxMgotCXB4b3IJJXhtbTExLCV4bW0zCi0JbGVhcQkxMjgoJXJzcCksJXJh
eAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJMCgl
cnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMp
Ci0JcHhvcgkzMiglcnNwKSwleG1tNQotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJNDgo
JXJzcCksJXhtbTMKLQltb3ZkcXUJJXhtbTUsMzIoJXIxMykKLQlweG9yCTY0KCVyc3ApLCV4bW0x
Ci0JbW92ZHF1CSV4bW0zLDQ4KCVyMTMpCi0JbW92ZHF1CSV4bW0xLDY0KCVyMTMpCi0JbGVhcQk4
MCglcjEzKSwlcjEzCi0KLQltb3ZkcWEJODAoJXJzcCksJXhtbTYKLQlqbXAJLkx4dHNfZGVjX2Rv
bmUKLS5hbGlnbgkxNgotLkx4dHNfZGVjXzQ6Ci0JcHhvcgkleG1tOSwleG1tMQotCWxlYXEJNjQo
JXIxMiksJXIxMgotCXB4b3IJJXhtbTEwLCV4bW0yCi0JbGVhcQkxMjgoJXJzcCksJXJheAotCW1v
dmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJMCglcnNwKSwl
eG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JcHhv
cgkzMiglcnNwKSwleG1tNQotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJNDgoJXJzcCks
JXhtbTMKLQltb3ZkcXUJJXhtbTUsMzIoJXIxMykKLQltb3ZkcXUJJXhtbTMsNDgoJXIxMykKLQls
ZWFxCTY0KCVyMTMpLCVyMTMKLQotCW1vdmRxYQk2NCglcnNwKSwleG1tNgotCWptcAkuTHh0c19k
ZWNfZG9uZQotLmFsaWduCTE2Ci0uTHh0c19kZWNfMzoKLQlweG9yCSV4bW04LCV4bW0wCi0JbGVh
cQk0OCglcjEyKSwlcjEyCi0JcHhvcgkleG1tOSwleG1tMQotCWxlYXEJMTI4KCVyc3ApLCVyYXgK
LQltb3ZsCSVlZHgsJXIxMGQKLQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0KLQlweG9yCTAoJXJz
cCksJXhtbTE1Ci0JcHhvcgkxNiglcnNwKSwleG1tMAotCW1vdmRxdQkleG1tMTUsMCglcjEzKQot
CXB4b3IJMzIoJXJzcCksJXhtbTUKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQltb3ZkcXUJJXht
bTUsMzIoJXIxMykKLQlsZWFxCTQ4KCVyMTMpLCVyMTMKLQotCW1vdmRxYQk0OCglcnNwKSwleG1t
NgotCWptcAkuTHh0c19kZWNfZG9uZQotLmFsaWduCTE2Ci0uTHh0c19kZWNfMjoKLQlweG9yCSV4
bW03LCV4bW0xNQotCWxlYXEJMzIoJXIxMiksJXIxMgotCXB4b3IJJXhtbTgsJXhtbTAKLQlsZWFx
CTEyOCglcnNwKSwlcmF4Ci0JbW92bAklZWR4LCVyMTBkCi0KLQljYWxsCV9ic2Flc19kZWNyeXB0
OAotCi0JcHhvcgkwKCVyc3ApLCV4bW0xNQotCXB4b3IJMTYoJXJzcCksJXhtbTAKLQltb3ZkcXUJ
JXhtbTE1LDAoJXIxMykKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQlsZWFxCTMyKCVyMTMpLCVy
MTMKLQotCW1vdmRxYQkzMiglcnNwKSwleG1tNgotCWptcAkuTHh0c19kZWNfZG9uZQotLmFsaWdu
CTE2Ci0uTHh0c19kZWNfMToKLQlweG9yCSV4bW0xNSwleG1tNwotCWxlYXEJMTYoJXIxMiksJXIx
MgotCW1vdmRxYQkleG1tNywzMiglcmJwKQotCWxlYXEJMzIoJXJicCksJXJkaQotCWxlYXEJMzIo
JXJicCksJXJzaQotCWxlYXEJKCVyMTUpLCVyZHgKLQljYWxsCWFlc19ub2h3X2RlY3J5cHQKLQlw
eG9yCTMyKCVyYnApLCV4bW0xNQotCi0KLQotCi0KLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQls
ZWFxCTE2KCVyMTMpLCVyMTMKLQotCW1vdmRxYQkxNiglcnNwKSwleG1tNgotCi0uTHh0c19kZWNf
ZG9uZToKLQlhbmRsCSQxNSwlZWJ4Ci0JanoJLkx4dHNfZGVjX3JldAotCi0JcHhvcgkleG1tMTQs
JXhtbTE0Ci0JbW92ZHFhCS5MeHRzX21hZ2ljKCVyaXApLCV4bW0xMgotCXBjbXBndGQJJXhtbTYs
JXhtbTE0Ci0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQltb3ZkcWEJJXhtbTYsJXhtbTUK
LQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCW1vdmRxdQkoJXIxMiks
JXhtbTE1Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQotCWxlYXEJMzIoJXJicCksJXJkaQotCXB4b3IJ
JXhtbTYsJXhtbTE1Ci0JbGVhcQkzMiglcmJwKSwlcnNpCi0JbW92ZHFhCSV4bW0xNSwzMiglcmJw
KQotCWxlYXEJKCVyMTUpLCVyZHgKLQljYWxsCWFlc19ub2h3X2RlY3J5cHQKLQlweG9yCTMyKCVy
YnApLCV4bW02Ci0JbW92cQklcjEzLCVyZHgKLQltb3ZkcXUJJXhtbTYsKCVyMTMpCi0KLS5MeHRz
X2RlY19zdGVhbDoKLQltb3Z6YmwJMTYoJXIxMiksJWVheAotCW1vdnpibAkoJXJkeCksJWVjeAot
CWxlYXEJMSglcjEyKSwlcjEyCi0JbW92YgklYWwsKCVyZHgpCi0JbW92YgklY2wsMTYoJXJkeCkK
LQlsZWFxCTEoJXJkeCksJXJkeAotCXN1YmwJJDEsJWVieAotCWpuegkuTHh0c19kZWNfc3RlYWwK
LQotCW1vdmRxdQkoJXIxMyksJXhtbTE1Ci0JbGVhcQkzMiglcmJwKSwlcmRpCi0JcHhvcgkleG1t
NSwleG1tMTUKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQltb3ZkcWEJJXhtbTE1LDMyKCVyYnApCi0J
bGVhcQkoJXIxNSksJXJkeAotCWNhbGwJYWVzX25vaHdfZGVjcnlwdAotCXB4b3IJMzIoJXJicCks
JXhtbTUKLQltb3ZkcXUJJXhtbTUsKCVyMTMpCi0KLS5MeHRzX2RlY19yZXQ6Ci0JbGVhcQkoJXJz
cCksJXJheAotCXB4b3IJJXhtbTAsJXhtbTAKLS5MeHRzX2RlY19iemVybzoKLQltb3ZkcWEJJXht
bTAsMCglcmF4KQotCW1vdmRxYQkleG1tMCwxNiglcmF4KQotCWxlYXEJMzIoJXJheCksJXJheAot
CWNtcHEJJXJheCwlcmJwCi0JamEJLkx4dHNfZGVjX2J6ZXJvCi0KLQlsZWFxCTEyMCglcmJwKSwl
cmF4Ci0uY2ZpX2RlZl9jZmEJJXJheCw4Ci0JbW92cQktNDgoJXJheCksJXIxNQotLmNmaV9yZXN0
b3JlCSVyMTUKLQltb3ZxCS00MCglcmF4KSwlcjE0Ci0uY2ZpX3Jlc3RvcmUJJXIxNAotCW1vdnEJ
LTMyKCVyYXgpLCVyMTMKLS5jZmlfcmVzdG9yZQklcjEzCi0JbW92cQktMjQoJXJheCksJXIxMgot
LmNmaV9yZXN0b3JlCSVyMTIKLQltb3ZxCS0xNiglcmF4KSwlcmJ4Ci0uY2ZpX3Jlc3RvcmUJJXJi
eAotCW1vdnEJLTgoJXJheCksJXJicAotLmNmaV9yZXN0b3JlCSVyYnAKLQlsZWFxCSglcmF4KSwl
cnNwCi0uY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJJXJzcAotLkx4dHNfZGVjX2VwaWxvZ3VlOgotCS5i
eXRlCTB4ZjMsMHhjMwotLmNmaV9lbmRwcm9jCQotLnNpemUJYnNhZXNfeHRzX2RlY3J5cHQsLi1i
c2Flc194dHNfZGVjcnlwdAotLnR5cGUJX2JzYWVzX2NvbnN0LEBvYmplY3QKLS5hbGlnbgk2NAot
X2JzYWVzX2NvbnN0OgotLkxNMElTUjoKLS5xdWFkCTB4MGEwZTAyMDYwNzBiMGYwMywgMHgwMDA0
MDgwYzBkMDEwNTA5Ci0uTElTUk0wOgotLnF1YWQJMHgwMTA0MGIwZTAyMDUwODBmLCAweDAzMDYw
OTBjMDAwNzBhMGQKLS5MSVNSOgotLnF1YWQJMHgwNTA0MDcwNjAyMDEwMDAzLCAweDBmMGUwZDBj
MDgwYjBhMDkKLS5MQlMwOgotLnF1YWQJMHg1NTU1NTU1NTU1NTU1NTU1LCAweDU1NTU1NTU1NTU1
NTU1NTUKLS5MQlMxOgotLnF1YWQJMHgzMzMzMzMzMzMzMzMzMzMzLCAweDMzMzMzMzMzMzMzMzMz
MzMKLS5MQlMyOgotLnF1YWQJMHgwZjBmMGYwZjBmMGYwZjBmLCAweDBmMGYwZjBmMGYwZjBmMGYK
LS5MU1I6Ci0ucXVhZAkweDA1MDQwNzA2MDAwMzAyMDEsIDB4MGYwZTBkMGMwYTA5MDgwYgotLkxT
Uk0wOgotLnF1YWQJMHgwMzA0MDkwZTAwMDUwYTBmLCAweDAxMDYwYjBjMDIwNzA4MGQKLS5MTTBT
UjoKLS5xdWFkCTB4MGEwZTAyMDYwZjAzMDcwYiwgMHgwMDA0MDgwYzA1MDkwZDAxCi0uTFNXUFVQ
OgotLnF1YWQJMHgwNzA2MDUwNDAzMDIwMTAwLCAweDBjMGQwZTBmMGIwYTA5MDgKLS5MU1dQVVBN
MFNSOgotLnF1YWQJMHgwYTBkMDIwNjBjMDMwNzBiLCAweDAwMDQwODBmMDUwOTBlMDEKLS5MQURE
MToKLS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMTAwMDAwMDAwCi0uTEFERDI6
Ci0ucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDIwMDAwMDAwMAotLkxBREQzOgot
LnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAzMDAwMDAwMDAKLS5MQURENDoKLS5x
dWFkCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwNDAwMDAwMDAwCi0uTEFERDU6Ci0ucXVh
ZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDUwMDAwMDAwMAotLkxBREQ2OgotLnF1YWQJ
MHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDA2MDAwMDAwMDAKLS5MQURENzoKLS5xdWFkCTB4
MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwNzAwMDAwMDAwCi0uTEFERDg6Ci0ucXVhZAkweDAw
MDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDgwMDAwMDAwMAotLkx4dHNfbWFnaWM6Ci0ubG9uZwkw
eDg3LDAsMSwwCi0uTG1hc2tzOgotLnF1YWQJMHgwMTAxMDEwMTAxMDEwMTAxLCAweDAxMDEwMTAx
MDEwMTAxMDEKLS5xdWFkCTB4MDIwMjAyMDIwMjAyMDIwMiwgMHgwMjAyMDIwMjAyMDIwMjAyCi0u
cXVhZAkweDA0MDQwNDA0MDQwNDA0MDQsIDB4MDQwNDA0MDQwNDA0MDQwNAotLnF1YWQJMHgwODA4
MDgwODA4MDgwODA4LCAweDA4MDgwODA4MDgwODA4MDgKLS5MTTA6Ci0ucXVhZAkweDAyMDYwYTBl
MDMwNzBiMGYsIDB4MDAwNDA4MGMwMTA1MDkwZAotLkw2MzoKLS5xdWFkCTB4NjM2MzYzNjM2MzYz
NjM2MywgMHg2MzYzNjM2MzYzNjM2MzYzCi0uYnl0ZQk2NiwxMDUsMTE2LDQ1LDExNSwxMDgsMTA1
LDk5LDEwMSwxMDAsMzIsNjUsNjksODMsMzIsMTAyLDExMSwxMTQsMzIsMTIwLDU2LDU0LDk1LDU0
LDUyLDQ3LDgzLDgzLDgzLDY5LDUxLDQ0LDMyLDY5LDEwOSwxMDUsMTA4LDEwNSw5NywzMiw3NSwx
OTUsMTY0LDExNSwxMTIsMTAxLDExNCw0NCwzMiw4MCwxMDEsMTE2LDEwMSwxMTQsMzIsODMsOTks
MTA0LDExOSw5Nyw5OCwxMDEsNDQsMzIsNjUsMTEwLDEwMCwxMjEsMzIsODAsMTExLDEwOCwxMjEs
OTcsMTA3LDExMSwxMTgsMAotLmFsaWduCTY0Ci0uc2l6ZQlfYnNhZXNfY29uc3QsLi1fYnNhZXNf
Y29uc3QKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxl
L2doYXNoLXNzc2UzLXg4Nl82NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2do
YXNoLXNzc2UzLXg4Nl82NC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjZjViNjZmZmZmMDlhOTNlOWYzZTAzMTFh
MGUzMGI3NTFjZGQyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvZ2hhc2gtc3NzZTMteDg2XzY0LlMKQEAgLTAsMCArMSw0MjYgQEAKKyMgVGhpcyBm
aWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRo
ZSBCb3JpbmdTU0wKKyMgc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpZiBk
ZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVy
KSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BFTlNTTF9OT19BU00KKyNl
bmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pICYmICFkZWZpbmVkKE9QRU5T
U0xfTk9fQVNNKQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNsdWRlIDxib3Jp
bmdzc2xfcHJlZml4X3N5bWJvbHNfYXNtLmg+CisjZW5kaWYKKy50ZXh0CQorCisKKworCisKKy50
eXBlCWdjbV9nbXVsdF9zc3NlMywgQGZ1bmN0aW9uCisuZ2xvYmwJZ2NtX2dtdWx0X3Nzc2UzCisu
aGlkZGVuIGdjbV9nbXVsdF9zc3NlMworLmFsaWduCTE2CitnY21fZ211bHRfc3NzZTM6CisuY2Zp
X3N0YXJ0cHJvYwkKKy5MZ211bHRfc2VoX2JlZ2luOgorCW1vdmRxdQkoJXJkaSksJXhtbTAKKwlt
b3ZkcWEJLkxyZXZlcnNlX2J5dGVzKCVyaXApLCV4bW0xMAorCW1vdmRxYQkuTGxvdzRfbWFzaygl
cmlwKSwleG1tMgorCisKKy5ieXRlCTEwMiw2NSwxNSw1NiwwLDE5NAorCisKKwltb3ZkcWEJJXht
bTIsJXhtbTEKKwlwYW5kbgkleG1tMCwleG1tMQorCXBzcmxkCSQ0LCV4bW0xCisJcGFuZAkleG1t
MiwleG1tMAorCisKKworCisJcHhvcgkleG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlt
b3ZxCSQ1LCVyYXgKKy5Mb29wX3Jvd18xOgorCW1vdmRxYQkoJXJzaSksJXhtbTQKKwlsZWFxCTE2
KCVyc2kpLCVyc2kKKworCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUsNTgsMTUs
MjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKworCisKKworCW1v
dmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIsMTUsNTYs
MCwyMzMKKworCisJcHhvcgkleG1tNSwleG1tMgorCisKKworCW1vdmRxYQkleG1tNCwleG1tNQor
CXBzbGxxCSQ2MCwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwleG1tNgor
CXB4b3IJJXhtbTYsJXhtbTMKKworCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1tNSwleG1t
MgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCisJc3VicQkkMSwlcmF4CisJ
am56CS5Mb29wX3Jvd18xCisKKworCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0z
CisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgor
CXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlt
b3ZxCSQ1LCVyYXgKKy5Mb29wX3Jvd18yOgorCW1vdmRxYQkoJXJzaSksJXhtbTQKKwlsZWFxCTE2
KCVyc2kpLCVyc2kKKworCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUsNTgsMTUs
MjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKworCisKKworCW1v
dmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIsMTUsNTYs
MCwyMzMKKworCisJcHhvcgkleG1tNSwleG1tMgorCisKKworCW1vdmRxYQkleG1tNCwleG1tNQor
CXBzbGxxCSQ2MCwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwleG1tNgor
CXB4b3IJJXhtbTYsJXhtbTMKKworCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1tNSwleG1t
MgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCisJc3VicQkkMSwlcmF4CisJ
am56CS5Mb29wX3Jvd18yCisKKworCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0z
CisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgor
CXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlt
b3ZxCSQ2LCVyYXgKKy5Mb29wX3Jvd18zOgorCW1vdmRxYQkoJXJzaSksJXhtbTQKKwlsZWFxCTE2
KCVyc2kpLCVyc2kKKworCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUsNTgsMTUs
MjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKworCisKKworCW1v
dmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIsMTUsNTYs
MCwyMzMKKworCisJcHhvcgkleG1tNSwleG1tMgorCisKKworCW1vdmRxYQkleG1tNCwleG1tNQor
CXBzbGxxCSQ2MCwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwleG1tNgor
CXB4b3IJJXhtbTYsJXhtbTMKKworCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1tNSwleG1t
MgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCisJc3VicQkkMSwlcmF4CisJ
am56CS5Mb29wX3Jvd18zCisKKworCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0z
CisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgor
CXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwor
LmJ5dGUJMTAyLDY1LDE1LDU2LDAsMjEwCisJbW92ZHF1CSV4bW0yLCglcmRpKQorCisKKwlweG9y
CSV4bW0wLCV4bW0wCisJcHhvcgkleG1tMSwleG1tMQorCXB4b3IJJXhtbTIsJXhtbTIKKwlweG9y
CSV4bW0zLCV4bW0zCisJcHhvcgkleG1tNCwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTUKKwlweG9y
CSV4bW02LCV4bW02CisJLmJ5dGUJMHhmMywweGMzCisuTGdtdWx0X3NlaF9lbmQ6CisuY2ZpX2Vu
ZHByb2MJCisuc2l6ZQlnY21fZ211bHRfc3NzZTMsLi1nY21fZ211bHRfc3NzZTMKKworCisKKwor
CisudHlwZQlnY21fZ2hhc2hfc3NzZTMsIEBmdW5jdGlvbgorLmdsb2JsCWdjbV9naGFzaF9zc3Nl
MworLmhpZGRlbiBnY21fZ2hhc2hfc3NzZTMKKy5hbGlnbgkxNgorZ2NtX2doYXNoX3Nzc2UzOgor
LkxnaGFzaF9zZWhfYmVnaW46CisuY2ZpX3N0YXJ0cHJvYwkKKwltb3ZkcXUJKCVyZGkpLCV4bW0w
CisJbW92ZHFhCS5McmV2ZXJzZV9ieXRlcyglcmlwKSwleG1tMTAKKwltb3ZkcWEJLkxsb3c0X21h
c2soJXJpcCksJXhtbTExCisKKworCWFuZHEJJC0xNiwlcmN4CisKKworCisuYnl0ZQkxMDIsNjUs
MTUsNTYsMCwxOTQKKworCisJcHhvcgkleG1tMywleG1tMworLkxvb3BfZ2hhc2g6CisKKwltb3Zk
cXUJKCVyZHgpLCV4bW0xCisuYnl0ZQkxMDIsNjUsMTUsNTYsMCwyMDIKKwlweG9yCSV4bW0xLCV4
bW0wCisKKworCW1vdmRxYQkleG1tMTEsJXhtbTEKKwlwYW5kbgkleG1tMCwleG1tMQorCXBzcmxk
CSQ0LCV4bW0xCisJcGFuZAkleG1tMTEsJXhtbTAKKworCisKKworCXB4b3IJJXhtbTIsJXhtbTIK
KworCW1vdnEJJDUsJXJheAorLkxvb3Bfcm93XzQ6CisJbW92ZHFhCSglcnNpKSwleG1tNAorCWxl
YXEJMTYoJXJzaSksJXJzaQorCisKKwltb3ZkcWEJJXhtbTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1
OCwxNSwyNDMsMQorCW1vdmRxYQkleG1tNiwleG1tMworCXBzcmxkcQkkMSwleG1tMgorCisKKwor
CisJbW92ZHFhCSV4bW00LCV4bW01CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRlCTEwMiwx
NSw1NiwwLDIzMworCisKKwlweG9yCSV4bW01LCV4bW0yCisKKworCisJbW92ZHFhCSV4bW00LCV4
bW01CisJcHNsbHEJJDYwLCV4bW01CisJbW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4LCV4
bW02CisJcHhvcgkleG1tNiwleG1tMworCisKKwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01
LCV4bW0yCisJcHNybHEJJDQsJXhtbTQKKwlweG9yCSV4bW00LCV4bW0yCisKKwlzdWJxCSQxLCVy
YXgKKwlqbnoJLkxvb3Bfcm93XzQKKworCisKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEs
JXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4
bW0yCisJcHNybHEJJDUsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1t
MworCW1vdnEJJDUsJXJheAorLkxvb3Bfcm93XzU6CisJbW92ZHFhCSglcnNpKSwleG1tNAorCWxl
YXEJMTYoJXJzaSksJXJzaQorCisKKwltb3ZkcWEJJXhtbTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1
OCwxNSwyNDMsMQorCW1vdmRxYQkleG1tNiwleG1tMworCXBzcmxkcQkkMSwleG1tMgorCisKKwor
CisJbW92ZHFhCSV4bW00LCV4bW01CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRlCTEwMiwx
NSw1NiwwLDIzMworCisKKwlweG9yCSV4bW01LCV4bW0yCisKKworCisJbW92ZHFhCSV4bW00LCV4
bW01CisJcHNsbHEJJDYwLCV4bW01CisJbW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4LCV4
bW02CisJcHhvcgkleG1tNiwleG1tMworCisKKwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01
LCV4bW0yCisJcHNybHEJJDQsJXhtbTQKKwlweG9yCSV4bW00LCV4bW0yCisKKwlzdWJxCSQxLCVy
YXgKKwlqbnoJLkxvb3Bfcm93XzUKKworCisKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEs
JXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4
bW0yCisJcHNybHEJJDUsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1t
MworCW1vdnEJJDYsJXJheAorLkxvb3Bfcm93XzY6CisJbW92ZHFhCSglcnNpKSwleG1tNAorCWxl
YXEJMTYoJXJzaSksJXJzaQorCisKKwltb3ZkcWEJJXhtbTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1
OCwxNSwyNDMsMQorCW1vdmRxYQkleG1tNiwleG1tMworCXBzcmxkcQkkMSwleG1tMgorCisKKwor
CisJbW92ZHFhCSV4bW00LCV4bW01CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRlCTEwMiwx
NSw1NiwwLDIzMworCisKKwlweG9yCSV4bW01LCV4bW0yCisKKworCisJbW92ZHFhCSV4bW00LCV4
bW01CisJcHNsbHEJJDYwLCV4bW01CisJbW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4LCV4
bW02CisJcHhvcgkleG1tNiwleG1tMworCisKKwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01
LCV4bW0yCisJcHNybHEJJDQsJXhtbTQKKwlweG9yCSV4bW00LCV4bW0yCisKKwlzdWJxCSQxLCVy
YXgKKwlqbnoJLkxvb3Bfcm93XzYKKworCisKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEs
JXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4
bW0yCisJcHNybHEJJDUsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1t
MworCW1vdmRxYQkleG1tMiwleG1tMAorCisKKwlsZWFxCS0yNTYoJXJzaSksJXJzaQorCisKKwls
ZWFxCTE2KCVyZHgpLCVyZHgKKwlzdWJxCSQxNiwlcmN4CisJam56CS5Mb29wX2doYXNoCisKKwor
LmJ5dGUJMTAyLDY1LDE1LDU2LDAsMTk0CisJbW92ZHF1CSV4bW0wLCglcmRpKQorCisKKwlweG9y
CSV4bW0wLCV4bW0wCisJcHhvcgkleG1tMSwleG1tMQorCXB4b3IJJXhtbTIsJXhtbTIKKwlweG9y
CSV4bW0zLCV4bW0zCisJcHhvcgkleG1tNCwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTUKKwlweG9y
CSV4bW02LCV4bW02CisJLmJ5dGUJMHhmMywweGMzCisuTGdoYXNoX3NlaF9lbmQ6CisuY2ZpX2Vu
ZHByb2MJCisuc2l6ZQlnY21fZ2hhc2hfc3NzZTMsLi1nY21fZ2hhc2hfc3NzZTMKKworLmFsaWdu
CTE2CisKKworLkxyZXZlcnNlX2J5dGVzOgorLmJ5dGUJMTUsIDE0LCAxMywgMTIsIDExLCAxMCwg
OSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMAorCisuTGxvdzRfbWFzazoKKy5xdWFkCTB4MGYw
ZjBmMGYwZjBmMGYwZiwgMHgwZjBmMGYwZjBmMGYwZjBmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xp
bnV4LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC14ODZfNjQuUyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82
NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC14ODZfNjQuUwppbmRleCBlZDA5NDZkOTVhNTI0YThj
ZDNiYzk3ZDE4ODc3Mjk4ZTljZGFkYjgzLi4wYjM2YWZhYzk0M2IyYzc0YmI2MjdhYzVlNzRhYjg1
Njg3YzY2OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hh
c2gteDg2XzY0LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLXg4
Nl82NC5TCkBAIC03MjIsNiArNzIyLDcgQEAgZ2NtX2doYXNoXzRiaXQ6CiAudHlwZQlnY21faW5p
dF9jbG11bCxAZnVuY3Rpb24KIC5hbGlnbgkxNgogZ2NtX2luaXRfY2xtdWw6CisuY2ZpX3N0YXJ0
cHJvYwkKIC5MX2luaXRfY2xtdWw6CiAJbW92ZHF1CSglcnNpKSwleG1tMgogCXBzaHVmZAkkNzgs
JXhtbTIsJXhtbTIKQEAgLTg3MywxMiArODc0LDE0IEBAIGdjbV9pbml0X2NsbXVsOgogLmJ5dGUJ
MTAyLDE1LDU4LDE1LDIyNyw4CiAJbW92ZHF1CSV4bW00LDgwKCVyZGkpCiAJLmJ5dGUJMHhmMyww
eGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlnY21faW5pdF9jbG11bCwuLWdjbV9pbml0X2NsbXVs
CiAuZ2xvYmwJZ2NtX2dtdWx0X2NsbXVsCiAuaGlkZGVuIGdjbV9nbXVsdF9jbG11bAogLnR5cGUJ
Z2NtX2dtdWx0X2NsbXVsLEBmdW5jdGlvbgogLmFsaWduCTE2CiBnY21fZ211bHRfY2xtdWw6Cisu
Y2ZpX3N0YXJ0cHJvYwkKIC5MX2dtdWx0X2NsbXVsOgogCW1vdmRxdQkoJXJkaSksJXhtbTAKIAlt
b3ZkcWEJLkxic3dhcF9tYXNrKCVyaXApLCV4bW01CkBAIC05MjUsMTIgKzkyOCwxNCBAQCBnY21f
Z211bHRfY2xtdWw6CiAuYnl0ZQkxMDIsMTUsNTYsMCwxOTcKIAltb3ZkcXUJJXhtbTAsKCVyZGkp
CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlnY21fZ211bHRfY2xtdWws
Li1nY21fZ211bHRfY2xtdWwKIC5nbG9ibAlnY21fZ2hhc2hfY2xtdWwKIC5oaWRkZW4gZ2NtX2do
YXNoX2NsbXVsCiAudHlwZQlnY21fZ2hhc2hfY2xtdWwsQGZ1bmN0aW9uCiAuYWxpZ24JMzIKIGdj
bV9naGFzaF9jbG11bDoKKy5jZmlfc3RhcnRwcm9jCQogLkxfZ2hhc2hfY2xtdWw6CiAJbW92ZHFh
CS5MYnN3YXBfbWFzayglcmlwKSwleG1tMTAKIApAQCAtMTMxMCwxMiArMTMxNSwxNCBAQCBnY21f
Z2hhc2hfY2xtdWw6CiAuYnl0ZQkxMDIsNjUsMTUsNTYsMCwxOTQKIAltb3ZkcXUJJXhtbTAsKCVy
ZGkpCiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlnY21fZ2hhc2hfY2xt
dWwsLi1nY21fZ2hhc2hfY2xtdWwKIC5nbG9ibAlnY21faW5pdF9hdngKIC5oaWRkZW4gZ2NtX2lu
aXRfYXZ4CiAudHlwZQlnY21faW5pdF9hdngsQGZ1bmN0aW9uCiAuYWxpZ24JMzIKIGdjbV9pbml0
X2F2eDoKKy5jZmlfc3RhcnRwcm9jCQogCXZ6ZXJvdXBwZXIKIAogCXZtb3ZkcXUJKCVyc2kpLCV4
bW0yCkBAIC0xNDE4LDE5ICsxNDI1LDIzIEBAIGdjbV9pbml0X2F2eDoKIAogCXZ6ZXJvdXBwZXIK
IAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCWdjbV9pbml0X2F2eCwuLWdj
bV9pbml0X2F2eAogLmdsb2JsCWdjbV9nbXVsdF9hdngKIC5oaWRkZW4gZ2NtX2dtdWx0X2F2eAog
LnR5cGUJZ2NtX2dtdWx0X2F2eCxAZnVuY3Rpb24KIC5hbGlnbgkzMgogZ2NtX2dtdWx0X2F2eDoK
Ky5jZmlfc3RhcnRwcm9jCQogCWptcAkuTF9nbXVsdF9jbG11bAorLmNmaV9lbmRwcm9jCQogLnNp
emUJZ2NtX2dtdWx0X2F2eCwuLWdjbV9nbXVsdF9hdngKIC5nbG9ibAlnY21fZ2hhc2hfYXZ4CiAu
aGlkZGVuIGdjbV9naGFzaF9hdngKIC50eXBlCWdjbV9naGFzaF9hdngsQGZ1bmN0aW9uCiAuYWxp
Z24JMzIKIGdjbV9naGFzaF9hdng6CisuY2ZpX3N0YXJ0cHJvYwkKIAl2emVyb3VwcGVyCiAKIAl2
bW92ZHF1CSglcmRpKSwleG1tMTAKQEAgLTE4MDIsNiArMTgxMyw3IEBAIGdjbV9naGFzaF9hdng6
CiAJdm1vdmRxdQkleG1tMTAsKCVyZGkpCiAJdnplcm91cHBlcgogCS5ieXRlCTB4ZjMsMHhjMwor
LmNmaV9lbmRwcm9jCQogLnNpemUJZ2NtX2doYXNoX2F2eCwuLWdjbV9naGFzaF9hdngKIC5hbGln
bgk2NAogLkxic3dhcF9tYXNrOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBz
bW9kdWxlL21kNS14ODZfNjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9tZDUt
eDg2XzY0LlMKaW5kZXggNmQwOGYxNzNlNWYzMDU4ZWRlZTRlNGUyNWRhMDM4YzMzODI4OGU3ZS4u
MThlMmU5MjgyYTg4Yjk0M2Y4MTFlNGEyYzMzZDRmODZkMWU0OTUyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGlu
dXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL21kNS14ODZfNjQuUworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZf
NjQvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1LXg4Nl82NC5TCkBAIC0xOCwxMSArMTgsMjIgQEAKIC5o
aWRkZW4gbWQ1X2Jsb2NrX2FzbV9kYXRhX29yZGVyCiAudHlwZQltZDVfYmxvY2tfYXNtX2RhdGFf
b3JkZXIsQGZ1bmN0aW9uCiBtZDVfYmxvY2tfYXNtX2RhdGFfb3JkZXI6CisuY2ZpX3N0YXJ0cHJv
YwkKIAlwdXNocQklcmJwCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlfb2Zmc2V0CXJi
cCwtMTYKIAlwdXNocQklcmJ4CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlfb2Zmc2V0
CXJieCwtMjQKIAlwdXNocQklcjEyCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlfb2Zm
c2V0CXIxMiwtMzIKIAlwdXNocQklcjE0CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlf
b2Zmc2V0CXIxNCwtNDAKIAlwdXNocQklcjE1CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5j
Zmlfb2Zmc2V0CXIxNSwtNDgKIC5McHJvbG9ndWU6CiAKIApAQCAtNjcyLDEyICs2ODMsMTkgQEAg
bWQ1X2Jsb2NrX2FzbV9kYXRhX29yZGVyOgogCW1vdmwJJWVkeCwxMiglcmJwKQogCiAJbW92cQko
JXJzcCksJXIxNQorLmNmaV9yZXN0b3JlCXIxNQogCW1vdnEJOCglcnNwKSwlcjE0CisuY2ZpX3Jl
c3RvcmUJcjE0CiAJbW92cQkxNiglcnNwKSwlcjEyCisuY2ZpX3Jlc3RvcmUJcjEyCiAJbW92cQky
NCglcnNwKSwlcmJ4CisuY2ZpX3Jlc3RvcmUJcmJ4CiAJbW92cQkzMiglcnNwKSwlcmJwCisuY2Zp
X3Jlc3RvcmUJcmJwCiAJYWRkcQkkNDAsJXJzcAorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAktNDAK
IC5MZXBpbG9ndWU6CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQltZDVf
YmxvY2tfYXNtX2RhdGFfb3JkZXIsLi1tZDVfYmxvY2tfYXNtX2RhdGFfb3JkZXIKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3AyNTYteDg2XzY0LWFz
bS5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3AyNTYteDg2XzY0LWFzbS5TCmlu
ZGV4IDZhM2NiMWM2ZTNlYjY5OTIyZjhiZGQyMmRmNDZjMWNmNWRiMGZiN2UuLjA2NzU3NWVjNzUx
OTYxNjMwOTI4MWZhOGY5ODkxNDIxYWJkNDNiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9j
cnlwdG8vZmlwc21vZHVsZS9wMjU2LXg4Nl82NC1hc20uUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5
cHRvL2ZpcHNtb2R1bGUvcDI1Ni14ODZfNjQtYXNtLlMKQEAgLTEyNjcsNiArMTI2Nyw3IEBAIGVj
cF9uaXN0ejI1Nl9tdWxfbW9udDoKIC50eXBlCV9fZWNwX25pc3R6MjU2X211bF9tb250cSxAZnVu
Y3Rpb24KIC5hbGlnbgkzMgogX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxOgorLmNmaV9zdGFydHBy
b2MJCiAKIAogCW1vdnEJJXJheCwlcmJwCkBAIC0xNDc4LDYgKzE0NzksNyBAQCBfX2VjcF9uaXN0
ejI1Nl9tdWxfbW9udHE6CiAJbW92cQklcjksMjQoJXJkaSkKIAogCS5ieXRlCTB4ZjMsMHhjMwor
LmNmaV9lbmRwcm9jCQogLnNpemUJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxLC4tX19lY3Bfbmlz
dHoyNTZfbXVsX21vbnRxCiAKIApAQCAtMTU1Nyw2ICsxNTU5LDcgQEAgZWNwX25pc3R6MjU2X3Nx
cl9tb250OgogLnR5cGUJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxLEBmdW5jdGlvbgogLmFsaWdu
CTMyCiBfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHE6CisuY2ZpX3N0YXJ0cHJvYwkKIAltb3ZxCSVy
YXgsJXIxMwogCW11bHEJJXIxNAogCW1vdnEJJXJheCwlcjkKQEAgLTE3MTQsMTAgKzE3MTcsMTIg
QEAgX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxOgogCW1vdnEJJXIxNSwyNCglcmRpKQogCiAJLmJ5
dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9u
dHEsLi1fX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKIC50eXBlCV9fZWNwX25pc3R6MjU2X211bF9t
b250eCxAZnVuY3Rpb24KIC5hbGlnbgkzMgogX19lY3BfbmlzdHoyNTZfbXVsX21vbnR4OgorLmNm
aV9zdGFydHByb2MJCiAKIAogCW11bHhxCSVyOSwlcjgsJXI5CkBAIC0xODgwLDExICsxODg1LDEz
IEBAIF9fZWNwX25pc3R6MjU2X211bF9tb250eDoKIAltb3ZxCSVyOSwyNCglcmRpKQogCiAJLmJ5
dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9u
dHgsLi1fX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHgKIAogLnR5cGUJX19lY3BfbmlzdHoyNTZfc3Fy
X21vbnR4LEBmdW5jdGlvbgogLmFsaWduCTMyCiBfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHg6Cisu
Y2ZpX3N0YXJ0cHJvYwkKIAltdWx4cQklcjE0LCVyOSwlcjEwCiAJbXVseHEJJXIxNSwlcmN4LCVy
MTEKIAl4b3JsCSVlYXgsJWVheApAQCAtMjAwOCw2ICsyMDE1LDcgQEAgX19lY3BfbmlzdHoyNTZf
c3FyX21vbnR4OgogCW1vdnEJJXIxNSwyNCglcmRpKQogCiAJLmJ5dGUJMHhmMywweGMzCisuY2Zp
X2VuZHByb2MJCiAuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHgsLi1fX2VjcF9uaXN0ejI1
Nl9zcXJfbW9udHgKIAogCkBAIC0yMDE2LDYgKzIwMjQsNyBAQCBfX2VjcF9uaXN0ejI1Nl9zcXJf
bW9udHg6CiAudHlwZQllY3BfbmlzdHoyNTZfc2VsZWN0X3c1LEBmdW5jdGlvbgogLmFsaWduCTMy
CiBlY3BfbmlzdHoyNTZfc2VsZWN0X3c1OgorLmNmaV9zdGFydHByb2MJCiAJbGVhcQlPUEVOU1NM
X2lhMzJjYXBfUCglcmlwKSwlcmF4CiAJbW92cQk4KCVyYXgpLCVyYXgKIAl0ZXN0bAkkMzIsJWVh
eApAQCAtMjA3MSw2ICsyMDgwLDcgQEAgZWNwX25pc3R6MjU2X3NlbGVjdF93NToKIAltb3ZkcXUJ
JXhtbTYsNjQoJXJkaSkKIAltb3ZkcXUJJXhtbTcsODAoJXJkaSkKIAkuYnl0ZQkweGYzLDB4YzMK
Ky5jZmlfZW5kcHJvYwkKIC5MU0VIX2VuZF9lY3BfbmlzdHoyNTZfc2VsZWN0X3c1OgogLnNpemUJ
ZWNwX25pc3R6MjU2X3NlbGVjdF93NSwuLWVjcF9uaXN0ejI1Nl9zZWxlY3RfdzUKIApAQCAtMjA4
MSw2ICsyMDkxLDcgQEAgZWNwX25pc3R6MjU2X3NlbGVjdF93NToKIC50eXBlCWVjcF9uaXN0ejI1
Nl9zZWxlY3RfdzcsQGZ1bmN0aW9uCiAuYWxpZ24JMzIKIGVjcF9uaXN0ejI1Nl9zZWxlY3Rfdzc6
CisuY2ZpX3N0YXJ0cHJvYwkKIAlsZWFxCU9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCVyYXgKIAlt
b3ZxCTgoJXJheCksJXJheAogCXRlc3RsCSQzMiwlZWF4CkBAIC0yMTI1LDYgKzIxMzYsNyBAQCBl
Y3BfbmlzdHoyNTZfc2VsZWN0X3c3OgogCW1vdmRxdQkleG1tNCwzMiglcmRpKQogCW1vdmRxdQkl
eG1tNSw0OCglcmRpKQogCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9jCQogLkxTRUhfZW5k
X2VjcF9uaXN0ejI1Nl9zZWxlY3Rfdzc6CiAuc2l6ZQllY3BfbmlzdHoyNTZfc2VsZWN0X3c3LC4t
ZWNwX25pc3R6MjU2X3NlbGVjdF93NwogCkBAIC0yMTMyLDYgKzIxNDQsNyBAQCBlY3BfbmlzdHoy
NTZfc2VsZWN0X3c3OgogLnR5cGUJZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c1LEBmdW5jdGlv
bgogLmFsaWduCTMyCiBlY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzU6CisuY2ZpX3N0YXJ0cHJv
YwkKIC5MYXZ4Ml9zZWxlY3RfdzU6CiAJdnplcm91cHBlcgogCXZtb3ZkcWEJLkxUd28oJXJpcCks
JXltbTAKQEAgLTIxODYsNiArMjE5OSw3IEBAIGVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NToK
IAl2bW92ZHF1CSV5bW00LDY0KCVyZGkpCiAJdnplcm91cHBlcgogCS5ieXRlCTB4ZjMsMHhjMwor
LmNmaV9lbmRwcm9jCQogLkxTRUhfZW5kX2VjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NToKIC5z
aXplCWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NSwuLWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVj
dF93NQogCkBAIC0yMTk2LDYgKzIyMTAsNyBAQCBlY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzU6
CiAudHlwZQllY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzcsQGZ1bmN0aW9uCiAuYWxpZ24JMzIK
IGVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NzoKKy5jZmlfc3RhcnRwcm9jCQogLkxhdngyX3Nl
bGVjdF93NzoKIAl2emVyb3VwcGVyCiAJdm1vdmRxYQkuTFRocmVlKCVyaXApLCV5bW0wCkBAIC0y
MjY1LDExICsyMjgwLDEzIEBAIGVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NzoKIAl2bW92ZHF1
CSV5bW0zLDMyKCVyZGkpCiAJdnplcm91cHBlcgogCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRw
cm9jCQogLkxTRUhfZW5kX2VjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NzoKIC5zaXplCWVjcF9u
aXN0ejI1Nl9hdngyX3NlbGVjdF93NywuLWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NwogLnR5
cGUJX19lY3BfbmlzdHoyNTZfYWRkX3RvcSxAZnVuY3Rpb24KIC5hbGlnbgkzMgogX19lY3Bfbmlz
dHoyNTZfYWRkX3RvcToKKy5jZmlfc3RhcnRwcm9jCQogCXhvcnEJJXIxMSwlcjExCiAJYWRkcQkw
KCVyYngpLCVyMTIKIAlhZGNxCTgoJXJieCksJXIxMwpAQCAtMjI5NywxMSArMjMxNCwxMyBAQCBf
X2VjcF9uaXN0ejI1Nl9hZGRfdG9xOgogCW1vdnEJJXI5LDI0KCVyZGkpCiAKIAkuYnl0ZQkweGYz
LDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCV9fZWNwX25pc3R6MjU2X2FkZF90b3EsLi1fX2Vj
cF9uaXN0ejI1Nl9hZGRfdG9xCiAKIC50eXBlCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcSxAZnVu
Y3Rpb24KIC5hbGlnbgkzMgogX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xOgorLmNmaV9zdGFydHBy
b2MJCiAJc3VicQkwKCVyYngpLCVyMTIKIAlzYmJxCTgoJXJieCksJXIxMwogCW1vdnEJJXIxMiwl
cmF4CkBAIC0yMzI4LDExICsyMzQ3LDEzIEBAIF9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcToKIAlt
b3ZxCSVyOSwyNCglcmRpKQogCiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6
ZQlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEsLi1fX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKIAog
LnR5cGUJX19lY3BfbmlzdHoyNTZfc3VicSxAZnVuY3Rpb24KIC5hbGlnbgkzMgogX19lY3Bfbmlz
dHoyNTZfc3VicToKKy5jZmlfc3RhcnRwcm9jCQogCXN1YnEJJXIxMiwlcmF4CiAJc2JicQklcjEz
LCVyYnAKIAltb3ZxCSVyYXgsJXIxMgpAQCAtMjM1NSwxMSArMjM3NiwxMyBAQCBfX2VjcF9uaXN0
ejI1Nl9zdWJxOgogCWNtb3ZuenEJJXIxMCwlcjkKIAogCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9l
bmRwcm9jCQogLnNpemUJX19lY3BfbmlzdHoyNTZfc3VicSwuLV9fZWNwX25pc3R6MjU2X3N1YnEK
IAogLnR5cGUJX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxLEBmdW5jdGlvbgogLmFsaWduCTMyCiBf
X2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnE6CisuY2ZpX3N0YXJ0cHJvYwkKIAl4b3JxCSVyMTEsJXIx
MQogCWFkZHEJJXIxMiwlcjEyCiAJYWRjcQklcjEzLCVyMTMKQEAgLTIzODcsNiArMjQxMCw3IEBA
IF9fZWNwX25pc3R6MjU2X211bF9ieV8ycToKIAltb3ZxCSVyOSwyNCglcmRpKQogCiAJLmJ5dGUJ
MHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEs
Li1fX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEKIC5nbG9ibAllY3BfbmlzdHoyNTZfcG9pbnRfZG91
YmxlCiAuaGlkZGVuIGVjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGUKQEAgLTI3OTksMTUgKzI4MjMs
MjIgQEAgZWNwX25pc3R6MjU2X3BvaW50X2FkZDoKIAlvcnEJJXI4LCVyMTIKIAlvcnEJJXI5LCVy
MTIKIAotLmJ5dGUJMHgzZQotCWpuegkuTGFkZF9wcm9jZWVkcQogLmJ5dGUJMTAyLDczLDE1LDEy
NiwyMDgKIC5ieXRlCTEwMiw3MywxNSwxMjYsMjE3Ci0JdGVzdHEJJXI4LCVyOAorCW9ycQklcjgs
JXIxMgorLmJ5dGUJMHgzZQogCWpuegkuTGFkZF9wcm9jZWVkcQorCisKKwogCXRlc3RxCSVyOSwl
cjkKIAlqegkuTGFkZF9kb3VibGVxCiAKKworCisKKworCiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5
OQogCXB4b3IJJXhtbTAsJXhtbTAKIAltb3ZkcXUJJXhtbTAsMCglcmRpKQpAQCAtMjgyMyw3ICsy
ODU0LDkgQEAgZWNwX25pc3R6MjU2X3BvaW50X2FkZDoKIC5ieXRlCTEwMiw3MiwxNSwxMjYsMjA2
CiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5OQogCWFkZHEJJDQxNiwlcnNwCisuY2ZpX2FkanVzdF9j
ZmFfb2Zmc2V0CS00MTYKIAlqbXAJLkxwb2ludF9kb3VibGVfc2hvcnRjdXRxCisuY2ZpX2FkanVz
dF9jZmFfb2Zmc2V0CTQxNgogCiAuYWxpZ24JMzIKIC5MYWRkX3Byb2NlZWRxOgpAQCAtMzM4Nyw2
ICszNDIwLDcgQEAgZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmU6CiAudHlwZQlfX2VjcF9u
aXN0ejI1Nl9hZGRfdG94LEBmdW5jdGlvbgogLmFsaWduCTMyCiBfX2VjcF9uaXN0ejI1Nl9hZGRf
dG94OgorLmNmaV9zdGFydHByb2MJCiAJeG9ycQklcjExLCVyMTEKIAlhZGNxCTAoJXJieCksJXIx
MgogCWFkY3EJOCglcmJ4KSwlcjEzCkBAIC0zNDE1LDExICszNDQ5LDEzIEBAIF9fZWNwX25pc3R6
MjU2X2FkZF90b3g6CiAJbW92cQklcjksMjQoJXJkaSkKIAogCS5ieXRlCTB4ZjMsMHhjMworLmNm
aV9lbmRwcm9jCQogLnNpemUJX19lY3BfbmlzdHoyNTZfYWRkX3RveCwuLV9fZWNwX25pc3R6MjU2
X2FkZF90b3gKIAogLnR5cGUJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb214LEBmdW5jdGlvbgogLmFs
aWduCTMyCiBfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXg6CisuY2ZpX3N0YXJ0cHJvYwkKIAl4b3Jx
CSVyMTEsJXIxMQogCXNiYnEJMCglcmJ4KSwlcjEyCiAJc2JicQk4KCVyYngpLCVyMTMKQEAgLTM0
NDgsMTEgKzM0ODQsMTMgQEAgX19lY3BfbmlzdHoyNTZfc3ViX2Zyb214OgogCW1vdnEJJXI5LDI0
KCVyZGkpCiAKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCV9fZWNwX25p
c3R6MjU2X3N1Yl9mcm9teCwuLV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9teAogCiAudHlwZQlfX2Vj
cF9uaXN0ejI1Nl9zdWJ4LEBmdW5jdGlvbgogLmFsaWduCTMyCiBfX2VjcF9uaXN0ejI1Nl9zdWJ4
OgorLmNmaV9zdGFydHByb2MJCiAJeG9ycQklcjExLCVyMTEKIAlzYmJxCSVyMTIsJXJheAogCXNi
YnEJJXIxMywlcmJwCkBAIC0zNDc3LDExICszNTE1LDEzIEBAIF9fZWNwX25pc3R6MjU2X3N1Yng6
CiAJY21vdmNxCSVyMTAsJXI5CiAKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5z
aXplCV9fZWNwX25pc3R6MjU2X3N1YngsLi1fX2VjcF9uaXN0ejI1Nl9zdWJ4CiAKIC50eXBlCV9f
ZWNwX25pc3R6MjU2X211bF9ieV8yeCxAZnVuY3Rpb24KIC5hbGlnbgkzMgogX19lY3BfbmlzdHoy
NTZfbXVsX2J5XzJ4OgorLmNmaV9zdGFydHByb2MJCiAJeG9ycQklcjExLCVyMTEKIAlhZGNxCSVy
MTIsJXIxMgogCWFkY3EJJXIxMywlcjEzCkBAIC0zNTEwLDYgKzM1NTAsNyBAQCBfX2VjcF9uaXN0
ejI1Nl9tdWxfYnlfMng6CiAJbW92cQklcjksMjQoJXJkaSkKIAogCS5ieXRlCTB4ZjMsMHhjMwor
LmNmaV9lbmRwcm9jCQogLnNpemUJX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJ4LC4tX19lY3Bfbmlz
dHoyNTZfbXVsX2J5XzJ4CiAudHlwZQllY3BfbmlzdHoyNTZfcG9pbnRfZG91YmxleCxAZnVuY3Rp
b24KIC5hbGlnbgkzMgpAQCAtMzkxMCwxNSArMzk1MSwyMiBAQCBlY3BfbmlzdHoyNTZfcG9pbnRf
YWRkeDoKIAlvcnEJJXI4LCVyMTIKIAlvcnEJJXI5LCVyMTIKIAotLmJ5dGUJMHgzZQotCWpuegku
TGFkZF9wcm9jZWVkeAogLmJ5dGUJMTAyLDczLDE1LDEyNiwyMDgKIC5ieXRlCTEwMiw3MywxNSwx
MjYsMjE3Ci0JdGVzdHEJJXI4LCVyOAorCW9ycQklcjgsJXIxMgorLmJ5dGUJMHgzZQogCWpuegku
TGFkZF9wcm9jZWVkeAorCisKKwogCXRlc3RxCSVyOSwlcjkKIAlqegkuTGFkZF9kb3VibGV4CiAK
KworCisKKworCiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5OQogCXB4b3IJJXhtbTAsJXhtbTAKIAlt
b3ZkcXUJJXhtbTAsMCglcmRpKQpAQCAtMzkzNCw3ICszOTgyLDkgQEAgZWNwX25pc3R6MjU2X3Bv
aW50X2FkZHg6CiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDIwNgogLmJ5dGUJMTAyLDcyLDE1LDEyNiwx
OTkKIAlhZGRxCSQ0MTYsJXJzcAorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAktNDE2CiAJam1wCS5M
cG9pbnRfZG91YmxlX3Nob3J0Y3V0eAorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk0MTYKIAogLmFs
aWduCTMyCiAuTGFkZF9wcm9jZWVkeDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8v
Zmlwc21vZHVsZS9wMjU2X2JlZXUteDg2XzY0LWFzbS5TIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9m
aXBzbW9kdWxlL3AyNTZfYmVldS14ODZfNjQtYXNtLlMKaW5kZXggOThhMmY4ZjRiNWQzYWI1NzRl
YzljNWNkMDkxNzYwODY2YzgxNDU2NC4uNWRmZWNjODVlYmZiMjExY2FiZDQ3M2E0YTc4Y2NmMDUw
YTExNzMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3AyNTZf
YmVldS14ODZfNjQtYXNtLlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3Ay
NTZfYmVldS14ODZfNjQtYXNtLlMKQEAgLTIzLDIzICsyMywyNyBAQCBiZWV1X21vZF9pbnZlcnNl
X3ZhcnRpbWU6CiAJcHVzaHEJJXJicAogLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4CiAuY2ZpX29m
ZnNldAlyYnAsLTE2Ci0JbW92cQklcnNwLCVyYnAKLS5jZmlfZGVmX2NmYV9yZWdpc3RlcglyYnAK
LQogCXB1c2hxCSVyMTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAogLmNmaV9vZmZzZXQJcjEy
LC0yNAogCXB1c2hxCSVyMTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAogLmNmaV9vZmZzZXQJ
cjEzLC0zMgogCXB1c2hxCSVyMTQKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAogLmNmaV9vZmZz
ZXQJcjE0LC00MAogCXB1c2hxCSVyMTUKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAogLmNmaV9v
ZmZzZXQJcjE1LC00OAogCXB1c2hxCSVyYngKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAogLmNm
aV9vZmZzZXQJcmJ4LC01NgogCXB1c2hxCSVyc2kKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAog
LmNmaV9vZmZzZXQJcnNpLC02NAogCiAJc3VicQkkODAsJXJzcAorLmNmaV9hZGp1c3RfY2ZhX29m
ZnNldAk4MAogCW1vdnEJJXJkaSwwKCVyc3ApCiAKIApAQCAtMzA5LDIzICszMTMsMzAgQEAgYmVl
dV9tb2RfaW52ZXJzZV92YXJ0aW1lOgogCiAuTGJlZXVfZmluaXNoOgogCWFkZHEJJDgwLCVyc3AK
Ky5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgwCiAJcG9wcQklcnNpCisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CS04CiAuY2ZpX3Jlc3RvcmUJcnNpCiAJcG9wcQklcmJ4CisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CS04CiAuY2ZpX3Jlc3RvcmUJcmJ4CiAJcG9wcQklcjE1CisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CS04CiAuY2ZpX3Jlc3RvcmUJcjE1CiAJcG9wcQklcjE0CisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CS04CiAuY2ZpX3Jlc3RvcmUJcjE0CiAJcG9wcQklcjEzCisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CS04CiAuY2ZpX3Jlc3RvcmUJcjEzCiAJcG9wcQklcjEyCisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CS04CiAuY2ZpX3Jlc3RvcmUJcjEyCiAJcG9wcQklcmJwCisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CS04CiAuY2ZpX3Jlc3RvcmUJcmJwCi0uY2ZpX2RlZl9jZmEJcnNwLCA4Ci0uY2ZpX2Vu
ZHByb2MJCiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAKIC5zaXplCWJlZXVfbW9k
X2ludmVyc2VfdmFydGltZSwgLi1iZWV1X21vZF9pbnZlcnNlX3ZhcnRpbWUKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3JkcmFuZC14ODZfNjQuUyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L2xpbnV4LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9yZHJhbmQteDg2XzY0LlMKaW5kZXggZDdi
MGNiNGI5ODdhMGE4NWZmN2RlZjc5N2ZmOTU4YzgzYjliYmUzYi4uZmVmY2NkNmZkZjI4NDkzZjc2
YWYxZGY0MWFmNTlkOTljZTg1Nzc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9m
aXBzbW9kdWxlL3JkcmFuZC14ODZfNjQuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNt
b2R1bGUvcmRyYW5kLXg4Nl82NC5TCkBAIC0yMywxNCArMjMsMTMgQEAKIENSWVBUT19yZHJhbmQ6
CiAuY2ZpX3N0YXJ0cHJvYwkKIAl4b3JxCSVyYXgsJXJheAotCi0KLS5ieXRlCTB4NDgsIDB4MGYs
IDB4YzcsIDB4ZjEKKy5ieXRlCTcyLDE1LDE5OSwyNDIKIAogCWFkY3EJJXJheCwlcmF4Ci0JbW92
cQklcmN4LDAoJXJkaSkKKwltb3ZxCSVyZHgsMCglcmRpKQogCS5ieXRlCTB4ZjMsMHhjMwogLmNm
aV9lbmRwcm9jCQorLnNpemUJQ1JZUFRPX3JkcmFuZCwuLUNSWVBUT19yZHJhbmQKIAogCiAKQEAg
LTQ2LDkgKzQ1LDcgQEAgQ1JZUFRPX3JkcmFuZF9tdWx0aXBsZThfYnVmOgogCWp6CS5Mb3V0CiAJ
bW92cQkkOCwlcmR4CiAuTGxvb3A6Ci0KLQotLmJ5dGUJMHg0OCwgMHgwZiwgMHhjNywgMHhmMQor
LmJ5dGUJNzIsMTUsMTk5LDI0MQogCWpuYwkuTGVycgogCW1vdnEJJXJjeCwwKCVyZGkpCiAJYWRk
cQklcmR4LCVyZGkKQEAgLTYxLDQgKzU4LDUgQEAgQ1JZUFRPX3JkcmFuZF9tdWx0aXBsZThfYnVm
OgogCXhvcnEJJXJheCwlcmF4CiAJLmJ5dGUJMHhmMywweGMzCiAuY2ZpX2VuZHByb2MJCisuc2l6
ZQlDUllQVE9fcmRyYW5kX211bHRpcGxlOF9idWYsLi1DUllQVE9fcmRyYW5kX211bHRpcGxlOF9i
dWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3Jz
YXotYXZ4Mi5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3JzYXotYXZ4Mi5TCmlu
ZGV4IDRjYTJjYWIwZmM0YzUxMjE1NGM4ZjExNjdhMmUzZTQyZmFhNTQ5NjkuLjU3OWM3MDU1NTY1
MDZhNTc5NTM4OGEzY2ExNzc4YzkwOTJjN2QzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9j
cnlwdG8vZmlwc21vZHVsZS9yc2F6LWF2eDIuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvcnNhei1hdngyLlMKQEAgLTEyMjgsNiArMTIyOCw3IEBAIHJzYXpfMTAyNF9tdWxf
YXZ4MjoKIC50eXBlCXJzYXpfMTAyNF9yZWQybm9ybV9hdngyLEBmdW5jdGlvbgogLmFsaWduCTMy
CiByc2F6XzEwMjRfcmVkMm5vcm1fYXZ4MjoKKy5jZmlfc3RhcnRwcm9jCQogCXN1YnEJJC0xMjgs
JXJzaQogCXhvcnEJJXJheCwlcmF4CiAJbW92cQktMTI4KCVyc2kpLCVyOApAQCAtMTQxOSw2ICsx
NDIwLDcgQEAgcnNhel8xMDI0X3JlZDJub3JtX2F2eDI6CiAJbW92cQklcmF4LDEyMCglcmRpKQog
CW1vdnEJJXIxMSwlcmF4CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQly
c2F6XzEwMjRfcmVkMm5vcm1fYXZ4MiwuLXJzYXpfMTAyNF9yZWQybm9ybV9hdngyCiAKIC5nbG9i
bAlyc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MgpAQCAtMTQyNiw2ICsxNDI4LDcgQEAgcnNhel8xMDI0
X3JlZDJub3JtX2F2eDI6CiAudHlwZQlyc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MixAZnVuY3Rpb24K
IC5hbGlnbgkzMgogcnNhel8xMDI0X25vcm0ycmVkX2F2eDI6CisuY2ZpX3N0YXJ0cHJvYwkKIAlz
dWJxCSQtMTI4LCVyZGkKIAltb3ZxCSglcnNpKSwlcjgKIAltb3ZsCSQweDFmZmZmZmZmLCVlYXgK
QEAgLTE1NzgsMTIgKzE1ODEsMTQgQEAgcnNhel8xMDI0X25vcm0ycmVkX2F2eDI6CiAJbW92cQkl
cjgsMTc2KCVyZGkpCiAJbW92cQklcjgsMTg0KCVyZGkpCiAJLmJ5dGUJMHhmMywweGMzCisuY2Zp
X2VuZHByb2MJCiAuc2l6ZQlyc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MiwuLXJzYXpfMTAyNF9ub3Jt
MnJlZF9hdngyCiAuZ2xvYmwJcnNhel8xMDI0X3NjYXR0ZXI1X2F2eDIKIC5oaWRkZW4gcnNhel8x
MDI0X3NjYXR0ZXI1X2F2eDIKIC50eXBlCXJzYXpfMTAyNF9zY2F0dGVyNV9hdngyLEBmdW5jdGlv
bgogLmFsaWduCTMyCiByc2F6XzEwMjRfc2NhdHRlcjVfYXZ4MjoKKy5jZmlfc3RhcnRwcm9jCQog
CXZ6ZXJvdXBwZXIKIAl2bW92ZHF1CS5Mc2NhdHRlcl9wZXJtZCglcmlwKSwleW1tNQogCXNobGwJ
JDQsJWVkeApAQCAtMTYwMyw2ICsxNjA4LDcgQEAgcnNhel8xMDI0X3NjYXR0ZXI1X2F2eDI6CiAK
IAl2emVyb3VwcGVyCiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlyc2F6
XzEwMjRfc2NhdHRlcjVfYXZ4MiwuLXJzYXpfMTAyNF9zY2F0dGVyNV9hdngyCiAKIC5nbG9ibAly
c2F6XzEwMjRfZ2F0aGVyNV9hdngyCkBAIC0xNzI3LDI1ICsxNzMzLDYgQEAgcnNhel8xMDI0X2dh
dGhlcjVfYXZ4MjoKIC5jZmlfZW5kcHJvYwkKIC5MU0VIX2VuZF9yc2F6XzEwMjRfZ2F0aGVyNToK
IC5zaXplCXJzYXpfMTAyNF9nYXRoZXI1X2F2eDIsLi1yc2F6XzEwMjRfZ2F0aGVyNV9hdngyCi0u
ZXh0ZXJuCU9QRU5TU0xfaWEzMmNhcF9QCi0uaGlkZGVuIE9QRU5TU0xfaWEzMmNhcF9QCi0uZ2xv
YmwJcnNhel9hdngyX2VsaWdpYmxlCi0uaGlkZGVuIHJzYXpfYXZ4Ml9lbGlnaWJsZQotLnR5cGUJ
cnNhel9hdngyX2VsaWdpYmxlLEBmdW5jdGlvbgotLmFsaWduCTMyCi1yc2F6X2F2eDJfZWxpZ2li
bGU6Ci0JbGVhcQlPUEVOU1NMX2lhMzJjYXBfUCglcmlwKSwlcmF4Ci0JbW92bAk4KCVyYXgpLCVl
YXgKLQltb3ZsCSQ1MjQ1NDQsJWVjeAotCW1vdmwJJDAsJWVkeAotCWFuZGwJJWVheCwlZWN4Ci0J
Y21wbAkkNTI0NTQ0LCVlY3gKLQljbW92ZWwJJWVkeCwlZWF4Ci0JYW5kbAkkMzIsJWVheAotCXNo
cmwJJDUsJWVheAotCS5ieXRlCTB4ZjMsMHhjMwotLnNpemUJcnNhel9hdngyX2VsaWdpYmxlLC4t
cnNhel9hdngyX2VsaWdpYmxlCi0KIC5hbGlnbgk2NAogLkxhbmRfbWFzazoKIC5xdWFkCTB4MWZm
ZmZmZmYsMHgxZmZmZmZmZiwweDFmZmZmZmZmLDB4MWZmZmZmZmYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4
LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9zaGE1MTIteDg2XzY0LlMgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQv
Y3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLXg4Nl82NC5TCmluZGV4IDNjNDcxOTlmYTUwY2ZiYzQ0
MmJiNTQwMjU5NjFjZWIwYzdhNTMwOTMuLjUwOWUxNDRlZDhkNWI3MDMzZTZjOWIyZWFlY2M2NWYx
ZjU1MDQ4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9zaGE1
MTIteDg2XzY0LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTUxMi14
ODZfNjQuUwpAQCAtMjUsOCArMjUsNiBAQCBzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcjoKIAltb3Zs
CTAoJXIxMSksJXI5ZAogCW1vdmwJNCglcjExKSwlcjEwZAogCW1vdmwJOCglcjExKSwlcjExZAot
CXRlc3RsCSQyMDQ4LCVyMTBkCi0Jam56CS5MeG9wX3Nob3J0Y3V0CiAJYW5kbAkkMTA3Mzc0MTgy
NCwlcjlkCiAJYW5kbAkkMjY4NDM1OTY4LCVyMTBkCiAJb3JsCSVyOWQsJXIxMGQKQEAgLTE4MjUs
MTEwNyArMTgyMyw2IEBAIEs1MTI6CiAucXVhZAkweDAwMDEwMjAzMDQwNTA2MDcsMHgwODA5MGEw
YjBjMGQwZTBmCiAucXVhZAkweDAwMDEwMjAzMDQwNTA2MDcsMHgwODA5MGEwYjBjMGQwZTBmCiAu
Ynl0ZQk4Myw3Miw2NSw1Myw0OSw1MCwzMiw5OCwxMDgsMTExLDk5LDEwNywzMiwxMTYsMTE0LDk3
LDExMCwxMTUsMTAyLDExMSwxMTQsMTA5LDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NCw5NSw1
NCw1Miw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAs
OTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEs
MTE0LDEwMyw2MiwwCi0udHlwZQlzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl94b3AsQGZ1bmN0aW9u
Ci0uYWxpZ24JNjQKLXNoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcDoKLS5jZmlfc3RhcnRwcm9j
CQotLkx4b3Bfc2hvcnRjdXQ6Ci0JbW92cQklcnNwLCVyYXgKLS5jZmlfZGVmX2NmYV9yZWdpc3Rl
cgklcmF4Ci0JcHVzaHEJJXJieAotLmNmaV9vZmZzZXQJJXJieCwtMTYKLQlwdXNocQklcmJwCi0u
Y2ZpX29mZnNldAklcmJwLC0yNAotCXB1c2hxCSVyMTIKLS5jZmlfb2Zmc2V0CSVyMTIsLTMyCi0J
cHVzaHEJJXIxMwotLmNmaV9vZmZzZXQJJXIxMywtNDAKLQlwdXNocQklcjE0Ci0uY2ZpX29mZnNl
dAklcjE0LC00OAotCXB1c2hxCSVyMTUKLS5jZmlfb2Zmc2V0CSVyMTUsLTU2Ci0Jc2hscQkkNCwl
cmR4Ci0Jc3VicQkkMTYwLCVyc3AKLQlsZWFxCSglcnNpLCVyZHgsOCksJXJkeAotCWFuZHEJJC02
NCwlcnNwCi0JbW92cQklcmRpLDEyOCswKCVyc3ApCi0JbW92cQklcnNpLDEyOCs4KCVyc3ApCi0J
bW92cQklcmR4LDEyOCsxNiglcnNwKQotCW1vdnEJJXJheCwxNTIoJXJzcCkKLS5jZmlfZXNjYXBl
CTB4MGYsMHgwNiwweDc3LDB4OTgsMHgwMSwweDA2LDB4MjMsMHgwOAotLkxwcm9sb2d1ZV94b3A6
Ci0KLQl2emVyb3VwcGVyCi0JbW92cQkwKCVyZGkpLCVyYXgKLQltb3ZxCTgoJXJkaSksJXJieAot
CW1vdnEJMTYoJXJkaSksJXJjeAotCW1vdnEJMjQoJXJkaSksJXJkeAotCW1vdnEJMzIoJXJkaSks
JXI4Ci0JbW92cQk0MCglcmRpKSwlcjkKLQltb3ZxCTQ4KCVyZGkpLCVyMTAKLQltb3ZxCTU2KCVy
ZGkpLCVyMTEKLQlqbXAJLkxsb29wX3hvcAotLmFsaWduCTE2Ci0uTGxvb3BfeG9wOgotCXZtb3Zk
cWEJSzUxMisxMjgwKCVyaXApLCV4bW0xMQotCXZtb3ZkcXUJMCglcnNpKSwleG1tMAotCWxlYXEJ
SzUxMisxMjgoJXJpcCksJXJicAotCXZtb3ZkcXUJMTYoJXJzaSksJXhtbTEKLQl2bW92ZHF1CTMy
KCVyc2kpLCV4bW0yCi0JdnBzaHVmYgkleG1tMTEsJXhtbTAsJXhtbTAKLQl2bW92ZHF1CTQ4KCVy
c2kpLCV4bW0zCi0JdnBzaHVmYgkleG1tMTEsJXhtbTEsJXhtbTEKLQl2bW92ZHF1CTY0KCVyc2kp
LCV4bW00Ci0JdnBzaHVmYgkleG1tMTEsJXhtbTIsJXhtbTIKLQl2bW92ZHF1CTgwKCVyc2kpLCV4
bW01Ci0JdnBzaHVmYgkleG1tMTEsJXhtbTMsJXhtbTMKLQl2bW92ZHF1CTk2KCVyc2kpLCV4bW02
Ci0JdnBzaHVmYgkleG1tMTEsJXhtbTQsJXhtbTQKLQl2bW92ZHF1CTExMiglcnNpKSwleG1tNwot
CXZwc2h1ZmIJJXhtbTExLCV4bW01LCV4bW01Ci0JdnBhZGRxCS0xMjgoJXJicCksJXhtbTAsJXht
bTgKLQl2cHNodWZiCSV4bW0xMSwleG1tNiwleG1tNgotCXZwYWRkcQktOTYoJXJicCksJXhtbTEs
JXhtbTkKLQl2cHNodWZiCSV4bW0xMSwleG1tNywleG1tNwotCXZwYWRkcQktNjQoJXJicCksJXht
bTIsJXhtbTEwCi0JdnBhZGRxCS0zMiglcmJwKSwleG1tMywleG1tMTEKLQl2bW92ZHFhCSV4bW04
LDAoJXJzcCkKLQl2cGFkZHEJMCglcmJwKSwleG1tNCwleG1tOAotCXZtb3ZkcWEJJXhtbTksMTYo
JXJzcCkKLQl2cGFkZHEJMzIoJXJicCksJXhtbTUsJXhtbTkKLQl2bW92ZHFhCSV4bW0xMCwzMigl
cnNwKQotCXZwYWRkcQk2NCglcmJwKSwleG1tNiwleG1tMTAKLQl2bW92ZHFhCSV4bW0xMSw0OCgl
cnNwKQotCXZwYWRkcQk5NiglcmJwKSwleG1tNywleG1tMTEKLQl2bW92ZHFhCSV4bW04LDY0KCVy
c3ApCi0JbW92cQklcmF4LCVyMTQKLQl2bW92ZHFhCSV4bW05LDgwKCVyc3ApCi0JbW92cQklcmJ4
LCVyZGkKLQl2bW92ZHFhCSV4bW0xMCw5NiglcnNwKQotCXhvcnEJJXJjeCwlcmRpCi0Jdm1vdmRx
YQkleG1tMTEsMTEyKCVyc3ApCi0JbW92cQklcjgsJXIxMwotCWptcAkuTHhvcF8wMF80NwotCi0u
YWxpZ24JMTYKLS5MeG9wXzAwXzQ3OgotCWFkZHEJJDI1NiwlcmJwCi0JdnBhbGlnbnIJJDgsJXht
bTAsJXhtbTEsJXhtbTgKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVyYXgKLQl2cGFsaWdu
cgkkOCwleG1tNCwleG1tNSwleG1tMTEKLQltb3ZxCSVyOSwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0u
Ynl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKLQl4b3JxCSVyOCwlcjEzCi0JeG9ycQklcjEwLCVy
MTIKLQl2cHNybHEJJDcsJXhtbTgsJXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyYXgsJXIx
NAotCXZwYWRkcQkleG1tMTEsJXhtbTAsJXhtbTAKLQlhbmRxCSVyOCwlcjEyCi0JeG9ycQklcjgs
JXIxMwotCWFkZHEJMCglcnNwKSwlcjExCi0JbW92cQklcmF4LCVyMTUKLS5ieXRlCTE0Myw3Miwx
MjAsMTk1LDIwOSw3Ci0JeG9ycQklcjEwLCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cHhvcgkleG1t
OSwleG1tOCwleG1tOAotCXhvcnEJJXJieCwlcjE1Ci0JYWRkcQklcjEyLCVyMTEKLQlyb3JxCSQx
NCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLS5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMjMsMwotCXhv
cnEJJXJheCwlcjE0Ci0JYWRkcQklcjEzLCVyMTEKLQl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgK
LQl4b3JxCSVyYngsJXJkaQotCXJvcnEJJDI4LCVyMTQKLQl2cHNybHEJJDYsJXhtbTcsJXhtbTEw
Ci0JYWRkcQklcjExLCVyZHgKLQlhZGRxCSVyZGksJXIxMQotCXZwYWRkcQkleG1tOCwleG1tMCwl
eG1tMAotCW1vdnEJJXJkeCwlcjEzCi0JYWRkcQklcjExLCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAs
MTk1LDIwMyw0MgotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXIxMQotCXZweG9yCSV4bW0x
MCwleG1tMTEsJXhtbTExCi0JbW92cQklcjgsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXJk
eCwlcjEzCi0JeG9ycQklcjksJXIxMgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3Jx
CSQ0LCVyMTMKLQl4b3JxCSVyMTEsJXIxNAotCWFuZHEJJXJkeCwlcjEyCi0JeG9ycQklcmR4LCVy
MTMKLQl2cGFkZHEJJXhtbTExLCV4bW0wLCV4bW0wCi0JYWRkcQk4KCVyc3ApLCVyMTAKLQltb3Zx
CSVyMTEsJXJkaQotCXhvcnEJJXI5LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cGFkZHEJLTEyOCgl
cmJwKSwleG1tMCwleG1tMTAKLQl4b3JxCSVyYXgsJXJkaQotCWFkZHEJJXIxMiwlcjEwCi0Jcm9y
cQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjExLCVyMTQKLQlhZGRxCSVyMTMs
JXIxMAotCXhvcnEJJXJheCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXIxMCwlcmN4Ci0J
YWRkcQklcjE1LCVyMTAKLQltb3ZxCSVyY3gsJXIxMwotCWFkZHEJJXIxMCwlcjE0Ci0Jdm1vdmRx
YQkleG1tMTAsMCglcnNwKQotCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW04Ci0Jcm9ycQkk
MjMsJXIxMwotCW1vdnEJJXIxNCwlcjEwCi0JdnBhbGlnbnIJJDgsJXhtbTUsJXhtbTYsJXhtbTEx
Ci0JbW92cQklcmR4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIw
MCw1NgotCXhvcnEJJXJjeCwlcjEzCi0JeG9ycQklcjgsJXIxMgotCXZwc3JscQkkNywleG1tOCwl
eG1tOAotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXIxMCwlcjE0Ci0JdnBhZGRxCSV4bW0xMSwleG1t
MSwleG1tMQotCWFuZHEJJXJjeCwlcjEyCi0JeG9ycQklcmN4LCVyMTMKLQlhZGRxCTE2KCVyc3Ap
LCVyOQotCW1vdnEJJXIxMCwlcjE1Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNwotCXhvcnEJ
JXI4LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cHhvcgkleG1tOSwleG1tOCwleG1tOAotCXhvcnEJ
JXIxMSwlcjE1Ci0JYWRkcQklcjEyLCVyOQotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJk
aQotLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIxNiwzCi0JeG9ycQklcjEwLCVyMTQKLQlhZGRxCSVy
MTMsJXI5Ci0JdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04Ci0JeG9ycQklcjExLCVyZGkKLQlyb3Jx
CSQyOCwlcjE0Ci0JdnBzcmxxCSQ2LCV4bW0wLCV4bW0xMAotCWFkZHEJJXI5LCVyYngKLQlhZGRx
CSVyZGksJXI5Ci0JdnBhZGRxCSV4bW04LCV4bW0xLCV4bW0xCi0JbW92cQklcmJ4LCVyMTMKLQlh
ZGRxCSVyOSwlcjE0Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKLQlyb3JxCSQyMywlcjEz
Ci0JbW92cQklcjE0LCVyOQotCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCi0JbW92cQklcmN4
LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyYngsJXIxMwotCXhvcnEJJXJkeCwlcjEyCi0J
dnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXI5LCVyMTQK
LQlhbmRxCSVyYngsJXIxMgotCXhvcnEJJXJieCwlcjEzCi0JdnBhZGRxCSV4bW0xMSwleG1tMSwl
eG1tMQotCWFkZHEJMjQoJXJzcCksJXI4Ci0JbW92cQklcjksJXJkaQotCXhvcnEJJXJkeCwlcjEy
Ci0Jcm9ycQkkNiwlcjE0Ci0JdnBhZGRxCS05NiglcmJwKSwleG1tMSwleG1tMTAKLQl4b3JxCSVy
MTAsJXJkaQotCWFkZHEJJXIxMiwlcjgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUK
LQl4b3JxCSVyOSwlcjE0Ci0JYWRkcQklcjEzLCVyOAotCXhvcnEJJXIxMCwlcjE1Ci0Jcm9ycQkk
MjgsJXIxNAotCWFkZHEJJXI4LCVyYXgKLQlhZGRxCSVyMTUsJXI4Ci0JbW92cQklcmF4LCVyMTMK
LQlhZGRxCSVyOCwlcjE0Ci0Jdm1vdmRxYQkleG1tMTAsMTYoJXJzcCkKLQl2cGFsaWducgkkOCwl
eG1tMiwleG1tMywleG1tOAotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXI4Ci0JdnBhbGln
bnIJJDgsJXhtbTYsJXhtbTcsJXhtbTExCi0JbW92cQklcmJ4LCVyMTIKLQlyb3JxCSQ1LCVyMTQK
LS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcnEJJXJheCwlcjEzCi0JeG9ycQklcmN4
LCVyMTIKLQl2cHNybHEJJDcsJXhtbTgsJXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyOCwl
cjE0Ci0JdnBhZGRxCSV4bW0xMSwleG1tMiwleG1tMgotCWFuZHEJJXJheCwlcjEyCi0JeG9ycQkl
cmF4LCVyMTMKLQlhZGRxCTMyKCVyc3ApLCVyZHgKLQltb3ZxCSVyOCwlcjE1Ci0uYnl0ZQkxNDMs
NzIsMTIwLDE5NSwyMDksNwotCXhvcnEJJXJjeCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnB4b3IJ
JXhtbTksJXhtbTgsJXhtbTgKLQl4b3JxCSVyOSwlcjE1Ci0JYWRkcQklcjEyLCVyZHgKLQlyb3Jx
CSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLS5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMTcsMwot
CXhvcnEJJXI4LCVyMTQKLQlhZGRxCSVyMTMsJXJkeAotCXZweG9yCSV4bW0xMCwleG1tOCwleG1t
OAotCXhvcnEJJXI5LCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0JdnBzcmxxCSQ2LCV4bW0xLCV4bW0x
MAotCWFkZHEJJXJkeCwlcjExCi0JYWRkcQklcmRpLCVyZHgKLQl2cGFkZHEJJXhtbTgsJXhtbTIs
JXhtbTIKLQltb3ZxCSVyMTEsJXIxMwotCWFkZHEJJXJkeCwlcjE0Ci0uYnl0ZQkxNDMsNzIsMTIw
LDE5NSwyMDMsNDIKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVyZHgKLQl2cHhvcgkleG1t
MTAsJXhtbTExLCV4bW0xMQotCW1vdnEJJXJheCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQkl
cjExLCVyMTMKLQl4b3JxCSVyYngsJXIxMgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQly
b3JxCSQ0LCVyMTMKLQl4b3JxCSVyZHgsJXIxNAotCWFuZHEJJXIxMSwlcjEyCi0JeG9ycQklcjEx
LCVyMTMKLQl2cGFkZHEJJXhtbTExLCV4bW0yLCV4bW0yCi0JYWRkcQk0MCglcnNwKSwlcmN4Ci0J
bW92cQklcmR4LCVyZGkKLQl4b3JxCSVyYngsJXIxMgotCXJvcnEJJDYsJXIxNAotCXZwYWRkcQkt
NjQoJXJicCksJXhtbTIsJXhtbTEwCi0JeG9ycQklcjgsJXJkaQotCWFkZHEJJXIxMiwlcmN4Ci0J
cm9ycQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcmR4LCVyMTQKLQlhZGRxCSVy
MTMsJXJjeAotCXhvcnEJJXI4LCVyMTUKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmN4LCVyMTAK
LQlhZGRxCSVyMTUsJXJjeAotCW1vdnEJJXIxMCwlcjEzCi0JYWRkcQklcmN4LCVyMTQKLQl2bW92
ZHFhCSV4bW0xMCwzMiglcnNwKQotCXZwYWxpZ25yCSQ4LCV4bW0zLCV4bW00LCV4bW04Ci0Jcm9y
cQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmN4Ci0JdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXht
bTExCi0JbW92cQklcjExLCVyMTIKLQlyb3JxCSQ1LCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1
LDIwMCw1NgotCXhvcnEJJXIxMCwlcjEzCi0JeG9ycQklcmF4LCVyMTIKLQl2cHNybHEJJDcsJXht
bTgsJXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyY3gsJXIxNAotCXZwYWRkcQkleG1tMTEs
JXhtbTMsJXhtbTMKLQlhbmRxCSVyMTAsJXIxMgotCXhvcnEJJXIxMCwlcjEzCi0JYWRkcQk0OCgl
cnNwKSwlcmJ4Ci0JbW92cQklcmN4LCVyMTUKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3Ci0J
eG9ycQklcmF4LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cHhvcgkleG1tOSwleG1tOCwleG1tOAot
CXhvcnEJJXJkeCwlcjE1Ci0JYWRkcQklcjEyLCVyYngKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQkl
cjE1LCVyZGkKLS5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMTgsMwotCXhvcnEJJXJjeCwlcjE0Ci0J
YWRkcQklcjEzLCVyYngKLQl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKLQl4b3JxCSVyZHgsJXJk
aQotCXJvcnEJJDI4LCVyMTQKLQl2cHNybHEJJDYsJXhtbTIsJXhtbTEwCi0JYWRkcQklcmJ4LCVy
OQotCWFkZHEJJXJkaSwlcmJ4Ci0JdnBhZGRxCSV4bW04LCV4bW0zLCV4bW0zCi0JbW92cQklcjks
JXIxMwotCWFkZHEJJXJieCwlcjE0Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKLQlyb3Jx
CSQyMywlcjEzCi0JbW92cQklcjE0LCVyYngKLQl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQot
CW1vdnEJJXIxMCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcjksJXIxMwotCXhvcnEJJXIx
MSwlcjEyCi0JdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQotCXJvcnEJJDQsJXIxMwotCXhvcnEJ
JXJieCwlcjE0Ci0JYW5kcQklcjksJXIxMgotCXhvcnEJJXI5LCVyMTMKLQl2cGFkZHEJJXhtbTEx
LCV4bW0zLCV4bW0zCi0JYWRkcQk1NiglcnNwKSwlcmF4Ci0JbW92cQklcmJ4LCVyZGkKLQl4b3Jx
CSVyMTEsJXIxMgotCXJvcnEJJDYsJXIxNAotCXZwYWRkcQktMzIoJXJicCksJXhtbTMsJXhtbTEw
Ci0JeG9ycQklcmN4LCVyZGkKLQlhZGRxCSVyMTIsJXJheAotCXJvcnEJJDE0LCVyMTMKLQlhbmRx
CSVyZGksJXIxNQotCXhvcnEJJXJieCwlcjE0Ci0JYWRkcQklcjEzLCVyYXgKLQl4b3JxCSVyY3gs
JXIxNQotCXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyYXgsJXI4Ci0JYWRkcQklcjE1LCVyYXgKLQlt
b3ZxCSVyOCwlcjEzCi0JYWRkcQklcmF4LCVyMTQKLQl2bW92ZHFhCSV4bW0xMCw0OCglcnNwKQot
CXZwYWxpZ25yCSQ4LCV4bW00LCV4bW01LCV4bW04Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIx
NCwlcmF4Ci0JdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTExCi0JbW92cQklcjksJXIxMgot
CXJvcnEJJDUsJXIxNAotLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2Ci0JeG9ycQklcjgsJXIx
MwotCXhvcnEJJXIxMCwlcjEyCi0JdnBzcmxxCSQ3LCV4bW04LCV4bW04Ci0Jcm9ycQkkNCwlcjEz
Ci0JeG9ycQklcmF4LCVyMTQKLQl2cGFkZHEJJXhtbTExLCV4bW00LCV4bW00Ci0JYW5kcQklcjgs
JXIxMgotCXhvcnEJJXI4LCVyMTMKLQlhZGRxCTY0KCVyc3ApLCVyMTEKLQltb3ZxCSVyYXgsJXIx
NQotLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKLQl4b3JxCSVyMTAsJXIxMgotCXJvcnEJJDYs
JXIxNAotCXZweG9yCSV4bW05LCV4bW04LCV4bW04Ci0JeG9ycQklcmJ4LCVyMTUKLQlhZGRxCSVy
MTIsJXIxMQotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQotLmJ5dGUJMTQzLDEwNCwx
MjAsMTk1LDIxOSwzCi0JeG9ycQklcmF4LCVyMTQKLQlhZGRxCSVyMTMsJXIxMQotCXZweG9yCSV4
bW0xMCwleG1tOCwleG1tOAotCXhvcnEJJXJieCwlcmRpCi0Jcm9ycQkkMjgsJXIxNAotCXZwc3Js
cQkkNiwleG1tMywleG1tMTAKLQlhZGRxCSVyMTEsJXJkeAotCWFkZHEJJXJkaSwlcjExCi0JdnBh
ZGRxCSV4bW04LCV4bW00LCV4bW00Ci0JbW92cQklcmR4LCVyMTMKLQlhZGRxCSVyMTEsJXIxNAot
LmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCi0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwl
cjExCi0JdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKLQltb3ZxCSVyOCwlcjEyCi0Jcm9ycQkk
NSwlcjE0Ci0JeG9ycQklcmR4LCVyMTMKLQl4b3JxCSVyOSwlcjEyCi0JdnB4b3IJJXhtbTksJXht
bTExLCV4bW0xMQotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXIxMSwlcjE0Ci0JYW5kcQklcmR4LCVy
MTIKLQl4b3JxCSVyZHgsJXIxMwotCXZwYWRkcQkleG1tMTEsJXhtbTQsJXhtbTQKLQlhZGRxCTcy
KCVyc3ApLCVyMTAKLQltb3ZxCSVyMTEsJXJkaQotCXhvcnEJJXI5LCVyMTIKLQlyb3JxCSQ2LCVy
MTQKLQl2cGFkZHEJMCglcmJwKSwleG1tNCwleG1tMTAKLQl4b3JxCSVyYXgsJXJkaQotCWFkZHEJ
JXIxMiwlcjEwCi0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjExLCVy
MTQKLQlhZGRxCSVyMTMsJXIxMAotCXhvcnEJJXJheCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFk
ZHEJJXIxMCwlcmN4Ci0JYWRkcQklcjE1LCVyMTAKLQltb3ZxCSVyY3gsJXIxMwotCWFkZHEJJXIx
MCwlcjE0Ci0Jdm1vdmRxYQkleG1tMTAsNjQoJXJzcCkKLQl2cGFsaWducgkkOCwleG1tNSwleG1t
NiwleG1tOAotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXIxMAotCXZwYWxpZ25yCSQ4LCV4
bW0xLCV4bW0yLCV4bW0xMQotCW1vdnEJJXJkeCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0uYnl0ZQkx
NDMsNzIsMTIwLDE5NSwyMDAsNTYKLQl4b3JxCSVyY3gsJXIxMwotCXhvcnEJJXI4LCVyMTIKLQl2
cHNybHEJJDcsJXhtbTgsJXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyMTAsJXIxNAotCXZw
YWRkcQkleG1tMTEsJXhtbTUsJXhtbTUKLQlhbmRxCSVyY3gsJXIxMgotCXhvcnEJJXJjeCwlcjEz
Ci0JYWRkcQk4MCglcnNwKSwlcjkKLQltb3ZxCSVyMTAsJXIxNQotLmJ5dGUJMTQzLDcyLDEyMCwx
OTUsMjA5LDcKLQl4b3JxCSVyOCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnB4b3IJJXhtbTksJXht
bTgsJXhtbTgKLQl4b3JxCSVyMTEsJXIxNQotCWFkZHEJJXIxMiwlcjkKLQlyb3JxCSQxNCwlcjEz
Ci0JYW5kcQklcjE1LCVyZGkKLS5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMjAsMwotCXhvcnEJJXIx
MCwlcjE0Ci0JYWRkcQklcjEzLCVyOQotCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAotCXhvcnEJ
JXIxMSwlcmRpCi0Jcm9ycQkkMjgsJXIxNAotCXZwc3JscQkkNiwleG1tNCwleG1tMTAKLQlhZGRx
CSVyOSwlcmJ4Ci0JYWRkcQklcmRpLCVyOQotCXZwYWRkcQkleG1tOCwleG1tNSwleG1tNQotCW1v
dnEJJXJieCwlcjEzCi0JYWRkcQklcjksJXIxNAotLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQy
Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcjkKLQl2cHhvcgkleG1tMTAsJXhtbTExLCV4
bW0xMQotCW1vdnEJJXJjeCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcmJ4LCVyMTMKLQl4
b3JxCSVyZHgsJXIxMgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3JxCSQ0LCVyMTMK
LQl4b3JxCSVyOSwlcjE0Ci0JYW5kcQklcmJ4LCVyMTIKLQl4b3JxCSVyYngsJXIxMwotCXZwYWRk
cQkleG1tMTEsJXhtbTUsJXhtbTUKLQlhZGRxCTg4KCVyc3ApLCVyOAotCW1vdnEJJXI5LCVyZGkK
LQl4b3JxCSVyZHgsJXIxMgotCXJvcnEJJDYsJXIxNAotCXZwYWRkcQkzMiglcmJwKSwleG1tNSwl
eG1tMTAKLQl4b3JxCSVyMTAsJXJkaQotCWFkZHEJJXIxMiwlcjgKLQlyb3JxCSQxNCwlcjEzCi0J
YW5kcQklcmRpLCVyMTUKLQl4b3JxCSVyOSwlcjE0Ci0JYWRkcQklcjEzLCVyOAotCXhvcnEJJXIx
MCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXI4LCVyYXgKLQlhZGRxCSVyMTUsJXI4Ci0J
bW92cQklcmF4LCVyMTMKLQlhZGRxCSVyOCwlcjE0Ci0Jdm1vdmRxYQkleG1tMTAsODAoJXJzcCkK
LQl2cGFsaWducgkkOCwleG1tNiwleG1tNywleG1tOAotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVy
MTQsJXI4Ci0JdnBhbGlnbnIJJDgsJXhtbTIsJXhtbTMsJXhtbTExCi0JbW92cQklcmJ4LCVyMTIK
LQlyb3JxCSQ1LCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcnEJJXJheCwl
cjEzCi0JeG9ycQklcmN4LCVyMTIKLQl2cHNybHEJJDcsJXhtbTgsJXhtbTgKLQlyb3JxCSQ0LCVy
MTMKLQl4b3JxCSVyOCwlcjE0Ci0JdnBhZGRxCSV4bW0xMSwleG1tNiwleG1tNgotCWFuZHEJJXJh
eCwlcjEyCi0JeG9ycQklcmF4LCVyMTMKLQlhZGRxCTk2KCVyc3ApLCVyZHgKLQltb3ZxCSVyOCwl
cjE1Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNwotCXhvcnEJJXJjeCwlcjEyCi0Jcm9ycQkk
NiwlcjE0Ci0JdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKLQl4b3JxCSVyOSwlcjE1Ci0JYWRkcQkl
cjEyLCVyZHgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLS5ieXRlCTE0MywxMDQs
MTIwLDE5NSwyMjEsMwotCXhvcnEJJXI4LCVyMTQKLQlhZGRxCSVyMTMsJXJkeAotCXZweG9yCSV4
bW0xMCwleG1tOCwleG1tOAotCXhvcnEJJXI5LCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0JdnBzcmxx
CSQ2LCV4bW01LCV4bW0xMAotCWFkZHEJJXJkeCwlcjExCi0JYWRkcQklcmRpLCVyZHgKLQl2cGFk
ZHEJJXhtbTgsJXhtbTYsJXhtbTYKLQltb3ZxCSVyMTEsJXIxMwotCWFkZHEJJXJkeCwlcjE0Ci0u
Ynl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVy
ZHgKLQl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQotCW1vdnEJJXJheCwlcjEyCi0Jcm9ycQkk
NSwlcjE0Ci0JeG9ycQklcjExLCVyMTMKLQl4b3JxCSVyYngsJXIxMgotCXZweG9yCSV4bW05LCV4
bW0xMSwleG1tMTEKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyZHgsJXIxNAotCWFuZHEJJXIxMSwl
cjEyCi0JeG9ycQklcjExLCVyMTMKLQl2cGFkZHEJJXhtbTExLCV4bW02LCV4bW02Ci0JYWRkcQkx
MDQoJXJzcCksJXJjeAotCW1vdnEJJXJkeCwlcmRpCi0JeG9ycQklcmJ4LCVyMTIKLQlyb3JxCSQ2
LCVyMTQKLQl2cGFkZHEJNjQoJXJicCksJXhtbTYsJXhtbTEwCi0JeG9ycQklcjgsJXJkaQotCWFk
ZHEJJXIxMiwlcmN4Ci0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcmR4
LCVyMTQKLQlhZGRxCSVyMTMsJXJjeAotCXhvcnEJJXI4LCVyMTUKLQlyb3JxCSQyOCwlcjE0Ci0J
YWRkcQklcmN4LCVyMTAKLQlhZGRxCSVyMTUsJXJjeAotCW1vdnEJJXIxMCwlcjEzCi0JYWRkcQkl
cmN4LCVyMTQKLQl2bW92ZHFhCSV4bW0xMCw5NiglcnNwKQotCXZwYWxpZ25yCSQ4LCV4bW03LCV4
bW0wLCV4bW04Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmN4Ci0JdnBhbGlnbnIJJDgs
JXhtbTMsJXhtbTQsJXhtbTExCi0JbW92cQklcjExLCVyMTIKLQlyb3JxCSQ1LCVyMTQKLS5ieXRl
CTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcnEJJXIxMCwlcjEzCi0JeG9ycQklcmF4LCVyMTIK
LQl2cHNybHEJJDcsJXhtbTgsJXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyY3gsJXIxNAot
CXZwYWRkcQkleG1tMTEsJXhtbTcsJXhtbTcKLQlhbmRxCSVyMTAsJXIxMgotCXhvcnEJJXIxMCwl
cjEzCi0JYWRkcQkxMTIoJXJzcCksJXJieAotCW1vdnEJJXJjeCwlcjE1Ci0uYnl0ZQkxNDMsNzIs
MTIwLDE5NSwyMDksNwotCXhvcnEJJXJheCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnB4b3IJJXht
bTksJXhtbTgsJXhtbTgKLQl4b3JxCSVyZHgsJXIxNQotCWFkZHEJJXIxMiwlcmJ4Ci0Jcm9ycQkk
MTQsJXIxMwotCWFuZHEJJXIxNSwlcmRpCi0uYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjIyLDMKLQl4
b3JxCSVyY3gsJXIxNAotCWFkZHEJJXIxMywlcmJ4Ci0JdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04
Ci0JeG9ycQklcmR4LCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0JdnBzcmxxCSQ2LCV4bW02LCV4bW0x
MAotCWFkZHEJJXJieCwlcjkKLQlhZGRxCSVyZGksJXJieAotCXZwYWRkcQkleG1tOCwleG1tNywl
eG1tNwotCW1vdnEJJXI5LCVyMTMKLQlhZGRxCSVyYngsJXIxNAotLmJ5dGUJMTQzLDcyLDEyMCwx
OTUsMjAzLDQyCi0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmJ4Ci0JdnB4b3IJJXhtbTEw
LCV4bW0xMSwleG1tMTEKLQltb3ZxCSVyMTAsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXI5
LCVyMTMKLQl4b3JxCSVyMTEsJXIxMgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3Jx
CSQ0LCVyMTMKLQl4b3JxCSVyYngsJXIxNAotCWFuZHEJJXI5LCVyMTIKLQl4b3JxCSVyOSwlcjEz
Ci0JdnBhZGRxCSV4bW0xMSwleG1tNywleG1tNwotCWFkZHEJMTIwKCVyc3ApLCVyYXgKLQltb3Zx
CSVyYngsJXJkaQotCXhvcnEJJXIxMSwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnBhZGRxCTk2KCVy
YnApLCV4bW03LCV4bW0xMAotCXhvcnEJJXJjeCwlcmRpCi0JYWRkcQklcjEyLCVyYXgKLQlyb3Jx
CSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUKLQl4b3JxCSVyYngsJXIxNAotCWFkZHEJJXIxMywl
cmF4Ci0JeG9ycQklcmN4LCVyMTUKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmF4LCVyOAotCWFk
ZHEJJXIxNSwlcmF4Ci0JbW92cQklcjgsJXIxMwotCWFkZHEJJXJheCwlcjE0Ci0Jdm1vdmRxYQkl
eG1tMTAsMTEyKCVyc3ApCi0JY21wYgkkMCwxMzUoJXJicCkKLQlqbmUJLkx4b3BfMDBfNDcKLQly
b3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVyYXgKLQltb3ZxCSVyOSwlcjEyCi0Jcm9ycQkkNSwl
cjE0Ci0JeG9ycQklcjgsJXIxMwotCXhvcnEJJXIxMCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9y
cQklcmF4LCVyMTQKLQlhbmRxCSVyOCwlcjEyCi0JeG9ycQklcjgsJXIxMwotCWFkZHEJMCglcnNw
KSwlcjExCi0JbW92cQklcmF4LCVyMTUKLQl4b3JxCSVyMTAsJXIxMgotCXJvcnEJJDYsJXIxNAot
CXhvcnEJJXJieCwlcjE1Ci0JYWRkcQklcjEyLCVyMTEKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQkl
cjE1LCVyZGkKLQl4b3JxCSVyYXgsJXIxNAotCWFkZHEJJXIxMywlcjExCi0JeG9ycQklcmJ4LCVy
ZGkKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcjExLCVyZHgKLQlhZGRxCSVyZGksJXIxMQotCW1v
dnEJJXJkeCwlcjEzCi0JYWRkcQklcjExLCVyMTQKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0
LCVyMTEKLQltb3ZxCSVyOCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcmR4LCVyMTMKLQl4
b3JxCSVyOSwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcjExLCVyMTQKLQlhbmRxCSVyZHgs
JXIxMgotCXhvcnEJJXJkeCwlcjEzCi0JYWRkcQk4KCVyc3ApLCVyMTAKLQltb3ZxCSVyMTEsJXJk
aQotCXhvcnEJJXI5LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl4b3JxCSVyYXgsJXJkaQotCWFkZHEJ
JXIxMiwlcjEwCi0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjExLCVy
MTQKLQlhZGRxCSVyMTMsJXIxMAotCXhvcnEJJXJheCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFk
ZHEJJXIxMCwlcmN4Ci0JYWRkcQklcjE1LCVyMTAKLQltb3ZxCSVyY3gsJXIxMwotCWFkZHEJJXIx
MCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcjEwCi0JbW92cQklcmR4LCVyMTIK
LQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyY3gsJXIxMwotCXhvcnEJJXI4LCVyMTIKLQlyb3JxCSQ0
LCVyMTMKLQl4b3JxCSVyMTAsJXIxNAotCWFuZHEJJXJjeCwlcjEyCi0JeG9ycQklcmN4LCVyMTMK
LQlhZGRxCTE2KCVyc3ApLCVyOQotCW1vdnEJJXIxMCwlcjE1Ci0JeG9ycQklcjgsJXIxMgotCXJv
cnEJJDYsJXIxNAotCXhvcnEJJXIxMSwlcjE1Ci0JYWRkcQklcjEyLCVyOQotCXJvcnEJJDE0LCVy
MTMKLQlhbmRxCSVyMTUsJXJkaQotCXhvcnEJJXIxMCwlcjE0Ci0JYWRkcQklcjEzLCVyOQotCXhv
cnEJJXIxMSwlcmRpCi0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXI5LCVyYngKLQlhZGRxCSVyZGks
JXI5Ci0JbW92cQklcmJ4LCVyMTMKLQlhZGRxCSVyOSwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1v
dnEJJXIxNCwlcjkKLQltb3ZxCSVyY3gsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXJieCwl
cjEzCi0JeG9ycQklcmR4LCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyOSwlcjE0Ci0JYW5k
cQklcmJ4LCVyMTIKLQl4b3JxCSVyYngsJXIxMwotCWFkZHEJMjQoJXJzcCksJXI4Ci0JbW92cQkl
cjksJXJkaQotCXhvcnEJJXJkeCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JeG9ycQklcjEwLCVyZGkK
LQlhZGRxCSVyMTIsJXI4Ci0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQkl
cjksJXIxNAotCWFkZHEJJXIxMywlcjgKLQl4b3JxCSVyMTAsJXIxNQotCXJvcnEJJDI4LCVyMTQK
LQlhZGRxCSVyOCwlcmF4Ci0JYWRkcQklcjE1LCVyOAotCW1vdnEJJXJheCwlcjEzCi0JYWRkcQkl
cjgsJXIxNAotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXI4Ci0JbW92cQklcmJ4LCVyMTIK
LQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyYXgsJXIxMwotCXhvcnEJJXJjeCwlcjEyCi0Jcm9ycQkk
NCwlcjEzCi0JeG9ycQklcjgsJXIxNAotCWFuZHEJJXJheCwlcjEyCi0JeG9ycQklcmF4LCVyMTMK
LQlhZGRxCTMyKCVyc3ApLCVyZHgKLQltb3ZxCSVyOCwlcjE1Ci0JeG9ycQklcmN4LCVyMTIKLQly
b3JxCSQ2LCVyMTQKLQl4b3JxCSVyOSwlcjE1Ci0JYWRkcQklcjEyLCVyZHgKLQlyb3JxCSQxNCwl
cjEzCi0JYW5kcQklcjE1LCVyZGkKLQl4b3JxCSVyOCwlcjE0Ci0JYWRkcQklcjEzLCVyZHgKLQl4
b3JxCSVyOSwlcmRpCi0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXJkeCwlcjExCi0JYWRkcQklcmRp
LCVyZHgKLQltb3ZxCSVyMTEsJXIxMwotCWFkZHEJJXJkeCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwot
CW1vdnEJJXIxNCwlcmR4Ci0JbW92cQklcmF4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVy
MTEsJXIxMwotCXhvcnEJJXJieCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcmR4LCVyMTQK
LQlhbmRxCSVyMTEsJXIxMgotCXhvcnEJJXIxMSwlcjEzCi0JYWRkcQk0MCglcnNwKSwlcmN4Ci0J
bW92cQklcmR4LCVyZGkKLQl4b3JxCSVyYngsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXI4
LCVyZGkKLQlhZGRxCSVyMTIsJXJjeAotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyZGksJXIxNQot
CXhvcnEJJXJkeCwlcjE0Ci0JYWRkcQklcjEzLCVyY3gKLQl4b3JxCSVyOCwlcjE1Ci0Jcm9ycQkk
MjgsJXIxNAotCWFkZHEJJXJjeCwlcjEwCi0JYWRkcQklcjE1LCVyY3gKLQltb3ZxCSVyMTAsJXIx
MwotCWFkZHEJJXJjeCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmN4Ci0JbW92
cQklcjExLCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyMTAsJXIxMwotCXhvcnEJJXJheCwl
cjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcmN4LCVyMTQKLQlhbmRxCSVyMTAsJXIxMgotCXhv
cnEJJXIxMCwlcjEzCi0JYWRkcQk0OCglcnNwKSwlcmJ4Ci0JbW92cQklcmN4LCVyMTUKLQl4b3Jx
CSVyYXgsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXJkeCwlcjE1Ci0JYWRkcQklcjEyLCVy
YngKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLQl4b3JxCSVyY3gsJXIxNAotCWFk
ZHEJJXIxMywlcmJ4Ci0JeG9ycQklcmR4LCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmJ4
LCVyOQotCWFkZHEJJXJkaSwlcmJ4Ci0JbW92cQklcjksJXIxMwotCWFkZHEJJXJieCwlcjE0Ci0J
cm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmJ4Ci0JbW92cQklcjEwLCVyMTIKLQlyb3JxCSQ1
LCVyMTQKLQl4b3JxCSVyOSwlcjEzCi0JeG9ycQklcjExLCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4
b3JxCSVyYngsJXIxNAotCWFuZHEJJXI5LCVyMTIKLQl4b3JxCSVyOSwlcjEzCi0JYWRkcQk1Nigl
cnNwKSwlcmF4Ci0JbW92cQklcmJ4LCVyZGkKLQl4b3JxCSVyMTEsJXIxMgotCXJvcnEJJDYsJXIx
NAotCXhvcnEJJXJjeCwlcmRpCi0JYWRkcQklcjEyLCVyYXgKLQlyb3JxCSQxNCwlcjEzCi0JYW5k
cQklcmRpLCVyMTUKLQl4b3JxCSVyYngsJXIxNAotCWFkZHEJJXIxMywlcmF4Ci0JeG9ycQklcmN4
LCVyMTUKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmF4LCVyOAotCWFkZHEJJXIxNSwlcmF4Ci0J
bW92cQklcjgsJXIxMwotCWFkZHEJJXJheCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIx
NCwlcmF4Ci0JbW92cQklcjksJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXI4LCVyMTMKLQl4
b3JxCSVyMTAsJXIxMgotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXJheCwlcjE0Ci0JYW5kcQklcjgs
JXIxMgotCXhvcnEJJXI4LCVyMTMKLQlhZGRxCTY0KCVyc3ApLCVyMTEKLQltb3ZxCSVyYXgsJXIx
NQotCXhvcnEJJXIxMCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JeG9ycQklcmJ4LCVyMTUKLQlhZGRx
CSVyMTIsJXIxMQotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQotCXhvcnEJJXJheCwl
cjE0Ci0JYWRkcQklcjEzLCVyMTEKLQl4b3JxCSVyYngsJXJkaQotCXJvcnEJJDI4LCVyMTQKLQlh
ZGRxCSVyMTEsJXJkeAotCWFkZHEJJXJkaSwlcjExCi0JbW92cQklcmR4LCVyMTMKLQlhZGRxCSVy
MTEsJXIxNAotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXIxMQotCW1vdnEJJXI4LCVyMTIK
LQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyZHgsJXIxMwotCXhvcnEJJXI5LCVyMTIKLQlyb3JxCSQ0
LCVyMTMKLQl4b3JxCSVyMTEsJXIxNAotCWFuZHEJJXJkeCwlcjEyCi0JeG9ycQklcmR4LCVyMTMK
LQlhZGRxCTcyKCVyc3ApLCVyMTAKLQltb3ZxCSVyMTEsJXJkaQotCXhvcnEJJXI5LCVyMTIKLQly
b3JxCSQ2LCVyMTQKLQl4b3JxCSVyYXgsJXJkaQotCWFkZHEJJXIxMiwlcjEwCi0Jcm9ycQkkMTQs
JXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjExLCVyMTQKLQlhZGRxCSVyMTMsJXIxMAot
CXhvcnEJJXJheCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXIxMCwlcmN4Ci0JYWRkcQkl
cjE1LCVyMTAKLQltb3ZxCSVyY3gsJXIxMwotCWFkZHEJJXIxMCwlcjE0Ci0Jcm9ycQkkMjMsJXIx
MwotCW1vdnEJJXIxNCwlcjEwCi0JbW92cQklcmR4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3Jx
CSVyY3gsJXIxMwotCXhvcnEJJXI4LCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyMTAsJXIx
NAotCWFuZHEJJXJjeCwlcjEyCi0JeG9ycQklcmN4LCVyMTMKLQlhZGRxCTgwKCVyc3ApLCVyOQot
CW1vdnEJJXIxMCwlcjE1Ci0JeG9ycQklcjgsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXIx
MSwlcjE1Ci0JYWRkcQklcjEyLCVyOQotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQot
CXhvcnEJJXIxMCwlcjE0Ci0JYWRkcQklcjEzLCVyOQotCXhvcnEJJXIxMSwlcmRpCi0Jcm9ycQkk
MjgsJXIxNAotCWFkZHEJJXI5LCVyYngKLQlhZGRxCSVyZGksJXI5Ci0JbW92cQklcmJ4LCVyMTMK
LQlhZGRxCSVyOSwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcjkKLQltb3ZxCSVy
Y3gsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXJieCwlcjEzCi0JeG9ycQklcmR4LCVyMTIK
LQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyOSwlcjE0Ci0JYW5kcQklcmJ4LCVyMTIKLQl4b3JxCSVy
YngsJXIxMwotCWFkZHEJODgoJXJzcCksJXI4Ci0JbW92cQklcjksJXJkaQotCXhvcnEJJXJkeCwl
cjEyCi0Jcm9ycQkkNiwlcjE0Ci0JeG9ycQklcjEwLCVyZGkKLQlhZGRxCSVyMTIsJXI4Ci0Jcm9y
cQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjksJXIxNAotCWFkZHEJJXIxMywl
cjgKLQl4b3JxCSVyMTAsJXIxNQotCXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyOCwlcmF4Ci0JYWRk
cQklcjE1LCVyOAotCW1vdnEJJXJheCwlcjEzCi0JYWRkcQklcjgsJXIxNAotCXJvcnEJJDIzLCVy
MTMKLQltb3ZxCSVyMTQsJXI4Ci0JbW92cQklcmJ4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3Jx
CSVyYXgsJXIxMwotCXhvcnEJJXJjeCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcjgsJXIx
NAotCWFuZHEJJXJheCwlcjEyCi0JeG9ycQklcmF4LCVyMTMKLQlhZGRxCTk2KCVyc3ApLCVyZHgK
LQltb3ZxCSVyOCwlcjE1Ci0JeG9ycQklcmN4LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl4b3JxCSVy
OSwlcjE1Ci0JYWRkcQklcjEyLCVyZHgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkK
LQl4b3JxCSVyOCwlcjE0Ci0JYWRkcQklcjEzLCVyZHgKLQl4b3JxCSVyOSwlcmRpCi0Jcm9ycQkk
MjgsJXIxNAotCWFkZHEJJXJkeCwlcjExCi0JYWRkcQklcmRpLCVyZHgKLQltb3ZxCSVyMTEsJXIx
MwotCWFkZHEJJXJkeCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmR4Ci0JbW92
cQklcmF4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyMTEsJXIxMwotCXhvcnEJJXJieCwl
cjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcmR4LCVyMTQKLQlhbmRxCSVyMTEsJXIxMgotCXhv
cnEJJXIxMSwlcjEzCi0JYWRkcQkxMDQoJXJzcCksJXJjeAotCW1vdnEJJXJkeCwlcmRpCi0JeG9y
cQklcmJ4LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl4b3JxCSVyOCwlcmRpCi0JYWRkcQklcjEyLCVy
Y3gKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUKLQl4b3JxCSVyZHgsJXIxNAotCWFk
ZHEJJXIxMywlcmN4Ci0JeG9ycQklcjgsJXIxNQotCXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyY3gs
JXIxMAotCWFkZHEJJXIxNSwlcmN4Ci0JbW92cQklcjEwLCVyMTMKLQlhZGRxCSVyY3gsJXIxNAot
CXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXJjeAotCW1vdnEJJXIxMSwlcjEyCi0Jcm9ycQkk
NSwlcjE0Ci0JeG9ycQklcjEwLCVyMTMKLQl4b3JxCSVyYXgsJXIxMgotCXJvcnEJJDQsJXIxMwot
CXhvcnEJJXJjeCwlcjE0Ci0JYW5kcQklcjEwLCVyMTIKLQl4b3JxCSVyMTAsJXIxMwotCWFkZHEJ
MTEyKCVyc3ApLCVyYngKLQltb3ZxCSVyY3gsJXIxNQotCXhvcnEJJXJheCwlcjEyCi0Jcm9ycQkk
NiwlcjE0Ci0JeG9ycQklcmR4LCVyMTUKLQlhZGRxCSVyMTIsJXJieAotCXJvcnEJJDE0LCVyMTMK
LQlhbmRxCSVyMTUsJXJkaQotCXhvcnEJJXJjeCwlcjE0Ci0JYWRkcQklcjEzLCVyYngKLQl4b3Jx
CSVyZHgsJXJkaQotCXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyYngsJXI5Ci0JYWRkcQklcmRpLCVy
YngKLQltb3ZxCSVyOSwlcjEzCi0JYWRkcQklcmJ4LCVyMTQKLQlyb3JxCSQyMywlcjEzCi0JbW92
cQklcjE0LCVyYngKLQltb3ZxCSVyMTAsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXI5LCVy
MTMKLQl4b3JxCSVyMTEsJXIxMgotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXJieCwlcjE0Ci0JYW5k
cQklcjksJXIxMgotCXhvcnEJJXI5LCVyMTMKLQlhZGRxCTEyMCglcnNwKSwlcmF4Ci0JbW92cQkl
cmJ4LCVyZGkKLQl4b3JxCSVyMTEsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXJjeCwlcmRp
Ci0JYWRkcQklcjEyLCVyYXgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUKLQl4b3Jx
CSVyYngsJXIxNAotCWFkZHEJJXIxMywlcmF4Ci0JeG9ycQklcmN4LCVyMTUKLQlyb3JxCSQyOCwl
cjE0Ci0JYWRkcQklcmF4LCVyOAotCWFkZHEJJXIxNSwlcmF4Ci0JbW92cQklcjgsJXIxMwotCWFk
ZHEJJXJheCwlcjE0Ci0JbW92cQkxMjgrMCglcnNwKSwlcmRpCi0JbW92cQklcjE0LCVyYXgKLQot
CWFkZHEJMCglcmRpKSwlcmF4Ci0JbGVhcQkxMjgoJXJzaSksJXJzaQotCWFkZHEJOCglcmRpKSwl
cmJ4Ci0JYWRkcQkxNiglcmRpKSwlcmN4Ci0JYWRkcQkyNCglcmRpKSwlcmR4Ci0JYWRkcQkzMigl
cmRpKSwlcjgKLQlhZGRxCTQwKCVyZGkpLCVyOQotCWFkZHEJNDgoJXJkaSksJXIxMAotCWFkZHEJ
NTYoJXJkaSksJXIxMQotCi0JY21wcQkxMjgrMTYoJXJzcCksJXJzaQotCi0JbW92cQklcmF4LDAo
JXJkaSkKLQltb3ZxCSVyYngsOCglcmRpKQotCW1vdnEJJXJjeCwxNiglcmRpKQotCW1vdnEJJXJk
eCwyNCglcmRpKQotCW1vdnEJJXI4LDMyKCVyZGkpCi0JbW92cQklcjksNDAoJXJkaSkKLQltb3Zx
CSVyMTAsNDgoJXJkaSkKLQltb3ZxCSVyMTEsNTYoJXJkaSkKLQlqYgkuTGxvb3BfeG9wCi0KLQlt
b3ZxCTE1MiglcnNwKSwlcnNpCi0uY2ZpX2RlZl9jZmEJJXJzaSw4Ci0Jdnplcm91cHBlcgotCW1v
dnEJLTQ4KCVyc2kpLCVyMTUKLS5jZmlfcmVzdG9yZQklcjE1Ci0JbW92cQktNDAoJXJzaSksJXIx
NAotLmNmaV9yZXN0b3JlCSVyMTQKLQltb3ZxCS0zMiglcnNpKSwlcjEzCi0uY2ZpX3Jlc3RvcmUJ
JXIxMwotCW1vdnEJLTI0KCVyc2kpLCVyMTIKLS5jZmlfcmVzdG9yZQklcjEyCi0JbW92cQktMTYo
JXJzaSksJXJicAotLmNmaV9yZXN0b3JlCSVyYnAKLQltb3ZxCS04KCVyc2kpLCVyYngKLS5jZmlf
cmVzdG9yZQklcmJ4Ci0JbGVhcQkoJXJzaSksJXJzcAotLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCSVy
c3AKLS5MZXBpbG9ndWVfeG9wOgotCS5ieXRlCTB4ZjMsMHhjMwotLmNmaV9lbmRwcm9jCQotLnNp
emUJc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfeG9wLC4tc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJf
eG9wCiAudHlwZQlzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdngsQGZ1bmN0aW9uCiAuYWxpZ24J
NjQKIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyX2F2eDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82
NC9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy14ODZfNjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8v
Zmlwc21vZHVsZS92cGFlcy14ODZfNjQuUwppbmRleCA0MWIxMTNhMzljMzQwMmExYjlhNjIzMjcz
YjgxNDQzZjM2Y2ViNTBmLi4wZmM5M2Y5YTI2NzAwMjUzMmQxMzE3YmI0MzZlYTgxMmI4YzEzZmRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMteDg2XzY0
LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Nl82NC5TCkBA
IC0zMSw2ICszMSw3IEBACiAudHlwZQlfdnBhZXNfZW5jcnlwdF9jb3JlLEBmdW5jdGlvbgogLmFs
aWduCTE2CiBfdnBhZXNfZW5jcnlwdF9jb3JlOgorLmNmaV9zdGFydHByb2MJCiAJbW92cQklcmR4
LCVyOQogCW1vdnEJJDE2LCVyMTEKIAltb3ZsCTI0MCglcmR4KSwlZWF4CkBAIC0xMTEsNiArMTEy
LDcgQEAgX3ZwYWVzX2VuY3J5cHRfY29yZToKIAlweG9yCSV4bW00LCV4bW0wCiAuYnl0ZQkxMDIs
MTUsNTYsMCwxOTMKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCV92cGFl
c19lbmNyeXB0X2NvcmUsLi1fdnBhZXNfZW5jcnlwdF9jb3JlCiAKIApAQCAtMTE4LDkgKzEyMCwx
ODUgQEAgX3ZwYWVzX2VuY3J5cHRfY29yZToKIAogCiAKKworCisKKworCisKKworCisKKworCisK
KworCisKKworCisKKworCisKKworCisKKy50eXBlCV92cGFlc19lbmNyeXB0X2NvcmVfMngsQGZ1
bmN0aW9uCisuYWxpZ24JMTYKK192cGFlc19lbmNyeXB0X2NvcmVfMng6CisuY2ZpX3N0YXJ0cHJv
YwkKKwltb3ZxCSVyZHgsJXI5CisJbW92cQkkMTYsJXIxMQorCW1vdmwJMjQwKCVyZHgpLCVlYXgK
Kwltb3ZkcWEJJXhtbTksJXhtbTEKKwltb3ZkcWEJJXhtbTksJXhtbTcKKwltb3ZkcWEJLkxrX2lw
dCglcmlwKSwleG1tMgorCW1vdmRxYQkleG1tMiwleG1tOAorCXBhbmRuCSV4bW0wLCV4bW0xCisJ
cGFuZG4JJXhtbTYsJXhtbTcKKwltb3ZkcXUJKCVyOSksJXhtbTUKKworCXBzcmxkCSQ0LCV4bW0x
CisJcHNybGQJJDQsJXhtbTcKKwlwYW5kCSV4bW05LCV4bW0wCisJcGFuZAkleG1tOSwleG1tNgor
LmJ5dGUJMTAyLDE1LDU2LDAsMjA4CisuYnl0ZQkxMDIsNjgsMTUsNTYsMCwxOTgKKwltb3ZkcWEJ
LkxrX2lwdCsxNiglcmlwKSwleG1tMAorCW1vdmRxYQkleG1tMCwleG1tNgorLmJ5dGUJMTAyLDE1
LDU2LDAsMTkzCisuYnl0ZQkxMDIsMTUsNTYsMCwyNDcKKwlweG9yCSV4bW01LCV4bW0yCisJcHhv
cgkleG1tNSwleG1tOAorCWFkZHEJJDE2LCVyOQorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4
bW04LCV4bW02CisJbGVhcQkuTGtfbWNfYmFja3dhcmQoJXJpcCksJXIxMAorCWptcAkuTGVuYzJ4
X2VudHJ5CisKKy5hbGlnbgkxNgorLkxlbmMyeF9sb29wOgorCisJbW92ZHFhCS5Ma19zYjEoJXJp
cCksJXhtbTQKKwltb3ZkcWEJLkxrX3NiMSsxNiglcmlwKSwleG1tMAorCW1vdmRxYQkleG1tNCwl
eG1tMTIKKwltb3ZkcWEJJXhtbTAsJXhtbTYKKy5ieXRlCTEwMiwxNSw1NiwwLDIyNgorLmJ5dGUJ
MTAyLDY5LDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIsMTUsNTYsMCwxOTUKKy5ieXRlCTEwMiw2NSwx
NSw1NiwwLDI0MworCXB4b3IJJXhtbTUsJXhtbTQKKwlweG9yCSV4bW01LCV4bW0xMgorCW1vdmRx
YQkuTGtfc2IyKCVyaXApLCV4bW01CisJbW92ZHFhCSV4bW01LCV4bW0xMworCXB4b3IJJXhtbTQs
JXhtbTAKKwlweG9yCSV4bW0xMiwleG1tNgorCW1vdmRxYQktNjQoJXIxMSwlcjEwLDEpLCV4bW0x
CisKKy5ieXRlCTEwMiwxNSw1NiwwLDIzNAorLmJ5dGUJMTAyLDY5LDE1LDU2LDAsMjMyCisJbW92
ZHFhCSglcjExLCVyMTAsMSksJXhtbTQKKworCW1vdmRxYQkuTGtfc2IyKzE2KCVyaXApLCV4bW0y
CisJbW92ZHFhCSV4bW0yLCV4bW04CisuYnl0ZQkxMDIsMTUsNTYsMCwyMTEKKy5ieXRlCTEwMiw2
OSwxNSw1NiwwLDE5NQorCW1vdmRxYQkleG1tMCwleG1tMworCW1vdmRxYQkleG1tNiwleG1tMTEK
KwlweG9yCSV4bW01LCV4bW0yCisJcHhvcgkleG1tMTMsJXhtbTgKKy5ieXRlCTEwMiwxNSw1Niww
LDE5MworLmJ5dGUJMTAyLDE1LDU2LDAsMjQxCisJYWRkcQkkMTYsJXI5CisJcHhvcgkleG1tMiwl
eG1tMAorCXB4b3IJJXhtbTgsJXhtbTYKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMAorLmJ5dGUJMTAy
LDY4LDE1LDU2LDAsMjIwCisJYWRkcQkkMTYsJXIxMQorCXB4b3IJJXhtbTAsJXhtbTMKKwlweG9y
CSV4bW02LCV4bW0xMQorLmJ5dGUJMTAyLDE1LDU2LDAsMTkzCisuYnl0ZQkxMDIsMTUsNTYsMCwy
NDEKKwlhbmRxCSQweDMwLCVyMTEKKwlzdWJxCSQxLCVyYXgKKwlweG9yCSV4bW0zLCV4bW0wCisJ
cHhvcgkleG1tMTEsJXhtbTYKKworLkxlbmMyeF9lbnRyeToKKworCW1vdmRxYQkleG1tOSwleG1t
MQorCW1vdmRxYQkleG1tOSwleG1tNworCW1vdmRxYQkuTGtfaW52KzE2KCVyaXApLCV4bW01CisJ
bW92ZHFhCSV4bW01LCV4bW0xMworCXBhbmRuCSV4bW0wLCV4bW0xCisJcGFuZG4JJXhtbTYsJXht
bTcKKwlwc3JsZAkkNCwleG1tMQorCXBzcmxkCSQ0LCV4bW03CisJcGFuZAkleG1tOSwleG1tMAor
CXBhbmQJJXhtbTksJXhtbTYKKy5ieXRlCTEwMiwxNSw1NiwwLDIzMgorLmJ5dGUJMTAyLDY4LDE1
LDU2LDAsMjM4CisJbW92ZHFhCSV4bW0xMCwleG1tMworCW1vdmRxYQkleG1tMTAsJXhtbTExCisJ
cHhvcgkleG1tMSwleG1tMAorCXB4b3IJJXhtbTcsJXhtbTYKKy5ieXRlCTEwMiwxNSw1NiwwLDIx
NworLmJ5dGUJMTAyLDY4LDE1LDU2LDAsMjIzCisJbW92ZHFhCSV4bW0xMCwleG1tNAorCW1vdmRx
YQkleG1tMTAsJXhtbTEyCisJcHhvcgkleG1tNSwleG1tMworCXB4b3IJJXhtbTEzLCV4bW0xMQor
LmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIsNjgsMTUsNTYsMCwyMzAKKwltb3ZkcWEJ
JXhtbTEwLCV4bW0yCisJbW92ZHFhCSV4bW0xMCwleG1tOAorCXB4b3IJJXhtbTUsJXhtbTQKKwlw
eG9yCSV4bW0xMywleG1tMTIKKy5ieXRlCTEwMiwxNSw1NiwwLDIxMQorLmJ5dGUJMTAyLDY5LDE1
LDU2LDAsMTk1CisJbW92ZHFhCSV4bW0xMCwleG1tMworCW1vdmRxYQkleG1tMTAsJXhtbTExCisJ
cHhvcgkleG1tMCwleG1tMgorCXB4b3IJJXhtbTYsJXhtbTgKKy5ieXRlCTEwMiwxNSw1NiwwLDIy
MAorLmJ5dGUJMTAyLDY5LDE1LDU2LDAsMjIwCisJbW92ZHF1CSglcjkpLCV4bW01CisKKwlweG9y
CSV4bW0xLCV4bW0zCisJcHhvcgkleG1tNywleG1tMTEKKwlqbnoJLkxlbmMyeF9sb29wCisKKwor
CW1vdmRxYQktOTYoJXIxMCksJXhtbTQKKwltb3ZkcWEJLTgwKCVyMTApLCV4bW0wCisJbW92ZHFh
CSV4bW00LCV4bW0xMgorCW1vdmRxYQkleG1tMCwleG1tNgorLmJ5dGUJMTAyLDE1LDU2LDAsMjI2
CisuYnl0ZQkxMDIsNjksMTUsNTYsMCwyMjQKKwlweG9yCSV4bW01LCV4bW00CisJcHhvcgkleG1t
NSwleG1tMTIKKy5ieXRlCTEwMiwxNSw1NiwwLDE5NQorLmJ5dGUJMTAyLDY1LDE1LDU2LDAsMjQz
CisJbW92ZHFhCTY0KCVyMTEsJXIxMCwxKSwleG1tMQorCisJcHhvcgkleG1tNCwleG1tMAorCXB4
b3IJJXhtbTEyLCV4bW02CisuYnl0ZQkxMDIsMTUsNTYsMCwxOTMKKy5ieXRlCTEwMiwxNSw1Niww
LDI0MQorCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9jCQorLnNpemUJX3ZwYWVzX2VuY3J5
cHRfY29yZV8yeCwuLV92cGFlc19lbmNyeXB0X2NvcmVfMngKKworCisKKworCisKIC50eXBlCV92
cGFlc19kZWNyeXB0X2NvcmUsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIF92cGFlc19kZWNyeXB0X2Nv
cmU6CisuY2ZpX3N0YXJ0cHJvYwkKIAltb3ZxCSVyZHgsJXI5CiAJbW92bAkyNDAoJXJkeCksJWVh
eAogCW1vdmRxYQkleG1tOSwleG1tMQpAQCAtMjE3LDYgKzM5NSw3IEBAIF92cGFlc19kZWNyeXB0
X2NvcmU6CiAJcHhvcgkleG1tNCwleG1tMAogLmJ5dGUJMTAyLDE1LDU2LDAsMTk0CiAJLmJ5dGUJ
MHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfdnBhZXNfZGVjcnlwdF9jb3JlLC4tX3Zw
YWVzX2RlY3J5cHRfY29yZQogCiAKQEAgLTIyNyw2ICs0MDYsNyBAQCBfdnBhZXNfZGVjcnlwdF9j
b3JlOgogLnR5cGUJX3ZwYWVzX3NjaGVkdWxlX2NvcmUsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIF92
cGFlc19zY2hlZHVsZV9jb3JlOgorLmNmaV9zdGFydHByb2MJCiAKIAogCkBAIC0zOTMsNiArNTcz
LDcgQEAgX3ZwYWVzX3NjaGVkdWxlX2NvcmU6CiAJcHhvcgkleG1tNiwleG1tNgogCXB4b3IJJXht
bTcsJXhtbTcKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCV92cGFlc19z
Y2hlZHVsZV9jb3JlLC4tX3ZwYWVzX3NjaGVkdWxlX2NvcmUKIAogCkBAIC00MTIsNiArNTkzLDcg
QEAgX3ZwYWVzX3NjaGVkdWxlX2NvcmU6CiAudHlwZQlfdnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFy
LEBmdW5jdGlvbgogLmFsaWduCTE2CiBfdnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyOgorLmNmaV9z
dGFydHByb2MJCiAJcHNodWZkCSQweDgwLCV4bW02LCV4bW0xCiAJcHNodWZkCSQweEZFLCV4bW03
LCV4bW0wCiAJcHhvcgkleG1tMSwleG1tNgpAQCAtNDIwLDYgKzYwMiw3IEBAIF92cGFlc19zY2hl
ZHVsZV8xOTJfc21lYXI6CiAJbW92ZHFhCSV4bW02LCV4bW0wCiAJbW92aGxwcwkleG1tMSwleG1t
NgogCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9jCQogLnNpemUJX3ZwYWVzX3NjaGVkdWxl
XzE5Ml9zbWVhciwuLV92cGFlc19zY2hlZHVsZV8xOTJfc21lYXIKIAogCkBAIC00NDMsNiArNjI2
LDcgQEAgX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVhcjoKIC50eXBlCV92cGFlc19zY2hlZHVsZV9y
b3VuZCxAZnVuY3Rpb24KIC5hbGlnbgkxNgogX3ZwYWVzX3NjaGVkdWxlX3JvdW5kOgorLmNmaV9z
dGFydHByb2MJCiAKIAlweG9yCSV4bW0xLCV4bW0xCiAuYnl0ZQkxMDIsNjUsMTUsNTgsMTUsMjAw
LDE1CkBAIC00OTYsNiArNjgwLDcgQEAgX3ZwYWVzX3NjaGVkdWxlX2xvd19yb3VuZDoKIAlweG9y
CSV4bW03LCV4bW0wCiAJbW92ZHFhCSV4bW0wLCV4bW03CiAJLmJ5dGUJMHhmMywweGMzCisuY2Zp
X2VuZHByb2MJCiAuc2l6ZQlfdnBhZXNfc2NoZWR1bGVfcm91bmQsLi1fdnBhZXNfc2NoZWR1bGVf
cm91bmQKIAogCkBAIC01MTAsNiArNjk1LDcgQEAgX3ZwYWVzX3NjaGVkdWxlX2xvd19yb3VuZDoK
IC50eXBlCV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0sQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIF92
cGFlc19zY2hlZHVsZV90cmFuc2Zvcm06CisuY2ZpX3N0YXJ0cHJvYwkKIAltb3ZkcWEJJXhtbTks
JXhtbTEKIAlwYW5kbgkleG1tMCwleG1tMQogCXBzcmxkCSQ0LCV4bW0xCkBAIC01MjAsNiArNzA2
LDcgQEAgX3ZwYWVzX3NjaGVkdWxlX3RyYW5zZm9ybToKIC5ieXRlCTEwMiwxNSw1NiwwLDE5Mwog
CXB4b3IJJXhtbTIsJXhtbTAKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXpl
CV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0sLi1fdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3JtCiAK
IApAQCAtNTQ4LDYgKzczNSw3IEBAIF92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm06CiAudHlwZQlf
dnBhZXNfc2NoZWR1bGVfbWFuZ2xlLEBmdW5jdGlvbgogLmFsaWduCTE2CiBfdnBhZXNfc2NoZWR1
bGVfbWFuZ2xlOgorLmNmaV9zdGFydHByb2MJCiAJbW92ZHFhCSV4bW0wLCV4bW00CiAJbW92ZHFh
CS5Ma19tY19mb3J3YXJkKCVyaXApLCV4bW01CiAJdGVzdHEJJXJjeCwlcmN4CkBAIC02MTIsNiAr
ODAwLDcgQEAgX3ZwYWVzX3NjaGVkdWxlX21hbmdsZToKIAlhbmRxCSQweDMwLCVyOAogCW1vdmRx
dQkleG1tMywoJXJkeCkKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCV92
cGFlc19zY2hlZHVsZV9tYW5nbGUsLi1fdnBhZXNfc2NoZWR1bGVfbWFuZ2xlCiAKIApAQCAtNjIy
LDYgKzgxMSwxNSBAQCBfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlOgogLnR5cGUJdnBhZXNfc2V0X2Vu
Y3J5cHRfa2V5LEBmdW5jdGlvbgogLmFsaWduCTE2CiB2cGFlc19zZXRfZW5jcnlwdF9rZXk6Cisu
Y2ZpX3N0YXJ0cHJvYwkKKyNpZm5kZWYgTkRFQlVHCisjaWZuZGVmIEJPUklOR1NTTF9GSVBTCisu
ZXh0ZXJuCUJPUklOR1NTTF9mdW5jdGlvbl9oaXQKKy5oaWRkZW4gQk9SSU5HU1NMX2Z1bmN0aW9u
X2hpdAorCW1vdmIJJDEsQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCs1KCVyaXApCisjZW5kaWYKKyNl
bmRpZgorCiAJbW92bAklZXNpLCVlYXgKIAlzaHJsCSQ1LCVlYXgKIAlhZGRsCSQ1LCVlYXgKQEAg
LTYzMiw2ICs4MzAsNyBAQCB2cGFlc19zZXRfZW5jcnlwdF9rZXk6CiAJY2FsbAlfdnBhZXNfc2No
ZWR1bGVfY29yZQogCXhvcmwJJWVheCwlZWF4CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHBy
b2MJCiAuc2l6ZQl2cGFlc19zZXRfZW5jcnlwdF9rZXksLi12cGFlc19zZXRfZW5jcnlwdF9rZXkK
IAogLmdsb2JsCXZwYWVzX3NldF9kZWNyeXB0X2tleQpAQCAtNjM5LDYgKzgzOCw3IEBAIHZwYWVz
X3NldF9lbmNyeXB0X2tleToKIC50eXBlCXZwYWVzX3NldF9kZWNyeXB0X2tleSxAZnVuY3Rpb24K
IC5hbGlnbgkxNgogdnBhZXNfc2V0X2RlY3J5cHRfa2V5OgorLmNmaV9zdGFydHByb2MJCiAJbW92
bAklZXNpLCVlYXgKIAlzaHJsCSQ1LCVlYXgKIAlhZGRsCSQ1LCVlYXgKQEAgLTY1NCw2ICs4NTQs
NyBAQCB2cGFlc19zZXRfZGVjcnlwdF9rZXk6CiAJY2FsbAlfdnBhZXNfc2NoZWR1bGVfY29yZQog
CXhvcmwJJWVheCwlZWF4CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQl2
cGFlc19zZXRfZGVjcnlwdF9rZXksLi12cGFlc19zZXRfZGVjcnlwdF9rZXkKIAogLmdsb2JsCXZw
YWVzX2VuY3J5cHQKQEAgLTY2MSwxMSArODYyLDIwIEBAIHZwYWVzX3NldF9kZWNyeXB0X2tleToK
IC50eXBlCXZwYWVzX2VuY3J5cHQsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIHZwYWVzX2VuY3J5cHQ6
CisuY2ZpX3N0YXJ0cHJvYwkKKyNpZm5kZWYgTkRFQlVHCisjaWZuZGVmIEJPUklOR1NTTF9GSVBT
CisuZXh0ZXJuCUJPUklOR1NTTF9mdW5jdGlvbl9oaXQKKy5oaWRkZW4gQk9SSU5HU1NMX2Z1bmN0
aW9uX2hpdAorCW1vdmIJJDEsQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCs0KCVyaXApCisjZW5kaWYK
KyNlbmRpZgogCW1vdmRxdQkoJXJkaSksJXhtbTAKIAljYWxsCV92cGFlc19wcmVoZWF0CiAJY2Fs
bAlfdnBhZXNfZW5jcnlwdF9jb3JlCiAJbW92ZHF1CSV4bW0wLCglcnNpKQogCS5ieXRlCTB4ZjMs
MHhjMworLmNmaV9lbmRwcm9jCQogLnNpemUJdnBhZXNfZW5jcnlwdCwuLXZwYWVzX2VuY3J5cHQK
IAogLmdsb2JsCXZwYWVzX2RlY3J5cHQKQEAgLTY3MywxNyArODgzLDIwIEBAIHZwYWVzX2VuY3J5
cHQ6CiAudHlwZQl2cGFlc19kZWNyeXB0LEBmdW5jdGlvbgogLmFsaWduCTE2CiB2cGFlc19kZWNy
eXB0OgorLmNmaV9zdGFydHByb2MJCiAJbW92ZHF1CSglcmRpKSwleG1tMAogCWNhbGwJX3ZwYWVz
X3ByZWhlYXQKIAljYWxsCV92cGFlc19kZWNyeXB0X2NvcmUKIAltb3ZkcXUJJXhtbTAsKCVyc2kp
CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQl2cGFlc19kZWNyeXB0LC4t
dnBhZXNfZGVjcnlwdAogLmdsb2JsCXZwYWVzX2NiY19lbmNyeXB0CiAuaGlkZGVuIHZwYWVzX2Ni
Y19lbmNyeXB0CiAudHlwZQl2cGFlc19jYmNfZW5jcnlwdCxAZnVuY3Rpb24KIC5hbGlnbgkxNgog
dnBhZXNfY2JjX2VuY3J5cHQ6CisuY2ZpX3N0YXJ0cHJvYwkKIAl4Y2hncQklcmN4LCVyZHgKIAlz
dWJxCSQxNiwlcmN4CiAJamMJLkxjYmNfYWJvcnQKQEAgLTcxOSw3ICs5MzIsNzEgQEAgdnBhZXNf
Y2JjX2VuY3J5cHQ6CiAJbW92ZHF1CSV4bW02LCglcjgpCiAuTGNiY19hYm9ydDoKIAkuYnl0ZQkw
eGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCXZwYWVzX2NiY19lbmNyeXB0LC4tdnBhZXNf
Y2JjX2VuY3J5cHQKKy5nbG9ibAl2cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2NrcworLmhpZGRlbiB2
cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2NrcworLnR5cGUJdnBhZXNfY3RyMzJfZW5jcnlwdF9ibG9j
a3MsQGZ1bmN0aW9uCisuYWxpZ24JMTYKK3ZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzOgorLmNm
aV9zdGFydHByb2MJCisKKwl4Y2hncQklcmN4LCVyZHgKKwl0ZXN0cQklcmN4LCVyY3gKKwlqegku
TGN0cjMyX2Fib3J0CisJbW92ZHF1CSglcjgpLCV4bW0wCisJbW92ZHFhCS5MY3RyX2FkZF9vbmUo
JXJpcCksJXhtbTgKKwlzdWJxCSVyZGksJXJzaQorCWNhbGwJX3ZwYWVzX3ByZWhlYXQKKwltb3Zk
cWEJJXhtbTAsJXhtbTYKKwlwc2h1ZmIJLkxyZXZfY3RyKCVyaXApLCV4bW02CisKKwl0ZXN0cQkk
MSwlcmN4CisJanoJLkxjdHIzMl9wcmVwX2xvb3AKKworCisKKwltb3ZkcXUJKCVyZGkpLCV4bW03
CisJY2FsbAlfdnBhZXNfZW5jcnlwdF9jb3JlCisJcHhvcgkleG1tNywleG1tMAorCXBhZGRkCSV4
bW04LCV4bW02CisJbW92ZHF1CSV4bW0wLCglcnNpLCVyZGksMSkKKwlzdWJxCSQxLCVyY3gKKwls
ZWFxCTE2KCVyZGkpLCVyZGkKKwlqegkuTGN0cjMyX2RvbmUKKworLkxjdHIzMl9wcmVwX2xvb3A6
CisKKworCW1vdmRxYQkleG1tNiwleG1tMTQKKwltb3ZkcWEJJXhtbTYsJXhtbTE1CisJcGFkZGQJ
JXhtbTgsJXhtbTE1CisKKy5MY3RyMzJfbG9vcDoKKwltb3ZkcWEJLkxyZXZfY3RyKCVyaXApLCV4
bW0xCisJbW92ZHFhCSV4bW0xNCwleG1tMAorCW1vdmRxYQkleG1tMTUsJXhtbTYKKy5ieXRlCTEw
MiwxNSw1NiwwLDE5MworLmJ5dGUJMTAyLDE1LDU2LDAsMjQxCisJY2FsbAlfdnBhZXNfZW5jcnlw
dF9jb3JlXzJ4CisJbW92ZHF1CSglcmRpKSwleG1tMQorCW1vdmRxdQkxNiglcmRpKSwleG1tMgor
CW1vdmRxYQkuTGN0cl9hZGRfdHdvKCVyaXApLCV4bW0zCisJcHhvcgkleG1tMSwleG1tMAorCXB4
b3IJJXhtbTIsJXhtbTYKKwlwYWRkZAkleG1tMywleG1tMTQKKwlwYWRkZAkleG1tMywleG1tMTUK
Kwltb3ZkcXUJJXhtbTAsKCVyc2ksJXJkaSwxKQorCW1vdmRxdQkleG1tNiwxNiglcnNpLCVyZGks
MSkKKwlzdWJxCSQyLCVyY3gKKwlsZWFxCTMyKCVyZGkpLCVyZGkKKwlqbnoJLkxjdHIzMl9sb29w
CisKKy5MY3RyMzJfZG9uZToKKy5MY3RyMzJfYWJvcnQ6CisJLmJ5dGUJMHhmMywweGMzCisuY2Zp
X2VuZHByb2MJCisuc2l6ZQl2cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2NrcywuLXZwYWVzX2N0cjMy
X2VuY3J5cHRfYmxvY2tzCiAKIAogCkBAIC03MjksNiArMTAwNiw3IEBAIHZwYWVzX2NiY19lbmNy
eXB0OgogLnR5cGUJX3ZwYWVzX3ByZWhlYXQsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIF92cGFlc19w
cmVoZWF0OgorLmNmaV9zdGFydHByb2MJCiAJbGVhcQkuTGtfczBGKCVyaXApLCVyMTAKIAltb3Zk
cWEJLTMyKCVyMTApLCV4bW0xMAogCW1vdmRxYQktMTYoJXIxMCksJXhtbTExCkBAIC03MzgsNiAr
MTAxNiw3IEBAIF92cGFlc19wcmVoZWF0OgogCW1vdmRxYQk4MCglcjEwKSwleG1tMTUKIAltb3Zk
cWEJOTYoJXIxMCksJXhtbTE0CiAJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6
ZQlfdnBhZXNfcHJlaGVhdCwuLV92cGFlc19wcmVoZWF0CiAKIApAQCAtODQwLDYgKzExMTksMTcg
QEAgX3ZwYWVzX2NvbnN0czoKIC5Ma19kc2JvOgogLnF1YWQJMHgxMzg3RUE1MzdFRjk0MDAwLCAw
eEM3QUE2REI5RDQ5NDNFMkQKIC5xdWFkCTB4MTJENzU2MEY5MzQ0MUQwMCwgMHhDQTRCODE1OUQ4
QzU4RTlDCisKKworLkxyZXZfY3RyOgorLnF1YWQJMHgwNzA2MDUwNDAzMDIwMTAwLCAweDBjMGQw
ZTBmMGIwYTA5MDgKKworCisuTGN0cl9hZGRfb25lOgorLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAw
LCAweDAwMDAwMDAxMDAwMDAwMDAKKy5MY3RyX2FkZF90d286CisucXVhZAkweDAwMDAwMDAwMDAw
MDAwMDAsIDB4MDAwMDAwMDIwMDAwMDAwMAorCiAuYnl0ZQk4NiwxMDEsOTksMTE2LDExMSwxMTQs
MzIsODAsMTAxLDExNCwxMDksMTE3LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsNjUsNjksODMs
MzIsMTAyLDExMSwxMTQsMzIsMTIwLDU2LDU0LDk1LDU0LDUyLDQ3LDgzLDgzLDgzLDY5LDUxLDQ0
LDMyLDc3LDEwNSwxMDcsMTAxLDMyLDcyLDk3LDEwOSw5OCwxMTcsMTE0LDEwMywzMiw0MCw4Mywx
MTYsOTcsMTEwLDEwMiwxMTEsMTE0LDEwMCwzMiw4NSwxMTAsMTA1LDExOCwxMDEsMTE0LDExNSwx
MDUsMTE2LDEyMSw0MSwwCiAuYWxpZ24JNjQKIC5zaXplCV92cGFlc19jb25zdHMsLi1fdnBhZXNf
Y29uc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUveDg2XzY0
LW1vbnQ1LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUveDg2XzY0LW1vbnQ1LlMK
aW5kZXggOGFjMzYwZGRkMTliYzI5ZDRiNzc2NGM1N2RlNmNkNWZmNTJmN2JjYi4uYjEyMzkzZTIw
MTA3MWQxZjdjYTUzOWY5MjdjNjIxZjM1NGUzZjJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0
L2NyeXB0by9maXBzbW9kdWxlL3g4Nl82NC1tb250NS5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlw
dG8vZmlwc21vZHVsZS94ODZfNjQtbW9udDUuUwpAQCAtNTY2LDYgKzU2Niw3IEBAIGJuX211bDR4
X21vbnRfZ2F0aGVyNToKIC50eXBlCW11bDR4X2ludGVybmFsLEBmdW5jdGlvbgogLmFsaWduCTMy
CiBtdWw0eF9pbnRlcm5hbDoKKy5jZmlfc3RhcnRwcm9jCQogCXNobHEJJDUsJXI5CiAJbW92ZAk4
KCVyYXgpLCV4bW01CiAJbGVhcQkuTGluYyglcmlwKSwlcmF4CkBAIC0xMDg3LDYgKzEwODgsNyBA
QCBtdWw0eF9pbnRlcm5hbDoKIAltb3ZxCTE2KCVyYnApLCVyMTQKIAltb3ZxCTI0KCVyYnApLCVy
MTUKIAlqbXAJLkxzcXI0eF9zdWJfZW50cnkKKy5jZmlfZW5kcHJvYwkKIC5zaXplCW11bDR4X2lu
dGVybmFsLC4tbXVsNHhfaW50ZXJuYWwKIC5nbG9ibAlibl9wb3dlcjUKIC5oaWRkZW4gYm5fcG93
ZXI1CkBAIC0xMjMyLDYgKzEyMzQsNyBAQCBibl9wb3dlcjU6CiAuYWxpZ24JMzIKIGJuX3Nxcjh4
X2ludGVybmFsOgogX19ibl9zcXI4eF9pbnRlcm5hbDoKKy5jZmlfc3RhcnRwcm9jCQogCiAKIApA
QCAtMjAwNiwxMCArMjAwOSwxMiBAQCBfX2JuX3Nxcjh4X3JlZHVjdGlvbjoKIAljbXBxCSVyZHgs
JXJkaQogCWpiCS5MOHhfcmVkdWN0aW9uX2xvb3AKIAkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5k
cHJvYwkKIC5zaXplCWJuX3Nxcjh4X2ludGVybmFsLC4tYm5fc3FyOHhfaW50ZXJuYWwKIC50eXBl
CV9fYm5fcG9zdDR4X2ludGVybmFsLEBmdW5jdGlvbgogLmFsaWduCTMyCiBfX2JuX3Bvc3Q0eF9p
bnRlcm5hbDoKKy5jZmlfc3RhcnRwcm9jCQogCW1vdnEJMCglcmJwKSwlcjEyCiAJbGVhcQkoJXJk
aSwlcjksMSksJXJieAogCW1vdnEJJXI5LCVyY3gKQEAgLTIwNjAsMTYgKzIwNjUsMTkgQEAgX19i
bl9wb3N0NHhfaW50ZXJuYWw6CiAJbW92cQklcjksJXIxMAogCW5lZ3EJJXI5CiAJLmJ5dGUJMHhm
MywweGMzCisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlfX2JuX3Bvc3Q0eF9pbnRlcm5hbCwuLV9fYm5f
cG9zdDR4X2ludGVybmFsCiAuZ2xvYmwJYm5fZnJvbV9tb250Z29tZXJ5CiAuaGlkZGVuIGJuX2Zy
b21fbW9udGdvbWVyeQogLnR5cGUJYm5fZnJvbV9tb250Z29tZXJ5LEBmdW5jdGlvbgogLmFsaWdu
CTMyCiBibl9mcm9tX21vbnRnb21lcnk6CisuY2ZpX3N0YXJ0cHJvYwkKIAl0ZXN0bAkkNywlcjlk
CiAJanoJYm5fZnJvbV9tb250OHgKIAl4b3JsCSVlYXgsJWVheAogCS5ieXRlCTB4ZjMsMHhjMwor
LmNmaV9lbmRwcm9jCQogLnNpemUJYm5fZnJvbV9tb250Z29tZXJ5LC4tYm5fZnJvbV9tb250Z29t
ZXJ5CiAKIC50eXBlCWJuX2Zyb21fbW9udDh4LEBmdW5jdGlvbgpAQCAtMjM1NCw2ICsyMzYyLDcg
QEAgYm5fbXVseDR4X21vbnRfZ2F0aGVyNToKIC50eXBlCW11bHg0eF9pbnRlcm5hbCxAZnVuY3Rp
b24KIC5hbGlnbgkzMgogbXVseDR4X2ludGVybmFsOgorLmNmaV9zdGFydHByb2MJCiAJbW92cQkl
cjksOCglcnNwKQogCW1vdnEJJXI5LCVyMTAKIAluZWdxCSVyOQpAQCAtMjc3Miw2ICsyNzgxLDcg
QEAgbXVseDR4X2ludGVybmFsOgogCW1vdnEJMTYoJXJicCksJXIxNAogCW1vdnEJMjQoJXJicCks
JXIxNQogCWptcAkuTHNxcng0eF9zdWJfZW50cnkKKy5jZmlfZW5kcHJvYwkKIC5zaXplCW11bHg0
eF9pbnRlcm5hbCwuLW11bHg0eF9pbnRlcm5hbAogLnR5cGUJYm5fcG93ZXJ4NSxAZnVuY3Rpb24K
IC5hbGlnbgkzMgpAQCAtMjkxNSw2ICsyOTI1LDcgQEAgYm5fcG93ZXJ4NToKIC5hbGlnbgkzMgog
Ym5fc3FyeDh4X2ludGVybmFsOgogX19ibl9zcXJ4OHhfaW50ZXJuYWw6CisuY2ZpX3N0YXJ0cHJv
YwkKIAogCiAKQEAgLTM1MjYsOSArMzUzNywxMiBAQCBfX2JuX3Nxcng4eF9yZWR1Y3Rpb246CiAJ
Y21wcQk4KzgoJXJzcCksJXI4CiAJamIJLkxzcXJ4OHhfcmVkdWN0aW9uX2xvb3AKIAkuYnl0ZQkw
eGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKIC5zaXplCWJuX3Nxcng4eF9pbnRlcm5hbCwuLWJuX3Nx
cng4eF9pbnRlcm5hbAogLmFsaWduCTMyCisudHlwZQlfX2JuX3Bvc3R4NHhfaW50ZXJuYWwsQGZ1
bmN0aW9uCiBfX2JuX3Bvc3R4NHhfaW50ZXJuYWw6CisuY2ZpX3N0YXJ0cHJvYwkKIAltb3ZxCTAo
JXJicCksJXIxMgogCW1vdnEJJXJjeCwlcjEwCiAJbW92cQklcmN4LCVyOQpAQCAtMzU3NiwxMiAr
MzU5MCwxNCBAQCBfX2JuX3Bvc3R4NHhfaW50ZXJuYWw6CiAJbmVncQklcjkKIAogCS5ieXRlCTB4
ZjMsMHhjMworLmNmaV9lbmRwcm9jCQogLnNpemUJX19ibl9wb3N0eDR4X2ludGVybmFsLC4tX19i
bl9wb3N0eDR4X2ludGVybmFsCiAuZ2xvYmwJYm5fc2NhdHRlcjUKIC5oaWRkZW4gYm5fc2NhdHRl
cjUKIC50eXBlCWJuX3NjYXR0ZXI1LEBmdW5jdGlvbgogLmFsaWduCTE2CiBibl9zY2F0dGVyNToK
Ky5jZmlfc3RhcnRwcm9jCQogCWNtcGwJJDAsJWVzaQogCWp6CS5Mc2NhdHRlcl9lcGlsb2d1ZQog
CWxlYXEJKCVyZHgsJXJjeCw4KSwlcmR4CkBAIC0zNTk0LDYgKzM2MTAsNyBAQCBibl9zY2F0dGVy
NToKIAlqbnoJLkxzY2F0dGVyCiAuTHNjYXR0ZXJfZXBpbG9ndWU6CiAJLmJ5dGUJMHhmMywweGMz
CisuY2ZpX2VuZHByb2MJCiAuc2l6ZQlibl9zY2F0dGVyNSwuLWJuX3NjYXR0ZXI1CiAKIC5nbG9i
bAlibl9nYXRoZXI1CkBAIC0zNjAxLDkgKzM2MTgsMTEgQEAgYm5fc2NhdHRlcjU6CiAudHlwZQli
bl9nYXRoZXI1LEBmdW5jdGlvbgogLmFsaWduCTMyCiBibl9nYXRoZXI1OgorLmNmaV9zdGFydHBy
b2MJCiAuTFNFSF9iZWdpbl9ibl9nYXRoZXI1OgogCiAuYnl0ZQkweDRjLDB4OGQsMHgxNCwweDI0
CisuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJJXIxMAogLmJ5dGUJMHg0OCwweDgxLDB4ZWMsMHgwOCww
eDAxLDB4MDAsMHgwMAogCWxlYXEJLkxpbmMoJXJpcCksJXJheAogCWFuZHEJJC0xNiwlcnNwCkBA
IC0zNzU3LDggKzM3NzYsMTAgQEAgYm5fZ2F0aGVyNToKIAlqbnoJLkxnYXRoZXIKIAogCWxlYXEJ
KCVyMTApLCVyc3AKKy5jZmlfZGVmX2NmYV9yZWdpc3RlcgklcnNwCiAJLmJ5dGUJMHhmMywweGMz
CiAuTFNFSF9lbmRfYm5fZ2F0aGVyNToKKy5jZmlfZW5kcHJvYwkKIC5zaXplCWJuX2dhdGhlcjUs
Li1ibl9nYXRoZXI1CiAuYWxpZ24JNjQKIC5MaW5jOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0
L2NyeXB0by90ZXN0L3RyYW1wb2xpbmUteDg2XzY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL3Rl
c3QvdHJhbXBvbGluZS14ODZfNjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWExM2YzZWVkMmE0M2M1M2UzZmYz
YzRjNDIwMjYwMGU3ODM5NzBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0
by90ZXN0L3RyYW1wb2xpbmUteDg2XzY0LlMKQEAgLTAsMCArMSw1MTcgQEAKKyMgVGhpcyBmaWxl
IGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBC
b3JpbmdTU0wKKyMgc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpZiBkZWZp
bmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAm
JiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BFTlNTTF9OT19BU00KKyNlbmRp
ZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pICYmICFkZWZpbmVkKE9QRU5TU0xf
Tk9fQVNNKQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNsdWRlIDxib3Jpbmdz
c2xfcHJlZml4X3N5bWJvbHNfYXNtLmg+CisjZW5kaWYKKy50ZXh0CQorCisKKworCisKKworCisK
Ky50eXBlCWFiaV90ZXN0X3RyYW1wb2xpbmUsIEBmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X3Ry
YW1wb2xpbmUKKy5oaWRkZW4gYWJpX3Rlc3RfdHJhbXBvbGluZQorLmFsaWduCTE2CithYmlfdGVz
dF90cmFtcG9saW5lOgorLkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9iZWdpbjoKKy5jZmlfc3Rh
cnRwcm9jCQorCisKKworCisKKworCisKKworCXN1YnEJJDEyMCwlcnNwCisuY2ZpX2FkanVzdF9j
ZmFfb2Zmc2V0CTEyMAorLkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9wcm9sb2dfYWxsb2M6CisJ
bW92cQklcjgsNDgoJXJzcCkKKwltb3ZxCSVyYngsNjQoJXJzcCkKKy5jZmlfb2Zmc2V0CXJieCwg
LTY0CisuTGFiaV90ZXN0X3RyYW1wb2xpbmVfc2VoX3Byb2xvZ19yYng6CisJbW92cQklcmJwLDcy
KCVyc3ApCisuY2ZpX29mZnNldAlyYnAsIC01NgorLkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9w
cm9sb2dfcmJwOgorCW1vdnEJJXIxMiw4MCglcnNwKQorLmNmaV9vZmZzZXQJcjEyLCAtNDgKKy5M
YWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfcHJvbG9nX3IxMjoKKwltb3ZxCSVyMTMsODgoJXJzcCkK
Ky5jZmlfb2Zmc2V0CXIxMywgLTQwCisuTGFiaV90ZXN0X3RyYW1wb2xpbmVfc2VoX3Byb2xvZ19y
MTM6CisJbW92cQklcjE0LDk2KCVyc3ApCisuY2ZpX29mZnNldAlyMTQsIC0zMgorLkxhYmlfdGVz
dF90cmFtcG9saW5lX3NlaF9wcm9sb2dfcjE0OgorCW1vdnEJJXIxNSwxMDQoJXJzcCkKKy5jZmlf
b2Zmc2V0CXIxNSwgLTI0CisuTGFiaV90ZXN0X3RyYW1wb2xpbmVfc2VoX3Byb2xvZ19yMTU6Cisu
TGFiaV90ZXN0X3RyYW1wb2xpbmVfc2VoX3Byb2xvZ19lbmQ6CisJbW92cQkwKCVyc2kpLCVyYngK
Kwltb3ZxCTgoJXJzaSksJXJicAorCW1vdnEJMTYoJXJzaSksJXIxMgorCW1vdnEJMjQoJXJzaSks
JXIxMworCW1vdnEJMzIoJXJzaSksJXIxNAorCW1vdnEJNDAoJXJzaSksJXIxNQorCisJbW92cQkl
cmRpLDMyKCVyc3ApCisJbW92cQklcnNpLDQwKCVyc3ApCisKKworCisKKwltb3ZxCSVyZHgsJXIx
MAorCW1vdnEJJXJjeCwlcjExCisJZGVjcQklcjExCisJanMJLkxhcmdzX2RvbmUKKwltb3ZxCSgl
cjEwKSwlcmRpCisJYWRkcQkkOCwlcjEwCisJZGVjcQklcjExCisJanMJLkxhcmdzX2RvbmUKKwlt
b3ZxCSglcjEwKSwlcnNpCisJYWRkcQkkOCwlcjEwCisJZGVjcQklcjExCisJanMJLkxhcmdzX2Rv
bmUKKwltb3ZxCSglcjEwKSwlcmR4CisJYWRkcQkkOCwlcjEwCisJZGVjcQklcjExCisJanMJLkxh
cmdzX2RvbmUKKwltb3ZxCSglcjEwKSwlcmN4CisJYWRkcQkkOCwlcjEwCisJZGVjcQklcjExCisJ
anMJLkxhcmdzX2RvbmUKKwltb3ZxCSglcjEwKSwlcjgKKwlhZGRxCSQ4LCVyMTAKKwlkZWNxCSVy
MTEKKwlqcwkuTGFyZ3NfZG9uZQorCW1vdnEJKCVyMTApLCVyOQorCWFkZHEJJDgsJXIxMAorCWxl
YXEJMCglcnNwKSwlcmF4CisuTGFyZ3NfbG9vcDoKKwlkZWNxCSVyMTEKKwlqcwkuTGFyZ3NfZG9u
ZQorCisKKworCisKKworCW1vdnEJJXIxMSw1NiglcnNwKQorCW1vdnEJKCVyMTApLCVyMTEKKwlt
b3ZxCSVyMTEsKCVyYXgpCisJbW92cQk1NiglcnNwKSwlcjExCisKKwlhZGRxCSQ4LCVyMTAKKwlh
ZGRxCSQ4LCVyYXgKKwlqbXAJLkxhcmdzX2xvb3AKKworLkxhcmdzX2RvbmU6CisJbW92cQkzMigl
cnNwKSwlcmF4CisJbW92cQk0OCglcnNwKSwlcjEwCisJdGVzdHEJJXIxMCwlcjEwCisJanoJLkxu
b191bndpbmQKKworCisJcHVzaGZxCisJb3JxCSQweDEwMCwwKCVyc3ApCisJcG9wZnEKKworCisK
Kwlub3AKKy5nbG9ibAlhYmlfdGVzdF91bndpbmRfc3RhcnQKKy5oaWRkZW4gYWJpX3Rlc3RfdW53
aW5kX3N0YXJ0CithYmlfdGVzdF91bndpbmRfc3RhcnQ6CisKKwljYWxsCSolcmF4CisuZ2xvYmwJ
YWJpX3Rlc3RfdW53aW5kX3JldHVybgorLmhpZGRlbiBhYmlfdGVzdF91bndpbmRfcmV0dXJuCith
YmlfdGVzdF91bndpbmRfcmV0dXJuOgorCisKKworCisJcHVzaGZxCisJYW5kcQkkLTB4MTAxLDAo
JXJzcCkKKwlwb3BmcQorLmdsb2JsCWFiaV90ZXN0X3Vud2luZF9zdG9wCisuaGlkZGVuIGFiaV90
ZXN0X3Vud2luZF9zdG9wCithYmlfdGVzdF91bndpbmRfc3RvcDoKKworCWptcAkuTGNhbGxfZG9u
ZQorCisuTG5vX3Vud2luZDoKKwljYWxsCSolcmF4CisKKy5MY2FsbF9kb25lOgorCisJbW92cQk0
MCglcnNwKSwlcnNpCisJbW92cQklcmJ4LDAoJXJzaSkKKwltb3ZxCSVyYnAsOCglcnNpKQorCW1v
dnEJJXIxMiwxNiglcnNpKQorCW1vdnEJJXIxMywyNCglcnNpKQorCW1vdnEJJXIxNCwzMiglcnNp
KQorCW1vdnEJJXIxNSw0MCglcnNpKQorCW1vdnEJNjQoJXJzcCksJXJieAorLmNmaV9yZXN0b3Jl
CXJieAorCW1vdnEJNzIoJXJzcCksJXJicAorLmNmaV9yZXN0b3JlCXJicAorCW1vdnEJODAoJXJz
cCksJXIxMgorLmNmaV9yZXN0b3JlCXIxMgorCW1vdnEJODgoJXJzcCksJXIxMworLmNmaV9yZXN0
b3JlCXIxMworCW1vdnEJOTYoJXJzcCksJXIxNAorLmNmaV9yZXN0b3JlCXIxNAorCW1vdnEJMTA0
KCVyc3ApLCVyMTUKKy5jZmlfcmVzdG9yZQlyMTUKKwlhZGRxCSQxMjAsJXJzcAorLmNmaV9hZGp1
c3RfY2ZhX29mZnNldAktMTIwCisKKworCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9jCQor
LkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9lbmQ6Cisuc2l6ZQlhYmlfdGVzdF90cmFtcG9saW5l
LC4tYWJpX3Rlc3RfdHJhbXBvbGluZQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9yYXgsIEBmdW5j
dGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfcmF4CisuaGlkZGVuIGFiaV90ZXN0X2Nsb2Ji
ZXJfcmF4CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfcmF4OgorCXhvcnEJJXJheCwlcmF4
CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3JheCwuLWFiaV90ZXN0
X2Nsb2JiZXJfcmF4CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3JieCwgQGZ1bmN0aW9uCisuZ2xv
YmwJYWJpX3Rlc3RfY2xvYmJlcl9yYngKKy5oaWRkZW4gYWJpX3Rlc3RfY2xvYmJlcl9yYngKKy5h
bGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJlcl9yYng6CisJeG9ycQklcmJ4LCVyYngKKwkuYnl0ZQkw
eGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfcmJ4LC4tYWJpX3Rlc3RfY2xvYmJlcl9y
YngKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfcmN4LCBAZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVz
dF9jbG9iYmVyX3JjeAorLmhpZGRlbiBhYmlfdGVzdF9jbG9iYmVyX3JjeAorLmFsaWduCTE2Cith
YmlfdGVzdF9jbG9iYmVyX3JjeDoKKwl4b3JxCSVyY3gsJXJjeAorCS5ieXRlCTB4ZjMsMHhjMwor
LnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9yY3gsLi1hYmlfdGVzdF9jbG9iYmVyX3JjeAorLnR5cGUJ
YWJpX3Rlc3RfY2xvYmJlcl9yZHgsIEBmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJf
cmR4CisuaGlkZGVuIGFiaV90ZXN0X2Nsb2JiZXJfcmR4CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Ns
b2JiZXJfcmR4OgorCXhvcnEJJXJkeCwlcmR4CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlf
dGVzdF9jbG9iYmVyX3JkeCwuLWFiaV90ZXN0X2Nsb2JiZXJfcmR4CisudHlwZQlhYmlfdGVzdF9j
bG9iYmVyX3JkaSwgQGZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9yZGkKKy5oaWRk
ZW4gYWJpX3Rlc3RfY2xvYmJlcl9yZGkKKy5hbGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJlcl9yZGk6
CisJeG9ycQklcmRpLCVyZGkKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Nsb2Ji
ZXJfcmRpLC4tYWJpX3Rlc3RfY2xvYmJlcl9yZGkKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfcnNp
LCBAZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3JzaQorLmhpZGRlbiBhYmlfdGVz
dF9jbG9iYmVyX3JzaQorLmFsaWduCTE2CithYmlfdGVzdF9jbG9iYmVyX3JzaToKKwl4b3JxCSVy
c2ksJXJzaQorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9yc2ksLi1h
YmlfdGVzdF9jbG9iYmVyX3JzaQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9yYnAsIEBmdW5jdGlv
bgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfcmJwCisuaGlkZGVuIGFiaV90ZXN0X2Nsb2JiZXJf
cmJwCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfcmJwOgorCXhvcnEJJXJicCwlcmJwCisJ
LmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3JicCwuLWFiaV90ZXN0X2Ns
b2JiZXJfcmJwCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3I4LCBAZnVuY3Rpb24KKy5nbG9ibAlh
YmlfdGVzdF9jbG9iYmVyX3I4CisuaGlkZGVuIGFiaV90ZXN0X2Nsb2JiZXJfcjgKKy5hbGlnbgkx
NgorYWJpX3Rlc3RfY2xvYmJlcl9yODoKKwl4b3JxCSVyOCwlcjgKKwkuYnl0ZQkweGYzLDB4YzMK
Ky5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfcjgsLi1hYmlfdGVzdF9jbG9iYmVyX3I4CisudHlwZQlh
YmlfdGVzdF9jbG9iYmVyX3I5LCBAZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3I5
CisuaGlkZGVuIGFiaV90ZXN0X2Nsb2JiZXJfcjkKKy5hbGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJl
cl9yOToKKwl4b3JxCSVyOSwlcjkKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Ns
b2JiZXJfcjksLi1hYmlfdGVzdF9jbG9iYmVyX3I5CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3Ix
MCwgQGZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9yMTAKKy5oaWRkZW4gYWJpX3Rl
c3RfY2xvYmJlcl9yMTAKKy5hbGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJlcl9yMTA6CisJeG9ycQkl
cjEwLCVyMTAKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfcjEwLC4t
YWJpX3Rlc3RfY2xvYmJlcl9yMTAKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfcjExLCBAZnVuY3Rp
b24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3IxMQorLmhpZGRlbiBhYmlfdGVzdF9jbG9iYmVy
X3IxMQorLmFsaWduCTE2CithYmlfdGVzdF9jbG9iYmVyX3IxMToKKwl4b3JxCSVyMTEsJXIxMQor
CS5ieXRlCTB4ZjMsMHhjMworLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9yMTEsLi1hYmlfdGVzdF9j
bG9iYmVyX3IxMQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl9yMTIsIEBmdW5jdGlvbgorLmdsb2Js
CWFiaV90ZXN0X2Nsb2JiZXJfcjEyCisuaGlkZGVuIGFiaV90ZXN0X2Nsb2JiZXJfcjEyCisuYWxp
Z24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfcjEyOgorCXhvcnEJJXIxMiwlcjEyCisJLmJ5dGUJMHhm
MywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3IxMiwuLWFiaV90ZXN0X2Nsb2JiZXJfcjEy
CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3IxMywgQGZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3Rf
Y2xvYmJlcl9yMTMKKy5oaWRkZW4gYWJpX3Rlc3RfY2xvYmJlcl9yMTMKKy5hbGlnbgkxNgorYWJp
X3Rlc3RfY2xvYmJlcl9yMTM6CisJeG9ycQklcjEzLCVyMTMKKwkuYnl0ZQkweGYzLDB4YzMKKy5z
aXplCWFiaV90ZXN0X2Nsb2JiZXJfcjEzLC4tYWJpX3Rlc3RfY2xvYmJlcl9yMTMKKy50eXBlCWFi
aV90ZXN0X2Nsb2JiZXJfcjE0LCBAZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3Ix
NAorLmhpZGRlbiBhYmlfdGVzdF9jbG9iYmVyX3IxNAorLmFsaWduCTE2CithYmlfdGVzdF9jbG9i
YmVyX3IxNDoKKwl4b3JxCSVyMTQsJXIxNAorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJYWJpX3Rl
c3RfY2xvYmJlcl9yMTQsLi1hYmlfdGVzdF9jbG9iYmVyX3IxNAorLnR5cGUJYWJpX3Rlc3RfY2xv
YmJlcl9yMTUsIEBmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfcjE1CisuaGlkZGVu
IGFiaV90ZXN0X2Nsb2JiZXJfcjE1CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfcjE1Ogor
CXhvcnEJJXIxNSwlcjE1CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVy
X3IxNSwuLWFiaV90ZXN0X2Nsb2JiZXJfcjE1CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTAs
IEBmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeG1tMAorLmhpZGRlbiBhYmlfdGVz
dF9jbG9iYmVyX3htbTAKKy5hbGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJlcl94bW0wOgorCXB4b3IJ
JXhtbTAsJXhtbTAKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeG1t
MCwuLWFiaV90ZXN0X2Nsb2JiZXJfeG1tMAorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94bW0xLCBA
ZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTEKKy5oaWRkZW4gYWJpX3Rlc3Rf
Y2xvYmJlcl94bW0xCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMToKKwlweG9yCSV4
bW0xLCV4bW0xCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTEs
Li1hYmlfdGVzdF9jbG9iYmVyX3htbTEKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeG1tMiwgQGZ1
bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW0yCisuaGlkZGVuIGFiaV90ZXN0X2Ns
b2JiZXJfeG1tMgorLmFsaWduCTE2CithYmlfdGVzdF9jbG9iYmVyX3htbTI6CisJcHhvcgkleG1t
MiwleG1tMgorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94bW0yLC4t
YWJpX3Rlc3RfY2xvYmJlcl94bW0yCisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTMsIEBmdW5j
dGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeG1tMworLmhpZGRlbiBhYmlfdGVzdF9jbG9i
YmVyX3htbTMKKy5hbGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJlcl94bW0zOgorCXB4b3IJJXhtbTMs
JXhtbTMKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeG1tMywuLWFi
aV90ZXN0X2Nsb2JiZXJfeG1tMworLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94bW00LCBAZnVuY3Rp
b24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTQKKy5oaWRkZW4gYWJpX3Rlc3RfY2xvYmJl
cl94bW00CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tNDoKKwlweG9yCSV4bW00LCV4
bW00CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTQsLi1hYmlf
dGVzdF9jbG9iYmVyX3htbTQKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeG1tNSwgQGZ1bmN0aW9u
CisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW01CisuaGlkZGVuIGFiaV90ZXN0X2Nsb2JiZXJf
eG1tNQorLmFsaWduCTE2CithYmlfdGVzdF9jbG9iYmVyX3htbTU6CisJcHhvcgkleG1tNSwleG1t
NQorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94bW01LC4tYWJpX3Rl
c3RfY2xvYmJlcl94bW01CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTYsIEBmdW5jdGlvbgor
Lmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfeG1tNgorLmhpZGRlbiBhYmlfdGVzdF9jbG9iYmVyX3ht
bTYKKy5hbGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJlcl94bW02OgorCXB4b3IJJXhtbTYsJXhtbTYK
KwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeG1tNiwuLWFiaV90ZXN0
X2Nsb2JiZXJfeG1tNgorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94bW03LCBAZnVuY3Rpb24KKy5n
bG9ibAlhYmlfdGVzdF9jbG9iYmVyX3htbTcKKy5oaWRkZW4gYWJpX3Rlc3RfY2xvYmJlcl94bW03
CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tNzoKKwlweG9yCSV4bW03LCV4bW03CisJ
LmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTcsLi1hYmlfdGVzdF9j
bG9iYmVyX3htbTcKKy50eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeG1tOCwgQGZ1bmN0aW9uCisuZ2xv
YmwJYWJpX3Rlc3RfY2xvYmJlcl94bW04CisuaGlkZGVuIGFiaV90ZXN0X2Nsb2JiZXJfeG1tOAor
LmFsaWduCTE2CithYmlfdGVzdF9jbG9iYmVyX3htbTg6CisJcHhvcgkleG1tOCwleG1tOAorCS5i
eXRlCTB4ZjMsMHhjMworLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94bW04LC4tYWJpX3Rlc3RfY2xv
YmJlcl94bW04CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbTksIEBmdW5jdGlvbgorLmdsb2Js
CWFiaV90ZXN0X2Nsb2JiZXJfeG1tOQorLmhpZGRlbiBhYmlfdGVzdF9jbG9iYmVyX3htbTkKKy5h
bGlnbgkxNgorYWJpX3Rlc3RfY2xvYmJlcl94bW05OgorCXB4b3IJJXhtbTksJXhtbTkKKwkuYnl0
ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfeG1tOSwuLWFiaV90ZXN0X2Nsb2Ji
ZXJfeG1tOQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94bW0xMCwgQGZ1bmN0aW9uCisuZ2xvYmwJ
YWJpX3Rlc3RfY2xvYmJlcl94bW0xMAorLmhpZGRlbiBhYmlfdGVzdF9jbG9iYmVyX3htbTEwCisu
YWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMTA6CisJcHhvcgkleG1tMTAsJXhtbTEwCisJ
LmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTEwLC4tYWJpX3Rlc3Rf
Y2xvYmJlcl94bW0xMAorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94bW0xMSwgQGZ1bmN0aW9uCisu
Z2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW0xMQorLmhpZGRlbiBhYmlfdGVzdF9jbG9iYmVyX3ht
bTExCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMTE6CisJcHhvcgkleG1tMTEsJXht
bTExCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTExLC4tYWJp
X3Rlc3RfY2xvYmJlcl94bW0xMQorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94bW0xMiwgQGZ1bmN0
aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW0xMgorLmhpZGRlbiBhYmlfdGVzdF9jbG9i
YmVyX3htbTEyCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMTI6CisJcHhvcgkleG1t
MTIsJXhtbTEyCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVyX3htbTEy
LC4tYWJpX3Rlc3RfY2xvYmJlcl94bW0xMgorLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94bW0xMywg
QGZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW0xMworLmhpZGRlbiBhYmlfdGVz
dF9jbG9iYmVyX3htbTEzCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMTM6CisJcHhv
cgkleG1tMTMsJXhtbTEzCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9jbG9iYmVy
X3htbTEzLC4tYWJpX3Rlc3RfY2xvYmJlcl94bW0xMworLnR5cGUJYWJpX3Rlc3RfY2xvYmJlcl94
bW0xNCwgQGZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW0xNAorLmhpZGRlbiBh
YmlfdGVzdF9jbG9iYmVyX3htbTE0CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJfeG1tMTQ6
CisJcHhvcgkleG1tMTQsJXhtbTE0CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlfdGVzdF9j
bG9iYmVyX3htbTE0LC4tYWJpX3Rlc3RfY2xvYmJlcl94bW0xNAorLnR5cGUJYWJpX3Rlc3RfY2xv
YmJlcl94bW0xNSwgQGZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW0xNQorLmhp
ZGRlbiBhYmlfdGVzdF9jbG9iYmVyX3htbTE1CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Nsb2JiZXJf
eG1tMTU6CisJcHhvcgkleG1tMTUsJXhtbTE1CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlhYmlf
dGVzdF9jbG9iYmVyX3htbTE1LC4tYWJpX3Rlc3RfY2xvYmJlcl94bW0xNQorCisKKworLnR5cGUJ
YWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdpc3RlciwgQGZ1bmN0aW9uCisuZ2xvYmwJYWJp
X3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdpc3RlcgorLmhpZGRlbiBhYmlfdGVzdF9iYWRfdW53
aW5kX3dyb25nX3JlZ2lzdGVyCisuYWxpZ24JMTYKK2FiaV90ZXN0X2JhZF91bndpbmRfd3Jvbmdf
cmVnaXN0ZXI6CisuY2ZpX3N0YXJ0cHJvYwkKKy5MYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19y
ZWdpc3Rlcl9zZWhfYmVnaW46CisJcHVzaHEJJXIxMgorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4
CisuY2ZpX29mZnNldAklcjEzLC0xNgorLkxhYmlfdGVzdF9iYWRfdW53aW5kX3dyb25nX3JlZ2lz
dGVyX3NlaF9wdXNoX3IxMzoKKworCisKKwlub3AKKwlwb3BxCSVyMTIKKy5jZmlfYWRqdXN0X2Nm
YV9vZmZzZXQJLTgKKy5jZmlfcmVzdG9yZQklcjEyCisJLmJ5dGUJMHhmMywweGMzCisuTGFiaV90
ZXN0X2JhZF91bndpbmRfd3JvbmdfcmVnaXN0ZXJfc2VoX2VuZDoKKy5jZmlfZW5kcHJvYwkKKy5z
aXplCWFiaV90ZXN0X2JhZF91bndpbmRfd3JvbmdfcmVnaXN0ZXIsLi1hYmlfdGVzdF9iYWRfdW53
aW5kX3dyb25nX3JlZ2lzdGVyCisKKworCisKKy50eXBlCWFiaV90ZXN0X2JhZF91bndpbmRfdGVt
cG9yYXJ5LCBAZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9iYWRfdW53aW5kX3RlbXBvcmFyeQor
LmhpZGRlbiBhYmlfdGVzdF9iYWRfdW53aW5kX3RlbXBvcmFyeQorLmFsaWduCTE2CithYmlfdGVz
dF9iYWRfdW53aW5kX3RlbXBvcmFyeToKKy5jZmlfc3RhcnRwcm9jCQorLkxhYmlfdGVzdF9iYWRf
dW53aW5kX3RlbXBvcmFyeV9zZWhfYmVnaW46CisJcHVzaHEJJXIxMgorLmNmaV9hZGp1c3RfY2Zh
X29mZnNldAk4CisuY2ZpX29mZnNldAklcjEyLC0xNgorLkxhYmlfdGVzdF9iYWRfdW53aW5kX3Rl
bXBvcmFyeV9zZWhfcHVzaF9yMTI6CisKKwltb3ZxCSVyMTIsJXJheAorCWluY3EJJXJheAorCW1v
dnEJJXJheCwoJXJzcCkKKworCisKKwltb3ZxCSVyMTIsKCVyc3ApCisKKworCXBvcHEJJXIxMgor
LmNmaV9hZGp1c3RfY2ZhX29mZnNldAktOAorLmNmaV9yZXN0b3JlCSVyMTIKKwkuYnl0ZQkweGYz
LDB4YzMKKy5MYWJpX3Rlc3RfYmFkX3Vud2luZF90ZW1wb3Jhcnlfc2VoX2VuZDoKKy5jZmlfZW5k
cHJvYwkKKy5zaXplCWFiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5LC4tYWJpX3Rlc3RfYmFk
X3Vud2luZF90ZW1wb3JhcnkKKworCisKKworLnR5cGUJYWJpX3Rlc3Rfc2V0X2RpcmVjdGlvbl9m
bGFnLCBAZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVjdGlvbl9m
bGFnCisuaGlkZGVuIGFiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2ZsYWcKK2FiaV90
ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2ZsYWc6CisJcHVzaGZxCisJcG9wcQklcmF4CisJ
YW5kcQkkMHg0MDAsJXJheAorCXNocnEJJDEwLCVyYXgKKwljbGQKKwkuYnl0ZQkweGYzLDB4YzMK
Ky5zaXplCWFiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2ZsYWcsLi1hYmlfdGVzdF9n
ZXRfYW5kX2NsZWFyX2RpcmVjdGlvbl9mbGFnCisKKworCisudHlwZQlhYmlfdGVzdF9zZXRfZGly
ZWN0aW9uX2ZsYWcsIEBmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxh
ZworLmhpZGRlbiBhYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWcKK2FiaV90ZXN0X3NldF9kaXJl
Y3Rpb25fZmxhZzoKKwlzdGQKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWFiaV90ZXN0X3NldF9k
aXJlY3Rpb25fZmxhZywuLWFiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxhZworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL3RoaXJkX3BhcnR5L3Npa2UvYXNtL2ZwLXg4Nl82
NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvbGludXgteDg2XzY0L2NyeXB0by90aGlyZF9wYXJ0eS9zaWtlL2FzbS9mcC14ODZfNjQu
UwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YjNjOTI1NDY3ZjZhZTM5NGRlNDVhN2QxNzI1OWM0YjgwNWI0ZTA5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by90aGlyZF9wYXJ0eS9zaWtlL2Fz
bS9mcC14ODZfNjQuUwpAQCAtMCwwICsxLDE4NzAgQEAKKyMgVGhpcyBmaWxlIGlzIGdlbmVyYXRl
ZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKKyMg
c291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpZiBkZWZpbmVkKF9faGFzX2Zl
YXR1cmUpCisjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChP
UEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BFTlNTTF9OT19BU00KKyNlbmRpZgorI2VuZGlmCisK
KyNpZiBkZWZpbmVkKF9feDg2XzY0X18pICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQorI2lm
IGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNsdWRlIDxib3Jpbmdzc2xfcHJlZml4X3N5
bWJvbHNfYXNtLmg+CisjZW5kaWYKKy50ZXh0CQorCisKKy5McDQzNHgyOgorLnF1YWQJMHhGRkZG
RkZGRkZGRkZGRkZFCisucXVhZAkweEZGRkZGRkZGRkZGRkZGRkYKKy5xdWFkCTB4RkI4MkVDRjVD
NUZGRkZGRgorLnF1YWQJMHhGNzhDQjhGMDYyQjE1RDQ3CisucXVhZAkweEQ5RjhCRkFEMDM4QTQw
QUMKKy5xdWFkCTB4MDAwNDY4M0U0RTJFRTY4OAorCisKKy5McDQzNHAxOgorLnF1YWQJMHhGREMx
NzY3QUUzMDAwMDAwCisucXVhZAkweDdCQzY1Qzc4MzE1OEFFQTMKKy5xdWFkCTB4NkNGQzVGRDY4
MUM1MjA1NgorLnF1YWQJMHgwMDAyMzQxRjI3MTc3MzQ0CisKKy5leHRlcm4JT1BFTlNTTF9pYTMy
Y2FwX1AKKy5oaWRkZW4gT1BFTlNTTF9pYTMyY2FwX1AKKy5oaWRkZW4JT1BFTlNTTF9pYTMyY2Fw
X1AKKy5nbG9ibAlzaWtlX2ZwYWRkCisuaGlkZGVuIHNpa2VfZnBhZGQKKy50eXBlCXNpa2VfZnBh
ZGQsQGZ1bmN0aW9uCitzaWtlX2ZwYWRkOgorLmNmaV9zdGFydHByb2MJCisJcHVzaHEJJXIxMgor
LmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4CisuY2ZpX29mZnNldAlyMTIsIC0xNgorCXB1c2hxCSVy
MTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJcjEzLCAtMjQKKwlwdXNo
cQklcjE0CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlfb2Zmc2V0CXIxNCwgLTMyCisK
Kwl4b3JxCSVyYXgsJXJheAorCisJbW92cQkwKCVyZGkpLCVyOAorCWFkZHEJMCglcnNpKSwlcjgK
Kwltb3ZxCTgoJXJkaSksJXI5CisJYWRjcQk4KCVyc2kpLCVyOQorCW1vdnEJMTYoJXJkaSksJXIx
MAorCWFkY3EJMTYoJXJzaSksJXIxMAorCW1vdnEJMjQoJXJkaSksJXIxMQorCWFkY3EJMjQoJXJz
aSksJXIxMQorCW1vdnEJMzIoJXJkaSksJXIxMgorCWFkY3EJMzIoJXJzaSksJXIxMgorCW1vdnEJ
NDAoJXJkaSksJXIxMworCWFkY3EJNDAoJXJzaSksJXIxMworCW1vdnEJNDgoJXJkaSksJXIxNAor
CWFkY3EJNDgoJXJzaSksJXIxNAorCisJbW92cQkuTHA0MzR4MiglcmlwKSwlcmN4CisJc3VicQkl
cmN4LCVyOAorCW1vdnEJOCsuTHA0MzR4MiglcmlwKSwlcmN4CisJc2JicQklcmN4LCVyOQorCXNi
YnEJJXJjeCwlcjEwCisJbW92cQkxNisuTHA0MzR4MiglcmlwKSwlcmN4CisJc2JicQklcmN4LCVy
MTEKKwltb3ZxCTI0Ky5McDQzNHgyKCVyaXApLCVyY3gKKwlzYmJxCSVyY3gsJXIxMgorCW1vdnEJ
MzIrLkxwNDM0eDIoJXJpcCksJXJjeAorCXNiYnEJJXJjeCwlcjEzCisJbW92cQk0MCsuTHA0MzR4
MiglcmlwKSwlcmN4CisJc2JicQklcmN4LCVyMTQKKworCXNiYnEJJDAsJXJheAorCisJbW92cQku
THA0MzR4MiglcmlwKSwlcmRpCisJYW5kcQklcmF4LCVyZGkKKwltb3ZxCTgrLkxwNDM0eDIoJXJp
cCksJXJzaQorCWFuZHEJJXJheCwlcnNpCisJbW92cQkxNisuTHA0MzR4MiglcmlwKSwlcmN4CisJ
YW5kcQklcmF4LCVyY3gKKworCWFkZHEJJXJkaSwlcjgKKwltb3ZxCSVyOCwwKCVyZHgpCisJYWRj
cQklcnNpLCVyOQorCW1vdnEJJXI5LDgoJXJkeCkKKwlhZGNxCSVyc2ksJXIxMAorCW1vdnEJJXIx
MCwxNiglcmR4KQorCWFkY3EJJXJjeCwlcjExCisJbW92cQklcjExLDI0KCVyZHgpCisKKwlzZXRj
CSVjbAorCW1vdnEJMjQrLkxwNDM0eDIoJXJpcCksJXI4CisJYW5kcQklcmF4LCVyOAorCW1vdnEJ
MzIrLkxwNDM0eDIoJXJpcCksJXI5CisJYW5kcQklcmF4LCVyOQorCW1vdnEJNDArLkxwNDM0eDIo
JXJpcCksJXIxMAorCWFuZHEJJXJheCwlcjEwCisJYnRxCSQwLCVyY3gKKworCWFkY3EJJXI4LCVy
MTIKKwltb3ZxCSVyMTIsMzIoJXJkeCkKKwlhZGNxCSVyOSwlcjEzCisJbW92cQklcjEzLDQwKCVy
ZHgpCisJYWRjcQklcjEwLCVyMTQKKwltb3ZxCSVyMTQsNDgoJXJkeCkKKworCXBvcHEJJXIxNAor
LmNmaV9hZGp1c3RfY2ZhX29mZnNldAktOAorCXBvcHEJJXIxMworLmNmaV9hZGp1c3RfY2ZhX29m
ZnNldAktOAorCXBvcHEJJXIxMgorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAktOAorCS5ieXRlCTB4
ZjMsMHhjMworLmNmaV9lbmRwcm9jCQorLmdsb2JsCXNpa2VfY3N3YXBfYXNtCisuaGlkZGVuIHNp
a2VfY3N3YXBfYXNtCisudHlwZQlzaWtlX2Nzd2FwX2FzbSxAZnVuY3Rpb24KK3Npa2VfY3N3YXBf
YXNtOgorCisKKwltb3ZxCSVyZHgsJXhtbTMKKworCisKKworCisJcHNodWZkCSQ2OCwleG1tMywl
eG1tMworCisJbW92ZHF1CTAoJXJkaSksJXhtbTAKKwltb3ZkcXUJMCglcnNpKSwleG1tMQorCW1v
dmRxYQkleG1tMSwleG1tMgorCXB4b3IJJXhtbTAsJXhtbTIKKwlwYW5kCSV4bW0zLCV4bW0yCisJ
cHhvcgkleG1tMiwleG1tMAorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcXUJJXhtbTAsMCglcmRp
KQorCW1vdmRxdQkleG1tMSwwKCVyc2kpCisKKwltb3ZkcXUJMTYoJXJkaSksJXhtbTAKKwltb3Zk
cXUJMTYoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0y
CisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0x
CisJbW92ZHF1CSV4bW0wLDE2KCVyZGkpCisJbW92ZHF1CSV4bW0xLDE2KCVyc2kpCisKKwltb3Zk
cXUJMzIoJXJkaSksJXhtbTAKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEs
JXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIs
JXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDMyKCVyZGkpCisJbW92ZHF1
CSV4bW0xLDMyKCVyc2kpCisKKwltb3ZkcXUJNDgoJXJkaSksJXhtbTAKKwltb3ZkcXUJNDgoJXJz
aSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkl
eG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1
CSV4bW0wLDQ4KCVyZGkpCisJbW92ZHF1CSV4bW0xLDQ4KCVyc2kpCisKKwltb3ZkcXUJNjQoJXJk
aSksJXhtbTAKKwltb3ZkcXUJNjQoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlw
eG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlw
eG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDY0KCVyZGkpCisJbW92ZHF1CSV4bW0xLDY0
KCVyc2kpCisKKwltb3ZkcXUJODAoJXJkaSksJXhtbTAKKwltb3ZkcXUJODAoJXJzaSksJXhtbTEK
Kwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1t
MgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDgw
KCVyZGkpCisJbW92ZHF1CSV4bW0xLDgwKCVyc2kpCisKKwltb3ZkcXUJOTYoJXJkaSksJXhtbTAK
Kwltb3ZkcXUJOTYoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0w
LCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0y
LCV4bW0xCisJbW92ZHF1CSV4bW0wLDk2KCVyZGkpCisJbW92ZHF1CSV4bW0xLDk2KCVyc2kpCisK
Kwltb3ZkcXUJMTEyKCVyZGkpLCV4bW0wCisJbW92ZHF1CTExMiglcnNpKSwleG1tMQorCW1vdmRx
YQkleG1tMSwleG1tMgorCXB4b3IJJXhtbTAsJXhtbTIKKwlwYW5kCSV4bW0zLCV4bW0yCisJcHhv
cgkleG1tMiwleG1tMAorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcXUJJXhtbTAsMTEyKCVyZGkp
CisJbW92ZHF1CSV4bW0xLDExMiglcnNpKQorCisJbW92ZHF1CTEyOCglcmRpKSwleG1tMAorCW1v
dmRxdQkxMjgoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4
bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4
bW0xCisJbW92ZHF1CSV4bW0wLDEyOCglcmRpKQorCW1vdmRxdQkleG1tMSwxMjgoJXJzaSkKKwor
CW1vdmRxdQkxNDQoJXJkaSksJXhtbTAKKwltb3ZkcXUJMTQ0KCVyc2kpLCV4bW0xCisJbW92ZHFh
CSV4bW0xLCV4bW0yCisJcHhvcgkleG1tMCwleG1tMgorCXBhbmQJJXhtbTMsJXhtbTIKKwlweG9y
CSV4bW0yLCV4bW0wCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxdQkleG1tMCwxNDQoJXJkaSkK
Kwltb3ZkcXUJJXhtbTEsMTQ0KCVyc2kpCisKKwltb3ZkcXUJMTYwKCVyZGkpLCV4bW0wCisJbW92
ZHF1CTE2MCglcnNpKSwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tMgorCXB4b3IJJXhtbTAsJXht
bTIKKwlwYW5kCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMAorCXB4b3IJJXhtbTIsJXht
bTEKKwltb3ZkcXUJJXhtbTAsMTYwKCVyZGkpCisJbW92ZHF1CSV4bW0xLDE2MCglcnNpKQorCisJ
bW92ZHF1CTE3NiglcmRpKSwleG1tMAorCW1vdmRxdQkxNzYoJXJzaSksJXhtbTEKKwltb3ZkcWEJ
JXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJ
JXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDE3NiglcmRpKQor
CW1vdmRxdQkleG1tMSwxNzYoJXJzaSkKKworCW1vdmRxdQkxOTIoJXJkaSksJXhtbTAKKwltb3Zk
cXUJMTkyKCVyc2kpLCV4bW0xCisJbW92ZHFhCSV4bW0xLCV4bW0yCisJcHhvcgkleG1tMCwleG1t
MgorCXBhbmQJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0yLCV4bW0wCisJcHhvcgkleG1tMiwleG1t
MQorCW1vdmRxdQkleG1tMCwxOTIoJXJkaSkKKwltb3ZkcXUJJXhtbTEsMTkyKCVyc2kpCisKKwlt
b3ZkcXUJMjA4KCVyZGkpLCV4bW0wCisJbW92ZHF1CTIwOCglcnNpKSwleG1tMQorCW1vdmRxYQkl
eG1tMSwleG1tMgorCXB4b3IJJXhtbTAsJXhtbTIKKwlwYW5kCSV4bW0zLCV4bW0yCisJcHhvcgkl
eG1tMiwleG1tMAorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcXUJJXhtbTAsMjA4KCVyZGkpCisJ
bW92ZHF1CSV4bW0xLDIwOCglcnNpKQorCisJLmJ5dGUJMHhmMywweGMzCisuZ2xvYmwJc2lrZV9m
cHN1YgorLmhpZGRlbiBzaWtlX2Zwc3ViCisudHlwZQlzaWtlX2Zwc3ViLEBmdW5jdGlvbgorc2lr
ZV9mcHN1YjoKKy5jZmlfc3RhcnRwcm9jCQorCXB1c2hxCSVyMTIKKy5jZmlfYWRqdXN0X2NmYV9v
ZmZzZXQJOAorLmNmaV9vZmZzZXQJcjEyLCAtMTYKKwlwdXNocQklcjEzCisuY2ZpX2FkanVzdF9j
ZmFfb2Zmc2V0CTgKKy5jZmlfb2Zmc2V0CXIxMywgLTI0CisJcHVzaHEJJXIxNAorLmNmaV9hZGp1
c3RfY2ZhX29mZnNldAk4CisuY2ZpX29mZnNldAlyMTQsIC0zMgorCisJeG9ycQklcmF4LCVyYXgK
KworCW1vdnEJMCglcmRpKSwlcjgKKwlzdWJxCTAoJXJzaSksJXI4CisJbW92cQk4KCVyZGkpLCVy
OQorCXNiYnEJOCglcnNpKSwlcjkKKwltb3ZxCTE2KCVyZGkpLCVyMTAKKwlzYmJxCTE2KCVyc2kp
LCVyMTAKKwltb3ZxCTI0KCVyZGkpLCVyMTEKKwlzYmJxCTI0KCVyc2kpLCVyMTEKKwltb3ZxCTMy
KCVyZGkpLCVyMTIKKwlzYmJxCTMyKCVyc2kpLCVyMTIKKwltb3ZxCTQwKCVyZGkpLCVyMTMKKwlz
YmJxCTQwKCVyc2kpLCVyMTMKKwltb3ZxCTQ4KCVyZGkpLCVyMTQKKwlzYmJxCTQ4KCVyc2kpLCVy
MTQKKworCXNiYnEJJDB4MCwlcmF4CisKKwltb3ZxCS5McDQzNHgyKCVyaXApLCVyZGkKKwlhbmRx
CSVyYXgsJXJkaQorCW1vdnEJOCsuTHA0MzR4MiglcmlwKSwlcnNpCisJYW5kcQklcmF4LCVyc2kK
Kwltb3ZxCTE2Ky5McDQzNHgyKCVyaXApLCVyY3gKKwlhbmRxCSVyYXgsJXJjeAorCisJYWRkcQkl
cmRpLCVyOAorCW1vdnEJJXI4LDAoJXJkeCkKKwlhZGNxCSVyc2ksJXI5CisJbW92cQklcjksOCgl
cmR4KQorCWFkY3EJJXJzaSwlcjEwCisJbW92cQklcjEwLDE2KCVyZHgpCisJYWRjcQklcmN4LCVy
MTEKKwltb3ZxCSVyMTEsMjQoJXJkeCkKKworCXNldGMJJWNsCisJbW92cQkyNCsuTHA0MzR4Migl
cmlwKSwlcjgKKwlhbmRxCSVyYXgsJXI4CisJbW92cQkzMisuTHA0MzR4MiglcmlwKSwlcjkKKwlh
bmRxCSVyYXgsJXI5CisJbW92cQk0MCsuTHA0MzR4MiglcmlwKSwlcjEwCisJYW5kcQklcmF4LCVy
MTAKKwlidHEJJDB4MCwlcmN4CisKKwlhZGNxCSVyOCwlcjEyCisJYWRjcQklcjksJXIxMworCWFk
Y3EJJXIxMCwlcjE0CisJbW92cQklcjEyLDMyKCVyZHgpCisJbW92cQklcjEzLDQwKCVyZHgpCisJ
bW92cQklcjE0LDQ4KCVyZHgpCisKKwlwb3BxCSVyMTQKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJ
LTgKKwlwb3BxCSVyMTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgKKwlwb3BxCSVyMTIKKy5j
ZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgKKwkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkK
Ky5nbG9ibAlzaWtlX21wYWRkX2FzbQorLmhpZGRlbiBzaWtlX21wYWRkX2FzbQorLnR5cGUJc2lr
ZV9tcGFkZF9hc20sQGZ1bmN0aW9uCitzaWtlX21wYWRkX2FzbToKKy5jZmlfc3RhcnRwcm9jCQor
CW1vdnEJMCglcmRpKSwlcjg7CisJbW92cQk4KCVyZGkpLCVyOQorCW1vdnEJMTYoJXJkaSksJXIx
MAorCW1vdnEJMjQoJXJkaSksJXIxMQorCW1vdnEJMzIoJXJkaSksJXJjeAorCWFkZHEJMCglcnNp
KSwlcjgKKwlhZGNxCTgoJXJzaSksJXI5CisJYWRjcQkxNiglcnNpKSwlcjEwCisJYWRjcQkyNCgl
cnNpKSwlcjExCisJYWRjcQkzMiglcnNpKSwlcmN4CisJbW92cQklcjgsMCglcmR4KQorCW1vdnEJ
JXI5LDgoJXJkeCkKKwltb3ZxCSVyMTAsMTYoJXJkeCkKKwltb3ZxCSVyMTEsMjQoJXJkeCkKKwlt
b3ZxCSVyY3gsMzIoJXJkeCkKKworCW1vdnEJNDAoJXJkaSksJXI4CisJbW92cQk0OCglcmRpKSwl
cjkKKwlhZGNxCTQwKCVyc2kpLCVyOAorCWFkY3EJNDgoJXJzaSksJXI5CisJbW92cQklcjgsNDAo
JXJkeCkKKwltb3ZxCSVyOSw0OCglcmR4KQorCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9j
CQorLmdsb2JsCXNpa2VfbXBzdWJ4Ml9hc20KKy5oaWRkZW4gc2lrZV9tcHN1YngyX2FzbQorLnR5
cGUJc2lrZV9tcHN1YngyX2FzbSxAZnVuY3Rpb24KK3Npa2VfbXBzdWJ4Ml9hc206CisuY2ZpX3N0
YXJ0cHJvYwkKKwl4b3JxCSVyYXgsJXJheAorCisJbW92cQkwKCVyZGkpLCVyOAorCW1vdnEJOCgl
cmRpKSwlcjkKKwltb3ZxCTE2KCVyZGkpLCVyMTAKKwltb3ZxCTI0KCVyZGkpLCVyMTEKKwltb3Zx
CTMyKCVyZGkpLCVyY3gKKwlzdWJxCTAoJXJzaSksJXI4CisJc2JicQk4KCVyc2kpLCVyOQorCXNi
YnEJMTYoJXJzaSksJXIxMAorCXNiYnEJMjQoJXJzaSksJXIxMQorCXNiYnEJMzIoJXJzaSksJXJj
eAorCW1vdnEJJXI4LDAoJXJkeCkKKwltb3ZxCSVyOSw4KCVyZHgpCisJbW92cQklcjEwLDE2KCVy
ZHgpCisJbW92cQklcjExLDI0KCVyZHgpCisJbW92cQklcmN4LDMyKCVyZHgpCisKKwltb3ZxCTQw
KCVyZGkpLCVyOAorCW1vdnEJNDgoJXJkaSksJXI5CisJbW92cQk1NiglcmRpKSwlcjEwCisJbW92
cQk2NCglcmRpKSwlcjExCisJbW92cQk3MiglcmRpKSwlcmN4CisJc2JicQk0MCglcnNpKSwlcjgK
KwlzYmJxCTQ4KCVyc2kpLCVyOQorCXNiYnEJNTYoJXJzaSksJXIxMAorCXNiYnEJNjQoJXJzaSks
JXIxMQorCXNiYnEJNzIoJXJzaSksJXJjeAorCW1vdnEJJXI4LDQwKCVyZHgpCisJbW92cQklcjks
NDgoJXJkeCkKKwltb3ZxCSVyMTAsNTYoJXJkeCkKKwltb3ZxCSVyMTEsNjQoJXJkeCkKKwltb3Zx
CSVyY3gsNzIoJXJkeCkKKworCW1vdnEJODAoJXJkaSksJXI4CisJbW92cQk4OCglcmRpKSwlcjkK
Kwltb3ZxCTk2KCVyZGkpLCVyMTAKKwltb3ZxCTEwNCglcmRpKSwlcjExCisJc2JicQk4MCglcnNp
KSwlcjgKKwlzYmJxCTg4KCVyc2kpLCVyOQorCXNiYnEJOTYoJXJzaSksJXIxMAorCXNiYnEJMTA0
KCVyc2kpLCVyMTEKKwlzYmJxCSQweDAsJXJheAorCW1vdnEJJXI4LDgwKCVyZHgpCisJbW92cQkl
cjksODgoJXJkeCkKKwltb3ZxCSVyMTAsOTYoJXJkeCkKKwltb3ZxCSVyMTEsMTA0KCVyZHgpCisJ
LmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCisuZ2xvYmwJc2lrZV9tcGRibHN1YngyX2Fz
bQorLmhpZGRlbiBzaWtlX21wZGJsc3VieDJfYXNtCisudHlwZQlzaWtlX21wZGJsc3VieDJfYXNt
LEBmdW5jdGlvbgorc2lrZV9tcGRibHN1YngyX2FzbToKKy5jZmlfc3RhcnRwcm9jCQorCXB1c2hx
CSVyMTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJcjEyLCAtMTYKKwlw
dXNocQklcjEzCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlfb2Zmc2V0CXIxMywgLTI0
CisKKwl4b3JxCSVyYXgsJXJheAorCisKKwltb3ZxCTAoJXJkeCksJXI4CisJbW92cQk4KCVyZHgp
LCVyOQorCW1vdnEJMTYoJXJkeCksJXIxMAorCW1vdnEJMjQoJXJkeCksJXIxMQorCW1vdnEJMzIo
JXJkeCksJXIxMgorCW1vdnEJNDAoJXJkeCksJXIxMworCW1vdnEJNDgoJXJkeCksJXJjeAorCXN1
YnEJMCglcmRpKSwlcjgKKwlzYmJxCTgoJXJkaSksJXI5CisJc2JicQkxNiglcmRpKSwlcjEwCisJ
c2JicQkyNCglcmRpKSwlcjExCisJc2JicQkzMiglcmRpKSwlcjEyCisJc2JicQk0MCglcmRpKSwl
cjEzCisJc2JicQk0OCglcmRpKSwlcmN4CisJYWRjcQkkMHgwLCVyYXgKKworCisJc3VicQkwKCVy
c2kpLCVyOAorCXNiYnEJOCglcnNpKSwlcjkKKwlzYmJxCTE2KCVyc2kpLCVyMTAKKwlzYmJxCTI0
KCVyc2kpLCVyMTEKKwlzYmJxCTMyKCVyc2kpLCVyMTIKKwlzYmJxCTQwKCVyc2kpLCVyMTMKKwlz
YmJxCTQ4KCVyc2kpLCVyY3gKKwlhZGNxCSQweDAsJXJheAorCisKKwltb3ZxCSVyOCwwKCVyZHgp
CisJbW92cQklcjksOCglcmR4KQorCW1vdnEJJXIxMCwxNiglcmR4KQorCW1vdnEJJXIxMSwyNCgl
cmR4KQorCW1vdnEJJXIxMiwzMiglcmR4KQorCW1vdnEJJXIxMyw0MCglcmR4KQorCW1vdnEJJXJj
eCw0OCglcmR4KQorCisKKwltb3ZxCTU2KCVyZHgpLCVyOAorCW1vdnEJNjQoJXJkeCksJXI5CisJ
bW92cQk3MiglcmR4KSwlcjEwCisJbW92cQk4MCglcmR4KSwlcjExCisJbW92cQk4OCglcmR4KSwl
cjEyCisJbW92cQk5NiglcmR4KSwlcjEzCisJbW92cQkxMDQoJXJkeCksJXJjeAorCisJc3VicQkl
cmF4LCVyOAorCXNiYnEJNTYoJXJkaSksJXI4CisJc2JicQk2NCglcmRpKSwlcjkKKwlzYmJxCTcy
KCVyZGkpLCVyMTAKKwlzYmJxCTgwKCVyZGkpLCVyMTEKKwlzYmJxCTg4KCVyZGkpLCVyMTIKKwlz
YmJxCTk2KCVyZGkpLCVyMTMKKwlzYmJxCTEwNCglcmRpKSwlcmN4CisKKworCXN1YnEJNTYoJXJz
aSksJXI4CisJc2JicQk2NCglcnNpKSwlcjkKKwlzYmJxCTcyKCVyc2kpLCVyMTAKKwlzYmJxCTgw
KCVyc2kpLCVyMTEKKwlzYmJxCTg4KCVyc2kpLCVyMTIKKwlzYmJxCTk2KCVyc2kpLCVyMTMKKwlz
YmJxCTEwNCglcnNpKSwlcmN4CisKKworCW1vdnEJJXI4LDU2KCVyZHgpCisJbW92cQklcjksNjQo
JXJkeCkKKwltb3ZxCSVyMTAsNzIoJXJkeCkKKwltb3ZxCSVyMTEsODAoJXJkeCkKKwltb3ZxCSVy
MTIsODgoJXJkeCkKKwltb3ZxCSVyMTMsOTYoJXJkeCkKKwltb3ZxCSVyY3gsMTA0KCVyZHgpCisK
Kwlwb3BxCSVyMTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgKKwlwb3BxCSVyMTIKKy5jZmlf
YWRqdXN0X2NmYV9vZmZzZXQJLTgKKwkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKKwor
LkxyZGNfYmR3OgorLmNmaV9zdGFydHByb2MJCisKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJMzIK
Ky5jZmlfb2Zmc2V0CXIxMiwgLTE2CisuY2ZpX29mZnNldAlyMTMsIC0yNAorLmNmaV9vZmZzZXQJ
cjE0LCAtMzIKKy5jZmlfb2Zmc2V0CXIxNSwgLTQwCisKKwl4b3JxCSVyYXgsJXJheAorCW1vdnEJ
MCswKCVyZGkpLCVyZHgKKwltdWx4cQkwKy5McDQzNHAxKCVyaXApLCVyOCwlcjkKKwltdWx4cQk4
Ky5McDQzNHAxKCVyaXApLCVyMTIsJXIxMAorCW11bHhxCTE2Ky5McDQzNHAxKCVyaXApLCVyMTMs
JXIxMQorCisJYWRveHEJJXIxMiwlcjkKKwlhZG94cQklcjEzLCVyMTAKKworCW11bHhxCTI0Ky5M
cDQzNHAxKCVyaXApLCVyMTMsJXIxMgorCWFkb3hxCSVyMTMsJXIxMQorCWFkb3hxCSVyYXgsJXIx
MgorCisJeG9ycQklcmF4LCVyYXgKKwltb3ZxCTArOCglcmRpKSwlcmR4CisJbXVseHEJMCsuTHA0
MzRwMSglcmlwKSwlcjEzLCVyY3gKKwlhZGN4cQklcjEzLCVyOQorCWFkY3hxCSVyY3gsJXIxMAor
CisJbXVseHEJOCsuTHA0MzRwMSglcmlwKSwlcmN4LCVyMTMKKwlhZGN4cQklcjEzLCVyMTEKKwlh
ZG94cQklcmN4LCVyMTAKKworCW11bHhxCTE2Ky5McDQzNHAxKCVyaXApLCVyY3gsJXIxMworCWFk
Y3hxCSVyMTMsJXIxMgorCWFkb3hxCSVyY3gsJXIxMQorCisJbXVseHEJMjQrLkxwNDM0cDEoJXJp
cCksJXJjeCwlcjEzCisJYWRjeHEJJXJheCwlcjEzCisJYWRveHEJJXJjeCwlcjEyCisJYWRveHEJ
JXJheCwlcjEzCisKKwl4b3JxCSVyY3gsJXJjeAorCWFkZHEJMjQoJXJkaSksJXI4CisJYWRjcQkz
MiglcmRpKSwlcjkKKwlhZGNxCTQwKCVyZGkpLCVyMTAKKwlhZGNxCTQ4KCVyZGkpLCVyMTEKKwlh
ZGNxCTU2KCVyZGkpLCVyMTIKKwlhZGNxCTY0KCVyZGkpLCVyMTMKKwlhZGNxCTcyKCVyZGkpLCVy
Y3gKKwltb3ZxCSVyOCwyNCglcmRpKQorCW1vdnEJJXI5LDMyKCVyZGkpCisJbW92cQklcjEwLDQw
KCVyZGkpCisJbW92cQklcjExLDQ4KCVyZGkpCisJbW92cQklcjEyLDU2KCVyZGkpCisJbW92cQkl
cjEzLDY0KCVyZGkpCisJbW92cQklcmN4LDcyKCVyZGkpCisJbW92cQk4MCglcmRpKSwlcjgKKwlt
b3ZxCTg4KCVyZGkpLCVyOQorCW1vdnEJOTYoJXJkaSksJXIxMAorCW1vdnEJMTA0KCVyZGkpLCVy
MTEKKwlhZGNxCSQweDAsJXI4CisJYWRjcQkkMHgwLCVyOQorCWFkY3EJJDB4MCwlcjEwCisJYWRj
cQkkMHgwLCVyMTEKKwltb3ZxCSVyOCw4MCglcmRpKQorCW1vdnEJJXI5LDg4KCVyZGkpCisJbW92
cQklcjEwLDk2KCVyZGkpCisJbW92cQklcjExLDEwNCglcmRpKQorCisJeG9ycQklcmF4LCVyYXgK
Kwltb3ZxCTE2KzAoJXJkaSksJXJkeAorCW11bHhxCTArLkxwNDM0cDEoJXJpcCksJXI4LCVyOQor
CW11bHhxCTgrLkxwNDM0cDEoJXJpcCksJXIxMiwlcjEwCisJbXVseHEJMTYrLkxwNDM0cDEoJXJp
cCksJXIxMywlcjExCisKKwlhZG94cQklcjEyLCVyOQorCWFkb3hxCSVyMTMsJXIxMAorCisJbXVs
eHEJMjQrLkxwNDM0cDEoJXJpcCksJXIxMywlcjEyCisJYWRveHEJJXIxMywlcjExCisJYWRveHEJ
JXJheCwlcjEyCisKKwl4b3JxCSVyYXgsJXJheAorCW1vdnEJMTYrOCglcmRpKSwlcmR4CisJbXVs
eHEJMCsuTHA0MzRwMSglcmlwKSwlcjEzLCVyY3gKKwlhZGN4cQklcjEzLCVyOQorCWFkY3hxCSVy
Y3gsJXIxMAorCisJbXVseHEJOCsuTHA0MzRwMSglcmlwKSwlcmN4LCVyMTMKKwlhZGN4cQklcjEz
LCVyMTEKKwlhZG94cQklcmN4LCVyMTAKKworCW11bHhxCTE2Ky5McDQzNHAxKCVyaXApLCVyY3gs
JXIxMworCWFkY3hxCSVyMTMsJXIxMgorCWFkb3hxCSVyY3gsJXIxMQorCisJbXVseHEJMjQrLkxw
NDM0cDEoJXJpcCksJXJjeCwlcjEzCisJYWRjeHEJJXJheCwlcjEzCisJYWRveHEJJXJjeCwlcjEy
CisJYWRveHEJJXJheCwlcjEzCisKKwl4b3JxCSVyY3gsJXJjeAorCWFkZHEJNDAoJXJkaSksJXI4
CisJYWRjcQk0OCglcmRpKSwlcjkKKwlhZGNxCTU2KCVyZGkpLCVyMTAKKwlhZGNxCTY0KCVyZGkp
LCVyMTEKKwlhZGNxCTcyKCVyZGkpLCVyMTIKKwlhZGNxCTgwKCVyZGkpLCVyMTMKKwlhZGNxCTg4
KCVyZGkpLCVyY3gKKwltb3ZxCSVyOCw0MCglcmRpKQorCW1vdnEJJXI5LDQ4KCVyZGkpCisJbW92
cQklcjEwLDU2KCVyZGkpCisJbW92cQklcjExLDY0KCVyZGkpCisJbW92cQklcjEyLDcyKCVyZGkp
CisJbW92cQklcjEzLDgwKCVyZGkpCisJbW92cQklcmN4LDg4KCVyZGkpCisJbW92cQk5NiglcmRp
KSwlcjgKKwltb3ZxCTEwNCglcmRpKSwlcjkKKwlhZGNxCSQweDAsJXI4CisJYWRjcQkkMHgwLCVy
OQorCW1vdnEJJXI4LDk2KCVyZGkpCisJbW92cQklcjksMTA0KCVyZGkpCisKKwl4b3JxCSVyYXgs
JXJheAorCW1vdnEJMzIrMCglcmRpKSwlcmR4CisJbXVseHEJMCsuTHA0MzRwMSglcmlwKSwlcjgs
JXI5CisJbXVseHEJOCsuTHA0MzRwMSglcmlwKSwlcjEyLCVyMTAKKwltdWx4cQkxNisuTHA0MzRw
MSglcmlwKSwlcjEzLCVyMTEKKworCWFkb3hxCSVyMTIsJXI5CisJYWRveHEJJXIxMywlcjEwCisK
KwltdWx4cQkyNCsuTHA0MzRwMSglcmlwKSwlcjEzLCVyMTIKKwlhZG94cQklcjEzLCVyMTEKKwlh
ZG94cQklcmF4LCVyMTIKKworCXhvcnEJJXJheCwlcmF4CisJbW92cQkzMis4KCVyZGkpLCVyZHgK
KwltdWx4cQkwKy5McDQzNHAxKCVyaXApLCVyMTMsJXJjeAorCWFkY3hxCSVyMTMsJXI5CisJYWRj
eHEJJXJjeCwlcjEwCisKKwltdWx4cQk4Ky5McDQzNHAxKCVyaXApLCVyY3gsJXIxMworCWFkY3hx
CSVyMTMsJXIxMQorCWFkb3hxCSVyY3gsJXIxMAorCisJbXVseHEJMTYrLkxwNDM0cDEoJXJpcCks
JXJjeCwlcjEzCisJYWRjeHEJJXIxMywlcjEyCisJYWRveHEJJXJjeCwlcjExCisKKwltdWx4cQky
NCsuTHA0MzRwMSglcmlwKSwlcmN4LCVyMTMKKwlhZGN4cQklcmF4LCVyMTMKKwlhZG94cQklcmN4
LCVyMTIKKwlhZG94cQklcmF4LCVyMTMKKworCXhvcnEJJXJjeCwlcmN4CisJYWRkcQk1NiglcmRp
KSwlcjgKKwlhZGNxCTY0KCVyZGkpLCVyOQorCWFkY3EJNzIoJXJkaSksJXIxMAorCWFkY3EJODAo
JXJkaSksJXIxMQorCWFkY3EJODgoJXJkaSksJXIxMgorCWFkY3EJOTYoJXJkaSksJXIxMworCWFk
Y3EJMTA0KCVyZGkpLCVyY3gKKwltb3ZxCSVyOCwwKCVyc2kpCisJbW92cQklcjksOCglcnNpKQor
CW1vdnEJJXIxMCw3MiglcmRpKQorCW1vdnEJJXIxMSw4MCglcmRpKQorCW1vdnEJJXIxMiw4OCgl
cmRpKQorCW1vdnEJJXIxMyw5NiglcmRpKQorCW1vdnEJJXJjeCwxMDQoJXJkaSkKKworCXhvcnEJ
JXJheCwlcmF4CisJbW92cQk0OCglcmRpKSwlcmR4CisJbXVseHEJMCsuTHA0MzRwMSglcmlwKSwl
cjgsJXI5CisJbXVseHEJOCsuTHA0MzRwMSglcmlwKSwlcjEyLCVyMTAKKwltdWx4cQkxNisuTHA0
MzRwMSglcmlwKSwlcjEzLCVyMTEKKworCWFkb3hxCSVyMTIsJXI5CisJYWRveHEJJXIxMywlcjEw
CisKKwltdWx4cQkyNCsuTHA0MzRwMSglcmlwKSwlcjEzLCVyMTIKKwlhZG94cQklcjEzLCVyMTEK
KwlhZG94cQklcmF4LCVyMTIKKworCWFkZHEJNzIoJXJkaSksJXI4CisJYWRjcQk4MCglcmRpKSwl
cjkKKwlhZGNxCTg4KCVyZGkpLCVyMTAKKwlhZGNxCTk2KCVyZGkpLCVyMTEKKwlhZGNxCTEwNCgl
cmRpKSwlcjEyCisJbW92cQklcjgsMTYoJXJzaSkKKwltb3ZxCSVyOSwyNCglcnNpKQorCW1vdnEJ
JXIxMCwzMiglcnNpKQorCW1vdnEJJXIxMSw0MCglcnNpKQorCW1vdnEJJXIxMiw0OCglcnNpKQor
CisKKwlwb3BxCSVyMTUKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgKKy5jZmlfc2FtZV92YWx1
ZQlyMTUKKwlwb3BxCSVyMTQKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgKKy5jZmlfc2FtZV92
YWx1ZQlyMTQKKwlwb3BxCSVyMTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgKKy5jZmlfc2Ft
ZV92YWx1ZQlyMTMKKwlwb3BxCSVyMTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJLTgKKy5jZmlf
c2FtZV92YWx1ZQlyMTIKKwkuYnl0ZQkweGYzLDB4YzMKKy5jZmlfZW5kcHJvYwkKKy5nbG9ibAlz
aWtlX2ZwcmRjCisuaGlkZGVuIHNpa2VfZnByZGMKKy50eXBlCXNpa2VfZnByZGMsQGZ1bmN0aW9u
CitzaWtlX2ZwcmRjOgorLmNmaV9zdGFydHByb2MJCisJcHVzaHEJJXIxMgorLmNmaV9hZGp1c3Rf
Y2ZhX29mZnNldAk4CisuY2ZpX29mZnNldAlyMTIsIC0xNgorCXB1c2hxCSVyMTMKKy5jZmlfYWRq
dXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJcjEzLCAtMjQKKwlwdXNocQklcjE0CisuY2Zp
X2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlfb2Zmc2V0CXIxNCwgLTMyCisJcHVzaHEJJXIxNQor
LmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4CisuY2ZpX29mZnNldAlyMTUsIC00MAorCisKKworCWxl
YXEJT1BFTlNTTF9pYTMyY2FwX1AoJXJpcCksJXJjeAorCW1vdnEJOCglcmN4KSwlcmN4CisJYW5k
bAkkMHg4MDEwMCwlZWN4CisJY21wbAkkMHg4MDEwMCwlZWN4CisJamUJLkxyZGNfYmR3CisKKwor
CisKKwltb3ZxCTArMCglcmRpKSwlcjE0CisJbW92cQkwKy5McDQzNHAxKCVyaXApLCVyYXgKKwlt
dWxxCSVyMTQKKwl4b3JxCSVyMTAsJXIxMAorCW1vdnEJJXJheCwlcjgKKwltb3ZxCSVyZHgsJXI5
CisKKworCW1vdnEJOCsuTHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQklcjE0CisJeG9ycQklcjEx
LCVyMTEKKwlhZGRxCSVyYXgsJXI5CisJYWRjcQklcmR4LCVyMTAKKworCisJbW92cQkwKzgoJXJk
aSksJXJjeAorCW1vdnEJMCsuTHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQklcmN4CisJYWRkcQkl
cmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgwLCVyMTEKKworCisJeG9ycQklcjEy
LCVyMTIKKwltb3ZxCTE2Ky5McDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTQKKwlhZGRxCSVy
YXgsJXIxMAorCWFkY3EJJXJkeCwlcjExCisJYWRjcQkkMHgwLCVyMTIKKworCisJbW92cQk4Ky5M
cDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyY3gKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJk
eCwlcjExCisJYWRjcQkkMHgwLCVyMTIKKworCisJbW92cQkyNCsuTHA0MzRwMSglcmlwKSwlcmF4
CisJbXVscQklcjE0CisJeG9ycQklcjEzLCVyMTMKKwlhZGRxCSVyYXgsJXIxMQorCWFkY3EJJXJk
eCwlcjEyCisJYWRjcQkkMHgwLCVyMTMKKworCisJbW92cQkxNisuTHA0MzRwMSglcmlwKSwlcmF4
CisJbXVscQklcmN4CisJYWRkcQklcmF4LCVyMTEKKwlhZGNxCSVyZHgsJXIxMgorCWFkY3EJJDB4
MCwlcjEzCisKKworCW1vdnEJMjQrLkxwNDM0cDEoJXJpcCksJXJheAorCW11bHEJJXJjeAorCWFk
ZHEJJXJheCwlcjEyCisJYWRjcQklcmR4LCVyMTMKKworCisJeG9ycQklcmN4LCVyY3gKKwlhZGRx
CTI0KCVyZGkpLCVyOAorCWFkY3EJMzIoJXJkaSksJXI5CisJYWRjcQk0MCglcmRpKSwlcjEwCisJ
YWRjcQk0OCglcmRpKSwlcjExCisJYWRjcQk1NiglcmRpKSwlcjEyCisJYWRjcQk2NCglcmRpKSwl
cjEzCisJYWRjcQk3MiglcmRpKSwlcmN4CisJbW92cQklcjgsMjQoJXJkaSkKKwltb3ZxCSVyOSwz
MiglcmRpKQorCW1vdnEJJXIxMCw0MCglcmRpKQorCW1vdnEJJXIxMSw0OCglcmRpKQorCW1vdnEJ
JXIxMiw1NiglcmRpKQorCW1vdnEJJXIxMyw2NCglcmRpKQorCW1vdnEJJXJjeCw3MiglcmRpKQor
CW1vdnEJODAoJXJkaSksJXI4CisJbW92cQk4OCglcmRpKSwlcjkKKwltb3ZxCTk2KCVyZGkpLCVy
MTAKKwltb3ZxCTEwNCglcmRpKSwlcjExCisJYWRjcQkkMHgwLCVyOAorCWFkY3EJJDB4MCwlcjkK
KwlhZGNxCSQweDAsJXIxMAorCWFkY3EJJDB4MCwlcjExCisJbW92cQklcjgsODAoJXJkaSkKKwlt
b3ZxCSVyOSw4OCglcmRpKQorCW1vdnEJJXIxMCw5NiglcmRpKQorCW1vdnEJJXIxMSwxMDQoJXJk
aSkKKworCisJbW92cQkxNiswKCVyZGkpLCVyMTQKKwltb3ZxCTArLkxwNDM0cDEoJXJpcCksJXJh
eAorCW11bHEJJXIxNAorCXhvcnEJJXIxMCwlcjEwCisJbW92cQklcmF4LCVyOAorCW1vdnEJJXJk
eCwlcjkKKworCisJbW92cQk4Ky5McDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTQKKwl4b3Jx
CSVyMTEsJXIxMQorCWFkZHEJJXJheCwlcjkKKwlhZGNxCSVyZHgsJXIxMAorCisKKwltb3ZxCTE2
KzgoJXJkaSksJXJjeAorCW1vdnEJMCsuTHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQklcmN4CisJ
YWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgwLCVyMTEKKworCisJeG9y
cQklcjEyLCVyMTIKKwltb3ZxCTE2Ky5McDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTQKKwlh
ZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjExCisJYWRjcQkkMHgwLCVyMTIKKworCisJbW92
cQk4Ky5McDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyY3gKKwlhZGRxCSVyYXgsJXIxMAorCWFk
Y3EJJXJkeCwlcjExCisJYWRjcQkkMHgwLCVyMTIKKworCisJbW92cQkyNCsuTHA0MzRwMSglcmlw
KSwlcmF4CisJbXVscQklcjE0CisJeG9ycQklcjEzLCVyMTMKKwlhZGRxCSVyYXgsJXIxMQorCWFk
Y3EJJXJkeCwlcjEyCisJYWRjcQkkMHgwLCVyMTMKKworCisJbW92cQkxNisuTHA0MzRwMSglcmlw
KSwlcmF4CisJbXVscQklcmN4CisJYWRkcQklcmF4LCVyMTEKKwlhZGNxCSVyZHgsJXIxMgorCWFk
Y3EJJDB4MCwlcjEzCisKKworCW1vdnEJMjQrLkxwNDM0cDEoJXJpcCksJXJheAorCW11bHEJJXJj
eAorCWFkZHEJJXJheCwlcjEyCisJYWRjcQklcmR4LCVyMTMKKworCisJeG9ycQklcmN4LCVyY3gK
KwlhZGRxCTQwKCVyZGkpLCVyOAorCWFkY3EJNDgoJXJkaSksJXI5CisJYWRjcQk1NiglcmRpKSwl
cjEwCisJYWRjcQk2NCglcmRpKSwlcjExCisJYWRjcQk3MiglcmRpKSwlcjEyCisJYWRjcQk4MCgl
cmRpKSwlcjEzCisJYWRjcQk4OCglcmRpKSwlcmN4CisJbW92cQklcjgsNDAoJXJkaSkKKwltb3Zx
CSVyOSw0OCglcmRpKQorCW1vdnEJJXIxMCw1NiglcmRpKQorCW1vdnEJJXIxMSw2NCglcmRpKQor
CW1vdnEJJXIxMiw3MiglcmRpKQorCW1vdnEJJXIxMyw4MCglcmRpKQorCW1vdnEJJXJjeCw4OCgl
cmRpKQorCW1vdnEJOTYoJXJkaSksJXI4CisJbW92cQkxMDQoJXJkaSksJXI5CisJYWRjcQkkMHgw
LCVyOAorCWFkY3EJJDB4MCwlcjkKKwltb3ZxCSVyOCw5NiglcmRpKQorCW1vdnEJJXI5LDEwNCgl
cmRpKQorCisKKwltb3ZxCTMyKzAoJXJkaSksJXIxNAorCW1vdnEJMCsuTHA0MzRwMSglcmlwKSwl
cmF4CisJbXVscQklcjE0CisJeG9ycQklcjEwLCVyMTAKKwltb3ZxCSVyYXgsJXI4CisJbW92cQkl
cmR4LCVyOQorCisKKwltb3ZxCTgrLkxwNDM0cDEoJXJpcCksJXJheAorCW11bHEJJXIxNAorCXhv
cnEJJXIxMSwlcjExCisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisKKworCW1vdnEJ
MzIrOCglcmRpKSwlcmN4CisJbW92cQkwKy5McDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyY3gK
KwlhZGRxCSVyYXgsJXI5CisJYWRjcQklcmR4LCVyMTAKKwlhZGNxCSQweDAsJXIxMQorCisKKwl4
b3JxCSVyMTIsJXIxMgorCW1vdnEJMTYrLkxwNDM0cDEoJXJpcCksJXJheAorCW11bHEJJXIxNAor
CWFkZHEJJXJheCwlcjEwCisJYWRjcQklcmR4LCVyMTEKKwlhZGNxCSQweDAsJXIxMgorCisKKwlt
b3ZxCTgrLkxwNDM0cDEoJXJpcCksJXJheAorCW11bHEJJXJjeAorCWFkZHEJJXJheCwlcjEwCisJ
YWRjcQklcmR4LCVyMTEKKwlhZGNxCSQweDAsJXIxMgorCisKKwltb3ZxCTI0Ky5McDQzNHAxKCVy
aXApLCVyYXgKKwltdWxxCSVyMTQKKwl4b3JxCSVyMTMsJXIxMworCWFkZHEJJXJheCwlcjExCisJ
YWRjcQklcmR4LCVyMTIKKwlhZGNxCSQweDAsJXIxMworCisKKwltb3ZxCTE2Ky5McDQzNHAxKCVy
aXApLCVyYXgKKwltdWxxCSVyY3gKKwlhZGRxCSVyYXgsJXIxMQorCWFkY3EJJXJkeCwlcjEyCisJ
YWRjcQkkMHgwLCVyMTMKKworCisJbW92cQkyNCsuTHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQkl
cmN4CisJYWRkcQklcmF4LCVyMTIKKwlhZGNxCSVyZHgsJXIxMworCisKKwl4b3JxCSVyY3gsJXJj
eAorCWFkZHEJNTYoJXJkaSksJXI4CisJYWRjcQk2NCglcmRpKSwlcjkKKwlhZGNxCTcyKCVyZGkp
LCVyMTAKKwlhZGNxCTgwKCVyZGkpLCVyMTEKKwlhZGNxCTg4KCVyZGkpLCVyMTIKKwlhZGNxCTk2
KCVyZGkpLCVyMTMKKwlhZGNxCTEwNCglcmRpKSwlcmN4CisJbW92cQklcjgsMCglcnNpKQorCW1v
dnEJJXI5LDgoJXJzaSkKKwltb3ZxCSVyMTAsNzIoJXJkaSkKKwltb3ZxCSVyMTEsODAoJXJkaSkK
Kwltb3ZxCSVyMTIsODgoJXJkaSkKKwltb3ZxCSVyMTMsOTYoJXJkaSkKKwltb3ZxCSVyY3gsMTA0
KCVyZGkpCisKKwltb3ZxCTQ4KCVyZGkpLCVyMTMKKworCXhvcnEJJXIxMCwlcjEwCisJbW92cQkw
Ky5McDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTMKKwltb3ZxCSVyYXgsJXI4CisJbW92cQkl
cmR4LCVyOQorCisJeG9ycQklcjExLCVyMTEKKwltb3ZxCTgrLkxwNDM0cDEoJXJpcCksJXJheAor
CW11bHEJJXIxMworCWFkZHEJJXJheCwlcjkKKwlhZGNxCSVyZHgsJXIxMAorCisJeG9ycQklcjEy
LCVyMTIKKwltb3ZxCTE2Ky5McDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTMKKwlhZGRxCSVy
YXgsJXIxMAorCWFkY3EJJXJkeCwlcjExCisKKwltb3ZxCTI0Ky5McDQzNHAxKCVyaXApLCVyYXgK
KwltdWxxCSVyMTMKKwlhZGRxCSVyYXgsJXIxMQorCWFkY3EJJXJkeCwlcjEyCisKKwlhZGRxCTcy
KCVyZGkpLCVyOAorCWFkY3EJODAoJXJkaSksJXI5CisJYWRjcQk4OCglcmRpKSwlcjEwCisJYWRj
cQk5NiglcmRpKSwlcjExCisJYWRjcQkxMDQoJXJkaSksJXIxMgorCW1vdnEJJXI4LDE2KCVyc2kp
CisJbW92cQklcjksMjQoJXJzaSkKKwltb3ZxCSVyMTAsMzIoJXJzaSkKKwltb3ZxCSVyMTEsNDAo
JXJzaSkKKwltb3ZxCSVyMTIsNDgoJXJzaSkKKworCisJcG9wcQklcjE1CisuY2ZpX2FkanVzdF9j
ZmFfb2Zmc2V0CS04CisJcG9wcQklcjE0CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CS04CisJcG9w
cQklcjEzCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CS04CisJcG9wcQklcjEyCisuY2ZpX2FkanVz
dF9jZmFfb2Zmc2V0CS04CisJLmJ5dGUJMHhmMywweGMzCisuY2ZpX2VuZHByb2MJCisuTG11bF9i
ZHc6CisuY2ZpX3N0YXJ0cHJvYwkKKworLmNmaV9hZGp1c3RfY2ZhX29mZnNldAkzMgorLmNmaV9v
ZmZzZXQJcjEyLCAtMTYKKy5jZmlfb2Zmc2V0CXIxMywgLTI0CisuY2ZpX29mZnNldAlyMTQsIC0z
MgorLmNmaV9vZmZzZXQJcjE1LCAtNDAKKworCisJbW92cQklcmR4LCVyY3gKKwl4b3JxCSVyYXgs
JXJheAorCisKKwltb3ZxCTAoJXJkaSksJXI4CisJbW92cQk4KCVyZGkpLCVyOQorCW1vdnEJMTYo
JXJkaSksJXIxMAorCW1vdnEJMjQoJXJkaSksJXIxMQorCisJcHVzaHEJJXJieAorLmNmaV9hZGp1
c3RfY2ZhX29mZnNldAk4CisuY2ZpX29mZnNldAlyYngsIC00OAorCXB1c2hxCSVyYnAKKy5jZmlf
b2Zmc2V0CXJicCwgLTU2CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKwlzdWJxCSQ5NiwlcnNw
CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTk2CisKKwlhZGRxCTMyKCVyZGkpLCVyOAorCWFkY3EJ
NDAoJXJkaSksJXI5CisJYWRjcQk0OCglcmRpKSwlcjEwCisJYWRjcQkkMHgwLCVyMTEKKwlzYmJx
CSQweDAsJXJheAorCW1vdnEJJXI4LDAoJXJzcCkKKwltb3ZxCSVyOSw4KCVyc3ApCisJbW92cQkl
cjEwLDE2KCVyc3ApCisJbW92cQklcjExLDI0KCVyc3ApCisKKworCXhvcnEJJXJieCwlcmJ4CisJ
bW92cQkwKCVyc2kpLCVyMTIKKwltb3ZxCTgoJXJzaSksJXIxMworCW1vdnEJMTYoJXJzaSksJXIx
NAorCW1vdnEJMjQoJXJzaSksJXIxNQorCWFkZHEJMzIoJXJzaSksJXIxMgorCWFkY3EJNDAoJXJz
aSksJXIxMworCWFkY3EJNDgoJXJzaSksJXIxNAorCWFkY3EJJDB4MCwlcjE1CisJc2JicQkkMHgw
LCVyYngKKwltb3ZxCSVyMTIsMzIoJXJzcCkKKwltb3ZxCSVyMTMsNDAoJXJzcCkKKwltb3ZxCSVy
MTQsNDgoJXJzcCkKKwltb3ZxCSVyMTUsNTYoJXJzcCkKKworCisJYW5kcQklcmF4LCVyMTIKKwlh
bmRxCSVyYXgsJXIxMworCWFuZHEJJXJheCwlcjE0CisJYW5kcQklcmF4LCVyMTUKKworCisJYW5k
cQklcmJ4LCVyOAorCWFuZHEJJXJieCwlcjkKKwlhbmRxCSVyYngsJXIxMAorCWFuZHEJJXJieCwl
cjExCisKKworCWFkZHEJJXIxMiwlcjgKKwlhZGNxCSVyMTMsJXI5CisJYWRjcQklcjE0LCVyMTAK
KwlhZGNxCSVyMTUsJXIxMQorCW1vdnEJJXI4LDY0KCVyc3ApCisJbW92cQklcjksNzIoJXJzcCkK
Kwltb3ZxCSVyMTAsODAoJXJzcCkKKwltb3ZxCSVyMTEsODgoJXJzcCkKKworCisJbW92cQkwKzAo
JXJzcCksJXJkeAorCW11bHhxCTMyKzAoJXJzcCksJXI5LCVyOAorCW1vdnEJJXI5LDArMCglcnNw
KQorCW11bHhxCTMyKzgoJXJzcCksJXIxMCwlcjkKKwl4b3JxCSVyYXgsJXJheAorCWFkb3hxCSVy
MTAsJXI4CisJbXVseHEJMzIrMTYoJXJzcCksJXIxMSwlcjEwCisJYWRveHEJJXIxMSwlcjkKKwlt
dWx4cQkzMisyNCglcnNwKSwlcjEyLCVyMTEKKwlhZG94cQklcjEyLCVyMTAKKworCW1vdnEJMCs4
KCVyc3ApLCVyZHgKKwltdWx4cQkzMiswKCVyc3ApLCVyMTIsJXIxMworCWFkb3hxCSVyYXgsJXIx
MQorCXhvcnEJJXJheCwlcmF4CisJbXVseHEJMzIrOCglcnNwKSwlcjE1LCVyMTQKKwlhZG94cQkl
cjgsJXIxMgorCW1vdnEJJXIxMiwwKzgoJXJzcCkKKwlhZGN4cQklcjE1LCVyMTMKKwltdWx4cQkz
MisxNiglcnNwKSwlcmJ4LCVyMTUKKwlhZGN4cQklcmJ4LCVyMTQKKwlhZG94cQklcjksJXIxMwor
CW11bHhxCTMyKzI0KCVyc3ApLCVyYnAsJXJieAorCWFkY3hxCSVyYnAsJXIxNQorCWFkY3hxCSVy
YXgsJXJieAorCWFkb3hxCSVyMTAsJXIxNAorCisJbW92cQkwKzE2KCVyc3ApLCVyZHgKKwltdWx4
cQkzMiswKCVyc3ApLCVyOCwlcjkKKwlhZG94cQklcjExLCVyMTUKKwlhZG94cQklcmF4LCVyYngK
Kwl4b3JxCSVyYXgsJXJheAorCW11bHhxCTMyKzgoJXJzcCksJXIxMSwlcjEwCisJYWRveHEJJXIx
MywlcjgKKwltb3ZxCSVyOCwwKzE2KCVyc3ApCisJYWRjeHEJJXIxMSwlcjkKKwltdWx4cQkzMisx
NiglcnNwKSwlcjEyLCVyMTEKKwlhZGN4cQklcjEyLCVyMTAKKwlhZG94cQklcjE0LCVyOQorCW11
bHhxCTMyKzI0KCVyc3ApLCVyYnAsJXIxMgorCWFkY3hxCSVyYnAsJXIxMQorCWFkY3hxCSVyYXgs
JXIxMgorCisJYWRveHEJJXIxNSwlcjEwCisJYWRveHEJJXJieCwlcjExCisJYWRveHEJJXJheCwl
cjEyCisKKwltb3ZxCTArMjQoJXJzcCksJXJkeAorCW11bHhxCTMyKzAoJXJzcCksJXI4LCVyMTMK
Kwl4b3JxCSVyYXgsJXJheAorCW11bHhxCTMyKzgoJXJzcCksJXIxNSwlcjE0CisJYWRjeHEJJXIx
NSwlcjEzCisJYWRveHEJJXI4LCVyOQorCW11bHhxCTMyKzE2KCVyc3ApLCVyYngsJXIxNQorCWFk
Y3hxCSVyYngsJXIxNAorCWFkb3hxCSVyMTMsJXIxMAorCW11bHhxCTMyKzI0KCVyc3ApLCVyYnAs
JXJieAorCWFkY3hxCSVyYnAsJXIxNQorCWFkY3hxCSVyYXgsJXJieAorCWFkb3hxCSVyMTQsJXIx
MQorCWFkb3hxCSVyMTUsJXIxMgorCWFkb3hxCSVyYXgsJXJieAorCW1vdnEJJXI5LDArMjQoJXJz
cCkKKwltb3ZxCSVyMTAsMCszMiglcnNwKQorCW1vdnEJJXIxMSwwKzQwKCVyc3ApCisJbW92cQkl
cjEyLDArNDgoJXJzcCkKKwltb3ZxCSVyYngsMCs1NiglcnNwKQorCisKKworCW1vdnEJMCswKCVy
ZGkpLCVyZHgKKwltdWx4cQkwKzAoJXJzaSksJXI5LCVyOAorCW1vdnEJJXI5LDArMCglcmN4KQor
CW11bHhxCTArOCglcnNpKSwlcjEwLCVyOQorCXhvcnEJJXJheCwlcmF4CisJYWRveHEJJXIxMCwl
cjgKKwltdWx4cQkwKzE2KCVyc2kpLCVyMTEsJXIxMAorCWFkb3hxCSVyMTEsJXI5CisJbXVseHEJ
MCsyNCglcnNpKSwlcjEyLCVyMTEKKwlhZG94cQklcjEyLCVyMTAKKworCW1vdnEJMCs4KCVyZGkp
LCVyZHgKKwltdWx4cQkwKzAoJXJzaSksJXIxMiwlcjEzCisJYWRveHEJJXJheCwlcjExCisJeG9y
cQklcmF4LCVyYXgKKwltdWx4cQkwKzgoJXJzaSksJXIxNSwlcjE0CisJYWRveHEJJXI4LCVyMTIK
Kwltb3ZxCSVyMTIsMCs4KCVyY3gpCisJYWRjeHEJJXIxNSwlcjEzCisJbXVseHEJMCsxNiglcnNp
KSwlcmJ4LCVyMTUKKwlhZGN4cQklcmJ4LCVyMTQKKwlhZG94cQklcjksJXIxMworCW11bHhxCTAr
MjQoJXJzaSksJXJicCwlcmJ4CisJYWRjeHEJJXJicCwlcjE1CisJYWRjeHEJJXJheCwlcmJ4CisJ
YWRveHEJJXIxMCwlcjE0CisKKwltb3ZxCTArMTYoJXJkaSksJXJkeAorCW11bHhxCTArMCglcnNp
KSwlcjgsJXI5CisJYWRveHEJJXIxMSwlcjE1CisJYWRveHEJJXJheCwlcmJ4CisJeG9ycQklcmF4
LCVyYXgKKwltdWx4cQkwKzgoJXJzaSksJXIxMSwlcjEwCisJYWRveHEJJXIxMywlcjgKKwltb3Zx
CSVyOCwwKzE2KCVyY3gpCisJYWRjeHEJJXIxMSwlcjkKKwltdWx4cQkwKzE2KCVyc2kpLCVyMTIs
JXIxMQorCWFkY3hxCSVyMTIsJXIxMAorCWFkb3hxCSVyMTQsJXI5CisJbXVseHEJMCsyNCglcnNp
KSwlcmJwLCVyMTIKKwlhZGN4cQklcmJwLCVyMTEKKwlhZGN4cQklcmF4LCVyMTIKKworCWFkb3hx
CSVyMTUsJXIxMAorCWFkb3hxCSVyYngsJXIxMQorCWFkb3hxCSVyYXgsJXIxMgorCisJbW92cQkw
KzI0KCVyZGkpLCVyZHgKKwltdWx4cQkwKzAoJXJzaSksJXI4LCVyMTMKKwl4b3JxCSVyYXgsJXJh
eAorCW11bHhxCTArOCglcnNpKSwlcjE1LCVyMTQKKwlhZGN4cQklcjE1LCVyMTMKKwlhZG94cQkl
cjgsJXI5CisJbXVseHEJMCsxNiglcnNpKSwlcmJ4LCVyMTUKKwlhZGN4cQklcmJ4LCVyMTQKKwlh
ZG94cQklcjEzLCVyMTAKKwltdWx4cQkwKzI0KCVyc2kpLCVyYnAsJXJieAorCWFkY3hxCSVyYnAs
JXIxNQorCWFkY3hxCSVyYXgsJXJieAorCWFkb3hxCSVyMTQsJXIxMQorCWFkb3hxCSVyMTUsJXIx
MgorCWFkb3hxCSVyYXgsJXJieAorCW1vdnEJJXI5LDArMjQoJXJjeCkKKwltb3ZxCSVyMTAsMCsz
MiglcmN4KQorCW1vdnEJJXIxMSwwKzQwKCVyY3gpCisJbW92cQklcjEyLDArNDgoJXJjeCkKKwlt
b3ZxCSVyYngsMCs1NiglcmN4KQorCisKKworCW1vdnEJMzIrMCglcmRpKSwlcmR4CisJbXVseHEJ
MzIrMCglcnNpKSwlcjksJXI4CisJbW92cQklcjksNjQrMCglcmN4KQorCW11bHhxCTMyKzgoJXJz
aSksJXIxMCwlcjkKKwl4b3JxCSVyYXgsJXJheAorCWFkb3hxCSVyMTAsJXI4CisJbXVseHEJMzIr
MTYoJXJzaSksJXIxMSwlcjEwCisJYWRveHEJJXIxMSwlcjkKKworCW1vdnEJMzIrOCglcmRpKSwl
cmR4CisJbXVseHEJMzIrMCglcnNpKSwlcjEyLCVyMTEKKwlhZG94cQklcmF4LCVyMTAKKwl4b3Jx
CSVyYXgsJXJheAorCisJbXVseHEJMzIrOCglcnNpKSwlcjE0LCVyMTMKKwlhZG94cQklcjgsJXIx
MgorCW1vdnEJJXIxMiw2NCs4KCVyY3gpCisJYWRjeHEJJXIxNCwlcjExCisKKwltdWx4cQkzMisx
NiglcnNpKSwlcjgsJXIxNAorCWFkb3hxCSVyOSwlcjExCisJYWRjeHEJJXI4LCVyMTMKKwlhZGN4
cQklcmF4LCVyMTQKKwlhZG94cQklcjEwLCVyMTMKKworCW1vdnEJMzIrMTYoJXJkaSksJXJkeAor
CW11bHhxCTMyKzAoJXJzaSksJXI4LCVyOQorCWFkb3hxCSVyYXgsJXIxNAorCXhvcnEJJXJheCwl
cmF4CisKKwltdWx4cQkzMis4KCVyc2kpLCVyMTAsJXIxMgorCWFkb3hxCSVyMTEsJXI4CisJbW92
cQklcjgsNjQrMTYoJXJjeCkKKwlhZGN4cQklcjEzLCVyOQorCisJbXVseHEJMzIrMTYoJXJzaSks
JXIxMSwlcjgKKwlhZGN4cQklcjE0LCVyMTIKKwlhZGN4cQklcmF4LCVyOAorCWFkb3hxCSVyMTAs
JXI5CisJYWRveHEJJXIxMiwlcjExCisJYWRveHEJJXJheCwlcjgKKwltb3ZxCSVyOSw2NCsyNCgl
cmN4KQorCW1vdnEJJXIxMSw2NCszMiglcmN4KQorCW1vdnEJJXI4LDY0KzQwKCVyY3gpCisKKwor
CisKKwltb3ZxCTY0KCVyc3ApLCVyOAorCW1vdnEJNzIoJXJzcCksJXI5CisJbW92cQk4MCglcnNw
KSwlcjEwCisJbW92cQk4OCglcnNwKSwlcjExCisKKwltb3ZxCTMyKCVyc3ApLCVyYXgKKwlhZGRx
CSVyYXgsJXI4CisJbW92cQk0MCglcnNwKSwlcmF4CisJYWRjcQklcmF4LCVyOQorCW1vdnEJNDgo
JXJzcCksJXJheAorCWFkY3EJJXJheCwlcjEwCisJbW92cQk1NiglcnNwKSwlcmF4CisJYWRjcQkl
cmF4LCVyMTEKKworCisJbW92cQkwKCVyc3ApLCVyMTIKKwltb3ZxCTgoJXJzcCksJXIxMworCW1v
dnEJMTYoJXJzcCksJXIxNAorCW1vdnEJMjQoJXJzcCksJXIxNQorCXN1YnEJMCglcmN4KSwlcjEy
CisJc2JicQk4KCVyY3gpLCVyMTMKKwlzYmJxCTE2KCVyY3gpLCVyMTQKKwlzYmJxCTI0KCVyY3gp
LCVyMTUKKwlzYmJxCTMyKCVyY3gpLCVyOAorCXNiYnEJNDAoJXJjeCksJXI5CisJc2JicQk0OCgl
cmN4KSwlcjEwCisJc2JicQk1NiglcmN4KSwlcjExCisKKworCXN1YnEJNjQoJXJjeCksJXIxMgor
CXNiYnEJNzIoJXJjeCksJXIxMworCXNiYnEJODAoJXJjeCksJXIxNAorCXNiYnEJODgoJXJjeCks
JXIxNQorCXNiYnEJOTYoJXJjeCksJXI4CisJc2JicQkxMDQoJXJjeCksJXI5CisJc2JicQkkMHgw
LCVyMTAKKwlzYmJxCSQweDAsJXIxMQorCisJYWRkcQkzMiglcmN4KSwlcjEyCisJbW92cQklcjEy
LDMyKCVyY3gpCisJYWRjcQk0MCglcmN4KSwlcjEzCisJbW92cQklcjEzLDQwKCVyY3gpCisJYWRj
cQk0OCglcmN4KSwlcjE0CisJbW92cQklcjE0LDQ4KCVyY3gpCisJYWRjcQk1NiglcmN4KSwlcjE1
CisJbW92cQklcjE1LDU2KCVyY3gpCisJYWRjcQk2NCglcmN4KSwlcjgKKwltb3ZxCSVyOCw2NCgl
cmN4KQorCWFkY3EJNzIoJXJjeCksJXI5CisJbW92cQklcjksNzIoJXJjeCkKKwlhZGNxCTgwKCVy
Y3gpLCVyMTAKKwltb3ZxCSVyMTAsODAoJXJjeCkKKwlhZGNxCTg4KCVyY3gpLCVyMTEKKwltb3Zx
CSVyMTEsODgoJXJjeCkKKwltb3ZxCTk2KCVyY3gpLCVyMTIKKwlhZGNxCSQweDAsJXIxMgorCW1v
dnEJJXIxMiw5NiglcmN4KQorCW1vdnEJMTA0KCVyY3gpLCVyMTMKKwlhZGNxCSQweDAsJXIxMwor
CW1vdnEJJXIxMywxMDQoJXJjeCkKKworCWFkZHEJJDk2LCVyc3AKKy5jZmlfYWRqdXN0X2NmYV9v
ZmZzZXQJLTk2CisJcG9wcQklcmJwCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CS04CisuY2ZpX3Nh
bWVfdmFsdWUJcmJwCisJcG9wcQklcmJ4CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CS04CisuY2Zp
X3NhbWVfdmFsdWUJcmJ4CisKKworCXBvcHEJJXIxNQorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAkt
OAorLmNmaV9zYW1lX3ZhbHVlCXIxNQorCXBvcHEJJXIxNAorLmNmaV9hZGp1c3RfY2ZhX29mZnNl
dAktOAorLmNmaV9zYW1lX3ZhbHVlCXIxNAorCXBvcHEJJXIxMworLmNmaV9hZGp1c3RfY2ZhX29m
ZnNldAktOAorLmNmaV9zYW1lX3ZhbHVlCXIxMworCXBvcHEJJXIxMgorLmNmaV9hZGp1c3RfY2Zh
X29mZnNldAktOAorLmNmaV9zYW1lX3ZhbHVlCXIxMgorCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9l
bmRwcm9jCQorCisuZ2xvYmwJc2lrZV9tcG11bAorLmhpZGRlbiBzaWtlX21wbXVsCisudHlwZQlz
aWtlX21wbXVsLEBmdW5jdGlvbgorc2lrZV9tcG11bDoKKy5jZmlfc3RhcnRwcm9jCQorCXB1c2hx
CSVyMTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJcjEyLCAtMTYKKwlw
dXNocQklcjEzCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTgKKy5jZmlfb2Zmc2V0CXIxMywgLTI0
CisJcHVzaHEJJXIxNAorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4CisuY2ZpX29mZnNldAlyMTQs
IC0zMgorCXB1c2hxCSVyMTUKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJOAorLmNmaV9vZmZzZXQJ
cjE1LCAtNDAKKworCisKKwlsZWFxCU9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCVyY3gKKwltb3Zx
CTgoJXJjeCksJXJjeAorCWFuZGwJJDB4ODAxMDAsJWVjeAorCWNtcGwJJDB4ODAxMDAsJWVjeAor
CWplCS5MbXVsX2JkdworCisKKworCW1vdnEJJXJkeCwlcmN4CisKKwlzdWJxCSQxMTIsJXJzcAor
LmNmaV9hZGp1c3RfY2ZhX29mZnNldAkxMTIKKworCisJeG9ycQklcmF4LCVyYXgKKwltb3ZxCTMy
KCVyZGkpLCVyOAorCW1vdnEJNDAoJXJkaSksJXI5CisJbW92cQk0OCglcmRpKSwlcjEwCisJeG9y
cQklcjExLCVyMTEKKwlhZGRxCTAoJXJkaSksJXI4CisJYWRjcQk4KCVyZGkpLCVyOQorCWFkY3EJ
MTYoJXJkaSksJXIxMAorCWFkY3EJMjQoJXJkaSksJXIxMQorCisJc2JicQkkMCwlcmF4CisJbW92
cQklcmF4LDY0KCVyc3ApCisKKwltb3ZxCSVyOCwwKCVyY3gpCisJbW92cQklcjksOCglcmN4KQor
CW1vdnEJJXIxMCwxNiglcmN4KQorCW1vdnEJJXIxMSwyNCglcmN4KQorCisKKwl4b3JxCSVyZHgs
JXJkeAorCW1vdnEJMzIoJXJzaSksJXIxMgorCW1vdnEJNDAoJXJzaSksJXIxMworCW1vdnEJNDgo
JXJzaSksJXIxNAorCXhvcnEJJXIxNSwlcjE1CisJYWRkcQkwKCVyc2kpLCVyMTIKKwlhZGNxCTgo
JXJzaSksJXIxMworCWFkY3EJMTYoJXJzaSksJXIxNAorCWFkY3EJMjQoJXJzaSksJXIxNQorCXNi
YnEJJDB4MCwlcmR4CisKKwltb3ZxCSVyZHgsNzIoJXJzcCkKKworCisJbW92cQkoJXJjeCksJXJh
eAorCW11bHEJJXIxMgorCW1vdnEJJXJheCwoJXJzcCkKKwltb3ZxCSVyZHgsJXI4CisKKwl4b3Jx
CSVyOSwlcjkKKwltb3ZxCSglcmN4KSwlcmF4CisJbXVscQklcjEzCisJYWRkcQklcmF4LCVyOAor
CWFkY3EJJXJkeCwlcjkKKworCXhvcnEJJXIxMCwlcjEwCisJbW92cQk4KCVyY3gpLCVyYXgKKwlt
dWxxCSVyMTIKKwlhZGRxCSVyYXgsJXI4CisJbW92cQklcjgsOCglcnNwKQorCWFkY3EJJXJkeCwl
cjkKKwlhZGNxCSQweDAsJXIxMAorCisJeG9ycQklcjgsJXI4CisJbW92cQkoJXJjeCksJXJheAor
CW11bHEJJXIxNAorCWFkZHEJJXJheCwlcjkKKwlhZGNxCSVyZHgsJXIxMAorCWFkY3EJJDB4MCwl
cjgKKworCW1vdnEJMTYoJXJjeCksJXJheAorCW11bHEJJXIxMgorCWFkZHEJJXJheCwlcjkKKwlh
ZGNxCSVyZHgsJXIxMAorCWFkY3EJJDB4MCwlcjgKKworCW1vdnEJOCglcmN4KSwlcmF4CisJbXVs
cQklcjEzCisJYWRkcQklcmF4LCVyOQorCW1vdnEJJXI5LDE2KCVyc3ApCisJYWRjcQklcmR4LCVy
MTAKKwlhZGNxCSQweDAsJXI4CisKKwl4b3JxCSVyOSwlcjkKKwltb3ZxCSglcmN4KSwlcmF4CisJ
bXVscQklcjE1CisJYWRkcQklcmF4LCVyMTAKKwlhZGNxCSVyZHgsJXI4CisJYWRjcQkkMHgwLCVy
OQorCisJbW92cQkyNCglcmN4KSwlcmF4CisJbXVscQklcjEyCisJYWRkcQklcmF4LCVyMTAKKwlh
ZGNxCSVyZHgsJXI4CisJYWRjcQkkMHgwLCVyOQorCisJbW92cQk4KCVyY3gpLCVyYXgKKwltdWxx
CSVyMTQKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjgKKwlhZGNxCSQweDAsJXI5CisK
Kwltb3ZxCTE2KCVyY3gpLCVyYXgKKwltdWxxCSVyMTMKKwlhZGRxCSVyYXgsJXIxMAorCW1vdnEJ
JXIxMCwyNCglcnNwKQorCWFkY3EJJXJkeCwlcjgKKwlhZGNxCSQweDAsJXI5CisKKwl4b3JxCSVy
MTAsJXIxMAorCW1vdnEJOCglcmN4KSwlcmF4CisJbXVscQklcjE1CisJYWRkcQklcmF4LCVyOAor
CWFkY3EJJXJkeCwlcjkKKwlhZGNxCSQweDAsJXIxMAorCisJbW92cQkyNCglcmN4KSwlcmF4CisJ
bXVscQklcjEzCisJYWRkcQklcmF4LCVyOAorCWFkY3EJJXJkeCwlcjkKKwlhZGNxCSQweDAsJXIx
MAorCisJbW92cQkxNiglcmN4KSwlcmF4CisJbXVscQklcjE0CisJYWRkcQklcmF4LCVyOAorCW1v
dnEJJXI4LDMyKCVyc3ApCisJYWRjcQklcmR4LCVyOQorCWFkY3EJJDB4MCwlcjEwCisKKwl4b3Jx
CSVyMTEsJXIxMQorCW1vdnEJMTYoJXJjeCksJXJheAorCW11bHEJJXIxNQorCWFkZHEJJXJheCwl
cjkKKwlhZGNxCSVyZHgsJXIxMAorCWFkY3EJJDB4MCwlcjExCisKKwltb3ZxCTI0KCVyY3gpLCVy
YXgKKwltdWxxCSVyMTQKKwlhZGRxCSVyYXgsJXI5CisJbW92cQklcjksNDAoJXJzcCkKKwlhZGNx
CSVyZHgsJXIxMAorCWFkY3EJJDB4MCwlcjExCisKKwltb3ZxCTI0KCVyY3gpLCVyYXgKKwltdWxx
CSVyMTUKKwlhZGRxCSVyYXgsJXIxMAorCW1vdnEJJXIxMCw0OCglcnNwKQorCWFkY3EJJXJkeCwl
cjExCisJbW92cQklcjExLDU2KCVyc3ApCisKKworCW1vdnEJNjQoJXJzcCksJXJheAorCWFuZHEJ
JXJheCwlcjEyCisJYW5kcQklcmF4LCVyMTMKKwlhbmRxCSVyYXgsJXIxNAorCWFuZHEJJXJheCwl
cjE1CisKKworCW1vdnEJNzIoJXJzcCksJXJheAorCW1vdnEJMCglcmN4KSwlcjgKKwlhbmRxCSVy
YXgsJXI4CisJbW92cQk4KCVyY3gpLCVyOQorCWFuZHEJJXJheCwlcjkKKwltb3ZxCTE2KCVyY3gp
LCVyMTAKKwlhbmRxCSVyYXgsJXIxMAorCW1vdnEJMjQoJXJjeCksJXIxMQorCWFuZHEJJXJheCwl
cjExCisKKworCWFkZHEJJXI4LCVyMTIKKwlhZGNxCSVyOSwlcjEzCisJYWRjcQklcjEwLCVyMTQK
KwlhZGNxCSVyMTEsJXIxNQorCisKKwltb3ZxCTMyKCVyc3ApLCVyYXgKKwlhZGRxCSVyYXgsJXIx
MgorCW1vdnEJNDAoJXJzcCksJXJheAorCWFkY3EJJXJheCwlcjEzCisJbW92cQk0OCglcnNwKSwl
cmF4CisJYWRjcQklcmF4LCVyMTQKKwltb3ZxCTU2KCVyc3ApLCVyYXgKKwlhZGNxCSVyYXgsJXIx
NQorCW1vdnEJJXIxMiw4MCglcnNwKQorCW1vdnEJJXIxMyw4OCglcnNwKQorCW1vdnEJJXIxNCw5
NiglcnNwKQorCW1vdnEJJXIxNSwxMDQoJXJzcCkKKworCisJbW92cQkoJXJkaSksJXIxMQorCW1v
dnEJKCVyc2kpLCVyYXgKKwltdWxxCSVyMTEKKwl4b3JxCSVyOSwlcjkKKwltb3ZxCSVyYXgsKCVy
Y3gpCisJbW92cQklcmR4LCVyOAorCisJbW92cQkxNiglcmRpKSwlcjE0CisJbW92cQk4KCVyc2kp
LCVyYXgKKwltdWxxCSVyMTEKKwl4b3JxCSVyMTAsJXIxMAorCWFkZHEJJXJheCwlcjgKKwlhZGNx
CSVyZHgsJXI5CisKKwltb3ZxCTgoJXJkaSksJXIxMgorCW1vdnEJKCVyc2kpLCVyYXgKKwltdWxx
CSVyMTIKKwlhZGRxCSVyYXgsJXI4CisJbW92cQklcjgsOCglcmN4KQorCWFkY3EJJXJkeCwlcjkK
KwlhZGNxCSQweDAsJXIxMAorCisJeG9ycQklcjgsJXI4CisJbW92cQkxNiglcnNpKSwlcmF4CisJ
bXVscQklcjExCisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgwLCVy
OAorCisJbW92cQkoJXJzaSksJXIxMworCW1vdnEJJXIxNCwlcmF4CisJbXVscQklcjEzCisJYWRk
cQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgwLCVyOAorCisJbW92cQk4KCVy
c2kpLCVyYXgKKwltdWxxCSVyMTIKKwlhZGRxCSVyYXgsJXI5CisJbW92cQklcjksMTYoJXJjeCkK
KwlhZGNxCSVyZHgsJXIxMAorCWFkY3EJJDB4MCwlcjgKKworCXhvcnEJJXI5LCVyOQorCW1vdnEJ
MjQoJXJzaSksJXJheAorCW11bHEJJXIxMQorCW1vdnEJMjQoJXJkaSksJXIxNQorCWFkZHEJJXJh
eCwlcjEwCisJYWRjcQklcmR4LCVyOAorCWFkY3EJJDB4MCwlcjkKKworCW1vdnEJJXIxNSwlcmF4
CisJbXVscQklcjEzCisJYWRkcQklcmF4LCVyMTAKKwlhZGNxCSVyZHgsJXI4CisJYWRjcQkkMHgw
LCVyOQorCisJbW92cQkxNiglcnNpKSwlcmF4CisJbXVscQklcjEyCisJYWRkcQklcmF4LCVyMTAK
KwlhZGNxCSVyZHgsJXI4CisJYWRjcQkkMHgwLCVyOQorCisJbW92cQk4KCVyc2kpLCVyYXgKKwlt
dWxxCSVyMTQKKwlhZGRxCSVyYXgsJXIxMAorCW1vdnEJJXIxMCwyNCglcmN4KQorCWFkY3EJJXJk
eCwlcjgKKwlhZGNxCSQweDAsJXI5CisKKwl4b3JxCSVyMTAsJXIxMAorCW1vdnEJMjQoJXJzaSks
JXJheAorCW11bHEJJXIxMgorCWFkZHEJJXJheCwlcjgKKwlhZGNxCSVyZHgsJXI5CisJYWRjcQkk
MHgwLCVyMTAKKworCW1vdnEJOCglcnNpKSwlcmF4CisJbXVscQklcjE1CisJYWRkcQklcmF4LCVy
OAorCWFkY3EJJXJkeCwlcjkKKwlhZGNxCSQweDAsJXIxMAorCisJbW92cQkxNiglcnNpKSwlcmF4
CisJbXVscQklcjE0CisJYWRkcQklcmF4LCVyOAorCW1vdnEJJXI4LDMyKCVyY3gpCisJYWRjcQkl
cmR4LCVyOQorCWFkY3EJJDB4MCwlcjEwCisKKwl4b3JxCSVyOCwlcjgKKwltb3ZxCTI0KCVyc2kp
LCVyYXgKKwltdWxxCSVyMTQKKwlhZGRxCSVyYXgsJXI5CisJYWRjcQklcmR4LCVyMTAKKwlhZGNx
CSQweDAsJXI4CisKKwltb3ZxCTE2KCVyc2kpLCVyYXgKKwltdWxxCSVyMTUKKwlhZGRxCSVyYXgs
JXI5CisJbW92cQklcjksNDAoJXJjeCkKKwlhZGNxCSVyZHgsJXIxMAorCWFkY3EJJDB4MCwlcjgK
KworCW1vdnEJMjQoJXJzaSksJXJheAorCW11bHEJJXIxNQorCWFkZHEJJXJheCwlcjEwCisJbW92
cQklcjEwLDQ4KCVyY3gpCisJYWRjcQklcmR4LCVyOAorCW1vdnEJJXI4LDU2KCVyY3gpCisKKwor
CisJbW92cQkzMiglcmRpKSwlcjExCisJbW92cQkzMiglcnNpKSwlcmF4CisJbXVscQklcjExCisJ
eG9ycQklcjksJXI5CisJbW92cQklcmF4LDY0KCVyY3gpCisJbW92cQklcmR4LCVyOAorCisJbW92
cQk0OCglcmRpKSwlcjE0CisJbW92cQk0MCglcnNpKSwlcmF4CisJbXVscQklcjExCisJeG9ycQkl
cjEwLCVyMTAKKwlhZGRxCSVyYXgsJXI4CisJYWRjcQklcmR4LCVyOQorCisJbW92cQk0MCglcmRp
KSwlcjEyCisJbW92cQkzMiglcnNpKSwlcmF4CisJbXVscQklcjEyCisJYWRkcQklcmF4LCVyOAor
CW1vdnEJJXI4LDcyKCVyY3gpCisJYWRjcQklcmR4LCVyOQorCWFkY3EJJDB4MCwlcjEwCisKKwl4
b3JxCSVyOCwlcjgKKwltb3ZxCTQ4KCVyc2kpLCVyYXgKKwltdWxxCSVyMTEKKwlhZGRxCSVyYXgs
JXI5CisJYWRjcQklcmR4LCVyMTAKKwlhZGNxCSQweDAsJXI4CisKKwltb3ZxCTMyKCVyc2kpLCVy
MTMKKwltb3ZxCSVyMTQsJXJheAorCW11bHEJJXIxMworCWFkZHEJJXJheCwlcjkKKwlhZGNxCSVy
ZHgsJXIxMAorCWFkY3EJJDB4MCwlcjgKKworCW1vdnEJNDAoJXJzaSksJXJheAorCW11bHEJJXIx
MgorCWFkZHEJJXJheCwlcjkKKwltb3ZxCSVyOSw4MCglcmN4KQorCWFkY3EJJXJkeCwlcjEwCisJ
YWRjcQkkMHgwLCVyOAorCisJbW92cQk0OCglcnNpKSwlcmF4CisJbXVscQklcjEyCisJeG9ycQkl
cjEyLCVyMTIKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjgKKwlhZGNxCSQweDAsJXIx
MgorCisJbW92cQk0MCglcnNpKSwlcmF4CisJbXVscQklcjE0CisJYWRkcQklcmF4LCVyMTAKKwlh
ZGNxCSVyZHgsJXI4CisJYWRjcQkkMHgwLCVyMTIKKwltb3ZxCSVyMTAsODgoJXJjeCkKKworCW1v
dnEJNDgoJXJzaSksJXJheAorCW11bHEJJXIxNAorCWFkZHEJJXJheCwlcjgKKwlhZGNxCSQweDAs
JXIxMgorCW1vdnEJJXI4LDk2KCVyY3gpCisKKwlhZGRxCSVyMTIsJXJkeAorCisKKwltb3ZxCTAo
JXJzcCksJXI4CisJc3VicQkwKCVyY3gpLCVyOAorCW1vdnEJOCglcnNwKSwlcjkKKwlzYmJxCTgo
JXJjeCksJXI5CisJbW92cQkxNiglcnNwKSwlcjEwCisJc2JicQkxNiglcmN4KSwlcjEwCisJbW92
cQkyNCglcnNwKSwlcjExCisJc2JicQkyNCglcmN4KSwlcjExCisJbW92cQk4MCglcnNwKSwlcjEy
CisJc2JicQkzMiglcmN4KSwlcjEyCisJbW92cQk4OCglcnNwKSwlcjEzCisJc2JicQk0MCglcmN4
KSwlcjEzCisJbW92cQk5NiglcnNwKSwlcjE0CisJc2JicQk0OCglcmN4KSwlcjE0CisJbW92cQkx
MDQoJXJzcCksJXIxNQorCXNiYnEJNTYoJXJjeCksJXIxNQorCisKKwltb3ZxCTY0KCVyY3gpLCVy
YXgKKwlzdWJxCSVyYXgsJXI4CisJbW92cQk3MiglcmN4KSwlcmF4CisJc2JicQklcmF4LCVyOQor
CW1vdnEJODAoJXJjeCksJXJheAorCXNiYnEJJXJheCwlcjEwCisJbW92cQk4OCglcmN4KSwlcmF4
CisJc2JicQklcmF4LCVyMTEKKwltb3ZxCTk2KCVyY3gpLCVyYXgKKwlzYmJxCSVyYXgsJXIxMgor
CXNiYnEJJXJkeCwlcjEzCisJc2JicQkkMHgwLCVyMTQKKwlzYmJxCSQweDAsJXIxNQorCisKKwlh
ZGRxCTMyKCVyY3gpLCVyOAorCW1vdnEJJXI4LDMyKCVyY3gpCisJYWRjcQk0MCglcmN4KSwlcjkK
Kwltb3ZxCSVyOSw0MCglcmN4KQorCWFkY3EJNDgoJXJjeCksJXIxMAorCW1vdnEJJXIxMCw0OCgl
cmN4KQorCWFkY3EJNTYoJXJjeCksJXIxMQorCW1vdnEJJXIxMSw1NiglcmN4KQorCWFkY3EJNjQo
JXJjeCksJXIxMgorCW1vdnEJJXIxMiw2NCglcmN4KQorCWFkY3EJNzIoJXJjeCksJXIxMworCW1v
dnEJJXIxMyw3MiglcmN4KQorCWFkY3EJODAoJXJjeCksJXIxNAorCW1vdnEJJXIxNCw4MCglcmN4
KQorCWFkY3EJODgoJXJjeCksJXIxNQorCW1vdnEJJXIxNSw4OCglcmN4KQorCW1vdnEJOTYoJXJj
eCksJXIxMgorCWFkY3EJJDB4MCwlcjEyCisJbW92cQklcjEyLDk2KCVyY3gpCisJYWRjcQkkMHgw
LCVyZHgKKwltb3ZxCSVyZHgsMTA0KCVyY3gpCisKKwlhZGRxCSQxMTIsJXJzcAorLmNmaV9hZGp1
c3RfY2ZhX29mZnNldAktMTEyCisKKworCXBvcHEJJXIxNQorLmNmaV9hZGp1c3RfY2ZhX29mZnNl
dAktOAorCXBvcHEJJXIxNAorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAktOAorCXBvcHEJJXIxMwor
LmNmaV9hZGp1c3RfY2ZhX29mZnNldAktOAorCXBvcHEJJXIxMgorLmNmaV9hZGp1c3RfY2ZhX29m
ZnNldAktOAorCS5ieXRlCTB4ZjMsMHhjMworLmNmaV9lbmRwcm9jCQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9tYWMteDg2L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLXg4Ni5TIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlw
dG8vZmlwc21vZHVsZS9hZXNuaS14ODYuUwppbmRleCBjY2ExZDMyYjBkYTI4ZjE3YTk5NTljMjZk
OTFjMTA5OGVhYzFmNmJlLi4xN2VlYWVhYzVhYjg5NmVhM2JkMmEyODBjOTc5MzNhNjdlMDI5MDVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLXg4Ni5TCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L21hYy14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzbmkteDg2LlMKQEAgLTYsMTEgKzYsMjUgQEAK
ICNpbmNsdWRlIDxib3Jpbmdzc2xfcHJlZml4X3N5bWJvbHNfYXNtLmg+CiAjZW5kaWYKIC50ZXh0
CisjaWZuZGVmIE5ERUJVRworI2VuZGlmCiAuZ2xvYmwJX2Flc19od19lbmNyeXB0CiAucHJpdmF0
ZV9leHRlcm4JX2Flc19od19lbmNyeXB0CiAuYWxpZ24JNAogX2Flc19od19lbmNyeXB0OgogTF9h
ZXNfaHdfZW5jcnlwdF9iZWdpbjoKKyNpZm5kZWYgTkRFQlVHCisJcHVzaGwJJWVieAorCXB1c2hs
CSVlZHgKKwljYWxsCUwwMDBwaWMKK0wwMDBwaWM6CisJcG9wbAklZWJ4CisJbGVhbAlfQk9SSU5H
U1NMX2Z1bmN0aW9uX2hpdCsxLUwwMDBwaWMoJWVieCksJWVieAorCW1vdmwJJDEsJWVkeAorCW1v
dmIJJWRsLCglZWJ4KQorCXBvcGwJJWVkeAorCXBvcGwJJWVieAorI2VuZGlmCiAJbW92bAk0KCVl
c3ApLCVlYXgKIAltb3ZsCTEyKCVlc3ApLCVlZHgKIAltb3Z1cHMJKCVlYXgpLCV4bW0yCkBAIC0y
MCwxMiArMzQsMTIgQEAgTF9hZXNfaHdfZW5jcnlwdF9iZWdpbjoKIAltb3Z1cHMJMTYoJWVkeCks
JXhtbTEKIAlsZWFsCTMyKCVlZHgpLCVlZHgKIAl4b3JwcwkleG1tMCwleG1tMgotTDAwMGVuYzFf
bG9vcF8xOgorTDAwMWVuYzFfbG9vcF8xOgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIAlkZWNs
CSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4Ci0Jam56CUww
MDBlbmMxX2xvb3BfMQorCWpueglMMDAxZW5jMV9sb29wXzEKIC5ieXRlCTEwMiwxNSw1NiwyMjEs
MjA5CiAJcHhvcgkleG1tMCwleG1tMAogCXB4b3IJJXhtbTEsJXhtbTEKQEAgLTQ2LDEyICs2MCwx
MiBAQCBMX2Flc19od19kZWNyeXB0X2JlZ2luOgogCW1vdnVwcwkxNiglZWR4KSwleG1tMQogCWxl
YWwJMzIoJWVkeCksJWVkeAogCXhvcnBzCSV4bW0wLCV4bW0yCi1MMDAxZGVjMV9sb29wXzI6CitM
MDAyZGVjMV9sb29wXzI6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogCWRlY2wJJWVjeAogCW1v
dnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVlZHgpLCVlZHgKLQlqbnoJTDAwMWRlYzFfbG9v
cF8yCisJam56CUwwMDJkZWMxX2xvb3BfMgogLmJ5dGUJMTAyLDE1LDU2LDIyMywyMDkKIAlweG9y
CSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMQpAQCAtNzAsNyArODQsNyBAQCBfX2Flc25p
X2VuY3J5cHQyOgogCWxlYWwJMzIoJWVkeCwlZWN4LDEpLCVlZHgKIAluZWdsCSVlY3gKIAlhZGRs
CSQxNiwlZWN4Ci1MMDAyZW5jMl9sb29wOgorTDAwM2VuYzJfbG9vcDoKIC5ieXRlCTEwMiwxNSw1
NiwyMjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwogCW1vdnVwcwkoJWVkeCwlZWN4LDEp
LCV4bW0xCkBAIC03OCw3ICs5Miw3IEBAIEwwMDJlbmMyX2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYs
MjIwLDIwOAogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTYKIAltb3Z1cHMJLTE2KCVlZHgsJWVjeCwx
KSwleG1tMAotCWpueglMMDAyZW5jMl9sb29wCisJam56CUwwMDNlbmMyX2xvb3AKIC5ieXRlCTEw
MiwxNSw1NiwyMjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwogLmJ5dGUJMTAyLDE1LDU2
LDIyMSwyMDgKQEAgLTk2LDcgKzExMCw3IEBAIF9fYWVzbmlfZGVjcnlwdDI6CiAJbGVhbAkzMigl
ZWR4LCVlY3gsMSksJWVkeAogCW5lZ2wJJWVjeAogCWFkZGwJJDE2LCVlY3gKLUwwMDNkZWMyX2xv
b3A6CitMMDA0ZGVjMl9sb29wOgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKIC5ieXRlCTEwMiwx
NSw1NiwyMjIsMjE3CiAJbW92dXBzCSglZWR4LCVlY3gsMSksJXhtbTEKQEAgLTEwNCw3ICsxMTgs
NyBAQCBMMDAzZGVjMl9sb29wOgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDgKIC5ieXRlCTEwMiwx
NSw1NiwyMjIsMjE2CiAJbW92dXBzCS0xNiglZWR4LCVlY3gsMSksJXhtbTAKLQlqbnoJTDAwM2Rl
YzJfbG9vcAorCWpueglMMDA0ZGVjMl9sb29wCiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogLmJ5
dGUJMTAyLDE1LDU2LDIyMiwyMTcKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjA4CkBAIC0xMjMsNyAr
MTM3LDcgQEAgX19hZXNuaV9lbmNyeXB0MzoKIAlsZWFsCTMyKCVlZHgsJWVjeCwxKSwlZWR4CiAJ
bmVnbAklZWN4CiAJYWRkbAkkMTYsJWVjeAotTDAwNGVuYzNfbG9vcDoKK0wwMDVlbmMzX2xvb3A6
CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKIC5ieXRl
CTEwMiwxNSw1NiwyMjAsMjI1CkBAIC0xMzMsNyArMTQ3LDcgQEAgTDAwNGVuYzNfbG9vcDoKIC5i
eXRlCTEwMiwxNSw1NiwyMjAsMjE2CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNAogCW1vdnVwcwkt
MTYoJWVkeCwlZWN4LDEpLCV4bW0wCi0Jam56CUwwMDRlbmMzX2xvb3AKKwlqbnoJTDAwNWVuYzNf
bG9vcAogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3CiAu
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIyNQpAQCAtMTU0LDcgKzE2OCw3IEBAIF9fYWVzbmlfZGVjcnlw
dDM6CiAJbGVhbAkzMiglZWR4LCVlY3gsMSksJWVkeAogCW5lZ2wJJWVjeAogCWFkZGwJJDE2LCVl
Y3gKLUwwMDVkZWMzX2xvb3A6CitMMDA2ZGVjM19sb29wOgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MDkKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjE3CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNQpAQCAt
MTY0LDcgKzE3OCw3IEBAIEwwMDVkZWMzX2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNgog
LmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjQKIAltb3Z1cHMJLTE2KCVlZHgsJWVjeCwxKSwleG1tMAot
CWpueglMMDA1ZGVjM19sb29wCisJam56CUwwMDZkZWMzX2xvb3AKIC5ieXRlCTEwMiwxNSw1Niwy
MjIsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjUK
QEAgLTE4Nyw3ICsyMDEsNyBAQCBfX2Flc25pX2VuY3J5cHQ0OgogCW5lZ2wJJWVjeAogLmJ5dGUJ
MTUsMzEsNjQsMAogCWFkZGwJJDE2LCVlY3gKLUwwMDZlbmM0X2xvb3A6CitMMDA3ZW5jNF9sb29w
OgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3CiAuYnl0
ZQkxMDIsMTUsNTYsMjIwLDIyNQpAQCAtMTk5LDcgKzIxMyw3IEBAIEwwMDZlbmM0X2xvb3A6CiAu
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIyNAogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKIAltb3Z1cHMJ
LTE2KCVlZHgsJWVjeCwxKSwleG1tMAotCWpueglMMDA2ZW5jNF9sb29wCisJam56CUwwMDdlbmM0
X2xvb3AKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwog
LmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjUKQEAgLTIyNCw3ICsyMzgsNyBAQCBfX2Flc25pX2RlY3J5
cHQ0OgogCW5lZ2wJJWVjeAogLmJ5dGUJMTUsMzEsNjQsMAogCWFkZGwJJDE2LCVlY3gKLUwwMDdk
ZWM0X2xvb3A6CitMMDA4ZGVjNF9sb29wOgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKIC5ieXRl
CTEwMiwxNSw1NiwyMjIsMjE3CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNQpAQCAtMjM2LDcgKzI1
MCw3IEBAIEwwMDdkZWM0X2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAogLmJ5dGUJMTAy
LDE1LDU2LDIyMiwyMzIKIAltb3Z1cHMJLTE2KCVlZHgsJWVjeCwxKSwleG1tMAotCWpueglMMDA3
ZGVjNF9sb29wCisJam56CUwwMDhkZWM0X2xvb3AKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CiAu
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIxNwogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjUKQEAgLTI2NSwx
MyArMjc5LDEzIEBAIF9fYWVzbmlfZW5jcnlwdDY6CiAJcHhvcgkleG1tMCwleG1tNwogCW1vdnVw
cwkoJWVkeCwlZWN4LDEpLCV4bW0wCiAJYWRkbAkkMTYsJWVjeAotCWptcAlMMDA4X2Flc25pX2Vu
Y3J5cHQ2X2lubmVyCisJam1wCUwwMDlfYWVzbmlfZW5jcnlwdDZfaW5uZXIKIC5hbGlnbgk0LDB4
OTAKLUwwMDllbmM2X2xvb3A6CitMMDEwZW5jNl9sb29wOgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MDkKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNQotTDAw
OF9hZXNuaV9lbmNyeXB0Nl9pbm5lcjoKK0wwMDlfYWVzbmlfZW5jcnlwdDZfaW5uZXI6CiAuYnl0
ZQkxMDIsMTUsNTYsMjIwLDIzMwogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDEKIC5ieXRlCTEwMiwx
NSw1NiwyMjAsMjQ5CkBAIC0yODUsNyArMjk5LDcgQEAgTF9hZXNuaV9lbmNyeXB0Nl9lbnRlcjoK
IC5ieXRlCTEwMiwxNSw1NiwyMjAsMjQwCiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OAogCW1vdnVw
cwktMTYoJWVkeCwlZWN4LDEpLCV4bW0wCi0Jam56CUwwMDllbmM2X2xvb3AKKwlqbnoJTDAxMGVu
YzZfbG9vcAogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3
CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNQpAQCAtMzE4LDEzICszMzIsMTMgQEAgX19hZXNuaV9k
ZWNyeXB0NjoKIAlweG9yCSV4bW0wLCV4bW03CiAJbW92dXBzCSglZWR4LCVlY3gsMSksJXhtbTAK
IAlhZGRsCSQxNiwlZWN4Ci0Jam1wCUwwMTBfYWVzbmlfZGVjcnlwdDZfaW5uZXIKKwlqbXAJTDAx
MV9hZXNuaV9kZWNyeXB0Nl9pbm5lcgogLmFsaWduCTQsMHg5MAotTDAxMWRlYzZfbG9vcDoKK0ww
MTJkZWM2X2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogLmJ5dGUJMTAyLDE1LDU2LDIy
MiwyMTcKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjI1Ci1MMDEwX2Flc25pX2RlY3J5cHQ2X2lubmVy
OgorTDAxMV9hZXNuaV9kZWNyeXB0Nl9pbm5lcjoKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCiAu
Ynl0ZQkxMDIsMTUsNTYsMjIyLDI0MQogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDkKQEAgLTMzOCw3
ICszNTIsNyBAQCBMX2Flc25pX2RlY3J5cHQ2X2VudGVyOgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
NDAKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4CiAJbW92dXBzCS0xNiglZWR4LCVlY3gsMSksJXht
bTAKLQlqbnoJTDAxMWRlYzZfbG9vcAorCWpueglMMDEyZGVjNl9sb29wCiAuYnl0ZQkxMDIsMTUs
NTYsMjIyLDIwOQogLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKIC5ieXRlCTEwMiwxNSw1NiwyMjIs
MjI1CkBAIC0zNjcsMTQgKzM4MSwxNCBAQCBMX2Flc19od19lY2JfZW5jcnlwdF9iZWdpbjoKIAlt
b3ZsCTMyKCVlc3ApLCVlZHgKIAltb3ZsCTM2KCVlc3ApLCVlYngKIAlhbmRsCSQtMTYsJWVheAot
CWp6CUwwMTJlY2JfcmV0CisJanoJTDAxM2VjYl9yZXQKIAltb3ZsCTI0MCglZWR4KSwlZWN4CiAJ
dGVzdGwJJWVieCwlZWJ4Ci0JanoJTDAxM2VjYl9kZWNyeXB0CisJanoJTDAxNGVjYl9kZWNyeXB0
CiAJbW92bAklZWR4LCVlYnAKIAltb3ZsCSVlY3gsJWVieAogCWNtcGwJJDk2LCVlYXgKLQlqYglM
MDE0ZWNiX2VuY190YWlsCisJamIJTDAxNWVjYl9lbmNfdGFpbAogCW1vdmRxdQkoJWVzaSksJXht
bTIKIAltb3ZkcXUJMTYoJWVzaSksJXhtbTMKIAltb3ZkcXUJMzIoJWVzaSksJXhtbTQKQEAgLTM4
Myw5ICszOTcsOSBAQCBMX2Flc19od19lY2JfZW5jcnlwdF9iZWdpbjoKIAltb3ZkcXUJODAoJWVz
aSksJXhtbTcKIAlsZWFsCTk2KCVlc2kpLCVlc2kKIAlzdWJsCSQ5NiwlZWF4Ci0Jam1wCUwwMTVl
Y2JfZW5jX2xvb3A2X2VudGVyCisJam1wCUwwMTZlY2JfZW5jX2xvb3A2X2VudGVyCiAuYWxpZ24J
NCwweDkwCi1MMDE2ZWNiX2VuY19sb29wNjoKK0wwMTdlY2JfZW5jX2xvb3A2OgogCW1vdnVwcwkl
eG1tMiwoJWVkaSkKIAltb3ZkcXUJKCVlc2kpLCV4bW0yCiAJbW92dXBzCSV4bW0zLDE2KCVlZGkp
CkBAIC00MDAsMTIgKzQxNCwxMiBAQCBMMDE2ZWNiX2VuY19sb29wNjoKIAlsZWFsCTk2KCVlZGkp
LCVlZGkKIAltb3ZkcXUJODAoJWVzaSksJXhtbTcKIAlsZWFsCTk2KCVlc2kpLCVlc2kKLUwwMTVl
Y2JfZW5jX2xvb3A2X2VudGVyOgorTDAxNmVjYl9lbmNfbG9vcDZfZW50ZXI6CiAJY2FsbAlfX2Fl
c25pX2VuY3J5cHQ2CiAJbW92bAklZWJwLCVlZHgKIAltb3ZsCSVlYngsJWVjeAogCXN1YmwJJDk2
LCVlYXgKLQlqbmMJTDAxNmVjYl9lbmNfbG9vcDYKKwlqbmMJTDAxN2VjYl9lbmNfbG9vcDYKIAlt
b3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92dXBzCSV4bW0zLDE2KCVlZGkpCiAJbW92dXBzCSV4bW00
LDMyKCVlZGkpCkBAIC00MTQsMTggKzQyOCwxOCBAQCBMMDE1ZWNiX2VuY19sb29wNl9lbnRlcjoK
IAltb3Z1cHMJJXhtbTcsODAoJWVkaSkKIAlsZWFsCTk2KCVlZGkpLCVlZGkKIAlhZGRsCSQ5Niwl
ZWF4Ci0JanoJTDAxMmVjYl9yZXQKLUwwMTRlY2JfZW5jX3RhaWw6CisJanoJTDAxM2VjYl9yZXQK
K0wwMTVlY2JfZW5jX3RhaWw6CiAJbW92dXBzCSglZXNpKSwleG1tMgogCWNtcGwJJDMyLCVlYXgK
LQlqYglMMDE3ZWNiX2VuY19vbmUKKwlqYglMMDE4ZWNiX2VuY19vbmUKIAltb3Z1cHMJMTYoJWVz
aSksJXhtbTMKLQlqZQlMMDE4ZWNiX2VuY190d28KKwlqZQlMMDE5ZWNiX2VuY190d28KIAltb3Z1
cHMJMzIoJWVzaSksJXhtbTQKIAljbXBsCSQ2NCwlZWF4Ci0JamIJTDAxOWVjYl9lbmNfdGhyZWUK
KwlqYglMMDIwZWNiX2VuY190aHJlZQogCW1vdnVwcwk0OCglZXNpKSwleG1tNQotCWplCUwwMjBl
Y2JfZW5jX2ZvdXIKKwlqZQlMMDIxZWNiX2VuY19mb3VyCiAJbW92dXBzCTY0KCVlc2kpLCV4bW02
CiAJeG9ycHMJJXhtbTcsJXhtbTcKIAljYWxsCV9fYWVzbmlfZW5jcnlwdDYKQEAgLTQzNCw0OSAr
NDQ4LDQ5IEBAIEwwMTRlY2JfZW5jX3RhaWw6CiAJbW92dXBzCSV4bW00LDMyKCVlZGkpCiAJbW92
dXBzCSV4bW01LDQ4KCVlZGkpCiAJbW92dXBzCSV4bW02LDY0KCVlZGkpCi0Jam1wCUwwMTJlY2Jf
cmV0CisJam1wCUwwMTNlY2JfcmV0CiAuYWxpZ24JNCwweDkwCi1MMDE3ZWNiX2VuY19vbmU6CitM
MDE4ZWNiX2VuY19vbmU6CiAJbW92dXBzCSglZWR4KSwleG1tMAogCW1vdnVwcwkxNiglZWR4KSwl
eG1tMQogCWxlYWwJMzIoJWVkeCksJWVkeAogCXhvcnBzCSV4bW0wLCV4bW0yCi1MMDIxZW5jMV9s
b29wXzM6CitMMDIyZW5jMV9sb29wXzM6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQogCWRlY2wJ
JWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVlZHgpLCVlZHgKLQlqbnoJTDAy
MWVuYzFfbG9vcF8zCisJam56CUwwMjJlbmMxX2xvb3BfMwogLmJ5dGUJMTAyLDE1LDU2LDIyMSwy
MDkKIAltb3Z1cHMJJXhtbTIsKCVlZGkpCi0Jam1wCUwwMTJlY2JfcmV0CisJam1wCUwwMTNlY2Jf
cmV0CiAuYWxpZ24JNCwweDkwCi1MMDE4ZWNiX2VuY190d286CitMMDE5ZWNiX2VuY190d286CiAJ
Y2FsbAlfX2Flc25pX2VuY3J5cHQyCiAJbW92dXBzCSV4bW0yLCglZWRpKQogCW1vdnVwcwkleG1t
MywxNiglZWRpKQotCWptcAlMMDEyZWNiX3JldAorCWptcAlMMDEzZWNiX3JldAogLmFsaWduCTQs
MHg5MAotTDAxOWVjYl9lbmNfdGhyZWU6CitMMDIwZWNiX2VuY190aHJlZToKIAljYWxsCV9fYWVz
bmlfZW5jcnlwdDMKIAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92dXBzCSV4bW0zLDE2KCVlZGkp
CiAJbW92dXBzCSV4bW00LDMyKCVlZGkpCi0Jam1wCUwwMTJlY2JfcmV0CisJam1wCUwwMTNlY2Jf
cmV0CiAuYWxpZ24JNCwweDkwCi1MMDIwZWNiX2VuY19mb3VyOgorTDAyMWVjYl9lbmNfZm91cjoK
IAljYWxsCV9fYWVzbmlfZW5jcnlwdDQKIAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92dXBzCSV4
bW0zLDE2KCVlZGkpCiAJbW92dXBzCSV4bW00LDMyKCVlZGkpCiAJbW92dXBzCSV4bW01LDQ4KCVl
ZGkpCi0Jam1wCUwwMTJlY2JfcmV0CisJam1wCUwwMTNlY2JfcmV0CiAuYWxpZ24JNCwweDkwCi1M
MDEzZWNiX2RlY3J5cHQ6CitMMDE0ZWNiX2RlY3J5cHQ6CiAJbW92bAklZWR4LCVlYnAKIAltb3Zs
CSVlY3gsJWVieAogCWNtcGwJJDk2LCVlYXgKLQlqYglMMDIyZWNiX2RlY190YWlsCisJamIJTDAy
M2VjYl9kZWNfdGFpbAogCW1vdmRxdQkoJWVzaSksJXhtbTIKIAltb3ZkcXUJMTYoJWVzaSksJXht
bTMKIAltb3ZkcXUJMzIoJWVzaSksJXhtbTQKQEAgLTQ4NSw5ICs0OTksOSBAQCBMMDEzZWNiX2Rl
Y3J5cHQ6CiAJbW92ZHF1CTgwKCVlc2kpLCV4bW03CiAJbGVhbAk5NiglZXNpKSwlZXNpCiAJc3Vi
bAkkOTYsJWVheAotCWptcAlMMDIzZWNiX2RlY19sb29wNl9lbnRlcgorCWptcAlMMDI0ZWNiX2Rl
Y19sb29wNl9lbnRlcgogLmFsaWduCTQsMHg5MAotTDAyNGVjYl9kZWNfbG9vcDY6CitMMDI1ZWNi
X2RlY19sb29wNjoKIAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbW92ZHF1CSglZXNpKSwleG1tMgog
CW1vdnVwcwkleG1tMywxNiglZWRpKQpAQCAtNTAyLDEyICs1MTYsMTIgQEAgTDAyNGVjYl9kZWNf
bG9vcDY6CiAJbGVhbAk5NiglZWRpKSwlZWRpCiAJbW92ZHF1CTgwKCVlc2kpLCV4bW03CiAJbGVh
bAk5NiglZXNpKSwlZXNpCi1MMDIzZWNiX2RlY19sb29wNl9lbnRlcjoKK0wwMjRlY2JfZGVjX2xv
b3A2X2VudGVyOgogCWNhbGwJX19hZXNuaV9kZWNyeXB0NgogCW1vdmwJJWVicCwlZWR4CiAJbW92
bAklZWJ4LCVlY3gKIAlzdWJsCSQ5NiwlZWF4Ci0Jam5jCUwwMjRlY2JfZGVjX2xvb3A2CisJam5j
CUwwMjVlY2JfZGVjX2xvb3A2CiAJbW92dXBzCSV4bW0yLCglZWRpKQogCW1vdnVwcwkleG1tMywx
NiglZWRpKQogCW1vdnVwcwkleG1tNCwzMiglZWRpKQpAQCAtNTE2LDE4ICs1MzAsMTggQEAgTDAy
M2VjYl9kZWNfbG9vcDZfZW50ZXI6CiAJbW92dXBzCSV4bW03LDgwKCVlZGkpCiAJbGVhbAk5Nigl
ZWRpKSwlZWRpCiAJYWRkbAkkOTYsJWVheAotCWp6CUwwMTJlY2JfcmV0Ci1MMDIyZWNiX2RlY190
YWlsOgorCWp6CUwwMTNlY2JfcmV0CitMMDIzZWNiX2RlY190YWlsOgogCW1vdnVwcwkoJWVzaSks
JXhtbTIKIAljbXBsCSQzMiwlZWF4Ci0JamIJTDAyNWVjYl9kZWNfb25lCisJamIJTDAyNmVjYl9k
ZWNfb25lCiAJbW92dXBzCTE2KCVlc2kpLCV4bW0zCi0JamUJTDAyNmVjYl9kZWNfdHdvCisJamUJ
TDAyN2VjYl9kZWNfdHdvCiAJbW92dXBzCTMyKCVlc2kpLCV4bW00CiAJY21wbAkkNjQsJWVheAot
CWpiCUwwMjdlY2JfZGVjX3RocmVlCisJamIJTDAyOGVjYl9kZWNfdGhyZWUKIAltb3Z1cHMJNDgo
JWVzaSksJXhtbTUKLQlqZQlMMDI4ZWNiX2RlY19mb3VyCisJamUJTDAyOWVjYl9kZWNfZm91cgog
CW1vdnVwcwk2NCglZXNpKSwleG1tNgogCXhvcnBzCSV4bW03LCV4bW03CiAJY2FsbAlfX2Flc25p
X2RlY3J5cHQ2CkBAIC01MzYsNDMgKzU1MCw0MyBAQCBMMDIyZWNiX2RlY190YWlsOgogCW1vdnVw
cwkleG1tNCwzMiglZWRpKQogCW1vdnVwcwkleG1tNSw0OCglZWRpKQogCW1vdnVwcwkleG1tNiw2
NCglZWRpKQotCWptcAlMMDEyZWNiX3JldAorCWptcAlMMDEzZWNiX3JldAogLmFsaWduCTQsMHg5
MAotTDAyNWVjYl9kZWNfb25lOgorTDAyNmVjYl9kZWNfb25lOgogCW1vdnVwcwkoJWVkeCksJXht
bTAKIAltb3Z1cHMJMTYoJWVkeCksJXhtbTEKIAlsZWFsCTMyKCVlZHgpLCVlZHgKIAl4b3Jwcwkl
eG1tMCwleG1tMgotTDAyOWRlYzFfbG9vcF80OgorTDAzMGRlYzFfbG9vcF80OgogLmJ5dGUJMTAy
LDE1LDU2LDIyMiwyMDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkx
NiglZWR4KSwlZWR4Ci0Jam56CUwwMjlkZWMxX2xvb3BfNAorCWpueglMMDMwZGVjMV9sb29wXzQK
IC5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5CiAJbW92dXBzCSV4bW0yLCglZWRpKQotCWptcAlMMDEy
ZWNiX3JldAorCWptcAlMMDEzZWNiX3JldAogLmFsaWduCTQsMHg5MAotTDAyNmVjYl9kZWNfdHdv
OgorTDAyN2VjYl9kZWNfdHdvOgogCWNhbGwJX19hZXNuaV9kZWNyeXB0MgogCW1vdnVwcwkleG1t
MiwoJWVkaSkKIAltb3Z1cHMJJXhtbTMsMTYoJWVkaSkKLQlqbXAJTDAxMmVjYl9yZXQKKwlqbXAJ
TDAxM2VjYl9yZXQKIC5hbGlnbgk0LDB4OTAKLUwwMjdlY2JfZGVjX3RocmVlOgorTDAyOGVjYl9k
ZWNfdGhyZWU6CiAJY2FsbAlfX2Flc25pX2RlY3J5cHQzCiAJbW92dXBzCSV4bW0yLCglZWRpKQog
CW1vdnVwcwkleG1tMywxNiglZWRpKQogCW1vdnVwcwkleG1tNCwzMiglZWRpKQotCWptcAlMMDEy
ZWNiX3JldAorCWptcAlMMDEzZWNiX3JldAogLmFsaWduCTQsMHg5MAotTDAyOGVjYl9kZWNfZm91
cjoKK0wwMjllY2JfZGVjX2ZvdXI6CiAJY2FsbAlfX2Flc25pX2RlY3J5cHQ0CiAJbW92dXBzCSV4
bW0yLCglZWRpKQogCW1vdnVwcwkleG1tMywxNiglZWRpKQogCW1vdnVwcwkleG1tNCwzMiglZWRp
KQogCW1vdnVwcwkleG1tNSw0OCglZWRpKQotTDAxMmVjYl9yZXQ6CitMMDEzZWNiX3JldDoKIAlw
eG9yCSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMQogCXB4b3IJJXhtbTIsJXhtbTIKQEAg
LTYyNiw3ICs2NDAsNyBAQCBMX2Flc19od19jY202NF9lbmNyeXB0X2Jsb2Nrc19iZWdpbjoKIAls
ZWFsCTMyKCVlZHgsJWVjeCwxKSwlZWR4CiAJc3VibAklZWN4LCVlYngKIC5ieXRlCTEwMiwxNSw1
NiwwLDI1MwotTDAzMGNjbTY0X2VuY19vdXRlcjoKK0wwMzFjY202NF9lbmNfb3V0ZXI6CiAJbW92
dXBzCSglZWJwKSwleG1tMAogCW1vdmwJJWVieCwlZWN4CiAJbW92dXBzCSglZXNpKSwleG1tNgpA
QCAtNjM1LDcgKzY0OSw3IEBAIEwwMzBjY202NF9lbmNfb3V0ZXI6CiAJeG9ycHMJJXhtbTYsJXht
bTAKIAl4b3JwcwkleG1tMCwleG1tMwogCW1vdnVwcwkzMiglZWJwKSwleG1tMAotTDAzMWNjbTY0
X2VuYzJfbG9vcDoKK0wwMzJjY202NF9lbmMyX2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIw
OQogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKIAltb3Z1cHMJKCVlZHgsJWVjeCwxKSwleG1tMQpA
QCAtNjQzLDcgKzY1Nyw3IEBAIEwwMzFjY202NF9lbmMyX2xvb3A6CiAuYnl0ZQkxMDIsMTUsNTYs
MjIwLDIwOAogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTYKIAltb3Z1cHMJLTE2KCVlZHgsJWVjeCwx
KSwleG1tMAotCWpueglMMDMxY2NtNjRfZW5jMl9sb29wCisJam56CUwwMzJjY202NF9lbmMyX2xv
b3AKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwogCXBh
ZGRxCTE2KCVlc3ApLCV4bW03CkBAIC02NTYsNyArNjcwLDcgQEAgTDAzMWNjbTY0X2VuYzJfbG9v
cDoKIAltb3Z1cHMJJXhtbTYsKCVlZGkpCiAuYnl0ZQkxMDIsMTUsNTYsMCwyMTMKIAlsZWFsCTE2
KCVlZGkpLCVlZGkKLQlqbnoJTDAzMGNjbTY0X2VuY19vdXRlcgorCWpueglMMDMxY2NtNjRfZW5j
X291dGVyCiAJbW92bAk0OCglZXNwKSwlZXNwCiAJbW92bAk0MCglZXNwKSwlZWRpCiAJbW92dXBz
CSV4bW0zLCglZWRpKQpAQCAtNzE0LDEyICs3MjgsMTIgQEAgTF9hZXNfaHdfY2NtNjRfZGVjcnlw
dF9ibG9ja3NfYmVnaW46CiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwl
ZWR4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLUwwMzJlbmMxX2xvb3BfNToKK0wwMzNlbmMxX2xvb3Bf
NToKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjbAklZWN4CiAJbW92dXBzCSglZWR4KSwl
eG1tMQogCWxlYWwJMTYoJWVkeCksJWVkeAotCWpueglMMDMyZW5jMV9sb29wXzUKKwlqbnoJTDAz
M2VuYzFfbG9vcF81CiAuYnl0ZQkxMDIsMTUsNTYsMjIxLDIwOQogCXNobGwJJDQsJWVieAogCW1v
dmwJJDE2LCVlY3gKQEAgLTcyOSwxNiArNzQzLDE2IEBAIEwwMzJlbmMxX2xvb3BfNToKIAlzdWJs
CSVlYngsJWVjeAogCWxlYWwJMzIoJWVicCwlZWJ4LDEpLCVlZHgKIAltb3ZsCSVlY3gsJWVieAot
CWptcAlMMDMzY2NtNjRfZGVjX291dGVyCisJam1wCUwwMzRjY202NF9kZWNfb3V0ZXIKIC5hbGln
bgk0LDB4OTAKLUwwMzNjY202NF9kZWNfb3V0ZXI6CitMMDM0Y2NtNjRfZGVjX291dGVyOgogCXhv
cnBzCSV4bW0yLCV4bW02CiAJbW92ZHFhCSV4bW03LCV4bW0yCiAJbW92dXBzCSV4bW02LCglZWRp
KQogCWxlYWwJMTYoJWVkaSksJWVkaQogLmJ5dGUJMTAyLDE1LDU2LDAsMjEzCiAJc3VibAkkMSwl
ZWF4Ci0JanoJTDAzNGNjbTY0X2RlY19icmVhaworCWp6CUwwMzVjY202NF9kZWNfYnJlYWsKIAlt
b3Z1cHMJKCVlYnApLCV4bW0wCiAJbW92bAklZWJ4LCVlY3gKIAltb3Z1cHMJMTYoJWVicCksJXht
bTEKQEAgLTc0Niw3ICs3NjAsNyBAQCBMMDMzY2NtNjRfZGVjX291dGVyOgogCXhvcnBzCSV4bW0w
LCV4bW0yCiAJeG9ycHMJJXhtbTYsJXhtbTMKIAltb3Z1cHMJMzIoJWVicCksJXhtbTAKLUwwMzVj
Y202NF9kZWMyX2xvb3A6CitMMDM2Y2NtNjRfZGVjMl9sb29wOgogLmJ5dGUJMTAyLDE1LDU2LDIy
MCwyMDkKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3CiAJbW92dXBzCSglZWR4LCVlY3gsMSksJXht
bTEKQEAgLTc1NCw3ICs3NjgsNyBAQCBMMDM1Y2NtNjRfZGVjMl9sb29wOgogLmJ5dGUJMTAyLDE1
LDU2LDIyMCwyMDgKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2CiAJbW92dXBzCS0xNiglZWR4LCVl
Y3gsMSksJXhtbTAKLQlqbnoJTDAzNWNjbTY0X2RlYzJfbG9vcAorCWpueglMMDM2Y2NtNjRfZGVj
Ml9sb29wCiAJbW92dXBzCSglZXNpKSwleG1tNgogCXBhZGRxCTE2KCVlc3ApLCV4bW03CiAuYnl0
ZQkxMDIsMTUsNTYsMjIwLDIwOQpAQCAtNzYyLDkgKzc3Niw5IEBAIEwwMzVjY202NF9kZWMyX2xv
b3A6CiAuYnl0ZQkxMDIsMTUsNTYsMjIxLDIwOAogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTYKIAls
ZWFsCTE2KCVlc2kpLCVlc2kKLQlqbXAJTDAzM2NjbTY0X2RlY19vdXRlcgorCWptcAlMMDM0Y2Nt
NjRfZGVjX291dGVyCiAuYWxpZ24JNCwweDkwCi1MMDM0Y2NtNjRfZGVjX2JyZWFrOgorTDAzNWNj
bTY0X2RlY19icmVhazoKIAltb3ZsCTI0MCglZWJwKSwlZWN4CiAJbW92bAklZWJwLCVlZHgKIAlt
b3Z1cHMJKCVlZHgpLCV4bW0wCkBAIC03NzIsMTIgKzc4NiwxMiBAQCBMMDM0Y2NtNjRfZGVjX2Jy
ZWFrOgogCXhvcnBzCSV4bW0wLCV4bW02CiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXht
bTYsJXhtbTMKLUwwMzZlbmMxX2xvb3BfNjoKK0wwMzdlbmMxX2xvb3BfNjoKIC5ieXRlCTEwMiwx
NSw1NiwyMjAsMjE3CiAJZGVjbAklZWN4CiAJbW92dXBzCSglZWR4KSwleG1tMQogCWxlYWwJMTYo
JWVkeCksJWVkeAotCWpueglMMDM2ZW5jMV9sb29wXzYKKwlqbnoJTDAzN2VuYzFfbG9vcF82CiAu
Ynl0ZQkxMDIsMTUsNTYsMjIxLDIxNwogCW1vdmwJNDgoJWVzcCksJWVzcAogCW1vdmwJNDAoJWVz
cCksJWVkaQpAQCAtODA0LDYgKzgxOCwxOCBAQCBMX2Flc19od19jdHIzMl9lbmNyeXB0X2Jsb2Nr
c19iZWdpbjoKIAlwdXNobAklZWJ4CiAJcHVzaGwJJWVzaQogCXB1c2hsCSVlZGkKKyNpZm5kZWYg
TkRFQlVHCisJcHVzaGwJJWVieAorCXB1c2hsCSVlZHgKKwljYWxsCUwwMzhwaWMKK0wwMzhwaWM6
CisJcG9wbAklZWJ4CisJbGVhbAlfQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCswLUwwMzhwaWMoJWVi
eCksJWVieAorCW1vdmwJJDEsJWVkeAorCW1vdmIJJWRsLCglZWJ4KQorCXBvcGwJJWVkeAorCXBv
cGwJJWVieAorI2VuZGlmCiAJbW92bAkyMCglZXNwKSwlZXNpCiAJbW92bAkyNCglZXNwKSwlZWRp
CiAJbW92bAkyOCglZXNwKSwlZWF4CkBAIC04MTQsNyArODQwLDcgQEAgTF9hZXNfaHdfY3RyMzJf
ZW5jcnlwdF9ibG9ja3NfYmVnaW46CiAJYW5kbAkkLTE2LCVlc3AKIAltb3ZsCSVlYnAsODAoJWVz
cCkKIAljbXBsCSQxLCVlYXgKLQlqZQlMMDM3Y3RyMzJfb25lX3Nob3J0Y3V0CisJamUJTDAzOWN0
cjMyX29uZV9zaG9ydGN1dAogCW1vdmRxdQkoJWVieCksJXhtbTcKIAltb3ZsCSQyMDIxODIxNTks
KCVlc3ApCiAJbW92bAkkMTM0ODEwMTIzLDQoJWVzcCkKQEAgLTg1Miw3ICs4NzgsNyBAQCBMX2Fl
c19od19jdHIzMl9lbmNyeXB0X2Jsb2Nrc19iZWdpbjoKIAlwc2h1ZmQJJDE5MiwleG1tMCwleG1t
MgogCXBzaHVmZAkkMTI4LCV4bW0wLCV4bW0zCiAJY21wbAkkNiwlZWF4Ci0JamIJTDAzOGN0cjMy
X3RhaWwKKwlqYglMMDQwY3RyMzJfdGFpbAogCXB4b3IJJXhtbTYsJXhtbTcKIAlzaGxsCSQ0LCVl
Y3gKIAltb3ZsCSQxNiwlZWJ4CkBAIC04NjEsOSArODg3LDkgQEAgTF9hZXNfaHdfY3RyMzJfZW5j
cnlwdF9ibG9ja3NfYmVnaW46CiAJc3VibAklZWN4LCVlYngKIAlsZWFsCTMyKCVlZHgsJWVjeCwx
KSwlZWR4CiAJc3VibAkkNiwlZWF4Ci0Jam1wCUwwMzljdHIzMl9sb29wNgorCWptcAlMMDQxY3Ry
MzJfbG9vcDYKIC5hbGlnbgk0LDB4OTAKLUwwMzljdHIzMl9sb29wNjoKK0wwNDFjdHIzMl9sb29w
NjoKIAlwc2h1ZmQJJDY0LCV4bW0wLCV4bW00CiAJbW92ZHFhCTMyKCVlc3ApLCV4bW0wCiAJcHNo
dWZkCSQxOTIsJXhtbTEsJXhtbTUKQEAgLTkxNywyNyArOTQzLDI3IEBAIEwwMzljdHIzMl9sb29w
NjoKIAlsZWFsCTk2KCVlZGkpLCVlZGkKIAlwc2h1ZmQJJDEyOCwleG1tMCwleG1tMwogCXN1YmwJ
JDYsJWVheAotCWpuYwlMMDM5Y3RyMzJfbG9vcDYKKwlqbmMJTDA0MWN0cjMyX2xvb3A2CiAJYWRk
bAkkNiwlZWF4Ci0JanoJTDA0MGN0cjMyX3JldAorCWp6CUwwNDJjdHIzMl9yZXQKIAltb3ZkcXUJ
KCVlYnApLCV4bW03CiAJbW92bAklZWJwLCVlZHgKIAlweG9yCTMyKCVlc3ApLCV4bW03CiAJbW92
bAkyNDAoJWVicCksJWVjeAotTDAzOGN0cjMyX3RhaWw6CitMMDQwY3RyMzJfdGFpbDoKIAlwb3IJ
JXhtbTcsJXhtbTIKIAljbXBsCSQyLCVlYXgKLQlqYglMMDQxY3RyMzJfb25lCisJamIJTDA0M2N0
cjMyX29uZQogCXBzaHVmZAkkNjQsJXhtbTAsJXhtbTQKIAlwb3IJJXhtbTcsJXhtbTMKLQlqZQlM
MDQyY3RyMzJfdHdvCisJamUJTDA0NGN0cjMyX3R3bwogCXBzaHVmZAkkMTkyLCV4bW0xLCV4bW01
CiAJcG9yCSV4bW03LCV4bW00CiAJY21wbAkkNCwlZWF4Ci0JamIJTDA0M2N0cjMyX3RocmVlCisJ
amIJTDA0NWN0cjMyX3RocmVlCiAJcHNodWZkCSQxMjgsJXhtbTEsJXhtbTYKIAlwb3IJJXhtbTcs
JXhtbTUKLQlqZQlMMDQ0Y3RyMzJfZm91cgorCWplCUwwNDZjdHIzMl9mb3VyCiAJcG9yCSV4bW03
LCV4bW02CiAJY2FsbAlfX2Flc25pX2VuY3J5cHQ2CiAJbW92dXBzCSglZXNpKSwleG1tMQpAQCAt
OTU1LDI5ICs5ODEsMjkgQEAgTDAzOGN0cjMyX3RhaWw6CiAJbW92dXBzCSV4bW00LDMyKCVlZGkp
CiAJbW92dXBzCSV4bW01LDQ4KCVlZGkpCiAJbW92dXBzCSV4bW02LDY0KCVlZGkpCi0Jam1wCUww
NDBjdHIzMl9yZXQKKwlqbXAJTDA0MmN0cjMyX3JldAogLmFsaWduCTQsMHg5MAotTDAzN2N0cjMy
X29uZV9zaG9ydGN1dDoKK0wwMzljdHIzMl9vbmVfc2hvcnRjdXQ6CiAJbW92dXBzCSglZWJ4KSwl
eG1tMgogCW1vdmwJMjQwKCVlZHgpLCVlY3gKLUwwNDFjdHIzMl9vbmU6CitMMDQzY3RyMzJfb25l
OgogCW1vdnVwcwkoJWVkeCksJXhtbTAKIAltb3Z1cHMJMTYoJWVkeCksJXhtbTEKIAlsZWFsCTMy
KCVlZHgpLCVlZHgKIAl4b3JwcwkleG1tMCwleG1tMgotTDA0NWVuYzFfbG9vcF83OgorTDA0N2Vu
YzFfbG9vcF83OgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJ
KCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4Ci0Jam56CUwwNDVlbmMxX2xvb3BfNwor
CWpueglMMDQ3ZW5jMV9sb29wXzcKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjA5CiAJbW92dXBzCSgl
ZXNpKSwleG1tNgogCXhvcnBzCSV4bW0yLCV4bW02CiAJbW92dXBzCSV4bW02LCglZWRpKQotCWpt
cAlMMDQwY3RyMzJfcmV0CisJam1wCUwwNDJjdHIzMl9yZXQKIC5hbGlnbgk0LDB4OTAKLUwwNDJj
dHIzMl90d286CitMMDQ0Y3RyMzJfdHdvOgogCWNhbGwJX19hZXNuaV9lbmNyeXB0MgogCW1vdnVw
cwkoJWVzaSksJXhtbTUKIAltb3Z1cHMJMTYoJWVzaSksJXhtbTYKQEAgLTk4NSw5ICsxMDExLDkg
QEAgTDA0MmN0cjMyX3R3bzoKIAl4b3JwcwkleG1tNiwleG1tMwogCW1vdnVwcwkleG1tMiwoJWVk
aSkKIAltb3Z1cHMJJXhtbTMsMTYoJWVkaSkKLQlqbXAJTDA0MGN0cjMyX3JldAorCWptcAlMMDQy
Y3RyMzJfcmV0CiAuYWxpZ24JNCwweDkwCi1MMDQzY3RyMzJfdGhyZWU6CitMMDQ1Y3RyMzJfdGhy
ZWU6CiAJY2FsbAlfX2Flc25pX2VuY3J5cHQzCiAJbW92dXBzCSglZXNpKSwleG1tNQogCW1vdnVw
cwkxNiglZXNpKSwleG1tNgpAQCAtOTk4LDkgKzEwMjQsOSBAQCBMMDQzY3RyMzJfdGhyZWU6CiAJ
eG9ycHMJJXhtbTcsJXhtbTQKIAltb3Z1cHMJJXhtbTMsMTYoJWVkaSkKIAltb3Z1cHMJJXhtbTQs
MzIoJWVkaSkKLQlqbXAJTDA0MGN0cjMyX3JldAorCWptcAlMMDQyY3RyMzJfcmV0CiAuYWxpZ24J
NCwweDkwCi1MMDQ0Y3RyMzJfZm91cjoKK0wwNDZjdHIzMl9mb3VyOgogCWNhbGwJX19hZXNuaV9l
bmNyeXB0NAogCW1vdnVwcwkoJWVzaSksJXhtbTYKIAltb3Z1cHMJMTYoJWVzaSksJXhtbTcKQEAg
LTEwMTQsNyArMTA0MCw3IEBAIEwwNDRjdHIzMl9mb3VyOgogCXhvcnBzCSV4bW0wLCV4bW01CiAJ
bW92dXBzCSV4bW00LDMyKCVlZGkpCiAJbW92dXBzCSV4bW01LDQ4KCVlZGkpCi1MMDQwY3RyMzJf
cmV0OgorTDA0MmN0cjMyX3JldDoKIAlweG9yCSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1t
MQogCXB4b3IJJXhtbTIsJXhtbTIKQEAgLTEwNDksMTIgKzEwNzUsMTIgQEAgTF9hZXNfaHdfeHRz
X2VuY3J5cHRfYmVnaW46CiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwl
ZWR4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLUwwNDZlbmMxX2xvb3BfODoKK0wwNDhlbmMxX2xvb3Bf
ODoKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjbAklZWN4CiAJbW92dXBzCSglZWR4KSwl
eG1tMQogCWxlYWwJMTYoJWVkeCksJWVkeAotCWpueglMMDQ2ZW5jMV9sb29wXzgKKwlqbnoJTDA0
OGVuYzFfbG9vcF84CiAuYnl0ZQkxMDIsMTUsNTYsMjIxLDIwOQogCW1vdmwJMjAoJWVzcCksJWVz
aQogCW1vdmwJMjQoJWVzcCksJWVkaQpAQCAtMTA3OCwxNCArMTEwNCwxNCBAQCBMMDQ2ZW5jMV9s
b29wXzg6CiAJbW92bAklZWR4LCVlYnAKIAltb3ZsCSVlY3gsJWVieAogCXN1YmwJJDk2LCVlYXgK
LQlqYwlMMDQ3eHRzX2VuY19zaG9ydAorCWpjCUwwNDl4dHNfZW5jX3Nob3J0CiAJc2hsbAkkNCwl
ZWN4CiAJbW92bAkkMTYsJWVieAogCXN1YmwJJWVjeCwlZWJ4CiAJbGVhbAkzMiglZWR4LCVlY3gs
MSksJWVkeAotCWptcAlMMDQ4eHRzX2VuY19sb29wNgorCWptcAlMMDUweHRzX2VuY19sb29wNgog
LmFsaWduCTQsMHg5MAotTDA0OHh0c19lbmNfbG9vcDY6CitMMDUweHRzX2VuY19sb29wNjoKIAlw
c2h1ZmQJJDE5LCV4bW0wLCV4bW0yCiAJcHhvcgkleG1tMCwleG1tMAogCW1vdmRxYQkleG1tMSwo
JWVzcCkKQEAgLTExNzQsMjMgKzEyMDAsMjMgQEAgTDA0OHh0c19lbmNfbG9vcDY6CiAJcGNtcGd0
ZAkleG1tMSwleG1tMAogCXB4b3IJJXhtbTIsJXhtbTEKIAlzdWJsCSQ5NiwlZWF4Ci0Jam5jCUww
NDh4dHNfZW5jX2xvb3A2CisJam5jCUwwNTB4dHNfZW5jX2xvb3A2CiAJbW92bAkyNDAoJWVicCks
JWVjeAogCW1vdmwJJWVicCwlZWR4CiAJbW92bAklZWN4LCVlYngKLUwwNDd4dHNfZW5jX3Nob3J0
OgorTDA0OXh0c19lbmNfc2hvcnQ6CiAJYWRkbAkkOTYsJWVheAotCWp6CUwwNDl4dHNfZW5jX2Rv
bmU2eAorCWp6CUwwNTF4dHNfZW5jX2RvbmU2eAogCW1vdmRxYQkleG1tMSwleG1tNQogCWNtcGwJ
JDMyLCVlYXgKLQlqYglMMDUweHRzX2VuY19vbmUKKwlqYglMMDUyeHRzX2VuY19vbmUKIAlwc2h1
ZmQJJDE5LCV4bW0wLCV4bW0yCiAJcHhvcgkleG1tMCwleG1tMAogCXBhZGRxCSV4bW0xLCV4bW0x
CiAJcGFuZAkleG1tMywleG1tMgogCXBjbXBndGQJJXhtbTEsJXhtbTAKIAlweG9yCSV4bW0yLCV4
bW0xCi0JamUJTDA1MXh0c19lbmNfdHdvCisJamUJTDA1M3h0c19lbmNfdHdvCiAJcHNodWZkCSQx
OSwleG1tMCwleG1tMgogCXB4b3IJJXhtbTAsJXhtbTAKIAltb3ZkcWEJJXhtbTEsJXhtbTYKQEAg
LTExOTksNyArMTIyNSw3IEBAIEwwNDd4dHNfZW5jX3Nob3J0OgogCXBjbXBndGQJJXhtbTEsJXht
bTAKIAlweG9yCSV4bW0yLCV4bW0xCiAJY21wbAkkNjQsJWVheAotCWpiCUwwNTJ4dHNfZW5jX3Ro
cmVlCisJamIJTDA1NHh0c19lbmNfdGhyZWUKIAlwc2h1ZmQJJDE5LCV4bW0wLCV4bW0yCiAJcHhv
cgkleG1tMCwleG1tMAogCW1vdmRxYQkleG1tMSwleG1tNwpAQCAtMTIwOSw3ICsxMjM1LDcgQEAg
TDA0N3h0c19lbmNfc2hvcnQ6CiAJcHhvcgkleG1tMiwleG1tMQogCW1vdmRxYQkleG1tNSwoJWVz
cCkKIAltb3ZkcWEJJXhtbTYsMTYoJWVzcCkKLQlqZQlMMDUzeHRzX2VuY19mb3VyCisJamUJTDA1
NXh0c19lbmNfZm91cgogCW1vdmRxYQkleG1tNywzMiglZXNwKQogCXBzaHVmZAkkMTksJXhtbTAs
JXhtbTcKIAltb3ZkcWEJJXhtbTEsNDgoJWVzcCkKQEAgLTEyNDEsOSArMTI2Nyw5IEBAIEwwNDd4
dHNfZW5jX3Nob3J0OgogCW1vdnVwcwkleG1tNSw0OCglZWRpKQogCW1vdnVwcwkleG1tNiw2NCgl
ZWRpKQogCWxlYWwJODAoJWVkaSksJWVkaQotCWptcAlMMDU0eHRzX2VuY19kb25lCisJam1wCUww
NTZ4dHNfZW5jX2RvbmUKIC5hbGlnbgk0LDB4OTAKLUwwNTB4dHNfZW5jX29uZToKK0wwNTJ4dHNf
ZW5jX29uZToKIAltb3Z1cHMJKCVlc2kpLCV4bW0yCiAJbGVhbAkxNiglZXNpKSwlZXNpCiAJeG9y
cHMJJXhtbTUsJXhtbTIKQEAgLTEyNTEsMjAgKzEyNzcsMjAgQEAgTDA1MHh0c19lbmNfb25lOgog
CW1vdnVwcwkxNiglZWR4KSwleG1tMQogCWxlYWwJMzIoJWVkeCksJWVkeAogCXhvcnBzCSV4bW0w
LCV4bW0yCi1MMDU1ZW5jMV9sb29wXzk6CitMMDU3ZW5jMV9sb29wXzk6CiAuYnl0ZQkxMDIsMTUs
NTYsMjIwLDIwOQogCWRlY2wJJWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVl
ZHgpLCVlZHgKLQlqbnoJTDA1NWVuYzFfbG9vcF85CisJam56CUwwNTdlbmMxX2xvb3BfOQogLmJ5
dGUJMTAyLDE1LDU2LDIyMSwyMDkKIAl4b3JwcwkleG1tNSwleG1tMgogCW1vdnVwcwkleG1tMiwo
JWVkaSkKIAlsZWFsCTE2KCVlZGkpLCVlZGkKIAltb3ZkcWEJJXhtbTUsJXhtbTEKLQlqbXAJTDA1
NHh0c19lbmNfZG9uZQorCWptcAlMMDU2eHRzX2VuY19kb25lCiAuYWxpZ24JNCwweDkwCi1MMDUx
eHRzX2VuY190d286CitMMDUzeHRzX2VuY190d286CiAJbW92YXBzCSV4bW0xLCV4bW02CiAJbW92
dXBzCSglZXNpKSwleG1tMgogCW1vdnVwcwkxNiglZXNpKSwleG1tMwpAQCAtMTI3OCw5ICsxMzA0
LDkgQEAgTDA1MXh0c19lbmNfdHdvOgogCW1vdnVwcwkleG1tMywxNiglZWRpKQogCWxlYWwJMzIo
JWVkaSksJWVkaQogCW1vdmRxYQkleG1tNiwleG1tMQotCWptcAlMMDU0eHRzX2VuY19kb25lCisJ
am1wCUwwNTZ4dHNfZW5jX2RvbmUKIC5hbGlnbgk0LDB4OTAKLUwwNTJ4dHNfZW5jX3RocmVlOgor
TDA1NHh0c19lbmNfdGhyZWU6CiAJbW92YXBzCSV4bW0xLCV4bW03CiAJbW92dXBzCSglZXNpKSwl
eG1tMgogCW1vdnVwcwkxNiglZXNpKSwleG1tMwpAQCAtMTI5OCw5ICsxMzI0LDkgQEAgTDA1Mnh0
c19lbmNfdGhyZWU6CiAJbW92dXBzCSV4bW00LDMyKCVlZGkpCiAJbGVhbAk0OCglZWRpKSwlZWRp
CiAJbW92ZHFhCSV4bW03LCV4bW0xCi0Jam1wCUwwNTR4dHNfZW5jX2RvbmUKKwlqbXAJTDA1Nnh0
c19lbmNfZG9uZQogLmFsaWduCTQsMHg5MAotTDA1M3h0c19lbmNfZm91cjoKK0wwNTV4dHNfZW5j
X2ZvdXI6CiAJbW92YXBzCSV4bW0xLCV4bW02CiAJbW92dXBzCSglZXNpKSwleG1tMgogCW1vdnVw
cwkxNiglZXNpKSwleG1tMwpAQCAtMTMyMiwyOCArMTM0OCwyOCBAQCBMMDUzeHRzX2VuY19mb3Vy
OgogCW1vdnVwcwkleG1tNSw0OCglZWRpKQogCWxlYWwJNjQoJWVkaSksJWVkaQogCW1vdmRxYQkl
eG1tNiwleG1tMQotCWptcAlMMDU0eHRzX2VuY19kb25lCisJam1wCUwwNTZ4dHNfZW5jX2RvbmUK
IC5hbGlnbgk0LDB4OTAKLUwwNDl4dHNfZW5jX2RvbmU2eDoKK0wwNTF4dHNfZW5jX2RvbmU2eDoK
IAltb3ZsCTExMiglZXNwKSwlZWF4CiAJYW5kbAkkMTUsJWVheAotCWp6CUwwNTZ4dHNfZW5jX3Jl
dAorCWp6CUwwNTh4dHNfZW5jX3JldAogCW1vdmRxYQkleG1tMSwleG1tNQogCW1vdmwJJWVheCwx
MTIoJWVzcCkKLQlqbXAJTDA1N3h0c19lbmNfc3RlYWwKKwlqbXAJTDA1OXh0c19lbmNfc3RlYWwK
IC5hbGlnbgk0LDB4OTAKLUwwNTR4dHNfZW5jX2RvbmU6CitMMDU2eHRzX2VuY19kb25lOgogCW1v
dmwJMTEyKCVlc3ApLCVlYXgKIAlweG9yCSV4bW0wLCV4bW0wCiAJYW5kbAkkMTUsJWVheAotCWp6
CUwwNTZ4dHNfZW5jX3JldAorCWp6CUwwNTh4dHNfZW5jX3JldAogCXBjbXBndGQJJXhtbTEsJXht
bTAKIAltb3ZsCSVlYXgsMTEyKCVlc3ApCiAJcHNodWZkCSQxOSwleG1tMCwleG1tNQogCXBhZGRx
CSV4bW0xLCV4bW0xCiAJcGFuZAk5NiglZXNwKSwleG1tNQogCXB4b3IJJXhtbTEsJXhtbTUKLUww
NTd4dHNfZW5jX3N0ZWFsOgorTDA1OXh0c19lbmNfc3RlYWw6CiAJbW92emJsCSglZXNpKSwlZWN4
CiAJbW92emJsCS0xNiglZWRpKSwlZWR4CiAJbGVhbAkxKCVlc2kpLCVlc2kKQEAgLTEzNTEsNyAr
MTM3Nyw3IEBAIEwwNTd4dHNfZW5jX3N0ZWFsOgogCW1vdmIJJWRsLCglZWRpKQogCWxlYWwJMSgl
ZWRpKSwlZWRpCiAJc3VibAkkMSwlZWF4Ci0Jam56CUwwNTd4dHNfZW5jX3N0ZWFsCisJam56CUww
NTl4dHNfZW5jX3N0ZWFsCiAJc3VibAkxMTIoJWVzcCksJWVkaQogCW1vdmwJJWVicCwlZWR4CiAJ
bW92bAklZWJ4LCVlY3gKQEAgLTEzNjEsMTYgKzEzODcsMTYgQEAgTDA1N3h0c19lbmNfc3RlYWw6
CiAJbW92dXBzCTE2KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXht
bTAsJXhtbTIKLUwwNThlbmMxX2xvb3BfMTA6CitMMDYwZW5jMV9sb29wXzEwOgogLmJ5dGUJMTAy
LDE1LDU2LDIyMCwyMDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkx
NiglZWR4KSwlZWR4Ci0Jam56CUwwNThlbmMxX2xvb3BfMTAKKwlqbnoJTDA2MGVuYzFfbG9vcF8x
MAogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDkKIAl4b3JwcwkleG1tNSwleG1tMgogCW1vdnVwcwkl
eG1tMiwtMTYoJWVkaSkKLUwwNTZ4dHNfZW5jX3JldDoKK0wwNTh4dHNfZW5jX3JldDoKIAlweG9y
CSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMQogCXB4b3IJJXhtbTIsJXhtbTIKQEAgLTE0
MDgsMTIgKzE0MzQsMTIgQEAgTF9hZXNfaHdfeHRzX2RlY3J5cHRfYmVnaW46CiAJbW92dXBzCTE2
KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLUww
NTllbmMxX2xvb3BfMTE6CitMMDYxZW5jMV9sb29wXzExOgogLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4
Ci0Jam56CUwwNTllbmMxX2xvb3BfMTEKKwlqbnoJTDA2MWVuYzFfbG9vcF8xMQogLmJ5dGUJMTAy
LDE1LDU2LDIyMSwyMDkKIAltb3ZsCTIwKCVlc3ApLCVlc2kKIAltb3ZsCTI0KCVlc3ApLCVlZGkK
QEAgLTE0NDIsMTQgKzE0NjgsMTQgQEAgTDA1OWVuYzFfbG9vcF8xMToKIAlwY21wZ3RkCSV4bW0x
LCV4bW0wCiAJYW5kbAkkLTE2LCVlYXgKIAlzdWJsCSQ5NiwlZWF4Ci0JamMJTDA2MHh0c19kZWNf
c2hvcnQKKwlqYwlMMDYyeHRzX2RlY19zaG9ydAogCXNobGwJJDQsJWVjeAogCW1vdmwJJDE2LCVl
YngKIAlzdWJsCSVlY3gsJWVieAogCWxlYWwJMzIoJWVkeCwlZWN4LDEpLCVlZHgKLQlqbXAJTDA2
MXh0c19kZWNfbG9vcDYKKwlqbXAJTDA2M3h0c19kZWNfbG9vcDYKIC5hbGlnbgk0LDB4OTAKLUww
NjF4dHNfZGVjX2xvb3A2OgorTDA2M3h0c19kZWNfbG9vcDY6CiAJcHNodWZkCSQxOSwleG1tMCwl
eG1tMgogCXB4b3IJJXhtbTAsJXhtbTAKIAltb3ZkcWEJJXhtbTEsKCVlc3ApCkBAIC0xNTM4LDIz
ICsxNTY0LDIzIEBAIEwwNjF4dHNfZGVjX2xvb3A2OgogCXBjbXBndGQJJXhtbTEsJXhtbTAKIAlw
eG9yCSV4bW0yLCV4bW0xCiAJc3VibAkkOTYsJWVheAotCWpuYwlMMDYxeHRzX2RlY19sb29wNgor
CWpuYwlMMDYzeHRzX2RlY19sb29wNgogCW1vdmwJMjQwKCVlYnApLCVlY3gKIAltb3ZsCSVlYnAs
JWVkeAogCW1vdmwJJWVjeCwlZWJ4Ci1MMDYweHRzX2RlY19zaG9ydDoKK0wwNjJ4dHNfZGVjX3No
b3J0OgogCWFkZGwJJDk2LCVlYXgKLQlqeglMMDYyeHRzX2RlY19kb25lNngKKwlqeglMMDY0eHRz
X2RlY19kb25lNngKIAltb3ZkcWEJJXhtbTEsJXhtbTUKIAljbXBsCSQzMiwlZWF4Ci0JamIJTDA2
M3h0c19kZWNfb25lCisJamIJTDA2NXh0c19kZWNfb25lCiAJcHNodWZkCSQxOSwleG1tMCwleG1t
MgogCXB4b3IJJXhtbTAsJXhtbTAKIAlwYWRkcQkleG1tMSwleG1tMQogCXBhbmQJJXhtbTMsJXht
bTIKIAlwY21wZ3RkCSV4bW0xLCV4bW0wCiAJcHhvcgkleG1tMiwleG1tMQotCWplCUwwNjR4dHNf
ZGVjX3R3bworCWplCUwwNjZ4dHNfZGVjX3R3bwogCXBzaHVmZAkkMTksJXhtbTAsJXhtbTIKIAlw
eG9yCSV4bW0wLCV4bW0wCiAJbW92ZHFhCSV4bW0xLCV4bW02CkBAIC0xNTYzLDcgKzE1ODksNyBA
QCBMMDYweHRzX2RlY19zaG9ydDoKIAlwY21wZ3RkCSV4bW0xLCV4bW0wCiAJcHhvcgkleG1tMiwl
eG1tMQogCWNtcGwJJDY0LCVlYXgKLQlqYglMMDY1eHRzX2RlY190aHJlZQorCWpiCUwwNjd4dHNf
ZGVjX3RocmVlCiAJcHNodWZkCSQxOSwleG1tMCwleG1tMgogCXB4b3IJJXhtbTAsJXhtbTAKIAlt
b3ZkcWEJJXhtbTEsJXhtbTcKQEAgLTE1NzMsNyArMTU5OSw3IEBAIEwwNjB4dHNfZGVjX3Nob3J0
OgogCXB4b3IJJXhtbTIsJXhtbTEKIAltb3ZkcWEJJXhtbTUsKCVlc3ApCiAJbW92ZHFhCSV4bW02
LDE2KCVlc3ApCi0JamUJTDA2Nnh0c19kZWNfZm91cgorCWplCUwwNjh4dHNfZGVjX2ZvdXIKIAlt
b3ZkcWEJJXhtbTcsMzIoJWVzcCkKIAlwc2h1ZmQJJDE5LCV4bW0wLCV4bW03CiAJbW92ZHFhCSV4
bW0xLDQ4KCVlc3ApCkBAIC0xNjA1LDkgKzE2MzEsOSBAQCBMMDYweHRzX2RlY19zaG9ydDoKIAlt
b3Z1cHMJJXhtbTUsNDgoJWVkaSkKIAltb3Z1cHMJJXhtbTYsNjQoJWVkaSkKIAlsZWFsCTgwKCVl
ZGkpLCVlZGkKLQlqbXAJTDA2N3h0c19kZWNfZG9uZQorCWptcAlMMDY5eHRzX2RlY19kb25lCiAu
YWxpZ24JNCwweDkwCi1MMDYzeHRzX2RlY19vbmU6CitMMDY1eHRzX2RlY19vbmU6CiAJbW92dXBz
CSglZXNpKSwleG1tMgogCWxlYWwJMTYoJWVzaSksJWVzaQogCXhvcnBzCSV4bW01LCV4bW0yCkBA
IC0xNjE1LDIwICsxNjQxLDIwIEBAIEwwNjN4dHNfZGVjX29uZToKIAltb3Z1cHMJMTYoJWVkeCks
JXhtbTEKIAlsZWFsCTMyKCVlZHgpLCVlZHgKIAl4b3JwcwkleG1tMCwleG1tMgotTDA2OGRlYzFf
bG9vcF8xMjoKK0wwNzBkZWMxX2xvb3BfMTI6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogCWRl
Y2wJJWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVlZHgpLCVlZHgKLQlqbnoJ
TDA2OGRlYzFfbG9vcF8xMgorCWpueglMMDcwZGVjMV9sb29wXzEyCiAuYnl0ZQkxMDIsMTUsNTYs
MjIzLDIwOQogCXhvcnBzCSV4bW01LCV4bW0yCiAJbW92dXBzCSV4bW0yLCglZWRpKQogCWxlYWwJ
MTYoJWVkaSksJWVkaQogCW1vdmRxYQkleG1tNSwleG1tMQotCWptcAlMMDY3eHRzX2RlY19kb25l
CisJam1wCUwwNjl4dHNfZGVjX2RvbmUKIC5hbGlnbgk0LDB4OTAKLUwwNjR4dHNfZGVjX3R3bzoK
K0wwNjZ4dHNfZGVjX3R3bzoKIAltb3ZhcHMJJXhtbTEsJXhtbTYKIAltb3Z1cHMJKCVlc2kpLCV4
bW0yCiAJbW92dXBzCTE2KCVlc2kpLCV4bW0zCkBAIC0xNjQyLDkgKzE2NjgsOSBAQCBMMDY0eHRz
X2RlY190d286CiAJbW92dXBzCSV4bW0zLDE2KCVlZGkpCiAJbGVhbAkzMiglZWRpKSwlZWRpCiAJ
bW92ZHFhCSV4bW02LCV4bW0xCi0Jam1wCUwwNjd4dHNfZGVjX2RvbmUKKwlqbXAJTDA2OXh0c19k
ZWNfZG9uZQogLmFsaWduCTQsMHg5MAotTDA2NXh0c19kZWNfdGhyZWU6CitMMDY3eHRzX2RlY190
aHJlZToKIAltb3ZhcHMJJXhtbTEsJXhtbTcKIAltb3Z1cHMJKCVlc2kpLCV4bW0yCiAJbW92dXBz
CTE2KCVlc2kpLCV4bW0zCkBAIC0xNjYyLDkgKzE2ODgsOSBAQCBMMDY1eHRzX2RlY190aHJlZToK
IAltb3Z1cHMJJXhtbTQsMzIoJWVkaSkKIAlsZWFsCTQ4KCVlZGkpLCVlZGkKIAltb3ZkcWEJJXht
bTcsJXhtbTEKLQlqbXAJTDA2N3h0c19kZWNfZG9uZQorCWptcAlMMDY5eHRzX2RlY19kb25lCiAu
YWxpZ24JNCwweDkwCi1MMDY2eHRzX2RlY19mb3VyOgorTDA2OHh0c19kZWNfZm91cjoKIAltb3Zh
cHMJJXhtbTEsJXhtbTYKIAltb3Z1cHMJKCVlc2kpLCV4bW0yCiAJbW92dXBzCTE2KCVlc2kpLCV4
bW0zCkBAIC0xNjg2LDIwICsxNzEyLDIwIEBAIEwwNjZ4dHNfZGVjX2ZvdXI6CiAJbW92dXBzCSV4
bW01LDQ4KCVlZGkpCiAJbGVhbAk2NCglZWRpKSwlZWRpCiAJbW92ZHFhCSV4bW02LCV4bW0xCi0J
am1wCUwwNjd4dHNfZGVjX2RvbmUKKwlqbXAJTDA2OXh0c19kZWNfZG9uZQogLmFsaWduCTQsMHg5
MAotTDA2Mnh0c19kZWNfZG9uZTZ4OgorTDA2NHh0c19kZWNfZG9uZTZ4OgogCW1vdmwJMTEyKCVl
c3ApLCVlYXgKIAlhbmRsCSQxNSwlZWF4Ci0JanoJTDA2OXh0c19kZWNfcmV0CisJanoJTDA3MXh0
c19kZWNfcmV0CiAJbW92bAklZWF4LDExMiglZXNwKQotCWptcAlMMDcweHRzX2RlY19vbmx5X29u
ZV9tb3JlCisJam1wCUwwNzJ4dHNfZGVjX29ubHlfb25lX21vcmUKIC5hbGlnbgk0LDB4OTAKLUww
Njd4dHNfZGVjX2RvbmU6CitMMDY5eHRzX2RlY19kb25lOgogCW1vdmwJMTEyKCVlc3ApLCVlYXgK
IAlweG9yCSV4bW0wLCV4bW0wCiAJYW5kbAkkMTUsJWVheAotCWp6CUwwNjl4dHNfZGVjX3JldAor
CWp6CUwwNzF4dHNfZGVjX3JldAogCXBjbXBndGQJJXhtbTEsJXhtbTAKIAltb3ZsCSVlYXgsMTEy
KCVlc3ApCiAJcHNodWZkCSQxOSwleG1tMCwleG1tMgpAQCAtMTcwOSw3ICsxNzM1LDcgQEAgTDA2
N3h0c19kZWNfZG9uZToKIAlwYW5kCSV4bW0zLCV4bW0yCiAJcGNtcGd0ZAkleG1tMSwleG1tMAog
CXB4b3IJJXhtbTIsJXhtbTEKLUwwNzB4dHNfZGVjX29ubHlfb25lX21vcmU6CitMMDcyeHRzX2Rl
Y19vbmx5X29uZV9tb3JlOgogCXBzaHVmZAkkMTksJXhtbTAsJXhtbTUKIAltb3ZkcWEJJXhtbTEs
JXhtbTYKIAlwYWRkcQkleG1tMSwleG1tMQpAQCAtMTcyMywxNiArMTc0OSwxNiBAQCBMMDcweHRz
X2RlY19vbmx5X29uZV9tb3JlOgogCW1vdnVwcwkxNiglZWR4KSwleG1tMQogCWxlYWwJMzIoJWVk
eCksJWVkeAogCXhvcnBzCSV4bW0wLCV4bW0yCi1MMDcxZGVjMV9sb29wXzEzOgorTDA3M2RlYzFf
bG9vcF8xMzoKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5CiAJZGVjbAklZWN4CiAJbW92dXBzCSgl
ZWR4KSwleG1tMQogCWxlYWwJMTYoJWVkeCksJWVkeAotCWpueglMMDcxZGVjMV9sb29wXzEzCisJ
am56CUwwNzNkZWMxX2xvb3BfMTMKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5CiAJeG9ycHMJJXht
bTUsJXhtbTIKIAltb3Z1cHMJJXhtbTIsKCVlZGkpCi1MMDcyeHRzX2RlY19zdGVhbDoKK0wwNzR4
dHNfZGVjX3N0ZWFsOgogCW1vdnpibAkxNiglZXNpKSwlZWN4CiAJbW92emJsCSglZWRpKSwlZWR4
CiAJbGVhbAkxKCVlc2kpLCVlc2kKQEAgLTE3NDAsNyArMTc2Niw3IEBAIEwwNzJ4dHNfZGVjX3N0
ZWFsOgogCW1vdmIJJWRsLDE2KCVlZGkpCiAJbGVhbAkxKCVlZGkpLCVlZGkKIAlzdWJsCSQxLCVl
YXgKLQlqbnoJTDA3Mnh0c19kZWNfc3RlYWwKKwlqbnoJTDA3NHh0c19kZWNfc3RlYWwKIAlzdWJs
CTExMiglZXNwKSwlZWRpCiAJbW92bAklZWJwLCVlZHgKIAltb3ZsCSVlYngsJWVjeApAQCAtMTc1
MCwxNiArMTc3NiwxNiBAQCBMMDcyeHRzX2RlY19zdGVhbDoKIAltb3Z1cHMJMTYoJWVkeCksJXht
bTEKIAlsZWFsCTMyKCVlZHgpLCVlZHgKIAl4b3JwcwkleG1tMCwleG1tMgotTDA3M2RlYzFfbG9v
cF8xNDoKK0wwNzVkZWMxX2xvb3BfMTQ6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogCWRlY2wJ
JWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVlZHgpLCVlZHgKLQlqbnoJTDA3
M2RlYzFfbG9vcF8xNAorCWpueglMMDc1ZGVjMV9sb29wXzE0CiAuYnl0ZQkxMDIsMTUsNTYsMjIz
LDIwOQogCXhvcnBzCSV4bW02LCV4bW0yCiAJbW92dXBzCSV4bW0yLCglZWRpKQotTDA2OXh0c19k
ZWNfcmV0OgorTDA3MXh0c19kZWNfcmV0OgogCXB4b3IJJXhtbTAsJXhtbTAKIAlweG9yCSV4bW0x
LCV4bW0xCiAJcHhvcgkleG1tMiwleG1tMgpAQCAtMTc5OCw3ICsxODI0LDcgQEAgTF9hZXNfaHdf
Y2JjX2VuY3J5cHRfYmVnaW46CiAJbW92bAkzMiglZXNwKSwlZWR4CiAJbW92bAkzNiglZXNwKSwl
ZWJwCiAJdGVzdGwJJWVheCwlZWF4Ci0JanoJTDA3NGNiY19hYm9ydAorCWp6CUwwNzZjYmNfYWJv
cnQKIAljbXBsCSQwLDQwKCVlc3ApCiAJeGNoZ2wJJWVzcCwlZWJ4CiAJbW92dXBzCSglZWJwKSwl
eG1tNwpAQCAtMTgwNiwxNCArMTgzMiwxNCBAQCBMX2Flc19od19jYmNfZW5jcnlwdF9iZWdpbjoK
IAltb3ZsCSVlZHgsJWVicAogCW1vdmwJJWVieCwxNiglZXNwKQogCW1vdmwJJWVjeCwlZWJ4Ci0J
amUJTDA3NWNiY19kZWNyeXB0CisJamUJTDA3N2NiY19kZWNyeXB0CiAJbW92YXBzCSV4bW03LCV4
bW0yCiAJY21wbAkkMTYsJWVheAotCWpiCUwwNzZjYmNfZW5jX3RhaWwKKwlqYglMMDc4Y2JjX2Vu
Y190YWlsCiAJc3VibAkkMTYsJWVheAotCWptcAlMMDc3Y2JjX2VuY19sb29wCisJam1wCUwwNzlj
YmNfZW5jX2xvb3AKIC5hbGlnbgk0LDB4OTAKLUwwNzdjYmNfZW5jX2xvb3A6CitMMDc5Y2JjX2Vu
Y19sb29wOgogCW1vdnVwcwkoJWVzaSksJXhtbTcKIAlsZWFsCTE2KCVlc2kpLCVlc2kKIAltb3Z1
cHMJKCVlZHgpLCV4bW0wCkBAIC0xODIxLDI1ICsxODQ3LDI1IEBAIEwwNzdjYmNfZW5jX2xvb3A6
CiAJeG9ycHMJJXhtbTAsJXhtbTcKIAlsZWFsCTMyKCVlZHgpLCVlZHgKIAl4b3JwcwkleG1tNywl
eG1tMgotTDA3OGVuYzFfbG9vcF8xNToKK0wwODBlbmMxX2xvb3BfMTU6CiAuYnl0ZQkxMDIsMTUs
NTYsMjIwLDIwOQogCWRlY2wJJWVjeAogCW1vdnVwcwkoJWVkeCksJXhtbTEKIAlsZWFsCTE2KCVl
ZHgpLCVlZHgKLQlqbnoJTDA3OGVuYzFfbG9vcF8xNQorCWpueglMMDgwZW5jMV9sb29wXzE1CiAu
Ynl0ZQkxMDIsMTUsNTYsMjIxLDIwOQogCW1vdmwJJWVieCwlZWN4CiAJbW92bAklZWJwLCVlZHgK
IAltb3Z1cHMJJXhtbTIsKCVlZGkpCiAJbGVhbAkxNiglZWRpKSwlZWRpCiAJc3VibAkkMTYsJWVh
eAotCWpuYwlMMDc3Y2JjX2VuY19sb29wCisJam5jCUwwNzljYmNfZW5jX2xvb3AKIAlhZGRsCSQx
NiwlZWF4Ci0Jam56CUwwNzZjYmNfZW5jX3RhaWwKKwlqbnoJTDA3OGNiY19lbmNfdGFpbAogCW1v
dmFwcwkleG1tMiwleG1tNwogCXB4b3IJJXhtbTIsJXhtbTIKLQlqbXAJTDA3OWNiY19yZXQKLUww
NzZjYmNfZW5jX3RhaWw6CisJam1wCUwwODFjYmNfcmV0CitMMDc4Y2JjX2VuY190YWlsOgogCW1v
dmwJJWVheCwlZWN4CiAubG9uZwkyNzY3NDUxNzg1CiAJbW92bAkkMTYsJWVjeApAQCAtMTg1MCwy
MCArMTg3NiwyMCBAQCBMMDc2Y2JjX2VuY190YWlsOgogCW1vdmwJJWVieCwlZWN4CiAJbW92bAkl
ZWRpLCVlc2kKIAltb3ZsCSVlYnAsJWVkeAotCWptcAlMMDc3Y2JjX2VuY19sb29wCisJam1wCUww
NzljYmNfZW5jX2xvb3AKIC5hbGlnbgk0LDB4OTAKLUwwNzVjYmNfZGVjcnlwdDoKK0wwNzdjYmNf
ZGVjcnlwdDoKIAljbXBsCSQ4MCwlZWF4Ci0JamJlCUwwODBjYmNfZGVjX3RhaWwKKwlqYmUJTDA4
MmNiY19kZWNfdGFpbAogCW1vdmFwcwkleG1tNywoJWVzcCkKIAlzdWJsCSQ4MCwlZWF4Ci0Jam1w
CUwwODFjYmNfZGVjX2xvb3A2X2VudGVyCisJam1wCUwwODNjYmNfZGVjX2xvb3A2X2VudGVyCiAu
YWxpZ24JNCwweDkwCi1MMDgyY2JjX2RlY19sb29wNjoKK0wwODRjYmNfZGVjX2xvb3A2OgogCW1v
dmFwcwkleG1tMCwoJWVzcCkKIAltb3Z1cHMJJXhtbTcsKCVlZGkpCiAJbGVhbAkxNiglZWRpKSwl
ZWRpCi1MMDgxY2JjX2RlY19sb29wNl9lbnRlcjoKK0wwODNjYmNfZGVjX2xvb3A2X2VudGVyOgog
CW1vdmRxdQkoJWVzaSksJXhtbTIKIAltb3ZkcXUJMTYoJWVzaSksJXhtbTMKIAltb3ZkcXUJMzIo
JWVzaSksJXhtbTQKQEAgLTE4OTMsMjggKzE5MTksMjggQEAgTDA4MWNiY19kZWNfbG9vcDZfZW50
ZXI6CiAJbW92dXBzCSV4bW02LDY0KCVlZGkpCiAJbGVhbAk4MCglZWRpKSwlZWRpCiAJc3VibAkk
OTYsJWVheAotCWphCUwwODJjYmNfZGVjX2xvb3A2CisJamEJTDA4NGNiY19kZWNfbG9vcDYKIAlt
b3ZhcHMJJXhtbTcsJXhtbTIKIAltb3ZhcHMJJXhtbTAsJXhtbTcKIAlhZGRsCSQ4MCwlZWF4Ci0J
amxlCUwwODNjYmNfZGVjX2NsZWFyX3RhaWxfY29sbGVjdGVkCisJamxlCUwwODVjYmNfZGVjX2Ns
ZWFyX3RhaWxfY29sbGVjdGVkCiAJbW92dXBzCSV4bW0yLCglZWRpKQogCWxlYWwJMTYoJWVkaSks
JWVkaQotTDA4MGNiY19kZWNfdGFpbDoKK0wwODJjYmNfZGVjX3RhaWw6CiAJbW92dXBzCSglZXNp
KSwleG1tMgogCW1vdmFwcwkleG1tMiwleG1tNgogCWNtcGwJJDE2LCVlYXgKLQlqYmUJTDA4NGNi
Y19kZWNfb25lCisJamJlCUwwODZjYmNfZGVjX29uZQogCW1vdnVwcwkxNiglZXNpKSwleG1tMwog
CW1vdmFwcwkleG1tMywleG1tNQogCWNtcGwJJDMyLCVlYXgKLQlqYmUJTDA4NWNiY19kZWNfdHdv
CisJamJlCUwwODdjYmNfZGVjX3R3bwogCW1vdnVwcwkzMiglZXNpKSwleG1tNAogCWNtcGwJJDQ4
LCVlYXgKLQlqYmUJTDA4NmNiY19kZWNfdGhyZWUKKwlqYmUJTDA4OGNiY19kZWNfdGhyZWUKIAlt
b3Z1cHMJNDgoJWVzaSksJXhtbTUKIAljbXBsCSQ2NCwlZWF4Ci0JamJlCUwwODdjYmNfZGVjX2Zv
dXIKKwlqYmUJTDA4OWNiY19kZWNfZm91cgogCW1vdnVwcwk2NCglZXNpKSwleG1tNgogCW1vdmFw
cwkleG1tNywoJWVzcCkKIAltb3Z1cHMJKCVlc2kpLCV4bW0yCkBAIC0xOTQxLDI2ICsxOTY3LDI2
IEBAIEwwODBjYmNfZGVjX3RhaWw6CiAJbW92YXBzCSV4bW02LCV4bW0yCiAJcHhvcgkleG1tNiwl
eG1tNgogCXN1YmwJJDgwLCVlYXgKLQlqbXAJTDA4OGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKKwlq
bXAJTDA5MGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKIC5hbGlnbgk0LDB4OTAKLUwwODRjYmNfZGVj
X29uZToKK0wwODZjYmNfZGVjX29uZToKIAltb3Z1cHMJKCVlZHgpLCV4bW0wCiAJbW92dXBzCTE2
KCVlZHgpLCV4bW0xCiAJbGVhbAkzMiglZWR4KSwlZWR4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLUww
ODlkZWMxX2xvb3BfMTY6CitMMDkxZGVjMV9sb29wXzE2OgogLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MDkKIAlkZWNsCSVlY3gKIAltb3Z1cHMJKCVlZHgpLCV4bW0xCiAJbGVhbAkxNiglZWR4KSwlZWR4
Ci0Jam56CUwwODlkZWMxX2xvb3BfMTYKKwlqbnoJTDA5MWRlYzFfbG9vcF8xNgogLmJ5dGUJMTAy
LDE1LDU2LDIyMywyMDkKIAl4b3JwcwkleG1tNywleG1tMgogCW1vdmFwcwkleG1tNiwleG1tNwog
CXN1YmwJJDE2LCVlYXgKLQlqbXAJTDA4OGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKKwlqbXAJTDA5
MGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKIC5hbGlnbgk0LDB4OTAKLUwwODVjYmNfZGVjX3R3bzoK
K0wwODdjYmNfZGVjX3R3bzoKIAljYWxsCV9fYWVzbmlfZGVjcnlwdDIKIAl4b3JwcwkleG1tNywl
eG1tMgogCXhvcnBzCSV4bW02LCV4bW0zCkBAIC0xOTcwLDkgKzE5OTYsOSBAQCBMMDg1Y2JjX2Rl
Y190d286CiAJbGVhbAkxNiglZWRpKSwlZWRpCiAJbW92YXBzCSV4bW01LCV4bW03CiAJc3VibAkk
MzIsJWVheAotCWptcAlMMDg4Y2JjX2RlY190YWlsX2NvbGxlY3RlZAorCWptcAlMMDkwY2JjX2Rl
Y190YWlsX2NvbGxlY3RlZAogLmFsaWduCTQsMHg5MAotTDA4NmNiY19kZWNfdGhyZWU6CitMMDg4
Y2JjX2RlY190aHJlZToKIAljYWxsCV9fYWVzbmlfZGVjcnlwdDMKIAl4b3JwcwkleG1tNywleG1t
MgogCXhvcnBzCSV4bW02LCV4bW0zCkBAIC0xOTg1LDkgKzIwMTEsOSBAQCBMMDg2Y2JjX2RlY190
aHJlZToKIAlsZWFsCTMyKCVlZGkpLCVlZGkKIAltb3Z1cHMJMzIoJWVzaSksJXhtbTcKIAlzdWJs
CSQ0OCwlZWF4Ci0Jam1wCUwwODhjYmNfZGVjX3RhaWxfY29sbGVjdGVkCisJam1wCUwwOTBjYmNf
ZGVjX3RhaWxfY29sbGVjdGVkCiAuYWxpZ24JNCwweDkwCi1MMDg3Y2JjX2RlY19mb3VyOgorTDA4
OWNiY19kZWNfZm91cjoKIAljYWxsCV9fYWVzbmlfZGVjcnlwdDQKIAltb3Z1cHMJMTYoJWVzaSks
JXhtbTEKIAltb3Z1cHMJMzIoJWVzaSksJXhtbTAKQEAgLTIwMDUsMjEgKzIwMzEsMjEgQEAgTDA4
N2NiY19kZWNfZm91cjoKIAltb3ZhcHMJJXhtbTUsJXhtbTIKIAlweG9yCSV4bW01LCV4bW01CiAJ
c3VibAkkNjQsJWVheAotCWptcAlMMDg4Y2JjX2RlY190YWlsX2NvbGxlY3RlZAorCWptcAlMMDkw
Y2JjX2RlY190YWlsX2NvbGxlY3RlZAogLmFsaWduCTQsMHg5MAotTDA4M2NiY19kZWNfY2xlYXJf
dGFpbF9jb2xsZWN0ZWQ6CitMMDg1Y2JjX2RlY19jbGVhcl90YWlsX2NvbGxlY3RlZDoKIAlweG9y
CSV4bW0zLCV4bW0zCiAJcHhvcgkleG1tNCwleG1tNAogCXB4b3IJJXhtbTUsJXhtbTUKIAlweG9y
CSV4bW02LCV4bW02Ci1MMDg4Y2JjX2RlY190YWlsX2NvbGxlY3RlZDoKK0wwOTBjYmNfZGVjX3Rh
aWxfY29sbGVjdGVkOgogCWFuZGwJJDE1LCVlYXgKLQlqbnoJTDA5MGNiY19kZWNfdGFpbF9wYXJ0
aWFsCisJam56CUwwOTJjYmNfZGVjX3RhaWxfcGFydGlhbAogCW1vdnVwcwkleG1tMiwoJWVkaSkK
IAlweG9yCSV4bW0wLCV4bW0wCi0Jam1wCUwwNzljYmNfcmV0CisJam1wCUwwODFjYmNfcmV0CiAu
YWxpZ24JNCwweDkwCi1MMDkwY2JjX2RlY190YWlsX3BhcnRpYWw6CitMMDkyY2JjX2RlY190YWls
X3BhcnRpYWw6CiAJbW92YXBzCSV4bW0yLCglZXNwKQogCXB4b3IJJXhtbTAsJXhtbTAKIAltb3Zs
CSQxNiwlZWN4CkBAIC0yMDI3LDE0ICsyMDUzLDE0IEBAIEwwOTBjYmNfZGVjX3RhaWxfcGFydGlh
bDoKIAlzdWJsCSVlYXgsJWVjeAogLmxvbmcJMjc2NzQ1MTc4NQogCW1vdmRxYQkleG1tMiwoJWVz
cCkKLUwwNzljYmNfcmV0OgorTDA4MWNiY19yZXQ6CiAJbW92bAkxNiglZXNwKSwlZXNwCiAJbW92
bAkzNiglZXNwKSwlZWJwCiAJcHhvcgkleG1tMiwleG1tMgogCXB4b3IJJXhtbTEsJXhtbTEKIAlt
b3Z1cHMJJXhtbTcsKCVlYnApCiAJcHhvcgkleG1tNywleG1tNwotTDA3NGNiY19hYm9ydDoKK0ww
NzZjYmNfYWJvcnQ6CiAJcG9wbAklZWRpCiAJcG9wbAklZXNpCiAJcG9wbAklZWJ4CkBAIC0yMDQ2
LDEzICsyMDcyLDEzIEBAIF9fYWVzbmlfc2V0X2VuY3J5cHRfa2V5OgogCXB1c2hsCSVlYnAKIAlw
dXNobAklZWJ4CiAJdGVzdGwJJWVheCwlZWF4Ci0JanoJTDA5MWJhZF9wb2ludGVyCisJanoJTDA5
M2JhZF9wb2ludGVyCiAJdGVzdGwJJWVkeCwlZWR4Ci0JanoJTDA5MWJhZF9wb2ludGVyCi0JY2Fs
bAlMMDkycGljCi1MMDkycGljOgorCWp6CUwwOTNiYWRfcG9pbnRlcgorCWNhbGwJTDA5NHBpYwor
TDA5NHBpYzoKIAlwb3BsCSVlYngKLQlsZWFsCUxrZXlfY29uc3QtTDA5MnBpYyglZWJ4KSwlZWJ4
CisJbGVhbAlMa2V5X2NvbnN0LUwwOTRwaWMoJWVieCksJWVieAogCW1vdmwJTF9PUEVOU1NMX2lh
MzJjYXBfUCRub25fbGF6eV9wdHItTGtleV9jb25zdCglZWJ4KSwlZWJwCiAJbW92dXBzCSglZWF4
KSwleG1tMAogCXhvcnBzCSV4bW00LCV4bW00CkBAIC0yMDYwLDQ1ICsyMDg2LDQ1IEBAIEwwOTJw
aWM6CiAJbGVhbAkxNiglZWR4KSwlZWR4CiAJYW5kbAkkMjY4NDM3NTA0LCVlYnAKIAljbXBsCSQy
NTYsJWVjeAotCWplCUwwOTMxNHJvdW5kcworCWplCUwwOTUxNHJvdW5kcwogCWNtcGwJJDE5Miwl
ZWN4Ci0JamUJTDA5NDEycm91bmRzCisJamUJTDA5NjEycm91bmRzCiAJY21wbAkkMTI4LCVlY3gK
LQlqbmUJTDA5NWJhZF9rZXliaXRzCisJam5lCUwwOTdiYWRfa2V5Yml0cwogLmFsaWduCTQsMHg5
MAotTDA5NjEwcm91bmRzOgorTDA5ODEwcm91bmRzOgogCWNtcGwJJDI2ODQzNTQ1NiwlZWJwCi0J
amUJTDA5NzEwcm91bmRzX2FsdAorCWplCUwwOTkxMHJvdW5kc19hbHQKIAltb3ZsCSQ5LCVlY3gK
IAltb3Z1cHMJJXhtbTAsLTE2KCVlZHgpCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCwxCi0JY2Fs
bAlMMDk4a2V5XzEyOF9jb2xkCisJY2FsbAlMMTAwa2V5XzEyOF9jb2xkCiAuYnl0ZQkxMDIsMTUs
NTgsMjIzLDIwMCwyCi0JY2FsbAlMMDk5a2V5XzEyOAorCWNhbGwJTDEwMWtleV8xMjgKIC5ieXRl
CTEwMiwxNSw1OCwyMjMsMjAwLDQKLQljYWxsCUwwOTlrZXlfMTI4CisJY2FsbAlMMTAxa2V5XzEy
OAogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDAsOAotCWNhbGwJTDA5OWtleV8xMjgKKwljYWxsCUwx
MDFrZXlfMTI4CiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCwxNgotCWNhbGwJTDA5OWtleV8xMjgK
KwljYWxsCUwxMDFrZXlfMTI4CiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCwzMgotCWNhbGwJTDA5
OWtleV8xMjgKKwljYWxsCUwxMDFrZXlfMTI4CiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMCw2NAot
CWNhbGwJTDA5OWtleV8xMjgKKwljYWxsCUwxMDFrZXlfMTI4CiAuYnl0ZQkxMDIsMTUsNTgsMjIz
LDIwMCwxMjgKLQljYWxsCUwwOTlrZXlfMTI4CisJY2FsbAlMMTAxa2V5XzEyOAogLmJ5dGUJMTAy
LDE1LDU4LDIyMywyMDAsMjcKLQljYWxsCUwwOTlrZXlfMTI4CisJY2FsbAlMMTAxa2V5XzEyOAog
LmJ5dGUJMTAyLDE1LDU4LDIyMywyMDAsNTQKLQljYWxsCUwwOTlrZXlfMTI4CisJY2FsbAlMMTAx
a2V5XzEyOAogCW1vdnVwcwkleG1tMCwoJWVkeCkKIAltb3ZsCSVlY3gsODAoJWVkeCkKLQlqbXAJ
TDEwMGdvb2Rfa2V5CisJam1wCUwxMDJnb29kX2tleQogLmFsaWduCTQsMHg5MAotTDA5OWtleV8x
Mjg6CitMMTAxa2V5XzEyODoKIAltb3Z1cHMJJXhtbTAsKCVlZHgpCiAJbGVhbAkxNiglZWR4KSwl
ZWR4Ci1MMDk4a2V5XzEyOF9jb2xkOgorTDEwMGtleV8xMjhfY29sZDoKIAlzaHVmcHMJJDE2LCV4
bW0wLCV4bW00CiAJeG9ycHMJJXhtbTQsJXhtbTAKIAlzaHVmcHMJJDE0MCwleG1tMCwleG1tNApA
QCAtMjEwNywxMyArMjEzMywxMyBAQCBMMDk4a2V5XzEyOF9jb2xkOgogCXhvcnBzCSV4bW0xLCV4
bW0wCiAJcmV0CiAuYWxpZ24JNCwweDkwCi1MMDk3MTByb3VuZHNfYWx0OgorTDA5OTEwcm91bmRz
X2FsdDoKIAltb3ZkcWEJKCVlYngpLCV4bW01CiAJbW92bAkkOCwlZWN4CiAJbW92ZHFhCTMyKCVl
YngpLCV4bW00CiAJbW92ZHFhCSV4bW0wLCV4bW0yCiAJbW92ZHF1CSV4bW0wLC0xNiglZWR4KQot
TDEwMWxvb3Bfa2V5MTI4OgorTDEwM2xvb3Bfa2V5MTI4OgogLmJ5dGUJMTAyLDE1LDU2LDAsMTk3
CiAuYnl0ZQkxMDIsMTUsNTYsMjIxLDE5NgogCXBzbGxkCSQxLCV4bW00CkBAIC0yMTI5LDcgKzIx
NTUsNyBAQCBMMTAxbG9vcF9rZXkxMjg6CiAJbW92ZHF1CSV4bW0wLC0xNiglZWR4KQogCW1vdmRx
YQkleG1tMCwleG1tMgogCWRlY2wJJWVjeAotCWpueglMMTAxbG9vcF9rZXkxMjgKKwlqbnoJTDEw
M2xvb3Bfa2V5MTI4CiAJbW92ZHFhCTQ4KCVlYngpLCV4bW00CiAuYnl0ZQkxMDIsMTUsNTYsMCwx
OTcKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMTk2CkBAIC0yMTU3LDQxICsyMTgzLDQxIEBAIEwxMDFs
b29wX2tleTEyODoKIAltb3ZkcXUJJXhtbTAsMTYoJWVkeCkKIAltb3ZsCSQ5LCVlY3gKIAltb3Zs
CSVlY3gsOTYoJWVkeCkKLQlqbXAJTDEwMGdvb2Rfa2V5CisJam1wCUwxMDJnb29kX2tleQogLmFs
aWduCTQsMHg5MAotTDA5NDEycm91bmRzOgorTDA5NjEycm91bmRzOgogCW1vdnEJMTYoJWVheCks
JXhtbTIKIAljbXBsCSQyNjg0MzU0NTYsJWVicAotCWplCUwxMDIxMnJvdW5kc19hbHQKKwlqZQlM
MTA0MTJyb3VuZHNfYWx0CiAJbW92bAkkMTEsJWVjeAogCW1vdnVwcwkleG1tMCwtMTYoJWVkeCkK
IC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAyLDEKLQljYWxsCUwxMDNrZXlfMTkyYV9jb2xkCisJY2Fs
bAlMMTA1a2V5XzE5MmFfY29sZAogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDIsMgotCWNhbGwJTDEw
NGtleV8xOTJiCisJY2FsbAlMMTA2a2V5XzE5MmIKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAyLDQK
LQljYWxsCUwxMDVrZXlfMTkyYQorCWNhbGwJTDEwN2tleV8xOTJhCiAuYnl0ZQkxMDIsMTUsNTgs
MjIzLDIwMiw4Ci0JY2FsbAlMMTA0a2V5XzE5MmIKKwljYWxsCUwxMDZrZXlfMTkyYgogLmJ5dGUJ
MTAyLDE1LDU4LDIyMywyMDIsMTYKLQljYWxsCUwxMDVrZXlfMTkyYQorCWNhbGwJTDEwN2tleV8x
OTJhCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMiwzMgotCWNhbGwJTDEwNGtleV8xOTJiCisJY2Fs
bAlMMTA2a2V5XzE5MmIKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAyLDY0Ci0JY2FsbAlMMTA1a2V5
XzE5MmEKKwljYWxsCUwxMDdrZXlfMTkyYQogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDIsMTI4Ci0J
Y2FsbAlMMTA0a2V5XzE5MmIKKwljYWxsCUwxMDZrZXlfMTkyYgogCW1vdnVwcwkleG1tMCwoJWVk
eCkKIAltb3ZsCSVlY3gsNDgoJWVkeCkKLQlqbXAJTDEwMGdvb2Rfa2V5CisJam1wCUwxMDJnb29k
X2tleQogLmFsaWduCTQsMHg5MAotTDEwNWtleV8xOTJhOgorTDEwN2tleV8xOTJhOgogCW1vdnVw
cwkleG1tMCwoJWVkeCkKIAlsZWFsCTE2KCVlZHgpLCVlZHgKIC5hbGlnbgk0LDB4OTAKLUwxMDNr
ZXlfMTkyYV9jb2xkOgorTDEwNWtleV8xOTJhX2NvbGQ6CiAJbW92YXBzCSV4bW0yLCV4bW01Ci1M
MTA2a2V5XzE5MmJfd2FybToKK0wxMDhrZXlfMTkyYl93YXJtOgogCXNodWZwcwkkMTYsJXhtbTAs
JXhtbTQKIAltb3ZkcWEJJXhtbTIsJXhtbTMKIAl4b3JwcwkleG1tNCwleG1tMApAQCAtMjIwNSwy
MSArMjIzMSwyMSBAQCBMMTA2a2V5XzE5MmJfd2FybToKIAlweG9yCSV4bW0zLCV4bW0yCiAJcmV0
CiAuYWxpZ24JNCwweDkwCi1MMTA0a2V5XzE5MmI6CitMMTA2a2V5XzE5MmI6CiAJbW92YXBzCSV4
bW0wLCV4bW0zCiAJc2h1ZnBzCSQ2OCwleG1tMCwleG1tNQogCW1vdnVwcwkleG1tNSwoJWVkeCkK
IAlzaHVmcHMJJDc4LCV4bW0yLCV4bW0zCiAJbW92dXBzCSV4bW0zLDE2KCVlZHgpCiAJbGVhbAkz
MiglZWR4KSwlZWR4Ci0Jam1wCUwxMDZrZXlfMTkyYl93YXJtCisJam1wCUwxMDhrZXlfMTkyYl93
YXJtCiAuYWxpZ24JNCwweDkwCi1MMTAyMTJyb3VuZHNfYWx0OgorTDEwNDEycm91bmRzX2FsdDoK
IAltb3ZkcWEJMTYoJWVieCksJXhtbTUKIAltb3ZkcWEJMzIoJWVieCksJXhtbTQKIAltb3ZsCSQ4
LCVlY3gKIAltb3ZkcXUJJXhtbTAsLTE2KCVlZHgpCi1MMTA3bG9vcF9rZXkxOTI6CitMMTA5bG9v
cF9rZXkxOTI6CiAJbW92cQkleG1tMiwoJWVkeCkKIAltb3ZkcWEJJXhtbTIsJXhtbTEKIC5ieXRl
CTEwMiwxNSw1NiwwLDIxMwpAQCAtMjI0MSw1NCArMjI2Nyw1NCBAQCBMMTA3bG9vcF9rZXkxOTI6
CiAJcHhvcgkleG1tMywleG1tMgogCW1vdmRxdQkleG1tMCwtMTYoJWVkeCkKIAlkZWNsCSVlY3gK
LQlqbnoJTDEwN2xvb3Bfa2V5MTkyCisJam56CUwxMDlsb29wX2tleTE5MgogCW1vdmwJJDExLCVl
Y3gKIAltb3ZsCSVlY3gsMzIoJWVkeCkKLQlqbXAJTDEwMGdvb2Rfa2V5CisJam1wCUwxMDJnb29k
X2tleQogLmFsaWduCTQsMHg5MAotTDA5MzE0cm91bmRzOgorTDA5NTE0cm91bmRzOgogCW1vdnVw
cwkxNiglZWF4KSwleG1tMgogCWxlYWwJMTYoJWVkeCksJWVkeAogCWNtcGwJJDI2ODQzNTQ1Niwl
ZWJwCi0JamUJTDEwODE0cm91bmRzX2FsdAorCWplCUwxMTAxNHJvdW5kc19hbHQKIAltb3ZsCSQx
MywlZWN4CiAJbW92dXBzCSV4bW0wLC0zMiglZWR4KQogCW1vdnVwcwkleG1tMiwtMTYoJWVkeCkK
IC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAyLDEKLQljYWxsCUwxMDlrZXlfMjU2YV9jb2xkCisJY2Fs
bAlMMTExa2V5XzI1NmFfY29sZAogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDAsMQotCWNhbGwJTDEx
MGtleV8yNTZiCisJY2FsbAlMMTEya2V5XzI1NmIKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAyLDIK
LQljYWxsCUwxMTFrZXlfMjU2YQorCWNhbGwJTDExM2tleV8yNTZhCiAuYnl0ZQkxMDIsMTUsNTgs
MjIzLDIwMCwyCi0JY2FsbAlMMTEwa2V5XzI1NmIKKwljYWxsCUwxMTJrZXlfMjU2YgogLmJ5dGUJ
MTAyLDE1LDU4LDIyMywyMDIsNAotCWNhbGwJTDExMWtleV8yNTZhCisJY2FsbAlMMTEza2V5XzI1
NmEKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAwLDQKLQljYWxsCUwxMTBrZXlfMjU2YgorCWNhbGwJ
TDExMmtleV8yNTZiCiAuYnl0ZQkxMDIsMTUsNTgsMjIzLDIwMiw4Ci0JY2FsbAlMMTExa2V5XzI1
NmEKKwljYWxsCUwxMTNrZXlfMjU2YQogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDAsOAotCWNhbGwJ
TDExMGtleV8yNTZiCisJY2FsbAlMMTEya2V5XzI1NmIKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAy
LDE2Ci0JY2FsbAlMMTExa2V5XzI1NmEKKwljYWxsCUwxMTNrZXlfMjU2YQogLmJ5dGUJMTAyLDE1
LDU4LDIyMywyMDAsMTYKLQljYWxsCUwxMTBrZXlfMjU2YgorCWNhbGwJTDExMmtleV8yNTZiCiAu
Ynl0ZQkxMDIsMTUsNTgsMjIzLDIwMiwzMgotCWNhbGwJTDExMWtleV8yNTZhCisJY2FsbAlMMTEz
a2V5XzI1NmEKIC5ieXRlCTEwMiwxNSw1OCwyMjMsMjAwLDMyCi0JY2FsbAlMMTEwa2V5XzI1NmIK
KwljYWxsCUwxMTJrZXlfMjU2YgogLmJ5dGUJMTAyLDE1LDU4LDIyMywyMDIsNjQKLQljYWxsCUwx
MTFrZXlfMjU2YQorCWNhbGwJTDExM2tleV8yNTZhCiAJbW92dXBzCSV4bW0wLCglZWR4KQogCW1v
dmwJJWVjeCwxNiglZWR4KQogCXhvcmwJJWVheCwlZWF4Ci0Jam1wCUwxMDBnb29kX2tleQorCWpt
cAlMMTAyZ29vZF9rZXkKIC5hbGlnbgk0LDB4OTAKLUwxMTFrZXlfMjU2YToKK0wxMTNrZXlfMjU2
YToKIAltb3Z1cHMJJXhtbTIsKCVlZHgpCiAJbGVhbAkxNiglZWR4KSwlZWR4Ci1MMTA5a2V5XzI1
NmFfY29sZDoKK0wxMTFrZXlfMjU2YV9jb2xkOgogCXNodWZwcwkkMTYsJXhtbTAsJXhtbTQKIAl4
b3JwcwkleG1tNCwleG1tMAogCXNodWZwcwkkMTQwLCV4bW0wLCV4bW00CkBAIC0yMjk3LDcgKzIz
MjMsNyBAQCBMMTA5a2V5XzI1NmFfY29sZDoKIAl4b3JwcwkleG1tMSwleG1tMAogCXJldAogLmFs
aWduCTQsMHg5MAotTDExMGtleV8yNTZiOgorTDExMmtleV8yNTZiOgogCW1vdnVwcwkleG1tMCwo
JWVkeCkKIAlsZWFsCTE2KCVlZHgpLCVlZHgKIAlzaHVmcHMJJDE2LCV4bW0yLCV4bW00CkBAIC0y
MzA4LDE0ICsyMzM0LDE0IEBAIEwxMTBrZXlfMjU2YjoKIAl4b3JwcwkleG1tMSwleG1tMgogCXJl
dAogLmFsaWduCTQsMHg5MAotTDEwODE0cm91bmRzX2FsdDoKK0wxMTAxNHJvdW5kc19hbHQ6CiAJ
bW92ZHFhCSglZWJ4KSwleG1tNQogCW1vdmRxYQkzMiglZWJ4KSwleG1tNAogCW1vdmwJJDcsJWVj
eAogCW1vdmRxdQkleG1tMCwtMzIoJWVkeCkKIAltb3ZkcWEJJXhtbTIsJXhtbTEKIAltb3ZkcXUJ
JXhtbTIsLTE2KCVlZHgpCi1MMTEybG9vcF9rZXkyNTY6CitMMTE0bG9vcF9rZXkyNTY6CiAuYnl0
ZQkxMDIsMTUsNTYsMCwyMTMKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjEyCiAJbW92ZHFhCSV4bW0w
LCV4bW0zCkBAIC0yMzI5LDcgKzIzNTUsNyBAQCBMMTEybG9vcF9rZXkyNTY6CiAJcHhvcgkleG1t
MiwleG1tMAogCW1vdmRxdQkleG1tMCwoJWVkeCkKIAlkZWNsCSVlY3gKLQlqeglMMTEzZG9uZV9r
ZXkyNTYKKwlqeglMMTE1ZG9uZV9rZXkyNTYKIAlwc2h1ZmQJJDI1NSwleG1tMCwleG1tMgogCXB4
b3IJJXhtbTMsJXhtbTMKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjExCkBAIC0yMzQ0LDExICsyMzcw
LDExIEBAIEwxMTJsb29wX2tleTI1NjoKIAltb3ZkcXUJJXhtbTIsMTYoJWVkeCkKIAlsZWFsCTMy
KCVlZHgpLCVlZHgKIAltb3ZkcWEJJXhtbTIsJXhtbTEKLQlqbXAJTDExMmxvb3Bfa2V5MjU2Ci1M
MTEzZG9uZV9rZXkyNTY6CisJam1wCUwxMTRsb29wX2tleTI1NgorTDExNWRvbmVfa2V5MjU2Ogog
CW1vdmwJJDEzLCVlY3gKIAltb3ZsCSVlY3gsMTYoJWVkeCkKLUwxMDBnb29kX2tleToKK0wxMDJn
b29kX2tleToKIAlweG9yCSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMQogCXB4b3IJJXht
bTIsJXhtbTIKQEAgLTIzNjAsMTMgKzIzODYsMTMgQEAgTDEwMGdvb2Rfa2V5OgogCXBvcGwJJWVi
cAogCXJldAogLmFsaWduCTIsMHg5MAotTDA5MWJhZF9wb2ludGVyOgorTDA5M2JhZF9wb2ludGVy
OgogCW1vdmwJJC0xLCVlYXgKIAlwb3BsCSVlYngKIAlwb3BsCSVlYnAKIAlyZXQKIC5hbGlnbgky
LDB4OTAKLUwwOTViYWRfa2V5Yml0czoKK0wwOTdiYWRfa2V5Yml0czoKIAlweG9yCSV4bW0wLCV4
bW0wCiAJbW92bAkkLTIsJWVheAogCXBvcGwJJWVieApAQCAtMjM3Nyw2ICsyNDAzLDE4IEBAIEww
OTViYWRfa2V5Yml0czoKIC5hbGlnbgk0CiBfYWVzX2h3X3NldF9lbmNyeXB0X2tleToKIExfYWVz
X2h3X3NldF9lbmNyeXB0X2tleV9iZWdpbjoKKyNpZm5kZWYgTkRFQlVHCisJcHVzaGwJJWVieAor
CXB1c2hsCSVlZHgKKwljYWxsCUwxMTZwaWMKK0wxMTZwaWM6CisJcG9wbAklZWJ4CisJbGVhbAlf
Qk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCszLUwxMTZwaWMoJWVieCksJWVieAorCW1vdmwJJDEsJWVk
eAorCW1vdmIJJWRsLCglZWJ4KQorCXBvcGwJJWVkeAorCXBvcGwJJWVieAorI2VuZGlmCiAJbW92
bAk0KCVlc3ApLCVlYXgKIAltb3ZsCTgoJWVzcCksJWVjeAogCW1vdmwJMTIoJWVzcCksJWVkeApA
QCAtMjM5NCw3ICsyNDMyLDcgQEAgTF9hZXNfaHdfc2V0X2RlY3J5cHRfa2V5X2JlZ2luOgogCW1v
dmwJMTIoJWVzcCksJWVkeAogCXNobGwJJDQsJWVjeAogCXRlc3RsCSVlYXgsJWVheAotCWpueglM
MTE0ZGVjX2tleV9yZXQKKwlqbnoJTDExN2RlY19rZXlfcmV0CiAJbGVhbAkxNiglZWR4LCVlY3gs
MSksJWVheAogCW1vdnVwcwkoJWVkeCksJXhtbTAKIAltb3Z1cHMJKCVlYXgpLCV4bW0xCkBAIC0y
NDAyLDcgKzI0NDAsNyBAQCBMX2Flc19od19zZXRfZGVjcnlwdF9rZXlfYmVnaW46CiAJbW92dXBz
CSV4bW0xLCglZWR4KQogCWxlYWwJMTYoJWVkeCksJWVkeAogCWxlYWwJLTE2KCVlYXgpLCVlYXgK
LUwxMTVkZWNfa2V5X2ludmVyc2U6CitMMTE4ZGVjX2tleV9pbnZlcnNlOgogCW1vdnVwcwkoJWVk
eCksJXhtbTAKIAltb3Z1cHMJKCVlYXgpLCV4bW0xCiAuYnl0ZQkxMDIsMTUsNTYsMjE5LDE5MgpA
QCAtMjQxMiwxNCArMjQ1MCwxNCBAQCBMMTE1ZGVjX2tleV9pbnZlcnNlOgogCW1vdnVwcwkleG1t
MCwxNiglZWF4KQogCW1vdnVwcwkleG1tMSwtMTYoJWVkeCkKIAljbXBsCSVlZHgsJWVheAotCWph
CUwxMTVkZWNfa2V5X2ludmVyc2UKKwlqYQlMMTE4ZGVjX2tleV9pbnZlcnNlCiAJbW92dXBzCSgl
ZWR4KSwleG1tMAogLmJ5dGUJMTAyLDE1LDU2LDIxOSwxOTIKIAltb3Z1cHMJJXhtbTAsKCVlZHgp
CiAJcHhvcgkleG1tMCwleG1tMAogCXB4b3IJJXhtbTEsJXhtbTEKIAl4b3JsCSVlYXgsJWVheAot
TDExNGRlY19rZXlfcmV0OgorTDExN2RlY19rZXlfcmV0OgogCXJldAogLmFsaWduCTYsMHg5MAog
TGtleV9jb25zdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2gt
c3NzZTMteDg2LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLXNzc2UzLXg4Ni5T
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYwNTllMjgzOWE5YTZlNDZiMjBmMDgzOGRkYzRhZWFhMGExNTY5MzcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLXNzc2UzLXg4
Ni5TCkBAIC0wLDAgKzEsMjg5IEBACisjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNp
bWlsYXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NMCisjIHNvdXJjZSB0cmVl
LiBEbyBub3QgZWRpdCBieSBoYW5kLgorCisjaWYgZGVmaW5lZChfX2kzODZfXykKKyNpZiBkZWZp
bmVkKEJPUklOR1NTTF9QUkVGSVgpCisjaW5jbHVkZSA8Ym9yaW5nc3NsX3ByZWZpeF9zeW1ib2xz
X2FzbS5oPgorI2VuZGlmCisudGV4dAorLmdsb2JsCV9nY21fZ211bHRfc3NzZTMKKy5wcml2YXRl
X2V4dGVybglfZ2NtX2dtdWx0X3Nzc2UzCisuYWxpZ24JNAorX2djbV9nbXVsdF9zc3NlMzoKK0xf
Z2NtX2dtdWx0X3Nzc2UzX2JlZ2luOgorCXB1c2hsCSVlYnAKKwlwdXNobAklZWJ4CisJcHVzaGwJ
JWVzaQorCXB1c2hsCSVlZGkKKwltb3ZsCTIwKCVlc3ApLCVlZGkKKwltb3ZsCTI0KCVlc3ApLCVl
c2kKKwltb3ZkcXUJKCVlZGkpLCV4bW0wCisJY2FsbAlMMDAwcGljX3BvaW50CitMMDAwcGljX3Bv
aW50OgorCXBvcGwJJWVheAorCW1vdmRxYQlMcmV2ZXJzZV9ieXRlcy1MMDAwcGljX3BvaW50KCVl
YXgpLCV4bW03CisJbW92ZHFhCUxsb3c0X21hc2stTDAwMHBpY19wb2ludCglZWF4KSwleG1tMgor
LmJ5dGUJMTAyLDE1LDU2LDAsMTk5CisJbW92ZHFhCSV4bW0yLCV4bW0xCisJcGFuZG4JJXhtbTAs
JXhtbTEKKwlwc3JsZAkkNCwleG1tMQorCXBhbmQJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4
bW0yCisJcHhvcgkleG1tMywleG1tMworCW1vdmwJJDUsJWVheAorTDAwMWxvb3Bfcm93XzE6CisJ
bW92ZHFhCSglZXNpKSwleG1tNAorCWxlYWwJMTYoJWVzaSksJWVzaQorCW1vdmRxYQkleG1tMiwl
eG1tNgorLmJ5dGUJMTAyLDE1LDU4LDE1LDI0MywxCisJbW92ZHFhCSV4bW02LCV4bW0zCisJcHNy
bGRxCSQxLCV4bW0yCisJbW92ZHFhCSV4bW00LCV4bW01CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjQK
Ky5ieXRlCTEwMiwxNSw1NiwwLDIzMworCXB4b3IJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTQs
JXhtbTUKKwlwc2xscQkkNjAsJXhtbTUKKwltb3ZkcWEJJXhtbTUsJXhtbTYKKwlwc2xsZHEJJDgs
JXhtbTYKKwlweG9yCSV4bW02LCV4bW0zCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1tNSwl
eG1tMgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCXN1YmwJJDEsJWVheAor
CWpueglMMDAxbG9vcF9yb3dfMQorCXB4b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkMSwleG1tMwor
CXB4b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkMSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIKKwlw
c3JscQkkNSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0zLCV4bW0zCisJbW92
bAkkNSwlZWF4CitMMDAybG9vcF9yb3dfMjoKKwltb3ZkcWEJKCVlc2kpLCV4bW00CisJbGVhbAkx
NiglZXNpKSwlZXNpCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUsNTgsMTUsMjQz
LDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKwltb3ZkcWEJJXhtbTQs
JXhtbTUKKy5ieXRlCTEwMiwxNSw1NiwwLDIyNAorLmJ5dGUJMTAyLDE1LDU2LDAsMjMzCisJcHhv
cgkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tNCwleG1tNQorCXBzbGxxCSQ2MCwleG1tNQorCW1v
dmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwleG1tNgorCXB4b3IJJXhtbTYsJXhtbTMKKwlw
c3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0yCisJcHNybHEJJDQsJXhtbTQKKwlweG9y
CSV4bW00LCV4bW0yCisJc3VibAkkMSwlZWF4CisJam56CUwwMDJsb29wX3Jvd18yCisJcHhvcgkl
eG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQx
LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywl
eG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwltb3ZsCSQ2LCVlYXgKK0wwMDNsb29wX3Jvd18zOgor
CW1vdmRxYQkoJWVzaSksJXhtbTQKKwlsZWFsCTE2KCVlc2kpLCVlc2kKKwltb3ZkcWEJJXhtbTIs
JXhtbTYKKy5ieXRlCTEwMiwxNSw1OCwxNSwyNDMsMQorCW1vdmRxYQkleG1tNiwleG1tMworCXBz
cmxkcQkkMSwleG1tMgorCW1vdmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0
CisuYnl0ZQkxMDIsMTUsNTYsMCwyMzMKKwlweG9yCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW00
LCV4bW01CisJcHNsbHEJJDYwLCV4bW01CisJbW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4
LCV4bW02CisJcHhvcgkleG1tNiwleG1tMworCXBzcmxkcQkkOCwleG1tNQorCXB4b3IJJXhtbTUs
JXhtbTIKKwlwc3JscQkkNCwleG1tNAorCXB4b3IJJXhtbTQsJXhtbTIKKwlzdWJsCSQxLCVlYXgK
KwlqbnoJTDAwM2xvb3Bfcm93XzMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMK
KwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJ
cHNybHEJJDUsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1tMworLmJ5
dGUJMTAyLDE1LDU2LDAsMjE1CisJbW92ZHF1CSV4bW0yLCglZWRpKQorCXB4b3IJJXhtbTAsJXht
bTAKKwlweG9yCSV4bW0xLCV4bW0xCisJcHhvcgkleG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXht
bTMKKwlweG9yCSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwleG1tNQorCXB4b3IJJXhtbTYsJXht
bTYKKwlwb3BsCSVlZGkKKwlwb3BsCSVlc2kKKwlwb3BsCSVlYngKKwlwb3BsCSVlYnAKKwlyZXQK
Ky5nbG9ibAlfZ2NtX2doYXNoX3Nzc2UzCisucHJpdmF0ZV9leHRlcm4JX2djbV9naGFzaF9zc3Nl
MworLmFsaWduCTQKK19nY21fZ2hhc2hfc3NzZTM6CitMX2djbV9naGFzaF9zc3NlM19iZWdpbjoK
KwlwdXNobAklZWJwCisJcHVzaGwJJWVieAorCXB1c2hsCSVlc2kKKwlwdXNobAklZWRpCisJbW92
bAkyMCglZXNwKSwlZWRpCisJbW92bAkyNCglZXNwKSwlZXNpCisJbW92bAkyOCglZXNwKSwlZWR4
CisJbW92bAkzMiglZXNwKSwlZWN4CisJbW92ZHF1CSglZWRpKSwleG1tMAorCWNhbGwJTDAwNHBp
Y19wb2ludAorTDAwNHBpY19wb2ludDoKKwlwb3BsCSVlYngKKwltb3ZkcWEJTHJldmVyc2VfYnl0
ZXMtTDAwNHBpY19wb2ludCglZWJ4KSwleG1tNworCWFuZGwJJC0xNiwlZWN4CisuYnl0ZQkxMDIs
MTUsNTYsMCwxOTkKKwlweG9yCSV4bW0zLCV4bW0zCitMMDA1bG9vcF9naGFzaDoKKwltb3ZkcWEJ
TGxvdzRfbWFzay1MMDA0cGljX3BvaW50KCVlYngpLCV4bW0yCisJbW92ZHF1CSglZWR4KSwleG1t
MQorLmJ5dGUJMTAyLDE1LDU2LDAsMjA3CisJcHhvcgkleG1tMSwleG1tMAorCW1vdmRxYQkleG1t
MiwleG1tMQorCXBhbmRuCSV4bW0wLCV4bW0xCisJcHNybGQJJDQsJXhtbTEKKwlwYW5kCSV4bW0y
LCV4bW0wCisJcHhvcgkleG1tMiwleG1tMgorCW1vdmwJJDUsJWVheAorTDAwNmxvb3Bfcm93XzQ6
CisJbW92ZHFhCSglZXNpKSwleG1tNAorCWxlYWwJMTYoJWVzaSksJWVzaQorCW1vdmRxYQkleG1t
MiwleG1tNgorLmJ5dGUJMTAyLDE1LDU4LDE1LDI0MywxCisJbW92ZHFhCSV4bW02LCV4bW0zCisJ
cHNybGRxCSQxLCV4bW0yCisJbW92ZHFhCSV4bW00LCV4bW01CisuYnl0ZQkxMDIsMTUsNTYsMCwy
MjQKKy5ieXRlCTEwMiwxNSw1NiwwLDIzMworCXB4b3IJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXht
bTQsJXhtbTUKKwlwc2xscQkkNjAsJXhtbTUKKwltb3ZkcWEJJXhtbTUsJXhtbTYKKwlwc2xsZHEJ
JDgsJXhtbTYKKwlweG9yCSV4bW02LCV4bW0zCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1t
NSwleG1tMgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCXN1YmwJJDEsJWVh
eAorCWpueglMMDA2bG9vcF9yb3dfNAorCXB4b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkMSwleG1t
MworCXB4b3IJJXhtbTMsJXhtbTIKKwlwc3JscQkkMSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIK
Kwlwc3JscQkkNSwleG1tMworCXB4b3IJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0zLCV4bW0zCisJ
bW92bAkkNSwlZWF4CitMMDA3bG9vcF9yb3dfNToKKwltb3ZkcWEJKCVlc2kpLCV4bW00CisJbGVh
bAkxNiglZXNpKSwlZXNpCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUsNTgsMTUs
MjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKwltb3ZkcWEJJXht
bTQsJXhtbTUKKy5ieXRlCTEwMiwxNSw1NiwwLDIyNAorLmJ5dGUJMTAyLDE1LDU2LDAsMjMzCisJ
cHhvcgkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tNCwleG1tNQorCXBzbGxxCSQ2MCwleG1tNQor
CW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwleG1tNgorCXB4b3IJJXhtbTYsJXhtbTMK
Kwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0yCisJcHNybHEJJDQsJXhtbTQKKwlw
eG9yCSV4bW00LCV4bW0yCisJc3VibAkkMSwlZWF4CisJam56CUwwMDdsb29wX3Jvd181CisJcHhv
cgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxx
CSQxLCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1t
MywleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwltb3ZsCSQ2LCVlYXgKK0wwMDhsb29wX3Jvd182
OgorCW1vdmRxYQkoJWVzaSksJXhtbTQKKwlsZWFsCTE2KCVlc2kpLCVlc2kKKwltb3ZkcWEJJXht
bTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1OCwxNSwyNDMsMQorCW1vdmRxYQkleG1tNiwleG1tMwor
CXBzcmxkcQkkMSwleG1tMgorCW1vdmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAs
MjI0CisuYnl0ZQkxMDIsMTUsNTYsMCwyMzMKKwlweG9yCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4
bW00LCV4bW01CisJcHNsbHEJJDYwLCV4bW01CisJbW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRx
CSQ4LCV4bW02CisJcHhvcgkleG1tNiwleG1tMworCXBzcmxkcQkkOCwleG1tNQorCXB4b3IJJXht
bTUsJXhtbTIKKwlwc3JscQkkNCwleG1tNAorCXB4b3IJJXhtbTQsJXhtbTIKKwlzdWJsCSQxLCVl
YXgKKwlqbnoJTDAwOGxvb3Bfcm93XzYKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXht
bTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0y
CisJcHNybHEJJDUsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1tMwor
CW1vdmRxYQkleG1tMiwleG1tMAorCWxlYWwJLTI1NiglZXNpKSwlZXNpCisJbGVhbAkxNiglZWR4
KSwlZWR4CisJc3VibAkkMTYsJWVjeAorCWpueglMMDA1bG9vcF9naGFzaAorLmJ5dGUJMTAyLDE1
LDU2LDAsMTk5CisJbW92ZHF1CSV4bW0wLCglZWRpKQorCXB4b3IJJXhtbTAsJXhtbTAKKwlweG9y
CSV4bW0xLCV4bW0xCisJcHhvcgkleG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlweG9y
CSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwleG1tNQorCXB4b3IJJXhtbTYsJXhtbTYKKwlwb3Bs
CSVlZGkKKwlwb3BsCSVlc2kKKwlwb3BsCSVlYngKKwlwb3BsCSVlYnAKKwlyZXQKKy5hbGlnbgk0
LDB4OTAKK0xyZXZlcnNlX2J5dGVzOgorLmJ5dGUJMTUsMTQsMTMsMTIsMTEsMTAsOSw4LDcsNiw1
LDQsMywyLDEsMAorLmFsaWduCTQsMHg5MAorTGxvdzRfbWFzazoKKy5sb25nCTI1MjY0NTEzNSwy
NTI2NDUxMzUsMjUyNjQ1MTM1LDI1MjY0NTEzNQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2
L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Ni5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vZmlwc21vZHVs
ZS92cGFlcy14ODYuUwppbmRleCBjNDdhMjE3ZGMyNTBmY2M1MTAyM2VlOGZkY2M4MTYzMGRjYzY0
OTY4Li4yMjA0M2UyYWM3Njg0OWFhZWE3M2M5NWRmYjY2MDBjNzZkYWIwM2JiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9tYWMteDg2L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Ni5TCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODYvY3J5
cHRvL2ZpcHNtb2R1bGUvdnBhZXMteDg2LlMKQEAgLTYsNiArNiw4IEBACiAjaW5jbHVkZSA8Ym9y
aW5nc3NsX3ByZWZpeF9zeW1ib2xzX2FzbS5oPgogI2VuZGlmCiAudGV4dAorI2lmbmRlZiBOREVC
VUcKKyNlbmRpZgogLmFsaWduCTYsMHg5MAogTF92cGFlc19jb25zdHM6CiAubG9uZwkyMTg2Mjg0
ODAsMjM1MjEwMjU1LDE2ODQ5NjEzMCw2NzU2ODM5MwpAQCAtNDY2LDYgKzQ2OCwxOCBAQCBMX3Zw
YWVzX3NldF9lbmNyeXB0X2tleV9iZWdpbjoKIAlwdXNobAklZWJ4CiAJcHVzaGwJJWVzaQogCXB1
c2hsCSVlZGkKKyNpZm5kZWYgTkRFQlVHCisJcHVzaGwJJWVieAorCXB1c2hsCSVlZHgKKwljYWxs
CUwwMTZwaWMKK0wwMTZwaWM6CisJcG9wbAklZWJ4CisJbGVhbAlfQk9SSU5HU1NMX2Z1bmN0aW9u
X2hpdCs1LUwwMTZwaWMoJWVieCksJWVieAorCW1vdmwJJDEsJWVkeAorCW1vdmIJJWRsLCglZWJ4
KQorCXBvcGwJJWVkeAorCXBvcGwJJWVieAorI2VuZGlmCiAJbW92bAkyMCglZXNwKSwlZXNpCiAJ
bGVhbAktNTYoJWVzcCksJWVieAogCW1vdmwJMjQoJWVzcCksJWVheApAQCAtNDc5LDkgKzQ5Myw5
IEBAIExfdnBhZXNfc2V0X2VuY3J5cHRfa2V5X2JlZ2luOgogCW1vdmwJJWVieCwyNDAoJWVkeCkK
IAltb3ZsCSQ0OCwlZWN4CiAJbW92bAkkMCwlZWRpCi0JbGVhbAlMX3ZwYWVzX2NvbnN0cysweDMw
LUwwMTZwaWNfcG9pbnQsJWVicAorCWxlYWwJTF92cGFlc19jb25zdHMrMHgzMC1MMDE3cGljX3Bv
aW50LCVlYnAKIAljYWxsCV9fdnBhZXNfc2NoZWR1bGVfY29yZQotTDAxNnBpY19wb2ludDoKK0ww
MTdwaWNfcG9pbnQ6CiAJbW92bAk0OCglZXNwKSwlZXNwCiAJeG9ybAklZWF4LCVlYXgKIAlwb3Bs
CSVlZGkKQEAgLTUxNiw5ICs1MzAsOSBAQCBMX3ZwYWVzX3NldF9kZWNyeXB0X2tleV9iZWdpbjoK
IAlzaHJsCSQxLCVlY3gKIAlhbmRsCSQzMiwlZWN4CiAJeG9ybAkkMzIsJWVjeAotCWxlYWwJTF92
cGFlc19jb25zdHMrMHgzMC1MMDE3cGljX3BvaW50LCVlYnAKKwlsZWFsCUxfdnBhZXNfY29uc3Rz
KzB4MzAtTDAxOHBpY19wb2ludCwlZWJwCiAJY2FsbAlfX3ZwYWVzX3NjaGVkdWxlX2NvcmUKLUww
MTdwaWNfcG9pbnQ6CitMMDE4cGljX3BvaW50OgogCW1vdmwJNDgoJWVzcCksJWVzcAogCXhvcmwJ
JWVheCwlZWF4CiAJcG9wbAklZWRpCkBAIC01MzUsOSArNTQ5LDIxIEBAIExfdnBhZXNfZW5jcnlw
dF9iZWdpbjoKIAlwdXNobAklZWJ4CiAJcHVzaGwJJWVzaQogCXB1c2hsCSVlZGkKLQlsZWFsCUxf
dnBhZXNfY29uc3RzKzB4MzAtTDAxOHBpY19wb2ludCwlZWJwCisjaWZuZGVmIE5ERUJVRworCXB1
c2hsCSVlYngKKwlwdXNobAklZWR4CisJY2FsbAlMMDE5cGljCitMMDE5cGljOgorCXBvcGwJJWVi
eAorCWxlYWwJX0JPUklOR1NTTF9mdW5jdGlvbl9oaXQrNC1MMDE5cGljKCVlYngpLCVlYngKKwlt
b3ZsCSQxLCVlZHgKKwltb3ZiCSVkbCwoJWVieCkKKwlwb3BsCSVlZHgKKwlwb3BsCSVlYngKKyNl
bmRpZgorCWxlYWwJTF92cGFlc19jb25zdHMrMHgzMC1MMDIwcGljX3BvaW50LCVlYnAKIAljYWxs
CV9fdnBhZXNfcHJlaGVhdAotTDAxOHBpY19wb2ludDoKK0wwMjBwaWNfcG9pbnQ6CiAJbW92bAky
MCglZXNwKSwlZXNpCiAJbGVhbAktNTYoJWVzcCksJWVieAogCW1vdmwJMjQoJWVzcCksJWVkaQpA
QCAtNTYzLDkgKzU4OSw5IEBAIExfdnBhZXNfZGVjcnlwdF9iZWdpbjoKIAlwdXNobAklZWJ4CiAJ
cHVzaGwJJWVzaQogCXB1c2hsCSVlZGkKLQlsZWFsCUxfdnBhZXNfY29uc3RzKzB4MzAtTDAxOXBp
Y19wb2ludCwlZWJwCisJbGVhbAlMX3ZwYWVzX2NvbnN0cysweDMwLUwwMjFwaWNfcG9pbnQsJWVi
cAogCWNhbGwJX192cGFlc19wcmVoZWF0Ci1MMDE5cGljX3BvaW50OgorTDAyMXBpY19wb2ludDoK
IAltb3ZsCTIwKCVlc3ApLCVlc2kKIAlsZWFsCS01NiglZXNwKSwlZWJ4CiAJbW92bAkyNCglZXNw
KSwlZWRpCkBAIC01OTYsNyArNjIyLDcgQEAgTF92cGFlc19jYmNfZW5jcnlwdF9iZWdpbjoKIAlt
b3ZsCTI4KCVlc3ApLCVlYXgKIAltb3ZsCTMyKCVlc3ApLCVlZHgKIAlzdWJsCSQxNiwlZWF4Ci0J
amMJTDAyMGNiY19hYm9ydAorCWpjCUwwMjJjYmNfYWJvcnQKIAlsZWFsCS01NiglZXNwKSwlZWJ4
CiAJbW92bAkzNiglZXNwKSwlZWJwCiAJYW5kbAkkLTE2LCVlYngKQEAgLTYwOSwxNCArNjM1LDE0
IEBAIExfdnBhZXNfY2JjX2VuY3J5cHRfYmVnaW46CiAJbW92bAklZWR4LDQoJWVzcCkKIAltb3Zs
CSVlYnAsOCglZXNwKQogCW1vdmwJJWVheCwlZWRpCi0JbGVhbAlMX3ZwYWVzX2NvbnN0cysweDMw
LUwwMjFwaWNfcG9pbnQsJWVicAorCWxlYWwJTF92cGFlc19jb25zdHMrMHgzMC1MMDIzcGljX3Bv
aW50LCVlYnAKIAljYWxsCV9fdnBhZXNfcHJlaGVhdAotTDAyMXBpY19wb2ludDoKK0wwMjNwaWNf
cG9pbnQ6CiAJY21wbAkkMCwlZWN4Ci0JamUJTDAyMmNiY19kZWNfbG9vcAotCWptcAlMMDIzY2Jj
X2VuY19sb29wCisJamUJTDAyNGNiY19kZWNfbG9vcAorCWptcAlMMDI1Y2JjX2VuY19sb29wCiAu
YWxpZ24JNCwweDkwCi1MMDIzY2JjX2VuY19sb29wOgorTDAyNWNiY19lbmNfbG9vcDoKIAltb3Zk
cXUJKCVlc2kpLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMAogCWNhbGwJX192cGFlc19lbmNyeXB0
X2NvcmUKQEAgLTYyNiwxMCArNjUyLDEwIEBAIEwwMjNjYmNfZW5jX2xvb3A6CiAJbW92ZHF1CSV4
bW0wLCglZWJ4LCVlc2ksMSkKIAlsZWFsCTE2KCVlc2kpLCVlc2kKIAlzdWJsCSQxNiwlZWRpCi0J
am5jCUwwMjNjYmNfZW5jX2xvb3AKLQlqbXAJTDAyNGNiY19kb25lCisJam5jCUwwMjVjYmNfZW5j
X2xvb3AKKwlqbXAJTDAyNmNiY19kb25lCiAuYWxpZ24JNCwweDkwCi1MMDIyY2JjX2RlY19sb29w
OgorTDAyNGNiY19kZWNfbG9vcDoKIAltb3ZkcXUJKCVlc2kpLCV4bW0wCiAJbW92ZHFhCSV4bW0x
LDE2KCVlc3ApCiAJbW92ZHFhCSV4bW0wLDMyKCVlc3ApCkBAIC02NDEsMTIgKzY2NywxMiBAQCBM
MDIyY2JjX2RlY19sb29wOgogCW1vdmRxdQkleG1tMCwoJWVieCwlZXNpLDEpCiAJbGVhbAkxNigl
ZXNpKSwlZXNpCiAJc3VibAkkMTYsJWVkaQotCWpuYwlMMDIyY2JjX2RlY19sb29wCi1MMDI0Y2Jj
X2RvbmU6CisJam5jCUwwMjRjYmNfZGVjX2xvb3AKK0wwMjZjYmNfZG9uZToKIAltb3ZsCTgoJWVz
cCksJWVieAogCW1vdmwJNDgoJWVzcCksJWVzcAogCW1vdmRxdQkleG1tMSwoJWVieCkKLUwwMjBj
YmNfYWJvcnQ6CitMMDIyY2JjX2Fib3J0OgogCXBvcGwJJWVkaQogCXBvcGwJJWVzaQogCXBvcGwJ
JWVieApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vdGVzdC90cmFtcG9saW5lLXg4Ni5TIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
bWFjLXg4Ni9jcnlwdG8vdGVzdC90cmFtcG9saW5lLXg4Ni5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwMWYyZjAx
NTE4YzVjN2QwYjQzOGJmY2FjZGFkN2JhZWI4MmJhOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMt
eDg2L2NyeXB0by90ZXN0L3RyYW1wb2xpbmUteDg2LlMKQEAgLTAsMCArMSwxNjkgQEAKKyMgVGhp
cyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGlu
IHRoZSBCb3JpbmdTU0wKKyMgc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNp
ZiBkZWZpbmVkKF9faTM4Nl9fKQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNs
dWRlIDxib3Jpbmdzc2xfcHJlZml4X3N5bWJvbHNfYXNtLmg+CisjZW5kaWYKKy50ZXh0CisuZ2xv
YmwJX2FiaV90ZXN0X3RyYW1wb2xpbmUKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfdHJhbXBv
bGluZQorLmFsaWduCTQKK19hYmlfdGVzdF90cmFtcG9saW5lOgorTF9hYmlfdGVzdF90cmFtcG9s
aW5lX2JlZ2luOgorCXB1c2hsCSVlYnAKKwlwdXNobAklZWJ4CisJcHVzaGwJJWVzaQorCXB1c2hs
CSVlZGkKKwltb3ZsCTI0KCVlc3ApLCVlY3gKKwltb3ZsCSglZWN4KSwlZXNpCisJbW92bAk0KCVl
Y3gpLCVlZGkKKwltb3ZsCTgoJWVjeCksJWVieAorCW1vdmwJMTIoJWVjeCksJWVicAorCXN1YmwJ
JDQ0LCVlc3AKKwltb3ZsCTcyKCVlc3ApLCVlYXgKKwl4b3JsCSVlY3gsJWVjeAorTDAwMGxvb3A6
CisJY21wbAk3NiglZXNwKSwlZWN4CisJamFlCUwwMDFsb29wX2RvbmUKKwltb3ZsCSglZWF4LCVl
Y3gsNCksJWVkeAorCW1vdmwJJWVkeCwoJWVzcCwlZWN4LDQpCisJYWRkbAkkMSwlZWN4CisJam1w
CUwwMDBsb29wCitMMDAxbG9vcF9kb25lOgorCWNhbGwJKjY0KCVlc3ApCisJYWRkbAkkNDQsJWVz
cAorCW1vdmwJMjQoJWVzcCksJWVjeAorCW1vdmwJJWVzaSwoJWVjeCkKKwltb3ZsCSVlZGksNCgl
ZWN4KQorCW1vdmwJJWVieCw4KCVlY3gpCisJbW92bAklZWJwLDEyKCVlY3gpCisJcG9wbAklZWRp
CisJcG9wbAklZXNpCisJcG9wbAklZWJ4CisJcG9wbAklZWJwCisJcmV0CisuZ2xvYmwJX2FiaV90
ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2ZsYWcKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rl
c3RfZ2V0X2FuZF9jbGVhcl9kaXJlY3Rpb25fZmxhZworLmFsaWduCTQKK19hYmlfdGVzdF9nZXRf
YW5kX2NsZWFyX2RpcmVjdGlvbl9mbGFnOgorTF9hYmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVj
dGlvbl9mbGFnX2JlZ2luOgorCXB1c2hmbAorCXBvcGwJJWVheAorCWFuZGwJJDEwMjQsJWVheAor
CXNocmwJJDEwLCVlYXgKKwljbGQKKwlyZXQKKy5nbG9ibAlfYWJpX3Rlc3Rfc2V0X2RpcmVjdGlv
bl9mbGFnCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxhZworLmFs
aWduCTQKK19hYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWc6CitMX2FiaV90ZXN0X3NldF9kaXJl
Y3Rpb25fZmxhZ19iZWdpbjoKKwlzdGQKKwlyZXQKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9l
YXgKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9lYXgKKy5hbGlnbgk0CitfYWJp
X3Rlc3RfY2xvYmJlcl9lYXg6CitMX2FiaV90ZXN0X2Nsb2JiZXJfZWF4X2JlZ2luOgorCXhvcmwJ
JWVheCwlZWF4CisJcmV0CisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfZWJ4CisucHJpdmF0ZV9l
eHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZWJ4CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJf
ZWJ4OgorTF9hYmlfdGVzdF9jbG9iYmVyX2VieF9iZWdpbjoKKwl4b3JsCSVlYngsJWVieAorCXJl
dAorLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX2VjeAorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVz
dF9jbG9iYmVyX2VjeAorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX2VjeDoKK0xfYWJpX3Rl
c3RfY2xvYmJlcl9lY3hfYmVnaW46CisJeG9ybAklZWN4LCVlY3gKKwlyZXQKKy5nbG9ibAlfYWJp
X3Rlc3RfY2xvYmJlcl9lZHgKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl9lZHgK
Ky5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9lZHg6CitMX2FiaV90ZXN0X2Nsb2JiZXJfZWR4
X2JlZ2luOgorCXhvcmwJJWVkeCwlZWR4CisJcmV0CisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJf
ZWRpCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfZWRpCisuYWxpZ24JNAorX2Fi
aV90ZXN0X2Nsb2JiZXJfZWRpOgorTF9hYmlfdGVzdF9jbG9iYmVyX2VkaV9iZWdpbjoKKwl4b3Js
CSVlZGksJWVkaQorCXJldAorLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX2VzaQorLnByaXZhdGVf
ZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX2VzaQorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVy
X2VzaToKK0xfYWJpX3Rlc3RfY2xvYmJlcl9lc2lfYmVnaW46CisJeG9ybAklZXNpLCVlc2kKKwly
ZXQKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl9lYnAKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rl
c3RfY2xvYmJlcl9lYnAKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9lYnA6CitMX2FiaV90
ZXN0X2Nsb2JiZXJfZWJwX2JlZ2luOgorCXhvcmwJJWVicCwlZWJwCisJcmV0CisuZ2xvYmwJX2Fi
aV90ZXN0X2Nsb2JiZXJfeG1tMAorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3ht
bTAKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94bW0wOgorTF9hYmlfdGVzdF9jbG9iYmVy
X3htbTBfYmVnaW46CisJcHhvcgkleG1tMCwleG1tMAorCXJldAorLmdsb2JsCV9hYmlfdGVzdF9j
bG9iYmVyX3htbTEKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94bW0xCisuYWxp
Z24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMToKK0xfYWJpX3Rlc3RfY2xvYmJlcl94bW0xX2Jl
Z2luOgorCXB4b3IJJXhtbTEsJXhtbTEKKwlyZXQKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94
bW0yCisucHJpdmF0ZV9leHRlcm4JX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMgorLmFsaWduCTQKK19h
YmlfdGVzdF9jbG9iYmVyX3htbTI6CitMX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMl9iZWdpbjoKKwlw
eG9yCSV4bW0yLCV4bW0yCisJcmV0CisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMworLnBy
aXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9jbG9iYmVyX3htbTMKKy5hbGlnbgk0CitfYWJpX3Rlc3Rf
Y2xvYmJlcl94bW0zOgorTF9hYmlfdGVzdF9jbG9iYmVyX3htbTNfYmVnaW46CisJcHhvcgkleG1t
MywleG1tMworCXJldAorLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3htbTQKKy5wcml2YXRlX2V4
dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94bW00CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJf
eG1tNDoKK0xfYWJpX3Rlc3RfY2xvYmJlcl94bW00X2JlZ2luOgorCXB4b3IJJXhtbTQsJXhtbTQK
KwlyZXQKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94bW01CisucHJpdmF0ZV9leHRlcm4JX2Fi
aV90ZXN0X2Nsb2JiZXJfeG1tNQorLmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3htbTU6CitM
X2FiaV90ZXN0X2Nsb2JiZXJfeG1tNV9iZWdpbjoKKwlweG9yCSV4bW01LCV4bW01CisJcmV0Cisu
Z2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNgorLnByaXZhdGVfZXh0ZXJuCV9hYmlfdGVzdF9j
bG9iYmVyX3htbTYKKy5hbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94bW02OgorTF9hYmlfdGVz
dF9jbG9iYmVyX3htbTZfYmVnaW46CisJcHhvcgkleG1tNiwleG1tNgorCXJldAorLmdsb2JsCV9h
YmlfdGVzdF9jbG9iYmVyX3htbTcKKy5wcml2YXRlX2V4dGVybglfYWJpX3Rlc3RfY2xvYmJlcl94
bW03CisuYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNzoKK0xfYWJpX3Rlc3RfY2xvYmJl
cl94bW03X2JlZ2luOgorCXB4b3IJJXhtbTcsJXhtbTcKKwlyZXQKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvbWFjLXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQuUyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQv
Y3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0LlMKaW5kZXggNGY5NzI3NGRkNzBlMTBhZTQ1NTRm
YzBjYzk0YmM3YzVmYzcxZDcyNC4uMTBiMWFkOTUyMDU4NzlmZWM4NDFiZDQwNTcwOGMzMzliODdi
ODMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQu
UworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5TCkBAIC00OSw2
ICs0OSw3IEBAIEwkc2l4dGVlbjoKIAogLnAyYWxpZ24JNgogX0NoYUNoYTIwX2N0cjMyOgorCiAJ
Y21wcQkkMCwlcmR4CiAJamUJTCRub19kYXRhCiAJbW92cQlfT1BFTlNTTF9pYTMyY2FwX1ArNCgl
cmlwKSwlcjEwCkBAIC01NiwxMiArNTcsMTkgQEAgX0NoYUNoYTIwX2N0cjMyOgogCWpueglMJENo
YUNoYTIwX3Nzc2UzCiAKIAlwdXNocQklcmJ4CisKIAlwdXNocQklcmJwCisKIAlwdXNocQklcjEy
CisKIAlwdXNocQklcjEzCisKIAlwdXNocQklcjE0CisKIAlwdXNocQklcjE1CisKIAlzdWJxCSQ2
NCsyNCwlcnNwCisKIEwkY3RyMzJfYm9keToKIAogCkBAIC0zMDIsMjAgKzMxMCwzMCBAQCBMJG9v
cF90YWlsOgogTCRkb25lOgogCWxlYXEJNjQrMjQrNDgoJXJzcCksJXJzaQogCW1vdnEJLTQ4KCVy
c2kpLCVyMTUKKwogCW1vdnEJLTQwKCVyc2kpLCVyMTQKKwogCW1vdnEJLTMyKCVyc2kpLCVyMTMK
KwogCW1vdnEJLTI0KCVyc2kpLCVyMTIKKwogCW1vdnEJLTE2KCVyc2kpLCVyYnAKKwogCW1vdnEJ
LTgoJXJzaSksJXJieAorCiAJbGVhcQkoJXJzaSksJXJzcAorCiBMJG5vX2RhdGE6CiAJLmJ5dGUJ
MHhmMywweGMzCiAKIAorCiAucDJhbGlnbgk1CiBDaGFDaGEyMF9zc3NlMzoKIEwkQ2hhQ2hhMjBf
c3NzZTM6CisKIAltb3ZxCSVyc3AsJXI5CisKIAljbXBxCSQxMjgsJXJkeAogCWphCUwkQ2hhQ2hh
MjBfNHgKIApAQCAtNDQxLDE0ICs0NTksMTggQEAgTCRvb3BfdGFpbF9zc3NlMzoKIAogTCRkb25l
X3Nzc2UzOgogCWxlYXEJKCVyOSksJXJzcAorCiBMJHNzc2UzX2VwaWxvZ3VlOgogCS5ieXRlCTB4
ZjMsMHhjMwogCiAKKwogLnAyYWxpZ24JNQogQ2hhQ2hhMjBfNHg6CiBMJENoYUNoYTIwXzR4Ogor
CiAJbW92cQklcnNwLCVyOQorCiAJbW92cQklcjEwLCVyMTEKIAlzaHJxCSQzMiwlcjEwCiAJdGVz
dHEJJDMyLCVyMTAKQEAgLTk4OSwxNCArMTAxMSwxOCBAQCBMJG9vcF90YWlsNHg6CiAKIEwkZG9u
ZTR4OgogCWxlYXEJKCVyOSksJXJzcAorCiBMJDR4X2VwaWxvZ3VlOgogCS5ieXRlCTB4ZjMsMHhj
MwogCiAKKwogLnAyYWxpZ24JNQogQ2hhQ2hhMjBfOHg6CiBMJENoYUNoYTIwXzh4OgorCiAJbW92
cQklcnNwLCVyOQorCiAJc3VicQkkMHgyODArOCwlcnNwCiAJYW5kcQkkLTMyLCVyc3AKIAl2emVy
b3VwcGVyCkBAIC0xNTkxLDcgKzE2MTcsOSBAQCBMJG9vcF90YWlsOHg6CiBMJGRvbmU4eDoKIAl2
emVyb2FsbAogCWxlYXEJKCVyOSksJXJzcAorCiBMJDh4X2VwaWxvZ3VlOgogCS5ieXRlCTB4ZjMs
MHhjMwogCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVs
ZS9hZXMteDg2XzY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flcy14ODZfNjQu
UwppbmRleCBjMjMyMzRmZTk2M2QzMDU4YTMwN2JhZmZiMzBiM2UzNzYyMjk0ZGE4Li44ODc1ZDBh
YmJiZDE3YzYyOTMyMGE0YTBiODhhZmI3OTliY2JiMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0
L2NyeXB0by9maXBzbW9kdWxlL2Flcy14ODZfNjQuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9m
aXBzbW9kdWxlL2Flcy14ODZfNjQuUwpAQCAtMTY4LDYgKzE2OCw3IEBAIEwkZW5jX2xvb3A6CiAK
IC5wMmFsaWduCTQKIF94ODZfNjRfQUVTX2VuY3J5cHRfY29tcGFjdDoKKwogCWxlYXEJMTI4KCVy
MTQpLCVyOAogCW1vdmwJMC0xMjgoJXI4KSwlZWRpCiAJbW92bAkzMi0xMjgoJXI4KSwlZWJwCkBA
IC0zMzgsNiArMzM5LDcgQEAgTCRlbmNfY29tcGFjdF9kb25lOgogCXhvcmwJMTIoJXIxNSksJWVk
eAogLmJ5dGUJMHhmMywweGMzCiAKKwogLnAyYWxpZ24JNAogLmdsb2JsCV9hZXNfbm9od19lbmNy
eXB0CiAucHJpdmF0ZV9leHRlcm4gX2Flc19ub2h3X2VuY3J5cHQKQEAgLTU4MCw2ICs1ODIsNyBA
QCBMJGRlY19sb29wOgogCiAucDJhbGlnbgk0CiBfeDg2XzY0X0FFU19kZWNyeXB0X2NvbXBhY3Q6
CisKIAlsZWFxCTEyOCglcjE0KSwlcjgKIAltb3ZsCTAtMTI4KCVyOCksJWVkaQogCW1vdmwJMzIt
MTI4KCVyOCksJWVicApAQCAtODAyLDYgKzgwNSw3IEBAIEwkZGVjX2NvbXBhY3RfZG9uZToKIAl4
b3JsCTEyKCVyMTUpLCVlZHgKIC5ieXRlCTB4ZjMsMHhjMwogCisKIC5wMmFsaWduCTQKIC5nbG9i
bAlfYWVzX25vaHdfZGVjcnlwdAogLnByaXZhdGVfZXh0ZXJuIF9hZXNfbm9od19kZWNyeXB0CkBA
IC05MjYsNiArOTMwLDcgQEAgTCRlbmNfa2V5X2VwaWxvZ3VlOgogCiAucDJhbGlnbgk0CiBfeDg2
XzY0X0FFU19zZXRfZW5jcnlwdF9rZXk6CisKIAltb3ZsCSVlc2ksJWVjeAogCW1vdnEJJXJkaSwl
cnNpCiAJbW92cQklcmR4LCVyZGkKQEAgLTExNjIsNiArMTE2Nyw3IEBAIEwkYmFkcG9pbnRlcjoK
IEwkZXhpdDoKIC5ieXRlCTB4ZjMsMHhjMwogCisKIC5wMmFsaWduCTQKIC5nbG9ibAlfYWVzX25v
aHdfc2V0X2RlY3J5cHRfa2V5CiAucHJpdmF0ZV9leHRlcm4gX2Flc19ub2h3X3NldF9kZWNyeXB0
X2tleQpAQCAtMTM3OCw2ICsxMzg0LDggQEAgX2Flc19ub2h3X2NiY19lbmNyeXB0OgogCWplCUwk
Y2JjX2VwaWxvZ3VlCiAJcHVzaGZxCiAKKworCiAJcHVzaHEJJXJieAogCiAJcHVzaHEJJXJicApA
QCAtMTQwMCw2ICsxNDA4LDcgQEAgTCRjYmNfcHJvbG9ndWU6CiAJY21wcQkkMCwlcjkKIAljbW92
ZXEJJXIxMCwlcjE0CiAKKwogCWxlYXEJX09QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCVyMTAKIAlt
b3ZsCSglcjEwKSwlcjEwZAogCWNtcHEJJDUxMiwlcmR4CkBAIC0xNjM3LDYgKzE2NDYsNyBAQCBM
JGNiY19mYXN0X2NsZWFudXA6CiAucDJhbGlnbgk0CiBMJGNiY19zbG93X3Byb2xvZ3VlOgogCisK
IAlsZWFxCS04OCglcnNwKSwlcmJwCiAJYW5kcQkkLTY0LCVyYnAKIApAQCAtMTY0OCw3ICsxNjU4
LDkgQEAgTCRjYmNfc2xvd19wcm9sb2d1ZToKIAogCXhjaGdxCSVyc3AsJXJicAogCisKIAltb3Zx
CSVyYnAsMTYoJXJzcCkKKwogTCRjYmNfc2xvd19ib2R5OgogCiAKQEAgLTE4MzgsNiArMTg1MCw4
IEBAIEwkY2JjX2V4aXQ6CiBMJGNiY19wb3BmcToKIAlwb3BmcQogCisKKwogTCRjYmNfZXBpbG9n
dWU6CiAJLmJ5dGUJMHhmMywweGMzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvYWVzbmktZ2NtLXg4Nl82NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVs
ZS9hZXNuaS1nY20teDg2XzY0LlMKaW5kZXggYjc5MDJjYTNiMGRhMTcyZWM0MTMzY2U0OGYxOWRk
YjBkNjRjOGI2Yi4uOWZiNGJlZjFlNjhkODBkYzc0YzMyODhkMTUzNTJlNWFiNWJmMDdhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS1nY20teDg2XzY0LlMK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS1nY20teDg2XzY0LlMKQEAg
LTU1Niw2ICs1NTYsMTIgQEAgTCRoYW5kbGVfY3RyMzJfMjoKIC5wMmFsaWduCTUKIF9hZXNuaV9n
Y21fZW5jcnlwdDoKIAorI2lmbmRlZiBOREVCVUcKKyNpZm5kZWYgQk9SSU5HU1NMX0ZJUFMKKwor
CW1vdmIJJDEsX0JPUklOR1NTTF9mdW5jdGlvbl9oaXQrMiglcmlwKQorI2VuZGlmCisjZW5kaWYK
IAl4b3JxCSVyMTAsJXIxMAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNt
b2R1bGUvYWVzbmkteDg2XzY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flc25p
LXg4Nl82NC5TCmluZGV4IDM4MWM1NzQ4Nzk2ZjczNDY5Mjk3MzM4ZGZkM2I3N2RlYzI4MjY0MjAu
LjVlMTI1OTY3MzFhZjg2ZmIyZTMzNDcwNTA0YmQ0ZDEzNzY5Yzc4NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21h
Yy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzbmkteDg2XzY0LlMKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82
NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS14ODZfNjQuUwpAQCAtMTgsNiArMTgsMTMgQEAKIAog
LnAyYWxpZ24JNAogX2Flc19od19lbmNyeXB0OgorCisjaWZuZGVmIE5ERUJVRworI2lmbmRlZiBC
T1JJTkdTU0xfRklQUworCisJbW92YgkkMSxfQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCsxKCVyaXAp
CisjZW5kaWYKKyNlbmRpZgogCW1vdnVwcwkoJXJkaSksJXhtbTIKIAltb3ZsCTI0MCglcmR4KSwl
ZWF4CiAJbW92dXBzCSglcmR4KSwleG1tMApAQCAtMzgsMTEgKzQ1LDEzIEBAIEwkb29wX2VuYzFf
MToKIAkuYnl0ZQkweGYzLDB4YzMKIAogCisKIC5nbG9ibAlfYWVzX2h3X2RlY3J5cHQKIC5wcml2
YXRlX2V4dGVybiBfYWVzX2h3X2RlY3J5cHQKIAogLnAyYWxpZ24JNAogX2Flc19od19kZWNyeXB0
OgorCiAJbW92dXBzCSglcmRpKSwleG1tMgogCW1vdmwJMjQwKCVyZHgpLCVlYXgKIAltb3Z1cHMJ
KCVyZHgpLCV4bW0wCkBAIC02Myw4ICs3MiwxMCBAQCBMJG9vcF9kZWMxXzI6CiAJLmJ5dGUJMHhm
MywweGMzCiAKIAorCiAucDJhbGlnbgk0CiBfYWVzbmlfZW5jcnlwdDI6CisKIAltb3Z1cHMJKCVy
Y3gpLCV4bW0wCiAJc2hsbAkkNCwlZWF4CiAJbW92dXBzCTE2KCVyY3gpLCV4bW0xCkBAIC05Miw4
ICsxMDMsMTAgQEAgTCRlbmNfbG9vcDI6CiAJLmJ5dGUJMHhmMywweGMzCiAKIAorCiAucDJhbGln
bgk0CiBfYWVzbmlfZGVjcnlwdDI6CisKIAltb3Z1cHMJKCVyY3gpLCV4bW0wCiAJc2hsbAkkNCwl
ZWF4CiAJbW92dXBzCTE2KCVyY3gpLCV4bW0xCkBAIC0xMjEsOCArMTM0LDEwIEBAIEwkZGVjX2xv
b3AyOgogCS5ieXRlCTB4ZjMsMHhjMwogCiAKKwogLnAyYWxpZ24JNAogX2Flc25pX2VuY3J5cHQz
OgorCiAJbW92dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4
KSwleG1tMQpAQCAtMTU1LDggKzE3MCwxMCBAQCBMJGVuY19sb29wMzoKIAkuYnl0ZQkweGYzLDB4
YzMKIAogCisKIC5wMmFsaWduCTQKIF9hZXNuaV9kZWNyeXB0MzoKKwogCW1vdnVwcwkoJXJjeCks
JXhtbTAKIAlzaGxsCSQ0LCVlYXgKIAltb3Z1cHMJMTYoJXJjeCksJXhtbTEKQEAgLTE4OSw4ICsy
MDYsMTAgQEAgTCRkZWNfbG9vcDM6CiAJLmJ5dGUJMHhmMywweGMzCiAKIAorCiAucDJhbGlnbgk0
CiBfYWVzbmlfZW5jcnlwdDQ6CisKIAltb3Z1cHMJKCVyY3gpLCV4bW0wCiAJc2hsbAkkNCwlZWF4
CiAJbW92dXBzCTE2KCVyY3gpLCV4bW0xCkBAIC0yMjksOCArMjQ4LDEwIEBAIEwkZW5jX2xvb3A0
OgogCS5ieXRlCTB4ZjMsMHhjMwogCiAKKwogLnAyYWxpZ24JNAogX2Flc25pX2RlY3J5cHQ0Ogor
CiAJbW92dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVwcwkxNiglcmN4KSwl
eG1tMQpAQCAtMjY5LDggKzI5MCwxMCBAQCBMJGRlY19sb29wNDoKIAkuYnl0ZQkweGYzLDB4YzMK
IAogCisKIC5wMmFsaWduCTQKIF9hZXNuaV9lbmNyeXB0NjoKKwogCW1vdnVwcwkoJXJjeCksJXht
bTAKIAlzaGxsCSQ0LCVlYXgKIAltb3Z1cHMJMTYoJXJjeCksJXhtbTEKQEAgLTMyMyw4ICszNDYs
MTAgQEAgTCRlbmNfbG9vcDZfZW50ZXI6CiAJLmJ5dGUJMHhmMywweGMzCiAKIAorCiAucDJhbGln
bgk0CiBfYWVzbmlfZGVjcnlwdDY6CisKIAltb3Z1cHMJKCVyY3gpLCV4bW0wCiAJc2hsbAkkNCwl
ZWF4CiAJbW92dXBzCTE2KCVyY3gpLCV4bW0xCkBAIC0zNzcsOCArNDAyLDEwIEBAIEwkZGVjX2xv
b3A2X2VudGVyOgogCS5ieXRlCTB4ZjMsMHhjMwogCiAKKwogLnAyYWxpZ24JNAogX2Flc25pX2Vu
Y3J5cHQ4OgorCiAJbW92dXBzCSglcmN4KSwleG1tMAogCXNobGwJJDQsJWVheAogCW1vdnVwcwkx
NiglcmN4KSwleG1tMQpAQCAtNDQxLDggKzQ2OCwxMCBAQCBMJGVuY19sb29wOF9lbnRlcjoKIAku
Ynl0ZQkweGYzLDB4YzMKIAogCisKIC5wMmFsaWduCTQKIF9hZXNuaV9kZWNyeXB0ODoKKwogCW1v
dnVwcwkoJXJjeCksJXhtbTAKIAlzaGxsCSQ0LCVlYXgKIAltb3Z1cHMJMTYoJXJjeCksJXhtbTEK
QEAgLTUwNCwxMSArNTMzLDEzIEBAIEwkZGVjX2xvb3A4X2VudGVyOgogLmJ5dGUJMTAyLDY4LDE1
LDU2LDIyMywyMDAKIAkuYnl0ZQkweGYzLDB4YzMKIAorCiAuZ2xvYmwJX2Flc19od19lY2JfZW5j
cnlwdAogLnByaXZhdGVfZXh0ZXJuIF9hZXNfaHdfZWNiX2VuY3J5cHQKIAogLnAyYWxpZ24JNAog
X2Flc19od19lY2JfZW5jcnlwdDoKKwogCWFuZHEJJC0xNiwlcmR4CiAJanoJTCRlY2JfcmV0CiAK
QEAgLTg0NywxNjcgKzg3OCw2IEBAIEwkZWNiX3JldDoKIAlweG9yCSV4bW0xLCV4bW0xCiAJLmJ5
dGUJMHhmMywweGMzCiAKLS5nbG9ibAlfYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzCi0ucHJp
dmF0ZV9leHRlcm4gX2Flc19od19jY202NF9lbmNyeXB0X2Jsb2NrcwotCi0ucDJhbGlnbgk0Ci1f
YWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzOgotCW1vdmwJMjQwKCVyY3gpLCVlYXgKLQltb3Zk
cXUJKCVyOCksJXhtbTYKLQltb3ZkcWEJTCRpbmNyZW1lbnQ2NCglcmlwKSwleG1tOQotCW1vdmRx
YQlMJGJzd2FwX21hc2soJXJpcCksJXhtbTcKLQotCXNobGwJJDQsJWVheAotCW1vdmwJJDE2LCVy
MTBkCi0JbGVhcQkwKCVyY3gpLCVyMTEKLQltb3ZkcXUJKCVyOSksJXhtbTMKLQltb3ZkcWEJJXht
bTYsJXhtbTIKLQlsZWFxCTMyKCVyY3gsJXJheCwxKSwlcmN4Ci0uYnl0ZQkxMDIsMTUsNTYsMCwy
NDcKLQlzdWJxCSVyYXgsJXIxMAotCWptcAlMJGNjbTY0X2VuY19vdXRlcgotLnAyYWxpZ24JNAot
TCRjY202NF9lbmNfb3V0ZXI6Ci0JbW92dXBzCSglcjExKSwleG1tMAotCW1vdnEJJXIxMCwlcmF4
Ci0JbW92dXBzCSglcmRpKSwleG1tOAotCi0JeG9ycHMJJXhtbTAsJXhtbTIKLQltb3Z1cHMJMTYo
JXIxMSksJXhtbTEKLQl4b3JwcwkleG1tOCwleG1tMAotCXhvcnBzCSV4bW0wLCV4bW0zCi0JbW92
dXBzCTMyKCVyMTEpLCV4bW0wCi0KLUwkY2NtNjRfZW5jMl9sb29wOgotLmJ5dGUJMTAyLDE1LDU2
LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0JbW92dXBzCSglcmN4LCVyYXgsMSks
JXhtbTEKLQlhZGRxCSQzMiwlcmF4Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOAotLmJ5dGUJMTAy
LDE1LDU2LDIyMCwyMTYKLQltb3Z1cHMJLTE2KCVyY3gsJXJheCwxKSwleG1tMAotCWpueglMJGNj
bTY0X2VuYzJfbG9vcAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1Niwy
MjAsMjE3Ci0JcGFkZHEJJXhtbTksJXhtbTYKLQlkZWNxCSVyZHgKLS5ieXRlCTEwMiwxNSw1Niwy
MjEsMjA4Ci0uYnl0ZQkxMDIsMTUsNTYsMjIxLDIxNgotCi0JbGVhcQkxNiglcmRpKSwlcmRpCi0J
eG9ycHMJJXhtbTIsJXhtbTgKLQltb3ZkcWEJJXhtbTYsJXhtbTIKLQltb3Z1cHMJJXhtbTgsKCVy
c2kpCi0uYnl0ZQkxMDIsMTUsNTYsMCwyMTUKLQlsZWFxCTE2KCVyc2kpLCVyc2kKLQlqbnoJTCRj
Y202NF9lbmNfb3V0ZXIKLQotCXB4b3IJJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xCi0J
cHhvcgkleG1tMiwleG1tMgotCW1vdnVwcwkleG1tMywoJXI5KQotCXB4b3IJJXhtbTMsJXhtbTMK
LQlweG9yCSV4bW04LCV4bW04Ci0JcHhvcgkleG1tNiwleG1tNgotCS5ieXRlCTB4ZjMsMHhjMwot
Ci0uZ2xvYmwJX2Flc19od19jY202NF9kZWNyeXB0X2Jsb2NrcwotLnByaXZhdGVfZXh0ZXJuIF9h
ZXNfaHdfY2NtNjRfZGVjcnlwdF9ibG9ja3MKLQotLnAyYWxpZ24JNAotX2Flc19od19jY202NF9k
ZWNyeXB0X2Jsb2NrczoKLQltb3ZsCTI0MCglcmN4KSwlZWF4Ci0JbW92dXBzCSglcjgpLCV4bW02
Ci0JbW92ZHF1CSglcjkpLCV4bW0zCi0JbW92ZHFhCUwkaW5jcmVtZW50NjQoJXJpcCksJXhtbTkK
LQltb3ZkcWEJTCRic3dhcF9tYXNrKCVyaXApLCV4bW03Ci0KLQltb3ZhcHMJJXhtbTYsJXhtbTIK
LQltb3ZsCSVlYXgsJXIxMGQKLQltb3ZxCSVyY3gsJXIxMQotLmJ5dGUJMTAyLDE1LDU2LDAsMjQ3
Ci0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnVwcwkxNiglcmN4KSwleG1tMQotCWxlYXEJMzIo
JXJjeCksJXJjeAotCXhvcnBzCSV4bW0wLCV4bW0yCi1MJG9vcF9lbmMxXzU6Ci0uYnl0ZQkxMDIs
MTUsNTYsMjIwLDIwOQotCWRlY2wJJWVheAotCW1vdnVwcwkoJXJjeCksJXhtbTEKLQlsZWFxCTE2
KCVyY3gpLCVyY3gKLQlqbnoJTCRvb3BfZW5jMV81Ci0uYnl0ZQkxMDIsMTUsNTYsMjIxLDIwOQot
CXNobGwJJDQsJXIxMGQKLQltb3ZsCSQxNiwlZWF4Ci0JbW92dXBzCSglcmRpKSwleG1tOAotCXBh
ZGRxCSV4bW05LCV4bW02Ci0JbGVhcQkxNiglcmRpKSwlcmRpCi0Jc3VicQklcjEwLCVyYXgKLQls
ZWFxCTMyKCVyMTEsJXIxMCwxKSwlcmN4Ci0JbW92cQklcmF4LCVyMTAKLQlqbXAJTCRjY202NF9k
ZWNfb3V0ZXIKLS5wMmFsaWduCTQKLUwkY2NtNjRfZGVjX291dGVyOgotCXhvcnBzCSV4bW0yLCV4
bW04Ci0JbW92ZHFhCSV4bW02LCV4bW0yCi0JbW92dXBzCSV4bW04LCglcnNpKQotCWxlYXEJMTYo
JXJzaSksJXJzaQotLmJ5dGUJMTAyLDE1LDU2LDAsMjE1Ci0KLQlzdWJxCSQxLCVyZHgKLQlqeglM
JGNjbTY0X2RlY19icmVhawotCi0JbW92dXBzCSglcjExKSwleG1tMAotCW1vdnEJJXIxMCwlcmF4
Ci0JbW92dXBzCTE2KCVyMTEpLCV4bW0xCi0JeG9ycHMJJXhtbTAsJXhtbTgKLQl4b3JwcwkleG1t
MCwleG1tMgotCXhvcnBzCSV4bW04LCV4bW0zCi0JbW92dXBzCTMyKCVyMTEpLCV4bW0wCi0Jam1w
CUwkY2NtNjRfZGVjMl9sb29wCi0ucDJhbGlnbgk0Ci1MJGNjbTY0X2RlYzJfbG9vcDoKLS5ieXRl
CTEwMiwxNSw1NiwyMjAsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwotCW1vdnVwcwkoJXJj
eCwlcmF4LDEpLCV4bW0xCi0JYWRkcQkkMzIsJXJheAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2Ci0JbW92dXBzCS0xNiglcmN4LCVyYXgsMSksJXhtbTAK
LQlqbnoJTCRjY202NF9kZWMyX2xvb3AKLQltb3Z1cHMJKCVyZGkpLCV4bW04Ci0JcGFkZHEJJXht
bTksJXhtbTYKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIx
NwotLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDgKLS5ieXRlCTEwMiwxNSw1NiwyMjEsMjE2Ci0JbGVh
cQkxNiglcmRpKSwlcmRpCi0Jam1wCUwkY2NtNjRfZGVjX291dGVyCi0KLS5wMmFsaWduCTQKLUwk
Y2NtNjRfZGVjX2JyZWFrOgotCi0JbW92bAkyNDAoJXIxMSksJWVheAotCW1vdnVwcwkoJXIxMSks
JXhtbTAKLQltb3Z1cHMJMTYoJXIxMSksJXhtbTEKLQl4b3JwcwkleG1tMCwleG1tOAotCWxlYXEJ
MzIoJXIxMSksJXIxMQotCXhvcnBzCSV4bW04LCV4bW0zCi1MJG9vcF9lbmMxXzY6Ci0uYnl0ZQkx
MDIsMTUsNTYsMjIwLDIxNwotCWRlY2wJJWVheAotCW1vdnVwcwkoJXIxMSksJXhtbTEKLQlsZWFx
CTE2KCVyMTEpLCVyMTEKLQlqbnoJTCRvb3BfZW5jMV82Ci0uYnl0ZQkxMDIsMTUsNTYsMjIxLDIx
NwotCXB4b3IJJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xCi0JcHhvcgkleG1tMiwleG1t
MgotCW1vdnVwcwkleG1tMywoJXI5KQotCXB4b3IJJXhtbTMsJXhtbTMKLQlweG9yCSV4bW04LCV4
bW04Ci0JcHhvcgkleG1tNiwleG1tNgotCS5ieXRlCTB4ZjMsMHhjMwogCiAuZ2xvYmwJX2Flc19o
d19jdHIzMl9lbmNyeXB0X2Jsb2NrcwogLnByaXZhdGVfZXh0ZXJuIF9hZXNfaHdfY3RyMzJfZW5j
cnlwdF9ibG9ja3MKQEAgLTEwMTUsNiArODg1LDExIEBAIEwkb29wX2VuYzFfNjoKIC5wMmFsaWdu
CTQKIF9hZXNfaHdfY3RyMzJfZW5jcnlwdF9ibG9ja3M6CiAKKyNpZm5kZWYgTkRFQlVHCisjaWZu
ZGVmIEJPUklOR1NTTF9GSVBTCisJbW92YgkkMSxfQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCglcmlw
KQorI2VuZGlmCisjZW5kaWYKIAljbXBxCSQxLCVyZHgKIAlqbmUJTCRjdHIzMl9idWxrCiAKQEAg
LTEwMjcsMTIgKzkwMiwxMiBAQCBfYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tzOgogCW1vdnVw
cwkxNiglcmN4KSwleG1tMQogCWxlYXEJMzIoJXJjeCksJXJjeAogCXhvcnBzCSV4bW0wLCV4bW0y
Ci1MJG9vcF9lbmMxXzc6CitMJG9vcF9lbmMxXzU6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQog
CWRlY2wJJWVkeAogCW1vdnVwcwkoJXJjeCksJXhtbTEKIAlsZWFxCTE2KCVyY3gpLCVyY3gKLQlq
bnoJTCRvb3BfZW5jMV83CisJam56CUwkb29wX2VuYzFfNQogLmJ5dGUJMTAyLDE1LDU2LDIyMSwy
MDkKIAlweG9yCSV4bW0wLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMQpAQCAtMTU4OSwxOTU1ICsx
NDY0LDEzMiBAQCBMJGN0cjMyX2VwaWxvZ3VlOgogCS5ieXRlCTB4ZjMsMHhjMwogCiAKLS5nbG9i
bAlfYWVzX2h3X3h0c19lbmNyeXB0Ci0ucHJpdmF0ZV9leHRlcm4gX2Flc19od194dHNfZW5jcnlw
dAorLmdsb2JsCV9hZXNfaHdfY2JjX2VuY3J5cHQKKy5wcml2YXRlX2V4dGVybiBfYWVzX2h3X2Ni
Y19lbmNyeXB0CiAKIC5wMmFsaWduCTQKLV9hZXNfaHdfeHRzX2VuY3J5cHQ6Ci0KLQlsZWFxCSgl
cnNwKSwlcjExCitfYWVzX2h3X2NiY19lbmNyeXB0OgogCi0JcHVzaHEJJXJicAorCXRlc3RxCSVy
ZHgsJXJkeAorCWp6CUwkY2JjX3JldAogCi0Jc3VicQkkMTEyLCVyc3AKLQlhbmRxCSQtMTYsJXJz
cAotCW1vdnVwcwkoJXI5KSwleG1tMgotCW1vdmwJMjQwKCVyOCksJWVheAogCW1vdmwJMjQwKCVy
Y3gpLCVyMTBkCi0JbW92dXBzCSglcjgpLCV4bW0wCi0JbW92dXBzCTE2KCVyOCksJXhtbTEKLQls
ZWFxCTMyKCVyOCksJXI4Ci0JeG9ycHMJJXhtbTAsJXhtbTIKLUwkb29wX2VuYzFfODoKKwltb3Zx
CSVyY3gsJXIxMQorCXRlc3RsCSVyOWQsJXI5ZAorCWp6CUwkY2JjX2RlY3J5cHQKKworCW1vdnVw
cwkoJXI4KSwleG1tMgorCW1vdmwJJXIxMGQsJWVheAorCWNtcHEJJDE2LCVyZHgKKwlqYglMJGNi
Y19lbmNfdGFpbAorCXN1YnEJJDE2LCVyZHgKKwlqbXAJTCRjYmNfZW5jX2xvb3AKKy5wMmFsaWdu
CTQKK0wkY2JjX2VuY19sb29wOgorCW1vdnVwcwkoJXJkaSksJXhtbTMKKwlsZWFxCTE2KCVyZGkp
LCVyZGkKKworCW1vdnVwcwkoJXJjeCksJXhtbTAKKwltb3Z1cHMJMTYoJXJjeCksJXhtbTEKKwl4
b3JwcwkleG1tMCwleG1tMworCWxlYXEJMzIoJXJjeCksJXJjeAorCXhvcnBzCSV4bW0zLCV4bW0y
CitMJG9vcF9lbmMxXzY6CiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQogCWRlY2wJJWVheAotCW1v
dnVwcwkoJXI4KSwleG1tMQotCWxlYXEJMTYoJXI4KSwlcjgKLQlqbnoJTCRvb3BfZW5jMV84CisJ
bW92dXBzCSglcmN4KSwleG1tMQorCWxlYXEJMTYoJXJjeCksJXJjeAorCWpueglMJG9vcF9lbmMx
XzYKIC5ieXRlCTEwMiwxNSw1NiwyMjEsMjA5Ci0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnEJ
JXJjeCwlcmJwCiAJbW92bAklcjEwZCwlZWF4Ci0Jc2hsbAkkNCwlcjEwZAotCW1vdnEJJXJkeCwl
cjkKLQlhbmRxCSQtMTYsJXJkeAorCW1vdnEJJXIxMSwlcmN4CisJbW92dXBzCSV4bW0yLDAoJXJz
aSkKKwlsZWFxCTE2KCVyc2kpLCVyc2kKKwlzdWJxCSQxNiwlcmR4CisJam5jCUwkY2JjX2VuY19s
b29wCisJYWRkcQkkMTYsJXJkeAorCWpueglMJGNiY19lbmNfdGFpbAorCXB4b3IJJXhtbTAsJXht
bTAKKwlweG9yCSV4bW0xLCV4bW0xCisJbW92dXBzCSV4bW0yLCglcjgpCisJcHhvcgkleG1tMiwl
eG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlqbXAJTCRjYmNfcmV0CiAKLQltb3Z1cHMJMTYoJXJj
eCwlcjEwLDEpLCV4bW0xCitMJGNiY19lbmNfdGFpbDoKKwltb3ZxCSVyZHgsJXJjeAorCXhjaGdx
CSVyZGksJXJzaQorLmxvbmcJMHg5MDY2QTRGMworCW1vdmwJJDE2LCVlY3gKKwlzdWJxCSVyZHgs
JXJjeAorCXhvcmwJJWVheCwlZWF4CisubG9uZwkweDkwNjZBQUYzCisJbGVhcQktMTYoJXJkaSks
JXJkaQorCW1vdmwJJXIxMGQsJWVheAorCW1vdnEJJXJkaSwlcnNpCisJbW92cQklcjExLCVyY3gK
Kwl4b3JxCSVyZHgsJXJkeAorCWptcAlMJGNiY19lbmNfbG9vcAogCi0JbW92ZHFhCUwkeHRzX21h
Z2ljKCVyaXApLCV4bW04Ci0JbW92ZHFhCSV4bW0yLCV4bW0xNQotCXBzaHVmZAkkMHg1ZiwleG1t
MiwleG1tOQotCXB4b3IJJXhtbTAsJXhtbTEKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0JcGFkZGQJ
JXhtbTksJXhtbTkKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBzcmFkCSQzMSwleG1tMTQKLQlw
YWRkcQkleG1tMTUsJXhtbTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLQlweG9yCSV4bW0wLCV4bW0x
MAotCXB4b3IJJXhtbTE0LCV4bW0xNQotCW1vdmRxYQkleG1tOSwleG1tMTQKLQlwYWRkZAkleG1t
OSwleG1tOQotCW1vdmRxYQkleG1tMTUsJXhtbTExCi0JcHNyYWQJJDMxLCV4bW0xNAotCXBhZGRx
CSV4bW0xNSwleG1tMTUKLQlwYW5kCSV4bW04LCV4bW0xNAotCXB4b3IJJXhtbTAsJXhtbTExCi0J
cHhvcgkleG1tMTQsJXhtbTE1Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRkCSV4bW05LCV4
bW05Ci0JbW92ZHFhCSV4bW0xNSwleG1tMTIKLQlwc3JhZAkkMzEsJXhtbTE0Ci0JcGFkZHEJJXht
bTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTE0Ci0JcHhvcgkleG1tMCwleG1tMTIKLQlweG9y
CSV4bW0xNCwleG1tMTUKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0JcGFkZGQJJXhtbTksJXhtbTkK
LQltb3ZkcWEJJXhtbTE1LCV4bW0xMwotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkleG1tMTUs
JXhtbTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLQlweG9yCSV4bW0wLCV4bW0xMwotCXB4b3IJJXht
bTE0LCV4bW0xNQotCW1vdmRxYQkleG1tMTUsJXhtbTE0Ci0JcHNyYWQJJDMxLCV4bW05Ci0JcGFk
ZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTkKLQlweG9yCSV4bW0wLCV4bW0xNAot
CXB4b3IJJXhtbTksJXhtbTE1Ci0JbW92YXBzCSV4bW0xLDk2KCVyc3ApCisucDJhbGlnbgk0CitM
JGNiY19kZWNyeXB0OgorCWNtcHEJJDE2LCVyZHgKKwlqbmUJTCRjYmNfZGVjcnlwdF9idWxrCiAK
LQlzdWJxCSQ5NiwlcmR4Ci0JamMJTCR4dHNfZW5jX3Nob3J0CiAKLQltb3ZsCSQxNis5NiwlZWF4
Ci0JbGVhcQkzMiglcmJwLCVyMTAsMSksJXJjeAotCXN1YnEJJXIxMCwlcmF4Ci0JbW92dXBzCTE2
KCVyYnApLCV4bW0xCi0JbW92cQklcmF4LCVyMTAKLQlsZWFxCUwkeHRzX21hZ2ljKCVyaXApLCVy
OAotCWptcAlMJHh0c19lbmNfZ3JhbmRsb29wCiAKLS5wMmFsaWduCTUKLUwkeHRzX2VuY19ncmFu
ZGxvb3A6CisJbW92ZHF1CSglcmRpKSwleG1tMgorCW1vdmRxdQkoJXI4KSwleG1tMworCW1vdmRx
YQkleG1tMiwleG1tNAorCW1vdnVwcwkoJXJjeCksJXhtbTAKKwltb3Z1cHMJMTYoJXJjeCksJXht
bTEKKwlsZWFxCTMyKCVyY3gpLCVyY3gKKwl4b3JwcwkleG1tMCwleG1tMgorTCRvb3BfZGVjMV83
OgorLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKKwlkZWNsCSVyMTBkCisJbW92dXBzCSglcmN4KSwl
eG1tMQorCWxlYXEJMTYoJXJjeCksJXJjeAorCWpueglMJG9vcF9kZWMxXzcKKy5ieXRlCTEwMiwx
NSw1NiwyMjMsMjA5CisJcHhvcgkleG1tMCwleG1tMAorCXB4b3IJJXhtbTEsJXhtbTEKKwltb3Zk
cXUJJXhtbTQsKCVyOCkKKwl4b3JwcwkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlt
b3Z1cHMJJXhtbTIsKCVyc2kpCisJcHhvcgkleG1tMiwleG1tMgorCWptcAlMJGNiY19yZXQKKy5w
MmFsaWduCTQKK0wkY2JjX2RlY3J5cHRfYnVsazoKKwlsZWFxCSglcnNwKSwlcjExCisKKwlwdXNo
cQklcmJwCisKKwlzdWJxCSQxNiwlcnNwCisJYW5kcQkkLTE2LCVyc3AKKwltb3ZxCSVyY3gsJXJi
cAorCW1vdnVwcwkoJXI4KSwleG1tMTAKKwltb3ZsCSVyMTBkLCVlYXgKKwljbXBxCSQweDUwLCVy
ZHgKKwlqYmUJTCRjYmNfZGVjX3RhaWwKKworCW1vdnVwcwkoJXJjeCksJXhtbTAKIAltb3ZkcXUJ
MCglcmRpKSwleG1tMgotCW1vdmRxYQkleG1tMCwleG1tOAogCW1vdmRxdQkxNiglcmRpKSwleG1t
MwotCXB4b3IJJXhtbTEwLCV4bW0yCisJbW92ZHFhCSV4bW0yLCV4bW0xMQogCW1vdmRxdQkzMigl
cmRpKSwleG1tNAotCXB4b3IJJXhtbTExLCV4bW0zCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQor
CW1vdmRxYQkleG1tMywleG1tMTIKIAltb3ZkcXUJNDgoJXJkaSksJXhtbTUKLQlweG9yCSV4bW0x
MiwleG1tNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKKwltb3ZkcWEJJXhtbTQsJXhtbTEzCiAJ
bW92ZHF1CTY0KCVyZGkpLCV4bW02Ci0JcHhvcgkleG1tMTMsJXhtbTUKLS5ieXRlCTEwMiwxNSw1
NiwyMjAsMjI1CisJbW92ZHFhCSV4bW01LCV4bW0xNAogCW1vdmRxdQk4MCglcmRpKSwleG1tNwot
CXB4b3IJJXhtbTE1LCV4bW04Ci0JbW92ZHFhCTk2KCVyc3ApLCV4bW05Ci0JcHhvcgkleG1tMTQs
JXhtbTYKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjMzCi0JbW92dXBzCTMyKCVyYnApLCV4bW0wCi0J
bGVhcQk5NiglcmRpKSwlcmRpCi0JcHhvcgkleG1tOCwleG1tNwotCi0JcHhvcgkleG1tOSwleG1t
MTAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQxCi0JcHhvcgkleG1tOSwleG1tMTEKLQltb3ZkcWEJ
JXhtbTEwLDAoJXJzcCkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ5Ci0JbW92dXBzCTQ4KCVyYnAp
LCV4bW0xCi0JcHhvcgkleG1tOSwleG1tMTIKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgKLQlw
eG9yCSV4bW05LCV4bW0xMwotCW1vdmRxYQkleG1tMTEsMTYoJXJzcCkKLS5ieXRlCTEwMiwxNSw1
NiwyMjAsMjE2Ci0JcHhvcgkleG1tOSwleG1tMTQKLQltb3ZkcWEJJXhtbTEyLDMyKCVyc3ApCi0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLQlweG9yCSV4
bW05LCV4bW04Ci0JbW92ZHFhCSV4bW0xNCw2NCglcnNwKQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
NDAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ4Ci0JbW92dXBzCTY0KCVyYnApLCV4bW0wCi0JbW92
ZHFhCSV4bW04LDgwKCVyc3ApCi0JcHNodWZkCSQweDVmLCV4bW0xNSwleG1tOQotCWptcAlMJHh0
c19lbmNfbG9vcDYKLS5wMmFsaWduCTUKLUwkeHRzX2VuY19sb29wNjoKLS5ieXRlCTEwMiwxNSw1
NiwyMjAsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMCwy
MjUKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjMzCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0MQotLmJ5
dGUJMTAyLDE1LDU2LDIyMCwyNDkKLQltb3Z1cHMJLTY0KCVyY3gsJXJheCwxKSwleG1tMQotCWFk
ZHEJJDMyLCVyYXgKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgKLS5ieXRlCTEwMiwxNSw1Niwy
MjAsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQwCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OAotCW1vdnVw
cwktODAoJXJjeCwlcmF4LDEpLCV4bW0wCi0Jam56CUwkeHRzX2VuY19sb29wNgotCi0JbW92ZHFh
CSglcjgpLCV4bW04Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRkCSV4bW05LCV4bW05Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIwLDIwOQotCXBhZGRxCSV4bW0xNSwleG1tMTUKLQlwc3JhZAkkMzEs
JXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwotCXBhbmQJJXhtbTgsJXhtbTE0Ci0JbW92
dXBzCSglcmJwKSwleG1tMTAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0ZQkxMDIsMTUs
NTYsMjIwLDIzMwotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDEKLQlweG9yCSV4bW0xNCwleG1tMTUK
LQltb3ZhcHMJJXhtbTEwLCV4bW0xMQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDkKLQltb3Z1cHMJ
LTY0KCVyY3gpLCV4bW0xCi0KLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYs
MjIwLDIwOAotCXBhZGRkCSV4bW05LCV4bW05Ci0JcHhvcgkleG1tMTUsJXhtbTEwCi0uYnl0ZQkx
MDIsMTUsNTYsMjIwLDIxNgotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkleG1tMTUsJXhtbTE1
Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLQlwYW5k
CSV4bW04LCV4bW0xNAotCW1vdmFwcwkleG1tMTEsJXhtbTEyCi0uYnl0ZQkxMDIsMTUsNTYsMjIw
LDI0MAotCXB4b3IJJXhtbTE0LCV4bW0xNQotCW1vdmRxYQkleG1tOSwleG1tMTQKLS5ieXRlCTEw
MiwxNSw1NiwyMjAsMjQ4Ci0JbW92dXBzCS00OCglcmN4KSwleG1tMAotCi0JcGFkZGQJJXhtbTks
JXhtbTkKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5Ci0JcHhvcgkleG1tMTUsJXhtbTExCi0JcHNy
YWQJJDMxLCV4bW0xNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKLQlwYWRkcQkleG1tMTUsJXht
bTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0ZQkx
MDIsMTUsNTYsMjIwLDIzMwotCW1vdmRxYQkleG1tMTMsNDgoJXJzcCkKLQlweG9yCSV4bW0xNCwl
eG1tMTUKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQxCi0JbW92YXBzCSV4bW0xMiwleG1tMTMKLQlt
b3ZkcWEJJXhtbTksJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OQotCW1vdnVwcwktMzIo
JXJjeCksJXhtbTEKLQotCXBhZGRkCSV4bW05LCV4bW05Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIw
OAotCXB4b3IJJXhtbTE1LCV4bW0xMgotCXBzcmFkCSQzMSwleG1tMTQKLS5ieXRlCTEwMiwxNSw1
NiwyMjAsMjE2Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTE0Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLS5ieXRlCTEwMiwx
NSw1NiwyMjAsMjQwCi0JcHhvcgkleG1tMTQsJXhtbTE1Ci0JbW92YXBzCSV4bW0xMywleG1tMTQK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ4Ci0KLQltb3ZkcWEJJXhtbTksJXhtbTAKLQlwYWRkZAkl
eG1tOSwleG1tOQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLQlweG9yCSV4bW0xNSwleG1tMTMK
LQlwc3JhZAkkMzEsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0JcGFkZHEJJXhtbTE1
LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIwLDIzMwotCXB4b3IJJXhtbTAsJXhtbTE1Ci0JbW92dXBzCSglcmJwKSwl
eG1tMAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDEKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ5Ci0J
bW92dXBzCTE2KCVyYnApLCV4bW0xCi0KLQlweG9yCSV4bW0xNSwleG1tMTQKLS5ieXRlCTEwMiwx
NSw1NiwyMjEsODQsMzYsMAotCXBzcmFkCSQzMSwleG1tOQotCXBhZGRxCSV4bW0xNSwleG1tMTUK
LS5ieXRlCTEwMiwxNSw1NiwyMjEsOTIsMzYsMTYKLS5ieXRlCTEwMiwxNSw1NiwyMjEsMTAwLDM2
LDMyCi0JcGFuZAkleG1tOCwleG1tOQotCW1vdnEJJXIxMCwlcmF4Ci0uYnl0ZQkxMDIsMTUsNTYs
MjIxLDEwOCwzNiw0OAotLmJ5dGUJMTAyLDE1LDU2LDIyMSwxMTYsMzYsNjQKLS5ieXRlCTEwMiwx
NSw1NiwyMjEsMTI0LDM2LDgwCi0JcHhvcgkleG1tOSwleG1tMTUKLQotCWxlYXEJOTYoJXJzaSks
JXJzaQotCW1vdnVwcwkleG1tMiwtOTYoJXJzaSkKLQltb3Z1cHMJJXhtbTMsLTgwKCVyc2kpCi0J
bW92dXBzCSV4bW00LC02NCglcnNpKQotCW1vdnVwcwkleG1tNSwtNDgoJXJzaSkKLQltb3Z1cHMJ
JXhtbTYsLTMyKCVyc2kpCi0JbW92dXBzCSV4bW03LC0xNiglcnNpKQotCXN1YnEJJDk2LCVyZHgK
LQlqbmMJTCR4dHNfZW5jX2dyYW5kbG9vcAotCi0JbW92bAkkMTYrOTYsJWVheAotCXN1YmwJJXIx
MGQsJWVheAotCW1vdnEJJXJicCwlcmN4Ci0Jc2hybAkkNCwlZWF4Ci0KLUwkeHRzX2VuY19zaG9y
dDoKLQotCW1vdmwJJWVheCwlcjEwZAotCXB4b3IJJXhtbTAsJXhtbTEwCi0JYWRkcQkkOTYsJXJk
eAotCWp6CUwkeHRzX2VuY19kb25lCi0KLQlweG9yCSV4bW0wLCV4bW0xMQotCWNtcHEJJDB4MjAs
JXJkeAotCWpiCUwkeHRzX2VuY19vbmUKLQlweG9yCSV4bW0wLCV4bW0xMgotCWplCUwkeHRzX2Vu
Y190d28KLQotCXB4b3IJJXhtbTAsJXhtbTEzCi0JY21wcQkkMHg0MCwlcmR4Ci0JamIJTCR4dHNf
ZW5jX3RocmVlCi0JcHhvcgkleG1tMCwleG1tMTQKLQlqZQlMJHh0c19lbmNfZm91cgotCi0JbW92
ZHF1CSglcmRpKSwleG1tMgotCW1vdmRxdQkxNiglcmRpKSwleG1tMwotCW1vdmRxdQkzMiglcmRp
KSwleG1tNAotCXB4b3IJJXhtbTEwLCV4bW0yCi0JbW92ZHF1CTQ4KCVyZGkpLCV4bW01Ci0JcHhv
cgkleG1tMTEsJXhtbTMKLQltb3ZkcXUJNjQoJXJkaSksJXhtbTYKLQlsZWFxCTgwKCVyZGkpLCVy
ZGkKLQlweG9yCSV4bW0xMiwleG1tNAotCXB4b3IJJXhtbTEzLCV4bW01Ci0JcHhvcgkleG1tMTQs
JXhtbTYKLQlweG9yCSV4bW03LCV4bW03Ci0KLQljYWxsCV9hZXNuaV9lbmNyeXB0NgotCi0JeG9y
cHMJJXhtbTEwLCV4bW0yCi0JbW92ZHFhCSV4bW0xNSwleG1tMTAKLQl4b3JwcwkleG1tMTEsJXht
bTMKLQl4b3JwcwkleG1tMTIsJXhtbTQKLQltb3ZkcXUJJXhtbTIsKCVyc2kpCi0JeG9ycHMJJXht
bTEzLCV4bW01Ci0JbW92ZHF1CSV4bW0zLDE2KCVyc2kpCi0JeG9ycHMJJXhtbTE0LCV4bW02Ci0J
bW92ZHF1CSV4bW00LDMyKCVyc2kpCi0JbW92ZHF1CSV4bW01LDQ4KCVyc2kpCi0JbW92ZHF1CSV4
bW02LDY0KCVyc2kpCi0JbGVhcQk4MCglcnNpKSwlcnNpCi0Jam1wCUwkeHRzX2VuY19kb25lCi0K
LS5wMmFsaWduCTQKLUwkeHRzX2VuY19vbmU6Ci0JbW92dXBzCSglcmRpKSwleG1tMgotCWxlYXEJ
MTYoJXJkaSksJXJkaQotCXhvcnBzCSV4bW0xMCwleG1tMgotCW1vdnVwcwkoJXJjeCksJXhtbTAK
LQltb3Z1cHMJMTYoJXJjeCksJXhtbTEKLQlsZWFxCTMyKCVyY3gpLCVyY3gKLQl4b3JwcwkleG1t
MCwleG1tMgotTCRvb3BfZW5jMV85OgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLQlkZWNsCSVl
YXgKLQltb3Z1cHMJKCVyY3gpLCV4bW0xCi0JbGVhcQkxNiglcmN4KSwlcmN4Ci0Jam56CUwkb29w
X2VuYzFfOQotLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDkKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQlt
b3ZkcWEJJXhtbTExLCV4bW0xMAotCW1vdnVwcwkleG1tMiwoJXJzaSkKLQlsZWFxCTE2KCVyc2kp
LCVyc2kKLQlqbXAJTCR4dHNfZW5jX2RvbmUKLQotLnAyYWxpZ24JNAotTCR4dHNfZW5jX3R3bzoK
LQltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JbW92dXBzCTE2KCVyZGkpLCV4bW0zCi0JbGVhcQkzMigl
cmRpKSwlcmRpCi0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JeG9ycHMJJXhtbTExLCV4bW0zCi0KLQlj
YWxsCV9hZXNuaV9lbmNyeXB0MgotCi0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JbW92ZHFhCSV4bW0x
MiwleG1tMTAKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQltb3Z1cHMJJXhtbTIsKCVyc2kpCi0JbW92
dXBzCSV4bW0zLDE2KCVyc2kpCi0JbGVhcQkzMiglcnNpKSwlcnNpCi0Jam1wCUwkeHRzX2VuY19k
b25lCi0KLS5wMmFsaWduCTQKLUwkeHRzX2VuY190aHJlZToKLQltb3Z1cHMJKCVyZGkpLCV4bW0y
Ci0JbW92dXBzCTE2KCVyZGkpLCV4bW0zCi0JbW92dXBzCTMyKCVyZGkpLCV4bW00Ci0JbGVhcQk0
OCglcmRpKSwlcmRpCi0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JeG9ycHMJJXhtbTExLCV4bW0zCi0J
eG9ycHMJJXhtbTEyLCV4bW00Ci0KLQljYWxsCV9hZXNuaV9lbmNyeXB0MwotCi0JeG9ycHMJJXht
bTEwLCV4bW0yCi0JbW92ZHFhCSV4bW0xMywleG1tMTAKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4
b3JwcwkleG1tMTIsJXhtbTQKLQltb3Z1cHMJJXhtbTIsKCVyc2kpCi0JbW92dXBzCSV4bW0zLDE2
KCVyc2kpCi0JbW92dXBzCSV4bW00LDMyKCVyc2kpCi0JbGVhcQk0OCglcnNpKSwlcnNpCi0Jam1w
CUwkeHRzX2VuY19kb25lCi0KLS5wMmFsaWduCTQKLUwkeHRzX2VuY19mb3VyOgotCW1vdnVwcwko
JXJkaSksJXhtbTIKLQltb3Z1cHMJMTYoJXJkaSksJXhtbTMKLQltb3Z1cHMJMzIoJXJkaSksJXht
bTQKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Z1cHMJNDgoJXJkaSksJXhtbTUKLQlsZWFxCTY0
KCVyZGkpLCVyZGkKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3JwcwkleG1tMTIsJXhtbTQKLQl4
b3JwcwkleG1tMTMsJXhtbTUKLQotCWNhbGwJX2Flc25pX2VuY3J5cHQ0Ci0KLQlweG9yCSV4bW0x
MCwleG1tMgotCW1vdmRxYQkleG1tMTQsJXhtbTEwCi0JcHhvcgkleG1tMTEsJXhtbTMKLQlweG9y
CSV4bW0xMiwleG1tNAotCW1vdmRxdQkleG1tMiwoJXJzaSkKLQlweG9yCSV4bW0xMywleG1tNQot
CW1vdmRxdQkleG1tMywxNiglcnNpKQotCW1vdmRxdQkleG1tNCwzMiglcnNpKQotCW1vdmRxdQkl
eG1tNSw0OCglcnNpKQotCWxlYXEJNjQoJXJzaSksJXJzaQotCWptcAlMJHh0c19lbmNfZG9uZQot
Ci0ucDJhbGlnbgk0Ci1MJHh0c19lbmNfZG9uZToKLQlhbmRxCSQxNSwlcjkKLQlqeglMJHh0c19l
bmNfcmV0Ci0JbW92cQklcjksJXJkeAotCi1MJHh0c19lbmNfc3RlYWw6Ci0JbW92emJsCSglcmRp
KSwlZWF4Ci0JbW92emJsCS0xNiglcnNpKSwlZWN4Ci0JbGVhcQkxKCVyZGkpLCVyZGkKLQltb3Zi
CSVhbCwtMTYoJXJzaSkKLQltb3ZiCSVjbCwwKCVyc2kpCi0JbGVhcQkxKCVyc2kpLCVyc2kKLQlz
dWJxCSQxLCVyZHgKLQlqbnoJTCR4dHNfZW5jX3N0ZWFsCi0KLQlzdWJxCSVyOSwlcnNpCi0JbW92
cQklcmJwLCVyY3gKLQltb3ZsCSVyMTBkLCVlYXgKLQotCW1vdnVwcwktMTYoJXJzaSksJXhtbTIK
LQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Z1cHMJKCVyY3gpLCV4bW0wCi0JbW92dXBzCTE2KCVy
Y3gpLCV4bW0xCi0JbGVhcQkzMiglcmN4KSwlcmN4Ci0JeG9ycHMJJXhtbTAsJXhtbTIKLUwkb29w
X2VuYzFfMTA6Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQotCWRlY2wJJWVheAotCW1vdnVwcwko
JXJjeCksJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQlqbnoJTCRvb3BfZW5jMV8xMAotLmJ5
dGUJMTAyLDE1LDU2LDIyMSwyMDkKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Z1cHMJJXhtbTIs
LTE2KCVyc2kpCi0KLUwkeHRzX2VuY19yZXQ6Ci0JeG9ycHMJJXhtbTAsJXhtbTAKLQlweG9yCSV4
bW0xLCV4bW0xCi0JcHhvcgkleG1tMiwleG1tMgotCXB4b3IJJXhtbTMsJXhtbTMKLQlweG9yCSV4
bW00LCV4bW00Ci0JcHhvcgkleG1tNSwleG1tNQotCXB4b3IJJXhtbTYsJXhtbTYKLQlweG9yCSV4
bW03LCV4bW03Ci0JbW92YXBzCSV4bW0wLDAoJXJzcCkKLQlweG9yCSV4bW04LCV4bW04Ci0JbW92
YXBzCSV4bW0wLDE2KCVyc3ApCi0JcHhvcgkleG1tOSwleG1tOQotCW1vdmFwcwkleG1tMCwzMigl
cnNwKQotCXB4b3IJJXhtbTEwLCV4bW0xMAotCW1vdmFwcwkleG1tMCw0OCglcnNwKQotCXB4b3IJ
JXhtbTExLCV4bW0xMQotCW1vdmFwcwkleG1tMCw2NCglcnNwKQotCXB4b3IJJXhtbTEyLCV4bW0x
MgotCW1vdmFwcwkleG1tMCw4MCglcnNwKQotCXB4b3IJJXhtbTEzLCV4bW0xMwotCW1vdmFwcwkl
eG1tMCw5NiglcnNwKQotCXB4b3IJJXhtbTE0LCV4bW0xNAotCXB4b3IJJXhtbTE1LCV4bW0xNQot
CW1vdnEJLTgoJXIxMSksJXJicAotCi0JbGVhcQkoJXIxMSksJXJzcAotCi1MJHh0c19lbmNfZXBp
bG9ndWU6Ci0JLmJ5dGUJMHhmMywweGMzCi0KLQotLmdsb2JsCV9hZXNfaHdfeHRzX2RlY3J5cHQK
LS5wcml2YXRlX2V4dGVybiBfYWVzX2h3X3h0c19kZWNyeXB0Ci0KLS5wMmFsaWduCTQKLV9hZXNf
aHdfeHRzX2RlY3J5cHQ6Ci0KLQlsZWFxCSglcnNwKSwlcjExCi0KLQlwdXNocQklcmJwCi0KLQlz
dWJxCSQxMTIsJXJzcAotCWFuZHEJJC0xNiwlcnNwCi0JbW92dXBzCSglcjkpLCV4bW0yCi0JbW92
bAkyNDAoJXI4KSwlZWF4Ci0JbW92bAkyNDAoJXJjeCksJXIxMGQKLQltb3Z1cHMJKCVyOCksJXht
bTAKLQltb3Z1cHMJMTYoJXI4KSwleG1tMQotCWxlYXEJMzIoJXI4KSwlcjgKLQl4b3JwcwkleG1t
MCwleG1tMgotTCRvb3BfZW5jMV8xMToKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5Ci0JZGVjbAkl
ZWF4Ci0JbW92dXBzCSglcjgpLCV4bW0xCi0JbGVhcQkxNiglcjgpLCVyOAotCWpueglMJG9vcF9l
bmMxXzExCi0uYnl0ZQkxMDIsMTUsNTYsMjIxLDIwOQotCXhvcmwJJWVheCwlZWF4Ci0JdGVzdHEJ
JDE1LCVyZHgKLQlzZXRuegklYWwKLQlzaGxxCSQ0LCVyYXgKLQlzdWJxCSVyYXgsJXJkeAotCi0J
bW92dXBzCSglcmN4KSwleG1tMAotCW1vdnEJJXJjeCwlcmJwCi0JbW92bAklcjEwZCwlZWF4Ci0J
c2hsbAkkNCwlcjEwZAotCW1vdnEJJXJkeCwlcjkKLQlhbmRxCSQtMTYsJXJkeAotCi0JbW92dXBz
CTE2KCVyY3gsJXIxMCwxKSwleG1tMQotCi0JbW92ZHFhCUwkeHRzX21hZ2ljKCVyaXApLCV4bW04
Ci0JbW92ZHFhCSV4bW0yLCV4bW0xNQotCXBzaHVmZAkkMHg1ZiwleG1tMiwleG1tOQotCXB4b3IJ
JXhtbTAsJXhtbTEKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0JcGFkZGQJJXhtbTksJXhtbTkKLQlt
b3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkleG1tMTUsJXht
bTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLQlweG9yCSV4bW0wLCV4bW0xMAotCXB4b3IJJXhtbTE0
LCV4bW0xNQotCW1vdmRxYQkleG1tOSwleG1tMTQKLQlwYWRkZAkleG1tOSwleG1tOQotCW1vdmRx
YQkleG1tMTUsJXhtbTExCi0JcHNyYWQJJDMxLCV4bW0xNAotCXBhZGRxCSV4bW0xNSwleG1tMTUK
LQlwYW5kCSV4bW04LCV4bW0xNAotCXB4b3IJJXhtbTAsJXhtbTExCi0JcHhvcgkleG1tMTQsJXht
bTE1Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRkCSV4bW05LCV4bW05Ci0JbW92ZHFhCSV4
bW0xNSwleG1tMTIKLQlwc3JhZAkkMzEsJXhtbTE0Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQotCXBh
bmQJJXhtbTgsJXhtbTE0Ci0JcHhvcgkleG1tMCwleG1tMTIKLQlweG9yCSV4bW0xNCwleG1tMTUK
LQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0JcGFkZGQJJXhtbTksJXhtbTkKLQltb3ZkcWEJJXhtbTE1
LCV4bW0xMwotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRkcQkleG1tMTUsJXhtbTE1Ci0JcGFuZAkl
eG1tOCwleG1tMTQKLQlweG9yCSV4bW0wLCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNQotCW1v
dmRxYQkleG1tMTUsJXhtbTE0Ci0JcHNyYWQJJDMxLCV4bW05Ci0JcGFkZHEJJXhtbTE1LCV4bW0x
NQotCXBhbmQJJXhtbTgsJXhtbTkKLQlweG9yCSV4bW0wLCV4bW0xNAotCXB4b3IJJXhtbTksJXht
bTE1Ci0JbW92YXBzCSV4bW0xLDk2KCVyc3ApCi0KLQlzdWJxCSQ5NiwlcmR4Ci0JamMJTCR4dHNf
ZGVjX3Nob3J0Ci0KLQltb3ZsCSQxNis5NiwlZWF4Ci0JbGVhcQkzMiglcmJwLCVyMTAsMSksJXJj
eAotCXN1YnEJJXIxMCwlcmF4Ci0JbW92dXBzCTE2KCVyYnApLCV4bW0xCi0JbW92cQklcmF4LCVy
MTAKLQlsZWFxCUwkeHRzX21hZ2ljKCVyaXApLCVyOAotCWptcAlMJHh0c19kZWNfZ3JhbmRsb29w
Ci0KLS5wMmFsaWduCTUKLUwkeHRzX2RlY19ncmFuZGxvb3A6Ci0JbW92ZHF1CTAoJXJkaSksJXht
bTIKLQltb3ZkcWEJJXhtbTAsJXhtbTgKLQltb3ZkcXUJMTYoJXJkaSksJXhtbTMKLQlweG9yCSV4
bW0xMCwleG1tMgotCW1vdmRxdQkzMiglcmRpKSwleG1tNAotCXB4b3IJJXhtbTExLCV4bW0zCi0u
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIwOQotCW1vdmRxdQk0OCglcmRpKSwleG1tNQotCXB4b3IJJXht
bTEyLCV4bW00Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotCW1vdmRxdQk2NCglcmRpKSwleG1t
NgotCXB4b3IJJXhtbTEzLCV4bW01Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNQotCW1vdmRxdQk4
MCglcmRpKSwleG1tNwotCXB4b3IJJXhtbTE1LCV4bW04Ci0JbW92ZHFhCTk2KCVyc3ApLCV4bW05
Ci0JcHhvcgkleG1tMTQsJXhtbTYKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCi0JbW92dXBzCTMy
KCVyYnApLCV4bW0wCi0JbGVhcQk5NiglcmRpKSwlcmRpCi0JcHhvcgkleG1tOCwleG1tNwotCi0J
cHhvcgkleG1tOSwleG1tMTAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQxCi0JcHhvcgkleG1tOSwl
eG1tMTEKLQltb3ZkcWEJJXhtbTEwLDAoJXJzcCkKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ5Ci0J
bW92dXBzCTQ4KCVyYnApLCV4bW0xCi0JcHhvcgkleG1tOSwleG1tMTIKLQotLmJ5dGUJMTAyLDE1
LDU2LDIyMiwyMDgKLQlweG9yCSV4bW05LCV4bW0xMwotCW1vdmRxYQkleG1tMTEsMTYoJXJzcCkK
LS5ieXRlCTEwMiwxNSw1NiwyMjIsMjE2Ci0JcHhvcgkleG1tOSwleG1tMTQKLQltb3ZkcWEJJXht
bTEyLDMyKCVyc3ApCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIy
MiwyMzIKLQlweG9yCSV4bW05LCV4bW04Ci0JbW92ZHFhCSV4bW0xNCw2NCglcnNwKQotLmJ5dGUJ
MTAyLDE1LDU2LDIyMiwyNDAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4Ci0JbW92dXBzCTY0KCVy
YnApLCV4bW0wCi0JbW92ZHFhCSV4bW04LDgwKCVyc3ApCi0JcHNodWZkCSQweDVmLCV4bW0xNSwl
eG1tOQotCWptcAlMJHh0c19kZWNfbG9vcDYKLS5wMmFsaWduCTUKLUwkeHRzX2RlY19sb29wNjoK
LS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJ
MTAyLDE1LDU2LDIyMiwyMjUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCi0uYnl0ZQkxMDIsMTUs
NTYsMjIyLDI0MQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDkKLQltb3Z1cHMJLTY0KCVyY3gsJXJh
eCwxKSwleG1tMQotCWFkZHEJJDMyLCVyYXgKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDgKLS5i
eXRlCTEwMiwxNSw1NiwyMjIsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAy
LDE1LDU2LDIyMiwyMzIKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQwCi0uYnl0ZQkxMDIsMTUsNTYs
MjIyLDI0OAotCW1vdnVwcwktODAoJXJjeCwlcmF4LDEpLCV4bW0wCi0Jam56CUwkeHRzX2RlY19s
b29wNgotCi0JbW92ZHFhCSglcjgpLCV4bW04Ci0JbW92ZHFhCSV4bW05LCV4bW0xNAotCXBhZGRk
CSV4bW05LCV4bW05Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQotCXBhZGRxCSV4bW0xNSwleG1t
MTUKLQlwc3JhZAkkMzEsJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotCXBhbmQJJXht
bTgsJXhtbTE0Ci0JbW92dXBzCSglcmJwKSwleG1tMTAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjI1
Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDEKLQlweG9y
CSV4bW0xNCwleG1tMTUKLQltb3ZhcHMJJXhtbTEwLCV4bW0xMQotLmJ5dGUJMTAyLDE1LDU2LDIy
MiwyNDkKLQltb3Z1cHMJLTY0KCVyY3gpLCV4bW0xCi0KLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIwOAotCXBhZGRkCSV4bW05LCV4bW05Ci0JcHhvcgkleG1tMTUs
JXhtbTEwCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNgotCXBzcmFkCSQzMSwleG1tMTQKLQlwYWRk
cQkleG1tMTUsJXhtbTE1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2
LDIyMiwyMzIKLQlwYW5kCSV4bW04LCV4bW0xNAotCW1vdmFwcwkleG1tMTEsJXhtbTEyCi0uYnl0
ZQkxMDIsMTUsNTYsMjIyLDI0MAotCXB4b3IJJXhtbTE0LCV4bW0xNQotCW1vdmRxYQkleG1tOSwl
eG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4Ci0JbW92dXBzCS00OCglcmN4KSwleG1tMAot
Ci0JcGFkZGQJJXhtbTksJXhtbTkKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0JcHhvcgkleG1t
MTUsJXhtbTExCi0JcHNyYWQJJDMxLCV4bW0xNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTcKLQlw
YWRkcQkleG1tMTUsJXhtbTE1Ci0JcGFuZAkleG1tOCwleG1tMTQKLS5ieXRlCTEwMiwxNSw1Niwy
MjIsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotCW1vdmRxYQkleG1tMTMsNDgoJXJzcCkK
LQlweG9yCSV4bW0xNCwleG1tMTUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQxCi0JbW92YXBzCSV4
bW0xMiwleG1tMTMKLQltb3ZkcWEJJXhtbTksJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0
OQotCW1vdnVwcwktMzIoJXJjeCksJXhtbTEKLQotCXBhZGRkCSV4bW05LCV4bW05Ci0uYnl0ZQkx
MDIsMTUsNTYsMjIyLDIwOAotCXB4b3IJJXhtbTE1LCV4bW0xMgotCXBzcmFkCSQzMSwleG1tMTQK
LS5ieXRlCTEwMiwxNSw1NiwyMjIsMjE2Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXht
bTgsJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MzIKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQwCi0JcHhvcgkleG1tMTQsJXhtbTE1Ci0JbW92YXBz
CSV4bW0xMywleG1tMTQKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4Ci0KLQltb3ZkcWEJJXhtbTks
JXhtbTAKLQlwYWRkZAkleG1tOSwleG1tOQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLQlweG9y
CSV4bW0xNSwleG1tMTMKLQlwc3JhZAkkMzEsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjE3
Ci0JcGFkZHEJJXhtbTE1LCV4bW0xNQotCXBhbmQJJXhtbTgsJXhtbTAKLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMwotCXB4b3IJJXhtbTAsJXhtbTE1Ci0J
bW92dXBzCSglcmJwKSwleG1tMAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyNDEKLS5ieXRlCTEwMiwx
NSw1NiwyMjIsMjQ5Ci0JbW92dXBzCTE2KCVyYnApLCV4bW0xCi0KLQlweG9yCSV4bW0xNSwleG1t
MTQKLS5ieXRlCTEwMiwxNSw1NiwyMjMsODQsMzYsMAotCXBzcmFkCSQzMSwleG1tOQotCXBhZGRx
CSV4bW0xNSwleG1tMTUKLS5ieXRlCTEwMiwxNSw1NiwyMjMsOTIsMzYsMTYKLS5ieXRlCTEwMiwx
NSw1NiwyMjMsMTAwLDM2LDMyCi0JcGFuZAkleG1tOCwleG1tOQotCW1vdnEJJXIxMCwlcmF4Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIzLDEwOCwzNiw0OAotLmJ5dGUJMTAyLDE1LDU2LDIyMywxMTYsMzYs
NjQKLS5ieXRlCTEwMiwxNSw1NiwyMjMsMTI0LDM2LDgwCi0JcHhvcgkleG1tOSwleG1tMTUKLQot
CWxlYXEJOTYoJXJzaSksJXJzaQotCW1vdnVwcwkleG1tMiwtOTYoJXJzaSkKLQltb3Z1cHMJJXht
bTMsLTgwKCVyc2kpCi0JbW92dXBzCSV4bW00LC02NCglcnNpKQotCW1vdnVwcwkleG1tNSwtNDgo
JXJzaSkKLQltb3Z1cHMJJXhtbTYsLTMyKCVyc2kpCi0JbW92dXBzCSV4bW03LC0xNiglcnNpKQot
CXN1YnEJJDk2LCVyZHgKLQlqbmMJTCR4dHNfZGVjX2dyYW5kbG9vcAotCi0JbW92bAkkMTYrOTYs
JWVheAotCXN1YmwJJXIxMGQsJWVheAotCW1vdnEJJXJicCwlcmN4Ci0Jc2hybAkkNCwlZWF4Ci0K
LUwkeHRzX2RlY19zaG9ydDoKLQotCW1vdmwJJWVheCwlcjEwZAotCXB4b3IJJXhtbTAsJXhtbTEw
Ci0JcHhvcgkleG1tMCwleG1tMTEKLQlhZGRxCSQ5NiwlcmR4Ci0JanoJTCR4dHNfZGVjX2RvbmUK
LQotCXB4b3IJJXhtbTAsJXhtbTEyCi0JY21wcQkkMHgyMCwlcmR4Ci0JamIJTCR4dHNfZGVjX29u
ZQotCXB4b3IJJXhtbTAsJXhtbTEzCi0JamUJTCR4dHNfZGVjX3R3bwotCi0JcHhvcgkleG1tMCwl
eG1tMTQKLQljbXBxCSQweDQwLCVyZHgKLQlqYglMJHh0c19kZWNfdGhyZWUKLQlqZQlMJHh0c19k
ZWNfZm91cgotCi0JbW92ZHF1CSglcmRpKSwleG1tMgotCW1vdmRxdQkxNiglcmRpKSwleG1tMwot
CW1vdmRxdQkzMiglcmRpKSwleG1tNAotCXB4b3IJJXhtbTEwLCV4bW0yCi0JbW92ZHF1CTQ4KCVy
ZGkpLCV4bW01Ci0JcHhvcgkleG1tMTEsJXhtbTMKLQltb3ZkcXUJNjQoJXJkaSksJXhtbTYKLQls
ZWFxCTgwKCVyZGkpLCVyZGkKLQlweG9yCSV4bW0xMiwleG1tNAotCXB4b3IJJXhtbTEzLCV4bW01
Ci0JcHhvcgkleG1tMTQsJXhtbTYKLQotCWNhbGwJX2Flc25pX2RlY3J5cHQ2Ci0KLQl4b3Jwcwkl
eG1tMTAsJXhtbTIKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3JwcwkleG1tMTIsJXhtbTQKLQlt
b3ZkcXUJJXhtbTIsKCVyc2kpCi0JeG9ycHMJJXhtbTEzLCV4bW01Ci0JbW92ZHF1CSV4bW0zLDE2
KCVyc2kpCi0JeG9ycHMJJXhtbTE0LCV4bW02Ci0JbW92ZHF1CSV4bW00LDMyKCVyc2kpCi0JcHhv
cgkleG1tMTQsJXhtbTE0Ci0JbW92ZHF1CSV4bW01LDQ4KCVyc2kpCi0JcGNtcGd0ZAkleG1tMTUs
JXhtbTE0Ci0JbW92ZHF1CSV4bW02LDY0KCVyc2kpCi0JbGVhcQk4MCglcnNpKSwlcnNpCi0JcHNo
dWZkCSQweDEzLCV4bW0xNCwleG1tMTEKLQlhbmRxCSQxNSwlcjkKLQlqeglMJHh0c19kZWNfcmV0
Ci0KLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBhZGRxCSV4bW0xNSwleG1tMTUKLQlwYW5kCSV4
bW04LCV4bW0xMQotCXB4b3IJJXhtbTE1LCV4bW0xMQotCWptcAlMJHh0c19kZWNfZG9uZTIKLQot
LnAyYWxpZ24JNAotTCR4dHNfZGVjX29uZToKLQltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JbGVhcQkx
NiglcmRpKSwlcmRpCi0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JbW92dXBzCSglcmN4KSwleG1tMAot
CW1vdnVwcwkxNiglcmN4KSwleG1tMQotCWxlYXEJMzIoJXJjeCksJXJjeAotCXhvcnBzCSV4bW0w
LCV4bW0yCi1MJG9vcF9kZWMxXzEyOgotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLQlkZWNsCSVl
YXgKLQltb3Z1cHMJKCVyY3gpLCV4bW0xCi0JbGVhcQkxNiglcmN4KSwlcmN4Ci0Jam56CUwkb29w
X2RlYzFfMTIKLS5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5Ci0JeG9ycHMJJXhtbTEwLCV4bW0yCi0J
bW92ZHFhCSV4bW0xMSwleG1tMTAKLQltb3Z1cHMJJXhtbTIsKCVyc2kpCi0JbW92ZHFhCSV4bW0x
MiwleG1tMTEKLQlsZWFxCTE2KCVyc2kpLCVyc2kKLQlqbXAJTCR4dHNfZGVjX2RvbmUKLQotLnAy
YWxpZ24JNAotTCR4dHNfZGVjX3R3bzoKLQltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JbW92dXBzCTE2
KCVyZGkpLCV4bW0zCi0JbGVhcQkzMiglcmRpKSwlcmRpCi0JeG9ycHMJJXhtbTEwLCV4bW0yCi0J
eG9ycHMJJXhtbTExLCV4bW0zCi0KLQljYWxsCV9hZXNuaV9kZWNyeXB0MgotCi0JeG9ycHMJJXht
bTEwLCV4bW0yCi0JbW92ZHFhCSV4bW0xMiwleG1tMTAKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQlt
b3ZkcWEJJXhtbTEzLCV4bW0xMQotCW1vdnVwcwkleG1tMiwoJXJzaSkKLQltb3Z1cHMJJXhtbTMs
MTYoJXJzaSkKLQlsZWFxCTMyKCVyc2kpLCVyc2kKLQlqbXAJTCR4dHNfZGVjX2RvbmUKLQotLnAy
YWxpZ24JNAotTCR4dHNfZGVjX3RocmVlOgotCW1vdnVwcwkoJXJkaSksJXhtbTIKLQltb3Z1cHMJ
MTYoJXJkaSksJXhtbTMKLQltb3Z1cHMJMzIoJXJkaSksJXhtbTQKLQlsZWFxCTQ4KCVyZGkpLCVy
ZGkKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQl4b3JwcwkleG1tMTEsJXhtbTMKLQl4b3JwcwkleG1t
MTIsJXhtbTQKLQotCWNhbGwJX2Flc25pX2RlY3J5cHQzCi0KLQl4b3JwcwkleG1tMTAsJXhtbTIK
LQltb3ZkcWEJJXhtbTEzLCV4bW0xMAotCXhvcnBzCSV4bW0xMSwleG1tMwotCW1vdmRxYQkleG1t
MTQsJXhtbTExCi0JeG9ycHMJJXhtbTEyLCV4bW00Ci0JbW92dXBzCSV4bW0yLCglcnNpKQotCW1v
dnVwcwkleG1tMywxNiglcnNpKQotCW1vdnVwcwkleG1tNCwzMiglcnNpKQotCWxlYXEJNDgoJXJz
aSksJXJzaQotCWptcAlMJHh0c19kZWNfZG9uZQotCi0ucDJhbGlnbgk0Ci1MJHh0c19kZWNfZm91
cjoKLQltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JbW92dXBzCTE2KCVyZGkpLCV4bW0zCi0JbW92dXBz
CTMyKCVyZGkpLCV4bW00Ci0JeG9ycHMJJXhtbTEwLCV4bW0yCi0JbW92dXBzCTQ4KCVyZGkpLCV4
bW01Ci0JbGVhcQk2NCglcmRpKSwlcmRpCi0JeG9ycHMJJXhtbTExLCV4bW0zCi0JeG9ycHMJJXht
bTEyLCV4bW00Ci0JeG9ycHMJJXhtbTEzLCV4bW01Ci0KLQljYWxsCV9hZXNuaV9kZWNyeXB0NAot
Ci0JcHhvcgkleG1tMTAsJXhtbTIKLQltb3ZkcWEJJXhtbTE0LCV4bW0xMAotCXB4b3IJJXhtbTEx
LCV4bW0zCi0JbW92ZHFhCSV4bW0xNSwleG1tMTEKLQlweG9yCSV4bW0xMiwleG1tNAotCW1vdmRx
dQkleG1tMiwoJXJzaSkKLQlweG9yCSV4bW0xMywleG1tNQotCW1vdmRxdQkleG1tMywxNiglcnNp
KQotCW1vdmRxdQkleG1tNCwzMiglcnNpKQotCW1vdmRxdQkleG1tNSw0OCglcnNpKQotCWxlYXEJ
NjQoJXJzaSksJXJzaQotCWptcAlMJHh0c19kZWNfZG9uZQotCi0ucDJhbGlnbgk0Ci1MJHh0c19k
ZWNfZG9uZToKLQlhbmRxCSQxNSwlcjkKLQlqeglMJHh0c19kZWNfcmV0Ci1MJHh0c19kZWNfZG9u
ZTI6Ci0JbW92cQklcjksJXJkeAotCW1vdnEJJXJicCwlcmN4Ci0JbW92bAklcjEwZCwlZWF4Ci0K
LQltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JeG9ycHMJJXhtbTExLCV4bW0yCi0JbW92dXBzCSglcmN4
KSwleG1tMAotCW1vdnVwcwkxNiglcmN4KSwleG1tMQotCWxlYXEJMzIoJXJjeCksJXJjeAotCXhv
cnBzCSV4bW0wLCV4bW0yCi1MJG9vcF9kZWMxXzEzOgotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkK
LQlkZWNsCSVlYXgKLQltb3Z1cHMJKCVyY3gpLCV4bW0xCi0JbGVhcQkxNiglcmN4KSwlcmN4Ci0J
am56CUwkb29wX2RlYzFfMTMKLS5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5Ci0JeG9ycHMJJXhtbTEx
LCV4bW0yCi0JbW92dXBzCSV4bW0yLCglcnNpKQotCi1MJHh0c19kZWNfc3RlYWw6Ci0JbW92emJs
CTE2KCVyZGkpLCVlYXgKLQltb3Z6YmwJKCVyc2kpLCVlY3gKLQlsZWFxCTEoJXJkaSksJXJkaQot
CW1vdmIJJWFsLCglcnNpKQotCW1vdmIJJWNsLDE2KCVyc2kpCi0JbGVhcQkxKCVyc2kpLCVyc2kK
LQlzdWJxCSQxLCVyZHgKLQlqbnoJTCR4dHNfZGVjX3N0ZWFsCi0KLQlzdWJxCSVyOSwlcnNpCi0J
bW92cQklcmJwLCVyY3gKLQltb3ZsCSVyMTBkLCVlYXgKLQotCW1vdnVwcwkoJXJzaSksJXhtbTIK
LQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Z1cHMJKCVyY3gpLCV4bW0wCi0JbW92dXBzCTE2KCVy
Y3gpLCV4bW0xCi0JbGVhcQkzMiglcmN4KSwlcmN4Ci0JeG9ycHMJJXhtbTAsJXhtbTIKLUwkb29w
X2RlYzFfMTQ6Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQotCWRlY2wJJWVheAotCW1vdnVwcwko
JXJjeCksJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQlqbnoJTCRvb3BfZGVjMV8xNAotLmJ5
dGUJMTAyLDE1LDU2LDIyMywyMDkKLQl4b3JwcwkleG1tMTAsJXhtbTIKLQltb3Z1cHMJJXhtbTIs
KCVyc2kpCi0KLUwkeHRzX2RlY19yZXQ6Ci0JeG9ycHMJJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0x
LCV4bW0xCi0JcHhvcgkleG1tMiwleG1tMgotCXB4b3IJJXhtbTMsJXhtbTMKLQlweG9yCSV4bW00
LCV4bW00Ci0JcHhvcgkleG1tNSwleG1tNQotCXB4b3IJJXhtbTYsJXhtbTYKLQlweG9yCSV4bW03
LCV4bW03Ci0JbW92YXBzCSV4bW0wLDAoJXJzcCkKLQlweG9yCSV4bW04LCV4bW04Ci0JbW92YXBz
CSV4bW0wLDE2KCVyc3ApCi0JcHhvcgkleG1tOSwleG1tOQotCW1vdmFwcwkleG1tMCwzMiglcnNw
KQotCXB4b3IJJXhtbTEwLCV4bW0xMAotCW1vdmFwcwkleG1tMCw0OCglcnNwKQotCXB4b3IJJXht
bTExLCV4bW0xMQotCW1vdmFwcwkleG1tMCw2NCglcnNwKQotCXB4b3IJJXhtbTEyLCV4bW0xMgot
CW1vdmFwcwkleG1tMCw4MCglcnNwKQotCXB4b3IJJXhtbTEzLCV4bW0xMwotCW1vdmFwcwkleG1t
MCw5NiglcnNwKQotCXB4b3IJJXhtbTE0LCV4bW0xNAotCXB4b3IJJXhtbTE1LCV4bW0xNQotCW1v
dnEJLTgoJXIxMSksJXJicAotCi0JbGVhcQkoJXIxMSksJXJzcAotCi1MJHh0c19kZWNfZXBpbG9n
dWU6Ci0JLmJ5dGUJMHhmMywweGMzCi0KLQotLmdsb2JsCV9hZXNfaHdfb2NiX2VuY3J5cHQKLS5w
cml2YXRlX2V4dGVybiBfYWVzX2h3X29jYl9lbmNyeXB0Ci0KLS5wMmFsaWduCTUKLV9hZXNfaHdf
b2NiX2VuY3J5cHQ6Ci0KLQlsZWFxCSglcnNwKSwlcmF4Ci0JcHVzaHEJJXJieAotCi0JcHVzaHEJ
JXJicAotCi0JcHVzaHEJJXIxMgotCi0JcHVzaHEJJXIxMwotCi0JcHVzaHEJJXIxNAotCi0JbW92
cQk4KCVyYXgpLCVyYngKLQltb3ZxCTgrOCglcmF4KSwlcmJwCi0KLQltb3ZsCTI0MCglcmN4KSwl
cjEwZAotCW1vdnEJJXJjeCwlcjExCi0Jc2hsbAkkNCwlcjEwZAotCW1vdnVwcwkoJXJjeCksJXht
bTkKLQltb3Z1cHMJMTYoJXJjeCwlcjEwLDEpLCV4bW0xCi0KLQltb3ZkcXUJKCVyOSksJXhtbTE1
Ci0JcHhvcgkleG1tMSwleG1tOQotCXB4b3IJJXhtbTEsJXhtbTE1Ci0KLQltb3ZsCSQxNiszMiwl
ZWF4Ci0JbGVhcQkzMiglcjExLCVyMTAsMSksJXJjeAotCW1vdnVwcwkxNiglcjExKSwleG1tMQot
CXN1YnEJJXIxMCwlcmF4Ci0JbW92cQklcmF4LCVyMTAKLQotCW1vdmRxdQkoJXJieCksJXhtbTEw
Ci0JbW92ZHF1CSglcmJwKSwleG1tOAotCi0JdGVzdHEJJDEsJXI4Ci0Jam56CUwkb2NiX2VuY19v
ZGQKLQotCWJzZnEJJXI4LCVyMTIKLQlhZGRxCSQxLCVyOAotCXNobHEJJDQsJXIxMgotCW1vdmRx
dQkoJXJieCwlcjEyLDEpLCV4bW03Ci0JbW92ZHF1CSglcmRpKSwleG1tMgotCWxlYXEJMTYoJXJk
aSksJXJkaQotCi0JY2FsbAlfX29jYl9lbmNyeXB0MQotCi0JbW92ZHFhCSV4bW03LCV4bW0xNQot
CW1vdnVwcwkleG1tMiwoJXJzaSkKLQlsZWFxCTE2KCVyc2kpLCVyc2kKLQlzdWJxCSQxLCVyZHgK
LQlqeglMJG9jYl9lbmNfZG9uZQotCi1MJG9jYl9lbmNfb2RkOgotCWxlYXEJMSglcjgpLCVyMTIK
LQlsZWFxCTMoJXI4KSwlcjEzCi0JbGVhcQk1KCVyOCksJXIxNAotCWxlYXEJNiglcjgpLCVyOAot
CWJzZnEJJXIxMiwlcjEyCi0JYnNmcQklcjEzLCVyMTMKLQlic2ZxCSVyMTQsJXIxNAotCXNobHEJ
JDQsJXIxMgotCXNobHEJJDQsJXIxMwotCXNobHEJJDQsJXIxNAotCi0Jc3VicQkkNiwlcmR4Ci0J
amMJTCRvY2JfZW5jX3Nob3J0Ci0Jam1wCUwkb2NiX2VuY19ncmFuZGxvb3AKLQotLnAyYWxpZ24J
NQotTCRvY2JfZW5jX2dyYW5kbG9vcDoKLQltb3ZkcXUJMCglcmRpKSwleG1tMgotCW1vdmRxdQkx
NiglcmRpKSwleG1tMwotCW1vdmRxdQkzMiglcmRpKSwleG1tNAotCW1vdmRxdQk0OCglcmRpKSwl
eG1tNQotCW1vdmRxdQk2NCglcmRpKSwleG1tNgotCW1vdmRxdQk4MCglcmRpKSwleG1tNwotCWxl
YXEJOTYoJXJkaSksJXJkaQotCi0JY2FsbAlfX29jYl9lbmNyeXB0NgotCi0JbW92dXBzCSV4bW0y
LDAoJXJzaSkKLQltb3Z1cHMJJXhtbTMsMTYoJXJzaSkKLQltb3Z1cHMJJXhtbTQsMzIoJXJzaSkK
LQltb3Z1cHMJJXhtbTUsNDgoJXJzaSkKLQltb3Z1cHMJJXhtbTYsNjQoJXJzaSkKLQltb3Z1cHMJ
JXhtbTcsODAoJXJzaSkKLQlsZWFxCTk2KCVyc2kpLCVyc2kKLQlzdWJxCSQ2LCVyZHgKLQlqbmMJ
TCRvY2JfZW5jX2dyYW5kbG9vcAotCi1MJG9jYl9lbmNfc2hvcnQ6Ci0JYWRkcQkkNiwlcmR4Ci0J
anoJTCRvY2JfZW5jX2RvbmUKLQotCW1vdmRxdQkwKCVyZGkpLCV4bW0yCi0JY21wcQkkMiwlcmR4
Ci0JamIJTCRvY2JfZW5jX29uZQotCW1vdmRxdQkxNiglcmRpKSwleG1tMwotCWplCUwkb2NiX2Vu
Y190d28KLQotCW1vdmRxdQkzMiglcmRpKSwleG1tNAotCWNtcHEJJDQsJXJkeAotCWpiCUwkb2Ni
X2VuY190aHJlZQotCW1vdmRxdQk0OCglcmRpKSwleG1tNQotCWplCUwkb2NiX2VuY19mb3VyCi0K
LQltb3ZkcXUJNjQoJXJkaSksJXhtbTYKLQlweG9yCSV4bW03LCV4bW03Ci0KLQljYWxsCV9fb2Ni
X2VuY3J5cHQ2Ci0KLQltb3ZkcWEJJXhtbTE0LCV4bW0xNQotCW1vdnVwcwkleG1tMiwwKCVyc2kp
Ci0JbW92dXBzCSV4bW0zLDE2KCVyc2kpCi0JbW92dXBzCSV4bW00LDMyKCVyc2kpCi0JbW92dXBz
CSV4bW01LDQ4KCVyc2kpCi0JbW92dXBzCSV4bW02LDY0KCVyc2kpCi0KLQlqbXAJTCRvY2JfZW5j
X2RvbmUKLQotLnAyYWxpZ24JNAotTCRvY2JfZW5jX29uZToKLQltb3ZkcWEJJXhtbTEwLCV4bW03
Ci0KLQljYWxsCV9fb2NiX2VuY3J5cHQxCi0KLQltb3ZkcWEJJXhtbTcsJXhtbTE1Ci0JbW92dXBz
CSV4bW0yLDAoJXJzaSkKLQlqbXAJTCRvY2JfZW5jX2RvbmUKLQotLnAyYWxpZ24JNAotTCRvY2Jf
ZW5jX3R3bzoKLQlweG9yCSV4bW00LCV4bW00Ci0JcHhvcgkleG1tNSwleG1tNQotCi0JY2FsbAlf
X29jYl9lbmNyeXB0NAotCi0JbW92ZHFhCSV4bW0xMSwleG1tMTUKLQltb3Z1cHMJJXhtbTIsMCgl
cnNpKQotCW1vdnVwcwkleG1tMywxNiglcnNpKQotCi0Jam1wCUwkb2NiX2VuY19kb25lCi0KLS5w
MmFsaWduCTQKLUwkb2NiX2VuY190aHJlZToKLQlweG9yCSV4bW01LCV4bW01Ci0KLQljYWxsCV9f
b2NiX2VuY3J5cHQ0Ci0KLQltb3ZkcWEJJXhtbTEyLCV4bW0xNQotCW1vdnVwcwkleG1tMiwwKCVy
c2kpCi0JbW92dXBzCSV4bW0zLDE2KCVyc2kpCi0JbW92dXBzCSV4bW00LDMyKCVyc2kpCi0KLQlq
bXAJTCRvY2JfZW5jX2RvbmUKLQotLnAyYWxpZ24JNAotTCRvY2JfZW5jX2ZvdXI6Ci0JY2FsbAlf
X29jYl9lbmNyeXB0NAotCi0JbW92ZHFhCSV4bW0xMywleG1tMTUKLQltb3Z1cHMJJXhtbTIsMCgl
cnNpKQotCW1vdnVwcwkleG1tMywxNiglcnNpKQotCW1vdnVwcwkleG1tNCwzMiglcnNpKQotCW1v
dnVwcwkleG1tNSw0OCglcnNpKQotCi1MJG9jYl9lbmNfZG9uZToKLQlweG9yCSV4bW0wLCV4bW0x
NQotCW1vdmRxdQkleG1tOCwoJXJicCkKLQltb3ZkcXUJJXhtbTE1LCglcjkpCi0KLQl4b3Jwcwkl
eG1tMCwleG1tMAotCXB4b3IJJXhtbTEsJXhtbTEKLQlweG9yCSV4bW0yLCV4bW0yCi0JcHhvcgkl
eG1tMywleG1tMwotCXB4b3IJJXhtbTQsJXhtbTQKLQlweG9yCSV4bW01LCV4bW01Ci0JcHhvcgkl
eG1tNiwleG1tNgotCXB4b3IJJXhtbTcsJXhtbTcKLQlweG9yCSV4bW04LCV4bW04Ci0JcHhvcgkl
eG1tOSwleG1tOQotCXB4b3IJJXhtbTEwLCV4bW0xMAotCXB4b3IJJXhtbTExLCV4bW0xMQotCXB4
b3IJJXhtbTEyLCV4bW0xMgotCXB4b3IJJXhtbTEzLCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0x
NAotCXB4b3IJJXhtbTE1LCV4bW0xNQotCWxlYXEJNDAoJXJzcCksJXJheAotCi0JbW92cQktNDAo
JXJheCksJXIxNAotCi0JbW92cQktMzIoJXJheCksJXIxMwotCi0JbW92cQktMjQoJXJheCksJXIx
MgotCi0JbW92cQktMTYoJXJheCksJXJicAotCi0JbW92cQktOCglcmF4KSwlcmJ4Ci0KLQlsZWFx
CSglcmF4KSwlcnNwCi0KLUwkb2NiX2VuY19lcGlsb2d1ZToKLQkuYnl0ZQkweGYzLDB4YzMKLQot
Ci0KLQotLnAyYWxpZ24JNQotX19vY2JfZW5jcnlwdDY6Ci0JcHhvcgkleG1tOSwleG1tMTUKLQlt
b3ZkcXUJKCVyYngsJXIxMiwxKSwleG1tMTEKLQltb3ZkcWEJJXhtbTEwLCV4bW0xMgotCW1vdmRx
dQkoJXJieCwlcjEzLDEpLCV4bW0xMwotCW1vdmRxYQkleG1tMTAsJXhtbTE0Ci0JcHhvcgkleG1t
MTUsJXhtbTEwCi0JbW92ZHF1CSglcmJ4LCVyMTQsMSksJXhtbTE1Ci0JcHhvcgkleG1tMTAsJXht
bTExCi0JcHhvcgkleG1tMiwleG1tOAotCXB4b3IJJXhtbTEwLCV4bW0yCi0JcHhvcgkleG1tMTEs
JXhtbTEyCi0JcHhvcgkleG1tMywleG1tOAotCXB4b3IJJXhtbTExLCV4bW0zCi0JcHhvcgkleG1t
MTIsJXhtbTEzCi0JcHhvcgkleG1tNCwleG1tOAotCXB4b3IJJXhtbTEyLCV4bW00Ci0JcHhvcgkl
eG1tMTMsJXhtbTE0Ci0JcHhvcgkleG1tNSwleG1tOAotCXB4b3IJJXhtbTEzLCV4bW01Ci0JcHhv
cgkleG1tMTQsJXhtbTE1Ci0JcHhvcgkleG1tNiwleG1tOAotCXB4b3IJJXhtbTE0LCV4bW02Ci0J
cHhvcgkleG1tNywleG1tOAotCXB4b3IJJXhtbTE1LCV4bW03Ci0JbW92dXBzCTMyKCVyMTEpLCV4
bW0wCi0KLQlsZWFxCTEoJXI4KSwlcjEyCi0JbGVhcQkzKCVyOCksJXIxMwotCWxlYXEJNSglcjgp
LCVyMTQKLQlhZGRxCSQ2LCVyOAotCXB4b3IJJXhtbTksJXhtbTEwCi0JYnNmcQklcjEyLCVyMTIK
LQlic2ZxCSVyMTMsJXIxMwotCWJzZnEJJXIxNCwlcjE0Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjAs
MjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjUKLS5i
eXRlCTEwMiwxNSw1NiwyMjAsMjMzCi0JcHhvcgkleG1tOSwleG1tMTEKLQlweG9yCSV4bW05LCV4
bW0xMgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDEKLQlweG9yCSV4bW05LCV4bW0xMwotCXB4b3IJ
JXhtbTksJXhtbTE0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OQotCW1vdnVwcwk0OCglcjExKSwl
eG1tMQotCXB4b3IJJXhtbTksJXhtbTE1Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA4Ci0uYnl0
ZQkxMDIsMTUsNTYsMjIwLDIxNgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMjQKLS5ieXRlCTEwMiwx
NSw1NiwyMjAsMjMyCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDI0MAotLmJ5dGUJMTAyLDE1LDU2LDIy
MCwyNDgKLQltb3Z1cHMJNjQoJXIxMSksJXhtbTAKLQlzaGxxCSQ0LCVyMTIKLQlzaGxxCSQ0LCVy
MTMKLQlqbXAJTCRvY2JfZW5jX2xvb3A2Ci0KLS5wMmFsaWduCTUKLUwkb2NiX2VuY19sb29wNjoK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIxNwotLmJ5dGUJ
MTAyLDE1LDU2LDIyMCwyMjUKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjMzCi0uYnl0ZQkxMDIsMTUs
NTYsMjIwLDI0MQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyNDkKLQltb3Z1cHMJKCVyY3gsJXJheCwx
KSwleG1tMQotCWFkZHEJJDMyLCVyYXgKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDgKLS5ieXRl
CTEwMiwxNSw1NiwyMjAsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNAotLmJ5dGUJMTAyLDE1
LDU2LDIyMCwyMzIKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQwCi0uYnl0ZQkxMDIsMTUsNTYsMjIw
LDI0OAotCW1vdnVwcwktMTYoJXJjeCwlcmF4LDEpLCV4bW0wCi0Jam56CUwkb2NiX2VuY19sb29w
NgotCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKLS5i
eXRlCTEwMiwxNSw1NiwyMjAsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIzMwotLmJ5dGUJMTAy
LDE1LDU2LDIyMCwyNDEKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ5Ci0JbW92dXBzCTE2KCVyMTEp
LCV4bW0xCi0Jc2hscQkkNCwlcjE0Ci0KLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjEsMjEwCi0JbW92
ZHF1CSglcmJ4KSwleG1tMTAKLQltb3ZxCSVyMTAsJXJheAotLmJ5dGUJMTAyLDY1LDE1LDU2LDIy
MSwyMTkKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjEsMjI4Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIx
LDIzNwotLmJ5dGUJMTAyLDY1LDE1LDU2LDIyMSwyNDYKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjEs
MjU1Ci0JLmJ5dGUJMHhmMywweGMzCi0KLQotCi0ucDJhbGlnbgk1Ci1fX29jYl9lbmNyeXB0NDoK
LQlweG9yCSV4bW05LCV4bW0xNQotCW1vdmRxdQkoJXJieCwlcjEyLDEpLCV4bW0xMQotCW1vdmRx
YQkleG1tMTAsJXhtbTEyCi0JbW92ZHF1CSglcmJ4LCVyMTMsMSksJXhtbTEzCi0JcHhvcgkleG1t
MTUsJXhtbTEwCi0JcHhvcgkleG1tMTAsJXhtbTExCi0JcHhvcgkleG1tMiwleG1tOAotCXB4b3IJ
JXhtbTEwLCV4bW0yCi0JcHhvcgkleG1tMTEsJXhtbTEyCi0JcHhvcgkleG1tMywleG1tOAotCXB4
b3IJJXhtbTExLCV4bW0zCi0JcHhvcgkleG1tMTIsJXhtbTEzCi0JcHhvcgkleG1tNCwleG1tOAot
CXB4b3IJJXhtbTEyLCV4bW00Ci0JcHhvcgkleG1tNSwleG1tOAotCXB4b3IJJXhtbTEzLCV4bW01
Ci0JbW92dXBzCTMyKCVyMTEpLCV4bW0wCi0KLQlweG9yCSV4bW05LCV4bW0xMAotCXB4b3IJJXht
bTksJXhtbTExCi0JcHhvcgkleG1tOSwleG1tMTIKLQlweG9yCSV4bW05LCV4bW0xMwotCi0uYnl0
ZQkxMDIsMTUsNTYsMjIwLDIwOQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTcKLS5ieXRlCTEwMiwx
NSw1NiwyMjAsMjI1Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIzMwotCW1vdnVwcwk0OCglcjExKSwl
eG1tMQotCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMTYK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjI0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIzMgotCW1vdnVw
cwk2NCglcjExKSwleG1tMAotCWptcAlMJG9jYl9lbmNfbG9vcDQKLQotLnAyYWxpZ24JNQotTCRv
Y2JfZW5jX2xvb3A0OgotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkKLS5ieXRlCTEwMiwxNSw1Niwy
MjAsMjE3Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzMK
LQltb3Z1cHMJKCVyY3gsJXJheCwxKSwleG1tMQotCWFkZHEJJDMyLCVyYXgKLQotLmJ5dGUJMTAy
LDE1LDU2LDIyMCwyMDgKLS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYs
MjIwLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMzIKLQltb3Z1cHMJLTE2KCVyY3gsJXJheCwx
KSwleG1tMAotCWpueglMJG9jYl9lbmNfbG9vcDQKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMCwyMDkK
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjE3Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIyNQotLmJ5dGUJ
MTAyLDE1LDU2LDIyMCwyMzMKLQltb3Z1cHMJMTYoJXIxMSksJXhtbTEKLQltb3ZxCSVyMTAsJXJh
eAotCi0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIxLDIxMAotLmJ5dGUJMTAyLDY1LDE1LDU2LDIyMSwy
MTkKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjEsMjI4Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIxLDIz
NwotCS5ieXRlCTB4ZjMsMHhjMwotCi0KLQotLnAyYWxpZ24JNQotX19vY2JfZW5jcnlwdDE6Ci0J
cHhvcgkleG1tMTUsJXhtbTcKLQlweG9yCSV4bW05LCV4bW03Ci0JcHhvcgkleG1tMiwleG1tOAot
CXB4b3IJJXhtbTcsJXhtbTIKLQltb3Z1cHMJMzIoJXIxMSksJXhtbTAKLQotLmJ5dGUJMTAyLDE1
LDU2LDIyMCwyMDkKLQltb3Z1cHMJNDgoJXIxMSksJXhtbTEKLQlweG9yCSV4bW05LCV4bW03Ci0K
LS5ieXRlCTEwMiwxNSw1NiwyMjAsMjA4Ci0JbW92dXBzCTY0KCVyMTEpLCV4bW0wCi0Jam1wCUwk
b2NiX2VuY19sb29wMQotCi0ucDJhbGlnbgk1Ci1MJG9jYl9lbmNfbG9vcDE6Ci0uYnl0ZQkxMDIs
MTUsNTYsMjIwLDIwOQotCW1vdnVwcwkoJXJjeCwlcmF4LDEpLCV4bW0xCi0JYWRkcQkkMzIsJXJh
eAotCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOAotCW1vdnVwcwktMTYoJXJjeCwlcmF4LDEpLCV4
bW0wCi0Jam56CUwkb2NiX2VuY19sb29wMQotCi0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQotCW1v
dnVwcwkxNiglcjExKSwleG1tMQotCW1vdnEJJXIxMCwlcmF4Ci0KLS5ieXRlCTEwMiwxNSw1Niwy
MjEsMjE1Ci0JLmJ5dGUJMHhmMywweGMzCi0KLQotLmdsb2JsCV9hZXNfaHdfb2NiX2RlY3J5cHQK
LS5wcml2YXRlX2V4dGVybiBfYWVzX2h3X29jYl9kZWNyeXB0Ci0KLS5wMmFsaWduCTUKLV9hZXNf
aHdfb2NiX2RlY3J5cHQ6Ci0KLQlsZWFxCSglcnNwKSwlcmF4Ci0JcHVzaHEJJXJieAotCi0JcHVz
aHEJJXJicAotCi0JcHVzaHEJJXIxMgotCi0JcHVzaHEJJXIxMwotCi0JcHVzaHEJJXIxNAotCi0J
bW92cQk4KCVyYXgpLCVyYngKLQltb3ZxCTgrOCglcmF4KSwlcmJwCi0KLQltb3ZsCTI0MCglcmN4
KSwlcjEwZAotCW1vdnEJJXJjeCwlcjExCi0Jc2hsbAkkNCwlcjEwZAotCW1vdnVwcwkoJXJjeCks
JXhtbTkKLQltb3Z1cHMJMTYoJXJjeCwlcjEwLDEpLCV4bW0xCi0KLQltb3ZkcXUJKCVyOSksJXht
bTE1Ci0JcHhvcgkleG1tMSwleG1tOQotCXB4b3IJJXhtbTEsJXhtbTE1Ci0KLQltb3ZsCSQxNisz
MiwlZWF4Ci0JbGVhcQkzMiglcjExLCVyMTAsMSksJXJjeAotCW1vdnVwcwkxNiglcjExKSwleG1t
MQotCXN1YnEJJXIxMCwlcmF4Ci0JbW92cQklcmF4LCVyMTAKLQotCW1vdmRxdQkoJXJieCksJXht
bTEwCi0JbW92ZHF1CSglcmJwKSwleG1tOAotCi0JdGVzdHEJJDEsJXI4Ci0Jam56CUwkb2NiX2Rl
Y19vZGQKLQotCWJzZnEJJXI4LCVyMTIKLQlhZGRxCSQxLCVyOAotCXNobHEJJDQsJXIxMgotCW1v
dmRxdQkoJXJieCwlcjEyLDEpLCV4bW03Ci0JbW92ZHF1CSglcmRpKSwleG1tMgotCWxlYXEJMTYo
JXJkaSksJXJkaQotCi0JY2FsbAlfX29jYl9kZWNyeXB0MQotCi0JbW92ZHFhCSV4bW03LCV4bW0x
NQotCW1vdnVwcwkleG1tMiwoJXJzaSkKLQl4b3JwcwkleG1tMiwleG1tOAotCWxlYXEJMTYoJXJz
aSksJXJzaQotCXN1YnEJJDEsJXJkeAotCWp6CUwkb2NiX2RlY19kb25lCi0KLUwkb2NiX2RlY19v
ZGQ6Ci0JbGVhcQkxKCVyOCksJXIxMgotCWxlYXEJMyglcjgpLCVyMTMKLQlsZWFxCTUoJXI4KSwl
cjE0Ci0JbGVhcQk2KCVyOCksJXI4Ci0JYnNmcQklcjEyLCVyMTIKLQlic2ZxCSVyMTMsJXIxMwot
CWJzZnEJJXIxNCwlcjE0Ci0Jc2hscQkkNCwlcjEyCi0Jc2hscQkkNCwlcjEzCi0Jc2hscQkkNCwl
cjE0Ci0KLQlzdWJxCSQ2LCVyZHgKLQlqYwlMJG9jYl9kZWNfc2hvcnQKLQlqbXAJTCRvY2JfZGVj
X2dyYW5kbG9vcAotCi0ucDJhbGlnbgk1Ci1MJG9jYl9kZWNfZ3JhbmRsb29wOgotCW1vdmRxdQkw
KCVyZGkpLCV4bW0yCi0JbW92ZHF1CTE2KCVyZGkpLCV4bW0zCi0JbW92ZHF1CTMyKCVyZGkpLCV4
bW00Ci0JbW92ZHF1CTQ4KCVyZGkpLCV4bW01Ci0JbW92ZHF1CTY0KCVyZGkpLCV4bW02Ci0JbW92
ZHF1CTgwKCVyZGkpLCV4bW03Ci0JbGVhcQk5NiglcmRpKSwlcmRpCi0KLQljYWxsCV9fb2NiX2Rl
Y3J5cHQ2Ci0KLQltb3Z1cHMJJXhtbTIsMCglcnNpKQotCXB4b3IJJXhtbTIsJXhtbTgKLQltb3Z1
cHMJJXhtbTMsMTYoJXJzaSkKLQlweG9yCSV4bW0zLCV4bW04Ci0JbW92dXBzCSV4bW00LDMyKCVy
c2kpCi0JcHhvcgkleG1tNCwleG1tOAotCW1vdnVwcwkleG1tNSw0OCglcnNpKQotCXB4b3IJJXht
bTUsJXhtbTgKLQltb3Z1cHMJJXhtbTYsNjQoJXJzaSkKLQlweG9yCSV4bW02LCV4bW04Ci0JbW92
dXBzCSV4bW03LDgwKCVyc2kpCi0JcHhvcgkleG1tNywleG1tOAotCWxlYXEJOTYoJXJzaSksJXJz
aQotCXN1YnEJJDYsJXJkeAotCWpuYwlMJG9jYl9kZWNfZ3JhbmRsb29wCi0KLUwkb2NiX2RlY19z
aG9ydDoKLQlhZGRxCSQ2LCVyZHgKLQlqeglMJG9jYl9kZWNfZG9uZQotCi0JbW92ZHF1CTAoJXJk
aSksJXhtbTIKLQljbXBxCSQyLCVyZHgKLQlqYglMJG9jYl9kZWNfb25lCi0JbW92ZHF1CTE2KCVy
ZGkpLCV4bW0zCi0JamUJTCRvY2JfZGVjX3R3bwotCi0JbW92ZHF1CTMyKCVyZGkpLCV4bW00Ci0J
Y21wcQkkNCwlcmR4Ci0JamIJTCRvY2JfZGVjX3RocmVlCi0JbW92ZHF1CTQ4KCVyZGkpLCV4bW01
Ci0JamUJTCRvY2JfZGVjX2ZvdXIKLQotCW1vdmRxdQk2NCglcmRpKSwleG1tNgotCXB4b3IJJXht
bTcsJXhtbTcKLQotCWNhbGwJX19vY2JfZGVjcnlwdDYKLQotCW1vdmRxYQkleG1tMTQsJXhtbTE1
Ci0JbW92dXBzCSV4bW0yLDAoJXJzaSkKLQlweG9yCSV4bW0yLCV4bW04Ci0JbW92dXBzCSV4bW0z
LDE2KCVyc2kpCi0JcHhvcgkleG1tMywleG1tOAotCW1vdnVwcwkleG1tNCwzMiglcnNpKQotCXB4
b3IJJXhtbTQsJXhtbTgKLQltb3Z1cHMJJXhtbTUsNDgoJXJzaSkKLQlweG9yCSV4bW01LCV4bW04
Ci0JbW92dXBzCSV4bW02LDY0KCVyc2kpCi0JcHhvcgkleG1tNiwleG1tOAotCi0Jam1wCUwkb2Ni
X2RlY19kb25lCi0KLS5wMmFsaWduCTQKLUwkb2NiX2RlY19vbmU6Ci0JbW92ZHFhCSV4bW0xMCwl
eG1tNwotCi0JY2FsbAlfX29jYl9kZWNyeXB0MQotCi0JbW92ZHFhCSV4bW03LCV4bW0xNQotCW1v
dnVwcwkleG1tMiwwKCVyc2kpCi0JeG9ycHMJJXhtbTIsJXhtbTgKLQlqbXAJTCRvY2JfZGVjX2Rv
bmUKLQotLnAyYWxpZ24JNAotTCRvY2JfZGVjX3R3bzoKLQlweG9yCSV4bW00LCV4bW00Ci0JcHhv
cgkleG1tNSwleG1tNQotCi0JY2FsbAlfX29jYl9kZWNyeXB0NAotCi0JbW92ZHFhCSV4bW0xMSwl
eG1tMTUKLQltb3Z1cHMJJXhtbTIsMCglcnNpKQotCXhvcnBzCSV4bW0yLCV4bW04Ci0JbW92dXBz
CSV4bW0zLDE2KCVyc2kpCi0JeG9ycHMJJXhtbTMsJXhtbTgKLQotCWptcAlMJG9jYl9kZWNfZG9u
ZQotCi0ucDJhbGlnbgk0Ci1MJG9jYl9kZWNfdGhyZWU6Ci0JcHhvcgkleG1tNSwleG1tNQotCi0J
Y2FsbAlfX29jYl9kZWNyeXB0NAotCi0JbW92ZHFhCSV4bW0xMiwleG1tMTUKLQltb3Z1cHMJJXht
bTIsMCglcnNpKQotCXhvcnBzCSV4bW0yLCV4bW04Ci0JbW92dXBzCSV4bW0zLDE2KCVyc2kpCi0J
eG9ycHMJJXhtbTMsJXhtbTgKLQltb3Z1cHMJJXhtbTQsMzIoJXJzaSkKLQl4b3JwcwkleG1tNCwl
eG1tOAotCi0Jam1wCUwkb2NiX2RlY19kb25lCi0KLS5wMmFsaWduCTQKLUwkb2NiX2RlY19mb3Vy
OgotCWNhbGwJX19vY2JfZGVjcnlwdDQKLQotCW1vdmRxYQkleG1tMTMsJXhtbTE1Ci0JbW92dXBz
CSV4bW0yLDAoJXJzaSkKLQlweG9yCSV4bW0yLCV4bW04Ci0JbW92dXBzCSV4bW0zLDE2KCVyc2kp
Ci0JcHhvcgkleG1tMywleG1tOAotCW1vdnVwcwkleG1tNCwzMiglcnNpKQotCXB4b3IJJXhtbTQs
JXhtbTgKLQltb3Z1cHMJJXhtbTUsNDgoJXJzaSkKLQlweG9yCSV4bW01LCV4bW04Ci0KLUwkb2Ni
X2RlY19kb25lOgotCXB4b3IJJXhtbTAsJXhtbTE1Ci0JbW92ZHF1CSV4bW04LCglcmJwKQotCW1v
dmRxdQkleG1tMTUsKCVyOSkKLQotCXhvcnBzCSV4bW0wLCV4bW0wCi0JcHhvcgkleG1tMSwleG1t
MQotCXB4b3IJJXhtbTIsJXhtbTIKLQlweG9yCSV4bW0zLCV4bW0zCi0JcHhvcgkleG1tNCwleG1t
NAotCXB4b3IJJXhtbTUsJXhtbTUKLQlweG9yCSV4bW02LCV4bW02Ci0JcHhvcgkleG1tNywleG1t
NwotCXB4b3IJJXhtbTgsJXhtbTgKLQlweG9yCSV4bW05LCV4bW05Ci0JcHhvcgkleG1tMTAsJXht
bTEwCi0JcHhvcgkleG1tMTEsJXhtbTExCi0JcHhvcgkleG1tMTIsJXhtbTEyCi0JcHhvcgkleG1t
MTMsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JcHhvcgkleG1tMTUsJXhtbTE1Ci0JbGVh
cQk0MCglcnNwKSwlcmF4Ci0KLQltb3ZxCS00MCglcmF4KSwlcjE0Ci0KLQltb3ZxCS0zMiglcmF4
KSwlcjEzCi0KLQltb3ZxCS0yNCglcmF4KSwlcjEyCi0KLQltb3ZxCS0xNiglcmF4KSwlcmJwCi0K
LQltb3ZxCS04KCVyYXgpLCVyYngKLQotCWxlYXEJKCVyYXgpLCVyc3AKLQotTCRvY2JfZGVjX2Vw
aWxvZ3VlOgotCS5ieXRlCTB4ZjMsMHhjMwotCi0KLQotCi0ucDJhbGlnbgk1Ci1fX29jYl9kZWNy
eXB0NjoKLQlweG9yCSV4bW05LCV4bW0xNQotCW1vdmRxdQkoJXJieCwlcjEyLDEpLCV4bW0xMQot
CW1vdmRxYQkleG1tMTAsJXhtbTEyCi0JbW92ZHF1CSglcmJ4LCVyMTMsMSksJXhtbTEzCi0JbW92
ZHFhCSV4bW0xMCwleG1tMTQKLQlweG9yCSV4bW0xNSwleG1tMTAKLQltb3ZkcXUJKCVyYngsJXIx
NCwxKSwleG1tMTUKLQlweG9yCSV4bW0xMCwleG1tMTEKLQlweG9yCSV4bW0xMCwleG1tMgotCXB4
b3IJJXhtbTExLCV4bW0xMgotCXB4b3IJJXhtbTExLCV4bW0zCi0JcHhvcgkleG1tMTIsJXhtbTEz
Ci0JcHhvcgkleG1tMTIsJXhtbTQKLQlweG9yCSV4bW0xMywleG1tMTQKLQlweG9yCSV4bW0xMywl
eG1tNQotCXB4b3IJJXhtbTE0LCV4bW0xNQotCXB4b3IJJXhtbTE0LCV4bW02Ci0JcHhvcgkleG1t
MTUsJXhtbTcKLQltb3Z1cHMJMzIoJXIxMSksJXhtbTAKLQotCWxlYXEJMSglcjgpLCVyMTIKLQls
ZWFxCTMoJXI4KSwlcjEzCi0JbGVhcQk1KCVyOCksJXIxNAotCWFkZHEJJDYsJXI4Ci0JcHhvcgkl
eG1tOSwleG1tMTAKLQlic2ZxCSVyMTIsJXIxMgotCWJzZnEJJXIxMywlcjEzCi0JYnNmcQklcjE0
LCVyMTQKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjE3
Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMzMKLQlweG9y
CSV4bW05LCV4bW0xMQotCXB4b3IJJXhtbTksJXhtbTEyCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0
MQotCXB4b3IJJXhtbTksJXhtbTEzCi0JcHhvcgkleG1tOSwleG1tMTQKLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjQ5Ci0JbW92dXBzCTQ4KCVyMTEpLCV4bW0xCi0JcHhvcgkleG1tOSwleG1tMTUKLQot
LmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDgKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjE2Ci0uYnl0ZQkx
MDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMzIKLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjQwCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OAotCW1vdnVwcwk2NCglcjExKSwleG1t
MAotCXNobHEJJDQsJXIxMgotCXNobHEJJDQsJXIxMwotCWptcAlMJG9jYl9kZWNfbG9vcDYKLQot
LnAyYWxpZ24JNQotTCRvY2JfZGVjX2xvb3A2OgotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLS5i
eXRlCTEwMiwxNSw1NiwyMjIsMjE3Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNQotLmJ5dGUJMTAy
LDE1LDU2LDIyMiwyMzMKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQxCi0uYnl0ZQkxMDIsMTUsNTYs
MjIyLDI0OQotCW1vdnVwcwkoJXJjeCwlcmF4LDEpLCV4bW0xCi0JYWRkcQkkMzIsJXJheAotCi0u
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIwOAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMTYKLS5ieXRlCTEw
MiwxNSw1NiwyMjIsMjI0Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIzMgotLmJ5dGUJMTAyLDE1LDU2
LDIyMiwyNDAKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4Ci0JbW92dXBzCS0xNiglcmN4LCVyYXgs
MSksJXhtbTAKLQlqbnoJTCRvY2JfZGVjX2xvb3A2Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5
Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjUKLS5ieXRl
CTEwMiwxNSw1NiwyMjIsMjMzCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDI0MQotLmJ5dGUJMTAyLDE1
LDU2LDIyMiwyNDkKLQltb3Z1cHMJMTYoJXIxMSksJXhtbTEKLQlzaGxxCSQ0LCVyMTQKLQotLmJ5
dGUJMTAyLDY1LDE1LDU2LDIyMywyMTAKLQltb3ZkcXUJKCVyYngpLCV4bW0xMAotCW1vdnEJJXIx
MCwlcmF4Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIzLDIxOQotLmJ5dGUJMTAyLDY1LDE1LDU2LDIy
MywyMjgKLS5ieXRlCTEwMiw2NSwxNSw1NiwyMjMsMjM3Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIz
LDI0NgotLmJ5dGUJMTAyLDY1LDE1LDU2LDIyMywyNTUKLQkuYnl0ZQkweGYzLDB4YzMKLQotCi0K
LS5wMmFsaWduCTUKLV9fb2NiX2RlY3J5cHQ0OgotCXB4b3IJJXhtbTksJXhtbTE1Ci0JbW92ZHF1
CSglcmJ4LCVyMTIsMSksJXhtbTExCi0JbW92ZHFhCSV4bW0xMCwleG1tMTIKLQltb3ZkcXUJKCVy
YngsJXIxMywxKSwleG1tMTMKLQlweG9yCSV4bW0xNSwleG1tMTAKLQlweG9yCSV4bW0xMCwleG1t
MTEKLQlweG9yCSV4bW0xMCwleG1tMgotCXB4b3IJJXhtbTExLCV4bW0xMgotCXB4b3IJJXhtbTEx
LCV4bW0zCi0JcHhvcgkleG1tMTIsJXhtbTEzCi0JcHhvcgkleG1tMTIsJXhtbTQKLQlweG9yCSV4
bW0xMywleG1tNQotCW1vdnVwcwkzMiglcjExKSwleG1tMAotCi0JcHhvcgkleG1tOSwleG1tMTAK
LQlweG9yCSV4bW05LCV4bW0xMQotCXB4b3IJJXhtbTksJXhtbTEyCi0JcHhvcgkleG1tOSwleG1t
MTMKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDkKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjE3Ci0u
Ynl0ZQkxMDIsMTUsNTYsMjIyLDIyNQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMzMKLQltb3Z1cHMJ
NDgoJXIxMSksJXhtbTEKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMDgKLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjE2Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIyNAotLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MzIKLQltb3Z1cHMJNjQoJXIxMSksJXhtbTAKLQlqbXAJTCRvY2JfZGVjX2xvb3A0Ci0KLS5wMmFs
aWduCTUKLUwkb2NiX2RlY19sb29wNDoKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0uYnl0ZQkx
MDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMiwyMjUKLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjMzCi0JbW92dXBzCSglcmN4LCVyYXgsMSksJXhtbTEKLQlhZGRxCSQzMiwlcmF4Ci0K
LS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA4Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNgotLmJ5dGUJ
MTAyLDE1LDU2LDIyMiwyMjQKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMyCi0JbW92dXBzCS0xNigl
cmN4LCVyYXgsMSksJXhtbTAKLQlqbnoJTCRvY2JfZGVjX2xvb3A0Ci0KLS5ieXRlCTEwMiwxNSw1
NiwyMjIsMjA5Ci0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIxNwotLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MjUKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjMzCi0JbW92dXBzCTE2KCVyMTEpLCV4bW0xCi0JbW92
cQklcjEwLCVyYXgKLQotLmJ5dGUJMTAyLDY1LDE1LDU2LDIyMywyMTAKLS5ieXRlCTEwMiw2NSwx
NSw1NiwyMjMsMjE5Ci0uYnl0ZQkxMDIsNjUsMTUsNTYsMjIzLDIyOAotLmJ5dGUJMTAyLDY1LDE1
LDU2LDIyMywyMzcKLQkuYnl0ZQkweGYzLDB4YzMKLQotCi0KLS5wMmFsaWduCTUKLV9fb2NiX2Rl
Y3J5cHQxOgotCXB4b3IJJXhtbTE1LCV4bW03Ci0JcHhvcgkleG1tOSwleG1tNwotCXB4b3IJJXht
bTcsJXhtbTIKLQltb3Z1cHMJMzIoJXIxMSksJXhtbTAKLQotLmJ5dGUJMTAyLDE1LDU2LDIyMiwy
MDkKLQltb3Z1cHMJNDgoJXIxMSksJXhtbTEKLQlweG9yCSV4bW05LCV4bW03Ci0KLS5ieXRlCTEw
MiwxNSw1NiwyMjIsMjA4Ci0JbW92dXBzCTY0KCVyMTEpLCV4bW0wCi0Jam1wCUwkb2NiX2RlY19s
b29wMQotCi0ucDJhbGlnbgk1Ci1MJG9jYl9kZWNfbG9vcDE6Ci0uYnl0ZQkxMDIsMTUsNTYsMjIy
LDIwOQotCW1vdnVwcwkoJXJjeCwlcmF4LDEpLCV4bW0xCi0JYWRkcQkkMzIsJXJheAotCi0uYnl0
ZQkxMDIsMTUsNTYsMjIyLDIwOAotCW1vdnVwcwktMTYoJXJjeCwlcmF4LDEpLCV4bW0wCi0Jam56
CUwkb2NiX2RlY19sb29wMQotCi0uYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQotCW1vdnVwcwkxNigl
cjExKSwleG1tMQotCW1vdnEJJXIxMCwlcmF4Ci0KLS5ieXRlCTEwMiwxNSw1NiwyMjMsMjE1Ci0J
LmJ5dGUJMHhmMywweGMzCi0KLS5nbG9ibAlfYWVzX2h3X2NiY19lbmNyeXB0Ci0ucHJpdmF0ZV9l
eHRlcm4gX2Flc19od19jYmNfZW5jcnlwdAotCi0ucDJhbGlnbgk0Ci1fYWVzX2h3X2NiY19lbmNy
eXB0OgotCi0JdGVzdHEJJXJkeCwlcmR4Ci0JanoJTCRjYmNfcmV0Ci0KLQltb3ZsCTI0MCglcmN4
KSwlcjEwZAotCW1vdnEJJXJjeCwlcjExCi0JdGVzdGwJJXI5ZCwlcjlkCi0JanoJTCRjYmNfZGVj
cnlwdAotCi0JbW92dXBzCSglcjgpLCV4bW0yCi0JbW92bAklcjEwZCwlZWF4Ci0JY21wcQkkMTYs
JXJkeAotCWpiCUwkY2JjX2VuY190YWlsCi0Jc3VicQkkMTYsJXJkeAotCWptcAlMJGNiY19lbmNf
bG9vcAotLnAyYWxpZ24JNAotTCRjYmNfZW5jX2xvb3A6Ci0JbW92dXBzCSglcmRpKSwleG1tMwot
CWxlYXEJMTYoJXJkaSksJXJkaQotCi0JbW92dXBzCSglcmN4KSwleG1tMAotCW1vdnVwcwkxNigl
cmN4KSwleG1tMQotCXhvcnBzCSV4bW0wLCV4bW0zCi0JbGVhcQkzMiglcmN4KSwlcmN4Ci0JeG9y
cHMJJXhtbTMsJXhtbTIKLUwkb29wX2VuYzFfMTU6Ci0uYnl0ZQkxMDIsMTUsNTYsMjIwLDIwOQot
CWRlY2wJJWVheAotCW1vdnVwcwkoJXJjeCksJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQlq
bnoJTCRvb3BfZW5jMV8xNQotLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMDkKLQltb3ZsCSVyMTBkLCVl
YXgKLQltb3ZxCSVyMTEsJXJjeAotCW1vdnVwcwkleG1tMiwwKCVyc2kpCi0JbGVhcQkxNiglcnNp
KSwlcnNpCi0Jc3VicQkkMTYsJXJkeAotCWpuYwlMJGNiY19lbmNfbG9vcAotCWFkZHEJJDE2LCVy
ZHgKLQlqbnoJTCRjYmNfZW5jX3RhaWwKLQlweG9yCSV4bW0wLCV4bW0wCi0JcHhvcgkleG1tMSwl
eG1tMQotCW1vdnVwcwkleG1tMiwoJXI4KQotCXB4b3IJJXhtbTIsJXhtbTIKLQlweG9yCSV4bW0z
LCV4bW0zCi0Jam1wCUwkY2JjX3JldAotCi1MJGNiY19lbmNfdGFpbDoKLQltb3ZxCSVyZHgsJXJj
eAotCXhjaGdxCSVyZGksJXJzaQotLmxvbmcJMHg5MDY2QTRGMwotCW1vdmwJJDE2LCVlY3gKLQlz
dWJxCSVyZHgsJXJjeAotCXhvcmwJJWVheCwlZWF4Ci0ubG9uZwkweDkwNjZBQUYzCi0JbGVhcQkt
MTYoJXJkaSksJXJkaQotCW1vdmwJJXIxMGQsJWVheAotCW1vdnEJJXJkaSwlcnNpCi0JbW92cQkl
cjExLCVyY3gKLQl4b3JxCSVyZHgsJXJkeAotCWptcAlMJGNiY19lbmNfbG9vcAotCi0ucDJhbGln
bgk0Ci1MJGNiY19kZWNyeXB0OgotCWNtcHEJJDE2LCVyZHgKLQlqbmUJTCRjYmNfZGVjcnlwdF9i
dWxrCi0KLQotCi0JbW92ZHF1CSglcmRpKSwleG1tMgotCW1vdmRxdQkoJXI4KSwleG1tMwotCW1v
dmRxYQkleG1tMiwleG1tNAotCW1vdnVwcwkoJXJjeCksJXhtbTAKLQltb3Z1cHMJMTYoJXJjeCks
JXhtbTEKLQlsZWFxCTMyKCVyY3gpLCVyY3gKLQl4b3JwcwkleG1tMCwleG1tMgotTCRvb3BfZGVj
MV8xNjoKLS5ieXRlCTEwMiwxNSw1NiwyMjIsMjA5Ci0JZGVjbAklcjEwZAotCW1vdnVwcwkoJXJj
eCksJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQlqbnoJTCRvb3BfZGVjMV8xNgotLmJ5dGUJ
MTAyLDE1LDU2LDIyMywyMDkKLQlweG9yCSV4bW0wLCV4bW0wCi0JcHhvcgkleG1tMSwleG1tMQot
CW1vdmRxdQkleG1tNCwoJXI4KQotCXhvcnBzCSV4bW0zLCV4bW0yCi0JcHhvcgkleG1tMywleG1t
MwotCW1vdnVwcwkleG1tMiwoJXJzaSkKLQlweG9yCSV4bW0yLCV4bW0yCi0Jam1wCUwkY2JjX3Jl
dAotLnAyYWxpZ24JNAotTCRjYmNfZGVjcnlwdF9idWxrOgotCWxlYXEJKCVyc3ApLCVyMTEKLQot
CXB1c2hxCSVyYnAKLQotCXN1YnEJJDE2LCVyc3AKLQlhbmRxCSQtMTYsJXJzcAotCW1vdnEJJXJj
eCwlcmJwCi0JbW92dXBzCSglcjgpLCV4bW0xMAotCW1vdmwJJXIxMGQsJWVheAotCWNtcHEJJDB4
NTAsJXJkeAotCWpiZQlMJGNiY19kZWNfdGFpbAotCi0JbW92dXBzCSglcmN4KSwleG1tMAotCW1v
dmRxdQkwKCVyZGkpLCV4bW0yCi0JbW92ZHF1CTE2KCVyZGkpLCV4bW0zCi0JbW92ZHFhCSV4bW0y
LCV4bW0xMQotCW1vdmRxdQkzMiglcmRpKSwleG1tNAotCW1vdmRxYQkleG1tMywleG1tMTIKLQlt
b3ZkcXUJNDgoJXJkaSksJXhtbTUKLQltb3ZkcWEJJXhtbTQsJXhtbTEzCi0JbW92ZHF1CTY0KCVy
ZGkpLCV4bW02Ci0JbW92ZHFhCSV4bW01LCV4bW0xNAotCW1vdmRxdQk4MCglcmRpKSwleG1tNwot
CW1vdmRxYQkleG1tNiwleG1tMTUKLQlsZWFxCV9PUEVOU1NMX2lhMzJjYXBfUCglcmlwKSwlcjkK
LQltb3ZsCTQoJXI5KSwlcjlkCi0JY21wcQkkMHg3MCwlcmR4Ci0JamJlCUwkY2JjX2RlY19zaXhf
b3Jfc2V2ZW4KKwltb3ZkcWEJJXhtbTYsJXhtbTE1CisJbGVhcQlfT1BFTlNTTF9pYTMyY2FwX1Ao
JXJpcCksJXI5CisJbW92bAk0KCVyOSksJXI5ZAorCWNtcHEJJDB4NzAsJXJkeAorCWpiZQlMJGNi
Y19kZWNfc2l4X29yX3NldmVuCiAKIAlhbmRsCSQ3MTMwMzE2OCwlcjlkCiAJc3VicQkkMHg1MCwl
cmR4CkBAIC0zOTExLDEyICsxOTYzLDEyIEBAIEwkY2JjX2RlY19vbmU6CiAJbW92dXBzCTE2KCVy
Y3gpLCV4bW0xCiAJbGVhcQkzMiglcmN4KSwlcmN4CiAJeG9ycHMJJXhtbTAsJXhtbTIKLUwkb29w
X2RlYzFfMTc6CitMJG9vcF9kZWMxXzg6CiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDIwOQogCWRlY2wJ
JWVheAogCW1vdnVwcwkoJXJjeCksJXhtbTEKIAlsZWFxCTE2KCVyY3gpLCVyY3gKLQlqbnoJTCRv
b3BfZGVjMV8xNworCWpueglMJG9vcF9kZWMxXzgKIC5ieXRlCTEwMiwxNSw1NiwyMjMsMjA5CiAJ
eG9ycHMJJXhtbTEwLCV4bW0yCiAJbW92YXBzCSV4bW0xMSwleG1tMTAKQEAgLTQwNTcsNiArMjEw
OSwxMSBAQCBMJFNFSF9lbmRfc2V0X2RlY3J5cHRfa2V5OgogX2Flc19od19zZXRfZW5jcnlwdF9r
ZXk6CiBfX2Flc25pX3NldF9lbmNyeXB0X2tleToKIAorI2lmbmRlZiBOREVCVUcKKyNpZm5kZWYg
Qk9SSU5HU1NMX0ZJUFMKKwltb3ZiCSQxLF9CT1JJTkdTU0xfZnVuY3Rpb25faGl0KzMoJXJpcCkK
KyNlbmRpZgorI2VuZGlmCiAuYnl0ZQkweDQ4LDB4ODMsMHhFQywweDA4CiAKIAltb3ZxCSQtMSwl
cmF4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2JzYWVzLXg4Nl82
NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9ic2Flcy14ODZfNjQuUwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA2NjhjYTJlYjA5YzNmODg3MTQwY2Q2ZTlhYzg5YmFh
NzNmMjcwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9t
YWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2JzYWVzLXg4Nl82NC5TCisrKyAvZGV2L251bGwK
QEAgLTEsMjU4MyArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBhIHNpbWls
YXJseS1uYW1lZCBQZXJsIHNjcmlwdCBpbiB0aGUgQm9yaW5nU1NMCi0jIHNvdXJjZSB0cmVlLiBE
byBub3QgZWRpdCBieSBoYW5kLgotCi0jaWYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQotI2lmIF9f
aGFzX2ZlYXR1cmUobWVtb3J5X3Nhbml0aXplcikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00p
Ci0jZGVmaW5lIE9QRU5TU0xfTk9fQVNNCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChf
X3g4Nl82NF9fKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKLSNpZiBkZWZpbmVkKEJPUklO
R1NTTF9QUkVGSVgpCi0jaW5jbHVkZSA8Ym9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX2FzbS5oPgot
I2VuZGlmCi0udGV4dAkKLQotCi0KLQotCi0ucDJhbGlnbgk2Ci1fYnNhZXNfZW5jcnlwdDg6Ci0J
bGVhcQlMJEJTMCglcmlwKSwlcjExCi0KLQltb3ZkcWEJKCVyYXgpLCV4bW04Ci0JbGVhcQkxNigl
cmF4KSwlcmF4Ci0JbW92ZHFhCTgwKCVyMTEpLCV4bW03Ci0JcHhvcgkleG1tOCwleG1tMTUKLQlw
eG9yCSV4bW04LCV4bW0wCi0JcHhvcgkleG1tOCwleG1tMQotCXB4b3IJJXhtbTgsJXhtbTIKLS5i
eXRlCTEwMiw2OCwxNSw1NiwwLDI1NQotLmJ5dGUJMTAyLDE1LDU2LDAsMTk5Ci0JcHhvcgkleG1t
OCwleG1tMwotCXB4b3IJJXhtbTgsJXhtbTQKLS5ieXRlCTEwMiwxNSw1NiwwLDIwNwotLmJ5dGUJ
MTAyLDE1LDU2LDAsMjE1Ci0JcHhvcgkleG1tOCwleG1tNQotCXB4b3IJJXhtbTgsJXhtbTYKLS5i
eXRlCTEwMiwxNSw1NiwwLDIyMwotLmJ5dGUJMTAyLDE1LDU2LDAsMjMxCi0uYnl0ZQkxMDIsMTUs
NTYsMCwyMzkKLS5ieXRlCTEwMiwxNSw1NiwwLDI0NwotX2JzYWVzX2VuY3J5cHQ4X2JpdHNsaWNl
OgotCW1vdmRxYQkwKCVyMTEpLCV4bW03Ci0JbW92ZHFhCTE2KCVyMTEpLCV4bW04Ci0JbW92ZHFh
CSV4bW01LCV4bW05Ci0JcHNybHEJJDEsJXhtbTUKLQltb3ZkcWEJJXhtbTMsJXhtbTEwCi0JcHNy
bHEJJDEsJXhtbTMKLQlweG9yCSV4bW02LCV4bW01Ci0JcHhvcgkleG1tNCwleG1tMwotCXBhbmQJ
JXhtbTcsJXhtbTUKLQlwYW5kCSV4bW03LCV4bW0zCi0JcHhvcgkleG1tNSwleG1tNgotCXBzbGxx
CSQxLCV4bW01Ci0JcHhvcgkleG1tMywleG1tNAotCXBzbGxxCSQxLCV4bW0zCi0JcHhvcgkleG1t
OSwleG1tNQotCXB4b3IJJXhtbTEwLCV4bW0zCi0JbW92ZHFhCSV4bW0xLCV4bW05Ci0JcHNybHEJ
JDEsJXhtbTEKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBzcmxxCSQxLCV4bW0xNQotCXB4b3IJ
JXhtbTIsJXhtbTEKLQlweG9yCSV4bW0wLCV4bW0xNQotCXBhbmQJJXhtbTcsJXhtbTEKLQlwYW5k
CSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTEsJXhtbTIKLQlwc2xscQkkMSwleG1tMQotCXB4b3IJ
JXhtbTE1LCV4bW0wCi0JcHNsbHEJJDEsJXhtbTE1Ci0JcHhvcgkleG1tOSwleG1tMQotCXB4b3IJ
JXhtbTEwLCV4bW0xNQotCW1vdmRxYQkzMiglcjExKSwleG1tNwotCW1vdmRxYQkleG1tNCwleG1t
OQotCXBzcmxxCSQyLCV4bW00Ci0JbW92ZHFhCSV4bW0zLCV4bW0xMAotCXBzcmxxCSQyLCV4bW0z
Ci0JcHhvcgkleG1tNiwleG1tNAotCXB4b3IJJXhtbTUsJXhtbTMKLQlwYW5kCSV4bW04LCV4bW00
Ci0JcGFuZAkleG1tOCwleG1tMwotCXB4b3IJJXhtbTQsJXhtbTYKLQlwc2xscQkkMiwleG1tNAot
CXB4b3IJJXhtbTMsJXhtbTUKLQlwc2xscQkkMiwleG1tMwotCXB4b3IJJXhtbTksJXhtbTQKLQlw
eG9yCSV4bW0xMCwleG1tMwotCW1vdmRxYQkleG1tMCwleG1tOQotCXBzcmxxCSQyLCV4bW0wCi0J
bW92ZHFhCSV4bW0xNSwleG1tMTAKLQlwc3JscQkkMiwleG1tMTUKLQlweG9yCSV4bW0yLCV4bW0w
Ci0JcHhvcgkleG1tMSwleG1tMTUKLQlwYW5kCSV4bW04LCV4bW0wCi0JcGFuZAkleG1tOCwleG1t
MTUKLQlweG9yCSV4bW0wLCV4bW0yCi0JcHNsbHEJJDIsJXhtbTAKLQlweG9yCSV4bW0xNSwleG1t
MQotCXBzbGxxCSQyLCV4bW0xNQotCXB4b3IJJXhtbTksJXhtbTAKLQlweG9yCSV4bW0xMCwleG1t
MTUKLQltb3ZkcWEJJXhtbTIsJXhtbTkKLQlwc3JscQkkNCwleG1tMgotCW1vdmRxYQkleG1tMSwl
eG1tMTAKLQlwc3JscQkkNCwleG1tMQotCXB4b3IJJXhtbTYsJXhtbTIKLQlweG9yCSV4bW01LCV4
bW0xCi0JcGFuZAkleG1tNywleG1tMgotCXBhbmQJJXhtbTcsJXhtbTEKLQlweG9yCSV4bW0yLCV4
bW02Ci0JcHNsbHEJJDQsJXhtbTIKLQlweG9yCSV4bW0xLCV4bW01Ci0JcHNsbHEJJDQsJXhtbTEK
LQlweG9yCSV4bW05LCV4bW0yCi0JcHhvcgkleG1tMTAsJXhtbTEKLQltb3ZkcWEJJXhtbTAsJXht
bTkKLQlwc3JscQkkNCwleG1tMAotCW1vdmRxYQkleG1tMTUsJXhtbTEwCi0JcHNybHEJJDQsJXht
bTE1Ci0JcHhvcgkleG1tNCwleG1tMAotCXB4b3IJJXhtbTMsJXhtbTE1Ci0JcGFuZAkleG1tNywl
eG1tMAotCXBhbmQJJXhtbTcsJXhtbTE1Ci0JcHhvcgkleG1tMCwleG1tNAotCXBzbGxxCSQ0LCV4
bW0wCi0JcHhvcgkleG1tMTUsJXhtbTMKLQlwc2xscQkkNCwleG1tMTUKLQlweG9yCSV4bW05LCV4
bW0wCi0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JZGVjbAklcjEwZAotCWptcAlMJGVuY19zYm94Ci0u
cDJhbGlnbgk0Ci1MJGVuY19sb29wOgotCXB4b3IJMCglcmF4KSwleG1tMTUKLQlweG9yCTE2KCVy
YXgpLCV4bW0wCi0JcHhvcgkzMiglcmF4KSwleG1tMQotCXB4b3IJNDgoJXJheCksJXhtbTIKLS5i
eXRlCTEwMiw2OCwxNSw1NiwwLDI1NQotLmJ5dGUJMTAyLDE1LDU2LDAsMTk5Ci0JcHhvcgk2NCgl
cmF4KSwleG1tMwotCXB4b3IJODAoJXJheCksJXhtbTQKLS5ieXRlCTEwMiwxNSw1NiwwLDIwNwot
LmJ5dGUJMTAyLDE1LDU2LDAsMjE1Ci0JcHhvcgk5NiglcmF4KSwleG1tNQotCXB4b3IJMTEyKCVy
YXgpLCV4bW02Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMjMKLS5ieXRlCTEwMiwxNSw1NiwwLDIzMQot
LmJ5dGUJMTAyLDE1LDU2LDAsMjM5Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyNDcKLQlsZWFxCTEyOCgl
cmF4KSwlcmF4Ci1MJGVuY19zYm94OgotCXB4b3IJJXhtbTUsJXhtbTQKLQlweG9yCSV4bW0wLCV4
bW0xCi0JcHhvcgkleG1tMTUsJXhtbTIKLQlweG9yCSV4bW0xLCV4bW01Ci0JcHhvcgkleG1tMTUs
JXhtbTQKLQotCXB4b3IJJXhtbTIsJXhtbTUKLQlweG9yCSV4bW02LCV4bW0yCi0JcHhvcgkleG1t
NCwleG1tNgotCXB4b3IJJXhtbTMsJXhtbTIKLQlweG9yCSV4bW00LCV4bW0zCi0JcHhvcgkleG1t
MCwleG1tMgotCi0JcHhvcgkleG1tNiwleG1tMQotCXB4b3IJJXhtbTQsJXhtbTAKLQltb3ZkcWEJ
JXhtbTYsJXhtbTEwCi0JbW92ZHFhCSV4bW0wLCV4bW05Ci0JbW92ZHFhCSV4bW00LCV4bW04Ci0J
bW92ZHFhCSV4bW0xLCV4bW0xMgotCW1vdmRxYQkleG1tNSwleG1tMTEKLQotCXB4b3IJJXhtbTMs
JXhtbTEwCi0JcHhvcgkleG1tMSwleG1tOQotCXB4b3IJJXhtbTIsJXhtbTgKLQltb3ZkcWEJJXht
bTEwLCV4bW0xMwotCXB4b3IJJXhtbTMsJXhtbTEyCi0JbW92ZHFhCSV4bW05LCV4bW03Ci0JcHhv
cgkleG1tMTUsJXhtbTExCi0JbW92ZHFhCSV4bW0xMCwleG1tMTQKLQotCXBvcgkleG1tOCwleG1t
OQotCXBvcgkleG1tMTEsJXhtbTEwCi0JcHhvcgkleG1tNywleG1tMTQKLQlwYW5kCSV4bW0xMSwl
eG1tMTMKLQlweG9yCSV4bW04LCV4bW0xMQotCXBhbmQJJXhtbTgsJXhtbTcKLQlwYW5kCSV4bW0x
MSwleG1tMTQKLQltb3ZkcWEJJXhtbTIsJXhtbTExCi0JcHhvcgkleG1tMTUsJXhtbTExCi0JcGFu
ZAkleG1tMTEsJXhtbTEyCi0JcHhvcgkleG1tMTIsJXhtbTEwCi0JcHhvcgkleG1tMTIsJXhtbTkK
LQltb3ZkcWEJJXhtbTYsJXhtbTEyCi0JbW92ZHFhCSV4bW00LCV4bW0xMQotCXB4b3IJJXhtbTAs
JXhtbTEyCi0JcHhvcgkleG1tNSwleG1tMTEKLQltb3ZkcWEJJXhtbTEyLCV4bW04Ci0JcGFuZAkl
eG1tMTEsJXhtbTEyCi0JcG9yCSV4bW0xMSwleG1tOAotCXB4b3IJJXhtbTEyLCV4bW03Ci0JcHhv
cgkleG1tMTQsJXhtbTEwCi0JcHhvcgkleG1tMTMsJXhtbTkKLQlweG9yCSV4bW0xNCwleG1tOAot
CW1vdmRxYQkleG1tMSwleG1tMTEKLQlweG9yCSV4bW0xMywleG1tNwotCW1vdmRxYQkleG1tMywl
eG1tMTIKLQlweG9yCSV4bW0xMywleG1tOAotCW1vdmRxYQkleG1tMCwleG1tMTMKLQlwYW5kCSV4
bW0yLCV4bW0xMQotCW1vdmRxYQkleG1tNiwleG1tMTQKLQlwYW5kCSV4bW0xNSwleG1tMTIKLQlw
YW5kCSV4bW00LCV4bW0xMwotCXBvcgkleG1tNSwleG1tMTQKLQlweG9yCSV4bW0xMSwleG1tMTAK
LQlweG9yCSV4bW0xMiwleG1tOQotCXB4b3IJJXhtbTEzLCV4bW04Ci0JcHhvcgkleG1tMTQsJXht
bTcKLQotCi0KLQotCi0JbW92ZHFhCSV4bW0xMCwleG1tMTEKLQlwYW5kCSV4bW04LCV4bW0xMAot
CXB4b3IJJXhtbTksJXhtbTExCi0KLQltb3ZkcWEJJXhtbTcsJXhtbTEzCi0JbW92ZHFhCSV4bW0x
MSwleG1tMTQKLQlweG9yCSV4bW0xMCwleG1tMTMKLQlwYW5kCSV4bW0xMywleG1tMTQKLQotCW1v
dmRxYQkleG1tOCwleG1tMTIKLQlweG9yCSV4bW05LCV4bW0xNAotCXB4b3IJJXhtbTcsJXhtbTEy
Ci0KLQlweG9yCSV4bW05LCV4bW0xMAotCi0JcGFuZAkleG1tMTAsJXhtbTEyCi0KLQltb3ZkcWEJ
JXhtbTEzLCV4bW05Ci0JcHhvcgkleG1tNywleG1tMTIKLQotCXB4b3IJJXhtbTEyLCV4bW05Ci0J
cHhvcgkleG1tMTIsJXhtbTgKLQotCXBhbmQJJXhtbTcsJXhtbTkKLQotCXB4b3IJJXhtbTksJXht
bTEzCi0JcHhvcgkleG1tOSwleG1tOAotCi0JcGFuZAkleG1tMTQsJXhtbTEzCi0KLQlweG9yCSV4
bW0xMSwleG1tMTMKLQltb3ZkcWEJJXhtbTUsJXhtbTExCi0JbW92ZHFhCSV4bW00LCV4bW03Ci0J
bW92ZHFhCSV4bW0xNCwleG1tOQotCXB4b3IJJXhtbTEzLCV4bW05Ci0JcGFuZAkleG1tNSwleG1t
OQotCXB4b3IJJXhtbTQsJXhtbTUKLQlwYW5kCSV4bW0xNCwleG1tNAotCXBhbmQJJXhtbTEzLCV4
bW01Ci0JcHhvcgkleG1tNCwleG1tNQotCXB4b3IJJXhtbTksJXhtbTQKLQlweG9yCSV4bW0xNSwl
eG1tMTEKLQlweG9yCSV4bW0yLCV4bW03Ci0JcHhvcgkleG1tMTIsJXhtbTE0Ci0JcHhvcgkleG1t
OCwleG1tMTMKLQltb3ZkcWEJJXhtbTE0LCV4bW0xMAotCW1vdmRxYQkleG1tMTIsJXhtbTkKLQlw
eG9yCSV4bW0xMywleG1tMTAKLQlweG9yCSV4bW04LCV4bW05Ci0JcGFuZAkleG1tMTEsJXhtbTEw
Ci0JcGFuZAkleG1tMTUsJXhtbTkKLQlweG9yCSV4bW03LCV4bW0xMQotCXB4b3IJJXhtbTIsJXht
bTE1Ci0JcGFuZAkleG1tMTQsJXhtbTcKLQlwYW5kCSV4bW0xMiwleG1tMgotCXBhbmQJJXhtbTEz
LCV4bW0xMQotCXBhbmQJJXhtbTgsJXhtbTE1Ci0JcHhvcgkleG1tMTEsJXhtbTcKLQlweG9yCSV4
bW0yLCV4bW0xNQotCXB4b3IJJXhtbTEwLCV4bW0xMQotCXB4b3IJJXhtbTksJXhtbTIKLQlweG9y
CSV4bW0xMSwleG1tNQotCXB4b3IJJXhtbTExLCV4bW0xNQotCXB4b3IJJXhtbTcsJXhtbTQKLQlw
eG9yCSV4bW03LCV4bW0yCi0KLQltb3ZkcWEJJXhtbTYsJXhtbTExCi0JbW92ZHFhCSV4bW0wLCV4
bW03Ci0JcHhvcgkleG1tMywleG1tMTEKLQlweG9yCSV4bW0xLCV4bW03Ci0JbW92ZHFhCSV4bW0x
NCwleG1tMTAKLQltb3ZkcWEJJXhtbTEyLCV4bW05Ci0JcHhvcgkleG1tMTMsJXhtbTEwCi0JcHhv
cgkleG1tOCwleG1tOQotCXBhbmQJJXhtbTExLCV4bW0xMAotCXBhbmQJJXhtbTMsJXhtbTkKLQlw
eG9yCSV4bW03LCV4bW0xMQotCXB4b3IJJXhtbTEsJXhtbTMKLQlwYW5kCSV4bW0xNCwleG1tNwot
CXBhbmQJJXhtbTEyLCV4bW0xCi0JcGFuZAkleG1tMTMsJXhtbTExCi0JcGFuZAkleG1tOCwleG1t
MwotCXB4b3IJJXhtbTExLCV4bW03Ci0JcHhvcgkleG1tMSwleG1tMwotCXB4b3IJJXhtbTEwLCV4
bW0xMQotCXB4b3IJJXhtbTksJXhtbTEKLQlweG9yCSV4bW0xMiwleG1tMTQKLQlweG9yCSV4bW04
LCV4bW0xMwotCW1vdmRxYQkleG1tMTQsJXhtbTEwCi0JcHhvcgkleG1tMTMsJXhtbTEwCi0JcGFu
ZAkleG1tNiwleG1tMTAKLQlweG9yCSV4bW0wLCV4bW02Ci0JcGFuZAkleG1tMTQsJXhtbTAKLQlw
YW5kCSV4bW0xMywleG1tNgotCXB4b3IJJXhtbTAsJXhtbTYKLQlweG9yCSV4bW0xMCwleG1tMAot
CXB4b3IJJXhtbTExLCV4bW02Ci0JcHhvcgkleG1tMTEsJXhtbTMKLQlweG9yCSV4bW03LCV4bW0w
Ci0JcHhvcgkleG1tNywleG1tMQotCXB4b3IJJXhtbTE1LCV4bW02Ci0JcHhvcgkleG1tNSwleG1t
MAotCXB4b3IJJXhtbTYsJXhtbTMKLQlweG9yCSV4bW0xNSwleG1tNQotCXB4b3IJJXhtbTAsJXht
bTE1Ci0KLQlweG9yCSV4bW00LCV4bW0wCi0JcHhvcgkleG1tMSwleG1tNAotCXB4b3IJJXhtbTIs
JXhtbTEKLQlweG9yCSV4bW00LCV4bW0yCi0JcHhvcgkleG1tNCwleG1tMwotCi0JcHhvcgkleG1t
MiwleG1tNQotCWRlY2wJJXIxMGQKLQlqbAlMJGVuY19kb25lCi0JcHNodWZkCSQweDkzLCV4bW0x
NSwleG1tNwotCXBzaHVmZAkkMHg5MywleG1tMCwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTE1Ci0J
cHNodWZkCSQweDkzLCV4bW0zLCV4bW05Ci0JcHhvcgkleG1tOCwleG1tMAotCXBzaHVmZAkkMHg5
MywleG1tNSwleG1tMTAKLQlweG9yCSV4bW05LCV4bW0zCi0JcHNodWZkCSQweDkzLCV4bW0yLCV4
bW0xMQotCXB4b3IJJXhtbTEwLCV4bW01Ci0JcHNodWZkCSQweDkzLCV4bW02LCV4bW0xMgotCXB4
b3IJJXhtbTExLCV4bW0yCi0JcHNodWZkCSQweDkzLCV4bW0xLCV4bW0xMwotCXB4b3IJJXhtbTEy
LCV4bW02Ci0JcHNodWZkCSQweDkzLCV4bW00LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW0xCi0J
cHhvcgkleG1tMTQsJXhtbTQKLQotCXB4b3IJJXhtbTE1LCV4bW04Ci0JcHhvcgkleG1tNCwleG1t
NwotCXB4b3IJJXhtbTQsJXhtbTgKLQlwc2h1ZmQJJDB4NEUsJXhtbTE1LCV4bW0xNQotCXB4b3IJ
JXhtbTAsJXhtbTkKLQlwc2h1ZmQJJDB4NEUsJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0yLCV4bW0x
MgotCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHhvcgkleG1tNiwleG1tMTMKLQlweG9yCSV4bW04LCV4
bW0wCi0JcHhvcgkleG1tNSwleG1tMTEKLQlwc2h1ZmQJJDB4NEUsJXhtbTIsJXhtbTcKLQlweG9y
CSV4bW0xLCV4bW0xNAotCXBzaHVmZAkkMHg0RSwleG1tNiwleG1tOAotCXB4b3IJJXhtbTMsJXht
bTEwCi0JcHNodWZkCSQweDRFLCV4bW01LCV4bW0yCi0JcHhvcgkleG1tNCwleG1tMTAKLQlwc2h1
ZmQJJDB4NEUsJXhtbTQsJXhtbTYKLQlweG9yCSV4bW00LCV4bW0xMQotCXBzaHVmZAkkMHg0RSwl
eG1tMSwleG1tNQotCXB4b3IJJXhtbTExLCV4bW03Ci0JcHNodWZkCSQweDRFLCV4bW0zLCV4bW0x
Ci0JcHhvcgkleG1tMTIsJXhtbTgKLQlweG9yCSV4bW0xMCwleG1tMgotCXB4b3IJJXhtbTE0LCV4
bW02Ci0JcHhvcgkleG1tMTMsJXhtbTUKLQltb3ZkcWEJJXhtbTcsJXhtbTMKLQlweG9yCSV4bW05
LCV4bW0xCi0JbW92ZHFhCSV4bW04LCV4bW00Ci0JbW92ZHFhCTQ4KCVyMTEpLCV4bW03Ci0Jam56
CUwkZW5jX2xvb3AKLQltb3ZkcWEJNjQoJXIxMSksJXhtbTcKLQlqbXAJTCRlbmNfbG9vcAotLnAy
YWxpZ24JNAotTCRlbmNfZG9uZToKLQltb3ZkcWEJMCglcjExKSwleG1tNwotCW1vdmRxYQkxNigl
cjExKSwleG1tOAotCW1vdmRxYQkleG1tMSwleG1tOQotCXBzcmxxCSQxLCV4bW0xCi0JbW92ZHFh
CSV4bW0yLCV4bW0xMAotCXBzcmxxCSQxLCV4bW0yCi0JcHhvcgkleG1tNCwleG1tMQotCXB4b3IJ
JXhtbTYsJXhtbTIKLQlwYW5kCSV4bW03LCV4bW0xCi0JcGFuZAkleG1tNywleG1tMgotCXB4b3IJ
JXhtbTEsJXhtbTQKLQlwc2xscQkkMSwleG1tMQotCXB4b3IJJXhtbTIsJXhtbTYKLQlwc2xscQkk
MSwleG1tMgotCXB4b3IJJXhtbTksJXhtbTEKLQlweG9yCSV4bW0xMCwleG1tMgotCW1vdmRxYQkl
eG1tMywleG1tOQotCXBzcmxxCSQxLCV4bW0zCi0JbW92ZHFhCSV4bW0xNSwleG1tMTAKLQlwc3Js
cQkkMSwleG1tMTUKLQlweG9yCSV4bW01LCV4bW0zCi0JcHhvcgkleG1tMCwleG1tMTUKLQlwYW5k
CSV4bW03LCV4bW0zCi0JcGFuZAkleG1tNywleG1tMTUKLQlweG9yCSV4bW0zLCV4bW01Ci0JcHNs
bHEJJDEsJXhtbTMKLQlweG9yCSV4bW0xNSwleG1tMAotCXBzbGxxCSQxLCV4bW0xNQotCXB4b3IJ
JXhtbTksJXhtbTMKLQlweG9yCSV4bW0xMCwleG1tMTUKLQltb3ZkcWEJMzIoJXIxMSksJXhtbTcK
LQltb3ZkcWEJJXhtbTYsJXhtbTkKLQlwc3JscQkkMiwleG1tNgotCW1vdmRxYQkleG1tMiwleG1t
MTAKLQlwc3JscQkkMiwleG1tMgotCXB4b3IJJXhtbTQsJXhtbTYKLQlweG9yCSV4bW0xLCV4bW0y
Ci0JcGFuZAkleG1tOCwleG1tNgotCXBhbmQJJXhtbTgsJXhtbTIKLQlweG9yCSV4bW02LCV4bW00
Ci0JcHNsbHEJJDIsJXhtbTYKLQlweG9yCSV4bW0yLCV4bW0xCi0JcHNsbHEJJDIsJXhtbTIKLQlw
eG9yCSV4bW05LCV4bW02Ci0JcHhvcgkleG1tMTAsJXhtbTIKLQltb3ZkcWEJJXhtbTAsJXhtbTkK
LQlwc3JscQkkMiwleG1tMAotCW1vdmRxYQkleG1tMTUsJXhtbTEwCi0JcHNybHEJJDIsJXhtbTE1
Ci0JcHhvcgkleG1tNSwleG1tMAotCXB4b3IJJXhtbTMsJXhtbTE1Ci0JcGFuZAkleG1tOCwleG1t
MAotCXBhbmQJJXhtbTgsJXhtbTE1Ci0JcHhvcgkleG1tMCwleG1tNQotCXBzbGxxCSQyLCV4bW0w
Ci0JcHhvcgkleG1tMTUsJXhtbTMKLQlwc2xscQkkMiwleG1tMTUKLQlweG9yCSV4bW05LCV4bW0w
Ci0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JbW92ZHFhCSV4bW01LCV4bW05Ci0JcHNybHEJJDQsJXht
bTUKLQltb3ZkcWEJJXhtbTMsJXhtbTEwCi0JcHNybHEJJDQsJXhtbTMKLQlweG9yCSV4bW00LCV4
bW01Ci0JcHhvcgkleG1tMSwleG1tMwotCXBhbmQJJXhtbTcsJXhtbTUKLQlwYW5kCSV4bW03LCV4
bW0zCi0JcHhvcgkleG1tNSwleG1tNAotCXBzbGxxCSQ0LCV4bW01Ci0JcHhvcgkleG1tMywleG1t
MQotCXBzbGxxCSQ0LCV4bW0zCi0JcHhvcgkleG1tOSwleG1tNQotCXB4b3IJJXhtbTEwLCV4bW0z
Ci0JbW92ZHFhCSV4bW0wLCV4bW05Ci0JcHNybHEJJDQsJXhtbTAKLQltb3ZkcWEJJXhtbTE1LCV4
bW0xMAotCXBzcmxxCSQ0LCV4bW0xNQotCXB4b3IJJXhtbTYsJXhtbTAKLQlweG9yCSV4bW0yLCV4
bW0xNQotCXBhbmQJJXhtbTcsJXhtbTAKLQlwYW5kCSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTAs
JXhtbTYKLQlwc2xscQkkNCwleG1tMAotCXB4b3IJJXhtbTE1LCV4bW0yCi0JcHNsbHEJJDQsJXht
bTE1Ci0JcHhvcgkleG1tOSwleG1tMAotCXB4b3IJJXhtbTEwLCV4bW0xNQotCW1vdmRxYQkoJXJh
eCksJXhtbTcKLQlweG9yCSV4bW03LCV4bW0zCi0JcHhvcgkleG1tNywleG1tNQotCXB4b3IJJXht
bTcsJXhtbTIKLQlweG9yCSV4bW03LCV4bW02Ci0JcHhvcgkleG1tNywleG1tMQotCXB4b3IJJXht
bTcsJXhtbTQKLQlweG9yCSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTcsJXhtbTAKLQkuYnl0ZQkw
eGYzLDB4YzMKLQotCi0KLS5wMmFsaWduCTYKLV9ic2Flc19kZWNyeXB0ODoKLQlsZWFxCUwkQlMw
KCVyaXApLCVyMTEKLQotCW1vdmRxYQkoJXJheCksJXhtbTgKLQlsZWFxCTE2KCVyYXgpLCVyYXgK
LQltb3ZkcWEJLTQ4KCVyMTEpLCV4bW03Ci0JcHhvcgkleG1tOCwleG1tMTUKLQlweG9yCSV4bW04
LCV4bW0wCi0JcHhvcgkleG1tOCwleG1tMQotCXB4b3IJJXhtbTgsJXhtbTIKLS5ieXRlCTEwMiw2
OCwxNSw1NiwwLDI1NQotLmJ5dGUJMTAyLDE1LDU2LDAsMTk5Ci0JcHhvcgkleG1tOCwleG1tMwot
CXB4b3IJJXhtbTgsJXhtbTQKLS5ieXRlCTEwMiwxNSw1NiwwLDIwNwotLmJ5dGUJMTAyLDE1LDU2
LDAsMjE1Ci0JcHhvcgkleG1tOCwleG1tNQotCXB4b3IJJXhtbTgsJXhtbTYKLS5ieXRlCTEwMiwx
NSw1NiwwLDIyMwotLmJ5dGUJMTAyLDE1LDU2LDAsMjMxCi0uYnl0ZQkxMDIsMTUsNTYsMCwyMzkK
LS5ieXRlCTEwMiwxNSw1NiwwLDI0NwotCW1vdmRxYQkwKCVyMTEpLCV4bW03Ci0JbW92ZHFhCTE2
KCVyMTEpLCV4bW04Ci0JbW92ZHFhCSV4bW01LCV4bW05Ci0JcHNybHEJJDEsJXhtbTUKLQltb3Zk
cWEJJXhtbTMsJXhtbTEwCi0JcHNybHEJJDEsJXhtbTMKLQlweG9yCSV4bW02LCV4bW01Ci0JcHhv
cgkleG1tNCwleG1tMwotCXBhbmQJJXhtbTcsJXhtbTUKLQlwYW5kCSV4bW03LCV4bW0zCi0JcHhv
cgkleG1tNSwleG1tNgotCXBzbGxxCSQxLCV4bW01Ci0JcHhvcgkleG1tMywleG1tNAotCXBzbGxx
CSQxLCV4bW0zCi0JcHhvcgkleG1tOSwleG1tNQotCXB4b3IJJXhtbTEwLCV4bW0zCi0JbW92ZHFh
CSV4bW0xLCV4bW05Ci0JcHNybHEJJDEsJXhtbTEKLQltb3ZkcWEJJXhtbTE1LCV4bW0xMAotCXBz
cmxxCSQxLCV4bW0xNQotCXB4b3IJJXhtbTIsJXhtbTEKLQlweG9yCSV4bW0wLCV4bW0xNQotCXBh
bmQJJXhtbTcsJXhtbTEKLQlwYW5kCSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTEsJXhtbTIKLQlw
c2xscQkkMSwleG1tMQotCXB4b3IJJXhtbTE1LCV4bW0wCi0JcHNsbHEJJDEsJXhtbTE1Ci0JcHhv
cgkleG1tOSwleG1tMQotCXB4b3IJJXhtbTEwLCV4bW0xNQotCW1vdmRxYQkzMiglcjExKSwleG1t
NwotCW1vdmRxYQkleG1tNCwleG1tOQotCXBzcmxxCSQyLCV4bW00Ci0JbW92ZHFhCSV4bW0zLCV4
bW0xMAotCXBzcmxxCSQyLCV4bW0zCi0JcHhvcgkleG1tNiwleG1tNAotCXB4b3IJJXhtbTUsJXht
bTMKLQlwYW5kCSV4bW04LCV4bW00Ci0JcGFuZAkleG1tOCwleG1tMwotCXB4b3IJJXhtbTQsJXht
bTYKLQlwc2xscQkkMiwleG1tNAotCXB4b3IJJXhtbTMsJXhtbTUKLQlwc2xscQkkMiwleG1tMwot
CXB4b3IJJXhtbTksJXhtbTQKLQlweG9yCSV4bW0xMCwleG1tMwotCW1vdmRxYQkleG1tMCwleG1t
OQotCXBzcmxxCSQyLCV4bW0wCi0JbW92ZHFhCSV4bW0xNSwleG1tMTAKLQlwc3JscQkkMiwleG1t
MTUKLQlweG9yCSV4bW0yLCV4bW0wCi0JcHhvcgkleG1tMSwleG1tMTUKLQlwYW5kCSV4bW04LCV4
bW0wCi0JcGFuZAkleG1tOCwleG1tMTUKLQlweG9yCSV4bW0wLCV4bW0yCi0JcHNsbHEJJDIsJXht
bTAKLQlweG9yCSV4bW0xNSwleG1tMQotCXBzbGxxCSQyLCV4bW0xNQotCXB4b3IJJXhtbTksJXht
bTAKLQlweG9yCSV4bW0xMCwleG1tMTUKLQltb3ZkcWEJJXhtbTIsJXhtbTkKLQlwc3JscQkkNCwl
eG1tMgotCW1vdmRxYQkleG1tMSwleG1tMTAKLQlwc3JscQkkNCwleG1tMQotCXB4b3IJJXhtbTYs
JXhtbTIKLQlweG9yCSV4bW01LCV4bW0xCi0JcGFuZAkleG1tNywleG1tMgotCXBhbmQJJXhtbTcs
JXhtbTEKLQlweG9yCSV4bW0yLCV4bW02Ci0JcHNsbHEJJDQsJXhtbTIKLQlweG9yCSV4bW0xLCV4
bW01Ci0JcHNsbHEJJDQsJXhtbTEKLQlweG9yCSV4bW05LCV4bW0yCi0JcHhvcgkleG1tMTAsJXht
bTEKLQltb3ZkcWEJJXhtbTAsJXhtbTkKLQlwc3JscQkkNCwleG1tMAotCW1vdmRxYQkleG1tMTUs
JXhtbTEwCi0JcHNybHEJJDQsJXhtbTE1Ci0JcHhvcgkleG1tNCwleG1tMAotCXB4b3IJJXhtbTMs
JXhtbTE1Ci0JcGFuZAkleG1tNywleG1tMAotCXBhbmQJJXhtbTcsJXhtbTE1Ci0JcHhvcgkleG1t
MCwleG1tNAotCXBzbGxxCSQ0LCV4bW0wCi0JcHhvcgkleG1tMTUsJXhtbTMKLQlwc2xscQkkNCwl
eG1tMTUKLQlweG9yCSV4bW05LCV4bW0wCi0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JZGVjbAklcjEw
ZAotCWptcAlMJGRlY19zYm94Ci0ucDJhbGlnbgk0Ci1MJGRlY19sb29wOgotCXB4b3IJMCglcmF4
KSwleG1tMTUKLQlweG9yCTE2KCVyYXgpLCV4bW0wCi0JcHhvcgkzMiglcmF4KSwleG1tMQotCXB4
b3IJNDgoJXJheCksJXhtbTIKLS5ieXRlCTEwMiw2OCwxNSw1NiwwLDI1NQotLmJ5dGUJMTAyLDE1
LDU2LDAsMTk5Ci0JcHhvcgk2NCglcmF4KSwleG1tMwotCXB4b3IJODAoJXJheCksJXhtbTQKLS5i
eXRlCTEwMiwxNSw1NiwwLDIwNwotLmJ5dGUJMTAyLDE1LDU2LDAsMjE1Ci0JcHhvcgk5NiglcmF4
KSwleG1tNQotCXB4b3IJMTEyKCVyYXgpLCV4bW02Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMjMKLS5i
eXRlCTEwMiwxNSw1NiwwLDIzMQotLmJ5dGUJMTAyLDE1LDU2LDAsMjM5Ci0uYnl0ZQkxMDIsMTUs
NTYsMCwyNDcKLQlsZWFxCTEyOCglcmF4KSwlcmF4Ci1MJGRlY19zYm94OgotCXB4b3IJJXhtbTMs
JXhtbTIKLQotCXB4b3IJJXhtbTYsJXhtbTMKLQlweG9yCSV4bW02LCV4bW0xCi0JcHhvcgkleG1t
MywleG1tNQotCXB4b3IJJXhtbTUsJXhtbTYKLQlweG9yCSV4bW02LCV4bW0wCi0KLQlweG9yCSV4
bW0wLCV4bW0xNQotCXB4b3IJJXhtbTQsJXhtbTEKLQlweG9yCSV4bW0xNSwleG1tMgotCXB4b3IJ
JXhtbTE1LCV4bW00Ci0JcHhvcgkleG1tMiwleG1tMAotCW1vdmRxYQkleG1tMiwleG1tMTAKLQlt
b3ZkcWEJJXhtbTYsJXhtbTkKLQltb3ZkcWEJJXhtbTAsJXhtbTgKLQltb3ZkcWEJJXhtbTMsJXht
bTEyCi0JbW92ZHFhCSV4bW00LCV4bW0xMQotCi0JcHhvcgkleG1tMTUsJXhtbTEwCi0JcHhvcgkl
eG1tMywleG1tOQotCXB4b3IJJXhtbTUsJXhtbTgKLQltb3ZkcWEJJXhtbTEwLCV4bW0xMwotCXB4
b3IJJXhtbTE1LCV4bW0xMgotCW1vdmRxYQkleG1tOSwleG1tNwotCXB4b3IJJXhtbTEsJXhtbTEx
Ci0JbW92ZHFhCSV4bW0xMCwleG1tMTQKLQotCXBvcgkleG1tOCwleG1tOQotCXBvcgkleG1tMTEs
JXhtbTEwCi0JcHhvcgkleG1tNywleG1tMTQKLQlwYW5kCSV4bW0xMSwleG1tMTMKLQlweG9yCSV4
bW04LCV4bW0xMQotCXBhbmQJJXhtbTgsJXhtbTcKLQlwYW5kCSV4bW0xMSwleG1tMTQKLQltb3Zk
cWEJJXhtbTUsJXhtbTExCi0JcHhvcgkleG1tMSwleG1tMTEKLQlwYW5kCSV4bW0xMSwleG1tMTIK
LQlweG9yCSV4bW0xMiwleG1tMTAKLQlweG9yCSV4bW0xMiwleG1tOQotCW1vdmRxYQkleG1tMiwl
eG1tMTIKLQltb3ZkcWEJJXhtbTAsJXhtbTExCi0JcHhvcgkleG1tNiwleG1tMTIKLQlweG9yCSV4
bW00LCV4bW0xMQotCW1vdmRxYQkleG1tMTIsJXhtbTgKLQlwYW5kCSV4bW0xMSwleG1tMTIKLQlw
b3IJJXhtbTExLCV4bW04Ci0JcHhvcgkleG1tMTIsJXhtbTcKLQlweG9yCSV4bW0xNCwleG1tMTAK
LQlweG9yCSV4bW0xMywleG1tOQotCXB4b3IJJXhtbTE0LCV4bW04Ci0JbW92ZHFhCSV4bW0zLCV4
bW0xMQotCXB4b3IJJXhtbTEzLCV4bW03Ci0JbW92ZHFhCSV4bW0xNSwleG1tMTIKLQlweG9yCSV4
bW0xMywleG1tOAotCW1vdmRxYQkleG1tNiwleG1tMTMKLQlwYW5kCSV4bW01LCV4bW0xMQotCW1v
dmRxYQkleG1tMiwleG1tMTQKLQlwYW5kCSV4bW0xLCV4bW0xMgotCXBhbmQJJXhtbTAsJXhtbTEz
Ci0JcG9yCSV4bW00LCV4bW0xNAotCXB4b3IJJXhtbTExLCV4bW0xMAotCXB4b3IJJXhtbTEyLCV4
bW05Ci0JcHhvcgkleG1tMTMsJXhtbTgKLQlweG9yCSV4bW0xNCwleG1tNwotCi0KLQotCi0KLQlt
b3ZkcWEJJXhtbTEwLCV4bW0xMQotCXBhbmQJJXhtbTgsJXhtbTEwCi0JcHhvcgkleG1tOSwleG1t
MTEKLQotCW1vdmRxYQkleG1tNywleG1tMTMKLQltb3ZkcWEJJXhtbTExLCV4bW0xNAotCXB4b3IJ
JXhtbTEwLCV4bW0xMwotCXBhbmQJJXhtbTEzLCV4bW0xNAotCi0JbW92ZHFhCSV4bW04LCV4bW0x
MgotCXB4b3IJJXhtbTksJXhtbTE0Ci0JcHhvcgkleG1tNywleG1tMTIKLQotCXB4b3IJJXhtbTks
JXhtbTEwCi0KLQlwYW5kCSV4bW0xMCwleG1tMTIKLQotCW1vdmRxYQkleG1tMTMsJXhtbTkKLQlw
eG9yCSV4bW03LCV4bW0xMgotCi0JcHhvcgkleG1tMTIsJXhtbTkKLQlweG9yCSV4bW0xMiwleG1t
OAotCi0JcGFuZAkleG1tNywleG1tOQotCi0JcHhvcgkleG1tOSwleG1tMTMKLQlweG9yCSV4bW05
LCV4bW04Ci0KLQlwYW5kCSV4bW0xNCwleG1tMTMKLQotCXB4b3IJJXhtbTExLCV4bW0xMwotCW1v
dmRxYQkleG1tNCwleG1tMTEKLQltb3ZkcWEJJXhtbTAsJXhtbTcKLQltb3ZkcWEJJXhtbTE0LCV4
bW05Ci0JcHhvcgkleG1tMTMsJXhtbTkKLQlwYW5kCSV4bW00LCV4bW05Ci0JcHhvcgkleG1tMCwl
eG1tNAotCXBhbmQJJXhtbTE0LCV4bW0wCi0JcGFuZAkleG1tMTMsJXhtbTQKLQlweG9yCSV4bW0w
LCV4bW00Ci0JcHhvcgkleG1tOSwleG1tMAotCXB4b3IJJXhtbTEsJXhtbTExCi0JcHhvcgkleG1t
NSwleG1tNwotCXB4b3IJJXhtbTEyLCV4bW0xNAotCXB4b3IJJXhtbTgsJXhtbTEzCi0JbW92ZHFh
CSV4bW0xNCwleG1tMTAKLQltb3ZkcWEJJXhtbTEyLCV4bW05Ci0JcHhvcgkleG1tMTMsJXhtbTEw
Ci0JcHhvcgkleG1tOCwleG1tOQotCXBhbmQJJXhtbTExLCV4bW0xMAotCXBhbmQJJXhtbTEsJXht
bTkKLQlweG9yCSV4bW03LCV4bW0xMQotCXB4b3IJJXhtbTUsJXhtbTEKLQlwYW5kCSV4bW0xNCwl
eG1tNwotCXBhbmQJJXhtbTEyLCV4bW01Ci0JcGFuZAkleG1tMTMsJXhtbTExCi0JcGFuZAkleG1t
OCwleG1tMQotCXB4b3IJJXhtbTExLCV4bW03Ci0JcHhvcgkleG1tNSwleG1tMQotCXB4b3IJJXht
bTEwLCV4bW0xMQotCXB4b3IJJXhtbTksJXhtbTUKLQlweG9yCSV4bW0xMSwleG1tNAotCXB4b3IJ
JXhtbTExLCV4bW0xCi0JcHhvcgkleG1tNywleG1tMAotCXB4b3IJJXhtbTcsJXhtbTUKLQotCW1v
dmRxYQkleG1tMiwleG1tMTEKLQltb3ZkcWEJJXhtbTYsJXhtbTcKLQlweG9yCSV4bW0xNSwleG1t
MTEKLQlweG9yCSV4bW0zLCV4bW03Ci0JbW92ZHFhCSV4bW0xNCwleG1tMTAKLQltb3ZkcWEJJXht
bTEyLCV4bW05Ci0JcHhvcgkleG1tMTMsJXhtbTEwCi0JcHhvcgkleG1tOCwleG1tOQotCXBhbmQJ
JXhtbTExLCV4bW0xMAotCXBhbmQJJXhtbTE1LCV4bW05Ci0JcHhvcgkleG1tNywleG1tMTEKLQlw
eG9yCSV4bW0zLCV4bW0xNQotCXBhbmQJJXhtbTE0LCV4bW03Ci0JcGFuZAkleG1tMTIsJXhtbTMK
LQlwYW5kCSV4bW0xMywleG1tMTEKLQlwYW5kCSV4bW04LCV4bW0xNQotCXB4b3IJJXhtbTExLCV4
bW03Ci0JcHhvcgkleG1tMywleG1tMTUKLQlweG9yCSV4bW0xMCwleG1tMTEKLQlweG9yCSV4bW05
LCV4bW0zCi0JcHhvcgkleG1tMTIsJXhtbTE0Ci0JcHhvcgkleG1tOCwleG1tMTMKLQltb3ZkcWEJ
JXhtbTE0LCV4bW0xMAotCXB4b3IJJXhtbTEzLCV4bW0xMAotCXBhbmQJJXhtbTIsJXhtbTEwCi0J
cHhvcgkleG1tNiwleG1tMgotCXBhbmQJJXhtbTE0LCV4bW02Ci0JcGFuZAkleG1tMTMsJXhtbTIK
LQlweG9yCSV4bW02LCV4bW0yCi0JcHhvcgkleG1tMTAsJXhtbTYKLQlweG9yCSV4bW0xMSwleG1t
MgotCXB4b3IJJXhtbTExLCV4bW0xNQotCXB4b3IJJXhtbTcsJXhtbTYKLQlweG9yCSV4bW03LCV4
bW0zCi0JcHhvcgkleG1tNiwleG1tMAotCXB4b3IJJXhtbTQsJXhtbTUKLQotCXB4b3IJJXhtbTAs
JXhtbTMKLQlweG9yCSV4bW02LCV4bW0xCi0JcHhvcgkleG1tNiwleG1tNAotCXB4b3IJJXhtbTEs
JXhtbTMKLQlweG9yCSV4bW0xNSwleG1tNgotCXB4b3IJJXhtbTQsJXhtbTMKLQlweG9yCSV4bW01
LCV4bW0yCi0JcHhvcgkleG1tMCwleG1tNQotCXB4b3IJJXhtbTMsJXhtbTIKLQotCXB4b3IJJXht
bTE1LCV4bW0zCi0JcHhvcgkleG1tMiwleG1tNgotCWRlY2wJJXIxMGQKLQlqbAlMJGRlY19kb25l
Ci0KLQlwc2h1ZmQJJDB4NEUsJXhtbTE1LCV4bW03Ci0JcHNodWZkCSQweDRFLCV4bW0yLCV4bW0x
MwotCXB4b3IJJXhtbTE1LCV4bW03Ci0JcHNodWZkCSQweDRFLCV4bW00LCV4bW0xNAotCXB4b3IJ
JXhtbTIsJXhtbTEzCi0JcHNodWZkCSQweDRFLCV4bW0wLCV4bW04Ci0JcHhvcgkleG1tNCwleG1t
MTQKLQlwc2h1ZmQJJDB4NEUsJXhtbTUsJXhtbTkKLQlweG9yCSV4bW0wLCV4bW04Ci0JcHNodWZk
CSQweDRFLCV4bW0zLCV4bW0xMAotCXB4b3IJJXhtbTUsJXhtbTkKLQlweG9yCSV4bW0xMywleG1t
MTUKLQlweG9yCSV4bW0xMywleG1tMAotCXBzaHVmZAkkMHg0RSwleG1tMSwleG1tMTEKLQlweG9y
CSV4bW0zLCV4bW0xMAotCXB4b3IJJXhtbTcsJXhtbTUKLQlweG9yCSV4bW04LCV4bW0zCi0JcHNo
dWZkCSQweDRFLCV4bW02LCV4bW0xMgotCXB4b3IJJXhtbTEsJXhtbTExCi0JcHhvcgkleG1tMTQs
JXhtbTAKLQlweG9yCSV4bW05LCV4bW0xCi0JcHhvcgkleG1tNiwleG1tMTIKLQotCXB4b3IJJXht
bTE0LCV4bW01Ci0JcHhvcgkleG1tMTMsJXhtbTMKLQlweG9yCSV4bW0xMywleG1tMQotCXB4b3IJ
JXhtbTEwLCV4bW02Ci0JcHhvcgkleG1tMTEsJXhtbTIKLQlweG9yCSV4bW0xNCwleG1tMQotCXB4
b3IJJXhtbTE0LCV4bW02Ci0JcHhvcgkleG1tMTIsJXhtbTQKLQlwc2h1ZmQJJDB4OTMsJXhtbTE1
LCV4bW03Ci0JcHNodWZkCSQweDkzLCV4bW0wLCV4bW04Ci0JcHhvcgkleG1tNywleG1tMTUKLQlw
c2h1ZmQJJDB4OTMsJXhtbTUsJXhtbTkKLQlweG9yCSV4bW04LCV4bW0wCi0JcHNodWZkCSQweDkz
LCV4bW0zLCV4bW0xMAotCXB4b3IJJXhtbTksJXhtbTUKLQlwc2h1ZmQJJDB4OTMsJXhtbTEsJXht
bTExCi0JcHhvcgkleG1tMTAsJXhtbTMKLQlwc2h1ZmQJJDB4OTMsJXhtbTYsJXhtbTEyCi0JcHhv
cgkleG1tMTEsJXhtbTEKLQlwc2h1ZmQJJDB4OTMsJXhtbTIsJXhtbTEzCi0JcHhvcgkleG1tMTIs
JXhtbTYKLQlwc2h1ZmQJJDB4OTMsJXhtbTQsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTIKLQlw
eG9yCSV4bW0xNCwleG1tNAotCi0JcHhvcgkleG1tMTUsJXhtbTgKLQlweG9yCSV4bW00LCV4bW03
Ci0JcHhvcgkleG1tNCwleG1tOAotCXBzaHVmZAkkMHg0RSwleG1tMTUsJXhtbTE1Ci0JcHhvcgkl
eG1tMCwleG1tOQotCXBzaHVmZAkkMHg0RSwleG1tMCwleG1tMAotCXB4b3IJJXhtbTEsJXhtbTEy
Ci0JcHhvcgkleG1tNywleG1tMTUKLQlweG9yCSV4bW02LCV4bW0xMwotCXB4b3IJJXhtbTgsJXht
bTAKLQlweG9yCSV4bW0zLCV4bW0xMQotCXBzaHVmZAkkMHg0RSwleG1tMSwleG1tNwotCXB4b3IJ
JXhtbTIsJXhtbTE0Ci0JcHNodWZkCSQweDRFLCV4bW02LCV4bW04Ci0JcHhvcgkleG1tNSwleG1t
MTAKLQlwc2h1ZmQJJDB4NEUsJXhtbTMsJXhtbTEKLQlweG9yCSV4bW00LCV4bW0xMAotCXBzaHVm
ZAkkMHg0RSwleG1tNCwleG1tNgotCXB4b3IJJXhtbTQsJXhtbTExCi0JcHNodWZkCSQweDRFLCV4
bW0yLCV4bW0zCi0JcHhvcgkleG1tMTEsJXhtbTcKLQlwc2h1ZmQJJDB4NEUsJXhtbTUsJXhtbTIK
LQlweG9yCSV4bW0xMiwleG1tOAotCXB4b3IJJXhtbTEsJXhtbTEwCi0JcHhvcgkleG1tMTQsJXht
bTYKLQlweG9yCSV4bW0zLCV4bW0xMwotCW1vdmRxYQkleG1tNywleG1tMwotCXB4b3IJJXhtbTks
JXhtbTIKLQltb3ZkcWEJJXhtbTEzLCV4bW01Ci0JbW92ZHFhCSV4bW04LCV4bW00Ci0JbW92ZHFh
CSV4bW0yLCV4bW0xCi0JbW92ZHFhCSV4bW0xMCwleG1tMgotCW1vdmRxYQktMTYoJXIxMSksJXht
bTcKLQlqbnoJTCRkZWNfbG9vcAotCW1vdmRxYQktMzIoJXIxMSksJXhtbTcKLQlqbXAJTCRkZWNf
bG9vcAotLnAyYWxpZ24JNAotTCRkZWNfZG9uZToKLQltb3ZkcWEJMCglcjExKSwleG1tNwotCW1v
dmRxYQkxNiglcjExKSwleG1tOAotCW1vdmRxYQkleG1tMiwleG1tOQotCXBzcmxxCSQxLCV4bW0y
Ci0JbW92ZHFhCSV4bW0xLCV4bW0xMAotCXBzcmxxCSQxLCV4bW0xCi0JcHhvcgkleG1tNCwleG1t
MgotCXB4b3IJJXhtbTYsJXhtbTEKLQlwYW5kCSV4bW03LCV4bW0yCi0JcGFuZAkleG1tNywleG1t
MQotCXB4b3IJJXhtbTIsJXhtbTQKLQlwc2xscQkkMSwleG1tMgotCXB4b3IJJXhtbTEsJXhtbTYK
LQlwc2xscQkkMSwleG1tMQotCXB4b3IJJXhtbTksJXhtbTIKLQlweG9yCSV4bW0xMCwleG1tMQot
CW1vdmRxYQkleG1tNSwleG1tOQotCXBzcmxxCSQxLCV4bW01Ci0JbW92ZHFhCSV4bW0xNSwleG1t
MTAKLQlwc3JscQkkMSwleG1tMTUKLQlweG9yCSV4bW0zLCV4bW01Ci0JcHhvcgkleG1tMCwleG1t
MTUKLQlwYW5kCSV4bW03LCV4bW01Ci0JcGFuZAkleG1tNywleG1tMTUKLQlweG9yCSV4bW01LCV4
bW0zCi0JcHNsbHEJJDEsJXhtbTUKLQlweG9yCSV4bW0xNSwleG1tMAotCXBzbGxxCSQxLCV4bW0x
NQotCXB4b3IJJXhtbTksJXhtbTUKLQlweG9yCSV4bW0xMCwleG1tMTUKLQltb3ZkcWEJMzIoJXIx
MSksJXhtbTcKLQltb3ZkcWEJJXhtbTYsJXhtbTkKLQlwc3JscQkkMiwleG1tNgotCW1vdmRxYQkl
eG1tMSwleG1tMTAKLQlwc3JscQkkMiwleG1tMQotCXB4b3IJJXhtbTQsJXhtbTYKLQlweG9yCSV4
bW0yLCV4bW0xCi0JcGFuZAkleG1tOCwleG1tNgotCXBhbmQJJXhtbTgsJXhtbTEKLQlweG9yCSV4
bW02LCV4bW00Ci0JcHNsbHEJJDIsJXhtbTYKLQlweG9yCSV4bW0xLCV4bW0yCi0JcHNsbHEJJDIs
JXhtbTEKLQlweG9yCSV4bW05LCV4bW02Ci0JcHhvcgkleG1tMTAsJXhtbTEKLQltb3ZkcWEJJXht
bTAsJXhtbTkKLQlwc3JscQkkMiwleG1tMAotCW1vdmRxYQkleG1tMTUsJXhtbTEwCi0JcHNybHEJ
JDIsJXhtbTE1Ci0JcHhvcgkleG1tMywleG1tMAotCXB4b3IJJXhtbTUsJXhtbTE1Ci0JcGFuZAkl
eG1tOCwleG1tMAotCXBhbmQJJXhtbTgsJXhtbTE1Ci0JcHhvcgkleG1tMCwleG1tMwotCXBzbGxx
CSQyLCV4bW0wCi0JcHhvcgkleG1tMTUsJXhtbTUKLQlwc2xscQkkMiwleG1tMTUKLQlweG9yCSV4
bW05LCV4bW0wCi0JcHhvcgkleG1tMTAsJXhtbTE1Ci0JbW92ZHFhCSV4bW0zLCV4bW05Ci0JcHNy
bHEJJDQsJXhtbTMKLQltb3ZkcWEJJXhtbTUsJXhtbTEwCi0JcHNybHEJJDQsJXhtbTUKLQlweG9y
CSV4bW00LCV4bW0zCi0JcHhvcgkleG1tMiwleG1tNQotCXBhbmQJJXhtbTcsJXhtbTMKLQlwYW5k
CSV4bW03LCV4bW01Ci0JcHhvcgkleG1tMywleG1tNAotCXBzbGxxCSQ0LCV4bW0zCi0JcHhvcgkl
eG1tNSwleG1tMgotCXBzbGxxCSQ0LCV4bW01Ci0JcHhvcgkleG1tOSwleG1tMwotCXB4b3IJJXht
bTEwLCV4bW01Ci0JbW92ZHFhCSV4bW0wLCV4bW05Ci0JcHNybHEJJDQsJXhtbTAKLQltb3ZkcWEJ
JXhtbTE1LCV4bW0xMAotCXBzcmxxCSQ0LCV4bW0xNQotCXB4b3IJJXhtbTYsJXhtbTAKLQlweG9y
CSV4bW0xLCV4bW0xNQotCXBhbmQJJXhtbTcsJXhtbTAKLQlwYW5kCSV4bW03LCV4bW0xNQotCXB4
b3IJJXhtbTAsJXhtbTYKLQlwc2xscQkkNCwleG1tMAotCXB4b3IJJXhtbTE1LCV4bW0xCi0JcHNs
bHEJJDQsJXhtbTE1Ci0JcHhvcgkleG1tOSwleG1tMAotCXB4b3IJJXhtbTEwLCV4bW0xNQotCW1v
dmRxYQkoJXJheCksJXhtbTcKLQlweG9yCSV4bW03LCV4bW01Ci0JcHhvcgkleG1tNywleG1tMwot
CXB4b3IJJXhtbTcsJXhtbTEKLQlweG9yCSV4bW03LCV4bW02Ci0JcHhvcgkleG1tNywleG1tMgot
CXB4b3IJJXhtbTcsJXhtbTQKLQlweG9yCSV4bW03LCV4bW0xNQotCXB4b3IJJXhtbTcsJXhtbTAK
LQkuYnl0ZQkweGYzLDB4YzMKLQotCi0ucDJhbGlnbgk0Ci1fYnNhZXNfa2V5X2NvbnZlcnQ6Ci0J
bGVhcQlMJG1hc2tzKCVyaXApLCVyMTEKLQltb3ZkcXUJKCVyY3gpLCV4bW03Ci0JbGVhcQkxNigl
cmN4KSwlcmN4Ci0JbW92ZHFhCTAoJXIxMSksJXhtbTAKLQltb3ZkcWEJMTYoJXIxMSksJXhtbTEK
LQltb3ZkcWEJMzIoJXIxMSksJXhtbTIKLQltb3ZkcWEJNDgoJXIxMSksJXhtbTMKLQltb3ZkcWEJ
NjQoJXIxMSksJXhtbTQKLQlwY21wZXFkCSV4bW01LCV4bW01Ci0KLQltb3ZkcXUJKCVyY3gpLCV4
bW02Ci0JbW92ZHFhCSV4bW03LCglcmF4KQotCWxlYXEJMTYoJXJheCksJXJheAotCWRlY2wJJXIx
MGQKLQlqbXAJTCRrZXlfbG9vcAotLnAyYWxpZ24JNAotTCRrZXlfbG9vcDoKLS5ieXRlCTEwMiwx
NSw1NiwwLDI0NAotCi0JbW92ZHFhCSV4bW0wLCV4bW04Ci0JbW92ZHFhCSV4bW0xLCV4bW05Ci0K
LQlwYW5kCSV4bW02LCV4bW04Ci0JcGFuZAkleG1tNiwleG1tOQotCW1vdmRxYQkleG1tMiwleG1t
MTAKLQlwY21wZXFiCSV4bW0wLCV4bW04Ci0JcHNsbHEJJDQsJXhtbTAKLQltb3ZkcWEJJXhtbTMs
JXhtbTExCi0JcGNtcGVxYgkleG1tMSwleG1tOQotCXBzbGxxCSQ0LCV4bW0xCi0KLQlwYW5kCSV4
bW02LCV4bW0xMAotCXBhbmQJJXhtbTYsJXhtbTExCi0JbW92ZHFhCSV4bW0wLCV4bW0xMgotCXBj
bXBlcWIJJXhtbTIsJXhtbTEwCi0JcHNsbHEJJDQsJXhtbTIKLQltb3ZkcWEJJXhtbTEsJXhtbTEz
Ci0JcGNtcGVxYgkleG1tMywleG1tMTEKLQlwc2xscQkkNCwleG1tMwotCi0JbW92ZHFhCSV4bW0y
LCV4bW0xNAotCW1vdmRxYQkleG1tMywleG1tMTUKLQlweG9yCSV4bW01LCV4bW04Ci0JcHhvcgkl
eG1tNSwleG1tOQotCi0JcGFuZAkleG1tNiwleG1tMTIKLQlwYW5kCSV4bW02LCV4bW0xMwotCW1v
dmRxYQkleG1tOCwwKCVyYXgpCi0JcGNtcGVxYgkleG1tMCwleG1tMTIKLQlwc3JscQkkNCwleG1t
MAotCW1vdmRxYQkleG1tOSwxNiglcmF4KQotCXBjbXBlcWIJJXhtbTEsJXhtbTEzCi0JcHNybHEJ
JDQsJXhtbTEKLQlsZWFxCTE2KCVyY3gpLCVyY3gKLQotCXBhbmQJJXhtbTYsJXhtbTE0Ci0JcGFu
ZAkleG1tNiwleG1tMTUKLQltb3ZkcWEJJXhtbTEwLDMyKCVyYXgpCi0JcGNtcGVxYgkleG1tMiwl
eG1tMTQKLQlwc3JscQkkNCwleG1tMgotCW1vdmRxYQkleG1tMTEsNDgoJXJheCkKLQlwY21wZXFi
CSV4bW0zLCV4bW0xNQotCXBzcmxxCSQ0LCV4bW0zCi0JbW92ZHF1CSglcmN4KSwleG1tNgotCi0J
cHhvcgkleG1tNSwleG1tMTMKLQlweG9yCSV4bW01LCV4bW0xNAotCW1vdmRxYQkleG1tMTIsNjQo
JXJheCkKLQltb3ZkcWEJJXhtbTEzLDgwKCVyYXgpCi0JbW92ZHFhCSV4bW0xNCw5NiglcmF4KQot
CW1vdmRxYQkleG1tMTUsMTEyKCVyYXgpCi0JbGVhcQkxMjgoJXJheCksJXJheAotCWRlY2wJJXIx
MGQKLQlqbnoJTCRrZXlfbG9vcAotCi0JbW92ZHFhCTgwKCVyMTEpLCV4bW03Ci0KLQkuYnl0ZQkw
eGYzLDB4YzMKLQotCi0uZ2xvYmwJX2JzYWVzX2NiY19lbmNyeXB0Ci0ucHJpdmF0ZV9leHRlcm4g
X2JzYWVzX2NiY19lbmNyeXB0Ci0KLS5wMmFsaWduCTQKLV9ic2Flc19jYmNfZW5jcnlwdDoKLQot
CWNtcGwJJDAsJXI5ZAotCWpuZQlfYWVzX25vaHdfY2JjX2VuY3J5cHQKLQljbXBxCSQxMjgsJXJk
eAotCWpiCV9hZXNfbm9od19jYmNfZW5jcnlwdAotCi0JbW92cQklcnNwLCVyYXgKLUwkY2JjX2Rl
Y19wcm9sb2d1ZToKLQlwdXNocQklcmJwCi0KLQlwdXNocQklcmJ4Ci0KLQlwdXNocQklcjEyCi0K
LQlwdXNocQklcjEzCi0KLQlwdXNocQklcjE0Ci0KLQlwdXNocQklcjE1Ci0KLQlsZWFxCS03Migl
cnNwKSwlcnNwCi0KLQltb3ZxCSVyc3AsJXJicAotCi0JbW92bAkyNDAoJXJjeCksJWVheAotCW1v
dnEJJXJkaSwlcjEyCi0JbW92cQklcnNpLCVyMTMKLQltb3ZxCSVyZHgsJXIxNAotCW1vdnEJJXJj
eCwlcjE1Ci0JbW92cQklcjgsJXJieAotCXNocnEJJDQsJXIxNAotCi0JbW92bAklZWF4LCVlZHgK
LQlzaGxxCSQ3LCVyYXgKLQlzdWJxCSQ5NiwlcmF4Ci0Jc3VicQklcmF4LCVyc3AKLQotCW1vdnEJ
JXJzcCwlcmF4Ci0JbW92cQklcjE1LCVyY3gKLQltb3ZsCSVlZHgsJXIxMGQKLQljYWxsCV9ic2Fl
c19rZXlfY29udmVydAotCXB4b3IJKCVyc3ApLCV4bW03Ci0JbW92ZHFhCSV4bW02LCglcmF4KQot
CW1vdmRxYQkleG1tNywoJXJzcCkKLQotCW1vdmRxdQkoJXJieCksJXhtbTE0Ci0Jc3VicQkkOCwl
cjE0Ci1MJGNiY19kZWNfbG9vcDoKLQltb3ZkcXUJMCglcjEyKSwleG1tMTUKLQltb3ZkcXUJMTYo
JXIxMiksJXhtbTAKLQltb3ZkcXUJMzIoJXIxMiksJXhtbTEKLQltb3ZkcXUJNDgoJXIxMiksJXht
bTIKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTMKLQltb3ZkcXUJODAoJXIxMiksJXhtbTQKLQltb3Zx
CSVyc3AsJXJheAotCW1vdmRxdQk5NiglcjEyKSwleG1tNQotCW1vdmwJJWVkeCwlcjEwZAotCW1v
dmRxdQkxMTIoJXIxMiksJXhtbTYKLQltb3ZkcWEJJXhtbTE0LDMyKCVyYnApCi0KLQljYWxsCV9i
c2Flc19kZWNyeXB0OAotCi0JcHhvcgkzMiglcmJwKSwleG1tMTUKLQltb3ZkcXUJMCglcjEyKSwl
eG1tNwotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTAKLQltb3ZkcXUJ
MzIoJXIxMiksJXhtbTkKLQlweG9yCSV4bW04LCV4bW01Ci0JbW92ZHF1CTQ4KCVyMTIpLCV4bW0x
MAotCXB4b3IJJXhtbTksJXhtbTMKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0JcHhvcgkleG1t
MTAsJXhtbTEKLQltb3ZkcXUJODAoJXIxMiksJXhtbTEyCi0JcHhvcgkleG1tMTEsJXhtbTYKLQlt
b3ZkcXUJOTYoJXIxMiksJXhtbTEzCi0JcHhvcgkleG1tMTIsJXhtbTIKLQltb3ZkcXUJMTEyKCVy
MTIpLCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW00Ci0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0J
bGVhcQkxMjgoJXIxMiksJXIxMgotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCW1vdmRxdQkleG1t
NSwzMiglcjEzKQotCW1vdmRxdQkleG1tMyw0OCglcjEzKQotCW1vdmRxdQkleG1tMSw2NCglcjEz
KQotCW1vdmRxdQkleG1tNiw4MCglcjEzKQotCW1vdmRxdQkleG1tMiw5NiglcjEzKQotCW1vdmRx
dQkleG1tNCwxMTIoJXIxMykKLQlsZWFxCTEyOCglcjEzKSwlcjEzCi0Jc3VicQkkOCwlcjE0Ci0J
am5jCUwkY2JjX2RlY19sb29wCi0KLQlhZGRxCSQ4LCVyMTQKLQlqeglMJGNiY19kZWNfZG9uZQot
Ci0JbW92ZHF1CTAoJXIxMiksJXhtbTE1Ci0JbW92cQklcnNwLCVyYXgKLQltb3ZsCSVlZHgsJXIx
MGQKLQljbXBxCSQyLCVyMTQKLQlqYglMJGNiY19kZWNfb25lCi0JbW92ZHF1CTE2KCVyMTIpLCV4
bW0wCi0JamUJTCRjYmNfZGVjX3R3bwotCW1vdmRxdQkzMiglcjEyKSwleG1tMQotCWNtcHEJJDQs
JXIxNAotCWpiCUwkY2JjX2RlY190aHJlZQotCW1vdmRxdQk0OCglcjEyKSwleG1tMgotCWplCUwk
Y2JjX2RlY19mb3VyCi0JbW92ZHF1CTY0KCVyMTIpLCV4bW0zCi0JY21wcQkkNiwlcjE0Ci0JamIJ
TCRjYmNfZGVjX2ZpdmUKLQltb3ZkcXUJODAoJXIxMiksJXhtbTQKLQlqZQlMJGNiY19kZWNfc2l4
Ci0JbW92ZHF1CTk2KCVyMTIpLCV4bW01Ci0JbW92ZHFhCSV4bW0xNCwzMiglcmJwKQotCWNhbGwJ
X2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgkzMiglcmJwKSwleG1tMTUKLQltb3ZkcXUJMCglcjEyKSwl
eG1tNwotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTAKLQltb3ZkcXUJ
MzIoJXIxMiksJXhtbTkKLQlweG9yCSV4bW04LCV4bW01Ci0JbW92ZHF1CTQ4KCVyMTIpLCV4bW0x
MAotCXB4b3IJJXhtbTksJXhtbTMKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0JcHhvcgkleG1t
MTAsJXhtbTEKLQltb3ZkcXUJODAoJXIxMiksJXhtbTEyCi0JcHhvcgkleG1tMTEsJXhtbTYKLQlt
b3ZkcXUJOTYoJXIxMiksJXhtbTE0Ci0JcHhvcgkleG1tMTIsJXhtbTIKLQltb3ZkcXUJJXhtbTE1
LDAoJXIxMykKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQltb3ZkcXUJJXhtbTUsMzIoJXIxMykK
LQltb3ZkcXUJJXhtbTMsNDgoJXIxMykKLQltb3ZkcXUJJXhtbTEsNjQoJXIxMykKLQltb3ZkcXUJ
JXhtbTYsODAoJXIxMykKLQltb3ZkcXUJJXhtbTIsOTYoJXIxMykKLQlqbXAJTCRjYmNfZGVjX2Rv
bmUKLS5wMmFsaWduCTQKLUwkY2JjX2RlY19zaXg6Ci0JbW92ZHFhCSV4bW0xNCwzMiglcmJwKQot
CWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgkzMiglcmJwKSwleG1tMTUKLQltb3ZkcXUJMCgl
cjEyKSwleG1tNwotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCXB4b3IJJXhtbTcsJXhtbTAKLQlt
b3ZkcXUJMzIoJXIxMiksJXhtbTkKLQlweG9yCSV4bW04LCV4bW01Ci0JbW92ZHF1CTQ4KCVyMTIp
LCV4bW0xMAotCXB4b3IJJXhtbTksJXhtbTMKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0JcHhv
cgkleG1tMTAsJXhtbTEKLQltb3ZkcXUJODAoJXIxMiksJXhtbTE0Ci0JcHhvcgkleG1tMTEsJXht
bTYKLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQltb3Zk
cXUJJXhtbTUsMzIoJXIxMykKLQltb3ZkcXUJJXhtbTMsNDgoJXIxMykKLQltb3ZkcXUJJXhtbTEs
NjQoJXIxMykKLQltb3ZkcXUJJXhtbTYsODAoJXIxMykKLQlqbXAJTCRjYmNfZGVjX2RvbmUKLS5w
MmFsaWduCTQKLUwkY2JjX2RlY19maXZlOgotCW1vdmRxYQkleG1tMTQsMzIoJXJicCkKLQljYWxs
CV9ic2Flc19kZWNyeXB0OAotCXB4b3IJMzIoJXJicCksJXhtbTE1Ci0JbW92ZHF1CTAoJXIxMiks
JXhtbTcKLQltb3ZkcXUJMTYoJXIxMiksJXhtbTgKLQlweG9yCSV4bW03LCV4bW0wCi0JbW92ZHF1
CTMyKCVyMTIpLCV4bW05Ci0JcHhvcgkleG1tOCwleG1tNQotCW1vdmRxdQk0OCglcjEyKSwleG1t
MTAKLQlweG9yCSV4bW05LCV4bW0zCi0JbW92ZHF1CTY0KCVyMTIpLCV4bW0xNAotCXB4b3IJJXht
bTEwLCV4bW0xCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JbW92ZHF1CSV4bW0wLDE2KCVyMTMp
Ci0JbW92ZHF1CSV4bW01LDMyKCVyMTMpCi0JbW92ZHF1CSV4bW0zLDQ4KCVyMTMpCi0JbW92ZHF1
CSV4bW0xLDY0KCVyMTMpCi0Jam1wCUwkY2JjX2RlY19kb25lCi0ucDJhbGlnbgk0Ci1MJGNiY19k
ZWNfZm91cjoKLQltb3ZkcWEJJXhtbTE0LDMyKCVyYnApCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgK
LQlweG9yCTMyKCVyYnApLCV4bW0xNQotCW1vdmRxdQkwKCVyMTIpLCV4bW03Ci0JbW92ZHF1CTE2
KCVyMTIpLCV4bW04Ci0JcHhvcgkleG1tNywleG1tMAotCW1vdmRxdQkzMiglcjEyKSwleG1tOQot
CXB4b3IJJXhtbTgsJXhtbTUKLQltb3ZkcXUJNDgoJXIxMiksJXhtbTE0Ci0JcHhvcgkleG1tOSwl
eG1tMwotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCW1v
dmRxdQkleG1tNSwzMiglcjEzKQotCW1vdmRxdQkleG1tMyw0OCglcjEzKQotCWptcAlMJGNiY19k
ZWNfZG9uZQotLnAyYWxpZ24JNAotTCRjYmNfZGVjX3RocmVlOgotCW1vdmRxYQkleG1tMTQsMzIo
JXJicCkKLQljYWxsCV9ic2Flc19kZWNyeXB0OAotCXB4b3IJMzIoJXJicCksJXhtbTE1Ci0JbW92
ZHF1CTAoJXIxMiksJXhtbTcKLQltb3ZkcXUJMTYoJXIxMiksJXhtbTgKLQlweG9yCSV4bW03LCV4
bW0wCi0JbW92ZHF1CTMyKCVyMTIpLCV4bW0xNAotCXB4b3IJJXhtbTgsJXhtbTUKLQltb3ZkcXUJ
JXhtbTE1LDAoJXIxMykKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykKLQltb3ZkcXUJJXhtbTUsMzIo
JXIxMykKLQlqbXAJTCRjYmNfZGVjX2RvbmUKLS5wMmFsaWduCTQKLUwkY2JjX2RlY190d286Ci0J
bW92ZHFhCSV4bW0xNCwzMiglcmJwKQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgkzMigl
cmJwKSwleG1tMTUKLQltb3ZkcXUJMCglcjEyKSwleG1tNwotCW1vdmRxdQkxNiglcjEyKSwleG1t
MTQKLQlweG9yCSV4bW03LCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JbW92ZHF1CSV4
bW0wLDE2KCVyMTMpCi0Jam1wCUwkY2JjX2RlY19kb25lCi0ucDJhbGlnbgk0Ci1MJGNiY19kZWNf
b25lOgotCWxlYXEJKCVyMTIpLCVyZGkKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQlsZWFxCSglcjE1
KSwlcmR4Ci0JY2FsbAlfYWVzX25vaHdfZGVjcnlwdAotCXB4b3IJMzIoJXJicCksJXhtbTE0Ci0J
bW92ZHF1CSV4bW0xNCwoJXIxMykKLQltb3ZkcWEJJXhtbTE1LCV4bW0xNAotCi1MJGNiY19kZWNf
ZG9uZToKLQltb3ZkcXUJJXhtbTE0LCglcmJ4KQotCWxlYXEJKCVyc3ApLCVyYXgKLQlweG9yCSV4
bW0wLCV4bW0wCi1MJGNiY19kZWNfYnplcm86Ci0JbW92ZHFhCSV4bW0wLDAoJXJheCkKLQltb3Zk
cWEJJXhtbTAsMTYoJXJheCkKLQlsZWFxCTMyKCVyYXgpLCVyYXgKLQljbXBxCSVyYXgsJXJicAot
CWphCUwkY2JjX2RlY19iemVybwotCi0JbGVhcQkxMjAoJXJicCksJXJheAotCi0JbW92cQktNDgo
JXJheCksJXIxNQotCi0JbW92cQktNDAoJXJheCksJXIxNAotCi0JbW92cQktMzIoJXJheCksJXIx
MwotCi0JbW92cQktMjQoJXJheCksJXIxMgotCi0JbW92cQktMTYoJXJheCksJXJieAotCi0JbW92
cQktOCglcmF4KSwlcmJwCi0KLQlsZWFxCSglcmF4KSwlcnNwCi0KLUwkY2JjX2RlY19lcGlsb2d1
ZToKLQkuYnl0ZQkweGYzLDB4YzMKLQotCi0KLS5nbG9ibAlfYnNhZXNfY3RyMzJfZW5jcnlwdF9i
bG9ja3MKLS5wcml2YXRlX2V4dGVybiBfYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKLQotLnAy
YWxpZ24JNAotX2JzYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzOgotCi0JbW92cQklcnNwLCVyYXgK
LUwkY3RyX2VuY19wcm9sb2d1ZToKLQlwdXNocQklcmJwCi0KLQlwdXNocQklcmJ4Ci0KLQlwdXNo
cQklcjEyCi0KLQlwdXNocQklcjEzCi0KLQlwdXNocQklcjE0Ci0KLQlwdXNocQklcjE1Ci0KLQls
ZWFxCS03MiglcnNwKSwlcnNwCi0KLQltb3ZxCSVyc3AsJXJicAotCi0JbW92ZHF1CSglcjgpLCV4
bW0wCi0JbW92bAkyNDAoJXJjeCksJWVheAotCW1vdnEJJXJkaSwlcjEyCi0JbW92cQklcnNpLCVy
MTMKLQltb3ZxCSVyZHgsJXIxNAotCW1vdnEJJXJjeCwlcjE1Ci0JbW92ZHFhCSV4bW0wLDMyKCVy
YnApCi0JY21wcQkkOCwlcmR4Ci0JamIJTCRjdHJfZW5jX3Nob3J0Ci0KLQltb3ZsCSVlYXgsJWVi
eAotCXNobHEJJDcsJXJheAotCXN1YnEJJDk2LCVyYXgKLQlzdWJxCSVyYXgsJXJzcAotCi0JbW92
cQklcnNwLCVyYXgKLQltb3ZxCSVyMTUsJXJjeAotCW1vdmwJJWVieCwlcjEwZAotCWNhbGwJX2Jz
YWVzX2tleV9jb252ZXJ0Ci0JcHhvcgkleG1tNiwleG1tNwotCW1vdmRxYQkleG1tNywoJXJheCkK
LQotCW1vdmRxYQkoJXJzcCksJXhtbTgKLQlsZWFxCUwkQUREMSglcmlwKSwlcjExCi0JbW92ZHFh
CTMyKCVyYnApLCV4bW0xNQotCW1vdmRxYQktMzIoJXIxMSksJXhtbTcKLS5ieXRlCTEwMiw2OCwx
NSw1NiwwLDE5OQotLmJ5dGUJMTAyLDY4LDE1LDU2LDAsMjU1Ci0JbW92ZHFhCSV4bW04LCglcnNw
KQotCWptcAlMJGN0cl9lbmNfbG9vcAotLnAyYWxpZ24JNAotTCRjdHJfZW5jX2xvb3A6Ci0JbW92
ZHFhCSV4bW0xNSwzMiglcmJwKQotCW1vdmRxYQkleG1tMTUsJXhtbTAKLQltb3ZkcWEJJXhtbTE1
LCV4bW0xCi0JcGFkZGQJMCglcjExKSwleG1tMAotCW1vdmRxYQkleG1tMTUsJXhtbTIKLQlwYWRk
ZAkxNiglcjExKSwleG1tMQotCW1vdmRxYQkleG1tMTUsJXhtbTMKLQlwYWRkZAkzMiglcjExKSwl
eG1tMgotCW1vdmRxYQkleG1tMTUsJXhtbTQKLQlwYWRkZAk0OCglcjExKSwleG1tMwotCW1vdmRx
YQkleG1tMTUsJXhtbTUKLQlwYWRkZAk2NCglcjExKSwleG1tNAotCW1vdmRxYQkleG1tMTUsJXht
bTYKLQlwYWRkZAk4MCglcjExKSwleG1tNQotCXBhZGRkCTk2KCVyMTEpLCV4bW02Ci0KLQotCi0J
bW92ZHFhCSglcnNwKSwleG1tOAotCWxlYXEJMTYoJXJzcCksJXJheAotCW1vdmRxYQktMTYoJXIx
MSksJXhtbTcKLQlweG9yCSV4bW04LCV4bW0xNQotCXB4b3IJJXhtbTgsJXhtbTAKLQlweG9yCSV4
bW04LCV4bW0xCi0JcHhvcgkleG1tOCwleG1tMgotLmJ5dGUJMTAyLDY4LDE1LDU2LDAsMjU1Ci0u
Ynl0ZQkxMDIsMTUsNTYsMCwxOTkKLQlweG9yCSV4bW04LCV4bW0zCi0JcHhvcgkleG1tOCwleG1t
NAotLmJ5dGUJMTAyLDE1LDU2LDAsMjA3Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMTUKLQlweG9yCSV4
bW04LCV4bW01Ci0JcHhvcgkleG1tOCwleG1tNgotLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCi0uYnl0
ZQkxMDIsMTUsNTYsMCwyMzEKLS5ieXRlCTEwMiwxNSw1NiwwLDIzOQotLmJ5dGUJMTAyLDE1LDU2
LDAsMjQ3Ci0JbGVhcQlMJEJTMCglcmlwKSwlcjExCi0JbW92bAklZWJ4LCVyMTBkCi0KLQljYWxs
CV9ic2Flc19lbmNyeXB0OF9iaXRzbGljZQotCi0Jc3VicQkkOCwlcjE0Ci0JamMJTCRjdHJfZW5j
X2xvb3BfZG9uZQotCi0JbW92ZHF1CTAoJXIxMiksJXhtbTcKLQltb3ZkcXUJMTYoJXIxMiksJXht
bTgKLQltb3ZkcXUJMzIoJXIxMiksJXhtbTkKLQltb3ZkcXUJNDgoJXIxMiksJXhtbTEwCi0JbW92
ZHF1CTY0KCVyMTIpLCV4bW0xMQotCW1vdmRxdQk4MCglcjEyKSwleG1tMTIKLQltb3ZkcXUJOTYo
JXIxMiksJXhtbTEzCi0JbW92ZHF1CTExMiglcjEyKSwleG1tMTQKLQlsZWFxCTEyOCglcjEyKSwl
cjEyCi0JcHhvcgkleG1tMTUsJXhtbTcKLQltb3ZkcWEJMzIoJXJicCksJXhtbTE1Ci0JcHhvcgkl
eG1tOCwleG1tMAotCW1vdmRxdQkleG1tNywwKCVyMTMpCi0JcHhvcgkleG1tOSwleG1tMwotCW1v
dmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJJXhtbTEwLCV4bW01Ci0JbW92ZHF1CSV4bW0zLDMy
KCVyMTMpCi0JcHhvcgkleG1tMTEsJXhtbTIKLQltb3ZkcXUJJXhtbTUsNDgoJXIxMykKLQlweG9y
CSV4bW0xMiwleG1tNgotCW1vdmRxdQkleG1tMiw2NCglcjEzKQotCXB4b3IJJXhtbTEzLCV4bW0x
Ci0JbW92ZHF1CSV4bW02LDgwKCVyMTMpCi0JcHhvcgkleG1tMTQsJXhtbTQKLQltb3ZkcXUJJXht
bTEsOTYoJXIxMykKLQlsZWFxCUwkQUREMSglcmlwKSwlcjExCi0JbW92ZHF1CSV4bW00LDExMigl
cjEzKQotCWxlYXEJMTI4KCVyMTMpLCVyMTMKLQlwYWRkZAkxMTIoJXIxMSksJXhtbTE1Ci0Jam56
CUwkY3RyX2VuY19sb29wCi0KLQlqbXAJTCRjdHJfZW5jX2RvbmUKLS5wMmFsaWduCTQKLUwkY3Ry
X2VuY19sb29wX2RvbmU6Ci0JYWRkcQkkOCwlcjE0Ci0JbW92ZHF1CTAoJXIxMiksJXhtbTcKLQlw
eG9yCSV4bW03LCV4bW0xNQotCW1vdmRxdQkleG1tMTUsMCglcjEzKQotCWNtcHEJJDIsJXIxNAot
CWpiCUwkY3RyX2VuY19kb25lCi0JbW92ZHF1CTE2KCVyMTIpLCV4bW04Ci0JcHhvcgkleG1tOCwl
eG1tMAotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCWplCUwkY3RyX2VuY19kb25lCi0JbW92ZHF1
CTMyKCVyMTIpLCV4bW05Ci0JcHhvcgkleG1tOSwleG1tMwotCW1vdmRxdQkleG1tMywzMiglcjEz
KQotCWNtcHEJJDQsJXIxNAotCWpiCUwkY3RyX2VuY19kb25lCi0JbW92ZHF1CTQ4KCVyMTIpLCV4
bW0xMAotCXB4b3IJJXhtbTEwLCV4bW01Ci0JbW92ZHF1CSV4bW01LDQ4KCVyMTMpCi0JamUJTCRj
dHJfZW5jX2RvbmUKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0JcHhvcgkleG1tMTEsJXhtbTIK
LQltb3ZkcXUJJXhtbTIsNjQoJXIxMykKLQljbXBxCSQ2LCVyMTQKLQlqYglMJGN0cl9lbmNfZG9u
ZQotCW1vdmRxdQk4MCglcjEyKSwleG1tMTIKLQlweG9yCSV4bW0xMiwleG1tNgotCW1vdmRxdQkl
eG1tNiw4MCglcjEzKQotCWplCUwkY3RyX2VuY19kb25lCi0JbW92ZHF1CTk2KCVyMTIpLCV4bW0x
MwotCXB4b3IJJXhtbTEzLCV4bW0xCi0JbW92ZHF1CSV4bW0xLDk2KCVyMTMpCi0Jam1wCUwkY3Ry
X2VuY19kb25lCi0KLS5wMmFsaWduCTQKLUwkY3RyX2VuY19zaG9ydDoKLQlsZWFxCTMyKCVyYnAp
LCVyZGkKLQlsZWFxCTQ4KCVyYnApLCVyc2kKLQlsZWFxCSglcjE1KSwlcmR4Ci0JY2FsbAlfYWVz
X25vaHdfZW5jcnlwdAotCW1vdmRxdQkoJXIxMiksJXhtbTAKLQlsZWFxCTE2KCVyMTIpLCVyMTIK
LQltb3ZsCTQ0KCVyYnApLCVlYXgKLQlic3dhcGwJJWVheAotCXB4b3IJNDgoJXJicCksJXhtbTAK
LQlpbmNsCSVlYXgKLQltb3ZkcXUJJXhtbTAsKCVyMTMpCi0JYnN3YXBsCSVlYXgKLQlsZWFxCTE2
KCVyMTMpLCVyMTMKLQltb3ZsCSVlYXgsNDQoJXJzcCkKLQlkZWNxCSVyMTQKLQlqbnoJTCRjdHJf
ZW5jX3Nob3J0Ci0KLUwkY3RyX2VuY19kb25lOgotCWxlYXEJKCVyc3ApLCVyYXgKLQlweG9yCSV4
bW0wLCV4bW0wCi1MJGN0cl9lbmNfYnplcm86Ci0JbW92ZHFhCSV4bW0wLDAoJXJheCkKLQltb3Zk
cWEJJXhtbTAsMTYoJXJheCkKLQlsZWFxCTMyKCVyYXgpLCVyYXgKLQljbXBxCSVyYXgsJXJicAot
CWphCUwkY3RyX2VuY19iemVybwotCi0JbGVhcQkxMjAoJXJicCksJXJheAotCi0JbW92cQktNDgo
JXJheCksJXIxNQotCi0JbW92cQktNDAoJXJheCksJXIxNAotCi0JbW92cQktMzIoJXJheCksJXIx
MwotCi0JbW92cQktMjQoJXJheCksJXIxMgotCi0JbW92cQktMTYoJXJheCksJXJieAotCi0JbW92
cQktOCglcmF4KSwlcmJwCi0KLQlsZWFxCSglcmF4KSwlcnNwCi0KLUwkY3RyX2VuY19lcGlsb2d1
ZToKLQkuYnl0ZQkweGYzLDB4YzMKLQotCi0uZ2xvYmwJX2JzYWVzX3h0c19lbmNyeXB0Ci0ucHJp
dmF0ZV9leHRlcm4gX2JzYWVzX3h0c19lbmNyeXB0Ci0KLS5wMmFsaWduCTQKLV9ic2Flc194dHNf
ZW5jcnlwdDoKLQotCW1vdnEJJXJzcCwlcmF4Ci1MJHh0c19lbmNfcHJvbG9ndWU6Ci0JcHVzaHEJ
JXJicAotCi0JcHVzaHEJJXJieAotCi0JcHVzaHEJJXIxMgotCi0JcHVzaHEJJXIxMwotCi0JcHVz
aHEJJXIxNAotCi0JcHVzaHEJJXIxNQotCi0JbGVhcQktNzIoJXJzcCksJXJzcAotCi0JbW92cQkl
cnNwLCVyYnAKLQotCW1vdnEJJXJkaSwlcjEyCi0JbW92cQklcnNpLCVyMTMKLQltb3ZxCSVyZHgs
JXIxNAotCW1vdnEJJXJjeCwlcjE1Ci0KLQlsZWFxCSglcjkpLCVyZGkKLQlsZWFxCTMyKCVyYnAp
LCVyc2kKLQlsZWFxCSglcjgpLCVyZHgKLQljYWxsCV9hZXNfbm9od19lbmNyeXB0Ci0KLQltb3Zs
CTI0MCglcjE1KSwlZWF4Ci0JbW92cQklcjE0LCVyYngKLQotCW1vdmwJJWVheCwlZWR4Ci0Jc2hs
cQkkNywlcmF4Ci0Jc3VicQkkOTYsJXJheAotCXN1YnEJJXJheCwlcnNwCi0KLQltb3ZxCSVyc3As
JXJheAotCW1vdnEJJXIxNSwlcmN4Ci0JbW92bAklZWR4LCVyMTBkCi0JY2FsbAlfYnNhZXNfa2V5
X2NvbnZlcnQKLQlweG9yCSV4bW02LCV4bW03Ci0JbW92ZHFhCSV4bW03LCglcmF4KQotCi0JYW5k
cQkkLTE2LCVyMTQKLQlzdWJxCSQweDgwLCVyc3AKLQltb3ZkcWEJMzIoJXJicCksJXhtbTYKLQot
CXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQlMJHh0c19tYWdpYyglcmlwKSwleG1tMTIKLQlw
Y21wZ3RkCSV4bW02LCV4bW0xNAotCi0Jc3VicQkkMHg4MCwlcjE0Ci0JamMJTCR4dHNfZW5jX3No
b3J0Ci0Jam1wCUwkeHRzX2VuY19sb29wCi0KLS5wMmFsaWduCTQKLUwkeHRzX2VuY19sb29wOgot
CXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFh
CSV4bW02LCV4bW0xNQotCW1vdmRxYQkleG1tNiwwKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYK
LQlwYW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEz
LCV4bW02Ci0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQK
LQltb3ZkcWEJJXhtbTYsJXhtbTAKLQltb3ZkcWEJJXhtbTYsMTYoJXJzcCkKLQlwYWRkcQkleG1t
NiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhv
cgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJMCglcjEyKSwleG1tNwotCXBzaHVmZAkkMHgxMywleG1t
MTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW0xCi0JbW92
ZHFhCSV4bW02LDMyKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1t
MTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTE2
KCVyMTIpLCV4bW04Ci0JcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4
bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMgotCW1vdmRxYQkl
eG1tNiw0OCglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0J
cGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQkzMiglcjEy
KSwleG1tOQotCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwot
CXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMwotCW1vdmRxYQkleG1tNiw2
NCglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0
ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQk0OCglcjEyKSwleG1t
MTAKLQlweG9yCSV4bW05LCV4bW0xCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9y
CSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTQKLQltb3ZkcWEJJXhtbTYsODAoJXJz
cCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXht
bTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0J
cHhvcgkleG1tMTAsJXhtbTIKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXht
bTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tNQotCW1vdmRxYQkleG1tNiw5NiglcnNwKQot
CXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwl
eG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQk4MCglcjEyKSwleG1tMTIKLQlweG9y
CSV4bW0xMSwleG1tMwotCW1vdmRxdQk5NiglcjEyKSwleG1tMTMKLQlweG9yCSV4bW0xMiwleG1t
NAotCW1vdmRxdQkxMTIoJXIxMiksJXhtbTE0Ci0JbGVhcQkxMjgoJXIxMiksJXIxMgotCW1vdmRx
YQkleG1tNiwxMTIoJXJzcCkKLQlweG9yCSV4bW0xMywleG1tNQotCWxlYXEJMTI4KCVyc3ApLCVy
YXgKLQlweG9yCSV4bW0xNCwleG1tNgotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNf
ZW5jcnlwdDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0J
bW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1tMwotCW1vdmRxdQkleG1t
MCwxNiglcjEzKQotCXB4b3IJNDgoJXJzcCksJXhtbTUKLQltb3ZkcXUJJXhtbTMsMzIoJXIxMykK
LQlweG9yCTY0KCVyc3ApLCV4bW0yCi0JbW92ZHF1CSV4bW01LDQ4KCVyMTMpCi0JcHhvcgk4MCgl
cnNwKSwleG1tNgotCW1vdmRxdQkleG1tMiw2NCglcjEzKQotCXB4b3IJOTYoJXJzcCksJXhtbTEK
LQltb3ZkcXUJJXhtbTYsODAoJXIxMykKLQlweG9yCTExMiglcnNwKSwleG1tNAotCW1vdmRxdQkl
eG1tMSw5NiglcjEzKQotCW1vdmRxdQkleG1tNCwxMTIoJXIxMykKLQlsZWFxCTEyOCglcjEzKSwl
cjEzCi0KLQltb3ZkcWEJMTEyKCVyc3ApLCV4bW02Ci0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92
ZHFhCUwkeHRzX21hZ2ljKCVyaXApLCV4bW0xMgotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHNo
dWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQlwYWRkcQkleG1t
NiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhv
cgkleG1tMTMsJXhtbTYKLQotCXN1YnEJJDB4ODAsJXIxNAotCWpuYwlMJHh0c19lbmNfbG9vcAot
Ci1MJHh0c19lbmNfc2hvcnQ6Ci0JYWRkcQkkMHg4MCwlcjE0Ci0JanoJTCR4dHNfZW5jX2RvbmUK
LQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRx
YQkleG1tNiwleG1tMTUKLQltb3ZkcWEJJXhtbTYsMCglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02
Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0x
MywleG1tNgotCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0
Ci0JbW92ZHFhCSV4bW02LCV4bW0wCi0JbW92ZHFhCSV4bW02LDE2KCVyc3ApCi0JcGFkZHEJJXht
bTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4
b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTAoJXIxMiksJXhtbTcKLQljbXBxCSQxNiwlcjE0Ci0J
amUJTCR4dHNfZW5jXzEKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0
LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMQotCW1vdmRxYQkleG1tNiwzMiglcnNwKQotCXBh
ZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1t
MTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCWNtcHEJJDMy
LCVyMTQKLQlqZQlMJHh0c19lbmNfMgotCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQweDEz
LCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTIK
LQltb3ZkcWEJJXhtbTYsNDgoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEy
LCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3Zk
cXUJMzIoJXIxMiksJXhtbTkKLQljbXBxCSQ0OCwlcjE0Ci0JamUJTCR4dHNfZW5jXzMKLQlweG9y
CSV4bW04LCV4bW0wCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwl
eG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTMKLQltb3ZkcWEJJXhtbTYsNjQoJXJzcCkKLQlwYWRk
cQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0
Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJNDgoJXIxMiksJXhtbTEwCi0JY21wcQkkNjQs
JXIxNAotCWplCUwkeHRzX2VuY180Ci0JcHhvcgkleG1tOSwleG1tMQotCXBzaHVmZAkkMHgxMywl
eG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW00Ci0J
bW92ZHFhCSV4bW02LDgwKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwl
eG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1
CTY0KCVyMTIpLCV4bW0xMQotCWNtcHEJJDgwLCVyMTQKLQlqZQlMJHh0c19lbmNfNQotCXB4b3IJ
JXhtbTEwLCV4bW0yCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwl
eG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTUKLQltb3ZkcWEJJXhtbTYsOTYoJXJzcCkKLQlwYWRk
cQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0
Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJODAoJXIxMiksJXhtbTEyCi0JY21wcQkkOTYs
JXIxNAotCWplCUwkeHRzX2VuY182Ci0JcHhvcgkleG1tMTEsJXhtbTMKLQltb3ZkcXUJOTYoJXIx
MiksJXhtbTEzCi0JcHhvcgkleG1tMTIsJXhtbTQKLQltb3ZkcWEJJXhtbTYsMTEyKCVyc3ApCi0J
bGVhcQkxMTIoJXIxMiksJXIxMgotCXB4b3IJJXhtbTEzLCV4bW01Ci0JbGVhcQkxMjgoJXJzcCks
JXJheAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZW5jcnlwdDgKLQotCXB4b3IJ
MCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVy
MTMpCi0JcHhvcgkzMiglcnNwKSwleG1tMwotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJ
NDgoJXJzcCksJXhtbTUKLQltb3ZkcXUJJXhtbTMsMzIoJXIxMykKLQlweG9yCTY0KCVyc3ApLCV4
bW0yCi0JbW92ZHF1CSV4bW01LDQ4KCVyMTMpCi0JcHhvcgk4MCglcnNwKSwleG1tNgotCW1vdmRx
dQkleG1tMiw2NCglcjEzKQotCXB4b3IJOTYoJXJzcCksJXhtbTEKLQltb3ZkcXUJJXhtbTYsODAo
JXIxMykKLQltb3ZkcXUJJXhtbTEsOTYoJXIxMykKLQlsZWFxCTExMiglcjEzKSwlcjEzCi0KLQlt
b3ZkcWEJMTEyKCVyc3ApLCV4bW02Ci0Jam1wCUwkeHRzX2VuY19kb25lCi0ucDJhbGlnbgk0Ci1M
JHh0c19lbmNfNjoKLQlweG9yCSV4bW0xMSwleG1tMwotCWxlYXEJOTYoJXIxMiksJXIxMgotCXB4
b3IJJXhtbTEyLCV4bW00Ci0JbGVhcQkxMjgoJXJzcCksJXJheAotCW1vdmwJJWVkeCwlcjEwZAot
Ci0JY2FsbAlfYnNhZXNfZW5jcnlwdDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2
KCVyc3ApLCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1t
MwotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJNDgoJXJzcCksJXhtbTUKLQltb3ZkcXUJ
JXhtbTMsMzIoJXIxMykKLQlweG9yCTY0KCVyc3ApLCV4bW0yCi0JbW92ZHF1CSV4bW01LDQ4KCVy
MTMpCi0JcHhvcgk4MCglcnNwKSwleG1tNgotCW1vdmRxdQkleG1tMiw2NCglcjEzKQotCW1vdmRx
dQkleG1tNiw4MCglcjEzKQotCWxlYXEJOTYoJXIxMyksJXIxMwotCi0JbW92ZHFhCTk2KCVyc3Ap
LCV4bW02Ci0Jam1wCUwkeHRzX2VuY19kb25lCi0ucDJhbGlnbgk0Ci1MJHh0c19lbmNfNToKLQlw
eG9yCSV4bW0xMCwleG1tMgotCWxlYXEJODAoJXIxMiksJXIxMgotCXB4b3IJJXhtbTExLCV4bW0z
Ci0JbGVhcQkxMjgoJXJzcCksJXJheAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNf
ZW5jcnlwdDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0J
bW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1tMwotCW1vdmRxdQkleG1t
MCwxNiglcjEzKQotCXB4b3IJNDgoJXJzcCksJXhtbTUKLQltb3ZkcXUJJXhtbTMsMzIoJXIxMykK
LQlweG9yCTY0KCVyc3ApLCV4bW0yCi0JbW92ZHF1CSV4bW01LDQ4KCVyMTMpCi0JbW92ZHF1CSV4
bW0yLDY0KCVyMTMpCi0JbGVhcQk4MCglcjEzKSwlcjEzCi0KLQltb3ZkcWEJODAoJXJzcCksJXht
bTYKLQlqbXAJTCR4dHNfZW5jX2RvbmUKLS5wMmFsaWduCTQKLUwkeHRzX2VuY180OgotCXB4b3IJ
JXhtbTksJXhtbTEKLQlsZWFxCTY0KCVyMTIpLCVyMTIKLQlweG9yCSV4bW0xMCwleG1tMgotCWxl
YXEJMTI4KCVyc3ApLCVyYXgKLQltb3ZsCSVlZHgsJXIxMGQKLQotCWNhbGwJX2JzYWVzX2VuY3J5
cHQ4Ci0KLQlweG9yCTAoJXJzcCksJXhtbTE1Ci0JcHhvcgkxNiglcnNwKSwleG1tMAotCW1vdmRx
dQkleG1tMTUsMCglcjEzKQotCXB4b3IJMzIoJXJzcCksJXhtbTMKLQltb3ZkcXUJJXhtbTAsMTYo
JXIxMykKLQlweG9yCTQ4KCVyc3ApLCV4bW01Ci0JbW92ZHF1CSV4bW0zLDMyKCVyMTMpCi0JbW92
ZHF1CSV4bW01LDQ4KCVyMTMpCi0JbGVhcQk2NCglcjEzKSwlcjEzCi0KLQltb3ZkcWEJNjQoJXJz
cCksJXhtbTYKLQlqbXAJTCR4dHNfZW5jX2RvbmUKLS5wMmFsaWduCTQKLUwkeHRzX2VuY18zOgot
CXB4b3IJJXhtbTgsJXhtbTAKLQlsZWFxCTQ4KCVyMTIpLCVyMTIKLQlweG9yCSV4bW05LCV4bW0x
Ci0JbGVhcQkxMjgoJXJzcCksJXJheAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNf
ZW5jcnlwdDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0J
bW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1tMwotCW1vdmRxdQkleG1t
MCwxNiglcjEzKQotCW1vdmRxdQkleG1tMywzMiglcjEzKQotCWxlYXEJNDgoJXIxMyksJXIxMwot
Ci0JbW92ZHFhCTQ4KCVyc3ApLCV4bW02Ci0Jam1wCUwkeHRzX2VuY19kb25lCi0ucDJhbGlnbgk0
Ci1MJHh0c19lbmNfMjoKLQlweG9yCSV4bW03LCV4bW0xNQotCWxlYXEJMzIoJXIxMiksJXIxMgot
CXB4b3IJJXhtbTgsJXhtbTAKLQlsZWFxCTEyOCglcnNwKSwlcmF4Ci0JbW92bAklZWR4LCVyMTBk
Ci0KLQljYWxsCV9ic2Flc19lbmNyeXB0OAotCi0JcHhvcgkwKCVyc3ApLCV4bW0xNQotCXB4b3IJ
MTYoJXJzcCksJXhtbTAKLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQltb3ZkcXUJJXhtbTAsMTYo
JXIxMykKLQlsZWFxCTMyKCVyMTMpLCVyMTMKLQotCW1vdmRxYQkzMiglcnNwKSwleG1tNgotCWpt
cAlMJHh0c19lbmNfZG9uZQotLnAyYWxpZ24JNAotTCR4dHNfZW5jXzE6Ci0JcHhvcgkleG1tMTUs
JXhtbTcKLQlsZWFxCTE2KCVyMTIpLCVyMTIKLQltb3ZkcWEJJXhtbTcsMzIoJXJicCkKLQlsZWFx
CTMyKCVyYnApLCVyZGkKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQlsZWFxCSglcjE1KSwlcmR4Ci0J
Y2FsbAlfYWVzX25vaHdfZW5jcnlwdAotCXB4b3IJMzIoJXJicCksJXhtbTE1Ci0KLQotCi0KLQot
CW1vdmRxdQkleG1tMTUsMCglcjEzKQotCWxlYXEJMTYoJXIxMyksJXIxMwotCi0JbW92ZHFhCTE2
KCVyc3ApLCV4bW02Ci0KLUwkeHRzX2VuY19kb25lOgotCWFuZGwJJDE1LCVlYngKLQlqeglMJHh0
c19lbmNfcmV0Ci0JbW92cQklcjEzLCVyZHgKLQotTCR4dHNfZW5jX3N0ZWFsOgotCW1vdnpibAko
JXIxMiksJWVheAotCW1vdnpibAktMTYoJXJkeCksJWVjeAotCWxlYXEJMSglcjEyKSwlcjEyCi0J
bW92YgklYWwsLTE2KCVyZHgpCi0JbW92YgklY2wsMCglcmR4KQotCWxlYXEJMSglcmR4KSwlcmR4
Ci0Jc3VibAkkMSwlZWJ4Ci0Jam56CUwkeHRzX2VuY19zdGVhbAotCi0JbW92ZHF1CS0xNiglcjEz
KSwleG1tMTUKLQlsZWFxCTMyKCVyYnApLCVyZGkKLQlweG9yCSV4bW02LCV4bW0xNQotCWxlYXEJ
MzIoJXJicCksJXJzaQotCW1vdmRxYQkleG1tMTUsMzIoJXJicCkKLQlsZWFxCSglcjE1KSwlcmR4
Ci0JY2FsbAlfYWVzX25vaHdfZW5jcnlwdAotCXB4b3IJMzIoJXJicCksJXhtbTYKLQltb3ZkcXUJ
JXhtbTYsLTE2KCVyMTMpCi0KLUwkeHRzX2VuY19yZXQ6Ci0JbGVhcQkoJXJzcCksJXJheAotCXB4
b3IJJXhtbTAsJXhtbTAKLUwkeHRzX2VuY19iemVybzoKLQltb3ZkcWEJJXhtbTAsMCglcmF4KQot
CW1vdmRxYQkleG1tMCwxNiglcmF4KQotCWxlYXEJMzIoJXJheCksJXJheAotCWNtcHEJJXJheCwl
cmJwCi0JamEJTCR4dHNfZW5jX2J6ZXJvCi0KLQlsZWFxCTEyMCglcmJwKSwlcmF4Ci0KLQltb3Zx
CS00OCglcmF4KSwlcjE1Ci0KLQltb3ZxCS00MCglcmF4KSwlcjE0Ci0KLQltb3ZxCS0zMiglcmF4
KSwlcjEzCi0KLQltb3ZxCS0yNCglcmF4KSwlcjEyCi0KLQltb3ZxCS0xNiglcmF4KSwlcmJ4Ci0K
LQltb3ZxCS04KCVyYXgpLCVyYnAKLQotCWxlYXEJKCVyYXgpLCVyc3AKLQotTCR4dHNfZW5jX2Vw
aWxvZ3VlOgotCS5ieXRlCTB4ZjMsMHhjMwotCi0KLQotLmdsb2JsCV9ic2Flc194dHNfZGVjcnlw
dAotLnByaXZhdGVfZXh0ZXJuIF9ic2Flc194dHNfZGVjcnlwdAotCi0ucDJhbGlnbgk0Ci1fYnNh
ZXNfeHRzX2RlY3J5cHQ6Ci0KLQltb3ZxCSVyc3AsJXJheAotTCR4dHNfZGVjX3Byb2xvZ3VlOgot
CXB1c2hxCSVyYnAKLQotCXB1c2hxCSVyYngKLQotCXB1c2hxCSVyMTIKLQotCXB1c2hxCSVyMTMK
LQotCXB1c2hxCSVyMTQKLQotCXB1c2hxCSVyMTUKLQotCWxlYXEJLTcyKCVyc3ApLCVyc3AKLQot
CW1vdnEJJXJzcCwlcmJwCi0JbW92cQklcmRpLCVyMTIKLQltb3ZxCSVyc2ksJXIxMwotCW1vdnEJ
JXJkeCwlcjE0Ci0JbW92cQklcmN4LCVyMTUKLQotCWxlYXEJKCVyOSksJXJkaQotCWxlYXEJMzIo
JXJicCksJXJzaQotCWxlYXEJKCVyOCksJXJkeAotCWNhbGwJX2Flc19ub2h3X2VuY3J5cHQKLQot
CW1vdmwJMjQwKCVyMTUpLCVlYXgKLQltb3ZxCSVyMTQsJXJieAotCi0JbW92bAklZWF4LCVlZHgK
LQlzaGxxCSQ3LCVyYXgKLQlzdWJxCSQ5NiwlcmF4Ci0Jc3VicQklcmF4LCVyc3AKLQotCW1vdnEJ
JXJzcCwlcmF4Ci0JbW92cQklcjE1LCVyY3gKLQltb3ZsCSVlZHgsJXIxMGQKLQljYWxsCV9ic2Fl
c19rZXlfY29udmVydAotCXB4b3IJKCVyc3ApLCV4bW03Ci0JbW92ZHFhCSV4bW02LCglcmF4KQot
CW1vdmRxYQkleG1tNywoJXJzcCkKLQotCXhvcmwJJWVheCwlZWF4Ci0JYW5kcQkkLTE2LCVyMTQK
LQl0ZXN0bAkkMTUsJWVieAotCXNldG56CSVhbAotCXNobHEJJDQsJXJheAotCXN1YnEJJXJheCwl
cjE0Ci0KLQlzdWJxCSQweDgwLCVyc3AKLQltb3ZkcWEJMzIoJXJicCksJXhtbTYKLQotCXB4b3IJ
JXhtbTE0LCV4bW0xNAotCW1vdmRxYQlMJHh0c19tYWdpYyglcmlwKSwleG1tMTIKLQlwY21wZ3Rk
CSV4bW02LCV4bW0xNAotCi0Jc3VicQkkMHg4MCwlcjE0Ci0JamMJTCR4dHNfZGVjX3Nob3J0Ci0J
am1wCUwkeHRzX2RlY19sb29wCi0KLS5wMmFsaWduCTQKLUwkeHRzX2RlY19sb29wOgotCXBzaHVm
ZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02
LCV4bW0xNQotCW1vdmRxYQkleG1tNiwwKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5k
CSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02
Ci0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3Zk
cWEJJXhtbTYsJXhtbTAKLQltb3ZkcWEJJXhtbTYsMTYoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1t
NgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1t
MTMsJXhtbTYKLQltb3ZkcXUJMCglcjEyKSwleG1tNwotCXBzaHVmZAkkMHgxMywleG1tMTQsJXht
bTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW0xCi0JbW92ZHFhCSV4
bW02LDMyKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlw
Y21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTE2KCVyMTIp
LCV4bW04Ci0JcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwot
CXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMgotCW1vdmRxYQkleG1tNiw0
OCglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0
ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQkzMiglcjEyKSwleG1t
OQotCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJ
JXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1tNiwleG1tMwotCW1vdmRxYQkleG1tNiw2NCglcnNw
KQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1t
NiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQk0OCglcjEyKSwleG1tMTAKLQlw
eG9yCSV4bW05LCV4bW0xCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0x
NCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTQKLQltb3ZkcWEJJXhtbTYsODAoJXJzcCkKLQlw
YWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXht
bTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJNjQoJXIxMiksJXhtbTExCi0JcHhvcgkl
eG1tMTAsJXhtbTIKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4
bW0xNAotCW1vdmRxYQkleG1tNiwleG1tNQotCW1vdmRxYQkleG1tNiw5NiglcnNwKQotCXBhZGRx
CSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQK
LQlweG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQk4MCglcjEyKSwleG1tMTIKLQlweG9yCSV4bW0x
MSwleG1tMwotCW1vdmRxdQk5NiglcjEyKSwleG1tMTMKLQlweG9yCSV4bW0xMiwleG1tNAotCW1v
dmRxdQkxMTIoJXIxMiksJXhtbTE0Ci0JbGVhcQkxMjgoJXIxMiksJXIxMgotCW1vdmRxYQkleG1t
NiwxMTIoJXJzcCkKLQlweG9yCSV4bW0xMywleG1tNQotCWxlYXEJMTI4KCVyc3ApLCVyYXgKLQlw
eG9yCSV4bW0xNCwleG1tNgotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZGVjcnlw
dDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1
CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1tNQotCW1vdmRxdQkleG1tMCwxNigl
cjEzKQotCXB4b3IJNDgoJXJzcCksJXhtbTMKLQltb3ZkcXUJJXhtbTUsMzIoJXIxMykKLQlweG9y
CTY0KCVyc3ApLCV4bW0xCi0JbW92ZHF1CSV4bW0zLDQ4KCVyMTMpCi0JcHhvcgk4MCglcnNwKSwl
eG1tNgotCW1vdmRxdQkleG1tMSw2NCglcjEzKQotCXB4b3IJOTYoJXJzcCksJXhtbTIKLQltb3Zk
cXUJJXhtbTYsODAoJXIxMykKLQlweG9yCTExMiglcnNwKSwleG1tNAotCW1vdmRxdQkleG1tMiw5
NiglcjEzKQotCW1vdmRxdQkleG1tNCwxMTIoJXIxMykKLQlsZWFxCTEyOCglcjEzKSwlcjEzCi0K
LQltb3ZkcWEJMTEyKCVyc3ApLCV4bW02Ci0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCUwk
eHRzX21hZ2ljKCVyaXApLCV4bW0xMgotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHNodWZkCSQw
eDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQlwYWRkcQkleG1tNiwleG1t
NgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1t
MTMsJXhtbTYKLQotCXN1YnEJJDB4ODAsJXIxNAotCWpuYwlMJHh0c19kZWNfbG9vcAotCi1MJHh0
c19kZWNfc2hvcnQ6Ci0JYWRkcQkkMHg4MCwlcjE0Ci0JanoJTCR4dHNfZGVjX2RvbmUKLQlwc2h1
ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0xNAotCW1vdmRxYQkleG1t
NiwleG1tMTUKLQltb3ZkcWEJJXhtbTYsMCglcnNwKQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFu
ZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlweG9yCSV4bW0xMywleG1t
NgotCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92
ZHFhCSV4bW02LCV4bW0wCi0JbW92ZHFhCSV4bW02LDE2KCVyc3ApCi0JcGFkZHEJJXhtbTYsJXht
bTYKLQlwYW5kCSV4bW0xMiwleG1tMTMKLQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXht
bTEzLCV4bW02Ci0JbW92ZHF1CTAoJXIxMiksJXhtbTcKLQljbXBxCSQxNiwlcjE0Ci0JamUJTCR4
dHNfZGVjXzEKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwotCXB4b3IJJXhtbTE0LCV4bW0x
NAotCW1vdmRxYQkleG1tNiwleG1tMQotCW1vdmRxYQkleG1tNiwzMiglcnNwKQotCXBhZGRxCSV4
bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXhtbTEzCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlw
eG9yCSV4bW0xMywleG1tNgotCW1vdmRxdQkxNiglcjEyKSwleG1tOAotCWNtcHEJJDMyLCVyMTQK
LQlqZQlMJHh0c19kZWNfMgotCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQweDEzLCV4bW0x
NCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJJXhtbTYsJXhtbTIKLQltb3Zk
cWEJJXhtbTYsNDgoJXJzcCkKLQlwYWRkcQkleG1tNiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0x
MwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhvcgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJMzIo
JXIxMiksJXhtbTkKLQljbXBxCSQ0OCwlcjE0Ci0JamUJTCR4dHNfZGVjXzMKLQlweG9yCSV4bW04
LCV4bW0wCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQK
LQltb3ZkcWEJJXhtbTYsJXhtbTMKLQltb3ZkcWEJJXhtbTYsNjQoJXJzcCkKLQlwYWRkcQkleG1t
NiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhv
cgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJNDgoJXIxMiksJXhtbTEwCi0JY21wcQkkNjQsJXIxNAot
CWplCUwkeHRzX2RlY180Ci0JcHhvcgkleG1tOSwleG1tMQotCXBzaHVmZAkkMHgxMywleG1tMTQs
JXhtbTEzCi0JcHhvcgkleG1tMTQsJXhtbTE0Ci0JbW92ZHFhCSV4bW02LCV4bW00Ci0JbW92ZHFh
CSV4bW02LDgwKCVyc3ApCi0JcGFkZHEJJXhtbTYsJXhtbTYKLQlwYW5kCSV4bW0xMiwleG1tMTMK
LQlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXB4b3IJJXhtbTEzLCV4bW02Ci0JbW92ZHF1CTY0KCVy
MTIpLCV4bW0xMQotCWNtcHEJJDgwLCVyMTQKLQlqZQlMJHh0c19kZWNfNQotCXB4b3IJJXhtbTEw
LCV4bW0yCi0JcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKLQlweG9yCSV4bW0xNCwleG1tMTQK
LQltb3ZkcWEJJXhtbTYsJXhtbTUKLQltb3ZkcWEJJXhtbTYsOTYoJXJzcCkKLQlwYWRkcQkleG1t
NiwleG1tNgotCXBhbmQJJXhtbTEyLCV4bW0xMwotCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHhv
cgkleG1tMTMsJXhtbTYKLQltb3ZkcXUJODAoJXIxMiksJXhtbTEyCi0JY21wcQkkOTYsJXIxNAot
CWplCUwkeHRzX2RlY182Ci0JcHhvcgkleG1tMTEsJXhtbTMKLQltb3ZkcXUJOTYoJXIxMiksJXht
bTEzCi0JcHhvcgkleG1tMTIsJXhtbTQKLQltb3ZkcWEJJXhtbTYsMTEyKCVyc3ApCi0JbGVhcQkx
MTIoJXIxMiksJXIxMgotCXB4b3IJJXhtbTEzLCV4bW01Ci0JbGVhcQkxMjgoJXJzcCksJXJheAot
CW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJMCglcnNw
KSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0J
cHhvcgkzMiglcnNwKSwleG1tNQotCW1vdmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJNDgoJXJz
cCksJXhtbTMKLQltb3ZkcXUJJXhtbTUsMzIoJXIxMykKLQlweG9yCTY0KCVyc3ApLCV4bW0xCi0J
bW92ZHF1CSV4bW0zLDQ4KCVyMTMpCi0JcHhvcgk4MCglcnNwKSwleG1tNgotCW1vdmRxdQkleG1t
MSw2NCglcjEzKQotCXB4b3IJOTYoJXJzcCksJXhtbTIKLQltb3ZkcXUJJXhtbTYsODAoJXIxMykK
LQltb3ZkcXUJJXhtbTIsOTYoJXIxMykKLQlsZWFxCTExMiglcjEzKSwlcjEzCi0KLQltb3ZkcWEJ
MTEyKCVyc3ApLCV4bW02Ci0Jam1wCUwkeHRzX2RlY19kb25lCi0ucDJhbGlnbgk0Ci1MJHh0c19k
ZWNfNjoKLQlweG9yCSV4bW0xMSwleG1tMwotCWxlYXEJOTYoJXIxMiksJXIxMgotCXB4b3IJJXht
bTEyLCV4bW00Ci0JbGVhcQkxMjgoJXJzcCksJXJheAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2Fs
bAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3Ap
LCV4bW0wCi0JbW92ZHF1CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1tNQotCW1v
dmRxdQkleG1tMCwxNiglcjEzKQotCXB4b3IJNDgoJXJzcCksJXhtbTMKLQltb3ZkcXUJJXhtbTUs
MzIoJXIxMykKLQlweG9yCTY0KCVyc3ApLCV4bW0xCi0JbW92ZHF1CSV4bW0zLDQ4KCVyMTMpCi0J
cHhvcgk4MCglcnNwKSwleG1tNgotCW1vdmRxdQkleG1tMSw2NCglcjEzKQotCW1vdmRxdQkleG1t
Niw4MCglcjEzKQotCWxlYXEJOTYoJXIxMyksJXIxMwotCi0JbW92ZHFhCTk2KCVyc3ApLCV4bW02
Ci0Jam1wCUwkeHRzX2RlY19kb25lCi0ucDJhbGlnbgk0Ci1MJHh0c19kZWNfNToKLQlweG9yCSV4
bW0xMCwleG1tMgotCWxlYXEJODAoJXIxMiksJXIxMgotCXB4b3IJJXhtbTExLCV4bW0zCi0JbGVh
cQkxMjgoJXJzcCksJXJheAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZGVjcnlw
dDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1
CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1tNQotCW1vdmRxdQkleG1tMCwxNigl
cjEzKQotCXB4b3IJNDgoJXJzcCksJXhtbTMKLQltb3ZkcXUJJXhtbTUsMzIoJXIxMykKLQlweG9y
CTY0KCVyc3ApLCV4bW0xCi0JbW92ZHF1CSV4bW0zLDQ4KCVyMTMpCi0JbW92ZHF1CSV4bW0xLDY0
KCVyMTMpCi0JbGVhcQk4MCglcjEzKSwlcjEzCi0KLQltb3ZkcWEJODAoJXJzcCksJXhtbTYKLQlq
bXAJTCR4dHNfZGVjX2RvbmUKLS5wMmFsaWduCTQKLUwkeHRzX2RlY180OgotCXB4b3IJJXhtbTks
JXhtbTEKLQlsZWFxCTY0KCVyMTIpLCVyMTIKLQlweG9yCSV4bW0xMCwleG1tMgotCWxlYXEJMTI4
KCVyc3ApLCVyYXgKLQltb3ZsCSVlZHgsJXIxMGQKLQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0K
LQlweG9yCTAoJXJzcCksJXhtbTE1Ci0JcHhvcgkxNiglcnNwKSwleG1tMAotCW1vdmRxdQkleG1t
MTUsMCglcjEzKQotCXB4b3IJMzIoJXJzcCksJXhtbTUKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykK
LQlweG9yCTQ4KCVyc3ApLCV4bW0zCi0JbW92ZHF1CSV4bW01LDMyKCVyMTMpCi0JbW92ZHF1CSV4
bW0zLDQ4KCVyMTMpCi0JbGVhcQk2NCglcjEzKSwlcjEzCi0KLQltb3ZkcWEJNjQoJXJzcCksJXht
bTYKLQlqbXAJTCR4dHNfZGVjX2RvbmUKLS5wMmFsaWduCTQKLUwkeHRzX2RlY18zOgotCXB4b3IJ
JXhtbTgsJXhtbTAKLQlsZWFxCTQ4KCVyMTIpLCVyMTIKLQlweG9yCSV4bW05LCV4bW0xCi0JbGVh
cQkxMjgoJXJzcCksJXJheAotCW1vdmwJJWVkeCwlcjEwZAotCi0JY2FsbAlfYnNhZXNfZGVjcnlw
dDgKLQotCXB4b3IJMCglcnNwKSwleG1tMTUKLQlweG9yCTE2KCVyc3ApLCV4bW0wCi0JbW92ZHF1
CSV4bW0xNSwwKCVyMTMpCi0JcHhvcgkzMiglcnNwKSwleG1tNQotCW1vdmRxdQkleG1tMCwxNigl
cjEzKQotCW1vdmRxdQkleG1tNSwzMiglcjEzKQotCWxlYXEJNDgoJXIxMyksJXIxMwotCi0JbW92
ZHFhCTQ4KCVyc3ApLCV4bW02Ci0Jam1wCUwkeHRzX2RlY19kb25lCi0ucDJhbGlnbgk0Ci1MJHh0
c19kZWNfMjoKLQlweG9yCSV4bW03LCV4bW0xNQotCWxlYXEJMzIoJXIxMiksJXIxMgotCXB4b3IJ
JXhtbTgsJXhtbTAKLQlsZWFxCTEyOCglcnNwKSwlcmF4Ci0JbW92bAklZWR4LCVyMTBkCi0KLQlj
YWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgkwKCVyc3ApLCV4bW0xNQotCXB4b3IJMTYoJXJz
cCksJXhtbTAKLQltb3ZkcXUJJXhtbTE1LDAoJXIxMykKLQltb3ZkcXUJJXhtbTAsMTYoJXIxMykK
LQlsZWFxCTMyKCVyMTMpLCVyMTMKLQotCW1vdmRxYQkzMiglcnNwKSwleG1tNgotCWptcAlMJHh0
c19kZWNfZG9uZQotLnAyYWxpZ24JNAotTCR4dHNfZGVjXzE6Ci0JcHhvcgkleG1tMTUsJXhtbTcK
LQlsZWFxCTE2KCVyMTIpLCVyMTIKLQltb3ZkcWEJJXhtbTcsMzIoJXJicCkKLQlsZWFxCTMyKCVy
YnApLCVyZGkKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQlsZWFxCSglcjE1KSwlcmR4Ci0JY2FsbAlf
YWVzX25vaHdfZGVjcnlwdAotCXB4b3IJMzIoJXJicCksJXhtbTE1Ci0KLQotCi0KLQotCW1vdmRx
dQkleG1tMTUsMCglcjEzKQotCWxlYXEJMTYoJXIxMyksJXIxMwotCi0JbW92ZHFhCTE2KCVyc3Ap
LCV4bW02Ci0KLUwkeHRzX2RlY19kb25lOgotCWFuZGwJJDE1LCVlYngKLQlqeglMJHh0c19kZWNf
cmV0Ci0KLQlweG9yCSV4bW0xNCwleG1tMTQKLQltb3ZkcWEJTCR4dHNfbWFnaWMoJXJpcCksJXht
bTEyCi0JcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwot
CW1vdmRxYQkleG1tNiwleG1tNQotCXBhZGRxCSV4bW02LCV4bW02Ci0JcGFuZAkleG1tMTIsJXht
bTEzCi0JbW92ZHF1CSglcjEyKSwleG1tMTUKLQlweG9yCSV4bW0xMywleG1tNgotCi0JbGVhcQkz
MiglcmJwKSwlcmRpCi0JcHhvcgkleG1tNiwleG1tMTUKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQlt
b3ZkcWEJJXhtbTE1LDMyKCVyYnApCi0JbGVhcQkoJXIxNSksJXJkeAotCWNhbGwJX2Flc19ub2h3
X2RlY3J5cHQKLQlweG9yCTMyKCVyYnApLCV4bW02Ci0JbW92cQklcjEzLCVyZHgKLQltb3ZkcXUJ
JXhtbTYsKCVyMTMpCi0KLUwkeHRzX2RlY19zdGVhbDoKLQltb3Z6YmwJMTYoJXIxMiksJWVheAot
CW1vdnpibAkoJXJkeCksJWVjeAotCWxlYXEJMSglcjEyKSwlcjEyCi0JbW92YgklYWwsKCVyZHgp
Ci0JbW92YgklY2wsMTYoJXJkeCkKLQlsZWFxCTEoJXJkeCksJXJkeAotCXN1YmwJJDEsJWVieAot
CWpueglMJHh0c19kZWNfc3RlYWwKLQotCW1vdmRxdQkoJXIxMyksJXhtbTE1Ci0JbGVhcQkzMigl
cmJwKSwlcmRpCi0JcHhvcgkleG1tNSwleG1tMTUKLQlsZWFxCTMyKCVyYnApLCVyc2kKLQltb3Zk
cWEJJXhtbTE1LDMyKCVyYnApCi0JbGVhcQkoJXIxNSksJXJkeAotCWNhbGwJX2Flc19ub2h3X2Rl
Y3J5cHQKLQlweG9yCTMyKCVyYnApLCV4bW01Ci0JbW92ZHF1CSV4bW01LCglcjEzKQotCi1MJHh0
c19kZWNfcmV0OgotCWxlYXEJKCVyc3ApLCVyYXgKLQlweG9yCSV4bW0wLCV4bW0wCi1MJHh0c19k
ZWNfYnplcm86Ci0JbW92ZHFhCSV4bW0wLDAoJXJheCkKLQltb3ZkcWEJJXhtbTAsMTYoJXJheCkK
LQlsZWFxCTMyKCVyYXgpLCVyYXgKLQljbXBxCSVyYXgsJXJicAotCWphCUwkeHRzX2RlY19iemVy
bwotCi0JbGVhcQkxMjAoJXJicCksJXJheAotCi0JbW92cQktNDgoJXJheCksJXIxNQotCi0JbW92
cQktNDAoJXJheCksJXIxNAotCi0JbW92cQktMzIoJXJheCksJXIxMwotCi0JbW92cQktMjQoJXJh
eCksJXIxMgotCi0JbW92cQktMTYoJXJheCksJXJieAotCi0JbW92cQktOCglcmF4KSwlcmJwCi0K
LQlsZWFxCSglcmF4KSwlcnNwCi0KLUwkeHRzX2RlY19lcGlsb2d1ZToKLQkuYnl0ZQkweGYzLDB4
YzMKLQotCi0KLS5wMmFsaWduCTYKLV9ic2Flc19jb25zdDoKLUwkTTBJU1I6Ci0ucXVhZAkweDBh
MGUwMjA2MDcwYjBmMDMsIDB4MDAwNDA4MGMwZDAxMDUwOQotTCRJU1JNMDoKLS5xdWFkCTB4MDEw
NDBiMGUwMjA1MDgwZiwgMHgwMzA2MDkwYzAwMDcwYTBkCi1MJElTUjoKLS5xdWFkCTB4MDUwNDA3
MDYwMjAxMDAwMywgMHgwZjBlMGQwYzA4MGIwYTA5Ci1MJEJTMDoKLS5xdWFkCTB4NTU1NTU1NTU1
NTU1NTU1NSwgMHg1NTU1NTU1NTU1NTU1NTU1Ci1MJEJTMToKLS5xdWFkCTB4MzMzMzMzMzMzMzMz
MzMzMywgMHgzMzMzMzMzMzMzMzMzMzMzCi1MJEJTMjoKLS5xdWFkCTB4MGYwZjBmMGYwZjBmMGYw
ZiwgMHgwZjBmMGYwZjBmMGYwZjBmCi1MJFNSOgotLnF1YWQJMHgwNTA0MDcwNjAwMDMwMjAxLCAw
eDBmMGUwZDBjMGEwOTA4MGIKLUwkU1JNMDoKLS5xdWFkCTB4MDMwNDA5MGUwMDA1MGEwZiwgMHgw
MTA2MGIwYzAyMDcwODBkCi1MJE0wU1I6Ci0ucXVhZAkweDBhMGUwMjA2MGYwMzA3MGIsIDB4MDAw
NDA4MGMwNTA5MGQwMQotTCRTV1BVUDoKLS5xdWFkCTB4MDcwNjA1MDQwMzAyMDEwMCwgMHgwYzBk
MGUwZjBiMGEwOTA4Ci1MJFNXUFVQTTBTUjoKLS5xdWFkCTB4MGEwZDAyMDYwYzAzMDcwYiwgMHgw
MDA0MDgwZjA1MDkwZTAxCi1MJEFERDE6Ci0ucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAw
MDAwMDEwMDAwMDAwMAotTCRBREQyOgotLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAw
MDAyMDAwMDAwMDAKLUwkQUREMzoKLS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAw
MzAwMDAwMDAwCi1MJEFERDQ6Ci0ucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDQw
MDAwMDAwMAotTCRBREQ1OgotLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDA1MDAw
MDAwMDAKLUwkQURENjoKLS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwNjAwMDAw
MDAwCi1MJEFERDc6Ci0ucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDcwMDAwMDAw
MAotTCRBREQ4OgotLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDA4MDAwMDAwMDAK
LUwkeHRzX21hZ2ljOgotLmxvbmcJMHg4NywwLDEsMAotTCRtYXNrczoKLS5xdWFkCTB4MDEwMTAx
MDEwMTAxMDEwMSwgMHgwMTAxMDEwMTAxMDEwMTAxCi0ucXVhZAkweDAyMDIwMjAyMDIwMjAyMDIs
IDB4MDIwMjAyMDIwMjAyMDIwMgotLnF1YWQJMHgwNDA0MDQwNDA0MDQwNDA0LCAweDA0MDQwNDA0
MDQwNDA0MDQKLS5xdWFkCTB4MDgwODA4MDgwODA4MDgwOCwgMHgwODA4MDgwODA4MDgwODA4Ci1M
JE0wOgotLnF1YWQJMHgwMjA2MGEwZTAzMDcwYjBmLCAweDAwMDQwODBjMDEwNTA5MGQKLUwkNjM6
Ci0ucXVhZAkweDYzNjM2MzYzNjM2MzYzNjMsIDB4NjM2MzYzNjM2MzYzNjM2MwotLmJ5dGUJNjYs
MTA1LDExNiw0NSwxMTUsMTA4LDEwNSw5OSwxMDEsMTAwLDMyLDY1LDY5LDgzLDMyLDEwMiwxMTEs
MTE0LDMyLDEyMCw1Niw1NCw5NSw1NCw1Miw0Nyw4Myw4Myw4Myw2OSw1MSw0NCwzMiw2OSwxMDks
MTA1LDEwOCwxMDUsOTcsMzIsNzUsMTk1LDE2NCwxMTUsMTEyLDEwMSwxMTQsNDQsMzIsODAsMTAx
LDExNiwxMDEsMTE0LDMyLDgzLDk5LDEwNCwxMTksOTcsOTgsMTAxLDQ0LDMyLDY1LDExMCwxMDAs
MTIxLDMyLDgwLDExMSwxMDgsMTIxLDk3LDEwNywxMTEsMTE4LDAKLS5wMmFsaWduCTYKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2doYXNoLXNzc2Uz
LXg4Nl82NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1zc3NlMy14ODZf
NjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYjkxMjlmMmRkMjdmY2IwNzZlODkyZDQ3MGUyNWUzMmZlZTIzMGM0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC1z
c3NlMy14ODZfNjQuUwpAQCAtMCwwICsxLDQyNiBAQAorIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVk
IGZyb20gYSBzaW1pbGFybHktbmFtZWQgUGVybCBzY3JpcHQgaW4gdGhlIEJvcmluZ1NTTAorIyBz
b3VyY2UgdHJlZS4gRG8gbm90IGVkaXQgYnkgaGFuZC4KKworI2lmIGRlZmluZWQoX19oYXNfZmVh
dHVyZSkKKyNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpICYmICFkZWZpbmVkKE9Q
RU5TU0xfTk9fQVNNKQorI2RlZmluZSBPUEVOU1NMX05PX0FTTQorI2VuZGlmCisjZW5kaWYKKwor
I2lmIGRlZmluZWQoX194ODZfNjRfXykgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCisjaWYg
ZGVmaW5lZChCT1JJTkdTU0xfUFJFRklYKQorI2luY2x1ZGUgPGJvcmluZ3NzbF9wcmVmaXhfc3lt
Ym9sc19hc20uaD4KKyNlbmRpZgorLnRleHQJCisKKworCisKKworCisuZ2xvYmwJX2djbV9nbXVs
dF9zc3NlMworLnByaXZhdGVfZXh0ZXJuIF9nY21fZ211bHRfc3NzZTMKKy5wMmFsaWduCTQKK19n
Y21fZ211bHRfc3NzZTM6CisKK0wkZ211bHRfc2VoX2JlZ2luOgorCW1vdmRxdQkoJXJkaSksJXht
bTAKKwltb3ZkcWEJTCRyZXZlcnNlX2J5dGVzKCVyaXApLCV4bW0xMAorCW1vdmRxYQlMJGxvdzRf
bWFzayglcmlwKSwleG1tMgorCisKKy5ieXRlCTEwMiw2NSwxNSw1NiwwLDE5NAorCisKKwltb3Zk
cWEJJXhtbTIsJXhtbTEKKwlwYW5kbgkleG1tMCwleG1tMQorCXBzcmxkCSQ0LCV4bW0xCisJcGFu
ZAkleG1tMiwleG1tMAorCisKKworCisJcHhvcgkleG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXht
bTMKKwltb3ZxCSQ1LCVyYXgKK0wkb29wX3Jvd18xOgorCW1vdmRxYQkoJXJzaSksJXhtbTQKKwls
ZWFxCTE2KCVyc2kpLCVyc2kKKworCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUs
NTgsMTUsMjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKworCisK
KworCW1vdmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIs
MTUsNTYsMCwyMzMKKworCisJcHhvcgkleG1tNSwleG1tMgorCisKKworCW1vdmRxYQkleG1tNCwl
eG1tNQorCXBzbGxxCSQ2MCwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwl
eG1tNgorCXB4b3IJJXhtbTYsJXhtbTMKKworCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1t
NSwleG1tMgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCisJc3VicQkkMSwl
cmF4CisJam56CUwkb29wX3Jvd18xCisKKworCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQx
LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywl
eG1tMgorCXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXht
bTMKKwltb3ZxCSQ1LCVyYXgKK0wkb29wX3Jvd18yOgorCW1vdmRxYQkoJXJzaSksJXhtbTQKKwls
ZWFxCTE2KCVyc2kpLCVyc2kKKworCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUs
NTgsMTUsMjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKworCisK
KworCW1vdmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIs
MTUsNTYsMCwyMzMKKworCisJcHhvcgkleG1tNSwleG1tMgorCisKKworCW1vdmRxYQkleG1tNCwl
eG1tNQorCXBzbGxxCSQ2MCwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwl
eG1tNgorCXB4b3IJJXhtbTYsJXhtbTMKKworCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1t
NSwleG1tMgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCisJc3VicQkkMSwl
cmF4CisJam56CUwkb29wX3Jvd18yCisKKworCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQx
LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywl
eG1tMgorCXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXht
bTMKKwltb3ZxCSQ2LCVyYXgKK0wkb29wX3Jvd18zOgorCW1vdmRxYQkoJXJzaSksJXhtbTQKKwls
ZWFxCTE2KCVyc2kpLCVyc2kKKworCisJbW92ZHFhCSV4bW0yLCV4bW02CisuYnl0ZQkxMDIsMTUs
NTgsMTUsMjQzLDEKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwc3JsZHEJJDEsJXhtbTIKKworCisK
KworCW1vdmRxYQkleG1tNCwleG1tNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjI0CisuYnl0ZQkxMDIs
MTUsNTYsMCwyMzMKKworCisJcHhvcgkleG1tNSwleG1tMgorCisKKworCW1vdmRxYQkleG1tNCwl
eG1tNQorCXBzbGxxCSQ2MCwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tNgorCXBzbGxkcQkkOCwl
eG1tNgorCXB4b3IJJXhtbTYsJXhtbTMKKworCisJcHNybGRxCSQ4LCV4bW01CisJcHhvcgkleG1t
NSwleG1tMgorCXBzcmxxCSQ0LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCisJc3VicQkkMSwl
cmF4CisJam56CUwkb29wX3Jvd18zCisKKworCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQx
LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXBzcmxxCSQxLCV4bW0zCisJcHhvcgkleG1tMywl
eG1tMgorCXBzcmxxCSQ1LCV4bW0zCisJcHhvcgkleG1tMywleG1tMgorCXB4b3IJJXhtbTMsJXht
bTMKKworLmJ5dGUJMTAyLDY1LDE1LDU2LDAsMjEwCisJbW92ZHF1CSV4bW0yLCglcmRpKQorCisK
KwlweG9yCSV4bW0wLCV4bW0wCisJcHhvcgkleG1tMSwleG1tMQorCXB4b3IJJXhtbTIsJXhtbTIK
KwlweG9yCSV4bW0zLCV4bW0zCisJcHhvcgkleG1tNCwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTUK
KwlweG9yCSV4bW02LCV4bW02CisJLmJ5dGUJMHhmMywweGMzCitMJGdtdWx0X3NlaF9lbmQ6CisK
KworCisKKworCisKKworLmdsb2JsCV9nY21fZ2hhc2hfc3NzZTMKKy5wcml2YXRlX2V4dGVybiBf
Z2NtX2doYXNoX3Nzc2UzCisucDJhbGlnbgk0CitfZ2NtX2doYXNoX3Nzc2UzOgorTCRnaGFzaF9z
ZWhfYmVnaW46CisKKwltb3ZkcXUJKCVyZGkpLCV4bW0wCisJbW92ZHFhCUwkcmV2ZXJzZV9ieXRl
cyglcmlwKSwleG1tMTAKKwltb3ZkcWEJTCRsb3c0X21hc2soJXJpcCksJXhtbTExCisKKworCWFu
ZHEJJC0xNiwlcmN4CisKKworCisuYnl0ZQkxMDIsNjUsMTUsNTYsMCwxOTQKKworCisJcHhvcgkl
eG1tMywleG1tMworTCRvb3BfZ2hhc2g6CisKKwltb3ZkcXUJKCVyZHgpLCV4bW0xCisuYnl0ZQkx
MDIsNjUsMTUsNTYsMCwyMDIKKwlweG9yCSV4bW0xLCV4bW0wCisKKworCW1vdmRxYQkleG1tMTEs
JXhtbTEKKwlwYW5kbgkleG1tMCwleG1tMQorCXBzcmxkCSQ0LCV4bW0xCisJcGFuZAkleG1tMTEs
JXhtbTAKKworCisKKworCXB4b3IJJXhtbTIsJXhtbTIKKworCW1vdnEJJDUsJXJheAorTCRvb3Bf
cm93XzQ6CisJbW92ZHFhCSglcnNpKSwleG1tNAorCWxlYXEJMTYoJXJzaSksJXJzaQorCisKKwlt
b3ZkcWEJJXhtbTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1OCwxNSwyNDMsMQorCW1vdmRxYQkleG1t
NiwleG1tMworCXBzcmxkcQkkMSwleG1tMgorCisKKworCisJbW92ZHFhCSV4bW00LCV4bW01Cisu
Ynl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRlCTEwMiwxNSw1NiwwLDIzMworCisKKwlweG9yCSV4
bW01LCV4bW0yCisKKworCisJbW92ZHFhCSV4bW00LCV4bW01CisJcHNsbHEJJDYwLCV4bW01CisJ
bW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4LCV4bW02CisJcHhvcgkleG1tNiwleG1tMwor
CisKKwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0yCisJcHNybHEJJDQsJXhtbTQK
KwlweG9yCSV4bW00LCV4bW0yCisKKwlzdWJxCSQxLCVyYXgKKwlqbnoJTCRvb3Bfcm93XzQKKwor
CisKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0y
CisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDUsJXhtbTMKKwlw
eG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1tMworCW1vdnEJJDUsJXJheAorTCRvb3Bf
cm93XzU6CisJbW92ZHFhCSglcnNpKSwleG1tNAorCWxlYXEJMTYoJXJzaSksJXJzaQorCisKKwlt
b3ZkcWEJJXhtbTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1OCwxNSwyNDMsMQorCW1vdmRxYQkleG1t
NiwleG1tMworCXBzcmxkcQkkMSwleG1tMgorCisKKworCisJbW92ZHFhCSV4bW00LCV4bW01Cisu
Ynl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRlCTEwMiwxNSw1NiwwLDIzMworCisKKwlweG9yCSV4
bW01LCV4bW0yCisKKworCisJbW92ZHFhCSV4bW00LCV4bW01CisJcHNsbHEJJDYwLCV4bW01CisJ
bW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4LCV4bW02CisJcHhvcgkleG1tNiwleG1tMwor
CisKKwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0yCisJcHNybHEJJDQsJXhtbTQK
KwlweG9yCSV4bW00LCV4bW0yCisKKwlzdWJxCSQxLCVyYXgKKwlqbnoJTCRvb3Bfcm93XzUKKwor
CisKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0y
CisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDUsJXhtbTMKKwlw
eG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1tMworCW1vdnEJJDYsJXJheAorTCRvb3Bf
cm93XzY6CisJbW92ZHFhCSglcnNpKSwleG1tNAorCWxlYXEJMTYoJXJzaSksJXJzaQorCisKKwlt
b3ZkcWEJJXhtbTIsJXhtbTYKKy5ieXRlCTEwMiwxNSw1OCwxNSwyNDMsMQorCW1vdmRxYQkleG1t
NiwleG1tMworCXBzcmxkcQkkMSwleG1tMgorCisKKworCisJbW92ZHFhCSV4bW00LCV4bW01Cisu
Ynl0ZQkxMDIsMTUsNTYsMCwyMjQKKy5ieXRlCTEwMiwxNSw1NiwwLDIzMworCisKKwlweG9yCSV4
bW01LCV4bW0yCisKKworCisJbW92ZHFhCSV4bW00LCV4bW01CisJcHNsbHEJJDYwLCV4bW01CisJ
bW92ZHFhCSV4bW01LCV4bW02CisJcHNsbGRxCSQ4LCV4bW02CisJcHhvcgkleG1tNiwleG1tMwor
CisKKwlwc3JsZHEJJDgsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0yCisJcHNybHEJJDQsJXhtbTQK
KwlweG9yCSV4bW00LCV4bW0yCisKKwlzdWJxCSQxLCVyYXgKKwlqbnoJTCRvb3Bfcm93XzYKKwor
CisKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0y
CisJcHNybHEJJDEsJXhtbTMKKwlweG9yCSV4bW0zLCV4bW0yCisJcHNybHEJJDUsJXhtbTMKKwlw
eG9yCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMywleG1tMworCW1vdmRxYQkleG1tMiwleG1tMAor
CisKKwlsZWFxCS0yNTYoJXJzaSksJXJzaQorCisKKwlsZWFxCTE2KCVyZHgpLCVyZHgKKwlzdWJx
CSQxNiwlcmN4CisJam56CUwkb29wX2doYXNoCisKKworLmJ5dGUJMTAyLDY1LDE1LDU2LDAsMTk0
CisJbW92ZHF1CSV4bW0wLCglcmRpKQorCisKKwlweG9yCSV4bW0wLCV4bW0wCisJcHhvcgkleG1t
MSwleG1tMQorCXB4b3IJJXhtbTIsJXhtbTIKKwlweG9yCSV4bW0zLCV4bW0zCisJcHhvcgkleG1t
NCwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTUKKwlweG9yCSV4bW02LCV4bW02CisJLmJ5dGUJMHhm
MywweGMzCitMJGdoYXNoX3NlaF9lbmQ6CisKKworCisucDJhbGlnbgk0CisKKworTCRyZXZlcnNl
X2J5dGVzOgorLmJ5dGUJMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwg
MywgMiwgMSwgMAorCitMJGxvdzRfbWFzazoKKy5xdWFkCTB4MGYwZjBmMGYwZjBmMGYwZiwgMHgw
ZjBmMGYwZjBmMGYwZjBmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvZ2hhc2gteDg2XzY0LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2do
YXNoLXg4Nl82NC5TCmluZGV4IDUyNTZmYmZhN2NiNTcxYTMwMDg5MmZlZjA0OTBlOGQ1OTIzNjgy
MzQuLmQ3ZGNmNWQ2MWZkZGZmYjg2Y2VmMDhhNTkxMDUyZjgzNjcxZTE1NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2gteDg2XzY0LlMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4
Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC14ODZfNjQuUwpAQCAtNzA5LDYgKzcwOSw3IEBA
IEwkZ2hhc2hfZXBpbG9ndWU6CiAKIC5wMmFsaWduCTQKIF9nY21faW5pdF9jbG11bDoKKwogTCRf
aW5pdF9jbG11bDoKIAltb3ZkcXUJKCVyc2kpLCV4bW0yCiAJcHNodWZkCSQ3OCwleG1tMiwleG1t
MgpAQCAtODYxLDExICs4NjIsMTMgQEAgTCRfaW5pdF9jbG11bDoKIAltb3ZkcXUJJXhtbTQsODAo
JXJkaSkKIAkuYnl0ZQkweGYzLDB4YzMKIAorCiAuZ2xvYmwJX2djbV9nbXVsdF9jbG11bAogLnBy
aXZhdGVfZXh0ZXJuIF9nY21fZ211bHRfY2xtdWwKIAogLnAyYWxpZ24JNAogX2djbV9nbXVsdF9j
bG11bDoKKwogTCRfZ211bHRfY2xtdWw6CiAJbW92ZHF1CSglcmRpKSwleG1tMAogCW1vdmRxYQlM
JGJzd2FwX21hc2soJXJpcCksJXhtbTUKQEAgLTkxMywxMSArOTE2LDEzIEBAIEwkX2dtdWx0X2Ns
bXVsOgogCW1vdmRxdQkleG1tMCwoJXJkaSkKIAkuYnl0ZQkweGYzLDB4YzMKIAorCiAuZ2xvYmwJ
X2djbV9naGFzaF9jbG11bAogLnByaXZhdGVfZXh0ZXJuIF9nY21fZ2hhc2hfY2xtdWwKIAogLnAy
YWxpZ24JNQogX2djbV9naGFzaF9jbG11bDoKKwogTCRfZ2hhc2hfY2xtdWw6CiAJbW92ZHFhCUwk
YnN3YXBfbWFzayglcmlwKSwleG1tMTAKIApAQCAtMTI5OCwxMSArMTMwMywxMyBAQCBMJGRvbmU6
CiAJbW92ZHF1CSV4bW0wLCglcmRpKQogCS5ieXRlCTB4ZjMsMHhjMwogCisKIC5nbG9ibAlfZ2Nt
X2luaXRfYXZ4CiAucHJpdmF0ZV9leHRlcm4gX2djbV9pbml0X2F2eAogCiAucDJhbGlnbgk1CiBf
Z2NtX2luaXRfYXZ4OgorCiAJdnplcm91cHBlcgogCiAJdm1vdmRxdQkoJXJzaSksJXhtbTIKQEAg
LTE0MDYsMTggKzE0MTMsMjIgQEAgTCRpbml0X3N0YXJ0X2F2eDoKIAl2emVyb3VwcGVyCiAJLmJ5
dGUJMHhmMywweGMzCiAKKwogLmdsb2JsCV9nY21fZ211bHRfYXZ4CiAucHJpdmF0ZV9leHRlcm4g
X2djbV9nbXVsdF9hdngKIAogLnAyYWxpZ24JNQogX2djbV9nbXVsdF9hdng6CisKIAlqbXAJTCRf
Z211bHRfY2xtdWwKIAorCiAuZ2xvYmwJX2djbV9naGFzaF9hdngKIC5wcml2YXRlX2V4dGVybiBf
Z2NtX2doYXNoX2F2eAogCiAucDJhbGlnbgk1CiBfZ2NtX2doYXNoX2F2eDoKKwogCXZ6ZXJvdXBw
ZXIKIAogCXZtb3ZkcXUJKCVyZGkpLCV4bW0xMApAQCAtMTc5MCw2ICsxODAxLDcgQEAgTCR0YWls
X25vX3hvcl9hdng6CiAJdnplcm91cHBlcgogCS5ieXRlCTB4ZjMsMHhjMwogCisKIC5wMmFsaWdu
CTYKIEwkYnN3YXBfbWFzazoKIC5ieXRlCTE1LDE0LDEzLDEyLDExLDEwLDksOCw3LDYsNSw0LDMs
MiwxLDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1LXg4Nl82
NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9tZDUteDg2XzY0LlMKaW5kZXggZjZk
ZDY2OWQxZjA5MWIxZDNjMjFkMTc5NTJlZGJmODJhOTQ3NzYwNS4uY2ZiNDE4MGRhM2YwNTU2OWJh
M2Y4ZDJjYWE1YTIwNTVjNDc5ZDhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlw
c21vZHVsZS9tZDUteDg2XzY0LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9t
ZDUteDg2XzY0LlMKQEAgLTE4LDExICsxOCwxNyBAQAogLnByaXZhdGVfZXh0ZXJuIF9tZDVfYmxv
Y2tfYXNtX2RhdGFfb3JkZXIKIAogX21kNV9ibG9ja19hc21fZGF0YV9vcmRlcjoKKwogCXB1c2hx
CSVyYnAKKwogCXB1c2hxCSVyYngKKwogCXB1c2hxCSVyMTIKKwogCXB1c2hxCSVyMTQKKwogCXB1
c2hxCSVyMTUKKwogTCRwcm9sb2d1ZToKIAogCkBAIC02NzIsMTIgKzY3OCwxOSBAQCBMJGVuZDoK
IAltb3ZsCSVlZHgsMTIoJXJicCkKIAogCW1vdnEJKCVyc3ApLCVyMTUKKwogCW1vdnEJOCglcnNw
KSwlcjE0CisKIAltb3ZxCTE2KCVyc3ApLCVyMTIKKwogCW1vdnEJMjQoJXJzcCksJXJieAorCiAJ
bW92cQkzMiglcnNwKSwlcmJwCisKIAlhZGRxCSQ0MCwlcnNwCisKIEwkZXBpbG9ndWU6CiAJLmJ5
dGUJMHhmMywweGMzCiAKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9m
aXBzbW9kdWxlL3AyNTYteDg2XzY0LWFzbS5TIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVs
ZS9wMjU2LXg4Nl82NC1hc20uUwppbmRleCA0Mjk4ODdkYmQ2ZWMyOGU1MjMwMDU0YjNiZGMxNzJj
MjZmY2IwNzJmLi4xZjRhOTMxMzJmMDU2Y2JiY2IzMzIwOTc3Y2ZmNDI5Y2I4NGMwNjU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3AyNTYteDg2XzY0LWFzbS5TCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvcDI1Ni14ODZfNjQtYXNtLlMKQEAgLTEy
MzYsNiArMTIzNiw3IEBAIEwkbXVsX2VwaWxvZ3VlOgogX19lY3BfbmlzdHoyNTZfbXVsX21vbnRx
OgogCiAKKwogCW1vdnEJJXJheCwlcmJwCiAJbXVscQklcjkKIAltb3ZxCUwkcG9seSs4KCVyaXAp
LCVyMTQKQEAgLTE0NTQsNiArMTQ1NSw3IEBAIF9fZWNwX25pc3R6MjU2X211bF9tb250cToKIAog
CiAKKwogLmdsb2JsCV9lY3BfbmlzdHoyNTZfc3FyX21vbnQKIC5wcml2YXRlX2V4dGVybiBfZWNw
X25pc3R6MjU2X3Nxcl9tb250CiAKQEAgLTE1MTgsNiArMTUyMCw3IEBAIEwkc3FyX2VwaWxvZ3Vl
OgogCiAucDJhbGlnbgk1CiBfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHE6CisKIAltb3ZxCSVyYXgs
JXIxMwogCW11bHEJJXIxNAogCW1vdnEJJXJheCwlcjkKQEAgLTE2NzcsMTAgKzE2ODAsMTIgQEAg
X19lY3BfbmlzdHoyNTZfc3FyX21vbnRxOgogCS5ieXRlCTB4ZjMsMHhjMwogCiAKKwogLnAyYWxp
Z24JNQogX19lY3BfbmlzdHoyNTZfbXVsX21vbnR4OgogCiAKKwogCW11bHhxCSVyOSwlcjgsJXI5
CiAJbXVseHEJJXIxMCwlcmN4LCVyMTAKIAltb3ZxCSQzMiwlcjE0CkBAIC0xODQ0LDggKzE4NDks
MTAgQEAgX19lY3BfbmlzdHoyNTZfbXVsX21vbnR4OgogCiAKIAorCiAucDJhbGlnbgk1CiBfX2Vj
cF9uaXN0ejI1Nl9zcXJfbW9udHg6CisKIAltdWx4cQklcjE0LCVyOSwlcjEwCiAJbXVseHEJJXIx
NSwlcmN4LCVyMTEKIAl4b3JsCSVlYXgsJWVheApAQCAtMTk3MiwxMSArMTk3OSwxMyBAQCBfX2Vj
cF9uaXN0ejI1Nl9zcXJfbW9udHg6CiAKIAogCisKIC5nbG9ibAlfZWNwX25pc3R6MjU2X3NlbGVj
dF93NQogLnByaXZhdGVfZXh0ZXJuIF9lY3BfbmlzdHoyNTZfc2VsZWN0X3c1CiAKIC5wMmFsaWdu
CTUKIF9lY3BfbmlzdHoyNTZfc2VsZWN0X3c1OgorCiAJbGVhcQlfT1BFTlNTTF9pYTMyY2FwX1Ao
JXJpcCksJXJheAogCW1vdnEJOCglcmF4KSwlcmF4CiAJdGVzdGwJJDMyLCVlYXgKQEAgLTIwMzIs
NiArMjA0MSw3IEBAIEwkc2VsZWN0X2xvb3Bfc3NlX3c1OgogCW1vdmRxdQkleG1tNiw2NCglcmRp
KQogCW1vdmRxdQkleG1tNyw4MCglcmRpKQogCS5ieXRlCTB4ZjMsMHhjMworCiBMJFNFSF9lbmRf
ZWNwX25pc3R6MjU2X3NlbGVjdF93NToKIAogCkBAIC0yMDQyLDYgKzIwNTIsNyBAQCBMJFNFSF9l
bmRfZWNwX25pc3R6MjU2X3NlbGVjdF93NToKIAogLnAyYWxpZ24JNQogX2VjcF9uaXN0ejI1Nl9z
ZWxlY3Rfdzc6CisKIAlsZWFxCV9PUEVOU1NMX2lhMzJjYXBfUCglcmlwKSwlcmF4CiAJbW92cQk4
KCVyYXgpLCVyYXgKIAl0ZXN0bAkkMzIsJWVheApAQCAtMjA4Niw2ICsyMDk3LDcgQEAgTCRzZWxl
Y3RfbG9vcF9zc2Vfdzc6CiAJbW92ZHF1CSV4bW00LDMyKCVyZGkpCiAJbW92ZHF1CSV4bW01LDQ4
KCVyZGkpCiAJLmJ5dGUJMHhmMywweGMzCisKIEwkU0VIX2VuZF9lY3BfbmlzdHoyNTZfc2VsZWN0
X3c3OgogCiAKQEAgLTIwOTMsNiArMjEwNSw3IEBAIEwkU0VIX2VuZF9lY3BfbmlzdHoyNTZfc2Vs
ZWN0X3c3OgogCiAucDJhbGlnbgk1CiBlY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzU6CisKIEwk
YXZ4Ml9zZWxlY3RfdzU6CiAJdnplcm91cHBlcgogCXZtb3ZkcWEJTCRUd28oJXJpcCksJXltbTAK
QEAgLTIxNDcsNiArMjE2MCw3IEBAIEwkc2VsZWN0X2xvb3BfYXZ4Ml93NToKIAl2bW92ZHF1CSV5
bW00LDY0KCVyZGkpCiAJdnplcm91cHBlcgogCS5ieXRlCTB4ZjMsMHhjMworCiBMJFNFSF9lbmRf
ZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c1OgogCiAKQEAgLTIxNTcsNiArMjE3MSw3IEBAIEwk
U0VIX2VuZF9lY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzU6CiAKIC5wMmFsaWduCTUKIF9lY3Bf
bmlzdHoyNTZfYXZ4Ml9zZWxlY3Rfdzc6CisKIEwkYXZ4Ml9zZWxlY3Rfdzc6CiAJdnplcm91cHBl
cgogCXZtb3ZkcWEJTCRUaHJlZSglcmlwKSwleW1tMApAQCAtMjIyNiwxMSArMjI0MSwxMyBAQCBM
JHNlbGVjdF9sb29wX2F2eDJfdzc6CiAJdm1vdmRxdQkleW1tMywzMiglcmRpKQogCXZ6ZXJvdXBw
ZXIKIAkuYnl0ZQkweGYzLDB4YzMKKwogTCRTRUhfZW5kX2VjcF9uaXN0ejI1Nl9hdngyX3NlbGVj
dF93NzoKIAogCiAucDJhbGlnbgk1CiBfX2VjcF9uaXN0ejI1Nl9hZGRfdG9xOgorCiAJeG9ycQkl
cjExLCVyMTEKIAlhZGRxCTAoJXJieCksJXIxMgogCWFkY3EJOCglcmJ4KSwlcjEzCkBAIC0yMjYx
LDggKzIyNzgsMTAgQEAgX19lY3BfbmlzdHoyNTZfYWRkX3RvcToKIAogCiAKKwogLnAyYWxpZ24J
NQogX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xOgorCiAJc3VicQkwKCVyYngpLCVyMTIKIAlzYmJx
CTgoJXJieCksJXIxMwogCW1vdnEJJXIxMiwlcmF4CkBAIC0yMjkyLDggKzIzMTEsMTAgQEAgX19l
Y3BfbmlzdHoyNTZfc3ViX2Zyb21xOgogCiAKIAorCiAucDJhbGlnbgk1CiBfX2VjcF9uaXN0ejI1
Nl9zdWJxOgorCiAJc3VicQklcjEyLCVyYXgKIAlzYmJxCSVyMTMsJXJicAogCW1vdnEJJXJheCwl
cjEyCkBAIC0yMzE5LDggKzIzNDAsMTAgQEAgX19lY3BfbmlzdHoyNTZfc3VicToKIAogCiAKKwog
LnAyYWxpZ24JNQogX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxOgorCiAJeG9ycQklcjExLCVyMTEK
IAlhZGRxCSVyMTIsJXIxMgogCWFkY3EJJXIxMywlcjEzCkBAIC0yMzQ5LDYgKzIzNzIsNyBAQCBf
X2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnE6CiAKIAkuYnl0ZQkweGYzLDB4YzMKIAorCiAuZ2xvYmwJ
X2VjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGUKIC5wcml2YXRlX2V4dGVybiBfZWNwX25pc3R6MjU2
X3BvaW50X2RvdWJsZQogCkBAIC0yNzQ4LDE1ICsyNzcyLDIyIEBAIEwkcG9pbnRfYWRkcV9ib2R5
OgogCW9ycQklcjgsJXIxMgogCW9ycQklcjksJXIxMgogCi0uYnl0ZQkweDNlCi0Jam56CUwkYWRk
X3Byb2NlZWRxCiAuYnl0ZQkxMDIsNzMsMTUsMTI2LDIwOAogLmJ5dGUJMTAyLDczLDE1LDEyNiwy
MTcKLQl0ZXN0cQklcjgsJXI4CisJb3JxCSVyOCwlcjEyCisuYnl0ZQkweDNlCiAJam56CUwkYWRk
X3Byb2NlZWRxCisKKworCiAJdGVzdHEJJXI5LCVyOQogCWp6CUwkYWRkX2RvdWJsZXEKIAorCisK
KworCisKIC5ieXRlCTEwMiw3MiwxNSwxMjYsMTk5CiAJcHhvcgkleG1tMCwleG1tMAogCW1vdmRx
dQkleG1tMCwwKCVyZGkpCkBAIC0yNzcyLDggKzI4MDMsMTAgQEAgTCRhZGRfZG91YmxlcToKIC5i
eXRlCTEwMiw3MiwxNSwxMjYsMjA2CiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5OQogCWFkZHEJJDQx
NiwlcnNwCisKIAlqbXAJTCRwb2ludF9kb3VibGVfc2hvcnRjdXRxCiAKKwogLnAyYWxpZ24JNQog
TCRhZGRfcHJvY2VlZHE6CiAJbW92cQkwKzY0KCVyc3ApLCVyYXgKQEAgLTMzMzAsNiArMzM2Myw3
IEBAIEwkYWRkX2FmZmluZXFfZXBpbG9ndWU6CiAKIC5wMmFsaWduCTUKIF9fZWNwX25pc3R6MjU2
X2FkZF90b3g6CisKIAl4b3JxCSVyMTEsJXIxMQogCWFkY3EJMCglcmJ4KSwlcjEyCiAJYWRjcQk4
KCVyYngpLCVyMTMKQEAgLTMzNjEsOCArMzM5NSwxMCBAQCBfX2VjcF9uaXN0ejI1Nl9hZGRfdG94
OgogCiAKIAorCiAucDJhbGlnbgk1CiBfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXg6CisKIAl4b3Jx
CSVyMTEsJXIxMQogCXNiYnEJMCglcmJ4KSwlcjEyCiAJc2JicQk4KCVyYngpLCVyMTMKQEAgLTMz
OTQsOCArMzQzMCwxMCBAQCBfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXg6CiAKIAogCisKIC5wMmFs
aWduCTUKIF9fZWNwX25pc3R6MjU2X3N1Yng6CisKIAl4b3JxCSVyMTEsJXIxMQogCXNiYnEJJXIx
MiwlcmF4CiAJc2JicQklcjEzLCVyYnAKQEAgLTM0MjMsOCArMzQ2MSwxMCBAQCBfX2VjcF9uaXN0
ejI1Nl9zdWJ4OgogCiAKIAorCiAucDJhbGlnbgk1CiBfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMng6
CisKIAl4b3JxCSVyMTEsJXIxMQogCWFkY3EJJXIxMiwlcjEyCiAJYWRjcQklcjEzLCVyMTMKQEAg
LTM0NTUsNiArMzQ5NSw3IEBAIF9fZWNwX25pc3R6MjU2X211bF9ieV8yeDoKIAkuYnl0ZQkweGYz
LDB4YzMKIAogCisKIC5wMmFsaWduCTUKIGVjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGV4OgogCkBA
IC0zODQxLDE1ICszODgyLDIyIEBAIEwkcG9pbnRfYWRkeF9ib2R5OgogCW9ycQklcjgsJXIxMgog
CW9ycQklcjksJXIxMgogCi0uYnl0ZQkweDNlCi0Jam56CUwkYWRkX3Byb2NlZWR4CiAuYnl0ZQkx
MDIsNzMsMTUsMTI2LDIwOAogLmJ5dGUJMTAyLDczLDE1LDEyNiwyMTcKLQl0ZXN0cQklcjgsJXI4
CisJb3JxCSVyOCwlcjEyCisuYnl0ZQkweDNlCiAJam56CUwkYWRkX3Byb2NlZWR4CisKKworCiAJ
dGVzdHEJJXI5LCVyOQogCWp6CUwkYWRkX2RvdWJsZXgKIAorCisKKworCisKIC5ieXRlCTEwMiw3
MiwxNSwxMjYsMTk5CiAJcHhvcgkleG1tMCwleG1tMAogCW1vdmRxdQkleG1tMCwwKCVyZGkpCkBA
IC0zODY1LDggKzM5MTMsMTAgQEAgTCRhZGRfZG91YmxleDoKIC5ieXRlCTEwMiw3MiwxNSwxMjYs
MjA2CiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5OQogCWFkZHEJJDQxNiwlcnNwCisKIAlqbXAJTCRw
b2ludF9kb3VibGVfc2hvcnRjdXR4CiAKKwogLnAyYWxpZ24JNQogTCRhZGRfcHJvY2VlZHg6CiAJ
bW92cQkwKzY0KCVyc3ApLCVyZHgKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNt
b2R1bGUvcDI1Nl9iZWV1LXg4Nl82NC1hc20uUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1
bGUvcDI1Nl9iZWV1LXg4Nl82NC1hc20uUwppbmRleCA0NDZkYzM0OTc3Y2FhOTBhNjdkMjNiMjdk
YjA0NGU2OGVkMWVlNmRjLi42NmZjZmEzMzA1ZWNkZDYxYTBlZTE2YjY3NDJmYmIzMTNlMDllN2I4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3AyNTZfYmVldS14ODZf
NjQtYXNtLlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9wMjU2X2JlZXUteDg2
XzY0LWFzbS5TCkBAIC0yMiw5ICsyMiw2IEBAIF9iZWV1X21vZF9pbnZlcnNlX3ZhcnRpbWU6CiAK
IAlwdXNocQklcmJwCiAKLQltb3ZxCSVyc3AsJXJicAotCi0KIAlwdXNocQklcjEyCiAKIAlwdXNo
cQklcjEzCkBAIC0zOSw2ICszNiw3IEBAIF9iZWV1X21vZF9pbnZlcnNlX3ZhcnRpbWU6CiAKIAog
CXN1YnEJJDgwLCVyc3AKKwogCW1vdnEJJXJkaSwwKCVyc3ApCiAKIApAQCAtMzA4LDYgKzMwNiw3
IEBAIEwkYmVldV9lcnI6CiAKIEwkYmVldV9maW5pc2g6CiAJYWRkcQkkODAsJXJzcAorCiAJcG9w
cQklcnNpCiAKIAlwb3BxCSVyYngKQEAgLTMyMiw5ICszMjEsOCBAQCBMJGJlZXVfZmluaXNoOgog
CiAJcG9wcQklcmJwCiAKLQotCiAJLmJ5dGUJMHhmMywweGMzCiAKIAorCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvcmRyYW5kLXg4Nl82NC5TIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFj
LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9yZHJhbmQteDg2XzY0LlMKaW5kZXggZTY1YjVkNjQ1
MDllOWMyNmVkMTI5ZDZlZmI4MjYzOTViYjBhMTM0My4uZjZmMmJlN2FlMWNmMjVkNTVlMjA3Yzk1
YTNmYmNlZWQwMzI3YmUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVs
ZS9yZHJhbmQteDg2XzY0LlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9yZHJh
bmQteDg2XzY0LlMKQEAgLTIzLDEyICsyMywxMCBAQAogX0NSWVBUT19yZHJhbmQ6CiAKIAl4b3Jx
CSVyYXgsJXJheAotCi0KLS5ieXRlCTB4NDgsIDB4MGYsIDB4YzcsIDB4ZjEKKy5ieXRlCTcyLDE1
LDE5OSwyNDIKIAogCWFkY3EJJXJheCwlcmF4Ci0JbW92cQklcmN4LDAoJXJkaSkKKwltb3ZxCSVy
ZHgsMCglcmRpKQogCS5ieXRlCTB4ZjMsMHhjMwogCiAKQEAgLTM2LDYgKzM0LDcgQEAgX0NSWVBU
T19yZHJhbmQ6CiAKIAogCisKIC5nbG9ibAlfQ1JZUFRPX3JkcmFuZF9tdWx0aXBsZThfYnVmCiAu
cHJpdmF0ZV9leHRlcm4gX0NSWVBUT19yZHJhbmRfbXVsdGlwbGU4X2J1ZgogCkBAIC00Niw5ICs0
NSw3IEBAIF9DUllQVE9fcmRyYW5kX211bHRpcGxlOF9idWY6CiAJanoJTCRvdXQKIAltb3ZxCSQ4
LCVyZHgKIEwkbG9vcDoKLQotCi0uYnl0ZQkweDQ4LCAweDBmLCAweGM3LCAweGYxCisuYnl0ZQk3
MiwxNSwxOTksMjQxCiAJam5jCUwkZXJyCiAJbW92cQklcmN4LDAoJXJkaSkKIAlhZGRxCSVyZHgs
JXJkaQpAQCAtNjEsNCArNTgsNSBAQCBMJGVycjoKIAl4b3JxCSVyYXgsJXJheAogCS5ieXRlCTB4
ZjMsMHhjMwogCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlwc21v
ZHVsZS9yc2F6LWF2eDIuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvcnNhei1hdngy
LlMKaW5kZXggZTQzNDViZGMyMzFhZGYyNjM1YTdkMDg0NjdiZmUxOTI5YTJjMWMxYy4uZTljYWU3
OGM1ZGQyNWY4NzYwZGZjZDhjZTg0N2MzNTdlMzA2MDM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82
NC9jcnlwdG8vZmlwc21vZHVsZS9yc2F6LWF2eDIuUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9m
aXBzbW9kdWxlL3JzYXotYXZ4Mi5TCkBAIC0xMjI4LDYgKzEyMjgsNyBAQCBMJG11bF8xMDI0X2Vw
aWxvZ3VlOgogCiAucDJhbGlnbgk1CiBfcnNhel8xMDI0X3JlZDJub3JtX2F2eDI6CisKIAlzdWJx
CSQtMTI4LCVyc2kKIAl4b3JxCSVyYXgsJXJheAogCW1vdnEJLTEyOCglcnNpKSwlcjgKQEAgLTE0
MjEsMTEgKzE0MjIsMTMgQEAgX3JzYXpfMTAyNF9yZWQybm9ybV9hdngyOgogCS5ieXRlCTB4ZjMs
MHhjMwogCiAKKwogLmdsb2JsCV9yc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MgogLnByaXZhdGVfZXh0
ZXJuIF9yc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MgogCiAucDJhbGlnbgk1CiBfcnNhel8xMDI0X25v
cm0ycmVkX2F2eDI6CisKIAlzdWJxCSQtMTI4LCVyZGkKIAltb3ZxCSglcnNpKSwlcjgKIAltb3Zs
CSQweDFmZmZmZmZmLCVlYXgKQEAgLTE1NzksMTEgKzE1ODIsMTMgQEAgX3JzYXpfMTAyNF9ub3Jt
MnJlZF9hdngyOgogCW1vdnEJJXI4LDE4NCglcmRpKQogCS5ieXRlCTB4ZjMsMHhjMwogCisKIC5n
bG9ibAlfcnNhel8xMDI0X3NjYXR0ZXI1X2F2eDIKIC5wcml2YXRlX2V4dGVybiBfcnNhel8xMDI0
X3NjYXR0ZXI1X2F2eDIKIAogLnAyYWxpZ24JNQogX3JzYXpfMTAyNF9zY2F0dGVyNV9hdngyOgor
CiAJdnplcm91cHBlcgogCXZtb3ZkcXUJTCRzY2F0dGVyX3Blcm1kKCVyaXApLCV5bW01CiAJc2hs
bAkkNCwlZWR4CkBAIC0xNjA1LDYgKzE2MTAsNyBAQCBMJG9vcF9zY2F0dGVyXzEwMjQ6CiAJLmJ5
dGUJMHhmMywweGMzCiAKIAorCiAuZ2xvYmwJX3JzYXpfMTAyNF9nYXRoZXI1X2F2eDIKIC5wcml2
YXRlX2V4dGVybiBfcnNhel8xMDI0X2dhdGhlcjVfYXZ4MgogCkBAIC0xNzI3LDI0ICsxNzMzLDYg
QEAgTCRvb3BfZ2F0aGVyXzEwMjQ6CiAKIEwkU0VIX2VuZF9yc2F6XzEwMjRfZ2F0aGVyNToKIAot
Ci0uZ2xvYmwJX3JzYXpfYXZ4Ml9lbGlnaWJsZQotLnByaXZhdGVfZXh0ZXJuIF9yc2F6X2F2eDJf
ZWxpZ2libGUKLQotLnAyYWxpZ24JNQotX3JzYXpfYXZ4Ml9lbGlnaWJsZToKLQlsZWFxCV9PUEVO
U1NMX2lhMzJjYXBfUCglcmlwKSwlcmF4Ci0JbW92bAk4KCVyYXgpLCVlYXgKLQltb3ZsCSQ1MjQ1
NDQsJWVjeAotCW1vdmwJJDAsJWVkeAotCWFuZGwJJWVheCwlZWN4Ci0JY21wbAkkNTI0NTQ0LCVl
Y3gKLQljbW92ZWwJJWVkeCwlZWF4Ci0JYW5kbAkkMzIsJWVheAotCXNocmwJJDUsJWVheAotCS5i
eXRlCTB4ZjMsMHhjMwotCi0KIC5wMmFsaWduCTYKIEwkYW5kX21hc2s6CiAucXVhZAkweDFmZmZm
ZmZmLDB4MWZmZmZmZmYsMHgxZmZmZmZmZiwweDFmZmZmZmZmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2
XzY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTUxMi14ODZfNjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRv
L2ZpcHNtb2R1bGUvc2hhNTEyLXg4Nl82NC5TCmluZGV4IDhhNmQxNmNkNmJhZTNjODM4ZjkyOWI0
YzBjOGIyOGRkNjdlOTRmNjguLmM1NTBlNzk0YWNhYmJjZDE1ZTAxNjc4ZmJjNWY1NzZhOGZjY2Ez
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLXg4Nl82
NC5TCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLXg4Nl82NC5TCkBA
IC0yNCw4ICsyNCw2IEBAIF9zaGE1MTJfYmxvY2tfZGF0YV9vcmRlcjoKIAltb3ZsCTAoJXIxMSks
JXI5ZAogCW1vdmwJNCglcjExKSwlcjEwZAogCW1vdmwJOCglcjExKSwlcjExZAotCXRlc3RsCSQy
MDQ4LCVyMTBkCi0Jam56CUwkeG9wX3Nob3J0Y3V0CiAJYW5kbAkkMTA3Mzc0MTgyNCwlcjlkCiAJ
YW5kbAkkMjY4NDM1OTY4LCVyMTBkCiAJb3JsCSVyOWQsJXIxMGQKQEAgLTE4MjUsMTEwNyArMTgy
Myw2IEBAIEs1MTI6CiAucXVhZAkweDAwMDEwMjAzMDQwNTA2MDcsMHgwODA5MGEwYjBjMGQwZTBm
CiAuYnl0ZQk4Myw3Miw2NSw1Myw0OSw1MCwzMiw5OCwxMDgsMTExLDk5LDEwNywzMiwxMTYsMTE0
LDk3LDExMCwxMTUsMTAyLDExMSwxMTQsMTA5LDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NCw5
NSw1NCw1Miw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIs
NjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0Niwx
MTEsMTE0LDEwMyw2MiwwCiAKLS5wMmFsaWduCTYKLXNoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hv
cDoKLQotTCR4b3Bfc2hvcnRjdXQ6Ci0JbW92cQklcnNwLCVyYXgKLQotCXB1c2hxCSVyYngKLQot
CXB1c2hxCSVyYnAKLQotCXB1c2hxCSVyMTIKLQotCXB1c2hxCSVyMTMKLQotCXB1c2hxCSVyMTQK
LQotCXB1c2hxCSVyMTUKLQotCXNobHEJJDQsJXJkeAotCXN1YnEJJDE2MCwlcnNwCi0JbGVhcQko
JXJzaSwlcmR4LDgpLCVyZHgKLQlhbmRxCSQtNjQsJXJzcAotCW1vdnEJJXJkaSwxMjgrMCglcnNw
KQotCW1vdnEJJXJzaSwxMjgrOCglcnNwKQotCW1vdnEJJXJkeCwxMjgrMTYoJXJzcCkKLQltb3Zx
CSVyYXgsMTUyKCVyc3ApCi0KLUwkcHJvbG9ndWVfeG9wOgotCi0Jdnplcm91cHBlcgotCW1vdnEJ
MCglcmRpKSwlcmF4Ci0JbW92cQk4KCVyZGkpLCVyYngKLQltb3ZxCTE2KCVyZGkpLCVyY3gKLQlt
b3ZxCTI0KCVyZGkpLCVyZHgKLQltb3ZxCTMyKCVyZGkpLCVyOAotCW1vdnEJNDAoJXJkaSksJXI5
Ci0JbW92cQk0OCglcmRpKSwlcjEwCi0JbW92cQk1NiglcmRpKSwlcjExCi0Jam1wCUwkbG9vcF94
b3AKLS5wMmFsaWduCTQKLUwkbG9vcF94b3A6Ci0Jdm1vdmRxYQlLNTEyKzEyODAoJXJpcCksJXht
bTExCi0Jdm1vdmRxdQkwKCVyc2kpLCV4bW0wCi0JbGVhcQlLNTEyKzEyOCglcmlwKSwlcmJwCi0J
dm1vdmRxdQkxNiglcnNpKSwleG1tMQotCXZtb3ZkcXUJMzIoJXJzaSksJXhtbTIKLQl2cHNodWZi
CSV4bW0xMSwleG1tMCwleG1tMAotCXZtb3ZkcXUJNDgoJXJzaSksJXhtbTMKLQl2cHNodWZiCSV4
bW0xMSwleG1tMSwleG1tMQotCXZtb3ZkcXUJNjQoJXJzaSksJXhtbTQKLQl2cHNodWZiCSV4bW0x
MSwleG1tMiwleG1tMgotCXZtb3ZkcXUJODAoJXJzaSksJXhtbTUKLQl2cHNodWZiCSV4bW0xMSwl
eG1tMywleG1tMwotCXZtb3ZkcXUJOTYoJXJzaSksJXhtbTYKLQl2cHNodWZiCSV4bW0xMSwleG1t
NCwleG1tNAotCXZtb3ZkcXUJMTEyKCVyc2kpLCV4bW03Ci0JdnBzaHVmYgkleG1tMTEsJXhtbTUs
JXhtbTUKLQl2cGFkZHEJLTEyOCglcmJwKSwleG1tMCwleG1tOAotCXZwc2h1ZmIJJXhtbTExLCV4
bW02LCV4bW02Ci0JdnBhZGRxCS05NiglcmJwKSwleG1tMSwleG1tOQotCXZwc2h1ZmIJJXhtbTEx
LCV4bW03LCV4bW03Ci0JdnBhZGRxCS02NCglcmJwKSwleG1tMiwleG1tMTAKLQl2cGFkZHEJLTMy
KCVyYnApLCV4bW0zLCV4bW0xMQotCXZtb3ZkcWEJJXhtbTgsMCglcnNwKQotCXZwYWRkcQkwKCVy
YnApLCV4bW00LCV4bW04Ci0Jdm1vdmRxYQkleG1tOSwxNiglcnNwKQotCXZwYWRkcQkzMiglcmJw
KSwleG1tNSwleG1tOQotCXZtb3ZkcWEJJXhtbTEwLDMyKCVyc3ApCi0JdnBhZGRxCTY0KCVyYnAp
LCV4bW02LCV4bW0xMAotCXZtb3ZkcWEJJXhtbTExLDQ4KCVyc3ApCi0JdnBhZGRxCTk2KCVyYnAp
LCV4bW03LCV4bW0xMQotCXZtb3ZkcWEJJXhtbTgsNjQoJXJzcCkKLQltb3ZxCSVyYXgsJXIxNAot
CXZtb3ZkcWEJJXhtbTksODAoJXJzcCkKLQltb3ZxCSVyYngsJXJkaQotCXZtb3ZkcWEJJXhtbTEw
LDk2KCVyc3ApCi0JeG9ycQklcmN4LCVyZGkKLQl2bW92ZHFhCSV4bW0xMSwxMTIoJXJzcCkKLQlt
b3ZxCSVyOCwlcjEzCi0Jam1wCUwkeG9wXzAwXzQ3Ci0KLS5wMmFsaWduCTQKLUwkeG9wXzAwXzQ3
OgotCWFkZHEJJDI1NiwlcmJwCi0JdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTgKLQlyb3Jx
CSQyMywlcjEzCi0JbW92cQklcjE0LCVyYXgKLQl2cGFsaWducgkkOCwleG1tNCwleG1tNSwleG1t
MTEKLQltb3ZxCSVyOSwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwy
MDAsNTYKLQl4b3JxCSVyOCwlcjEzCi0JeG9ycQklcjEwLCVyMTIKLQl2cHNybHEJJDcsJXhtbTgs
JXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyYXgsJXIxNAotCXZwYWRkcQkleG1tMTEsJXht
bTAsJXhtbTAKLQlhbmRxCSVyOCwlcjEyCi0JeG9ycQklcjgsJXIxMwotCWFkZHEJMCglcnNwKSwl
cjExCi0JbW92cQklcmF4LCVyMTUKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3Ci0JeG9ycQkl
cjEwLCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cHhvcgkleG1tOSwleG1tOCwleG1tOAotCXhvcnEJ
JXJieCwlcjE1Ci0JYWRkcQklcjEyLCVyMTEKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVy
ZGkKLS5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMjMsMwotCXhvcnEJJXJheCwlcjE0Ci0JYWRkcQkl
cjEzLCVyMTEKLQl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKLQl4b3JxCSVyYngsJXJkaQotCXJv
cnEJJDI4LCVyMTQKLQl2cHNybHEJJDYsJXhtbTcsJXhtbTEwCi0JYWRkcQklcjExLCVyZHgKLQlh
ZGRxCSVyZGksJXIxMQotCXZwYWRkcQkleG1tOCwleG1tMCwleG1tMAotCW1vdnEJJXJkeCwlcjEz
Ci0JYWRkcQklcjExLCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgotCXJvcnEJJDIz
LCVyMTMKLQltb3ZxCSVyMTQsJXIxMQotCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCi0JbW92
cQklcjgsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXJkeCwlcjEzCi0JeG9ycQklcjksJXIx
MgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyMTEs
JXIxNAotCWFuZHEJJXJkeCwlcjEyCi0JeG9ycQklcmR4LCVyMTMKLQl2cGFkZHEJJXhtbTExLCV4
bW0wLCV4bW0wCi0JYWRkcQk4KCVyc3ApLCVyMTAKLQltb3ZxCSVyMTEsJXJkaQotCXhvcnEJJXI5
LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cGFkZHEJLTEyOCglcmJwKSwleG1tMCwleG1tMTAKLQl4
b3JxCSVyYXgsJXJkaQotCWFkZHEJJXIxMiwlcjEwCi0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXJk
aSwlcjE1Ci0JeG9ycQklcjExLCVyMTQKLQlhZGRxCSVyMTMsJXIxMAotCXhvcnEJJXJheCwlcjE1
Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXIxMCwlcmN4Ci0JYWRkcQklcjE1LCVyMTAKLQltb3Zx
CSVyY3gsJXIxMwotCWFkZHEJJXIxMCwlcjE0Ci0Jdm1vdmRxYQkleG1tMTAsMCglcnNwKQotCXZw
YWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW04Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwl
cjEwCi0JdnBhbGlnbnIJJDgsJXhtbTUsJXhtbTYsJXhtbTExCi0JbW92cQklcmR4LCVyMTIKLQly
b3JxCSQ1LCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcnEJJXJjeCwlcjEz
Ci0JeG9ycQklcjgsJXIxMgotCXZwc3JscQkkNywleG1tOCwleG1tOAotCXJvcnEJJDQsJXIxMwot
CXhvcnEJJXIxMCwlcjE0Ci0JdnBhZGRxCSV4bW0xMSwleG1tMSwleG1tMQotCWFuZHEJJXJjeCwl
cjEyCi0JeG9ycQklcmN4LCVyMTMKLQlhZGRxCTE2KCVyc3ApLCVyOQotCW1vdnEJJXIxMCwlcjE1
Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNwotCXhvcnEJJXI4LCVyMTIKLQlyb3JxCSQ2LCVy
MTQKLQl2cHhvcgkleG1tOSwleG1tOCwleG1tOAotCXhvcnEJJXIxMSwlcjE1Ci0JYWRkcQklcjEy
LCVyOQotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQotLmJ5dGUJMTQzLDEwNCwxMjAs
MTk1LDIxNiwzCi0JeG9ycQklcjEwLCVyMTQKLQlhZGRxCSVyMTMsJXI5Ci0JdnB4b3IJJXhtbTEw
LCV4bW04LCV4bW04Ci0JeG9ycQklcjExLCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0JdnBzcmxxCSQ2
LCV4bW0wLCV4bW0xMAotCWFkZHEJJXI5LCVyYngKLQlhZGRxCSVyZGksJXI5Ci0JdnBhZGRxCSV4
bW04LCV4bW0xLCV4bW0xCi0JbW92cQklcmJ4LCVyMTMKLQlhZGRxCSVyOSwlcjE0Ci0uYnl0ZQkx
NDMsNzIsMTIwLDE5NSwyMDMsNDIKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVyOQotCXZw
eG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCi0JbW92cQklcmN4LCVyMTIKLQlyb3JxCSQ1LCVyMTQK
LQl4b3JxCSVyYngsJXIxMwotCXhvcnEJJXJkeCwlcjEyCi0JdnB4b3IJJXhtbTksJXhtbTExLCV4
bW0xMQotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXI5LCVyMTQKLQlhbmRxCSVyYngsJXIxMgotCXhv
cnEJJXJieCwlcjEzCi0JdnBhZGRxCSV4bW0xMSwleG1tMSwleG1tMQotCWFkZHEJMjQoJXJzcCks
JXI4Ci0JbW92cQklcjksJXJkaQotCXhvcnEJJXJkeCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnBh
ZGRxCS05NiglcmJwKSwleG1tMSwleG1tMTAKLQl4b3JxCSVyMTAsJXJkaQotCWFkZHEJJXIxMiwl
cjgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUKLQl4b3JxCSVyOSwlcjE0Ci0JYWRk
cQklcjEzLCVyOAotCXhvcnEJJXIxMCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXI4LCVy
YXgKLQlhZGRxCSVyMTUsJXI4Ci0JbW92cQklcmF4LCVyMTMKLQlhZGRxCSVyOCwlcjE0Ci0Jdm1v
dmRxYQkleG1tMTAsMTYoJXJzcCkKLQl2cGFsaWducgkkOCwleG1tMiwleG1tMywleG1tOAotCXJv
cnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXI4Ci0JdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXht
bTExCi0JbW92cQklcmJ4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1
LDIwMCw1NgotCXhvcnEJJXJheCwlcjEzCi0JeG9ycQklcmN4LCVyMTIKLQl2cHNybHEJJDcsJXht
bTgsJXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyOCwlcjE0Ci0JdnBhZGRxCSV4bW0xMSwl
eG1tMiwleG1tMgotCWFuZHEJJXJheCwlcjEyCi0JeG9ycQklcmF4LCVyMTMKLQlhZGRxCTMyKCVy
c3ApLCVyZHgKLQltb3ZxCSVyOCwlcjE1Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNwotCXhv
cnEJJXJjeCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKLQl4
b3JxCSVyOSwlcjE1Ci0JYWRkcQklcjEyLCVyZHgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1
LCVyZGkKLS5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMTcsMwotCXhvcnEJJXI4LCVyMTQKLQlhZGRx
CSVyMTMsJXJkeAotCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAotCXhvcnEJJXI5LCVyZGkKLQly
b3JxCSQyOCwlcjE0Ci0JdnBzcmxxCSQ2LCV4bW0xLCV4bW0xMAotCWFkZHEJJXJkeCwlcjExCi0J
YWRkcQklcmRpLCVyZHgKLQl2cGFkZHEJJXhtbTgsJXhtbTIsJXhtbTIKLQltb3ZxCSVyMTEsJXIx
MwotCWFkZHEJJXJkeCwlcjE0Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKLQlyb3JxCSQy
MywlcjEzCi0JbW92cQklcjE0LCVyZHgKLQl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQotCW1v
dnEJJXJheCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcjExLCVyMTMKLQl4b3JxCSVyYngs
JXIxMgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVy
ZHgsJXIxNAotCWFuZHEJJXIxMSwlcjEyCi0JeG9ycQklcjExLCVyMTMKLQl2cGFkZHEJJXhtbTEx
LCV4bW0yLCV4bW0yCi0JYWRkcQk0MCglcnNwKSwlcmN4Ci0JbW92cQklcmR4LCVyZGkKLQl4b3Jx
CSVyYngsJXIxMgotCXJvcnEJJDYsJXIxNAotCXZwYWRkcQktNjQoJXJicCksJXhtbTIsJXhtbTEw
Ci0JeG9ycQklcjgsJXJkaQotCWFkZHEJJXIxMiwlcmN4Ci0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJ
JXJkaSwlcjE1Ci0JeG9ycQklcmR4LCVyMTQKLQlhZGRxCSVyMTMsJXJjeAotCXhvcnEJJXI4LCVy
MTUKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmN4LCVyMTAKLQlhZGRxCSVyMTUsJXJjeAotCW1v
dnEJJXIxMCwlcjEzCi0JYWRkcQklcmN4LCVyMTQKLQl2bW92ZHFhCSV4bW0xMCwzMiglcnNwKQot
CXZwYWxpZ25yCSQ4LCV4bW0zLCV4bW00LCV4bW04Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIx
NCwlcmN4Ci0JdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXhtbTExCi0JbW92cQklcjExLCVyMTIK
LQlyb3JxCSQ1LCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcnEJJXIxMCwl
cjEzCi0JeG9ycQklcmF4LCVyMTIKLQl2cHNybHEJJDcsJXhtbTgsJXhtbTgKLQlyb3JxCSQ0LCVy
MTMKLQl4b3JxCSVyY3gsJXIxNAotCXZwYWRkcQkleG1tMTEsJXhtbTMsJXhtbTMKLQlhbmRxCSVy
MTAsJXIxMgotCXhvcnEJJXIxMCwlcjEzCi0JYWRkcQk0OCglcnNwKSwlcmJ4Ci0JbW92cQklcmN4
LCVyMTUKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3Ci0JeG9ycQklcmF4LCVyMTIKLQlyb3Jx
CSQ2LCVyMTQKLQl2cHhvcgkleG1tOSwleG1tOCwleG1tOAotCXhvcnEJJXJkeCwlcjE1Ci0JYWRk
cQklcjEyLCVyYngKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLS5ieXRlCTE0Mywx
MDQsMTIwLDE5NSwyMTgsMwotCXhvcnEJJXJjeCwlcjE0Ci0JYWRkcQklcjEzLCVyYngKLQl2cHhv
cgkleG1tMTAsJXhtbTgsJXhtbTgKLQl4b3JxCSVyZHgsJXJkaQotCXJvcnEJJDI4LCVyMTQKLQl2
cHNybHEJJDYsJXhtbTIsJXhtbTEwCi0JYWRkcQklcmJ4LCVyOQotCWFkZHEJJXJkaSwlcmJ4Ci0J
dnBhZGRxCSV4bW04LCV4bW0zLCV4bW0zCi0JbW92cQklcjksJXIxMwotCWFkZHEJJXJieCwlcjE0
Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0
LCVyYngKLQl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQotCW1vdnEJJXIxMCwlcjEyCi0Jcm9y
cQkkNSwlcjE0Ci0JeG9ycQklcjksJXIxMwotCXhvcnEJJXIxMSwlcjEyCi0JdnB4b3IJJXhtbTks
JXhtbTExLCV4bW0xMQotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXJieCwlcjE0Ci0JYW5kcQklcjks
JXIxMgotCXhvcnEJJXI5LCVyMTMKLQl2cGFkZHEJJXhtbTExLCV4bW0zLCV4bW0zCi0JYWRkcQk1
NiglcnNwKSwlcmF4Ci0JbW92cQklcmJ4LCVyZGkKLQl4b3JxCSVyMTEsJXIxMgotCXJvcnEJJDYs
JXIxNAotCXZwYWRkcQktMzIoJXJicCksJXhtbTMsJXhtbTEwCi0JeG9ycQklcmN4LCVyZGkKLQlh
ZGRxCSVyMTIsJXJheAotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyZGksJXIxNQotCXhvcnEJJXJi
eCwlcjE0Ci0JYWRkcQklcjEzLCVyYXgKLQl4b3JxCSVyY3gsJXIxNQotCXJvcnEJJDI4LCVyMTQK
LQlhZGRxCSVyYXgsJXI4Ci0JYWRkcQklcjE1LCVyYXgKLQltb3ZxCSVyOCwlcjEzCi0JYWRkcQkl
cmF4LCVyMTQKLQl2bW92ZHFhCSV4bW0xMCw0OCglcnNwKQotCXZwYWxpZ25yCSQ4LCV4bW00LCV4
bW01LCV4bW04Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmF4Ci0JdnBhbGlnbnIJJDgs
JXhtbTAsJXhtbTEsJXhtbTExCi0JbW92cQklcjksJXIxMgotCXJvcnEJJDUsJXIxNAotLmJ5dGUJ
MTQzLDcyLDEyMCwxOTUsMjAwLDU2Ci0JeG9ycQklcjgsJXIxMwotCXhvcnEJJXIxMCwlcjEyCi0J
dnBzcmxxCSQ3LCV4bW04LCV4bW04Ci0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcmF4LCVyMTQKLQl2
cGFkZHEJJXhtbTExLCV4bW00LCV4bW00Ci0JYW5kcQklcjgsJXIxMgotCXhvcnEJJXI4LCVyMTMK
LQlhZGRxCTY0KCVyc3ApLCVyMTEKLQltb3ZxCSVyYXgsJXIxNQotLmJ5dGUJMTQzLDcyLDEyMCwx
OTUsMjA5LDcKLQl4b3JxCSVyMTAsJXIxMgotCXJvcnEJJDYsJXIxNAotCXZweG9yCSV4bW05LCV4
bW04LCV4bW04Ci0JeG9ycQklcmJ4LCVyMTUKLQlhZGRxCSVyMTIsJXIxMQotCXJvcnEJJDE0LCVy
MTMKLQlhbmRxCSVyMTUsJXJkaQotLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIxOSwzCi0JeG9ycQkl
cmF4LCVyMTQKLQlhZGRxCSVyMTMsJXIxMQotCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAotCXhv
cnEJJXJieCwlcmRpCi0Jcm9ycQkkMjgsJXIxNAotCXZwc3JscQkkNiwleG1tMywleG1tMTAKLQlh
ZGRxCSVyMTEsJXJkeAotCWFkZHEJJXJkaSwlcjExCi0JdnBhZGRxCSV4bW04LCV4bW00LCV4bW00
Ci0JbW92cQklcmR4LCVyMTMKLQlhZGRxCSVyMTEsJXIxNAotLmJ5dGUJMTQzLDcyLDEyMCwxOTUs
MjAzLDQyCi0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcjExCi0JdnB4b3IJJXhtbTEwLCV4
bW0xMSwleG1tMTEKLQltb3ZxCSVyOCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcmR4LCVy
MTMKLQl4b3JxCSVyOSwlcjEyCi0JdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQotCXJvcnEJJDQs
JXIxMwotCXhvcnEJJXIxMSwlcjE0Ci0JYW5kcQklcmR4LCVyMTIKLQl4b3JxCSVyZHgsJXIxMwot
CXZwYWRkcQkleG1tMTEsJXhtbTQsJXhtbTQKLQlhZGRxCTcyKCVyc3ApLCVyMTAKLQltb3ZxCSVy
MTEsJXJkaQotCXhvcnEJJXI5LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cGFkZHEJMCglcmJwKSwl
eG1tNCwleG1tMTAKLQl4b3JxCSVyYXgsJXJkaQotCWFkZHEJJXIxMiwlcjEwCi0Jcm9ycQkkMTQs
JXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjExLCVyMTQKLQlhZGRxCSVyMTMsJXIxMAot
CXhvcnEJJXJheCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXIxMCwlcmN4Ci0JYWRkcQkl
cjE1LCVyMTAKLQltb3ZxCSVyY3gsJXIxMwotCWFkZHEJJXIxMCwlcjE0Ci0Jdm1vdmRxYQkleG1t
MTAsNjQoJXJzcCkKLQl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tOAotCXJvcnEJJDIzLCVy
MTMKLQltb3ZxCSVyMTQsJXIxMAotCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW0xMQotCW1v
dnEJJXJkeCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYK
LQl4b3JxCSVyY3gsJXIxMwotCXhvcnEJJXI4LCVyMTIKLQl2cHNybHEJJDcsJXhtbTgsJXhtbTgK
LQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyMTAsJXIxNAotCXZwYWRkcQkleG1tMTEsJXhtbTUsJXht
bTUKLQlhbmRxCSVyY3gsJXIxMgotCXhvcnEJJXJjeCwlcjEzCi0JYWRkcQk4MCglcnNwKSwlcjkK
LQltb3ZxCSVyMTAsJXIxNQotLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKLQl4b3JxCSVyOCwl
cjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKLQl4b3JxCSVyMTEs
JXIxNQotCWFkZHEJJXIxMiwlcjkKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLS5i
eXRlCTE0MywxMDQsMTIwLDE5NSwyMjAsMwotCXhvcnEJJXIxMCwlcjE0Ci0JYWRkcQklcjEzLCVy
OQotCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAotCXhvcnEJJXIxMSwlcmRpCi0Jcm9ycQkkMjgs
JXIxNAotCXZwc3JscQkkNiwleG1tNCwleG1tMTAKLQlhZGRxCSVyOSwlcmJ4Ci0JYWRkcQklcmRp
LCVyOQotCXZwYWRkcQkleG1tOCwleG1tNSwleG1tNQotCW1vdnEJJXJieCwlcjEzCi0JYWRkcQkl
cjksJXIxNAotLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCi0Jcm9ycQkkMjMsJXIxMwotCW1v
dnEJJXIxNCwlcjkKLQl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQotCW1vdnEJJXJjeCwlcjEy
Ci0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcmJ4LCVyMTMKLQl4b3JxCSVyZHgsJXIxMgotCXZweG9y
CSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyOSwlcjE0Ci0JYW5k
cQklcmJ4LCVyMTIKLQl4b3JxCSVyYngsJXIxMwotCXZwYWRkcQkleG1tMTEsJXhtbTUsJXhtbTUK
LQlhZGRxCTg4KCVyc3ApLCVyOAotCW1vdnEJJXI5LCVyZGkKLQl4b3JxCSVyZHgsJXIxMgotCXJv
cnEJJDYsJXIxNAotCXZwYWRkcQkzMiglcmJwKSwleG1tNSwleG1tMTAKLQl4b3JxCSVyMTAsJXJk
aQotCWFkZHEJJXIxMiwlcjgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUKLQl4b3Jx
CSVyOSwlcjE0Ci0JYWRkcQklcjEzLCVyOAotCXhvcnEJJXIxMCwlcjE1Ci0Jcm9ycQkkMjgsJXIx
NAotCWFkZHEJJXI4LCVyYXgKLQlhZGRxCSVyMTUsJXI4Ci0JbW92cQklcmF4LCVyMTMKLQlhZGRx
CSVyOCwlcjE0Ci0Jdm1vdmRxYQkleG1tMTAsODAoJXJzcCkKLQl2cGFsaWducgkkOCwleG1tNiwl
eG1tNywleG1tOAotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXI4Ci0JdnBhbGlnbnIJJDgs
JXhtbTIsJXhtbTMsJXhtbTExCi0JbW92cQklcmJ4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLS5ieXRl
CTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcnEJJXJheCwlcjEzCi0JeG9ycQklcmN4LCVyMTIK
LQl2cHNybHEJJDcsJXhtbTgsJXhtbTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyOCwlcjE0Ci0J
dnBhZGRxCSV4bW0xMSwleG1tNiwleG1tNgotCWFuZHEJJXJheCwlcjEyCi0JeG9ycQklcmF4LCVy
MTMKLQlhZGRxCTk2KCVyc3ApLCVyZHgKLQltb3ZxCSVyOCwlcjE1Ci0uYnl0ZQkxNDMsNzIsMTIw
LDE5NSwyMDksNwotCXhvcnEJJXJjeCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnB4b3IJJXhtbTks
JXhtbTgsJXhtbTgKLQl4b3JxCSVyOSwlcjE1Ci0JYWRkcQklcjEyLCVyZHgKLQlyb3JxCSQxNCwl
cjEzCi0JYW5kcQklcjE1LCVyZGkKLS5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMjEsMwotCXhvcnEJ
JXI4LCVyMTQKLQlhZGRxCSVyMTMsJXJkeAotCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAotCXhv
cnEJJXI5LCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0JdnBzcmxxCSQ2LCV4bW01LCV4bW0xMAotCWFk
ZHEJJXJkeCwlcjExCi0JYWRkcQklcmRpLCVyZHgKLQl2cGFkZHEJJXhtbTgsJXhtbTYsJXhtbTYK
LQltb3ZxCSVyMTEsJXIxMwotCWFkZHEJJXJkeCwlcjE0Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwy
MDMsNDIKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVyZHgKLQl2cHhvcgkleG1tMTAsJXht
bTExLCV4bW0xMQotCW1vdnEJJXJheCwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcjExLCVy
MTMKLQl4b3JxCSVyYngsJXIxMgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3JxCSQ0
LCVyMTMKLQl4b3JxCSVyZHgsJXIxNAotCWFuZHEJJXIxMSwlcjEyCi0JeG9ycQklcjExLCVyMTMK
LQl2cGFkZHEJJXhtbTExLCV4bW02LCV4bW02Ci0JYWRkcQkxMDQoJXJzcCksJXJjeAotCW1vdnEJ
JXJkeCwlcmRpCi0JeG9ycQklcmJ4LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl2cGFkZHEJNjQoJXJi
cCksJXhtbTYsJXhtbTEwCi0JeG9ycQklcjgsJXJkaQotCWFkZHEJJXIxMiwlcmN4Ci0Jcm9ycQkk
MTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcmR4LCVyMTQKLQlhZGRxCSVyMTMsJXJj
eAotCXhvcnEJJXI4LCVyMTUKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmN4LCVyMTAKLQlhZGRx
CSVyMTUsJXJjeAotCW1vdnEJJXIxMCwlcjEzCi0JYWRkcQklcmN4LCVyMTQKLQl2bW92ZHFhCSV4
bW0xMCw5NiglcnNwKQotCXZwYWxpZ25yCSQ4LCV4bW03LCV4bW0wLCV4bW04Ci0Jcm9ycQkkMjMs
JXIxMwotCW1vdnEJJXIxNCwlcmN4Ci0JdnBhbGlnbnIJJDgsJXhtbTMsJXhtbTQsJXhtbTExCi0J
bW92cQklcjExLCVyMTIKLQlyb3JxCSQ1LCVyMTQKLS5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1
NgotCXhvcnEJJXIxMCwlcjEzCi0JeG9ycQklcmF4LCVyMTIKLQl2cHNybHEJJDcsJXhtbTgsJXht
bTgKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyY3gsJXIxNAotCXZwYWRkcQkleG1tMTEsJXhtbTcs
JXhtbTcKLQlhbmRxCSVyMTAsJXIxMgotCXhvcnEJJXIxMCwlcjEzCi0JYWRkcQkxMTIoJXJzcCks
JXJieAotCW1vdnEJJXJjeCwlcjE1Ci0uYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNwotCXhvcnEJ
JXJheCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKLQl4b3Jx
CSVyZHgsJXIxNQotCWFkZHEJJXIxMiwlcmJ4Ci0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXIxNSwl
cmRpCi0uYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjIyLDMKLQl4b3JxCSVyY3gsJXIxNAotCWFkZHEJ
JXIxMywlcmJ4Ci0JdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04Ci0JeG9ycQklcmR4LCVyZGkKLQly
b3JxCSQyOCwlcjE0Ci0JdnBzcmxxCSQ2LCV4bW02LCV4bW0xMAotCWFkZHEJJXJieCwlcjkKLQlh
ZGRxCSVyZGksJXJieAotCXZwYWRkcQkleG1tOCwleG1tNywleG1tNwotCW1vdnEJJXI5LCVyMTMK
LQlhZGRxCSVyYngsJXIxNAotLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCi0Jcm9ycQkkMjMs
JXIxMwotCW1vdnEJJXIxNCwlcmJ4Ci0JdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKLQltb3Zx
CSVyMTAsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXI5LCVyMTMKLQl4b3JxCSVyMTEsJXIx
MgotCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyYngs
JXIxNAotCWFuZHEJJXI5LCVyMTIKLQl4b3JxCSVyOSwlcjEzCi0JdnBhZGRxCSV4bW0xMSwleG1t
NywleG1tNwotCWFkZHEJMTIwKCVyc3ApLCVyYXgKLQltb3ZxCSVyYngsJXJkaQotCXhvcnEJJXIx
MSwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JdnBhZGRxCTk2KCVyYnApLCV4bW03LCV4bW0xMAotCXhv
cnEJJXJjeCwlcmRpCi0JYWRkcQklcjEyLCVyYXgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcmRp
LCVyMTUKLQl4b3JxCSVyYngsJXIxNAotCWFkZHEJJXIxMywlcmF4Ci0JeG9ycQklcmN4LCVyMTUK
LQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmF4LCVyOAotCWFkZHEJJXIxNSwlcmF4Ci0JbW92cQkl
cjgsJXIxMwotCWFkZHEJJXJheCwlcjE0Ci0Jdm1vdmRxYQkleG1tMTAsMTEyKCVyc3ApCi0JY21w
YgkkMCwxMzUoJXJicCkKLQlqbmUJTCR4b3BfMDBfNDcKLQlyb3JxCSQyMywlcjEzCi0JbW92cQkl
cjE0LCVyYXgKLQltb3ZxCSVyOSwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcjgsJXIxMwot
CXhvcnEJJXIxMCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcmF4LCVyMTQKLQlhbmRxCSVy
OCwlcjEyCi0JeG9ycQklcjgsJXIxMwotCWFkZHEJMCglcnNwKSwlcjExCi0JbW92cQklcmF4LCVy
MTUKLQl4b3JxCSVyMTAsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXJieCwlcjE1Ci0JYWRk
cQklcjEyLCVyMTEKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLQl4b3JxCSVyYXgs
JXIxNAotCWFkZHEJJXIxMywlcjExCi0JeG9ycQklcmJ4LCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0J
YWRkcQklcjExLCVyZHgKLQlhZGRxCSVyZGksJXIxMQotCW1vdnEJJXJkeCwlcjEzCi0JYWRkcQkl
cjExLCVyMTQKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVyMTEKLQltb3ZxCSVyOCwlcjEy
Ci0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcmR4LCVyMTMKLQl4b3JxCSVyOSwlcjEyCi0Jcm9ycQkk
NCwlcjEzCi0JeG9ycQklcjExLCVyMTQKLQlhbmRxCSVyZHgsJXIxMgotCXhvcnEJJXJkeCwlcjEz
Ci0JYWRkcQk4KCVyc3ApLCVyMTAKLQltb3ZxCSVyMTEsJXJkaQotCXhvcnEJJXI5LCVyMTIKLQly
b3JxCSQ2LCVyMTQKLQl4b3JxCSVyYXgsJXJkaQotCWFkZHEJJXIxMiwlcjEwCi0Jcm9ycQkkMTQs
JXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjExLCVyMTQKLQlhZGRxCSVyMTMsJXIxMAot
CXhvcnEJJXJheCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXIxMCwlcmN4Ci0JYWRkcQkl
cjE1LCVyMTAKLQltb3ZxCSVyY3gsJXIxMwotCWFkZHEJJXIxMCwlcjE0Ci0Jcm9ycQkkMjMsJXIx
MwotCW1vdnEJJXIxNCwlcjEwCi0JbW92cQklcmR4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3Jx
CSVyY3gsJXIxMwotCXhvcnEJJXI4LCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyMTAsJXIx
NAotCWFuZHEJJXJjeCwlcjEyCi0JeG9ycQklcmN4LCVyMTMKLQlhZGRxCTE2KCVyc3ApLCVyOQot
CW1vdnEJJXIxMCwlcjE1Ci0JeG9ycQklcjgsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXIx
MSwlcjE1Ci0JYWRkcQklcjEyLCVyOQotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQot
CXhvcnEJJXIxMCwlcjE0Ci0JYWRkcQklcjEzLCVyOQotCXhvcnEJJXIxMSwlcmRpCi0Jcm9ycQkk
MjgsJXIxNAotCWFkZHEJJXI5LCVyYngKLQlhZGRxCSVyZGksJXI5Ci0JbW92cQklcmJ4LCVyMTMK
LQlhZGRxCSVyOSwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcjkKLQltb3ZxCSVy
Y3gsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXJieCwlcjEzCi0JeG9ycQklcmR4LCVyMTIK
LQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyOSwlcjE0Ci0JYW5kcQklcmJ4LCVyMTIKLQl4b3JxCSVy
YngsJXIxMwotCWFkZHEJMjQoJXJzcCksJXI4Ci0JbW92cQklcjksJXJkaQotCXhvcnEJJXJkeCwl
cjEyCi0Jcm9ycQkkNiwlcjE0Ci0JeG9ycQklcjEwLCVyZGkKLQlhZGRxCSVyMTIsJXI4Ci0Jcm9y
cQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1Ci0JeG9ycQklcjksJXIxNAotCWFkZHEJJXIxMywl
cjgKLQl4b3JxCSVyMTAsJXIxNQotCXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyOCwlcmF4Ci0JYWRk
cQklcjE1LCVyOAotCW1vdnEJJXJheCwlcjEzCi0JYWRkcQklcjgsJXIxNAotCXJvcnEJJDIzLCVy
MTMKLQltb3ZxCSVyMTQsJXI4Ci0JbW92cQklcmJ4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3Jx
CSVyYXgsJXIxMwotCXhvcnEJJXJjeCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcjgsJXIx
NAotCWFuZHEJJXJheCwlcjEyCi0JeG9ycQklcmF4LCVyMTMKLQlhZGRxCTMyKCVyc3ApLCVyZHgK
LQltb3ZxCSVyOCwlcjE1Ci0JeG9ycQklcmN4LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl4b3JxCSVy
OSwlcjE1Ci0JYWRkcQklcjEyLCVyZHgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkK
LQl4b3JxCSVyOCwlcjE0Ci0JYWRkcQklcjEzLCVyZHgKLQl4b3JxCSVyOSwlcmRpCi0Jcm9ycQkk
MjgsJXIxNAotCWFkZHEJJXJkeCwlcjExCi0JYWRkcQklcmRpLCVyZHgKLQltb3ZxCSVyMTEsJXIx
MwotCWFkZHEJJXJkeCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmR4Ci0JbW92
cQklcmF4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyMTEsJXIxMwotCXhvcnEJJXJieCwl
cjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcmR4LCVyMTQKLQlhbmRxCSVyMTEsJXIxMgotCXhv
cnEJJXIxMSwlcjEzCi0JYWRkcQk0MCglcnNwKSwlcmN4Ci0JbW92cQklcmR4LCVyZGkKLQl4b3Jx
CSVyYngsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXI4LCVyZGkKLQlhZGRxCSVyMTIsJXJj
eAotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyZGksJXIxNQotCXhvcnEJJXJkeCwlcjE0Ci0JYWRk
cQklcjEzLCVyY3gKLQl4b3JxCSVyOCwlcjE1Ci0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXJjeCwl
cjEwCi0JYWRkcQklcjE1LCVyY3gKLQltb3ZxCSVyMTAsJXIxMwotCWFkZHEJJXJjeCwlcjE0Ci0J
cm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmN4Ci0JbW92cQklcjExLCVyMTIKLQlyb3JxCSQ1
LCVyMTQKLQl4b3JxCSVyMTAsJXIxMwotCXhvcnEJJXJheCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0J
eG9ycQklcmN4LCVyMTQKLQlhbmRxCSVyMTAsJXIxMgotCXhvcnEJJXIxMCwlcjEzCi0JYWRkcQk0
OCglcnNwKSwlcmJ4Ci0JbW92cQklcmN4LCVyMTUKLQl4b3JxCSVyYXgsJXIxMgotCXJvcnEJJDYs
JXIxNAotCXhvcnEJJXJkeCwlcjE1Ci0JYWRkcQklcjEyLCVyYngKLQlyb3JxCSQxNCwlcjEzCi0J
YW5kcQklcjE1LCVyZGkKLQl4b3JxCSVyY3gsJXIxNAotCWFkZHEJJXIxMywlcmJ4Ci0JeG9ycQkl
cmR4LCVyZGkKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmJ4LCVyOQotCWFkZHEJJXJkaSwlcmJ4
Ci0JbW92cQklcjksJXIxMwotCWFkZHEJJXJieCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJ
JXIxNCwlcmJ4Ci0JbW92cQklcjEwLCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyOSwlcjEz
Ci0JeG9ycQklcjExLCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyYngsJXIxNAotCWFuZHEJ
JXI5LCVyMTIKLQl4b3JxCSVyOSwlcjEzCi0JYWRkcQk1NiglcnNwKSwlcmF4Ci0JbW92cQklcmJ4
LCVyZGkKLQl4b3JxCSVyMTEsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXJjeCwlcmRpCi0J
YWRkcQklcjEyLCVyYXgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUKLQl4b3JxCSVy
YngsJXIxNAotCWFkZHEJJXIxMywlcmF4Ci0JeG9ycQklcmN4LCVyMTUKLQlyb3JxCSQyOCwlcjE0
Ci0JYWRkcQklcmF4LCVyOAotCWFkZHEJJXIxNSwlcmF4Ci0JbW92cQklcjgsJXIxMwotCWFkZHEJ
JXJheCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmF4Ci0JbW92cQklcjksJXIx
MgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXI4LCVyMTMKLQl4b3JxCSVyMTAsJXIxMgotCXJvcnEJ
JDQsJXIxMwotCXhvcnEJJXJheCwlcjE0Ci0JYW5kcQklcjgsJXIxMgotCXhvcnEJJXI4LCVyMTMK
LQlhZGRxCTY0KCVyc3ApLCVyMTEKLQltb3ZxCSVyYXgsJXIxNQotCXhvcnEJJXIxMCwlcjEyCi0J
cm9ycQkkNiwlcjE0Ci0JeG9ycQklcmJ4LCVyMTUKLQlhZGRxCSVyMTIsJXIxMQotCXJvcnEJJDE0
LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQotCXhvcnEJJXJheCwlcjE0Ci0JYWRkcQklcjEzLCVyMTEK
LQl4b3JxCSVyYngsJXJkaQotCXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyMTEsJXJkeAotCWFkZHEJ
JXJkaSwlcjExCi0JbW92cQklcmR4LCVyMTMKLQlhZGRxCSVyMTEsJXIxNAotCXJvcnEJJDIzLCVy
MTMKLQltb3ZxCSVyMTQsJXIxMQotCW1vdnEJJXI4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3Jx
CSVyZHgsJXIxMwotCXhvcnEJJXI5LCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyMTEsJXIx
NAotCWFuZHEJJXJkeCwlcjEyCi0JeG9ycQklcmR4LCVyMTMKLQlhZGRxCTcyKCVyc3ApLCVyMTAK
LQltb3ZxCSVyMTEsJXJkaQotCXhvcnEJJXI5LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl4b3JxCSVy
YXgsJXJkaQotCWFkZHEJJXIxMiwlcjEwCi0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXJkaSwlcjE1
Ci0JeG9ycQklcjExLCVyMTQKLQlhZGRxCSVyMTMsJXIxMAotCXhvcnEJJXJheCwlcjE1Ci0Jcm9y
cQkkMjgsJXIxNAotCWFkZHEJJXIxMCwlcmN4Ci0JYWRkcQklcjE1LCVyMTAKLQltb3ZxCSVyY3gs
JXIxMwotCWFkZHEJJXIxMCwlcjE0Ci0Jcm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcjEwCi0J
bW92cQklcmR4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyY3gsJXIxMwotCXhvcnEJJXI4
LCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4b3JxCSVyMTAsJXIxNAotCWFuZHEJJXJjeCwlcjEyCi0J
eG9ycQklcmN4LCVyMTMKLQlhZGRxCTgwKCVyc3ApLCVyOQotCW1vdnEJJXIxMCwlcjE1Ci0JeG9y
cQklcjgsJXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXIxMSwlcjE1Ci0JYWRkcQklcjEyLCVy
OQotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQotCXhvcnEJJXIxMCwlcjE0Ci0JYWRk
cQklcjEzLCVyOQotCXhvcnEJJXIxMSwlcmRpCi0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXI5LCVy
YngKLQlhZGRxCSVyZGksJXI5Ci0JbW92cQklcmJ4LCVyMTMKLQlhZGRxCSVyOSwlcjE0Ci0Jcm9y
cQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcjkKLQltb3ZxCSVyY3gsJXIxMgotCXJvcnEJJDUsJXIx
NAotCXhvcnEJJXJieCwlcjEzCi0JeG9ycQklcmR4LCVyMTIKLQlyb3JxCSQ0LCVyMTMKLQl4b3Jx
CSVyOSwlcjE0Ci0JYW5kcQklcmJ4LCVyMTIKLQl4b3JxCSVyYngsJXIxMwotCWFkZHEJODgoJXJz
cCksJXI4Ci0JbW92cQklcjksJXJkaQotCXhvcnEJJXJkeCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0J
eG9ycQklcjEwLCVyZGkKLQlhZGRxCSVyMTIsJXI4Ci0Jcm9ycQkkMTQsJXIxMwotCWFuZHEJJXJk
aSwlcjE1Ci0JeG9ycQklcjksJXIxNAotCWFkZHEJJXIxMywlcjgKLQl4b3JxCSVyMTAsJXIxNQot
CXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyOCwlcmF4Ci0JYWRkcQklcjE1LCVyOAotCW1vdnEJJXJh
eCwlcjEzCi0JYWRkcQklcjgsJXIxNAotCXJvcnEJJDIzLCVyMTMKLQltb3ZxCSVyMTQsJXI4Ci0J
bW92cQklcmJ4LCVyMTIKLQlyb3JxCSQ1LCVyMTQKLQl4b3JxCSVyYXgsJXIxMwotCXhvcnEJJXJj
eCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0JeG9ycQklcjgsJXIxNAotCWFuZHEJJXJheCwlcjEyCi0J
eG9ycQklcmF4LCVyMTMKLQlhZGRxCTk2KCVyc3ApLCVyZHgKLQltb3ZxCSVyOCwlcjE1Ci0JeG9y
cQklcmN4LCVyMTIKLQlyb3JxCSQ2LCVyMTQKLQl4b3JxCSVyOSwlcjE1Ci0JYWRkcQklcjEyLCVy
ZHgKLQlyb3JxCSQxNCwlcjEzCi0JYW5kcQklcjE1LCVyZGkKLQl4b3JxCSVyOCwlcjE0Ci0JYWRk
cQklcjEzLCVyZHgKLQl4b3JxCSVyOSwlcmRpCi0Jcm9ycQkkMjgsJXIxNAotCWFkZHEJJXJkeCwl
cjExCi0JYWRkcQklcmRpLCVyZHgKLQltb3ZxCSVyMTEsJXIxMwotCWFkZHEJJXJkeCwlcjE0Ci0J
cm9ycQkkMjMsJXIxMwotCW1vdnEJJXIxNCwlcmR4Ci0JbW92cQklcmF4LCVyMTIKLQlyb3JxCSQ1
LCVyMTQKLQl4b3JxCSVyMTEsJXIxMwotCXhvcnEJJXJieCwlcjEyCi0Jcm9ycQkkNCwlcjEzCi0J
eG9ycQklcmR4LCVyMTQKLQlhbmRxCSVyMTEsJXIxMgotCXhvcnEJJXIxMSwlcjEzCi0JYWRkcQkx
MDQoJXJzcCksJXJjeAotCW1vdnEJJXJkeCwlcmRpCi0JeG9ycQklcmJ4LCVyMTIKLQlyb3JxCSQ2
LCVyMTQKLQl4b3JxCSVyOCwlcmRpCi0JYWRkcQklcjEyLCVyY3gKLQlyb3JxCSQxNCwlcjEzCi0J
YW5kcQklcmRpLCVyMTUKLQl4b3JxCSVyZHgsJXIxNAotCWFkZHEJJXIxMywlcmN4Ci0JeG9ycQkl
cjgsJXIxNQotCXJvcnEJJDI4LCVyMTQKLQlhZGRxCSVyY3gsJXIxMAotCWFkZHEJJXIxNSwlcmN4
Ci0JbW92cQklcjEwLCVyMTMKLQlhZGRxCSVyY3gsJXIxNAotCXJvcnEJJDIzLCVyMTMKLQltb3Zx
CSVyMTQsJXJjeAotCW1vdnEJJXIxMSwlcjEyCi0Jcm9ycQkkNSwlcjE0Ci0JeG9ycQklcjEwLCVy
MTMKLQl4b3JxCSVyYXgsJXIxMgotCXJvcnEJJDQsJXIxMwotCXhvcnEJJXJjeCwlcjE0Ci0JYW5k
cQklcjEwLCVyMTIKLQl4b3JxCSVyMTAsJXIxMwotCWFkZHEJMTEyKCVyc3ApLCVyYngKLQltb3Zx
CSVyY3gsJXIxNQotCXhvcnEJJXJheCwlcjEyCi0Jcm9ycQkkNiwlcjE0Ci0JeG9ycQklcmR4LCVy
MTUKLQlhZGRxCSVyMTIsJXJieAotCXJvcnEJJDE0LCVyMTMKLQlhbmRxCSVyMTUsJXJkaQotCXhv
cnEJJXJjeCwlcjE0Ci0JYWRkcQklcjEzLCVyYngKLQl4b3JxCSVyZHgsJXJkaQotCXJvcnEJJDI4
LCVyMTQKLQlhZGRxCSVyYngsJXI5Ci0JYWRkcQklcmRpLCVyYngKLQltb3ZxCSVyOSwlcjEzCi0J
YWRkcQklcmJ4LCVyMTQKLQlyb3JxCSQyMywlcjEzCi0JbW92cQklcjE0LCVyYngKLQltb3ZxCSVy
MTAsJXIxMgotCXJvcnEJJDUsJXIxNAotCXhvcnEJJXI5LCVyMTMKLQl4b3JxCSVyMTEsJXIxMgot
CXJvcnEJJDQsJXIxMwotCXhvcnEJJXJieCwlcjE0Ci0JYW5kcQklcjksJXIxMgotCXhvcnEJJXI5
LCVyMTMKLQlhZGRxCTEyMCglcnNwKSwlcmF4Ci0JbW92cQklcmJ4LCVyZGkKLQl4b3JxCSVyMTEs
JXIxMgotCXJvcnEJJDYsJXIxNAotCXhvcnEJJXJjeCwlcmRpCi0JYWRkcQklcjEyLCVyYXgKLQly
b3JxCSQxNCwlcjEzCi0JYW5kcQklcmRpLCVyMTUKLQl4b3JxCSVyYngsJXIxNAotCWFkZHEJJXIx
MywlcmF4Ci0JeG9ycQklcmN4LCVyMTUKLQlyb3JxCSQyOCwlcjE0Ci0JYWRkcQklcmF4LCVyOAot
CWFkZHEJJXIxNSwlcmF4Ci0JbW92cQklcjgsJXIxMwotCWFkZHEJJXJheCwlcjE0Ci0JbW92cQkx
MjgrMCglcnNwKSwlcmRpCi0JbW92cQklcjE0LCVyYXgKLQotCWFkZHEJMCglcmRpKSwlcmF4Ci0J
bGVhcQkxMjgoJXJzaSksJXJzaQotCWFkZHEJOCglcmRpKSwlcmJ4Ci0JYWRkcQkxNiglcmRpKSwl
cmN4Ci0JYWRkcQkyNCglcmRpKSwlcmR4Ci0JYWRkcQkzMiglcmRpKSwlcjgKLQlhZGRxCTQwKCVy
ZGkpLCVyOQotCWFkZHEJNDgoJXJkaSksJXIxMAotCWFkZHEJNTYoJXJkaSksJXIxMQotCi0JY21w
cQkxMjgrMTYoJXJzcCksJXJzaQotCi0JbW92cQklcmF4LDAoJXJkaSkKLQltb3ZxCSVyYngsOCgl
cmRpKQotCW1vdnEJJXJjeCwxNiglcmRpKQotCW1vdnEJJXJkeCwyNCglcmRpKQotCW1vdnEJJXI4
LDMyKCVyZGkpCi0JbW92cQklcjksNDAoJXJkaSkKLQltb3ZxCSVyMTAsNDgoJXJkaSkKLQltb3Zx
CSVyMTEsNTYoJXJkaSkKLQlqYglMJGxvb3BfeG9wCi0KLQltb3ZxCTE1MiglcnNwKSwlcnNpCi0K
LQl2emVyb3VwcGVyCi0JbW92cQktNDgoJXJzaSksJXIxNQotCi0JbW92cQktNDAoJXJzaSksJXIx
NAotCi0JbW92cQktMzIoJXJzaSksJXIxMwotCi0JbW92cQktMjQoJXJzaSksJXIxMgotCi0JbW92
cQktMTYoJXJzaSksJXJicAotCi0JbW92cQktOCglcnNpKSwlcmJ4Ci0KLQlsZWFxCSglcnNpKSwl
cnNwCi0KLUwkZXBpbG9ndWVfeG9wOgotCS5ieXRlCTB4ZjMsMHhjMwotCi0KLQogLnAyYWxpZ24J
Ngogc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0
L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Nl82NC5TIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZmlw
c21vZHVsZS92cGFlcy14ODZfNjQuUwppbmRleCAzMTJiZjFkYTMyYjdhYTg4ZjJiZTY5NjZmMjBk
Mzc1YjVhOTZjM2RkLi4yZjYwYTIyYzgwNzVhMmRiODliNTMzY2Y4ODE1ZWYzMWIzODE4YWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Nl82NC5TCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMteDg2XzY0LlMKQEAgLTMxLDYg
KzMxLDcgQEAKIAogLnAyYWxpZ24JNAogX3ZwYWVzX2VuY3J5cHRfY29yZToKKwogCW1vdnEJJXJk
eCwlcjkKIAltb3ZxCSQxNiwlcjExCiAJbW92bAkyNDAoJXJkeCksJWVheApAQCAtMTE5LDggKzEy
MCwxODUgQEAgTCRlbmNfZW50cnk6CiAKIAogCisKKworCisKKworCisKKworCisKKworCisKKwor
CisKKworCisKKworCisKKworCisKKy5wMmFsaWduCTQKK192cGFlc19lbmNyeXB0X2NvcmVfMng6
CisKKwltb3ZxCSVyZHgsJXI5CisJbW92cQkkMTYsJXIxMQorCW1vdmwJMjQwKCVyZHgpLCVlYXgK
Kwltb3ZkcWEJJXhtbTksJXhtbTEKKwltb3ZkcWEJJXhtbTksJXhtbTcKKwltb3ZkcWEJTCRrX2lw
dCglcmlwKSwleG1tMgorCW1vdmRxYQkleG1tMiwleG1tOAorCXBhbmRuCSV4bW0wLCV4bW0xCisJ
cGFuZG4JJXhtbTYsJXhtbTcKKwltb3ZkcXUJKCVyOSksJXhtbTUKKworCXBzcmxkCSQ0LCV4bW0x
CisJcHNybGQJJDQsJXhtbTcKKwlwYW5kCSV4bW05LCV4bW0wCisJcGFuZAkleG1tOSwleG1tNgor
LmJ5dGUJMTAyLDE1LDU2LDAsMjA4CisuYnl0ZQkxMDIsNjgsMTUsNTYsMCwxOTgKKwltb3ZkcWEJ
TCRrX2lwdCsxNiglcmlwKSwleG1tMAorCW1vdmRxYQkleG1tMCwleG1tNgorLmJ5dGUJMTAyLDE1
LDU2LDAsMTkzCisuYnl0ZQkxMDIsMTUsNTYsMCwyNDcKKwlweG9yCSV4bW01LCV4bW0yCisJcHhv
cgkleG1tNSwleG1tOAorCWFkZHEJJDE2LCVyOQorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4
bW04LCV4bW02CisJbGVhcQlMJGtfbWNfYmFja3dhcmQoJXJpcCksJXIxMAorCWptcAlMJGVuYzJ4
X2VudHJ5CisKKy5wMmFsaWduCTQKK0wkZW5jMnhfbG9vcDoKKworCW1vdmRxYQlMJGtfc2IxKCVy
aXApLCV4bW00CisJbW92ZHFhCUwka19zYjErMTYoJXJpcCksJXhtbTAKKwltb3ZkcWEJJXhtbTQs
JXhtbTEyCisJbW92ZHFhCSV4bW0wLCV4bW02CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjYKKy5ieXRl
CTEwMiw2OSwxNSw1NiwwLDIyNAorLmJ5dGUJMTAyLDE1LDU2LDAsMTk1CisuYnl0ZQkxMDIsNjUs
MTUsNTYsMCwyNDMKKwlweG9yCSV4bW01LCV4bW00CisJcHhvcgkleG1tNSwleG1tMTIKKwltb3Zk
cWEJTCRrX3NiMiglcmlwKSwleG1tNQorCW1vdmRxYQkleG1tNSwleG1tMTMKKwlweG9yCSV4bW00
LCV4bW0wCisJcHhvcgkleG1tMTIsJXhtbTYKKwltb3ZkcWEJLTY0KCVyMTEsJXIxMCwxKSwleG1t
MQorCisuYnl0ZQkxMDIsMTUsNTYsMCwyMzQKKy5ieXRlCTEwMiw2OSwxNSw1NiwwLDIzMgorCW1v
dmRxYQkoJXIxMSwlcjEwLDEpLCV4bW00CisKKwltb3ZkcWEJTCRrX3NiMisxNiglcmlwKSwleG1t
MgorCW1vdmRxYQkleG1tMiwleG1tOAorLmJ5dGUJMTAyLDE1LDU2LDAsMjExCisuYnl0ZQkxMDIs
NjksMTUsNTYsMCwxOTUKKwltb3ZkcWEJJXhtbTAsJXhtbTMKKwltb3ZkcWEJJXhtbTYsJXhtbTEx
CisJcHhvcgkleG1tNSwleG1tMgorCXB4b3IJJXhtbTEzLCV4bW04CisuYnl0ZQkxMDIsMTUsNTYs
MCwxOTMKKy5ieXRlCTEwMiwxNSw1NiwwLDI0MQorCWFkZHEJJDE2LCVyOQorCXB4b3IJJXhtbTIs
JXhtbTAKKwlweG9yCSV4bW04LCV4bW02CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjAKKy5ieXRlCTEw
Miw2OCwxNSw1NiwwLDIyMAorCWFkZHEJJDE2LCVyMTEKKwlweG9yCSV4bW0wLCV4bW0zCisJcHhv
cgkleG1tNiwleG1tMTEKKy5ieXRlCTEwMiwxNSw1NiwwLDE5MworLmJ5dGUJMTAyLDE1LDU2LDAs
MjQxCisJYW5kcQkkMHgzMCwlcjExCisJc3VicQkkMSwlcmF4CisJcHhvcgkleG1tMywleG1tMAor
CXB4b3IJJXhtbTExLCV4bW02CisKK0wkZW5jMnhfZW50cnk6CisKKwltb3ZkcWEJJXhtbTksJXht
bTEKKwltb3ZkcWEJJXhtbTksJXhtbTcKKwltb3ZkcWEJTCRrX2ludisxNiglcmlwKSwleG1tNQor
CW1vdmRxYQkleG1tNSwleG1tMTMKKwlwYW5kbgkleG1tMCwleG1tMQorCXBhbmRuCSV4bW02LCV4
bW03CisJcHNybGQJJDQsJXhtbTEKKwlwc3JsZAkkNCwleG1tNworCXBhbmQJJXhtbTksJXhtbTAK
KwlwYW5kCSV4bW05LCV4bW02CisuYnl0ZQkxMDIsMTUsNTYsMCwyMzIKKy5ieXRlCTEwMiw2OCwx
NSw1NiwwLDIzOAorCW1vdmRxYQkleG1tMTAsJXhtbTMKKwltb3ZkcWEJJXhtbTEwLCV4bW0xMQor
CXB4b3IJJXhtbTEsJXhtbTAKKwlweG9yCSV4bW03LCV4bW02CisuYnl0ZQkxMDIsMTUsNTYsMCwy
MTcKKy5ieXRlCTEwMiw2OCwxNSw1NiwwLDIyMworCW1vdmRxYQkleG1tMTAsJXhtbTQKKwltb3Zk
cWEJJXhtbTEwLCV4bW0xMgorCXB4b3IJJXhtbTUsJXhtbTMKKwlweG9yCSV4bW0xMywleG1tMTEK
Ky5ieXRlCTEwMiwxNSw1NiwwLDIyNAorLmJ5dGUJMTAyLDY4LDE1LDU2LDAsMjMwCisJbW92ZHFh
CSV4bW0xMCwleG1tMgorCW1vdmRxYQkleG1tMTAsJXhtbTgKKwlweG9yCSV4bW01LCV4bW00CisJ
cHhvcgkleG1tMTMsJXhtbTEyCisuYnl0ZQkxMDIsMTUsNTYsMCwyMTEKKy5ieXRlCTEwMiw2OSwx
NSw1NiwwLDE5NQorCW1vdmRxYQkleG1tMTAsJXhtbTMKKwltb3ZkcWEJJXhtbTEwLCV4bW0xMQor
CXB4b3IJJXhtbTAsJXhtbTIKKwlweG9yCSV4bW02LCV4bW04CisuYnl0ZQkxMDIsMTUsNTYsMCwy
MjAKKy5ieXRlCTEwMiw2OSwxNSw1NiwwLDIyMAorCW1vdmRxdQkoJXI5KSwleG1tNQorCisJcHhv
cgkleG1tMSwleG1tMworCXB4b3IJJXhtbTcsJXhtbTExCisJam56CUwkZW5jMnhfbG9vcAorCisK
Kwltb3ZkcWEJLTk2KCVyMTApLCV4bW00CisJbW92ZHFhCS04MCglcjEwKSwleG1tMAorCW1vdmRx
YQkleG1tNCwleG1tMTIKKwltb3ZkcWEJJXhtbTAsJXhtbTYKKy5ieXRlCTEwMiwxNSw1NiwwLDIy
NgorLmJ5dGUJMTAyLDY5LDE1LDU2LDAsMjI0CisJcHhvcgkleG1tNSwleG1tNAorCXB4b3IJJXht
bTUsJXhtbTEyCisuYnl0ZQkxMDIsMTUsNTYsMCwxOTUKKy5ieXRlCTEwMiw2NSwxNSw1NiwwLDI0
MworCW1vdmRxYQk2NCglcjExLCVyMTAsMSksJXhtbTEKKworCXB4b3IJJXhtbTQsJXhtbTAKKwlw
eG9yCSV4bW0xMiwleG1tNgorLmJ5dGUJMTAyLDE1LDU2LDAsMTkzCisuYnl0ZQkxMDIsMTUsNTYs
MCwyNDEKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKworCisKKworCisKIC5wMmFsaWduCTQKIF92
cGFlc19kZWNyeXB0X2NvcmU6CisKIAltb3ZxCSVyZHgsJXI5CiAJbW92bAkyNDAoJXJkeCksJWVh
eAogCW1vdmRxYQkleG1tOSwleG1tMQpAQCAtMjI1LDYgKzQwMyw3IEBAIEwkZGVjX2VudHJ5Ogog
CiAKIAorCiAucDJhbGlnbgk0CiBfdnBhZXNfc2NoZWR1bGVfY29yZToKIApAQCAtMjMyLDYgKzQx
MSw3IEBAIF92cGFlc19zY2hlZHVsZV9jb3JlOgogCiAKIAorCiAJY2FsbAlfdnBhZXNfcHJlaGVh
dAogCW1vdmRxYQlMJGtfcmNvbiglcmlwKSwleG1tOAogCW1vdmRxdQkoJXJkaSksJXhtbTAKQEAg
LTQxMCw4ICs1OTAsMTAgQEAgTCRzY2hlZHVsZV9tYW5nbGVfbGFzdF9kZWM6CiAKIAogCisKIC5w
MmFsaWduCTQKIF92cGFlc19zY2hlZHVsZV8xOTJfc21lYXI6CisKIAlwc2h1ZmQJJDB4ODAsJXht
bTYsJXhtbTEKIAlwc2h1ZmQJJDB4RkUsJXhtbTcsJXhtbTAKIAlweG9yCSV4bW0xLCV4bW02CkBA
IC00MzksMTEgKzYyMSwxMyBAQCBfdnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyOgogCiAKIAorCiAK
IAogLnAyYWxpZ24JNAogX3ZwYWVzX3NjaGVkdWxlX3JvdW5kOgogCisKIAlweG9yCSV4bW0xLCV4
bW0xCiAuYnl0ZQkxMDIsNjUsMTUsNTgsMTUsMjAwLDE1CiAuYnl0ZQkxMDIsNjksMTUsNTgsMTUs
MTkyLDE1CkBAIC01MDgsOCArNjkyLDEwIEBAIF92cGFlc19zY2hlZHVsZV9sb3dfcm91bmQ6CiAK
IAogCisKIC5wMmFsaWduCTQKIF92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm06CisKIAltb3ZkcWEJ
JXhtbTksJXhtbTEKIAlwYW5kbgkleG1tMCwleG1tMQogCXBzcmxkCSQ0LCV4bW0xCkBAIC01NDQs
MTAgKzczMCwxMiBAQCBfdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3JtOgogCiAKIAorCiAKIAogLnAy
YWxpZ24JNAogX3ZwYWVzX3NjaGVkdWxlX21hbmdsZToKKwogCW1vdmRxYQkleG1tMCwleG1tNAog
CW1vdmRxYQlMJGtfbWNfZm9yd2FyZCglcmlwKSwleG1tNQogCXRlc3RxCSVyY3gsJXJjeApAQCAt
NjE3LDExICs4MDUsMjAgQEAgTCRzY2hlZHVsZV9tYW5nbGVfYm90aDoKIAogCiAKKwogLmdsb2Js
CV92cGFlc19zZXRfZW5jcnlwdF9rZXkKIC5wcml2YXRlX2V4dGVybiBfdnBhZXNfc2V0X2VuY3J5
cHRfa2V5CiAKIC5wMmFsaWduCTQKIF92cGFlc19zZXRfZW5jcnlwdF9rZXk6CisKKyNpZm5kZWYg
TkRFQlVHCisjaWZuZGVmIEJPUklOR1NTTF9GSVBTCisKKwltb3ZiCSQxLF9CT1JJTkdTU0xfZnVu
Y3Rpb25faGl0KzUoJXJpcCkKKyNlbmRpZgorI2VuZGlmCisKIAltb3ZsCSVlc2ksJWVheAogCXNo
cmwJJDUsJWVheAogCWFkZGwJJDUsJWVheApAQCAtNjM0LDExICs4MzEsMTMgQEAgX3ZwYWVzX3Nl
dF9lbmNyeXB0X2tleToKIAkuYnl0ZQkweGYzLDB4YzMKIAogCisKIC5nbG9ibAlfdnBhZXNfc2V0
X2RlY3J5cHRfa2V5CiAucHJpdmF0ZV9leHRlcm4gX3ZwYWVzX3NldF9kZWNyeXB0X2tleQogCiAu
cDJhbGlnbgk0CiBfdnBhZXNfc2V0X2RlY3J5cHRfa2V5OgorCiAJbW92bAklZXNpLCVlYXgKIAlz
aHJsCSQ1LCVlYXgKIAlhZGRsCSQ1LCVlYXgKQEAgLTY1NiwxMSArODU1LDE5IEBAIF92cGFlc19z
ZXRfZGVjcnlwdF9rZXk6CiAJLmJ5dGUJMHhmMywweGMzCiAKIAorCiAuZ2xvYmwJX3ZwYWVzX2Vu
Y3J5cHQKIC5wcml2YXRlX2V4dGVybiBfdnBhZXNfZW5jcnlwdAogCiAucDJhbGlnbgk0CiBfdnBh
ZXNfZW5jcnlwdDoKKworI2lmbmRlZiBOREVCVUcKKyNpZm5kZWYgQk9SSU5HU1NMX0ZJUFMKKwor
CW1vdmIJJDEsX0JPUklOR1NTTF9mdW5jdGlvbl9oaXQrNCglcmlwKQorI2VuZGlmCisjZW5kaWYK
IAltb3ZkcXUJKCVyZGkpLCV4bW0wCiAJY2FsbAlfdnBhZXNfcHJlaGVhdAogCWNhbGwJX3ZwYWVz
X2VuY3J5cHRfY29yZQpAQCAtNjY4LDIyICs4NzUsMjYgQEAgX3ZwYWVzX2VuY3J5cHQ6CiAJLmJ5
dGUJMHhmMywweGMzCiAKIAorCiAuZ2xvYmwJX3ZwYWVzX2RlY3J5cHQKIC5wcml2YXRlX2V4dGVy
biBfdnBhZXNfZGVjcnlwdAogCiAucDJhbGlnbgk0CiBfdnBhZXNfZGVjcnlwdDoKKwogCW1vdmRx
dQkoJXJkaSksJXhtbTAKIAljYWxsCV92cGFlc19wcmVoZWF0CiAJY2FsbAlfdnBhZXNfZGVjcnlw
dF9jb3JlCiAJbW92ZHF1CSV4bW0wLCglcnNpKQogCS5ieXRlCTB4ZjMsMHhjMwogCisKIC5nbG9i
bAlfdnBhZXNfY2JjX2VuY3J5cHQKIC5wcml2YXRlX2V4dGVybiBfdnBhZXNfY2JjX2VuY3J5cHQK
IAogLnAyYWxpZ24JNAogX3ZwYWVzX2NiY19lbmNyeXB0OgorCiAJeGNoZ3EJJXJjeCwlcmR4CiAJ
c3VicQkkMTYsJXJjeAogCWpjCUwkY2JjX2Fib3J0CkBAIC03MjEsNiArOTMyLDcwIEBAIEwkY2Jj
X2Fib3J0OgogCS5ieXRlCTB4ZjMsMHhjMwogCiAKKy5nbG9ibAlfdnBhZXNfY3RyMzJfZW5jcnlw
dF9ibG9ja3MKKy5wcml2YXRlX2V4dGVybiBfdnBhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKKwor
LnAyYWxpZ24JNAorX3ZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzOgorCisKKwl4Y2hncQklcmN4
LCVyZHgKKwl0ZXN0cQklcmN4LCVyY3gKKwlqeglMJGN0cjMyX2Fib3J0CisJbW92ZHF1CSglcjgp
LCV4bW0wCisJbW92ZHFhCUwkY3RyX2FkZF9vbmUoJXJpcCksJXhtbTgKKwlzdWJxCSVyZGksJXJz
aQorCWNhbGwJX3ZwYWVzX3ByZWhlYXQKKwltb3ZkcWEJJXhtbTAsJXhtbTYKKwlwc2h1ZmIJTCRy
ZXZfY3RyKCVyaXApLCV4bW02CisKKwl0ZXN0cQkkMSwlcmN4CisJanoJTCRjdHIzMl9wcmVwX2xv
b3AKKworCisKKwltb3ZkcXUJKCVyZGkpLCV4bW03CisJY2FsbAlfdnBhZXNfZW5jcnlwdF9jb3Jl
CisJcHhvcgkleG1tNywleG1tMAorCXBhZGRkCSV4bW04LCV4bW02CisJbW92ZHF1CSV4bW0wLCgl
cnNpLCVyZGksMSkKKwlzdWJxCSQxLCVyY3gKKwlsZWFxCTE2KCVyZGkpLCVyZGkKKwlqeglMJGN0
cjMyX2RvbmUKKworTCRjdHIzMl9wcmVwX2xvb3A6CisKKworCW1vdmRxYQkleG1tNiwleG1tMTQK
Kwltb3ZkcWEJJXhtbTYsJXhtbTE1CisJcGFkZGQJJXhtbTgsJXhtbTE1CisKK0wkY3RyMzJfbG9v
cDoKKwltb3ZkcWEJTCRyZXZfY3RyKCVyaXApLCV4bW0xCisJbW92ZHFhCSV4bW0xNCwleG1tMAor
CW1vdmRxYQkleG1tMTUsJXhtbTYKKy5ieXRlCTEwMiwxNSw1NiwwLDE5MworLmJ5dGUJMTAyLDE1
LDU2LDAsMjQxCisJY2FsbAlfdnBhZXNfZW5jcnlwdF9jb3JlXzJ4CisJbW92ZHF1CSglcmRpKSwl
eG1tMQorCW1vdmRxdQkxNiglcmRpKSwleG1tMgorCW1vdmRxYQlMJGN0cl9hZGRfdHdvKCVyaXAp
LCV4bW0zCisJcHhvcgkleG1tMSwleG1tMAorCXB4b3IJJXhtbTIsJXhtbTYKKwlwYWRkZAkleG1t
MywleG1tMTQKKwlwYWRkZAkleG1tMywleG1tMTUKKwltb3ZkcXUJJXhtbTAsKCVyc2ksJXJkaSwx
KQorCW1vdmRxdQkleG1tNiwxNiglcnNpLCVyZGksMSkKKwlzdWJxCSQyLCVyY3gKKwlsZWFxCTMy
KCVyZGkpLCVyZGkKKwlqbnoJTCRjdHIzMl9sb29wCisKK0wkY3RyMzJfZG9uZToKK0wkY3RyMzJf
YWJvcnQ6CisJLmJ5dGUJMHhmMywweGMzCisKKworCiAKIAogCkBAIC03MjksNiArMTAwNCw3IEBA
IEwkY2JjX2Fib3J0OgogCiAucDJhbGlnbgk0CiBfdnBhZXNfcHJlaGVhdDoKKwogCWxlYXEJTCRr
X3MwRiglcmlwKSwlcjEwCiAJbW92ZHFhCS0zMiglcjEwKSwleG1tMTAKIAltb3ZkcWEJLTE2KCVy
MTApLCV4bW0xMQpAQCAtNzQ1LDYgKzEwMjEsNyBAQCBfdnBhZXNfcHJlaGVhdDoKIAogCiAKKwog
LnAyYWxpZ24JNgogX3ZwYWVzX2NvbnN0czoKIEwka19pbnY6CkBAIC04NDAsNiArMTExNywxNyBA
QCBMJGtfZHNiZToKIEwka19kc2JvOgogLnF1YWQJMHgxMzg3RUE1MzdFRjk0MDAwLCAweEM3QUE2
REI5RDQ5NDNFMkQKIC5xdWFkCTB4MTJENzU2MEY5MzQ0MUQwMCwgMHhDQTRCODE1OUQ4QzU4RTlD
CisKKworTCRyZXZfY3RyOgorLnF1YWQJMHgwNzA2MDUwNDAzMDIwMTAwLCAweDBjMGQwZTBmMGIw
YTA5MDgKKworCitMJGN0cl9hZGRfb25lOgorLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAw
MDAwMDAxMDAwMDAwMDAKK0wkY3RyX2FkZF90d286CisucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAs
IDB4MDAwMDAwMDIwMDAwMDAwMAorCiAuYnl0ZQk4NiwxMDEsOTksMTE2LDExMSwxMTQsMzIsODAs
MTAxLDExNCwxMDksMTE3LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsNjUsNjksODMsMzIsMTAy
LDExMSwxMTQsMzIsMTIwLDU2LDU0LDk1LDU0LDUyLDQ3LDgzLDgzLDgzLDY5LDUxLDQ0LDMyLDc3
LDEwNSwxMDcsMTAxLDMyLDcyLDk3LDEwOSw5OCwxMTcsMTE0LDEwMywzMiw0MCw4MywxMTYsOTcs
MTEwLDEwMiwxMTEsMTE0LDEwMCwzMiw4NSwxMTAsMTA1LDExOCwxMDEsMTE0LDExNSwxMDUsMTE2
LDEyMSw0MSwwCiAucDJhbGlnbgk2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUveDg2XzY0LW1vbnQ1LlMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3g4
Nl82NC1tb250NS5TCmluZGV4IGJmZTJjMTUzMjE0MjgxOWQ0YWE5M2U4NmYzNmJlNjgxNmFjYzRi
OWUuLjRiZDM2ZmVhZTQzYjA0ZDc2OGFjNjcyZmIyNzlmYzRmMDJlOWRiMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L21hYy14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUveDg2XzY0LW1vbnQ1LlMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4
Nl82NC9jcnlwdG8vZmlwc21vZHVsZS94ODZfNjQtbW9udDUuUwpAQCAtNTY1LDYgKzU2NSw3IEBA
IEwkbXVsNHhfZXBpbG9ndWU6CiAKIC5wMmFsaWduCTUKIG11bDR4X2ludGVybmFsOgorCiAJc2hs
cQkkNSwlcjkKIAltb3ZkCTgoJXJheCksJXhtbTUKIAlsZWFxCUwkaW5jKCVyaXApLCVyYXgKQEAg
LTEwODcsNiArMTA4OCw3IEBAIEwkaW5uZXI0eDoKIAltb3ZxCTI0KCVyYnApLCVyMTUKIAlqbXAJ
TCRzcXI0eF9zdWJfZW50cnkKIAorCiAuZ2xvYmwJX2JuX3Bvd2VyNQogLnByaXZhdGVfZXh0ZXJu
IF9ibl9wb3dlcjUKIApAQCAtMTMwMiw2ICsxMzA0LDcgQEAgX19ibl9zcXI4eF9pbnRlcm5hbDoK
IAogCiAKKwogCiAKIAlsZWFxCTMyKCVyMTApLCVyYnAKQEAgLTIwMDcsOCArMjAxMCwxMCBAQCBM
JDh4X25vX3RhaWw6CiAJLmJ5dGUJMHhmMywweGMzCiAKIAorCiAucDJhbGlnbgk1CiBfX2JuX3Bv
c3Q0eF9pbnRlcm5hbDoKKwogCW1vdnEJMCglcmJwKSwlcjEyCiAJbGVhcQkoJXJkaSwlcjksMSks
JXJieAogCW1vdnEJJXI5LCVyY3gKQEAgLTIwNjAsMTEgKzIwNjUsMTMgQEAgTCRzcXI0eF9zdWJf
ZW50cnk6CiAJbmVncQklcjkKIAkuYnl0ZQkweGYzLDB4YzMKIAorCiAuZ2xvYmwJX2JuX2Zyb21f
bW9udGdvbWVyeQogLnByaXZhdGVfZXh0ZXJuIF9ibl9mcm9tX21vbnRnb21lcnkKIAogLnAyYWxp
Z24JNQogX2JuX2Zyb21fbW9udGdvbWVyeToKKwogCXRlc3RsCSQ3LCVyOWQKIAlqeglibl9mcm9t
X21vbnQ4eAogCXhvcmwJJWVheCwlZWF4CkBAIC0yMDcyLDYgKzIwNzksNyBAQCBfYm5fZnJvbV9t
b250Z29tZXJ5OgogCiAKIAorCiAucDJhbGlnbgk1CiBibl9mcm9tX21vbnQ4eDoKIApAQCAtMjM1
Myw2ICsyMzYxLDcgQEAgTCRtdWx4NHhfZXBpbG9ndWU6CiAKIC5wMmFsaWduCTUKIG11bHg0eF9p
bnRlcm5hbDoKKwogCW1vdnEJJXI5LDgoJXJzcCkKIAltb3ZxCSVyOSwlcjEwCiAJbmVncQklcjkK
QEAgLTI3NzMsNiArMjc4Miw3IEBAIEwkbXVseDR4X2lubmVyOgogCWptcAlMJHNxcng0eF9zdWJf
ZW50cnkKIAogCisKIC5wMmFsaWduCTUKIGJuX3Bvd2VyeDU6CiAKQEAgLTI5NTIsNiArMjk2Miw3
IEBAIF9fYm5fc3FyeDh4X2ludGVybmFsOgogCiAKIAorCiAKIAogCWxlYXEJNDgrOCglcnNwKSwl
cmRpCkBAIC0zNTI2LDggKzM1MzcsMTEgQEAgTCRzcXJ4OHhfbm9fdGFpbDoKIAlqYglMJHNxcng4
eF9yZWR1Y3Rpb25fbG9vcAogCS5ieXRlCTB4ZjMsMHhjMwogCisKIC5wMmFsaWduCTUKKwogX19i
bl9wb3N0eDR4X2ludGVybmFsOgorCiAJbW92cQkwKCVyYnApLCVyMTIKIAltb3ZxCSVyY3gsJXIx
MAogCW1vdnEJJXJjeCwlcjkKQEAgLTM1NzYsMTEgKzM1OTAsMTMgQEAgTCRzcXJ4NHhfc3ViX2Vu
dHJ5OgogCiAJLmJ5dGUJMHhmMywweGMzCiAKKwogLmdsb2JsCV9ibl9zY2F0dGVyNQogLnByaXZh
dGVfZXh0ZXJuIF9ibl9zY2F0dGVyNQogCiAucDJhbGlnbgk0CiBfYm5fc2NhdHRlcjU6CisKIAlj
bXBsCSQwLCVlc2kKIAlqeglMJHNjYXR0ZXJfZXBpbG9ndWUKIAlsZWFxCSglcmR4LCVyY3gsOCks
JXJkeApAQCAtMzU5NSwxNCArMzYxMSwxNyBAQCBMJHNjYXR0ZXJfZXBpbG9ndWU6CiAJLmJ5dGUJ
MHhmMywweGMzCiAKIAorCiAuZ2xvYmwJX2JuX2dhdGhlcjUKIC5wcml2YXRlX2V4dGVybiBfYm5f
Z2F0aGVyNQogCiAucDJhbGlnbgk1CiBfYm5fZ2F0aGVyNToKKwogTCRTRUhfYmVnaW5fYm5fZ2F0
aGVyNToKIAogLmJ5dGUJMHg0YywweDhkLDB4MTQsMHgyNAorCiAuYnl0ZQkweDQ4LDB4ODEsMHhl
YywweDA4LDB4MDEsMHgwMCwweDAwCiAJbGVhcQlMJGluYyglcmlwKSwlcmF4CiAJYW5kcQkkLTE2
LCVyc3AKQEAgLTM3NTYsOSArMzc3NSwxMSBAQCBMJGdhdGhlcjoKIAlqbnoJTCRnYXRoZXIKIAog
CWxlYXEJKCVyMTApLCVyc3AKKwogCS5ieXRlCTB4ZjMsMHhjMwogTCRTRUhfZW5kX2JuX2dhdGhl
cjU6CiAKKwogLnAyYWxpZ24JNgogTCRpbmM6CiAubG9uZwkwLDAsIDEsMQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
bWFjLXg4Nl82NC9jcnlwdG8vdGVzdC90cmFtcG9saW5lLXg4Nl82NC5TIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9j
cnlwdG8vdGVzdC90cmFtcG9saW5lLXg4Nl82NC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2U2YjA0NTJlMWRm
MTJiNzA5ZmMzMWE4YTJmNWE1OTgwMTNiODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0
L2NyeXB0by90ZXN0L3RyYW1wb2xpbmUteDg2XzY0LlMKQEAgLTAsMCArMSw1MTMgQEAKKyMgVGhp
cyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGlu
IHRoZSBCb3JpbmdTU0wKKyMgc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNp
ZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRp
emVyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BFTlNTTF9OT19BU00K
KyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pICYmICFkZWZpbmVkKE9Q
RU5TU0xfTk9fQVNNKQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNsdWRlIDxi
b3Jpbmdzc2xfcHJlZml4X3N5bWJvbHNfYXNtLmg+CisjZW5kaWYKKy50ZXh0CQorCisKKworCisK
KworCisKKworLmdsb2JsCV9hYmlfdGVzdF90cmFtcG9saW5lCisucHJpdmF0ZV9leHRlcm4gX2Fi
aV90ZXN0X3RyYW1wb2xpbmUKKy5wMmFsaWduCTQKK19hYmlfdGVzdF90cmFtcG9saW5lOgorTCRh
YmlfdGVzdF90cmFtcG9saW5lX3NlaF9iZWdpbjoKKworCisKKworCisKKworCisKKworCXN1YnEJ
JDEyMCwlcnNwCisKK0wkYWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfcHJvbG9nX2FsbG9jOgorCW1v
dnEJJXI4LDQ4KCVyc3ApCisJbW92cQklcmJ4LDY0KCVyc3ApCisKK0wkYWJpX3Rlc3RfdHJhbXBv
bGluZV9zZWhfcHJvbG9nX3JieDoKKwltb3ZxCSVyYnAsNzIoJXJzcCkKKworTCRhYmlfdGVzdF90
cmFtcG9saW5lX3NlaF9wcm9sb2dfcmJwOgorCW1vdnEJJXIxMiw4MCglcnNwKQorCitMJGFiaV90
ZXN0X3RyYW1wb2xpbmVfc2VoX3Byb2xvZ19yMTI6CisJbW92cQklcjEzLDg4KCVyc3ApCisKK0wk
YWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfcHJvbG9nX3IxMzoKKwltb3ZxCSVyMTQsOTYoJXJzcCkK
KworTCRhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9wcm9sb2dfcjE0OgorCW1vdnEJJXIxNSwxMDQo
JXJzcCkKKworTCRhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9wcm9sb2dfcjE1OgorTCRhYmlfdGVz
dF90cmFtcG9saW5lX3NlaF9wcm9sb2dfZW5kOgorCW1vdnEJMCglcnNpKSwlcmJ4CisJbW92cQk4
KCVyc2kpLCVyYnAKKwltb3ZxCTE2KCVyc2kpLCVyMTIKKwltb3ZxCTI0KCVyc2kpLCVyMTMKKwlt
b3ZxCTMyKCVyc2kpLCVyMTQKKwltb3ZxCTQwKCVyc2kpLCVyMTUKKworCW1vdnEJJXJkaSwzMigl
cnNwKQorCW1vdnEJJXJzaSw0MCglcnNwKQorCisKKworCisJbW92cQklcmR4LCVyMTAKKwltb3Zx
CSVyY3gsJXIxMQorCWRlY3EJJXIxMQorCWpzCUwkYXJnc19kb25lCisJbW92cQkoJXIxMCksJXJk
aQorCWFkZHEJJDgsJXIxMAorCWRlY3EJJXIxMQorCWpzCUwkYXJnc19kb25lCisJbW92cQkoJXIx
MCksJXJzaQorCWFkZHEJJDgsJXIxMAorCWRlY3EJJXIxMQorCWpzCUwkYXJnc19kb25lCisJbW92
cQkoJXIxMCksJXJkeAorCWFkZHEJJDgsJXIxMAorCWRlY3EJJXIxMQorCWpzCUwkYXJnc19kb25l
CisJbW92cQkoJXIxMCksJXJjeAorCWFkZHEJJDgsJXIxMAorCWRlY3EJJXIxMQorCWpzCUwkYXJn
c19kb25lCisJbW92cQkoJXIxMCksJXI4CisJYWRkcQkkOCwlcjEwCisJZGVjcQklcjExCisJanMJ
TCRhcmdzX2RvbmUKKwltb3ZxCSglcjEwKSwlcjkKKwlhZGRxCSQ4LCVyMTAKKwlsZWFxCTAoJXJz
cCksJXJheAorTCRhcmdzX2xvb3A6CisJZGVjcQklcjExCisJanMJTCRhcmdzX2RvbmUKKworCisK
KworCisKKwltb3ZxCSVyMTEsNTYoJXJzcCkKKwltb3ZxCSglcjEwKSwlcjExCisJbW92cQklcjEx
LCglcmF4KQorCW1vdnEJNTYoJXJzcCksJXIxMQorCisJYWRkcQkkOCwlcjEwCisJYWRkcQkkOCwl
cmF4CisJam1wCUwkYXJnc19sb29wCisKK0wkYXJnc19kb25lOgorCW1vdnEJMzIoJXJzcCksJXJh
eAorCW1vdnEJNDgoJXJzcCksJXIxMAorCXRlc3RxCSVyMTAsJXIxMAorCWp6CUwkbm9fdW53aW5k
CisKKworCXB1c2hmcQorCW9ycQkkMHgxMDAsMCglcnNwKQorCXBvcGZxCisKKworCisJbm9wCisu
Z2xvYmwJX2FiaV90ZXN0X3Vud2luZF9zdGFydAorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF91
bndpbmRfc3RhcnQKK19hYmlfdGVzdF91bndpbmRfc3RhcnQ6CisKKwljYWxsCSolcmF4CisuZ2xv
YmwJX2FiaV90ZXN0X3Vud2luZF9yZXR1cm4KKy5wcml2YXRlX2V4dGVybiBfYWJpX3Rlc3RfdW53
aW5kX3JldHVybgorX2FiaV90ZXN0X3Vud2luZF9yZXR1cm46CisKKworCisKKwlwdXNoZnEKKwlh
bmRxCSQtMHgxMDEsMCglcnNwKQorCXBvcGZxCisuZ2xvYmwJX2FiaV90ZXN0X3Vud2luZF9zdG9w
CisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X3Vud2luZF9zdG9wCitfYWJpX3Rlc3RfdW53aW5k
X3N0b3A6CisKKwlqbXAJTCRjYWxsX2RvbmUKKworTCRub191bndpbmQ6CisJY2FsbAkqJXJheAor
CitMJGNhbGxfZG9uZToKKworCW1vdnEJNDAoJXJzcCksJXJzaQorCW1vdnEJJXJieCwwKCVyc2kp
CisJbW92cQklcmJwLDgoJXJzaSkKKwltb3ZxCSVyMTIsMTYoJXJzaSkKKwltb3ZxCSVyMTMsMjQo
JXJzaSkKKwltb3ZxCSVyMTQsMzIoJXJzaSkKKwltb3ZxCSVyMTUsNDAoJXJzaSkKKwltb3ZxCTY0
KCVyc3ApLCVyYngKKworCW1vdnEJNzIoJXJzcCksJXJicAorCisJbW92cQk4MCglcnNwKSwlcjEy
CisKKwltb3ZxCTg4KCVyc3ApLCVyMTMKKworCW1vdnEJOTYoJXJzcCksJXIxNAorCisJbW92cQkx
MDQoJXJzcCksJXIxNQorCisJYWRkcQkkMTIwLCVyc3AKKworCisKKwkuYnl0ZQkweGYzLDB4YzMK
KworTCRhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9lbmQ6CisKKworLmdsb2JsCV9hYmlfdGVzdF9j
bG9iYmVyX3JheAorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3JheAorLnAyYWxp
Z24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfcmF4OgorCXhvcnEJJXJheCwlcmF4CisJLmJ5dGUJMHhm
MywweGMzCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3JieAorLnByaXZhdGVfZXh0ZXJu
IF9hYmlfdGVzdF9jbG9iYmVyX3JieAorLnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfcmJ4
OgorCXhvcnEJJXJieCwlcmJ4CisJLmJ5dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9hYmlfdGVz
dF9jbG9iYmVyX3JjeAorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3JjeAorLnAy
YWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfcmN4OgorCXhvcnEJJXJjeCwlcmN4CisJLmJ5dGUJ
MHhmMywweGMzCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3JkeAorLnByaXZhdGVfZXh0
ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3JkeAorLnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJf
cmR4OgorCXhvcnEJJXJkeCwlcmR4CisJLmJ5dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9hYmlf
dGVzdF9jbG9iYmVyX3JkaQorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3JkaQor
LnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfcmRpOgorCXhvcnEJJXJkaSwlcmRpCisJLmJ5
dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3JzaQorLnByaXZhdGVf
ZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3JzaQorLnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2Ji
ZXJfcnNpOgorCXhvcnEJJXJzaSwlcnNpCisJLmJ5dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9h
YmlfdGVzdF9jbG9iYmVyX3JicAorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3Ji
cAorLnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfcmJwOgorCXhvcnEJJXJicCwlcmJwCisJ
LmJ5dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3I4CisucHJpdmF0
ZV9leHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJfcjgKKy5wMmFsaWduCTQKK19hYmlfdGVzdF9jbG9i
YmVyX3I4OgorCXhvcnEJJXI4LCVyOAorCS5ieXRlCTB4ZjMsMHhjMworCisKKy5nbG9ibAlfYWJp
X3Rlc3RfY2xvYmJlcl9yOQorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3I5Cisu
cDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yOToKKwl4b3JxCSVyOSwlcjkKKwkuYnl0ZQkw
eGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfcjEwCisucHJpdmF0ZV9leHRl
cm4gX2FiaV90ZXN0X2Nsb2JiZXJfcjEwCisucDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9y
MTA6CisJeG9ycQklcjEwLCVyMTAKKwkuYnl0ZQkweGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90
ZXN0X2Nsb2JiZXJfcjExCisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJfcjExCisu
cDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yMTE6CisJeG9ycQklcjExLCVyMTEKKwkuYnl0
ZQkweGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfcjEyCisucHJpdmF0ZV9l
eHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJfcjEyCisucDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJl
cl9yMTI6CisJeG9ycQklcjEyLCVyMTIKKwkuYnl0ZQkweGYzLDB4YzMKKworCisuZ2xvYmwJX2Fi
aV90ZXN0X2Nsb2JiZXJfcjEzCisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJfcjEz
CisucDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yMTM6CisJeG9ycQklcjEzLCVyMTMKKwku
Ynl0ZQkweGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfcjE0CisucHJpdmF0
ZV9leHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJfcjE0CisucDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xv
YmJlcl9yMTQ6CisJeG9ycQklcjE0LCVyMTQKKwkuYnl0ZQkweGYzLDB4YzMKKworCisuZ2xvYmwJ
X2FiaV90ZXN0X2Nsb2JiZXJfcjE1CisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJf
cjE1CisucDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl9yMTU6CisJeG9ycQklcjE1LCVyMTUK
KwkuYnl0ZQkweGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMAorLnBy
aXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3htbTAKKy5wMmFsaWduCTQKK19hYmlfdGVz
dF9jbG9iYmVyX3htbTA6CisJcHhvcgkleG1tMCwleG1tMAorCS5ieXRlCTB4ZjMsMHhjMworCisK
Ky5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94bW0xCisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0
X2Nsb2JiZXJfeG1tMQorLnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMToKKwlweG9y
CSV4bW0xLCV4bW0xCisJLmJ5dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9i
YmVyX3htbTIKKy5wcml2YXRlX2V4dGVybiBfYWJpX3Rlc3RfY2xvYmJlcl94bW0yCisucDJhbGln
bgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94bW0yOgorCXB4b3IJJXhtbTIsJXhtbTIKKwkuYnl0ZQkw
eGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMworLnByaXZhdGVfZXh0
ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3htbTMKKy5wMmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVy
X3htbTM6CisJcHhvcgkleG1tMywleG1tMworCS5ieXRlCTB4ZjMsMHhjMworCisKKy5nbG9ibAlf
YWJpX3Rlc3RfY2xvYmJlcl94bW00CisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJf
eG1tNAorLnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNDoKKwlweG9yCSV4bW00LCV4
bW00CisJLmJ5dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3htbTUK
Ky5wcml2YXRlX2V4dGVybiBfYWJpX3Rlc3RfY2xvYmJlcl94bW01CisucDJhbGlnbgk0CitfYWJp
X3Rlc3RfY2xvYmJlcl94bW01OgorCXB4b3IJJXhtbTUsJXhtbTUKKwkuYnl0ZQkweGYzLDB4YzMK
KworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNgorLnByaXZhdGVfZXh0ZXJuIF9hYmlf
dGVzdF9jbG9iYmVyX3htbTYKKy5wMmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3htbTY6CisJ
cHhvcgkleG1tNiwleG1tNgorCS5ieXRlCTB4ZjMsMHhjMworCisKKy5nbG9ibAlfYWJpX3Rlc3Rf
Y2xvYmJlcl94bW03CisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNworLnAy
YWxpZ24JNAorX2FiaV90ZXN0X2Nsb2JiZXJfeG1tNzoKKwlweG9yCSV4bW03LCV4bW03CisJLmJ5
dGUJMHhmMywweGMzCisKKworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3htbTgKKy5wcml2YXRl
X2V4dGVybiBfYWJpX3Rlc3RfY2xvYmJlcl94bW04CisucDJhbGlnbgk0CitfYWJpX3Rlc3RfY2xv
YmJlcl94bW04OgorCXB4b3IJJXhtbTgsJXhtbTgKKwkuYnl0ZQkweGYzLDB4YzMKKworCisuZ2xv
YmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tOQorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9i
YmVyX3htbTkKKy5wMmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3htbTk6CisJcHhvcgkleG1t
OSwleG1tOQorCS5ieXRlCTB4ZjMsMHhjMworCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xvYmJlcl94
bW0xMAorLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3htbTEwCisucDJhbGlnbgk0
CitfYWJpX3Rlc3RfY2xvYmJlcl94bW0xMDoKKwlweG9yCSV4bW0xMCwleG1tMTAKKwkuYnl0ZQkw
eGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMTEKKy5wcml2YXRlX2V4
dGVybiBfYWJpX3Rlc3RfY2xvYmJlcl94bW0xMQorLnAyYWxpZ24JNAorX2FiaV90ZXN0X2Nsb2Ji
ZXJfeG1tMTE6CisJcHhvcgkleG1tMTEsJXhtbTExCisJLmJ5dGUJMHhmMywweGMzCisKKworLmds
b2JsCV9hYmlfdGVzdF9jbG9iYmVyX3htbTEyCisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X2Ns
b2JiZXJfeG1tMTIKKy5wMmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3htbTEyOgorCXB4b3IJ
JXhtbTEyLCV4bW0xMgorCS5ieXRlCTB4ZjMsMHhjMworCisKKy5nbG9ibAlfYWJpX3Rlc3RfY2xv
YmJlcl94bW0xMworLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9jbG9iYmVyX3htbTEzCisucDJh
bGlnbgk0CitfYWJpX3Rlc3RfY2xvYmJlcl94bW0xMzoKKwlweG9yCSV4bW0xMywleG1tMTMKKwku
Ynl0ZQkweGYzLDB4YzMKKworCisuZ2xvYmwJX2FiaV90ZXN0X2Nsb2JiZXJfeG1tMTQKKy5wcml2
YXRlX2V4dGVybiBfYWJpX3Rlc3RfY2xvYmJlcl94bW0xNAorLnAyYWxpZ24JNAorX2FiaV90ZXN0
X2Nsb2JiZXJfeG1tMTQ6CisJcHhvcgkleG1tMTQsJXhtbTE0CisJLmJ5dGUJMHhmMywweGMzCisK
KworLmdsb2JsCV9hYmlfdGVzdF9jbG9iYmVyX3htbTE1CisucHJpdmF0ZV9leHRlcm4gX2FiaV90
ZXN0X2Nsb2JiZXJfeG1tMTUKKy5wMmFsaWduCTQKK19hYmlfdGVzdF9jbG9iYmVyX3htbTE1Ogor
CXB4b3IJJXhtbTE1LCV4bW0xNQorCS5ieXRlCTB4ZjMsMHhjMworCisKKworCisKKy5nbG9ibAlf
YWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdpc3RlcgorLnByaXZhdGVfZXh0ZXJuIF9hYmlf
dGVzdF9iYWRfdW53aW5kX3dyb25nX3JlZ2lzdGVyCisucDJhbGlnbgk0CitfYWJpX3Rlc3RfYmFk
X3Vud2luZF93cm9uZ19yZWdpc3RlcjoKKworTCRhYmlfdGVzdF9iYWRfdW53aW5kX3dyb25nX3Jl
Z2lzdGVyX3NlaF9iZWdpbjoKKwlwdXNocQklcjEyCisKK0wkYWJpX3Rlc3RfYmFkX3Vud2luZF93
cm9uZ19yZWdpc3Rlcl9zZWhfcHVzaF9yMTM6CisKKworCisJbm9wCisJcG9wcQklcjEyCisKKwku
Ynl0ZQkweGYzLDB4YzMKK0wkYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdpc3Rlcl9zZWhf
ZW5kOgorCisKKworCisKKworCisuZ2xvYmwJX2FiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5
CisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5CisucDJhbGln
bgk0CitfYWJpX3Rlc3RfYmFkX3Vud2luZF90ZW1wb3Jhcnk6CisKK0wkYWJpX3Rlc3RfYmFkX3Vu
d2luZF90ZW1wb3Jhcnlfc2VoX2JlZ2luOgorCXB1c2hxCSVyMTIKKworTCRhYmlfdGVzdF9iYWRf
dW53aW5kX3RlbXBvcmFyeV9zZWhfcHVzaF9yMTI6CisKKwltb3ZxCSVyMTIsJXJheAorCWluY3EJ
JXJheAorCW1vdnEJJXJheCwoJXJzcCkKKworCisKKwltb3ZxCSVyMTIsKCVyc3ApCisKKworCXBv
cHEJJXIxMgorCisJLmJ5dGUJMHhmMywweGMzCitMJGFiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9y
YXJ5X3NlaF9lbmQ6CisKKworCisKKworCisKKy5nbG9ibAlfYWJpX3Rlc3RfZ2V0X2FuZF9jbGVh
cl9kaXJlY3Rpb25fZmxhZworLnByaXZhdGVfZXh0ZXJuIF9hYmlfdGVzdF9nZXRfYW5kX2NsZWFy
X2RpcmVjdGlvbl9mbGFnCitfYWJpX3Rlc3RfZ2V0X2FuZF9jbGVhcl9kaXJlY3Rpb25fZmxhZzoK
KwlwdXNoZnEKKwlwb3BxCSVyYXgKKwlhbmRxCSQweDQwMCwlcmF4CisJc2hycQkkMTAsJXJheAor
CWNsZAorCS5ieXRlCTB4ZjMsMHhjMworCisKKworCisKKy5nbG9ibAlfYWJpX3Rlc3Rfc2V0X2Rp
cmVjdGlvbl9mbGFnCisucHJpdmF0ZV9leHRlcm4gX2FiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxh
ZworX2FiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxhZzoKKwlzdGQKKwkuYnl0ZQkweGYzLDB4YzMK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by90aGlyZF9wYXJ0eS9zaWtl
L2FzbS9mcC14ODZfNjQuUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL3RoaXJkX3BhcnR5L3Npa2UvYXNt
L2ZwLXg4Nl82NC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxZTdlYTRmNjNlMjhkYjAyMzg2YWI1YWZhMTdmZTEy
NzA5ZmE5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by90aGlyZF9wYXJ0
eS9zaWtlL2FzbS9mcC14ODZfNjQuUwpAQCAtMCwwICsxLDE4NjkgQEAKKyMgVGhpcyBmaWxlIGlz
IGdlbmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3Jp
bmdTU0wKKyMgc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpZiBkZWZpbmVk
KF9faGFzX2ZlYXR1cmUpCisjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAh
ZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKKyNkZWZpbmUgT1BFTlNTTF9OT19BU00KKyNlbmRpZgor
I2VuZGlmCisKKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pICYmICFkZWZpbmVkKE9QRU5TU0xfTk9f
QVNNKQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1BSRUZJWCkKKyNpbmNsdWRlIDxib3Jpbmdzc2xf
cHJlZml4X3N5bWJvbHNfYXNtLmg+CisjZW5kaWYKKy50ZXh0CQorCisKK0wkcDQzNHgyOgorLnF1
YWQJMHhGRkZGRkZGRkZGRkZGRkZFCisucXVhZAkweEZGRkZGRkZGRkZGRkZGRkYKKy5xdWFkCTB4
RkI4MkVDRjVDNUZGRkZGRgorLnF1YWQJMHhGNzhDQjhGMDYyQjE1RDQ3CisucXVhZAkweEQ5RjhC
RkFEMDM4QTQwQUMKKy5xdWFkCTB4MDAwNDY4M0U0RTJFRTY4OAorCisKK0wkcDQzNHAxOgorLnF1
YWQJMHhGREMxNzY3QUUzMDAwMDAwCisucXVhZAkweDdCQzY1Qzc4MzE1OEFFQTMKKy5xdWFkCTB4
NkNGQzVGRDY4MUM1MjA1NgorLnF1YWQJMHgwMDAyMzQxRjI3MTc3MzQ0CisKKworLnByaXZhdGVf
ZXh0ZXJuCV9PUEVOU1NMX2lhMzJjYXBfUAorLmdsb2JsCV9zaWtlX2ZwYWRkCisucHJpdmF0ZV9l
eHRlcm4gX3Npa2VfZnBhZGQKKworX3Npa2VfZnBhZGQ6CisKKwlwdXNocQklcjEyCisKKworCXB1
c2hxCSVyMTMKKworCisJcHVzaHEJJXIxNAorCisKKworCXhvcnEJJXJheCwlcmF4CisKKwltb3Zx
CTAoJXJkaSksJXI4CisJYWRkcQkwKCVyc2kpLCVyOAorCW1vdnEJOCglcmRpKSwlcjkKKwlhZGNx
CTgoJXJzaSksJXI5CisJbW92cQkxNiglcmRpKSwlcjEwCisJYWRjcQkxNiglcnNpKSwlcjEwCisJ
bW92cQkyNCglcmRpKSwlcjExCisJYWRjcQkyNCglcnNpKSwlcjExCisJbW92cQkzMiglcmRpKSwl
cjEyCisJYWRjcQkzMiglcnNpKSwlcjEyCisJbW92cQk0MCglcmRpKSwlcjEzCisJYWRjcQk0MCgl
cnNpKSwlcjEzCisJbW92cQk0OCglcmRpKSwlcjE0CisJYWRjcQk0OCglcnNpKSwlcjE0CisKKwlt
b3ZxCUwkcDQzNHgyKCVyaXApLCVyY3gKKwlzdWJxCSVyY3gsJXI4CisJbW92cQk4K0wkcDQzNHgy
KCVyaXApLCVyY3gKKwlzYmJxCSVyY3gsJXI5CisJc2JicQklcmN4LCVyMTAKKwltb3ZxCTE2K0wk
cDQzNHgyKCVyaXApLCVyY3gKKwlzYmJxCSVyY3gsJXIxMQorCW1vdnEJMjQrTCRwNDM0eDIoJXJp
cCksJXJjeAorCXNiYnEJJXJjeCwlcjEyCisJbW92cQkzMitMJHA0MzR4MiglcmlwKSwlcmN4CisJ
c2JicQklcmN4LCVyMTMKKwltb3ZxCTQwK0wkcDQzNHgyKCVyaXApLCVyY3gKKwlzYmJxCSVyY3gs
JXIxNAorCisJc2JicQkkMCwlcmF4CisKKwltb3ZxCUwkcDQzNHgyKCVyaXApLCVyZGkKKwlhbmRx
CSVyYXgsJXJkaQorCW1vdnEJOCtMJHA0MzR4MiglcmlwKSwlcnNpCisJYW5kcQklcmF4LCVyc2kK
Kwltb3ZxCTE2K0wkcDQzNHgyKCVyaXApLCVyY3gKKwlhbmRxCSVyYXgsJXJjeAorCisJYWRkcQkl
cmRpLCVyOAorCW1vdnEJJXI4LDAoJXJkeCkKKwlhZGNxCSVyc2ksJXI5CisJbW92cQklcjksOCgl
cmR4KQorCWFkY3EJJXJzaSwlcjEwCisJbW92cQklcjEwLDE2KCVyZHgpCisJYWRjcQklcmN4LCVy
MTEKKwltb3ZxCSVyMTEsMjQoJXJkeCkKKworCXNldGMJJWNsCisJbW92cQkyNCtMJHA0MzR4Migl
cmlwKSwlcjgKKwlhbmRxCSVyYXgsJXI4CisJbW92cQkzMitMJHA0MzR4MiglcmlwKSwlcjkKKwlh
bmRxCSVyYXgsJXI5CisJbW92cQk0MCtMJHA0MzR4MiglcmlwKSwlcjEwCisJYW5kcQklcmF4LCVy
MTAKKwlidHEJJDAsJXJjeAorCisJYWRjcQklcjgsJXIxMgorCW1vdnEJJXIxMiwzMiglcmR4KQor
CWFkY3EJJXI5LCVyMTMKKwltb3ZxCSVyMTMsNDAoJXJkeCkKKwlhZGNxCSVyMTAsJXIxNAorCW1v
dnEJJXIxNCw0OCglcmR4KQorCisJcG9wcQklcjE0CisKKwlwb3BxCSVyMTMKKworCXBvcHEJJXIx
MgorCisJLmJ5dGUJMHhmMywweGMzCisKKy5nbG9ibAlfc2lrZV9jc3dhcF9hc20KKy5wcml2YXRl
X2V4dGVybiBfc2lrZV9jc3dhcF9hc20KKworX3Npa2VfY3N3YXBfYXNtOgorCisKKwltb3ZxCSVy
ZHgsJXhtbTMKKworCisKKworCisJcHNodWZkCSQ2OCwleG1tMywleG1tMworCisJbW92ZHF1CTAo
JXJkaSksJXhtbTAKKwltb3ZkcXUJMCglcnNpKSwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tMgor
CXB4b3IJJXhtbTAsJXhtbTIKKwlwYW5kCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMAor
CXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcXUJJXhtbTAsMCglcmRpKQorCW1vdmRxdQkleG1tMSww
KCVyc2kpCisKKwltb3ZkcXUJMTYoJXJkaSksJXhtbTAKKwltb3ZkcXUJMTYoJXJzaSksJXhtbTEK
Kwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1t
MgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDE2
KCVyZGkpCisJbW92ZHF1CSV4bW0xLDE2KCVyc2kpCisKKwltb3ZkcXUJMzIoJXJkaSksJXhtbTAK
Kwltb3ZkcXUJMzIoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0w
LCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0y
LCV4bW0xCisJbW92ZHF1CSV4bW0wLDMyKCVyZGkpCisJbW92ZHF1CSV4bW0xLDMyKCVyc2kpCisK
Kwltb3ZkcXUJNDgoJXJkaSksJXhtbTAKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTEKKwltb3ZkcWEJ
JXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJ
JXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDQ4KCVyZGkpCisJ
bW92ZHF1CSV4bW0xLDQ4KCVyc2kpCisKKwltb3ZkcXUJNjQoJXJkaSksJXhtbTAKKwltb3ZkcXUJ
NjQoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJ
cGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJ
bW92ZHF1CSV4bW0wLDY0KCVyZGkpCisJbW92ZHF1CSV4bW0xLDY0KCVyc2kpCisKKwltb3ZkcXUJ
ODAoJXJkaSksJXhtbTAKKwltb3ZkcXUJODAoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXht
bTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXht
bTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDgwKCVyZGkpCisJbW92ZHF1CSV4
bW0xLDgwKCVyc2kpCisKKwltb3ZkcXUJOTYoJXJkaSksJXhtbTAKKwltb3ZkcXUJOTYoJXJzaSks
JXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1t
MywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4
bW0wLDk2KCVyZGkpCisJbW92ZHF1CSV4bW0xLDk2KCVyc2kpCisKKwltb3ZkcXUJMTEyKCVyZGkp
LCV4bW0wCisJbW92ZHF1CTExMiglcnNpKSwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tMgorCXB4
b3IJJXhtbTAsJXhtbTIKKwlwYW5kCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMAorCXB4
b3IJJXhtbTIsJXhtbTEKKwltb3ZkcXUJJXhtbTAsMTEyKCVyZGkpCisJbW92ZHF1CSV4bW0xLDEx
MiglcnNpKQorCisJbW92ZHF1CTEyOCglcmRpKSwleG1tMAorCW1vdmRxdQkxMjgoJXJzaSksJXht
bTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywl
eG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0w
LDEyOCglcmRpKQorCW1vdmRxdQkleG1tMSwxMjgoJXJzaSkKKworCW1vdmRxdQkxNDQoJXJkaSks
JXhtbTAKKwltb3ZkcXUJMTQ0KCVyc2kpLCV4bW0xCisJbW92ZHFhCSV4bW0xLCV4bW0yCisJcHhv
cgkleG1tMCwleG1tMgorCXBhbmQJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0yLCV4bW0wCisJcHhv
cgkleG1tMiwleG1tMQorCW1vdmRxdQkleG1tMCwxNDQoJXJkaSkKKwltb3ZkcXUJJXhtbTEsMTQ0
KCVyc2kpCisKKwltb3ZkcXUJMTYwKCVyZGkpLCV4bW0wCisJbW92ZHF1CTE2MCglcnNpKSwleG1t
MQorCW1vdmRxYQkleG1tMSwleG1tMgorCXB4b3IJJXhtbTAsJXhtbTIKKwlwYW5kCSV4bW0zLCV4
bW0yCisJcHhvcgkleG1tMiwleG1tMAorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcXUJJXhtbTAs
MTYwKCVyZGkpCisJbW92ZHF1CSV4bW0xLDE2MCglcnNpKQorCisJbW92ZHF1CTE3NiglcmRpKSwl
eG1tMAorCW1vdmRxdQkxNzYoJXJzaSksJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlweG9y
CSV4bW0wLCV4bW0yCisJcGFuZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTAKKwlweG9y
CSV4bW0yLCV4bW0xCisJbW92ZHF1CSV4bW0wLDE3NiglcmRpKQorCW1vdmRxdQkleG1tMSwxNzYo
JXJzaSkKKworCW1vdmRxdQkxOTIoJXJkaSksJXhtbTAKKwltb3ZkcXUJMTkyKCVyc2kpLCV4bW0x
CisJbW92ZHFhCSV4bW0xLCV4bW0yCisJcHhvcgkleG1tMCwleG1tMgorCXBhbmQJJXhtbTMsJXht
bTIKKwlweG9yCSV4bW0yLCV4bW0wCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxdQkleG1tMCwx
OTIoJXJkaSkKKwltb3ZkcXUJJXhtbTEsMTkyKCVyc2kpCisKKwltb3ZkcXUJMjA4KCVyZGkpLCV4
bW0wCisJbW92ZHF1CTIwOCglcnNpKSwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tMgorCXB4b3IJ
JXhtbTAsJXhtbTIKKwlwYW5kCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMAorCXB4b3IJ
JXhtbTIsJXhtbTEKKwltb3ZkcXUJJXhtbTAsMjA4KCVyZGkpCisJbW92ZHF1CSV4bW0xLDIwOCgl
cnNpKQorCisJLmJ5dGUJMHhmMywweGMzCisuZ2xvYmwJX3Npa2VfZnBzdWIKKy5wcml2YXRlX2V4
dGVybiBfc2lrZV9mcHN1YgorCitfc2lrZV9mcHN1YjoKKworCXB1c2hxCSVyMTIKKworCisJcHVz
aHEJJXIxMworCisKKwlwdXNocQklcjE0CisKKworCisJeG9ycQklcmF4LCVyYXgKKworCW1vdnEJ
MCglcmRpKSwlcjgKKwlzdWJxCTAoJXJzaSksJXI4CisJbW92cQk4KCVyZGkpLCVyOQorCXNiYnEJ
OCglcnNpKSwlcjkKKwltb3ZxCTE2KCVyZGkpLCVyMTAKKwlzYmJxCTE2KCVyc2kpLCVyMTAKKwlt
b3ZxCTI0KCVyZGkpLCVyMTEKKwlzYmJxCTI0KCVyc2kpLCVyMTEKKwltb3ZxCTMyKCVyZGkpLCVy
MTIKKwlzYmJxCTMyKCVyc2kpLCVyMTIKKwltb3ZxCTQwKCVyZGkpLCVyMTMKKwlzYmJxCTQwKCVy
c2kpLCVyMTMKKwltb3ZxCTQ4KCVyZGkpLCVyMTQKKwlzYmJxCTQ4KCVyc2kpLCVyMTQKKworCXNi
YnEJJDB4MCwlcmF4CisKKwltb3ZxCUwkcDQzNHgyKCVyaXApLCVyZGkKKwlhbmRxCSVyYXgsJXJk
aQorCW1vdnEJOCtMJHA0MzR4MiglcmlwKSwlcnNpCisJYW5kcQklcmF4LCVyc2kKKwltb3ZxCTE2
K0wkcDQzNHgyKCVyaXApLCVyY3gKKwlhbmRxCSVyYXgsJXJjeAorCisJYWRkcQklcmRpLCVyOAor
CW1vdnEJJXI4LDAoJXJkeCkKKwlhZGNxCSVyc2ksJXI5CisJbW92cQklcjksOCglcmR4KQorCWFk
Y3EJJXJzaSwlcjEwCisJbW92cQklcjEwLDE2KCVyZHgpCisJYWRjcQklcmN4LCVyMTEKKwltb3Zx
CSVyMTEsMjQoJXJkeCkKKworCXNldGMJJWNsCisJbW92cQkyNCtMJHA0MzR4MiglcmlwKSwlcjgK
KwlhbmRxCSVyYXgsJXI4CisJbW92cQkzMitMJHA0MzR4MiglcmlwKSwlcjkKKwlhbmRxCSVyYXgs
JXI5CisJbW92cQk0MCtMJHA0MzR4MiglcmlwKSwlcjEwCisJYW5kcQklcmF4LCVyMTAKKwlidHEJ
JDB4MCwlcmN4CisKKwlhZGNxCSVyOCwlcjEyCisJYWRjcQklcjksJXIxMworCWFkY3EJJXIxMCwl
cjE0CisJbW92cQklcjEyLDMyKCVyZHgpCisJbW92cQklcjEzLDQwKCVyZHgpCisJbW92cQklcjE0
LDQ4KCVyZHgpCisKKwlwb3BxCSVyMTQKKworCXBvcHEJJXIxMworCisJcG9wcQklcjEyCisKKwku
Ynl0ZQkweGYzLDB4YzMKKworLmdsb2JsCV9zaWtlX21wYWRkX2FzbQorLnByaXZhdGVfZXh0ZXJu
IF9zaWtlX21wYWRkX2FzbQorCitfc2lrZV9tcGFkZF9hc206CisKKwltb3ZxCTAoJXJkaSksJXI4
OworCW1vdnEJOCglcmRpKSwlcjkKKwltb3ZxCTE2KCVyZGkpLCVyMTAKKwltb3ZxCTI0KCVyZGkp
LCVyMTEKKwltb3ZxCTMyKCVyZGkpLCVyY3gKKwlhZGRxCTAoJXJzaSksJXI4CisJYWRjcQk4KCVy
c2kpLCVyOQorCWFkY3EJMTYoJXJzaSksJXIxMAorCWFkY3EJMjQoJXJzaSksJXIxMQorCWFkY3EJ
MzIoJXJzaSksJXJjeAorCW1vdnEJJXI4LDAoJXJkeCkKKwltb3ZxCSVyOSw4KCVyZHgpCisJbW92
cQklcjEwLDE2KCVyZHgpCisJbW92cQklcjExLDI0KCVyZHgpCisJbW92cQklcmN4LDMyKCVyZHgp
CisKKwltb3ZxCTQwKCVyZGkpLCVyOAorCW1vdnEJNDgoJXJkaSksJXI5CisJYWRjcQk0MCglcnNp
KSwlcjgKKwlhZGNxCTQ4KCVyc2kpLCVyOQorCW1vdnEJJXI4LDQwKCVyZHgpCisJbW92cQklcjks
NDgoJXJkeCkKKwkuYnl0ZQkweGYzLDB4YzMKKworLmdsb2JsCV9zaWtlX21wc3VieDJfYXNtCisu
cHJpdmF0ZV9leHRlcm4gX3Npa2VfbXBzdWJ4Ml9hc20KKworX3Npa2VfbXBzdWJ4Ml9hc206CisK
Kwl4b3JxCSVyYXgsJXJheAorCisJbW92cQkwKCVyZGkpLCVyOAorCW1vdnEJOCglcmRpKSwlcjkK
Kwltb3ZxCTE2KCVyZGkpLCVyMTAKKwltb3ZxCTI0KCVyZGkpLCVyMTEKKwltb3ZxCTMyKCVyZGkp
LCVyY3gKKwlzdWJxCTAoJXJzaSksJXI4CisJc2JicQk4KCVyc2kpLCVyOQorCXNiYnEJMTYoJXJz
aSksJXIxMAorCXNiYnEJMjQoJXJzaSksJXIxMQorCXNiYnEJMzIoJXJzaSksJXJjeAorCW1vdnEJ
JXI4LDAoJXJkeCkKKwltb3ZxCSVyOSw4KCVyZHgpCisJbW92cQklcjEwLDE2KCVyZHgpCisJbW92
cQklcjExLDI0KCVyZHgpCisJbW92cQklcmN4LDMyKCVyZHgpCisKKwltb3ZxCTQwKCVyZGkpLCVy
OAorCW1vdnEJNDgoJXJkaSksJXI5CisJbW92cQk1NiglcmRpKSwlcjEwCisJbW92cQk2NCglcmRp
KSwlcjExCisJbW92cQk3MiglcmRpKSwlcmN4CisJc2JicQk0MCglcnNpKSwlcjgKKwlzYmJxCTQ4
KCVyc2kpLCVyOQorCXNiYnEJNTYoJXJzaSksJXIxMAorCXNiYnEJNjQoJXJzaSksJXIxMQorCXNi
YnEJNzIoJXJzaSksJXJjeAorCW1vdnEJJXI4LDQwKCVyZHgpCisJbW92cQklcjksNDgoJXJkeCkK
Kwltb3ZxCSVyMTAsNTYoJXJkeCkKKwltb3ZxCSVyMTEsNjQoJXJkeCkKKwltb3ZxCSVyY3gsNzIo
JXJkeCkKKworCW1vdnEJODAoJXJkaSksJXI4CisJbW92cQk4OCglcmRpKSwlcjkKKwltb3ZxCTk2
KCVyZGkpLCVyMTAKKwltb3ZxCTEwNCglcmRpKSwlcjExCisJc2JicQk4MCglcnNpKSwlcjgKKwlz
YmJxCTg4KCVyc2kpLCVyOQorCXNiYnEJOTYoJXJzaSksJXIxMAorCXNiYnEJMTA0KCVyc2kpLCVy
MTEKKwlzYmJxCSQweDAsJXJheAorCW1vdnEJJXI4LDgwKCVyZHgpCisJbW92cQklcjksODgoJXJk
eCkKKwltb3ZxCSVyMTAsOTYoJXJkeCkKKwltb3ZxCSVyMTEsMTA0KCVyZHgpCisJLmJ5dGUJMHhm
MywweGMzCisKKy5nbG9ibAlfc2lrZV9tcGRibHN1YngyX2FzbQorLnByaXZhdGVfZXh0ZXJuIF9z
aWtlX21wZGJsc3VieDJfYXNtCisKK19zaWtlX21wZGJsc3VieDJfYXNtOgorCisJcHVzaHEJJXIx
MgorCisKKwlwdXNocQklcjEzCisKKworCisJeG9ycQklcmF4LCVyYXgKKworCisJbW92cQkwKCVy
ZHgpLCVyOAorCW1vdnEJOCglcmR4KSwlcjkKKwltb3ZxCTE2KCVyZHgpLCVyMTAKKwltb3ZxCTI0
KCVyZHgpLCVyMTEKKwltb3ZxCTMyKCVyZHgpLCVyMTIKKwltb3ZxCTQwKCVyZHgpLCVyMTMKKwlt
b3ZxCTQ4KCVyZHgpLCVyY3gKKwlzdWJxCTAoJXJkaSksJXI4CisJc2JicQk4KCVyZGkpLCVyOQor
CXNiYnEJMTYoJXJkaSksJXIxMAorCXNiYnEJMjQoJXJkaSksJXIxMQorCXNiYnEJMzIoJXJkaSks
JXIxMgorCXNiYnEJNDAoJXJkaSksJXIxMworCXNiYnEJNDgoJXJkaSksJXJjeAorCWFkY3EJJDB4
MCwlcmF4CisKKworCXN1YnEJMCglcnNpKSwlcjgKKwlzYmJxCTgoJXJzaSksJXI5CisJc2JicQkx
NiglcnNpKSwlcjEwCisJc2JicQkyNCglcnNpKSwlcjExCisJc2JicQkzMiglcnNpKSwlcjEyCisJ
c2JicQk0MCglcnNpKSwlcjEzCisJc2JicQk0OCglcnNpKSwlcmN4CisJYWRjcQkkMHgwLCVyYXgK
KworCisJbW92cQklcjgsMCglcmR4KQorCW1vdnEJJXI5LDgoJXJkeCkKKwltb3ZxCSVyMTAsMTYo
JXJkeCkKKwltb3ZxCSVyMTEsMjQoJXJkeCkKKwltb3ZxCSVyMTIsMzIoJXJkeCkKKwltb3ZxCSVy
MTMsNDAoJXJkeCkKKwltb3ZxCSVyY3gsNDgoJXJkeCkKKworCisJbW92cQk1NiglcmR4KSwlcjgK
Kwltb3ZxCTY0KCVyZHgpLCVyOQorCW1vdnEJNzIoJXJkeCksJXIxMAorCW1vdnEJODAoJXJkeCks
JXIxMQorCW1vdnEJODgoJXJkeCksJXIxMgorCW1vdnEJOTYoJXJkeCksJXIxMworCW1vdnEJMTA0
KCVyZHgpLCVyY3gKKworCXN1YnEJJXJheCwlcjgKKwlzYmJxCTU2KCVyZGkpLCVyOAorCXNiYnEJ
NjQoJXJkaSksJXI5CisJc2JicQk3MiglcmRpKSwlcjEwCisJc2JicQk4MCglcmRpKSwlcjExCisJ
c2JicQk4OCglcmRpKSwlcjEyCisJc2JicQk5NiglcmRpKSwlcjEzCisJc2JicQkxMDQoJXJkaSks
JXJjeAorCisKKwlzdWJxCTU2KCVyc2kpLCVyOAorCXNiYnEJNjQoJXJzaSksJXI5CisJc2JicQk3
MiglcnNpKSwlcjEwCisJc2JicQk4MCglcnNpKSwlcjExCisJc2JicQk4OCglcnNpKSwlcjEyCisJ
c2JicQk5NiglcnNpKSwlcjEzCisJc2JicQkxMDQoJXJzaSksJXJjeAorCisKKwltb3ZxCSVyOCw1
NiglcmR4KQorCW1vdnEJJXI5LDY0KCVyZHgpCisJbW92cQklcjEwLDcyKCVyZHgpCisJbW92cQkl
cjExLDgwKCVyZHgpCisJbW92cQklcjEyLDg4KCVyZHgpCisJbW92cQklcjEzLDk2KCVyZHgpCisJ
bW92cQklcmN4LDEwNCglcmR4KQorCisJcG9wcQklcjEzCisKKwlwb3BxCSVyMTIKKworCS5ieXRl
CTB4ZjMsMHhjMworCisKK0wkcmRjX2JkdzoKKworCisKKworCisKKworCisJeG9ycQklcmF4LCVy
YXgKKwltb3ZxCTArMCglcmRpKSwlcmR4CisJbXVseHEJMCtMJHA0MzRwMSglcmlwKSwlcjgsJXI5
CisJbXVseHEJOCtMJHA0MzRwMSglcmlwKSwlcjEyLCVyMTAKKwltdWx4cQkxNitMJHA0MzRwMSgl
cmlwKSwlcjEzLCVyMTEKKworCWFkb3hxCSVyMTIsJXI5CisJYWRveHEJJXIxMywlcjEwCisKKwlt
dWx4cQkyNCtMJHA0MzRwMSglcmlwKSwlcjEzLCVyMTIKKwlhZG94cQklcjEzLCVyMTEKKwlhZG94
cQklcmF4LCVyMTIKKworCXhvcnEJJXJheCwlcmF4CisJbW92cQkwKzgoJXJkaSksJXJkeAorCW11
bHhxCTArTCRwNDM0cDEoJXJpcCksJXIxMywlcmN4CisJYWRjeHEJJXIxMywlcjkKKwlhZGN4cQkl
cmN4LCVyMTAKKworCW11bHhxCTgrTCRwNDM0cDEoJXJpcCksJXJjeCwlcjEzCisJYWRjeHEJJXIx
MywlcjExCisJYWRveHEJJXJjeCwlcjEwCisKKwltdWx4cQkxNitMJHA0MzRwMSglcmlwKSwlcmN4
LCVyMTMKKwlhZGN4cQklcjEzLCVyMTIKKwlhZG94cQklcmN4LCVyMTEKKworCW11bHhxCTI0K0wk
cDQzNHAxKCVyaXApLCVyY3gsJXIxMworCWFkY3hxCSVyYXgsJXIxMworCWFkb3hxCSVyY3gsJXIx
MgorCWFkb3hxCSVyYXgsJXIxMworCisJeG9ycQklcmN4LCVyY3gKKwlhZGRxCTI0KCVyZGkpLCVy
OAorCWFkY3EJMzIoJXJkaSksJXI5CisJYWRjcQk0MCglcmRpKSwlcjEwCisJYWRjcQk0OCglcmRp
KSwlcjExCisJYWRjcQk1NiglcmRpKSwlcjEyCisJYWRjcQk2NCglcmRpKSwlcjEzCisJYWRjcQk3
MiglcmRpKSwlcmN4CisJbW92cQklcjgsMjQoJXJkaSkKKwltb3ZxCSVyOSwzMiglcmRpKQorCW1v
dnEJJXIxMCw0MCglcmRpKQorCW1vdnEJJXIxMSw0OCglcmRpKQorCW1vdnEJJXIxMiw1NiglcmRp
KQorCW1vdnEJJXIxMyw2NCglcmRpKQorCW1vdnEJJXJjeCw3MiglcmRpKQorCW1vdnEJODAoJXJk
aSksJXI4CisJbW92cQk4OCglcmRpKSwlcjkKKwltb3ZxCTk2KCVyZGkpLCVyMTAKKwltb3ZxCTEw
NCglcmRpKSwlcjExCisJYWRjcQkkMHgwLCVyOAorCWFkY3EJJDB4MCwlcjkKKwlhZGNxCSQweDAs
JXIxMAorCWFkY3EJJDB4MCwlcjExCisJbW92cQklcjgsODAoJXJkaSkKKwltb3ZxCSVyOSw4OCgl
cmRpKQorCW1vdnEJJXIxMCw5NiglcmRpKQorCW1vdnEJJXIxMSwxMDQoJXJkaSkKKworCXhvcnEJ
JXJheCwlcmF4CisJbW92cQkxNiswKCVyZGkpLCVyZHgKKwltdWx4cQkwK0wkcDQzNHAxKCVyaXAp
LCVyOCwlcjkKKwltdWx4cQk4K0wkcDQzNHAxKCVyaXApLCVyMTIsJXIxMAorCW11bHhxCTE2K0wk
cDQzNHAxKCVyaXApLCVyMTMsJXIxMQorCisJYWRveHEJJXIxMiwlcjkKKwlhZG94cQklcjEzLCVy
MTAKKworCW11bHhxCTI0K0wkcDQzNHAxKCVyaXApLCVyMTMsJXIxMgorCWFkb3hxCSVyMTMsJXIx
MQorCWFkb3hxCSVyYXgsJXIxMgorCisJeG9ycQklcmF4LCVyYXgKKwltb3ZxCTE2KzgoJXJkaSks
JXJkeAorCW11bHhxCTArTCRwNDM0cDEoJXJpcCksJXIxMywlcmN4CisJYWRjeHEJJXIxMywlcjkK
KwlhZGN4cQklcmN4LCVyMTAKKworCW11bHhxCTgrTCRwNDM0cDEoJXJpcCksJXJjeCwlcjEzCisJ
YWRjeHEJJXIxMywlcjExCisJYWRveHEJJXJjeCwlcjEwCisKKwltdWx4cQkxNitMJHA0MzRwMSgl
cmlwKSwlcmN4LCVyMTMKKwlhZGN4cQklcjEzLCVyMTIKKwlhZG94cQklcmN4LCVyMTEKKworCW11
bHhxCTI0K0wkcDQzNHAxKCVyaXApLCVyY3gsJXIxMworCWFkY3hxCSVyYXgsJXIxMworCWFkb3hx
CSVyY3gsJXIxMgorCWFkb3hxCSVyYXgsJXIxMworCisJeG9ycQklcmN4LCVyY3gKKwlhZGRxCTQw
KCVyZGkpLCVyOAorCWFkY3EJNDgoJXJkaSksJXI5CisJYWRjcQk1NiglcmRpKSwlcjEwCisJYWRj
cQk2NCglcmRpKSwlcjExCisJYWRjcQk3MiglcmRpKSwlcjEyCisJYWRjcQk4MCglcmRpKSwlcjEz
CisJYWRjcQk4OCglcmRpKSwlcmN4CisJbW92cQklcjgsNDAoJXJkaSkKKwltb3ZxCSVyOSw0OCgl
cmRpKQorCW1vdnEJJXIxMCw1NiglcmRpKQorCW1vdnEJJXIxMSw2NCglcmRpKQorCW1vdnEJJXIx
Miw3MiglcmRpKQorCW1vdnEJJXIxMyw4MCglcmRpKQorCW1vdnEJJXJjeCw4OCglcmRpKQorCW1v
dnEJOTYoJXJkaSksJXI4CisJbW92cQkxMDQoJXJkaSksJXI5CisJYWRjcQkkMHgwLCVyOAorCWFk
Y3EJJDB4MCwlcjkKKwltb3ZxCSVyOCw5NiglcmRpKQorCW1vdnEJJXI5LDEwNCglcmRpKQorCisJ
eG9ycQklcmF4LCVyYXgKKwltb3ZxCTMyKzAoJXJkaSksJXJkeAorCW11bHhxCTArTCRwNDM0cDEo
JXJpcCksJXI4LCVyOQorCW11bHhxCTgrTCRwNDM0cDEoJXJpcCksJXIxMiwlcjEwCisJbXVseHEJ
MTYrTCRwNDM0cDEoJXJpcCksJXIxMywlcjExCisKKwlhZG94cQklcjEyLCVyOQorCWFkb3hxCSVy
MTMsJXIxMAorCisJbXVseHEJMjQrTCRwNDM0cDEoJXJpcCksJXIxMywlcjEyCisJYWRveHEJJXIx
MywlcjExCisJYWRveHEJJXJheCwlcjEyCisKKwl4b3JxCSVyYXgsJXJheAorCW1vdnEJMzIrOCgl
cmRpKSwlcmR4CisJbXVseHEJMCtMJHA0MzRwMSglcmlwKSwlcjEzLCVyY3gKKwlhZGN4cQklcjEz
LCVyOQorCWFkY3hxCSVyY3gsJXIxMAorCisJbXVseHEJOCtMJHA0MzRwMSglcmlwKSwlcmN4LCVy
MTMKKwlhZGN4cQklcjEzLCVyMTEKKwlhZG94cQklcmN4LCVyMTAKKworCW11bHhxCTE2K0wkcDQz
NHAxKCVyaXApLCVyY3gsJXIxMworCWFkY3hxCSVyMTMsJXIxMgorCWFkb3hxCSVyY3gsJXIxMQor
CisJbXVseHEJMjQrTCRwNDM0cDEoJXJpcCksJXJjeCwlcjEzCisJYWRjeHEJJXJheCwlcjEzCisJ
YWRveHEJJXJjeCwlcjEyCisJYWRveHEJJXJheCwlcjEzCisKKwl4b3JxCSVyY3gsJXJjeAorCWFk
ZHEJNTYoJXJkaSksJXI4CisJYWRjcQk2NCglcmRpKSwlcjkKKwlhZGNxCTcyKCVyZGkpLCVyMTAK
KwlhZGNxCTgwKCVyZGkpLCVyMTEKKwlhZGNxCTg4KCVyZGkpLCVyMTIKKwlhZGNxCTk2KCVyZGkp
LCVyMTMKKwlhZGNxCTEwNCglcmRpKSwlcmN4CisJbW92cQklcjgsMCglcnNpKQorCW1vdnEJJXI5
LDgoJXJzaSkKKwltb3ZxCSVyMTAsNzIoJXJkaSkKKwltb3ZxCSVyMTEsODAoJXJkaSkKKwltb3Zx
CSVyMTIsODgoJXJkaSkKKwltb3ZxCSVyMTMsOTYoJXJkaSkKKwltb3ZxCSVyY3gsMTA0KCVyZGkp
CisKKwl4b3JxCSVyYXgsJXJheAorCW1vdnEJNDgoJXJkaSksJXJkeAorCW11bHhxCTArTCRwNDM0
cDEoJXJpcCksJXI4LCVyOQorCW11bHhxCTgrTCRwNDM0cDEoJXJpcCksJXIxMiwlcjEwCisJbXVs
eHEJMTYrTCRwNDM0cDEoJXJpcCksJXIxMywlcjExCisKKwlhZG94cQklcjEyLCVyOQorCWFkb3hx
CSVyMTMsJXIxMAorCisJbXVseHEJMjQrTCRwNDM0cDEoJXJpcCksJXIxMywlcjEyCisJYWRveHEJ
JXIxMywlcjExCisJYWRveHEJJXJheCwlcjEyCisKKwlhZGRxCTcyKCVyZGkpLCVyOAorCWFkY3EJ
ODAoJXJkaSksJXI5CisJYWRjcQk4OCglcmRpKSwlcjEwCisJYWRjcQk5NiglcmRpKSwlcjExCisJ
YWRjcQkxMDQoJXJkaSksJXIxMgorCW1vdnEJJXI4LDE2KCVyc2kpCisJbW92cQklcjksMjQoJXJz
aSkKKwltb3ZxCSVyMTAsMzIoJXJzaSkKKwltb3ZxCSVyMTEsNDAoJXJzaSkKKwltb3ZxCSVyMTIs
NDgoJXJzaSkKKworCisJcG9wcQklcjE1CisKKworCXBvcHEJJXIxNAorCisKKwlwb3BxCSVyMTMK
KworCisJcG9wcQklcjEyCisKKworCS5ieXRlCTB4ZjMsMHhjMworCisuZ2xvYmwJX3Npa2VfZnBy
ZGMKKy5wcml2YXRlX2V4dGVybiBfc2lrZV9mcHJkYworCitfc2lrZV9mcHJkYzoKKworCXB1c2hx
CSVyMTIKKworCisJcHVzaHEJJXIxMworCisKKwlwdXNocQklcjE0CisKKworCXB1c2hxCSVyMTUK
KworCisKKworCisJbGVhcQlfT1BFTlNTTF9pYTMyY2FwX1AoJXJpcCksJXJjeAorCW1vdnEJOCgl
cmN4KSwlcmN4CisJYW5kbAkkMHg4MDEwMCwlZWN4CisJY21wbAkkMHg4MDEwMCwlZWN4CisJamUJ
TCRyZGNfYmR3CisKKworCisKKwltb3ZxCTArMCglcmRpKSwlcjE0CisJbW92cQkwK0wkcDQzNHAx
KCVyaXApLCVyYXgKKwltdWxxCSVyMTQKKwl4b3JxCSVyMTAsJXIxMAorCW1vdnEJJXJheCwlcjgK
Kwltb3ZxCSVyZHgsJXI5CisKKworCW1vdnEJOCtMJHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQkl
cjE0CisJeG9ycQklcjExLCVyMTEKKwlhZGRxCSVyYXgsJXI5CisJYWRjcQklcmR4LCVyMTAKKwor
CisJbW92cQkwKzgoJXJkaSksJXJjeAorCW1vdnEJMCtMJHA0MzRwMSglcmlwKSwlcmF4CisJbXVs
cQklcmN4CisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgwLCVyMTEK
KworCisJeG9ycQklcjEyLCVyMTIKKwltb3ZxCTE2K0wkcDQzNHAxKCVyaXApLCVyYXgKKwltdWxx
CSVyMTQKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjExCisJYWRjcQkkMHgwLCVyMTIK
KworCisJbW92cQk4K0wkcDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyY3gKKwlhZGRxCSVyYXgs
JXIxMAorCWFkY3EJJXJkeCwlcjExCisJYWRjcQkkMHgwLCVyMTIKKworCisJbW92cQkyNCtMJHA0
MzRwMSglcmlwKSwlcmF4CisJbXVscQklcjE0CisJeG9ycQklcjEzLCVyMTMKKwlhZGRxCSVyYXgs
JXIxMQorCWFkY3EJJXJkeCwlcjEyCisJYWRjcQkkMHgwLCVyMTMKKworCisJbW92cQkxNitMJHA0
MzRwMSglcmlwKSwlcmF4CisJbXVscQklcmN4CisJYWRkcQklcmF4LCVyMTEKKwlhZGNxCSVyZHgs
JXIxMgorCWFkY3EJJDB4MCwlcjEzCisKKworCW1vdnEJMjQrTCRwNDM0cDEoJXJpcCksJXJheAor
CW11bHEJJXJjeAorCWFkZHEJJXJheCwlcjEyCisJYWRjcQklcmR4LCVyMTMKKworCisJeG9ycQkl
cmN4LCVyY3gKKwlhZGRxCTI0KCVyZGkpLCVyOAorCWFkY3EJMzIoJXJkaSksJXI5CisJYWRjcQk0
MCglcmRpKSwlcjEwCisJYWRjcQk0OCglcmRpKSwlcjExCisJYWRjcQk1NiglcmRpKSwlcjEyCisJ
YWRjcQk2NCglcmRpKSwlcjEzCisJYWRjcQk3MiglcmRpKSwlcmN4CisJbW92cQklcjgsMjQoJXJk
aSkKKwltb3ZxCSVyOSwzMiglcmRpKQorCW1vdnEJJXIxMCw0MCglcmRpKQorCW1vdnEJJXIxMSw0
OCglcmRpKQorCW1vdnEJJXIxMiw1NiglcmRpKQorCW1vdnEJJXIxMyw2NCglcmRpKQorCW1vdnEJ
JXJjeCw3MiglcmRpKQorCW1vdnEJODAoJXJkaSksJXI4CisJbW92cQk4OCglcmRpKSwlcjkKKwlt
b3ZxCTk2KCVyZGkpLCVyMTAKKwltb3ZxCTEwNCglcmRpKSwlcjExCisJYWRjcQkkMHgwLCVyOAor
CWFkY3EJJDB4MCwlcjkKKwlhZGNxCSQweDAsJXIxMAorCWFkY3EJJDB4MCwlcjExCisJbW92cQkl
cjgsODAoJXJkaSkKKwltb3ZxCSVyOSw4OCglcmRpKQorCW1vdnEJJXIxMCw5NiglcmRpKQorCW1v
dnEJJXIxMSwxMDQoJXJkaSkKKworCisJbW92cQkxNiswKCVyZGkpLCVyMTQKKwltb3ZxCTArTCRw
NDM0cDEoJXJpcCksJXJheAorCW11bHEJJXIxNAorCXhvcnEJJXIxMCwlcjEwCisJbW92cQklcmF4
LCVyOAorCW1vdnEJJXJkeCwlcjkKKworCisJbW92cQk4K0wkcDQzNHAxKCVyaXApLCVyYXgKKwlt
dWxxCSVyMTQKKwl4b3JxCSVyMTEsJXIxMQorCWFkZHEJJXJheCwlcjkKKwlhZGNxCSVyZHgsJXIx
MAorCisKKwltb3ZxCTE2KzgoJXJkaSksJXJjeAorCW1vdnEJMCtMJHA0MzRwMSglcmlwKSwlcmF4
CisJbXVscQklcmN4CisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgw
LCVyMTEKKworCisJeG9ycQklcjEyLCVyMTIKKwltb3ZxCTE2K0wkcDQzNHAxKCVyaXApLCVyYXgK
KwltdWxxCSVyMTQKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjExCisJYWRjcQkkMHgw
LCVyMTIKKworCisJbW92cQk4K0wkcDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyY3gKKwlhZGRx
CSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjExCisJYWRjcQkkMHgwLCVyMTIKKworCisJbW92cQky
NCtMJHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQklcjE0CisJeG9ycQklcjEzLCVyMTMKKwlhZGRx
CSVyYXgsJXIxMQorCWFkY3EJJXJkeCwlcjEyCisJYWRjcQkkMHgwLCVyMTMKKworCisJbW92cQkx
NitMJHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQklcmN4CisJYWRkcQklcmF4LCVyMTEKKwlhZGNx
CSVyZHgsJXIxMgorCWFkY3EJJDB4MCwlcjEzCisKKworCW1vdnEJMjQrTCRwNDM0cDEoJXJpcCks
JXJheAorCW11bHEJJXJjeAorCWFkZHEJJXJheCwlcjEyCisJYWRjcQklcmR4LCVyMTMKKworCisJ
eG9ycQklcmN4LCVyY3gKKwlhZGRxCTQwKCVyZGkpLCVyOAorCWFkY3EJNDgoJXJkaSksJXI5CisJ
YWRjcQk1NiglcmRpKSwlcjEwCisJYWRjcQk2NCglcmRpKSwlcjExCisJYWRjcQk3MiglcmRpKSwl
cjEyCisJYWRjcQk4MCglcmRpKSwlcjEzCisJYWRjcQk4OCglcmRpKSwlcmN4CisJbW92cQklcjgs
NDAoJXJkaSkKKwltb3ZxCSVyOSw0OCglcmRpKQorCW1vdnEJJXIxMCw1NiglcmRpKQorCW1vdnEJ
JXIxMSw2NCglcmRpKQorCW1vdnEJJXIxMiw3MiglcmRpKQorCW1vdnEJJXIxMyw4MCglcmRpKQor
CW1vdnEJJXJjeCw4OCglcmRpKQorCW1vdnEJOTYoJXJkaSksJXI4CisJbW92cQkxMDQoJXJkaSks
JXI5CisJYWRjcQkkMHgwLCVyOAorCWFkY3EJJDB4MCwlcjkKKwltb3ZxCSVyOCw5NiglcmRpKQor
CW1vdnEJJXI5LDEwNCglcmRpKQorCisKKwltb3ZxCTMyKzAoJXJkaSksJXIxNAorCW1vdnEJMCtM
JHA0MzRwMSglcmlwKSwlcmF4CisJbXVscQklcjE0CisJeG9ycQklcjEwLCVyMTAKKwltb3ZxCSVy
YXgsJXI4CisJbW92cQklcmR4LCVyOQorCisKKwltb3ZxCTgrTCRwNDM0cDEoJXJpcCksJXJheAor
CW11bHEJJXIxNAorCXhvcnEJJXIxMSwlcjExCisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwl
cjEwCisKKworCW1vdnEJMzIrOCglcmRpKSwlcmN4CisJbW92cQkwK0wkcDQzNHAxKCVyaXApLCVy
YXgKKwltdWxxCSVyY3gKKwlhZGRxCSVyYXgsJXI5CisJYWRjcQklcmR4LCVyMTAKKwlhZGNxCSQw
eDAsJXIxMQorCisKKwl4b3JxCSVyMTIsJXIxMgorCW1vdnEJMTYrTCRwNDM0cDEoJXJpcCksJXJh
eAorCW11bHEJJXIxNAorCWFkZHEJJXJheCwlcjEwCisJYWRjcQklcmR4LCVyMTEKKwlhZGNxCSQw
eDAsJXIxMgorCisKKwltb3ZxCTgrTCRwNDM0cDEoJXJpcCksJXJheAorCW11bHEJJXJjeAorCWFk
ZHEJJXJheCwlcjEwCisJYWRjcQklcmR4LCVyMTEKKwlhZGNxCSQweDAsJXIxMgorCisKKwltb3Zx
CTI0K0wkcDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTQKKwl4b3JxCSVyMTMsJXIxMworCWFk
ZHEJJXJheCwlcjExCisJYWRjcQklcmR4LCVyMTIKKwlhZGNxCSQweDAsJXIxMworCisKKwltb3Zx
CTE2K0wkcDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyY3gKKwlhZGRxCSVyYXgsJXIxMQorCWFk
Y3EJJXJkeCwlcjEyCisJYWRjcQkkMHgwLCVyMTMKKworCisJbW92cQkyNCtMJHA0MzRwMSglcmlw
KSwlcmF4CisJbXVscQklcmN4CisJYWRkcQklcmF4LCVyMTIKKwlhZGNxCSVyZHgsJXIxMworCisK
Kwl4b3JxCSVyY3gsJXJjeAorCWFkZHEJNTYoJXJkaSksJXI4CisJYWRjcQk2NCglcmRpKSwlcjkK
KwlhZGNxCTcyKCVyZGkpLCVyMTAKKwlhZGNxCTgwKCVyZGkpLCVyMTEKKwlhZGNxCTg4KCVyZGkp
LCVyMTIKKwlhZGNxCTk2KCVyZGkpLCVyMTMKKwlhZGNxCTEwNCglcmRpKSwlcmN4CisJbW92cQkl
cjgsMCglcnNpKQorCW1vdnEJJXI5LDgoJXJzaSkKKwltb3ZxCSVyMTAsNzIoJXJkaSkKKwltb3Zx
CSVyMTEsODAoJXJkaSkKKwltb3ZxCSVyMTIsODgoJXJkaSkKKwltb3ZxCSVyMTMsOTYoJXJkaSkK
Kwltb3ZxCSVyY3gsMTA0KCVyZGkpCisKKwltb3ZxCTQ4KCVyZGkpLCVyMTMKKworCXhvcnEJJXIx
MCwlcjEwCisJbW92cQkwK0wkcDQzNHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTMKKwltb3ZxCSVy
YXgsJXI4CisJbW92cQklcmR4LCVyOQorCisJeG9ycQklcjExLCVyMTEKKwltb3ZxCTgrTCRwNDM0
cDEoJXJpcCksJXJheAorCW11bHEJJXIxMworCWFkZHEJJXJheCwlcjkKKwlhZGNxCSVyZHgsJXIx
MAorCisJeG9ycQklcjEyLCVyMTIKKwltb3ZxCTE2K0wkcDQzNHAxKCVyaXApLCVyYXgKKwltdWxx
CSVyMTMKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjExCisKKwltb3ZxCTI0K0wkcDQz
NHAxKCVyaXApLCVyYXgKKwltdWxxCSVyMTMKKwlhZGRxCSVyYXgsJXIxMQorCWFkY3EJJXJkeCwl
cjEyCisKKwlhZGRxCTcyKCVyZGkpLCVyOAorCWFkY3EJODAoJXJkaSksJXI5CisJYWRjcQk4OCgl
cmRpKSwlcjEwCisJYWRjcQk5NiglcmRpKSwlcjExCisJYWRjcQkxMDQoJXJkaSksJXIxMgorCW1v
dnEJJXI4LDE2KCVyc2kpCisJbW92cQklcjksMjQoJXJzaSkKKwltb3ZxCSVyMTAsMzIoJXJzaSkK
Kwltb3ZxCSVyMTEsNDAoJXJzaSkKKwltb3ZxCSVyMTIsNDgoJXJzaSkKKworCisJcG9wcQklcjE1
CisKKwlwb3BxCSVyMTQKKworCXBvcHEJJXIxMworCisJcG9wcQklcjEyCisKKwkuYnl0ZQkweGYz
LDB4YzMKKworTCRtdWxfYmR3OgorCisKKworCisKKworCisKKworCW1vdnEJJXJkeCwlcmN4CisJ
eG9ycQklcmF4LCVyYXgKKworCisJbW92cQkwKCVyZGkpLCVyOAorCW1vdnEJOCglcmRpKSwlcjkK
Kwltb3ZxCTE2KCVyZGkpLCVyMTAKKwltb3ZxCTI0KCVyZGkpLCVyMTEKKworCXB1c2hxCSVyYngK
KworCisJcHVzaHEJJXJicAorCisKKwlzdWJxCSQ5NiwlcnNwCisKKworCWFkZHEJMzIoJXJkaSks
JXI4CisJYWRjcQk0MCglcmRpKSwlcjkKKwlhZGNxCTQ4KCVyZGkpLCVyMTAKKwlhZGNxCSQweDAs
JXIxMQorCXNiYnEJJDB4MCwlcmF4CisJbW92cQklcjgsMCglcnNwKQorCW1vdnEJJXI5LDgoJXJz
cCkKKwltb3ZxCSVyMTAsMTYoJXJzcCkKKwltb3ZxCSVyMTEsMjQoJXJzcCkKKworCisJeG9ycQkl
cmJ4LCVyYngKKwltb3ZxCTAoJXJzaSksJXIxMgorCW1vdnEJOCglcnNpKSwlcjEzCisJbW92cQkx
NiglcnNpKSwlcjE0CisJbW92cQkyNCglcnNpKSwlcjE1CisJYWRkcQkzMiglcnNpKSwlcjEyCisJ
YWRjcQk0MCglcnNpKSwlcjEzCisJYWRjcQk0OCglcnNpKSwlcjE0CisJYWRjcQkkMHgwLCVyMTUK
KwlzYmJxCSQweDAsJXJieAorCW1vdnEJJXIxMiwzMiglcnNwKQorCW1vdnEJJXIxMyw0MCglcnNw
KQorCW1vdnEJJXIxNCw0OCglcnNwKQorCW1vdnEJJXIxNSw1NiglcnNwKQorCisKKwlhbmRxCSVy
YXgsJXIxMgorCWFuZHEJJXJheCwlcjEzCisJYW5kcQklcmF4LCVyMTQKKwlhbmRxCSVyYXgsJXIx
NQorCisKKwlhbmRxCSVyYngsJXI4CisJYW5kcQklcmJ4LCVyOQorCWFuZHEJJXJieCwlcjEwCisJ
YW5kcQklcmJ4LCVyMTEKKworCisJYWRkcQklcjEyLCVyOAorCWFkY3EJJXIxMywlcjkKKwlhZGNx
CSVyMTQsJXIxMAorCWFkY3EJJXIxNSwlcjExCisJbW92cQklcjgsNjQoJXJzcCkKKwltb3ZxCSVy
OSw3MiglcnNwKQorCW1vdnEJJXIxMCw4MCglcnNwKQorCW1vdnEJJXIxMSw4OCglcnNwKQorCisK
Kwltb3ZxCTArMCglcnNwKSwlcmR4CisJbXVseHEJMzIrMCglcnNwKSwlcjksJXI4CisJbW92cQkl
cjksMCswKCVyc3ApCisJbXVseHEJMzIrOCglcnNwKSwlcjEwLCVyOQorCXhvcnEJJXJheCwlcmF4
CisJYWRveHEJJXIxMCwlcjgKKwltdWx4cQkzMisxNiglcnNwKSwlcjExLCVyMTAKKwlhZG94cQkl
cjExLCVyOQorCW11bHhxCTMyKzI0KCVyc3ApLCVyMTIsJXIxMQorCWFkb3hxCSVyMTIsJXIxMAor
CisJbW92cQkwKzgoJXJzcCksJXJkeAorCW11bHhxCTMyKzAoJXJzcCksJXIxMiwlcjEzCisJYWRv
eHEJJXJheCwlcjExCisJeG9ycQklcmF4LCVyYXgKKwltdWx4cQkzMis4KCVyc3ApLCVyMTUsJXIx
NAorCWFkb3hxCSVyOCwlcjEyCisJbW92cQklcjEyLDArOCglcnNwKQorCWFkY3hxCSVyMTUsJXIx
MworCW11bHhxCTMyKzE2KCVyc3ApLCVyYngsJXIxNQorCWFkY3hxCSVyYngsJXIxNAorCWFkb3hx
CSVyOSwlcjEzCisJbXVseHEJMzIrMjQoJXJzcCksJXJicCwlcmJ4CisJYWRjeHEJJXJicCwlcjE1
CisJYWRjeHEJJXJheCwlcmJ4CisJYWRveHEJJXIxMCwlcjE0CisKKwltb3ZxCTArMTYoJXJzcCks
JXJkeAorCW11bHhxCTMyKzAoJXJzcCksJXI4LCVyOQorCWFkb3hxCSVyMTEsJXIxNQorCWFkb3hx
CSVyYXgsJXJieAorCXhvcnEJJXJheCwlcmF4CisJbXVseHEJMzIrOCglcnNwKSwlcjExLCVyMTAK
KwlhZG94cQklcjEzLCVyOAorCW1vdnEJJXI4LDArMTYoJXJzcCkKKwlhZGN4cQklcjExLCVyOQor
CW11bHhxCTMyKzE2KCVyc3ApLCVyMTIsJXIxMQorCWFkY3hxCSVyMTIsJXIxMAorCWFkb3hxCSVy
MTQsJXI5CisJbXVseHEJMzIrMjQoJXJzcCksJXJicCwlcjEyCisJYWRjeHEJJXJicCwlcjExCisJ
YWRjeHEJJXJheCwlcjEyCisKKwlhZG94cQklcjE1LCVyMTAKKwlhZG94cQklcmJ4LCVyMTEKKwlh
ZG94cQklcmF4LCVyMTIKKworCW1vdnEJMCsyNCglcnNwKSwlcmR4CisJbXVseHEJMzIrMCglcnNw
KSwlcjgsJXIxMworCXhvcnEJJXJheCwlcmF4CisJbXVseHEJMzIrOCglcnNwKSwlcjE1LCVyMTQK
KwlhZGN4cQklcjE1LCVyMTMKKwlhZG94cQklcjgsJXI5CisJbXVseHEJMzIrMTYoJXJzcCksJXJi
eCwlcjE1CisJYWRjeHEJJXJieCwlcjE0CisJYWRveHEJJXIxMywlcjEwCisJbXVseHEJMzIrMjQo
JXJzcCksJXJicCwlcmJ4CisJYWRjeHEJJXJicCwlcjE1CisJYWRjeHEJJXJheCwlcmJ4CisJYWRv
eHEJJXIxNCwlcjExCisJYWRveHEJJXIxNSwlcjEyCisJYWRveHEJJXJheCwlcmJ4CisJbW92cQkl
cjksMCsyNCglcnNwKQorCW1vdnEJJXIxMCwwKzMyKCVyc3ApCisJbW92cQklcjExLDArNDAoJXJz
cCkKKwltb3ZxCSVyMTIsMCs0OCglcnNwKQorCW1vdnEJJXJieCwwKzU2KCVyc3ApCisKKworCisJ
bW92cQkwKzAoJXJkaSksJXJkeAorCW11bHhxCTArMCglcnNpKSwlcjksJXI4CisJbW92cQklcjks
MCswKCVyY3gpCisJbXVseHEJMCs4KCVyc2kpLCVyMTAsJXI5CisJeG9ycQklcmF4LCVyYXgKKwlh
ZG94cQklcjEwLCVyOAorCW11bHhxCTArMTYoJXJzaSksJXIxMSwlcjEwCisJYWRveHEJJXIxMSwl
cjkKKwltdWx4cQkwKzI0KCVyc2kpLCVyMTIsJXIxMQorCWFkb3hxCSVyMTIsJXIxMAorCisJbW92
cQkwKzgoJXJkaSksJXJkeAorCW11bHhxCTArMCglcnNpKSwlcjEyLCVyMTMKKwlhZG94cQklcmF4
LCVyMTEKKwl4b3JxCSVyYXgsJXJheAorCW11bHhxCTArOCglcnNpKSwlcjE1LCVyMTQKKwlhZG94
cQklcjgsJXIxMgorCW1vdnEJJXIxMiwwKzgoJXJjeCkKKwlhZGN4cQklcjE1LCVyMTMKKwltdWx4
cQkwKzE2KCVyc2kpLCVyYngsJXIxNQorCWFkY3hxCSVyYngsJXIxNAorCWFkb3hxCSVyOSwlcjEz
CisJbXVseHEJMCsyNCglcnNpKSwlcmJwLCVyYngKKwlhZGN4cQklcmJwLCVyMTUKKwlhZGN4cQkl
cmF4LCVyYngKKwlhZG94cQklcjEwLCVyMTQKKworCW1vdnEJMCsxNiglcmRpKSwlcmR4CisJbXVs
eHEJMCswKCVyc2kpLCVyOCwlcjkKKwlhZG94cQklcjExLCVyMTUKKwlhZG94cQklcmF4LCVyYngK
Kwl4b3JxCSVyYXgsJXJheAorCW11bHhxCTArOCglcnNpKSwlcjExLCVyMTAKKwlhZG94cQklcjEz
LCVyOAorCW1vdnEJJXI4LDArMTYoJXJjeCkKKwlhZGN4cQklcjExLCVyOQorCW11bHhxCTArMTYo
JXJzaSksJXIxMiwlcjExCisJYWRjeHEJJXIxMiwlcjEwCisJYWRveHEJJXIxNCwlcjkKKwltdWx4
cQkwKzI0KCVyc2kpLCVyYnAsJXIxMgorCWFkY3hxCSVyYnAsJXIxMQorCWFkY3hxCSVyYXgsJXIx
MgorCisJYWRveHEJJXIxNSwlcjEwCisJYWRveHEJJXJieCwlcjExCisJYWRveHEJJXJheCwlcjEy
CisKKwltb3ZxCTArMjQoJXJkaSksJXJkeAorCW11bHhxCTArMCglcnNpKSwlcjgsJXIxMworCXhv
cnEJJXJheCwlcmF4CisJbXVseHEJMCs4KCVyc2kpLCVyMTUsJXIxNAorCWFkY3hxCSVyMTUsJXIx
MworCWFkb3hxCSVyOCwlcjkKKwltdWx4cQkwKzE2KCVyc2kpLCVyYngsJXIxNQorCWFkY3hxCSVy
YngsJXIxNAorCWFkb3hxCSVyMTMsJXIxMAorCW11bHhxCTArMjQoJXJzaSksJXJicCwlcmJ4CisJ
YWRjeHEJJXJicCwlcjE1CisJYWRjeHEJJXJheCwlcmJ4CisJYWRveHEJJXIxNCwlcjExCisJYWRv
eHEJJXIxNSwlcjEyCisJYWRveHEJJXJheCwlcmJ4CisJbW92cQklcjksMCsyNCglcmN4KQorCW1v
dnEJJXIxMCwwKzMyKCVyY3gpCisJbW92cQklcjExLDArNDAoJXJjeCkKKwltb3ZxCSVyMTIsMCs0
OCglcmN4KQorCW1vdnEJJXJieCwwKzU2KCVyY3gpCisKKworCisJbW92cQkzMiswKCVyZGkpLCVy
ZHgKKwltdWx4cQkzMiswKCVyc2kpLCVyOSwlcjgKKwltb3ZxCSVyOSw2NCswKCVyY3gpCisJbXVs
eHEJMzIrOCglcnNpKSwlcjEwLCVyOQorCXhvcnEJJXJheCwlcmF4CisJYWRveHEJJXIxMCwlcjgK
KwltdWx4cQkzMisxNiglcnNpKSwlcjExLCVyMTAKKwlhZG94cQklcjExLCVyOQorCisJbW92cQkz
Mis4KCVyZGkpLCVyZHgKKwltdWx4cQkzMiswKCVyc2kpLCVyMTIsJXIxMQorCWFkb3hxCSVyYXgs
JXIxMAorCXhvcnEJJXJheCwlcmF4CisKKwltdWx4cQkzMis4KCVyc2kpLCVyMTQsJXIxMworCWFk
b3hxCSVyOCwlcjEyCisJbW92cQklcjEyLDY0KzgoJXJjeCkKKwlhZGN4cQklcjE0LCVyMTEKKwor
CW11bHhxCTMyKzE2KCVyc2kpLCVyOCwlcjE0CisJYWRveHEJJXI5LCVyMTEKKwlhZGN4cQklcjgs
JXIxMworCWFkY3hxCSVyYXgsJXIxNAorCWFkb3hxCSVyMTAsJXIxMworCisJbW92cQkzMisxNigl
cmRpKSwlcmR4CisJbXVseHEJMzIrMCglcnNpKSwlcjgsJXI5CisJYWRveHEJJXJheCwlcjE0CisJ
eG9ycQklcmF4LCVyYXgKKworCW11bHhxCTMyKzgoJXJzaSksJXIxMCwlcjEyCisJYWRveHEJJXIx
MSwlcjgKKwltb3ZxCSVyOCw2NCsxNiglcmN4KQorCWFkY3hxCSVyMTMsJXI5CisKKwltdWx4cQkz
MisxNiglcnNpKSwlcjExLCVyOAorCWFkY3hxCSVyMTQsJXIxMgorCWFkY3hxCSVyYXgsJXI4CisJ
YWRveHEJJXIxMCwlcjkKKwlhZG94cQklcjEyLCVyMTEKKwlhZG94cQklcmF4LCVyOAorCW1vdnEJ
JXI5LDY0KzI0KCVyY3gpCisJbW92cQklcjExLDY0KzMyKCVyY3gpCisJbW92cQklcjgsNjQrNDAo
JXJjeCkKKworCisKKworCW1vdnEJNjQoJXJzcCksJXI4CisJbW92cQk3MiglcnNwKSwlcjkKKwlt
b3ZxCTgwKCVyc3ApLCVyMTAKKwltb3ZxCTg4KCVyc3ApLCVyMTEKKworCW1vdnEJMzIoJXJzcCks
JXJheAorCWFkZHEJJXJheCwlcjgKKwltb3ZxCTQwKCVyc3ApLCVyYXgKKwlhZGNxCSVyYXgsJXI5
CisJbW92cQk0OCglcnNwKSwlcmF4CisJYWRjcQklcmF4LCVyMTAKKwltb3ZxCTU2KCVyc3ApLCVy
YXgKKwlhZGNxCSVyYXgsJXIxMQorCisKKwltb3ZxCTAoJXJzcCksJXIxMgorCW1vdnEJOCglcnNw
KSwlcjEzCisJbW92cQkxNiglcnNwKSwlcjE0CisJbW92cQkyNCglcnNwKSwlcjE1CisJc3VicQkw
KCVyY3gpLCVyMTIKKwlzYmJxCTgoJXJjeCksJXIxMworCXNiYnEJMTYoJXJjeCksJXIxNAorCXNi
YnEJMjQoJXJjeCksJXIxNQorCXNiYnEJMzIoJXJjeCksJXI4CisJc2JicQk0MCglcmN4KSwlcjkK
KwlzYmJxCTQ4KCVyY3gpLCVyMTAKKwlzYmJxCTU2KCVyY3gpLCVyMTEKKworCisJc3VicQk2NCgl
cmN4KSwlcjEyCisJc2JicQk3MiglcmN4KSwlcjEzCisJc2JicQk4MCglcmN4KSwlcjE0CisJc2Ji
cQk4OCglcmN4KSwlcjE1CisJc2JicQk5NiglcmN4KSwlcjgKKwlzYmJxCTEwNCglcmN4KSwlcjkK
KwlzYmJxCSQweDAsJXIxMAorCXNiYnEJJDB4MCwlcjExCisKKwlhZGRxCTMyKCVyY3gpLCVyMTIK
Kwltb3ZxCSVyMTIsMzIoJXJjeCkKKwlhZGNxCTQwKCVyY3gpLCVyMTMKKwltb3ZxCSVyMTMsNDAo
JXJjeCkKKwlhZGNxCTQ4KCVyY3gpLCVyMTQKKwltb3ZxCSVyMTQsNDgoJXJjeCkKKwlhZGNxCTU2
KCVyY3gpLCVyMTUKKwltb3ZxCSVyMTUsNTYoJXJjeCkKKwlhZGNxCTY0KCVyY3gpLCVyOAorCW1v
dnEJJXI4LDY0KCVyY3gpCisJYWRjcQk3MiglcmN4KSwlcjkKKwltb3ZxCSVyOSw3MiglcmN4KQor
CWFkY3EJODAoJXJjeCksJXIxMAorCW1vdnEJJXIxMCw4MCglcmN4KQorCWFkY3EJODgoJXJjeCks
JXIxMQorCW1vdnEJJXIxMSw4OCglcmN4KQorCW1vdnEJOTYoJXJjeCksJXIxMgorCWFkY3EJJDB4
MCwlcjEyCisJbW92cQklcjEyLDk2KCVyY3gpCisJbW92cQkxMDQoJXJjeCksJXIxMworCWFkY3EJ
JDB4MCwlcjEzCisJbW92cQklcjEzLDEwNCglcmN4KQorCisJYWRkcQkkOTYsJXJzcAorCisJcG9w
cQklcmJwCisKKworCXBvcHEJJXJieAorCisKKworCisJcG9wcQklcjE1CisKKworCXBvcHEJJXIx
NAorCisKKwlwb3BxCSVyMTMKKworCisJcG9wcQklcjEyCisKKworCS5ieXRlCTB4ZjMsMHhjMwor
CisKKy5nbG9ibAlfc2lrZV9tcG11bAorLnByaXZhdGVfZXh0ZXJuIF9zaWtlX21wbXVsCisKK19z
aWtlX21wbXVsOgorCisJcHVzaHEJJXIxMgorCisKKwlwdXNocQklcjEzCisKKworCXB1c2hxCSVy
MTQKKworCisJcHVzaHEJJXIxNQorCisKKworCisKKwlsZWFxCV9PUEVOU1NMX2lhMzJjYXBfUCgl
cmlwKSwlcmN4CisJbW92cQk4KCVyY3gpLCVyY3gKKwlhbmRsCSQweDgwMTAwLCVlY3gKKwljbXBs
CSQweDgwMTAwLCVlY3gKKwlqZQlMJG11bF9iZHcKKworCisKKwltb3ZxCSVyZHgsJXJjeAorCisJ
c3VicQkkMTEyLCVyc3AKKworCisKKwl4b3JxCSVyYXgsJXJheAorCW1vdnEJMzIoJXJkaSksJXI4
CisJbW92cQk0MCglcmRpKSwlcjkKKwltb3ZxCTQ4KCVyZGkpLCVyMTAKKwl4b3JxCSVyMTEsJXIx
MQorCWFkZHEJMCglcmRpKSwlcjgKKwlhZGNxCTgoJXJkaSksJXI5CisJYWRjcQkxNiglcmRpKSwl
cjEwCisJYWRjcQkyNCglcmRpKSwlcjExCisKKwlzYmJxCSQwLCVyYXgKKwltb3ZxCSVyYXgsNjQo
JXJzcCkKKworCW1vdnEJJXI4LDAoJXJjeCkKKwltb3ZxCSVyOSw4KCVyY3gpCisJbW92cQklcjEw
LDE2KCVyY3gpCisJbW92cQklcjExLDI0KCVyY3gpCisKKworCXhvcnEJJXJkeCwlcmR4CisJbW92
cQkzMiglcnNpKSwlcjEyCisJbW92cQk0MCglcnNpKSwlcjEzCisJbW92cQk0OCglcnNpKSwlcjE0
CisJeG9ycQklcjE1LCVyMTUKKwlhZGRxCTAoJXJzaSksJXIxMgorCWFkY3EJOCglcnNpKSwlcjEz
CisJYWRjcQkxNiglcnNpKSwlcjE0CisJYWRjcQkyNCglcnNpKSwlcjE1CisJc2JicQkkMHgwLCVy
ZHgKKworCW1vdnEJJXJkeCw3MiglcnNwKQorCisKKwltb3ZxCSglcmN4KSwlcmF4CisJbXVscQkl
cjEyCisJbW92cQklcmF4LCglcnNwKQorCW1vdnEJJXJkeCwlcjgKKworCXhvcnEJJXI5LCVyOQor
CW1vdnEJKCVyY3gpLCVyYXgKKwltdWxxCSVyMTMKKwlhZGRxCSVyYXgsJXI4CisJYWRjcQklcmR4
LCVyOQorCisJeG9ycQklcjEwLCVyMTAKKwltb3ZxCTgoJXJjeCksJXJheAorCW11bHEJJXIxMgor
CWFkZHEJJXJheCwlcjgKKwltb3ZxCSVyOCw4KCVyc3ApCisJYWRjcQklcmR4LCVyOQorCWFkY3EJ
JDB4MCwlcjEwCisKKwl4b3JxCSVyOCwlcjgKKwltb3ZxCSglcmN4KSwlcmF4CisJbXVscQklcjE0
CisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgwLCVyOAorCisJbW92
cQkxNiglcmN4KSwlcmF4CisJbXVscQklcjEyCisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwl
cjEwCisJYWRjcQkkMHgwLCVyOAorCisJbW92cQk4KCVyY3gpLCVyYXgKKwltdWxxCSVyMTMKKwlh
ZGRxCSVyYXgsJXI5CisJbW92cQklcjksMTYoJXJzcCkKKwlhZGNxCSVyZHgsJXIxMAorCWFkY3EJ
JDB4MCwlcjgKKworCXhvcnEJJXI5LCVyOQorCW1vdnEJKCVyY3gpLCVyYXgKKwltdWxxCSVyMTUK
KwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjgKKwlhZGNxCSQweDAsJXI5CisKKwltb3Zx
CTI0KCVyY3gpLCVyYXgKKwltdWxxCSVyMTIKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwl
cjgKKwlhZGNxCSQweDAsJXI5CisKKwltb3ZxCTgoJXJjeCksJXJheAorCW11bHEJJXIxNAorCWFk
ZHEJJXJheCwlcjEwCisJYWRjcQklcmR4LCVyOAorCWFkY3EJJDB4MCwlcjkKKworCW1vdnEJMTYo
JXJjeCksJXJheAorCW11bHEJJXIxMworCWFkZHEJJXJheCwlcjEwCisJbW92cQklcjEwLDI0KCVy
c3ApCisJYWRjcQklcmR4LCVyOAorCWFkY3EJJDB4MCwlcjkKKworCXhvcnEJJXIxMCwlcjEwCisJ
bW92cQk4KCVyY3gpLCVyYXgKKwltdWxxCSVyMTUKKwlhZGRxCSVyYXgsJXI4CisJYWRjcQklcmR4
LCVyOQorCWFkY3EJJDB4MCwlcjEwCisKKwltb3ZxCTI0KCVyY3gpLCVyYXgKKwltdWxxCSVyMTMK
KwlhZGRxCSVyYXgsJXI4CisJYWRjcQklcmR4LCVyOQorCWFkY3EJJDB4MCwlcjEwCisKKwltb3Zx
CTE2KCVyY3gpLCVyYXgKKwltdWxxCSVyMTQKKwlhZGRxCSVyYXgsJXI4CisJbW92cQklcjgsMzIo
JXJzcCkKKwlhZGNxCSVyZHgsJXI5CisJYWRjcQkkMHgwLCVyMTAKKworCXhvcnEJJXIxMSwlcjEx
CisJbW92cQkxNiglcmN4KSwlcmF4CisJbXVscQklcjE1CisJYWRkcQklcmF4LCVyOQorCWFkY3EJ
JXJkeCwlcjEwCisJYWRjcQkkMHgwLCVyMTEKKworCW1vdnEJMjQoJXJjeCksJXJheAorCW11bHEJ
JXIxNAorCWFkZHEJJXJheCwlcjkKKwltb3ZxCSVyOSw0MCglcnNwKQorCWFkY3EJJXJkeCwlcjEw
CisJYWRjcQkkMHgwLCVyMTEKKworCW1vdnEJMjQoJXJjeCksJXJheAorCW11bHEJJXIxNQorCWFk
ZHEJJXJheCwlcjEwCisJbW92cQklcjEwLDQ4KCVyc3ApCisJYWRjcQklcmR4LCVyMTEKKwltb3Zx
CSVyMTEsNTYoJXJzcCkKKworCisJbW92cQk2NCglcnNwKSwlcmF4CisJYW5kcQklcmF4LCVyMTIK
KwlhbmRxCSVyYXgsJXIxMworCWFuZHEJJXJheCwlcjE0CisJYW5kcQklcmF4LCVyMTUKKworCisJ
bW92cQk3MiglcnNwKSwlcmF4CisJbW92cQkwKCVyY3gpLCVyOAorCWFuZHEJJXJheCwlcjgKKwlt
b3ZxCTgoJXJjeCksJXI5CisJYW5kcQklcmF4LCVyOQorCW1vdnEJMTYoJXJjeCksJXIxMAorCWFu
ZHEJJXJheCwlcjEwCisJbW92cQkyNCglcmN4KSwlcjExCisJYW5kcQklcmF4LCVyMTEKKworCisJ
YWRkcQklcjgsJXIxMgorCWFkY3EJJXI5LCVyMTMKKwlhZGNxCSVyMTAsJXIxNAorCWFkY3EJJXIx
MSwlcjE1CisKKworCW1vdnEJMzIoJXJzcCksJXJheAorCWFkZHEJJXJheCwlcjEyCisJbW92cQk0
MCglcnNwKSwlcmF4CisJYWRjcQklcmF4LCVyMTMKKwltb3ZxCTQ4KCVyc3ApLCVyYXgKKwlhZGNx
CSVyYXgsJXIxNAorCW1vdnEJNTYoJXJzcCksJXJheAorCWFkY3EJJXJheCwlcjE1CisJbW92cQkl
cjEyLDgwKCVyc3ApCisJbW92cQklcjEzLDg4KCVyc3ApCisJbW92cQklcjE0LDk2KCVyc3ApCisJ
bW92cQklcjE1LDEwNCglcnNwKQorCisKKwltb3ZxCSglcmRpKSwlcjExCisJbW92cQkoJXJzaSks
JXJheAorCW11bHEJJXIxMQorCXhvcnEJJXI5LCVyOQorCW1vdnEJJXJheCwoJXJjeCkKKwltb3Zx
CSVyZHgsJXI4CisKKwltb3ZxCTE2KCVyZGkpLCVyMTQKKwltb3ZxCTgoJXJzaSksJXJheAorCW11
bHEJJXIxMQorCXhvcnEJJXIxMCwlcjEwCisJYWRkcQklcmF4LCVyOAorCWFkY3EJJXJkeCwlcjkK
KworCW1vdnEJOCglcmRpKSwlcjEyCisJbW92cQkoJXJzaSksJXJheAorCW11bHEJJXIxMgorCWFk
ZHEJJXJheCwlcjgKKwltb3ZxCSVyOCw4KCVyY3gpCisJYWRjcQklcmR4LCVyOQorCWFkY3EJJDB4
MCwlcjEwCisKKwl4b3JxCSVyOCwlcjgKKwltb3ZxCTE2KCVyc2kpLCVyYXgKKwltdWxxCSVyMTEK
KwlhZGRxCSVyYXgsJXI5CisJYWRjcQklcmR4LCVyMTAKKwlhZGNxCSQweDAsJXI4CisKKwltb3Zx
CSglcnNpKSwlcjEzCisJbW92cQklcjE0LCVyYXgKKwltdWxxCSVyMTMKKwlhZGRxCSVyYXgsJXI5
CisJYWRjcQklcmR4LCVyMTAKKwlhZGNxCSQweDAsJXI4CisKKwltb3ZxCTgoJXJzaSksJXJheAor
CW11bHEJJXIxMgorCWFkZHEJJXJheCwlcjkKKwltb3ZxCSVyOSwxNiglcmN4KQorCWFkY3EJJXJk
eCwlcjEwCisJYWRjcQkkMHgwLCVyOAorCisJeG9ycQklcjksJXI5CisJbW92cQkyNCglcnNpKSwl
cmF4CisJbXVscQklcjExCisJbW92cQkyNCglcmRpKSwlcjE1CisJYWRkcQklcmF4LCVyMTAKKwlh
ZGNxCSVyZHgsJXI4CisJYWRjcQkkMHgwLCVyOQorCisJbW92cQklcjE1LCVyYXgKKwltdWxxCSVy
MTMKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwlcjgKKwlhZGNxCSQweDAsJXI5CisKKwlt
b3ZxCTE2KCVyc2kpLCVyYXgKKwltdWxxCSVyMTIKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJk
eCwlcjgKKwlhZGNxCSQweDAsJXI5CisKKwltb3ZxCTgoJXJzaSksJXJheAorCW11bHEJJXIxNAor
CWFkZHEJJXJheCwlcjEwCisJbW92cQklcjEwLDI0KCVyY3gpCisJYWRjcQklcmR4LCVyOAorCWFk
Y3EJJDB4MCwlcjkKKworCXhvcnEJJXIxMCwlcjEwCisJbW92cQkyNCglcnNpKSwlcmF4CisJbXVs
cQklcjEyCisJYWRkcQklcmF4LCVyOAorCWFkY3EJJXJkeCwlcjkKKwlhZGNxCSQweDAsJXIxMAor
CisJbW92cQk4KCVyc2kpLCVyYXgKKwltdWxxCSVyMTUKKwlhZGRxCSVyYXgsJXI4CisJYWRjcQkl
cmR4LCVyOQorCWFkY3EJJDB4MCwlcjEwCisKKwltb3ZxCTE2KCVyc2kpLCVyYXgKKwltdWxxCSVy
MTQKKwlhZGRxCSVyYXgsJXI4CisJbW92cQklcjgsMzIoJXJjeCkKKwlhZGNxCSVyZHgsJXI5CisJ
YWRjcQkkMHgwLCVyMTAKKworCXhvcnEJJXI4LCVyOAorCW1vdnEJMjQoJXJzaSksJXJheAorCW11
bHEJJXIxNAorCWFkZHEJJXJheCwlcjkKKwlhZGNxCSVyZHgsJXIxMAorCWFkY3EJJDB4MCwlcjgK
KworCW1vdnEJMTYoJXJzaSksJXJheAorCW11bHEJJXIxNQorCWFkZHEJJXJheCwlcjkKKwltb3Zx
CSVyOSw0MCglcmN4KQorCWFkY3EJJXJkeCwlcjEwCisJYWRjcQkkMHgwLCVyOAorCisJbW92cQky
NCglcnNpKSwlcmF4CisJbXVscQklcjE1CisJYWRkcQklcmF4LCVyMTAKKwltb3ZxCSVyMTAsNDgo
JXJjeCkKKwlhZGNxCSVyZHgsJXI4CisJbW92cQklcjgsNTYoJXJjeCkKKworCisKKwltb3ZxCTMy
KCVyZGkpLCVyMTEKKwltb3ZxCTMyKCVyc2kpLCVyYXgKKwltdWxxCSVyMTEKKwl4b3JxCSVyOSwl
cjkKKwltb3ZxCSVyYXgsNjQoJXJjeCkKKwltb3ZxCSVyZHgsJXI4CisKKwltb3ZxCTQ4KCVyZGkp
LCVyMTQKKwltb3ZxCTQwKCVyc2kpLCVyYXgKKwltdWxxCSVyMTEKKwl4b3JxCSVyMTAsJXIxMAor
CWFkZHEJJXJheCwlcjgKKwlhZGNxCSVyZHgsJXI5CisKKwltb3ZxCTQwKCVyZGkpLCVyMTIKKwlt
b3ZxCTMyKCVyc2kpLCVyYXgKKwltdWxxCSVyMTIKKwlhZGRxCSVyYXgsJXI4CisJbW92cQklcjgs
NzIoJXJjeCkKKwlhZGNxCSVyZHgsJXI5CisJYWRjcQkkMHgwLCVyMTAKKworCXhvcnEJJXI4LCVy
OAorCW1vdnEJNDgoJXJzaSksJXJheAorCW11bHEJJXIxMQorCWFkZHEJJXJheCwlcjkKKwlhZGNx
CSVyZHgsJXIxMAorCWFkY3EJJDB4MCwlcjgKKworCW1vdnEJMzIoJXJzaSksJXIxMworCW1vdnEJ
JXIxNCwlcmF4CisJbXVscQklcjEzCisJYWRkcQklcmF4LCVyOQorCWFkY3EJJXJkeCwlcjEwCisJ
YWRjcQkkMHgwLCVyOAorCisJbW92cQk0MCglcnNpKSwlcmF4CisJbXVscQklcjEyCisJYWRkcQkl
cmF4LCVyOQorCW1vdnEJJXI5LDgwKCVyY3gpCisJYWRjcQklcmR4LCVyMTAKKwlhZGNxCSQweDAs
JXI4CisKKwltb3ZxCTQ4KCVyc2kpLCVyYXgKKwltdWxxCSVyMTIKKwl4b3JxCSVyMTIsJXIxMgor
CWFkZHEJJXJheCwlcjEwCisJYWRjcQklcmR4LCVyOAorCWFkY3EJJDB4MCwlcjEyCisKKwltb3Zx
CTQwKCVyc2kpLCVyYXgKKwltdWxxCSVyMTQKKwlhZGRxCSVyYXgsJXIxMAorCWFkY3EJJXJkeCwl
cjgKKwlhZGNxCSQweDAsJXIxMgorCW1vdnEJJXIxMCw4OCglcmN4KQorCisJbW92cQk0OCglcnNp
KSwlcmF4CisJbXVscQklcjE0CisJYWRkcQklcmF4LCVyOAorCWFkY3EJJDB4MCwlcjEyCisJbW92
cQklcjgsOTYoJXJjeCkKKworCWFkZHEJJXIxMiwlcmR4CisKKworCW1vdnEJMCglcnNwKSwlcjgK
KwlzdWJxCTAoJXJjeCksJXI4CisJbW92cQk4KCVyc3ApLCVyOQorCXNiYnEJOCglcmN4KSwlcjkK
Kwltb3ZxCTE2KCVyc3ApLCVyMTAKKwlzYmJxCTE2KCVyY3gpLCVyMTAKKwltb3ZxCTI0KCVyc3Ap
LCVyMTEKKwlzYmJxCTI0KCVyY3gpLCVyMTEKKwltb3ZxCTgwKCVyc3ApLCVyMTIKKwlzYmJxCTMy
KCVyY3gpLCVyMTIKKwltb3ZxCTg4KCVyc3ApLCVyMTMKKwlzYmJxCTQwKCVyY3gpLCVyMTMKKwlt
b3ZxCTk2KCVyc3ApLCVyMTQKKwlzYmJxCTQ4KCVyY3gpLCVyMTQKKwltb3ZxCTEwNCglcnNwKSwl
cjE1CisJc2JicQk1NiglcmN4KSwlcjE1CisKKworCW1vdnEJNjQoJXJjeCksJXJheAorCXN1YnEJ
JXJheCwlcjgKKwltb3ZxCTcyKCVyY3gpLCVyYXgKKwlzYmJxCSVyYXgsJXI5CisJbW92cQk4MCgl
cmN4KSwlcmF4CisJc2JicQklcmF4LCVyMTAKKwltb3ZxCTg4KCVyY3gpLCVyYXgKKwlzYmJxCSVy
YXgsJXIxMQorCW1vdnEJOTYoJXJjeCksJXJheAorCXNiYnEJJXJheCwlcjEyCisJc2JicQklcmR4
LCVyMTMKKwlzYmJxCSQweDAsJXIxNAorCXNiYnEJJDB4MCwlcjE1CisKKworCWFkZHEJMzIoJXJj
eCksJXI4CisJbW92cQklcjgsMzIoJXJjeCkKKwlhZGNxCTQwKCVyY3gpLCVyOQorCW1vdnEJJXI5
LDQwKCVyY3gpCisJYWRjcQk0OCglcmN4KSwlcjEwCisJbW92cQklcjEwLDQ4KCVyY3gpCisJYWRj
cQk1NiglcmN4KSwlcjExCisJbW92cQklcjExLDU2KCVyY3gpCisJYWRjcQk2NCglcmN4KSwlcjEy
CisJbW92cQklcjEyLDY0KCVyY3gpCisJYWRjcQk3MiglcmN4KSwlcjEzCisJbW92cQklcjEzLDcy
KCVyY3gpCisJYWRjcQk4MCglcmN4KSwlcjE0CisJbW92cQklcjE0LDgwKCVyY3gpCisJYWRjcQk4
OCglcmN4KSwlcjE1CisJbW92cQklcjE1LDg4KCVyY3gpCisJbW92cQk5NiglcmN4KSwlcjEyCisJ
YWRjcQkkMHgwLCVyMTIKKwltb3ZxCSVyMTIsOTYoJXJjeCkKKwlhZGNxCSQweDAsJXJkeAorCW1v
dnEJJXJkeCwxMDQoJXJjeCkKKworCWFkZHEJJDExMiwlcnNwCisKKworCisJcG9wcQklcjE1CisK
Kwlwb3BxCSVyMTQKKworCXBvcHEJJXIxMworCisJcG9wcQklcjEyCisKKwkuYnl0ZQkweGYzLDB4
YzMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9yb2xsX2JvcmluZ3NzbC5weSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3JvbGxfYm9yaW5n
c3NsLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMGI3MzE2NDVkYjVl
MDJjMjFhNzI2ZTI4NmFhOTUwYjZlYzE3Mzg4ZS4uYjI2NjBlYWNhNGQ4MmZlMzQwNjhiNTQzMjRm
NDUyZTYyNzI0YWIzMQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9yb2xsX2JvcmluZ3NzbC5weQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9yb2xsX2JvcmluZ3Nz
bC5weQpAQCAtMjgsNyArMjgsNiBAQCBpbXBvcnQgZ2VuZXJhdGVfYnVpbGRfZmlsZXMKIEdFTkVS
QVRFRF9GSUxFUyA9IFsKICAgICAnQlVJTEQuZ2VuZXJhdGVkLmduaScsCiAgICAgJ0JVSUxELmdl
bmVyYXRlZF90ZXN0cy5nbmknLAotICAgICdjcnlwdG9fdGVzdF9kYXRhLmNjJywKICAgICAnZXJy
X2RhdGEuYycsCiBdCiAKQEAgLTE0Nyw2ICsxNDYsNyBAQCBkZWYgbWFpbigpOgogICBzdWJwcm9j
ZXNzLmNoZWNrX2NhbGwoWydweXRob24nLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBh
dGguam9pbihCT1JJTkdTU0xfU1JDX1BBVEgsICd1dGlsJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2dlbmVyYXRlX2J1aWxkX2ZpbGVzLnB5JyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJy0tZW1iZWRfdGVzdF9kYXRhPWZhbHNlJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZ24nXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD1CT1JJTkdTU0xf
UEFUSCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjLy5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjLy5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2YzEwMWVhYmNhOWEzZTg0NjVmZmNkYjBmNjkwZTE0NWU4NjVlNmMzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy8uZ2l0aHViL1BVTExf
UkVRVUVTVF9URU1QTEFURQorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotUGxlYXNlIGRv
IG5vdCBzZW5kIHB1bGwgcmVxdWVzdHMgdG8gdGhlIEJvcmluZ1NTTCByZXBvc2l0b3J5LgotCi1X
ZSBkbywgaG93ZXZlciwgdGFrZSBjb250cmlidXRpb25zIGdsYWRseS4KLQotU2VlIGh0dHBzOi8v
Ym9yaW5nc3NsLmdvb2dsZXNvdXJjZS5jb20vYm9yaW5nc3NsLysvbWFzdGVyL0NPTlRSSUJVVElO
Ry5tZAotCi1UaGFua3MhCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvLmdpdGlnbm9yZSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy8uZ2l0aWdu
b3JlCmluZGV4IDljYjcyNTE4ODZiZTUyMGIyYTNmNTlhYjFlNTkwNzI4NTNmMWYyZDIuLjM2NmZl
YjdmNmY1NmIwYzNkNzk2NGY4YTAyZjk2ZDI3M2QwZjI1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy8uZ2l0
aWdub3JlCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy8uZ2l0aWdub3JlCkBAIC0xLDEyICsxLDEzIEBACiBidWlsZC8KIHNz
bC90ZXN0L3J1bm5lci9ydW5uZXIKKyoucHljCiAqLnN3cAogKi5zd28KIGRvYy8qLmh0bWwKIGRv
Yy9kb2MuY3NzCiAKIHV0aWwvYm90L2FuZHJvaWRfbmRrCi11dGlsL2JvdC9hbmRyb2lkX3Rvb2xz
Cit1dGlsL2JvdC9hbmRyb2lkX3Nkay9wdWJsaWMKIHV0aWwvYm90L2NtYWtlLWxpbnV4NjQKIHV0
aWwvYm90L2NtYWtlLWxpbnV4NjQudGFyLmd6CiB1dGlsL2JvdC9jbWFrZS1tYWMKQEAgLTIzLDUg
KzI0LDcgQEAgdXRpbC9ib3QvcGVybC13aW4zMgogdXRpbC9ib3QvcGVybC13aW4zMi56aXAKIHV0
aWwvYm90L3NkZS1saW51eDY0CiB1dGlsL2JvdC9zZGUtbGludXg2NC50YXIuYnoyCit1dGlsL2Jv
dC9zZGUtd2luMzIKK3V0aWwvYm90L3NkZS13aW4zMi50YXIuYnoyCiB1dGlsL2JvdC93aW5fdG9v
bGNoYWluLmpzb24KIHV0aWwvYm90L3lhc20td2luMzIuZXhlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvQlVJ
TERJTkcubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvQlVJTERJTkcubWQKaW5kZXggOTI0ZjZjOTI0ZWM1Y2VlZmQ1NmI3YWJi
ZDg0NmNjMjY2MzhiOGUzNi4uZTNhMzU3MDc5NzRlN2NmMTU2YWMxY2RiMjgyNjc0YzI5ZmY2OGQ2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL0JVSUxESU5HLm1kCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9CVUlMRElORy5tZApAQCAt
Miw5ICsyLDE3IEBACiAKICMjIEJ1aWxkIFByZXJlcXVpc2l0ZXMKIAotICAqIFtDTWFrZV0oaHR0
cHM6Ly9jbWFrZS5vcmcvZG93bmxvYWQvKSAyLjguMTEgb3IgbGF0ZXIgaXMgcmVxdWlyZWQuCitU
aGUgc3RhbmRhbG9uZSBDTWFrZSBidWlsZCBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIGRldmVs
b3BlcnMuIElmIGVtYmVkZGluZworQm9yaW5nU1NMIGludG8gYW5vdGhlciBwcm9qZWN0IHdpdGgg
YSBwcmUtZXhpc3RpbmcgYnVpbGQgc3lzdGVtLCBzZWUKK1tJTkNPUlBPUkFUSU5HLm1kXSgvSU5D
T1JQT1JBVElORy5tZCkuCiAKLSAgKiBQZXJsIDUuNi4xIG9yIGxhdGVyIGlzIHJlcXVpcmVkLiBP
biBXaW5kb3dzLAorVW5sZXNzIG90aGVyd2lzZSBub3RlZCwgYnVpbGQgdG9vbHMgbXVzdCBhdCBt
b3N0IGZpdmUgeWVhcnMgb2xkLCBtYXRjaGluZworW0Fic2VpbCBndWlkZWxpbmVzXShodHRwczov
L2Fic2VpbC5pby9hYm91dC9jb21wYXRpYmlsaXR5KS4gSWYgaW4gZG91YnQsIHVzZSB0aGUKK21v
c3QgcmVjZW50IHN0YWJsZSB2ZXJzaW9uIG9mIGVhY2ggdG9vbC4KKworICAqIFtDTWFrZV0oaHR0
cHM6Ly9jbWFrZS5vcmcvZG93bmxvYWQvKSAzLjAgb3IgbGF0ZXIgaXMgcmVxdWlyZWQuCisKKyAg
KiBBIHJlY2VudCB2ZXJzaW9uIG9mIFBlcmwgaXMgcmVxdWlyZWQuIE9uIFdpbmRvd3MsCiAgICAg
W0FjdGl2ZSBTdGF0ZSBQZXJsXShodHRwOi8vd3d3LmFjdGl2ZXN0YXRlLmNvbS9hY3RpdmVwZXJs
LykgaGFzIGJlZW4KICAgICByZXBvcnRlZCB0byB3b3JrLCBhcyBoYXMgTVNZUyBQZXJsLgogICAg
IFtTdHJhd2JlcnJ5IFBlcmxdKGh0dHA6Ly9zdHJhd2JlcnJ5cGVybC5jb20vKSBhbHNvIHdvcmtz
IGJ1dCBpdCBhZGRzIEdDQwpAQCAtMTMsMjggKzIxLDI3IEBACiAgICAgSWYgUGVybCBpcyBub3Qg
Zm91bmQgYnkgQ01ha2UsIGl0IG1heSBiZSBjb25maWd1cmVkIGV4cGxpY2l0bHkgYnkgc2V0dGlu
ZwogICAgIGBQRVJMX0VYRUNVVEFCTEVgLgogCi0gICogT24gV2luZG93cyB5b3UgY3VycmVudGx5
IG11c3QgdXNlIFtOaW5qYV0oaHR0cHM6Ly9uaW5qYS1idWlsZC5vcmcvKQotICAgIHRvIGJ1aWxk
OyBvbiBvdGhlciBwbGF0Zm9ybXMsIGl0IGlzIG5vdCByZXF1aXJlZCwgYnV0IHJlY29tbWVuZGVk
LCBiZWNhdXNlCi0gICAgaXQgbWFrZXMgYnVpbGRzIGZhc3Rlci4KLQotICAqIElmIHlvdSBuZWVk
IHRvIGJ1aWxkIE5pbmphIGZyb20gc291cmNlLCB0aGVuIGEgcmVjZW50IHZlcnNpb24gb2YKLSAg
ICBbUHl0aG9uXShodHRwczovL3d3dy5weXRob24ub3JnL2Rvd25sb2Fkcy8pIGlzIHJlcXVpcmVk
IChQeXRob24gMi43LjUgd29ya3MpLgorICAqIEJ1aWxkaW5nIHdpdGggW05pbmphXShodHRwczov
L25pbmphLWJ1aWxkLm9yZy8pIGluc3RlYWQgb2YgTWFrZSBpcworICAgIHJlY29tbWVuZGVkLCBi
ZWNhdXNlIGl0IG1ha2VzIGJ1aWxkcyBmYXN0ZXIuIE9uIFdpbmRvd3MsIENNYWtlJ3MgVmlzdWFs
CisgICAgU3R1ZGlvIGdlbmVyYXRvciBtYXkgYWxzbyB3b3JrLCBidXQgaXQgbm90IHRlc3RlZCBy
ZWd1bGFybHkgYW5kIHJlcXVpcmVzCisgICAgcmVjZW50IHZlcnNpb25zIG9mIENNYWtlIGZvciBh
c3NlbWJseSBzdXBwb3J0LgogCiAgICogT24gV2luZG93cyBvbmx5LCBbTkFTTV0oaHR0cHM6Ly93
d3cubmFzbS51cy8pIGlzIHJlcXVpcmVkLiBJZiBub3QgZm91bmQKICAgICBieSBDTWFrZSwgaXQg
bWF5IGJlIGNvbmZpZ3VyZWQgZXhwbGljaXRseSBieSBzZXR0aW5nCiAgICAgYENNQUtFX0FTTV9O
QVNNX0NPTVBJTEVSYC4KIAotICAqIEEgQyBjb21waWxlciBpcyByZXF1aXJlZC4gT24gV2luZG93
cywgTVNWQyAxNCAoVmlzdWFsIFN0dWRpbyAyMDE1KSBvciBsYXRlcgotICAgIHdpdGggUGxhdGZv
cm0gU0RLIDguMSBvciBsYXRlciBhcmUgc3VwcG9ydGVkLiBSZWNlbnQgdmVyc2lvbnMgb2YgR0ND
ICg0LjgrKQotICAgIGFuZCBDbGFuZyBzaG91bGQgd29yayBvbiBub24tV2luZG93cyBwbGF0Zm9y
bXMsIGFuZCBtYXliZSBvbiBXaW5kb3dzIHRvby4KLSAgICBUbyBidWlsZCB0aGUgdGVzdHMsIHlv
dSBhbHNvIG5lZWQgYSBDKysgY29tcGlsZXIgd2l0aCBDKysxMSBzdXBwb3J0LgorICAqIEMgYW5k
IEMrKyBjb21waWxlcnMgd2l0aCBDKysxMSBzdXBwb3J0IGFyZSByZXF1aXJlZC4gT24gV2luZG93
cywgTVNWQyAxNAorICAgIChWaXN1YWwgU3R1ZGlvIDIwMTUpIG9yIGxhdGVyIHdpdGggUGxhdGZv
cm0gU0RLIDguMSBvciBsYXRlciBhcmUgc3VwcG9ydGVkLgorICAgIFJlY2VudCB2ZXJzaW9ucyBv
ZiBHQ0MgKDQuOCspIGFuZCBDbGFuZyBzaG91bGQgd29yayBvbiBub24tV2luZG93cworICAgIHBs
YXRmb3JtcywgYW5kIG1heWJlIG9uIFdpbmRvd3MgdG9vLgogCiAgICogVGhlIG1vc3QgcmVjZW50
IHN0YWJsZSB2ZXJzaW9uIG9mIFtHb10oaHR0cHM6Ly9nb2xhbmcub3JnL2RsLykgaXMgcmVxdWly
ZWQuCi0gICAgSWYgbm90IGZvdW5kIGJ5IENNYWtlLCB0aGUgZ28gZXhlY3V0YWJsZSBtYXkgYmUg
Y29uZmlndXJlZCBleHBsaWNpdGx5IGJ5Ci0gICAgc2V0dGluZyBgR09fRVhFQ1VUQUJMRWAuCisg
ICAgTm90ZSBHbyBpcyBleGVtcHQgZnJvbSB0aGUgZml2ZSB5ZWFyIHN1cHBvcnQgd2luZG93LiBJ
ZiBub3QgZm91bmQgYnkgQ01ha2UsCisgICAgdGhlIGdvIGV4ZWN1dGFibGUgbWF5IGJlIGNvbmZp
Z3VyZWQgZXhwbGljaXRseSBieSBzZXR0aW5nIGBHT19FWEVDVVRBQkxFYC4KIAotICAqIFRvIGJ1
aWxkIHRoZSB4ODYgYW5kIHg4NlxfNjQgYXNzZW1ibHksIHlvdXIgYXNzZW1ibGVyIG11c3Qgc3Vw
cG9ydCBBVlgyCi0gICAgaW5zdHJ1Y3Rpb25zIGFuZCBNT1ZCRS4gSWYgdXNpbmcgR05VIGJpbnV0
aWxzLCB5b3UgbXVzdCBoYXZlIDIuMjIgb3IgbGF0ZXIKKyAgKiBPbiB4ODZfNjQgTGludXgsIHRo
ZSB0ZXN0cyBoYXZlIGFuIG9wdGlvbmFsCisgICAgW2xpYnVud2luZF0oaHR0cHM6Ly93d3cubm9u
Z251Lm9yZy9saWJ1bndpbmQvKSBkZXBlbmRlbmN5IHRvIHRlc3QgdGhlCisgICAgYXNzZW1ibHkg
bW9yZSB0aG9yb3VnaGx5LgogCiAjIyBCdWlsZGluZwogCkBAIC05NiwxMiArMTAzLDIzIEBAIE9u
Y2UgeW91J3ZlIHJ1biB0aGF0LCBOaW5qYSBzaG91bGQgcHJvZHVjZSBBbmRyb2lkLWNvbXBhdGli
bGUgYmluYXJpZXMuICBZb3UKIGNhbiByZXBsYWNlIGBhcm1lYWJpLXY3YWAgaW4gdGhlIGFib3Zl
IHdpdGggYGFybTY0LXY4YWAgYW5kIHVzZSBBUEkgbGV2ZWwgMjEgb3IKIGhpZ2hlciB0byBidWls
ZCBhYXJjaDY0IGJpbmFyaWVzLgogCi1Gb3Igb2xkZXIgTkRLIHZlcnNpb25zLCBCb3JpbmdTU0wg
c2hpcHMgYSB0aGlyZC1wYXJ0eSBDTWFrZSB0b29sY2hhaW4gZmlsZS4gVXNlCi1gLi4vdGhpcmRf
cGFydHkvYW5kcm9pZC1jbWFrZS9hbmRyb2lkLnRvb2xjaGFpbi5jbWFrZWAgZm9yCi1gQ01BS0Vf
VE9PTENIQUlOX0ZJTEVgIGluc3RlYWQuCi0KIEZvciBvdGhlciBvcHRpb25zLCBzZWUgdGhlIGRv
Y3VtZW50YXRpb24gaW4gdGhlIHRvb2xjaGFpbiBmaWxlLgogCitUbyBkZWJ1ZyB0aGUgcmVzdWx0
aW5nIGJpbmFyaWVzIG9uIGFuIEFuZHJvaWQgZGV2aWNlIHdpdGggYGdkYmAsIHJ1biB0aGUKK2Nv
bW1hbmRzIGJlbG93LiBSZXBsYWNlIGBBUkNIYCB3aXRoIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhl
IHRhcmdldCBkZXZpY2UsIGUuZy4KK2Bhcm1gIG9yIGBhcm02NGAuCisKKyAgICBhZGIgcHVzaCAk
e0FORFJPSURfTkRLfS9wcmVidWlsdC9hbmRyb2lkLUFSQ0gvZ2Ric2VydmVyL2dkYnNlcnZlciBc
CisgICAgICAgIC9kYXRhL2xvY2FsL3RtcAorICAgIGFkYiBmb3J3YXJkIHRjcDo1MDM5IHRjcDo1
MDM5CisgICAgYWRiIHNoZWxsIC9kYXRhL2xvY2FsL3RtcC9nZGJzZXJ2ZXIgOjUwMzkgL3BhdGgv
b24vZGV2aWNlL3RvL2JpbmFyeQorCitUaGVuIHJ1biB0aGUgZm9sbG93aW5nIGluIGEgc2VwYXJh
dGUgc2hlbGwuIFJlcGxhY2UgYEhPU1RgIHdpdGggdGhlIE9TIGFuZAorYXJjaGl0ZWN0dXJlIG9m
IHRoZSBob3N0IG1hY2hpbmUsIGUuZy4gYGxpbnV4LXg4Nl82NGAuCisKKyAgICAke0FORFJPSURf
TkRLfS9wcmVidWlsdC9IT1NUL2Jpbi9nZGIKKyAgICB0YXJnZXQgcmVtb3RlIDo1MDM5ICAjIGlu
IGdkYgorCiAjIyMgQnVpbGRpbmcgZm9yIGlPUwogCiBUbyBidWlsZCBmb3IgaU9TLCBwYXNzIGAt
RENNQUtFX09TWF9TWVNST09UPWlwaG9uZW9zYCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9DTWFrZUxpc3RzLnR4dAppbmRleCBiZmRlNWQ1ODgwOTI0N2Q4OTViNGQ0
OGUwOTZjNTdkNmEwNjE3MGVlLi5jMzk5MmE5M2RiMTY2YTkyZDllMzk0MTZlZWE1ZWJlNDU2MjFi
ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL0NNYWtlTGlzdHMu
dHh0CkBAIC0xLDEwICsxLDQgQEAKLWNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAyLjgu
MTEpCi0KLSMgUmVwb3J0IEFwcGxlQ2xhbmcgc2VwYXJhdGVseSBmcm9tIENsYW5nLiBUaGVpciB2
ZXJzaW9uIG51bWJlcnMgYXJlIGRpZmZlcmVudC4KLSMgaHR0cHM6Ly9jbWFrZS5vcmcvY21ha2Uv
aGVscC92My4wL3BvbGljeS9DTVAwMDI1Lmh0bWwKLWlmKFBPTElDWSBDTVAwMDI1KQotICBjbWFr
ZV9wb2xpY3koU0VUIENNUDAwMjUgTkVXKQotZW5kaWYoKQorY21ha2VfbWluaW11bV9yZXF1aXJl
ZChWRVJTSU9OIDMuMCkKIAogIyBEZWZlciBlbmFibGluZyBDIGFuZCBDWFggbGFuZ3VhZ2VzLgog
cHJvamVjdChCb3JpbmdTU0wgTk9ORSkKQEAgLTM5LDYgKzMzLDIwIEBAIGVsc2UoKQogICBmaW5k
X3Byb2dyYW0oR09fRVhFQ1VUQUJMRSBnbykKIGVuZGlmKCkKIAoraWYoQ01BS0VfU1lTVEVNX05B
TUUgU1RSRVFVQUwgIkxpbnV4IiBBTkQgTk9UIENNQUtFX0NST1NTQ09NUElMSU5HKQorICBmaW5k
X3BhY2thZ2UoUGtnQ29uZmlnIFFVSUVUKQorICBpZiAoUGtnQ29uZmlnX0ZPVU5EKQorICAgIHBr
Z19jaGVja19tb2R1bGVzKExJQlVOV0lORCBsaWJ1bndpbmQtZ2VuZXJpYykKKyAgICBpZihMSUJV
TldJTkRfRk9VTkQpCisgICAgICBhZGRfZGVmaW5pdGlvbnMoLURCT1JJTkdTU0xfSEFWRV9MSUJV
TldJTkQpCisgICAgZWxzZSgpCisgICAgICBtZXNzYWdlKCJsaWJ1bndpbmQgbm90IGZvdW5kLiBE
aXNhYmxpbmcgdW53aW5kIHRlc3RzLiIpCisgICAgZW5kaWYoKQorICBlbHNlKCkKKyAgICBtZXNz
YWdlKCJwa2djb25maWcgbm90IGZvdW5kLiBEaXNhYmxpbmcgdW53aW5kIHRlc3RzLiIpCisgIGVu
ZGlmKCkKK2VuZGlmKCkKKwogaWYoTk9UIEdPX0VYRUNVVEFCTEUpCiAgIG1lc3NhZ2UoRkFUQUxf
RVJST1IgIkNvdWxkIG5vdCBmaW5kIEdvIikKIGVuZGlmKCkKQEAgLTUxLDYgKzU5LDE4IEBAIGlm
KEJPUklOR1NTTF9BTExPV19DWFhfUlVOVElNRSkKICAgYWRkX2RlZmluaXRpb25zKC1EQk9SSU5H
U1NMX0FMTE9XX0NYWF9SVU5USU1FKQogZW5kaWYoKQogCitpZihDTUFLRV9CVUlMRF9UWVBFIFNU
UkVRVUFMICJSZWxlYXNlIikKKyAgIyBXaW5kb3dzIHJlbGVhc2UgYnVpbGRzIGRvbid0IHNldCBO
REVCVUcgaW4gTkFTTSBmbGFncyBhdXRvbWF0aWNhbGx5LgorICBzZXQoQ01BS0VfQVNNX05BU01f
RkxBR1MgIiR7Q01BS0VfQVNNX05BU01fRkxBR1N9IC1ETkRFQlVHIikKK2VuZGlmKCkKKworIyBB
ZGQgYSBSZWxXaXRoQXNzZXJ0cyBidWlsZCBjb25maWd1cmF0aW9uLiBJdCBpcyB0aGUgc2FtZSBh
cyBSZWxlYXNlLCBleGNlcHQgaXQKKyMgZG9lcyBub3QgZGVmaW5lIE5ERUJVRywgc28gYXNzZXJ0
cyBydW4uCitmb3JlYWNoKFZBUiBDTUFLRV9DX0ZMQUdTIENNQUtFX0NYWF9GTEFHUyBDTUFLRV9B
U01fRkxBR1MpCisgIHN0cmluZyhSRUdFWCBSRVBMQUNFICIoXnwgKVsvLV1ETkRFQlVHKCB8JCki
ICIgIiAiJHtWQVJ9X1JFTFdJVEhBU1NFUlRTIgorICAgICAgICAgIiR7JHtWQVJ9X1JFTEVBU0V9
IikKK2VuZGZvcmVhY2goKQorCiBpZihCT1JJTkdTU0xfUFJFRklYIEFORCBCT1JJTkdTU0xfUFJF
RklYX1NZTUJPTFMpCiAgIGFkZF9kZWZpbml0aW9ucygtREJPUklOR1NTTF9QUkVGSVg9JHtCT1JJ
TkdTU0xfUFJFRklYfSkKICAgIyBDTWFrZSBhdXRvbWF0aWNhbGx5IGNvbm5lY3RzIGluY2x1ZGVf
ZGlyZWN0b3JpZXMgdG8gdGhlIE5BU00gY29tbWFuZC1saW5lLApAQCAtMTc4LDYgKzE5OCw3IEBA
IGVsc2VpZihNU1ZDKQogICAgICAgICAgICAgICAjIGNvcHkgY29uc3RydWN0b3IgaXMgaW5hY2Nl
c3NpYmxlIG9yIGRlbGV0ZWQKICAgICAgICJDNDYyNiIgIyBhc3NpZ25tZW50IG9wZXJhdG9yIGNv
dWxkIG5vdCBiZSBnZW5lcmF0ZWQgYmVjYXVzZSBhIGJhc2UgY2xhc3MKICAgICAgICAgICAgICAg
IyBhc3NpZ25tZW50IG9wZXJhdG9yIGlzIGluYWNjZXNzaWJsZSBvciBkZWxldGVkCisgICAgICAi
QzQ2MjgiICMgZGlncmFwaHMgbm90IHN1cHBvcnRlZCB3aXRoIC1aZQogICAgICAgIkM0NjY4IiAj
ICdzeW1ib2wnIGlzIG5vdCBkZWZpbmVkIGFzIGEgcHJlcHJvY2Vzc29yIG1hY3JvLCByZXBsYWNp
bmcgd2l0aAogICAgICAgICAgICAgICAjICcwJyBmb3IgJ2RpcmVjdGl2ZXMnCiAgICAgICAgICAg
ICAgICMgRGlzYWJsZSB0aGlzIGJlY2F1c2UgR1Rlc3QgdXNlcyBpdCBldmVyeXdoZXJlLgpAQCAt
MzE2LDYgKzMzNywyMiBAQCBpZihUU0FOKQogICBzZXQoQ01BS0VfRVhFX0xJTktFUl9GTEFHUyAi
JHtDTUFLRV9FWEVfTElOS0VSX0ZMQUdTfSAtZnNhbml0aXplPXRocmVhZCIpCiBlbmRpZigpCiAK
K2lmKFVCU0FOKQorICBpZihOT1QgQ0xBTkcpCisgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ2Fu
bm90IGVuYWJsZSBVQlNBTiB1bmxlc3MgdXNpbmcgQ2xhbmciKQorICBlbmRpZigpCisKKyAgc2V0
KENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gLWZzYW5pdGl6ZT11bmRlZmluZWQiKQor
ICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLWZzYW5pdGl6ZT11bmRl
ZmluZWQiKQorICBzZXQoQ01BS0VfRVhFX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9FWEVfTElOS0VS
X0ZMQUdTfSAtZnNhbml0aXplPXVuZGVmaW5lZCIpCisKKyAgaWYoTk9UIFVCU0FOX1JFQ09WRVIp
CisgICAgc2V0KENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gLWZuby1zYW5pdGl6ZS1y
ZWNvdmVyPXVuZGVmaW5lZCIpCisgICAgc2V0KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhf
RkxBR1N9IC1mbm8tc2FuaXRpemUtcmVjb3Zlcj11bmRlZmluZWQiKQorICAgIHNldChDTUFLRV9F
WEVfTElOS0VSX0ZMQUdTICIke0NNQUtFX0VYRV9MSU5LRVJfRkxBR1N9IC1mbm8tc2FuaXRpemUt
cmVjb3Zlcj11bmRlZmluZWQiKQorICBlbmRpZigpCitlbmRpZigpCisKIGlmKEdDT1YpCiAgIHNl
dChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9IC1mcHJvZmlsZS1hcmNzIC1mdGVzdC1j
b3ZlcmFnZSIpCiAgIHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtZnBy
b2ZpbGUtYXJjcyAtZnRlc3QtY292ZXJhZ2UiKQpAQCAtMzI2LDkgKzM2MywxMyBAQCBpZihGSVBT
KQogICBpZihGSVBTX0JSRUFLX1RFU1QpCiAgICAgYWRkX2RlZmluaXRpb25zKCItREJPUklOR1NT
TF9GSVBTX0JSRUFLXyR7RklQU19CUkVBS19URVNUfT0xIikKICAgZW5kaWYoKQotICAjIERlbG9j
YXRlIGRvZXMgbm90IHdvcmsgZm9yIEFTYW4gYW5kIE1TYW4gYnVpbGRzLgorICAjIFRoZSBGSVBT
IGludGVncml0eSBjaGVjayBkb2VzIG5vdCB3b3JrIGZvciBBU2FuIGFuZCBNU2FuIGJ1aWxkcy4K
ICAgaWYoTk9UIEFTQU4gQU5EIE5PVCBNU0FOKQotICAgIHNldChGSVBTX0RFTE9DQVRFICIxIikK
KyAgICBpZihCVUlMRF9TSEFSRURfTElCUykKKyAgICAgIHNldChGSVBTX1NIQVJFRCAiMSIpCisg
ICAgZWxzZSgpCisgICAgICBzZXQoRklQU19ERUxPQ0FURSAiMSIpCisgICAgZW5kaWYoKQogICBl
bmRpZigpCiBlbmRpZigpCiAKQEAgLTMzNiw2ICszNzcsMTIgQEAgaWYoT1BFTlNTTF9TTUFMTCkK
ICAgYWRkX2RlZmluaXRpb25zKC1ET1BFTlNTTF9TTUFMTCkKIGVuZGlmKCkKIAoraWYoQ09OU1RB
TlRfVElNRV9WQUxJREFUSU9OKQorICBhZGRfZGVmaW5pdGlvbnMoLURCT1JJTkdTU0xfQ09OU1RB
TlRfVElNRV9WQUxJREFUSU9OKQorICAjIEFzc2VydHMgd2lsbCBvZnRlbiB0ZXN0IHNlY3JldCBk
YXRhLgorICBhZGRfZGVmaW5pdGlvbnMoLUROREVCVUcpCitlbmRpZigpCisKIGZ1bmN0aW9uKGdv
X2V4ZWN1dGFibGUgZGVzdCBwYWNrYWdlKQogICBzZXQoZ29kZXBzICIke0NNQUtFX1NPVVJDRV9E
SVJ9L3V0aWwvZ29kZXBzLmdvIikKICAgaWYoJHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xFU1Mg
IjMuNyIgT1IKQEAgLTQzMiwxMyArNDc5LDYgQEAgaWYoQU5EUk9JRCBBTkQgTk9UIEFORFJPSURf
TkRLX1JFVklTSU9OIEFORCAke0FSQ0h9IFNUUkVRVUFMICJhcm0iKQogICBzZXQoQ01BS0VfQVNN
X0ZMQUdTICItbWFyY2g9JHtDTUFLRV9TWVNURU1fUFJPQ0VTU09SfSAke0NNQUtFX0FTTV9GTEFH
U30iKQogZW5kaWYoKQogCi1pZigke0FSQ0h9IFNUUkVRVUFMICJ4ODYiIEFORCBBUFBMRSBBTkQg
JHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xFU1MgIjMuMCIpCi0gICMgV2l0aCBDTWFrZSAyLjgu
eCwgJHtDTUFLRV9TWVNURU1fUFJPQ0VTU09SfSBldmFsdXRlcyB0byBpMzg2IG9uIE9TIFgsCi0g
ICMgYnV0IGNsYW5nIGRlZmF1bHRzIHRvIDY0LWJpdCBidWlsZHMgb24gT1MgWCB1bmxlc3Mgb3Ro
ZXJ3aXNlIHRvbGQuCi0gICMgU2V0IEFSQ0ggdG8geDg2XzY0IHNvIGNsYW5nIGFuZCBDTWFrZSBh
Z3JlZS4gVGhpcyBpcyBmaXhlZCBpbiBDTWFrZSAzLgotICBzZXQoQVJDSCAieDg2XzY0IikKLWVu
ZGlmKCkKLQogaWYoVVNFX0NVU1RPTV9MSUJDWFgpCiAgIGlmKE5PVCBDTEFORykKICAgICBtZXNz
YWdlKEZBVEFMX0VSUk9SICJVU0VfQ1VTVE9NX0xJQkNYWCBvbmx5IHN1cHBvcnRlZCB3aXRoIENs
YW5nIikKQEAgLTUxNywxMSArNTU3LDIwIEBAIGFkZF9saWJyYXJ5KGNyeXB0b190ZXN0X2RhdGEg
T0JKRUNUIGNyeXB0b190ZXN0X2RhdGEuY2MpCiBhZGRfc3ViZGlyZWN0b3J5KGNyeXB0bykKIGFk
ZF9zdWJkaXJlY3Rvcnkoc3NsKQogYWRkX3N1YmRpcmVjdG9yeShzc2wvdGVzdCkKLWFkZF9zdWJk
aXJlY3RvcnkoZmlwc3Rvb2xzKQogYWRkX3N1YmRpcmVjdG9yeSh0b29sKQorYWRkX3N1YmRpcmVj
dG9yeSh1dGlsL2ZpcHN0b29scy9jYXZwKQorYWRkX3N1YmRpcmVjdG9yeSh1dGlsL2ZpcHN0b29s
cy9hY3ZwL21vZHVsZXdyYXBwZXIpCiBhZGRfc3ViZGlyZWN0b3J5KGRlY3JlcGl0KQogCiBpZihG
VVpaKQorICBpZihMSUJGVVpaRVJfRlJPTV9ERVBTKQorICAgIGZpbGUoR0xPQiBMSUJGVVpaRVJf
U09VUkNFUyAidXRpbC9ib3QvbGliRnV6emVyLyouY3BwIikKKyAgICBhZGRfbGlicmFyeShGdXp6
ZXIgU1RBVElDICR7TElCRlVaWkVSX1NPVVJDRVN9KQorICAgICMgbGliRnV6emVyIGRvZXMgbm90
IHBhc3Mgb3VyIGFnZ3Jlc3NpdmUgd2FybmluZ3MuIEl0IGFsc28gbXVzdCBiZSBidWlsdAorICAg
ICMgd2l0aG91dCAtZnNhbml0aXplLWNvdmVyYWdlIG9wdGlvbnMgb3IgY2xhbmcgY3Jhc2hlcy4K
KyAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoRnV6emVyIFBST1BFUlRJRVMgQ09NUElMRV9GTEFH
UyAiLVduby1zaGFkb3cgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV25vLW1pc3NpbmctcHJvdG90
eXBlcyAtZnNhbml0aXplLWNvdmVyYWdlPTAiKQorICBlbmRpZigpCisKICAgYWRkX3N1YmRpcmVj
dG9yeShmdXp6KQogZW5kaWYoKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvTElDRU5TRSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9MSUNF
TlNFCmluZGV4IDQ5YzQxZmE3YWZjMjUyMDgzNDZlZmUxZGQxZGI3ZTc0MzE0Nzg5NjUuLjJmNGRm
Y2RiMDRjODMwNThiYWFlZDEwMzE2OTliZWY5NTAzN2U0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9MSUNF
TlNFCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9MSUNFTlNFCkBAIC0xODEsNiArMTgxLDI5IEBAIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFCiBTT0ZUV0FSRS4KIAogCitUaGUgY29kZSBpbiB0aGlyZF9wYXJ0eS9zaWtlIGFsc28g
Y2FycmllcyB0aGUgTUlUIGxpY2Vuc2U6CisKK0NvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBv
cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0
aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m
dHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAor
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKK2NvcGllcyBvciBzdWJzdGFu
dGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRQorCisKIExpY2Vuc2Vz
IGZvciBzdXBwb3J0IGNvZGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL1JFQURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9SRUFETUUubWQKaW5kZXggNDU5NWU4ZTg1MWFiNDg1ODVk
NmU1NGZhZTdkMzM4NzU5MTllMzhhMi4uNWQxMTZjMDBmMzBiOWFhYjYzNTAxZjUxZGFhZDliNDE3
MDgwMzUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL1JFQURNRS5tZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvUkVBRE1FLm1kCkBA
IC0yMSw2ICsyMSwxMyBAQCB0aGVzZSBwYXRjaGVzIGluIG11bHRpcGxlIHBsYWNlcyB3YXMgZ3Jv
d2luZyBzdGVhZGlseS4KIEN1cnJlbnRseSBCb3JpbmdTU0wgaXMgdGhlIFNTTCBsaWJyYXJ5IGlu
IENocm9tZS9DaHJvbWl1bSwgQW5kcm9pZCAoYnV0IGl0J3MKIG5vdCBwYXJ0IG9mIHRoZSBOREsp
IGFuZCBhIG51bWJlciBvZiBvdGhlciBhcHBzL3Byb2dyYW1zLgogCitQcm9qZWN0IGxpbmtzOgor
CisgICogW0FQSSBkb2N1bWVudGF0aW9uXShodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2ds
ZWFwaXMuY29tL2Nocm9taXVtLWJvcmluZ3NzbC1kb2NzL2hlYWRlcnMuaHRtbCkKKyAgKiBbQnVn
IHRyYWNrZXJdKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9ib3Jpbmdzc2wvaXNzdWVzL2xp
c3QpCisgICogW0NJXShodHRwczovL2NpLmNocm9taXVtLm9yZy9wL2JvcmluZ3NzbC9nL21haW4v
Y29uc29sZSkKKyAgKiBbQ29kZSByZXZpZXddKGh0dHBzOi8vYm9yaW5nc3NsLXJldmlldy5nb29n
bGVzb3VyY2UuY29tKQorCiBUaGVyZSBhcmUgb3RoZXIgZmlsZXMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2hpY2ggbWlnaHQgYmUgaGVscGZ1bDoKIAogICAqIFtQT1JUSU5HLm1kXSgvUE9SVElORy5tZCk6
IGhvdyB0byBwb3J0IE9wZW5TU0wtdXNpbmcgY29kZSB0byBCb3JpbmdTU0wuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9DTWFrZUxpc3RzLnR4dApp
bmRleCBiMWNhNzBlMTU5NzA4OTFiNzA0YTQzZjE0ZDVmZTg4NTJiYzkyY2YwLi40NzdmYWFlYjFj
ZjJlMTdhNWU3ZTE2NWQ0ZTFiZjYyODhiOGQ0N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vQ01ha2VMaXN0cy50eHQKQEAgLTg3LDcgKzg3
LDcgQEAgZW5kZnVuY3Rpb24oKQogYWRkX3N1YmRpcmVjdG9yeShmaXBzbW9kdWxlKQogYWRkX3N1
YmRpcmVjdG9yeSh0ZXN0KQogCi1pZihGSVBTX0RFTE9DQVRFKQoraWYoRklQU19ERUxPQ0FURSBP
UiBGSVBTX1NIQVJFRCkKICAgU0VUX1NPVVJDRV9GSUxFU19QUk9QRVJUSUVTKGZpcHNtb2R1bGUv
YmNtLm8gUFJPUEVSVElFUyBFWFRFUk5BTF9PQkpFQ1QgdHJ1ZSkKICAgU0VUX1NPVVJDRV9GSUxF
U19QUk9QRVJUSUVTKGZpcHNtb2R1bGUvYmNtLm8gUFJPUEVSVElFUyBHRU5FUkFURUQgdHJ1ZSkK
IApAQCAtMTA1LDYgKzEwNSw3IEBAIGlmKCR7QVJDSH0gU1RSRVFVQUwgImFybSIpCiAgICAgY2hh
Y2hhL2NoYWNoYS1hcm12NC4ke0FTTV9FWFR9CiAgICAgY3VydmUyNTUxOS9hc20veDI1NTE5LWFz
bS1hcm0uUwogICAgIHBvbHkxMzA1L3BvbHkxMzA1X2FybV9hc20uUworICAgIHRlc3QvdHJhbXBv
bGluZS1hcm12NC4ke0FTTV9FWFR9CiAgICkKIGVuZGlmKCkKIApAQCAtMTEzLDYgKzExNCw4IEBA
IGlmKCR7QVJDSH0gU1RSRVFVQUwgImFhcmNoNjQiKQogICAgIENSWVBUT19BUkNIX1NPVVJDRVMK
IAogICAgIGNoYWNoYS9jaGFjaGEtYXJtdjguJHtBU01fRVhUfQorICAgIHRlc3QvdHJhbXBvbGlu
ZS1hcm12OC4ke0FTTV9FWFR9CisgICAgdGhpcmRfcGFydHkvc2lrZS9hc20vZnAtYXJtdjguJHtB
U01fRVhUfQogICApCiBlbmRpZigpCiAKQEAgLTEyMSw2ICsxMjQsNyBAQCBpZigke0FSQ0h9IFNU
UkVRVUFMICJ4ODYiKQogICAgIENSWVBUT19BUkNIX1NPVVJDRVMKIAogICAgIGNoYWNoYS9jaGFj
aGEteDg2LiR7QVNNX0VYVH0KKyAgICB0ZXN0L3RyYW1wb2xpbmUteDg2LiR7QVNNX0VYVH0KICAg
KQogZW5kaWYoKQogCkBAIC0xMzEsNiArMTM1LDkgQEAgaWYoJHtBUkNIfSBTVFJFUVVBTCAieDg2
XzY0IikKICAgICBjaGFjaGEvY2hhY2hhLXg4Nl82NC4ke0FTTV9FWFR9CiAgICAgY2lwaGVyX2V4
dHJhL2FlczEyOGdjbXNpdi14ODZfNjQuJHtBU01fRVhUfQogICAgIGNpcGhlcl9leHRyYS9jaGFj
aGEyMF9wb2x5MTMwNV94ODZfNjQuJHtBU01fRVhUfQorICAgIGhyc3MvYXNtL3BvbHlfcnFfbXVs
LlMKKyAgICB0ZXN0L3RyYW1wb2xpbmUteDg2XzY0LiR7QVNNX0VYVH0KKyAgICB0aGlyZF9wYXJ0
eS9zaWtlL2FzbS9mcC14ODZfNjQuJHtBU01fRVhUfQogICApCiBlbmRpZigpCiAKQEAgLTE0MCw2
ICsxNDcsMTIgQEAgcGVybGFzbShjaGFjaGEvY2hhY2hhLXg4Ni4ke0FTTV9FWFR9IGNoYWNoYS9h
c20vY2hhY2hhLXg4Ni5wbCkKIHBlcmxhc20oY2hhY2hhL2NoYWNoYS14ODZfNjQuJHtBU01fRVhU
fSBjaGFjaGEvYXNtL2NoYWNoYS14ODZfNjQucGwpCiBwZXJsYXNtKGNpcGhlcl9leHRyYS9hZXMx
MjhnY21zaXYteDg2XzY0LiR7QVNNX0VYVH0gY2lwaGVyX2V4dHJhL2FzbS9hZXMxMjhnY21zaXYt
eDg2XzY0LnBsKQogcGVybGFzbShjaXBoZXJfZXh0cmEvY2hhY2hhMjBfcG9seTEzMDVfeDg2XzY0
LiR7QVNNX0VYVH0gY2lwaGVyX2V4dHJhL2FzbS9jaGFjaGEyMF9wb2x5MTMwNV94ODZfNjQucGwp
CitwZXJsYXNtKHRoaXJkX3BhcnR5L3Npa2UvYXNtL2ZwLXg4Nl82NC4ke0FTTV9FWFR9IC4uL3Ro
aXJkX3BhcnR5L3Npa2UvYXNtL2ZwLXg4Nl82NC5wbCkKK3Blcmxhc20odGhpcmRfcGFydHkvc2lr
ZS9hc20vZnAtYXJtdjguJHtBU01fRVhUfSAuLi90aGlyZF9wYXJ0eS9zaWtlL2FzbS9mcC1hcm12
OC5wbCkKK3Blcmxhc20odGVzdC90cmFtcG9saW5lLWFybXY0LiR7QVNNX0VYVH0gdGVzdC9hc20v
dHJhbXBvbGluZS1hcm12NC5wbCkKK3Blcmxhc20odGVzdC90cmFtcG9saW5lLWFybXY4LiR7QVNN
X0VYVH0gdGVzdC9hc20vdHJhbXBvbGluZS1hcm12OC5wbCkKK3Blcmxhc20odGVzdC90cmFtcG9s
aW5lLXg4Ni4ke0FTTV9FWFR9IHRlc3QvYXNtL3RyYW1wb2xpbmUteDg2LnBsKQorcGVybGFzbSh0
ZXN0L3RyYW1wb2xpbmUteDg2XzY0LiR7QVNNX0VYVH0gdGVzdC9hc20vdHJhbXBvbGluZS14ODZf
NjQucGwpCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgT1VUUFVUIGVycl9kYXRhLmMKQEAgLTI2
OSwxMiArMjgyLDE1IEBAIGFkZF9saWJyYXJ5KAogICBldnAvcF9lZDI1NTE5X2FzbjEuYwogICBl
dnAvcF9yc2EuYwogICBldnAvcF9yc2FfYXNuMS5jCisgIGV2cC9wX3gyNTUxOS5jCisgIGV2cC9w
X3gyNTUxOV9hc24xLmMKICAgZXZwL3Bia2RmLmMKICAgZXZwL3ByaW50LmMKICAgZXZwL3Njcnlw
dC5jCiAgIGV2cC9zaWduLmMKICAgZXhfZGF0YS5jCiAgIGhrZGYvaGtkZi5jCisgIGhyc3MvaHJz
cy5jCiAgIGxoYXNoL2xoYXNoLmMKICAgbWVtLmMKICAgb2JqL29iai5jCkBAIC0zMDcsNiArMzIz
LDcgQEAgYWRkX2xpYnJhcnkoCiAgIHJzYV9leHRyYS9yc2FfYXNuMS5jCiAgIHJzYV9leHRyYS9y
c2FfcHJpbnQuYwogICBzdGFjay9zdGFjay5jCisgIHNpcGhhc2gvc2lwaGFzaC5jCiAgIHRocmVh
ZC5jCiAgIHRocmVhZF9ub25lLmMKICAgdGhyZWFkX3B0aHJlYWQuYwpAQCAtMzk0LDYgKzQxMSwx
MSBAQCBhZGRfbGlicmFyeSgKICAgeDUwOXYzL3YzX3N4bmV0LmMKICAgeDUwOXYzL3YzX3V0bC5j
CiAgIC4uL3RoaXJkX3BhcnR5L2ZpYXQvY3VydmUyNTUxOS5jCisgIC4uL3RoaXJkX3BhcnR5L3Np
a2UvZnB4LmMKKyAgLi4vdGhpcmRfcGFydHkvc2lrZS9pc29nZW55LmMKKyAgLi4vdGhpcmRfcGFy
dHkvc2lrZS9jdXJ2ZV9wYXJhbXMuYworICAuLi90aGlyZF9wYXJ0eS9zaWtlL3Npa2UuYworICAu
Li90aGlyZF9wYXJ0eS9zaWtlL2FzbS9mcF9nZW5lcmljLmMKIAogICAkPFRBUkdFVF9PQkpFQ1RT
OmZpcHNtb2R1bGU+CiAKQEAgLTQwMSw5ICs0MjMsMjUgQEAgYWRkX2xpYnJhcnkoCiAgICR7Q1JZ
UFRPX0ZJUFNfT0JKRUNUU30KICkKIAoraWYoRklQU19TSEFSRUQpCisgICMgUmV3cml0ZSBsaWJj
cnlwdG8uc28gdG8gaW5qZWN0IHRoZSBjb3JyZWN0IG1vZHVsZSBoYXNoIHZhbHVlLiBUaGlzIGFz
c3VtZXMKKyAgIyBVTklYLXN0eWxlIGxpYnJhcnkgbmFtaW5nLCBidXQgd2Ugb25seSBzdXBwb3J0
IEZJUFMgbW9kZSBvbiBMaW51eCBhbnl3YXkuCisgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICBU
QVJHRVQgY3J5cHRvIFBPU1RfQlVJTEQKKyAgICBDT01NQU5EICR7R09fRVhFQ1VUQUJMRX0gcnVu
CisgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL3V0aWwvZmlwc3Rvb2xzL2luamVj
dF9oYXNoL2luamVjdF9oYXNoLmdvCisgICAgLW8gbGliY3J5cHRvLnNvIC1pbi1vYmplY3QgbGli
Y3J5cHRvLnNvCisgICAgIyBUaGUgREVQRU5EUyBhcmd1bWVudCB0byBhIFBPU1RfQlVJTEQgcnVs
ZSBhcHBlYXJzIHRvIGJlIGlnbm9yZWQuIFRodXMKKyAgICAjIGdvX2V4ZWN1dGFibGUgaXNuJ3Qg
dXNlZCAoYXMgaXQgZG9lc24ndCBnZXQgYnVpbHQpLCBidXQgd2UgbGlzdCB0aGlzCisgICAgIyBk
ZXBlbmRlbmN5IGFueXdheSBpbiBjYXNlIGl0IHN0YXJ0cyB3b3JraW5nIGluIHNvbWUgQ01ha2Ug
dmVyc2lvbi4KKyAgICBERVBFTkRTIC4uL3V0aWwvZmlwc3Rvb2xzL2luamVjdF9oYXNoL2luamVj
dF9oYXNoLmdvCisgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9E
SVJ9CisgICkKK2VuZGlmKCkKKwogYWRkX2RlcGVuZGVuY2llcyhjcnlwdG8gZ2xvYmFsX3Rhcmdl
dCkKIAotaWYoRklQU19ERUxPQ0FURSkKK2lmKEZJUFNfREVMT0NBVEUgT1IgRklQU19TSEFSRUQp
CiAgIGFkZF9kZXBlbmRlbmNpZXMoY3J5cHRvIGJjbV9vX3RhcmdldCkKIGVuZGlmKCkKIApAQCAt
NDIyLDYgKzQ2MCw3IEBAIGVuZGlmKCkKIGFkZF9leGVjdXRhYmxlKAogICBjcnlwdG9fdGVzdAog
CisgIGFiaV9zZWxmX3Rlc3QuY2MKICAgYXNuMS9hc24xX3Rlc3QuY2MKICAgYmFzZTY0L2Jhc2U2
NF90ZXN0LmNjCiAgIGJ1Zi9idWZfdGVzdC5jYwpAQCAtNDUxLDEwICs0OTAsMTQgQEAgYWRkX2V4
ZWN1dGFibGUoCiAgIGZpcHNtb2R1bGUvZWMvZWNfdGVzdC5jYwogICBmaXBzbW9kdWxlL2VjL3Ay
NTYteDg2XzY0X3Rlc3QuY2MKICAgZmlwc21vZHVsZS9lY2RzYS9lY2RzYV90ZXN0LmNjCisgIGZp
cHNtb2R1bGUvbWQ1L21kNV90ZXN0LmNjCiAgIGZpcHNtb2R1bGUvbW9kZXMvZ2NtX3Rlc3QuY2MK
ICAgZmlwc21vZHVsZS9yYW5kL2N0cmRyYmdfdGVzdC5jYworICBmaXBzbW9kdWxlL3NoYS9zaGFf
dGVzdC5jYwogICBoa2RmL2hrZGZfdGVzdC5jYwogICBobWFjX2V4dHJhL2htYWNfdGVzdC5jYwor
ICBocnNzL2hyc3NfdGVzdC5jYworICBpbXBsX2Rpc3BhdGNoX3Rlc3QuY2MKICAgbGhhc2gvbGhh
c2hfdGVzdC5jYwogICBvYmovb2JqX3Rlc3QuY2MKICAgcGVtL3BlbV90ZXN0LmNjCkBAIC00Njgs
MjEgKzUxMSwyMiBAQCBhZGRfZXhlY3V0YWJsZSgKICAgcnNhX2V4dHJhL3JzYV90ZXN0LmNjCiAg
IHNlbGZfdGVzdC5jYwogICBzdGFjay9zdGFja190ZXN0LmNjCisgIHNpcGhhc2gvc2lwaGFzaF90
ZXN0LmNjCiAgIHRlc3QvZmlsZV90ZXN0X2d0ZXN0LmNjCiAgIHRocmVhZF90ZXN0LmNjCiAgIHg1
MDkveDUwOV90ZXN0LmNjCiAgIHg1MDkveDUwOV90aW1lX3Rlc3QuY2MKICAgeDUwOXYzL3RhYl90
ZXN0LmNjCiAgIHg1MDl2My92M25hbWVfdGVzdC5jYworICAuLi90aGlyZF9wYXJ0eS9zaWtlL3Np
a2VfdGVzdC5jYwogCiAgICQ8VEFSR0VUX09CSkVDVFM6Y3J5cHRvX3Rlc3RfZGF0YT4KICAgJDxU
QVJHRVRfT0JKRUNUUzpib3Jpbmdzc2xfZ3Rlc3RfbWFpbj4KLSAgJDxUQVJHRVRfT0JKRUNUUzp0
ZXN0X3N1cHBvcnQ+CiApCiAKIGFkZF9kZXBlbmRlbmNpZXMoY3J5cHRvX3Rlc3QgZ2xvYmFsX3Rh
cmdldCkKIAotdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGNyeXB0b190ZXN0IGNyeXB0byBib3Jpbmdz
c2xfZ3Rlc3QpCit0YXJnZXRfbGlua19saWJyYXJpZXMoY3J5cHRvX3Rlc3QgdGVzdF9zdXBwb3J0
X2xpYiBib3Jpbmdzc2xfZ3Rlc3QgY3J5cHRvKQogaWYoV0lOMzIpCiAgIHRhcmdldF9saW5rX2xp
YnJhcmllcyhjcnlwdG9fdGVzdCB3czJfMzIpCiBlbmRpZigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2FiaV9zZWxmX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2FiaV9zZWxmX3Rlc3QuY2MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWZjZjZiYzJlYmM1NTExODlkYjY3ZjU2Yzc4OTM2MWZjNTc1MzdmNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vYWJpX3NlbGZfdGVzdC5jYwpAQCAtMCwwICsxLDUyMyBAQAor
LyogQ29weXJpZ2h0IChjKSAyMDE4LCBHb29nbGUgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gdG8g
dXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFu
eQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92
aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg
UFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMK
KyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorICogU1BFQ0lBTCwgRElSRUNULCBJ
TkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFU
U09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRI
RVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JU
SU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhF
IFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLworCisjaW5jbHVkZSA8Z3Rl
c3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxndGVzdC9ndGVzdC1zcGkuaD4KKworI2luY2x1ZGUgPG9w
ZW5zc2wvcmFuZC5oPgorCisjaW5jbHVkZSAidGVzdC9hYmlfdGVzdC5oIgorCisKK3N0YXRpYyBi
b29sIHRlc3RfZnVuY3Rpb25fb2s7CitzdGF0aWMgaW50IFRlc3RGdW5jdGlvbihpbnQgYTEsIGlu
dCBhMiwgaW50IGEzLCBpbnQgYTQsIGludCBhNSwgaW50IGE2LCBpbnQgYTcsCisgICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgYTgpIHsKKyAgdGVzdF9mdW5jdGlvbl9vayA9IGExID09IDEgfHwg
YTIgPT0gMiB8fCBhMyA9PSAzIHx8IGE0ID09IDQgfHwgYTUgPT0gNSB8fAorICAgICAgICAgICAg
ICAgICAgICAgYTYgPT0gNiB8fCBhNyA9PSA3IHx8IGE4ID09IDg7CisgIHJldHVybiA0MjsKK30K
KworVEVTVChBQklUZXN0LCBTYW5pdHlDaGVjaykgeworICBFWFBFQ1RfTkUoMCwgQ0hFQ0tfQUJJ
X05PX1VOV0lORChzdHJjbXAsICJoZWxsbyIsICJ3b3JsZCIpKTsKKworICB0ZXN0X2Z1bmN0aW9u
X29rID0gZmFsc2U7CisgIEVYUEVDVF9FUSg0MiwgQ0hFQ0tfQUJJX1NFSChUZXN0RnVuY3Rpb24s
IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgpKTsKKyAgRVhQRUNUX1RSVUUodGVzdF9mdW5jdGlvbl9v
ayk7CisKKyNpZiBkZWZpbmVkKFNVUFBPUlRTX0FCSV9URVNUKQorICBhYmlfdGVzdDo6aW50ZXJu
YWw6OkNhbGxlclN0YXRlIHN0YXRlOworICBSQU5EX2J5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCAqPigmc3RhdGUpLCBzaXplb2Yoc3RhdGUpKTsKKyAgY3J5cHRvX3dvcmRfdCBhcmd2W10g
PSB7CisgICAgICAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LAorICB9OworICBDSEVDS19BQklfU0VI
KGFiaV90ZXN0X3RyYW1wb2xpbmUsCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxj
cnlwdG9fd29yZF90PihUZXN0RnVuY3Rpb24pLCAmc3RhdGUsIGFyZ3YsIDgsCisgICAgICAgICAg
ICAgICAgMCAvKiBubyBicmVha3BvaW50ICovKTsKKworI2lmIGRlZmluZWQoT1BFTlNTTF9YODZf
NjQpCisgIGlmIChhYmlfdGVzdDo6VW53aW5kVGVzdHNFbmFibGVkKCkpIHsKKyAgICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfU0VIKGFiaV90ZXN0X2JhZF91bndpbmRfd3Jvbmdf
cmVnaXN0ZXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YXMgbm90IHJlY292ZXJl
ZCIpOworICAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9TRUgoYWJpX3Rlc3Rf
YmFkX3Vud2luZF90ZW1wb3JhcnkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YXMg
bm90IHJlY292ZXJlZCIpOworCisgICAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9iYWRf
dW53aW5kX3dyb25nX3JlZ2lzdGVyKTsKKyAgICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0
X2JhZF91bndpbmRfdGVtcG9yYXJ5KTsKKworI2lmIGRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQor
ICAgIC8vIFRoZSBpbnZhbGlkIGVwaWxvZyBtYWtlcyBXaW5kb3dzIGJlbGlldmUgdGhlIGVwaWxv
ZyBzdGFydHMgbGF0ZXIgdGhhbiBpdAorICAgIC8vIGFjdHVhbGx5IGRvZXMuIEFzIGEgcmVzdWx0
LCBpbW1lZGlhdGVseSBhZnRlciB0aGUgcG9wcSwgaXQgZG9lcyBub3QKKyAgICAvLyByZWFsaXpl
IHRoZSBzdGFjayBoYXMgYmVlbiB1bndvdW5kIGFuZCByZXBlYXRzIHRoZSB3b3JrLgorICAgIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9TRUgoYWJpX3Rlc3RfYmFkX3Vud2luZF9l
cGlsb2cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bndvdW5kIHBhc3Qgc3RhcnRp
bmcgZnJhbWUiKTsKKyAgICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2JhZF91bndpbmRf
ZXBpbG9nKTsKKyNlbmRpZiAgLy8gT1BFTlNTTF9XSU5ET1dTCisgIH0KKyNlbmRpZiAgLy8gT1BF
TlNTTF9YODZfNjQKKyNlbmRpZiAgLy8gU1VQUE9SVFNfQUJJX1RFU1QKK30KKworI2lmIGRlZmlu
ZWQoT1BFTlNTTF9YODZfNjQpICYmIGRlZmluZWQoU1VQUE9SVFNfQUJJX1RFU1QpCitleHRlcm4g
IkMiIHsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9yYXgodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Ns
b2JiZXJfcmJ4KHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3JjeCh2b2lkKTsKK3ZvaWQg
YWJpX3Rlc3RfY2xvYmJlcl9yZHgodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcnNpKHZv
aWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3JkaSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xv
YmJlcl9yYnAodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjgodm9pZCk7Cit2b2lkIGFi
aV90ZXN0X2Nsb2JiZXJfcjkodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjEwKHZvaWQp
Owordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3IxMSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJl
cl9yMTIodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjEzKHZvaWQpOwordm9pZCBhYmlf
dGVzdF9jbG9iYmVyX3IxNCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9yMTUodm9pZCk7
Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfeG1tMCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJl
cl94bW0xKHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3htbTIodm9pZCk7Cit2b2lkIGFi
aV90ZXN0X2Nsb2JiZXJfeG1tMyh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW00KHZv
aWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3htbTUodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Ns
b2JiZXJfeG1tNih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW03KHZvaWQpOwordm9p
ZCBhYmlfdGVzdF9jbG9iYmVyX3htbTgodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfeG1t
OSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW0xMCh2b2lkKTsKK3ZvaWQgYWJpX3Rl
c3RfY2xvYmJlcl94bW0xMSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW0xMih2b2lk
KTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW0xMyh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xv
YmJlcl94bW0xNCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW0xNSh2b2lkKTsKK30g
IC8vIGV4dGVybiAiQyIKKworVEVTVChBQklUZXN0LCBYODZfNjQpIHsKKyAgLy8gYWJpX3Rlc3Rf
dHJhbXBvbGluZSBoaWRlcyB1bnNhdmVkIHJlZ2lzdGVycyBmcm9tIHRoZSBjYWxsZXIsIHNvIHdl
IGNhbgorICAvLyBzYWZlbHkgY2FsbCB0aGUgYWJpX3Rlc3RfY2xvYmJlcl8qIGZ1bmN0aW9ucyBi
ZWxvdy4KKyAgYWJpX3Rlc3Q6OmludGVybmFsOjpDYWxsZXJTdGF0ZSBzdGF0ZTsKKyAgUkFORF9i
eXRlcyhyZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oJnN0YXRlKSwgc2l6ZW9mKHN0YXRlKSk7
CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfdHJhbXBvbGluZSwKKyAgICAgICAgICAg
ICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNyeXB0b193b3JkX3Q+KGFiaV90ZXN0X2Nsb2Ji
ZXJfcmJ4KSwKKyAgICAgICAgICAgICAgICAgICAgICAmc3RhdGUsIG51bGxwdHIsIDAsIDAgLyog
bm8gYnJlYWtwb2ludCAqLyk7CisKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9i
YmVyX3JheCk7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQo
YWJpX3Rlc3RfY2xvYmJlcl9yYngpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicmJ4IHdh
cyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJp
X3Rlc3RfY2xvYmJlcl9yY3gpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2Ji
ZXJfcmR4KTsKKyNpZiBkZWZpbmVkKE9QRU5TU0xfV0lORE9XUykKKyAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3JkaSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICJyZGkgd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4i
KTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVz
dF9jbG9iYmVyX3JzaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJyc2kgd2FzIG5vdCBy
ZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyNlbHNlCisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJp
X3Rlc3RfY2xvYmJlcl9yZGkpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2Ji
ZXJfcnNpKTsKKyNlbmRpZgorICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9f
VU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfcmJwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
InJicCB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworICBDSEVDS19BQklfTk9fVU5X
SU5EKGFiaV90ZXN0X2Nsb2JiZXJfcjgpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0
X2Nsb2JiZXJfcjkpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfcjEw
KTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3IxMSk7CisgIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9y
MTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicjEyIHdhcyBub3QgcmVzdG9yZWQgYWZ0
ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJ
TkQoYWJpX3Rlc3RfY2xvYmJlcl9yMTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicjEz
IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlM
VVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9yMTQpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAicjE0IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7Cisg
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xv
YmJlcl9yMTUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicjE1IHdhcyBub3QgcmVzdG9y
ZWQgYWZ0ZXIgcmV0dXJuIik7CisKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9i
YmVyX3htbTApOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMSk7
CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94bW0yKTsKKyAgQ0hFQ0tf
QUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3htbTMpOworICBDSEVDS19BQklfTk9fVU5X
SU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tNCk7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rl
c3RfY2xvYmJlcl94bW01KTsKKyNpZiBkZWZpbmVkKE9QRU5TU0xfV0lORE9XUykKKyAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3ht
bTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAieG1tNiB3YXMgbm90IHJlc3RvcmVkIGFm
dGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5X
SU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tNyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4
bW03IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94bW04KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgInhtbTggd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4i
KTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVz
dF9jbG9iYmVyX3htbTkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAieG1tOSB3YXMgbm90
IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVD
S19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMTApLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAieG1tMTAgd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVy
X3htbTExKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbTExIHdhcyBub3QgcmVzdG9y
ZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9O
T19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94bW0xMiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ4bW0xMiB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMTMp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAieG1tMTMgd2FzIG5vdCByZXN0b3JlZCBhZnRl
ciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lO
RChhYmlfdGVzdF9jbG9iYmVyX3htbTE0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInht
bTE0IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94bW0xNSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ4bW0xNSB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVy
biIpOworI2Vsc2UKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3htbTYp
OworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tNyk7CisgIENIRUNL
X0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94bW04KTsKKyAgQ0hFQ0tfQUJJX05PX1VO
V0lORChhYmlfdGVzdF9jbG9iYmVyX3htbTkpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90
ZXN0X2Nsb2JiZXJfeG1tMTApOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2Ji
ZXJfeG1tMTEpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMTIp
OworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMTMpOworICBDSEVD
S19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMTQpOworICBDSEVDS19BQklfTk9f
VU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMTUpOworI2VuZGlmCisKKyAgRVhQRUNUX05PTkZB
VEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2Zs
YWcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlyZWN0aW9uIGZsYWcgc2V0IGFmdGVy
IHJldHVybiIpOworICBFWFBFQ1RfRVEoMCwgYWJpX3Rlc3RfZ2V0X2FuZF9jbGVhcl9kaXJlY3Rp
b25fZmxhZygpKQorICAgICAgPDwgIkNIRUNLX0FCSSBkaWQgbm90IGluc3VsYXRlIHRoZSBjYWxs
ZXIgZnJvbSBkaXJlY3Rpb24gZmxhZyBlcnJvcnMiOworfQorI2VuZGlmICAgLy8gT1BFTlNTTF9Y
ODZfNjQgJiYgU1VQUE9SVFNfQUJJX1RFU1QKKworI2lmIGRlZmluZWQoT1BFTlNTTF9YODYpICYm
IGRlZmluZWQoU1VQUE9SVFNfQUJJX1RFU1QpCitleHRlcm4gIkMiIHsKK3ZvaWQgYWJpX3Rlc3Rf
Y2xvYmJlcl9lYXgodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZWJ4KHZvaWQpOwordm9p
ZCBhYmlfdGVzdF9jbG9iYmVyX2VjeCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9lZHgo
dm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZXNpKHZvaWQpOwordm9pZCBhYmlfdGVzdF9j
bG9iYmVyX2VkaSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9lYnAodm9pZCk7Cit2b2lk
IGFiaV90ZXN0X2Nsb2JiZXJfeG1tMCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW0x
KHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3htbTIodm9pZCk7Cit2b2lkIGFiaV90ZXN0
X2Nsb2JiZXJfeG1tMyh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW00KHZvaWQpOwor
dm9pZCBhYmlfdGVzdF9jbG9iYmVyX3htbTUodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJf
eG1tNih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94bW03KHZvaWQpOworfSAgLy8gZXh0
ZXJuICJDIgorCitURVNUKEFCSVRlc3QsIFg4NikgeworICAvLyBhYmlfdGVzdF90cmFtcG9saW5l
IGhpZGVzIHVuc2F2ZWQgcmVnaXN0ZXJzIGZyb20gdGhlIGNhbGxlciwgc28gd2UgY2FuCisgIC8v
IHNhZmVseSBjYWxsIHRoZSBhYmlfdGVzdF9jbG9iYmVyXyogZnVuY3Rpb25zIGJlbG93LgorICBh
YmlfdGVzdDo6aW50ZXJuYWw6OkNhbGxlclN0YXRlIHN0YXRlOworICBSQU5EX2J5dGVzKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDhfdCAqPigmc3RhdGUpLCBzaXplb2Yoc3RhdGUpKTsKKyAgQ0hFQ0tf
QUJJX05PX1VOV0lORChhYmlfdGVzdF90cmFtcG9saW5lLAorICAgICAgICAgICAgICAgICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8Y3J5cHRvX3dvcmRfdD4oYWJpX3Rlc3RfY2xvYmJlcl9lYngpLAor
ICAgICAgICAgICAgICAgICAgICAgICZzdGF0ZSwgbnVsbHB0ciwgMCwgMCAvKiBubyBicmVha3Bv
aW50ICovKTsKKworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZWF4KTsK
KyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9j
bG9iYmVyX2VieCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJlYnggd2FzIG5vdCByZXN0
b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9i
YmVyX2VjeCk7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9lZHgpOwor
ICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Ns
b2JiZXJfZWRpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImVkaSB3YXMgbm90IHJlc3Rv
cmVkIGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklf
Tk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZXNpKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgImVzaSB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZWJwKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgImVicCB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVy
biIpOworCisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94bW0wKTsKKyAg
Q0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3htbTEpOworICBDSEVDS19BQklf
Tk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1tMik7CisgIENIRUNLX0FCSV9OT19VTldJTkQo
YWJpX3Rlc3RfY2xvYmJlcl94bW0zKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9j
bG9iYmVyX3htbTQpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeG1t
NSk7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94bW02KTsKKyAgQ0hF
Q0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3htbTcpOworCisgIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3Rfc2V0X2RpcmVjdGlvbl9m
bGFnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpcmVjdGlvbiBmbGFnIHNldCBhZnRl
ciByZXR1cm4iKTsKKyAgRVhQRUNUX0VRKDAsIGFiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0
aW9uX2ZsYWcoKSkKKyAgICAgIDw8ICJDSEVDS19BQkkgZGlkIG5vdCBpbnN1bGF0ZSB0aGUgY2Fs
bGVyIGZyb20gZGlyZWN0aW9uIGZsYWcgZXJyb3JzIjsKK30KKyNlbmRpZiAgIC8vIE9QRU5TU0xf
WDg2ICYmIFNVUFBPUlRTX0FCSV9URVNUCisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfQVJNKSAmJiBk
ZWZpbmVkKFNVUFBPUlRTX0FCSV9URVNUKQorZXh0ZXJuICJDIiB7Cit2b2lkIGFiaV90ZXN0X2Ns
b2JiZXJfcjAodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjEodm9pZCk7Cit2b2lkIGFi
aV90ZXN0X2Nsb2JiZXJfcjIodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjModm9pZCk7
Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjQodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJf
cjUodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjYodm9pZCk7Cit2b2lkIGFiaV90ZXN0
X2Nsb2JiZXJfcjcodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjgodm9pZCk7Cit2b2lk
IGFiaV90ZXN0X2Nsb2JiZXJfcjkodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfcjEwKHZv
aWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3IxMSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xv
YmJlcl9yMTIodm9pZCk7CisvLyByMTMsIHIxNCwgYW5kIHIxNSwgYXJlIHNwLCBsciwgYW5kIHBj
LCByZXNwZWN0aXZlbHkuCisKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMCh2b2lkKTsKK3ZvaWQg
YWJpX3Rlc3RfY2xvYmJlcl9kMSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMih2b2lk
KTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMyh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJl
cl9kNCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kNSh2b2lkKTsKK3ZvaWQgYWJpX3Rl
c3RfY2xvYmJlcl9kNih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kNyh2b2lkKTsKK3Zv
aWQgYWJpX3Rlc3RfY2xvYmJlcl9kOCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kOSh2
b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMTAodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Ns
b2JiZXJfZDExKHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX2QxMih2b2lkKTsKK3ZvaWQg
YWJpX3Rlc3RfY2xvYmJlcl9kMTModm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDE0KHZv
aWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX2QxNSh2b2lkKTsKK30gIC8vIGV4dGVybiAiQyIK
KworVEVTVChBQklUZXN0LCBBUk0pIHsKKyAgLy8gYWJpX3Rlc3RfdHJhbXBvbGluZSBoaWRlcyB1
bnNhdmVkIHJlZ2lzdGVycyBmcm9tIHRoZSBjYWxsZXIsIHNvIHdlIGNhbgorICAvLyBzYWZlbHkg
Y2FsbCB0aGUgYWJpX3Rlc3RfY2xvYmJlcl8qIGZ1bmN0aW9ucyBiZWxvdy4KKyAgYWJpX3Rlc3Q6
OmludGVybmFsOjpDYWxsZXJTdGF0ZSBzdGF0ZTsKKyAgUkFORF9ieXRlcyhyZWludGVycHJldF9j
YXN0PHVpbnQ4X3QgKj4oJnN0YXRlKSwgc2l6ZW9mKHN0YXRlKSk7CisgIENIRUNLX0FCSV9OT19V
TldJTkQoYWJpX3Rlc3RfdHJhbXBvbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PGNyeXB0b193b3JkX3Q+KGFiaV90ZXN0X2Nsb2JiZXJfcjQpLAorICAgICAgICAg
ICAgICAgICAgICAgICZzdGF0ZSwgbnVsbHB0ciwgMCwgMCAvKiBubyBicmVha3BvaW50ICovKTsK
KworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfcjApOworICBDSEVDS19B
QklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfcjEpOworICBDSEVDS19BQklfTk9fVU5XSU5E
KGFiaV90ZXN0X2Nsb2JiZXJfcjIpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Ns
b2JiZXJfcjMpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5E
KGFiaV90ZXN0X2Nsb2JiZXJfcjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicjQgd2Fz
IG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
Q0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3I1KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgInI1IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9y
NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJyNiB3YXMgbm90IHJlc3RvcmVkIGFmdGVy
IHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5E
KGFiaV90ZXN0X2Nsb2JiZXJfcjcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicjcgd2Fz
IG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
Q0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3I4KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgInI4IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisjaWYgZGVm
aW5lZChPUEVOU1NMX0FQUExFKQorICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2Ji
ZXJfcjkpOworI2Vsc2UKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VO
V0lORChhYmlfdGVzdF9jbG9iYmVyX3I5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInI5
IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisjZW5kaWYKKyAgRVhQRUNUX05PTkZB
VEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3IxMCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICJyMTAgd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1
cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlf
dGVzdF9jbG9iYmVyX3IxMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJyMTEgd2FzIG5v
dCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVz
dF9jbG9iYmVyX3IxMik7CisKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVy
X2QwKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2QxKTsKKyAgQ0hF
Q0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2QyKTsKKyAgQ0hFQ0tfQUJJX05PX1VO
V0lORChhYmlfdGVzdF9jbG9iYmVyX2QzKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVz
dF9jbG9iYmVyX2Q0KTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2Q1
KTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2Q2KTsKKyAgQ0hFQ0tf
QUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2Q3KTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZB
SUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2Q4KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgImQ4IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7Cisg
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xv
YmJlcl9kOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkOSB3YXMgbm90IHJlc3RvcmVk
IGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9f
VU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDEwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ImQxMCB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDExKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgImQxMSB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIp
OworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0
X2Nsb2JiZXJfZDEyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImQxMiB3YXMgbm90IHJl
c3RvcmVkIGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19B
QklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDEzKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgImQxMyB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDE0KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgImQxNCB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJl
dHVybiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShDSEVDS19BQklfTk9fVU5XSU5EKGFi
aV90ZXN0X2Nsb2JiZXJfZDE1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImQxNSB3YXMg
bm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworfQorI2VuZGlmICAgLy8gT1BFTlNTTF9BUk0g
JiYgU1VQUE9SVFNfQUJJX1RFU1QKKworCisjaWYgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpICYm
IGRlZmluZWQoU1VQUE9SVFNfQUJJX1RFU1QpCitleHRlcm4gIkMiIHsKK3ZvaWQgYWJpX3Rlc3Rf
Y2xvYmJlcl94MCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94MSh2b2lkKTsKK3ZvaWQg
YWJpX3Rlc3RfY2xvYmJlcl94Mih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94Myh2b2lk
KTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94NCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJl
cl94NSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94Nih2b2lkKTsKK3ZvaWQgYWJpX3Rl
c3RfY2xvYmJlcl94Nyh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94OCh2b2lkKTsKK3Zv
aWQgYWJpX3Rlc3RfY2xvYmJlcl94OSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94MTAo
dm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfeDExKHZvaWQpOwordm9pZCBhYmlfdGVzdF9j
bG9iYmVyX3gxMih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94MTModm9pZCk7Cit2b2lk
IGFiaV90ZXN0X2Nsb2JiZXJfeDE0KHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3gxNSh2
b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94MTYodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Ns
b2JiZXJfeDE3KHZvaWQpOworLy8geDE4IGlzIHRoZSBwbGF0Zm9ybSByZWdpc3RlciBhbmQgb2Zm
IGxpbWl0cy4KK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94MTkodm9pZCk7Cit2b2lkIGFiaV90ZXN0
X2Nsb2JiZXJfeDIwKHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3gyMSh2b2lkKTsKK3Zv
aWQgYWJpX3Rlc3RfY2xvYmJlcl94MjIodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfeDIz
KHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX3gyNCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3Rf
Y2xvYmJlcl94MjUodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfeDI2KHZvaWQpOwordm9p
ZCBhYmlfdGVzdF9jbG9iYmVyX3gyNyh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl94Mjgo
dm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfeDI5KHZvaWQpOworCit2b2lkIGFiaV90ZXN0
X2Nsb2JiZXJfZDAodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDEodm9pZCk7Cit2b2lk
IGFiaV90ZXN0X2Nsb2JiZXJfZDIodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDModm9p
ZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDQodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2Ji
ZXJfZDUodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDYodm9pZCk7Cit2b2lkIGFiaV90
ZXN0X2Nsb2JiZXJfZDcodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDgodm9pZCk7Cit2
b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDkodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDEw
KHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX2QxMSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3Rf
Y2xvYmJlcl9kMTIodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDEzKHZvaWQpOwordm9p
ZCBhYmlfdGVzdF9jbG9iYmVyX2QxNCh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMTUo
dm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDE2KHZvaWQpOwordm9pZCBhYmlfdGVzdF9j
bG9iYmVyX2QxNyh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMTgodm9pZCk7Cit2b2lk
IGFiaV90ZXN0X2Nsb2JiZXJfZDE5KHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX2QyMCh2
b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMjEodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Ns
b2JiZXJfZDIyKHZvaWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX2QyMyh2b2lkKTsKK3ZvaWQg
YWJpX3Rlc3RfY2xvYmJlcl9kMjQodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDI1KHZv
aWQpOwordm9pZCBhYmlfdGVzdF9jbG9iYmVyX2QyNih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xv
YmJlcl9kMjcodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDI4KHZvaWQpOwordm9pZCBh
YmlfdGVzdF9jbG9iYmVyX2QyOSh2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl9kMzAodm9p
ZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfZDMxKHZvaWQpOworCit2b2lkIGFiaV90ZXN0X2Ns
b2JiZXJfdjhfdXBwZXIodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfdjlfdXBwZXIodm9p
ZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfdjEwX3VwcGVyKHZvaWQpOwordm9pZCBhYmlfdGVz
dF9jbG9iYmVyX3YxMV91cHBlcih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl92MTJfdXBw
ZXIodm9pZCk7Cit2b2lkIGFiaV90ZXN0X2Nsb2JiZXJfdjEzX3VwcGVyKHZvaWQpOwordm9pZCBh
YmlfdGVzdF9jbG9iYmVyX3YxNF91cHBlcih2b2lkKTsKK3ZvaWQgYWJpX3Rlc3RfY2xvYmJlcl92
MTVfdXBwZXIodm9pZCk7Cit9ICAvLyBleHRlcm4gIkMiCisKK1RFU1QoQUJJVGVzdCwgQUFyY2g2
NCkgeworICAvLyBhYmlfdGVzdF90cmFtcG9saW5lIGhpZGVzIHVuc2F2ZWQgcmVnaXN0ZXJzIGZy
b20gdGhlIGNhbGxlciwgc28gd2UgY2FuCisgIC8vIHNhZmVseSBjYWxsIHRoZSBhYmlfdGVzdF9j
bG9iYmVyXyogZnVuY3Rpb25zIGJlbG93LgorICBhYmlfdGVzdDo6aW50ZXJuYWw6OkNhbGxlclN0
YXRlIHN0YXRlOworICBSQU5EX2J5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCAqPigmc3Rh
dGUpLCBzaXplb2Yoc3RhdGUpKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF90cmFt
cG9saW5lLAorICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y3J5cHRvX3dv
cmRfdD4oYWJpX3Rlc3RfY2xvYmJlcl94MTkpLAorICAgICAgICAgICAgICAgICAgICAgICZzdGF0
ZSwgbnVsbHB0ciwgMCwgMCAvKiBubyBicmVha3BvaW50ICovKTsKKworICBDSEVDS19BQklfTk9f
VU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDApOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90
ZXN0X2Nsb2JiZXJfeDEpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJf
eDIpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDMpOworICBDSEVD
S19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDQpOworICBDSEVDS19BQklfTk9fVU5X
SU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDUpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0
X2Nsb2JiZXJfeDYpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDcp
OworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDgpOworICBDSEVDS19B
QklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDkpOworICBDSEVDS19BQklfTk9fVU5XSU5E
KGFiaV90ZXN0X2Nsb2JiZXJfeDEwKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9j
bG9iYmVyX3gxMSk7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl94MTIp
OworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfeDEzKTsKKyAgQ0hFQ0tf
QUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gxNCk7CisgIENIRUNLX0FCSV9OT19VTldJ
TkQoYWJpX3Rlc3RfY2xvYmJlcl94MTUpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0
X2Nsb2JiZXJfeDE2KTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gx
Nyk7CisKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlf
dGVzdF9jbG9iYmVyX3gxOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4MTkgd2FzIG5v
dCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hF
Q0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gyMCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ4MjAgd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gy
MSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4MjEgd2FzIG5vdCByZXN0b3JlZCBhZnRl
ciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lO
RChhYmlfdGVzdF9jbG9iYmVyX3gyMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4MjIg
d2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxV
UkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gyMyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ4MjMgd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9i
YmVyX3gyNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4MjQgd2FzIG5vdCByZXN0b3Jl
ZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05P
X1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gyNSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ4MjUgd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gyNiksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ4MjYgd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4i
KTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVz
dF9jbG9iYmVyX3gyNyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4Mjcgd2FzIG5vdCBy
ZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tf
QUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gyOCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ4Mjggd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3gyOSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4Mjkgd2FzIG5vdCByZXN0b3JlZCBhZnRlciBy
ZXR1cm4iKTsKKworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDApOwor
ICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDEpOworICBDSEVDS19BQklf
Tk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDIpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFi
aV90ZXN0X2Nsb2JiZXJfZDMpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2Ji
ZXJfZDQpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDUpOworICBD
SEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDYpOworICBDSEVDS19BQklfTk9f
VU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDcpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShD
SEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZDggd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZXR1cm4iKTsKKyAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2Q5
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImQ5IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIg
cmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQo
YWJpX3Rlc3RfY2xvYmJlcl9kMTApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZDEwIHdh
cyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9kMTEpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZDExIHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJl
cl9kMTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZDEyIHdhcyBub3QgcmVzdG9yZWQg
YWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19V
TldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9kMTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZDEzIHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9kMTQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZDE0IHdhcyBub3QgcmVzdG9yZWQgYWZ0ZXIgcmV0dXJuIik7
CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3Rf
Y2xvYmJlcl9kMTUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZDE1IHdhcyBub3QgcmVz
dG9yZWQgYWZ0ZXIgcmV0dXJuIik7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xv
YmJlcl9kMTYpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDE4KTsK
KyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2QxOSk7CisgIENIRUNLX0FC
SV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9kMjApOworICBDSEVDS19BQklfTk9fVU5XSU5E
KGFiaV90ZXN0X2Nsb2JiZXJfZDIxKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9j
bG9iYmVyX2QyMik7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9kMjMp
OworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDI0KTsKKyAgQ0hFQ0tf
QUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2QyNSk7CisgIENIRUNLX0FCSV9OT19VTldJ
TkQoYWJpX3Rlc3RfY2xvYmJlcl9kMjYpOworICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0
X2Nsb2JiZXJfZDI3KTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX2Qy
OCk7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl9kMjkpOworICBDSEVD
S19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfZDMwKTsKKyAgQ0hFQ0tfQUJJX05PX1VO
V0lORChhYmlfdGVzdF9jbG9iYmVyX2QzMSk7CisKKyAgLy8gVGhlIGxvd2VyIGhhbHZlcyBvZiB2
OC12MTUgKGFjY2Vzc2VkIGFzIGQ4LWQxNSkgbXVzdCBiZSBwcmVzZXJ2ZWQsIGJ1dCBub3QKKyAg
Ly8gdGhlIHVwcGVyIGhhbHZlcy4KKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9i
YmVyX3Y4X3VwcGVyKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3Y5
X3VwcGVyKTsKKyAgQ0hFQ0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3YxMF91cHBl
cik7CisgIENIRUNLX0FCSV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl92MTFfdXBwZXIpOwor
ICBDSEVDS19BQklfTk9fVU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfdjEyX3VwcGVyKTsKKyAgQ0hF
Q0tfQUJJX05PX1VOV0lORChhYmlfdGVzdF9jbG9iYmVyX3YxM191cHBlcik7CisgIENIRUNLX0FC
SV9OT19VTldJTkQoYWJpX3Rlc3RfY2xvYmJlcl92MTRfdXBwZXIpOworICBDSEVDS19BQklfTk9f
VU5XSU5EKGFiaV90ZXN0X2Nsb2JiZXJfdjE1X3VwcGVyKTsKK30KKyNlbmRpZiAgIC8vIE9QRU5T
U0xfQUFSQ0g2NCAmJiBTVVBQT1JUU19BQklfVEVTVApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9h
c24xL2FfaW50LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2FzbjEvYV9pbnQuYwppbmRleCA2ZGMxOGJhZGEzMmY2
ZDVlYmRiMTU2YjI0MzdjMjkxOWE1OTY3MDc3Li43YjQ4M2YyZDRiODFhYzEzMzZkMDEyODljMzFk
OGI2MzQ2MzE4MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2FzbjEvYV9pbnQuYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2FzbjEvYV9pbnQuYwpAQCAtMTk1LDYgKzE5NSwxNiBAQCBBU04xX0lOVEVHRVIg
KmMyaV9BU04xX0lOVEVHRVIoQVNOMV9JTlRFR0VSICoqYSwgY29uc3QgdW5zaWduZWQgY2hhciAq
KnBwLAogICAgIHVuc2lnbmVkIGNoYXIgKnRvLCAqczsKICAgICBpbnQgaTsKIAorICAgIC8qCisg
ICAgICogVGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIGxlbmd0aHMgdXAgdG8gSU5UX01BWCAtIDEs
IGJ1dCB0aGUgcmVzdCBvZiB0aGUKKyAgICAgKiBsZWdhY3kgQVNOLjEgY29kZSBtaXhlcyBpbnRl
Z2VyIHR5cGVzLCBzbyBhdm9pZCBleHBvc2luZyBpdCB0bworICAgICAqIEFTTjFfSU5URUdFUlMg
d2l0aCBsYXJnZXIgbGVuZ3Rocy4KKyAgICAgKi8KKyAgICBpZiAobGVuIDwgMCB8fCBsZW4gPiBJ
TlRfTUFYIC8gMikgeworICAgICAgICBPUEVOU1NMX1BVVF9FUlJPUihBU04xLCBBU04xX1JfVE9P
X0xPTkcpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKICAgICBpZiAoKGEgPT0gTlVM
TCkgfHwgKCgqYSkgPT0gTlVMTCkpIHsKICAgICAgICAgaWYgKChyZXQgPSBNX0FTTjFfSU5URUdF
Ul9uZXcoKSkgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CkBAIC0yNzYsNzUg
KzI4Niw2IEBAIEFTTjFfSU5URUdFUiAqYzJpX0FTTjFfSU5URUdFUihBU04xX0lOVEVHRVIgKiph
LCBjb25zdCB1bnNpZ25lZCBjaGFyICoqcHAsCiAgICAgcmV0dXJuIChOVUxMKTsKIH0KIAotLyoK
LSAqIFRoaXMgaXMgYSB2ZXJzaW9uIG9mIGQyaV9BU04xX0lOVEVHRVIgdGhhdCBpZ25vcmVzIHRo
ZSBzaWduIGJpdCBvZiBBU04xCi0gKiBpbnRlZ2Vyczogc29tZSBicm9rZW4gc29mdHdhcmUgY2Fu
IGVuY29kZSBhIHBvc2l0aXZlIElOVEVHRVIgd2l0aCBpdHMgTVNCCi0gKiBzZXQgYXMgbmVnYXRp
dmUgKGl0IGRvZXNuJ3QgYWRkIGEgcGFkZGluZyB6ZXJvKS4KLSAqLwotCi1BU04xX0lOVEVHRVIg
KmQyaV9BU04xX1VJTlRFR0VSKEFTTjFfSU5URUdFUiAqKmEsIGNvbnN0IHVuc2lnbmVkIGNoYXIg
KipwcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsZW5ndGgpCi17Ci0g
ICAgQVNOMV9JTlRFR0VSICpyZXQgPSBOVUxMOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7
Ci0gICAgdW5zaWduZWQgY2hhciAqczsKLSAgICBsb25nIGxlbjsKLSAgICBpbnQgaW5mLCB0YWcs
IHhjbGFzczsKLSAgICBpbnQgaTsKLQotICAgIGlmICgoYSA9PSBOVUxMKSB8fCAoKCphKSA9PSBO
VUxMKSkgewotICAgICAgICBpZiAoKHJldCA9IE1fQVNOMV9JTlRFR0VSX25ldygpKSA9PSBOVUxM
KQotICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKLSAgICAgICAgcmV0LT50eXBlID0gVl9BU04x
X0lOVEVHRVI7Ci0gICAgfSBlbHNlCi0gICAgICAgIHJldCA9ICgqYSk7Ci0KLSAgICBwID0gKnBw
OwotICAgIGluZiA9IEFTTjFfZ2V0X29iamVjdCgmcCwgJmxlbiwgJnRhZywgJnhjbGFzcywgbGVu
Z3RoKTsKLSAgICBpZiAoaW5mICYgMHg4MCkgewotICAgICAgICBpID0gQVNOMV9SX0JBRF9PQkpF
Q1RfSEVBREVSOwotICAgICAgICBnb3RvIGVycjsKLSAgICB9Ci0KLSAgICBpZiAodGFnICE9IFZf
QVNOMV9JTlRFR0VSKSB7Ci0gICAgICAgIGkgPSBBU04xX1JfRVhQRUNUSU5HX0FOX0lOVEVHRVI7
Ci0gICAgICAgIGdvdG8gZXJyOwotICAgIH0KLQotICAgIC8qCi0gICAgICogV2UgbXVzdCBPUEVO
U1NMX21hbGxvYyBzdHVmZiwgZXZlbiBmb3IgMCBieXRlcyBvdGhlcndpc2UgaXQgc2lnbmlmaWVz
Ci0gICAgICogYSBtaXNzaW5nIE5VTEwgcGFyYW1ldGVyLgotICAgICAqLwotICAgIHMgPSAodW5z
aWduZWQgY2hhciAqKU9QRU5TU0xfbWFsbG9jKChpbnQpbGVuICsgMSk7Ci0gICAgaWYgKHMgPT0g
TlVMTCkgewotICAgICAgICBpID0gRVJSX1JfTUFMTE9DX0ZBSUxVUkU7Ci0gICAgICAgIGdvdG8g
ZXJyOwotICAgIH0KLSAgICByZXQtPnR5cGUgPSBWX0FTTjFfSU5URUdFUjsKLSAgICBpZiAobGVu
KSB7Ci0gICAgICAgIGlmICgoKnAgPT0gMCkgJiYgKGxlbiAhPSAxKSkgewotICAgICAgICAgICAg
cCsrOwotICAgICAgICAgICAgbGVuLS07Ci0gICAgICAgIH0KLSAgICAgICAgT1BFTlNTTF9tZW1j
cHkocywgcCwgKGludClsZW4pOwotICAgICAgICBwICs9IGxlbjsKLSAgICB9Ci0KLSAgICBpZiAo
cmV0LT5kYXRhICE9IE5VTEwpCi0gICAgICAgIE9QRU5TU0xfZnJlZShyZXQtPmRhdGEpOwotICAg
IHJldC0+ZGF0YSA9IHM7Ci0gICAgcmV0LT5sZW5ndGggPSAoaW50KWxlbjsKLSAgICBpZiAoYSAh
PSBOVUxMKQotICAgICAgICAoKmEpID0gcmV0OwotICAgICpwcCA9IHA7Ci0gICAgcmV0dXJuIChy
ZXQpOwotIGVycjoKLSAgICBPUEVOU1NMX1BVVF9FUlJPUihBU04xLCBpKTsKLSAgICBpZiAoKHJl
dCAhPSBOVUxMKSAmJiAoKGEgPT0gTlVMTCkgfHwgKCphICE9IHJldCkpKQotICAgICAgICBNX0FT
TjFfSU5URUdFUl9mcmVlKHJldCk7Ci0gICAgcmV0dXJuIChOVUxMKTsKLX0KLQogaW50IEFTTjFf
SU5URUdFUl9zZXQoQVNOMV9JTlRFR0VSICphLCBsb25nIHYpCiB7CiAgICAgaWYgKHYgPj0gMCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9hc24xL2FzbjFfbGliLmMgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Fz
bjEvYXNuMV9saWIuYwppbmRleCBlYTcyN2YzMzVmYTY2NzNjZjIwZDIwMjM1ZWY3YmJiODI2NGFj
NDEyLi44NTI2YWJhMzg5NDExNDA1NWIxOTk2Yjk0OGE2ZTI5OGM1NmMzZDYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2FzbjEvYXNuMV9saWIuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2FzbjEvYXNuMV9s
aWIuYwpAQCAtMjA1LDcgKzIwNSwxMSBAQCBzdGF0aWMgaW50IGFzbjFfZ2V0X2xlbmd0aChjb25z
dCB1bnNpZ25lZCBjaGFyICoqcHAsIGludCAqaW5mLCBsb25nICpybCwKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICByZXQgPSBpOwogICAgIH0KLSAgICBpZiAocmV0ID4gTE9OR19NQVgpCisg
ICAgLyoKKyAgICAgKiBCb3VuZCB0aGUgbGVuZ3RoIHRvIGNvbWZvcnRhYmx5IGZpdCBpbiBhbiBp
bnQuIExlbmd0aHMgaW4gdGhpcyBtb2R1bGUKKyAgICAgKiBvZnRlbiBzd2l0Y2ggYmV0d2VlbiBp
bnQgYW5kIGxvbmcgd2l0aG91dCBvdmVyZmxvdyBjaGVja3MuCisgICAgICovCisgICAgaWYgKHJl
dCA+IElOVF9NQVggLyAyKQogICAgICAgICByZXR1cm4gMDsKICAgICAqcHAgPSBwOwogICAgICpy
bCA9IChsb25nKXJldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vYmFzZTY0L2Jhc2U2NF90ZXN0
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9iYXNlNjQvYmFzZTY0X3Rlc3QuY2MKaW5kZXggMjhiNWM4ZTAyOGIw
ZGFkMGFlMGFkOGJjOWQ0NGE0NTg4M2ZiNjE0Ni4uNjkwNTY1OTVlMDY0ODQyY2NmY2VjN2EzNGU2
NGM5NDk0OGIyNDYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9iYXNlNjQvYmFzZTY0X3Rlc3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9iYXNlNjQvYmFzZTY0X3Rlc3QuY2MKQEAgLTM5LDE0ICszOSwx
NCBAQCBlbnVtIGVuY29kaW5nX3JlbGF0aW9uIHsKICAgaW52YWxpZCwKIH07CiAKLXN0cnVjdCBU
ZXN0VmVjdG9yIHsKK3N0cnVjdCBCYXNlNjRUZXN0VmVjdG9yIHsKICAgZW51bSBlbmNvZGluZ19y
ZWxhdGlvbiByZWxhdGlvbjsKICAgY29uc3QgY2hhciAqZGVjb2RlZDsKICAgY29uc3QgY2hhciAq
ZW5jb2RlZDsKIH07CiAKIC8vIFRlc3QgdmVjdG9ycyBmcm9tIFJGQyA0NjQ4Lgotc3RhdGljIGNv
bnN0IFRlc3RWZWN0b3Iga1Rlc3RWZWN0b3JzW10gPSB7CitzdGF0aWMgY29uc3QgQmFzZTY0VGVz
dFZlY3RvciBrVGVzdFZlY3RvcnNbXSA9IHsKICAgICB7Y2Fub25pY2FsLCAiIiwgIiJ9LAogICAg
IHtjYW5vbmljYWwsICJmIiwgIlpnPT1cbiJ9LAogICAgIHtjYW5vbmljYWwsICJmbyIsICJabTg9
XG4ifSwKQEAgLTEwMyw5ICsxMDMsOSBAQCBzdGF0aWMgY29uc3QgVGVzdFZlY3RvciBrVGVzdFZl
Y3RvcnNbXSA9IHsKICAgICAgIj09PT09PT1cbiJ9LAogfTsKIAotY2xhc3MgQmFzZTY0VGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPFRlc3RWZWN0b3I+IHt9OworY2xhc3MgQmFz
ZTY0VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPEJhc2U2NFRlc3RWZWN0b3I+
IHt9OwogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUCgsIEJhc2U2NFRlc3QsIHRlc3Rpbmc6OlZh
bHVlc0luKGtUZXN0VmVjdG9ycykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKCwgQmFzZTY0
VGVzdCwgdGVzdGluZzo6VmFsdWVzSW4oa1Rlc3RWZWN0b3JzKSk7CiAKIC8vIFJlbW92ZU5ld2xp
bmVzIHJldHVybnMgYSBjb3B5IG9mIHxpbnwgd2l0aCBhbGwgJ1xuJyBjaGFyYWN0ZXJzIHJlbW92
ZWQuCiBzdGF0aWMgc3RkOjpzdHJpbmcgUmVtb3ZlTmV3bGluZXMoY29uc3QgY2hhciAqaW4pIHsK
QEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgc3RkOjpzdHJpbmcgUmVtb3ZlTmV3bGluZXMoY29u
c3QgY2hhciAqaW4pIHsKIH0KIAogVEVTVF9QKEJhc2U2NFRlc3QsIEVuY29kZUJsb2NrKSB7Ci0g
IGNvbnN0IFRlc3RWZWN0b3IgJnQgPSBHZXRQYXJhbSgpOworICBjb25zdCBCYXNlNjRUZXN0VmVj
dG9yICZ0ID0gR2V0UGFyYW0oKTsKICAgaWYgKHQucmVsYXRpb24gIT0gY2Fub25pY2FsKSB7CiAg
ICAgcmV0dXJuOwogICB9CkBAIC0xNDAsNyArMTQwLDcgQEAgVEVTVF9QKEJhc2U2NFRlc3QsIEVu
Y29kZUJsb2NrKSB7CiB9CiAKIFRFU1RfUChCYXNlNjRUZXN0LCBEZWNvZGVCYXNlNjQpIHsKLSAg
Y29uc3QgVGVzdFZlY3RvciAmdCA9IEdldFBhcmFtKCk7CisgIGNvbnN0IEJhc2U2NFRlc3RWZWN0
b3IgJnQgPSBHZXRQYXJhbSgpOwogICBpZiAodC5yZWxhdGlvbiA9PSB2YWxpZCkgewogICAgIC8v
IFRoZSBub24tY2Fub25pY2FsIGVuY29kaW5ncyB3aWxsIGdlbmVyYWxseSBoYXZlIG9kZCB3aGl0
ZXNwYWNlIGV0YwogICAgIC8vIHRoYXQgfEVWUF9EZWNvZGVCYXNlNjR8IHdpbGwgcmVqZWN0LgpA
QCAtMTY0LDcgKzE2NCw3IEBAIFRFU1RfUChCYXNlNjRUZXN0LCBEZWNvZGVCYXNlNjQpIHsKIH0K
IAogVEVTVF9QKEJhc2U2NFRlc3QsIERlY29kZUJsb2NrKSB7Ci0gIGNvbnN0IFRlc3RWZWN0b3Ig
JnQgPSBHZXRQYXJhbSgpOworICBjb25zdCBCYXNlNjRUZXN0VmVjdG9yICZ0ID0gR2V0UGFyYW0o
KTsKICAgaWYgKHQucmVsYXRpb24gIT0gY2Fub25pY2FsKSB7CiAgICAgcmV0dXJuOwogICB9CkBA
IC0xODgsNyArMTg4LDcgQEAgVEVTVF9QKEJhc2U2NFRlc3QsIERlY29kZUJsb2NrKSB7CiB9CiAK
IFRFU1RfUChCYXNlNjRUZXN0LCBFbmNvZGVEZWNvZGUpIHsKLSAgY29uc3QgVGVzdFZlY3RvciAm
dCA9IEdldFBhcmFtKCk7CisgIGNvbnN0IEJhc2U2NFRlc3RWZWN0b3IgJnQgPSBHZXRQYXJhbSgp
OwogCiAgIEVWUF9FTkNPREVfQ1RYIGN0eDsKICAgY29uc3Qgc2l6ZV90IGRlY29kZWRfbGVuID0g
c3RybGVuKHQuZGVjb2RlZCk7CkBAIC0yNDYsNyArMjQ2LDcgQEAgVEVTVF9QKEJhc2U2NFRlc3Qs
IEVuY29kZURlY29kZSkgewogfQogCiBURVNUX1AoQmFzZTY0VGVzdCwgRGVjb2RlVXBkYXRlU3Ry
ZWFtaW5nKSB7Ci0gIGNvbnN0IFRlc3RWZWN0b3IgJnQgPSBHZXRQYXJhbSgpOworICBjb25zdCBC
YXNlNjRUZXN0VmVjdG9yICZ0ID0gR2V0UGFyYW0oKTsKICAgaWYgKHQucmVsYXRpb24gPT0gaW52
YWxpZCkgewogICAgIHJldHVybjsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9iaW8vYmlv
LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2Jpby9iaW8uYwppbmRleCBmZTQwNTc4Yjk5YzhkYTgxMDc4MDBiNDNh
ZGI4YmVlMDlkZWEwNGI1Li43ZDk3YzNlNzE3MWQzNzFkOGRkNTZhYTVjNGMyNzI5MWY3ZjIxZWQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Jpby9iaW8uYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Jpby9i
aW8uYwpAQCAtNDgyLDYgKzQ4MiwzMSBAQCBzdGF0aWMgaW50IGJpb19yZWFkX2FsbChCSU8gKmJp
bywgdWludDhfdCAqKm91dCwgc2l6ZV90ICpvdXRfbGVuLAogICB9CiB9CiAKKy8vIGJpb19yZWFk
X2Z1bGwgcmVhZHMgfGxlbnwgYnl0ZXMgfGJpb3wgYW5kIHdyaXRlcyB0aGVtIGludG8gfG91dHwu
IEl0CisvLyB0b2xlcmF0ZXMgcGFydGlhbCByZWFkcyBmcm9tIHxiaW98IGFuZCByZXR1cm5zIG9u
ZSBvbiBzdWNjZXNzIG9yIHplcm8gaWYgYQorLy8gcmVhZCBmYWlscyBiZWZvcmUgfGxlbnwgYnl0
ZXMgYXJlIHJlYWQuIE9uIGZhaWx1cmUsIGl0IGFkZGl0aW9uYWxseSBzZXRzCisvLyB8Km91dF9l
b2Zfb25fZmlyc3RfcmVhZHwgdG8gd2hldGhlciB0aGUgZXJyb3Igd2FzIGR1ZSB0byB8YmlvfCBy
ZXR1cm5pbmcgemVybworLy8gb24gdGhlIGZpcnN0IHJlYWQuIHxvdXRfZW9mX29uX2ZpcnN0X3Jl
YWR8IG1heSBiZSBOVUxMIHRvIGRpc2NhcmQgdGhlIHZhbHVlLgorc3RhdGljIGludCBiaW9fcmVh
ZF9mdWxsKEJJTyAqYmlvLCB1aW50OF90ICpvdXQsIGludCAqb3V0X2VvZl9vbl9maXJzdF9yZWFk
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pIHsKKyAgaW50IGZpcnN0X3Jl
YWQgPSAxOworICB3aGlsZSAobGVuID4gMCkgeworICAgIGludCB0b2RvID0gbGVuIDw9IElOVF9N
QVggPyAoaW50KWxlbiA6IElOVF9NQVg7CisgICAgaW50IHJldCA9IEJJT19yZWFkKGJpbywgb3V0
LCB0b2RvKTsKKyAgICBpZiAocmV0IDw9IDApIHsKKyAgICAgIGlmIChvdXRfZW9mX29uX2ZpcnN0
X3JlYWQgIT0gTlVMTCkgeworICAgICAgICAqb3V0X2VvZl9vbl9maXJzdF9yZWFkID0gZmlyc3Rf
cmVhZCAmJiByZXQgPT0gMDsKKyAgICAgIH0KKyAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBv
dXQgKz0gcmV0OworICAgIGxlbiAtPSAoc2l6ZV90KXJldDsKKyAgICBmaXJzdF9yZWFkID0gMDsK
KyAgfQorCisgIHJldHVybiAxOworfQorCiAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0
aW5nIHxkMmlfKl9iaW98IGNhbGxlcnMsIHxCSU9fcmVhZF9hc24xfCB1c2VzCiAvLyB8RVJSX0xJ
Ql9BU04xfCBlcnJvcnMuCiBPUEVOU1NMX0RFQ0xBUkVfRVJST1JfUkVBU09OKEFTTjEsIEFTTjFf
Ul9ERUNPREVfRVJST1IpCkBAIC00OTMsMTcgKzUxOCwxNiBAQCBpbnQgQklPX3JlYWRfYXNuMShC
SU8gKmJpbywgdWludDhfdCAqKm91dCwgc2l6ZV90ICpvdXRfbGVuLCBzaXplX3QgbWF4X2xlbikg
ewogICB1aW50OF90IGhlYWRlcls2XTsKIAogICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtJbml0aWFs
SGVhZGVyTGVuID0gMjsKLSAgaW50IHJldCA9IEJJT19yZWFkKGJpbywgaGVhZGVyLCBrSW5pdGlh
bEhlYWRlckxlbik7Ci0gIGlmIChyZXQgPT0gMCkgewotICAgIC8vIEhpc3RvcmljYWxseSwgT3Bl
blNTTCByZXR1cm5lZCB8QVNOMV9SX0hFQURFUl9UT09fTE9OR3wgd2hlbiB8ZDJpXypfYmlvfAot
ICAgIC8vIGNvdWxkIG5vdCByZWFkIGFueXRoaW5nLiBDUHl0aG9uIGNvbmRpdGlvbnMgb24gdGhp
cyB0byBkZXRlcm1pbmUgaWYgfGJpb3wKLSAgICAvLyB3YXMgZW1wdHkuCi0gICAgT1BFTlNTTF9Q
VVRfRVJST1IoQVNOMSwgQVNOMV9SX0hFQURFUl9UT09fTE9ORyk7Ci0gICAgcmV0dXJuIDA7Ci0g
IH0KLQotICBpZiAocmV0ICE9IChpbnQpIGtJbml0aWFsSGVhZGVyTGVuKSB7Ci0gICAgT1BFTlNT
TF9QVVRfRVJST1IoQVNOMSwgQVNOMV9SX05PVF9FTk9VR0hfREFUQSk7CisgIGludCBlb2Zfb25f
Zmlyc3RfcmVhZDsKKyAgaWYgKCFiaW9fcmVhZF9mdWxsKGJpbywgaGVhZGVyLCAmZW9mX29uX2Zp
cnN0X3JlYWQsIGtJbml0aWFsSGVhZGVyTGVuKSkgeworICAgIGlmIChlb2Zfb25fZmlyc3RfcmVh
ZCkgeworICAgICAgLy8gSGlzdG9yaWNhbGx5LCBPcGVuU1NMIHJldHVybmVkIHxBU04xX1JfSEVB
REVSX1RPT19MT05HfCB3aGVuCisgICAgICAvLyB8ZDJpXypfYmlvfCBjb3VsZCBub3QgcmVhZCBh
bnl0aGluZy4gQ1B5dGhvbiBjb25kaXRpb25zIG9uIHRoaXMgdG8KKyAgICAgIC8vIGRldGVybWlu
ZSBpZiB8YmlvfCB3YXMgZW1wdHkuCisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihBU04xLCBBU04x
X1JfSEVBREVSX1RPT19MT05HKTsKKyAgICB9IGVsc2UgeworICAgICAgT1BFTlNTTF9QVVRfRVJS
T1IoQVNOMSwgQVNOMV9SX05PVF9FTk9VR0hfREFUQSk7CisgICAgfQogICAgIHJldHVybiAwOwog
ICB9CiAKQEAgLTUzOSw4ICs1NjMsNyBAQCBpbnQgQklPX3JlYWRfYXNuMShCSU8gKmJpbywgdWlu
dDhfdCAqKm91dCwgc2l6ZV90ICpvdXRfbGVuLCBzaXplX3QgbWF4X2xlbikgewogICAgICAgcmV0
dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKEJJT19yZWFkKGJpbywgaGVhZGVyICsga0luaXRpYWxI
ZWFkZXJMZW4sIG51bV9ieXRlcykgIT0KLSAgICAgICAgKGludCludW1fYnl0ZXMpIHsKKyAgICBp
ZiAoIWJpb19yZWFkX2Z1bGwoYmlvLCBoZWFkZXIgKyBrSW5pdGlhbEhlYWRlckxlbiwgTlVMTCwg
bnVtX2J5dGVzKSkgewogICAgICAgT1BFTlNTTF9QVVRfRVJST1IoQVNOMSwgQVNOMV9SX05PVF9F
Tk9VR0hfREFUQSk7CiAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC01ODIsOCArNjA1LDcgQEAg
aW50IEJJT19yZWFkX2FzbjEoQklPICpiaW8sIHVpbnQ4X3QgKipvdXQsIHNpemVfdCAqb3V0X2xl
biwgc2l6ZV90IG1heF9sZW4pIHsKICAgICByZXR1cm4gMDsKICAgfQogICBPUEVOU1NMX21lbWNw
eSgqb3V0LCBoZWFkZXIsIGhlYWRlcl9sZW4pOwotICBpZiAoQklPX3JlYWQoYmlvLCAoKm91dCkg
KyBoZWFkZXJfbGVuLCBsZW4gLSBoZWFkZXJfbGVuKSAhPQotICAgICAgKGludCkgKGxlbiAtIGhl
YWRlcl9sZW4pKSB7CisgIGlmICghYmlvX3JlYWRfZnVsbChiaW8sICgqb3V0KSArIGhlYWRlcl9s
ZW4sIE5VTEwsIGxlbiAtIGhlYWRlcl9sZW4pKSB7CiAgICAgT1BFTlNTTF9QVVRfRVJST1IoQVNO
MSwgQVNOMV9SX05PVF9FTk9VR0hfREFUQSk7CiAgICAgT1BFTlNTTF9mcmVlKCpvdXQpOwogICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9iaW8vYmlvX3Rlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL2Jpby9iaW9fdGVzdC5jYwppbmRleCA4NDc5YzhlODA5YWNmODQ0YmZlZGIwN2ZmOTk4
NTY1NzVjNTY0ZDQ1Li43OTdhNzMzN2YzOTczYmI1YjAzNzNmYWFmMjdhOTVkOGU4ZTE1NGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Jpby9iaW9fdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Jp
by9iaW9fdGVzdC5jYwpAQCAtMjIwLDcgKzIyMCw3IEBAIFRFU1RfUChCSU9BU04xVGVzdCwgUmVh
ZEFTTjEpIHsKICAgfQogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUCgsIEJJT0FTTjFUZXN0
LCB0ZXN0aW5nOjpWYWx1ZXNJbihrQVNOMVRlc3RQYXJhbXMpKTsKK0lOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUCgsIEJJT0FTTjFUZXN0LCB0ZXN0aW5nOjpWYWx1ZXNJbihrQVNOMVRlc3RQYXJhbXMp
KTsKIAogLy8gUnVuIHRocm91Z2ggdGhlIHRlc3RzIHR3aWNlLCBzd2FwcGluZyB8YmlvMXwgYW5k
IHxiaW8yfCwgZm9yIHN5bW1ldHJ5LgogY2xhc3MgQklPUGFpclRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdFdpdGhQYXJhbTxib29sPiB7fTsKQEAgLTMyMiw0ICszMjIsNCBAQCBURVNUX1AoQklP
UGFpclRlc3QsIFRlc3RQYWlyKSB7CiAgIEVYUEVDVF9FUShCeXRlcygiMTIzNDUiKSwgQnl0ZXMo
YnVmLCA1KSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKCwgQklPUGFpclRlc3QsIHRl
c3Rpbmc6OlZhbHVlcyhmYWxzZSwgdHJ1ZSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKCwg
QklPUGFpclRlc3QsIHRlc3Rpbmc6OlZhbHVlcyhmYWxzZSwgdHJ1ZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9ibl9leHRyYS9jb252ZXJ0LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2JuX2V4dHJhL2NvbnZl
cnQuYwppbmRleCA5YTFhNjllMzM2MGJjZWFhNjczZGE4NzQ3YjQ4N2E1NjA0OWQxMGYzLi42ZTkz
MGZjNjlmNzk1ZjBjYjJiMmQwY2I4NWQ0ZmEyMTE4Yzk4ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2JuX2V4dHJhL2NvbnZlcnQuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2JuX2V4dHJhL2NvbnZlcnQu
YwpAQCAtNDYwLDMgKzQ2MCwxMSBAQCBCSUdOVU0gKkJOX21waTJibihjb25zdCB1aW50OF90ICpp
biwgc2l6ZV90IGxlbiwgQklHTlVNICpvdXQpIHsKICAgfQogICByZXR1cm4gb3V0OwogfQorCitp
bnQgQk5fYm4yYmlucGFkKGNvbnN0IEJJR05VTSAqaW4sIHVpbnQ4X3QgKm91dCwgaW50IGxlbikg
eworICBpZiAobGVuIDwgMCB8fAorICAgICAgIUJOX2JuMmJpbl9wYWRkZWQob3V0LCAoc2l6ZV90
KWxlbiwgaW4pKSB7CisgICAgcmV0dXJuIC0xOworICB9CisgIHJldHVybiBsZW47Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2J5dGVzdHJpbmcvYnl0ZXN0cmluZ190ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9ieXRlc3RyaW5nL2J5dGVzdHJpbmdfdGVzdC5jYwppbmRleCBlOTk3NDRkNWUxOGEwNmYw
M2IwMGM4ZmVjNDIwNTNjNWU2NTA1ZjM1Li4xZjc4Nzk5NjQ4YjM1NGMxZmE5ZTViNTVmN2FlMThi
NWUxZjVjOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2J5dGVzdHJpbmcvYnl0ZXN0cmluZ190
ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vYnl0ZXN0cmluZy9ieXRlc3RyaW5nX3Rlc3QuY2MKQEAg
LTQyLDEwICs0MiwxMiBAQCBURVNUKENCU1Rlc3QsIFNraXApIHsKIH0KIAogVEVTVChDQlNUZXN0
LCBHZXRVaW50KSB7Ci0gIHN0YXRpYyBjb25zdCB1aW50OF90IGtEYXRhW10gPSB7MSwgMiwgMywg
NCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMn07CisgIHN0YXRpYyBjb25zdCB1aW50OF90IGtE
YXRhW10gPSB7MSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAgMTAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4
LCAxOSwgMjB9OwogICB1aW50OF90IHU4OwogICB1aW50MTZfdCB1MTY7CiAgIHVpbnQzMl90IHUz
MjsKKyAgdWludDY0X3QgdTY0OwogICBDQlMgZGF0YTsKIAogICBDQlNfaW5pdCgmZGF0YSwga0Rh
dGEsIHNpemVvZihrRGF0YSkpOwpAQCAtNTcsMTAgKzU5LDEyIEBAIFRFU1QoQ0JTVGVzdCwgR2V0
VWludCkgewogICBFWFBFQ1RfRVEoMHg0MDUwNnUsIHUzMik7CiAgIEFTU0VSVF9UUlVFKENCU19n
ZXRfdTMyKCZkYXRhLCAmdTMyKSk7CiAgIEVYUEVDVF9FUSgweDcwODA5MGF1LCB1MzIpOworICBB
U1NFUlRfVFJVRShDQlNfZ2V0X3U2NCgmZGF0YSwgJnU2NCkpOworICBFWFBFQ1RfRVEoMHhiMGMw
ZDBlMGYxMDExMTJ1LCB1NjQpOwogICBBU1NFUlRfVFJVRShDQlNfZ2V0X2xhc3RfdTgoJmRhdGEs
ICZ1OCkpOwotICBFWFBFQ1RfRVEoMHhjdSwgdTgpOworICBFWFBFQ1RfRVEoMHgxNHUsIHU4KTsK
ICAgQVNTRVJUX1RSVUUoQ0JTX2dldF9sYXN0X3U4KCZkYXRhLCAmdTgpKTsKLSAgRVhQRUNUX0VR
KDB4YnUsIHU4KTsKKyAgRVhQRUNUX0VRKDB4MTN1LCB1OCk7CiAgIEVYUEVDVF9GQUxTRShDQlNf
Z2V0X3U4KCZkYXRhLCAmdTgpKTsKICAgRVhQRUNUX0ZBTFNFKENCU19nZXRfbGFzdF91OCgmZGF0
YSwgJnU4KSk7CiB9CkBAIC0zMTAsNyArMzE0LDkgQEAgVEVTVChDQkJUZXN0LCBJbml0VW5pbml0
aWFsaXplZCkgewogfQogCiBURVNUKENCQlRlc3QsIEJhc2ljKSB7Ci0gIHN0YXRpYyBjb25zdCB1
aW50OF90IGtFeHBlY3RlZFtdID0gezEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDB4YSwgMHhi
LCAweGN9OworICBzdGF0aWMgY29uc3QgdWludDhfdCBrRXhwZWN0ZWRbXSA9IHsxLCAgIDIsICAg
IDMsICAgIDQsICAgIDUsICAgIDYsICAgNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOCwgICA5LCAgICAweGEsICAweGIsICAweGMsICAweGQsIDB4ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmLCAweDEwLCAweDExLCAweDEyLCAweDEz
LCAweDE0fTsKICAgdWludDhfdCAqYnVmOwogICBzaXplX3QgYnVmX2xlbjsKIApAQCAtMzIzLDcg
KzMyOSw4IEBAIFRFU1QoQ0JCVGVzdCwgQmFzaWMpIHsKICAgQVNTRVJUX1RSVUUoQ0JCX2FkZF91
MTYoY2JiLmdldCgpLCAweDIwMykpOwogICBBU1NFUlRfVFJVRShDQkJfYWRkX3UyNChjYmIuZ2V0
KCksIDB4NDA1MDYpKTsKICAgQVNTRVJUX1RSVUUoQ0JCX2FkZF91MzIoY2JiLmdldCgpLCAweDcw
ODA5MGEpKTsKLSAgQVNTRVJUX1RSVUUoQ0JCX2FkZF9ieXRlcyhjYmIuZ2V0KCksIChjb25zdCB1
aW50OF90ICopIlx4MGJceDBjIiwgMikpOworICBBU1NFUlRfVFJVRShDQkJfYWRkX3U2NChjYmIu
Z2V0KCksIDB4YjBjMGQwZTBmMTAxMTEyKSk7CisgIEFTU0VSVF9UUlVFKENCQl9hZGRfYnl0ZXMo
Y2JiLmdldCgpLCAoY29uc3QgdWludDhfdCAqKSJceDEzXHgxNCIsIDIpKTsKICAgQVNTRVJUX1RS
VUUoQ0JCX2ZpbmlzaChjYmIuZ2V0KCksICZidWYsICZidWZfbGVuKSk7CiAKICAgYnNzbDo6VW5p
cXVlUHRyPHVpbnQ4X3Q+IHNjb3BlcihidWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ieXRl
c3RyaW5nL2NiYi5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ieXRlc3RyaW5nL2NiYi5jCmluZGV4IDM4ZTlhODNh
M2Y4YjlhNjliYWVhYjk0ZTFlMjEzNDk3MWMyMmYxYzQuLjFkZGM3M2M2NjU0NmY5MjI0MjMyNjU5
ZjQyN2FmNTg4Y2FjMzJkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vYnl0ZXN0cmluZy9jYmIu
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2J5dGVzdHJpbmcvY2JiLmMKQEAgLTQ0LDcgKzQ0LDcgQEAgc3Rh
dGljIGludCBjYmJfaW5pdChDQkIgKmNiYiwgdWludDhfdCAqYnVmLCBzaXplX3QgY2FwKSB7CiAg
IGJhc2UtPmVycm9yID0gMDsKIAogICBjYmItPmJhc2UgPSBiYXNlOwotICBjYmItPmlzX3RvcF9s
ZXZlbCA9IDE7CisgIGNiYi0+aXNfY2hpbGQgPSAwOwogICByZXR1cm4gMTsKIH0KIApAQCAtNzYs
MTEgKzc2LDE0IEBAIGludCBDQkJfaW5pdF9maXhlZChDQkIgKmNiYiwgdWludDhfdCAqYnVmLCBz
aXplX3QgbGVuKSB7CiB9CiAKIHZvaWQgQ0JCX2NsZWFudXAoQ0JCICpjYmIpIHsKLSAgaWYgKGNi
Yi0+YmFzZSkgewotICAgIC8vIE9ubHkgdG9wLWxldmVsIHxDQkJ8cyBhcmUgY2xlYW5lZCB1cC4g
Q2hpbGQgfENCQnxzIGFyZSBub24tb3duaW5nLiBUaGV5Ci0gICAgLy8gYXJlIGltcGxpY2l0bHkg
ZGlzY2FyZGVkIHdoZW4gdGhlIHBhcmVudCBpcyBmbHVzaGVkIG9yIGNsZWFuZWQgdXAuCi0gICAg
YXNzZXJ0KGNiYi0+aXNfdG9wX2xldmVsKTsKKyAgLy8gQ2hpbGQgfENCQnxzIGFyZSBub24tb3du
aW5nLiBUaGV5IGFyZSBpbXBsaWNpdGx5IGRpc2NhcmRlZCBhbmQgc2hvdWxkIG5vdAorICAvLyBi
ZSB1c2VkIHdpdGggfENCQl9jbGVhbnVwfCBvciB8U2NvcGVkQ0JCfC4KKyAgYXNzZXJ0KCFjYmIt
PmlzX2NoaWxkKTsKKyAgaWYgKGNiYi0+aXNfY2hpbGQpIHsKKyAgICByZXR1cm47CisgIH0KIAor
ICBpZiAoY2JiLT5iYXNlKSB7CiAgICAgaWYgKGNiYi0+YmFzZS0+Y2FuX3Jlc2l6ZSkgewogICAg
ICAgT1BFTlNTTF9mcmVlKGNiYi0+YmFzZS0+YnVmKTsKICAgICB9CkBAIC0xNDQsNyArMTQ3LDcg
QEAgc3RhdGljIGludCBjYmJfYnVmZmVyX2FkZChzdHJ1Y3QgY2JiX2J1ZmZlcl9zdCAqYmFzZSwg
dWludDhfdCAqKm91dCwKICAgcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyBpbnQgY2JiX2J1ZmZlcl9h
ZGRfdShzdHJ1Y3QgY2JiX2J1ZmZlcl9zdCAqYmFzZSwgdWludDMyX3QgdiwKK3N0YXRpYyBpbnQg
Y2JiX2J1ZmZlcl9hZGRfdShzdHJ1Y3QgY2JiX2J1ZmZlcl9zdCAqYmFzZSwgdWludDY0X3QgdiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuX2xlbikgewogICBpZiAobGVu
X2xlbiA9PSAwKSB7CiAgICAgcmV0dXJuIDE7CkBAIC0xNjksNyArMTcyLDcgQEAgc3RhdGljIGlu
dCBjYmJfYnVmZmVyX2FkZF91KHN0cnVjdCBjYmJfYnVmZmVyX3N0ICpiYXNlLCB1aW50MzJfdCB2
LAogfQogCiBpbnQgQ0JCX2ZpbmlzaChDQkIgKmNiYiwgdWludDhfdCAqKm91dF9kYXRhLCBzaXpl
X3QgKm91dF9sZW4pIHsKLSAgaWYgKCFjYmItPmlzX3RvcF9sZXZlbCkgeworICBpZiAoY2JiLT5p
c19jaGlsZCkgewogICAgIHJldHVybiAwOwogICB9CiAKQEAgLTMxMCw2ICszMTMsNyBAQCBzdGF0
aWMgaW50IGNiYl9hZGRfbGVuZ3RoX3ByZWZpeGVkKENCQiAqY2JiLCBDQkIgKm91dF9jb250ZW50
cywKICAgT1BFTlNTTF9tZW1zZXQocHJlZml4X2J5dGVzLCAwLCBsZW5fbGVuKTsKICAgT1BFTlNT
TF9tZW1zZXQob3V0X2NvbnRlbnRzLCAwLCBzaXplb2YoQ0JCKSk7CiAgIG91dF9jb250ZW50cy0+
YmFzZSA9IGNiYi0+YmFzZTsKKyAgb3V0X2NvbnRlbnRzLT5pc19jaGlsZCA9IDE7CiAgIGNiYi0+
Y2hpbGQgPSBvdXRfY29udGVudHM7CiAgIGNiYi0+Y2hpbGQtPm9mZnNldCA9IG9mZnNldDsKICAg
Y2JiLT5jaGlsZC0+cGVuZGluZ19sZW5fbGVuID0gbGVuX2xlbjsKQEAgLTM4MSw2ICszODUsNyBA
QCBpbnQgQ0JCX2FkZF9hc24xKENCQiAqY2JiLCBDQkIgKm91dF9jb250ZW50cywgdW5zaWduZWQg
dGFnKSB7CiAKICAgT1BFTlNTTF9tZW1zZXQob3V0X2NvbnRlbnRzLCAwLCBzaXplb2YoQ0JCKSk7
CiAgIG91dF9jb250ZW50cy0+YmFzZSA9IGNiYi0+YmFzZTsKKyAgb3V0X2NvbnRlbnRzLT5pc19j
aGlsZCA9IDE7CiAgIGNiYi0+Y2hpbGQgPSBvdXRfY29udGVudHM7CiAgIGNiYi0+Y2hpbGQtPm9m
ZnNldCA9IG9mZnNldDsKICAgY2JiLT5jaGlsZC0+cGVuZGluZ19sZW5fbGVuID0gMTsKQEAgLTQ1
OSw2ICs0NjQsMTMgQEAgaW50IENCQl9hZGRfdTMyKENCQiAqY2JiLCB1aW50MzJfdCB2YWx1ZSkg
ewogICByZXR1cm4gY2JiX2J1ZmZlcl9hZGRfdShjYmItPmJhc2UsIHZhbHVlLCA0KTsKIH0KIAor
aW50IENCQl9hZGRfdTY0KENCQiAqY2JiLCB1aW50NjRfdCB2YWx1ZSkgeworICBpZiAoIUNCQl9m
bHVzaChjYmIpKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgcmV0dXJuIGNiYl9idWZmZXJfYWRk
X3UoY2JiLT5iYXNlLCB2YWx1ZSwgOCk7Cit9CisKIHZvaWQgQ0JCX2Rpc2NhcmRfY2hpbGQoQ0JC
ICpjYmIpIHsKICAgaWYgKGNiYi0+Y2hpbGQgPT0gTlVMTCkgewogICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vYnl0ZXN0cmluZy9jYnMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vYnl0ZXN0cmlu
Zy9jYnMuYwppbmRleCAzNzI2NTJjNDBlNGQ0OGM2NjQ1ZDg0NWY5Y2QyOWI3NTkxMWVjOGQ4Li5m
OGE4MzUzZTUxYzQ5ZDg2NzAyNDllZTBkNTE4NTdiYTBhNTBmZDZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL2J5dGVzdHJpbmcvY2JzLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ieXRlc3RyaW5nL2Nicy5j
CkBAIC04OCw4ICs4OCw4IEBAIGludCBDQlNfbWVtX2VxdWFsKGNvbnN0IENCUyAqY2JzLCBjb25z
dCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuKSB7CiAgIHJldHVybiBDUllQVE9fbWVtY21wKGNi
cy0+ZGF0YSwgZGF0YSwgbGVuKSA9PSAwOwogfQogCi1zdGF0aWMgaW50IGNic19nZXRfdShDQlMg
KmNicywgdWludDMyX3QgKm91dCwgc2l6ZV90IGxlbikgewotICB1aW50MzJfdCByZXN1bHQgPSAw
Oworc3RhdGljIGludCBjYnNfZ2V0X3UoQ0JTICpjYnMsIHVpbnQ2NF90ICpvdXQsIHNpemVfdCBs
ZW4pIHsKKyAgdWludDY0X3QgcmVzdWx0ID0gMDsKICAgY29uc3QgdWludDhfdCAqZGF0YTsKIAog
ICBpZiAoIWNic19nZXQoY2JzLCAmZGF0YSwgbGVuKSkgewpAQCAtMTEzLDcgKzExMyw3IEBAIGlu
dCBDQlNfZ2V0X3U4KENCUyAqY2JzLCB1aW50OF90ICpvdXQpIHsKIH0KIAogaW50IENCU19nZXRf
dTE2KENCUyAqY2JzLCB1aW50MTZfdCAqb3V0KSB7Ci0gIHVpbnQzMl90IHY7CisgIHVpbnQ2NF90
IHY7CiAgIGlmICghY2JzX2dldF91KGNicywgJnYsIDIpKSB7CiAgICAgcmV0dXJuIDA7CiAgIH0K
QEAgLTEyMiwxMSArMTIyLDI1IEBAIGludCBDQlNfZ2V0X3UxNihDQlMgKmNicywgdWludDE2X3Qg
Km91dCkgewogfQogCiBpbnQgQ0JTX2dldF91MjQoQ0JTICpjYnMsIHVpbnQzMl90ICpvdXQpIHsK
LSAgcmV0dXJuIGNic19nZXRfdShjYnMsIG91dCwgMyk7CisgIHVpbnQ2NF90IHY7CisgIGlmICgh
Y2JzX2dldF91KGNicywgJnYsIDMpKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgKm91dCA9IHY7
CisgIHJldHVybiAxOwogfQogCiBpbnQgQ0JTX2dldF91MzIoQ0JTICpjYnMsIHVpbnQzMl90ICpv
dXQpIHsKLSAgcmV0dXJuIGNic19nZXRfdShjYnMsIG91dCwgNCk7CisgIHVpbnQ2NF90IHY7Cisg
IGlmICghY2JzX2dldF91KGNicywgJnYsIDQpKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgKm91
dCA9IHY7CisgIHJldHVybiAxOworfQorCitpbnQgQ0JTX2dldF91NjQoQ0JTICpjYnMsIHVpbnQ2
NF90ICpvdXQpIHsKKyAgcmV0dXJuIGNic19nZXRfdShjYnMsIG91dCwgOCk7CiB9CiAKIGludCBD
QlNfZ2V0X2xhc3RfdTgoQ0JTICpjYnMsIHVpbnQ4X3QgKm91dCkgewpAQCAtMTU3LDEwICsxNzEs
MTMgQEAgaW50IENCU19jb3B5X2J5dGVzKENCUyAqY2JzLCB1aW50OF90ICpvdXQsIHNpemVfdCBs
ZW4pIHsKIH0KIAogc3RhdGljIGludCBjYnNfZ2V0X2xlbmd0aF9wcmVmaXhlZChDQlMgKmNicywg
Q0JTICpvdXQsIHNpemVfdCBsZW5fbGVuKSB7Ci0gIHVpbnQzMl90IGxlbjsKKyAgdWludDY0X3Qg
bGVuOwogICBpZiAoIWNic19nZXRfdShjYnMsICZsZW4sIGxlbl9sZW4pKSB7CiAgICAgcmV0dXJu
IDA7CiAgIH0KKyAgLy8gSWYgfGxlbl9sZW58IDw9IDMgdGhlbiB3ZSBrbm93IHRoYXQgfGxlbnwg
d2lsbCBmaXQgaW50byBhIHxzaXplX3R8LCBldmVuIG9uCisgIC8vIDMyLWJpdCBzeXN0ZW1zLgor
ICBhc3NlcnQobGVuX2xlbiA8PSAzKTsKICAgcmV0dXJuIENCU19nZXRfYnl0ZXMoY2JzLCBvdXQs
IGxlbik7CiB9CiAKQEAgLTI3NCw3ICsyOTEsNyBAQCBzdGF0aWMgaW50IGNic19nZXRfYW55X2Fz
bjFfZWxlbWVudChDQlMgKmNicywgQ0JTICpvdXQsIHVuc2lnbmVkICpvdXRfdGFnLAogICAgIC8v
IGVuY29kZSB0aGUgbnVtYmVyIG9mIHN1YnNlcXVlbnQgb2N0ZXRzIHVzZWQgdG8gZW5jb2RlIHRo
ZSBsZW5ndGggKElUVS1UCiAgICAgLy8gWC42OTAgY2xhdXNlIDguMS4zLjUuYikuCiAgICAgY29u
c3Qgc2l6ZV90IG51bV9ieXRlcyA9IGxlbmd0aF9ieXRlICYgMHg3ZjsKLSAgICB1aW50MzJfdCBs
ZW4zMjsKKyAgICB1aW50NjRfdCBsZW42NDsKIAogICAgIGlmIChiZXJfb2sgJiYgKHRhZyAmIENC
U19BU04xX0NPTlNUUlVDVEVEKSAhPSAwICYmIG51bV9ieXRlcyA9PSAwKSB7CiAgICAgICAvLyBp
bmRlZmluaXRlIGxlbmd0aApAQCAtMjkwLDIwICszMDcsMjAgQEAgc3RhdGljIGludCBjYnNfZ2V0
X2FueV9hc24xX2VsZW1lbnQoQ0JTICpjYnMsIENCUyAqb3V0LCB1bnNpZ25lZCAqb3V0X3RhZywK
ICAgICBpZiAobnVtX2J5dGVzID09IDAgfHwgbnVtX2J5dGVzID4gNCkgewogICAgICAgcmV0dXJu
IDA7CiAgICAgfQotICAgIGlmICghY2JzX2dldF91KCZoZWFkZXIsICZsZW4zMiwgbnVtX2J5dGVz
KSkgeworICAgIGlmICghY2JzX2dldF91KCZoZWFkZXIsICZsZW42NCwgbnVtX2J5dGVzKSkgewog
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIC8vIElUVS1UIFguNjkwIHNlY3Rpb24gMTAuMSAo
REVSIGxlbmd0aCBmb3JtcykgcmVxdWlyZXMgZW5jb2RpbmcgdGhlIGxlbmd0aAogICAgIC8vIHdp
dGggdGhlIG1pbmltdW0gbnVtYmVyIG9mIG9jdGV0cy4KLSAgICBpZiAobGVuMzIgPCAxMjgpIHsK
KyAgICBpZiAobGVuNjQgPCAxMjgpIHsKICAgICAgIC8vIExlbmd0aCBzaG91bGQgaGF2ZSB1c2Vk
IHNob3J0LWZvcm0gZW5jb2RpbmcuCiAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgaWYgKChs
ZW4zMiA+PiAoKG51bV9ieXRlcy0xKSo4KSkgPT0gMCkgeworICAgIGlmICgobGVuNjQgPj4gKChu
dW1fYnl0ZXMtMSkqOCkpID09IDApIHsKICAgICAgIC8vIExlbmd0aCBzaG91bGQgaGF2ZSBiZWVu
IGF0IGxlYXN0IG9uZSBieXRlIHNob3J0ZXIuCiAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAg
bGVuID0gbGVuMzI7CisgICAgbGVuID0gbGVuNjQ7CiAgICAgaWYgKGxlbiArIGhlYWRlcl9sZW4g
KyBudW1fYnl0ZXMgPCBsZW4pIHsKICAgICAgIC8vIE92ZXJmbG93LgogICAgICAgcmV0dXJuIDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9hc20vY2hhY2hhLWFybXY0LnBsIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9jaGFjaGEvYXNtL2NoYWNoYS1hcm12NC5wbAppbmRleCAyYTlhN2Q3YjBlM2ViMWFm
ZTNhYjVlNzhmN2NkNzIwOWI5YzQ0NDMzLi4wNmJlM2E2NjQ4MzY3MGYyZGM5NmYxNzVkZTVlNmIw
ZDMwZWQ5ODdlIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9hc20vY2hhY2hhLWFybXY0
LnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vY2hhY2hhL2FzbS9jaGFjaGEtYXJtdjQucGwKQEAgLTExNjEs
NCArMTE2MSw0IEBAIGZvcmVhY2ggKHNwbGl0KCJcbiIsJGNvZGUpKSB7CiAKIAlwcmludCAkXywi
XG4iOwogfQotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2lu
ZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaGFjaGEvYXNtL2NoYWNoYS1hcm12
OC5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vY2hhY2hhL2FzbS9jaGFjaGEtYXJtdjgucGwKaW5kZXggNzc5NWYy
Y2JiZGEwMTlkYzRlZGYxNjJhMjczYzMyMDM2OTA2ZTI0ZC4uOWNhZTI4YzBkZGZlOTJhMGNhNWE4
NjlhMTEyZTRmNmU4YTdjY2JjOCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaGFjaGEvYXNtL2No
YWNoYS1hcm12OC5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9hc20vY2hhY2hhLWFybXY4LnBs
CkBAIC0xMzEsMTIgKzEzMSw2IEBAICRjb2RlLj08PF9fXzsKIC5xdWFkCTB4MzMyMDY0NmU2MTcw
Nzg2NSwweDZiMjA2NTc0Nzk2MjJkMzIJCS8vIGVuZGlhbi1uZXV0cmFsCiAuTG9uZToKIC5sb25n
CTEsMCwwLDAKLS5MT1BFTlNTTF9hcm1jYXBfUDoKLSNpZmRlZglfX0lMUDMyX18KLS5sb25nCU9Q
RU5TU0xfYXJtY2FwX1AtLgotI2Vsc2UKLS5xdWFkCU9QRU5TU0xfYXJtY2FwX1AtLgotI2VuZGlm
CiAuYXNjaXoJIkNoYUNoYTIwIGZvciBBUk12OCwgQ1JZUFRPR0FNUyBieSA8YXBwcm9cQG9wZW5z
c2wub3JnPiIKIAogLnRleHQKQEAgLTE0NiwxMSArMTQwLDE0IEBAICRjb2RlLj08PF9fXzsKIC5h
bGlnbgk1CiBDaGFDaGEyMF9jdHIzMjoKIAljYnoJJGxlbiwuTGFib3J0CisjaWYgX19oYXNfZmVh
dHVyZShod2FkZHJlc3Nfc2FuaXRpemVyKSAmJiBfX2NsYW5nX21ham9yX18gPj0gMTAKKwlhZHJw
CUB4WzBdLDpwZ19oaTIxX25jOk9QRU5TU0xfYXJtY2FwX1AKKyNlbHNlCiAJYWRycAlAeFswXSw6
cGdfaGkyMTpPUEVOU1NMX2FybWNhcF9QCisjZW5kaWYKIAljbXAJJGxlbiwjMTkyCiAJYi5sbwku
THNob3J0Ci0JYWRkCUB4WzBdLEB4WzBdLDpsbzEyOk9QRU5TU0xfYXJtY2FwX1AKLQlsZHIJdzE3
LFtAeFswXV0KKwlsZHIJdzE3LFtAeFswXSw6bG8xMjpPUEVOU1NMX2FybWNhcF9QXQogCXRzdAl3
MTcsI0FSTVY3X05FT04KIAliLm5lCUNoYUNoYTIwX25lb24KIApAQCAtMTEzNCw0ICsxMTMxLDQg
QEAgZm9yZWFjaCAoc3BsaXQoIlxuIiwkY29kZSkpIHsKIAogCXByaW50ICRfLCJcbiI7CiB9Ci1j
bG9zZSBTVERPVVQ7CSMgZmx1c2gKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3Npbmcg
U1RET1VUIjsJIyBmbHVzaApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaGFjaGEvYXNtL2NoYWNo
YS14ODYucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9hc20vY2hhY2hhLXg4Ni5wbAppbmRleCAxZDZh
NGUyYjcwZDQ2NTZkN2UyZmRjMzIwODI2N2Y3NmU0YjAwNDIxLi5lYzFjZjgwMDVjZGRkZTJiMDRk
MDc4Y2VmYzM1ZDkyYmI2MWE0MWYxIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9hc20v
Y2hhY2hhLXg4Ni5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9hc20vY2hhY2hhLXg4Ni5wbApA
QCAtNzY5LDQgKzc2OSw0IEBAIHN1YiBTU1NFM1JPVU5EIHsJIyBjcml0aWNhbCBwYXRoIGlzIDIw
ICJTSU1EIHRpY2tzIiBwZXIgcm91bmQKIAogJmFzbV9maW5pc2goKTsKIAotY2xvc2UgU1RET1VU
OworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9jaGFjaGEvYXNtL2NoYWNoYS14ODZfNjQucGwgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2No
YWNoYS9hc20vY2hhY2hhLXg4Nl82NC5wbAppbmRleCA2YjIwNjVlMDYyYTQ0NDIyZThlY2FjMjMy
OTVkMDAxOTgwODE5NzAwLi5hYjhhMWY3OGEzOTQ0YTJkMWU4N2Q2YzZhMmM5Njg3NDc5ZTdiZjg5
IDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9hc20vY2hhY2hhLXg4Nl82NC5wbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2NoYWNoYS9hc20vY2hhY2hhLXg4Nl82NC5wbApAQCAtMjI4LDYgKzIyOCw3
IEBAICRjb2RlLj08PF9fXzsKIC50eXBlCUNoYUNoYTIwX2N0cjMyLFxAZnVuY3Rpb24sNQogLmFs
aWduCTY0CiBDaGFDaGEyMF9jdHIzMjoKKy5jZmlfc3RhcnRwcm9jCiAJY21wCVwkMCwkbGVuCiAJ
amUJLkxub19kYXRhCiAJbW92CU9QRU5TU0xfaWEzMmNhcF9QKzQoJXJpcCksJXIxMApAQCAtMjQx
LDEyICsyNDIsMTkgQEAgJGNvZGUuPTw8X19fOwogCWpuegkuTENoYUNoYTIwX3Nzc2UzCiAKIAlw
dXNoCSVyYngKKy5jZmlfcHVzaAlyYngKIAlwdXNoCSVyYnAKKy5jZmlfcHVzaAlyYnAKIAlwdXNo
CSVyMTIKKy5jZmlfcHVzaAlyMTIKIAlwdXNoCSVyMTMKKy5jZmlfcHVzaAlyMTMKIAlwdXNoCSVy
MTQKKy5jZmlfcHVzaAlyMTQKIAlwdXNoCSVyMTUKKy5jZmlfcHVzaAlyMTUKIAlzdWIJXCQ2NCsy
NCwlcnNwCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CWA2NCsyNGAKIC5MY3RyMzJfYm9keToKIAog
CSNtb3ZkcWEJLkxzaWdtYSglcmlwKSwleG1tMApAQCAtMzg4LDE0ICszOTYsMjIgQEAgJGNvZGUu
PTw8X19fOwogLkxkb25lOgogCWxlYQk2NCsyNCs0OCglcnNwKSwlcnNpCiAJbW92CS00OCglcnNp
KSwlcjE1CisuY2ZpX3Jlc3RvcmUJcjE1CiAJbW92CS00MCglcnNpKSwlcjE0CisuY2ZpX3Jlc3Rv
cmUJcjE0CiAJbW92CS0zMiglcnNpKSwlcjEzCisuY2ZpX3Jlc3RvcmUJcjEzCiAJbW92CS0yNCgl
cnNpKSwlcjEyCisuY2ZpX3Jlc3RvcmUJcjEyCiAJbW92CS0xNiglcnNpKSwlcmJwCisuY2ZpX3Jl
c3RvcmUJcmJwCiAJbW92CS04KCVyc2kpLCVyYngKKy5jZmlfcmVzdG9yZQlyYngKIAlsZWEJKCVy
c2kpLCVyc3AKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQJYC02NC0yNC00OGAKIC5Mbm9fZGF0YToK
IAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJQ2hhQ2hhMjBfY3RyMzIsLi1DaGFDaGEyMF9jdHIz
MgogX19fCiAKQEAgLTQzNSw3ICs0NTEsOSBAQCAkY29kZS49PDxfX187CiAuYWxpZ24JMzIKIENo
YUNoYTIwX3Nzc2UzOgogLkxDaGFDaGEyMF9zc3NlMzoKKy5jZmlfc3RhcnRwcm9jCiAJbW92CSVy
c3AsJXI5CQkjIGZyYW1lIHBvaW50ZXIKKy5jZmlfZGVmX2NmYV9yZWdpc3RlcglyOQogX19fCiAk
Y29kZS49PDxfX187CiAJY21wCVwkMTI4LCRsZW4JCSMgd2UgbWlnaHQgdGhyb3cgYXdheSBzb21l
IGRhdGEsCkBAIC01NDcsOCArNTY1LDEwIEBAICRjb2RlLj08PF9fXwlpZiAoJHdpbjY0KTsKIF9f
XwogJGNvZGUuPTw8X19fOwogCWxlYQkoJXI5KSwlcnNwCisuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJ
cnNwCiAuTHNzc2UzX2VwaWxvZ3VlOgogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQlDaGFDaGEy
MF9zc3NlMywuLUNoYUNoYTIwX3Nzc2UzCiBfX18KIH0KQEAgLTY5MSw3ICs3MTEsOSBAQCAkY29k
ZS49PDxfX187CiAuYWxpZ24JMzIKIENoYUNoYTIwXzR4OgogLkxDaGFDaGEyMF80eDoKKy5jZmlf
c3RhcnRwcm9jCiAJbW92CQklcnNwLCVyOQkJIyBmcmFtZSBwb2ludGVyCisuY2ZpX2RlZl9jZmFf
cmVnaXN0ZXIJcjkKIAltb3YJCSVyMTAsJXIxMQogX19fCiAkY29kZS49PDxfX18JaWYgKCRhdng+
MSk7CkBAIC0xMTMxLDggKzExNTMsMTAgQEAgJGNvZGUuPTw8X19fCWlmICgkd2luNjQpOwogX19f
CiAkY29kZS49PDxfX187CiAJbGVhCQkoJXI5KSwlcnNwCisuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJ
cnNwCiAuTDR4X2VwaWxvZ3VlOgogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQlDaGFDaGEyMF80
eCwuLUNoYUNoYTIwXzR4CiBfX18KIH0KQEAgLTEyNjYsNyArMTI5MCw5IEBAICRjb2RlLj08PF9f
XzsKIC5hbGlnbgkzMgogQ2hhQ2hhMjBfOHg6CiAuTENoYUNoYTIwXzh4OgorLmNmaV9zdGFydHBy
b2MKIAltb3YJCSVyc3AsJXI5CQkjIGZyYW1lIHJlZ2lzdGVyCisuY2ZpX2RlZl9jZmFfcmVnaXN0
ZXIJcjkKIAlzdWIJCVwkMHgyODArJHhmcmFtZSwlcnNwCiAJYW5kCQlcJC0zMiwlcnNwCiBfX18K
QEAgLTE3NzIsOCArMTc5OCwxMCBAQCAkY29kZS49PDxfX18JaWYgKCR3aW42NCk7CiBfX18KICRj
b2RlLj08PF9fXzsKIAlsZWEJCSglcjkpLCVyc3AKKy5jZmlfZGVmX2NmYV9yZWdpc3Rlcglyc3AK
IC5MOHhfZXBpbG9ndWU6CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCUNoYUNoYTIwXzh4LC4t
Q2hhQ2hhMjBfOHgKIF9fXwogfQpAQCAtMTgxMSw3ICsxODM5LDkgQEAgJGNvZGUuPTw8X19fOwog
LmFsaWduCTMyCiBDaGFDaGEyMF9hdng1MTI6CiAuTENoYUNoYTIwX2F2eDUxMjoKKy5jZmlfc3Rh
cnRwcm9jCiAJbW92CSVyc3AsJXI5CQkjIGZyYW1lIHBvaW50ZXIKKy5jZmlfZGVmX2NmYV9yZWdp
c3RlcglyOQogCWNtcAlcJDUxMiwkbGVuCiAJamEJLkxDaGFDaGEyMF8xNngKIApAQCAtMTk5MSw4
ICsyMDIxLDEwIEBAICRjb2RlLj08PF9fXwlpZiAoJHdpbjY0KTsKIF9fXwogJGNvZGUuPTw8X19f
OwogCWxlYQkoJXI5KSwlcnNwCisuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJcnNwCiAuTGF2eDUxMl9l
cGlsb2d1ZToKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJQ2hhQ2hhMjBfYXZ4NTEyLC4tQ2hh
Q2hhMjBfYXZ4NTEyCiBfX18KIH0KQEAgLTIwNzUsNyArMjEwNyw5IEBAICRjb2RlLj08PF9fXzsK
IC5hbGlnbgkzMgogQ2hhQ2hhMjBfMTZ4OgogLkxDaGFDaGEyMF8xNng6CisuY2ZpX3N0YXJ0cHJv
YwogCW1vdgkJJXJzcCwlcjkJCSMgZnJhbWUgcmVnaXN0ZXIKKy5jZmlfZGVmX2NmYV9yZWdpc3Rl
cglyOQogCXN1YgkJXCQ2NCskeGZyYW1lLCVyc3AKIAlhbmQJCVwkLTY0LCVyc3AKIF9fXwpAQCAt
MjQ5Myw4ICsyNTI3LDEwIEBAICRjb2RlLj08PF9fXwlpZiAoJHdpbjY0KTsKIF9fXwogJGNvZGUu
PTw8X19fOwogCWxlYQkJKCVyOSksJXJzcAorLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCXJzcAogLkwx
NnhfZXBpbG9ndWU6CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCUNoYUNoYTIwXzE2eCwuLUNo
YUNoYTIwXzE2eAogX19fCiB9CkBAIC0yNzQ2LDQgKzI3ODIsNCBAQCBmb3JlYWNoIChzcGxpdCgi
XG4iLCRjb2RlKSkgewogCXByaW50ICRfLCJcbiI7CiB9CiAKLWNsb3NlIFNURE9VVDsKK2Nsb3Nl
IFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vY2hhY2hhL2NoYWNoYS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaGFjaGEvY2hhY2hhLmMKaW5kZXgg
ZWFjNTFhNWE0NmIwNWRkZTE3NDFlZjdhODE5M2YxOTEyZjRiYTM2My4uYjUzOWY5OTg3YzUzZjFl
MWVlMjhkZTk1Yjk2Zjc4ZGNiZWFhM2FiNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaGFjaGEv
Y2hhY2hhLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaGFjaGEvY2hhY2hhLmMKQEAgLTY0LDEzICs2NCw3
IEBAIHZvaWQgQ1JZUFRPX2hjaGFjaGEyMCh1aW50OF90IG91dFszMl0sIGNvbnN0IHVpbnQ4X3Qg
a2V5WzMyXSwKICAgT1BFTlNTTF9tZW1jcHkoJm91dFsxNl0sICZ4WzEyXSwgc2l6ZW9mKHVpbnQz
Ml90KSAqIDQpOwogfQogCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAoZGVmaW5lZChPUEVOU1NMX1g4NikgfHwgZGVmaW5lZChP
UEVOU1NMX1g4Nl82NCkgfHwgXAotICAgICBkZWZpbmVkKE9QRU5TU0xfQVJNKSB8fCBkZWZpbmVk
KE9QRU5TU0xfQUFSQ0g2NCkpCi0KLS8vIENoYUNoYTIwX2N0cjMyIGlzIGRlZmluZWQgaW4gYXNt
L2NoYWNoYS0qLnBsLgotdm9pZCBDaGFDaGEyMF9jdHIzMih1aW50OF90ICpvdXQsIGNvbnN0IHVp
bnQ4X3QgKmluLCBzaXplX3QgaW5fbGVuLAotICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50
MzJfdCBrZXlbOF0sIGNvbnN0IHVpbnQzMl90IGNvdW50ZXJbNF0pOworI2lmIGRlZmluZWQoQ0hB
Q0hBMjBfQVNNKQogCiB2b2lkIENSWVBUT19jaGFjaGFfMjAodWludDhfdCAqb3V0LCBjb25zdCB1
aW50OF90ICppbiwgc2l6ZV90IGluX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1
aW50OF90IGtleVszMl0sIGNvbnN0IHVpbnQ4X3Qgbm9uY2VbMTJdLApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9jaGFjaGEvY2hhY2hhX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9jaGFjaGFf
dGVzdC5jYwppbmRleCBhNDA2NTNmYTYxYTVhYzliODIyZWMxOGMxZDlhOThhNWZmNzdjZjY2Li4y
NTMxM2NhZDZkNDM1MzhiMDVjMWE1OTEzZDgxYjVjYzkyY2E4YzJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL2NoYWNoYS9jaGFjaGFfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9jaGFj
aGFfdGVzdC5jYwpAQCAtMjMsNyArMjMsOSBAQAogI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+
CiAjaW5jbHVkZSA8b3BlbnNzbC9jaGFjaGEuaD4KIAorI2luY2x1ZGUgImludGVybmFsLmgiCiAj
aW5jbHVkZSAiLi4vaW50ZXJuYWwuaCIKKyNpbmNsdWRlICIuLi90ZXN0L2FiaV90ZXN0LmgiCiAj
aW5jbHVkZSAiLi4vdGVzdC90ZXN0X3V0aWwuaCIKIAogCkBAIC0yMzQsMyArMjM2LDI1IEBAIFRF
U1QoQ2hhQ2hhVGVzdCwgVGVzdFZlY3RvcikgewogICAgIEVYUEVDVF9FUShCeXRlcyhrT3V0cHV0
LCBsZW4pLCBCeXRlcyhidWYuZ2V0KCksIGxlbikpOwogICB9CiB9CisKKyNpZiBkZWZpbmVkKENI
QUNIQTIwX0FTTSkgJiYgZGVmaW5lZChTVVBQT1JUU19BQklfVEVTVCkKK1RFU1QoQ2hhQ2hhVGVz
dCwgQUJJKSB7CisgIHVpbnQzMl90IGtleVs4XTsKKyAgT1BFTlNTTF9tZW1jcHkoa2V5LCBrS2V5
LCBzaXplb2Yoa2V5KSk7CisKKyAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtDb3VudGVyTm9uY2Vb
NF0gPSB7MH07CisKKyAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gYnVmKG5ldyB1aW50OF90
W3NpemVvZihrSW5wdXQpXSk7CisgIGZvciAoc2l6ZV90IGxlbiA9IDA7IGxlbiA8PSAzMjsgbGVu
KyspIHsKKyAgICBTQ09QRURfVFJBQ0UobGVuKTsKKyAgICBDSEVDS19BQkkoQ2hhQ2hhMjBfY3Ry
MzIsIGJ1Zi5nZXQoKSwga0lucHV0LCBsZW4sIGtleSwga0NvdW50ZXJOb25jZSk7CisgIH0KKwor
ICBmb3IgKHNpemVfdCBsZW4gOiB7MzIgKiAyLCAzMiAqIDQsIDMyICogOCwgMzIgKiAxNiwgMzIg
KiAyNH0pIHsKKyAgICBTQ09QRURfVFJBQ0UobGVuKTsKKyAgICBDSEVDS19BQkkoQ2hhQ2hhMjBf
Y3RyMzIsIGJ1Zi5nZXQoKSwga0lucHV0LCBsZW4sIGtleSwga0NvdW50ZXJOb25jZSk7CisgICAg
Ly8gQ292ZXIgdGhlIHBhcnRpYWwgYmxvY2sgcGF0aHMuCisgICAgQ0hFQ0tfQUJJKENoYUNoYTIw
X2N0cjMyLCBidWYuZ2V0KCksIGtJbnB1dCwgbGVuICsgMTUsIGtleSwga0NvdW50ZXJOb25jZSk7
CisgIH0KK30KKyNlbmRpZiAgLy8gQ0hBQ0hBMjBfQVNNICYmIFNVUFBPUlRTX0FCSV9URVNUCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NoYWNoYS9pbnRlcm5hbC5oIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaGFj
aGEvaW50ZXJuYWwuaAppbmRleCA1YTQ5ODExOWJjM2RjYTc3YmU3NWQ0MGE1MDViNjQ2YWY4NmNk
M2MyLi4xNDM1ZTNiMDFlNmFlYzM2MWMyNDA4OTZkN2JkZjU1NmZiYmRhYjUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2NoYWNoYS9pbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vY2hhY2hhL2lu
dGVybmFsLmgKQEAgLTI3LDYgKzI3LDE2IEBAIGV4dGVybiAiQyIgewogdm9pZCBDUllQVE9faGNo
YWNoYTIwKHVpbnQ4X3Qgb3V0WzMyXSwgY29uc3QgdWludDhfdCBrZXlbMzJdLAogICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qgbm9uY2VbMTZdKTsKIAorI2lmICFkZWZpbmVkKE9Q
RU5TU0xfTk9fQVNNKSAmJiAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGRlZmluZWQo
T1BFTlNTTF9YODYpIHx8IGRlZmluZWQoT1BFTlNTTF9YODZfNjQpIHx8IFwKKyAgICAgZGVmaW5l
ZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpKQorI2RlZmluZSBDSEFD
SEEyMF9BU00KKworLy8gQ2hhQ2hhMjBfY3RyMzIgaXMgZGVmaW5lZCBpbiBhc20vY2hhY2hhLSou
cGwuCit2b2lkIENoYUNoYTIwX2N0cjMyKHVpbnQ4X3QgKm91dCwgY29uc3QgdWludDhfdCAqaW4s
IHNpemVfdCBpbl9sZW4sCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IGtleVs4
XSwgY29uc3QgdWludDMyX3QgY291bnRlcls0XSk7CisjZW5kaWYKKwogCiAjaWYgZGVmaW5lZChf
X2NwbHVzcGx1cykKIH0gIC8vIGV4dGVybiBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NpcGhl
cl9leHRyYS9hZWFkX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NpcGhlcl9leHRyYS9hZWFkX3Rlc3Qu
Y2MKaW5kZXggZmZmN2Q0Mzk3MzAzNjc4MGRhYmYyNjAyMjA5MWFhNDJiNWRmNzNlMS4uMjU5MjRi
ZDVkZTM2MzRlZGI4N2JiOGM1ZmMwYzM4N2M2MjZkNThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9jaXBoZXJfZXh0cmEvYWVhZF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vY2lwaGVyX2V4dHJh
L2FlYWRfdGVzdC5jYwpAQCAtNDIsNTggKzQyLDU4IEBAIHN0cnVjdCBLbm93bkFFQUQgewogICAv
LyB0cnVuY2F0ZWRfdGFncyBpcyB0cnVlIGlmIHRoZSBBRUFEIHN1cHBvcnRzIHRydW5jYXRpbmcg
dGFncyB0byBhcmJpdHJhcnkKICAgLy8gbGVuZ3Rocy4KICAgYm9vbCB0cnVuY2F0ZWRfdGFnczsK
KyAgLy8gdmFyaWFibGVfbm9uY2UgaXMgdHJ1ZSBpZiB0aGUgQUVBRCBzdXBwb3J0cyBhIHZhcmlh
YmxlIG5vbmNlIGxlbmd0aC4KKyAgYm9vbCB2YXJpYWJsZV9ub25jZTsKICAgLy8gYWRfbGVuLCBp
ZiBub24temVybywgaXMgdGhlIHJlcXVpcmVkIGxlbmd0aCBvZiB0aGUgQUQuCiAgIHNpemVfdCBh
ZF9sZW47CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IEtub3duQUVBRCBrQUVBRHNbXSA9IHsK
ICAgICB7IkFFU18xMjhfR0NNIiwgRVZQX2FlYWRfYWVzXzEyOF9nY20sICJhZXNfMTI4X2djbV90
ZXN0cy50eHQiLCBmYWxzZSwgdHJ1ZSwKLSAgICAgMH0sCisgICAgIHRydWUsIDB9LAogICAgIHsi
QUVTXzEyOF9HQ01fTklTVCIsIEVWUF9hZWFkX2Flc18xMjhfZ2NtLCAibmlzdF9jYXZwL2Flc18x
MjhfZ2NtLnR4dCIsCi0gICAgIGZhbHNlLCB0cnVlLCAwfSwKKyAgICAgZmFsc2UsIHRydWUsIHRy
dWUsIDB9LAogICAgIHsiQUVTXzI1Nl9HQ00iLCBFVlBfYWVhZF9hZXNfMjU2X2djbSwgImFlc18y
NTZfZ2NtX3Rlc3RzLnR4dCIsIGZhbHNlLCB0cnVlLAotICAgICAwfSwKKyAgICAgdHJ1ZSwgMH0s
CiAgICAgeyJBRVNfMjU2X0dDTV9OSVNUIiwgRVZQX2FlYWRfYWVzXzI1Nl9nY20sICJuaXN0X2Nh
dnAvYWVzXzI1Nl9nY20udHh0IiwKLSAgICAgZmFsc2UsIHRydWUsIDB9LAotI2lmICFkZWZpbmVk
KE9QRU5TU0xfU01BTEwpCisgICAgIGZhbHNlLCB0cnVlLCB0cnVlLCAwfSwKICAgICB7IkFFU18x
MjhfR0NNX1NJViIsIEVWUF9hZWFkX2Flc18xMjhfZ2NtX3NpdiwgImFlc18xMjhfZ2NtX3Npdl90
ZXN0cy50eHQiLAotICAgICBmYWxzZSwgZmFsc2UsIDB9LAorICAgICBmYWxzZSwgZmFsc2UsIGZh
bHNlLCAwfSwKICAgICB7IkFFU18yNTZfR0NNX1NJViIsIEVWUF9hZWFkX2Flc18yNTZfZ2NtX3Np
diwgImFlc18yNTZfZ2NtX3Npdl90ZXN0cy50eHQiLAotICAgICBmYWxzZSwgZmFsc2UsIDB9LAot
I2VuZGlmCisgICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDB9LAogICAgIHsiQ2hhQ2hhMjBQb2x5
MTMwNSIsIEVWUF9hZWFkX2NoYWNoYTIwX3BvbHkxMzA1LAotICAgICAiY2hhY2hhMjBfcG9seTEz
MDVfdGVzdHMudHh0IiwgZmFsc2UsIHRydWUsIDB9LAorICAgICAiY2hhY2hhMjBfcG9seTEzMDVf
dGVzdHMudHh0IiwgZmFsc2UsIHRydWUsIGZhbHNlLCAwfSwKICAgICB7IlhDaGFDaGEyMFBvbHkx
MzA1IiwgRVZQX2FlYWRfeGNoYWNoYTIwX3BvbHkxMzA1LAotICAgICAieGNoYWNoYTIwX3BvbHkx
MzA1X3Rlc3RzLnR4dCIsIGZhbHNlLCB0cnVlLCAwfSwKKyAgICAgInhjaGFjaGEyMF9wb2x5MTMw
NV90ZXN0cy50eHQiLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIDB9LAogICAgIHsiQUVTXzEyOF9DQkNf
U0hBMV9UTFMiLCBFVlBfYWVhZF9hZXNfMTI4X2NiY19zaGExX3RscywKLSAgICAgImFlc18xMjhf
Y2JjX3NoYTFfdGxzX3Rlc3RzLnR4dCIsIHRydWUsIGZhbHNlLCAxMX0sCisgICAgICJhZXNfMTI4
X2NiY19zaGExX3Rsc190ZXN0cy50eHQiLCB0cnVlLCBmYWxzZSwgZmFsc2UsIDExfSwKICAgICB7
IkFFU18xMjhfQ0JDX1NIQTFfVExTSW1wbGljaXRJViIsCiAgICAgIEVWUF9hZWFkX2Flc18xMjhf
Y2JjX3NoYTFfdGxzX2ltcGxpY2l0X2l2LAotICAgICAiYWVzXzEyOF9jYmNfc2hhMV90bHNfaW1w
bGljaXRfaXZfdGVzdHMudHh0IiwgdHJ1ZSwgZmFsc2UsIDExfSwKKyAgICAgImFlc18xMjhfY2Jj
X3NoYTFfdGxzX2ltcGxpY2l0X2l2X3Rlc3RzLnR4dCIsIHRydWUsIGZhbHNlLCBmYWxzZSwgMTF9
LAogICAgIHsiQUVTXzEyOF9DQkNfU0hBMjU2X1RMUyIsIEVWUF9hZWFkX2Flc18xMjhfY2JjX3No
YTI1Nl90bHMsCi0gICAgICJhZXNfMTI4X2NiY19zaGEyNTZfdGxzX3Rlc3RzLnR4dCIsIHRydWUs
IGZhbHNlLCAxMX0sCisgICAgICJhZXNfMTI4X2NiY19zaGEyNTZfdGxzX3Rlc3RzLnR4dCIsIHRy
dWUsIGZhbHNlLCBmYWxzZSwgMTF9LAogICAgIHsiQUVTXzI1Nl9DQkNfU0hBMV9UTFMiLCBFVlBf
YWVhZF9hZXNfMjU2X2NiY19zaGExX3RscywKLSAgICAgImFlc18yNTZfY2JjX3NoYTFfdGxzX3Rl
c3RzLnR4dCIsIHRydWUsIGZhbHNlLCAxMX0sCisgICAgICJhZXNfMjU2X2NiY19zaGExX3Rsc190
ZXN0cy50eHQiLCB0cnVlLCBmYWxzZSwgZmFsc2UsIDExfSwKICAgICB7IkFFU18yNTZfQ0JDX1NI
QTFfVExTSW1wbGljaXRJViIsCiAgICAgIEVWUF9hZWFkX2Flc18yNTZfY2JjX3NoYTFfdGxzX2lt
cGxpY2l0X2l2LAotICAgICAiYWVzXzI1Nl9jYmNfc2hhMV90bHNfaW1wbGljaXRfaXZfdGVzdHMu
dHh0IiwgdHJ1ZSwgZmFsc2UsIDExfSwKKyAgICAgImFlc18yNTZfY2JjX3NoYTFfdGxzX2ltcGxp
Y2l0X2l2X3Rlc3RzLnR4dCIsIHRydWUsIGZhbHNlLCBmYWxzZSwgMTF9LAogICAgIHsiQUVTXzI1
Nl9DQkNfU0hBMjU2X1RMUyIsIEVWUF9hZWFkX2Flc18yNTZfY2JjX3NoYTI1Nl90bHMsCi0gICAg
ICJhZXNfMjU2X2NiY19zaGEyNTZfdGxzX3Rlc3RzLnR4dCIsIHRydWUsIGZhbHNlLCAxMX0sCisg
ICAgICJhZXNfMjU2X2NiY19zaGEyNTZfdGxzX3Rlc3RzLnR4dCIsIHRydWUsIGZhbHNlLCBmYWxz
ZSwgMTF9LAogICAgIHsiQUVTXzI1Nl9DQkNfU0hBMzg0X1RMUyIsIEVWUF9hZWFkX2Flc18yNTZf
Y2JjX3NoYTM4NF90bHMsCi0gICAgICJhZXNfMjU2X2NiY19zaGEzODRfdGxzX3Rlc3RzLnR4dCIs
IHRydWUsIGZhbHNlLCAxMX0sCisgICAgICJhZXNfMjU2X2NiY19zaGEzODRfdGxzX3Rlc3RzLnR4
dCIsIHRydWUsIGZhbHNlLCBmYWxzZSwgMTF9LAogICAgIHsiREVTX0VERTNfQ0JDX1NIQTFfVExT
IiwgRVZQX2FlYWRfZGVzX2VkZTNfY2JjX3NoYTFfdGxzLAotICAgICAiZGVzX2VkZTNfY2JjX3No
YTFfdGxzX3Rlc3RzLnR4dCIsIHRydWUsIGZhbHNlLCAxMX0sCisgICAgICJkZXNfZWRlM19jYmNf
c2hhMV90bHNfdGVzdHMudHh0IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAxMX0sCiAgICAgeyJERVNf
RURFM19DQkNfU0hBMV9UTFNJbXBsaWNpdElWIiwKICAgICAgRVZQX2FlYWRfZGVzX2VkZTNfY2Jj
X3NoYTFfdGxzX2ltcGxpY2l0X2l2LAotICAgICAiZGVzX2VkZTNfY2JjX3NoYTFfdGxzX2ltcGxp
Y2l0X2l2X3Rlc3RzLnR4dCIsIHRydWUsIGZhbHNlLCAxMX0sCisgICAgICJkZXNfZWRlM19jYmNf
c2hhMV90bHNfaW1wbGljaXRfaXZfdGVzdHMudHh0IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAxMX0s
CiAgICAgeyJBRVNfMTI4X0NUUl9ITUFDX1NIQTI1NiIsIEVWUF9hZWFkX2Flc18xMjhfY3RyX2ht
YWNfc2hhMjU2LAotICAgICAiYWVzXzEyOF9jdHJfaG1hY19zaGEyNTYudHh0IiwgZmFsc2UsIHRy
dWUsIDB9LAorICAgICAiYWVzXzEyOF9jdHJfaG1hY19zaGEyNTYudHh0IiwgZmFsc2UsIHRydWUs
IGZhbHNlLCAwfSwKICAgICB7IkFFU18yNTZfQ1RSX0hNQUNfU0hBMjU2IiwgRVZQX2FlYWRfYWVz
XzI1Nl9jdHJfaG1hY19zaGEyNTYsCi0gICAgICJhZXNfMjU2X2N0cl9obWFjX3NoYTI1Ni50eHQi
LCBmYWxzZSwgdHJ1ZSwgMH0sCisgICAgICJhZXNfMjU2X2N0cl9obWFjX3NoYTI1Ni50eHQiLCBm
YWxzZSwgdHJ1ZSwgZmFsc2UsIDB9LAogICAgIHsiQUVTXzEyOF9DQ01fQkxVRVRPT1RIIiwgRVZQ
X2FlYWRfYWVzXzEyOF9jY21fYmx1ZXRvb3RoLAotICAgICAiYWVzXzEyOF9jY21fYmx1ZXRvb3Ro
X3Rlc3RzLnR4dCIsIGZhbHNlLCBmYWxzZSwgMH0sCisgICAgICJhZXNfMTI4X2NjbV9ibHVldG9v
dGhfdGVzdHMudHh0IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMH0sCiAgICAgeyJBRVNfMTI4X0ND
TV9CTFVFVE9PVEhfOCIsIEVWUF9hZWFkX2Flc18xMjhfY2NtX2JsdWV0b290aF84LAotICAgICAi
YWVzXzEyOF9jY21fYmx1ZXRvb3RoXzhfdGVzdHMudHh0IiwgZmFsc2UsIGZhbHNlLCAwfSwKKyAg
ICAgImFlc18xMjhfY2NtX2JsdWV0b290aF84X3Rlc3RzLnR4dCIsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIDB9LAogfTsKIAogY2xhc3MgUGVyQUVBRFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdp
dGhQYXJhbTxLbm93bkFFQUQ+IHsKQEAgLTEwMSw5ICsxMDEsOSBAQCBjbGFzcyBQZXJBRUFEVGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPEtub3duQUVBRD4gewogICBjb25zdCBF
VlBfQUVBRCAqYWVhZCgpIHsgcmV0dXJuIEdldFBhcmFtKCkuZnVuYygpOyB9CiB9OwogCi1JTlNU
QU5USUFURV9URVNUX0NBU0VfUCgsIFBlckFFQURUZXN0LCB0ZXN0aW5nOjpWYWx1ZXNJbihrQUVB
RHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3QgdGVzdGluZzo6VGVzdFBhcmFt
SW5mbzxLbm93bkFFQUQ+ICZwYXJhbXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g
c3RkOjpzdHJpbmcgeyByZXR1cm4gcGFyYW1zLnBhcmFtLm5hbWU7IH0pOworSU5TVEFOVElBVEVf
VEVTVF9TVUlURV9QKCwgUGVyQUVBRFRlc3QsIHRlc3Rpbmc6OlZhbHVlc0luKGtBRUFEcyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3QgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxL
bm93bkFFQUQ+ICZwYXJhbXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IHN0ZDo6
c3RyaW5nIHsgcmV0dXJuIHBhcmFtcy5wYXJhbS5uYW1lOyB9KTsKIAogLy8gVGVzdHMgYW4gQUVB
RCBhZ2FpbnN0IGEgc2VyaWVzIG9mIHRlc3QgdmVjdG9ycyBmcm9tIGEgZmlsZSwgdXNpbmcgdGhl
CiAvLyBGaWxlVGVzdCBmb3JtYXQuIEFzIGFuIGV4YW1wbGUsIGhlcmUncyBhIHZhbGlkIHRlc3Qg
Y2FzZToKQEAgLTYwNyw1MCArNjA3LDU5IEBAIFRFU1RfUChQZXJBRUFEVGVzdCwgT3ZlcmZsb3cp
IHsKICAgLy8gYXMgdGhlIGlucHV0LikKIH0KIAotLy8gVGVzdCB0aGF0IEVWUF9hZWFkX2Flc18x
MjhfZ2NtIGFuZCBFVlBfYWVhZF9hZXNfMjU2X2djbSByZWplY3QgZW1wdHkgbm9uY2VzLgotLy8g
QUVTLUdDTSBpcyBub3QgZGVmaW5lZCBmb3IgdGhvc2UuCi1URVNUKEFFQURUZXN0LCBBRVNHQ01F
bXB0eU5vbmNlKSB7Ci0gIHN0YXRpYyBjb25zdCB1aW50OF90IGtaZXJvc1szMl0gPSB7MH07CitU
RVNUX1AoUGVyQUVBRFRlc3QsIEludmFsaWROb25jZUxlbmd0aCkgeworICBzaXplX3QgdmFsaWRf
bm9uY2VfbGVuID0gRVZQX0FFQURfbm9uY2VfbGVuZ3RoKGFlYWQoKSk7CisgIHN0ZDo6dmVjdG9y
PHNpemVfdD4gbm9uY2VfbGVuczsKKyAgaWYgKHZhbGlkX25vbmNlX2xlbiAhPSAwKSB7CisgICAg
Ly8gT3RoZXIgdGhhbiB0aGUgaW1wbGljaXQgSVYgVExTICJBRUFEInMsIG5vbmUgb2Ygb3VyIEFF
QURzIGFsbG93IGVtcHR5CisgICAgLy8gbm9uY2VzLiBJbiBwYXJ0aWN1bGFyLCBhbHRob3VnaCBB
RVMtR0NNIHdhcyBpbmNvcnJlY3RseSBzcGVjaWZpZWQgd2l0aAorICAgIC8vIHZhcmlhYmxlLWxl
bmd0aCBub25jZXMsIGl0IGRvZXMgbm90IGFsbG93IHRoZSBlbXB0eSBub25jZS4KKyAgICBub25j
ZV9sZW5zLnB1c2hfYmFjaygwKTsKKyAgfQorICBpZiAoIUdldFBhcmFtKCkudmFyaWFibGVfbm9u
Y2UpIHsKKyAgICBub25jZV9sZW5zLnB1c2hfYmFjayh2YWxpZF9ub25jZV9sZW4gKyAxKTsKKyAg
ICBpZiAodmFsaWRfbm9uY2VfbGVuICE9IDApIHsKKyAgICAgIG5vbmNlX2xlbnMucHVzaF9iYWNr
KHZhbGlkX25vbmNlX2xlbiAtIDEpOworICAgIH0KKyAgfQogCi0gIC8vIFRlc3QgQUVTLTEyOC1H
Q00uCi0gIHVpbnQ4X3QgYnVmWzE2XTsKLSAgc2l6ZV90IGxlbjsKLSAgYnNzbDo6U2NvcGVkRVZQ
X0FFQURfQ1RYIGN0eDsKLSAgQVNTRVJUX1RSVUUoRVZQX0FFQURfQ1RYX2luaXQoY3R4LmdldCgp
LCBFVlBfYWVhZF9hZXNfMTI4X2djbSgpLCBrWmVyb3MsIDE2LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFVlBfQUVBRF9ERUZBVUxUX1RBR19MRU5HVEgsIG51bGxwdHIpKTsKKyAg
c3RhdGljIGNvbnN0IHVpbnQ4X3Qga1plcm9zW0VWUF9BRUFEX01BWF9LRVlfTEVOR1RIXSA9IHsw
fTsKKyAgY29uc3Qgc2l6ZV90IGFkX2xlbiA9IEdldFBhcmFtKCkuYWRfbGVuICE9IDAgPyBHZXRQ
YXJhbSgpLmFkX2xlbiA6IDE2OworICBBU1NFUlRfTEUoYWRfbGVuLCBzaXplb2Yoa1plcm9zKSk7
CiAKLSAgRVhQRUNUX0ZBTFNFKEVWUF9BRUFEX0NUWF9zZWFsKGN0eC5nZXQoKSwgYnVmLCAmbGVu
LCBzaXplb2YoYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIg
Lyogbm9uY2UgKi8sIDAsIG51bGxwdHIgLyogaW4gKi8sIDAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBudWxscHRyIC8qIGFkICovLCAwKSk7Ci0gIHVpbnQzMl90IGVyciA9IEVS
Ul9nZXRfZXJyb3IoKTsKLSAgRVhQRUNUX0VRKEVSUl9MSUJfQ0lQSEVSLCBFUlJfR0VUX0xJQihl
cnIpKTsKLSAgRVhQRUNUX0VRKENJUEhFUl9SX0lOVkFMSURfTk9OQ0VfU0laRSwgRVJSX0dFVF9S
RUFTT04oZXJyKSk7Ci0KLSAgRVhQRUNUX0ZBTFNFKEVWUF9BRUFEX0NUWF9vcGVuKGN0eC5nZXQo
KSwgYnVmLCAmbGVuLCBzaXplb2YoYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG51bGxwdHIgLyogbm9uY2UgKi8sIDAsIGtaZXJvcyAvKiBpbiAqLywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrWmVyb3MpLCBudWxscHRyIC8qIGFkICovLCAw
KSk7Ci0gIGVyciA9IEVSUl9nZXRfZXJyb3IoKTsKLSAgRVhQRUNUX0VRKEVSUl9MSUJfQ0lQSEVS
LCBFUlJfR0VUX0xJQihlcnIpKTsKLSAgRVhQRUNUX0VRKENJUEhFUl9SX0lOVkFMSURfTk9OQ0Vf
U0laRSwgRVJSX0dFVF9SRUFTT04oZXJyKSk7Ci0KLSAgLy8gVGVzdCBBRVMtMjU2LUdDTS4KLSAg
Y3R4LlJlc2V0KCk7Ci0gIEFTU0VSVF9UUlVFKEVWUF9BRUFEX0NUWF9pbml0KGN0eC5nZXQoKSwg
RVZQX2FlYWRfYWVzXzI1Nl9nY20oKSwga1plcm9zLCAzMiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRVZQX0FFQURfREVGQVVMVF9UQUdfTEVOR1RILCBudWxscHRyKSk7CisgIGZv
ciAoc2l6ZV90IG5vbmNlX2xlbiA6IG5vbmNlX2xlbnMpIHsKKyAgICBTQ09QRURfVFJBQ0Uobm9u
Y2VfbGVuKTsKKyAgICB1aW50OF90IGJ1ZlsyNTZdOworICAgIHNpemVfdCBsZW47CisgICAgc3Rk
Ojp2ZWN0b3I8dWludDhfdD4gbm9uY2Uobm9uY2VfbGVuKTsKKyAgICBic3NsOjpTY29wZWRFVlBf
QUVBRF9DVFggY3R4OworICAgIEFTU0VSVF9UUlVFKEVWUF9BRUFEX0NUWF9pbml0X3dpdGhfZGly
ZWN0aW9uKAorICAgICAgICBjdHguZ2V0KCksIGFlYWQoKSwga1plcm9zLCBFVlBfQUVBRF9rZXlf
bGVuZ3RoKGFlYWQoKSksCisgICAgICAgIEVWUF9BRUFEX0RFRkFVTFRfVEFHX0xFTkdUSCwgZXZw
X2FlYWRfc2VhbCkpOworCisgICAgRVhQRUNUX0ZBTFNFKEVWUF9BRUFEX0NUWF9zZWFsKGN0eC5n
ZXQoKSwgYnVmLCAmbGVuLCBzaXplb2YoYnVmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm9uY2UuZGF0YSgpLCBub25jZS5zaXplKCksIG51bGxwdHIgLyogaW4gKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGtaZXJvcyAvKiBhZCAqLywgYWRf
bGVuKSk7CisgICAgdWludDMyX3QgZXJyID0gRVJSX2dldF9lcnJvcigpOworICAgIEVYUEVDVF9F
UShFUlJfTElCX0NJUEhFUiwgRVJSX0dFVF9MSUIoZXJyKSk7CisgICAgLy8gVE9ETyhkYXZpZGJl
bik6IE1lcmdlIHRoZXNlIGVycm9ycy4gaHR0cHM6Ly9jcmJ1Zy5jb20vYm9yaW5nc3NsLzEyOS4K
KyAgICBpZiAoRVJSX0dFVF9SRUFTT04oZXJyKSAhPSBDSVBIRVJfUl9VTlNVUFBPUlRFRF9OT05D
RV9TSVpFKSB7CisgICAgICBFWFBFQ1RfRVEoQ0lQSEVSX1JfSU5WQUxJRF9OT05DRV9TSVpFLCBF
UlJfR0VUX1JFQVNPTihlcnIpKTsKKyAgICB9CiAKLSAgRVhQRUNUX0ZBTFNFKEVWUF9BRUFEX0NU
WF9zZWFsKGN0eC5nZXQoKSwgYnVmLCAmbGVuLCBzaXplb2YoYnVmKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG51bGxwdHIgLyogbm9uY2UgKi8sIDAsIG51bGxwdHIgLyogaW4g
Ki8sIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyIC8qIGFkICov
LCAwKSk7Ci0gIGVyciA9IEVSUl9nZXRfZXJyb3IoKTsKLSAgRVhQRUNUX0VRKEVSUl9MSUJfQ0lQ
SEVSLCBFUlJfR0VUX0xJQihlcnIpKTsKLSAgRVhQRUNUX0VRKENJUEhFUl9SX0lOVkFMSURfTk9O
Q0VfU0laRSwgRVJSX0dFVF9SRUFTT04oZXJyKSk7Ci0KLSAgRVhQRUNUX0ZBTFNFKEVWUF9BRUFE
X0NUWF9vcGVuKGN0eC5nZXQoKSwgYnVmLCAmbGVuLCBzaXplb2YoYnVmKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIgLyogbm9uY2UgKi8sIDAsIGtaZXJvcyAvKiBp
biAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrWmVyb3MpLCBu
dWxscHRyIC8qIGFkICovLCAwKSk7Ci0gIGVyciA9IEVSUl9nZXRfZXJyb3IoKTsKLSAgRVhQRUNU
X0VRKEVSUl9MSUJfQ0lQSEVSLCBFUlJfR0VUX0xJQihlcnIpKTsKLSAgRVhQRUNUX0VRKENJUEhF
Ul9SX0lOVkFMSURfTk9OQ0VfU0laRSwgRVJSX0dFVF9SRUFTT04oZXJyKSk7CisgICAgY3R4LlJl
c2V0KCk7CisgICAgQVNTRVJUX1RSVUUoRVZQX0FFQURfQ1RYX2luaXRfd2l0aF9kaXJlY3Rpb24o
CisgICAgICAgIGN0eC5nZXQoKSwgYWVhZCgpLCBrWmVyb3MsIEVWUF9BRUFEX2tleV9sZW5ndGgo
YWVhZCgpKSwKKyAgICAgICAgRVZQX0FFQURfREVGQVVMVF9UQUdfTEVOR1RILCBldnBfYWVhZF9v
cGVuKSk7CisgICAgRVhQRUNUX0ZBTFNFKEVWUF9BRUFEX0NUWF9vcGVuKGN0eC5nZXQoKSwgYnVm
LCAmbGVuLCBzaXplb2YoYnVmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm9uY2UuZGF0YSgpLCBub25jZS5zaXplKCksIGtaZXJvcyAvKiBpbiAqLywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtaZXJvcyksIGtaZXJvcyAvKiBhZCAqLywg
YWRfbGVuKSk7CisgICAgZXJyID0gRVJSX2dldF9lcnJvcigpOworICAgIEVYUEVDVF9FUShFUlJf
TElCX0NJUEhFUiwgRVJSX0dFVF9MSUIoZXJyKSk7CisgICAgaWYgKEVSUl9HRVRfUkVBU09OKGVy
cikgIT0gQ0lQSEVSX1JfVU5TVVBQT1JURURfTk9OQ0VfU0laRSkgeworICAgICAgRVhQRUNUX0VR
KENJUEhFUl9SX0lOVkFMSURfTk9OQ0VfU0laRSwgRVJSX0dFVF9SRUFTT04oZXJyKSk7CisgICAg
fQorICB9CiB9CiAKIFRFU1QoQUVBRFRlc3QsIEFFU0NDTUxhcmdlQUQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL2FzbS9hZXMxMjhnY21zaXYteDg2XzY0LnBsIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9jaXBoZXJfZXh0cmEvYXNtL2FlczEyOGdjbXNpdi14ODZfNjQucGwKaW5kZXggMWEz
ZDA2NGUwM2MzYjFlNDc3MmQyYjZlODIyMDBmNjE1NDdjNjNjZi4uNTRmMGI1Y2IwZGZiMDUzNWMw
NTBjNmNhMjEwZWMxNDdhZTYzZDc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0
cmEvYXNtL2FlczEyOGdjbXNpdi14ODZfNjQucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0
cmEvYXNtL2FlczEyOGdjbXNpdi14ODZfNjQucGwKQEAgLTIyNTMsNCArMjI1Myw0IEBAIGFlczI1
NmdjbXNpdl9rZGYoKTsKIAogcHJpbnQgJGNvZGU7CiAKLWNsb3NlIFNURE9VVDsKK2Nsb3NlIFNU
RE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vY2lwaGVyX2V4dHJhL2FzbS9jaGFjaGEyMF9wb2x5MTMwNV94ODZfNjQucGwgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2NpcGhlcl9leHRyYS9hc20vY2hhY2hhMjBfcG9seTEzMDVfeDg2XzY0LnBsCmluZGV4IDBl
MzIyNzk4ZTlkNTEwOWJkODY5MjMwNzQ1MzE5NTAzMWY1OWRiM2IuLmViZjQ1NjMxYTM0OTAzNzUz
ODQ5OTk1N2U5YjIwYTFhNGI1M2VmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vY2lwaGVyX2V4
dHJhL2FzbS9jaGFjaGEyMF9wb2x5MTMwNV94ODZfNjQucGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBo
ZXJfZXh0cmEvYXNtL2NoYWNoYTIwX3BvbHkxMzA1X3g4Nl82NC5wbApAQCAtMjQ3OCw2ICsyNDc4
LDcgQEAgaWYgKCEkd2luNjQpIHsKICAgcHJpbnQgJGNvZGU7CiB9IGVsc2UgewogICBwcmludCA8
PF9fXzsKKy50ZXh0CiAuZ2xvYmwgZHVtbXlfY2hhY2hhMjBfcG9seTEzMDVfYXNtCiAudHlwZSBk
dW1teV9jaGFjaGEyMF9wb2x5MTMwNV9hc20sXEBhYmktb21uaXBvdGVudAogZHVtbXlfY2hhY2hh
MjBfcG9seTEzMDVfYXNtOgpAQCAtMjQ4NSw0ICsyNDg2LDQgQEAgZHVtbXlfY2hhY2hhMjBfcG9s
eTEzMDVfYXNtOgogX19fCiB9CiAKLWNsb3NlIFNURE9VVDsKK2Nsb3NlIFNURE9VVCBvciBkaWUg
ImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vY2lwaGVyX2V4
dHJhL2NpcGhlcl9leHRyYS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvY2lwaGVyX2V4dHJh
LmMKaW5kZXggMWIyM2FkMzJmOGNmZjJhMDA1MTJiYTU4ZDI0YjQ3YjYyOGU3OTIwYy4uYjEzMjI2
NWJjMTAzNjU4ZGJhM2RlNmUwYzNkYzUwZDM2MzRkYTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9jaXBoZXJfZXh0cmEvY2lwaGVyX2V4dHJhLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0
cmEvY2lwaGVyX2V4dHJhLmMKQEAgLTEyOSw2ICsxMjksMTQgQEAgY29uc3QgRVZQX0NJUEhFUiAq
RVZQX2dldF9jaXBoZXJieW5hbWUoY29uc3QgY2hhciAqbmFtZSkgewogICAgIHJldHVybiBFVlBf
YWVzXzE5Ml9vZmIoKTsKICAgfSBlbHNlIGlmIChPUEVOU1NMX3N0cmNhc2VjbXAobmFtZSwgImFl
cy0yNTYtb2ZiIikgPT0gMCkgewogICAgIHJldHVybiBFVlBfYWVzXzI1Nl9vZmIoKTsKKyAgfSBl
bHNlIGlmIChPUEVOU1NMX3N0cmNhc2VjbXAobmFtZSwgImRlcy1lY2IiKSA9PSAwKSB7CisgICAg
cmV0dXJuIEVWUF9kZXNfZWNiKCk7CisgIH0gZWxzZSBpZiAoT1BFTlNTTF9zdHJjYXNlY21wKG5h
bWUsICJkZXMtZWRlIikgPT0gMCkgeworICAgIHJldHVybiBFVlBfZGVzX2VkZSgpOworICB9IGVs
c2UgaWYgKE9QRU5TU0xfc3RyY2FzZWNtcChuYW1lLCAiZGVzLWVkZS1jYmMiKSA9PSAwKSB7Cisg
ICAgcmV0dXJuIEVWUF9kZXNfZWRlX2NiYygpOworICB9IGVsc2UgaWYgKE9QRU5TU0xfc3RyY2Fz
ZWNtcChuYW1lLCAicmMyLWNiYyIpID09IDApIHsKKyAgICByZXR1cm4gRVZQX3JjMl9jYmMoKTsK
ICAgfQogCiAgIHJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0
cmEvY2lwaGVyX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NpcGhlcl9leHRyYS9jaXBoZXJfdGVzdC5j
YwppbmRleCA2MmVmOTM5Njc1YjVhZmQ3MGMxNmI2OGM5NjE2ODE3NjNlYjc5OGE3Li4wYTk2YmYz
OWZlZDY0MWNkOWRiZWFjYzg2NWM2OGY0Y2Q2NzhhYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2NpcGhlcl9leHRyYS9jaXBoZXJfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NpcGhlcl9leHRy
YS9jaXBoZXJfdGVzdC5jYwpAQCAtMTUwLDcgKzE1MCw4IEBAIHN0YXRpYyBib29sIERvQ2lwaGVy
KEVWUF9DSVBIRVJfQ1RYICpjdHgsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICpvdXQsCiB9CiAKIHN0
YXRpYyB2b2lkIFRlc3RPcGVyYXRpb24oRmlsZVRlc3QgKnQsIGNvbnN0IEVWUF9DSVBIRVIgKmNp
cGhlciwgYm9vbCBlbmNyeXB0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY2h1
bmtfc2l6ZSwgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJmtleSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBjb3B5LCBzaXplX3QgY2h1bmtfc2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJmtleSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJml2LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAmcGxhaW50ZXh0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAmY2lw
aGVydGV4dCwKQEAgLTE2Nyw0NSArMTY4LDUyIEBAIHN0YXRpYyB2b2lkIFRlc3RPcGVyYXRpb24o
RmlsZVRlc3QgKnQsIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlciwgYm9vbCBlbmNyeXB0LAogCiAg
IGJvb2wgaXNfYWVhZCA9IEVWUF9DSVBIRVJfbW9kZShjaXBoZXIpID09IEVWUF9DSVBIX0dDTV9N
T0RFOwogCi0gIGJzc2w6OlNjb3BlZEVWUF9DSVBIRVJfQ1RYIGN0eDsKLSAgQVNTRVJUX1RSVUUo
RVZQX0NpcGhlckluaXRfZXgoY3R4LmdldCgpLCBjaXBoZXIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdCA/IDEgOiAwKSk7CisgIGJz
c2w6OlNjb3BlZEVWUF9DSVBIRVJfQ1RYIGN0eDE7CisgIEFTU0VSVF9UUlVFKEVWUF9DaXBoZXJJ
bml0X2V4KGN0eDEuZ2V0KCksIGNpcGhlciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdCA/IDEgOiAwKSk7CiAgIGlmICh0
LT5IYXNBdHRyaWJ1dGUoIklWIikpIHsKICAgICBpZiAoaXNfYWVhZCkgewotICAgICAgQVNTRVJU
X1RSVUUoRVZQX0NJUEhFUl9DVFhfY3RybChjdHguZ2V0KCksIEVWUF9DVFJMX0FFQURfU0VUX0lW
TEVOLAorICAgICAgQVNTRVJUX1RSVUUoRVZQX0NJUEhFUl9DVFhfY3RybChjdHgxLmdldCgpLCBF
VlBfQ1RSTF9BRUFEX1NFVF9JVkxFTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXYuc2l6ZSgpLCAwKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgIEFTU0VSVF9FUShpdi5z
aXplKCksIEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0aChjdHguZ2V0KCkpKTsKKyAgICAgIEFTU0VS
VF9FUShpdi5zaXplKCksIEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0aChjdHgxLmdldCgpKSk7CiAg
ICAgfQogICB9CisKKyAgYnNzbDo6U2NvcGVkRVZQX0NJUEhFUl9DVFggY3R4MjsKKyAgRVZQX0NJ
UEhFUl9DVFggKmN0eCA9IGN0eDEuZ2V0KCk7CisgIGlmIChjb3B5KSB7CisgICAgQVNTRVJUX1RS
VUUoRVZQX0NJUEhFUl9DVFhfY29weShjdHgyLmdldCgpLCBjdHgxLmdldCgpKSk7CisgICAgY3R4
ID0gY3R4Mi5nZXQoKTsKKyAgfQorCiAgIGlmIChpc19hZWFkICYmICFlbmNyeXB0KSB7Ci0gICAg
QVNTRVJUX1RSVUUoRVZQX0NJUEhFUl9DVFhfY3RybChjdHguZ2V0KCksIEVWUF9DVFJMX0FFQURf
U0VUX1RBRywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZy5zaXplKCks
CisgICAgQVNTRVJUX1RSVUUoRVZQX0NJUEhFUl9DVFhfY3RybChjdHgsIEVWUF9DVFJMX0FFQURf
U0VUX1RBRywgdGFnLnNpemUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0X2Nhc3Q8dWludDhfdCAqPih0YWcuZGF0YSgpKSkpOwogICB9CiAgIC8vIFRoZSBjaXBo
ZXJzIGFyZSBydW4gd2l0aCBubyBwYWRkaW5nLiBGb3IgZWFjaCBvZiB0aGUgY2lwaGVycyB3ZSB0
ZXN0LCB0aGUKICAgLy8gb3V0cHV0IHNpemUgbWF0Y2hlcyB0aGUgaW5wdXQgc2l6ZS4KICAgQVNT
RVJUX0VRKGluLT5zaXplKCksIG91dC0+c2l6ZSgpKTsKLSAgQVNTRVJUX1RSVUUoRVZQX0NJUEhF
Ul9DVFhfc2V0X2tleV9sZW5ndGgoY3R4LmdldCgpLCBrZXkuc2l6ZSgpKSk7Ci0gIEFTU0VSVF9U
UlVFKEVWUF9DaXBoZXJJbml0X2V4KGN0eC5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwga2V5LmRh
dGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYuZGF0YSgpLCAtMSkpOwor
ICBBU1NFUlRfVFJVRShFVlBfQ0lQSEVSX0NUWF9zZXRfa2V5X2xlbmd0aChjdHgsIGtleS5zaXpl
KCkpKTsKKyAgQVNTRVJUX1RSVUUoCisgICAgICBFVlBfQ2lwaGVySW5pdF9leChjdHgsIG51bGxw
dHIsIG51bGxwdHIsIGtleS5kYXRhKCksIGl2LmRhdGEoKSwgLTEpKTsKICAgLy8gTm90ZTogdGhl
IGRlcHJlY2F0ZWQgfEVWUF9DSVBIRVJ8LWJhc2VkIEFFQUQgQVBJIGlzIHNlbnNpdGl2ZSB0byB3
aGV0aGVyCiAgIC8vIHBhcmFtZXRlcnMgYXJlIE5VTEwsIHNvIGl0IGlzIGltcG9ydGFudCB0byBz
a2lwIHRoZSB8aW58IGFuZCB8YWFkfAogICAvLyB8RVZQX0NpcGhlclVwZGF0ZXwgY2FsbHMgd2hl
biBlbXB0eS4KICAgaWYgKCFhYWQuZW1wdHkoKSkgewogICAgIGludCB1bnVzZWQ7CiAgICAgQVNT
RVJUX1RSVUUoCi0gICAgICAgIEVWUF9DaXBoZXJVcGRhdGUoY3R4LmdldCgpLCBudWxscHRyLCAm
dW51c2VkLCBhYWQuZGF0YSgpLCBhYWQuc2l6ZSgpKSk7CisgICAgICAgIEVWUF9DaXBoZXJVcGRh
dGUoY3R4LCBudWxscHRyLCAmdW51c2VkLCBhYWQuZGF0YSgpLCBhYWQuc2l6ZSgpKSk7CiAgIH0K
LSAgQVNTRVJUX1RSVUUoRVZQX0NJUEhFUl9DVFhfc2V0X3BhZGRpbmcoY3R4LmdldCgpLCAwKSk7
CisgIEFTU0VSVF9UUlVFKEVWUF9DSVBIRVJfQ1RYX3NldF9wYWRkaW5nKGN0eCwgMCkpOwogICBz
dGQ6OnZlY3Rvcjx1aW50OF90PiByZXN1bHQ7Ci0gIEFTU0VSVF9UUlVFKERvQ2lwaGVyKGN0eC5n
ZXQoKSwgJnJlc3VsdCwgKmluLCBjaHVua19zaXplKSk7CisgIEFTU0VSVF9UUlVFKERvQ2lwaGVy
KGN0eCwgJnJlc3VsdCwgKmluLCBjaHVua19zaXplKSk7CiAgIEVYUEVDVF9FUShCeXRlcygqb3V0
KSwgQnl0ZXMocmVzdWx0KSk7CiAgIGlmIChlbmNyeXB0ICYmIGlzX2FlYWQpIHsKICAgICB1aW50
OF90IHJ0YWdbMTZdOwogICAgIEFTU0VSVF9MRSh0YWcuc2l6ZSgpLCBzaXplb2YocnRhZykpOwot
ICAgIEFTU0VSVF9UUlVFKEVWUF9DSVBIRVJfQ1RYX2N0cmwoY3R4LmdldCgpLCBFVlBfQ1RSTF9B
RUFEX0dFVF9UQUcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcuc2l6
ZSgpLCBydGFnKSk7CisgICAgQVNTRVJUX1RSVUUoCisgICAgICAgIEVWUF9DSVBIRVJfQ1RYX2N0
cmwoY3R4LCBFVlBfQ1RSTF9BRUFEX0dFVF9UQUcsIHRhZy5zaXplKCksIHJ0YWcpKTsKICAgICBF
WFBFQ1RfRVEoQnl0ZXModGFnKSwgQnl0ZXMocnRhZywgdGFnLnNpemUoKSkpOwogICB9CiB9CkBA
IC0yNTIsMTQgKzI2MCwxOCBAQCBzdGF0aWMgdm9pZCBUZXN0Q2lwaGVyKEZpbGVUZXN0ICp0KSB7
CiAgICAgLy8gQnkgZGVmYXVsdCwgYm90aCBkaXJlY3Rpb25zIGFyZSBydW4sIHVubGVzcyBvdmVy
cmlkZGVuIGJ5IHRoZSBvcGVyYXRpb24uCiAgICAgaWYgKG9wZXJhdGlvbiAhPSBrRGVjcnlwdCkg
ewogICAgICAgU0NPUEVEX1RSQUNFKCJlbmNyeXB0Iik7Ci0gICAgICBUZXN0T3BlcmF0aW9uKHQs
IGNpcGhlciwgdHJ1ZSAvKiBlbmNyeXB0ICovLCBjaHVua19zaXplLCBrZXksIGl2LAotICAgICAg
ICAgICAgICAgICAgICBwbGFpbnRleHQsIGNpcGhlcnRleHQsIGFhZCwgdGFnKTsKKyAgICAgIFRl
c3RPcGVyYXRpb24odCwgY2lwaGVyLCB0cnVlIC8qIGVuY3J5cHQgKi8sIGZhbHNlIC8qIG5vIGNv
cHkgKi8sCisgICAgICAgICAgICAgICAgICAgIGNodW5rX3NpemUsIGtleSwgaXYsIHBsYWludGV4
dCwgY2lwaGVydGV4dCwgYWFkLCB0YWcpOworICAgICAgVGVzdE9wZXJhdGlvbih0LCBjaXBoZXIs
IHRydWUgLyogZW5jcnlwdCAqLywgdHJ1ZSAvKiBjb3B5ICovLCBjaHVua19zaXplLAorICAgICAg
ICAgICAgICAgICAgICBrZXksIGl2LCBwbGFpbnRleHQsIGNpcGhlcnRleHQsIGFhZCwgdGFnKTsK
ICAgICB9CiAKICAgICBpZiAob3BlcmF0aW9uICE9IGtFbmNyeXB0KSB7CiAgICAgICBTQ09QRURf
VFJBQ0UoImRlY3J5cHQiKTsKLSAgICAgIFRlc3RPcGVyYXRpb24odCwgY2lwaGVyLCBmYWxzZSAv
KiBkZWNyeXB0ICovLCBjaHVua19zaXplLCBrZXksIGl2LAotICAgICAgICAgICAgICAgICAgICBw
bGFpbnRleHQsIGNpcGhlcnRleHQsIGFhZCwgdGFnKTsKKyAgICAgIFRlc3RPcGVyYXRpb24odCwg
Y2lwaGVyLCBmYWxzZSAvKiBkZWNyeXB0ICovLCBmYWxzZSAvKiBubyBjb3B5ICovLAorICAgICAg
ICAgICAgICAgICAgICBjaHVua19zaXplLCBrZXksIGl2LCBwbGFpbnRleHQsIGNpcGhlcnRleHQs
IGFhZCwgdGFnKTsKKyAgICAgIFRlc3RPcGVyYXRpb24odCwgY2lwaGVyLCBmYWxzZSAvKiBkZWNy
eXB0ICovLCB0cnVlIC8qIGNvcHkgKi8sIGNodW5rX3NpemUsCisgICAgICAgICAgICAgICAgICAg
IGtleSwgaXYsIHBsYWludGV4dCwgY2lwaGVydGV4dCwgYWFkLCB0YWcpOwogICAgIH0KICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvZV9hZXNjY20uYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vY2lwaGVyX2V4dHJhL2VfYWVzY2NtLmMKaW5kZXggM2UxODY1OTM1OGY0OTM2ODE4NjQ1
MTJkZGVkNmFmMzllN2RhYTJjOS4uZTllOWUxNmUxNWM5Y2JkMzllOGU0ZjZmMWU0ZDZiOTE3ZjU1
N2M2OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvZV9hZXNjY20uYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2NpcGhlcl9leHRyYS9lX2Flc2NjbS5jCkBAIC0xLDIxICsxLDU2IEBACi0v
KiBDb3B5cmlnaHQgKGMpIDIwMTgsIEdvb2dsZSBJbmMuCisvKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogQ29w
eXJpZ2h0IChjKSAyMDA4IFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmli
dXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQotICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVl
IGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4K
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgogICoKLSAqIFRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FS
UkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElN
UExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFMLCBE
SVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMK
LSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklU
UywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9U
SEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJT04g
V0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKyAqICAg
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJp
YWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMKKyAqICAgIHNvZnR3YXJlIG11
c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50OgorICogICAgIlRoaXMgcHJv
ZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIE9wZW5TU0wgUHJvamVjdAor
ICogICAgZm9yIHVzZSBpbiB0aGUgT3BlblNTTCBUb29sa2l0LiAoaHR0cDovL3d3dy5vcGVuc3Ns
Lm9yZy8pIgorICoKKyAqIDQuIFRoZSBuYW1lcyAiT3BlblNTTCBUb29sa2l0IiBhbmQgIk9wZW5T
U0wgUHJvamVjdCIgbXVzdCBub3QgYmUgdXNlZCB0bworICogICAgZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqICAgIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRh
Y3QKKyAqICAgIG9wZW5zc2wtY29yZUBvcGVuc3NsLm9yZy4KKyAqCisgKiA1LiBQcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAiT3BlblNTTCIKKyAq
ICAgIG5vciBtYXkgIk9wZW5TU0wiIGFwcGVhciBpbiB0aGVpciBuYW1lcyB3aXRob3V0IHByaW9y
IHdyaXR0ZW4KKyAqICAgIHBlcm1pc3Npb24gb2YgdGhlIE9wZW5TU0wgUHJvamVjdC4KKyAqCisg
KiA2LiBSZWRpc3RyaWJ1dGlvbnMgb2YgYW55IGZvcm0gd2hhdHNvZXZlciBtdXN0IHJldGFpbiB0
aGUgZm9sbG93aW5nCisgKiAgICBhY2tub3dsZWRnbWVudDoKKyAqICAgICJUaGlzIHByb2R1Y3Qg
aW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKKyAqICAg
IGZvciB1c2UgaW4gdGhlIE9wZW5TU0wgVG9vbGtpdCAoaHR0cDovL3d3dy5vcGVuc3NsLm9yZy8p
IgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIE9wZW5TU0wgUFJPSkVD
VCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTU0VEIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIE9wZW5TU0wgUFJPSkVD
VCBPUgorICogSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCisgKiBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VECisgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSAqLwogCiAjaW5jbHVkZSA8b3BlbnNzbC9hZWFkLmg+CiAKICNpbmNs
dWRlIDxhc3NlcnQuaD4KIAorI2luY2x1ZGUgPG9wZW5zc2wvY3B1Lmg+CiAjaW5jbHVkZSA8b3Bl
bnNzbC9jaXBoZXIuaD4KICNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgogI2luY2x1ZGUgPG9wZW5z
c2wvbWVtLmg+CkBAIC0yMyw2ICs1OCwyMTMgQEAKICNpbmNsdWRlICIuLi9maXBzbW9kdWxlL2Np
cGhlci9pbnRlcm5hbC5oIgogCiAKK3N0cnVjdCBjY20xMjhfY29udGV4dCB7CisgIGJsb2NrMTI4
X2YgYmxvY2s7CisgIGN0cjEyOF9mIGN0cjsKKyAgdW5zaWduZWQgTSwgTDsKK307CisKK3N0cnVj
dCBjY20xMjhfc3RhdGUgeworICB1bmlvbiB7CisgICAgdWludDY0X3QgdVsyXTsKKyAgICB1aW50
OF90IGNbMTZdOworICB9IG5vbmNlLCBjbWFjOworfTsKKworc3RhdGljIGludCBDUllQVE9fY2Nt
MTI4X2luaXQoc3RydWN0IGNjbTEyOF9jb250ZXh0ICpjdHgsIGNvbnN0IEFFU19LRVkgKmtleSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrMTI4X2YgYmxvY2ssIGN0cjEyOF9m
IGN0ciwgdW5zaWduZWQgTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IEwpIHsKKyAgaWYgKE0gPCA0IHx8IE0gPiAxNiB8fCAoTSAmIDEpICE9IDAgfHwgTCA8IDIgfHwg
TCA+IDgpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorICBjdHgtPmJsb2NrID0gYmxvY2s7CisgIGN0
eC0+Y3RyID0gY3RyOworICBjdHgtPk0gPSBNOworICBjdHgtPkwgPSBMOworICByZXR1cm4gMTsK
K30KKworc3RhdGljIHNpemVfdCBDUllQVE9fY2NtMTI4X21heF9pbnB1dChjb25zdCBzdHJ1Y3Qg
Y2NtMTI4X2NvbnRleHQgKmN0eCkgeworICByZXR1cm4gY3R4LT5MID49IHNpemVvZihzaXplX3Qp
ID8gKHNpemVfdCktMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKCgoc2l6
ZV90KTEpIDw8IChjdHgtPkwgKiA4KSkgLSAxOworfQorCitzdGF0aWMgaW50IGNjbTEyOF9pbml0
X3N0YXRlKGNvbnN0IHN0cnVjdCBjY20xMjhfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgY2NtMTI4X3N0YXRlICpzdGF0ZSwgY29uc3QgQUVTX0tFWSAq
a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpub25jZSwg
c2l6ZV90IG5vbmNlX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu
dDhfdCAqYWFkLCBzaXplX3QgYWFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IHBsYWludGV4dF9sZW4pIHsKKyAgY29uc3QgYmxvY2sxMjhfZiBibG9jayA9IGN0eC0+
YmxvY2s7CisgIGNvbnN0IHVuc2lnbmVkIE0gPSBjdHgtPk07CisgIGNvbnN0IHVuc2lnbmVkIEwg
PSBjdHgtPkw7CisKKyAgLy8gfEx8IGRldGVybWluZXMgdGhlIGV4cGVjdGVkIHxub25jZV9sZW58
IGFuZCB0aGUgbGltaXQgZm9yIHxwbGFpbnRleHRfbGVufC4KKyAgaWYgKHBsYWludGV4dF9sZW4g
PiBDUllQVE9fY2NtMTI4X21heF9pbnB1dChjdHgpIHx8CisgICAgICBub25jZV9sZW4gIT0gMTUg
LSBMKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKworICAvLyBBc3NlbWJsZSB0aGUgZmlyc3QgYmxv
Y2sgZm9yIGNvbXB1dGluZyB0aGUgTUFDLgorICBPUEVOU1NMX21lbXNldChzdGF0ZSwgMCwgc2l6
ZW9mKCpzdGF0ZSkpOworICBzdGF0ZS0+bm9uY2UuY1swXSA9ICh1aW50OF90KSgoTCAtIDEpIHwg
KChNIC0gMikgLyAyKSA8PCAzKTsKKyAgaWYgKGFhZF9sZW4gIT0gMCkgeworICAgIHN0YXRlLT5u
b25jZS5jWzBdIHw9IDB4NDA7ICAvLyBTZXQgQUFEIEZsYWcKKyAgfQorICBPUEVOU1NMX21lbWNw
eSgmc3RhdGUtPm5vbmNlLmNbMV0sIG5vbmNlLCBub25jZV9sZW4pOworICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgTDsgaSsrKSB7CisgICAgc3RhdGUtPm5vbmNlLmNbMTUgLSBpXSA9ICh1aW50
OF90KShwbGFpbnRleHRfbGVuID4+ICg4ICogaSkpOworICB9CisKKyAgKCpibG9jaykoc3RhdGUt
Pm5vbmNlLmMsIHN0YXRlLT5jbWFjLmMsIGtleSk7CisgIHNpemVfdCBibG9ja3MgPSAxOworCisg
IGlmIChhYWRfbGVuICE9IDApIHsKKyAgICB1bnNpZ25lZCBpOworICAgIC8vIENhc3QgdG8gdTY0
IHRvIGF2b2lkIHRoZSBjb21waWxlciBjb21wbGFpbmluZyBhYm91dCBpbnZhbGlkIHNoaWZ0cy4K
KyAgICB1aW50NjRfdCBhYWRfbGVuX3U2NCA9IGFhZF9sZW47CisgICAgaWYgKGFhZF9sZW5fdTY0
IDwgMHgxMDAwMCAtIDB4MTAwKSB7CisgICAgICBzdGF0ZS0+Y21hYy5jWzBdIF49ICh1aW50OF90
KShhYWRfbGVuX3U2NCA+PiA4KTsKKyAgICAgIHN0YXRlLT5jbWFjLmNbMV0gXj0gKHVpbnQ4X3Qp
YWFkX2xlbl91NjQ7CisgICAgICBpID0gMjsKKyAgICB9IGVsc2UgaWYgKGFhZF9sZW5fdTY0IDw9
IDB4ZmZmZmZmZmYpIHsKKyAgICAgIHN0YXRlLT5jbWFjLmNbMF0gXj0gMHhmZjsKKyAgICAgIHN0
YXRlLT5jbWFjLmNbMV0gXj0gMHhmZTsKKyAgICAgIHN0YXRlLT5jbWFjLmNbMl0gXj0gKHVpbnQ4
X3QpKGFhZF9sZW5fdTY0ID4+IDI0KTsKKyAgICAgIHN0YXRlLT5jbWFjLmNbM10gXj0gKHVpbnQ4
X3QpKGFhZF9sZW5fdTY0ID4+IDE2KTsKKyAgICAgIHN0YXRlLT5jbWFjLmNbNF0gXj0gKHVpbnQ4
X3QpKGFhZF9sZW5fdTY0ID4+IDgpOworICAgICAgc3RhdGUtPmNtYWMuY1s1XSBePSAodWludDhf
dClhYWRfbGVuX3U2NDsKKyAgICAgIGkgPSA2OworICAgIH0gZWxzZSB7CisgICAgICBzdGF0ZS0+
Y21hYy5jWzBdIF49IDB4ZmY7CisgICAgICBzdGF0ZS0+Y21hYy5jWzFdIF49IDB4ZmY7CisgICAg
ICBzdGF0ZS0+Y21hYy5jWzJdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiA1Nik7CisgICAg
ICBzdGF0ZS0+Y21hYy5jWzNdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiA0OCk7CisgICAg
ICBzdGF0ZS0+Y21hYy5jWzRdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiA0MCk7CisgICAg
ICBzdGF0ZS0+Y21hYy5jWzVdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiAzMik7CisgICAg
ICBzdGF0ZS0+Y21hYy5jWzZdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiAyNCk7CisgICAg
ICBzdGF0ZS0+Y21hYy5jWzddIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiAxNik7CisgICAg
ICBzdGF0ZS0+Y21hYy5jWzhdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiA4KTsKKyAgICAg
IHN0YXRlLT5jbWFjLmNbOV0gXj0gKHVpbnQ4X3QpYWFkX2xlbl91NjQ7CisgICAgICBpID0gMTA7
CisgICAgfQorCisgICAgZG8geworICAgICAgZm9yICg7IGkgPCAxNiAmJiBhYWRfbGVuICE9IDA7
IGkrKykgeworICAgICAgICBzdGF0ZS0+Y21hYy5jW2ldIF49ICphYWQ7CisgICAgICAgIGFhZCsr
OworICAgICAgICBhYWRfbGVuLS07CisgICAgICB9CisgICAgICAoKmJsb2NrKShzdGF0ZS0+Y21h
Yy5jLCBzdGF0ZS0+Y21hYy5jLCBrZXkpOworICAgICAgYmxvY2tzKys7CisgICAgICBpID0gMDsK
KyAgICB9IHdoaWxlIChhYWRfbGVuICE9IDApOworICB9CisKKyAgLy8gUGVyIFJGQyAzNjEwLCBz
ZWN0aW9uIDIuNiwgdGhlIHRvdGFsIG51bWJlciBvZiBibG9jayBjaXBoZXIgb3BlcmF0aW9ucyBk
b25lCisgIC8vIG11c3Qgbm90IGV4Y2VlZCAyXjYxLiBUaGVyZSBhcmUgdHdvIGJsb2NrIGNpcGhl
ciBvcGVyYXRpb25zIHJlbWFpbmluZyBwZXIKKyAgLy8gbWVzc2FnZSBibG9jaywgcGx1cyBvbmUg
YmxvY2sgYXQgdGhlIGVuZCB0byBlbmNyeXB0IHRoZSBNQUMuCisgIHNpemVfdCByZW1haW5pbmdf
YmxvY2tzID0gMiAqICgocGxhaW50ZXh0X2xlbiArIDE1KSAvIDE2KSArIDE7CisgIGlmIChwbGFp
bnRleHRfbGVuICsgMTUgPCBwbGFpbnRleHRfbGVuIHx8CisgICAgICByZW1haW5pbmdfYmxvY2tz
ICsgYmxvY2tzIDwgYmxvY2tzIHx8CisgICAgICAodWludDY0X3QpIHJlbWFpbmluZ19ibG9ja3Mg
KyBibG9ja3MgPiBVSU5UNjRfQygxKSA8PCA2MSkgeworICAgIHJldHVybiAwOworICB9CisKKyAg
Ly8gQXNzZW1ibGUgdGhlIGZpcnN0IGJsb2NrIGZvciBlbmNyeXB0aW5nIGFuZCBkZWNyeXB0aW5n
LiBUaGUgYm90dG9tIHxMfAorICAvLyBieXRlcyBhcmUgcmVwbGFjZWQgd2l0aCBhIGNvdW50ZXIg
YW5kIGFsbCBiaXQgdGhlIGVuY29kaW5nIG9mIHxMfCBpcworICAvLyBjbGVhcmVkIGluIHRoZSBm
aXJzdCBieXRlLgorICBzdGF0ZS0+bm9uY2UuY1swXSAmPSA3OworICByZXR1cm4gMTsKK30KKwor
c3RhdGljIGludCBjY20xMjhfZW5jcnlwdChjb25zdCBzdHJ1Y3QgY2NtMTI4X2NvbnRleHQgKmN0
eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNjbTEyOF9zdGF0ZSAqc3RhdGUs
IGNvbnN0IEFFU19LRVkgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAq
b3V0LCBjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGxlbikgeworICAvLyBUaGUgY291bnRlciBm
b3IgZW5jcnlwdGlvbiBiZWdpbnMgYXQgb25lLgorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y3R4LT5MOyBpKyspIHsKKyAgICBzdGF0ZS0+bm9uY2UuY1sxNSAtIGldID0gMDsKKyAgfQorICBz
dGF0ZS0+bm9uY2UuY1sxNV0gPSAxOworCisgIHVpbnQ4X3QgcGFydGlhbF9idWZbMTZdOworICB1
bnNpZ25lZCBudW0gPSAwOworICBpZiAoY3R4LT5jdHIgIT0gTlVMTCkgeworICAgIENSWVBUT19j
dHIxMjhfZW5jcnlwdF9jdHIzMihpbiwgb3V0LCBsZW4sIGtleSwgc3RhdGUtPm5vbmNlLmMsIHBh
cnRpYWxfYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbnVtLCBjdHgtPmN0
cik7CisgIH0gZWxzZSB7CisgICAgQ1JZUFRPX2N0cjEyOF9lbmNyeXB0KGluLCBvdXQsIGxlbiwg
a2V5LCBzdGF0ZS0+bm9uY2UuYywgcGFydGlhbF9idWYsICZudW0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIGN0eC0+YmxvY2spOworICB9CisgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50
IGNjbTEyOF9jb21wdXRlX21hYyhjb25zdCBzdHJ1Y3QgY2NtMTI4X2NvbnRleHQgKmN0eCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjY20xMjhfc3RhdGUgKnN0YXRlLCBj
b25zdCBBRVNfS0VZICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90
ICpvdXRfdGFnLCBzaXplX3QgdGFnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHVpbnQ4X3QgKmluLCBzaXplX3QgbGVuKSB7CisgIGJsb2NrMTI4X2YgYmxvY2sgPSBj
dHgtPmJsb2NrOworICBpZiAodGFnX2xlbiAhPSBjdHgtPk0pIHsKKyAgICByZXR1cm4gMDsKKyAg
fQorCisgIC8vIEluY29ycG9yYXRlIHxpbnwgaW50byB0aGUgTUFDLgorICB1bmlvbiB7CisgICAg
dWludDY0X3QgdVsyXTsKKyAgICB1aW50OF90IGNbMTZdOworICB9IHRtcDsKKyAgd2hpbGUgKGxl
biA+PSAxNikgeworICAgIE9QRU5TU0xfbWVtY3B5KHRtcC5jLCBpbiwgMTYpOworICAgIHN0YXRl
LT5jbWFjLnVbMF0gXj0gdG1wLnVbMF07CisgICAgc3RhdGUtPmNtYWMudVsxXSBePSB0bXAudVsx
XTsKKyAgICAoKmJsb2NrKShzdGF0ZS0+Y21hYy5jLCBzdGF0ZS0+Y21hYy5jLCBrZXkpOworICAg
IGluICs9IDE2OworICAgIGxlbiAtPSAxNjsKKyAgfQorICBpZiAobGVuID4gMCkgeworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgIHN0YXRlLT5jbWFjLmNbaV0g
Xj0gaW5baV07CisgICAgfQorICAgICgqYmxvY2spKHN0YXRlLT5jbWFjLmMsIHN0YXRlLT5jbWFj
LmMsIGtleSk7CisgIH0KKworICAvLyBFbmNyeXB0IHRoZSBNQUMgd2l0aCBjb3VudGVyIHplcm8u
CisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdHgtPkw7IGkrKykgeworICAgIHN0YXRlLT5u
b25jZS5jWzE1IC0gaV0gPSAwOworICB9CisgICgqYmxvY2spKHN0YXRlLT5ub25jZS5jLCB0bXAu
Yywga2V5KTsKKyAgc3RhdGUtPmNtYWMudVswXSBePSB0bXAudVswXTsKKyAgc3RhdGUtPmNtYWMu
dVsxXSBePSB0bXAudVsxXTsKKworICBPUEVOU1NMX21lbWNweShvdXRfdGFnLCBzdGF0ZS0+Y21h
Yy5jLCB0YWdfbGVuKTsKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgQ1JZUFRPX2NjbTEy
OF9lbmNyeXB0KGNvbnN0IHN0cnVjdCBjY20xMjhfY29udGV4dCAqY3R4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90ICpvdXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRfdGFnLCBzaXplX3Qg
dGFnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qg
Km5vbmNlLCBzaXplX3Qgbm9uY2VfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCB1aW50OF90ICphYWQsIHNpemVfdCBhYWRfbGVuKSB7CisgIHN0cnVj
dCBjY20xMjhfc3RhdGUgc3RhdGU7CisgIHJldHVybiBjY20xMjhfaW5pdF9zdGF0ZShjdHgsICZz
dGF0ZSwga2V5LCBub25jZSwgbm9uY2VfbGVuLCBhYWQsIGFhZF9sZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZW4pICYmCisgICAgICAgICBjY20xMjhfY29tcHV0ZV9tYWMoY3R4LCAm
c3RhdGUsIGtleSwgb3V0X3RhZywgdGFnX2xlbiwgaW4sIGxlbikgJiYKKyAgICAgICAgIGNjbTEy
OF9lbmNyeXB0KGN0eCwgJnN0YXRlLCBrZXksIG91dCwgaW4sIGxlbik7Cit9CisKK3N0YXRpYyBp
bnQgQ1JZUFRPX2NjbTEyOF9kZWNyeXB0KGNvbnN0IHN0cnVjdCBjY20xMjhfY29udGV4dCAqY3R4
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5LCB1
aW50OF90ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpv
dXRfdGFnLCBzaXplX3QgdGFnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHVpbnQ4X3QgKm5vbmNlLCBzaXplX3Qgbm9uY2VfbGVuLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBsZW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICphYWQsIHNpemVfdCBhYWRf
bGVuKSB7CisgIHN0cnVjdCBjY20xMjhfc3RhdGUgc3RhdGU7CisgIHJldHVybiBjY20xMjhfaW5p
dF9zdGF0ZShjdHgsICZzdGF0ZSwga2V5LCBub25jZSwgbm9uY2VfbGVuLCBhYWQsIGFhZF9sZW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4pICYmCisgICAgICAgICBjY20xMjhfZW5j
cnlwdChjdHgsICZzdGF0ZSwga2V5LCBvdXQsIGluLCBsZW4pICYmCisgICAgICAgICBjY20xMjhf
Y29tcHV0ZV9tYWMoY3R4LCAmc3RhdGUsIGtleSwgb3V0X3RhZywgdGFnX2xlbiwgb3V0LCBsZW4p
OworfQorCiAjZGVmaW5lIEVWUF9BRUFEX0FFU19DQ01fTUFYX1RBR19MRU4gMTYKIAogc3RydWN0
IGFlYWRfYWVzX2NjbV9jdHggewpAQCAtMzAsNyArMjcyLDcgQEAgc3RydWN0IGFlYWRfYWVzX2Nj
bV9jdHggewogICAgIGRvdWJsZSBhbGlnbjsKICAgICBBRVNfS0VZIGtzOwogICB9IGtzOwotICBD
Q00xMjhfQ09OVEVYVCBjY207CisgIHN0cnVjdCBjY20xMjhfY29udGV4dCBjY207CiB9OwogCiBP
UEVOU1NMX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKCgoRVZQX0FFQURfQ1RYICopTlVMTCktPnN0YXRl
KSA+PQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvZV9hZXNnY21zaXYuYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL2VfYWVzZ2Ntc2l2LmMKaW5kZXggMWRlYjkxODE4M2Rm
NDI5ODViZTBhODVjM2RkNjk3YjVhNGQyY2ZiOS4uNjRmZWJhZTQxNzE1YmRhYzA2MzA3OGJhNTI2
ZjY0MGQzMWMwZDgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvZV9hZXNn
Y21zaXYuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NpcGhlcl9leHRyYS9lX2Flc2djbXNpdi5jCkBAIC0y
Nyw3ICsyNywxMSBAQAogI2RlZmluZSBFVlBfQUVBRF9BRVNfR0NNX1NJVl9OT05DRV9MRU4gMTIK
ICNkZWZpbmUgRVZQX0FFQURfQUVTX0dDTV9TSVZfVEFHX0xFTiAxNgogCi0jaWYgZGVmaW5lZChP
UEVOU1NMX1g4Nl82NCkgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pCisvLyBUT0RPKGRhdmlk
YmVuKTogQUVTLUdDTS1TSVYgYXNzZW1ibHkgaXMgbm90IGNvcnJlY3QgZm9yIFdpbmRvd3MuIEl0
IG11c3Qgc2F2ZQorLy8gYW5kIHJlc3RvcmUgeG1tNiB0aHJvdWdoIHhtbTE1LgorI2lmIGRlZmlu
ZWQoT1BFTlNTTF9YODZfNjQpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiBcCisgICAg
IWRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQorI2RlZmluZSBBRVNfR0NNX1NJVl9BU00KIAogLy8g
T3B0aW1pc2VkIEFFUy1HQ00tU0lWCiAKQEAgLTYwLDEwICs2NCwxMCBAQCBzdGF0aWMgc3RydWN0
IGFlYWRfYWVzX2djbV9zaXZfYXNtX2N0eCAqYXNtX2N0eF9mcm9tX2N0eCgKIGV4dGVybiB2b2lk
IGFlczEyOGdjbXNpdl9hZXNfa3MoCiAgICAgY29uc3QgdWludDhfdCBrZXlbMTZdLCB1aW50OF90
IG91dF9leHBhbmRlZF9rZXlbMTYqMTVdKTsKIAotLy8gYWVzMTI4Z2Ntc2l2X2Flc19rcyB3cml0
ZXMgYW4gQUVTLTEyOCBrZXkgc2NoZWR1bGUgZm9yIHxrZXl8IHRvCisvLyBhZXMyNTZnY21zaXZf
YWVzX2tzIHdyaXRlcyBhbiBBRVMtMjU2IGtleSBzY2hlZHVsZSBmb3IgfGtleXwgdG8KIC8vIHxv
dXRfZXhwYW5kZWRfa2V5fC4KIGV4dGVybiB2b2lkIGFlczI1NmdjbXNpdl9hZXNfa3MoCi0gICAg
Y29uc3QgdWludDhfdCBrZXlbMTZdLCB1aW50OF90IG91dF9leHBhbmRlZF9rZXlbMTYqMTVdKTsK
KyAgICBjb25zdCB1aW50OF90IGtleVszMl0sIHVpbnQ4X3Qgb3V0X2V4cGFuZGVkX2tleVsxNiox
NV0pOwogCiBzdGF0aWMgaW50IGFlYWRfYWVzX2djbV9zaXZfYXNtX2luaXQoRVZQX0FFQURfQ1RY
ICpjdHgsIGNvbnN0IHVpbnQ4X3QgKmtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3Qga2V5X2xlbiwgc2l6ZV90IHRhZ19sZW4pIHsKQEAgLTQyMiw2ICs0MjYs
MTEgQEAgc3RhdGljIGludCBhZWFkX2Flc19nY21fc2l2X2FzbV9vcGVuKGNvbnN0IEVWUF9BRUFE
X0NUWCAqY3R4LCB1aW50OF90ICpvdXQsCiAgICAgcmV0dXJuIDA7CiAgIH0KIAorICBpZiAobm9u
Y2VfbGVuICE9IEVWUF9BRUFEX0FFU19HQ01fU0lWX05PTkNFX0xFTikgeworICAgIE9QRU5TU0xf
UFVUX0VSUk9SKENJUEhFUiwgQ0lQSEVSX1JfVU5TVVBQT1JURURfTk9OQ0VfU0laRSk7CisgICAg
cmV0dXJuIDA7CisgIH0KKwogICBjb25zdCBzdHJ1Y3QgYWVhZF9hZXNfZ2NtX3Npdl9hc21fY3R4
ICpnY21fc2l2X2N0eCA9IGFzbV9jdHhfZnJvbV9jdHgoY3R4KTsKICAgY29uc3Qgc2l6ZV90IHBs
YWludGV4dF9sZW4gPSBpbl9sZW4gLSBFVlBfQUVBRF9BRVNfR0NNX1NJVl9UQUdfTEVOOwogICBj
b25zdCB1aW50OF90ICpjb25zdCBnaXZlbl90YWcgPSBpbiArIHBsYWludGV4dF9sZW47CkBAIC01
NDksNyArNTU4LDcgQEAgc3RhdGljIGNvbnN0IEVWUF9BRUFEIGFlYWRfYWVzXzI1Nl9nY21fc2l2
X2FzbSA9IHsKICAgICBOVUxMIC8qIHRhZ19sZW4gKi8sCiB9OwogCi0jZW5kaWYgIC8vIFg4Nl82
NCAmJiAhTk9fQVNNCisjZW5kaWYgIC8vIFg4Nl82NCAmJiAhTk9fQVNNICYmICFXSU5ET1dTCiAK
IHN0cnVjdCBhZWFkX2Flc19nY21fc2l2X2N0eCB7CiAgIHVuaW9uIHsKQEAgLTgzOCw3ICs4NDcs
NyBAQCBzdGF0aWMgY29uc3QgRVZQX0FFQUQgYWVhZF9hZXNfMjU2X2djbV9zaXYgPSB7CiAgICAg
TlVMTCAvKiB0YWdfbGVuICovLAogfTsKIAotI2lmIGRlZmluZWQoT1BFTlNTTF9YODZfNjQpICYm
ICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQorI2lmIGRlZmluZWQoQUVTX0dDTV9TSVZfQVNNKQog
CiBzdGF0aWMgY2hhciBhdnhfYWVzbmlfY2FwYWJsZSh2b2lkKSB7CiAgIGNvbnN0IHVpbnQzMl90
IGVjeCA9IE9QRU5TU0xfaWEzMmNhcF9QWzFdOwpAQCAtODcxLDQgKzg4MCw0IEBAIGNvbnN0IEVW
UF9BRUFEICpFVlBfYWVhZF9hZXNfMjU2X2djbV9zaXYodm9pZCkgewogICByZXR1cm4gJmFlYWRf
YWVzXzI1Nl9nY21fc2l2OwogfQogCi0jZW5kaWYgIC8vIFg4Nl82NCAmJiAhTk9fQVNNCisjZW5k
aWYgIC8vIEFFU19HQ01fU0lWX0FTTQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0
cmEvZV90bHMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL2VfdGxzLmMKaW5kZXggZmY0MTk4
OWM3MDBlNWYzMmE3YjdmMDZmNTA4MWQ1NGY1NGVhMmQwZS4uYzgxMmI2Yjg2NmUwNzZkNDQzYTQ5
NDkwM2U0YjU3NWFlZjUyODBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0cmEv
ZV90bHMuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NpcGhlcl9leHRyYS9lX3Rscy5jCkBAIC0yOTksNiAr
Mjk5LDggQEAgc3RhdGljIGludCBhZWFkX3Rsc19vcGVuKGNvbnN0IEVWUF9BRUFEX0NUWCAqY3R4
LCB1aW50OF90ICpvdXQsIHNpemVfdCAqb3V0X2xlbiwKICAgdG90YWwgKz0gbGVuOwogICBhc3Nl
cnQodG90YWwgPT0gaW5fbGVuKTsKIAorICBDT05TVFRJTUVfU0VDUkVUKG91dCwgdG90YWwpOwor
CiAgIC8vIFJlbW92ZSBDQkMgcGFkZGluZy4gQ29kZSBmcm9tIGhlcmUgb24gaXMgdGltaW5nLXNl
bnNpdGl2ZSB3aXRoIHJlc3BlY3QgdG8KICAgLy8gfHBhZGRpbmdfb2t8IGFuZCB8ZGF0YV9wbHVz
X21hY19sZW58IGZvciBDQkMgY2lwaGVycy4KICAgc2l6ZV90IGRhdGFfcGx1c19tYWNfbGVuOwpA
QCAtMzc1LDExICszNzcsMTUgQEAgc3RhdGljIGludCBhZWFkX3Rsc19vcGVuKGNvbnN0IEVWUF9B
RUFEX0NUWCAqY3R4LCB1aW50OF90ICpvdXQsIHNpemVfdCAqb3V0X2xlbiwKICAgY3J5cHRvX3dv
cmRfdCBnb29kID0KICAgICAgIGNvbnN0YW50X3RpbWVfZXFfaW50KENSWVBUT19tZW1jbXAocmVj
b3JkX21hYywgbWFjLCBtYWNfbGVuKSwgMCk7CiAgIGdvb2QgJj0gcGFkZGluZ19vazsKKyAgQ09O
U1RUSU1FX0RFQ0xBU1NJRlkoJmdvb2QsIHNpemVvZihnb29kKSk7CiAgIGlmICghZ29vZCkgewog
ICAgIE9QRU5TU0xfUFVUX0VSUk9SKENJUEhFUiwgQ0lQSEVSX1JfQkFEX0RFQ1JZUFQpOwogICAg
IHJldHVybiAwOwogICB9CiAKKyAgQ09OU1RUSU1FX0RFQ0xBU1NJRlkoJmRhdGFfbGVuLCBzaXpl
b2YoZGF0YV9sZW4pKTsKKyAgQ09OU1RUSU1FX0RFQ0xBU1NJRlkob3V0LCBkYXRhX2xlbik7CisK
ICAgLy8gRW5kIG9mIHRpbWluZy1zZW5zaXRpdmUgY29kZS4KIAogICAqb3V0X2xlbiA9IGRhdGFf
bGVuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jaXBoZXJfZXh0cmEvdGVzdC9tYWtlX2FsbF9s
ZWdhY3lfYWVhZF90ZXN0cy5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vY2lwaGVyX2V4dHJhL3Rlc3QvbWFrZV9h
bGxfbGVnYWN5X2FlYWRfdGVzdHMuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jb25zdGFudF90aW1lX3Rlc3QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2NvbnN0YW50X3RpbWVfdGVzdC5jYwppbmRleCA1OWE3YmIxODcyMDg0OTc5NjZlYzVmOWM0NDU4
NGUzMDE1MTI2YTg1Li5hZTgwMDAzZWIzZGIxY2Q4NTA0NGE5MDNlODA1Zjk3MWQ0MzU0ZmMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NvbnN0YW50X3RpbWVfdGVzdC5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2NvbnN0YW50X3RpbWVfdGVzdC5jYwpAQCAtMTUzLDMgKzE1MywxOSBAQCBURVNUKENvbnN0
YW50VGltZVRlc3QsIE1lbUNtcCkgewogICAgIH0KICAgfQogfQorCitURVNUKENvbnN0YW50VGlt
ZVRlc3QsIFZhbHVlQmFycmllcikgeworICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsK
KyAgICBjcnlwdG9fd29yZF90IHdvcmQ7CisgICAgUkFORF9ieXRlcyhyZWludGVycHJldF9jYXN0
PHVpbnQ4X3QgKj4oJndvcmQpLCBzaXplb2Yod29yZCkpOworICAgIEVYUEVDVF9FUSh3b3JkLCB2
YWx1ZV9iYXJyaWVyX3cod29yZCkpOworCisgICAgdWludDMyX3QgdTMyOworICAgIFJBTkRfYnl0
ZXMocmVpbnRlcnByZXRfY2FzdDx1aW50OF90ICo+KCZ1MzIpLCBzaXplb2YodTMyKSk7CisgICAg
RVhQRUNUX0VRKHUzMiwgdmFsdWVfYmFycmllcl91MzIodTMyKSk7CisKKyAgICB1aW50NjRfdCB1
NjQ7CisgICAgUkFORF9ieXRlcyhyZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oJnU2NCksIHNp
emVvZih1NjQpKTsKKyAgICBFWFBFQ1RfRVEodTY0LCB2YWx1ZV9iYXJyaWVyX3U2NCh1NjQpKTsK
KyAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jcHUtaW50ZWwuYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
Y3B1LWludGVsLmMKaW5kZXggMjBjZmJlOGMwOGY1N2IwZTllNGI4MzY0YmRjMDk0NWRmNjZkNWU0
OS4uMTYyMWVmNmNmYzhkOTFkNmVmZjhjMWQwZTJhZjE3NGEzOTY0NWEzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9jcHUtaW50ZWwuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NwdS1pbnRlbC5jCkBAIC0x
NTIsMjAgKzE1Miw2IEBAIHZvaWQgT1BFTlNTTF9jcHVpZF9zZXR1cCh2b2lkKSB7CiAgICAgICAg
ICAgICAgICBlZHggPT0gMHg2OTc0NmU2NSAvKiBlbnRpICovICYmCiAgICAgICAgICAgICAgICBl
Y3ggPT0gMHg0NDRkNDE2MyAvKiBjQU1EICovOwogCi0gIGludCBoYXNfYW1kX3hvcCA9IDA7Ci0g
IGlmIChpc19hbWQpIHsKLSAgICAvLyBBTUQtc3BlY2lmaWMgbG9naWMuCi0gICAgLy8gU2VlIGh0
dHA6Ly9kZXZlbG9wZXIuYW1kLmNvbS93b3JkcHJlc3MvbWVkaWEvMjAxMi8xMC8yNTQ4MTEucGRm
Ci0gICAgT1BFTlNTTF9jcHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4LCAweDgwMDAwMDAwKTsK
LSAgICB1aW50MzJfdCBudW1fZXh0ZW5kZWRfaWRzID0gZWF4OwotICAgIGlmIChudW1fZXh0ZW5k
ZWRfaWRzID49IDB4ODAwMDAwMDEpIHsKLSAgICAgIE9QRU5TU0xfY3B1aWQoJmVheCwgJmVieCwg
JmVjeCwgJmVkeCwgMHg4MDAwMDAwMSk7Ci0gICAgICBpZiAoZWN4ICYgKDF1IDw8IDExKSkgewot
ICAgICAgICBoYXNfYW1kX3hvcCA9IDE7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0KICAgdWludDMy
X3QgZXh0ZW5kZWRfZmVhdHVyZXNbMl0gPSB7MH07CiAgIGlmIChudW1faWRzID49IDcpIHsKICAg
ICBPUEVOU1NMX2NwdWlkKCZlYXgsICZlYngsICZlY3gsICZlZHgsIDcpOwpAQCAtMTczLDMwICsx
NTksMzAgQEAgdm9pZCBPUEVOU1NMX2NwdWlkX3NldHVwKHZvaWQpIHsKICAgICBleHRlbmRlZF9m
ZWF0dXJlc1sxXSA9IGVjeDsKICAgfQogCi0gIC8vIERldGVybWluZSB0aGUgbnVtYmVyIG9mIGNv
cmVzIHNoYXJpbmcgYW4gTDEgZGF0YSBjYWNoZSB0byBhZGp1c3QgdGhlCi0gIC8vIGh5cGVyLXRo
cmVhZGluZyBiaXQuCi0gIHVpbnQzMl90IGNvcmVzX3Blcl9jYWNoZSA9IDA7CisgIE9QRU5TU0xf
Y3B1aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCwgMSk7CisKICAgaWYgKGlzX2FtZCkgewotICAg
IC8vIEFNRCBDUFVzIG5ldmVyIHNoYXJlIGFuIEwxIGRhdGEgY2FjaGUgYmV0d2VlbiB0aHJlYWRz
IGJ1dCBkbyBzZXQgdGhlIEhUVAotICAgIC8vIGJpdCBvbiBtdWx0aS1jb3JlIENQVXMuCi0gICAg
Y29yZXNfcGVyX2NhY2hlID0gMTsKLSAgfSBlbHNlIGlmIChudW1faWRzID49IDQpIHsKLSAgICAv
LyBUT0RPKGRhdmlkYmVuKTogVGhlIEludGVsIG1hbnVhbCBzYXlzIHRoaXMgQ1BVSUQgbGVhZiBl
bnVtZXJhdGVzIGFsbAotICAgIC8vIGNhY2hlcyB1c2luZyBFQ1ggYW5kIGRvZXNuJ3Qgc2F5IHdo
aWNoIGlzIGZpcnN0LiBEb2VzIHRoaXMgbWF0dGVyPwotICAgIE9QRU5TU0xfY3B1aWQoJmVheCwg
JmVieCwgJmVjeCwgJmVkeCwgNCk7Ci0gICAgY29yZXNfcGVyX2NhY2hlID0gMSArICgoZWF4ID4+
IDE0KSAmIDB4ZmZmKTsKLSAgfQorICAgIC8vIFNlZSBodHRwczovL3d3dy5hbWQuY29tL3N5c3Rl
bS9maWxlcy9UZWNoRG9jcy8yNTQ4MS5wZGYsIHBhZ2UgMTAuCisgICAgY29uc3QgdWludDMyX3Qg
YmFzZV9mYW1pbHkgPSAoZWF4ID4+IDgpICYgMTU7CiAKLSAgT1BFTlNTTF9jcHVpZCgmZWF4LCAm
ZWJ4LCAmZWN4LCAmZWR4LCAxKTsKKyAgICB1aW50MzJfdCBmYW1pbHkgPSBiYXNlX2ZhbWlseTsK
KyAgICBpZiAoYmFzZV9mYW1pbHkgPT0gMHhmKSB7CisgICAgICBjb25zdCB1aW50MzJfdCBleHRf
ZmFtaWx5ID0gKGVheCA+PiAyMCkgJiAyNTU7CisgICAgICBmYW1pbHkgKz0gZXh0X2ZhbWlseTsK
KyAgICB9CiAKLSAgLy8gQWRqdXN0IHRoZSBoeXBlci10aHJlYWRpbmcgYml0LgotICBpZiAoZWR4
ICYgKDF1IDw8IDI4KSkgewotICAgIHVpbnQzMl90IG51bV9sb2dpY2FsX2NvcmVzID0gKGVieCA+
PiAxNikgJiAweGZmOwotICAgIGlmIChjb3Jlc19wZXJfY2FjaGUgPT0gMSB8fCBudW1fbG9naWNh
bF9jb3JlcyA8PSAxKSB7Ci0gICAgICBlZHggJj0gfigxdSA8PCAyOCk7CisgICAgaWYgKGZhbWls
eSA8IDB4MTcpIHsKKyAgICAgIC8vIERpc2FibGUgUkRSQU5EIG9uIEFNRCBmYW1pbGllcyBiZWZv
cmUgMHgxNyAoWmVuKSBkdWUgdG8gcmVwb3J0ZWQKKyAgICAgIC8vIGZhaWx1cmVzIGFmdGVyIHN1
c3BlbmQuCisgICAgICAvLyBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dp
P2lkPTExNTAyODYKKyAgICAgIGVjeCAmPSB+KDF1IDw8IDMwKTsKICAgICB9CiAgIH0KIAorICAv
LyBGb3JjZSB0aGUgaHlwZXItdGhyZWFkaW5nIGJpdCBzbyB0aGF0IHRoZSBtb3JlIGNvbnNlcnZh
dGl2ZSBwYXRoIGlzIGFsd2F5cworICAvLyBjaG9zZW4uCisgIGVkeCB8PSAxdSA8PCAyODsKKwog
ICAvLyBSZXNlcnZlZCBiaXQgIzIwIHdhcyBoaXN0b3JpY2FsbHkgcmVwdXJwb3NlZCB0byBjb250
cm9sIHRoZSBpbi1tZW1vcnkKICAgLy8gcmVwcmVzZW50YXRpb24gb2YgUkM0IHN0YXRlLiBBbHdh
eXMgc2V0IGl0IHRvIHplcm8uCiAgIGVkeCAmPSB+KDF1IDw8IDIwKTsKQEAgLTIxNiwxMiArMjAy
LDkgQEAgdm9pZCBPUEVOU1NMX2NwdWlkX3NldHVwKHZvaWQpIHsKICAgICBlZHggJj0gfigxdSA8
PCAzMCk7CiAgIH0KIAotICAvLyBUaGUgU0RCRyBiaXQgaXMgcmVwdXJwb3NlZCB0byBkZW5vdGUg
QU1EIFhPUCBzdXBwb3J0LgotICBpZiAoaGFzX2FtZF94b3ApIHsKLSAgICBlY3ggfD0gKDF1IDw8
IDExKTsKLSAgfSBlbHNlIHsKLSAgICBlY3ggJj0gfigxdSA8PCAxMSk7Ci0gIH0KKyAgLy8gVGhl
IFNEQkcgYml0IGlzIHJlcHVycG9zZWQgdG8gZGVub3RlIEFNRCBYT1Agc3VwcG9ydC4gRG9uJ3Qg
ZXZlciB1c2UgQU1ECisgIC8vIFhPUCBjb2RlIHBhdGhzLgorICBlY3ggJj0gfigxdSA8PCAxMSk7
CiAKICAgdWludDY0X3QgeGNyMCA9IDA7CiAgIGlmIChlY3ggJiAoMXUgPDwgMjcpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2NyeXB0by5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9jcnlwdG8uYwppbmRleCBm
N2FjMjU1ODE2ZDhkYjlmMTNkMmFkNDhiODE5YzE2N2U4MDJkNmNhLi5jODYyMDZhMDAwYTgwNTkw
Yzc5MjNiZjg4YjE4YzI3MmNjNjM2NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2NyeXB0by5j
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vY3J5cHRvLmMKQEAgLTM2LDggKzM2LDggQEAKICNkZWZpbmUgQk9S
SU5HU1NMX05PX1NUQVRJQ19JTklUSUFMSVpFUgogI2VuZGlmCiAKLSNlbmRpZiAgLyogIU9QRU5T
U0xfTk9fQVNNICYmIChPUEVOU1NMX1g4NiB8fCBPUEVOU1NMX1g4Nl82NCB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE9QRU5TU0xfQVJNIHx8IE9QRU5TU0xfQUFSQ0g2NCkgKi8K
KyNlbmRpZiAgLy8gIU5PX0FTTSAmJiAhU1RBVElDX0FSTUNBUCAmJgorICAgICAgICAvLyAoWDg2
IHx8IFg4Nl82NCB8fCBBUk0gfHwgQUFSQ0g2NCB8fCBQUEM2NExFKQogCiAKIC8vIE91ciBhc3Nl
bWJseSBkb2VzIG5vdCB1c2UgdGhlIEdPVCB0byByZWZlcmVuY2Ugc3ltYm9scywgd2hpY2ggbWVh
bnMKQEAgLTYwLDggKzYwLDcgQEAKIC8vIHRoYXQgdGVzdHMgdGhlIGNhcGFiaWxpdHkgdmFsdWVz
IHdpbGwgc3RpbGwgc2tpcCB0aGUgY29uc3RydWN0b3IgYnV0LCBzbwogLy8gZmFyLCB0aGUgaW5p
dCBjb25zdHJ1Y3RvciBmdW5jdGlvbiBvbmx5IHNldHMgdGhlIGNhcGFiaWxpdHkgdmFyaWFibGVz
LgogCi0jaWYgZGVmaW5lZChPUEVOU1NMX1g4NikgfHwgZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkK
LQorI2lmICFkZWZpbmVkKE5ERUJVRykgJiYgIWRlZmluZWQoQk9SSU5HU1NMX0ZJUFMpCiAvLyBU
aGlzIHZhbHVlIG11c3QgYmUgZXhwbGljaXRseSBpbml0aWFsaXNlZCB0byB6ZXJvIGluIG9yZGVy
IHRvIHdvcmsgYXJvdW5kIGEKIC8vIGJ1ZyBpbiBsaWJ0b29sIG9yIHRoZSBsaW5rZXIgb24gT1Mg
WC4KIC8vCkBAIC02OSw2ICs2OCwxMiBAQAogLy8gYXJjaGl2ZSwgbGlua2luZyBvbiBPUyBYIHdp
bGwgZmFpbCB0byByZXNvbHZlIGNvbW1vbiBzeW1ib2xzLiBCeQogLy8gaW5pdGlhbGlzaW5nIGl0
IHRvIHplcm8sIGl0IGJlY29tZXMgYSAiZGF0YSBzeW1ib2wiLCB3aGljaCBpc24ndCBzbwogLy8g
YWZmZWN0ZWQuCitISURERU4gdWludDhfdCBCT1JJTkdTU0xfZnVuY3Rpb25faGl0WzddID0gezB9
OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5TU0xf
WDg2XzY0KQorCisvLyBUaGlzIHZhbHVlIG11c3QgYmUgZXhwbGljaXRseSBpbml0aWFsaXplZCB0
byB6ZXJvLiBTZWUgc2ltaWxhciBjb21tZW50IGFib3ZlLgogSElEREVOIHVpbnQzMl90IE9QRU5T
U0xfaWEzMmNhcF9QWzRdID0gezB9OwogCiAjZWxpZiBkZWZpbmVkKE9QRU5TU0xfUFBDNjRMRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZGlnZXN0X2V4dHJhL2RpZ2VzdF90ZXN0LmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9kaWdlc3RfZXh0cmEvZGlnZXN0X3Rlc3QuY2MKaW5kZXggNzJlMTBiMTE1NDQ3ODQ4
NGNiNGY3ZDFkZTk1NzY2OWMyMDI1ZjgwMC4uNmQwMmMwODcyMjkxNDJmMzM5YTkzNzgyMTU2NTM4
OTZmMDQ2NTc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9kaWdlc3RfZXh0cmEvZGlnZXN0X3Rl
c3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9kaWdlc3RfZXh0cmEvZGlnZXN0X3Rlc3QuY2MKQEAgLTE3
LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgPG1lbW9yeT4KKyNp
bmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCkBAIC01NCw3ICs1
NSw3IEBAIHN0YXRpYyBjb25zdCBNRCBzaGEzODQgPSB7ICJTSEEzODQiLCAmRVZQX3NoYTM4NCwg
JlNIQTM4NCB9Owogc3RhdGljIGNvbnN0IE1EIHNoYTUxMiA9IHsgIlNIQTUxMiIsICZFVlBfc2hh
NTEyLCAmU0hBNTEyIH07CiBzdGF0aWMgY29uc3QgTUQgbWQ1X3NoYTEgPSB7ICJNRDUtU0hBMSIs
ICZFVlBfbWQ1X3NoYTEsIG51bGxwdHIgfTsKIAotc3RydWN0IFRlc3RWZWN0b3Igeworc3RydWN0
IERpZ2VzdFRlc3RWZWN0b3IgewogICAvLyBtZCBpcyB0aGUgZGlnZXN0IHRvIHRlc3QuCiAgIGNv
bnN0IE1EICZtZDsKICAgLy8gaW5wdXQgaXMgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcgdG8gaGFz
aC4KQEAgLTY1LDcgKzY2LDcgQEAgc3RydWN0IFRlc3RWZWN0b3IgewogICBjb25zdCBjaGFyICpl
eHBlY3RlZF9oZXg7CiB9OwogCi1zdGF0aWMgY29uc3QgVGVzdFZlY3RvciBrVGVzdFZlY3RvcnNb
XSA9IHsKK3N0YXRpYyBjb25zdCBEaWdlc3RUZXN0VmVjdG9yIGtUZXN0VmVjdG9yc1tdID0gewog
ICAgIC8vIE1ENCB0ZXN0cywgZnJvbSBSRkMgMTMyMC4gKGNyeXB0by9tZDQgZG9lcyBub3QgcHJv
dmlkZSBhCiAgICAgLy8gb25lLXNob3QgTUQ0IGZ1bmN0aW9uLikKICAgICB7IG1kNCwgIiIsIDEs
ICIzMWQ2Y2ZlMGQxNmFlOTMxYjczYzU5ZDdlMGMwODljMCIgfSwKQEAgLTE0Myw3ICsxNDQsNyBA
QCBzdGF0aWMgY29uc3QgVGVzdFZlY3RvciBrVGVzdFZlY3RvcnNbXSA9IHsKICAgICAgICI5MDAx
NTA5ODNjZDI0ZmIwZDY5NjNmN2QyOGUxN2Y3MmE5OTkzZTM2NDcwNjgxNmFiYTNlMjU3MTc4NTBj
MjZjOWNkMGQ4OWQiIH0sCiB9OwogCi1zdGF0aWMgdm9pZCBDb21wYXJlRGlnZXN0KGNvbnN0IFRl
c3RWZWN0b3IgKnRlc3QsCitzdGF0aWMgdm9pZCBDb21wYXJlRGlnZXN0KGNvbnN0IERpZ2VzdFRl
c3RWZWN0b3IgKnRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qg
KmRpZ2VzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRpZ2VzdF9sZW4pIHsK
ICAgc3RhdGljIGNvbnN0IGNoYXIga0hleFRhYmxlW10gPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CkBA
IC0xNTgsNyArMTU5LDcgQEAgc3RhdGljIHZvaWQgQ29tcGFyZURpZ2VzdChjb25zdCBUZXN0VmVj
dG9yICp0ZXN0LAogICBFWFBFQ1RfU1RSRVEodGVzdC0+ZXhwZWN0ZWRfaGV4LCBkaWdlc3RfaGV4
KTsKIH0KIAotc3RhdGljIHZvaWQgVGVzdERpZ2VzdChjb25zdCBUZXN0VmVjdG9yICp0ZXN0KSB7
CitzdGF0aWMgdm9pZCBUZXN0RGlnZXN0KGNvbnN0IERpZ2VzdFRlc3RWZWN0b3IgKnRlc3QpIHsK
ICAgYnNzbDo6U2NvcGVkRVZQX01EX0NUWCBjdHg7CiAKICAgLy8gVGVzdCB0aGUgaW5wdXQgcHJv
dmlkZWQuCkBAIC0xODMsNiArMTg0LDQyIEBAIHN0YXRpYyB2b2lkIFRlc3REaWdlc3QoY29uc3Qg
VGVzdFZlY3RvciAqdGVzdCkgewogICBFWFBFQ1RfRVEoRVZQX01EX3NpemUodGVzdC0+bWQuZnVu
YygpKSwgZGlnZXN0X2xlbik7CiAgIENvbXBhcmVEaWdlc3QodGVzdCwgZGlnZXN0LmdldCgpLCBk
aWdlc3RfbGVuKTsKIAorICAvLyBUZXN0IHdpdGggdW5hbGlnbmVkIGlucHV0LgorICBBU1NFUlRf
VFJVRShFVlBfRGlnZXN0SW5pdF9leChjdHguZ2V0KCksIHRlc3QtPm1kLmZ1bmMoKSwgTlVMTCkp
OworICBzdGQ6OnZlY3RvcjxjaGFyPiB1bmFsaWduZWQoc3RybGVuKHRlc3QtPmlucHV0KSArIDEp
OworICBjaGFyICpwdHIgPSB1bmFsaWduZWQuZGF0YSgpOworICBpZiAoKHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihwdHIpICYgMSkgPT0gMCkgeworICAgIHB0cisrOworICB9CisgIE9QRU5T
U0xfbWVtY3B5KHB0ciwgdGVzdC0+aW5wdXQsIHN0cmxlbih0ZXN0LT5pbnB1dCkpOworICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHRlc3QtPnJlcGVhdDsgaSsrKSB7CisgICAgQVNTRVJUX1RSVUUo
RVZQX0RpZ2VzdFVwZGF0ZShjdHguZ2V0KCksIHB0ciwgc3RybGVuKHRlc3QtPmlucHV0KSkpOwor
ICB9CisgIEFTU0VSVF9UUlVFKEVWUF9EaWdlc3RGaW5hbF9leChjdHguZ2V0KCksIGRpZ2VzdC5n
ZXQoKSwgJmRpZ2VzdF9sZW4pKTsKKyAgQ29tcGFyZURpZ2VzdCh0ZXN0LCBkaWdlc3QuZ2V0KCks
IGRpZ2VzdF9sZW4pOworCisgIC8vIE1ha2UgYSBjb3B5IG9mIHRoZSBkaWdlc3QgaW4gdGhlIGlu
aXRpYWwgc3RhdGUuCisgIEFTU0VSVF9UUlVFKEVWUF9EaWdlc3RJbml0X2V4KGN0eC5nZXQoKSwg
dGVzdC0+bWQuZnVuYygpLCBOVUxMKSk7CisgIGJzc2w6OlNjb3BlZEVWUF9NRF9DVFggY29weTsK
KyAgQVNTRVJUX1RSVUUoRVZQX01EX0NUWF9jb3B5X2V4KGNvcHkuZ2V0KCksIGN0eC5nZXQoKSkp
OworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3QtPnJlcGVhdDsgaSsrKSB7CisgICAgQVNT
RVJUX1RSVUUoRVZQX0RpZ2VzdFVwZGF0ZShjb3B5LmdldCgpLCB0ZXN0LT5pbnB1dCwgc3RybGVu
KHRlc3QtPmlucHV0KSkpOworICB9CisgIEFTU0VSVF9UUlVFKEVWUF9EaWdlc3RGaW5hbF9leChj
b3B5LmdldCgpLCBkaWdlc3QuZ2V0KCksICZkaWdlc3RfbGVuKSk7CisgIENvbXBhcmVEaWdlc3Qo
dGVzdCwgZGlnZXN0LmdldCgpLCBkaWdlc3RfbGVuKTsKKworICAvLyBNYWtlIGEgY29weSBvZiB0
aGUgZGlnZXN0IHdpdGggaGFsZiB0aGUgaW5wdXQgcHJvdmlkZWQuCisgIHNpemVfdCBoYWxmID0g
c3RybGVuKHRlc3QtPmlucHV0KSAvIDI7CisgIEFTU0VSVF9UUlVFKEVWUF9EaWdlc3RVcGRhdGUo
Y3R4LmdldCgpLCB0ZXN0LT5pbnB1dCwgaGFsZikpOworICBBU1NFUlRfVFJVRShFVlBfTURfQ1RY
X2NvcHlfZXgoY29weS5nZXQoKSwgY3R4LmdldCgpKSk7CisgIEFTU0VSVF9UUlVFKEVWUF9EaWdl
c3RVcGRhdGUoY29weS5nZXQoKSwgdGVzdC0+aW5wdXQgKyBoYWxmLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmxlbih0ZXN0LT5pbnB1dCkgLSBoYWxmKSk7CisgIGZvciAoc2l6
ZV90IGkgPSAxOyBpIDwgdGVzdC0+cmVwZWF0OyBpKyspIHsKKyAgICBBU1NFUlRfVFJVRShFVlBf
RGlnZXN0VXBkYXRlKGNvcHkuZ2V0KCksIHRlc3QtPmlucHV0LCBzdHJsZW4odGVzdC0+aW5wdXQp
KSk7CisgIH0KKyAgQVNTRVJUX1RSVUUoRVZQX0RpZ2VzdEZpbmFsX2V4KGNvcHkuZ2V0KCksIGRp
Z2VzdC5nZXQoKSwgJmRpZ2VzdF9sZW4pKTsKKyAgQ29tcGFyZURpZ2VzdCh0ZXN0LCBkaWdlc3Qu
Z2V0KCksIGRpZ2VzdF9sZW4pOworCiAgIC8vIFRlc3QgdGhlIG9uZS1zaG90IGZ1bmN0aW9uLgog
ICBpZiAodGVzdC0+bWQub25lX3Nob3RfZnVuYyAmJiB0ZXN0LT5yZXBlYXQgPT0gMSkgewogICAg
IHVpbnQ4X3QgKm91dCA9IHRlc3QtPm1kLm9uZV9zaG90X2Z1bmMoKGNvbnN0IHVpbnQ4X3QgKil0
ZXN0LT5pbnB1dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZHNhL2RzYS5jIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9kc2EvZHNhLmMKaW5kZXggMjg4ZTJjODBjZDBlYTI5YzY1NTdlZGRjNjNlN2M1N2U1OWRiMzJj
My4uNTFkY2E3ZjdlZTZhOGQxMzU2OGIyZDE3NTI2ZjU1MTY1ZTAwN2ZlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9kc2EvZHNhLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9kc2EvZHNhLmMKQEAgLTU1OCwy
OSArNTU4LDM0IEBAIHN0YXRpYyBpbnQgbW9kX211bF9jb25zdHRpbWUoQklHTlVNICpyLCBjb25z
dCBCSUdOVU0gKmEsIGNvbnN0IEJJR05VTSAqYiwKIH0KIAogRFNBX1NJRyAqRFNBX2RvX3NpZ24o
Y29uc3QgdWludDhfdCAqZGlnZXN0LCBzaXplX3QgZGlnZXN0X2xlbiwgY29uc3QgRFNBICpkc2Ep
IHsKLSAgQklHTlVNICpraW52ID0gTlVMTCwgKnIgPSBOVUxMLCAqcyA9IE5VTEw7Ci0gIEJJR05V
TSBtOwotICBCSUdOVU0geHI7Ci0gIEJOX0NUWCAqY3R4ID0gTlVMTDsKLSAgaW50IHJlYXNvbiA9
IEVSUl9SX0JOX0xJQjsKLSAgRFNBX1NJRyAqcmV0ID0gTlVMTDsKLQotICBCTl9pbml0KCZtKTsK
LSAgQk5faW5pdCgmeHIpOwotCiAgIGlmICghZHNhLT5wIHx8ICFkc2EtPnEgfHwgIWRzYS0+Zykg
ewotICAgIHJlYXNvbiA9IERTQV9SX01JU1NJTkdfUEFSQU1FVEVSUzsKLSAgICBnb3RvIGVycjsK
KyAgICBPUEVOU1NMX1BVVF9FUlJPUihEU0EsIERTQV9SX01JU1NJTkdfUEFSQU1FVEVSUyk7Cisg
ICAgcmV0dXJuIE5VTEw7CisgIH0KKworICAvLyBSZWplY3QgaW52YWxpZCBwYXJhbWV0ZXJzLiBJ
biBwYXJ0aWN1bGFyLCB0aGUgYWxnb3JpdGhtIHdpbGwgaW5maW5pdGUgbG9vcAorICAvLyBpZiB8
Z3wgaXMgemVyby4KKyAgaWYgKEJOX2lzX3plcm8oZHNhLT5wKSB8fCBCTl9pc196ZXJvKGRzYS0+
cSkgfHwgQk5faXNfemVybyhkc2EtPmcpKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRFNBLCBE
U0FfUl9JTlZBTElEX1BBUkFNRVRFUlMpOworICAgIHJldHVybiBOVUxMOwogICB9CiAKICAgLy8g
V2Ugb25seSBzdXBwb3J0IERTQSBrZXlzIHRoYXQgYXJlIGEgbXVsdGlwbGUgb2YgOCBiaXRzLiAo
VGhpcyBpcyBhIHdlYWtlcgogICAvLyBjaGVjayB0aGFuIHRoZSBvbmUgaW4gfERTQV9kb19jaGVj
a19zaWduYXR1cmV8LCB3aGljaCBvbmx5IGFsbG93cyAxNjAtLAogICAvLyAyMjQtLCBhbmQgMjU2
LWJpdCBrZXlzLgogICBpZiAoQk5fbnVtX2JpdHMoZHNhLT5xKSAlIDggIT0gMCkgewotICAgIHJl
YXNvbiA9IERTQV9SX0JBRF9RX1ZBTFVFOwotICAgIGdvdG8gZXJyOworICAgIE9QRU5TU0xfUFVU
X0VSUk9SKERTQSwgRFNBX1JfQkFEX1FfVkFMVUUpOworICAgIHJldHVybiBOVUxMOwogICB9CiAK
KyAgQklHTlVNICpraW52ID0gTlVMTCwgKnIgPSBOVUxMLCAqcyA9IE5VTEw7CisgIEJJR05VTSBt
OworICBCSUdOVU0geHI7CisgIEJOX0NUWCAqY3R4ID0gTlVMTDsKKyAgRFNBX1NJRyAqcmV0ID0g
TlVMTDsKKworICBCTl9pbml0KCZtKTsKKyAgQk5faW5pdCgmeHIpOwogICBzID0gQk5fbmV3KCk7
CiAgIGlmIChzID09IE5VTEwpIHsKICAgICBnb3RvIGVycjsKQEAgLTY0MCw3ICs2NDUsNyBAQCBy
ZWRvOgogCiBlcnI6CiAgIGlmIChyZXQgPT0gTlVMTCkgewotICAgIE9QRU5TU0xfUFVUX0VSUk9S
KERTQSwgcmVhc29uKTsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihEU0EsIEVSUl9SX0JOX0xJQik7
CiAgICAgQk5fZnJlZShyKTsKICAgICBCTl9mcmVlKHMpOwogICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL2RzYS9kc2FfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZHNhL2RzYV90ZXN0LmNjCmluZGV4
IDI5NWE3ZmQxMDQ1M2JhNDQ5OGVhY2U5NzUwYTBiMjVkNzY1YTU0ZWUuLjQ2ODIxMzE2MTU1Mzhi
Yzk1NzQwNTg1NDE1OWExOWEyZjc2MjFkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZHNhL2Rz
YV90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZHNhL2RzYV90ZXN0LmNjCkBAIC02Miw2ICs2Miw4
IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAorI2luY2x1ZGUg
PHZlY3Rvcj4KKwogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKICNpbmNsdWRlIDxvcGVuc3Ns
L2JuLmg+CkBAIC0zMTUsMyArMzE3LDE4IEBAIFRFU1QoRFNBVGVzdCwgQWxsVGVzdHMpIHsKICAg
ICBBRERfRkFJTFVSRSgpIDw8ICJUZXN0cyBmYWlsZWQiOwogICB9CiB9CisKK1RFU1QoRFNBVGVz
dCwgSW52YWxpZEdyb3VwKSB7CisgIGJzc2w6OlVuaXF1ZVB0cjxEU0E+IGRzYSA9IEdldEZJUFNE
U0EoKTsKKyAgQVNTRVJUX1RSVUUoZHNhKTsKKyAgQk5femVybyhkc2EtPmcpOworCisgIHN0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IHNpZyhEU0Ffc2l6ZShkc2EuZ2V0KCkpKTsKKyAgdW5zaWduZWQgc2ln
X2xlbjsKKyAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0RpZ2VzdFszMl0gPSB7MH07CisgIEVYUEVD
VF9GQUxTRSgKKyAgICAgIERTQV9zaWduKDAsIGtEaWdlc3QsIHNpemVvZihrRGlnZXN0KSwgc2ln
LmRhdGEoKSwgJnNpZ19sZW4sIGRzYS5nZXQoKSkpOworICB1aW50MzJfdCBlcnIgPSBFUlJfZ2V0
X2Vycm9yKCk7CisgIEVYUEVDVF9FUShFUlJfTElCX0RTQSwgRVJSX0dFVF9MSUIoZXJyKSk7Cisg
IEVYUEVDVF9FUShEU0FfUl9JTlZBTElEX1BBUkFNRVRFUlMsIEVSUl9HRVRfUkVBU09OKGVycikp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9lY19leHRyYS9lY19hc24xLmMgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2VjX2V4dHJhL2VjX2FzbjEuYwppbmRleCA2ZTIxMjc1MWU1ZmM0MGMwNDIzYTE2MjFiYjgy
YTEwMjlmZTZjMDVkLi4zMTk4OGYzZjllZWM4Zjc4N2MzNmMxNzc4NTkyMjJkNjEzM2Q2YjZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2VjX2V4dHJhL2VjX2FzbjEuYworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2VjX2V4dHJhL2VjX2FzbjEuYwpAQCAtMTU5LDggKzE1OSw4IEBAIEVDX0tFWSAqRUNfS0VZX3Bh
cnNlX3ByaXZhdGVfa2V5KENCUyAqY2JzLCBjb25zdCBFQ19HUk9VUCAqZ3JvdXApIHsKICAgICAg
ICAgKHBvaW50X2NvbnZlcnNpb25fZm9ybV90KShDQlNfZGF0YSgmcHVibGljX2tleSlbMF0gJiB+
MHgwMSk7CiAgIH0gZWxzZSB7CiAgICAgLy8gQ29tcHV0ZSB0aGUgcHVibGljIGtleSBpbnN0ZWFk
LgotICAgIGlmICghZWNfcG9pbnRfbXVsX3NjYWxhcihncm91cCwgJnJldC0+cHViX2tleS0+cmF3
LCAmcmV0LT5wcml2X2tleS0+c2NhbGFyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMLCBOVUxMKSkgeworICAgIGlmICghZWNfcG9pbnRfbXVsX3NjYWxhcl9iYXNlKGdyb3VwLCAm
cmV0LT5wdWJfa2V5LT5yYXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJl
dC0+cHJpdl9rZXktPnNjYWxhcikpIHsKICAgICAgIGdvdG8gZXJyOwogICAgIH0KICAgICAvLyBS
ZW1lbWJlciB0aGUgb3JpZ2luYWwgcHJpdmF0ZS1rZXktb25seSBlbmNvZGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vZWNkaF9leHRyYS9lY2RoX2V4dHJhLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2VjZGhf
ZXh0cmEvZWNkaF9leHRyYS5jCmluZGV4IDFlMDgwOTk1ZGU1MGQxMTVjZTdiMTY0YzMzYjI5OWRi
M2ZiNGQxMWIuLmI4YTA5OWE1NjBjYzNiYjk4NTIzZDI1YjU0MmJmNjY1ZDMwZTc3MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZWNkaF9leHRyYS9lY2RoX2V4dHJhLmMKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9lY2RoX2V4dHJhL2VjZGhfZXh0cmEuYwpAQCAtOTUsNyArOTUsNyBAQCBpbnQgRUNESF9jb21w
dXRlX2tleSh2b2lkICpvdXQsIHNpemVfdCBvdXRfbGVuLCBjb25zdCBFQ19QT0lOVCAqcHViX2tl
eSwKICAgRUNfUkFXX1BPSU5UIHNoYXJlZF9wb2ludDsKICAgdWludDhfdCBidWZbRUNfTUFYX0JZ
VEVTXTsKICAgc2l6ZV90IGJ1Zl9sZW47Ci0gIGlmICghZWNfcG9pbnRfbXVsX3NjYWxhcihncm91
cCwgJnNoYXJlZF9wb2ludCwgTlVMTCwgJnB1Yl9rZXktPnJhdywgcHJpdikgfHwKKyAgaWYgKCFl
Y19wb2ludF9tdWxfc2NhbGFyKGdyb3VwLCAmc2hhcmVkX3BvaW50LCAmcHViX2tleS0+cmF3LCBw
cml2KSB8fAogICAgICAgIWVjX3BvaW50X2dldF9hZmZpbmVfY29vcmRpbmF0ZV9ieXRlcyhncm91
cCwgYnVmLCBOVUxMLCAmYnVmX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZW9mKGJ1ZiksICZzaGFyZWRfcG9pbnQpKSB7CiAgICAgT1BFTlNTTF9Q
VVRfRVJST1IoRUNESCwgRUNESF9SX1BPSU5UX0FSSVRITUVUSUNfRkFJTFVSRSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2VuZ2luZS9lbmdpbmUuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZW5naW5lL2VuZ2lu
ZS5jCmluZGV4IDg3NWYxNDgwZGRiZmJiMzk2MjU1YTU2ZmI3MjZjNWIzODk1ZGEwZDUuLjk3M2E1
N2M4MDllZWMwODEyNDc0ZjdhNTliZDdkMDExMjQ0MTVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vZW5naW5lL2VuZ2luZS5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZW5naW5lL2VuZ2luZS5jCkBAIC00
MSw5ICs0MSwxMCBAQCBFTkdJTkUgKkVOR0lORV9uZXcodm9pZCkgewogICByZXR1cm4gZW5naW5l
OwogfQogCi12b2lkIEVOR0lORV9mcmVlKEVOR0lORSAqZW5naW5lKSB7CitpbnQgRU5HSU5FX2Zy
ZWUoRU5HSU5FICplbmdpbmUpIHsKICAgLy8gTWV0aG9kcyBhcmUgY3VycmVudGx5IHJlcXVpcmVk
IHRvIGJlIHN0YXRpYyBzbyBhcmUgbm90IHVucmVmJ2VkLgogICBPUEVOU1NMX2ZyZWUoZW5naW5l
KTsKKyAgcmV0dXJuIDE7CiB9CiAKIC8vIHNldF9tZXRob2QgdGFrZXMgYSBwb2ludGVyIHRvIGEg
bWV0aG9kIGFuZCBpdHMgZ2l2ZW4gc2l6ZSBhbmQgc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9lcnIvZHNhLmVycm9yZGF0YSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXJyL2RzYS5lcnJvcmRhdGEKaW5kZXgg
NmY0YmMxMzhhYmQ4NjU5OTQ5YjZlZWRmNDQwOGI5YWUyNGI1MzhlYy4uMWNmNTIwNmQ4NmVmZWQ4
NTE1OTRmMTJmM2U3M2IyMjMzM2Q0M2I3MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9lcnIvZHNh
LmVycm9yZGF0YQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Vyci9kc2EuZXJyb3JkYXRhCkBAIC0yLDYgKzIs
NyBAQCBEU0EsMTAwLEJBRF9RX1ZBTFVFCiBEU0EsMTA0LEJBRF9WRVJTSU9OCiBEU0EsMTA1LERF
Q09ERV9FUlJPUgogRFNBLDEwNixFTkNPREVfRVJST1IKK0RTQSwxMDcsSU5WQUxJRF9QQVJBTUVU
RVJTCiBEU0EsMTAxLE1JU1NJTkdfUEFSQU1FVEVSUwogRFNBLDEwMixNT0RVTFVTX1RPT19MQVJH
RQogRFNBLDEwMyxORUVEX05FV19TRVRVUF9WQUxVRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
ZXJyL2V2cC5lcnJvcmRhdGEgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Vyci9ldnAuZXJyb3JkYXRhCmluZGV4IGFl
YTRhOTRkNDE2NjEyNTQ2NWM5ZTBmOWUzNzFmMjNhOGY0ZGMzYjguLjc3MWNkNmEwNTgwMjVmMGMz
MjQ5MTE0MTJhYjU2YjIyZDVlMWJjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXJyL2V2cC5l
cnJvcmRhdGEKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9lcnIvZXZwLmVycm9yZGF0YQpAQCAtMTUsNiArMTUs
NyBAQCBFVlAsMTEzLElOVkFMSURfTUdGMV9NRAogRVZQLDExNCxJTlZBTElEX09QRVJBVElPTgog
RVZQLDExNSxJTlZBTElEX1BBRERJTkdfTU9ERQogRVZQLDEzMyxJTlZBTElEX1BBUkFNRVRFUlMK
K0VWUCwxMzQsSU5WQUxJRF9QRUVSX0tFWQogRVZQLDExNixJTlZBTElEX1BTU19TQUxUTEVOCiBF
VlAsMTMxLElOVkFMSURfU0lHTkFUVVJFCiBFVlAsMTE3LEtFWVNfTk9UX1NFVApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9lcnIvc3NsLmVycm9yZGF0YSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXJyL3NzbC5lcnJv
cmRhdGEKaW5kZXggMTcxYjljNzAzZTlhZjZmYzJlYTNiNzdhNDA5ZDlhNjA3YzI5ZTg1Zi4uMTMy
YzllMGZmNzk3ZjFmOTVmNjhkMDU5YmQ3ZTA0MDk1OGYxYzUxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9lcnIvc3NsLmVycm9yZGF0YQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Vyci9zc2wuZXJyb3JkYXRh
CkBAIC03MiwxNSArNzIsMTggQEAgU1NMLDI4NCxIQU5EU0hBS0VfTk9UX0NPTVBMRVRFCiBTU0ws
MTU1LEhUVFBTX1BST1hZX1JFUVVFU1QKIFNTTCwxNTYsSFRUUF9SRVFVRVNUCiBTU0wsMTU3LElO
QVBQUk9QUklBVEVfRkFMTEJBQ0sKK1NTTCwzMDMsSU5DT05TSVNURU5UX0NMSUVOVF9IRUxMTwog
U1NMLDI1OSxJTlZBTElEX0FMUE5fUFJPVE9DT0wKIFNTTCwxNTgsSU5WQUxJRF9DT01NQU5ECiBT
U0wsMjU2LElOVkFMSURfQ09NUFJFU1NJT05fTElTVAorU1NMLDMwMSxJTlZBTElEX0RFTEVHQVRF
RF9DUkVERU5USUFMCiBTU0wsMTU5LElOVkFMSURfTUVTU0FHRQogU1NMLDI1MSxJTlZBTElEX09V
VEVSX1JFQ09SRF9UWVBFCiBTU0wsMjY5LElOVkFMSURfU0NUX0xJU1QKIFNTTCwyOTUsSU5WQUxJ
RF9TSUdOQVRVUkVfQUxHT1JJVEhNCiBTU0wsMTYwLElOVkFMSURfU1NMX1NFU1NJT04KIFNTTCwx
NjEsSU5WQUxJRF9USUNLRVRfS0VZU19MRU5HVEgKK1NTTCwzMDIsS0VZX1VTQUdFX0JJVF9JTkNP
UlJFQ1QKIFNTTCwxNjIsTEVOR1RIX01JU01BVENICiBTU0wsMTY0LE1JU1NJTkdfRVhURU5TSU9O
CiBTU0wsMjU4LE1JU1NJTkdfS0VZX1NIQVJFCkBAIC0xOTMsNyArMTk2LDcgQEAgU1NMLDIxOCxU
TFNfUlNBX0VOQ1JZUFRFRF9WQUxVRV9MRU5HVEhfSVNfV1JPTkcKIFNTTCwyMTksVE9PX01BTllf
RU1QVFlfRlJBR01FTlRTCiBTU0wsMjYwLFRPT19NQU5ZX0tFWV9VUERBVEVTCiBTU0wsMjIwLFRP
T19NQU5ZX1dBUk5JTkdfQUxFUlRTCi1TU0wsMTExNyxUT09fTVVDSF9SRUFEX0VBUkxZX0RBVEEK
K1NTTCwzMDAsVE9PX01VQ0hfUkVBRF9FQVJMWV9EQVRBCiBTU0wsMjcwLFRPT19NVUNIX1NLSVBQ
RURfRUFSTFlfREFUQQogU1NMLDIyMSxVTkFCTEVfVE9fRklORF9FQ0RIX1BBUkFNRVRFUlMKIFNT
TCwyOTMsVU5DT01QUkVTU0VEX0NFUlRfVE9PX0xBUkdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2V2cC9ldnAuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cC5jCmluZGV4IGVkN2NjODViZDFjOThlZjMz
NmM3NGEwMDdmZmNkZGQ0ZjM0OWNmNDguLjBlOTBiNmY4YTQ2MDM3Y2NjOWNlZDNmZWMxZDhlYTM4
MjU3MTAwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cC5jCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vZXZwL2V2cC5jCkBAIC0yMDAsNiArMjAwLDggQEAgc3RhdGljIGNvbnN0IEVWUF9QS0VZX0FT
TjFfTUVUSE9EICpldnBfcGtleV9hc24xX2ZpbmQoaW50IG5pZCkgewogICAgICAgcmV0dXJuICZk
c2FfYXNuMV9tZXRoOwogICAgIGNhc2UgRVZQX1BLRVlfRUQyNTUxOToKICAgICAgIHJldHVybiAm
ZWQyNTUxOV9hc24xX21ldGg7CisgICAgY2FzZSBFVlBfUEtFWV9YMjU1MTk6CisgICAgICByZXR1
cm4gJngyNTUxOV9hc24xX21ldGg7CiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVybiBOVUxMOwog
ICB9CkBAIC0zMzAsNyArMzMyLDczIEBAIGludCBFVlBfUEtFWV9zZXRfdHlwZShFVlBfUEtFWSAq
cGtleSwgaW50IHR5cGUpIHsKICAgcmV0dXJuIDE7CiB9CiAKK0VWUF9QS0VZICpFVlBfUEtFWV9u
ZXdfcmF3X3ByaXZhdGVfa2V5KGludCB0eXBlLCBFTkdJTkUgKnVudXNlZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmluLCBzaXplX3QgbGVu
KSB7CisgIEVWUF9QS0VZICpyZXQgPSBFVlBfUEtFWV9uZXcoKTsKKyAgaWYgKHJldCA9PSBOVUxM
IHx8CisgICAgICAhRVZQX1BLRVlfc2V0X3R5cGUocmV0LCB0eXBlKSkgeworICAgIGdvdG8gZXJy
OworICB9CisKKyAgaWYgKHJldC0+YW1ldGgtPnNldF9wcml2X3JhdyA9PSBOVUxMKSB7CisgICAg
T1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9PUEVSQVRJT05fTk9UX1NVUFBPUlRFRF9GT1Jf
VEhJU19LRVlUWVBFKTsKKyAgICBnb3RvIGVycjsKKyAgfQorCisgIGlmICghcmV0LT5hbWV0aC0+
c2V0X3ByaXZfcmF3KHJldCwgaW4sIGxlbikpIHsKKyAgICBnb3RvIGVycjsKKyAgfQorCisgIHJl
dHVybiByZXQ7CisKK2VycjoKKyAgRVZQX1BLRVlfZnJlZShyZXQpOworICByZXR1cm4gTlVMTDsK
K30KKworRVZQX1BLRVkgKkVWUF9QS0VZX25ld19yYXdfcHVibGljX2tleShpbnQgdHlwZSwgRU5H
SU5FICp1bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQ4X3QgKmluLCBzaXplX3QgbGVuKSB7CisgIEVWUF9QS0VZICpyZXQgPSBFVlBfUEtFWV9u
ZXcoKTsKKyAgaWYgKHJldCA9PSBOVUxMIHx8CisgICAgICAhRVZQX1BLRVlfc2V0X3R5cGUocmV0
LCB0eXBlKSkgeworICAgIGdvdG8gZXJyOworICB9CisKKyAgaWYgKHJldC0+YW1ldGgtPnNldF9w
dWJfcmF3ID09IE5VTEwpIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX09QRVJB
VElPTl9OT1RfU1VQUE9SVEVEX0ZPUl9USElTX0tFWVRZUEUpOworICAgIGdvdG8gZXJyOworICB9
CiAKKyAgaWYgKCFyZXQtPmFtZXRoLT5zZXRfcHViX3JhdyhyZXQsIGluLCBsZW4pKSB7CisgICAg
Z290byBlcnI7CisgIH0KKworICByZXR1cm4gcmV0OworCitlcnI6CisgIEVWUF9QS0VZX2ZyZWUo
cmV0KTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKK2ludCBFVlBfUEtFWV9nZXRfcmF3X3ByaXZhdGVf
a2V5KGNvbnN0IEVWUF9QS0VZICpwa2V5LCB1aW50OF90ICpvdXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgKm91dF9sZW4pIHsKKyAgaWYgKHBrZXktPmFtZXRoLT5n
ZXRfcHJpdl9yYXcgPT0gTlVMTCkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1Jf
T1BFUkFUSU9OX05PVF9TVVBQT1JURURfRk9SX1RISVNfS0VZVFlQRSk7CisgICAgcmV0dXJuIDA7
CisgIH0KKworICByZXR1cm4gcGtleS0+YW1ldGgtPmdldF9wcml2X3Jhdyhwa2V5LCBvdXQsIG91
dF9sZW4pOworfQorCitpbnQgRVZQX1BLRVlfZ2V0X3Jhd19wdWJsaWNfa2V5KGNvbnN0IEVWUF9Q
S0VZICpwa2V5LCB1aW50OF90ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCAqb3V0X2xlbikgeworICBpZiAocGtleS0+YW1ldGgtPmdldF9wdWJfcmF3ID09IE5V
TEwpIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX09QRVJBVElPTl9OT1RfU1VQ
UE9SVEVEX0ZPUl9USElTX0tFWVRZUEUpOworICAgIHJldHVybiAwOworICB9CisKKyAgcmV0dXJu
IHBrZXktPmFtZXRoLT5nZXRfcHViX3Jhdyhwa2V5LCBvdXQsIG91dF9sZW4pOworfQogCiBpbnQg
RVZQX1BLRVlfY21wX3BhcmFtZXRlcnMoY29uc3QgRVZQX1BLRVkgKmEsIGNvbnN0IEVWUF9QS0VZ
ICpiKSB7CiAgIGlmIChhLT50eXBlICE9IGItPnR5cGUpIHsKQEAgLTM2MSwzICs0MjksMTAgQEAg
dm9pZCBPcGVuU1NMX2FkZF9hbGxfY2lwaGVycyh2b2lkKSB7fQogdm9pZCBPcGVuU1NMX2FkZF9h
bGxfZGlnZXN0cyh2b2lkKSB7fQogCiB2b2lkIEVWUF9jbGVhbnVwKHZvaWQpIHt9CisKK2ludCBF
VlBfUEtFWV9iYXNlX2lkKGNvbnN0IEVWUF9QS0VZICpwa2V5KSB7CisgIC8vIE9wZW5TU0wgaGFz
IHR3byBub3Rpb25zIG9mIGtleSB0eXBlIGJlY2F1c2UgaXQgc3VwcG9ydHMgbXVsdGlwbGUgT0lE
cyBmb3IKKyAgLy8gdGhlIHNhbWUgYWxnb3JpdGhtOiBOSURfcnNhIHZzIE5JRF9yc2FFbmNyeXB0
aW9uIGFuZCBmaXZlIGRpc3RpbmN0IHNwZWxsaW5nCisgIC8vIG9mIERTQS4gV2UgZG8gbm90IHN1
cHBvcnQgdGhlc2UsIHNvIHRoZSBiYXNlIElEIGlzIHNpbXBseSB0aGUgSUQuCisgIHJldHVybiBF
VlBfUEtFWV9pZChwa2V5KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cF9hc24x
LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2V2cC9ldnBfYXNuMS5jCmluZGV4IDM4M2UyZjliODEzNjgyN2NkYzRk
MTA3MmIxODFhZmVmYThmZWU0ZDIuLmZjMWRjZTMxNzVlMTkwZWMxM2EwYTA1Yjk0YmZlOTllNjlj
ZDhkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cF9hc24xLmMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9ldnAvZXZwX2FzbjEuYwpAQCAtNzMsNiArNzMsNyBAQCBzdGF0aWMgY29uc3QgRVZQX1BL
RVlfQVNOMV9NRVRIT0QgKmNvbnN0IGtBU04xTWV0aG9kc1tdID0gewogICAgICZlY19hc24xX21l
dGgsCiAgICAgJmRzYV9hc24xX21ldGgsCiAgICAgJmVkMjU1MTlfYXNuMV9tZXRoLAorICAgICZ4
MjU1MTlfYXNuMV9tZXRoLAogfTsKIAogc3RhdGljIGludCBwYXJzZV9rZXlfdHlwZShDQlMgKmNi
cywgaW50ICpvdXRfdHlwZSkgewpAQCAtMzQ0LDMgKzM0NSw0NCBAQCBpbnQgaTJkX1B1YmxpY0tl
eShjb25zdCBFVlBfUEtFWSAqa2V5LCB1aW50OF90ICoqb3V0cCkgewogICAgICAgcmV0dXJuIC0x
OwogICB9CiB9CisKK0VWUF9QS0VZICpkMmlfUHVibGljS2V5KGludCB0eXBlLCBFVlBfUEtFWSAq
Km91dCwgY29uc3QgdWludDhfdCAqKmlucCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcg
bGVuKSB7CisgIEVWUF9QS0VZICpyZXQgPSBFVlBfUEtFWV9uZXcoKTsKKyAgaWYgKHJldCA9PSBO
VUxMKSB7CisgICAgcmV0dXJuIE5VTEw7CisgIH0KKworICBDQlMgY2JzOworICBDQlNfaW5pdCgm
Y2JzLCAqaW5wLCBsZW4gPCAwID8gMCA6IChzaXplX3QpbGVuKTsKKyAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBFVlBfUEtFWV9SU0E6IHsKKyAgICAgIFJTQSAqcnNhID0gUlNBX3BhcnNlX3B1
YmxpY19rZXkoJmNicyk7CisgICAgICBpZiAocnNhID09IE5VTEwgfHwgIUVWUF9QS0VZX2Fzc2ln
bl9SU0EocmV0LCByc2EpKSB7CisgICAgICAgIFJTQV9mcmVlKHJzYSk7CisgICAgICAgIGdvdG8g
ZXJyOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gVW5saWtlIE9wZW5T
U0wsIHdlIGRvIG5vdCBzdXBwb3J0IEVDIGtleXMgd2l0aCB0aGlzIEFQSS4gVGhlIHJhdyBFQwor
ICAgIC8vIHB1YmxpYyBrZXkgc2VyaWFsaXphdGlvbiByZXF1aXJlcyBrbm93aW5nIHRoZSBncm91
cC4gSW4gT3BlblNTTCwgY2FsbGluZworICAgIC8vIHRoaXMgZnVuY3Rpb24gd2l0aCB8RVZQX1BL
RVlfRUN8IGFuZCBzZXR0aW5nIHxvdXR8IHRvIE5VTEwgZG9lcyBub3Qgd29yay4KKyAgICAvLyBJ
dCByZXF1aXJlcyB8Km91dHwgdG8gaW5jbHVkZSBhIHBhcnRpYWxseS1pbml0aWF6ZWQgfEVWUF9Q
S0VZfCB0byBleHRyYWN0CisgICAgLy8gdGhlIGdyb3VwLgorICAgIGRlZmF1bHQ6CisgICAgICBP
UEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX1VOU1VQUE9SVEVEX1BVQkxJQ19LRVlfVFlQRSk7
CisgICAgICBnb3RvIGVycjsKKyAgfQorCisgICppbnAgPSBDQlNfZGF0YSgmY2JzKTsKKyAgaWYg
KG91dCAhPSBOVUxMKSB7CisgICAgRVZQX1BLRVlfZnJlZSgqb3V0KTsKKyAgICAqb3V0ID0gcmV0
OworICB9CisgIHJldHVybiByZXQ7CisKK2VycjoKKyAgRVZQX1BLRVlfZnJlZShyZXQpOworICBy
ZXR1cm4gTlVMTDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cF9jdHguYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vZXZwL2V2cF9jdHguYwppbmRleCAzNTk5Zjc3ODM4NzMxMTQ3YzQ4MTJlODVmYjhm
NjE0NTgzNWM3N2FmLi45Y2EyYzU1ODE1YTU1YzlkNTE4NzI2OTA2NWMzMDZmZjhhMzhkYjlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9ldnBfY3R4LmMKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ldnAv
ZXZwX2N0eC5jCkBAIC02NywxNSArNjcsMTQgQEAKIAogCiBzdGF0aWMgY29uc3QgRVZQX1BLRVlf
TUVUSE9EICpjb25zdCBldnBfbWV0aG9kc1tdID0gewotICAmcnNhX3BrZXlfbWV0aCwKLSAgJmVj
X3BrZXlfbWV0aCwKLSAgJmVkMjU1MTlfcGtleV9tZXRoLAorICAgICZyc2FfcGtleV9tZXRoLAor
ICAgICZlY19wa2V5X21ldGgsCisgICAgJmVkMjU1MTlfcGtleV9tZXRoLAorICAgICZ4MjU1MTlf
cGtleV9tZXRoLAogfTsKIAogc3RhdGljIGNvbnN0IEVWUF9QS0VZX01FVEhPRCAqZXZwX3BrZXlf
bWV0aF9maW5kKGludCB0eXBlKSB7Ci0gIHVuc2lnbmVkIGk7Ci0KLSAgZm9yIChpID0gMDsgaSA8
IHNpemVvZihldnBfbWV0aG9kcykvc2l6ZW9mKEVWUF9QS0VZX01FVEhPRCopOyBpKyspIHsKKyAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoZXZwX21ldGhvZHMpL3NpemVvZihFVlBfUEtF
WV9NRVRIT0QqKTsgaSsrKSB7CiAgICAgaWYgKGV2cF9tZXRob2RzW2ldLT5wa2V5X2lkID09IHR5
cGUpIHsKICAgICAgIHJldHVybiBldnBfbWV0aG9kc1tpXTsKICAgICB9CkBAIC00MTUsNyArNDE0
LDcgQEAgaW50IEVWUF9QS0VZX2tleWdlbl9pbml0KEVWUF9QS0VZX0NUWCAqY3R4KSB7CiAgIHJl
dHVybiAxOwogfQogCi1pbnQgRVZQX1BLRVlfa2V5Z2VuKEVWUF9QS0VZX0NUWCAqY3R4LCBFVlBf
UEtFWSAqKnBwa2V5KSB7CitpbnQgRVZQX1BLRVlfa2V5Z2VuKEVWUF9QS0VZX0NUWCAqY3R4LCBF
VlBfUEtFWSAqKm91dF9wa2V5KSB7CiAgIGlmICghY3R4IHx8ICFjdHgtPnBtZXRoIHx8ICFjdHgt
PnBtZXRoLT5rZXlnZW4pIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX09QRVJB
VElPTl9OT1RfU1VQUE9SVEVEX0ZPUl9USElTX0tFWVRZUEUpOwogICAgIHJldHVybiAwOwpAQCAt
NDI1LDIxICs0MjQsNjAgQEAgaW50IEVWUF9QS0VZX2tleWdlbihFVlBfUEtFWV9DVFggKmN0eCwg
RVZQX1BLRVkgKipwcGtleSkgewogICAgIHJldHVybiAwOwogICB9CiAKLSAgaWYgKCFwcGtleSkg
eworICBpZiAoIW91dF9wa2V5KSB7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBpZiAoISpvdXRf
cGtleSkgeworICAgICpvdXRfcGtleSA9IEVWUF9QS0VZX25ldygpOworICAgIGlmICghKm91dF9w
a2V5KSB7CisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVSUl9MSUJfRVZQKTsKKyAgICAg
IHJldHVybiAwOworICAgIH0KKyAgfQorCisgIGlmICghY3R4LT5wbWV0aC0+a2V5Z2VuKGN0eCwg
Km91dF9wa2V5KSkgeworICAgIEVWUF9QS0VZX2ZyZWUoKm91dF9wa2V5KTsKKyAgICAqb3V0X3Br
ZXkgPSBOVUxMOworICAgIHJldHVybiAwOworICB9CisgIHJldHVybiAxOworfQorCitpbnQgRVZQ
X1BLRVlfcGFyYW1nZW5faW5pdChFVlBfUEtFWV9DVFggKmN0eCkgeworICBpZiAoIWN0eCB8fCAh
Y3R4LT5wbWV0aCB8fCAhY3R4LT5wbWV0aC0+cGFyYW1nZW4pIHsKKyAgICBPUEVOU1NMX1BVVF9F
UlJPUihFVlAsIEVWUF9SX09QRVJBVElPTl9OT1RfU1VQUE9SVEVEX0ZPUl9USElTX0tFWVRZUEUp
OworICAgIHJldHVybiAwOworICB9CisgIGN0eC0+b3BlcmF0aW9uID0gRVZQX1BLRVlfT1BfUEFS
QU1HRU47CisgIHJldHVybiAxOworfQorCitpbnQgRVZQX1BLRVlfcGFyYW1nZW4oRVZQX1BLRVlf
Q1RYICpjdHgsIEVWUF9QS0VZICoqb3V0X3BrZXkpIHsKKyAgaWYgKCFjdHggfHwgIWN0eC0+cG1l
dGggfHwgIWN0eC0+cG1ldGgtPnBhcmFtZ2VuKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQ
LCBFVlBfUl9PUEVSQVRJT05fTk9UX1NVUFBPUlRFRF9GT1JfVEhJU19LRVlUWVBFKTsKKyAgICBy
ZXR1cm4gMDsKKyAgfQorICBpZiAoY3R4LT5vcGVyYXRpb24gIT0gRVZQX1BLRVlfT1BfUEFSQU1H
RU4pIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX09QRVJBVE9OX05PVF9JTklU
SUFMSVpFRCk7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBpZiAoIW91dF9wa2V5KSB7CiAgICAg
cmV0dXJuIDA7CiAgIH0KIAotICBpZiAoISpwcGtleSkgewotICAgICpwcGtleSA9IEVWUF9QS0VZ
X25ldygpOwotICAgIGlmICghKnBwa2V5KSB7CisgIGlmICghKm91dF9wa2V5KSB7CisgICAgKm91
dF9wa2V5ID0gRVZQX1BLRVlfbmV3KCk7CisgICAgaWYgKCEqb3V0X3BrZXkpIHsKICAgICAgIE9Q
RU5TU0xfUFVUX0VSUk9SKEVWUCwgRVJSX0xJQl9FVlApOwogICAgICAgcmV0dXJuIDA7CiAgICAg
fQogICB9CiAKLSAgaWYgKCFjdHgtPnBtZXRoLT5rZXlnZW4oY3R4LCAqcHBrZXkpKSB7Ci0gICAg
RVZQX1BLRVlfZnJlZSgqcHBrZXkpOwotICAgICpwcGtleSA9IE5VTEw7CisgIGlmICghY3R4LT5w
bWV0aC0+cGFyYW1nZW4oY3R4LCAqb3V0X3BrZXkpKSB7CisgICAgRVZQX1BLRVlfZnJlZSgqb3V0
X3BrZXkpOworICAgICpvdXRfcGtleSA9IE5VTEw7CiAgICAgcmV0dXJuIDA7CiAgIH0KICAgcmV0
dXJuIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9ldnBfZXh0cmFfdGVzdC5jYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vZXZwL2V2cF9leHRyYV90ZXN0LmNjCmluZGV4IGYxMjY1MGVmMTFmMTVhNGJjZDJj
NGUzYTFiYzA4ZmI3ZTNlMDdhYmMuLmY1MjA1OTg4NzlhODBjNmI5ZjFhYmRiN2I1YzcxZjQxNGM5
MjMyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cF9leHRyYV90ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZXZwL2V2cF9leHRyYV90ZXN0LmNjCkBAIC01NTUsMTMgKzU1NSwxMCBAQCBU
RVNUKEVWUEV4dHJhVGVzdCwgRWQyNTUxOSkgewogICAgICAgMHhhNiwgMHgyMywgMHgyNSwgMHhh
ZiwgMHgwMiwgMHgxYSwgMHg2OCwgMHhmNywgMHgwNywgMHg1MSwgMHgxYSwKICAgfTsKIAotICBz
dGF0aWMgY29uc3QgdWludDhfdCBrUHJpdmF0ZUtleVs2NF0gPSB7CisgIHN0YXRpYyBjb25zdCB1
aW50OF90IGtQcml2YXRlS2V5U2VlZFszMl0gPSB7CiAgICAgICAweDlkLCAweDYxLCAweGIxLCAw
eDlkLCAweGVmLCAweGZkLCAweDVhLCAweDYwLCAweGJhLCAweDg0LCAweDRhLAogICAgICAgMHhm
NCwgMHg5MiwgMHhlYywgMHgyYywgMHhjNCwgMHg0NCwgMHg0OSwgMHhjNSwgMHg2OSwgMHg3Yiwg
MHgzMiwKLSAgICAgIDB4NjksIDB4MTksIDB4NzAsIDB4M2IsIDB4YWMsIDB4MDMsIDB4MWMsIDB4
YWUsIDB4N2YsIDB4NjAsIDB4ZDcsCi0gICAgICAweDVhLCAweDk4LCAweDAxLCAweDgyLCAweGIx
LCAweDBhLCAweGI3LCAweGQ1LCAweDRiLCAweGZlLCAweGQzLAotICAgICAgMHhjOSwgMHg2NCwg
MHgwNywgMHgzYSwgMHgwZSwgMHhlMSwgMHg3MiwgMHhmMywgMHhkYSwgMHhhNiwgMHgyMywKLSAg
ICAgIDB4MjUsIDB4YWYsIDB4MDIsIDB4MWEsIDB4NjgsIDB4ZjcsIDB4MDcsIDB4NTEsIDB4MWEs
CisgICAgICAweDY5LCAweDE5LCAweDcwLCAweDNiLCAweGFjLCAweDAzLCAweDFjLCAweGFlLCAw
eDdmLCAweDYwLAogICB9OwogCiAgIHN0YXRpYyBjb25zdCB1aW50OF90IGtQcml2YXRlS2V5UEtD
UzhbXSA9IHsKQEAgLTU3MiwxMCArNTY5LDM4IEBAIFRFU1QoRVZQRXh0cmFUZXN0LCBFZDI1NTE5
KSB7CiAgIH07CiAKICAgLy8gQ3JlYXRlIGEgcHVibGljIGtleS4KLSAgYnNzbDo6VW5pcXVlUHRy
PEVWUF9QS0VZPiBwdWJrZXkoRVZQX1BLRVlfbmV3X2VkMjU1MTlfcHVibGljKGtQdWJsaWNLZXkp
KTsKKyAgYnNzbDo6VW5pcXVlUHRyPEVWUF9QS0VZPiBwdWJrZXkoRVZQX1BLRVlfbmV3X3Jhd19w
dWJsaWNfa2V5KAorICAgICAgRVZQX1BLRVlfRUQyNTUxOSwgbnVsbHB0ciwga1B1YmxpY0tleSwg
c2l6ZW9mKGtQdWJsaWNLZXkpKSk7CiAgIEFTU0VSVF9UUlVFKHB1YmtleSk7CiAgIEVYUEVDVF9F
UShFVlBfUEtFWV9FRDI1NTE5LCBFVlBfUEtFWV9pZChwdWJrZXkuZ2V0KCkpKTsKIAorICAvLyBU
aGUgcHVibGljIGtleSBtdXN0IGJlIGV4dHJhY3RhYmxlLgorICB1aW50OF90IGJ1ZlszMl07Cisg
IHNpemVfdCBsZW47CisgIEFTU0VSVF9UUlVFKEVWUF9QS0VZX2dldF9yYXdfcHVibGljX2tleShw
dWJrZXkuZ2V0KCksIG51bGxwdHIsICZsZW4pKTsKKyAgRVhQRUNUX0VRKGxlbiwgMzJ1KTsKKyAg
QVNTRVJUX1RSVUUoRVZQX1BLRVlfZ2V0X3Jhd19wdWJsaWNfa2V5KHB1YmtleS5nZXQoKSwgYnVm
LCAmbGVuKSk7CisgIEVYUEVDVF9FUShCeXRlcyhidWYsIGxlbiksIEJ5dGVzKGtQdWJsaWNLZXkp
KTsKKyAgLy8gUGFzc2luZyB0b28gbGFyZ2Ugb2YgYSBidWZmZXIgaXMgb2theS4gVGhlIGZ1bmN0
aW9uIHdpbGwgc3RpbGwgb25seSByZWFkCisgIC8vIDMyIGJ5dGVzLgorICBsZW4gPSA2NDsKKyAg
QVNTRVJUX1RSVUUoRVZQX1BLRVlfZ2V0X3Jhd19wdWJsaWNfa2V5KHB1YmtleS5nZXQoKSwgYnVm
LCAmbGVuKSk7CisgIEVYUEVDVF9FUShCeXRlcyhidWYsIGxlbiksIEJ5dGVzKGtQdWJsaWNLZXkp
KTsKKyAgLy8gUGFzc2luZyB0b28gc21hbGwgb2YgYSBidWZmZXIgaXMgbm90aWNlZC4KKyAgbGVu
ID0gMzE7CisgIEVYUEVDVF9GQUxTRShFVlBfUEtFWV9nZXRfcmF3X3B1YmxpY19rZXkocHVia2V5
LmdldCgpLCBidWYsICZsZW4pKTsKKyAgdWludDMyX3QgZXJyID0gRVJSX2dldF9lcnJvcigpOwor
ICBFWFBFQ1RfRVEoRVJSX0xJQl9FVlAsIEVSUl9HRVRfTElCKGVycikpOworICBFWFBFQ1RfRVEo
RVZQX1JfQlVGRkVSX1RPT19TTUFMTCwgRVJSX0dFVF9SRUFTT04oZXJyKSk7CisgIEVSUl9jbGVh
cl9lcnJvcigpOworCisgIC8vIFRoZXJlIGlzIG5vIHByaXZhdGUga2V5LgorICBFWFBFQ1RfRkFM
U0UoRVZQX1BLRVlfZ2V0X3Jhd19wcml2YXRlX2tleShwdWJrZXkuZ2V0KCksIG51bGxwdHIsICZs
ZW4pKTsKKyAgZXJyID0gRVJSX2dldF9lcnJvcigpOworICBFWFBFQ1RfRVEoRVJSX0xJQl9FVlAs
IEVSUl9HRVRfTElCKGVycikpOworICBFWFBFQ1RfRVEoRVZQX1JfTk9UX0FfUFJJVkFURV9LRVks
IEVSUl9HRVRfUkVBU09OKGVycikpOworICBFUlJfY2xlYXJfZXJyb3IoKTsKKwogICAvLyBUaGUg
cHVibGljIGtleSBtdXN0IGVuY29kZSBwcm9wZXJseS4KICAgYnNzbDo6U2NvcGVkQ0JCIGNiYjsK
ICAgdWludDhfdCAqZGVyOwpAQCAtNTg5LDE2ICs2MTQsNDAgQEAgVEVTVChFVlBFeHRyYVRlc3Qs
IEVkMjU1MTkpIHsKICAgLy8gVGhlIHB1YmxpYyBrZXkgbXVzdCBncmFjZWZ1bGx5IGZhaWwgdG8g
ZW5jb2RlIGFzIGEgcHJpdmF0ZSBrZXkuCiAgIEFTU0VSVF9UUlVFKENCQl9pbml0KGNiYi5nZXQo
KSwgMCkpOwogICBFWFBFQ1RfRkFMU0UoRVZQX21hcnNoYWxfcHJpdmF0ZV9rZXkoY2JiLmdldCgp
LCBwdWJrZXkuZ2V0KCkpKTsKLSAgdWludDMyX3QgZXJyID0gRVJSX2dldF9lcnJvcigpOworICBl
cnIgPSBFUlJfZ2V0X2Vycm9yKCk7CiAgIEVYUEVDVF9FUShFUlJfTElCX0VWUCwgRVJSX0dFVF9M
SUIoZXJyKSk7CiAgIEVYUEVDVF9FUShFVlBfUl9OT1RfQV9QUklWQVRFX0tFWSwgRVJSX0dFVF9S
RUFTT04oZXJyKSk7CisgIEVSUl9jbGVhcl9lcnJvcigpOwogICBjYmIuUmVzZXQoKTsKIAogICAv
LyBDcmVhdGUgYSBwcml2YXRlIGtleS4KLSAgYnNzbDo6VW5pcXVlUHRyPEVWUF9QS0VZPiBwcml2
a2V5KEVWUF9QS0VZX25ld19lZDI1NTE5X3ByaXZhdGUoa1ByaXZhdGVLZXkpKTsKKyAgYnNzbDo6
VW5pcXVlUHRyPEVWUF9QS0VZPiBwcml2a2V5KEVWUF9QS0VZX25ld19yYXdfcHJpdmF0ZV9rZXko
CisgICAgICBFVlBfUEtFWV9FRDI1NTE5LCBOVUxMLCBrUHJpdmF0ZUtleVNlZWQsIHNpemVvZihr
UHJpdmF0ZUtleVNlZWQpKSk7CiAgIEFTU0VSVF9UUlVFKHByaXZrZXkpOwogICBFWFBFQ1RfRVEo
RVZQX1BLRVlfRUQyNTUxOSwgRVZQX1BLRVlfaWQocHJpdmtleS5nZXQoKSkpOwogCisgIC8vIFRo
ZSBwcml2YXRlIGtleSBtdXN0IGJlIGV4dHJhY3RhYmxlLgorICBBU1NFUlRfVFJVRShFVlBfUEtF
WV9nZXRfcmF3X3ByaXZhdGVfa2V5KHByaXZrZXkuZ2V0KCksIG51bGxwdHIsICZsZW4pKTsKKyAg
RVhQRUNUX0VRKGxlbiwgMzJ1KTsKKyAgQVNTRVJUX1RSVUUoRVZQX1BLRVlfZ2V0X3Jhd19wcml2
YXRlX2tleShwcml2a2V5LmdldCgpLCBidWYsICZsZW4pKTsKKyAgRVhQRUNUX0VRKEJ5dGVzKGJ1
ZiwgbGVuKSwgQnl0ZXMoa1ByaXZhdGVLZXlTZWVkKSk7CisgIC8vIFBhc3NpbmcgdG9vIGxhcmdl
IG9mIGEgYnVmZmVyIGlzIG9rYXkuIFRoZSBmdW5jdGlvbiB3aWxsIHN0aWxsIG9ubHkgcmVhZAor
ICAvLyAzMiBieXRlcy4KKyAgbGVuID0gNjQ7CisgIEFTU0VSVF9UUlVFKEVWUF9QS0VZX2dldF9y
YXdfcHJpdmF0ZV9rZXkocHJpdmtleS5nZXQoKSwgYnVmLCAmbGVuKSk7CisgIEVYUEVDVF9FUShC
eXRlcyhidWYsIGxlbiksIEJ5dGVzKGtQcml2YXRlS2V5U2VlZCkpOworICAvLyBQYXNzaW5nIHRv
byBzbWFsbCBvZiBhIGJ1ZmZlciBpcyBub3RpY2VkLgorICBsZW4gPSAzMTsKKyAgRVhQRUNUX0ZB
TFNFKEVWUF9QS0VZX2dldF9yYXdfcHJpdmF0ZV9rZXkocHJpdmtleS5nZXQoKSwgYnVmLCAmbGVu
KSk7CisgIGVyciA9IEVSUl9nZXRfZXJyb3IoKTsKKyAgRVhQRUNUX0VRKEVSUl9MSUJfRVZQLCBF
UlJfR0VUX0xJQihlcnIpKTsKKyAgRVhQRUNUX0VRKEVWUF9SX0JVRkZFUl9UT09fU01BTEwsIEVS
Ul9HRVRfUkVBU09OKGVycikpOworICBFUlJfY2xlYXJfZXJyb3IoKTsKKyAgLy8gVGhlIHB1Ymxp
YyBrZXkgbXVzdCBiZSBleHRyYWN0YWJsZS4KKyAgbGVuID0gMzI7CisgIEFTU0VSVF9UUlVFKEVW
UF9QS0VZX2dldF9yYXdfcHVibGljX2tleShwcml2a2V5LmdldCgpLCBidWYsICZsZW4pKTsKKyAg
RVhQRUNUX0VRKEJ5dGVzKGJ1ZiwgbGVuKSwgQnl0ZXMoa1B1YmxpY0tleSkpOworCiAgIC8vIFRo
ZSBwdWJsaWMga2V5IG11c3QgZW5jb2RlIGZyb20gdGhlIHByaXZhdGUga2V5LgogICBBU1NFUlRf
VFJVRShDQkJfaW5pdChjYmIuZ2V0KCksIDApKTsKICAgQVNTRVJUX1RSVUUoRVZQX21hcnNoYWxf
cHVibGljX2tleShjYmIuZ2V0KCksIHByaXZrZXkuZ2V0KCkpKTsKQEAgLTYxNyw3ICs2NjYsOCBA
QCBURVNUKEVWUEV4dHJhVGVzdCwgRWQyNTUxOSkgewogICBFWFBFQ1RfRVEoMSwgRVZQX1BLRVlf
Y21wKHB1YmtleS5nZXQoKSwgcHJpdmtleS5nZXQoKSkpOwogCiAgIHN0YXRpYyBjb25zdCB1aW50
OF90IGtaZXJvc1szMl0gPSB7MH07Ci0gIGJzc2w6OlVuaXF1ZVB0cjxFVlBfUEtFWT4gcHVia2V5
MihFVlBfUEtFWV9uZXdfZWQyNTUxOV9wdWJsaWMoa1plcm9zKSk7CisgIGJzc2w6OlVuaXF1ZVB0
cjxFVlBfUEtFWT4gcHVia2V5MihFVlBfUEtFWV9uZXdfcmF3X3B1YmxpY19rZXkoCisgICAgICBF
VlBfUEtFWV9FRDI1NTE5LCBudWxscHRyLCBrWmVyb3MsIHNpemVvZihrWmVyb3MpKSk7CiAgIEFT
U0VSVF9UUlVFKHB1YmtleTIpOwogICBFWFBFQ1RfRVEoMCwgRVZQX1BLRVlfY21wKHB1YmtleS5n
ZXQoKSwgcHVia2V5Mi5nZXQoKSkpOwogICBFWFBFQ1RfRVEoMCwgRVZQX1BLRVlfY21wKHByaXZr
ZXkuZ2V0KCksIHB1YmtleTIuZ2V0KCkpKTsKQEAgLTYyNyw3ICs2NzcsNiBAQCBURVNUKEVWUEV4
dHJhVGVzdCwgRWQyNTUxOSkgewogICBBU1NFUlRfVFJVRSgKICAgICAgIEVWUF9EaWdlc3RTaWdu
SW5pdChjdHguZ2V0KCksIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIHByaXZrZXkuZ2V0KCkp
KTsKICAgRVhQRUNUX0ZBTFNFKEVWUF9EaWdlc3RTaWduVXBkYXRlKGN0eC5nZXQoKSwgbnVsbHB0
ciwgMCkpOwotICBzaXplX3QgbGVuOwogICBFWFBFQ1RfRkFMU0UoRVZQX0RpZ2VzdFNpZ25GaW5h
bChjdHguZ2V0KCksIG51bGxwdHIsICZsZW4pKTsKICAgRVJSX2NsZWFyX2Vycm9yKCk7CiAKQEAg
LTYzNyw0ICs2ODYsOTkgQEAgVEVTVChFVlBFeHRyYVRlc3QsIEVkMjU1MTkpIHsKICAgRVhQRUNU
X0ZBTFNFKEVWUF9EaWdlc3RWZXJpZnlVcGRhdGUoY3R4LmdldCgpLCBudWxscHRyLCAwKSk7CiAg
IEVYUEVDVF9GQUxTRShFVlBfRGlnZXN0VmVyaWZ5RmluYWwoY3R4LmdldCgpLCBudWxscHRyLCAw
KSk7CiAgIEVSUl9jbGVhcl9lcnJvcigpOworCisgIC8vIFRoZSBidWZmZXIgbGVuZ3RoIHRvIHxF
VlBfRGlnZXN0U2lnbnwgaXMgYW4gaW5wdXQvb3V0cHV0IHBhcmFtZXRlciBhbmQKKyAgLy8gc2hv
dWxkIGJlIGNoZWNrZWQgYmVmb3JlIHNpZ25pbmcuCisgIGN0eC5SZXNldCgpOworICBBU1NFUlRf
VFJVRSgKKyAgICAgIEVWUF9EaWdlc3RTaWduSW5pdChjdHguZ2V0KCksIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIHByaXZrZXkuZ2V0KCkpKTsKKyAgbGVuID0gMzE7CisgIEVYUEVDVF9GQUxT
RShFVlBfRGlnZXN0U2lnbihjdHguZ2V0KCksIGJ1ZiwgJmxlbiwgbnVsbHB0ciAvKiBtc2cgKi8s
IDApKTsKKyAgZXJyID0gRVJSX2dldF9lcnJvcigpOworICBFWFBFQ1RfRVEoRVJSX0xJQl9FVlAs
IEVSUl9HRVRfTElCKGVycikpOworICBFWFBFQ1RfRVEoRVZQX1JfQlVGRkVSX1RPT19TTUFMTCwg
RVJSX0dFVF9SRUFTT04oZXJyKSk7CisgIEVSUl9jbGVhcl9lcnJvcigpOworfQorCitzdGF0aWMg
dm9pZCBFeHBlY3RFQ0dyb3VwT25seShjb25zdCBFVlBfUEtFWSAqcGtleSwgaW50IG5pZCkgewor
ICBFQ19LRVkgKmVjID0gRVZQX1BLRVlfZ2V0MF9FQ19LRVkocGtleSk7CisgIEFTU0VSVF9UUlVF
KGVjKTsKKyAgY29uc3QgRUNfR1JPVVAgKmdyb3VwID0gRUNfS0VZX2dldDBfZ3JvdXAoZWMpOwor
ICBBU1NFUlRfVFJVRShncm91cCk7CisgIEVYUEVDVF9FUShuaWQsIEVDX0dST1VQX2dldF9jdXJ2
ZV9uYW1lKGdyb3VwKSk7CisgIEVYUEVDVF9GQUxTRShFQ19LRVlfZ2V0MF9wdWJsaWNfa2V5KGVj
KSk7CisgIEVYUEVDVF9GQUxTRShFQ19LRVlfZ2V0MF9wcml2YXRlX2tleShlYykpOworfQorCitz
dGF0aWMgdm9pZCBFeHBlY3RFQ0dyb3VwQW5kS2V5KGNvbnN0IEVWUF9QS0VZICpwa2V5LCBpbnQg
bmlkKSB7CisgIEVDX0tFWSAqZWMgPSBFVlBfUEtFWV9nZXQwX0VDX0tFWShwa2V5KTsKKyAgQVNT
RVJUX1RSVUUoZWMpOworICBjb25zdCBFQ19HUk9VUCAqZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91
cChlYyk7CisgIEFTU0VSVF9UUlVFKGdyb3VwKTsKKyAgRVhQRUNUX0VRKG5pZCwgRUNfR1JPVVBf
Z2V0X2N1cnZlX25hbWUoZ3JvdXApKTsKKyAgRVhQRUNUX1RSVUUoRUNfS0VZX2dldDBfcHVibGlj
X2tleShlYykpOworICBFWFBFQ1RfVFJVRShFQ19LRVlfZ2V0MF9wcml2YXRlX2tleShlYykpOwor
fQorCitURVNUKEVWUEV4dHJhVGVzdCwgRUNLZXlnZW4pIHsKKyAgLy8gfEVWUF9QS0VZX3BhcmFt
Z2VufCBtYXkgYmUgdXNlZCBhcyBhbiBleHRyZW1lbHkgcm91bmRhYm91dCB3YXkgdG8gZ2V0IGFu
CisgIC8vIHxFQ19HUk9VUHwuCisgIGJzc2w6OlVuaXF1ZVB0cjxFVlBfUEtFWV9DVFg+IGN0eChF
VlBfUEtFWV9DVFhfbmV3X2lkKEVWUF9QS0VZX0VDLCBudWxscHRyKSk7CisgIEFTU0VSVF9UUlVF
KGN0eCk7CisgIEFTU0VSVF9UUlVFKEVWUF9QS0VZX3BhcmFtZ2VuX2luaXQoY3R4LmdldCgpKSk7
CisgIEFTU0VSVF9UUlVFKAorICAgICAgRVZQX1BLRVlfQ1RYX3NldF9lY19wYXJhbWdlbl9jdXJ2
ZV9uaWQoY3R4LmdldCgpLCBOSURfWDlfNjJfcHJpbWUyNTZ2MSkpOworICBFVlBfUEtFWSAqcmF3
ID0gbnVsbHB0cjsKKyAgQVNTRVJUX1RSVUUoRVZQX1BLRVlfcGFyYW1nZW4oY3R4LmdldCgpLCAm
cmF3KSk7CisgIGJzc2w6OlVuaXF1ZVB0cjxFVlBfUEtFWT4gcGtleShyYXcpOworICByYXcgPSBu
dWxscHRyOworICBFeHBlY3RFQ0dyb3VwT25seShwa2V5LmdldCgpLCBOSURfWDlfNjJfcHJpbWUy
NTZ2MSk7CisKKyAgLy8gVGhhdCByZXN1bHRpbmcgfEVWUF9QS0VZfCBtYXkgYmUgdXNlZCBhcyBh
IHRlbXBsYXRlIGZvciBrZXkgZ2VuZXJhdGlvbi4KKyAgY3R4LnJlc2V0KEVWUF9QS0VZX0NUWF9u
ZXcocGtleS5nZXQoKSwgbnVsbHB0cikpOworICBBU1NFUlRfVFJVRShjdHgpOworICBBU1NFUlRf
VFJVRShFVlBfUEtFWV9rZXlnZW5faW5pdChjdHguZ2V0KCkpKTsKKyAgcmF3ID0gbnVsbHB0cjsK
KyAgQVNTRVJUX1RSVUUoRVZQX1BLRVlfa2V5Z2VuKGN0eC5nZXQoKSwgJnJhdykpOworICBwa2V5
LnJlc2V0KHJhdyk7CisgIHJhdyA9IG51bGxwdHI7CisgIEV4cGVjdEVDR3JvdXBBbmRLZXkocGtl
eS5nZXQoKSwgTklEX1g5XzYyX3ByaW1lMjU2djEpOworCisgIC8vIHxFVlBfUEtFWV9wYXJhbWdl
bnwgbWF5IGFsc28gYmUgc2tpcHBlZC4KKyAgY3R4LnJlc2V0KEVWUF9QS0VZX0NUWF9uZXdfaWQo
RVZQX1BLRVlfRUMsIG51bGxwdHIpKTsKKyAgQVNTRVJUX1RSVUUoY3R4KTsKKyAgQVNTRVJUX1RS
VUUoRVZQX1BLRVlfa2V5Z2VuX2luaXQoY3R4LmdldCgpKSk7CisgIEFTU0VSVF9UUlVFKAorICAg
ICAgRVZQX1BLRVlfQ1RYX3NldF9lY19wYXJhbWdlbl9jdXJ2ZV9uaWQoY3R4LmdldCgpLCBOSURf
WDlfNjJfcHJpbWUyNTZ2MSkpOworICByYXcgPSBudWxscHRyOworICBBU1NFUlRfVFJVRShFVlBf
UEtFWV9rZXlnZW4oY3R4LmdldCgpLCAmcmF3KSk7CisgIHBrZXkucmVzZXQocmF3KTsKKyAgcmF3
ID0gbnVsbHB0cjsKKyAgRXhwZWN0RUNHcm91cEFuZEtleShwa2V5LmdldCgpLCBOSURfWDlfNjJf
cHJpbWUyNTZ2MSk7Cit9CisKKy8vIFRlc3QgdGhhdCB8RVZQX1BLRVlfa2V5Z2VufCB3b3JrcyBm
b3IgRWQyNTUxOS4KK1RFU1QoRVZQRXh0cmFUZXN0LCBFZDI1NTE5S2V5Z2VuKSB7CisgIGJzc2w6
OlVuaXF1ZVB0cjxFVlBfUEtFWV9DVFg+IHBjdHgoCisgICAgICBFVlBfUEtFWV9DVFhfbmV3X2lk
KEVWUF9QS0VZX0VEMjU1MTksIG51bGxwdHIpKTsKKyAgQVNTRVJUX1RSVUUocGN0eCk7CisgIEFT
U0VSVF9UUlVFKEVWUF9QS0VZX2tleWdlbl9pbml0KHBjdHguZ2V0KCkpKTsKKyAgRVZQX1BLRVkg
KnJhdyA9IG51bGxwdHI7CisgIEFTU0VSVF9UUlVFKEVWUF9QS0VZX2tleWdlbihwY3R4LmdldCgp
LCAmcmF3KSk7CisgIGJzc2w6OlVuaXF1ZVB0cjxFVlBfUEtFWT4gcGtleShyYXcpOworCisgIC8v
IFJvdW5kLXRyaXAgYSBzaWduYXR1cmUgdG8gc2FuaXR5LWNoZWNrIHRoZSBrZXkgaXMgZ29vZC4K
KyAgYnNzbDo6U2NvcGVkRVZQX01EX0NUWCBjdHg7CisgIEFTU0VSVF9UUlVFKAorICAgICAgRVZQ
X0RpZ2VzdFNpZ25Jbml0KGN0eC5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgcGtl
eS5nZXQoKSkpOworICB1aW50OF90IHNpZ1s2NF07CisgIHNpemVfdCBsZW4gPSBzaXplb2Yoc2ln
KTsKKyAgQVNTRVJUX1RSVUUoRVZQX0RpZ2VzdFNpZ24oY3R4LmdldCgpLCBzaWcsICZsZW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCAqPigiaGVsbG8iKSwgNSkpOworCisgIGN0eC5SZXNldCgpOworICBBU1NFUlRfVFJVRSgKKyAg
ICAgIEVWUF9EaWdlc3RWZXJpZnlJbml0KGN0eC5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgcGtleS5nZXQoKSkpOworICBBU1NFUlRfVFJVRShFVlBfRGlnZXN0VmVyaWZ5KGN0eC5n
ZXQoKSwgc2lnLCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCJoZWxsbyIpLCA1KSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2V2cC9ldnBfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cF90ZXN0LmNjCmlu
ZGV4IDcwZDAxNmFkNGYyMjUxMWE2YTlhZmEzYzExOGEyMzllN2ZmYjI0MzcuLmI0YmU2MzZiOGQ0
M2UwZTY4MmMyOGQwOTk4OWM1ZjZmYWVlOGFmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZw
L2V2cF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2V2cF90ZXN0LmNjCkBAIC0xMTksNiAr
MTE5LDkgQEAgc3RhdGljIGludCBHZXRLZXlUeXBlKEZpbGVUZXN0ICp0LCBjb25zdCBzdGQ6OnN0
cmluZyAmbmFtZSkgewogICBpZiAobmFtZSA9PSAiRWQyNTUxOSIpIHsKICAgICByZXR1cm4gRVZQ
X1BLRVlfRUQyNTUxOTsKICAgfQorICBpZiAobmFtZSA9PSAiWDI1NTE5IikgeworICAgIHJldHVy
biBFVlBfUEtFWV9YMjU1MTk7CisgIH0KICAgQUREX0ZBSUxVUkUoKSA8PCAiVW5rbm93biBrZXkg
dHlwZTogIiA8PCBuYW1lOwogICByZXR1cm4gRVZQX1BLRVlfTk9ORTsKIH0KQEAgLTE3OSw3ICsx
ODIsNjIgQEAgc3RhdGljIGJvb2wgSW1wb3J0S2V5KEZpbGVUZXN0ICp0LCBLZXlNYXAgKmtleV9t
YXAsCiAgICAgICAhdC0+R2V0Qnl0ZXMoJm91dHB1dCwgIk91dHB1dCIpKSB7CiAgICAgcmV0dXJu
IGZhbHNlOwogICB9Ci0gIEVYUEVDVF9FUShCeXRlcyhvdXRwdXQpLCBCeXRlcyhkZXIsIGRlcl9s
ZW4pKSA8PCAiUmUtZW5jb2RpbmcgdGhlIGtleSBkaWQgbm90IG1hdGNoLiI7CisgIEVYUEVDVF9F
UShCeXRlcyhvdXRwdXQpLCBCeXRlcyhkZXIsIGRlcl9sZW4pKQorICAgICAgPDwgIlJlLWVuY29k
aW5nIHRoZSBrZXkgZGlkIG5vdCBtYXRjaC4iOworCisgIGlmICh0LT5IYXNBdHRyaWJ1dGUoIkV4
cGVjdE5vUmF3UHJpdmF0ZSIpKSB7CisgICAgc2l6ZV90IGxlbjsKKyAgICBFWFBFQ1RfRkFMU0Uo
RVZQX1BLRVlfZ2V0X3Jhd19wcml2YXRlX2tleShwa2V5LmdldCgpLCBudWxscHRyLCAmbGVuKSk7
CisgIH0gZWxzZSBpZiAodC0+SGFzQXR0cmlidXRlKCJFeHBlY3RSYXdQcml2YXRlIikpIHsKKyAg
ICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBleHBlY3RlZDsKKyAgICBpZiAoIXQtPkdldEJ5dGVzKCZl
eHBlY3RlZCwgIkV4cGVjdFJhd1ByaXZhdGUiKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHJhdzsKKyAgICBzaXplX3QgbGVuOworICAg
IGlmICghRVZQX1BLRVlfZ2V0X3Jhd19wcml2YXRlX2tleShwa2V5LmdldCgpLCBudWxscHRyLCAm
bGVuKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByYXcucmVzaXplKGxlbik7
CisgICAgaWYgKCFFVlBfUEtFWV9nZXRfcmF3X3ByaXZhdGVfa2V5KHBrZXkuZ2V0KCksIHJhdy5k
YXRhKCksICZsZW4pKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJhdy5yZXNp
emUobGVuKTsKKyAgICBFWFBFQ1RfRVEoQnl0ZXMocmF3KSwgQnl0ZXMoZXhwZWN0ZWQpKTsKKwor
ICAgIC8vIFNob3J0IGJ1ZmZlcnMgc2hvdWxkIGJlIHJlamVjdGVkLgorICAgIHJhdy5yZXNpemUo
bGVuIC0gMSk7CisgICAgbGVuID0gcmF3LnNpemUoKTsKKyAgICBFWFBFQ1RfRkFMU0UoRVZQX1BL
RVlfZ2V0X3Jhd19wcml2YXRlX2tleShwa2V5LmdldCgpLCByYXcuZGF0YSgpLCAmbGVuKSk7Cisg
IH0KKworICBpZiAodC0+SGFzQXR0cmlidXRlKCJFeHBlY3ROb1Jhd1B1YmxpYyIpKSB7CisgICAg
c2l6ZV90IGxlbjsKKyAgICBFWFBFQ1RfRkFMU0UoRVZQX1BLRVlfZ2V0X3Jhd19wdWJsaWNfa2V5
KHBrZXkuZ2V0KCksIG51bGxwdHIsICZsZW4pKTsKKyAgfSBlbHNlIGlmICh0LT5IYXNBdHRyaWJ1
dGUoIkV4cGVjdFJhd1B1YmxpYyIpKSB7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gZXhwZWN0
ZWQ7CisgICAgaWYgKCF0LT5HZXRCeXRlcygmZXhwZWN0ZWQsICJFeHBlY3RSYXdQdWJsaWMiKSkg
eworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+
IHJhdzsKKyAgICBzaXplX3QgbGVuOworICAgIGlmICghRVZQX1BLRVlfZ2V0X3Jhd19wdWJsaWNf
a2V5KHBrZXkuZ2V0KCksIG51bGxwdHIsICZsZW4pKSB7CisgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIHJhdy5yZXNpemUobGVuKTsKKyAgICBpZiAoIUVWUF9QS0VZX2dldF9yYXdfcHVi
bGljX2tleShwa2V5LmdldCgpLCByYXcuZGF0YSgpLCAmbGVuKSkgeworICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgICByYXcucmVzaXplKGxlbik7CisgICAgRVhQRUNUX0VRKEJ5dGVzKHJh
dyksIEJ5dGVzKGV4cGVjdGVkKSk7CisKKyAgICAvLyBTaG9ydCBidWZmZXJzIHNob3VsZCBiZSBy
ZWplY3RlZC4KKyAgICByYXcucmVzaXplKGxlbiAtIDEpOworICAgIGxlbiA9IHJhdy5zaXplKCk7
CisgICAgRVhQRUNUX0ZBTFNFKEVWUF9QS0VZX2dldF9yYXdfcHVibGljX2tleShwa2V5LmdldCgp
LCByYXcuZGF0YSgpLCAmbGVuKSk7CisgIH0KIAogICAvLyBTYXZlIHRoZSBrZXkgZm9yIGZ1dHVy
ZSB0ZXN0cy4KICAgY29uc3Qgc3RkOjpzdHJpbmcgJmtleV9uYW1lID0gdC0+R2V0UGFyYW1ldGVy
KCk7CkBAIC0xOTAsNyArMjQ4LDcgQEAgc3RhdGljIGJvb2wgSW1wb3J0S2V5KEZpbGVUZXN0ICp0
LCBLZXlNYXAgKmtleV9tYXAsCiAKIC8vIFNldHVwQ29udGV4dCBjb25maWd1cmVzIHxjdHh8IGJh
c2VkIG9uIGF0dHJpYnV0ZXMgaW4gfHR8LCB3aXRoIHRoZSBleGNlcHRpb24KIC8vIG9mIHRoZSBz
aWduaW5nIGRpZ2VzdCB3aGljaCBtdXN0IGJlIGNvbmZpZ3VyZWQgZXh0ZXJuYWxseS4KLXN0YXRp
YyBib29sIFNldHVwQ29udGV4dChGaWxlVGVzdCAqdCwgRVZQX1BLRVlfQ1RYICpjdHgpIHsKK3N0
YXRpYyBib29sIFNldHVwQ29udGV4dChGaWxlVGVzdCAqdCwgS2V5TWFwICprZXlfbWFwLCBFVlBf
UEtFWV9DVFggKmN0eCkgewogICBpZiAodC0+SGFzQXR0cmlidXRlKCJSU0FQYWRkaW5nIikpIHsK
ICAgICBpbnQgcGFkZGluZzsKICAgICBpZiAoIUdldFJTQVBhZGRpbmcodCwgJnBhZGRpbmcsIHQt
PkdldEF0dHJpYnV0ZU9yRGllKCJSU0FQYWRkaW5nIikpIHx8CkBAIC0yMzAsNiArMjg4LDc0IEBA
IHN0YXRpYyBib29sIFNldHVwQ29udGV4dChGaWxlVGVzdCAqdCwgRVZQX1BLRVlfQ1RYICpjdHgp
IHsKICAgICB9CiAgICAgYnVmLnJlbGVhc2UoKTsKICAgfQorICBpZiAodC0+SGFzQXR0cmlidXRl
KCJEZXJpdmVQZWVyIikpIHsKKyAgICBzdGQ6OnN0cmluZyBkZXJpdmVfcGVlciA9IHQtPkdldEF0
dHJpYnV0ZU9yRGllKCJEZXJpdmVQZWVyIik7CisgICAgaWYgKGtleV9tYXAtPmNvdW50KGRlcml2
ZV9wZWVyKSA9PSAwKSB7CisgICAgICBBRERfRkFJTFVSRSgpIDw8ICJDb3VsZCBub3QgZmluZCBr
ZXkgIiA8PCBkZXJpdmVfcGVlcjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgRVZQ
X1BLRVkgKmRlcml2ZV9wZWVyX2tleSA9ICgqa2V5X21hcClbZGVyaXZlX3BlZXJdLmdldCgpOwor
ICAgIGlmICghRVZQX1BLRVlfZGVyaXZlX3NldF9wZWVyKGN0eCwgZGVyaXZlX3BlZXJfa2V5KSkg
eworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKwor
c3RhdGljIGJvb2wgVGVzdERlcml2ZShGaWxlVGVzdCAqdCwgS2V5TWFwICprZXlfbWFwLCBFVlBf
UEtFWSAqa2V5KSB7CisgIGJzc2w6OlVuaXF1ZVB0cjxFVlBfUEtFWV9DVFg+IGN0eChFVlBfUEtF
WV9DVFhfbmV3KGtleSwgbnVsbHB0cikpOworICBpZiAoIWN0eCB8fAorICAgICAgIUVWUF9QS0VZ
X2Rlcml2ZV9pbml0KGN0eC5nZXQoKSkgfHwKKyAgICAgICFTZXR1cENvbnRleHQodCwga2V5X21h
cCwgY3R4LmdldCgpKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGJzc2w6OlVuaXF1
ZVB0cjxFVlBfUEtFWV9DVFg+IGNvcHkoRVZQX1BLRVlfQ1RYX2R1cChjdHguZ2V0KCkpKTsKKyAg
aWYgKCFjb3B5KSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgZm9yIChFVlBfUEtFWV9D
VFggKnBjdHggOiB7Y3R4LmdldCgpLCBjb3B5LmdldCgpfSkgeworICAgIHNpemVfdCBsZW47Cisg
ICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gYWN0dWFsLCBvdXRwdXQ7CisgICAgaWYgKCFFVlBfUEtF
WV9kZXJpdmUocGN0eCwgbnVsbHB0ciwgJmxlbikpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgYWN0dWFsLnJlc2l6ZShsZW4pOworICAgIGlmICghRVZQX1BLRVlfZGVyaXZlKHBj
dHgsIGFjdHVhbC5kYXRhKCksICZsZW4pKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIGFjdHVhbC5yZXNpemUobGVuKTsKKworICAgIC8vIERlZmVyIGxvb2tpbmcgdXAgdGhlIGF0
dHJpYnV0ZSBzbyBFcnJvciB3b3JrcyBwcm9wZXJseS4KKyAgICBpZiAoIXQtPkdldEJ5dGVzKCZv
dXRwdXQsICJPdXRwdXQiKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBFWFBF
Q1RfRVEoQnl0ZXMob3V0cHV0KSwgQnl0ZXMoYWN0dWFsKSk7CisKKyAgICAvLyBUZXN0IHdoZW4g
dGhlIGJ1ZmZlciBpcyB0b28gbGFyZ2UuCisgICAgYWN0dWFsLnJlc2l6ZShsZW4gKyAxKTsKKyAg
ICBsZW4gPSBhY3R1YWwuc2l6ZSgpOworICAgIGlmICghRVZQX1BLRVlfZGVyaXZlKHBjdHgsIGFj
dHVhbC5kYXRhKCksICZsZW4pKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGFj
dHVhbC5yZXNpemUobGVuKTsKKyAgICBFWFBFQ1RfRVEoQnl0ZXMob3V0cHV0KSwgQnl0ZXMoYWN0
dWFsKSk7CisKKyAgICAvLyBUZXN0IHdoZW4gdGhlIGJ1ZmZlciBpcyB0b28gc21hbGwuCisgICAg
YWN0dWFsLnJlc2l6ZShsZW4gLSAxKTsKKyAgICBsZW4gPSBhY3R1YWwuc2l6ZSgpOworICAgIGlm
ICh0LT5IYXNBdHRyaWJ1dGUoIlNtYWxsQnVmZmVyVHJ1bmNhdGVzIikpIHsKKyAgICAgIGlmICgh
RVZQX1BLRVlfZGVyaXZlKHBjdHgsIGFjdHVhbC5kYXRhKCksICZsZW4pKSB7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIGFjdHVhbC5yZXNpemUobGVuKTsKKyAgICAgIEVY
UEVDVF9FUShCeXRlcyhvdXRwdXQuZGF0YSgpLCBsZW4pLCBCeXRlcyhhY3R1YWwpKTsKKyAgICB9
IGVsc2UgeworICAgICAgRVhQRUNUX0ZBTFNFKEVWUF9QS0VZX2Rlcml2ZShwY3R4LCBhY3R1YWwu
ZGF0YSgpLCAmbGVuKSk7CisgICAgICBFUlJfY2xlYXJfZXJyb3IoKTsKKyAgICB9CisgIH0KICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTI0Myw2ICszNjksMTQgQEAgc3RhdGljIGJvb2wgVGVzdEVW
UChGaWxlVGVzdCAqdCwgS2V5TWFwICprZXlfbWFwKSB7CiAgICAgcmV0dXJuIEltcG9ydEtleSh0
LCBrZXlfbWFwLCBFVlBfcGFyc2VfcHVibGljX2tleSwgRVZQX21hcnNoYWxfcHVibGljX2tleSk7
CiAgIH0KIAorICAvLyBMb2FkIHRoZSBrZXkuCisgIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXlfbmFt
ZSA9IHQtPkdldFBhcmFtZXRlcigpOworICBpZiAoa2V5X21hcC0+Y291bnQoa2V5X25hbWUpID09
IDApIHsKKyAgICBBRERfRkFJTFVSRSgpIDw8ICJDb3VsZCBub3QgZmluZCBrZXkgIiA8PCBrZXlf
bmFtZTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgRVZQX1BLRVkgKmtleSA9ICgqa2V5X21h
cClba2V5X25hbWVdLmdldCgpOworCiAgIGludCAoKmtleV9vcF9pbml0KShFVlBfUEtFWV9DVFgg
KmN0eCkgPSBudWxscHRyOwogICBpbnQgKCprZXlfb3ApKEVWUF9QS0VZX0NUWCAqY3R4LCB1aW50
OF90ICpvdXQsIHNpemVfdCAqb3V0X2xlbiwKICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90
ICppbiwgc2l6ZV90IGluX2xlbikgPSBudWxscHRyOwpAQCAtMjY2LDE5ICs0MDAsMTMgQEAgc3Rh
dGljIGJvb2wgVGVzdEVWUChGaWxlVGVzdCAqdCwgS2V5TWFwICprZXlfbWFwKSB7CiAgIH0gZWxz
ZSBpZiAodC0+R2V0VHlwZSgpID09ICJFbmNyeXB0IikgewogICAgIGtleV9vcF9pbml0ID0gRVZQ
X1BLRVlfZW5jcnlwdF9pbml0OwogICAgIGtleV9vcCA9IEVWUF9QS0VZX2VuY3J5cHQ7CisgIH0g
ZWxzZSBpZiAodC0+R2V0VHlwZSgpID09ICJEZXJpdmUiKSB7CisgICAgcmV0dXJuIFRlc3REZXJp
dmUodCwga2V5X21hcCwga2V5KTsKICAgfSBlbHNlIHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJV
bmtub3duIHRlc3QgIiA8PCB0LT5HZXRUeXBlKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAK
LSAgLy8gTG9hZCB0aGUga2V5LgotICBjb25zdCBzdGQ6OnN0cmluZyAma2V5X25hbWUgPSB0LT5H
ZXRQYXJhbWV0ZXIoKTsKLSAgaWYgKGtleV9tYXAtPmNvdW50KGtleV9uYW1lKSA9PSAwKSB7Ci0g
ICAgQUREX0ZBSUxVUkUoKSA8PCAiQ291bGQgbm90IGZpbmQga2V5ICIgPDwga2V5X25hbWU7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIEVWUF9QS0VZICprZXkgPSAoKmtleV9tYXApW2tleV9u
YW1lXS5nZXQoKTsKLQogICBjb25zdCBFVlBfTUQgKmRpZ2VzdCA9IG51bGxwdHI7CiAgIGlmICh0
LT5IYXNBdHRyaWJ1dGUoIkRpZ2VzdCIpKSB7CiAgICAgZGlnZXN0ID0gR2V0RGlnZXN0KHQsIHQt
PkdldEF0dHJpYnV0ZU9yRGllKCJEaWdlc3QiKSk7CkBAIC0yOTcsMTYgKzQyNSwxOSBAQCBzdGF0
aWMgYm9vbCBUZXN0RVZQKEZpbGVUZXN0ICp0LCBLZXlNYXAgKmtleV9tYXApIHsKICAgfQogCiAg
IGlmIChtZF9vcF9pbml0KSB7Ci0gICAgYnNzbDo6U2NvcGVkRVZQX01EX0NUWCBjdHg7CisgICAg
YnNzbDo6U2NvcGVkRVZQX01EX0NUWCBjdHgsIGNvcHk7CiAgICAgRVZQX1BLRVlfQ1RYICpwY3R4
OwogICAgIGlmICghbWRfb3BfaW5pdChjdHguZ2V0KCksICZwY3R4LCBkaWdlc3QsIG51bGxwdHIs
IGtleSkgfHwKLSAgICAgICAgIVNldHVwQ29udGV4dCh0LCBwY3R4KSkgeworICAgICAgICAhU2V0
dXBDb250ZXh0KHQsIGtleV9tYXAsIHBjdHgpIHx8CisgICAgICAgICFFVlBfTURfQ1RYX2NvcHlf
ZXgoY29weS5nZXQoKSwgY3R4LmdldCgpKSkgewogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAogICAgIGlmIChpc192ZXJpZnkpIHsKLSAgICAgIHJldHVybiAhIUVWUF9EaWdlc3RWZXJpZnko
Y3R4LmdldCgpLCBvdXRwdXQuZGF0YSgpLCBvdXRwdXQuc2l6ZSgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnB1dC5kYXRhKCksIGlucHV0LnNpemUoKSk7CisgICAgICByZXR1
cm4gRVZQX0RpZ2VzdFZlcmlmeShjdHguZ2V0KCksIG91dHB1dC5kYXRhKCksIG91dHB1dC5zaXpl
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5kYXRhKCksIGlucHV0LnNp
emUoKSkgJiYKKyAgICAgICAgICAgICBFVlBfRGlnZXN0VmVyaWZ5KGNvcHkuZ2V0KCksIG91dHB1
dC5kYXRhKCksIG91dHB1dC5zaXplKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnB1dC5kYXRhKCksIGlucHV0LnNpemUoKSk7CiAgICAgfQogCiAgICAgc2l6ZV90IGxlbjsKQEAg
LTMyMSw2ICs0NTIsMjEgQEAgc3RhdGljIGJvb2wgVGVzdEVWUChGaWxlVGVzdCAqdCwgS2V5TWFw
ICprZXlfbWFwKSB7CiAgICAgfQogICAgIGFjdHVhbC5yZXNpemUobGVuKTsKICAgICBFWFBFQ1Rf
RVEoQnl0ZXMob3V0cHV0KSwgQnl0ZXMoYWN0dWFsKSk7CisKKyAgICAvLyBSZXBlYXQgdGhlIHRl
c3Qgd2l0aCB8Y29weXwsIHRvIGNoZWNrIHxFVlBfTURfQ1RYX2NvcHlfZXh8IGR1cGxpY2F0ZWQK
KyAgICAvLyBldmVyeXRoaW5nLgorICAgIGlmICghRVZQX0RpZ2VzdFNpZ24oY29weS5nZXQoKSwg
bnVsbHB0ciwgJmxlbiwgaW5wdXQuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5w
dXQuc2l6ZSgpKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBhY3R1YWwucmVz
aXplKGxlbik7CisgICAgaWYgKCFFVlBfRGlnZXN0U2lnbihjb3B5LmdldCgpLCBhY3R1YWwuZGF0
YSgpLCAmbGVuLCBpbnB1dC5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5z
aXplKCkpIHx8CisgICAgICAgICF0LT5HZXRCeXRlcygmb3V0cHV0LCAiT3V0cHV0IikpIHsKKyAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgYWN0dWFsLnJlc2l6ZShsZW4pOworICAgIEVY
UEVDVF9FUShCeXRlcyhvdXRwdXQpLCBCeXRlcyhhY3R1YWwpKTsKICAgICByZXR1cm4gdHJ1ZTsK
ICAgfQogCkBAIC0zMjksNzYgKzQ3NSw4MiBAQCBzdGF0aWMgYm9vbCBUZXN0RVZQKEZpbGVUZXN0
ICp0LCBLZXlNYXAgKmtleV9tYXApIHsKICAgICAgICFrZXlfb3BfaW5pdChjdHguZ2V0KCkpIHx8
CiAgICAgICAoZGlnZXN0ICE9IG51bGxwdHIgJiYKICAgICAgICAhRVZQX1BLRVlfQ1RYX3NldF9z
aWduYXR1cmVfbWQoY3R4LmdldCgpLCBkaWdlc3QpKSB8fAotICAgICAgIVNldHVwQ29udGV4dCh0
LCBjdHguZ2V0KCkpKSB7CisgICAgICAhU2V0dXBDb250ZXh0KHQsIGtleV9tYXAsIGN0eC5nZXQo
KSkpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAotICBpZiAoaXNfdmVyaWZ5KSB7Ci0gICAg
cmV0dXJuICEhRVZQX1BLRVlfdmVyaWZ5KGN0eC5nZXQoKSwgb3V0cHV0LmRhdGEoKSwgb3V0cHV0
LnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQuZGF0YSgpLCBpbnB1
dC5zaXplKCkpOwotICB9Ci0KLSAgc2l6ZV90IGxlbjsKLSAgaWYgKCFrZXlfb3AoY3R4LmdldCgp
LCBudWxscHRyLCAmbGVuLCBpbnB1dC5kYXRhKCksIGlucHV0LnNpemUoKSkpIHsKLSAgICByZXR1
cm4gZmFsc2U7Ci0gIH0KLSAgYWN0dWFsLnJlc2l6ZShsZW4pOwotICBpZiAoIWtleV9vcChjdHgu
Z2V0KCksIGFjdHVhbC5kYXRhKCksICZsZW4sIGlucHV0LmRhdGEoKSwgaW5wdXQuc2l6ZSgpKSkg
eworICBic3NsOjpVbmlxdWVQdHI8RVZQX1BLRVlfQ1RYPiBjb3B5KEVWUF9QS0VZX0NUWF9kdXAo
Y3R4LmdldCgpKSk7CisgIGlmICghY29weSkgewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCi0g
IC8vIEVuY3J5cHRpb24gaXMgbm9uLWRldGVybWluaXN0aWMsIHNvIHdlIGNoZWNrIGJ5IGRlY3J5
cHRpbmcuCi0gIGlmICh0LT5IYXNBdHRyaWJ1dGUoIkNoZWNrRGVjcnlwdCIpKSB7Ci0gICAgc2l6
ZV90IHBsYWludGV4dF9sZW47Ci0gICAgY3R4LnJlc2V0KEVWUF9QS0VZX0NUWF9uZXcoa2V5LCBu
dWxscHRyKSk7Ci0gICAgaWYgKCFjdHggfHwKLSAgICAgICAgIUVWUF9QS0VZX2RlY3J5cHRfaW5p
dChjdHguZ2V0KCkpIHx8Ci0gICAgICAgIChkaWdlc3QgIT0gbnVsbHB0ciAmJgotICAgICAgICAg
IUVWUF9QS0VZX0NUWF9zZXRfc2lnbmF0dXJlX21kKGN0eC5nZXQoKSwgZGlnZXN0KSkgfHwKLSAg
ICAgICAgIVNldHVwQ29udGV4dCh0LCBjdHguZ2V0KCkpIHx8Ci0gICAgICAgICFFVlBfUEtFWV9k
ZWNyeXB0KGN0eC5nZXQoKSwgbnVsbHB0ciwgJnBsYWludGV4dF9sZW4sIGFjdHVhbC5kYXRhKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbC5zaXplKCkpKSB7Ci0gICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotICAgIG91dHB1dC5yZXNpemUocGxhaW50ZXh0X2xlbik7Ci0gICAg
aWYgKCFFVlBfUEtFWV9kZWNyeXB0KGN0eC5nZXQoKSwgb3V0cHV0LmRhdGEoKSwgJnBsYWludGV4
dF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbC5kYXRhKCksIGFjdHVhbC5z
aXplKCkpKSB7Ci0gICAgICBBRERfRkFJTFVSRSgpIDw8ICJDb3VsZCBub3QgZGVjcnlwdCByZXN1
bHQuIjsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgb3V0cHV0LnJlc2l6ZShwbGFp
bnRleHRfbGVuKTsKLSAgICBFWFBFQ1RfRVEoQnl0ZXMoaW5wdXQpLCBCeXRlcyhvdXRwdXQpKSA8
PCAiRGVjcnlwdGVkIHJlc3VsdCBtaXNtYXRjaC4iOwotICAgIHJldHVybiB0cnVlOworICBpZiAo
aXNfdmVyaWZ5KSB7CisgICAgcmV0dXJuIEVWUF9QS0VZX3ZlcmlmeShjdHguZ2V0KCksIG91dHB1
dC5kYXRhKCksIG91dHB1dC5zaXplKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1
dC5kYXRhKCksIGlucHV0LnNpemUoKSkgJiYKKyAgICAgICAgICAgRVZQX1BLRVlfdmVyaWZ5KGNv
cHkuZ2V0KCksIG91dHB1dC5kYXRhKCksIG91dHB1dC5zaXplKCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnB1dC5kYXRhKCksIGlucHV0LnNpemUoKSk7CiAgIH0KIAotICAvLyBTb21l
IHNpZ25hdHVyZSBzY2hlbWVzIGFyZSBub24tZGV0ZXJtaW5pc3RpYywgc28gd2UgY2hlY2sgYnkg
dmVyaWZ5aW5nLgotICBpZiAodC0+SGFzQXR0cmlidXRlKCJDaGVja1ZlcmlmeSIpKSB7Ci0gICAg
Y3R4LnJlc2V0KEVWUF9QS0VZX0NUWF9uZXcoa2V5LCBudWxscHRyKSk7Ci0gICAgaWYgKCFjdHgg
fHwKLSAgICAgICAgIUVWUF9QS0VZX3ZlcmlmeV9pbml0KGN0eC5nZXQoKSkgfHwKLSAgICAgICAg
KGRpZ2VzdCAhPSBudWxscHRyICYmCi0gICAgICAgICAhRVZQX1BLRVlfQ1RYX3NldF9zaWduYXR1
cmVfbWQoY3R4LmdldCgpLCBkaWdlc3QpKSB8fAotICAgICAgICAhU2V0dXBDb250ZXh0KHQsIGN0
eC5nZXQoKSkpIHsKKyAgZm9yIChFVlBfUEtFWV9DVFggKnBjdHggOiB7Y3R4LmdldCgpLCBjb3B5
LmdldCgpfSkgeworICAgIHNpemVfdCBsZW47CisgICAgaWYgKCFrZXlfb3AocGN0eCwgbnVsbHB0
ciwgJmxlbiwgaW5wdXQuZGF0YSgpLCBpbnB1dC5zaXplKCkpKSB7CiAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQotICAgIGlmICh0LT5IYXNBdHRyaWJ1dGUoIlZlcmlmeVBTU1NhbHRMZW5ndGgi
KSAmJgotICAgICAgICAhRVZQX1BLRVlfQ1RYX3NldF9yc2FfcHNzX3NhbHRsZW4oCi0gICAgICAg
ICAgICBjdHguZ2V0KCksCi0gICAgICAgICAgICBhdG9pKHQtPkdldEF0dHJpYnV0ZU9yRGllKCJW
ZXJpZnlQU1NTYWx0TGVuZ3RoIikuY19zdHIoKSkpKSB7CisgICAgYWN0dWFsLnJlc2l6ZShsZW4p
OworICAgIGlmICgha2V5X29wKHBjdHgsIGFjdHVhbC5kYXRhKCksICZsZW4sIGlucHV0LmRhdGEo
KSwgaW5wdXQuc2l6ZSgpKSkgewogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBFWFBF
Q1RfVFJVRShFVlBfUEtFWV92ZXJpZnkoY3R4LmdldCgpLCBhY3R1YWwuZGF0YSgpLCBhY3R1YWwu
c2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5kYXRhKCksIGlu
cHV0LnNpemUoKSkpCi0gICAgICAgIDw8ICJDb3VsZCBub3QgdmVyaWZ5IHJlc3VsdC4iOwotICAg
IHJldHVybiB0cnVlOwotICB9CiAKLSAgLy8gQnkgZGVmYXVsdCwgY2hlY2sgYnkgY29tcGFyaW5n
IHRoZSByZXN1bHQgYWdhaW5zdCBPdXRwdXQuCi0gIGlmICghdC0+R2V0Qnl0ZXMoJm91dHB1dCwg
Ik91dHB1dCIpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmICh0LT5IYXNBdHRyaWJ1dGUo
IkNoZWNrRGVjcnlwdCIpKSB7CisgICAgICAvLyBFbmNyeXB0aW9uIGlzIG5vbi1kZXRlcm1pbmlz
dGljLCBzbyB3ZSBjaGVjayBieSBkZWNyeXB0aW5nLgorICAgICAgc2l6ZV90IHBsYWludGV4dF9s
ZW47CisgICAgICBic3NsOjpVbmlxdWVQdHI8RVZQX1BLRVlfQ1RYPiBkZWNyeXB0X2N0eChFVlBf
UEtFWV9DVFhfbmV3KGtleSwgbnVsbHB0cikpOworICAgICAgaWYgKCFkZWNyeXB0X2N0eCB8fAor
ICAgICAgICAgICFFVlBfUEtFWV9kZWNyeXB0X2luaXQoZGVjcnlwdF9jdHguZ2V0KCkpIHx8Cisg
ICAgICAgICAgKGRpZ2VzdCAhPSBudWxscHRyICYmCisgICAgICAgICAgICFFVlBfUEtFWV9DVFhf
c2V0X3NpZ25hdHVyZV9tZChkZWNyeXB0X2N0eC5nZXQoKSwgZGlnZXN0KSkgfHwKKyAgICAgICAg
ICAhU2V0dXBDb250ZXh0KHQsIGtleV9tYXAsIGRlY3J5cHRfY3R4LmdldCgpKSB8fAorICAgICAg
ICAgICFFVlBfUEtFWV9kZWNyeXB0KGRlY3J5cHRfY3R4LmdldCgpLCBudWxscHRyLCAmcGxhaW50
ZXh0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwuZGF0YSgpLCBhY3R1
YWwuc2l6ZSgpKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBvdXRw
dXQucmVzaXplKHBsYWludGV4dF9sZW4pOworICAgICAgaWYgKCFFVlBfUEtFWV9kZWNyeXB0KGRl
Y3J5cHRfY3R4LmdldCgpLCBvdXRwdXQuZGF0YSgpLCAmcGxhaW50ZXh0X2xlbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhY3R1YWwuZGF0YSgpLCBhY3R1YWwuc2l6ZSgpKSkgeworICAg
ICAgICBBRERfRkFJTFVSRSgpIDw8ICJDb3VsZCBub3QgZGVjcnlwdCByZXN1bHQuIjsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgICAgb3V0cHV0LnJlc2l6ZShwbGFpbnRleHRf
bGVuKTsKKyAgICAgIEVYUEVDVF9FUShCeXRlcyhpbnB1dCksIEJ5dGVzKG91dHB1dCkpIDw8ICJE
ZWNyeXB0ZWQgcmVzdWx0IG1pc21hdGNoLiI7CisgICAgfSBlbHNlIGlmICh0LT5IYXNBdHRyaWJ1
dGUoIkNoZWNrVmVyaWZ5IikpIHsKKyAgICAgIC8vIFNvbWUgc2lnbmF0dXJlIHNjaGVtZXMgYXJl
IG5vbi1kZXRlcm1pbmlzdGljLCBzbyB3ZSBjaGVjayBieSB2ZXJpZnlpbmcuCisgICAgICBic3Ns
OjpVbmlxdWVQdHI8RVZQX1BLRVlfQ1RYPiB2ZXJpZnlfY3R4KEVWUF9QS0VZX0NUWF9uZXcoa2V5
LCBudWxscHRyKSk7CisgICAgICBpZiAoIXZlcmlmeV9jdHggfHwKKyAgICAgICAgICAhRVZQX1BL
RVlfdmVyaWZ5X2luaXQodmVyaWZ5X2N0eC5nZXQoKSkgfHwKKyAgICAgICAgICAoZGlnZXN0ICE9
IG51bGxwdHIgJiYKKyAgICAgICAgICAgIUVWUF9QS0VZX0NUWF9zZXRfc2lnbmF0dXJlX21kKHZl
cmlmeV9jdHguZ2V0KCksIGRpZ2VzdCkpIHx8CisgICAgICAgICAgIVNldHVwQ29udGV4dCh0LCBr
ZXlfbWFwLCB2ZXJpZnlfY3R4LmdldCgpKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICB9CisgICAgICBpZiAodC0+SGFzQXR0cmlidXRlKCJWZXJpZnlQU1NTYWx0TGVuZ3RoIikpIHsK
KyAgICAgICAgaWYgKCFFVlBfUEtFWV9DVFhfc2V0X3JzYV9wc3Nfc2FsdGxlbigKKyAgICAgICAg
ICAgICAgICB2ZXJpZnlfY3R4LmdldCgpLAorICAgICAgICAgICAgICAgIGF0b2kodC0+R2V0QXR0
cmlidXRlT3JEaWUoIlZlcmlmeVBTU1NhbHRMZW5ndGgiKS5jX3N0cigpKSkpIHsKKyAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIEVYUEVDVF9UUlVFKEVW
UF9QS0VZX3ZlcmlmeSh2ZXJpZnlfY3R4LmdldCgpLCBhY3R1YWwuZGF0YSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbC5zaXplKCksIGlucHV0LmRhdGEoKSwgaW5w
dXQuc2l6ZSgpKSkKKyAgICAgICAgICA8PCAiQ291bGQgbm90IHZlcmlmeSByZXN1bHQuIjsKKyAg
ICB9IGVsc2UgeworICAgICAgLy8gQnkgZGVmYXVsdCwgY2hlY2sgYnkgY29tcGFyaW5nIHRoZSBy
ZXN1bHQgYWdhaW5zdCBPdXRwdXQuCisgICAgICBpZiAoIXQtPkdldEJ5dGVzKCZvdXRwdXQsICJP
dXRwdXQiKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBhY3R1YWwu
cmVzaXplKGxlbik7CisgICAgICBFWFBFQ1RfRVEoQnl0ZXMob3V0cHV0KSwgQnl0ZXMoYWN0dWFs
KSk7CisgICAgfQogICB9Ci0gIGFjdHVhbC5yZXNpemUobGVuKTsKLSAgRVhQRUNUX0VRKEJ5dGVz
KG91dHB1dCksIEJ5dGVzKGFjdHVhbCkpOwogICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDMyLDkg
KzU4NCwxOSBAQCBzdGF0aWMgdm9pZCBSdW5XeWNoZXByb29mVGVzdChjb25zdCBjaGFyICpwYXRo
KSB7CiAgICAgdC0+SWdub3JlSW5zdHJ1Y3Rpb24oImtleXNpemUiKTsKICAgICB0LT5JZ25vcmVJ
bnN0cnVjdGlvbigibiIpOwogICAgIHQtPklnbm9yZUF0dHJpYnV0ZSgicGFkZGluZyIpOworICAg
IHQtPklnbm9yZUluc3RydWN0aW9uKCJrZXlKd2suYWxnIik7CisgICAgdC0+SWdub3JlSW5zdHJ1
Y3Rpb24oImtleUp3ay5lIik7CisgICAgdC0+SWdub3JlSW5zdHJ1Y3Rpb24oImtleUp3ay5raWQi
KTsKKyAgICB0LT5JZ25vcmVJbnN0cnVjdGlvbigia2V5SndrLmt0eSIpOworICAgIHQtPklnbm9y
ZUluc3RydWN0aW9uKCJrZXlKd2subiIpOwogICAgIC8vIEV4dHJhIEVkRFNBIGZpZWxkcy4KICAg
ICB0LT5JZ25vcmVJbnN0cnVjdGlvbigia2V5LnBrIik7CiAgICAgdC0+SWdub3JlSW5zdHJ1Y3Rp
b24oImtleS5zayIpOworICAgIHQtPklnbm9yZUluc3RydWN0aW9uKCJqd2suY3J2Iik7CisgICAg
dC0+SWdub3JlSW5zdHJ1Y3Rpb24oImp3ay5kIik7CisgICAgdC0+SWdub3JlSW5zdHJ1Y3Rpb24o
Imp3ay5raWQiKTsKKyAgICB0LT5JZ25vcmVJbnN0cnVjdGlvbigiandrLmt0eSIpOworICAgIHQt
Pklnbm9yZUluc3RydWN0aW9uKCJqd2sueCIpOwogICAgIC8vIEV4dHJhIERTQSBmaWVsZHMuCiAg
ICAgdC0+SWdub3JlSW5zdHJ1Y3Rpb24oImtleS5nIik7CiAgICAgdC0+SWdub3JlSW5zdHJ1Y3Rp
b24oImtleS5wIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9ldnBfdGVzdHMudHh0IGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9ldnAvZXZwX3Rlc3RzLnR4dAppbmRleCBmZjA4ZWU3NjZkNTYxZGZmMjI4NTVj
ZGQwYjM5NWZmNDFiYzUwMzc0Li4yYWM1MWQzOTJiNWFjYWQ3YmUyZmVlYzVmMjVlNzBjZTg2MjI3
MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9ldnBfdGVzdHMudHh0CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZXZwL2V2cF90ZXN0cy50eHQKQEAgLTYsMTEgKzYsMTUgQEAKIFByaXZhdGVLZXkgPSBS
U0EtMjA0OAogVHlwZSA9IFJTQQogSW5wdXQgPSAzMDgyMDRiYzAyMDEwMDMwMGQwNjA5MmE4NjQ4
ODZmNzBkMDEwMTAxMDUwMDA0ODIwNGE2MzA4MjA0YTIwMjAxMDAwMjgyMDEwMTAwY2QwMDgxZWE3
YjJhZTFlYTA2ZDU5ZjdjNzNkOWZmYjk0YTA5NjE1YzJlNGJhN2M2MzZjZWYwOGRkMzUzM2VjMzE4
NTUyNWIwMTVjNzY5Yjk5YTc3ZDY3MjViZjljMzUzMmE5YjZlNWY2NjI3ZDVmYjg1MTYwNzY4ZDNk
ZGE5Y2JkMzU5NzQ1MTE3MTdkYzNkMzA5ZDJmYzQ3ZWU0MWY5N2UzMmFkYjdmOWRkODY0YTFjNDc2
N2E2NjZlY2Q3MWJjMWFhY2Y1ZTc1MTdmNGIzODU5NGZlYTliMDVlNDJkNWFkYTk5MTIwMDgwMTNl
NDUzMTZhNGQ5YmI4ZWQwODZiODhkMjg3NThiYWNhZjkyMmQ0NmE4NjhiNDg1ZDIzOWM5YmFlYjBl
MmI2NDU5MjcxMGY0MmIyZDFlYTBhNGI0ODAyYzBiZWNhYjMyOGY4YTY4YjAwNzNiZGI1NDZmZWVh
OTgwOWQyODQ5OTEyYjM5MGMxNTMyYmM3ZTI5Yzc2NThmODE3NWZhZTQ2ZjM0MzMyZmY4N2JjYWIz
ZTQwNjQ5Yjk4NTc3ODY5ZGEwZWE3MTgzNTNmMDcyMjc1NDg4NjkxMzY0ODc2MGQxMjJiZTY3NmUw
ZmM0ODNkZDIwZmZjMzFiZGE5NmEzMTk2NmM5YWEyZTc1YWQwM2RlNDdlMWM0NGYwMjAzMDEwMDAx
MDI4MjAxMDA2MDI5N2FjNzk5MWIxNjdhMDZkNmIyNDc1OGI4Y2JlMjA4YmViOWIyZDllYzk3Mzhi
ZDgwZjkwYTJlMzUwMDVkZDdjZTI5MmQ5ZTI5YmE4ODViZDMxNmZlZjFmMjA5MTNiYzBhYzkwZDZi
MDgwOGIyNDE0ZDgyMTA0NDQxZDg2MjRhMzNjZTAyMzNjOGY3ODBhNDhiMzc1YWZmMDJkNzY3MTIy
MjhhNzAyNDg0ZGIzZjllYmVjY2NmYmJlZTE3MDlkYmExODI4MDBkOTQ5ZTllNDIxNmUwYmZmMzU1
ODM4OGY4YmQ5MGRhMzczYTFkODI3NDNlYzNmYmRkMTQyN2ZkMTY4MjVhNjU3YTMxNjkxMmU4Njk1
MzY1MTE3Y2EyZjg0NWM5MDk0MDVmY2FjNTVmODk1ZmMxNWQyMDM4NmMyNmVlNzhjOWU5OTA3NTAy
OWExNzhhNmMxZTRjZjBjMjAwZThhOWNmYjI3ZTlkMTU2Zjg2ZTZjMmFkYzIyYjFhODRhMWNkNWNh
NWIyNzkwODc1ZDc5NDA3Yzg0YjM1MjM5NWNiODFjYzNmZWQ1YmIwNDNiNjllZGUwYzA3MjA0NTUw
MDI1Y2VlOGM1ZjQ0MDE3MGI2MTIwYmI0OGUwZjc0N2JjZDhmNTIyMTEwODUwZGYwNDNjNDI4ZGZk
MTg3MDUzMTAyODE4MTAwZjZmOTYxYjQ3Y2JjMDM1ZDNhZWRlYmM3ZGU4NTBhOTU2YjY1ZWNkYjlj
ZjYwNzY0MDYzZjE1YWE0ODU1M2M1OGQ5NzJmZTY2NzUwNTZlMzVkZGZkYzM3YmYzYjlmMmY2MjJl
ZTI3MTMzNzI1Njg0OWM5YmVmMjE3NmZlOGY3YzNmOGJiOTFiYTM3NGRkNTNiYWYzZGVjODE0ZDJi
ZGVjMTBjMWZkYzg4Y2RkMTY4NzZmMjZiMWVkZmEzZjA5NDE5N2VkZjRkNDJmZjFmYjI5NzExMDNi
ODk4Y2E4NTljNDI3Mjg3MDg2YTg0MmFiNDEwYmI2OWNmMmQzNWFmNmJlMzAyODE4MTAwZDQ3ZTcy
NGE3ZmY0MTA0OGIyNzBjMjUyNGE0MTAxODc4YjczMTU5YmI3M2QzZGJjMTg3YjIyMGU2MzViMzUz
NGY5NmUyNDNhMTg0ZDkzZjg2MGI2YmZiYjZiNzFjMWVkOWExZTFmNDU4NTgzMDIzYzMwMWU5NmE2
OTJjMWEwOGI1M2QwZWM5Y2E5MTAxMDBkODA0NTFlM2I3ZGM2YTAxYmFjNGFlY2VmOGRmNzk4ODQ2
YmMyMzVhMDhjYmJhMmNmNGMwNjgwNGNjMTEyMTllOTU2MDhjNzE0ZTNmMTQzMGQ0OTFmYWRiYmEz
MmE1NzUxYTA0Zjk3NzQ1ODM0YzlhNTAyODE4MDIxZjI0NTJiYjliOTVkZmQwMjhjOTE0YmY3OTlm
MWNhNzdlODlhOTVkNTBkM2MxNmQzODRmODQ1NWY4YmQ3YWY5ZWIzZGZhM2Q1OTFkOTg0MmRlZjIz
NWY3NjMwYThlNDhjMDg4ZmY2NjQyZTEwMTc5NDUzNWE5MzNlMWU5NzZmYTg1MDlmYzcyOGIyZGEw
YzRhMWEwOGQ3ZmNmMzdhYmFhZTFmZjMwMDFhY2ExZGMxYmJiMDVkOWRmZmJhYTFhMDlmN2ZiMWVl
ZjM4MjM3ZDllYmNjYzcyMmI5MzM4NDM2ZGRlNzExOTExMjc5OGMyNjgwOWMxYThkZWM0MzIwNjEw
MjgxODAxZjc1MTBhYTYyYzJkOGRlNGEzYzUzMjgyNzgxZjQxZTAyZDBlOGI0MDJhZTc4NDMyZTQ0
OWM0ODExMDE2MWExMTQwM2YwMmQwMTg4MGE4ZGNjOTM4MTUyZDc5NzIxYTQ3MTFhNjA3YWM0NDcx
ZWJmOTY0ODEwZjk1YmU0N2E0NWU2MDQ5OWUyOWY0Yzk3NzNjODM3NzM0MDRmNjA2NjM3NzI4YzJk
MDM1MWJiMDNjMzI2YzhiYjczYTcyMWU3ZmE1NDQwZWEyMTcyYmJhMTQ2NWZjYzMwZGNiMGQ5Zjg5
OTMwZTgxNWFhMWY3Zjk3MjlhODU3ZTAwZTAzMzhkZDU5MDI4MTgwNGQxZjBkNzU2ZmU3N2UwMTA5
OWE2NTJmNTBhODhiN2I2ODVkYzViZjAwOTgxZDVkMjM3NmZkMGM2ZmUyOWNkNWI2Mzg3MzQ0Nzkz
MDVhNzNhZDNjMTU5OWQzOWVhZTNiYWUwMzVmYmQ2ZmVkMDdjMjhkZTcwNTkzMzg3OWEwNmU0OGU2
YTYwMzY4NmVkOGUyNTYwYTVmNmFmMWYyYzI0ZmFmNGFhOTYwZTM4MjE4NmYxNWVlZGNlOWEyNDkx
YWU3MzA2ODBkZDRjZjc3OGI3MGZhYTg2ODI2YWIzMjIzNDc3Y2M5MTM3N2IxOWE2ZDVhMmVhZWEy
MTk3NjBiZWVkNQorRXhwZWN0Tm9SYXdQcml2YXRlCitFeHBlY3ROb1Jhd1B1YmxpYwogCiAjIFRo
ZSBwdWJsaWMgaGFsZiBvZiB0aGUgc2FtZSBrZXkgZW5jb2RlZCBhcyBhIFN1YmplY3RQdWJsaWNL
ZXlJbmZvLgogUHVibGljS2V5ID0gUlNBLTIwNDgtU1BLSQogVHlwZSA9IFJTQQogSW5wdXQgPSAz
MDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAy
ODIwMTAxMDBjZDAwODFlYTdiMmFlMWVhMDZkNTlmN2M3M2Q5ZmZiOTRhMDk2MTVjMmU0YmE3YzYz
NmNlZjA4ZGQzNTMzZWMzMTg1NTI1YjAxNWM3NjliOTlhNzdkNjcyNWJmOWMzNTMyYTliNmU1ZjY2
MjdkNWZiODUxNjA3NjhkM2RkYTljYmQzNTk3NDUxMTcxN2RjM2QzMDlkMmZjNDdlZTQxZjk3ZTMy
YWRiN2Y5ZGQ4NjRhMWM0NzY3YTY2NmVjZDcxYmMxYWFjZjVlNzUxN2Y0YjM4NTk0ZmVhOWIwNWU0
MmQ1YWRhOTkxMjAwODAxM2U0NTMxNmE0ZDliYjhlZDA4NmI4OGQyODc1OGJhY2FmOTIyZDQ2YTg2
OGI0ODVkMjM5YzliYWViMGUyYjY0NTkyNzEwZjQyYjJkMWVhMGE0YjQ4MDJjMGJlY2FiMzI4Zjhh
NjhiMDA3M2JkYjU0NmZlZWE5ODA5ZDI4NDk5MTJiMzkwYzE1MzJiYzdlMjljNzY1OGY4MTc1ZmFl
NDZmMzQzMzJmZjg3YmNhYjNlNDA2NDliOTg1Nzc4NjlkYTBlYTcxODM1M2YwNzIyNzU0ODg2OTEz
NjQ4NzYwZDEyMmJlNjc2ZTBmYzQ4M2RkMjBmZmMzMWJkYTk2YTMxOTY2YzlhYTJlNzVhZDAzZGU0
N2UxYzQ0ZjAyMDMwMTAwMDEKK0V4cGVjdE5vUmF3UHJpdmF0ZQorRXhwZWN0Tm9SYXdQdWJsaWMK
IAogIyBUaGUgc2FtZSBrZXkgYnV0IHdpdGggYSBuZWdhdGl2ZSBSU0EgbW9kdWx1cy4KIFB1Ymxp
Y0tleSA9IFJTQS0yMDQ4LVNQS0ktTmVnYXRpdmUKQEAgLTMxLDIxICszNSwyOSBAQCBFcnJvciA9
IERFQ09ERV9FUlJPUgogUHJpdmF0ZUtleSA9IFJTQS01MTIKIFR5cGUgPSBSU0EKIElucHV0ID0g
MzA4MjAxNTQwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEzZTMwODIw
MTNhMDIwMTAwMDI0MTAwZGQyMDQwM2Q5NzZhMzhjOWQ3OTE1MmQ4N2I1YzhlOWYwNTAzM2VhZGQ3
YjdkZTcwOWJmNWIwYzRhNTE4MmE5N2QxODQ4MzUyNmIwMjM2MmI5OTJlMTU0YTlmMzdmYWEzOTZj
YTI2ODVjZGFiOGZlYzA5ODc3ZWJlNzA1ZjRkZDcwMjAzMDEwMDAxMDI0MDU1YmViY2NhNjU1ZDdl
MzlkZThhNmVhYTlkNjM2ZGI2ODIxNjE5MDcwNjQwMzk1NDQ3NTVjNTNlZWI5OWVjNjE4YzAzYTIx
MGRiYzYxNDcxZWFiYTEwYzVjMzY1Yzk3MjZkNmI3YTk2ZjU0ZDQ1NWY3ZDE2OGQ0OTM2NzI3MGUx
MDIyMTAwZjIxYTA1ZDlmZDY4MTczMDFjZTQ5Y2UxMDQ0OGY5YmRkNDRmNWVmNWI3NTU3Y2Q3ZDgz
MTU1ZGI0NjM4MmFlNzAyMjEwMGU5ZDFmNzE1Nzc4M2RiMmZlYWIxOTM2OTU0ZGRjNGU4M2FhMzY1
Njk1ODY4MTQ0Y2RhMWJlNjgxM2I2MWQ3OTEwMjIxMDBkNjAwMWViMDA0MDkyMDg2MGNlNDFmYWZk
ZjIzY2E2ZGZiZGY3NGU2ZTlmOThjZjMxNjRjZjVjMTZmOWU3MjdkMDIyMDZmNmY3M2Y0YjUyYjEw
NTE3YmU2ZjliYzVmODdmYTBhM2JiODE3ZTJlNzExNjM2YjY1MWY5YWYxYzg1ZDRmMjEwMjIwNjNl
ZmYyZTU3ZjViNGNhMjAzNDJjZmU3OTNlMjU1MjY2MjRlMzY5MmYxOTI0NjFmOWUxY2U3ZjEzZjJk
NzJjOAorRXhwZWN0Tm9SYXdQcml2YXRlCitFeHBlY3ROb1Jhd1B1YmxpYwogCiAjIFJTQSA1MTUg
Yml0IGtleS4KIFByaXZhdGVLZXkgPSBSU0EtNTE1CiBUeXBlID0gUlNBCiBJbnB1dCA9IDMwODIw
MTU3MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxNDEzMDgyMDEzZDAy
MDEwMDAyNDEwNTRmYTE2NmUyMDVlNjU4YmJlOGEyZGMzNTMxMWMwYzJiNzViN2U0NTY5ZmQ5NjQy
YzhiYWU4MDkyNzkyNzFmYzgyNGYyNmJhYTExNjZlYTQ2Mjk4Y2E2MzM3OWVhNzZhZGJhZGEyYjYx
ZTUwNjY4MjBhMzViZWFlYzFhY2EyMjdmMDIwMzAxMDAwMTAyNDEwMjY2Yzk3MmJlMGQzMGU1M2Fj
MmFjYjFhYTEzYjRiZDA0MDFjY2NmMjEyNDUyYTY2YjQ2MTVmN2U5NDM4MzFmNjdiNGNhNDg1NjA1
ODJkMGNhODg2MDQ0YWFhYWY4Nzk0NTI1MmE4NDhjMTk0Nzk0NDE4NmU2ZWI4Mzk2OWJmOTExMDIy
MTAzMDllNjMxNzYxODQyY2M4YTJjY2ZkMzcyYzIwYTljYmEyMWRlMWExOTljMzBhYjQ0MGJjNmI1
MTA3OWY0ZTgyNTAyMjEwMWJmNzE1YzFkYjQzMjYyN2NhN2MyOWEyOTNiOTIxMGYyZWZmMWU5MmQx
MmYzMDZlYmFhNTMzNGY4ZWUwM2RjZDMwMjIxMDE4YWM1OGE3NjVmMmI4ZjM3ZDQzNDA4MWZlNWZm
OTJiODE3MzVlYWQyZjI2M2Y0OTY4Y2NmNjNkNjFmYmUzZDBkMDIyMTAxNWIyNDdhMTE1OWEyZDVh
MjVkMGRiMDQ5NTkzYzY0MDVmNzdmM2EyNzhjNTIxZDA2NmUyOTBjMmEyZDhmYjU5ZDAyMjEwMjYy
MjRhYTMxZmQ5NWMxNGQyNGZkMDNiOGExOTViYmE0Y2M4OGRmN2MzN2Y1MzcwYTVhYjE5Zjg4MmYx
NDA0ZDYKK0V4cGVjdE5vUmF3UHJpdmF0ZQorRXhwZWN0Tm9SYXdQdWJsaWMKIAogIyBFQyBQLTI1
NiBrZXkKIFByaXZhdGVLZXkgPSBQLTI1NgogVHlwZSA9IEVDCiBJbnB1dCA9IDMwODE4NzAyMDEw
MDMwMTMwNjA3MmE4NjQ4Y2UzZDAyMDEwNjA4MmE4NjQ4Y2UzZDAzMDEwNzA0NmQzMDZiMDIwMTAx
MDQyMDhhODcyZmI2Mjg5M2M0ZDFmZmM1YjlmMGY5MTc1ODA2OWY4MzUyZTA4ZmEwNWE0OWY4ZGI5
MjZjYjU3Mjg3MjVhMTQ0MDM0MjAwMDQyYzE1MGY0MjljZTcwZjIxNmMyNTJjZjVlMDYyY2UxZjYz
OWNkNWQxNjVjN2Y4OTQyNDA3MmMyNzE5N2Q3OGIzM2I5MjBlOTVjZGI2NjRlOTkwZGNmMGNmZWEw
ZDk0ZTJhOGU2YWY5ZDBlNTgwNTZlNjUzMTA0OTI1YjlmZTZjOQorRXhwZWN0Tm9SYXdQcml2YXRl
CitFeHBlY3ROb1Jhd1B1YmxpYwogCiAjIFRoZSBzYW1lIGtleSBhcyBhYm92ZSB3aXRoIHRoZSBv
cHRpb25hbCBwdWJsaWMga2V5IG9taXR0ZWQuCiBQcml2YXRlS2V5ID0gUC0yNTYtTWlzc2luZ1B1
YmxpYwogVHlwZSA9IEVDCiBJbnB1dCA9IDMwNDEwMjAxMDAzMDEzMDYwNzJhODY0OGNlM2QwMjAx
MDYwODJhODY0OGNlM2QwMzAxMDcwNDI3MzAyNTAyMDEwMTA0MjA4YTg3MmZiNjI4OTNjNGQxZmZj
NWI5ZjBmOTE3NTgwNjlmODM1MmUwOGZhMDVhNDlmOGRiOTI2Y2I1NzI4NzI1CitFeHBlY3ROb1Jh
d1ByaXZhdGUKK0V4cGVjdE5vUmF3UHVibGljCiAKICMgVGhlIHNhbWUga2V5IGFzIGFib3ZlIHdp
dGggcmVkdW5kYW50IHBhcmFtZXRlcnMuCiBQcml2YXRlS2V5ID0gUC0yNTYtRXh0cmFQYXJhbWV0
ZXJzCkBAIC01Myw2ICs2NSw4IEBAIFR5cGUgPSBFQwogSW5wdXQgPSAzMDgxOTMwMjAxMDAzMDEz
MDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDcwNDc5MzA3NzAyMDEwMTA0MjA4
YTg3MmZiNjI4OTNjNGQxZmZjNWI5ZjBmOTE3NTgwNjlmODM1MmUwOGZhMDVhNDlmOGRiOTI2Y2I1
NzI4NzI1YTAwYTA2MDgyYTg2NDhjZTNkMDMwMTA3YTE0NDAzNDIwMDA0MmMxNTBmNDI5Y2U3MGYy
MTZjMjUyY2Y1ZTA2MmNlMWY2MzljZDVkMTY1YzdmODk0MjQwNzJjMjcxOTdkNzhiMzNiOTIwZTk1
Y2RiNjY0ZTk5MGRjZjBjZmVhMGQ5NGUyYThlNmFmOWQwZTU4MDU2ZTY1MzEwNDkyNWI5ZmU2YzkK
ICMgVGhlIGtleSByZS1lbmNvZGVzIHdpdGggdGhlIHBhcmFtZXRlcnMgcmVtb3ZlZC4KIE91dHB1
dCA9IDMwODE4NzAyMDEwMDMwMTMwNjA3MmE4NjQ4Y2UzZDAyMDEwNjA4MmE4NjQ4Y2UzZDAzMDEw
NzA0NmQzMDZiMDIwMTAxMDQyMDhhODcyZmI2Mjg5M2M0ZDFmZmM1YjlmMGY5MTc1ODA2OWY4MzUy
ZTA4ZmEwNWE0OWY4ZGI5MjZjYjU3Mjg3MjVhMTQ0MDM0MjAwMDQyYzE1MGY0MjljZTcwZjIxNmMy
NTJjZjVlMDYyY2UxZjYzOWNkNWQxNjVjN2Y4OTQyNDA3MmMyNzE5N2Q3OGIzM2I5MjBlOTVjZGI2
NjRlOTkwZGNmMGNmZWEwZDk0ZTJhOGU2YWY5ZDBlNTgwNTZlNjUzMTA0OTI1YjlmZTZjOQorRXhw
ZWN0Tm9SYXdQcml2YXRlCitFeHBlY3ROb1Jhd1B1YmxpYwogCiAjIFRoZSBzYW1lIGtleSwgYnV0
IHdpdGggdGhlIHJlZHVuZGFudCBwYXJhbWV0ZXJzIGluIHRoZSBFQ1ByaXZhdGVLZXkgbWlzbWF0
Y2hlZC4KIFByaXZhdGVLZXkgPSBQLTI1Ni1CYWRJbm5lclBhcmFtZXRlcnMKQEAgLTYzLDYgKzc3
LDggQEAgRXJyb3IgPSBHUk9VUF9NSVNNQVRDSAogUHVibGljS2V5ID0gUC0yNTYtU1BLSQogVHlw
ZSA9IEVDCiBJbnB1dCA9IDMwNTkzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2Qw
MzAxMDcwMzQyMDAwNDJjMTUwZjQyOWNlNzBmMjE2YzI1MmNmNWUwNjJjZTFmNjM5Y2Q1ZDE2NWM3
Zjg5NDI0MDcyYzI3MTk3ZDc4YjMzYjkyMGU5NWNkYjY2NGU5OTBkY2YwY2ZlYTBkOTRlMmE4ZTZh
ZjlkMGU1ODA1NmU2NTMxMDQ5MjViOWZlNmM5CitFeHBlY3ROb1Jhd1ByaXZhdGUKK0V4cGVjdE5v
UmF3UHVibGljCiAKICMgVGhlIHNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIHRoZSBjdXJ2ZSBleHBs
aWNpdGx5IHNwZWxsZWQgb3V0LgogUHVibGljS2V5ID0gUC0yNTYtU1BLSQpAQCAtNzgsNTggKzk0
LDg0IEBAIEVycm9yID0gREVDT0RFX0VSUk9SCiBQcml2YXRlS2V5ID0gRFNBLTEwMjQKIFR5cGUg
PSBEU0EKIElucHV0ID0gMzA4MjAyNjUwMjAxMDAzMDgyMDIzOTA2MDcyYTg2NDhjZTM4MDQwMTMw
ODIwMjJjMDI4MjAxMDEwMDllMTJmYWIzZGUxMjIxMzUwMWRkODJhYTEwY2EyZDEwMWQyZDRlYmZl
ZjRkMmEzZjhkYWEwZmUwY2VkYWQ4ZDZhZjg1NjE2YWEyZjMyNTJjMGEyYjVhNmRiMDllNmYxNDkw
MGUwZGRiODMxMTg3NmRkOGY5NjY5NTI1Zjk5ZWQ2NTk0OWUxODRkNTA2NDc5MzI3MTE2OWEyMjg2
ODBiOTVlYzEyZjU5YThlMjBiMjFmMmI1OGViMmEyMDEyZDM1YmRlMmVlMzUxODIyZmU4ZjMyZDBh
MzMwNTY1ZGNjZTVjNjcyYjcyNTljMTRiMjQzM2QwYjViMmNhMmIyZGIwYWI2MjZlOGYxM2Y0N2Zl
MDM0NWQ5MDRlNzI5NGJiMDM4ZTljZTIxYTllNTgwYjgzMzU2Mjc4NzA2Y2ZlNzY4NDM2YzY5ZGUx
NDljY2ZmOThiNGFhYjhjYjRmNjM4NWM5ZjEwMmNlNTkzNDZlYWVlZjI3ZTBhZDIyMmQ1M2Q2ZTg5
Y2M4Y2RlNTc3NmRkMDAwNTdiMDNmMmQ4OGFiM2NlZGJhZmQ3YjU4NWYwYjdmNzgzNWUxN2EzNzI4
YmJmMjVlYTYyNTcyZjI0NWRjMTExZjNjZTM5Y2I2ZmZhY2MzMWIwYTI3OTBlN2JkZTkwMjI0ZWE5
YjA5MzE1MzYyYWYzZDJiMDIyMTAwZjM4MWRjZjUzZWJmNzI0ZjhiMmU1Y2E4MmMwMTBmYjRiNWVk
YTkzNThkMGZkODhlZDI3ODU4OTQ4OGI1NGZjMzAyODIwMTAwMGM0MDJhNzI1ZGNjM2E2MmUwMmJm
NGNmNDNjZDE3ZjRhNDkzNTkxMjIwMjIzNjY5Y2Y0MTkzZWRhYjQyM2FkMDhkZmI1NTJlMzA4YTZh
NTdhNWZmYmM3Y2QwZmIyMDg3ZjgxZjhkZjBjYjA4YWIyMTMzMjg3ZDJiNjk2ODcxNGE5NGY2MzNj
OTQwODQ1YTQ4YTNlMTY3MDhkZGU3NjFjYzZhOGVhYjJkODRkYjIxYjZlYTViMDc2ODE0OTNjYzlj
MzFmYmMzNjhiMjQzZjZkZGY4YzkzMmE4YjQwMzhmNDRlN2IxNWNhODc2MzQ0YTE0Nzg1OWYyYjQz
YjM5NDU4NjY4YWQ1ZTBhMWE5YTY2OTU0NmRkMjgxMmUzYjM2MTdhMGFlZjk5ZDU4ZTNiYjRjYzg3
ZmQ5NDIyNWUwMWQyZGNjNDY5YTc3MjY4MTQ2YzUxOTE4ZjE4ZThiNGQ3MGFhMWYwYzc2MjNiY2M1
MmNmMzczMWQzODY0MWIyZDI4MzBiN2VlY2IyZjA5NTUyZmYxMzdkMDQ2ZTQ5NGU3ZjMzYzM1OTAw
MDJiMTZkMWI5N2Q5MzZmZGEyOGY5MGMzZWQzY2EzNTMzODE2OGFjMTZmNzdjM2M1N2FkYzJlOGY3
YzZjMjI1NmU0MWE1ZjY1NDUwNTkwZGJiNWJjZjA2ZDY2NjEwNDIzMDIyMTAwYjBjNzY4NzAyNzQz
YmM1MTI0Mjk5M2E5NzFhNTI4ODk3OTU0NDRmN2M2NDUyMjAzZDBjZTg0ZmU2MTE3ZDQ2ZQorRXhw
ZWN0Tm9SYXdQcml2YXRlCitFeHBlY3ROb1Jhd1B1YmxpYwogCiAjIEEgRFNBIHB1YmxpYyBrZXku
CiBQdWJsaWNLZXkgPSBEU0EtMTAyNC1TUEtJCiBUeXBlID0gRFNBCiBJbnB1dCA9IDMwODIwMWI3
MzA4MjAxMmMwNjA3MmE4NjQ4Y2UzODA0MDEzMDgyMDExZjAyODE4MTAwYjM0MjliOGIxMjhjOTA3
OWY5YjcyZTg2ODU3ZTk4ZDI2NWU1ZDkxNjYxZWQ4YjVmNGNjNTZlNWVlZDFlNTcxZGEzMDE4Njk4
M2E5ZGQ3NjI5N2VhYjczZWUxM2ExZGI4NDFmODgwMGQwNGE3Y2FiNDc4YWY2Y2RlMmVhNGEyODY4
NTMxYWYxNjlhMjQ4NThjNjI2OGVmYTM5Y2ViN2VkMGQ0MjI3ZWI1YmJiMDExMjRhMmE1YTI2MDM4
YzdiY2ZiOGNjODI3ZjY4ZjUyMDIzNDUxNjZlNDcxODU5Njc5OWI2NWM5ZGVmODI4MjhjZTQ0ZTYy
ZTM4ZTQxYTBkMjRiMTAyMTUwMGM1YTU2YzgxZGRkODdmNDdlNjc2NTQ2YzU2ZDA1NzA2NDIxNjI0
Y2YwMjgxODEwMDk0ZGU0MGQyNzMxNGZlOTI5ZTQ3ZmY5YjFhYzY1Y2ZjNzNlZjM4YzRkMzgxYzg5
MGJlNjIxN2IxNTAzOWFlMTgxOTBlNmI0MjFhZjhjMGJkYTM1YTVjZmQwNTBmNThhZTI2NDRhZGNl
ODNlNjhjOGU1YmExMTcyOWRmNTZiYmIyMWUyMjdhNjBiODE2Y2MwMzNmYTc5OWEzOGZlMWJhNWI0
YWExODAxYjZmODQxY2UzZGY5OWZlYjNiNGZiOTY5NTBjOTYwYWYxM2ZhMmNlOTIwYWFiYzEyZGQy
NGFkMjA0NGEzNTA2M2VhMGUyNWY2N2Y1NjBmNGNmYmRjNTU5ODMwMzgxODQwMDAyODE4MDI1OGMz
MGViYmI3ZjM0ZmRjODczY2U2NzlmNmNlYTM3M2M3ODg2ZDc1ZDQ0MjFiOTA5MjBkYjAzNGRhZWRk
MjkyYzY0ZDhlZGQ4Y2RiZGQ3ZjNhZDIzZDc0Y2ZhMjEzNTI0N2QwY2VmNmVjZjJlMTRmOTllMTlk
MjJhOGMxMjY2YmQ4ZmI4NzE5YzBlNTY2N2M3MTZjNDVjN2FkYmRhYmU1NDgwODViZGFkMmRmZWU2
MzZmOGQ1MmZkNmFkYjIxOTNkZjZjNGYwNTIwZmJkMTcxYjkxODgyZTBlNGYzMjFmODI1MGZmZWNm
NGRiZWEwMGUxMTQ0MjdkM2VmOTZjMWEKK0V4cGVjdE5vUmF3UHJpdmF0ZQorRXhwZWN0Tm9SYXdQ
dWJsaWMKIAogIyBUaGUgc2FtZSBrZXkgYXMgYWJvdmUsIGJ1dCB3aXRob3V0IHRoZSBwYXJhbWV0
ZXJzLgogUHVibGljS2V5ID0gRFNBLTEwMjQtU1BLSS1Oby1QYXJhbXMKIFR5cGUgPSBEU0EKIElu
cHV0ID0gMzA4MTkyMzAwOTA2MDcyYTg2NDhjZTM4MDQwMTAzODE4NDAwMDI4MTgwMjU4YzMwZWJi
YjdmMzRmZGM4NzNjZTY3OWY2Y2VhMzczYzc4ODZkNzVkNDQyMWI5MDkyMGRiMDM0ZGFlZGQyOTJj
NjRkOGVkZDhjZGJkZDdmM2FkMjNkNzRjZmEyMTM1MjQ3ZDBjZWY2ZWNmMmUxNGY5OWUxOWQyMmE4
YzEyNjZiZDhmYjg3MTljMGU1NjY3YzcxNmM0NWM3YWRiZGFiZTU0ODA4NWJkYWQyZGZlZTYzNmY4
ZDUyZmQ2YWRiMjE5M2RmNmM0ZjA1MjBmYmQxNzFiOTE4ODJlMGU0ZjMyMWY4MjUwZmZlY2Y0ZGJl
YTAwZTExNDQyN2QzZWY5NmMxYQorRXhwZWN0Tm9SYXdQcml2YXRlCitFeHBlY3ROb1Jhd1B1Ymxp
YwogCiAjIFByaXZhdGUga2V5cyBmcm9tIFJGQyA4MDMyLgogUHJpdmF0ZUtleSA9IEVkMjU1MTkK
IFR5cGUgPSBFZDI1NTE5CiBJbnB1dCA9IDMwMmUwMjAxMDAzMDA1MDYwMzJiNjU3MDA0MjIwNDIw
OWQ2MWIxOWRlZmZkNWE2MGJhODQ0YWY0OTJlYzJjYzQ0NDQ5YzU2OTdiMzI2OTE5NzAzYmFjMDMx
Y2FlN2Y2MAorRXhwZWN0UmF3UHJpdmF0ZSA9IDlkNjFiMTlkZWZmZDVhNjBiYTg0NGFmNDkyZWMy
Y2M0NDQ0OWM1Njk3YjMyNjkxOTcwM2JhYzAzMWNhZTdmNjAKK0V4cGVjdFJhd1B1YmxpYyA9IGQ3
NWE5ODAxODJiMTBhYjdkNTRiZmVkM2M5NjQwNzNhMGVlMTcyZjNkYWE2MjMyNWFmMDIxYTY4Zjcw
NzUxMWEKIAogUHJpdmF0ZUtleSA9IEVkMjU1MTktMgogVHlwZSA9IEVkMjU1MTkKIElucHV0ID0g
MzAyZTAyMDEwMDMwMDUwNjAzMmI2NTcwMDQyMjA0MjA0Y2NkMDg5YjI4ZmY5NmRhOWRiNmMzNDZl
YzExNGUwZjViOGEzMTlmMzVhYmE2MjRkYThjZjZlZDRmYjhhNmZiCitFeHBlY3RSYXdQcml2YXRl
ID0gNGNjZDA4OWIyOGZmOTZkYTlkYjZjMzQ2ZWMxMTRlMGY1YjhhMzE5ZjM1YWJhNjI0ZGE4Y2Y2
ZWQ0ZmI4YTZmYgorRXhwZWN0UmF3UHVibGljID0gM2Q0MDE3YzNlODQzODk1YTkyYjcwYWE3NGQx
YjdlYmM5Yzk4MmNjZjJlYzQ5NjhjYzBjZDU1ZjEyYWY0NjYwYwogCiBQcml2YXRlS2V5ID0gRWQy
NTUxOS0zCiBUeXBlID0gRWQyNTUxOQogSW5wdXQgPSAzMDJlMDIwMTAwMzAwNTA2MDMyYjY1NzAw
NDIyMDQyMGM1YWE4ZGY0M2Y5ZjgzN2JlZGI3NDQyZjMxZGNiN2IxNjZkMzg1MzUwNzZmMDk0Yjg1
Y2UzYTJlMGI0NDU4ZjcKK0V4cGVjdFJhd1ByaXZhdGUgPSBjNWFhOGRmNDNmOWY4MzdiZWRiNzQ0
MmYzMWRjYjdiMTY2ZDM4NTM1MDc2ZjA5NGI4NWNlM2EyZTBiNDQ1OGY3CitFeHBlY3RSYXdQdWJs
aWMgPSBmYzUxY2Q4ZTYyMThhMWEzOGRhNDdlZDAwMjMwZjA1ODA4MTZlZDEzYmEzMzAzYWM1ZGVi
OTExNTQ4OTA4MDI1CiAKIFByaXZhdGVLZXkgPSBFZDI1NTE5LTQKIFR5cGUgPSBFZDI1NTE5CiBJ
bnB1dCA9IDMwMmUwMjAxMDAzMDA1MDYwMzJiNjU3MDA0MjIwNDIwZjVlNTc2N2NmMTUzMzE5NTE3
NjMwZjIyNjg3NmI4NmM4MTYwY2M1ODNiYzAxMzc0NGM2YmYyNTVmNWNjMGVlNQorRXhwZWN0UmF3
UHJpdmF0ZSA9IGY1ZTU3NjdjZjE1MzMxOTUxNzYzMGYyMjY4NzZiODZjODE2MGNjNTgzYmMwMTM3
NDRjNmJmMjU1ZjVjYzBlZTUKK0V4cGVjdFJhd1B1YmxpYyA9IDI3ODExN2ZjMTQ0YzcyMzQwZjY3
ZDBmMjMxNmU4Mzg2Y2VmZmJmMmIyNDI4YzljNTFmZWY3YzU5N2YxZDQyNmUKIAogUHJpdmF0ZUtl
eSA9IEVkMjU1MTktNQogVHlwZSA9IEVkMjU1MTkKIElucHV0ID0gMzAyZTAyMDEwMDMwMDUwNjAz
MmI2NTcwMDQyMjA0MjA4MzNmZTYyNDA5MjM3YjlkNjJlYzc3NTg3NTIwOTExZTlhNzU5Y2VjMWQx
OTc1NWI3ZGE5MDFiOTZkY2EzZDQyCitFeHBlY3RSYXdQcml2YXRlID0gODMzZmU2MjQwOTIzN2I5
ZDYyZWM3NzU4NzUyMDkxMWU5YTc1OWNlYzFkMTk3NTViN2RhOTAxYjk2ZGNhM2Q0MgorRXhwZWN0
UmF3UHVibGljID0gZWMxNzJiOTNhZDVlNTYzYmY0OTMyYzcwZTEyNDUwMzRjMzU0NjdlZjJlZmQ0
ZDY0ZWJmODE5NjgzNDY3ZTJiZgogCiAjIFB1YmxpYyBrZXlzIGZyb20gUkZDIDgwMzIuCiBQdWJs
aWNLZXkgPSBFZDI1NTE5LVNQS0kKIFR5cGUgPSBFZDI1NTE5CiBJbnB1dCA9IDMwMmEzMDA1MDYw
MzJiNjU3MDAzMjEwMGQ3NWE5ODAxODJiMTBhYjdkNTRiZmVkM2M5NjQwNzNhMGVlMTcyZjNkYWE2
MjMyNWFmMDIxYTY4ZjcwNzUxMWEKK0V4cGVjdE5vUmF3UHJpdmF0ZQorRXhwZWN0UmF3UHVibGlj
ID0gZDc1YTk4MDE4MmIxMGFiN2Q1NGJmZWQzYzk2NDA3M2EwZWUxNzJmM2RhYTYyMzI1YWYwMjFh
NjhmNzA3NTExYQogCiBQdWJsaWNLZXkgPSBFZDI1NTE5LVNQS0ktMgogVHlwZSA9IEVkMjU1MTkK
IElucHV0ID0gMzAyYTMwMDUwNjAzMmI2NTcwMDMyMTAwM2Q0MDE3YzNlODQzODk1YTkyYjcwYWE3
NGQxYjdlYmM5Yzk4MmNjZjJlYzQ5NjhjYzBjZDU1ZjEyYWY0NjYwYworRXhwZWN0Tm9SYXdQcml2
YXRlCitFeHBlY3RSYXdQdWJsaWMgPSAzZDQwMTdjM2U4NDM4OTVhOTJiNzBhYTc0ZDFiN2ViYzlj
OTgyY2NmMmVjNDk2OGNjMGNkNTVmMTJhZjQ2NjBjCiAKIFB1YmxpY0tleSA9IEVkMjU1MTktU1BL
SS0zCiBUeXBlID0gRWQyNTUxOQogSW5wdXQgPSAzMDJhMzAwNTA2MDMyYjY1NzAwMzIxMDBmYzUx
Y2Q4ZTYyMThhMWEzOGRhNDdlZDAwMjMwZjA1ODA4MTZlZDEzYmEzMzAzYWM1ZGViOTExNTQ4OTA4
MDI1CitFeHBlY3ROb1Jhd1ByaXZhdGUKK0V4cGVjdFJhd1B1YmxpYyA9IGZjNTFjZDhlNjIxOGEx
YTM4ZGE0N2VkMDAyMzBmMDU4MDgxNmVkMTNiYTMzMDNhYzVkZWI5MTE1NDg5MDgwMjUKIAogUHVi
bGljS2V5ID0gRWQyNTUxOS1TUEtJLTQKIFR5cGUgPSBFZDI1NTE5CiBJbnB1dCA9IDMwMmEzMDA1
MDYwMzJiNjU3MDAzMjEwMDI3ODExN2ZjMTQ0YzcyMzQwZjY3ZDBmMjMxNmU4Mzg2Y2VmZmJmMmIy
NDI4YzljNTFmZWY3YzU5N2YxZDQyNmUKK0V4cGVjdE5vUmF3UHJpdmF0ZQorRXhwZWN0UmF3UHVi
bGljID0gMjc4MTE3ZmMxNDRjNzIzNDBmNjdkMGYyMzE2ZTgzODZjZWZmYmYyYjI0MjhjOWM1MWZl
ZjdjNTk3ZjFkNDI2ZQogCiBQdWJsaWNLZXkgPSBFZDI1NTE5LVNQS0ktNQogVHlwZSA9IEVkMjU1
MTkKIElucHV0ID0gMzAyYTMwMDUwNjAzMmI2NTcwMDMyMTAwZWMxNzJiOTNhZDVlNTYzYmY0OTMy
YzcwZTEyNDUwMzRjMzU0NjdlZjJlZmQ0ZDY0ZWJmODE5NjgzNDY3ZTJiZgorRXhwZWN0Tm9SYXdQ
cml2YXRlCitFeHBlY3RSYXdQdWJsaWMgPSBlYzE3MmI5M2FkNWU1NjNiZjQ5MzJjNzBlMTI0NTAz
NGMzNTQ2N2VmMmVmZDRkNjRlYmY4MTk2ODM0NjdlMmJmCiAKICMgVGhlIGZpcnN0IGtleSwgcHJp
dmF0ZSBhbmQgcHVibGljLCB3aXRoIGludmFsaWQgTlVMTCBwYXJhbWV0ZXJzLgogUHJpdmF0ZUtl
eSA9IEVkMjU1MTktTlVMTApAQCAtMjc0LDYgKzMxNiwxNyBAQCBEaWdlc3QgPSBTSEEyNTYKIElu
cHV0ID0gIjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGIgogQ2hlY2tWZXJpZnkKIAor
IyBDaGVjayBhIHNhbHQgbGVuZ3RoIHdpdGggYSBub24tc3RhbmRhcmQgZGlnZXN0IGxlbmd0aCwg
dG8gdmVyaWZ5IHRoaW5ncyBhcmUKKyMgbm90IGp1c3Qgd29ya2luZyBkdWUgdG8gZGVmYXVsdHMu
IChUaGUgY3VycmVudCBkZWZhdWx0IGlzIGEgbWF4aW11bSBzYWx0CisjIGxlbmd0aCwgYnV0IHRo
ZSBlY29zeXN0ZW0gaGFzIGNvbnZlcmdlZCBvbiBtYXRjaGluZyB0aGUgZGlnZXN0IGxlbmd0aCwg
c28gd2UKKyMgbWF5IGNoYW5nZSB0aGlzIGluIHRoZSBmdXR1cmUuKQorU2lnbiA9IFJTQS0yMDQ4
CitSU0FQYWRkaW5nID0gUFNTCitQU1NTYWx0TGVuZ3RoID0gNDIKK0RpZ2VzdCA9IFNIQTI1Ngor
SW5wdXQgPSAiMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYiCitDaGVja1ZlcmlmeQor
CiAjIEF1dG8tZGV0ZWN0ZWQgc2FsdCBsZW5ndGgKIFZlcmlmeSA9IFJTQS0yMDQ4LVNQS0kKIFJT
QVBhZGRpbmcgPSBQU1MKQEAgLTE1NTQsMyArMTYwNyw0MiBAQCBWZXJpZnkgPSBFZDI1NTE5CiBJ
bnB1dCA9ICIwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYw
MTIzNDU2Nzg5YWJjZGVmIgogT3V0cHV0ID0gZTU1NjQzMDBjMzYwYWM3MjkwODZlMmNjODA2ZTgy
OGE4NDg3N2YxZWI4ZTVkOTc0ZDg3M2UwNjUyMjQ5MDE1NTVmYjg4MjE1OTBhMzNiYWNjNjFlMzk3
MDFjZjliNDZiZDI1YmY1ZjA1OTViYmUyNDY1NTE0MTQzOGU3YTEwMGIKIEVycm9yID0gT1BFUkFU
SU9OX05PVF9TVVBQT1JURURfRk9SX1RISVNfS0VZVFlQRQorCisKKyMgRGVyaXZlIHRlc3RzLgor
CitQcml2YXRlS2V5ID0gRUNESC1QMjU2LVByaXZhdGUKK1R5cGUgPSBFQworSW5wdXQgPSAzMDQx
MDIwMTAwMzAxMzA2MDcyYTg2NDhjZTNkMDIwMTA2MDgyYTg2NDhjZTNkMDMwMTA3MDQyNzMwMjUw
MjAxMDEwNDIwN2Q3ZGM1ZjcxZWIyOWRkYWY4MGQ2MjE0NjMyZWVhZTAzZDkwNThhZjFmYjZkMjJl
ZDgwYmFkYjYyYmMxYTUzNAorCitQdWJsaWNLZXkgPSBFQ0RILVAyNTYtUGVlcgorVHlwZSA9IEVD
CitJbnB1dCA9IDMwNTkzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDcw
MzQyMDAwNDcwMGM0OGY3N2Y1NjU4NGM1Y2M2MzJjYTY1NjQwZGI5MWI2YmFjY2UzYTRkZjZiNDJj
ZTdjYzgzODgzM2QyODdkYjcxZTUwOWUzZmQ5YjA2MGRkYjIwYmE1YzUxZGNjNTk0OGQ0NmZiZjY0
MGRmZTA0NDE3ODJjYWI4NWZhNGFjCisKK0Rlcml2ZSA9IEVDREgtUDI1Ni1Qcml2YXRlCitEZXJp
dmVQZWVyID0gRUNESC1QMjU2LVBlZXIKK091dHB1dCA9IDQ2ZmM2MjEwNjQyMGZmMDEyZTU0YTQz
NGZiZGQyZDI1Y2NjNTg1MjA2MDU2MWU2ODA0MGRkNzc3ODk5N2JkN2IKK1NtYWxsQnVmZmVyVHJ1
bmNhdGVzCisKK1ByaXZhdGVLZXkgPSBYMjU1MTktUHJpdmF0ZQorVHlwZSA9IFgyNTUxOQorSW5w
dXQgPSAzMDJlMDIwMTAwMzAwNTA2MDMyYjY1NmUwNDIyMDQyMGE1NDZlMzZiZjA1MjdjOWQzYjE2
MTU0YjgyNDY1ZWRkNjIxNDRjMGFjMWZjNWExODUwNmEyMjQ0YmE0NDlhYzQKK0V4cGVjdFJhd1By
aXZhdGUgPSBhNTQ2ZTM2YmYwNTI3YzlkM2IxNjE1NGI4MjQ2NWVkZDYyMTQ0YzBhYzFmYzVhMTg1
MDZhMjI0NGJhNDQ5YWM0CisKK1B1YmxpY0tleSA9IFgyNTUxOS1QZWVyCitUeXBlID0gWDI1NTE5
CitJbnB1dCA9IDMwMmEzMDA1MDYwMzJiNjU2ZTAzMjEwMGU2ZGI2ODY3NTgzMDMwZGIzNTk0YzFh
NDI0YjE1ZjdjNzI2NjI0ZWMyNmIzMzUzYjEwYTkwM2E2ZDBhYjFjNGMKK0V4cGVjdFJhd1B1Ymxp
YyA9IGU2ZGI2ODY3NTgzMDMwZGIzNTk0YzFhNDI0YjE1ZjdjNzI2NjI0ZWMyNmIzMzUzYjEwYTkw
M2E2ZDBhYjFjNGMKKworUHVibGljS2V5ID0gWDI1NTE5LVNtYWxsT3JkZXJQZWVyCitUeXBlID0g
WDI1NTE5CitFeHBlY3RSYXdQdWJsaWMgPSBlMGViN2E3YzNiNDFiOGFlMTY1NmUzZmFmMTlmYzQ2
YWRhMDk4ZGViOWMzMmIxZmQ4NjYyMDUxNjVmNDliODAwCitJbnB1dCA9IDMwMmEzMDA1MDYwMzJi
NjU2ZTAzMjEwMGUwZWI3YTdjM2I0MWI4YWUxNjU2ZTNmYWYxOWZjNDZhZGEwOThkZWI5YzMyYjFm
ZDg2NjIwNTE2NWY0OWI4MDAKKworRGVyaXZlID0gWDI1NTE5LVByaXZhdGUKK0Rlcml2ZVBlZXIg
PSBYMjU1MTktUGVlcgorT3V0cHV0ID0gYzNkYTU1Mzc5ZGU5YzY5MDhlOTRlYTRkZjI4ZDA4NGYz
MmVjY2YwMzQ5MWM3MWY3NTRiNDA3NTU3N2EyODU1MgorCitEZXJpdmUgPSBYMjU1MTktUHJpdmF0
ZQorRGVyaXZlUGVlciA9IFgyNTUxOS1TbWFsbE9yZGVyUGVlcgorRXJyb3IgPSBJTlZBTElEX1BF
RVJfS0VZCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9pbnRlcm5hbC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9ldnAvaW50ZXJuYWwuaAppbmRleCA0YWVmYTM1MjYyMzViNDk5ZmU4NWY1NWZhZTRiMGFiMzhj
YTQ0ZGJlLi44YjZhNTgzNjMwNDMxM2I0YzkxODg5OTgwNmI4ZTQzYmFhMDM0NDdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2V2cC9pbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL2ludGVy
bmFsLmgKQEAgLTk2LDYgKzk2LDExIEBAIHN0cnVjdCBldnBfcGtleV9hc24xX21ldGhvZF9zdCB7
CiAgIC8vIHxvdXR8LiBJdCByZXR1cm5zIG9uZSBvbiBzdWNjZXNzIGFuZCB6ZXJvIG9uIGVycm9y
LgogICBpbnQgKCpwcml2X2VuY29kZSkoQ0JCICpvdXQsIGNvbnN0IEVWUF9QS0VZICprZXkpOwog
CisgIGludCAoKnNldF9wcml2X3JhdykoRVZQX1BLRVkgKnBrZXksIGNvbnN0IHVpbnQ4X3QgKmlu
LCBzaXplX3QgbGVuKTsKKyAgaW50ICgqc2V0X3B1Yl9yYXcpKEVWUF9QS0VZICpwa2V5LCBjb25z
dCB1aW50OF90ICppbiwgc2l6ZV90IGxlbik7CisgIGludCAoKmdldF9wcml2X3JhdykoY29uc3Qg
RVZQX1BLRVkgKnBrZXksIHVpbnQ4X3QgKm91dCwgc2l6ZV90ICpvdXRfbGVuKTsKKyAgaW50ICgq
Z2V0X3B1Yl9yYXcpKGNvbnN0IEVWUF9QS0VZICpwa2V5LCB1aW50OF90ICpvdXQsIHNpemVfdCAq
b3V0X2xlbik7CisKICAgLy8gcGtleV9vcGFxdWUgcmV0dXJucyAxIGlmIHRoZSB8cGt8IGlzIG9w
YXF1ZS4gT3BhcXVlIGtleXMgYXJlIGJhY2tlZCBieQogICAvLyBjdXN0b20gaW1wbGVtZW50YXRp
b25zIHdoaWNoIGRvIG5vdCBleHBvc2Uga2V5IG1hdGVyaWFsIGFuZCBwYXJhbWV0ZXJzLgogICBp
bnQgKCpwa2V5X29wYXF1ZSkoY29uc3QgRVZQX1BLRVkgKnBrKTsKQEAgLTExOSw2ICsxMjQsNyBA
QCBzdHJ1Y3QgZXZwX3BrZXlfYXNuMV9tZXRob2Rfc3QgewogI2RlZmluZSBFVlBfUEtFWV9PUF9F
TkNSWVBUICgxIDw8IDYpCiAjZGVmaW5lIEVWUF9QS0VZX09QX0RFQ1JZUFQgKDEgPDwgNykKICNk
ZWZpbmUgRVZQX1BLRVlfT1BfREVSSVZFICgxIDw8IDgpCisjZGVmaW5lIEVWUF9QS0VZX09QX1BB
UkFNR0VOICgxIDw8IDkpCiAKICNkZWZpbmUgRVZQX1BLRVlfT1BfVFlQRV9TSUcgXAogICAoRVZQ
X1BLRVlfT1BfU0lHTiB8IEVWUF9QS0VZX09QX1ZFUklGWSB8IEVWUF9QS0VZX09QX1ZFUklGWVJF
Q09WRVIpCkBAIC0xMjgsNyArMTM0LDcgQEAgc3RydWN0IGV2cF9wa2V5X2FzbjFfbWV0aG9kX3N0
IHsKICNkZWZpbmUgRVZQX1BLRVlfT1BfVFlQRV9OT0dFTiBcCiAgIChFVlBfUEtFWV9PUF9TSUcg
fCBFVlBfUEtFWV9PUF9DUllQVCB8IEVWUF9QS0VZX09QX0RFUklWRSkKIAotI2RlZmluZSBFVlBf
UEtFWV9PUF9UWVBFX0dFTiBFVlBfUEtFWV9PUF9LRVlHRU4KKyNkZWZpbmUgRVZQX1BLRVlfT1Bf
VFlQRV9HRU4gKEVWUF9QS0VZX09QX0tFWUdFTiB8IEVWUF9QS0VZX09QX1BBUkFNR0VOKQogCiAv
LyBFVlBfUEtFWV9DVFhfY3RybCBwZXJmb3JtcyB8Y21kfCBvbiB8Y3R4fC4gVGhlIHxrZXl0eXBl
fCBhbmQgfG9wdHlwZXwKIC8vIGFyZ3VtZW50cyBjYW4gYmUgLTEgdG8gc3BlY2lmeSB0aGF0IGFu
eSB0eXBlIGFuZCBvcGVyYXRpb24gYXJlIGFjY2VwdGFibGUsCkBAIC0xNzEsNiArMTc3LDcgQEAg
T1BFTlNTTF9FWFBPUlQgaW50IEVWUF9QS0VZX0NUWF9jdHJsKEVWUF9QS0VZX0NUWCAqY3R4LCBp
bnQga2V5dHlwZSwgaW50IG9wdHlwZSwKICNkZWZpbmUgRVZQX1BLRVlfQ1RSTF9HRVRfUlNBX01H
RjFfTUQgKEVWUF9QS0VZX0FMR19DVFJMICsgMTApCiAjZGVmaW5lIEVWUF9QS0VZX0NUUkxfUlNB
X09BRVBfTEFCRUwgKEVWUF9QS0VZX0FMR19DVFJMICsgMTEpCiAjZGVmaW5lIEVWUF9QS0VZX0NU
UkxfR0VUX1JTQV9PQUVQX0xBQkVMIChFVlBfUEtFWV9BTEdfQ1RSTCArIDEyKQorI2RlZmluZSBF
VlBfUEtFWV9DVFJMX0VDX1BBUkFNR0VOX0NVUlZFX05JRCAoRVZQX1BLRVlfQUxHX0NUUkwgKyAx
MykKIAogc3RydWN0IGV2cF9wa2V5X2N0eF9zdCB7CiAgIC8vIE1ldGhvZCBhc3NvY2lhdGVkIHdp
dGggdGhpcyBvcGVyYXRpb24KQEAgLTIxOSw2ICsyMjYsOCBAQCBzdHJ1Y3QgZXZwX3BrZXlfbWV0
aG9kX3N0IHsKIAogICBpbnQgKCpkZXJpdmUpKEVWUF9QS0VZX0NUWCAqY3R4LCB1aW50OF90ICpr
ZXksIHNpemVfdCAqa2V5bGVuKTsKIAorICBpbnQgKCpwYXJhbWdlbikoRVZQX1BLRVlfQ1RYICpj
dHgsIEVWUF9QS0VZICpwa2V5KTsKKwogICBpbnQgKCpjdHJsKShFVlBfUEtFWV9DVFggKmN0eCwg
aW50IHR5cGUsIGludCBwMSwgdm9pZCAqcDIpOwogfSAvKiBFVlBfUEtFWV9NRVRIT0QgKi87CiAK
QEAgLTIzNSwxNCArMjQ0LDIyIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgY2hhciBoYXNfcHJpdmF0
ZTsKIH0gRUQyNTUxOV9LRVk7CiAKK3R5cGVkZWYgc3RydWN0IHsKKyAgdWludDhfdCBwdWJbMzJd
OworICB1aW50OF90IHByaXZbMzJdOworICBjaGFyIGhhc19wcml2YXRlOworfSBYMjU1MTlfS0VZ
OworCiBleHRlcm4gY29uc3QgRVZQX1BLRVlfQVNOMV9NRVRIT0QgZHNhX2FzbjFfbWV0aDsKIGV4
dGVybiBjb25zdCBFVlBfUEtFWV9BU04xX01FVEhPRCBlY19hc24xX21ldGg7CiBleHRlcm4gY29u
c3QgRVZQX1BLRVlfQVNOMV9NRVRIT0QgcnNhX2FzbjFfbWV0aDsKIGV4dGVybiBjb25zdCBFVlBf
UEtFWV9BU04xX01FVEhPRCBlZDI1NTE5X2FzbjFfbWV0aDsKK2V4dGVybiBjb25zdCBFVlBfUEtF
WV9BU04xX01FVEhPRCB4MjU1MTlfYXNuMV9tZXRoOwogCiBleHRlcm4gY29uc3QgRVZQX1BLRVlf
TUVUSE9EIHJzYV9wa2V5X21ldGg7CiBleHRlcm4gY29uc3QgRVZQX1BLRVlfTUVUSE9EIGVjX3Br
ZXlfbWV0aDsKIGV4dGVybiBjb25zdCBFVlBfUEtFWV9NRVRIT0QgZWQyNTUxOV9wa2V5X21ldGg7
CitleHRlcm4gY29uc3QgRVZQX1BLRVlfTUVUSE9EIHgyNTUxOV9wa2V5X21ldGg7CiAKIAogI2lm
IGRlZmluZWQoX19jcGx1c3BsdXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9wX2RzYV9h
c24xLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9wX2RzYV9hc24xLmMKaW5kZXggMzRiMmU3MGMyZjM3Mzk4
MTA1MGU2OGQxZjc0M2UzMTE3YzAyYWE1ZC4uZDUwZTBmYzM3NDljZDZmNDA3MTc2ZGEwZGY5ODcw
MzI2MDI3YTUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ldnAvcF9kc2FfYXNuMS5jCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZXZwL3BfZHNhX2FzbjEuYwpAQCAtMjU1LDYgKzI1NSwxMSBAQCBjb25zdCBF
VlBfUEtFWV9BU04xX01FVEhPRCBkc2FfYXNuMV9tZXRoID0gewogICBkc2FfcHJpdl9kZWNvZGUs
CiAgIGRzYV9wcml2X2VuY29kZSwKIAorICBOVUxMIC8qIHNldF9wcml2X3JhdyAqLywKKyAgTlVM
TCAvKiBzZXRfcHViX3JhdyAqLywKKyAgTlVMTCAvKiBnZXRfcHJpdl9yYXcgKi8sCisgIE5VTEwg
LyogZ2V0X3B1Yl9yYXcgKi8sCisKICAgTlVMTCAvKiBwa2V5X29wYXF1ZSAqLywKIAogICBpbnRf
ZHNhX3NpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9wX2VjLmMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2V2cC9wX2VjLmMKaW5kZXggZDMxMWQyMjA5MTE1MGIwZjhmZDM4MWJhMGIxYzJiMzA1YzBlMmYw
Ni4uOWMzMjVhZTBjZjY2ODNlMWJmZjM2NmU4Y2Y2ZWQxN2I2MTMyY2ExZCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9ldnAvcF9lYy5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfZWMuYwpAQCAtNzYs
NiArNzYsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgewogICAvLyBtZXNzYWdlIGRpZ2VzdAogICBjb25z
dCBFVlBfTUQgKm1kOworICBFQ19HUk9VUCAqZ2VuX2dyb3VwOwogfSBFQ19QS0VZX0NUWDsKIAog
CkBAIC0xMTEsNiArMTEyLDcgQEAgc3RhdGljIHZvaWQgcGtleV9lY19jbGVhbnVwKEVWUF9QS0VZ
X0NUWCAqY3R4KSB7CiAgICAgcmV0dXJuOwogICB9CiAKKyAgRUNfR1JPVVBfZnJlZShkY3R4LT5n
ZW5fZ3JvdXApOwogICBPUEVOU1NMX2ZyZWUoZGN0eCk7CiB9CiAKQEAgLTE5OSw2ICsyMDEsMTYg
QEAgc3RhdGljIGludCBwa2V5X2VjX2N0cmwoRVZQX1BLRVlfQ1RYICpjdHgsIGludCB0eXBlLCBp
bnQgcDEsIHZvaWQgKnAyKSB7CiAgICAgICAvLyBEZWZhdWx0IGJlaGF2aW91ciBpcyBPSwogICAg
ICAgcmV0dXJuIDE7CiAKKyAgICBjYXNlIEVWUF9QS0VZX0NUUkxfRUNfUEFSQU1HRU5fQ1VSVkVf
TklEOiB7CisgICAgICBFQ19HUk9VUCAqZ3JvdXAgPSBFQ19HUk9VUF9uZXdfYnlfY3VydmVfbmFt
ZShwMSk7CisgICAgICBpZiAoZ3JvdXAgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gMDsKKyAg
ICAgIH0KKyAgICAgIEVDX0dST1VQX2ZyZWUoZGN0eC0+Z2VuX2dyb3VwKTsKKyAgICAgIGRjdHgt
Pmdlbl9ncm91cCA9IGdyb3VwOworICAgICAgcmV0dXJuIDE7CisgICAgfQorCiAgICAgZGVmYXVs
dDoKICAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfQ09NTUFORF9OT1RfU1VQUE9S
VEVEKTsKICAgICAgIHJldHVybiAwOwpAQCAtMjA2LDE0ICsyMTgsMzUgQEAgc3RhdGljIGludCBw
a2V5X2VjX2N0cmwoRVZQX1BLRVlfQ1RYICpjdHgsIGludCB0eXBlLCBpbnQgcDEsIHZvaWQgKnAy
KSB7CiB9CiAKIHN0YXRpYyBpbnQgcGtleV9lY19rZXlnZW4oRVZQX1BLRVlfQ1RYICpjdHgsIEVW
UF9QS0VZICpwa2V5KSB7Ci0gIGlmIChjdHgtPnBrZXkgPT0gTlVMTCkgeworICBFQ19QS0VZX0NU
WCAqZGN0eCA9IGN0eC0+ZGF0YTsKKyAgY29uc3QgRUNfR1JPVVAgKmdyb3VwID0gZGN0eC0+Z2Vu
X2dyb3VwOworICBpZiAoZ3JvdXAgPT0gTlVMTCkgeworICAgIGlmIChjdHgtPnBrZXkgPT0gTlVM
TCkgeworICAgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9OT19QQVJBTUVURVJTX1NF
VCk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91
cChjdHgtPnBrZXktPnBrZXkuZWMpOworICB9CisgIEVDX0tFWSAqZWMgPSBFQ19LRVlfbmV3KCk7
CisgIGlmIChlYyA9PSBOVUxMIHx8CisgICAgICAhRUNfS0VZX3NldF9ncm91cChlYywgZ3JvdXAp
IHx8CisgICAgICAhRUNfS0VZX2dlbmVyYXRlX2tleShlYykpIHsKKyAgICBFQ19LRVlfZnJlZShl
Yyk7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgRVZQX1BLRVlfYXNzaWduX0VDX0tFWShwa2V5LCBl
Yyk7CisgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IHBrZXlfZWNfcGFyYW1nZW4oRVZQX1BL
RVlfQ1RYICpjdHgsIEVWUF9QS0VZICpwa2V5KSB7CisgIEVDX1BLRVlfQ1RYICpkY3R4ID0gY3R4
LT5kYXRhOworICBpZiAoZGN0eC0+Z2VuX2dyb3VwID09IE5VTEwpIHsKICAgICBPUEVOU1NMX1BV
VF9FUlJPUihFVlAsIEVWUF9SX05PX1BBUkFNRVRFUlNfU0VUKTsKICAgICByZXR1cm4gMDsKICAg
fQogICBFQ19LRVkgKmVjID0gRUNfS0VZX25ldygpOwogICBpZiAoZWMgPT0gTlVMTCB8fAotICAg
ICAgIUVDX0tFWV9zZXRfZ3JvdXAoZWMsIEVDX0tFWV9nZXQwX2dyb3VwKGN0eC0+cGtleS0+cGtl
eS5lYykpIHx8Ci0gICAgICAhRUNfS0VZX2dlbmVyYXRlX2tleShlYykpIHsKKyAgICAgICFFQ19L
RVlfc2V0X2dyb3VwKGVjLCBkY3R4LT5nZW5fZ3JvdXApKSB7CiAgICAgRUNfS0VZX2ZyZWUoZWMp
OwogICAgIHJldHVybiAwOwogICB9CkBAIC0yMzUsNSArMjY4LDIwIEBAIGNvbnN0IEVWUF9QS0VZ
X01FVEhPRCBlY19wa2V5X21ldGggPSB7CiAgICAgTlVMTCAvKiBlbmNyeXB0ICovLAogICAgIE5V
TEwgLyogZGVjcnlwdCAqLywKICAgICBwa2V5X2VjX2Rlcml2ZSwKKyAgICBwa2V5X2VjX3BhcmFt
Z2VuLAogICAgIHBrZXlfZWNfY3RybCwKIH07CisKK2ludCBFVlBfUEtFWV9DVFhfc2V0X2VjX3Bh
cmFtZ2VuX2N1cnZlX25pZChFVlBfUEtFWV9DVFggKmN0eCwgaW50IG5pZCkgeworICByZXR1cm4g
RVZQX1BLRVlfQ1RYX2N0cmwoY3R4LCBFVlBfUEtFWV9FQywgRVZQX1BLRVlfT1BfVFlQRV9HRU4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlBfUEtFWV9DVFJMX0VDX1BBUkFNR0VOX0NV
UlZFX05JRCwgbmlkLCBOVUxMKTsKK30KKworaW50IEVWUF9QS0VZX0NUWF9zZXRfZWNfcGFyYW1f
ZW5jKEVWUF9QS0VZX0NUWCAqY3R4LCBpbnQgZW5jb2RpbmcpIHsKKyAgLy8gQm9yaW5nU1NMIG9u
bHkgc3VwcG9ydHMgbmFtZWQgY3VydmUgc3ludGF4LgorICBpZiAoZW5jb2RpbmcgIT0gT1BFTlNT
TF9FQ19OQU1FRF9DVVJWRSkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfSU5W
QUxJRF9QQVJBTUVURVJTKTsKKyAgICByZXR1cm4gMDsKKyAgfQorICByZXR1cm4gMTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfZWNfYXNuMS5jIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ldnAvcF9l
Y19hc24xLmMKaW5kZXggMGFkOGYzODM5MTVjNTVlNDUzNGI4ZTZlMDE0NzkxMzAzOTVlNTgyMi4u
ZGVkYzVlMGFlNTM3NGZmMTQ0ODhiZDQ0Y2MxOGM0Mjg3ZTE5ZmUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9ldnAvcF9lY19hc24xLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ldnAvcF9lY19hc24xLmMK
QEAgLTIzNyw2ICsyMzcsMTEgQEAgY29uc3QgRVZQX1BLRVlfQVNOMV9NRVRIT0QgZWNfYXNuMV9t
ZXRoID0gewogICBlY2tleV9wcml2X2RlY29kZSwKICAgZWNrZXlfcHJpdl9lbmNvZGUsCiAKKyAg
TlVMTCAvKiBzZXRfcHJpdl9yYXcgKi8sCisgIE5VTEwgLyogc2V0X3B1Yl9yYXcgKi8sCisgIE5V
TEwgLyogZ2V0X3ByaXZfcmF3ICovLAorICBOVUxMIC8qIGdldF9wdWJfcmF3ICovLAorCiAgIGVj
a2V5X29wYXF1ZSwKIAogICBpbnRfZWNfc2l6ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZw
L3BfZWQyNTUxOS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ldnAvcF9lZDI1NTE5LmMKaW5kZXggNTU0YTM3OWM3
NTAxZGFlMjZiNjA0N2U2NWMwNjE1MjNjMDM3MmYwOC4uOTE0OWFmYjIyMjEyY2Y1MjU0MjNmMGQ3
YzYwODNjZTg1MGU1MWFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9ldnAvcF9lZDI1NTE5LmMK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9ldnAvcF9lZDI1NTE5LmMKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2lu
Y2x1ZGUgPG9wZW5zc2wvY3VydmUyNTUxOS5oPgogI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+Cisj
aW5jbHVkZSA8b3BlbnNzbC9tZW0uaD4KIAogI2luY2x1ZGUgImludGVybmFsLmgiCiAKQEAgLTIz
LDYgKzI0LDI3IEBACiAvLyBFZDI1NTE5IGhhcyBubyBwYXJhbWV0ZXJzIHRvIGNvcHkuCiBzdGF0
aWMgaW50IHBrZXlfZWQyNTUxOV9jb3B5KEVWUF9QS0VZX0NUWCAqZHN0LCBFVlBfUEtFWV9DVFgg
KnNyYykgeyByZXR1cm4gMTsgfQogCitzdGF0aWMgaW50IHBrZXlfZWQyNTUxOV9rZXlnZW4oRVZQ
X1BLRVlfQ1RYICpjdHgsIEVWUF9QS0VZICpwa2V5KSB7CisgIEVEMjU1MTlfS0VZICprZXkgPSBP
UEVOU1NMX21hbGxvYyhzaXplb2YoRUQyNTUxOV9LRVkpKTsKKyAgaWYgKGtleSA9PSBOVUxMKSB7
CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CisgICAg
cmV0dXJuIDA7CisgIH0KKworICBpZiAoIUVWUF9QS0VZX3NldF90eXBlKHBrZXksIEVWUF9QS0VZ
X0VEMjU1MTkpKSB7CisgICAgT1BFTlNTTF9mcmVlKGtleSk7CisgICAgcmV0dXJuIDA7CisgIH0K
KworICB1aW50OF90IHB1YmtleV91bnVzZWRbMzJdOworICBFRDI1NTE5X2tleXBhaXIocHVia2V5
X3VudXNlZCwga2V5LT5rZXkucHJpdik7CisgIGtleS0+aGFzX3ByaXZhdGUgPSAxOworCisgIE9Q
RU5TU0xfZnJlZShwa2V5LT5wa2V5LnB0cik7CisgIHBrZXktPnBrZXkucHRyID0ga2V5OworICBy
ZXR1cm4gMTsKK30KKwogc3RhdGljIGludCBwa2V5X2VkMjU1MTlfc2lnbl9tZXNzYWdlKEVWUF9Q
S0VZX0NUWCAqY3R4LCB1aW50OF90ICpzaWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90ICpzaWdsZW4sIGNvbnN0IHVpbnQ4X3QgKnRicywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGJzbGVuKSB7CkBAIC0zMiwxMiArNTQs
MjIgQEAgc3RhdGljIGludCBwa2V5X2VkMjU1MTlfc2lnbl9tZXNzYWdlKEVWUF9QS0VZX0NUWCAq
Y3R4LCB1aW50OF90ICpzaWcsCiAgICAgcmV0dXJuIDA7CiAgIH0KIAotICAqc2lnbGVuID0gNjQ7
CiAgIGlmIChzaWcgPT0gTlVMTCkgeworICAgICpzaWdsZW4gPSA2NDsKICAgICByZXR1cm4gMTsK
ICAgfQogCi0gIHJldHVybiBFRDI1NTE5X3NpZ24oc2lnLCB0YnMsIHRic2xlbiwga2V5LT5rZXku
cHJpdik7CisgIGlmICgqc2lnbGVuIDwgNjQpIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAs
IEVWUF9SX0JVRkZFUl9UT09fU01BTEwpOworICAgIHJldHVybiAwOworICB9CisKKyAgaWYgKCFF
RDI1NTE5X3NpZ24oc2lnLCB0YnMsIHRic2xlbiwga2V5LT5rZXkucHJpdikpIHsKKyAgICByZXR1
cm4gMDsKKyAgfQorCisgICpzaWdsZW4gPSA2NDsKKyAgcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyBp
bnQgcGtleV9lZDI1NTE5X3ZlcmlmeV9tZXNzYWdlKEVWUF9QS0VZX0NUWCAqY3R4LCBjb25zdCB1
aW50OF90ICpzaWcsCkBAIC01OCw3ICs5MCw3IEBAIGNvbnN0IEVWUF9QS0VZX01FVEhPRCBlZDI1
NTE5X3BrZXlfbWV0aCA9IHsKICAgICBOVUxMIC8qIGluaXQgKi8sCiAgICAgcGtleV9lZDI1NTE5
X2NvcHksCiAgICAgTlVMTCAvKiBjbGVhbnVwICovLAotICAgIE5VTEwgLyoga2V5Z2VuICovLAor
ICAgIHBrZXlfZWQyNTUxOV9rZXlnZW4sCiAgICAgTlVMTCAvKiBzaWduICovLAogICAgIHBrZXlf
ZWQyNTUxOV9zaWduX21lc3NhZ2UsCiAgICAgTlVMTCAvKiB2ZXJpZnkgKi8sCkBAIC02Nyw1ICs5
OSw2IEBAIGNvbnN0IEVWUF9QS0VZX01FVEhPRCBlZDI1NTE5X3BrZXlfbWV0aCA9IHsKICAgICBO
VUxMIC8qIGVuY3J5cHQgKi8sCiAgICAgTlVMTCAvKiBkZWNyeXB0ICovLAogICAgIE5VTEwgLyog
ZGVyaXZlICovLAorICAgIE5VTEwgLyogcGFyYW1nZW4gKi8sCiAgICAgTlVMTCAvKiBjdHJsICov
LAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfZWQyNTUxOV9hc24xLmMgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL2V2cC9wX2VkMjU1MTlfYXNuMS5jCmluZGV4IGJhMDhjNmQzNjk5M2RmMjQyMDNmZjRl
OWUxNjdmMDhkNjE2MWE1MDYuLjFmOTk2Y2Y2ZGU0MzFkYWViYTk4MjYzYmUwMTNiNjdkODJjMGZk
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfZWQyNTUxOV9hc24xLmMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9ldnAvcF9lZDI1NTE5X2FzbjEuYwpAQCAtMjgsNDUgKzI4LDEwMSBAQCBzdGF0aWMg
dm9pZCBlZDI1NTE5X2ZyZWUoRVZQX1BLRVkgKnBrZXkpIHsKICAgcGtleS0+cGtleS5wdHIgPSBO
VUxMOwogfQogCi1zdGF0aWMgaW50IHNldF9wdWJrZXkoRVZQX1BLRVkgKnBrZXksIGNvbnN0IHVp
bnQ4X3QgcHVia2V5WzMyXSkgeworc3RhdGljIGludCBlZDI1NTE5X3NldF9wcml2X3JhdyhFVlBf
UEtFWSAqcGtleSwgY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBsZW4pIHsKKyAgaWYgKGxlbiAh
PSAzMikgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfREVDT0RFX0VSUk9SKTsK
KyAgICByZXR1cm4gMDsKKyAgfQorCiAgIEVEMjU1MTlfS0VZICprZXkgPSBPUEVOU1NMX21hbGxv
YyhzaXplb2YoRUQyNTUxOV9LRVkpKTsKICAgaWYgKGtleSA9PSBOVUxMKSB7CiAgICAgT1BFTlNT
TF9QVVRfRVJST1IoRVZQLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CiAgICAgcmV0dXJuIDA7CiAg
IH0KLSAga2V5LT5oYXNfcHJpdmF0ZSA9IDA7Ci0gIE9QRU5TU0xfbWVtY3B5KGtleS0+a2V5LnB1
Yi52YWx1ZSwgcHVia2V5LCAzMik7CisKKyAgLy8gVGhlIFJGQyA4MDMyIGVuY29kaW5nIHN0b3Jl
cyBvbmx5IHRoZSAzMi1ieXRlIHNlZWQsIHNvIHdlIG11c3QgcmVjb3ZlciB0aGUKKyAgLy8gZnVs
bCByZXByZXNlbnRhdGlvbiB3aGljaCB3ZSB1c2UgZnJvbSBpdC4KKyAgdWludDhfdCBwdWJrZXlf
dW51c2VkWzMyXTsKKyAgRUQyNTUxOV9rZXlwYWlyX2Zyb21fc2VlZChwdWJrZXlfdW51c2VkLCBr
ZXktPmtleS5wcml2LCBpbik7CisgIGtleS0+aGFzX3ByaXZhdGUgPSAxOwogCiAgIGVkMjU1MTlf
ZnJlZShwa2V5KTsKICAgcGtleS0+cGtleS5wdHIgPSBrZXk7CiAgIHJldHVybiAxOwogfQogCi1z
dGF0aWMgaW50IHNldF9wcml2a2V5KEVWUF9QS0VZICpwa2V5LCBjb25zdCB1aW50OF90IHByaXZr
ZXlbNjRdKSB7CitzdGF0aWMgaW50IGVkMjU1MTlfc2V0X3B1Yl9yYXcoRVZQX1BLRVkgKnBrZXks
IGNvbnN0IHVpbnQ4X3QgKmluLCBzaXplX3QgbGVuKSB7CisgIGlmIChsZW4gIT0gMzIpIHsKKyAg
ICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX0RFQ09ERV9FUlJPUik7CisgICAgcmV0dXJu
IDA7CisgIH0KKwogICBFRDI1NTE5X0tFWSAqa2V5ID0gT1BFTlNTTF9tYWxsb2Moc2l6ZW9mKEVE
MjU1MTlfS0VZKSk7CiAgIGlmIChrZXkgPT0gTlVMTCkgewogICAgIE9QRU5TU0xfUFVUX0VSUk9S
KEVWUCwgRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOwogICAgIHJldHVybiAwOwogICB9Ci0gIGtleS0+
aGFzX3ByaXZhdGUgPSAxOwotICBPUEVOU1NMX21lbWNweShrZXktPmtleS5wcml2LCBwcml2a2V5
LCA2NCk7CisKKyAgT1BFTlNTTF9tZW1jcHkoa2V5LT5rZXkucHViLnZhbHVlLCBpbiwgMzIpOwor
ICBrZXktPmhhc19wcml2YXRlID0gMDsKIAogICBlZDI1NTE5X2ZyZWUocGtleSk7CiAgIHBrZXkt
PnBrZXkucHRyID0ga2V5OwogICByZXR1cm4gMTsKIH0KIAorc3RhdGljIGludCBlZDI1NTE5X2dl
dF9wcml2X3Jhdyhjb25zdCBFVlBfUEtFWSAqcGtleSwgdWludDhfdCAqb3V0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dF9sZW4pIHsKKyAgY29uc3QgRUQyNTUx
OV9LRVkgKmtleSA9IHBrZXktPnBrZXkucHRyOworICBpZiAoIWtleS0+aGFzX3ByaXZhdGUpIHsK
KyAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX05PVF9BX1BSSVZBVEVfS0VZKTsKKyAg
ICByZXR1cm4gMDsKKyAgfQorCisgIGlmIChvdXQgPT0gTlVMTCkgeworICAgICpvdXRfbGVuID0g
MzI7CisgICAgcmV0dXJuIDE7CisgIH0KKworICBpZiAoKm91dF9sZW4gPCAzMikgeworICAgIE9Q
RU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfQlVGRkVSX1RPT19TTUFMTCk7CisgICAgcmV0dXJu
IDA7CisgIH0KKworICAvLyBUaGUgcmF3IHByaXZhdGUga2V5IGZvcm1hdCBpcyB0aGUgZmlyc3Qg
MzIgYnl0ZXMgb2YgdGhlIHByaXZhdGUga2V5LgorICBPUEVOU1NMX21lbWNweShvdXQsIGtleS0+
a2V5LnByaXYsIDMyKTsKKyAgKm91dF9sZW4gPSAzMjsKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRp
YyBpbnQgZWQyNTUxOV9nZXRfcHViX3Jhdyhjb25zdCBFVlBfUEtFWSAqcGtleSwgdWludDhfdCAq
b3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0X2xlbikgewor
ICBjb25zdCBFRDI1NTE5X0tFWSAqa2V5ID0gcGtleS0+cGtleS5wdHI7CisgIGlmIChvdXQgPT0g
TlVMTCkgeworICAgICpvdXRfbGVuID0gMzI7CisgICAgcmV0dXJuIDE7CisgIH0KKworICBpZiAo
Km91dF9sZW4gPCAzMikgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfQlVGRkVS
X1RPT19TTUFMTCk7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBPUEVOU1NMX21lbWNweShvdXQs
IGtleS0+a2V5LnB1Yi52YWx1ZSwgMzIpOworICAqb3V0X2xlbiA9IDMyOworICByZXR1cm4gMTsK
K30KKwogc3RhdGljIGludCBlZDI1NTE5X3B1Yl9kZWNvZGUoRVZQX1BLRVkgKm91dCwgQ0JTICpw
YXJhbXMsIENCUyAqa2V5KSB7CiAgIC8vIFNlZSBSRkMgODQxMCwgc2VjdGlvbiA0LgogCiAgIC8v
IFRoZSBwYXJhbWV0ZXJzIG11c3QgYmUgb21pdHRlZC4gUHVibGljIGtleXMgaGF2ZSBsZW5ndGgg
MzIuCi0gIGlmIChDQlNfbGVuKHBhcmFtcykgIT0gMCB8fAotICAgICAgQ0JTX2xlbihrZXkpICE9
IDMyKSB7CisgIGlmIChDQlNfbGVuKHBhcmFtcykgIT0gMCkgewogICAgIE9QRU5TU0xfUFVUX0VS
Uk9SKEVWUCwgRVZQX1JfREVDT0RFX0VSUk9SKTsKICAgICByZXR1cm4gMDsKICAgfQogCi0gIHJl
dHVybiBzZXRfcHVia2V5KG91dCwgQ0JTX2RhdGEoa2V5KSk7CisgIHJldHVybiBlZDI1NTE5X3Nl
dF9wdWJfcmF3KG91dCwgQ0JTX2RhdGEoa2V5KSwgQ0JTX2xlbihrZXkpKTsKIH0KIAogc3RhdGlj
IGludCBlZDI1NTE5X3B1Yl9lbmNvZGUoQ0JCICpvdXQsIGNvbnN0IEVWUF9QS0VZICpwa2V5KSB7
CkBAIC0xMDMsMTcgKzE1OSwxMiBAQCBzdGF0aWMgaW50IGVkMjU1MTlfcHJpdl9kZWNvZGUoRVZQ
X1BLRVkgKm91dCwgQ0JTICpwYXJhbXMsIENCUyAqa2V5KSB7CiAgIENCUyBpbm5lcjsKICAgaWYg
KENCU19sZW4ocGFyYW1zKSAhPSAwIHx8CiAgICAgICAhQ0JTX2dldF9hc24xKGtleSwgJmlubmVy
LCBDQlNfQVNOMV9PQ1RFVFNUUklORykgfHwKLSAgICAgIENCU19sZW4oa2V5KSAhPSAwIHx8Ci0g
ICAgICBDQlNfbGVuKCZpbm5lcikgIT0gMzIpIHsKKyAgICAgIENCU19sZW4oa2V5KSAhPSAwKSB7
CiAgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9ERUNPREVfRVJST1IpOwogICAgIHJl
dHVybiAwOwogICB9CiAKLSAgLy8gVGhlIFBLQ1MjOCBlbmNvZGluZyBzdG9yZXMgb25seSB0aGUg
MzItYnl0ZSBzZWVkLCBzbyB3ZSBtdXN0IHJlY292ZXIgdGhlCi0gIC8vIGZ1bGwgcmVwcmVzZW50
YXRpb24gd2hpY2ggd2UgdXNlIGZyb20gaXQuCi0gIHVpbnQ4X3QgcHVia2V5WzMyXSwgcHJpdmtl
eVs2NF07Ci0gIEVEMjU1MTlfa2V5cGFpcl9mcm9tX3NlZWQocHVia2V5LCBwcml2a2V5LCBDQlNf
ZGF0YSgmaW5uZXIpKTsKLSAgcmV0dXJuIHNldF9wcml2a2V5KG91dCwgcHJpdmtleSk7CisgIHJl
dHVybiBlZDI1NTE5X3NldF9wcml2X3JhdyhvdXQsIENCU19kYXRhKCZpbm5lciksIENCU19sZW4o
JmlubmVyKSk7CiB9CiAKIHN0YXRpYyBpbnQgZWQyNTUxOV9wcml2X2VuY29kZShDQkIgKm91dCwg
Y29uc3QgRVZQX1BLRVkgKnBrZXkpIHsKQEAgLTE0NSw3ICsxOTYsNyBAQCBzdGF0aWMgaW50IGVk
MjU1MTlfcHJpdl9lbmNvZGUoQ0JCICpvdXQsIGNvbnN0IEVWUF9QS0VZICpwa2V5KSB7CiAKIHN0
YXRpYyBpbnQgZWQyNTUxOV9zaXplKGNvbnN0IEVWUF9QS0VZICpwa2V5KSB7IHJldHVybiA2NDsg
fQogCi1zdGF0aWMgaW50IGVkMjU1MTlfYml0cyhjb25zdCBFVlBfUEtFWSAqcGtleSkgeyByZXR1
cm4gMjU2OyB9CitzdGF0aWMgaW50IGVkMjU1MTlfYml0cyhjb25zdCBFVlBfUEtFWSAqcGtleSkg
eyByZXR1cm4gMjUzOyB9CiAKIGNvbnN0IEVWUF9QS0VZX0FTTjFfTUVUSE9EIGVkMjU1MTlfYXNu
MV9tZXRoID0gewogICAgIEVWUF9QS0VZX0VEMjU1MTksCkBAIC0xNTYsNiArMjA3LDEwIEBAIGNv
bnN0IEVWUF9QS0VZX0FTTjFfTUVUSE9EIGVkMjU1MTlfYXNuMV9tZXRoID0gewogICAgIGVkMjU1
MTlfcHViX2NtcCwKICAgICBlZDI1NTE5X3ByaXZfZGVjb2RlLAogICAgIGVkMjU1MTlfcHJpdl9l
bmNvZGUsCisgICAgZWQyNTUxOV9zZXRfcHJpdl9yYXcsCisgICAgZWQyNTUxOV9zZXRfcHViX3Jh
dywKKyAgICBlZDI1NTE5X2dldF9wcml2X3JhdywKKyAgICBlZDI1NTE5X2dldF9wdWJfcmF3LAog
ICAgIE5VTEwgLyogcGtleV9vcGFxdWUgKi8sCiAgICAgZWQyNTUxOV9zaXplLAogICAgIGVkMjU1
MTlfYml0cywKQEAgLTE2NCwyNyArMjE5LDMgQEAgY29uc3QgRVZQX1BLRVlfQVNOMV9NRVRIT0Qg
ZWQyNTUxOV9hc24xX21ldGggPSB7CiAgICAgTlVMTCAvKiBwYXJhbV9jbXAgKi8sCiAgICAgZWQy
NTUxOV9mcmVlLAogfTsKLQotRVZQX1BLRVkgKkVWUF9QS0VZX25ld19lZDI1NTE5X3B1YmxpYyhj
b25zdCB1aW50OF90IHB1YmxpY19rZXlbMzJdKSB7Ci0gIEVWUF9QS0VZICpyZXQgPSBFVlBfUEtF
WV9uZXcoKTsKLSAgaWYgKHJldCA9PSBOVUxMIHx8Ci0gICAgICAhRVZQX1BLRVlfc2V0X3R5cGUo
cmV0LCBFVlBfUEtFWV9FRDI1NTE5KSB8fAotICAgICAgIXNldF9wdWJrZXkocmV0LCBwdWJsaWNf
a2V5KSkgewotICAgIEVWUF9QS0VZX2ZyZWUocmV0KTsKLSAgICByZXR1cm4gTlVMTDsKLSAgfQot
Ci0gIHJldHVybiByZXQ7Ci19Ci0KLUVWUF9QS0VZICpFVlBfUEtFWV9uZXdfZWQyNTUxOV9wcml2
YXRlKGNvbnN0IHVpbnQ4X3QgcHJpdmF0ZV9rZXlbNjRdKSB7Ci0gIEVWUF9QS0VZICpyZXQgPSBF
VlBfUEtFWV9uZXcoKTsKLSAgaWYgKHJldCA9PSBOVUxMIHx8Ci0gICAgICAhRVZQX1BLRVlfc2V0
X3R5cGUocmV0LCBFVlBfUEtFWV9FRDI1NTE5KSB8fAotICAgICAgIXNldF9wcml2a2V5KHJldCwg
cHJpdmF0ZV9rZXkpKSB7Ci0gICAgRVZQX1BLRVlfZnJlZShyZXQpOwotICAgIHJldHVybiBOVUxM
OwotICB9Ci0KLSAgcmV0dXJuIHJldDsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3Bf
cnNhLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9wX3JzYS5jCmluZGV4IGNmYzZiZWExZTI5ZDZiMWQ5ZmYx
Y2Q3MzM3ZDA3MDEwZTUxYWYyMDMuLjg2NWIzNmFmOWI4MzAzMDJmYjEwNjhjNDk2NTEzMzIxM2Mx
NTA3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfcnNhLmMKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9ldnAvcF9yc2EuYwpAQCAtMTMyLDYgKzEzMiw3IEBAIHN0YXRpYyBpbnQgcGtleV9yc2FfY29w
eShFVlBfUEtFWV9DVFggKmRzdCwgRVZQX1BLRVlfQ1RYICpzcmMpIHsKICAgZGN0eC0+cGFkX21v
ZGUgPSBzY3R4LT5wYWRfbW9kZTsKICAgZGN0eC0+bWQgPSBzY3R4LT5tZDsKICAgZGN0eC0+bWdm
MW1kID0gc2N0eC0+bWdmMW1kOworICBkY3R4LT5zYWx0bGVuID0gc2N0eC0+c2FsdGxlbjsKICAg
aWYgKHNjdHgtPm9hZXBfbGFiZWwpIHsKICAgICBPUEVOU1NMX2ZyZWUoZGN0eC0+b2FlcF9sYWJl
bCk7CiAgICAgZGN0eC0+b2FlcF9sYWJlbCA9IEJVRl9tZW1kdXAoc2N0eC0+b2FlcF9sYWJlbCwg
c2N0eC0+b2FlcF9sYWJlbGxlbik7CkBAIC01NTMsNyArNTU0LDggQEAgY29uc3QgRVZQX1BLRVlf
TUVUSE9EIHJzYV9wa2V5X21ldGggPSB7CiAgICAgcGtleV9yc2FfdmVyaWZ5X3JlY292ZXIsCiAg
ICAgcGtleV9yc2FfZW5jcnlwdCwKICAgICBwa2V5X3JzYV9kZWNyeXB0LAotICAgIDAgLyogZGVy
aXZlICovLAorICAgIE5VTEwgLyogZGVyaXZlICovLAorICAgIE5VTEwgLyogcGFyYW1nZW4gKi8s
CiAgICAgcGtleV9yc2FfY3RybCwKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3Bf
cnNhX2FzbjEuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfcnNhX2FzbjEuYwppbmRleCA4NWY2ZmM4Mzcx
OTcyZTJlYjM0Mjc1OGFmYWEyOTFhMjUzNTU4MDIwLi5jMDk3MTAzOGVlMmRmOTIxZTYzZmNhMjZi
YmI4NDM0Y2U5YjBjMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9wX3JzYV9hc24xLmMK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9ldnAvcF9yc2FfYXNuMS5jCkBAIC0xNzgsNiArMTc4LDExIEBAIGNv
bnN0IEVWUF9QS0VZX0FTTjFfTUVUSE9EIHJzYV9hc24xX21ldGggPSB7CiAgIHJzYV9wcml2X2Rl
Y29kZSwKICAgcnNhX3ByaXZfZW5jb2RlLAogCisgIE5VTEwgLyogc2V0X3ByaXZfcmF3ICovLAor
ICBOVUxMIC8qIHNldF9wdWJfcmF3ICovLAorICBOVUxMIC8qIGdldF9wcml2X3JhdyAqLywKKyAg
TlVMTCAvKiBnZXRfcHViX3JhdyAqLywKKwogICByc2Ffb3BhcXVlLAogCiAgIGludF9yc2Ffc2l6
ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfeDI1NTE5LmMgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2
cC9wX3gyNTUxOS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkN2RmMzlhOTgxMzI1MDI5ZGVjYjI5YThjMjgyYmJi
MjE5NmRkNjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9wX3gyNTUxOS5jCkBA
IC0wLDAgKzEsMTEwIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTksIEdvb2dsZSBJbmMuCisgKgor
ICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhp
cyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVy
ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlN
UyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJ
TkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBT
UEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5Z
IERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEg
T1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdF
TkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENP
Tk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICov
CisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorCisjaW5jbHVkZSA8b3BlbnNzbC9jdXJ2ZTI1
NTE5Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL21lbS5o
PgorCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKworCisvLyBYMjU1MTkgaGFzIG5vIHBhcmFtZXRl
cnMgdG8gY29weS4KK3N0YXRpYyBpbnQgcGtleV94MjU1MTlfY29weShFVlBfUEtFWV9DVFggKmRz
dCwgRVZQX1BLRVlfQ1RYICpzcmMpIHsgcmV0dXJuIDE7IH0KKworc3RhdGljIGludCBwa2V5X3gy
NTUxOV9rZXlnZW4oRVZQX1BLRVlfQ1RYICpjdHgsIEVWUF9QS0VZICpwa2V5KSB7CisgIFgyNTUx
OV9LRVkgKmtleSA9IE9QRU5TU0xfbWFsbG9jKHNpemVvZihYMjU1MTlfS0VZKSk7CisgIGlmIChr
ZXkgPT0gTlVMTCkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVJSX1JfTUFMTE9DX0ZB
SUxVUkUpOworICAgIHJldHVybiAwOworICB9CisKKyAgaWYgKCFFVlBfUEtFWV9zZXRfdHlwZShw
a2V5LCBFVlBfUEtFWV9YMjU1MTkpKSB7CisgICAgT1BFTlNTTF9mcmVlKGtleSk7CisgICAgcmV0
dXJuIDA7CisgIH0KKworICBYMjU1MTlfa2V5cGFpcihrZXktPnB1Yiwga2V5LT5wcml2KTsKKyAg
a2V5LT5oYXNfcHJpdmF0ZSA9IDE7CisKKyAgT1BFTlNTTF9mcmVlKHBrZXktPnBrZXkucHRyKTsK
KyAgcGtleS0+cGtleS5wdHIgPSBrZXk7CisgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IHBr
ZXlfeDI1NTE5X2Rlcml2ZShFVlBfUEtFWV9DVFggKmN0eCwgdWludDhfdCAqb3V0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRfbGVuKSB7CisgIGlmIChjdHgtPnBr
ZXkgPT0gTlVMTCB8fCBjdHgtPnBlZXJrZXkgPT0gTlVMTCkgeworICAgIE9QRU5TU0xfUFVUX0VS
Uk9SKEVWUCwgRVZQX1JfS0VZU19OT1RfU0VUKTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIGNv
bnN0IFgyNTUxOV9LRVkgKm91cl9rZXkgPSBjdHgtPnBrZXktPnBrZXkucHRyOworICBjb25zdCBY
MjU1MTlfS0VZICpwZWVyX2tleSA9IGN0eC0+cGVlcmtleS0+cGtleS5wdHI7CisgIGlmIChvdXJf
a2V5ID09IE5VTEwgfHwgcGVlcl9rZXkgPT0gTlVMTCkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9S
KEVWUCwgRVZQX1JfS0VZU19OT1RfU0VUKTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIGlmICgh
b3VyX2tleS0+aGFzX3ByaXZhdGUpIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9S
X05PVF9BX1BSSVZBVEVfS0VZKTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIGlmIChvdXQgIT0g
TlVMTCkgeworICAgIGlmICgqb3V0X2xlbiA8IDMyKSB7CisgICAgICBPUEVOU1NMX1BVVF9FUlJP
UihFVlAsIEVWUF9SX0JVRkZFUl9UT09fU01BTEwpOworICAgICAgcmV0dXJuIDA7CisgICAgfQor
ICAgIGlmICghWDI1NTE5KG91dCwgb3VyX2tleS0+cHJpdiwgcGVlcl9rZXktPnB1YikpIHsKKyAg
ICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfSU5WQUxJRF9QRUVSX0tFWSk7CisgICAg
ICByZXR1cm4gMDsKKyAgICB9CisgIH0KKworICAqb3V0X2xlbiA9IDMyOworICByZXR1cm4gMTsK
K30KKworc3RhdGljIGludCBwa2V5X3gyNTUxOV9jdHJsKEVWUF9QS0VZX0NUWCAqY3R4LCBpbnQg
dHlwZSwgaW50IHAxLCB2b2lkICpwMikgeworICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEVW
UF9QS0VZX0NUUkxfUEVFUl9LRVk6CisgICAgICAvLyB8RVZQX1BLRVlfZGVyaXZlX3NldF9wZWVy
fCByZXF1aXJlcyB0aGUga2V5IGltcGxlbWVudCB0aGlzIGNvbW1hbmQsCisgICAgICAvLyBldmVu
IGlmIGl0IGlzIGEgbm8tb3AuCisgICAgICByZXR1cm4gMTsKKworICAgIGRlZmF1bHQ6CisgICAg
ICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX0NPTU1BTkRfTk9UX1NVUFBPUlRFRCk7Cisg
ICAgICByZXR1cm4gMDsKKyAgfQorfQorCitjb25zdCBFVlBfUEtFWV9NRVRIT0QgeDI1NTE5X3Br
ZXlfbWV0aCA9IHsKKyAgICBFVlBfUEtFWV9YMjU1MTksCisgICAgTlVMTCAvKiBpbml0ICovLAor
ICAgIHBrZXlfeDI1NTE5X2NvcHksCisgICAgTlVMTCAvKiBjbGVhbnVwICovLAorICAgIHBrZXlf
eDI1NTE5X2tleWdlbiwKKyAgICBOVUxMIC8qIHNpZ24gKi8sCisgICAgTlVMTCAvKiBzaWduX21l
c3NhZ2UgKi8sCisgICAgTlVMTCAvKiB2ZXJpZnkgKi8sCisgICAgTlVMTCAvKiB2ZXJpZnlfbWVz
c2FnZSAqLywKKyAgICBOVUxMIC8qIHZlcmlmeV9yZWNvdmVyICovLAorICAgIE5VTEwgLyogZW5j
cnlwdCAqLywKKyAgICBOVUxMIC8qIGRlY3J5cHQgKi8sCisgICAgcGtleV94MjU1MTlfZGVyaXZl
LAorICAgIE5VTEwgLyogcGFyYW1nZW4gKi8sCisgICAgcGtleV94MjU1MTlfY3RybCwKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2cC9wX3gyNTUxOV9hc24xLmMgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V2
cC9wX3gyNTUxOV9hc24xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTAyNTYyMzVlODI4MWQwMWEwMmRiOWNkNjIz
ZGI5ZjUyZWRmY2Y3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXZwL3BfeDI1NTE5
X2FzbjEuYwpAQCAtMCwwICsxLDI0OSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE5LCBHb29nbGUg
SW5jLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0
cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGll
cy4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhP
UiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdB
UkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9S
IEFOWQorICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0Yg
VVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFD
VCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9S
IElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNP
RlRXQVJFLiAqLworCisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKworI2luY2x1ZGUgPG9wZW5z
c2wvYnVmLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9ieXRlc3RyaW5nLmg+CisjaW5jbHVkZSA8b3Bl
bnNzbC9jdXJ2ZTI1NTE5Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KKyNpbmNsdWRlIDxv
cGVuc3NsL21lbS5oPgorCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKyNpbmNsdWRlICIuLi9pbnRl
cm5hbC5oIgorCisKK3N0YXRpYyB2b2lkIHgyNTUxOV9mcmVlKEVWUF9QS0VZICpwa2V5KSB7Cisg
IE9QRU5TU0xfZnJlZShwa2V5LT5wa2V5LnB0cik7CisgIHBrZXktPnBrZXkucHRyID0gTlVMTDsK
K30KKworc3RhdGljIGludCB4MjU1MTlfc2V0X3ByaXZfcmF3KEVWUF9QS0VZICpwa2V5LCBjb25z
dCB1aW50OF90ICppbiwgc2l6ZV90IGxlbikgeworICBpZiAobGVuICE9IDMyKSB7CisgICAgT1BF
TlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9ERUNPREVfRVJST1IpOworICAgIHJldHVybiAwOwor
ICB9CisKKyAgWDI1NTE5X0tFWSAqa2V5ID0gT1BFTlNTTF9tYWxsb2Moc2l6ZW9mKFgyNTUxOV9L
RVkpKTsKKyAgaWYgKGtleSA9PSBOVUxMKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBF
UlJfUl9NQUxMT0NfRkFJTFVSRSk7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBPUEVOU1NMX21l
bWNweShrZXktPnByaXYsIGluLCAzMik7CisgIFgyNTUxOV9wdWJsaWNfZnJvbV9wcml2YXRlKGtl
eS0+cHViLCBrZXktPnByaXYpOworICBrZXktPmhhc19wcml2YXRlID0gMTsKKworICB4MjU1MTlf
ZnJlZShwa2V5KTsKKyAgcGtleS0+cGtleS5wdHIgPSBrZXk7CisgIHJldHVybiAxOworfQorCitz
dGF0aWMgaW50IHgyNTUxOV9zZXRfcHViX3JhdyhFVlBfUEtFWSAqcGtleSwgY29uc3QgdWludDhf
dCAqaW4sIHNpemVfdCBsZW4pIHsKKyAgaWYgKGxlbiAhPSAzMikgeworICAgIE9QRU5TU0xfUFVU
X0VSUk9SKEVWUCwgRVZQX1JfREVDT0RFX0VSUk9SKTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisg
IFgyNTUxOV9LRVkgKmtleSA9IE9QRU5TU0xfbWFsbG9jKHNpemVvZihYMjU1MTlfS0VZKSk7Cisg
IGlmIChrZXkgPT0gTlVMTCkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVJSX1JfTUFM
TE9DX0ZBSUxVUkUpOworICAgIHJldHVybiAwOworICB9CisKKyAgT1BFTlNTTF9tZW1jcHkoa2V5
LT5wdWIsIGluLCAzMik7CisgIGtleS0+aGFzX3ByaXZhdGUgPSAwOworCisgIHgyNTUxOV9mcmVl
KHBrZXkpOworICBwa2V5LT5wa2V5LnB0ciA9IGtleTsKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRp
YyBpbnQgeDI1NTE5X2dldF9wcml2X3Jhdyhjb25zdCBFVlBfUEtFWSAqcGtleSwgdWludDhfdCAq
b3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dF9sZW4pIHsK
KyAgY29uc3QgWDI1NTE5X0tFWSAqa2V5ID0gcGtleS0+cGtleS5wdHI7CisgIGlmICgha2V5LT5o
YXNfcHJpdmF0ZSkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfTk9UX0FfUFJJ
VkFURV9LRVkpOworICAgIHJldHVybiAwOworICB9CisKKyAgaWYgKG91dCA9PSBOVUxMKSB7Cisg
ICAgKm91dF9sZW4gPSAzMjsKKyAgICByZXR1cm4gMTsKKyAgfQorCisgIGlmICgqb3V0X2xlbiA8
IDMyKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9CVUZGRVJfVE9PX1NNQUxM
KTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIE9QRU5TU0xfbWVtY3B5KG91dCwga2V5LT5wcml2
LCAzMik7CisgICpvdXRfbGVuID0gMzI7CisgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IHgy
NTUxOV9nZXRfcHViX3Jhdyhjb25zdCBFVlBfUEtFWSAqcGtleSwgdWludDhfdCAqb3V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0X2xlbikgeworICBjb25zdCBY
MjU1MTlfS0VZICprZXkgPSBwa2V5LT5wa2V5LnB0cjsKKyAgaWYgKG91dCA9PSBOVUxMKSB7Cisg
ICAgKm91dF9sZW4gPSAzMjsKKyAgICByZXR1cm4gMTsKKyAgfQorCisgIGlmICgqb3V0X2xlbiA8
IDMyKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9CVUZGRVJfVE9PX1NNQUxM
KTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIE9QRU5TU0xfbWVtY3B5KG91dCwga2V5LT5wdWIs
IDMyKTsKKyAgKm91dF9sZW4gPSAzMjsKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgeDI1
NTE5X3B1Yl9kZWNvZGUoRVZQX1BLRVkgKm91dCwgQ0JTICpwYXJhbXMsIENCUyAqa2V5KSB7Cisg
IC8vIFNlZSBSRkMgODQxMCwgc2VjdGlvbiA0LgorCisgIC8vIFRoZSBwYXJhbWV0ZXJzIG11c3Qg
YmUgb21pdHRlZC4gUHVibGljIGtleXMgaGF2ZSBsZW5ndGggMzIuCisgIGlmIChDQlNfbGVuKHBh
cmFtcykgIT0gMCkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfREVDT0RFX0VS
Uk9SKTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIHJldHVybiB4MjU1MTlfc2V0X3B1Yl9yYXco
b3V0LCBDQlNfZGF0YShrZXkpLCBDQlNfbGVuKGtleSkpOworfQorCitzdGF0aWMgaW50IHgyNTUx
OV9wdWJfZW5jb2RlKENCQiAqb3V0LCBjb25zdCBFVlBfUEtFWSAqcGtleSkgeworICBjb25zdCBY
MjU1MTlfS0VZICprZXkgPSBwa2V5LT5wa2V5LnB0cjsKKworICAvLyBTZWUgUkZDIDg0MTAsIHNl
Y3Rpb24gNC4KKyAgQ0JCIHNwa2ksIGFsZ29yaXRobSwgb2lkLCBrZXlfYml0c3RyaW5nOworICBp
ZiAoIUNCQl9hZGRfYXNuMShvdXQsICZzcGtpLCBDQlNfQVNOMV9TRVFVRU5DRSkgfHwKKyAgICAg
ICFDQkJfYWRkX2FzbjEoJnNwa2ksICZhbGdvcml0aG0sIENCU19BU04xX1NFUVVFTkNFKSB8fAor
ICAgICAgIUNCQl9hZGRfYXNuMSgmYWxnb3JpdGhtLCAmb2lkLCBDQlNfQVNOMV9PQkpFQ1QpIHx8
CisgICAgICAhQ0JCX2FkZF9ieXRlcygmb2lkLCB4MjU1MTlfYXNuMV9tZXRoLm9pZCwgeDI1NTE5
X2FzbjFfbWV0aC5vaWRfbGVuKSB8fAorICAgICAgIUNCQl9hZGRfYXNuMSgmc3BraSwgJmtleV9i
aXRzdHJpbmcsIENCU19BU04xX0JJVFNUUklORykgfHwKKyAgICAgICFDQkJfYWRkX3U4KCZrZXlf
Yml0c3RyaW5nLCAwIC8qIHBhZGRpbmcgKi8pIHx8CisgICAgICAhQ0JCX2FkZF9ieXRlcygma2V5
X2JpdHN0cmluZywga2V5LT5wdWIsIDMyKSB8fAorICAgICAgIUNCQl9mbHVzaChvdXQpKSB7Cisg
ICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9FTkNPREVfRVJST1IpOworICAgIHJldHVy
biAwOworICB9CisKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgeDI1NTE5X3B1Yl9jbXAo
Y29uc3QgRVZQX1BLRVkgKmEsIGNvbnN0IEVWUF9QS0VZICpiKSB7CisgIGNvbnN0IFgyNTUxOV9L
RVkgKmFfa2V5ID0gYS0+cGtleS5wdHI7CisgIGNvbnN0IFgyNTUxOV9LRVkgKmJfa2V5ID0gYi0+
cGtleS5wdHI7CisgIHJldHVybiBPUEVOU1NMX21lbWNtcChhX2tleS0+cHViLCBiX2tleS0+cHVi
LCAzMikgPT0gMDsKK30KKworc3RhdGljIGludCB4MjU1MTlfcHJpdl9kZWNvZGUoRVZQX1BLRVkg
Km91dCwgQ0JTICpwYXJhbXMsIENCUyAqa2V5KSB7CisgIC8vIFNlZSBSRkMgODQxMCwgc2VjdGlv
biA3LgorCisgIC8vIFBhcmFtZXRlcnMgbXVzdCBiZSBlbXB0eS4gVGhlIGtleSBpcyBhIDMyLWJ5
dGUgdmFsdWUgd3JhcHBlZCBpbiBhbiBleHRyYQorICAvLyBPQ1RFVCBTVFJJTkcgbGF5ZXIuCisg
IENCUyBpbm5lcjsKKyAgaWYgKENCU19sZW4ocGFyYW1zKSAhPSAwIHx8CisgICAgICAhQ0JTX2dl
dF9hc24xKGtleSwgJmlubmVyLCBDQlNfQVNOMV9PQ1RFVFNUUklORykgfHwKKyAgICAgIENCU19s
ZW4oa2V5KSAhPSAwKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9ERUNPREVf
RVJST1IpOworICAgIHJldHVybiAwOworICB9CisKKyAgcmV0dXJuIHgyNTUxOV9zZXRfcHJpdl9y
YXcob3V0LCBDQlNfZGF0YSgmaW5uZXIpLCBDQlNfbGVuKCZpbm5lcikpOworfQorCitzdGF0aWMg
aW50IHgyNTUxOV9wcml2X2VuY29kZShDQkIgKm91dCwgY29uc3QgRVZQX1BLRVkgKnBrZXkpIHsK
KyAgWDI1NTE5X0tFWSAqa2V5ID0gcGtleS0+cGtleS5wdHI7CisgIGlmICgha2V5LT5oYXNfcHJp
dmF0ZSkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVWUCwgRVZQX1JfTk9UX0FfUFJJVkFURV9L
RVkpOworICAgIHJldHVybiAwOworICB9CisKKyAgLy8gU2VlIFJGQyA4NDEwLCBzZWN0aW9uIDcu
CisgIENCQiBwa2NzOCwgYWxnb3JpdGhtLCBvaWQsIHByaXZhdGVfa2V5LCBpbm5lcjsKKyAgaWYg
KCFDQkJfYWRkX2FzbjEob3V0LCAmcGtjczgsIENCU19BU04xX1NFUVVFTkNFKSB8fAorICAgICAg
IUNCQl9hZGRfYXNuMV91aW50NjQoJnBrY3M4LCAwIC8qIHZlcnNpb24gKi8pIHx8CisgICAgICAh
Q0JCX2FkZF9hc24xKCZwa2NzOCwgJmFsZ29yaXRobSwgQ0JTX0FTTjFfU0VRVUVOQ0UpIHx8Cisg
ICAgICAhQ0JCX2FkZF9hc24xKCZhbGdvcml0aG0sICZvaWQsIENCU19BU04xX09CSkVDVCkgfHwK
KyAgICAgICFDQkJfYWRkX2J5dGVzKCZvaWQsIHgyNTUxOV9hc24xX21ldGgub2lkLCB4MjU1MTlf
YXNuMV9tZXRoLm9pZF9sZW4pIHx8CisgICAgICAhQ0JCX2FkZF9hc24xKCZwa2NzOCwgJnByaXZh
dGVfa2V5LCBDQlNfQVNOMV9PQ1RFVFNUUklORykgfHwKKyAgICAgICFDQkJfYWRkX2FzbjEoJnBy
aXZhdGVfa2V5LCAmaW5uZXIsIENCU19BU04xX09DVEVUU1RSSU5HKSB8fAorICAgICAgLy8gVGhl
IFBLQ1MjOCBlbmNvZGluZyBzdG9yZXMgb25seSB0aGUgMzItYnl0ZSBzZWVkIHdoaWNoIGlzIHRo
ZSBmaXJzdCAzMgorICAgICAgLy8gYnl0ZXMgb2YgdGhlIHByaXZhdGUga2V5LgorICAgICAgIUNC
Ql9hZGRfYnl0ZXMoJmlubmVyLCBrZXktPnByaXYsIDMyKSB8fAorICAgICAgIUNCQl9mbHVzaChv
dXQpKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9FTkNPREVfRVJST1IpOwor
ICAgIHJldHVybiAwOworICB9CisKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgeDI1NTE5
X3NpemUoY29uc3QgRVZQX1BLRVkgKnBrZXkpIHsgcmV0dXJuIDMyOyB9CisKK3N0YXRpYyBpbnQg
eDI1NTE5X2JpdHMoY29uc3QgRVZQX1BLRVkgKnBrZXkpIHsgcmV0dXJuIDI1MzsgfQorCitjb25z
dCBFVlBfUEtFWV9BU04xX01FVEhPRCB4MjU1MTlfYXNuMV9tZXRoID0geworICAgIEVWUF9QS0VZ
X1gyNTUxOSwKKyAgICB7MHgyYiwgMHg2NSwgMHg2ZX0sCisgICAgMywKKyAgICB4MjU1MTlfcHVi
X2RlY29kZSwKKyAgICB4MjU1MTlfcHViX2VuY29kZSwKKyAgICB4MjU1MTlfcHViX2NtcCwKKyAg
ICB4MjU1MTlfcHJpdl9kZWNvZGUsCisgICAgeDI1NTE5X3ByaXZfZW5jb2RlLAorICAgIHgyNTUx
OV9zZXRfcHJpdl9yYXcsCisgICAgeDI1NTE5X3NldF9wdWJfcmF3LAorICAgIHgyNTUxOV9nZXRf
cHJpdl9yYXcsCisgICAgeDI1NTE5X2dldF9wdWJfcmF3LAorICAgIE5VTEwgLyogcGtleV9vcGFx
dWUgKi8sCisgICAgeDI1NTE5X3NpemUsCisgICAgeDI1NTE5X2JpdHMsCisgICAgTlVMTCAvKiBw
YXJhbV9taXNzaW5nICovLAorICAgIE5VTEwgLyogcGFyYW1fY29weSAqLywKKyAgICBOVUxMIC8q
IHBhcmFtX2NtcCAqLywKKyAgICB4MjU1MTlfZnJlZSwKK307CisKK2ludCBFVlBfUEtFWV9zZXQx
X3Rsc19lbmNvZGVkcG9pbnQoRVZQX1BLRVkgKnBrZXksIGNvbnN0IHVpbnQ4X3QgKmluLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKSB7CisgIC8vIFRPRE8o
ZGF2aWRiZW4pOiBJbiBPcGVuU1NMLCB0aGlzIGZ1bmN0aW9uIGFsc28gd29ya3MgZm9yIHxFVlBf
UEtFWV9FQ3wKKyAgLy8ga2V5cy4gQWRkIHN1cHBvcnQgaWYgaXQgZXZlciBjb21lcyB1cC4KKyAg
aWYgKHBrZXktPnR5cGUgIT0gRVZQX1BLRVlfWDI1NTE5KSB7CisgICAgT1BFTlNTTF9QVVRfRVJS
T1IoRVZQLCBFVlBfUl9VTlNVUFBPUlRFRF9QVUJMSUNfS0VZX1RZUEUpOworICAgIHJldHVybiAw
OworICB9CisKKyAgcmV0dXJuIHgyNTUxOV9zZXRfcHViX3Jhdyhwa2V5LCBpbiwgbGVuKTsKK30K
Kworc2l6ZV90IEVWUF9QS0VZX2dldDFfdGxzX2VuY29kZWRwb2ludChjb25zdCBFVlBfUEtFWSAq
cGtleSwgdWludDhfdCAqKm91dF9wdHIpIHsKKyAgLy8gVE9ETyhkYXZpZGJlbik6IEluIE9wZW5T
U0wsIHRoaXMgZnVuY3Rpb24gYWxzbyB3b3JrcyBmb3IgfEVWUF9QS0VZX0VDfAorICAvLyBrZXlz
LiBBZGQgc3VwcG9ydCBpZiBpdCBldmVyIGNvbWVzIHVwLgorICBpZiAocGtleS0+dHlwZSAhPSBF
VlBfUEtFWV9YMjU1MTkpIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihFVlAsIEVWUF9SX1VOU1VQ
UE9SVEVEX1BVQkxJQ19LRVlfVFlQRSk7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBjb25zdCBY
MjU1MTlfS0VZICprZXkgPSBwa2V5LT5wa2V5LnB0cjsKKyAgaWYgKGtleSA9PSBOVUxMKSB7Cisg
ICAgT1BFTlNTTF9QVVRfRVJST1IoRVZQLCBFVlBfUl9OT19LRVlfU0VUKTsKKyAgICByZXR1cm4g
MDsKKyAgfQorCisgICpvdXRfcHRyID0gQlVGX21lbWR1cChrZXktPnB1YiwgMzIpOworICByZXR1
cm4gKm91dF9wdHIgPT0gTlVMTCA/IDAgOiAzMjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
Zmlwc21vZHVsZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA0NjNmZWJiZjgyZmUyZGZjNTZjZjQzNzhmZGUzZTMyMmViNWIxYjMyLi5l
OTc4ODIwMDQ5YzJiNmZkZGI3OTQ0ZjU5M2E4MGE3MTMxMDRkNjgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL2ZpcHNtb2R1bGUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL0NNYWtlTGlzdHMudHh0CkBAIC03LDcgKzcsNyBAQCBpZigke0FSQ0h9IFNUUkVRVUFMICJ4
ODZfNjQiKQogICAgIGFlc25pLWdjbS14ODZfNjQuJHtBU01fRVhUfQogICAgIGFlc25pLXg4Nl82
NC4ke0FTTV9FWFR9CiAgICAgYWVzLXg4Nl82NC4ke0FTTV9FWFR9Ci0gICAgYnNhZXMteDg2XzY0
LiR7QVNNX0VYVH0KKyAgICBnaGFzaC1zc3NlMy14ODZfNjQuJHtBU01fRVhUfQogICAgIGdoYXNo
LXg4Nl82NC4ke0FTTV9FWFR9CiAgICAgbWQ1LXg4Nl82NC4ke0FTTV9FWFR9CiAgICAgcDI1Ni14
ODZfNjQtYXNtLiR7QVNNX0VYVH0KQEAgLTMxLDYgKzMxLDcgQEAgaWYoJHtBUkNIfSBTVFJFUVVB
TCAieDg2IikKICAgICBhZXNuaS14ODYuJHtBU01fRVhUfQogICAgIGJuLTU4Ni4ke0FTTV9FWFR9
CiAgICAgY28tNTg2LiR7QVNNX0VYVH0KKyAgICBnaGFzaC1zc3NlMy14ODYuJHtBU01fRVhUfQog
ICAgIGdoYXNoLXg4Ni4ke0FTTV9FWFR9CiAgICAgbWQ1LTU4Ni4ke0FTTV9FWFR9CiAgICAgc2hh
MS01ODYuJHtBU01fRVhUfQpAQCAtNjMsMTAgKzY0LDEyIEBAIGlmKCR7QVJDSH0gU1RSRVFVQUwg
ImFhcmNoNjQiKQogCiAgICAgYWVzdjgtYXJteC4ke0FTTV9FWFR9CiAgICAgYXJtdjgtbW9udC4k
e0FTTV9FWFR9CisgICAgZ2hhc2gtbmVvbi1hcm12OC4ke0FTTV9FWFR9CiAgICAgZ2hhc2h2OC1h
cm14LiR7QVNNX0VYVH0KICAgICBzaGExLWFybXY4LiR7QVNNX0VYVH0KICAgICBzaGEyNTYtYXJt
djguJHtBU01fRVhUfQogICAgIHNoYTUxMi1hcm12OC4ke0FTTV9FWFR9CisgICAgdnBhZXMtYXJt
djguJHtBU01fRVhUfQogICApCiBlbmRpZigpCiAKQEAgLTkxLDExICs5NCwxMyBAQCBwZXJsYXNt
KGFybXY0LW1vbnQuJHtBU01fRVhUfSBibi9hc20vYXJtdjQtbW9udC5wbCkKIHBlcmxhc20oYXJt
djgtbW9udC4ke0FTTV9FWFR9IGJuL2FzbS9hcm12OC1tb250LnBsKQogcGVybGFzbShibi01ODYu
JHtBU01fRVhUfSBibi9hc20vYm4tNTg2LnBsKQogcGVybGFzbShic2Flcy1hcm12Ny4ke0FTTV9F
WFR9IGFlcy9hc20vYnNhZXMtYXJtdjcucGwpCi1wZXJsYXNtKGJzYWVzLXg4Nl82NC4ke0FTTV9F
WFR9IGFlcy9hc20vYnNhZXMteDg2XzY0LnBsKQogcGVybGFzbShjby01ODYuJHtBU01fRVhUfSBi
bi9hc20vY28tNTg2LnBsKQogcGVybGFzbShnaGFzaC1hcm12NC4ke0FTTV9FWFR9IG1vZGVzL2Fz
bS9naGFzaC1hcm12NC5wbCkKIHBlcmxhc20oZ2hhc2hwOC1wcGMuJHtBU01fRVhUfSBtb2Rlcy9h
c20vZ2hhc2hwOC1wcGMucGwpCiBwZXJsYXNtKGdoYXNodjgtYXJteC4ke0FTTV9FWFR9IG1vZGVz
L2FzbS9naGFzaHY4LWFybXgucGwpCitwZXJsYXNtKGdoYXNoLW5lb24tYXJtdjguJHtBU01fRVhU
fSBtb2Rlcy9hc20vZ2hhc2gtbmVvbi1hcm12OC5wbCkKK3Blcmxhc20oZ2hhc2gtc3NzZTMteDg2
XzY0LiR7QVNNX0VYVH0gbW9kZXMvYXNtL2doYXNoLXNzc2UzLXg4Nl82NC5wbCkKK3Blcmxhc20o
Z2hhc2gtc3NzZTMteDg2LiR7QVNNX0VYVH0gbW9kZXMvYXNtL2doYXNoLXNzc2UzLXg4Ni5wbCkK
IHBlcmxhc20oZ2hhc2gteDg2XzY0LiR7QVNNX0VYVH0gbW9kZXMvYXNtL2doYXNoLXg4Nl82NC5w
bCkKIHBlcmxhc20oZ2hhc2gteDg2LiR7QVNNX0VYVH0gbW9kZXMvYXNtL2doYXNoLXg4Ni5wbCkK
IHBlcmxhc20obWQ1LTU4Ni4ke0FTTV9FWFR9IG1kNS9hc20vbWQ1LTU4Ni5wbCkKQEAgLTExNiw2
ICsxMjEsNyBAQCBwZXJsYXNtKHNoYTUxMi01ODYuJHtBU01fRVhUfSBzaGEvYXNtL3NoYTUxMi01
ODYucGwpCiBwZXJsYXNtKHNoYTUxMi1hcm12NC4ke0FTTV9FWFR9IHNoYS9hc20vc2hhNTEyLWFy
bXY0LnBsKQogcGVybGFzbShzaGE1MTItYXJtdjguJHtBU01fRVhUfSBzaGEvYXNtL3NoYTUxMi1h
cm12OC5wbCkKIHBlcmxhc20oc2hhNTEyLXg4Nl82NC4ke0FTTV9FWFR9IHNoYS9hc20vc2hhNTEy
LXg4Nl82NC5wbCkKK3Blcmxhc20odnBhZXMtYXJtdjguJHtBU01fRVhUfSBhZXMvYXNtL3ZwYWVz
LWFybXY4LnBsKQogcGVybGFzbSh2cGFlcy14ODZfNjQuJHtBU01fRVhUfSBhZXMvYXNtL3ZwYWVz
LXg4Nl82NC5wbCkKIHBlcmxhc20odnBhZXMteDg2LiR7QVNNX0VYVH0gYWVzL2FzbS92cGFlcy14
ODYucGwpCiBwZXJsYXNtKHg4Nl82NC1tb250NS4ke0FTTV9FWFR9IGJuL2FzbS94ODZfNjQtbW9u
dDUucGwpCkBAIC0xMjMsNiArMTI5LDEwIEBAIHBlcmxhc20oeDg2XzY0LW1vbnQuJHtBU01fRVhU
fSBibi9hc20veDg2XzY0LW1vbnQucGwpCiBwZXJsYXNtKHg4Ni1tb250LiR7QVNNX0VYVH0gYm4v
YXNtL3g4Ni1tb250LnBsKQogCiBpZihGSVBTX0RFTE9DQVRFKQorICBpZihGSVBTX1NIQVJFRCkK
KyAgICBlcnJvcigiQ2FuJ3Qgc2V0IGJvdGggZGVsb2NhdGUgYW5kIHNoYXJlZCBtb2RlIGZvciBG
SVBTIGJ1aWxkIikKKyAgZW5kaWYoKQorCiAgIGlmKE9QRU5TU0xfTk9fQVNNKQogICAgICMgSWYg
T1BFTlNTTF9OT19BU00gd2FzIGRlZmluZWQgdGhlbiBBU00gd2lsbCBub3QgaGF2ZSBiZWVuIGVu
YWJsZWQsIGJ1dCBpbgogICAgICMgRklQUyBtb2RlIHdlIGhhdmUgdG8gaGF2ZSBpdCBiZWNhdXNl
IHRoZSBtb2R1bGUgYnVpbGQgcmVxdWlyZXMgZ29pbmcgdmlhCkBAIC0xODMsMTIgKzE5Myw0OSBA
QCBpZihGSVBTX0RFTE9DQVRFKQogCiAgICAgT0JKRUNUCiAKKyAgICBmaXBzX3NoYXJlZF9zdXBw
b3J0LmMKICAgICBpc19maXBzLmMKICAgKQogCiAgIGFkZF9kZXBlbmRlbmNpZXMoZmlwc21vZHVs
ZSBnbG9iYWxfdGFyZ2V0KQogCiAgIHNldF90YXJnZXRfcHJvcGVydGllcyhmaXBzbW9kdWxlIFBS
T1BFUlRJRVMgTElOS0VSX0xBTkdVQUdFIEMpCitlbHNlaWYoRklQU19TSEFSRUQpCisgIGlmKE5P
VCBCVUlMRF9TSEFSRURfTElCUykKKyAgICBlcnJvcigiRklQU19TSEFSRUQgc2V0IGJ1dCBub3Qg
QlVJTERfU0hBUkVEX0xJQlMiKQorICBlbmRpZigpCisKKyAgYWRkX2xpYnJhcnkoCisgICAgZmlw
c21vZHVsZQorCisgICAgT0JKRUNUCisKKyAgICBmaXBzX3NoYXJlZF9zdXBwb3J0LmMKKyAgICBp
c19maXBzLmMKKyAgKQorCisgIGFkZF9kZXBlbmRlbmNpZXMoZmlwc21vZHVsZSBnbG9iYWxfdGFy
Z2V0KQorCisgIGFkZF9saWJyYXJ5KAorICAgIGJjbV9saWJyYXJ5CisKKyAgICBTVEFUSUMKKwor
ICAgIGJjbS5jCisKKyAgICAke0JDTV9BU01fU09VUkNFU30KKyAgKQorCisgIGFkZF9kZXBlbmRl
bmNpZXMoYmNtX2xpYnJhcnkgZ2xvYmFsX3RhcmdldCkKKworICBhZGRfY3VzdG9tX2NvbW1hbmQo
CisgICAgT1VUUFVUIGJjbS5vCisgICAgQ09NTUFORCBsZCAtciAtVCAke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vZmlwc19zaGFyZWQubGRzIC1vIGJjbS5vIC0td2hvbGUtYXJjaGl2ZSAkPFRB
UkdFVF9GSUxFOmJjbV9saWJyYXJ5PgorICAgIERFUEVORFMgYmNtX2xpYnJhcnkgZmlwc19zaGFy
ZWQubGRzCisgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9
CisgICkKKworICBhZGRfY3VzdG9tX3RhcmdldChiY21fb190YXJnZXQgREVQRU5EUyBiY20ubykK
IGVsc2UoKQogICBhZGRfbGlicmFyeSgKICAgICBmaXBzbW9kdWxlCkBAIC0xOTYsNiArMjQzLDcg
QEAgZWxzZSgpCiAgICAgT0JKRUNUCiAKICAgICBiY20uYworICAgIGZpcHNfc2hhcmVkX3N1cHBv
cnQuYwogICAgIGlzX2ZpcHMuYwogCiAgICAgJHtCQ01fQVNNX1NPVVJDRVN9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvRklQUy5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9G
SVBTLm1kCmluZGV4IGE2MGUyYmZlNTNkYjZjY2UxMjJjMDA2NGMxMzQ1OGE4MmYxY2MyNzIuLjY5
NzE5YjY2MDgyMjU0MjRhODhkZjg3OTdiNmE3Y2FjZWFhN2FjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9GSVBTLm1kCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9GSVBT
Lm1kCkBAIC0xMyw5ICsxMyw5IEBAIEJvcmluZ0NyeXB0byBoYXMgdW5kZXJnb25lIHRoZSBmb2xs
b3dpbmcgdmFsaWRhdGlvbnM6CiAKICMjIFJ1bm5pbmcgQ0FWUCB0ZXN0cwogCi1DQVZQIHJlc3Vs
dHMgYXJlIGNhbGN1bGF0ZWQgYnkgYGZpcHN0b29scy9jYXZwYCwgYnV0IHRoYXQgYmluYXJ5IGlz
IGFsbW9zdCBhbHdheXMgcnVuIGJ5IGBmaXBzdG9vbHMvcnVuX2NhdnAuZ29gLiBUaGUgbGF0dGVy
IGtub3dzIHRoZSBzZXQgb2YgdGVzdHMgdG8gYmUgcHJvY2Vzc2VkIGFuZCB0aGUgZmxhZ3MgbmVl
ZGVkIHRvIGNvbmZpZ3VyZSBgY2F2cGAgZm9yIGVhY2ggb25lLiBJdCBtdXN0IGJlIHJ1biBmcm9t
IHRoZSB0b3Agb2YgYSBDQVZQIGRpcmVjdG9yeSBhbmQgbmVlZHMgdGhlIGZvbGxvd2luZyBvcHRp
b25zOgorQ0FWUCByZXN1bHRzIGFyZSBjYWxjdWxhdGVkIGJ5IGB1dGlsL2ZpcHN0b29scy9jYXZw
YCwgYnV0IHRoYXQgYmluYXJ5IGlzIGFsbW9zdCBhbHdheXMgcnVuIGJ5IGB1dGlsL2ZpcHN0b29s
cy9ydW5fY2F2cC5nb2AuIFRoZSBsYXR0ZXIga25vd3MgdGhlIHNldCBvZiB0ZXN0cyB0byBiZSBw
cm9jZXNzZWQgYW5kIHRoZSBmbGFncyBuZWVkZWQgdG8gY29uZmlndXJlIGBjYXZwYCBmb3IgZWFj
aCBvbmUuIEl0IG11c3QgYmUgcnVuIGZyb20gdGhlIHRvcCBvZiBhIENBVlAgZGlyZWN0b3J5IGFu
ZCBuZWVkcyB0aGUgZm9sbG93aW5nIG9wdGlvbnM6CiAKLTEuIGAtb3JhY2xlLWJpbmA6IHBvaW50
cyB0byB0aGUgbG9jYXRpb24gb2YgYGZpcHN0b29scy9jYXZwYAorMS4gYC1vcmFjbGUtYmluYDog
cG9pbnRzIHRvIHRoZSBsb2NhdGlvbiBvZiBgdXRpbC9maXBzdG9vbHMvY2F2cGAKIDIuIGAtbm8t
ZmF4YDogdGhpcyBpcyBuZWVkZWQgdG8gc3VwcHJlc3MgY2hlY2tpbmcgb2YgdGhlIEZBWCBmaWxl
cywgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgaW4gc2FtcGxlIHNldHMuCiAKICMjIEJyZWFraW5n
IHBvd2VyLW9uIGFuZCBjb250aW51b3VzIHRlc3RzCkBAIC02Miw5ICs2MiwyNSBAQCBBZGRpdGlv
bmFsbHksIGJlY2F1c2Ugb2Ygc2hhcmVkIGxpYnJhcmllcyBhbmQgQVNMUiwgc29tZSByZWxvY2F0
aW9ucyBjYW4gb25seSBiZQogCiBCb3JpbmdDcnlwdG8gaXMgbGlua2VkIChvZnRlbiBzdGF0aWNh
bGx5KSBpbnRvIGEgbGFyZ2UgbnVtYmVyIG9mIGJpbmFyaWVzLiBJdCB3b3VsZCBiZSBhIHNpZ25p
ZmljYW50IGNvc3QgaWYgZWFjaCBvZiB0aGVzZSBiaW5hcmllcyBoYWQgdG8gYmUgcG9zdC1wcm9j
ZXNzZWQgaW4gb3JkZXIgdG8gY2FsY3VsYXRlIHRoZSBrbm93bi1nb29kIEhNQUMgdmFsdWUuIFdl
IHdvdWxkIG11Y2ggcHJlZmVyIGlmIHRoZSB2YWx1ZSBjb3VsZCBiZSBjYWxjdWxhdGVkLCBvbmNl
LCB3aGVuIEJvcmluZ0NyeXB0byBpdHNlbGYgaXMgY29tcGlsZWQuCiAKLUluIG9yZGVyIGZvciB0
aGUgdmFsdWUgdG8gYmUgY2FsY3VsYXRlZCBiZWZvcmUgdGhlIGZpbmFsIGxpbmssIHRoZXJlIGNh
biBiZSBubyByZWxvY2F0aW9ucyBpbiB0aGUgaGFzaGVkIGNvZGUgYW5kIGRhdGEuIFRoaXMgZG9j
dW1lbnQgZGVzY3JpYmVzIGhvdyB3ZSBidWlsZCBDIGFuZCBhc3NlbWJseSBjb2RlIGluIG9yZGVy
IHRvIHByb2R1Y2UgYW4gb2JqZWN0IGZpbGUgY29udGFpbmluZyBhbGwgdGhlIGNvZGUgYW5kIGRh
dGEgZm9yIHRoZSBGSVBTIG1vZHVsZSB3aXRob3V0IHRoYXQgY29kZSBoYXZpbmcgYW55IHJlbG9j
YXRpb25zLgorSW4gb3JkZXIgZm9yIHRoZSB2YWx1ZSB0byBiZSBjYWxjdWxhdGVkIGJlZm9yZSB0
aGUgZmluYWwgbGluaywgdGhlcmUgY2FuIGJlIG5vIHJlbG9jYXRpb25zIGluIHRoZSBoYXNoZWQg
Y29kZSBhbmQgZGF0YS4gVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgaG93IHdlIGJ1aWxkIEMgYW5k
IGFzc2VtYmx5IGNvZGUgaW4gb3JkZXIgdG8gcHJvZHVjZSBhIGJpbmFyeSBmaWxlIGNvbnRhaW5p
bmcgYWxsIHRoZSBjb2RlIGFuZCBkYXRhIGZvciB0aGUgRklQUyBtb2R1bGUgd2l0aG91dCB0aGF0
IGNvZGUgaGF2aW5nIGFueSByZWxvY2F0aW9ucy4KIAotRmlyc3QsIGFsbCB0aGUgQyBzb3VyY2Ug
ZmlsZXMgZm9yIHRoZSBtb2R1bGUgYXJlIGNvbXBpbGVkIGFzIGEgc2luZ2xlIHVuaXQgYnkgY29t
cGlsaW5nIGEgc2luZ2xlIHNvdXJjZSBmaWxlIHRoYXQgYCNpbmNsdWRlYHMgdGhlbSBhbGwgKHRo
aXMgaXMgYGJjbS5jYCkuIFRoZSBgLWZQSUNgIGZsYWcgaXMgdXNlZCB0byBjYXVzZSB0aGUgY29t
cGlsZXIgdG8gdXNlIElQLXJlbGF0aXZlIGFkZHJlc3NpbmcgaW4gbWFueSAoYnV0IG5vdCBhbGwp
IGNhc2VzLiBBbHNvIHRoZSBgLVNgIGZsYWcgaXMgdXNlZCB0byBpbnN0cnVjdCB0aGUgY29tcGls
ZXIgdG8gcHJvZHVjZSBhIHRleHR1YWwgYXNzZW1ibHkgZmlsZSByYXRoZXIgdGhhbiBhIGJpbmFy
eSBvYmplY3QgZmlsZS4KK1RoZXJlIGFyZSB0d28gYnVpbGQgY29uZmlndXJhdGlvbnMgc3VwcG9y
dGVkOiBzdGF0aWMgYW5kIHNoYXJlZC4gVGhlIHNoYXJlZCBidWlsZCBwcm9kdWNlcyBgbGliY3J5
cHRvLnNvYCwgd2hpY2ggaW5jbHVkZXMgdGhlIEZJUFMgbW9kdWxlIGFuZCBpcyBzaWduaWZpY2Fu
dGx5IG1vcmUgc3RyYWlnaHRmb3J3YXJkIGFuZCBzbyBpcyBkZXNjcmliZWQgZmlyc3Q6CisKKyMj
IyBTaGFyZWQgYnVpbGQKKworRmlyc3QsIGFsbCB0aGUgQyBzb3VyY2UgZmlsZXMgZm9yIHRoZSBt
b2R1bGUgYXJlIGNvbXBpbGVkIGFzIGEgc2luZ2xlIHVuaXQgYnkgY29tcGlsaW5nIGEgc2luZ2xl
IHNvdXJjZSBmaWxlIHRoYXQgYCNpbmNsdWRlYHMgdGhlbSBhbGwgKHRoaXMgaXMgYGJjbS5jYCku
IFRoaXMsIGFsb25nIHdpdGggc29tZSBhc3NlbWJseSBzb3VyY2VzLCBjb21wcmlzZSB0aGUgRklQ
UyBtb2R1bGUuCisKK1RoZSBvYmplY3QgZmlsZXMgcmVzdWx0aW5nIGZyb20gY29tcGlsaW5nIChv
ciBhc3NlbWJsaW5nKSB0aG9zZSBmaWxlcyBpcyBsaW5rZWQgaW4gcGFydGlhbC1saW5raW5nIG1v
ZGUgd2l0aCBhIGxpbmtlciBzY3JpcHQgdGhhdCBjYXVzZXMgdGhlIGxpbmtlciB0byBpbnNlcnQg
c3ltYm9scyBtYXJraW5nIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgdGV4dCBhbmQgcm9k
YXRhIHNlY3Rpb25zLiBUaGUgbGlua2VyIHNjcmlwdCBhbHNvIGRpc2NhcmRzIG90aGVyIHR5cGVz
IG9mIGRhdGEgc2VjdGlvbnMgdG8gZW5zdXJlIHRoYXQgbm8gdW5oYXNoZWQgZGF0YSBpcyB1c2Vk
IGJ5IHRoZSBtb2R1bGUuCisKK09uZSBzb3VyY2Ugb2Ygc3VjaCBkYXRhIGFyZSBgcmVsLnJvYCBz
ZWN0aW9ucywgd2hpY2ggY29udGFpbiBkYXRhIHRoYXQgaW5jbHVkZXMgZnVuY3Rpb24gcG9pbnRl
cnMuIFNpbmNlIHRoZXNlIGZ1bmN0aW9uIHBvaW50ZXJzIGFyZSBhYnNvbHV0ZSwgdGhleSBhcmUg
d3JpdHRlbiBieSB0aGUgZHluYW1pYyBsaW5rZXIgYXQgcnVuLXRpbWUgYW5kIHNvIHdlIG11c3Qg
ZWxpbWluYXRlIHRoZW0uIFRoZSBwYXR0ZXJuIHRoYXQgY2F1c2VzIHRoZW0gaXMgd2hlbiB3ZSBo
YXZlIGEgc3RhdGljIGBFVlBfTURgIG9yIGBFVlBfQ0lQSEVSYCBvYmplY3QgdGh1cywgaW5zaWRl
IHRoZSBtb2R1bGUsIHRoaXMgcGF0dGVybiBpcyBjaGFuZ2VkIHRvIGluc3RlYWQgcmVzZXJ2ZSBz
cGFjZSBpbiB0aGUgQlNTIGZvciB0aGUgb2JqZWN0LCBhbmQgdG8gYWRkIGEgYENSWVBUT19vbmNl
X3RgIHRvIHByb3RlY3QgaXRzIGluaXRpYWxpc2F0aW9uLgorCitPbmNlIHRoZSBwYXJ0aWFsbHkt
bGlua2VkIHJlc3VsdCBpcyBsaW5rZWQgYWdhaW4sIHdpdGggb3RoZXIgcGFydHMgb2YgbGliY3J5
cHRvLCB0byBwcm9kdWNlIGBsaWJjcnlwdG8uc29gLCB0aGUgY29udGVudHMgb2YgdGhlIG1vZHVs
ZSBhcmUgZml4ZWQsIGFzIHJlcXVpcmVkLiBUaGUgbW9kdWxlIGNvZGUgdXNlcyB0aGUgbGlua2Vy
LWFkZGVkIHN5bWJvbHMgdG8gZmluZCB0aGUgaXRzIGNvZGUgYW5kIGRhdGEgYXQgcnVuLXRpbWUg
YW5kIGhhc2hlcyB0aGVtIHVwb24gaW5pdGlhbGlzYXRpb24uIFRoZSByZXN1bHQgaXMgY29tcGFy
ZWQgYWdhaW5zdCBhIHZhbHVlIHN0b3JlZCBpbnNpZGUgYGxpYmNyeXB0by5zb2AsIGJ1dCBvdXRz
aWRlIG9mIHRoZSBtb2R1bGUuIFRoYXQgdmFsdWUgd2lsbCwgaW5pdGlhbGx5LCBiZSBpbmNvcnJl
Y3QsIGJ1dCBgaW5qZWN0LWhhc2guZ29gIGNhbiBpbmplY3QgdGhlIGNvcnJlY3QgdmFsdWUuCisK
KyMjIyBTdGF0aWMgYnVpbGQKKworVGhlIHN0YXRpYyBidWlsZCBjYW5ub3QgZGVwZW5kIG9uIHRo
ZSBzaGFyZWQtb2JqZWN0IGxpbmsgdG8gcmVzb2x2ZSByZWxvY2F0aW9ucyBhbmQgdGh1cyBtdXN0
IHRha2UgYW5vdGhlciBwYXRoLgorCitBcyB3aXRoIHRoZSBzaGFyZWQgYnVpbGQsIGFsbCB0aGUg
QyBzb3VyY2VzIGFyZSBidWlsZCBpbiBhIHNpbmdsZSBjb21waWxhdGlvbiB1bml0LiBUaGUgYC1m
UElDYCBmbGFnIGlzIHVzZWQgdG8gY2F1c2UgdGhlIGNvbXBpbGVyIHRvIHVzZSBJUC1yZWxhdGl2
ZSBhZGRyZXNzaW5nIGluIG1hbnkgKGJ1dCBub3QgYWxsKSBjYXNlcy4gQWxzbyB0aGUgYC1TYCBm
bGFnIGlzIHVzZWQgdG8gaW5zdHJ1Y3QgdGhlIGNvbXBpbGVyIHRvIHByb2R1Y2UgYSB0ZXh0dWFs
IGFzc2VtYmx5IGZpbGUgcmF0aGVyIHRoYW4gYSBiaW5hcnkgb2JqZWN0IGZpbGUuCiAKIFRoZSB0
ZXh0dWFsIGFzc2VtYmx5IGZpbGUgaXMgdGhlbiBwcm9jZXNzZWQgYnkgYSBzY3JpcHQgdG8gbWVy
Z2UgaW4gYXNzZW1ibHkgaW1wbGVtZW50YXRpb25zIG9mIHNvbWUgcHJpbWl0aXZlcyBhbmQgdG8g
ZWxpbWluYXRlIHRoZSByZW1haW5pbmcgc291cmNlcyBvZiByZWxvY2F0aW9ucy4KIApAQCAtODAs
OSArOTYsOSBAQCBJbiB0aGlzIGRpYWdyYW0sIHRoZSBpbnRlZ3JpdHkgY2hlY2sgaGFzaGVzIGZy
b20gYG1vZHVsZV9zdGFydGAgdG8gYG1vZHVsZV9lbmRgLgogCiAjIyMjIyBSZWFkLW9ubHkgZGF0
YQogCi1Ob3JtYWxseSByZWFkLW9ubHkgZGF0YSBpcyBwbGFjZWQgaW4gYSBgLmRhdGFgIHNlZ21l
bnQgdGhhdCBkb2Vzbid0IGdldCBtYXBwZWQgaW50byBtZW1vcnkgd2l0aCBleGVjdXRlIHBlcm1p
c3Npb25zLiBIb3dldmVyLCB0aGUgb2Zmc2V0IG9mIHRoZSBkYXRhIHNlZ21lbnQgZnJvbSB0aGUg
dGV4dCBzZWdtZW50IGlzIGFub3RoZXIgdGhpbmcgdGhhdCBpc24ndCBkZXRlcm1pbmVkIHVudGls
IHRoZSBmaW5hbCBsaW5rLiBJbiBvcmRlciB0byBmaXggZGF0YSBvZmZzZXRzIGJlZm9yZSB0aGUg
bGluaywgcmVhZC1vbmx5IGRhdGEgaXMgc2ltcGx5IHBsYWNlZCBpbiB0aGUgbW9kdWxlJ3MgYC50
ZXh0YCBzZWdtZW50LiBUaGlzIG1pZ2h0IG1ha2UgYnVpbGRpbmcgUk9QIGNoYWlucyBlYXNpZXIg
Zm9yIGFuIGF0dGFja2VyLCBidXQgc28gaXQgZ29lcy4KK05vcm1hbGx5IHJlYWQtb25seSBkYXRh
IGlzIHBsYWNlZCBpbiBhbiBgLnJvZGF0YWAgc2VnbWVudCB0aGF0IGRvZXNuJ3QgZ2V0IG1hcHBl
ZCBpbnRvIG1lbW9yeSB3aXRoIGV4ZWN1dGUgcGVybWlzc2lvbnMuIEhvd2V2ZXIsIHRoZSBvZmZz
ZXQgb2YgdGhlIGRhdGEgc2VnbWVudCBmcm9tIHRoZSB0ZXh0IHNlZ21lbnQgaXMgYW5vdGhlciB0
aGluZyB0aGF0IGlzbid0IGRldGVybWluZWQgdW50aWwgdGhlIGZpbmFsIGxpbmsuIEluIG9yZGVy
IHRvIGZpeCBkYXRhIG9mZnNldHMgYmVmb3JlIHRoZSBsaW5rLCByZWFkLW9ubHkgZGF0YSBpcyBz
aW1wbHkgcGxhY2VkIGluIHRoZSBtb2R1bGUncyBgLnRleHRgIHNlZ21lbnQuIFRoaXMgbWlnaHQg
bWFrZSBidWlsZGluZyBST1AgY2hhaW5zIGVhc2llciBmb3IgYW4gYXR0YWNrZXIsIGJ1dCBzbyBp
dCBnb2VzLgogCi1PbmUgc3BlY2lhbCBjYXNlIGlzIGByZWwucm9gIGRhdGEsIHdoaWNoIGlzIGRh
dGEgdGhhdCBjb250YWlucyBmdW5jdGlvbiBwb2ludGVycy4gU2luY2UgdGhlc2UgZnVuY3Rpb24g
cG9pbnRlcnMgYXJlIGFic29sdXRlLCB0aGV5IGFyZSB3cml0dGVuIGJ5IHRoZSBkeW5hbWljIGxp
bmtlciBhdCBydW4tdGltZSBhbmQgc28gd2UgbXVzdCBlbGltaW5hdGUgdGhlbS4gVGhlIHBhdHRl
cm4gdGhhdCBjYXVzZXMgdGhlbSBpcyB3aGVuIHdlIGhhdmUgYSBzdGF0aWMgYEVWUF9NRGAgb3Ig
YEVWUF9DSVBIRVJgIG9iamVjdCB0aHVzLCBpbnNpZGUgdGhlIG1vZHVsZSwgd2UnbGwgY2hhbmdl
IHRoaXMgcGF0dGVybiB0byBpbnN0ZWFkIHRvIHJlc2VydmUgc3BhY2UgaW4gdGhlIEJTUyBmb3Ig
dGhlIG9iamVjdCwgYW5kIGFkZCBhIGBDUllQVE9fb25jZV90YCB0byBwcm90ZWN0IGl0cyBpbml0
aWFsaXNhdGlvbi4gVGhlIHNjcmlwdCB3aWxsIGdlbmVyYXRlIGZ1bmN0aW9ucyBvdXRzaWRlIG9m
IHRoZSBtb2R1bGUgdGhhdCByZXR1cm4gcG9pbnRlcnMgdG8gdGhlc2UgYXJlYXMgb2YgbWVtb3J5
4oCUdGhleSBlZmZlY3RpdmVseSBhY3QgbGlrZSBhIHNwZWNpYWwtcHVycG9zZSBtYWxsb2MgY2Fs
bHMgdGhhdCBjYW5ub3QgZmFpbC4KK0RhdGEgY29udGFpbmluZyBmdW5jdGlvbiBwb2ludGVycyBy
ZW1haW5zIGFuIGlzc3VlLiBUaGUgc291cmNlLWNvZGUgY2hhbmdlcyBkZXNjcmliZWQgYWJvdmUg
Zm9yIHRoZSBzaGFyZWQgYnVpbGQgYXBwbHkgaGVyZSB0b28sIGJ1dCBubyBkaXJlY3QgcmVmZXJl
bmNlcyB0byBhIEJTUyBzZWN0aW9uIGFyZSBwb3NzaWJsZSBiZWNhdXNlIHRoZSBvZmZzZXQgdG8g
dGhhdCBzZWN0aW9uIGlzIG5vdCBrbm93biBhdCBjb21waWxlIHRpbWUuIEluc3RlYWQsIHRoZSBz
Y3JpcHQgZ2VuZXJhdGVzIGZ1bmN0aW9ucyBvdXRzaWRlIG9mIHRoZSBtb2R1bGUgdGhhdCByZXR1
cm4gcG9pbnRlcnMgdG8gdGhlc2UgYXJlYXMgb2YgbWVtb3J54oCUdGhleSBlZmZlY3RpdmVseSBh
Y3QgbGlrZSBzcGVjaWFsLXB1cnBvc2UgbWFsbG9jIGNhbGxzIHRoYXQgY2Fubm90IGZhaWwuCiAK
ICMjIyMjIFJlYWQtd3JpdGUgZGF0YQogCkBAIC05Miw3ICsxMDgsNyBAQCBJbiBvcmRlciB0byBh
bGxvdyB0aGlzIHdlIHVzZSBhIHNpbWlsYXIgZGVzaWduIHRvIHRoZSByZWRpcmVjdG9yIGZ1bmN0
aW9uczogdGhlCiAKICMjIyMjIE90aGVyIHRyYW5zZm9ybXMKIAotVGhlIHNjcmlwdCBwZXJmb3Jt
cyBhIG51bWJlciBvZiBvdGhlciB0cmFuc2Zvcm1hdGlvbnMgd2hpY2ggYXJlIHdvcnRoIG5vdGlu
ZyBidXQgZG8gbm90IHdhcnJhbnQgdGhlaXIgb3duIHNlY3Rpb25zOgorVGhlIHNjcmlwdCBwZXJm
b3JtcyBhIG51bWJlciBvZiBvdGhlciB0cmFuc2Zvcm1hdGlvbnMgd2hpY2ggYXJlIHdvcnRoIG5v
dGluZyBidXQgZG8gbm90IHdhcnJhbnQgdGhlaXIgb3duIGRpc2N1c3Npb25zOgogCiAxLiAgSXQg
ZHVwbGljYXRlcyBlYWNoIGdsb2JhbCBzeW1ib2wgd2l0aCBhIGxvY2FsIHN5bWJvbCB0aGF0IGhh
cyBgX2xvY2FsX3RhcmdldGAgYXBwZW5kZWQgdG8gdGhlIG5hbWUuIFJlZmVyZW5jZXMgdG8gdGhl
IGdsb2JhbCBzeW1ib2xzIGFyZSByZXdyaXR0ZW4gdG8gdXNlIHRoZXNlIGR1cGxpY2F0ZXMgaW5z
dGVhZC4gT3RoZXJ3aXNlLCBhbHRob3VnaCB0aGUgZ2VuZXJhdGVkIGNvZGUgdXNlcyBJUC1yZWxh
dGl2ZSByZWZlcmVuY2VzLCByZWxvY2F0aW9ucyBhcmUgZW1pdHRlZCBmb3IgZ2xvYmFsIHN5bWJv
bHMgaW4gY2FzZSB0aGV5IGFyZSBvdmVycmlkZGVuIGJ5IGEgZGlmZmVyZW50IG9iamVjdCBmaWxl
IGR1cmluZyB0aGUgbGluay4KIDEuICBWYXJpb3VzIHNlY3Rpb25zLCBub3RhYmx5IGAucm9kYXRh
YCwgYXJlIG1vdmVkIHRvIHRoZSBgLnRleHRgIHNlY3Rpb24sIGluc2lkZSB0aGUgbW9kdWxlLCBz
byBtb2R1bGUgY29kZSBtYXkgcmVmZXJlbmNlIGl0IHdpdGhvdXQgcmVsb2NhdGlvbnMuCkBAIC0x
MTIsMTUgKzEyOCwxNSBAQCBJbml0aWFsbHkgdGhlIGtub3duLWdvb2QgdmFsdWUgd2lsbCBiZSBp
bmNvcnJlY3QuIEFub3RoZXIgc2NyaXB0IChgaW5qZWN0X2hhc2guZwogCiAoVGhpcyBpcyBiYXNl
ZCBvbiByZWFkaW5nIE9wZW5TU0wncyBbdXNlciBndWlkZV0oaHR0cHM6Ly93d3cub3BlbnNzbC5v
cmcvZG9jcy9maXBzL1VzZXJHdWlkZS0yLjAucGRmKSBhbmQgaW5zcGVjdGluZyB0aGUgY29kZSBv
ZiBPcGVuU1NMIEZJUFMgMi4wLjEyLikKIAotT3BlblNTTCdzIHNvbHV0aW9uIHRvIHRoaXMgcHJv
YmxlbSBpcyBicm9hZGx5IHNpbWlsYXIgYnV0IGhhcyBhIG51bWJlciBvZiBkaWZmZXJlbmNlczoK
K09wZW5TU0wncyBzb2x1dGlvbiB0byB0aGlzIHByb2JsZW0gaXMgdmVyeSBzaW1pbGFyIHRvIG91
ciBzaGFyZWQgYnVpbGQsIHdpdGgganVzdCBhIGZldyBkaWZmZXJlbmNlczoKIAogMS4gIE9wZW5T
U0wgZGVhbHMgd2l0aCBydW4tdGltZSByZWxvY2F0aW9ucyBieSBub3QgaGFzaGluZyBwYXJ0cyBv
ZiB0aGUgbW9kdWxlJ3MgZGF0YS4KLTEuICBPcGVuU1NMIHVzZXMgYGxkIC1yYCAodGhlIHBhcnRp
YWwgbGlua2luZyBtb2RlKSB0byBtZXJnZSBhIG51bWJlciBvZiBvYmplY3QgZmlsZXMgaW50byB0
aGVpciBgZmlwc2NhbmlzdGVyLm9gLiBGb3IgQm9yaW5nQ3J5cHRvLCB3ZSBtZXJnZSBhbGwgdGhl
IEMgc291cmNlIGZpbGVzIGJ5IGJ1aWxkaW5nIGEgc2luZ2xlIEMgZmlsZSB0aGF0ICNpbmNsdWRl
cyBhbGwgdGhlIG90aGVycywgYW5kIHdlIG1lcmdlIHRoZSBhc3NlbWJseSBzb3VyY2VzIGJ5IGFw
cGVuZGluZyB0aGVtIHRvIHRoZSBhc3NlbWJseSBvdXRwdXQgZnJvbSB0aGUgQyBjb21waWxlci4K
LTEuICBPcGVuU1NMIGRlcGVuZHMgb24gdGhlIGxpbmsgb3JkZXIgYW5kIGluc2VydHMgdHdvIG9i
amVjdCBmaWxlcywgYGZpcHNfc3RhcnQub2AgYW5kIGBmaXBzX2VuZC5vYCwgaW4gb3JkZXIgdG8g
ZXN0YWJsaXNoIHRoZSBgbW9kdWxlX3N0YXJ0YCBhbmQgYG1vZHVsZV9lbmRgIHZhbHVlcy4gQm9y
aW5nQ3J5cHRvIGFkZHMgbGFiZWxzIGF0IHRoZSBjb3JyZWN0IHBsYWNlcyBpbiB0aGUgYXNzZW1i
bHkuCisxLiAgT3BlblNTTCB1c2VzIGBsZCAtcmAgKHRoZSBwYXJ0aWFsIGxpbmtpbmcgbW9kZSkg
dG8gbWVyZ2UgYSBudW1iZXIgb2Ygb2JqZWN0IGZpbGVzIGludG8gdGhlaXIgYGZpcHNjYW5pc3Rl
ci5vYC4gRm9yIEJvcmluZ0NyeXB0bydzIHN0YXRpYyBidWlsZCwgd2UgbWVyZ2UgYWxsIHRoZSBD
IHNvdXJjZSBmaWxlcyBieSBidWlsZGluZyBhIHNpbmdsZSBDIGZpbGUgdGhhdCAjaW5jbHVkZXMg
YWxsIHRoZSBvdGhlcnMsIGFuZCB3ZSBtZXJnZSB0aGUgYXNzZW1ibHkgc291cmNlcyBieSBhcHBl
bmRpbmcgdGhlbSB0byB0aGUgYXNzZW1ibHkgb3V0cHV0IGZyb20gdGhlIEMgY29tcGlsZXIuCisx
LiAgT3BlblNTTCBkZXBlbmRzIG9uIHRoZSBsaW5rIG9yZGVyIGFuZCBpbnNlcnRzIHR3byBvYmpl
Y3QgZmlsZXMsIGBmaXBzX3N0YXJ0Lm9gIGFuZCBgZmlwc19lbmQub2AsIGluIG9yZGVyIHRvIGVz
dGFibGlzaCB0aGUgYG1vZHVsZV9zdGFydGAgYW5kIGBtb2R1bGVfZW5kYCB2YWx1ZXMuIEJvcmlu
Z0NyeXB0byBhZGRzIGxhYmVscyBhdCB0aGUgY29ycmVjdCBwbGFjZXMgaW4gdGhlIGFzc2VtYmx5
IGZvciB0aGUgc3RhdGljIGJ1aWxkLCBvciB1c2VzIGEgbGlua2VyIHNjcmlwdCBmb3IgdGhlIHNo
YXJlZCBidWlsZC4KIDEuICBPcGVuU1NMIGNhbGN1bGF0ZXMgdGhlIGhhc2ggYWZ0ZXIgdGhlIGZp
bmFsIGxpbmsgYW5kIGVpdGhlciBpbmplY3RzIGl0IGludG8gdGhlIGJpbmFyeSBvciByZWNvbXBp
bGVzIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBoYXNoIHBhc3NlZCBpbiBhcyBhICNkZWZpbmUuIEJv
cmluZ0NyeXB0byBjYWxjdWxhdGVzIGl0IHByaW9yIHRvIHRoZSBmaW5hbCBsaW5rIGFuZCBpbmpl
Y3RzIGl0IGludG8gdGhlIG9iamVjdCBmaWxlLgogMS4gIE9wZW5TU0wgcmVmZXJlbmNlcyByZWFk
LXdyaXRlIGRhdGEgZGlyZWN0bHksIHNpbmNlIGl0IGNhbiBrbm93IHRoZSBvZmZzZXRzIHRvIGl0
LiBCb3JpbmdDcnlwdG8gaW5kaXJlY3RzIHRoZXNlIGxvYWRzIGFuZCBzdG9yZXMuCiAxLiAgT3Bl
blNTTCBkb2Vzbid0IHJ1biB0aGUgcG93ZXItb24gdGVzdCB1bnRpbCBgRklQU19tb2R1bGVfbW9k
ZV9zZXRgIGlzIGNhbGxlZC4gQm9yaW5nQ3J5cHRvIGRvZXMgaXQgaW4gYSBjb25zdHJ1Y3RvciBm
dW5jdGlvbi4gRmFpbHVyZSBvZiB0aGUgdGVzdCBpcyBub24tZmF0YWwgaW4gT3BlblNTTCwgQm9y
aW5nQ3J5cHRvIHdpbGwgY3Jhc2guCi0xLiAgU2luY2UgdGhlIGNvbnRlbnRzIG9mIE9wZW5TU0wn
cyBtb2R1bGUgY2hhbmdlIGJldHdlZW4gY29tcGlsYXRpb24gYW5kIHVzZSwgT3BlblNTTCBnZW5l
cmF0ZXMgYGZpcHNjYW5pc3Rlci5vLnNoYTFgIHRvIGNoZWNrIHRoYXQgdGhlIGNvbXBpbGVkIG9i
amVjdCBkb2Vzbid0IGNoYW5nZSBiZWZvcmUgbGlua2luZy4gU2luY2UgQm9yaW5nQ3J5cHRvJ3Mg
bW9kdWxlIGlzIGZpeGVkIGFmdGVyIGNvbXBpbGF0aW9uLCB0aGUgZmluYWwgaW50ZWdyaXR5IGNo
ZWNrIGlzIHVuYnJva2VuIHRocm91Z2ggdGhlIGxpbmtpbmcgcHJvY2Vzcy4KKzEuICBTaW5jZSB0
aGUgY29udGVudHMgb2YgT3BlblNTTCdzIG1vZHVsZSBjaGFuZ2UgYmV0d2VlbiBjb21waWxhdGlv
biBhbmQgdXNlLCBPcGVuU1NMIGdlbmVyYXRlcyBgZmlwc2NhbmlzdGVyLm8uc2hhMWAgdG8gY2hl
Y2sgdGhhdCB0aGUgY29tcGlsZWQgb2JqZWN0IGRvZXNuJ3QgY2hhbmdlIGJlZm9yZSBsaW5raW5n
LiBTaW5jZSBCb3JpbmdDcnlwdG8ncyBtb2R1bGUgaXMgZml4ZWQgYWZ0ZXIgY29tcGlsYXRpb24g
KGluIHRoZSBzdGF0aWMgY2FzZSksIHRoZSBmaW5hbCBpbnRlZ3JpdHkgY2hlY2sgaXMgdW5icm9r
ZW4gdGhyb3VnaCB0aGUgbGlua2luZyBwcm9jZXNzLgogCiBTb21lIG9mIHRoZSBzaW1pbGFyaXRp
ZXMgYXJlIHdvcnRoIG5vdGluZzoKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxl
L2Flcy9hZXMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYWVzLmMKaW5kZXggZjY1NGNi
MWU3MzJlYzdiZTAzZGQ5ZmQzOTc4YmM4OWUyZTI4ZGVhNS4uNDhkNjBlZWI2NDhhMjc0YzYyZDg0
MWFlOTM5MTMwOTAyNzg0YTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Fl
cy9hZXMuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2Flcy5jCkBAIC01MzQsOCAr
NTM0LDggQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJjb25bXSA9IHsKICAgICAvLyBmb3IgMTI4
LWJpdCBibG9ja3MsIFJpam5kYWVsIG5ldmVyIHVzZXMgbW9yZSB0aGFuIDEwIHJjb24gdmFsdWVz
CiB9OwogCi1zdGF0aWMgaW50IGFlc19ub2h3X3NldF9lbmNyeXB0X2tleShjb25zdCB1aW50OF90
ICprZXksIHVuc2lnbmVkIGJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBRVNfS0VZICphZXNrZXkpIHsKK2ludCBhZXNfbm9od19zZXRfZW5jcnlwdF9rZXkoY29uc3Qg
dWludDhfdCAqa2V5LCB1bnNpZ25lZCBiaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBRVNfS0VZICphZXNrZXkpIHsKICAgdWludDMyX3QgKnJrOwogICBpbnQgaSA9IDA7CiAgIHVp
bnQzMl90IHRlbXA7CkBAIC02MzAsOCArNjMwLDggQEAgc3RhdGljIGludCBhZXNfbm9od19zZXRf
ZW5jcnlwdF9rZXkoY29uc3QgdWludDhfdCAqa2V5LCB1bnNpZ25lZCBiaXRzLAogICByZXR1cm4g
MDsKIH0KIAotc3RhdGljIGludCBhZXNfbm9od19zZXRfZGVjcnlwdF9rZXkoY29uc3QgdWludDhf
dCAqa2V5LCB1bnNpZ25lZCBiaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQUVTX0tFWSAqYWVza2V5KSB7CitpbnQgYWVzX25vaHdfc2V0X2RlY3J5cHRfa2V5KGNvbnN0
IHVpbnQ4X3QgKmtleSwgdW5zaWduZWQgYml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQUVTX0tFWSAqYWVza2V5KSB7CiAgIHVpbnQzMl90ICpyazsKICAgaW50IGksIGosIHN0YXR1
czsKICAgdWludDMyX3QgdGVtcDsKQEAgLTY3OSw4ICs2NzksNyBAQCBzdGF0aWMgaW50IGFlc19u
b2h3X3NldF9kZWNyeXB0X2tleShjb25zdCB1aW50OF90ICprZXksIHVuc2lnbmVkIGJpdHMsCiAg
IHJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBhZXNfbm9od19lbmNyeXB0KGNvbnN0IHVpbnQ4
X3QgKmluLCB1aW50OF90ICpvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEFFU19LRVkgKmtleSkgewordm9pZCBhZXNfbm9od19lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmlu
LCB1aW50OF90ICpvdXQsIGNvbnN0IEFFU19LRVkgKmtleSkgewogICBjb25zdCB1aW50MzJfdCAq
cms7CiAgIHVpbnQzMl90IHMwLCBzMSwgczIsIHMzLCB0MCwgdDEsIHQyLCB0MzsKICAgaW50IHI7
CkBAIC03NDEsOCArNzQwLDcgQEAgc3RhdGljIHZvaWQgYWVzX25vaHdfZW5jcnlwdChjb25zdCB1
aW50OF90ICppbiwgdWludDhfdCAqb3V0LAogICBQVVRVMzIob3V0ICsgMTIsIHMzKTsKIH0KIAot
c3RhdGljIHZvaWQgYWVzX25vaHdfZGVjcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAq
b3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZICprZXkpIHsK
K3ZvaWQgYWVzX25vaHdfZGVjcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBj
b25zdCBBRVNfS0VZICprZXkpIHsKICAgY29uc3QgdWludDMyX3QgKnJrOwogICB1aW50MzJfdCBz
MCwgczEsIHMyLCBzMywgdDAsIHQxLCB0MiwgdDM7CiAgIGludCByOwpAQCAtODA4LDI3ICs4MDYs
MTggQEAgc3RhdGljIHZvaWQgYWVzX25vaHdfZGVjcnlwdChjb25zdCB1aW50OF90ICppbiwgdWlu
dDhfdCAqb3V0LAogICBQVVRVMzIob3V0ICsgMTIsIHMzKTsKIH0KIAotI2Vsc2UgIC8vIE5PX0FT
TSB8fCAoIVg4NiAmJiAhWDg2XzY0ICYmICFBUk0pCi0KLS8vIElmIG5vdCBpbXBsZW1lbnRlZCBp
biBDLCB0aGVzZSBmdW5jdGlvbnMgd2lsbCBiZSBwcm92aWRlZCBieSBhc3NlbWJseSBjb2RlLgot
dm9pZCBhZXNfbm9od19lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIGNv
bnN0IEFFU19LRVkgKmtleSk7Ci12b2lkIGFlc19ub2h3X2RlY3J5cHQoY29uc3QgdWludDhfdCAq
aW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAqa2V5KTsKLWludCBhZXNfbm9od19zZXRf
ZW5jcnlwdF9rZXkoY29uc3QgdWludDhfdCAqa2V5LCB1bnNpZ25lZCBiaXRzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBRVNfS0VZICphZXNrZXkpOwotaW50IGFlc19ub2h3X3NldF9k
ZWNyeXB0X2tleShjb25zdCB1aW50OF90ICprZXksIHVuc2lnbmVkIGJpdHMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFFU19LRVkgKmFlc2tleSk7Ci0KLSNlbmRpZgorI2VuZGlmICAv
LyBOT19BU00gfHwgKCFYODYgJiYgIVg4Nl82NCAmJiAhQVJNKQogCi0vLyBCZSBhd2FyZSB0aGF0
IG9uIHg4NigtNjQpLCB0aGUgfGFlc19ub2h3Xyp8IGZ1bmN0aW9ucyBhcmUgaW5jb21wYXRpYmxl
IHdpdGgKLS8vIHRoZSBhZXNfaHdfKiBmdW5jdGlvbnMuIFRoZSBsYXR0ZXIgc2V0IHxBRVNfS0VZ
LnJvdW5kc3wgdG8gb25lIGxlc3MgdGhhbiB0aGUKLS8vIHRydWUgdmFsdWUsIHdoaWNoIGJyZWFr
cyB0aGUgZm9ybWVyLiBUaGVyZWZvcmUgdGhlIHR3byBmdW5jdGlvbnMgY2Fubm90IG1peC4KLS8v
IEFsc28sIG9uIEFhcmNoNjQsIHRoZSBwbGFpbi1DIGNvZGUsIGFib3ZlLCBpcyBpbmNvbXBhdGli
bGUgd2l0aCB0aGUKLS8vIHxhZXNfaHdfKnwgZnVuY3Rpb25zLgorLy8gQmUgYXdhcmUgdGhhdCBk
aWZmZXJlbnQgc2V0cyBvZiBBRVMgZnVuY3Rpb25zIHVzZSBpbmNvbXBhdGlibGUga2V5CisvLyBy
ZXByZXNlbnRhdGlvbnMsIHZhcnlpbmcgaW4gZm9ybWF0IG9mIHRoZSBrZXkgc2NoZWR1bGUsIHRo
ZSB8QUVTX0tFWS5yb3VuZHN8CisvLyB2YWx1ZSwgb3IgYm90aC4gVGhlcmVmb3JlIHRoZXkgY2Fu
bm90IG1peC4gQWxzbywgb24gQUFyY2g2NCwgdGhlIHBsYWluLUMKKy8vIGNvZGUsIGFib3ZlLCBp
cyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgfGFlc19od18qfCBmdW5jdGlvbnMuCiAKIHZvaWQgQUVT
X2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAq
a2V5KSB7CiAgIGlmIChod2Flc19jYXBhYmxlKCkpIHsKICAgICBhZXNfaHdfZW5jcnlwdChpbiwg
b3V0LCBrZXkpOworICB9IGVsc2UgaWYgKHZwYWVzX2NhcGFibGUoKSkgeworICAgIHZwYWVzX2Vu
Y3J5cHQoaW4sIG91dCwga2V5KTsKICAgfSBlbHNlIHsKICAgICBhZXNfbm9od19lbmNyeXB0KGlu
LCBvdXQsIGtleSk7CiAgIH0KQEAgLTgzNywyMiArODI2LDM0IEBAIHZvaWQgQUVTX2VuY3J5cHQo
Y29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAqa2V5KSB7CiB2
b2lkIEFFU19kZWNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIGNvbnN0IEFF
U19LRVkgKmtleSkgewogICBpZiAoaHdhZXNfY2FwYWJsZSgpKSB7CiAgICAgYWVzX2h3X2RlY3J5
cHQoaW4sIG91dCwga2V5KTsKKyAgfSBlbHNlIGlmICh2cGFlc19jYXBhYmxlKCkpIHsKKyAgICB2
cGFlc19kZWNyeXB0KGluLCBvdXQsIGtleSk7CiAgIH0gZWxzZSB7CiAgICAgYWVzX25vaHdfZGVj
cnlwdChpbiwgb3V0LCBrZXkpOwogICB9CiB9CiAKIGludCBBRVNfc2V0X2VuY3J5cHRfa2V5KGNv
bnN0IHVpbnQ4X3QgKmtleSwgdW5zaWduZWQgYml0cywgQUVTX0tFWSAqYWVza2V5KSB7CisgIGlm
IChiaXRzICE9IDEyOCAmJiBiaXRzICE9IDE5MiAmJiBiaXRzICE9IDI1NikgeworICAgIHJldHVy
biAtMjsKKyAgfQogICBpZiAoaHdhZXNfY2FwYWJsZSgpKSB7CiAgICAgcmV0dXJuIGFlc19od19z
ZXRfZW5jcnlwdF9rZXkoa2V5LCBiaXRzLCBhZXNrZXkpOworICB9IGVsc2UgaWYgKHZwYWVzX2Nh
cGFibGUoKSkgeworICAgIHJldHVybiB2cGFlc19zZXRfZW5jcnlwdF9rZXkoa2V5LCBiaXRzLCBh
ZXNrZXkpOwogICB9IGVsc2UgewogICAgIHJldHVybiBhZXNfbm9od19zZXRfZW5jcnlwdF9rZXko
a2V5LCBiaXRzLCBhZXNrZXkpOwogICB9CiB9CiAKIGludCBBRVNfc2V0X2RlY3J5cHRfa2V5KGNv
bnN0IHVpbnQ4X3QgKmtleSwgdW5zaWduZWQgYml0cywgQUVTX0tFWSAqYWVza2V5KSB7CisgIGlm
IChiaXRzICE9IDEyOCAmJiBiaXRzICE9IDE5MiAmJiBiaXRzICE9IDI1NikgeworICAgIHJldHVy
biAtMjsKKyAgfQogICBpZiAoaHdhZXNfY2FwYWJsZSgpKSB7CiAgICAgcmV0dXJuIGFlc19od19z
ZXRfZGVjcnlwdF9rZXkoa2V5LCBiaXRzLCBhZXNrZXkpOworICB9IGVsc2UgaWYgKHZwYWVzX2Nh
cGFibGUoKSkgeworICAgIHJldHVybiB2cGFlc19zZXRfZGVjcnlwdF9rZXkoa2V5LCBiaXRzLCBh
ZXNrZXkpOwogICB9IGVsc2UgewogICAgIHJldHVybiBhZXNfbm9od19zZXRfZGVjcnlwdF9rZXko
a2V5LCBiaXRzLCBhZXNrZXkpOwogICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvYWVzL2Flc190ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hZXNfdGVzdC5j
YwppbmRleCBjY2VjNTk3ZTQ4NTliYTMzZWI3NGI0MjEyOGFhZDI4YzE5OTMzMDcwLi43ZmFkYjM1
MTQwNzA0NGUwOTNjZDEzYjc1NDMzZjQ4OGQ3YjRlYzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvYWVzL2Flc190ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9h
ZXMvYWVzX3Rlc3QuY2MKQEAgLTIzLDcgKzIzLDkgQEAKIAogI2luY2x1ZGUgPG9wZW5zc2wvYWVz
Lmg+CiAKKyNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgIi4uLy4uL2ludGVybmFsLmgi
CisjaW5jbHVkZSAiLi4vLi4vdGVzdC9hYmlfdGVzdC5oIgogI2luY2x1ZGUgIi4uLy4uL3Rlc3Qv
ZmlsZV90ZXN0LmgiCiAjaW5jbHVkZSAiLi4vLi4vdGVzdC90ZXN0X3V0aWwuaCIKICNpbmNsdWRl
ICIuLi8uLi90ZXN0L3d5Y2hlcHJvb2ZfdXRpbC5oIgpAQCAtMTIwLDEyICsxMjIsNDAgQEAgc3Rh
dGljIHZvaWQgVGVzdEtleVdyYXAoRmlsZVRlc3QgKnQpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaXBoZXJ0ZXh0LmRhdGEoKSwgY2lwaGVydGV4dC5zaXplKCkpKTsKIH0KIAor
c3RhdGljIHZvaWQgVGVzdEtleVdyYXBXaXRoUGFkZGluZyhGaWxlVGVzdCAqdCkgeworICBzdGQ6
OnZlY3Rvcjx1aW50OF90PiBrZXksIHBsYWludGV4dCwgY2lwaGVydGV4dDsKKyAgQVNTRVJUX1RS
VUUodC0+R2V0Qnl0ZXMoJmtleSwgIktleSIpKTsKKyAgQVNTRVJUX1RSVUUodC0+R2V0Qnl0ZXMo
JnBsYWludGV4dCwgIlBsYWludGV4dCIpKTsKKyAgQVNTRVJUX1RSVUUodC0+R2V0Qnl0ZXMoJmNp
cGhlcnRleHQsICJDaXBoZXJ0ZXh0IikpOworCisgIC8vIFRlc3QgZW5jcnlwdGlvbi4KKyAgQUVT
X0tFWSBhZXNfa2V5OworICBBU1NFUlRfRVEoMCwgQUVTX3NldF9lbmNyeXB0X2tleShrZXkuZGF0
YSgpLCA4ICoga2V5LnNpemUoKSwgJmFlc19rZXkpKTsKKyAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4
X3RbXT4gYnVmKG5ldyB1aW50OF90W3BsYWludGV4dC5zaXplKCkgKyAxNV0pOworICBzaXplX3Qg
bGVuOworICBBU1NFUlRfVFJVRShBRVNfd3JhcF9rZXlfcGFkZGVkKCZhZXNfa2V5LCBidWYuZ2V0
KCksICZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW50ZXh0LnNp
emUoKSArIDE1LCBwbGFpbnRleHQuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBsYWludGV4dC5zaXplKCkpKTsKKyAgRVhQRUNUX0VRKEJ5dGVzKGNpcGhlcnRleHQp
LCBCeXRlcyhidWYuZ2V0KCksIHN0YXRpY19jYXN0PHNpemVfdD4obGVuKSkpOworCisgIC8vIFRl
c3QgZGVjcnlwdGlvbgorICBBU1NFUlRfRVEoMCwgQUVTX3NldF9kZWNyeXB0X2tleShrZXkuZGF0
YSgpLCA4ICoga2V5LnNpemUoKSwgJmFlc19rZXkpKTsKKyAgYnVmLnJlc2V0KG5ldyB1aW50OF90
W2NpcGhlcnRleHQuc2l6ZSgpIC0gOF0pOworICBBU1NFUlRfVFJVRShBRVNfdW53cmFwX2tleV9w
YWRkZWQoJmFlc19rZXksIGJ1Zi5nZXQoKSwgJmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNpcGhlcnRleHQuc2l6ZSgpIC0gOCwgY2lwaGVydGV4dC5kYXRhKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0LnNpemUoKSkpOwor
ICBBU1NFUlRfRVEobGVuLCBwbGFpbnRleHQuc2l6ZSgpKTsKKyAgRVhQRUNUX0VRKEJ5dGVzKHBs
YWludGV4dCksIEJ5dGVzKGJ1Zi5nZXQoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW4pKSk7Cit9
CisKIFRFU1QoQUVTVGVzdCwgVGVzdFZlY3RvcnMpIHsKICAgRmlsZVRlc3RHVGVzdCgiY3J5cHRv
L2ZpcHNtb2R1bGUvYWVzL2Flc190ZXN0cy50eHQiLCBbXShGaWxlVGVzdCAqdCkgewogICAgIGlm
ICh0LT5HZXRQYXJhbWV0ZXIoKSA9PSAiUmF3IikgewogICAgICAgVGVzdFJhdyh0KTsKICAgICB9
IGVsc2UgaWYgKHQtPkdldFBhcmFtZXRlcigpID09ICJLZXlXcmFwIikgewogICAgICAgVGVzdEtl
eVdyYXAodCk7CisgICAgfSBlbHNlIGlmICh0LT5HZXRQYXJhbWV0ZXIoKSA9PSAiS2V5V3JhcFdp
dGhQYWRkaW5nIikgeworICAgICAgVGVzdEtleVdyYXBXaXRoUGFkZGluZyh0KTsKICAgICB9IGVs
c2UgewogICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVW5rbm93biBtb2RlICIgPDwgdC0+R2V0UGFy
YW1ldGVyKCk7CiAgICAgfQpAQCAtMTcwLDYgKzIwMCw0OCBAQCBURVNUKEFFU1Rlc3QsIFd5Y2hl
cHJvb2ZLZXlXcmFwKSB7CiAgIH0pOwogfQogCitURVNUKEFFU1Rlc3QsIFd5Y2hlcHJvb2ZLZXlX
cmFwV2l0aFBhZGRpbmcpIHsKKyAgRmlsZVRlc3RHVGVzdCgidGhpcmRfcGFydHkvd3ljaGVwcm9v
Zl90ZXN0dmVjdG9ycy9rd3BfdGVzdC50eHQiLAorICAgICAgICAgICAgICAgIFtdKEZpbGVUZXN0
ICp0KSB7CisgICAgc3RkOjpzdHJpbmcga2V5X3NpemU7CisgICAgQVNTRVJUX1RSVUUodC0+R2V0
SW5zdHJ1Y3Rpb24oJmtleV9zaXplLCAia2V5U2l6ZSIpKTsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50
OF90PiBjdCwga2V5LCBtc2c7CisgICAgQVNTRVJUX1RSVUUodC0+R2V0Qnl0ZXMoJmN0LCAiY3Qi
KSk7CisgICAgQVNTRVJUX1RSVUUodC0+R2V0Qnl0ZXMoJmtleSwgImtleSIpKTsKKyAgICBBU1NF
UlRfVFJVRSh0LT5HZXRCeXRlcygmbXNnLCAibXNnIikpOworICAgIEFTU0VSVF9FUShzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oYXRvaShrZXlfc2l6ZS5jX3N0cigpKSksIGtleS5zaXplKCkgKiA4KTsK
KyAgICBXeWNoZXByb29mUmVzdWx0IHJlc3VsdDsKKyAgICBBU1NFUlRfVFJVRShHZXRXeWNoZXBy
b29mUmVzdWx0KHQsICZyZXN1bHQpKTsKKworICAgIC8vIFd5Y2hlcHJvb2YgY29udGFpbnMgdGVz
dCB2ZWN0b3JzIHdpdGggZW1wdHkgbWVzc2FnZXMgdGhhdCBpdCBiZWxpZXZlcworICAgIC8vIHNo
b3VsZCBwYXNzLiBIb3dldmVyLCBib3RoIFJGQyA1NjQ5IGFuZCBTUCA4MDAtMzhGIHNlY3Rpb24g
NS4zLjEgc2F5IHRoYXQKKyAgICAvLyB0aGUgbWluaW11bSBsZW5ndGggaXMgb25lLiBUaGVyZWZv
cmUgd2UgY29uc2lkZXIgdGVzdCBjYXNlcyB3aXRoIGFuIGVtcHR5CisgICAgLy8gbWVzc2FnZSB0
byBiZSBpbnZhbGlkLgorICAgIGlmIChyZXN1bHQgIT0gV3ljaGVwcm9vZlJlc3VsdDo6a0ludmFs
aWQgJiYgIW1zZy5lbXB0eSgpKSB7CisgICAgICBBRVNfS0VZIGFlczsKKyAgICAgIEFTU0VSVF9F
USgwLCBBRVNfc2V0X2RlY3J5cHRfa2V5KGtleS5kYXRhKCksIDggKiBrZXkuc2l6ZSgpLCAmYWVz
KSk7CisgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBvdXQoY3Quc2l6ZSgpIC0gOCk7CisgICAg
ICBzaXplX3QgbGVuOworICAgICAgQVNTRVJUX1RSVUUoQUVTX3Vud3JhcF9rZXlfcGFkZGVkKCZh
ZXMsIG91dC5kYXRhKCksICZsZW4sIGN0LnNpemUoKSAtIDgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3QuZGF0YSgpLCBjdC5zaXplKCkpKTsKKyAgICAgIEVYUEVD
VF9FUShCeXRlcyhtc2cpLCBCeXRlcyhvdXQuZGF0YSgpLCBsZW4pKTsKKworICAgICAgb3V0LnJl
c2l6ZShtc2cuc2l6ZSgpICsgMTUpOworICAgICAgQVNTRVJUX0VRKDAsIEFFU19zZXRfZW5jcnlw
dF9rZXkoa2V5LmRhdGEoKSwgOCAqIGtleS5zaXplKCksICZhZXMpKTsKKyAgICAgIEFTU0VSVF9U
UlVFKEFFU193cmFwX2tleV9wYWRkZWQoJmFlcywgb3V0LmRhdGEoKSwgJmxlbiwgbXNnLnNpemUo
KSArIDE1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cuZGF0YSgp
LCBtc2cuc2l6ZSgpKSk7CisgICAgICBFWFBFQ1RfRVEoQnl0ZXMoY3QpLCBCeXRlcyhvdXQuZGF0
YSgpLCBsZW4pKTsKKyAgICB9IGVsc2UgeworICAgICAgQUVTX0tFWSBhZXM7CisgICAgICBBU1NF
UlRfRVEoMCwgQUVTX3NldF9kZWNyeXB0X2tleShrZXkuZGF0YSgpLCA4ICoga2V5LnNpemUoKSwg
JmFlcykpOworICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gb3V0KGN0LnNpemUoKSk7CisgICAg
ICBzaXplX3QgbGVuOworICAgICAgQVNTRVJUX0ZBTFNFKEFFU191bndyYXBfa2V5X3BhZGRlZCgm
YWVzLCBvdXQuZGF0YSgpLCAmbGVuLCBjdC5zaXplKCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGN0LmRhdGEoKSwgY3Quc2l6ZSgpKSk7CisgICAgfQorICB9KTsK
K30KKwogVEVTVChBRVNUZXN0LCBXcmFwQmFkTGVuZ3RocykgewogICB1aW50OF90IGtleVsxMjgv
OF0gPSB7MH07CiAgIEFFU19LRVkgYWVzOwpAQCAtMTg2LDMgKzI1OCwxMTUgQEAgVEVTVChBRVNU
ZXN0LCBXcmFwQmFkTGVuZ3RocykgewogICAgICAgICAgICAgICBBRVNfd3JhcF9rZXkoJmFlcywg
bnVsbHB0ciwgb3V0LmRhdGEoKSwgaW4uZGF0YSgpLCBpbi5zaXplKCkpKTsKICAgfQogfQorCitU
RVNUKEFFU1Rlc3QsIEludmFsaWRLZXlTaXplKSB7CisgIHN0YXRpYyBjb25zdCB1aW50OF90IGta
ZXJvWzhdID0gezB9OworICBBRVNfS0VZIGtleTsKKyAgRVhQRUNUX0xUKEFFU19zZXRfZW5jcnlw
dF9rZXkoa1plcm8sIDQyLCAma2V5KSwgMCk7CisgIEVYUEVDVF9MVChBRVNfc2V0X2RlY3J5cHRf
a2V5KGtaZXJvLCA0MiwgJmtleSksIDApOworfQorCisjaWYgZGVmaW5lZChTVVBQT1JUU19BQklf
VEVTVCkKK1RFU1QoQUVTVGVzdCwgQUJJKSB7CisgIGZvciAoaW50IGJpdHMgOiB7MTI4LCAxOTIs
IDI1Nn0pIHsKKyAgICBTQ09QRURfVFJBQ0UoYml0cyk7CisgICAgY29uc3QgdWludDhfdCBrS2V5
WzI1Ni84XSA9IHswfTsKKyAgICBBRVNfS0VZIGtleTsKKyAgICB1aW50OF90IGJsb2NrW0FFU19C
TE9DS19TSVpFXTsKKyAgICB1aW50OF90IGJ1ZltBRVNfQkxPQ0tfU0laRSAqIDY0XSA9IHswfTsK
KyAgICBzdGQ6OnZlY3RvcjxpbnQ+IGJsb2NrX2NvdW50czsKKyAgICBpZiAoYml0cyA9PSAxMjgp
IHsKKyAgICAgIGJsb2NrX2NvdW50cyA9IHswLCAxLCAyLCAzLCA0LCA4LCAxNiwgMzF9OworICAg
IH0gZWxzZSB7CisgICAgICAvLyBVbndpbmQgdGVzdHMgYXJlIHZlcnkgc2xvdy4gQXNzdW1lIHRo
YXQgdGhlIHZhcmlvdXMgaW5wdXQgc2l6ZXMgZG8gbm90CisgICAgICAvLyBkaWZmZXIgc2lnbmlm
aWNhbnRseSBieSByb3VuZCBjb3VudCBmb3IgQUJJIHB1cnBvc2VzLgorICAgICAgYmxvY2tfY291
bnRzID0gezAsIDEsIDh9OworICAgIH0KKworICAgIENIRUNLX0FCSShhZXNfbm9od19zZXRfZW5j
cnlwdF9rZXksIGtLZXksIGJpdHMsICZrZXkpOworICAgIENIRUNLX0FCSShhZXNfbm9od19lbmNy
eXB0LCBibG9jaywgYmxvY2ssICZrZXkpOworI2lmIGRlZmluZWQoQUVTX05PSFdfQ0JDKQorICAg
IGZvciAoc2l6ZV90IGJsb2NrcyA6IGJsb2NrX2NvdW50cykgeworICAgICAgU0NPUEVEX1RSQUNF
KGJsb2Nrcyk7CisgICAgICBDSEVDS19BQkkoYWVzX25vaHdfY2JjX2VuY3J5cHQsIGJ1ZiwgYnVm
LCBBRVNfQkxPQ0tfU0laRSAqIGJsb2NrcywgJmtleSwKKyAgICAgICAgICAgICAgICBibG9jaywg
QUVTX0VOQ1JZUFQpOworICAgIH0KKyNlbmRpZgorCisgICAgQ0hFQ0tfQUJJKGFlc19ub2h3X3Nl
dF9kZWNyeXB0X2tleSwga0tleSwgYml0cywgJmtleSk7CisgICAgQ0hFQ0tfQUJJKGFlc19ub2h3
X2RlY3J5cHQsIGJsb2NrLCBibG9jaywgJmtleSk7CisjaWYgZGVmaW5lZChBRVNfTk9IV19DQkMp
CisgICAgZm9yIChzaXplX3QgYmxvY2tzIDogYmxvY2tfY291bnRzKSB7CisgICAgICBTQ09QRURf
VFJBQ0UoYmxvY2tzKTsKKyAgICAgIENIRUNLX0FCSShhZXNfbm9od19jYmNfZW5jcnlwdCwgYnVm
LCBidWYsIEFFU19CTE9DS19TSVpFICogYmxvY2tzLCAma2V5LAorICAgICAgICAgICAgICAgIGJs
b2NrLCBBRVNfREVDUllQVCk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoYnNhZXNfY2FwYWJs
ZSgpKSB7CisgICAgICBhZXNfbm9od19zZXRfZW5jcnlwdF9rZXkoa0tleSwgYml0cywgJmtleSk7
CisgICAgICBmb3IgKHNpemVfdCBibG9ja3MgOiBibG9ja19jb3VudHMpIHsKKyAgICAgICAgU0NP
UEVEX1RSQUNFKGJsb2Nrcyk7CisgICAgICAgIGlmIChibG9ja3MgIT0gMCkgeworICAgICAgICAg
IENIRUNLX0FCSShic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrcywgYnVmLCBidWYsIGJsb2Nrcywg
JmtleSwgYmxvY2spOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGFlc19ub2h3X3NldF9k
ZWNyeXB0X2tleShrS2V5LCBiaXRzLCAma2V5KTsKKyAgICAgIGZvciAoc2l6ZV90IGJsb2NrcyA6
IGJsb2NrX2NvdW50cykgeworICAgICAgICBTQ09QRURfVFJBQ0UoYmxvY2tzKTsKKyAgICAgICAg
Q0hFQ0tfQUJJKGJzYWVzX2NiY19lbmNyeXB0LCBidWYsIGJ1ZiwgQUVTX0JMT0NLX1NJWkUgKiBi
bG9ja3MsICZrZXksCisgICAgICAgICAgICAgICAgICBibG9jaywgQUVTX0RFQ1JZUFQpOworICAg
ICAgfQorICAgIH0KKworICAgIGlmICh2cGFlc19jYXBhYmxlKCkpIHsKKyAgICAgIENIRUNLX0FC
SSh2cGFlc19zZXRfZW5jcnlwdF9rZXksIGtLZXksIGJpdHMsICZrZXkpOworICAgICAgQ0hFQ0tf
QUJJKHZwYWVzX2VuY3J5cHQsIGJsb2NrLCBibG9jaywgJmtleSk7CisgICAgICBmb3IgKHNpemVf
dCBibG9ja3MgOiBibG9ja19jb3VudHMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKGJsb2Nrcyk7
CisgICAgICAgIENIRUNLX0FCSSh2cGFlc19jYmNfZW5jcnlwdCwgYnVmLCBidWYsIEFFU19CTE9D
S19TSVpFICogYmxvY2tzLCAma2V5LAorICAgICAgICAgICAgICAgICAgYmxvY2ssIEFFU19FTkNS
WVBUKTsKKyNpZiBkZWZpbmVkKFZQQUVTX0NUUjMyKQorICAgICAgICBDSEVDS19BQkkodnBhZXNf
Y3RyMzJfZW5jcnlwdF9ibG9ja3MsIGJ1ZiwgYnVmLCBibG9ja3MsICZrZXksIGJsb2NrKTsKKyNl
bmRpZgorICAgICAgfQorCisgICAgICBDSEVDS19BQkkodnBhZXNfc2V0X2RlY3J5cHRfa2V5LCBr
S2V5LCBiaXRzLCAma2V5KTsKKyAgICAgIENIRUNLX0FCSSh2cGFlc19kZWNyeXB0LCBibG9jaywg
YmxvY2ssICZrZXkpOworICAgICAgZm9yIChzaXplX3QgYmxvY2tzIDogYmxvY2tfY291bnRzKSB7
CisgICAgICAgIFNDT1BFRF9UUkFDRShibG9ja3MpOworICAgICAgICBDSEVDS19BQkkodnBhZXNf
Y2JjX2VuY3J5cHQsIGJ1ZiwgYnVmLCBBRVNfQkxPQ0tfU0laRSAqIGJsb2NrcywgJmtleSwKKyAg
ICAgICAgICAgICAgICAgIGJsb2NrLCBBRVNfREVDUllQVCk7CisgICAgICB9CisgICAgfQorCisg
ICAgaWYgKGh3YWVzX2NhcGFibGUoKSkgeworICAgICAgQ0hFQ0tfQUJJKGFlc19od19zZXRfZW5j
cnlwdF9rZXksIGtLZXksIGJpdHMsICZrZXkpOworICAgICAgQ0hFQ0tfQUJJKGFlc19od19lbmNy
eXB0LCBibG9jaywgYmxvY2ssICZrZXkpOworICAgICAgZm9yIChzaXplX3QgYmxvY2tzIDogYmxv
Y2tfY291bnRzKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRShibG9ja3MpOworICAgICAgICBDSEVD
S19BQkkoYWVzX2h3X2NiY19lbmNyeXB0LCBidWYsIGJ1ZiwgQUVTX0JMT0NLX1NJWkUgKiBibG9j
a3MsICZrZXksCisgICAgICAgICAgICAgICAgICBibG9jaywgQUVTX0VOQ1JZUFQpOworICAgICAg
ICBDSEVDS19BQkkoYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tzLCBidWYsIGJ1ZiwgYmxvY2tz
LCAma2V5LCBibG9jayk7CisjaWYgZGVmaW5lZChIV0FFU19FQ0IpCisgICAgICAgIENIRUNLX0FC
SShhZXNfaHdfZWNiX2VuY3J5cHQsIGJ1ZiwgYnVmLCBBRVNfQkxPQ0tfU0laRSAqIGJsb2Nrcywg
JmtleSwKKyAgICAgICAgICAgICAgICAgIEFFU19FTkNSWVBUKTsKKyNlbmRpZgorICAgICAgfQor
CisgICAgICBDSEVDS19BQkkoYWVzX2h3X3NldF9kZWNyeXB0X2tleSwga0tleSwgYml0cywgJmtl
eSk7CisgICAgICBDSEVDS19BQkkoYWVzX2h3X2RlY3J5cHQsIGJsb2NrLCBibG9jaywgJmtleSk7
CisgICAgICBmb3IgKHNpemVfdCBibG9ja3MgOiBibG9ja19jb3VudHMpIHsKKyAgICAgICAgU0NP
UEVEX1RSQUNFKGJsb2Nrcyk7CisgICAgICAgIENIRUNLX0FCSShhZXNfaHdfY2JjX2VuY3J5cHQs
IGJ1ZiwgYnVmLCBBRVNfQkxPQ0tfU0laRSAqIGJsb2NrcywgJmtleSwKKyAgICAgICAgICAgICAg
ICAgIGJsb2NrLCBBRVNfREVDUllQVCk7CisjaWYgZGVmaW5lZChIV0FFU19FQ0IpCisgICAgICAg
IENIRUNLX0FCSShhZXNfaHdfZWNiX2VuY3J5cHQsIGJ1ZiwgYnVmLCBBRVNfQkxPQ0tfU0laRSAq
IGJsb2NrcywgJmtleSwKKyAgICAgICAgICAgICAgICAgIEFFU19ERUNSWVBUKTsKKyNlbmRpZgor
ICAgICAgfQorICAgIH0KKyAgfQorfQorI2VuZGlmICAvLyBTVVBQT1JUU19BQklfVEVTVApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hZXNfdGVzdHMudHh0IGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9maXBzbW9kdWxlL2Flcy9hZXNfdGVzdHMudHh0CmluZGV4IGQ0ZTRjNjFiNTA3NzRhZmE3
YjZjOGQ5OGVhN2E1YzcxZjZlZDgxYjUuLmVmYmUyOTQ5YzFjZDQzN2M5YTJkZTdhYjEwOTg1MDQw
NDJiZDA4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYWVzX3Rlc3Rz
LnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2Flc190ZXN0cy50eHQKQEAgLTQ4
LDMgKzQ4LDE2IEBAIE1vZGUgPSBLZXlXcmFwCiBLZXkgPSAwMDAxMDIwMzA0MDUwNjA3MDgwOTBh
MGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmCiBQbGFpbnRleHQgPSAw
MDExMjIzMzQ0NTU2Njc3ODg5OWFhYmJjY2RkZWVmZjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBj
MGQwZTBmCiBDaXBoZXJ0ZXh0ID0gMjhjOWY0MDRjNGI4MTBmNGNiY2NiMzVjZmI4N2Y4MjYzZjU3
ODZlMmQ4MGVkMzI2Y2JjN2YwZTcxYTk5ZjQzYmZiOTg4YjliN2EwMmRkMjEKKworCisjIFRlc3Qg
dmVjdG9ycyBmcm9tIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1NjQ5I3NlY3Rpb24t
NgorCitNb2RlID0gS2V5V3JhcFdpdGhQYWRkaW5nCitLZXkgPSA1ODQwZGY2ZTI5YjAyYWYxYWI0
OTNiNzA1YmYxNmVhMWFlODMzOGY0ZGNjMTc2YTgKK1BsYWludGV4dCA9IGMzN2I3ZTY0OTI1ODQz
NDBiZWQxMjIwNzgwODk0MTE1NTA2OGY3MzgKK0NpcGhlcnRleHQgPSAxMzhiZGVhYTliOGZhN2Zj
NjFmOTc3NDJlNzIyNDhlZTVhZTZhZTUzNjBkMWFlNmE1ZjU0ZjM3M2ZhNTQzYjZhCisKK01vZGUg
PSBLZXlXcmFwV2l0aFBhZGRpbmcKK0tleSA9IDU4NDBkZjZlMjliMDJhZjFhYjQ5M2I3MDViZjE2
ZWExYWU4MzM4ZjRkY2MxNzZhOAorUGxhaW50ZXh0ID0gNDY2ZjcyNTA2MTczNjkKK0NpcGhlcnRl
eHQgPSBhZmJlYjBmMDdkZmJmNTQxOTIwMGYyY2NiNTBiYjI0ZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzLTU4Ni5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVs
ZS9hZXMvYXNtL2Flcy01ODYucGwKaW5kZXggMjVmMTgxM2QyNGUzYzcyYThlZTFjNDY0ZjdiNWJi
NGJlNzQyMTBjNS4uOWIzNzNkZTIwNjQzMzUxMjczNGU1ZTQ0YTA1M2VkYWFlN2EyNWZkNyAxMDA3
NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzLTU4Ni5wbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9hZXMtNTg2LnBsCkBAIC0yOTk3LDQgKzI5OTcs
NCBAQCBzdWIgZGVja2V5KCkKIAogJmFzbV9maW5pc2goKTsKIAotY2xvc2UgU1RET1VUOworY2xv
c2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzLWFybXY0LnBsIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL2Flcy9hc20vYWVzLWFybXY0LnBsCmluZGV4IGY0YWU5MjJiN2NmZDc5ZjY2YjMxZmU4
MThmMTc2NzVhMDQ2NDc1MTkuLjllZWJiMjI0NDdiYTJhYzZkMDc2ODA2YTkyNWFiMDViYmVlOWIz
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL2Flcy1hcm12NC5w
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9hZXMtYXJtdjQucGwKQEAgLTEy
NDcsNCArMTI0Nyw0IEBAIHdoaWxlKDxTRUxGPikgewogY2xvc2UgU0VMRjsKIAogcHJpbnQgJGNv
ZGU7Ci1jbG9zZSBTVERPVVQ7CSMgZW5mb3JjZSBmbHVzaAorY2xvc2UgU1RET1VUIG9yIGRpZSAi
ZXJyb3IgY2xvc2luZyBTVERPVVQiOwkjIGVuZm9yY2UgZmx1c2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL2Flcy14ODZfNjQucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvYWVzL2FzbS9hZXMteDg2XzY0LnBsCmluZGV4IDU3YzRlMDg2YjA2MDI1MjE4ZDA3MjU2
ZDViNDExNGNmMDBkMGU1ZTMuLjViOTU3ODVlMGJjMzk4YTkzMzExNmM5MGQ5MzgwNDVmYzQ3Y2M1
MmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL2Flcy14ODZfNjQu
cGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzLXg4Nl82NC5wbApAQCAt
NTU0LDYgKzU1NCw3IEBAICRjb2RlLj08PF9fXzsKIC50eXBlCV94ODZfNjRfQUVTX2VuY3J5cHRf
Y29tcGFjdCxcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMTYKIF94ODZfNjRfQUVTX2VuY3J5cHRf
Y29tcGFjdDoKKy5jZmlfc3RhcnRwcm9jCiAJbGVhCTEyOCgkc2JveCksJGlucAkJCSMgc2l6ZSBv
cHRpbWl6YXRpb24KIAltb3YJMC0xMjgoJGlucCksJGFjYzEJCSMgcHJlZmV0Y2ggVGU0CiAJbW92
CTMyLTEyOCgkaW5wKSwkYWNjMgpAQCAtNTg3LDYgKzU4OCw3IEBAICRjb2RlLj08PF9fXzsKIAl4
b3IJOCgka2V5KSwkczIKIAl4b3IJMTIoJGtleSksJHMzCiAJLmJ5dGUJMHhmMywweGMzCQkJIyBy
ZXAgcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCV94ODZfNjRfQUVTX2VuY3J5cHRfY29tcGFjdCwu
LV94ODZfNjRfQUVTX2VuY3J5cHRfY29tcGFjdAogX19fCiAKQEAgLTExNTksNiArMTE2MSw3IEBA
ICRjb2RlLj08PF9fXzsKIC50eXBlCV94ODZfNjRfQUVTX2RlY3J5cHRfY29tcGFjdCxcQGFiaS1v
bW5pcG90ZW50CiAuYWxpZ24JMTYKIF94ODZfNjRfQUVTX2RlY3J5cHRfY29tcGFjdDoKKy5jZmlf
c3RhcnRwcm9jCiAJbGVhCTEyOCgkc2JveCksJGlucAkJCSMgc2l6ZSBvcHRpbWl6YXRpb24KIAlt
b3YJMC0xMjgoJGlucCksJGFjYzEJCSMgcHJlZmV0Y2ggVGQ0CiAJbW92CTMyLTEyOCgkaW5wKSwk
YWNjMgpAQCAtMTIwMSw2ICsxMjA0LDcgQEAgJGNvZGUuPTw8X19fOwogCXhvcgk4KCRrZXkpLCRz
MgogCXhvcgkxMigka2V5KSwkczMKIAkuYnl0ZQkweGYzLDB4YzMJCQkjIHJlcCByZXQKKy5jZmlf
ZW5kcHJvYwogLnNpemUJX3g4Nl82NF9BRVNfZGVjcnlwdF9jb21wYWN0LC4tX3g4Nl82NF9BRVNf
ZGVjcnlwdF9jb21wYWN0CiBfX18KIApAQCAtMTM2MCw2ICsxMzY0LDcgQEAgYWVzX25vaHdfc2V0
X2VuY3J5cHRfa2V5OgogLnR5cGUJX3g4Nl82NF9BRVNfc2V0X2VuY3J5cHRfa2V5LFxAYWJpLW9t
bmlwb3RlbnQKIC5hbGlnbgkxNgogX3g4Nl82NF9BRVNfc2V0X2VuY3J5cHRfa2V5OgorLmNmaV9z
dGFydHByb2MKIAltb3YJJWVzaSwlZWN4CQkJIyAlZWN4PWJpdHMKIAltb3YJJXJkaSwlcnNpCQkJ
IyAlcnNpPXVzZXJLZXkKIAltb3YJJXJkeCwlcmRpCQkJIyAlcmRpPWtleQpAQCAtMTU0MSw2ICsx
NTQ2LDcgQEAgJGNvZGUuPTw8X19fOwogCW1vdglcJC0xLCVyYXgKIC5MZXhpdDoKIAkuYnl0ZQkw
eGYzLDB4YzMJCQkjIHJlcCByZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX3g4Nl82NF9BRVNfc2V0
X2VuY3J5cHRfa2V5LC4tX3g4Nl82NF9BRVNfc2V0X2VuY3J5cHRfa2V5CiBfX18KIApAQCAtMTcy
MCw3ICsxNzI2LDkgQEAgYWVzX25vaHdfY2JjX2VuY3J5cHQ6CiAJY21wCVwkMCwlcmR4CSMgY2hl
Y2sgbGVuZ3RoCiAJamUJLkxjYmNfZXBpbG9ndWUKIAlwdXNoZnEKLS5jZmlfcHVzaAk0OQkJIyAl
cmZsYWdzCisjIFRoaXMgY291bGQgYmUgLmNmaV9wdXNoIDQ5LCBidXQgbGlidW53aW5kIGZhaWxz
IG9uIHJlZ2lzdGVycyBpdCBkb2VzIG5vdAorIyByZWNvZ25pemUuIFNlZSBodHRwczovL2J1Z3pp
bGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTIxNzA4Ny4KKy5jZmlfYWRqdXN0X2NmYV9v
ZmZzZXQJOAogCXB1c2gJJXJieAogLmNmaV9wdXNoCSVyYngKIAlwdXNoCSVyYnAKQEAgLTE3NDMs
NiArMTc1MSw3IEBAIGFlc19ub2h3X2NiY19lbmNyeXB0OgogCWNtcAlcJDAsJXI5CiAJY21vdmVx
CSVyMTAsJHNib3gKIAorLmNmaV9yZW1lbWJlcl9zdGF0ZQogCWxlYXEJT1BFTlNTTF9pYTMyY2Fw
X1AoJXJpcCksJXIxMAogCW1vdgkoJXIxMCksICVyMTBkCiAJY21wCVwkJHNwZWVkX2xpbWl0LCVy
ZHgKQEAgLTE5NzksNiArMTk4OCw3IEBAIGFlc19ub2h3X2NiY19lbmNyeXB0OgogIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBTTE9XIFJPVVRJTkUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIwogLmFsaWduCTE2CiAuTGNiY19zbG93X3Byb2xvZ3VlOgorLmNmaV9yZXN0b3JlX3N0YXRl
CiAJIyBhbGxvY2F0ZSBhbGlnbmVkIHN0YWNrIGZyYW1lLi4uCiAJbGVhCS04OCglcnNwKSwlcmJw
CiAJYW5kCVwkLTY0LCVyYnAKQEAgLTE5OTAsOCArMjAwMCwxMCBAQCBhZXNfbm9od19jYmNfZW5j
cnlwdDoKIAlzdWIJJXIxMCwlcmJwCiAKIAl4Y2hnCSVyc3AsJXJicAorLmNmaV9kZWZfY2ZhX3Jl
Z2lzdGVyCSVyYnAKIAkjYWRkCVwkOCwlcnNwCSMgcmVzZXJ2ZSBmb3IgcmV0dXJuIGFkZHJlc3Mh
CiAJbW92CSVyYnAsJF9yc3AJIyBzYXZlICVyc3AKKy5jZmlfY2ZhX2V4cHJlc3Npb24JJF9yc3As
ZGVyZWYsKzY0CiAuTGNiY19zbG93X2JvZHk6CiAJI21vdgklcmRpLCRfaW5wCSMgc2F2ZSBjb3B5
IG9mIGlucAogCSNtb3YJJXJzaSwkX291dAkjIHNhdmUgY29weSBvZiBvdXQKQEAgLTIxODAsNyAr
MjE5Miw5IEBAIGFlc19ub2h3X2NiY19lbmNyeXB0OgogLmNmaV9kZWZfY2ZhCSVyc3AsMTYKIC5M
Y2JjX3BvcGZxOgogCXBvcGZxCi0uY2ZpX3BvcAk0OQkJIyAlcmZsYWdzCisjIFRoaXMgY291bGQg
YmUgLmNmaV9wb3AgNDksIGJ1dCBsaWJ1bndpbmQgZmFpbHMgb24gcmVnaXN0ZXJzIGl0IGRvZXMg
bm90CisjIHJlY29nbml6ZS4gU2VlIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1
Zy5jZ2k/aWQ9MjE3MDg3LgorLmNmaV9hZGp1c3RfY2ZhX29mZnNldAktOAogLkxjYmNfZXBpbG9n
dWU6CiAJcmV0CiAuY2ZpX2VuZHByb2MKQEAgLTI4OTIsNCArMjkwNiw0IEBAICRjb2RlID1+IHMv
XGAoW15cYF0qKVxgL2V2YWwoJDEpL2dlbTsKIAogcHJpbnQgJGNvZGU7CiAKLWNsb3NlIFNURE9V
VDsKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL2Flc25pLXg4Ni5wbCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vZmlwc21vZHVsZS9hZXMvYXNtL2Flc25pLXg4Ni5wbAppbmRleCBhZmYyYjQwODRjN2U2NDFm
NGY4YjA1NjFmMjczMzFlZWI4ZmU1NmRhLi5kNTcxMjdhYmFhNTRiMjgxMDVmZTVhYTZiMDA0YzYx
ZGJmNjIwMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9hZXNu
aS14ODYucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzbmkteDg2LnBs
CkBAIC04NCw2ICs4NCw5IEBAIG9wZW4gT1VULCI+JG91dHB1dCI7CiAmYXNtX2luaXQoJEFSR1Zb
MF0pOwogCiAmZXh0ZXJuYWxfbGFiZWwoIk9QRU5TU0xfaWEzMmNhcF9QIik7CismcHJlcHJvY2Vz
c29yX2lmbmRlZigiTkRFQlVHIikKKyZleHRlcm5hbF9sYWJlbCgiQk9SSU5HU1NMX2Z1bmN0aW9u
X2hpdCIpOworJnByZXByb2Nlc3Nvcl9lbmRpZigpOwogJnN0YXRpY19sYWJlbCgia2V5X2NvbnN0
Iik7CiAKIGlmICgkUFJFRklYIGVxICRBRVNOSV9QUkVGSVgpCXsgJG1vdmVrZXk9XCZtb3Z1cHM7
IH0KQEAgLTE5Myw2ICsxOTYsOCBAQCBzdWIgYWVzbmlfZ2VuZXJhdGUxCSMgZnVsbHkgdW5yb2xs
ZWQgbG9vcAogIyB2b2lkICRQUkVGSVhfZW5jcnlwdCAoY29uc3Qgdm9pZCAqaW5wLHZvaWQgKm91
dCxjb25zdCBBRVNfS0VZICprZXkpOwogJmFlc25pX2dlbmVyYXRlMSgiZW5jIikgaWYgKCEkaW5s
aW5lKTsKICZmdW5jdGlvbl9iZWdpbl9CKCIke1BSRUZJWH1fZW5jcnlwdCIpOworCSZyZWNvcmRf
ZnVuY3Rpb25faGl0KDEpOworCiAJJm1vdgkoImVheCIsJndwYXJhbSgwKSk7CiAJJm1vdgkoJGtl
eSwmd3BhcmFtKDIpKTsKIAkmbW92dXBzCSgkaW5vdXQwLCZRV1AoMCwiZWF4IikpOwpAQCAtODc1
LDYgKzg4MCw4IEBAIGlmICgkUFJFRklYIGVxICRBRVNOSV9QUkVGSVgpIHsKICMJODAJc2F2ZWQg
JWVzcAogCiAmZnVuY3Rpb25fYmVnaW4oIiR7UFJFRklYfV9jdHIzMl9lbmNyeXB0X2Jsb2NrcyIp
OworCSZyZWNvcmRfZnVuY3Rpb25faGl0KDApOworCiAJJm1vdgkoJGlucCwmd3BhcmFtKDApKTsK
IAkmbW92CSgkb3V0LCZ3cGFyYW0oMSkpOwogCSZtb3YJKCRsZW4sJndwYXJhbSgyKSk7CkBAIC0y
NDgzLDYgKzI0OTAsOCBAQCBpZiAoJFBSRUZJWCBlcSAkQUVTTklfUFJFRklYKSB7CiAjIGludCAk
UFJFRklYX3NldF9lbmNyeXB0X2tleSAoY29uc3QgdW5zaWduZWQgY2hhciAqdXNlcktleSwgaW50
IGJpdHMsCiAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUVTX0tFWSAqa2V5KQogJmZ1
bmN0aW9uX2JlZ2luX0IoIiR7UFJFRklYfV9zZXRfZW5jcnlwdF9rZXkiKTsKKwkmcmVjb3JkX2Z1
bmN0aW9uX2hpdCgzKTsKKwogCSZtb3YJKCJlYXgiLCZ3cGFyYW0oMCkpOwogCSZtb3YJKCRyb3Vu
ZHMsJndwYXJhbSgxKSk7CiAJJm1vdgkoJGtleSwmd3BhcmFtKDIpKTsKQEAgLTI1NDIsNCArMjU1
MSw0IEBAIGlmICgkUFJFRklYIGVxICRBRVNOSV9QUkVGSVgpIHsKIAogJmFzbV9maW5pc2goKTsK
IAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERP
VVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzbmkteDg2
XzY0LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzbmkteDg2XzY0LnBsCmlu
ZGV4IDY1NDUyNzQyMjUzZWE2YzVmZjA5ODk2NGM5MWMyMGZhMGJhMTg3YWUuLjE1ZjY4MDU5ZjI0
MjhhMGQzN2RhYmI0NmQyY2E3OTIwZmJjZjUyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlw
c21vZHVsZS9hZXMvYXNtL2Flc25pLXg4Nl82NC5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvYWVzL2FzbS9hZXNuaS14ODZfNjQucGwKQEAgLTI3NCw2ICsyNzQsMTMgQEAgJGNvZGUuPTw8
X19fOwogLnR5cGUJJHtQUkVGSVh9X2VuY3J5cHQsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTE2
CiAke1BSRUZJWH1fZW5jcnlwdDoKKy5jZmlfc3RhcnRwcm9jCisjaWZuZGVmIE5ERUJVRworI2lm
bmRlZiBCT1JJTkdTU0xfRklQUworLmV4dGVybglCT1JJTkdTU0xfZnVuY3Rpb25faGl0CisJbW92
YiBcJDEsQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCsxKCVyaXApCisjZW5kaWYKKyNlbmRpZgogCW1v
dnVwcwkoJGlucCksJGlub3V0MAkJIyBsb2FkIGlucHV0CiAJbW92CTI0MCgka2V5KSwkcm91bmRz
CSMga2V5LT5yb3VuZHMKIF9fXwpAQCAtMjg0LDEyICsyOTEsMTQgQEAgJGNvZGUuPTw8X19fOwog
CW1vdnVwcwkkaW5vdXQwLCgkb3V0KQkJIyBvdXRwdXQKIAkgcHhvcgkkaW5vdXQwLCRpbm91dDAK
IAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJJHtQUkVGSVh9X2VuY3J5cHQsLi0ke1BSRUZJWH1f
ZW5jcnlwdAogCiAuZ2xvYmwJJHtQUkVGSVh9X2RlY3J5cHQKIC50eXBlCSR7UFJFRklYfV9kZWNy
eXB0LFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkxNgogJHtQUkVGSVh9X2RlY3J5cHQ6CisuY2Zp
X3N0YXJ0cHJvYwogCW1vdnVwcwkoJGlucCksJGlub3V0MAkJIyBsb2FkIGlucHV0CiAJbW92CTI0
MCgka2V5KSwkcm91bmRzCSMga2V5LT5yb3VuZHMKIF9fXwpAQCAtMzAwLDYgKzMwOSw3IEBAICRj
b2RlLj08PF9fXzsKIAltb3Z1cHMJJGlub3V0MCwoJG91dCkJCSMgb3V0cHV0CiAJIHB4b3IJJGlu
b3V0MCwkaW5vdXQwCiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCSR7UFJFRklYfV9kZWNyeXB0
LCAuLSR7UFJFRklYfV9kZWNyeXB0CiBfX18KIH0KQEAgLTMyNSw2ICszMzUsNyBAQCAkY29kZS49
PDxfX187CiAudHlwZQlfYWVzbmlfJHtkaXJ9cnlwdDIsXEBhYmktb21uaXBvdGVudAogLmFsaWdu
CTE2CiBfYWVzbmlfJHtkaXJ9cnlwdDI6CisuY2ZpX3N0YXJ0cHJvYwogCSRtb3ZrZXkJKCRrZXkp
LCRybmRrZXkwCiAJc2hsCVwkNCwkcm91bmRzCiAJJG1vdmtleQkxNigka2V5KSwkcm5ka2V5MQpA
QCAtMzUwLDYgKzM2MSw3IEBAIF9hZXNuaV8ke2Rpcn1yeXB0MjoKIAlhZXMke2Rpcn1sYXN0CSRy
bmRrZXkwLCRpbm91dDAKIAlhZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDEKIAlyZXQKKy5j
ZmlfZW5kcHJvYwogLnNpemUJX2Flc25pXyR7ZGlyfXJ5cHQyLC4tX2Flc25pXyR7ZGlyfXJ5cHQy
CiBfX18KIH0KQEAgLTM2MSw2ICszNzMsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQlfYWVzbmlf
JHtkaXJ9cnlwdDMsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTE2CiBfYWVzbmlfJHtkaXJ9cnlw
dDM6CisuY2ZpX3N0YXJ0cHJvYwogCSRtb3ZrZXkJKCRrZXkpLCRybmRrZXkwCiAJc2hsCVwkNCwk
cm91bmRzCiAJJG1vdmtleQkxNigka2V5KSwkcm5ka2V5MQpAQCAtMzkxLDYgKzQwNCw3IEBAIF9h
ZXNuaV8ke2Rpcn1yeXB0MzoKIAlhZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDEKIAlhZXMk
e2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDIKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX2Fl
c25pXyR7ZGlyfXJ5cHQzLC4tX2Flc25pXyR7ZGlyfXJ5cHQzCiBfX18KIH0KQEAgLTQwNiw2ICs0
MjAsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQlfYWVzbmlfJHtkaXJ9cnlwdDQsXEBhYmktb21u
aXBvdGVudAogLmFsaWduCTE2CiBfYWVzbmlfJHtkaXJ9cnlwdDQ6CisuY2ZpX3N0YXJ0cHJvYwog
CSRtb3ZrZXkJKCRrZXkpLCRybmRrZXkwCiAJc2hsCVwkNCwkcm91bmRzCiAJJG1vdmtleQkxNigk
a2V5KSwkcm5ka2V5MQpAQCAtNDQyLDYgKzQ1Nyw3IEBAIF9hZXNuaV8ke2Rpcn1yeXB0NDoKIAlh
ZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDIKIAlhZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRp
bm91dDMKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX2Flc25pXyR7ZGlyfXJ5cHQ0LC4tX2Fl
c25pXyR7ZGlyfXJ5cHQ0CiBfX18KIH0KQEAgLTQ1Myw2ICs0NjksNyBAQCAkY29kZS49PDxfX187
CiAudHlwZQlfYWVzbmlfJHtkaXJ9cnlwdDYsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTE2CiBf
YWVzbmlfJHtkaXJ9cnlwdDY6CisuY2ZpX3N0YXJ0cHJvYwogCSRtb3ZrZXkJCSgka2V5KSwkcm5k
a2V5MAogCXNobAkJXCQ0LCRyb3VuZHMKIAkkbW92a2V5CQkxNigka2V5KSwkcm5ka2V5MQpAQCAt
NTAzLDYgKzUyMCw3IEBAIF9hZXNuaV8ke2Rpcn1yeXB0NjoKIAlhZXMke2Rpcn1sYXN0CSRybmRr
ZXkwLCRpbm91dDQKIAlhZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDUKIAlyZXQKKy5jZmlf
ZW5kcHJvYwogLnNpemUJX2Flc25pXyR7ZGlyfXJ5cHQ2LC4tX2Flc25pXyR7ZGlyfXJ5cHQ2CiBf
X18KIH0KQEAgLTUxNCw2ICs1MzIsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQlfYWVzbmlfJHtk
aXJ9cnlwdDgsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTE2CiBfYWVzbmlfJHtkaXJ9cnlwdDg6
CisuY2ZpX3N0YXJ0cHJvYwogCSRtb3ZrZXkJCSgka2V5KSwkcm5ka2V5MAogCXNobAkJXCQ0LCRy
b3VuZHMKIAkkbW92a2V5CQkxNigka2V5KSwkcm5ka2V5MQpAQCAtNTc0LDYgKzU5Myw3IEBAIF9h
ZXNuaV8ke2Rpcn1yeXB0ODoKIAlhZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDYKIAlhZXMk
e2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDcKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX2Fl
c25pXyR7ZGlyfXJ5cHQ4LC4tX2Flc25pXyR7ZGlyfXJ5cHQ4CiBfX18KIH0KQEAgLTU5OCw2ICs2
MTgsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQkke1BSRUZJWH1fZWNiX2VuY3J5cHQsXEBmdW5j
dGlvbiw1CiAuYWxpZ24JMTYKICR7UFJFRklYfV9lY2JfZW5jcnlwdDoKKy5jZmlfc3RhcnRwcm9j
CiBfX18KICRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKIAlsZWEJLTB4NTgoJXJzcCksJXJzcApA
QCAtOTQzLDYgKzk2NCw3IEBAICRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKIF9fXwogJGNvZGUu
PTw8X19fOwogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQkke1BSRUZJWH1fZWNiX2VuY3J5cHQs
Li0ke1BSRUZJWH1fZWNiX2VuY3J5cHQKIF9fXwogDApAQCAtOTU2LDcgKzk3OCw3IEBAIF9fXwog
IyBkb2VzIG5vdCB1cGRhdGUgKml2ZWMhIE5vciBkb2VzIGl0IGZpbmFsaXplIENNQUMgdmFsdWUK
ICMgKHNlZSBlbmdpbmUvZW5nX2Flc25pLmMgZm9yIGRldGFpbHMpCiAjCi17CitpZiAoMCkgeyAg
IyBPbWl0IHRoZXNlIGZ1bmN0aW9ucyBpbiBCb3JpbmdTU0wKIG15ICRjbWFjPSIlcjkiOwkjIDZ0
aCBhcmd1bWVudAogCiBteSAkaW5jcmVtZW50PSIleG1tOSI7CkBAIC0xMTgzLDYgKzEyMDUsMTEg
QEAgJGNvZGUuPTw8X19fOwogLmFsaWduCTE2CiAke1BSRUZJWH1fY3RyMzJfZW5jcnlwdF9ibG9j
a3M6CiAuY2ZpX3N0YXJ0cHJvYworI2lmbmRlZiBOREVCVUcKKyNpZm5kZWYgQk9SSU5HU1NMX0ZJ
UFMKKwltb3ZiIFwkMSxCT1JJTkdTU0xfZnVuY3Rpb25faGl0KCVyaXApCisjZW5kaWYKKyNlbmRp
ZgogCWNtcAlcJDEsJGxlbgogCWpuZQkuTGN0cjMyX2J1bGsKIApAQCAtMTc0Myw3ICsxNzcwLDcg
QEAgX19fCiAjCWNvbnN0IEFFU19LRVkgKmtleTEsIGNvbnN0IEFFU19LRVkgKmtleTIKICMJY29u
c3QgdW5zaWduZWQgY2hhciBpdlsxNl0pOwogIwoteworaWYgKDApIHsgICMgT21pdCB0aGVzZSBm
dW5jdGlvbnMgaW4gQm9yaW5nU1NMCiBteSBAdHdlYWs9bWFwKCIleG1tJF8iLCgxMC4uMTUpKTsK
IG15ICgkdHdtYXNrLCR0d3JlcywkdHd0bXApPSgiJXhtbTgiLCIleG1tOSIsQHR3ZWFrWzRdKTsK
IG15ICgka2V5MiwkaXZwLCRsZW5fKT0oIiVyOCIsIiVyOSIsIiVyOSIpOwpAQCAtMjc0OSw3ICsy
Nzc2LDcgQEAgX19fCiAjCXVuc2lnbmVkIGNoYXIgb2Zmc2V0X2lbMTZdLCBjb25zdCB1bnNpZ25l
ZCBjaGFyIExfW11bMTZdLAogIwl1bnNpZ25lZCBjaGFyIGNoZWNrc3VtWzE2XSk7CiAjCi17Citp
ZiAoMCkgeyAgIyBPbWl0IHRoZXNlIGZ1bmN0aW9ucyBpbiBCb3JpbmdTU0wKIG15IEBvZmZzZXQ9
bWFwKCIleG1tJF8iLCgxMC4uMTUpKTsKIG15ICgkY2hlY2tzdW0sJHJuZGtleTBsKT0oIiV4bW04
IiwiJXhtbTkiKTsKIG15ICgkYmxvY2tfbnVtLCRvZmZzZXRfcCk9KCIlcjgiLCIlcjkiKTsJCSMg
NXRoIGFuZCA2dGggYXJndW1lbnRzCkBAIC00MjM2LDcgKzQyNjMsNyBAQCAkY29kZS49PDxfX187
CiAuY2ZpX2VuZHByb2MKIC5zaXplCSR7UFJFRklYfV9jYmNfZW5jcnlwdCwuLSR7UFJFRklYfV9j
YmNfZW5jcnlwdAogX19fCi19IAwKK30MCiAjIGludCAke1BSRUZJWH1fc2V0X2RlY3J5cHRfa2V5
KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucCwKICMJCQkJaW50IGJpdHMsIEFFU19LRVkgKmtleSkK
ICMKQEAgLTQzMjcsNiArNDM1NCwxMSBAQCAkY29kZS49PDxfX187CiAke1BSRUZJWH1fc2V0X2Vu
Y3J5cHRfa2V5OgogX19hZXNuaV9zZXRfZW5jcnlwdF9rZXk6CiAuY2ZpX3N0YXJ0cHJvYworI2lm
bmRlZiBOREVCVUcKKyNpZm5kZWYgQk9SSU5HU1NMX0ZJUFMKKwltb3ZiIFwkMSxCT1JJTkdTU0xf
ZnVuY3Rpb25faGl0KzMoJXJpcCkKKyNlbmRpZgorI2VuZGlmCiAJLmJ5dGUJMHg0OCwweDgzLDB4
RUMsMHgwOAkjIHN1YiByc3AsOAogLmNmaV9hZGp1c3RfY2ZhX29mZnNldAk4CiAJbW92CVwkLTEs
JXJheApAQCAtNDgyMiw2ICs0ODU0LDkgQEAgY3RyX3h0c19zZV9oYW5kbGVyOgogCWptcAkuTGNv
bW1vbl9zZWhfdGFpbAogLnNpemUJY3RyX3h0c19zZV9oYW5kbGVyLC4tY3RyX3h0c19zZV9oYW5k
bGVyCiAKK19fXworIyBCb3JpbmdTU0wgb21pdHMgdGhlIE9DQiBmdW5jdGlvbnMuCiskY29kZS49
PDxfX18gaWYgKDApOwogLnR5cGUJb2NiX3NlX2hhbmRsZXIsXEBhYmktb21uaXBvdGVudAogLmFs
aWduCTE2CiBvY2Jfc2VfaGFuZGxlcjoKQEAgLTQ5NzMsMzMgKzUwMDgsOSBAQCAkY29kZS49PDxf
X18gaWYgKCRQUkVGSVggZXEgImFlc19odyIpOwogCS5ydmEJLkxTRUhfZW5kXyR7UFJFRklYfV9l
Y2JfZW5jcnlwdAogCS5ydmEJLkxTRUhfaW5mb19lY2IKIAotCS5ydmEJLkxTRUhfYmVnaW5fJHtQ
UkVGSVh9X2NjbTY0X2VuY3J5cHRfYmxvY2tzCi0JLnJ2YQkuTFNFSF9lbmRfJHtQUkVGSVh9X2Nj
bTY0X2VuY3J5cHRfYmxvY2tzCi0JLnJ2YQkuTFNFSF9pbmZvX2NjbTY0X2VuYwotCi0JLnJ2YQku
TFNFSF9iZWdpbl8ke1BSRUZJWH1fY2NtNjRfZGVjcnlwdF9ibG9ja3MKLQkucnZhCS5MU0VIX2Vu
ZF8ke1BSRUZJWH1fY2NtNjRfZGVjcnlwdF9ibG9ja3MKLQkucnZhCS5MU0VIX2luZm9fY2NtNjRf
ZGVjCi0KIAkucnZhCS5MU0VIX2JlZ2luXyR7UFJFRklYfV9jdHIzMl9lbmNyeXB0X2Jsb2Nrcwog
CS5ydmEJLkxTRUhfZW5kXyR7UFJFRklYfV9jdHIzMl9lbmNyeXB0X2Jsb2NrcwogCS5ydmEJLkxT
RUhfaW5mb19jdHIzMgotCi0JLnJ2YQkuTFNFSF9iZWdpbl8ke1BSRUZJWH1feHRzX2VuY3J5cHQK
LQkucnZhCS5MU0VIX2VuZF8ke1BSRUZJWH1feHRzX2VuY3J5cHQKLQkucnZhCS5MU0VIX2luZm9f
eHRzX2VuYwotCi0JLnJ2YQkuTFNFSF9iZWdpbl8ke1BSRUZJWH1feHRzX2RlY3J5cHQKLQkucnZh
CS5MU0VIX2VuZF8ke1BSRUZJWH1feHRzX2RlY3J5cHQKLQkucnZhCS5MU0VIX2luZm9feHRzX2Rl
YwotCi0JLnJ2YQkuTFNFSF9iZWdpbl8ke1BSRUZJWH1fb2NiX2VuY3J5cHQKLQkucnZhCS5MU0VI
X2VuZF8ke1BSRUZJWH1fb2NiX2VuY3J5cHQKLQkucnZhCS5MU0VIX2luZm9fb2NiX2VuYwotCi0J
LnJ2YQkuTFNFSF9iZWdpbl8ke1BSRUZJWH1fb2NiX2RlY3J5cHQKLQkucnZhCS5MU0VIX2VuZF8k
e1BSRUZJWH1fb2NiX2RlY3J5cHQKLQkucnZhCS5MU0VIX2luZm9fb2NiX2RlYwogX19fCiAkY29k
ZS49PDxfX187CiAJLnJ2YQkuTFNFSF9iZWdpbl8ke1BSRUZJWH1fY2JjX2VuY3J5cHQKQEAgLTUw
MjEsMzggKzUwMzIsMTAgQEAgJGNvZGUuPTw8X19fIGlmICgkUFJFRklYIGVxICJhZXNfaHciKTsK
IAkuYnl0ZQk5LDAsMCwwCiAJLnJ2YQllY2JfY2NtNjRfc2VfaGFuZGxlcgogCS5ydmEJLkxlY2Jf
ZW5jX2JvZHksLkxlY2JfZW5jX3JldAkJIyBIYW5kbGVyRGF0YVtdCi0uTFNFSF9pbmZvX2NjbTY0
X2VuYzoKLQkuYnl0ZQk5LDAsMCwwCi0JLnJ2YQllY2JfY2NtNjRfc2VfaGFuZGxlcgotCS5ydmEJ
LkxjY202NF9lbmNfYm9keSwuTGNjbTY0X2VuY19yZXQJIyBIYW5kbGVyRGF0YVtdCi0uTFNFSF9p
bmZvX2NjbTY0X2RlYzoKLQkuYnl0ZQk5LDAsMCwwCi0JLnJ2YQllY2JfY2NtNjRfc2VfaGFuZGxl
cgotCS5ydmEJLkxjY202NF9kZWNfYm9keSwuTGNjbTY0X2RlY19yZXQJIyBIYW5kbGVyRGF0YVtd
CiAuTFNFSF9pbmZvX2N0cjMyOgogCS5ieXRlCTksMCwwLDAKIAkucnZhCWN0cl94dHNfc2VfaGFu
ZGxlcgogCS5ydmEJLkxjdHIzMl9ib2R5LC5MY3RyMzJfZXBpbG9ndWUJCSMgSGFuZGxlckRhdGFb
XQotLkxTRUhfaW5mb194dHNfZW5jOgotCS5ieXRlCTksMCwwLDAKLQkucnZhCWN0cl94dHNfc2Vf
aGFuZGxlcgotCS5ydmEJLkx4dHNfZW5jX2JvZHksLkx4dHNfZW5jX2VwaWxvZ3VlCSMgSGFuZGxl
ckRhdGFbXQotLkxTRUhfaW5mb194dHNfZGVjOgotCS5ieXRlCTksMCwwLDAKLQkucnZhCWN0cl94
dHNfc2VfaGFuZGxlcgotCS5ydmEJLkx4dHNfZGVjX2JvZHksLkx4dHNfZGVjX2VwaWxvZ3VlCSMg
SGFuZGxlckRhdGFbXQotLkxTRUhfaW5mb19vY2JfZW5jOgotCS5ieXRlCTksMCwwLDAKLQkucnZh
CW9jYl9zZV9oYW5kbGVyCi0JLnJ2YQkuTG9jYl9lbmNfYm9keSwuTG9jYl9lbmNfZXBpbG9ndWUJ
IyBIYW5kbGVyRGF0YVtdCi0JLnJ2YQkuTG9jYl9lbmNfcG9wCi0JLmxvbmcJMAotLkxTRUhfaW5m
b19vY2JfZGVjOgotCS5ieXRlCTksMCwwLDAKLQkucnZhCW9jYl9zZV9oYW5kbGVyCi0JLnJ2YQku
TG9jYl9kZWNfYm9keSwuTG9jYl9kZWNfZXBpbG9ndWUJIyBIYW5kbGVyRGF0YVtdCi0JLnJ2YQku
TG9jYl9kZWNfcG9wCi0JLmxvbmcJMAogX19fCiAkY29kZS49PDxfX187CiAuTFNFSF9pbmZvX2Ni
YzoKQEAgLTUxMjUsNCArNTEwOCw0IEBAICRjb2RlID1+IHMvXGJtb3ZiZVxzKyVlYXgsXHMqKFsw
LTldKylcKCVyc3BcKS9tb3ZiZSgkMSkvZ2VtOwogCiBwcmludCAkY29kZTsKIAotY2xvc2UgU1RE
T1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzcDgtcHBjLnBsIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzcDgtcHBjLnBsCmluZGV4IDIwMWRhMWE0ZmI0NDdl
YjM3Y2UwNzg1MmU5NzU5Y2JiNDc1ZTY3YjguLjYyZDQ4NDJiOTFiMjQxZTdkZWViMmM0ZDkzNmFk
N2I3NDE5YTQ3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL2Fl
c3A4LXBwYy5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9hZXNwOC1wcGMu
cGwKQEAgLTEsNSArMSw1IEBACiAjISAvdXNyL2Jpbi9lbnYgcGVybAotIyBDb3B5cmlnaHQgMjAx
NC0yMDE2IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IDIwMTQtMjAxOCBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAjCiAjIExpY2Vuc2VkIHVuZGVyIHRoZSBPcGVuU1NMIGxpY2Vuc2Ug
KHRoZSAiTGljZW5zZSIpLiAgWW91IG1heSBub3QgdXNlCiAjIHRoaXMgZmlsZSBleGNlcHQgaW4g
Y29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IGNhbiBvYnRhaW4gYSBjb3B5CkBAIC00
MCw2ICs0MCw4IEBACiAjCQlDQkMgZW4tL2RlY3J5cHQJQ1RSCVhUUwogIyBQT1dFUjhbbGVdCTMu
OTYvMC43MgkwLjc0CTEuMQogIyBQT1dFUjhbYmVdCTMuNzUvMC42NQkwLjY2CTEuMAorIyBQT1dF
UjlbbGVdCTQuMDIvMC44NgkwLjg0CTEuMDUKKyMgUE9XRVI5W2JlXQkzLjk5LzAuNzgJMC43OQkw
Ljk3CiAKICRmbGF2b3VyID0gc2hpZnQ7CiAKQEAgLTE4MjcsNyArMTgyOSw3IEBAIExjdHIzMl9l
bmM4eF90aHJlZToKIAlzdHZ4X3UJCSRvdXQxLCR4MTAsJG91dAogCXN0dnhfdQkJJG91dDIsJHgy
MCwkb3V0CiAJYWRkaQkJJG91dCwkb3V0LDB4MzAKLQliCQlMY2JjX2RlYzh4X2RvbmUKKwliCQlM
Y3RyMzJfZW5jOHhfZG9uZQogCiAuYWxpZ24JNQogTGN0cjMyX2VuYzh4X3R3bzoKQEAgLTE4Mzks
NyArMTg0MSw3IEBAIExjdHIzMl9lbmM4eF90d286CiAJc3R2eF91CQkkb3V0MCwkeDAwLCRvdXQK
IAlzdHZ4X3UJCSRvdXQxLCR4MTAsJG91dAogCWFkZGkJCSRvdXQsJG91dCwweDIwCi0JYgkJTGNi
Y19kZWM4eF9kb25lCisJYgkJTGN0cjMyX2VuYzh4X2RvbmUKIAogLmFsaWduCTUKIExjdHIzMl9l
bmM4eF9vbmU6CkBAIC0zODAyLDQgKzM4MDQsNCBAQCBmb3JlYWNoKHNwbGl0KCJcbiIsJGNvZGUp
KSB7CiAgICAgICAgIHByaW50ICRfLCJcbiI7CiB9CiAKLWNsb3NlIFNURE9VVDsKK2Nsb3NlIFNU
RE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vZmlwc21vZHVsZS9hZXMvYXNtL2Flc3Y4LWFybXgucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvYWVzL2FzbS9hZXN2OC1hcm14LnBsCmluZGV4IDEzZjg2YTBiNjk0MzUyNjU4MjNkN2E2Nzk1
ZmE4YmQxMzQ2ODdmMDYuLjE4N2MyMjE5YzgyM2M0NzliNWUxNGNiYzAwNTRjOTIyZDJmOTFjMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL2Flc3Y4LWFybXgucGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYWVzdjgtYXJteC5wbApAQCAtMTAx
OCw0ICsxMDE4LDQgQEAgaWYgKCRmbGF2b3VyID1+IC82NC8pIHsJCQkjIyMjIyMjIyA2NC1iaXQg
Y29kZQogICAgIH0KIH0KIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJy
b3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Fl
cy9hc20vYnNhZXMtYXJtdjcucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9ic2Fl
cy1hcm12Ny5wbAppbmRleCA3NzVkYmQ1ZWUxYTgyNzliM2MwOTAwMTg2YmM5ZGE3MWIzYzI1OWI3
Li45MzJiM2I2ODMyMjI3MmMzYWQyYzI4ZWE0YjdiNmE3YWE5MzkwYzgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9ic2Flcy1hcm12Ny5wbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9ic2Flcy1hcm12Ny5wbApAQCAtMTExMywyMyArMTExMywx
MiBAQCBteSAoJGlucCwkb3V0LCRsZW4sJGtleSwgJGl2cCwkZnAsJHJvdW5kcyk9bWFwKCJyJF8i
LCgwLi4zLDguLjEwKSk7CiBteSAoJGtleXNjaGVkKT0oInNwIik7CiAKICRjb2RlLj08PF9fXzsK
LS5leHRlcm4gQUVTX2NiY19lbmNyeXB0Ci0uZXh0ZXJuIEFFU19kZWNyeXB0Ci0KIC5nbG9iYWwJ
YnNhZXNfY2JjX2VuY3J5cHQKIC50eXBlCWJzYWVzX2NiY19lbmNyeXB0LCVmdW5jdGlvbgogLmFs
aWduCTUKIGJzYWVzX2NiY19lbmNyeXB0OgotI2lmbmRlZglfX0tFUk5FTF9fCi0JY21wCSRsZW4s
ICMxMjgKLSNpZm5kZWYJX190aHVtYl9fCi0JYmxvCUFFU19jYmNfZW5jcnlwdAotI2Vsc2UKLQli
aHMJMWYKLQliCUFFU19jYmNfZW5jcnlwdAotMToKLSNlbmRpZgotI2VuZGlmCisJQCBJbiBPcGVu
U1NMLCB0aGlzIGZ1bmN0aW9uIGhhZCBhIGZhbGxiYWNrIHRvIGFlc19ub2h3X2NiY19lbmNyeXB0
IGZvcgorCUAgc2hvcnQgaW5wdXRzLiBXZSBwYXRjaCB0aGlzIG91dCwgdXNpbmcgYnNhZXMgZm9y
IGFsbCBpbnB1dCBzaXplcy4KIAogCUAgaXQgaXMgdXAgdG8gdGhlIGNhbGxlciB0byBtYWtlIHN1
cmUgd2UgYXJlIGNhbGxlZCB3aXRoIGVuYyA9PSAwCiAKQEAgLTEyMjcsMTAgKzEyMTYsNyBAQCBi
c2Flc19jYmNfZW5jcnlwdDoKIAlhZGRzCSRsZW4sICRsZW4sICM4CiAJYmVxCS5MY2JjX2RlY19k
b25lCiAKLQl2bGQxLjgJe0BYTU1bMF19LCBbJGlucF0hCQlAIGxvYWQgaW5wdXQKLQljbXAJJGxl
biwgIzIKLQlibG8JLkxjYmNfZGVjX29uZQotCXZsZDEuOAl7QFhNTVsxXX0sIFskaW5wXSEKKwlA
IFNldCB1cCBtb3N0IHBhcmFtZXRlcnMgZm9yIHRoZSBfYnNhZXNfZGVjcnlwdDggY2FsbC4KICNp
Zm5kZWYJQlNBRVNfQVNNX0VYVEVOREVEX0tFWQogCW1vdglyNCwgJGtleXNjaGVkCQkJQCBwYXNz
IHRoZSBrZXkKICNlbHNlCkBAIC0xMjM4LDYgKzEyMjQsMTEgQEAgYnNhZXNfY2JjX2VuY3J5cHQ6
CiAjZW5kaWYKIAltb3YJcjUsICRyb3VuZHMKIAl2c3RtaWEJJGZwLCB7QFhNTVsxNV19CQkJQCBw
dXQgYXNpZGUgSVYKKworCXZsZDEuOAl7QFhNTVswXX0sIFskaW5wXSEJCUAgbG9hZCBpbnB1dAor
CWNtcAkkbGVuLCAjMgorCWJsbwkuTGNiY19kZWNfb25lCisJdmxkMS44CXtAWE1NWzFdfSwgWyRp
bnBdIQogCWJlcQkuTGNiY19kZWNfdHdvCiAJdmxkMS44CXtAWE1NWzJdfSwgWyRpbnBdIQogCWNt
cAkkbGVuLCAjNApAQCAtMTM1NSwxNiArMTM0NiwxMSBAQCBic2Flc19jYmNfZW5jcnlwdDoKIC5h
bGlnbgk0CiAuTGNiY19kZWNfb25lOgogCXN1YgkkaW5wLCAkaW5wLCAjMHgxMAotCW1vdgkkcm91
bmRzLCAkb3V0CQkJQCBzYXZlIG9yaWdpbmFsIG91dCBwb2ludGVyCi0JbW92CSRvdXQsICRmcAkJ
CUAgdXNlIHRoZSBpdiBzY3JhdGNoIHNwYWNlIGFzIG91dCBidWZmZXIKLQltb3YJcjIsICRrZXkK
LQl2bW92CUBYTU1bNF0sQFhNTVsxNV0JCUAganVzdCBpbiBjYXNlIGVuc3VyZSB0aGF0IElWCi0J
dm1vdglAWE1NWzVdLEBYTU1bMF0JCQlAIGFuZCBpbnB1dCBhcmUgcHJlc2VydmVkCi0JYmwJQUVT
X2RlY3J5cHQKLQl2bGQxLjgJe0BYTU1bMF19LCBbJGZwXQkJQCBsb2FkIHJlc3VsdAotCXZlb3IJ
QFhNTVswXSwgQFhNTVswXSwgQFhNTVs0XQlAIF49IElWCi0Jdm1vdglAWE1NWzE1XSwgQFhNTVs1
XQkJQCBAWE1NWzVdIGhvbGRzIGlucHV0Ci0JdnN0MS44CXtAWE1NWzBdfSwgWyRyb3VuZHNdCQlA
IHdyaXRlIG91dHB1dAorCWJsCV9ic2Flc19kZWNyeXB0OAorCXZsZG1pYQkkZnAsIHtAWE1NWzE0
XX0JCQlAIHJlbG9hZCBJVgorCXZsZDEuOAl7QFhNTVsxNV19LCBbJGlucF0hCQlAIHJlbG9hZCBp
bnB1dAorCXZlb3IJQFhNTVswXSwgQFhNTVswXSwgQFhNTVsxNF0JQCBePSBJVgorCXZzdDEuOAl7
QFhNTVswXX0sIFskb3V0XSEJCUAgd3JpdGUgb3V0cHV0CiAKIC5MY2JjX2RlY19kb25lOgogI2lm
bmRlZglCU0FFU19BU01fRVhURU5ERURfS0VZCkBAIC0xMzkwLDE0ICsxMzc2LDEyIEBAIG15ICRj
b25zdCA9ICJyNiI7CSMgc2hhcmVkIHdpdGggX2JzYWVzX2VuY3J5cHQ4X2FsdAogbXkgJGtleXNj
aGVkID0gInNwIjsKIAogJGNvZGUuPTw8X19fOwotLmV4dGVybglBRVNfZW5jcnlwdAogLmdsb2Jh
bAlic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrcwogLnR5cGUJYnNhZXNfY3RyMzJfZW5jcnlwdF9i
bG9ja3MsJWZ1bmN0aW9uCiAuYWxpZ24JNQogYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3M6Ci0J
Y21wCSRsZW4sICM4CQkJQCB1c2UgcGxhaW4gQUVTIGZvcgotCWJsbwkuTGN0cl9lbmNfc2hvcnQJ
CQlAIHNtYWxsIHNpemVzCi0KKwlAIEluIE9wZW5TU0wsIHNob3J0IGlucHV0cyBmYWxsIGJhY2sg
dG8gYWVzX25vaHdfKiBoZXJlLiBXZSBwYXRjaCB0aGlzCisJQCBvdXQgdG8gcmV0YWluIGEgY29u
c3RhbnQtdGltZSBpbXBsZW1lbnRhdGlvbi4KIAltb3YJaXAsIHNwCiAJc3RtZGIJc3AhLCB7cjQt
cjEwLCBscn0KIAlWRlBfQUJJX1BVU0gKQEAgLTE1NzMsNTQgKzE1NTcsMTMgQEAgYnNhZXNfY3Ry
MzJfZW5jcnlwdF9ibG9ja3M6CiAJVkZQX0FCSV9QT1AKIAlsZG1pYQlzcCEsIHtyNC1yMTAsIHBj
fQlAIHJldHVybgogCi0uYWxpZ24JNAotLkxjdHJfZW5jX3Nob3J0OgotCWxkcglpcCwgW3NwXQkJ
QCBjdHIgcG9pbnRlciBpcyBwYXNzZWQgb24gc3RhY2sKLQlzdG1kYglzcCEsIHtyNC1yOCwgbHJ9
Ci0KLQltb3YJcjQsICRpbnAJCUAgY29weSBhcmd1bWVudHMKLQltb3YJcjUsICRvdXQKLQltb3YJ
cjYsICRsZW4KLQltb3YJcjcsICRrZXkKLQlsZHIJcjgsIFtpcCwgIzEyXQkJQCBsb2FkIGNvdW50
ZXIgTFNXCi0JdmxkMS44CXtAWE1NWzFdfSwgW2lwXQkJQCBsb2FkIHdob2xlIGNvdW50ZXIgdmFs
dWUKLSNpZmRlZiBfX0FSTUVMX18KLQlyZXYJcjgsIHI4Ci0jZW5kaWYKLQlzdWIJc3AsIHNwLCAj
MHgxMAotCXZzdDEuOAl7QFhNTVsxXX0sIFtzcF0JCUAgY29weSBjb3VudGVyIHZhbHVlCi0Jc3Vi
CXNwLCBzcCwgIzB4MTAKLQotLkxjdHJfZW5jX3Nob3J0X2xvb3A6Ci0JYWRkCXIwLCBzcCwgIzB4
MTAJCUAgaW5wdXQgY291bnRlciB2YWx1ZQotCW1vdglyMSwgc3AJCQlAIG91dHB1dCBvbiB0aGUg
c3RhY2sKLQltb3YJcjIsIHI3CQkJQCBrZXkKLQotCWJsCUFFU19lbmNyeXB0Ci0KLQl2bGQxLjgJ
e0BYTU1bMF19LCBbcjRdIQlAIGxvYWQgaW5wdXQKLQl2bGQxLjgJe0BYTU1bMV19LCBbc3BdCQlA
IGxvYWQgZW5jcnlwdGVkIGNvdW50ZXIKLQlhZGQJcjgsIHI4LCAjMQotI2lmZGVmIF9fQVJNRUxf
XwotCXJldglyMCwgcjgKLQlzdHIJcjAsIFtzcCwgIzB4MWNdCQlAIG5leHQgY291bnRlciB2YWx1
ZQotI2Vsc2UKLQlzdHIJcjgsIFtzcCwgIzB4MWNdCQlAIG5leHQgY291bnRlciB2YWx1ZQotI2Vu
ZGlmCi0JdmVvcglAWE1NWzBdLEBYTU1bMF0sQFhNTVsxXQotCXZzdDEuOAl7QFhNTVswXX0sIFty
NV0hCUAgc3RvcmUgb3V0cHV0Ci0Jc3VicwlyNiwgcjYsICMxCi0JYm5lCS5MY3RyX2VuY19zaG9y
dF9sb29wCi0KLQl2bW92LmkzMglxMCwgIzAKLQl2bW92LmkzMglxMSwgIzAKLQl2c3RtaWEJCXNw
ISwge3EwLXExfQotCi0JbGRtaWEJc3AhLCB7cjQtcjgsIHBjfQorCUAgT3BlblNTTCBjb250YWlu
cyBhZXNfbm9od18qIGZhbGxiYWNrIGNvZGUgaGVyZS4gV2UgcGF0Y2ggdGhpcworCUAgb3V0IHRv
IHJldGFpbiBhIGNvbnN0YW50LXRpbWUgaW1wbGVtZW50YXRpb24uCiAuc2l6ZQlic2Flc19jdHIz
Ml9lbmNyeXB0X2Jsb2NrcywuLWJzYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzCiBfX18KIH0KLXsK
KyMgSW4gQm9yaW5TU0wsIHdlIHBhdGNoIFhUUyBzdXBwb3J0IG91dC4KK2lmICgwKSB7CiAjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjCiAjIHZvaWQgYnNhZXNfeHRzX1tlbnxkZV1jcnlwdChjb25zdCBjaGFyICppbnAs
Y2hhciAqb3V0LHNpemVfdCBsZW4sCiAjCWNvbnN0IEFFU19LRVkgKmtleTEsIGNvbnN0IEFFU19L
RVkgKmtleTIsCkBAIC0xNjU3LDcgKzE2MDAsNyBAQCBic2Flc194dHNfZW5jcnlwdDoKIAlsZHIJ
cjAsIFtpcCwgIzRdCQkJQCBpdltdCiAJbW92CXIxLCBzcAogCWxkcglyMiwgW2lwLCAjMF0JCQlA
IGtleTIKLQlibAlBRVNfZW5jcnlwdAorCWJsCWFlc19ub2h3X2VuY3J5cHQKIAltb3YJcjAsc3AJ
CQkJQCBwb2ludGVyIHRvIGluaXRpYWwgdHdlYWsKICNlbmRpZgogCkBAIC0xOTc1LDcgKzE5MTgs
NyBAQCAkY29kZS49PDxfX187CiAJbW92CQlyMiwgJGtleQogCW1vdgkJcjQsICRmcAkJCQlAIHBy
ZXNlcnZlIGZwCiAKLQlibAkJQUVTX2VuY3J5cHQKKwlibAkJYWVzX25vaHdfZW5jcnlwdAogCiAJ
dmxkMS44CQl7QFhNTVswXX0sIFtzcCw6MTI4XQogCXZlb3IJCUBYTU1bMF0sIEBYTU1bMF0sIEBY
TU1bOF0KQEAgLTIwMDcsNyArMTk1MCw3IEBAICRjb2RlLj08PF9fXzsKIAltb3YJCXIyLCAka2V5
CiAJbW92CQlyNCwgJGZwCQkJQCBwcmVzZXJ2ZSBmcAogCi0JYmwJCUFFU19lbmNyeXB0CisJYmwJ
CWFlc19ub2h3X2VuY3J5cHQKIAogCXZsZDEuOAkJe0BYTU1bMF19LCBbc3AsOjEyOF0KIAl2ZW9y
CQlAWE1NWzBdLCBAWE1NWzBdLCBAWE1NWzhdCkBAIC0yMDYxLDcgKzIwMDQsNyBAQCBic2Flc194
dHNfZGVjcnlwdDoKIAlsZHIJcjAsIFtpcCwgIzRdCQkJQCBpdltdCiAJbW92CXIxLCBzcAogCWxk
cglyMiwgW2lwLCAjMF0JCQlAIGtleTIKLQlibAlBRVNfZW5jcnlwdAorCWJsCWFlc19ub2h3X2Vu
Y3J5cHQKIAltb3YJcjAsIHNwCQkJCUAgcG9pbnRlciB0byBpbml0aWFsIHR3ZWFrCiAjZW5kaWYK
IApAQCAtMjM4Nyw3ICsyMzMwLDcgQEAgJGNvZGUuPTw8X19fOwogCW1vdgkJcjIsICRrZXkKIAlt
b3YJCXI0LCAkZnAJCQkJQCBwcmVzZXJ2ZSBmcAogCi0JYmwJCUFFU19kZWNyeXB0CisJYmwJCWFl
c19ub2h3X2RlY3J5cHQKIAogCXZsZDEuOAkJe0BYTU1bMF19LCBbc3AsOjEyOF0KIAl2ZW9yCQlA
WE1NWzBdLCBAWE1NWzBdLCBAWE1NWzhdCkBAIC0yNDE5LDcgKzIzNjIsNyBAQCAkY29kZS49PDxf
X187CiAJbW92CQlyMiwgJGtleQogCW1vdgkJcjQsICRmcAkJCUAgcHJlc2VydmUgZnAKIAotCWJs
CQlBRVNfZGVjcnlwdAorCWJsCQlhZXNfbm9od19kZWNyeXB0CiAKIAl2bGQxLjgJCXtAWE1NWzBd
fSwgW3NwLDoxMjhdCiAJdmVvcgkJQFhNTVswXSwgQFhNTVswXSwgQFhNTVs5XQpAQCAtMjQ0Miw3
ICsyMzg1LDcgQEAgJGNvZGUuPTw8X19fOwogCXZzdDEuOAkJe0BYTU1bMF19LCBbc3AsOjEyOF0K
IAltb3YJCXIyLCAka2V5CiAKLQlibAkJQUVTX2RlY3J5cHQKKwlibAkJYWVzX25vaHdfZGVjcnlw
dAogCiAJdmxkMS44CQl7QFhNTVswXX0sIFtzcCw6MTI4XQogCXZlb3IJCUBYTU1bMF0sIEBYTU1b
MF0sIEBYTU1bOF0KQEAgLTI0ODgsNCArMjQzMSw0IEBAIGNsb3NlIFNFTEY7CiAKIHByaW50ICRj
b2RlOwogCi1jbG9zZSBTVERPVVQ7CitjbG9zZSBTVERPVVQgb3IgZGllICJlcnJvciBjbG9zaW5n
IFNURE9VVCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9ic2Fl
cy14ODZfNjQucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS9ic2Flcy14ODZfNjQu
cGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExYjdhOWQ2ZjYxZGY1MWIxZGU0Yzhl
YTZjNzBiZGM2MDE3YWViYTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vYnNhZXMteDg2XzY0LnBsCisr
KyAvZGV2L251bGwKQEAgLTEsMzIzMyArMCwwIEBACi0jISAvdXNyL2Jpbi9lbnYgcGVybAotIyBD
b3B5cmlnaHQgMjAxMS0yMDE2IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIE9wZW5TU0wgbGljZW5zZSAodGhl
ICJMaWNlbnNlIikuICBZb3UgbWF5IG5vdCB1c2UKLSMgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgY2FuIG9idGFpbiBhIGNvcHkKLSMgaW4gdGhl
IGZpbGUgTElDRU5TRSBpbiB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbiBvciBhdAotIyBodHRwczov
L3d3dy5vcGVuc3NsLm9yZy9zb3VyY2UvbGljZW5zZS5odG1sCi0KLQotIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMj
IEFFUy0xMjggW29yaWdpbmFsbHkgaW4gQ1RSIG1vZGVdCQkJCSMjIwotIyMjIGJpdHNsaWNlZCBp
bXBsZW1lbnRhdGlvbiBmb3IgSW50ZWwgQ29yZSAyIHByb2Nlc3NvcnMJIyMjCi0jIyMgcmVxdWly
ZXMgc3VwcG9ydCBvZiBTU0UgZXh0ZW5zaW9ucyB1cCB0byBTU1NFMwkJIyMjCi0jIyMgQXV0aG9y
OiBFbWlsaWEgS8Okc3BlciBhbmQgUGV0ZXIgU2Nod2FiZQkJCSMjIwotIyMjIERhdGU6IDIwMDkt
MDMtMTkJCQkJCQkjIyMKLSMjIyBQdWJsaWMgZG9tYWluCQkJCQkJIyMjCi0jIyMJCQkJCQkJCSMj
IwotIyMjIFNlZSBodHRwOi8vaG9tZXMuZXNhdC5rdWxldXZlbi5iZS9+ZWthc3Blci8jc29mdHdh
cmUgZm9yCSMjIwotIyMjIGZ1cnRoZXIgaW5mb3JtYXRpb24uCQkJCQkjIyMKLSMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
LSMKLSMgU2VwdGVtYmVyIDIwMTEuCi0jCi0jIFN0YXJ0ZWQgYXMgdHJhbnNsaXRlcmF0aW9uIHRv
ICJwZXJsYXNtIiB0aGUgb3JpZ2luYWwgY29kZSBoYXMKLSMgdW5kZXJnb25lIGZvbGxvd2luZyBj
aGFuZ2VzOgotIwotIyAtIGNvZGUgd2FzIG1hZGUgcG9zaXRpb24taW5kZXBlbmRlbnQ7Ci0jIC0g
cm91bmRzIHdlcmUgZm9sZGVkIGludG8gYSBsb29wIHJlc3VsdGluZyBpbiA+NXggc2l6ZSByZWR1
Y3Rpb24KLSMgICBmcm9tIDEyLjVLQiB0byAyLjJLQjsKLSMgLSBhYm92ZSB3YXMgcG9zc2liaWxl
IHRoYW5rcyB0byBtaXhjb2x1bW5zKCkgbW9kaWZpY2F0aW9uIHRoYXQKLSMgICBhbGxvd2VkIHRv
IGZlZWQgaXRzIG91dHB1dCBiYWNrIHRvIGFlc2VuY1tsYXN0XSwgdGhpcyB3YXMKLSMgICBhY2hp
ZXZlZCBhdCBjb3N0IG9mIHR3byBhZGRpdGlvbmFsIGludGVyLXJlZ2lzdGVycyBtb3ZlczsKLSMg
LSBzb21lIGluc3RydWN0aW9uIHJlb3JkZXJpbmcgYW5kIGludGVybGVhdmluZzsKLSMgLSB0aGlz
IG1vZHVsZSBkb2Vzbid0IGltcGxlbWVudCBrZXkgc2V0dXAgc3Vicm91dGluZSwgaW5zdGVhZCBp
dAotIyAgIHJlbGllcyBvbiBjb252ZXJzaW9uIG9mICJjb252ZW50aW9uYWwiIGtleSBzY2hlZHVs
ZSBhcyByZXR1cm5lZAotIyAgIGJ5IEFFU19zZXRfZW5jcnlwdF9rZXkgKHNlZSBkaXNjdXNzaW9u
IGJlbG93KTsKLSMgLSBmaXJzdCBhbmQgbGFzdCByb3VuZCBrZXlzIGFyZSB0cmVhdGVkIGRpZmZl
cmVudGx5LCB3aGljaCBhbGxvd2VkCi0jICAgdG8gc2tpcCBvbmUgc2hpZnRyb3dzKCksIHJlZHVj
ZSBiaXQtc2xpY2VkIGtleSBzY2hlZHVsZSBhbmQKLSMgICBzcGVlZC11cCBjb252ZXJzaW9uIGJ5
IDIyJTsKLSMgLSBzdXBwb3J0IGZvciAxOTItIGFuZCAyNTYtYml0IGtleXMgd2FzIGFkZGVkOwot
IwotIyBSZXN1bHRpbmcgcGVyZm9ybWFuY2UgaW4gQ1BVIGN5Y2xlcyBzcGVudCB0byBlbmNyeXB0
IG9uZSBieXRlIG91dAotIyBvZiA0MDk2LWJ5dGUgYnVmZmVyIHdpdGggMTI4LWJpdCBrZXkgaXM6
Ci0jCi0jCQlFbWlsaWEncwl0aGlzKCopCQlkaWZmZXJlbmNlCi0jCi0jIENvcmUgMiAgICAJOS4z
MAkJOC42OQkJKzclCi0jIE5laGFsZW0oKiopIAk3LjYzCQk2Ljg4CQkrMTElCi0jIEF0b20JICAg
IAkxNy4xCQkxNi40CQkrNCUKLSMgU2lsdmVybW9udAktCQkxMi45Ci0jIEdvbGRtb250CS0JCTgu
ODUKLSMKLSMgKCopCUNvbXBhcmlzb24gaXMgbm90IGNvbXBsZXRlbHkgZmFpciwgYmVjYXVzZSAi
dGhpcyIgaXMgRUNCLAotIwlpLmUuIG5vIGV4dHJhIHByb2Nlc3Npbmcgc3VjaCBhcyBjb3VudGVy
IHZhbHVlcyBjYWxjdWxhdGlvbgotIwlhbmQgeG9yLWluZyBpbnB1dCBhcyBpbiBFbWlsaWEncyBD
VFIgaW1wbGVtZW50YXRpb24gaXMKLSMJcGVyZm9ybWVkLiBIb3dldmVyLCB0aGUgQ1RSIGNhbGN1
bGF0aW9ucyBzdGFuZCBmb3Igbm90IG1vcmUKLSMJdGhhbiAxJSBvZiB0b3RhbCB0aW1lLCBzbyBj
b21wYXJpc29uIGlzICpyYXRoZXIqIGZhaXIuCi0jCi0jICgqKikJUmVzdWx0cyB3ZXJlIGNvbGxl
Y3RlZCBvbiBXZXN0bWVyZSwgd2hpY2ggaXMgY29uc2lkZXJlZCB0bwotIwliZSBlcXVpdmFsZW50
IHRvIE5laGFsZW0gZm9yIHRoaXMgY29kZS4KLSMKLSMgQXMgZm9yIGtleSBzY2hlZHVsZSBjb252
ZXJzaW9uIHN1YnJvdXRpbmUuIEludGVyZmFjZSB0byBPcGVuU1NMCi0jIHJlbGllcyBvbiBwZXIt
aW52b2NhdGlvbiBvbi10aGUtZmx5IGNvbnZlcnNpb24uIFRoaXMgbmF0dXJhbGx5Ci0jIGhhcyBp
bXBhY3Qgb24gcGVyZm9ybWFuY2UsIGVzcGVjaWFsbHkgZm9yIHNob3J0IGlucHV0cy4gQ29udmVy
c2lvbgotIyB0aW1lIGluIENQVSBjeWNsZXMgYW5kIGl0cyByYXRpbyB0byBDUFUgY3ljbGVzIHNw
ZW50IGluIDh4IGJsb2NrCi0jIGZ1bmN0aW9uIGlzOgotIwotIyAJCWNvbnZlcnNpb24JY29udmVy
c2lvbi84eCBibG9jawotIyBDb3JlIDIJMjQwCQkwLjIyCi0jIE5laGFsZW0JMTgwCQkwLjIwCi0j
IEF0b20JCTQzMAkJMC4yMAotIwotIyBUaGUgcmF0aW8gdmFsdWVzIG1lYW4gdGhhdCAxMjgtYnl0
ZSBibG9ja3Mgd2lsbCBiZSBwcm9jZXNzZWQKLSMgMTYtMTglIHNsb3dlciwgMjU2LWJ5dGUgYmxv
Y2tzIC0gOS0xMCUsIDM4NC1ieXRlIGJsb2NrcyAtIDYtNyUsCi0jIGV0Yy4gVGhlbiBrZWVwIGlu
IG1pbmQgdGhhdCBpbnB1dCBzaXplcyBub3QgZGl2aXNpYmxlIGJ5IDEyOCBhcmUKLSMgKmVmZmVj
dGl2ZWx5KiBzbG93ZXIsIGVzcGVjaWFsbHkgc2hvcnRlc3Qgb25lcywgZS5nLiBjb25zZWN1dGl2
ZQotIyAxNDQtYnl0ZSBibG9ja3MgYXJlIHByb2Nlc3NlZCA0NCUgc2xvd2VyIHRoYW4gb25lIHdv
dWxkIGV4cGVjdCwKLSMgMjcyIC0gMjklLCA0MDAgLSAyMiUsIGV0Yy4gWWV0LCBkZXNwaXRlIGFs
bCB0aGVzZSAic2hvcnRjb21pbmdzIgotIyBpdCdzIHN0aWxsIGZhc3RlciB0aGFuIFsiaHlwZXIt
dGhyZWFkaW5nLXNhZmUiIGNvZGUgcGF0aCBpbl0KLSMgYWVzLXg4Nl82NC5wbCBvbiBhbGwgbGVu
Z3RocyBhYm92ZSA2NCBieXRlcy4uLgotIwotIyBPY3RvYmVyIDIwMTEuCi0jCi0jIEFkZCBkZWNy
eXB0aW9uIHByb2NlZHVyZS4gUGVyZm9ybWFuY2UgaW4gQ1BVIGN5Y2xlcyBzcGVudCB0byBkZWNy
eXB0Ci0jIG9uZSBieXRlIG91dCBvZiA0MDk2LWJ5dGUgYnVmZmVyIHdpdGggMTI4LWJpdCBrZXkg
aXM6Ci0jCi0jIENvcmUgMgk5Ljk4Ci0jIE5laGFsZW0JNy44MAotIyBBdG9tCQkxNy45Ci0jIFNp
bHZlcm1vbnQJMTQuMAotIyBHb2xkbW9udAkxMC4yCi0jCi0jIE5vdmVtYmVyIDIwMTEuCi0jCi0j
IEFkZCBic2Flc194dHNfW2VufGRlXWNyeXB0LiBMZXNzLXRoYW4tODAtYnl0ZXMtYmxvY2sgcGVy
Zm9ybWFuY2UgaXMKLSMgc3Vib3B0aW1hbCwgYnV0IFhUUyBpcyBtZWFudCB0byBiZSB1c2VkIHdp
dGggbGFyZ2VyIGJsb2Nrcy4uLgotIwotIwkJCQkJCTxhcHByb0BvcGVuc3NsLm9yZz4KLQotJGZs
YXZvdXIgPSBzaGlmdDsKLSRvdXRwdXQgID0gc2hpZnQ7Ci1pZiAoJGZsYXZvdXIgPX4gL1wuLykg
eyAkb3V0cHV0ID0gJGZsYXZvdXI7IHVuZGVmICRmbGF2b3VyOyB9Ci0KLSR3aW42ND0wOyAkd2lu
NjQ9MSBpZiAoJGZsYXZvdXIgPX4gL1tubV1hc218bWluZ3c2NC8gfHwgJG91dHB1dCA9fiAvXC5h
c20kLyk7Ci0KLSQwID1+IG0vKC4qW1wvXFxdKVteXC9cXF0rJC87ICRkaXI9JDE7Ci0oICR4bGF0
ZT0iJHtkaXJ9eDg2XzY0LXhsYXRlLnBsIiBhbmQgLWYgJHhsYXRlICkgb3IKLSggJHhsYXRlPSIk
e2Rpcn0uLi8uLi8uLi9wZXJsYXNtL3g4Nl82NC14bGF0ZS5wbCIgYW5kIC1mICR4bGF0ZSkgb3IK
LWRpZSAiY2FuJ3QgbG9jYXRlIHg4Nl82NC14bGF0ZS5wbCI7Ci0KLW9wZW4gT1VULCJ8IFwiJF5Y
XCIgXCIkeGxhdGVcIiAkZmxhdm91ciBcIiRvdXRwdXRcIiI7Ci0qU1RET1VUPSpPVVQ7Ci0KLW15
ICgkaW5wLCRvdXQsJGxlbiwka2V5LCRpdnApPSgiJXJkaSIsIiVyc2kiLCIlcmR4IiwiJXJjeCIp
OwotbXkgQFhNTT1tYXAoIiV4bW0kXyIsKDE1LDAuLjE0KSk7CSMgYmVzdCBvbiBBdG9tLCArMTAl
IG92ZXIgKDAuLjE1KQotbXkgJGVjYj0wOwkjIHN1cHByZXNzIHVucmVmZXJlbmNlZCBFQ0Igc3Vi
cm91dGluZXMsIHNwYXJlIHNvbWUgc3BhY2UuLi4KLQotewotbXkgKCRrZXksJHJvdW5kcywkY29u
c3QpPSgiJXJheCIsIiVyMTBkIiwiJXIxMSIpOwotCi1zdWIgU2JveCB7Ci0jIGlucHV0IGluICBs
c2IgPiBbYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3XSA8IG1zYgotIyBvdXRwdXQgaW4g
bHNiID4gW2IwLCBiMSwgYjQsIGI2LCBiMywgYjcsIGIyLCBiNV0gPCBtc2IKLW15IEBiPUBfWzAu
LjddOwotbXkgQHQ9QF9bOC4uMTFdOwotbXkgQHM9QF9bMTIuLjE1XTsKLQkmSW5CYXNpc0NoYW5n
ZQkoQGIpOwotCSZJbnZfR0YyNTYJKEBiWzYsNSwwLDMsNywxLDQsMl0sQHQsQHMpOwotCSZPdXRC
YXNpc0NoYW5nZQkoQGJbNywxLDQsMiw2LDUsMCwzXSk7Ci19Ci0KLXN1YiBJbkJhc2lzQ2hhbmdl
IHsKLSMgaW5wdXQgaW4gIGxzYiA+IFtiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjddIDwg
bXNiCi0jIG91dHB1dCBpbiBsc2IgPiBbYjYsIGI1LCBiMCwgYjMsIGI3LCBiMSwgYjQsIGIyXSA8
IG1zYgotbXkgQGI9QF9bMC4uN107Ci0kY29kZS49PDxfX187Ci0JcHhvcglAYls2XSwgQGJbNV0K
LQlweG9yCUBiWzFdLCBAYlsyXQotCXB4b3IJQGJbMF0sIEBiWzNdCi0JcHhvcglAYlsyXSwgQGJb
Nl0KLQlweG9yIAlAYlswXSwgQGJbNV0KLQotCXB4b3IJQGJbM10sIEBiWzZdCi0JcHhvcglAYls3
XSwgQGJbM10KLQlweG9yCUBiWzVdLCBAYls3XQotCXB4b3IJQGJbNF0sIEBiWzNdCi0JcHhvcglA
Yls1XSwgQGJbNF0KLQlweG9yCUBiWzFdLCBAYlszXQotCi0JcHhvcglAYls3XSwgQGJbMl0KLQlw
eG9yCUBiWzVdLCBAYlsxXQotX19fCi19Ci0KLXN1YiBPdXRCYXNpc0NoYW5nZSB7Ci0jIGlucHV0
IGluICBsc2IgPiBbYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3XSA8IG1zYgotIyBvdXRw
dXQgaW4gbHNiID4gW2I2LCBiMSwgYjIsIGI0LCBiNywgYjAsIGIzLCBiNV0gPCBtc2IKLW15IEBi
PUBfWzAuLjddOwotJGNvZGUuPTw8X19fOwotCXB4b3IJQGJbNl0sIEBiWzBdCi0JcHhvcglAYls0
XSwgQGJbMV0KLQlweG9yCUBiWzBdLCBAYlsyXQotCXB4b3IJQGJbNl0sIEBiWzRdCi0JcHhvcglA
YlsxXSwgQGJbNl0KLQotCXB4b3IJQGJbNV0sIEBiWzFdCi0JcHhvcglAYlszXSwgQGJbNV0KLQlw
eG9yCUBiWzddLCBAYlszXQotCXB4b3IJQGJbNV0sIEBiWzddCi0JcHhvcglAYls1XSwgQGJbMl0K
LQotCXB4b3IJQGJbN10sIEBiWzRdCi1fX18KLX0KLQotc3ViIEludlNib3ggewotIyBpbnB1dCBp
biBsc2IgCT4gW2IwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiN10gPCBtc2IKLSMgb3V0cHV0
IGluIGxzYgk+IFtiMCwgYjEsIGI2LCBiNCwgYjIsIGI3LCBiMywgYjVdIDwgbXNiCi1teSBAYj1A
X1swLi43XTsKLW15IEB0PUBfWzguLjExXTsKLW15IEBzPUBfWzEyLi4xNV07Ci0JJkludkluQmFz
aXNDaGFuZ2UJKEBiKTsKLQkmSW52X0dGMjU2CQkoQGJbNSwxLDIsNiwzLDcsMCw0XSxAdCxAcyk7
Ci0JJkludk91dEJhc2lzQ2hhbmdlCShAYlszLDcsMCw0LDUsMSwyLDZdKTsKLX0KLQotc3ViIElu
dkluQmFzaXNDaGFuZ2UgewkJIyBPdXRCYXNpc0NoYW5nZSBpbiByZXZlcnNlCi1teSBAYj1AX1s1
LDEsMiw2LDMsNywwLDRdOwotJGNvZGUuPTw8X19fCi0JcHhvcglAYls3XSwgQGJbNF0KLQotCXB4
b3IJQGJbNV0sIEBiWzddCi0JcHhvcglAYls1XSwgQGJbMl0KLQlweG9yCUBiWzddLCBAYlszXQot
CXB4b3IJQGJbM10sIEBiWzVdCi0JcHhvcglAYls1XSwgQGJbMV0KLQotCXB4b3IJQGJbMV0sIEBi
WzZdCi0JcHhvcglAYlswXSwgQGJbMl0KLQlweG9yCUBiWzZdLCBAYls0XQotCXB4b3IJQGJbNl0s
IEBiWzBdCi0JcHhvcglAYls0XSwgQGJbMV0KLV9fXwotfQotCi1zdWIgSW52T3V0QmFzaXNDaGFu
Z2UgewkJIyBJbkJhc2lzQ2hhbmdlIGluIHJldmVyc2UKLW15IEBiPUBfWzIsNSw3LDMsNiwxLDAs
NF07Ci0kY29kZS49PDxfX187Ci0JcHhvcglAYls1XSwgQGJbMV0KLQlweG9yCUBiWzddLCBAYlsy
XQotCi0JcHhvcglAYlsxXSwgQGJbM10KLQlweG9yCUBiWzVdLCBAYls0XQotCXB4b3IJQGJbNV0s
IEBiWzddCi0JcHhvcglAYls0XSwgQGJbM10KLQkgcHhvciAJQGJbMF0sIEBiWzVdCi0JcHhvcglA
Yls3XSwgQGJbM10KLQkgcHhvcglAYlsyXSwgQGJbNl0KLQkgcHhvcglAYlsxXSwgQGJbMl0KLQlw
eG9yCUBiWzNdLCBAYls2XQotCi0JcHhvcglAYlswXSwgQGJbM10KLQlweG9yCUBiWzZdLCBAYls1
XQotX19fCi19Ci0KLXN1YiBNdWxfR0Y0IHsKLSM7KioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIzsqIE11bF9HRjQ6IElucHV0IHgw
LXgxLHkwLXkxIE91dHB1dCB4MC14MSBUZW1wIHQwICg4KSAqCi0jOyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLW15ICgkeDAsJHgx
LCR5MCwkeTEsJHQwKT1AXzsKLSRjb2RlLj08PF9fXzsKLQltb3ZkcWEJJHkwLCAkdDAKLQlweG9y
IAkkeTEsICR0MAotCXBhbmQJJHgwLCAkdDAKLQlweG9yCSR4MSwgJHgwCi0JcGFuZAkkeTAsICR4
MQotCXBhbmQJJHkxLCAkeDAKLQlweG9yCSR4MSwgJHgwCi0JcHhvcgkkdDAsICR4MQotX19fCi19
Ci0KLXN1YiBNdWxfR0Y0X04gewkJCQkjIG5vdCB1c2VkLCBzZWUgbmV4dCBzdWJyb3V0aW5lCi0j
IG11bHRpcGx5IGFuZCBzY2FsZSBieSBOCi1teSAoJHgwLCR4MSwkeTAsJHkxLCR0MCk9QF87Ci0k
Y29kZS49PDxfX187Ci0JbW92ZHFhCSR5MCwgJHQwCi0JcHhvcgkkeTEsICR0MAotCXBhbmQJJHgw
LCAkdDAKLQlweG9yCSR4MSwgJHgwCi0JcGFuZAkkeTAsICR4MQotCXBhbmQJJHkxLCAkeDAKLQlw
eG9yCSR4MCwgJHgxCi0JcHhvcgkkdDAsICR4MAotX19fCi19Ci0KLXN1YiBNdWxfR0Y0X05fR0Y0
IHsKLSMgaW50ZXJsZWF2ZWQgTXVsX0dGNF9OIGFuZCBNdWxfR0Y0Ci1teSAoJHgwLCR4MSwkeTAs
JHkxLCR0MCwKLSAgICAkeDIsJHgzLCR5MiwkeTMsJHQxKT1AXzsKLSRjb2RlLj08PF9fXzsKLQlt
b3ZkcWEJJHkwLCAkdDAKLQkgbW92ZHFhCSR5MiwgJHQxCi0JcHhvcgkkeTEsICR0MAotCSBweG9y
IAkkeTMsICR0MQotCXBhbmQJJHgwLCAkdDAKLQkgcGFuZAkkeDIsICR0MQotCXB4b3IJJHgxLCAk
eDAKLQkgcHhvcgkkeDMsICR4MgotCXBhbmQJJHkwLCAkeDEKLQkgcGFuZAkkeTIsICR4MwotCXBh
bmQJJHkxLCAkeDAKLQkgcGFuZAkkeTMsICR4MgotCXB4b3IJJHgwLCAkeDEKLQkgcHhvcgkkeDMs
ICR4MgotCXB4b3IJJHQwLCAkeDAKLQkgcHhvcgkkdDEsICR4MwotX19fCi19Ci1zdWIgTXVsX0dG
MTZfMiB7Ci1teSBAeD1AX1swLi43XTsKLW15IEB5PUBfWzguLjExXTsKLW15IEB0PUBfWzEyLi4x
NV07Ci0kY29kZS49PDxfX187Ci0JbW92ZHFhCUB4WzBdLCBAdFswXQotCW1vdmRxYQlAeFsxXSwg
QHRbMV0KLV9fXwotCSZNdWxfR0Y0ICAJKEB4WzBdLCBAeFsxXSwgQHlbMF0sIEB5WzFdLCBAdFsy
XSk7Ci0kY29kZS49PDxfX187Ci0JcHhvcglAeFsyXSwgQHRbMF0KLQlweG9yCUB4WzNdLCBAdFsx
XQotCXB4b3IJQHlbMl0sIEB5WzBdCi0JcHhvcglAeVszXSwgQHlbMV0KLV9fXwotCU11bF9HRjRf
Tl9HRjQJKEB0WzBdLCBAdFsxXSwgQHlbMF0sIEB5WzFdLCBAdFszXSwKLQkJCSBAeFsyXSwgQHhb
M10sIEB5WzJdLCBAeVszXSwgQHRbMl0pOwotJGNvZGUuPTw8X19fOwotCXB4b3IJQHRbMF0sIEB4
WzBdCi0JcHhvcglAdFswXSwgQHhbMl0KLQlweG9yCUB0WzFdLCBAeFsxXQotCXB4b3IJQHRbMV0s
IEB4WzNdCi0KLQltb3ZkcWEJQHhbNF0sIEB0WzBdCi0JbW92ZHFhCUB4WzVdLCBAdFsxXQotCXB4
b3IJQHhbNl0sIEB0WzBdCi0JcHhvcglAeFs3XSwgQHRbMV0KLV9fXwotCSZNdWxfR0Y0X05fR0Y0
CShAdFswXSwgQHRbMV0sIEB5WzBdLCBAeVsxXSwgQHRbM10sCi0JCQkgQHhbNl0sIEB4WzddLCBA
eVsyXSwgQHlbM10sIEB0WzJdKTsKLSRjb2RlLj08PF9fXzsKLQlweG9yCUB5WzJdLCBAeVswXQot
CXB4b3IJQHlbM10sIEB5WzFdCi1fX18KLQkmTXVsX0dGNCAgCShAeFs0XSwgQHhbNV0sIEB5WzBd
LCBAeVsxXSwgQHRbM10pOwotJGNvZGUuPTw8X19fOwotCXB4b3IJQHRbMF0sIEB4WzRdCi0JcHhv
cglAdFswXSwgQHhbNl0KLQlweG9yCUB0WzFdLCBAeFs1XQotCXB4b3IJQHRbMV0sIEB4WzddCi1f
X18KLX0KLXN1YiBJbnZfR0YyNTYgewotIzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIzsqIEludl9HRjI1NjogSW5w
dXQgeDAteDcgT3V0cHV0IHgwLXg3IFRlbXAgdDAtdDMsczAtczMgKDE0NCkgICAgICAgKgotIzsq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgotbXkgQHg9QF9bMC4uN107Ci1teSBAdD1AX1s4Li4xMV07Ci1teSBAcz1AX1sx
Mi4uMTVdOwotIyBkaXJlY3Qgb3B0aW1pemF0aW9ucyBmcm9tIGhhcmR3YXJlCi0kY29kZS49PDxf
X187Ci0JbW92ZHFhCUB4WzRdLCBAdFszXQotCW1vdmRxYQlAeFs1XSwgQHRbMl0KLQltb3ZkcWEJ
QHhbMV0sIEB0WzFdCi0JbW92ZHFhCUB4WzddLCBAc1sxXQotCW1vdmRxYQlAeFswXSwgQHNbMF0K
LQotCXB4b3IJQHhbNl0sIEB0WzNdCi0JcHhvcglAeFs3XSwgQHRbMl0KLQlweG9yCUB4WzNdLCBA
dFsxXQotCSBtb3ZkcWEJQHRbM10sIEBzWzJdCi0JcHhvcglAeFs2XSwgQHNbMV0KLQkgbW92ZHFh
CUB0WzJdLCBAdFswXQotCXB4b3IJQHhbMl0sIEBzWzBdCi0JIG1vdmRxYQlAdFszXSwgQHNbM10K
LQotCXBvcglAdFsxXSwgQHRbMl0KLQlwb3IJQHNbMF0sIEB0WzNdCi0JcHhvcglAdFswXSwgQHNb
M10KLQlwYW5kCUBzWzBdLCBAc1syXQotCXB4b3IJQHRbMV0sIEBzWzBdCi0JcGFuZAlAdFsxXSwg
QHRbMF0KLQlwYW5kCUBzWzBdLCBAc1szXQotCW1vdmRxYQlAeFszXSwgQHNbMF0KLQlweG9yCUB4
WzJdLCBAc1swXQotCXBhbmQJQHNbMF0sIEBzWzFdCi0JcHhvcglAc1sxXSwgQHRbM10KLQlweG9y
CUBzWzFdLCBAdFsyXQotCW1vdmRxYQlAeFs0XSwgQHNbMV0KLQltb3ZkcWEJQHhbMV0sIEBzWzBd
Ci0JcHhvcglAeFs1XSwgQHNbMV0KLQlweG9yCUB4WzBdLCBAc1swXQotCW1vdmRxYQlAc1sxXSwg
QHRbMV0KLQlwYW5kCUBzWzBdLCBAc1sxXQotCXBvcglAc1swXSwgQHRbMV0KLQlweG9yCUBzWzFd
LCBAdFswXQotCXB4b3IJQHNbM10sIEB0WzNdCi0JcHhvcglAc1syXSwgQHRbMl0KLQlweG9yCUBz
WzNdLCBAdFsxXQotCW1vdmRxYQlAeFs3XSwgQHNbMF0KLQlweG9yCUBzWzJdLCBAdFswXQotCW1v
dmRxYQlAeFs2XSwgQHNbMV0KLQlweG9yCUBzWzJdLCBAdFsxXQotCW1vdmRxYQlAeFs1XSwgQHNb
Ml0KLQlwYW5kCUB4WzNdLCBAc1swXQotCW1vdmRxYQlAeFs0XSwgQHNbM10KLQlwYW5kCUB4WzJd
LCBAc1sxXQotCXBhbmQJQHhbMV0sIEBzWzJdCi0JcG9yCUB4WzBdLCBAc1szXQotCXB4b3IJQHNb
MF0sIEB0WzNdCi0JcHhvcglAc1sxXSwgQHRbMl0KLQlweG9yCUBzWzJdLCBAdFsxXQotCXB4b3IJ
QHNbM10sIEB0WzBdCi0KLQkjSW52X0dGMTYgXHQwLCBcdDEsIFx0MiwgXHQzLCBcczAsIFxzMSwg
XHMyLCBcczMKLQotCSMgbmV3IHNtYWxsZXIgaW52ZXJzaW9uCi0KLQltb3ZkcWEJQHRbM10sIEBz
WzBdCi0JcGFuZAlAdFsxXSwgQHRbM10KLQlweG9yCUB0WzJdLCBAc1swXQotCi0JbW92ZHFhCUB0
WzBdLCBAc1syXQotCW1vdmRxYQlAc1swXSwgQHNbM10KLQlweG9yCUB0WzNdLCBAc1syXQotCXBh
bmQJQHNbMl0sIEBzWzNdCi0KLQltb3ZkcWEJQHRbMV0sIEBzWzFdCi0JcHhvcglAdFsyXSwgQHNb
M10KLQlweG9yCUB0WzBdLCBAc1sxXQotCi0JcHhvcglAdFsyXSwgQHRbM10KLQotCXBhbmQJQHRb
M10sIEBzWzFdCi0KLQltb3ZkcWEJQHNbMl0sIEB0WzJdCi0JcHhvcglAdFswXSwgQHNbMV0KLQot
CXB4b3IJQHNbMV0sIEB0WzJdCi0JcHhvcglAc1sxXSwgQHRbMV0KLQotCXBhbmQJQHRbMF0sIEB0
WzJdCi0KLQlweG9yCUB0WzJdLCBAc1syXQotCXB4b3IJQHRbMl0sIEB0WzFdCi0KLQlwYW5kCUBz
WzNdLCBAc1syXQotCi0JcHhvcglAc1swXSwgQHNbMl0KLV9fXwotIyBvdXRwdXQgaW4gczMsIHMy
LCBzMSwgdDEKLQotIyBNdWxfR0YxNl8yIFx4MCwgXHgxLCBceDIsIFx4MywgXHg0LCBceDUsIFx4
NiwgXHg3LCBcdDIsIFx0MywgXHQwLCBcdDEsIFxzMCwgXHMxLCBcczIsIFxzMwotCi0jIE11bF9H
RjE2XzIgXHgwLCBceDEsIFx4MiwgXHgzLCBceDQsIFx4NSwgXHg2LCBceDcsIFxzMywgXHMyLCBc
czEsIFx0MSwgXHMwLCBcdDAsIFx0MiwgXHQzCi0JJk11bF9HRjE2XzIoQHgsQHNbMywyLDFdLEB0
WzFdLEBzWzBdLEB0WzAsMiwzXSk7Ci0KLSMjIyBvdXRwdXQgbXNiID4gW3gzLHgyLHgxLHgwLHg3
LHg2LHg1LHg0XSA8IGxzYgotfQotCi0jIEFFUyBsaW5lYXIgY29tcG9uZW50cwotCi1zdWIgU2hp
ZnRSb3dzIHsKLW15IEB4PUBfWzAuLjddOwotbXkgJG1hc2s9cG9wOwotJGNvZGUuPTw8X19fOwot
CXB4b3IJMHgwMCgka2V5KSxAeFswXQotCXB4b3IJMHgxMCgka2V5KSxAeFsxXQotCXB4b3IJMHgy
MCgka2V5KSxAeFsyXQotCXB4b3IJMHgzMCgka2V5KSxAeFszXQotCXBzaHVmYgkkbWFzayxAeFsw
XQotCXBzaHVmYgkkbWFzayxAeFsxXQotCXB4b3IJMHg0MCgka2V5KSxAeFs0XQotCXB4b3IJMHg1
MCgka2V5KSxAeFs1XQotCXBzaHVmYgkkbWFzayxAeFsyXQotCXBzaHVmYgkkbWFzayxAeFszXQot
CXB4b3IJMHg2MCgka2V5KSxAeFs2XQotCXB4b3IJMHg3MCgka2V5KSxAeFs3XQotCXBzaHVmYgkk
bWFzayxAeFs0XQotCXBzaHVmYgkkbWFzayxAeFs1XQotCXBzaHVmYgkkbWFzayxAeFs2XQotCXBz
aHVmYgkkbWFzayxAeFs3XQotCWxlYQkweDgwKCRrZXkpLCRrZXkKLV9fXwotfQotCi1zdWIgTWl4
Q29sdW1ucyB7Ci0jIG1vZGlmaWVkIHRvIGVtaXQgb3V0cHV0IGluIG9yZGVyIHN1aXRhYmxlIGZv
ciBmZWVkaW5nIGJhY2sgdG8gYWVzZW5jW2xhc3RdCi1teSBAeD1AX1swLi43XTsKLW15IEB0PUBf
WzguLjE1XTsKLW15ICRpbnY9QF9bMTZdOwkjIG9wdGlvbmFsCi0kY29kZS49PDxfX187Ci0JcHNo
dWZkCVwkMHg5MywgQHhbMF0sIEB0WzBdCSMgeDAgPDw8IDMyCi0JcHNodWZkCVwkMHg5MywgQHhb
MV0sIEB0WzFdCi0JIHB4b3IJQHRbMF0sIEB4WzBdCQkjIHgwIF4gKHgwIDw8PCAzMikKLQlwc2h1
ZmQJXCQweDkzLCBAeFsyXSwgQHRbMl0KLQkgcHhvcglAdFsxXSwgQHhbMV0KLQlwc2h1ZmQJXCQw
eDkzLCBAeFszXSwgQHRbM10KLQkgcHhvcglAdFsyXSwgQHhbMl0KLQlwc2h1ZmQJXCQweDkzLCBA
eFs0XSwgQHRbNF0KLQkgcHhvcglAdFszXSwgQHhbM10KLQlwc2h1ZmQJXCQweDkzLCBAeFs1XSwg
QHRbNV0KLQkgcHhvcglAdFs0XSwgQHhbNF0KLQlwc2h1ZmQJXCQweDkzLCBAeFs2XSwgQHRbNl0K
LQkgcHhvcglAdFs1XSwgQHhbNV0KLQlwc2h1ZmQJXCQweDkzLCBAeFs3XSwgQHRbN10KLQkgcHhv
cglAdFs2XSwgQHhbNl0KLQkgcHhvcglAdFs3XSwgQHhbN10KLQotCXB4b3IJQHhbMF0sIEB0WzFd
Ci0JcHhvcglAeFs3XSwgQHRbMF0KLQlweG9yCUB4WzddLCBAdFsxXQotCSBwc2h1ZmQJXCQweDRF
LCBAeFswXSwgQHhbMF0gCSMgKHgwIF4gKHgwIDw8PCAzMikpIDw8PCA2NCkKLQlweG9yCUB4WzFd
LCBAdFsyXQotCSBwc2h1ZmQJXCQweDRFLCBAeFsxXSwgQHhbMV0KLQlweG9yCUB4WzRdLCBAdFs1
XQotCSBweG9yCUB0WzBdLCBAeFswXQotCXB4b3IJQHhbNV0sIEB0WzZdCi0JIHB4b3IJQHRbMV0s
IEB4WzFdCi0JcHhvcglAeFszXSwgQHRbNF0KLQkgcHNodWZkCVwkMHg0RSwgQHhbNF0sIEB0WzBd
Ci0JcHhvcglAeFs2XSwgQHRbN10KLQkgcHNodWZkCVwkMHg0RSwgQHhbNV0sIEB0WzFdCi0JcHhv
cglAeFsyXSwgQHRbM10KLQkgcHNodWZkCVwkMHg0RSwgQHhbM10sIEB4WzRdCi0JcHhvcglAeFs3
XSwgQHRbM10KLQkgcHNodWZkCVwkMHg0RSwgQHhbN10sIEB4WzVdCi0JcHhvcglAeFs3XSwgQHRb
NF0KLQkgcHNodWZkCVwkMHg0RSwgQHhbNl0sIEB4WzNdCi0JcHhvcglAdFs0XSwgQHRbMF0KLQkg
cHNodWZkCVwkMHg0RSwgQHhbMl0sIEB4WzZdCi0JcHhvcglAdFs1XSwgQHRbMV0KLV9fXwotJGNv
ZGUuPTw8X19fIGlmICghJGludik7Ci0JcHhvcglAdFszXSwgQHhbNF0KLQlweG9yCUB0WzddLCBA
eFs1XQotCXB4b3IJQHRbNl0sIEB4WzNdCi0JIG1vdmRxYQlAdFswXSwgQHhbMl0KLQlweG9yCUB0
WzJdLCBAeFs2XQotCSBtb3ZkcWEJQHRbMV0sIEB4WzddCi1fX18KLSRjb2RlLj08PF9fXyBpZiAo
JGludik7Ci0JcHhvcglAeFs0XSwgQHRbM10KLQlweG9yCUB0WzddLCBAeFs1XQotCXB4b3IJQHhb
M10sIEB0WzZdCi0JIG1vdmRxYQlAdFswXSwgQHhbM10KLQlweG9yCUB0WzJdLCBAeFs2XQotCSBt
b3ZkcWEJQHRbNl0sIEB4WzJdCi0JIG1vdmRxYQlAdFsxXSwgQHhbN10KLQkgbW92ZHFhCUB4WzZd
LCBAeFs0XQotCSBtb3ZkcWEJQHRbM10sIEB4WzZdCi1fX18KLX0KLQotc3ViIEludk1peENvbHVt
bnNfb3JpZyB7Ci1teSBAeD1AX1swLi43XTsKLW15IEB0PUBfWzguLjE1XTsKLQotJGNvZGUuPTw8
X19fOwotCSMgbXVsdGlwbGljYXRpb24gYnkgMHgwZQotCXBzaHVmZAlcJDB4OTMsIEB4WzddLCBA
dFs3XQotCW1vdmRxYQlAeFsyXSwgQHRbMl0KLQlweG9yCUB4WzVdLCBAeFs3XQkJIyA3IDUKLQlw
eG9yCUB4WzVdLCBAeFsyXQkJIyAyIDUKLQlwc2h1ZmQJXCQweDkzLCBAeFswXSwgQHRbMF0KLQlt
b3ZkcWEJQHhbNV0sIEB0WzVdCi0JcHhvcglAeFswXSwgQHhbNV0JCSMgNSAwCQlbMV0KLQlweG9y
CUB4WzFdLCBAeFswXQkJIyAwIDEKLQlwc2h1ZmQJXCQweDkzLCBAeFsxXSwgQHRbMV0KLQlweG9y
CUB4WzJdLCBAeFsxXQkJIyAxIDI1Ci0JcHhvcglAeFs2XSwgQHhbMF0JCSMgMDEgNgkJWzJdCi0J
cHhvcglAeFszXSwgQHhbMV0JCSMgMTI1IDMJCVs0XQotCXBzaHVmZAlcJDB4OTMsIEB4WzNdLCBA
dFszXQotCXB4b3IJQHhbMF0sIEB4WzJdCQkjIDI1IDAxNglbM10KLQlweG9yCUB4WzddLCBAeFsz
XQkJIyAzIDc1Ci0JcHhvcglAeFs2XSwgQHhbN10JCSMgNzUgNgkJWzBdCi0JcHNodWZkCVwkMHg5
MywgQHhbNl0sIEB0WzZdCi0JbW92ZHFhCUB4WzRdLCBAdFs0XQotCXB4b3IJQHhbNF0sIEB4WzZd
CQkjIDYgNAotCXB4b3IJQHhbM10sIEB4WzRdCQkjIDQgMzc1CQlbNl0KLQlweG9yCUB4WzddLCBA
eFszXQkJIyAzNzUgNzU2PTM2Ci0JcHhvcglAdFs1XSwgQHhbNl0JCSMgNjQgNQkJWzddCi0JcHhv
cglAdFsyXSwgQHhbM10JCSMgMzYgMgotCXB4b3IJQHRbNF0sIEB4WzNdCQkjIDM2MiA0CQlbNV0K
LQlwc2h1ZmQJXCQweDkzLCBAdFs1XSwgQHRbNV0KLV9fXwotCQkJCQlteSBAeSA9IEB4WzcsNSww
LDIsMSwzLDQsNl07Ci0kY29kZS49PDxfX187Ci0JIyBtdWx0aXBsaWNhdGlvbiBieSAweDBiCi0J
cHhvcglAeVswXSwgQHlbMV0KLQlweG9yCUB0WzBdLCBAeVswXQotCXB4b3IJQHRbMV0sIEB5WzFd
Ci0JcHNodWZkCVwkMHg5MywgQHRbMl0sIEB0WzJdCi0JcHhvcglAdFs1XSwgQHlbMF0KLQlweG9y
CUB0WzZdLCBAeVsxXQotCXB4b3IJQHRbN10sIEB5WzBdCi0JcHNodWZkCVwkMHg5MywgQHRbNF0s
IEB0WzRdCi0JcHhvcglAdFs2XSwgQHRbN10JCSMgY2xvYmJlciB0WzddCi0JcHhvcglAeVswXSwg
QHlbMV0KLQotCXB4b3IJQHRbMF0sIEB5WzNdCi0JcHNodWZkCVwkMHg5MywgQHRbMF0sIEB0WzBd
Ci0JcHhvcglAdFsxXSwgQHlbMl0KLQlweG9yCUB0WzFdLCBAeVs0XQotCXB4b3IJQHRbMl0sIEB5
WzJdCi0JcHNodWZkCVwkMHg5MywgQHRbMV0sIEB0WzFdCi0JcHhvcglAdFsyXSwgQHlbM10KLQlw
eG9yCUB0WzJdLCBAeVs1XQotCXB4b3IJQHRbN10sIEB5WzJdCi0JcHNodWZkCVwkMHg5MywgQHRb
Ml0sIEB0WzJdCi0JcHhvcglAdFszXSwgQHlbM10KLQlweG9yCUB0WzNdLCBAeVs2XQotCXB4b3IJ
QHRbM10sIEB5WzRdCi0JcHNodWZkCVwkMHg5MywgQHRbM10sIEB0WzNdCi0JcHhvcglAdFs0XSwg
QHlbN10KLQlweG9yCUB0WzRdLCBAeVs1XQotCXB4b3IJQHRbN10sIEB5WzddCi0JcHhvcglAdFs1
XSwgQHlbM10KLQlweG9yCUB0WzRdLCBAeVs0XQotCXB4b3IJQHRbNV0sIEB0WzddCQkjIGNsb2Ji
ZXIgdFs3XSBldmVuIG1vcmUKLQotCXB4b3IJQHRbN10sIEB5WzVdCi0JcHNodWZkCVwkMHg5Mywg
QHRbNF0sIEB0WzRdCi0JcHhvcglAdFs3XSwgQHlbNl0KLQlweG9yCUB0WzddLCBAeVs0XQotCi0J
cHhvcglAdFs1XSwgQHRbN10KLQlwc2h1ZmQJXCQweDkzLCBAdFs1XSwgQHRbNV0KLQlweG9yCUB0
WzZdLCBAdFs3XQkJIyByZXN0b3JlIHRbN10KLQotCSMgbXVsdGlwbGljYXRpb24gYnkgMHgwZAot
CXB4b3IJQHlbN10sIEB5WzRdCi0JcHhvcglAdFs0XSwgQHlbN10KLQlwc2h1ZmQJXCQweDkzLCBA
dFs2XSwgQHRbNl0KLQlweG9yCUB0WzBdLCBAeVsyXQotCXB4b3IJQHRbNV0sIEB5WzddCi0JcHhv
cglAdFsyXSwgQHlbMl0KLQlwc2h1ZmQJXCQweDkzLCBAdFs3XSwgQHRbN10KLQotCXB4b3IJQHlb
MV0sIEB5WzNdCi0JcHhvcglAdFsxXSwgQHlbMV0KLQlweG9yCUB0WzBdLCBAeVswXQotCXB4b3IJ
QHRbMF0sIEB5WzNdCi0JcHhvcglAdFs1XSwgQHlbMV0KLQlweG9yCUB0WzVdLCBAeVswXQotCXB4
b3IJQHRbN10sIEB5WzFdCi0JcHNodWZkCVwkMHg5MywgQHRbMF0sIEB0WzBdCi0JcHhvcglAdFs2
XSwgQHlbMF0KLQlweG9yCUB5WzFdLCBAeVszXQotCXB4b3IJQHRbMV0sIEB5WzRdCi0JcHNodWZk
CVwkMHg5MywgQHRbMV0sIEB0WzFdCi0KLQlweG9yCUB0WzddLCBAeVs3XQotCXB4b3IJQHRbMl0s
IEB5WzRdCi0JcHhvcglAdFsyXSwgQHlbNV0KLQlwc2h1ZmQJXCQweDkzLCBAdFsyXSwgQHRbMl0K
LQlweG9yCUB0WzZdLCBAeVsyXQotCXB4b3IJQHRbM10sIEB0WzZdCQkjIGNsb2JiZXIgdFs2XQot
CXB4b3IJQHlbN10sIEB5WzRdCi0JcHhvcglAdFs2XSwgQHlbM10KLQotCXB4b3IJQHRbNl0sIEB5
WzZdCi0JcHhvcglAdFs1XSwgQHlbNV0KLQlweG9yCUB0WzRdLCBAeVs2XQotCXBzaHVmZAlcJDB4
OTMsIEB0WzRdLCBAdFs0XQotCXB4b3IJQHRbNl0sIEB5WzVdCi0JcHhvcglAdFs3XSwgQHlbNl0K
LQlweG9yCUB0WzNdLCBAdFs2XQkJIyByZXN0b3JlIHRbNl0KLQotCXBzaHVmZAlcJDB4OTMsIEB0
WzVdLCBAdFs1XQotCXBzaHVmZAlcJDB4OTMsIEB0WzZdLCBAdFs2XQotCXBzaHVmZAlcJDB4OTMs
IEB0WzddLCBAdFs3XQotCXBzaHVmZAlcJDB4OTMsIEB0WzNdLCBAdFszXQotCi0JIyBtdWx0aXBs
aWNhdGlvbiBieSAweDA5Ci0JcHhvcglAeVsxXSwgQHlbNF0KLQlweG9yCUB5WzFdLCBAdFsxXQkJ
IyB0WzFdPXlbMV0KLQlweG9yCUB0WzVdLCBAdFswXQkJIyBjbG9iYmVyIHRbMF0KLQlweG9yCUB0
WzVdLCBAdFsxXQotCXB4b3IJQHRbMF0sIEB5WzNdCi0JcHhvcglAeVswXSwgQHRbMF0JCSMgdFsw
XT15WzBdCi0JcHhvcglAdFs2XSwgQHRbMV0KLQlweG9yCUB0WzddLCBAdFs2XQkJIyBjbG9iYmVy
IHRbNl0KLQlweG9yCUB0WzFdLCBAeVs0XQotCXB4b3IJQHRbNF0sIEB5WzddCi0JcHhvcglAeVs0
XSwgQHRbNF0JCSMgdFs0XT15WzRdCi0JcHhvcglAdFszXSwgQHlbNl0KLQlweG9yCUB5WzNdLCBA
dFszXQkJIyB0WzNdPXlbM10KLQlweG9yCUB0WzJdLCBAeVs1XQotCXB4b3IJQHlbMl0sIEB0WzJd
CQkjIHRbMl09eVsyXQotCXB4b3IJQHRbN10sIEB0WzNdCi0JcHhvcglAeVs1XSwgQHRbNV0JCSMg
dFs1XT15WzVdCi0JcHhvcglAdFs2XSwgQHRbMl0KLQlweG9yCUB0WzZdLCBAdFs1XQotCXB4b3IJ
QHlbNl0sIEB0WzZdCQkjIHRbNl09eVs2XQotCXB4b3IJQHlbN10sIEB0WzddCQkjIHRbN109eVs3
XQotCi0JbW92ZHFhCUB0WzBdLEBYTU1bMF0KLQltb3ZkcWEJQHRbMV0sQFhNTVsxXQotCW1vdmRx
YQlAdFsyXSxAWE1NWzJdCi0JbW92ZHFhCUB0WzNdLEBYTU1bM10KLQltb3ZkcWEJQHRbNF0sQFhN
TVs0XQotCW1vdmRxYQlAdFs1XSxAWE1NWzVdCi0JbW92ZHFhCUB0WzZdLEBYTU1bNl0KLQltb3Zk
cWEJQHRbN10sQFhNTVs3XQotX19fCi19Ci0KLXN1YiBJbnZNaXhDb2x1bW5zIHsKLW15IEB4PUBf
WzAuLjddOwotbXkgQHQ9QF9bOC4uMTVdOwotCi0jIFRoYW5rcyB0byBKdXNzaSBLaXZpbGlubmEg
Zm9yIHByb3ZpZGluZyBwb2ludGVyIHRvCi0jCi0jIHwgMGUgMGIgMGQgMDkgfCAgIHwgMDIgMDMg
MDEgMDEgfCAgIHwgMDUgMDAgMDQgMDAgfAotIyB8IDA5IDBlIDBiIDBkIHwgPSB8IDAxIDAyIDAz
IDAxIHwgeCB8IDAwIDA1IDAwIDA0IHwKLSMgfCAwZCAwOSAwZSAwYiB8ICAgfCAwMSAwMSAwMiAw
MyB8ICAgfCAwNCAwMCAwNSAwMCB8Ci0jIHwgMGIgMGQgMDkgMGUgfCAgIHwgMDMgMDEgMDEgMDIg
fCAgIHwgMDAgMDQgMDAgMDUgfAotCi0kY29kZS49PDxfX187Ci0JIyBtdWx0aXBsaWNhdGlvbiBi
eSAweDA1LTB4MDAtMHgwNC0weDAwCi0JcHNodWZkCVwkMHg0RSwgQHhbMF0sIEB0WzBdCi0JcHNo
dWZkCVwkMHg0RSwgQHhbNl0sIEB0WzZdCi0JcHhvcglAeFswXSwgQHRbMF0KLQlwc2h1ZmQJXCQw
eDRFLCBAeFs3XSwgQHRbN10KLQlweG9yCUB4WzZdLCBAdFs2XQotCXBzaHVmZAlcJDB4NEUsIEB4
WzFdLCBAdFsxXQotCXB4b3IJQHhbN10sIEB0WzddCi0JcHNodWZkCVwkMHg0RSwgQHhbMl0sIEB0
WzJdCi0JcHhvcglAeFsxXSwgQHRbMV0KLQlwc2h1ZmQJXCQweDRFLCBAeFszXSwgQHRbM10KLQlw
eG9yCUB4WzJdLCBAdFsyXQotCSBweG9yCUB0WzZdLCBAeFswXQotCSBweG9yCUB0WzZdLCBAeFsx
XQotCXBzaHVmZAlcJDB4NEUsIEB4WzRdLCBAdFs0XQotCXB4b3IJQHhbM10sIEB0WzNdCi0JIHB4
b3IJQHRbMF0sIEB4WzJdCi0JIHB4b3IJQHRbMV0sIEB4WzNdCi0JcHNodWZkCVwkMHg0RSwgQHhb
NV0sIEB0WzVdCi0JcHhvcglAeFs0XSwgQHRbNF0KLQkgcHhvcglAdFs3XSwgQHhbMV0KLQkgcHhv
cglAdFsyXSwgQHhbNF0KLQlweG9yCUB4WzVdLCBAdFs1XQotCi0JIHB4b3IJQHRbN10sIEB4WzJd
Ci0JIHB4b3IJQHRbNl0sIEB4WzNdCi0JIHB4b3IJQHRbNl0sIEB4WzRdCi0JIHB4b3IJQHRbM10s
IEB4WzVdCi0JIHB4b3IJQHRbNF0sIEB4WzZdCi0JIHB4b3IJQHRbN10sIEB4WzRdCi0JIHB4b3IJ
QHRbN10sIEB4WzVdCi0JIHB4b3IJQHRbNV0sIEB4WzddCi1fX18KLQkmTWl4Q29sdW1ucwkoQHgs
QHQsMSk7CSMgZmxpcHBlZCAyPC0+MyBhbmQgNDwtPjYKLX0KLQotc3ViIGFlc2VuYyB7CQkJCSMg
bm90IHVzZWQKLW15IEBiPUBfWzAuLjddOwotbXkgQHQ9QF9bOC4uMTVdOwotJGNvZGUuPTw8X19f
OwotCW1vdmRxYQkweDMwKCRjb25zdCksQHRbMF0JIyAuTFNSCi1fX18KLQkmU2hpZnRSb3dzCShA
YixAdFswXSk7Ci0JJlNib3gJCShAYixAdCk7Ci0JJk1peENvbHVtbnMJKEBiWzAsMSw0LDYsMyw3
LDIsNV0sQHQpOwotfQotCi1zdWIgYWVzZW5jbGFzdCB7CQkJIyBub3QgdXNlZAotbXkgQGI9QF9b
MC4uN107Ci1teSBAdD1AX1s4Li4xNV07Ci0kY29kZS49PDxfX187Ci0JbW92ZHFhCTB4NDAoJGNv
bnN0KSxAdFswXQkjIC5MU1JNMAotX19fCi0JJlNoaWZ0Um93cwkoQGIsQHRbMF0pOwotCSZTYm94
CQkoQGIsQHQpOwotJGNvZGUuPTw8X19fCi0JcHhvcgkweDAwKCRrZXkpLEBiWzBdCi0JcHhvcgkw
eDEwKCRrZXkpLEBiWzFdCi0JcHhvcgkweDIwKCRrZXkpLEBiWzRdCi0JcHhvcgkweDMwKCRrZXkp
LEBiWzZdCi0JcHhvcgkweDQwKCRrZXkpLEBiWzNdCi0JcHhvcgkweDUwKCRrZXkpLEBiWzddCi0J
cHhvcgkweDYwKCRrZXkpLEBiWzJdCi0JcHhvcgkweDcwKCRrZXkpLEBiWzVdCi1fX18KLX0KLQot
c3ViIHN3YXBtb3ZlIHsKLW15ICgkYSwkYiwkbiwkbWFzaywkdCk9QF87Ci0kY29kZS49PDxfX187
Ci0JbW92ZHFhCSRiLCR0Ci0JcHNybHEJXCQkbiwkYgotCXB4b3IgIAkkYSwkYgotCXBhbmQJJG1h
c2ssJGIKLQlweG9yCSRiLCRhCi0JcHNsbHEJXCQkbiwkYgotCXB4b3IJJHQsJGIKLV9fXwotfQot
c3ViIHN3YXBtb3ZlMnggewotbXkgKCRhMCwkYjAsJGExLCRiMSwkbiwkbWFzaywkdDAsJHQxKT1A
XzsKLSRjb2RlLj08PF9fXzsKLQltb3ZkcWEJJGIwLCR0MAotCXBzcmxxCVwkJG4sJGIwCi0JIG1v
dmRxYQkkYjEsJHQxCi0JIHBzcmxxCVwkJG4sJGIxCi0JcHhvciAgCSRhMCwkYjAKLQkgcHhvciAg
CSRhMSwkYjEKLQlwYW5kCSRtYXNrLCRiMAotCSBwYW5kCSRtYXNrLCRiMQotCXB4b3IJJGIwLCRh
MAotCXBzbGxxCVwkJG4sJGIwCi0JIHB4b3IJJGIxLCRhMQotCSBwc2xscQlcJCRuLCRiMQotCXB4
b3IJJHQwLCRiMAotCSBweG9yCSR0MSwkYjEKLV9fXwotfQotCi1zdWIgYml0c2xpY2UgewotbXkg
QHg9cmV2ZXJzZShAX1swLi43XSk7Ci1teSAoJHQwLCR0MSwkdDIsJHQzKT1AX1s4Li4xMV07Ci0k
Y29kZS49PDxfX187Ci0JbW92ZHFhCTB4MDAoJGNvbnN0KSwkdDAJIyAuTEJTMAotCW1vdmRxYQkw
eDEwKCRjb25zdCksJHQxCSMgLkxCUzEKLV9fXwotCSZzd2FwbW92ZTJ4KEB4WzAsMSwyLDNdLDEs
JHQwLCR0MiwkdDMpOwotCSZzd2FwbW92ZTJ4KEB4WzQsNSw2LDddLDEsJHQwLCR0MiwkdDMpOwot
JGNvZGUuPTw8X19fOwotCW1vdmRxYQkweDIwKCRjb25zdCksJHQwCSMgLkxCUzIKLV9fXwotCSZz
d2FwbW92ZTJ4KEB4WzAsMiwxLDNdLDIsJHQxLCR0MiwkdDMpOwotCSZzd2FwbW92ZTJ4KEB4WzQs
Niw1LDddLDIsJHQxLCR0MiwkdDMpOwotCi0JJnN3YXBtb3ZlMngoQHhbMCw0LDEsNV0sNCwkdDAs
JHQyLCR0Myk7Ci0JJnN3YXBtb3ZlMngoQHhbMiw2LDMsN10sNCwkdDAsJHQyLCR0Myk7Ci19Ci0K
LSRjb2RlLj08PF9fXzsKLS50ZXh0Ci0KLS5leHRlcm4JYWVzX25vaHdfZW5jcnlwdAotLmV4dGVy
bglhZXNfbm9od19kZWNyeXB0Ci0KLS50eXBlCV9ic2Flc19lbmNyeXB0OCxcQGFiaS1vbW5pcG90
ZW50Ci0uYWxpZ24JNjQKLV9ic2Flc19lbmNyeXB0ODoKLQlsZWEJLkxCUzAoJXJpcCksICRjb25z
dAkjIGNvbnN0YW50cyB0YWJsZQotCi0JbW92ZHFhCSgka2V5KSwgQFhNTVs5XQkJIyByb3VuZCAw
IGtleQotCWxlYQkweDEwKCRrZXkpLCAka2V5Ci0JbW92ZHFhCTB4NTAoJGNvbnN0KSwgQFhNTVs4
XQkjIC5MTTBTUgotCXB4b3IJQFhNTVs5XSwgQFhNTVswXQkjIHhvciB3aXRoIHJvdW5kMCBrZXkK
LQlweG9yCUBYTU1bOV0sIEBYTU1bMV0KLQlweG9yCUBYTU1bOV0sIEBYTU1bMl0KLQlweG9yCUBY
TU1bOV0sIEBYTU1bM10KLQkgcHNodWZiCUBYTU1bOF0sIEBYTU1bMF0KLQkgcHNodWZiCUBYTU1b
OF0sIEBYTU1bMV0KLQlweG9yCUBYTU1bOV0sIEBYTU1bNF0KLQlweG9yCUBYTU1bOV0sIEBYTU1b
NV0KLQkgcHNodWZiCUBYTU1bOF0sIEBYTU1bMl0KLQkgcHNodWZiCUBYTU1bOF0sIEBYTU1bM10K
LQlweG9yCUBYTU1bOV0sIEBYTU1bNl0KLQlweG9yCUBYTU1bOV0sIEBYTU1bN10KLQkgcHNodWZi
CUBYTU1bOF0sIEBYTU1bNF0KLQkgcHNodWZiCUBYTU1bOF0sIEBYTU1bNV0KLQkgcHNodWZiCUBY
TU1bOF0sIEBYTU1bNl0KLQkgcHNodWZiCUBYTU1bOF0sIEBYTU1bN10KLV9ic2Flc19lbmNyeXB0
OF9iaXRzbGljZToKLV9fXwotCSZiaXRzbGljZQkoQFhNTVswLi43LCA4Li4xMV0pOwotJGNvZGUu
PTw8X19fOwotCWRlYwkkcm91bmRzCi0Jam1wCS5MZW5jX3Nib3gKLS5hbGlnbgkxNgotLkxlbmNf
bG9vcDoKLV9fXwotCSZTaGlmdFJvd3MJKEBYTU1bMC4uNywgOF0pOwotJGNvZGUuPSIuTGVuY19z
Ym94OlxuIjsKLQkmU2JveAkJKEBYTU1bMC4uNywgOC4uMTVdKTsKLSRjb2RlLj08PF9fXzsKLQlk
ZWMJJHJvdW5kcwotCWpsCS5MZW5jX2RvbmUKLV9fXwotCSZNaXhDb2x1bW5zCShAWE1NWzAsMSw0
LDYsMyw3LDIsNSwgOC4uMTVdKTsKLSRjb2RlLj08PF9fXzsKLQltb3ZkcWEJMHgzMCgkY29uc3Qp
LCBAWE1NWzhdCSMgLkxTUgotCWpuegkuTGVuY19sb29wCi0JbW92ZHFhCTB4NDAoJGNvbnN0KSwg
QFhNTVs4XQkjIC5MU1JNMAotCWptcAkuTGVuY19sb29wCi0uYWxpZ24JMTYKLS5MZW5jX2RvbmU6
Ci1fX18KLQkjIG91dHB1dCBpbiBsc2IgPiBbdDAsIHQxLCB0NCwgdDYsIHQzLCB0NywgdDIsIHQ1
XSA8IG1zYgotCSZiaXRzbGljZQkoQFhNTVswLDEsNCw2LDMsNywyLDUsIDguLjExXSk7Ci0kY29k
ZS49PDxfX187Ci0JbW92ZHFhCSgka2V5KSwgQFhNTVs4XQkJIyBsYXN0IHJvdW5kIGtleQotCXB4
b3IJQFhNTVs4XSwgQFhNTVs0XQotCXB4b3IJQFhNTVs4XSwgQFhNTVs2XQotCXB4b3IJQFhNTVs4
XSwgQFhNTVszXQotCXB4b3IJQFhNTVs4XSwgQFhNTVs3XQotCXB4b3IJQFhNTVs4XSwgQFhNTVsy
XQotCXB4b3IJQFhNTVs4XSwgQFhNTVs1XQotCXB4b3IJQFhNTVs4XSwgQFhNTVswXQotCXB4b3IJ
QFhNTVs4XSwgQFhNTVsxXQotCXJldAotLnNpemUJX2JzYWVzX2VuY3J5cHQ4LC4tX2JzYWVzX2Vu
Y3J5cHQ4Ci0KLS50eXBlCV9ic2Flc19kZWNyeXB0OCxcQGFiaS1vbW5pcG90ZW50Ci0uYWxpZ24J
NjQKLV9ic2Flc19kZWNyeXB0ODoKLQlsZWEJLkxCUzAoJXJpcCksICRjb25zdAkjIGNvbnN0YW50
cyB0YWJsZQotCi0JbW92ZHFhCSgka2V5KSwgQFhNTVs5XQkJIyByb3VuZCAwIGtleQotCWxlYQkw
eDEwKCRrZXkpLCAka2V5Ci0JbW92ZHFhCS0weDMwKCRjb25zdCksIEBYTU1bOF0JIyAuTE0wSVNS
Ci0JcHhvcglAWE1NWzldLCBAWE1NWzBdCSMgeG9yIHdpdGggcm91bmQwIGtleQotCXB4b3IJQFhN
TVs5XSwgQFhNTVsxXQotCXB4b3IJQFhNTVs5XSwgQFhNTVsyXQotCXB4b3IJQFhNTVs5XSwgQFhN
TVszXQotCSBwc2h1ZmIJQFhNTVs4XSwgQFhNTVswXQotCSBwc2h1ZmIJQFhNTVs4XSwgQFhNTVsx
XQotCXB4b3IJQFhNTVs5XSwgQFhNTVs0XQotCXB4b3IJQFhNTVs5XSwgQFhNTVs1XQotCSBwc2h1
ZmIJQFhNTVs4XSwgQFhNTVsyXQotCSBwc2h1ZmIJQFhNTVs4XSwgQFhNTVszXQotCXB4b3IJQFhN
TVs5XSwgQFhNTVs2XQotCXB4b3IJQFhNTVs5XSwgQFhNTVs3XQotCSBwc2h1ZmIJQFhNTVs4XSwg
QFhNTVs0XQotCSBwc2h1ZmIJQFhNTVs4XSwgQFhNTVs1XQotCSBwc2h1ZmIJQFhNTVs4XSwgQFhN
TVs2XQotCSBwc2h1ZmIJQFhNTVs4XSwgQFhNTVs3XQotX19fCi0JJmJpdHNsaWNlCShAWE1NWzAu
LjcsIDguLjExXSk7Ci0kY29kZS49PDxfX187Ci0JZGVjCSRyb3VuZHMKLQlqbXAJLkxkZWNfc2Jv
eAotLmFsaWduCTE2Ci0uTGRlY19sb29wOgotX19fCi0JJlNoaWZ0Um93cwkoQFhNTVswLi43LCA4
XSk7Ci0kY29kZS49Ii5MZGVjX3Nib3g6XG4iOwotCSZJbnZTYm94CShAWE1NWzAuLjcsIDguLjE1
XSk7Ci0kY29kZS49PDxfX187Ci0JZGVjCSRyb3VuZHMKLQlqbAkuTGRlY19kb25lCi1fX18KLQkm
SW52TWl4Q29sdW1ucwkoQFhNTVswLDEsNiw0LDIsNywzLDUsIDguLjE1XSk7Ci0kY29kZS49PDxf
X187Ci0JbW92ZHFhCS0weDEwKCRjb25zdCksIEBYTU1bOF0JIyAuTElTUgotCWpuegkuTGRlY19s
b29wCi0JbW92ZHFhCS0weDIwKCRjb25zdCksIEBYTU1bOF0JIyAuTElTUk0wCi0Jam1wCS5MZGVj
X2xvb3AKLS5hbGlnbgkxNgotLkxkZWNfZG9uZToKLV9fXwotCSZiaXRzbGljZQkoQFhNTVswLDEs
Niw0LDIsNywzLDUsIDguLjExXSk7Ci0kY29kZS49PDxfX187Ci0JbW92ZHFhCSgka2V5KSwgQFhN
TVs4XQkJIyBsYXN0IHJvdW5kIGtleQotCXB4b3IJQFhNTVs4XSwgQFhNTVs2XQotCXB4b3IJQFhN
TVs4XSwgQFhNTVs0XQotCXB4b3IJQFhNTVs4XSwgQFhNTVsyXQotCXB4b3IJQFhNTVs4XSwgQFhN
TVs3XQotCXB4b3IJQFhNTVs4XSwgQFhNTVszXQotCXB4b3IJQFhNTVs4XSwgQFhNTVs1XQotCXB4
b3IJQFhNTVs4XSwgQFhNTVswXQotCXB4b3IJQFhNTVs4XSwgQFhNTVsxXQotCXJldAotLnNpemUJ
X2JzYWVzX2RlY3J5cHQ4LC4tX2JzYWVzX2RlY3J5cHQ4Ci1fX18KLX0KLXsKLW15ICgkb3V0LCRp
bnAsJHJvdW5kcywkY29uc3QpPSgiJXJheCIsIiVyY3giLCIlcjEwZCIsIiVyMTEiKTsKLQotc3Vi
IGJpdHNsaWNlX2tleSB7Ci1teSBAeD1yZXZlcnNlKEBfWzAuLjddKTsKLW15ICgkYnMwLCRiczEs
JGJzMiwkdDIsJHQzKT1AX1s4Li4xMl07Ci0KLQkmc3dhcG1vdmUJKEB4WzAsMV0sMSwkYnMwLCR0
MiwkdDMpOwotJGNvZGUuPTw8X19fOwotCSMmc3dhcG1vdmUoQHhbMiwzXSwxLCR0MCwkdDIsJHQz
KTsKLQltb3ZkcWEJQHhbMF0sIEB4WzJdCi0JbW92ZHFhCUB4WzFdLCBAeFszXQotX19fCi0JIyZz
d2FwbW92ZTJ4KEB4WzQsNSw2LDddLDEsJHQwLCR0MiwkdDMpOwotCi0JJnN3YXBtb3ZlMngJKEB4
WzAsMiwxLDNdLDIsJGJzMSwkdDIsJHQzKTsKLSRjb2RlLj08PF9fXzsKLQkjJnN3YXBtb3ZlMngo
QHhbNCw2LDUsN10sMiwkdDEsJHQyLCR0Myk7Ci0JbW92ZHFhCUB4WzBdLCBAeFs0XQotCW1vdmRx
YQlAeFsyXSwgQHhbNl0KLQltb3ZkcWEJQHhbMV0sIEB4WzVdCi0JbW92ZHFhCUB4WzNdLCBAeFs3
XQotX19fCi0JJnN3YXBtb3ZlMngJKEB4WzAsNCwxLDVdLDQsJGJzMiwkdDIsJHQzKTsKLQkmc3dh
cG1vdmUyeAkoQHhbMiw2LDMsN10sNCwkYnMyLCR0MiwkdDMpOwotfQotCi0kY29kZS49PDxfX187
Ci0udHlwZQlfYnNhZXNfa2V5X2NvbnZlcnQsXEBhYmktb21uaXBvdGVudAotLmFsaWduCTE2Ci1f
YnNhZXNfa2V5X2NvbnZlcnQ6Ci0JbGVhCS5MbWFza3MoJXJpcCksICRjb25zdAotCW1vdmRxdQko
JGlucCksICV4bW03CQkjIGxvYWQgcm91bmQgMCBrZXkKLQlsZWEJMHgxMCgkaW5wKSwgJGlucAot
CW1vdmRxYQkweDAwKCRjb25zdCksICV4bW0wCSMgMHgwMS4uLgotCW1vdmRxYQkweDEwKCRjb25z
dCksICV4bW0xCSMgMHgwMi4uLgotCW1vdmRxYQkweDIwKCRjb25zdCksICV4bW0yCSMgMHgwNC4u
LgotCW1vdmRxYQkweDMwKCRjb25zdCksICV4bW0zCSMgMHgwOC4uLgotCW1vdmRxYQkweDQwKCRj
b25zdCksICV4bW00CSMgLkxNMAotCXBjbXBlcWQJJXhtbTUsICV4bW01CQkjIC5MTk9UCi0KLQlt
b3ZkcXUJKCRpbnApLCAleG1tNgkJIyBsb2FkIHJvdW5kIDEga2V5Ci0JbW92ZHFhCSV4bW03LCAo
JG91dCkJCSMgc2F2ZSByb3VuZCAwIGtleQotCWxlYQkweDEwKCRvdXQpLCAkb3V0Ci0JZGVjCSRy
b3VuZHMKLQlqbXAJLkxrZXlfbG9vcAotLmFsaWduCTE2Ci0uTGtleV9sb29wOgotCXBzaHVmYgkl
eG1tNCwgJXhtbTYJCSMgLkxNMAotCi0JbW92ZHFhCSV4bW0wLAkleG1tOAotCW1vdmRxYQkleG1t
MSwJJXhtbTkKLQotCXBhbmQJJXhtbTYsCSV4bW04Ci0JcGFuZAkleG1tNiwJJXhtbTkKLQltb3Zk
cWEJJXhtbTIsCSV4bW0xMAotCXBjbXBlcWIJJXhtbTAsCSV4bW04Ci0JcHNsbHEJXCQ0LAkleG1t
MAkJIyAweDEwLi4uCi0JbW92ZHFhCSV4bW0zLAkleG1tMTEKLQlwY21wZXFiCSV4bW0xLAkleG1t
OQotCXBzbGxxCVwkNCwJJXhtbTEJCSMgMHgyMC4uLgotCi0JcGFuZAkleG1tNiwJJXhtbTEwCi0J
cGFuZAkleG1tNiwJJXhtbTExCi0JbW92ZHFhCSV4bW0wLAkleG1tMTIKLQlwY21wZXFiCSV4bW0y
LAkleG1tMTAKLQlwc2xscQlcJDQsCSV4bW0yCQkjIDB4NDAuLi4KLQltb3ZkcWEJJXhtbTEsCSV4
bW0xMwotCXBjbXBlcWIJJXhtbTMsCSV4bW0xMQotCXBzbGxxCVwkNCwJJXhtbTMJCSMgMHg4MC4u
LgotCi0JbW92ZHFhCSV4bW0yLAkleG1tMTQKLQltb3ZkcWEJJXhtbTMsCSV4bW0xNQotCSBweG9y
CSV4bW01LAkleG1tOAkJIyAicG5vdCIKLQkgcHhvcgkleG1tNSwJJXhtbTkKLQotCXBhbmQJJXht
bTYsCSV4bW0xMgotCXBhbmQJJXhtbTYsCSV4bW0xMwotCSBtb3ZkcWEJJXhtbTgsIDB4MDAoJG91
dCkJIyB3cml0ZSBiaXQtc2xpY2VkIHJvdW5kIGtleQotCXBjbXBlcWIJJXhtbTAsCSV4bW0xMgot
CXBzcmxxCVwkNCwJJXhtbTAJCSMgMHgwMS4uLgotCSBtb3ZkcWEJJXhtbTksIDB4MTAoJG91dCkK
LQlwY21wZXFiCSV4bW0xLAkleG1tMTMKLQlwc3JscQlcJDQsCSV4bW0xCQkjIDB4MDIuLi4KLQkg
bGVhCTB4MTAoJGlucCksICRpbnAKLQotCXBhbmQJJXhtbTYsCSV4bW0xNAotCXBhbmQJJXhtbTYs
CSV4bW0xNQotCSBtb3ZkcWEJJXhtbTEwLCAweDIwKCRvdXQpCi0JcGNtcGVxYgkleG1tMiwJJXht
bTE0Ci0JcHNybHEJXCQ0LAkleG1tMgkJIyAweDA0Li4uCi0JIG1vdmRxYQkleG1tMTEsIDB4MzAo
JG91dCkKLQlwY21wZXFiCSV4bW0zLAkleG1tMTUKLQlwc3JscQlcJDQsCSV4bW0zCQkjIDB4MDgu
Li4KLQkgbW92ZHF1CSgkaW5wKSwgJXhtbTYJCSMgbG9hZCBuZXh0IHJvdW5kIGtleQotCi0JcHhv
cgkleG1tNSwgJXhtbTEzCQkjICJwbm90IgotCXB4b3IJJXhtbTUsICV4bW0xNAotCW1vdmRxYQkl
eG1tMTIsIDB4NDAoJG91dCkKLQltb3ZkcWEJJXhtbTEzLCAweDUwKCRvdXQpCi0JbW92ZHFhCSV4
bW0xNCwgMHg2MCgkb3V0KQotCW1vdmRxYQkleG1tMTUsIDB4NzAoJG91dCkKLQlsZWEJMHg4MCgk
b3V0KSwkb3V0Ci0JZGVjCSRyb3VuZHMKLQlqbnoJLkxrZXlfbG9vcAotCi0JbW92ZHFhCTB4NTAo
JGNvbnN0KSwgJXhtbTcJIyAuTDYzCi0JI21vdmRxYQkleG1tNiwgKCRvdXQpCQkjIGRvbid0IHNh
dmUgbGFzdCByb3VuZCBrZXkKLQlyZXQKLS5zaXplCV9ic2Flc19rZXlfY29udmVydCwuLV9ic2Fl
c19rZXlfY29udmVydAotX19fCi19Ci0KLWlmICgwICYmICEkd2luNjQpIHsJIyBmb2xsb3dpbmcg
Zm91ciBmdW5jdGlvbnMgYXJlIHVuc3VwcG9ydGVkIGludGVyZmFjZQotCQkJIyB1c2VkIGZvciBi
ZW5jaG1hcmtpbmcuLi4KLSRjb2RlLj08PF9fXzsKLS5nbG9ibAlic2Flc19lbmNfa2V5X2NvbnZl
cnQKLS50eXBlCWJzYWVzX2VuY19rZXlfY29udmVydCxcQGZ1bmN0aW9uLDIKLS5hbGlnbgkxNgot
YnNhZXNfZW5jX2tleV9jb252ZXJ0OgotCW1vdgkyNDAoJGlucCksJXIxMGQJCSMgcGFzcyByb3Vu
ZHMKLQltb3YJJGlucCwlcmN4CQkjIHBhc3Mga2V5Ci0JbW92CSRvdXQsJXJheAkJIyBwYXNzIGtl
eSBzY2hlZHVsZQotCWNhbGwJX2JzYWVzX2tleV9jb252ZXJ0Ci0JcHhvcgkleG1tNiwleG1tNwkJ
IyBmaXggdXAgbGFzdCByb3VuZCBrZXkKLQltb3ZkcWEJJXhtbTcsKCVyYXgpCQkjIHNhdmUgbGFz
dCByb3VuZCBrZXkKLQlyZXQKLS5zaXplCWJzYWVzX2VuY19rZXlfY29udmVydCwuLWJzYWVzX2Vu
Y19rZXlfY29udmVydAotCi0uZ2xvYmwJYnNhZXNfZW5jcnlwdF8xMjgKLS50eXBlCWJzYWVzX2Vu
Y3J5cHRfMTI4LFxAZnVuY3Rpb24sNAotLmFsaWduCTE2Ci1ic2Flc19lbmNyeXB0XzEyODoKLS5M
ZW5jMTI4X2xvb3A6Ci0JbW92ZHF1CTB4MDAoJGlucCksIEBYTU1bMF0JIyBsb2FkIGlucHV0Ci0J
bW92ZHF1CTB4MTAoJGlucCksIEBYTU1bMV0KLQltb3ZkcXUJMHgyMCgkaW5wKSwgQFhNTVsyXQot
CW1vdmRxdQkweDMwKCRpbnApLCBAWE1NWzNdCi0JbW92ZHF1CTB4NDAoJGlucCksIEBYTU1bNF0K
LQltb3ZkcXUJMHg1MCgkaW5wKSwgQFhNTVs1XQotCW1vdmRxdQkweDYwKCRpbnApLCBAWE1NWzZd
Ci0JbW92ZHF1CTB4NzAoJGlucCksIEBYTU1bN10KLQltb3YJJGtleSwgJXJheAkJIyBwYXNzIHRo
ZSAka2V5Ci0JbGVhCTB4ODAoJGlucCksICRpbnAKLQltb3YJXCQxMCwlcjEwZAotCi0JY2FsbAlf
YnNhZXNfZW5jcnlwdDgKLQotCW1vdmRxdQlAWE1NWzBdLCAweDAwKCRvdXQpCSMgd3JpdGUgb3V0
cHV0Ci0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQltb3ZkcXUJQFhNTVs0XSwgMHgyMCgk
b3V0KQotCW1vdmRxdQlAWE1NWzZdLCAweDMwKCRvdXQpCi0JbW92ZHF1CUBYTU1bM10sIDB4NDAo
JG91dCkKLQltb3ZkcXUJQFhNTVs3XSwgMHg1MCgkb3V0KQotCW1vdmRxdQlAWE1NWzJdLCAweDYw
KCRvdXQpCi0JbW92ZHF1CUBYTU1bNV0sIDB4NzAoJG91dCkKLQlsZWEJMHg4MCgkb3V0KSwgJG91
dAotCXN1YglcJDB4ODAsJGxlbgotCWphCS5MZW5jMTI4X2xvb3AKLQlyZXQKLS5zaXplCWJzYWVz
X2VuY3J5cHRfMTI4LC4tYnNhZXNfZW5jcnlwdF8xMjgKLQotLmdsb2JsCWJzYWVzX2RlY19rZXlf
Y29udmVydAotLnR5cGUJYnNhZXNfZGVjX2tleV9jb252ZXJ0LFxAZnVuY3Rpb24sMgotLmFsaWdu
CTE2Ci1ic2Flc19kZWNfa2V5X2NvbnZlcnQ6Ci0JbW92CTI0MCgkaW5wKSwlcjEwZAkJIyBwYXNz
IHJvdW5kcwotCW1vdgkkaW5wLCVyY3gJCSMgcGFzcyBrZXkKLQltb3YJJG91dCwlcmF4CQkjIHBh
c3Mga2V5IHNjaGVkdWxlCi0JY2FsbAlfYnNhZXNfa2V5X2NvbnZlcnQKLQlweG9yCSgkb3V0KSwl
eG1tNwkJIyBmaXggdXAgcm91bmQgMCBrZXkKLQltb3ZkcWEJJXhtbTYsKCVyYXgpCQkjIHNhdmUg
bGFzdCByb3VuZCBrZXkKLQltb3ZkcWEJJXhtbTcsKCRvdXQpCi0JcmV0Ci0uc2l6ZQlic2Flc19k
ZWNfa2V5X2NvbnZlcnQsLi1ic2Flc19kZWNfa2V5X2NvbnZlcnQKLQotLmdsb2JsCWJzYWVzX2Rl
Y3J5cHRfMTI4Ci0udHlwZQlic2Flc19kZWNyeXB0XzEyOCxcQGZ1bmN0aW9uLDQKLS5hbGlnbgkx
NgotYnNhZXNfZGVjcnlwdF8xMjg6Ci0uTGRlYzEyOF9sb29wOgotCW1vdmRxdQkweDAwKCRpbnAp
LCBAWE1NWzBdCSMgbG9hZCBpbnB1dAotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1NWzFdCi0JbW92
ZHF1CTB4MjAoJGlucCksIEBYTU1bMl0KLQltb3ZkcXUJMHgzMCgkaW5wKSwgQFhNTVszXQotCW1v
dmRxdQkweDQwKCRpbnApLCBAWE1NWzRdCi0JbW92ZHF1CTB4NTAoJGlucCksIEBYTU1bNV0KLQlt
b3ZkcXUJMHg2MCgkaW5wKSwgQFhNTVs2XQotCW1vdmRxdQkweDcwKCRpbnApLCBAWE1NWzddCi0J
bW92CSRrZXksICVyYXgJCSMgcGFzcyB0aGUgJGtleQotCWxlYQkweDgwKCRpbnApLCAkaW5wCi0J
bW92CVwkMTAsJXIxMGQKLQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0KLQltb3ZkcXUJQFhNTVsw
XSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91dHB1dAotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQp
Ci0JbW92ZHF1CUBYTU1bNl0sIDB4MjAoJG91dCkKLQltb3ZkcXUJQFhNTVs0XSwgMHgzMCgkb3V0
KQotCW1vdmRxdQlAWE1NWzJdLCAweDQwKCRvdXQpCi0JbW92ZHF1CUBYTU1bN10sIDB4NTAoJG91
dCkKLQltb3ZkcXUJQFhNTVszXSwgMHg2MCgkb3V0KQotCW1vdmRxdQlAWE1NWzVdLCAweDcwKCRv
dXQpCi0JbGVhCTB4ODAoJG91dCksICRvdXQKLQlzdWIJXCQweDgwLCRsZW4KLQlqYQkuTGRlYzEy
OF9sb29wCi0JcmV0Ci0uc2l6ZQlic2Flc19kZWNyeXB0XzEyOCwuLWJzYWVzX2RlY3J5cHRfMTI4
Ci1fX18KLX0KLXsKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgT3BlblNTTCBpbnRlcmZhY2UKLSMKLW15
ICgkYXJnMSwkYXJnMiwkYXJnMywkYXJnNCwkYXJnNSwkYXJnNik9JHdpbjY0CT8gKCIlcmN4Iiwi
JXJkeCIsIiVyOCIsIiVyOSIsIiVyMTAiLCIlcjExZCIpCi0JCQkJCQk6ICgiJXJkaSIsIiVyc2ki
LCIlcmR4IiwiJXJjeCIsIiVyOCIsIiVyOWQiKTsKLW15ICgkaW5wLCRvdXQsJGxlbiwka2V5KT0o
IiVyMTIiLCIlcjEzIiwiJXIxNCIsIiVyMTUiKTsKLQotaWYgKCRlY2IpIHsKLSRjb2RlLj08PF9f
XzsKLS5nbG9ibAlic2Flc19lY2JfZW5jcnlwdF9ibG9ja3MKLS50eXBlCWJzYWVzX2VjYl9lbmNy
eXB0X2Jsb2NrcyxcQGFiaS1vbW5pcG90ZW50Ci0uYWxpZ24JMTYKLWJzYWVzX2VjYl9lbmNyeXB0
X2Jsb2NrczoKLS5jZmlfc3RhcnRwcm9jCi0JbW92CSVyc3AsICVyYXgKLS5MZWNiX2VuY19wcm9s
b2d1ZToKLQlwdXNoCSVyYnAKLS5jZmlfcHVzaAklcmJwCi0JcHVzaAklcmJ4Ci0uY2ZpX3B1c2gJ
JXJieAotCXB1c2gJJXIxMgotLmNmaV9wdXNoCSVyMTIKLQlwdXNoCSVyMTMKLS5jZmlfcHVzaAkl
cjEzCi0JcHVzaAklcjE0Ci0uY2ZpX3B1c2gJJXIxNAotCXB1c2gJJXIxNQotLmNmaV9wdXNoCSVy
MTUKLQlsZWEJLTB4NDgoJXJzcCksJXJzcAotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAkweDQ4Ci1f
X18KLSRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKLQlsZWEJLTB4YTAoJXJzcCksICVyc3AKLQlt
b3ZhcHMJJXhtbTYsIDB4NDAoJXJzcCkKLQltb3ZhcHMJJXhtbTcsIDB4NTAoJXJzcCkKLQltb3Zh
cHMJJXhtbTgsIDB4NjAoJXJzcCkKLQltb3ZhcHMJJXhtbTksIDB4NzAoJXJzcCkKLQltb3ZhcHMJ
JXhtbTEwLCAweDgwKCVyc3ApCi0JbW92YXBzCSV4bW0xMSwgMHg5MCglcnNwKQotCW1vdmFwcwkl
eG1tMTIsIDB4YTAoJXJzcCkKLQltb3ZhcHMJJXhtbTEzLCAweGIwKCVyc3ApCi0JbW92YXBzCSV4
bW0xNCwgMHhjMCglcnNwKQotCW1vdmFwcwkleG1tMTUsIDB4ZDAoJXJzcCkKLS5MZWNiX2VuY19i
b2R5OgotX19fCi0kY29kZS49PDxfX187Ci0JbW92CSVyc3AsJXJicAkJIyBiYWNrdXAgJXJzcAot
LmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCSVyYnAKLQltb3YJMjQwKCRhcmc0KSwlZWF4CQkjIHJvdW5k
cwotCW1vdgkkYXJnMSwkaW5wCQkjIGJhY2t1cCBhcmd1bWVudHMKLQltb3YJJGFyZzIsJG91dAot
CW1vdgkkYXJnMywkbGVuCi0JbW92CSRhcmc0LCRrZXkKLQljbXAJXCQ4LCRhcmczCi0JamIJLkxl
Y2JfZW5jX3Nob3J0Ci0KLQltb3YJJWVheCwlZWJ4CQkjIGJhY2t1cCByb3VuZHMKLQlzaGwJXCQ3
LCVyYXgJCSMgMTI4IGJ5dGVzIHBlciBpbm5lciByb3VuZCBrZXkKLQlzdWIJXCRgMTI4LTMyYCwl
cmF4CQkjIHNpemUgb2YgYml0LXNsaWNlZCBrZXkgc2NoZWR1bGUKLQlzdWIJJXJheCwlcnNwCi0J
bW92CSVyc3AsJXJheAkJIyBwYXNzIGtleSBzY2hlZHVsZQotCW1vdgkka2V5LCVyY3gJCSMgcGFz
cyBrZXkKLQltb3YJJWVieCwlcjEwZAkJIyBwYXNzIHJvdW5kcwotCWNhbGwJX2JzYWVzX2tleV9j
b252ZXJ0Ci0JcHhvcgkleG1tNiwleG1tNwkJIyBmaXggdXAgbGFzdCByb3VuZCBrZXkKLQltb3Zk
cWEJJXhtbTcsKCVyYXgpCQkjIHNhdmUgbGFzdCByb3VuZCBrZXkKLQotCXN1YglcJDgsJGxlbgot
LkxlY2JfZW5jX2xvb3A6Ci0JbW92ZHF1CTB4MDAoJGlucCksIEBYTU1bMF0JIyBsb2FkIGlucHV0
Ci0JbW92ZHF1CTB4MTAoJGlucCksIEBYTU1bMV0KLQltb3ZkcXUJMHgyMCgkaW5wKSwgQFhNTVsy
XQotCW1vdmRxdQkweDMwKCRpbnApLCBAWE1NWzNdCi0JbW92ZHF1CTB4NDAoJGlucCksIEBYTU1b
NF0KLQltb3ZkcXUJMHg1MCgkaW5wKSwgQFhNTVs1XQotCW1vdgklcnNwLCAlcmF4CQkjIHBhc3Mg
a2V5IHNjaGVkdWxlCi0JbW92ZHF1CTB4NjAoJGlucCksIEBYTU1bNl0KLQltb3YJJWVieCwlcjEw
ZAkJIyBwYXNzIHJvdW5kcwotCW1vdmRxdQkweDcwKCRpbnApLCBAWE1NWzddCi0JbGVhCTB4ODAo
JGlucCksICRpbnAKLQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQltb3ZkcXUJQFhNTVswXSwg
MHgwMCgkb3V0KQkjIHdyaXRlIG91dHB1dAotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQpCi0J
bW92ZHF1CUBYTU1bNF0sIDB4MjAoJG91dCkKLQltb3ZkcXUJQFhNTVs2XSwgMHgzMCgkb3V0KQot
CW1vdmRxdQlAWE1NWzNdLCAweDQwKCRvdXQpCi0JbW92ZHF1CUBYTU1bN10sIDB4NTAoJG91dCkK
LQltb3ZkcXUJQFhNTVsyXSwgMHg2MCgkb3V0KQotCW1vdmRxdQlAWE1NWzVdLCAweDcwKCRvdXQp
Ci0JbGVhCTB4ODAoJG91dCksICRvdXQKLQlzdWIJXCQ4LCRsZW4KLQlqbmMJLkxlY2JfZW5jX2xv
b3AKLQotCWFkZAlcJDgsJGxlbgotCWp6CS5MZWNiX2VuY19kb25lCi0KLQltb3ZkcXUJMHgwMCgk
aW5wKSwgQFhNTVswXQkjIGxvYWQgaW5wdXQKLQltb3YJJXJzcCwgJXJheAkJIyBwYXNzIGtleSBz
Y2hlZHVsZQotCW1vdgklZWJ4LCVyMTBkCQkjIHBhc3Mgcm91bmRzCi0JY21wCVwkMiwkbGVuCi0J
amIJLkxlY2JfZW5jX29uZQotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1NWzFdCi0JamUJLkxlY2Jf
ZW5jX3R3bwotCW1vdmRxdQkweDIwKCRpbnApLCBAWE1NWzJdCi0JY21wCVwkNCwkbGVuCi0JamIJ
LkxlY2JfZW5jX3RocmVlCi0JbW92ZHF1CTB4MzAoJGlucCksIEBYTU1bM10KLQlqZQkuTGVjYl9l
bmNfZm91cgotCW1vdmRxdQkweDQwKCRpbnApLCBAWE1NWzRdCi0JY21wCVwkNiwkbGVuCi0JamIJ
LkxlY2JfZW5jX2ZpdmUKLQltb3ZkcXUJMHg1MCgkaW5wKSwgQFhNTVs1XQotCWplCS5MZWNiX2Vu
Y19zaXgKLQltb3ZkcXUJMHg2MCgkaW5wKSwgQFhNTVs2XQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4
Ci0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQltb3ZkcXUJQFhN
TVsxXSwgMHgxMCgkb3V0KQotCW1vdmRxdQlAWE1NWzRdLCAweDIwKCRvdXQpCi0JbW92ZHF1CUBY
TU1bNl0sIDB4MzAoJG91dCkKLQltb3ZkcXUJQFhNTVszXSwgMHg0MCgkb3V0KQotCW1vdmRxdQlA
WE1NWzddLCAweDUwKCRvdXQpCi0JbW92ZHF1CUBYTU1bMl0sIDB4NjAoJG91dCkKLQlqbXAJLkxl
Y2JfZW5jX2RvbmUKLS5hbGlnbgkxNgotLkxlY2JfZW5jX3NpeDoKLQljYWxsCV9ic2Flc19lbmNy
eXB0OAotCW1vdmRxdQlAWE1NWzBdLCAweDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JbW92ZHF1
CUBYTU1bMV0sIDB4MTAoJG91dCkKLQltb3ZkcXUJQFhNTVs0XSwgMHgyMCgkb3V0KQotCW1vdmRx
dQlAWE1NWzZdLCAweDMwKCRvdXQpCi0JbW92ZHF1CUBYTU1bM10sIDB4NDAoJG91dCkKLQltb3Zk
cXUJQFhNTVs3XSwgMHg1MCgkb3V0KQotCWptcAkuTGVjYl9lbmNfZG9uZQotLmFsaWduCTE2Ci0u
TGVjYl9lbmNfZml2ZToKLQljYWxsCV9ic2Flc19lbmNyeXB0OAotCW1vdmRxdQlAWE1NWzBdLCAw
eDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQlt
b3ZkcXUJQFhNTVs0XSwgMHgyMCgkb3V0KQotCW1vdmRxdQlAWE1NWzZdLCAweDMwKCRvdXQpCi0J
bW92ZHF1CUBYTU1bM10sIDB4NDAoJG91dCkKLQlqbXAJLkxlY2JfZW5jX2RvbmUKLS5hbGlnbgkx
NgotLkxlY2JfZW5jX2ZvdXI6Ci0JY2FsbAlfYnNhZXNfZW5jcnlwdDgKLQltb3ZkcXUJQFhNTVsw
XSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91dHB1dAotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQp
Ci0JbW92ZHF1CUBYTU1bNF0sIDB4MjAoJG91dCkKLQltb3ZkcXUJQFhNTVs2XSwgMHgzMCgkb3V0
KQotCWptcAkuTGVjYl9lbmNfZG9uZQotLmFsaWduCTE2Ci0uTGVjYl9lbmNfdGhyZWU6Ci0JY2Fs
bAlfYnNhZXNfZW5jcnlwdDgKLQltb3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91
dHB1dAotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQpCi0JbW92ZHF1CUBYTU1bNF0sIDB4MjAo
JG91dCkKLQlqbXAJLkxlY2JfZW5jX2RvbmUKLS5hbGlnbgkxNgotLkxlY2JfZW5jX3R3bzoKLQlj
YWxsCV9ic2Flc19lbmNyeXB0OAotCW1vdmRxdQlAWE1NWzBdLCAweDAwKCRvdXQpCSMgd3JpdGUg
b3V0cHV0Ci0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQlqbXAJLkxlY2JfZW5jX2RvbmUK
LS5hbGlnbgkxNgotLkxlY2JfZW5jX29uZToKLQljYWxsCV9ic2Flc19lbmNyeXB0OAotCW1vdmRx
dQlAWE1NWzBdLCAweDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0Jam1wCS5MZWNiX2VuY19kb25l
Ci0uYWxpZ24JMTYKLS5MZWNiX2VuY19zaG9ydDoKLQlsZWEJKCRpbnApLCAkYXJnMQotCWxlYQko
JG91dCksICRhcmcyCi0JbGVhCSgka2V5KSwgJGFyZzMKLQljYWxsCWFlc19ub2h3X2VuY3J5cHQK
LQlsZWEJMTYoJGlucCksICRpbnAKLQlsZWEJMTYoJG91dCksICRvdXQKLQlkZWMJJGxlbgotCWpu
egkuTGVjYl9lbmNfc2hvcnQKLQotLkxlY2JfZW5jX2RvbmU6Ci0JbGVhCSglcnNwKSwlcmF4Ci0J
cHhvcgkleG1tMCwgJXhtbTAKLS5MZWNiX2VuY19iemVybzoJCQkjIHdpcGUga2V5IHNjaGVkdWxl
IFtpZiBhbnldCi0JbW92ZHFhCSV4bW0wLCAweDAwKCVyYXgpCi0JbW92ZHFhCSV4bW0wLCAweDEw
KCVyYXgpCi0JbGVhCTB4MjAoJXJheCksICVyYXgKLQljbXAJJXJheCwgJXJicAotCWpiCS5MZWNi
X2VuY19iemVybwotCi0JbGVhCTB4NzgoJXJicCksJXJheAotLmNmaV9kZWZfY2ZhCSVyYXgsOAot
X19fCi0kY29kZS49PDxfX18gaWYgKCR3aW42NCk7Ci0JbW92YXBzCTB4NDAoJXJicCksICV4bW02
Ci0JbW92YXBzCTB4NTAoJXJicCksICV4bW03Ci0JbW92YXBzCTB4NjAoJXJicCksICV4bW04Ci0J
bW92YXBzCTB4NzAoJXJicCksICV4bW05Ci0JbW92YXBzCTB4ODAoJXJicCksICV4bW0xMAotCW1v
dmFwcwkweDkwKCVyYnApLCAleG1tMTEKLQltb3ZhcHMJMHhhMCglcmJwKSwgJXhtbTEyCi0JbW92
YXBzCTB4YjAoJXJicCksICV4bW0xMwotCW1vdmFwcwkweGMwKCVyYnApLCAleG1tMTQKLQltb3Zh
cHMJMHhkMCglcmJwKSwgJXhtbTE1Ci0JbGVhCTB4YTAoJXJheCksICVyYXgKLS5MZWNiX2VuY190
YWlsOgotX19fCi0kY29kZS49PDxfX187Ci0JbW92CS00OCglcmF4KSwgJXIxNQotLmNmaV9yZXN0
b3JlCSVyMTUKLQltb3YJLTQwKCVyYXgpLCAlcjE0Ci0uY2ZpX3Jlc3RvcmUJJXIxNAotCW1vdgkt
MzIoJXJheCksICVyMTMKLS5jZmlfcmVzdG9yZQklcjEzCi0JbW92CS0yNCglcmF4KSwgJXIxMgot
LmNmaV9yZXN0b3JlCSVyMTIKLQltb3YJLTE2KCVyYXgpLCAlcmJ4Ci0uY2ZpX3Jlc3RvcmUJJXJi
eAotCW1vdgktOCglcmF4KSwgJXJicAotLmNmaV9yZXN0b3JlCSVyYnAKLQlsZWEJKCVyYXgpLCAl
cnNwCQkjIHJlc3RvcmUgJXJzcAotLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCSVyc3AKLS5MZWNiX2Vu
Y19lcGlsb2d1ZToKLQlyZXQKLS5jZmlfZW5kcHJvYwotLnNpemUJYnNhZXNfZWNiX2VuY3J5cHRf
YmxvY2tzLC4tYnNhZXNfZWNiX2VuY3J5cHRfYmxvY2tzCi0KLS5nbG9ibAlic2Flc19lY2JfZGVj
cnlwdF9ibG9ja3MKLS50eXBlCWJzYWVzX2VjYl9kZWNyeXB0X2Jsb2NrcyxcQGFiaS1vbW5pcG90
ZW50Ci0uYWxpZ24JMTYKLWJzYWVzX2VjYl9kZWNyeXB0X2Jsb2NrczoKLS5jZmlfc3RhcnRwcm9j
Ci0JbW92CSVyc3AsICVyYXgKLS5MZWNiX2RlY19wcm9sb2d1ZToKLQlwdXNoCSVyYnAKLS5jZmlf
cHVzaAklcmJwCi0JcHVzaAklcmJ4Ci0uY2ZpX3B1c2gJJXJieAotCXB1c2gJJXIxMgotLmNmaV9w
dXNoCSVyMTIKLQlwdXNoCSVyMTMKLS5jZmlfcHVzaAklcjEzCi0JcHVzaAklcjE0Ci0uY2ZpX3B1
c2gJJXIxNAotCXB1c2gJJXIxNQotLmNmaV9wdXNoCSVyMTUKLQlsZWEJLTB4NDgoJXJzcCksJXJz
cAotLmNmaV9hZGp1c3RfY2ZhX29mZnNldAkweDQ4Ci1fX18KLSRjb2RlLj08PF9fXyBpZiAoJHdp
bjY0KTsKLQlsZWEJLTB4YTAoJXJzcCksICVyc3AKLQltb3ZhcHMJJXhtbTYsIDB4NDAoJXJzcCkK
LQltb3ZhcHMJJXhtbTcsIDB4NTAoJXJzcCkKLQltb3ZhcHMJJXhtbTgsIDB4NjAoJXJzcCkKLQlt
b3ZhcHMJJXhtbTksIDB4NzAoJXJzcCkKLQltb3ZhcHMJJXhtbTEwLCAweDgwKCVyc3ApCi0JbW92
YXBzCSV4bW0xMSwgMHg5MCglcnNwKQotCW1vdmFwcwkleG1tMTIsIDB4YTAoJXJzcCkKLQltb3Zh
cHMJJXhtbTEzLCAweGIwKCVyc3ApCi0JbW92YXBzCSV4bW0xNCwgMHhjMCglcnNwKQotCW1vdmFw
cwkleG1tMTUsIDB4ZDAoJXJzcCkKLS5MZWNiX2RlY19ib2R5OgotX19fCi0kY29kZS49PDxfX187
Ci0JbW92CSVyc3AsJXJicAkJIyBiYWNrdXAgJXJzcAotLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCSVy
YnAKLQltb3YJMjQwKCRhcmc0KSwlZWF4CQkjIHJvdW5kcwotCW1vdgkkYXJnMSwkaW5wCQkjIGJh
Y2t1cCBhcmd1bWVudHMKLQltb3YJJGFyZzIsJG91dAotCW1vdgkkYXJnMywkbGVuCi0JbW92CSRh
cmc0LCRrZXkKLQljbXAJXCQ4LCRhcmczCi0JamIJLkxlY2JfZGVjX3Nob3J0Ci0KLQltb3YJJWVh
eCwlZWJ4CQkjIGJhY2t1cCByb3VuZHMKLQlzaGwJXCQ3LCVyYXgJCSMgMTI4IGJ5dGVzIHBlciBp
bm5lciByb3VuZCBrZXkKLQlzdWIJXCRgMTI4LTMyYCwlcmF4CQkjIHNpemUgb2YgYml0LXNsaWNl
ZCBrZXkgc2NoZWR1bGUKLQlzdWIJJXJheCwlcnNwCi0JbW92CSVyc3AsJXJheAkJIyBwYXNzIGtl
eSBzY2hlZHVsZQotCW1vdgkka2V5LCVyY3gJCSMgcGFzcyBrZXkKLQltb3YJJWVieCwlcjEwZAkJ
IyBwYXNzIHJvdW5kcwotCWNhbGwJX2JzYWVzX2tleV9jb252ZXJ0Ci0JcHhvcgkoJXJzcCksJXht
bTcJCSMgZml4IHVwIDAgcm91bmQga2V5Ci0JbW92ZHFhCSV4bW02LCglcmF4KQkJIyBzYXZlIGxh
c3Qgcm91bmQga2V5Ci0JbW92ZHFhCSV4bW03LCglcnNwKQotCi0Jc3ViCVwkOCwkbGVuCi0uTGVj
Yl9kZWNfbG9vcDoKLQltb3ZkcXUJMHgwMCgkaW5wKSwgQFhNTVswXQkjIGxvYWQgaW5wdXQKLQlt
b3ZkcXUJMHgxMCgkaW5wKSwgQFhNTVsxXQotCW1vdmRxdQkweDIwKCRpbnApLCBAWE1NWzJdCi0J
bW92ZHF1CTB4MzAoJGlucCksIEBYTU1bM10KLQltb3ZkcXUJMHg0MCgkaW5wKSwgQFhNTVs0XQot
CW1vdmRxdQkweDUwKCRpbnApLCBAWE1NWzVdCi0JbW92CSVyc3AsICVyYXgJCSMgcGFzcyBrZXkg
c2NoZWR1bGUKLQltb3ZkcXUJMHg2MCgkaW5wKSwgQFhNTVs2XQotCW1vdgklZWJ4LCVyMTBkCQkj
IHBhc3Mgcm91bmRzCi0JbW92ZHF1CTB4NzAoJGlucCksIEBYTU1bN10KLQlsZWEJMHg4MCgkaW5w
KSwgJGlucAotCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQotCW1vdmRxdQlAWE1NWzBdLCAweDAw
KCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQltb3Zk
cXUJQFhNTVs2XSwgMHgyMCgkb3V0KQotCW1vdmRxdQlAWE1NWzRdLCAweDMwKCRvdXQpCi0JbW92
ZHF1CUBYTU1bMl0sIDB4NDAoJG91dCkKLQltb3ZkcXUJQFhNTVs3XSwgMHg1MCgkb3V0KQotCW1v
dmRxdQlAWE1NWzNdLCAweDYwKCRvdXQpCi0JbW92ZHF1CUBYTU1bNV0sIDB4NzAoJG91dCkKLQls
ZWEJMHg4MCgkb3V0KSwgJG91dAotCXN1YglcJDgsJGxlbgotCWpuYwkuTGVjYl9kZWNfbG9vcAot
Ci0JYWRkCVwkOCwkbGVuCi0JanoJLkxlY2JfZGVjX2RvbmUKLQotCW1vdmRxdQkweDAwKCRpbnAp
LCBAWE1NWzBdCSMgbG9hZCBpbnB1dAotCW1vdgklcnNwLCAlcmF4CQkjIHBhc3Mga2V5IHNjaGVk
dWxlCi0JbW92CSVlYngsJXIxMGQJCSMgcGFzcyByb3VuZHMKLQljbXAJXCQyLCRsZW4KLQlqYgku
TGVjYl9kZWNfb25lCi0JbW92ZHF1CTB4MTAoJGlucCksIEBYTU1bMV0KLQlqZQkuTGVjYl9kZWNf
dHdvCi0JbW92ZHF1CTB4MjAoJGlucCksIEBYTU1bMl0KLQljbXAJXCQ0LCRsZW4KLQlqYgkuTGVj
Yl9kZWNfdGhyZWUKLQltb3ZkcXUJMHgzMCgkaW5wKSwgQFhNTVszXQotCWplCS5MZWNiX2RlY19m
b3VyCi0JbW92ZHF1CTB4NDAoJGlucCksIEBYTU1bNF0KLQljbXAJXCQ2LCRsZW4KLQlqYgkuTGVj
Yl9kZWNfZml2ZQotCW1vdmRxdQkweDUwKCRpbnApLCBAWE1NWzVdCi0JamUJLkxlY2JfZGVjX3Np
eAotCW1vdmRxdQkweDYwKCRpbnApLCBAWE1NWzZdCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlt
b3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91dHB1dAotCW1vdmRxdQlAWE1NWzFd
LCAweDEwKCRvdXQpCi0JbW92ZHF1CUBYTU1bNl0sIDB4MjAoJG91dCkKLQltb3ZkcXUJQFhNTVs0
XSwgMHgzMCgkb3V0KQotCW1vdmRxdQlAWE1NWzJdLCAweDQwKCRvdXQpCi0JbW92ZHF1CUBYTU1b
N10sIDB4NTAoJG91dCkKLQltb3ZkcXUJQFhNTVszXSwgMHg2MCgkb3V0KQotCWptcAkuTGVjYl9k
ZWNfZG9uZQotLmFsaWduCTE2Ci0uTGVjYl9kZWNfc2l4OgotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4
Ci0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQltb3ZkcXUJQFhN
TVsxXSwgMHgxMCgkb3V0KQotCW1vdmRxdQlAWE1NWzZdLCAweDIwKCRvdXQpCi0JbW92ZHF1CUBY
TU1bNF0sIDB4MzAoJG91dCkKLQltb3ZkcXUJQFhNTVsyXSwgMHg0MCgkb3V0KQotCW1vdmRxdQlA
WE1NWzddLCAweDUwKCRvdXQpCi0Jam1wCS5MZWNiX2RlY19kb25lCi0uYWxpZ24JMTYKLS5MZWNi
X2RlY19maXZlOgotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JbW92ZHF1CUBYTU1bMF0sIDB4MDAo
JG91dCkJIyB3cml0ZSBvdXRwdXQKLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCW1vdmRx
dQlAWE1NWzZdLCAweDIwKCRvdXQpCi0JbW92ZHF1CUBYTU1bNF0sIDB4MzAoJG91dCkKLQltb3Zk
cXUJQFhNTVsyXSwgMHg0MCgkb3V0KQotCWptcAkuTGVjYl9kZWNfZG9uZQotLmFsaWduCTE2Ci0u
TGVjYl9kZWNfZm91cjoKLQljYWxsCV9ic2Flc19kZWNyeXB0OAotCW1vdmRxdQlAWE1NWzBdLCAw
eDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQlt
b3ZkcXUJQFhNTVs2XSwgMHgyMCgkb3V0KQotCW1vdmRxdQlAWE1NWzRdLCAweDMwKCRvdXQpCi0J
am1wCS5MZWNiX2RlY19kb25lCi0uYWxpZ24JMTYKLS5MZWNiX2RlY190aHJlZToKLQljYWxsCV9i
c2Flc19kZWNyeXB0OAotCW1vdmRxdQlAWE1NWzBdLCAweDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0
Ci0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQltb3ZkcXUJQFhNTVs2XSwgMHgyMCgkb3V0
KQotCWptcAkuTGVjYl9kZWNfZG9uZQotLmFsaWduCTE2Ci0uTGVjYl9kZWNfdHdvOgotCWNhbGwJ
X2JzYWVzX2RlY3J5cHQ4Ci0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRw
dXQKLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCWptcAkuTGVjYl9kZWNfZG9uZQotLmFs
aWduCTE2Ci0uTGVjYl9kZWNfb25lOgotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JbW92ZHF1CUBY
TU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQlqbXAJLkxlY2JfZGVjX2RvbmUKLS5h
bGlnbgkxNgotLkxlY2JfZGVjX3Nob3J0OgotCWxlYQkoJGlucCksICRhcmcxCi0JbGVhCSgkb3V0
KSwgJGFyZzIKLQlsZWEJKCRrZXkpLCAkYXJnMwotCWNhbGwJYWVzX25vaHdfZGVjcnlwdAotCWxl
YQkxNigkaW5wKSwgJGlucAotCWxlYQkxNigkb3V0KSwgJG91dAotCWRlYwkkbGVuCi0Jam56CS5M
ZWNiX2RlY19zaG9ydAotCi0uTGVjYl9kZWNfZG9uZToKLQlsZWEJKCVyc3ApLCVyYXgKLQlweG9y
CSV4bW0wLCAleG1tMAotLkxlY2JfZGVjX2J6ZXJvOgkJCSMgd2lwZSBrZXkgc2NoZWR1bGUgW2lm
IGFueV0KLQltb3ZkcWEJJXhtbTAsIDB4MDAoJXJheCkKLQltb3ZkcWEJJXhtbTAsIDB4MTAoJXJh
eCkKLQlsZWEJMHgyMCglcmF4KSwgJXJheAotCWNtcAklcmF4LCAlcmJwCi0JamIJLkxlY2JfZGVj
X2J6ZXJvCi0KLQlsZWEJMHg3OCglcmJwKSwlcmF4Ci0uY2ZpX2RlZl9jZmEJJXJheCw4Ci1fX18K
LSRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKLQltb3ZhcHMJMHg0MCglcmJwKSwgJXhtbTYKLQlt
b3ZhcHMJMHg1MCglcmJwKSwgJXhtbTcKLQltb3ZhcHMJMHg2MCglcmJwKSwgJXhtbTgKLQltb3Zh
cHMJMHg3MCglcmJwKSwgJXhtbTkKLQltb3ZhcHMJMHg4MCglcmJwKSwgJXhtbTEwCi0JbW92YXBz
CTB4OTAoJXJicCksICV4bW0xMQotCW1vdmFwcwkweGEwKCVyYnApLCAleG1tMTIKLQltb3ZhcHMJ
MHhiMCglcmJwKSwgJXhtbTEzCi0JbW92YXBzCTB4YzAoJXJicCksICV4bW0xNAotCW1vdmFwcwkw
eGQwKCVyYnApLCAleG1tMTUKLQlsZWEJMHhhMCglcmF4KSwgJXJheAotLkxlY2JfZGVjX3RhaWw6
Ci1fX18KLSRjb2RlLj08PF9fXzsKLQltb3YJLTQ4KCVyYXgpLCAlcjE1Ci0uY2ZpX3Jlc3RvcmUJ
JXIxNQotCW1vdgktNDAoJXJheCksICVyMTQKLS5jZmlfcmVzdG9yZQklcjE0Ci0JbW92CS0zMigl
cmF4KSwgJXIxMwotLmNmaV9yZXN0b3JlCSVyMTMKLQltb3YJLTI0KCVyYXgpLCAlcjEyCi0uY2Zp
X3Jlc3RvcmUJJXIxMgotCW1vdgktMTYoJXJheCksICVyYngKLS5jZmlfcmVzdG9yZQklcmJ4Ci0J
bW92CS04KCVyYXgpLCAlcmJwCi0uY2ZpX3Jlc3RvcmUJJXJicAotCWxlYQkoJXJheCksICVyc3AJ
CSMgcmVzdG9yZSAlcnNwCi0uY2ZpX2RlZl9jZmFfcmVnaXN0ZXIJJXJzcAotLkxlY2JfZGVjX2Vw
aWxvZ3VlOgotCXJldAotLmNmaV9lbmRwcm9jCi0uc2l6ZQlic2Flc19lY2JfZGVjcnlwdF9ibG9j
a3MsLi1ic2Flc19lY2JfZGVjcnlwdF9ibG9ja3MKLV9fXwotfQotJGNvZGUuPTw8X19fOwotLmV4
dGVybglhZXNfbm9od19jYmNfZW5jcnlwdAotLmdsb2JsCWJzYWVzX2NiY19lbmNyeXB0Ci0udHlw
ZQlic2Flc19jYmNfZW5jcnlwdCxcQGFiaS1vbW5pcG90ZW50Ci0uYWxpZ24JMTYKLWJzYWVzX2Ni
Y19lbmNyeXB0OgotLmNmaV9zdGFydHByb2MKLV9fXwotJGNvZGUuPTw8X19fIGlmICgkd2luNjQp
OwotCW1vdgk0OCglcnNwKSwkYXJnNgkJIyBwdWxsIGRpcmVjdGlvbiBmbGFnCi1fX18KLSRjb2Rl
Lj08PF9fXzsKLQljbXAJXCQwLCRhcmc2Ci0Jam5lCWFlc19ub2h3X2NiY19lbmNyeXB0Ci0JY21w
CVwkMTI4LCRhcmczCi0JamIJYWVzX25vaHdfY2JjX2VuY3J5cHQKLQotCW1vdgklcnNwLCAlcmF4
Ci0uTGNiY19kZWNfcHJvbG9ndWU6Ci0JcHVzaAklcmJwCi0uY2ZpX3B1c2gJJXJicAotCXB1c2gJ
JXJieAotLmNmaV9wdXNoCSVyYngKLQlwdXNoCSVyMTIKLS5jZmlfcHVzaAklcjEyCi0JcHVzaAkl
cjEzCi0uY2ZpX3B1c2gJJXIxMwotCXB1c2gJJXIxNAotLmNmaV9wdXNoCSVyMTQKLQlwdXNoCSVy
MTUKLS5jZmlfcHVzaAklcjE1Ci0JbGVhCS0weDQ4KCVyc3ApLCAlcnNwCi0uY2ZpX2FkanVzdF9j
ZmFfb2Zmc2V0CTB4NDgKLV9fXwotJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOwotCW1vdgkweGEw
KCVyc3ApLCRhcmc1CSMgcHVsbCBpdnAKLQlsZWEJLTB4YTAoJXJzcCksICVyc3AKLQltb3ZhcHMJ
JXhtbTYsIDB4NDAoJXJzcCkKLQltb3ZhcHMJJXhtbTcsIDB4NTAoJXJzcCkKLQltb3ZhcHMJJXht
bTgsIDB4NjAoJXJzcCkKLQltb3ZhcHMJJXhtbTksIDB4NzAoJXJzcCkKLQltb3ZhcHMJJXhtbTEw
LCAweDgwKCVyc3ApCi0JbW92YXBzCSV4bW0xMSwgMHg5MCglcnNwKQotCW1vdmFwcwkleG1tMTIs
IDB4YTAoJXJzcCkKLQltb3ZhcHMJJXhtbTEzLCAweGIwKCVyc3ApCi0JbW92YXBzCSV4bW0xNCwg
MHhjMCglcnNwKQotCW1vdmFwcwkleG1tMTUsIDB4ZDAoJXJzcCkKLS5MY2JjX2RlY19ib2R5Ogot
X19fCi0kY29kZS49PDxfX187Ci0JbW92CSVyc3AsICVyYnAJCSMgYmFja3VwICVyc3AKLS5jZmlf
ZGVmX2NmYV9yZWdpc3RlcgklcmJwCi0JbW92CTI0MCgkYXJnNCksICVlYXgJIyByb3VuZHMKLQlt
b3YJJGFyZzEsICRpbnAJCSMgYmFja3VwIGFyZ3VtZW50cwotCW1vdgkkYXJnMiwgJG91dAotCW1v
dgkkYXJnMywgJGxlbgotCW1vdgkkYXJnNCwgJGtleQotCW1vdgkkYXJnNSwgJXJieAotCXNocglc
JDQsICRsZW4JCSMgYnl0ZXMgdG8gYmxvY2tzCi0KLQltb3YJJWVheCwgJWVkeAkJIyByb3VuZHMK
LQlzaGwJXCQ3LCAlcmF4CQkjIDEyOCBieXRlcyBwZXIgaW5uZXIgcm91bmQga2V5Ci0Jc3ViCVwk
YDEyOC0zMmAsICVyYXgJIyBzaXplIG9mIGJpdC1zbGljZWQga2V5IHNjaGVkdWxlCi0Jc3ViCSVy
YXgsICVyc3AKLQotCW1vdgklcnNwLCAlcmF4CQkjIHBhc3Mga2V5IHNjaGVkdWxlCi0JbW92CSRr
ZXksICVyY3gJCSMgcGFzcyBrZXkKLQltb3YJJWVkeCwgJXIxMGQJCSMgcGFzcyByb3VuZHMKLQlj
YWxsCV9ic2Flc19rZXlfY29udmVydAotCXB4b3IJKCVyc3ApLCV4bW03CQkjIGZpeCB1cCAwIHJv
dW5kIGtleQotCW1vdmRxYQkleG1tNiwoJXJheCkJCSMgc2F2ZSBsYXN0IHJvdW5kIGtleQotCW1v
dmRxYQkleG1tNywoJXJzcCkKLQotCW1vdmRxdQkoJXJieCksIEBYTU1bMTVdCSMgbG9hZCBJVgot
CXN1YglcJDgsJGxlbgotLkxjYmNfZGVjX2xvb3A6Ci0JbW92ZHF1CTB4MDAoJGlucCksIEBYTU1b
MF0JIyBsb2FkIGlucHV0Ci0JbW92ZHF1CTB4MTAoJGlucCksIEBYTU1bMV0KLQltb3ZkcXUJMHgy
MCgkaW5wKSwgQFhNTVsyXQotCW1vdmRxdQkweDMwKCRpbnApLCBAWE1NWzNdCi0JbW92ZHF1CTB4
NDAoJGlucCksIEBYTU1bNF0KLQltb3ZkcXUJMHg1MCgkaW5wKSwgQFhNTVs1XQotCW1vdgklcnNw
LCAlcmF4CQkjIHBhc3Mga2V5IHNjaGVkdWxlCi0JbW92ZHF1CTB4NjAoJGlucCksIEBYTU1bNl0K
LQltb3YJJWVkeCwlcjEwZAkJIyBwYXNzIHJvdW5kcwotCW1vdmRxdQkweDcwKCRpbnApLCBAWE1N
WzddCi0JbW92ZHFhCUBYTU1bMTVdLCAweDIwKCVyYnApCSMgcHV0IGFzaWRlIElWCi0KLQljYWxs
CV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgkweDIwKCVyYnApLCBAWE1NWzBdCSMgXj0gSVYKLQlt
b3ZkcXUJMHgwMCgkaW5wKSwgQFhNTVs4XQkjIHJlLWxvYWQgaW5wdXQKLQltb3ZkcXUJMHgxMCgk
aW5wKSwgQFhNTVs5XQotCXB4b3IJQFhNTVs4XSwgQFhNTVsxXQotCW1vdmRxdQkweDIwKCRpbnAp
LCBAWE1NWzEwXQotCXB4b3IJQFhNTVs5XSwgQFhNTVs2XQotCW1vdmRxdQkweDMwKCRpbnApLCBA
WE1NWzExXQotCXB4b3IJQFhNTVsxMF0sIEBYTU1bNF0KLQltb3ZkcXUJMHg0MCgkaW5wKSwgQFhN
TVsxMl0KLQlweG9yCUBYTU1bMTFdLCBAWE1NWzJdCi0JbW92ZHF1CTB4NTAoJGlucCksIEBYTU1b
MTNdCi0JcHhvcglAWE1NWzEyXSwgQFhNTVs3XQotCW1vdmRxdQkweDYwKCRpbnApLCBAWE1NWzE0
XQotCXB4b3IJQFhNTVsxM10sIEBYTU1bM10KLQltb3ZkcXUJMHg3MCgkaW5wKSwgQFhNTVsxNV0J
IyBJVgotCXB4b3IJQFhNTVsxNF0sIEBYTU1bNV0KLQltb3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0
KQkjIHdyaXRlIG91dHB1dAotCWxlYQkweDgwKCRpbnApLCAkaW5wCi0JbW92ZHF1CUBYTU1bMV0s
IDB4MTAoJG91dCkKLQltb3ZkcXUJQFhNTVs2XSwgMHgyMCgkb3V0KQotCW1vdmRxdQlAWE1NWzRd
LCAweDMwKCRvdXQpCi0JbW92ZHF1CUBYTU1bMl0sIDB4NDAoJG91dCkKLQltb3ZkcXUJQFhNTVs3
XSwgMHg1MCgkb3V0KQotCW1vdmRxdQlAWE1NWzNdLCAweDYwKCRvdXQpCi0JbW92ZHF1CUBYTU1b
NV0sIDB4NzAoJG91dCkKLQlsZWEJMHg4MCgkb3V0KSwgJG91dAotCXN1YglcJDgsJGxlbgotCWpu
YwkuTGNiY19kZWNfbG9vcAotCi0JYWRkCVwkOCwkbGVuCi0JanoJLkxjYmNfZGVjX2RvbmUKLQot
CW1vdmRxdQkweDAwKCRpbnApLCBAWE1NWzBdCSMgbG9hZCBpbnB1dAotCW1vdgklcnNwLCAlcmF4
CQkjIHBhc3Mga2V5IHNjaGVkdWxlCi0JbW92CSVlZHgsICVyMTBkCQkjIHBhc3Mgcm91bmRzCi0J
Y21wCVwkMiwkbGVuCi0JamIJLkxjYmNfZGVjX29uZQotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1N
WzFdCi0JamUJLkxjYmNfZGVjX3R3bwotCW1vdmRxdQkweDIwKCRpbnApLCBAWE1NWzJdCi0JY21w
CVwkNCwkbGVuCi0JamIJLkxjYmNfZGVjX3RocmVlCi0JbW92ZHF1CTB4MzAoJGlucCksIEBYTU1b
M10KLQlqZQkuTGNiY19kZWNfZm91cgotCW1vdmRxdQkweDQwKCRpbnApLCBAWE1NWzRdCi0JY21w
CVwkNiwkbGVuCi0JamIJLkxjYmNfZGVjX2ZpdmUKLQltb3ZkcXUJMHg1MCgkaW5wKSwgQFhNTVs1
XQotCWplCS5MY2JjX2RlY19zaXgKLQltb3ZkcXUJMHg2MCgkaW5wKSwgQFhNTVs2XQotCW1vdmRx
YQlAWE1NWzE1XSwgMHgyMCglcmJwKQkjIHB1dCBhc2lkZSBJVgotCWNhbGwJX2JzYWVzX2RlY3J5
cHQ4Ci0JcHhvcgkweDIwKCVyYnApLCBAWE1NWzBdCSMgXj0gSVYKLQltb3ZkcXUJMHgwMCgkaW5w
KSwgQFhNTVs4XQkjIHJlLWxvYWQgaW5wdXQKLQltb3ZkcXUJMHgxMCgkaW5wKSwgQFhNTVs5XQot
CXB4b3IJQFhNTVs4XSwgQFhNTVsxXQotCW1vdmRxdQkweDIwKCRpbnApLCBAWE1NWzEwXQotCXB4
b3IJQFhNTVs5XSwgQFhNTVs2XQotCW1vdmRxdQkweDMwKCRpbnApLCBAWE1NWzExXQotCXB4b3IJ
QFhNTVsxMF0sIEBYTU1bNF0KLQltb3ZkcXUJMHg0MCgkaW5wKSwgQFhNTVsxMl0KLQlweG9yCUBY
TU1bMTFdLCBAWE1NWzJdCi0JbW92ZHF1CTB4NTAoJGlucCksIEBYTU1bMTNdCi0JcHhvcglAWE1N
WzEyXSwgQFhNTVs3XQotCW1vdmRxdQkweDYwKCRpbnApLCBAWE1NWzE1XQkjIElWCi0JcHhvcglA
WE1NWzEzXSwgQFhNTVszXQotCW1vdmRxdQlAWE1NWzBdLCAweDAwKCRvdXQpCSMgd3JpdGUgb3V0
cHV0Ci0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQltb3ZkcXUJQFhNTVs2XSwgMHgyMCgk
b3V0KQotCW1vdmRxdQlAWE1NWzRdLCAweDMwKCRvdXQpCi0JbW92ZHF1CUBYTU1bMl0sIDB4NDAo
JG91dCkKLQltb3ZkcXUJQFhNTVs3XSwgMHg1MCgkb3V0KQotCW1vdmRxdQlAWE1NWzNdLCAweDYw
KCRvdXQpCi0Jam1wCS5MY2JjX2RlY19kb25lCi0uYWxpZ24JMTYKLS5MY2JjX2RlY19zaXg6Ci0J
bW92ZHFhCUBYTU1bMTVdLCAweDIwKCVyYnApCSMgcHV0IGFzaWRlIElWCi0JY2FsbAlfYnNhZXNf
ZGVjcnlwdDgKLQlweG9yCTB4MjAoJXJicCksIEBYTU1bMF0JIyBePSBJVgotCW1vdmRxdQkweDAw
KCRpbnApLCBAWE1NWzhdCSMgcmUtbG9hZCBpbnB1dAotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1N
WzldCi0JcHhvcglAWE1NWzhdLCBAWE1NWzFdCi0JbW92ZHF1CTB4MjAoJGlucCksIEBYTU1bMTBd
Ci0JcHhvcglAWE1NWzldLCBAWE1NWzZdCi0JbW92ZHF1CTB4MzAoJGlucCksIEBYTU1bMTFdCi0J
cHhvcglAWE1NWzEwXSwgQFhNTVs0XQotCW1vdmRxdQkweDQwKCRpbnApLCBAWE1NWzEyXQotCXB4
b3IJQFhNTVsxMV0sIEBYTU1bMl0KLQltb3ZkcXUJMHg1MCgkaW5wKSwgQFhNTVsxNV0JIyBJVgot
CXB4b3IJQFhNTVsxMl0sIEBYTU1bN10KLQltb3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0KQkjIHdy
aXRlIG91dHB1dAotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQpCi0JbW92ZHF1CUBYTU1bNl0s
IDB4MjAoJG91dCkKLQltb3ZkcXUJQFhNTVs0XSwgMHgzMCgkb3V0KQotCW1vdmRxdQlAWE1NWzJd
LCAweDQwKCRvdXQpCi0JbW92ZHF1CUBYTU1bN10sIDB4NTAoJG91dCkKLQlqbXAJLkxjYmNfZGVj
X2RvbmUKLS5hbGlnbgkxNgotLkxjYmNfZGVjX2ZpdmU6Ci0JbW92ZHFhCUBYTU1bMTVdLCAweDIw
KCVyYnApCSMgcHV0IGFzaWRlIElWCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlweG9yCTB4MjAo
JXJicCksIEBYTU1bMF0JIyBePSBJVgotCW1vdmRxdQkweDAwKCRpbnApLCBAWE1NWzhdCSMgcmUt
bG9hZCBpbnB1dAotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1NWzldCi0JcHhvcglAWE1NWzhdLCBA
WE1NWzFdCi0JbW92ZHF1CTB4MjAoJGlucCksIEBYTU1bMTBdCi0JcHhvcglAWE1NWzldLCBAWE1N
WzZdCi0JbW92ZHF1CTB4MzAoJGlucCksIEBYTU1bMTFdCi0JcHhvcglAWE1NWzEwXSwgQFhNTVs0
XQotCW1vdmRxdQkweDQwKCRpbnApLCBAWE1NWzE1XQkjIElWCi0JcHhvcglAWE1NWzExXSwgQFhN
TVsyXQotCW1vdmRxdQlAWE1NWzBdLCAweDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JbW92ZHF1
CUBYTU1bMV0sIDB4MTAoJG91dCkKLQltb3ZkcXUJQFhNTVs2XSwgMHgyMCgkb3V0KQotCW1vdmRx
dQlAWE1NWzRdLCAweDMwKCRvdXQpCi0JbW92ZHF1CUBYTU1bMl0sIDB4NDAoJG91dCkKLQlqbXAJ
LkxjYmNfZGVjX2RvbmUKLS5hbGlnbgkxNgotLkxjYmNfZGVjX2ZvdXI6Ci0JbW92ZHFhCUBYTU1b
MTVdLCAweDIwKCVyYnApCSMgcHV0IGFzaWRlIElWCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlw
eG9yCTB4MjAoJXJicCksIEBYTU1bMF0JIyBePSBJVgotCW1vdmRxdQkweDAwKCRpbnApLCBAWE1N
WzhdCSMgcmUtbG9hZCBpbnB1dAotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1NWzldCi0JcHhvcglA
WE1NWzhdLCBAWE1NWzFdCi0JbW92ZHF1CTB4MjAoJGlucCksIEBYTU1bMTBdCi0JcHhvcglAWE1N
WzldLCBAWE1NWzZdCi0JbW92ZHF1CTB4MzAoJGlucCksIEBYTU1bMTVdCSMgSVYKLQlweG9yCUBY
TU1bMTBdLCBAWE1NWzRdCi0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRw
dXQKLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCW1vdmRxdQlAWE1NWzZdLCAweDIwKCRv
dXQpCi0JbW92ZHF1CUBYTU1bNF0sIDB4MzAoJG91dCkKLQlqbXAJLkxjYmNfZGVjX2RvbmUKLS5h
bGlnbgkxNgotLkxjYmNfZGVjX3RocmVlOgotCW1vdmRxYQlAWE1NWzE1XSwgMHgyMCglcmJwKQkj
IHB1dCBhc2lkZSBJVgotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgkweDIwKCVyYnApLCBA
WE1NWzBdCSMgXj0gSVYKLQltb3ZkcXUJMHgwMCgkaW5wKSwgQFhNTVs4XQkjIHJlLWxvYWQgaW5w
dXQKLQltb3ZkcXUJMHgxMCgkaW5wKSwgQFhNTVs5XQotCXB4b3IJQFhNTVs4XSwgQFhNTVsxXQot
CW1vdmRxdQkweDIwKCRpbnApLCBAWE1NWzE1XQkjIElWCi0JcHhvcglAWE1NWzldLCBAWE1NWzZd
Ci0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQltb3ZkcXUJQFhN
TVsxXSwgMHgxMCgkb3V0KQotCW1vdmRxdQlAWE1NWzZdLCAweDIwKCRvdXQpCi0Jam1wCS5MY2Jj
X2RlY19kb25lCi0uYWxpZ24JMTYKLS5MY2JjX2RlY190d286Ci0JbW92ZHFhCUBYTU1bMTVdLCAw
eDIwKCVyYnApCSMgcHV0IGFzaWRlIElWCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlweG9yCTB4
MjAoJXJicCksIEBYTU1bMF0JIyBePSBJVgotCW1vdmRxdQkweDAwKCRpbnApLCBAWE1NWzhdCSMg
cmUtbG9hZCBpbnB1dAotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1NWzE1XQkjIElWCi0JcHhvcglA
WE1NWzhdLCBAWE1NWzFdCi0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRw
dXQKLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCWptcAkuTGNiY19kZWNfZG9uZQotLmFs
aWduCTE2Ci0uTGNiY19kZWNfb25lOgotCWxlYQkoJGlucCksICRhcmcxCi0JbGVhCTB4MjAoJXJi
cCksICRhcmcyCSMgYnVmZmVyIG91dHB1dAotCWxlYQkoJGtleSksICRhcmczCi0JY2FsbAlhZXNf
bm9od19kZWNyeXB0CQkjIGRvZXNuJ3QgdG91Y2ggJXhtbQotCXB4b3IJMHgyMCglcmJwKSwgQFhN
TVsxNV0JIyBePSBJVgotCW1vdmRxdQlAWE1NWzE1XSwgKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0J
bW92ZHFhCUBYTU1bMF0sIEBYTU1bMTVdCSMgSVYKLQotLkxjYmNfZGVjX2RvbmU6Ci0JbW92ZHF1
CUBYTU1bMTVdLCAoJXJieCkJIyByZXR1cm4gSVYKLQlsZWEJKCVyc3ApLCAlcmF4Ci0JcHhvcgkl
eG1tMCwgJXhtbTAKLS5MY2JjX2RlY19iemVybzoJCQkjIHdpcGUga2V5IHNjaGVkdWxlIFtpZiBh
bnldCi0JbW92ZHFhCSV4bW0wLCAweDAwKCVyYXgpCi0JbW92ZHFhCSV4bW0wLCAweDEwKCVyYXgp
Ci0JbGVhCTB4MjAoJXJheCksICVyYXgKLQljbXAJJXJheCwgJXJicAotCWphCS5MY2JjX2RlY19i
emVybwotCi0JbGVhCTB4NzgoJXJicCksJXJheAotLmNmaV9kZWZfY2ZhCSVyYXgsOAotX19fCi0k
Y29kZS49PDxfX18gaWYgKCR3aW42NCk7Ci0JbW92YXBzCTB4NDAoJXJicCksICV4bW02Ci0JbW92
YXBzCTB4NTAoJXJicCksICV4bW03Ci0JbW92YXBzCTB4NjAoJXJicCksICV4bW04Ci0JbW92YXBz
CTB4NzAoJXJicCksICV4bW05Ci0JbW92YXBzCTB4ODAoJXJicCksICV4bW0xMAotCW1vdmFwcwkw
eDkwKCVyYnApLCAleG1tMTEKLQltb3ZhcHMJMHhhMCglcmJwKSwgJXhtbTEyCi0JbW92YXBzCTB4
YjAoJXJicCksICV4bW0xMwotCW1vdmFwcwkweGMwKCVyYnApLCAleG1tMTQKLQltb3ZhcHMJMHhk
MCglcmJwKSwgJXhtbTE1Ci0JbGVhCTB4YTAoJXJheCksICVyYXgKLS5MY2JjX2RlY190YWlsOgot
X19fCi0kY29kZS49PDxfX187Ci0JbW92CS00OCglcmF4KSwgJXIxNQotLmNmaV9yZXN0b3JlCSVy
MTUKLQltb3YJLTQwKCVyYXgpLCAlcjE0Ci0uY2ZpX3Jlc3RvcmUJJXIxNAotCW1vdgktMzIoJXJh
eCksICVyMTMKLS5jZmlfcmVzdG9yZQklcjEzCi0JbW92CS0yNCglcmF4KSwgJXIxMgotLmNmaV9y
ZXN0b3JlCSVyMTIKLQltb3YJLTE2KCVyYXgpLCAlcmJ4Ci0uY2ZpX3Jlc3RvcmUJJXJieAotCW1v
dgktOCglcmF4KSwgJXJicAotLmNmaV9yZXN0b3JlCSVyYnAKLQlsZWEJKCVyYXgpLCAlcnNwCQkj
IHJlc3RvcmUgJXJzcAotLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCSVyc3AKLS5MY2JjX2RlY19lcGls
b2d1ZToKLQlyZXQKLS5jZmlfZW5kcHJvYwotLnNpemUJYnNhZXNfY2JjX2VuY3J5cHQsLi1ic2Fl
c19jYmNfZW5jcnlwdAotCi0uZ2xvYmwJYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKLS50eXBl
CWJzYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzLFxAYWJpLW9tbmlwb3RlbnQKLS5hbGlnbgkxNgot
YnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3M6Ci0uY2ZpX3N0YXJ0cHJvYwotCW1vdgklcnNwLCAl
cmF4Ci0uTGN0cl9lbmNfcHJvbG9ndWU6Ci0JcHVzaAklcmJwCi0uY2ZpX3B1c2gJJXJicAotCXB1
c2gJJXJieAotLmNmaV9wdXNoCSVyYngKLQlwdXNoCSVyMTIKLS5jZmlfcHVzaAklcjEyCi0JcHVz
aAklcjEzCi0uY2ZpX3B1c2gJJXIxMwotCXB1c2gJJXIxNAotLmNmaV9wdXNoCSVyMTQKLQlwdXNo
CSVyMTUKLS5jZmlfcHVzaAklcjE1Ci0JbGVhCS0weDQ4KCVyc3ApLCAlcnNwCi0uY2ZpX2FkanVz
dF9jZmFfb2Zmc2V0CTB4NDgKLV9fXwotJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOwotCW1vdgkw
eGEwKCVyc3ApLCRhcmc1CSMgcHVsbCBpdnAKLQlsZWEJLTB4YTAoJXJzcCksICVyc3AKLQltb3Zh
cHMJJXhtbTYsIDB4NDAoJXJzcCkKLQltb3ZhcHMJJXhtbTcsIDB4NTAoJXJzcCkKLQltb3ZhcHMJ
JXhtbTgsIDB4NjAoJXJzcCkKLQltb3ZhcHMJJXhtbTksIDB4NzAoJXJzcCkKLQltb3ZhcHMJJXht
bTEwLCAweDgwKCVyc3ApCi0JbW92YXBzCSV4bW0xMSwgMHg5MCglcnNwKQotCW1vdmFwcwkleG1t
MTIsIDB4YTAoJXJzcCkKLQltb3ZhcHMJJXhtbTEzLCAweGIwKCVyc3ApCi0JbW92YXBzCSV4bW0x
NCwgMHhjMCglcnNwKQotCW1vdmFwcwkleG1tMTUsIDB4ZDAoJXJzcCkKLS5MY3RyX2VuY19ib2R5
OgotX19fCi0kY29kZS49PDxfX187Ci0JbW92CSVyc3AsICVyYnAJCSMgYmFja3VwICVyc3AKLS5j
ZmlfZGVmX2NmYV9yZWdpc3RlcgklcmJwCi0JbW92ZHF1CSgkYXJnNSksICV4bW0wCQkjIGxvYWQg
Y291bnRlcgotCW1vdgkyNDAoJGFyZzQpLCAlZWF4CSMgcm91bmRzCi0JbW92CSRhcmcxLCAkaW5w
CQkjIGJhY2t1cCBhcmd1bWVudHMKLQltb3YJJGFyZzIsICRvdXQKLQltb3YJJGFyZzMsICRsZW4K
LQltb3YJJGFyZzQsICRrZXkKLQltb3ZkcWEJJXhtbTAsIDB4MjAoJXJicCkJIyBjb3B5IGNvdW50
ZXIKLQljbXAJXCQ4LCAkYXJnMwotCWpiCS5MY3RyX2VuY19zaG9ydAotCi0JbW92CSVlYXgsICVl
YngJCSMgcm91bmRzCi0Jc2hsCVwkNywgJXJheAkJIyAxMjggYnl0ZXMgcGVyIGlubmVyIHJvdW5k
IGtleQotCXN1YglcJGAxMjgtMzJgLCAlcmF4CSMgc2l6ZSBvZiBiaXQtc2xpY2VkIGtleSBzY2hl
ZHVsZQotCXN1YgklcmF4LCAlcnNwCi0KLQltb3YJJXJzcCwgJXJheAkJIyBwYXNzIGtleSBzY2hl
ZHVsZQotCW1vdgkka2V5LCAlcmN4CQkjIHBhc3Mga2V5Ci0JbW92CSVlYngsICVyMTBkCQkjIHBh
c3Mgcm91bmRzCi0JY2FsbAlfYnNhZXNfa2V5X2NvbnZlcnQKLQlweG9yCSV4bW02LCV4bW03CQkj
IGZpeCB1cCBsYXN0IHJvdW5kIGtleQotCW1vdmRxYQkleG1tNywoJXJheCkJCSMgc2F2ZSBsYXN0
IHJvdW5kIGtleQotCi0JbW92ZHFhCSglcnNwKSwgQFhNTVs5XQkJIyBsb2FkIHJvdW5kMCBrZXkK
LQlsZWEJLkxBREQxKCVyaXApLCAlcjExCi0JbW92ZHFhCTB4MjAoJXJicCksIEBYTU1bMF0JIyBj
b3VudGVyIGNvcHkKLQltb3ZkcWEJLTB4MjAoJXIxMSksIEBYTU1bOF0JIyAuTFNXUFVQCi0JcHNo
dWZiCUBYTU1bOF0sIEBYTU1bOV0JIyBieXRlIHN3YXAgdXBwZXIgcGFydAotCXBzaHVmYglAWE1N
WzhdLCBAWE1NWzBdCi0JbW92ZHFhCUBYTU1bOV0sICglcnNwKQkJIyBzYXZlIGFkanVzdGVkIHJv
dW5kMCBrZXkKLQlqbXAJLkxjdHJfZW5jX2xvb3AKLS5hbGlnbgkxNgotLkxjdHJfZW5jX2xvb3A6
Ci0JbW92ZHFhCUBYTU1bMF0sIDB4MjAoJXJicCkJIyBzYXZlIGNvdW50ZXIKLQltb3ZkcWEJQFhN
TVswXSwgQFhNTVsxXQkjIHByZXBhcmUgOCBjb3VudGVyIHZhbHVlcwotCW1vdmRxYQlAWE1NWzBd
LCBAWE1NWzJdCi0JcGFkZGQJMHgwMCglcjExKSwgQFhNTVsxXQkjIC5MQUREMQotCW1vdmRxYQlA
WE1NWzBdLCBAWE1NWzNdCi0JcGFkZGQJMHgxMCglcjExKSwgQFhNTVsyXQkjIC5MQUREMgotCW1v
dmRxYQlAWE1NWzBdLCBAWE1NWzRdCi0JcGFkZGQJMHgyMCglcjExKSwgQFhNTVszXQkjIC5MQURE
MwotCW1vdmRxYQlAWE1NWzBdLCBAWE1NWzVdCi0JcGFkZGQJMHgzMCglcjExKSwgQFhNTVs0XQkj
IC5MQURENAotCW1vdmRxYQlAWE1NWzBdLCBAWE1NWzZdCi0JcGFkZGQJMHg0MCglcjExKSwgQFhN
TVs1XQkjIC5MQURENQotCW1vdmRxYQlAWE1NWzBdLCBAWE1NWzddCi0JcGFkZGQJMHg1MCglcjEx
KSwgQFhNTVs2XQkjIC5MQURENgotCXBhZGRkCTB4NjAoJXIxMSksIEBYTU1bN10JIyAuTEFERDcK
LQotCSMgQm9ycm93IHByb2xvZ3VlIGZyb20gX2JzYWVzX2VuY3J5cHQ4IHRvIHVzZSB0aGUgb3Bw
b3J0dW5pdHkKLQkjIHRvIGZsaXAgYnl0ZSBvcmRlciBpbiAzMi1iaXQgY291bnRlcgotCW1vdmRx
YQkoJXJzcCksIEBYTU1bOV0JCSMgcm91bmQgMCBrZXkKLQlsZWEJMHgxMCglcnNwKSwgJXJheAkj
IHBhc3Mga2V5IHNjaGVkdWxlCi0JbW92ZHFhCS0weDEwKCVyMTEpLCBAWE1NWzhdCSMgLkxTV1BV
UE0wU1IKLQlweG9yCUBYTU1bOV0sIEBYTU1bMF0JIyB4b3Igd2l0aCByb3VuZDAga2V5Ci0JcHhv
cglAWE1NWzldLCBAWE1NWzFdCi0JcHhvcglAWE1NWzldLCBAWE1NWzJdCi0JcHhvcglAWE1NWzld
LCBAWE1NWzNdCi0JIHBzaHVmYglAWE1NWzhdLCBAWE1NWzBdCi0JIHBzaHVmYglAWE1NWzhdLCBA
WE1NWzFdCi0JcHhvcglAWE1NWzldLCBAWE1NWzRdCi0JcHhvcglAWE1NWzldLCBAWE1NWzVdCi0J
IHBzaHVmYglAWE1NWzhdLCBAWE1NWzJdCi0JIHBzaHVmYglAWE1NWzhdLCBAWE1NWzNdCi0JcHhv
cglAWE1NWzldLCBAWE1NWzZdCi0JcHhvcglAWE1NWzldLCBAWE1NWzddCi0JIHBzaHVmYglAWE1N
WzhdLCBAWE1NWzRdCi0JIHBzaHVmYglAWE1NWzhdLCBAWE1NWzVdCi0JIHBzaHVmYglAWE1NWzhd
LCBAWE1NWzZdCi0JIHBzaHVmYglAWE1NWzhdLCBAWE1NWzddCi0JbGVhCS5MQlMwKCVyaXApLCAl
cjExCSMgY29uc3RhbnRzIHRhYmxlCi0JbW92CSVlYngsJXIxMGQJCSMgcGFzcyByb3VuZHMKLQot
CWNhbGwJX2JzYWVzX2VuY3J5cHQ4X2JpdHNsaWNlCi0KLQlzdWIJXCQ4LCRsZW4KLQlqYwkuTGN0
cl9lbmNfbG9vcF9kb25lCi0KLQltb3ZkcXUJMHgwMCgkaW5wKSwgQFhNTVs4XQkjIGxvYWQgaW5w
dXQKLQltb3ZkcXUJMHgxMCgkaW5wKSwgQFhNTVs5XQotCW1vdmRxdQkweDIwKCRpbnApLCBAWE1N
WzEwXQotCW1vdmRxdQkweDMwKCRpbnApLCBAWE1NWzExXQotCW1vdmRxdQkweDQwKCRpbnApLCBA
WE1NWzEyXQotCW1vdmRxdQkweDUwKCRpbnApLCBAWE1NWzEzXQotCW1vdmRxdQkweDYwKCRpbnAp
LCBAWE1NWzE0XQotCW1vdmRxdQkweDcwKCRpbnApLCBAWE1NWzE1XQotCWxlYQkweDgwKCRpbnAp
LCRpbnAKLQlweG9yCUBYTU1bMF0sIEBYTU1bOF0KLQltb3ZkcWEJMHgyMCglcmJwKSwgQFhNTVsw
XQkjIGxvYWQgY291bnRlcgotCXB4b3IJQFhNTVs5XSwgQFhNTVsxXQotCW1vdmRxdQlAWE1NWzhd
LCAweDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JcHhvcglAWE1NWzEwXSwgQFhNTVs0XQotCW1v
dmRxdQlAWE1NWzFdLCAweDEwKCRvdXQpCi0JcHhvcglAWE1NWzExXSwgQFhNTVs2XQotCW1vdmRx
dQlAWE1NWzRdLCAweDIwKCRvdXQpCi0JcHhvcglAWE1NWzEyXSwgQFhNTVszXQotCW1vdmRxdQlA
WE1NWzZdLCAweDMwKCRvdXQpCi0JcHhvcglAWE1NWzEzXSwgQFhNTVs3XQotCW1vdmRxdQlAWE1N
WzNdLCAweDQwKCRvdXQpCi0JcHhvcglAWE1NWzE0XSwgQFhNTVsyXQotCW1vdmRxdQlAWE1NWzdd
LCAweDUwKCRvdXQpCi0JcHhvcglAWE1NWzE1XSwgQFhNTVs1XQotCW1vdmRxdQlAWE1NWzJdLCAw
eDYwKCRvdXQpCi0JbGVhCS5MQUREMSglcmlwKSwgJXIxMQotCW1vdmRxdQlAWE1NWzVdLCAweDcw
KCRvdXQpCi0JbGVhCTB4ODAoJG91dCksICRvdXQKLQlwYWRkZAkweDcwKCVyMTEpLCBAWE1NWzBd
CSMgLkxBREQ4Ci0Jam56CS5MY3RyX2VuY19sb29wCi0KLQlqbXAJLkxjdHJfZW5jX2RvbmUKLS5h
bGlnbgkxNgotLkxjdHJfZW5jX2xvb3BfZG9uZToKLQlhZGQJXCQ4LCAkbGVuCi0JbW92ZHF1CTB4
MDAoJGlucCksIEBYTU1bOF0JIyBsb2FkIGlucHV0Ci0JcHhvcglAWE1NWzhdLCBAWE1NWzBdCi0J
bW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQljbXAJXCQyLCRsZW4K
LQlqYgkuTGN0cl9lbmNfZG9uZQotCW1vdmRxdQkweDEwKCRpbnApLCBAWE1NWzldCi0JcHhvcglA
WE1NWzldLCBAWE1NWzFdCi0JbW92ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQlqZQkuTGN0cl9l
bmNfZG9uZQotCW1vdmRxdQkweDIwKCRpbnApLCBAWE1NWzEwXQotCXB4b3IJQFhNTVsxMF0sIEBY
TU1bNF0KLQltb3ZkcXUJQFhNTVs0XSwgMHgyMCgkb3V0KQotCWNtcAlcJDQsJGxlbgotCWpiCS5M
Y3RyX2VuY19kb25lCi0JbW92ZHF1CTB4MzAoJGlucCksIEBYTU1bMTFdCi0JcHhvcglAWE1NWzEx
XSwgQFhNTVs2XQotCW1vdmRxdQlAWE1NWzZdLCAweDMwKCRvdXQpCi0JamUJLkxjdHJfZW5jX2Rv
bmUKLQltb3ZkcXUJMHg0MCgkaW5wKSwgQFhNTVsxMl0KLQlweG9yCUBYTU1bMTJdLCBAWE1NWzNd
Ci0JbW92ZHF1CUBYTU1bM10sIDB4NDAoJG91dCkKLQljbXAJXCQ2LCRsZW4KLQlqYgkuTGN0cl9l
bmNfZG9uZQotCW1vdmRxdQkweDUwKCRpbnApLCBAWE1NWzEzXQotCXB4b3IJQFhNTVsxM10sIEBY
TU1bN10KLQltb3ZkcXUJQFhNTVs3XSwgMHg1MCgkb3V0KQotCWplCS5MY3RyX2VuY19kb25lCi0J
bW92ZHF1CTB4NjAoJGlucCksIEBYTU1bMTRdCi0JcHhvcglAWE1NWzE0XSwgQFhNTVsyXQotCW1v
dmRxdQlAWE1NWzJdLCAweDYwKCRvdXQpCi0Jam1wCS5MY3RyX2VuY19kb25lCi0KLS5hbGlnbgkx
NgotLkxjdHJfZW5jX3Nob3J0OgotCWxlYQkweDIwKCVyYnApLCAkYXJnMQotCWxlYQkweDMwKCVy
YnApLCAkYXJnMgotCWxlYQkoJGtleSksICRhcmczCi0JY2FsbAlhZXNfbm9od19lbmNyeXB0Ci0J
bW92ZHF1CSgkaW5wKSwgQFhNTVsxXQotCWxlYQkxNigkaW5wKSwgJGlucAotCW1vdgkweDJjKCVy
YnApLCAlZWF4CSMgbG9hZCAzMi1iaXQgY291bnRlcgotCWJzd2FwCSVlYXgKLQlweG9yCTB4MzAo
JXJicCksIEBYTU1bMV0KLQlpbmMJJWVheAkJCSMgaW5jcmVtZW50Ci0JbW92ZHF1CUBYTU1bMV0s
ICgkb3V0KQotCWJzd2FwCSVlYXgKLQlsZWEJMTYoJG91dCksICRvdXQKLQltb3YJJWVheCwgMHgy
YyglcnNwKQkjIHNhdmUgMzItYml0IGNvdW50ZXIKLQlkZWMJJGxlbgotCWpuegkuTGN0cl9lbmNf
c2hvcnQKLQotLkxjdHJfZW5jX2RvbmU6Ci0JbGVhCSglcnNwKSwgJXJheAotCXB4b3IJJXhtbTAs
ICV4bW0wCi0uTGN0cl9lbmNfYnplcm86CQkJIyB3aXBlIGtleSBzY2hlZHVsZSBbaWYgYW55XQot
CW1vdmRxYQkleG1tMCwgMHgwMCglcmF4KQotCW1vdmRxYQkleG1tMCwgMHgxMCglcmF4KQotCWxl
YQkweDIwKCVyYXgpLCAlcmF4Ci0JY21wCSVyYXgsICVyYnAKLQlqYQkuTGN0cl9lbmNfYnplcm8K
LQotCWxlYQkweDc4KCVyYnApLCVyYXgKLS5jZmlfZGVmX2NmYQklcmF4LDgKLV9fXwotJGNvZGUu
PTw8X19fIGlmICgkd2luNjQpOwotCW1vdmFwcwkweDQwKCVyYnApLCAleG1tNgotCW1vdmFwcwkw
eDUwKCVyYnApLCAleG1tNwotCW1vdmFwcwkweDYwKCVyYnApLCAleG1tOAotCW1vdmFwcwkweDcw
KCVyYnApLCAleG1tOQotCW1vdmFwcwkweDgwKCVyYnApLCAleG1tMTAKLQltb3ZhcHMJMHg5MCgl
cmJwKSwgJXhtbTExCi0JbW92YXBzCTB4YTAoJXJicCksICV4bW0xMgotCW1vdmFwcwkweGIwKCVy
YnApLCAleG1tMTMKLQltb3ZhcHMJMHhjMCglcmJwKSwgJXhtbTE0Ci0JbW92YXBzCTB4ZDAoJXJi
cCksICV4bW0xNQotCWxlYQkweGEwKCVyYXgpLCAlcmF4Ci0uTGN0cl9lbmNfdGFpbDoKLV9fXwot
JGNvZGUuPTw8X19fOwotCW1vdgktNDgoJXJheCksICVyMTUKLS5jZmlfcmVzdG9yZQklcjE1Ci0J
bW92CS00MCglcmF4KSwgJXIxNAotLmNmaV9yZXN0b3JlCSVyMTQKLQltb3YJLTMyKCVyYXgpLCAl
cjEzCi0uY2ZpX3Jlc3RvcmUJJXIxMwotCW1vdgktMjQoJXJheCksICVyMTIKLS5jZmlfcmVzdG9y
ZQklcjEyCi0JbW92CS0xNiglcmF4KSwgJXJieAotLmNmaV9yZXN0b3JlCSVyYngKLQltb3YJLTgo
JXJheCksICVyYnAKLS5jZmlfcmVzdG9yZQklcmJwCi0JbGVhCSglcmF4KSwgJXJzcAkJIyByZXN0
b3JlICVyc3AKLS5jZmlfZGVmX2NmYV9yZWdpc3RlcgklcnNwCi0uTGN0cl9lbmNfZXBpbG9ndWU6
Ci0JcmV0Ci0uY2ZpX2VuZHByb2MKLS5zaXplCWJzYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzLC4t
YnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKLV9fXwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyB2b2lkIGJz
YWVzX3h0c19bZW58ZGVdY3J5cHQoY29uc3QgY2hhciAqaW5wLGNoYXIgKm91dCxzaXplX3QgbGVu
LAotIwljb25zdCBBRVNfS0VZICprZXkxLCBjb25zdCBBRVNfS0VZICprZXkyLAotIwljb25zdCB1
bnNpZ25lZCBjaGFyIGl2WzE2XSk7Ci0jCi1teSAoJHR3bWFzaywkdHdyZXMsJHR3dG1wKT1AWE1N
WzEzLi4xNV07Ci0kYXJnNj1+cy9kJC8vOwotCi0kY29kZS49PDxfX187Ci0uZ2xvYmwJYnNhZXNf
eHRzX2VuY3J5cHQKLS50eXBlCWJzYWVzX3h0c19lbmNyeXB0LFxAYWJpLW9tbmlwb3RlbnQKLS5h
bGlnbgkxNgotYnNhZXNfeHRzX2VuY3J5cHQ6Ci0uY2ZpX3N0YXJ0cHJvYwotCW1vdgklcnNwLCAl
cmF4Ci0uTHh0c19lbmNfcHJvbG9ndWU6Ci0JcHVzaAklcmJwCi0uY2ZpX3B1c2gJJXJicAotCXB1
c2gJJXJieAotLmNmaV9wdXNoCSVyYngKLQlwdXNoCSVyMTIKLS5jZmlfcHVzaAklcjEyCi0JcHVz
aAklcjEzCi0uY2ZpX3B1c2gJJXIxMwotCXB1c2gJJXIxNAotLmNmaV9wdXNoCSVyMTQKLQlwdXNo
CSVyMTUKLS5jZmlfcHVzaAklcjE1Ci0JbGVhCS0weDQ4KCVyc3ApLCAlcnNwCi0uY2ZpX2FkanVz
dF9jZmFfb2Zmc2V0CTB4NDgKLV9fXwotJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOwotCW1vdgkw
eGEwKCVyc3ApLCRhcmc1CSMgcHVsbCBrZXkyCi0JbW92CTB4YTgoJXJzcCksJGFyZzYJIyBwdWxs
IGl2cAotCWxlYQktMHhhMCglcnNwKSwgJXJzcAotCW1vdmFwcwkleG1tNiwgMHg0MCglcnNwKQot
CW1vdmFwcwkleG1tNywgMHg1MCglcnNwKQotCW1vdmFwcwkleG1tOCwgMHg2MCglcnNwKQotCW1v
dmFwcwkleG1tOSwgMHg3MCglcnNwKQotCW1vdmFwcwkleG1tMTAsIDB4ODAoJXJzcCkKLQltb3Zh
cHMJJXhtbTExLCAweDkwKCVyc3ApCi0JbW92YXBzCSV4bW0xMiwgMHhhMCglcnNwKQotCW1vdmFw
cwkleG1tMTMsIDB4YjAoJXJzcCkKLQltb3ZhcHMJJXhtbTE0LCAweGMwKCVyc3ApCi0JbW92YXBz
CSV4bW0xNSwgMHhkMCglcnNwKQotLkx4dHNfZW5jX2JvZHk6Ci1fX18KLSRjb2RlLj08PF9fXzsK
LQltb3YJJXJzcCwgJXJicAkJIyBiYWNrdXAgJXJzcAotLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCSVy
YnAKLQltb3YJJGFyZzEsICRpbnAJCSMgYmFja3VwIGFyZ3VtZW50cwotCW1vdgkkYXJnMiwgJG91
dAotCW1vdgkkYXJnMywgJGxlbgotCW1vdgkkYXJnNCwgJGtleQotCi0JbGVhCSgkYXJnNiksICRh
cmcxCi0JbGVhCTB4MjAoJXJicCksICRhcmcyCi0JbGVhCSgkYXJnNSksICRhcmczCi0JY2FsbAlh
ZXNfbm9od19lbmNyeXB0CQkjIGdlbmVyYXRlIGluaXRpYWwgdHdlYWsKLQotCW1vdgkyNDAoJGtl
eSksICVlYXgJCSMgcm91bmRzCi0JbW92CSRsZW4sICVyYngJCSMgYmFja3VwICRsZW4KLQotCW1v
dgklZWF4LCAlZWR4CQkjIHJvdW5kcwotCXNobAlcJDcsICVyYXgJCSMgMTI4IGJ5dGVzIHBlciBp
bm5lciByb3VuZCBrZXkKLQlzdWIJXCRgMTI4LTMyYCwgJXJheAkjIHNpemUgb2YgYml0LXNsaWNl
ZCBrZXkgc2NoZWR1bGUKLQlzdWIJJXJheCwgJXJzcAotCi0JbW92CSVyc3AsICVyYXgJCSMgcGFz
cyBrZXkgc2NoZWR1bGUKLQltb3YJJGtleSwgJXJjeAkJIyBwYXNzIGtleQotCW1vdgklZWR4LCAl
cjEwZAkJIyBwYXNzIHJvdW5kcwotCWNhbGwJX2JzYWVzX2tleV9jb252ZXJ0Ci0JcHhvcgkleG1t
NiwgJXhtbTcJCSMgZml4IHVwIGxhc3Qgcm91bmQga2V5Ci0JbW92ZHFhCSV4bW03LCAoJXJheCkJ
CSMgc2F2ZSBsYXN0IHJvdW5kIGtleQotCi0JYW5kCVwkLTE2LCAkbGVuCi0Jc3ViCVwkMHg4MCwg
JXJzcAkJIyBwbGFjZSBmb3IgdHdlYWtbOF0KLQltb3ZkcWEJMHgyMCglcmJwKSwgQFhNTVs3XQkj
IGluaXRpYWwgdHdlYWsKLQotCXB4b3IJJHR3dG1wLCAkdHd0bXAKLQltb3ZkcWEJLkx4dHNfbWFn
aWMoJXJpcCksICR0d21hc2sKLQlwY21wZ3RkCUBYTU1bN10sICR0d3RtcAkJIyBicm9hZGNhc3Qg
dXBwZXIgYml0cwotCi0Jc3ViCVwkMHg4MCwgJGxlbgotCWpjCS5MeHRzX2VuY19zaG9ydAotCWpt
cAkuTHh0c19lbmNfbG9vcAotCi0uYWxpZ24JMTYKLS5MeHRzX2VuY19sb29wOgotX19fCi0gICAg
Zm9yICgkaT0wOyRpPDc7JGkrKykgewotICAgICRjb2RlLj08PF9fXzsKLQlwc2h1ZmQJXCQweDEz
LCAkdHd0bXAsICR0d3JlcwotCXB4b3IJJHR3dG1wLCAkdHd0bXAKLQltb3ZkcWEJQFhNTVs3XSwg
QFhNTVskaV0KLQltb3ZkcWEJQFhNTVs3XSwgYDB4MTAqJGlgKCVyc3ApIyBzYXZlIHR3ZWFrWyRp
XQotCXBhZGRxCUBYTU1bN10sIEBYTU1bN10JIyBwc2xscQkxLCR0d2VhawotCXBhbmQJJHR3bWFz
aywgJHR3cmVzCQkjIGlzb2xhdGUgY2FycnkgYW5kIHJlc2lkdWUKLQlwY21wZ3RkCUBYTU1bN10s
ICR0d3RtcAkJIyBicm9hZGNhc3QgdXBwZXIgYml0cwotCXB4b3IJJHR3cmVzLCBAWE1NWzddCi1f
X18KLSAgICAkY29kZS49PDxfX18gaWYgKCRpPj0xKTsKLQltb3ZkcXUJYDB4MTAqKCRpLTEpYCgk
aW5wKSwgQFhNTVs4KyRpLTFdCi1fX18KLSAgICAkY29kZS49PDxfX18gaWYgKCRpPj0yKTsKLQlw
eG9yCUBYTU1bOCskaS0yXSwgQFhNTVskaS0yXSMgaW5wdXRbXSBeIHR3ZWFrW10KLV9fXwotICAg
IH0KLSRjb2RlLj08PF9fXzsKLQltb3ZkcXUJMHg2MCgkaW5wKSwgQFhNTVs4KzZdCi0JcHhvcglA
WE1NWzgrNV0sIEBYTU1bNV0KLQltb3ZkcXUJMHg3MCgkaW5wKSwgQFhNTVs4KzddCi0JbGVhCTB4
ODAoJGlucCksICRpbnAKLQltb3ZkcWEJQFhNTVs3XSwgMHg3MCglcnNwKQotCXB4b3IJQFhNTVs4
KzZdLCBAWE1NWzZdCi0JbGVhCTB4ODAoJXJzcCksICVyYXgJIyBwYXNzIGtleSBzY2hlZHVsZQot
CXB4b3IJQFhNTVs4KzddLCBAWE1NWzddCi0JbW92CSVlZHgsICVyMTBkCQkjIHBhc3Mgcm91bmRz
Ci0KLQljYWxsCV9ic2Flc19lbmNyeXB0OAotCi0JcHhvcgkweDAwKCVyc3ApLCBAWE1NWzBdCSMg
Xj0gdHdlYWtbXQotCXB4b3IJMHgxMCglcnNwKSwgQFhNTVsxXQotCW1vdmRxdQlAWE1NWzBdLCAw
eDAwKCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JcHhvcgkweDIwKCVyc3ApLCBAWE1NWzRdCi0JbW92
ZHF1CUBYTU1bMV0sIDB4MTAoJG91dCkKLQlweG9yCTB4MzAoJXJzcCksIEBYTU1bNl0KLQltb3Zk
cXUJQFhNTVs0XSwgMHgyMCgkb3V0KQotCXB4b3IJMHg0MCglcnNwKSwgQFhNTVszXQotCW1vdmRx
dQlAWE1NWzZdLCAweDMwKCRvdXQpCi0JcHhvcgkweDUwKCVyc3ApLCBAWE1NWzddCi0JbW92ZHF1
CUBYTU1bM10sIDB4NDAoJG91dCkKLQlweG9yCTB4NjAoJXJzcCksIEBYTU1bMl0KLQltb3ZkcXUJ
QFhNTVs3XSwgMHg1MCgkb3V0KQotCXB4b3IJMHg3MCglcnNwKSwgQFhNTVs1XQotCW1vdmRxdQlA
WE1NWzJdLCAweDYwKCRvdXQpCi0JbW92ZHF1CUBYTU1bNV0sIDB4NzAoJG91dCkKLQlsZWEJMHg4
MCgkb3V0KSwgJG91dAotCi0JbW92ZHFhCTB4NzAoJXJzcCksIEBYTU1bN10JIyBwcmVwYXJlIG5l
eHQgaXRlcmF0aW9uIHR3ZWFrCi0JcHhvcgkkdHd0bXAsICR0d3RtcAotCW1vdmRxYQkuTHh0c19t
YWdpYyglcmlwKSwgJHR3bWFzawotCXBjbXBndGQJQFhNTVs3XSwgJHR3dG1wCi0JcHNodWZkCVwk
MHgxMywgJHR3dG1wLCAkdHdyZXMKLQlweG9yCSR0d3RtcCwgJHR3dG1wCi0JcGFkZHEJQFhNTVs3
XSwgQFhNTVs3XQkjIHBzbGxxCTEsJHR3ZWFrCi0JcGFuZAkkdHdtYXNrLCAkdHdyZXMJCSMgaXNv
bGF0ZSBjYXJyeSBhbmQgcmVzaWR1ZQotCXBjbXBndGQJQFhNTVs3XSwgJHR3dG1wCQkjIGJyb2Fk
Y2FzdCB1cHBlciBiaXRzCi0JcHhvcgkkdHdyZXMsIEBYTU1bN10KLQotCXN1YglcJDB4ODAsJGxl
bgotCWpuYwkuTHh0c19lbmNfbG9vcAotCi0uTHh0c19lbmNfc2hvcnQ6Ci0JYWRkCVwkMHg4MCwg
JGxlbgotCWp6CS5MeHRzX2VuY19kb25lCi1fX18KLSAgICBmb3IgKCRpPTA7JGk8NzskaSsrKSB7
Ci0gICAgJGNvZGUuPTw8X19fOwotCXBzaHVmZAlcJDB4MTMsICR0d3RtcCwgJHR3cmVzCi0JcHhv
cgkkdHd0bXAsICR0d3RtcAotCW1vdmRxYQlAWE1NWzddLCBAWE1NWyRpXQotCW1vdmRxYQlAWE1N
WzddLCBgMHgxMCokaWAoJXJzcCkjIHNhdmUgdHdlYWtbJGldCi0JcGFkZHEJQFhNTVs3XSwgQFhN
TVs3XQkjIHBzbGxxCTEsJHR3ZWFrCi0JcGFuZAkkdHdtYXNrLCAkdHdyZXMJCSMgaXNvbGF0ZSBj
YXJyeSBhbmQgcmVzaWR1ZQotCXBjbXBndGQJQFhNTVs3XSwgJHR3dG1wCQkjIGJyb2FkY2FzdCB1
cHBlciBiaXRzCi0JcHhvcgkkdHdyZXMsIEBYTU1bN10KLV9fXwotICAgICRjb2RlLj08PF9fXyBp
ZiAoJGk+PTEpOwotCW1vdmRxdQlgMHgxMCooJGktMSlgKCRpbnApLCBAWE1NWzgrJGktMV0KLQlj
bXAJXCRgMHgxMCokaWAsJGxlbgotCWplCS5MeHRzX2VuY18kaQotX19fCi0gICAgJGNvZGUuPTw8
X19fIGlmICgkaT49Mik7Ci0JcHhvcglAWE1NWzgrJGktMl0sIEBYTU1bJGktMl0jIGlucHV0W10g
XiB0d2Vha1tdCi1fX18KLSAgICB9Ci0kY29kZS49PDxfX187Ci0JbW92ZHF1CTB4NjAoJGlucCks
IEBYTU1bOCs2XQotCXB4b3IJQFhNTVs4KzVdLCBAWE1NWzVdCi0JbW92ZHFhCUBYTU1bN10sIDB4
NzAoJXJzcCkKLQlsZWEJMHg3MCgkaW5wKSwgJGlucAotCXB4b3IJQFhNTVs4KzZdLCBAWE1NWzZd
Ci0JbGVhCTB4ODAoJXJzcCksICVyYXgJIyBwYXNzIGtleSBzY2hlZHVsZQotCW1vdgklZWR4LCAl
cjEwZAkJIyBwYXNzIHJvdW5kcwotCi0JY2FsbAlfYnNhZXNfZW5jcnlwdDgKLQotCXB4b3IJMHgw
MCglcnNwKSwgQFhNTVswXQkjIF49IHR3ZWFrW10KLQlweG9yCTB4MTAoJXJzcCksIEBYTU1bMV0K
LQltb3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91dHB1dAotCXB4b3IJMHgyMCgl
cnNwKSwgQFhNTVs0XQotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQpCi0JcHhvcgkweDMwKCVy
c3ApLCBAWE1NWzZdCi0JbW92ZHF1CUBYTU1bNF0sIDB4MjAoJG91dCkKLQlweG9yCTB4NDAoJXJz
cCksIEBYTU1bM10KLQltb3ZkcXUJQFhNTVs2XSwgMHgzMCgkb3V0KQotCXB4b3IJMHg1MCglcnNw
KSwgQFhNTVs3XQotCW1vdmRxdQlAWE1NWzNdLCAweDQwKCRvdXQpCi0JcHhvcgkweDYwKCVyc3Ap
LCBAWE1NWzJdCi0JbW92ZHF1CUBYTU1bN10sIDB4NTAoJG91dCkKLQltb3ZkcXUJQFhNTVsyXSwg
MHg2MCgkb3V0KQotCWxlYQkweDcwKCRvdXQpLCAkb3V0Ci0KLQltb3ZkcWEJMHg3MCglcnNwKSwg
QFhNTVs3XQkjIG5leHQgaXRlcmF0aW9uIHR3ZWFrCi0Jam1wCS5MeHRzX2VuY19kb25lCi0uYWxp
Z24JMTYKLS5MeHRzX2VuY182OgotCXB4b3IJQFhNTVs4KzRdLCBAWE1NWzRdCi0JbGVhCTB4NjAo
JGlucCksICRpbnAKLQlweG9yCUBYTU1bOCs1XSwgQFhNTVs1XQotCWxlYQkweDgwKCVyc3ApLCAl
cmF4CSMgcGFzcyBrZXkgc2NoZWR1bGUKLQltb3YJJWVkeCwgJXIxMGQJCSMgcGFzcyByb3VuZHMK
LQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQlweG9yCTB4MDAoJXJzcCksIEBYTU1bMF0JIyBe
PSB0d2Vha1tdCi0JcHhvcgkweDEwKCVyc3ApLCBAWE1NWzFdCi0JbW92ZHF1CUBYTU1bMF0sIDB4
MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQlweG9yCTB4MjAoJXJzcCksIEBYTU1bNF0KLQltb3Zk
cXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCXB4b3IJMHgzMCglcnNwKSwgQFhNTVs2XQotCW1vdmRx
dQlAWE1NWzRdLCAweDIwKCRvdXQpCi0JcHhvcgkweDQwKCVyc3ApLCBAWE1NWzNdCi0JbW92ZHF1
CUBYTU1bNl0sIDB4MzAoJG91dCkKLQlweG9yCTB4NTAoJXJzcCksIEBYTU1bN10KLQltb3ZkcXUJ
QFhNTVszXSwgMHg0MCgkb3V0KQotCW1vdmRxdQlAWE1NWzddLCAweDUwKCRvdXQpCi0JbGVhCTB4
NjAoJG91dCksICRvdXQKLQotCW1vdmRxYQkweDYwKCVyc3ApLCBAWE1NWzddCSMgbmV4dCBpdGVy
YXRpb24gdHdlYWsKLQlqbXAJLkx4dHNfZW5jX2RvbmUKLS5hbGlnbgkxNgotLkx4dHNfZW5jXzU6
Ci0JcHhvcglAWE1NWzgrM10sIEBYTU1bM10KLQlsZWEJMHg1MCgkaW5wKSwgJGlucAotCXB4b3IJ
QFhNTVs4KzRdLCBAWE1NWzRdCi0JbGVhCTB4ODAoJXJzcCksICVyYXgJIyBwYXNzIGtleSBzY2hl
ZHVsZQotCW1vdgklZWR4LCAlcjEwZAkJIyBwYXNzIHJvdW5kcwotCi0JY2FsbAlfYnNhZXNfZW5j
cnlwdDgKLQotCXB4b3IJMHgwMCglcnNwKSwgQFhNTVswXQkjIF49IHR3ZWFrW10KLQlweG9yCTB4
MTAoJXJzcCksIEBYTU1bMV0KLQltb3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91
dHB1dAotCXB4b3IJMHgyMCglcnNwKSwgQFhNTVs0XQotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRv
dXQpCi0JcHhvcgkweDMwKCVyc3ApLCBAWE1NWzZdCi0JbW92ZHF1CUBYTU1bNF0sIDB4MjAoJG91
dCkKLQlweG9yCTB4NDAoJXJzcCksIEBYTU1bM10KLQltb3ZkcXUJQFhNTVs2XSwgMHgzMCgkb3V0
KQotCW1vdmRxdQlAWE1NWzNdLCAweDQwKCRvdXQpCi0JbGVhCTB4NTAoJG91dCksICRvdXQKLQot
CW1vdmRxYQkweDUwKCVyc3ApLCBAWE1NWzddCSMgbmV4dCBpdGVyYXRpb24gdHdlYWsKLQlqbXAJ
Lkx4dHNfZW5jX2RvbmUKLS5hbGlnbgkxNgotLkx4dHNfZW5jXzQ6Ci0JcHhvcglAWE1NWzgrMl0s
IEBYTU1bMl0KLQlsZWEJMHg0MCgkaW5wKSwgJGlucAotCXB4b3IJQFhNTVs4KzNdLCBAWE1NWzNd
Ci0JbGVhCTB4ODAoJXJzcCksICVyYXgJIyBwYXNzIGtleSBzY2hlZHVsZQotCW1vdgklZWR4LCAl
cjEwZAkJIyBwYXNzIHJvdW5kcwotCi0JY2FsbAlfYnNhZXNfZW5jcnlwdDgKLQotCXB4b3IJMHgw
MCglcnNwKSwgQFhNTVswXQkjIF49IHR3ZWFrW10KLQlweG9yCTB4MTAoJXJzcCksIEBYTU1bMV0K
LQltb3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91dHB1dAotCXB4b3IJMHgyMCgl
cnNwKSwgQFhNTVs0XQotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQpCi0JcHhvcgkweDMwKCVy
c3ApLCBAWE1NWzZdCi0JbW92ZHF1CUBYTU1bNF0sIDB4MjAoJG91dCkKLQltb3ZkcXUJQFhNTVs2
XSwgMHgzMCgkb3V0KQotCWxlYQkweDQwKCRvdXQpLCAkb3V0Ci0KLQltb3ZkcWEJMHg0MCglcnNw
KSwgQFhNTVs3XQkjIG5leHQgaXRlcmF0aW9uIHR3ZWFrCi0Jam1wCS5MeHRzX2VuY19kb25lCi0u
YWxpZ24JMTYKLS5MeHRzX2VuY18zOgotCXB4b3IJQFhNTVs4KzFdLCBAWE1NWzFdCi0JbGVhCTB4
MzAoJGlucCksICRpbnAKLQlweG9yCUBYTU1bOCsyXSwgQFhNTVsyXQotCWxlYQkweDgwKCVyc3Ap
LCAlcmF4CSMgcGFzcyBrZXkgc2NoZWR1bGUKLQltb3YJJWVkeCwgJXIxMGQJCSMgcGFzcyByb3Vu
ZHMKLQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQlweG9yCTB4MDAoJXJzcCksIEBYTU1bMF0J
IyBePSB0d2Vha1tdCi0JcHhvcgkweDEwKCVyc3ApLCBAWE1NWzFdCi0JbW92ZHF1CUBYTU1bMF0s
IDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQlweG9yCTB4MjAoJXJzcCksIEBYTU1bNF0KLQlt
b3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCW1vdmRxdQlAWE1NWzRdLCAweDIwKCRvdXQpCi0J
bGVhCTB4MzAoJG91dCksICRvdXQKLQotCW1vdmRxYQkweDMwKCVyc3ApLCBAWE1NWzddCSMgbmV4
dCBpdGVyYXRpb24gdHdlYWsKLQlqbXAJLkx4dHNfZW5jX2RvbmUKLS5hbGlnbgkxNgotLkx4dHNf
ZW5jXzI6Ci0JcHhvcglAWE1NWzgrMF0sIEBYTU1bMF0KLQlsZWEJMHgyMCgkaW5wKSwgJGlucAot
CXB4b3IJQFhNTVs4KzFdLCBAWE1NWzFdCi0JbGVhCTB4ODAoJXJzcCksICVyYXgJIyBwYXNzIGtl
eSBzY2hlZHVsZQotCW1vdgklZWR4LCAlcjEwZAkJIyBwYXNzIHJvdW5kcwotCi0JY2FsbAlfYnNh
ZXNfZW5jcnlwdDgKLQotCXB4b3IJMHgwMCglcnNwKSwgQFhNTVswXQkjIF49IHR3ZWFrW10KLQlw
eG9yCTB4MTAoJXJzcCksIEBYTU1bMV0KLQltb3ZkcXUJQFhNTVswXSwgMHgwMCgkb3V0KQkjIHdy
aXRlIG91dHB1dAotCW1vdmRxdQlAWE1NWzFdLCAweDEwKCRvdXQpCi0JbGVhCTB4MjAoJG91dCks
ICRvdXQKLQotCW1vdmRxYQkweDIwKCVyc3ApLCBAWE1NWzddCSMgbmV4dCBpdGVyYXRpb24gdHdl
YWsKLQlqbXAJLkx4dHNfZW5jX2RvbmUKLS5hbGlnbgkxNgotLkx4dHNfZW5jXzE6Ci0JcHhvcglA
WE1NWzBdLCBAWE1NWzhdCi0JbGVhCTB4MTAoJGlucCksICRpbnAKLQltb3ZkcWEJQFhNTVs4XSwg
MHgyMCglcmJwKQotCWxlYQkweDIwKCVyYnApLCAkYXJnMQotCWxlYQkweDIwKCVyYnApLCAkYXJn
MgotCWxlYQkoJGtleSksICRhcmczCi0JY2FsbAlhZXNfbm9od19lbmNyeXB0CQkjIGRvZXNuJ3Qg
dG91Y2ggJXhtbQotCXB4b3IJMHgyMCglcmJwKSwgQFhNTVswXQkjIF49IHR3ZWFrW10KLQkjcHhv
cglAWE1NWzhdLCBAWE1NWzBdCi0JI2xlYQkweDgwKCVyc3ApLCAlcmF4CSMgcGFzcyBrZXkgc2No
ZWR1bGUKLQkjbW92CSVlZHgsICVyMTBkCQkjIHBhc3Mgcm91bmRzCi0JI2NhbGwJX2JzYWVzX2Vu
Y3J5cHQ4Ci0JI3B4b3IJMHgwMCglcnNwKSwgQFhNTVswXQkjIF49IHR3ZWFrW10KLQltb3ZkcXUJ
QFhNTVswXSwgMHgwMCgkb3V0KQkjIHdyaXRlIG91dHB1dAotCWxlYQkweDEwKCRvdXQpLCAkb3V0
Ci0KLQltb3ZkcWEJMHgxMCglcnNwKSwgQFhNTVs3XQkjIG5leHQgaXRlcmF0aW9uIHR3ZWFrCi0K
LS5MeHRzX2VuY19kb25lOgotCWFuZAlcJDE1LCAlZWJ4Ci0JanoJLkx4dHNfZW5jX3JldAotCW1v
dgkkb3V0LCAlcmR4Ci0KLS5MeHRzX2VuY19zdGVhbDoKLQltb3Z6YgkoJGlucCksICVlYXgKLQlt
b3Z6YgktMTYoJXJkeCksICVlY3gKLQlsZWEJMSgkaW5wKSwgJGlucAotCW1vdgklYWwsIC0xNigl
cmR4KQotCW1vdgklY2wsIDAoJXJkeCkKLQlsZWEJMSglcmR4KSwgJXJkeAotCXN1YglcJDEsJWVi
eAotCWpuegkuTHh0c19lbmNfc3RlYWwKLQotCW1vdmRxdQktMTYoJG91dCksIEBYTU1bMF0KLQls
ZWEJMHgyMCglcmJwKSwgJGFyZzEKLQlweG9yCUBYTU1bN10sIEBYTU1bMF0KLQlsZWEJMHgyMCgl
cmJwKSwgJGFyZzIKLQltb3ZkcWEJQFhNTVswXSwgMHgyMCglcmJwKQotCWxlYQkoJGtleSksICRh
cmczCi0JY2FsbAlhZXNfbm9od19lbmNyeXB0CQkjIGRvZXNuJ3QgdG91Y2ggJXhtbQotCXB4b3IJ
MHgyMCglcmJwKSwgQFhNTVs3XQotCW1vdmRxdQlAWE1NWzddLCAtMTYoJG91dCkKLQotLkx4dHNf
ZW5jX3JldDoKLQlsZWEJKCVyc3ApLCAlcmF4Ci0JcHhvcgkleG1tMCwgJXhtbTAKLS5MeHRzX2Vu
Y19iemVybzoJCQkjIHdpcGUga2V5IHNjaGVkdWxlIFtpZiBhbnldCi0JbW92ZHFhCSV4bW0wLCAw
eDAwKCVyYXgpCi0JbW92ZHFhCSV4bW0wLCAweDEwKCVyYXgpCi0JbGVhCTB4MjAoJXJheCksICVy
YXgKLQljbXAJJXJheCwgJXJicAotCWphCS5MeHRzX2VuY19iemVybwotCi0JbGVhCTB4NzgoJXJi
cCksJXJheAotLmNmaV9kZWZfY2ZhCSVyYXgsOAotX19fCi0kY29kZS49PDxfX18gaWYgKCR3aW42
NCk7Ci0JbW92YXBzCTB4NDAoJXJicCksICV4bW02Ci0JbW92YXBzCTB4NTAoJXJicCksICV4bW03
Ci0JbW92YXBzCTB4NjAoJXJicCksICV4bW04Ci0JbW92YXBzCTB4NzAoJXJicCksICV4bW05Ci0J
bW92YXBzCTB4ODAoJXJicCksICV4bW0xMAotCW1vdmFwcwkweDkwKCVyYnApLCAleG1tMTEKLQlt
b3ZhcHMJMHhhMCglcmJwKSwgJXhtbTEyCi0JbW92YXBzCTB4YjAoJXJicCksICV4bW0xMwotCW1v
dmFwcwkweGMwKCVyYnApLCAleG1tMTQKLQltb3ZhcHMJMHhkMCglcmJwKSwgJXhtbTE1Ci0JbGVh
CTB4YTAoJXJheCksICVyYXgKLS5MeHRzX2VuY190YWlsOgotX19fCi0kY29kZS49PDxfX187Ci0J
bW92CS00OCglcmF4KSwgJXIxNQotLmNmaV9yZXN0b3JlCSVyMTUKLQltb3YJLTQwKCVyYXgpLCAl
cjE0Ci0uY2ZpX3Jlc3RvcmUJJXIxNAotCW1vdgktMzIoJXJheCksICVyMTMKLS5jZmlfcmVzdG9y
ZQklcjEzCi0JbW92CS0yNCglcmF4KSwgJXIxMgotLmNmaV9yZXN0b3JlCSVyMTIKLQltb3YJLTE2
KCVyYXgpLCAlcmJ4Ci0uY2ZpX3Jlc3RvcmUJJXJieAotCW1vdgktOCglcmF4KSwgJXJicAotLmNm
aV9yZXN0b3JlCSVyYnAKLQlsZWEJKCVyYXgpLCAlcnNwCQkjIHJlc3RvcmUgJXJzcAotLmNmaV9k
ZWZfY2ZhX3JlZ2lzdGVyCSVyc3AKLS5MeHRzX2VuY19lcGlsb2d1ZToKLQlyZXQKLS5jZmlfZW5k
cHJvYwotLnNpemUJYnNhZXNfeHRzX2VuY3J5cHQsLi1ic2Flc194dHNfZW5jcnlwdAotCi0uZ2xv
YmwJYnNhZXNfeHRzX2RlY3J5cHQKLS50eXBlCWJzYWVzX3h0c19kZWNyeXB0LFxAYWJpLW9tbmlw
b3RlbnQKLS5hbGlnbgkxNgotYnNhZXNfeHRzX2RlY3J5cHQ6Ci0uY2ZpX3N0YXJ0cHJvYwotCW1v
dgklcnNwLCAlcmF4Ci0uTHh0c19kZWNfcHJvbG9ndWU6Ci0JcHVzaAklcmJwCi0uY2ZpX3B1c2gJ
JXJicAotCXB1c2gJJXJieAotLmNmaV9wdXNoCSVyYngKLQlwdXNoCSVyMTIKLS5jZmlfcHVzaAkl
cjEyCi0JcHVzaAklcjEzCi0uY2ZpX3B1c2gJJXIxMwotCXB1c2gJJXIxNAotLmNmaV9wdXNoCSVy
MTQKLQlwdXNoCSVyMTUKLS5jZmlfcHVzaAklcjE1Ci0JbGVhCS0weDQ4KCVyc3ApLCAlcnNwCi0u
Y2ZpX2FkanVzdF9jZmFfb2Zmc2V0CTB4NDgKLV9fXwotJGNvZGUuPTw8X19fIGlmICgkd2luNjQp
OwotCW1vdgkweGEwKCVyc3ApLCRhcmc1CSMgcHVsbCBrZXkyCi0JbW92CTB4YTgoJXJzcCksJGFy
ZzYJIyBwdWxsIGl2cAotCWxlYQktMHhhMCglcnNwKSwgJXJzcAotCW1vdmFwcwkleG1tNiwgMHg0
MCglcnNwKQotCW1vdmFwcwkleG1tNywgMHg1MCglcnNwKQotCW1vdmFwcwkleG1tOCwgMHg2MCgl
cnNwKQotCW1vdmFwcwkleG1tOSwgMHg3MCglcnNwKQotCW1vdmFwcwkleG1tMTAsIDB4ODAoJXJz
cCkKLQltb3ZhcHMJJXhtbTExLCAweDkwKCVyc3ApCi0JbW92YXBzCSV4bW0xMiwgMHhhMCglcnNw
KQotCW1vdmFwcwkleG1tMTMsIDB4YjAoJXJzcCkKLQltb3ZhcHMJJXhtbTE0LCAweGMwKCVyc3Ap
Ci0JbW92YXBzCSV4bW0xNSwgMHhkMCglcnNwKQotLkx4dHNfZGVjX2JvZHk6Ci1fX18KLSRjb2Rl
Lj08PF9fXzsKLQltb3YJJXJzcCwgJXJicAkJIyBiYWNrdXAgJXJzcAotCW1vdgkkYXJnMSwgJGlu
cAkJIyBiYWNrdXAgYXJndW1lbnRzCi0JbW92CSRhcmcyLCAkb3V0Ci0JbW92CSRhcmczLCAkbGVu
Ci0JbW92CSRhcmc0LCAka2V5Ci0KLQlsZWEJKCRhcmc2KSwgJGFyZzEKLQlsZWEJMHgyMCglcmJw
KSwgJGFyZzIKLQlsZWEJKCRhcmc1KSwgJGFyZzMKLQljYWxsCWFlc19ub2h3X2VuY3J5cHQJCSMg
Z2VuZXJhdGUgaW5pdGlhbCB0d2VhawotCi0JbW92CTI0MCgka2V5KSwgJWVheAkJIyByb3VuZHMK
LQltb3YJJGxlbiwgJXJieAkJIyBiYWNrdXAgJGxlbgotCi0JbW92CSVlYXgsICVlZHgJCSMgcm91
bmRzCi0Jc2hsCVwkNywgJXJheAkJIyAxMjggYnl0ZXMgcGVyIGlubmVyIHJvdW5kIGtleQotCXN1
YglcJGAxMjgtMzJgLCAlcmF4CSMgc2l6ZSBvZiBiaXQtc2xpY2VkIGtleSBzY2hlZHVsZQotCXN1
YgklcmF4LCAlcnNwCi0KLQltb3YJJXJzcCwgJXJheAkJIyBwYXNzIGtleSBzY2hlZHVsZQotCW1v
dgkka2V5LCAlcmN4CQkjIHBhc3Mga2V5Ci0JbW92CSVlZHgsICVyMTBkCQkjIHBhc3Mgcm91bmRz
Ci0JY2FsbAlfYnNhZXNfa2V5X2NvbnZlcnQKLQlweG9yCSglcnNwKSwgJXhtbTcJCSMgZml4IHVw
IHJvdW5kIDAga2V5Ci0JbW92ZHFhCSV4bW02LCAoJXJheCkJCSMgc2F2ZSBsYXN0IHJvdW5kIGtl
eQotCW1vdmRxYQkleG1tNywgKCVyc3ApCi0KLQl4b3IJJWVheCwgJWVheAkJIyBpZiAoJGxlbiUx
NikgbGVuLT0xNjsKLQlhbmQJXCQtMTYsICRsZW4KLQl0ZXN0CVwkMTUsICVlYngKLQlzZXRuegkl
YWwKLQlzaGwJXCQ0LCAlcmF4Ci0Jc3ViCSVyYXgsICRsZW4KLQotCXN1YglcJDB4ODAsICVyc3AJ
CSMgcGxhY2UgZm9yIHR3ZWFrWzhdCi0JbW92ZHFhCTB4MjAoJXJicCksIEBYTU1bN10JIyBpbml0
aWFsIHR3ZWFrCi0KLQlweG9yCSR0d3RtcCwgJHR3dG1wCi0JbW92ZHFhCS5MeHRzX21hZ2ljKCVy
aXApLCAkdHdtYXNrCi0JcGNtcGd0ZAlAWE1NWzddLCAkdHd0bXAJCSMgYnJvYWRjYXN0IHVwcGVy
IGJpdHMKLQotCXN1YglcJDB4ODAsICRsZW4KLQlqYwkuTHh0c19kZWNfc2hvcnQKLQlqbXAJLkx4
dHNfZGVjX2xvb3AKLQotLmFsaWduCTE2Ci0uTHh0c19kZWNfbG9vcDoKLV9fXwotICAgIGZvciAo
JGk9MDskaTw3OyRpKyspIHsKLSAgICAkY29kZS49PDxfX187Ci0JcHNodWZkCVwkMHgxMywgJHR3
dG1wLCAkdHdyZXMKLQlweG9yCSR0d3RtcCwgJHR3dG1wCi0JbW92ZHFhCUBYTU1bN10sIEBYTU1b
JGldCi0JbW92ZHFhCUBYTU1bN10sIGAweDEwKiRpYCglcnNwKSMgc2F2ZSB0d2Vha1skaV0KLQlw
YWRkcQlAWE1NWzddLCBAWE1NWzddCSMgcHNsbHEJMSwkdHdlYWsKLQlwYW5kCSR0d21hc2ssICR0
d3JlcwkJIyBpc29sYXRlIGNhcnJ5IGFuZCByZXNpZHVlCi0JcGNtcGd0ZAlAWE1NWzddLCAkdHd0
bXAJCSMgYnJvYWRjYXN0IHVwcGVyIGJpdHMKLQlweG9yCSR0d3JlcywgQFhNTVs3XQotX19fCi0g
ICAgJGNvZGUuPTw8X19fIGlmICgkaT49MSk7Ci0JbW92ZHF1CWAweDEwKigkaS0xKWAoJGlucCks
IEBYTU1bOCskaS0xXQotX19fCi0gICAgJGNvZGUuPTw8X19fIGlmICgkaT49Mik7Ci0JcHhvcglA
WE1NWzgrJGktMl0sIEBYTU1bJGktMl0jIGlucHV0W10gXiB0d2Vha1tdCi1fX18KLSAgICB9Ci0k
Y29kZS49PDxfX187Ci0JbW92ZHF1CTB4NjAoJGlucCksIEBYTU1bOCs2XQotCXB4b3IJQFhNTVs4
KzVdLCBAWE1NWzVdCi0JbW92ZHF1CTB4NzAoJGlucCksIEBYTU1bOCs3XQotCWxlYQkweDgwKCRp
bnApLCAkaW5wCi0JbW92ZHFhCUBYTU1bN10sIDB4NzAoJXJzcCkKLQlweG9yCUBYTU1bOCs2XSwg
QFhNTVs2XQotCWxlYQkweDgwKCVyc3ApLCAlcmF4CSMgcGFzcyBrZXkgc2NoZWR1bGUKLQlweG9y
CUBYTU1bOCs3XSwgQFhNTVs3XQotCW1vdgklZWR4LCAlcjEwZAkJIyBwYXNzIHJvdW5kcwotCi0J
Y2FsbAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJMHgwMCglcnNwKSwgQFhNTVswXQkjIF49IHR3
ZWFrW10KLQlweG9yCTB4MTAoJXJzcCksIEBYTU1bMV0KLQltb3ZkcXUJQFhNTVswXSwgMHgwMCgk
b3V0KQkjIHdyaXRlIG91dHB1dAotCXB4b3IJMHgyMCglcnNwKSwgQFhNTVs2XQotCW1vdmRxdQlA
WE1NWzFdLCAweDEwKCRvdXQpCi0JcHhvcgkweDMwKCVyc3ApLCBAWE1NWzRdCi0JbW92ZHF1CUBY
TU1bNl0sIDB4MjAoJG91dCkKLQlweG9yCTB4NDAoJXJzcCksIEBYTU1bMl0KLQltb3ZkcXUJQFhN
TVs0XSwgMHgzMCgkb3V0KQotCXB4b3IJMHg1MCglcnNwKSwgQFhNTVs3XQotCW1vdmRxdQlAWE1N
WzJdLCAweDQwKCRvdXQpCi0JcHhvcgkweDYwKCVyc3ApLCBAWE1NWzNdCi0JbW92ZHF1CUBYTU1b
N10sIDB4NTAoJG91dCkKLQlweG9yCTB4NzAoJXJzcCksIEBYTU1bNV0KLQltb3ZkcXUJQFhNTVsz
XSwgMHg2MCgkb3V0KQotCW1vdmRxdQlAWE1NWzVdLCAweDcwKCRvdXQpCi0JbGVhCTB4ODAoJG91
dCksICRvdXQKLQotCW1vdmRxYQkweDcwKCVyc3ApLCBAWE1NWzddCSMgcHJlcGFyZSBuZXh0IGl0
ZXJhdGlvbiB0d2VhawotCXB4b3IJJHR3dG1wLCAkdHd0bXAKLQltb3ZkcWEJLkx4dHNfbWFnaWMo
JXJpcCksICR0d21hc2sKLQlwY21wZ3RkCUBYTU1bN10sICR0d3RtcAotCXBzaHVmZAlcJDB4MTMs
ICR0d3RtcCwgJHR3cmVzCi0JcHhvcgkkdHd0bXAsICR0d3RtcAotCXBhZGRxCUBYTU1bN10sIEBY
TU1bN10JIyBwc2xscQkxLCR0d2VhawotCXBhbmQJJHR3bWFzaywgJHR3cmVzCQkjIGlzb2xhdGUg
Y2FycnkgYW5kIHJlc2lkdWUKLQlwY21wZ3RkCUBYTU1bN10sICR0d3RtcAkJIyBicm9hZGNhc3Qg
dXBwZXIgYml0cwotCXB4b3IJJHR3cmVzLCBAWE1NWzddCi0KLQlzdWIJXCQweDgwLCRsZW4KLQlq
bmMJLkx4dHNfZGVjX2xvb3AKLQotLkx4dHNfZGVjX3Nob3J0OgotCWFkZAlcJDB4ODAsICRsZW4K
LQlqegkuTHh0c19kZWNfZG9uZQotX19fCi0gICAgZm9yICgkaT0wOyRpPDc7JGkrKykgewotICAg
ICRjb2RlLj08PF9fXzsKLQlwc2h1ZmQJXCQweDEzLCAkdHd0bXAsICR0d3JlcwotCXB4b3IJJHR3
dG1wLCAkdHd0bXAKLQltb3ZkcWEJQFhNTVs3XSwgQFhNTVskaV0KLQltb3ZkcWEJQFhNTVs3XSwg
YDB4MTAqJGlgKCVyc3ApIyBzYXZlIHR3ZWFrWyRpXQotCXBhZGRxCUBYTU1bN10sIEBYTU1bN10J
IyBwc2xscQkxLCR0d2VhawotCXBhbmQJJHR3bWFzaywgJHR3cmVzCQkjIGlzb2xhdGUgY2Fycnkg
YW5kIHJlc2lkdWUKLQlwY21wZ3RkCUBYTU1bN10sICR0d3RtcAkJIyBicm9hZGNhc3QgdXBwZXIg
Yml0cwotCXB4b3IJJHR3cmVzLCBAWE1NWzddCi1fX18KLSAgICAkY29kZS49PDxfX18gaWYgKCRp
Pj0xKTsKLQltb3ZkcXUJYDB4MTAqKCRpLTEpYCgkaW5wKSwgQFhNTVs4KyRpLTFdCi0JY21wCVwk
YDB4MTAqJGlgLCRsZW4KLQlqZQkuTHh0c19kZWNfJGkKLV9fXwotICAgICRjb2RlLj08PF9fXyBp
ZiAoJGk+PTIpOwotCXB4b3IJQFhNTVs4KyRpLTJdLCBAWE1NWyRpLTJdIyBpbnB1dFtdIF4gdHdl
YWtbXQotX19fCi0gICAgfQotJGNvZGUuPTw8X19fOwotCW1vdmRxdQkweDYwKCRpbnApLCBAWE1N
WzgrNl0KLQlweG9yCUBYTU1bOCs1XSwgQFhNTVs1XQotCW1vdmRxYQlAWE1NWzddLCAweDcwKCVy
c3ApCi0JbGVhCTB4NzAoJGlucCksICRpbnAKLQlweG9yCUBYTU1bOCs2XSwgQFhNTVs2XQotCWxl
YQkweDgwKCVyc3ApLCAlcmF4CSMgcGFzcyBrZXkgc2NoZWR1bGUKLQltb3YJJWVkeCwgJXIxMGQJ
CSMgcGFzcyByb3VuZHMKLQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0KLQlweG9yCTB4MDAoJXJz
cCksIEBYTU1bMF0JIyBePSB0d2Vha1tdCi0JcHhvcgkweDEwKCVyc3ApLCBAWE1NWzFdCi0JbW92
ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQlweG9yCTB4MjAoJXJzcCks
IEBYTU1bNl0KLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCXB4b3IJMHgzMCglcnNwKSwg
QFhNTVs0XQotCW1vdmRxdQlAWE1NWzZdLCAweDIwKCRvdXQpCi0JcHhvcgkweDQwKCVyc3ApLCBA
WE1NWzJdCi0JbW92ZHF1CUBYTU1bNF0sIDB4MzAoJG91dCkKLQlweG9yCTB4NTAoJXJzcCksIEBY
TU1bN10KLQltb3ZkcXUJQFhNTVsyXSwgMHg0MCgkb3V0KQotCXB4b3IJMHg2MCglcnNwKSwgQFhN
TVszXQotCW1vdmRxdQlAWE1NWzddLCAweDUwKCRvdXQpCi0JbW92ZHF1CUBYTU1bM10sIDB4NjAo
JG91dCkKLQlsZWEJMHg3MCgkb3V0KSwgJG91dAotCi0JbW92ZHFhCTB4NzAoJXJzcCksIEBYTU1b
N10JIyBuZXh0IGl0ZXJhdGlvbiB0d2VhawotCWptcAkuTHh0c19kZWNfZG9uZQotLmFsaWduCTE2
Ci0uTHh0c19kZWNfNjoKLQlweG9yCUBYTU1bOCs0XSwgQFhNTVs0XQotCWxlYQkweDYwKCRpbnAp
LCAkaW5wCi0JcHhvcglAWE1NWzgrNV0sIEBYTU1bNV0KLQlsZWEJMHg4MCglcnNwKSwgJXJheAkj
IHBhc3Mga2V5IHNjaGVkdWxlCi0JbW92CSVlZHgsICVyMTBkCQkjIHBhc3Mgcm91bmRzCi0KLQlj
YWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgkweDAwKCVyc3ApLCBAWE1NWzBdCSMgXj0gdHdl
YWtbXQotCXB4b3IJMHgxMCglcnNwKSwgQFhNTVsxXQotCW1vdmRxdQlAWE1NWzBdLCAweDAwKCRv
dXQpCSMgd3JpdGUgb3V0cHV0Ci0JcHhvcgkweDIwKCVyc3ApLCBAWE1NWzZdCi0JbW92ZHF1CUBY
TU1bMV0sIDB4MTAoJG91dCkKLQlweG9yCTB4MzAoJXJzcCksIEBYTU1bNF0KLQltb3ZkcXUJQFhN
TVs2XSwgMHgyMCgkb3V0KQotCXB4b3IJMHg0MCglcnNwKSwgQFhNTVsyXQotCW1vdmRxdQlAWE1N
WzRdLCAweDMwKCRvdXQpCi0JcHhvcgkweDUwKCVyc3ApLCBAWE1NWzddCi0JbW92ZHF1CUBYTU1b
Ml0sIDB4NDAoJG91dCkKLQltb3ZkcXUJQFhNTVs3XSwgMHg1MCgkb3V0KQotCWxlYQkweDYwKCRv
dXQpLCAkb3V0Ci0KLQltb3ZkcWEJMHg2MCglcnNwKSwgQFhNTVs3XQkjIG5leHQgaXRlcmF0aW9u
IHR3ZWFrCi0Jam1wCS5MeHRzX2RlY19kb25lCi0uYWxpZ24JMTYKLS5MeHRzX2RlY181OgotCXB4
b3IJQFhNTVs4KzNdLCBAWE1NWzNdCi0JbGVhCTB4NTAoJGlucCksICRpbnAKLQlweG9yCUBYTU1b
OCs0XSwgQFhNTVs0XQotCWxlYQkweDgwKCVyc3ApLCAlcmF4CSMgcGFzcyBrZXkgc2NoZWR1bGUK
LQltb3YJJWVkeCwgJXIxMGQJCSMgcGFzcyByb3VuZHMKLQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4
Ci0KLQlweG9yCTB4MDAoJXJzcCksIEBYTU1bMF0JIyBePSB0d2Vha1tdCi0JcHhvcgkweDEwKCVy
c3ApLCBAWE1NWzFdCi0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQK
LQlweG9yCTB4MjAoJXJzcCksIEBYTU1bNl0KLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQot
CXB4b3IJMHgzMCglcnNwKSwgQFhNTVs0XQotCW1vdmRxdQlAWE1NWzZdLCAweDIwKCRvdXQpCi0J
cHhvcgkweDQwKCVyc3ApLCBAWE1NWzJdCi0JbW92ZHF1CUBYTU1bNF0sIDB4MzAoJG91dCkKLQlt
b3ZkcXUJQFhNTVsyXSwgMHg0MCgkb3V0KQotCWxlYQkweDUwKCRvdXQpLCAkb3V0Ci0KLQltb3Zk
cWEJMHg1MCglcnNwKSwgQFhNTVs3XQkjIG5leHQgaXRlcmF0aW9uIHR3ZWFrCi0Jam1wCS5MeHRz
X2RlY19kb25lCi0uYWxpZ24JMTYKLS5MeHRzX2RlY180OgotCXB4b3IJQFhNTVs4KzJdLCBAWE1N
WzJdCi0JbGVhCTB4NDAoJGlucCksICRpbnAKLQlweG9yCUBYTU1bOCszXSwgQFhNTVszXQotCWxl
YQkweDgwKCVyc3ApLCAlcmF4CSMgcGFzcyBrZXkgc2NoZWR1bGUKLQltb3YJJWVkeCwgJXIxMGQJ
CSMgcGFzcyByb3VuZHMKLQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0KLQlweG9yCTB4MDAoJXJz
cCksIEBYTU1bMF0JIyBePSB0d2Vha1tdCi0JcHhvcgkweDEwKCVyc3ApLCBAWE1NWzFdCi0JbW92
ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQlweG9yCTB4MjAoJXJzcCks
IEBYTU1bNl0KLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCXB4b3IJMHgzMCglcnNwKSwg
QFhNTVs0XQotCW1vdmRxdQlAWE1NWzZdLCAweDIwKCRvdXQpCi0JbW92ZHF1CUBYTU1bNF0sIDB4
MzAoJG91dCkKLQlsZWEJMHg0MCgkb3V0KSwgJG91dAotCi0JbW92ZHFhCTB4NDAoJXJzcCksIEBY
TU1bN10JIyBuZXh0IGl0ZXJhdGlvbiB0d2VhawotCWptcAkuTHh0c19kZWNfZG9uZQotLmFsaWdu
CTE2Ci0uTHh0c19kZWNfMzoKLQlweG9yCUBYTU1bOCsxXSwgQFhNTVsxXQotCWxlYQkweDMwKCRp
bnApLCAkaW5wCi0JcHhvcglAWE1NWzgrMl0sIEBYTU1bMl0KLQlsZWEJMHg4MCglcnNwKSwgJXJh
eAkjIHBhc3Mga2V5IHNjaGVkdWxlCi0JbW92CSVlZHgsICVyMTBkCQkjIHBhc3Mgcm91bmRzCi0K
LQljYWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgkweDAwKCVyc3ApLCBAWE1NWzBdCSMgXj0g
dHdlYWtbXQotCXB4b3IJMHgxMCglcnNwKSwgQFhNTVsxXQotCW1vdmRxdQlAWE1NWzBdLCAweDAw
KCRvdXQpCSMgd3JpdGUgb3V0cHV0Ci0JcHhvcgkweDIwKCVyc3ApLCBAWE1NWzZdCi0JbW92ZHF1
CUBYTU1bMV0sIDB4MTAoJG91dCkKLQltb3ZkcXUJQFhNTVs2XSwgMHgyMCgkb3V0KQotCWxlYQkw
eDMwKCRvdXQpLCAkb3V0Ci0KLQltb3ZkcWEJMHgzMCglcnNwKSwgQFhNTVs3XQkjIG5leHQgaXRl
cmF0aW9uIHR3ZWFrCi0Jam1wCS5MeHRzX2RlY19kb25lCi0uYWxpZ24JMTYKLS5MeHRzX2RlY18y
OgotCXB4b3IJQFhNTVs4KzBdLCBAWE1NWzBdCi0JbGVhCTB4MjAoJGlucCksICRpbnAKLQlweG9y
CUBYTU1bOCsxXSwgQFhNTVsxXQotCWxlYQkweDgwKCVyc3ApLCAlcmF4CSMgcGFzcyBrZXkgc2No
ZWR1bGUKLQltb3YJJWVkeCwgJXIxMGQJCSMgcGFzcyByb3VuZHMKLQotCWNhbGwJX2JzYWVzX2Rl
Y3J5cHQ4Ci0KLQlweG9yCTB4MDAoJXJzcCksIEBYTU1bMF0JIyBePSB0d2Vha1tdCi0JcHhvcgkw
eDEwKCVyc3ApLCBAWE1NWzFdCi0JbW92ZHF1CUBYTU1bMF0sIDB4MDAoJG91dCkJIyB3cml0ZSBv
dXRwdXQKLQltb3ZkcXUJQFhNTVsxXSwgMHgxMCgkb3V0KQotCWxlYQkweDIwKCRvdXQpLCAkb3V0
Ci0KLQltb3ZkcWEJMHgyMCglcnNwKSwgQFhNTVs3XQkjIG5leHQgaXRlcmF0aW9uIHR3ZWFrCi0J
am1wCS5MeHRzX2RlY19kb25lCi0uYWxpZ24JMTYKLS5MeHRzX2RlY18xOgotCXB4b3IJQFhNTVsw
XSwgQFhNTVs4XQotCWxlYQkweDEwKCRpbnApLCAkaW5wCi0JbW92ZHFhCUBYTU1bOF0sIDB4MjAo
JXJicCkKLQlsZWEJMHgyMCglcmJwKSwgJGFyZzEKLQlsZWEJMHgyMCglcmJwKSwgJGFyZzIKLQls
ZWEJKCRrZXkpLCAkYXJnMwotCWNhbGwJYWVzX25vaHdfZGVjcnlwdAkJIyBkb2Vzbid0IHRvdWNo
ICV4bW0KLQlweG9yCTB4MjAoJXJicCksIEBYTU1bMF0JIyBePSB0d2Vha1tdCi0JI3B4b3IJQFhN
TVs4XSwgQFhNTVswXQotCSNsZWEJMHg4MCglcnNwKSwgJXJheAkjIHBhc3Mga2V5IHNjaGVkdWxl
Ci0JI21vdgklZWR4LCAlcjEwZAkJIyBwYXNzIHJvdW5kcwotCSNjYWxsCV9ic2Flc19kZWNyeXB0
OAotCSNweG9yCTB4MDAoJXJzcCksIEBYTU1bMF0JIyBePSB0d2Vha1tdCi0JbW92ZHF1CUBYTU1b
MF0sIDB4MDAoJG91dCkJIyB3cml0ZSBvdXRwdXQKLQlsZWEJMHgxMCgkb3V0KSwgJG91dAotCi0J
bW92ZHFhCTB4MTAoJXJzcCksIEBYTU1bN10JIyBuZXh0IGl0ZXJhdGlvbiB0d2VhawotCi0uTHh0
c19kZWNfZG9uZToKLQlhbmQJXCQxNSwgJWVieAotCWp6CS5MeHRzX2RlY19yZXQKLQotCXB4b3IJ
JHR3dG1wLCAkdHd0bXAKLQltb3ZkcWEJLkx4dHNfbWFnaWMoJXJpcCksICR0d21hc2sKLQlwY21w
Z3RkCUBYTU1bN10sICR0d3RtcAotCXBzaHVmZAlcJDB4MTMsICR0d3RtcCwgJHR3cmVzCi0JbW92
ZHFhCUBYTU1bN10sIEBYTU1bNl0KLQlwYWRkcQlAWE1NWzddLCBAWE1NWzddCSMgcHNsbHEgMSwk
dHdlYWsKLQlwYW5kCSR0d21hc2ssICR0d3JlcwkJIyBpc29sYXRlIGNhcnJ5IGFuZCByZXNpZHVl
Ci0JbW92ZHF1CSgkaW5wKSwgQFhNTVswXQotCXB4b3IJJHR3cmVzLCBAWE1NWzddCi0KLQlsZWEJ
MHgyMCglcmJwKSwgJGFyZzEKLQlweG9yCUBYTU1bN10sIEBYTU1bMF0KLQlsZWEJMHgyMCglcmJw
KSwgJGFyZzIKLQltb3ZkcWEJQFhNTVswXSwgMHgyMCglcmJwKQotCWxlYQkoJGtleSksICRhcmcz
Ci0JY2FsbAlhZXNfbm9od19kZWNyeXB0CQkjIGRvZXNuJ3QgdG91Y2ggJXhtbQotCXB4b3IJMHgy
MCglcmJwKSwgQFhNTVs3XQotCW1vdgkkb3V0LCAlcmR4Ci0JbW92ZHF1CUBYTU1bN10sICgkb3V0
KQotCi0uTHh0c19kZWNfc3RlYWw6Ci0JbW92emIJMTYoJGlucCksICVlYXgKLQltb3Z6YgkoJXJk
eCksICVlY3gKLQlsZWEJMSgkaW5wKSwgJGlucAotCW1vdgklYWwsICglcmR4KQotCW1vdgklY2ws
IDE2KCVyZHgpCi0JbGVhCTEoJXJkeCksICVyZHgKLQlzdWIJXCQxLCVlYngKLQlqbnoJLkx4dHNf
ZGVjX3N0ZWFsCi0KLQltb3ZkcXUJKCRvdXQpLCBAWE1NWzBdCi0JbGVhCTB4MjAoJXJicCksICRh
cmcxCi0JcHhvcglAWE1NWzZdLCBAWE1NWzBdCi0JbGVhCTB4MjAoJXJicCksICRhcmcyCi0JbW92
ZHFhCUBYTU1bMF0sIDB4MjAoJXJicCkKLQlsZWEJKCRrZXkpLCAkYXJnMwotCWNhbGwJYWVzX25v
aHdfZGVjcnlwdAkJIyBkb2Vzbid0IHRvdWNoICV4bW0KLQlweG9yCTB4MjAoJXJicCksIEBYTU1b
Nl0KLQltb3ZkcXUJQFhNTVs2XSwgKCRvdXQpCi0KLS5MeHRzX2RlY19yZXQ6Ci0JbGVhCSglcnNw
KSwgJXJheAotCXB4b3IJJXhtbTAsICV4bW0wCi0uTHh0c19kZWNfYnplcm86CQkJIyB3aXBlIGtl
eSBzY2hlZHVsZSBbaWYgYW55XQotCW1vdmRxYQkleG1tMCwgMHgwMCglcmF4KQotCW1vdmRxYQkl
eG1tMCwgMHgxMCglcmF4KQotCWxlYQkweDIwKCVyYXgpLCAlcmF4Ci0JY21wCSVyYXgsICVyYnAK
LQlqYQkuTHh0c19kZWNfYnplcm8KLQotCWxlYQkweDc4KCVyYnApLCVyYXgKLS5jZmlfZGVmX2Nm
YQklcmF4LDgKLV9fXwotJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOwotCW1vdmFwcwkweDQwKCVy
YnApLCAleG1tNgotCW1vdmFwcwkweDUwKCVyYnApLCAleG1tNwotCW1vdmFwcwkweDYwKCVyYnAp
LCAleG1tOAotCW1vdmFwcwkweDcwKCVyYnApLCAleG1tOQotCW1vdmFwcwkweDgwKCVyYnApLCAl
eG1tMTAKLQltb3ZhcHMJMHg5MCglcmJwKSwgJXhtbTExCi0JbW92YXBzCTB4YTAoJXJicCksICV4
bW0xMgotCW1vdmFwcwkweGIwKCVyYnApLCAleG1tMTMKLQltb3ZhcHMJMHhjMCglcmJwKSwgJXht
bTE0Ci0JbW92YXBzCTB4ZDAoJXJicCksICV4bW0xNQotCWxlYQkweGEwKCVyYXgpLCAlcmF4Ci0u
THh0c19kZWNfdGFpbDoKLV9fXwotJGNvZGUuPTw8X19fOwotCW1vdgktNDgoJXJheCksICVyMTUK
LS5jZmlfcmVzdG9yZQklcjE1Ci0JbW92CS00MCglcmF4KSwgJXIxNAotLmNmaV9yZXN0b3JlCSVy
MTQKLQltb3YJLTMyKCVyYXgpLCAlcjEzCi0uY2ZpX3Jlc3RvcmUJJXIxMwotCW1vdgktMjQoJXJh
eCksICVyMTIKLS5jZmlfcmVzdG9yZQklcjEyCi0JbW92CS0xNiglcmF4KSwgJXJieAotLmNmaV9y
ZXN0b3JlCSVyYngKLQltb3YJLTgoJXJheCksICVyYnAKLS5jZmlfcmVzdG9yZQklcmJwCi0JbGVh
CSglcmF4KSwgJXJzcAkJIyByZXN0b3JlICVyc3AKLS5jZmlfZGVmX2NmYV9yZWdpc3RlcgklcnNw
Ci0uTHh0c19kZWNfZXBpbG9ndWU6Ci0JcmV0Ci0uY2ZpX2VuZHByb2MKLS5zaXplCWJzYWVzX3h0
c19kZWNyeXB0LC4tYnNhZXNfeHRzX2RlY3J5cHQKLV9fXwotfQotJGNvZGUuPTw8X19fOwotLnR5
cGUJX2JzYWVzX2NvbnN0LFxAb2JqZWN0Ci0uYWxpZ24JNjQKLV9ic2Flc19jb25zdDoKLS5MTTBJ
U1I6CSMgSW52U2hpZnRSb3dzIGNvbnN0YW50cwotCS5xdWFkCTB4MGEwZTAyMDYwNzBiMGYwMywg
MHgwMDA0MDgwYzBkMDEwNTA5Ci0uTElTUk0wOgotCS5xdWFkCTB4MDEwNDBiMGUwMjA1MDgwZiwg
MHgwMzA2MDkwYzAwMDcwYTBkCi0uTElTUjoKLQkucXVhZAkweDA1MDQwNzA2MDIwMTAwMDMsIDB4
MGYwZTBkMGMwODBiMGEwOQotLkxCUzA6CQkjIGJpdC1zbGljZSBjb25zdGFudHMKLQkucXVhZAkw
eDU1NTU1NTU1NTU1NTU1NTUsIDB4NTU1NTU1NTU1NTU1NTU1NQotLkxCUzE6Ci0JLnF1YWQJMHgz
MzMzMzMzMzMzMzMzMzMzLCAweDMzMzMzMzMzMzMzMzMzMzMKLS5MQlMyOgotCS5xdWFkCTB4MGYw
ZjBmMGYwZjBmMGYwZiwgMHgwZjBmMGYwZjBmMGYwZjBmCi0uTFNSOgkJIyBzaGlmdHJvd3MgY29u
c3RhbnRzCi0JLnF1YWQJMHgwNTA0MDcwNjAwMDMwMjAxLCAweDBmMGUwZDBjMGEwOTA4MGIKLS5M
U1JNMDoKLQkucXVhZAkweDAzMDQwOTBlMDAwNTBhMGYsIDB4MDEwNjBiMGMwMjA3MDgwZAotLkxN
MFNSOgotCS5xdWFkCTB4MGEwZTAyMDYwZjAzMDcwYiwgMHgwMDA0MDgwYzA1MDkwZDAxCi0uTFNX
UFVQOgkjIGJ5dGUtc3dhcCB1cHBlciBkd29yZAotCS5xdWFkCTB4MDcwNjA1MDQwMzAyMDEwMCwg
MHgwYzBkMGUwZjBiMGEwOTA4Ci0uTFNXUFVQTTBTUjoKLQkucXVhZAkweDBhMGQwMjA2MGMwMzA3
MGIsIDB4MDAwNDA4MGYwNTA5MGUwMQotLkxBREQxOgkJIyBjb3VudGVyIGluY3JlbWVudCBjb25z
dGFudHMKLQkucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDEwMDAwMDAwMAotLkxB
REQyOgotCS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMjAwMDAwMDAwCi0uTEFE
RDM6Ci0JLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAzMDAwMDAwMDAKLS5MQURE
NDoKLQkucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDQwMDAwMDAwMAotLkxBREQ1
OgotCS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwNTAwMDAwMDAwCi0uTEFERDY6
Ci0JLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDA2MDAwMDAwMDAKLS5MQURENzoK
LQkucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDcwMDAwMDAwMAotLkxBREQ4Ogot
CS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwODAwMDAwMDAwCi0uTHh0c19tYWdp
YzoKLQkubG9uZwkweDg3LDAsMSwwCi0uTG1hc2tzOgotCS5xdWFkCTB4MDEwMTAxMDEwMTAxMDEw
MSwgMHgwMTAxMDEwMTAxMDEwMTAxCi0JLnF1YWQJMHgwMjAyMDIwMjAyMDIwMjAyLCAweDAyMDIw
MjAyMDIwMjAyMDIKLQkucXVhZAkweDA0MDQwNDA0MDQwNDA0MDQsIDB4MDQwNDA0MDQwNDA0MDQw
NAotCS5xdWFkCTB4MDgwODA4MDgwODA4MDgwOCwgMHgwODA4MDgwODA4MDgwODA4Ci0uTE0wOgot
CS5xdWFkCTB4MDIwNjBhMGUwMzA3MGIwZiwgMHgwMDA0MDgwYzAxMDUwOTBkCi0uTDYzOgotCS5x
dWFkCTB4NjM2MzYzNjM2MzYzNjM2MywgMHg2MzYzNjM2MzYzNjM2MzYzCi0uYXNjaXoJIkJpdC1z
bGljZWQgQUVTIGZvciB4ODZfNjQvU1NTRTMsIEVtaWxpYSBLw6RzcGVyLCBQZXRlciBTY2h3YWJl
LCBBbmR5IFBvbHlha292IgotLmFsaWduCTY0Ci0uc2l6ZQlfYnNhZXNfY29uc3QsLi1fYnNhZXNf
Y29uc3QKLV9fXwotCi0jIEVYQ0VQVElPTl9ESVNQT1NJVElPTiBoYW5kbGVyIChFWENFUFRJT05f
UkVDT1JEICpyZWMsVUxPTkc2NCBmcmFtZSwKLSMJCUNPTlRFWFQgKmNvbnRleHQsRElTUEFUQ0hF
Ul9DT05URVhUICpkaXNwKQotaWYgKCR3aW42NCkgewotJHJlYz0iJXJjeCI7Ci0kZnJhbWU9IiVy
ZHgiOwotJGNvbnRleHQ9IiVyOCI7Ci0kZGlzcD0iJXI5IjsKLQotJGNvZGUuPTw8X19fOwotLmV4
dGVybglfX2ltcF9SdGxWaXJ0dWFsVW53aW5kCi0udHlwZQlzZV9oYW5kbGVyLFxAYWJpLW9tbmlw
b3RlbnQKLS5hbGlnbgkxNgotc2VfaGFuZGxlcjoKLQlwdXNoCSVyc2kKLQlwdXNoCSVyZGkKLQlw
dXNoCSVyYngKLQlwdXNoCSVyYnAKLQlwdXNoCSVyMTIKLQlwdXNoCSVyMTMKLQlwdXNoCSVyMTQK
LQlwdXNoCSVyMTUKLQlwdXNoZnEKLQlzdWIJXCQ2NCwlcnNwCi0KLQltb3YJMTIwKCRjb250ZXh0
KSwlcmF4CSMgcHVsbCBjb250ZXh0LT5SYXgKLQltb3YJMjQ4KCRjb250ZXh0KSwlcmJ4CSMgcHVs
bCBjb250ZXh0LT5SaXAKLQotCW1vdgk4KCRkaXNwKSwlcnNpCQkjIGRpc3AtPkltYWdlQmFzZQot
CW1vdgk1NigkZGlzcCksJXIxMQkJIyBkaXNwLT5IYW5kbGVyRGF0YQotCi0JbW92CTAoJXIxMSks
JXIxMGQJCSMgSGFuZGxlckRhdGFbMF0KLQlsZWEJKCVyc2ksJXIxMCksJXIxMAkjIHByb2xvZ3Vl
IGxhYmVsCi0JY21wCSVyMTAsJXJieAkJIyBjb250ZXh0LT5SaXA8PXByb2xvZ3VlIGxhYmVsCi0J
amJlCS5MaW5fcHJvbG9ndWUKLQotCW1vdgk0KCVyMTEpLCVyMTBkCQkjIEhhbmRsZXJEYXRhWzFd
Ci0JbGVhCSglcnNpLCVyMTApLCVyMTAJIyBlcGlsb2d1ZSBsYWJlbAotCWNtcAklcjEwLCVyYngJ
CSMgY29udGV4dC0+UmlwPj1lcGlsb2d1ZSBsYWJlbAotCWphZQkuTGluX3Byb2xvZ3VlCi0KLQlt
b3YJOCglcjExKSwlcjEwZAkJIyBIYW5kbGVyRGF0YVsyXQotCWxlYQkoJXJzaSwlcjEwKSwlcjEw
CSMgZXBpbG9ndWUgbGFiZWwKLQljbXAJJXIxMCwlcmJ4CQkjIGNvbnRleHQtPlJpcD49dGFpbCBs
YWJlbAotCWphZQkuTGluX3RhaWwKLQotCW1vdgkxNjAoJGNvbnRleHQpLCVyYXgJIyBwdWxsIGNv
bnRleHQtPlJicAotCi0JbGVhCTB4NDAoJXJheCksJXJzaQkJIyAleG1tIHNhdmUgYXJlYQotCWxl
YQk1MTIoJGNvbnRleHQpLCVyZGkJIyAmY29udGV4dC5YbW02Ci0JbW92CVwkMjAsJWVjeAkJIyAx
MCpzaXplb2YoJXhtbTApL3NpemVvZiglcmF4KQotCS5sb25nCTB4YTU0OGYzZmMJCSMgY2xkOyBy
ZXAgbW92c3EKLQlsZWEJMHhhMCsweDc4KCVyYXgpLCVyYXgJIyBhZGp1c3Qgc3RhY2sgcG9pbnRl
cgotCi0uTGluX3RhaWw6Ci0JbW92CS00OCglcmF4KSwlcmJwCi0JbW92CS00MCglcmF4KSwlcmJ4
Ci0JbW92CS0zMiglcmF4KSwlcjEyCi0JbW92CS0yNCglcmF4KSwlcjEzCi0JbW92CS0xNiglcmF4
KSwlcjE0Ci0JbW92CS04KCVyYXgpLCVyMTUKLQltb3YJJXJieCwxNDQoJGNvbnRleHQpCSMgcmVz
dG9yZSBjb250ZXh0LT5SYngKLQltb3YJJXJicCwxNjAoJGNvbnRleHQpCSMgcmVzdG9yZSBjb250
ZXh0LT5SYnAKLQltb3YJJXIxMiwyMTYoJGNvbnRleHQpCSMgcmVzdG9yZSBjb250ZXh0LT5SMTIK
LQltb3YJJXIxMywyMjQoJGNvbnRleHQpCSMgcmVzdG9yZSBjb250ZXh0LT5SMTMKLQltb3YJJXIx
NCwyMzIoJGNvbnRleHQpCSMgcmVzdG9yZSBjb250ZXh0LT5SMTQKLQltb3YJJXIxNSwyNDAoJGNv
bnRleHQpCSMgcmVzdG9yZSBjb250ZXh0LT5SMTUKLQotLkxpbl9wcm9sb2d1ZToKLQltb3YJJXJh
eCwxNTIoJGNvbnRleHQpCSMgcmVzdG9yZSBjb250ZXh0LT5Sc3AKLQotCW1vdgk0MCgkZGlzcCks
JXJkaQkJIyBkaXNwLT5Db250ZXh0UmVjb3JkCi0JbW92CSRjb250ZXh0LCVyc2kJCSMgY29udGV4
dAotCW1vdglcJGAxMjMyLzhgLCVlY3gJCSMgc2l6ZW9mKENPTlRFWFQpCi0JLmxvbmcJMHhhNTQ4
ZjNmYwkJIyBjbGQ7IHJlcCBtb3ZzcQotCi0JbW92CSRkaXNwLCVyc2kKLQl4b3IJJXJjeCwlcmN4
CQkjIGFyZzEsIFVOV19GTEFHX05IQU5ETEVSCi0JbW92CTgoJXJzaSksJXJkeAkJIyBhcmcyLCBk
aXNwLT5JbWFnZUJhc2UKLQltb3YJMCglcnNpKSwlcjgJCSMgYXJnMywgZGlzcC0+Q29udHJvbFBj
Ci0JbW92CTE2KCVyc2kpLCVyOQkJIyBhcmc0LCBkaXNwLT5GdW5jdGlvbkVudHJ5Ci0JbW92CTQw
KCVyc2kpLCVyMTAJCSMgZGlzcC0+Q29udGV4dFJlY29yZAotCWxlYQk1NiglcnNpKSwlcjExCQkj
ICZkaXNwLT5IYW5kbGVyRGF0YQotCWxlYQkyNCglcnNpKSwlcjEyCQkjICZkaXNwLT5Fc3RhYmxp
c2hlckZyYW1lCi0JbW92CSVyMTAsMzIoJXJzcCkJCSMgYXJnNQotCW1vdgklcjExLDQwKCVyc3Ap
CQkjIGFyZzYKLQltb3YJJXIxMiw0OCglcnNwKQkJIyBhcmc3Ci0JbW92CSVyY3gsNTYoJXJzcCkJ
CSMgYXJnOCwgKE5VTEwpCi0JY2FsbAkqX19pbXBfUnRsVmlydHVhbFVud2luZCglcmlwKQotCi0J
bW92CVwkMSwlZWF4CQkjIEV4Y2VwdGlvbkNvbnRpbnVlU2VhcmNoCi0JYWRkCVwkNjQsJXJzcAot
CXBvcGZxCi0JcG9wCSVyMTUKLQlwb3AJJXIxNAotCXBvcAklcjEzCi0JcG9wCSVyMTIKLQlwb3AJ
JXJicAotCXBvcAklcmJ4Ci0JcG9wCSVyZGkKLQlwb3AJJXJzaQotCXJldAotLnNpemUJc2VfaGFu
ZGxlciwuLXNlX2hhbmRsZXIKLQotLnNlY3Rpb24JLnBkYXRhCi0uYWxpZ24JNAotX19fCi0kY29k
ZS49PDxfX18gaWYgKCRlY2IpOwotCS5ydmEJLkxlY2JfZW5jX3Byb2xvZ3VlCi0JLnJ2YQkuTGVj
Yl9lbmNfZXBpbG9ndWUKLQkucnZhCS5MZWNiX2VuY19pbmZvCi0KLQkucnZhCS5MZWNiX2RlY19w
cm9sb2d1ZQotCS5ydmEJLkxlY2JfZGVjX2VwaWxvZ3VlCi0JLnJ2YQkuTGVjYl9kZWNfaW5mbwot
X19fCi0kY29kZS49PDxfX187Ci0JLnJ2YQkuTGNiY19kZWNfcHJvbG9ndWUKLQkucnZhCS5MY2Jj
X2RlY19lcGlsb2d1ZQotCS5ydmEJLkxjYmNfZGVjX2luZm8KLQotCS5ydmEJLkxjdHJfZW5jX3By
b2xvZ3VlCi0JLnJ2YQkuTGN0cl9lbmNfZXBpbG9ndWUKLQkucnZhCS5MY3RyX2VuY19pbmZvCi0K
LQkucnZhCS5MeHRzX2VuY19wcm9sb2d1ZQotCS5ydmEJLkx4dHNfZW5jX2VwaWxvZ3VlCi0JLnJ2
YQkuTHh0c19lbmNfaW5mbwotCi0JLnJ2YQkuTHh0c19kZWNfcHJvbG9ndWUKLQkucnZhCS5MeHRz
X2RlY19lcGlsb2d1ZQotCS5ydmEJLkx4dHNfZGVjX2luZm8KLQotLnNlY3Rpb24JLnhkYXRhCi0u
YWxpZ24JOAotX19fCi0kY29kZS49PDxfX18gaWYgKCRlY2IpOwotLkxlY2JfZW5jX2luZm86Ci0J
LmJ5dGUJOSwwLDAsMAotCS5ydmEJc2VfaGFuZGxlcgotCS5ydmEJLkxlY2JfZW5jX2JvZHksLkxl
Y2JfZW5jX2VwaWxvZ3VlCSMgSGFuZGxlckRhdGFbXQotCS5ydmEJLkxlY2JfZW5jX3RhaWwKLQku
bG9uZwkwCi0uTGVjYl9kZWNfaW5mbzoKLQkuYnl0ZQk5LDAsMCwwCi0JLnJ2YQlzZV9oYW5kbGVy
Ci0JLnJ2YQkuTGVjYl9kZWNfYm9keSwuTGVjYl9kZWNfZXBpbG9ndWUJIyBIYW5kbGVyRGF0YVtd
Ci0JLnJ2YQkuTGVjYl9kZWNfdGFpbAotCS5sb25nCTAKLV9fXwotJGNvZGUuPTw8X19fOwotLkxj
YmNfZGVjX2luZm86Ci0JLmJ5dGUJOSwwLDAsMAotCS5ydmEJc2VfaGFuZGxlcgotCS5ydmEJLkxj
YmNfZGVjX2JvZHksLkxjYmNfZGVjX2VwaWxvZ3VlCSMgSGFuZGxlckRhdGFbXQotCS5ydmEJLkxj
YmNfZGVjX3RhaWwKLQkubG9uZwkwCi0uTGN0cl9lbmNfaW5mbzoKLQkuYnl0ZQk5LDAsMCwwCi0J
LnJ2YQlzZV9oYW5kbGVyCi0JLnJ2YQkuTGN0cl9lbmNfYm9keSwuTGN0cl9lbmNfZXBpbG9ndWUJ
IyBIYW5kbGVyRGF0YVtdCi0JLnJ2YQkuTGN0cl9lbmNfdGFpbAotCS5sb25nCTAKLS5MeHRzX2Vu
Y19pbmZvOgotCS5ieXRlCTksMCwwLDAKLQkucnZhCXNlX2hhbmRsZXIKLQkucnZhCS5MeHRzX2Vu
Y19ib2R5LC5MeHRzX2VuY19lcGlsb2d1ZQkjIEhhbmRsZXJEYXRhW10KLQkucnZhCS5MeHRzX2Vu
Y190YWlsCi0JLmxvbmcJMAotLkx4dHNfZGVjX2luZm86Ci0JLmJ5dGUJOSwwLDAsMAotCS5ydmEJ
c2VfaGFuZGxlcgotCS5ydmEJLkx4dHNfZGVjX2JvZHksLkx4dHNfZGVjX2VwaWxvZ3VlCSMgSGFu
ZGxlckRhdGFbXQotCS5ydmEJLkx4dHNfZGVjX3RhaWwKLQkubG9uZwkwCi1fX18KLX0KLQotJGNv
ZGUgPX4gcy9cYChbXlxgXSopXGAvZXZhbCgkMSkvZ2VtOwotCi1wcmludCAkY29kZTsKLQotY2xv
c2UgU1RET1VUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vdnBh
ZXMtYXJtdjgucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS92cGFlcy1hcm12OC5w
bApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYWU1ZTdlOWYyZDg4NzViNjE0MDE2ZWY5Yzc5ZDFiMmYwZDgxMGYyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9hc20vdnBhZXMtYXJt
djgucGwKQEAgLTAsMCArMSwxMzYyIEBACisjISAvdXNyL2Jpbi9lbnYgcGVybAorIyBDb3B5cmln
aHQgMjAxNS0yMDE2IFRoZSBPcGVuU1NMIFByb2plY3QgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE9wZW5TU0wgbGljZW5zZSAodGhlICJMaWNl
bnNlIikuICBZb3UgbWF5IG5vdCB1c2UKKyMgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgY2FuIG9idGFpbiBhIGNvcHkKKyMgaW4gdGhlIGZpbGUg
TElDRU5TRSBpbiB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbiBvciBhdAorIyBodHRwczovL3d3dy5v
cGVuc3NsLm9yZy9zb3VyY2UvbGljZW5zZS5odG1sCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgQ29u
c3RhbnQtdGltZSBTU1NFMyBBRVMgY29yZSBpbXBsZW1lbnRhdGlvbi4KKyMjIHZlcnNpb24gMC4x
CisjIworIyMgQnkgTWlrZSBIYW1idXJnIChTdGFuZm9yZCBVbml2ZXJzaXR5KSwgMjAwOQorIyMg
UHVibGljIGRvbWFpbi4KKyMjCisjIyBGb3IgZGV0YWlscyBzZWUgaHR0cDovL3NoaWZ0bGVmdC5v
cmcvcGFwZXJzL3ZlY3Rvcl9hZXMvIGFuZAorIyMgaHR0cDovL2NyeXB0by5zdGFuZm9yZC5lZHUv
dnBhZXMvLgorIyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQVJNdjggTkVPTiBhZGFwdGF0aW9uIGJ5IDxh
cHByb0BvcGVuc3NsLm9yZz4KKyMKKyMgUmVhc29uIGZvciB1bmRlcnRha2VuIGVmZm9ydCBpcyB0
aGF0IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwb3B1bGFyCisjIFNvQyBiYXNlZCBvbiBDb3J0ZXgt
QTUzIHRoYXQgZG9lc24ndCBoYXZlIGNyeXB0byBleHRlbnNpb25zLgorIworIyAgICAgICAgICAg
ICAgICAgICBDQkMgZW5jICAgICBFQ0IgZW5jL2RlYygqKSAgIFtiaXQtc2xpY2VkIGVuYy9kZWNd
CisjIENvcnRleC1BNTMgICAgICAgIDIxLjUgICAgICAgIDE4LjEvMjAuNiAgICAgICAgWzE3LjUv
MTkuOCAgICAgICAgIF0KKyMgQ29ydGV4LUE1NyAgICAgICAgMzYuMCgqKikgICAgMjAuNC8yNC45
KCoqKSAgICBbMTQuNC8xNi42ICAgICAgICAgXQorIyBYLUdlbmUgICAgICAgICAgICA0NS45KCoq
KSAgICA0NS44LzU3LjcoKiopICAgIFszMy4xLzM3LjYoKiopICAgICBdCisjIERlbnZlcigqKiop
ICAgICAgIDE2LjYoKiopICAgIDE1LjEvMTcuOCgqKikgICAgWzguODAvOS45MyAgICAgICAgIF0K
KyMgQXBwbGUgQTcoKioqKSAgICAgMjIuNygqKikgICAgMTAuOS8xNC4zICAgICAgICBbOC40NS8x
MC4wICAgICAgICAgXQorIyBNb25nb29zZSgqKiopICAgICAyNi4zKCoqKSAgICAyMS4wLzI1LjAo
KiopICAgIFsxMy4zLzE2LjggICAgICAgICBdCisjCisjICgqKQlFQ0IgZGVub3RlcyBhcHByb3hp
bWF0ZSByZXN1bHQgZm9yIHBhcmFsbGVsaXphYmxlIG1vZGVzCisjCXN1Y2ggYXMgQ0JDIGRlY3J5
cHQsIENUUiwgZXRjLjsKKyMgKCoqKQl0aGVzZSByZXN1bHRzIGFyZSB3b3JzZSB0aGFuIHNjYWxh
ciBjb21waWxlci1nZW5lcmF0ZWQKKyMJY29kZSwgYnV0IGl0J3MgY29uc3RhbnQtdGltZSBhbmQg
dGhlcmVmb3JlIHByZWZlcnJlZDsKKyMgKCoqKikJcHJlc2VudGVkIGZvciByZWZlcmVuY2UvY29t
cGFyaXNvbiBwdXJwb3NlczsKKworJGZsYXZvdXIgPSBzaGlmdDsKK3doaWxlICgoJG91dHB1dD1z
aGlmdCkgJiYgKCRvdXRwdXQhfi9cd1tcd1wtXSpcLlx3KyQvKSkge30KKworJDAgPX4gbS8oLipb
XC9cXF0pW15cL1xcXSskLzsgJGRpcj0kMTsKKyggJHhsYXRlPSIke2Rpcn1hcm0teGxhdGUucGwi
IGFuZCAtZiAkeGxhdGUgKSBvcgorKCAkeGxhdGU9IiR7ZGlyfS4uLy4uLy4uL3Blcmxhc20vYXJt
LXhsYXRlLnBsIiBhbmQgLWYgJHhsYXRlKSBvcgorZGllICJjYW4ndCBsb2NhdGUgYXJtLXhsYXRl
LnBsIjsKKworb3BlbiBPVVQsInwgXCIkXlhcIiAkeGxhdGUgJGZsYXZvdXIgJG91dHB1dCI7Cisq
U1RET1VUPSpPVVQ7CisKKyRjb2RlLj08PF9fXzsKKy5zZWN0aW9uCS5yb2RhdGEKKworLnR5cGUJ
X3ZwYWVzX2NvbnN0cywlb2JqZWN0CisuYWxpZ24JNwkvLyB0b3RhbGx5IHN0cmF0ZWdpYyBhbGln
bm1lbnQKK192cGFlc19jb25zdHM6CisuTGtfbWNfZm9yd2FyZDoJLy8gbWNfZm9yd2FyZAorCS5x
dWFkCTB4MDQwNzA2MDUwMDAzMDIwMSwgMHgwQzBGMEUwRDA4MEIwQTA5CisJLnF1YWQJMHgwODBC
MEEwOTA0MDcwNjA1LCAweDAwMDMwMjAxMEMwRjBFMEQKKwkucXVhZAkweDBDMEYwRTBEMDgwQjBB
MDksIDB4MDQwNzA2MDUwMDAzMDIwMQorCS5xdWFkCTB4MDAwMzAyMDEwQzBGMEUwRCwgMHgwODBC
MEEwOTA0MDcwNjA1CisuTGtfbWNfYmFja3dhcmQ6Ly8gbWNfYmFja3dhcmQKKwkucXVhZAkweDA2
MDUwNDA3MDIwMTAwMDMsIDB4MEUwRDBDMEYwQTA5MDgwQgorCS5xdWFkCTB4MDIwMTAwMDMwRTBE
MEMwRiwgMHgwQTA5MDgwQjA2MDUwNDA3CisJLnF1YWQJMHgwRTBEMEMwRjBBMDkwODBCLCAweDA2
MDUwNDA3MDIwMTAwMDMKKwkucXVhZAkweDBBMDkwODBCMDYwNTA0MDcsIDB4MDIwMTAwMDMwRTBE
MEMwRgorLkxrX3NyOgkJLy8gc3IKKwkucXVhZAkweDA3MDYwNTA0MDMwMjAxMDAsIDB4MEYwRTBE
MEMwQjBBMDkwOAorCS5xdWFkCTB4MDMwRTA5MDQwRjBBMDUwMCwgMHgwQjA2MDEwQzA3MDIwRDA4
CisJLnF1YWQJMHgwRjA2MEQwNDBCMDIwOTAwLCAweDA3MEUwNTBDMDMwQTAxMDgKKwkucXVhZAkw
eDBCMEUwMTA0MDcwQTBEMDAsIDB4MDMwNjA5MEMwRjAyMDUwOAorCisvLworLy8gIkhvdCIgY29u
c3RhbnRzCisvLworLkxrX2ludjoJLy8gaW52LCBpbnZhCisJLnF1YWQJMHgwRTA1MDYwRjBEMDgw
MTgwLCAweDA0MDcwMzA5MEEwQjBDMDIKKwkucXVhZAkweDAxMDQwQTA2MEYwQjA3ODAsIDB4MDMw
RDBFMEMwMjA1MDgwOQorLkxrX2lwdDoJLy8gaW5wdXQgdHJhbnNmb3JtIChsbywgaGkpCisJLnF1
YWQJMHhDMkIyRTg5ODVBMkE3MDAwLCAweENBQkFFMDkwNTIyMjc4MDgKKwkucXVhZAkweDRDMDEz
MDdEMzE3QzREMDAsIDB4Q0Q4MEIxRkNCMEZEQ0M4MQorLkxrX3NibzoJLy8gc2JvdSwgc2JvdAor
CS5xdWFkCTB4RDBEMjZEMTc2RkJEQzcwMCwgMHgxNUFBQkY3QUM1MDJBODc4CisJLnF1YWQJMHhD
RkU0NzRBNTVGQkI2QTAwLCAweDhFMUU5MEQxNDEyQjM1RkEKKy5Ma19zYjE6CS8vIHNiMXUsIHNi
MXQKKwkucXVhZAkweDM2MThENDE1RkFFMjIzMDAsIDB4M0JGN0NDQzEwRDJFRDlFRgorCS5xdWFk
CTB4QjE5QkUxOEZDQjUwM0UwMCwgMHhBNURGN0E2RTE0MkFGNTQ0CisuTGtfc2IyOgkvLyBzYjJ1
LCBzYjJ0CisJLnF1YWQJMHg2OUVCODg0MDBBRTEyOTAwLCAweEMyQTE2M0M4QUI4MjIzNEEKKwku
cXVhZAkweEUyN0E5M0M2MEI3MTI0MDAsIDB4NUVCN0U5NTVCQzk4MkZDRAorCisvLworLy8gIERl
Y3J5cHRpb24gc3R1ZmYKKy8vCisuTGtfZGlwdDoJLy8gZGVjcnlwdGlvbiBpbnB1dCB0cmFuc2Zv
cm0KKwkucXVhZAkweDBGNTA1QjA0MEI1NDVGMDAsIDB4MTU0QTQxMUUxMTRFNDUxQQorCS5xdWFk
CTB4ODZFMzgzRTY2MDA1NjUwMCwgMHgxMjc3MTc3MkY0OTFGMTk0CisuTGtfZHNibzoJLy8gZGVj
cnlwdGlvbiBzYm94IGZpbmFsIG91dHB1dAorCS5xdWFkCTB4MTM4N0VBNTM3RUY5NDAwMCwgMHhD
N0FBNkRCOUQ0OTQzRTJECisJLnF1YWQJMHgxMkQ3NTYwRjkzNDQxRDAwLCAweENBNEI4MTU5RDhD
NThFOUMKKy5Ma19kc2I5OgkvLyBkZWNyeXB0aW9uIHNib3ggb3V0cHV0ICo5KnUsICo5KnQKKwku
cXVhZAkweDg1MUMwMzUzOUE4NkQ2MDAsIDB4Q0FENTFGNTA0Rjk5NENDOQorCS5xdWFkCTB4QzAz
QjE3ODlFQ0Q3NDkwMCwgMHg3MjVFMkM5RUIyRkJBNTY1CisuTGtfZHNiZDoJLy8gZGVjcnlwdGlv
biBzYm94IG91dHB1dCAqRCp1LCAqRCp0CisJLnF1YWQJMHg3RDU3Q0NERkU2QjFBMjAwLCAweEY1
NkU5QjEzODgyQTQ0MzkKKwkucXVhZAkweDNDRTJGQUY3MjRDNkNCMDAsIDB4MjkzMTE4MEQxNURF
RUZEMworLkxrX2RzYmI6CS8vIGRlY3J5cHRpb24gc2JveCBvdXRwdXQgKkIqdSwgKkIqdAorCS5x
dWFkCTB4RDAyMjY0OTI5NkI0NDIwMCwgMHg2MDI2NDZGNkIwRjJENDA0CisJLnF1YWQJMHhDMTk0
OThBNkNENTk2NzAwLCAweEYzRkYwQzNFMzI1NUFBNkIKKy5Ma19kc2JlOgkvLyBkZWNyeXB0aW9u
IHNib3ggb3V0cHV0ICpFKnUsICpFKnQKKwkucXVhZAkweDQ2RjI5Mjk2MjZENEQwMDAsIDB4MjI0
MjYwMDQ2NEI0RjZCMAorCS5xdWFkCTB4MEM1NUE2Q0RGRkFBQzEwMCwgMHg5NDY3RjM2Qjk4NTkz
RTMyCisKKy8vCisvLyAgS2V5IHNjaGVkdWxlIGNvbnN0YW50cworLy8KKy5Ma19ka3NkOgkvLyBk
ZWNyeXB0aW9uIGtleSBzY2hlZHVsZTogaW52c2tldyB4KkQKKwkucXVhZAkweEZFQjkxQTVEQTNF
NDQ3MDAsIDB4MDc0MEUzQTQ1QTFEQkVGOQorCS5xdWFkCTB4NDFDMjc3RjRCNTM2ODMwMCwgMHg1
RkRDNjlFQUFCMjg5RDFFCisuTGtfZGtzYjoJLy8gZGVjcnlwdGlvbiBrZXkgc2NoZWR1bGU6IGlu
dnNrZXcgeCpCCisJLnF1YWQJMHg5QTRGQ0ExRjg1NTBENTAwLCAweDAzRDY1Mzg2MUNDOTRDOTkK
KwkucXVhZAkweDExNUJFREE3QjZGQzRBMDAsIDB4RDk5MzI1NkY3RTM0ODJDOAorLkxrX2Rrc2U6
CS8vIGRlY3J5cHRpb24ga2V5IHNjaGVkdWxlOiBpbnZza2V3IHgqRSArIDB4NjMKKwkucXVhZAkw
eEQ1MDMxQ0NBMUZDOUQ2MDAsIDB4NTM4NTlBNEM5OTRGNTA4NgorCS5xdWFkCTB4QTIzMTk2MDU0
RkRDN0JFOCwgMHhDRDVFRjk2QTIwQjMxNDg3CisuTGtfZGtzOToJLy8gZGVjcnlwdGlvbiBrZXkg
c2NoZWR1bGU6IGludnNrZXcgeCo5CisJLnF1YWQJMHhCNjExNkZDODdFRDlBNzAwLCAweDRBRUQ5
MzM0ODIyNTVCRkMKKwkucXVhZAkweDQ1NzY1MTYyMjcxNDMzMDAsIDB4OEJCODlGQUNFOURBRkRD
RQorCisuTGtfcmNvbjoJLy8gcmNvbgorCS5xdWFkCTB4MUY4MzkxQjlBRjlERUVCNiwgMHg3MDJB
OTgwODREN0M3RDgxCisKKy5Ma19vcHQ6CS8vIG91dHB1dCB0cmFuc2Zvcm0KKwkucXVhZAkweEZG
OUY0OTI5RDZCNjYwMDAsIDB4Rjc5NzQxMjFERUJFNjgwOAorCS5xdWFkCTB4MDFFREJENTE1MEJD
RUMwMCwgMHhFMTBENURCMUIwNUMwQ0UwCisuTGtfZGVza2V3OgkvLyBkZXNrZXcgdGFibGVzOiBp
bnZlcnRzIHRoZSBzYm94J3MgInNrZXciCisJLnF1YWQJMHgwN0U0QTM0MDQ3QTRFMzAwLCAweDFE
RkVCOTVBNURCRUY5MUEKKwkucXVhZAkweDVGMzZCNURDODNFQTY5MDAsIDB4Mjg0MUMyQUJGNDlE
MUU3NworCisuYXNjaXogICJWZWN0b3IgUGVybXV0YXRpb24gQUVTIGZvciBBUk12OCwgTWlrZSBI
YW1idXJnIChTdGFuZm9yZCBVbml2ZXJzaXR5KSIKKy5zaXplCV92cGFlc19jb25zdHMsLi1fdnBh
ZXNfY29uc3RzCisuYWxpZ24JNgorCisudGV4dAorX19fCisMCit7CitteSAoJGlucCwkb3V0LCRr
ZXkpID0gbWFwKCJ4JF8iLCgwLi4yKSk7CisKK215ICgkaW52bG8sJGludmhpLCRpcHRsbywkaXB0
aGksJHNib3UsJHNib3QpID0gbWFwKCJ2JF8uMTZiIiwoMTguLjIzKSk7CitteSAoJHNiMXUsJHNi
MXQsJHNiMnUsJHNiMnQpID0gbWFwKCJ2JF8uMTZiIiwoMjQuLjI3KSk7CitteSAoJHNiOXUsJHNi
OXQsJHNiZHUsJHNiZHQsJHNiYnUsJHNiYnQsJHNiZXUsJHNiZXQpPW1hcCgidiRfLjE2YiIsKDI0
Li4zMSkpOworCiskY29kZS49PDxfX187CisjIworIyMgIF9hZXNfcHJlaGVhdAorIyMKKyMjICBG
aWxscyByZWdpc3RlciAlcjEwIC0+IC5hZXNfY29uc3RzIChzbyB5b3UgY2FuIC1mUElDKQorIyMg
IGFuZCAleG1tOS0leG1tMTUgYXMgc3BlY2lmaWVkIGJlbG93LgorIyMKKy50eXBlCV92cGFlc19l
bmNyeXB0X3ByZWhlYXQsJWZ1bmN0aW9uCisuYWxpZ24JNAorX3ZwYWVzX2VuY3J5cHRfcHJlaGVh
dDoKKwlhZHJwCXgxMCwgOnBnX2hpMjE6LkxrX2ludgorCWFkZAl4MTAsIHgxMCwgOmxvMTI6Lkxr
X2ludgorCW1vdmkJdjE3LjE2YiwgIzB4MGYKKwlsZDEJe3YxOC4yZC12MTkuMmR9LCBbeDEwXSwj
MzIJLy8gLkxrX2ludgorCWxkMQl7djIwLjJkLXYyMy4yZH0sIFt4MTBdLCM2NAkvLyAuTGtfaXB0
LCAuTGtfc2JvCisJbGQxCXt2MjQuMmQtdjI3LjJkfSwgW3gxMF0JCS8vIC5Ma19zYjEsIC5Ma19z
YjIKKwlyZXQKKy5zaXplCV92cGFlc19lbmNyeXB0X3ByZWhlYXQsLi1fdnBhZXNfZW5jcnlwdF9w
cmVoZWF0CisKKyMjCisjIyAgX2Flc19lbmNyeXB0X2NvcmUKKyMjCisjIyAgQUVTLWVuY3J5cHQg
JXhtbTAuCisjIworIyMgIElucHV0czoKKyMjICAgICAleG1tMCA9IGlucHV0CisjIyAgICAgJXht
bTktJXhtbTE1IGFzIGluIF92cGFlc19wcmVoZWF0CisjIyAgICAoJXJkeCkgPSBzY2hlZHVsZWQg
a2V5cworIyMKKyMjICBPdXRwdXQgaW4gJXhtbTAKKyMjICBDbG9iYmVycyAgJXhtbTEtJXhtbTUs
ICVyOSwgJXIxMCwgJXIxMSwgJXJheAorIyMgIFByZXNlcnZlcyAleG1tNiAtICV4bW04IHNvIHlv
dSBnZXQgc29tZSBsb2NhbCB2ZWN0b3JzCisjIworIyMKKy50eXBlCV92cGFlc19lbmNyeXB0X2Nv
cmUsJWZ1bmN0aW9uCisuYWxpZ24gNAorX3ZwYWVzX2VuY3J5cHRfY29yZToKKwltb3YJeDksICRr
ZXkKKwlsZHIJdzgsIFska2V5LCMyNDBdCQkJLy8gcHVsbCByb3VuZHMKKwlhZHJwCXgxMSwgOnBn
X2hpMjE6LkxrX21jX2ZvcndhcmQrMTYKKwlhZGQJeDExLCB4MTEsIDpsbzEyOi5Ma19tY19mb3J3
YXJkKzE2CisJCQkJCQkvLyB2bW92ZHFhCS5Ma19pcHQoJXJpcCksCSV4bW0yCSMgaXB0bG8KKwls
ZDEJe3YxNi4yZH0sIFt4OV0sICMxNgkJLy8gdm1vdmRxdQkoJXI5KSwJJXhtbTUJCSMgcm91bmQw
IGtleQorCWFuZAl2MS4xNmIsIHY3LjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTksCSV4bW0w
LAkleG1tMQorCXVzaHIJdjAuMTZiLCB2Ny4xNmIsICM0CQkvLyB2cHNybGIJXCQ0LAkleG1tMCwJ
JXhtbTAKKwl0YmwJdjEuMTZiLCB7JGlwdGxvfSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4
bW0yLAkleG1tMQorCQkJCQkJLy8gdm1vdmRxYQkuTGtfaXB0KzE2KCVyaXApLCAleG1tMwkjIGlw
dGhpCisJdGJsCXYyLjE2YiwgeyRpcHRoaX0sIHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLAkleG1t
MywJJXhtbTIKKwllb3IJdjAuMTZiLCB2MS4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCSV4bW01LAkl
eG1tMSwJJXhtbTAKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYyLjE2YgkJLy8gdnB4b3IJJXhtbTIs
CSV4bW0wLAkleG1tMAorCWIJLkxlbmNfZW50cnkKKworLmFsaWduIDQKKy5MZW5jX2xvb3A6CisJ
Ly8gbWlkZGxlIG9mIG1pZGRsZSByb3VuZAorCWFkZAl4MTAsIHgxMSwgIzB4NDAKKwl0YmwJdjQu
MTZiLCB7JHNiMXR9LCB2Mi4xNmIJCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW0xMywJJXhtbTQJIyA0
ID0gc2IxdQorCWxkMQl7djEuMmR9LCBbeDExXSwgIzE2CQkvLyB2bW92ZHFhCS0weDQwKCVyMTEs
JXIxMCksICV4bW0xCSMgLkxrX21jX2ZvcndhcmRbXQorCXRibAl2MC4xNmIsIHskc2IxdX0sIHYz
LjE2YgkJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEyLAkleG1tMAkjIDAgPSBzYjF0CisJZW9yCXY0
LjE2YiwgdjQuMTZiLCB2MTYuMTZiCQkvLyB2cHhvcgkleG1tNSwJJXhtbTQsCSV4bW00CSMgNCA9
IHNiMXUgKyBrCisJdGJsCXY1LjE2YiwJeyRzYjJ0fSwgdjIuMTZiCQkvLyB2cHNodWZiCSV4bW0y
LAkleG1tMTUsCSV4bW01CSMgNCA9IHNiMnUKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHY0LjE2YgkJ
Ly8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDAgPSBBCisJdGJsCXYyLjE2YiwgeyRzYjJ1
fSwgdjMuMTZiCQkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTQsCSV4bW0yCSMgMiA9IHNiMnQKKwls
ZDEJe3Y0LjJkfSwgW3gxMF0JCQkvLyB2bW92ZHFhCSglcjExLCVyMTApLCAleG1tNAkjIC5Ma19t
Y19iYWNrd2FyZFtdCisJdGJsCXYzLjE2Yiwge3YwLjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4
bW0xLAkleG1tMCwJJXhtbTMJIyAwID0gQgorCWVvcgl2Mi4xNmIsIHYyLjE2YiwgdjUuMTZiCQkv
LyB2cHhvcgkleG1tNSwJJXhtbTIsCSV4bW0yCSMgMiA9IDJBCisJdGJsCXYwLjE2Yiwge3YwLjE2
Yn0sIHY0LjE2YgkvLyB2cHNodWZiCSV4bW00LAkleG1tMCwJJXhtbTAJIyAzID0gRAorCWVvcgl2
My4xNmIsIHYzLjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkleG1tMiwJJXhtbTMsCSV4bW0zCSMgMCA9
IDJBK0IKKwl0YmwJdjQuMTZiLCB7djMuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4
bW0zLAkleG1tNAkjIDAgPSAyQitDCisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2My4xNmIJCS8vIHZw
eG9yCSV4bW0zLAkleG1tMCwJJXhtbTAJIyAzID0gMkErQitECisJYW5kCXgxMSwgeDExLCAjfigx
PDw2KQkJLy8gYW5kCQlcJDB4MzAsCSVyMTEJCSMgLi4uIG1vZCA0CisJZW9yCXYwLjE2YiwgdjAu
MTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwgJXhtbTAJIyAwID0gMkErM0IrQytE
CisJc3ViCXc4LCB3OCwgIzEJCQkvLyBuci0tCisKKy5MZW5jX2VudHJ5OgorCS8vIHRvcCBvZiBy
b3VuZAorCWFuZAl2MS4xNmIsIHYwLjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTAsCSV4bW05
LAkleG1tMSAgICMgMCA9IGsKKwl1c2hyCXYwLjE2YiwgdjAuMTZiLCAjNAkJLy8gdnBzcmxiCVwk
NCwJJXhtbTAsCSV4bW0wCSMgMSA9IGkKKwl0YmwJdjUuMTZiLCB7JGludmhpfSwgdjEuMTZiCS8v
IHZwc2h1ZmIJJXhtbTEsCSV4bW0xMSwJJXhtbTUJIyAyID0gYS9rCisJZW9yCXYxLjE2YiwgdjEu
MTZiLCB2MC4xNmIJCS8vIHZweG9yCSV4bW0wLAkleG1tMSwJJXhtbTEJIyAwID0gagorCXRibAl2
My4xNmIsIHskaW52bG99LCB2MC4xNmIJLy8gdnBzaHVmYgkleG1tMCwgCSV4bW0xMCwJJXhtbTMg
IAkjIDMgPSAxL2kKKwl0YmwJdjQuMTZiLCB7JGludmxvfSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXht
bTEsIAkleG1tMTAsCSV4bW00ICAJIyA0ID0gMS9qCisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2NS4x
NmIJCS8vIHZweG9yCSV4bW01LAkleG1tMywJJXhtbTMJIyAzID0gaWFrID0gMS9pICsgYS9rCisJ
ZW9yCXY0LjE2YiwgdjQuMTZiLCB2NS4xNmIJCS8vIHZweG9yCSV4bW01LAkleG1tNCwJJXhtbTQg
IAkjIDQgPSBqYWsgPSAxL2ogKyBhL2sKKwl0YmwJdjIuMTZiLCB7JGludmxvfSwgdjMuMTZiCS8v
IHZwc2h1ZmIJJXhtbTMsCSV4bW0xMCwJJXhtbTIgIAkjIDIgPSAxL2lhaworCXRibAl2My4xNmIs
IHskaW52bG99LCB2NC4xNmIJLy8gdnBzaHVmYgkleG1tNCwJJXhtbTEwLAkleG1tMwkjIDMgPSAx
L2phaworCWVvcgl2Mi4xNmIsIHYyLjE2YiwgdjEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTIs
CSV4bW0yICAJIyAyID0gaW8KKwllb3IJdjMuMTZiLCB2My4xNmIsIHYwLjE2YgkJLy8gdnB4b3IJ
JXhtbTAsCSV4bW0zLAkleG1tMwkjIDMgPSBqbworCWxkMQl7djE2LjJkfSwgW3g5XSwjMTYJCS8v
IHZtb3ZkcXUJKCVyOSksCSV4bW01CisJY2Juegl3OCwgLkxlbmNfbG9vcAorCisJLy8gbWlkZGxl
IG9mIGxhc3Qgcm91bmQKKwlhZGQJeDEwLCB4MTEsICMweDgwCisJCQkJCQkvLyB2bW92ZHFhCS0w
eDYwKCVyMTApLCAleG1tNAkjIDMgOiBzYm91CS5Ma19zYm8KKwkJCQkJCS8vIHZtb3ZkcWEJLTB4
NTAoJXIxMCksICV4bW0wCSMgMCA6IHNib3QJLkxrX3NibysxNgorCXRibAl2NC4xNmIsIHskc2Jv
dX0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CSMgNCA9IHNib3UKKwls
ZDEJe3YxLjJkfSwgW3gxMF0JCQkvLyB2bW92ZHFhCTB4NDAoJXIxMSwlcjEwKSwgJXhtbTEJIyAu
TGtfc3JbXQorCXRibAl2MC4xNmIsIHskc2JvdH0sIHYzLjE2YgkJLy8gdnBzaHVmYgkleG1tMywJ
JXhtbTAsCSV4bW0wCSMgMCA9IHNiMXQKKwllb3IJdjQuMTZiLCB2NC4xNmIsIHYxNi4xNmIJCS8v
IHZweG9yCSV4bW01LAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwllb3IJdjAuMTZiLCB2
MC4xNmIsIHY0LjE2YgkJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDAgPSBBCisJdGJs
CXYwLjE2Yiwge3YwLjE2Yn0sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMCwJJXhtbTAK
KwlyZXQKKy5zaXplCV92cGFlc19lbmNyeXB0X2NvcmUsLi1fdnBhZXNfZW5jcnlwdF9jb3JlCisK
Ky5nbG9ibAl2cGFlc19lbmNyeXB0CisudHlwZQl2cGFlc19lbmNyeXB0LCVmdW5jdGlvbgorLmFs
aWduCTQKK3ZwYWVzX2VuY3J5cHQ6CisJc3RwCXgyOSx4MzAsW3NwLCMtMTZdIQorCWFkZAl4Mjks
c3AsIzAKKworCWxkMQl7djcuMTZifSwgWyRpbnBdCisJYmwJX3ZwYWVzX2VuY3J5cHRfcHJlaGVh
dAorCWJsCV92cGFlc19lbmNyeXB0X2NvcmUKKwlzdDEJe3YwLjE2Yn0sIFskb3V0XQorCisJbGRw
CXgyOSx4MzAsW3NwXSwjMTYKKwlyZXQKKy5zaXplCXZwYWVzX2VuY3J5cHQsLi12cGFlc19lbmNy
eXB0CisKKy50eXBlCV92cGFlc19lbmNyeXB0XzJ4LCVmdW5jdGlvbgorLmFsaWduIDQKK192cGFl
c19lbmNyeXB0XzJ4OgorCW1vdgl4OSwgJGtleQorCWxkcgl3OCwgWyRrZXksIzI0MF0JCQkvLyBw
dWxsIHJvdW5kcworCWFkcnAJeDExLCA6cGdfaGkyMTouTGtfbWNfZm9yd2FyZCsxNgorCWFkZAl4
MTEsIHgxMSwgOmxvMTI6LkxrX21jX2ZvcndhcmQrMTYKKwkJCQkJCS8vIHZtb3ZkcWEJLkxrX2lw
dCglcmlwKSwJJXhtbTIJIyBpcHRsbworCWxkMQl7djE2LjJkfSwgW3g5XSwgIzE2CQkvLyB2bW92
ZHF1CSglcjkpLAkleG1tNQkJIyByb3VuZDAga2V5CisJYW5kCXYxLjE2YiwgIHYxNC4xNmIsICB2
MTcuMTZiCS8vIHZwYW5kCSV4bW05LAkleG1tMCwJJXhtbTEKKwl1c2hyCXYwLjE2YiwgIHYxNC4x
NmIsICAjNAkJLy8gdnBzcmxiCVwkNCwJJXhtbTAsCSV4bW0wCisJIGFuZAl2OS4xNmIsICB2MTUu
MTZiLCAgdjE3LjE2YgorCSB1c2hyCXY4LjE2YiwgIHYxNS4xNmIsICAjNAorCXRibAl2MS4xNmIs
ICB7JGlwdGxvfSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0yLAkleG1tMQorCSB0YmwJ
djkuMTZiLCAgeyRpcHRsb30sIHY5LjE2YgorCQkJCQkJLy8gdm1vdmRxYQkuTGtfaXB0KzE2KCVy
aXApLCAleG1tMwkjIGlwdGhpCisJdGJsCXYyLjE2YiwgIHskaXB0aGl9LCB2MC4xNmIJLy8gdnBz
aHVmYgkleG1tMCwJJXhtbTMsCSV4bW0yCisJIHRibAl2MTAuMTZiLCB7JGlwdGhpfSwgdjguMTZi
CisJZW9yCXYwLjE2YiwgIHYxLjE2YiwgICB2MTYuMTZiCS8vIHZweG9yCSV4bW01LAkleG1tMSwJ
JXhtbTAKKwkgZW9yCXY4LjE2YiwgIHY5LjE2YiwgICB2MTYuMTZiCisJZW9yCXYwLjE2YiwgIHYw
LjE2YiwgICB2Mi4xNmIJLy8gdnB4b3IJJXhtbTIsCSV4bW0wLAkleG1tMAorCSBlb3IJdjguMTZi
LCAgdjguMTZiLCAgIHYxMC4xNmIKKwliCS5MZW5jXzJ4X2VudHJ5CisKKy5hbGlnbiA0CisuTGVu
Y18yeF9sb29wOgorCS8vIG1pZGRsZSBvZiBtaWRkbGUgcm91bmQKKwlhZGQJeDEwLCB4MTEsICMw
eDQwCisJdGJsCXY0LjE2YiwgIHskc2IxdH0sIHYyLjE2YgkvLyB2cHNodWZiCSV4bW0yLAkleG1t
MTMsCSV4bW00CSMgNCA9IHNiMXUKKwkgdGJsCXYxMi4xNmIsIHskc2IxdH0sIHYxMC4xNmIKKwls
ZDEJe3YxLjJkfSwgW3gxMV0sICMxNgkJLy8gdm1vdmRxYQktMHg0MCglcjExLCVyMTApLCAleG1t
MQkjIC5Ma19tY19mb3J3YXJkW10KKwl0YmwJdjAuMTZiLCAgeyRzYjF1fSwgdjMuMTZiCS8vIHZw
c2h1ZmIJJXhtbTMsCSV4bW0xMiwJJXhtbTAJIyAwID0gc2IxdAorCSB0YmwJdjguMTZiLCAgeyRz
YjF1fSwgdjExLjE2YgorCWVvcgl2NC4xNmIsICB2NC4xNmIsICB2MTYuMTZiCS8vIHZweG9yCSV4
bW01LAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwkgZW9yCXYxMi4xNmIsIHYxMi4xNmIs
IHYxNi4xNmIKKwl0YmwJdjUuMTZiLAkgeyRzYjJ0fSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIs
CSV4bW0xNSwJJXhtbTUJIyA0ID0gc2IydQorCSB0YmwJdjEzLjE2YiwgeyRzYjJ0fSwgdjEwLjE2
YgorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2NC4xNmIJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkl
eG1tMAkjIDAgPSBBCisJIGVvcgl2OC4xNmIsICB2OC4xNmIsICB2MTIuMTZiCisJdGJsCXYyLjE2
YiwgIHskc2IydX0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTQsCSV4bW0yCSMgMiA9
IHNiMnQKKwkgdGJsCXYxMC4xNmIsIHskc2IydX0sIHYxMS4xNmIKKwlsZDEJe3Y0LjJkfSwgW3gx
MF0JCQkvLyB2bW92ZHFhCSglcjExLCVyMTApLCAleG1tNAkjIC5Ma19tY19iYWNrd2FyZFtdCisJ
dGJsCXYzLjE2YiwgIHt2MC4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTAsCSV4
bW0zCSMgMCA9IEIKKwkgdGJsCXYxMS4xNmIsIHt2OC4xNmJ9LCB2MS4xNmIKKwllb3IJdjIuMTZi
LCAgdjIuMTZiLCAgdjUuMTZiCS8vIHZweG9yCSV4bW01LAkleG1tMiwJJXhtbTIJIyAyID0gMkEK
KwkgZW9yCXYxMC4xNmIsIHYxMC4xNmIsIHYxMy4xNmIKKwl0YmwJdjAuMTZiLCAge3YwLjE2Yn0s
IHY0LjE2YgkvLyB2cHNodWZiCSV4bW00LAkleG1tMCwJJXhtbTAJIyAzID0gRAorCSB0YmwJdjgu
MTZiLCAge3Y4LjE2Yn0sIHY0LjE2YgorCWVvcgl2My4xNmIsICB2My4xNmIsICB2Mi4xNmIJLy8g
dnB4b3IJJXhtbTIsCSV4bW0zLAkleG1tMwkjIDAgPSAyQStCCisJIGVvcgl2MTEuMTZiLCB2MTEu
MTZiLCB2MTAuMTZiCisJdGJsCXY0LjE2YiwgIHt2My4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkl
eG1tMSwJJXhtbTMsCSV4bW00CSMgMCA9IDJCK0MKKwkgdGJsCXYxMi4xNmIsIHt2MTEuMTZifSx2
MS4xNmIKKwllb3IJdjAuMTZiLCAgdjAuMTZiLCAgdjMuMTZiCS8vIHZweG9yCSV4bW0zLAkleG1t
MCwJJXhtbTAJIyAzID0gMkErQitECisJIGVvcgl2OC4xNmIsICB2OC4xNmIsICB2MTEuMTZiCisJ
YW5kCXgxMSwgeDExLCAjfigxPDw2KQkJLy8gYW5kCQlcJDB4MzAsCSVyMTEJCSMgLi4uIG1vZCA0
CisJZW9yCXYwLjE2YiwgIHYwLjE2YiwgIHY0LjE2YgkvLyB2cHhvcgkleG1tNCwJJXhtbTAsICV4
bW0wCSMgMCA9IDJBKzNCK0MrRAorCSBlb3IJdjguMTZiLCAgdjguMTZiLCAgdjEyLjE2YgorCXN1
Ygl3OCwgdzgsICMxCQkJLy8gbnItLQorCisuTGVuY18yeF9lbnRyeToKKwkvLyB0b3Agb2Ygcm91
bmQKKwlhbmQJdjEuMTZiLCAgdjAuMTZiLCB2MTcuMTZiCS8vIHZwYW5kCSV4bW0wLAkleG1tOSwJ
JXhtbTEgICAjIDAgPSBrCisJdXNocgl2MC4xNmIsICB2MC4xNmIsICM0CQkvLyB2cHNybGIJXCQ0
LAkleG1tMCwJJXhtbTAJIyAxID0gaQorCSBhbmQJdjkuMTZiLCAgdjguMTZiLCB2MTcuMTZiCisJ
IHVzaHIJdjguMTZiLCAgdjguMTZiLCAjNAorCXRibAl2NS4xNmIsICB7JGludmhpfSx2MS4xNmIJ
Ly8gdnBzaHVmYgkleG1tMSwJJXhtbTExLAkleG1tNQkjIDIgPSBhL2sKKwkgdGJsCXYxMy4xNmIs
IHskaW52aGl9LHY5LjE2YgorCWVvcgl2MS4xNmIsICB2MS4xNmIsICB2MC4xNmIJLy8gdnB4b3IJ
JXhtbTAsCSV4bW0xLAkleG1tMQkjIDAgPSBqCisJIGVvcgl2OS4xNmIsICB2OS4xNmIsICB2OC4x
NmIKKwl0YmwJdjMuMTZiLCAgeyRpbnZsb30sdjAuMTZiCS8vIHZwc2h1ZmIJJXhtbTAsIAkleG1t
MTAsCSV4bW0zICAJIyAzID0gMS9pCisJIHRibAl2MTEuMTZiLCB7JGludmxvfSx2OC4xNmIKKwl0
YmwJdjQuMTZiLCAgeyRpbnZsb30sdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsIAkleG1tMTAsCSV4
bW00ICAJIyA0ID0gMS9qCisJIHRibAl2MTIuMTZiLCB7JGludmxvfSx2OS4xNmIKKwllb3IJdjMu
MTZiLCAgdjMuMTZiLCAgdjUuMTZiCS8vIHZweG9yCSV4bW01LAkleG1tMywJJXhtbTMJIyAzID0g
aWFrID0gMS9pICsgYS9rCisJIGVvcgl2MTEuMTZiLCB2MTEuMTZiLCB2MTMuMTZiCisJZW9yCXY0
LjE2YiwgIHY0LjE2YiwgIHY1LjE2YgkvLyB2cHhvcgkleG1tNSwJJXhtbTQsCSV4bW00ICAJIyA0
ID0gamFrID0gMS9qICsgYS9rCisJIGVvcgl2MTIuMTZiLCB2MTIuMTZiLCB2MTMuMTZiCisJdGJs
CXYyLjE2YiwgIHskaW52bG99LHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTAsCSV4bW0y
ICAJIyAyID0gMS9pYWsKKwkgdGJsCXYxMC4xNmIsIHskaW52bG99LHYxMS4xNmIKKwl0YmwJdjMu
MTZiLCAgeyRpbnZsb30sdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0xMCwJJXhtbTMJIyAz
ID0gMS9qYWsKKwkgdGJsCXYxMS4xNmIsIHskaW52bG99LHYxMi4xNmIKKwllb3IJdjIuMTZiLCAg
djIuMTZiLCAgdjEuMTZiCS8vIHZweG9yCSV4bW0xLAkleG1tMiwJJXhtbTIgIAkjIDIgPSBpbwor
CSBlb3IJdjEwLjE2YiwgdjEwLjE2YiwgdjkuMTZiCisJZW9yCXYzLjE2YiwgIHYzLjE2YiwgIHYw
LjE2YgkvLyB2cHhvcgkleG1tMCwJJXhtbTMsCSV4bW0zCSMgMyA9IGpvCisJIGVvcgl2MTEuMTZi
LCB2MTEuMTZiLCB2OC4xNmIKKwlsZDEJe3YxNi4yZH0sIFt4OV0sIzE2CQkvLyB2bW92ZHF1CSgl
cjkpLAkleG1tNQorCWNibnoJdzgsIC5MZW5jXzJ4X2xvb3AKKworCS8vIG1pZGRsZSBvZiBsYXN0
IHJvdW5kCisJYWRkCXgxMCwgeDExLCAjMHg4MAorCQkJCQkJLy8gdm1vdmRxYQktMHg2MCglcjEw
KSwgJXhtbTQJIyAzIDogc2JvdQkuTGtfc2JvCisJCQkJCQkvLyB2bW92ZHFhCS0weDUwKCVyMTAp
LCAleG1tMAkjIDAgOiBzYm90CS5Ma19zYm8rMTYKKwl0YmwJdjQuMTZiLCAgeyRzYm91fSwgdjIu
MTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkjIDQgPSBzYm91CisJIHRibAl2MTIu
MTZiLCB7JHNib3V9LCB2MTAuMTZiCisJbGQxCXt2MS4yZH0sIFt4MTBdCQkJLy8gdm1vdmRxYQkw
eDQwKCVyMTEsJXIxMCksICV4bW0xCSMgLkxrX3NyW10KKwl0YmwJdjAuMTZiLCAgeyRzYm90fSwg
djMuMTZiCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0wLAkleG1tMAkjIDAgPSBzYjF0CisJIHRibAl2
OC4xNmIsICB7JHNib3R9LCB2MTEuMTZiCisJZW9yCXY0LjE2YiwgIHY0LjE2YiwgIHYxNi4xNmIJ
Ly8gdnB4b3IJJXhtbTUsCSV4bW00LAkleG1tNAkjIDQgPSBzYjF1ICsgaworCSBlb3IJdjEyLjE2
YiwgdjEyLjE2YiwgdjE2LjE2YgorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2NC4xNmIJLy8gdnB4
b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkjIDAgPSBBCisJIGVvcgl2OC4xNmIsICB2OC4xNmIsICB2
MTIuMTZiCisJdGJsCXYwLjE2YiwgIHt2MC4xNmJ9LHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkl
eG1tMCwJJXhtbTAKKwkgdGJsCXYxLjE2YiwgIHt2OC4xNmJ9LHYxLjE2YgorCXJldAorLnNpemUJ
X3ZwYWVzX2VuY3J5cHRfMngsLi1fdnBhZXNfZW5jcnlwdF8yeAorCisudHlwZQlfdnBhZXNfZGVj
cnlwdF9wcmVoZWF0LCVmdW5jdGlvbgorLmFsaWduCTQKK192cGFlc19kZWNyeXB0X3ByZWhlYXQ6
CisJYWRycAl4MTAsIDpwZ19oaTIxOi5Ma19pbnYKKwlhZGQJeDEwLCB4MTAsIDpsbzEyOi5Ma19p
bnYKKwltb3ZpCXYxNy4xNmIsICMweDBmCisJYWRycAl4MTEsIDpwZ19oaTIxOi5Ma19kaXB0CisJ
YWRkCXgxMSwgeDExLCA6bG8xMjouTGtfZGlwdAorCWxkMQl7djE4LjJkLXYxOS4yZH0sIFt4MTBd
LCMzMgkvLyAuTGtfaW52CisJbGQxCXt2MjAuMmQtdjIzLjJkfSwgW3gxMV0sIzY0CS8vIC5Ma19k
aXB0LCAuTGtfZHNibworCWxkMQl7djI0LjJkLXYyNy4yZH0sIFt4MTFdLCM2NAkvLyAuTGtfZHNi
OSwgLkxrX2RzYmQKKwlsZDEJe3YyOC4yZC12MzEuMmR9LCBbeDExXQkJLy8gLkxrX2RzYmIsIC5M
a19kc2JlCisJcmV0Cisuc2l6ZQlfdnBhZXNfZGVjcnlwdF9wcmVoZWF0LC4tX3ZwYWVzX2RlY3J5
cHRfcHJlaGVhdAorCisjIworIyMgIERlY3J5cHRpb24gY29yZQorIyMKKyMjICBTYW1lIEFQSSBh
cyBlbmNyeXB0aW9uIGNvcmUuCisjIworLnR5cGUJX3ZwYWVzX2RlY3J5cHRfY29yZSwlZnVuY3Rp
b24KKy5hbGlnbgk0CitfdnBhZXNfZGVjcnlwdF9jb3JlOgorCW1vdgl4OSwgJGtleQorCWxkcgl3
OCwgWyRrZXksIzI0MF0JCQkvLyBwdWxsIHJvdW5kcworCisJCQkJCQkvLyB2bW92ZHFhCS5Ma19k
aXB0KCVyaXApLCAleG1tMgkjIGlwdGxvCisJbHNsCXgxMSwgeDgsICM0CQkJLy8gbW92CSVyYXgs
CSVyMTE7CXNobAlcJDQsICVyMTEKKwllb3IJeDExLCB4MTEsICMweDMwCQkJLy8geG9yCQlcJDB4
MzAsCSVyMTEKKwlhZHJwCXgxMCwgOnBnX2hpMjE6LkxrX3NyCisJYWRkCXgxMCwgeDEwLCA6bG8x
MjouTGtfc3IKKwlhbmQJeDExLCB4MTEsICMweDMwCQkJLy8gYW5kCQlcJDB4MzAsCSVyMTEKKwlh
ZGQJeDExLCB4MTEsIHgxMAorCWFkcnAJeDEwLCA6cGdfaGkyMTouTGtfbWNfZm9yd2FyZCs0OAor
CWFkZAl4MTAsIHgxMCwgOmxvMTI6LkxrX21jX2ZvcndhcmQrNDgKKworCWxkMQl7djE2LjJkfSwg
W3g5XSwjMTYJCS8vIHZtb3ZkcXUJKCVyOSksCSV4bW00CQkjIHJvdW5kMCBrZXkKKwlhbmQJdjEu
MTZiLCB2Ny4xNmIsIHYxNy4xNmIJCS8vIHZwYW5kCSV4bW05LAkleG1tMCwJJXhtbTEKKwl1c2hy
CXYwLjE2YiwgdjcuMTZiLCAjNAkJLy8gdnBzcmxiCVwkNCwJJXhtbTAsCSV4bW0wCisJdGJsCXYy
LjE2YiwgeyRpcHRsb30sIHYxLjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMiwJJXhtbTIKKwls
ZDEJe3Y1LjJkfSwgW3gxMF0JCQkvLyB2bW92ZHFhCS5Ma19tY19mb3J3YXJkKzQ4KCVyaXApLCAl
eG1tNQorCQkJCQkJLy8gdm1vdmRxYQkuTGtfZGlwdCsxNiglcmlwKSwgJXhtbTEgIyBpcHRoaQor
CXRibAl2MC4xNmIsIHskaXB0aGl9LCB2MC4xNmIJLy8gdnBzaHVmYgkleG1tMCwJJXhtbTEsCSV4
bW0wCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2MTYuMTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTIs
CSV4bW0yCisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1t
MCwJJXhtbTAKKwliCS5MZGVjX2VudHJ5CisKKy5hbGlnbiA0CisuTGRlY19sb29wOgorLy8KKy8v
ICBJbnZlcnNlIG1peCBjb2x1bW5zCisvLworCQkJCQkJLy8gdm1vdmRxYQktMHgyMCglcjEwKSwl
eG1tNAkJIyA0IDogc2I5dQorCQkJCQkJLy8gdm1vdmRxYQktMHgxMCglcjEwKSwleG1tMQkJIyAw
IDogc2I5dAorCXRibAl2NC4xNmIsIHskc2I5dX0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJ
JXhtbTQsCSV4bW00CQkjIDQgPSBzYjl1CisJdGJsCXYxLjE2YiwgeyRzYjl0fSwgdjMuMTZiCQkv
LyB2cHNodWZiCSV4bW0zLAkleG1tMSwJJXhtbTEJCSMgMCA9IHNiOXQKKwllb3IJdjAuMTZiLCB2
NC4xNmIsIHYxNi4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAKKwkJCQkJCS8vIHZt
b3ZkcWEJMHgwMCglcjEwKSwleG1tNAkJIyA0IDogc2JkdQorCWVvcgl2MC4xNmIsIHYwLjE2Yiwg
djEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTAsCSV4bW0wCQkjIDAgPSBjaAorCQkJCQkJLy8g
dm1vdmRxYQkweDEwKCVyMTApLCV4bW0xCQkjIDAgOiBzYmR0CisKKwl0YmwJdjQuMTZiLCB7JHNi
ZHV9LCB2Mi4xNmIJCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkJIyA0ID0gc2JkdQor
CXRibCAJdjAuMTZiLCB7djAuMTZifSwgdjUuMTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4bW0wLAkl
eG1tMAkJIyBNQyBjaAorCXRibAl2MS4xNmIsIHskc2JkdH0sIHYzLjE2YgkJLy8gdnBzaHVmYgkl
eG1tMywJJXhtbTEsCSV4bW0xCQkjIDAgPSBzYmR0CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2NC4x
NmIJCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJCSMgNCA9IGNoCisJCQkJCQkvLyB2bW92
ZHFhCTB4MjAoJXIxMCksCSV4bW00CQkjIDQgOiBzYmJ1CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2
MS4xNmIJCS8vIHZweG9yCSV4bW0xLAkleG1tMCwJJXhtbTAJCSMgMCA9IGNoCisJCQkJCQkvLyB2
bW92ZHFhCTB4MzAoJXIxMCksCSV4bW0xCQkjIDAgOiBzYmJ0CisKKwl0YmwJdjQuMTZiLCB7JHNi
YnV9LCB2Mi4xNmIJCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkJIyA0ID0gc2JidQor
CXRibAl2MC4xNmIsIHt2MC4xNmJ9LCB2NS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTAsCSV4
bW0wCQkjIE1DIGNoCisJdGJsCXYxLjE2YiwgeyRzYmJ0fSwgdjMuMTZiCQkvLyB2cHNodWZiCSV4
bW0zLAkleG1tMSwJJXhtbTEJCSMgMCA9IHNiYnQKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHY0LjE2
YgkJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkJIyA0ID0gY2gKKwkJCQkJCS8vIHZtb3Zk
cWEJMHg0MCglcjEwKSwJJXhtbTQJCSMgNCA6IHNiZXUKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYx
LjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyAwID0gY2gKKwkJCQkJCS8vIHZt
b3ZkcWEJMHg1MCglcjEwKSwJJXhtbTEJCSMgMCA6IHNiZXQKKworCXRibAl2NC4xNmIsIHskc2Jl
dX0sIHYyLjE2YgkJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CQkjIDQgPSBzYmV1CisJ
dGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHY1LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMCwJJXht
bTAJCSMgTUMgY2gKKwl0YmwJdjEuMTZiLCB7JHNiZXR9LCB2My4xNmIJCS8vIHZwc2h1ZmIJJXht
bTMsCSV4bW0xLAkleG1tMQkJIyAwID0gc2JldAorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjQuMTZi
CQkvLyB2cHhvcgkleG1tNCwJJXhtbTAsCSV4bW0wCQkjIDQgPSBjaAorCWV4dAl2NS4xNmIsIHY1
LjE2YiwgdjUuMTZiLCAjMTIJLy8gdnBhbGlnbnIgXCQxMiwJJXhtbTUsCSV4bW01LAkleG1tNQor
CWVvcgl2MC4xNmIsIHYwLjE2YiwgdjEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTAsCSV4bW0w
CQkjIDAgPSBjaAorCXN1Ygl3OCwgdzgsICMxCQkJLy8gc3ViCQlcJDEsJXJheAkJCSMgbnItLQor
CisuTGRlY19lbnRyeToKKwkvLyB0b3Agb2Ygcm91bmQKKwlhbmQJdjEuMTZiLCB2MC4xNmIsIHYx
Ny4xNmIJCS8vIHZwYW5kCSV4bW05LAkleG1tMCwJJXhtbTEJIyAwID0gaworCXVzaHIJdjAuMTZi
LCB2MC4xNmIsICM0CQkvLyB2cHNybGIJXCQ0LAkleG1tMCwJJXhtbTAJIyAxID0gaQorCXRibAl2
Mi4xNmIsIHskaW52aGl9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTExLAkleG1tMgkj
IDIgPSBhL2sKKwllb3IJdjEuMTZiLAl2MS4xNmIsIHYwLjE2YgkJLy8gdnB4b3IJJXhtbTAsCSV4
bW0xLAkleG1tMQkjIDAgPSBqCisJdGJsCXYzLjE2YiwgeyRpbnZsb30sIHYwLjE2YgkvLyB2cHNo
dWZiCSV4bW0wLCAJJXhtbTEwLAkleG1tMwkjIDMgPSAxL2kKKwl0YmwJdjQuMTZiLCB7JGludmxv
fSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0xMCwJJXhtbTQJIyA0ID0gMS9qCisJZW9y
CXYzLjE2YiwgdjMuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMJIyAz
ID0gaWFrID0gMS9pICsgYS9rCisJZW9yCXY0LjE2YiwgdjQuMTZiLCB2Mi4xNmIJCS8vIHZweG9y
CSV4bW0yLCAJJXhtbTQsCSV4bW00CSMgNCA9IGphayA9IDEvaiArIGEvaworCXRibAl2Mi4xNmIs
IHskaW52bG99LCB2My4xNmIJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEwLAkleG1tMgkjIDIgPSAx
L2lhaworCXRibAl2My4xNmIsIHskaW52bG99LCB2NC4xNmIJLy8gdnBzaHVmYgkleG1tNCwgICV4
bW0xMCwJJXhtbTMJIyAzID0gMS9qYWsKKwllb3IJdjIuMTZiLCB2Mi4xNmIsIHYxLjE2YgkJLy8g
dnB4b3IJJXhtbTEsCSV4bW0yLAkleG1tMgkjIDIgPSBpbworCWVvcgl2My4xNmIsIHYzLjE2Yiwg
djAuMTZiCQkvLyB2cHhvcgkleG1tMCwgICV4bW0zLAkleG1tMwkjIDMgPSBqbworCWxkMQl7djE2
LjJkfSwgW3g5XSwjMTYJCS8vIHZtb3ZkcXUJKCVyOSksCSV4bW0wCisJY2Juegl3OCwgLkxkZWNf
bG9vcAorCisJLy8gbWlkZGxlIG9mIGxhc3Qgcm91bmQKKwkJCQkJCS8vIHZtb3ZkcWEJMHg2MCgl
cjEwKSwJJXhtbTQJIyAzIDogc2JvdQorCXRibAl2NC4xNmIsIHskc2JvdX0sIHYyLjE2YgkJLy8g
dnBzaHVmYgkleG1tMiwJJXhtbTQsCSV4bW00CSMgNCA9IHNib3UKKwkJCQkJCS8vIHZtb3ZkcWEJ
MHg3MCglcjEwKSwJJXhtbTEJIyAwIDogc2JvdAorCWxkMQl7djIuMmR9LCBbeDExXQkJCS8vIHZt
b3ZkcWEJLTB4MTYwKCVyMTEpLAkleG1tMgkjIC5Ma19zci0uTGtfZHNiZD0tMHgxNjAKKwl0YmwJ
djEuMTZiLCB7JHNib3R9LCB2My4xNmIJCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xLAkleG1tMQkj
IDAgPSBzYjF0CisJZW9yCXY0LjE2YiwgdjQuMTZiLCB2MTYuMTZiCQkvLyB2cHhvcgkleG1tMCwJ
JXhtbTQsCSV4bW00CSMgNCA9IHNiMXUgKyBrCisJZW9yCXYwLjE2YiwgdjEuMTZiLCB2NC4xNmIJ
CS8vIHZweG9yCSV4bW00LAkleG1tMSwJJXhtbTAJIyAwID0gQQorCXRibAl2MC4xNmIsIHt2MC4x
NmJ9LCB2Mi4xNmIJLy8gdnBzaHVmYgkleG1tMiwJJXhtbTAsCSV4bW0wCisJcmV0Cisuc2l6ZQlf
dnBhZXNfZGVjcnlwdF9jb3JlLC4tX3ZwYWVzX2RlY3J5cHRfY29yZQorCisuZ2xvYmwJdnBhZXNf
ZGVjcnlwdAorLnR5cGUJdnBhZXNfZGVjcnlwdCwlZnVuY3Rpb24KKy5hbGlnbgk0Cit2cGFlc19k
ZWNyeXB0OgorCXN0cAl4MjkseDMwLFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNwLCMwCisKKwlsZDEJ
e3Y3LjE2Yn0sIFskaW5wXQorCWJsCV92cGFlc19kZWNyeXB0X3ByZWhlYXQKKwlibAlfdnBhZXNf
ZGVjcnlwdF9jb3JlCisJc3QxCXt2MC4xNmJ9LCBbJG91dF0KKworCWxkcAl4MjkseDMwLFtzcF0s
IzE2CisJcmV0Cisuc2l6ZQl2cGFlc19kZWNyeXB0LC4tdnBhZXNfZGVjcnlwdAorCisvLyB2MTQt
djE1IGlucHV0LCB2MC12MSBvdXRwdXQKKy50eXBlCV92cGFlc19kZWNyeXB0XzJ4LCVmdW5jdGlv
bgorLmFsaWduCTQKK192cGFlc19kZWNyeXB0XzJ4OgorCW1vdgl4OSwgJGtleQorCWxkcgl3OCwg
WyRrZXksIzI0MF0JCQkvLyBwdWxsIHJvdW5kcworCisJCQkJCQkvLyB2bW92ZHFhCS5Ma19kaXB0
KCVyaXApLCAleG1tMgkjIGlwdGxvCisJbHNsCXgxMSwgeDgsICM0CQkJLy8gbW92CSVyYXgsCSVy
MTE7CXNobAlcJDQsICVyMTEKKwllb3IJeDExLCB4MTEsICMweDMwCQkJLy8geG9yCQlcJDB4MzAs
CSVyMTEKKwlhZHJwCXgxMCwgOnBnX2hpMjE6LkxrX3NyCisJYWRkCXgxMCwgeDEwLCA6bG8xMjou
TGtfc3IKKwlhbmQJeDExLCB4MTEsICMweDMwCQkJLy8gYW5kCQlcJDB4MzAsCSVyMTEKKwlhZGQJ
eDExLCB4MTEsIHgxMAorCWFkcnAJeDEwLCA6cGdfaGkyMTouTGtfbWNfZm9yd2FyZCs0OAorCWFk
ZAl4MTAsIHgxMCwgOmxvMTI6LkxrX21jX2ZvcndhcmQrNDgKKworCWxkMQl7djE2LjJkfSwgW3g5
XSwjMTYJCS8vIHZtb3ZkcXUJKCVyOSksCSV4bW00CQkjIHJvdW5kMCBrZXkKKwlhbmQJdjEuMTZi
LCAgdjE0LjE2YiwgdjE3LjE2YgkvLyB2cGFuZAkleG1tOSwJJXhtbTAsCSV4bW0xCisJdXNocgl2
MC4xNmIsICB2MTQuMTZiLCAjNAkJLy8gdnBzcmxiCVwkNCwJJXhtbTAsCSV4bW0wCisJIGFuZAl2
OS4xNmIsICB2MTUuMTZiLCB2MTcuMTZiCisJIHVzaHIJdjguMTZiLCAgdjE1LjE2YiwgIzQKKwl0
YmwJdjIuMTZiLCAgeyRpcHRsb30sdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0yLAkleG1t
MgorCSB0YmwJdjEwLjE2YiwgeyRpcHRsb30sdjkuMTZiCisJbGQxCXt2NS4yZH0sIFt4MTBdCQkJ
Ly8gdm1vdmRxYQkuTGtfbWNfZm9yd2FyZCs0OCglcmlwKSwgJXhtbTUKKwkJCQkJCS8vIHZtb3Zk
cWEJLkxrX2RpcHQrMTYoJXJpcCksICV4bW0xICMgaXB0aGkKKwl0YmwJdjAuMTZiLCAgeyRpcHRo
aX0sdjAuMTZiCS8vIHZwc2h1ZmIJJXhtbTAsCSV4bW0xLAkleG1tMAorCSB0YmwJdjguMTZiLCAg
eyRpcHRoaX0sdjguMTZiCisJZW9yCXYyLjE2YiwgIHYyLjE2YiwgIHYxNi4xNmIJLy8gdnB4b3IJ
JXhtbTQsCSV4bW0yLAkleG1tMgorCSBlb3IJdjEwLjE2YiwgdjEwLjE2YiwgdjE2LjE2YgorCWVv
cgl2MC4xNmIsICB2MC4xNmIsICB2Mi4xNmIJLy8gdnB4b3IJJXhtbTIsCSV4bW0wLAkleG1tMAor
CSBlb3IJdjguMTZiLCAgdjguMTZiLCAgdjEwLjE2YgorCWIJLkxkZWNfMnhfZW50cnkKKworLmFs
aWduIDQKKy5MZGVjXzJ4X2xvb3A6CisvLworLy8gIEludmVyc2UgbWl4IGNvbHVtbnMKKy8vCisJ
CQkJCQkvLyB2bW92ZHFhCS0weDIwKCVyMTApLCV4bW00CQkjIDQgOiBzYjl1CisJCQkJCQkvLyB2
bW92ZHFhCS0weDEwKCVyMTApLCV4bW0xCQkjIDAgOiBzYjl0CisJdGJsCXY0LjE2YiwgIHskc2I5
dX0sIHYyLjE2YgkvLyB2cHNodWZiCSV4bW0yLAkleG1tNCwJJXhtbTQJCSMgNCA9IHNiOXUKKwkg
dGJsCXYxMi4xNmIsIHskc2I5dX0sIHYxMC4xNmIKKwl0YmwJdjEuMTZiLCAgeyRzYjl0fSwgdjMu
MTZiCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xLAkleG1tMQkJIyAwID0gc2I5dAorCSB0YmwJdjku
MTZiLCAgeyRzYjl0fSwgdjExLjE2YgorCWVvcgl2MC4xNmIsICB2NC4xNmIsICB2MTYuMTZiCS8v
IHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAKKwkgZW9yCXY4LjE2YiwgIHYxMi4xNmIsIHYxNi4x
NmIKKwkJCQkJCS8vIHZtb3ZkcWEJMHgwMCglcjEwKSwleG1tNAkJIyA0IDogc2JkdQorCWVvcgl2
MC4xNmIsICB2MC4xNmIsICB2MS4xNmIJLy8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyAw
ID0gY2gKKwkgZW9yCXY4LjE2YiwgIHY4LjE2YiwgIHY5LjE2YgkvLyB2cHhvcgkleG1tMSwJJXht
bTAsCSV4bW0wCQkjIDAgPSBjaAorCQkJCQkJLy8gdm1vdmRxYQkweDEwKCVyMTApLCV4bW0xCQkj
IDAgOiBzYmR0CisKKwl0YmwJdjQuMTZiLCAgeyRzYmR1fSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXht
bTIsCSV4bW00LAkleG1tNAkJIyA0ID0gc2JkdQorCSB0YmwJdjEyLjE2YiwgeyRzYmR1fSwgdjEw
LjE2YgorCXRibCAJdjAuMTZiLCAge3YwLjE2Yn0sdjUuMTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4
bW0wLAkleG1tMAkJIyBNQyBjaAorCSB0YmwgCXY4LjE2YiwgIHt2OC4xNmJ9LHY1LjE2YgorCXRi
bAl2MS4xNmIsICB7JHNiZHR9LCB2My4xNmIJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEsCSV4bW0x
CQkjIDAgPSBzYmR0CisJIHRibAl2OS4xNmIsICB7JHNiZHR9LCB2MTEuMTZiCisJZW9yCXYwLjE2
YiwgIHYwLjE2YiwgIHY0LjE2YgkvLyB2cHhvcgkleG1tNCwJJXhtbTAsCSV4bW0wCQkjIDQgPSBj
aAorCSBlb3IJdjguMTZiLCAgdjguMTZiLCAgdjEyLjE2YgorCQkJCQkJLy8gdm1vdmRxYQkweDIw
KCVyMTApLAkleG1tNAkJIyA0IDogc2JidQorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2MS4xNmIJ
Ly8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyAwID0gY2gKKwkgZW9yCXY4LjE2YiwgIHY4
LjE2YiwgIHY5LjE2YgorCQkJCQkJLy8gdm1vdmRxYQkweDMwKCVyMTApLAkleG1tMQkJIyAwIDog
c2JidAorCisJdGJsCXY0LjE2YiwgIHskc2JidX0sIHYyLjE2YgkvLyB2cHNodWZiCSV4bW0yLAkl
eG1tNCwJJXhtbTQJCSMgNCA9IHNiYnUKKwkgdGJsCXYxMi4xNmIsIHskc2JidX0sIHYxMC4xNmIK
Kwl0YmwJdjAuMTZiLCAge3YwLjE2Yn0sdjUuMTZiCS8vIHZwc2h1ZmIJJXhtbTUsCSV4bW0wLAkl
eG1tMAkJIyBNQyBjaAorCSB0YmwJdjguMTZiLCAge3Y4LjE2Yn0sdjUuMTZiCisJdGJsCXYxLjE2
YiwgIHskc2JidH0sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMSwJJXhtbTEJCSMgMCA9
IHNiYnQKKwkgdGJsCXY5LjE2YiwgIHskc2JidH0sIHYxMS4xNmIKKwllb3IJdjAuMTZiLCAgdjAu
MTZiLCAgdjQuMTZiCS8vIHZweG9yCSV4bW00LAkleG1tMCwJJXhtbTAJCSMgNCA9IGNoCisJIGVv
cgl2OC4xNmIsICB2OC4xNmIsICB2MTIuMTZiCisJCQkJCQkvLyB2bW92ZHFhCTB4NDAoJXIxMCks
CSV4bW00CQkjIDQgOiBzYmV1CisJZW9yCXYwLjE2YiwgIHYwLjE2YiwgIHYxLjE2YgkvLyB2cHhv
cgkleG1tMSwJJXhtbTAsCSV4bW0wCQkjIDAgPSBjaAorCSBlb3IJdjguMTZiLCAgdjguMTZiLCAg
djkuMTZiCisJCQkJCQkvLyB2bW92ZHFhCTB4NTAoJXIxMCksCSV4bW0xCQkjIDAgOiBzYmV0CisK
Kwl0YmwJdjQuMTZiLCAgeyRzYmV1fSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkl
eG1tNAkJIyA0ID0gc2JldQorCSB0YmwJdjEyLjE2YiwgeyRzYmV1fSwgdjEwLjE2YgorCXRibAl2
MC4xNmIsICB7djAuMTZifSx2NS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTAsCSV4bW0wCQkj
IE1DIGNoCisJIHRibAl2OC4xNmIsICB7djguMTZifSx2NS4xNmIKKwl0YmwJdjEuMTZiLCAgeyRz
YmV0fSwgdjMuMTZiCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xLAkleG1tMQkJIyAwID0gc2JldAor
CSB0YmwJdjkuMTZiLCAgeyRzYmV0fSwgdjExLjE2YgorCWVvcgl2MC4xNmIsICB2MC4xNmIsICB2
NC4xNmIJLy8gdnB4b3IJJXhtbTQsCSV4bW0wLAkleG1tMAkJIyA0ID0gY2gKKwkgZW9yCXY4LjE2
YiwgIHY4LjE2YiwgIHYxMi4xNmIKKwlleHQJdjUuMTZiLCAgdjUuMTZiLCAgdjUuMTZiLCAjMTIJ
Ly8gdnBhbGlnbnIgXCQxMiwJJXhtbTUsCSV4bW01LAkleG1tNQorCWVvcgl2MC4xNmIsICB2MC4x
NmIsICB2MS4xNmIJLy8gdnB4b3IJJXhtbTEsCSV4bW0wLAkleG1tMAkJIyAwID0gY2gKKwkgZW9y
CXY4LjE2YiwgIHY4LjE2YiwgIHY5LjE2YgorCXN1Ygl3OCwgdzgsICMxCQkJLy8gc3ViCQlcJDEs
JXJheAkJCSMgbnItLQorCisuTGRlY18yeF9lbnRyeToKKwkvLyB0b3Agb2Ygcm91bmQKKwlhbmQJ
djEuMTZiLCAgdjAuMTZiLCAgdjE3LjE2YgkvLyB2cGFuZAkleG1tOSwJJXhtbTAsCSV4bW0xCSMg
MCA9IGsKKwl1c2hyCXYwLjE2YiwgIHYwLjE2YiwgICM0CQkvLyB2cHNybGIJXCQ0LAkleG1tMCwJ
JXhtbTAJIyAxID0gaQorCSBhbmQJdjkuMTZiLCAgdjguMTZiLCAgdjE3LjE2YgorCSB1c2hyCXY4
LjE2YiwgIHY4LjE2YiwgICM0CisJdGJsCXYyLjE2YiwgIHskaW52aGl9LHYxLjE2YgkvLyB2cHNo
dWZiCSV4bW0xLAkleG1tMTEsCSV4bW0yCSMgMiA9IGEvaworCSB0YmwJdjEwLjE2YiwgeyRpbnZo
aX0sdjkuMTZiCisJZW9yCXYxLjE2YiwJIHYxLjE2YiwgIHYwLjE2YgkvLyB2cHhvcgkleG1tMCwJ
JXhtbTEsCSV4bW0xCSMgMCA9IGoKKwkgZW9yCXY5LjE2YiwJIHY5LjE2YiwgIHY4LjE2YgorCXRi
bAl2My4xNmIsICB7JGludmxvfSx2MC4xNmIJLy8gdnBzaHVmYgkleG1tMCwgCSV4bW0xMCwJJXht
bTMJIyAzID0gMS9pCisJIHRibAl2MTEuMTZiLCB7JGludmxvfSx2OC4xNmIKKwl0YmwJdjQuMTZi
LCAgeyRpbnZsb30sdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEsCSV4bW0xMCwJJXhtbTQJIyA0ID0g
MS9qCisJIHRibAl2MTIuMTZiLCB7JGludmxvfSx2OS4xNmIKKwllb3IJdjMuMTZiLCAgdjMuMTZi
LCAgdjIuMTZiCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMJIyAzID0gaWFrID0gMS9pICsg
YS9rCisJIGVvcgl2MTEuMTZiLCB2MTEuMTZiLCB2MTAuMTZiCisJZW9yCXY0LjE2YiwgIHY0LjE2
YiwgIHYyLjE2YgkvLyB2cHhvcgkleG1tMiwgCSV4bW00LAkleG1tNAkjIDQgPSBqYWsgPSAxL2og
KyBhL2sKKwkgZW9yCXYxMi4xNmIsIHYxMi4xNmIsIHYxMC4xNmIKKwl0YmwJdjIuMTZiLCAgeyRp
bnZsb30sdjMuMTZiCS8vIHZwc2h1ZmIJJXhtbTMsCSV4bW0xMCwJJXhtbTIJIyAyID0gMS9pYWsK
KwkgdGJsCXYxMC4xNmIsIHskaW52bG99LHYxMS4xNmIKKwl0YmwJdjMuMTZiLCAgeyRpbnZsb30s
djQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsICAleG1tMTAsCSV4bW0zCSMgMyA9IDEvamFrCisJIHRi
bAl2MTEuMTZiLCB7JGludmxvfSx2MTIuMTZiCisJZW9yCXYyLjE2YiwgIHYyLjE2YiwgIHYxLjE2
YgkvLyB2cHhvcgkleG1tMSwJJXhtbTIsCSV4bW0yCSMgMiA9IGlvCisJIGVvcgl2MTAuMTZiLCB2
MTAuMTZiLCB2OS4xNmIKKwllb3IJdjMuMTZiLCAgdjMuMTZiLCAgdjAuMTZiCS8vIHZweG9yCSV4
bW0wLCAgJXhtbTMsCSV4bW0zCSMgMyA9IGpvCisJIGVvcgl2MTEuMTZiLCB2MTEuMTZiLCB2OC4x
NmIKKwlsZDEJe3YxNi4yZH0sIFt4OV0sIzE2CQkvLyB2bW92ZHF1CSglcjkpLAkleG1tMAorCWNi
bnoJdzgsIC5MZGVjXzJ4X2xvb3AKKworCS8vIG1pZGRsZSBvZiBsYXN0IHJvdW5kCisJCQkJCQkv
LyB2bW92ZHFhCTB4NjAoJXIxMCksCSV4bW00CSMgMyA6IHNib3UKKwl0YmwJdjQuMTZiLCAgeyRz
Ym91fSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW00LAkleG1tNAkjIDQgPSBzYm91CisJ
IHRibAl2MTIuMTZiLCB7JHNib3V9LCB2MTAuMTZiCisJCQkJCQkvLyB2bW92ZHFhCTB4NzAoJXIx
MCksCSV4bW0xCSMgMCA6IHNib3QKKwl0YmwJdjEuMTZiLCAgeyRzYm90fSwgdjMuMTZiCS8vIHZw
c2h1ZmIJJXhtbTMsCSV4bW0xLAkleG1tMQkjIDAgPSBzYjF0CisJIHRibAl2OS4xNmIsICB7JHNi
b3R9LCB2MTEuMTZiCisJbGQxCXt2Mi4yZH0sIFt4MTFdCQkJLy8gdm1vdmRxYQktMHgxNjAoJXIx
MSksCSV4bW0yCSMgLkxrX3NyLS5Ma19kc2JkPS0weDE2MAorCWVvcgl2NC4xNmIsICB2NC4xNmIs
ICB2MTYuMTZiCS8vIHZweG9yCSV4bW0wLAkleG1tNCwJJXhtbTQJIyA0ID0gc2IxdSArIGsKKwkg
ZW9yCXYxMi4xNmIsIHYxMi4xNmIsIHYxNi4xNmIKKwllb3IJdjAuMTZiLCAgdjEuMTZiLCAgdjQu
MTZiCS8vIHZweG9yCSV4bW00LAkleG1tMSwJJXhtbTAJIyAwID0gQQorCSBlb3IJdjguMTZiLCAg
djkuMTZiLCAgdjEyLjE2YgorCXRibAl2MC4xNmIsICB7djAuMTZifSx2Mi4xNmIJLy8gdnBzaHVm
YgkleG1tMiwJJXhtbTAsCSV4bW0wCisJIHRibAl2MS4xNmIsICB7djguMTZifSx2Mi4xNmIKKwly
ZXQKKy5zaXplCV92cGFlc19kZWNyeXB0XzJ4LC4tX3ZwYWVzX2RlY3J5cHRfMngKK19fXworfQwK
K3sKK215ICgkaW5wLCRiaXRzLCRvdXQsJGRpcik9KCJ4MCIsIncxIiwieDIiLCJ3MyIpOworbXkg
KCRpbnZsbywkaW52aGksJGlwdGxvLCRpcHRoaSwkcmNvbikgPSBtYXAoInYkXy4xNmIiLCgxOC4u
MjEsOCkpOworCiskY29kZS49PDxfX187CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyMKKyMjICAgICAgICAgICAgICAgICAgQUVTIGtleSBz
Y2hlZHVsZSAgICAgICAgICAgICAgICAgICMjCisjIyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy50eXBlCV92cGFlc19rZXlfcHJlaGVhdCwl
ZnVuY3Rpb24KKy5hbGlnbgk0CitfdnBhZXNfa2V5X3ByZWhlYXQ6CisJYWRycAl4MTAsIDpwZ19o
aTIxOi5Ma19pbnYKKwlhZGQJeDEwLCB4MTAsIDpsbzEyOi5Ma19pbnYKKwltb3ZpCXYxNi4xNmIs
ICMweDViCQkJLy8gLkxrX3M2MworCWFkcnAJeDExLCA6cGdfaGkyMTouTGtfc2IxCisJYWRkCXgx
MSwgeDExLCA6bG8xMjouTGtfc2IxCisJbW92aQl2MTcuMTZiLCAjMHgwZgkJCS8vIC5Ma19zMEYK
KwlsZDEJe3YxOC4yZC12MjEuMmR9LCBbeDEwXQkJLy8gLkxrX2ludiwgLkxrX2lwdAorCWFkcnAJ
eDEwLCA6cGdfaGkyMTouTGtfZGtzZAorCWFkZAl4MTAsIHgxMCwgOmxvMTI6LkxrX2Rrc2QKKwls
ZDEJe3YyMi4yZC12MjMuMmR9LCBbeDExXQkJLy8gLkxrX3NiMQorCWFkcnAJeDExLCA6cGdfaGky
MTouTGtfbWNfZm9yd2FyZAorCWFkZAl4MTEsIHgxMSwgOmxvMTI6LkxrX21jX2ZvcndhcmQKKwls
ZDEJe3YyNC4yZC12MjcuMmR9LCBbeDEwXSwjNjQJLy8gLkxrX2Rrc2QsIC5Ma19ka3NiCisJbGQx
CXt2MjguMmQtdjMxLjJkfSwgW3gxMF0sIzY0CS8vIC5Ma19ka3NlLCAuTGtfZGtzOQorCWxkMQl7
djguMmR9LCBbeDEwXQkJCS8vIC5Ma19yY29uCisJbGQxCXt2OS4yZH0sIFt4MTFdCQkJLy8gLkxr
X21jX2ZvcndhcmRbMF0KKwlyZXQKKy5zaXplCV92cGFlc19rZXlfcHJlaGVhdCwuLV92cGFlc19r
ZXlfcHJlaGVhdAorCisudHlwZQlfdnBhZXNfc2NoZWR1bGVfY29yZSwlZnVuY3Rpb24KKy5hbGln
bgk0CitfdnBhZXNfc2NoZWR1bGVfY29yZToKKwlzdHAJeDI5LCB4MzAsIFtzcCwjLTE2XSEKKwlh
ZGQJeDI5LHNwLCMwCisKKwlibAlfdnBhZXNfa2V5X3ByZWhlYXQJCS8vIGxvYWQgdGhlIHRhYmxl
cworCisJbGQxCXt2MC4xNmJ9LCBbJGlucF0sIzE2CQkvLyB2bW92ZHF1CSglcmRpKSwJJXhtbTAJ
CSMgbG9hZCBrZXkgKHVuYWxpZ25lZCkKKworCS8vIGlucHV0IHRyYW5zZm9ybQorCW1vdgl2My4x
NmIsIHYwLjE2YgkJCS8vIHZtb3ZkcWEJJXhtbTAsCSV4bW0zCisJYmwJX3ZwYWVzX3NjaGVkdWxl
X3RyYW5zZm9ybQorCW1vdgl2Ny4xNmIsIHYwLjE2YgkJCS8vIHZtb3ZkcWEJJXhtbTAsCSV4bW03
CisKKwlhZHJwCXgxMCwgOnBnX2hpMjE6LkxrX3NyCQkvLyBsZWEJLkxrX3NyKCVyaXApLCVyMTAK
KwlhZGQJeDEwLCB4MTAsIDpsbzEyOi5Ma19zcgorCisJYWRkCXg4LCB4OCwgeDEwCisJY2Juegkk
ZGlyLCAuTHNjaGVkdWxlX2FtX2RlY3J5cHRpbmcKKworCS8vIGVuY3J5cHRpbmcsIG91dHB1dCB6
ZXJvdGggcm91bmQga2V5IGFmdGVyIHRyYW5zZm9ybQorCXN0MQl7djAuMmR9LCBbJG91dF0JCQkv
LyB2bW92ZHF1CSV4bW0wLAkoJXJkeCkKKwliCS5Mc2NoZWR1bGVfZ28KKworLkxzY2hlZHVsZV9h
bV9kZWNyeXB0aW5nOgorCS8vIGRlY3J5cHRpbmcsIG91dHB1dCB6ZXJvdGggcm91bmQga2V5IGFm
dGVyIHNoaWZ0cm93cworCWxkMQl7djEuMmR9LCBbeDhdCQkJLy8gdm1vdmRxYQkoJXI4LCVyMTAp
LAkleG1tMQorCXRibAl2My4xNmIsIHt2My4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYiAgJXhtbTEs
CSV4bW0zLAkleG1tMworCXN0MQl7djMuMmR9LCBbJG91dF0JCQkvLyB2bW92ZHF1CSV4bW0zLAko
JXJkeCkKKwllb3IJeDgsIHg4LCAjMHgzMAkJCS8vIHhvcglcJDB4MzAsICVyOAorCisuTHNjaGVk
dWxlX2dvOgorCWNtcAkkYml0cywgIzE5MgkJCS8vIGNtcAlcJDE5MiwJJWVzaQorCWIuaGkJLkxz
Y2hlZHVsZV8yNTYKKwliLmVxCS5Mc2NoZWR1bGVfMTkyCisJLy8gMTI4OiBmYWxsIHRob3VnaAor
CisjIworIyMgIC5zY2hlZHVsZV8xMjgKKyMjCisjIyAgMTI4LWJpdCBzcGVjaWZpYyBwYXJ0IG9m
IGtleSBzY2hlZHVsZS4KKyMjCisjIyAgVGhpcyBzY2hlZHVsZSBpcyByZWFsbHkgc2ltcGxlLCBi
ZWNhdXNlIGFsbCBpdHMgcGFydHMKKyMjICBhcmUgYWNjb21wbGlzaGVkIGJ5IHRoZSBzdWJyb3V0
aW5lcy4KKyMjCisuTHNjaGVkdWxlXzEyODoKKwltb3YJJGlucCwgIzEwCQkJLy8gbW92CVwkMTAs
ICVlc2kKKworLkxvb3Bfc2NoZWR1bGVfMTI4OgorCXN1YgkkaW5wLCAkaW5wLCAjMQkJCS8vIGRl
YwklZXNpCisJYmwgCV92cGFlc19zY2hlZHVsZV9yb3VuZAorCWNieiAJJGlucCwgLkxzY2hlZHVs
ZV9tYW5nbGVfbGFzdAorCWJsCV92cGFlc19zY2hlZHVsZV9tYW5nbGUJCS8vIHdyaXRlIG91dHB1
dAorCWIgCS5Mb29wX3NjaGVkdWxlXzEyOAorCisjIworIyMgIC5hZXNfc2NoZWR1bGVfMTkyCisj
IworIyMgIDE5Mi1iaXQgc3BlY2lmaWMgcGFydCBvZiBrZXkgc2NoZWR1bGUuCisjIworIyMgIFRo
ZSBtYWluIGJvZHkgb2YgdGhpcyBzY2hlZHVsZSBpcyB0aGUgc2FtZSBhcyB0aGUgMTI4LWJpdAor
IyMgIHNjaGVkdWxlLCBidXQgd2l0aCBtb3JlIHNtZWFyaW5nLiAgVGhlIGxvbmcsIGhpZ2ggc2lk
ZSBpcworIyMgIHN0b3JlZCBpbiAleG1tNyBhcyBiZWZvcmUsIGFuZCB0aGUgc2hvcnQsIGxvdyBz
aWRlIGlzIGluCisjIyAgdGhlIGhpZ2ggYml0cyBvZiAleG1tNi4KKyMjCisjIyAgVGhpcyBzY2hl
ZHVsZSBpcyBzb21ld2hhdCBuYXN0aWVyLCBob3dldmVyLCBiZWNhdXNlIGVhY2gKKyMjICByb3Vu
ZCBwcm9kdWNlcyAxOTIgYml0cyBvZiBrZXkgbWF0ZXJpYWwsIG9yIDEuNSByb3VuZCBrZXlzLgor
IyMgIFRoZXJlZm9yZSwgb24gZWFjaCBjeWNsZSB3ZSBkbyAyIHJvdW5kcyBhbmQgcHJvZHVjZSAz
IHJvdW5kCisjIyAga2V5cy4KKyMjCisuYWxpZ24JNAorLkxzY2hlZHVsZV8xOTI6CisJc3ViCSRp
bnAsICRpbnAsICM4CisJbGQxCXt2MC4xNmJ9LCBbJGlucF0JCS8vIHZtb3ZkcXUJOCglcmRpKSwl
eG1tMAkJIyBsb2FkIGtleSBwYXJ0IDIgKHZlcnkgdW5hbGlnbmVkKQorCWJsCV92cGFlc19zY2hl
ZHVsZV90cmFuc2Zvcm0JLy8gaW5wdXQgdHJhbnNmb3JtCisJbW92CXY2LjE2YiwgdjAuMTZiCQkJ
Ly8gdm1vdmRxYQkleG1tMCwJJXhtbTYJCSMgc2F2ZSBzaG9ydCBwYXJ0CisJZW9yCXY0LjE2Yiwg
djQuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkleG1tNCwgJXhtbTQJIyBjbGVhciA0CisJ
aW5zCXY2LmRbMF0sIHY0LmRbMF0JCS8vIHZtb3ZobHBzCSV4bW00LAkleG1tNiwJJXhtbTYJCSMg
Y2xvYmJlciBsb3cgc2lkZSB3aXRoIHplcm9zCisJbW92CSRpbnAsICM0CQkJLy8gbW92CVwkNCwJ
JWVzaQorCisuTG9vcF9zY2hlZHVsZV8xOTI6CisJc3ViCSRpbnAsICRpbnAsICMxCQkJLy8gZGVj
CSVlc2kKKwlibAlfdnBhZXNfc2NoZWR1bGVfcm91bmQKKwlleHQJdjAuMTZiLCB2Ni4xNmIsIHYw
LjE2YiwgIzgJLy8gdnBhbGlnbnIJXCQ4LCV4bW02LCV4bW0wLCV4bW0wCisJYmwJX3ZwYWVzX3Nj
aGVkdWxlX21hbmdsZQkJLy8gc2F2ZSBrZXkgbgorCWJsCV92cGFlc19zY2hlZHVsZV8xOTJfc21l
YXIKKwlibAlfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlCQkvLyBzYXZlIGtleSBuKzEKKwlibAlfdnBh
ZXNfc2NoZWR1bGVfcm91bmQKKwljYnogCSRpbnAsIC5Mc2NoZWR1bGVfbWFuZ2xlX2xhc3QKKwli
bAlfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlCQkvLyBzYXZlIGtleSBuKzIKKwlibAlfdnBhZXNfc2No
ZWR1bGVfMTkyX3NtZWFyCisJYgkuTG9vcF9zY2hlZHVsZV8xOTIKKworIyMKKyMjICAuYWVzX3Nj
aGVkdWxlXzI1NgorIyMKKyMjICAyNTYtYml0IHNwZWNpZmljIHBhcnQgb2Yga2V5IHNjaGVkdWxl
LgorIyMKKyMjICBUaGUgc3RydWN0dXJlIGhlcmUgaXMgdmVyeSBzaW1pbGFyIHRvIHRoZSAxMjgt
Yml0CisjIyAgc2NoZWR1bGUsIGJ1dCB3aXRoIGFuIGFkZGl0aW9uYWwgImxvdyBzaWRlIiBpbgor
IyMgICV4bW02LiAgVGhlIGxvdyBzaWRlJ3Mgcm91bmRzIGFyZSB0aGUgc2FtZSBhcyB0aGUKKyMj
ICBoaWdoIHNpZGUncywgZXhjZXB0IG5vIHJjb24gYW5kIG5vIHJvdGF0aW9uLgorIyMKKy5hbGln
bgk0CisuTHNjaGVkdWxlXzI1NjoKKwlsZDEJe3YwLjE2Yn0sIFskaW5wXQkJLy8gdm1vdmRxdQkx
NiglcmRpKSwleG1tMAkJIyBsb2FkIGtleSBwYXJ0IDIgKHVuYWxpZ25lZCkKKwlibAlfdnBhZXNf
c2NoZWR1bGVfdHJhbnNmb3JtCS8vIGlucHV0IHRyYW5zZm9ybQorCW1vdgkkaW5wLCAjNwkJCS8v
IG1vdglcJDcsICVlc2kKKworLkxvb3Bfc2NoZWR1bGVfMjU2OgorCXN1YgkkaW5wLCAkaW5wLCAj
MQkJCS8vIGRlYwklZXNpCisJYmwJX3ZwYWVzX3NjaGVkdWxlX21hbmdsZQkJLy8gb3V0cHV0IGxv
dyByZXN1bHQKKwltb3YJdjYuMTZiLCB2MC4xNmIJCQkvLyB2bW92ZHFhCSV4bW0wLAkleG1tNgkJ
IyBzYXZlIGN1cl9sbyBpbiB4bW02CisKKwkvLyBoaWdoIHJvdW5kCisJYmwJX3ZwYWVzX3NjaGVk
dWxlX3JvdW5kCisJY2J6IAkkaW5wLCAuTHNjaGVkdWxlX21hbmdsZV9sYXN0CisJYmwJX3ZwYWVz
X3NjaGVkdWxlX21hbmdsZQorCisJLy8gbG93IHJvdW5kLiBzd2FwIHhtbTcgYW5kIHhtbTYKKwlk
dXAJdjAuNHMsIHYwLnNbM10JCQkvLyB2cHNodWZkCVwkMHhGRiwJJXhtbTAsCSV4bW0wCisJbW92
aQl2NC4xNmIsICMwCisJbW92CXY1LjE2YiwgdjcuMTZiCQkJLy8gdm1vdmRxYQkleG1tNywJJXht
bTUKKwltb3YJdjcuMTZiLCB2Ni4xNmIJCQkvLyB2bW92ZHFhCSV4bW02LAkleG1tNworCWJsCV92
cGFlc19zY2hlZHVsZV9sb3dfcm91bmQKKwltb3YJdjcuMTZiLCB2NS4xNmIJCQkvLyB2bW92ZHFh
CSV4bW01LAkleG1tNworCisJYgkuTG9vcF9zY2hlZHVsZV8yNTYKKworIyMKKyMjICAuYWVzX3Nj
aGVkdWxlX21hbmdsZV9sYXN0CisjIworIyMgIE1hbmdsZXIgZm9yIGxhc3Qgcm91bmQgb2Yga2V5
IHNjaGVkdWxlCisjIyAgTWFuZ2xlcyAleG1tMAorIyMgICAgd2hlbiBlbmNyeXB0aW5nLCBvdXRw
dXRzIG91dCgleG1tMCkgXiA2MworIyMgICAgd2hlbiBkZWNyeXB0aW5nLCBvdXRwdXRzIHVuc2tl
dygleG1tMCkKKyMjCisjIyAgQWx3YXlzIGNhbGxlZCByaWdodCBiZWZvcmUgcmV0dXJuLi4uIGp1
bXBzIHRvIGNsZWFudXAgYW5kIGV4aXRzCisjIworLmFsaWduCTQKKy5Mc2NoZWR1bGVfbWFuZ2xl
X2xhc3Q6CisJLy8gc2NoZWR1bGUgbGFzdCByb3VuZCBrZXkgZnJvbSB4bW0wCisJYWRycAl4MTEs
IDpwZ19oaTIxOi5Ma19kZXNrZXcJLy8gbGVhCS5Ma19kZXNrZXcoJXJpcCksJXIxMQkjIHByZXBh
cmUgdG8gZGVza2V3CisJYWRkCXgxMSwgeDExLCA6bG8xMjouTGtfZGVza2V3CisKKwljYm56CSRk
aXIsIC5Mc2NoZWR1bGVfbWFuZ2xlX2xhc3RfZGVjCisKKwkvLyBlbmNyeXB0aW5nCisJbGQxCXt2
MS4yZH0sIFt4OF0JCQkvLyB2bW92ZHFhCSglcjgsJXIxMCksJXhtbTEKKwlhZHJwCXgxMSwgOnBn
X2hpMjE6LkxrX29wdAkJLy8gbGVhCS5Ma19vcHQoJXJpcCksCSVyMTEJCSMgcHJlcGFyZSB0byBv
dXRwdXQgdHJhbnNmb3JtCisJYWRkCXgxMSwgeDExLCA6bG8xMjouTGtfb3B0CisJYWRkCSRvdXQs
ICRvdXQsICMzMgkJCS8vIGFkZAlcJDMyLAklcmR4CisJdGJsCXYwLjE2Yiwge3YwLjE2Yn0sIHYx
LjE2YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMCwJJXhtbTAJCSMgb3V0cHV0IHBlcm11dGUKKwor
LkxzY2hlZHVsZV9tYW5nbGVfbGFzdF9kZWM6CisJbGQxCXt2MjAuMmQtdjIxLjJkfSwgW3gxMV0J
CS8vIHJlbG9hZCBjb25zdGFudHMKKwlzdWIJJG91dCwgJG91dCwgIzE2CQkJLy8gYWRkCVwkLTE2
LAklcmR4CisJZW9yCXYwLjE2YiwgdjAuMTZiLCB2MTYuMTZiCQkvLyB2cHhvcgkuTGtfczYzKCVy
aXApLAkleG1tMCwJJXhtbTAKKwlibAlfdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3JtCS8vIG91dHB1
dCB0cmFuc2Zvcm0KKwlzdDEJe3YwLjJkfSwgWyRvdXRdCQkJLy8gdm1vdmRxdQkleG1tMCwJKCVy
ZHgpCQkjIHNhdmUgbGFzdCBrZXkKKworCS8vIGNsZWFudXAKKwllb3IJdjAuMTZiLCB2MC4xNmIs
IHYwLjE2YgkJLy8gdnB4b3IJJXhtbTAsCSV4bW0wLAkleG1tMAorCWVvcgl2MS4xNmIsIHYxLjE2
YiwgdjEuMTZiCQkvLyB2cHhvcgkleG1tMSwJJXhtbTEsCSV4bW0xCisJZW9yCXYyLjE2YiwgdjIu
MTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMiwJJXhtbTIKKwllb3IJdjMuMTZiLCB2
My4xNmIsIHYzLjE2YgkJLy8gdnB4b3IJJXhtbTMsCSV4bW0zLAkleG1tMworCWVvcgl2NC4xNmIs
IHY0LjE2YiwgdjQuMTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTQsCSV4bW00CisJZW9yCXY1LjE2
YiwgdjUuMTZiLCB2NS4xNmIJCS8vIHZweG9yCSV4bW01LAkleG1tNSwJJXhtbTUKKwllb3IJdjYu
MTZiLCB2Ni4xNmIsIHY2LjE2YgkJLy8gdnB4b3IJJXhtbTYsCSV4bW02LAkleG1tNgorCWVvcgl2
Ny4xNmIsIHY3LjE2YiwgdjcuMTZiCQkvLyB2cHhvcgkleG1tNywJJXhtbTcsCSV4bW03CisJbGRw
CXgyOSwgeDMwLCBbc3BdLCMxNgorCXJldAorLnNpemUJX3ZwYWVzX3NjaGVkdWxlX2NvcmUsLi1f
dnBhZXNfc2NoZWR1bGVfY29yZQorCisjIworIyMgIC5hZXNfc2NoZWR1bGVfMTkyX3NtZWFyCisj
IworIyMgIFNtZWFyIHRoZSBzaG9ydCwgbG93IHNpZGUgaW4gdGhlIDE5Mi1iaXQga2V5IHNjaGVk
dWxlLgorIyMKKyMjICBJbnB1dHM6CisjIyAgICAleG1tNzogaGlnaCBzaWRlLCBiICBhICB4ICB5
CisjIyAgICAleG1tNjogIGxvdyBzaWRlLCBkICBjICAwICAwCisjIyAgICAleG1tMTM6IDAKKyMj
CisjIyAgT3V0cHV0czoKKyMjICAgICV4bW02OiBiK2MrZCAgYitjICAwICAwCisjIyAgICAleG1t
MDogYitjK2QgIGIrYyAgYiAgYQorIyMKKy50eXBlCV92cGFlc19zY2hlZHVsZV8xOTJfc21lYXIs
JWZ1bmN0aW9uCisuYWxpZ24JNAorX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVhcjoKKwltb3ZpCXYx
LjE2YiwgIzAKKwlkdXAJdjAuNHMsIHY3LnNbM10KKwlpbnMJdjEuc1szXSwgdjYuc1syXQkvLyB2
cHNodWZkCVwkMHg4MCwJJXhtbTYsCSV4bW0xCSMgZCBjIDAgMCAtPiBjIDAgMCAwCisJaW5zCXYw
LnNbMF0sIHY3LnNbMl0JLy8gdnBzaHVmZAlcJDB4RkUsCSV4bW03LAkleG1tMAkjIGIgYSBfIF8g
LT4gYiBiIGIgYQorCWVvcgl2Ni4xNmIsIHY2LjE2YiwgdjEuMTZiCS8vIHZweG9yCSV4bW0xLAkl
eG1tNiwJJXhtbTYJIyAtPiBjK2QgYyAwIDAKKwllb3IJdjEuMTZiLCB2MS4xNmIsIHYxLjE2Ygkv
LyB2cHhvcgkleG1tMSwJJXhtbTEsCSV4bW0xCisJZW9yCXY2LjE2YiwgdjYuMTZiLCB2MC4xNmIJ
Ly8gdnB4b3IJJXhtbTAsCSV4bW02LAkleG1tNgkjIC0+IGIrYytkIGIrYyBiIGEKKwltb3YJdjAu
MTZiLCB2Ni4xNmIJCS8vIHZtb3ZkcWEJJXhtbTYsCSV4bW0wCisJaW5zCXY2LmRbMF0sIHYxLmRb
MF0JLy8gdm1vdmhscHMJJXhtbTEsCSV4bW02LAkleG1tNgkjIGNsb2JiZXIgbG93IHNpZGUgd2l0
aCB6ZXJvcworCXJldAorLnNpemUJX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVhciwuLV92cGFlc19z
Y2hlZHVsZV8xOTJfc21lYXIKKworIyMKKyMjICAuYWVzX3NjaGVkdWxlX3JvdW5kCisjIworIyMg
IFJ1bnMgb25lIG1haW4gcm91bmQgb2YgdGhlIGtleSBzY2hlZHVsZSBvbiAleG1tMCwgJXhtbTcK
KyMjCisjIyAgU3BlY2lmaWNhbGx5LCBydW5zIHN1YmJ5dGVzIG9uIHRoZSBoaWdoIGR3b3JkIG9m
ICV4bW0wCisjIyAgdGhlbiByb3RhdGVzIGl0IGJ5IG9uZSBieXRlIGFuZCB4b3JzIGludG8gdGhl
IGxvdyBkd29yZCBvZgorIyMgICV4bW03LgorIyMKKyMjICBBZGRzIHJjb24gZnJvbSBsb3cgYnl0
ZSBvZiAleG1tOCwgdGhlbiByb3RhdGVzICV4bW04IGZvcgorIyMgIG5leHQgcmNvbi4KKyMjCisj
IyAgU21lYXJzIHRoZSBkd29yZHMgb2YgJXhtbTcgYnkgeG9yaW5nIHRoZSBsb3cgaW50byB0aGUK
KyMjICBzZWNvbmQgbG93LCByZXN1bHQgaW50byB0aGlyZCwgcmVzdWx0IGludG8gaGlnaGVzdC4K
KyMjCisjIyAgUmV0dXJucyByZXN1bHRzIGluICV4bW03ID0gJXhtbTAuCisjIyAgQ2xvYmJlcnMg
JXhtbTEtJXhtbTQsICVyMTEuCisjIworLnR5cGUJX3ZwYWVzX3NjaGVkdWxlX3JvdW5kLCVmdW5j
dGlvbgorLmFsaWduCTQKK192cGFlc19zY2hlZHVsZV9yb3VuZDoKKwkvLyBleHRyYWN0IHJjb24g
ZnJvbSB4bW04CisJbW92aQl2NC4xNmIsICMwCQkJLy8gdnB4b3IJJXhtbTQsCSV4bW00LAkleG1t
NAorCWV4dAl2MS4xNmIsICRyY29uLCB2NC4xNmIsICMxNQkvLyB2cGFsaWducglcJDE1LAkleG1t
OCwJJXhtbTQsCSV4bW0xCisJZXh0CSRyY29uLCAkcmNvbiwgJHJjb24sICMxNQkvLyB2cGFsaWdu
cglcJDE1LAkleG1tOCwJJXhtbTgsCSV4bW04CisJZW9yCXY3LjE2YiwgdjcuMTZiLCB2MS4xNmIJ
CS8vIHZweG9yCSV4bW0xLAkleG1tNywJJXhtbTcKKworCS8vIHJvdGF0ZQorCWR1cAl2MC40cywg
djAuc1szXQkJCS8vIHZwc2h1ZmQJXCQweEZGLAkleG1tMCwJJXhtbTAKKwlleHQJdjAuMTZiLCB2
MC4xNmIsIHYwLjE2YiwgIzEJLy8gdnBhbGlnbnIJXCQxLAkleG1tMCwJJXhtbTAsCSV4bW0wCisK
KwkvLyBmYWxsIHRocm91Z2guLi4KKworCS8vIGxvdyByb3VuZDogc2FtZSBhcyBoaWdoIHJvdW5k
LCBidXQgbm8gcm90YXRpb24gYW5kIG5vIHJjb24uCitfdnBhZXNfc2NoZWR1bGVfbG93X3JvdW5k
OgorCS8vIHNtZWFyIHhtbTcKKwlleHQJdjEuMTZiLCB2NC4xNmIsIHY3LjE2YiwgIzEyCS8vIHZw
c2xsZHEJXCQ0LAkleG1tNywJJXhtbTEKKwllb3IJdjcuMTZiLCB2Ny4xNmIsIHYxLjE2YgkJLy8g
dnB4b3IJJXhtbTEsCSV4bW03LAkleG1tNworCWV4dAl2NC4xNmIsIHY0LjE2YiwgdjcuMTZiLCAj
OAkvLyB2cHNsbGRxCVwkOCwJJXhtbTcsCSV4bW00CisKKwkvLyBzdWJieXRlcworCWFuZAl2MS4x
NmIsIHYwLjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTksCSV4bW0wLAkleG1tMQkJIyAwID0g
aworCXVzaHIJdjAuMTZiLCB2MC4xNmIsICM0CQkvLyB2cHNybGIJXCQ0LAkleG1tMCwJJXhtbTAJ
CSMgMSA9IGkKKwkgZW9yCXY3LjE2YiwgdjcuMTZiLCB2NC4xNmIJCS8vIHZweG9yCSV4bW00LAkl
eG1tNywJJXhtbTcKKwl0YmwJdjIuMTZiLCB7JGludmhpfSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXht
bTEsCSV4bW0xMSwJJXhtbTIJCSMgMiA9IGEvaworCWVvcgl2MS4xNmIsIHYxLjE2YiwgdjAuMTZi
CQkvLyB2cHhvcgkleG1tMCwJJXhtbTEsCSV4bW0xCQkjIDAgPSBqCisJdGJsCXYzLjE2YiwgeyRp
bnZsb30sIHYwLjE2YgkvLyB2cHNodWZiCSV4bW0wLCAJJXhtbTEwLAkleG1tMwkJIyAzID0gMS9p
CisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXht
bTMJCSMgMyA9IGlhayA9IDEvaSArIGEvaworCXRibAl2NC4xNmIsIHskaW52bG99LCB2MS4xNmIJ
Ly8gdnBzaHVmYgkleG1tMSwJJXhtbTEwLAkleG1tNAkJIyA0ID0gMS9qCisJIGVvcgl2Ny4xNmIs
IHY3LjE2YiwgdjE2LjE2YgkJLy8gdnB4b3IJLkxrX3M2MyglcmlwKSwJJXhtbTcsCSV4bW03CisJ
dGJsCXYzLjE2YiwgeyRpbnZsb30sIHYzLjE2YgkvLyB2cHNodWZiCSV4bW0zLAkleG1tMTAsCSV4
bW0zCQkjIDIgPSAxL2lhaworCWVvcgl2NC4xNmIsIHY0LjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkl
eG1tMiwJJXhtbTQsCSV4bW00CQkjIDQgPSBqYWsgPSAxL2ogKyBhL2sKKwl0YmwJdjIuMTZiLCB7
JGludmxvfSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0xMCwJJXhtbTIJCSMgMyA9IDEv
amFrCisJZW9yCXYzLjE2YiwgdjMuMTZiLCB2MS4xNmIJCS8vIHZweG9yCSV4bW0xLAkleG1tMywJ
JXhtbTMJCSMgMiA9IGlvCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2MC4xNmIJCS8vIHZweG9yCSV4
bW0wLAkleG1tMiwJJXhtbTIJCSMgMyA9IGpvCisJdGJsCXY0LjE2Yiwge3YyMy4xNmJ9LCB2My4x
NmIJLy8gdnBzaHVmYgkleG1tMywJJXhtbTEzLAkleG1tNAkJIyA0ID0gc2JvdQorCXRibAl2MS4x
NmIsIHt2MjIuMTZifSwgdjIuMTZiCS8vIHZwc2h1ZmIJJXhtbTIsCSV4bW0xMiwJJXhtbTEJCSMg
MCA9IHNiMXQKKwllb3IJdjEuMTZiLCB2MS4xNmIsIHY0LjE2YgkJLy8gdnB4b3IJJXhtbTQsCSV4
bW0xLAkleG1tMQkJIyAwID0gc2JveCBvdXRwdXQKKworCS8vIGFkZCBpbiBzbWVhcmVkIHN0dWZm
CisJZW9yCXYwLjE2YiwgdjEuMTZiLCB2Ny4xNmIJCS8vIHZweG9yCSV4bW03LAkleG1tMSwJJXht
bTAKKwllb3IJdjcuMTZiLCB2MS4xNmIsIHY3LjE2YgkJLy8gdm1vdmRxYQkleG1tMCwJJXhtbTcK
KwlyZXQKKy5zaXplCV92cGFlc19zY2hlZHVsZV9yb3VuZCwuLV92cGFlc19zY2hlZHVsZV9yb3Vu
ZAorCisjIworIyMgIC5hZXNfc2NoZWR1bGVfdHJhbnNmb3JtCisjIworIyMgIExpbmVhci10cmFu
c2Zvcm0gJXhtbTAgYWNjb3JkaW5nIHRvIHRhYmxlcyBhdCAoJXIxMSkKKyMjCisjIyAgUmVxdWly
ZXMgdGhhdCAleG1tOSA9IDB4MEYwRi4uLiBhcyBpbiBwcmVoZWF0CisjIyAgT3V0cHV0IGluICV4
bW0wCisjIyAgQ2xvYmJlcnMgJXhtbTEsICV4bW0yCisjIworLnR5cGUJX3ZwYWVzX3NjaGVkdWxl
X3RyYW5zZm9ybSwlZnVuY3Rpb24KKy5hbGlnbgk0CitfdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3Jt
OgorCWFuZAl2MS4xNmIsIHYwLjE2YiwgdjE3LjE2YgkJLy8gdnBhbmQJJXhtbTksCSV4bW0wLAkl
eG1tMQorCXVzaHIJdjAuMTZiLCB2MC4xNmIsICM0CQkvLyB2cHNybGIJXCQ0LAkleG1tMCwJJXht
bTAKKwkJCQkJCS8vIHZtb3ZkcWEJKCVyMTEpLAkleG1tMiAJIyBsbworCXRibAl2Mi4xNmIsIHsk
aXB0bG99LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTIsCSV4bW0yCisJCQkJCQkvLyB2
bW92ZHFhCTE2KCVyMTEpLAkleG1tMSAjIGhpCisJdGJsCXYwLjE2YiwgeyRpcHRoaX0sIHYwLjE2
YgkvLyB2cHNodWZiCSV4bW0wLAkleG1tMSwJJXhtbTAKKwllb3IJdjAuMTZiLCB2MC4xNmIsIHYy
LjE2YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW0wLAkleG1tMAorCXJldAorLnNpemUJX3ZwYWVzX3Nj
aGVkdWxlX3RyYW5zZm9ybSwuLV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0KKworIyMKKyMjICAu
YWVzX3NjaGVkdWxlX21hbmdsZQorIyMKKyMjICBNYW5nbGUgeG1tMCBmcm9tIChiYXNpcy10cmFu
c2Zvcm1lZCkgc3RhbmRhcmQgdmVyc2lvbgorIyMgIHRvIG91ciB2ZXJzaW9uLgorIyMKKyMjICBP
biBlbmNyeXB0LAorIyMgICAgeG9yIHdpdGggMHg2MworIyMgICAgbXVsdGlwbHkgYnkgY2lyY3Vs
YW50IDAsMSwxLDEKKyMjICAgIGFwcGx5IHNoaWZ0cm93cyB0cmFuc2Zvcm0KKyMjCisjIyAgT24g
ZGVjcnlwdCwKKyMjICAgIHhvciB3aXRoIDB4NjMKKyMjICAgIG11bHRpcGx5IGJ5ICJpbnZlcnNl
IG1peGNvbHVtbnMiIGNpcmN1bGFudCBFLEIsRCw5CisjIyAgICBkZXNrZXcKKyMjICAgIGFwcGx5
IHNoaWZ0cm93cyB0cmFuc2Zvcm0KKyMjCisjIworIyMgIFdyaXRlcyBvdXQgdG8gKCVyZHgpLCBh
bmQgaW5jcmVtZW50cyBvciBkZWNyZW1lbnRzIGl0CisjIyAgS2VlcHMgdHJhY2sgb2Ygcm91bmQg
bnVtYmVyIG1vZCA0IGluICVyOAorIyMgIFByZXNlcnZlcyB4bW0wCisjIyAgQ2xvYmJlcnMgeG1t
MS14bW01CisjIworLnR5cGUJX3ZwYWVzX3NjaGVkdWxlX21hbmdsZSwlZnVuY3Rpb24KKy5hbGln
bgk0CitfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlOgorCW1vdgl2NC4xNmIsIHYwLjE2YgkJCS8vIHZt
b3ZkcWEJJXhtbTAsCSV4bW00CSMgc2F2ZSB4bW0wIGZvciBsYXRlcgorCQkJCQkJLy8gdm1vdmRx
YQkuTGtfbWNfZm9yd2FyZCglcmlwKSwleG1tNQorCWNibnoJJGRpciwgLkxzY2hlZHVsZV9tYW5n
bGVfZGVjCisKKwkvLyBlbmNyeXB0aW5nCisJZW9yCXY0LjE2YiwgdjAuMTZiLCB2MTYuMTZiCQkv
LyB2cHhvcgkuTGtfczYzKCVyaXApLAkleG1tMCwJJXhtbTQKKwlhZGQJJG91dCwgJG91dCwgIzE2
CQkJLy8gYWRkCVwkMTYsCSVyZHgKKwl0YmwJdjQuMTZiLCB7djQuMTZifSwgdjkuMTZiCS8vIHZw
c2h1ZmIJJXhtbTUsCSV4bW00LAkleG1tNAorCXRibAl2MS4xNmIsIHt2NC4xNmJ9LCB2OS4xNmIJ
Ly8gdnBzaHVmYgkleG1tNSwJJXhtbTQsCSV4bW0xCisJdGJsCXYzLjE2Yiwge3YxLjE2Yn0sIHY5
LjE2YgkvLyB2cHNodWZiCSV4bW01LAkleG1tMSwJJXhtbTMKKwllb3IJdjQuMTZiLCB2NC4xNmIs
IHYxLjE2YgkJLy8gdnB4b3IJJXhtbTEsCSV4bW00LAkleG1tNAorCWxkMQl7djEuMmR9LCBbeDhd
CQkJLy8gdm1vdmRxYQkoJXI4LCVyMTApLAkleG1tMQorCWVvcgl2My4xNmIsIHYzLjE2YiwgdjQu
MTZiCQkvLyB2cHhvcgkleG1tNCwJJXhtbTMsCSV4bW0zCisKKwliCS5Mc2NoZWR1bGVfbWFuZ2xl
X2JvdGgKKy5hbGlnbgk0CisuTHNjaGVkdWxlX21hbmdsZV9kZWM6CisJLy8gaW52ZXJzZSBtaXgg
Y29sdW1ucworCQkJCQkJLy8gbGVhCS5Ma19ka3NkKCVyaXApLCVyMTEKKwl1c2hyCXYxLjE2Yiwg
djQuMTZiLCAjNAkJLy8gdnBzcmxiCVwkNCwJJXhtbTQsCSV4bW0xCSMgMSA9IGhpCisJYW5kCXY0
LjE2YiwgdjQuMTZiLCB2MTcuMTZiCQkvLyB2cGFuZAkleG1tOSwJJXhtbTQsCSV4bW00CSMgNCA9
IGxvCisKKwkJCQkJCS8vIHZtb3ZkcWEJMHgwMCglcjExKSwJJXhtbTIKKwl0YmwJdjIuMTZiLCB7
djI0LjE2Yn0sIHY0LjE2YgkvLyB2cHNodWZiCSV4bW00LAkleG1tMiwJJXhtbTIKKwkJCQkJCS8v
IHZtb3ZkcWEJMHgxMCglcjExKSwJJXhtbTMKKwl0YmwJdjMuMTZiLAl7djI1LjE2Yn0sIHYxLjE2
YgkvLyB2cHNodWZiCSV4bW0xLAkleG1tMywJJXhtbTMKKwllb3IJdjMuMTZiLCB2My4xNmIsIHYy
LjE2YgkJLy8gdnB4b3IJJXhtbTIsCSV4bW0zLAkleG1tMworCXRibAl2My4xNmIsIHt2My4xNmJ9
LCB2OS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTMsCSV4bW0zCisKKwkJCQkJCS8vIHZtb3Zk
cWEJMHgyMCglcjExKSwJJXhtbTIKKwl0YmwJdjIuMTZiLCB7djI2LjE2Yn0sIHY0LjE2YgkvLyB2
cHNodWZiCSV4bW00LAkleG1tMiwJJXhtbTIKKwllb3IJdjIuMTZiLCB2Mi4xNmIsIHYzLjE2YgkJ
Ly8gdnB4b3IJJXhtbTMsCSV4bW0yLAkleG1tMgorCQkJCQkJLy8gdm1vdmRxYQkweDMwKCVyMTEp
LAkleG1tMworCXRibAl2My4xNmIsIHt2MjcuMTZifSwgdjEuMTZiCS8vIHZwc2h1ZmIJJXhtbTEs
CSV4bW0zLAkleG1tMworCWVvcgl2My4xNmIsIHYzLjE2YiwgdjIuMTZiCQkvLyB2cHhvcgkleG1t
MiwJJXhtbTMsCSV4bW0zCisJdGJsCXYzLjE2Yiwge3YzLjE2Yn0sIHY5LjE2YgkvLyB2cHNodWZi
CSV4bW01LAkleG1tMywJJXhtbTMKKworCQkJCQkJLy8gdm1vdmRxYQkweDQwKCVyMTEpLAkleG1t
MgorCXRibAl2Mi4xNmIsIHt2MjguMTZifSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0y
LAkleG1tMgorCWVvcgl2Mi4xNmIsIHYyLjE2YiwgdjMuMTZiCQkvLyB2cHhvcgkleG1tMywJJXht
bTIsCSV4bW0yCisJCQkJCQkvLyB2bW92ZHFhCTB4NTAoJXIxMSksCSV4bW0zCisJdGJsCXYzLjE2
Yiwge3YyOS4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW0zCisJZW9y
CXYzLjE2YiwgdjMuMTZiLCB2Mi4xNmIJCS8vIHZweG9yCSV4bW0yLAkleG1tMywJJXhtbTMKKwor
CQkJCQkJLy8gdm1vdmRxYQkweDYwKCVyMTEpLAkleG1tMgorCXRibAl2Mi4xNmIsIHt2MzAuMTZi
fSwgdjQuMTZiCS8vIHZwc2h1ZmIJJXhtbTQsCSV4bW0yLAkleG1tMgorCXRibAl2My4xNmIsIHt2
My4xNmJ9LCB2OS4xNmIJLy8gdnBzaHVmYgkleG1tNSwJJXhtbTMsCSV4bW0zCisJCQkJCQkvLyB2
bW92ZHFhCTB4NzAoJXIxMSksCSV4bW00CisJdGJsCXY0LjE2Yiwge3YzMS4xNmJ9LCB2MS4xNmIJ
Ly8gdnBzaHVmYgkleG1tMSwJJXhtbTQsCSV4bW00CisJbGQxCXt2MS4yZH0sIFt4OF0JCQkvLyB2
bW92ZHFhCSglcjgsJXIxMCksCSV4bW0xCisJZW9yCXYyLjE2YiwgdjIuMTZiLCB2My4xNmIJCS8v
IHZweG9yCSV4bW0zLAkleG1tMiwJJXhtbTIKKwllb3IJdjMuMTZiLCB2NC4xNmIsIHYyLjE2YgkJ
Ly8gdnB4b3IJJXhtbTIsCSV4bW00LAkleG1tMworCisJc3ViCSRvdXQsICRvdXQsICMxNgkJCS8v
IGFkZAlcJC0xNiwJJXJkeAorCisuTHNjaGVkdWxlX21hbmdsZV9ib3RoOgorCXRibAl2My4xNmIs
IHt2My4xNmJ9LCB2MS4xNmIJLy8gdnBzaHVmYgkleG1tMSwJJXhtbTMsCSV4bW0zCisJYWRkCXg4
LCB4OCwgIzY0LTE2CQkJLy8gYWRkCVwkLTE2LAklcjgKKwlhbmQJeDgsIHg4LCAjfigxPDw2KQkJ
Ly8gYW5kCVwkMHgzMCwJJXI4CisJc3QxCXt2My4yZH0sIFskb3V0XQkJCS8vIHZtb3ZkcXUJJXht
bTMsCSglcmR4KQorCXJldAorLnNpemUJX3ZwYWVzX3NjaGVkdWxlX21hbmdsZSwuLV92cGFlc19z
Y2hlZHVsZV9tYW5nbGUKKworLmdsb2JsCXZwYWVzX3NldF9lbmNyeXB0X2tleQorLnR5cGUJdnBh
ZXNfc2V0X2VuY3J5cHRfa2V5LCVmdW5jdGlvbgorLmFsaWduCTQKK3ZwYWVzX3NldF9lbmNyeXB0
X2tleToKKwlzdHAJeDI5LHgzMCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCXN0cAlkOCxk
OSxbc3AsIy0xNl0hCS8vIEFCSSBzcGVjIHNheXMgc28KKworCWxzcgl3OSwgJGJpdHMsICM1CQkv
LyBzaHIJXCQ1LCVlYXgKKwlhZGQJdzksIHc5LCAjNQkJLy8gXCQ1LCVlYXgKKwlzdHIJdzksIFsk
b3V0LCMyNDBdCQkvLyBtb3YJJWVheCwyNDAoJXJkeCkJIyBBRVNfS0VZLT5yb3VuZHMgPSBuYml0
cy8zMis1OworCisJbW92CSRkaXIsICMwCQkvLyBtb3YJXCQwLCVlY3gKKwltb3YJeDgsICMweDMw
CQkvLyBtb3YJXCQweDMwLCVyOGQKKwlibAlfdnBhZXNfc2NoZWR1bGVfY29yZQorCWVvcgl4MCwg
eDAsIHgwCisKKwlsZHAJZDgsZDksW3NwXSwjMTYKKwlsZHAJeDI5LHgzMCxbc3BdLCMxNgorCXJl
dAorLnNpemUJdnBhZXNfc2V0X2VuY3J5cHRfa2V5LC4tdnBhZXNfc2V0X2VuY3J5cHRfa2V5CisK
Ky5nbG9ibAl2cGFlc19zZXRfZGVjcnlwdF9rZXkKKy50eXBlCXZwYWVzX3NldF9kZWNyeXB0X2tl
eSwlZnVuY3Rpb24KKy5hbGlnbgk0Cit2cGFlc19zZXRfZGVjcnlwdF9rZXk6CisJc3RwCXgyOSx4
MzAsW3NwLCMtMTZdIQorCWFkZAl4Mjksc3AsIzAKKwlzdHAJZDgsZDksW3NwLCMtMTZdIQkvLyBB
Qkkgc3BlYyBzYXlzIHNvCisKKwlsc3IJdzksICRiaXRzLCAjNQkJLy8gc2hyCVwkNSwlZWF4CisJ
YWRkCXc5LCB3OSwgIzUJCS8vIFwkNSwlZWF4CisJc3RyCXc5LCBbJG91dCwjMjQwXQkJLy8gbW92
CSVlYXgsMjQwKCVyZHgpCSMgQUVTX0tFWS0+cm91bmRzID0gbmJpdHMvMzIrNTsKKwlsc2wJdzks
IHc5LCAjNAkJLy8gc2hsCVwkNCwlZWF4CisJYWRkCSRvdXQsICRvdXQsICMxNgkJLy8gbGVhCTE2
KCVyZHgsJXJheCksJXJkeAorCWFkZAkkb3V0LCAkb3V0LCB4OQorCisJbW92CSRkaXIsICMxCQkv
LyBtb3YJXCQxLCVlY3gKKwlsc3IJdzgsICRiaXRzLCAjMQkJLy8gc2hyCVwkMSwlcjhkCisJYW5k
CXg4LCB4OCwgIzMyCQkvLyBhbmQJXCQzMiwlcjhkCisJZW9yCXg4LCB4OCwgIzMyCQkvLyB4b3IJ
XCQzMiwlcjhkCSMgbmJpdHM9PTE5Mj8wOjMyCisJYmwJX3ZwYWVzX3NjaGVkdWxlX2NvcmUKKwor
CWxkcAlkOCxkOSxbc3BdLCMxNgorCWxkcAl4MjkseDMwLFtzcF0sIzE2CisJcmV0Cisuc2l6ZQl2
cGFlc19zZXRfZGVjcnlwdF9rZXksLi12cGFlc19zZXRfZGVjcnlwdF9rZXkKK19fXworfQorewor
bXkgKCRpbnAsJG91dCwkbGVuLCRrZXksJGl2ZWMsJGRpcikgPSBtYXAoIngkXyIsKDAuLjUpKTsK
KworJGNvZGUuPTw8X19fOworLmdsb2JsCXZwYWVzX2NiY19lbmNyeXB0CisudHlwZQl2cGFlc19j
YmNfZW5jcnlwdCwlZnVuY3Rpb24KKy5hbGlnbgk0Cit2cGFlc19jYmNfZW5jcnlwdDoKKwljYnoJ
JGxlbiwgLkxjYmNfYWJvcnQKKwljbXAJdzUsICMwCQkJLy8gY2hlY2sgZGlyZWN0aW9uCisJYi5l
cQl2cGFlc19jYmNfZGVjcnlwdAorCisJc3RwCXgyOSx4MzAsW3NwLCMtMTZdIQorCWFkZAl4Mjks
c3AsIzAKKworCW1vdgl4MTcsICRsZW4JCS8vIHJlYXNzaWduCisJbW92CXgyLCAgJGtleQkJLy8g
cmVhc3NpZ24KKworCWxkMQl7djAuMTZifSwgWyRpdmVjXQkvLyBsb2FkIGl2ZWMKKwlibAlfdnBh
ZXNfZW5jcnlwdF9wcmVoZWF0CisJYgkuTGNiY19lbmNfbG9vcAorCisuYWxpZ24JNAorLkxjYmNf
ZW5jX2xvb3A6CisJbGQxCXt2Ny4xNmJ9LCBbJGlucF0sIzE2CS8vIGxvYWQgaW5wdXQKKwllb3IJ
djcuMTZiLCB2Ny4xNmIsIHYwLjE2YgkvLyB4b3Igd2l0aCBpdmVjCisJYmwJX3ZwYWVzX2VuY3J5
cHRfY29yZQorCXN0MQl7djAuMTZifSwgWyRvdXRdLCMxNgkvLyBzYXZlIG91dHB1dAorCXN1YnMJ
eDE3LCB4MTcsICMxNgorCWIuaGkJLkxjYmNfZW5jX2xvb3AKKworCXN0MQl7djAuMTZifSwgWyRp
dmVjXQkvLyB3cml0ZSBpdmVjCisKKwlsZHAJeDI5LHgzMCxbc3BdLCMxNgorLkxjYmNfYWJvcnQ6
CisJcmV0Cisuc2l6ZQl2cGFlc19jYmNfZW5jcnlwdCwuLXZwYWVzX2NiY19lbmNyeXB0CisKKy50
eXBlCXZwYWVzX2NiY19kZWNyeXB0LCVmdW5jdGlvbgorLmFsaWduCTQKK3ZwYWVzX2NiY19kZWNy
eXB0OgorCXN0cAl4MjkseDMwLFtzcCwjLTE2XSEKKwlhZGQJeDI5LHNwLCMwCisJc3RwCWQ4LGQ5
LFtzcCwjLTE2XSEJLy8gQUJJIHNwZWMgc2F5cyBzbworCXN0cAlkMTAsZDExLFtzcCwjLTE2XSEK
KwlzdHAJZDEyLGQxMyxbc3AsIy0xNl0hCisJc3RwCWQxNCxkMTUsW3NwLCMtMTZdIQorCisJbW92
CXgxNywgJGxlbgkJLy8gcmVhc3NpZ24KKwltb3YJeDIsICAka2V5CQkvLyByZWFzc2lnbgorCWxk
MQl7djYuMTZifSwgWyRpdmVjXQkvLyBsb2FkIGl2ZWMKKwlibAlfdnBhZXNfZGVjcnlwdF9wcmVo
ZWF0CisJdHN0CXgxNywgIzE2CisJYi5lcQkuTGNiY19kZWNfbG9vcDJ4CisKKwlsZDEJe3Y3LjE2
Yn0sIFskaW5wXSwgIzE2CS8vIGxvYWQgaW5wdXQKKwlibAlfdnBhZXNfZGVjcnlwdF9jb3JlCisJ
ZW9yCXYwLjE2YiwgdjAuMTZiLCB2Ni4xNmIJLy8geG9yIHdpdGggaXZlYworCW9ycgl2Ni4xNmIs
IHY3LjE2YiwgdjcuMTZiCS8vIG5leHQgaXZlYyB2YWx1ZQorCXN0MQl7djAuMTZifSwgWyRvdXRd
LCAjMTYKKwlzdWJzCXgxNywgeDE3LCAjMTYKKwliLmxzCS5MY2JjX2RlY19kb25lCisKKy5hbGln
bgk0CisuTGNiY19kZWNfbG9vcDJ4OgorCWxkMQl7djE0LjE2Yix2MTUuMTZifSwgWyRpbnBdLCAj
MzIKKwlibAlfdnBhZXNfZGVjcnlwdF8yeAorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjYuMTZiCS8v
IHhvciB3aXRoIGl2ZWMKKwllb3IJdjEuMTZiLCB2MS4xNmIsIHYxNC4xNmIKKwlvcnIJdjYuMTZi
LCB2MTUuMTZiLCB2MTUuMTZiCisJc3QxCXt2MC4xNmIsdjEuMTZifSwgWyRvdXRdLCAjMzIKKwlz
dWJzCXgxNywgeDE3LCAjMzIKKwliLmhpCS5MY2JjX2RlY19sb29wMngKKworLkxjYmNfZGVjX2Rv
bmU6CisJc3QxCXt2Ni4xNmJ9LCBbJGl2ZWNdCisKKwlsZHAJZDE0LGQxNSxbc3BdLCMxNgorCWxk
cAlkMTIsZDEzLFtzcF0sIzE2CisJbGRwCWQxMCxkMTEsW3NwXSwjMTYKKwlsZHAJZDgsZDksW3Nw
XSwjMTYKKwlsZHAJeDI5LHgzMCxbc3BdLCMxNgorCXJldAorLnNpemUJdnBhZXNfY2JjX2RlY3J5
cHQsLi12cGFlc19jYmNfZGVjcnlwdAorX19fCisjIFdlIG9taXQgdnBhZXNfZWNiXyogaW4gQm9y
aW5nU1NMLiBUaGV5IGFyZSB1bnVzZWQuCitpZiAoMCkgeworJGNvZGUuPTw8X19fOworLmdsb2Js
CXZwYWVzX2VjYl9lbmNyeXB0CisudHlwZQl2cGFlc19lY2JfZW5jcnlwdCwlZnVuY3Rpb24KKy5h
bGlnbgk0Cit2cGFlc19lY2JfZW5jcnlwdDoKKwlzdHAJeDI5LHgzMCxbc3AsIy0xNl0hCisJYWRk
CXgyOSxzcCwjMAorCXN0cAlkOCxkOSxbc3AsIy0xNl0hCS8vIEFCSSBzcGVjIHNheXMgc28KKwlz
dHAJZDEwLGQxMSxbc3AsIy0xNl0hCisJc3RwCWQxMixkMTMsW3NwLCMtMTZdIQorCXN0cAlkMTQs
ZDE1LFtzcCwjLTE2XSEKKworCW1vdgl4MTcsICRsZW4KKwltb3YJeDIsICAka2V5CisJYmwJX3Zw
YWVzX2VuY3J5cHRfcHJlaGVhdAorCXRzdAl4MTcsICMxNgorCWIuZXEJLkxlY2JfZW5jX2xvb3AK
KworCWxkMQl7djcuMTZifSwgWyRpbnBdLCMxNgorCWJsCV92cGFlc19lbmNyeXB0X2NvcmUKKwlz
dDEJe3YwLjE2Yn0sIFskb3V0XSwjMTYKKwlzdWJzCXgxNywgeDE3LCAjMTYKKwliLmxzCS5MZWNi
X2VuY19kb25lCisKKy5hbGlnbgk0CisuTGVjYl9lbmNfbG9vcDoKKwlsZDEJe3YxNC4xNmIsdjE1
LjE2Yn0sIFskaW5wXSwgIzMyCisJYmwJX3ZwYWVzX2VuY3J5cHRfMngKKwlzdDEJe3YwLjE2Yix2
MS4xNmJ9LCBbJG91dF0sICMzMgorCXN1YnMJeDE3LCB4MTcsICMzMgorCWIuaGkJLkxlY2JfZW5j
X2xvb3AKKworLkxlY2JfZW5jX2RvbmU6CisJbGRwCWQxNCxkMTUsW3NwXSwjMTYKKwlsZHAJZDEy
LGQxMyxbc3BdLCMxNgorCWxkcAlkMTAsZDExLFtzcF0sIzE2CisJbGRwCWQ4LGQ5LFtzcF0sIzE2
CisJbGRwCXgyOSx4MzAsW3NwXSwjMTYKKwlyZXQKKy5zaXplCXZwYWVzX2VjYl9lbmNyeXB0LC4t
dnBhZXNfZWNiX2VuY3J5cHQKKworLmdsb2JsCXZwYWVzX2VjYl9kZWNyeXB0CisudHlwZQl2cGFl
c19lY2JfZGVjcnlwdCwlZnVuY3Rpb24KKy5hbGlnbgk0Cit2cGFlc19lY2JfZGVjcnlwdDoKKwlz
dHAJeDI5LHgzMCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCXN0cAlkOCxkOSxbc3AsIy0x
Nl0hCS8vIEFCSSBzcGVjIHNheXMgc28KKwlzdHAJZDEwLGQxMSxbc3AsIy0xNl0hCisJc3RwCWQx
MixkMTMsW3NwLCMtMTZdIQorCXN0cAlkMTQsZDE1LFtzcCwjLTE2XSEKKworCW1vdgl4MTcsICRs
ZW4KKwltb3YJeDIsICAka2V5CisJYmwJX3ZwYWVzX2RlY3J5cHRfcHJlaGVhdAorCXRzdAl4MTcs
ICMxNgorCWIuZXEJLkxlY2JfZGVjX2xvb3AKKworCWxkMQl7djcuMTZifSwgWyRpbnBdLCMxNgor
CWJsCV92cGFlc19lbmNyeXB0X2NvcmUKKwlzdDEJe3YwLjE2Yn0sIFskb3V0XSwjMTYKKwlzdWJz
CXgxNywgeDE3LCAjMTYKKwliLmxzCS5MZWNiX2RlY19kb25lCisKKy5hbGlnbgk0CisuTGVjYl9k
ZWNfbG9vcDoKKwlsZDEJe3YxNC4xNmIsdjE1LjE2Yn0sIFskaW5wXSwgIzMyCisJYmwJX3ZwYWVz
X2RlY3J5cHRfMngKKwlzdDEJe3YwLjE2Yix2MS4xNmJ9LCBbJG91dF0sICMzMgorCXN1YnMJeDE3
LCB4MTcsICMzMgorCWIuaGkJLkxlY2JfZGVjX2xvb3AKKworLkxlY2JfZGVjX2RvbmU6CisJbGRw
CWQxNCxkMTUsW3NwXSwjMTYKKwlsZHAJZDEyLGQxMyxbc3BdLCMxNgorCWxkcAlkMTAsZDExLFtz
cF0sIzE2CisJbGRwCWQ4LGQ5LFtzcF0sIzE2CisJbGRwCXgyOSx4MzAsW3NwXSwjMTYKKwlyZXQK
Ky5zaXplCXZwYWVzX2VjYl9kZWNyeXB0LC4tdnBhZXNfZWNiX2RlY3J5cHQKK19fXworfQorCitt
eSAoJGN0ciwgJGN0cl90bXApID0gKCJ3NiIsICJ3NyIpOworCisjIHZvaWQgdnBhZXNfY3RyMzJf
ZW5jcnlwdF9ibG9ja3MoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxl
biwKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZICprZXks
IGNvbnN0IHVpbnQ4X3QgaXZlY1sxNl0pOworJGNvZGUuPTw8X19fOworLmdsb2JsCXZwYWVzX2N0
cjMyX2VuY3J5cHRfYmxvY2tzCisudHlwZQl2cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2NrcywlZnVu
Y3Rpb24KKy5hbGlnbgk0Cit2cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2NrczoKKwlzdHAJeDI5LHgz
MCxbc3AsIy0xNl0hCisJYWRkCXgyOSxzcCwjMAorCXN0cAlkOCxkOSxbc3AsIy0xNl0hCS8vIEFC
SSBzcGVjIHNheXMgc28KKwlzdHAJZDEwLGQxMSxbc3AsIy0xNl0hCisJc3RwCWQxMixkMTMsW3Nw
LCMtMTZdIQorCXN0cAlkMTQsZDE1LFtzcCwjLTE2XSEKKworCWNiegkkbGVuLCAuTGN0cjMyX2Rv
bmUKKworCS8vIE5vdGUsIHVubGlrZSB0aGUgb3RoZXIgZnVuY3Rpb25zLCAkbGVuIGhlcmUgaXMg
bWVhc3VyZWQgaW4gYmxvY2tzLAorCS8vIG5vdCBieXRlcy4KKwltb3YJeDE3LCAkbGVuCisJbW92
CXgyLCAgJGtleQorCisJLy8gTG9hZCB0aGUgSVYgYW5kIGNvdW50ZXIgcG9ydGlvbi4KKwlsZHIJ
JGN0ciwgWyRpdmVjLCAjMTJdCisJbGQxCXt2Ny4xNmJ9LCBbJGl2ZWNdCisKKwlibAlfdnBhZXNf
ZW5jcnlwdF9wcmVoZWF0CisJdHN0CXgxNywgIzEKKwlyZXYJJGN0ciwgJGN0cgkJLy8gVGhlIGNv
dW50ZXIgaXMgYmlnLWVuZGlhbi4KKwliLmVxCS5MY3RyMzJfcHJlcF9sb29wCisKKwkvLyBIYW5k
bGUgb25lIGJsb2NrIHNvIHRoZSByZW1haW5pbmcgYmxvY2sgY291bnQgaXMgZXZlbiBmb3IKKwkv
LyBfdnBhZXNfZW5jcnlwdF8yeC4KKwlsZDEJe3Y2LjE2Yn0sIFskaW5wXSwgIzE2CS8vIExvYWQg
aW5wdXQgYWhlYWQgb2YgdGltZQorCWJsCV92cGFlc19lbmNyeXB0X2NvcmUKKwllb3IJdjAuMTZi
LCB2MC4xNmIsIHY2LjE2YgkvLyBYT1IgaW5wdXQgYW5kIHJlc3VsdAorCXN0MQl7djAuMTZifSwg
WyRvdXRdLCAjMTYKKwlzdWJzCXgxNywgeDE3LCAjMQorCS8vIFVwZGF0ZSB0aGUgY291bnRlci4K
KwlhZGQJJGN0ciwgJGN0ciwgIzEKKwlyZXYJJGN0cl90bXAsICRjdHIKKwltb3YJdjcuc1szXSwg
JGN0cl90bXAKKwliLmxzCS5MY3RyMzJfZG9uZQorCisuTGN0cjMyX3ByZXBfbG9vcDoKKwkvLyBf
dnBhZXNfZW5jcnlwdF9jb3JlIHRha2VzIGl0cyBpbnB1dCBmcm9tIHY3LCB3aGlsZSBfdnBhZXNf
ZW5jcnlwdF8yeAorCS8vIHVzZXMgdjE0IGFuZCB2MTUuCisJbW92CXYxNS4xNmIsIHY3LjE2Ygor
CW1vdgl2MTQuMTZiLCB2Ny4xNmIKKwlhZGQJJGN0ciwgJGN0ciwgIzEKKwlyZXYJJGN0cl90bXAs
ICRjdHIKKwltb3YJdjE1LnNbM10sICRjdHJfdG1wCisKKy5MY3RyMzJfbG9vcDoKKwlsZDEJe3Y2
LjE2Yix2Ny4xNmJ9LCBbJGlucF0sICMzMgkvLyBMb2FkIGlucHV0IGFoZWFkIG9mIHRpbWUKKwli
bAlfdnBhZXNfZW5jcnlwdF8yeAorCWVvcgl2MC4xNmIsIHYwLjE2YiwgdjYuMTZiCQkvLyBYT1Ig
aW5wdXQgYW5kIHJlc3VsdAorCWVvcgl2MS4xNmIsIHYxLjE2YiwgdjcuMTZiCQkvLyBYT1IgaW5w
dXQgYW5kIHJlc3VsdCAoIzIpCisJc3QxCXt2MC4xNmIsdjEuMTZifSwgWyRvdXRdLCAjMzIKKwlz
dWJzCXgxNywgeDE3LCAjMgorCS8vIFVwZGF0ZSB0aGUgY291bnRlci4KKwlhZGQJJGN0cl90bXAs
ICRjdHIsICMxCisJYWRkCSRjdHIsICRjdHIsICMyCisJcmV2CSRjdHJfdG1wLCAkY3RyX3RtcAor
CW1vdgl2MTQuc1szXSwgJGN0cl90bXAKKwlyZXYJJGN0cl90bXAsICRjdHIKKwltb3YJdjE1LnNb
M10sICRjdHJfdG1wCisJYi5oaQkuTGN0cjMyX2xvb3AKKworLkxjdHIzMl9kb25lOgorCWxkcAlk
MTQsZDE1LFtzcF0sIzE2CisJbGRwCWQxMixkMTMsW3NwXSwjMTYKKwlsZHAJZDEwLGQxMSxbc3Bd
LCMxNgorCWxkcAlkOCxkOSxbc3BdLCMxNgorCWxkcAl4MjkseDMwLFtzcF0sIzE2CisJcmV0Cisu
c2l6ZQl2cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2NrcywuLXZwYWVzX2N0cjMyX2VuY3J5cHRfYmxv
Y2tzCitfX18KK30KKworcHJpbnQgJGNvZGU7CisKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9y
IGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMv
YXNtL3ZwYWVzLXg4Ni5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL3ZwYWVzLXg4
Ni5wbAppbmRleCA1ZjRiMjA4ZGU4OWJmMjg1NDM1MDJjMTg0NzNhZDMzNDkwZTY2YmUwLi4yYjQw
MzYyOGFiY2Q1MTJlZWMyZTVkOTZmNzg1YWMwNjJiMjc3ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2ZpcHNtb2R1bGUvYWVzL2FzbS92cGFlcy14ODYucGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL2Flcy9hc20vdnBhZXMteDg2LnBsCkBAIC02OSw2ICs2OSw5IEBAICRQUkVGSVg9InZw
YWVzIjsKIG15ICAoJHJvdW5kLCAkYmFzZSwgJG1hZ2ljLCAka2V5LCAkY29uc3QsICRpbnAsICRv
dXQpPQogICAgICgiZWF4IiwgICJlYngiLCAiZWN4IiwgICJlZHgiLCJlYnAiLCAgImVzaSIsImVk
aSIpOwogCismcHJlcHJvY2Vzc29yX2lmbmRlZigiTkRFQlVHIikKKyZleHRlcm5hbF9sYWJlbCgi
Qk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCIpOworJnByZXByb2Nlc3Nvcl9lbmRpZigpOwogJnN0YXRp
Y19sYWJlbCgiX3ZwYWVzX2NvbnN0cyIpOwogJnN0YXRpY19sYWJlbCgiX3ZwYWVzX3NjaGVkdWxl
X2xvd19yb3VuZCIpOwogCkBAIC03NTgsNiArNzYxLDggQEAgJGtfZHNibz0weDJjMDsJCSMgZGVj
cnlwdGlvbiBzYm94IGZpbmFsIG91dHB1dAogIyBJbnRlcmZhY2UgdG8gT3BlblNTTAogIwogJmZ1
bmN0aW9uX2JlZ2luKCIke1BSRUZJWH1fc2V0X2VuY3J5cHRfa2V5Iik7CisJcmVjb3JkX2Z1bmN0
aW9uX2hpdCg1KTsKKwogCSZtb3YJKCRpbnAsJndwYXJhbSgwKSk7CQkjIGlucAogCSZsZWEJKCRi
YXNlLCZEV1AoLTU2LCJlc3AiKSk7CiAJJm1vdgkoJHJvdW5kLCZ3cGFyYW0oMSkpOwkJIyBiaXRz
CkBAIC04MTIsNiArODE3LDggQEAgJGtfZHNibz0weDJjMDsJCSMgZGVjcnlwdGlvbiBzYm94IGZp
bmFsIG91dHB1dAogJmZ1bmN0aW9uX2VuZCgiJHtQUkVGSVh9X3NldF9kZWNyeXB0X2tleSIpOwog
CiAmZnVuY3Rpb25fYmVnaW4oIiR7UFJFRklYfV9lbmNyeXB0Iik7CisJcmVjb3JkX2Z1bmN0aW9u
X2hpdCg0KTsKKwogCSZsZWEJKCRjb25zdCwmRFdQKCZsYWJlbCgiX3ZwYWVzX2NvbnN0cyIpLiIr
MHgzMC0iLiZsYWJlbCgicGljX3BvaW50IikpKTsKIAkmY2FsbAkoIl92cGFlc19wcmVoZWF0Iik7
CiAmc2V0X2xhYmVsKCJwaWNfcG9pbnQiKTsKQEAgLTkxMyw0ICs5MjAsNCBAQCAka19kc2JvPTB4
MmMwOwkJIyBkZWNyeXB0aW9uIHNib3ggZmluYWwgb3V0cHV0CiAKICZhc21fZmluaXNoKCk7CiAK
LWNsb3NlIFNURE9VVDsKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VU
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL3ZwYWVzLXg4Nl82
NC5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvYXNtL3ZwYWVzLXg4Nl82NC5wbAppbmRl
eCBhNTgzY2E0M2Y2MzExMWJjY2IzZjRjMDc0ZjY1MDkzNGI5Njg1MDg4Li40NTQ2M2U4YTU0MmI2
NDIwOWJkNzQ3ZjRkZDY2Mzg4ZDMxODNkMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvYWVzL2FzbS92cGFlcy14ODZfNjQucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxl
L2Flcy9hc20vdnBhZXMteDg2XzY0LnBsCkBAIC05MSw2ICs5MSw3IEBAICRjb2RlLj08PF9fXzsK
IC50eXBlCV92cGFlc19lbmNyeXB0X2NvcmUsXEBhYmktb21uaXBvdGVudAogLmFsaWduIDE2CiBf
dnBhZXNfZW5jcnlwdF9jb3JlOgorLmNmaV9zdGFydHByb2MKIAltb3YJJXJkeCwJJXI5CiAJbW92
CVwkMTYsCSVyMTEKIAltb3YJMjQwKCVyZHgpLCVlYXgKQEAgLTE3MSw4ICsxNzIsMTg0IEBAIF92
cGFlc19lbmNyeXB0X2NvcmU6CiAJcHhvcgkleG1tNCwJJXhtbTAJIyAwID0gQQogCXBzaHVmYgkl
eG1tMSwJJXhtbTAKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX3ZwYWVzX2VuY3J5cHRfY29y
ZSwuLV92cGFlc19lbmNyeXB0X2NvcmUKIAorIyMKKyMjICBfYWVzX2VuY3J5cHRfY29yZV8yeAor
IyMKKyMjICBBRVMtZW5jcnlwdCAleG1tMCBhbmQgJXhtbTYgaW4gcGFyYWxsZWwuCisjIworIyMg
IElucHV0czoKKyMjICAgICAleG1tMCBhbmQgJXhtbTYgPSBpbnB1dAorIyMgICAgICV4bW0xMi0l
eG1tMTUgYXMgaW4gX3ZwYWVzX3ByZWhlYXQKKyMjICAgICglcmR4KSA9IHNjaGVkdWxlZCBrZXlz
CisjIworIyMgIE91dHB1dCBpbiAleG1tMCBhbmQgJXhtbTYKKyMjICBDbG9iYmVycyAgJXhtbTEt
JXhtbTUsICV4bW03LSV4bW0xMSwgJXI5LCAlcjEwLCAlcjExLCAlcmF4CisjIyAgUHJlc2VydmVz
ICV4bW0xNCBhbmQgJXhtbTE1CisjIworIyMgIFRoaXMgZnVuY3Rpb24gc3RpdGNoZXMgdHdvIHBh
cmFsbGVsIGluc3RhbmNlcyBvZiBfdnBhZXNfZW5jcnlwdF9jb3JlLiB4ODZfNjQKKyMjICBwcm92
aWRlcyAxNiBYTU0gcmVnaXN0ZXJzLiBfdnBhZXNfZW5jcnlwdF9jb3JlIGNvbXB1dGVzIG92ZXIg
c2l4IHJlZ2lzdGVycworIyMgICgleG1tMC0leG1tNSkgYW5kIGFkZGl0aW9uYWxseSB1c2VzIHNl
dmVuIHJlZ2lzdGVycyB3aXRoIHByZWxvYWRlZCBjb25zdGFudHMKKyMjICBmcm9tIF92cGFlc19w
cmVoZWF0ICgleG1tOS0leG1tMTUpLiBUaGlzIGRvZXMgbm90IHF1aXRlIGZpdCB0d28gaW5zdGFu
Y2VzLAorIyMgIHNvIHdlIHNwaWxsIHNvbWUgb2YgJXhtbTkgdGhyb3VnaCAleG1tMTUgYmFjayB0
byBtZW1vcnkuIFdlIGtlZXAgJXhtbTkgYW5kCisjIyAgJXhtbTEwIGluIHJlZ2lzdGVycyBhcyB0
aGVzZSB2YWx1ZXMgYXJlIHVzZWQgc2V2ZXJhbCB0aW1lcyBpbiBhIHJvdy4gVGhlCisjIyAgcmVt
YWluZGVyIGFyZSByZWFkIG9uY2UgcGVyIHJvdW5kIGFuZCBhcmUgc3BpbGxlZCB0byBtZW1vcnku
IFRoaXMgbGVhdmVzIHR3bworIyMgIHJlZ2lzdGVycyBwcmVzZXJ2ZWQgZm9yIHRoZSBjYWxsZXIu
CisjIworIyMgIFRodXMsIG9mIHRoZSB0d28gX3ZwYWVzX2VuY3J5cHRfY29yZSBpbnN0YW5jZXMs
IHRoZSBmaXJzdCB1c2VzICgleG1tMC0leG1tNSkKKyMjICBhcyBiZWZvcmUuIFRoZSBzZWNvbmQg
dXNlcyAleG1tNi0leG1tOCwleG1tMTEtJXhtbTEzLiAoQWRkIDYgdG8gJXhtbTIgYW5kCisjIyAg
YmVsb3cuIEFkZCA4IHRvICV4bW0zIGFuZCB1cC4pIEluc3RydWN0aW9ucyBpbiB0aGUgc2Vjb25k
IGluc3RhbmNlIGFyZQorIyMgIGluZGVudGVkIGJ5IG9uZSBzcGFjZS4KKyMjCisjIworLnR5cGUJ
X3ZwYWVzX2VuY3J5cHRfY29yZV8yeCxcQGFiaS1vbW5pcG90ZW50CisuYWxpZ24gMTYKK192cGFl
c19lbmNyeXB0X2NvcmVfMng6CisuY2ZpX3N0YXJ0cHJvYworCW1vdgklcmR4LAklcjkKKwltb3YJ
XCQxNiwJJXIxMQorCW1vdgkyNDAoJXJkeCksJWVheAorCW1vdmRxYQkleG1tOSwJJXhtbTEKKwkg
bW92ZHFhCSV4bW05LAkleG1tNworCW1vdmRxYQkuTGtfaXB0KCVyaXApLCAleG1tMgkjIGlwdGxv
CisJIG1vdmRxYQkleG1tMiwJJXhtbTgKKwlwYW5kbgkleG1tMCwJJXhtbTEKKwkgcGFuZG4JJXht
bTYsCSV4bW03CisJbW92ZHF1CSglcjkpLAkleG1tNQkJIyByb3VuZDAga2V5CisJICMgQWxzbyB1
c2UgJXhtbTUgaW4gdGhlIHNlY29uZCBpbnN0YW5jZS4KKwlwc3JsZAlcJDQsCSV4bW0xCisJIHBz
cmxkCVwkNCwJJXhtbTcKKwlwYW5kCSV4bW05LAkleG1tMAorCSBwYW5kCSV4bW05LAkleG1tNgor
CXBzaHVmYgkleG1tMCwJJXhtbTIKKwkgcHNodWZiCSV4bW02LAkleG1tOAorCW1vdmRxYQkuTGtf
aXB0KzE2KCVyaXApLCAleG1tMAkjIGlwdGhpCisJIG1vdmRxYQkleG1tMCwJJXhtbTYKKwlwc2h1
ZmIJJXhtbTEsCSV4bW0wCisJIHBzaHVmYgkleG1tNywJJXhtbTYKKwlweG9yCSV4bW01LAkleG1t
MgorCSBweG9yCSV4bW01LAkleG1tOAorCWFkZAlcJDE2LAklcjkKKwlweG9yCSV4bW0yLAkleG1t
MAorCSBweG9yCSV4bW04LAkleG1tNgorCWxlYQkuTGtfbWNfYmFja3dhcmQoJXJpcCksJXIxMAor
CWptcAkuTGVuYzJ4X2VudHJ5CisKKy5hbGlnbiAxNgorLkxlbmMyeF9sb29wOgorCSMgbWlkZGxl
IG9mIG1pZGRsZSByb3VuZAorCW1vdmRxYSAgLkxrX3NiMSglcmlwKSwJJXhtbTQJCSMgNCA6IHNi
MXUKKwltb3ZkcWEgIC5Ma19zYjErMTYoJXJpcCksJXhtbTAJCSMgMCA6IHNiMXQKKwkgbW92ZHFh
CSV4bW00LAkleG1tMTIKKwkgbW92ZHFhCSV4bW0wLAkleG1tNgorCXBzaHVmYiAgJXhtbTIsCSV4
bW00CQkJIyA0ID0gc2IxdQorCSBwc2h1ZmIJJXhtbTgsCSV4bW0xMgorCXBzaHVmYiAgJXhtbTMs
CSV4bW0wCQkJIyAwID0gc2IxdAorCSBwc2h1ZmIJJXhtbTExLAkleG1tNgorCXB4b3IJJXhtbTUs
CSV4bW00CQkJIyA0ID0gc2IxdSArIGsKKwkgcHhvcgkleG1tNSwJJXhtbTEyCisJbW92ZHFhICAu
TGtfc2IyKCVyaXApLAkleG1tNQkJIyA0IDogc2IydQorCSBtb3ZkcWEJJXhtbTUsCSV4bW0xMwor
CXB4b3IJJXhtbTQsCSV4bW0wCQkJIyAwID0gQQorCSBweG9yCSV4bW0xMiwJJXhtbTYKKwltb3Zk
cWEJLTB4NDAoJXIxMSwlcjEwKSwgJXhtbTEJCSMgLkxrX21jX2ZvcndhcmRbXQorCSAjIEFsc28g
dXNlICV4bW0xIGluIHRoZSBzZWNvbmQgaW5zdGFuY2UuCisJcHNodWZiCSV4bW0yLAkleG1tNQkJ
CSMgNCA9IHNiMnUKKwkgcHNodWZiCSV4bW04LAkleG1tMTMKKwltb3ZkcWEJKCVyMTEsJXIxMCks
ICV4bW00CQkjIC5Ma19tY19iYWNrd2FyZFtdCisJICMgQWxzbyB1c2UgJXhtbTQgaW4gdGhlIHNl
Y29uZCBpbnN0YW5jZS4KKwltb3ZkcWEJLkxrX3NiMisxNiglcmlwKSwgJXhtbTIJCSMgMiA6IHNi
MnQKKwkgbW92ZHFhCSV4bW0yLAkleG1tOAorCXBzaHVmYgkleG1tMywgICV4bW0yCQkJIyAyID0g
c2IydAorCSBwc2h1ZmIJJXhtbTExLAkleG1tOAorCW1vdmRxYQkleG1tMCwgICV4bW0zCQkJIyAz
ID0gQQorCSBtb3ZkcWEJJXhtbTYsCSV4bW0xMQorCXB4b3IJJXhtbTUsCSV4bW0yCQkJIyAyID0g
MkEKKwkgcHhvcgkleG1tMTMsCSV4bW04CisJcHNodWZiICAleG1tMSwgICV4bW0wCQkJIyAwID0g
QgorCSBwc2h1ZmIJJXhtbTEsCSV4bW02CisJYWRkCVwkMTYsCSVyOQkJCSMgbmV4dCBrZXkKKwlw
eG9yCSV4bW0yLCAgJXhtbTAJCQkjIDAgPSAyQStCCisJIHB4b3IJJXhtbTgsCSV4bW02CisJcHNo
dWZiCSV4bW00LAkleG1tMwkJCSMgMyA9IEQKKwkgcHNodWZiCSV4bW00LAkleG1tMTEKKwlhZGQJ
XCQxNiwJJXIxMQkJCSMgbmV4dCBtYworCXB4b3IJJXhtbTAsCSV4bW0zCQkJIyAzID0gMkErQitE
CisJIHB4b3IJJXhtbTYsCSV4bW0xMQorCXBzaHVmYiAgJXhtbTEsCSV4bW0wCQkJIyAwID0gMkIr
QworCSBwc2h1ZmIJJXhtbTEsCSV4bW02CisJYW5kCVwkMHgzMCwJJXIxMQkJCSMgLi4uIG1vZCA0
CisJc3ViCVwkMSwlcmF4CQkJIyBuci0tCisJcHhvcgkleG1tMywJJXhtbTAJCQkjIDAgPSAyQSsz
QitDK0QKKwkgcHhvcgkleG1tMTEsCSV4bW02CisKKy5MZW5jMnhfZW50cnk6CisJIyB0b3Agb2Yg
cm91bmQKKwltb3ZkcWEgICV4bW05LCAJJXhtbTEJIyAxIDogaQorCSBtb3ZkcWEJJXhtbTksCSV4
bW03CisJbW92ZHFhCS5Ma19pbnYrMTYoJXJpcCksICV4bW01CSMgMiA6IGEvaworCSBtb3ZkcWEJ
JXhtbTUsCSV4bW0xMworCXBhbmRuCSV4bW0wLCAJJXhtbTEJIyAxID0gaTw8NAorCSBwYW5kbgkl
eG1tNiwJJXhtbTcKKwlwc3JsZAlcJDQsICAgCSV4bW0xICAgIyAxID0gaQorCSBwc3JsZAlcJDQs
CSV4bW03CisJcGFuZAkleG1tOSwgCSV4bW0wICAgIyAwID0gaworCSBwYW5kCSV4bW05LAkleG1t
NgorCXBzaHVmYiAgJXhtbTAsICAleG1tNQkjIDIgPSBhL2sKKwkgcHNodWZiCSV4bW02LAkleG1t
MTMKKwltb3ZkcWEJJXhtbTEwLAkleG1tMyAgCSMgMyA6IDEvaQorCSBtb3ZkcWEJJXhtbTEwLAkl
eG1tMTEKKwlweG9yCSV4bW0xLAkleG1tMAkjIDAgPSBqCisJIHB4b3IJJXhtbTcsCSV4bW02CisJ
cHNodWZiICAleG1tMSwgCSV4bW0zICAJIyAzID0gMS9pCisJIHBzaHVmYgkleG1tNywJJXhtbTEx
CisJbW92ZHFhCSV4bW0xMCwJJXhtbTQgIAkjIDQgOiAxL2oKKwkgbW92ZHFhCSV4bW0xMCwJJXht
bTEyCisJcHhvcgkleG1tNSwgCSV4bW0zICAJIyAzID0gaWFrID0gMS9pICsgYS9rCisJIHB4b3IJ
JXhtbTEzLAkleG1tMTEKKwlwc2h1ZmIJJXhtbTAsIAkleG1tNCAgCSMgNCA9IDEvagorCSBwc2h1
ZmIJJXhtbTYsCSV4bW0xMgorCW1vdmRxYQkleG1tMTAsCSV4bW0yICAJIyAyIDogMS9pYWsKKwkg
bW92ZHFhCSV4bW0xMCwJJXhtbTgKKwlweG9yCSV4bW01LCAJJXhtbTQgIAkjIDQgPSBqYWsgPSAx
L2ogKyBhL2sKKwkgcHhvcgkleG1tMTMsCSV4bW0xMgorCXBzaHVmYiAgJXhtbTMsCSV4bW0yICAJ
IyAyID0gMS9pYWsKKwkgcHNodWZiCSV4bW0xMSwJJXhtbTgKKwltb3ZkcWEJJXhtbTEwLCAleG1t
MyAgICMgMyA6IDEvamFrCisJIG1vdmRxYQkleG1tMTAsCSV4bW0xMQorCXB4b3IJJXhtbTAsIAkl
eG1tMiAgCSMgMiA9IGlvCisJIHB4b3IJJXhtbTYsCSV4bW04CisJcHNodWZiICAleG1tNCwgICV4
bW0zICAgIyAzID0gMS9qYWsKKwkgcHNodWZiCSV4bW0xMiwJJXhtbTExCisJbW92ZHF1CSglcjkp
LAkleG1tNQorCSAjIEFsc28gdXNlICV4bW01IGluIHRoZSBzZWNvbmQgaW5zdGFuY2UuCisJcHhv
cgkleG1tMSwgICV4bW0zICAgIyAzID0gam8KKwkgcHhvcgkleG1tNywJJXhtbTExCisJam56CS5M
ZW5jMnhfbG9vcAorCisJIyBtaWRkbGUgb2YgbGFzdCByb3VuZAorCW1vdmRxYQktMHg2MCglcjEw
KSwgJXhtbTQJIyAzIDogc2JvdQkuTGtfc2JvCisJbW92ZHFhCS0weDUwKCVyMTApLCAleG1tMAkj
IDAgOiBzYm90CS5Ma19zYm8rMTYKKwkgbW92ZHFhCSV4bW00LAkleG1tMTIKKwkgbW92ZHFhCSV4
bW0wLAkleG1tNgorCXBzaHVmYiAgJXhtbTIsICAleG1tNAkjIDQgPSBzYm91CisJIHBzaHVmYgkl
eG1tOCwJJXhtbTEyCisJcHhvcgkleG1tNSwgICV4bW00CSMgNCA9IHNiMXUgKyBrCisJIHB4b3IJ
JXhtbTUsCSV4bW0xMgorCXBzaHVmYiAgJXhtbTMsCSV4bW0wCSMgMCA9IHNiMXQKKwkgcHNodWZi
CSV4bW0xMSwJJXhtbTYKKwltb3ZkcWEJMHg0MCglcjExLCVyMTApLCAleG1tMQkJIyAuTGtfc3Jb
XQorCSAjIEFsc28gdXNlICV4bW0xIGluIHRoZSBzZWNvbmQgaW5zdGFuY2UuCisJcHhvcgkleG1t
NCwJJXhtbTAJIyAwID0gQQorCSBweG9yCSV4bW0xMiwJJXhtbTYKKwlwc2h1ZmIJJXhtbTEsCSV4
bW0wCisJIHBzaHVmYgkleG1tMSwJJXhtbTYKKwlyZXQKKy5jZmlfZW5kcHJvYworLnNpemUJX3Zw
YWVzX2VuY3J5cHRfY29yZV8yeCwuLV92cGFlc19lbmNyeXB0X2NvcmVfMngKKwogIyMKICMjICBE
ZWNyeXB0aW9uIGNvcmUKICMjCkBAIC0xODEsNiArMzU4LDcgQEAgX3ZwYWVzX2VuY3J5cHRfY29y
ZToKIC50eXBlCV92cGFlc19kZWNyeXB0X2NvcmUsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTE2
CiBfdnBhZXNfZGVjcnlwdF9jb3JlOgorLmNmaV9zdGFydHByb2MKIAltb3YJJXJkeCwJJXI5CQkj
IGxvYWQga2V5CiAJbW92CTI0MCglcmR4KSwlZWF4CiAJbW92ZHFhCSV4bW05LAkleG1tMQpAQCAt
Mjc3LDYgKzQ1NSw3IEBAIF92cGFlc19kZWNyeXB0X2NvcmU6CiAJcHhvcgkleG1tNCwJJXhtbTAJ
IyAwID0gQQogCXBzaHVmYgkleG1tMiwJJXhtbTAKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJ
X3ZwYWVzX2RlY3J5cHRfY29yZSwuLV92cGFlc19kZWNyeXB0X2NvcmUKIAogIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTI4Nyw2ICs0
NjYsNyBAQCBfdnBhZXNfZGVjcnlwdF9jb3JlOgogLnR5cGUJX3ZwYWVzX3NjaGVkdWxlX2NvcmUs
XEBhYmktb21uaXBvdGVudAogLmFsaWduCTE2CiBfdnBhZXNfc2NoZWR1bGVfY29yZToKKy5jZmlf
c3RhcnRwcm9jCiAJIyByZGkgPSBrZXkKIAkjIHJzaSA9IHNpemUgaW4gYml0cwogCSMgcmR4ID0g
YnVmZmVyCkBAIC00NTMsNiArNjMzLDcgQEAgX3ZwYWVzX3NjaGVkdWxlX2NvcmU6CiAJcHhvcgkl
eG1tNiwgICV4bW02CiAJcHhvcgkleG1tNywgICV4bW03CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5z
aXplCV92cGFlc19zY2hlZHVsZV9jb3JlLC4tX3ZwYWVzX3NjaGVkdWxlX2NvcmUKIAogIyMKQEAg
LTQ3Miw2ICs2NTMsNyBAQCBfdnBhZXNfc2NoZWR1bGVfY29yZToKIC50eXBlCV92cGFlc19zY2hl
ZHVsZV8xOTJfc21lYXIsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTE2CiBfdnBhZXNfc2NoZWR1
bGVfMTkyX3NtZWFyOgorLmNmaV9zdGFydHByb2MKIAlwc2h1ZmQJXCQweDgwLAkleG1tNiwJJXht
bTEJIyBkIGMgMCAwIC0+IGMgMCAwIDAKIAlwc2h1ZmQJXCQweEZFLAkleG1tNywJJXhtbTAJIyBi
IGEgXyBfIC0+IGIgYiBiIGEKIAlweG9yCSV4bW0xLAkleG1tNgkJIyAtPiBjK2QgYyAwIDAKQEAg
LTQ4MCw2ICs2NjIsNyBAQCBfdnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyOgogCW1vdmRxYQkleG1t
NiwJJXhtbTAKIAltb3ZobHBzCSV4bW0xLAkleG1tNgkJIyBjbG9iYmVyIGxvdyBzaWRlIHdpdGgg
emVyb3MKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVh
ciwuLV92cGFlc19zY2hlZHVsZV8xOTJfc21lYXIKIAogIyMKQEAgLTUwMyw2ICs2ODYsNyBAQCBf
dnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyOgogLnR5cGUJX3ZwYWVzX3NjaGVkdWxlX3JvdW5kLFxA
YWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkxNgogX3ZwYWVzX3NjaGVkdWxlX3JvdW5kOgorLmNmaV9z
dGFydHByb2MKIAkjIGV4dHJhY3QgcmNvbiBmcm9tIHhtbTgKIAlweG9yCSV4bW0xLAkleG1tMQog
CXBhbGlnbnIJXCQxNSwJJXhtbTgsCSV4bW0xCkBAIC01NTYsNiArNzQwLDcgQEAgX3ZwYWVzX3Nj
aGVkdWxlX2xvd19yb3VuZDoKIAlweG9yCSV4bW03LAkleG1tMAogCW1vdmRxYQkleG1tMCwJJXht
bTcKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX3ZwYWVzX3NjaGVkdWxlX3JvdW5kLC4tX3Zw
YWVzX3NjaGVkdWxlX3JvdW5kCiAKICMjCkBAIC01NzAsNiArNzU1LDcgQEAgX3ZwYWVzX3NjaGVk
dWxlX2xvd19yb3VuZDoKIC50eXBlCV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0sXEBhYmktb21u
aXBvdGVudAogLmFsaWduCTE2CiBfdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3JtOgorLmNmaV9zdGFy
dHByb2MKIAltb3ZkcWEJJXhtbTksCSV4bW0xCiAJcGFuZG4JJXhtbTAsCSV4bW0xCiAJcHNybGQJ
XCQ0LAkleG1tMQpAQCAtNTgwLDYgKzc2Niw3IEBAIF92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm06
CiAJcHNodWZiCSV4bW0xLAkleG1tMAogCXB4b3IJJXhtbTIsCSV4bW0wCiAJcmV0CisuY2ZpX2Vu
ZHByb2MKIC5zaXplCV92cGFlc19zY2hlZHVsZV90cmFuc2Zvcm0sLi1fdnBhZXNfc2NoZWR1bGVf
dHJhbnNmb3JtCiAKICMjCkBAIC02MDgsNiArNzk1LDcgQEAgX3ZwYWVzX3NjaGVkdWxlX3RyYW5z
Zm9ybToKIC50eXBlCV92cGFlc19zY2hlZHVsZV9tYW5nbGUsXEBhYmktb21uaXBvdGVudAogLmFs
aWduCTE2CiBfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlOgorLmNmaV9zdGFydHByb2MKIAltb3ZkcWEJ
JXhtbTAsCSV4bW00CSMgc2F2ZSB4bW0wIGZvciBsYXRlcgogCW1vdmRxYQkuTGtfbWNfZm9yd2Fy
ZCglcmlwKSwleG1tNQogCXRlc3QJJXJjeCwgCSVyY3gKQEAgLTY3Miw2ICs4NjAsNyBAQCBfdnBh
ZXNfc2NoZWR1bGVfbWFuZ2xlOgogCWFuZAlcJDB4MzAsCSVyOAogCW1vdmRxdQkleG1tMywJKCVy
ZHgpCiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCV92cGFlc19zY2hlZHVsZV9tYW5nbGUsLi1f
dnBhZXNfc2NoZWR1bGVfbWFuZ2xlCiAKICMKQEAgLTY4MSw2ICs4NzAsMTQgQEAgX3ZwYWVzX3Nj
aGVkdWxlX21hbmdsZToKIC50eXBlCSR7UFJFRklYfV9zZXRfZW5jcnlwdF9rZXksXEBmdW5jdGlv
biwzCiAuYWxpZ24JMTYKICR7UFJFRklYfV9zZXRfZW5jcnlwdF9rZXk6CisuY2ZpX3N0YXJ0cHJv
YworI2lmbmRlZiBOREVCVUcKKyNpZm5kZWYgQk9SSU5HU1NMX0ZJUFMKKy5leHRlcm4gICAgICAg
IEJPUklOR1NTTF9mdW5jdGlvbl9oaXQKKyAgICAgICBtb3ZiIFwkMSwgQk9SSU5HU1NMX2Z1bmN0
aW9uX2hpdCs1KCVyaXApCisjZW5kaWYKKyNlbmRpZgorCiBfX18KICRjb2RlLj08PF9fXyBpZiAo
JHdpbjY0KTsKIAlsZWEJLTB4YjgoJXJzcCksJXJzcApAQCAtNzIzLDEyICs5MjAsMTQgQEAgX19f
CiAkY29kZS49PDxfX187CiAJeG9yCSVlYXgsJWVheAogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6
ZQkke1BSRUZJWH1fc2V0X2VuY3J5cHRfa2V5LC4tJHtQUkVGSVh9X3NldF9lbmNyeXB0X2tleQog
CiAuZ2xvYmwJJHtQUkVGSVh9X3NldF9kZWNyeXB0X2tleQogLnR5cGUJJHtQUkVGSVh9X3NldF9k
ZWNyeXB0X2tleSxcQGZ1bmN0aW9uLDMKIC5hbGlnbgkxNgogJHtQUkVGSVh9X3NldF9kZWNyeXB0
X2tleToKKy5jZmlfc3RhcnRwcm9jCiBfX18KICRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKIAls
ZWEJLTB4YjgoJXJzcCksJXJzcApAQCAtNzc2LDEyICs5NzUsMjAgQEAgX19fCiAkY29kZS49PDxf
X187CiAJeG9yCSVlYXgsJWVheAogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQkke1BSRUZJWH1f
c2V0X2RlY3J5cHRfa2V5LC4tJHtQUkVGSVh9X3NldF9kZWNyeXB0X2tleQogCiAuZ2xvYmwJJHtQ
UkVGSVh9X2VuY3J5cHQKIC50eXBlCSR7UFJFRklYfV9lbmNyeXB0LFxAZnVuY3Rpb24sMwogLmFs
aWduCTE2CiAke1BSRUZJWH1fZW5jcnlwdDoKKy5jZmlfc3RhcnRwcm9jCisjaWZuZGVmIE5ERUJV
RworI2lmbmRlZiBCT1JJTkdTU0xfRklQUworLmV4dGVybiAgICAgICAgQk9SSU5HU1NMX2Z1bmN0
aW9uX2hpdAorICAgICAgIG1vdmIgXCQxLCBCT1JJTkdTU0xfZnVuY3Rpb25faGl0KzQoJXJpcCkK
KyNlbmRpZgorI2VuZGlmCiBfX18KICRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKIAlsZWEJLTB4
YjgoJXJzcCksJXJzcApAQCAtODE5LDEyICsxMDI2LDE0IEBAICRjb2RlLj08PF9fXyBpZiAoJHdp
bjY0KTsKIF9fXwogJGNvZGUuPTw8X19fOwogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQkke1BS
RUZJWH1fZW5jcnlwdCwuLSR7UFJFRklYfV9lbmNyeXB0CiAKIC5nbG9ibAkke1BSRUZJWH1fZGVj
cnlwdAogLnR5cGUJJHtQUkVGSVh9X2RlY3J5cHQsXEBmdW5jdGlvbiwzCiAuYWxpZ24JMTYKICR7
UFJFRklYfV9kZWNyeXB0OgorLmNmaV9zdGFydHByb2MKIF9fXwogJGNvZGUuPTw8X19fIGlmICgk
d2luNjQpOwogCWxlYQktMHhiOCglcnNwKSwlcnNwCkBAIC04NjIsNiArMTA3MSw3IEBAICRjb2Rl
Lj08PF9fXyBpZiAoJHdpbjY0KTsKIF9fXwogJGNvZGUuPTw8X19fOwogCXJldAorLmNmaV9lbmRw
cm9jCiAuc2l6ZQkke1BSRUZJWH1fZGVjcnlwdCwuLSR7UFJFRklYfV9kZWNyeXB0CiBfX18KIHsK
QEAgLTg3NCw2ICsxMDg0LDcgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJJHtQUkVGSVh9X2NiY19l
bmNyeXB0LFxAZnVuY3Rpb24sNgogLmFsaWduCTE2CiAke1BSRUZJWH1fY2JjX2VuY3J5cHQ6Cisu
Y2ZpX3N0YXJ0cHJvYwogCXhjaGcJJGtleSwkbGVuCiBfX18KICgkbGVuLCRrZXkpPSgka2V5LCRs
ZW4pOwpAQCAtOTQ0LDkgKzExNTUsMTE1IEBAIF9fXwogJGNvZGUuPTw8X19fOwogLkxjYmNfYWJv
cnQ6CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCSR7UFJFRklYfV9jYmNfZW5jcnlwdCwuLSR7
UFJFRklYfV9jYmNfZW5jcnlwdAogX19fCiB9Cit7CitteSAoJGlucCwkb3V0LCRibG9ja3MsJGtl
eSwkaXZwKT0oIiVyZGkiLCIlcnNpIiwiJXJkeCIsIiVyY3giLCIlcjgiKTsKKyMgdm9pZCB2cGFl
c19jdHIzMl9lbmNyeXB0X2Jsb2Nrcyhjb25zdCB1aW50OF90ICppbnAsIHVpbnQ4X3QgKm91dCwK
KyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYmxvY2tzLCBjb25zdCBB
RVNfS0VZICprZXksCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu
dDhfdCBpdnBbMTZdKTsKKyRjb2RlLj08PF9fXzsKKy5nbG9ibAkke1BSRUZJWH1fY3RyMzJfZW5j
cnlwdF9ibG9ja3MKKy50eXBlCSR7UFJFRklYfV9jdHIzMl9lbmNyeXB0X2Jsb2NrcyxcQGZ1bmN0
aW9uLDUKKy5hbGlnbgkxNgorJHtQUkVGSVh9X2N0cjMyX2VuY3J5cHRfYmxvY2tzOgorLmNmaV9z
dGFydHByb2MKKwkjIF92cGFlc19lbmNyeXB0X2NvcmUgYW5kIF92cGFlc19lbmNyeXB0X2NvcmVf
MnggZXhwZWN0IHRoZSBrZXkgaW4gJXJkeC4KKwl4Y2hnCSRrZXksICRibG9ja3MKK19fXworKCRi
bG9ja3MsJGtleSk9KCRrZXksJGJsb2Nrcyk7CiskY29kZS49PDxfX187CisJdGVzdAkkYmxvY2tz
LCAkYmxvY2tzCisJanoJLkxjdHIzMl9hYm9ydAorX19fCiskY29kZS49PDxfX18gaWYgKCR3aW42
NCk7CisJbGVhCS0weGI4KCVyc3ApLCVyc3AKKwltb3ZhcHMJJXhtbTYsMHgxMCglcnNwKQorCW1v
dmFwcwkleG1tNywweDIwKCVyc3ApCisJbW92YXBzCSV4bW04LDB4MzAoJXJzcCkKKwltb3ZhcHMJ
JXhtbTksMHg0MCglcnNwKQorCW1vdmFwcwkleG1tMTAsMHg1MCglcnNwKQorCW1vdmFwcwkleG1t
MTEsMHg2MCglcnNwKQorCW1vdmFwcwkleG1tMTIsMHg3MCglcnNwKQorCW1vdmFwcwkleG1tMTMs
MHg4MCglcnNwKQorCW1vdmFwcwkleG1tMTQsMHg5MCglcnNwKQorCW1vdmFwcwkleG1tMTUsMHhh
MCglcnNwKQorLkxjdHIzMl9ib2R5OgorX19fCiskY29kZS49PDxfX187CisJbW92ZHF1CSgkaXZw
KSwgJXhtbTAJCSMgTG9hZCBJVi4KKwltb3ZkcWEJLkxjdHJfYWRkX29uZSglcmlwKSwgJXhtbTgK
KwlzdWIJJGlucCwgJG91dAkJIyBUaGlzIGFsbG93cyBvbmx5IGluY3JlbWVudGluZyAkaW5wLgor
CWNhbGwJX3ZwYWVzX3ByZWhlYXQKKwltb3ZkcWEJJXhtbTAsICV4bW02CisJcHNodWZiCS5McmV2
X2N0ciglcmlwKSwgJXhtbTYKKworCXRlc3QJXCQxLCAkYmxvY2tzCisJanoJLkxjdHIzMl9wcmVw
X2xvb3AKKworCSMgSGFuZGxlIG9uZSBibG9jayBzbyB0aGUgcmVtYWluaW5nIGJsb2NrIGNvdW50
IGlzIGV2ZW4gZm9yCisJIyBfdnBhZXNfZW5jcnlwdF9jb3JlXzJ4LgorCW1vdmRxdQkoJGlucCks
ICV4bW03CQkjIExvYWQgaW5wdXQuCisJY2FsbAlfdnBhZXNfZW5jcnlwdF9jb3JlCisJcHhvcgkl
eG1tNywgJXhtbTAKKwlwYWRkZAkleG1tOCwgJXhtbTYKKwltb3ZkcXUJJXhtbTAsICgkb3V0LCRp
bnApCisJc3ViCVwkMSwgJGJsb2NrcworCWxlYQkxNigkaW5wKSwgJGlucAorCWp6CS5MY3RyMzJf
ZG9uZQorCisuTGN0cjMyX3ByZXBfbG9vcDoKKwkjIF92cGFlc19lbmNyeXB0X2NvcmVfMnggbGVh
dmVzIG9ubHkgJXhtbTE0IGFuZCAleG1tMTUgYXMgc3BhcmUKKwkjIHJlZ2lzdGVycy4gV2UgbWFp
bnRhaW4gdHdvIGJ5dGUtc3dhcHBlZCBjb3VudGVycyBpbiB0aGVtLgorCW1vdmRxYQkleG1tNiwg
JXhtbTE0CisJbW92ZHFhCSV4bW02LCAleG1tMTUKKwlwYWRkZAkleG1tOCwgJXhtbTE1CisKKy5M
Y3RyMzJfbG9vcDoKKwltb3ZkcWEJLkxyZXZfY3RyKCVyaXApLCAleG1tMQkjIFNldCB1cCBjb3Vu
dGVycy4KKwltb3ZkcWEJJXhtbTE0LCAleG1tMAorCW1vdmRxYQkleG1tMTUsICV4bW02CisJcHNo
dWZiCSV4bW0xLCAleG1tMAorCXBzaHVmYgkleG1tMSwgJXhtbTYKKwljYWxsCV92cGFlc19lbmNy
eXB0X2NvcmVfMngKKwltb3ZkcXUJKCRpbnApLCAleG1tMQkJIyBMb2FkIGlucHV0LgorCW1vdmRx
dQkxNigkaW5wKSwgJXhtbTIKKwltb3ZkcWEJLkxjdHJfYWRkX3R3byglcmlwKSwgJXhtbTMKKwlw
eG9yCSV4bW0xLCAleG1tMAkJIyBYT1IgaW5wdXQuCisJcHhvcgkleG1tMiwgJXhtbTYKKwlwYWRk
ZAkleG1tMywgJXhtbTE0CQkjIEluY3JlbWVudCBjb3VudGVycy4KKwlwYWRkZAkleG1tMywgJXht
bTE1CisJbW92ZHF1CSV4bW0wLCAoJG91dCwkaW5wKQkjIFdyaXRlIG91dHB1dC4KKwltb3ZkcXUJ
JXhtbTYsIDE2KCRvdXQsJGlucCkKKwlzdWIJXCQyLCAkYmxvY2tzCQkjIEFkdmFuY2UgbG9vcC4K
KwlsZWEJMzIoJGlucCksICRpbnAKKwlqbnoJLkxjdHIzMl9sb29wCisKKy5MY3RyMzJfZG9uZToK
K19fXworJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOworCW1vdmFwcwkweDEwKCVyc3ApLCV4bW02
CisJbW92YXBzCTB4MjAoJXJzcCksJXhtbTcKKwltb3ZhcHMJMHgzMCglcnNwKSwleG1tOAorCW1v
dmFwcwkweDQwKCVyc3ApLCV4bW05CisJbW92YXBzCTB4NTAoJXJzcCksJXhtbTEwCisJbW92YXBz
CTB4NjAoJXJzcCksJXhtbTExCisJbW92YXBzCTB4NzAoJXJzcCksJXhtbTEyCisJbW92YXBzCTB4
ODAoJXJzcCksJXhtbTEzCisJbW92YXBzCTB4OTAoJXJzcCksJXhtbTE0CisJbW92YXBzCTB4YTAo
JXJzcCksJXhtbTE1CisJbGVhCTB4YjgoJXJzcCksJXJzcAorLkxjdHIzMl9lcGlsb2d1ZToKK19f
XworJGNvZGUuPTw8X19fOworLkxjdHIzMl9hYm9ydDoKKwlyZXQKKy5jZmlfZW5kcHJvYworLnNp
emUJJHtQUkVGSVh9X2N0cjMyX2VuY3J5cHRfYmxvY2tzLC4tJHtQUkVGSVh9X2N0cjMyX2VuY3J5
cHRfYmxvY2tzCitfX18KK30KICRjb2RlLj08PF9fXzsKICMjCiAjIyAgX2Flc19wcmVoZWF0CkBA
IC05NTcsNiArMTI3NCw3IEBAICRjb2RlLj08PF9fXzsKIC50eXBlCV92cGFlc19wcmVoZWF0LFxA
YWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkxNgogX3ZwYWVzX3ByZWhlYXQ6CisuY2ZpX3N0YXJ0cHJv
YwogCWxlYQkuTGtfczBGKCVyaXApLCAlcjEwCiAJbW92ZHFhCS0weDIwKCVyMTApLCAleG1tMTAJ
IyAuTGtfaW52CiAJbW92ZHFhCS0weDEwKCVyMTApLCAleG1tMTEJIyAuTGtfaW52KzE2CkBAIC05
NjYsNiArMTI4NCw3IEBAIF92cGFlc19wcmVoZWF0OgogCW1vdmRxYQkweDUwKCVyMTApLCAleG1t
MTUJIyAuTGtfc2IyCiAJbW92ZHFhCTB4NjAoJXIxMCksICV4bW0xNAkjIC5Ma19zYjIrMTYKIAly
ZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX3ZwYWVzX3ByZWhlYXQsLi1fdnBhZXNfcHJlaGVhdAog
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
ICMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMj
CkBAIC0xMDY4LDYgKzEzODcsMTcgQEAgX3ZwYWVzX2NvbnN0czoKIC5Ma19kc2JvOgkjIGRlY3J5
cHRpb24gc2JveCBmaW5hbCBvdXRwdXQKIAkucXVhZAkweDEzODdFQTUzN0VGOTQwMDAsIDB4QzdB
QTZEQjlENDk0M0UyRAogCS5xdWFkCTB4MTJENzU2MEY5MzQ0MUQwMCwgMHhDQTRCODE1OUQ4QzU4
RTlDCisKKyMgLkxyZXZfY3RyIGlzIGEgcGVybXV0YXRpb24gd2hpY2ggYnl0ZS1zd2FwcyB0aGUg
Y291bnRlciBwb3J0aW9uIG9mIHRoZSBJVi4KKy5McmV2X2N0cjoKKwkucXVhZAkweDA3MDYwNTA0
MDMwMjAxMDAsIDB4MGMwZDBlMGYwYjBhMDkwOAorIyAuTGN0cl9hZGRfKiBtYXkgYmUgYWRkZWQg
dG8gYSBieXRlLXN3YXBwZWQgeG1tIHJlZ2lzdGVyIHRvIGluY3JlbWVudCB0aGUKKyMgY291bnRl
ci4gVGhlIHJlZ2lzdGVyIG11c3QgYmUgYnl0ZS1zd2FwcGVkIGFnYWluIHRvIGZvcm0gdGhlIGFj
dHVhbCBpbnB1dC4KKy5MY3RyX2FkZF9vbmU6CisJLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwLCAw
eDAwMDAwMDAxMDAwMDAwMDAKKy5MY3RyX2FkZF90d286CisJLnF1YWQJMHgwMDAwMDAwMDAwMDAw
MDAwLCAweDAwMDAwMDAyMDAwMDAwMDAKKwogLmFzY2l6CSJWZWN0b3IgUGVybXV0YXRpb24gQUVT
IGZvciB4ODZfNjQvU1NTRTMsIE1pa2UgSGFtYnVyZyAoU3RhbmZvcmQgVW5pdmVyc2l0eSkiCiAu
YWxpZ24JNjQKIC5zaXplCV92cGFlc19jb25zdHMsLi1fdnBhZXNfY29uc3RzCkBAIC0xMTgzLDYg
KzE1MTMsMTAgQEAgc2VfaGFuZGxlcjoKIAkucnZhCS5MU0VIX2VuZF8ke1BSRUZJWH1fY2JjX2Vu
Y3J5cHQKIAkucnZhCS5MU0VIX2luZm9fJHtQUkVGSVh9X2NiY19lbmNyeXB0CiAKKwkucnZhCS5M
U0VIX2JlZ2luXyR7UFJFRklYfV9jdHIzMl9lbmNyeXB0X2Jsb2NrcworCS5ydmEJLkxTRUhfZW5k
XyR7UFJFRklYfV9jdHIzMl9lbmNyeXB0X2Jsb2NrcworCS5ydmEJLkxTRUhfaW5mb18ke1BSRUZJ
WH1fY3RyMzJfZW5jcnlwdF9ibG9ja3MKKwogLnNlY3Rpb24JLnhkYXRhCiAuYWxpZ24JOAogLkxT
RUhfaW5mb18ke1BSRUZJWH1fc2V0X2VuY3J5cHRfa2V5OgpAQCAtMTIwNSw2ICsxNTM5LDEwIEBA
IHNlX2hhbmRsZXI6CiAJLmJ5dGUJOSwwLDAsMAogCS5ydmEJc2VfaGFuZGxlcgogCS5ydmEJLkxj
YmNfYm9keSwuTGNiY19lcGlsb2d1ZQkJIyBIYW5kbGVyRGF0YVtdCisuTFNFSF9pbmZvXyR7UFJF
RklYfV9jdHIzMl9lbmNyeXB0X2Jsb2NrczoKKwkuYnl0ZQk5LDAsMCwwCisJLnJ2YQlzZV9oYW5k
bGVyCisJLnJ2YQkuTGN0cjMyX2JvZHksLkxjdHIzMl9lcGlsb2d1ZQkJIyBIYW5kbGVyRGF0YVtd
CiBfX18KIH0KIApAQCAtMTIxMiw0ICsxNTUwLDQgQEAgJGNvZGUgPX4gcy9cYChbXlxgXSopXGAv
ZXZhbCgkMSkvZ2VtOwogCiBwcmludCAkY29kZTsKIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RE
T1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL2Flcy9pbnRlcm5hbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9p
bnRlcm5hbC5oCmluZGV4IGE5ZjhhOGM3NzRlNmI4YzcyOWU1MGQzMjMxYTA2OTQ1ZmJmY2VkMjYu
LjBjZWJiMDRjYWUzNGRhODgxZjcyNjA2NWY4MTE5NTdiOWI0MmFmMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vZmlwc21vZHVsZS9hZXMvaW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvYWVzL2ludGVybmFsLmgKQEAgLTMwLDE5ICszMCwzOCBAQCBleHRlcm4gIkMiIHsKICNk
ZWZpbmUgSFdBRVMKICNkZWZpbmUgSFdBRVNfRUNCCiAKLXN0YXRpYyBpbnQgaHdhZXNfY2FwYWJs
ZSh2b2lkKSB7Ci0gIHJldHVybiAoT1BFTlNTTF9pYTMyY2FwX1BbMV0gJiAoMSA8PCAoNTcgLSAz
MikpKSAhPSAwOworT1BFTlNTTF9JTkxJTkUgaW50IGh3YWVzX2NhcGFibGUodm9pZCkgeworICBy
ZXR1cm4gKE9QRU5TU0xfaWEzMmNhcF9nZXQoKVsxXSAmICgxIDw8ICg1NyAtIDMyKSkpICE9IDA7
CiB9CisKKyNkZWZpbmUgVlBBRVMKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KQorI2RlZmlu
ZSBWUEFFU19DVFIzMgorI2VuZGlmCitPUEVOU1NMX0lOTElORSBpbnQgdnBhZXNfY2FwYWJsZSh2
b2lkKSB7CisgIHJldHVybiAoT1BFTlNTTF9pYTMyY2FwX2dldCgpWzFdICYgKDEgPDwgKDQxIC0g
MzIpKSkgIT0gMDsKK30KKwogI2VsaWYgZGVmaW5lZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChP
UEVOU1NMX0FBUkNINjQpCiAjZGVmaW5lIEhXQUVTCiAKLXN0YXRpYyBpbnQgaHdhZXNfY2FwYWJs
ZSh2b2lkKSB7Ci0gIHJldHVybiBDUllQVE9faXNfQVJNdjhfQUVTX2NhcGFibGUoKTsKLX0KK09Q
RU5TU0xfSU5MSU5FIGludCBod2Flc19jYXBhYmxlKHZvaWQpIHsgcmV0dXJuIENSWVBUT19pc19B
Uk12OF9BRVNfY2FwYWJsZSgpOyB9CisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfQVJNKQorI2RlZmlu
ZSBCU0FFUworT1BFTlNTTF9JTkxJTkUgaW50IGJzYWVzX2NhcGFibGUodm9pZCkgeyByZXR1cm4g
Q1JZUFRPX2lzX05FT05fY2FwYWJsZSgpOyB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoT1BFTlNT
TF9BQVJDSDY0KQorI2RlZmluZSBWUEFFUworI2RlZmluZSBWUEFFU19DVFIzMgorT1BFTlNTTF9J
TkxJTkUgaW50IHZwYWVzX2NhcGFibGUodm9pZCkgeyByZXR1cm4gQ1JZUFRPX2lzX05FT05fY2Fw
YWJsZSgpOyB9CisjZW5kaWYKKwogI2VsaWYgZGVmaW5lZChPUEVOU1NMX1BQQzY0TEUpCiAjZGVm
aW5lIEhXQUVTCiAKLXN0YXRpYyBpbnQgaHdhZXNfY2FwYWJsZSh2b2lkKSB7CitPUEVOU1NMX0lO
TElORSBpbnQgaHdhZXNfY2FwYWJsZSh2b2lkKSB7CiAgIHJldHVybiBDUllQVE9faXNfUFBDNjRM
RV92Y3J5cHRvX2NhcGFibGUoKTsKIH0KICNlbmRpZgpAQCAtNjcsMzYgKzg2LDM3IEBAIHZvaWQg
YWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tzKGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpv
dXQsIHNpemVfdCBsZW4sCiAKIC8vIElmIEhXQUVTIGlzbid0IGRlZmluZWQgdGhlbiB3ZSBwcm92
aWRlIGR1bW15IGZ1bmN0aW9ucyBmb3IgZWFjaCBvZiB0aGUgaHdhZXMKIC8vIGZ1bmN0aW9ucy4K
LXN0YXRpYyBpbnQgaHdhZXNfY2FwYWJsZSh2b2lkKSB7IHJldHVybiAwOyB9CitPUEVOU1NMX0lO
TElORSBpbnQgaHdhZXNfY2FwYWJsZSh2b2lkKSB7IHJldHVybiAwOyB9CiAKLXN0YXRpYyBpbnQg
YWVzX2h3X3NldF9lbmNyeXB0X2tleShjb25zdCB1aW50OF90ICp1c2VyX2tleSwgaW50IGJpdHMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUVTX0tFWSAqa2V5KSB7CitPUEVO
U1NMX0lOTElORSBpbnQgYWVzX2h3X3NldF9lbmNyeXB0X2tleShjb25zdCB1aW50OF90ICp1c2Vy
X2tleSwgaW50IGJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBRVNfS0VZICprZXkpIHsKICAgYWJvcnQoKTsKIH0KIAotc3RhdGljIGludCBhZXNfaHdfc2V0
X2RlY3J5cHRfa2V5KGNvbnN0IHVpbnQ4X3QgKnVzZXJfa2V5LCBpbnQgYml0cywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBRVNfS0VZICprZXkpIHsKK09QRU5TU0xfSU5MSU5F
IGludCBhZXNfaHdfc2V0X2RlY3J5cHRfa2V5KGNvbnN0IHVpbnQ4X3QgKnVzZXJfa2V5LCBpbnQg
Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFFU19LRVkg
KmtleSkgewogICBhYm9ydCgpOwogfQogCi1zdGF0aWMgdm9pZCBhZXNfaHdfZW5jcnlwdChjb25z
dCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgQUVTX0tFWSAqa2V5KSB7CitPUEVOU1NMX0lOTElORSB2b2lkIGFlc19od19lbmNyeXB0
KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEFFU19LRVkgKmtleSkgewogICBhYm9ydCgpOwogfQogCi1zdGF0
aWMgdm9pZCBhZXNfaHdfZGVjcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5KSB7CitPUEVOU1NM
X0lOTElORSB2b2lkIGFlc19od19kZWNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpv
dXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFFU19LRVkgKmtl
eSkgewogICBhYm9ydCgpOwogfQogCi1zdGF0aWMgdm9pZCBhZXNfaHdfY2JjX2VuY3J5cHQoY29u
c3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZICprZXksIHVpbnQ4X3QgKml2ZWMsIGlu
dCBlbmMpIHsKK09QRU5TU0xfSU5MSU5FIHZvaWQgYWVzX2h3X2NiY19lbmNyeXB0KGNvbnN0IHVp
bnQ4X3QgKmluLCB1aW50OF90ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgbGVuZ3RoLCBjb25zdCBBRVNfS0VZICprZXksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICppdmVjLCBpbnQgZW5jKSB7CiAgIGFi
b3J0KCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2Nrcyhjb25z
dCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBsZW4sIGNvbnN0IEFFU19LRVkgKmtleSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90IGl2ZWNbMTZdKSB7CitP
UEVOU1NMX0lOTElORSB2b2lkIGFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2Nrcyhjb25zdCB1aW50
OF90ICppbiwgdWludDhfdCAqb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IGxlbiwgY29uc3QgQUVTX0tFWSAqa2V5LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBpdmVj
WzE2XSkgewogICBhYm9ydCgpOwogfQogCkBAIC0xMDYsOCArMTI2LDk0IEBAIHN0YXRpYyB2b2lk
IGFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2Nrcyhjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAq
b3V0LAogI2lmIGRlZmluZWQoSFdBRVNfRUNCKQogdm9pZCBhZXNfaHdfZWNiX2VuY3J5cHQoY29u
c3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbmd0aCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEFFU19LRVkgKmtleSwgY29uc3QgaW50IGVuYyk7CisjZW5kaWYg
IC8vIEhXQUVTX0VDQgorCisKKyNpZiBkZWZpbmVkKEJTQUVTKQorLy8gT24gcGxhdGZvcm1zIHdo
ZXJlIEJTQUVTIGdldHMgZGVmaW5lZCAoanVzdCBhYm92ZSksIHRoZW4gdGhlc2UgZnVuY3Rpb25z
IGFyZQorLy8gcHJvdmlkZWQgYnkgYXNtLiBOb3RlIHxic2Flc19jYmNfZW5jcnlwdHwgcmVxdWly
ZXMgfGVuY3wgdG8gYmUgemVyby4KK3ZvaWQgYnNhZXNfY2JjX2VuY3J5cHQoY29uc3QgdWludDhf
dCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90IGl2ZWNbMTZdLCBpbnQgZW5jKTsKK3ZvaWQg
YnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91
dCwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVT
X0tFWSAqa2V5LCBjb25zdCB1aW50OF90IGl2ZWNbMTZdKTsKKyNlbHNlCitPUEVOU1NMX0lOTElO
RSBjaGFyIGJzYWVzX2NhcGFibGUodm9pZCkgeyByZXR1cm4gMDsgfQorCisvLyBPbiBvdGhlciBw
bGF0Zm9ybXMsIGJzYWVzX2NhcGFibGUoKSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgYW5kIHNv
IHRoZQorLy8gZm9sbG93aW5nIHdpbGwgbmV2ZXIgYmUgY2FsbGVkLgorT1BFTlNTTF9JTkxJTkUg
dm9pZCBic2Flc19jYmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLCBjb25z
dCBBRVNfS0VZICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQ4X3QgaXZlY1sxNl0sIGludCBlbmMpIHsKKyAgYWJvcnQoKTsKK30KKworT1BFTlNTTF9JTkxJ
TkUgdm9pZCBic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2Nrcyhjb25zdCB1aW50OF90ICppbiwgdWlu
dDhfdCAqb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3QgbGVuLCBjb25zdCBBRVNfS0VZICprZXksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgaXZlY1sxNl0pIHsKKyAgYWJv
cnQoKTsKK30KKyNlbmRpZiAgLy8gIUJTQUVTCisKKworI2lmIGRlZmluZWQoVlBBRVMpCisvLyBP
biBwbGF0Zm9ybXMgd2hlcmUgVlBBRVMgZ2V0cyBkZWZpbmVkIChqdXN0IGFib3ZlKSwgdGhlbiB0
aGVzZSBmdW5jdGlvbnMgYXJlCisvLyBwcm92aWRlZCBieSBhc20uCitpbnQgdnBhZXNfc2V0X2Vu
Y3J5cHRfa2V5KGNvbnN0IHVpbnQ4X3QgKnVzZXJLZXksIGludCBiaXRzLCBBRVNfS0VZICprZXkp
OworaW50IHZwYWVzX3NldF9kZWNyeXB0X2tleShjb25zdCB1aW50OF90ICp1c2VyS2V5LCBpbnQg
Yml0cywgQUVTX0tFWSAqa2V5KTsKKwordm9pZCB2cGFlc19lbmNyeXB0KGNvbnN0IHVpbnQ4X3Qg
KmluLCB1aW50OF90ICpvdXQsIGNvbnN0IEFFU19LRVkgKmtleSk7Cit2b2lkIHZwYWVzX2RlY3J5
cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAqa2V5KTsK
Kwordm9pZCB2cGFlc19jYmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0
LCBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZICpr
ZXksIHVpbnQ4X3QgKml2ZWMsIGludCBlbmMpOworI2lmIGRlZmluZWQoVlBBRVNfQ1RSMzIpCit2
b2lkIHZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzKGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90
ICpvdXQsIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEFFU19LRVkgKmtleSwgY29uc3QgdWludDhfdCBpdmVjWzE2XSk7CisjZW5kaWYKKyNlbHNlCitP
UEVOU1NMX0lOTElORSBjaGFyIHZwYWVzX2NhcGFibGUodm9pZCkgeyByZXR1cm4gMDsgfQorCisv
LyBPbiBvdGhlciBwbGF0Zm9ybXMsIHZwYWVzX2NhcGFibGUoKSB3aWxsIGFsd2F5cyByZXR1cm4g
ZmFsc2UgYW5kIHNvIHRoZQorLy8gZm9sbG93aW5nIHdpbGwgbmV2ZXIgYmUgY2FsbGVkLgorT1BF
TlNTTF9JTkxJTkUgaW50IHZwYWVzX3NldF9lbmNyeXB0X2tleShjb25zdCB1aW50OF90ICp1c2Vy
S2V5LCBpbnQgYml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QUVTX0tFWSAqa2V5KSB7CisgIGFib3J0KCk7Cit9CitPUEVOU1NMX0lOTElORSBpbnQgdnBhZXNf
c2V0X2RlY3J5cHRfa2V5KGNvbnN0IHVpbnQ4X3QgKnVzZXJLZXksIGludCBiaXRzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBRVNfS0VZICprZXkpIHsKKyAgYWJv
cnQoKTsKK30KK09QRU5TU0xfSU5MSU5FIHZvaWQgdnBhZXNfZW5jcnlwdChjb25zdCB1aW50OF90
ICppbiwgdWludDhfdCAqb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IEFFU19LRVkgKmtleSkgeworICBhYm9ydCgpOworfQorT1BFTlNTTF9JTkxJTkUgdm9pZCB2
cGFlc19kZWNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5KSB7CisgIGFib3J0KCk7
Cit9CitPUEVOU1NMX0lOTElORSB2b2lkIHZwYWVzX2NiY19lbmNyeXB0KGNvbnN0IHVpbnQ4X3Qg
KmluLCB1aW50OF90ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBsZW5ndGgsIGNvbnN0IEFFU19LRVkgKmtleSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludDhfdCAqaXZlYywgaW50IGVuYykgeworICBhYm9ydCgpOwor
fQorI2VuZGlmICAvLyAhVlBBRVMKKworCit2b2lkIGFlc19ub2h3X2VuY3J5cHQoY29uc3QgdWlu
dDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAqa2V5KTsKK3ZvaWQgYWVzX25v
aHdfZGVjcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBjb25zdCBBRVNfS0VZ
ICprZXkpOworaW50IGFlc19ub2h3X3NldF9lbmNyeXB0X2tleShjb25zdCB1aW50OF90ICprZXks
IHVuc2lnbmVkIGJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFFU19LRVkgKmFl
c2tleSk7CitpbnQgYWVzX25vaHdfc2V0X2RlY3J5cHRfa2V5KGNvbnN0IHVpbnQ4X3QgKmtleSwg
dW5zaWduZWQgYml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUVTX0tFWSAqYWVz
a2V5KTsKKworI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiBcCisgICAgKGRlZmluZWQo
T1BFTlNTTF9YODZfNjQpIHx8IGRlZmluZWQoT1BFTlNTTF9YODYpKQorI2RlZmluZSBBRVNfTk9I
V19DQkMKK3ZvaWQgYWVzX25vaHdfY2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4
X3QgKm91dCwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVT
X0tFWSAqa2V5LCB1aW50OF90ICppdmVjLCBjb25zdCBpbnQgZW5jKTsKICNlbmRpZgogCisKICNp
ZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfSAgLy8gZXh0ZXJuIEMKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9rZXlfd3JhcC5jIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL2Flcy9rZXlfd3JhcC5jCmluZGV4IGE1MmM5ODM1ODlmODM3NTYyYTMyZjQ2MzMwZmEy
NGMyYmQ4Njk0MjAuLjlhNWIyOGRhMjIzODIzNWNjNjkyYmE5OWM2ZjAyN2RhMjY3NzdmMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9hZXMva2V5X3dyYXAuYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL2ZpcHNtb2R1bGUvYWVzL2tleV93cmFwLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKIAogI2lu
Y2x1ZGUgPG9wZW5zc2wvYWVzLmg+CiAKKyNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxs
aW1pdHMuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIApAQCAtMTAwLDE4ICsxMDEsMTcgQEAgaW50
IEFFU193cmFwX2tleShjb25zdCBBRVNfS0VZICprZXksIGNvbnN0IHVpbnQ4X3QgKml2LCB1aW50
OF90ICpvdXQsCiAgIHJldHVybiAoaW50KWluX2xlbiArIDg7CiB9CiAKLWludCBBRVNfdW53cmFw
X2tleShjb25zdCBBRVNfS0VZICprZXksIGNvbnN0IHVpbnQ4X3QgKml2LCB1aW50OF90ICpvdXQs
Ci0gICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBpbl9sZW4pIHsK
Ky8vIGFlc191bndyYXBfa2V5X2lubmVyIHBlcmZvcm1zIHN0ZXBzIG9uZSBhbmQgdHdvIGZyb20K
Ky8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzk0I3NlY3Rpb24tMi4yLjIKK3N0
YXRpYyBpbnQgYWVzX3Vud3JhcF9rZXlfaW5uZXIoY29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90
ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgb3V0X2l2Wzhd
LCBjb25zdCB1aW50OF90ICppbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGluX2xlbikgewogICAvLyBTZWUgUkZDIDMzOTQsIHNlY3Rpb24gMi4yLjIuIEFkZGl0aW9u
YWxseSwgbm90ZSB0aGF0IHNlY3Rpb24gMiByZXF1aXJlcyB0aGUKICAgLy8gcGxhaW50ZXh0IGJl
IGF0IGxlYXN0IHR3byA4LWJ5dGUgYmxvY2tzLCBzbyB0aGUgY2lwaGVydGV4dCBtdXN0IGJlIGF0
IGxlYXN0CiAgIC8vIHRocmVlIGJsb2Nrcy4KIAogICBpZiAoaW5fbGVuID4gSU5UX01BWCB8fCBp
bl9sZW4gPCAyNCB8fCBpbl9sZW4gJSA4ICE9IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQot
ICBpZiAoaXYgPT0gTlVMTCkgewotICAgIGl2ID0ga0RlZmF1bHRJVjsKKyAgICByZXR1cm4gMDsK
ICAgfQogCiAgIHVpbnQ4X3QgQVtBRVNfQkxPQ0tfU0laRV07CkBAIC0xMzMsOSArMTMzLDEwNCBA
QCBpbnQgQUVTX3Vud3JhcF9rZXkoY29uc3QgQUVTX0tFWSAqa2V5LCBjb25zdCB1aW50OF90ICpp
diwgdWludDhfdCAqb3V0LAogICAgIH0KICAgfQogCi0gIGlmIChDUllQVE9fbWVtY21wKEEsIGl2
LCA4KSAhPSAwKSB7CisgIG1lbWNweShvdXRfaXYsIEEsIDgpOworICByZXR1cm4gMTsKK30KKwor
aW50IEFFU191bndyYXBfa2V5KGNvbnN0IEFFU19LRVkgKmtleSwgY29uc3QgdWludDhfdCAqaXYs
IHVpbnQ4X3QgKm91dCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbiwgc2l6
ZV90IGluX2xlbikgeworICB1aW50OF90IGNhbGN1bGF0ZWRfaXZbOF07CisgIGlmICghYWVzX3Vu
d3JhcF9rZXlfaW5uZXIoa2V5LCBvdXQsIGNhbGN1bGF0ZWRfaXYsIGluLCBpbl9sZW4pKSB7Cisg
ICAgcmV0dXJuIC0xOworICB9CisKKyAgaWYgKGl2ID09IE5VTEwpIHsKKyAgICBpdiA9IGtEZWZh
dWx0SVY7CisgIH0KKyAgaWYgKENSWVBUT19tZW1jbXAoY2FsY3VsYXRlZF9pdiwgaXYsIDgpICE9
IDApIHsKICAgICByZXR1cm4gLTE7CiAgIH0KIAogICByZXR1cm4gKGludClpbl9sZW4gLSA4Owog
fQorCisvLyBrUGFkZGluZ0NvbnN0YW50IGlzIHVzZWQgaW4gS2V5IFdyYXAgd2l0aCBQYWRkaW5n
LiBTZWUKKy8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1NjQ5I3NlY3Rpb24tMwor
c3RhdGljIGNvbnN0IHVpbnQ4X3Qga1BhZGRpbmdDb25zdGFudFs0XSA9IHsweGE2LCAweDU5LCAw
eDU5LCAweGE2fTsKKworaW50IEFFU193cmFwX2tleV9wYWRkZWQoY29uc3QgQUVTX0tFWSAqa2V5
LCB1aW50OF90ICpvdXQsIHNpemVfdCAqb3V0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBtYXhfb3V0LCBjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGluX2xlbikgeworICAv
LyBTZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzU2NDkjc2VjdGlvbi00LjEKKyAg
Y29uc3QgdWludDMyX3QgaW5fbGVuMzJfYmUgPSBDUllQVE9fYnN3YXA0KGluX2xlbik7CisgIGNv
bnN0IHVpbnQ2NF90IGluX2xlbjY0ID0gaW5fbGVuOworICBjb25zdCBzaXplX3QgcGFkZGVkX2xl
biA9IChpbl9sZW4gKyA3KSAmIH43OworCisgICpvdXRfbGVuID0gMDsKKyAgaWYgKGluX2xlbiA9
PSAwIHx8IGluX2xlbjY0ID4gMHhmZmZmZmZmZnUgfHwgaW5fbGVuICsgNyA8IGluX2xlbiB8fAor
ICAgICAgcGFkZGVkX2xlbiArIDggPCBwYWRkZWRfbGVuIHx8IG1heF9vdXQgPCBwYWRkZWRfbGVu
ICsgOCkgeworICAgIHJldHVybiAwOworICB9CisKKyAgdWludDhfdCBibG9ja1tBRVNfQkxPQ0tf
U0laRV07CisgIG1lbWNweShibG9jaywga1BhZGRpbmdDb25zdGFudCwgc2l6ZW9mKGtQYWRkaW5n
Q29uc3RhbnQpKTsKKyAgbWVtY3B5KGJsb2NrICsgNCwgJmluX2xlbjMyX2JlLCBzaXplb2YoaW5f
bGVuMzJfYmUpKTsKKworICBpZiAoaW5fbGVuIDw9IDgpIHsKKyAgICBtZW1zZXQoYmxvY2sgKyA4
LCAwLCA4KTsKKyAgICBtZW1jcHkoYmxvY2sgKyA4LCBpbiwgaW5fbGVuKTsKKyAgICBBRVNfZW5j
cnlwdChibG9jaywgb3V0LCBrZXkpOworICAgICpvdXRfbGVuID0gQUVTX0JMT0NLX1NJWkU7Cisg
ICAgcmV0dXJuIDE7CisgIH0KKworICB1aW50OF90ICpwYWRkZWRfaW4gPSBPUEVOU1NMX21hbGxv
YyhwYWRkZWRfbGVuKTsKKyAgaWYgKHBhZGRlZF9pbiA9PSBOVUxMKSB7CisgICAgcmV0dXJuIDA7
CisgIH0KKyAgYXNzZXJ0KHBhZGRlZF9sZW4gPj0gOCk7CisgIG1lbXNldChwYWRkZWRfaW4gKyBw
YWRkZWRfbGVuIC0gOCwgMCwgOCk7CisgIG1lbWNweShwYWRkZWRfaW4sIGluLCBpbl9sZW4pOwor
ICBjb25zdCBpbnQgcmV0ID0gQUVTX3dyYXBfa2V5KGtleSwgYmxvY2ssIG91dCwgcGFkZGVkX2lu
LCBwYWRkZWRfbGVuKTsKKyAgT1BFTlNTTF9mcmVlKHBhZGRlZF9pbik7CisgIGlmIChyZXQgPCAw
KSB7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgKm91dF9sZW4gPSByZXQ7CisgIHJldHVybiAxOwor
fQorCitpbnQgQUVTX3Vud3JhcF9rZXlfcGFkZGVkKGNvbnN0IEFFU19LRVkgKmtleSwgdWludDhf
dCAqb3V0LCBzaXplX3QgKm91dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBtYXhfb3V0LCBjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGluX2xlbikgeworICAqb3V0X2xl
biA9IDA7CisgIGlmIChpbl9sZW4gPCBBRVNfQkxPQ0tfU0laRSB8fCBtYXhfb3V0IDwgaW5fbGVu
IC0gOCkgeworICAgIHJldHVybiAwOworICB9CisKKyAgdWludDhfdCBpdls4XTsKKyAgaWYgKGlu
X2xlbiA9PSBBRVNfQkxPQ0tfU0laRSkgeworICAgIHVpbnQ4X3QgYmxvY2tbQUVTX0JMT0NLX1NJ
WkVdOworICAgIEFFU19kZWNyeXB0KGluLCBibG9jaywga2V5KTsKKyAgICBtZW1jcHkoaXYsIGJs
b2NrLCBzaXplb2YoaXYpKTsKKyAgICBtZW1jcHkob3V0LCBibG9jayArIDgsIDgpOworICB9IGVs
c2UgaWYgKCFhZXNfdW53cmFwX2tleV9pbm5lcihrZXksIG91dCwgaXYsIGluLCBpbl9sZW4pKSB7
CisgICAgcmV0dXJuIDA7CisgIH0KKyAgYXNzZXJ0KGluX2xlbiAlIDggPT0gMCk7CisKKyAgY3J5
cHRvX3dvcmRfdCBvayA9IGNvbnN0YW50X3RpbWVfZXFfaW50KAorICAgICAgQ1JZUFRPX21lbWNt
cChpdiwga1BhZGRpbmdDb25zdGFudCwgc2l6ZW9mKGtQYWRkaW5nQ29uc3RhbnQpKSwgMCk7CisK
KyAgdWludDMyX3QgY2xhaW1lZF9sZW4zMjsKKyAgbWVtY3B5KCZjbGFpbWVkX2xlbjMyLCBpdiAr
IDQsIHNpemVvZihjbGFpbWVkX2xlbjMyKSk7CisgIGNvbnN0IHNpemVfdCBjbGFpbWVkX2xlbiA9
IENSWVBUT19ic3dhcDQoY2xhaW1lZF9sZW4zMik7CisgIG9rICY9IH5jb25zdGFudF90aW1lX2lz
X3plcm9fdyhjbGFpbWVkX2xlbik7CisgIG9rICY9IGNvbnN0YW50X3RpbWVfZXFfdygoY2xhaW1l
ZF9sZW4gLSAxKSA+PiAzLCAoaW5fbGVuIC0gOSkgPj4gMyk7CisKKyAgLy8gQ2hlY2sgdGhhdCBw
YWRkaW5nIGJ5dGVzIGFyZSBhbGwgemVyby4KKyAgZm9yIChzaXplX3QgaSA9IGluX2xlbiAtIDE1
OyBpIDwgaW5fbGVuIC0gODsgaSsrKSB7CisgICAgb2sgJj0gY29uc3RhbnRfdGltZV9pc196ZXJv
X3coY29uc3RhbnRfdGltZV9nZV84KGksIGNsYWltZWRfbGVuKSAmIG91dFtpXSk7CisgIH0KKwor
ICAqb3V0X2xlbiA9IGNvbnN0YW50X3RpbWVfc2VsZWN0X3cob2ssIGNsYWltZWRfbGVuLCAwKTsK
KyAgcmV0dXJuIG9rICYgMTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9h
ZXMvbW9kZV93cmFwcGVycy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Flcy9tb2RlX3dyYXBw
ZXJzLmMKaW5kZXggMDE0MGM3MGZhYjUxMTcyODNiMDZhNjI2MzM5ZDdhNTE0MjgwZTkxMC4uYWU4
YTkxYjFhNmM1MzVkMzkwMzBlYzEwNDRhMWU5ZmFmMmFmMWEwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9maXBzbW9kdWxlL2Flcy9tb2RlX3dyYXBwZXJzLmMKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL2Flcy9tb2RlX3dyYXBwZXJzLmMKQEAgLTcyLDExICs3Miw2IEBAIHZvaWQgQUVTX2Vj
Yl9lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIGNvbnN0IEFFU19LRVkg
KmtleSwKICAgfQogfQogCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmIChkZWZpbmVk
KE9QRU5TU0xfWDg2XzY0KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2KSkKLXZvaWQgYWVzX25vaHdf
Y2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90ICpp
dmVjLCBjb25zdCBpbnQgZW5jKTsKLSNlbmRpZgotCiB2b2lkIEFFU19jYmNfZW5jcnlwdChjb25z
dCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBzaXplX3QgbGVuLAogICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90ICppdmVjLCBjb25zdCBpbnQgZW5jKSB7
CiAgIGlmIChod2Flc19jYXBhYmxlKCkpIHsKQEAgLTg0LDE2ICs3OSwxNyBAQCB2b2lkIEFFU19j
YmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBzaXplX3QgbGVuLAog
ICAgIHJldHVybjsKICAgfQogCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmIFwKLSAg
ICAoZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkgfHwgZGVmaW5lZChPUEVOU1NMX1g4NikpCi0gIGFl
c19ub2h3X2NiY19lbmNyeXB0KGluLCBvdXQsIGxlbiwga2V5LCBpdmVjLCBlbmMpOwotI2Vsc2UK
KyNpZiBkZWZpbmVkKEFFU19OT0hXX0NCQykKKyAgaWYgKCF2cGFlc19jYXBhYmxlKCkpIHsKKyAg
ICBhZXNfbm9od19jYmNfZW5jcnlwdChpbiwgb3V0LCBsZW4sIGtleSwgaXZlYywgZW5jKTsKKyAg
ICByZXR1cm47CisgIH0KKyNlbmRpZgogICBpZiAoZW5jKSB7CiAgICAgQ1JZUFRPX2NiYzEyOF9l
bmNyeXB0KGluLCBvdXQsIGxlbiwga2V5LCBpdmVjLCBBRVNfZW5jcnlwdCk7CiAgIH0gZWxzZSB7
CiAgICAgQ1JZUFRPX2NiYzEyOF9kZWNyeXB0KGluLCBvdXQsIGxlbiwga2V5LCBpdmVjLCBBRVNf
ZGVjcnlwdCk7CiAgIH0KLSNlbmRpZgogfQogCiB2b2lkIEFFU19vZmIxMjhfZW5jcnlwdChjb25z
dCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBzaXplX3QgbGVuZ3RoLApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL2JjbS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JjbS5j
CmluZGV4IGUxNWVjYjg1ZDFiZTMwODEyNWIwZTMzNWYwNWE1MTM1YzZiYTQ1YWQuLjU1OWFkZTM0
NzVkMWE3MDZkZTNlMTVlN2NlNWQ3ZDJkMDYyZThiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
Zmlwc21vZHVsZS9iY20uYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYmNtLmMKQEAgLTc2
LDcgKzc2LDYgQEAKICNpbmNsdWRlICJtZDQvbWQ0LmMiCiAjaW5jbHVkZSAibWQ1L21kNS5jIgog
I2luY2x1ZGUgIm1vZGVzL2NiYy5jIgotI2luY2x1ZGUgIm1vZGVzL2NjbS5jIgogI2luY2x1ZGUg
Im1vZGVzL2NmYi5jIgogI2luY2x1ZGUgIm1vZGVzL2N0ci5jIgogI2luY2x1ZGUgIm1vZGVzL2dj
bS5jIgpAQCAtMTAwLDExICs5OSwxOCBAQAogI2lmIGRlZmluZWQoQk9SSU5HU1NMX0ZJUFMpCiAK
ICNpZiAhZGVmaW5lZChPUEVOU1NMX0FTQU4pCi0vLyBUaGVzZSBzeW1ib2xzIGFyZSBmaWxsZWQg
aW4gYnkgZGVsb2NhdGUuZ28uIFRoZXkgcG9pbnQgdG8gdGhlIHN0YXJ0IGFuZCBlbmQKLS8vIG9m
IHRoZSBtb2R1bGUsIGFuZCB0aGUgbG9jYXRpb24gb2YgdGhlIGludGVncml0eSBoYXNoLCByZXNw
ZWN0aXZlbHkuCisvLyBUaGVzZSBzeW1ib2xzIGFyZSBmaWxsZWQgaW4gYnkgZGVsb2NhdGUuZ28g
KGluIHN0YXRpYyBidWlsZHMpIG9yIGEgbGlua2VyCisvLyBzY3JpcHQgKGluIHNoYXJlZCBidWls
ZHMpLiBUaGV5IHBvaW50IHRvIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBtb2R1bGUsIGFuZAor
Ly8gdGhlIGxvY2F0aW9uIG9mIHRoZSBpbnRlZ3JpdHkgaGFzaCwgcmVzcGVjdGl2ZWx5LgogZXh0
ZXJuIGNvbnN0IHVpbnQ4X3QgQk9SSU5HU1NMX2JjbV90ZXh0X3N0YXJ0W107CiBleHRlcm4gY29u
c3QgdWludDhfdCBCT1JJTkdTU0xfYmNtX3RleHRfZW5kW107CiBleHRlcm4gY29uc3QgdWludDhf
dCBCT1JJTkdTU0xfYmNtX3RleHRfaGFzaFtdOworI2lmIGRlZmluZWQoQk9SSU5HU1NMX1NIQVJF
RF9MSUJSQVJZKQorZXh0ZXJuIGNvbnN0IHVpbnQ4X3QgQk9SSU5HU1NMX2JjbV9yb2RhdGFfc3Rh
cnRbXTsKK2V4dGVybiBjb25zdCB1aW50OF90IEJPUklOR1NTTF9iY21fcm9kYXRhX2VuZFtdOwor
I2VuZGlmCisjZWxzZQorc3RhdGljIGNvbnN0IHVpbnQ4X3QgQk9SSU5HU1NMX2JjbV90ZXh0X2hh
c2hbU0hBNTEyX0RJR0VTVF9MRU5HVEhdID0gezB9OwogI2VuZGlmCiAKIHN0YXRpYyB2b2lkIF9f
YXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkKQEAgLTExNiwxNyArMTIyLDM5IEBAIEJPUklOR1NT
TF9iY21fcG93ZXJfb25fc2VsZl90ZXN0KHZvaWQpIHsKICAgLy8gLnRleHQgc2VjdGlvbiwgd2hp
Y2ggdHJpZ2dlcnMgdGhlIGdsb2JhbC1idWZmZXIgb3ZlcmZsb3cgZGV0ZWN0aW9uLgogICBjb25z
dCB1aW50OF90ICpjb25zdCBzdGFydCA9IEJPUklOR1NTTF9iY21fdGV4dF9zdGFydDsKICAgY29u
c3QgdWludDhfdCAqY29uc3QgZW5kID0gQk9SSU5HU1NMX2JjbV90ZXh0X2VuZDsKKyNpZiBkZWZp
bmVkKEJPUklOR1NTTF9TSEFSRURfTElCUkFSWSkKKyAgY29uc3QgdWludDhfdCAqY29uc3Qgcm9k
YXRhX3N0YXJ0ID0gQk9SSU5HU1NMX2JjbV9yb2RhdGFfc3RhcnQ7CisgIGNvbnN0IHVpbnQ4X3Qg
KmNvbnN0IHJvZGF0YV9lbmQgPSBCT1JJTkdTU0xfYmNtX3JvZGF0YV9lbmQ7CisjZW5kaWYKIAog
ICBzdGF0aWMgY29uc3QgdWludDhfdCBrSE1BQ0tleVs2NF0gPSB7MH07CiAgIHVpbnQ4X3QgcmVz
dWx0W1NIQTUxMl9ESUdFU1RfTEVOR1RIXTsKIAogICB1bnNpZ25lZCByZXN1bHRfbGVuOwotICBp
ZiAoIUhNQUMoRVZQX3NoYTUxMigpLCBrSE1BQ0tleSwgc2l6ZW9mKGtITUFDS2V5KSwgc3RhcnQs
IGVuZCAtIHN0YXJ0LAotICAgICAgICAgICAgcmVzdWx0LCAmcmVzdWx0X2xlbikgfHwKKyAgSE1B
Q19DVFggaG1hY19jdHg7CisgIEhNQUNfQ1RYX2luaXQoJmhtYWNfY3R4KTsKKyAgaWYgKCFITUFD
X0luaXRfZXgoJmhtYWNfY3R4LCBrSE1BQ0tleSwgc2l6ZW9mKGtITUFDS2V5KSwgRVZQX3NoYTUx
MigpLAorICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIG5vIEVOR0lORSAqLykpIHsKKyAgICBm
cHJpbnRmKHN0ZGVyciwgIkhNQUNfSW5pdF9leCBmYWlsZWQuXG4iKTsKKyAgICBnb3RvIGVycjsK
KyAgfQorI2lmIGRlZmluZWQoQk9SSU5HU1NMX1NIQVJFRF9MSUJSQVJZKQorICB1aW50NjRfdCBs
ZW5ndGggPSBlbmQgLSBzdGFydDsKKyAgSE1BQ19VcGRhdGUoJmhtYWNfY3R4LCAoY29uc3QgdWlu
dDhfdCAqKSAmbGVuZ3RoLCBzaXplb2YobGVuZ3RoKSk7CisgIEhNQUNfVXBkYXRlKCZobWFjX2N0
eCwgc3RhcnQsIGxlbmd0aCk7CisKKyAgbGVuZ3RoID0gcm9kYXRhX2VuZCAtIHJvZGF0YV9zdGFy
dDsKKyAgSE1BQ19VcGRhdGUoJmhtYWNfY3R4LCAoY29uc3QgdWludDhfdCAqKSAmbGVuZ3RoLCBz
aXplb2YobGVuZ3RoKSk7CisgIEhNQUNfVXBkYXRlKCZobWFjX2N0eCwgcm9kYXRhX3N0YXJ0LCBs
ZW5ndGgpOworI2Vsc2UKKyAgSE1BQ19VcGRhdGUoJmhtYWNfY3R4LCBzdGFydCwgZW5kIC0gc3Rh
cnQpOworI2VuZGlmCisgIGlmICghSE1BQ19GaW5hbCgmaG1hY19jdHgsIHJlc3VsdCwgJnJlc3Vs
dF9sZW4pIHx8CiAgICAgICByZXN1bHRfbGVuICE9IHNpemVvZihyZXN1bHQpKSB7CiAgICAgZnBy
aW50ZihzdGRlcnIsICJITUFDIGZhaWxlZC5cbiIpOwogICAgIGdvdG8gZXJyOwogICB9CisgIEhN
QUNfQ1RYX2NsZWFudXAoJmhtYWNfY3R4KTsKIAogICBjb25zdCB1aW50OF90ICpleHBlY3RlZCA9
IEJPUklOR1NTTF9iY21fdGV4dF9oYXNoOwogCkBAIC0xMzUsNyArMTYzLDcgQEAgQk9SSU5HU1NM
X2JjbV9wb3dlcl9vbl9zZWxmX3Rlc3Qodm9pZCkgewogICB9CiAjZW5kaWYKIAotICBpZiAoIUJP
UklOR1NTTF9zZWxmX3Rlc3QoKSkgeworICBpZiAoIUJPUklOR1NTTF9zZWxmX3Rlc3QoQk9SSU5H
U1NMX2JjbV90ZXh0X2hhc2gpKSB7CiAgICAgZ290byBlcnI7CiAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS9hcm12NC1tb250LnBsIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL2JuL2FzbS9hcm12NC1tb250LnBsCmluZGV4IDJlZTM4OWUyYTVkOGFhMzc2N2I3
MWFlM2VjNzk2ZTY5ZjJkMTFjNDAuLmYzYWE0YmU1OTRkNGE5MGY1ZDM3NzJhODkzNDg2NDdhODhh
YWFiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20vYXJtdjQtbW9u
dC5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYXNtL2FybXY0LW1vbnQucGwKQEAg
LTc1OSw0ICs3NTksNCBAQCBmb3JlYWNoIChzcGxpdCgiXG4iLCRjb2RlKSkgewogCXByaW50ICRf
LCJcbiI7CiB9CiAKLWNsb3NlIFNURE9VVDsKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNs
b3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20v
YXJtdjgtbW9udC5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20vYXJtdjgtbW9udC5w
bAppbmRleCBhY2FkMDY0NDY0NWYzN2IyNWE5MzQ2Nzc0NjRhYTNiYTc2MTUwNzZmLi5kYjJiYTQ5
MWU1Y2U5MGZjODc4NjMxNDdkYjc3YWZhMjhmMTRiMjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvYm4vYXNtL2FybXY4LW1vbnQucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL2JuL2FzbS9hcm12OC1tb250LnBsCkBAIC02MSw3ICs2MSw3IEBAICRhcD0ieDEiOwkjIGNv
bnN0IEJOX1VMT05HICphcCwKICRicD0ieDIiOwkjIGNvbnN0IEJOX1VMT05HICpicCwKICRucD0i
eDMiOwkjIGNvbnN0IEJOX1VMT05HICpucCwKICRuMD0ieDQiOwkjIGNvbnN0IEJOX1VMT05HICpu
MCwKLSRudW09Ing1IjsJIyBpbnQgbnVtKTsKKyRudW09Ing1IjsJIyBzaXplX3QgbnVtKTsKIAog
JGNvZGUuPTw8X19fOwogLnRleHQKQEAgLTE1MDcsNCArMTUwNyw0IEBAIF9fXwogCiBwcmludCAk
Y29kZTsKIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2lu
ZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS9ibi01
ODYucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYXNtL2JuLTU4Ni5wbAppbmRleCAxNjgx
OGQ1NWVkYzk2Nzc5Y2RmYmM1MmQzZGQ5Y2RmOGE3Y2UwN2RiLi4wNWVmMjhjMjJjYmEzOTYxYzA4
N2QzNDM0NDU0OGFjZGQxMTAxNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUv
Ym4vYXNtL2JuLTU4Ni5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYXNtL2JuLTU4
Ni5wbApAQCAtMzEsNyArMzEsNyBAQCBmb3IgKEBBUkdWKSB7ICRzc2UyPTEgaWYgKC8tRE9QRU5T
U0xfSUEzMl9TU0UyLyk7IH0KIAogJmFzbV9maW5pc2goKTsKIAotY2xvc2UgU1RET1VUOworY2xv
c2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwogCiBzdWIgYm5fbXVsX2Fk
ZF93b3JkcwogCXsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20vY28t
NTg2LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS9jby01ODYucGwKaW5kZXggNWVl
ZWVmOTc5OTBjMWRiMGYzZWZlNzZlZmQ4MTcyYmUyYjA3MTNiYS4uYWJlMzI4YWRkMzVkZTk4YTA0
OTZjZDlhNjhkN2RkZjkyMTM4NWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxl
L2JuL2FzbS9jby01ODYucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS9jby01
ODYucGwKQEAgLTIyLDcgKzIyLDcgQEAgb3BlbiBTVERPVVQsIj4kb3V0cHV0IjsKIAogJmFzbV9m
aW5pc2goKTsKIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xv
c2luZyBTVERPVVQiOwogCiBzdWIgbXVsX2FkZF9jCiAJewpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL2JuL2FzbS9yc2F6LWF2eDIucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUv
Ym4vYXNtL3JzYXotYXZ4Mi5wbAppbmRleCA3MmFhMmEzNjA2N2IyY2FjOGM0OGM2ZmZhZTM1MTEy
ZTBjOWVjYjhjLi5hMGRhMjM5MDY3ZmMxZWYwZTdiYWI2MWI2N2M2ZDc1OGNiNGFlNjcxIDEwMDc1
NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYXNtL3JzYXotYXZ4Mi5wbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYXNtL3JzYXotYXZ4Mi5wbApAQCAtNTIsNyArNTIsNiBA
QCBkaWUgImNhbid0IGxvY2F0ZSB4ODZfNjQteGxhdGUucGwiOwogIyB2ZXJzaW9ucywgYnV0IEJv
cmluZ1NTTCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggcHJlLWdlbmVyYXRlZCBwZXJsYXNt
CiAjIG91dHB1dCwgc28gdGhpcyBpc24ndCB1c2VmdWwgYW55d2F5LgogJGF2eCA9IDI7Ci0kYWRk
eCA9IDE7CiAKIG9wZW4gT1VULCJ8IFwiJF5YXCIgXCIkeGxhdGVcIiAkZmxhdm91ciBcIiRvdXRw
dXRcIiI7CiAqU1RET1VUID0gKk9VVDsKQEAgLTE0NzQsNiArMTQ3Myw3IEBAICRjb2RlLj08PF9f
XzsKIC50eXBlCXJzYXpfMTAyNF9yZWQybm9ybV9hdngyLFxAYWJpLW9tbmlwb3RlbnQKIC5hbGln
bgkzMgogcnNhel8xMDI0X3JlZDJub3JtX2F2eDI6CisuY2ZpX3N0YXJ0cHJvYwogCXN1YglcJC0x
MjgsJGlucAkjIHNpemUgb3B0aW1pemF0aW9uCiAJeG9yCSVyYXgsJXJheAogX19fCkBAIC0xNTA3
LDEyICsxNTA3LDE0IEBAIF9fXwogfQogJGNvZGUuPTw8X19fOwogCXJldAorLmNmaV9lbmRwcm9j
CiAuc2l6ZQlyc2F6XzEwMjRfcmVkMm5vcm1fYXZ4MiwuLXJzYXpfMTAyNF9yZWQybm9ybV9hdngy
CiAKIC5nbG9ibAlyc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MgogLnR5cGUJcnNhel8xMDI0X25vcm0y
cmVkX2F2eDIsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTMyCiByc2F6XzEwMjRfbm9ybTJyZWRf
YXZ4MjoKKy5jZmlfc3RhcnRwcm9jCiAJc3ViCVwkLTEyOCwkb3V0CSMgc2l6ZSBvcHRpbWl6YXRp
b24KIAltb3YJKCRpbnApLEBUWzBdCiAJbW92CVwkMHgxZmZmZmZmZiwlZWF4CkBAIC0xNTQ0LDYg
KzE1NDYsNyBAQCAkY29kZS49PDxfX187CiAJbW92CUBUWzBdLGA4KigkaisyKS0xMjhgKCRvdXQp
CiAJbW92CUBUWzBdLGA4KigkaiszKS0xMjhgKCRvdXQpCiAJcmV0CisuY2ZpX2VuZHByb2MKIC5z
aXplCXJzYXpfMTAyNF9ub3JtMnJlZF9hdngyLC4tcnNhel8xMDI0X25vcm0ycmVkX2F2eDIKIF9f
XwogfQpAQCAtMTU1NSw2ICsxNTU4LDcgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJcnNhel8xMDI0
X3NjYXR0ZXI1X2F2eDIsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTMyCiByc2F6XzEwMjRfc2Nh
dHRlcjVfYXZ4MjoKKy5jZmlfc3RhcnRwcm9jCiAJdnplcm91cHBlcgogCXZtb3ZkcXUJLkxzY2F0
dGVyX3Blcm1kKCVyaXApLCV5bW01CiAJc2hsCVwkNCwkcG93ZXIKQEAgLTE1NzQsNiArMTU3OCw3
IEBAIHJzYXpfMTAyNF9zY2F0dGVyNV9hdngyOgogCiAJdnplcm91cHBlcgogCXJldAorLmNmaV9l
bmRwcm9jCiAuc2l6ZQlyc2F6XzEwMjRfc2NhdHRlcjVfYXZ4MiwuLXJzYXpfMTAyNF9zY2F0dGVy
NV9hdngyCiAKIC5nbG9ibAlyc2F6XzEwMjRfZ2F0aGVyNV9hdngyCkBAIC0xNzMzLDI3ICsxNzM4
LDYgQEAgX19fCiB9CiAKICRjb2RlLj08PF9fXzsKLS5leHRlcm4JT1BFTlNTTF9pYTMyY2FwX1AK
LS5nbG9ibAlyc2F6X2F2eDJfZWxpZ2libGUKLS50eXBlCXJzYXpfYXZ4Ml9lbGlnaWJsZSxcQGFi
aS1vbW5pcG90ZW50Ci0uYWxpZ24JMzIKLXJzYXpfYXZ4Ml9lbGlnaWJsZToKLQlsZWFxCU9QRU5T
U0xfaWEzMmNhcF9QKCVyaXApLCVyYXgKLQltb3YJOCglcmF4KSwlZWF4Ci1fX18KLSRjb2RlLj08
PF9fXwlpZiAoJGFkZHgpOwotCW1vdglcJGAxPDw4fDE8PDE5YCwlZWN4Ci0JbW92CVwkMCwlZWR4
Ci0JYW5kCSVlYXgsJWVjeAotCWNtcAlcJGAxPDw4fDE8PDE5YCwlZWN4CSMgY2hlY2sgZm9yIEJN
STIrQUQqWAotCWNtb3ZlCSVlZHgsJWVheAotX19fCi0kY29kZS49PDxfX187Ci0JYW5kCVwkYDE8
PDVgLCVlYXgKLQlzaHIJXCQ1LCVlYXgKLQlyZXQKLS5zaXplCXJzYXpfYXZ4Ml9lbGlnaWJsZSwu
LXJzYXpfYXZ4Ml9lbGlnaWJsZQotCiAuYWxpZ24JNjQKIC5MYW5kX21hc2s6CiAJLnF1YWQJMHgx
ZmZmZmZmZiwweDFmZmZmZmZmLDB4MWZmZmZmZmYsMHgxZmZmZmZmZgpAQCAtMTk1Niw0ICsxOTQw
LDQgQEAgcnNhel8xMDI0X2dhdGhlcjVfYXZ4MjoKIF9fXwogfX19CiAKLWNsb3NlIFNURE9VVDsK
K2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20veDg2LW1vbnQucGwgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Zp
cHNtb2R1bGUvYm4vYXNtL3g4Ni1tb250LnBsCmluZGV4IDIxNGYyYjA4NTA3NDhlMTU5NGIxYWU1
NzdlYzNhYjAxZjNjYTBhNGMuLjFmNjFhZTU1ZDk2YjE0YWIxN2QxMDg2YjU4MmRhYzI5YzcwOTg5
NmIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20veDg2LW1vbnQucGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS94ODYtbW9udC5wbApAQCAtNjI4LDQg
KzYyOCw0IEBAICRzYml0PSRudW07CiAKICZhc21fZmluaXNoKCk7CiAKLWNsb3NlIFNURE9VVDsK
K2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20veDg2XzY0LW1vbnQucGwgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvYm4vYXNtL3g4Nl82NC1tb250LnBsCmluZGV4IDAyMzE0M2FjNDk5YzdhMmQ4
MTkwNGE5Nzc4MTQyYTBlYzcyNWQ5MjAuLjBhOWU0ZDE2MmRjZGQ1NjAwYTJmM2ZlZDA1ZWM3ODVh
YjliMTM4MzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20veDg2XzY0
LW1vbnQucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS94ODZfNjQtbW9udC5w
bApAQCAtNzEsNyArNzEsOSBAQCAkYXA9IiVyc2kiOwkjIGNvbnN0IEJOX1VMT05HICphcCwKICRi
cD0iJXJkeCI7CSMgY29uc3QgQk5fVUxPTkcgKmJwLAogJG5wPSIlcmN4IjsJIyBjb25zdCBCTl9V
TE9ORyAqbnAsCiAkbjA9IiVyOCI7CSMgY29uc3QgQk5fVUxPTkcgKm4wLAotJG51bT0iJXI5IjsJ
IyBpbnQgbnVtKTsKKyMgVE9ETyhkYXZpZGJlbik6IFRoZSBjb2RlIGJlbG93IHRyZWF0cyAkbnVt
IGFzIGFuIGludCwgYnV0IEMgcGFzc2VzIGluIGEKKyMgc2l6ZV90LgorJG51bT0iJXI5IjsJIyBz
aXplX3QgbnVtKTsKICRsbzA9IiVyMTAiOwogJGhpMD0iJXIxMSI7CiAkaGkxPSIlcjEzIjsKQEAg
LTE1NzYsNCArMTU3OCw0IEBAIF9fXwogfQogCiBwcmludCAkY29kZTsKLWNsb3NlIFNURE9VVDsK
K2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9hc20veDg2XzY0LW1vbnQ1LnBsIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL2JuL2FzbS94ODZfNjQtbW9udDUucGwKaW5kZXggODA2ZTZmNWQ2NGNhZWQ2
ZWJkMTY3OGJjMjY4ZThhNzdkODQxYzM1Yy4uYjJmZjExNDllZWM2Y2RkZDJhZjJhNDZhMWRiMDBh
MGRhZWY5ZTQ2NSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS94ODZf
NjQtbW9udDUucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2FzbS94ODZfNjQtbW9u
dDUucGwKQEAgLTU2Niw2ICs1NjYsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQltdWw0eF9pbnRl
cm5hbCxcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMzIKIG11bDR4X2ludGVybmFsOgorLmNmaV9z
dGFydHByb2MKIAlzaGwJXCQ1LCRudW0JCSMgJG51bSB3YXMgaW4gYnl0ZXMKIAltb3ZkCWAoJHdp
bjY0PzU2OjgpYCglcmF4KSwleG1tNQkjIGxvYWQgN3RoIGFyZ3VtZW50LCBpbmRleAogCWxlYQku
TGluYyglcmlwKSwlcmF4CkBAIC0xMDYwLDYgKzEwNjEsNyBAQCAkY29kZS49PDxfX18KIF9fXwog
fQogJGNvZGUuPTw8X19fOworLmNmaV9lbmRwcm9jCiAuc2l6ZQltdWw0eF9pbnRlcm5hbCwuLW11
bDR4X2ludGVybmFsCiBfX18KIH19fQpAQCAtMTIyNiw2ICsxMjI4LDcgQEAgJGNvZGUuPTw8X19f
OwogLmFsaWduCTMyCiBibl9zcXI4eF9pbnRlcm5hbDoKIF9fYm5fc3FyOHhfaW50ZXJuYWw6Cisu
Y2ZpX3N0YXJ0cHJvYwogCSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAJIyBTcXVhcmluZyBwYXJ0OgogCSMKQEAgLTIwMTcsNiAr
MjAyMCw3IEBAIF9fYm5fc3FyOHhfcmVkdWN0aW9uOgogCWNtcAklcmR4LCR0cHRyCQkjIGVuZCBv
ZiB0W10/CiAJamIJLkw4eF9yZWR1Y3Rpb25fbG9vcAogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6
ZQlibl9zcXI4eF9pbnRlcm5hbCwuLWJuX3Nxcjh4X2ludGVybmFsCiBfX18KIH0MCkBAIC0yMDI5
LDYgKzIwMzMsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQlfX2JuX3Bvc3Q0eF9pbnRlcm5hbCxc
QGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMzIKIF9fYm5fcG9zdDR4X2ludGVybmFsOgorLmNmaV9z
dGFydHByb2MKIAltb3YJOCowKCRucHRyKSwlcjEyCiAJbGVhCSglcmRpLCRudW0pLCR0cHRyCSMg
JXJkaSB3YXMgJHRwdHIgYWJvdmUKIAltb3YJJG51bSwlcmN4CkBAIC0yMDc5LDYgKzIwODQsNyBA
QCBfX2JuX3Bvc3Q0eF9pbnRlcm5hbDoKIAltb3YJJG51bSwlcjEwCQkjIHByZXBhcmUgZm9yIGJh
Y2stdG8tYmFjayBjYWxsCiAJbmVnCSRudW0JCQkjIHJlc3RvcmUgJG51bQogCXJldAorLmNmaV9l
bmRwcm9jCiAuc2l6ZQlfX2JuX3Bvc3Q0eF9pbnRlcm5hbCwuLV9fYm5fcG9zdDR4X2ludGVybmFs
CiBfX18KIH0KQEAgLTIwODgsMTAgKzIwOTQsMTIgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJYm5f
ZnJvbV9tb250Z29tZXJ5LFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkzMgogYm5fZnJvbV9tb250
Z29tZXJ5OgorLmNmaV9zdGFydHByb2MKIAl0ZXN0bAlcJDcsYCgkd2luNjQ/IjQ4KCVyc3ApIjoi
JXI5ZCIpYAogCWp6CWJuX2Zyb21fbW9udDh4CiAJeG9yCSVlYXgsJWVheAogCXJldAorLmNmaV9l
bmRwcm9jCiAuc2l6ZQlibl9mcm9tX21vbnRnb21lcnksLi1ibl9mcm9tX21vbnRnb21lcnkKIAog
LnR5cGUJYm5fZnJvbV9tb250OHgsXEBmdW5jdGlvbiw2CkBAIC0yMzg4LDYgKzIzOTYsNyBAQCBi
bl9tdWx4NHhfbW9udF9nYXRoZXI1OgogLnR5cGUJbXVseDR4X2ludGVybmFsLFxAYWJpLW9tbmlw
b3RlbnQKIC5hbGlnbgkzMgogbXVseDR4X2ludGVybmFsOgorLmNmaV9zdGFydHByb2MKIAltb3YJ
JG51bSw4KCVyc3ApCQkjIHNhdmUgLSRudW0gKGl0IHdhcyBpbiBieXRlcykKIAltb3YJJG51bSwl
cjEwCiAJbmVnCSRudW0JCQkjIHJlc3RvcmUgJG51bQpAQCAtMjczOCw2ICsyNzQ3LDcgQEAgJGNv
ZGUuPTw8X19fOwogCW1vdgk4KjIoJXJicCksJXIxNAogCW1vdgk4KjMoJXJicCksJXIxNQogCWpt
cAkuTHNxcng0eF9zdWJfZW50cnkJIyBjb21tb24gcG9zdC1jb25kaXRpb24KKy5jZmlfZW5kcHJv
YwogLnNpemUJbXVseDR4X2ludGVybmFsLC4tbXVseDR4X2ludGVybmFsCiBfX18KIH0MewpAQCAt
Mjg5OCw2ICsyOTA4LDcgQEAgYm5fcG93ZXJ4NToKIC5hbGlnbgkzMgogYm5fc3FyeDh4X2ludGVy
bmFsOgogX19ibl9zcXJ4OHhfaW50ZXJuYWw6CisuY2ZpX3N0YXJ0cHJvYwogCSMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwog
CSMgU3F1YXJpbmcgcGFydDoKIAkjCkBAIC0zNTMwLDYgKzM1NDEsNyBAQCBfX2JuX3Nxcng4eF9y
ZWR1Y3Rpb246CiAJY21wCTgrOCglcnNwKSwlcjgJCSMgZW5kIG9mIHRbXT8KIAlqYgkuTHNxcng4
eF9yZWR1Y3Rpb25fbG9vcAogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQlibl9zcXJ4OHhfaW50
ZXJuYWwsLi1ibl9zcXJ4OHhfaW50ZXJuYWwKIF9fXwogfQwKQEAgLTM1NDAsNyArMzU1Miw5IEBA
IF9fXwogbXkgKCRycHRyLCRucHRyKT0oIiVyZHgiLCIlcmJwIik7CiAkY29kZS49PDxfX187CiAu
YWxpZ24JMzIKKy50eXBlCV9fYm5fcG9zdHg0eF9pbnRlcm5hbCxcQGFiaS1vbW5pcG90ZW50CiBf
X2JuX3Bvc3R4NHhfaW50ZXJuYWw6CisuY2ZpX3N0YXJ0cHJvYwogCW1vdgk4KjAoJG5wdHIpLCVy
MTIKIAltb3YJJXJjeCwlcjEwCQkjIC0kbnVtCiAJbW92CSVyY3gsJXI5CQkjIC0kbnVtCkBAIC0z
NTg4LDYgKzM2MDIsNyBAQCBfX2JuX3Bvc3R4NHhfaW50ZXJuYWw6CiAJbmVnCSVyOQkJCSMgcmVz
dG9yZSAkbnVtCiAKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX19ibl9wb3N0eDR4X2ludGVy
bmFsLC4tX19ibl9wb3N0eDR4X2ludGVybmFsCiBfX18KIH0KQEAgLTM2MDQsNiArMzYxOSw3IEBA
ICRjb2RlLj08PF9fXzsKIC50eXBlCWJuX3NjYXR0ZXI1LFxAYWJpLW9tbmlwb3RlbnQKIC5hbGln
bgkxNgogYm5fc2NhdHRlcjU6CisuY2ZpX3N0YXJ0cHJvYwogCWNtcAlcJDAsICRudW0KIAlqegku
THNjYXR0ZXJfZXBpbG9ndWUKIAlsZWEJKCR0YmwsJGlkeCw4KSwkdGJsCkBAIC0zNjE2LDE1ICsz
NjMyLDE4IEBAIGJuX3NjYXR0ZXI1OgogCWpuegkuTHNjYXR0ZXIKIC5Mc2NhdHRlcl9lcGlsb2d1
ZToKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJYm5fc2NhdHRlcjUsLi1ibl9zY2F0dGVyNQog
CiAuZ2xvYmwJYm5fZ2F0aGVyNQogLnR5cGUJYm5fZ2F0aGVyNSxcQGFiaS1vbW5pcG90ZW50CiAu
YWxpZ24JMzIKIGJuX2dhdGhlcjU6CisuY2ZpX3N0YXJ0cHJvYwogLkxTRUhfYmVnaW5fYm5fZ2F0
aGVyNToJCQkjIFdpbjY0IHRoaW5nLCBidXQgaGFybWxlc3MgaW4gb3RoZXIgY2FzZXMKIAkjIEkg
Y2FuJ3QgdHJ1c3QgYXNzZW1ibGVyIHRvIHVzZSBzcGVjaWZpYyBlbmNvZGluZzotKAogCS5ieXRl
CTB4NGMsMHg4ZCwweDE0LDB4MjQJCQkjbGVhICAgICglcnNwKSwlcjEwCisuY2ZpX2RlZl9jZmFf
cmVnaXN0ZXIJJXIxMAogCS5ieXRlCTB4NDgsMHg4MSwweGVjLDB4MDgsMHgwMSwweDAwLDB4MDAJ
I3N1YgkkMHgxMDgsJXJzcAogCWxlYQkuTGluYyglcmlwKSwlcmF4CiAJYW5kCVwkLTE2LCVyc3AJ
CSMgc2hvdWxkbid0IGJlIGZvcm1hbGx5IHJlcXVpcmVkCkBAIC0zNzA1LDggKzM3MjQsMTAgQEAg
JGNvZGUuPTw8X19fOwogCWpuegkuTGdhdGhlcgogCiAJbGVhCSglcjEwKSwlcnNwCisuY2ZpX2Rl
Zl9jZmFfcmVnaXN0ZXIJJXJzcAogCXJldAogLkxTRUhfZW5kX2JuX2dhdGhlcjU6CisuY2ZpX2Vu
ZHByb2MKIC5zaXplCWJuX2dhdGhlcjUsLi1ibl9nYXRoZXI1CiBfX18KIH0KQEAgLTM5MDksNCAr
MzkzMCw0IEBAIF9fXwogJGNvZGUgPX4gcy9cYChbXlxgXSopXGAvZXZhbCgkMSkvZ2VtOwogCiBw
cmludCAkY29kZTsKLWNsb3NlIFNURE9VVDsKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNs
b3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9ibi5j
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2JuLmMKaW5kZXggNTFiODI4YWFjNzgxNTc4YTZl
NzNlM2RlNDExYmJmMmE1ODgwODdhNS4uZTNmMWM5MDA3NzhlYmEyZTQwOGI0MTc4OWRiMTkyNGQy
YWM5OGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2JuLmMKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2JuLmMKQEAgLTM4NCw2ICszODQsMjMgQEAgaW50IGJu
X2V4cGFuZChCSUdOVU0gKmJuLCBzaXplX3QgYml0cykgewogfQogCiBpbnQgYm5fcmVzaXplX3dv
cmRzKEJJR05VTSAqYm4sIHNpemVfdCB3b3JkcykgeworI2lmIGRlZmluZWQoT1BFTlNTTF9QUEM2
NExFKQorICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBtaXNjb21waWxhdGlvbiBidWcg
aW4gQ2xhbmcgNy4wLjEgb24gUE9XRVIuCisgIC8vIFRoZSB1bml0dGVzdHMgY2F0Y2ggdGhlIG1p
c2NvbXBpbGF0aW9uLCBpZiBpdCBvY2N1cnMsIGFuZCBpdCBtYW5pZmVzdHMKKyAgLy8gYXMgYSBj
cmFzaCBpbiB8Ym5fZml0c19pbl93b3Jkc3wuCisgIC8vCisgIC8vIFRoZSBidWcgb25seSB0cmln
Z2VycyBpZiBidWlsZGluZyBpbiBGSVBTIG1vZGUgYW5kIHdpdGggLU8zLiBDbGFuZyA4LjAuMQor
ICAvLyBoYXMgdGhlIHNhbWUgYnVnIGJ1dCB0aGlzIHdvcmthcm91bmQgaXMgbm90IGVmZmVjdGl2
ZSB0aGVyZS0tLUkndmUgbm90CisgIC8vIGJlZW4gYWJsZSB0byBmaW5kIGEgd29ya2Fyb3VuZCBm
b3IgOC4wLjEuCisgIC8vCisgIC8vIEF0IHRoZSB0aW1lIG9mIHdyaXRpbmcgKDIwMTktMDgtMDgp
LCBDbGFuZyBnaXQgZG9lcyAqbm90KiBoYXZlIHRoaXMgYnVnCisgIC8vIGFuZCBkb2VzIG5vdCBu
ZWVkIHRoaXMgd29ya2Fyb3VkLiBUaGUgY3VycmVudCBnaXQgdmVyc2lvbiBzaG91bGQgZ28gb24g
dG8KKyAgLy8gYmUgQ2xhbmcgMTAgdGh1cywgb25jZSB3ZSBjYW4gZGVwZW5kIG9uIHRoYXQsIHRo
aXMgY2FuIGJlIHJlbW92ZWQuCisgIGlmICh2YWx1ZV9iYXJyaWVyX3coKHNpemVfdClibi0+d2lk
dGggPT0gd29yZHMpKSB7CisgICAgcmV0dXJuIDE7CisgIH0KKyNlbmRpZgorCiAgIGlmICgoc2l6
ZV90KWJuLT53aWR0aCA8PSB3b3JkcykgewogICAgIGlmICghYm5fd2V4cGFuZChibiwgd29yZHMp
KSB7CiAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9i
bi9ibl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2JuX3Rlc3QuY2MKaW5kZXgg
MjU4ZDAxYmU2YTY4YzBlN2FhNzRlY2ZmOGI5ODA2MTg1NTZhYWZlYi4uYTYxZDZlMWIyMTUwZWNj
Zjk4N2EzNTUzZWM1MjQ1MDk2Mjg1MDViZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL2JuL2JuX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2JuX3Rlc3Qu
Y2MKQEAgLTg2LDcgKzg2LDkgQEAKICNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KIAogI2luY2x1
ZGUgIi4vaW50ZXJuYWwuaCIKKyNpbmNsdWRlICIuL3JzYXpfZXhwLmgiCiAjaW5jbHVkZSAiLi4v
Li4vaW50ZXJuYWwuaCIKKyNpbmNsdWRlICIuLi8uLi90ZXN0L2FiaV90ZXN0LmgiCiAjaW5jbHVk
ZSAiLi4vLi4vdGVzdC9maWxlX3Rlc3QuaCIKICNpbmNsdWRlICIuLi8uLi90ZXN0L3Rlc3RfdXRp
bC5oIgogCkBAIC0yMzc3LDMgKzIzNzksMTA5IEBAIFRFU1RfRihCTlRlc3QsIFdyaXRlSW50b05l
Z2F0aXZlKSB7CiAgIEVYUEVDVF9UUlVFKEJOX2lzX3dvcmQoci5nZXQoKSwgNikpOwogICBFWFBF
Q1RfRkFMU0UoQk5faXNfbmVnYXRpdmUoci5nZXQoKSkpOwogfQorCisjaWYgZGVmaW5lZChPUEVO
U1NMX0JOX0FTTV9NT05UKSAmJiBkZWZpbmVkKFNVUFBPUlRTX0FCSV9URVNUKQorVEVTVF9GKEJO
VGVzdCwgQk5NdWxNb250QUJJKSB7CisgIGZvciAoc2l6ZV90IHdvcmRzIDogezQsIDUsIDYsIDcs
IDgsIDE2LCAzMn0pIHsKKyAgICBTQ09QRURfVFJBQ0Uod29yZHMpOworCisgICAgYnNzbDo6VW5p
cXVlUHRyPEJJR05VTT4gbShCTl9uZXcoKSk7CisgICAgQVNTRVJUX1RSVUUobSk7CisgICAgQVNT
RVJUX1RSVUUoQk5fc2V0X2JpdChtLmdldCgpLCAwKSk7CisgICAgQVNTRVJUX1RSVUUoQk5fc2V0
X2JpdChtLmdldCgpLCB3b3JkcyAqIEJOX0JJVFMyIC0gMSkpOworICAgIGJzc2w6OlVuaXF1ZVB0
cjxCTl9NT05UX0NUWD4gbW9udCgKKyAgICAgICAgQk5fTU9OVF9DVFhfbmV3X2Zvcl9tb2R1bHVz
KG0uZ2V0KCksIGN0eCgpKSk7CisgICAgQVNTRVJUX1RSVUUobW9udCk7CisKKyAgICBzdGQ6OnZl
Y3RvcjxCTl9VTE9ORz4gcih3b3JkcyksIGEod29yZHMpLCBiKHdvcmRzKTsKKyAgICBhWzBdID0g
MTsKKyAgICBiWzBdID0gNDI7CisKKyAgICBDSEVDS19BQkkoYm5fbXVsX21vbnQsIHIuZGF0YSgp
LCBhLmRhdGEoKSwgYi5kYXRhKCksIG1vbnQtPk4uZCwgbW9udC0+bjAsCisgICAgICAgICAgICAg
IHdvcmRzKTsKKyAgICBDSEVDS19BQkkoYm5fbXVsX21vbnQsIHIuZGF0YSgpLCBhLmRhdGEoKSwg
YS5kYXRhKCksIG1vbnQtPk4uZCwgbW9udC0+bjAsCisgICAgICAgICAgICAgIHdvcmRzKTsKKyAg
fQorfQorI2VuZGlmICAgLy8gT1BFTlNTTF9CTl9BU01fTU9OVCAmJiBTVVBQT1JUU19BQklfVEVT
VAorCisjaWYgZGVmaW5lZChPUEVOU1NMX0JOX0FTTV9NT05UNSkgJiYgZGVmaW5lZChTVVBQT1JU
U19BQklfVEVTVCkKK1RFU1RfRihCTlRlc3QsIEJOTXVsTW9udDVBQkkpIHsKKyAgZm9yIChzaXpl
X3Qgd29yZHMgOiB7NCwgNSwgNiwgNywgOCwgMTYsIDMyfSkgeworICAgIFNDT1BFRF9UUkFDRSh3
b3Jkcyk7CisKKyAgICBic3NsOjpVbmlxdWVQdHI8QklHTlVNPiBtKEJOX25ldygpKTsKKyAgICBB
U1NFUlRfVFJVRShtKTsKKyAgICBBU1NFUlRfVFJVRShCTl9zZXRfYml0KG0uZ2V0KCksIDApKTsK
KyAgICBBU1NFUlRfVFJVRShCTl9zZXRfYml0KG0uZ2V0KCksIHdvcmRzICogQk5fQklUUzIgLSAx
KSk7CisgICAgYnNzbDo6VW5pcXVlUHRyPEJOX01PTlRfQ1RYPiBtb250KAorICAgICAgICBCTl9N
T05UX0NUWF9uZXdfZm9yX21vZHVsdXMobS5nZXQoKSwgY3R4KCkpKTsKKyAgICBBU1NFUlRfVFJV
RShtb250KTsKKworICAgIHN0ZDo6dmVjdG9yPEJOX1VMT05HPiByKHdvcmRzKSwgYSh3b3Jkcyks
IGIod29yZHMpLCB0YWJsZSh3b3JkcyAqIDMyKTsKKyAgICBhWzBdID0gMTsKKyAgICBiWzBdID0g
NDI7CisKKyAgICBibl9tdWxfbW9udChyLmRhdGEoKSwgYS5kYXRhKCksIGIuZGF0YSgpLCBtb250
LT5OLmQsIG1vbnQtPm4wLCB3b3Jkcyk7CisgICAgQ0hFQ0tfQUJJKGJuX3NjYXR0ZXI1LCByLmRh
dGEoKSwgd29yZHMsIHRhYmxlLmRhdGEoKSwgMTMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgMzI7IGkrKykgeworICAgICAgYm5fbXVsX21vbnQoci5kYXRhKCksIGEuZGF0YSgpLCBiLmRh
dGEoKSwgbW9udC0+Ti5kLCBtb250LT5uMCwgd29yZHMpOworICAgICAgYm5fc2NhdHRlcjUoci5k
YXRhKCksIHdvcmRzLCB0YWJsZS5kYXRhKCksIGkpOworICAgIH0KKyAgICBDSEVDS19BQkkoYm5f
Z2F0aGVyNSwgci5kYXRhKCksIHdvcmRzLCB0YWJsZS5kYXRhKCksIDEzKTsKKworICAgIENIRUNL
X0FCSShibl9tdWxfbW9udF9nYXRoZXI1LCByLmRhdGEoKSwgci5kYXRhKCksIHRhYmxlLmRhdGEo
KSwgbS0+ZCwKKyAgICAgICAgICAgICAgbW9udC0+bjAsIHdvcmRzLCAxMyk7CisgICAgQ0hFQ0tf
QUJJKGJuX211bF9tb250X2dhdGhlcjUsIHIuZGF0YSgpLCBhLmRhdGEoKSwgdGFibGUuZGF0YSgp
LCBtLT5kLAorICAgICAgICAgICAgICBtb250LT5uMCwgd29yZHMsIDEzKTsKKworICAgIGlmICh3
b3JkcyAlIDggPT0gMCkgeworICAgICAgQ0hFQ0tfQUJJKGJuX3Bvd2VyNSwgci5kYXRhKCksIHIu
ZGF0YSgpLCB0YWJsZS5kYXRhKCksIG0tPmQsIG1vbnQtPm4wLAorICAgICAgICAgICAgICAgIHdv
cmRzLCAxMyk7CisgICAgICBDSEVDS19BQkkoYm5fcG93ZXI1LCByLmRhdGEoKSwgYS5kYXRhKCks
IHRhYmxlLmRhdGEoKSwgbS0+ZCwgbW9udC0+bjAsCisgICAgICAgICAgICAgICAgd29yZHMsIDEz
KTsKKyAgICAgIEVYUEVDVF9FUSgxLCBDSEVDS19BQkkoYm5fZnJvbV9tb250Z29tZXJ5LCByLmRh
dGEoKSwgci5kYXRhKCksIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0t
PmQsIG1vbnQtPm4wLCB3b3JkcykpOworICAgICAgRVhQRUNUX0VRKDEsIENIRUNLX0FCSShibl9m
cm9tX21vbnRnb21lcnksIHIuZGF0YSgpLCBhLmRhdGEoKSwgbnVsbHB0ciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbS0+ZCwgbW9udC0+bjAsIHdvcmRzKSk7CisgICAgfSBlbHNlIHsK
KyAgICAgIEVYUEVDVF9FUSgwLCBDSEVDS19BQkkoYm5fZnJvbV9tb250Z29tZXJ5LCByLmRhdGEo
KSwgci5kYXRhKCksIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0tPmQs
IG1vbnQtPm4wLCB3b3JkcykpOworICAgICAgRVhQRUNUX0VRKDAsIENIRUNLX0FCSShibl9mcm9t
X21vbnRnb21lcnksIHIuZGF0YSgpLCBhLmRhdGEoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbS0+ZCwgbW9udC0+bjAsIHdvcmRzKSk7CisgICAgfQorICB9Cit9Cisj
ZW5kaWYgIC8vIE9QRU5TU0xfQk5fQVNNX01PTlQ1ICYmIFNVUFBPUlRTX0FCSV9URVNUCisKKyNp
ZiBkZWZpbmVkKFJTQVpfRU5BQkxFRCkgJiYgZGVmaW5lZChTVVBQT1JUU19BQklfVEVTVCkKK1RF
U1RfRihCTlRlc3QsIFJTQVpBQkkpIHsKKyAgaWYgKCFyc2F6X2F2eDJfY2FwYWJsZSgpKSB7Cisg
ICAgcmV0dXJuOworICB9CisKKyAgYWxpZ25hcyg2NCkgQk5fVUxPTkcgdGFibGVbMzIgKiAxOF0g
PSB7MH07CisgIGFsaWduYXMoNjQpIEJOX1VMT05HIHJzYXoxWzQwXSwgcnNhejJbNDBdLCByc2F6
M1s0MF0sIG5fcnNhels0MF07CisgIEJOX1VMT05HIG5vcm1bMTZdLCBuX25vcm1bMTZdOworCisg
IE9QRU5TU0xfbWVtc2V0KG5vcm0sIDB4NDIsIHNpemVvZihub3JtKSk7CisgIE9QRU5TU0xfbWVt
c2V0KG5fbm9ybSwgMHg5OSwgc2l6ZW9mKG5fbm9ybSkpOworCisgIGJzc2w6OlVuaXF1ZVB0cjxC
SUdOVU0+IG4oQk5fbmV3KCkpOworICBBU1NFUlRfVFJVRShuKTsKKyAgQVNTRVJUX1RSVUUoYm5f
c2V0X3dvcmRzKG4uZ2V0KCksIG5fbm9ybSwgMTYpKTsKKyAgYnNzbDo6VW5pcXVlUHRyPEJOX01P
TlRfQ1RYPiBtb250KAorICAgICAgQk5fTU9OVF9DVFhfbmV3X2Zvcl9tb2R1bHVzKG4uZ2V0KCks
IG51bGxwdHIpKTsKKyAgQVNTRVJUX1RSVUUobW9udCk7CisgIGNvbnN0IEJOX1VMT05HIGsgPSBt
b250LT5uMFswXTsKKworICBDSEVDS19BQkkocnNhel8xMDI0X25vcm0ycmVkX2F2eDIsIHJzYXox
LCBub3JtKTsKKyAgQ0hFQ0tfQUJJKHJzYXpfMTAyNF9ub3JtMnJlZF9hdngyLCBuX3JzYXosIG5f
bm9ybSk7CisgIENIRUNLX0FCSShyc2F6XzEwMjRfc3FyX2F2eDIsIHJzYXoyLCByc2F6MSwgbl9y
c2F6LCBrLCAxKTsKKyAgQ0hFQ0tfQUJJKHJzYXpfMTAyNF9zcXJfYXZ4MiwgcnNhejMsIHJzYXoy
LCBuX3JzYXosIGssIDQpOworICBDSEVDS19BQkkocnNhel8xMDI0X211bF9hdngyLCByc2F6Mywg
cnNhejEsIHJzYXoyLCBuX3JzYXosIGspOworICBDSEVDS19BQkkocnNhel8xMDI0X3NjYXR0ZXI1
X2F2eDIsIHRhYmxlLCByc2F6MywgNyk7CisgIENIRUNLX0FCSShyc2F6XzEwMjRfZ2F0aGVyNV9h
dngyLCByc2F6MSwgdGFibGUsIDcpOworICBDSEVDS19BQkkocnNhel8xMDI0X3JlZDJub3JtX2F2
eDIsIG5vcm0sIHJzYXoxKTsKK30KKyNlbmRpZiAgIC8vIFJTQVpfRU5BQkxFRCAmJiBTVVBQT1JU
U19BQklfVEVTVApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2N0eC5jIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2N0eC5jCmluZGV4IGFmNTBkZTkzOThiNzE5MzA1N2I2
M2RjMjljNjIzMzI2N2Q4ODllYmIuLjE5MjZlODBiZTViZjdlOTM3MGE2NzI5MjlhOTU5NWE2Mjhl
YWEzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9jdHguYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vY3R4LmMKQEAgLTU0LDYgKzU0LDcgQEAKIAogI2luY2x1
ZGUgPG9wZW5zc2wvYm4uaD4KIAorI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPHN0cmlu
Zy5oPgogCiAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KQEAgLTYyLDYzICs2Myw0NiBAQAogI2lu
Y2x1ZGUgIi4uLy4uL2ludGVybmFsLmgiCiAKIAotLy8gSG93IG1hbnkgYmlnbnVtcyBhcmUgaW4g
ZWFjaCAicG9vbCBpdGVtIjsKLSNkZWZpbmUgQk5fQ1RYX1BPT0xfU0laRSAxNgogLy8gVGhlIHN0
YWNrIGZyYW1lIGluZm8gaXMgcmVzaXppbmcsIHNldCBhIGZpcnN0LXRpbWUgZXhwYW5zaW9uIHNp
emU7CiAjZGVmaW5lIEJOX0NUWF9TVEFSVF9GUkFNRVMgMzIKIAotLy8gQSBidW5kbGUgb2YgYmln
bnVtcyB0aGF0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBidW5kbGVzCi10eXBlZGVmIHN0cnVj
dCBiaWdudW1fcG9vbF9pdGVtIHsKLSAgLy8gVGhlIGJpZ251bSB2YWx1ZXMKLSAgQklHTlVNIHZh
bHNbQk5fQ1RYX1BPT0xfU0laRV07Ci0gIC8vIExpbmtlZC1saXN0IGFkbWluCi0gIHN0cnVjdCBi
aWdudW1fcG9vbF9pdGVtICpwcmV2LCAqbmV4dDsKLX0gQk5fUE9PTF9JVEVNOwotCi0KLXR5cGVk
ZWYgc3RydWN0IGJpZ251bV9wb29sIHsKLSAgLy8gTGlua2VkLWxpc3QgYWRtaW4KLSAgQk5fUE9P
TF9JVEVNICpoZWFkLCAqY3VycmVudCwgKnRhaWw7Ci0gIC8vIFN0YWNrIGRlcHRoIGFuZCBhbGxv
Y2F0aW9uIHNpemUKLSAgdW5zaWduZWQgdXNlZCwgc2l6ZTsKLX0gQk5fUE9PTDsKLQotc3RhdGlj
IHZvaWQgQk5fUE9PTF9pbml0KEJOX1BPT0wgKik7Ci1zdGF0aWMgdm9pZCBCTl9QT09MX2Zpbmlz
aChCTl9QT09MICopOwotc3RhdGljIEJJR05VTSAqQk5fUE9PTF9nZXQoQk5fUE9PTCAqKTsKLXN0
YXRpYyB2b2lkIEJOX1BPT0xfcmVsZWFzZShCTl9QT09MICosIHVuc2lnbmVkIGludCk7Ci0KIAog
Ly8gQk5fU1RBQ0sKIAotLy8gQSB3cmFwcGVyIHRvIG1hbmFnZSB0aGUgInN0YWNrIGZyYW1lcyIK
LXR5cGVkZWYgc3RydWN0IGJpZ251bV9jdHhfc3RhY2sgewotICAvLyBBcnJheSBvZiBpbmRleGVz
IGludG8gdGhlIGJpZ251bSBzdGFjawotICB1bnNpZ25lZCBpbnQgKmluZGV4ZXM7CisvLyBBIHxC
Tl9TVEFDS3wgaXMgYSBzdGFjayBvZiB8c2l6ZV90fCB2YWx1ZXMuCit0eXBlZGVmIHN0cnVjdCB7
CisgIC8vIEFycmF5IG9mIGluZGV4ZXMgaW50byB8Y3R4LT5iaWdudW1zfC4KKyAgc2l6ZV90ICpp
bmRleGVzOwogICAvLyBOdW1iZXIgb2Ygc3RhY2sgZnJhbWVzLCBhbmQgdGhlIHNpemUgb2YgdGhl
IGFsbG9jYXRlZCBhcnJheQotICB1bnNpZ25lZCBpbnQgZGVwdGgsIHNpemU7CisgIHNpemVfdCBk
ZXB0aCwgc2l6ZTsKIH0gQk5fU1RBQ0s7CiAKLXN0YXRpYyB2b2lkCQlCTl9TVEFDS19pbml0KEJO
X1NUQUNLICopOwotc3RhdGljIHZvaWQJCUJOX1NUQUNLX2ZpbmlzaChCTl9TVEFDSyAqKTsKLXN0
YXRpYyBpbnQJCUJOX1NUQUNLX3B1c2goQk5fU1RBQ0sgKiwgdW5zaWduZWQgaW50KTsKLXN0YXRp
YyB1bnNpZ25lZCBpbnQJQk5fU1RBQ0tfcG9wKEJOX1NUQUNLICopOworc3RhdGljIHZvaWQgQk5f
U1RBQ0tfaW5pdChCTl9TVEFDSyAqKTsKK3N0YXRpYyB2b2lkIEJOX1NUQUNLX2NsZWFudXAoQk5f
U1RBQ0sgKik7CitzdGF0aWMgaW50IEJOX1NUQUNLX3B1c2goQk5fU1RBQ0sgKiwgc2l6ZV90IGlk
eCk7CitzdGF0aWMgc2l6ZV90IEJOX1NUQUNLX3BvcChCTl9TVEFDSyAqKTsKIAogCiAvLyBCTl9D
VFgKIAorREVGSU5FX1NUQUNLX09GKEJJR05VTSkKKwogLy8gVGhlIG9wYXF1ZSBCTl9DVFggdHlw
ZQogc3RydWN0IGJpZ251bV9jdHggewotICAvLyBUaGUgYmlnbnVtIGJ1bmRsZXMKLSAgQk5fUE9P
TCBwb29sOwotICAvLyBUaGUgInN0YWNrIGZyYW1lcyIsIGlmIHlvdSB3aWxsCisgIC8vIGJpZ251
bXMgaXMgdGhlIHN0YWNrIG9mIHxCSUdOVU18cyBtYW5hZ2VkIGJ5IHRoaXMgfEJOX0NUWHwuCisg
IFNUQUNLX09GKEJJR05VTSkgKmJpZ251bXM7CisgIC8vIHN0YWNrIGlzIHRoZSBzdGFjayBvZiB8
Qk5fQ1RYX3N0YXJ0fCBmcmFtZXMuIEl0IGlzIHRoZSB2YWx1ZSBvZiB8dXNlZHwgYXQKKyAgLy8g
dGhlIHRpbWUgfEJOX0NUWF9zdGFydHwgd2FzIGNhbGxlZC4KICAgQk5fU1RBQ0sgc3RhY2s7Ci0g
IC8vIFRoZSBudW1iZXIgb2YgYmlnbnVtcyBjdXJyZW50bHkgYXNzaWduZWQKLSAgdW5zaWduZWQg
aW50IHVzZWQ7Ci0gIC8vIERlcHRoIG9mIHN0YWNrIG92ZXJmbG93Ci0gIGludCBlcnJfc3RhY2s7
Ci0gIC8vIEJsb2NrICJnZXRzIiB1bnRpbCBhbiAiZW5kIiAoY29tcGF0aWJpbGl0eSBiZWhhdmlv
dXIpCi0gIGludCB0b29fbWFueTsKKyAgLy8gdXNlZCBpcyB0aGUgbnVtYmVyIG9mIHxCSUdOVU18
cyBmcm9tIHxiaWdudW1zfCB0aGF0IGhhdmUgYmVlbiB1c2VkLgorICBzaXplX3QgdXNlZDsKKyAg
Ly8gZXJyb3IgaXMgb25lIGlmIGFueSBvcGVyYXRpb24gb24gdGhpcyB8Qk5fQ1RYfCBmYWlsZWQu
IEFsbCBzdWJzZXF1ZW50CisgIC8vIG9wZXJhdGlvbnMgd2lsbCBmYWlsLgorICBjaGFyIGVycm9y
OworICAvLyBkZWZlcl9lcnJvciBpcyBvbmUgaWYgYW4gb3BlcmF0aW9uIG9uIHRoaXMgfEJOX0NU
WHwgaGFzIGZhaWxlZCwgYnV0IG5vCisgIC8vIGVycm9yIGhhcyBiZWVuIHB1c2hlZCB0byB0aGUg
cXVldWUgeWV0LiBUaGlzIGlzIHVzZWQgdG8gZGVmZXIgZXJyb3JzIGZyb20KKyAgLy8gfEJOX0NU
WF9zdGFydHwgdG8gfEJOX0NUWF9nZXR8LgorICBjaGFyIGRlZmVyX2Vycm9yOwogfTsKIAogQk5f
Q1RYICpCTl9DVFhfbmV3KHZvaWQpIHsKQEAgLTEyOSwxMSArMTEzLDExIEBAIEJOX0NUWCAqQk5f
Q1RYX25ldyh2b2lkKSB7CiAgIH0KIAogICAvLyBJbml0aWFsaXNlIHRoZSBzdHJ1Y3R1cmUKLSAg
Qk5fUE9PTF9pbml0KCZyZXQtPnBvb2wpOworICByZXQtPmJpZ251bXMgPSBOVUxMOwogICBCTl9T
VEFDS19pbml0KCZyZXQtPnN0YWNrKTsKICAgcmV0LT51c2VkID0gMDsKLSAgcmV0LT5lcnJfc3Rh
Y2sgPSAwOwotICByZXQtPnRvb19tYW55ID0gMDsKKyAgcmV0LT5lcnJvciA9IDA7CisgIHJldC0+
ZGVmZXJfZXJyb3IgPSAwOwogICByZXR1cm4gcmV0OwogfQogCkBAIC0xNDIsNTcgKzEyNiw2OSBA
QCB2b2lkIEJOX0NUWF9mcmVlKEJOX0NUWCAqY3R4KSB7CiAgICAgcmV0dXJuOwogICB9CiAKLSAg
Qk5fU1RBQ0tfZmluaXNoKCZjdHgtPnN0YWNrKTsKLSAgQk5fUE9PTF9maW5pc2goJmN0eC0+cG9v
bCk7CisgIHNrX0JJR05VTV9wb3BfZnJlZShjdHgtPmJpZ251bXMsIEJOX2ZyZWUpOworICBCTl9T
VEFDS19jbGVhbnVwKCZjdHgtPnN0YWNrKTsKICAgT1BFTlNTTF9mcmVlKGN0eCk7CiB9CiAKIHZv
aWQgQk5fQ1RYX3N0YXJ0KEJOX0NUWCAqY3R4KSB7Ci0gIC8vIElmIHdlJ3JlIGFscmVhZHkgb3Zl
cmZsb3dpbmcgLi4uCi0gIGlmIChjdHgtPmVycl9zdGFjayB8fCBjdHgtPnRvb19tYW55KSB7Ci0g
ICAgY3R4LT5lcnJfc3RhY2srKzsKLSAgfSBlbHNlIGlmICghQk5fU1RBQ0tfcHVzaCgmY3R4LT5z
dGFjaywgY3R4LT51c2VkKSkgewotICAgIC8vIChUcnkgdG8pIGdldCBhIG5ldyBmcmFtZSBwb2lu
dGVyCi0gICAgT1BFTlNTTF9QVVRfRVJST1IoQk4sIEJOX1JfVE9PX01BTllfVEVNUE9SQVJZX1ZB
UklBQkxFUyk7Ci0gICAgY3R4LT5lcnJfc3RhY2srKzsKKyAgaWYgKGN0eC0+ZXJyb3IpIHsKKyAg
ICAvLyBPbmNlIGFuIG9wZXJhdGlvbiBoYXMgZmFpbGVkLCB8Y3R4LT5zdGFja3wgbm8gbG9uZ2Vy
IG1hdGNoZXMgdGhlIG51bWJlcgorICAgIC8vIG9mIHxCTl9DVFhfZW5kfCBjYWxscyB0byBjb21l
LiBEbyBub3RoaW5nLgorICAgIHJldHVybjsKKyAgfQorCisgIGlmICghQk5fU1RBQ0tfcHVzaCgm
Y3R4LT5zdGFjaywgY3R4LT51c2VkKSkgeworICAgIGN0eC0+ZXJyb3IgPSAxOworICAgIC8vIHxC
Tl9DVFhfc3RhcnR8IGNhbm5vdCBmYWlsLCBzbyBkZWZlciB0aGUgZXJyb3IgdG8gfEJOX0NUWF9n
ZXR8LgorICAgIGN0eC0+ZGVmZXJfZXJyb3IgPSAxOwogICB9CiB9CiAKIEJJR05VTSAqQk5fQ1RY
X2dldChCTl9DVFggKmN0eCkgewotICBCSUdOVU0gKnJldDsKLSAgaWYgKGN0eC0+ZXJyX3N0YWNr
IHx8IGN0eC0+dG9vX21hbnkpIHsKKyAgLy8gT25jZSBhbnkgb3BlcmF0aW9uIGhhcyBmYWlsZWQs
IHRoZXkgYWxsIGRvLgorICBpZiAoY3R4LT5lcnJvcikgeworICAgIGlmIChjdHgtPmRlZmVyX2Vy
cm9yKSB7CisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihCTiwgQk5fUl9UT09fTUFOWV9URU1QT1JB
UllfVkFSSUFCTEVTKTsKKyAgICAgIGN0eC0+ZGVmZXJfZXJyb3IgPSAwOworICAgIH0KICAgICBy
ZXR1cm4gTlVMTDsKICAgfQogCi0gIHJldCA9IEJOX1BPT0xfZ2V0KCZjdHgtPnBvb2wpOwotICBp
ZiAocmV0ID09IE5VTEwpIHsKLSAgICAvLyBTZXR0aW5nIHRvb19tYW55IHByZXZlbnRzIHJlcGVh
dGVkICJnZXQiIGF0dGVtcHRzIGZyb20KLSAgICAvLyBjbHV0dGVyaW5nIHRoZSBlcnJvciBzdGFj
ay4KLSAgICBjdHgtPnRvb19tYW55ID0gMTsKLSAgICBPUEVOU1NMX1BVVF9FUlJPUihCTiwgQk5f
Ul9UT09fTUFOWV9URU1QT1JBUllfVkFSSUFCTEVTKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgaWYg
KGN0eC0+YmlnbnVtcyA9PSBOVUxMKSB7CisgICAgY3R4LT5iaWdudW1zID0gc2tfQklHTlVNX25l
d19udWxsKCk7CisgICAgaWYgKGN0eC0+YmlnbnVtcyA9PSBOVUxMKSB7CisgICAgICBPUEVOU1NM
X1BVVF9FUlJPUihCTiwgRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOworICAgICAgY3R4LT5lcnJvciA9
IDE7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAgIH0KIAotICAvLyBPSywgbWFrZSBzdXJl
IHRoZSByZXR1cm5lZCBiaWdudW0gaXMgInplcm8iCisgIGlmIChjdHgtPnVzZWQgPT0gc2tfQklH
TlVNX251bShjdHgtPmJpZ251bXMpKSB7CisgICAgQklHTlVNICpibiA9IEJOX25ldygpOworICAg
IGlmIChibiA9PSBOVUxMIHx8ICFza19CSUdOVU1fcHVzaChjdHgtPmJpZ251bXMsIGJuKSkgewor
ICAgICAgT1BFTlNTTF9QVVRfRVJST1IoQk4sIEJOX1JfVE9PX01BTllfVEVNUE9SQVJZX1ZBUklB
QkxFUyk7CisgICAgICBCTl9mcmVlKGJuKTsKKyAgICAgIGN0eC0+ZXJyb3IgPSAxOworICAgICAg
cmV0dXJuIE5VTEw7CisgICAgfQorICB9CisKKyAgQklHTlVNICpyZXQgPSBza19CSUdOVU1fdmFs
dWUoY3R4LT5iaWdudW1zLCBjdHgtPnVzZWQpOwogICBCTl96ZXJvKHJldCk7CisgIC8vIFRoaXMg
aXMgYm91bmRlZCBieSB8c2tfQklHTlVNX251bXwsIHNvIGl0IGNhbm5vdCBvdmVyZmxvdy4KICAg
Y3R4LT51c2VkKys7CiAgIHJldHVybiByZXQ7CiB9CiAKIHZvaWQgQk5fQ1RYX2VuZChCTl9DVFgg
KmN0eCkgewotICBpZiAoY3R4LT5lcnJfc3RhY2spIHsKLSAgICBjdHgtPmVycl9zdGFjay0tOwot
ICB9IGVsc2UgewotICAgIHVuc2lnbmVkIGludCBmcCA9IEJOX1NUQUNLX3BvcCgmY3R4LT5zdGFj
ayk7Ci0gICAgLy8gRG9lcyB0aGlzIHN0YWNrIGZyYW1lIGhhdmUgYW55dGhpbmcgdG8gcmVsZWFz
ZT8KLSAgICBpZiAoZnAgPCBjdHgtPnVzZWQpIHsKLSAgICAgIEJOX1BPT0xfcmVsZWFzZSgmY3R4
LT5wb29sLCBjdHgtPnVzZWQgLSBmcCk7Ci0gICAgfQotCi0gICAgY3R4LT51c2VkID0gZnA7Ci0g
ICAgLy8gVW5qYW0gInRvb19tYW55IiBpbiBjYXNlICJnZXQiIGhhZCBmYWlsZWQKLSAgICBjdHgt
PnRvb19tYW55ID0gMDsKKyAgaWYgKGN0eC0+ZXJyb3IpIHsKKyAgICAvLyBPbmNlIGFuIG9wZXJh
dGlvbiBoYXMgZmFpbGVkLCB8Y3R4LT5zdGFja3wgbm8gbG9uZ2VyIG1hdGNoZXMgdGhlIG51bWJl
cgorICAgIC8vIG9mIHxCTl9DVFhfZW5kfCBjYWxscyB0byBjb21lLiBEbyBub3RoaW5nLgorICAg
IHJldHVybjsKICAgfQorCisgIGN0eC0+dXNlZCA9IEJOX1NUQUNLX3BvcCgmY3R4LT5zdGFjayk7
CiB9CiAKIApAQCAtMjAzLDEwMSArMTk5LDM0IEBAIHN0YXRpYyB2b2lkIEJOX1NUQUNLX2luaXQo
Qk5fU1RBQ0sgKnN0KSB7CiAgIHN0LT5kZXB0aCA9IHN0LT5zaXplID0gMDsKIH0KIAotc3RhdGlj
IHZvaWQgQk5fU1RBQ0tfZmluaXNoKEJOX1NUQUNLICpzdCkgeworc3RhdGljIHZvaWQgQk5fU1RB
Q0tfY2xlYW51cChCTl9TVEFDSyAqc3QpIHsKICAgT1BFTlNTTF9mcmVlKHN0LT5pbmRleGVzKTsK
IH0KIAotc3RhdGljIGludCBCTl9TVEFDS19wdXNoKEJOX1NUQUNLICpzdCwgdW5zaWduZWQgaW50
IGlkeCkgeworc3RhdGljIGludCBCTl9TVEFDS19wdXNoKEJOX1NUQUNLICpzdCwgc2l6ZV90IGlk
eCkgewogICBpZiAoc3QtPmRlcHRoID09IHN0LT5zaXplKSB7Ci0gICAgLy8gTmVlZCB0byBleHBh
bmQKLSAgICB1bnNpZ25lZCBpbnQgbmV3c2l6ZSA9Ci0gICAgICAgIChzdC0+c2l6ZSA/IChzdC0+
c2l6ZSAqIDMgLyAyKSA6IEJOX0NUWF9TVEFSVF9GUkFNRVMpOwotICAgIHVuc2lnbmVkIGludCAq
bmV3aXRlbXMgPSBPUEVOU1NMX21hbGxvYyhuZXdzaXplICogc2l6ZW9mKHVuc2lnbmVkIGludCkp
OwotICAgIGlmICghbmV3aXRlbXMpIHsKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGludGVudGlvbmFs
bHkgZG9lcyBub3QgcHVzaCB0byB0aGUgZXJyb3IgcXVldWUgb24gZXJyb3IuCisgICAgLy8gRXJy
b3ItcmVwb3J0aW5nIGlzIGRlZmVycmVkIHRvIHxCTl9DVFhfZ2V0fC4KKyAgICBzaXplX3QgbmV3
X3NpemUgPSBzdC0+c2l6ZSAhPSAwID8gc3QtPnNpemUgKiAzIC8gMiA6IEJOX0NUWF9TVEFSVF9G
UkFNRVM7CisgICAgaWYgKG5ld19zaXplIDw9IHN0LT5zaXplIHx8IG5ld19zaXplID4gKChzaXpl
X3QpLTEpIC8gc2l6ZW9mKHNpemVfdCkpIHsKICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBp
ZiAoc3QtPmRlcHRoKSB7Ci0gICAgICBPUEVOU1NMX21lbWNweShuZXdpdGVtcywgc3QtPmluZGV4
ZXMsIHN0LT5kZXB0aCAqIHNpemVvZih1bnNpZ25lZCBpbnQpKTsKKyAgICBzaXplX3QgKm5ld19p
bmRleGVzID0KKyAgICAgICAgT1BFTlNTTF9yZWFsbG9jKHN0LT5pbmRleGVzLCBuZXdfc2l6ZSAq
IHNpemVvZihzaXplX3QpKTsKKyAgICBpZiAobmV3X2luZGV4ZXMgPT0gTlVMTCkgeworICAgICAg
cmV0dXJuIDA7CiAgICAgfQotICAgIE9QRU5TU0xfZnJlZShzdC0+aW5kZXhlcyk7Ci0gICAgc3Qt
PmluZGV4ZXMgPSBuZXdpdGVtczsKLSAgICBzdC0+c2l6ZSA9IG5ld3NpemU7CisgICAgc3QtPmlu
ZGV4ZXMgPSBuZXdfaW5kZXhlczsKKyAgICBzdC0+c2l6ZSA9IG5ld19zaXplOwogICB9CiAKLSAg
c3QtPmluZGV4ZXNbKHN0LT5kZXB0aCkrK10gPSBpZHg7CisgIHN0LT5pbmRleGVzW3N0LT5kZXB0
aF0gPSBpZHg7CisgIHN0LT5kZXB0aCsrOwogICByZXR1cm4gMTsKIH0KIAotc3RhdGljIHVuc2ln
bmVkIGludCBCTl9TVEFDS19wb3AoQk5fU1RBQ0sgKnN0KSB7Ci0gIHJldHVybiBzdC0+aW5kZXhl
c1stLShzdC0+ZGVwdGgpXTsKLX0KLQotCi1zdGF0aWMgdm9pZCBCTl9QT09MX2luaXQoQk5fUE9P
TCAqcCkgewotICBwLT5oZWFkID0gcC0+Y3VycmVudCA9IHAtPnRhaWwgPSBOVUxMOwotICBwLT51
c2VkID0gcC0+c2l6ZSA9IDA7Ci19Ci0KLXN0YXRpYyB2b2lkIEJOX1BPT0xfZmluaXNoKEJOX1BP
T0wgKnApIHsKLSAgd2hpbGUgKHAtPmhlYWQpIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IEJOX0NUWF9QT09MX1NJWkU7IGkrKykgewotICAgICAgQk5fY2xlYXJfZnJlZSgmcC0+aGVhZC0+
dmFsc1tpXSk7Ci0gICAgfQotCi0gICAgcC0+Y3VycmVudCA9IHAtPmhlYWQtPm5leHQ7Ci0gICAg
T1BFTlNTTF9mcmVlKHAtPmhlYWQpOwotICAgIHAtPmhlYWQgPSBwLT5jdXJyZW50OwotICB9Ci19
Ci0KLXN0YXRpYyBCSUdOVU0gKkJOX1BPT0xfZ2V0KEJOX1BPT0wgKnApIHsKLSAgaWYgKHAtPnVz
ZWQgPT0gcC0+c2l6ZSkgewotICAgIEJOX1BPT0xfSVRFTSAqaXRlbSA9IE9QRU5TU0xfbWFsbG9j
KHNpemVvZihCTl9QT09MX0lURU0pKTsKLSAgICBpZiAoIWl0ZW0pIHsKLSAgICAgIHJldHVybiBO
VUxMOwotICAgIH0KLQotICAgIC8vIEluaXRpYWxpc2UgdGhlIHN0cnVjdHVyZQotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgQk5fQ1RYX1BPT0xfU0laRTsgaSsrKSB7Ci0gICAgICBCTl9pbml0
KCZpdGVtLT52YWxzW2ldKTsKLSAgICB9Ci0KLSAgICBpdGVtLT5wcmV2ID0gcC0+dGFpbDsKLSAg
ICBpdGVtLT5uZXh0ID0gTlVMTDsKLSAgICAvLyBMaW5rIGl0IGluCi0gICAgaWYgKCFwLT5oZWFk
KSB7Ci0gICAgICBwLT5oZWFkID0gcC0+Y3VycmVudCA9IHAtPnRhaWwgPSBpdGVtOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBwLT50YWlsLT5uZXh0ID0gaXRlbTsKLSAgICAgIHAtPnRhaWwgPSBpdGVt
OwotICAgICAgcC0+Y3VycmVudCA9IGl0ZW07Ci0gICAgfQotCi0gICAgcC0+c2l6ZSArPSBCTl9D
VFhfUE9PTF9TSVpFOwotICAgIHAtPnVzZWQrKzsKLSAgICAvLyBSZXR1cm4gdGhlIGZpcnN0IGJp
Z251bSBmcm9tIHRoZSBuZXcgcG9vbAotICAgIHJldHVybiBpdGVtLT52YWxzOwotICB9Ci0KLSAg
aWYgKCFwLT51c2VkKSB7Ci0gICAgcC0+Y3VycmVudCA9IHAtPmhlYWQ7Ci0gIH0gZWxzZSBpZiAo
KHAtPnVzZWQgJSBCTl9DVFhfUE9PTF9TSVpFKSA9PSAwKSB7Ci0gICAgcC0+Y3VycmVudCA9IHAt
PmN1cnJlbnQtPm5leHQ7Ci0gIH0KLQotICByZXR1cm4gcC0+Y3VycmVudC0+dmFscyArICgocC0+
dXNlZCsrKSAlIEJOX0NUWF9QT09MX1NJWkUpOwotfQotCi1zdGF0aWMgdm9pZCBCTl9QT09MX3Jl
bGVhc2UoQk5fUE9PTCAqcCwgdW5zaWduZWQgaW50IG51bSkgewotICB1bnNpZ25lZCBpbnQgb2Zm
c2V0ID0gKHAtPnVzZWQgLSAxKSAlIEJOX0NUWF9QT09MX1NJWkU7Ci0gIHAtPnVzZWQgLT0gbnVt
OwotCi0gIHdoaWxlIChudW0tLSkgewotICAgIGlmICghb2Zmc2V0KSB7Ci0gICAgICBvZmZzZXQg
PSBCTl9DVFhfUE9PTF9TSVpFIC0gMTsKLSAgICAgIHAtPmN1cnJlbnQgPSBwLT5jdXJyZW50LT5w
cmV2OwotICAgIH0gZWxzZSB7Ci0gICAgICBvZmZzZXQtLTsKLSAgICB9Ci0gIH0KK3N0YXRpYyBz
aXplX3QgQk5fU1RBQ0tfcG9wKEJOX1NUQUNLICpzdCkgeworICBhc3NlcnQoc3QtPmRlcHRoID4g
MCk7CisgIHN0LT5kZXB0aC0tOworICByZXR1cm4gc3QtPmluZGV4ZXNbc3QtPmRlcHRoXTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9leHBvbmVudGlhdGlvbi5jIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2V4cG9uZW50aWF0aW9uLmMKaW5kZXggMWI5NjgwZmI5
YTAyOGI1NzAyNzBlYzA1ZGMzNjQyN2NhODY5NDZjNy4uOGQ0YTVjOGIzNDYwNTVhZWM0M2ZkOGNj
ZGM1MjNiYzgyYWVhNGJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2V4
cG9uZW50aWF0aW9uLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2V4cG9uZW50aWF0
aW9uLmMKQEAgLTExNywyNiArMTE3LDggQEAKICNpbmNsdWRlIDxvcGVuc3NsL21lbS5oPgogCiAj
aW5jbHVkZSAiaW50ZXJuYWwuaCIKLQotCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYm
IGRlZmluZWQoT1BFTlNTTF9YODZfNjQpCi0jZGVmaW5lIE9QRU5TU0xfQk5fQVNNX01PTlQ1Ci0j
ZGVmaW5lIFJTQVpfRU5BQkxFRAotCiAjaW5jbHVkZSAicnNhel9leHAuaCIKIAotdm9pZCBibl9t
dWxfbW9udF9nYXRoZXI1KEJOX1VMT05HICpycCwgY29uc3QgQk5fVUxPTkcgKmFwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HICp0YWJsZSwgY29uc3QgQk5fVUxPTkcg
Km5wLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HICpuMCwgaW50IG51
bSwgaW50IHBvd2VyKTsKLXZvaWQgYm5fc2NhdHRlcjUoY29uc3QgQk5fVUxPTkcgKmlucCwgc2l6
ZV90IG51bSwgQk5fVUxPTkcgKnRhYmxlLAotICAgICAgICAgICAgICAgICBzaXplX3QgcG93ZXIp
Owotdm9pZCBibl9nYXRoZXI1KEJOX1VMT05HICpvdXQsIHNpemVfdCBudW0sIEJOX1VMT05HICp0
YWJsZSwgc2l6ZV90IHBvd2VyKTsKLXZvaWQgYm5fcG93ZXI1KEJOX1VMT05HICpycCwgY29uc3Qg
Qk5fVUxPTkcgKmFwLCBjb25zdCBCTl9VTE9ORyAqdGFibGUsCi0gICAgICAgICAgICAgICBjb25z
dCBCTl9VTE9ORyAqbnAsIGNvbnN0IEJOX1VMT05HICpuMCwgaW50IG51bSwgaW50IHBvd2VyKTsK
LWludCBibl9mcm9tX21vbnRnb21lcnkoQk5fVUxPTkcgKnJwLCBjb25zdCBCTl9VTE9ORyAqYXAs
Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HICpub3RfdXNlZCwgY29uc3Qg
Qk5fVUxPTkcgKm5wLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCTl9VTE9ORyAqbjAs
IGludCBudW0pOwotI2VuZGlmCiAKIGludCBCTl9leHAoQklHTlVNICpyLCBjb25zdCBCSUdOVU0g
KmEsIGNvbnN0IEJJR05VTSAqcCwgQk5fQ1RYICpjdHgpIHsKICAgaW50IGksIGJpdHMsIHJldCA9
IDA7CkBAIC02MzIsMTAgKzYxNCw5IEBAIGludCBCTl9tb2RfZXhwX21vbnQoQklHTlVNICpyciwg
Y29uc3QgQklHTlVNICphLCBjb25zdCBCSUdOVU0gKnAsCiAgIEJOX01PTlRfQ1RYICpuZXdfbW9u
dCA9IE5VTEw7CiAKICAgQk5fQ1RYX3N0YXJ0KGN0eCk7Ci0gIEJJR05VTSAqZCA9IEJOX0NUWF9n
ZXQoY3R4KTsKICAgQklHTlVNICpyID0gQk5fQ1RYX2dldChjdHgpOwogICB2YWxbMF0gPSBCTl9D
VFhfZ2V0KGN0eCk7Ci0gIGlmICghZCB8fCAhciB8fCAhdmFsWzBdKSB7CisgIGlmIChyID09IE5V
TEwgfHwgdmFsWzBdID09IE5VTEwpIHsKICAgICBnb3RvIGVycjsKICAgfQogCkBAIC02NTcsNyAr
NjM4LDkgQEAgaW50IEJOX21vZF9leHBfbW9udChCSUdOVU0gKnJyLCBjb25zdCBCSUdOVU0gKmEs
IGNvbnN0IEJJR05VTSAqcCwKICAgICBnb3RvIGVycjsKICAgfQogICBpZiAod2luZG93ID4gMSkg
ewotICAgIGlmICghQk5fbW9kX211bF9tb250Z29tZXJ5KGQsIHZhbFswXSwgdmFsWzBdLCBtb250
LCBjdHgpKSB7CisgICAgQklHTlVNICpkID0gQk5fQ1RYX2dldChjdHgpOworICAgIGlmIChkID09
IE5VTEwgfHwKKyAgICAgICAgIUJOX21vZF9tdWxfbW9udGdvbWVyeShkLCB2YWxbMF0sIHZhbFsw
XSwgbW9udCwgY3R4KSkgewogICAgICAgZ290byBlcnI7CiAgICAgfQogICAgIGZvciAoaW50IGkg
PSAxOyBpIDwgMSA8PCAod2luZG93IC0gMSk7IGkrKykgewpAQCAtOTc0LDEyICs5NTcsMTIgQEAg
aW50IEJOX21vZF9leHBfbW9udF9jb25zdHRpbWUoQklHTlVNICpyciwgY29uc3QgQklHTlVNICph
LCBjb25zdCBCSUdOVU0gKnAsCiAgIGFsaWduYXMoTU9EX0VYUF9DVElNRV9NSU5fQ0FDSEVfTElO
RV9XSURUSCkgQk5fVUxPTkcKICAgICBzdG9yYWdlW01PRF9FWFBfQ1RJTUVfU1RPUkFHRV9MRU5d
OwogI2VuZGlmCi0jaWZkZWYgUlNBWl9FTkFCTEVECi0gIC8vIElmIHRoZSBzaXplIG9mIHRoZSBv
cGVyYW5kcyBhbGxvdyBpdCwgcGVyZm9ybSB0aGUgb3B0aW1pemVkCi0gIC8vIFJTQVogZXhwb25l
bnRpYXRpb24uIEZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIHNlZQotICAvLyBjcnlwdG8vYm4vcnNh
el9leHAuYyBhbmQgYWNjb21wYW55aW5nIGFzc2VtYmx5IG1vZHVsZXMuCi0gIGlmICgoMTYgPT0g
YS0+d2lkdGgpICYmICgxNiA9PSBwLT53aWR0aCkgJiYgKEJOX251bV9iaXRzKG0pID09IDEwMjQp
ICYmCi0gICAgICByc2F6X2F2eDJfZWxpZ2libGUoKSkgeworI2lmIGRlZmluZWQoUlNBWl9FTkFC
TEVEKQorICAvLyBJZiB0aGUgc2l6ZSBvZiB0aGUgb3BlcmFuZHMgYWxsb3cgaXQsIHBlcmZvcm0g
dGhlIG9wdGltaXplZCBSU0FaCisgIC8vIGV4cG9uZW50aWF0aW9uLiBGb3IgZnVydGhlciBpbmZv
cm1hdGlvbiBzZWUgY3J5cHRvL2ZpcHNtb2R1bGUvYm4vcnNhel9leHAuYworICAvLyBhbmQgYWNj
b21wYW55aW5nIGFzc2VtYmx5IG1vZHVsZXMuCisgIGlmIChhLT53aWR0aCA9PSAxNiAmJiBwLT53
aWR0aCA9PSAxNiAmJiBCTl9udW1fYml0cyhtKSA9PSAxMDI0ICYmCisgICAgICByc2F6X2F2eDJf
cHJlZmVycmVkKCkpIHsKICAgICBpZiAoIWJuX3dleHBhbmQocnIsIDE2KSkgewogICAgICAgZ290
byBlcnI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2ludGVy
bmFsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vaW50ZXJuYWwuaAppbmRleCBmYjhkMTFm
ZWQ4NDM5OGQ3MDczYzZiOGZkZjhjZThhZDZiMDg3ZDBmLi5jMWU2MGZlNTVlMjE1YTFiZDc4MWI5
ZTBkMTlmMGUzODVkYzI3ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4v
aW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vaW50ZXJuYWwuaApAQCAt
MzM2LDggKzMzNiw2NCBAQCBpbnQgYm5fcmFuZF9yYW5nZV93b3JkcyhCTl9VTE9ORyAqb3V0LCBC
Tl9VTE9ORyBtaW5faW5jbHVzaXZlLAogaW50IGJuX3JhbmRfc2VjcmV0X3JhbmdlKEJJR05VTSAq
ciwgaW50ICpvdXRfaXNfdW5pZm9ybSwgQk5fVUxPTkcgbWluX2luY2x1c2l2ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBCSUdOVU0gKm1heF9leGNsdXNpdmUpOwogCisjaWYgIWRl
ZmluZWQoT1BFTlNTTF9OT19BU00pICYmICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAo
ZGVmaW5lZChPUEVOU1NMX1g4NikgfHwgZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkgfHwgXAorICAg
ICBkZWZpbmVkKE9QRU5TU0xfQVJNKSB8fCBkZWZpbmVkKE9QRU5TU0xfQUFSQ0g2NCkpCisjZGVm
aW5lIE9QRU5TU0xfQk5fQVNNX01PTlQKKy8vIGJuX211bF9tb250IHdyaXRlcyB8YXB8ICogfGJw
fCBtb2QgfG5wfCB0byB8cnB8LCBlYWNoIHxudW18IHdvcmRzCisvLyBsb25nLiBJbnB1dHMgYW5k
IG91dHB1dHMgYXJlIGluIE1vbnRnb21lcnkgZm9ybS4gfG4wfCBpcyBhIHBvaW50ZXIgdG8gdGhl
CisvLyBjb3JyZXNwb25kaW5nIGZpZWxkIGluIHxCTl9NT05UX0NUWHwuIEl0IHJldHVybnMgb25l
IGlmIHxibl9tdWxfbW9udHwgaGFuZGxlcworLy8gaW5wdXRzIG9mIHRoaXMgc2l6ZSBhbmQgemVy
byBvdGhlcndpc2UuCisvLworLy8gVE9ETyhkYXZpZGJlbik6IFRoZSB4ODZfNjQgaW1wbGVtZW50
YXRpb24gZXhwZWN0cyBhIDMyLWJpdCBpbnB1dCBhbmQgbWFza3MKKy8vIG9mZiB1cHBlciBiaXRz
LiBUaGUgYWFyY2g2NCBpbXBsZW1lbnRhdGlvbiBleHBlY3RzIGEgNjQtYml0IGlucHV0IGFuZCBk
b2VzCisvLyBub3QuIHxzaXplX3R8IGlzIHRoZSBzYWZlciBvcHRpb24gYnV0IG5vdCBzdHJpY3Rs
eSBjb3JyZWN0IGZvciB4ODZfNjQuIEJ1dAorLy8gdGhpcyBmdW5jdGlvbiBpbXBsaWNpdGx5IGFs
cmVhZHkgaGFzIGEgYm91bmQgb24gdGhlIHNpemUgb2YgfG51bXwgYmVjYXVzZSBpdAorLy8gaW50
ZXJuYWxseSBjcmVhdGVzIHxudW18LXNpemVkIHN0YWNrIGFsbG9jYXRpb24uCisvLworLy8gU2Vl
IGFsc28gZGlzY3Vzc2lvbiBpbiB8VG9Xb3JkfCBpbiBhYmlfdGVzdC5oIGZvciBub3RlcyBvbiBz
bWFsbGVyLXRoYW4td29yZAorLy8gaW5wdXRzLgogaW50IGJuX211bF9tb250KEJOX1VMT05HICpy
cCwgY29uc3QgQk5fVUxPTkcgKmFwLCBjb25zdCBCTl9VTE9ORyAqYnAsCi0gICAgICAgICAgICAg
ICAgY29uc3QgQk5fVUxPTkcgKm5wLCBjb25zdCBCTl9VTE9ORyAqbjAsIGludCBudW0pOworICAg
ICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HICpucCwgY29uc3QgQk5fVUxPTkcgKm4wLCBzaXpl
X3QgbnVtKTsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmIGRlZmlu
ZWQoT1BFTlNTTF9YODZfNjQpCisjZGVmaW5lIE9QRU5TU0xfQk5fQVNNX01PTlQ1CisKKy8vIGJu
X211bF9tb250X2dhdGhlcjUgbXVsdGlwbGVzIGxvYWRzIGluZGV4IHxwb3dlcnwgb2YgfHRhYmxl
fCwgbXVsdGlwbGllcyBpdAorLy8gYnkgfGFwfCBtb2R1bG8gfG5wfCwgYW5kIHN0b3JlcyB0aGUg
cmVzdWx0IGluIHxycHwuIFRoZSB2YWx1ZXMgYXJlIHxudW18CisvLyB3b3JkcyBsb25nIGFuZCBy
ZXByZXNlbnRlZCBpbiBNb250Z29tZXJ5IGZvcm0uIHxuMHwgaXMgYSBwb2ludGVyIHRvIHRoZQor
Ly8gY29ycmVzcG9uZGluZyBmaWVsZCBpbiB8Qk5fTU9OVF9DVFh8Lgordm9pZCBibl9tdWxfbW9u
dF9nYXRoZXI1KEJOX1VMT05HICpycCwgY29uc3QgQk5fVUxPTkcgKmFwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HICp0YWJsZSwgY29uc3QgQk5fVUxPTkcgKm5wLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HICpuMCwgaW50IG51bSwgaW50
IHBvd2VyKTsKKworLy8gYm5fc2NhdHRlcjUgc3RvcmVzIHxpbnB8IHRvIGluZGV4IHxwb3dlcnwg
b2YgfHRhYmxlfC4gfGlucHwgYW5kIGVhY2ggZW50cnkgb2YKKy8vIHx0YWJsZXwgYXJlIHxudW18
IHdvcmRzIGxvbmcuIHxwb3dlcnwgbXVzdCBiZSBsZXNzIHRoYW4gMzIuIHx0YWJsZXwgbXVzdCBi
ZQorLy8gMzIqfG51bXwgd29yZHMgbG9uZy4KK3ZvaWQgYm5fc2NhdHRlcjUoY29uc3QgQk5fVUxP
TkcgKmlucCwgc2l6ZV90IG51bSwgQk5fVUxPTkcgKnRhYmxlLAorICAgICAgICAgICAgICAgICBz
aXplX3QgcG93ZXIpOworCisvLyBibl9nYXRoZXI1IGxvYWRzIGluZGV4IHxwb3dlcnwgb2YgfHRh
YmxlfCBhbmQgc3RvcmVzIGl0IGluIHxvdXR8LiB8b3V0fCBhbmQKKy8vIGVhY2ggZW50cnkgb2Yg
fHRhYmxlfCBhcmUgfG51bXwgd29yZHMgbG9uZy4gfHBvd2VyfCBtdXN0IGJlIGxlc3MgdGhhbiAz
Mi4KK3ZvaWQgYm5fZ2F0aGVyNShCTl9VTE9ORyAqb3V0LCBzaXplX3QgbnVtLCBCTl9VTE9ORyAq
dGFibGUsIHNpemVfdCBwb3dlcik7CisKKy8vIGJuX3Bvd2VyNSBzcXVhcmVzIHxhcHwgZml2ZSB0
aW1lcyBhbmQgbXVsdGlwbGllcyBpdCBieSB0aGUgdmFsdWUgc3RvcmVkIGF0CisvLyBpbmRleCB8
cG93ZXJ8IG9mIHx0YWJsZXwsIG1vZHVsbyB8bnB8LiBJdCBzdG9yZXMgdGhlIHJlc3VsdCBpbiB8
cnB8LiBUaGUKKy8vIHZhbHVlcyBhcmUgfG51bXwgd29yZHMgbG9uZyBhbmQgcmVwcmVzZW50ZWQg
aW4gTW9udGdvbWVyeSBmb3JtLiB8bjB8IGlzIGEKKy8vIHBvaW50ZXIgdG8gdGhlIGNvcnJlc3Bv
bmRpbmcgZmllbGQgaW4gfEJOX01PTlRfQ1RYfC4gfG51bXwgbXVzdCBiZSBkaXZpc2libGUKKy8v
IGJ5IDguCit2b2lkIGJuX3Bvd2VyNShCTl9VTE9ORyAqcnAsIGNvbnN0IEJOX1VMT05HICphcCwg
Y29uc3QgQk5fVUxPTkcgKnRhYmxlLAorICAgICAgICAgICAgICAgY29uc3QgQk5fVUxPTkcgKm5w
LCBjb25zdCBCTl9VTE9ORyAqbjAsIGludCBudW0sIGludCBwb3dlcik7CisKKy8vIGJuX2Zyb21f
bW9udGdvbWVyeSBjb252ZXJ0cyB8YXB8IGZyb20gTW9udGdvbWVyeSBmb3JtIG1vZHVsbyB8bnB8
IGFuZCB3cml0ZXMKKy8vIHRoZSByZXN1bHQgaW4gfHJwfCwgZWFjaCBvZiB3aGljaCBpcyB8bnVt
fCB3b3JkcyBsb25nLiBJdCByZXR1cm5zIG9uZSBvbgorLy8gc3VjY2VzcyBhbmQgemVybyBpZiBp
dCBjYW5ub3QgaGFuZGxlIGlucHV0cyBvZiBsZW5ndGggfG51bXwuIHxuMHwgaXMgYQorLy8gcG9p
bnRlciB0byB0aGUgY29ycmVzcG9uZGluZyBmaWVsZCBpbiB8Qk5fTU9OVF9DVFh8LgoraW50IGJu
X2Zyb21fbW9udGdvbWVyeShCTl9VTE9ORyAqcnAsIGNvbnN0IEJOX1VMT05HICphcCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgQk5fVUxPTkcgKm5vdF91c2VkLCBjb25zdCBCTl9VTE9O
RyAqbnAsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HICpuMCwgaW50IG51
bSk7CisjZW5kaWYgIC8vICFPUEVOU1NMX05PX0FTTSAmJiBPUEVOU1NMX1g4Nl82NAogCiB1aW50
NjRfdCBibl9tb250X24wKGNvbnN0IEJJR05VTSAqbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vZmlwc21vZHVsZS9ibi9tb250Z29tZXJ5LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4v
bW9udGdvbWVyeS5jCmluZGV4IDAwNmQyYjJiNDEyNTQ5NjY5NDI3YjMyMmRlMTQ0YmQ1NjNhNDlj
ZTMuLmI2ZWFmNmEyZTA0MzJlZDMzODAxM2JiOGMwODQ2MDYxYzc1ZGEzZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9tb250Z29tZXJ5LmMKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL2JuL21vbnRnb21lcnkuYwpAQCAtMTIyLDEzICsxMjIsNiBAQAogI2luY2x1ZGUg
Ii4uLy4uL2ludGVybmFsLmgiCiAKIAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKGRlZmluZWQoT1BFTlNTTF9YODYpIHx8IGRl
ZmluZWQoT1BFTlNTTF9YODZfNjQpIHx8IFwKLSAgICAgZGVmaW5lZChPUEVOU1NMX0FSTSkgfHwg
ZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpKQotI2RlZmluZSBPUEVOU1NMX0JOX0FTTV9NT05UCi0j
ZW5kaWYKLQotCiBCTl9NT05UX0NUWCAqQk5fTU9OVF9DVFhfbmV3KHZvaWQpIHsKICAgQk5fTU9O
VF9DVFggKnJldCA9IE9QRU5TU0xfbWFsbG9jKHNpemVvZihCTl9NT05UX0NUWCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vcHJpbWUuYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlw
c21vZHVsZS9ibi9wcmltZS5jCmluZGV4IGI0MTdkNGZmN2JmOWU0YTcwODRhNTE2MzQ5NDg5NjMz
ODZiMzRkZWMuLjFmMzUxMGQ5NTAxZDRiNzczOWRiMGIzY2M4OWE1MTkwZWVkYmRiYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9wcmltZS5jCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
Zmlwc21vZHVsZS9ibi9wcmltZS5jCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIGNvbnN0IHVp
bnQxNl90IGtQcmltZXNbXSA9IHsKIC8vCiAvLyBUaGlzIHRhYmxlIGlzIGdlbmVyYXRlZCB1c2lu
ZyB0aGUgYWxnb3JpdGhtIG9mIEZJUFMgUFVCIDE4Ni00CiAvLyBEaWdpdGFsIFNpZ25hdHVyZSBT
dGFuZGFyZCAoRFNTKSwgc2VjdGlvbiBGLjEsIHBhZ2UgMTE3LgotLy8gKGh0dHBzOi8vZHguZG9p
Lm9yZy8xMC42MDI4L05JU1QuRklQUy4xODYtNCkKKy8vIChodHRwczovL2RvaS5vcmcvMTAuNjAy
OC9OSVNULkZJUFMuMTg2LTQpCiAvLyBUaGUgZm9sbG93aW5nIG1hZ21hIHNjcmlwdCB3YXMgdXNl
ZCB0byBnZW5lcmF0ZSB0aGUgb3V0cHV0OgogLy8gc2VjdXJpdHliaXRzOj0xMjU7CiAvLyBrOj0x
MDI0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL3JzYXpfZXhwLmMgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vcnNhel9leHAuYwppbmRleCA2NGRmZmY4YTllNmMwNmUw
ZjQyNjNmZWVlNTcyNjNmY2I4MjNlMmZlLi43ZTE1YWFmOTQ4ZjI4NmYzNjQ5Yjg4NjQxNjc1ODY0
NDQwOWI5ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vcnNhel9leHAu
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vcnNhel9leHAuYwpAQCAtMTIsMjggKzEy
LDE2IEBACiAgKiAoMikgVW5pdmVyc2l0eSBvZiBIYWlmYSwgSXNyYWVsCiAgKi8KIAotI2luY2x1
ZGUgPG9wZW5zc2wvYmFzZS5oPgotCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmIGRl
ZmluZWQoT1BFTlNTTF9YODZfNjQpCi0KICNpbmNsdWRlICJyc2F6X2V4cC5oIgogCisjaWYgZGVm
aW5lZChSU0FaX0VOQUJMRUQpCisKICNpbmNsdWRlIDxvcGVuc3NsL21lbS5oPgogCiAjaW5jbHVk
ZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlICIuLi8uLi9pbnRlcm5hbC5oIgogCiAKLS8vIFNlZSBj
cnlwdG8vYm4vYXNtL3JzYXotYXZ4Mi5wbCBmb3IgZnVydGhlciBkZXRhaWxzLgotdm9pZCByc2F6
XzEwMjRfbm9ybTJyZWRfYXZ4Mih2b2lkICpyZWQsIGNvbnN0IHZvaWQgKm5vcm0pOwotdm9pZCBy
c2F6XzEwMjRfbXVsX2F2eDIodm9pZCAqcmV0LCBjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpi
LCBjb25zdCB2b2lkICpuLAotICAgICAgICAgICAgICAgICAgICAgICAgQk5fVUxPTkcgayk7Ci12
b2lkIHJzYXpfMTAyNF9zcXJfYXZ4Mih2b2lkICpyZXQsIGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZv
aWQgKm4sIEJOX1VMT05HIGssCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgY250KTsKLXZv
aWQgcnNhel8xMDI0X3NjYXR0ZXI1X2F2eDIodm9pZCAqdGJsLCBjb25zdCB2b2lkICp2YWwsIGlu
dCBpKTsKLXZvaWQgcnNhel8xMDI0X2dhdGhlcjVfYXZ4Mih2b2lkICp2YWwsIGNvbnN0IHZvaWQg
KnRibCwgaW50IGkpOwotdm9pZCByc2F6XzEwMjRfcmVkMm5vcm1fYXZ4Mih2b2lkICpub3JtLCBj
b25zdCB2b2lkICpyZWQpOwotCiAvLyBvbmUgaXMgMSBpbiBSU0FaJ3MgcmVwcmVzZW50YXRpb24u
CiBhbGlnbmFzKDY0KSBzdGF0aWMgY29uc3QgQk5fVUxPTkcgb25lWzQwXSA9IHsKICAgICAxLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLApA
QCAtNDksMjIgKzM3LDIxIEBAIHZvaWQgUlNBWl8xMDI0X21vZF9leHBfYXZ4MihCTl9VTE9ORyBy
ZXN1bHRfbm9ybVsxNl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQk5fVUxP
TkcgZXhwb25lbnRbMTZdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJOX1VM
T05HIG1fbm9ybVsxNl0sIGNvbnN0IEJOX1VMT05HIFJSWzE2XSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBCTl9VTE9ORyBrMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBCTl9V
TE9ORyBzdG9yYWdlX3dvcmRzW01PRF9FWFBfQ1RJTUVfU1RPUkFHRV9MRU5dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQk5fVUxPTkcgc3RvcmFnZVtNT0RfRVhQX0NUSU1FX1NUT1JB
R0VfTEVOXSkgewogICBPUEVOU1NMX1NUQVRJQ19BU1NFUlQoTU9EX0VYUF9DVElNRV9NSU5fQ0FD
SEVfTElORV9XSURUSCAlIDY0ID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAiTU9EX0VY
UF9DVElNRV9NSU5fQ0FDSEVfTElORV9XSURUSCBpcyB0b28gc21hbGwiKTsKLSAgdW5zaWduZWQg
Y2hhciAqc3RvcmFnZSA9ICh1bnNpZ25lZCBjaGFyICopc3RvcmFnZV93b3JkczsKICAgYXNzZXJ0
KCh1aW50cHRyX3Qpc3RvcmFnZSAlIDY0ID09IDApOwogCi0gIHVuc2lnbmVkIGNoYXIgKmFfaW52
LCAqbSwgKnJlc3VsdCwgKnRhYmxlX3MgPSBzdG9yYWdlICsgKDMyMCAqIDMpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpSMiA9IHRhYmxlX3M7ICAvLyBib3Jyb3cKKyAg
Qk5fVUxPTkcgKmFfaW52LCAqbSwgKnJlc3VsdCwgKnRhYmxlX3MgPSBzdG9yYWdlICsgNDAgKiAz
LCAqUjIgPSB0YWJsZV9zOworICAvLyBOb3RlIHxSMnwgYWxpYXNlcyB8dGFibGVfc3wuCiAgIGlm
ICgoKCgodWludHB0cl90KXN0b3JhZ2UgJiA0MDk1KSArIDMyMCkgPj4gMTIpICE9IDApIHsKICAg
ICByZXN1bHQgPSBzdG9yYWdlOwotICAgIGFfaW52ID0gc3RvcmFnZSArIDMyMDsKLSAgICBtID0g
c3RvcmFnZSArICgzMjAgKiAyKTsgIC8vIHNob3VsZCBub3QgY3Jvc3MgcGFnZQorICAgIGFfaW52
ID0gc3RvcmFnZSArIDQwOworICAgIG0gPSBzdG9yYWdlICsgNDAgKiAyOyAgLy8gc2hvdWxkIG5v
dCBjcm9zcyBwYWdlCiAgIH0gZWxzZSB7CiAgICAgbSA9IHN0b3JhZ2U7ICAvLyBzaG91bGQgbm90
IGNyb3NzIHBhZ2UKLSAgICByZXN1bHQgPSBzdG9yYWdlICsgMzIwOwotICAgIGFfaW52ID0gc3Rv
cmFnZSArICgzMjAgKiAyKTsKKyAgICByZXN1bHQgPSBzdG9yYWdlICsgNDA7CisgICAgYV9pbnYg
PSBzdG9yYWdlICsgNDAgKiAyOwogICB9CiAKICAgcnNhel8xMDI0X25vcm0ycmVkX2F2eDIobSwg
bV9ub3JtKTsKQEAgLTIzMyw3ICsyMjAsNyBAQCB2b2lkIFJTQVpfMTAyNF9tb2RfZXhwX2F2eDIo
Qk5fVUxPTkcgcmVzdWx0X25vcm1bMTZdLAogCiAgIHJzYXpfMTAyNF9yZWQybm9ybV9hdngyKHJl
c3VsdF9ub3JtLCByZXN1bHQpOwogCi0gIE9QRU5TU0xfY2xlYW5zZShzdG9yYWdlLCBzaXplb2Yo
c3RvcmFnZSkpOworICBPUEVOU1NMX2NsZWFuc2Uoc3RvcmFnZSwgTU9EX0VYUF9DVElNRV9TVE9S
QUdFX0xFTiAqIHNpemVvZihCTl9VTE9ORykpOwogfQogCi0jZW5kaWYgIC8vIE9QRU5TU0xfWDg2
XzY0CisjZW5kaWYgIC8vIFJTQVpfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL2JuL3JzYXpfZXhwLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vcnNhel9leHAu
aAppbmRleCBiNmFlYTE0NDViZjQ3Yzc1NTQ4MzFjMmQ2ZDA1MTc0YTg4NDJjMTk1Li4zYjA2MTky
MWNmMTUxZWUxNWRlZjg3NDA5NDNlNDM3ZTlkOWQ1YzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvYm4vcnNhel9leHAuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4v
cnNhel9leHAuaApAQCAtMTYsOSArMTYsMTggQEAKICNkZWZpbmUgT1BFTlNTTF9IRUFERVJfQk5f
UlNBWl9FWFBfSAogCiAjaW5jbHVkZSA8b3BlbnNzbC9ibi5oPgorI2luY2x1ZGUgPG9wZW5zc2wv
Y3B1Lmg+CiAKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1
cykKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkg
JiYgZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkKKyNkZWZpbmUgUlNBWl9FTkFCTEVECisKKwogLy8g
UlNBWl8xMDI0X21vZF9leHBfYXZ4MiBzZXRzIHxyZXN1bHR8IHRvIHxiYXNlX25vcm18IHJhaXNl
ZCB0byB8ZXhwb25lbnR8CiAvLyBtb2R1bG8gfG1fbm9ybXwuIHxiYXNlX25vcm18IG11c3QgYmUg
ZnVsbHktcmVkdWNlZCBhbmQgfGV4cG9uZW50fCBtdXN0IGhhdmUKIC8vIHRoZSBoaWdoIGJpdCBz
ZXQgKGl0IGlzIDEwMjQgYml0cyB3aWRlKS4gfFJSfCBhbmQgfGswfCBtdXN0IGJlIHxSUnwgYW5k
IHxuMHwsCkBAIC0zMSw4ICs0MCw2NSBAQCB2b2lkIFJTQVpfMTAyNF9tb2RfZXhwX2F2eDIoQk5f
VUxPTkcgcmVzdWx0WzE2XSwgY29uc3QgQk5fVUxPTkcgYmFzZV9ub3JtWzE2XSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBCTl9VTE9ORyBrMCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCTl9VTE9ORyBzdG9yYWdlX3dvcmRzW01PRF9FWFBfQ1RJTUVfU1RPUkFHRV9MRU5dKTsK
IAotLy8gcnNhel9hdngyX2VsaWdpYmxlIHJldHVybnMgb25lIGlmIHxSU0FaXzEwMjRfbW9kX2V4
cF9hdngyfCBzaG91bGQgYmUgdXNlZCBhbmQKLS8vIHplcm8gb3RoZXJ3aXNlLgotaW50IHJzYXpf
YXZ4Ml9lbGlnaWJsZSh2b2lkKTsKK09QRU5TU0xfSU5MSU5FIGludCByc2F6X2F2eDJfY2FwYWJs
ZSh2b2lkKSB7CisgIGNvbnN0IHVpbnQzMl90ICpjYXAgPSBPUEVOU1NMX2lhMzJjYXBfZ2V0KCk7
CisgIHJldHVybiAoY2FwWzJdICYgKDEgPDwgNSkpICE9IDA7ICAvLyBBVlgyCit9CisKK09QRU5T
U0xfSU5MSU5FIGludCByc2F6X2F2eDJfcHJlZmVycmVkKHZvaWQpIHsKKyAgY29uc3QgdWludDMy
X3QgKmNhcCA9IE9QRU5TU0xfaWEzMmNhcF9nZXQoKTsKKyAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IGtCTUkyQW5kQURYID0gKDEgPDwgOCkgfCAoMSA8PCAxOSk7CisgIGlmICgoY2FwWzJdICYga0JN
STJBbmRBRFgpID09IGtCTUkyQW5kQURYKSB7CisgICAgLy8gSWYgQk1JMiBhbmQgQURYIGFyZSBh
dmFpbGFibGUsIHg4Nl82NC1tb250NS5wbCBpcyBmYXN0ZXIuCisgICAgcmV0dXJuIDA7CisgIH0K
KyAgcmV0dXJuIChjYXBbMl0gJiAoMSA8PCA1KSkgIT0gMDsgIC8vIEFWWDIKK30KKworCisvLyBB
c3NlbWJseSBmdW5jdGlvbnMuCisKKy8vIFJTQVogcmVwcmVzZW50cyAxMDI0LWJpdCBpbnRlZ2Vy
cyB1c2luZyB1bnNhdHVyYXRlZCAyOS1iaXQgbGltYnMgc3RvcmVkIGluCisvLyA2NC1iaXQgaW50
ZWdlcnMuIFRoaXMgcmVxdWlyZXMgMzYgbGltYnMgYnV0IHBhZGRlZCB1cCB0byA0MC4KKy8vCisv
LyBTZWUgY3J5cHRvL2JuL2FzbS9yc2F6LWF2eDIucGwgZm9yIGZ1cnRoZXIgZGV0YWlscy4KKwor
Ly8gcnNhel8xMDI0X25vcm0ycmVkX2F2eDIgY29udmVydHMgfG5vcm18IGZyb20gfEJJR05VTXwg
dG8gUlNBWiByZXByZXNlbnRhdGlvbgorLy8gYW5kIHdyaXRlcyB0aGUgcmVzdWx0IHRvIHxyZWR8
Lgordm9pZCByc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MihCTl9VTE9ORyByZWRbNDBdLCBjb25zdCBC
Tl9VTE9ORyBub3JtWzE2XSk7CisKKy8vIHJzYXpfMTAyNF9tdWxfYXZ4MiBjb21wdXRlcyB8YXwg
KiB8YnwgbW9kIHxufCBhbmQgd3JpdGVzIHRoZSByZXN1bHQgdG8gfHJldHwuCisvLyBJbnB1dHMg
YW5kIG91dHB1dHMgYXJlIGluIE1vbnRnb21lcnkgZm9ybSwgdXNpbmcgUlNBWidzIHJlcHJlc2Vu
dGF0aW9uLiB8a3wKKy8vIGlzIC18bnxeLTEgbW9kIDJeNjQgb3IgfG4wfCBmcm9tIHxCTl9NT05U
X0NUWHwuCit2b2lkIHJzYXpfMTAyNF9tdWxfYXZ4MihCTl9VTE9ORyByZXRbNDBdLCBjb25zdCBC
Tl9VTE9ORyBhWzQwXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJOX1VMT05HIGJb
NDBdLCBjb25zdCBCTl9VTE9ORyBuWzQwXSwgQk5fVUxPTkcgayk7CisKKy8vIHJzYXpfMTAyNF9t
dWxfYXZ4MiBjb21wdXRlcyB8YXxeKDIqfGNvdW50fCkgbW9kIHxufCBhbmQgd3JpdGVzIHRoZSBy
ZXN1bHQgdG8KKy8vIHxyZXR8LiBJbnB1dHMgYW5kIG91dHB1dHMgYXJlIGluIE1vbnRnb21lcnkg
Zm9ybSwgdXNpbmcgUlNBWidzCisvLyByZXByZXNlbnRhdGlvbi4gfGt8IGlzIC18bnxeLTEgbW9k
IDJeNjQgb3IgfG4wfCBmcm9tIHxCTl9NT05UX0NUWHwuCit2b2lkIHJzYXpfMTAyNF9zcXJfYXZ4
MihCTl9VTE9ORyByZXRbNDBdLCBjb25zdCBCTl9VTE9ORyBhWzQwXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEJOX1VMT05HIG5bNDBdLCBCTl9VTE9ORyBrLCBpbnQgY291bnQpOwor
CisvLyByc2F6XzEwMjRfc2NhdHRlcjVfYXZ4MiBzdG9yZXMgfHZhbHwgYXQgaW5kZXggfGl8IG9m
IHx0Ymx8LiB8aXwgbXVzdCBiZQorLy8gcG9zaXRpdmUgYW5kIGF0IG1vc3QgMzEuIE5vdGUgdGhl
IHRhYmxlIG9ubHkgdXNlcyAxOCB8Qk5fVUxPTkd8cyBwZXIgZW50cnkKKy8vIGluc3RlYWQgb2Yg
NDAuIEl0IHBhY2tzIHR3byAyOS1iaXQgbGltYnMgaW50byBlYWNoIHxCTl9VTE9OR3wgYW5kIG9u
bHkgc3RvcmVzCisvLyAzNiBsaW1icyByYXRoZXIgdGhhbiB0aGUgcGFkZGVkIDQwLgordm9pZCBy
c2F6XzEwMjRfc2NhdHRlcjVfYXZ4MihCTl9VTE9ORyB0YmxbMzIgKiAxOF0sIGNvbnN0IEJOX1VM
T05HIHZhbFs0MF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpKTsKKworLy8g
cnNhel8xMDI0X2dhdGhlcjVfYXZ4MiBsb2FkcyBpbmRleCB8aXwgb2YgfHRibHwgYW5kIHdyaXRl
cyBpdCB0byB8dmFsfC4KK3ZvaWQgcnNhel8xMDI0X2dhdGhlcjVfYXZ4MihCTl9VTE9ORyB2YWxb
NDBdLCBjb25zdCBCTl9VTE9ORyB0YmxbMzIgKiAxOF0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGkpOworCisvLyByc2F6XzEwMjRfcmVkMm5vcm1fYXZ4MiBjb252ZXJ0cyB8cmVk
fCBmcm9tIFJTQVogdG8gfEJJR05VTXwgcmVwcmVzZW50YXRpb24KKy8vIGFuZCB3cml0ZXMgdGhl
IHJlc3VsdCB0byB8bm9ybXwuCit2b2lkIHJzYXpfMTAyNF9yZWQybm9ybV9hdngyKEJOX1VMT05H
IG5vcm1bMTZdLCBjb25zdCBCTl9VTE9ORyByZWRbNDBdKTsKKworCisjZW5kaWYgIC8vICFPUEVO
U1NMX05PX0FTTSAmJiBPUEVOU1NMX1g4Nl82NAorCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykK
K30gIC8vIGV4dGVybiAiQyIKKyNlbmRpZgogCiAjZW5kaWYgIC8vIE9QRU5TU0xfSEVBREVSX0JO
X1JTQVpfRVhQX0gKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9jaXBoZXIvZV9h
ZXMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9jaXBoZXIvZV9hZXMuYwppbmRleCAwNjg0NjVi
MzNiMDVhN2E3MDgzMDBmODYzMDY0NjJjYTE5YjI2NjRlLi4xZWEwMTJkZDdjYjBjOTY3MmU1NDg2
ZGVjZGU0NjIzYjYxY2JmOTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvY2lw
aGVyL2VfYWVzLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2NpcGhlci9lX2Flcy5jCkBA
IC00Niw2ICs0Niw3IEBACiAgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAqLwogCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8c3RyaW5n
Lmg+CiAKICNpbmNsdWRlIDxvcGVuc3NsL2FlYWQuaD4KQEAgLTYzLDEwICs2NCw2IEBACiAjaW5j
bHVkZSAiLi4vbW9kZXMvaW50ZXJuYWwuaCIKICNpbmNsdWRlICIuLi9kZWxvY2F0ZS5oIgogCi0j
aWYgZGVmaW5lZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpCi0jaW5j
bHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgotI2VuZGlmCi0KIAogT1BFTlNTTF9NU1ZDX1BSQUdN
QSh3YXJuaW5nKHB1c2gpKQogT1BFTlNTTF9NU1ZDX1BSQUdNQSh3YXJuaW5nKGRpc2FibGU6IDQ3
MDIpKSAgLy8gVW5yZWFjaGFibGUgY29kZS4KQEAgLTg0LDEzICs4MSwxMyBAQCB0eXBlZGVmIHN0
cnVjdCB7CiB9IEVWUF9BRVNfS0VZOwogCiB0eXBlZGVmIHN0cnVjdCB7CisgIEdDTTEyOF9DT05U
RVhUIGdjbTsKICAgdW5pb24gewogICAgIGRvdWJsZSBhbGlnbjsKICAgICBBRVNfS0VZIGtzOwog
ICB9IGtzOyAgICAgICAgIC8vIEFFUyBrZXkgc2NoZWR1bGUgdG8gdXNlCiAgIGludCBrZXlfc2V0
OyAgLy8gU2V0IGlmIGtleSBpbml0aWFsaXNlZAogICBpbnQgaXZfc2V0OyAgIC8vIFNldCBpZiBh
biBpdiBpcyBzZXQKLSAgR0NNMTI4X0NPTlRFWFQgZ2NtOwogICB1aW50OF90ICppdjsgIC8vIFRl
bXBvcmFyeSBJViBzdG9yZQogICBpbnQgaXZsZW47ICAgICAgICAgLy8gSVYgbGVuZ3RoCiAgIGlu
dCB0YWdsZW47CkBAIC05OCw5NyArOTUsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgIGN0cjEyOF9m
IGN0cjsKIH0gRVZQX0FFU19HQ01fQ1RYOwogCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00p
ICYmIFwKLSAgICAoZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkgfHwgZGVmaW5lZChPUEVOU1NMX1g4
NikpCi0jZGVmaW5lIFZQQUVTCi1zdGF0aWMgY2hhciB2cGFlc19jYXBhYmxlKHZvaWQpIHsKLSAg
cmV0dXJuIChPUEVOU1NMX2lhMzJjYXBfUFsxXSAmICgxIDw8ICg0MSAtIDMyKSkpICE9IDA7Ci19
Ci0KLSNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KQotI2RlZmluZSBCU0FFUwotc3RhdGljIGNo
YXIgYnNhZXNfY2FwYWJsZSh2b2lkKSB7Ci0gIHJldHVybiB2cGFlc19jYXBhYmxlKCk7Ci19Ci0j
ZW5kaWYKLQotI2VsaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmIFwKLSAgICAoZGVmaW5l
ZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpKQotCi0jaWYgZGVmaW5l
ZChPUEVOU1NMX0FSTSkgJiYgX19BUk1fTUFYX0FSQ0hfXyA+PSA3Ci0jZGVmaW5lIEJTQUVTCi1z
dGF0aWMgY2hhciBic2Flc19jYXBhYmxlKHZvaWQpIHsKLSAgcmV0dXJuIENSWVBUT19pc19ORU9O
X2NhcGFibGUoKTsKLX0KLSNlbmRpZgotCi0jZW5kaWYKLQotCi0jaWYgZGVmaW5lZChCU0FFUykK
LS8vIE9uIHBsYXRmb3JtcyB3aGVyZSBCU0FFUyBnZXRzIGRlZmluZWQgKGp1c3QgYWJvdmUpLCB0
aGVuIHRoZXNlIGZ1bmN0aW9ucyBhcmUKLS8vIHByb3ZpZGVkIGJ5IGFzbS4KLXZvaWQgYnNhZXNf
Y2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbmd0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90IGl2
ZWNbMTZdLCBpbnQgZW5jKTsKLXZvaWQgYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MoY29uc3Qg
dWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5LCBjb25zdCB1aW50OF90IGl2ZWNbMTZd
KTsKLSNlbHNlCi1zdGF0aWMgY2hhciBic2Flc19jYXBhYmxlKHZvaWQpIHsKLSAgcmV0dXJuIDA7
Ci19Ci0KLS8vIE9uIG90aGVyIHBsYXRmb3JtcywgYnNhZXNfY2FwYWJsZSgpIHdpbGwgYWx3YXlz
IHJldHVybiBmYWxzZSBhbmQgc28gdGhlCi0vLyBmb2xsb3dpbmcgd2lsbCBuZXZlciBiZSBjYWxs
ZWQuCi1zdGF0aWMgdm9pZCBic2Flc19jYmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWlu
dDhfdCAqb3V0LCBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90IGl2ZWNbMTZdLCBpbnQgZW5jKSB7Ci0gIGFib3J0
KCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGJzYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzKGNvbnN0IHVp
bnQ4X3QgKmluLCB1aW50OF90ICpvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgbGVuLCBjb25zdCBBRVNfS0VZICprZXksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90IGl2ZWNbMTZdKSB7Ci0gIGFib3J0
KCk7Ci19Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoVlBBRVMpCi0vLyBPbiBwbGF0Zm9ybXMgd2hl
cmUgVlBBRVMgZ2V0cyBkZWZpbmVkIChqdXN0IGFib3ZlKSwgdGhlbiB0aGVzZSBmdW5jdGlvbnMg
YXJlCi0vLyBwcm92aWRlZCBieSBhc20uCi1pbnQgdnBhZXNfc2V0X2VuY3J5cHRfa2V5KGNvbnN0
IHVpbnQ4X3QgKnVzZXJLZXksIGludCBiaXRzLCBBRVNfS0VZICprZXkpOwotaW50IHZwYWVzX3Nl
dF9kZWNyeXB0X2tleShjb25zdCB1aW50OF90ICp1c2VyS2V5LCBpbnQgYml0cywgQUVTX0tFWSAq
a2V5KTsKLQotdm9pZCB2cGFlc19lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpv
dXQsIGNvbnN0IEFFU19LRVkgKmtleSk7Ci12b2lkIHZwYWVzX2RlY3J5cHQoY29uc3QgdWludDhf
dCAqaW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAqa2V5KTsKLQotdm9pZCB2cGFlc19j
YmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBzaXplX3QgbGVuZ3Ro
LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZICprZXksIHVpbnQ4X3QgKml2
ZWMsIGludCBlbmMpOwotI2Vsc2UKLXN0YXRpYyBjaGFyIHZwYWVzX2NhcGFibGUodm9pZCkgewot
ICByZXR1cm4gMDsKLX0KLQotLy8gT24gb3RoZXIgcGxhdGZvcm1zLCB2cGFlc19jYXBhYmxlKCkg
d2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlIGFuZCBzbyB0aGUKLS8vIGZvbGxvd2luZyB3aWxsIG5l
dmVyIGJlIGNhbGxlZC4KLXN0YXRpYyBpbnQgdnBhZXNfc2V0X2VuY3J5cHRfa2V5KGNvbnN0IHVp
bnQ4X3QgKnVzZXJLZXksIGludCBiaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQUVTX0tFWSAqa2V5KSB7Ci0gIGFib3J0KCk7Ci19Ci1zdGF0aWMgaW50IHZwYWVzX3NldF9k
ZWNyeXB0X2tleShjb25zdCB1aW50OF90ICp1c2VyS2V5LCBpbnQgYml0cywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFFU19LRVkgKmtleSkgewotICBhYm9ydCgpOwotfQotc3Rh
dGljIHZvaWQgdnBhZXNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBj
b25zdCBBRVNfS0VZICprZXkpIHsKLSAgYWJvcnQoKTsKLX0KLXN0YXRpYyB2b2lkIHZwYWVzX2Rl
Y3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAqa2V5
KSB7Ci0gIGFib3J0KCk7Ci19Ci1zdGF0aWMgdm9pZCB2cGFlc19jYmNfZW5jcnlwdChjb25zdCB1
aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgQUVTX0tFWSAqa2V5LCB1aW50OF90ICppdmVjLCBpbnQgZW5j
KSB7Ci0gIGFib3J0KCk7Ci19Ci0jZW5kaWYKLQogc3RhdGljIGludCBhZXNfaW5pdF9rZXkoRVZQ
X0NJUEhFUl9DVFggKmN0eCwgY29uc3QgdWludDhfdCAqa2V5LAogICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgdWludDhfdCAqaXYsIGludCBlbmMpIHsKICAgaW50IHJldCwgbW9kZTsKQEAg
LTIwNCwxNyArMTEwLDIzIEBAIHN0YXRpYyBpbnQgYWVzX2luaXRfa2V5KEVWUF9DSVBIRVJfQ1RY
ICpjdHgsIGNvbnN0IHVpbnQ4X3QgKmtleSwKICAgICAgICAgZGF0LT5zdHJlYW0uY2JjID0gYWVz
X2h3X2NiY19lbmNyeXB0OwogICAgICAgfQogICAgIH0gZWxzZSBpZiAoYnNhZXNfY2FwYWJsZSgp
ICYmIG1vZGUgPT0gRVZQX0NJUEhfQ0JDX01PREUpIHsKLSAgICAgIHJldCA9IEFFU19zZXRfZGVj
cnlwdF9rZXkoa2V5LCBjdHgtPmtleV9sZW4gKiA4LCAmZGF0LT5rcy5rcyk7Ci0gICAgICBkYXQt
PmJsb2NrID0gQUVTX2RlY3J5cHQ7CisgICAgICByZXQgPSBhZXNfbm9od19zZXRfZGVjcnlwdF9r
ZXkoa2V5LCBjdHgtPmtleV9sZW4gKiA4LCAmZGF0LT5rcy5rcyk7CisgICAgICAvLyBJZiB8ZGF0
LT5zdHJlYW0uY2JjfCBpcyBwcm92aWRlZCwgfGRhdC0+YmxvY2t8IGlzIG5ldmVyIHVzZWQuCisg
ICAgICBkYXQtPmJsb2NrID0gTlVMTDsKICAgICAgIGRhdC0+c3RyZWFtLmNiYyA9IGJzYWVzX2Ni
Y19lbmNyeXB0OwogICAgIH0gZWxzZSBpZiAodnBhZXNfY2FwYWJsZSgpKSB7CiAgICAgICByZXQg
PSB2cGFlc19zZXRfZGVjcnlwdF9rZXkoa2V5LCBjdHgtPmtleV9sZW4gKiA4LCAmZGF0LT5rcy5r
cyk7CiAgICAgICBkYXQtPmJsb2NrID0gdnBhZXNfZGVjcnlwdDsKICAgICAgIGRhdC0+c3RyZWFt
LmNiYyA9IG1vZGUgPT0gRVZQX0NJUEhfQ0JDX01PREUgPyB2cGFlc19jYmNfZW5jcnlwdCA6IE5V
TEw7CiAgICAgfSBlbHNlIHsKLSAgICAgIHJldCA9IEFFU19zZXRfZGVjcnlwdF9rZXkoa2V5LCBj
dHgtPmtleV9sZW4gKiA4LCAmZGF0LT5rcy5rcyk7Ci0gICAgICBkYXQtPmJsb2NrID0gQUVTX2Rl
Y3J5cHQ7Ci0gICAgICBkYXQtPnN0cmVhbS5jYmMgPSBtb2RlID09IEVWUF9DSVBIX0NCQ19NT0RF
ID8gQUVTX2NiY19lbmNyeXB0IDogTlVMTDsKKyAgICAgIHJldCA9IGFlc19ub2h3X3NldF9kZWNy
eXB0X2tleShrZXksIGN0eC0+a2V5X2xlbiAqIDgsICZkYXQtPmtzLmtzKTsKKyAgICAgIGRhdC0+
YmxvY2sgPSBhZXNfbm9od19kZWNyeXB0OworICAgICAgZGF0LT5zdHJlYW0uY2JjID0gTlVMTDsK
KyNpZiBkZWZpbmVkKEFFU19OT0hXX0NCQykKKyAgICAgIGlmIChtb2RlID09IEVWUF9DSVBIX0NC
Q19NT0RFKSB7CisgICAgICAgIGRhdC0+c3RyZWFtLmNiYyA9IGFlc19ub2h3X2NiY19lbmNyeXB0
OworICAgICAgfQorI2VuZGlmCiAgICAgfQogICB9IGVsc2UgaWYgKGh3YWVzX2NhcGFibGUoKSkg
ewogICAgIHJldCA9IGFlc19od19zZXRfZW5jcnlwdF9rZXkoa2V5LCBjdHgtPmtleV9sZW4gKiA4
LCAmZGF0LT5rcy5rcyk7CkBAIC0yMjYsMTcgKzEzOCwzMSBAQCBzdGF0aWMgaW50IGFlc19pbml0
X2tleShFVlBfQ0lQSEVSX0NUWCAqY3R4LCBjb25zdCB1aW50OF90ICprZXksCiAgICAgICBkYXQt
PnN0cmVhbS5jdHIgPSBhZXNfaHdfY3RyMzJfZW5jcnlwdF9ibG9ja3M7CiAgICAgfQogICB9IGVs
c2UgaWYgKGJzYWVzX2NhcGFibGUoKSAmJiBtb2RlID09IEVWUF9DSVBIX0NUUl9NT0RFKSB7Ci0g
ICAgcmV0ID0gQUVTX3NldF9lbmNyeXB0X2tleShrZXksIGN0eC0+a2V5X2xlbiAqIDgsICZkYXQt
PmtzLmtzKTsKLSAgICBkYXQtPmJsb2NrID0gQUVTX2VuY3J5cHQ7CisgICAgcmV0ID0gYWVzX25v
aHdfc2V0X2VuY3J5cHRfa2V5KGtleSwgY3R4LT5rZXlfbGVuICogOCwgJmRhdC0+a3Mua3MpOwor
ICAgIC8vIElmIHxkYXQtPnN0cmVhbS5jdHJ8IGlzIHByb3ZpZGVkLCB8ZGF0LT5ibG9ja3wgaXMg
bmV2ZXIgdXNlZC4KKyAgICBkYXQtPmJsb2NrID0gTlVMTDsKICAgICBkYXQtPnN0cmVhbS5jdHIg
PSBic2Flc19jdHIzMl9lbmNyeXB0X2Jsb2NrczsKICAgfSBlbHNlIGlmICh2cGFlc19jYXBhYmxl
KCkpIHsKICAgICByZXQgPSB2cGFlc19zZXRfZW5jcnlwdF9rZXkoa2V5LCBjdHgtPmtleV9sZW4g
KiA4LCAmZGF0LT5rcy5rcyk7CiAgICAgZGF0LT5ibG9jayA9IHZwYWVzX2VuY3J5cHQ7Ci0gICAg
ZGF0LT5zdHJlYW0uY2JjID0gbW9kZSA9PSBFVlBfQ0lQSF9DQkNfTU9ERSA/IHZwYWVzX2NiY19l
bmNyeXB0IDogTlVMTDsKKyAgICBkYXQtPnN0cmVhbS5jYmMgPSBOVUxMOworICAgIGlmIChtb2Rl
ID09IEVWUF9DSVBIX0NCQ19NT0RFKSB7CisgICAgICBkYXQtPnN0cmVhbS5jYmMgPSB2cGFlc19j
YmNfZW5jcnlwdDsKKyAgICB9CisjaWYgZGVmaW5lZChWUEFFU19DVFIzMikKKyAgICBpZiAobW9k
ZSA9PSBFVlBfQ0lQSF9DVFJfTU9ERSkgeworICAgICAgZGF0LT5zdHJlYW0uY3RyID0gdnBhZXNf
Y3RyMzJfZW5jcnlwdF9ibG9ja3M7CisgICAgfQorI2VuZGlmCiAgIH0gZWxzZSB7Ci0gICAgcmV0
ID0gQUVTX3NldF9lbmNyeXB0X2tleShrZXksIGN0eC0+a2V5X2xlbiAqIDgsICZkYXQtPmtzLmtz
KTsKLSAgICBkYXQtPmJsb2NrID0gQUVTX2VuY3J5cHQ7Ci0gICAgZGF0LT5zdHJlYW0uY2JjID0g
bW9kZSA9PSBFVlBfQ0lQSF9DQkNfTU9ERSA/IEFFU19jYmNfZW5jcnlwdCA6IE5VTEw7CisgICAg
cmV0ID0gYWVzX25vaHdfc2V0X2VuY3J5cHRfa2V5KGtleSwgY3R4LT5rZXlfbGVuICogOCwgJmRh
dC0+a3Mua3MpOworICAgIGRhdC0+YmxvY2sgPSBhZXNfbm9od19lbmNyeXB0OworICAgIGRhdC0+
c3RyZWFtLmNiYyA9IE5VTEw7CisjaWYgZGVmaW5lZChBRVNfTk9IV19DQkMpCisgICAgaWYgKG1v
ZGUgPT0gRVZQX0NJUEhfQ0JDX01PREUpIHsKKyAgICAgIGRhdC0+c3RyZWFtLmNiYyA9IGFlc19u
b2h3X2NiY19lbmNyeXB0OworICAgIH0KKyNlbmRpZgogICB9CiAKICAgaWYgKHJldCA8IDApIHsK
QEAgLTMxNywxMiArMjQzLDEyIEBAIGN0cjEyOF9mIGFlc19jdHJfc2V0X2tleShBRVNfS0VZICph
ZXNfa2V5LCBHQ00xMjhfS0VZICpnY21fa2V5LAogICB9CiAKICAgaWYgKGJzYWVzX2NhcGFibGUo
KSkgewotICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoa2V5LCBrZXlfYnl0ZXMgKiA4LCBhZXNfa2V5
KTsKKyAgICBhZXNfbm9od19zZXRfZW5jcnlwdF9rZXkoa2V5LCBrZXlfYnl0ZXMgKiA4LCBhZXNf
a2V5KTsKICAgICBpZiAoZ2NtX2tleSAhPSBOVUxMKSB7Ci0gICAgICBDUllQVE9fZ2NtMTI4X2lu
aXRfa2V5KGdjbV9rZXksIGFlc19rZXksIEFFU19lbmNyeXB0LCAwKTsKKyAgICAgIENSWVBUT19n
Y20xMjhfaW5pdF9rZXkoZ2NtX2tleSwgYWVzX2tleSwgYWVzX25vaHdfZW5jcnlwdCwgMCk7CiAg
ICAgfQogICAgIGlmIChvdXRfYmxvY2spIHsKLSAgICAgICpvdXRfYmxvY2sgPSBBRVNfZW5jcnlw
dDsKKyAgICAgICpvdXRfYmxvY2sgPSBhZXNfbm9od19lbmNyeXB0OwogICAgIH0KICAgICByZXR1
cm4gYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3M7CiAgIH0KQEAgLTMzNSwyMiArMjYxLDU0IEBA
IGN0cjEyOF9mIGFlc19jdHJfc2V0X2tleShBRVNfS0VZICphZXNfa2V5LCBHQ00xMjhfS0VZICpn
Y21fa2V5LAogICAgIGlmIChnY21fa2V5ICE9IE5VTEwpIHsKICAgICAgIENSWVBUT19nY20xMjhf
aW5pdF9rZXkoZ2NtX2tleSwgYWVzX2tleSwgdnBhZXNfZW5jcnlwdCwgMCk7CiAgICAgfQorI2lm
IGRlZmluZWQoVlBBRVNfQ1RSMzIpCisgICAgcmV0dXJuIHZwYWVzX2N0cjMyX2VuY3J5cHRfYmxv
Y2tzOworI2Vsc2UKICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZgogICB9CiAKLSAgQUVTX3NldF9l
bmNyeXB0X2tleShrZXksIGtleV9ieXRlcyAqIDgsIGFlc19rZXkpOworICBhZXNfbm9od19zZXRf
ZW5jcnlwdF9rZXkoa2V5LCBrZXlfYnl0ZXMgKiA4LCBhZXNfa2V5KTsKICAgaWYgKGdjbV9rZXkg
IT0gTlVMTCkgewotICAgIENSWVBUT19nY20xMjhfaW5pdF9rZXkoZ2NtX2tleSwgYWVzX2tleSwg
QUVTX2VuY3J5cHQsIDApOworICAgIENSWVBUT19nY20xMjhfaW5pdF9rZXkoZ2NtX2tleSwgYWVz
X2tleSwgYWVzX25vaHdfZW5jcnlwdCwgMCk7CiAgIH0KICAgaWYgKG91dF9ibG9jaykgewotICAg
ICpvdXRfYmxvY2sgPSBBRVNfZW5jcnlwdDsKKyAgICAqb3V0X2Jsb2NrID0gYWVzX25vaHdfZW5j
cnlwdDsKICAgfQogICByZXR1cm4gTlVMTDsKIH0KIAorI2lmIGRlZmluZWQoT1BFTlNTTF8zMl9C
SVQpCisjZGVmaW5lIEVWUF9BRVNfR0NNX0NUWF9QQURESU5HICg0KzgpCisjZWxzZQorI2RlZmlu
ZSBFVlBfQUVTX0dDTV9DVFhfUEFERElORyA4CisjZW5kaWYKKworc3RhdGljIEVWUF9BRVNfR0NN
X0NUWCAqYWVzX2djbV9mcm9tX2NpcGhlcl9jdHgoRVZQX0NJUEhFUl9DVFggKmN0eCkgeworI2lm
IGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19jbGFuZ19fKQorICBPUEVOU1NMX1NUQVRJ
Q19BU1NFUlQoCisgICAgICBhbGlnbm9mKEVWUF9BRVNfR0NNX0NUWCkgPD0gMTYsCisgICAgICAi
RVZQX0FFU19HQ01fQ1RYIG5lZWRzIG1vcmUgYWxpZ25tZW50IHRoYW4gdGhpcyBmdW5jdGlvbiBw
cm92aWRlcyIpOworI2VuZGlmCisKKyAgLy8gfG1hbGxvY3wgZ3VhcmFudGVlcyB1cCB0byA0LWJ5
dGUgYWxpZ25tZW50IG9uIDMyLWJpdCBhbmQgOC1ieXRlIGFsaWdubWVudAorICAvLyBvbiA2NC1i
aXQgc3lzdGVtcywgc28gd2UgbmVlZCB0byBhZGp1c3QgdG8gcmVhY2ggMTYtYnl0ZSBhbGlnbm1l
bnQuCisgIGFzc2VydChjdHgtPmNpcGhlci0+Y3R4X3NpemUgPT0KKyAgICAgICAgIHNpemVvZihF
VlBfQUVTX0dDTV9DVFgpICsgRVZQX0FFU19HQ01fQ1RYX1BBRERJTkcpOworCisgIGNoYXIgKnB0
ciA9IGN0eC0+Y2lwaGVyX2RhdGE7CisjaWYgZGVmaW5lZChPUEVOU1NMXzMyX0JJVCkKKyAgYXNz
ZXJ0KCh1aW50cHRyX3QpcHRyICUgNCA9PSAwKTsKKyAgcHRyICs9ICh1aW50cHRyX3QpcHRyICYg
NDsKKyNlbmRpZgorICBhc3NlcnQoKHVpbnRwdHJfdClwdHIgJSA4ID09IDApOworICBwdHIgKz0g
KHVpbnRwdHJfdClwdHIgJiA4OworICByZXR1cm4gKEVWUF9BRVNfR0NNX0NUWCAqKXB0cjsKK30K
Kwogc3RhdGljIGludCBhZXNfZ2NtX2luaXRfa2V5KEVWUF9DSVBIRVJfQ1RYICpjdHgsIGNvbnN0
IHVpbnQ4X3QgKmtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90
ICppdiwgaW50IGVuYykgewotICBFVlBfQUVTX0dDTV9DVFggKmdjdHggPSBjdHgtPmNpcGhlcl9k
YXRhOworICBFVlBfQUVTX0dDTV9DVFggKmdjdHggPSBhZXNfZ2NtX2Zyb21fY2lwaGVyX2N0eChj
dHgpOwogICBpZiAoIWl2ICYmICFrZXkpIHsKICAgICByZXR1cm4gMTsKICAgfQpAQCAtMzgxLDcg
KzMzOSw3IEBAIHN0YXRpYyBpbnQgYWVzX2djbV9pbml0X2tleShFVlBfQ0lQSEVSX0NUWCAqY3R4
LCBjb25zdCB1aW50OF90ICprZXksCiB9CiAKIHN0YXRpYyB2b2lkIGFlc19nY21fY2xlYW51cChF
VlBfQ0lQSEVSX0NUWCAqYykgewotICBFVlBfQUVTX0dDTV9DVFggKmdjdHggPSBjLT5jaXBoZXJf
ZGF0YTsKKyAgRVZQX0FFU19HQ01fQ1RYICpnY3R4ID0gYWVzX2djbV9mcm9tX2NpcGhlcl9jdHgo
Yyk7CiAgIE9QRU5TU0xfY2xlYW5zZSgmZ2N0eC0+Z2NtLCBzaXplb2YoZ2N0eC0+Z2NtKSk7CiAg
IGlmIChnY3R4LT5pdiAhPSBjLT5pdikgewogICAgIE9QRU5TU0xfZnJlZShnY3R4LT5pdik7CkBA
IC00MDUsNyArMzYzLDcgQEAgc3RhdGljIHZvaWQgY3RyNjRfaW5jKHVpbnQ4X3QgKmNvdW50ZXIp
IHsKIH0KIAogc3RhdGljIGludCBhZXNfZ2NtX2N0cmwoRVZQX0NJUEhFUl9DVFggKmMsIGludCB0
eXBlLCBpbnQgYXJnLCB2b2lkICpwdHIpIHsKLSAgRVZQX0FFU19HQ01fQ1RYICpnY3R4ID0gYy0+
Y2lwaGVyX2RhdGE7CisgIEVWUF9BRVNfR0NNX0NUWCAqZ2N0eCA9IGFlc19nY21fZnJvbV9jaXBo
ZXJfY3R4KGMpOwogICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEVWUF9DVFJMX0lOSVQ6CiAg
ICAgICBnY3R4LT5rZXlfc2V0ID0gMDsKQEAgLTQ5Nyw3ICs0NTUsMTAgQEAgc3RhdGljIGludCBh
ZXNfZ2NtX2N0cmwoRVZQX0NJUEhFUl9DVFggKmMsIGludCB0eXBlLCBpbnQgYXJnLCB2b2lkICpw
dHIpIHsKIAogICAgIGNhc2UgRVZQX0NUUkxfQ09QWTogewogICAgICAgRVZQX0NJUEhFUl9DVFgg
Km91dCA9IHB0cjsKLSAgICAgIEVWUF9BRVNfR0NNX0NUWCAqZ2N0eF9vdXQgPSBvdXQtPmNpcGhl
cl9kYXRhOworICAgICAgRVZQX0FFU19HQ01fQ1RYICpnY3R4X291dCA9IGFlc19nY21fZnJvbV9j
aXBoZXJfY3R4KG91dCk7CisgICAgICAvLyB8RVZQX0NJUEhFUl9DVFhfY29weXwgY29waWVzIHRo
aXMgZ2VuZXJpY2FsbHksIGJ1dCB3ZSBtdXN0IHJlZG8gaXQgaW4KKyAgICAgIC8vIGNhc2UgfG91
dC0+Y2lwaGVyX2RhdGF8IGFuZCB8aW4tPmNpcGhlcl9kYXRhfCBhcmUgZGlmZmVyZW50bHkgYWxp
Z25lZC4KKyAgICAgIE9QRU5TU0xfbWVtY3B5KGdjdHhfb3V0LCBnY3R4LCBzaXplb2YoRVZQX0FF
U19HQ01fQ1RYKSk7CiAgICAgICBpZiAoZ2N0eC0+aXYgPT0gYy0+aXYpIHsKICAgICAgICAgZ2N0
eF9vdXQtPml2ID0gb3V0LT5pdjsKICAgICAgIH0gZWxzZSB7CkBAIC01MTcsNyArNDc4LDcgQEAg
c3RhdGljIGludCBhZXNfZ2NtX2N0cmwoRVZQX0NJUEhFUl9DVFggKmMsIGludCB0eXBlLCBpbnQg
YXJnLCB2b2lkICpwdHIpIHsKIAogc3RhdGljIGludCBhZXNfZ2NtX2NpcGhlcihFVlBfQ0lQSEVS
X0NUWCAqY3R4LCB1aW50OF90ICpvdXQsIGNvbnN0IHVpbnQ4X3QgKmluLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgbGVuKSB7Ci0gIEVWUF9BRVNfR0NNX0NUWCAqZ2N0eCA9IGN0
eC0+Y2lwaGVyX2RhdGE7CisgIEVWUF9BRVNfR0NNX0NUWCAqZ2N0eCA9IGFlc19nY21fZnJvbV9j
aXBoZXJfY3R4KGN0eCk7CiAKICAgLy8gSWYgbm90IHNldCB1cCwgcmV0dXJuIGVycm9yCiAgIGlm
ICghZ2N0eC0+a2V5X3NldCkgewpAQCAtNjMxLDggKzU5Miw4IEBAIERFRklORV9MT0NBTF9EQVRB
KEVWUF9DSVBIRVIsIGFlc18xMjhfZ2NtX2dlbmVyaWMpIHsKICAgb3V0LT5ibG9ja19zaXplID0g
MTsKICAgb3V0LT5rZXlfbGVuID0gMTY7CiAgIG91dC0+aXZfbGVuID0gMTI7Ci0gIG91dC0+Y3R4
X3NpemUgPSBzaXplb2YoRVZQX0FFU19HQ01fQ1RYKTsKLSAgb3V0LT5mbGFncyA9IEVWUF9DSVBI
X0dDTV9NT0RFIHwgRVZQX0NJUEhfQ1VTVE9NX0lWIHwKKyAgb3V0LT5jdHhfc2l6ZSA9IHNpemVv
ZihFVlBfQUVTX0dDTV9DVFgpICsgRVZQX0FFU19HQ01fQ1RYX1BBRERJTkc7CisgIG91dC0+Zmxh
Z3MgPSBFVlBfQ0lQSF9HQ01fTU9ERSB8IEVWUF9DSVBIX0NVU1RPTV9JViB8IEVWUF9DSVBIX0NV
U1RPTV9DT1BZIHwKICAgICAgICAgICAgICAgIEVWUF9DSVBIX0ZMQUdfQ1VTVE9NX0NJUEhFUiB8
IEVWUF9DSVBIX0FMV0FZU19DQUxMX0lOSVQgfAogICAgICAgICAgICAgICAgRVZQX0NJUEhfQ1RS
TF9JTklUIHwgRVZQX0NJUEhfRkxBR19BRUFEX0NJUEhFUjsKICAgb3V0LT5pbml0ID0gYWVzX2dj
bV9pbml0X2tleTsKQEAgLTY5OSw4ICs2NjAsOCBAQCBERUZJTkVfTE9DQUxfREFUQShFVlBfQ0lQ
SEVSLCBhZXNfMTkyX2djbV9nZW5lcmljKSB7CiAgIG91dC0+YmxvY2tfc2l6ZSA9IDE7CiAgIG91
dC0+a2V5X2xlbiA9IDI0OwogICBvdXQtPml2X2xlbiA9IDEyOwotICBvdXQtPmN0eF9zaXplID0g
c2l6ZW9mKEVWUF9BRVNfR0NNX0NUWCk7Ci0gIG91dC0+ZmxhZ3MgPSBFVlBfQ0lQSF9HQ01fTU9E
RSB8IEVWUF9DSVBIX0NVU1RPTV9JViB8CisgIG91dC0+Y3R4X3NpemUgPSBzaXplb2YoRVZQX0FF
U19HQ01fQ1RYKSArIEVWUF9BRVNfR0NNX0NUWF9QQURESU5HOworICBvdXQtPmZsYWdzID0gRVZQ
X0NJUEhfR0NNX01PREUgfCBFVlBfQ0lQSF9DVVNUT01fSVYgfCBFVlBfQ0lQSF9DVVNUT01fQ09Q
WSB8CiAgICAgICAgICAgICAgICBFVlBfQ0lQSF9GTEFHX0NVU1RPTV9DSVBIRVIgfCBFVlBfQ0lQ
SF9BTFdBWVNfQ0FMTF9JTklUIHwKICAgICAgICAgICAgICAgIEVWUF9DSVBIX0NUUkxfSU5JVCB8
IEVWUF9DSVBIX0ZMQUdfQUVBRF9DSVBIRVI7CiAgIG91dC0+aW5pdCA9IGFlc19nY21faW5pdF9r
ZXk7CkBAIC03NjcsOCArNzI4LDggQEAgREVGSU5FX0xPQ0FMX0RBVEEoRVZQX0NJUEhFUiwgYWVz
XzI1Nl9nY21fZ2VuZXJpYykgewogICBvdXQtPmJsb2NrX3NpemUgPSAxOwogICBvdXQtPmtleV9s
ZW4gPSAzMjsKICAgb3V0LT5pdl9sZW4gPSAxMjsKLSAgb3V0LT5jdHhfc2l6ZSA9IHNpemVvZihF
VlBfQUVTX0dDTV9DVFgpOwotICBvdXQtPmZsYWdzID0gRVZQX0NJUEhfR0NNX01PREUgfCBFVlBf
Q0lQSF9DVVNUT01fSVYgfAorICBvdXQtPmN0eF9zaXplID0gc2l6ZW9mKEVWUF9BRVNfR0NNX0NU
WCkgKyBFVlBfQUVTX0dDTV9DVFhfUEFERElORzsKKyAgb3V0LT5mbGFncyA9IEVWUF9DSVBIX0dD
TV9NT0RFIHwgRVZQX0NJUEhfQ1VTVE9NX0lWIHwgRVZQX0NJUEhfQ1VTVE9NX0NPUFkgfAogICAg
ICAgICAgICAgICAgRVZQX0NJUEhfRkxBR19DVVNUT01fQ0lQSEVSIHwgRVZQX0NJUEhfQUxXQVlT
X0NBTExfSU5JVCB8CiAgICAgICAgICAgICAgICBFVlBfQ0lQSF9DVFJMX0lOSVQgfCBFVlBfQ0lQ
SF9GTEFHX0FFQURfQ0lQSEVSOwogICBvdXQtPmluaXQgPSBhZXNfZ2NtX2luaXRfa2V5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2NpcGhlci9lX2Rlcy5jIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL2NpcGhlci9lX2Rlcy5jCmluZGV4IGVhYmE2ZDdhZWRkY2I2Y2FiMTllMDll
NjUzMGIyNmM5YzQ5YzQ5M2EuLmU3NzM2M2I1ZTg1NDE5N2JmNjJlNTU5ZWNiMDRlMzQwM2U5NGYx
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9jaXBoZXIvZV9kZXMuYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvY2lwaGVyL2VfZGVzLmMKQEAgLTIzMSwzICsyMzEsNyBA
QCBERUZJTkVfTUVUSE9EX0ZVTkNUSU9OKEVWUF9DSVBIRVIsIEVWUF9kZXNfZWRlMykgewogICBv
dXQtPmluaXQgPSBkZXNfZWRlM19pbml0X2tleTsKICAgb3V0LT5jaXBoZXIgPSBkZXNfZWRlX2Vj
Yl9jaXBoZXI7CiB9CisKK2NvbnN0IEVWUF9DSVBIRVIqIEVWUF9kZXNfZWRlM19lY2Iodm9pZCkg
eworICByZXR1cm4gRVZQX2Rlc19lZGUzKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Zp
cHNtb2R1bGUvY2lwaGVyL2ludGVybmFsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvY2lwaGVy
L2ludGVybmFsLmgKaW5kZXggN2M3MzlmYmQxMzQxODU4ZTMzY2U5Mzg2YTIxNjgwNWM1MGQwNzFk
Ny4uNjhlZmUzM2Q0NDc4YWEwODg3MTNiOGYzOGQ1MTM1NTZkYjBiMjBjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL2NpcGhlci9pbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
Zmlwc21vZHVsZS9jaXBoZXIvaW50ZXJuYWwuaApAQCAtMTE2LDggKzExNiw3IEBAIHN0cnVjdCBl
dnBfYWVhZF9zdCB7CiAvLyB3aGVyZSB8a2V5X2J5dGVzfCBtdXN0IGVpdGhlciBiZSAxNiwgMjQg
b3IgMzIuIElmIG5vdCBOVUxMLCB8Km91dF9ibG9ja3wgaXMKIC8vIHNldCB0byBhIGZ1bmN0aW9u
IHRoYXQgZW5jcnlwdHMgc2luZ2xlIGJsb2Nrcy4gSWYgbm90IE5VTEwsIHwqZ2NtX2tleXwgaXMK
IC8vIGluaXRpYWxpc2VkIHRvIGRvIEdIQVNIIHdpdGggdGhlIGdpdmVuIGtleS4gSXQgcmV0dXJu
cyBhIGZ1bmN0aW9uIGZvcgotLy8gb3B0aW1pc2VkIENUUi1tb2RlLCBvciBOVUxMIGlmIENUUi1t
b2RlIHNob3VsZCBiZSBidWlsdCB1c2luZwotLy8gfCpvdXRfYmxvY2t8LgorLy8gb3B0aW1pc2Vk
IENUUi1tb2RlLCBvciBOVUxMIGlmIENUUi1tb2RlIHNob3VsZCBiZSBidWlsdCB1c2luZyB8Km91
dF9ibG9ja3wuCiBjdHIxMjhfZiBhZXNfY3RyX3NldF9rZXkoQUVTX0tFWSAqYWVzX2tleSwgR0NN
MTI4X0tFWSAqZ2NtX2tleSwKICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jazEyOF9mICpv
dXRfYmxvY2ssIGNvbnN0IHVpbnQ4X3QgKmtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3Qga2V5X2J5dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9kZWxv
Y2F0ZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2RlbG9jYXRlLmgKaW5kZXggNTllZmZkZTFh
N2ZkZDg2MjI1YmNjMjEyZmZiZWFlOWFlNGE2ZmIwZi4uZDY1NjRlNDg3ZWNjMmM5Yzg1MTMyODI1
YjI2MWVmMGE2NWZhMTI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2RlbG9j
YXRlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2RlbG9jYXRlLmgKQEAgLTIwLDcgKzIw
LDggQEAKICNpbmNsdWRlICIuLi9pbnRlcm5hbC5oIgogCiAKLSNpZiBkZWZpbmVkKEJPUklOR1NT
TF9GSVBTKSAmJiAhZGVmaW5lZChPUEVOU1NMX0FTQU4pICYmICFkZWZpbmVkKE9QRU5TU0xfTVNB
TikKKyNpZiAhZGVmaW5lZChCT1JJTkdTU0xfU0hBUkVEX0xJQlJBUlkpICYmIGRlZmluZWQoQk9S
SU5HU1NMX0ZJUFMpICYmIFwKKyAgICAhZGVmaW5lZChPUEVOU1NMX0FTQU4pICYmICFkZWZpbmVk
KE9QRU5TU0xfTVNBTikKICNkZWZpbmUgREVGSU5FX0JTU19HRVQodHlwZSwgbmFtZSkgICAgICAg
IFwKICAgc3RhdGljIHR5cGUgbmFtZSBfX2F0dHJpYnV0ZV9fKCh1c2VkKSk7IFwKICAgdHlwZSAq
bmFtZSMjX2Jzc19nZXQodm9pZCkgX19hdHRyaWJ1dGVfXygoY29uc3QpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9kaWdlc3QvZGlnZXN0LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvZGlnZXN0L2RpZ2VzdC5jCmluZGV4IGU0OWQ1NTJkYWVhY2Q5ZWQ5NjM5ZmNjMGJhMTMy
NGFkOWU0MjhkZTEuLjY4ZTgxYzQ5YzRmMTlkYTZmZTFkYjdlYjEzZDIyMTA1NDlkZWJkMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9kaWdlc3QvZGlnZXN0LmMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9maXBzbW9kdWxlL2RpZ2VzdC9kaWdlc3QuYwpAQCAtMTE1LDggKzExNSwxNSBAQCB2
b2lkIEVWUF9NRF9DVFhfZnJlZShFVlBfTURfQ1RYICpjdHgpIHsKIAogdm9pZCBFVlBfTURfQ1RY
X2Rlc3Ryb3koRVZQX01EX0NUWCAqY3R4KSB7IEVWUF9NRF9DVFhfZnJlZShjdHgpOyB9CiAKK2lu
dCBFVlBfRGlnZXN0RmluYWxYT0YoRVZQX01EX0NUWCAqY3R4LCB1aW50OF90ICpvdXQsIHNpemVf
dCBsZW4pIHsKKyAgT1BFTlNTTF9QVVRfRVJST1IoRElHRVNULCBFUlJfUl9TSE9VTERfTk9UX0hB
VkVfQkVFTl9DQUxMRUQpOworICByZXR1cm4gMDsKK30KKwogaW50IEVWUF9NRF9DVFhfY29weV9l
eChFVlBfTURfQ1RYICpvdXQsIGNvbnN0IEVWUF9NRF9DVFggKmluKSB7Ci0gIGlmIChpbiA9PSBO
VUxMIHx8IGluLT5kaWdlc3QgPT0gTlVMTCkgeworICAvLyB8aW4tPmRpZ2VzdHwgbWF5IGJlIE5V
TEwgaWYgdGhpcyBpcyBhIHNpZ25pbmcgfEVWUF9NRF9DVFh8IGZvciwgZS5nLiwKKyAgLy8gRWQy
NTUxOSB3aGljaCBkb2VzIG5vdCBoYXNoIHdpdGggfEVWUF9NRF9DVFh8LgorICBpZiAoaW4gPT0g
TlVMTCB8fCAoaW4tPnBjdHggPT0gTlVMTCAmJiBpbi0+ZGlnZXN0ID09IE5VTEwpKSB7CiAgICAg
T1BFTlNTTF9QVVRfRVJST1IoRElHRVNULCBESUdFU1RfUl9JTlBVVF9OT1RfSU5JVElBTElaRUQp
OwogICAgIHJldHVybiAwOwogICB9CkBAIC0xMzEsMjkgKzEzOCwzNCBAQCBpbnQgRVZQX01EX0NU
WF9jb3B5X2V4KEVWUF9NRF9DVFggKm91dCwgY29uc3QgRVZQX01EX0NUWCAqaW4pIHsKICAgICB9
CiAgIH0KIAotICB1aW50OF90ICp0bXBfYnVmOwotICBpZiAob3V0LT5kaWdlc3QgIT0gaW4tPmRp
Z2VzdCkgewotICAgIGFzc2VydChpbi0+ZGlnZXN0LT5jdHhfc2l6ZSAhPSAwKTsKLSAgICB0bXBf
YnVmID0gT1BFTlNTTF9tYWxsb2MoaW4tPmRpZ2VzdC0+Y3R4X3NpemUpOwotICAgIGlmICh0bXBf
YnVmID09IE5VTEwpIHsKLSAgICAgIGlmIChwY3R4KSB7Ci0gICAgICAgIGluLT5wY3R4X29wcy0+
ZnJlZShwY3R4KTsKKyAgdWludDhfdCAqdG1wX2J1ZiA9IE5VTEw7CisgIGlmIChpbi0+ZGlnZXN0
ICE9IE5VTEwpIHsKKyAgICBpZiAob3V0LT5kaWdlc3QgIT0gaW4tPmRpZ2VzdCkgeworICAgICAg
YXNzZXJ0KGluLT5kaWdlc3QtPmN0eF9zaXplICE9IDApOworICAgICAgdG1wX2J1ZiA9IE9QRU5T
U0xfbWFsbG9jKGluLT5kaWdlc3QtPmN0eF9zaXplKTsKKyAgICAgIGlmICh0bXBfYnVmID09IE5V
TEwpIHsKKyAgICAgICAgaWYgKHBjdHgpIHsKKyAgICAgICAgICBpbi0+cGN0eF9vcHMtPmZyZWUo
cGN0eCk7CisgICAgICAgIH0KKyAgICAgICAgT1BFTlNTTF9QVVRfRVJST1IoRElHRVNULCBFUlJf
Ul9NQUxMT0NfRkFJTFVSRSk7CisgICAgICAgIHJldHVybiAwOwogICAgICAgfQotICAgICAgT1BF
TlNTTF9QVVRfRVJST1IoRElHRVNULCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7Ci0gICAgICByZXR1
cm4gMDsKKyAgICB9IGVsc2UgeworICAgICAgLy8gfG1kX2RhdGF8IHdpbGwgYmUgdGhlIGNvcnJl
Y3Qgc2l6ZSBpbiB0aGlzIGNhc2UuIEl0J3MgcmVtb3ZlZCBmcm9tCisgICAgICAvLyB8b3V0fCBz
byB0aGF0IHxFVlBfTURfQ1RYX2NsZWFudXB8IGRvZXNuJ3QgZnJlZSBpdCwgYW5kIHRoZW4gaXQn
cworICAgICAgLy8gcmV1c2VkLgorICAgICAgdG1wX2J1ZiA9IG91dC0+bWRfZGF0YTsKKyAgICAg
IG91dC0+bWRfZGF0YSA9IE5VTEw7CiAgICAgfQotICB9IGVsc2UgewotICAgIC8vIHxtZF9kYXRh
fCB3aWxsIGJlIHRoZSBjb3JyZWN0IHNpemUgaW4gdGhpcyBjYXNlLiBJdCdzIHJlbW92ZWQgZnJv
bSB8b3V0fAotICAgIC8vIHNvIHRoYXQgfEVWUF9NRF9DVFhfY2xlYW51cHwgZG9lc24ndCBmcmVl
IGl0LCBhbmQgdGhlbiBpdCdzIHJldXNlZC4KLSAgICB0bXBfYnVmID0gb3V0LT5tZF9kYXRhOwot
ICAgIG91dC0+bWRfZGF0YSA9IE5VTEw7CiAgIH0KIAogICBFVlBfTURfQ1RYX2NsZWFudXAob3V0
KTsKIAogICBvdXQtPmRpZ2VzdCA9IGluLT5kaWdlc3Q7CiAgIG91dC0+bWRfZGF0YSA9IHRtcF9i
dWY7Ci0gIE9QRU5TU0xfbWVtY3B5KG91dC0+bWRfZGF0YSwgaW4tPm1kX2RhdGEsIGluLT5kaWdl
c3QtPmN0eF9zaXplKTsKKyAgaWYgKGluLT5kaWdlc3QgIT0gTlVMTCkgeworICAgIE9QRU5TU0xf
bWVtY3B5KG91dC0+bWRfZGF0YSwgaW4tPm1kX2RhdGEsIGluLT5kaWdlc3QtPmN0eF9zaXplKTsK
KyAgfQogICBvdXQtPnBjdHggPSBwY3R4OwogICBvdXQtPnBjdHhfb3BzID0gaW4tPnBjdHhfb3Bz
OwogICBhc3NlcnQob3V0LT5wY3R4ID09IE5VTEwgfHwgb3V0LT5wY3R4X29wcyAhPSBOVUxMKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9kaWdlc3QvbWQzMl9jb21tb24uaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9kaWdlc3QvbWQzMl9jb21tb24uaAppbmRleCBhMGMzNjY1
ZDU0YTM2ZDkxNTNmODcxMDc5OGQzZDY4ZjE0MDU2NzEzLi4wN2QzOWQ5ZGYwNGZlOTcxYmQxNTlh
ZmMxYWM0YjhjNzRhYTViYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZGln
ZXN0L21kMzJfY29tbW9uLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2RpZ2VzdC9tZDMy
X2NvbW1vbi5oCkBAIC0yMjMsMTIgKzIyMywxMiBAQCBpbnQgSEFTSF9VUERBVEUoSEFTSF9DVFgg
KmMsIGNvbnN0IHZvaWQgKmRhdGFfLCBzaXplX3QgbGVuKSB7CiB9CiAKIAotdm9pZCBIQVNIX1RS
QU5TRk9STShIQVNIX0NUWCAqYywgY29uc3QgdWludDhfdCAqZGF0YSkgewordm9pZCBIQVNIX1RS
QU5TRk9STShIQVNIX0NUWCAqYywgY29uc3QgdWludDhfdCBkYXRhW0hBU0hfQ0JMT0NLXSkgewog
ICBIQVNIX0JMT0NLX0RBVEFfT1JERVIoYy0+aCwgZGF0YSwgMSk7CiB9CiAKIAotaW50IEhBU0hf
RklOQUwodWludDhfdCAqbWQsIEhBU0hfQ1RYICpjKSB7CitpbnQgSEFTSF9GSU5BTCh1aW50OF90
IG91dFtIQVNIX0RJR0VTVF9MRU5HVEhdLCBIQVNIX0NUWCAqYykgewogICAvLyB8Yy0+ZGF0YXwg
YWx3YXlzIGhhcyByb29tIGZvciBhdCBsZWFzdCBvbmUgYnl0ZS4gQSBmdWxsIGJsb2NrIHdvdWxk
IGhhdmUKICAgLy8gYmVlbiBjb25zdW1lZC4KICAgc2l6ZV90IG4gPSBjLT5udW07CkBAIC0yNTgs
NyArMjU4LDcgQEAgaW50IEhBU0hfRklOQUwodWludDhfdCAqbWQsIEhBU0hfQ1RYICpjKSB7CiAg
IGMtPm51bSA9IDA7CiAgIE9QRU5TU0xfbWVtc2V0KGMtPmRhdGEsIDAsIEhBU0hfQ0JMT0NLKTsK
IAotICBIQVNIX01BS0VfU1RSSU5HKGMsIG1kKTsKKyAgSEFTSF9NQUtFX1NUUklORyhjLCBvdXQp
OwogICByZXR1cm4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Vj
L2FzbS9wMjU2LXg4Nl82NC1hc20ucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvYXNtL3Ay
NTYteDg2XzY0LWFzbS5wbAppbmRleCAxZGMyNTdkN2EyYmNhNWY1N2Y2MmE1MDI1ZjUzOWRjNTNj
YmQ1YzlmLi45OTRjYjgyZDUzYzgxNjMwOGJhMDE0NjQ4OGJkNDIwY2FlMDJmMTlmIDEwMDc1NQot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvYXNtL3AyNTYteDg2XzY0LWFzbS5wbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvYXNtL3AyNTYteDg2XzY0LWFzbS5wbApAQCAtNDg4
LDcgKzQ4OCw3IEBAICRjb2RlLj08PF9fXzsKICMgdm9pZCBlY3BfbmlzdHoyNTZfb3JkX3Nxcl9t
b250KAogIyAgIHVpbnQ2NF90IHJlc1s0XSwKICMgICB1aW50NjRfdCBhWzRdLAotIyAgIGludCBy
ZXApOworIyAgIHVpbnQ2NF90IHJlcCk7CiAKIC5nbG9ibAllY3BfbmlzdHoyNTZfb3JkX3Nxcl9t
b250CiAudHlwZQllY3BfbmlzdHoyNTZfb3JkX3Nxcl9tb250LFxAZnVuY3Rpb24sMwpAQCAtMTMy
MCw2ICsxMzIwLDcgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJX19lY3BfbmlzdHoyNTZfbXVsX21v
bnRxLFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkzMgogX19lY3BfbmlzdHoyNTZfbXVsX21vbnRx
OgorLmNmaV9zdGFydHByb2MKIAkjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAkjIE11bHRpcGx5IGEgYnkgYlsw
XQogCW1vdgklcmF4LCAkdDEKQEAgLTE1MzEsNiArMTUzMiw3IEBAIF9fZWNwX25pc3R6MjU2X211
bF9tb250cToKIAltb3YJJGFjYzEsIDgqMygkcl9wdHIpCiAKIAlyZXQKKy5jZmlfZW5kcHJvYwog
LnNpemUJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxLC4tX19lY3BfbmlzdHoyNTZfbXVsX21vbnRx
CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC0xNjE1LDYgKzE2MTcsNyBAQCAkY29kZS49
PDxfX187CiAudHlwZQlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEsXEBhYmktb21uaXBvdGVudAog
LmFsaWduCTMyCiBfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHE6CisuY2ZpX3N0YXJ0cHJvYwogCW1v
dgklcmF4LCAkYWNjNQogCW11bHEJJGFjYzYJCQkjIGFbMV0qYVswXQogCW1vdgklcmF4LCAkYWNj
MQpAQCAtMTc3Miw2ICsxNzc1LDcgQEAgX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxOgogCW1vdgkk
YWNjNywgOCozKCRyX3B0cikKIAogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQlfX2VjcF9uaXN0
ejI1Nl9zcXJfbW9udHEsLi1fX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKIF9fXwogCkBAIC0xNzgw
LDYgKzE3ODQsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9u
dHgsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTMyCiBfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHg6
CisuY2ZpX3N0YXJ0cHJvYwogCSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCSMgTXVsdGlwbHkgYnkgYlswXQog
CW11bHgJJGFjYzEsICRhY2MwLCAkYWNjMQpAQCAtMTk0MiwxMSArMTk0NywxMyBAQCBfX2VjcF9u
aXN0ejI1Nl9tdWxfbW9udHg6CiAJbW92CSRhY2MxLCA4KjMoJHJfcHRyKQogCiAJcmV0CisuY2Zp
X2VuZHByb2MKIC5zaXplCV9fZWNwX25pc3R6MjU2X211bF9tb250eCwuLV9fZWNwX25pc3R6MjU2
X211bF9tb250eAogCiAudHlwZQlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHgsXEBhYmktb21uaXBv
dGVudAogLmFsaWduCTMyCiBfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHg6CisuY2ZpX3N0YXJ0cHJv
YwogCW11bHgJJGFjYzYsICRhY2MxLCAkYWNjMgkjIGFbMF0qYVsxXQogCW11bHgJJGFjYzcsICR0
MCwgJGFjYzMJIyBhWzBdKmFbMl0KIAl4b3IJJWVheCwgJWVheApAQCAtMjA3MCw2ICsyMDc3LDcg
QEAgX19lY3BfbmlzdHoyNTZfc3FyX21vbnR4OgogCW1vdgkkYWNjNywgOCozKCRyX3B0cikKIAog
CXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHgsLi1fX2Vj
cF9uaXN0ejI1Nl9zcXJfbW9udHgKIF9fXwogfQpAQCAtMjA4Nyw2ICsyMDk1LDcgQEAgJGNvZGUu
PTw8X19fOwogLnR5cGUJZWNwX25pc3R6MjU2X3NlbGVjdF93NSxcQGFiaS1vbW5pcG90ZW50CiAu
YWxpZ24JMzIKIGVjcF9uaXN0ejI1Nl9zZWxlY3RfdzU6CisuY2ZpX3N0YXJ0cHJvYwogX19fCiAk
Y29kZS49PDxfX18JaWYgKCRhdng+MSk7CiAJbGVhcQlPUEVOU1NMX2lhMzJjYXBfUCglcmlwKSwg
JXJheApAQCAtMjE3Niw2ICsyMTg1LDcgQEAgJGNvZGUuPTw8X19fCWlmICgkd2luNjQpOwogX19f
CiAkY29kZS49PDxfX187CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5MU0VIX2VuZF9lY3BfbmlzdHoy
NTZfc2VsZWN0X3c1OgogLnNpemUJZWNwX25pc3R6MjU2X3NlbGVjdF93NSwuLWVjcF9uaXN0ejI1
Nl9zZWxlY3RfdzUKIApAQCAtMjE4NSw2ICsyMTk1LDcgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJ
ZWNwX25pc3R6MjU2X3NlbGVjdF93NyxcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMzIKIGVjcF9u
aXN0ejI1Nl9zZWxlY3Rfdzc6CisuY2ZpX3N0YXJ0cHJvYwogX19fCiAkY29kZS49PDxfX18JaWYg
KCRhdng+MSk7CiAJbGVhcQlPUEVOU1NMX2lhMzJjYXBfUCglcmlwKSwgJXJheApAQCAtMjI2Myw2
ICsyMjc0LDcgQEAgJGNvZGUuPTw8X19fCWlmICgkd2luNjQpOwogX19fCiAkY29kZS49PDxfX187
CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5MU0VIX2VuZF9lY3BfbmlzdHoyNTZfc2VsZWN0X3c3Ogog
LnNpemUJZWNwX25pc3R6MjU2X3NlbGVjdF93NywuLWVjcF9uaXN0ejI1Nl9zZWxlY3RfdzcKIF9f
XwpAQCAtMjI3OSw2ICsyMjkxLDcgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJZWNwX25pc3R6MjU2
X2F2eDJfc2VsZWN0X3c1LFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkzMgogZWNwX25pc3R6MjU2
X2F2eDJfc2VsZWN0X3c1OgorLmNmaV9zdGFydHByb2MKIC5MYXZ4Ml9zZWxlY3RfdzU6CiAJdnpl
cm91cHBlcgogX19fCkBAIC0yMzY2LDYgKzIzNzksNyBAQCAkY29kZS49PDxfX18JaWYgKCR3aW42
NCk7CiBfX18KICRjb2RlLj08PF9fXzsKIAlyZXQKKy5jZmlfZW5kcHJvYwogLkxTRUhfZW5kX2Vj
cF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NToKIC5zaXplCWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVj
dF93NSwuLWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NQogX19fCkBAIC0yMzg1LDYgKzIzOTks
NyBAQCAkY29kZS49PDxfX187CiAudHlwZQllY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzcsXEBh
Ymktb21uaXBvdGVudAogLmFsaWduCTMyCiBlY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3Rfdzc6Cisu
Y2ZpX3N0YXJ0cHJvYwogLkxhdngyX3NlbGVjdF93NzoKIAl2emVyb3VwcGVyCiBfX18KQEAgLTI0
ODcsNiArMjUwMiw3IEBAICRjb2RlLj08PF9fXwlpZiAoJHdpbjY0KTsKIF9fXwogJGNvZGUuPTw8
X19fOwogCXJldAorLmNmaV9lbmRwcm9jCiAuTFNFSF9lbmRfZWNwX25pc3R6MjU2X2F2eDJfc2Vs
ZWN0X3c3OgogLnNpemUJZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c3LC4tZWNwX25pc3R6MjU2
X2F2eDJfc2VsZWN0X3c3CiBfX18KQEAgLTI1NTYsNiArMjU3Miw3IEBAICRjb2RlLj08PF9fXzsK
IC50eXBlCV9fZWNwX25pc3R6MjU2X2FkZF90b3EsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTMy
CiBfX2VjcF9uaXN0ejI1Nl9hZGRfdG9xOgorLmNmaV9zdGFydHByb2MKIAl4b3IJJHQ0LCR0NAog
CWFkZAk4KjAoJGJfcHRyKSwgJGEwCiAJYWRjCTgqMSgkYl9wdHIpLCAkYTEKQEAgLTI1ODMsMTEg
KzI2MDAsMTMgQEAgX19lY3BfbmlzdHoyNTZfYWRkX3RvcToKIAltb3YJJGEzLCA4KjMoJHJfcHRy
KQogCiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCV9fZWNwX25pc3R6MjU2X2FkZF90b3EsLi1f
X2VjcF9uaXN0ejI1Nl9hZGRfdG9xCiAKIC50eXBlCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcSxc
QGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMzIKIF9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcToKKy5j
Zmlfc3RhcnRwcm9jCiAJc3ViCTgqMCgkYl9wdHIpLCAkYTAKIAlzYmIJOCoxKCRiX3B0ciksICRh
MQogCSBtb3YJJGEwLCAkdDAKQEAgLTI2MTQsMTEgKzI2MzMsMTMgQEAgX19lY3BfbmlzdHoyNTZf
c3ViX2Zyb21xOgogCW1vdgkkYTMsIDgqMygkcl9wdHIpCiAKIAlyZXQKKy5jZmlfZW5kcHJvYwog
LnNpemUJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xLC4tX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21x
CiAKIC50eXBlCV9fZWNwX25pc3R6MjU2X3N1YnEsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTMy
CiBfX2VjcF9uaXN0ejI1Nl9zdWJxOgorLmNmaV9zdGFydHByb2MKIAlzdWIJJGEwLCAkdDAKIAlz
YmIJJGExLCAkdDEKIAkgbW92CSR0MCwgJGEwCkBAIC0yNjQxLDExICsyNjYyLDEzIEBAIF9fZWNw
X25pc3R6MjU2X3N1YnE6CiAJY21vdm56CSR0MywgJGEzCiAKIAlyZXQKKy5jZmlfZW5kcHJvYwog
LnNpemUJX19lY3BfbmlzdHoyNTZfc3VicSwuLV9fZWNwX25pc3R6MjU2X3N1YnEKIAogLnR5cGUJ
X19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxLFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkzMgogX19l
Y3BfbmlzdHoyNTZfbXVsX2J5XzJxOgorLmNmaV9zdGFydHByb2MKIAl4b3IJJHQ0LCAkdDQKIAlh
ZGQJJGEwLCAkYTAJCSMgYTA6YTMrYTA6YTMKIAlhZGMJJGExLCAkYTEKQEAgLTI2NzMsNiArMjY5
Niw3IEBAIF9fZWNwX25pc3R6MjU2X211bF9ieV8ycToKIAltb3YJJGEzLCA4KjMoJHJfcHRyKQog
CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCV9fZWNwX25pc3R6MjU2X211bF9ieV8ycSwuLV9f
ZWNwX25pc3R6MjU2X211bF9ieV8ycQogX19fCiAJCQkJCQkJCQl9CkBAIC0zMDg4LDE3ICszMTEy
LDI0IEBAICRjb2RlLj08PF9fXzsKIAogCW9yCSRhY2M1LCAkYWNjNAkJCSMgc2VlIGlmIHJlc3Vs
dCBpcyB6ZXJvCiAJb3IJJGFjYzAsICRhY2M0Ci0Jb3IJJGFjYzEsICRhY2M0CisJb3IJJGFjYzEs
ICRhY2M0CQkJIyAhaXNfZXF1YWwoVTEsIFUyKQogCi0JLmJ5dGUJMHgzZQkJCQkjIHByZWRpY3Qg
dGFrZW4KLQlqbnoJLkxhZGRfcHJvY2VlZCR4CQkJIyBpc19lcXVhbChVMSxVMik/CiAJbW92cQkl
eG1tMiwgJGFjYzAKIAltb3ZxCSV4bW0zLCAkYWNjMQotCXRlc3QJJGFjYzAsICRhY2MwCi0Jam56
CS5MYWRkX3Byb2NlZWQkeAkJCSMgKGluMWluZnR5IHx8IGluMmluZnR5KT8KKwlvcgkkYWNjMCwg
JGFjYzQKKwkuYnl0ZQkweDNlCQkJCSMgcHJlZGljdCB0YWtlbgorCWpuegkuTGFkZF9wcm9jZWVk
JHgJCQkjICFpc19lcXVhbChVMSwgVTIpIHx8IGluMWluZnR5IHx8IGluMmluZnR5CisKKwkjIFdl
IG5vdyBrbm93IEEgPSBCIG9yIEEgPSAtQiBhbmQgbmVpdGhlciBpcyBpbmZpbml0eS4gQ29tcGFy
ZSB0aGUKKwkjIHktY29vcmRpbmF0ZXMgdmlhIFMxIGFuZCBTMi4KIAl0ZXN0CSRhY2MxLCAkYWNj
MQotCWp6CS5MYWRkX2RvdWJsZSR4CQkJIyBpc19lcXVhbChTMSxTMik/CisJanoJLkxhZGRfZG91
YmxlJHgJCQkjIGlzX2VxdWFsKFMxLCBTMikKIAorCSMgQSA9IC1CLCBzbyB0aGUgcmVzdWx0IGlz
IGluZmluaXR5LgorCSMKKwkjIFRPRE8oZGF2aWRiZW4pOiBEb2VzIC5MYWRkX3Byb2NlZWQgaGFu
ZGxlIHRoaXMgY2FzZT8gSXQgc2VlbXMgdG8sIGluCisJIyB3aGljaCBjYXNlIHdlIHNob3VsZCBl
bGltaW5hdGUgdGhpcyBzcGVjaWFsLWNhc2UgYW5kIHNpbXBsaWZ5IHRoZQorCSMgdGltaW5nIGFu
YWx5c2lzLgogCW1vdnEJJXhtbTAsICRyX3B0cgkJCSMgcmVzdG9yZSAkcl9wdHIKIAlweG9yCSV4
bW0wLCAleG1tMAogCW1vdmRxdQkleG1tMCwgMHgwMCgkcl9wdHIpCkBAIC0zMTE0LDcgKzMxNDUs
OSBAQCAkY29kZS49PDxfX187CiAJbW92cQkleG1tMSwgJGFfcHRyCQkJIyByZXN0b3JlICRhX3B0
cgogCW1vdnEJJXhtbTAsICRyX3B0cgkJCSMgcmVzdG9yZSAkcl9wdHIKIAlhZGQJXCRgMzIqKDE4
LTUpYCwgJXJzcAkJIyBkaWZmZXJlbmNlIGluIGZyYW1lIHNpemVzCisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0CWAtMzIqKDE4LTUpYAogCWptcAkuTHBvaW50X2RvdWJsZV9zaG9ydGN1dCR4CisuY2Zp
X2FkanVzdF9jZmFfb2Zmc2V0CWAzMiooMTgtNSlgCiAKIC5hbGlnbgkzMgogLkxhZGRfcHJvY2Vl
ZCR4OgpAQCAtMzY1MSw2ICszNjg0LDcgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJX19lY3Bfbmlz
dHoyNTZfYWRkX3RveCxcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMzIKIF9fZWNwX25pc3R6MjU2
X2FkZF90b3g6CisuY2ZpX3N0YXJ0cHJvYwogCXhvcgkkdDQsICR0NAogCWFkYwk4KjAoJGJfcHRy
KSwgJGEwCiAJYWRjCTgqMSgkYl9wdHIpLCAkYTEKQEAgLTM2NzksMTEgKzM3MTMsMTMgQEAgX19l
Y3BfbmlzdHoyNTZfYWRkX3RveDoKIAltb3YJJGEzLCA4KjMoJHJfcHRyKQogCiAJcmV0CisuY2Zp
X2VuZHByb2MKIC5zaXplCV9fZWNwX25pc3R6MjU2X2FkZF90b3gsLi1fX2VjcF9uaXN0ejI1Nl9h
ZGRfdG94CiAKIC50eXBlCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9teCxcQGFiaS1vbW5pcG90ZW50
CiAuYWxpZ24JMzIKIF9fZWNwX25pc3R6MjU2X3N1Yl9mcm9teDoKKy5jZmlfc3RhcnRwcm9jCiAJ
eG9yCSR0NCwgJHQ0CiAJc2JiCTgqMCgkYl9wdHIpLCAkYTAKIAlzYmIJOCoxKCRiX3B0ciksICRh
MQpAQCAtMzcxMiwxMSArMzc0OCwxMyBAQCBfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXg6CiAJbW92
CSRhMywgOCozKCRyX3B0cikKIAogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQlfX2VjcF9uaXN0
ejI1Nl9zdWJfZnJvbXgsLi1fX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXgKIAogLnR5cGUJX19lY3Bf
bmlzdHoyNTZfc3VieCxcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMzIKIF9fZWNwX25pc3R6MjU2
X3N1Yng6CisuY2ZpX3N0YXJ0cHJvYwogCXhvcgkkdDQsICR0NAogCXNiYgkkYTAsICR0MAogCXNi
YgkkYTEsICR0MQpAQCAtMzc0MSwxMSArMzc3OSwxMyBAQCBfX2VjcF9uaXN0ejI1Nl9zdWJ4Ogog
CWNtb3ZjCSR0MywgJGEzCiAKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJX19lY3BfbmlzdHoy
NTZfc3VieCwuLV9fZWNwX25pc3R6MjU2X3N1YngKIAogLnR5cGUJX19lY3BfbmlzdHoyNTZfbXVs
X2J5XzJ4LFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkzMgogX19lY3BfbmlzdHoyNTZfbXVsX2J5
XzJ4OgorLmNmaV9zdGFydHByb2MKIAl4b3IJJHQ0LCAkdDQKIAlhZGMJJGEwLCAkYTAJCSMgYTA6
YTMrYTA6YTMKIAlhZGMJJGExLCAkYTEKQEAgLTM3NzQsNiArMzgxNCw3IEBAIF9fZWNwX25pc3R6
MjU2X211bF9ieV8yeDoKIAltb3YJJGEzLCA4KjMoJHJfcHRyKQogCiAJcmV0CisuY2ZpX2VuZHBy
b2MKIC5zaXplCV9fZWNwX25pc3R6MjU2X211bF9ieV8yeCwuLV9fZWNwX25pc3R6MjU2X211bF9i
eV8yeAogX19fCiAJCQkJCQkJCQl9CkBAIC00MTEyLDQgKzQxNTMsNCBAQCBfX18KIAogJGNvZGUg
PX4gcy9cYChbXlxgXSopXGAvZXZhbCAkMS9nZW07CiBwcmludCAkY29kZTsKLWNsb3NlIFNURE9V
VDsKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9hc20vcDI1Nl9iZWV1LXg4Nl82NC1hc20ucGwg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvYXNtL3AyNTZfYmVldS14ODZfNjQtYXNtLnBsCmlu
ZGV4IDEyYjlmNWFmMmU5ZGI3ZjZlNzk5ZjA4NDQ5NWNiMjgyOGM4Y2FiODkuLmMwNWFiYmE4MDZm
NTM2YTk3YjBlNjU4ZWM5YjQxMzA1ZjM3YTNlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlw
c21vZHVsZS9lYy9hc20vcDI1Nl9iZWV1LXg4Nl82NC1hc20ucGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL2VjL2FzbS9wMjU2X2JlZXUteDg2XzY0LWFzbS5wbApAQCAtMTU2LDkgKzE1Niw2
IEBAIGJlZXVfbW9kX2ludmVyc2VfdmFydGltZToKIC5jZmlfc3RhcnRwcm9jCiAgICAgcHVzaCAl
cmJwCiAuY2ZpX3B1c2ggcmJwCi0gICAgbW92cSAlcnNwLCAlcmJwCi0uY2ZpX2RlZl9jZmFfcmVn
aXN0ZXIgcmJwCi0KICAgICBwdXNoICVyMTIKIC5jZmlfcHVzaCByMTIKICAgICBwdXNoICVyMTMK
QEAgLTE3Myw2ICsxNzAsNyBAQCBiZWV1X21vZF9pbnZlcnNlX3ZhcnRpbWU6CiAuY2ZpX3B1c2gg
cnNpCiAKICAgICBzdWIgXCQkbGFzdF9yc3Bfb2Zmc2V0LCAlcnNwCisuY2ZpX2FkanVzdF9jZmFf
b2Zmc2V0ICAkbGFzdF9yc3Bfb2Zmc2V0CiAgICAgbW92cSAkb3V0LCAkb3V0X3JzcCglcnNwKQog
CiAgICAgIyBYPTEsIFk9MApAQCAtMzgwLDYgKzM3OCw3IEBAIGJlZXVfbW9kX2ludmVyc2VfdmFy
dGltZToKIAogLkxiZWV1X2ZpbmlzaDoKICAgICBhZGQgXCQkbGFzdF9yc3Bfb2Zmc2V0LCAlcnNw
CisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICAtJGxhc3RfcnNwX29mZnNldAogICAgIHBvcCAlcnNp
CiAuY2ZpX3BvcCByc2kKICAgICBwb3AgJXJieApAQCAtMzk0LDEyICszOTMsMTEgQEAgYmVldV9t
b2RfaW52ZXJzZV92YXJ0aW1lOgogLmNmaV9wb3AgcjEyCiAgICAgcG9wICVyYnAKIC5jZmlfcG9w
IHJicAotLmNmaV9kZWZfY2ZhIHJzcCwgOAotLmNmaV9lbmRwcm9jCiAgICAgcmV0CisuY2ZpX2Vu
ZHByb2MKIAogLnNpemUgYmVldV9tb2RfaW52ZXJzZV92YXJ0aW1lLCAuLWJlZXVfbW9kX2ludmVy
c2VfdmFydGltZQogX19fCiAKIHByaW50ICRjb2RlOwotY2xvc2UgU1RET1VUOworY2xvc2UgU1RE
T1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL2VjL2VjLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZWMuYwppbmRl
eCBiZDA2NjJhNzAzZDYyODVkZjUxNzM1YzVkNDg3MGQyMWE4MmIzOWNmLi4xNThkNjZjYzA0N2Ri
MzdiZTE5ZGUwYzgzYzAzMzQ0ZTU0YzViOTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvZWMvZWMuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZWMuYwpAQCAtNDk5
LDggKzQ5OSw4IEBAIGVycjoKIHN0cnVjdCBidWlsdF9pbl9ncm91cHNfc3QgewogICBFQ19HUk9V
UCAqZ3JvdXBzW09QRU5TU0xfTlVNX0JVSUxUX0lOX0NVUlZFU107CiB9OwotREVGSU5FX0JTU19H
RVQoc3RydWN0IGJ1aWx0X2luX2dyb3Vwc19zdCwgYnVpbHRfaW5fZ3JvdXBzKTsKLURFRklORV9T
VEFUSUNfTVVURVgoYnVpbHRfaW5fZ3JvdXBzX2xvY2spOworREVGSU5FX0JTU19HRVQoc3RydWN0
IGJ1aWx0X2luX2dyb3Vwc19zdCwgYnVpbHRfaW5fZ3JvdXBzKQorREVGSU5FX1NUQVRJQ19NVVRF
WChidWlsdF9pbl9ncm91cHNfbG9jaykKIAogRUNfR1JPVVAgKkVDX0dST1VQX25ld19ieV9jdXJ2
ZV9uYW1lKGludCBuaWQpIHsKICAgc3RydWN0IGJ1aWx0X2luX2dyb3Vwc19zdCAqZ3JvdXBzID0g
YnVpbHRfaW5fZ3JvdXBzX2Jzc19nZXQoKTsKQEAgLTYyNSw2ICs2MjUsMTAgQEAgaW50IEVDX0dS
T1VQX2dldF9vcmRlcihjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEJJR05VTSAqb3JkZXIsIEJOX0NU
WCAqY3R4KSB7CiAgIHJldHVybiAxOwogfQogCitpbnQgRUNfR1JPVVBfb3JkZXJfYml0cyhjb25z
dCBFQ19HUk9VUCAqZ3JvdXApIHsKKyAgcmV0dXJuIEJOX251bV9iaXRzKCZncm91cC0+b3JkZXIp
OworfQorCiBpbnQgRUNfR1JPVVBfZ2V0X2NvZmFjdG9yKGNvbnN0IEVDX0dST1VQICpncm91cCwg
QklHTlVNICpjb2ZhY3RvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgQk5fQ1RYICpjdHgp
IHsKICAgLy8gQWxsIHxFQ19HUk9VUHxzIGhhdmUgY29mYWN0b3IgMS4KQEAgLTY1Niw2ICs2NjAs
MjIgQEAgY29uc3QgY2hhciAqRUNfY3VydmVfbmlkMm5pc3QoaW50IG5pZCkgewogICByZXR1cm4g
TlVMTDsKIH0KIAoraW50IEVDX2N1cnZlX25pc3QybmlkKGNvbnN0IGNoYXIgKm5hbWUpIHsKKyAg
aWYgKHN0cmNtcChuYW1lLCAiUC0yMjQiKSA9PSAwKSB7CisgICAgcmV0dXJuIE5JRF9zZWNwMjI0
cjE7CisgIH0KKyAgaWYgKHN0cmNtcChuYW1lLCAiUC0yNTYiKSA9PSAwKSB7CisgICAgcmV0dXJu
IE5JRF9YOV82Ml9wcmltZTI1NnYxOworICB9CisgIGlmIChzdHJjbXAobmFtZSwgIlAtMzg0Iikg
PT0gMCkgeworICAgIHJldHVybiBOSURfc2VjcDM4NHIxOworICB9CisgIGlmIChzdHJjbXAobmFt
ZSwgIlAtNTIxIikgPT0gMCkgeworICAgIHJldHVybiBOSURfc2VjcDUyMXIxOworICB9CisgIHJl
dHVybiBOSURfdW5kZWY7Cit9CisKIEVDX1BPSU5UICpFQ19QT0lOVF9uZXcoY29uc3QgRUNfR1JP
VVAgKmdyb3VwKSB7CiAgIGlmIChncm91cCA9PSBOVUxMKSB7CiAgICAgT1BFTlNTTF9QVVRfRVJS
T1IoRUMsIEVSUl9SX1BBU1NFRF9OVUxMX1BBUkFNRVRFUik7CkBAIC04NzIsOCArODkyLDYgQEAg
aW50IEVDX1BPSU5UX211bChjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1BPSU5UICpyLCBjb25z
dCBCSUdOVU0gKmdfc2NhbGFyLAogICB9CiAKICAgaW50IHJldCA9IDA7Ci0gIEVDX1NDQUxBUiBn
X3NjYWxhcl9zdG9yYWdlLCBwX3NjYWxhcl9zdG9yYWdlOwotICBFQ19TQ0FMQVIgKmdfc2NhbGFy
X2FyZyA9IE5VTEwsICpwX3NjYWxhcl9hcmcgPSBOVUxMOwogICBCTl9DVFggKm5ld19jdHggPSBO
VUxMOwogICBpZiAoY3R4ID09IE5VTEwpIHsKICAgICBuZXdfY3R4ID0gQk5fQ1RYX25ldygpOwpA
QCAtODgzLDM1ICs5MDEsNTAgQEAgaW50IEVDX1BPSU5UX211bChjb25zdCBFQ19HUk9VUCAqZ3Jv
dXAsIEVDX1BPSU5UICpyLCBjb25zdCBCSUdOVU0gKmdfc2NhbGFyLAogICAgIGN0eCA9IG5ld19j
dHg7CiAgIH0KIAorICAvLyBJZiBib3RoIHxnX3NjYWxhcnwgYW5kIHxwX3NjYWxhcnwgYXJlIG5v
bi1OVUxMLAorICAvLyB8ZWNfcG9pbnRfbXVsX3NjYWxhcl9wdWJsaWN8IHdvdWxkIHNoYXJlIHRo
ZSBkb3VibGluZ3MgYmV0d2VlbiB0aGUgdHdvCisgIC8vIHByb2R1Y3RzLCB3aGljaCB3b3VsZCBi
ZSBtb3JlIGVmZmljaWVudC4gSG93ZXZlciwgd2UgY29uc2VydmF0aXZlbHkgYXNzdW1lCisgIC8v
IHRoZSBjYWxsZXIgbmVlZHMgYSBjb25zdGFudC10aW1lIG9wZXJhdGlvbi4gKEVDRFNBIHZlcmlm
aWNhdGlvbiBkb2VzIG5vdAorICAvLyB1c2UgdGhpcyBmdW5jdGlvbi4pCisgIC8vCisgIC8vIFBy
ZXZpb3VzbHksIHRoZSBsb3ctbGV2ZWwgY29uc3RhbnQtdGltZSBtdWx0aXBsaWNhdGlvbiBmdW5j
dGlvbiBhbGlnbmVkCisgIC8vIHdpdGggdGhpcyBmdW5jdGlvbidzIGNhbGxpbmcgY29udmVudGlv
biwgYnV0IHRoaXMgd2FzIG1pc2xlYWRpbmcuIEN1cnZlcworICAvLyB3aGljaCBjb21iaW5lZCB0
aGUgdHdvIG11bHRpcGxpY2F0aW9ucyBkaWQgbm90IGF2b2lkIHRoZSBkb3VibGluZyBjYXNlCisg
IC8vIGluIHRoZSBpbmNvbXBsZXRlIGFkZGl0aW9uIGZvcm11bGEgYW5kIHdlcmUgbm90IGNvbnN0
YW50LXRpbWUuCisKICAgaWYgKGdfc2NhbGFyICE9IE5VTEwpIHsKLSAgICBpZiAoIWFyYml0cmFy
eV9iaWdudW1fdG9fc2NhbGFyKGdyb3VwLCAmZ19zY2FsYXJfc3RvcmFnZSwgZ19zY2FsYXIsIGN0
eCkpIHsKKyAgICBFQ19TQ0FMQVIgc2NhbGFyOworICAgIGlmICghYXJiaXRyYXJ5X2JpZ251bV90
b19zY2FsYXIoZ3JvdXAsICZzY2FsYXIsIGdfc2NhbGFyLCBjdHgpIHx8CisgICAgICAgICFlY19w
b2ludF9tdWxfc2NhbGFyX2Jhc2UoZ3JvdXAsICZyLT5yYXcsICZzY2FsYXIpKSB7CiAgICAgICBn
b3RvIGVycjsKICAgICB9Ci0gICAgZ19zY2FsYXJfYXJnID0gJmdfc2NhbGFyX3N0b3JhZ2U7CiAg
IH0KIAogICBpZiAocF9zY2FsYXIgIT0gTlVMTCkgewotICAgIGlmICghYXJiaXRyYXJ5X2JpZ251
bV90b19zY2FsYXIoZ3JvdXAsICZwX3NjYWxhcl9zdG9yYWdlLCBwX3NjYWxhciwgY3R4KSkgewor
ICAgIEVDX1NDQUxBUiBzY2FsYXI7CisgICAgRUNfUkFXX1BPSU5UIHRtcDsKKyAgICBpZiAoIWFy
Yml0cmFyeV9iaWdudW1fdG9fc2NhbGFyKGdyb3VwLCAmc2NhbGFyLCBwX3NjYWxhciwgY3R4KSB8
fAorICAgICAgICAhZWNfcG9pbnRfbXVsX3NjYWxhcihncm91cCwgJnRtcCwgJnAtPnJhdywgJnNj
YWxhcikpIHsKICAgICAgIGdvdG8gZXJyOwogICAgIH0KLSAgICBwX3NjYWxhcl9hcmcgPSAmcF9z
Y2FsYXJfc3RvcmFnZTsKKyAgICBpZiAoZ19zY2FsYXIgPT0gTlVMTCkgeworICAgICAgT1BFTlNT
TF9tZW1jcHkoJnItPnJhdywgJnRtcCwgc2l6ZW9mKEVDX1JBV19QT0lOVCkpOworICAgIH0gZWxz
ZSB7CisgICAgICBncm91cC0+bWV0aC0+YWRkKGdyb3VwLCAmci0+cmF3LCAmci0+cmF3LCAmdG1w
KTsKKyAgICB9CiAgIH0KIAotICByZXQgPSBlY19wb2ludF9tdWxfc2NhbGFyKGdyb3VwLCAmci0+
cmF3LCBnX3NjYWxhcl9hcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9PSBOVUxM
ID8gTlVMTCA6ICZwLT5yYXcsIHBfc2NhbGFyX2FyZyk7CisgIHJldCA9IDE7CiAKIGVycjoKICAg
Qk5fQ1RYX2ZyZWUobmV3X2N0eCk7Ci0gIE9QRU5TU0xfY2xlYW5zZSgmZ19zY2FsYXJfc3RvcmFn
ZSwgc2l6ZW9mKGdfc2NhbGFyX3N0b3JhZ2UpKTsKLSAgT1BFTlNTTF9jbGVhbnNlKCZwX3NjYWxh
cl9zdG9yYWdlLCBzaXplb2YocF9zY2FsYXJfc3RvcmFnZSkpOwogICByZXR1cm4gcmV0OwogfQog
CiBpbnQgZWNfcG9pbnRfbXVsX3NjYWxhcl9wdWJsaWMoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBF
Q19SQVdfUE9JTlQgKnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRUNf
U0NBTEFSICpnX3NjYWxhciwgY29uc3QgRUNfUkFXX1BPSU5UICpwLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqcF9zY2FsYXIpIHsKLSAgaWYgKChnX3Nj
YWxhciA9PSBOVUxMICYmIHBfc2NhbGFyID09IE5VTEwpIHx8Ci0gICAgICAocCA9PSBOVUxMKSAh
PSAocF9zY2FsYXIgPT0gTlVMTCkpIHsKKyAgaWYgKGdfc2NhbGFyID09IE5VTEwgfHwgcF9zY2Fs
YXIgPT0gTlVMTCB8fCBwID09IE5VTEwpIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihFQywgRVJS
X1JfUEFTU0VEX05VTExfUEFSQU1FVEVSKTsKICAgICByZXR1cm4gMDsKICAgfQpAQCAtOTIxLDE1
ICs5NTQsMjQgQEAgaW50IGVjX3BvaW50X211bF9zY2FsYXJfcHVibGljKGNvbnN0IEVDX0dST1VQ
ICpncm91cCwgRUNfUkFXX1BPSU5UICpyLAogfQogCiBpbnQgZWNfcG9pbnRfbXVsX3NjYWxhcihj
b25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1JBV19QT0lOVCAqciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqZ19zY2FsYXIsIGNvbnN0IEVDX1JBV19QT0lOVCAqcCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqcF9zY2FsYXIpIHsKLSAg
aWYgKChnX3NjYWxhciA9PSBOVUxMICYmIHBfc2NhbGFyID09IE5VTEwpIHx8Ci0gICAgICAocCA9
PSBOVUxMKSAhPSAocF9zY2FsYXIgPT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEVDX1JBV19QT0lOVCAqcCwgY29uc3QgRUNfU0NBTEFSICpzY2FsYXIpIHsKKyAgaWYg
KHAgPT0gTlVMTCB8fCBzY2FsYXIgPT0gTlVMTCkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVD
LCBFUlJfUl9QQVNTRURfTlVMTF9QQVJBTUVURVIpOworICAgIHJldHVybiAwOworICB9CisKKyAg
Z3JvdXAtPm1ldGgtPm11bChncm91cCwgciwgcCwgc2NhbGFyKTsKKyAgcmV0dXJuIDE7Cit9CisK
K2ludCBlY19wb2ludF9tdWxfc2NhbGFyX2Jhc2UoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19S
QVdfUE9JTlQgKnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxB
UiAqc2NhbGFyKSB7CisgIGlmIChzY2FsYXIgPT0gTlVMTCkgewogICAgIE9QRU5TU0xfUFVUX0VS
Uk9SKEVDLCBFUlJfUl9QQVNTRURfTlVMTF9QQVJBTUVURVIpOwogICAgIHJldHVybiAwOwogICB9
CiAKLSAgZ3JvdXAtPm1ldGgtPm11bChncm91cCwgciwgZ19zY2FsYXIsIHAsIHBfc2NhbGFyKTsK
KyAgZ3JvdXAtPm1ldGgtPm11bF9iYXNlKGdyb3VwLCByLCBzY2FsYXIpOwogICByZXR1cm4gMTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL2VjX2tleS5jIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9maXBzbW9kdWxlL2VjL2VjX2tleS5jCmluZGV4IDYzMmRjOWIyZDkwMmRmYmEwMTU2
N2Y0YzAyYWQ3YWQ2ZDBjOGMzZTguLjM4NTFjMTk4NDYwNjVhZjI0NWNmYzcyNDNhZjA0NjgzZGFm
ZTY3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9lY19rZXkuYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZWNfa2V5LmMKQEAgLTgyLDcgKzgyLDcgQEAKICNp
bmNsdWRlICIuLi8uLi9pbnRlcm5hbC5oIgogCiAKLURFRklORV9TVEFUSUNfRVhfREFUQV9DTEFT
UyhnX2VjX2V4X2RhdGFfY2xhc3MpOworREVGSU5FX1NUQVRJQ19FWF9EQVRBX0NMQVNTKGdfZWNf
ZXhfZGF0YV9jbGFzcykKIAogc3RhdGljIEVDX1dSQVBQRURfU0NBTEFSICplY193cmFwcGVkX3Nj
YWxhcl9uZXcoY29uc3QgRUNfR1JPVVAgKmdyb3VwKSB7CiAgIEVDX1dSQVBQRURfU0NBTEFSICp3
cmFwcGVkID0gT1BFTlNTTF9tYWxsb2Moc2l6ZW9mKEVDX1dSQVBQRURfU0NBTEFSKSk7CkBAIC0y
NjcsNyArMjY3LDcgQEAgaW50IEVDX0tFWV9zZXRfcHVibGljX2tleShFQ19LRVkgKmtleSwgY29u
c3QgRUNfUE9JTlQgKnB1Yl9rZXkpIHsKICAgICByZXR1cm4gMDsKICAgfQogCi0gIGlmIChFQ19H
Uk9VUF9jbXAoa2V5LT5ncm91cCwgcHViX2tleS0+Z3JvdXAsIE5VTEwpICE9IDApIHsKKyAgaWYg
KHB1Yl9rZXkgIT0gTlVMTCAmJiBFQ19HUk9VUF9jbXAoa2V5LT5ncm91cCwgcHViX2tleS0+Z3Jv
dXAsIE5VTEwpICE9IDApIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihFQywgRUNfUl9HUk9VUF9N
SVNNQVRDSCk7CiAgICAgcmV0dXJuIDA7CiAgIH0KQEAgLTMyMiw4ICszMjIsOCBAQCBpbnQgRUNf
S0VZX2NoZWNrX2tleShjb25zdCBFQ19LRVkgKmVja2V5KSB7CiAgIGlmIChlY2tleS0+cHJpdl9r
ZXkgIT0gTlVMTCkgewogICAgIHBvaW50ID0gRUNfUE9JTlRfbmV3KGVja2V5LT5ncm91cCk7CiAg
ICAgaWYgKHBvaW50ID09IE5VTEwgfHwKLSAgICAgICAgIWVjX3BvaW50X211bF9zY2FsYXIoZWNr
ZXktPmdyb3VwLCAmcG9pbnQtPnJhdywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVj
a2V5LT5wcml2X2tleS0+c2NhbGFyLCBOVUxMLCBOVUxMKSkgeworICAgICAgICAhZWNfcG9pbnRf
bXVsX3NjYWxhcl9iYXNlKGVja2V5LT5ncm91cCwgJnBvaW50LT5yYXcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJmVja2V5LT5wcml2X2tleS0+c2NhbGFyKSkgewogICAgICAg
T1BFTlNTTF9QVVRfRVJST1IoRUMsIEVSUl9SX0VDX0xJQik7CiAgICAgICBnb3RvIGVycjsKICAg
ICB9CkBAIC0zOTQsNiArMzk0LDMzIEBAIGVycjoKICAgcmV0dXJuIG9rOwogfQogCitzaXplX3Qg
RUNfS0VZX2tleTJidWYoRUNfS0VZICprZXksIHBvaW50X2NvbnZlcnNpb25fZm9ybV90IGZvcm0s
CisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKm91dF9idWYsIEJOX0NUWCAq
Y3R4KSB7CisgIGlmIChrZXkgPT0gTlVMTCB8fCBrZXktPnB1Yl9rZXkgPT0gTlVMTCB8fCBrZXkt
Pmdyb3VwID09IE5VTEwpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIGNvbnN0IHNpemVfdCBs
ZW4gPQorICAgICAgRUNfUE9JTlRfcG9pbnQyb2N0KGtleS0+Z3JvdXAsIGtleS0+cHViX2tleSwg
Zm9ybSwgTlVMTCwgMCwgY3R4KTsKKyAgaWYgKGxlbiA9PSAwKSB7CisgICAgcmV0dXJuIDA7Cisg
IH0KKworICB1aW50OF90ICpidWYgPSBPUEVOU1NMX21hbGxvYyhsZW4pOworICBpZiAoYnVmID09
IE5VTEwpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIGlmIChFQ19QT0lOVF9wb2ludDJvY3Qo
a2V5LT5ncm91cCwga2V5LT5wdWJfa2V5LCBmb3JtLCBidWYsIGxlbiwgY3R4KSAhPQorICAgICAg
bGVuKSB7CisgICAgT1BFTlNTTF9mcmVlKGJ1Zik7CisgICAgcmV0dXJuIDA7CisgIH0KKworICAq
b3V0X2J1ZiA9IGJ1ZjsKKyAgcmV0dXJuIGxlbjsKK30KKwogaW50IEVDX0tFWV9nZW5lcmF0ZV9r
ZXkoRUNfS0VZICprZXkpIHsKICAgaWYgKGtleSA9PSBOVUxMIHx8IGtleS0+Z3JvdXAgPT0gTlVM
TCkgewogICAgIE9QRU5TU0xfUFVUX0VSUk9SKEVDLCBFUlJfUl9QQVNTRURfTlVMTF9QQVJBTUVU
RVIpOwpAQCAtNDEzLDggKzQ0MCw3IEBAIGludCBFQ19LRVlfZ2VuZXJhdGVfa2V5KEVDX0tFWSAq
a2V5KSB7CiAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcHJpdmF0ZSBrZXkgYnkgdGVzdGluZyBjYW5k
aWRhdGVzIChGSVBTIDE4Ni00IEIuNC4yKS4KICAgICAgICFlY19yYW5kb21fbm9uemVyb19zY2Fs
YXIoa2V5LT5ncm91cCwgJnByaXZfa2V5LT5zY2FsYXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGtEZWZhdWx0QWRkaXRpb25hbERhdGEpIHx8Ci0gICAgICAhZWNfcG9pbnRfbXVs
X3NjYWxhcihrZXktPmdyb3VwLCAmcHViX2tleS0+cmF3LCAmcHJpdl9rZXktPnNjYWxhciwgTlVM
TCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKSB7CisgICAgICAhZWNfcG9pbnRf
bXVsX3NjYWxhcl9iYXNlKGtleS0+Z3JvdXAsICZwdWJfa2V5LT5yYXcsICZwcml2X2tleS0+c2Nh
bGFyKSkgewogICAgIEVDX1BPSU5UX2ZyZWUocHViX2tleSk7CiAgICAgZWNfd3JhcHBlZF9zY2Fs
YXJfZnJlZShwcml2X2tleSk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvZWMvZWNfbW9udGdvbWVyeS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Vj
L2VjX21vbnRnb21lcnkuYwppbmRleCBjYWExOTY2MTQ5YjhlZmRiNGYwZmE1MTNiZjIzYjkwNTFk
OWQwYjY0Li4wY2YxZDkxMGQxNWQwNjI5MGQxOTU3NjMzMDM2OGQ3MDc0ZWU4YjQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZWNfbW9udGdvbWVyeS5jCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9lYy9lY19tb250Z29tZXJ5LmMKQEAgLTI4Miw3ICsyODIsOCBAQCB2
b2lkIGVjX0dGcF9tb250X2FkZChjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1JBV19QT0lOVCAq
b3V0LAogICBCTl9VTE9ORyB5bmVxID0gZWNfZmVsZW1fbm9uX3plcm9fbWFzayhncm91cCwgJnIp
OwogCiAgIC8vIFRoaXMgY2FzZSB3aWxsIG5ldmVyIG9jY3VyIGluIHRoZSBjb25zdGFudC10aW1l
IHxlY19HRnBfbW9udF9tdWx8LgotICBpZiAoIXhuZXEgJiYgIXluZXEgJiYgejFueiAmJiB6Mm56
KSB7CisgIEJOX1VMT05HIGlzX25vbnRyaXZpYWxfZG91YmxlID0gfnhuZXEgJiB+eW5lcSAmIHox
bnogJiB6Mm56OworICBpZiAoaXNfbm9udHJpdmlhbF9kb3VibGUpIHsKICAgICBlY19HRnBfbW9u
dF9kYmwoZ3JvdXAsIG91dCwgYSk7CiAgICAgcmV0dXJuOwogICB9CkBAIC00NzAsNiArNDcxLDcg
QEAgREVGSU5FX01FVEhPRF9GVU5DVElPTihFQ19NRVRIT0QsIEVDX0dGcF9tb250X21ldGhvZCkg
ewogICBvdXQtPmFkZCA9IGVjX0dGcF9tb250X2FkZDsKICAgb3V0LT5kYmwgPSBlY19HRnBfbW9u
dF9kYmw7CiAgIG91dC0+bXVsID0gZWNfR0ZwX21vbnRfbXVsOworICBvdXQtPm11bF9iYXNlID0g
ZWNfR0ZwX21vbnRfbXVsX2Jhc2U7CiAgIG91dC0+bXVsX3B1YmxpYyA9IGVjX0dGcF9tb250X211
bF9wdWJsaWM7CiAgIG91dC0+ZmVsZW1fbXVsID0gZWNfR0ZwX21vbnRfZmVsZW1fbXVsOwogICBv
dXQtPmZlbGVtX3NxciA9IGVjX0dGcF9tb250X2ZlbGVtX3NxcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9lYy9lY190ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Vj
L2VjX3Rlc3QuY2MKaW5kZXggOTdjNmQ0NTA3NWVmOGE1NmM3NjU4NmI0YWVhOTQxNTBkOTc1NmM3
Mi4uYzBhZDYxZjU1YzM4MmViNDkyMGZmN2Y5NTA4YzQ2ODNhNWU3MTVlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL2VjX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL2VjL2VjX3Rlc3QuY2MKQEAgLTM0Nyw2ICszNDcsMjAgQEAgVEVTVChFQ1Rlc3QsIFNl
dEtleVdpdGhvdXRHcm91cCkgewogICAgICAgRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtleS5nZXQo
KSwgRUNfR1JPVVBfZ2V0MF9nZW5lcmF0b3IoZ3JvdXAuZ2V0KCkpKSk7CiB9CiAKK1RFU1QoRUNU
ZXN0LCBTZXROVUxMS2V5KSB7CisgIGJzc2w6OlVuaXF1ZVB0cjxFQ19LRVk+IGtleShFQ19LRVlf
bmV3X2J5X2N1cnZlX25hbWUoTklEX1g5XzYyX3ByaW1lMjU2djEpKTsKKyAgQVNTRVJUX1RSVUUo
a2V5KTsKKworICBFWFBFQ1RfVFJVRShFQ19LRVlfc2V0X3B1YmxpY19rZXkoCisgICAgICBrZXku
Z2V0KCksIEVDX0dST1VQX2dldDBfZ2VuZXJhdG9yKEVDX0tFWV9nZXQwX2dyb3VwKGtleS5nZXQo
KSkpKSk7CisgIEVYUEVDVF9UUlVFKEVDX0tFWV9nZXQwX3B1YmxpY19rZXkoa2V5LmdldCgpKSk7
CisKKyAgLy8gU2V0dGluZyBhIE5VTEwgcHVibGljLWtleSBzaG91bGQgY2xlYXIgdGhlIHB1Ymxp
Yy1rZXkgYW5kIHJldHVybiB6ZXJvLCBpbgorICAvLyBvcmRlciB0byBtYXRjaCBPcGVuU1NMIGJl
aGF2aW91ciBleGFjdGx5LgorICBFWFBFQ1RfRkFMU0UoRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtl
eS5nZXQoKSwgbnVsbHB0cikpOworICBFWFBFQ1RfRkFMU0UoRUNfS0VZX2dldDBfcHVibGljX2tl
eShrZXkuZ2V0KCkpKTsKK30KKwogVEVTVChFQ1Rlc3QsIEdyb3VwTWlzbWF0Y2gpIHsKICAgYnNz
bDo6VW5pcXVlUHRyPEVDX0tFWT4ga2V5KEVDX0tFWV9uZXdfYnlfY3VydmVfbmFtZShOSURfc2Vj
cDM4NHIxKSk7CiAgIEFTU0VSVF9UUlVFKGtleSk7CkBAIC03NTAsNyArNzY0LDE1IEBAIFRFU1Rf
UChFQ0N1cnZlVGVzdCwgUDIyNEJ1ZykgewogICBBU1NFUlRfVFJVRShCTl9zZXRfd29yZChibjMy
LmdldCgpLCAzMikpOwogICBBU1NFUlRfVFJVRShFQ19QT0lOVF9tdWwoZ3JvdXAoKSwgcmV0Lmdl
dCgpLCBibjMyLmdldCgpLCBwLmdldCgpLCBibjMxLmdldCgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbnVsbHB0cikpOworICBFWFBFQ1RfRVEoMCwgRUNfUE9JTlRfY21wKGdyb3VwKCks
IHJldC5nZXQoKSwgZywgbnVsbHB0cikpOwogCisgIC8vIFJlcGVhdCB0aGUgY29tcHV0YXRpb24g
d2l0aCB8ZWNfcG9pbnRfbXVsX3NjYWxhcl9wdWJsaWN8LCB3aGljaCB0aWVzIHRoZQorICAvLyBh
ZGRpdGlvbnMgdG9nZXRoZXIuCisgIEVDX1NDQUxBUiBzYzMxLCBzYzMyOworICBBU1NFUlRfVFJV
RShlY19iaWdudW1fdG9fc2NhbGFyKGdyb3VwKCksICZzYzMxLCBibjMxLmdldCgpKSk7CisgIEFT
U0VSVF9UUlVFKGVjX2JpZ251bV90b19zY2FsYXIoZ3JvdXAoKSwgJnNjMzIsIGJuMzIuZ2V0KCkp
KTsKKyAgQVNTRVJUX1RSVUUoCisgICAgICBlY19wb2ludF9tdWxfc2NhbGFyX3B1YmxpYyhncm91
cCgpLCAmcmV0LT5yYXcsICZzYzMyLCAmcC0+cmF3LCAmc2MzMSkpOwogICBFWFBFQ1RfRVEoMCwg
RUNfUE9JTlRfY21wKGdyb3VwKCksIHJldC5nZXQoKSwgZywgbnVsbHB0cikpOwogfQogCkBAIC03
NzgsOCArODAwLDggQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEN1cnZlVG9TdHJpbmcoCiAgIHJldHVy
biBPQkpfbmlkMnNuKHBhcmFtcy5wYXJhbS5uaWQpOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NB
U0VfUCgsIEVDQ3VydmVUZXN0LCB0ZXN0aW5nOjpWYWx1ZXNJbihBbGxDdXJ2ZXMoKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICBDdXJ2ZVRvU3RyaW5nKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJ
VEVfUCgsIEVDQ3VydmVUZXN0LCB0ZXN0aW5nOjpWYWx1ZXNJbihBbGxDdXJ2ZXMoKSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgQ3VydmVUb1N0cmluZyk7CiAKIHN0YXRpYyBic3NsOjpVbmlx
dWVQdHI8RUNfR1JPVVA+IEdldEN1cnZlKEZpbGVUZXN0ICp0LCBjb25zdCBjaGFyICprZXkpIHsK
ICAgc3RkOjpzdHJpbmcgY3VydmVfbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21v
ZHVsZS9lYy9pbnRlcm5hbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL2ludGVybmFsLmgK
aW5kZXggMDUxNzVhNTZjM2YzZTU3N2YyMjhkZjE5MmM0NGI3Njk2NWY0MGE0MC4uNzkzNGMzYWQw
ZWY2ZDgyOTg5OTkxOTlkZGQ1ZDhkYmYwZDM0OWQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL2VjL2ludGVybmFsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL2lu
dGVybmFsLmgKQEAgLTE0MCwxNiArMTQwLDE1IEBAIHN0cnVjdCBlY19tZXRob2Rfc3QgewogICAv
LyBkYmwgc2V0cyB8cnwgdG8gfGF8ICsgfGF8LgogICB2b2lkICgqZGJsKShjb25zdCBFQ19HUk9V
UCAqZ3JvdXAsIEVDX1JBV19QT0lOVCAqciwgY29uc3QgRUNfUkFXX1BPSU5UICphKTsKIAotICAv
LyBDb21wdXRlcyB8ciA9IGdfc2NhbGFyKmdlbmVyYXRvciArIHBfc2NhbGFyKnB8IGlmIHxnX3Nj
YWxhcnwgYW5kIHxwX3NjYWxhcnwKLSAgLy8gYXJlIGJvdGggbm9uLW51bGwuIENvbXB1dGVzIHxy
ID0gZ19zY2FsYXIqZ2VuZXJhdG9yfCBpZiB8cF9zY2FsYXJ8IGlzIG51bGwuCi0gIC8vIENvbXB1
dGVzIHxyID0gcF9zY2FsYXIqcHwgaWYgZ19zY2FsYXIgaXMgbnVsbC4gQXQgbGVhc3Qgb25lIG9m
IHxnX3NjYWxhcnwKLSAgLy8gYW5kIHxwX3NjYWxhcnwgbXVzdCBiZSBub24tbnVsbCwgYW5kIHxw
fCBtdXN0IGJlIG5vbi1udWxsIGlmIHxwX3NjYWxhcnwgaXMKLSAgLy8gbm9uLW51bGwuCi0gIHZv
aWQgKCptdWwpKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfUkFXX1BPSU5UICpyLCBjb25zdCBF
Q19TQ0FMQVIgKmdfc2NhbGFyLAotICAgICAgICAgICAgICBjb25zdCBFQ19SQVdfUE9JTlQgKnAs
IGNvbnN0IEVDX1NDQUxBUiAqcF9zY2FsYXIpOwotICAvLyBtdWxfcHVibGljIHBlcmZvcm1zIHRo
ZSBzYW1lIGNvbXB1dGF0aW9uIGFzIG11bC4gSXQgZnVydGhlciBhc3N1bWVzIHRoYXQKLSAgLy8g
dGhlIGlucHV0cyBhcmUgcHVibGljIHNvIHRoZXJlIGlzIG5vIGNvbmNlcm4gYWJvdXQgbGVha2lu
ZyB0aGVpciB2YWx1ZXMKLSAgLy8gdGhyb3VnaCB0aW1pbmcuCisgIC8vIG11bCBzZXRzIHxyfCB0
byB8c2NhbGFyfCp8cHwuCisgIHZvaWQgKCptdWwpKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNf
UkFXX1BPSU5UICpyLCBjb25zdCBFQ19SQVdfUE9JTlQgKnAsCisgICAgICAgICAgICAgIGNvbnN0
IEVDX1NDQUxBUiAqc2NhbGFyKTsKKyAgLy8gbXVsX2Jhc2Ugc2V0cyB8cnwgdG8gfHNjYWxhcnwq
Z2VuZXJhdG9yLgorICB2b2lkICgqbXVsX2Jhc2UpKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNf
UkFXX1BPSU5UICpyLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqc2NhbGFy
KTsKKyAgLy8gbXVsX3B1YmxpYyBzZXRzIHxyfCB0byB8Z19zY2FsYXJ8KmdlbmVyYXRvciArIHxw
X3NjYWxhcnwqfHB8LiBJdCBhc3N1bWVzCisgIC8vIHRoYXQgdGhlIGlucHV0cyBhcmUgcHVibGlj
IHNvIHRoZXJlIGlzIG5vIGNvbmNlcm4gYWJvdXQgbGVha2luZyB0aGVpcgorICAvLyB2YWx1ZXMg
dGhyb3VnaCB0aW1pbmcuCiAgIHZvaWQgKCptdWxfcHVibGljKShjb25zdCBFQ19HUk9VUCAqZ3Jv
dXAsIEVDX1JBV19QT0lOVCAqciwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxB
UiAqZ19zY2FsYXIsIGNvbnN0IEVDX1JBV19QT0lOVCAqcCwKICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEVDX1NDQUxBUiAqcF9zY2FsYXIpOwpAQCAtMzI1LDEzICszMjQsMTUgQEAgdm9pZCBl
Y19zY2FsYXJfaW52X21vbnRnb21lcnkoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19TQ0FMQVIg
KnIsCiBpbnQgZWNfc2NhbGFyX2ludl9tb250Z29tZXJ5X3ZhcnRpbWUoY29uc3QgRUNfR1JPVVAg
Kmdyb3VwLCBFQ19TQ0FMQVIgKnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgRUNfU0NBTEFSICphKTsKIAotLy8gZWNfcG9pbnRfbXVsX3NjYWxhciBzZXRzIHxy
fCB0byBnZW5lcmF0b3IgKiB8Z19zY2FsYXJ8ICsgfHB8ICoKLS8vIHxwX3NjYWxhcnwuIFVubGlr
ZSBvdGhlciBmdW5jdGlvbnMgd2hpY2ggdGFrZSB8RUNfU0NBTEFSfCwgfGdfc2NhbGFyfCBhbmQK
LS8vIHxwX3NjYWxhcnwgbmVlZCBub3QgYmUgZnVsbHkgcmVkdWNlZC4gVGhleSBuZWVkIG9ubHkg
Y29udGFpbiBhcyBtYW55IGJpdHMgYXMKLS8vIHRoZSBvcmRlci4KKy8vIGVjX3BvaW50X211bF9z
Y2FsYXIgc2V0cyB8cnwgdG8gfHB8ICogfHNjYWxhcnwuIEJvdGggaW5wdXRzIGFyZSBjb25zaWRl
cmVkCisvLyBzZWNyZXQuCiBpbnQgZWNfcG9pbnRfbXVsX3NjYWxhcihjb25zdCBFQ19HUk9VUCAq
Z3JvdXAsIEVDX1JBV19QT0lOVCAqciwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVD
X1NDQUxBUiAqZ19zY2FsYXIsIGNvbnN0IEVDX1JBV19QT0lOVCAqcCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqcF9zY2FsYXIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgRUNfUkFXX1BPSU5UICpwLCBjb25zdCBFQ19TQ0FMQVIgKnNjYWxhcik7CisK
Ky8vIGVjX3BvaW50X211bF9zY2FsYXJfYmFzZSBzZXRzIHxyfCB0byBnZW5lcmF0b3IgKiB8c2Nh
bGFyfC4gfHNjYWxhcnwgaXMKKy8vIHRyZWF0ZWQgYXMgc2VjcmV0LgoraW50IGVjX3BvaW50X211
bF9zY2FsYXJfYmFzZShjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1JBV19QT0lOVCAqciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRUNfU0NBTEFSICpzY2FsYXIpOwogCiAv
LyBlY19wb2ludF9tdWxfc2NhbGFyX3B1YmxpYyBwZXJmb3JtcyB0aGUgc2FtZSBjb21wdXRhdGlv
biBhcwogLy8gZWNfcG9pbnRfbXVsX3NjYWxhci4gIEl0IGZ1cnRoZXIgYXNzdW1lcyB0aGF0IHRo
ZSBpbnB1dHMgYXJlIHB1YmxpYyBzbwpAQCAtMzcwLDggKzM3MSw5IEBAIGludCBlY19wb2ludF9n
ZXRfYWZmaW5lX2Nvb3JkaW5hdGVfYnl0ZXMoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCB1aW50OF90
ICpvdXRfeCwKIGludCBlY19maWVsZF9lbGVtZW50X3RvX3NjYWxhcihjb25zdCBFQ19HUk9VUCAq
Z3JvdXAsIEJJR05VTSAqcik7CiAKIHZvaWQgZWNfR0ZwX21vbnRfbXVsKGNvbnN0IEVDX0dST1VQ
ICpncm91cCwgRUNfUkFXX1BPSU5UICpyLAotICAgICAgICAgICAgICAgICAgICAgY29uc3QgRUNf
U0NBTEFSICpnX3NjYWxhciwgY29uc3QgRUNfUkFXX1BPSU5UICpwLAotICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgRUNfU0NBTEFSICpwX3NjYWxhcik7CisgICAgICAgICAgICAgICAgICAgICBj
b25zdCBFQ19SQVdfUE9JTlQgKnAsIGNvbnN0IEVDX1NDQUxBUiAqc2NhbGFyKTsKK3ZvaWQgZWNf
R0ZwX21vbnRfbXVsX2Jhc2UoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19SQVdfUE9JTlQgKnIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqc2NhbGFyKTsKIAog
Ly8gZWNfY29tcHV0ZV93TkFGIHdyaXRlcyB0aGUgbW9kaWZpZWQgd2lkdGgtKHcrMSkgTm9uLUFk
amFjZW50IEZvcm0gKHdOQUYpIG9mCiAvLyB8c2NhbGFyfCB0byB8b3V0fC4gfG91dHwgbXVzdCBo
YXZlIHJvb20gZm9yIHxiaXRzfCArIDEgZWxlbWVudHMsIGVhY2ggb2YKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vZmlwc21vZHVsZS9lYy9tYWtlX3AyNTYteDg2XzY0LXRhYmxlLmdvIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9maXBzbW9kdWxlL2VjL21ha2VfcDI1Ni14ODZfNjQtdGFibGUuZ28KaW5kZXggZDEwYTRm
OTE0Mzg2NTIwZjQyYTI2YjczNTcxZmMzYmNlMGY5MDc0ZC4uOGE5ZGEyYzY4MGZhZWYxMzgxMTI3
Njg2NjZkMzJjMzYyMzczODFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Vj
L21ha2VfcDI1Ni14ODZfNjQtdGFibGUuZ28KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Vj
L21ha2VfcDI1Ni14ODZfNjQtdGFibGUuZ28KQEAgLTQ5LDkgKzQ5LDcgQEAgY29uc3QgZmlsZUhl
YWRlciA9IGAvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEludGVsIEluYy4KIAogLy8gVGhpcyBmaWxl
IGlzIGdlbmVyYXRlZCBieSBtYWtlX3AyNTYteDg2XzY0LXRhYmxlLmdvLgogCi1zdGF0aWMgY29u
c3QgYWxpZ25hcyg0MDk2KSBCTl9VTE9ORwotICAgIGVjcF9uaXN0ejI1Nl9wcmVjb21wdXRlZFsz
N11bNjQgKiBzaXplb2YoUDI1Nl9QT0lOVF9BRkZJTkUpIC8KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVvZihCTl9VTE9ORyldID0geworc3RhdGljIGNvbnN0IGFsaWduYXMo
NDA5NikgUFJFQ09NUDI1Nl9ST1cgZWNwX25pc3R6MjU2X3ByZWNvbXB1dGVkWzM3XSA9IHsKIGAK
IAogZnVuYyBtYWluKCkgewpAQCAtNzUsMjMgKzczLDIzIEBAIGZ1bmMgbWFpbigpIHsKIAkJCXRv
TW9udGdvbWVyeSh5LCBwKQogCiAJCQlpZiBtdWx0aXBsZSA9PSAxIHsKLQkJCQlvcy5TdGRvdXQu
V3JpdGVTdHJpbmcoIiAgICAgICAgeyIpCisJCQkJb3MuU3Rkb3V0LldyaXRlU3RyaW5nKCIgICAg
ICAgIHt7IikKIAkJCX0gZWxzZSB7Ci0JCQkJb3MuU3Rkb3V0LldyaXRlU3RyaW5nKCIgICAgICAg
ICAiKQorCQkJCW9zLlN0ZG91dC5Xcml0ZVN0cmluZygiICAgICAgICAgeyIpCiAJCQl9CiAJCQlw
cmludE51bSh4LCB0bXApCiAKLQkJCW9zLlN0ZG91dC5Xcml0ZVN0cmluZygiLFxuICAgICAgICAg
IikKKwkJCW9zLlN0ZG91dC5Xcml0ZVN0cmluZygiLFxuICAgICAgICAgICIpCiAJCQlwcmludE51
bSh5LCB0bXApCiAKIAkJCWlmIG11bHRpcGxlID09IDY0IHsKLQkJCQlvcy5TdGRvdXQuV3JpdGVT
dHJpbmcoIn0iKQorCQkJCW9zLlN0ZG91dC5Xcml0ZVN0cmluZygifX0iKQogCQkJfSBlbHNlIHsK
LQkJCQlvcy5TdGRvdXQuV3JpdGVTdHJpbmcoIixcbiIpCisJCQkJb3MuU3Rkb3V0LldyaXRlU3Ry
aW5nKCJ9LFxuIikKIAkJCX0KIAkJfQogCi0JCWlmIHNoaWZ0ICsgNyA8IDI1NiB7CisJCWlmIHNo
aWZ0KzcgPCAyNTYgewogCQkJb3MuU3Rkb3V0LldyaXRlU3RyaW5nKCIsXG4iKQogCQl9IGVsc2Ug
ewogCQkJb3MuU3Rkb3V0LldyaXRlU3RyaW5nKCJ9O1xuIikKQEAgLTEwOCw2ICsxMDYsNyBAQCBm
dW5jIGluaXQoKSB7CiB9CiAKIGZ1bmMgcHJpbnROdW0obiwgdG1wICpiaWcuSW50KSB7CisJZm10
LlByaW50ZigieyIpCiAJZm9yIGkgOj0gMDsgaSA8IDQ7IGkrKyB7CiAJCXRtcC5BbmQobiwgbWFz
aykKIAkJbGltYiA6PSB0bXAuVWludDY0KCkKQEAgLTExOCw5ICsxMTcsMTAgQEAgZnVuYyBwcmlu
dE51bShuLCB0bXAgKmJpZy5JbnQpIHsKIAkJY2FzZSAwLCAyOgogCQkJb3MuU3Rkb3V0LldyaXRl
U3RyaW5nKCIsICIpCiAJCWNhc2UgMToKLQkJCW9zLlN0ZG91dC5Xcml0ZVN0cmluZygiLFxuICAg
ICAgICAgIikKKwkJCW9zLlN0ZG91dC5Xcml0ZVN0cmluZygiLFxuICAgICAgICAgICAiKQogCQl9
CiAJfQorCWZtdC5QcmludGYoIn0iKQogfQogCiAvLyB0b01vbnRnb21lcnkgc2V0cyBuIHRvIGJl
IG7Dl1IgbW9kIHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9tYWtlX3Ay
NTYteDg2XzY0LXRlc3RzLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL21ha2VfcDI1Ni14
ODZfNjQtdGVzdHMuZ28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU4YTk3YTUzYTA1Mzc2Zjg5OGFkYWE3ZjM3OWNj
NzUxMjEyNTk2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9t
YWtlX3AyNTYteDg2XzY0LXRlc3RzLmdvCkBAIC0wLDAgKzEsMjMyIEBACisvKiBDb3B5cmlnaHQg
KGMpIDIwMTgsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3Nl
IHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFw
cGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdB
UkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgor
ICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxU
SU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwg
QVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZP
Uk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKK3BhY2thZ2UgbWFpbgorCitpbXBvcnQgKAor
CSJjcnlwdG8vYWVzIgorCSJjcnlwdG8vY2lwaGVyIgorCSJjcnlwdG8vZWxsaXB0aWMiCisJImNy
eXB0by9yYW5kIgorCSJmbXQiCisJImlvIgorCSJtYXRoL2JpZyIKKykKKwordmFyICgKKwlwMjU2
ICAgICAgICAgICAgICAgICAgZWxsaXB0aWMuQ3VydmUKKwl6ZXJvLCBvbmUsIHAsIFIsIFJpbnYg
KmJpZy5JbnQKKwlkZXRlcm1pbmlzdGljUmFuZCAgICAgaW8uUmVhZGVyCispCisKK3R5cGUgY29v
cmRpbmF0ZXMgaW50CisKK2NvbnN0ICgKKwlhZmZpbmUgY29vcmRpbmF0ZXMgPSBpb3RhCisJamFj
b2JpYW4KKykKKworZnVuYyBpbml0KCkgeworCXAyNTYgPSBlbGxpcHRpYy5QMjU2KCkKKworCXpl
cm8gPSBuZXcoYmlnLkludCkKKwlvbmUgPSBuZXcoYmlnLkludCkuU2V0SW50NjQoMSkKKworCXAg
PSBwMjU2LlBhcmFtcygpLlAKKworCVIgPSBuZXcoYmlnLkludCkKKwlSLlNldEJpdChSLCAyNTYs
IDEpCisJUi5Nb2QoUiwgcCkKKworCVJpbnYgPSBuZXcoYmlnLkludCkuTW9kSW52ZXJzZShSLCBw
KQorCisJZGV0ZXJtaW5pc3RpY1JhbmQgPSBuZXdEZXRlcm1pbmlzdGljUmFuZCgpCit9CisKK2Z1
bmMgbW9kTXVsKHosIHgsIHkgKmJpZy5JbnQpICpiaWcuSW50IHsKKwl6Lk11bCh4LCB5KQorCXJl
dHVybiB6Lk1vZCh6LCBwKQorfQorCitmdW5jIHRvTW9udGdvbWVyeSh6LCB4ICpiaWcuSW50KSAq
YmlnLkludCB7CisJcmV0dXJuIG1vZE11bCh6LCB4LCBSKQorfQorCitmdW5jIGZyb21Nb250Z29t
ZXJ5KHosIHggKmJpZy5JbnQpICpiaWcuSW50IHsKKwlyZXR1cm4gbW9kTXVsKHosIHgsIFJpbnYp
Cit9CisKK2Z1bmMgaXNBZmZpbmVJbmZpbml0eSh4LCB5ICpiaWcuSW50KSBib29sIHsKKwkvLyBJ
bmZpbml0eSwgaW4gYWZmaW5lIGNvb3JkaW5hdGVzLCBpcyByZXByZXNlbnRlZCBhcyAoMCwgMCkg
YnkKKwkvLyBib3RoIEdvIGFuZCBwMjU2LXg4Nl82NC1hc20ucGwuCisJcmV0dXJuIHguU2lnbigp
ID09IDAgJiYgeS5TaWduKCkgPT0gMAorfQorCitmdW5jIHJhbmROb25aZXJvSW50KG1heCAqYmln
LkludCkgKmJpZy5JbnQgeworCWZvciB7CisJCXIsIGVyciA6PSByYW5kLkludChkZXRlcm1pbmlz
dGljUmFuZCwgbWF4KQorCQlpZiBlcnIgIT0gbmlsIHsKKwkJCXBhbmljKGVycikKKwkJfQorCQlp
ZiByLlNpZ24oKSAhPSAwIHsKKwkJCXJldHVybiByCisJCX0KKwl9Cit9CisKK2Z1bmMgcmFuZFBv
aW50KCkgKHgsIHkgKmJpZy5JbnQpIHsKKwlrIDo9IHJhbmROb25aZXJvSW50KHAyNTYuUGFyYW1z
KCkuTikKKwlyZXR1cm4gcDI1Ni5TY2FsYXJCYXNlTXVsdChrLkJ5dGVzKCkpCit9CisKK2Z1bmMg
dG9KYWNvYmlhbih4SW4sIHlJbiAqYmlnLkludCkgKHgsIHksIHogKmJpZy5JbnQpIHsKKwlpZiBp
c0FmZmluZUluZmluaXR5KHhJbiwgeUluKSB7CisJCS8vIFRoZSBKYWNvYmlhbiByZXByZXNlbnRh
dGlvbiBvZiBpbmZpbml0eSBoYXMgWiA9IDAuIERlcGVuZGluZworCQkvLyBvbiB0aGUgaW1wbGVt
ZW50YXRpb24sIFggYW5kIFkgbWF5IGJlIGZ1cnRoZXIgY29uc3RyYWluZWQuCisJCS8vIEdlbmVy
YWxpemluZyB0aGUgY3VydmUgZXF1YXRpb24gdG8gSmFjb2JpYW4gY29vcmRpbmF0ZXMgZm9yCisJ
CS8vIG5vbi16ZXJvIFogZ2l2ZXM6CisJCS8vCisJCS8vICAgecKyID0geMKzIC0gM3ggKyBiLCB3
aGVyZSB4ID0gWC9awrIgYW5kIHkgPSBZL1rCsworCQkvLyAgIFnCsiA9IFjCsyArIGFYWuKBtCAr
IGJa4oG2CisJCS8vCisJCS8vIFRha2luZyB0aGF0IGZvcm11bGEgYXQgWiA9IDAgZ2l2ZXMgWcKy
ID0gWMKzLiBUaGlzIGNvbnN0cmFpbnQKKwkJLy8gYWxsb3dzIHJlbW92aW5nIGEgc3BlY2lhbCBj
YXNlIGluIHRoZSBwb2ludC1vbi1jdXJ2ZSBjaGVjay4KKwkJLy8KKwkJLy8gQm9yaW5nU1NMLCBo
b3dldmVyLCBoaXN0b3JpY2FsbHkgZ2VuZXJhdGVkIGluZmluaXRpZXMgd2l0aAorCQkvLyBhcmJp
dHJhcnkgWCBhbmQgWSBhbmQgaW5jbHVkZSB0aGUgc3BlY2lhbCBjYXNlLiBXZSBhbHNvIGhhdmUK
KwkJLy8gbm90IHZlcmlmaWVkIHRoYXQgYWRkIGFuZCBkb3VibGUgcHJlc2VydmUgdGhpcworCQkv
LyBwcm9wZXJ0eS4gVGh1cywgZ2VuZXJhdGUgdGVzdCB2ZWN0b3JzIHdpdGggdW5yZWxhdGVkIFgg
YW5kIFksCisJCS8vIHRvIHRlc3QgdGhhdCBwMjU2LXg4Nl82NC1hc20ucGwgY29ycmVjdGx5IGhh
bmRsZXMKKwkJLy8gdW5jb25zdHJhaW5lZCByZXByZXNlbnRhdGlvbnMgb2YgaW5maW5pdHkuCisJ
CXggPSByYW5kTm9uWmVyb0ludChwKQorCQl5ID0gcmFuZE5vblplcm9JbnQocCkKKwkJeiA9IHpl
cm8KKwkJcmV0dXJuCisJfQorCisJeiA9IHJhbmROb25aZXJvSW50KHApCisKKwkvLyBYID0geFrC
sgorCXkgPSBtb2RNdWwobmV3KGJpZy5JbnQpLCB6LCB6KQorCXggPSBtb2RNdWwobmV3KGJpZy5J
bnQpLCB4SW4sIHkpCisKKwkvLyBZID0geVrCsworCW1vZE11bCh5LCB5LCB6KQorCW1vZE11bCh5
LCB5LCB5SW4pCisJcmV0dXJuCit9CisKK2Z1bmMgcHJpbnRNb250Z29tZXJ5KG5hbWUgc3RyaW5n
LCBhICpiaWcuSW50KSB7CisJYSA9IHRvTW9udGdvbWVyeShuZXcoYmlnLkludCksIGEpCisJZm10
LlByaW50ZigiJXMgPSAlMDY0eFxuIiwgbmFtZSwgYSkKK30KKworZnVuYyBwcmludFRlc3RDYXNl
KGF4LCBheSAqYmlnLkludCwgYUNvb3JkIGNvb3JkaW5hdGVzLCBieCwgYnkgKmJpZy5JbnQsIGJD
b29yZCBjb29yZGluYXRlcykgeworCXJ4LCByeSA6PSBwMjU2LkFkZChheCwgYXksIGJ4LCBieSkK
KworCXZhciBheiAqYmlnLkludAorCWlmIGFDb29yZCA9PSBqYWNvYmlhbiB7CisJCWF4LCBheSwg
YXogPSB0b0phY29iaWFuKGF4LCBheSkKKwl9IGVsc2UgaWYgaXNBZmZpbmVJbmZpbml0eShheCwg
YXkpIHsKKwkJYXogPSB6ZXJvCisJfSBlbHNlIHsKKwkJYXogPSBvbmUKKwl9CisKKwl2YXIgYnog
KmJpZy5JbnQKKwlpZiBiQ29vcmQgPT0gamFjb2JpYW4geworCQlieCwgYnksIGJ6ID0gdG9KYWNv
YmlhbihieCwgYnkpCisJfSBlbHNlIGlmIGlzQWZmaW5lSW5maW5pdHkoYngsIGJ5KSB7CisJCWJ6
ID0gemVybworCX0gZWxzZSB7CisJCWJ6ID0gb25lCisJfQorCisJZm10LlByaW50ZigiVGVzdCA9
IFBvaW50QWRkXG4iKQorCXByaW50TW9udGdvbWVyeSgiQS5YIiwgYXgpCisJcHJpbnRNb250Z29t
ZXJ5KCJBLlkiLCBheSkKKwlwcmludE1vbnRnb21lcnkoIkEuWiIsIGF6KQorCXByaW50TW9udGdv
bWVyeSgiQi5YIiwgYngpCisJcHJpbnRNb250Z29tZXJ5KCJCLlkiLCBieSkKKwlwcmludE1vbnRn
b21lcnkoIkIuWiIsIGJ6KQorCXByaW50TW9udGdvbWVyeSgiUmVzdWx0LlgiLCByeCkKKwlwcmlu
dE1vbnRnb21lcnkoIlJlc3VsdC5ZIiwgcnkpCisJZm10LlByaW50ZigiXG4iKQorfQorCitmdW5j
IG1haW4oKSB7CisJZm10LlByaW50ZigiIyDiiJ4gKyDiiJ4gPSDiiJ4uXG4iKQorCXByaW50VGVz
dENhc2UoemVybywgemVybywgYWZmaW5lLCB6ZXJvLCB6ZXJvLCBhZmZpbmUpCisKKwlmbXQuUHJp
bnRmKCIjIOKIniArIOKIniA9IOKIniwgd2l0aCBhbiBhbHRlcm5hdGUgcmVwcmVzZW50YXRpb24g
b2Yg4oieLlxuIikKKwlwcmludFRlc3RDYXNlKHplcm8sIHplcm8sIGphY29iaWFuLCB6ZXJvLCB6
ZXJvLCBqYWNvYmlhbikKKworCWd4LCBneSA6PSBwMjU2LlBhcmFtcygpLkd4LCBwMjU2LlBhcmFt
cygpLkd5CisJZm10LlByaW50ZigiIyBnICsg4oieID0gZy5cbiIpCisJcHJpbnRUZXN0Q2FzZShn
eCwgZ3ksIGFmZmluZSwgemVybywgemVybywgYWZmaW5lKQorCisJZm10LlByaW50ZigiIyBnICsg
4oieID0gZywgd2l0aCBhbiBhbHRlcm5hdGUgcmVwcmVzZW50YXRpb24gb2Yg4oieLlxuIikKKwlw
cmludFRlc3RDYXNlKGd4LCBneSwgYWZmaW5lLCB6ZXJvLCB6ZXJvLCBqYWNvYmlhbikKKworCWZt
dC5QcmludGYoIiMgZyArIC1nID0g4oieLlxuIikKKwltaW51c0d5IDo9IG5ldyhiaWcuSW50KS5T
dWIocCwgZ3kpCisJcHJpbnRUZXN0Q2FzZShneCwgZ3ksIGFmZmluZSwgZ3gsIG1pbnVzR3ksIGFm
ZmluZSkKKworCWZtdC5QcmludGYoIiMgVGVzdCBzb21lIHJhbmRvbSBKYWNvYmlhbiBzdW1zLlxu
IikKKwlmb3IgaSA6PSAwOyBpIDwgNDsgaSsrIHsKKwkJYXgsIGF5IDo9IHJhbmRQb2ludCgpCisJ
CWJ4LCBieSA6PSByYW5kUG9pbnQoKQorCQlwcmludFRlc3RDYXNlKGF4LCBheSwgamFjb2JpYW4s
IGJ4LCBieSwgamFjb2JpYW4pCisJfQorCisJZm10LlByaW50ZigiIyBUZXN0IHNvbWUgcmFuZG9t
IEphY29iaWFuIGRvdWJsaW5ncy5cbiIpCisJZm9yIGkgOj0gMDsgaSA8IDQ7IGkrKyB7CisJCWF4
LCBheSA6PSByYW5kUG9pbnQoKQorCQlwcmludFRlc3RDYXNlKGF4LCBheSwgamFjb2JpYW4sIGF4
LCBheSwgamFjb2JpYW4pCisJfQorCisJZm10LlByaW50ZigiIyBUZXN0IHNvbWUgcmFuZG9tIGFm
ZmluZSBzdW1zLlxuIikKKwlmb3IgaSA6PSAwOyBpIDwgNDsgaSsrIHsKKwkJYXgsIGF5IDo9IHJh
bmRQb2ludCgpCisJCWJ4LCBieSA6PSByYW5kUG9pbnQoKQorCQlwcmludFRlc3RDYXNlKGF4LCBh
eSwgYWZmaW5lLCBieCwgYnksIGFmZmluZSkKKwl9CisKKwlmbXQuUHJpbnRmKCIjIFRlc3Qgc29t
ZSByYW5kb20gYWZmaW5lIGRvdWJsaW5ncy5cbiIpCisJZm9yIGkgOj0gMDsgaSA8IDQ7IGkrKyB7
CisJCWF4LCBheSA6PSByYW5kUG9pbnQoKQorCQlwcmludFRlc3RDYXNlKGF4LCBheSwgYWZmaW5l
LCBheCwgYXksIGFmZmluZSkKKwl9Cit9CisKK3R5cGUgZGV0ZXJtaW5pc3RpY1JhbmRvbSBzdHJ1
Y3QgeworCXN0cmVhbSBjaXBoZXIuU3RyZWFtCit9CisKK2Z1bmMgbmV3RGV0ZXJtaW5pc3RpY1Jh
bmQoKSBpby5SZWFkZXIgeworCWJsb2NrLCBlcnIgOj0gYWVzLk5ld0NpcGhlcihtYWtlKFtdYnl0
ZSwgMTI4LzgpKQorCWlmIGVyciAhPSBuaWwgeworCQlwYW5pYyhlcnIpCisJfQorCXN0cmVhbSA6
PSBjaXBoZXIuTmV3Q1RSKGJsb2NrLCBtYWtlKFtdYnl0ZSwgYmxvY2suQmxvY2tTaXplKCkpKQor
CXJldHVybiAmZGV0ZXJtaW5pc3RpY1JhbmRvbXtzdHJlYW19Cit9CisKK2Z1bmMgKHIgKmRldGVy
bWluaXN0aWNSYW5kb20pIFJlYWQoYiBbXWJ5dGUpIChuIGludCwgZXJyIGVycm9yKSB7CisJZm9y
IGkgOj0gcmFuZ2UgYiB7CisJCWJbaV0gPSAwCisJfQorCXIuc3RyZWFtLlhPUktleVN0cmVhbShi
LCBiKQorCXJldHVybiBsZW4oYiksIG5pbAorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL2VjL3AyMjQtNjQuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9wMjI0LTY0LmMK
aW5kZXggZGQzMDk4ZjVlMWExYmVlOWZjNTllNmYzYjlkNDM0NTkwOTUyY2Y3YS4uZjhhZjM5YmVm
OGYyM2Y2ZTlkMTA1YThlY2M1NjRjY2NiM2RmMjdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL2VjL3AyMjQtNjQuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDIy
NC02NC5jCkBAIC03NTgsNyArNzU4LDkgQEAgc3RhdGljIHZvaWQgcDIyNF9wb2ludF9hZGQocDIy
NF9mZWxlbSB4MywgcDIyNF9mZWxlbSB5MywgcDIyNF9mZWxlbSB6MywKICAgejFfaXNfemVybyA9
IHAyMjRfZmVsZW1faXNfemVybyh6MSk7CiAgIHoyX2lzX3plcm8gPSBwMjI0X2ZlbGVtX2lzX3pl
cm8oejIpOwogICAvLyBJbiBhZmZpbmUgY29vcmRpbmF0ZXMsIChYXzEsIFlfMSkgPT0gKFhfMiwg
WV8yKQotICBpZiAoeF9lcXVhbCAmJiB5X2VxdWFsICYmICF6MV9pc196ZXJvICYmICF6Ml9pc196
ZXJvKSB7CisgIHAyMjRfbGltYiBpc19ub250cml2aWFsX2RvdWJsZSA9CisgICAgICB4X2VxdWFs
ICYgeV9lcXVhbCAmICgxIC0gejFfaXNfemVybykgJiAoMSAtIHoyX2lzX3plcm8pOworICBpZiAo
aXNfbm9udHJpdmlhbF9kb3VibGUpIHsKICAgICBwMjI0X3BvaW50X2RvdWJsZSh4MywgeTMsIHoz
LCB4MSwgeTEsIHoxKTsKICAgICByZXR1cm47CiAgIH0KQEAgLTg3MSw5NSArODczLDYgQEAgc3Rh
dGljIGNoYXIgcDIyNF9nZXRfYml0KGNvbnN0IHAyMjRfZmVsZW1fYnl0ZWFycmF5IGluLCBzaXpl
X3QgaSkgewogICByZXR1cm4gKGluW2kgPj4gM10gPj4gKGkgJiA3KSkgJiAxOwogfQogCi0vLyBJ
bnRlcmxlYXZlZCBwb2ludCBtdWx0aXBsaWNhdGlvbiB1c2luZyBwcmVjb21wdXRlZCBwb2ludCBt
dWx0aXBsZXM6Ci0vLyBUaGUgc21hbGwgcG9pbnQgbXVsdGlwbGVzIDAqUCwgMSpQLCAuLi4sIDE2
KlAgYXJlIGluIHBfcHJlX2NvbXAsIHRoZSBzY2FsYXJzCi0vLyBpbiBwX3NjYWxhciwgaWYgbm9u
LU5VTEwuIElmIGdfc2NhbGFyIGlzIG5vbi1OVUxMLCB3ZSBhbHNvIGFkZCB0aGlzIG11bHRpcGxl
Ci0vLyBvZiB0aGUgZ2VuZXJhdG9yLCB1c2luZyBjZXJ0YWluIChsYXJnZSkgcHJlY29tcHV0ZWQg
bXVsdGlwbGVzIGluCi0vLyBnX3AyMjRfcHJlX2NvbXAuIE91dHB1dCBwb2ludCAoWCwgWSwgWikg
aXMgc3RvcmVkIGluIHhfb3V0LCB5X291dCwgel9vdXQKLXN0YXRpYyB2b2lkIHAyMjRfYmF0Y2hf
bXVsKHAyMjRfZmVsZW0geF9vdXQsIHAyMjRfZmVsZW0geV9vdXQsIHAyMjRfZmVsZW0gel9vdXQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwX3NjYWxhciwgY29u
c3QgdWludDhfdCAqZ19zY2FsYXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBw
MjI0X2ZlbGVtIHBfcHJlX2NvbXBbMTddWzNdKSB7Ci0gIHAyMjRfZmVsZW0gbnFbM10sIHRtcFs0
XTsKLSAgdWludDY0X3QgYml0czsKLSAgdWludDhfdCBzaWduLCBkaWdpdDsKLQotICAvLyBzZXQg
bnEgdG8gdGhlIHBvaW50IGF0IGluZmluaXR5Ci0gIE9QRU5TU0xfbWVtc2V0KG5xLCAwLCAzICog
c2l6ZW9mKHAyMjRfZmVsZW0pKTsKLQotICAvLyBMb29wIG92ZXIgYm90aCBzY2FsYXJzIG1zYi10
by1sc2IsIGludGVybGVhdmluZyBhZGRpdGlvbnMgb2YgbXVsdGlwbGVzIG9mCi0gIC8vIHRoZSBn
ZW5lcmF0b3IgKHR3byBpbiBlYWNoIG9mIHRoZSBsYXN0IDI4IHJvdW5kcykgYW5kIGFkZGl0aW9u
cyBvZiBwIChldmVyeQotICAvLyA1dGggcm91bmQpLgotICBpbnQgc2tpcCA9IDE7ICAvLyBzYXZl
IHR3byBwb2ludCBvcGVyYXRpb25zIGluIHRoZSBmaXJzdCByb3VuZAotICBzaXplX3QgaSA9IHBf
c2NhbGFyICE9IE5VTEwgPyAyMjAgOiAyNzsKLSAgZm9yICg7OykgewotICAgIC8vIGRvdWJsZQot
ICAgIGlmICghc2tpcCkgewotICAgICAgcDIyNF9wb2ludF9kb3VibGUobnFbMF0sIG5xWzFdLCBu
cVsyXSwgbnFbMF0sIG5xWzFdLCBucVsyXSk7Ci0gICAgfQotCi0gICAgLy8gYWRkIG11bHRpcGxl
cyBvZiB0aGUgZ2VuZXJhdG9yCi0gICAgaWYgKGdfc2NhbGFyICE9IE5VTEwgJiYgaSA8PSAyNykg
ewotICAgICAgLy8gZmlyc3QsIGxvb2sgMjggYml0cyB1cHdhcmRzCi0gICAgICBiaXRzID0gcDIy
NF9nZXRfYml0KGdfc2NhbGFyLCBpICsgMTk2KSA8PCAzOwotICAgICAgYml0cyB8PSBwMjI0X2dl
dF9iaXQoZ19zY2FsYXIsIGkgKyAxNDApIDw8IDI7Ci0gICAgICBiaXRzIHw9IHAyMjRfZ2V0X2Jp
dChnX3NjYWxhciwgaSArIDg0KSA8PCAxOwotICAgICAgYml0cyB8PSBwMjI0X2dldF9iaXQoZ19z
Y2FsYXIsIGkgKyAyOCk7Ci0gICAgICAvLyBzZWxlY3QgdGhlIHBvaW50IHRvIGFkZCwgaW4gY29u
c3RhbnQgdGltZQotICAgICAgcDIyNF9zZWxlY3RfcG9pbnQoYml0cywgMTYsIGdfcDIyNF9wcmVf
Y29tcFsxXSwgdG1wKTsKLQotICAgICAgaWYgKCFza2lwKSB7Ci0gICAgICAgIHAyMjRfcG9pbnRf
YWRkKG5xWzBdLCBucVsxXSwgbnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0sIDEgLyogbWl4ZWQg
Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgIHRtcFswXSwgdG1wWzFdLCB0bXBbMl0pOwotICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgT1BFTlNTTF9tZW1jcHkobnEsIHRtcCwgMyAqIHNpemVvZihw
MjI0X2ZlbGVtKSk7Ci0gICAgICAgIHNraXAgPSAwOwotICAgICAgfQotCi0gICAgICAvLyBzZWNv
bmQsIGxvb2sgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24KLSAgICAgIGJpdHMgPSBwMjI0X2dldF9i
aXQoZ19zY2FsYXIsIGkgKyAxNjgpIDw8IDM7Ci0gICAgICBiaXRzIHw9IHAyMjRfZ2V0X2JpdChn
X3NjYWxhciwgaSArIDExMikgPDwgMjsKLSAgICAgIGJpdHMgfD0gcDIyNF9nZXRfYml0KGdfc2Nh
bGFyLCBpICsgNTYpIDw8IDE7Ci0gICAgICBiaXRzIHw9IHAyMjRfZ2V0X2JpdChnX3NjYWxhciwg
aSk7Ci0gICAgICAvLyBzZWxlY3QgdGhlIHBvaW50IHRvIGFkZCwgaW4gY29uc3RhbnQgdGltZQot
ICAgICAgcDIyNF9zZWxlY3RfcG9pbnQoYml0cywgMTYsIGdfcDIyNF9wcmVfY29tcFswXSwgdG1w
KTsKLSAgICAgIHAyMjRfcG9pbnRfYWRkKG5xWzBdLCBucVsxXSwgbnFbMl0sIG5xWzBdLCBucVsx
XSwgbnFbMl0sIDEgLyogbWl4ZWQgKi8sCi0gICAgICAgICAgICAgICAgICAgICB0bXBbMF0sIHRt
cFsxXSwgdG1wWzJdKTsKLSAgICB9Ci0KLSAgICAvLyBkbyBvdGhlciBhZGRpdGlvbnMgZXZlcnkg
NSBkb3VibGluZ3MKLSAgICBpZiAocF9zY2FsYXIgIT0gTlVMTCAmJiBpICUgNSA9PSAwKSB7Ci0g
ICAgICBiaXRzID0gcDIyNF9nZXRfYml0KHBfc2NhbGFyLCBpICsgNCkgPDwgNTsKLSAgICAgIGJp
dHMgfD0gcDIyNF9nZXRfYml0KHBfc2NhbGFyLCBpICsgMykgPDwgNDsKLSAgICAgIGJpdHMgfD0g
cDIyNF9nZXRfYml0KHBfc2NhbGFyLCBpICsgMikgPDwgMzsKLSAgICAgIGJpdHMgfD0gcDIyNF9n
ZXRfYml0KHBfc2NhbGFyLCBpICsgMSkgPDwgMjsKLSAgICAgIGJpdHMgfD0gcDIyNF9nZXRfYml0
KHBfc2NhbGFyLCBpKSA8PCAxOwotICAgICAgYml0cyB8PSBwMjI0X2dldF9iaXQocF9zY2FsYXIs
IGkgLSAxKTsKLSAgICAgIGVjX0dGcF9uaXN0cF9yZWNvZGVfc2NhbGFyX2JpdHMoJnNpZ24sICZk
aWdpdCwgYml0cyk7Ci0KLSAgICAgIC8vIHNlbGVjdCB0aGUgcG9pbnQgdG8gYWRkIG9yIHN1YnRy
YWN0Ci0gICAgICBwMjI0X3NlbGVjdF9wb2ludChkaWdpdCwgMTcsIHBfcHJlX2NvbXAsIHRtcCk7
Ci0gICAgICBwMjI0X2ZlbGVtX25lZyh0bXBbM10sIHRtcFsxXSk7ICAvLyAoWCwgLVksIFopIGlz
IHRoZSBuZWdhdGl2ZSBwb2ludAotICAgICAgcDIyNF9jb3B5X2NvbmRpdGlvbmFsKHRtcFsxXSwg
dG1wWzNdLCBzaWduKTsKLQotICAgICAgaWYgKCFza2lwKSB7Ci0gICAgICAgIHAyMjRfcG9pbnRf
YWRkKG5xWzBdLCBucVsxXSwgbnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0sIDAgLyogbWl4ZWQg
Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgIHRtcFswXSwgdG1wWzFdLCB0bXBbMl0pOwotICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgT1BFTlNTTF9tZW1jcHkobnEsIHRtcCwgMyAqIHNpemVvZihw
MjI0X2ZlbGVtKSk7Ci0gICAgICAgIHNraXAgPSAwOwotICAgICAgfQotICAgIH0KLQotICAgIGlm
IChpID09IDApIHsKLSAgICAgIGJyZWFrOwotICAgIH0KLSAgICAtLWk7Ci0gIH0KLSAgcDIyNF9m
ZWxlbV9hc3NpZ24oeF9vdXQsIG5xWzBdKTsKLSAgcDIyNF9mZWxlbV9hc3NpZ24oeV9vdXQsIG5x
WzFdKTsKLSAgcDIyNF9mZWxlbV9hc3NpZ24oel9vdXQsIG5xWzJdKTsKLX0KLQogLy8gVGFrZXMg
dGhlIEphY29iaWFuIGNvb3JkaW5hdGVzIChYLCBZLCBaKSBvZiBhIHBvaW50IGFuZCByZXR1cm5z
CiAvLyAoWCcsIFknKSA9IChYL1peMiwgWS9aXjMpCiBzdGF0aWMgaW50IGVjX0dGcF9uaXN0cDIy
NF9wb2ludF9nZXRfYWZmaW5lX2Nvb3JkaW5hdGVzKApAQCAtMTAyNyw0OSArOTQwLDE5NyBAQCBz
dGF0aWMgdm9pZCBlY19HRnBfbmlzdHAyMjRfZGJsKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNf
UkFXX1BPSU5UICpyLAogICBwMjI0X2ZlbGVtX3RvX2dlbmVyaWMoJnItPlosIHopOwogfQogCi1z
dGF0aWMgdm9pZCBlY19HRnBfbmlzdHAyMjRfcG9pbnRzX211bChjb25zdCBFQ19HUk9VUCAqZ3Jv
dXAsIEVDX1JBV19QT0lOVCAqciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEVDX1NDQUxBUiAqZ19zY2FsYXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBFQ19SQVdfUE9JTlQgKnAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19TQ0FMQVIgKnBfc2NhbGFyKSB7CitzdGF0aWMg
dm9pZCBlY19HRnBfbmlzdHAyMjRfbWFrZV9wcmVjb21wKHAyMjRfZmVsZW0gb3V0WzE3XVszXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRUNfUkFXX1BP
SU5UICpwKSB7CisgIE9QRU5TU0xfbWVtc2V0KG91dFswXSwgMCwgc2l6ZW9mKHAyMjRfZmVsZW0p
ICogMyk7CisKKyAgcDIyNF9nZW5lcmljX3RvX2ZlbGVtKG91dFsxXVswXSwgJnAtPlgpOworICBw
MjI0X2dlbmVyaWNfdG9fZmVsZW0ob3V0WzFdWzFdLCAmcC0+WSk7CisgIHAyMjRfZ2VuZXJpY190
b19mZWxlbShvdXRbMV1bMl0sICZwLT5aKTsKKworICBmb3IgKHNpemVfdCBqID0gMjsgaiA8PSAx
NjsgKytqKSB7CisgICAgaWYgKGogJiAxKSB7CisgICAgICBwMjI0X3BvaW50X2FkZChvdXRbal1b
MF0sIG91dFtqXVsxXSwgb3V0W2pdWzJdLCBvdXRbMV1bMF0sIG91dFsxXVsxXSwKKyAgICAgICAg
ICAgICAgICAgICAgIG91dFsxXVsyXSwgMCwgb3V0W2ogLSAxXVswXSwgb3V0W2ogLSAxXVsxXSwg
b3V0W2ogLSAxXVsyXSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHAyMjRfcG9pbnRfZG91YmxlKG91
dFtqXVswXSwgb3V0W2pdWzFdLCBvdXRbal1bMl0sIG91dFtqIC8gMl1bMF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRbaiAvIDJdWzFdLCBvdXRbaiAvIDJdWzJdKTsKKyAgICB9CisgIH0K
K30KKworc3RhdGljIHZvaWQgZWNfR0ZwX25pc3RwMjI0X3BvaW50X211bChjb25zdCBFQ19HUk9V
UCAqZ3JvdXAsIEVDX1JBV19QT0lOVCAqciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgRUNfUkFXX1BPSU5UICpwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBFQ19TQ0FMQVIgKnNjYWxhcikgewogICBwMjI0X2ZlbGVtIHBf
cHJlX2NvbXBbMTddWzNdOwotICBwMjI0X2ZlbGVtIHhfb3V0LCB5X291dCwgel9vdXQ7Ci0KLSAg
aWYgKHAgIT0gTlVMTCAmJiBwX3NjYWxhciAhPSBOVUxMKSB7Ci0gICAgLy8gV2UgdHJlYXQgTlVM
TCBzY2FsYXJzIGFzIDAsIGFuZCBOVUxMIHBvaW50cyBhcyBwb2ludHMgYXQgaW5maW5pdHksIGku
ZS4sCi0gICAgLy8gdGhleSBjb250cmlidXRlIG5vdGhpbmcgdG8gdGhlIGxpbmVhciBjb21iaW5h
dGlvbi4KLSAgICBPUEVOU1NMX21lbXNldCgmcF9wcmVfY29tcCwgMCwgc2l6ZW9mKHBfcHJlX2Nv
bXApKTsKLSAgICAvLyBwcmVjb21wdXRlIG11bHRpcGxlcwotICAgIHAyMjRfZ2VuZXJpY190b19m
ZWxlbSh4X291dCwgJnAtPlgpOwotICAgIHAyMjRfZ2VuZXJpY190b19mZWxlbSh5X291dCwgJnAt
PlkpOwotICAgIHAyMjRfZ2VuZXJpY190b19mZWxlbSh6X291dCwgJnAtPlopOwotCi0gICAgcDIy
NF9mZWxlbV9hc3NpZ24ocF9wcmVfY29tcFsxXVswXSwgeF9vdXQpOwotICAgIHAyMjRfZmVsZW1f
YXNzaWduKHBfcHJlX2NvbXBbMV1bMV0sIHlfb3V0KTsKLSAgICBwMjI0X2ZlbGVtX2Fzc2lnbihw
X3ByZV9jb21wWzFdWzJdLCB6X291dCk7Ci0KLSAgICBmb3IgKHNpemVfdCBqID0gMjsgaiA8PSAx
NjsgKytqKSB7Ci0gICAgICBpZiAoaiAmIDEpIHsKLSAgICAgICAgcDIyNF9wb2ludF9hZGQocF9w
cmVfY29tcFtqXVswXSwgcF9wcmVfY29tcFtqXVsxXSwgcF9wcmVfY29tcFtqXVsyXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgcF9wcmVfY29tcFsxXVswXSwgcF9wcmVfY29tcFsxXVsxXSwgcF9w
cmVfY29tcFsxXVsyXSwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgcF9wcmVfY29tcFtqIC0g
MV1bMF0sIHBfcHJlX2NvbXBbaiAtIDFdWzFdLAotICAgICAgICAgICAgICAgICAgICAgICBwX3By
ZV9jb21wW2ogLSAxXVsyXSk7CisgIGVjX0dGcF9uaXN0cDIyNF9tYWtlX3ByZWNvbXAocF9wcmVf
Y29tcCwgcCk7CisKKyAgLy8gU2V0IG5xIHRvIHRoZSBwb2ludCBhdCBpbmZpbml0eS4KKyAgcDIy
NF9mZWxlbSBucVszXSwgdG1wWzRdOworICBPUEVOU1NMX21lbXNldChucSwgMCwgMyAqIHNpemVv
ZihwMjI0X2ZlbGVtKSk7CisKKyAgaW50IHNraXAgPSAxOyAgLy8gU2F2ZSB0d28gcG9pbnQgb3Bl
cmF0aW9ucyBpbiB0aGUgZmlyc3Qgcm91bmQuCisgIGZvciAoc2l6ZV90IGkgPSAyMjA7IGkgPCAy
MjE7IGktLSkgeworICAgIGlmICghc2tpcCkgeworICAgICAgcDIyNF9wb2ludF9kb3VibGUobnFb
MF0sIG5xWzFdLCBucVsyXSwgbnFbMF0sIG5xWzFdLCBucVsyXSk7CisgICAgfQorCisgICAgLy8g
QWRkIGV2ZXJ5IDUgZG91YmxpbmdzLgorICAgIGlmIChpICUgNSA9PSAwKSB7CisgICAgICB1aW50
NjRfdCBiaXRzID0gcDIyNF9nZXRfYml0KHNjYWxhci0+Ynl0ZXMsIGkgKyA0KSA8PCA1OworICAg
ICAgYml0cyB8PSBwMjI0X2dldF9iaXQoc2NhbGFyLT5ieXRlcywgaSArIDMpIDw8IDQ7CisgICAg
ICBiaXRzIHw9IHAyMjRfZ2V0X2JpdChzY2FsYXItPmJ5dGVzLCBpICsgMikgPDwgMzsKKyAgICAg
IGJpdHMgfD0gcDIyNF9nZXRfYml0KHNjYWxhci0+Ynl0ZXMsIGkgKyAxKSA8PCAyOworICAgICAg
Yml0cyB8PSBwMjI0X2dldF9iaXQoc2NhbGFyLT5ieXRlcywgaSkgPDwgMTsKKyAgICAgIGJpdHMg
fD0gcDIyNF9nZXRfYml0KHNjYWxhci0+Ynl0ZXMsIGkgLSAxKTsKKyAgICAgIHVpbnQ4X3Qgc2ln
biwgZGlnaXQ7CisgICAgICBlY19HRnBfbmlzdHBfcmVjb2RlX3NjYWxhcl9iaXRzKCZzaWduLCAm
ZGlnaXQsIGJpdHMpOworCisgICAgICAvLyBTZWxlY3QgdGhlIHBvaW50IHRvIGFkZCBvciBzdWJ0
cmFjdC4KKyAgICAgIHAyMjRfc2VsZWN0X3BvaW50KGRpZ2l0LCAxNywgKGNvbnN0IHAyMjRfZmVs
ZW0oKilbM10pcF9wcmVfY29tcCwgdG1wKTsKKyAgICAgIHAyMjRfZmVsZW1fbmVnKHRtcFszXSwg
dG1wWzFdKTsgIC8vIChYLCAtWSwgWikgaXMgdGhlIG5lZ2F0aXZlIHBvaW50CisgICAgICBwMjI0
X2NvcHlfY29uZGl0aW9uYWwodG1wWzFdLCB0bXBbM10sIHNpZ24pOworCisgICAgICBpZiAoIXNr
aXApIHsKKyAgICAgICAgcDIyNF9wb2ludF9hZGQobnFbMF0sIG5xWzFdLCBucVsyXSwgbnFbMF0s
IG5xWzFdLCBucVsyXSwgMCAvKiBtaXhlZCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgdG1w
WzBdLCB0bXBbMV0sIHRtcFsyXSk7CiAgICAgICB9IGVsc2UgewotICAgICAgICBwMjI0X3BvaW50
X2RvdWJsZShwX3ByZV9jb21wW2pdWzBdLCBwX3ByZV9jb21wW2pdWzFdLCBwX3ByZV9jb21wW2pd
WzJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICBwX3ByZV9jb21wW2ogLyAyXVswXSwgcF9w
cmVfY29tcFtqIC8gMl1bMV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHBfcHJlX2NvbXBb
aiAvIDJdWzJdKTsKKyAgICAgICAgT1BFTlNTTF9tZW1jcHkobnEsIHRtcCwgMyAqIHNpemVvZihw
MjI0X2ZlbGVtKSk7CisgICAgICAgIHNraXAgPSAwOwogICAgICAgfQogICAgIH0KICAgfQogCi0g
IHAyMjRfYmF0Y2hfbXVsKHhfb3V0LCB5X291dCwgel9vdXQsCi0gICAgICAgICAgICAgICAgIChw
ICE9IE5VTEwgJiYgcF9zY2FsYXIgIT0gTlVMTCkgPyBwX3NjYWxhci0+Ynl0ZXMgOiBOVUxMLAot
ICAgICAgICAgICAgICAgICBnX3NjYWxhciAhPSBOVUxMID8gZ19zY2FsYXItPmJ5dGVzIDogTlVM
TCwKLSAgICAgICAgICAgICAgICAgKGNvbnN0IHAyMjRfZmVsZW0oKilbM10pcF9wcmVfY29tcCk7
CisgIC8vIFJlZHVjZSB0aGUgb3V0cHV0IHRvIGl0cyB1bmlxdWUgbWluaW1hbCByZXByZXNlbnRh
dGlvbi4KKyAgcDIyNF9mZWxlbV90b19nZW5lcmljKCZyLT5YLCBucVswXSk7CisgIHAyMjRfZmVs
ZW1fdG9fZ2VuZXJpYygmci0+WSwgbnFbMV0pOworICBwMjI0X2ZlbGVtX3RvX2dlbmVyaWMoJnIt
PlosIG5xWzJdKTsKK30KKworc3RhdGljIHZvaWQgZWNfR0ZwX25pc3RwMjI0X3BvaW50X211bF9i
YXNlKGNvbnN0IEVDX0dST1VQICpncm91cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFQ19SQVdfUE9JTlQgKnIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgRUNfU0NBTEFSICpzY2FsYXIpIHsKKyAgLy8gU2V0IG5x
IHRvIHRoZSBwb2ludCBhdCBpbmZpbml0eS4KKyAgcDIyNF9mZWxlbSBucVszXSwgdG1wWzNdOwor
ICBPUEVOU1NMX21lbXNldChucSwgMCwgMyAqIHNpemVvZihwMjI0X2ZlbGVtKSk7CisKKyAgaW50
IHNraXAgPSAxOyAgLy8gU2F2ZSB0d28gcG9pbnQgb3BlcmF0aW9ucyBpbiB0aGUgZmlyc3Qgcm91
bmQuCisgIGZvciAoc2l6ZV90IGkgPSAyNzsgaSA8IDI4OyBpLS0pIHsKKyAgICAvLyBkb3VibGUK
KyAgICBpZiAoIXNraXApIHsKKyAgICAgIHAyMjRfcG9pbnRfZG91YmxlKG5xWzBdLCBucVsxXSwg
bnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0pOworICAgIH0KKworICAgIC8vIEZpcnN0LCBsb29r
IDI4IGJpdHMgdXB3YXJkcy4KKyAgICB1aW50NjRfdCBiaXRzID0gcDIyNF9nZXRfYml0KHNjYWxh
ci0+Ynl0ZXMsIGkgKyAxOTYpIDw8IDM7CisgICAgYml0cyB8PSBwMjI0X2dldF9iaXQoc2NhbGFy
LT5ieXRlcywgaSArIDE0MCkgPDwgMjsKKyAgICBiaXRzIHw9IHAyMjRfZ2V0X2JpdChzY2FsYXIt
PmJ5dGVzLCBpICsgODQpIDw8IDE7CisgICAgYml0cyB8PSBwMjI0X2dldF9iaXQoc2NhbGFyLT5i
eXRlcywgaSArIDI4KTsKKyAgICAvLyBTZWxlY3QgdGhlIHBvaW50IHRvIGFkZCwgaW4gY29uc3Rh
bnQgdGltZS4KKyAgICBwMjI0X3NlbGVjdF9wb2ludChiaXRzLCAxNiwgZ19wMjI0X3ByZV9jb21w
WzFdLCB0bXApOworCisgICAgaWYgKCFza2lwKSB7CisgICAgICBwMjI0X3BvaW50X2FkZChucVsw
XSwgbnFbMV0sIG5xWzJdLCBucVswXSwgbnFbMV0sIG5xWzJdLCAxIC8qIG1peGVkICovLAorICAg
ICAgICAgICAgICAgICAgICAgdG1wWzBdLCB0bXBbMV0sIHRtcFsyXSk7CisgICAgfSBlbHNlIHsK
KyAgICAgIE9QRU5TU0xfbWVtY3B5KG5xLCB0bXAsIDMgKiBzaXplb2YocDIyNF9mZWxlbSkpOwor
ICAgICAgc2tpcCA9IDA7CisgICAgfQorCisgICAgLy8gU2Vjb25kLCBsb29rIGF0IHRoZSBjdXJy
ZW50IHBvc2l0aW9uLworICAgIGJpdHMgPSBwMjI0X2dldF9iaXQoc2NhbGFyLT5ieXRlcywgaSAr
IDE2OCkgPDwgMzsKKyAgICBiaXRzIHw9IHAyMjRfZ2V0X2JpdChzY2FsYXItPmJ5dGVzLCBpICsg
MTEyKSA8PCAyOworICAgIGJpdHMgfD0gcDIyNF9nZXRfYml0KHNjYWxhci0+Ynl0ZXMsIGkgKyA1
NikgPDwgMTsKKyAgICBiaXRzIHw9IHAyMjRfZ2V0X2JpdChzY2FsYXItPmJ5dGVzLCBpKTsKKyAg
ICAvLyBTZWxlY3QgdGhlIHBvaW50IHRvIGFkZCwgaW4gY29uc3RhbnQgdGltZS4KKyAgICBwMjI0
X3NlbGVjdF9wb2ludChiaXRzLCAxNiwgZ19wMjI0X3ByZV9jb21wWzBdLCB0bXApOworICAgIHAy
MjRfcG9pbnRfYWRkKG5xWzBdLCBucVsxXSwgbnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0sIDEg
LyogbWl4ZWQgKi8sCisgICAgICAgICAgICAgICAgICAgdG1wWzBdLCB0bXBbMV0sIHRtcFsyXSk7
CisgIH0KKworICAvLyBSZWR1Y2UgdGhlIG91dHB1dCB0byBpdHMgdW5pcXVlIG1pbmltYWwgcmVw
cmVzZW50YXRpb24uCisgIHAyMjRfZmVsZW1fdG9fZ2VuZXJpYygmci0+WCwgbnFbMF0pOworICBw
MjI0X2ZlbGVtX3RvX2dlbmVyaWMoJnItPlksIG5xWzFdKTsKKyAgcDIyNF9mZWxlbV90b19nZW5l
cmljKCZyLT5aLCBucVsyXSk7Cit9CisKK3N0YXRpYyB2b2lkIGVjX0dGcF9uaXN0cDIyNF9wb2lu
dF9tdWxfcHVibGljKGNvbnN0IEVDX0dST1VQICpncm91cCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVDX1JBV19QT0lOVCAqciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqZ19zY2FsYXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19S
QVdfUE9JTlQgKnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBFQ19TQ0FMQVIgKnBfc2NhbGFyKSB7CisgIC8vIFRPRE8oZGF2aWRiZW4pOiBJZiBQ
LTIyNCBFQ0RTQSB2ZXJpZnkgcGVyZm9ybWFuY2UgZXZlciBtYXR0ZXJzLCB1c2luZworICAvLyB8
ZWNfY29tcHV0ZV93TkFGfCBmb3IgfHBfc2NhbGFyfCB3b3VsZCBsaWtlbHkgYmUgYW4gZWFzeSBp
bXByb3ZlbWVudC4KKyAgcDIyNF9mZWxlbSBwX3ByZV9jb21wWzE3XVszXTsKKyAgZWNfR0ZwX25p
c3RwMjI0X21ha2VfcHJlY29tcChwX3ByZV9jb21wLCBwKTsKKworICAvLyBTZXQgbnEgdG8gdGhl
IHBvaW50IGF0IGluZmluaXR5LgorICBwMjI0X2ZlbGVtIG5xWzNdLCB0bXBbM107CisgIE9QRU5T
U0xfbWVtc2V0KG5xLCAwLCAzICogc2l6ZW9mKHAyMjRfZmVsZW0pKTsKKworICAvLyBMb29wIG92
ZXIgYm90aCBzY2FsYXJzIG1zYi10by1sc2IsIGludGVybGVhdmluZyBhZGRpdGlvbnMgb2YgbXVs
dGlwbGVzIG9mCisgIC8vIHRoZSBnZW5lcmF0b3IgKHR3byBpbiBlYWNoIG9mIHRoZSBsYXN0IDI4
IHJvdW5kcykgYW5kIGFkZGl0aW9ucyBvZiBwIChldmVyeQorICAvLyA1dGggcm91bmQpLgorICBp
bnQgc2tpcCA9IDE7ICAvLyBTYXZlIHR3byBwb2ludCBvcGVyYXRpb25zIGluIHRoZSBmaXJzdCBy
b3VuZC4KKyAgZm9yIChzaXplX3QgaSA9IDIyMDsgaSA8IDIyMTsgaS0tKSB7CisgICAgaWYgKCFz
a2lwKSB7CisgICAgICBwMjI0X3BvaW50X2RvdWJsZShucVswXSwgbnFbMV0sIG5xWzJdLCBucVsw
XSwgbnFbMV0sIG5xWzJdKTsKKyAgICB9CisKKyAgICAvLyBBZGQgbXVsdGlwbGVzIG9mIHRoZSBn
ZW5lcmF0b3IuCisgICAgaWYgKGkgPD0gMjcpIHsKKyAgICAgIC8vIEZpcnN0LCBsb29rIDI4IGJp
dHMgdXB3YXJkcy4KKyAgICAgIHVpbnQ2NF90IGJpdHMgPSBwMjI0X2dldF9iaXQoZ19zY2FsYXIt
PmJ5dGVzLCBpICsgMTk2KSA8PCAzOworICAgICAgYml0cyB8PSBwMjI0X2dldF9iaXQoZ19zY2Fs
YXItPmJ5dGVzLCBpICsgMTQwKSA8PCAyOworICAgICAgYml0cyB8PSBwMjI0X2dldF9iaXQoZ19z
Y2FsYXItPmJ5dGVzLCBpICsgODQpIDw8IDE7CisgICAgICBiaXRzIHw9IHAyMjRfZ2V0X2JpdChn
X3NjYWxhci0+Ynl0ZXMsIGkgKyAyOCk7CisKKyAgICAgIHAyMjRfcG9pbnRfYWRkKG5xWzBdLCBu
cVsxXSwgbnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0sIDEgLyogbWl4ZWQgKi8sCisgICAgICAg
ICAgICAgICAgICAgICBnX3AyMjRfcHJlX2NvbXBbMV1bYml0c11bMF0sIGdfcDIyNF9wcmVfY29t
cFsxXVtiaXRzXVsxXSwKKyAgICAgICAgICAgICAgICAgICAgIGdfcDIyNF9wcmVfY29tcFsxXVti
aXRzXVsyXSk7CisgICAgICBhc3NlcnQoIXNraXApOworCisgICAgICAvLyBTZWNvbmQsIGxvb2sg
YXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICBiaXRzID0gcDIyNF9nZXRfYml0KGdfc2Nh
bGFyLT5ieXRlcywgaSArIDE2OCkgPDwgMzsKKyAgICAgIGJpdHMgfD0gcDIyNF9nZXRfYml0KGdf
c2NhbGFyLT5ieXRlcywgaSArIDExMikgPDwgMjsKKyAgICAgIGJpdHMgfD0gcDIyNF9nZXRfYml0
KGdfc2NhbGFyLT5ieXRlcywgaSArIDU2KSA8PCAxOworICAgICAgYml0cyB8PSBwMjI0X2dldF9i
aXQoZ19zY2FsYXItPmJ5dGVzLCBpKTsKKyAgICAgIHAyMjRfcG9pbnRfYWRkKG5xWzBdLCBucVsx
XSwgbnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0sIDEgLyogbWl4ZWQgKi8sCisgICAgICAgICAg
ICAgICAgICAgICBnX3AyMjRfcHJlX2NvbXBbMF1bYml0c11bMF0sIGdfcDIyNF9wcmVfY29tcFsw
XVtiaXRzXVsxXSwKKyAgICAgICAgICAgICAgICAgICAgIGdfcDIyNF9wcmVfY29tcFswXVtiaXRz
XVsyXSk7CisgICAgfQorCisgICAgLy8gSW5jb3Jwb3JhdGUgfHBfc2NhbGFyfCBldmVyeSA1IGRv
dWJsaW5ncy4KKyAgICBpZiAoaSAlIDUgPT0gMCkgeworICAgICAgdWludDY0X3QgYml0cyA9IHAy
MjRfZ2V0X2JpdChwX3NjYWxhci0+Ynl0ZXMsIGkgKyA0KSA8PCA1OworICAgICAgYml0cyB8PSBw
MjI0X2dldF9iaXQocF9zY2FsYXItPmJ5dGVzLCBpICsgMykgPDwgNDsKKyAgICAgIGJpdHMgfD0g
cDIyNF9nZXRfYml0KHBfc2NhbGFyLT5ieXRlcywgaSArIDIpIDw8IDM7CisgICAgICBiaXRzIHw9
IHAyMjRfZ2V0X2JpdChwX3NjYWxhci0+Ynl0ZXMsIGkgKyAxKSA8PCAyOworICAgICAgYml0cyB8
PSBwMjI0X2dldF9iaXQocF9zY2FsYXItPmJ5dGVzLCBpKSA8PCAxOworICAgICAgYml0cyB8PSBw
MjI0X2dldF9iaXQocF9zY2FsYXItPmJ5dGVzLCBpIC0gMSk7CisgICAgICB1aW50OF90IHNpZ24s
IGRpZ2l0OworICAgICAgZWNfR0ZwX25pc3RwX3JlY29kZV9zY2FsYXJfYml0cygmc2lnbiwgJmRp
Z2l0LCBiaXRzKTsKKworICAgICAgLy8gU2VsZWN0IHRoZSBwb2ludCB0byBhZGQgb3Igc3VidHJh
Y3QuCisgICAgICBPUEVOU1NMX21lbWNweSh0bXAsIHBfcHJlX2NvbXBbZGlnaXRdLCAzICogc2l6
ZW9mKHAyMjRfZmVsZW0pKTsKKyAgICAgIGlmIChzaWduKSB7CisgICAgICAgIHAyMjRfZmVsZW1f
bmVnKHRtcFsxXSwgdG1wWzFdKTsgIC8vIChYLCAtWSwgWikgaXMgdGhlIG5lZ2F0aXZlIHBvaW50
CisgICAgICB9CisKKyAgICAgIGlmICghc2tpcCkgeworICAgICAgICBwMjI0X3BvaW50X2FkZChu
cVswXSwgbnFbMV0sIG5xWzJdLCBucVswXSwgbnFbMV0sIG5xWzJdLCAwIC8qIG1peGVkICovLAor
ICAgICAgICAgICAgICAgICAgICAgICB0bXBbMF0sIHRtcFsxXSwgdG1wWzJdKTsKKyAgICAgIH0g
ZWxzZSB7CisgICAgICAgIE9QRU5TU0xfbWVtY3B5KG5xLCB0bXAsIDMgKiBzaXplb2YocDIyNF9m
ZWxlbSkpOworICAgICAgICBza2lwID0gMDsKKyAgICAgIH0KKyAgICB9CisgIH0KIAotICAvLyBy
ZWR1Y2UgdGhlIG91dHB1dCB0byBpdHMgdW5pcXVlIG1pbmltYWwgcmVwcmVzZW50YXRpb24KLSAg
cDIyNF9mZWxlbV90b19nZW5lcmljKCZyLT5YLCB4X291dCk7Ci0gIHAyMjRfZmVsZW1fdG9fZ2Vu
ZXJpYygmci0+WSwgeV9vdXQpOwotICBwMjI0X2ZlbGVtX3RvX2dlbmVyaWMoJnItPlosIHpfb3V0
KTsKKyAgLy8gUmVkdWNlIHRoZSBvdXRwdXQgdG8gaXRzIHVuaXF1ZSBtaW5pbWFsIHJlcHJlc2Vu
dGF0aW9uLgorICBwMjI0X2ZlbGVtX3RvX2dlbmVyaWMoJnItPlgsIG5xWzBdKTsKKyAgcDIyNF9m
ZWxlbV90b19nZW5lcmljKCZyLT5ZLCBucVsxXSk7CisgIHAyMjRfZmVsZW1fdG9fZ2VuZXJpYygm
ci0+WiwgbnFbMl0pOwogfQogCiBzdGF0aWMgdm9pZCBlY19HRnBfbmlzdHAyMjRfZmVsZW1fbXVs
KGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfRkVMRU0gKnIsCkBAIC0xMTExLDggKzExNzIsOSBA
QCBERUZJTkVfTUVUSE9EX0ZVTkNUSU9OKEVDX01FVEhPRCwgRUNfR0ZwX25pc3RwMjI0X21ldGhv
ZCkgewogICAgICAgZWNfR0ZwX25pc3RwMjI0X3BvaW50X2dldF9hZmZpbmVfY29vcmRpbmF0ZXM7
CiAgIG91dC0+YWRkID0gZWNfR0ZwX25pc3RwMjI0X2FkZDsKICAgb3V0LT5kYmwgPSBlY19HRnBf
bmlzdHAyMjRfZGJsOwotICBvdXQtPm11bCA9IGVjX0dGcF9uaXN0cDIyNF9wb2ludHNfbXVsOwot
ICBvdXQtPm11bF9wdWJsaWMgPSBlY19HRnBfbmlzdHAyMjRfcG9pbnRzX211bDsKKyAgb3V0LT5t
dWwgPSBlY19HRnBfbmlzdHAyMjRfcG9pbnRfbXVsOworICBvdXQtPm11bF9iYXNlID0gZWNfR0Zw
X25pc3RwMjI0X3BvaW50X211bF9iYXNlOworICBvdXQtPm11bF9wdWJsaWMgPSBlY19HRnBfbmlz
dHAyMjRfcG9pbnRfbXVsX3B1YmxpYzsKICAgb3V0LT5mZWxlbV9tdWwgPSBlY19HRnBfbmlzdHAy
MjRfZmVsZW1fbXVsOwogICBvdXQtPmZlbGVtX3NxciA9IGVjX0dGcF9uaXN0cDIyNF9mZWxlbV9z
cXI7CiAgIG91dC0+YmlnbnVtX3RvX2ZlbGVtID0gZWNfR0ZwX25pc3RwMjI0X2JpZ251bV90b19m
ZWxlbTsKQEAgLTExMjAsNiArMTE4Miw2IEBAIERFRklORV9NRVRIT0RfRlVOQ1RJT04oRUNfTUVU
SE9ELCBFQ19HRnBfbmlzdHAyMjRfbWV0aG9kKSB7CiAgIG91dC0+c2NhbGFyX2ludl9tb250Z29t
ZXJ5ID0gZWNfc2ltcGxlX3NjYWxhcl9pbnZfbW9udGdvbWVyeTsKICAgb3V0LT5zY2FsYXJfaW52
X21vbnRnb21lcnlfdmFydGltZSA9IGVjX0dGcF9zaW1wbGVfbW9udF9pbnZfbW9kX29yZF92YXJ0
aW1lOwogICBvdXQtPmNtcF94X2Nvb3JkaW5hdGUgPSBlY19HRnBfc2ltcGxlX2NtcF94X2Nvb3Jk
aW5hdGU7Ci19OworfQogCiAjZW5kaWYgIC8vIEJPUklOR1NTTF9IQVNfVUlOVDEyOCAmJiAhU01B
TEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9wMjU2LXg4Nl82NC10YWJs
ZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYteDg2XzY0LXRhYmxlLmgKaW5kZXgg
YmNiMDVmNjc0YzExYWFkZmNjNGViN2I5ZDVmNmJhY2VhN2FmODU0NS4uODI0NmIxMWI5Y2NmOWY2
Yjc1MjVhNWNmYjM2ZTY3NGE2NzA0NDFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL2VjL3AyNTYteDg2XzY0LXRhYmxlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2Vj
L3AyNTYteDg2XzY0LXRhYmxlLmgKQEAgLTI2LDk0NzggKzI2LDk0NzYgQEAKIAogLy8gVGhpcyBm
aWxlIGlzIGdlbmVyYXRlZCBieSBtYWtlX3AyNTYteDg2XzY0LXRhYmxlLmdvLgogCi1zdGF0aWMg
Y29uc3QgYWxpZ25hcyg0MDk2KSBCTl9VTE9ORwotICAgIGVjcF9uaXN0ejI1Nl9wcmVjb21wdXRl
ZFszN11bNjQgKiBzaXplb2YoUDI1Nl9QT0lOVF9BRkZJTkUpIC8KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVvZihCTl9VTE9ORyldID0gewotICAgICAgICB7VE9CTigweDc5
ZTczMGQ0LCAweDE4YTkxNDNjKSwgVE9CTigweDc1YmE5NWZjLCAweDVmZWRiNjAxKSwKLSAgICAg
ICAgIFRPQk4oMHg3OWZiNzMyYiwgMHg3NzYyMjUxMCksIFRPQk4oMHgxODkwNWY3NiwgMHhhNTM3
NTVjNiksCi0gICAgICAgICBUT0JOKDB4ZGRmMjUzNTcsIDB4Y2U5NTU2MGEpLCBUT0JOKDB4OGI0
YWI4ZTQsIDB4YmExOWU0NWMpLAotICAgICAgICAgVE9CTigweGQyZTg4Njg4LCAweGRkMjFmMzI1
KSwgVE9CTigweDg1NzFmZjE4LCAweDI1ODg1ZDg1KSwKLSAgICAgICAgIFRPQk4oMHg4NTAwNDZk
NCwgMHgxMGRkZDY0ZCksIFRPQk4oMHhhYTZhZTNjMSwgMHhhNDMzODI3ZCksCi0gICAgICAgICBU
T0JOKDB4NzMyMjA1MDMsIDB4OGQxNDkwZDkpLCBUT0JOKDB4ZjZiYjMyZTQsIDB4M2RjZjNhM2Ip
LAotICAgICAgICAgVE9CTigweDJmMzY0OGQzLCAweDYxYmVlMWE1KSwgVE9CTigweDE1MmNkN2Ni
LCAweGViMjM2ZmY4KSwKLSAgICAgICAgIFRPQk4oMHgxOWE4ZmIwZSwgMHg5MjA0MmRiZSksIFRP
Qk4oMHg3OGM1Nzc1MSwgMHgwYTViOGEzYiksCi0gICAgICAgICBUT0JOKDB4ZmZhYzNmOTAsIDB4
NGVlYmMxMjcpLCBUT0JOKDB4YjAyN2Y4NGEsIDB4MDg3ZDgxZmIpLAotICAgICAgICAgVE9CTigw
eDY2YWQ3N2RkLCAweDg3Y2JiYzk4KSwgVE9CTigweDI2OTM2YTNmLCAweGI2ZmY3NDdlKSwKLSAg
ICAgICAgIFRPQk4oMHhiMDRjNWMxZiwgMHhjOTgzYTdlYiksIFRPQk4oMHg1ODNlNDdhZCwgMHgw
ODYxZmUxYSksCi0gICAgICAgICBUT0JOKDB4Nzg4MjA4MzEsIDB4MWEyZWU5OGUpLCBUT0JOKDB4
ZDVmMDZhMjksIDB4ZTU4N2NjMDcpLAotICAgICAgICAgVE9CTigweDc0YjBiNTBkLCAweDQ2OTE4
ZGNjKSwgVE9CTigweDQ2NTBhNmVkLCAweGM2MjNjMTczKSwKLSAgICAgICAgIFRPQk4oMHgwY2Rh
YWNhYywgMHhlODEwMGFmMiksIFRPQk4oMHg1NzczNjJmNSwgMHg0MWIwMTc2YiksCi0gICAgICAg
ICBUT0JOKDB4MmQ5NmYyNGMsIDB4ZTRjYmFiYTYpLCBUT0JOKDB4MTc2Mjg0NzEsIDB4ZmFkNmY0
NDcpLAotICAgICAgICAgVE9CTigweDZiNmMzNmRlLCAweGU1ZGRkMjJlKSwgVE9CTigweDg0YjE0
YzM5LCAweDRjNWFiODYzKSwKLSAgICAgICAgIFRPQk4oMHhiZTFiOGFhZSwgMHhjNDVjNjFmNSks
IFRPQk4oMHg5MGVjNjQ5YSwgMHg5NGI5NTM3ZCksCi0gICAgICAgICBUT0JOKDB4OTQxY2I1YWEs
IDB4ZDA3NmMyMGMpLCBUT0JOKDB4YzkwNzk2MDUsIDB4ODkwNTIzYzgpLAotICAgICAgICAgVE9C
TigweGViMzA5YjRhLCAweGU3YmE0ZjEwKSwgVE9CTigweDczYzU2OGVmLCAweGU1ZWI4ODJiKSwK
LSAgICAgICAgIFRPQk4oMHgzNTQwYTk4NywgMHg3ZTdhMWY2OCksIFRPQk4oMHg3M2EwNzZiYiwg
MHgyZGQxZTkxNiksCi0gICAgICAgICBUT0JOKDB4NDAzOTQ3MzcsIDB4M2U3NzY2NGEpLCBUT0JO
KDB4NTVhZTc0NGYsIDB4MzQ2Y2VlM2UpLAotICAgICAgICAgVE9CTigweGQ1MGE5NjFhLCAweDVi
MTdhM2FkKSwgVE9CTigweDEzMDc0YjU5LCAweDU0MjEzNjczKSwKLSAgICAgICAgIFRPQk4oMHg5
M2QzNjIyMCwgMHhkMzc3ZTQ0YiksIFRPQk4oMHgyOTljMmI1MywgMHhhZGZmMTRiNSksCi0gICAg
ICAgICBUT0JOKDB4ZjQyNGQ0NGMsIDB4ZWY2MzlmMTEpLCBUT0JOKDB4YTRjOTkxNmQsIDB4NGEw
N2Y3NWYpLAotICAgICAgICAgVE9CTigweDA3NDYzNTRlLCAweGEwMTczYjRmKSwgVE9CTigweDJi
ZDIwMjEzLCAweGQyM2MwMGY3KSwKLSAgICAgICAgIFRPQk4oMHhmNDNlYWFiNSwgMHgwYzIzYmIw
OCksIFRPQk4oMHgxM2JhNTExOSwgMHhjMzEyM2UwMyksCi0gICAgICAgICBUT0JOKDB4Mjg0N2Qw
MzAsIDB4M2Y1YjlkNGQpLCBUT0JOKDB4Njc0MmYyZjIsIDB4NWRhNjdiZGQpLAotICAgICAgICAg
VE9CTigweGVmOTMzYmRjLCAweDc3Yzk0MTk1KSwgVE9CTigweGVhZWRkOTE1LCAweDZlMjQwODY3
KSwKLSAgICAgICAgIFRPQk4oMHgyN2YxNGNkMSwgMHg5NDk5YTc4ZiksIFRPQk4oMHg0NjJhYjVj
NSwgMHg2ZjliMzQ1NSksCi0gICAgICAgICBUT0JOKDB4OGY5MGYwMmEsIDB4ZjAyY2ZjNmIpLCBU
T0JOKDB4Yjc2Mzg5MWUsIDB4YjI2NTIzMGQpLAotICAgICAgICAgVE9CTigweGY1OWRhM2E5LCAw
eDUzMmQ0OTc3KSwgVE9CTigweDIxZTMzMjdkLCAweGNmOWViYTE1KSwKLSAgICAgICAgIFRPQk4o
MHgxMjNjN2I4NCwgMHhiZTYwYmJmMCksIFRPQk4oMHg1NmVjMTJmMiwgMHg3NzA2ZGY3NiksCi0g
ICAgICAgICBUT0JOKDB4NzVjOTZlOGYsIDB4MjY0ZTIwZTgpLCBUT0JOKDB4YWJlNmJmZWQsIDB4
NTlhN2E4NDEpLAotICAgICAgICAgVE9CTigweDJjYzA5YzA0LCAweDQ0YzhlYjAwKSwgVE9CTigw
eGUwNWIzMDgwLCAweGYwYzRlMTZiKSwKLSAgICAgICAgIFRPQk4oMHgxZWI3Nzc3YSwgMHhhNDVm
MzMxNCksIFRPQk4oMHg1NmFmN2JlZCwgMHhjZTVkNDVlMyksCi0gICAgICAgICBUT0JOKDB4MmI2
ZTAxOWEsIDB4ODhiMTJmMWEpLCBUT0JOKDB4MDg2NjU5Y2QsIDB4ZmQ4MzVmOWIpLAotICAgICAg
ICAgVE9CTigweDJjMThkYmQxLCAweDlkYzIxZWM4KSwgVE9CTigweDk4Zjk4NjhhLCAweDBmY2Y4
MTM5KSwKLSAgICAgICAgIFRPQk4oMHg3MzdkMmNkNiwgMHg0ODI1MGI0OSksIFRPQk4oMHhjYzYx
Yzk0NywgMHgyNGIzNDI4ZiksCi0gICAgICAgICBUT0JOKDB4MGMyYjQwNzgsIDB4ODBkZDllNzYp
LCBUT0JOKDB4YzQzYTg5OTEsIDB4MzgzZmJlMDgpLAotICAgICAgICAgVE9CTigweDVmN2QyZDY1
LCAweDc3OWJlNWQyKSwgVE9CTigweDc4NzE5YTU0LCAweGViM2I0YWI1KSwKLSAgICAgICAgIFRP
Qk4oMHhlYTdkMjYwYSwgMHg2MjQ1ZTQwNCksIFRPQk4oMHg5ZGU0MDc5NSwgMHg2ZTdmZGZlMCks
Ci0gICAgICAgICBUT0JOKDB4MWZmM2E0MTUsIDB4OGRhYzFhYjUpLCBUT0JOKDB4M2U3MDkwZjEs
IDB4NjQ5YzkwNzMpLAotICAgICAgICAgVE9CTigweDFhNzY4NTYxLCAweDJiOTQ0ZTg4KSwgVE9C
TigweDI1MGY5MzllLCAweGU1N2Y2MWM4KSwKLSAgICAgICAgIFRPQk4oMHgwYzBkYWE4OSwgMHgx
ZWFkNjQzZCksIFRPQk4oMHg2ODkzMDAyMywgMHhlMTI1Yjg4ZSksCi0gICAgICAgICBUT0JOKDB4
MDRiNzFhYTcsIDB4ZDI2OTc3NjgpLCBUT0JOKDB4YWJkZWRlZjUsIDB4Y2EzNDVhMzMpLAotICAg
ICAgICAgVE9CTigweDI0MDlkMjlkLCAweGVlMzczODVlKSwgVE9CTigweDRlZTFkZjc3LCAweGNi
ODNlMTU2KSwKLSAgICAgICAgIFRPQk4oMHgwY2FjMTJkOSwgMHgxY2JiNWI0MyksIFRPQk4oMHgx
NzBlZDJmNiwgMHhjYTg5NTYzNyksCi0gICAgICAgICBUT0JOKDB4MjgyMjhjZmEsIDB4OGFkZTZk
NjYpLCBUT0JOKDB4N2ZmNTdjOTUsIDB4NTMyMzhhY2EpLAotICAgICAgICAgVE9CTigweGNjYzQy
NTYzLCAweDRiMmVkNzA5KSwgVE9CTigweDBlMzU2NzY5LCAweDg1NmZkMzBkKSwKLSAgICAgICAg
IFRPQk4oMHhiY2JjZDQzZiwgMHg1NTllOTgxMSksIFRPQk4oMHg3Mzg0NzdhYywgMHg1Mzk1Yjc1
OSksCi0gICAgICAgICBUT0JOKDB4MzU3NTJiOTAsIDB4YzAwZWUxN2YpLCBUT0JOKDB4Njg3NDgz
OTAsIDB4NzQyZWQyZTMpLAotICAgICAgICAgVE9CTigweDdjZDA2NDIyLCAweGJkMWY1YmMxKSwg
VE9CTigweGZiYzA4NzY5LCAweGM5ZTdiNzk3KSwKLSAgICAgICAgIFRPQk4oMHhhMjQyYTM1Yiwg
MHhiMGNmNjY0YSksIFRPQk4oMHgxMjZlNDhmNywgMHg3Zjk3MDdlMyksCi0gICAgICAgICBUT0JO
KDB4MTcxN2JmNTQsIDB4YzY4MzI2NjApLCBUT0JOKDB4ZmFhZTczMzIsIDB4ZmQxMmM3MmUpLAot
ICAgICAgICAgVE9CTigweDI3YjUyZGI3LCAweDk5NWQ1ODZiKSwgVE9CTigweGJlMjk1NjllLCAw
eDgzMjIzN2MyKSwKLSAgICAgICAgIFRPQk4oMHhlOGU0MTkzZSwgMHgyYTY1ZTdkYiksIFRPQk4o
MHgxNTI3MDZkYywgMHgyZWFhMWJiYiksCi0gICAgICAgICBUT0JOKDB4NzJiY2Q4YjcsIDB4YmM2
MDA1NWIpLCBUT0JOKDB4MDNjYzIzZWUsIDB4NTZlMjdlNGIpLAotICAgICAgICAgVE9CTigweGVl
MzM3NDI0LCAweGU0ODE5MzcwKSwgVE9CTigweGUyYWEwZTQzLCAweDBhZDNkYTA5KSwKLSAgICAg
ICAgIFRPQk4oMHg0MGI4NTI0ZiwgMHg2MzgzYzQ1ZCksIFRPQk4oMHhkNzY2MzU1NCwgMHg0MmE0
MWIyNSksCi0gICAgICAgICBUT0JOKDB4NjRlZmE2ZGUsIDB4Nzc4YTQ3OTcpLCBUT0JOKDB4MjA0
MjE3MGEsIDB4NzA3OWFkZjQpLAotICAgICAgICAgVE9CTigweDgwOGIwYjY1LCAweDBiYzZmYjgw
KSwgVE9CTigweDU4ODJlMDc1LCAweDNmZmUyZTZiKSwKLSAgICAgICAgIFRPQk4oMHhkNWVmMmY3
YywgMHgyYzgzZjU0OSksIFRPQk4oMHg1NGQ2M2M4MCwgMHg5MTAzYjcyMyksCi0gICAgICAgICBU
T0JOKDB4ZjJmMTFiZDYsIDB4NTJhMjNmOWIpLCBUT0JOKDB4MzY3MGMzMTksIDB4NGIwYjY1ODcp
LAotICAgICAgICAgVE9CTigweDU1YzQ2MjNiLCAweGIxNTgwZTllKSwgVE9CTigweDY0ZWRmN2Iy
LCAweDAxZWZlMjIwKSwKLSAgICAgICAgIFRPQk4oMHg5NzA5MWRjYiwgMHhkNTNjNWM5ZCksIFRP
Qk4oMHhmMTc2MjRiNiwgMHhhYzBhMTc3YiksCi0gICAgICAgICBUT0JOKDB4YjBmMTM5NzUsIDB4
MmNmZTJkZmYpLCBUT0JOKDB4YzFhMzVjMGEsIDB4NmM3YTU3NGUpLAotICAgICAgICAgVE9CTigw
eDIyN2QzMTQ2LCAweDkzZTc5OTg3KSwgVE9CTigweDA1NzViZjMwLCAweGU4OWNiODBlKSwKLSAg
ICAgICAgIFRPQk4oMHgyZjRlMjQ3ZiwgMHgwZDE4ODNiYiksIFRPQk4oMHhlYmQ1MTIyNiwgMHgz
Mjc0YzNkMCksCi0gICAgICAgICBUT0JOKDB4NWYzZTUxYzgsIDB4NTZhZGE5N2EpLCBUT0JOKDB4
NGFmYzk2NGQsIDB4OGY4YjQwM2UpLAotICAgICAgICAgVE9CTigweGE2ZjI0N2FiLCAweDQxMmUy
OTc5KSwgVE9CTigweDY3NWFiZDFiLCAweDZmODBlYmRhKSwKLSAgICAgICAgIFRPQk4oMHg2NmEy
YmQ3MiwgMHg1ZTQ4NWExZCksIFRPQk4oMHg0YjJhNWNhZiwgMHg4ZjRmMGIzYyksCi0gICAgICAg
ICBUT0JOKDB4MjYyNjkyN2YsIDB4MWI4NDdiYmEpLCBUT0JOKDB4NmM2ZmM3ZDksIDB4MDUwMjM5
NGQpLAotICAgICAgICAgVE9CTigweGZlYTkxMmJhLCAweGE1NjU5YWU4KSwgVE9CTigweDY4MzYz
YWJhLCAweDI1ZTFhMTZlKSwKLSAgICAgICAgIFRPQk4oMHhiODg0MjI3NywgMHg3NTJjNDFhYyks
IFRPQk4oMHhmZTU0NWMyOCwgMHgyODk3YzNmYyksCi0gICAgICAgICBUT0JOKDB4MmQzNmU5ZTcs
IDB4ZGM0YzY5NmIpLCBUT0JOKDB4NTgwNjI0NGEsIDB4ZmJhOTc3YzUpLAotICAgICAgICAgVE9C
TigweDg1NjY1ZTliLCAweGUzOTUwOGMxKSwgVE9CTigweGY3MjBlZTI1LCAweDZkMTI1OTdiKSwK
LSAgICAgICAgIFRPQk4oMHg4YTk3OTEyOSwgMHhkMjMzN2EzMSksIFRPQk4oMHg1OTE2ODY4Ziwg
MHgwZjg2MmJkYyksCi0gICAgICAgICBUT0JOKDB4MDQ4MDk5ZDksIDB4NWRkMjgzYmEpLCBUT0JO
KDB4ZTJkMWVlYjYsIDB4ZmU1YmZiNGUpLAotICAgICAgICAgVE9CTigweDgyZWYxYzQxLCAweDc4
ODQwMDVkKSwgVE9CTigweGEyZDRlYzE3LCAweGZmZmZjYmFlKSwKLSAgICAgICAgIFRPQk4oMHg5
MTYxYzUzZiwgMHg4YWE5NWU2NiksIFRPQk4oMHg1ZWUxMDRlMSwgMHhjNWZlZTBkMCksCi0gICAg
ICAgICBUT0JOKDB4NTYyZTRjZWMsIDB4YzEzNWIyMDgpLCBUT0JOKDB4NzRlMWIyNjUsIDB4NDc4
M2Y0N2QpLAotICAgICAgICAgVE9CTigweDZkMmE1MDZjLCAweDVhM2YzYjMwKSwgVE9CTigweGVj
ZWFkOWY0LCAweGMxNjc2MmZjKSwKLSAgICAgICAgIFRPQk4oMHhmMjlkZDRiMiwgMHhlMjg2ZTVi
OSksIFRPQk4oMHgxYjBmYWRjMCwgMHg4M2JiM2M2MSksCi0gICAgICAgICBUT0JOKDB4N2E3NTAy
M2UsIDB4N2ZhYzI5YTQpLCBUT0JOKDB4YzA4NmQ1ZjEsIDB4Yzk0NzdmYTMpLAotICAgICAgICAg
VE9CTigweDBmYzYxMTM1LCAweDJmNmYzMDc2KSwgVE9CTigweGM5OWZmYTIzLCAweGUzOTEyYTlh
KSwKLSAgICAgICAgIFRPQk4oMHg2YTBiMDY4NSwgMHhkMmY4YmEzZCksIFRPQk4oMHhmZGM3Nzdl
OCwgMHhlOTMzNThhNCksCi0gICAgICAgICBUT0JOKDB4OTRhNzg3YmIsIDB4MzU0MTVmMDQpLCBU
T0JOKDB4NjQwYzJkNmEsIDB4NGQyM2ZlYTQpLAotICAgICAgICAgVE9CTigweDlkZTkxN2RhLCAw
eDE1M2EzNWI1KSwgVE9CTigweDc5M2U4ZDA3LCAweDVkNWNkMDc0KSwKLSAgICAgICAgIFRPQk4o
MHhmNGY4NzY1MywgMHgyZGU0NTA2OCksIFRPQk4oMHgzN2M3YTdlOCwgMHg5ZTJlMWY2ZSksCi0g
ICAgICAgICBUT0JOKDB4ZDA4MjVmYTIsIDB4YTM1ODQwNjkpLCBUT0JOKDB4YWYyY2VhN2MsIDB4
MTcyN2JmNDIpLAotICAgICAgICAgVE9CTigweDAzNjBhNGZiLCAweDllNDc4NWE5KSwgVE9CTigw
eGU1ZmRhNDljLCAweDI3Mjk5ZjRhKSwKLSAgICAgICAgIFRPQk4oMHg0ODA2OGUxMywgMHg3MWFj
MmY3MSksIFRPQk4oMHg4M2QwNjg3YiwgMHg5MDc3NjY2ZiksCi0gICAgICAgICBUT0JOKDB4NmQz
ODgzYjIsIDB4MTVkMDI4MTkpLCBUT0JOKDB4NmQwZDc1NTAsIDB4NDBkZDlhMzUpLAotICAgICAg
ICAgVE9CTigweDYxZDdjYmY5LCAweDFkMmI0NjlmKSwgVE9CTigweGY5N2IyMzJmLCAweDJlZmMz
MTE1KSwKLSAgICAgICAgIFRPQk4oMHhhNTUxZDc1MCwgMHhiMjRiY2JjNyksIFRPQk4oMHgxMWVh
NDk0OSwgMHg4OGExZTM1NiksCi0gICAgICAgICBUT0JOKDB4NzY2OWYwMzEsIDB4OTNjYjc1MDEp
LCBUT0JOKDB4NTk1ZGM1NWUsIDB4Y2E3MzdiOGEpLAotICAgICAgICAgVE9CTigweGE0YTMxOWFj
LCAweGQ4Mzc4NzlmKSwgVE9CTigweDZmYzFiNDllLCAweGVkNmI2N2IwKSwKLSAgICAgICAgIFRP
Qk4oMHhlMzk1OTkzMywgMHgzMmYxZjNhZiksIFRPQk4oMHg5NjY3NDJlYiwgMHg2NTQzMmEyZSks
Ci0gICAgICAgICBUT0JOKDB4NGI4ZGM5ZmUsIDB4YjQ5NjYyMjgpLCBUT0JOKDB4OTZjYzYzMTIs
IDB4NDNmNDM5NTApLAotICAgICAgICAgVE9CTigweDEyMDY4ODU5LCAweGM5YjczMWVlKSwgVE9C
TigweDdiOTQ4ZGMzLCAweDU2Zjc5OTY4KSwKLSAgICAgICAgIFRPQk4oMHg2MWU0YWQzMiwgMHhl
ZDFmODAwOCksIFRPQk4oMHhlNmM5MjY3YSwgMHhkOGIxNzUzOCksCi0gICAgICAgICBUT0JOKDB4
MWFjN2M1ZWIsIDB4ODU3ZmY2ZmIpLCBUT0JOKDB4OTk0YmFhYTgsIDB4NTVmMmZiMTApLAotICAg
ICAgICAgVE9CTigweDg0Y2YxNGUxLCAweDFkMjQ4MDE4KSwgVE9CTigweDVhMzk4OThiLCAweDYy
OGFjNTA4KSwKLSAgICAgICAgIFRPQk4oMHgxNGZkZTk3YiwgMHg1ZmE5NDRmNSksIFRPQk4oMHhl
ZDE3ODAzMCwgMHhkMTJlNWFjNyksCi0gICAgICAgICBUT0JOKDB4MDQyYzJhZjQsIDB4OTdlMmZl
YjQpLCBUT0JOKDB4ZDM2YTQyZDcsIDB4YWViZjczMTMpLAotICAgICAgICAgVE9CTigweDQ5ZDJj
OWViLCAweDA4NGZmZGQ3KSwgVE9CTigweDlmOGFhNTRiLCAweDJlZjdjNzZhKSwKLSAgICAgICAg
IFRPQk4oMHg5MjAwYjdiYSwgMHgwOTg5NWU3MCksIFRPQk4oMHgzYmQwYzY2ZiwgMHhkZGI3ZmI1
OCksCi0gICAgICAgICBUT0JOKDB4MmQ5N2QxMDgsIDB4NzhlYjRjYmIpLCBUT0JOKDB4MmQ0MzEw
NjgsIDB4ZDg0YmRlMzEpLAotICAgICAgICAgVE9CTigweDRiNTIzZWI3LCAweDE3MmNjZDFmKSwg
VE9CTigweDczMjNjYjI4LCAweDMwYTZhODkyKSwKLSAgICAgICAgIFRPQk4oMHg5NzA4MmVjMCwg
MHhjZmUxNTNlYiksIFRPQk4oMHhlOTdmNmI2YSwgMHhmMmFhZGI5NyksCi0gICAgICAgICBUT0JO
KDB4MWQzZDM5M2UsIDB4ZDFhODNkYTEpLCBUT0JOKDB4YTZhN2Y5YzcsIDB4ODA0YjJhNjgpLAot
ICAgICAgICAgVE9CTigweDRhNjg4YjQ4LCAweDJkMGNiNzFlKSwgVE9CTigweGE5YjRjYzVmLCAw
eDQwNTg1Mjc4KSwKLSAgICAgICAgIFRPQk4oMHg1ZTVkYjQ2YSwgMHhjYjY2ZTEzMiksIFRPQk4o
MHhmMWJlOTYzYSwgMHgwZDkyNTg4MCksCi0gICAgICAgICBUT0JOKDB4OTQ0YTcwMjcsIDB4MDMx
N2I5ZTIpLCBUT0JOKDB4ZTI2NmY5NTksIDB4NDg2MDNkNDgpLAotICAgICAgICAgVE9CTigweDk4
ZGI2NjczLCAweDVjMjA4ODk5KSwgVE9CTigweDkwNDcyNDQ3LCAweGEyZmIxOGEzKSwKLSAgICAg
ICAgIFRPQk4oMHg4YTk2NjkzOSwgMHg3NzdjNjE5ZiksIFRPQk4oMHgzNzk4MTQyYSwgMHgyYTNi
ZTIxYiksCi0gICAgICAgICBUT0JOKDB4YjQyNDFjYjEsIDB4MzI5OGIzNDMpLCBUT0JOKDB4YTNh
MTRlNDksIDB4YjQ0ZjY1YTEpLAotICAgICAgICAgVE9CTigweGM1ZjRkNmNkLCAweDNhYzc3YWNk
KSwgVE9CTigweGQwMjg4Y2I1LCAweDUyYjZmYzNjKSwKLSAgICAgICAgIFRPQk4oMHhkNWNjOGMy
ZiwgMHgxYzA0MGFiYyksIFRPQk4oMHhiNjc1NTExZSwgMHgwNmJmOWI0YSksCi0gICAgICAgICBU
T0JOKDB4ZDY2N2RhMzcsIDB4OWIzYWE0NDEpLCBUT0JOKDB4NDYwZDQ1Y2UsIDB4NTE2MDFmNzIp
LAotICAgICAgICAgVE9CTigweGUyZjczYzY5LCAweDY3NTVmZjg5KSwgVE9CTigweGRkM2NmN2U3
LCAweDQ3MzAxN2U2KSwKLSAgICAgICAgIFRPQk4oMHg4ZWY1Njg5ZCwgMHgzY2Y3NjAwZCksIFRP
Qk4oMHg5NDhkYzRmOCwgMHhiMWZjODdiNCksCi0gICAgICAgICBUT0JOKDB4ZDllOWZlODEsIDB4
NGVhNTMyOTkpLCBUT0JOKDB4MmQ5MjFjYTIsIDB4OThlYjYwMjgpLAotICAgICAgICAgVE9CTigw
eGZhZWNlZGZkLCAweDBjOTgwM2ZjKSwgVE9CTigweGYzOGFlODkxLCAweDRkN2I0NzQ1KSwKLSAg
ICAgICAgIFRPQk4oMHhkOGM1ZmNjZiwgMHhjNWUzYTNkOCksIFRPQk4oMHhiZWZkOTA0YywgMHg0
MDc5ZGZiZiksCi0gICAgICAgICBUT0JOKDB4YmM2ZDZhNTgsIDB4ZmVhZDAxOTcpLCBUT0JOKDB4
MzkyMjcwNzcsIDB4Njk1NTMyYTQpLAotICAgICAgICAgVE9CTigweDA5ZTIzZTZkLCAweGRiZWY0
MmY1KSwgVE9CTigweDdlNDQ5YjY0LCAweDQ4MGE5OTA4KSwKLSAgICAgICAgIFRPQk4oMHg3Yjk2
OWMxYSwgMHhhZDlhMmU0MCksIFRPQk4oMHg2MjMxZDc5MiwgMHg5NTkxYzJhNCksCi0gICAgICAg
ICBUT0JOKDB4ODcxNTE0NTYsIDB4MGY2NjQ1MzQpLCBUT0JOKDB4ODVjZWFlN2MsIDB4NGI2OGYx
MDMpLAotICAgICAgICAgVE9CTigweGFjMDljNGFlLCAweDY1NTc4YWI5KSwgVE9CTigweDMzZWM2
ODY4LCAweGYwNDRiMTBjKSwKLSAgICAgICAgIFRPQk4oMHg2YWM0ODMyYiwgMHgzYThlYzFmMSks
IFRPQk4oMHg1NTA5ZDEyOCwgMHg1ODQ3ZDVlZiksCi0gICAgICAgICBUT0JOKDB4ZjkwOTYwNGYs
IDB4NzYzZjE1NzQpLCBUT0JOKDB4YjE2YzQzMDMsIDB4YzMyZjYzYzQpLAotICAgICAgICAgVE9C
TigweGI2YWIyMDE0LCAweDdjYTIzY2QzKSwgVE9CTigweGNhYTdhNWM2LCAweGEzOTE4NDlkKSwK
LSAgICAgICAgIFRPQk4oMHg1YjA2NzNhMywgMHg3NTY3OGQ5NCksIFRPQk4oMHhjOTgyZGRkNCwg
MHhkZDMwM2U2NCksCi0gICAgICAgICBUT0JOKDB4ZmQ3YjAwMGIsIDB4NWRiNmY5NzEpLCBUT0JO
KDB4YmJhMmNiMWYsIDB4NmY4NzZmOTIpLAotICAgICAgICAgVE9CTigweGM3NzMzMmEzLCAweDNj
NTY5NDI2KSwgVE9CTigweGExNTkxMDBjLCAweDU3MGQ3NGY4KSwKLSAgICAgICAgIFRPQk4oMHhm
ZDE2ODQ3ZiwgMHhkZWM2N2VmNSksIFRPQk4oMHg3NDJlZTQ2NCwgMHgyMzNlNzZiNyksCi0gICAg
ICAgICBUT0JOKDB4MGI4ZTQxMzQsIDB4ZWZjMmI0YzgpLCBUT0JOKDB4Y2E2NDBiODYsIDB4NDJh
M2U1MjEpLAotICAgICAgICAgVE9CTigweDY1M2EwMTkwLCAweDhjZWI2YWE5KSwgVE9CTigweDMx
M2MzMDBjLCAweDU0Nzg1MmQ1KSwKLSAgICAgICAgIFRPQk4oMHgyNGU0YWIxMiwgMHg2YjIzN2Fm
NyksIFRPQk4oMHgyYmE5MDE2MiwgMHg4YmI0N2FmOCksCi0gICAgICAgICBUT0JOKDB4M2Q1ZTU4
ZDYsIDB4YTgyMTliYjcpLCBUT0JOKDB4YzY5MWQwYmQsIDB4MWIwNmM1N2YpLAotICAgICAgICAg
VE9CTigweDBhZTRjYjEwLCAweGQyNTc1NzZlKSwgVE9CTigweDM1Njk2NTZjLCAweGQ1NGEzZGMz
KSwKLSAgICAgICAgIFRPQk4oMHhlNWViYWViZCwgMHg5NGNkYTAzYSksIFRPQk4oMHg5MzRlODJk
MywgMHgxNjJiZmUxMyksCi0gICAgICAgICBUT0JOKDB4NDUwYWMwYmEsIDB4ZTI1MWEwYzYpLCBU
T0JOKDB4NDgwYjllMTEsIDB4ZGQ2ZGE1MjYpLAotICAgICAgICAgVE9CTigweDAwNDY3YmM1LCAw
eDhjY2UwOGI1KSwgVE9CTigweGI2MzY0NThjLCAweDdmMTc4ZDU1KSwKLSAgICAgICAgIFRPQk4o
MHhjNTc0OGJhZSwgMHhhNjc3ZDgwNiksIFRPQk4oMHgyNzYzYTM4NywgMHhkZmEzOTRlYiksCi0g
ICAgICAgICBUT0JOKDB4YTEyYjQ0OGEsIDB4N2QzY2ViYjYpLCBUT0JOKDB4ZTdhZGRhM2UsIDB4
NmYyMGQ4NTApLAotICAgICAgICAgVE9CTigweGY2M2ViY2U1LCAweDE1NTg0NjJjKSwgVE9CTigw
eDU4YjM2MTQzLCAweDYyMDA4OGE4KSwKLSAgICAgICAgIFRPQk4oMHg4YTJjYzNjYSwgMHg0ZDYz
YzBlZSksIFRPQk4oMHg1MTIzMzExNywgMHgwZmU5NDhjZSksCi0gICAgICAgICBUT0JOKDB4NzQ2
M2ZkODUsIDB4MjIyZWYzM2IpLCBUT0JOKDB4YWRmMGM3ZGMsIDB4N2M2MDNkNmMpLAotICAgICAg
ICAgVE9CTigweDBlYzMyZDNiLCAweGZlNzc2NWU1KSwgVE9CTigweGNjYWFiMzU5LCAweGJmMzgw
NDA5KSwKLSAgICAgICAgIFRPQk4oMHhiZGFhODRkNiwgMHg4ZTU5MzE5YyksIFRPQk4oMHhkOWE0
YzI4MCwgMHg5YzgwYzM0ZCksCi0gICAgICAgICBUT0JOKDB4YTlkODk0ODgsIDB4YTA1OWMxNDIp
LCBUT0JOKDB4NmY1YWU3MTQsIDB4ZmYwYjkzNDYpLAotICAgICAgICAgVE9CTigweDA2OGYyMzdk
LCAweDE2ZmIzNjY0KSwgVE9CTigweDU4NTNlNGM0LCAweDM2MzE4NmFjKSwKLSAgICAgICAgIFRP
Qk4oMHhlMmQ4N2QyMywgMHg2M2M1MmY5OCksIFRPQk4oMHgyZWM0YTc2NiwgMHg4MTgyODg3Niks
Ci0gICAgICAgICBUT0JOKDB4NDdiODY0ZmEsIDB4ZTE0ZTdiMWMpLCBUT0JOKDB4MGMwYmMwZTUs
IDB4NjkxOTI0MDgpLAotICAgICAgICAgVE9CTigweGU0ZDc2ODFkLCAweGI4MmU5ZjNlKSwgVE9C
TigweDgzMjAwZjBiLCAweGRmMjVlMTNjKSwKLSAgICAgICAgIFRPQk4oMHg4OTA5OTg0YywgMHg2
NmYyNzI4MCksIFRPQk4oMHg0NjJkN2IwMCwgMHg3NWY3MzIyNyksCi0gICAgICAgICBUT0JOKDB4
ZDkwYmExODgsIDB4ZjI2NTE3OTgpLCBUT0JOKDB4NzRjNmUxOGMsIDB4MzZhYjFjMzQpLAotICAg
ICAgICAgVE9CTigweGFiMjU2ZWEzLCAweDVlZjU0MzU5KSwgVE9CTigweDAzNDY2NjEyLCAweGQx
YWE3MDJmKSwKLSAgICAgICAgIFRPQk4oMHg2MjRkNjA0OSwgMHgyZWQyMmU5MSksIFRPQk4oMHg2
ZmRmZTBiNSwgMHg2ZjA3MjgyMiksCi0gICAgICAgICBUT0JOKDB4ZWVjYTExMTUsIDB4MzljZTIy
NzEpLCBUT0JOKDB4OTgxMDBhNGYsIDB4ZGIwMTYxNGYpLAotICAgICAgICAgVE9CTigweGI2YjBk
YWEyLCAweGEzNWM2MjhmKSwgVE9CTigweGI2Zjk0ZDJlLCAweGM4N2U5YTQ3KSwKLSAgICAgICAg
IFRPQk4oMHhjNjc3MzI1OSwgMHgxZDU3ZDljZSksIFRPQk4oMHhmNzBiZmVlYywgMHgwMzg4NGE3
YiksCi0gICAgICAgICBUT0JOKDB4NWZiMzVjY2YsIDB4ZWQyYmFkMDEpLCBUT0JOKDB4YTE1NWNi
ZTMsIDB4MWRhNmE1YzcpLAotICAgICAgICAgVE9CTigweGMyZTI1OTRjLCAweDMwYTkyZjhmKSwg
VE9CTigweDY0OWM4OWNlLCAweDViZmFmZTQzKSwKLSAgICAgICAgIFRPQk4oMHhkMTU4NjY3ZCwg
MHhlOWZmMjU3YSksIFRPQk4oMHg5YjM1OTYxMSwgMHhmMzJjNTBhZSksCi0gICAgICAgICBUT0JO
KDB4NGIwMGIyMGIsIDB4OTA2MDE0Y2YpLCBUT0JOKDB4ZjNhOGNmZTMsIDB4ODliYzdkM2QpLAot
ICAgICAgICAgVE9CTigweDRmZjIzZmZkLCAweDI0OGE3ZDA2KSwgVE9CTigweDgwYzViZmI0LCAw
eDg3ODg3M2ZhKSwKLSAgICAgICAgIFRPQk4oMHhiN2Q5YWQ5MCwgMHgwNTc0NTk4MSksIFRPQk4o
MHgxNzljODVkYiwgMHgzZGIwMTk5NCksCi0gICAgICAgICBUT0JOKDB4YmE0MWIwNjIsIDB4NjFh
Njk2NmMpLCBUT0JOKDB4NGQ4MmQwNTIsIDB4ZWFkY2U1YTgpLAotICAgICAgICAgVE9CTigweDll
OTFjZDNiLCAweGE1ZTZhMzE4KSwgVE9CTigweDQ3Nzk1ZjRmLCAweDk1YjJkZGEwKSwKLSAgICAg
ICAgIFRPQk4oMHhlY2ZkN2MxZiwgMHhkNTVhODk3YyksIFRPQk4oMHgwMDkxOTRhYiwgMHhiMjkx
MTBmYiksCi0gICAgICAgICBUT0JOKDB4NWYwZTIwNDYsIDB4ZTM4MWQzYjApLCBUT0JOKDB4NWYz
NDI1ZjYsIDB4YTk4ZGQyOTEpLAotICAgICAgICAgVE9CTigweGJmYTA2Njg3LCAweDczMGQ1MGRh
KSwgVE9CTigweDA0MjM0NDZjLCAweDRiMDgzYjdmKSwKLSAgICAgICAgIFRPQk4oMHgzOTdhMjQ3
ZCwgMHhkNjlkMzQxNyksIFRPQk4oMHhlYjYyOWY5MCwgMHgzODdiYTQyYSksCi0gICAgICAgICBU
T0JOKDB4MWVlNDI2Y2MsIDB4ZDVjZDc5YmYpLCBUT0JOKDB4MDAzMjk0MGIsIDB4OTQ2YzZlMTgp
LAotICAgICAgICAgVE9CTigweDFiMWU4YWUwLCAweDU3NDc3ZjU4KSwgVE9CTigweGU5NGY3ZDM0
LCAweDZkODIzMjc4KSwKLSAgICAgICAgIFRPQk4oMHhjNzQ3Y2I5NiwgMHg3ODJiYTIxYSksIFRP
Qk4oMHhjNTI1NDQ2OSwgMHhmNzJiMzNhNSksCi0gICAgICAgICBUT0JOKDB4NzcyZWY2ZGUsIDB4
YzdmODBjODEpLCBUT0JOKDB4ZDczYWNiZmUsIDB4MmNkOWU2YjUpLAotICAgICAgICAgVE9CTigw
eDQwNzViNWIxLCAweDQ5ZWU5MGQ5KSwgVE9CTigweDc4NWMzMzlhLCAweGEwNmU5ZWJhKSwKLSAg
ICAgICAgIFRPQk4oMHhhMTAzMGQ1YiwgMHhhYmY4MjVlMCksIFRPQk4oMHhjZWM2ODRjMywgMHhh
NDI5MzFkYyksCi0gICAgICAgICBUT0JOKDB4NDJhYjYyYzksIDB4YzE1ODZlNjMpLCBUT0JOKDB4
NDU0MzFkNjYsIDB4NWFiNDNmMmIpLAotICAgICAgICAgVE9CTigweDU3YzhiMmMwLCAweDU1Zjc4
MzVkKSwgVE9CTigweDAzM2RhMzM4LCAweGMxYjdmODY1KSwKLSAgICAgICAgIFRPQk4oMHgyODNj
NzUxMywgMHhjYWE3NjA5NyksIFRPQk4oMHgwYTYyNGZhOSwgMHgzNmM4MzkwNiksCi0gICAgICAg
ICBUT0JOKDB4NmIyMGFmZWMsIDB4NzE1YWYyYzcpLCBUT0JOKDB4NGI5Njk5NzQsIDB4ZWJhNzhi
ZmQpLAotICAgICAgICAgVE9CTigweDIyMDc1NWNjLCAweGQ5MjFkNjBlKSwgVE9CTigweDliOTQ0
ZTEwLCAweDdiYWVjYTEzKSwKLSAgICAgICAgIFRPQk4oMHgwNDgxOWQ1MSwgMHg1ZGVkOTNkNCks
IFRPQk4oMHg5YmJmZjg2ZSwgMHg2ZGRkZmQyNyksCi0gICAgICAgICBUT0JOKDB4NmIzNDQxMzAs
IDB4NzdhZGM2MTIpLCBUT0JOKDB4YTc0OTY1MjksIDB4YmJkODAzYTApLAotICAgICAgICAgVE9C
TigweDFhMWJhYWE3LCAweDZkODgwNWJkKSwgVE9CTigweGM4NDAzOTAyLCAweDQ3MDM0M2FkKSwK
LSAgICAgICAgIFRPQk4oMHgzOWY1OWY2NiwgMHgxNzVhZGZmMSksIFRPQk4oMHgwYjI2ZDdmYiwg
MHhiN2Q4YzViNyksCi0gICAgICAgICBUT0JOKDB4YTg3NWY1Y2UsIDB4NTI5ZDc1ZTMpLCBUT0JO
KDB4ODVlZmM3ZTksIDB4NDEzMjVjYzIpLAotICAgICAgICAgVE9CTigweDIxOTUwYjQyLCAweDFm
ZjZhY2QzKSwgVE9CTigweGZmZTcwNDg0LCAweDUzZGM2OTA5KSwKLSAgICAgICAgIFRPQk4oMHhm
ZjRjZDBiMiwgMHgyODc2NjEyNyksIFRPQk4oMHhhYmRiZTYwOCwgMHg0ZmI3ZGIyYiksCi0gICAg
ICAgICBUT0JOKDB4ODM3YzkyMjgsIDB4NWUxMTA5ZTgpLCBUT0JOKDB4MjYxNDdkMjcsIDB4ZjQ2
NDViNWEpLAotICAgICAgICAgVE9CTigweDRkNzhmNTkyLCAweGY3ODE4ZWQ4KSwgVE9CTigweGQz
OTQwNzdlLCAweGYyNDdmYTM2KSwKLSAgICAgICAgIFRPQk4oMHgwZmI5YzJkMCwgMHg0ODhjMTcx
YSksIFRPQk4oMHhhNzhiZmJhYSwgMHgxMzY4NTI3OCksCi0gICAgICAgICBUT0JOKDB4ZWRmYmUy
NjgsIDB4ZDViMWZhNmEpLCBUT0JOKDB4MGRjZWI4ZGIsIDB4MmI3ZWFiYTcpLAotICAgICAgICAg
VE9CTigweGJmOWU4MDg5LCAweDlhZTJiNzEwKSwgVE9CTigweGVmZGU3YWU2LCAweGE0NDQ5Yzk2
KSwKLSAgICAgICAgIFRPQk4oMHg0M2I3NzE2YiwgMHhjYzE0M2E0NiksIFRPQk4oMHhkN2QzNDE5
NCwgMHhjMzYyOGMxMyksCi0gICAgICAgICBUT0JOKDB4NTA4Y2VjMWMsIDB4M2IzZjY0YzkpLCBU
T0JOKDB4ZTIwYmMwYmEsIDB4MWU1ZWRmM2YpLAotICAgICAgICAgVE9CTigweGRhMWRlYjg1LCAw
eDJmNDMxOGQ0KSwgVE9CTigweGQyMGViZTBkLCAweDVjM2ZhNDQzKSwKLSAgICAgICAgIFRPQk4o
MHgzNzBiNGVhNywgMHg3MzI0MWVhMyksIFRPQk4oMHg2MWYxNTExYywgMHg1ZTFhNWY2NSksCi0g
ICAgICAgICBUT0JOKDB4OTlhNWUyM2QsIDB4ODI2ODFjNjIpLCBUT0JOKDB4ZDczMWUzODMsIDB4
YTJmNTRjMmQpLAotICAgICAgICAgVE9CTigweDI2OTJmMzZlLCAweDgzNDQ1OTA0KSwgVE9CTigw
eDJlMGVjNDY5LCAweGFmNDVmOWMwKSwKLSAgICAgICAgIFRPQk4oMHg5MDVhMzIwMSwgMHhjNjc1
MjhiNyksIFRPQk4oMHg4OGY3N2YzNCwgMHhkMGU1ZTU0MiksCi0gICAgICAgICBUT0JOKDB4ZjY3
YThkMjksIDB4NTg2NDY4N2MpLCBUT0JOKDB4MjNiOTJlYWUsIDB4MjJkZjM1NjIpLAotICAgICAg
ICAgVE9CTigweDVjMjcwMTRiLCAweDliYmVjMzllKSwgVE9CTigweDdlZjJmMjI2LCAweDljMGYw
ZjhkKSwKLSAgICAgICAgIFRPQk4oMHg5NzM1OTYzOCwgMHg1NDZjNGQ4ZCksIFRPQk4oMHg1Zjlj
M2ZjNCwgMHg5MmYyNDY3OSksCi0gICAgICAgICBUT0JOKDB4OTEyZThiZWQsIDB4YThjOGFjZDkp
LCBUT0JOKDB4ZWMzYTMxOGQsIDB4MzA2NjM0YjApLAotICAgICAgICAgVE9CTigweDgwMTY3ZjQx
LCAweGMzMWNiMjY0KSwgVE9CTigweDNkYjgyZjZmLCAweDUyMjExM2YyKSwKLSAgICAgICAgIFRP
Qk4oMHhiMTU1YmNkMiwgMHhkY2FmZTE5NyksIFRPQk4oMHhmYmExZGE1OSwgMHg0MzQ2NTI4Myks
Ci0gICAgICAgICBUT0JOKDB4YTA0MjViOGUsIDB4YjIxMmNmNTMpLCBUT0JOKDB4NGYyZTUxMmUs
IDB4Zjg1NTdjNWYpLAotICAgICAgICAgVE9CTigweGMxMjg2ZmY5LCAweDI1YzRkNTZjKSwgVE9C
TigweGJiOGEwZmVhLCAweGVlMjZjODUxKSwKLSAgICAgICAgIFRPQk4oMHhjMjhmNzBkMiwgMHhl
N2Q2MTA3ZSksIFRPQk4oMHg3ZWUwYzQ0NCwgMHhlNzYyNjVhYSksCi0gICAgICAgICBUT0JOKDB4
M2RmMjc3YTQsIDB4MWQxOTM2YjEpLCBUT0JOKDB4MWE1NTZlM2YsIDB4ZWE5NTk1ZWIpLAotICAg
ICAgICAgVE9CTigweDI1OGJiYmY5LCAweGU3MzA1NjgzKSwgVE9CTigweDMxZWVhNWJmLCAweDA3
ZWY1YmU2KSwKLSAgICAgICAgIFRPQk4oMHgwZGViMGU0YSwgMHg0NmM4MTRjMSksIFRPQk4oMHg1
Y2VlODQ0OSwgMHhhN2I3MzBkZCksCi0gICAgICAgICBUT0JOKDB4ZWFiNDk1YzUsIDB4YTAxODJi
ZGUpLCBUT0JOKDB4ZWU3NTlmODcsIDB4OWUyN2E2YjQpLAotICAgICAgICAgVE9CTigweGMyY2Y2
YTY4LCAweDgwZTUxOGNhKSwgVE9CTigweDI1ZTgwMTNmLCAweGYxNGNmM2Y0KSwKLSAgICAgICAg
IFRPQk4oMHg4ZmM0NDE0MCwgMHg3ZThkN2ExNCksIFRPQk4oMHhiYjFmZjNjYSwgMHg5NTU2ZjM2
YSksCi0gICAgICAgICBUT0JOKDB4NmE4NDQzODUsIDB4MTQ2MDAwNDQpLCBUT0JOKDB4YmEzZjBj
NGEsIDB4NzQ1MWFlNjMpLAotICAgICAgICAgVE9CTigweGRmY2FjMjViLCAweDFmOWFmMzJhKSwg
VE9CTigweDAxZTBkYjg2LCAweGIxZjIyMTRiKSwKLSAgICAgICAgIFRPQk4oMHg0ZTlhNWJjMiwg
MHhhNGI1OTZhYyksIFRPQk4oMHg4MzkyNzY4MSwgMHgwMjZjMmMwOCksCi0gICAgICAgICBUT0JO
KDB4M2VjODMyZTcsIDB4N2FjYWNhMjgpLCBUT0JOKDB4MWJmZWVhNTcsIDB4YzczODViMjkpLAot
ICAgICAgICAgVE9CTigweDA2ODIxMmUzLCAweGZkMWVhZjM4KSwgVE9CTigweGMxMzI5ODMwLCAw
eDZhY2Y4Y2NjKSwKLSAgICAgICAgIFRPQk4oMHhiOTA5ZjJkYiwgMHgyYWFjOWU1OSksIFRPQk4o
MHg1NzQ4MDYwZCwgMHhiNjYxNzgyYSksCi0gICAgICAgICBUT0JOKDB4YzVhYjI2MzIsIDB4Yzc5
YjdhMDEpLCBUT0JOKDB4ZGE0NGM2YzYsIDB4MDAwMTc2MjYpLAotICAgICAgICAgVE9CTigweGYy
NmMwMGU4LCAweGE3ZWE4MmYwKSwgVE9CTigweDk5Y2FjODBkLCAweGU0Mjk5YWFmKSwKLSAgICAg
ICAgIFRPQk4oMHhkNjZmZTNiNiwgMHg3ZWQ3OGJlMSksIFRPQk4oMHgzMDVmNzI1ZiwgMHg2NDhk
MDJjZCksCi0gICAgICAgICBUT0JOKDB4MzNlZDFiYzQsIDB4NjIzZmIyMWIpLCBUT0JOKDB4ZmE3
MDUzM2UsIDB4N2E2MzE5YWQpLAotICAgICAgICAgVE9CTigweDE3YWI1NjJkLCAweGJlNWZmYjNl
KSwgVE9CTigweDA2Mzc0OTk0LCAweDU2Njc0NzQxKSwKLSAgICAgICAgIFRPQk4oMHg2OWQ0NGVk
NiwgMHg1YzQ2YWE4ZSksIFRPQk4oMHgyMTAwZDVkMywgMHhhOGQwNjNkMSksCi0gICAgICAgICBU
T0JOKDB4Y2I5NzI3ZWEsIDB4YTJkMTdjMzYpLCBUT0JOKDB4NGMyYmFiMWIsIDB4OGFkZDUzYjcp
LAotICAgICAgICAgVE9CTigweGEwODRlOTBjLCAweDE1NDI2NzA0KSwgVE9CTigweDc3OGFmY2Qz
LCAweGE4MzdlYmVhKSwKLSAgICAgICAgIFRPQk4oMHg2NjUxZjcwMSwgMHg3Y2U0NzdmOCksIFRP
Qk4oMHhhMDYyNDk5OCwgMHg0NmZiN2E4YiksCi0gICAgICAgICBUT0JOKDB4ZGMxZTY4MjgsIDB4
ZWQ4YTZlMTkpLCBUT0JOKDB4MzNmYzIzMzYsIDB4NDE4OWQ5YzcpLAotICAgICAgICAgVE9CTigw
eDAyNmY4ZmUyLCAweDY3MWMzOWJjKSwgVE9CTigweGQ0MGM0Y2NkLCAweGJjNmY5OTE1KSwKLSAg
ICAgICAgIFRPQk4oMHhhZmExMzViYiwgMHhmODBlNzVjYSksIFRPQk4oMHgxMmM2NTFhMCwgMHgy
MmFkZmYyYyksCi0gICAgICAgICBUT0JOKDB4YzQwYTA0YmQsIDB4NGY1MWFkOTYpLCBUT0JOKDB4
MDQ4MjAxMDksIDB4YmJlNGU4MzIpLAotICAgICAgICAgVE9CTigweDM2NjdlYjFhLCAweDdmNGMw
NGNjKSwgVE9CTigweDU5NTU2NjIxLCAweGE5NDA0Zjg0KSwKLSAgICAgICAgIFRPQk4oMHg3MWNk
ZjY1MywgMHg3ZWNlYjUwYSksIFRPQk4oMHg5OTRhNDRhNiwgMHg5YjgzMzVmYSksCi0gICAgICAg
ICBUT0JOKDB4ZDdmYWY4MTksIDB4ZGJlYjliNjkpLCBUT0JOKDB4NDczYzU2ODAsIDB4ZWVkNDM1
MGQpLAotICAgICAgICAgVE9CTigweGI2NjU4NDY2LCAweGRhNDRiYmEyKSwgVE9CTigweDBkMWJj
NzgwLCAweDg3MmJkYmYzKSwKLSAgICAgICAgIFRPQk4oMHhlNTM1ZjE3NSwgMHhhMTk2MmY5MSks
IFRPQk4oMHg2ZWQ3ZTA2MSwgMHhlZDU4ZjVhNyksCi0gICAgICAgICBUT0JOKDB4MTc3YWE0YzAs
IDB4MjA4OWEyMzMpLCBUT0JOKDB4MGRiY2IwM2EsIDB4ZTUzOWI0MTMpLAotICAgICAgICAgVE9C
TigweGUzZGM0MjRlLCAweGJiMzJlMzhlKSwgVE9CTigweDY0NzJlNWVmLCAweDY4MDY3MDFlKSwK
LSAgICAgICAgIFRPQk4oMHhkZDQ3ZmY5OCwgMHg4MTRiZTllZSksIFRPQk4oMHg2YjYwY2ZmZiwg
MHgzNWFjZTAwOSksCi0gICAgICAgICBUT0JOKDB4YjhkM2Q5MzEsIDB4OWZmOTFmZTUpLCBUT0JO
KDB4MDM5YzQ4MDAsIDB4ZjA1MThlZWQpLAotICAgICAgICAgVE9CTigweDk1YzM3NjMyLCAweDkx
ODJjYjI2KSwgVE9CTigweDA3NjNhNDM0LCAweDgyZmM1NjhkKSwKLSAgICAgICAgIFRPQk4oMHg3
MDdjMDRkNSwgMHgzODNlNzZiYSksIFRPQk4oMHhhYzk4YjkzMCwgMHg4MjRlODE5NyksCi0gICAg
ICAgICBUT0JOKDB4OTJiZjdjOGYsIDB4OTEyMzBkZTApLCBUT0JOKDB4OTA4NzZhMDEsIDB4NDA5
NTliNzApLAotICAgICAgICAgVE9CTigweGRiNmQ5NmYzLCAweDA1OTY4YjgwKSwgVE9CTigweDM4
MGEwOTEzLCAweDA4OWY3M2I5KSwKLSAgICAgICAgIFRPQk4oMHg3ZGE3MGI4MywgMHhjMmM2MWUw
MSksIFRPQk4oMHg5NWZiODM5NCwgMHg1NjliMzhjNyksCi0gICAgICAgICBUT0JOKDB4OWEzYzY1
MTIsIDB4ODBlZGZlMmYpLCBUT0JOKDB4OGY3MjZiYjksIDB4OGZhZWFmODIpLAotICAgICAgICAg
VE9CTigweDgwMTBhNGEwLCAweDc4NDI0YmY4KSwgVE9CTigweDI5NjcyMDQ0LCAweDBlODQ0OTcw
KX0sCi0gICAgICAgIHtUT0JOKDB4NjNjNWNiODEsIDB4N2EyYWQ2MmEpLCBUT0JOKDB4N2VmMmI2
YjksIDB4YWM2MmZmNTQpLAotICAgICAgICAgVE9CTigweDM3NDliYmE0LCAweGIzYWQ5ZGI1KSwg
VE9CTigweGFkMzExZjJjLCAweDQ2ZDVhNjE3KSwKLSAgICAgICAgIFRPQk4oMHhiNzdhODA4Nywg
MHhjMmZmM2I2ZCksIFRPQk4oMHhiNDZmZWFmMywgMHgzNjc4MzRmZiksCi0gICAgICAgICBUT0JO
KDB4ZjhhYTI2NmQsIDB4NzVkNmIxMzgpLCBUT0JOKDB4ZmEzOGQzMjAsIDB4ZWMwMDgxODgpLAot
ICAgICAgICAgVE9CTigweDQ4NmQ4ZmZhLCAweDY5Njk0NmZjKSwgVE9CTigweDUwZmJjNmQ4LCAw
eGI5Y2JhNTZkKSwKLSAgICAgICAgIFRPQk4oMHg3ZTNkNDIzZSwgMHg5MGYzNWExNSksIFRPQk4o
MHg3YzNkYTE5NSwgMHhjMGRkOTYyYyksCi0gICAgICAgICBUT0JOKDB4ZTY3M2ZkYjAsIDB4M2Nm
ZDVkOGIpLCBUT0JOKDB4MDcwNGI3YzIsIDB4ODg5ZGZjYTUpLAotICAgICAgICAgVE9CTigweGY2
Y2U1ODFmLCAweGY1MjMwNWFhKSwgVE9CTigweDM5OWQ0OWViLCAweDkxNGQ1ZTUzKSwKLSAgICAg
ICAgIFRPQk4oMHgzODBhNDk2ZCwgMHg2ZWMyOTNjZCksIFRPQk4oMHg3MzNkYmRhNywgMHg4ZTcw
NTFmNSksCi0gICAgICAgICBUT0JOKDB4MDM3ZTM4OGQsIDB4Yjg0OTE0MGEpLCBUT0JOKDB4ZWU0
YjMyYjAsIDB4NTk0NmRiZjYpLAotICAgICAgICAgVE9CTigweGIxYzRmZGE5LCAweGNhZTM2OGQx
KSwgVE9CTigweDUwMDFhN2IwLCAweGZkYjBiMmYzKSwKLSAgICAgICAgIFRPQk4oMHg2ZGY1OTM3
NCwgMHgyZTNhYzQ2ZSksIFRPQk4oMHg0YWY2NzVmMiwgMHgzOWIzZTY1NiksCi0gICAgICAgICBU
T0JOKDB4NDRlMzgxMTAsIDB4Mzk5NDkyOTYpLCBUT0JOKDB4NWI2MzgyN2IsIDB4MzYxZGIxYjUp
LAotICAgICAgICAgVE9CTigweDNlNTMyM2VkLCAweDIwNmVhZmY1KSwgVE9CTigweDk0MjM3MGQy
LCAweGMyMWY0MjkwKSwKLSAgICAgICAgIFRPQk4oMHhmMmNhYWYyZSwgMHhlMGQ5ODVhMSksIFRP
Qk4oMHgxOTJjYzY0YiwgMHg3MjM5ODQ2ZCksCi0gICAgICAgICBUT0JOKDB4N2MwYjhmNDcsIDB4
YWU2MzEyZjgpLCBUT0JOKDB4N2RjNjFmOTEsIDB4OTY2MjAxMDgpLAotICAgICAgICAgVE9CTigw
eGI4MzBmYjViLCAweGMyZGE3ZGU5KSwgVE9CTigweGQwZTY0M2RmLCAweDBmZjhkM2JlKSwKLSAg
ICAgICAgIFRPQk4oMHgzMWVlNzdiYSwgMHgxODhhOTY0MSksIFRPQk4oMHg0ZThhYTNhYSwgMHhi
Y2Y2ZDUwMiksCi0gICAgICAgICBUT0JOKDB4ZjlmYjY1MzIsIDB4OWE0OTExMGYpLCBUT0JOKDB4
ZDE4MzE3ZjYsIDB4MmRkNmIyMjApLAotICAgICAgICAgVE9CTigweDdlM2NlZDQxLCAweDUyYzNl
YTVhKSwgVE9CTigweDBkMjk2YTE0LCAweDdkNTc5YzRhKSwKLSAgICAgICAgIFRPQk4oMHgzNWQ2
YTUzZSwgMHhlZDRjMzcxNyksIFRPQk4oMHg5ZjgyNDBjZiwgMHgzZDBlZDJhMyksCi0gICAgICAg
ICBUT0JOKDB4OGMwZDRkMDUsIDB4ZTU1NDNhYTUpLCBUT0JOKDB4NDVkNWJiZmIsIDB4ZGQzM2I0
YjQpLAotICAgICAgICAgVE9CTigweGZhMDRjYzczLCAweDEzN2ZkMjhlKSwgVE9CTigweDg2MmFj
NmVmLCAweGM3M2IzZmZkKSwKLSAgICAgICAgIFRPQk4oMHg0MDNmZjlmNSwgMHgzMWY1MWVmMiks
IFRPQk4oMHgzNGQ1ZTBmYywgMHhiYzczZjVhMiksCi0gICAgICAgICBUT0JOKDB4ZjI1MjY4MjAs
IDB4MDg5MTNmNGYpLCBUT0JOKDB4ZWEyMGVkNjEsIDB4ZWFjOTNkOTUpLAotICAgICAgICAgVE9C
TigweDUxZWQzOGI0LCAweDZjYTZiMjZjKSwgVE9CTigweDg2NjJkY2JjLCAweGVhNDMyN2IwKSwK
LSAgICAgICAgIFRPQk4oMHg2ZGFmMjk1YywgMHg3MjVkMmFhYSksIFRPQk4oMHhiYWQyNzUyZiwg
MHg4ZTUyZGNkYSksCi0gICAgICAgICBUT0JOKDB4MjIxMGU3MjEsIDB4MGIxN2RhY2MpLCBUT0JO
KDB4YTM3Zjc5MTIsIDB4ZDUxZTgyMzIpLAotICAgICAgICAgVE9CTigweDRmNzA4MWUxLCAweDQ0
Y2MzYWRkKSwgVE9CTigweGQ1ZmZhMWQ2LCAweDg3YmU4MmNmKSwKLSAgICAgICAgIFRPQk4oMHg4
OTg5MGI2YywgMHgwZWRkNjQ3MiksIFRPQk4oMHhhZGEyNmUxYSwgMHgzZWQxNzg2MyksCi0gICAg
ICAgICBUT0JOKDB4Mjc2ZjI3MTUsIDB4NjM0ODNjYWEpLCBUT0JOKDB4ZTY5MjRjZDksIDB4MmY2
MDc3ZmQpLAotICAgICAgICAgVE9CTigweDA1YTdmZTk4LCAweDBhNDY2ZTNjKSwgVE9CTigweGYx
Yzc5NGIwLCAweGIxOTAyZDFmKSwKLSAgICAgICAgIFRPQk4oMHhlNTIxMzY4OCwgMHg4MmE4MDQy
YyksIFRPQk4oMHhkOTMxY2ZhZiwgMHhjZDI3ODI5OCksCi0gICAgICAgICBUT0JOKDB4MDY5YTBh
ZTAsIDB4ZjU5N2E3NDApLCBUT0JOKDB4MGFkYmIzZjMsIDB4ZWI1OTEwN2MpLAotICAgICAgICAg
VE9CTigweDk4M2U5NTFlLCAweDVlYWE4ZWI4KSwgVE9CTigweGU2NjNhOGI1LCAweDExYjQ4ZTc4
KSwKLSAgICAgICAgIFRPQk4oMHgxNjMxY2MwZCwgMHg4YTAzZjJjNSksIFRPQk4oMHg3NTc3YzEx
ZSwgMHgxMWUyNzFlMiksCi0gICAgICAgICBUT0JOKDB4MzNiMjM4NWMsIDB4MDgzNjlhOTApLCBU
T0JOKDB4Mjk5MGM1OWIsIDB4MTkwZWI0ZjgpLAotICAgICAgICAgVE9CTigweDgxOWE2MTQ1LCAw
eGM2OGVhYzgwKSwgVE9CTigweDdhNzg2ZDYyLCAweDJlYzRhMDE0KSwKLSAgICAgICAgIFRPQk4o
MHgzM2ZhYWRiZSwgMHgyMGFjM2E4ZCksIFRPQk4oMHgzMWEyMTc4MSwgMHg1YWJhMmQzMCksCi0g
ICAgICAgICBUT0JOKDB4MjA5ZDI3NDIsIDB4ZGJhNGY1NjUpLCBUT0JOKDB4ZGIyY2U5ZTMsIDB4
NTVhYTBmYmIpLAotICAgICAgICAgVE9CTigweDhjZWYzMzRiLCAweDE2ODk4NGRmKSwgVE9CTigw
eGU4MWRjZTE3LCAweDMzODc5NjM4KSwKLSAgICAgICAgIFRPQk4oMHhmNmU2OTQ5YywgMHgyNjM3
MjBmMCksIFRPQk4oMHg1YzU2ZmVhZiwgMHhmNTkzY2JlYyksCi0gICAgICAgICBUT0JOKDB4OGJm
ZjU2MDEsIDB4ZmRlNThjODQpLCBUT0JOKDB4NzRlMjQxMTcsIDB4MmVjY2IzMTQpLAotICAgICAg
ICAgVE9CTigweGJjZjAxYjYxLCAweDRjOWE4YTc4KSwgVE9CTigweGEyMzNlMzVlLCAweDU0NGM5
ODY4KSwKLSAgICAgICAgIFRPQk4oMHhiMzE1NmJmMywgMHg4YmQ3YWZmMSksIFRPQk4oMHgxYjVl
ZTRjYiwgMHgxZDgxYjE0NiksCi0gICAgICAgICBUT0JOKDB4N2JhMWFjNDEsIDB4ZDYyOGE5MTUp
LCBUT0JOKDB4OGYzYThmOWMsIDB4ZmQ4OTY5OWUpLAotICAgICAgICAgVE9CTigweDczMjliOWM5
LCAweGEwNzQ4YmU3KSwgVE9CTigweDFkMzkxYzk1LCAweGE5MmU2MjFmKSwKLSAgICAgICAgIFRP
Qk4oMHhlNTFlNmIyMSwgMHg0ZDEwYTgzNyksIFRPQk4oMHhkMjU1ZjUzYSwgMHg0OTQ3YjQzNSks
Ci0gICAgICAgICBUT0JOKDB4MDc2NjllMDQsIDB4ZjE3ODhlZTMpLCBUT0JOKDB4YzE0ZjI3YWYs
IDB4YTg2OTM4YTIpLAotICAgICAgICAgVE9CTigweDhiNDdhMzM0LCAweGU5M2EwMWMwKSwgVE9C
TigweGZmNjI3NDM4LCAweGQ5MzY2ODA4KSwKLSAgICAgICAgIFRPQk4oMHg3YTA5ODVkOCwgMHhj
YTJhNTk2NSksIFRPQk4oMHgzZDlhNTU0MiwgMHhkNmU5YjliMyksCi0gICAgICAgICBUT0JOKDB4
YzIzZWI4MGIsIDB4NGNmOTcyZTgpLCBUT0JOKDB4NWMxYzMzYmIsIDB4NGZkZjcyZmQpLAotICAg
ICAgICAgVE9CTigweDBjNGE1OGQ0LCAweDc0YTg2MTA4KSwgVE9CTigweGY4MDQ4YThmLCAweGVl
NGM1ZDkwKSwKLSAgICAgICAgIFRPQk4oMHhlM2M3YzkyNCwgMHhlODZkNGM4MCksIFRPQk4oMHgy
OGM4ODlkZSwgMHgwNTZhMWU2MCksCi0gICAgICAgICBUT0JOKDB4NTdlMjY2MmUsIDB4YjIxNGEw
NDApLCBUT0JOKDB4ZThjNDhlOTgsIDB4MzdlMTAzNDcpLAotICAgICAgICAgVE9CTigweDg3NzQy
ODYyLCAweDgwYWM3NDhhKSwgVE9CTigweGYxYzI0MDIyLCAweDE4NmIwNmYyKSwKLSAgICAgICAg
IFRPQk4oMHhhYzJkZDRjMywgMHg1Zjc0MDQwYSksIFRPQk4oMHg0MDlhZWI3MSwgMHhmY2VhYzk1
NyksCi0gICAgICAgICBUT0JOKDB4NGZiYWQ3ODIsIDB4NTVjNGVjMjMpLCBUT0JOKDB4YjM1OWVk
NjEsIDB4OGE3Yjc2ZWMpLAotICAgICAgICAgVE9CTigweDEyNzQ0OTI2LCAweGVkNmY0YTYwKSwg
VE9CTigweGUyMWU4ZDdmLCAweDRiOTEyZGUzKSwKLSAgICAgICAgIFRPQk4oMHhlMjU3NWE1OSwg
MHhmYzcwNWE1OSksIFRPQk4oMHg3MmYxZDRkZSwgMHhlZDJkYmMwZSksCi0gICAgICAgICBUT0JO
KDB4M2QyYjI0YjksIDB4ZWI3OTI2YjgpLCBUT0JOKDB4YmZmODhjYjMsIDB4Y2RiZTU1MDkpLAot
ICAgICAgICAgVE9CTigweGQwZjM5OWFmLCAweGU0ZGQ2NDBiKSwgVE9CTigweDNjNWZlMTMwLCAw
eDJmNzZlZDQ1KSwKLSAgICAgICAgIFRPQk4oMHg2ZjM1NjJmNCwgMHgzNzY0ZmIzZCksIFRPQk4o
MHg3YjVhZjMxOCwgMHgzMTUxYjYyZCksCi0gICAgICAgICBUT0JOKDB4ZDViZDBiYzcsIDB4ZDc5
Y2U1ZjMpLCBUT0JOKDB4ZmRhZjZiMjAsIDB4ZWM2Njg5MGYpLAotICAgICAgICAgVE9CTigweDcz
NWM2N2VjLCAweDYwNjM1NDBjKSwgVE9CTigweDUwYjI1OWMyLCAweGU1ZjljYjhmKSwKLSAgICAg
ICAgIFRPQk4oMHhiODczNGY5YSwgMHgzZjk5YzZhYiksIFRPQk4oMHhmOGNjMTNkNSwgMHhhM2E3
YmM4NSksCi0gICAgICAgICBUT0JOKDB4ODBjMWIzMDUsIDB4YzUyMTc2NTkpLCBUT0JOKDB4ZmU1
MzY0ZDQsIDB4NGVjMTJhNTQpLAotICAgICAgICAgVE9CTigweGJkODcwNDVlLCAweDY4MTM0NWZl
KSwgVE9CTigweDdmOGVmZWIxLCAweDU4MmY4OTdmKSwKLSAgICAgICAgIFRPQk4oMHhlOGNiZjFl
NSwgMHhkNTkyMzM1OSksIFRPQk4oMHhkYjBjZWE5ZCwgMHg1MzliOWZiMCksCi0gICAgICAgICBU
T0JOKDB4MGM1YjM0Y2YsIDB4NDk4NTliOTgpLCBUT0JOKDB4NWU1ODNjNTYsIDB4YTQ0MDNjYzYp
LAotICAgICAgICAgVE9CTigweDExZmMxYTJkLCAweGQ0ODE4NWI3KSwgVE9CTigweGM5M2ZiYzdl
LCAweDZlNTIxNzg3KSwKLSAgICAgICAgIFRPQk4oMHg0N2U3YTA1OCwgMHgwNTEwNWI4YiksIFRP
Qk4oMHg3YjRkNGQ1OCwgMHhkYjgyNjBjOCksCi0gICAgICAgICBUT0JOKDB4ZTMzOTMwYjAsIDB4
NDZlYjg0MmEpLCBUT0JOKDB4OGU4NDRhOWEsIDB4N2JkYWU1NmQpLAotICAgICAgICAgVE9CTigw
eDM0ZWYzYTllLCAweDEzZjdmZGZjKSwgVE9CTigweGIzNzY4ZjgyLCAweDYzNmNhMTc2KSwKLSAg
ICAgICAgIFRPQk4oMHgyODIxZjRlMCwgMHg0ZTA5ZTYxYyksIFRPQk4oMHg0MTRkYzNhMSwgMHhh
MGM3Y2RkYyksCi0gICAgICAgICBUT0JOKDB4ZDUzNzk0MzcsIDB4NTQ5NDVmY2QpLCBUT0JOKDB4
MTUxYjZlZWYsIDB4YjM1NTVmZjEpLAotICAgICAgICAgVE9CTigweGIzMWJkNjEzLCAweDYzMzlj
MDgzKSwgVE9CTigweDM5ZmY4MTU1LCAweGRmYjY0NzAxKSwKLSAgICAgICAgIFRPQk4oMHg3YzMz
ODhkMiwgMHhlMjk2MDRhYiksIFRPQk4oMHgxZTE5MDg0YiwgMHhhNmIxMDQ0MiksCi0gICAgICAg
ICBUT0JOKDB4MTdjZjU0YzAsIDB4ZWNjZDQ3ZWYpLCBUT0JOKDB4ODk2OTMzODUsIDB4NGE1ZGZi
MzApLAotICAgICAgICAgVE9CTigweDY5ZDAyM2ZiLCAweDQ3ZGFmOWY2KSwgVE9CTigweDkyMjI4
NDBiLCAweDdkOTFkOTU5KSwKLSAgICAgICAgIFRPQk4oMHg0MzkxMDhmNSwgMHg4MDNiYWM2Miks
IFRPQk4oMHgwYjdkZDkxZCwgMHgzNzliZDQ1ZiksCi0gICAgICAgICBUT0JOKDB4ZDY1MWU4Mjcs
IDB4Y2E2M2M1ODEpLCBUT0JOKDB4NWM1ZDc1ZjYsIDB4NTA5YzEwNGYpLAotICAgICAgICAgVE9C
TigweDdkNWZjNzM4LCAweDFmMmRjMzA4KSwgVE9CTigweDIwZmFhN2JmLCAweGQ5ODQ1NGJlKSwK
LSAgICAgICAgIFRPQk4oMHg5NTM3NGJlZSwgMHhhNTE3YjAzMSksIFRPQk4oMHhmMDM2YjliMSwg
MHg2NDI2OTJhYyksCi0gICAgICAgICBUT0JOKDB4YzUxMDYxMDksIDB4Mzk4NDIxOTQpLCBUT0JO
KDB4YjdlMjM1M2UsIDB4NDlkMDUyOTUpLAotICAgICAgICAgVE9CTigweGZjOGMxZDVjLCAweGVm
YjQyZWUwKSwgVE9CTigweGUwNDg4NGViLCAweDA4Y2U4MTFjKSwKLSAgICAgICAgIFRPQk4oMHhm
MWY3NWQ4MSwgMHg3NDE5ZjQwZSksIFRPQk4oMHg1YjBhYzE2MiwgMHhhOTk1YzI0MSksCi0gICAg
ICAgICBUT0JOKDB4MTIwOTIxYmIsIDB4YzRjNTU2NDYpLCBUT0JOKDB4NzEzNTIwYzIsIDB4OGQz
M2NmOTcpLAotICAgICAgICAgVE9CTigweGI0YTY1YTVjLCAweGU5OGM1MTAwKSwgVE9CTigweDZj
ZWM4NzFkLCAweDJkZGQwZjVhKSwKLSAgICAgICAgIFRPQk4oMHgyNTFmMGI3ZiwgMHg5YmEyZTc4
YiksIFRPQk4oMHgyMjRhODQzNCwgMHhjZTNhMmE1ZiksCi0gICAgICAgICBUT0JOKDB4MjY4Mjdm
NjEsIDB4MjVmNWM0NmYpLCBUT0JOKDB4NmEyMmJlZGMsIDB4NDg1NDVlYzApLAotICAgICAgICAg
VE9CTigweDI1YWU1ZmEwLCAweGIxYmI1Y2RjKSwgVE9CTigweGQ2OTM2ODJmLCAweGZjYjliOThm
KSwKLSAgICAgICAgIFRPQk4oMHgzMjAyN2ZlOCwgMHg5MWU1ZDdkMyksIFRPQk4oMHhmMTRiN2Qx
NywgMHg3M2EwNzY3OCksCi0gICAgICAgICBUT0JOKDB4Zjg4NDk3YjMsIDB4YzBkZmRkNjEpLCBU
T0JOKDB4ZjdjMmVlYzAsIDB4MmE4YzRmNDgpLAotICAgICAgICAgVE9CTigweGFhNTU3M2Y0LCAw
eDM3NTZlNjIxKSwgVE9CTigweGMwMTNhMjQwLCAweDE4MjViOTQ4KSwKLSAgICAgICAgIFRPQk4o
MHgxYzAzYjM0NSwgMHg2Mzg3ODU3MiksIFRPQk4oMHhhMDQ3MmJlYSwgMHg2NTNhNDE4NCksCi0g
ICAgICAgICBUT0JOKDB4ZjQyMjJlMjcsIDB4MGFjNjlhODApLCBUT0JOKDB4MzQwOTZkMjUsIDB4
ZjUxZTU0ZjYpLAotICAgICAgICAgVE9CTigweDAwYTY0OGNiLCAweDhmZmZhNTkxKSwgVE9CTigw
eDRlODdhY2RjLCAweDY5YjY1MjdmKSwKLSAgICAgICAgIFRPQk4oMHgwNTc1ZTAzNywgMHhlMjg1
Y2NiNCksIFRPQk4oMHgxODgwODllNCwgMHg1MGRkY2Y1MiksCi0gICAgICAgICBUT0JOKDB4YWE5
NmM5YTgsIDB4ODcwZmY3MTkpLCBUT0JOKDB4NzRhNTZjZDgsIDB4MWZjN2UzNjkpLAotICAgICAg
ICAgVE9CTigweDQxZDA0ZWUyLCAweDE3MjY5MzFhKSwgVE9CTigweDBiYmJiMmM4LCAweDM2NjBl
Y2ZkKSwKLSAgICAgICAgIFRPQk4oMHhhNmVmNmRlNSwgMHgyNDgxOGUxOCksIFRPQk4oMHhlNDIx
Y2M1MSwgMHhlN2Q1Nzg4NyksCi0gICAgICAgICBUT0JOKDB4ZjEyN2QyMDgsIDB4YmVhODdiZTYp
LCBUT0JOKDB4MTZhNDc1ZDMsIDB4YjFjZGQ2ODIpLAotICAgICAgICAgVE9CTigweDlkYjFiNjg0
LCAweDQzOWI2M2Y3KSwgVE9CTigweDUzNTliM2RiLCAweGYwZjExM2I2KSwKLSAgICAgICAgIFRP
Qk4oMHhkZmNjZjFkZSwgMHg4YmYwNmUzMSksIFRPQk4oMHgxZmRmOGY0NCwgMHhkZDM4MzkwMSks
Ci0gICAgICAgICBUT0JOKDB4MTA3NzVjYWQsIDB4NTAxN2U3ZDIpLCBUT0JOKDB4ZGZjM2E1OTcs
IDB4NThkMTFlZWYpLAotICAgICAgICAgVE9CTigweDZlYzljOGEwLCAweGIxZWNmZjEwKSwgVE9C
TigweGVlNmVkNmNjLCAweDI4NDAwNTQ5KSwKLSAgICAgICAgIFRPQk4oMHhiNWFkN2JhZSwgMHgx
YjRmOGQ3MyksIFRPQk4oMHg2MWI0ZjExZCwgMHhlMDBhYWFiOSksCi0gICAgICAgICBUT0JOKDB4
N2IzMmQ2OWIsIDB4ZDRlZmYyZDcpLCBUT0JOKDB4ODhhZTY3NzEsIDB4NDI4OGI2MGYpLAotICAg
ICAgICAgVE9CTigweDE1OTQ2MWI0LCAweDM3YTFlNzIzKSwgVE9CTigweDFmM2Q0Nzg5LCAweDU3
MGFhZThjKSwKLSAgICAgICAgIFRPQk4oMHg4NjkxMThjMCwgMHg3Zjk4NzFkYSksIFRPQk4oMHgz
NWZiZGE3OCwgMHhmNjM1ZTI3OCksCi0gICAgICAgICBUT0JOKDB4NzM4ZjM2NDEsIDB4ZTE1NDFk
YWMpLCBUT0JOKDB4Njc5NGIxM2EsIDB4YzBkYWU0NWYpLAotICAgICAgICAgVE9CTigweDA2NTA2
NGFjLCAweDA5Y2MwOTE3KSwgVE9CTigweDI3YzUzNzI5LCAweGM2ODU0MGZkKSwKLSAgICAgICAg
IFRPQk4oMHgwZDJkNGM4ZSwgMHhlZjIyNzY3MSksIFRPQk4oMHhkMjNhOWY4MCwgMHhhMTc4NWEw
NCksCi0gICAgICAgICBUT0JOKDB4OThjNTk1MjgsIDB4NTI2NTAzNTkpLCBUT0JOKDB4ZmEwOWFk
MDEsIDB4NzRhMWFjYWQpLAotICAgICAgICAgVE9CTigweDA4MmQ1YTI5LCAweDBiNTViZjVjKSwg
VE9CTigweGE0MGYxYzY3LCAweDQxOWI4MDg0KSwKLSAgICAgICAgIFRPQk4oMHgzYTVjNzUyZSwg
MHhkY2MxODc3MCksIFRPQk4oMHg0YmFmMWYyZiwgMHg4ODI1YzNhNSksCi0gICAgICAgICBUT0JO
KDB4ZWJkNjNmNzQsIDB4MjFiMTUzZWQpLCBUT0JOKDB4YTIzODNlNDcsIDB4YjJmNjQ3MjMpLAot
ICAgICAgICAgVE9CTigweGU3YmY2MjBhLCAweDI2NDZkMTlhKSwgVE9CTigweDU2Y2I0NGVjLCAw
eDAzYzgzZmZkKSwKLSAgICAgICAgIFRPQk4oMHhhZjcyNjdjOSwgMHg0ZjZiZTlmMSksIFRPQk4o
MHg4YjJkZmQ3YiwgMHhjMDZiYjVlOSksCi0gICAgICAgICBUT0JOKDB4Yjg3MDcyZjIsIDB4YTY3
MmM1YzcpLCBUT0JOKDB4ZWFjYjExYzgsIDB4MGQ1M2M1ZTIpLAotICAgICAgICAgVE9CTigweDIy
ZGFjMjlkLCAweGZmNDM1OTMyKSwgVE9CTigweDM3YmRiOTlkLCAweDQ0MDg2OTNjKSwKLSAgICAg
ICAgIFRPQk4oMHhmNmU2MmZiNiwgMHgyODk5YzIwZiksIFRPQk4oMHgzNTM1ZDUxMiwgMHg0NDdl
Y2UyNCksCi0gICAgICAgICBUT0JOKDB4ZmJkYzZiODgsIDB4ZmY1NzdjZTMpLCBUT0JOKDB4NzI2
NjkzYmQsIDB4MTkwNTc1ZjIpLAotICAgICAgICAgVE9CTigweDY3NzJiMGU1LCAweGFiNGIzNWEy
KSwgVE9CTigweDFkOGI2MDAxLCAweGY1ZWVhYWNmKSwKLSAgICAgICAgIFRPQk4oMHg3MjhmN2Nl
NCwgMHg3OTViOTU4MCksIFRPQk4oMHg0YTIwZWQyYSwgMHg0MWZiODFkYSksCi0gICAgICAgICBU
T0JOKDB4OWY2ODVjZDQsIDB4NGZlYzAxZTYpLCBUT0JOKDB4M2VkN2RkY2MsIDB4YTdmZjUwYWQp
LAotICAgICAgICAgVE9CTigweDQ2MGZkMjY0LCAweDBjMmQ5N2ZkKSwgVE9CTigweDNhMjQxNDI2
LCAweGViODJmNGY5KSwKLSAgICAgICAgIFRPQk4oMHgxN2QxZGYyYywgMHg2YThlYTgyMCksIFRP
Qk4oMHhiMmI1MGQzYiwgMHhmMjJjYzI1NCksCi0gICAgICAgICBUT0JOKDB4MDM4NTZjYmEsIDB4
YjcyOTE0MjYpLCBUT0JOKDB4ODdmZDI2YWUsIDB4MDRmNWVlMzkpLAotICAgICAgICAgVE9CTigw
eDljYjY5NmNjLCAweDAyYmVlNGJhKSwgVE9CTigweDUzMTIxODA0LCAweDA2ODIwZmQ2KSwKLSAg
ICAgICAgIFRPQk4oMHhhNWRmYzI2OSwgMHgwMjEyZTk4NSksIFRPQk4oMHg2NjZmN2ZmYSwgMHgx
NjBmOWEwOSksCi0gICAgICAgICBUT0JOKDB4YzUwM2NkMzMsIDB4YmNjZDk2MTcpLCBUT0JOKDB4
MzY1ZGVkZTQsIDB4YmE3NzMwYTMpLAotICAgICAgICAgVE9CTigweDc5OGM2MzU1LCAweDVkZGIw
Nzg2KSwgVE9CTigweGE2YzMyMDBlLCAweGZjOWNkM2JjKSwKLSAgICAgICAgIFRPQk4oMHgwNjBm
ZmIyYywgMHhlNWUzNWVmZCksIFRPQk4oMHg5OWE0ZTI1YiwgMHg1NTU1YTFjMSksCi0gICAgICAg
ICBUT0JOKDB4MTFkOTUzNzUsIDB4ZjcwYjM3NTEpLCBUT0JOKDB4MGE1NzM1NGEsIDB4MTYwZTFi
ZjYpLAotICAgICAgICAgVE9CTigweGVjYjNhZTRiLCAweGY4ZTRiMDY1KSwgVE9CTigweDA3YTgz
NGM0LCAweDJlNTMwMjJiKSwKLSAgICAgICAgIFRPQk4oMHgxY2QzMDBiMywgMHg4NjkyZWQ5Niks
IFRPQk4oMHgxNmE2Zjc5MiwgMHg2MWVlMTRlYyksCi0gICAgICAgICBUT0JOKDB4OGYxMDYzYzYs
IDB4NmE4NjQ5ZWQpLCBUT0JOKDB4ZmJjZGZjZmUsIDB4ODY5ZjNlMTQpLAotICAgICAgICAgVE9C
TigweDJjZmI5N2MxLCAweDAwYTdiM2VjKSwgVE9CTigweGNlYTQ5YjNjLCAweDcxMzBjMmYxKSwK
LSAgICAgICAgIFRPQk4oMHg0NjJkMDQ0ZiwgMHhlOWQ5NjQ4OCksIFRPQk4oMHg0YjUzZDUyZSwg
MHg4MTgyYTBjMSksCi0gICAgICAgICBUT0JOKDB4ODRiNmRkZDMsIDB4MDM5MWU5ZTkpLCBUT0JO
KDB4ODBhYjdiNDgsIDB4YjE3NDFhMDkpLAotICAgICAgICAgVE9CTigweGVjMGUxNWQ0LCAweDI3
ZDMzMTdmKSwgVE9CTigweDhkZmMxZGRiLCAweDFhNjQ2NzFlKSwKLSAgICAgICAgIFRPQk4oMHg5
M2NjNWQ1ZiwgMHhkNDljNWI5MiksIFRPQk4oMHhjOTk1ZDUzZCwgMHgzNjc0YTMzMSksCi0gICAg
ICAgICBUT0JOKDB4MzAyZTQxZWMsIDB4MDkwMDkwYWUpLCBUT0JOKDB4MjI3OGEwY2MsIDB4ZWRi
MDY4MzApLAotICAgICAgICAgVE9CTigweDFkMDI1OTMyLCAweGZiYzk5NjkwKSwgVE9CTigweDBj
MzJmYmQyLCAweGI4MGQ2OGRhKSwKLSAgICAgICAgIFRPQk4oMHhkNzkxNDZkYSwgMHhmMzQxYTZj
MSksIFRPQk4oMHhhZTBiYTEzOSwgMHgxYmVmNjhhMCksCi0gICAgICAgICBUT0JOKDB4YzZiOGE1
NjMsIDB4OGQ3NzRiM2EpLCBUT0JOKDB4MWNmMzA3YmQsIDB4ODgwYmE0ZDcpLAotICAgICAgICAg
VE9CTigweGMwMzNiZGM3LCAweDE5ODAzNTExKSwgVE9CTigweGE5Zjk3YjNiLCAweDg4ODhjM2Jl
KSwKLSAgICAgICAgIFRPQk4oMHgzZDY4YWViYywgMHg4NWM2ZDA1ZSksIFRPQk4oMHhjM2I4OGE5
ZCwgMHgxOTM5MTllYiksCi0gICAgICAgICBUT0JOKDB4MmQzMDA3NDgsIDB4YzQ4YjBlZTMpLCBU
T0JOKDB4NzUwNmJjN2MsIDB4MDdhNzQ2YzEpLAotICAgICAgICAgVE9CTigweGZjNDg0MzdjLCAw
eDZlNmQ1N2YzKSwgVE9CTigweDViZDcxNTg3LCAweGNmZWFhOTFhKSwKLSAgICAgICAgIFRPQk4o
MHhhNGVkMDQwOCwgMHhjMWJjNTIyNSksIFRPQk4oMHhkMGI5NDZkYiwgMHgyNzE5MjI2ZCksCi0g
ICAgICAgICBUT0JOKDB4MTA5ZWNkNjIsIDB4NzU4ZDJkNDMpLCBUT0JOKDB4NzVjODQ4NWEsIDB4
Mjc1MTc1OWIpLAotICAgICAgICAgVE9CTigweGIwYjc1ZjQ5LCAweDljZTQxNzdhKSwgVE9CTigw
eDRmYTYxYTFlLCAweDc5YzEwYzNkKSwKLSAgICAgICAgIFRPQk4oMHhjMDYyZDMwMCwgMHhhMTY3
ZmNkNyksIFRPQk4oMHg0ZGYzODc0YywgMHg3NTBmMGZhOCksCi0gICAgICAgICBUT0JOKDB4Mjlh
ZTJjZjksIDB4ODNkZmVkYzkpLCBUT0JOKDB4Zjg0MzcxMzQsIDB4OGQ4NzYzMWEpLAotICAgICAg
ICAgVE9CTigweGFmNTcxNzExLCAweDc0MjljOGQyKSwgVE9CTigweDE4ZDE1ODY3LCAweDE0NmQ5
MjcyKSwKLSAgICAgICAgIFRPQk4oMHg4MzA1M2VjZiwgMHg2OTc2OWJiNyksIFRPQk4oMHhjNTVl
Yjg1NiwgMHhjNDc5YWI4MiksCi0gICAgICAgICBUT0JOKDB4NWVmNzc5MWMsIDB4MjFiMGY0YjIp
LCBUT0JOKDB4YWE1OTU2YmEsIDB4M2Q0OTE1MjUpLAotICAgICAgICAgVE9CTigweDQwN2E5NmMy
LCAweDlmZTIwZWJhKSwgVE9CTigweGYyNzE2OGJiLCAweGU1MmE1YWQzKSwKLSAgICAgICAgIFRP
Qk4oMHg0M2I2MGFiMywgMHhiZjFkOWQ4OSksIFRPQk4oMHhlNDVjNTFlZiwgMHg3MTBlNzI3YSks
Ci0gICAgICAgICBUT0JOKDB4ZGZjYTUyNzYsIDB4MDk5YjQyMjEpLCBUT0JOKDB4OGRjNjQwN2Ms
IDB4MjU1N2ExNTkpLAotICAgICAgICAgVE9CTigweDBlYWQ4MzM1LCAweDkxMDM1ODk1KSwgVE9C
TigweDBhOWRiOTU3LCAweDljNTVkYzMyKSwKLSAgICAgICAgIFRPQk4oMHhlNDA3MzZkMywgMHhk
ZjYxYmM3NiksIFRPQk4oMHgxM2E2MTljMCwgMHgzZjc3OGNkYiksCi0gICAgICAgICBUT0JOKDB4
NmRkOTIxYTQsIDB4YzU2ZWEyOGYpLCBUT0JOKDB4NzZhNTI0MzMsIDB4MmZhNjQ3YjQpLAotICAg
ICAgICAgVE9CTigweDIzNTkxODkxLCAweGFjNWJkYzVkKSwgVE9CTigweGZmNGExYTcyLCAweGJh
YzdkYzAxKSwKLSAgICAgICAgIFRPQk4oMHg5OTA1ZTI2MSwgMHg2MmRmODQ1MyksIFRPQk4oMHgz
YWMwNDVkZiwgMHhlNjNiMjY1ZiksCi0gICAgICAgICBUT0JOKDB4OGEzZjM0MWIsIDB4YWQ1M2Ri
YTcpLCBUT0JOKDB4OGVjMjY5Y2MsIDB4ODM3YjYyNWEpLAotICAgICAgICAgVE9CTigweGQ3MWEy
NzgyLCAweDNhZTMxMTg5KSwgVE9CTigweDhmYjRmOWEzLCAweDU1ZTk2MTIwKSwKLSAgICAgICAg
IFRPQk4oMHg4MDRhZjgyMywgMHhmZjk4NzVjZiksIFRPQk4oMHgyMzIyNGY1NywgMHg1ZDQ0MmE5
YiksCi0gICAgICAgICBUT0JOKDB4MWM0ZDNiOWUsIDB4ZWNjNjI2NzkpLCBUT0JOKDB4OTFkYTIy
ZmIsIDB4YTBlN2RkYjEpLAotICAgICAgICAgVE9CTigweGEzNzAzMjRkLCAweDZjMDRhNjYxKSwg
VE9CTigweDk3MTBkM2I2LCAweDVlMzc2ZDE3KSwKLSAgICAgICAgIFRPQk4oMHhlZDhjOThmMCwg
MHgzMDQ0ZTM1NyksIFRPQk4oMHhjMzY0ZWJiZSwgMHg2NDIyNzAxYyksCi0gICAgICAgICBUT0JO
KDB4MzQ3ZjVkNTEsIDB4NzczM2Q2MWMpLCBUT0JOKDB4ZDU1NjQ0YjksIDB4Y2VhODI2YzMpLAot
ICAgICAgICAgVE9CTigweDgwYzZlMGFkLCAweDU1YTI1NTQ4KSwgVE9CTigweDBhYTc2NDFkLCAw
eDg0NDIyMGE3KSwKLSAgICAgICAgIFRPQk4oMHgxNDM4ZWM4MSwgMHgzMTgxMDY2MCksIFRPQk4o
MHg5ZGZhNjUwNywgMHhkZTRiNDA0MyksCi0gICAgICAgICBUT0JOKDB4MTBiNTE1ZDgsIDB4Y2Mz
ZTAyNzMpLCBUT0JOKDB4MWI2MDY2ZGQsIDB4MjhkOGNmYjIpLAotICAgICAgICAgVE9CTigweGQz
YjA0NTkxLCAweDljOWVmZWJkKSwgVE9CTigweDQyNWQ0YmRmLCAweGEyMWMxZmY0KSwKLSAgICAg
ICAgIFRPQk4oMHg1ZmU1YWYxOSwgMHhkNTc2MDdkMyksIFRPQk4oMHhiYmY3NzNmNywgMHg1NDQ4
MTA4NCksCi0gICAgICAgICBUT0JOKDB4ODQzNWJkNjksIDB4OTRiMDNlZDEpLCBUT0JOKDB4ZDlh
ZDFkZTMsIDB4NjM0Y2M1NDYpLAotICAgICAgICAgVE9CTigweDJjZjQyM2ZjLCAweDAwZTQyMGNh
KSwgVE9CTigweGVlZDI2ZDgwLCAweGEwMzA5NmRkKSwKLSAgICAgICAgIFRPQk4oMHhkN2Y2MGJl
NywgMHhhNGRiMDlkMiksIFRPQk4oMHhmNDdmNTY5ZCwgMHg5NjA2MjJmNyksCi0gICAgICAgICBU
T0JOKDB4ZTU5MjVmZDcsIDB4NzI5NmM3MjkpLCBUT0JOKDB4ZWZmMmRiMjYsIDB4MjZjYTI3MTUp
LAotICAgICAgICAgVE9CTigweGE2ZmNkMDE0LCAweGI5MTNlNzU5KSwgVE9CTigweDUzZGE0Nzg2
LCAweDhmZjRkZTkzKSwKLSAgICAgICAgIFRPQk4oMHgxNDYxNmQ3OSwgMHhjMzIwNjhlMSksIFRP
Qk4oMHhiMTg3ZDY2NCwgMHhjY2RmMzUyZSksCi0gICAgICAgICBUT0JOKDB4ZjdhZmI2NTAsIDB4
MWRjOTBiNTkpLCBUT0JOKDB4ODE3MGU5NDMsIDB4N2RhYTFiMjYpLAotICAgICAgICAgVE9CTigw
eGM4ZTNiZGQ4LCAweDcwMGMwYTg0KSwgVE9CTigweDZlOGQzNDVmLCAweDY0ODJiZGZhKSwKLSAg
ICAgICAgIFRPQk4oMHg4NGNmYmZhMSwgMHhjNWM1ZWE1MCksIFRPQk4oMHhkM2JhZjE0YywgMHg2
Nzk2MDY4MSksCi0gICAgICAgICBUT0JOKDB4MjYzOTg0MDMsIDB4MGRkNTA5NDIpLCBUT0JOKDB4
ZTRiNzgzOWMsIDB4NDcxNmE2NjMpLAotICAgICAgICAgVE9CTigweGQ1ZjFmNzk0LCAweGU3ZGU2
ZGMwKSwgVE9CTigweDVjZDBmNGQ0LCAweDYyMmFhN2NlKSwKLSAgICAgICAgIFRPQk4oMHg1Mjk1
ZjNmMSwgMHg1OWFjZmVlYyksIFRPQk4oMHg4ZDkzMzU1MiwgMHg5NTNlMDYwNyksCi0gICAgICAg
ICBUT0JOKDB4YzdkYjhlYzUsIDB4Nzc2YzU3MjIpLCBUT0JOKDB4ZGM0NjdlNjIsIDB4MmI1ZjI5
MGMpLAotICAgICAgICAgVE9CTigweGQ0Mjk3ZTcwLCAweDRmZjQyNWE5KSwgVE9CTigweDRiZTky
NGMxLCAweDBjZjdiYjcyKSwKLSAgICAgICAgIFRPQk4oMHgwZDVkYzVhZSwgMHhhMTg5MjEzMSks
IFRPQk4oMHg4YmY4YThlMywgMHhhNzA1Yzk5MiksCi0gICAgICAgICBUT0JOKDB4NzNhMGIwNjQs
IDB4N2EzMDVhYzUpLCBUT0JOKDB4MDBjOWNhNGUsIDB4OWE4Yzc3YTgpLAotICAgICAgICAgVE9C
TigweDVkZmVlODBmLCAweDgzNzc0YmRkKSwgVE9CTigweDYzMTMxNjAyLCAweDg1NzM0NDg1KSwK
LSAgICAgICAgIFRPQk4oMHhhMWI1MjRhZSwgMHg5MTRhNjlhOSksIFRPQk4oMHhlYmMyZmZhZiwg
MHhkNGUzMDBkNyksCi0gICAgICAgICBUT0JOKDB4NTJjOTNkYjcsIDB4N2NmYTQ2YTUpLCBUT0JO
KDB4NzFlNjE2MWYsIDB4MjE2NTNiNTApLAotICAgICAgICAgVE9CTigweDM1NzRmYzU3LCAweGE0
YmM1ODBhKSwgVE9CTigweGMwOTAxNWRkLCAweGUxYmMxMjUzKSwKLSAgICAgICAgIFRPQk4oMHg0
YjdiNDdiMiwgMHhkMTc0ZDdhYSksIFRPQk4oMHg0MDcyZDhlOCwgMHhmM2ExNWQwNCksCi0gICAg
ICAgICBUT0JOKDB4ZWViN2Q0N2YsIDB4ZDZmYTA3ZWQpLCBUT0JOKDB4NmYyYjlmZjksIDB4ZWRi
ZGFmYjEpLAotICAgICAgICAgVE9CTigweDE4YzUxNjE1LCAweDM3NjBmZThhKSwgVE9CTigweDdh
OTZlNmJmLCAweGYwNmM2YzEzKSwKLSAgICAgICAgIFRPQk4oMHg0ZDdhMDQxMCwgMHgwZWEyZDA3
MSksIFRPQk4oMHhhMTkxNGU5YiwgMHgwYmUyYTVjZSksCi0gICAgICAgICBUT0JOKDB4NTcyNmUz
NTcsIDB4ZDhhM2M1Y2YpLCBUT0JOKDB4MTE5N2VjYzMsIDB4MmFiYjJiMTMpLAotICAgICAgICAg
VE9CTigweDZjMGQ3ZjdmLCAweDMxYWU4OGRkKSwgVE9CTigweDE1YjIwZDFhLCAweGZkYmIzZWZl
KSwKLSAgICAgICAgIFRPQk4oMHhjZDA2YWEyNiwgMHg3MDU4NDAzOSksIFRPQk4oMHgyMjc3Yzk2
OSwgMHhhN2RjOTc0NyksCi0gICAgICAgICBUT0JOKDB4YmNhNjk1ODcsIDB4Nzg1NWQ4MTUpLCBU
T0JOKDB4ODk5ZWEyMzgsIDB4NTE4OGIzMmEpLAotICAgICAgICAgVE9CTigweDM3ZDkyMjhiLCAw
eDc2MGMxYzlkKSwgVE9CTigweGM3ZWZiYjExLCAweDliNWMxOGRhKSwKLSAgICAgICAgIFRPQk4o
MHg3ZjBkMWJjOCwgMHgxOWY2ZGJjNSksIFRPQk4oMHg0ODc1Mzg0YiwgMHgwN2U2OTA1YiksCi0g
ICAgICAgICBUT0JOKDB4YzdjNTBiYWEsIDB4M2JhOGNkODYpLCBUT0JOKDB4YjBjZTQwZmIsIDB4
YzI5MDVkZTApLAotICAgICAgICAgVE9CTigweDcwODQwNjczLCAweDdhMjMxOTUyKSwgVE9CTigw
eGE5MTJhMjYyLCAweGNmNDNkZTI2KSwKLSAgICAgICAgIFRPQk4oMHg5YzM4ZGRjYywgMHhlYjVi
NzZjMSksIFRPQk4oMHg3NDZmNTI4NSwgMHgyNmZjMGFiNCksCi0gICAgICAgICBUT0JOKDB4NTJh
NjNhNTAsIDB4ZDYyYzI2OWYpLCBUT0JOKDB4NjAwNDljNTUsIDB4OTk0NTg2MjEpLAotICAgICAg
ICAgVE9CTigweGU3ZjQ4ZjgyLCAweDNjMmY3YzllKSwgVE9CTigweDZiZDk5MDQzLCAweDkxN2Q1
Y2YzKSwKLSAgICAgICAgIFRPQk4oMHhlYjEzMTdhOCwgMHg4NzAxZjQ2OSksIFRPQk4oMHhiZDNm
ZTJlZCwgMHg5YTQ0OWZlMCksCi0gICAgICAgICBUT0JOKDB4NDIxZTc5Y2EsIDB4MTJlZjNkMzYp
LCBUT0JOKDB4OWVlM2MzNmMsIDB4M2U3ZWE1ZGUpLAotICAgICAgICAgVE9CTigweGU0ODE5OGI1
LCAweGNkZmYzNmY3KSwgVE9CTigweGFmZjRmOTY3LCAweGM2YjgyMjI4KSwKLSAgICAgICAgIFRP
Qk4oMHgxNWUxOWRkMCwgMHhjNDdhZGI3ZSksIFRPQk4oMHg0NTY5OWIyMywgMHgwMzJlN2RmYSks
Ci0gICAgICAgICBUT0JOKDB4NDA2ODBjOGIsIDB4MWZhZTAyNmEpLCBUT0JOKDB4NWEzNDdhNDgs
IDB4NTUwZGJmNGQpLAotICAgICAgICAgVE9CTigweGU2NTI1MzNiLCAweDNjZWYwZDdkKSwgVE9C
TigweGQ5NGY3YjE4LCAweDJiYmI0MzgxKSwKLSAgICAgICAgIFRPQk4oMHg4Mzg3NTJiZSwgMHgw
ZTgwZjUwMCksIFRPQk4oMHg4ZTZlMjQ4OCwgMHg5ZTljOWJmYiksCi0gICAgICAgICBUT0JOKDB4
Yzk3NTE2OTcsIDB4MTZjYWNhNmEpLCBUT0JOKDB4ODY2YzQ5ZDgsIDB4Mzg1MzFhZDkpLAotICAg
ICAgICAgVE9CTigweGM5MTdlMjM5LCAweDcxNTFhZGUxKSwgVE9CTigweDJkMDE2ZWMxLCAweDYw
MzdjNDA3KSwKLSAgICAgICAgIFRPQk4oMHhhNDA3Y2NjOSwgMHgwMGVhYzNmOSksIFRPQk4oMHg4
MzVmNjI4MCwgMHhlMmVkNDc0OCksCi0gICAgICAgICBUT0JOKDB4Y2M1NGMzNDcsIDB4MWNjOThl
MGQpLCBUT0JOKDB4MGU5Njk5MzcsIDB4ZGNiNTcyZWIpLAotICAgICAgICAgVE9CTigweDFiMTZj
OGU4LCAweDhmMzBjOWNiKSwgVE9CTigweGE2MDZhZTc1LCAweDM3M2M0NjYxKSwKLSAgICAgICAg
IFRPQk4oMHg0N2FhNjg5YiwgMHgzNTUwMmNhYiksIFRPQk4oMHhmODkwMTRhZSwgMHg0ZDliYjY0
ZiksCi0gICAgICAgICBUT0JOKDB4MjAyZjZhOWMsIDB4MzFjNzFmN2IpLCBUT0JOKDB4MDFmOTVh
YTMsIDB4Mjk2ZmZlNWMpLAotICAgICAgICAgVE9CTigweDVmYzA2MDE0LCAweDUzY2VjM2EzKSwg
VE9CTigweGViOTkxMjM3LCAweDVmNDk4YTQ1KSwKLSAgICAgICAgIFRPQk4oMHhhZTlhOTM1ZSwg
MHg1ZDkxYmE4NyksIFRPQk4oMHhjNmFjNjI4MSwgMHgwYjU2NGExOSksCi0gICAgICAgICBUT0JO
KDB4OGE4ZmU4MWMsIDB4M2JkNDRlNjkpLCBUT0JOKDB4N2M4YjQ2N2YsIDB4OWRkMTFkNDUpLAot
ICAgICAgICAgVE9CTigweGY3NzIyNTFmLCAweGVhNWI4ZTY5KSwgVE9CTigweGFlZWNiM2JkLCAw
eGM1Yjc1ZmJjKSwKLSAgICAgICAgIFRPQk4oMHgxYWNhMzMzMSwgMHg4ODdmZjBlNSksIFRPQk4o
MHhiZTVkNDlmZiwgMHgxOWYwYTEzMSksCi0gICAgICAgICBUT0JOKDB4NTgyYzEzYWEsIDB4ZTVj
ODY0NmYpLCBUT0JOKDB4ZGJhYTEyZTgsIDB4MjBlMTk5ODApLAotICAgICAgICAgVE9CTigweDhm
NDBmMzFhLCAweGY3YWJiZDk0KSwgVE9CTigweDFmMTNmNWE4LCAweDFkZmM3NjYzKSwKLSAgICAg
ICAgIFRPQk4oMHg1ZDgxZjFlZSwgMHhhY2ViNGZjMCksIFRPQk4oMHgzNjI1NjAwMiwgMHg1ZTZm
MGY0MiksCi0gICAgICAgICBUT0JOKDB4NGI2N2Q2ZDcsIDB4NzUxMzcwYzgpLCBUT0JOKDB4MjYw
OGI2OTgsIDB4MDNlODA1ODkpLAotICAgICAgICAgVE9CTigweGNmYzBkMmZjLCAweDA1MjY4MzAx
KSwgVE9CTigweGE2OTQzZDM5LCAweDQwMzA5MjEyKSwKLSAgICAgICAgIFRPQk4oMHgxOTJhOTBj
MiwgMHgxZmQwZTFjMiksIFRPQk4oMHhiMjA5ZjExMywgMHgzN2YxZGM3NiksCi0gICAgICAgICBU
T0JOKDB4ZWZjYzVlMDYsIDB4OTdiZjEyOTgpLCBUT0JOKDB4Y2JkYjY3MzAsIDB4MjE5ZDYzOWUp
LAotICAgICAgICAgVE9CTigweGQwMDljMTE2LCAweGI4MWU4YzZmKSwgVE9CTigweGEzZmZkZGUz
LCAweDFhN2NlMmU1KSwKLSAgICAgICAgIFRPQk4oMHhjNTNmYmFhYSwgMHhhOTE0ZDNiYSksIFRP
Qk4oMHg4MzZkNTAwZiwgMHg4OGRmODVlZSksCi0gICAgICAgICBUT0JOKDB4ZDk4ZGM3MWIsIDB4
NjZlZTA3NTEpLCBUT0JOKDB4NWEzZDcwMDUsIDB4NzE0NTE2ZmQpLAotICAgICAgICAgVE9CTigw
eDIxZDM2MzRkLCAweDM5ZWVkYmJhKSwgVE9CTigweDM1Y2QyZTY4LCAweDA0NTVhNDZkKSwKLSAg
ICAgICAgIFRPQk4oMHhjOGNhZmU2NSwgMHhmOWQ3ZWIwYyksIFRPQk4oMHhiZGEzY2U5ZSwgMHgw
MGNlZmIzZSksCi0gICAgICAgICBUT0JOKDB4ZGRjMTdhNjAsIDB4MmM5Y2Y3YTQpLCBUT0JOKDB4
MDE1NzJlZTQsIDB4N2JjYjg3NzMpLAotICAgICAgICAgVE9CTigweGE5MmIyYjAxLCAweDhjNzU0
OGRmKSwgVE9CTigweDczMmZkMzA5LCAweGE4NDYwMGUzKSwKLSAgICAgICAgIFRPQk4oMHhlMjIx
MDljNywgMHgxNjU0M2E0MCksIFRPQk4oMHg5YWNhZmQzNiwgMHhmZWRlM2M2YyksCi0gICAgICAg
ICBUT0JOKDB4ZmIyMDY4NTIsIDB4NjgyNGU2MTQpLCBUT0JOKDB4MmE0NTQ0YTksIDB4ZGEyNWRj
YTApLAotICAgICAgICAgVE9CTigweDI1OTg1MjYyLCAweDkxZDYwYjA2KSwgVE9CTigweDI4MWI3
YmU5LCAweDI4NzUzNTQ1KSwKLSAgICAgICAgIFRPQk4oMHhlYzY2N2IxYSwgMHg5MGYxM2IyNyks
IFRPQk4oMHgzM2E4M2FmZiwgMHg5NDBlMmViNCksCi0gICAgICAgICBUT0JOKDB4ODAwMDk4NjIs
IDB4ZDVkNzIxZDUpLCBUT0JOKDB4MGMzMzU3YTMsIDB4NWJkM2ExODIpLAotICAgICAgICAgVE9C
TigweDI3ZjNhODNiLCAweDdhYTJjZGE0KSwgVE9CTigweGI1OGFlNzRlLCAweGY2ZjgzMDg1KSwK
LSAgICAgICAgIFRPQk4oMHgyYTkxMWE4MSwgMHgyZTZkYWQ2YiksIFRPQk4oMHhkZTI4NjA1MSwg
MHhmNDNkNmM1YiksCi0gICAgICAgICBUT0JOKDB4NGJkY2NjNDEsIDB4Zjk5NmM0ZDgpLCBUT0JO
KDB4ZTczMTJlYzAsIDB4MGFlMWUyNGUpfSwKLSAgICAgICAge1RPQk4oMHhmOGQxMTJlNywgMHg2
ZTY0ODViMyksIFRPQk4oMHg0ZDNlMjRkYiwgMHg3NzFjNTJmOCksCi0gICAgICAgICBUT0JOKDB4
NDhlM2VlNDEsIDB4Njg0YTJmNmQpLCBUT0JOKDB4NzE2MTk1N2QsIDB4MjFkOTU1NTEpLAotICAg
ICAgICAgVE9CTigweDE5NjMxMjgzLCAweGNkYjEyYTZjKSwgVE9CTigweGJmM2ZhODgyLCAweDJl
NTBlMTY0KSwKLSAgICAgICAgIFRPQk4oMHhmNjI1NGI2MywgMHgzMTY2Y2M3MyksIFRPQk4oMHgz
YWVmYTdhZSwgMHhhZWU4Y2MzOCksCi0gICAgICAgICBUT0JOKDB4NzliMGZlNjIsIDB4M2IzNmY5
ZmQpLCBUT0JOKDB4MjY1NDNiMjMsIDB4ZmRlMTlmYzApLAotICAgICAgICAgVE9CTigweDEzNmU2
NGEwLCAweDk1ODQ4MmVmKSwgVE9CTigweDIzZjYzNzcxLCAweDliMDk1ODI1KSwKLSAgICAgICAg
IFRPQk4oMHgxNGNmZDU5NiwgMHhiNmExMTQyZSksIFRPQk4oMHg1ZWE2YWFjNiwgMHgzMzVhYWMw
YiksCi0gICAgICAgICBUT0JOKDB4ODZhMGU4YmQsIDB4ZjMwODFkZDUpLCBUT0JOKDB4NWZiODlk
NzksIDB4MDAzZGMxMmEpLAotICAgICAgICAgVE9CTigweGY2MTVjMzNhLCAweGY3MmUzNGQ0KSwg
VE9CTigweDBiZDllYTQwLCAweDExMGVlYzM1KSwKLSAgICAgICAgIFRPQk4oMHgxYzEyYmM1Yiwg
MHhjMWRlYTM0ZSksIFRPQk4oMHg2ODY1ODRjOSwgMHg0OWFlNDY5OSksCi0gICAgICAgICBUT0JO
KDB4MTNhZDk1ZDMsIDB4OGM5N2I5NDIpLCBUT0JOKDB4NDYwOTU2MWEsIDB4NGU1Yzc1NjIpLAot
ICAgICAgICAgVE9CTigweDllOTRhNGFlLCAweGYyNzM3Zjg5KSwgVE9CTigweGY1NzU5NGM2LCAw
eDM3MWM3OGI2KSwKLSAgICAgICAgIFRPQk4oMHgwZjAxNjVmYywgMHhlMzc3OWVlMyksIFRPQk4o
MHhlMDBlN2Y5ZCwgMHhiZDQ5NWQ5ZSksCi0gICAgICAgICBUT0JOKDB4MWZhNGVmYTIsIDB4MjAy
ODRlN2EpLCBUT0JOKDB4NDU2NGJhZGUsIDB4NDdhYzYyMTkpLAotICAgICAgICAgVE9CTigweDkw
ZTYzMTJhLCAweGM0NzA4ZThlKSwgVE9CTigweDRmNTcyNWZiLCAweGE3MWU5YWRmKSwKLSAgICAg
ICAgIFRPQk4oMHhlOTVmNTVhZSwgMHgzZDY4NGI5ZiksIFRPQk4oMHg0N2Y3Y2NiMSwgMHgxZTk0
YjQxNSksCi0gICAgICAgICBUT0JOKDB4NzMyMjg1MWIsIDB4OGQ5NDY1ODEpLCBUT0JOKDB4ZjBk
MTMxMzMsIDB4YmRmNGEwMTIpLAotICAgICAgICAgVE9CTigweGEzNTEwZjY5LCAweDY1ODRkYWUw
KSwgVE9CTigweDAzYTdjMTcxLCAweDNjOWY2YzZkKSwKLSAgICAgICAgIFRPQk4oMHg1YmU5N2Yz
OCwgMHhlNDc1MzgxYSksIFRPQk4oMHhjYTFiYTQyMiwgMHg4NTgyMzMzNCksCi0gICAgICAgICBU
T0JOKDB4ZjgzY2M1YzcsIDB4MGJlMTdkZGEpLCBUT0JOKDB4MTU4YjE0OTQsIDB4MGI5MThjMGYp
LAotICAgICAgICAgVE9CTigweGRhM2E3N2U1LCAweDUyMmU2YjY5KSwgVE9CTigweDY5YzkwOGMz
LCAweGJiY2Q2YzE4KSwKLSAgICAgICAgIFRPQk4oMHgxZjFiOWU0OCwgMHhkOTI0ZmQ1NiksIFRP
Qk4oMHgzN2M2NGUzNiwgMHhhYTRiYjNmNyksCi0gICAgICAgICBUT0JOKDB4NWE0ZmRiZGYsIDB4
ZWU0NzhkN2QpLCBUT0JOKDB4YmE3NWM4YmMsIDB4MDE5M2Y3YTApLAotICAgICAgICAgVE9CTigw
eDg0YmMxZTg0LCAweDU2Y2QxNmRmKSwgVE9CTigweDFmYjA4ZjA4LCAweDQ2ZmFkMTUxKSwKLSAg
ICAgICAgIFRPQk4oMHg4YTdjYWJmOSwgMHg4NDJlOWYzMCksIFRPQk4oMHhhMzMxZDRiZiwgMHg1
ZWFiODNhZiksCi0gICAgICAgICBUT0JOKDB4ZDI3MmNmYmEsIDB4MDE3ZjJhNmEpLCBUT0JOKDB4
Mjc1NjBhYmMsIDB4ODNhYmEwZTMpLAotICAgICAgICAgVE9CTigweDk0YjgzMzg3LCAweDBlM2E2
Yjc1KSwgVE9CTigweDI1YzZhZWEyLCAweDZiOWY1MGY1KSwKLSAgICAgICAgIFRPQk4oMHg4MDNk
NjkxZCwgMHhiNWZkZjZkMCksIFRPQk4oMHgwM2I3NzUwOSwgMHhlNjMzMzUxNCksCi0gICAgICAg
ICBUT0JOKDB4MzYxNzg5MDMsIDB4NjFhMzQxYzEpLCBUT0JOKDB4MzYwNGRjNjAsIDB4MGNmZDYx
NDIpLAotICAgICAgICAgVE9CTigweDAyMjI5NWViLCAweDg1MzMzMTZjKSwgVE9CTigweDNkYmRl
NGFjLCAweDQ0YWYyOTIyKSwKLSAgICAgICAgIFRPQk4oMHg4OThhZmM1ZCwgMHgxYzdlZWY2OSks
IFRPQk4oMHg1ODg5NjgwNSwgMHhkMTRmNGZhMSksCi0gICAgICAgICBUT0JOKDB4MDUwMDIxNjAs
IDB4MjAzYzIxY2EpLCBUT0JOKDB4NmYwZDFmMzAsIDB4NDBlZjczMGIpLAotICAgICAgICAgVE9C
TigweDhlOGM0NGQ0LCAweDE5NjIyNGY4KSwgVE9CTigweDc1YTRhYjk1LCAweDM3NGQwNzlkKSwK
LSAgICAgICAgIFRPQk4oMHg3OTA4NWVjYywgMHg3ZDQ4ZjEyMyksIFRPQk4oMHg1NmYwNGQzMSwg
MHgxYmY2NWFkOCksCi0gICAgICAgICBUT0JOKDB4ZTIyMGJmMWMsIDB4YmRhNjAyYjIpLCBUT0JO
KDB4NzNlZTE3NDIsIDB4Zjk2MTJjNjkpLAotICAgICAgICAgVE9CTigweDc2MDA4ZmM4LCAweDA4
NGZkMDZiKSwgVE9CTigweDQwMDBlZjlmLCAweGYxMTM4MGQxKSwKLSAgICAgICAgIFRPQk4oMHg0
ODIwMWI0YiwgMHgxMmNmZTI5NyksIFRPQk4oMHgzZWVlMTI5YywgMHgyOTJmNzRlNSksCi0gICAg
ICAgICBUT0JOKDB4ZTFmZTExNGUsIDB4YzllODc0ZTgpLCBUT0JOKDB4ODk5YjA1NWMsIDB4OTJj
NWZjNDEpLAotICAgICAgICAgVE9CTigweDRlNDc3YTY0LCAweDNhMzljOGNmKSwgVE9CTigweDgy
ZjA5ZWZlLCAweDc4OTYzY2M5KSwKLSAgICAgICAgIFRPQk4oMHg2ZmQzZmQ4ZiwgMHhkMzMzZjg2
MyksIFRPQk4oMHg4NTEzMmIyYSwgMHhkYzk0OWM2MyksCi0gICAgICAgICBUT0JOKDB4N2UwNmEz
YWIsIDB4NTE2ZWIxN2IpLCBUT0JOKDB4NzNiZWMwNmYsIDB4ZDJjNzM3MmIpLAotICAgICAgICAg
VE9CTigweGU0Zjc0ZjU1LCAweGJhODk2ZGE2KSwgVE9CTigweGJiNGFmZWY4LCAweDhlOWViNDBm
KSwKLSAgICAgICAgIFRPQk4oMHgyZDc1YmVjOCwgMHhlNjFkNjZiMCksIFRPQk4oMHgwMmJkYTRi
NCwgMHhlZjI5MzAwYiksCi0gICAgICAgICBUT0JOKDB4OGJiYWE4ZGUsIDB4MDI2YmFhNWEpLCBU
T0JOKDB4ZmY1NGJlZmQsIDB4YTA3ZjQ0NDApLAotICAgICAgICAgVE9CTigweGJkOWI4YjFkLCAw
eGJlN2EyYWYzKSwgVE9CTigweGVjNTFjYWE5LCAweDRmYjc0YTcyKSwKLSAgICAgICAgIFRPQk4o
MHhiOTkzN2E0YiwgMHg2Mzg3OTY5NyksIFRPQk4oMHg3YzlhOWQyMCwgMHhlYzI2ODdkNSksCi0g
ICAgICAgICBUT0JOKDB4MTc3M2U0NGYsIDB4NmVmNWYwMTQpLCBUT0JOKDB4OGFiY2Y0MTIsIDB4
ZTkwYzY5MDApLAotICAgICAgICAgVE9CTigweDM4N2JkMDIyLCAweDgxNDIxNjFlKSwgVE9CTigw
eDUwMzkzNzU1LCAweGZjYjZmZjJhKSwKLSAgICAgICAgIFRPQk4oMHg5ODEzZmQ1NiwgMHhlZDZk
ZWY2MyksIFRPQk4oMHg1M2NmNjQ4MiwgMHg3ZDUzMTA2YyksCi0gICAgICAgICBUT0JOKDB4OTkx
YTM1YmQsIDB4NDMxZjdhYzEpLCBUT0JOKDB4ZjFlMjc0ZGQsIDB4NjNlNjVmYWYpLAotICAgICAg
ICAgVE9CTigweGY2M2ZmYTNjLCAweDQ0Y2M3ODgwKSwgVE9CTigweDQxMWE0MjZiLCAweDdjMjU2
OTgxKSwKLSAgICAgICAgIFRPQk4oMHhiNjk4YjlmZCwgMHg5M2E0MjBlMCksIFRPQk4oMHg4OWZk
ZGRjMCwgMHhhZTUzZjhmZSksCi0gICAgICAgICBUT0JOKDB4NzY2ZTA3MjIsIDB4MzIzOThiYWEp
LCBUT0JOKDB4MjA1ZmVlNDIsIDB4NWNmY2EwMzEpLAotICAgICAgICAgVE9CTigweGE0OWY1MzQx
LCAweDdhMDI5Y2YyKSwgVE9CTigweGE4OGM2OGI4LCAweDQwMjM4OTBkKSwKLSAgICAgICAgIFRP
Qk4oMHhiYzI3NTA0MSwgMHg3MzM3YWFhOCksIFRPQk4oMHg5ZWQzNjRhZCwgMHgwZWIzODRmNCks
Ci0gICAgICAgICBUT0JOKDB4ZTA4MTZmODUsIDB4MjlhYmE5MmYpLCBUT0JOKDB4MmU5ZTE5NDEs
IDB4MDRlMzhhODgpLAotICAgICAgICAgVE9CTigweDU3ZWVmNDRhLCAweDNkYWZkMmQ1KSwgVE9C
TigweDM1ZDFmYWU1LCAweDk3ZWQ5OGQ4KSwKLSAgICAgICAgIFRPQk4oMHg1MDYyOGMwOSwgMHgy
MzA3ZjliMSksIFRPQk4oMHgwOWQ4NGFhZSwgMHhkNmNiYTVjNiksCi0gICAgICAgICBUT0JOKDB4
NjcwNzFiYzcsIDB4ODhhYWE2OTEpLCBUT0JOKDB4MmRlYTU3YTksIDB4YWZlNmNiMDMpLAotICAg
ICAgICAgVE9CTigweGRmZTExYmI0LCAweDNkNzhhYzAxKSwgVE9CTigweDcyODY0MThjLCAweDdm
ZDdhYTUxKSwKLSAgICAgICAgIFRPQk4oMHhmYWJmNzcwOSwgMHg3N2Y3MTk1YSksIFRPQk4oMHg4
ZWM4NjE2NywgMHhhZGViODM4ZiksCi0gICAgICAgICBUT0JOKDB4ZWExMjg1YTgsIDB4YmI0ZjAx
MmQpLCBUT0JOKDB4ZDY4ODM1MDMsIDB4OWEzZWFiM2YpLAotICAgICAgICAgVE9CTigweGVlNWQy
NGY4LCAweDMwOTAwNGMyKSwgVE9CTigweGE5NmU0Yjc2LCAweDEzZmZlOTVlKSwKLSAgICAgICAg
IFRPQk4oMHgwY2RmZmUxMiwgMHhiZDIyM2VhNCksIFRPQk4oMHg4ZjVjMmVlNSwgMHhiNjczOWE1
MyksCi0gICAgICAgICBUT0JOKDB4NWNiNGFhYTUsIDB4ZGQ5NjgxOTgpLCBUT0JOKDB4ZmExMzFj
NTIsIDB4NzI0MTNhNmMpLAotICAgICAgICAgVE9CTigweDUzZDQ2YTkwLCAweDk1MzZkOTAzKSwg
VE9CTigweGIyNzBmMGQzLCAweDQ4NjA2ZDhlKSwKLSAgICAgICAgIFRPQk4oMHg1MThjNzU2NCwg
MHhhMDUzYTNiYyksIFRPQk4oMHgwODgyNTRiNywgMHgxYTg2Y2FlZiksCi0gICAgICAgICBUT0JO
KDB4YjNiYThjYjQsIDB4MGFiNWVmZDApLCBUT0JOKDB4NWM1OTkwMGUsIDB4NDYwNTk0NWQpLAot
ICAgICAgICAgVE9CTigweGVjYWNlMWRkLCAweGExODg3Mzk1KSwgVE9CTigweDQwOTYwZjM2LCAw
eDkzMmE2NWRlKSwKLSAgICAgICAgIFRPQk4oMHg5NjExZmY1YywgMHgzYWE5NTUyOSksIFRPQk4o
MHhjNTgyMTViMCwgMHg3YzFlNWEzNiksCi0gICAgICAgICBUT0JOKDB4ZDQ4YzliNTgsIDB4ZjBl
MWE1MjQpLCBUT0JOKDB4YjQwNjg1NmIsIDB4ZjU5MGRmYjgpLAotICAgICAgICAgVE9CTigweGM3
NjA1ZTA0LCAweDljZDk1NjYyKSwgVE9CTigweDBkZDAzNmVlLCAweGEzM2VjZjgyKSwKLSAgICAg
ICAgIFRPQk4oMHhhNTAxNzFhYywgMHhjMzMxNTZiMyksIFRPQk4oMHhmMDlkMjRlYSwgMHg0YTgw
MTcyZSksCi0gICAgICAgICBUT0JOKDB4NGUxZjcyYzYsIDB4NzZkYzhlZWYpLCBUT0JOKDB4ZTYw
Y2FhZGMsIDB4NWUzZDQ0ZWUpLAotICAgICAgICAgVE9CTigweDAwNmVmOGE2LCAweDk3OWIxZDhm
KSwgVE9CTigweDYwOTA4YTFjLCAweDk3Nzg4ZDI2KSwKLSAgICAgICAgIFRPQk4oMHg2ZTA4Zjk1
YiwgMHgyNjZmZWVjMCksIFRPQk4oMHg2MTg0MjdjMiwgMHgyMmU4Yzk0ZSksCi0gICAgICAgICBU
T0JOKDB4M2Q2MTMzMzksIDB4NTkxNDVhNjUpLCBUT0JOKDB4Y2Q5YmMzNjgsIDB4ZmE0MDYzMzcp
LAotICAgICAgICAgVE9CTigweDgyZDExYmUzLCAweDJkOGE1MmEwKSwgVE9CTigweGY2ODc3YjI3
LCAweDk3YTFjNTkwKSwKLSAgICAgICAgIFRPQk4oMHg4MzdhODE5YiwgMHhmNWNiZGIyNSksIFRP
Qk4oMHgyYTRmZDFkOCwgMHhkZTA5MDI0OSksCi0gICAgICAgICBUT0JOKDB4NjIyYTdkZTcsIDB4
NzQ5OTBlNWYpLCBUT0JOKDB4ODQwZmE1YTAsIDB4Nzk0NTUxMWIpLAotICAgICAgICAgVE9CTigw
eDMwYjk3NGJlLCAweDY1NTg4NDJkKSwgVE9CTigweDcwZGY4YzY0LCAweDE3ZjNkMGE2KSwKLSAg
ICAgICAgIFRPQk4oMHg3YzgwMzUyMCwgMHg3NTQyZTQ2ZCksIFRPQk4oMHg3MjUxZmU3ZiwgMHhl
NGVjYzgyMyksCi0gICAgICAgICBUT0JOKDB4ZTU5MTM0Y2IsIDB4NWU5YWFjOWEpLCBUT0JOKDB4
MTFiYjA5MzQsIDB4ZjAwNDVkNzEpLAotICAgICAgICAgVE9CTigweDUzZTVkOWI1LCAweGRiY2Ix
ZDRlKSwgVE9CTigweDhkOTdhOTA1LCAweDkyZGVmYzkxKSwKLSAgICAgICAgIFRPQk4oMHhmZTI4
OTMyNywgMHg3OTQ2ZDNmOSksIFRPQk4oMHhlMTMyYmQyNCwgMHgwNzQ3MjI3MyksCi0gICAgICAg
ICBUT0JOKDB4ZWVlYjUxMGMsIDB4MWViNmFlODYpLCBUT0JOKDB4Nzc3NzA4YzUsIDB4ZjA1OTUw
NjcpLAotICAgICAgICAgVE9CTigweDE4ZTJjOGNkLCAweDEyOTcwMjllKSwgVE9CTigweDJjNjEw
OTVjLCAweGJiZjkzMDVlKSwKLSAgICAgICAgIFRPQk4oMHhlNDY2YzI1OCwgMHg2Yjg1ZDZkOSks
IFRPQk4oMHg4YWMwNmMzNiwgMHhkYTFlYTUzMCksCi0gICAgICAgICBUT0JOKDB4YTM2NWRjMzks
IDB4YTEzMDQ2NjgpLCBUT0JOKDB4ZTRhOWM4ODUsIDB4MDdmODk2MDYpLAotICAgICAgICAgVE9C
TigweDY1YTQ4OThmLCAweGFjYzcyMjhkKSwgVE9CTigweDNlMjM0N2ZmLCAweDg0Y2E4MzAzKSwK
LSAgICAgICAgIFRPQk4oMHhhNWY2ZmI3NywgMHhlYTdkMjNhMyksIFRPQk4oMHgyZmFjMjU3ZCwg
MHg2NzJhNzFjZCksCi0gICAgICAgICBUT0JOKDB4NjkwOGJlZjgsIDB4N2U2YTQ0ZDMpLCBUT0JO
KDB4OGZmODc1NjYsIDB4ODkxZDNkN2EpLAotICAgICAgICAgVE9CTigweGU1OGU5MGIzLCAweDZi
MGNmODJlKSwgVE9CTigweDY0MzhkMjQ2LCAweDI2MTViNWU3KSwKLSAgICAgICAgIFRPQk4oMHgw
N2IxZjhmYywgMHg2NjljMTQ1YSksIFRPQk4oMHhiMGQ4YjJkYSwgMHgzNmYxZTFjYiksCi0gICAg
ICAgICBUT0JOKDB4NTRkNWRhZGIsIDB4ZDkxODRjNGQpLCBUT0JOKDB4M2RiYjE4ZDUsIDB4Zjkz
ZDk5NzYpLAotICAgICAgICAgVE9CTigweDBhM2UwZjU2LCAweGQxMTQ3ZDQ3KSwgVE9CTigweDJh
ZmE4YzhkLCAweGEwYTQ4NjA5KSwKLSAgICAgICAgIFRPQk4oMHgyNzUzNTNlOCwgMHhiYzM2NzQy
YyksIFRPQk4oMHg4OThmNDI3ZSwgMHhlZWEwZWQ5MCksCi0gICAgICAgICBUT0JOKDB4MjZmNDk0
N2UsIDB4M2U0NzdiMDApLCBUT0JOKDB4OGFkODg0OGEsIDB4MzA4NzQxZTMpLAotICAgICAgICAg
VE9CTigweDZjNzAzYzM4LCAweGQ3NGEyYTQ2KSwgVE9CTigweDVlM2UwNWE5LCAweDliYTE3YmEy
KSwKLSAgICAgICAgIFRPQk4oMHhjMWZhNmY2NiwgMHg0YWI5YTllNCksIFRPQk4oMHg0NzRhMmQ5
YSwgMHgzODQxZDZlYyksCi0gICAgICAgICBUT0JOKDB4ODcxMjM5YWQsIDB4NjUzYWUzMjYpLCBU
T0JOKDB4MTRiY2Y3MmEsIDB4YTc0Y2JiNDMpLAotICAgICAgICAgVE9CTigweDg3Mzc2NTBlLCAw
eDIwZDRjMDgzKSwgVE9CTigweDNkZjg2NTM2LCAweDExMGVkNGFmKSwKLSAgICAgICAgIFRPQk4o
MHhkMmQ4NmZlNywgMHhiNTNjYTU1NSksIFRPQk4oMHg2ODhjYjAwZCwgMHhhYmQ1ZDUzOCksCi0g
ICAgICAgICBUT0JOKDB4Y2Y4MWJkYTMsIDB4MWFkMzg0NjgpLCBUT0JOKDB4N2NjZmUzY2MsIDB4
ZjAxMTY3YjYpLAotICAgICAgICAgVE9CTigweGNmNGY0N2UwLCAweDZjNGMxZmU2KSwgVE9CTigw
eDU1N2UxZjFhLCAweDI5OGJiYjc5KSwKLSAgICAgICAgIFRPQk4oMHhmOTNiOTc0ZiwgMHgzMGQ0
NWExNCksIFRPQk4oMHgxNzRhMWQyZCwgMHgwYmFmOTdjNCksCi0gICAgICAgICBUT0JOKDB4N2Ew
MDNiMzAsIDB4YzUxZmJmNTMpLCBUT0JOKDB4ZDg5NDA5OTEsIDB4ZWU2OGIyMjUpLAotICAgICAg
ICAgVE9CTigweDViMGFhN2I3LCAweDFjMGY0MTczKSwgVE9CTigweDk3NTc5N2M5LCAweGEyMGE3
MTUzKSwKLSAgICAgICAgIFRPQk4oMHgyNmUwOGMwNywgMHhlMzUzM2Q3NyksIFRPQk4oMHhkNzIy
MmU2YSwgMHgyZTM0MWM5OSksCi0gICAgICAgICBUT0JOKDB4OWQ2MGVjM2QsIDB4OGQyZGM0ZWQp
LCBUT0JOKDB4YmRmZTBkOGYsIDB4N2M0NzZjZjgpLAotICAgICAgICAgVE9CTigweDFmZTU5YWI2
LCAweDFkMDU2NjA1KSwgVE9CTigweGE5ZWE5ZGY2LCAweDg2YTg1NTFmKSwKLSAgICAgICAgIFRP
Qk4oMHg4NDg5OTQxZSwgMHg0N2ZiOGQ4YyksIFRPQk4oMHhmZWI4NzRlYiwgMHg0YTdmMWIxMCks
Ci0gICAgICAgICBUT0JOKDB4ZmU1ZmVhODYsIDB4N2VlMGQ5OGYpLCBUT0JOKDB4MjAxYWQzNGIs
IDB4ZGJmNjE4NjQpLAotICAgICAgICAgVE9CTigweDQ1ZDhmZTQ3LCAweDM3YzAzMWQ0KSwgVE9C
TigweGQ1ZjQ5ZmFlLCAweDc5NWYwODIyKSwKLSAgICAgICAgIFRPQk4oMHhkYjBmYjI5MSwgMHhj
N2Y0YTQwYyksIFRPQk4oMHgyZTY5ZDljMSwgMHg3MzBkZGQ5MiksCi0gICAgICAgICBUT0JOKDB4
NzU0ZTEwNTQsIDB4NDlkNzY5ODcpLCBUT0JOKDB4OGEyNDkxMWQsIDB4NzY2MmRiODcpLAotICAg
ICAgICAgVE9CTigweDYxZmMxODEwLCAweDYwYTcxNjc2KSwgVE9CTigweGU4NTJkMWE4LCAweGY2
NmE4YWQxKSwKLSAgICAgICAgIFRPQk4oMHgxNzJiYmQ2NSwgMHg2NDE3MjMxZSksIFRPQk4oMHgw
ZDZkZTdiZCwgMHgzYmFiYjExZiksCi0gICAgICAgICBUT0JOKDB4NmZkZTZmODgsIDB4YzhlMzQ3
ZjgpLCBUT0JOKDB4MWM1ODc1NDcsIDB4OWJkOTljYzMpLAotICAgICAgICAgVE9CTigweDc4ZTU0
ZWQwLCAweDM0MDc2OTUwKSwgVE9CTigweDk3ZjBmMzM0LCAweDc5NmU4M2JhKSwKLSAgICAgICAg
IFRPQk4oMHhlNGRiZTFjZSwgMHg0OTI0ODY3YSksIFRPQk4oMHhiZDVmNTFiMCwgMHg2MGI4NDkx
NyksCi0gICAgICAgICBUT0JOKDB4Mzc1MzAwNDAsIDB4M2NiMDlhNzkpLCBUT0JOKDB4ZGIzZmUw
ZjgsIDB4ZmYxNzQzZDgpLAotICAgICAgICAgVE9CTigweGVkNzg5NGQ4LCAweDU1NmZhOWRiKSwg
VE9CTigweGZhMjYyMTY5LCAweDIzNDEyZmJmKSwKLSAgICAgICAgIFRPQk4oMHg1NjNiZTBkYiwg
MHhiYTdiOTI5MSksIFRPQk4oMHg2Y2E4YjhjMCwgMHgwYzlmYjIzNCksCi0gICAgICAgICBUT0JO
KDB4ZWQ0MDZhYTksIDB4YmQ3NjM4MDIpLCBUT0JOKDB4YzIxNDg2YTAsIDB4NjUzMDNkYTEpLAot
ICAgICAgICAgVE9CTigweDYxYWUyOTFlLCAweGM3ZTYyZWM0KSwgVE9CTigweDYyMmEwNDkyLCAw
eGRmOTkzMzNlKSwKLSAgICAgICAgIFRPQk4oMHg3ZmQ4MGM5ZCwgMHhiYjdhOGVlMCksIFRPQk4o
MHhkYzJlZDNiYywgMHg2YzAxYWVkYiksCi0gICAgICAgICBUT0JOKDB4MzVjMzVhMTIsIDB4MDhi
ZTc0ZWMpLCBUT0JOKDB4ZDU0MGNiMWEsIDB4NDY5ZjY3MWYpLAotICAgICAgICAgVE9CTigweGQx
NmNlZDRlLCAweGNmODRmNmM3KSwgVE9CTigweDg1NjFmYjljLCAweDJkMDkwZjQzKSwKLSAgICAg
ICAgIFRPQk4oMHg3ZTY5M2Q3OSwgMHg2ZjIzOWRiNCksIFRPQk4oMHhhNzM2ZjkyOCwgMHg3N2Jk
MGQ5NCksCi0gICAgICAgICBUT0JOKDB4MDdiNGQ5MjksIDB4MmMxOTUwZWUpLCBUT0JOKDB4ZGEx
Nzc1NDMsIDB4NTZkYzExYjMpLAotICAgICAgICAgVE9CTigweGE1ZGZiYmFhLCAweDdhNmE4Nzhl
KSwgVE9CTigweDFjNzBjYjI5LCAweDRkZWNiMDhhKSwKLSAgICAgICAgIFRPQk4oMHhmYmEyOGM4
YiwgMHg2ZjBmN2M1MCksIFRPQk4oMHhhOGViYTJiOCwgMHg4NTRkY2M2ZCksCi0gICAgICAgICBU
T0JOKDB4NWZmOGU4OWEsIDB4MzZiNzg2NDIpLCBUT0JOKDB4MDcwYzFjOGUsIDB4ZjY4NzNhZGYp
LAotICAgICAgICAgVE9CTigweGJiZDNjMzcxLCAweDY0ODRkMmU0KSwgVE9CTigweGZiNzgzMThm
LCAweDBkNDE0MTI5KSwKLSAgICAgICAgIFRPQk4oMHgyNjIxYTM5YywgMHg2YWQ5M2IwYiksIFRP
Qk4oMHg5NzlkNzRjMiwgMHhhOWU5MTdmNyksCi0gICAgICAgICBUT0JOKDB4ZmMxOTU2NDcsIDB4
NjFmYjA0MjgpLCBUT0JOKDB4NGQ3ODk1NGEsIDB4YmVlNjI0ZDQpLAotICAgICAgICAgVE9CTigw
eGI5NDg5NmUwLCAweGI4YWU4NmZkKSwgVE9CTigweDY2NjdhYzBjLCAweGM5MWM4YjEzKSwKLSAg
ICAgICAgIFRPQk4oMHg5ZjE4MDUxMiwgMHg0M2JjZjgzMiksIFRPQk4oMHhmYmFkZjhiNywgMHhh
MDAxMDEzNyksCi0gICAgICAgICBUT0JOKDB4YzY5YjQwODksIDB4YjNiYThhYTcpLCBUT0JOKDB4
ZmFjNGJhY2QsIDB4ZTY4N2NlODUpLAotICAgICAgICAgVE9CTigweDkxNjQwODhkLCAweDk3N2Vh
YjQwKSwgVE9CTigweDUxZjRjNWI2LCAweDI3NjBiMzkwKSwKLSAgICAgICAgIFRPQk4oMHhkMjM4
MjM4ZiwgMHgzNDBkZDU1MyksIFRPQk4oMHgzNTg1NjZjMywgMHhkYjFkMzFjOSksCi0gICAgICAg
ICBUT0JOKDB4M2E1YWQ2OWUsIDB4NTA2OGY1ZmYpLCBUT0JOKDB4ZjMxNDM1ZmMsIDB4ZGFmZjZi
MDYpLAotICAgICAgICAgVE9CTigweGFlNTQ5YTViLCAweGQ2ZGViZmYwKSwgVE9CTigweDU5ZTVm
MGI3LCAweDc1ZTAxMzMxKSwKLSAgICAgICAgIFRPQk4oMHg1ZDQ5MmZiOCwgMHg5ODU1OWFjZiks
IFRPQk4oMHg5NjAxOGMyZSwgMHg0ZGI3OWI1MCksCi0gICAgICAgICBUT0JOKDB4NTVmNGE0OGYs
IDB4NjA5ZjY2YWEpLCBUT0JOKDB4MTk0M2IzYWYsIDB4NDkwMGExNGYpLAotICAgICAgICAgVE9C
TigweGMyMjQ5NmRmLCAweDE1YTQwZDM5KSwgVE9CTigweGIyYTQ0Njg0LCAweDRjMjBmN2M1KSwK
LSAgICAgICAgIFRPQk4oMHg3NmEzNWFmYSwgMHgzYjk4NDA0YyksIFRPQk4oMHhiZWM3NTcyNSwg
MHhmZjVkMWI3NyksCi0gICAgICAgICBUT0JOKDB4YjY3YWExNjMsIDB4YmVhMDY0NDQpLCBUT0JO
KDB4MjdlOTViYjIsIDB4ZjcyNGI2ZjIpLAotICAgICAgICAgVE9CTigweDNjMjBlM2U5LCAweGQy
MzhjOGFiKSwgVE9CTigweDEyMTM3NTRlLCAweGRkZDZhZTE3KSwKLSAgICAgICAgIFRPQk4oMHg4
YzQzMTAyMCwgMHg3MTZlMGY3NCksIFRPQk4oMHg2Njc5YzgyZSwgMHhmZmMwOTVjMiksCi0gICAg
ICAgICBUT0JOKDB4MmViM2FkZjQsIDB4ZDBhYzI5MzIpLCBUT0JOKDB4MmNjOTcwZDMsIDB4MDFi
YjdhNzYpLAotICAgICAgICAgVE9CTigweDcwYzcxZjJmLCAweDc0MGYwZTY2KSwgVE9CTigweDU0
NWM2MTZiLCAweDJiNmIyM2NjKSwKLSAgICAgICAgIFRPQk4oMHg0NTI4Y2ZjYiwgMHhiNDBhOGJk
NyksIFRPQk4oMHhmZjgzOTYzMywgMHgyYWIyNzcyMiksCi0gICAgICAgICBUT0JOKDB4MDQ5MTI3
ZDksIDB4MDI1YWM5OWEpLCBUT0JOKDB4ZDMxNGQ0YTAsIDB4MmI2M2UzM2IpLAotICAgICAgICAg
VE9CTigweGM4YzMxMGU3LCAweDI4ZDg0NTE5KSwgVE9CTigweDBmY2I4OTgzLCAweGIzYmM4NGJh
KSwKLSAgICAgICAgIFRPQk4oMHgyY2M1MjI2MSwgMHgzODYzNDgxOCksIFRPQk4oMHg1MDE4MTRm
NCwgMHhiNDRjMmUwYiksCi0gICAgICAgICBUT0JOKDB4ZjdlMTgxYWEsIDB4NTRkZmRiYTMpLCBU
T0JOKDB4Y2ZkNThmZjAsIDB4ZTc1OTcxOGMpLAotICAgICAgICAgVE9CTigweGY5MGNkYjE0LCAw
eGQzYjUwN2E4KSwgVE9CTigweDU3YmQ0NzhlLCAweGM1MGJkYWQ4KSwKLSAgICAgICAgIFRPQk4o
MHgyOWMxOTdlMiwgMHg1MGU1ZjlhYSksIFRPQk4oMHg0ZGI2ZWVmOCwgMHhlNDBiYzg1NSksCi0g
ICAgICAgICBUT0JOKDB4MmNjOGYyMWEsIDB4ZDFmYzA2NTQpLCBUT0JOKDB4YzcxY2M5NjMsIDB4
ODEyNjlkNzMpLAotICAgICAgICAgVE9CTigweGVjZmJiMjA0LCAweDA3N2Y0OWY5KSwgVE9CTigw
eGRkZTkyNTcxLCAweGNhNTZiNzkzKSwKLSAgICAgICAgIFRPQk4oMHg5YWJlZDZhMywgMHhmOTdh
ZDhmNyksIFRPQk4oMHhlNmMxOWQzZiwgMHg5MjRkZTNiZCksCi0gICAgICAgICBUT0JOKDB4OGRj
ZTkyZjQsIDB4YTE0MGE4MDApLCBUT0JOKDB4ODVmNDRkMWUsIDB4MTMzN2FmMDcpLAotICAgICAg
ICAgVE9CTigweDU5NTNjMDhiLCAweDA5ZDY0YzUyKSwgVE9CTigweGExYjVlNDlmLCAweGY1ZGY5
NzQ5KSwKLSAgICAgICAgIFRPQk4oMHgzMzZhOGZiOCwgMHg1MjczNWY3ZCksIFRPQk4oMHhiMzMy
YjZkYiwgMHg5YWRkNjc2YiksCi0gICAgICAgICBUT0JOKDB4NTU4Yjg4YTAsIDB4YjQ1MTFhYTQp
LCBUT0JOKDB4MDk3ODg3NTIsIDB4ZGJkNWNjNTUpLAotICAgICAgICAgVE9CTigweDE2YjQzYjlj
LCAweGQ4Y2Q1MmJkKSwgVE9CTigweDdmMGJjNWEwLCAweGMyYTI2OTZiKSwKLSAgICAgICAgIFRP
Qk4oMHgxNDZlMTJkNCwgMHhjMTFmNjFlZiksIFRPQk4oMHg5Y2UxMDc1NCwgMHgzYTgzZTc5ZSks
Ci0gICAgICAgICBUT0JOKDB4MDhlYzczZDksIDB4NmNiZmNhMTUpLCBUT0JOKDB4MDlmZjI5YWQs
IDB4NWI0OTY1M2YpLAotICAgICAgICAgVE9CTigweGUzMWI3MmJkLCAweGU3ZGE5NDZlKSwgVE9C
TigweGViZjllYjNiLCAweGVlODBhNGYyKSwKLSAgICAgICAgIFRPQk4oMHhkMWFhYmQwOCwgMHgx
NzU5OGNlNCksIFRPQk4oMHgxOGI1ZmVmNCwgMHg1M2YzN2U4MCksCi0gICAgICAgICBUT0JOKDB4
ZDVkNWNkZDMsIDB4NTk1OGNkNzkpLCBUT0JOKDB4MzU4MGExYjUsIDB4MWQzNzMxMTQpLAotICAg
ICAgICAgVE9CTigweGEzNmU0YzkxLCAweGZhOTM1NzI2KSwgVE9CTigweGEzOGM1MzRkLCAweGVm
MjBkNzYwKSwKLSAgICAgICAgIFRPQk4oMHg3MDg4ZTQwYSwgMHgyZmY1ODQ1YiksIFRPQk4oMHhl
NWJiNDBiZCwgMHhiZDc4MTc3ZiksCi0gICAgICAgICBUT0JOKDB4NGYwNmE3YTgsIDB4ODU3Zjk5
MjApLCBUT0JOKDB4ZTNjYzNlNTAsIDB4ZTk2OGYwNWQpLAotICAgICAgICAgVE9CTigweDFkNjhi
N2ZlLCAweGU1NjgyZDI2KSwgVE9CTigweDUyMDZmNzZmLCAweGFlYzdmODdjKSwKLSAgICAgICAg
IFRPQk4oMHg0MTExMDUzMCwgMHgwNDE5NTFhYiksIFRPQk4oMHg1OGVjNTJjMSwgMHhkNGI1YTcx
YSksCi0gICAgICAgICBUT0JOKDB4ZjM0ODhmOTksIDB4MGY3NWNmOWEpLCBUT0JOKDB4ZjQxMTk1
MWYsIDB4YmE4MmQwZDUpLAotICAgICAgICAgVE9CTigweDI3ZWU3NWJlLCAweDYxODg5NWFiKSwg
VE9CTigweGVhZTA2MGQ0LCAweDZkOGFhYjE0KSwKLSAgICAgICAgIFRPQk4oMHg5YWUxZGY3Mywg
MHg3ZmI1NGRjMiksIFRPQk4oMHgxZjNlMzkxYiwgMHgyNTk2MzY0OSksCi0gICAgICAgICBUT0JO
KDB4MjQyZWMzMmEsIDB4ZmUwNTUwODEpLCBUT0JOKDB4NWJkNDUwZWYsIDB4ODQ5MWM5YmQpLAot
ICAgICAgICAgVE9CTigweDM2N2VmYzY3LCAweDk4MWViMzg5KSwgVE9CTigweGVkN2UxOTI4LCAw
eDNhMDU1MGQ1KSwKLSAgICAgICAgIFRPQk4oMHgzNjJlNzc2YiwgMHhhYjNjZTc1YyksIFRPQk4o
MHhlODkwZTMwOCwgMHgxZjI0YzUyMyksCi0gICAgICAgICBUT0JOKDB4Yjk2MWI2ODIsIDB4ZmVj
Y2VmNzYpLCBUT0JOKDB4OGI4ZTExZjUsIDB4OGJiYTZkOTIpLAotICAgICAgICAgVE9CTigweDhm
MmNjYzRjLCAweDJiMjM3NWM0KSwgVE9CTigweDBkN2Y3YTUyLCAweGUyZjg2Y2ZhKSwKLSAgICAg
ICAgIFRPQk4oMHhmZDk0ZDMwYSwgMHg5ZWZlNTYzMyksIFRPQk4oMHgyZDhkMjQ2YiwgMHg1NDUx
ZjkzNCksCi0gICAgICAgICBUT0JOKDB4MjIzNGM2ZTMsIDB4MjQ0ZTZhMDApLCBUT0JOKDB4ZGUy
YjViMGQsIDB4ZGRlYzhjNTApLAotICAgICAgICAgVE9CTigweDJjZTUzYzVhLCAweGJmNzc2ZjVi
KSwgVE9CTigweDZmNzI0MDcxLCAweDYwMzU3YjA1KSwKLSAgICAgICAgIFRPQk4oMHhiMjU5Mzcx
NywgMHg3MWJmM2Y3YSksIFRPQk4oMHg4N2QyNTAxYywgMHg0NDBjNGE5ZiksCi0gICAgICAgICBU
T0JOKDB4NDQwNTUyZTEsIDB4ODdiMDUzNDApLCBUT0JOKDB4YjdiZjdjYzgsIDB4MjE2MjRjMzIp
LAotICAgICAgICAgVE9CTigweDQxNTVhNmNlLCAweDIyZmFjZGRiKSwgVE9CTigweDVhNDIyOGNi
LCAweDg4OTgzN2VmKSwKLSAgICAgICAgIFRPQk4oMHhlZjg3ZDZkNiwgMHhmZDRmZDY3MSksIFRP
Qk4oMHhhMjMzNjg3ZSwgMHhjMmRhYTEwZSksCi0gICAgICAgICBUT0JOKDB4NzU2MjIyNDQsIDB4
MDNjMGViOTYpLCBUT0JOKDB4NzYzMmQxODQsIDB4OGJmMTliZTYpLAotICAgICAgICAgVE9CTigw
eDA1ZDBmOGU5LCAweDQwNzM1ZmY0KSwgVE9CTigweDNhM2U2ZTEzLCAweGMwMDkzMWYxKSwKLSAg
ICAgICAgIFRPQk4oMHgzMWNjZGU2YSwgMHhkYWZlM2YxOCksIFRPQk4oMHhmMzgxMzY2YSwgMHhj
ZmU1MTIwNyksCi0gICAgICAgICBUT0JOKDB4MjRjMjIyYTksIDB4NjAxNjdkOTIpLCBUT0JOKDB4
NjJmOWQ2ZjgsIDB4NzUyOWYxOGMpLAotICAgICAgICAgVE9CTigweDQxMjM5N2MwLCAweDAzNTNi
MTE0KSwgVE9CTigweDMzNGQ4OWRjLCAweGVmODA4MDQzKSwKLSAgICAgICAgIFRPQk4oMHhkOWVj
NjNiYSwgMHgyYTQzODNjZSksIFRPQk4oMHhjZWM4ZTkzNywgMHg1Y2Y5MmJhMCksCi0gICAgICAg
ICBUT0JOKDB4ZmI4YjQyODgsIDB4YzhiZTc0YzApLCBUT0JOKDB4NjdkNjkxMmYsIDB4MTA1ZDQz
OTEpLAotICAgICAgICAgVE9CTigweDdiOTk2YzQ2LCAweDFiOTEzMTQ5KSwgVE9CTigweDM2YWFl
MmVmLCAweDNhNGUwMmRhKSwKLSAgICAgICAgIFRPQk4oMHhiNjhhYTAwMywgMHg5NzJkZTU5NCks
IFRPQk4oMHgyODRlYzcwZCwgMHg0ZWM2ZDU0NSksCi0gICAgICAgICBUT0JOKDB4ZjNkMmIyZDAs
IDB4NjEzOTFkNTQpLCBUT0JOKDB4NjljNWQ1ZDYsIDB4ZmUxMTRlOTIpLAotICAgICAgICAgVE9C
TigweGJlMGYwMGI1LCAweGI0NDgyZGZmKSwgVE9CTigweGUxNTk2ZmE1LCAweGY1YmYzM2M1KSwK
LSAgICAgICAgIFRPQk4oMHgxMDU5NWI1NiwgMHg5NmE3MWNiYSksIFRPQk4oMHg5NDQ5MzhiMiwg
MHhmZGNhZGViNyksCi0gICAgICAgICBUT0JOKDB4YTI4MmRhNGMsIDB4ZmNjZDg0NzEpLCBUT0JO
KDB4OThlYzA1ZjMsIDB4MGQzN2JmZTEpLAotICAgICAgICAgVE9CTigweGUxNzFjZTFiLCAweDA2
OTgzMDRhKSwgVE9CTigweDJkNjkxNDQ0LCAweDIxYmRmNzliKSwKLSAgICAgICAgIFRPQk4oMHhk
MGNkM2I3NCwgMHgxYjIxZGVjMSksIFRPQk4oMHg3MTJlY2Q4YiwgMHgxNmExNWY3MSksCi0gICAg
ICAgICBUT0JOKDB4OGQ0YzAwYTcsIDB4MDBmZDU2ZTEpLCBUT0JOKDB4MDJlYzk2OTIsIDB4Zjk1
MjdjMTgpLAotICAgICAgICAgVE9CTigweDIxYzQ0OTM3LCAweDRhM2U0MmUxKSwgVE9CTigweDkx
NzZmYmFiLCAweDEzOTJhZTBhKSwKLSAgICAgICAgIFRPQk4oMHg4NzI2ZjFiYSwgMHg0NGI3YjYx
OCksIFRPQk4oMHhiNGQ3YWFlOSwgMHhmMWRlNDkxYyksCi0gICAgICAgICBUT0JOKDB4ZjkxZGY3
YjksIDB4MDdiNTgyYzApLCBUT0JOKDB4N2UxMTZjMzAsIDB4ZWY2MGFhM2EpLAotICAgICAgICAg
VE9CTigweDk5MjcwZjgxLCAweDQ2NjI2NWQ3KSwgVE9CTigweGIxNWI2ZmUyLCAweDRkZjdhZGYw
KSwKLSAgICAgICAgIFRPQk4oMHhmZTMzYjJkMywgMHhmOTczOGY3ZiksIFRPQk4oMHg0ODU1M2Fi
OSwgMHhkNmQ3MGY5NSksCi0gICAgICAgICBUT0JOKDB4MmNjNzJhYzgsIDB4YzIxZTk0ZGIpLCBU
T0JOKDB4Nzk1YWMzOGQsIDB4YmRjMGJiZWUpLAotICAgICAgICAgVE9CTigweDBhMWJlNDQ5LCAw
eDJlNDA0NzhmKSwgVE9CTigweDgxYmQzMzk0LCAweDA1MmJkZTU1KSwKLSAgICAgICAgIFRPQk4o
MHg2M2M4ZGJlOSwgMHg1NmIzYzRmMiksIFRPQk4oMHgwMTdhOTljZiwgMHg5MDQxNzdjYyksCi0g
ICAgICAgICBUT0JOKDB4OTQ3YmJkZGIsIDB4NGQwMTBmYzEpLCBUT0JOKDB4YWNmOWIwMGIsIDB4
YmIyYzliMjEpLAotICAgICAgICAgVE9CTigweDI5NzBiYzhkLCAweDQ3MTczNjExKSwgVE9CTigw
eDFhNGNiZTA4LCAweGFjN2Q3NTZmKSwKLSAgICAgICAgIFRPQk4oMHgwNmQ5ZjRhYSwgMHg2N2Q1
NDFhMiksIFRPQk4oMHhhM2U4YjY4OSwgMHg1OWMyY2Y0NCksCi0gICAgICAgICBUT0JOKDB4YWFk
MDY2ZGEsIDB4NGQ4OGYxZGQpLCBUT0JOKDB4YzYwNGYxNjUsIDB4N2FkMzVkZWEpLAotICAgICAg
ICAgVE9CTigweDdlZGMwNzIwLCAweDQ0NzhjYTY3KSwgVE9CTigweGExMGRmYWUwLCAweGJhMDJj
ZTA2KSwKLSAgICAgICAgIFRPQk4oMHhlY2ViMWM3NiwgMHhhZjM2ZjRlNCksIFRPQk4oMHg5OTRi
MjI5MiwgMHhhZjNmOGY0OCksCi0gICAgICAgICBUT0JOKDB4YmY5ZWQ3N2IsIDB4NzdjOGE2OGMp
LCBUT0JOKDB4NzRmNTQ0ZWEsIDB4NTE3NDRjOWQpLAotICAgICAgICAgVE9CTigweDgyZDA1YmI5
LCAweDgxMTNhNzU3KSwgVE9CTigweDRlZjJkMmI0LCAweDhhOTg4NWU0KSwKLSAgICAgICAgIFRP
Qk4oMHgxZTMzMmJlNSwgMHgxYWE3ODY1ZiksIFRPQk4oMHgyMmI3NmIxOCwgMHgyOTBkMWE1Miks
Ci0gICAgICAgICBUT0JOKDB4MzA4YTIzMTAsIDB4NDQzNTE2ODMpLCBUT0JOKDB4OWQ4NjE4OTYs
IDB4YTNmMjI4NDApLAotICAgICAgICAgVE9CTigweDU5NTlkZGNkLCAweDg0MWVkOTQ3KSwgVE9C
TigweDBkZWYwYzk0LCAweDE1NGI3M2JmKSwKLSAgICAgICAgIFRPQk4oMHhmMDEwNTQxNywgMHg0
YzdjMTVlMCksIFRPQk4oMHg1MzliZmIwMiwgMHgzYTI3N2MzMiksCi0gICAgICAgICBUT0JOKDB4
ZTY5OTI2OGUsIDB4ZjlkY2NmNWYpLCBUT0JOKDB4OWY1Nzk2YTUsIDB4MDI0N2EzYmQpLAotICAg
ICAgICAgVE9CTigweDhiODM5ZGU4LCAweDRmMTU3MjY5KSwgVE9CTigweGM4MjVjMWU1LCAweDdh
MzAxOTZiKSwKLSAgICAgICAgIFRPQk4oMHg2ZWYwYWFiYywgMHhkYzhhNWE5MSksIFRPQk4oMHhm
NGE4Y2U2YywgMHg0OThiN2ZlNiksCi0gICAgICAgICBUT0JOKDB4MWNjZTM1YTcsIDB4NzBjYmFj
NzgpLCBUT0JOKDB4ODM0ODhlOWIsIDB4ZjZiMjM5NTgpLAotICAgICAgICAgVE9CTigweDAzNDFh
MDcwLCAweGQ3NmNiMDExKSwgVE9CTigweGRhNmM5ZDA2LCAweGFlMWIyNjU4KSwKLSAgICAgICAg
IFRPQk4oMHhiNzAxZmIzMCwgMHhkZDY0OGM1MiksIFRPQk4oMHg5OTRjYTAyYywgMHg1MmZiOWZk
MSksCi0gICAgICAgICBUT0JOKDB4MDY5MzMxMTcsIDB4NmY1NjMwODYpLCBUT0JOKDB4M2QyYjgx
MDAsIDB4MTc4NTZiYWIpLAotICAgICAgICAgVE9CTigweGU4OWY0OGM4LCAweDU5NjNhNDZlKSwg
VE9CTigweDY1OGFiODc1LCAweGE5OWU2MWM3KSwKLSAgICAgICAgIFRPQk4oMHg2ZTI5NmY4Nywg
MHg0Yjg1MTdiNCksIFRPQk4oMHgzNmM0ZmNkYywgMHhmYzFiYzY1NiksCi0gICAgICAgICBUT0JO
KDB4ZGU1MjI3YTEsIDB4YTM5MDZkZWYpLCBUT0JOKDB4OWZlOTVmNTcsIDB4NjI0MTg5NDUpLAot
ICAgICAgICAgVE9CTigweDIwYzkxZTgxLCAweGZkZDk2Y2RlKSwgVE9CTigweDVhZGJlNDdlLCAw
eGRhNDQ4MGRlKSwKLSAgICAgICAgIFRPQk4oMHhhMDA5MzcwZiwgMHgzOTZkZTJiNiksIFRPQk4o
MHg5ODU4M2Q0YiwgMHhmMGVjYzdiZCksCi0gICAgICAgICBUT0JOKDB4ZjQ0ZjZiNTcsIDB4ZTUx
ZDA2NzIpLCBUT0JOKDB4MDNkNmIwNzgsIDB4NTU2YjE5ODQpLAotICAgICAgICAgVE9CTigweDI3
ZGJkZDkzLCAweGIwYjY0OTEyKSwgVE9CTigweDliM2EzNDM0LCAweDE1Njg3YjA5KSwKLSAgICAg
ICAgIFRPQk4oMHgwZGJhNjQ2MSwgMHg1MWVjMjBhOSksIFRPQk4oMHhlYzkzZGI3ZiwgMHhmZjI4
MTg3YyksCi0gICAgICAgICBUT0JOKDB4MDBmZjhjMjQsIDB4NjZlNDhiZGQpLCBUT0JOKDB4MjUx
NGYyZjksIDB4MTFjY2Q3OGUpLAotICAgICAgICAgVE9CTigweGViYTExZjRmLCAweGUxMjUwNjAz
KSwgVE9CTigweDhhMjJjZDQxLCAweDI0M2ZhMTU2KSwKLSAgICAgICAgIFRPQk4oMHhhNGU1OGRm
NCwgMHhiMjgzZTRjNiksIFRPQk4oMHg3OGMyOTg1OSwgMHg4YjM5NzgzZiksCi0gICAgICAgICBU
T0JOKDB4NTIzNWFlZTIsIDB4YTUyNTk4MDkpLCBUT0JOKDB4YzE2Mjg0YjUsIDB4MGUwMjI3ZGQp
LAotICAgICAgICAgVE9CTigweGE1ZjU3OTE2LCAweDEzMzg4MzBkKSwgVE9CTigweDZkNGI4YTZi
LCAweGQyMTIzZmNhKSwKLSAgICAgICAgIFRPQk4oMHgyMzZlYTY4YSwgMHhmOWM1NDZmOCksIFRP
Qk4oMHhjMWQzNjg3MywgMHhmYTYwOGQzNiksCi0gICAgICAgICBUT0JOKDB4Y2Q3NmU0OTUsIDB4
OGQ0MzZkMTMpLCBUT0JOKDB4ZDRkOWMyMjEsIDB4OGZiMDgwYWYpLAotICAgICAgICAgVE9CTigw
eDY2NWMxNzI4LCAweGU4YWQzZmI1KSwgVE9CTigweGNmMWViZTRkLCAweGIzZDU3MmUwKSwKLSAg
ICAgICAgIFRPQk4oMHhhN2E4NzQ2YSwgMHg1ODRjNWUyMCksIFRPQk4oMHgyNjdlNGVhMSwgMHhi
OWRjNzAzNSksCi0gICAgICAgICBUT0JOKDB4NTkzYTE1Y2YsIDB4Yjk1NDhjOWIpLCBUT0JOKDB4
NWU2ZTIxMzUsIDB4NGJkMDEyZjMpLAotICAgICAgICAgVE9CTigweGRmMzFjYzZhLCAweDhjOGY5
MzZlKSwgVE9CTigweDhhZjg0ZDA0LCAweGI1YzI0MWRjKSwKLSAgICAgICAgIFRPQk4oMHg2Mzk5
MGE2ZiwgMHgzNDVlZmI4NiksIFRPQk4oMHg2ZmVmNGU2MSwgMHhiOWI5NjJjYil9LAotICAgICAg
ICB7VE9CTigweGY2MzY4ZjA5LCAweDI1NzIyNjA4KSwgVE9CTigweDEzMTI2MGRiLCAweDEzMWNm
NWM2KSwKLSAgICAgICAgIFRPQk4oMHg0MGViMzUzYiwgMHhmYWI0ZjdhYyksIFRPQk4oMHg4NWM3
ODg4MCwgMHgzN2VlZTgyOSksCi0gICAgICAgICBUT0JOKDB4NGMxNTgxZmYsIDB4YzNiZGYyNGUp
LCBUT0JOKDB4NWJmZjc1Y2IsIDB4ZjVjM2M1YTgpLAotICAgICAgICAgVE9CTigweDM1ZThjODNm
LCAweGExNGU2ZjQwKSwgVE9CTigweGI4MWQxYzBmLCAweDAyOTVlMGNhKSwKLSAgICAgICAgIFRP
Qk4oMHhmY2RlN2NjOCwgMHhmNDNhNzMwZiksIFRPQk4oMHhlODliNmYzYywgMHgzM2FiNTkwZSks
Ci0gICAgICAgICBUT0JOKDB4YzgyM2Y1MjksIDB4YWQwMzI0MGIpLCBUT0JOKDB4ODJiNzlhZmUs
IDB4OThiZWE1ZGIpLAotICAgICAgICAgVE9CTigweDU2OGYyODU2LCAweDk2MmZlNWRlKSwgVE9C
TigweDBjNTkwYWRiLCAweDYwYzU5MWYzKSwKLSAgICAgICAgIFRPQk4oMHgxZmM3NGExNCwgMHg0
YTI4YTg1OCksIFRPQk4oMHgzYjY2MjQ5OCwgMHhiMzIwM2Y0YyksCi0gICAgICAgICBUT0JOKDB4
OTFlM2NmMGQsIDB4NmMzOTc2NWEpLCBUT0JOKDB4YTJkYjNhY2QsIDB4YWMzY2NhMGIpLAotICAg
ICAgICAgVE9CTigweDI4OGYyZjA4LCAweGNiOTUzYjUwKSwgVE9CTigweDI0MTQ1ODJjLCAweGNm
NDNjZjFhKSwKLSAgICAgICAgIFRPQk4oMHg4ZGVjOGJiYywgMHg2MGVlZTlhOCksIFRPQk4oMHg1
NGM3OWYwMiwgMHg3MjlhYTA0MiksCi0gICAgICAgICBUT0JOKDB4ZDgxY2Q1ZWMsIDB4NjUzMmY1
ZDUpLCBUT0JOKDB4YTY3MjMwM2EsIDB4Y2Y4MmUxNWYpLAotICAgICAgICAgVE9CTigweDM3NmFh
ZmE4LCAweDcxOWMwNTYzKSwgVE9CTigweGNkOGFkMmRjLCAweGJjNWZjNzlmKSwKLSAgICAgICAg
IFRPQk4oMHgzMDNmZGI5ZiwgMHhjYjc1MGNkMyksIFRPQk4oMHgxNGZmMDUyZiwgMHg0NDE4YjA4
ZSksCi0gICAgICAgICBUT0JOKDB4Zjc1MDg0Y2YsIDB4M2UyZDY1MjApLCBUT0JOKDB4N2ViZGYw
ZjgsIDB4MTQ0ZWQ1MDkpLAotICAgICAgICAgVE9CTigweGY0M2JmMGYyLCAweGQzZjI1Yjk4KSwg
VE9CTigweDg2YWQ3MWNmLCAweGEzNTRkODM3KSwKLSAgICAgICAgIFRPQk4oMHhiODI3ZmU5Miwg
MHgyNmY0MzU3MiksIFRPQk4oMHhkZmQzYWI1YiwgMHg1ZDgyNDc1OCksCi0gICAgICAgICBUT0JO
KDB4MzE1ZGQyM2EsIDB4NTM5MDk0YzEpLCBUT0JOKDB4ODVjMGUzN2EsIDB4NjY2MjNkNjgpLAot
ICAgICAgICAgVE9CTigweDU3NWM3OTcyLCAweDdiZTE5YWUwKSwgVE9CTigweDYxNmEzMzk2LCAw
eGRmMGQzNmI1KSwKLSAgICAgICAgIFRPQk4oMHhhMWViYjNjOCwgMHgyNmIxZmY3ZSksIFRPQk4o
MHg2MzViOTQ4NSwgMHgxNDBhZDQ1MyksCi0gICAgICAgICBUT0JOKDB4OTJiZjNjZGEsIDB4ZGE0
MzBjMGIpLCBUT0JOKDB4NDcwMjg1MGUsIDB4M2E5NmRhYzYpLAotICAgICAgICAgVE9CTigweGM5
MWNmMGE1LCAweDE1YWMzMjZhKSwgVE9CTigweDk1ZGU0ZjQ5LCAweGFiOGMyNWU0KSwKLSAgICAg
ICAgIFRPQk4oMHhiMDFiYWQwOSwgMHhlMjY1YzE3YyksIFRPQk4oMHgyNGU0NTQ2NCwgMHgwODdi
Mzg4MSksCi0gICAgICAgICBUT0JOKDB4ZDQzZTU4M2MsIDB4ZTFmYWM1Y2EpLCBUT0JOKDB4ZTE3
Y2IzMTgsIDB4NmVhZDk3YTYpLAotICAgICAgICAgVE9CTigweDZjYzM5MjQzLCAweDc0ZGNlYzQ2
KSwgVE9CTigweDMzY2ZjMDJkLCAweDU0YzJiNzNmKSwKLSAgICAgICAgIFRPQk4oMHg4MjkxNzg0
NCwgMHhmMjZjZDk5YyksIFRPQk4oMHg4ODE5ZGQ5NSwgMHhkMTc3M2Y4OSksCi0gICAgICAgICBU
T0JOKDB4MDk1NzJhYTYsIDB4MDg3MWY0MjcpLCBUT0JOKDB4OGUwY2YzNjUsIDB4ZjZmMDFjMzQp
LAotICAgICAgICAgVE9CTigweDdmYTUyOTg4LCAweGJmZjFmNWFmKSwgVE9CTigweDRlYjM1N2Vh
LCAweGU3NWU4ZTUwKSwKLSAgICAgICAgIFRPQk4oMHhkOWQwYzhjNCwgMHg4NjhhZjc1ZCksIFRP
Qk4oMHhkNzMyNWNmZiwgMHg0NWM4YzdlYSksCi0gICAgICAgICBUT0JOKDB4YWI0NzE5OTYsIDB4
Y2M4MWVjYjApLCBUT0JOKDB4ZmY1ZDU1ZjMsIDB4NjExODI0ZWQpLAotICAgICAgICAgVE9CTigw
eGJlMzE0NTQxLCAweDE5NzdhMGVlKSwgVE9CTigweDUwODVjNGM1LCAweDcyMjAzOGM2KSwKLSAg
ICAgICAgIFRPQk4oMHgyZDUzMzViZiwgMHhmOTRiYjQ5NSksIFRPQk4oMHg4OTRhZDhhNiwgMHhj
OGUyYTA4MiksCi0gICAgICAgICBUT0JOKDB4NWMzZTIzNDEsIDB4YWRhMzU0MzgpLCBUT0JOKDB4
ZjRhOWZjODksIDB4MDQ5YjhjNGUpLAotICAgICAgICAgVE9CTigweGJlZWIzNTVhLCAweDlmMTdj
ZjM0KSwgVE9CTigweDNmMzExZTBlLCAweDZjOTFmZTEwKSwKLSAgICAgICAgIFRPQk4oMHhjMmQy
MDAzOCwgMHg5MmFiOTg5MSksIFRPQk4oMHgyNTdiZGNjMSwgMHgzZThjZTlhOSksCi0gICAgICAg
ICBUT0JOKDB4MWIyZDk3ODksIDB4ODhjNTNiZWUpLCBUT0JOKDB4OTI3Y2U4OWEsIDB4Y2RiYTE0
M2EpLAotICAgICAgICAgVE9CTigweGIwYTMyY2NhLCAweDUyM2RiMjgwKSwgVE9CTigweDVjODg5
ZjhhLCAweDUwZDQzNzgzKSwKLSAgICAgICAgIFRPQk4oMHg1MDNlMDRiMywgMHg0ODk3ZDE2Ziks
IFRPQk4oMHg4Y2RiNmU3OCwgMHgwOGY1ZjJlOCksCi0gICAgICAgICBUT0JOKDB4NmFiOTFjZjAs
IDB4MTc5YzhlNzQpLCBUT0JOKDB4ZDg4NzRlNTIsIDB4NDgyMTFkNjApLAotICAgICAgICAgVE9C
TigweGY5NDhkNGQ1LCAweGVhODUxMjAwKSwgVE9CTigweDQwNzZkNDFlLCAweGU2Zjk4NDBhKSwK
LSAgICAgICAgIFRPQk4oMHhjMjBlMjYzYywgMHg0N2I1MTdlYSksIFRPQk4oMHg3OWE0NDhmZCwg
MHgzMDY4NWU1ZSksCi0gICAgICAgICBUT0JOKDB4ZTU1ZjZmNzgsIDB4ZjkwNjMxYTApLCBUT0JO
KDB4ODhhNzkwYjEsIDB4YTc5ZTYzNDYpLAotICAgICAgICAgVE9CTigweDYyMTYwYzdkLCAweDgw
OTY5ZmU4KSwgVE9CTigweDU0ZjkyZmQ0LCAweDQxNDkxYmI5KSwKLSAgICAgICAgIFRPQk4oMHhh
NjY0NWMyMywgMHg1Yzk1NzUyNiksIFRPQk4oMHhmNDRjYzVhZSwgMHhiZWEzY2U3YiksCi0gICAg
ICAgICBUT0JOKDB4Zjc2MjgzMjcsIDB4OGIxZTY4YjcpLCBUT0JOKDB4YzczMWFkN2EsIDB4MzAz
ZjI5ZDMpLAotICAgICAgICAgVE9CTigweGZlNWE5Y2E5LCAweDU3ZDAzZWNiKSwgVE9CTigweDk2
YzBkNTBjLCAweDQxYmM5N2E3KSwKLSAgICAgICAgIFRPQk4oMHhjNDY2OWZlNywgMHg5YjRmN2Yy
NCksIFRPQk4oMHhmZGQ3ODFkOCwgMHgzZDk5NjdlZiksCi0gICAgICAgICBUT0JOKDB4Nzg5MmM3
YzMsIDB4NWQyYzIwOGQpLCBUT0JOKDB4OGJmNjRmN2MsIDB4YWU1NDVjYjMpLAotICAgICAgICAg
VE9CTigweGMwMWY4NjJjLCAweDQ2N2JlOTEyKSwgVE9CTigweGY0Yzg1ZWU5LCAweGM3M2QzMGNj
KSwKLSAgICAgICAgIFRPQk4oMHgxZmE2ZjRiZSwgMHg2YWI4M2VjNyksIFRPQk4oMHhhMDdhM2Mx
YywgMHg0ZTNlM2NmOSksCi0gICAgICAgICBUT0JOKDB4ODdmOGVmNDUsIDB4MGMwMGJlYjMpLCBU
T0JOKDB4MzBlMmMyYjMsIDB4MDAwZDRjM2UpLAotICAgICAgICAgVE9CTigweDFhYTAwYjk0LCAw
eGZlMDhiZjViKSwgVE9CTigweDMyYzEzM2FhLCAweDkyMjRlZjUyKSwKLSAgICAgICAgIFRPQk4o
MHgzOGRmMTZiYiwgMHgzMmU1Njg1ZCksIFRPQk4oMHg2OGE5ZTA2OSwgMHg1OGU2ZjU0NCksCi0g
ICAgICAgICBUT0JOKDB4NDk1YWFmZjcsIDB4Y2RjNWViYzYpLCBUT0JOKDB4Zjg5NGE2NDUsIDB4
Mzc4YjEzNWYpLAotICAgICAgICAgVE9CTigweGYzMTYzNTBhLCAweDA5ZTI3ZWNmKSwgVE9CTigw
eGVjZWQyMDFlLCAweDU4ZjcxNzlkKSwKLSAgICAgICAgIFRPQk4oMHgyZWVjMjczYywgMHhlOTc4
NjFiYSksIFRPQk4oMHg0N2VjMmNhZSwgMHhkNjkzYmUyZSksCi0gICAgICAgICBUT0JOKDB4ZmE0
Yzk3YzQsIDB4ZjY4MzY3Y2UpLCBUT0JOKDB4ZTRmNDdkMGIsIDB4YmU1YTU3NTUpLAotICAgICAg
ICAgVE9CTigweDE3ZGU4MTVkLCAweGIyOThhOTc5KSwgVE9CTigweGQ3ZWNhNjU5LCAweGMxNzdk
YzdkKSwKLSAgICAgICAgIFRPQk4oMHgyMGZkYmI3MSwgMHg0OWRlZDBhMyksIFRPQk4oMHg0Y2Iy
YWFkNCwgMHhmYjM0ZDNjNSksCi0gICAgICAgICBUT0JOKDB4MmNmMzFkMjgsIDB4NjA4NThhMzMp
LCBUT0JOKDB4M2I2ODczZWYsIDB4YTI0YWE0MGYpLAotICAgICAgICAgVE9CTigweDU0MDIzNGIy
LCAweDJjMTFiYjM3KSwgVE9CTigweDJkMDM2NmRkLCAweGVkNGM3NGEzKSwKLSAgICAgICAgIFRP
Qk4oMHhmOWE5NjhkYSwgMHhlZWM1ZjI1ZCksIFRPQk4oMHgzNjYwMTA2OCwgMHg2N2I2MzE0Miks
Ci0gICAgICAgICBUT0JOKDB4MDdjZDZkMmMsIDB4NjhkN2I2ZDQpLCBUT0JOKDB4YThmNzRmMDks
IDB4MGM4NDI5NDIpLAotICAgICAgICAgVE9CTigweGUyNzUxNDA0LCAweDc3NjhiMWVlKSwgVE9C
TigweDRiNWY3ZTg5LCAweGZlNjJhZWU0KSwKLSAgICAgICAgIFRPQk4oMHhjNmE3NzE3NywgMHg4
OTA3MGQyNiksIFRPQk4oMHhhMWYyOGU0ZSwgMHhkZDFjOGJjNyksCi0gICAgICAgICBUT0JOKDB4
ZWE1ZjRmMDYsIDB4NDY5ZTFmMTcpLCBUT0JOKDB4NzhmYzI0MmEsIDB4ZmJkYjc4ZTApLAotICAg
ICAgICAgVE9CTigweGM5YzdjNTkyLCAweDhiMDU4OGYxKSwgVE9CTigweGI2YjdhMGZkLCAweDE1
MzU5MjFlKSwKLSAgICAgICAgIFRPQk4oMHhjYzViZGI5MSwgMHhiZGU1YWUzNSksIFRPQk4oMHhi
NDJjNDg1ZSwgMHgxMmZmMTg2NCksCi0gICAgICAgICBUT0JOKDB4YTExMTNlMTMsIDB4ZGJhYjk4
YWEpLCBUT0JOKDB4ZGU5ZDQ2OWIsIDB4YTE3YjEwMjQpLAotICAgICAgICAgVE9CTigweDIzZjQ4
YjM3LCAweGMwNDYyZDNhKSwgVE9CTigweDM3NTJlNTM3LCAweDdjNWMwNzhkKSwKLSAgICAgICAg
IFRPQk4oMHhlM2E4NmFkZCwgMHgxNTU0NGViOSksIFRPQk4oMHhmMDEzYWVhNywgMHg4MGZiYTI3
OSksCi0gICAgICAgICBUT0JOKDB4OGI1YmI3NmMsIDB4ZjIyMDAxYjUpLCBUT0JOKDB4ZTYxN2Jh
MTQsIDB4ZjAyODkxYWIpLAotICAgICAgICAgVE9CTigweGQzOTE4MmE2LCAweDkzNjIxOWQzKSwg
VE9CTigweDVjZTFmMTk0LCAweGFlNTFjYjE5KSwKLSAgICAgICAgIFRPQk4oMHhjNzhmODU5OCwg
MHhiZjA3YTc0YyksIFRPQk4oMHg2ZDcxNThmMiwgMHgyMmNiZjFiYyksCi0gICAgICAgICBUT0JO
KDB4M2I4NDZiMjEsIDB4ZTMwMGNlMTgpLCBUT0JOKDB4MzVmYmE2MzAsIDB4MmQxMTI3NWQpLAot
ICAgICAgICAgVE9CTigweDVmZTI1YzM2LCAweGEwMjM5YjliKSwgVE9CTigweGQ4YmViMzVkLCAw
eGRmMDVkOTQwKSwKLSAgICAgICAgIFRPQk4oMHg0ZGIwMmJiMCwgMHgxZjdlMzIwZCksIFRPQk4o
MHgwNjQxYzM2NCwgMHg2ZGEzMjBlYSksCi0gICAgICAgICBUT0JOKDB4NmQ5NWZhNWQsIDB4ODIx
Mzg5YTMpLCBUT0JOKDB4OTI2OTk3NDgsIDB4OGZjZDhlM2QpLAotICAgICAgICAgVE9CTigweDMx
NmZlZjE3LCAweGNlYjZjMTQzKSwgVE9CTigweDY3ZmNiODQxLCAweGQ5MzM3NjJiKSwKLSAgICAg
ICAgIFRPQk4oMHhiYjgzN2UzNSwgMHgxMThiMTdmOCksIFRPQk4oMHg0YjkyNTUyZiwgMHg5ZmQy
NDgyMSksCi0gICAgICAgICBUT0JOKDB4YWU2YmM3MGUsIDB4NDZhY2E3OTMpLCBUT0JOKDB4MWNm
MGIwZTQsIDB4ZTU3OTMxMWIpLAotICAgICAgICAgVE9CTigweDhkYzYzMWJlLCAweDU4MDJmNzE2
KSwgVE9CTigweDA5OWJkYzZmLCAweGJkZGJlZTRkKSwKLSAgICAgICAgIFRPQk4oMHhjYzM1MmJi
MiwgMHgwY2FmOGIwNSksIFRPQk4oMHhmNzRkNTA1YSwgMHg3MmQ2M2RmMiksCi0gICAgICAgICBU
T0JOKDB4Yjk4NzZkNGIsIDB4OTFjNGY0MDgpLCBUT0JOKDB4MWNlMTg0NzMsIDB4OWUyMjliMmQp
LAotICAgICAgICAgVE9CTigweDQ5NTA3NTk3LCAweDgzYWJkYjRhKSwgVE9CTigweDg1MGZiY2I2
LCAweGRlZTg0YjE4KSwKLSAgICAgICAgIFRPQk4oMHg2MzI1MjM2ZSwgMHg2MDllNjdkYyksIFRP
Qk4oMHgwNGQ4MzFkOSwgMHg5MzM2YzZkOCksCi0gICAgICAgICBUT0JOKDB4OGRlYWFlM2IsIDB4
ZmExMmQ0NWQpLCBUT0JOKDB4ZTQyNWY4Y2UsIDB4NDc0NmUyNDYpLAotICAgICAgICAgVE9CTigw
eDgwMDRjMTc1LCAweDI0ZjVmMzFlKSwgVE9CTigweGFjYTE2ZDhmLCAweGFkNjJjM2I3KSwKLSAg
ICAgICAgIFRPQk4oMHgwZGMxNWE2YSwgMHg5MTUyZjkzNCksIFRPQk4oMHhmMTIzNWU1ZCwgMHhl
ZDBlMTJjMSksCi0gICAgICAgICBUT0JOKDB4YzMzYzA2ZWMsIDB4ZGE0NzdkYWMpLCBUT0JOKDB4
NzZiZTg3MzIsIDB4YjJlYTAwMDYpLAotICAgICAgICAgVE9CTigweGNmM2Y3ODMxLCAweDBjMGNk
MzEzKSwgVE9CTigweDNjNTI0NTUzLCAweGE2MTQyNjBkKSwKLSAgICAgICAgIFRPQk4oMHgzMWE3
NTZmOCwgMHhjYWIyMmQxNSksIFRPQk4oMHgwM2VlMTBkMSwgMHg3NzgyN2EyMCksCi0gICAgICAg
ICBUT0JOKDB4ZDFlMDU5YjIsIDB4MTk5NGVmMjApLCBUT0JOKDB4MmE2NTNiNjksIDB4NjM4YWUz
MTgpLAotICAgICAgICAgVE9CTigweDcwZDVlYjU4LCAweDJmNjk5MDEwKSwgVE9CTigweDI3OTcz
OWY3LCAweDA5ZjVmODRhKSwKLSAgICAgICAgIFRPQk4oMHg1ZGE0NjYzYywgMHg4Yjc5OTMzNiks
IFRPQk4oMHhmZGZkZjE0ZCwgMHgyMDNjMzdlYiksCi0gICAgICAgICBUT0JOKDB4MzJkOGE5ZGMs
IDB4YTFkYmZiMmQpLCBUT0JOKDB4YWI0MGNmZjAsIDB4NzdkNDhmOWIpLAotICAgICAgICAgVE9C
TigweGMwMThiMzgzLCAweGQyMGI0MmQ1KSwgVE9CTigweGY5YTgxMGVmLCAweDlmNzg4NDVmKSwK
LSAgICAgICAgIFRPQk4oMHg0MGFmMzc1MywgMHhiZGJhOWRmMCksIFRPQk4oMHhiOTBiZGNmYywg
MHgxMzFkZmRmOSksCi0gICAgICAgICBUT0JOKDB4MTg3MjA1OTEsIDB4ZjAxYWI3ODIpLCBUT0JO
KDB4YzgyM2YyMTEsIDB4NmFmMTJhODgpLAotICAgICAgICAgVE9CTigweGE1MWI4MGYzLCAweDBk
YzE0NDAxKSwgVE9CTigweGRlMjQ4Zjc3LCAweGZiMmRmYmUzKSwKLSAgICAgICAgIFRPQk4oMHhl
ZjVhNDRlNSwgMHgwY2FmZTc1MSksIFRPQk4oMHg3Mzk5N2M5YywgMHhkNGRjZDIyMSksCi0gICAg
ICAgICBUT0JOKDB4MzJmZDg2ZDEsIDB4ZGU4NTQwMjQpLCBUT0JOKDB4ZDViNTNhZGMsIDB4YTA5
Yjg0YmIpLAotICAgICAgICAgVE9CTigweDAwOGQ3YTExLCAweGRjZWRkOGQxKSwgVE9CTigweDQw
NmJkMWM4LCAweDc0YjMyYzg0KSwKLSAgICAgICAgIFRPQk4oMHg1ZDQ0NzJmZiwgMHgwNWRkZThi
MSksIFRPQk4oMHgyZTI1ZjJjZCwgMHhmY2UyYjMyZiksCi0gICAgICAgICBUT0JOKDB4YmVjMGRk
NWUsIDB4MjlkZmMyNTQpLCBUT0JOKDB4NDQ1NWZjZjYsIDB4MmI5OGIyNjcpLAotICAgICAgICAg
VE9CTigweDBiNGQ0M2E1LCAweGM3MmRmMmFkKSwgVE9CTigweGVhNzBlNmJlLCAweDQ4YTc1Mzk3
KSwKLSAgICAgICAgIFRPQk4oMHgyYWFkNjE2OSwgMHg1ODIwZjNiZiksIFRPQk4oMHhmNDEwZDJk
ZCwgMHg5ZTM3ZjY4ZiksCi0gICAgICAgICBUT0JOKDB4NzBmYjdkYmEsIDB4N2JlNWFjODMpLCBU
T0JOKDB4NjM2YmI2NDUsIDB4MzZlYzNlZWMpLAotICAgICAgICAgVE9CTigweDI3MTA0ZWEzLCAw
eDk3NTRlMjFjKSwgVE9CTigweGJjODdhM2U2LCAweDhkNjNjMzczKSwKLSAgICAgICAgIFRPQk4o
MHg0ODMzNTFkNywgMHg0MTA5ZGI5YSksIFRPQk4oMHgwZmE3MjRlMywgMHg2MDEzNGRhNyksCi0g
ICAgICAgICBUT0JOKDB4OWZmNDRjMjksIDB4YjA3MjBiMTYpLCBUT0JOKDB4MmRkMGNmMTMsIDB4
MDZhY2VlYWQpLAotICAgICAgICAgVE9CTigweDU5NDI3NThjLCAweGUyNjkyOWE2KSwgVE9CTigw
eDk2YzVkYjkyLCAweGI3NjZhOTJiKSwKLSAgICAgICAgIFRPQk4oMHhjZWM3ZDRjMCwgMHg1ZjE4
Mzk1ZSksIFRPQk4oMHhkM2YyMjc0NCwgMHgxZjgwZDAzMiksCi0gICAgICAgICBUT0JOKDB4N2E2
OGIzN2EsIDB4Y2I4NjA3NWIpLCBUT0JOKDB4MDc0NzY0ZGQsIDB4YWZlZjkyZGIpLAotICAgICAg
ICAgVE9CTigweGRlZDFlOTUwLCAweDdiYzdmMzg5KSwgVE9CTigweGM1ODBjODUwLCAweGI5NzU2
NDYwKSwKLSAgICAgICAgIFRPQk4oMHhhZWVlYzJhNCwgMHg3ZGE0ODE1NyksIFRPQk4oMHgzZjBi
NGU3ZiwgMHg4MmM1ODdiMyksCi0gICAgICAgICBUT0JOKDB4MjMxYzZkZTgsIDB4YTlmMTljNTMp
LCBUT0JOKDB4NTcxN2JkNzMsIDB4Njk3NGUzNGUpLAotICAgICAgICAgVE9CTigweGQ5ZTFkMjE2
LCAweGYxNTA4ZmE5KSwgVE9CTigweDlmMTEyMzYxLCAweGRhZGFhMTI0KSwKLSAgICAgICAgIFRP
Qk4oMHg4MDE0NWUzMSwgMHg4MjNiNzM0OCksIFRPQk4oMHg0ZGQ4ZjBkNSwgMHhhYzYzNDA2OSks
Ci0gICAgICAgICBUT0JOKDB4ZTNkODJmYzcsIDB4MjI5N2MyNTgpLCBUT0JOKDB4Mjc2ZmNmZWUs
IDB4OWNlZTc0MzEpLAotICAgICAgICAgVE9CTigweDhlYjYxYjVlLCAweDJiYzBhZWE5KSwgVE9C
TigweDRmNjY4ZmQ1LCAweGRlMzI5NDMxKSwKLSAgICAgICAgIFRPQk4oMHgwM2EzMmFiMSwgMHgz
OGU0Yjg3ZSksIFRPQk4oMHhlMTM3NDUxNywgMHg3M2QwZWYwYiksCi0gICAgICAgICBUT0JOKDB4
MWE0NmY3ZTYsIDB4ODUzYWM5ODMpLCBUT0JOKDB4YzNiZGY0MmUsIDB4NjhlNzhhNTcpLAotICAg
ICAgICAgVE9CTigweGFjZjIwNzg1LCAweDJlYTk2ZGQxKSwgVE9CTigweGExMDY0OWI5LCAweGYx
NjM4NDYwKSwKLSAgICAgICAgIFRPQk4oMHhmMjM2OWYwYiwgMHg4NzlmYmJlZCksIFRPQk4oMHgw
ZmYwYWU4NiwgMHhkYTlkMTg2OSksCi0gICAgICAgICBUT0JOKDB4NTI1MWQ3NTksIDB4NTY3NjZm
NDUpLCBUT0JOKDB4NDk4NGQ4YzAsIDB4MmJlOGQwZmMpLAotICAgICAgICAgVE9CTigweDdlY2M5
NWE2LCAweGQyMTAwOGYwKSwgVE9CTigweDI5YmQ1NGEwLCAweDNhMWExYzQ5KSwKLSAgICAgICAg
IFRPQk4oMHhhYjk4MjhjNSwgMHhkMjZjNTBmMyksIFRPQk4oMHgzMmMwMDg3YywgMHg1MWQwZDI1
MSksCi0gICAgICAgICBUT0JOKDB4OWJhYzNjZTYsIDB4MGMxY2RiMjYpLCBUT0JOKDB4Y2Q5NGQ5
NDcsIDB4NTU3Y2EyMDUpLAotICAgICAgICAgVE9CTigweDFiMWJkNTk4LCAweDlkYjFmZGNkKSwg
VE9CTigweDBlZGEwMTA4LCAweGEzZDhiMTQ5KSwKLSAgICAgICAgIFRPQk4oMHg5NTA2NjYxMCwg
MHg1NjE1MmZjYyksIFRPQk4oMHhjMmYwMzdlNiwgMHhlNzE5MmIzMyksCi0gICAgICAgICBUT0JO
KDB4ZGVmZmI0MWEsIDB4YzkyZTA1YTQpLCBUT0JOKDB4MTEwNWY2YzIsIDB4YzJmNmM2MmUpLAot
ICAgICAgICAgVE9CTigweDY4ZTczNTAwLCAweDg3MzM5MTNjKSwgVE9CTigweGNjZTg2MTYzLCAw
eDNmM2FkYzQwKSwKLSAgICAgICAgIFRPQk4oMHhmNDA3YTk0MiwgMHgzOGEyNzhlOSksIFRPQk4o
MHhkMTNjMWI5ZCwgMHgyYWIyMTI5MiksCi0gICAgICAgICBUT0JOKDB4OTNlZDdlYzcsIDB4MWM3
NGNmNWMpLCBUT0JOKDB4ODg4N2RjNDgsIDB4ZjFhNGMxYjQpLAotICAgICAgICAgVE9CTigweDM4
MzBmZjMwLCAweDRiM2ExMWYxKSwgVE9CTigweDM1OGM1YTNjLCAweDU4OTM3Y2I2KSwKLSAgICAg
ICAgIFRPQk4oMHgwMjdkYzQwNCwgMHg4OTAyMjgyOSksIFRPQk4oMHg0MGU5Mzk3NywgMHgzYjc5
OGY3OSksCi0gICAgICAgICBUT0JOKDB4OTBhZDMzMzcsIDB4MzhiZTZlYWQpLCBUT0JOKDB4OWMy
M2Y2YmMsIDB4ZjM0YzBhNWQpLAotICAgICAgICAgVE9CTigweGQxNzExYTM1LCAweGZiZmZkOGJi
KSwgVE9CTigweDYwZmNmYjQ5LCAweDE5NDlkM2RkKSwKLSAgICAgICAgIFRPQk4oMHgwOWM4ZWY0
YiwgMHg3ODI1ZDkzYSksIFRPQk4oMHgyNDIzM2NmZiwgMHhhMGE4Yzk2OCksCi0gICAgICAgICBU
T0JOKDB4NjdhZGU0NmMsIDB4ZTZkOTgyYWYpLCBUT0JOKDB4ZWJiNmJmM2UsIDB4ZTc1NDRkN2Mp
LAotICAgICAgICAgVE9CTigweGQ2YjliYTc2LCAweDNkOGJkMDg3KSwgVE9CTigweDQ2ZmUzODJk
LCAweDRkYzYxMjgwKSwKLSAgICAgICAgIFRPQk4oMHhiZDM5YTdlOCwgMHhiNWJkYmQ3NSksIFRP
Qk4oMHhhYjM4MTMzMSwgMHhiOGYyMjhmZSksCi0gICAgICAgICBUT0JOKDB4MDcwOWE3N2MsIDB4
Y2UxYzQzMDApLCBUT0JOKDB4NmEyNDdlNTYsIDB4ZjMzN2NlYWMpLAotICAgICAgICAgVE9CTigw
eDhmMzRmMjFiLCAweDYzNjI4OGJlKSwgVE9CTigweDlkZmRjYTc0LCAweGM4YTdjMzA1KSwKLSAg
ICAgICAgIFRPQk4oMHg2ZGVjZmQxYiwgMHhlYTkxOWUwNCksIFRPQk4oMHhjZGYyNjg4ZCwgMHg4
ZTE5OTFmOCksCi0gICAgICAgICBUT0JOKDB4ZTYwN2RmNDQsIDB4ZDBmOGE2N2UpLCBUT0JOKDB4
ZDk4NWRmNGIsIDB4MGI1OGQwMTApLAotICAgICAgICAgVE9CTigweDU3ZjgzNGM1LCAweDBjMjRm
OGY0KSwgVE9CTigweGU5NzZlZjU2LCAweGEwYmYwMWFlKSwKLSAgICAgICAgIFRPQk4oMHg1MzYz
OTVhYywgMHhhMWMzMjM3MyksIFRPQk4oMHgzNTEwMjdhYSwgMHg3MzRjMGExMyksCi0gICAgICAg
ICBUT0JOKDB4ZDJmMWI1ZDYsIDB4NWU2YmQ1YmMpLCBUT0JOKDB4MmI1MzllMjQsIDB4MjIzZGVi
ZWQpLAotICAgICAgICAgVE9CTigweGQ0OTk0Y2VjLCAweDBlYWExZDcxKSwgVE9CTigweDJhODMz
ODFkLCAweDY2MWRjZjY1KSwKLSAgICAgICAgIFRPQk4oMHg1ZjFhZWQyZiwgMHg3YjU0Yzc0MCks
IFRPQk4oMHgwYmVhM2ZhNSwgMHhkNmRkYTVlZSksCi0gICAgICAgICBUT0JOKDB4OWQ0ZmI2ODQs
IDB4MzZjYzYxMzQpLCBUT0JOKDB4OGViOWJiZjMsIDB4YzBhNDQzZGQpLAotICAgICAgICAgVE9C
TigweGZjNTAwZTJlLCAweDM4M2I3ZDJhKSwgVE9CTigweDdhYWQ2MjFjLCAweDViNzc1MjU3KSwK
LSAgICAgICAgIFRPQk4oMHg2OTI4NGQ3NCwgMHgwYThmN2NjMCksIFRPQk4oMHhlODIwYzJjZSwg
MHgwNzU2MmQ2NSksCi0gICAgICAgICBUT0JOKDB4YmY5NTMxYjksIDB4NDk5NzU4ZWUpLCBUT0JO
KDB4NzNlOTVjYTUsIDB4NmVlMGNjMmQpLAotICAgICAgICAgVE9CTigweGY2MTc5MGFiLCAweGZi
YWY1MGE1KSwgVE9CTigweGRmNTVlNzZiLCAweDY4NGUwNzUwKSwKLSAgICAgICAgIFRPQk4oMHhl
YzUxNmRhNywgMHhmMTc2YjAwNSksIFRPQk4oMHg1NzU1NTNiYiwgMHg3YTJkZGRjNyksCi0gICAg
ICAgICBUT0JOKDB4MzdjODdjYTMsIDB4NTUzYWZhNzMpLCBUT0JOKDB4MzE1ZjNmZmMsIDB4NGQ1
NWMyNTEpLAotICAgICAgICAgVE9CTigweGU4NDY0NDJhLCAweGFmM2U1ZDM1KSwgVE9CTigweDYx
YjkxMTQ5LCAweDY0OTVmZjI4KSwKLSAgICAgICAgIFRPQk4oMHgyM2NjOTVkMywgMHhmYTMyNmRj
MyksIFRPQk4oMHgxZGY0ZGExZiwgMHgxOGZjMmNlYSksCi0gICAgICAgICBUT0JOKDB4MjRiZjlh
ZGMsIDB4ZDBhMzdkNTkpLCBUT0JOKDB4YjY3MTAwNTMsIDB4MzIwZDZlMWUpLAotICAgICAgICAg
VE9CTigweDk2Zjk2NjdlLCAweDYxODM0NGQxKSwgVE9CTigweGNjN2NlMDQyLCAweGEwNjQ0NWFm
KSwKLSAgICAgICAgIFRPQk4oMHhhMDJkODUxNCwgMHhkNjhkYmMzYSksIFRPQk4oMHg0ZWExMDll
NCwgMHgyODBiNWE1YiksCi0gICAgICAgICBUT0JOKDB4NTc0MWE3YWMsIDB4YjQwOTYxYmYpLCBU
T0JOKDB4NGFkYTU5MzcsIDB4NmFhNTZiZmEpLAotICAgICAgICAgVE9CTigweDdmZWI5MTQ1LCAw
eDAyYjc2NWQxKSwgVE9CTigweDU2MWU5N2JlLCAweGU2YWQxNTgyKSwKLSAgICAgICAgIFRPQk4o
MHhiYmM0YTViNiwgMHhkYTM5ODJmNSksIFRPQk4oMHgwYzI2NTllZCwgMHhiNTQ2ZjQ2OCksCi0g
ICAgICAgICBUT0JOKDB4YjhlN2U2YWEsIDB4NTk2MTJkMjApLCBUT0JOKDB4ZDgzZGZlMjAsIDB4
YWMxOWU4ZTApLAotICAgICAgICAgVE9CTigweDg1MzBjNDVmLCAweGI4MzUzOThjKSwgVE9CTigw
eDYxMDZhOGJmLCAweGIzOGE0MWMyKSwKLSAgICAgICAgIFRPQk4oMHgyMWU4ZjlhNiwgMHgzNWY1
ZGNkYiksIFRPQk4oMHgzOTcwNzEzNywgMHhjYWU0OThlZCksCi0gICAgICAgICBUT0JOKDB4NzBj
MjM4MzQsIDB4ZDgyNDlmMDApLCBUT0JOKDB4OWYxNGI1OGYsIDB4YWIyNTM3YTApLAotICAgICAg
ICAgVE9CTigweGQwNDNjMzY1LCAweDVmNjFjMGMyKSwgVE9CTigweGRjNTkyNmQ2LCAweDA5YTE5
NGE3KSwKLSAgICAgICAgIFRPQk4oMHhkZGVjMDMzOSwgMHg4ZTc3NzM4YSksIFRPQk4oMHhkMDdh
NjNlZiwgMHhmYmE0NjQyNiksCi0gICAgICAgICBUT0JOKDB4MmU1OGU3OWMsIDB4ZWU3ZjZlODYp
LCBUT0JOKDB4ZTU5YjA0NTksIDB4ZmYzMmQyNDEpLAotICAgICAgICAgVE9CTigweGM1ZWM4NGU1
LCAweDIwZmEwMzM4KSwgVE9CTigweDk3OTM5YWM4LCAweGVhZmY1YWNlKSwKLSAgICAgICAgIFRP
Qk4oMHgwMzEwYTRlMywgMHhiNGEzODMxMyksIFRPQk4oMHg5MTE1ZmJhMiwgMHg4ZjlkOTg4NSks
Ci0gICAgICAgICBUT0JOKDB4OGRkNzEwYzIsIDB4NWZhZGY4YzMpLCBUT0JOKDB4NjZiZTM4YTIs
IDB4Y2UxOWMwZTIpLAotICAgICAgICAgVE9CTigweGQ0MmEyNzljLCAweDRjZmU1MDIyKSwgVE9C
TigweDU5N2JiNTMwLCAweDBlMjRlMWI4KSwKLSAgICAgICAgIFRPQk4oMHgzY2RlODZiNywgMHhj
MTUzY2E3ZiksIFRPQk4oMHhhOGQzMGZiMywgMHg3MDdkNjNiZCksCi0gICAgICAgICBUT0JOKDB4
YWM5MDVmOTIsIDB4YmQ2MGQyMWUpLCBUT0JOKDB4OThlN2ZmYjYsIDB4N2I5YTU0YWIpLAotICAg
ICAgICAgVE9CTigweGQ3MTQ3ZGY4LCAweGU5NzI2YTMwKSwgVE9CTigweGI1ZTIxNmZmLCAweGFm
Y2UzNTMzKSwKLSAgICAgICAgIFRPQk4oMHhiNTUwYjc5OSwgMHgyZmYxZWM0MCksIFRPQk4oMHg2
YjYxM2I4NywgMHhhMWU5NTNmZCksCi0gICAgICAgICBUT0JOKDB4ODdiODhkYmEsIDB4NzkyZDU2
MTApLCBUT0JOKDB4MmVlMTI3MGEsIDB4YTE5MGZiZTEpLAotICAgICAgICAgVE9CTigweDAyZjRl
MmRjLCAweDJlZjU4MWRhKSwgVE9CTigweDAxNjUzMGU0LCAweGVmZjgyYTk1KSwKLSAgICAgICAg
IFRPQk4oMHhjYmI5M2RmZCwgMHg4ZmQ2ZWU4OSksIFRPQk4oMHgxNmQzZDk4NiwgMHg0Njg0OGZm
ZiksCi0gICAgICAgICBUT0JOKDB4NjAwZWZmMjQsIDB4MWRhNDdhZGYpLCBUT0JOKDB4MWI5NzU0
YTAsIDB4MGFkNDdhNzEpLAotICAgICAgICAgVE9CTigweDhmOTI2NmRmLCAweDcwYzMzYjk4KSwg
VE9CTigweGFhZGM4N2FlLCAweGRmMzQxODZlKSwKLSAgICAgICAgIFRPQk4oMHgwZDJjZThlMSwg
MHg0YWQyNDEzMiksIFRPQk4oMHg4YTQ3Y2JmYywgMHgxOTk0NmViYSksCi0gICAgICAgICBUT0JO
KDB4NDdmZWViNjYsIDB4NjJiNWYzYWYpLCBUT0JOKDB4Y2VmYWI1NjEsIDB4MGFiYjM3MzQpLAot
ICAgICAgICAgVE9CTigweDQ0OWRlNjBlLCAweDE5ZjM1Y2IxKSwgVE9CTigweDM5ZjhkYjE0LCAw
eDE1N2YwZWI5KSwKLSAgICAgICAgIFRPQk4oMHhmZmFlY2M1YiwgMHgzYzYxYmZkNiksIFRPQk4o
MHhhNWE0ZDQxZCwgMHg0MTIxNjcwMyksCi0gICAgICAgICBUT0JOKDB4N2Y4ZmFiZWQsIDB4MjI0
ZTFjYzIpLCBUT0JOKDB4MGQ1YTgxODYsIDB4ODcxYWQ5NTMpLAotICAgICAgICAgVE9CTigweGYx
MDc3NGY3LCAweGQyMmRhOWE5KSwgVE9CTigweDQ1YjhhNjc4LCAweGNjOGE5YjBkKSwKLSAgICAg
ICAgIFRPQk4oMHhkOWMyZTcyMiwgMHhiZGMzMmNmZiksIFRPQk4oMHhiZjcxYjVmNSwgMHgzMzcy
MDJhNSksCi0gICAgICAgICBUT0JOKDB4OTVjNTdmMmYsIDB4NjlmYzRkYjkpLCBUT0JOKDB4YjZk
YWQzNGMsIDB4NzY1ZDAxZTEpLAotICAgICAgICAgVE9CTigweDdlMGJkMTNmLCAweGNiOTA0NjM1
KSwgVE9CTigweDYxNzUxMjUzLCAweDc2M2E1ODhjKSwKLSAgICAgICAgIFRPQk4oMHhkODVjMjk5
NywgMHg4MWFmMmMyZCksIFRPQk4oMHhjMGY3ZDljNCwgMHg4MWI5ZDdkYSksCi0gICAgICAgICBU
T0JOKDB4ODM4YTM0YWUsIDB4MDg1MzNlOGQpLCBUT0JOKDB4MTVjNGNiMDgsIDB4MzExZDgzMTEp
LAotICAgICAgICAgVE9CTigweDk3ZjgzMjg1LCAweDhlMTIxZTE0KSwgVE9CTigweGVlYTdkYzFl
LCAweDg1MDAwYTVmKSwKLSAgICAgICAgIFRPQk4oMHgwYzYwNTliNiwgMHg1ZDI1NjI3NCksIFRP
Qk4oMHhlYzliZWFjZSwgMHhiOTUwNzVjMCksCi0gICAgICAgICBUT0JOKDB4MTczZGFhZDcsIDB4
MWRmOTc4MjgpLCBUT0JOKDB4YmY4NTFjYjUsIDB4YTg5Mzc4NzcpLAotICAgICAgICAgVE9CTigw
eGIwODNjNTk0LCAweDAxNjQ2ZjNjKSwgVE9CTigweDNiYWQzMGNmLCAweDUwYzZkMzUyKSwKLSAg
ICAgICAgIFRPQk4oMHhmZWIyYjIwMiwgMHg0OTZiYmNlYSksIFRPQk4oMHgzY2Y5ZmQ0ZiwgMHgx
OGExZThiYSksCi0gICAgICAgICBUT0JOKDB4ZDI2ZGU3ZmYsIDB4MWMwNjYwMjkpLCBUT0JOKDB4
MzljODFlOWUsIDB4NGU5ZWQ0ZjgpLAotICAgICAgICAgVE9CTigweGQ4YmUwY2I5LCAweDdiMzkw
ZDM1KSwgVE9CTigweDAxZGYyYmJkLCAweDk2NGFhYjI3KSwKLSAgICAgICAgIFRPQk4oMHgzZThj
MWE2NSwgMHhjM2VmNjRmOCksIFRPQk4oMHg1NjcyOTFkMSwgMHg3MTZlZDFkZCksCi0gICAgICAg
ICBUT0JOKDB4OTU0OTljNmMsIDB4NWY1NDA2ZDMpLCBUT0JOKDB4NzFmZGRhMzksIDB4NWJhOGUy
M2YpLAotICAgICAgICAgVE9CTigweGNmZWIzMjBlLCAweGQ1MDk2ZWNlKSwgVE9CTigweGJlN2Jh
OTJiLCAweGNhNjZkZDE2KSwKLSAgICAgICAgIFRPQk4oMHg0NjA4ZDM2YiwgMHhjNmZiNWE3ZCks
IFRPQk4oMHhlM2VlYTE1YSwgMHg2ZDJkZDBlMCksCi0gICAgICAgICBUT0JOKDB4NzViMGEzZWIs
IDB4OGY5N2EzNmEpLCBUT0JOKDB4ZjU5ODE0Y2MsIDB4MWM4M2RlMWUpLAotICAgICAgICAgVE9C
TigweDU2YzljNWIwLCAweDFjMzNjMjNmKSwgVE9CTigweGE5NmMxZGE0LCAweDZmYWE0MTM2KSwK
LSAgICAgICAgIFRPQk4oMHg0NmJmMjA3NCwgMHhkZTMxNjU1MSksIFRPQk4oMHgzYjg2NmU3Yiwg
MHgxZjc1NmM4ZiksCi0gICAgICAgICBUT0JOKDB4NzI3NzI3ZDgsIDB4MTQ5NWVkNmIpLCBUT0JO
KDB4YjIzOTQyNDMsIDB4YjY4MmRjZTcpLAotICAgICAgICAgVE9CTigweDhhYjg0NTRlLCAweDc1
ODYxMGYzKSwgVE9CTigweGMyNDNjZTg0LCAweDg1N2Q3MmE0KSwKLSAgICAgICAgIFRPQk4oMHg3
YjMyMGQ3MSwgMHhkYmJmMzcwZiksIFRPQk4oMHhmZjlhZmEzNywgMHg3OGUwZjdjYSksCi0gICAg
ICAgICBUT0JOKDB4MDExOWQxZTAsIDB4ZWE3YjUyM2YpLCBUT0JOKDB4Yjk5N2Y4Y2IsIDB4MDU4
YzdkNDIpLAotICAgICAgICAgVE9CTigweDI4NWJjZDJhLCAweDM3YmJiMTg0KSwgVE9CTigweDUx
ZGNlYzQ5LCAweGE0NWQxZmE2KSwKLSAgICAgICAgIFRPQk4oMHg2YWRlM2I2NCwgMHhlMjk2MzRj
YiksIFRPQk4oMHgwODBjOTRhNywgMHgyNmI4NmVmMSksCi0gICAgICAgICBUT0JOKDB4YmE1ODNk
YjEsIDB4MjI4M2ZiZTMpLCBUT0JOKDB4OTAyYmRkYzgsIDB4NWE5MzE1ZWQpLAotICAgICAgICAg
VE9CTigweDA3YzFjY2IzLCAweDg2OTY0YmVjKSwgVE9CTigweDc4ZjRlYWNmLCAweGI2MjU4MzAx
KSwKLSAgICAgICAgIFRPQk4oMHg0YmRmM2E0OSwgMHg1NmY5MDgyMyksIFRPQk4oMHhiYTBmNTA4
MCwgMHg3NDFkNzc3YiksCi0gICAgICAgICBUT0JOKDB4MDkxZDcxYzMsIDB4ZjM4YmY3NjApLCBU
T0JOKDB4OTYzM2Q1MGYsIDB4OWI2MjViMDIpLAotICAgICAgICAgVE9CTigweDAzZWNiNzQzLCAw
eGI4YzlkZTYxKSwgVE9CTigweGI0NzUxMjU0LCAweDVkZTc0NzIwKSwKLSAgICAgICAgIFRPQk4o
MHg5ZjlkZWZjOSwgMHg3NGNlMWNiMiksIFRPQk4oMHg3NzRhNGY2YSwgMHgwMGJkMzJlZiksCi0g
ICAgICAgICBUT0JOKDB4YWNhMzg1ZjcsIDB4NzM4NDhmMjIpLCBUT0JOKDB4NTNkYWQ3MTYsIDB4
ZjNmODU1OGUpLAotICAgICAgICAgVE9CTigweGFiN2IzNGIwLCAweDkzYzQ3MWY5KSwgVE9CTigw
eGY1MzBlMDY5LCAweDE5NjQ0YmM3KSwKLSAgICAgICAgIFRPQk4oMHgzZDlmYjFmZiwgMHhkZDU5
ZDMxYSksIFRPQk4oMHg0MzgyZTBkZiwgMHgwOGRhYTc5NSksCi0gICAgICAgICBUT0JOKDB4MTY1
YzZmNGIsIDB4ZDVjYzg4ZDcpLCBUT0JOKDB4ZWFhMzkyZDUsIDB4NGExOGM5MDApLAotICAgICAg
ICAgVE9CTigweDk0MjAzYzY3LCAweDY0ODAyNGVlKSwgVE9CTigweDE4ODc2M2YyLCAweDhjMmZh
YmNkKSwKLSAgICAgICAgIFRPQk4oMHhhODBmODdhYywgMHhiYmFlYzgzNSksIFRPQk4oMHg2MzJj
OTZlMCwgMHhmMjlkOGQ1NCksCi0gICAgICAgICBUT0JOKDB4MjliMGE2MGUsIDB4NGMwMGE5NWUp
LCBUT0JOKDB4MmVmMTdmNDAsIDB4ZTAxMWU5ZmEpLAotICAgICAgICAgVE9CTigweGY2YzBlMWQx
LCAweDE1Yjc3MjIzKSwgVE9CTigweGFhZWMyYzYyLCAweDE0YjA0ZTMyKSwKLSAgICAgICAgIFRP
Qk4oMHhkMzU2ODhkOCwgMHgzZDg0ZTU4YyksIFRPQk4oMHgyYWY1MDk0YywgMHg5NTg1NzFkYiks
Ci0gICAgICAgICBUT0JOKDB4NGZmZjdlMTksIDB4NzYwNjgyYTYpLCBUT0JOKDB4NGNiMjcwNzcs
IDB4ZTM5YTQwN2MpLAotICAgICAgICAgVE9CTigweDBmNTljNTQ3LCAweDRmZjBlMzIxKSwgVE9C
TigweDE2OWYzNGE2LCAweDFiMzRjOGZmKSwKLSAgICAgICAgIFRPQk4oMHgyYmZmMTA5NiwgMHg1
MmJjMWJhNyksIFRPQk4oMHhhMjU0MjNiNywgMHg4MzU4MzU0NCksCi0gICAgICAgICBUT0JOKDB4
NWQ1NWQ1ZDUsIDB4MGFjOGI3ODIpLCBUT0JOKDB4ZmY2NjIyZWMsIDB4MmRiM2M4OTIpLAotICAg
ICAgICAgVE9CTigweDQ4ZmNlNzQxLCAweDZiOGJiNjQyKSwgVE9CTigweDMxZDY5OThjLCAweDY5
ZDdlM2RjKSwKLSAgICAgICAgIFRPQk4oMHhkYmFmODAwNCwgMHhjYWRjYWVkMCksIFRPQk4oMHg4
MDFiMDE0MiwgMHhkODFkMDUzYyksCi0gICAgICAgICBUT0JOKDB4OTRiMTg5ZmMsIDB4NTk2MzBl
YzYpLCBUT0JOKDB4MTIwZTk5MzQsIDB4YWY3NjJjOGUpLAotICAgICAgICAgVE9CTigweDUzYTI5
YWE0LCAweGZkYzZhNDA0KSwgVE9CTigweDE5ZDhlMDFlLCAweGExOTA5OTQ4KSwKLSAgICAgICAg
IFRPQk4oMHgzY2ZjYWJmMSwgMHhkN2U4OTY4MSksIFRPQk4oMHgzMzIxYTUwZCwgMHg0ZTEzMmQz
NyksCi0gICAgICAgICBUT0JOKDB4ZDA0OTY4NjMsIDB4ZTlhODYxMTEpLCBUT0JOKDB4OGMwY2Rl
NjEsIDB4MDZhM2JjNjUpLAotICAgICAgICAgVE9CTigweGFmODY2YzQ5LCAweGZjOWY4ZWVmKSwg
VE9CTigweDIwNjYzNTBlLCAweGZmN2Y1MTQxKSwKLSAgICAgICAgIFRPQk4oMHg0ZjhhNDY4OSwg
MHhlNTZkZGZiZCksIFRPQk4oMHhlYTFiMGMwNywgMHhmZTMyOTgzYSksCi0gICAgICAgICBUT0JO
KDB4MmIzMTc0NjIsIDB4ODczY2I4Y2IpLCBUT0JOKDB4NjU4ZGVkZGMsIDB4MmQ5MzIyOWYpLAot
ICAgICAgICAgVE9CTigweDY1ZWZhZjRkLCAweDBmNjRlZjU4KSwgVE9CTigweGZlNDMyODdkLCAw
eDczMGNjN2E4KSwKLSAgICAgICAgIFRPQk4oMHhhZWJjMGM3MiwgMHgzZDA0N2Q3MCksIFRPQk4o
MHg5MmVmYTUzOSwgMHhkOTJkMjZjOSksCi0gICAgICAgICBUT0JOKDB4MDZlNzg0NTcsIDB4OTRi
NTY1MjYpLCBUT0JOKDB4NDE1Y2I4MGYsIDB4MDk2MTAwMmQpLAotICAgICAgICAgVE9CTigweDg5
ZTVjNTY1LCAweDc2ZGNiMTBmKSwgVE9CTigweDhiYmI2OTgyLCAweGZmOTI1OWZlKSwKLSAgICAg
ICAgIFRPQk4oMHg0ZmU4Nzk1YiwgMHg5YWJjMjY2OCksIFRPQk4oMHhiNWQ0ZjUzNCwgMHgxZTY3
OGZiMSksCi0gICAgICAgICBUT0JOKDB4NjYwMWYzYmUsIDB4N2I3ZGEyYjkpLCBUT0JOKDB4OThk
YTU5ZTIsIDB4YTEzZDY4MDUpLAotICAgICAgICAgVE9CTigweDE5MGQ4ZWE2LCAweDAxNzk5YTUy
KSwgVE9CTigweGEyMGNlYzQxLCAweGI4NmQyOTUyKSwKLSAgICAgICAgIFRPQk4oMHgzMDYyZmZi
MiwgMHg3ZmZmMmE3YyksIFRPQk4oMHg3NDFiMzJlNSwgMHg3OWYxOWQzNyksCi0gICAgICAgICBU
T0JOKDB4ZjgwZDgxODEsIDB4NGViNTdkNDcpLCBUT0JOKDB4N2EyZDBlZDQsIDB4MTZhZWYwNmIp
LAotICAgICAgICAgVE9CTigweDA5NzM1ZmIwLCAweDFjZWNiNTg4KSwgVE9CTigweDE2NDFjYWFh
LCAweGM2MDYxZjViKX0sCi0gICAgICAgIHtUT0JOKDB4N2Y5OTgyNGYsIDB4MjAxNTE0MjcpLCBU
T0JOKDB4MjA2ODI4YjYsIDB4OTI0MzAyMDYpLAotICAgICAgICAgVE9CTigweGFhOTA5N2Q3LCAw
eGUxMTEyMzU3KSwgVE9CTigweGFjZjlhMmYyLCAweDA5ZTQxNGVjKSwKLSAgICAgICAgIFRPQk4o
MHhkYmRhYzlkYSwgMHgyNzkxNTM1NiksIFRPQk4oMHg3ZTA3MzRiNywgMHgwMDFlZmVlMyksCi0g
ICAgICAgICBUT0JOKDB4NTRmYWI1YmIsIDB4ZDJiMjg4ZTIpLCBUT0JOKDB4NGM2MzBmYzQsIDB4
ZjYyZGQwOWMpLAotICAgICAgICAgVE9CTigweDg1MzcxMDdhLCAweDFhYzI3MDNiKSwgVE9CTigw
eGI0OTI1OGQ4LCAweDZiYzg1N2I1KSwKLSAgICAgICAgIFRPQk4oMHg1N2RmMTRkZSwgMHhiY2Rh
Y2NkMSksIFRPQk4oMHgyNGFiNjhkNywgMHhjNGFlODUyOSksCi0gICAgICAgICBUT0JOKDB4N2Vk
OGI1ZDQsIDB4NzM0ZTU5ZDApLCBUT0JOKDB4NWY4NzQwYzgsIDB4YzQ5NWNjODApLAotICAgICAg
ICAgVE9CTigweDg0YWVkZDVhLCAweDI5MWRiOWIzKSwgVE9CTigweDgwYjM2MGY4LCAweDRmYjk5
NWJlKSwKLSAgICAgICAgIFRPQk4oMHhhZTkxNWY1ZCwgMHg1ZmEwNjdkMSksIFRPQk4oMHg0MTM0
YjU3ZiwgMHg5NjY4OTYwYyksCi0gICAgICAgICBUT0JOKDB4YmQzNjU2ZDYsIDB4YTQ4ZWRhYWMp
LCBUT0JOKDB4ZGFjMWUzZTQsIDB4ZmMxZDc0MzYpLAotICAgICAgICAgVE9CTigweDY3NGZmODY5
LCAweGQ4MWZiYjI2KSwgVE9CTigweDQ0OWVkM2VjLCAweGIyNmMzM2Q0KSwKLSAgICAgICAgIFRP
Qk4oMHg4NTEzODcwNSwgMHhkOTQyMDNlOCksIFRPQk4oMHhjY2RlNTM4YiwgMHhiZWViNmY0YSks
Ci0gICAgICAgICBUT0JOKDB4NTVkNWM2OGQsIDB4YTYxYTc2ZmEpLCBUT0JOKDB4NTk4YjQ0MWQs
IDB4Y2ExNTU0ZGMpLAotICAgICAgICAgVE9CTigweGQzOTkyM2I5LCAweDc3M2IyNzljKSwgVE9C
TigweDMzMzMxZDNjLCAweDM2YmY5ZWZjKSwKLSAgICAgICAgIFRPQk4oMHgyZDRjODQ4ZSwgMHgy
OThkZTM5OSksIFRPQk4oMHhjZmRiOGU3NywgMHhhMWEyN2Y1NiksCi0gICAgICAgICBUT0JOKDB4
OTRjODU1ZWEsIDB4NTdiOGFiNzApLCBUT0JOKDB4ZGNkYjlkYWUsIDB4NmY3ODc5YmEpLAotICAg
ICAgICAgVE9CTigweDdiZGZmOGMyLCAweDAxOWYyYTU5KSwgVE9CTigweGIzY2U1YmIzLCAweGNi
NGZiYzc0KSwKLSAgICAgICAgIFRPQk4oMHhlYTkwN2Y2OCwgMHg4YTkxNzNkZCksIFRPQk4oMHg2
Y2QzZDBkMywgMHg5NWE3NTQzOSksCi0gICAgICAgICBUT0JOKDB4OTJlY2M0ZDYsIDB4ZWZlZDAy
MWMpLCBUT0JOKDB4MDlhOWY5YjAsIDB4NmE3NzMzOWEpLAotICAgICAgICAgVE9CTigweDg3Y2E2
YjE1LCAweDcxODhjNjRhKSwgVE9CTigweDEwYzI5OTY4LCAweDQ0ODk5MTU4KSwKLSAgICAgICAg
IFRPQk4oMHg1ODU5YTIyOSwgMHhlZDZlODJlZiksIFRPQk4oMHgxNmYzMzhlMywgMHg2NWViYWY0
ZSksCi0gICAgICAgICBUT0JOKDB4MGNkMzEzODcsIDB4NWVhZDY3YWUpLCBUT0JOKDB4MWM3M2Qy
MjgsIDB4NTRlZjBiYjQpLAotICAgICAgICAgVE9CTigweDRjYjU1MTMxLCAweDc0YTVjOGM3KSwg
VE9CTigweDAxY2QyOTcwLCAweDdmNjlhZDZhKSwKLSAgICAgICAgIFRPQk4oMHhhMDRkMDBkZCwg
MHhlOTY2Zjg3ZSksIFRPQk4oMHhkOTZmZTQ0NywgMHgwYjdiMDMyMSksCi0gICAgICAgICBUT0JO
KDB4MzQyYWMwNmUsIDB4ODhmYmQzODEpLCBUT0JOKDB4MDJjZDRhODQsIDB4NWMzNWE0OTMpLAot
ICAgICAgICAgVE9CTigweGU4ZmE4OWRlLCAweDU0ZjFiYmNkKSwgVE9CTigweDM0MWQ2MzY3LCAw
eDI1NzVlZDRjKSwKLSAgICAgICAgIFRPQk4oMHhlYmUzNTdmYiwgMHhkMjM4MjAyYiksIFRPQk4o
MHg2MDBiNGQxYSwgMHhhOTg0ZWFkOSksCi0gICAgICAgICBUT0JOKDB4YzM1YzlmNDQsIDB4NTI0
MzZlYTApLCBUT0JOKDB4OTZmZTBhMzksIDB4YTM3MDc1MWIpLAotICAgICAgICAgVE9CTigweDRj
NGYwNzM2LCAweDdmNjM2YTM4KSwgVE9CTigweDlmOTQzZmI3LCAweDBlNzZkNWNiKSwKLSAgICAg
ICAgIFRPQk4oMHhiMDM1MTBiYSwgMHhhOGI2OGI4YiksIFRPQk4oMHhjMjQ2NzgwYSwgMHg5ZWQw
N2ExZiksCi0gICAgICAgICBUT0JOKDB4M2MwNTE0MTUsIDB4NmQ1NDlmYzIpLCBUT0JOKDB4YzI5
NTNmMzEsIDB4NjA3NzgxY2EpLAotICAgICAgICAgVE9CTigweDk1NWUyYzY5LCAweGQ4ZDk1NDEz
KSwgVE9CTigweGIzMDBmYWRjLCAweDdiZDI4MmUzKSwKLSAgICAgICAgIFRPQk4oMHg4MWZlN2I1
MCwgMHg4N2U5MTg5ZiksIFRPQk4oMHhkYjE3Mzc1YywgMHhmNDJkZGEyNyksCi0gICAgICAgICBU
T0JOKDB4MjJmN2Q4OTYsIDB4Y2YwYTU5MDQpLCBUT0JOKDB4YTBlNTdjNWEsIDB4ZWJlMzQ4ZTYp
LAotICAgICAgICAgVE9CTigweGE2MTAxMWQzLCAweGY0MGUzYzgwKSwgVE9CTigweGIxMTg5MzIx
LCAweDhkYjcwNWM1KSwKLSAgICAgICAgIFRPQk4oMHg0ZWQ5MzA5ZSwgMHg1MGZlZGVjMyksIFRP
Qk4oMHhkY2YxNGExMCwgMHg0ZDZkNWMxZCksCi0gICAgICAgICBUT0JOKDB4MDU2YzI2NWIsIDB4
NTU2OTEzNDIpLCBUT0JOKDB4ZThlMDg1MDQsIDB4OTEwNDlkYzcpLAotICAgICAgICAgVE9CTigw
eDEzMTMyOWY1LCAweGM5YmFlMjBhKSwgVE9CTigweDk2YzhiM2U4LCAweGQ5ZGNjZGI0KSwKLSAg
ICAgICAgIFRPQk4oMHg4YzVmZjgzOCwgMHhmYjRlZTZiNCksIFRPQk4oMHhmYzVhOWFlYiwgMHg0
MWU4Y2NmMCksCi0gICAgICAgICBUT0JOKDB4NzQxN2I3NjQsIDB4ZmFlMDUwYzYpLCBUT0JOKDB4
MDk1M2MzZDcsIDB4MDA0NTIwODApLAotICAgICAgICAgVE9CTigweDIxMzcyNjgyLCAweDM4ZGZl
N2U4KSwgVE9CTigweGVhNDE3ZTE1LCAweDJiYjc5ZDRiKSwKLSAgICAgICAgIFRPQk4oMHg1OTY0
MWYxYywgMHg3NmU3Y2YyZCksIFRPQk4oMHgyNzFlMzA1OSwgMHhlYTBiY2ZjYyksCi0gICAgICAg
ICBUT0JOKDB4NjI0YzdkZmQsIDB4NzI1M2VjYmQpLCBUT0JOKDB4MmY1NTJlMjUsIDB4NGZjYTYx
ODYpLAotICAgICAgICAgVE9CTigweGNiZjg0ZWNkLCAweDRkODY2ZTljKSwgVE9CTigweDczOTY3
NzA5LCAweGY2OGQ0NjEwKSwKLSAgICAgICAgIFRPQk4oMHhhMTRiMTE2MywgMHhjMjc5MDFiNCks
IFRPQk4oMHhmZDkyMzZlMCwgMHg4OTliOGJmMyksCi0gICAgICAgICBUT0JOKDB4NDJiMDkxZWMs
IDB4Y2JjNmRhMGEpLCBUT0JOKDB4YmIxZGFjNmYsIDB4NWFkMWQyOTcpLAotICAgICAgICAgVE9C
TigweDgwZTYxZDUzLCAweGE5MWNmNzZlKSwgVE9CTigweDQxMTBhNDEyLCAweGQzMWYxZWU3KSwK
LSAgICAgICAgIFRPQk4oMHgyZDg3YzNiYSwgMHgxM2VmY2Y3NyksIFRPQk4oMHgxZjM3NGJiNCwg
MHhkZjQ1MGQ3NiksCi0gICAgICAgICBUT0JOKDB4NWU3OGUyZjIsIDB4MGQxODhkYWIpLCBUT0JO
KDB4ZTM5NjhlZDAsIDB4ZjRiODg1ZWYpLAotICAgICAgICAgVE9CTigweDQ2YzA1NjhlLCAweDcz
MTQ1NzBmKSwgVE9CTigweDMxNjE2MzM4LCAweDAxMTcwNTIxKSwKLSAgICAgICAgIFRPQk4oMHgx
OGUxZTdlMiwgMHg0ZjBjOGFmZSksIFRPQk4oMHg0Y2FhNzVmZiwgMHhkZWVhNzhkYSksCi0gICAg
ICAgICBUT0JOKDB4ODJkYjY3ZjIsIDB4N2M1ZDhhNTEpLCBUT0JOKDB4MzZhNDRkODYsIDB4NmY1
MDUzNzApLAotICAgICAgICAgVE9CTigweGQ3MmM1YmRhLCAweDAzMzM5NzRmKSwgVE9CTigweDVk
YjUxNmFlLCAweDI3YTcwMTQ2KSwKLSAgICAgICAgIFRPQk4oMHgzNDcwNTI4MSwgMHgyMTBlZjky
MSksIFRPQk4oMHhiZmYxN2E4ZiwgMHgwYzljMzhlNSksCi0gICAgICAgICBUT0JOKDB4NzhmNDgx
NGUsIDB4MTI0NzZkYTEpLCBUT0JOKDB4YzFlMTY2MTMsIDB4MzNjMTY5ODApLAotICAgICAgICAg
VE9CTigweDllNWIzODZmLCAweDQyNGQ0YmNhKSwgVE9CTigweDRjMjc0ZTg3LCAweGM4NTc0MGRl
KSwKLSAgICAgICAgIFRPQk4oMHhiNmE5Yjg4ZCwgMHg2YzJmNTIyNiksIFRPQk4oMHgxNGQxYjk0
NCwgMHg1NTBkN2NhOCksCi0gICAgICAgICBUT0JOKDB4NTgwYzg1ZmMsIDB4MWZjNDE3MDkpLCBU
T0JOKDB4YzFkYTM2OGIsIDB4NTRjNmQ1MTkpLAotICAgICAgICAgVE9CTigweDJiMDc4NWNlLCAw
eGQ1MTEzY2Y3KSwgVE9CTigweDA2NzBmNjMzLCAweDVhMzQ3MDhmKSwKLSAgICAgICAgIFRPQk4o
MHg0NmUyMzc2NywgMHgxNWNjM2Y4OCksIFRPQk4oMHgxYjQ4MGNmYSwgMHg1MGM3MmM4ZiksCi0g
ICAgICAgICBUT0JOKDB4MjAyODg2MDIsIDB4NDE0NzUxOWEpLCBUT0JOKDB4ZDA5ODFlYWMsIDB4
MjZiMzcyZjApLAotICAgICAgICAgVE9CTigweGE5ZDRhN2NhLCAweGE3ODVlYmM4KSwgVE9CTigw
eGQ5NTNjNTBkLCAweGRiZGY1OGU5KSwKLSAgICAgICAgIFRPQk4oMHg5ZDYzNjFjYywgMHhmZDU5
MGY4ZiksIFRPQk4oMHg3MmU5NjI2YiwgMHg0NGU2YzkxNyksCi0gICAgICAgICBUT0JOKDB4N2Zk
OTYxMTAsIDB4MjJlYjY0Y2YpLCBUT0JOKDB4ODYzZWJiN2UsIDB4OWViMjg4ZjMpLAotICAgICAg
ICAgVE9CTigweDZlNmFiNzYxLCAweDZhY2E4ZWU3KSwgVE9CTigweDk3ZDEwYjM5LCAweGQ3YjQw
MzU4KSwKLSAgICAgICAgIFRPQk4oMHgxNjg3ZDM3NywgMHgxZTVmZWIwZCksIFRPQk4oMHhjODNl
NTBlNCwgMHg4MjY1YTI3YSksCi0gICAgICAgICBUT0JOKDB4OGY3NWE5ZmUsIDB4Yzk1NGIzMTMp
LCBUT0JOKDB4Y2MyZThmNDcsIDB4MzEwZDFmNjEpLAotICAgICAgICAgVE9CTigweGY1YmE4MWM1
LCAweDY1NTdkMGUwKSwgVE9CTigweDI1Zjk2ODBjLCAweDNlYWY2MjA3KSwKLSAgICAgICAgIFRP
Qk4oMHhmOTVjNjYwOSwgMHg0MzU0MDgwYiksIFRPQk4oMHg1MjI1YmZhNSwgMHg3YmYyZmUxYyks
Ci0gICAgICAgICBUT0JOKDB4YzVjMDA0ZTIsIDB4NWM3ZDk4ZmEpLCBUT0JOKDB4MzU2MWJmMWMs
IDB4MDE5YWFmNjApLAotICAgICAgICAgVE9CTigweDVlNmY5ZjE3LCAweGJhMTUxNDc0KSwgVE9C
TigweGRlYzJmOTM0LCAweGIwNGY2ZWNhKSwKLSAgICAgICAgIFRPQk4oMHg2NGUzNjhhMSwgMHgy
NjlhY2IxZSksIFRPQk4oMHgxMzMyZDllNCwgMHgwY2RkYTQ5MyksCi0gICAgICAgICBUT0JOKDB4
NjBkNmNmNjksIDB4ZGYyM2RlMDUpLCBUT0JOKDB4NjZkMTdkYTIsIDB4MDA5MzM5YTApLAotICAg
ICAgICAgVE9CTigweDlmY2FjOTg1LCAweDBhNjkzOTIzKSwgVE9CTigweGJjZjA1N2ZjLCAweGVk
N2M2YTZkKSwKLSAgICAgICAgIFRPQk4oMHhjM2M1YzhjNSwgMHhmMGI1NjYyYyksIFRPQk4oMHgy
NTMxOGRkOCwgMHhkY2JhNGYyNCksCi0gICAgICAgICBUT0JOKDB4NjBlOGNiNzUsIDB4MDgyYjY5
ZmYpLCBUT0JOKDB4N2MyM2IzZWUsIDB4MWU3MjhjMDEpLAotICAgICAgICAgVE9CTigweDE1ZTEw
YTBhLCAweDA5N2U0NDAzKSwgVE9CTigweGNiM2QwYTg2LCAweDE5ODU0NjY1KSwKLSAgICAgICAg
IFRPQk4oMHg4OGQ4ZTIxMSwgMHhkNjdkNDgyNiksIFRPQk4oMHhiMzlhZjY2ZSwgMHgwYjlkMjgz
OSksCi0gICAgICAgICBUT0JOKDB4YTVmOTQ1ODgsIDB4YmQ0NzVjYTgpLCBUT0JOKDB4ZTA2Yjc5
NjYsIDB4YzA3N2I4MGIpLAotICAgICAgICAgVE9CTigweGZlZGIxNDg1LCAweGRhMjdjMjZjKSwg
VE9CTigweGQyOTBkMzNhLCAweGZlMGZkNWUwKSwKLSAgICAgICAgIFRPQk4oMHhhNDBiY2M0Nywg
MHhmMzRmYjBmYSksIFRPQk4oMHhiNDc2MGNjOCwgMHgxZmIxYWIwOSksCi0gICAgICAgICBUT0JO
KDB4OGZjYTA5OTMsIDB4YTI3M2JmZTMpLCBUT0JOKDB4MTNlNGZlMDcsIDB4ZjcwYjIxM2MpLAot
ICAgICAgICAgVE9CTigweDNiY2RiOTkyLCAweGZkYjA1MTYzKSwgVE9CTigweDhjNDg0YjExLCAw
eDBjMmIxOWI2KSwKLSAgICAgICAgIFRPQk4oMHgxYWNiODE1ZiwgMHhhYWYyZTNlMiksIFRPQk4o
MHhjNjkwNTkzNSwgMHhiODlmZjFiNCksCi0gICAgICAgICBUT0JOKDB4YjJhZDZmOWQsIDB4NTg2
ZTc0ZTEpLCBUT0JOKDB4NDg4ODgzYWQsIDB4NjdiODA0ODQpLAotICAgICAgICAgVE9CTigweDc1
OGFhMmM3LCAweDM2OWMzZGRiKSwgVE9CTigweDhhYjc0ZTY5LCAweDlmOWFmZDMxKSwKLSAgICAg
ICAgIFRPQk4oMHgxMGZjMmQyOCwgMHg1ZTIxYmViMSksIFRPQk4oMHgzNDg0NTE4YSwgMHgzMThj
NDJmOSksCi0gICAgICAgICBUT0JOKDB4Mzc3NDI3ZGMsIDB4NTNjZjQwYzMpLCBUT0JOKDB4OWRl
MDc4MWEsIDB4MzkxYmMxZDkpLAotICAgICAgICAgVE9CTigweDhmYWVlODU4LCAweDY5MzgwN2Ux
KSwgVE9CTigweGEzODY1MzI3LCAweDRlODFjY2M3KSwKLSAgICAgICAgIFRPQk4oMHgwMmMzMGZm
MiwgMHg2ZjgzNWI4NCksIFRPQk4oMHhiNjA0NDM3YiwgMHgwZDNkMzhkNCksCi0gICAgICAgICBU
T0JOKDB4YjNmYzhhOTgsIDB4NWNhMTgyM2QpLCBUT0JOKDB4YjgyZjdlYzksIDB4MDNiZTAzMjQp
LAotICAgICAgICAgVE9CTigweGVlMzZkNzYxLCAweGNmNjg0YTMzKSwgVE9CTigweDVhMDFkZjBl
LCAweDlmMjliZjdkKSwKLSAgICAgICAgIFRPQk4oMHg2ODYyMDJmMywgMHgxMzA2NTgzZCksIFRP
Qk4oMHgwNWIxMGRhMCwgMHg0MzdjNjIyZSksCi0gICAgICAgICBUT0JOKDB4YmY5YWFhMGYsIDB4
MDc2YTdiYzgpLCBUT0JOKDB4MjVlOTRlZmIsIDB4OGY4ZjRlNDMpLAotICAgICAgICAgVE9CTigw
eDhhMzVjOWI3LCAweGZhM2RjMjZkKSwgVE9CTigweGUwZTVmYjkzLCAweDk2ZmYwM2M1KSwKLSAg
ICAgICAgIFRPQk4oMHhhNzdlMzg0MywgMHhlYmMzOTRjZSksIFRPQk4oMHhjZWRlNjU5NSwgMHg4
MzYxZGU2MCksCi0gICAgICAgICBUT0JOKDB4ZDI3YzIyZjYsIDB4YTE5OTM1NDUpLCBUT0JOKDB4
YWIwMWNjMzYsIDB4MjRkNjcxYmEpLAotICAgICAgICAgVE9CTigweDYzZmEyODc3LCAweGExNjlj
MjhlKSwgVE9CTigweDkyNWVmOTA0LCAweDJlYjA4Mzc2KSwKLSAgICAgICAgIFRPQk4oMHgzYjJm
YTNjZiwgMHg1M2FhMGIzMiksIFRPQk4oMHhiMjdiZWI1YiwgMHg3MWM0OWQ3YSksCi0gICAgICAg
ICBUT0JOKDB4YjYwZTE4MzQsIDB4ZDEwNWUyN2YpLCBUT0JOKDB4ZDYwODk3ODgsIDB4NGY2ODU3
MGQpLAotICAgICAgICAgVE9CTigweDIzMDk0Y2UwLCAweGQ2ZmJjMmFjKSwgVE9CTigweDczODAz
N2ExLCAweDgxNWZmNTUxKSwKLSAgICAgICAgIFRPQk4oMHhkYTczYjFiYiwgMHg2YmVmMTE5Yyks
IFRPQk4oMHhkY2Y2YzQzMCwgMHhlZWY1MDZiYSksCi0gICAgICAgICBUT0JOKDB4MDBlNGZlN2Is
IDB4ZTNlZjEwNGEpLCBUT0JOKDB4ZWJkZDlhMmMsIDB4MGEwNjU2MjgpLAotICAgICAgICAgVE9C
TigweDg1M2E4MWMzLCAweDg3OTIwNDNlKSwgVE9CTigweDIyYWQ2ZWNlLCAweGIzYjU5MTA4KSwK
LSAgICAgICAgIFRPQk4oMHg5ZmI4MTNjMCwgMHgzOWNkMjk3ZCksIFRPQk4oMHg4ZWM3ZTE2ZSwg
MHgwNWJkYTVkOSksCi0gICAgICAgICBUT0JOKDB4MjgzNDc5N2MsIDB4MGQxMDRiOTYpLCBUT0JO
KDB4Y2MxMWEyZTcsIDB4N2M1MTE1MTApLAotICAgICAgICAgVE9CTigweDk2Y2E1YTUzLCAweDk2
ZWU2MzgwKSwgVE9CTigweDA1NGM4NjU1LCAweGNlYTM4NzQyKSwKLSAgICAgICAgIFRPQk4oMHhi
NTk0Njg1MiwgMHhkNTRkZmE3ZCksIFRPQk4oMHg5N2M0MjJlNywgMHgxZjRhYjIwNyksCi0gICAg
ICAgICBUT0JOKDB4YmY5MDc1MDksIDB4MGMyMmI1NDApLCBUT0JOKDB4MmNkZTQyYWEsIDB4Yjdj
MjY3ZDQpLAotICAgICAgICAgVE9CTigweGJhMThmOWVkLCAweDVhYjBkNjkzKSwgVE9CTigweDNi
YTYyYWE2LCAweDZlNDY2MGQ5KSwKLSAgICAgICAgIFRPQk4oMHhiMjRiZjk3YiwgMHhhYjllYTk2
YSksIFRPQk4oMHg1ZDAzOTY0MiwgMHhlM2I2MGUzMiksCi0gICAgICAgICBUT0JOKDB4NGU2YTQ1
MDYsIDB4N2M0ZDliZDUpLCBUT0JOKDB4NjY2YzViOWUsIDB4N2VkNGE2YTQpLAotICAgICAgICAg
VE9CTigweGZhM2ZkY2Q5LCAweDhlZGJkN2NjKSwgVE9CTigweDQ2NjBiYjg3LCAweGM2Y2NkNzUz
KSwKLSAgICAgICAgIFRPQk4oMHg5YWU5MDgyMCwgMHgyMWU2YjY0ZiksIFRPQk4oMHg4YTU2YTcx
MywgMHhiMzZiZmIzZiksCi0gICAgICAgICBUT0JOKDB4YWJmY2UwOTYsIDB4NTcyNmQ0N2YpLCBU
T0JOKDB4OWVlZDAxYjIsIDB4MGIxYTlhN2YpLAotICAgICAgICAgVE9CTigweDMwZTljYWQ0LCAw
eDRlYjc0YTM3KSwgVE9CTigweDdiMjUyNGNjLCAweDUzZTk2NjZkKSwKLSAgICAgICAgIFRPQk4o
MHg2YTI5NjgzYiwgMHg4ZjRiMDAyZiksIFRPQk4oMHhjMjIwMGQ3YSwgMHg0MWY0ZmMyMCksCi0g
ICAgICAgICBUT0JOKDB4Y2YzYWY0N2EsIDB4M2EzMzhhY2MpLCBUT0JOKDB4NjUzOWE0ZmIsIDB4
ZTcxMjg5NzUpLAotICAgICAgICAgVE9CTigweGNlYzMxYzE0LCAweGMzM2M3ZmNmKSwgVE9CTigw
eDdlYjY3OTliLCAweGM3YmUzMjJiKSwKLSAgICAgICAgIFRPQk4oMHgxMTllZjRlOSwgMHg2NjQ2
ZjYyMyksIFRPQk4oMHg3YjdhMjZhNSwgMHg1NGQ3Mjk5YiksCi0gICAgICAgICBUT0JOKDB4Y2Iz
N2YwOGQsIDB4NDAzZjQ2ZjIpLCBUT0JOKDB4OTRiOGZjNDMsIDB4MWEwZWMwYzcpLAotICAgICAg
ICAgVE9CTigweGJiODUxNGUzLCAweGMzMzIxNDJmKSwgVE9CTigweGYzZWQyYzMzLCAweGU4MGQy
YTdhKSwKLSAgICAgICAgIFRPQk4oMHg4ZDIwODBhZiwgMHhiNjM5MTI2YyksIFRPQk4oMHhmN2I2
YmU2MCwgMHhlMzU1M2FkZSksCi0gICAgICAgICBUT0JOKDB4Mzk1MGFhOWYsIDB4MWM3ZTJiMDkp
LCBUT0JOKDB4ODQ3ZmY5NTgsIDB4NjQxMGYwMmIpLAotICAgICAgICAgVE9CTigweDg3N2I3Y2Y1
LCAweDY3OGEzMWIwKSwgVE9CTigweGQ1MDMwMWFlLCAweDM5OThiNjIwKSwKLSAgICAgICAgIFRP
Qk4oMHg3MzQyNTdjNSwgMHhjMDBmYjM5NiksIFRPQk4oMHhmOWZiMThhMCwgMHgwNGU2NzJhNiks
Ci0gICAgICAgICBUT0JOKDB4ZmY4YmQ4ZWIsIDB4ZTg3NTg4NTEpLCBUT0JOKDB4MWU2NGU0YzYs
IDB4NWQ5OWJhNDQpLAotICAgICAgICAgVE9CTigweDRiOGVhZWRmLCAweDdkZmQ5M2I3KSwgVE9C
TigweGJhMmYyYTk4LCAweDA0ZTc2YjhjKSwKLSAgICAgICAgIFRPQk4oMHg3ZDc5MGNiYSwgMHhl
ODA1MzQzMyksIFRPQk4oMHhjOGU3MjVhMCwgMHgzZDJjOTU4NSksCi0gICAgICAgICBUT0JOKDB4
NThjNWM0NzYsIDB4Y2RkOGY1ZWQpLCBUT0JOKDB4ZDEwNmI5NTIsIDB4ZWZhOWZlMWQpLAotICAg
ICAgICAgVE9CTigweDNjNWM3NzViLCAweDBlZmYxM2E5KSwgVE9CTigweDI0MjQ0MmJhLCAweGUw
NTdiOTMwKSwKLSAgICAgICAgIFRPQk4oMHhlOWY0NThkNCwgMHhjOWI3MGNiZCksIFRPQk4oMHg2
OWI3MTQ0OCwgMHhhM2NkYjg5YSksCi0gICAgICAgICBUT0JOKDB4NDFlZTQ2ZjYsIDB4MGUyZWQ3
NDIpLCBUT0JOKDB4NTczZjEwNDUsIDB4NDAwNjc0OTMpLAotICAgICAgICAgVE9CTigweGIxZTE1
NGZmLCAweDlkNTRjMzA0KSwgVE9CTigweDJhZDA0MzZhLCAweDhkM2E3NTAyKSwKLSAgICAgICAg
IFRPQk4oMHhlZTRhYWEyZCwgMHg0MzFhODEyMSksIFRPQk4oMHhjZDM4YjNhYiwgMHg4ODZmMTFl
ZCksCi0gICAgICAgICBUT0JOKDB4NTdkNDllYTYsIDB4MDM0YTBlYjcpLCBUT0JOKDB4ZDJiNzcz
YmQsIDB4ZjdlODVlNTgpLAotICAgICAgICAgVE9CTigweDRhNTU5YWM0LCAweDliNWMxZjE0KSwg
VE9CTigweGM0NDRiZTFhLCAweDNlNTRkZjJiKSwKLSAgICAgICAgIFRPQk4oMHgxM2FhZDcwNCwg
MHhlZGE0MTg5MSksIFRPQk4oMHhjZDkyN2JlYywgMHg1ZWI1Yzc4OCksCi0gICAgICAgICBUT0JO
KDB4ZWIzYzg1MTYsIDB4ZTQ4YzhhMzQpLCBUT0JOKDB4MWI3YWM4MTIsIDB4NGI1NDY2NjkpLAot
ICAgICAgICAgVE9CTigweDE4MTVmODk2LCAweDU5NGRmOGVjKSwgVE9CTigweDg3YzZhNzljLCAw
eDc5MjI3ODY1KSwKLSAgICAgICAgIFRPQk4oMHhhZTAyYTJmMCwgMHg5YjU2ZGRiZCksIFRPQk4o
MHgxMzM5YjVhYywgMHg4YTJmMWNmMyksCi0gICAgICAgICBUT0JOKDB4ZjJiNTY5YzcsIDB4ODM5
ZGZmMGQpLCBUT0JOKDB4YjBiOWU4NjQsIDB4ZmVlOWE0M2QpLAotICAgICAgICAgVE9CTigweDRm
ZjhjYTQxLCAweDc3YmIwNjRlKSwgVE9CTigweDE0NWEyODEyLCAweGZkMjQ5ZjYzKSwKLSAgICAg
ICAgIFRPQk4oMHgzYWI3YmVhYywgMHhmODZmNjg5YSksIFRPQk4oMHg5YmFmZWMyNywgMHgwMWQz
NWY1ZSksCi0gICAgICAgICBUT0JOKDB4MjgwNTRjNjUsIDB4NDI2NWFhOTEpLCBUT0JOKDB4YTRi
MTgzMDQsIDB4MDM1ZWZlNDIpLAotICAgICAgICAgVE9CTigweDY4ODdiMGU2LCAweDk2MzlkZWM3
KSwgVE9CTigweGY0YjhmNmFkLCAweDNkNTJhZWE1KSwKLSAgICAgICAgIFRPQk4oMHhmYjkyOTNj
YywgMHg5NzFhOGExMyksIFRPQk4oMHgzZjE1OWU1ZCwgMHg0YzkzNGQwNyksCi0gICAgICAgICBU
T0JOKDB4MmM1MGU5YjEsIDB4MDlhY2JjMjkpLCBUT0JOKDB4MDhlYjY1ZTYsIDB4NzE1NGQxMjkp
LAotICAgICAgICAgVE9CTigweDRmZWZmNTg5LCAweDMwYjc1YzNlKSwgVE9CTigweDBiYjgyZmUy
LCAweDk0NDkxYzkzKSwKLSAgICAgICAgIFRPQk4oMHhkOGFjMzc3YSwgMHg4OWFmNjJiYiksIFRP
Qk4oMHhkN2I1MTQ5MCwgMHg5Njg1ZTQ5ZiksCi0gICAgICAgICBUT0JOKDB4YWJjYTlhN2IsIDB4
MDQ0OTdmMTkpLCBUT0JOKDB4MWIzNWVkMGEsIDB4MWE3YWQxM2YpLAotICAgICAgICAgVE9CTigw
eDZiNjAxZTIxLCAweDNlYzg2ZWQ2KSwgVE9CTigweGRhOTFmY2I5LCAweGNlMGM3NmYxKSwKLSAg
ICAgICAgIFRPQk4oMHg5ZTI4NTA3YiwgMHhkN2FiMjdlMSksIFRPQk4oMHg3YzE5YTU1NSwgMHg2
Mzk0NWI3YiksCi0gICAgICAgICBUT0JOKDB4NmI0M2YwYTEsIDB4YWFmYzk4MjcpLCBUT0JOKDB4
NDQzYjRmYmQsIDB4M2FhNTViOTEpLAotICAgICAgICAgVE9CTigweDk2MmIyZTY1LCAweDY5NjJj
ODhmKSwgVE9CTigweDEzOWRhOGQ0LCAweGNlMGRiMGNhKSwKLSAgICAgICAgIFRPQk4oMHhiOTNm
MDVkZCwgMHgxYjhkNmM0ZiksIFRPQk4oMHg3NzljZGZmNywgMHgxODBiOTgyNCksCi0gICAgICAg
ICBUT0JOKDB4YmJhMjNmZGQsIDB4YWU1N2M3YjcpLCBUT0JOKDB4MzQ1MzQyZjIsIDB4MWI5MzI1
MjIpLAotICAgICAgICAgVE9CTigweGZkOWM4MGZlLCAweDU1NmQ0YWEzKSwgVE9CTigweGEwMzkw
N2JhLCAweDY1MjViYjYxKSwKLSAgICAgICAgIFRPQk4oMHgzOGIwMTBlMSwgMHhmZjIxODkzMyks
IFRPQk4oMHhjMDY2YjY1NCwgMHhhYTUyMTE3YiksCi0gICAgICAgICBUT0JOKDB4OGUxNDE5MjAs
IDB4OTRmMmU2ZWEpLCBUT0JOKDB4NjZhMjdkY2EsIDB4MGQzMmYyYjIpLAotICAgICAgICAgVE9C
TigweDY5YzdmOTkzLCAweDA0OGIzNzE3KSwgVE9CTigweGJmNWE5ODlhLCAweGIxNzhhZTFjKSwK
LSAgICAgICAgIFRPQk4oMHg0OWZhOTA1OCwgMHg1NjRmMWQ2YiksIFRPQk4oMHgyN2VjNmUxNSwg
MHhkMzFmZGU0ZSksCi0gICAgICAgICBUT0JOKDB4NGNjZTAzNzMsIDB4NzI3NmU3ZmMpLCBUT0JO
KDB4NjQwODZkNzksIDB4ODlkNmJmMDIpLAotICAgICAgICAgVE9CTigweDVhNzJmMDQ2LCAweDRj
Y2RkOTc5KSwgVE9CTigweDkwOWMzNTY2LCAweDQ3Nzc1NjMxKSwKLSAgICAgICAgIFRPQk4oMHgx
YzA3YmM2YiwgMHg3NWRkNzEyNSksIFRPQk4oMHhiNGM2YmM5NywgMHg4N2EwNDI4ZCksCi0gICAg
ICAgICBUT0JOKDB4NTA3ZWNlNTIsIDB4ZmRlYjZiOWQpLCBUT0JOKDB4ZmNhNTY1MTIsIDB4YjJj
OTU0MzIpLAotICAgICAgICAgVE9CTigweDE1ZDk3MTgxLCAweGQwZThiZDA2KSwgVE9CTigweDM4
NGRkMzE3LCAweGM2YmI0NmVhKSwKLSAgICAgICAgIFRPQk4oMHg1NDQxZWEyMCwgMHgzOTUyYjYy
NCksIFRPQk4oMHhiY2Y3MGRlZSwgMHg0ZTdkYzJmYiksCi0gICAgICAgICBUT0JOKDB4MzcyYjAx
NmUsIDB4NjYyOGU4YzMpLCBUT0JOKDB4MDdhMGQ2NjcsIDB4YjYwYTc1MjIpLAotICAgICAgICAg
VE9CTigweGNmMDU3NTFiLCAweDBhMzQ0ZWUyKSwgVE9CTigweDBlYzA5YTQ4LCAweDExOGJkZWVj
KSwKLSAgICAgICAgIFRPQk4oMHg2ZTRiM2Q0ZSwgMHhkODNkY2U0NiksIFRPQk4oMHg0M2E2MzE2
ZCwgMHg5OWQyZmM2ZSksCi0gICAgICAgICBUT0JOKDB4YTk5ZDg5ODksIDB4NTZjZjA0NGMpLCBU
T0JOKDB4N2M3ZjQ0NTQsIDB4YWUzZTVmYjcpLAotICAgICAgICAgVE9CTigweGIyZTZiMTIxLCAw
eGZiYWJiZTkyKSwgVE9CTigweDI4MTg1MGZiLCAweGUxMzMwMDc2KSwKLSAgICAgICAgIFRPQk4o
MHgwOTM1ODFlYywgMHg5Nzg5MDAxNSksIFRPQk4oMHg2OWIxZGRlZCwgMHg3NWZmNzdmNSksCi0g
ICAgICAgICBUT0JOKDB4N2NmMGIxOGYsIDB4YWIxMDUxMDUpLCBUT0JOKDB4OTUzY2VkMzEsIDB4
YTg5Y2NmZWYpLAotICAgICAgICAgVE9CTigweDMxNTFmODVmLCAweGViOTE0MDA5KSwgVE9CTigw
eDNjOWYxYjg3LCAweDg4ZWQ0OGFkKSwKLSAgICAgICAgIFRPQk4oMHhjOWFiYTFhMSwgMHg0YTdl
YWRjYiksIFRPQk4oMHg5MjhlNzUwMSwgMHg1MjJlNzFjZiksCi0gICAgICAgICBUT0JOKDB4ZWFl
ZGU3MjcsIDB4M2EyZTRmODMpLCBUT0JOKDB4NDY3ZTEwZDEsIDB4MWNlM2JiZDMpLAotICAgICAg
ICAgVE9CTigweGYzNDQyYWMzLCAweGI5NTVkY2YwKSwgVE9CTigweGJhOTYzMDdkLCAweGQzZDVl
NTI3KSwKLSAgICAgICAgIFRPQk4oMHhmNzYzYTEwZSwgMHhmZDc3ZjQ3NCksIFRPQk4oMHg1ZDc0
NGJkMCwgMHg2YTZlMWZmMCksCi0gICAgICAgICBUT0JOKDB4ZDI4NzI4MmEsIDB4YTc3Nzg5OWUp
LCBUT0JOKDB4ZTIwZWRhOGYsIDB4ZDAzZjNjZGUpLAotICAgICAgICAgVE9CTigweDZhN2U3NWJi
LCAweDUwYjA3ZDMxKSwgVE9CTigweDBiN2UyYTk0LCAweDZmMzc5ZGU0KSwKLSAgICAgICAgIFRP
Qk4oMHgzMWNiNjRhZCwgMHgxOWY1OTNjZiksIFRPQk4oMHg3YjFhOWU0ZiwgMHgxZTc2ZWYxZCks
Ci0gICAgICAgICBUT0JOKDB4ZTE4YzljOWQsIDB4YjYyZDYwOWMpLCBUT0JOKDB4NDM5YmFkNmQs
IDB4ZTc3OWE2NTApLAotICAgICAgICAgVE9CTigweDIxOWQ5MDY2LCAweGUwMzJmMTQ0KSwgVE9C
TigweDFkYjYzMmI4LCAweGU4YjJlYzZhKSwKLSAgICAgICAgIFRPQk4oMHhmZjBkMGZkNCwgMHhm
ZGExMmY3OCksIFRPQk4oMHg1NmZiNGMyZCwgMHgyYTI1ZDI2NSksCi0gICAgICAgICBUT0JOKDB4
NWY0ZTJlZTEsIDB4MjU1YTAzZjEpLCBUT0JOKDB4NjFjZDZhZjIsIDB4ZTk2YWYxNzYpLAotICAg
ICAgICAgVE9CTigweGUwMzE3YmE4LCAweGQwNjhiYzk3KSwgVE9CTigweDkyN2Q2YmFiLCAweDI2
NGI5ODhlKSwKLSAgICAgICAgIFRPQk4oMHhhMThmMDdlMCwgMHhlOTBmYjIxZSksIFRPQk4oMHgw
MGZkMmI4MCwgMHhiYmE3ZmNhMSksCi0gICAgICAgICBUT0JOKDB4MjAzODdmMjcsIDB4OTVjZDY3
YjUpLCBUT0JOKDB4NWI4OWE0ZTcsIDB4ZDM5NzA3ZjcpLAotICAgICAgICAgVE9CTigweDhmODNh
ZDNmLCAweDg5NDQwN2NlKSwgVE9CTigweGEwMDI1Yjk0LCAweDZjMjI2MTMyKSwKLSAgICAgICAg
IFRPQk4oMHhjNzk1NjNjNywgMHhmOTA2YzEzYiksIFRPQk4oMHg1ZjU0OGYzMSwgMHg0ZTdiYjAy
NSksCi0gICAgICAgICBUT0JOKDB4MmI0YzZiOGYsIDB4ZWFjNmQxMTMpLCBUT0JOKDB4YTY3ZTNm
OWMsIDB4MGU4MTNjNzYpLAotICAgICAgICAgVE9CTigweDM5ODI3MTdjLCAweDNmZTFmNGI5KSwg
VE9CTigweDU4ODY1ODE5LCAweDI2ZDgwNTBlKSwKLSAgICAgICAgIFRPQk4oMHg5OWYzNjQwYywg
MHhmN2YwNmYyMCksIFRPQk4oMHhkYzYxMDIxNiwgMHgyYTY2ZWJjMiksCi0gICAgICAgICBUT0JO
KDB4NTJmMmMxNzUsIDB4NzY3YTFlMDgpLCBUT0JOKDB4MDU2NjBlMWEsIDB4NTk5OTg3MWIpLAot
ICAgICAgICAgVE9CTigweDZiMGYxNzYyLCAweDZkM2M0NjkzKSwgVE9CTigweGYwZTdkNjI3LCAw
eDM3ZWQ3YmVhKSwKLSAgICAgICAgIFRPQk4oMHhjNTE3NThjNywgMHhiNzViMjI2ZCksIFRPQk4o
MHg0MGE4ODYyOCwgMHgxZjkxNjEzYiksCi0gICAgICAgICBUT0JOKDB4ODg5ZGJhYTcsIDB4YmJi
MzhjZTApLCBUT0JOKDB4ZTA0MDRiNjUsIDB4YmRkY2FkODEpLAotICAgICAgICAgVE9CTigweGZl
YmNjZDNhLCAweDhiYzk2NzFmKSwgVE9CTigweGZiZjlhMzU3LCAweGVlMWY1Mzc1KSwKLSAgICAg
ICAgIFRPQk4oMHg1ZGMxNjliMCwgMHgyOGYzMzM5OCksIFRPQk4oMHhiMDdlYzExZCwgMHg3MmU5
MGY2NSksCi0gICAgICAgICBUT0JOKDB4YWU3ZjNiNGEsIDB4ZmFhYjFlYjEpLCBUT0JOKDB4ZDk3
MDE5NWUsIDB4NWYxNzUzOGEpLAotICAgICAgICAgVE9CTigweDUyYjA1Y2JlLCAweDAxODFlNjQw
KSwgVE9CTigweGY1ZGViZDYyLCAweDI2NDMzMTNkKSwKLSAgICAgICAgIFRPQk4oMHg3NjE0ODE1
NCwgMHg1ZGYzMWY4MiksIFRPQk4oMHgyM2UwM2IzMywgMHgzYTllMTNjNSksCi0gICAgICAgICBU
T0JOKDB4ZmY3NTg5NDksIDB4NGZkZTBjMWYpLCBUT0JOKDB4YmY4YTFhYmUsIDB4ZTViNmVjMjAp
LAotICAgICAgICAgVE9CTigweDcwMjI3OGZiLCAweDg3ZTFkYjZjKSwgVE9CTigweGM0NDdhZDdh
LCAweDM1ZWQ2NThmKSwKLSAgICAgICAgIFRPQk4oMHg0OGQ0YWEzOCwgMHgwM2QwY2NmMiksIFRP
Qk4oMHg4MGFjYjMzOCwgMHg4MTlhN2MwMyksCi0gICAgICAgICBUT0JOKDB4OWJjN2M4OWUsIDB4
NmUxN2NlY2MpLCBUT0JOKDB4NDY3MzZiOGIsIDB4MDNiZTFkODIpLAotICAgICAgICAgVE9CTigw
eGQ2NWQ3YjYwLCAweGMwNDMyZjk2KSwgVE9CTigweGRkZWJlN2EzLCAweGRlYjU0NDJmKSwKLSAg
ICAgICAgIFRPQk4oMHg3OWEyNTMwNywgMHg3ZGZmNjlhMiksIFRPQk4oMHgzN2E1NmQ5NCwgMHgw
MmNmMzEyMiksCi0gICAgICAgICBUT0JOKDB4OGJhYjhhZWQsIDB4ZjIzNTBkMGEpLCBUT0JOKDB4
MTNjM2YyNzYsIDB4MDM3YjBkOWEpLAotICAgICAgICAgVE9CTigweGM2NjQ5NTdjLCAweDQ0YzY1
Y2FlKSwgVE9CTigweDg4YjQ0MDg5LCAweGMyZTcxYTg4KSwKLSAgICAgICAgIFRPQk4oMHhkYjg4
ZTVhMywgMHg1Y2IwMjY2NCksIFRPQk4oMHg1ZDRjMGJmMSwgMHg4Njg2YzcyZSksCi0gICAgICAg
ICBUT0JOKDB4ZWEzZDliNjIsIDB4YTY4MmQ1M2UpLCBUT0JOKDB4OWI2MDVlZjQsIDB4MGIyYWQ0
MzEpLAotICAgICAgICAgVE9CTigweDcxYmFjMjAyLCAweGM2OTY0NWQwKSwgVE9CTigweGExMTVm
MDNhLCAweDZhMWI2NmU3KSwKLSAgICAgICAgIFRPQk4oMHhmZTJjNTYzYSwgMHgxNThmNGRjNCks
IFRPQk4oMHhmNzE1YjNhMCwgMHg0ZDEyYTc4YyksCi0gICAgICAgICBUT0JOKDB4OGY3ZjBhNDgs
IDB4ZDQxMzIxM2EpLCBUT0JOKDB4MjAzNTgwNmQsIDB4YzA0YmVjZGIpLAotICAgICAgICAgVE9C
TigweGVjZDM0YTk5LCAweDVkODU4N2Y1KSwgVE9CTigweDRkOGMzMDc5LCAweDlmNmQzYTcxKSwK
LSAgICAgICAgIFRPQk4oMHgxYjJhMmE2NywgMHg4ZDk1YThmNiksIFRPQk4oMHhjNThjOWQ3ZCwg
MHhmMjExMGQwZCksCi0gICAgICAgICBUT0JOKDB4ZGVlZTgxZDUsIDB4Y2Y4ZmJhM2YpLCBUT0JO
KDB4YTQyYmUzYzAsIDB4MGM3Y2RmNjgpLAotICAgICAgICAgVE9CTigweDIxMjZmNzQyLCAweGQ0
M2I1ZWFhKSwgVE9CTigweDA1NGEwNzY2LCAweGRmYTU5Yjg1KSwKLSAgICAgICAgIFRPQk4oMHg5
ZDBkNWUzNiwgMHgxMjZiZmQ0NSksIFRPQk4oMHhhMWY4ZmJkNywgMHgzODRmOGE4ZiksCi0gICAg
ICAgICBUT0JOKDB4MzE3NjgwZjUsIDB4ZDU2M2ZjY2MpLCBUT0JOKDB4NDhjYTUwNTUsIDB4ZjI4
MGE5MjgpLAotICAgICAgICAgVE9CTigweGUwMGI4MWIyLCAweDI3YjU3OGNmKSwgVE9CTigweDEw
YWFkOTE4LCAweDI5OTRhNTE0KSwKLSAgICAgICAgIFRPQk4oMHhkOWUwN2I2MiwgMHhiN2JkYzk1
MyksIFRPQk4oMHg5ZjBmNmZmMiwgMHg1YmMwODZkZCksCi0gICAgICAgICBUT0JOKDB4MDlkMWNj
ZmYsIDB4NjU1ZWVlNzcpLCBUT0JOKDB4NDU0NzVmNzksIDB4NWJlZjdkZjEpLAotICAgICAgICAg
VE9CTigweDNmYWEyOGZhLCAweDg2ZjcwMmNjKSwgVE9CTigweDkyZTYwOTA1LCAweDBmMDIxZjA3
KSwKLSAgICAgICAgIFRPQk4oMHhlOWU2Mjk2OCwgMHg3ZjhmYThjNiksIFRPQk4oMHhiZDcxNDE5
YSwgMHhmMDM2ZWEyYyksCi0gICAgICAgICBUT0JOKDB4MTcxZWUxY2MsIDB4NjAyOGRhOWEpLCBU
T0JOKDB4NTM1MmZlMWEsIDB4YzI1MWY1NzMpLAotICAgICAgICAgVE9CTigweGY4ZmYyMzZlLCAw
eDNmYTk5N2Y0KSwgVE9CTigweGQ4MzFiNmM5LCAweGE1NzQ5ZDVmKSwKLSAgICAgICAgIFRPQk4o
MHg3Yzg3MmUxZCwgMHhlMzUwZTJjMiksIFRPQk4oMHhjNTYyNDBkOSwgMHgxZTBjZTQwMyksCi0g
ICAgICAgICBUT0JOKDB4ZjlkZWIwNzcsIDB4Njk3NGY1Y2IpLCBUT0JOKDB4N2Q1MGJhODcsIDB4
OTYxYzM3MjgpLAotICAgICAgICAgVE9CTigweGQ2Zjg5NDI2LCAweDVhM2EyNTE4KSwgVE9CTigw
eGNmODE3Nzk5LCAweGM2MzAzZDQzKSwKLSAgICAgICAgIFRPQk4oMHg1MTBhMDQ3MSwgMHg2MTll
NTY5NiksIFRPQk4oMHhhYjA0OWZmNiwgMHgzYTVlMzA3YiksCi0gICAgICAgICBUT0JOKDB4ZTRj
ZGY5YjAsIDB4ZmViMTNlYzcpLCBUT0JOKDB4ZDVlOTcxMTcsIDB4OWQ4ZmY5MGMpLAotICAgICAg
ICAgVE9CTigweGY2ZjY0ZDA2LCAweDlhZmE5NmFmKSwgVE9CTigweDAwZDBiZjVlLCAweDlkMjAx
MmEyKSwKLSAgICAgICAgIFRPQk4oMHhlNjNmMzAxZiwgMHgzNThiY2RjMCksIFRPQk4oMHgwNzY4
OWU5OSwgMHgwYTlkNDdmOCksCi0gICAgICAgICBUT0JOKDB4MWY2ODllMmYsIDB4NGY0M2Q0M2Ep
LCBUT0JOKDB4NGQ1NDJhMTYsIDB4OTA5MjA5MDQpLAotICAgICAgICAgVE9CTigweGFlYTI5M2Q1
LCAweDljYTBhNzA3KSwgVE9CTigweGQwNjFmZTQ1LCAweDhhYzY4MDY1KSwKLSAgICAgICAgIFRP
Qk4oMHgxMDMzYmYxYiwgMHgwMDkwMDA4YyksIFRPQk4oMHgyOTc0OTU1OCwgMHhjMDhhNmRiNiks
Ci0gICAgICAgICBUT0JOKDB4NzRiNWZjNTksIDB4YzFkNWQwMzQpLCBUT0JOKDB4ZjcxMmU5ZjYs
IDB4NjdlMjE1ZTApLAotICAgICAgICAgVE9CTigweGZkNTIwY2JkLCAweDg2MDIwMGU2KSwgVE9C
TigweDAyMjlhY2I0LCAweDNlYTIyNTg4KSwKLSAgICAgICAgIFRPQk4oMHg5Y2QxZTE0YywgMHhm
ZmYwYzgyZSksIFRPQk4oMHg4NzY4NGI2MiwgMHg1OWM2OWU3MyksCi0gICAgICAgICBUT0JOKDB4
ZGE4NWU2MWMsIDB4OTZjY2I5ODkpLCBUT0JOKDB4MmQ1ZGJiMDIsIDB4YTNkMDY0OTMpLAotICAg
ICAgICAgVE9CTigweGYyMmFkMzNhLCAweGU4NmIxNzNjKSwgVE9CTigweGU4ZTQxZWE1LCAweGE3
OWZmMGUzKSwKLSAgICAgICAgIFRPQk4oMHgwMWQyZDcyNSwgMHhkZDBkMGMxMCksIFRPQk4oMHgz
MWYzOTA4OCwgMHgwMzJkMjhmOSksCi0gICAgICAgICBUT0JOKDB4N2IzZjcxZTEsIDB4NzgyOTgz
OWUpLCBUT0JOKDB4MGNmNjkxYjQsIDB4NDUwMmFlNTgpLAotICAgICAgICAgVE9CTigweGVmNjU4
ZGJkLCAweGJlZmM2MTE1KSwgVE9CTigweGE1Y2Q2ZWU1LCAweGIzYWI1MzE0KSwKLSAgICAgICAg
IFRPQk4oMHgyMDZjOGQ3YiwgMHg1ZjFkMjM0NyksIFRPQk4oMHg3OTQ2NDViYSwgMHg0Y2MyMjUz
YSksCi0gICAgICAgICBUT0JOKDB4ZDUxN2Q4ZmYsIDB4NTgzODllMDgpLCBUT0JOKDB4NGZhMjBk
ZWUsIDB4OWY4NDcyODgpLAotICAgICAgICAgVE9CTigweGViYTA3MmQ4LCAweGQ3OTc3NzBhKSwg
VE9CTigweDczNjBjOTFkLCAweGJmNDI5ZTI2KSwKLSAgICAgICAgIFRPQk4oMHg3MjAwYTNiMywg
MHg4MGFmODI3OSksIFRPQk4oMHg2YTFjOTE1MCwgMHg4MmRhZGNlMyksCi0gICAgICAgICBUT0JO
KDB4MGVlNmQzYTcsIDB4YzM1ZDg3OTQpLCBUT0JOKDB4MDQyZTY1NTgsIDB4MDM1NmJhZTUpLAot
ICAgICAgICAgVE9CTigweDlmNTk2OThkLCAweDY0MzMyMmZkKSwgVE9CTigweDkzNzlhZTE1LCAw
eDUwYTYxOTY3KSwKLSAgICAgICAgIFRPQk4oMHg2NGI5YWU2MiwgMHhmY2M5OTgxZSksIFRPQk4o
MHhhZWQzZDYzMSwgMHg2ZDI5MzRjNiksCi0gICAgICAgICBUT0JOKDB4MjQ1NGIzMDIsIDB4NWU0
ZTY1ZWIpLCBUT0JOKDB4YWIwOWY2NDcsIDB4Zjk5NTA0MjgpfSwKLSAgICAgICAge1RPQk4oMHhi
MjA4M2ExMiwgMHgyMjI0OGFjYyksIFRPQk4oMHgxZjZlYzBlZiwgMHgzMjY0ZTM2NiksCi0gICAg
ICAgICBUT0JOKDB4NTY1OWI3MDQsIDB4NWFmZGVlMjgpLCBUT0JOKDB4N2E4MjNhNDAsIDB4ZTY0
MzBiYjUpLAotICAgICAgICAgVE9CTigweDI0NTkyYTA0LCAweGUxOTAwYTc5KSwgVE9CTigweGNk
ZTA5ZDRhLCAweGM5ZWU2NTc2KSwKLSAgICAgICAgIFRPQk4oMHg1MmI2NDYzZiwgMHg0YjVlYTU0
YSksIFRPQk4oMHgxZWZlOWVkMywgMHhkM2NhNjVhNyksCi0gICAgICAgICBUT0JOKDB4ZTI3YTZk
YmUsIDB4MzA1NDA2ZGQpLCBUT0JOKDB4OGViN2RjN2YsIDB4ZGQ1ZDE5NTcpLAotICAgICAgICAg
VE9CTigweGY1NGE2ODc2LCAweDM4N2Q0ZDhmKSwgVE9CTigweDljNDc5NDA5LCAweGM3NzYyZGU0
KSwKLSAgICAgICAgIFRPQk4oMHhiZTRkNWI1ZCwgMHg5OWIzMDc3OCksIFRPQk4oMHgyNTM4MGM1
NiwgMHg2ZTc5MzY4MiksCi0gICAgICAgICBUT0JOKDB4NjAyZDM3ZjMsIDB4ZGFjNzQwZTMpLCBU
T0JOKDB4MTQwZGVhYmUsIDB4MTU2NmU0YWUpLAotICAgICAgICAgVE9CTigweDQ0ODFkMDY3LCAw
eGFmZDMyYWNmKSwgVE9CTigweGQ4ZjBmY2NhLCAweGUxZjcxY2NmKSwKLSAgICAgICAgIFRPQk4o
MHhkMjA4ZGQwYywgMHhiNTk2ZjJkYSksIFRPQk4oMHhkMDQ5ZDczMCwgMHg5YWFkOTNmOSksCi0g
ICAgICAgICBUT0JOKDB4Yzc5ZjI2M2QsIDB4NDJhYjU4MGUpLCBUT0JOKDB4MDk0MTFiYjEsIDB4
MjNmNzA3YjQpLAotICAgICAgICAgVE9CTigweDhjZmRlMWZmLCAweDgzNWUwZWRhKSwgVE9CTigw
eDcyNzA3NDkwLCAweDkwZjAzNDAyKSwKLSAgICAgICAgIFRPQk4oMHhlYWVlNjEyNiwgMHhjNDlh
ODYxZSksIFRPQk4oMHgwMjRmM2I2NSwgMHhlMTRmMGQwNiksCi0gICAgICAgICBUT0JOKDB4NTFh
M2YxZTgsIDB4YzY5YmZjMTcpLCBUT0JOKDB4YzNjM2E4ZTksIDB4YTc2ODYzODEpLAotICAgICAg
ICAgVE9CTigweDM0MDA3NTJjLCAweGIxMDNkNGM4KSwgVE9CTigweDAyYmM0NjEzLCAweDkyMThi
MzZiKSwKLSAgICAgICAgIFRPQk4oMHhjNjdmNzVlYiwgMHg3NjUxNTA0YSksIFRPQk4oMHhkNjg0
OGI1NiwgMHhkMDJhZWJmYSksCi0gICAgICAgICBUT0JOKDB4YmQ5ODAyZTYsIDB4YzMwZmE5MmIp
LCBUT0JOKDB4NWE3MGQ5NmQsIDB4OWE1NTI3ODQpLAotICAgICAgICAgVE9CTigweDkwODVjNGVh
LCAweDNmODMxNjliKSwgVE9CTigweGZhOTQyM2JiLCAweDA2OTA4MjI4KSwKLSAgICAgICAgIFRP
Qk4oMHgyZmZlYmUxMiwgMHhmZTk3YTViOSksIFRPQk4oMHg4NWRhNjA0OSwgMHg3MWI5OTExOCks
Ci0gICAgICAgICBUT0JOKDB4OWNiYzJmN2YsIDB4NjMxNzg4NDYpLCBUT0JOKDB4ZmQ5NmJjNzAs
IDB4OTE1MzIxOGUpLAotICAgICAgICAgVE9CTigweDk1ODM4MWRiLCAweDE3ODIyNjliKSwgVE9C
TigweGFlMzRiZjc5LCAweDI1OTdlNTUwKSwKLSAgICAgICAgIFRPQk4oMHhiYjVjNjA2NCwgMHg1
ZjM4NTE1MyksIFRPQk4oMHg2ZjBlOTZhZiwgMHhlMzA4ODA0OCksCi0gICAgICAgICBUT0JOKDB4
YmY2YTAyMTUsIDB4Nzc4ODQ0NTYpLCBUT0JOKDB4YjNiNTY4OGMsIDB4NjkzMTBlYTcpLAotICAg
ICAgICAgVE9CTigweDE3Yzk0Mjk1LCAweDA0ZmFkMmRlKSwgVE9CTigweGUwMjBmMGU1LCAweDE3
ODk2ZDRkKSwKLSAgICAgICAgIFRPQk4oMHg3MzBiYTBhYiwgMHgwOTc2NTA1ZiksIFRPQk4oMHg1
NjdmNjgxMywgMHgwOTVlMmVjNSksCi0gICAgICAgICBUT0JOKDB4NDcwNjIwMTAsIDB4NjMzMWFi
NzEpLCBUT0JOKDB4NzJjZmE5NzcsIDB4NDFkMjJiOWYpLAotICAgICAgICAgVE9CTigweDMzZTU1
ZWFkLCAweDhhMjM3M2RhKSwgVE9CTigweGE4ZDBkNWY0LCAweDdiYTQ1YTY4KSwKLSAgICAgICAg
IFRPQk4oMHhiYTFkOGY5YywgMHgwMzAyOWQxNSksIFRPQk4oMHg4ZjM0ZjFjYywgMHhmYzU1Yjlm
MyksCi0gICAgICAgICBUT0JOKDB4Y2NhNDQyOGQsIDB4YmJlNWExYTkpLCBUT0JOKDB4ODE4N2Zk
NWYsIDB4MzEyNmJkNjcpLAotICAgICAgICAgVE9CTigweDAwMzY5NzNhLCAweDQ4MTA1ODI2KSwg
VE9CTigweGEzOWI2NjYzLCAweGI4YmQ2MWEwKSwKLSAgICAgICAgIFRPQk4oMHg2ZDQyZGVlZiwg
MHgyZDY1YTgwOCksIFRPQk4oMHg0OTY5MDQ0ZiwgMHg5NDYzNmIxOSksCi0gICAgICAgICBUT0JO
KDB4ZjYxMWVlNDcsIDB4ZGQ1ZDU2NGMpLCBUT0JOKDB4N2IyZjNhNDksIDB4ZDI4NzMwNzcpLAot
ICAgICAgICAgVE9CTigweDk0MTU3ZDQ1LCAweDMwMGViMjk0KSwgVE9CTigweDJiMmE2NTZlLCAw
eDE2OWMxNDk0KSwKLSAgICAgICAgIFRPQk4oMHhjMDAwZGQ3NiwgMHhkM2E0N2FhOSksIFRPQk4o
MHhhMjg2NGU0ZiwgMHhhNjI0M2VhNCksCi0gICAgICAgICBUT0JOKDB4ODI3MTZjNDcsIDB4ZGI4
OTg0MmUpLCBUT0JOKDB4MTJkZmQ3ZDcsIDB4NjE0NzlmYjcpLAotICAgICAgICAgVE9CTigweDNi
OWEyYzU2LCAweGUwYjJmNmRjKSwgVE9CTigweDQ2YmU4NjJhLCAweGQ3Zjg1ZDY3KSwKLSAgICAg
ICAgIFRPQk4oMHgwM2IwZDhkZCwgMHgwZjgyYjIxNCksIFRPQk4oMHg0NjBjMzRmOSwgMHhmMTAz
Y2JjNiksCi0gICAgICAgICBUT0JOKDB4ZjMyZTVjMDMsIDB4MThkNzllMTkpLCBUT0JOKDB4OGI4
ODg4YmEsIDB4YTg0MTE3ZjgpLAotICAgICAgICAgVE9CTigweDhmM2MzN2RjLCAweGMwNzIyNjc3
KSwgVE9CTigweDEwZDIxYmU5LCAweDFjMWMwZjI3KSwKLSAgICAgICAgIFRPQk4oMHhkNDdjODQ2
OCwgMHhlMGY3YTBjNiksIFRPQk4oMHg5YmYwMjIxMywgMHhhZGVjYzBlMCksCi0gICAgICAgICBU
T0JOKDB4MGJhYTdkMTIsIDB4NDJiNDhiOTkpLCBUT0JOKDB4MWJjYjY2NWQsIDB4NDg0MjQwOTYp
LAotICAgICAgICAgVE9CTigweDhiODQ3Y2Q2LCAweGViZmI1Y2ZiKSwgVE9CTigweDg3YzJhZTU2
LCAweDlhZDRkMTBkKSwKLSAgICAgICAgIFRPQk4oMHhmMWNiYjEyMiwgMHgwZGUzNjcyNiksIFRP
Qk4oMHhlNzA0M2M2OCwgMHgzZmRmYmQyMSksCi0gICAgICAgICBUT0JOKDB4NGJkMDgyNmEsIDB4
NGU3OWQ0NjApLCBUT0JOKDB4MTFmNWU1OTgsIDB4NGJkMWEyY2IpLAotICAgICAgICAgVE9CTigw
eDk3NTU0MTYwLCAweGI3ZmU3YjZlKSwgVE9CTigweDdkMTYxODlhLCAweDQwMGEzZmIyKSwKLSAg
ICAgICAgIFRPQk4oMHhkNzNlOWJlYSwgMHhlMzI4Y2ExZSksIFRPQk4oMHgwZGQwNGI5NywgMHhl
NzkzZDhjYyksCi0gICAgICAgICBUT0JOKDB4YTljODNjOWIsIDB4NTA2ZGI4Y2MpLCBUT0JOKDB4
NWNkNDdhYWUsIDB4Y2YzODgxNGMpLAotICAgICAgICAgVE9CTigweDI2ZmM0MzBkLCAweGI2NGI0
NWU2KSwgVE9CTigweDA3OWI1NDk5LCAweGQ4MThlYTg0KSwKLSAgICAgICAgIFRPQk4oMHhlYmIw
MTEwMiwgMHhjMWMyNGEzYiksIFRPQk4oMHhjYTI0ZTU2OCwgMHgxYzE2MWMxYSksCi0gICAgICAg
ICBUT0JOKDB4MTAzZWVhNjksIDB4MzZmMDBhNGEpLCBUT0JOKDB4OWFkNzZlZTgsIDB4NzYxNzZj
N2IpLAotICAgICAgICAgVE9CTigweDk3NDUxZmMyLCAweDUzOGUwZmY3KSwgVE9CTigweDk0Zjg5
ODA5LCAweDY2MDRiM2IwKSwKLSAgICAgICAgIFRPQk4oMHg2MzExNDM2ZSwgMHgzMjQ5Y2ZkNyks
IFRPQk4oMHgyN2I0YTdiZCwgMHg0MTIyNGY2OSksCi0gICAgICAgICBUT0JOKDB4MDNiNWQyMWEs
IDB4ZTBhYzI5NDEpLCBUT0JOKDB4Mjc5YjAyNTQsIDB4YzJkMzE5MzcpLAotICAgICAgICAgVE9C
TigweDMzMDdjMDUyLCAweGNhYzk5MmQwKSwgVE9CTigweDZhYTdjYjkyLCAweGVmYThiMWYzKSwK
LSAgICAgICAgIFRPQk4oMHg1YTE4MjU4MCwgMHgwZDM3YzdhNSksIFRPQk4oMHgxMzM4MGMzNywg
MHgzNDJkNTQyMiksCi0gICAgICAgICBUT0JOKDB4OTJhYzJkNjYsIDB4ZDVkMmVmOTIpLCBUT0JO
KDB4MDM1YTcwYzksIDB4MDMwYzYzYzYpLAotICAgICAgICAgVE9CTigweGMxNjAyNWRkLCAweDRj
ZTRmMTUyKSwgVE9CTigweDFmNDE5YTcxLCAweGY5ZGY3YzA2KSwKLSAgICAgICAgIFRPQk4oMHg2
ZDViMjIxNCwgMHg5MWU0YmIxNCksIFRPQk4oMHhmYzQzYzZjYywgMHg4MzlmYjRjZSksCi0gICAg
ICAgICBUT0JOKDB4NDlmMDY1OTEsIDB4OTI1ZDZiMmQpLCBUT0JOKDB4NGIzN2Q5ZDMsIDB4NjIx
ODY1OTgpLAotICAgICAgICAgVE9CTigweDhjNTRhOTcxLCAweGQwMWIxNjI5KSwgVE9CTigweGUx
YTljMjlmLCAweDUxZDUwZTA1KSwKLSAgICAgICAgIFRPQk4oMHg1MTA5Yjc4NSwgMHg3MWJhMTg2
MSksIFRPQk4oMHg0OGIyMmQ1YywgMHhkMGM4ZjkzZCksCi0gICAgICAgICBUT0JOKDB4ZThmYTg0
YTcsIDB4ODYzM2JiOTMpLCBUT0JOKDB4NTNmYmE2YmEsIDB4NWFlYmJkMDgpLAotICAgICAgICAg
VE9CTigweDdmZjI3ZGYzLCAweGU1ZWVhN2Q4KSwgVE9CTigweDUyMWM4Nzk2LCAweDY4Y2E3MTU4
KSwKLSAgICAgICAgIFRPQk4oMHhiOWQ1MTMzYiwgMHhjZTZmMWEwNSksIFRPQk4oMHgyZDUwY2Q1
MywgMHhmZDBlYmVlNCksCi0gICAgICAgICBUT0JOKDB4YzgyMTE1ZDYsIDB4YzVhM2VmMTYpLCBU
T0JOKDB4OTkzZWZmOWQsIDB4YmEwNzkyMjEpLAotICAgICAgICAgVE9CTigweGU0ZGEyYzVlLCAw
eDRiNWRhODFjKSwgVE9CTigweDlhODlkYmRiLCAweDgwMzNmZDg1KSwKLSAgICAgICAgIFRPQk4o
MHg2MDgxOWViZiwgMHgyYjg5Mjg5MSksIFRPQk4oMHg1MzkwMmIyMSwgMHg1ZDE0YTRkNSksCi0g
ICAgICAgICBUT0JOKDB4NmFjMzUwNTEsIDB4ZDdmZGE0MjEpLCBUT0JOKDB4Y2M2YWI4ODUsIDB4
NjFjODMyODQpLAotICAgICAgICAgVE9CTigweDE0ZWJhMTMzLCAweGY3NGNmZjE3KSwgVE9CTigw
eDI0MGFhYTAzLCAweGVjYjgxM2YyKSwKLSAgICAgICAgIFRPQk4oMHhjZmJiNjU0MCwgMHg2ZjY2
NWJlZSksIFRPQk4oMHgwODRiMWZlNCwgMHhhNDI1YWQ3MyksCi0gICAgICAgICBUT0JOKDB4MDA5
ZDVkMTYsIDB4ZDA4MWY2YTYpLCBUT0JOKDB4MzUzMDRmZTgsIDB4ZWVmODJjOTApLAotICAgICAg
ICAgVE9CTigweGYyMDM0NmQ1LCAweGFhOWVhYTIyKSwgVE9CTigweDBhZGE5ZjA3LCAweGFjMWM5
MWUzKSwKLSAgICAgICAgIFRPQk4oMHhhNmUyMTY3OCwgMHg5NjhhNjE0NCksIFRPQk4oMHg1NGMx
Zjc3YywgMHgwN2IzMWExZSksCi0gICAgICAgICBUT0JOKDB4ZDZiYjc4N2UsIDB4NTc4MWZiZTEp
LCBUT0JOKDB4NjFiZDJlZTAsIDB4ZTMxZjFjNGEpLAotICAgICAgICAgVE9CTigweGYyNWFhMWU5
LCAweDc4MTEwNWZjKSwgVE9CTigweDljZjI5NzFmLCAweDdiMmY4ZTgwKSwKLSAgICAgICAgIFRP
Qk4oMHgyNmQxNTQxMiwgMHhjZGZmOTE5YiksIFRPQk4oMHgwMWRiNGViZSwgMHgzNGJjODk2ZSks
Ci0gICAgICAgICBUT0JOKDB4N2Q5YjNlMjMsIDB4YjQwZGYxY2YpLCBUT0JOKDB4NTkzMzczNzMs
IDB4OTRlOTcxYjQpLAotICAgICAgICAgVE9CTigweGJmNTdiZDE0LCAweDY2OWNmOTIxKSwgVE9C
TigweDg2NWRhZWRmLCAweDBjMWExMDY0KSwKLSAgICAgICAgIFRPQk4oMHgzZWI3MGJkMywgMHg4
MzI3OTEyNSksIFRPQk4oMHhiYzNkNWI5ZiwgMHgzNGVjZGFhYiksCi0gICAgICAgICBUT0JOKDB4
OTFlM2VkN2UsIDB4NWY3NTVjYWYpLCBUT0JOKDB4NDk2OTlmNTQsIDB4ZDQxZTZmMDIpLAotICAg
ICAgICAgVE9CTigweDE4NTc3MGUxLCAweGQ0YTdhMTViKSwgVE9CTigweDA4ZjM1ODdhLCAweGVh
YWM4N2U3KSwKLSAgICAgICAgIFRPQk4oMHgzNTIwMThkYiwgMHg0NzMxMzNlYSksIFRPQk4oMHg2
NzRjZTcxOSwgMHgwNGZkMzBmYyksCi0gICAgICAgICBUT0JOKDB4N2I4ZDk4MzUsIDB4MDg4YjNl
MGUpLCBUT0JOKDB4N2EwMzU2YTksIDB4NWQwZDQ3YTEpLAotICAgICAgICAgVE9CTigweDlkOWU3
NjU5LCAweDY0NzRhM2M0KSwgVE9CTigweDYxZWE0OGE3LCAweGZmNjY5NjZjKSwKLSAgICAgICAg
IFRPQk4oMHgzMDQxNzc1OCwgMHgwZjNlNDgzNCksIFRPQk4oMHhmZGJiMjFjMiwgMHgxN2E5YWZj
YiksCi0gICAgICAgICBUT0JOKDB4NzU2ZmExN2YsIDB4MmY5YTY3YjMpLCBUT0JOKDB4MmE2YjI0
MjEsIDB4YTI0NWMxYTgpLAotICAgICAgICAgVE9CTigweDY0YmUyNzk0LCAweDRhZjAyMjkxKSwg
VE9CTigweGFkZTQ2NWM2LCAweDJhNTgwNGZlKSwKLSAgICAgICAgIFRPQk4oMHg4ZGZmYmQzOSwg
MHhhNmYwOGZkNyksIFRPQk4oMHhjNGVmYTg0YywgMHhhYTE0NDAzYiksCi0gICAgICAgICBUT0JO
KDB4YTFiOTFiMmEsIDB4NDQyYjBmNWMpLCBUT0JOKDB4Yjc0OGUzMTcsIDB4Y2Y5OTc3MzYpLAot
ICAgICAgICAgVE9CTigweDhkMWI2MmJmLCAweGNlZTkwZTE2KSwgVE9CTigweDkwN2FlMjcxLCAw
eDBiMjA3OGMwKSwKLSAgICAgICAgIFRPQk4oMHhkZjMxNTM0YiwgMHgwYzliY2RkZCksIFRPQk4o
MHgwNDNmYjA1NCwgMHgzOWFkY2U4MyksCi0gICAgICAgICBUT0JOKDB4OTkwMzEwNDMsIDB4ZDgy
Njg0NmEpLCBUT0JOKDB4NjFhOWMwZDYsIDB4YjE0NGYzOTMpLAotICAgICAgICAgVE9CTigweGRh
YjQ4MDQ2LCAweDQ3NzE4NDI3KSwgVE9CTigweGRmMTdmZjliLCAweDZlODMwZjhiKSwKLSAgICAg
ICAgIFRPQk4oMHg0MDhkN2VlOCwgMHhlNDlhMTM0NyksIFRPQk4oMHg2YWM3MWUyMywgMHg5MWMx
ZDRhZSksCi0gICAgICAgICBUT0JOKDB4YzhjYmI5ZmQsIDB4MWRlZmQ3M2MpLCBUT0JOKDB4MTk4
NDA2NTcsIDB4YmJiYmZlYzUpLAotICAgICAgICAgVE9CTigweDM5ZGIxY2I1LCAweDllN2VmOGVh
KSwgVE9CTigweDc4YWE4Mjk2LCAweDY0MTA1ZjMwKSwKLSAgICAgICAgIFRPQk4oMHhhM2Q5Yjdm
MCwgMHhhMzczOGMyOSksIFRPQk4oMHgwYTJmMjM1YSwgMHhiYzMyNTBhMyksCi0gICAgICAgICBU
T0JOKDB4NTVlNTA2ZjYsIDB4NDQ1ZTRjYWYpLCBUT0JOKDB4MDk3NGY3M2QsIDB4MzM0NzVmN2Ep
LAotICAgICAgICAgVE9CTigweGQzN2RiYmEzLCAweDViYTJmNWE4KSwgVE9CTigweDU0MmM2ZTYz
LCAweDZhZjQwMDY2KSwKLSAgICAgICAgIFRPQk4oMHgyNmQ5OWI1MywgMHhjNWQ3M2UyYyksIFRP
Qk4oMHgwNjA2MGQ3ZCwgMHg2YzNjYTMzZSksCi0gICAgICAgICBUT0JOKDB4Y2RiZWYxYzIsIDB4
MDY1ZmVmNGEpLCBUT0JOKDB4NzdlNjBmN2QsIDB4ZmQ1YjkyZTMpLAotICAgICAgICAgVE9CTigw
eGQ3YzU0OWYwLCAweDI2NzA4MzUwKSwgVE9CTigweDIwMWIzYWQwLCAweDM0ZjEyMWJmKSwKLSAg
ICAgICAgIFRPQk4oMHg1ZmNhYzJhMSwgMHgwMzM0ZmMxNCksIFRPQk4oMHg4YTlhOWUwOSwgMHgz
NDQ1NTJmNiksCi0gICAgICAgICBUT0JOKDB4N2RkOGExZDMsIDB4OTc2NTMwODIpLCBUT0JOKDB4
NWZjMDczOGYsIDB4NzlkNGYyODkpLAotICAgICAgICAgVE9CTigweDc4N2QyNDRkLCAweDE3ZDJk
OGMzKSwgVE9CTigweGVmZmM2MzQ1LCAweDcwODMwNjg0KSwKLSAgICAgICAgIFRPQk4oMHg1ZGRi
OTZkZCwgMHhlNGY3M2FlNSksIFRPQk4oMHg4ZWZiMTRiMSwgMHgxNzI1NDlhNSksCi0gICAgICAg
ICBUT0JOKDB4NmViNzNlZWUsIDB4MjI0NWFlN2EpLCBUT0JOKDB4YmNhNDA2MWUsIDB4ZWExMWYx
M2UpLAotICAgICAgICAgVE9CTigweGI1Nzc0MjFkLCAweDMwYjAxZjVkKSwgVE9CTigweGFhNjg4
YjI0LCAweDc4MmUxNTJjKSwKLSAgICAgICAgIFRPQk4oMHg2NzYwOGU3MSwgMHhiZDM1MDJiYSks
IFRPQk4oMHg0ZWY0MWYyNCwgMHhiNGRlNzVhMCksCi0gICAgICAgICBUT0JOKDB4YjA4ZGRlNWUs
IDB4ZmQ2MTI1ZTUpLCBUT0JOKDB4ZGU0ODQ4MjUsIDB4YTQwOTU0M2YpLAotICAgICAgICAgVE9C
TigweDFmMTk4ZDk4LCAweDY1Y2MyMjk1KSwgVE9CTigweDQyOGEzNzcxLCAweDZlMGVkZmEyKSwK
LSAgICAgICAgIFRPQk4oMHg0Zjk2OTdhMiwgMHhhZGYzNWZjNyksIFRPQk4oMHgwMWE0M2M3OSwg
MHhmN2NhYzNjNyksCi0gICAgICAgICBUT0JOKDB4YjA1ZDcwNTksIDB4MGZkMzY1OWEpLCBUT0JO
KDB4ODkyN2YzMGMsIDB4YmI3ZjJkOWEpLAotICAgICAgICAgVE9CTigweDQwMjNkMWFjLCAweDhj
Zjk4NGQzKSwgVE9CTigweDMyMTI1ZWQzLCAweDAyODk3YTQ1KSwKLSAgICAgICAgIFRPQk4oMHhm
YjU3MmRhZCwgMHgzZDQxNDIwNSksIFRPQk4oMHg3MzAwMGVmMiwgMHhlM2ZhODJhOSksCi0gICAg
ICAgICBUT0JOKDB4NGMwODY4ZTksIDB4ZjEwYTU1ODEpLCBUT0JOKDB4NWI2MWZjNjcsIDB4NmIw
YjNjYTUpLAotICAgICAgICAgVE9CTigweGMxMjU4ZDViLCAweDdjYWU0NDBjKSwgVE9CTigweDIx
YzA4YjQxLCAweDQwMmI3NTMxKSwKLSAgICAgICAgIFRPQk4oMHhmNjFhODk1NSwgMHhkZTkzMjMy
MSksIFRPQk4oMHgzNTY4ZmFmOCwgMHgyZDE0MDhhZiksCi0gICAgICAgICBUT0JOKDB4NzFiMTVl
OTksIDB4OWVjZjk2NWIpLCBUT0JOKDB4ZjE0ZWQyNDgsIDB4ZTkxNzI3NmYpLAotICAgICAgICAg
VE9CTigweGM2ZjRjYWExLCAweDgyMGNmOWUyKSwgVE9CTigweDY4MWIyMGIyLCAweDE4ZDgzYzdl
KSwKLSAgICAgICAgIFRPQk4oMHg2Y2RlNzM4ZCwgMHhjNmMwMTEyMCksIFRPQk4oMHg3MWRiMDgx
MywgMHhhZTcwZTBkYiksCi0gICAgICAgICBUT0JOKDB4OTVmYzA2NDQsIDB4NzRhZmUxOGMpLCBU
T0JOKDB4MzQ2MTkwNTMsIDB4MTI5ZTJiZTcpLAotICAgICAgICAgVE9CTigweDgwNjE1Y2VhLCAw
eGRiMmEzYjE1KSwgVE9CTigweDBhNDlhMTllLCAweGRiNGM3MDczKSwKLSAgICAgICAgIFRPQk4o
MHgwZTFiODRjOCwgMHg4ZmQyZDM2NyksIFRPQk4oMHhkNzRiZjQ2MiwgMHgwMzNmYjhhYSksCi0g
ICAgICAgICBUT0JOKDB4ODg5ZjZkNjUsIDB4NTMzZWYyMTcpLCBUT0JOKDB4NzE1OGM3ZTQsIDB4
YzNjYTJlODcpLAotICAgICAgICAgVE9CTigweGZiNjcwZGZiLCAweGRjMmI0MTY3KSwgVE9CTigw
eDc1OTEwYTAxLCAweDg0NGMyNTdmKSwKLSAgICAgICAgIFRPQk4oMHhmMzM2YmYwNywgMHhjZjg4
NTc3ZCksIFRPQk4oMHgyMjI0NTI1MCwgMHhlNDVlMmFjZSksCi0gICAgICAgICBUT0JOKDB4MmVk
OTJlOGQsIDB4N2NhMjNkODUpLCBUT0JOKDB4MjlmOGJlNGMsIDB4MmI4MTJmNTgpLAotICAgICAg
ICAgVE9CTigweGRkOWViYWE3LCAweDA3NmZlMTJiKSwgVE9CTigweDNmMjQwMGNiLCAweGFlMTUz
N2Y5KSwKLSAgICAgICAgIFRPQk4oMHgxYWE5MzUyOCwgMHgxN2JkZmI0NiksIFRPQk4oMHhjMGY5
ODQzMCwgMHg2Nzg4M2I0MSksCi0gICAgICAgICBUT0JOKDB4NTU5MGVkZTEsIDB4MDE3MDkxMWQp
LCBUT0JOKDB4NzU2MmY1YmIsIDB4MzRkNGIxN2YpLAotICAgICAgICAgVE9CTigweGUxZmExZGYy
LCAweDE4MjZiOGQyKSwgVE9CTigweGI0MGI3OTZhLCAweDZiZDgwZDU5KSwKLSAgICAgICAgIFRP
Qk4oMHhkNjViZjE5NywgMHgzNDY3YmE5MiksIFRPQk4oMHg4YzliNDZkYiwgMHhmNzA5NTRiMCks
Ci0gICAgICAgICBUT0JOKDB4OTdjOGEwZjMsIDB4MGU3OGYxNWQpLCBUT0JOKDB4YThmM2E2OWEs
IDB4ODVhNGM5NjEpLAotICAgICAgICAgVE9CTigweDQyNDI2NjBmLCAweDYxZTRjZTliKSwgVE9C
TigweGJmMDZhYWIzLCAweDZlYTY3OTBjKSwKLSAgICAgICAgIFRPQk4oMHhjNjcwNmY4ZSwgMHhl
Yzk4NjQxNiksIFRPQk4oMHg5ZTU2ZGVjMSwgMHg5YTlmYzIyNSksCi0gICAgICAgICBUT0JOKDB4
NTI3YzQ2ZjQsIDB4OWE5ODk4ZDkpLCBUT0JOKDB4ZDc5OWU3N2IsIDB4NTYzM2NkZWYpLAotICAg
ICAgICAgVE9CTigweDI0ZWFjYzE2LCAweDdkOWU0Mjk3KSwgVE9CTigweGFiYjYxY2VhLCAweDZi
MWNiNzM0KSwKLSAgICAgICAgIFRPQk4oMHhiZWUyZThhNywgMHhmNzc4NDQzYyksIFRPQk4oMHgz
YmI0MmJmMSwgMHgyOWRlMmZlNiksCi0gICAgICAgICBUT0JOKDB4Y2JlZDg2YTEsIDB4MzAwM2Ji
NmYpLCBUT0JOKDB4ZDM5MThlNmMsIDB4ZDc4MWNkZjYpLAotICAgICAgICAgVE9CTigweDRiZWUz
MjcxLCAweDlhNTEwM2YxKSwgVE9CTigweDUyNDNlZmM2LCAweGY1MGVhYzA2KSwKLSAgICAgICAg
IFRPQk4oMHhiOGUxMjJjYiwgMHg2YWRjYzExOSksIFRPQk4oMHgxYjdmYWE4NCwgMHhjMGI4MGEw
OCksCi0gICAgICAgICBUT0JOKDB4MzJjM2QxYmQsIDB4NmRmY2QwOGMpLCBUT0JOKDB4MTI5ZGVj
NGUsIDB4MGJlNDI3ZGUpLAotICAgICAgICAgVE9CTigweDk4YWI2NzljLCAweDFkMjYzYzgzKSwg
VE9CTigweGFmYzgzY2I3LCAweGNlZjY0ZWZmKSwKLSAgICAgICAgIFRPQk4oMHg4NWViNjA4OCwg
MHgyZmE2YmU3NiksIFRPQk4oMHg4OTI1ODVmYiwgMHgxMzI4Y2JmZSksCi0gICAgICAgICBUT0JO
KDB4YzE1NGQzZWQsIDB4Y2Y2MThkZGEpLCBUT0JOKDB4YzQ0ZjYwMWIsIDB4M2FiYWYyNmUpLAot
ICAgICAgICAgVE9CTigweDdiZjU3ZDBiLCAweDJiZTFmZGZkKSwgVE9CTigweGE4MzNiZDJkLCAw
eDIxMTM3ZmVlKSwKLSAgICAgICAgIFRPQk4oMHg5MzUzYWYzNiwgMHgyZGI1OTFhOCksIFRPQk4o
MHhjNzZmMjZkYywgMHg1NTYyYTA1NiksCi0gICAgICAgICBUT0JOKDB4MWQ4N2U0N2QsIDB4M2Zk
ZjVhNTEpLCBUT0JOKDB4N2FmYjVmOTMsIDB4NTVjOWNhYjApLAotICAgICAgICAgVE9CTigweDkx
YmJmNThmLCAweDg5ZTA1ODZlKSwgVE9CTigweDdjNzJjMDE4LCAweDBkODQzNzA5KSwKLSAgICAg
ICAgIFRPQk4oMHhhOWE1YWFmYiwgMHg5OWI1YzNkYyksIFRPQk4oMHhhNDhhMGYxZCwgMHgzODQ0
YWViMCksCi0gICAgICAgICBUT0JOKDB4NzE3OGI3ZGQsIDB4YjY2N2U0ODIpLCBUT0JOKDB4NDUz
OTg1ZTksIDB4NmUyM2E1OWEpLAotICAgICAgICAgVE9CTigweDRhNTRjODYwLCAweDAxYjI1ZGQ4
KSwgVE9CTigweDBkZDM3ZjQ4LCAweGZiODk3YzhhKSwKLSAgICAgICAgIFRPQk4oMHg1ZjhhYTYx
MCwgMHgwZWE5MGNkOSksIFRPQk4oMHhjODg5MmM2OCwgMHgxNmQ1ODMwZCksCi0gICAgICAgICBU
T0JOKDB4ZWI0YmVmYzAsIDB4ZWY1MTRjYTUpLCBUT0JOKDB4NDc4ZWI2NzksIDB4ZTcyYzllZTYp
LAotICAgICAgICAgVE9CTigweDliY2EyMGRhLCAweGRiYzQwZDVmKSwgVE9CTigweGYwMTVkZTIx
LCAweGRkZTRmNjRhKSwKLSAgICAgICAgIFRPQk4oMHhhYTZhNGRlMCwgMHhlYWY0YjhhNSksIFRP
Qk4oMHg2OGNmZDljYSwgMHg0YmM2MGUzMiksCi0gICAgICAgICBUT0JOKDB4NjY4YTRiMDEsIDB4
N2ZkMTVlNzApLCBUT0JOKDB4ZDlmMDY5NGEsIDB4ZjI3ZGMwOWQpLAotICAgICAgICAgVE9CTigw
eGY2YzNjYWQ1LCAweGJhNzA4YmNkKSwgVE9CTigweDVjZDJiYTY5LCAweDViYjk1YzJhKSwKLSAg
ICAgICAgIFRPQk4oMHhhYTI4YzFkMywgMHgzM2MwYTU4ZiksIFRPQk4oMHgyM2UyNzRlMywgMHhh
YmM3Nzg3MCksCi0gICAgICAgICBUT0JOKDB4NDRjMzY5MmQsIDB4ZGZkMjBhNGEpLCBUT0JOKDB4
MDkxYzVmZDMsIDB4ODFhNjY2NTMpLAotICAgICAgICAgVE9CTigweDZjMGJiNjkxLCAweDA5YTA3
NTdkKSwgVE9CTigweDkwNzJlOGI5LCAweDY2NzM0M2VhKSwKLSAgICAgICAgIFRPQk4oMHgzMWQ0
MGViMCwgMHg4MDg0OGJlYyksIFRPQk4oMHg5NWJkNDgwYSwgMHg3OWZkMzZjYyksCi0gICAgICAg
ICBUT0JOKDB4MDFhNzdjNjEsIDB4NjVlZDQzZjUpLCBUT0JOKDB4YWZjY2QxMjcsIDB4MmUwZDQw
YmYpLAotICAgICAgICAgVE9CTigweGVjY2ZjODJkLCAweDFjYzE4ODRiKSwgVE9CTigweGM4NWFj
MjAxLCAweDVkNDc1M2I0KSwKLSAgICAgICAgIFRPQk4oMHhjN2E2Y2FhYywgMHg2NThlMDk5Ziks
IFRPQk4oMHhjZjQ2MzY5ZSwgMHgwNGIyNzM5MCksCi0gICAgICAgICBUT0JOKDB4ZTJlN2QwNDks
IDB4NTA2NDY3ZWEpLCBUT0JOKDB4NDgxYjYzYTIsIDB4MzdjZGVjY2MpLAotICAgICAgICAgVE9C
TigweDQwMjlhYmQ4LCAweGVkODAxNDNhKSwgVE9CTigweDI4YmZlM2M3LCAweGJjYjAwYjg4KSwK
LSAgICAgICAgIFRPQk4oMHgzYmVjMTAwOSwgMHgwNjQzZDg0YSksIFRPQk4oMHg4ODVmMzY2OCwg
MHhhYmQxMTA0MSksCi0gICAgICAgICBUT0JOKDB4ZGIwMjQzMmMsIDB4ZjgzYTM0ZDYpLCBUT0JO
KDB4MzJmN2IzNjAsIDB4NzE5Y2VlYmUpLAotICAgICAgICAgVE9CTigweGYwNmM3ODM3LCAweGRh
ZDFmZTdhKSwgVE9CTigweDYwYTE1N2E5LCAweDU0NDFhMGIwKSwKLSAgICAgICAgIFRPQk4oMHg3
MDQ5NzBlOSwgMHhlMmQ0NzU1MCksIFRPQk4oMHhjZDJiZDU1MywgMHgyNzFiOTAyMCksCi0gICAg
ICAgICBUT0JOKDB4ZmY1N2Y4MmYsIDB4MzNlMjRhMGIpLCBUT0JOKDB4OWNiZWUyM2YsIDB4ZjI1
NjUwNzkpLAotICAgICAgICAgVE9CTigweDE2MzUzNDI3LCAweGViNWY1ODI1KSwgVE9CTigweDI3
NmZlZWM0LCAweGU5NDhkNjYyKSwKLSAgICAgICAgIFRPQk4oMHhkMWI2MmJjNiwgMHhkYTEwMDMy
YiksIFRPQk4oMHg3MTgzNTFkZCwgMHhmMGU3MmE1MyksCi0gICAgICAgICBUT0JOKDB4OTM0NTIw
NzYsIDB4MjQyMGU3YmEpLCBUT0JOKDB4OTYzNjhmZmYsIDB4M2EwMDExOGQpLAotICAgICAgICAg
VE9CTigweDAwY2UyZDI2LCAweDE1MGE0OWU0KSwgVE9CTigweDBjMjhiNjM2LCAweDNmMDQ3MDZi
KSwKLSAgICAgICAgIFRPQk4oMHhiYWQ2NWE0NiwgMHg1OGIxOTZkMCksIFRPQk4oMHg2Yzg0NTVm
YywgMHhlYzlmOGI3YyksCi0gICAgICAgICBUT0JOKDB4ZTkwYzg5NWYsIDB4MmQ3MTg2N2UpLCBU
T0JOKDB4NWMwYmUzMWIsIDB4ZWRmOWYzOGMpLAotICAgICAgICAgVE9CTigweDJhMzdhMTVlLCAw
eGQ4ZjZlYzA0KSwgVE9CTigweDIzOTYzOWU3LCAweDhjZDg1MjUxKSwKLSAgICAgICAgIFRPQk4o
MHhkODk3NTMxNSwgMHg5YzdjNGM2YiksIFRPQk4oMHg2MDNhYTNjMCwgMHhkNzQwOWFmNyksCi0g
ICAgICAgICBUT0JOKDB4YjhkNTNkMGMsIDB4MDA3MTMyZmIpLCBUT0JOKDB4NjhkMTJhZjcsIDB4
YTY4NDkyMzgpLAotICAgICAgICAgVE9CTigweGJlMDYwN2U3LCAweGJmNWQ5Mjc5KSwgVE9CTigw
eDlhYTUwMDU1LCAweGFhZGE3NGNlKSwKLSAgICAgICAgIFRPQk4oMHhlODEwNzljYiwgMHhiYTdl
OGNjYiksIFRPQk4oMHg2MTBjNzFkMSwgMHhhNWY0ZmY1ZSksCi0gICAgICAgICBUT0JOKDB4OWUy
ZWUxYTcsIDB4NWFhMDcwOTMpLCBUT0JOKDB4Y2E4NDAwNGIsIDB4YTc1ZGE0N2MpLAotICAgICAg
ICAgVE9CTigweDA3NGQzOTUxLCAweDNkZTc1NDAxKSwgVE9CTigweGY5MzhmNzU2LCAweGJiMzEx
NTkyKSwKLSAgICAgICAgIFRPQk4oMHg5NjE5NzYxOCwgMHgwMGE0MzQyMSksIFRPQk4oMHgzOWEy
NTM2MiwgMHgwN2JjNzhjOCksCi0gICAgICAgICBUT0JOKDB4Mjc4ZjcxMGEsIDB4MGExNzEyNzYp
LCBUT0JOKDB4YjI4NDQ2ZWEsIDB4OGQxYThmMDgpLAotICAgICAgICAgVE9CTigweDE4NDc4MWJm
LCAweGUzYjZhNjYxKSwgVE9CTigweDc3NTFjYjFkLCAweGU2ZDI3OWY3KSwKLSAgICAgICAgIFRP
Qk4oMHhmOGZmOTVkNiwgMHhjNTllYjY2MiksIFRPQk4oMHgxODZkOTBiNywgMHg1OGQzZGVhNyks
Ci0gICAgICAgICBUT0JOKDB4MGU0YmI2YzEsIDB4ZGZiNGY3NTQpLCBUT0JOKDB4NWM1Y2Y1NmIs
IDB4MmIyODAxZGMpLAotICAgICAgICAgVE9CTigweGM1NjFlNDUyLCAweDFmNTQ1NjRkKSwgVE9C
TigweGI0ZmI4YzYwLCAweGYwZGQ3ZjEzKSwKLSAgICAgICAgIFRPQk4oMHhmODg0OTYzMCwgMHgz
M2ZmOThjNyksIFRPQk4oMHg5NjE5ZmZmYSwgMHhjZjE3NzY5YyksCi0gICAgICAgICBUT0JOKDB4
ZjgwOTBiZjYsIDB4MWJmZGQ4MGEpLCBUT0JOKDB4MTRkOWExNDksIDB4NDIyY2ZlNjMpLAotICAg
ICAgICAgVE9CTigweGIzNTRjMzYwLCAweDZmNmRmOWVhKSwgVE9CTigweGRiY2Y3NzBkLCAweDIx
OGYxN2VhKSwKLSAgICAgICAgIFRPQk4oMHgyMDdkYjdjOCwgMHg3OWViMzQ4MCksIFRPQk4oMHgy
MTNkYmRhOCwgMHg1NTliNmEyNiksCi0gICAgICAgICBUT0JOKDB4YWM0YzIwMGIsIDB4MjlmYzgx
YjMpLCBUT0JOKDB4ZWJjM2UwOWYsIDB4MTcxZDg3YzEpLAotICAgICAgICAgVE9CTigweDkxNzk5
NTMwLCAweDE0ODFhYTllKSwgVE9CTigweDA1MWI5MmUxLCAweDkyZTExNGZhKSwKLSAgICAgICAg
IFRPQk4oMHhkZjhmOTJlOSwgMHhlY2I1NTM3ZiksIFRPQk4oMHg0NGIxYjJjYywgMHgyOTBjNzQ4
MyksCi0gICAgICAgICBUT0JOKDB4YTcxMTQ1NWEsIDB4MmFkZWIwMTYpLCBUT0JOKDB4OTY0YjY4
NTYsIDB4ODFhMTBjMmMpLAotICAgICAgICAgVE9CTigweDRmMTU5ZDk5LCAweGNlYzAzNjIzKSwg
VE9CTigweDA1NTMyMjI1LCAweGVmMzI3MWVhKSwKLSAgICAgICAgIFRPQk4oMHhiMjMxYmVhMywg
MHhjNWVlNDg0OSksIFRPQk4oMHg1N2E1NGY1MCwgMHg3MDk0ZjEwMyksCi0gICAgICAgICBUT0JO
KDB4M2UyZDQyMWQsIDB4OTU5OGIzNTIpLCBUT0JOKDB4ZTg2NWE0OWMsIDB4Njc0MTJhYjQpLAot
ICAgICAgICAgVE9CTigweGQyOTk4YTI1LCAweDFjYzNhOTEyKSwgVE9CTigweDVkMDkyODA4LCAw
eDBjNzRkNjVkKSwKLSAgICAgICAgIFRPQk4oMHg3M2Y0NTkwOCwgMHg0MDg4NTY3YSksIFRPQk4o
MHhlYjZiMjgwZSwgMHgxZjIxNGE2MSksCi0gICAgICAgICBUT0JOKDB4OGM5YWRjMzQsIDB4Y2Fm
MGMxM2QpLCBUT0JOKDB4MzlkMTI5MzgsIDB4ZjU2MWZiODApLAotICAgICAgICAgVE9CTigweGIy
ZGMzYTVlLCAweGJjNmVkZmI0KSwgVE9CTigweDc0ODViMWIxLCAweGZlNGQyMTBlKSwKLSAgICAg
ICAgIFRPQk4oMHgwNjJlMDQwMCwgMHhlMTg2YWU3MiksIFRPQk4oMHg5MWUzMmQ1YywgMHg2ZWVi
M2I4OCksCi0gICAgICAgICBUT0JOKDB4NmRmNTc0ZDcsIDB4NGJlNTkyMjQpLCBUT0JOKDB4ZWJj
ODhjY2MsIDB4NzE2ZDU1ZjMpLAotICAgICAgICAgVE9CTigweDI2YzJlNmQwLCAweGNhZDZlZDMz
KSwgVE9CTigweGM2ZTIxZTdkLCAweDBkM2U4YjEwKSwKLSAgICAgICAgIFRPQk4oMHgyY2M1ODQw
ZSwgMHg1YmNjMzZiYiksIFRPQk4oMHg5MjkyNDQ1ZSwgMHg3ZGE3NGY2OSksCi0gICAgICAgICBU
T0JOKDB4OGJlOGQzMjEsIDB4NGU1MTkzYTgpLCBUT0JOKDB4M2VjMjM2MjksIDB4OGRmMDY0MTMp
LAotICAgICAgICAgVE9CTigweGM3ZTlhZTg1LCAweGIxMzRkZWZhKSwgVE9CTigweDYwNzNiMWQw
LCAweDFiYjJkNDc1KSwKLSAgICAgICAgIFRPQk4oMHhiOWFkNjE1ZSwgMHgyODYzYzAwZCksIFRP
Qk4oMHg5ZTI5NDkzZCwgMHg1MjVmNGFjNCksCi0gICAgICAgICBUT0JOKDB4YzMyYjFkZWEsIDB4
NGU5YWNmNGYpLCBUT0JOKDB4M2UxZjAxYzgsIDB4YTUwZGI4OGQpLAotICAgICAgICAgVE9CTigw
eGIwNWQ3MGVhLCAweDA0ZGE5MTZjKSwgVE9CTigweDcxNGIwZDBhLCAweGQ4NjU4MDNlKSwKLSAg
ICAgICAgIFRPQk4oMHg0YmQ0OTNmYywgMHg5OTIwY2I1ZSksIFRPQk4oMHg1YjQ0YjFmNywgMHg5
MmM3YTNhYyksCi0gICAgICAgICBUT0JOKDB4YTJhNzcyOTMsIDB4YmNlYzkyMzUpLCBUT0JOKDB4
NWVlMDZlODcsIDB4Y2QzNzg1NTMpLAotICAgICAgICAgVE9CTigweGNlZmY4MTczLCAweGRhNjIx
NjA3KSwgVE9CTigweDJiYjAzZTRjLCAweDk5ZjVkMjkwKSwKLSAgICAgICAgIFRPQk4oMHgyOTQ1
MTA2YSwgMHhhNmY3MzRhYyksIFRPQk4oMHhiNTA1NjYwNCwgMHhkMjVjNDczMiksCi0gICAgICAg
ICBUT0JOKDB4NTk0NTkyMGMsIDB4ZTA3OWFmZWUpLCBUT0JOKDB4Njg2ZTE3YTAsIDB4Njc4OTgz
MWYpLAotICAgICAgICAgVE9CTigweDU5NjZiZWU4LCAweGI3NGE1YWU1KSwgVE9CTigweDM4YTY3
M2EyLCAweDFlMjU4ZDQ2KSwKLSAgICAgICAgIFRPQk4oMHhiZDFjYzFmMiwgMHg4MzE0MWM5NSks
IFRPQk4oMHgzYjJlY2Y0ZiwgMHgwZTk2ZTQ4NiksCi0gICAgICAgICBUT0JOKDB4Y2QzYWE4OTYs
IDB4NzRlNWZjNzgpLCBUT0JOKDB4NDE1ZWMxMGMsIDB4MjQ4MmZhN2EpLAotICAgICAgICAgVE9C
TigweDE1MjM0NDE5LCAweDgwNTAzMzgwKSwgVE9CTigweDUxM2Q5MTdhLCAweGQzMTRiMzkyKSwK
LSAgICAgICAgIFRPQk4oMHhiMGI1MmY0ZSwgMHg2M2NhZWNhZSksIFRPQk4oMHgwN2JmMjJhZCwg
MHgyZGM3NzgwYiksCi0gICAgICAgICBUT0JOKDB4ZTc2MWU4YTEsIDB4ZTQzMDY4MzkpLCBUT0JO
KDB4MWIzYmU5NjIsIDB4NWRkN2ZlYWEpLAotICAgICAgICAgVE9CTigweDRmZTcyOGRlLCAweDc0
Yzc3OGYxKSwgVE9CTigweGYxZmEwYmRhLCAweDVlMDA3MGY2KSwKLSAgICAgICAgIFRPQk4oMHg4
NTIwNWEzMSwgMHg2ZWMzZjUxMCksIFRPQk4oMHgyYzdlNGExNCwgMHhkMjk4MDQ3NSksCi0gICAg
ICAgICBUT0JOKDB4ZGUzYzE5YzAsIDB4NmYzMGViZmQpLCBUT0JOKDB4ZGIxYzFmMzgsIDB4ZDRi
N2U2NDQpLAotICAgICAgICAgVE9CTigweGZlMjkxYTc1LCAweDVkY2UzNjRhKSwgVE9CTigweGI3
YjIyYTNjLCAweDA1OGY1YmUzKSwKLSAgICAgICAgIFRPQk4oMHgyY2QyYzMwMiwgMHgzN2ZlYTM4
YyksIFRPQk4oMHgyOTMwOTY3YSwgMHgyZTE3YmUxNyksCi0gICAgICAgICBUT0JOKDB4ODdmMDA5
ZGUsIDB4MGMwNjFjNjUpLCBUT0JOKDB4Y2IwMTRhYWMsIDB4ZWRjNmVkNDQpLAotICAgICAgICAg
VE9CTigweDQ5YmQxY2I0LCAweDNiYWZiMWViKSwgVE9CTigweDgxYmQ4YjVjLCAweDI4MmQzNjg4
KSwKLSAgICAgICAgIFRPQk4oMHgxY2RhYjg3ZSwgMHhmMDFhMTdhZiksIFRPQk4oMHgyMWYzN2Fj
NCwgMHhlNzEwMDYzYiksCi0gICAgICAgICBUT0JOKDB4NWE2YzU2NzYsIDB4NDJmYzgxOTMpLCBU
T0JOKDB4ZjQ3NTNlNzAsIDB4NTZhNjAxNWMpLAotICAgICAgICAgVE9CTigweDAyMGY3OTVlLCAw
eGExNWIwYTQ0KSwgVE9CTigweDhmMzdjOGQ3LCAweDg5NThhOTU4KSwKLSAgICAgICAgIFRPQk4o
MHg2M2I3ZTg5YiwgMHhhNGI2NzViNSksIFRPQk4oMHhiNGZiMGMwYywgMHgwZmMzMWFlYSksCi0g
ICAgICAgICBUT0JOKDB4ZWQ5NWU2MzksIDB4YTdmZjFmMmUpLCBUT0JOKDB4OTg4MGY1YTMsIDB4
NjE5NjE0ZmIpLAotICAgICAgICAgVE9CTigweGRlYjZmZjAyLCAweDk0NzE1MWFiKSwgVE9CTigw
eDViYzUxMThjLCAweGE4NjhkY2RiKSwKLSAgICAgICAgIFRPQk4oMHhkOGRhMjA1NSwgMHg0YzIw
Y2VhNSksIFRPQk4oMHhjYWMyNzc2ZSwgMHgxNGM0ZDY5YSksCi0gICAgICAgICBUT0JOKDB4Y2Nj
YjIyYzEsIDB4NjIyZDU5OWIpLCBUT0JOKDB4YTRkZGI2NTMsIDB4NjhhOWJiNTApLAotICAgICAg
ICAgVE9CTigweDJjNGZmMTUxLCAweDFiNDk0MWI0KSwgVE9CTigweGUxZmYxOWI0LCAweDZlZmJh
NTg4KSwKLSAgICAgICAgIFRPQk4oMHgzNTAzNDM2MywgMHhjNDgzNDVlMCksIFRPQk4oMHg0NTU0
MmUzZCwgMHgxZTI5ZGZjNCksCi0gICAgICAgICBUT0JOKDB4ZjE5N2NiOTEsIDB4MzQ5ZjdhZWQp
LCBUT0JOKDB4M2IyYjVhMDAsIDB4OGZjYTg0MjApLAotICAgICAgICAgVE9CTigweDdjMTc1ZWU4
LCAweDIzYWFmNmQ4KSwgVE9CTigweDU0ZGNmNDIxLCAweDM1YWYzMmI2KSwKLSAgICAgICAgIFRP
Qk4oMHgwYmExNDMwNywgMHgyN2Q2NTYxZSksIFRPQk4oMHg4NzlkNWVlNCwgMHhkMTc1YjFlMiks
Ci0gICAgICAgICBUT0JOKDB4YzdjNDM2NzMsIDB4OTk4MDdkYjUpLCBUT0JOKDB4NzdhNTQ0NTUs
IDB4OWNkNTViY2QpLAotICAgICAgICAgVE9CTigweGU2YzJmZjEzLCAweDAxMDVjMDcyKSwgVE9C
TigweDE4ZjdhOTlmLCAweDhkZGE3ZGE0KSwKLSAgICAgICAgIFRPQk4oMHg0YzMwMTgyMCwgMHgw
ZTJkMzVjMSksIFRPQk4oMHgwNmE1M2NhMCwgMHhkOWNjNmM4MiksCi0gICAgICAgICBUT0JOKDB4
YWEyMWNjMWUsIDB4ZjFhYTFkOWUpLCBUT0JOKDB4MzI0MTQzMzQsIDB4NGE3NWIxZTgpLAotICAg
ICAgICAgVE9CTigweDJhNmQxMzI4LCAweDBlYmU5ZmRjKSwgVE9CTigweDE2YmQxNzNmLCAweDk4
YTQ3NTVhKSwKLSAgICAgICAgIFRPQk4oMHhmYmI5YjI0NSwgMHgyMTMzZmZkOSksIFRPQk4oMHgz
OWE4YjJmMSwgMHg4MzBmMWEyMCksCi0gICAgICAgICBUT0JOKDB4NDg0YmM5N2QsIDB4ZDVhMWY1
MmEpLCBUT0JOKDB4ZDZhZWJmNTYsIDB4YTQwZWRkZjgpLAotICAgICAgICAgVE9CTigweDMyMjU3
YWNiLCAweDc2Y2NkYWM2KSwgVE9CTigweGFmNGQzNmVjLCAweDE1ODZmZjI3KSwKLSAgICAgICAg
IFRPQk4oMHg4ZWFhODg2MywgMHhmOGRlN2RkMSksIFRPQk4oMHgwMDQ1ZDVjZiwgMHg4ODY0N2Mx
Nil9LAotICAgICAgICB7VE9CTigweGE2ZjNkNTc0LCAweGMwMDU5NzlkKSwgVE9CTigweGMyMDcy
YjQyLCAweDZhNDBlMzUwKSwKLSAgICAgICAgIFRPQk4oMHhmY2E1YzE1NiwgMHg4ZGUyZWNmOSks
IFRPQk4oMHhhOGM4YmY1YiwgMHhhNTE1MzQ0ZSksCi0gICAgICAgICBUT0JOKDB4OTdhZWU1NTUs
IDB4MTE0ZGYxNGEpLCBUT0JOKDB4ZDQzNzRhNGQsIDB4ZmRjNWVjNmIpLAotICAgICAgICAgVE9C
TigweDc1NGNjMjhmLCAweDJjYTg1NDE4KSwgVE9CTigweDcxY2I5ZTI3LCAweGQzYzQxZjc4KSwK
LSAgICAgICAgIFRPQk4oMHg4OTEwNTA3OSwgMHgwMzYwNWMzOSksIFRPQk4oMHhmMDg0M2Q5ZSwg
MHhhMTQyYzk2YyksCi0gICAgICAgICBUT0JOKDB4ZjM3NDQ5MzQsIDB4MTY5MjM2ODQpLCBUT0JO
KDB4NzMyY2FhMmYsIDB4ZmEwYTI4OTMpLAotICAgICAgICAgVE9CTigweGIyZThjMjcwLCAweDYx
MTYwMTcwKSwgVE9CTigweGMzMjc4OGNjLCAweDQzN2ZiYWEzKSwKLSAgICAgICAgIFRPQk4oMHgz
OWNkODE4ZSwgMHhhNmVkYTNhYyksIFRPQk4oMHhlMmU5NDIzOSwgMHg5ZTJiMmUwNyksCi0gICAg
ICAgICBUT0JOKDB4Njk2N2QzOWIsIDB4MDI2MGU1MmEpLCBUT0JOKDB4ZDQyNTg1Y2MsIDB4OTA2
NTMzMjUpLAotICAgICAgICAgVE9CTigweDBkOWJkNjA1LCAweDIxY2E3OTU0KSwgVE9CTigweDRm
YTIwODc3LCAweDgxZWQ1N2IzKSwKLSAgICAgICAgIFRPQk4oMHg2MGMxZWZmOCwgMHhlMzRhMGJi
ZSksIFRPQk4oMHg1NmIwMDQwYywgMHg4NGY2ZWY2NCksCi0gICAgICAgICBUT0JOKDB4MjhiZTJi
MjQsIDB4YjFhZjg0ODMpLCBUT0JOKDB4YjIyNzgxNjMsIDB4ZjU1MzE2MTQpLAotICAgICAgICAg
VE9CTigweDhkZjI3NTQ1LCAweDU5MjJhYzFjKSwgVE9CTigweGE3YjNlZjVjLCAweGE1MmIzZjYz
KSwKLSAgICAgICAgIFRPQk4oMHg4ZTc3YjIxNCwgMHg3MWRlNTdjNCksIFRPQk4oMHgzMTY4MmMx
MCwgMHg4MzRjMDA4YiksCi0gICAgICAgICBUT0JOKDB4Yzc2ODI0ZjAsIDB4NGJkNTVkMzEpLCBU
T0JOKDB4YjZkMWMwODYsIDB4MTdiNjFjNzEpLAotICAgICAgICAgVE9CTigweDMxZGIwOTAzLCAw
eGMyYTUwODlkKSwgVE9CTigweDljMDkyMTcyLCAweDE4NGU1ZDNmKSwKLSAgICAgICAgIFRPQk4o
MHhkZDdjZWQ1YiwgMHhjMDBjYzYzOCksIFRPQk4oMHgxYTIwMTVlYiwgMHg2MTI3OGZjMiksCi0g
ICAgICAgICBUT0JOKDB4MmU4ZTUyODgsIDB4NmEzN2Y4ZDYpLCBUT0JOKDB4YzQ1Nzc4NmYsIDB4
ZTc5OTMzYWQpLAotICAgICAgICAgVE9CTigweGIzZmU0Y2NlLCAweDJjNTEyMTFhKSwgVE9CTigw
eGFkOWIxMGIyLCAweDI0YzIwNDk4KSwKLSAgICAgICAgIFRPQk4oMHg5MGQ4N2E0ZiwgMHhkMjhk
YjVlNSksIFRPQk4oMHg2OThjZDEwNSwgMHgzYWNhMmZjMyksCi0gICAgICAgICBUT0JOKDB4NGYx
MTJkMDcsIDB4ZTkxYjUzNmQpLCBUT0JOKDB4Y2ViOTgyZjIsIDB4OWViYTA5ZDYpLAotICAgICAg
ICAgVE9CTigweDNjMTU3YjJjLCAweDE5N2MzOTZmKSwgVE9CTigweGUyM2MyZDQxLCAweDdiNjZl
YjI0KSwKLSAgICAgICAgIFRPQk4oMHg0ODBjNTdkOSwgMHgzZjMzMGQzNyksIFRPQk4oMHhiM2E0
YzhhMSwgMHg3OTEwOGRlYiksCi0gICAgICAgICBUT0JOKDB4NzAyMzg4ZGUsIDB4Y2IxOTljZTUp
LCBUT0JOKDB4MGIwMTkyMTEsIDB4Yjk0NGE4ZDQpLAotICAgICAgICAgVE9CTigweDI0ZjJhNjky
LCAweDg0MGJiMzM2KSwgVE9CTigweDdjMzUzYmRjLCAweGE2NjlmYTdiKSwKLSAgICAgICAgIFRP
Qk4oMHhkYTIwZDZmYywgMHhkZWM5YzMwMCksIFRPQk4oMHg2MjVmYmUyZiwgMHhhMTNhNGYxNyks
Ci0gICAgICAgICBUT0JOKDB4YTJiMWI2MWEsIDB4ZGJjMTczMjgpLCBUT0JOKDB4MDA4OTY1YmYs
IDB4YTk1MTU2MjEpLAotICAgICAgICAgVE9CTigweDQ5NjkwOTM5LCAweGM2MjBmZjQ2KSwgVE9C
TigweDE4MmRkMjdkLCAweDg3MTdlOTFjKSwKLSAgICAgICAgIFRPQk4oMHg1YWNlNTAzNSwgMHhl
YTZjMzk5NyksIFRPQk4oMHg1NDI1OWFhYSwgMHhjMjYxMGJlZiksCi0gICAgICAgICBUT0JOKDB4
ZWYxOGJiM2YsIDB4M2M4MGRkMzkpLCBUT0JOKDB4NjkxMGI5NWIsIDB4NWZjM2ZhMzkpLAotICAg
ICAgICAgVE9CTigweGZjZTJmNTEwLCAweDQzZTA5YWVlKSwgVE9CTigweGNlZDU2YzlmLCAweGE3
Njc1NjY1KSwKLSAgICAgICAgIFRPQk4oMHgxMGUyNjVhYywgMHhkODcyZGI2MSksIFRPQk4oMHg2
OTgyODEyZSwgMHhhZTlmY2U2OSksCi0gICAgICAgICBUT0JOKDB4MjliZTExYzYsIDB4Y2U4MDA5
OTgpLCBUT0JOKDB4NzJiYjE3NTIsIDB4YjkwMzYwZDkpLAotICAgICAgICAgVE9CTigweDJjMTkz
MTk3LCAweDVhNGFkNTkwKSwgVE9CTigweDJiYTJmNTQ4LCAweDlmYzFkYmMwKSwKLSAgICAgICAg
IFRPQk4oMHg3ZmU0ZWViYiwgMHhlNDkwZWJlMCksIFRPQk4oMHgxMmEwYTRjZCwgMHg3ZmFlMTFj
MCksCi0gICAgICAgICBUT0JOKDB4NzE5N2NmODEsIDB4ZTkwM2JhMzcpLCBUT0JOKDB4Y2Y3ZDRh
YTgsIDB4ZGUxYzZkZDgpLAotICAgICAgICAgVE9CTigweDkyYWY2YmY0LCAweDNmZDU2ODRjKSwg
VE9CTigweDJiMjZlZWNmLCAweDgwMzYwYWExKSwKLSAgICAgICAgIFRPQk4oMHhiZDk2MGYzMCwg
MHgwMDU0NmE4MiksIFRPQk4oMHg0MDdiM2M0MywgMHhmNTlhZDhmZSksCi0gICAgICAgICBUT0JO
KDB4ODZjYWU1ZmUsIDB4MjQ5YzgyYmEpLCBUT0JOKDB4OWUwZmFlYzcsIDB4MjQ2Mzc0NGMpLAot
ICAgICAgICAgVE9CTigweDg3ZjU1MWU4LCAweDk0OTE2MjcyKSwgVE9CTigweDAzM2Y5MzQ0LCAw
eDZjZWIwNjE1KSwKLSAgICAgICAgIFRPQk4oMHgxZTVlYjBkMSwgMHg4YmU4MmU4NCksIFRPQk4o
MHg4OTk2N2YwZSwgMHg3YTU4MmZlZiksCi0gICAgICAgICBUT0JOKDB4YmNmNjg3ZDUsIDB4YTZl
OTIxZmEpLCBUT0JOKDB4ZGZlZTRjZjMsIDB4ZDM3YTA5YmEpLAotICAgICAgICAgVE9CTigweDk0
ZjA2OTY1LCAweGI0OTNjNDY1KSwgVE9CTigweDYzOGI5YTFjLCAweDc2MzVjMDMwKSwKLSAgICAg
ICAgIFRPQk4oMHg3NjY2Nzg2NCwgMHg2NmYwNWU5ZiksIFRPQk4oMHhjY2FmNjgwOCwgMHhjMDRk
YTcyNSksCi0gICAgICAgICBUT0JOKDB4Y2EyZWI2OTAsIDB4NzY4ZmNjZmMpLCBUT0JOKDB4ZjQw
MmQzN2QsIDB4YjgzNWIzNjIpLAotICAgICAgICAgVE9CTigweDBlZmFjMGQwLCAweGUyZmRmY2Nl
KSwgVE9CTigweGVmYzljZGVmLCAweGI2MzhkOTkwKSwKLSAgICAgICAgIFRPQk4oMHgyYWYxMmI3
MiwgMHhkMTY2OWE4YiksIFRPQk4oMHgzM2M1MzZiYywgMHg1Nzc0Y2NiZCksCi0gICAgICAgICBU
T0JOKDB4MzBiMjE5MDksIDB4ZmIzNDg3MGUpLCBUT0JOKDB4YzM4ZmEyZjcsIDB4N2RmMjVhY2Ep
LAotICAgICAgICAgVE9CTigweDc0YzVmMDJiLCAweGJmODFmM2Y1KSwgVE9CTigweDA1MjVhNWFl
LCAweGFmN2U0NTgxKSwKLSAgICAgICAgIFRPQk4oMHg4OGQyYWFiYSwgMHg0MzNjNTRhZSksIFRP
Qk4oMHhlZDk3NzVkYiwgMHg4MDZhNTZjNSksCi0gICAgICAgICBUT0JOKDB4ZDMyMDczOGEsIDB4
YzBlZGIzN2QpLCBUT0JOKDB4MjVmZGI2ZWUsIDB4NjZjYzFmNTEpLAotICAgICAgICAgVE9CTigw
eGFjNjYxZDE3LCAweDEwNjAwZDc2KSwgVE9CTigweDkzMWVjMWYzLCAweGJkZDFlZDc2KSwKLSAg
ICAgICAgIFRPQk4oMHg2NWMxMWQ2MiwgMHgxOWVlNDNmMSksIFRPQk4oMHg1Y2Q1N2MzZSwgMHg2
MDgyOWQ5NyksCi0gICAgICAgICBUT0JOKDB4ZDI2YzkxYTMsIDB4OTg0YmU2ZTgpLCBUT0JOKDB4
ZjA4ZDkzMDksIDB4OGIwYzUzYmQpLAotICAgICAgICAgVE9CTigweDk0YmM5ZTViLCAweGMwMTZl
NGVhKSwgVE9CTigweGQzOTE2ODM5LCAweDExZDQzZDJiKSwKLSAgICAgICAgIFRPQk4oMHg4ODZj
NWFkNywgMHg3MzcwMTE1NSksIFRPQk4oMHhlMDM3NzYyNiwgMHgyMGIwMDcxNSksCi0gICAgICAg
ICBUT0JOKDB4N2YwMWM5ZWMsIDB4YWE4MGJhNTkpLCBUT0JOKDB4MzA4MzQxMWEsIDB4Njg1Mzhl
NTEpLAotICAgICAgICAgVE9CTigweDk3MDM3MGYxLCAweGU4ODEyOGFmKSwgVE9CTigweDYyNWNj
M2RiLCAweDkxZGVjMTRiKSwKLSAgICAgICAgIFRPQk4oMHhmZWY5NjY2YywgMHgwMWFjMzEwNyks
IFRPQk4oMHhiMmE4ZDU3NywgMHhkNTA1N2FjMyksCi0gICAgICAgICBUT0JOKDB4YjBmMjYyOTks
IDB4OTJiZTVkZjcpLCBUT0JOKDB4ZjU3OWM4ZTUsIDB4MDAzNTM5MjQpLAotICAgICAgICAgVE9C
TigweGI4ZmEzZDkzLCAweDEzNDFlZDdhKSwgVE9CTigweDQyMjMyNzJjLCAweGE3YjU5ZDQ5KSwK
LSAgICAgICAgIFRPQk4oMHgzZGNiMTk0NywgMHg4M2I4YzRhNCksIFRPQk4oMHg0ZTQxM2MwMSwg
MHhlZDEzMDJlNCksCi0gICAgICAgICBUT0JOKDB4NmQ5OTkxMjcsIDB4ZTE3ZTQ0Y2UpLCBUT0JO
KDB4ZWU4NmJmNzUsIDB4MzNiM2FkZmIpLAotICAgICAgICAgVE9CTigweGY2OTAyZmU2LCAweDI1
YWE5NmNhKSwgVE9CTigweGI3MzU0MGU0LCAweGU1YWFlNDdkKSwKLSAgICAgICAgIFRPQk4oMHgz
MjgwMWQ3YiwgMHgxYjRhMTU4YyksIFRPQk4oMHhlNTcxYzk5ZSwgMHgyN2UyYTM2OSksCi0gICAg
ICAgICBUT0JOKDB4NDBjYjc2YzAsIDB4MTBkOWYxOTcpLCBUT0JOKDB4YzMwOGMyODksIDB4MzE2
N2MwYWUpLAotICAgICAgICAgVE9CTigweGE2ZWY5ZGQzLCAweGViNzk1OGYyKSwgVE9CTigweGE3
MjI2ZGZjLCAweDMwMDg3OWIxKSwKLSAgICAgICAgIFRPQk4oMHg2Y2QwYjM2MiwgMHg3ZWRmMDYz
NiksIFRPQk4oMHg0ZWZiY2U2YywgMHg3YmMzN2VlZCksCi0gICAgICAgICBUT0JOKDB4NzVmOTJh
MDUsIDB4OGQ2OTkwMjEpLCBUT0JOKDB4NTg2ZDRjNzksIDB4NzcyNTY2ZTMpLAotICAgICAgICAg
VE9CTigweDM3OGNhNWYxLCAweDc2MWFkMjNhKSwgVE9CTigweDY1MGQ4NmZjLCAweDE0NjVhOGFj
KSwKLSAgICAgICAgIFRPQk4oMHg3YTRlZDQ1NywgMHg4NDJiYTI1MSksIFRPQk4oMHg2YjY1ZTNl
NiwgMHg0MjIzNDkzMyksCi0gICAgICAgICBUT0JOKDB4YWYxNTQzYjcsIDB4MzFhYWQ2NTcpLCBU
T0JOKDB4YTRjZWZlOTgsIDB4Y2JmZWMzNjkpLAotICAgICAgICAgVE9CTigweGI1ODdkYTkwLCAw
eDlmNDdiZWZiKSwgVE9CTigweDY1NjJlOWZiLCAweDQxMzEyZDEzKSwKLSAgICAgICAgIFRPQk4o
MHhhNjkxZWE1OSwgMHhlZmYxY2VmZSksIFRPQk4oMHhjYzMwNDc3YSwgMHgwNWZjNGNmNiksCi0g
ICAgICAgICBUT0JOKDB4YTE2MzI0NjEsIDB4MGIwZmZkM2QpLCBUT0JOKDB4YTFmMTZmM2IsIDB4
NWIzNTU5NTYpLAotICAgICAgICAgVE9CTigweDViMTQ4ZDUzLCAweDQyMjRlYzI0KSwgVE9CTigw
eGRjODM0ZTdiLCAweGY5NzcwMTJhKSwKLSAgICAgICAgIFRPQk4oMHg3YmZjNWU3NSwgMHhiMmM2
OWRiYyksIFRPQk4oMHgzYWE3N2EyOSwgMHgwM2MzZGE2YyksCi0gICAgICAgICBUT0JOKDB4ZGUw
ZGYwM2MsIDB4Y2E5MTAyNzEpLCBUT0JOKDB4Y2JkNWNhNGEsIDB4NzgwNmRjNTUpLAotICAgICAg
ICAgVE9CTigweGUxY2E1ODA3LCAweDZkYjQ3NmNiKSwgVE9CTigweGZkZTE1ZDYyLCAweDVmMzdh
MzFlKSwKLSAgICAgICAgIFRPQk4oMHhmNDlhZjUyMCwgMHhmNDFhZjQxNiksIFRPQk4oMHg5NmM1
YzViMSwgMHg3ZDM0MmRiNSksCi0gICAgICAgICBUT0JOKDB4MTU1YzQzYjcsIDB4ZWI0Y2ViOWIp
LCBUT0JOKDB4MmU5OTMwMTAsIDB4NGU3NzM3MWEpLAotICAgICAgICAgVE9CTigweDFkMjk4N2Rh
LCAweDY3NWQ0M2FmKSwgVE9CTigweGVmMmJjMWMwLCAweDg1OTlmZDcyKSwKLSAgICAgICAgIFRP
Qk4oMHg5Njg5NGI3YiwgMHg5MzQyZjZiMiksIFRPQk4oMHgyMDFlYWRmMiwgMHg3YzhlNzFmMCks
Ci0gICAgICAgICBUT0JOKDB4ZjM0NzlkOWYsIDB4NGExZjNlZmMpLCBUT0JOKDB4ZTBmOGE3NDIs
IDB4NzAyYTk3MDQpLAotICAgICAgICAgVE9CTigweGVhZmQ0NGI2LCAweGIzZWJhNDBjKSwgVE9C
TigweGY5NzM5ZjI5LCAweGMxYzFlMGQwKSwKLSAgICAgICAgIFRPQk4oMHgwMDkxNDcxYSwgMHg2
MTlkNTA1ZSksIFRPQk4oMHhjMTVmOWM5NiwgMHg5ZDdjMjYzZSksCi0gICAgICAgICBUT0JOKDB4
NWJlNDcyODUsIDB4ODNhZmJlMzMpLCBUT0JOKDB4YTNiNmQ2YWYsIDB4MDRmMWUwOTIpLAotICAg
ICAgICAgVE9CTigweGU3NjUyNmI5LCAweDc1MWE5ZDExKSwgVE9CTigweDJlYzViMjZkLCAweDlh
NGFlNGQyKSwKLSAgICAgICAgIFRPQk4oMHhlYjY2ZjRkOSwgMHgwMmY2ZmI4ZCksIFRPQk4oMHg0
MDYzYzU2MSwgMHg5NjkxMjE2NCksCi0gICAgICAgICBUT0JOKDB4ZWI3MDUwYzEsIDB4ODBlZjMw
MDApLCBUT0JOKDB4Mjg4ZDFjMzMsIDB4ZWFhNWIzZjApLAotICAgICAgICAgVE9CTigweGU4N2M2
OGQ2LCAweDA3ODA2ZmQ4KSwgVE9CTigweGIyZjdmOWQ1LCAweDRiYmJmNTBmKSwKLSAgICAgICAg
IFRPQk4oMHgyNTk3MmYzYSwgMHhhYzhkNjYyNyksIFRPQk4oMHhmODU0Nzc3NCwgMHgxMGU4YzEz
YiksCi0gICAgICAgICBUT0JOKDB4Y2M1MGVmNmMsIDB4ODcyYjRhNjApLCBUT0JOKDB4YWIyYTM0
YTQsIDB4NDYxMzUyMWIpLAotICAgICAgICAgVE9CTigweDM5YzVjMTkwLCAweDk4M2UxNWQxKSwg
VE9CTigweDYxZGRlNWRmLCAweDU5OTA1NTEyKSwKLSAgICAgICAgIFRPQk4oMHhlNDE3ZjYyMSwg
MHg5ZjIyNzVmMyksIFRPQk4oMHgwNzUwYzhiNiwgMHg0NTFkODk0YiksCi0gICAgICAgICBUT0JO
KDB4NzViMDRhYjksIDB4NzhiMGJkYWEpLCBUT0JOKDB4M2JmZDlmZDQsIDB4NDU4NTg5YmQpLAot
ICAgICAgICAgVE9CTigweGYxMDEzZTMwLCAweGVlOTEyMGI2KSwgVE9CTigweDJiNTFhZjkzLCAw
eDIzYTQ3NDNlKSwKLSAgICAgICAgIFRPQk4oMHhlYTk2ZmZhZSwgMHg0OGQxNGQ5ZSksIFRPQk4o
MHg3MWRjMGRiZSwgMHg2OThhMWQzMiksCi0gICAgICAgICBUT0JOKDB4OTE0OTYyZDIsIDB4MDE4
MGNjYTQpLCBUT0JOKDB4MWFlNjA2NzcsIDB4YzM1Njg5NjMpLAotICAgICAgICAgVE9CTigweDhj
ZjIyN2IxLCAweDQzN2JjNDQ0KSwgVE9CTigweGM2NTBjODNiLCAweGM5OTYyYzdhKSwKLSAgICAg
ICAgIFRPQk4oMHgyM2MyYzdkZCwgMHhmZTdjY2ZjNCksIFRPQk4oMHhmOTI1Yzg5ZCwgMHgxYjky
OWQ0OCksCi0gICAgICAgICBUT0JOKDB4NDQ2MGY3NGIsIDB4MDY3ODNjMzMpLCBUT0JOKDB4YWMy
YzhkNDksIDB4YTU5MDQ3NWEpLAotICAgICAgICAgVE9CTigweGZiNDBiNDA3LCAweGI4MDdiYmEw
KSwgVE9CTigweDlkMWUzNjJkLCAweDY5ZmY4ZjNhKSwKLSAgICAgICAgIFRPQk4oMHhhMzNlOTY4
MSwgMHhjYmVmNjRhNCksIFRPQk4oMHg2N2VjZTVmYSwgMHgzMzJmYjRiMiksCi0gICAgICAgICBU
T0JOKDB4NjkwMGE5OWIsIDB4NzM5ZjEwZTMpLCBUT0JOKDB4YzMzNDFjYTksIDB4ZmY1MjU5MjUp
LAotICAgICAgICAgVE9CTigweGVlMThhNjI2LCAweGE5ZTJkMDQxKSwgVE9CTigweGE1YTgzNjg1
LCAweDI5NTgwZGRkKSwKLSAgICAgICAgIFRPQk4oMHhmMzQ3MGM4MSwgMHg5ZDdkZTNjZCksIFRP
Qk4oMHhlZGYwMjU4NiwgMHgyMDYyY2Y5YyksCi0gICAgICAgICBUT0JOKDB4ZjQzNTIyZmEsIDB4
YzAxMGVkYjApLCBUT0JOKDB4MzAzMTQxMzUsIDB4MTNhNGIxYWUpLAotICAgICAgICAgVE9CTigw
eGM3OTJlMDJhLCAweGRiMjJiOTRiKSwgVE9CTigweDk5M2Q4YWU5LCAweGExZWFhNDViKSwKLSAg
ICAgICAgIFRPQk4oMHg4YWFkNmNkMywgMHhjZDFlMWM2MyksIFRPQk4oMHg4OTUyOWNhNywgMHhj
NWNlNjg4YSksCi0gICAgICAgICBUT0JOKDB4MmNjZWUzYWEsIDB4ZTU3MmEyNTMpLCBUT0JOKDB4
ZTAyYjY0MzgsIDB4MDJhMjFlZmIpLAotICAgICAgICAgVE9CTigweGE3MDkxYjZlLCAweGM5NDMw
MzU4KSwgVE9CTigweDA2ZDFiMWZhLCAweDlkN2RiNTA0KSwKLSAgICAgICAgIFRPQk4oMHg1ODg0
NmQzMiwgMHhjNDc0NDczMyksIFRPQk4oMHg0MDUxN2M3MSwgMHgzNzlmOWUzNCksCi0gICAgICAg
ICBUT0JOKDB4MmY2NTY1NWYsIDB4MTMwZWY2Y2EpLCBUT0JOKDB4NTI2ZTQ0ODgsIDB4ZjFmMzUw
M2YpLAotICAgICAgICAgVE9CTigweDg0NjdiZDE3LCAweDdlZTRhOTc2KSwgVE9CTigweDFkOWRj
OTEzLCAweDkyMTM2M2QxKSwKLSAgICAgICAgIFRPQk4oMHhkOGQyNGMzMywgMHhiMDY5ZTA0MSks
IFRPQk4oMHg1ZWI1ZGEwYSwgMHgyY2RmN2Y1MSksCi0gICAgICAgICBUT0JOKDB4MWMwZjNjYjEs
IDB4MTk3Yjk5NGYpLCBUT0JOKDB4M2M5NWE2YzUsIDB4Mjg0M2VhZTkpLAotICAgICAgICAgVE9C
TigweDc3NjZmZmM5LCAweGE2MDk3ZWE1KSwgVE9CTigweDdiZWE0MDkzLCAweGQ3MjNiODY3KSwK
LSAgICAgICAgIFRPQk4oMHhiNDhlMWY3MywgMHg0ZGIzNzhmOSksIFRPQk4oMHg3MDAyNWIwMCwg
MHhlMzdiNzdhYyksCi0gICAgICAgICBUT0JOKDB4OTQzZGM4ZTcsIDB4YWYyNGFkNDYpLCBUT0JO
KDB4Yjk4YTE1YWMsIDB4MTZkMDBhODUpLAotICAgICAgICAgVE9CTigweDNhZGMzOGJhLCAweDI3
NDNiMDA0KSwgVE9CTigweGIxYzdmNGY3LCAweDMzNDQxNWVlKSwKLSAgICAgICAgIFRPQk4oMHhl
YTQzZGY4ZiwgMHgxZTYyZDA1YSksIFRPQk4oMHgzMjYxODkwNSwgMHg5ZDc2YTNiNiksCi0gICAg
ICAgICBUT0JOKDB4MmZiZDBiYjUsIDB4YTIzYTBmNDYpLCBUT0JOKDB4NWJjOTcxZGIsIDB4NmEw
MTkxOGMpLAotICAgICAgICAgVE9CTigweDc4MDFkOTRhLCAweGI0NzQzZjk0KSwgVE9CTigweGI5
NGRmNjVlLCAweDY3NmFlMjJiKSwKLSAgICAgICAgIFRPQk4oMHhhYWZjYmZhYiwgMHhhZjk1ODk0
YyksIFRPQk4oMHg3YjliZGMwNywgMHgyNzZiMjI0MSksCi0gICAgICAgICBUT0JOKDB4ZWFmOTgz
NjIsIDB4NWJkZGE0OGIpLCBUT0JOKDB4NTk3N2ZhZjIsIDB4YTNmY2I0ZGYpLAotICAgICAgICAg
VE9CTigweGJlZDA0MmVmLCAweDA1MmM0YjViKSwgVE9CTigweDlmZTg3ZjcxLCAweDA2NzU5MWYw
KSwKLSAgICAgICAgIFRPQk4oMHhjODljNzNjYSwgMHgyMmYyNGVjNyksIFRPQk4oMHg3ZDM3ZmE5
ZSwgMHhlNjRhOWYxYiksCi0gICAgICAgICBUT0JOKDB4MjcxMDg0MWEsIDB4MTU1NjI2MjcpLCBU
T0JOKDB4MmMwMWE2MTMsIDB4YzI0M2IwMzQpLAotICAgICAgICAgVE9CTigweDFkMTM1YzU2LCAw
eDJiYzY4NjA5KSwgVE9CTigweGMyY2ExNzE1LCAweDhiMDNmMWY2KSwKLSAgICAgICAgIFRPQk4o
MHhjOTk2NmMyZCwgMHgzZWI4MWQ4MiksIFRPQk4oMHhjMDJhYmY0YSwgMHg4ZjZkZjEzZSksCi0g
ICAgICAgICBUT0JOKDB4NzdiMzRiZDcsIDB4OGY3MmI0M2IpLCBUT0JOKDB4YWZmNjIxOGYsIDB4
MzYwYzgyYjApLAotICAgICAgICAgVE9CTigweDBhYTU3MjZjLCAweDhkNTViOWQyKSwgVE9CTigw
eGRjMGFkYmU5LCAweDk5ZTliZmZiKSwKLSAgICAgICAgIFRPQk4oMHg5MDk3NTQ5YywgMHhlZmI5
ZTcyYSksIFRPQk4oMHgxNjc1NTcxMiwgMHg5ZGZiMzExMSksCi0gICAgICAgICBUT0JOKDB4ZGQ4
YmY5ODQsIDB4ZjI2ODQ3ZjkpLCBUT0JOKDB4YmNiOGUzODcsIDB4ZGZiMzBjYjcpLAotICAgICAg
ICAgVE9CTigweGMxZmQzMmE3LCAweDUxNzFlZjljKSwgVE9CTigweDk3N2YzZmM3LCAweDM4OWIz
NjNmKSwKLSAgICAgICAgIFRPQk4oMHgxMTZlYWYyYiwgMHhmNGJhYmRhMCksIFRPQk4oMHhmZWFi
NjhiZCwgMHhmNzExM2M4ZSksCi0gICAgICAgICBUT0JOKDB4ZDFlM2YwNjQsIDB4YjdkZWY1MjYp
LCBUT0JOKDB4MWFjMzA4ODUsIDB4ZTBiM2ZhMDIpLAotICAgICAgICAgVE9CTigweDFjNWE2ZTdi
LCAweDQwMTQyZDlkKSwgVE9CTigweDgzOWI1NjAzLCAweDMwOTIxYzBiKSwKLSAgICAgICAgIFRP
Qk4oMHg0OGYzMDFmYSwgMHgzNmExMTZhMyksIFRPQk4oMHgzODBlMTEwNywgMHhjZmQ5ZWU2ZCks
Ci0gICAgICAgICBUT0JOKDB4Nzk0NWVhZDgsIDB4NTg4NTRiZTEpLCBUT0JOKDB4NDExMWMxMmUs
IDB4Y2JkNGQ0OWQpLAotICAgICAgICAgVE9CTigweGVjZTNiMWVjLCAweDNhMjljMmVmKSwgVE9C
TigweDYzNTZkNDA0LCAweDhkMzYxNmY1KSwKLSAgICAgICAgIFRPQk4oMHg5ZjBkNmE4ZiwgMHg1
OTRkMzIwZSksIFRPQk4oMHgwOTg5MzE2ZCwgMHhmNjUxY2NkMiksCi0gICAgICAgICBUT0JOKDB4
NmMzMjExN2EsIDB4MGY4ZmRkZTQpLCBUT0JOKDB4OWFiZTVjYzUsIDB4YTI2YTliYmMpLAotICAg
ICAgICAgVE9CTigweGNmZjU2MGZiLCAweDk3MjNmNjcxKSwgVE9CTigweDIxYjJhMTJkLCAweDdm
M2Q1OTNjKSwKLSAgICAgICAgIFRPQk4oMHhlNGNiMThkYSwgMHgyNGJhMDY5NiksIFRPQk4oMHgx
ODZlMjIyMCwgMHhjMzU0MzM4NCksCi0gICAgICAgICBUT0JOKDB4NzIyZjY0ZTAsIDB4ODgzMTJj
MjkpLCBUT0JOKDB4OTQyODJhOTksIDB4MTdkYzc3NTIpLAotICAgICAgICAgVE9CTigweDYyNDY3
YmJmLCAweDVhODVlZTg5KSwgVE9CTigweGY0MzVjNjUwLCAweGYxMDA3NmEwKSwKLSAgICAgICAg
IFRPQk4oMHhjOWZmMTUzOSwgMHg0M2IzYTUwYiksIFRPQk4oMHg3MTMyMTMwYywgMHgxYTUzZWZi
YyksCi0gICAgICAgICBUT0JOKDB4MzFiZmUwNjMsIDB4ZjdiMGM1YjcpLCBUT0JOKDB4YjAxNzlh
N2QsIDB4NGVhOTk0Y2MpLAotICAgICAgICAgVE9CTigweDEyZDA2NGIzLCAweGM4NWY0NTViKSwg
VE9CTigweDQ3MjU5MzI4LCAweDhmNmUwMDYyKSwKLSAgICAgICAgIFRPQk4oMHhmNjRlNTkwYiwg
MHhiODc1ZDZkOSksIFRPQk4oMHgyMmRkNjIyNSwgMHhhZDkyYmNjNyksCi0gICAgICAgICBUT0JO
KDB4YjY1ODAzOGUsIDB4YjljM2JkNmQpLCBUT0JOKDB4MDBjZGIwZDYsIDB4ZmJiYTI3YzgpLAot
ICAgICAgICAgVE9CTigweDBjNjgxMzM3LCAweDEwNjJjNDVkKSwgVE9CTigweGQ4NTE1YjhjLCAw
eDJkMzM0MDdkKSwKLSAgICAgICAgIFRPQk4oMHhjYjhmNjk5ZSwgMHg4Y2JiNWVjZiksIFRPQk4o
MHg4YzQzNDdmOCwgMHhjNjA4ZDdkOCksCi0gICAgICAgICBUT0JOKDB4MmMxMTg1MGEsIDB4YmIz
ZTAwZGIpLCBUT0JOKDB4MjBhOGRhZmQsIDB4ZWNiNDlkMTkpLAotICAgICAgICAgVE9CTigweGJk
NzgxNDgwLCAweDQ1ZWUyZjQwKSwgVE9CTigweDc1ZTM1NGFmLCAweDQxNmI2MGNmKSwKLSAgICAg
ICAgIFRPQk4oMHhkZTBiNThhMSwgMHg4ZDQ5YThjNCksIFRPQk4oMHhlNDBlOTRlMiwgMHhmYTM1
OTUzNiksCi0gICAgICAgICBUT0JOKDB4YmQ0ZmE1OWYsIDB4NjJhY2NkNzYpLCBUT0JOKDB4MDVj
ZjQ2NmEsIDB4OGM3NjI4MzcpLAotICAgICAgICAgVE9CTigweGI1YWJkYTk5LCAweDQ0OGMyNzdi
KSwgVE9CTigweDVhOWUwMWJmLCAweDQ4YjEzNzQwKSwKLSAgICAgICAgIFRPQk4oMHg5ZDQ1Nzc5
OCwgMHgzMjZhYWQ4ZCksIFRPQk4oMHhiZGVmNDk1NCwgMHhjMzk2ZjdlNyksCi0gICAgICAgICBU
T0JOKDB4NmZiMjc0YTIsIDB4YzI1M2UyOTIpLCBUT0JOKDB4MjgwMGJmMGEsIDB4MWNmZTUzZTcp
LAotICAgICAgICAgVE9CTigweDIyNDI2ZDMxLCAweDQ0NDM4ZmQ0KSwgVE9CTigweGVmMjMzOTIz
LCAweDVlMjU5ZjlhKSwKLSAgICAgICAgIFRPQk4oMHg0MTg4NTAzYywgMHgwM2Y2NjI2NCksIFRP
Qk4oMHg5ZTVlN2YxMywgMHg3ZjlmZGZhYiksCi0gICAgICAgICBUT0JOKDB4NTY1ZWI3NmMsIDB4
NWZjYzFhYmEpLCBUT0JOKDB4ZWE2MzI1NDgsIDB4NTliNWJmZjgpLAotICAgICAgICAgVE9CTigw
eDU1ODdjMDg3LCAweGFhYjZkM2ZhKSwgVE9CTigweDkyYjYzOWVhLCAweDZjZTM5YzFiKSwKLSAg
ICAgICAgIFRPQk4oMHgwNzA2ZTc4MiwgMHg5NTNiMTM1YyksIFRPQk4oMHg3MzA4OTEyZSwgMHg0
MjUyNjhlZiksCi0gICAgICAgICBUT0JOKDB4NTk5ZTkyYzcsIDB4MDkwZTc0NjkpLCBUT0JOKDB4
ODNiOTBmNTIsIDB4OWJjMzVlNzUpLAotICAgICAgICAgVE9CTigweDQ3NTBiM2QwLCAweDI0NDk3
NWIzKSwgVE9CTigweGYzYTQ0MzU4LCAweDExOTY1ZDcyKSwKLSAgICAgICAgIFRPQk4oMHgxNzlj
Njc3NCwgMHg5YzhkYzc1MSksIFRPQk4oMHhmZjE4Y2RmZSwgMHhkMjNkOWZmMCksCi0gICAgICAg
ICBUT0JOKDB4YzQwMTM4MzMsIDB4MjAyOGUyNDcpLCBUT0JOKDB4OTZlMjgwZTIsIDB4ZjNiZmJj
NzkpLAotICAgICAgICAgVE9CTigweGY2MDQxN2JkLCAweGQwODgwYTg0KSwgVE9CTigweDI2M2M5
ZjNkLCAweDJhNTY4MTUxKSwKLSAgICAgICAgIFRPQk4oMHgzNmJlMTViMywgMHgyZDJjZTgxMSks
IFRPQk4oMHg4NDZkYzBjMiwgMHhmODI5MWQyMSksCi0gICAgICAgICBUT0JOKDB4NWNmYTBlY2Is
IDB4Nzg5ZmNmZGIpLCBUT0JOKDB4NDVhMGJlZWQsIDB4ZDc1MzViOWEpLAotICAgICAgICAgVE9C
TigweGVjOGU5ZjA3LCAweDk2ZDY5YWYxKSwgVE9CTigweDMxYTdjNWI4LCAweDU5OWFiNmRjKSwK
LSAgICAgICAgIFRPQk4oMHhkMzZkNDVlZiwgMHhmOWUyZTA5ZiksIFRPQk4oMHgzY2Y0OWVmMSwg
MHhkY2VlOTU0YiksCi0gICAgICAgICBUT0JOKDB4NmJlMzRjZjMsIDB4MDg2Y2ZmOWIpLCBUT0JO
KDB4ODhkYmQ0OTEsIDB4MzlhMzM2MGYpLAotICAgICAgICAgVE9CTigweDFlOTZiOGNjLCAweDBk
YmZiZDFkKSwgVE9CTigweGMxZTVmN2JmLCAweGNiN2UyNTUyKSwKLSAgICAgICAgIFRPQk4oMHgw
NTQ3YjIxNCwgMHgyODgxOWQ5OCksIFRPQk4oMHhjNzcwZGQ5YywgMHg3YWVhOWRjYiksCi0gICAg
ICAgICBUT0JOKDB4YWVmMGQ0YzcsIDB4MDQxZDY4YzgpLCBUT0JOKDB4Y2MyYjk4MTgsIDB4MTNj
YjliYTgpLAotICAgICAgICAgVE9CTigweDdmYzdiYzc2LCAweGZlODZjNjA3KSwgVE9CTigweDZi
N2I5MzM3LCAweDUwMmE5YTk1KSwKLSAgICAgICAgIFRPQk4oMHgxOTQ4ZGMyNywgMHhkMTRkYWI2
MyksIFRPQk4oMHgyNDlkZDE5OCwgMHhkYWUwNDdiZSksCi0gICAgICAgICBUT0JOKDB4ZTgzNTY1
ODQsIDB4YTk4MWEyMDIpLCBUT0JOKDB4MzUzMWRkMTgsIDB4M2E4OTMzODcpLAotICAgICAgICAg
VE9CTigweDFiZTExZjkwLCAweGM4NWM3MjA5KSwgVE9CTigweDkzZDJmZTFlLCAweGUyYTUyYjVh
KSwKLSAgICAgICAgIFRPQk4oMHg4MjI1YmZlMiwgMHhlYzZkNmI5NyksIFRPQk4oMHg5Y2Y2ZDZm
NCwgMHhiZDBhYTVkZSksCi0gICAgICAgICBUT0JOKDB4OTExNDU5Y2IsIDB4NTQ3NzlmNWYpLCBU
T0JOKDB4NTY0OWNkZGIsIDB4ODZhZWIxZjMpLAotICAgICAgICAgVE9CTigweDMyMTMzNTc5LCAw
eDNmMjZjZTVhKSwgVE9CTigweGMyODlhMTAyLCAweDU1MGY0MzFlKSwKLSAgICAgICAgIFRPQk4o
MHg1NTlkY2ZkYSwgMHg3M2I4NGM2ZiksIFRPQk4oMHg4NDk3MzgxOSwgMHhlZTNhYzRkNyksCi0g
ICAgICAgICBUT0JOKDB4YjUxZTU1ZTYsIDB4ZjI2MDZhODIpLCBUT0JOKDB4ZTI1ZjcwNjEsIDB4
OTBmMmZiNTcpLAotICAgICAgICAgVE9CTigweGFjZWY2YzJhLCAweGIxYTRlMzdjKSwgVE9CTigw
eDg2NGUzNTlkLCAweDVkY2YyNzA2KSwKLSAgICAgICAgIFRPQk4oMHg0NzllNmIxOCwgMHg3Y2U1
NzMxNiksIFRPQk4oMHgyY2FiMjUwMCwgMHgzYTk2YjIzZCksCi0gICAgICAgICBUT0JOKDB4ZWQ0
ODk4NjIsIDB4OGVmMTZkZjcpLCBUT0JOKDB4MjA1NjUzOGMsIDB4ZWYzNzU4YjUpLAotICAgICAg
ICAgVE9CTigweGE3ZGY4NjVlLCAweGYxNWQzMTAxKSwgVE9CTigweDgwYzU1MzNhLCAweDYxYjU1
M2Q3KSwKLSAgICAgICAgIFRPQk4oMHgzNjZlMTk5NywgMHg0ZWQxNDI5NCksIFRPQk4oMHg2NjIw
NzQxZiwgMHhiM2MwYmNkNiksCi0gICAgICAgICBUT0JOKDB4MjFkMWQ5YzQsIDB4ZWRjNDU0MTgp
LCBUT0JOKDB4MDA1Yjg1OWUsIDB4YzFjYzRhOWQpLAotICAgICAgICAgVE9CTigweGRmMDFmNjMw
LCAweGExYzQ2MmYwKSwgVE9CTigweDE1ZDA2Y2YzLCAweGYyNjgyMGM3KSwKLSAgICAgICAgIFRP
Qk4oMHg5ZjdmMjRlZSwgMHgzNDg0YmU0NyksIFRPQk4oMHgyZmYzM2U5NiwgMHg0YTBjOTAyZiks
Ci0gICAgICAgICBUT0JOKDB4MDBiZGY0NTcsIDB4NWEwYmM0NTMpLCBUT0JOKDB4MjM3OGRmYWYs
IDB4MWFhMjM4ZGIpLAotICAgICAgICAgVE9CTigweDI3MjQyMGVjLCAweDg1NjcyMGYyKSwgVE9C
TigweDJhZDlkOTViLCAweDk2Nzk3MjkxKSwKLSAgICAgICAgIFRPQk4oMHhkMTI0MmNjNiwgMHg3
NjhhMTU1OCksIFRPQk4oMHgyZTI4N2Y4YiwgMHg1Y2M4NmFhOCksCi0gICAgICAgICBUT0JOKDB4
Nzk2ODczZDAsIDB4OTkwY2VjYWEpLCBUT0JOKDB4YWRlNTVmODEsIDB4Njc1ZDQwODApLAotICAg
ICAgICAgVE9CTigweDI2NDVlZWEzLCAweDIxZjBjZDg0KSwgVE9CTigweDdhMWVmYTBmLCAweGI0
ZTE3ZDAyKSwKLSAgICAgICAgIFRPQk4oMHhmNjg1ODQyMCwgMHgwMzdjYzA2MSksIFRPQk4oMHg2
ODJlMDVmMCwgMHhkNWQ0M2UxMiksCi0gICAgICAgICBUT0JOKDB4NTljMzY5OTQsIDB4MjcyMTg3
MTApLCBUT0JOKDB4ODVjYmJhNGQsIDB4M2Y3Y2QyZmMpLAotICAgICAgICAgVE9CTigweDcyNmY5
NzI5LCAweDdhM2NkMjJhKSwgVE9CTigweDlmOGNkNWRjLCAweDRhNjI4Mzk3KSwKLSAgICAgICAg
IFRPQk4oMHgxN2I5M2FiOSwgMHhjMjMxNjVlZCksIFRPQk4oMHhmZjVmNWRiZiwgMHgxMjI4MjNk
NCksCi0gICAgICAgICBUT0JOKDB4YzFlNGU0YjUsIDB4NjU0YTQ0NmQpLCBUT0JOKDB4ZDFhOTQ5
NmYsIDB4Njc3MjU3YmEpLAotICAgICAgICAgVE9CTigweDYzODdiYTk0LCAweGRlNzY2YTU2KSwg
VE9CTigweDIzNjA4YmM4LCAweDUyMWVjNzRhKSwKLSAgICAgICAgIFRPQk4oMHgxNmE1MjJkNywg
MHg2Njg4YzRkNCksIFRPQk4oMHg5ZDZiNDI4MiwgMHgwNzM3M2FiZCksCi0gICAgICAgICBUT0JO
KDB4YTYyZjA3YWMsIDB4YjQyZWZhYTMpLCBUT0JOKDB4ZjczZTAwZjcsIDB4ZTNiOTAxODApLAot
ICAgICAgICAgVE9CTigweDM2MTc1ZmVjLCAweDQ5NDIxYzNlKSwgVE9CTigweGM0ZTQ0ZjliLCAw
eDNkY2YyNjc4KSwKLSAgICAgICAgIFRPQk4oMHg3NmRmNDM2YiwgMHg3MjIwZjA5ZiksIFRPQk4o
MHgxNzI3NTVmYiwgMHgzYWE4YjZjZiksCi0gICAgICAgICBUT0JOKDB4YmFiODlkNTcsIDB4NDQ2
MTM5Y2MpLCBUT0JOKDB4MGEwYTZlMDIsIDB4NWZlMDIwOGYpLAotICAgICAgICAgVE9CTigweGNk
YmI2M2UyLCAweDExZTVkMzk5KSwgVE9CTigweDMzZWNhYTEyLCAweGE4OTc3ZjBiKSwKLSAgICAg
ICAgIFRPQk4oMHg1OTU5OGIyMSwgMHhmN2M0MjY2NCksIFRPQk4oMHhiM2U5MWIzMiwgMHhhYjY1
ZDA4YSksCi0gICAgICAgICBUT0JOKDB4MDM1ODIyZWUsIDB4ZjQ1MDI1MjYpLCBUT0JOKDB4MWRj
ZjAxNzYsIDB4NzIwYTgyYTkpLAotICAgICAgICAgVE9CTigweDUwZjg1OThmLCAweDNkNTg5ZTAy
KSwgVE9CTigweGRmMDQ3OGZmLCAweGIxZDYzZDJjKSwKLSAgICAgICAgIFRPQk4oMHg4YjgwNjhi
ZCwgMHgxNTcxY2QwNyksIFRPQk4oMHgzMGMzYWE0ZiwgMHhkNzk2NzBjZCksCi0gICAgICAgICBU
T0JOKDB4MjVlOGZkNGIsIDB4OTQxYWRlN2YpLCBUT0JOKDB4M2QxZGViZGMsIDB4MzI3OTAwMTEp
LAotICAgICAgICAgVE9CTigweDY1YjZkY2JkLCAweDNhM2Y5ZmYwKSwgVE9CTigweDI4MjczNmE0
LCAweDc5M2RlNjljKSwKLSAgICAgICAgIFRPQk4oMHhlZjY5YTBjMywgMHhkNDFkM2JkMyksIFRP
Qk4oMHhiNTMzYjhjOSwgMHgwN2EyNmJkZSksCi0gICAgICAgICBUT0JOKDB4ZTI4MDFkOTcsIDB4
ZGIyZWRmOWYpLCBUT0JOKDB4ZGM0YTgyNjksIDB4ZTE4NzdhZjApLAotICAgICAgICAgVE9CTigw
eDZjMWM1ODUxLCAweDNkNTkwZGJlKSwgVE9CTigweDg0NjMyZjZiLCAweGVlNGU5MzU3KSwKLSAg
ICAgICAgIFRPQk4oMHhkMzZkMzZiNywgMHg3OWIzMzM3NCksIFRPQk4oMHhiNDY4MzNlMywgMHg5
YmJjYTJlNiksCi0gICAgICAgICBUT0JOKDB4Mzc4OTM5MTMsIDB4ZjdmYzA1ODYpLCBUT0JOKDB4
Mzg1MzE1ZjcsIDB4NjZiZjQ3MTkpLAotICAgICAgICAgVE9CTigweDcyYzU2MjkzLCAweGIzMTg1
NWRjKSwgVE9CTigweGQxNDE2ZDRlLCAweDg0OTA2MWZlKSwKLSAgICAgICAgIFRPQk4oMHhiZWIz
YWI3OCwgMHg1MTA0NzIxMyksIFRPQk4oMHg0NDdmNmU2MSwgMHhmMDQwYzk5NiksCi0gICAgICAg
ICBUT0JOKDB4ZDA2ZDMxMGQsIDB4NjM4YjFkMGMpLCBUT0JOKDB4ZTI4YTQxM2YsIDB4YmFkMTUy
MmUpLAotICAgICAgICAgVE9CTigweDY4NWE3NmNiLCAweDgyMDAzZjg2KSwgVE9CTigweDYxMGQw
N2Y3LCAweDBiY2RiY2EzKSwKLSAgICAgICAgIFRPQk4oMHg2ZmY2NjAyMSwgMHg5Y2E0YzQ1NSks
IFRPQk4oMHg3ZGYzOWI4NywgMHhjZWExMGVlYyksCi0gICAgICAgICBUT0JOKDB4YjkyNTVmOTYs
IDB4ZTIyZGIyMTgpLCBUT0JOKDB4OGNjNmQ5ZWIsIDB4MDhhMzRjNDQpLAotICAgICAgICAgVE9C
TigweGNkNGZmYjg2LCAweDg1OWY5Mjc2KSwgVE9CTigweDhmYTE1ZWIyLCAweDUwZDA3MzM1KSwK
LSAgICAgICAgIFRPQk4oMHhkZjU1Mzg0NSwgMHhjZjJjMjRiNSksIFRPQk4oMHg4OWY2NmE5Ziwg
MHg1MmY5YzNiYSksCi0gICAgICAgICBUT0JOKDB4OGYyMmI1YjksIDB4ZTRhN2NlYjMpLCBUT0JO
KDB4YWZmZWY4MDksIDB4MGUxMzQ2ODYpLAotICAgICAgICAgVE9CTigweDNlNTNlMWM2LCAweDhl
YjhmYWMyKSwgVE9CTigweDkzYzFlNGViLCAweDI4YWVjOThlKSwKLSAgICAgICAgIFRPQk4oMHhi
NmI5MWVjNSwgMHgzMmE0M2JjYiksIFRPQk4oMHgyZGJmYTk0NywgMHhiMmQ3NGE1MSksCi0gICAg
ICAgICBUT0JOKDB4ZTA2NWQxOTAsIDB4Y2E4NGJhZDcpLCBUT0JOKDB4ZmIxMzkxOWYsIDB4YWQ1
OGU2NWMpLAotICAgICAgICAgVE9CTigweDNjNDE3MThiLCAweGYxY2I2ZTMxKSwgVE9CTigweDY4
ODk2OWYwLCAweDA2ZDA1YzNmKSwKLSAgICAgICAgIFRPQk4oMHhkNGY5NGNlNywgMHgyMTI2NGQ0
NSksIFRPQk4oMHhmZGZiNjVlOSwgMHg3MzY3NTMyYiksCi0gICAgICAgICBUT0JOKDB4NWIxYmU4
YjEsIDB4MDk0NWEzOWQpLCBUT0JOKDB4MjI5Zjc4OWMsIDB4MmI4YmFmM2IpLAotICAgICAgICAg
VE9CTigweGQ4ZjQxZjNlLCAweDZmNDlmMTVkKSwgVE9CTigweDY3OGNlODI4LCAweDkwN2YwNzky
KSwKLSAgICAgICAgIFRPQk4oMHhjNjlhY2U4MiwgMHhmY2E2ZTg2NyksIFRPQk4oMHgxMDY0NTFh
ZSwgMHhkMDFkY2M4OSksCi0gICAgICAgICBUT0JOKDB4MWJiNGY3ZjAsIDB4MTlmYzMyZDIpLCBU
T0JOKDB4NjQ2MzNkZmMsIDB4YjAwYzUyZDIpLAotICAgICAgICAgVE9CTigweDhmMTM1NDlhLCAw
eGFkOWVhNDQ1KSwgVE9CTigweDk5YTNiZjUwLCAweGZiMzIzNzA1KSwKLSAgICAgICAgIFRPQk4o
MHgwYzk2MjVhMiwgMHg1MzRkNGRiYyksIFRPQk4oMHg0NWI4ZjFkMSwgMHhjMmEyZmVhMyksCi0g
ICAgICAgICBUT0JOKDB4NzZlYzIxYTEsIDB4YTUzMGZjMWEpLCBUT0JOKDB4NGJhYzljMmEsIDB4
OWU1YmQ3MzQpLAotICAgICAgICAgVE9CTigweDU5OTZkNzZhLCAweDdiNGUzNTg3KSwgVE9CTigw
eDAwNDVjZGVlLCAweDExODJkOWUzKSwKLSAgICAgICAgIFRPQk4oMHgxYWVlMjRiOSwgMHgxMjA3
ZjEzZCksIFRPQk4oMHg2NjQ1MmU5NywgMHg5NzM0NWE0MSksCi0gICAgICAgICBUT0JOKDB4MTZl
NWIwNTQsIDB4OWY5NTBjZDApLCBUT0JOKDB4OWNjNzJmYjEsIDB4ZDdmZGQwNzUpLAotICAgICAg
ICAgVE9CTigweDZlZGQ2MWU3LCAweDY2MjQ5NjYzKSwgVE9CTigweGRlNGNhYTRkLCAweGYwNDNj
Y2NiKSwKLSAgICAgICAgIFRPQk4oMHgxMWIxZjU3YSwgMHg1NWM3YWMxNyksIFRPQk4oMHg3Nzlj
YmQ0NCwgMHgxYTg1ZTI0ZCksCi0gICAgICAgICBUT0JOKDB4NzgwMzBmODYsIDB4ZTQ2MDgxZTcp
LCBUT0JOKDB4ZmQ0YTYwMzIsIDB4OGUyMGY2NDMpLAotICAgICAgICAgVE9CTigweGNjN2E2NDg4
LCAweDBhNzUwYzBmKSwgVE9CTigweDM5YmFjZmUzLCAweDRlNTQ4ZTgzKSwKLSAgICAgICAgIFRP
Qk4oMHgzZDQxOGM3NiwgMHgwYzExMGYwNSksIFRPQk4oMHgzZTRkYWE0YywgMHhiMWYxMTU4OCks
Ci0gICAgICAgICBUT0JOKDB4MjczM2U3YjUsIDB4NWZmYzY5ZmYpLCBUT0JOKDB4NDZmMTQ3YmMs
IDB4OTIwNTMxMjcpLAotICAgICAgICAgVE9CTigweDg4NWIyNDM0LCAweGQ3MjJkZjk0KSwgVE9C
TigweDZhNDQ0ZjY1LCAweGU2ZmM2YjdjKX0sCi0gICAgICAgIHtUT0JOKDB4N2ExYTQ2NWEsIDB4
YzNmMTZlYTgpLCBUT0JOKDB4MTE1YTQ2MWQsIDB4YjJmMWQxMWMpLAotICAgICAgICAgVE9CTigw
eDQ3NjdkZDk1LCAweDZjNjhhMTcyKSwgVE9CTigweDMzOTJmMmViLCAweGQxM2E0Njk4KSwKLSAg
ICAgICAgIFRPQk4oMHhjN2E5OWNjZCwgMHhlNTI2Y2RjNyksIFRPQk4oMHg4ZTUzN2ZkYywgMHgy
MjI5MmI4MSksCi0gICAgICAgICBUT0JOKDB4NzZkOGNmNjksIDB4YTZkMzkxOTgpLCBUT0JOKDB4
ZmZjNWZmNDMsIDB4MjQ0Njg1MmQpLAotICAgICAgICAgVE9CTigweDk3YjE0ZjdlLCAweGE5MDU2
N2U2KSwgVE9CTigweDUxMzI1N2I3LCAweGI2YWU1Y2I3KSwKLSAgICAgICAgIFRPQk4oMHg4NTQ1
NGEzYywgMHg5ZjEwOTAzZCksIFRPQk4oMHhkOGQyYzlhZCwgMHg2OWJjMzcyNCksCi0gICAgICAg
ICBUT0JOKDB4MzhkYTkzMjQsIDB4NmIyOWNiNDQpLCBUT0JOKDB4YjU0MGEyMWQsIDB4NzdjOGNi
YWMpLAotICAgICAgICAgVE9CTigweDliYmZlNDM1LCAweDAxOTE4ZTQyKSwgVE9CTigweGZmZmE3
MDdhLCAweDU2YzM2MTRlKSwKLSAgICAgICAgIFRPQk4oMHgwY2U0ZTNmMSwgMHhkNGUzNTNiNyks
IFRPQk4oMHgwNjJkOGExNCwgMHhlZjQ2YjBhMCksCi0gICAgICAgICBUT0JOKDB4NjQwOGQ1YWIs
IDB4NTc0YjczZmQpLCBUT0JOKDB4YmM0MWQxYzksIDB4ZDMyNzNmZmQpLAotICAgICAgICAgVE9C
TigweDM1MzhlMWU3LCAweDZiZTc3ODAwKSwgVE9CTigweDcxZmU4YjM3LCAweGM1NjU1MDMxKSwK
LSAgICAgICAgIFRPQk4oMHgxY2Q5MTYyMSwgMHg2YjliMzMxYSksIFRPQk4oMHhhZDgyNWQwYiwg
MHhiYjM4OGY3MyksCi0gICAgICAgICBUT0JOKDB4NTZjMmUwNWIsIDB4MWNiNzYyMTkpLCBUT0JO
KDB4MGVjMGJmOTEsIDB4NzE1NjdlN2UpLAotICAgICAgICAgVE9CTigweGU3MDc2Zjg2LCAweDYx
YzRjOTEwKSwgVE9CTigweGQ2N2IwODViLCAweGJhYmMwNGQ5KSwKLSAgICAgICAgIFRPQk4oMHg5
ZmI5MDQ1OSwgMHg1ZTkzYTk2YSksIFRPQk4oMHg3NTI2YzFlYSwgMHhmYmRjMjQ5YSksCi0gICAg
ICAgICBUT0JOKDB4MGQ0NGQzNjcsIDB4ZWNkZDBiYjcpLCBUT0JOKDB4OTUzOTk5MTcsIDB4OWRj
MGQ2OTUpLAotICAgICAgICAgVE9CTigweDYxMzYwZWU5LCAweDllMjQwZDE4KSwgVE9CTigweDA1
N2NkY2FjLCAweGI0Yjk0NDY2KSwKLSAgICAgICAgIFRPQk4oMHhlNzY2N2NkMSwgMHgyZmU1MzI1
YyksIFRPQk4oMHgxZmEyOTdiNSwgMHgyMTk3NGUzYiksCi0gICAgICAgICBUT0JOKDB4ZmE0MDgx
ZTcsIDB4ZGIwODNkNzYpLCBUT0JOKDB4MzE5OTNiZTYsIDB4ZjIwNmJkMTUpLAotICAgICAgICAg
VE9CTigweDg5NDkyNjliLCAweDE0YzE5ZjhjKSwgVE9CTigweDIxNDY4ZDcyLCAweGE5ZDkyMzU3
KSwKLSAgICAgICAgIFRPQk4oMHgyY2NiYzU4MywgMHhhNGM1MDZlYyksIFRPQk4oMHg5NTdlZDE4
OCwgMHhkMWFjZmU5NyksCi0gICAgICAgICBUT0JOKDB4OGJhZWQ4MzMsIDB4MTJmMWFlYTIpLCBU
T0JOKDB4ZWYyYTZjYjQsIDB4ODMyNTM2MmQpLAotICAgICAgICAgVE9CTigweDEzMGRkZTQyLCAw
eDhlMTk1YzQzKSwgVE9CTigweGM4NDIwMjVhLCAweDBlNjA1MGM2KSwKLSAgICAgICAgIFRPQk4o
MHgyZGE5NzJhNywgMHgwODY4NmE1ZCksIFRPQk4oMHhiNTI5OTlhMSwgMHhlNTA4YjRhOCksCi0g
ICAgICAgICBUT0JOKDB4ZDlmMDkwYjksIDB4MTBhNWE4YmQpLCBUT0JOKDB4Y2E5MWQyNDksIDB4
MDk2ODY0ZGEpLAotICAgICAgICAgVE9CTigweDhlNmE5M2JlLCAweDNmNjdkYmMxKSwgVE9CTigw
eGFjYWU2ZmJhLCAweGY1ZjQ3NjRjKSwKLSAgICAgICAgIFRPQk4oMHgxNTYzYzZlMCwgMHhkMjE0
MTFhMCksIFRPQk4oMHgyOGZhNzg3ZiwgMHhkYTBhNGFkOCksCi0gICAgICAgICBUT0JOKDB4ZDUy
NDQ5MWMsIDB4OTA4YzgwMzApLCBUT0JOKDB4MTI1N2JhMGUsIDB4NGM3OTVmMDcpLAotICAgICAg
ICAgVE9CTigweDgzZjQ5MTY3LCAweGNlY2E5NzU0KSwgVE9CTigweDQyNmQyY2Y2LCAweDRiNzkz
OWEwKSwKLSAgICAgICAgIFRPQk4oMHgyNTU1ZTM1NSwgMHg3MjNmZDBiZiksIFRPQk4oMHhhOTZl
NmQwNiwgMHhjNGYxNDRlMiksCi0gICAgICAgICBUT0JOKDB4NDc2OGE4ZGQsIDB4ODc4ODBlNjEp
LCBUT0JOKDB4MTU1NDM4MTUsIDB4ZTUwOGU0ZDUpLAotICAgICAgICAgVE9CTigweDA5ZDdlNzcy
LCAweGIxYjY1ZTE1KSwgVE9CTigweDYzNDM5ZGQ2LCAweGFjMzAyZmEwKSwKLSAgICAgICAgIFRP
Qk4oMHhiOTNmODAyZiwgMHhjMTRlMzVjMiksIFRPQk4oMHg3MTczNWI3YywgMHg0MzQxMzMzYyks
Ci0gICAgICAgICBUT0JOKDB4MDNhMjUxMDQsIDB4MTZkNGYzNjIpLCBUT0JOKDB4M2Y0ZDA2OWIs
IDB4YmY0MzNjOGUpLAotICAgICAgICAgVE9CTigweDBkODNhZTAxLCAweGY3OGY1YTdjKSwgVE9C
TigweDUwYThmZmJlLCAweDdjNGVlZDA3KSwKLSAgICAgICAgIFRPQk4oMHhjNzRmODkwNiwgMHg3
NmUxMGY4MyksIFRPQk4oMHg3ZDA4MDk2NiwgMHg5ZGRhZjhlMSksCi0gICAgICAgICBUT0JOKDB4
YjExZGY4ZTEsIDB4Njk4ZTA0Y2MpLCBUT0JOKDB4ODc3YmUyMDMsIDB4MTY5MDA1YzgpLAotICAg
ICAgICAgVE9CTigweDMyNzQ5ZThjLCAweDRmM2M2MTc5KSwgVE9CTigweDJkYmM5ZDBhLCAweDc4
NTNmYzA1KSwKLSAgICAgICAgIFRPQk4oMHgxODdkNGY5MywgMHg5NDU0ZDkzNyksIFRPQk4oMHhl
NjgyY2U5ZCwgMHhiNDgwMGUxYiksCi0gICAgICAgICBUT0JOKDB4YTkxMjlhZDgsIDB4MTY1ZTY4
ZTgpLCBUT0JOKDB4MGZlMjk3MzUsIDB4YmU3Zjc4NWIpLAotICAgICAgICAgVE9CTigweDUzMDNm
NDBjLCAweDViOWUwMmI3KSwgVE9CTigweGEzN2M5NjkyLCAweDM1ZWUwNGU4KSwKLSAgICAgICAg
IFRPQk4oMHg1ZjQ2Y2MyMCwgMHgzNGQ2NjMyYiksIFRPQk4oMHg1NWVmNzJiMiwgMHg5NmFjNTQ1
YiksCi0gICAgICAgICBUT0JOKDB4YWJlYzVjMWYsIDB4N2I5MWIwNjIpLCBUT0JOKDB4MGE3OWUx
YzcsIDB4YmIzM2U4MjEpLAotICAgICAgICAgVE9CTigweGJiMDRiNDI4LCAweDNhOWY0MTE3KSwg
VE9CTigweDBkZTFmMjhmLCAweGZkMmE0NzVhKSwKLSAgICAgICAgIFRPQk4oMHgzMTAxOWNjZiwg
MHgzYTQ0MzRiNCksIFRPQk4oMHhhMzQ1ODExMSwgMHgxYTc5NTRkYyksCi0gICAgICAgICBUT0JO
KDB4YTlkYWM4MGQsIDB4ZTM0OTcyYTcpLCBUT0JOKDB4YjA0M2QwNTQsIDB4NzRmNmI4ZGQpLAot
ICAgICAgICAgVE9CTigweDAyMWMzMTllLCAweDExMTM3YjFhKSwgVE9CTigweDAwYTc1NGNlLCAw
eGVkNWNjMDNmKSwKLSAgICAgICAgIFRPQk4oMHgwYWEyYzc5NCwgMHhjYmVhNWFkNCksIFRPQk4o
MHgwOTNlNjdmNCwgMHg3MGMwMTViNiksCi0gICAgICAgICBUT0JOKDB4NzJjZGZlZTksIDB4Yzk3
ZTNmNmIpLCBUT0JOKDB4YzEwYmNhYjQsIDB4YjZkYTc0NjEpLAotICAgICAgICAgVE9CTigweDNi
MDJkMmZjLCAweGI1OTgwNmI5KSwgVE9CTigweDg1MTg1ZTg5LCAweGExZGU2ZjQ3KSwKLSAgICAg
ICAgIFRPQk4oMHgzOWU2OTMxZiwgMHgwZWI2YzRkNCksIFRPQk4oMHg0ZDQ0NDBiZCwgMHhkNGZh
NWIwNCksCi0gICAgICAgICBUT0JOKDB4NTQxODc4NmUsIDB4MzRiZTdlYjgpLCBUT0JOKDB4NjM4
MGU1MjEsIDB4OWQ3MjU5YmMpLAotICAgICAgICAgVE9CTigweDIwYWMwMzUxLCAweGQ1OThkNzEw
KSwgVE9CTigweDI3MmM0MTY2LCAweGNiM2E0ZGE0KSwKLSAgICAgICAgIFRPQk4oMHhkYjgyZmUx
YSwgMHhjYTcxZGUxZiksIFRPQk4oMHg3NDZlNzlmMiwgMHhkOGY1NGIwZiksCi0gICAgICAgICBU
T0JOKDB4NmU3ZmM3MzYsIDB4NGI1NzNlOWIpLCBUT0JOKDB4NzVkMDNmNDYsIDB4ZmQ0YjUwNDAp
LAotICAgICAgICAgVE9CTigweDVjMWNjMzZkLCAweDBiOThkODdiKSwgVE9CTigweDUxM2JhM2Yx
LCAweDFmNDcyZGExKSwKLSAgICAgICAgIFRPQk4oMHg3OWQwYWYyNiwgMHhhYmIxNzdkZCksIFRP
Qk4oMHhmODJhYjU2OCwgMHg3ODkxZDU2NCksCi0gICAgICAgICBUT0JOKDB4MmI2NzY4YTksIDB4
NzIyMzIxNzMpLCBUT0JOKDB4ZWZiYjNiYjAsIDB4OGMxZjY2MTkpLAotICAgICAgICAgVE9CTigw
eGIyOWMxMWRiLCAweGE2ZDE4MzU4KSwgVE9CTigweDUxOWUyNzk3LCAweGIwOTE2ZDNhKSwKLSAg
ICAgICAgIFRPQk4oMHhkNGRjMThmMCwgMHg5MTg4ZTI5MCksIFRPQk4oMHg2NDhlODZlMywgMHg5
OGIwY2E3ZiksCi0gICAgICAgICBUT0JOKDB4ODU5ZDMxNDUsIDB4OTgzYzM4YjUpLCBUT0JOKDB4
YjE0ZjE3NmMsIDB4NjM3YWJjOGIpLAotICAgICAgICAgVE9CTigweDI3OTNmYjlkLCAweGNhZmY3
YmU2KSwgVE9CTigweGViZTVhNTVmLCAweDM1YTY2YTVhKSwKLSAgICAgICAgIFRPQk4oMHg3Y2Vj
MWRjZCwgMHg5Zjg3ZGM1OSksIFRPQk4oMHg3YzU5NWNkMywgMHhmYmRiZjU2MCksCi0gICAgICAg
ICBUT0JOKDB4NWI1NDNiMjIsIDB4MjZlYjMyNTcpLCBUT0JOKDB4NjkwODA2NDYsIDB4YzRjOTM1
ZmQpLAotICAgICAgICAgVE9CTigweDdmMmU0NDAzLCAweDgxZTllZGUzKSwgVE9CTigweDI0M2Mz
ODk0LCAweGNhZjZkZjBhKSwKLSAgICAgICAgIFRPQk4oMHg3YzYwNWJiMSwgMHgxYzA3M2IxMSks
IFRPQk4oMHhjZDA2YTU0MSwgMHhiYTZhNGE2MiksCi0gICAgICAgICBUT0JOKDB4MjkxNjg5NDks
IDB4NDlkNGUyZTUpLCBUT0JOKDB4MzM2NDlkMDcsIDB4NGFmNjY4ODApLAotICAgICAgICAgVE9C
TigweGJmYzBjODg1LCAweGU5YTg1MDM1KSwgVE9CTigweGI0ZTUyMTEzLCAweGZjNDEwZjRiKSwK
LSAgICAgICAgIFRPQk4oMHhkY2EzYjcwNiwgMHg3OGE2NTEzYiksIFRPQk4oMHg5MmVhNGEyYSwg
MHg5ZWRiMTk0MyksCi0gICAgICAgICBUT0JOKDB4MDI2NDIyMTYsIDB4ZGI2ZTJkZDgpLCBUT0JO
KDB4OWI0NWQwYjQsIDB4OWZkNTc4OTQpLAotICAgICAgICAgVE9CTigweDExNGU3MGRiLCAweGM2
OWQxMWFlKSwgVE9CTigweDE0NzdkZDE5LCAweDRjNTc1OTVmKSwKLSAgICAgICAgIFRPQk4oMHhi
YzIyMDhiNCwgMHhlYzc3YzI3MiksIFRPQk4oMHg5NWM1YjRkNywgMHhkYjY4ZjU5YyksCi0gICAg
ICAgICBUT0JOKDB4YjhjNGZjNjMsIDB4NDJlNTMyYjcpLCBUT0JOKDB4Mzg2YmE0MjIsIDB4OWFl
MzUyOTApLAotICAgICAgICAgVE9CTigweGZiNWRkYTQyLCAweGQyMDFlY2JjKSwgVE9CTigweDIz
NTNkYzhiLCAweGEwZTM4ZmQ2KSwKLSAgICAgICAgIFRPQk4oMHg5YTBiODVlYSwgMHg2OGY3ZTk3
OCksIFRPQk4oMHg5NmVjNTY4MiwgMHgyYWQ2ZDExZiksCi0gICAgICAgICBUT0JOKDB4NWUyNzlk
NmMsIDB4ZTVmNjg4NmQpLCBUT0JOKDB4ZDNmZTAzY2QsIDB4M2NiMTkxNGQpLAotICAgICAgICAg
VE9CTigweGZlNTQxZmE0LCAweDdlYTY3Yzc3KSwgVE9CTigweDk1MmJkMmFmLCAweGUzZWE4MTBj
KSwKLSAgICAgICAgIFRPQk4oMHg3OTFmZWY1NiwgMHg4ZDAxZDM3NCksIFRPQk4oMHhhM2ExYzYy
MSwgMHgwZjExMzM2ZSksCi0gICAgICAgICBUT0JOKDB4NWFkMGQ1YTksIDB4YzdlYzZkNzkpLCBU
T0JOKDB4ZmY3MDM4YWYsIDB4MzIyNWMzNDIpLAotICAgICAgICAgVE9CTigweDAwM2M2Njg5LCAw
eGJjNjk2MDFiKSwgVE9CTigweDI1MDU5YmM3LCAweDQ1ZTg3NDdkKSwKLSAgICAgICAgIFRPQk4o
MHhmYTQ5NjViMiwgMHhmMjA4NmZiZiksIFRPQk4oMHhmNjg0MGVhNiwgMHg4NjkxNjA3OCksCi0g
ICAgICAgICBUT0JOKDB4ZDdhYzc2MjAsIDB4NzAwODFkNmMpLCBUT0JOKDB4ZTYwMGRhMzEsIDB4
YjUzMjg2NDUpLAotICAgICAgICAgVE9CTigweDAxOTE2ZjYzLCAweDUyOWI4YTgwKSwgVE9CTigw
eGU4MGU0ODU4LCAweDJkN2Q2ZjNlKSwKLSAgICAgICAgIFRPQk4oMHgyOWViMGZlOCwgMHhkNjY0
Y2E3YyksIFRPQk4oMHhmMDE3NjM3YiwgMHhlN2I0M2IwYyksCi0gICAgICAgICBUT0JOKDB4OWE3
NWM4MDYsIDB4NzZjYjI1NjYpLCBUT0JOKDB4OGY3NmFjYjEsIDB4YjI0ODkyZDkpLAotICAgICAg
ICAgVE9CTigweDdhZTdiOWNjLCAweDFmMDhmZTQ1KSwgVE9CTigweDE5ZWY3MzI5LCAweDZhNDkw
N2Q4KSwKLSAgICAgICAgIFRPQk4oMHgyZGI0YWI3MSwgMHg1ZjIyOGJmMCksIFRPQk4oMHhmM2Nk
ZWEzOSwgMHg4MTcwMzJkNyksCi0gICAgICAgICBUT0JOKDB4MGIxZjQ4MmUsIDB4ZGNhYmUzYzAp
LCBUT0JOKDB4M2JhZjc2YjQsIDB4YmI4NjMyNWMpLAotICAgICAgICAgVE9CTigweGQ0OTA2NWUw
LCAweDEwMDg5NDY1KSwgVE9CTigweDNiYWI1ZDI5LCAweDhlNzdjNTk2KSwKLSAgICAgICAgIFRP
Qk4oMHg3NjM2YzNhNiwgMHgxOTNkYmQ5NSksIFRPQk4oMHhkZWY1ZDI5NCwgMHhiMjQ2ZTQ5OSks
Ci0gICAgICAgICBUT0JOKDB4YjIyYzU4YjksIDB4Mjg2YjI0NzUpLCBUT0JOKDB4YTBiOTM5Mzks
IDB4Y2Q4MDg2MmIpLAotICAgICAgICAgVE9CTigweDMwMDJjODNhLCAweGYwOTkyMzg4KSwgVE9C
TigweDZkZTAxZjliLCAweGVhY2JlMTRjKSwKLSAgICAgICAgIFRPQk4oMHg2YWFjNjg4ZSwgMHhh
ZGQ3MDQ4MiksIFRPQk4oMHg3MDhkZTkyYSwgMHg3YjRhNGU4YSksCi0gICAgICAgICBUT0JOKDB4
NzViNmRkNzMsIDB4NzU4YTZlZWYpLCBUT0JOKDB4ZWE0YmYzNTIsIDB4NzI1YjNjNDMpLAotICAg
ICAgICAgVE9CTigweDEwMDQxZjJjLCAweDg3OTEyODY4KSwgVE9CTigweGIxYjFiZTk1LCAweGVm
MDkyOTdhKSwKLSAgICAgICAgIFRPQk4oMHgxOWFlMjNjNSwgMHhhOWYzODYwYSksIFRPQk4oMHhj
NGYwZjgzOSwgMHg1MTVkY2Y0YiksCi0gICAgICAgICBUT0JOKDB4M2M3ZWNjYTMsIDB4OTdmNjMw
NmEpLCBUT0JOKDB4NzQ0YzQ0YWUsIDB4NjhhM2E0YjApLAotICAgICAgICAgVE9CTigweDY5Y2Qx
M2EwLCAweGIzYTFkOGEyKSwgVE9CTigweDdjYWQwYTFlLCAweDUyNTZiNTc4KSwKLSAgICAgICAg
IFRPQk4oMHhlYTY1M2ZjZCwgMHgzMzc5MWQ5ZSksIFRPQk4oMHg5Y2MyYTA1ZCwgMHg3NGIyZTA1
ZiksCi0gICAgICAgICBUT0JOKDB4NzNiMzkxZGMsIDB4ZmQ3YWZmYTIpLCBUT0JOKDB4ZGRiNzA5
MWUsIDB4YjZiMDU0NDIpLAotICAgICAgICAgVE9CTigweGM3MWUyN2JmLCAweDg1MzhhNWM2KSwg
VE9CTigweDE5NWM2M2RkLCAweDg5YWJmZjE3KSwKLSAgICAgICAgIFRPQk4oMHhmZDMxNTI4NSwg
MHgxYjcxZTNkYSksIFRPQk4oMHg5Y2JkZmRhNywgMHhmYTY4MGZhMCksCi0gICAgICAgICBUT0JO
KDB4OWRiODc2Y2EsIDB4ODQ5ZDdlYWIpLCBUT0JOKDB4ZWJlMjc2NGIsIDB4M2MyNzMyNzEpLAot
ICAgICAgICAgVE9CTigweDY2MzM1N2UzLCAweGYyMDhkY2VhKSwgVE9CTigweDhjNWJkODMzLCAw
eDU2NWIxYjcwKSwKLSAgICAgICAgIFRPQk4oMHhjY2MzYjRmNSwgMHg5ODM3ZmMwZCksIFRPQk4o
MHg5YjY0MWJhOCwgMHhhNzljZjAwZiksCi0gICAgICAgICBUT0JOKDB4NzQyODI0M2QsIDB4ZGZk
ZjM5OTApLCBUT0JOKDB4ODNhNTk0YzQsIDB4MDIwNzg2YjEpLAotICAgICAgICAgVE9CTigweGI3
MTI0NTFhLCAweDUyNmM0NTAyKSwgVE9CTigweDlkMzk0MzhlLCAweDZhZGIzZjkzKSwKLSAgICAg
ICAgIFRPQk4oMHhmZGIyNjFlMywgMHhlOWZmMGNjZCksIFRPQk4oMHg4MDM0NGUzYywgMHhlMDdh
ZjRjMyksCi0gICAgICAgICBUT0JOKDB4NzU5MDBkN2MsIDB4MmZhNGYxMjYpLCBUT0JOKDB4MDhh
M2I4NjUsIDB4NWM5OWEyMzIpLAotICAgICAgICAgVE9CTigweDI0NzhiNmJmLCAweGRiMjVlMGMz
KSwgVE9CTigweDQ4MmNjMmMyLCAweDcxZGIyZWRmKSwKLSAgICAgICAgIFRPQk4oMHgzN2RmN2U2
NCwgMHg1ZjMyMWJiOCksIFRPQk4oMHg4YTkzODIxYiwgMHg5YTgwMDViNCksCi0gICAgICAgICBU
T0JOKDB4M2ZhMmYxMGMsIDB4Y2M4YzE5NTgpLCBUT0JOKDB4MGQzMzIyMTgsIDB4MmMyNjlkMGEp
LAotICAgICAgICAgVE9CTigweDIwYWI4MTE5LCAweGUyNDZiMGU2KSwgVE9CTigweGIzOTc4MWU0
LCAweGQzNDlmZDE3KSwKLSAgICAgICAgIFRPQk4oMHhkMjkzMjMxZSwgMHhiMzFhYTEwMCksIFRP
Qk4oMHg0Yjc3OWM5NywgMHhiYjAzMjE2OCksCi0gICAgICAgICBUT0JOKDB4NGIzZjE5ZTEsIDB4
Yzg0NzA1MDApLCBUT0JOKDB4NDViN2VmZTksIDB4MGM0Yzg2OWQpLAotICAgICAgICAgVE9CTigw
eGRiODRmMzhhLCAweGExYTZiYmNjKSwgVE9CTigweDNiNTljYjE1LCAweGIyZmRkYmMxKSwKLSAg
ICAgICAgIFRPQk4oMHhiYTU1MTRkZiwgMHgzZmQxNjVlOCksIFRPQk4oMHg0OTlmZDZhOSwgMHgw
NjFmODgxMSksCi0gICAgICAgICBUT0JOKDB4NzJjZDFmZTAsIDB4YmZlZjlmMDApLCBUT0JOKDB4
MTIwYTRiYjksIDB4NzlhZDdlOGEpLAotICAgICAgICAgVE9CTigweGYyZmZkMDk1LCAweDVmNGE1
YWM1KSwgVE9CTigweGNmZDE3NGYxLCAweDk1YTdhMmYwKSwKLSAgICAgICAgIFRPQk4oMHhkNDIz
MDFiYSwgMHg5ZDE3YmFmMSksIFRPQk4oMHhkMmZhNDg3YSwgMHg3N2YyMjA4OSksCi0gICAgICAg
ICBUT0JOKDB4OWNiMDllZmUsIDB4YjFkYzc3ZTEpLCBUT0JOKDB4ZTk1NjY5MzksIDB4MjFjOTk2
ODIpLAotICAgICAgICAgVE9CTigweDhjNTQ2OTAxLCAweDZjNjA2N2JiKSwgVE9CTigweGZkMzc4
NTc0LCAweDYxYzI0NDU2KSwKLSAgICAgICAgIFRPQk4oMHgyYjZhNmNiZSwgMHg4MTc5NmIzMyks
IFRPQk4oMHg2MmQ1NTBmNiwgMHg1OGU4N2Y4YiksCi0gICAgICAgICBUT0JOKDB4MWI3NjNlMWMs
IDB4N2YxYjAxYjQpLCBUT0JOKDB4NGI5M2NmZWEsIDB4MWIxYjVlMTIpLAotICAgICAgICAgVE9C
TigweGI5MzQ1MjM4LCAweDFkNTMxNjk2KSwgVE9CTigweDU3MjAxYzAwLCAweDg4Y2RkZTY5KSwK
LSAgICAgICAgIFRPQk4oMHhkZGU5MjI1MSwgMHg5YTg2YWZjNyksIFRPQk4oMHhlMzA0Mzg5NSwg
MHhiZDM1Y2VhOCksCi0gICAgICAgICBUT0JOKDB4NzYwOGMxZTEsIDB4ODU1NTk3MGQpLCBUT0JO
KDB4ODI2N2RmYTksIDB4MjUzNTkzNWUpLAotICAgICAgICAgVE9CTigweGQ0YzYwYTU3LCAweDMy
MmVhMzhiKSwgVE9CTigweGUwYmY3OTc3LCAweDgwNGVmOGI1KSwKLSAgICAgICAgIFRPQk4oMHgx
YTBkYWIyOCwgMHhjMDZmZWNlNCksIFRPQk4oMHhkNDA1OTkxZSwgMHg5NGU3YjQ5ZCksCi0gICAg
ICAgICBUT0JOKDB4YzU0MmI2ZDIsIDB4NzA2ZGFiMjgpLCBUT0JOKDB4Y2IyMjhkYTMsIDB4YTkx
NjE4ZmIpLAotICAgICAgICAgVE9CTigweDIyNGU0MTY0LCAweDEwN2QxY2VhKSwgVE9CTigweGVi
OWZkYWIzLCAweGQwZjVkOGYxKSwKLSAgICAgICAgIFRPQk4oMHhjMDJiYTM4NiwgMHgwZDZlNDFj
ZCksIFRPQk4oMHg2NzZhNzJjNSwgMHg5YjFmNzE0NiksCi0gICAgICAgICBUT0JOKDB4ZmZkNmRk
OTgsIDB4NGQ2Y2IwMGIpLCBUT0JOKDB4Y2VmOWM1Y2EsIDB4ZGUyZThkN2MpLAotICAgICAgICAg
VE9CTigweGExYmJmNWQ3LCAweDY0MWM3OTM2KSwgVE9CTigweDFiOTViMjMwLCAweGVlOGY3NzJl
KSwKLSAgICAgICAgIFRPQk4oMHhmNzY1YTkyZSwgMHhlOGFjMjViMSksIFRPQk4oMHhjZWIwNGNm
YywgMHgzYTE4YjdjNiksCi0gICAgICAgICBUT0JOKDB4Mjc5NDRjZWYsIDB4MGFjYzg5NjYpLCBU
T0JOKDB4Y2JiM2M5NTcsIDB4NDM0YzEwMDQpLAotICAgICAgICAgVE9CTigweDljOTk3MWExLCAw
eGE0M2ZmOTNjKSwgVE9CTigweDViYzJkYjE3LCAweGExZTM1OGE5KSwKLSAgICAgICAgIFRPQk4o
MHg0NWI0ODYyZSwgMHhhOGQ5YmM4MiksIFRPQk4oMHg3MGViZmJmYiwgMHgyMjAxZTA1MiksCi0g
ICAgICAgICBUT0JOKDB4YWZkZjY0YzcsIDB4OTI4NzE1OTEpLCBUT0JOKDB4ZWE1YmNhZTYsIDB4
YjQyZDAyMTkpLAotICAgICAgICAgVE9CTigweGRlNTM2YzU1LCAweDJhZDhmMDNjKSwgVE9CTigw
eGNkNmMzZjRkLCAweGE3NmFhMzNjKSwKLSAgICAgICAgIFRPQk4oMHhiZWI1ZjYyMywgMHgwYmNh
NmRlMyksIFRPQk4oMHhkZDIwZGQ5OSwgMHhiMWU3MDZmZCksCi0gICAgICAgICBUT0JOKDB4OTBi
M2ZmOWQsIDB4YWM5MDU5ZDQpLCBUT0JOKDB4MmQ3YjI5MDIsIDB4N2NjY2NjNGUpLAotICAgICAg
ICAgVE9CTigweDhhMDkwYTU5LCAweGNlOTg4NDBmKSwgVE9CTigweGE1ZDk0N2UwLCAweDg0MTA2
ODBhKSwKLSAgICAgICAgIFRPQk4oMHg0OWFlMzQ2YSwgMHg5MjMzNzlhNSksIFRPQk4oMHg3ZGJj
ODRmOSwgMHhiMjhhMzE1NiksCi0gICAgICAgICBUT0JOKDB4ZmQ0MGQ5MTYsIDB4NTRhMWFmZjIp
LCBUT0JOKDB4YWJmMzE4YmEsIDB4M2E3OGZiOWIpLAotICAgICAgICAgVE9CTigweDUwMTUyZWQ4
LCAweDMwMjlmOTVlKSwgVE9CTigweDlmYzFkZDc3LCAweGM1OGFkN2ZhKSwKLSAgICAgICAgIFRP
Qk4oMHg1ZmE1NzkxNSwgMHgxMzU5NWMxNyksIFRPQk4oMHhiOTUwNDY2OCwgMHg4ZjYyYjNhOSks
Ci0gICAgICAgICBUT0JOKDB4OTA3YjViMjQsIDB4ZmYzMDU1YjApLCBUT0JOKDB4MmU5OTVlMzUs
IDB4OWE4NGYxMjUpLAotICAgICAgICAgVE9CTigweDg3ZGFjZjY5LCAweDdlOWJiY2ZiKSwgVE9C
TigweDk1ZDBjMWQ2LCAweGU4NmQ5NmUzKSwKLSAgICAgICAgIFRPQk4oMHg2NTcyNmUzYywgMHgy
ZDk1YTc1YyksIFRPQk4oMHgyYzNjOTAwMSwgMHhhY2QyN2YyMSksCi0gICAgICAgICBUT0JOKDB4
MWRlYWI1NjEsIDB4NmM5NzNmNTcpLCBUT0JOKDB4MTA4YjdlMmMsIDB4YTUyMjE2NDMpLAotICAg
ICAgICAgVE9CTigweDVmZWU5ODU5LCAweGM0ZWY3OWQ0KSwgVE9CTigweGJkNjJiODhhLCAweDQw
ZDRiOGM2KSwKLSAgICAgICAgIFRPQk4oMHhiNGRkMjljNCwgMHgxOTdjNzVkNiksIFRPQk4oMHgy
NjZhNmRmMiwgMHhiNzA3NmZlYiksCi0gICAgICAgICBUT0JOKDB4OTUxMmQwZWEsIDB4NGJmMmRm
MTEpLCBUT0JOKDB4MTMyMGMyNGYsIDB4NmIwY2M5ZWMpLAotICAgICAgICAgVE9CTigweDZiYjFl
MGUxLCAweDAxYTU5NTk2KSwgVE9CTigweDgzMTdjNWJiLCAweGVmZjlhYWFjKSwKLSAgICAgICAg
IFRPQk4oMHg2NWJiNDA1ZSwgMHgzODVhYTZjOSksIFRPQk4oMHg2MTM0MzljMSwgMHg4ZjA3OTg4
ZiksCi0gICAgICAgICBUT0JOKDB4ZDczMDA0OWYsIDB4MTZhNjZlOTEpLCBUT0JOKDB4ZTk3ZjI4
MjAsIDB4ZmExYjBlMGQpLAotICAgICAgICAgVE9CTigweDQxMzFlMDAzLCAweDMwNGMyOGVhKSwg
VE9CTigweDgyMGFiNzMyLCAweDUyNmJhYzYyKSwKLSAgICAgICAgIFRPQk4oMHhiMmFjOWVmOSwg
MHgyODcxNDQyMyksIFRPQk4oMHg1NGVjZmZmYSwgMHhhZGIxMGNiMiksCi0gICAgICAgICBUT0JO
KDB4ODc4MTQ3NmUsIDB4Zjg4NmE0Y2MpLCBUT0JOKDB4NGIyYzg3YjUsIDB4ZGIyZjhkNDkpLAot
ICAgICAgICAgVE9CTigweGU4NTdjZDIwLCAweDBhNDQyOTVkKSwgVE9CTigweDcwN2Q3ZDIxLCAw
eDU4YzZiMDQ0KSwKLSAgICAgICAgIFRPQk4oMHhhZTg1MjFmOSwgMHhmNTk2NzU3YyksIFRPQk4o
MHg4NzQ0OGYwMywgMHg2N2IyYjcxNCksCi0gICAgICAgICBUT0JOKDB4MTNhOWJjNDUsIDB4NWVi
Y2Q1OGQpLCBUT0JOKDB4NzliY2NlZDksIDB4OTEyMmQzYzEpLAotICAgICAgICAgVE9CTigweDNj
NjQ0MjQ3LCAweDllMDc2NjQyKSwgVE9CTigweDBjZjIyNzc4LCAweDJkZjQ3NjdkKSwKLSAgICAg
ICAgIFRPQk4oMHg1ZTYxYWVlNCwgMHg3MWQ0NDRiNiksIFRPQk4oMHgyMTEyMzZiZiwgMHhjNTA4
NGExZCksCi0gICAgICAgICBUT0JOKDB4N2UxNWJjOWEsIDB4NGZkM2VhZjYpLCBUT0JOKDB4Njhk
ZjJjMzQsIDB4YWI2MjJiZjUpLAotICAgICAgICAgVE9CTigweDllNjc0ZjBmLCAweDU5YmY0ZjM2
KSwgVE9CTigweGY4ODM2NjliLCAweGQ3ZjM0ZDczKSwKLSAgICAgICAgIFRPQk4oMHhjNDhhYzFi
OCwgMHgzMTQ5N2IxZCksIFRPQk4oMHgzMjNiOTI1ZCwgMHg1MTA2NzAzYiksCi0gICAgICAgICBU
T0JOKDB4MjIxNTZmNDIsIDB4NzQwODIwMDgpLCBUT0JOKDB4ZWZmYzUyMWEsIDB4Yzg0ODJiY2Ip
LAotICAgICAgICAgVE9CTigweDVjNjgzMWJmLCAweDEyMTczNDc5KSwgVE9CTigweGNhYTI1Mjhm
LCAweGM0NzM5NDkwKSwKLSAgICAgICAgIFRPQk4oMHg4NGQyMTAyYSwgMHg4ZjFiM2M0ZCksIFRP
Qk4oMHhjZjY0ZGZjMSwgMHgyZDliZWMwZCksCi0gICAgICAgICBUT0JOKDB4NDMzZmViYWQsIDB4
NzhhNTQ2ZWYpLCBUT0JOKDB4MWY2MjFlYzMsIDB4N2I3M2NlZjEpLAotICAgICAgICAgVE9CTigw
eDZhZWNkNjI3LCAweDM3MzM4NjE1KSwgVE9CTigweDE2MjA4MmFiLCAweDAxZDhlZGY2KSwKLSAg
ICAgICAgIFRPQk4oMHg4MzNhODExOSwgMHgxOWU4NmI2NiksIFRPQk4oMHg2MDIzYTI1MSwgMHhk
Mjk5YjVkYiksCi0gICAgICAgICBUT0JOKDB4ZjViYjBjM2EsIDB4YmJmMDRiODkpLCBUT0JOKDB4
NjczNWViNjksIDB4YWU3NDlhNDQpLAotICAgICAgICAgVE9CTigweGQwZTA1OGM1LCAweDQ3MTNk
ZTNiKSwgVE9CTigweGZkZjI1OTNlLCAweDJjM2Q0Y2NkKSwKLSAgICAgICAgIFRPQk4oMHgxYjhm
NDE0ZSwgMHhmZGQyMzY2NyksIFRPQk4oMHhkZDUyYWFjYSwgMHhmYTIwMTVlZSksCi0gICAgICAg
ICBUT0JOKDB4M2UzMWI1MTcsIDB4YmQ5NjI1ZmYpLCBUT0JOKDB4NWVjOTMyMmQsIDB4OGRiNTkx
OGMpLAotICAgICAgICAgVE9CTigweGJjNzNhYzg1LCAweGE5NmY1Mjk0KSwgVE9CTigweDgyYWE1
YmYzLCAweDYxYTA2NjZhKSwKLSAgICAgICAgIFRPQk4oMHg0OTc1NTgxMCwgMHhiZjA4YWM0Miks
IFRPQk4oMHhkMjFjZGZkNSwgMHg4OTFjZWRmYyksCi0gICAgICAgICBUT0JOKDB4OTE4Y2I1N2Is
IDB4NjdmOGJlMTApLCBUT0JOKDB4MzY1ZDFhN2MsIDB4NTZmZmE3MjYpLAotICAgICAgICAgVE9C
TigweDI0MzVjNTA0LCAweDY1MzJkZTkzKSwgVE9CTigweGMwZmM1ZTEwLCAweDI2NzRjZDAyKSwK
LSAgICAgICAgIFRPQk4oMHg2ZTUxZmNmOCwgMHg5Y2JiYjE0MiksIFRPQk4oMHgxZDQzNmU1YSwg
MHhhZmM1MDY5MiksCi0gICAgICAgICBUT0JOKDB4NzY2YmZmZmYsIDB4M2ZiY2FlMjIpLCBUT0JO
KDB4MzE0OGMyZmQsIDB4ZmQ1NWQzYjgpLAotICAgICAgICAgVE9CTigweDUyYzdmZGM5LCAweDIz
MzIyMmZhKSwgVE9CTigweDg5ZmYxMDkyLCAweGU0MTlmYjZiKSwKLSAgICAgICAgIFRPQk4oMHgz
Y2Q2ZGI5OSwgMHgyNTI1NDk3NyksIFRPQk4oMHgyZTg1YTE2MSwgMHgxY2YxMmNhNyksCi0gICAg
ICAgICBUT0JOKDB4YWRkMjU0N2MsIDB4ZGM4MTBiYzkpLCBUT0JOKDB4ZWEzZjQ1OGYsIDB4OWQy
NTdjMjIpLAotICAgICAgICAgVE9CTigweDY0MmMxZmJlLCAweDI3ZDZiMTliKSwgVE9CTigweGVk
MDdlNmI1LCAweDE0MDQ4MWE2KSwKLSAgICAgICAgIFRPQk4oMHg2YWRhMWQ0MiwgMHg4NmQyZTBm
OCksIFRPQk4oMHhlNTkyMDEyMiwgMHgwZThhOWZkNSksCi0gICAgICAgICBUT0JOKDB4MDJjOTM2
YWYsIDB4NzA4YzFiNDkpLCBUT0JOKDB4NjBmMzBmZWUsIDB4MmI0YmZhZmYpLAotICAgICAgICAg
VE9CTigweDY2MzdhZDA2LCAweDg1OGU2YTYxKSwgVE9CTigweGNlNGM3NzY3LCAweDNmZDM3NGQw
KSwKLSAgICAgICAgIFRPQk4oMHgzOWQ1NGIyZCwgMHg3MTg4ZGVmYiksIFRPQk4oMHhhOGM5ZDI1
MCwgMHhmNTZhNmI2NiksCi0gICAgICAgICBUT0JOKDB4NThmYzBmNWUsIDB4YjI0ZmUxZGMpLCBU
T0JOKDB4OWVhZjlkZWUsIDB4NmI3M2YyNGMpLAotICAgICAgICAgVE9CTigweGE5MGQ1ODhiLCAw
eDMzNjUwNzA1KSwgVE9CTigweGRlNWI2MmM1LCAweGFmMmVjNzI5KSwKLSAgICAgICAgIFRPQk4o
MHg1YzcyY2ZhZSwgMHhkM2MyYjM2ZSksIFRPQk4oMHg4NjhjMTlkNSwgMHgwMzQ0MzVkYSksCi0g
ICAgICAgICBUT0JOKDB4ODg2MDVmOTMsIDB4ZTE3ZWUxNDUpLCBUT0JOKDB4YWE2MGM0ZWUsIDB4
NzdhNWQ1YjEpLAotICAgICAgICAgVE9CTigweGJjZjViZmQyLCAweDNiNjBjNDcyKSwgVE9CTigw
eGFmNGVmMTNjLCAweGViMWQzMDQ5KSwKLSAgICAgICAgIFRPQk4oMHgzNzNmNDRmYywgMHhlMTM4
OTVjOSksIFRPQk4oMHhmMjliMzgyZiwgMHgwY2JjOTgyMiksCi0gICAgICAgICBUT0JOKDB4MWJm
Y2I4NTMsIDB4NzNlZmFlZjYpLCBUT0JOKDB4Y2Y1NmFjOWMsIDB4YThjOTZmNDApLAotICAgICAg
ICAgVE9CTigweGQ3YWRmMTA5LCAweDdhMTkxZTI0KSwgVE9CTigweDk4MDM1ZjQ0LCAweGJmOGE4
ZGMyKSwKLSAgICAgICAgIFRPQk4oMHhmNDBhNzFiOSwgMHgxZTc1MGM4NCksIFRPQk4oMHhjNTdm
N2IwYywgMHg1ZGM2YzQ2OSksCi0gICAgICAgICBUT0JOKDB4NDlhMGU3OWMsIDB4NmZiYzE5YzEp
LCBUT0JOKDB4NmIwZjU4ODksIDB4YTQ4ZWJkYjgpLAotICAgICAgICAgVE9CTigweDVkM2ZkMDg0
LCAweGEwN2M0ZTlmKSwgVE9CTigweGMzODMwMTExLCAweGFiMjdkZTE0KSwKLSAgICAgICAgIFRP
Qk4oMHgwZTQ5MjlmZSwgMHgzM2UwOGRjYyksIFRPQk4oMHhmNGE1YWQyNCwgMHg0MGJiNzNhMyks
Ci0gICAgICAgICBUT0JOKDB4ZGU4NmMyYmYsIDB4NDkwZjk3Y2EpLCBUT0JOKDB4Mjg4ZjA5YzYs
IDB4NjdhMWNlMTgpLAotICAgICAgICAgVE9CTigweDM2NGJiODg2LCAweDE4NDQ0NzhkKSwgVE9C
TigweDc4NDBmYTQyLCAweGNlZWRiMDQwKSwKLSAgICAgICAgIFRPQk4oMHgxMjY5ZmRkMiwgMHg1
YTYzMWIzNyksIFRPQk4oMHg5NDc2MWYxZSwgMHhhNDdjOGI3ZCksCi0gICAgICAgICBUT0JOKDB4
ZmMwYzJlMTcsIDB4NDgxYzYyNjYpLCBUT0JOKDB4ODVlMTZlYTIsIDB4M2RhYTVmYTcpLAotICAg
ICAgICAgVE9CTigweGNjZDg2MDMzLCAweDkyNDkxMDQ4KSwgVE9CTigweDBjMmY2OTYzLCAweGY0
ZDQwMmQ3KSwKLSAgICAgICAgIFRPQk4oMHg2MzM2ZjdkZiwgMHhkZjZhODY1YyksIFRPQk4oMHgw
YTJhNDYzYywgMHhiNWMwMmE4NyksCi0gICAgICAgICBUT0JOKDB4YjBlMjliZTcsIDB4YmYyZjEy
ZWUpLCBUT0JOKDB4ZjBhMjIwMDIsIDB4NjZiYWQ5ODgpLAotICAgICAgICAgVE9CTigweDI3Zjg3
ZTAzLCAweDkxMjNjMWQ3KSwgVE9CTigweDIxNjY5YzU1LCAweDMyOGE4Yzk4KSwKLSAgICAgICAg
IFRPQk4oMHgxODZiOTgwMywgMHg5MmYxNDUyOSksIFRPQk4oMHhkM2QwNTZjYywgMHg2Mzk1NGRm
MyksCi0gICAgICAgICBUT0JOKDB4MmYwM2ZkNTgsIDB4MTc1YTQ2ZjYpLCBUT0JOKDB4NjNlMzRl
YmUsIDB4MTE1NTg1NTgpLAotICAgICAgICAgVE9CTigweGUxM2ZlZGVlLCAweDViODBjZmE1KSwg
VE9CTigweGU4NzJhMTIwLCAweGQ0MDFkYmQxKSwKLSAgICAgICAgIFRPQk4oMHg1MjY1NzYxNiwg
MHhlOGE5ZDY2NyksIFRPQk4oMHhiYzhkYTRiNiwgMHhlMDhkNjY5MyksCi0gICAgICAgICBUT0JO
KDB4MzcwZmI5YmIsIDB4MWI3MDNlNzUpLCBUT0JOKDB4Njc3M2IxODYsIDB4ZDQzMzgzNjMpLAot
ICAgICAgICAgVE9CTigweDE4ZGFkMzc4LCAweGVjZWY3YmZmKSwgVE9CTigweGFhYzc4N2VkLCAw
eDk5NTY3N2RhKSwKLSAgICAgICAgIFRPQk4oMHg0ODAxZWE4YiwgMHgwNDM3MTY0YiksIFRPQk4o
MHhmNDMwYWQyMCwgMHg3M2ZlNzk1ZSksCi0gICAgICAgICBUT0JOKDB4YjE2NDE1NGQsIDB4OGVl
NWViNzMpLCBUT0JOKDB4MDg4NGVjZDgsIDB4MTA4ZjdjMGUpLAotICAgICAgICAgVE9CTigweDBl
NmVjMDk2LCAweDVmNTIwNjk4KSwgVE9CTigweDY0MDYzMWZlLCAweDQ0ZjdiOGQ5KSwKLSAgICAg
ICAgIFRPQk4oMHg5MmZkMzRmYywgMHhhMzVhNjhiOSksIFRPQk4oMHg5YzVhNGI2NiwgMHg0ZDQw
Y2Y0ZSksCi0gICAgICAgICBUT0JOKDB4OTQ5NDU0YmYsIDB4ODBiNjc4M2QpLCBUT0JOKDB4ODBl
NzAxZmUsIDB4M2EzMjBhMTApLAotICAgICAgICAgVE9CTigweDhkMWE1NjRhLCAweDFhMGEzOWIy
KSwgVE9CTigweDE0MzZkNTNkLCAweDMyMDU4N2RiKSwKLSAgICAgICAgIFRPQk4oMHhmNTA5NmU2
ZCwgMHg2NTU2YzM2MiksIFRPQk4oMHhiYzIzYTNjMCwgMHhlMjQ1NWQ3ZSksCi0gICAgICAgICBU
T0JOKDB4M2E3YWVlNTQsIDB4ODA3MjMwZjkpLCBUT0JOKDB4OWJhMWNmYTYsIDB4MjJhZTgyZmQp
LAotICAgICAgICAgVE9CTigweDgzM2EwNTdhLCAweDk5YzVkNzA2KSwgVE9CTigweDhiZTg1ZjRi
LCAweDg0MjMxNWM5KSwKLSAgICAgICAgIFRPQk4oMHhkMDgzMTc5YSwgMHg2NmE3MmYxMiksIFRP
Qk4oMHgyZmM3N2Q1ZCwgMHhjZGNjNzNjZCksCi0gICAgICAgICBUT0JOKDB4MjJiODhhODAsIDB4
NTYxNmVlMzApLCBUT0JOKDB4ZmIwOTU0OGYsIDB4ZTdhYjEwODMpLAotICAgICAgICAgVE9CTigw
eDhhZDZhYjBkLCAweDUxMTI3MGNkKSwgVE9CTigweDYxZjZjNTdhLCAweDY5MjRkOWFiKSwKLSAg
ICAgICAgIFRPQk4oMHhhMGY3YmY3MiwgMHg5MGFlY2IwOCksIFRPQk4oMHg4NDlmODdjOSwgMHgw
ZGY3ODRhNCksCi0gICAgICAgICBUT0JOKDB4MjdjNzljMTUsIDB4Y2ZhZjFkMDMpLCBUT0JOKDB4
YmJmOWY2NzUsIDB4YzQ2M2ZhY2UpLAotICAgICAgICAgVE9CTigweDkxNTAyYzY1LCAweDc2NWJh
NTQzKSwgVE9CTigweDE4Y2UzY2FjLCAweDQyZWE2MGRkKSwKLSAgICAgICAgIFRPQk4oMHhlNWNl
ZTZhYywgMHg2ZTQzZWNiMyksIFRPQk4oMHg2M2U0ZTkxMCwgMHg2OGYyYWVlYiksCi0gICAgICAg
ICBUT0JOKDB4MjYyMzRmYTMsIDB4Yzg1OTMyZWUpLCBUT0JOKDB4OTY4ODNlOGIsIDB4NGM5MGM0
NGQpLAotICAgICAgICAgVE9CTigweDI5YjllNzM4LCAweGExOGE1MGY2KSwgVE9CTigweGJmYzYy
YjJhLCAweDNmMDQyMGRmKSwKLSAgICAgICAgIFRPQk4oMHhkMjJhN2Q5MCwgMHg2ZDNlMWZhOSks
IFRPQk4oMHgxNzExNTYxOCwgMHhmZTA1YjhhMyksCi0gICAgICAgICBUT0JOKDB4MmEwYzk5MjYs
IDB4YmIyYjljMDEpLCBUT0JOKDB4YzczOWZjYzYsIDB4ZTA3ZTc2YTIpLAotICAgICAgICAgVE9C
TigweDU0MGU5MTU3LCAweDE2NWU0MzlhKSwgVE9CTigweDA2MzUzYTYyLCAweDZhOTA2M2Q4KSwK
LSAgICAgICAgIFRPQk4oMHg4NGQ5NTU5NCwgMHg2MWU5MjdhMyksIFRPQk4oMHgwMTNiOWIyNiwg
MHhlMmUwYmU3ZiksCi0gICAgICAgICBUT0JOKDB4NGZlYWVjM2IsIDB4OTczNDk3ZjEpLCBUT0JO
KDB4MTVjMGY5NGUsIDB4MDkzZWJjMmQpLAotICAgICAgICAgVE9CTigweDZhZjVmMjI3LCAweDMz
YWYwNTgzKSwgVE9CTigweDBjMmFmMjA2LCAweGM2MWYzMzQwKSwKLSAgICAgICAgIFRPQk4oMHhk
MjVkYmRmMSwgMHg0NDU3Mzk3YyksIFRPQk4oMHgyZThlZDAxNywgMHhjYWJjYmFlMCksCi0gICAg
ICAgICBUT0JOKDB4ZTMwMTA5MzgsIDB4YzI4MTUzMDYpLCBUT0JOKDB4YmFhOTkzMzcsIDB4ZThj
NmNkNjgpLAotICAgICAgICAgVE9CTigweDA4NTEzMTgyLCAweDNiMGVjN2RlKSwgVE9CTigweDFl
MWI4MjJiLCAweDU4ZGYwNWRmKSwKLSAgICAgICAgIFRPQk4oMHg1YzE0ODQyZiwgMHhhNWMzYjY4
MyksIFRPQk4oMHg5OGZlOTc3ZSwgMHgzZWJhMzRjZSksCi0gICAgICAgICBUT0JOKDB4ZmQyMzE2
YzIsIDB4MGQ1ZTg4NzMpLCBUT0JOKDB4ZTQ4ZDgzOWEsIDB4YmQwZDQyN2QpLAotICAgICAgICAg
VE9CTigweDQ5NWIyMjE4LCAweDYyM2ZjOTYxKSwgVE9CTigweDI0ZWU1NmU3LCAweGI0NmZiYTVl
KSwKLSAgICAgICAgIFRPQk4oMHg5MTg0YTU1YiwgMHg5MWU0ZGU1OCksIFRPQk4oMHhhNzQ4OGNh
NSwgMHhkZmRlYTI4OCksCi0gICAgICAgICBUT0JOKDB4YTcyMzg2MmUsIDB4YThkY2M5NDMpLCBU
T0JOKDB4OTJkNzYyYjIsIDB4ODQ5ZGMwZmMpLAotICAgICAgICAgVE9CTigweDNjNDQ0YTEyLCAw
eDA5MWZmNGE5KSwgVE9CTigweDU4MTExM2ZhLCAweDBjYWRhMjc0KSwKLSAgICAgICAgIFRPQk4o
MHhiOWRlMGE0NSwgMHgzMGQ4ZWFlMiksIFRPQk4oMHg1ZTBmY2Q4NSwgMHhkZjZiNDFlYSksCi0g
ICAgICAgICBUT0JOKDB4NjIzM2VhNjgsIDB4YzA5NGRiYjUpLCBUT0JOKDB4Yjc3ZDA2MmUsIDB4
ZDk2OGQ0MTApLAotICAgICAgICAgVE9CTigweDNlNzE5YmJjLCAweDU4YjMwMDJkKSwgVE9CTigw
eDY4ZTdkZDNkLCAweDNkYzQ5ZDU4KSwKLSAgICAgICAgIFRPQk4oMHg4ZDgyNTc0MCwgMHgwMTNh
NWU1OCksIFRPQk4oMHgyMTMxMTc0NywgMHgzYzllM2MxYiksCi0gICAgICAgICBUT0JOKDB4MGNi
MGEyYTcsIDB4N2M5OWI2YWIpLCBUT0JOKDB4NWM0OGEzYjMsIDB4YzJmODg4ZjIpfSwKLSAgICAg
ICAge1RPQk4oMHhjNzkxM2U5MSwgMHg5OTE3MjRmMyksIFRPQk4oMHg1ZWRhNzk5YywgMHgzOWNi
ZDY4NiksCi0gICAgICAgICBUT0JOKDB4ZGRiNTk1YzcsIDB4NjNkNGZjMWUpLCBUT0JOKDB4NmI2
M2I4MGIsIDB4YWM0ZmVkNTQpLAotICAgICAgICAgVE9CTigweDZlYTBmYzY5LCAweDdlNWZiNTE2
KSwgVE9CTigweDczNzcwOGJhLCAweGQwZjFjOTY0KSwKLSAgICAgICAgIFRPQk4oMHg5NjI4NzQ1
ZiwgMHgxMWE5MmNhNSksIFRPQk4oMHg2MWYzNzk1OCwgMHg5YTg2OTY3YSksCi0gICAgICAgICBU
T0JOKDB4OWFmMzliMmMsIDB4YWE2NjUwNzIpLCBUT0JOKDB4NzgzMjJmYTQsIDB4ZWZkMzI0ZWYp
LAotICAgICAgICAgVE9CTigweDNkMTUzMzk0LCAweGMzMjdiZDMxKSwgVE9CTigweDgxZDVmMjcx
LCAweDMxMjlkYWIwKSwKLSAgICAgICAgIFRPQk4oMHhjNzJlMGM0MiwgMHhmNDgwMjdmNSksIFRP
Qk4oMHhhYTQwY2RiYywgMHg4NTM2ZTcxNyksCi0gICAgICAgICBUT0JOKDB4ZjQ1YTY1N2EsIDB4
MmQzNjlkMGYpLCBUT0JOKDB4YjAzYmJmYzQsIDB4ZWE3Zjc0ZTYpLAotICAgICAgICAgVE9CTigw
eDQ2YThjNDE4LCAweDBkNzM4ZGVkKSwgVE9CTigweDZmMWE1YmIwLCAweGUwZGU1NzI5KSwKLSAg
ICAgICAgIFRPQk4oMHhmMTAyMzBiOSwgMHg4YmE4MTY3NSksIFRPQk4oMHgzMmM2ZjMwYywgMHgx
MTJiMzNkNCksCi0gICAgICAgICBUT0JOKDB4NzU1OTEyOWQsIDB4ZDhmZmZiNjIpLCBUT0JOKDB4
NmEyODFiNDcsIDB4YjQ1OWJmMDUpLAotICAgICAgICAgVE9CTigweDc3YzFiZDNhLCAweGZhM2I2
Nzc2KSwgVE9CTigweDA3MDliMzgwLCAweDc4Mjk5NzNhKSwKLSAgICAgICAgIFRPQk4oMHg4YzI2
YjIzMiwgMHhhMzMyNjUwNSksIFRPQk4oMHgzOGQ2OTI3MiwgMHhlZTFkNDFiZiksCi0gICAgICAg
ICBUT0JOKDB4MDQ1OTQ1M2UsIDB4ZmZlMzJhZmEpLCBUT0JOKDB4Y2U4MTQzYWQsIDB4N2NiM2Vh
ODcpLAotICAgICAgICAgVE9CTigweDkzMmVjMWZhLCAweDdlNmFiNjY2KSwgVE9CTigweDZjZDJk
MjMwLCAweDIyMjg2MjY0KSwKLSAgICAgICAgIFRPQk4oMHg0NTlhNDZmZSwgMHg2NzM2ZjhlZCks
IFRPQk4oMHg1MGJmMGQwMCwgMHg5ZWNhODViYiksCi0gICAgICAgICBUT0JOKDB4MGI4MjU4NTIs
IDB4ODc3YTIxZWMpLCBUT0JOKDB4MzAwNDE0YTcsIDB4MGY1MzdhOTQpLAotICAgICAgICAgVE9C
TigweDNmMWNiYTQwLCAweDIxYTlhNmEyKSwgVE9CTigweDUwODI0ZWVlLCAweDc2OTQzYzAwKSwK
LSAgICAgICAgIFRPQk4oMHhhMGRiZmNlYywgMHhmODNjYmE1ZCksIFRPQk4oMHhmOTUzODE0OCwg
MHg5M2I0ZjNjMCksCi0gICAgICAgICBUT0JOKDB4NjE3NDQxNjIsIDB4NDhmMjRkZDcpLCBUT0JO
KDB4NTMyMmQ2NGQsIDB4ZTRmYjA5ZGQpLAotICAgICAgICAgVE9CTigweDU3NDQ3Mzg0LCAweDNk
OTMyNWYzKSwgVE9CTigweGE5YmVmMmQwLCAweGYzNzFjYjg0KSwKLSAgICAgICAgIFRPQk4oMHg3
N2QyMTg4YiwgMHhhNjFlMzZjNSksIFRPQk4oMHhiYmQ2YTdkNywgMHhjNjAyZGY3MiksCi0gICAg
ICAgICBUT0JOKDB4YmEzYWE5MDIsIDB4OGY2MWJjMGIpLCBUT0JOKDB4ZjQ5MDg1ZWQsIDB4NmVk
MGI2YTEpLAotICAgICAgICAgVE9CTigweDhiYzYyNWQ2LCAweGFlNmU4Mjk4KSwgVE9CTigweDgz
MmIwYjFkLCAweGEyZTljMDFkKSwKLSAgICAgICAgIFRPQk4oMHhhMzM3YzQ0NywgMHhmMWYwY2Vk
MSksIFRPQk4oMHg4MDBjYzc5MywgMHg5NDkyZGQyYiksCi0gICAgICAgICBUT0JOKDB4NGI5MzE1
MWQsIDB4YmVhMDhlZmEpLCBUT0JOKDB4ODIwY2YzZjgsIDB4ZGUwYTc0MWUpLAotICAgICAgICAg
VE9CTigweGZmMTk4MmRjLCAweDFjMGY3ZDEzKSwgVE9CTigweGVmOTIxOTYwLCAweDg0ZGRlNmNh
KSwKLSAgICAgICAgIFRPQk4oMHgxYWQ3ZDk3MiwgMHg0NWY5NmVlMyksIFRPQk4oMHgzMTljOGRi
ZSwgMHgyOWRlYTBjNyksCi0gICAgICAgICBUT0JOKDB4ZDNlYTM4NzEsIDB4N2I4MmI5OWIpLCBU
T0JOKDB4NzU5MjJkNGQsIDB4NDcwZWI2MjQpLAotICAgICAgICAgVE9CTigweDhmNjZlYzU0LCAw
eDNiOTVkNDY2KSwgVE9CTigweDY2ZTY3M2NjLCAweGJlZTFlMzQ2KSwKLSAgICAgICAgIFRPQk4o
MHg2YWZlNjdjNCwgMHhiNWYyYjg5YSksIFRPQk4oMHgzZGU5YzFlNiwgMHgyOTBlNWNkMyksCi0g
ICAgICAgICBUT0JOKDB4OGMyNzhiYjYsIDB4MzEwYTJhZGEpLCBUT0JOKDB4NDIwZmEzODQsIDB4
MGJkYjMyM2IpLAotICAgICAgICAgVE9CTigweDBhZTFkNjNiLCAweDBlYjkxOWIwKSwgVE9CTigw
eGQ3NGVlNTFkLCAweGE3NGI5NjIwKSwKLSAgICAgICAgIFRPQk4oMHgzOTU0NThkMCwgMHhhNjc0
MjkwYyksIFRPQk4oMHgzMjRjOTMwZiwgMHg0NjIwYTUxMCksCi0gICAgICAgICBUT0JOKDB4MmQx
ZjRkMTksIDB4ZmJhYzI3ZDQpLCBUT0JOKDB4NDA4NmU4Y2EsIDB4OWJlZGVlYWMpLAotICAgICAg
ICAgVE9CTigweDBjZGQyMTFiLCAweDliNjc5YWI4KSwgVE9CTigweDU5NzAxNjdkLCAweDcwOTBm
ZWM0KSwKLSAgICAgICAgIFRPQk4oMHgzNDIwZjJjOSwgMHhmYWYxZmM2MyksIFRPQk4oMHg2MTZk
MzMzYSwgMHgzMjhjOGJiNCksCi0gICAgICAgICBUT0JOKDB4N2Q2NTM2NGMsIDB4NTdmMWZlNGEp
LCBUT0JOKDB4OTM0M2U4NzcsIDB4NTVlNWM3M2EpLAotICAgICAgICAgVE9CTigweDU3OTUxNzZi
LCAweGU5NzBlNzhjKSwgVE9CTigweGEzNmNjZWJmLCAweDYwNTMzNjI3KSwKLSAgICAgICAgIFRP
Qk4oMHhmYzdjNzM4MCwgMHgwOWNkZmMxYiksIFRPQk4oMHhiMzlhMmFmZSwgMHhiM2ZlYzMyNiks
Ci0gICAgICAgICBUT0JOKDB4YjdmZjFiYTEsIDB4NjIyNDQwOGEpLCBUT0JOKDB4Y2M4NTZlOTIs
IDB4MjQ3Y2ZjNWUpLAotICAgICAgICAgVE9CTigweDAxZjEwMmU3LCAweGMxOGJjNDkzKSwgVE9C
TigweDQ2MTNhYjc0LCAweDIwOTFjNzI3KSwKLSAgICAgICAgIFRPQk4oMHhhYTI1ZTg5YywgMHhj
NDIwYmYyYiksIFRPQk4oMHgwMGE1MzE3NiwgMHg5MDMzN2VjMiksCi0gICAgICAgICBUT0JOKDB4
ZDJiZTlmNDMsIDB4N2QwMjVmYzcpLCBUT0JOKDB4MzMxNmZiODUsIDB4NmU2ZmUzZGMpLAotICAg
ICAgICAgVE9CTigweDI3NTIwYWY1LCAweDlhYzUwODE0KSwgVE9CTigweGZkZjk1ZTc4LCAweDlh
OGU0MjIzKSwKLSAgICAgICAgIFRPQk4oMHhiN2U3ZGYyYSwgMHg1NmJlYzVhMCksIFRPQk4oMHhm
NzAyMmY3ZCwgMHhkZjE1OWU1ZCksCi0gICAgICAgICBUT0JOKDB4OTNlZWVhYjEsIDB4Y2FjMWZl
OGYpLCBUT0JOKDB4ODA0MDE4OGMsIDB4Mzc0NTExNjgpLAotICAgICAgICAgVE9CTigweDdlZThh
YThhLCAweGQ5NjdkY2U2KSwgVE9CTigweGZhMGU3OWU3LCAweDNhYmM5Mjk5KSwKLSAgICAgICAg
IFRPQk4oMHg2NzMzMmNmYywgMHgyMDY0Y2ZkMSksIFRPQk4oMHgzMzljMzFkZSwgMHhiMDY1MTkz
NCksCi0gICAgICAgICBUT0JOKDB4NzE5YjI4ZDUsIDB4MmEzYmNiZWEpLCBUT0JOKDB4ZWU3NGM4
MmIsIDB4OWQ2YWU1YzYpLAotICAgICAgICAgVE9CTigweDA5MjdkMDVlLCAweGJhZjI4ZWU2KSwg
VE9CTigweDgyY2VjZjJjLCAweDlkNzE5MDI4KSwKLSAgICAgICAgIFRPQk4oMHgwYjBkMzUzZSwg
MHhkZGIzMDI4OSksIFRPQk4oMHhmZTRiYjk3NywgMHhmZGRiMmUyOSksCi0gICAgICAgICBUT0JO
KDB4YmI1YmI5OTAsIDB4NjQwYmZkOWUpLCBUT0JOKDB4ZDIyNmUyNzcsIDB4ODJmNjIxMDgpLAot
ICAgICAgICAgVE9CTigweDRiZjAwOTg1LCAweDAyZmZkZDU2KSwgVE9CTigweDc3NTY3NThhLCAw
eDJjYTFiMWI1KSwKLSAgICAgICAgIFRPQk4oMHhjMzJiNjJhMywgMHg1Mjg1ZmU5MSksIFRPQk4o
MHhlZGJjNTQ2YSwgMHg4YzljZDE0MCksCi0gICAgICAgICBUT0JOKDB4MWU0N2EwMTMsIDB4YWY1
Y2IwMDgpLCBUT0JOKDB4YmNhN2U3MjAsIDB4MDczY2U4ZjIpLAotICAgICAgICAgVE9CTigweGUx
MGIyYWI4LCAweDE3YTkxY2FlKSwgVE9CTigweGI4OWFhYjY1LCAweDA4ZTI3ZjYzKSwKLSAgICAg
ICAgIFRPQk4oMHg3YjMwNzRhNywgMHhkYmEzZGRmOSksIFRPQk4oMHgxYzIwY2UwOSwgMHgzMzBj
Mjk3MiksCi0gICAgICAgICBUT0JOKDB4NmI5OTE3YjQsIDB4NWZjZjdlMzMpLCBUT0JOKDB4ZTY3
OTM3NDMsIDB4OTQ1Y2ViNDIpLAotICAgICAgICAgVE9CTigweDE4ZmMyMjE1LCAweDVjNjMzZDE5
KSwgVE9CTigweGFkMWFkYjNjLCAweGM3NDg1NDc0KSwKLSAgICAgICAgIFRPQk4oMHg2NDZmOTY3
OSwgMHg2NDI0YzQ5YiksIFRPQk4oMHhmODg4ZGZlOCwgMHg2N2MyNDFjOSksCi0gICAgICAgICBU
T0JOKDB4ZTEyZDRiOTMsIDB4MjRmNjhiNDkpLCBUT0JOKDB4OWE2YjYyZDgsIDB4YTU3MWRmMjAp
LAotICAgICAgICAgVE9CTigweDgxYjRiMjZkLCAweDE3OTQ4M2NiKSwgVE9CTigweDY2NmY5NjMy
LCAweDk1MTFmYWUyKSwKLSAgICAgICAgIFRPQk4oMHhkMjgxYjNlNCwgMHhkNTNhYTUxZiksIFRP
Qk4oMHg3Zjk2YTc2NSwgMHg3ZjNkYmQxNiksCi0gICAgICAgICBUT0JOKDB4YTdmOGI1YmYsIDB4
MDc0YTMwY2UpLCBUT0JOKDB4ZDdmNTIxMDcsIDB4MDA1YTMyZTYpLAotICAgICAgICAgVE9CTigw
eDZmOWUwOTA3LCAweDUwMjM3ZWQ0KSwgVE9CTigweDJmMjFkYTQ3LCAweDgwOTZmYTJiKSwKLSAg
ICAgICAgIFRPQk4oMHhmM2UxOWNiNCwgMHhlZWM4NjNhMCksIFRPQk4oMHhkMThmNzdmZCwgMHg5
NTI3NjIwYSksCi0gICAgICAgICBUT0JOKDB4OTUwNWM4MWMsIDB4NDA3YzFjZjgpLCBUT0JOKDB4
OTk5OGRiNGUsIDB4MWI2ZWMyODQpLAotICAgICAgICAgVE9CTigweDdlMzM4OWU1LCAweGMyNDdk
NDRkKSwgVE9CTigweDEyNTA3MTQxLCAweDNmNGYzZDgwKSwKLSAgICAgICAgIFRPQk4oMHhkNGJh
MDExMCwgMHg0YTc4YTZjNyksIFRPQk4oMHgzMTI4NzRhMCwgMHg3Njc3MjBiZSksCi0gICAgICAg
ICBUT0JOKDB4ZGVkMDU5YTYsIDB4NzU5NDQzNzApLCBUT0JOKDB4ZDYxMjNkOTAsIDB4M2IyYzBi
ZGQpLAotICAgICAgICAgVE9CTigweGE1NmI3MTdiLCAweDUxYzEwOGUzKSwgVE9CTigweDliYjc5
NDBlLCAweDA3MDYyM2U5KSwKLSAgICAgICAgIFRPQk4oMHg3OTRlMmQ1OSwgMHg4NGFjMDY2Yyks
IFRPQk4oMHhmNTk1NGE5MiwgMHhlNjhjNjlhMCksCi0gICAgICAgICBUT0JOKDB4MjhjNTI0NTgs
IDB4NGZkOTlkY2MpLCBUT0JOKDB4NjBlNjM5ZmMsIDB4YjEwMTI1MTcpLAotICAgICAgICAgVE9C
TigweGMyZTYwMTI1LCAweDdkZTc5MjQ4KSwgVE9CTigweGU5ZWY2NDA0LCAweGYxMmZjNmQ3KSwK
LSAgICAgICAgIFRPQk4oMHg0YzRmMjgwOCwgMHgyYTNiNWQzMiksIFRPQk4oMHg4NjVhZDMyZSwg
MHhjNzY4ZWI4YSksCi0gICAgICAgICBUT0JOKDB4YWMwMjMzMWIsIDB4MTNmYjcwYjYpLCBUT0JO
KDB4MDM3YjQ0YzEsIDB4OTU1OTliMjcpLAotICAgICAgICAgVE9CTigweDFhODYwZmM0LCAweDYw
YmQwODJjKSwgVE9CTigweGEyZTI1NzQ1LCAweGM5ODBjZDAxKSwKLSAgICAgICAgIFRPQk4oMHhl
ZTMzODdhOCwgMHgxZGEwMjYzZSksIFRPQk4oMHg5MzFiZmI5NSwgMHgyZDEwZjNkNiksCi0gICAg
ICAgICBUT0JOKDB4NWI2ODcyNzAsIDB4YTFmMjRhMzIpLCBUT0JOKDB4ZjE0MGU2NWQsIDB4Y2E0
OTRiODYpLAotICAgICAgICAgVE9CTigweDRmNGRkZjkxLCAweGIyZjFhYzdhKSwgVE9CTigweGY5
OWVhYWJiLCAweDc2MGZlZTI3KSwKLSAgICAgICAgIFRPQk4oMHg1N2Y0MDA4YSwgMHg0OWMyMjhl
NSksIFRPQk4oMHgwOTBiZTQ0MCwgMHgxY2Y3MTNiYiksCi0gICAgICAgICBUT0JOKDB4YWM5MWZi
ZTQsIDB4NTAwNGYwMjIpLCBUT0JOKDB4ZDgzOGMyYzIsIDB4NTY5ZTFhZjYpLAotICAgICAgICAg
VE9CTigweGQ2YzdkMjBiLCAweDBmMWRhYWE1KSwgVE9CTigweGFhMDYzYWMxLCAweDFiYmIwMmMw
KSwKLSAgICAgICAgIFRPQk4oMHgwOTM4YTQyMiwgMHg1OTU1OGE3OCksIFRPQk4oMHg1MzQzYzY2
OSwgMHg4NDM1ZGEyZiksCi0gICAgICAgICBUT0JOKDB4OTZmNjdiMTgsIDB4MDM0NDEwZGMpLCBU
T0JOKDB4N2NjMWU0MjQsIDB4ODQ1MTA4MDQpLAotICAgICAgICAgVE9CTigweDg2YTE1NDNmLCAw
eDE2ZGZiYjdkKSwgVE9CTigweDkyMWZhOTQyLCAweDViNWJkNTkyKSwKLSAgICAgICAgIFRPQk4o
MHg5ZGNjY2I2ZSwgMHhiMzNkZDAzYyksIFRPQk4oMHg4NTgxZGRkOSwgMHhiODQzZjUxZSksCi0g
ICAgICAgICBUT0JOKDB4NTQ5MzVmY2IsIDB4ODFkNzNjOWUpLCBUT0JOKDB4NmQwN2U5NzksIDB4
MGE1ZTk3YWIpLAotICAgICAgICAgVE9CTigweDRkYzdiMzBhLCAweGNmM2E2YmFiKSwgVE9CTigw
eDE0N2FiMWYzLCAweDE3MGJlZTExKSwKLSAgICAgICAgIFRPQk4oMHgwYWFmOGUzZCwgMHg5ZmFm
ZGVlNCksIFRPQk4oMHhmYWIzZGJjYiwgMHg1MzhhOGI5NSksCi0gICAgICAgICBUT0JOKDB4NDA1
ZGY0YjMsIDB4NmVmMTM4NzEpLCBUT0JOKDB4ZjFmNGU5Y2IsIDB4MDg4ZDVhNDkpLAotICAgICAg
ICAgVE9CTigweDliY2QyNGQzLCAweDY2YjMzZjFkKSwgVE9CTigweDNiOTdiODIwLCAweDVjZTQ0
NWMwKSwKLSAgICAgICAgIFRPQk4oMHhlMjkyNjU0OSwgMHhiYTkzZmY2MSksIFRPQk4oMHhkOWMz
NDFjZSwgMHg0ZGFmZTYxNiksCi0gICAgICAgICBUT0JOKDB4ZmIzMGE3NmUsIDB4MTZlZmI2ZjMp
LCBUT0JOKDB4ZGYyNGI4Y2EsIDB4NjA1Yjk1M2MpLAotICAgICAgICAgVE9CTigweDhiZDUyYWZl
LCAweGMyZmZmYjlmKSwgVE9CTigweGJiYWM1ZmY3LCAweGUxOWQwYjk2KSwKLSAgICAgICAgIFRP
Qk4oMHg0M2MwMWI4NywgMHg0NTlhZmNjZCksIFRPQk4oMHg2YmQ0NTE0MywgMHhiNzQzMjY1Miks
Ci0gICAgICAgICBUT0JOKDB4ODQ3MzQ1MzAsIDB4NTViNWQ3OGUpLCBUT0JOKDB4ODEwODhmZGIs
IDB4MTU1NGJhN2QpLAotICAgICAgICAgVE9CTigweGFkYTBhNTJjLCAweDFlMjY5Mzc1KSwgVE9C
TigweGY5ZjAzN2M0LCAweDJkYzVlYzEwKSwKLSAgICAgICAgIFRPQk4oMHhjMDY2MDYwNywgMHg5
NGJmYmMxMSksIFRPQk4oMHhjMGE2MzBiYiwgMHhjOWM0MGQyZiksCi0gICAgICAgICBUT0JOKDB4
NWVmYzc5N2UsIDB4YWI2NGMzMWUpLCBUT0JOKDB4ZmZkYjFkYWIsIDB4NzQ1MDcxNDQpLAotICAg
ICAgICAgVE9CTigweGY2MTI0Mjg3LCAweDFjYTY3OTBjKSwgVE9CTigweGU5NjA5ZDgxLCAweGU2
OWJmMWJmKSwKLSAgICAgICAgIFRPQk4oMHhkYjg5ODU5NSwgMHgwMGQyNGZjOSksIFRPQk4oMHg5
Yzc1MDMzMywgMHhlNTFmYjQxNyksCi0gICAgICAgICBUT0JOKDB4NTE4MzBhOTEsIDB4ZmVmN2Ji
ZGUpLCBUT0JOKDB4MGNlNjdkYzgsIDB4OTQ1ZjU4NWMpLAotICAgICAgICAgVE9CTigweDlhNzMw
ZWQ0LCAweDQ3NjNlYjUwKSwgVE9CTigweDI0YTBlMjIxLCAweGMxYWIwZDY2KSwKLSAgICAgICAg
IFRPQk4oMHg2NDNiNjM5MywgMHg2NDg3NDhmMyksIFRPQk4oMHgxOTgyZGFhMSwgMHg2ZDNjNjI5
MSksCi0gICAgICAgICBUT0JOKDB4NmYwMGE5ZjcsIDB4OGJiYzU1NDkpLCBUT0JOKDB4N2ExNzgz
ZTEsIDB4N2YzNjM4NGUpLAotICAgICAgICAgVE9CTigweGU4MzQ2MzIzLCAweGRlOTc3ZjUwKSwg
VE9CTigweDkxYWI2ODhkLCAweGIyNDU1MDJhKSwKLSAgICAgICAgIFRPQk4oMHgzMzFhYjZiNSwg
MHg2ZDBiZGQ2NiksIFRPQk4oMHgwYTZlZjMyZSwgMHg2NGI3MTIyOSksCi0gICAgICAgICBUT0JO
KDB4MTAyODE1MGUsIDB4ZmU3YzM1MmYpLCBUT0JOKDB4MjdlMDQzNTAsIDB4Y2U3YjM5ZDMpLAot
ICAgICAgICAgVE9CTigweDJhM2M4YWNkLCAweGMxMDcwYzgyKSwgVE9CTigweGZiMjAzNGQzLCAw
eDgwYzlmZWVmKSwKLSAgICAgICAgIFRPQk4oMHgyZDcyOTYyMSwgMHg3MDlmMzcyOSksIFRPQk4o
MHg4ZGYyOTBiZiwgMHg2MmNiNDU0OSksCi0gICAgICAgICBUT0JOKDB4MDJmOTlmMzMsIDB4ZmMy
ZTQzMjYpLCBUT0JOKDB4M2IzMDA3NmQsIDB4NWVkZGYwMzIpLAotICAgICAgICAgVE9CTigweGJi
MjFmOGNmLCAweDBjNjUyZmI1KSwgVE9CTigweDMxNGZiNDllLCAweGVkOTFjZjdiKSwKLSAgICAg
ICAgIFRPQk4oMHhhMDEzZWNhNSwgMHgyZjcwMDc1MCksIFRPQk4oMHgyYjllM2MyMywgMHg3MTJh
NDU3NSksCi0gICAgICAgICBUT0JOKDB4ZTUzNTU1NTcsIDB4YWYzMGZiYjApLCBUT0JOKDB4MWFk
YTM1MTYsIDB4N2M3N2U3NzEpLAotICAgICAgICAgVE9CTigweDQ1ZjZlY2IyLCAweDdiMTM1Njcw
KSwgVE9CTigweGU4NWQxOWRmLCAweDdjZmMyMDJlKSwKLSAgICAgICAgIFRPQk4oMHgwZjFiNTBj
NywgMHg1OGQxYmU5ZiksIFRPQk4oMHg1ZWJmMmMwYSwgMHhlYWQyZTM0NCksCi0gICAgICAgICBU
T0JOKDB4MTUzMWZlNGUsIDB4YWJjMTk5YzkpLCBUT0JOKDB4YzcwMzI1OTIsIDB4NTZiYWIwYWUp
LAotICAgICAgICAgVE9CTigweDE2YWIyZTQ4LCAweDZjMWZlYzU0KSwgVE9CTigweDBmODdmZGE4
LCAweDA0MjgwMTg4KSwKLSAgICAgICAgIFRPQk4oMHhkYzlmNDZmYywgMHg2MDllNGE3NCksIFRP
Qk4oMHgyYTQ0YTE0MywgMHhiYTY2N2Y5MSksCi0gICAgICAgICBUT0JOKDB4YmMzZDhiOTUsIDB4
YjRkODM0MzYpLCBUT0JOKDB4YTAxZTRiZDAsIDB4YzdiZDI5NTgpLAotICAgICAgICAgVE9CTigw
eDdiMTgyOTMyLCAweDczNDgzYzkwKSwgVE9CTigweGE3OWM2YWExLCAweGE3YzdiNTk4KSwKLSAg
ICAgICAgIFRPQk4oMHhiZjM5ODNjNiwgMHhlYWFhYzA3ZSksIFRPQk4oMHg4ZjE4MTgxZSwgMHg5
NmUwZDRlNiksCi0gICAgICAgICBUT0JOKDB4ODU1M2QzN2MsIDB4MDUxYWY2MmIpLCBUT0JOKDB4
ZTlhOTk4ZWIsIDB4MGJmOTQ0OTYpLAotICAgICAgICAgVE9CTigweGUwODQ0ZjlmLCAweGIwZDU5
YWExKSwgVE9CTigweDk4M2ZkNTU4LCAweGU2YWZiODEzKSwKLSAgICAgICAgIFRPQk4oMHg5Njcw
YzBjYSwgMHg2NWQ2OTgwNCksIFRPQk4oMHg3MzJiMjJkZSwgMHg2ZWE1ZmYyZCksCi0gICAgICAg
ICBUT0JOKDB4ZDc2NDBiYTksIDB4NWZkODYyM2IpLCBUT0JOKDB4OWY2MTkxNjMsIDB4YTYzNTE3
ODIpLAotICAgICAgICAgVE9CTigweDBiZmMyN2VlLCAweGFjZWU1MDQzKSwgVE9CTigweGFlNDE5
ZTczLCAweDJlYjEwZjAyKSwKLSAgICAgICAgIFRPQk4oMHgxOWMwMjhkMSwgMHg4OTQzZmIwNSks
IFRPQk4oMHg3MWYwMWNmNywgMHhmZjEzYWEyYSksCi0gICAgICAgICBUT0JOKDB4Nzc5MDczN2Us
IDB4ODg4N2ExMzIpLCBUT0JOKDB4Njc1MTMzMDksIDB4NjYzMTg0MTApLAotICAgICAgICAgVE9C
TigweDk4MTllOGEzLCAweDdkZGI3OTVlKSwgVE9CTigweGZlY2I4ZWY1LCAweGRhZDEwMGIyKSwK
LSAgICAgICAgIFRPQk4oMHg1OWY3NGEyMiwgMHgzMDIxOTI2YSksIFRPQk4oMHhiN2MyOGE0OSwg
MHg2ZjliNGMxYyksCi0gICAgICAgICBUT0JOKDB4ZWQxYTczM2YsIDB4OTEyYWQwYWIpLCBUT0JO
KDB4NDJhOTEwYWYsIDB4MDFhNTY1OWMpLAotICAgICAgICAgVE9CTigweDM4NDJjNmUwLCAweDdi
ZDY4Y2FiKSwgVE9CTigweDJiNTdmYTM4LCAweDc2ZDcwYWM4KSwKLSAgICAgICAgIFRPQk4oMHg4
YTY3MDdhOCwgMHgzYzUzYWFlYiksIFRPQk4oMHg2MmMxYzUxMCwgMHg2NWI0ZGIxOCksCi0gICAg
ICAgICBUT0JOKDB4OGRlMmMxZmIsIDB4YjJkMDlkYzcpLCBUT0JOKDB4YzNkZmVkMTIsIDB4MjY2
YmQyM2IpLAotICAgICAgICAgVE9CTigweDkyN2QwMzliLCAweGQ1YjI3ZGI2KSwgVE9CTigweDJm
YjJmMGYxLCAweDEwMzI0M2RhKSwKLSAgICAgICAgIFRPQk4oMHhmODU1YTA3YiwgMHg4MGJlNzM5
OSksIFRPQk4oMHhlZDkzMjdjZSwgMHgxZjlmMjdhOCksCi0gICAgICAgICBUT0JOKDB4YTBiZDk5
YzcsIDB4NzI5YmRlZjcpLCBUT0JOKDB4MmI2NzEyNWUsIDB4MjgyNTBkODgpLAotICAgICAgICAg
VE9CTigweDc4NGIyNmU4LCAweDg2NzBjZWQ3KSwgVE9CTigweGUzZGZlNDFmLCAweGMzMWJkM2I0
KSwKLSAgICAgICAgIFRPQk4oMHg5ZTM1M2EwNiwgMHhiY2M4NWNiYyksIFRPQk4oMHgzMDJlMjkw
OSwgMHg2MDE3OGE5ZCksCi0gICAgICAgICBUT0JOKDB4ODYwYWJmMTEsIDB4YTZlYWMxNmUpLCBU
T0JOKDB4NzY0NDcwMDAsIDB4YWEyYjNhYWMpLAotICAgICAgICAgVE9CTigweDQ2ZmY5ZDE5LCAw
eDg1MGFmZGFiKSwgVE9CTigweDM1YmRkNmE1LCAweGZkYjJkNGMxKSwKLSAgICAgICAgIFRPQk4o
MHhlODI1OTRiMCwgMHg3ZTVjOWNlOSksIFRPQk4oMHgwZjM3OWU1MywgMHgyMGFmMzQ2ZSksCi0g
ICAgICAgICBUT0JOKDB4NjA4YjMxZTMsIDB4YmM2NWFkNGEpLCBUT0JOKDB4NzEwYzZiMTIsIDB4
MjY3YzQ4MjYpLAotICAgICAgICAgVE9CTigweDUxYzk2NmY5LCAweDcxOTU0Y2YxKSwgVE9CTigw
eGIxY2VjNzkzLCAweDBkMGFhMjE1KSwKLSAgICAgICAgIFRPQk4oMHgxZjE1NTk4OSwgMHg4NmJk
MjNhOCksIFRPQk4oMHhhZTJmZjk5YywgMHhmOTQ1MmU4NiksCi0gICAgICAgICBUT0JOKDB4ZDhk
ZDk1M2MsIDB4MzQwY2VhYTIpLCBUT0JOKDB4MjYzNTUyNzUsIDB4MmUyZTkzMzMpLAotICAgICAg
ICAgVE9CTigweDE1ZDRlNWY5LCAweDg1ODZmMDZkKSwgVE9CTigweGQ2YmY5NGE4LCAweGY3Y2Fi
NTQ2KSwKLSAgICAgICAgIFRPQk4oMHgzM2M1OWEwYSwgMHhiNzZhOWFmMCksIFRPQk4oMHg1Mjc0
MGFiMywgMHhiYTA5NWFmNyksCi0gICAgICAgICBUT0JOKDB4YzQ0NGRlOGEsIDB4MjQzODljYTAp
LCBUT0JOKDB4Y2M2Zjk4NjMsIDB4NzA2ZGEwY2IpLAotICAgICAgICAgVE9CTigweGI1YTc0MWE3
LCAweDZiMjUxNWNmKSwgVE9CTigweDcxYzQxNjAxLCAweDk1ODVjNzQ5KSwKLSAgICAgICAgIFRP
Qk4oMHg3ODM1MGQ0ZiwgMHhlNjgzZGU5NyksIFRPQk4oMHgzMWQ2MTUyNCwgMHg2M2QwYjVmNSks
Ci0gICAgICAgICBUT0JOKDB4N2EwY2M1ZTEsIDB4ZmJjZTA5MGIpLCBUT0JOKDB4YWFjOTI3ZWQs
IDB4ZmJjYjJhNWIpLAotICAgICAgICAgVE9CTigweGU5MjBkZTQ5LCAweDIwZDg0YzM1KSwgVE9C
TigweDhjMDZhMGI2LCAweDIyYjRkZTI2KSwKLSAgICAgICAgIFRPQk4oMHhkMzRkZDU4YiwgMHhh
ZmU3ZGRmMyksIFRPQk4oMHg1NTg1MWZlZCwgMHhjMWU2ZTU1YiksCi0gICAgICAgICBUT0JOKDB4
ZDEzOTU2MTYsIDB4OTYwNjk2ZTcpLCBUT0JOKDB4OTQwMzA0YjIsIDB4NWYyMjcwNWYpLAotICAg
ICAgICAgVE9CTigweDZmNDNmODYxLCAweGIwYTJhODYwKSwgVE9CTigweGNmMTIxMjgyLCAweDBl
N2NjOTgxKSwKLSAgICAgICAgIFRPQk4oMHgxMjE4NjIxMiwgMHgwYWI2NGE5NiksIFRPQk4oMHgw
OTIxNWI5YSwgMHhiNzg5MzgzYyksCi0gICAgICAgICBUT0JOKDB4MzExZWIzMDUsIDB4MzczODdj
MDkpLCBUT0JOKDB4YzU4MzJmY2UsIDB4ZjAzZWU3NjApLAotICAgICAgICAgVE9CTigweDMwMzU4
ZjU4LCAweDMyZjdlYTE5KSwgVE9CTigweGUwMWQzYzM0LCAweDkxZDUzNTUxKSwKLSAgICAgICAg
IFRPQk4oMHgxY2E1ZWU0MSwgMHhkYTQ4ZWE4MCksIFRPQk4oMHgzNGU3MWU4ZSwgMHhjZjRmYTRj
MSksCi0gICAgICAgICBUT0JOKDB4MzEyYWJkMjUsIDB4N2FmMWUxYzcpLCBUT0JOKDB4ZTNhZmNk
ZWIsIDB4MjE1M2Y0YTUpLAotICAgICAgICAgVE9CTigweDlkNWM4NGQ3LCAweDAwMjM1ZTlhKSwg
VE9CTigweDAzMDhkM2Y0LCAweDhjNGM4MzZmKSwKLSAgICAgICAgIFRPQk4oMHhjMGE2NmIwNCwg
MHg4OTMzMmRlNSksIFRPQk4oMHg2MTBkZDM5OSwgMHg4OWU1NjZlZiksCi0gICAgICAgICBUT0JO
KDB4ZjhlZWE0NjAsIDB4ZDFhYzE2MzUpLCBUT0JOKDB4ODRjYmIzZmIsIDB4MjBhMmMwZGYpLAot
ICAgICAgICAgVE9CTigweDQwYWZiNDg4LCAweGU3NGE0OGM1KSwgVE9CTigweDI5NzM4MTk4LCAw
eGQzMjZiMTUwKSwKLSAgICAgICAgIFRPQk4oMHgyYTE3NzQ3ZiwgMHhhNmQ3NDA4MSksIFRPQk4o
MHg2MGVhNGMwNSwgMHg1NWEyNjIxNCksCi0gICAgICAgICBUT0JOKDB4NTM1MTRiYjQsIDB4MWY4
OGM1ZmUpLCBUT0JOKDB4ZWRkNjQ1NjcsIDB4N2U4MzQyNmMpLAotICAgICAgICAgVE9CTigweGQ1
ZDZjYmVjLCAweDk2NDYwYjI1KSwgVE9CTigweGExMmZkMGNlLCAweDY4ZGMxMTVlKSwKLSAgICAg
ICAgIFRPQk4oMHhjNWJjM2VkMiwgMHg2OTc4NDBlYSksIFRPQk4oMHg5Njk4NzZhOCwgMHhhNjMz
MWUzMSksCi0gICAgICAgICBUT0JOKDB4NjBjMzYyMTcsIDB4NDcyZmY1ODApLCBUT0JOKDB4ZjQy
Mjk3MDUsIDB4NGFkNDEzOTMpLAotICAgICAgICAgVE9CTigweDRiZDk5ZWYwLCAweGEwM2I4Yjky
KSwgVE9CTigweDUwMWM3MzE3LCAweGMxNDRmNGY2KSwKLSAgICAgICAgIFRPQk4oMHgxNTkwMDli
MywgMHgxODQ2NDk0NSksIFRPQk4oMHg2ZDVlNTk0YywgMHg3NGM1YzZiZSksCi0gICAgICAgICBU
T0JOKDB4MmQ1ODcwMTEsIDB4MzIxYTM2NjApLCBUT0JOKDB4ZDFlMTg0YjEsIDB4Mzg5OGQwMjIp
LAotICAgICAgICAgVE9CTigweDViYTA0NzUyLCAweDRjNmE3ZTA0KSwgVE9CTigweDQ3ZmExZTJi
LCAweDQ1NTUwYjY1KSwKLSAgICAgICAgIFRPQk4oMHg5NDE5ZGFmMCwgMHg0OGMwYTlhNSksIFRP
Qk4oMHg2NjM2Mjk1MywgMHg3YzI0MzIzNiksCi0gICAgICAgICBUT0JOKDB4Y2QwNzQ0YjEsIDB4
NWNiMTJhODgpLCBUT0JOKDB4NTYxYjZmOWEsIDB4MmI2NDYxODgpLAotICAgICAgICAgVE9CTigw
eDU5OTQxNWE1LCAweDY2YzJjMGMwKSwgVE9CTigweGJlM2YwODU5LCAweDBmODNmMDlhKSwKLSAg
ICAgICAgIFRPQk4oMHg5MTQxYzViZSwgMHhiOTIwNDFiOCksIFRPQk4oMHgwMWFlMzhjNywgMHgy
NjQ3N2QwZCksCi0gICAgICAgICBUT0JOKDB4Y2E4YjcxZjMsIDB4ZDEyYzdhOTQpLCBUT0JOKDB4
ZmFiNWIzMWYsIDB4NzY1YzcwZGIpLAotICAgICAgICAgVE9CTigweDc2YWU3NDkyLCAweDQ4NzQ0
M2U5KSwgVE9CTigweDg1OTVhMzEwLCAweDk5MGQxMzQ5KSwKLSAgICAgICAgIFRPQk4oMHhmOGRi
ZWRhOCwgMHg3ZDQ2MGEzNyksIFRPQk4oMHg3ZjdhZDA4MiwgMHgxZTQ1YTM4ZiksCi0gICAgICAg
ICBUT0JOKDB4ZWQxZDRkYjYsIDB4MTA1OTcwNWEpLCBUT0JOKDB4YTNkZDQ5MmEsIDB4ZTZiOWM2
OTcpLAotICAgICAgICAgVE9CTigweDRiOTJlZTNhLCAweDZlYjM4YmQ1KSwgVE9CTigweGJhYjI2
MDlkLCAweDY3Y2MwYmI3KSwKLSAgICAgICAgIFRPQk4oMHg3ZmM0ZmU4OSwgMHg2ZTcwZWU4Miks
IFRPQk4oMHhlZmYyYzU2ZSwgMHgxM2U2YjdlMyksCi0gICAgICAgICBUT0JOKDB4OWIxODk1OWUs
IDB4MzRkMjZmY2EpLCBUT0JOKDB4MjUxN2FiNjYsIDB4ODg5ZDZiNDUpLAotICAgICAgICAgVE9C
TigweGYxNjdiNGUwLCAweGJkZWZkZDRmKSwgVE9CTigweDY5OTU4NDY1LCAweGYzNjZlNDAxKSwK
LSAgICAgICAgIFRPQk4oMHg1YWEzNjhhYiwgMHhhNzNiYmVjMCksIFRPQk4oMHgxMjE0ODcwOSwg
MHg3YjI0MGMyMSksCi0gICAgICAgICBUT0JOKDB4Mzc4YzMyMzMsIDB4MTg5NjkwMDYpLCBUT0JO
KDB4Y2I0ZDczY2UsIDB4ZTFmZTUzZDEpLAotICAgICAgICAgVE9CTigweDVmNTBhODBlLCAweDEz
MGM0MzYxKSwgVE9CTigweGQ2N2Y1OTUxLCAweDdlZjUyMTJiKSwKLSAgICAgICAgIFRPQk4oMHhm
MTQ1ZTIxZSwgMHg5ZTcwYzcyZSksIFRPQk4oMHhiMmU1MmUyOSwgMHg1NTY2ZDJmYiksCi0gICAg
ICAgICBUT0JOKDB4NDRlYWJhNGEsIDB4MDMyMzk3ZjUpLCBUT0JOKDB4NWU1NjkzN2IsIDB4N2Uz
MWE3ZGUpLAotICAgICAgICAgVE9CTigweDY4ZGNmNTE3LCAweDQ1NmM2MWUxKSwgVE9CTigweGJj
MmU5NTRhLCAweGE4YjBhMzg4KSwKLSAgICAgICAgIFRPQk4oMHhlMzU1MmZhNywgMHg2MGE4Yjc1
NSksIFRPQk4oMHgwMzQ0MmRhZSwgMHg3M2FkMGNkZSksCi0gICAgICAgICBUT0JOKDB4MzdmZmU3
NDcsIDB4Y2ViMjYyMTApLCBUT0JOKDB4OTgzNTQ1ZTgsIDB4Nzg3YmFlZjkpLAotICAgICAgICAg
VE9CTigweDhiOGM4NTM1LCAweDg2YTNkZTMxKSwgVE9CTigweGM2MjFkYmNiLCAweGZhY2Q0NmRi
KSwKLSAgICAgICAgIFRPQk4oMHg4MmU0NDJlOSwgMHg1OTI2NmZiYiksIFRPQk4oMHhhMzUxNGMz
NywgMHgzMzlkNDcxYyksCi0gICAgICAgICBUT0JOKDB4M2ExMWI3NzEsIDB4NjJjZGFkOTYpLCBU
T0JOKDB4ZjBjYjNiM2MsIDB4ZWNmOWJkZjApLAotICAgICAgICAgVE9CTigweDNmY2JkYmNlLCAw
eDQ3OGUyMTM1KSwgVE9CTigweDc1NDdiNWNmLCAweGJkYTM1MzQyKSwKLSAgICAgICAgIFRPQk4o
MHhhOTdlODFmMSwgMHg4YTY3N2FmNiksIFRPQk4oMHhjOGMyYmY4MywgMHgyODgxNzk4NyksCi0g
ICAgICAgICBUT0JOKDB4ZGYwN2VhYWYsIDB4NDU1ODA5ODUpLCBUT0JOKDB4YzY4ZDFmMDUsIDB4
YzkzYjQ1Y2IpLAotICAgICAgICAgVE9CTigweDEwNmFhMmZlLCAweGM3N2I0Y2FjKSwgVE9CTigw
eDRjMWQ4YWZjLCAweDA0YTdhZTg2KSwKLSAgICAgICAgIFRPQk4oMHhkYjQxYzNmZCwgMHg5ZWI0
NWFiMiksIFRPQk4oMHg1YjIzNGI1YiwgMHhkNGIyMmU3NCksCi0gICAgICAgICBUT0JOKDB4ZGEy
NTNkZWMsIDB4ZjIxNTk1OGEpLCBUT0JOKDB4NjdlMDYwNmUsIDB4YTA0ZWRmYTApLAotICAgICAg
ICAgVE9CTigweGFiYmJmMDcwLCAweGVmNzUxYjExKSwgVE9CTigweGYzNTJmMTc1LCAweGY2ZjA2
ZGNlKSwKLSAgICAgICAgIFRPQk4oMHhkZmM0YjZhZiwgMHg2ODM5ZjZiNCksIFRPQk4oMHg1M2Rk
ZjlhOCwgMHg5OTU5ODQ4ZSksCi0gICAgICAgICBUT0JOKDB4ZGE0OWMzNzksIDB4YzIxNTIwYjAp
LCBUT0JOKDB4OTA4NjRmZjAsIDB4ZGJkNWQxYjYpLAotICAgICAgICAgVE9CTigweDJmMDU1ZDIz
LCAweDVmNDljN2Y3KSwgVE9CTigweGU1MWU0ZTZhLCAweGE3OTZiMmQ4KSwKLSAgICAgICAgIFRP
Qk4oMHhjMzYxYTY3ZiwgMHg1YzlkYzM0MCksIFRPQk4oMHg1YWQ1M2MzNywgMHhiY2E3YzYyMCks
Ci0gICAgICAgICBUT0JOKDB4ZGExZDY1ODgsIDB4MzJjNzU2ZDApLCBUT0JOKDB4YWQ2MGQ5MTEs
IDB4OGJiNjdlMTMpLAotICAgICAgICAgVE9CTigweGQ2YzQ3YmRmLCAweDBlZWVjOGM2KSwgVE9C
TigweDRhMjdmZWMxLCAweDA3OGExODIxKSwKLSAgICAgICAgIFRPQk4oMHgwODFmNzQxNSwgMHhj
MzA5OTUyNCksIFRPQk4oMHg4ZWZmZGYwYiwgMHg4MmNkODA2MCksCi0gICAgICAgICBUT0JOKDB4
ZGI3MGVjMWMsIDB4NjU4NDJkZjgpLCBUT0JOKDB4ODgyMWIzNTgsIDB4ZDMxOWE5MDEpLAotICAg
ICAgICAgVE9CTigweDcyZWU1NmVlLCAweGRlNDJiNTI5KSwgVE9CTigweDViYjM5NTkyLCAweDIz
NmU0Mjg2KSwKLSAgICAgICAgIFRPQk4oMHhkMTE4MzMxNiwgMHhmZDZmNzE0MCksIFRPQk4oMHhm
OWZhZGI1YiwgMHhiZDhlODFmNyksCi0gICAgICAgICBUT0JOKDB4NzAxZDVlMGMsIDB4NWEwMmQ5
NjIpLCBUT0JOKDB4ZmRlZTRkYmYsIDB4MWI2MDEzMjQpLAotICAgICAgICAgVE9CTigweGJlZDE3
NDA3LCAweDM1ZDc2MjBlKSwgVE9CTigweDA0ZTNjMmMzLCAweGY0OGMwMDEyKSwKLSAgICAgICAg
IFRPQk4oMHg5ZWUyOWRhNywgMHgzNDU1NDQ5YSksIFRPQk4oMHg1NjJjZGVmNCwgMHg5MWE4MzZj
NCksCi0gICAgICAgICBUT0JOKDB4OGY2ODJhNWYsIDB4NDc3MDEwOTcpLCBUT0JOKDB4NjE3MTI1
ZDgsIDB4ZmY4OGQwYzIpLAotICAgICAgICAgVE9CTigweDk0OGZkYTI0LCAweDU3YmI4NmRkKSwg
VE9CTigweDM0OGFiYjhmLCAweDI4OWY3Mjg2KSwKLSAgICAgICAgIFRPQk4oMHhlYjEwZWFiNSwg
MHg5OWQ5NGJiZCksIFRPQk4oMHhkNTFiYTI4ZSwgMHg0Njg0ZDE2MCksCi0gICAgICAgICBUT0JO
KDB4YWJlMGU1MWMsIDB4MzBjOGY0MWEpLCBUT0JOKDB4NjY1ODhiNDUsIDB4MTMyNTRmNGEpLAot
ICAgICAgICAgVE9CTigweDE0N2ViZjAxLCAweGZhZDA5N2E1KSwgVE9CTigweDQ5ODgzZWE4LCAw
eDYxMGU4MTVkKSwKLSAgICAgICAgIFRPQk4oMHhlNDRkNjBiYSwgMHg4YTExZGU1NiksIFRPQk4o
MHhhOTcwZGU2ZSwgMHg4MjdhN2E2ZCksCi0gICAgICAgICBUT0JOKDB4MmJlNDE0MjQsIDB4NWUx
N2ZjMTkpLCBUT0JOKDB4ZDgzM2M2NTcsIDB4MDEyMTQwNTcpLAotICAgICAgICAgVE9CTigweDEz
NzU4MTNiLCAweDM2M2U3MjNmKSwgVE9CTigweDY4MjBiYjg4LCAweGU2YTUyZTliKSwKLSAgICAg
ICAgIFRPQk4oMHg3ZTdmNjk3MCwgMHhkODc1ZDU2YSksIFRPQk4oMHhkNmEwYTlhYywgMHg1MWZi
ZjZiZiksCi0gICAgICAgICBUT0JOKDB4NTRiYTg3OTAsIDB4YTMwODNjMTIpLCBUT0JOKDB4ZWJh
ZWIyM2QsIDB4NmFlN2ViNjQpLAotICAgICAgICAgVE9CTigweGE4Njg1YzNhLCAweGI5OWE5MDdh
KSwgVE9CTigweGYxZTc0NTUwLCAweDAyNmJmNDBiKSwKLSAgICAgICAgIFRPQk4oMHg3YjczYTAy
NywgMHhjODAyY2Q5ZSksIFRPQk4oMHg5YThhOTI3YywgMHg0ZmVmNDYzNSksCi0gICAgICAgICBU
T0JOKDB4ZTFiNmY2MGMsIDB4MDgxOTEyMjQpLCBUT0JOKDB4YzQxMjZlYmIsIDB4ZGU0ZWMwOTEp
LAotICAgICAgICAgVE9CTigweGUxZGZmNGRjLCAweDRhZTM4ZDg0KSwgVE9CTigweGRlM2Y1N2Ri
LCAweDRmMmVmOTg1KSwKLSAgICAgICAgIFRPQk4oMHgzNDk2NDMzNywgMHhkNDQ2YTFkZCksIFRP
Qk4oMHg3YmYyMTdhMCwgMHg4NTllNzdmNiksCi0gICAgICAgICBUT0JOKDB4OGZmMTA1MjcsIDB4
OGUxZDEzZjUpLCBUT0JOKDB4YTMwNGVmMDMsIDB4NzRlZWFlMjcpLAotICAgICAgICAgVE9CTigw
eGZjNmY1ZTQ3LCAweGQxOWRmYTVhKSwgVE9CTigweGRiMDA3ZGUzLCAweDdmYWQ5ODJiKSwKLSAg
ICAgICAgIFRPQk4oMHgyODIwNWFkMSwgMHg2MTM3MTVmNSksIFRPQk4oMHgyNTFlNjcyOSwgMHg3
ODg5NTI5ZSksCi0gICAgICAgICBUT0JOKDB4NzI3MDUxODQsIDB4MWFlOThlNzgpLCBUT0JOKDB4
ZjgxODUzN2QsIDB4MjcxY2FjMzIpLAotICAgICAgICAgVE9CTigweGM4YTE1YjdlLCAweGI3ZjQx
MGY1KSwgVE9CTigweGM0NzQzNTZmLCAweDgxZjYyMzkzKSwKLSAgICAgICAgIFRPQk4oMHg5MmRi
ZGM1YSwgMHhjMjQyMzE2YiksIFRPQk4oMHhhYmUwNjBhYywgMHhkYmY0YWZmNSksCi0gICAgICAg
ICBUT0JOKDB4NmU4YzM4ZmUsIDB4OTA5YThlYzYpLCBUT0JOKDB4NDNlNTE0ZTUsIDB4NjExNmNi
OTQpLAotICAgICAgICAgVE9CTigweDIwNzhmYTM4LCAweDA3ZDc4NGY5KSwgVE9CTigweDExNjFh
ODgwLCAweGY0YjViMzU3KSwKLSAgICAgICAgIFRPQk4oMHg1MjgzY2U3OSwgMHgxM2FkZWEzZCks
IFRPQk4oMHgwNzU2YzNlNiwgMHhjYzZhOTEwYiksCi0gICAgICAgICBUT0JOKDB4NjBiY2ZlMDEs
IDB4YWFhNzk2OTcpLCBUT0JOKDB4MDRhNzNiMjksIDB4NTYzOTFkYjEpLAotICAgICAgICAgVE9C
TigweGRkOGRhZDQ3LCAweDE4OWI0NWEwKSwgVE9CTigweGJmYWMwZGQwLCAweDQ4ZDViOGQ5KSwK
LSAgICAgICAgIFRPQk4oMHgzNGFiM2FmNSwgMHg3ZDNkMmVjMiksIFRPQk4oMHg2ZmEyZmMyZCwg
MHgyMDdiZDNhZiksCi0gICAgICAgICBUT0JOKDB4OWZmNDAwOTIsIDB4NjY1NTBkZWQpLCBUT0JO
KDB4NzE5YjNlODcsIDB4MWZkNWI5MTMpLAotICAgICAgICAgVE9CTigweGE1NzNhNDk2LCAweDZk
MTdmYmM3KSwgVE9CTigweDBjZDFhNzBhLCAweDczZDJiMjRlKSwKLSAgICAgICAgIFRPQk4oMHgz
NGUyYzVjYSwgMHhiMjY3NjkzNyksIFRPQk4oMHhlNzA1MGIwNiwgMHhiZjY2OWYyMSksCi0gICAg
ICAgICBUT0JOKDB4ZmJlOTQ4YjYsIDB4MWVkZTkwNDYpLCBUT0JOKDB4YTA1MzAwNTEsIDB4OTc2
NjI2NTkpLAotICAgICAgICAgVE9CTigweDU4Y2JkNGVkLCAweGYxMDEyNGM1KSwgVE9CTigweGRl
MjY0NmU0LCAweGRkNmMwNmM4KSwKLSAgICAgICAgIFRPQk4oMHgzMzJmODEwOCwgMHg4Y2FkMzhj
MCksIFRPQk4oMHg0NzFiN2U5MCwgMHg2YmQ2OGFlMiksCi0gICAgICAgICBUT0JOKDB4NTZhYzNm
YjIsIDB4MGQ4ZTI3YTMpLCBUT0JOKDB4YjU0NjYwZGIsIDB4MTM2YjRiMGQpLAotICAgICAgICAg
VE9CTigweDEyM2ExZTExLCAweGE2ZmQ4ZGU0KSwgVE9CTigweDQ0ZGJmZmVhLCAweGEzNzc5OWVm
KSwKLSAgICAgICAgIFRPQk4oMHg0NTQwYjk3NywgMHhjZTZhYzE3YyksIFRPQk4oMHg0OTUxNzNh
OCwgMHhhZjYwYWNlZil9LAotICAgICAgICB7VE9CTigweDllYmIyODRkLCAweDM5MWMyYTgyKSwg
VE9CTigweGJjZGQ0ODYzLCAweDE1ODMwOGU4KSwKLSAgICAgICAgIFRPQk4oMHgwMDZmMTZlYywg
MHg4M2YxZWRjYSksIFRPQk4oMHhhMTNlMmMzNywgMHg2OTVkYzZjOCksCi0gICAgICAgICBUT0JO
KDB4MmFiNzU2ZjAsIDB4NGEwNTdhODcpLCBUT0JOKDB4YTg3NjU1MDAsIDB4YTZiNDhmOTgpLAot
ICAgICAgICAgVE9CTigweDQyNTJmYWNlLCAweDY4NjUxYzQ0KSwgVE9CTigweGE1MmI1NDBiLCAw
eGUxNzY1ZTAyKSwKLSAgICAgICAgIFRPQk4oMHg0ZjkyMmZjNSwgMHgxNmEwZDJiYiksIFRPQk4o
MHgwZDVjYzE2YywgMHgxYTYyMzQ5OSksCi0gICAgICAgICBUT0JOKDB4OTI0MWNmM2EsIDB4NTdj
NjJjOGIpLCBUT0JOKDB4MmY1ZTY5NjEsIDB4ZmQxYjY2N2YpLAotICAgICAgICAgVE9CTigweDVj
MTVjNzBiLCAweGY1YTAxNzk3KSwgVE9CTigweDNkMjBiNDRkLCAweDYwOTU2MTkyKSwKLSAgICAg
ICAgIFRPQk4oMHgwNDkxMWIzNywgMHgwNzFmZGI1MiksIFRPQk4oMHhmNjQ4ZjkxNiwgMHg4ZDZm
MGY3YiksCi0gICAgICAgICBUT0JOKDB4NmRjMWFjYWYsIDB4ZTYwYjdjZjcpLCBUT0JOKDB4MjU4
NjBhNTAsIDB4ODRhOWQ4NjkpLAotICAgICAgICAgVE9CTigweDU2ZmM2ZjA5LCAweGU3YmE4YWM0
KSwgVE9CTigweDgyOGM1YmQwLCAweDYxNDhkMjllKSwKLSAgICAgICAgIFRPQk4oMHhhYzZiNDM1
ZSwgMHhkYzU1YWU1ZiksIFRPQk4oMHhhNTI3ZjU2YywgMHhjMDExNzQxMSksCi0gICAgICAgICBU
T0JOKDB4OTRkNTA0NWUsIDB4ZmQyNDM0MmMpLCBUT0JOKDB4MmM0YzBhMzUsIDB4NzBiNjdjMGQp
LAotICAgICAgICAgVE9CTigweDAyN2NjOGI4LCAweGZhYzYxZDlhKSwgVE9CTigweDdkMjVlMDYy
LCAweGUzYzZmZThhKSwKLSAgICAgICAgIFRPQk4oMHhlMDg4MDViZiwgMHhlNWJmZjUwMyksIFRP
Qk4oMHgxMzI3MWU2YywgMHg2ZmY2MzJmNyksCi0gICAgICAgICBUT0JOKDB4NTVkY2E2YzAsIDB4
MjMyZjc2YTUpLCBUT0JOKDB4ODk1N2MzMmQsIDB4NzAxZWY0MjYpLAotICAgICAgICAgVE9CTigw
eGVlNzI4YmNiLCAweGExMGE1MTc4KSwgVE9CTigweDVlYTYwNDExLCAweGI2MmM1MTczKSwKLSAg
ICAgICAgIFRPQk4oMHhmYzRlOTY0ZSwgMHhkMGI4ODkyYiksIFRPQk4oMHg5ZWExNzY4MywgMHg5
MzAxYmI3NCksCi0gICAgICAgICBUT0JOKDB4NjI2NWM1YWUsIDB4ZmNjNDg2MjYpLCBUT0JOKDB4
ZTYwY2Y4MmUsIDB4YmIzZTkxMDIpLAotICAgICAgICAgVE9CTigweDU3YWRmNzk3LCAweGQ0ZGY1
NTMxKSwgVE9CTigweDIzNWI1OWExLCAweDhkZWVlZmUyKSwKLSAgICAgICAgIFRPQk4oMHg2MGFk
Y2Y1OCwgMHgzZjMwNmViMSksIFRPQk4oMHgxMDVjMjc1MywgMHgzZDA5NDkyZCksCi0gICAgICAg
ICBUT0JOKDB4NDA5MDkxNGIsIDB4YjVkZWY5OTYpLCBUT0JOKDB4MWNiNjljODMsIDB4MjMzZGQx
ZTcpLAotICAgICAgICAgVE9CTigweGMxZTljMWQzLCAweDliM2Q1ZTc2KSwgVE9CTigweDFmMzMz
OGVkLCAweGZjY2Y2MDEyKSwKLSAgICAgICAgIFRPQk4oMHhiMWU5NWQwZCwgMHgyZjUzNzhhOCks
IFRPQk4oMHhhY2Y0YzJjNywgMHgyZjAwY2QyMSksCi0gICAgICAgICBUT0JOKDB4NmU5ODQyNDAs
IDB4ZWI1ZmUyOTApLCBUT0JOKDB4ZDY2YzAzOGQsIDB4MjQ4MDg4YWUpLAotICAgICAgICAgVE9C
TigweDgwNGQyNjRhLCAweGY5NGQ3MGNmKSwgVE9CTigweGJkYjgwMmVmLCAweDczMTRiZjdlKSwK
LSAgICAgICAgIFRPQk4oMHg4ZmI1NGRlMiwgMHg0MzMzZWQwMiksIFRPQk4oMHg3NDA0NjFlMCwg
MHgyODU2MzVkOSksCi0gICAgICAgICBUT0JOKDB4NDExM2IyYzgsIDB4MzY1ZTkzODMpLCBUT0JO
KDB4ZWE3NjJjODMsIDB4M2ZkZWY2NTIpLAotICAgICAgICAgVE9CTigweDRlZWM2ZTJlLCAweDQ3
Yjk1NmMxKSwgVE9CTigweGEzZDgxNGJlLCAweDY1NjIwZmE0KSwKLSAgICAgICAgIFRPQk4oMHg5
YWQ1NDYyYiwgMHhiNGQ4YmM1MCksIFRPQk4oMHgxODFjMGIxNiwgMHhhOTE5NTc3MCksCi0gICAg
ICAgICBUT0JOKDB4ZWJkNGZlMWMsIDB4Nzg0MTJhNjgpLCBUT0JOKDB4YWUwMzQxYmMsIDB4YzBk
ZmY0OGMpLAotICAgICAgICAgVE9CTigweGI2YmM0NWNmLCAweDcwMDNlODY2KSwgVE9CTigweGYx
MWE2ZGVhLCAweDhhMjRhNDFiKSwKLSAgICAgICAgIFRPQk4oMHg1NDA3MTUxYSwgMHhkMDRjMjRj
MiksIFRPQk4oMHg2MmM5ZDI3ZCwgMHhkYTViN2I2OCksCi0gICAgICAgICBUT0JOKDB4MmU5NjQy
MzUsIDB4ODhjY2VmZjYpLCBUT0JOKDB4ODU5NGM1NGYsIDB4OGIwN2VkNjkpLAotICAgICAgICAg
VE9CTigweDE1NzhlNzNjLCAweGM4NGQwZDBkKSwgVE9CTigweDdiNGUxMDU1LCAweGZmNTMyODY4
KSwKLSAgICAgICAgIFRPQk4oMHhhMzQ4YzBkNSwgMHhiNWVjOTk1YSksIFRPQk4oMHhiZjRiOWQ1
NSwgMHgxNDI4OWE1NCksCi0gICAgICAgICBUT0JOKDB4OWJhMTU1YTYsIDB4NThmYmQ3NzcpLCBU
T0JOKDB4MTg2ZWQ3YTgsIDB4MWE4NDQ5MWQpLAotICAgICAgICAgVE9CTigweGQ0OTkyYjMwLCAw
eDYxNGMwOTAwKSwgVE9CTigweGRhOThkMTIxLCAweGJkMDBjMjRiKSwKLSAgICAgICAgIFRPQk4o
MHg3ZjUzNGRjOCwgMHg3ZWM0YmZhMSksIFRPQk4oMHg0YTVmZjY3NCwgMHgzN2RjMzRiYyksCi0g
ICAgICAgICBUT0JOKDB4NjhjMTk2YjgsIDB4MWQ3ZWExZDcpLCBUT0JOKDB4MzhjZjI4OTMsIDB4
ODBhNmQyMDgpLAotICAgICAgICAgVE9CTigweGZkNTZjZDA5LCAweGUzY2JiZDZlKSwgVE9CTigw
eGVjNzJlMjdlLCAweDQyMDVhNWI2KSwKLSAgICAgICAgIFRPQk4oMHgxNWVhNjhmNSwgMHhhNDRm
NzdmNyksIFRPQk4oMHg3YWE1ZjlmZCwgMHhiNDNjNTJiYyksCi0gICAgICAgICBUT0JOKDB4ODZm
ZjY3NmYsIDB4OTRmMGU2MDkpLCBUT0JOKDB4YTRjZGU5NjMsIDB4MmUyZDQzMmIpLAotICAgICAg
ICAgVE9CTigweDhjYWZhMGMwLCAweGVlZTQ3MGFmKSwgVE9CTigweDg0MTM3ZDBlLCAweDhhM2Y1
ZWM4KSwKLSAgICAgICAgIFRPQk4oMHhlYmI0MDQxMSwgMHhmYWEzMTIzMSksIFRPQk4oMHhhMjM5
YzEzZiwgMHg2ZjdmN2NjZiksCi0gICAgICAgICBUT0JOKDB4MzI4NjU3MTksIDB4YThhZmQzMGIp
LCBUT0JOKDB4ODY3OTgzMjgsIDB4OGE4MjZkY2UpLAotICAgICAgICAgVE9CTigweGRmMDRlODkx
LCAweGM0YThmYmUwKSwgVE9CTigweGJiNmI2ZTFiLCAweGViZjU2YWQzKSwKLSAgICAgICAgIFRP
Qk4oMHgwYTY5NWIxMSwgMHg0NzFmMWZmMCksIFRPQk4oMHhkNzZjMzM4OSwgMHhiZTE1YmFmMCks
Ci0gICAgICAgICBUT0JOKDB4MDE4ZWRiOTUsIDB4YmU5NmM0M2UpLCBUT0JOKDB4ZjJiZWFhZjQs
IDB4OTA3OTQxNTgpLAotICAgICAgICAgVE9CTigweDE1MmRiMDllLCAweGMzMDc2YTI3KSwgVE9C
TigweDVlODI5MDhlLCAweGU0MTY1NDVkKSwKLSAgICAgICAgIFRPQk4oMHhhMmM0MTI3MiwgMHgz
NTZkNmYyZSksIFRPQk4oMHhkYzljOTY0MiwgMHgzMWZkNzRlMSksCi0gICAgICAgICBUT0JOKDB4
NjZjZWI4OGQsIDB4NTE5YmY2MTUpLCBUT0JOKDB4ZTI5ZWNkNzYsIDB4MDVhMjI3NGUpLAotICAg
ICAgICAgVE9CTigweDNhMDQ3M2M0LCAweGJmNWUyZmEwKSwgVE9CTigweDZiNmViNjcxLCAweDY0
Mjg0ZTY3KSwKLSAgICAgICAgIFRPQk4oMHhlOGI5NzkzMiwgMHhiODg3NTZkZCksIFRPQk4oMHhl
ZDRlODY1MiwgMHhmMTdlM2U2MSksCi0gICAgICAgICBUT0JOKDB4YzJkZDE0OTksIDB4M2VlMWM0
YTQpLCBUT0JOKDB4YzBhYWVlMTcsIDB4NTk3ZjhjMGUpLAotICAgICAgICAgVE9CTigweDE1YzRl
ZGI5LCAweDZjMTY4YWYzKSwgVE9CTigweDY1NjNjN2JmLCAweGIzOWFlODc1KSwKLSAgICAgICAg
IFRPQk4oMHhhZGZhZGI2ZiwgMHgyMGFkYjQzNiksIFRPQk4oMHhhZDU1ZThjOSwgMHg5YTA0MmFj
MCksCi0gICAgICAgICBUT0JOKDB4OTc1YTFlZDgsIDB4Yjc2ZGExZjUpLCBUT0JOKDB4MTBkZmE0
NjYsIDB4YTU4YWNiOTQpLAotICAgICAgICAgVE9CTigweDhkZDdmN2UzLCAweGFjMDYwMjgyKSwg
VE9CTigweDY4MTNlNjZhLCAweDU3MmEwNTFlKSwKLSAgICAgICAgIFRPQk4oMHhiNGNjYWUxZSwg
MHgzNTBjYjkwMSksIFRPQk4oMHhiNjUzZDY1NiwgMHg1MGNiNzgyMiksCi0gICAgICAgICBUT0JO
KDB4NDI0ODQ3MTAsIDB4ZGZhYjNiODcpLCBUT0JOKDB4Y2Q3ZWU1MzcsIDB4OWI2NzBmZDApLAot
ICAgICAgICAgVE9CTigweDBhNTBiMTJlLCAweDUyM2I4YmY2KSwgVE9CTigweDgwMDllYjViLCAw
eDhmOTEwYzFiKSwKLSAgICAgICAgIFRPQk4oMHhmNTM1YWY4MiwgMHg0YTE2NzU4OCksIFRPQk4o
MHgwZjgzNWY5YywgMHhmYjJhMmFiZCksCi0gICAgICAgICBUT0JOKDB4ZjU5YjI5MzEsIDB4MmFm
Y2ViNjIpLCBUT0JOKDB4Yzc5N2RmMmEsIDB4MTY5ZDM4M2YpLAotICAgICAgICAgVE9CTigweGVi
M2Y1ZmIwLCAweDY2YWMwMmIwKSwgVE9CTigweDAyOWQ0YzZmLCAweGRhYTJkMGNhKSwKLSAgICAg
ICAgIFRPQk4oMHhkNDA1OWJjMSwgMHhhZmFiNGJjNSksIFRPQk4oMHg4MzNmNWM2ZiwgMHg1Njc4
MzI0NyksCi0gICAgICAgICBUT0JOKDB4YjUzNDY2MzAsIDB4OGQyZDM2MDUpLCBUT0JOKDB4ODMz
ODc4OTEsIDB4ZDM0ZDg0MzMpLAotICAgICAgICAgVE9CTigweGQ5NzNiMzBmLCAweGFkZDk0MTlh
KSwgVE9CTigweGJjY2ExMDk5LCAweGFmZTNmY2U4KSwKLSAgICAgICAgIFRPQk4oMHgwODE3ODMx
NSwgMHgwODA5YWFjNiksIFRPQk4oMHgwMWI3ZjIxYSwgMHg1NDBmMGYxMSksCi0gICAgICAgICBU
T0JOKDB4NjVjMjkyMTksIDB4OTA5NTIzYzgpLCBUT0JOKDB4YTYyZjY0OGYsIDB4YTNhMWM3NDEp
LAotICAgICAgICAgVE9CTigweDg4NTk4ZDRmLCAweDYwYzllNTVhKSwgVE9CTigweGJjZTkxNDFi
LCAweDBlNGYzNDdhKSwKLSAgICAgICAgIFRPQk4oMHg5YWY5N2Q4NCwgMHgzNWY5Yjk4OCksIFRP
Qk4oMHgwMjEwZGE2MiwgMHgzMjA0NzViNiksCi0gICAgICAgICBUT0JOKDB4M2MwNzZlMjIsIDB4
OTE5MTQ3NmMpLCBUT0JOKDB4NzUyMGRiZDksIDB4NDRmYzc4MzQpLAotICAgICAgICAgVE9CTigw
eDZhNmIyY2ZlLCAweGMxYWIxYmJkKSwgVE9CTigweGVmOGE2NWJlLCAweGRjNjUwOTM4KSwKLSAg
ICAgICAgIFRPQk4oMHg3Mjg1NTU0MCwgMHg4MDVkN2JjNCksIFRPQk4oMHhkYTM4OTM5NiwgMHhl
ZDExZmRmZCksCi0gICAgICAgICBUT0JOKDB4YTlkNWJkMzYsIDB4NzQ2NjA4NzYpLCBUT0JOKDB4
MTFkNjdjNTQsIDB4YjQ1ZGZmMzUpLAotICAgICAgICAgVE9CTigweDZhZjdkMTQ4LCAweGE0ZjVk
YTk0KSwgVE9CTigweGJiOGQ0YzNmLCAweGMwYmJlYjMxKSwKLSAgICAgICAgIFRPQk4oMHg4N2E3
ZWJkMSwgMHhlMGExYjEyYSksIFRPQk4oMHgxZTRlZjg4ZCwgMHg3NzBiYTk1ZiksCi0gICAgICAg
ICBUT0JOKDB4OGMzMzM0NWMsIDB4ZGMyYWU5Y2IpLCBUT0JOKDB4Y2VjZjEyNzYsIDB4MDFjYzg0
MDMpLAotICAgICAgICAgVE9CTigweDY4N2MwMTJlLCAweDFiMzliODBmKSwgVE9CTigweGZkOTBk
MGFkLCAweDM1YzMzYmE0KSwKLSAgICAgICAgIFRPQk4oMHhhM2VmNWE2NywgMHg1Yzk2NjFjMiks
IFRPQk4oMHgzNjhmYzg4ZSwgMHhlMDE3NDI5ZSksCi0gICAgICAgICBUT0JOKDB4ZDMwYzY3NjEs
IDB4MTk2YTJmYTIpLCBUT0JOKDB4OTMxYjk4MTcsIDB4YmQ1YjMxMmUpLAotICAgICAgICAgVE9C
TigweGJhMDEwMDBjLCAweDcyZjU0YTMxKSwgVE9CTigweGEyMDNkMmM4LCAweDY2ZWFhNTQxKSwK
LSAgICAgICAgIFRPQk4oMHhmMmFiZGVlMCwgMHg5ODkzOWRiMyksIFRPQk4oMHhlMzdkNmMyYywg
MHgzZTYwNmMwMiksCi0gICAgICAgICBUT0JOKDB4ZjI5MjE1NzQsIDB4NTIxZmY2NDMpLCBUT0JO
KDB4Mjc4MWIzYzQsIDB4ZDdlMmZjYTMpLAotICAgICAgICAgVE9CTigweDY2NDMwMGIwLCAweDc4
NTBlYzA2KSwgVE9CTigweGFjNWEzOGI5LCAweDdkM2ExMGNmKSwKLSAgICAgICAgIFRPQk4oMHg5
MjMzMTg4ZCwgMHhlMzRhYjM5ZCksIFRPQk4oMHhlNzcwNTdlNCwgMHg1MDcyY2JiOSksCi0gICAg
ICAgICBUT0JOKDB4YmNmMGMwNDIsIDB4YjU5ZTc4ZGYpLCBUT0JOKDB4NGNmYzkxZTgsIDB4MWQ5
N2RlNTIpLAotICAgICAgICAgVE9CTigweDQ2NjFhMjZjLCAweDNlZTBjYTRhKSwgVE9CTigweDU2
MjBhNGMxLCAweGZiODUwN2JjKSwKLSAgICAgICAgIFRPQk4oMHg0YjQ0ZDRhYSwgMHgwNDlmODQy
YyksIFRPQk4oMHhjZWFiYzVkNSwgMHgxNTQwZTgyYiksCi0gICAgICAgICBUT0JOKDB4MzA2NzEw
ZmQsIDB4MTVjNmYxNTYpLCBUT0JOKDB4YmU1YWU1MmIsIDB4NjNkYjFkNzIpLAotICAgICAgICAg
VE9CTigweDA2ZjFlN2U2LCAweDMzNDk1N2YxKSwgVE9CTigweDU3ZTM4OGYwLCAweDMxMTQ0YTcw
KSwKLSAgICAgICAgIFRPQk4oMHhmYjY5YmIyZiwgMHhkZjk2NDQ3YiksIFRPQk4oMHgwZjc4ZWJk
MywgMHg3M2UzOGExMiksCi0gICAgICAgICBUT0JOKDB4YjgyMjI2MDUsIDB4MmI3Y2U1NDIpLCBU
T0JOKDB4ZTZkNGNlOTksIDB4NzQ3MmJkZTEpLAotICAgICAgICAgVE9CTigweDUzZTE2ZWJlLCAw
eDA5ZDJmNGRhKSwgVE9CTigweDE4MGZmNDJlLCAweDUzYjkyYjJlKSwKLSAgICAgICAgIFRPQk4o
MHhjNTliY2MwMiwgMHgyYzM0YTFjNiksIFRPQk4oMHgzODAzZDZmOSwgMHg0MjJjNDZjMiksCi0g
ICAgICAgICBUT0JOKDB4MThhZmY3NGYsIDB4NWMxNGE4YTIpLCBUT0JOKDB4NTVhZWJmODAsIDB4
MTBhMDhiMjgpLAotICAgICAgICAgVE9CTigweDY2MDk3ZDU4LCAweDcxMzU1OTNmKSwgVE9CTigw
eDMyZTZlZmY3LCAweDJiZTU3MGNkKSwKLSAgICAgICAgIFRPQk4oMHg1ODRlNmExMCwgMHgyYThj
ODYwZCksIFRPQk4oMHhjZDE4NTg5MCwgMHhhMmViNDE2MyksCi0gICAgICAgICBUT0JOKDB4N2Nl
YWU5OWQsIDB4NmQ5N2UxMzQpLCBUT0JOKDB4ZDQyYzZiNzAsIDB4ZGQ4NDQ3Y2UpLAotICAgICAg
ICAgVE9CTigweDU5ZGRiYjRhLCAweGI4YzUwMjczKSwgVE9CTigweDAzYzYxMmRmLCAweDNjZjM0
ZTFlKSwKLSAgICAgICAgIFRPQk4oMHg4NGI5Y2ExNSwgMHgwNGI2YzVhMCksIFRPQk4oMHgzNTIx
NmYzOSwgMHgxOGYwZTNhMyksCi0gICAgICAgICBUT0JOKDB4M2VjMmQyYmMsIDB4YmQ5ODZjMDAp
LCBUT0JOKDB4OGJmNTQ2ZDksIDB4ZDE5MjI4ZmUpLAotICAgICAgICAgVE9CTigweGQxYzY1NWE0
LCAweDRjZDYyM2MzKSwgVE9CTigweDM2NmNlNzE4LCAweDUwMmI4ZTVhKSwKLSAgICAgICAgIFRP
Qk4oMHgyY2ZjODRiNCwgMHhlZWEwYmZlNyksIFRPQk4oMHhlMDFkNWNlZSwgMHhjZjQ0M2U4ZSks
Ci0gICAgICAgICBUT0JOKDB4OGVjMDQ1ZDksIDB4MDM2NTIwZjgpLCBUT0JOKDB4ZGZiM2MzZDEs
IDB4OTJkNDBlOTgpLAotICAgICAgICAgVE9CTigweDBiYWM0Y2NlLCAweGNjNTU5YTA0KSwgVE9C
TigweDM1ZWNjYWU1LCAweDI0MGVhNmIxKSwKLSAgICAgICAgIFRPQk4oMHgxODBiMzJkYiwgMHhm
OGE1YTBhYyksIFRPQk4oMHg1NDc5NzJhNSwgMHhlYjY5OTcwMCksCi0gICAgICAgICBUT0JOKDB4
YTM3NjU4MDEsIDB4Y2EyNmJjYTApLCBUT0JOKDB4NTdlMDlkMGUsIDB4YTY0N2YyNWEpLAotICAg
ICAgICAgVE9CTigweGI5NTY5NzBlLCAweDJmZGQyM2NjKSwgVE9CTigweGI4MDI4OGJjLCAweDU2
ODJlOTcxKSwKLSAgICAgICAgIFRPQk4oMHhlNmU2ZDkxZSwgMHg5YWU4NmViYyksIFRPQk4oMHgw
NTY0YzgzZiwgMHg4YzlmMTkzOSksCi0gICAgICAgICBUT0JOKDB4NTUxOTMyYTIsIDB4Mzk1NjAz
NjgpLCBUT0JOKDB4ZTg5Mzc1MmIsIDB4MDQ5YzI4ZTIpLAotICAgICAgICAgVE9CTigweDBiMDNj
ZWU1LCAweGE2YTE1OGMzKSwgVE9CTigweGUxMmQ2NTZiLCAweDA0OTY0MjYzKSwKLSAgICAgICAg
IFRPQk4oMHg0YjQ3NTU0ZSwgMHg2M2UzYmMxZCksIFRPQk4oMHhjNzE5YjZhMiwgMHg0NTA0NGZm
NyksCi0gICAgICAgICBUT0JOKDB4NGYyNGQzMGEsIDB4ZTQ4ZGFhMDcpLCBUT0JOKDB4YTNmMzc1
NTYsIDB4YzhjMWVkYzMpLAotICAgICAgICAgVE9CTigweDlhNDdiZjc2LCAweDA3MDBkMzYwKSwg
VE9CTigweGJiMWExODI0LCAweDgyMmFlNGUyKSwKLSAgICAgICAgIFRPQk4oMHgyMmUyNzVhMywg
MHg4OWYxZmI0YyksIFRPQk4oMHg3MmIxYWEyMywgMHg5OTY4YzVmNSksCi0gICAgICAgICBUT0JO
KDB4YTc1ZmVhY2EsIDB4YmUwNjNmNjQpLCBUT0JOKDB4OWIzOTJmNDMsIDB4YmNlNDdhMDkpLAot
ICAgICAgICAgVE9CTigweGQ0MjQxNTA5LCAweDFhZDA3YWNhKSwgVE9CTigweDRiMGM1OTFiLCAw
eDhkMjZjZDBmKSwKLSAgICAgICAgIFRPQk4oMHgyZDQyZGRmZCwgMHg5MmYxMTY5YSksIFRPQk4o
MHg2M2FlYjFhYywgMHg0Y2JmMjM5MiksCi0gICAgICAgICBUT0JOKDB4MWRlOWU4NzcsIDB4MDY5
MWEyYWYpLCBUT0JOKDB4ZWJlNzlhZjcsIDB4ZDk4MDIxZGEpLAotICAgICAgICAgVE9CTigweGNm
ZGYyYTRlLCAweDQwZTUwYWNmKSwgVE9CTigweGYwYTk4YWQ3LCAweGFmMDFkNjY1KSwKLSAgICAg
ICAgIFRPQk4oMHhlZmI2NDBiZiwgMHgxODMxYmUxZiksIFRPQk4oMHg2ZmU4YmQyZiwgMHg4MGU5
YWRhMCksCi0gICAgICAgICBUT0JOKDB4OTRjMTAzYTEsIDB4NmNhZmJjOTEpLCBUT0JOKDB4MTcw
Zjg3NTksIDB4ODMwOGUwOGMpLAotICAgICAgICAgVE9CTigweDVkZTJkMmFiLCAweDk3ODBmZjRm
KSwgVE9CTigweDY2NjQ2NmJjLCAweDQ1YjIwMWYyKSwKLSAgICAgICAgIFRPQk4oMHg1OGFmMjAx
MCwgMHhmNWIzNDNiYyksIFRPQk4oMHgwZjJlNDAwYSwgMHhmMmYxNDJmZSksCi0gICAgICAgICBU
T0JOKDB4MzQ4M2JmZGUsIDB4YTg1ZjRiZGYpLCBUT0JOKDB4ZjBiMWQwOTMsIDB4MDNiZmVhYTkp
LAotICAgICAgICAgVE9CTigweDJlYTAxYjk1LCAweGM3MDgxNjAzKSwgVE9CTigweGU5NDNlNGM5
LCAweDNkYmExMDk3KSwKLSAgICAgICAgIFRPQk4oMHg0N2JlOTJhZCwgMHhiNDM4ZjNhNiksIFRP
Qk4oMHgwMGJiNzc0MiwgMHhlNWJmNjYzNiksCi0gICAgICAgICBUT0JOKDB4MTM2YjcwODMsIDB4
ODI0Mjk3YjQpLCBUT0JOKDB4OWQwZTU1ODAsIDB4NTU4NDQ1NWYpLAotICAgICAgICAgVE9CTigw
eGFiNDhjZWRjLCAweGYxYzdkNjllKSwgVE9CTigweDUzYTllNDgxLCAweDJhMjU2ZTc2KSwKLSAg
ICAgICAgIFRPQk4oMHgwNDAyYjBlMCwgMHg2NWViMjQxMyksIFRPQk4oMHhkYWRiYmI4NCwgMHg4
ZmM0MDdhNyksCi0gICAgICAgICBUT0JOKDB4YTY1Y2Q1YTQsIDB4OGQ3ZjU0OTIpLCBUT0JOKDB4
MjFkNDQyOTMsIDB4NzRiYWUyOTQpLAotICAgICAgICAgVE9CTigweDY2OTE3Y2U2LCAweDNiNWYx
Y2M0KSwgVE9CTigweDM3YWU1MmVhLCAweGNlODcyZTYyKSwKLSAgICAgICAgIFRPQk4oMHhiYjA4
N2I3MiwgMHgyOTA1ZjI0NCksIFRPQk4oMHgxMjA3NzA4NiwgMHgxZTZhZjc0ZiksCi0gICAgICAg
ICBUT0JOKDB4NGI2NDRlNDksIDB4MTA1OGVkZWEpLCBUT0JOKDB4ODI3NTEwZTMsIDB4YjYzOGNh
MWQpLAotICAgICAgICAgVE9CTigweDhjZjJiNzA0LCAweDYwMzg1OTFjKSwgVE9CTigweGZmYzhi
NDdhLCAweGZlNjM1MDYzKSwKLSAgICAgICAgIFRPQk4oMHgzYWUyMjBlNiwgMHgxYjRkNWU2Myks
IFRPQk4oMHhiZDg2NDc0MiwgMHg5ZDk2MWI0YiksCi0gICAgICAgICBUT0JOKDB4NjEwYzEwN2Us
IDB4OWJkMTZiZWQpLCBUT0JOKDB4NDI3MDM1MmEsIDB4MTEyNzE0N2IpLAotICAgICAgICAgVE9C
TigweDdkMTdmZmU2LCAweDY0Y2ZjNTBlKSwgVE9CTigweDUwZGVlMDFhLCAweDFlMzZjYjQyKSwK
LSAgICAgICAgIFRPQk4oMHgwNjhhNzYyMiwgMHgzNWRjNWY5YSksIFRPQk4oMHg5YTA4ZDUzNiwg
MHhkZjUzZjYyYyksCi0gICAgICAgICBUT0JOKDB4NGVkNzE0NTcsIDB4NmJlNWY3ZGUpLCBUT0JO
KDB4ZDkzMDA2ZjgsIDB4YzIyNjNjOWUpLAotICAgICAgICAgVE9CTigweGUwNzM2OTRjLCAweGNh
Y2FjYjM2KSwgVE9CTigweDJmZjdhNWI0LCAweDNhZTExOGFiKSwKLSAgICAgICAgIFRPQk4oMHgz
Y2NlNTNmMSwgMHhjZDg3MTIzNiksIFRPQk4oMHhmMTU2YTM5ZCwgMHhjMmFhNmQ1MiksCi0gICAg
ICAgICBUT0JOKDB4OWNjNWYyNzEsIDB4YjE5OGQ3NmQpLCBUT0JOKDB4YmM2MTViNmYsIDB4ODEz
ODNkMzkpLAotICAgICAgICAgVE9CTigweGE1NDUzOGU4LCAweGRlM2VlZTZiKSwgVE9CTigweDU4
Yzc3NTM4LCAweGFiOTEwZDkxKSwKLSAgICAgICAgIFRPQk4oMHgzMWU1YmRiYywgMHg1OGQyNzhi
ZCksIFRPQk4oMHgzY2RlNGFkZiwgMHhiOTYzYWNhZSksCi0gICAgICAgICBUT0JOKDB4YjE4ODFm
ZDIsIDB4NTMwMjE2OWMpLCBUT0JOKDB4OGNhNjBmYTAsIDB4YTk4OWVkOGIpLAotICAgICAgICAg
VE9CTigweGExOTk5NDU4LCAweGZmOTZhMGVlKSwgVE9CTigweGMxMTQxZjAzLCAweGFjNmMyODNk
KSwKLSAgICAgICAgIFRPQk4oMHg3Njc3NDA4ZCwgMHg2ZGZhZmVkMyksIFRPQk4oMHgzM2EwMTY1
MywgMHgzOTY2MTU4OCksCi0gICAgICAgICBUT0JOKDB4M2M5YzE1ZWMsIDB4MGI3MjZmYTApLCBU
T0JOKDB4MDkwY2ZkOTMsIDB4NmM5YjU2ZGEpLAotICAgICAgICAgVE9CTigweGUzNGY0YmFlLCAw
eGEzYzQwYWY1KSwgVE9CTigweDM0NjllYWRiLCAweGQyMTEyOWYxKSwKLSAgICAgICAgIFRPQk4o
MHhjYzUxNjc0YSwgMHgxZTIwN2NlOCksIFRPQk4oMHgxZTI5M2IyNCwgMHhjODNiMWVmOSksCi0g
ICAgICAgICBUT0JOKDB4MTcxNzNkMTMsIDB4MWU2YzBiYjQpLCBUT0JOKDB4MTkwMDQ2OTUsIDB4
OTA3NzZkMzUpLAotICAgICAgICAgVE9CTigweGU3OTgwZTM0LCAweDZkZTZmOTIyKSwgVE9CTigw
eDg3MzU1NGNiLCAweGY0ZGQ5YTIyKSwKLSAgICAgICAgIFRPQk4oMHgwMzE2YzYyNywgMHhjYmYx
OGE1MSksIFRPQk4oMHg0ZDkzNjUxYiwgMHgzMDMyYzA4MSksCi0gICAgICAgICBUT0JOKDB4MjA3
ZjI3NzEsIDB4Mzk0NjgzNGQpLCBUT0JOKDB4MmMwOGQ3YjQsIDB4MzBjZGJmODApLAotICAgICAg
ICAgVE9CTigweDEzN2E0ZmI0LCAweDg2ZGYyYTYxKSwgVE9CTigweGExZWQ5YzA3LCAweGVjZjdi
NGEyKSwKLSAgICAgICAgIFRPQk4oMHhiMmU0NjBlMiwgMHg3YmQwNDJmZiksIFRPQk4oMHhiN2Y1
ZTJmYSwgMHg1ZjYyZjVlYyksCi0gICAgICAgICBUT0JOKDB4N2FhNmVjNmIsIDB4Y2MyNDIzYjcp
LCBUT0JOKDB4NzVjZTBhN2YsIDB4YmE2M2VlYTcpLAotICAgICAgICAgVE9CTigweDY3YTQ1ZmIx
LCAweGYyNTBhNmUxKSwgVE9CTigweDkzYmM5MTljLCAweGU1M2NkYzlmKSwKLSAgICAgICAgIFRP
Qk4oMHg5MjcxZjU2ZiwgMHg4NzE5NDJkZiksIFRPQk4oMHgyMzcyZmY2ZiwgMHg3ODU5YWQ2Niks
Ci0gICAgICAgICBUT0JOKDB4NWY0YzJiOTYsIDB4MzNjYjFhNzgpLCBUT0JOKDB4ZTNlMjkxMDEs
IDB4NTgzOGFhODMpLAotICAgICAgICAgVE9CTigweGE3ZWQxNjExLCAweGU0ZTgxMTBjKSwgVE9C
TigweDJhMmQ3MGQ1LCAweDMzMDE5OGNlKSwKLSAgICAgICAgIFRPQk4oMHhiZGYxMzJlOCwgMHg2
NzIwZWZlMCksIFRPQk4oMHhlNjFhODk2MiwgMHg2NmE0NzFiZiksCi0gICAgICAgICBUT0JOKDB4
Nzk2ZDNhODUsIDB4ODI1ODA4YmQpLCBUT0JOKDB4NTFkYzNjYjcsIDB4M2ZkNmU5MDIpLAotICAg
ICAgICAgVE9CTigweDY0M2M3NjhhLCAweDkxNjIxOWQxKSwgVE9CTigweDM2Y2Q3Njg1LCAweGEy
YWQ3ZDMyKSwKLSAgICAgICAgIFRPQk4oMHhlM2RiOWQwNSwgMHhiMjI5MjJhNCksIFRPQk4oMHg2
NDk0Yzg3ZSwgMHhkYmEyOTY2MCksCi0gICAgICAgICBUT0JOKDB4ZjBhYzkxZGYsIDB4YmNkMmVi
YzcpLCBUT0JOKDB4NGRlYjU3YTAsIDB4NDUxMDdmOGQpLAotICAgICAgICAgVE9CTigweDQyMjcx
ZjU5LCAweGMzZDEyYTczKSwgVE9CTigweDVmNzE2ODdjLCAweGE1YzJjNTFkKSwKLSAgICAgICAg
IFRPQk4oMHhjYjFmNTBjNiwgMHgwNTc5N2JjYiksIFRPQk4oMHgyOWVkMGVkOSwgMHhkNmQzNGVi
MCksCi0gICAgICAgICBUT0JOKDB4ZTVmZTViNDcsIDB4NDY4M2MyZWIpLCBUT0JOKDB4NDk1NmVl
YjUsIDB4OTc0NDdjNDYpLAotICAgICAgICAgVE9CTigweDViMTYzYTQzLCAweDcxMjA3MTY3KSwg
VE9CTigweDkzZmEyZmVkLCAweDAyNDhjNWVmKSwKLSAgICAgICAgIFRPQk4oMHg2NzkzMGFmMiwg
MHgzMWY2Mzk1MCksIFRPQk4oMHhhNzc3OTdjMSwgMHgxNGNhYTJjOSksCi0gICAgICAgICBUT0JO
KDB4NTI2ZTgwZWUsIDB4MjdhYzdlNjIpLCBUT0JOKDB4ZTFlNmU2MjYsIDB4NThiMjhhZWMpLAot
ICAgICAgICAgVE9CTigweDYzNjE3OGIwLCAweGIzYzlmZWYwKSwgVE9CTigweGFmNzc1MmUwLCAw
eDZkNWY5MGJlKSwKLSAgICAgICAgIFRPQk4oMHg5NGVjYWYxOCwgMHhlZWNlNTFjZiksIFRPQk4o
MHgyODY0ZDBlZCwgMHhjYTgwNmUxZiksCi0gICAgICAgICBUT0JOKDB4NmRlMmUzODMsIDB4OTdj
NjkxMzQpLCBUT0JOKDB4NWE0MmMzMTYsIDB4ZWIyOTEyOTMpLAotICAgICAgICAgVE9CTigweGM3
Nzc5MjE5LCAweDZhNjBiYWUwKSwgVE9CTigweGEyNGRlMzQ2LCAweDZiNzU5OWQxKSwKLSAgICAg
ICAgIFRPQk4oMHg0OWQzNzRhYSwgMHhiNzVkNDk0MSksIFRPQk4oMHg5ODkwMDU4NiwgMHgyZDUw
MWZmMCksCi0gICAgICAgICBUT0JOKDB4OWYxNmQ0MGUsIDB4ZWI3OTc0Y2YpLCBUT0JOKDB4MTAz
Mzg2MGIsIDB4Y2RkOGMxMTUpLAotICAgICAgICAgVE9CTigweGI2YzY5YWM4LCAweDIwOTRjZWMz
KSwgVE9CTigweDk5NzZmYjg4LCAweDQwM2I3NzBjKSwKLSAgICAgICAgIFRPQk4oMHgxZGVhMDI2
YywgMHg0ODU5NTkwZCksIFRPQk4oMHhiNmFjYmI0NiwgMHg4NTYyZDFmZCksCi0gICAgICAgICBU
T0JOKDB4N2NkNmM0NjEsIDB4NDQ1NjlkODUpLCBUT0JOKDB4YzMxOTBhMzYsIDB4OTdmMDg5MWQp
LAotICAgICAgICAgVE9CTigweGM2ZjUzMTk1LCAweDQ4ZDVhMTdkKSwgVE9CTigweDdkOTE5OTY2
LCAweGQ3NDlhYmM4KSwKLSAgICAgICAgIFRPQk4oMHg2NTEwNDgzNywgMHhkZDFjOGEyMCksIFRP
Qk4oMHg3ZTU0MTBjOCwgMHgyZjY4MzQxOSksCi0gICAgICAgICBUT0JOKDB4OTU4YzNjYTgsIDB4
YmU5NDAyMmUpLCBUT0JOKDB4NjA1YzMxOTcsIDB4NjE0NWRhYzIpLAotICAgICAgICAgVE9CTigw
eDNmYzA3NTAxLCAweDAxNjgzZDU0KSwgVE9CTigweDFkNzEyN2M1LCAweDU5NWIxMjM0KSwKLSAg
ICAgICAgIFRPQk4oMHgxMGI4Zjg3YywgMHg5NDgxMjc3ZiksIFRPQk4oMHg2NzdkYjJhOCwgMHhl
NjVhMWFkYiksCi0gICAgICAgICBUT0JOKDB4ZWMyZmNjYWEsIDB4ZGRjZTMzNDUpLCBUT0JOKDB4
MmE2ODExYjcsIDB4MDEyYTQzNTApLAotICAgICAgICAgVE9CTigweDk2NzYwZmYxLCAweGFjNTk4
YmRjKSwgVE9CTigweDA1NGQ2NTJhLCAweGQxYmY0MTI4KSwKLSAgICAgICAgIFRPQk4oMHgwYTEx
NTFkNCwgMHg5MmEyMTAwNSksIFRPQk4oMHhhZDdmMzk3MSwgMHgzMzExMGZkZiksCi0gICAgICAg
ICBUT0JOKDB4OGM5NTkyOGMsIDB4MTk2MDEwMGYpLCBUT0JOKDB4NmM5MWM4MjUsIDB4N2JmMDMz
NjIpLAotICAgICAgICAgVE9CTigweGM4YzhiMmEyLCAweGNlMzA5ZjA2KSwgVE9CTigweGZkYjI3
YjU5LCAweGNhMjcyMDRiKSwKLSAgICAgICAgIFRPQk4oMHhkMjIzZWFhNSwgMHgwODQ4ZTMyZSks
IFRPQk4oMHhiOTNlNGIyZSwgMHhlN2JmYWYxZSksCi0gICAgICAgICBUT0JOKDB4YzUzMDhhZTYs
IDB4NDRhYTNkZWQpLCBUT0JOKDB4MzE3YTY2NmEsIDB4YzAxNWQ1NzMpLAotICAgICAgICAgVE9C
TigweGM4ODhjZTIzLCAweDFhOTc5NzA3KSwgVE9CTigweGYxNDFjMWU2LCAweDBkNWM0OTU4KSwK
LSAgICAgICAgIFRPQk4oMHhiNTNiN2RlNSwgMHg2MTkwNjM3MyksIFRPQk4oMHg4NThkYmFkZSwg
MHhlYjk5OTU5NSksCi0gICAgICAgICBUT0JOKDB4OGNiYjQ3YjIsIDB4YTU5ZTVjMzYpLCBUT0JO
KDB4NjYwMzE4YjMsIDB4ZGNmNGU4NDIpLAotICAgICAgICAgVE9CTigweGJkMTYxY2NkLCAweDEy
YmE0YjdhKSwgVE9CTigweGYzOTlkYWFiLCAweGY4YzgyODJhKSwKLSAgICAgICAgIFRPQk4oMHgx
NTg3NjMzYSwgMHhlZWIyMTMwZCksIFRPQk4oMHhhNDY1MzExYSwgMHhkYTM4ZGQ3ZCksCi0gICAg
ICAgICBUT0JOKDB4NWY3NWVlYzgsIDB4NjRkMzc3OWIpLCBUT0JOKDB4M2M1ZDA0NzYsIDB4YWQ2
NGMxNzEpLAotICAgICAgICAgVE9CTigweDg3NDEwMzcxLCAweDJhOTE0NDI4KSwgVE9CTigweDgw
OTZhODkxLCAweDkwZTJmYzI5KSwKLSAgICAgICAgIFRPQk4oMHhkM2QyYWU5ZCwgMHgyM2IzZWJj
MiksIFRPQk4oMHg5MGJkZDZkYiwgMHhhNTgwY2ZkNiksCi0gICAgICAgICBUT0JOKDB4NTJkYmI3
ZjMsIDB4YzViMDFmNmMpLCBUT0JOKDB4ZTY4ZWRlZDQsIDB4ZTEwMmEyZGMpLAotICAgICAgICAg
VE9CTigweDE3Nzg1Yjc3LCAweDk5ZWI2ZGYwKSwgVE9CTigweDI2YzNjYzUxLCAweDczODZiNzc5
KSwKLSAgICAgICAgIFRPQk4oMHgzNDVlZDk4OCwgMHg2NDE3YTQ4ZSksIFRPQk4oMHhlOTkwYjRl
NCwgMHgwN2Q2ZWYzMSksCi0gICAgICAgICBUT0JOKDB4MGY0NTZiN2UsIDB4MjU4NmFiYmEpLCBU
T0JOKDB4MjM5Y2E2YTUsIDB4NTljOTZlOWEpLAotICAgICAgICAgVE9CTigweGUzMjc0NTljLCAw
eGUyZWI0MjA2KSwgVE9CTigweDNhNGMzMzEzLCAweGEwMDJiOTBhKSwKLSAgICAgICAgIFRPQk4o
MHgyYTExNDgwNiwgMHhmNmEzZjZmYiksIFRPQk4oMHhhZDVjYWQyZiwgMHg4NWMyNTFkZCksCi0g
ICAgICAgICBUT0JOKDB4OTJjMWY2MTMsIDB4ZjVhNzg0ZDMpLCBUT0JOKDB4ZWM3YmZhY2YsIDB4
MzQ5NzY2ZDUpLAotICAgICAgICAgVE9CTigweDA0YjNjZDMzLCAweDNlMjNjYjNiKSwgVE9CTigw
eDM5NzlmZTg0LCAweGM1YTY0YjJkKSwKLSAgICAgICAgIFRPQk4oMHgxOTJlMjcyMCwgMHg3ZTU4
OTEwNiksIFRPQk4oMHhhNjBjNDNkMSwgMHhhMTViNTI3ZiksCi0gICAgICAgICBUT0JOKDB4MmRh
ZTkwODIsIDB4YmU3Y2YzYTYpLCBUT0JOKDB4Y2M4NmJhOTIsIDB4YmM5NjcyNzQpLAotICAgICAg
ICAgVE9CTigweGYyOGEyY2U4LCAweGFlYTBhOGE5KSwgVE9CTigweDQwNGNhNmQ5LCAweDZlZTk4
OGIzKSwKLSAgICAgICAgIFRPQk4oMHhmZDdlOWM1ZCwgMHgwMDU5MjFiOCksIFRPQk4oMHhmNTYy
OTdmMSwgMHg0NGU3OWJmOSksCi0gICAgICAgICBUT0JOKDB4YTE2M2I0NjAsIDB4MGQ3NWRkYzIp
LCBUT0JOKDB4MzBiMjM2MTYsIDB4YTFmMmJlODcpLAotICAgICAgICAgVE9CTigweDRiMDcwZDIx
LCAweGJmZTUwZTJiKSwgVE9CTigweDdlZjhjZmQwLCAweGUxYmZlZGUxKSwKLSAgICAgICAgIFRP
Qk4oMHhhZGJhMDAxMSwgMHgyYWFjNGFlMCksIFRPQk4oMHgyYTNlN2QwMSwgMHhiOWViZDAzMyks
Ci0gICAgICAgICBUT0JOKDB4OTk1Mjc3ZWMsIDB4ZTM4ZDlkMWMpLCBUT0JOKDB4YjUwMDI0OWUs
IDB4OWM1ZDJkZTMpLAotICAgICAgICAgVE9CTigweDg5MTJiODIwLCAweGYxM2NhOGM5KSwgVE9C
TigweGM4Nzk4MTE0LCAweDg3Nzc5M2FmKSwKLSAgICAgICAgIFRPQk4oMHgxOWU2MTI1ZCwgMHhl
YzNmMWRlYyksIFRPQk4oMHgwN2IxZjA0MCwgMHg5MTExNzhkYSksCi0gICAgICAgICBUT0JOKDB4
ZDkzZWRlZGEsIDB4OTA0YTY3MzgpLCBUT0JOKDB4NTUxODdhNWEsIDB4MGJlYmVkY2QpLAotICAg
ICAgICAgVE9CTigweGY3ZDA0NzIyLCAweGViMzI5ZDQxKSwgVE9CTigweGY0NDkwOTllLCAweGYx
NzBiMzkxKSwKLSAgICAgICAgIFRPQk4oMHhmZDMxN2E2OSwgMHhjYTk5ZjgyOCksIFRPQk4oMHg1
MGMzZGIyYiwgMHgzNGE0OTc2ZCksCi0gICAgICAgICBUT0JOKDB4ZTliYTc3ODQsIDB4Mzc1N2Iz
OTIpLCBUT0JOKDB4MzI2Y2FlZmQsIDB4YWEzY2EwNWEpLAotICAgICAgICAgVE9CTigweDc4ZTUy
OTNiLCAweGYxZTU5M2Q0KSwgVE9CTigweDc4NDJhOTM3LCAweDBkOThmZDEzKSwKLSAgICAgICAg
IFRPQk4oMHhlNjk0YmY5NiwgMHg1Zjk2YjEwZCksIFRPQk4oMHgzNzNhOWRmNiwgMHgwNmE4Y2Qw
NSksCi0gICAgICAgICBUT0JOKDB4OTk3ZDFlNTEsIDB4ZThmMGM3ZmMpLCBUT0JOKDB4MWQwMTk3
OTAsIDB4NjNmZDk3MmUpLAotICAgICAgICAgVE9CTigweDAwNjRkODU4LCAweDU0OTlmYjMyKSwg
VE9CTigweDdiNjdiYWQ5LCAweDc3YThhZWI3KSwKLSAgICAgICAgIFRPQk4oMHgxZDNlYjk3Nywg
MHgyZDA4ZWVjNSksIFRPQk4oMHg1ZmMwNDdhNiwgMHhjYmFiYWUxZCksCi0gICAgICAgICBUT0JO
KDB4MDU3N2QxNTksIDB4ZTU0YTY0YmIpLCBUT0JOKDB4ODg2MjIwMWIsIDB4YzQzNDk3ZTQpLAot
ICAgICAgICAgVE9CTigweGFkNmI0ZTI4LCAweDJjZTA2MDhkKSwgVE9CTigweDhiNjg3YjdkLCAw
eDBiMTY3YWFjKSwKLSAgICAgICAgIFRPQk4oMHg2ZWQ0ZDM2NywgMHg4YjJlY2ZhOSksIFRPQk4o
MHgyNGRmZTYyZCwgMHhhOTBjM2MzOCksCi0gICAgICAgICBUT0JOKDB4YTE4NjJlMTAsIDB4M2Zl
NWM0MmIpLCBUT0JOKDB4MWNhNzNkY2EsIDB4ZDU3MzJhOWYpLAotICAgICAgICAgVE9CTigweDM1
ZjAzOGI3LCAweDc2YmI4N2FkKSwgVE9CTigweDY3NDk3NmFiLCAweGYyNDJiODFmKSwKLSAgICAg
ICAgIFRPQk4oMHg0ZjJiZGU3ZSwgMHhiMGZkOTBjZCksIFRPQk4oMHg2ZWZjMTcyZSwgMHhhN2Zk
ZjA5MiksCi0gICAgICAgICBUT0JOKDB4MzgwNmI2OWIsIDB4OTIyMjJmMWYpLCBUT0JOKDB4NWEy
NDU5Y2EsIDB4NmNmN2FlNzApLAotICAgICAgICAgVE9CTigweDY3ODlmNjljLCAweGE4NTIxN2Vl
KSwgVE9CTigweDVmMjMyYjVlLCAweGUzZGM4NWFjKSwKLSAgICAgICAgIFRPQk4oMHg2NjBlM2Vj
NSwgMHg0OGU5ZTUxNiksIFRPQk4oMHgxMjRiNGU0NywgMHgzMTk3ZWIzMSksCi0gICAgICAgICBU
T0JOKDB4MTBhMGNiMTMsIDB4YWFmY2NhMjMpLCBUT0JOKDB4N2JkNjNiYTQsIDB4ODIxMzIyNGYp
LAotICAgICAgICAgVE9CTigweGFmZmFkN2NjLCAweDI5MGE3ZjRmKSwgVE9CTigweDZiNDA5Yzll
LCAweDAyODZiNDYxKSwKLSAgICAgICAgIFRPQk4oMHg1OGFiODA5ZiwgMHhmZmE0MDdhZiksIFRP
Qk4oMHhjMzEyMmVlZCwgMHhjNjhhYzA3MyksCi0gICAgICAgICBUT0JOKDB4MTdiZjllNTAsIDB4
NGVmMjRkN2UpLCBUT0JOKDB4NWQ5Mjk3OTQsIDB4M2UyYTU4MTEpLAotICAgICAgICAgVE9CTigw
eDUxOWJjODY3LCAweDAyOTAyZTAxKSwgVE9CTigweDc2YmJhNWRhLCAweDM5YzhhODUxKSwKLSAg
ICAgICAgIFRPQk4oMHhlOWY5NjY5YywgMHhkYTk0OTUxZSksIFRPQk4oMHg0YjZhZjU4ZCwgMHg2
NmI4ZDQxOCksCi0gICAgICAgICBUT0JOKDB4ZmEzMjEwNzQsIDB4MTdkNDI2YTQpLCBUT0JOKDB4
Yzc4ZTY2YTksIDB4OWRkZTYwMjcpLAotICAgICAgICAgVE9CTigweDA1MTZjMDgzLCAweDRhNTNi
OTY0KSwgVE9CTigweGZjNjU5ZDM4LCAweGZmNjAyMzMwKSwKLSAgICAgICAgIFRPQk4oMHgwYWI1
NWU1YywgMHg1OGM1Yzg5NyksIFRPQk4oMHg5ODUwOTliMiwgMHg4MzhiYzVkZiksCi0gICAgICAg
ICBUT0JOKDB4MDYxZDllZmMsIDB4YzUyZmMyMzgpLCBUT0JOKDB4NzEyYjI3MjgsIDB4NmFjMWRh
M2YpLAotICAgICAgICAgVE9CTigweGZiNjU4MTQ5LCAweDkyODNmZTA4KSwgVE9CTigweDQ5NTRh
Yzk0LCAweGI4YWFhMmY3KSwKLSAgICAgICAgIFRPQk4oMHg4NWMwYWRhNCwgMHg3ZmIyZTc0Ziks
IFRPQk4oMHhlZThiYTk4ZSwgMHhiODk5MjZiMCksCi0gICAgICAgICBUT0JOKDB4ZTRmOWQzN2Qs
IDB4MjNkMWFmNWIpLCBUT0JOKDB4MTRjY2RiZjksIDB4YmE5YjAxNWUpLAotICAgICAgICAgVE9C
TigweGI2NzQ0ODFiLCAweDdiZmU3MTc4KSwgVE9CTigweDRlMWRlYmFlLCAweDY1NDA1ODY4KSwK
LSAgICAgICAgIFRPQk4oMHgwNjFiMjgyMSwgMHhjNDhjODY3ZCksIFRPQk4oMHg2OWMxNWIzNSwg
MHg1MTNiMzBlYSksCi0gICAgICAgICBUT0JOKDB4M2I0YTE2NjYsIDB4MzY4NzEwODgpLCBUT0JO
KDB4ZTVlMjlmNWQsIDB4MTIyMGIxZmYpLAotICAgICAgICAgVE9CTigweDRiODJiYjM1LCAweDIz
M2Q5ZjRkKSwgVE9CTigweDRlMDc2MzMzLCAweDE4Y2RjNjc1KX0sCi0gICAgICAgIHtUT0JOKDB4
MGQ1M2Y1YzcsIDB4YTNlNmZjZWQpLCBUT0JOKDB4ZThjYmJkZDUsIDB4ZjQ1ZmJkZWIpLAotICAg
ICAgICAgVE9CTigweGY4NWMwMWRmLCAweDEzMzM5YTcwKSwgVE9CTigweDBmZjcxODgwLCAweDE0
MmNlYjgxKSwKLSAgICAgICAgIFRPQk4oMHg0YzRlODc3NCwgMHhiZDcwNDM3YSksIFRPQk4oMHg1
ZmIzMjg5MSwgMHhiYTBiZGE2YSksCi0gICAgICAgICBUT0JOKDB4MWNkYmViZDIsIDB4ZjE4YmQy
NmUpLCBUT0JOKDB4MmY5NTI2ZjEsIDB4MDNhOWQ1MjIpLAotICAgICAgICAgVE9CTigweDQwY2Uz
MDUxLCAweDkyYzRkNjg0KSwgVE9CTigweDhiMDRkNzI1LCAweDc2MTJlZmNkKSwKLSAgICAgICAg
IFRPQk4oMHhiOWRjZGEzNiwgMHg2ZjljYWUyMCksIFRPQk4oMHgwZWRjNGQyNCwgMHhmMDU4ODU2
YyksCi0gICAgICAgICBUT0JOKDB4NjRmMmU2YmYsIDB4ODU0Mjc5MDApLCBUT0JOKDB4M2RlODEy
OTUsIDB4ZGMwOWRmZWEpLAotICAgICAgICAgVE9CTigweGQ0MWI0NDg3LCAweDM3OWJmMjZjKSwg
VE9CTigweDUwYjYyYzZkLCAweDZkZjEzNWE5KSwKLSAgICAgICAgIFRPQk4oMHhkNGY4ZTNiNCwg
MHhjNzJkZmU2NyksIFRPQk4oMHhjNDE2YjBmNiwgMHg5MGUxOWZkZiksCi0gICAgICAgICBUT0JO
KDB4MThiOTA5OGQsIDB4NGMxM2JkMzUpLCBUT0JOKDB4YWMxMTExOGEsIDB4MTViOGNiOWUpLAot
ICAgICAgICAgVE9CTigweGY1OThhMzE4LCAweGYwMDYyODQxKSwgVE9CTigweGJmZTA2MDJmLCAw
eDg5ZjM1NmY0KSwKLSAgICAgICAgIFRPQk4oMHg3YWUzNjM3ZSwgMHgzMDE3N2EwYyksIFRPQk4o
MHgzNDA5Nzc0NywgMHg2MTEzNjUzNyksCi0gICAgICAgICBUT0JOKDB4MGRiMmZiNWUsIDB4ZDAw
NTgzMmEpLCBUT0JOKDB4NWY1ZWZkM2IsIDB4OTEwNDJlNGYpLAotICAgICAgICAgVE9CTigweDhj
NGZmZGM2LCAweGVkNzBmOGNhKSwgVE9CTigweGU0NjQ1ZDBiLCAweGI1MmRhOWNjKSwKLSAgICAg
ICAgIFRPQk4oMHg5NTk2ZjU4YiwgMHhjOTAwMWQxZiksIFRPQk4oMHg1MmM4ZjBiYywgMHg0ZTEx
NzIwNSksCi0gICAgICAgICBUT0JOKDB4ZmQ0YWEwZDIsIDB4ZTM5OGEwODQpLCBUT0JOKDB4ODE1
YmZlM2EsIDB4MTA0ZjQ5ZGUpLAotICAgICAgICAgVE9CTigweDk3ZTU0NDNmLCAweDIzODg1ZTVm
KSwgVE9CTigweGY3MmY4Zjk5LCAweGU4NDMzYWFiKSwKLSAgICAgICAgIFRPQk4oMHhiZDAwYjE1
NCwgMHhlNGQ0ZTYwNCksIFRPQk4oMHhkMGIzNWU2YSwgMHhlNWUxNzNmZiksCi0gICAgICAgICBU
T0JOKDB4NTdiMmEwNDgsIDB4OTE2NDcyMmQpLCBUT0JOKDB4M2UzYzY2NWIsIDB4ODg3NjFlYzgp
LAotICAgICAgICAgVE9CTigweDZiZGQxMzk3LCAweDNkYTgzODMyKSwgVE9CTigweDNjOGIxYTFl
LCAweDczZGFmZTNiKSwKLSAgICAgICAgIFRPQk4oMHg0NDk3YWNlNiwgMHg1NDMxN2NhYyksIFRP
Qk4oMHhiZTYwMGFiOSwgMHg1MjE3NzFiMyksCi0gICAgICAgICBUT0JOKDB4YjQyZTQwOWUsIDB4
YjBkZmU4YjgpLCBUT0JOKDB4Mzg2YTY3ZDcsIDB4Mzk0MjMxMGYpLAotICAgICAgICAgVE9CTigw
eDI1NTQ4ZDhkLCAweDQ0MzFjYzI4KSwgVE9CTigweGE3Y2ZmMTQyLCAweDk4NWRjNTI0KSwKLSAg
ICAgICAgIFRPQk4oMHg0ZDYwZjVhMSwgMHg5M2M0YmUzMiksIFRPQk4oMHg4M2ViZDVjOCwgMHhk
MDcxYzZlMSksCi0gICAgICAgICBUT0JOKDB4YmEzYTgwYTcsIDB4YjFmZDJiMGIpLCBUT0JOKDB4
OWIzYWQzOTYsIDB4NWJlYzMzZTgpLAotICAgICAgICAgVE9CTigweGIzODY4ZDYxLCAweDc5NzQz
ZmIzKSwgVE9CTigweGNmZDE2OWZjLCAweGZkYjQ2MmZhKSwKLSAgICAgICAgIFRPQk4oMHhkM2I0
OTlkNywgMHg5Y2UwYTZhZiksIFRPQk4oMHg1NWRjMWNmMSwgMHhlNDJkM2ZmOCksCi0gICAgICAg
ICBUT0JOKDB4MDRmYjllNmMsIDB4YzZjM2UxYjIpLCBUT0JOKDB4NDdlNjk2MWQsIDB4NmY2OWE0
NzQpLAotICAgICAgICAgVE9CTigweDU0ZWIzYWNjLCAweGU1NDhiMzdiKSwgVE9CTigweGIzOGU3
NTQyLCAweDg0ZDQwNTQ5KSwKLSAgICAgICAgIFRPQk4oMHg4YzNkYWE1MSwgMHg3YjM0MWI0Ziks
IFRPQk4oMHgyZjY5MjhlYywgMHg2OTBiZjdmYSksCi0gICAgICAgICBUT0JOKDB4MDQ5NmIzMjMs
IDB4ODZjZTZjNDEpLCBUT0JOKDB4MDFiZTFjNTUsIDB4MTBhZGFkY2QpLAotICAgICAgICAgVE9C
TigweGMwNGU2N2U3LCAweDRiYjVmYWY5KSwgVE9CTigweDNjYmFmNjc4LCAweGUxNWM5OTg1KSwK
LSAgICAgICAgIFRPQk4oMHg4Y2QxMjE0NSwgMHg1MGNhNDI0NyksIFRPQk4oMHhiYTFhYTQ3YSwg
MHhlN2RkMzBhYSksCi0gICAgICAgICBUT0JOKDB4MmY4MWRkZjEsIDB4ZTU4ZmVlMjQpLCBUT0JO
KDB4MDM0NTI5MzYsIDB4ZWVjOWIwZTgpLAotICAgICAgICAgVE9CTigweDhiZGMzYjgxLCAweDI0
M2FlYTk2KSwgVE9CTigweDlhMjkxOWFmLCAweDE1YzNkMGU1KSwKLSAgICAgICAgIFRPQk4oMHg5
ZWE2NDBlYywgMHgxMDk0ODM2MSksIFRPQk4oMHg1YWM4NmQ1YiwgMHg2ZTBiY2NjZiksCi0gICAg
ICAgICBUT0JOKDB4Zjg5MmQ5MTgsIDB4YzM2Y2Y0NDApLCBUT0JOKDB4YWVkM2U4MzcsIDB4Yzkz
OTcxOWMpLAotICAgICAgICAgVE9CTigweGIwN2IwOGQyLCAweGMwMjE4YjY0KSwgVE9CTigweDZm
MWJjYmJhLCAweGNlOTc5MGRkKSwKLSAgICAgICAgIFRPQk4oMHg0YTg0ZDZlZCwgMHg2MDkxOWI4
ZSksIFRPQk4oMHhkODkwMDc5MSwgMHg4YWMxZjllYiksCi0gICAgICAgICBUT0JOKDB4Zjg0OTQx
YWEsIDB4MGRkNWRhZWYpLCBUT0JOKDB4YjIyZmU0MGEsIDB4NjdmZDYyYzUpLAotICAgICAgICAg
VE9CTigweDk3ZTE1YmEyLCAweDE1N2YyZGIzKSwgVE9CTigweGJkYTJmYzhmLCAweDhlMjhjYTlj
KSwKLSAgICAgICAgIFRPQk4oMHg1ZDA1MGRhNCwgMHgzN2I5ZjQ1NCksIFRPQk4oMHgzZDU3ZWI1
NywgMHgyMzc5ZDcyZSksCi0gICAgICAgICBUT0JOKDB4ZTliNWViYTIsIDB4ZmI1ZWU5OTcpLCBU
T0JOKDB4MDE2NDhjYTIsIDB4ZTExNTM4Y2EpLAotICAgICAgICAgVE9CTigweDMyYmI3NmY2LCAw
eGY2MzI3OTc0KSwgVE9CTigweDMzOGYxNGI4LCAweGZmM2Y0YmI3KSwKLSAgICAgICAgIFRPQk4o
MHg1MjRkMjI2YSwgMHhkN2FiOWEyZCksIFRPQk4oMHg5YzAwMDkwZCwgMHg3ZGZhZTk1OCksCi0g
ICAgICAgICBUT0JOKDB4MGJhNWY1MzksIDB4ODc1MWQ4YzIpLCBUT0JOKDB4OGFmY2JjZGQsIDB4
M2FiODI2MmQpLAotICAgICAgICAgVE9CTigweDU3MzkyNzI5LCAweGU5OWQwNDNiKSwgVE9CTigw
eGVmNTEyNjNiLCAweGFlYmM5NDNhKSwKLSAgICAgICAgIFRPQk4oMHg5ZmVhY2U5MywgMHgyMDg2
MjkzNSksIFRPQk4oMHg2MzllZmMwMywgMHhiMDZjODE3YiksCi0gICAgICAgICBUT0JOKDB4MWZl
MDU0YjMsIDB4NjZiNGJlN2EpLCBUT0JOKDB4M2YyNWE5ZGUsIDB4ODRhMzdhMWUpLAotICAgICAg
ICAgVE9CTigweGYzOWVmMWFkLCAweDc4ZDc1Y2Q5KSwgVE9CTigweGQ3YjU4ZjQ5LCAweDUwNjJj
MWI1KSwKLSAgICAgICAgIFRPQk4oMHg2Zjc0ZjlhOSwgMHhmZjU2MzQzNiksIFRPQk4oMHhmNzE4
ZmYyOSwgMHhlOGFmNTFlNyksCi0gICAgICAgICBUT0JOKDB4NTIzNGQzMTMsIDB4MTVlOTdmZWMp
LCBUT0JOKDB4YjZhOGUyYjEsIDB4MjkyZjFjMGEpLAotICAgICAgICAgVE9CTigweGE3ZjUzYWE4
LCAweDMyNzcyMGMxKSwgVE9CTigweDk1NmNhMzIyLCAweGJhMDkyY2M4KSwKLSAgICAgICAgIFRP
Qk4oMHg4ZjAzZDY0YSwgMHgyODc0NmM0ZCksIFRPQk4oMHg1MWZlMTc4MiwgMHg2NmQwZDM5Miks
Ci0gICAgICAgICBUT0JOKDB4ZDE5YjM0ZGIsIDB4M2M4MzJjODApLCBUT0JOKDB4NjBkY2NjNWMs
IDB4NmRhMmUzYjQpLAotICAgICAgICAgVE9CTigweDI0NWRkNjJlLCAweDBhMTA0Y2NjKSwgVE9C
TigweGE3YWIxZGUxLCAweDYyMGIyMWZkKSwKLSAgICAgICAgIFRPQk4oMHhiMjkzYWUwYiwgMHgz
ODkzZDEyMyksIFRPQk4oMHhmN2I3NTc4MywgMHhiMTVlZTcxYyksCi0gICAgICAgICBUT0JOKDB4
NWFhM2M2MTQsIDB4NDJhOTQ2OGIpLCBUT0JOKDB4ZDY4NjEyM2MsIDB4ZGIxNWQ3NDQpLAotICAg
ICAgICAgVE9CTigweDhjNjE2ODkxLCAweGE3YWI0MTE2KSwgVE9CTigweDZmY2Q3MmM4LCAweGE0
ZTZhNDU5KSwKLSAgICAgICAgIFRPQk4oMHhhYzIxOTExMCwgMHg3N2U1ZmFkNyksIFRPQk4oMHhm
YjZhMjBlNywgMHg3MDRmYTQ2YiksCi0gICAgICAgICBUT0JOKDB4ZTgzOWJlN2QsIDB4MzQxZDgx
ZGMpLCBUT0JOKDB4Y2RkYjY4ODksIDB4MzIxNDgzNzkpLAotICAgICAgICAgVE9CTigweGRhNjIx
MWExLCAweGY3MDI2ZWFkKSwgVE9CTigweGYzYjI1NzVmLCAweGY0ZDFjYzVlKSwKLSAgICAgICAg
IFRPQk4oMHg0MGNmYzhmNiwgMHhhN2E3M2FlNiksIFRPQk4oMHg4Mzg3OWE1ZSwgMHg2MWQ1YjQ4
MyksCi0gICAgICAgICBUT0JOKDB4YzVhY2IxZWQsIDB4NDFhNTBlYmMpLCBUT0JOKDB4NTlhNjBj
YzgsIDB4M2MwN2Q4ZmEpLAotICAgICAgICAgVE9CTigweDFiNzNiZGNlLCAweGIxODc2MjYyKSwg
VE9CTigweDJiMGQ3OWYwLCAweDEyYWY0ZWU5KSwKLSAgICAgICAgIFRPQk4oMHg4YmNmM2IwYiwg
MHhkNDZlMWQwNyksIFRPQk4oMHgxN2Q2YWY5ZCwgMHhlNDVkMTUyZiksCi0gICAgICAgICBUT0JO
KDB4NzM1MjA0NjEsIDB4NmQ3MzY0NTEpLCBUT0JOKDB4NDNjYmJkOTcsIDB4NTZiMGJmNWEpLAot
ICAgICAgICAgVE9CTigweGIwODMzYTViLCAweGQ1OTk5YjlkKSwgVE9CTigweDcwMjYxNGYwLCAw
eGViNzJlMzk4KSwKLSAgICAgICAgIFRPQk4oMHgwYWFkZjAxYSwgMHg1OWMzZTlmOCksIFRPQk4o
MHg0MDIwMGU3NywgMHhjZTZiM2QxNiksCi0gICAgICAgICBUT0JOKDB4ZGEyMmJkZDMsIDB4ZGVk
ZGFmYWQpLCBUT0JOKDB4NzZkZWRhZjQsIDB4MzEwZDcyZTEpLAotICAgICAgICAgVE9CTigweDQ5
ZWY4MDdjLCAweDRiYzJlODhmKSwgVE9CTigweDZiYTgxMjkxLCAweDE0NmRkNWE1KSwKLSAgICAg
ICAgIFRPQk4oMHhhMWE0MDc3YSwgMHg3ZDhkNTllOSksIFRPQk4oMHg4N2I2YTJlNywgMHg4MDJk
YjM0OSksCi0gICAgICAgICBUT0JOKDB4ZDU2Nzk5OTcsIDB4MWI0ZTU5OGUpLCBUT0JOKDB4ZjQ5
OWVmMWYsIDB4MDZmZTRiMWQpLAotICAgICAgICAgVE9CTigweDM5NzhkM2FlLCAweGZjYjI2N2M1
KSwgVE9CTigweGI1ODJiNTU3LCAweDIzNTc4NmQwKSwKLSAgICAgICAgIFRPQk4oMHgzMmIzYjJj
YSwgMHgxNzE1Y2IwNyksIFRPQk4oMHg0YzNkZTZhMiwgMHg4NDgwMjQxZCksCi0gICAgICAgICBU
T0JOKDB4NjNiNWZmZWQsIDB4Y2I1NzFlY2QpLCBUT0JOKDB4ZWFmNTM5MDAsIDB4ZWQyZmU5YTkp
LAotICAgICAgICAgVE9CTigweGRlYzk4ZDRhLCAweGMzYjgxOTkwKSwgVE9CTigweDFjYjgzNzIy
LCAweDllMGNjOGZlKSwKLSAgICAgICAgIFRPQk4oMHhmZTBiMDQ5MSwgMHhkMmI0MjdiOSksIFRP
Qk4oMHgwZjIzODZhYywgMHhlOTgzYTY2YyksCi0gICAgICAgICBUT0JOKDB4OTMwYzRkMWUsIDB4
YjMyOTEyMTMpLCBUT0JOKDB4YTJmODJiMmUsIDB4NTlhNjJhZTQpLAotICAgICAgICAgVE9CTigw
eDc3MjMzODUzLCAweGY5M2U4OWUzKSwgVE9CTigweDdmODA2M2FjLCAweDExNzc3YzdmKSwKLSAg
ICAgICAgIFRPQk4oMHhmZjBlYjU2NywgMHg1OWFkMjg3NyksIFRPQk4oMHg2ZjQ1NDY0MiwgMHg5
ODY1Yzc1NCksCi0gICAgICAgICBUT0JOKDB4ZTZmZTcwMWEsIDB4MjM2ZTlhODQpLCBUT0JOKDB4
YzU4NmVmMTYsIDB4MDZlNDBmYzMpLAotICAgICAgICAgVE9CTigweDNmNjJiNmUwLCAweDI0YmFm
YWQ5KSwgVE9CTigweGM4YjQyYmQyLCAweDY0ZGE5MDZhKSwKLSAgICAgICAgIFRPQk4oMHhjOThl
MWViNCwgMHhkYTMyNzZhMCksIFRPQk4oMHgzMGQwZTVmYywgMHgwNmNiZjg1MiksCi0gICAgICAg
ICBUT0JOKDB4MWI2YjJhZTEsIDB4ZThiNGRmZDQpLCBUT0JOKDB4ZDc1NGQ1YzcsIDB4ODMwMWNi
YWMpLAotICAgICAgICAgVE9CTigweDY2MDk3NjI5LCAweDExMmEzOWFjKSwgVE9CTigweGY4NmI1
OTk5LCAweDkzYmE0YWI5KSwKLSAgICAgICAgIFRPQk4oMHgyNmM5ZGVhNywgMHg5OWY5ZDU4MSks
IFRPQk4oMHgwNDczYjFhOCwgMHhjMmZhZmVhYSksCi0gICAgICAgICBUT0JOKDB4MTQ2OWFmNTUs
IDB4M2IyNTA1YTUpLCBUT0JOKDB4MjI3ZDE2ZDcsIDB4ZDZhNDMzMjMpLAotICAgICAgICAgVE9C
TigweDMzMTZmNzNjLCAweGFkM2Q5N2Y5KSwgVE9CTigweDUyYmYzYmI1LCAweDFmMTM3NDU1KSwK
LSAgICAgICAgIFRPQk4oMHg5NTNlYWZlYiwgMHgwOTk1NGU3YyksIFRPQk4oMHhhNzIxZGZlZCwg
MHhkZDczMjQxMSksCi0gICAgICAgICBUT0JOKDB4YjQ5Mjk4MjEsIDB4MTQxZDQ1NzkpLCBUT0JO
KDB4MzQxMTMyMWMsIDB4YWEzYmQ0MzUpLAotICAgICAgICAgVE9CTigweGFmYjM1NWFhLCAweDE3
ZmE2MDE1KSwgVE9CTigweGI0ZTdlZjRhLCAweDE4ZTQyZjBlKSwKLSAgICAgICAgIFRPQk4oMHg2
MDRhYzk3YywgMHg1OTM3MTAwMCksIFRPQk4oMHhlMWM0OGM3MCwgMHg3Zjc1OWMxOCksCi0gICAg
ICAgICBUT0JOKDB4M2Y2MmVjYzUsIDB4YTVkYjZiNjUpLCBUT0JOKDB4MGE3OGIxNzMsIDB4Mzhh
MjE0OTUpLAotICAgICAgICAgVE9CTigweDZiZTE4MTlkLCAweGJjYzhhZDk0KSwgVE9CTigweDcw
ZGMwNGY2LCAweGQ4OWMzNDAwKSwKLSAgICAgICAgIFRPQk4oMHg0NjI1NTdiNCwgMHhhNmI0ODQw
YSksIFRPQk4oMHg1NDRjNmFkZSwgMHg2MGJkMjFjMCksCi0gICAgICAgICBUT0JOKDB4NmEwMGYy
NGUsIDB4OTA3YTU0NGIpLCBUT0JOKDB4YTc1MjBkY2IsIDB4MzEzZGEyMTApLAotICAgICAgICAg
VE9CTigweGZlOTM5Yjc1LCAweDExZTQ5OTRiKSwgVE9CTigweDkxOGI2YmE2LCAweGJjMjc1ZDcw
KSwKLSAgICAgICAgIFRPQk4oMHhkM2U1ZTBmYywgMHg2NDRiZTg5MiksIFRPQk4oMHg3MDdhOTgx
NiwgMHhmZGFmNmM0MiksCi0gICAgICAgICBUT0JOKDB4NjAxNDU1NjcsIDB4ZjE1YzEzZmUpLCBU
T0JOKDB4NDgxOGViYWEsIDB4ZTEzMGE1NGEpLAotICAgICAgICAgVE9CTigweDI4YWFkM2FkLCAw
eDU4ZDJmNzY3KSwgVE9CTigweGRjNTI2N2ZkLCAweGQ3ZTdjNzczKSwKLSAgICAgICAgIFRPQk4o
MHg0OTE5Y2M4OCwgMHhjM2FmY2M5OCksIFRPQk4oMHhhYTJlNmFiMCwgMHgyZGI4Y2Q0YiksCi0g
ICAgICAgICBUT0JOKDB4ZDQ2ZmVjMDQsIDB4ZDBjNjNlYWEpLCBUT0JOKDB4YTFjYjkyYzUsIDB4
MTlmZmE4MzIpLAotICAgICAgICAgVE9CTigweDY3OGRkMTc4LCAweGU0M2E2MzFmKSwgVE9CTigw
eGZiNWFlMWNkLCAweDNkYzc4OGIzKSwKLSAgICAgICAgIFRPQk4oMHg2OGI0ZmI5MCwgMHg2ZTc3
ZGUwNCksIFRPQk4oMHg3OTkyYmNmMCwgMHhmMDZkYmI5NyksCi0gICAgICAgICBUT0JOKDB4ODk2
ZTZhMTMsIDB4YzQxN2MwMWQpLCBUT0JOKDB4OGQ5NjMzMmMsIDB4Yjk1NmJlMDEpLAotICAgICAg
ICAgVE9CTigweDkwMmZjOTNhLCAweDQxM2FhMmI5KSwgVE9CTigweDk5YTRkOTE1LCAweGZjOThj
OGE1KSwKLSAgICAgICAgIFRPQk4oMHg1MmMyOTQwNywgMHg1NjVmMTEzNyksIFRPQk4oMHg0MDcy
NjkwZiwgMHgyMWU0ZjI4MSksCi0gICAgICAgICBUT0JOKDB4MzZlNjA3Y2YsIDB4MDJmZjYwNzIp
LCBUT0JOKDB4YTQ3ZDJjYTksIDB4OGFkOThjZGMpLAotICAgICAgICAgVE9CTigweGJmNDcxZDFl
LCAweGY1ZjU2NjA5KSwgVE9CTigweGJjZjg2NjIzLCAweGYyNjRhZGEwKSwKLSAgICAgICAgIFRP
Qk4oMHhiNzBjMDY4NywgMHhhYTllNWNiNiksIFRPQk4oMHhjOTgxMjRmMiwgMHgxNzQwMWM2Yyks
Ci0gICAgICAgICBUT0JOKDB4ODE4OTYzNWYsIDB4ZDRhNjE0MzUpLCBUT0JOKDB4ZDI4ZmI4YWYs
IDB4YTlkOThlYTYpLAotICAgICAgICAgVE9CTigweGI5YTY3YzJhLCAweDQwYzI1MWY4KSwgVE9C
TigweDg4Y2Q1ZDg3LCAweGEyZGE0NGJlKSwKLSAgICAgICAgIFRPQk4oMHg0MzdkZWI5NiwgMHhl
MDliNTQyMyksIFRPQk4oMHgxNTA0NjdkYiwgMHg2NDI4N2RjMSksCi0gICAgICAgICBUT0JOKDB4
ZTE2MWRlYmIsIDB4Y2RhYmI4MzkpLCBUT0JOKDB4YTc5ZTk3NDIsIDB4ZjE4MzlhM2UpLAotICAg
ICAgICAgVE9CTigweGJiOGRkM2MyLCAweDY1MmQyMDJiKSwgVE9CTigweDdiM2U2N2Y3LCAweGU5
Zjk3ZDk2KSwKLSAgICAgICAgIFRPQk4oMHg1YWE1ZDc4ZiwgMHhiMWNiNmFjOSksIFRPQk4oMHhm
ZmExM2U4ZSwgMHhjYTFkMGQ0NSksCi0gICAgICAgICBUT0JOKDB4MzY5Mjk1ZGQsIDB4MmJhNWJm
OTUpLCBUT0JOKDB4ZDY4YmQxZjgsIDB4MzlhZmYwNWUpLAotICAgICAgICAgVE9CTigweGFmMGQ4
NmY5LCAweDI2ZDc4M2YyKSwgVE9CTigweDU0M2E1OWIzLCAweGZjM2FhZmMxKSwKLSAgICAgICAg
IFRPQk4oMHgzZmNmODFkMiwgMHg3YjdkYTk3YyksIFRPQk4oMHhjOTkwYTA1NiwgMHhkMjVkZWU0
NiksCi0gICAgICAgICBUT0JOKDB4M2U2Nzc1YjgsIDB4NTE5Y2NlMmMpLCBUT0JOKDB4ZmM5YWY3
MWYsIDB4YWUxM2Q4NjMpLAotICAgICAgICAgVE9CTigweDc3NGE0YTZmLCAweDQ3YzE2MDVjKSwg
VE9CTigweDQ2YmE0MjQ1LCAweDJmZDIwNWU4KSwKLSAgICAgICAgIFRPQk4oMHhhMDZmZWVhNCwg
MHhkM2ZkNTI0ZCksIFRPQk4oMHgxZTcyNDY0MSwgMHg2ZGUxYWNjMiksCi0gICAgICAgICBUT0JO
KDB4ZjUzODE2ZjEsIDB4MzM0ZTJiNDIpLCBUT0JOKDB4NDllNTkxOGUsIDB4OTIyZjAwMjQpLAot
ICAgICAgICAgVE9CTigweDQzOTUzMGI2LCAweDY1YzczMjJkKSwgVE9CTigweGNmMTJjYzAxLCAw
eGIzYzFiM2ZiKSwKLSAgICAgICAgIFRPQk4oMHhjNzBiMDE4NiwgMHgwMTcyZjY4NSksIFRPQk4o
MHhiOTE1ZWUyMiwgMHgxYjU4MzkxZCksCi0gICAgICAgICBUT0JOKDB4OWFmZGYwM2IsIDB4YTMx
N2RiMjQpLCBUT0JOKDB4ODdkZWM2NTksIDB4MTdiOGZmYzQpLAotICAgICAgICAgVE9CTigweDdm
NDY1OTdiLCAweGU0ZDNkMDUwKSwgVE9CTigweDgwYTFjMWVkLCAweDAwNjUwMGU3KSwKLSAgICAg
ICAgIFRPQk4oMHg4NDkwMmE5NiwgMHg3OGJmMDMwZSksIFRPQk4oMHhmYjVlOWM5YSwgMHg1MDU2
MDE0OCksCi0gICAgICAgICBUT0JOKDB4NmRhZTBhOTIsIDB4NjMzNjI0MjYpLCBUT0JOKDB4ZGNh
ZWVjZjQsIDB4YTllMzBjNDApLAotICAgICAgICAgVE9CTigweGMwZDg4N2JiLCAweDUxOGQwYzZi
KSwgVE9CTigweDk5MTgxMTUyLCAweGNiOTg1YjlkKSwKLSAgICAgICAgIFRPQk4oMHhhZDE4Njg5
OCwgMHhlZjdiYzM4MSksIFRPQk4oMHgxODE2OGZmYiwgMHg5ZWU0NjIwMSksCi0gICAgICAgICBU
T0JOKDB4OWEwNGNkYWEsIDB4MjUwMjc1M2MpLCBUT0JOKDB4YmIyNzllMjYsIDB4NTE0MDdjNDEp
LAotICAgICAgICAgVE9CTigweGVhY2IwM2FhLCAweGYyMzU2NGU1KSwgVE9CTigweDE4MzM2NTgy
LCAweDcxZTYxMDE2KSwKLSAgICAgICAgIFRPQk4oMHg4Njg0YjhjNCwgMHhlYjgwOTg3NyksIFRP
Qk4oMHhiMzM2ZTE4ZCwgMHhlYTBlNjcyZSksCi0gICAgICAgICBUT0JOKDB4ZWZiNjAxZjAsIDB4
MzRlZTU4NjcpLCBUT0JOKDB4MjczM2VkYmUsIDB4MTM0MWNmZDEpLAotICAgICAgICAgVE9CTigw
eGIxNWU4MDlhLCAweDI2MDI1YzNjKSwgVE9CTigweGU2ZTk4MWE2LCAweDkzNTBkZjg4KSwKLSAg
ICAgICAgIFRPQk4oMHg5MjM3NjIzNywgMHg4NTAyZmQ4ZSksIFRPQk4oMHg0NzkxZjIxNiwgMHgw
YzEyYmU5YiksCi0gICAgICAgICBUT0JOKDB4YjcyNTY3ODksIDB4MjVmMDI0MjUpLCBUT0JOKDB4
ZWM4NjMxOTQsIDB4N2E5NzQ0NDMpLAotICAgICAgICAgVE9CTigweDdjMGNlODgyLCAweGZiNDFj
YzUyKSwgVE9CTigweGMyNjZmZjdlLCAweGYyNWMwN2YyKSwKLSAgICAgICAgIFRPQk4oMHgzZDRk
YThjMywgMHgwMTcwMjVmMyksIFRPQk4oMHhlZmNmNjI4YywgMHhmYjk1NzliNCksCi0gICAgICAg
ICBUT0JOKDB4NWM0ZDAwMTYsIDB4MWYzNzE2ZWMpLCBUT0JOKDB4OWMyN2ViYzQsIDB4NjgwMTEx
NmUpLAotICAgICAgICAgVE9CTigweDVlYmEwZWExLCAweDFkYTE3NjdlKSwgVE9CTigweGZlMTUx
NDUyLCAweDQ3MDA0YzU3KSwKLSAgICAgICAgIFRPQk4oMHgzYWNlNmRmNiwgMHg4YzIzNzNiNyks
IFRPQk4oMHg3NWMzZGZmZSwgMHg1ZGJjMzdhYyksCi0gICAgICAgICBUT0JOKDB4M2RjMzJhNzMs
IDB4ZGRjOTI1ZmMpLCBUT0JOKDB4YjY3OWM4NDEsIDB4MmY2NWVlMGIpLAotICAgICAgICAgVE9C
TigweDcxNWEzMjk1LCAweDQ1MWNiZmViKSwgVE9CTigweGQ5ODg5NzY4LCAweGY3NmU5YTI5KSwK
LSAgICAgICAgIFRPQk4oMHhlYzIwY2U3ZiwgMHhiMjhhZDI0NyksIFRPQk4oMHhlOTkxNDZjNCwg
MHgwMDg5NGQ3OSksCi0gICAgICAgICBUT0JOKDB4NzE0NTdkN2MsIDB4OWY1ZTNlYTcpLCBUT0JO
KDB4MDk3YjI2NjIsIDB4MzgwMzAwMzEpLAotICAgICAgICAgVE9CTigweGRiN2Y2YWU2LCAweGNm
OWY4MmE4KSwgVE9CTigweDMxOWRlY2I5LCAweDQzOGY0NzNhKSwKLSAgICAgICAgIFRPQk4oMHhh
NjNhYjM4NiwgMHgyODM4NTZjMyksIFRPQk4oMHgxM2UzMTcyZiwgMHhiMDZhMzYxYiksCi0gICAg
ICAgICBUT0JOKDB4Mjk1OWY4ZGMsIDB4N2Q1YTAwNmMpLCBUT0JOKDB4MmRiYzI3YzYsIDB4NzVm
YmE3NTIpLAotICAgICAgICAgVE9CTigweGMxMjI3YWIyLCAweDg3YzIyYzllKSwgVE9CTigweDA2
ZjYxZjc1LCAweDcxYTI2OGIyKSwKLSAgICAgICAgIFRPQk4oMHgxYjZiYjk3MSwgMHgwNDc3OWNl
MiksIFRPQk4oMHhhY2E4MzgxMiwgMHgwYWFkY2IxZCksCi0gICAgICAgICBUT0JOKDB4Mjk3YWUw
YmMsIDB4YWVhYWIyZDUpLCBUT0JOKDB4YTVjMTRlZTcsIDB4NWJmYjlmMTMpLAotICAgICAgICAg
VE9CTigweGFhMDBjNTgzLCAweGYxN2E2MmM3KSwgVE9CTigweDM5ZWI5NjJjLCAweDE3Mzc1OWY2
KSwKLSAgICAgICAgIFRPQk4oMHgxZWViYTFkNCwgMHg4NmM5YTg4ZiksIFRPQk4oMHgwYWI2YzM3
YSwgMHhkZjAxNmM1ZSksCi0gICAgICAgICBUT0JOKDB4YTJhMTQ3ZGIsIDB4YTI4YTA3NDkpLCBU
T0JOKDB4MjQ2YzIwZDYsIDB4ZWU1MTkxNjUpLAotICAgICAgICAgVE9CTigweDUwNjhkMWIxLCAw
eGQzODEwNzE1KSwgVE9CTigweGIxZTcwMThjLCAweDc0ODE2MGI5KSwKLSAgICAgICAgIFRPQk4o
MHgwM2Y1YjFmYSwgMHhmMzgwZmY2MiksIFRPQk4oMHhlZjdmYjFkZCwgMHhmM2NiMmMxZSksCi0g
ICAgICAgICBUT0JOKDB4ZWFiNTM5YTgsIDB4ZmM5MWE3ZGEpLCBUT0JOKDB4ODNkZGI3MDcsIDB4
ZjNmOWI1NjEpLAotICAgICAgICAgVE9CTigweGM1NTBlMjExLCAweGZlN2RmN2E0KSwgVE9CTigw
eGE3Y2QwN2YyLCAweDA2M2Y2ZjQwKSwKLSAgICAgICAgIFRPQk4oMHhiMGRlMzYzNSwgMHgyOTc2
ODc5YyksIFRPQk4oMHhiNWY4M2Y4NSwgMHhlNTU3NDFkYSksCi0gICAgICAgICBUT0JOKDB4NGVh
OWQyNWUsIDB4ZjNkOGFjM2QpLCBUT0JOKDB4NmZlMjA2NmYsIDB4NjI4MTlmMDIpLAotICAgICAg
ICAgVE9CTigweDRhYjJiOWMyLCAweGNlZjRhNTY0KSwgVE9CTigweDFlMTU1ZDk2LCAweDVmZmEy
ZGUzKSwKLSAgICAgICAgIFRPQk4oMHgwZWIwYTE5YiwgMHhjM2E3MmQwMCksIFRPQk4oMHg0MDM3
NjY1YiwgMHg4NTEzYzMxYiksCi0gICAgICAgICBUT0JOKDB4MmZiMmI2YmYsIDB4MDRjNjQ2Mzcp
LCBUT0JOKDB4NDVjMzRkNmUsIDB4MDhjZGM2MzkpLAotICAgICAgICAgVE9CTigweDU2ZjFlMTBm
LCAweGYwMWZkNzk2KSwgVE9CTigweDRkZmI4MTAxLCAweGZlMzY2N2I4KSwKLSAgICAgICAgIFRP
Qk4oMHhlMGVkYTI1MywgMHg5MDIxZDBjMCksIFRPQk4oMHg3YTk0ZTlmZiwgMHg4YTA2YzZhYiks
Ci0gICAgICAgICBUT0JOKDB4MmQzYmIwZDksIDB4YmI5YWE4ODIpLCBUT0JOKDB4ZWEyMGU0ZTUs
IDB4ZWMwNWZkMTApLAotICAgICAgICAgVE9CTigweGVkN2VlYjVmLCAweDFhMWNhNjRlKSwgVE9C
TigweDJmYTZiNDNjLCAweGM2MzI3Y2JkKSwKLSAgICAgICAgIFRPQk4oMHhiNTc3ZTNjZiwgMHgz
YWE5MTEyMSksIFRPQk4oMHg4YzZiZDVlYSwgMHgzYTM0MDc5YiksCi0gICAgICAgICBUT0JOKDB4
ZDdlNWJhMzksIDB4NjBlMDJmYzApLCBUT0JOKDB4ZjE2ZGQyYzMsIDB4OTAxNDFiZjgpLAotICAg
ICAgICAgVE9CTigweGI1NzI3NmQ5LCAweDgwMTAxYjk4KSwgVE9CTigweDc2MDg4M2ZkLCAweGI4
MmYwZjY2KSwKLSAgICAgICAgIFRPQk4oMHg4OWQ3ZGU3NSwgMHg0YmMzZWZmMyksIFRPQk4oMHgw
M2I2MDY0MywgMHg1ZGMyYWI0MCksCi0gICAgICAgICBUT0JOKDB4Y2Q2ZTUzZGYsIDB4ZTA1YmVl
YWMpLCBUT0JOKDB4ZjJmMWU4NjIsIDB4YmMzMzI1Y2QpLAotICAgICAgICAgVE9CTigweGRkMGY3
OTIxLCAweDc3NGYwM2MzKSwgVE9CTigweDk3Y2E3MjIxLCAweDQ1NTJjYzFiKSwKLSAgICAgICAg
IFRPQk4oMHg1YTBkNmFmZSwgMHgxY2QxOWY3MiksIFRPQk4oMHhhMjA5MTVkYywgMHhmMTgzZmJl
YiksCi0gICAgICAgICBUT0JOKDB4OWZkYTRiNDAsIDB4ODMyYzQwM2MpLCBUT0JOKDB4MzI3Mzhl
ZGQsIDB4YmU0MjU0NDIpLAotICAgICAgICAgVE9CTigweDQ2OWExZGY2LCAweGI1ZWNjZjFhKSwg
VE9CTigweDRiNWFmZjQyLCAweDI4YmJlMWYwKSwKLSAgICAgICAgIFRPQk4oMHgzMTM1OWQ3Ziwg
MHg1NzBkZmM5MyksIFRPQk4oMHhhMThiZTIzNSwgMHhmMDA4ODYyOCksCi0gICAgICAgICBUT0JO
KDB4YTViMzBmYmEsIDB4YjAwZWQzYTkpLCBUT0JOKDB4MzRjNjEzNzQsIDB4NzNjZGY4YmUpLAot
ICAgICAgICAgVE9CTigweDJjNWM1ZjQ2LCAweGFiYzU2Nzk3KSwgVE9CTigweDVjZWNmOTNkLCAw
eGI4MmE4YWUyKSwKLSAgICAgICAgIFRPQk4oMHg3ZDNkYmU0MSwgMHhhOTY4ZmJmMCksIFRPQk4o
MHhkMjNkNDU4MywgMHgxYTVjN2YzZCksCi0gICAgICAgICBUT0JOKDB4ZjI4ZjY5YTAsIDB4YzA4
N2E5YzcpLCBUT0JOKDB4YzJkNzU0NzEsIDB4NDc0NDcxY2EpLAotICAgICAgICAgVE9CTigweDM2
ZWM5ZjRhLCAweDRlYjczMmVjKSwgVE9CTigweDZjOTQzYmJkLCAweGIxY2E2YmVkKSwKLSAgICAg
ICAgIFRPQk4oMHhkNjQ1MzVlMSwgMHhmMjQ1Nzg5MiksIFRPQk4oMHg4Yjg0YThlYSwgMHhmN2Uy
YWMwNiksCi0gICAgICAgICBUT0JOKDB4ZTA5MzZjZDMsIDB4MjQ5OWRkNWYpLCBUT0JOKDB4MTIw
NTNkN2UsIDB4MGVkMDRlNTcpLAotICAgICAgICAgVE9CTigweDRiZGQwMDc2LCAweGU0MzA1ZDlk
KSwgVE9CTigweDM0YTUyN2I5LCAweDFmNjdmMGEyKSwKLSAgICAgICAgIFRPQk4oMHhlNzlhNGFm
MCwgMHg5Y2VjNDZlYSksIFRPQk4oMHhiMTUzNDdhMSwgMHg2NThiOWJjNyksCi0gICAgICAgICBU
T0JOKDB4NmJkMjc5NmYsIDB4MzVhZjJmNzUpLCBUT0JOKDB4YWM5NTc5OTAsIDB4NDA1MWM0MzUp
LAotICAgICAgICAgVE9CTigweDI2NjlkZGEzLCAweGMzM2E2NTVkKSwgVE9CTigweDVkNTAzYzJl
LCAweDg4NTE0YWEzKSwKLSAgICAgICAgIFRPQk4oMHhkZmExMTMzNywgMHgzNzUzZGQ0MSksIFRP
Qk4oMHgzZjA1NDY3MywgMHgwYjc1NGY3OCksCi0gICAgICAgICBUT0JOKDB4YmYxODU2NzcsIDB4
NDk2MTI1YmQpLCBUT0JOKDB4ZmIwMDIzYzgsIDB4Mzc3NTAwNmMpLAotICAgICAgICAgVE9CTigw
eGZhMGYwNzJmLCAweDNhMDM3ODk5KSwgVE9CTigweDQyMjJiNmViLCAweDBlNGFlYTU3KSwKLSAg
ICAgICAgIFRPQk4oMHgzZGRlNWU3NiwgMHg3ODY2ZDI1YSksIFRPQk4oMHhiNmViMDRmOCwgMHg0
ODM3YWE2ZiksCi0gICAgICAgICBUT0JOKDB4NTMxNTU5MWEsIDB4MmNmMWNkYjgpLCBUT0JOKDB4
NmRmYjRmNDEsIDB4MmQ0ZTY4M2MpLAotICAgICAgICAgVE9CTigweDdlOTIzZWE0LCAweDQ4ZWUx
ZjNhKSwgVE9CTigweDk2MDRkOWY3LCAweDA1YTJhZmQ1KSwKLSAgICAgICAgIFRPQk4oMHhiZTFk
NGEzMywgMHg0MGVhNDk0OCksIFRPQk4oMHg1YjQ1ZjFmNCwgMHhiNDRjYmQyZiksCi0gICAgICAg
ICBUT0JOKDB4NWZhZjgzNzYsIDB4NGFjYzc1N2UpLCBUT0JOKDB4YTdjZjlhYjgsIDB4NjNkNjhm
ZjcpLAotICAgICAgICAgVE9CTigweDhhZDYyZjY5LCAweGRmMGU0MDRiKSwgVE9CTigweGQ2NWYz
M2MyLCAweDEyYmRhZmRmKSwKLSAgICAgICAgIFRPQk4oMHhjMzY1ZGUxNSwgMHhhMzc3YjE0ZSks
IFRPQk4oMHg2YmY1NDYzYiwgMHg4ZTM5ZjYwYyksCi0gICAgICAgICBUT0JOKDB4NjIwMzBkMmQs
IDB4MmNlNjgxNDgpLCBUT0JOKDB4ZDk1ODY3ZWYsIDB4ZTZmODQzYTgpLAotICAgICAgICAgVE9C
TigweGQzOWEwMjQ0LCAweGVmNWFiMDE3KSwgVE9CTigweDBiZDJkOGMxLCAweDRhYjU1ZDEyKSwK
LSAgICAgICAgIFRPQk4oMHhjOTUwM2RiMywgMHg0MTYzOTE2OSksIFRPQk4oMHgyZDRlMjViMCwg
MHhmNzY2MGM4YSksCi0gICAgICAgICBUT0JOKDB4NzYwY2IzYjUsIDB4ZTIyNGM1ZDcpLCBUT0JO
KDB4ZmEzYmFmOGMsIDB4Njg2MTY5MTkpLAotICAgICAgICAgVE9CTigweDlmYmNhMTEzLCAweDhk
MTQyNTUyKSwgVE9CTigweDFhYjE4YmYxLCAweDc2NjllYmY1KSwKLSAgICAgICAgIFRPQk4oMHg1
NWU2ZjUzZSwgMHg5YmRmMjVkZCksIFRPQk4oMHgwNGNjMGJmMywgMHhjYjZjZDE1NCksCi0gICAg
ICAgICBUT0JOKDB4NTk1YmVmNDksIDB4OTVlODkwODApLCBUT0JOKDB4ZmU5NDU5YTgsIDB4MTA0
YTlhYzEpLAotICAgICAgICAgVE9CTigweGFkMmQ4OWNhLCAweGNjZTliYjMyKSwgVE9CTigweGRk
ZWE2NWUxLCAweGY3ZGU4Mjg1KSwKLSAgICAgICAgIFRPQk4oMHg2MmVkOGMzNSwgMHhiMzUxYmQ0
YiksIFRPQk4oMHg0MTUwZmYzNiwgMHgwYzBlMTlhNyksCi0gICAgICAgICBUT0JOKDB4ODZlM2M4
MDEsIDB4MzQ1ZjRlNDcpLCBUT0JOKDB4M2JmMjFmNzEsIDB4MjAzYTI2NmMpLAotICAgICAgICAg
VE9CTigweDdhZTExMGQ0LCAweDg1NWIxZjEzKSwgVE9CTigweDVkNmFhZjZhLCAweDA3MjYyNTE3
KSwKLSAgICAgICAgIFRPQk4oMHgxZTBmMTJlMSwgMHg4MTNkMjhmMSksIFRPQk4oMHg2MDAwZTEx
ZCwgMHg3YWQ3YTUyMyksCi0gICAgICAgICBUT0JOKDB4YzdkOGRlZWYsIDB4Yzc0NGExN2IpLCBU
T0JOKDB4MWU5OTBiNDgsIDB4MTRjMDVhMDApLAotICAgICAgICAgVE9CTigweDY4ZmRkYWVlLCAw
eDkzZTk3NmQ1KSwgVE9CTigweDY5NjI0MWQxLCAweDQ2NjEwZDYzKSwKLSAgICAgICAgIFRPQk4o
MHhiMjA0ZTdjMywgMHg4OTNkZGE4OCksIFRPQk4oMHg4YmNjZmE2NSwgMHg2YTNhNjk0NiksCi0g
ICAgICAgICBUT0JOKDB4YjU5NDI1YjQsIDB4YzVjZDE0MTEpLCBUT0JOKDB4NzAxYjQwNDIsIDB4
ZmYzNjU4YjEpLAotICAgICAgICAgVE9CTigweGUzZTU2YmNhLCAweDQ3ODRjZjkzKSwgVE9CTigw
eDI3ZGU1ZjE1LCAweDhmZTY4ZDYwKSwKLSAgICAgICAgIFRPQk4oMHg0YWI5Y2ZjZSwgMHhmOGQ1
M2YxOSksIFRPQk4oMHhkZGIxMDMxMSwgMHhhNDBhNzMwZCksCi0gICAgICAgICBUT0JOKDB4NmZh
NzNjZDEsIDB4NGVlZTBhOGEpLCBUT0JOKDB4ZmQ1NDg3NDgsIDB4NTI0OTcxOWQpLAotICAgICAg
ICAgVE9CTigweDQ5ZDY2MzE2LCAweGE4MTIzZWYwKSwgVE9CTigweDczYzMyZGI0LCAweGU3Zjk1
NDM4KSwKLSAgICAgICAgIFRPQk4oMHgyZTJlZDIwOSwgMHgwZDllNzg1NCksIFRPQk4oMHhmOThh
OTMyOSwgMHg5ZDlmMDUwNyksCi0gICAgICAgICBUT0JOKDB4YzVkMzNjZjYsIDB4MGM2YWEyMGEp
LCBUT0JOKDB4OWEzMmJhMTQsIDB4NzUyNzliYjIpLAotICAgICAgICAgVE9CTigweDdlMzIwMmNi
LCAweDc3NGE3MzA3KSwgVE9CTigweDY0ZWQ0YmM0LCAweGU4YzQyZGJkKSwKLSAgICAgICAgIFRP
Qk4oMHhjMjBmMWEwNiwgMHhkNGNhZWQwZCksIFRPQk4oMHhiODAyMTQwNywgMHgxNzFkMjJiMyks
Ci0gICAgICAgICBUT0JOKDB4ZDQyNmNhMDQsIDB4ZDEzMjY4ZDcpLCBUT0JOKDB4OTIzNzcwMDcs
IDB4MjVmNGQxMjYpLAotICAgICAgICAgVE9CTigweDQyMDRjYmMzLCAweDcxZjIxYTg1KSwgVE9C
TigweDE4NDYxYjdhLCAweGY4MjM2OWJhKSwKLSAgICAgICAgIFRPQk4oMHhjMGMwN2QzMSwgMHgz
ZmM4NThmOSksIFRPQk4oMHg1ZGViNWE1MCwgMHhlMmJhYjU2OSksCi0gICAgICAgICBUT0JOKDB4
ZDU5NTlkNDYsIDB4ZDVlZWE4OWUpLCBUT0JOKDB4ZmRmZjg0MjQsIDB4MDg0MzdmNGIpLAotICAg
ICAgICAgVE9CTigweGYyMTA3MWU0LCAweDNjZmUyNTRmKSwgVE9CTigweDcyNDE3Njk2LCAweDk1
NDY4MzIxKSwKLSAgICAgICAgIFRPQk4oMHg1ZDgyODhiOSwgMHgxMDJjYWUzZSksIFRPQk4oMHgy
ZDE0M2UzZCwgMHhmMTk2NWRmZiksCi0gICAgICAgICBUT0JOKDB4MDBjOWEzNzYsIDB4YTA3OGQ4
NDcpLCBUT0JOKDB4NmZjMGRhMzEsIDB4MjYwMjg3MzEpLAotICAgICAgICAgVE9CTigweGEyYmFl
YWRmLCAweGU0NTA4M2EyKSwgVE9CTigweDY2YmM3MjE4LCAweDVlNWI0YmNkKSwKLSAgICAgICAg
IFRPQk4oMHgyYzgyNjQ0MiwgMHhkMDRiOGU3ZiksIFRPQk4oMHhjMTlmNTQ1MSwgMHg2YzRiNTg2
YiksCi0gICAgICAgICBUT0JOKDB4NjAxODJjNDksIDB4NWI3ZWVlZDUpLCBUT0JOKDB4ZDk5NTRl
Y2QsIDB4N2FhOWRmYTEpLAotICAgICAgICAgVE9CTigweGE0MDNhOGVjLCAweGM3Mzg4NGFkKSwg
VE9CTigweDdmYjE3ZGUyLCAweDliYjM5MDQxKSwKLSAgICAgICAgIFRPQk4oMHg2OTRiNjRjNSwg
MHhhYmIwMjBlOCksIFRPQk4oMHgzZDE4YzE4NCwgMHgxOWM0ZWVjNyksCi0gICAgICAgICBUT0JO
KDB4OWM0NjczZWYsIDB4MWM0NzkzZTUpLCBUT0JOKDB4YzdiOGFlYjUsIDB4MDU2MDkyZTYpLAot
ICAgICAgICAgVE9CTigweDNhYTFjYTQzLCAweGYwZjhjMTZiKSwgVE9CTigweDIyNGVkNWVjLCAw
eGQ2NzliMmY2KSwKLSAgICAgICAgIFRPQk4oMHgwZDU2ZWVhZiwgMHg1NWEyMDVjOSksIFRPQk4o
MHhiZmUxMTViYSwgMHg0YjhlMDI4YiksCi0gICAgICAgICBUT0JOKDB4OTdlNjA4NDksIDB4Mzky
N2Y0ZmUpLCBUT0JOKDB4ZjkxZmJmOTQsIDB4NzU5YWE3YzUpLAotICAgICAgICAgVE9CTigweDk4
NWFmNzY5LCAweDZiZTkwYTUxKSwgVE9CTigweGMxMjc3Yjc4LCAweDc4Y2NiODIzKSwKLSAgICAg
ICAgIFRPQk4oMHgzOTViNjU2ZSwgMHhlN2E3NTk1MiksIFRPQk4oMHgwMGRmN2RlMCwgMHg5Mjhk
YTVmNSksCi0gICAgICAgICBUT0JOKDB4MDljMjMxNzUsIDB4NGNhNDQ1NGYpLCBUT0JOKDB4NGVj
OTcxZjQsIDB4N2FhMmQzYzEpLAotICAgICAgICAgVE9CTigweDQ1YzNjNTA3LCAweGU3NWQ5Y2Nj
KSwgVE9CTigweDYzYjdiZThhLCAweDNkYzkwMzA2KSwKLSAgICAgICAgIFRPQk4oMHgzN2UwOWM2
NiwgMHg1ZGI0NGJkYyksIFRPQk4oMHg1MGQ2MGRhMSwgMHg2ODQxYzZhMiksCi0gICAgICAgICBU
T0JOKDB4NmY5YjY1ZWUsIDB4MDhkZjFiMTIpLCBUT0JOKDB4Mzg3MzQ4NzksIDB4N2ZmMDg5ZGYp
LAotICAgICAgICAgVE9CTigweDljMzMxYTY2LCAweDNmZTgwMTNkKSwgVE9CTigweDAxN2Y1ZGU5
LCAweDVmNDJmY2M4KSwKLSAgICAgICAgIFRPQk4oMHg0MzA3Nzg2NiwgMHhlOGU1NzU2NyksIFRP
Qk4oMHhjOWY3ODFjZSwgMHhmOWZjZGIxOCksCi0gICAgICAgICBUT0JOKDB4MzgxMzFkZGEsIDB4
OWIxMmUxNzQpLCBUT0JOKDB4MjVkODRhYTMsIDB4OGEwMzc1MmEpLAotICAgICAgICAgVE9CTigw
eDQ1ZTA5ZTA5LCAweDRkMGMwY2UyKSwgVE9CTigweDE1NjQwMDhiLCAweDkyYmViYmE1KSwKLSAg
ICAgICAgIFRPQk4oMHhmN2U4YWQzMSwgMHhhODcyODRjNyksIFRPQk4oMHhiN2M0YjQ2YywgMHg5
N2U3YmJhYSksCi0gICAgICAgICBUT0JOKDB4M2UyMmE3YjMsIDB4OTdhY2Y0ZWMpLCBUT0JOKDB4
MDQyNmM0MDAsIDB4NWVhOGI2NDApLAotICAgICAgICAgVE9CTigweDVlMzI5NWE2LCAweDRlOTY5
Mjg1KSwgVE9CTigweDIyYWFiYzU5LCAweGE2YTQ1NjcwKSwKLSAgICAgICAgIFRPQk4oMHhiOTI5
NzE0YywgMHg1ZjU5NDJiYyksIFRPQk4oMHg5YTYxNjhiZCwgMHhmYTMxODJlZCksCi0gICAgICAg
ICBUT0JOKDB4MjIxNmE2NjUsIDB4MTA0MTUyYmEpLCBUT0JOKDB4NDY5MDhkMDMsIDB4YjY5MjYz
NjgpfSwKLSAgICAgICAge1RPQk4oMHhhOWY1ZDg3NCwgMHg1YTEyNTFmYiksIFRPQk4oMHg5Njc3
NDdhOCwgMHhjNzI3MjVjNyksCi0gICAgICAgICBUT0JOKDB4MTk1YzMzZTUsIDB4MzFmZmU4OWUp
LCBUT0JOKDB4NjA5ZDIxMGYsIDB4ZTk2NDkzNWUpLAotICAgICAgICAgVE9CTigweGNhZmQ2Y2E4
LCAweDJmZTEyMjI3KSwgVE9CTigweGFmOWI1Yjk2LCAweDA0MjY0NjlkKSwKLSAgICAgICAgIFRP
Qk4oMHgyZTllZTA0YywgMHg1NjkzMTgzYyksIFRPQk4oMHgxMDg0YTMzMywgMHhjODE0NmZlZiks
Ci0gICAgICAgICBUT0JOKDB4OTY2NDk5MzMsIDB4YWVkMWQxZjcpLCBUT0JOKDB4NTY2ZWFmZjMs
IDB4NTA1NjMwOTApLAotICAgICAgICAgVE9CTigweDM0NTA1N2YwLCAweGFkMmUzOWNmKSwgVE9C
TigweDE0OGZmNjViLCAweDFmODMyMTI0KSwKLSAgICAgICAgIFRPQk4oMHgwNDJlODlkNCwgMHhj
Zjk0Y2YwZCksIFRPQk4oMHgzMTliZWM4NCwgMHg1MjBjNThiMyksCi0gICAgICAgICBUT0JOKDB4
MmEyNjc2MjYsIDB4NTM2MWFhMGQpLCBUT0JOKDB4Yzg2ZmEzMDIsIDB4OGZiYzg3YWQpLAotICAg
ICAgICAgVE9CTigweGZjODNkMmFiLCAweDVjOGIwNmQ1KSwgVE9CTigweGIxYTc4NWEyLCAweGZl
NGVhYzQ2KSwKLSAgICAgICAgIFRPQk4oMHhiOTkzMTViYywgMHg4NDZmNzc3OSksIFRPQk4oMHhj
ZjMxZDgxNiwgMHhlZjllYTUwNSksCi0gICAgICAgICBUT0JOKDB4MjM5MWZlNmEsIDB4MTVkN2Rj
ODUpLCBUT0JOKDB4MmYxMzJiMDQsIDB4YjQwMTZiMzMpLAotICAgICAgICAgVE9CTigweDI5NTQ3
ZmUzLCAweDE4MWNiNGM3KSwgVE9CTigweGRiNjZkOGE2LCAweDY1MDE1NWExKSwKLSAgICAgICAg
IFRPQk4oMHg2YjY2ZDdlMSwgMHhhZGMxNjk2ZiksIFRPQk4oMHg5OGViZTU5MywgMHgwYWNkNzJk
MCksCi0gICAgICAgICBUT0JOKDB4NjVmMjQ1NTAsIDB4Y2MxYjc0MzUpLCBUT0JOKDB4Y2UyMzEz
OTMsIDB4YjRiOWE1ZWMpLAotICAgICAgICAgVE9CTigweDIzNGEyMmQ0LCAweGRiMDY3ZGY5KSwg
VE9CTigweDk4ZGRhMDk1LCAweGNhZmY5YjAwKSwKLSAgICAgICAgIFRPQk4oMHgxYmJjNzVhMCwg
MHg2MTAwYzljMSksIFRPQk4oMHgxNTYwYTljOCwgMHg5MzljZjY5NSksCi0gICAgICAgICBUT0JO
KDB4Y2YwMDZkM2UsIDB4OTllMDkyNWYpLCBUT0JOKDB4MmRkNzRhOTYsIDB4NjMyMjM3NWEpLAot
ICAgICAgICAgVE9CTigweGM1OGI0NDZhLCAweGI1NmFmNWJhKSwgVE9CTigweDUwMjkyNjgzLCAw
eGUwYjliNGYxKSwKLSAgICAgICAgIFRPQk4oMHhlMmMzNGNiNCwgMHgxYWVhZmZhMyksIFRPQk4o
MHg4YjE3MjAzZiwgMHg5Yjk1ODdjMSksCi0gICAgICAgICBUT0JOKDB4NmQ1NTkyMDcsIDB4ZWFk
MTM1MGMpLCBUT0JOKDB4MmI2NmEyMTUsIDB4ZmI3Zjk2MDQpLAotICAgICAgICAgVE9CTigweDA4
NTAzMjVlLCAweGZlNTFiZjc0KSwgVE9CTigweDljNGY1NzllLCAweDVlNDYwMDk0KSwKLSAgICAg
ICAgIFRPQk4oMHg1Yzg3YjkyYSwgMHg3NmRhMmYyNSksIFRPQk4oMHg4ODlkZTRlMCwgMHg2ZmVi
ZWYzMyksCi0gICAgICAgICBUT0JOKDB4NjkwMGVjMDYsIDB4NjQ2MDgzY2UpLCBUT0JOKDB4YmUy
YTAzMzUsIDB4YmZlMTI3NzMpLAotICAgICAgICAgVE9CTigweGFkZDFkYTM1LCAweGM1MzQ0MTEw
KSwgVE9CTigweDc1NzU2OGI3LCAweGI4MDJjZDIwKSwKLSAgICAgICAgIFRPQk4oMHg3NTU1OTc3
OSwgMHgwMGY3ZTZjOCksIFRPQk4oMHgzOGU4Yjk0ZiwgMHgwZmFjZDJmMCksCi0gICAgICAgICBU
T0JOKDB4ZmVhMWYzYWYsIDB4MDNmZGUzNzUpLCBUT0JOKDB4NWUxMWExZDgsIDB4NzU4ODFkZmMp
LAotICAgICAgICAgVE9CTigweGIzYTZiMDJlLCAweGMxZTJmMmVmKSwgVE9CTigweDE5M2QyYmJi
LCAweGM2MDVhNmM1KSwKLSAgICAgICAgIFRPQk4oMHgzMjVmZmVlZSwgMHgzMzlhMGIyZCksIFRP
Qk4oMHgyN2I2YTcyNCwgMHg5ZTBjODg0NiksCi0gICAgICAgICBUT0JOKDB4ZTQwNTBmMWMsIDB4
ZjFjMzY3Y2EpLCBUT0JOKDB4OWJjODVhOWIsIDB4YzkwZmJjN2QpLAotICAgICAgICAgVE9CTigw
eGEzNzNjNGEyLCAweGUxYTExMDMyKSwgVE9CTigweGI2NDIzMmI3LCAweGFkMDM5M2E5KSwKLSAg
ICAgICAgIFRPQk4oMHhmNTU3N2ViMCwgMHgxNjdkYWQyOSksIFRPQk4oMHgxNjA0ZjMwMSwgMHg5
NGI3OGFiMiksCi0gICAgICAgICBUT0JOKDB4MGJhYTk0YWYsIDB4ZTgyOTM0OGIpLCBUT0JOKDB4
NzdmYmQ4ZGQsIDB4NDE2NTQzNDIpLAotICAgICAgICAgVE9CTigweGRhYjUwZWE1LCAweGI5NjRl
MzlhKSwgVE9CTigweGQ0YzI5ZTNjLCAweGQwZDNjNzZlKSwKLSAgICAgICAgIFRPQk4oMHg4MGRh
ZTY3YywgMHg1NmQxMTk2NCksIFRPQk4oMHg3MzA3YThiZiwgMHhlNWZmY2MyZiksCi0gICAgICAg
ICBUT0JOKDB4NjViYmMxYWEsIDB4OTE3MDhjM2IpLCBUT0JOKDB4YTE1MWU2MmMsIDB4MjhiZjBl
ZWIpLAotICAgICAgICAgVE9CTigweDZjYjUzMzgxLCAweDZmYTM0ZGI3KSwgVE9CTigweDUxMzll
MDVjLCAweGEyOTQwM2E4KSwKLSAgICAgICAgIFRPQk4oMHg2ZmY2NTFiNCwgMHg5NGE3Y2QyZSks
IFRPQk4oMHg1NjcxZmZkMSwgMHgwNjk5MzM2YyksCi0gICAgICAgICBUT0JOKDB4NmY1ZmQyY2Ms
IDB4OTc5YTg5NmEpLCBUT0JOKDB4MTFlODkzYTgsIDB4ZDgxNDhjZWYpLAotICAgICAgICAgVE9C
TigweDk4ODkwNmExLCAweDY1Y2Y3YjEwKSwgVE9CTigweDgxYjY3MTc4LCAweGM1MGQ4NDg1KSwK
LSAgICAgICAgIFRPQk4oMHg3YzBkZWIzNSwgMHg4YTM1YjNkZSksIFRPQk4oMHg0MjNhYzg1NSwg
MHhjMWQyOTc5OSksCi0gICAgICAgICBUT0JOKDB4YWY1ODBkODcsIDB4ZGFjNTBiNzQpLCBUT0JO
KDB4MjhiMmI4OWYsIDB4NTg2OTczNGMpLAotICAgICAgICAgVE9CTigweDk5YTNiOTM2LCAweDg3
NGUyOGZiKSwgVE9CTigweGJiMmM5MTkwLCAweDI1ZjNmNzNhKSwKLSAgICAgICAgIFRPQk4oMHgx
OTlmNjkxOCwgMHg4NGE5ZDViNyksIFRPQk4oMHg3ZWJlMjMyNSwgMHg3ZTc3MDM3NCksCi0gICAg
ICAgICBUT0JOKDB4ZjQ0MmUxMDcsIDB4MDczOGVmZTIpLCBUT0JOKDB4Y2Y5ZjNmNTYsIDB4Y2Y5
MDgyZDIpLAotICAgICAgICAgVE9CTigweDcxOWY2OWUxLCAweDA5NjE4NzA4KSwgVE9CTigweGNj
OWU4MzY0LCAweGMxODNmOWIxKSwKLSAgICAgICAgIFRPQk4oMHhlYzIwM2E5NSwgMHgzNjZhMjFh
ZiksIFRPQk4oMHg2YWVjNWQ2ZCwgMHgwNjhiMTQxZiksCi0gICAgICAgICBUT0JOKDB4ZWUyZGY3
OGEsIDB4OTk0ZjA0ZTkpLCBUT0JOKDB4YjM5Y2NhZTgsIDB4MjcxMjQ1YjApLAotICAgICAgICAg
VE9CTigweGI4NzVhNGE5LCAweDk3ZTQzZjRmKSwgVE9CTigweDUwN2RmZTExLCAweGRiMmNlYTk4
KSwKLSAgICAgICAgIFRPQk4oMHg0ZmJmODFjYiwgMHg0ODliMDNlOSksIFRPQk4oMHhkYjg2ZWM1
YiwgMHg2ZWM0MTRmYSksCi0gICAgICAgICBUT0JOKDB4ZmFkNDQ0ZjksIDB4ZjUxYjNhZTUpLCBU
T0JOKDB4Y2E3ZDMzZDYsIDB4MTkxNGUzZmUpLAotICAgICAgICAgVE9CTigweGE5YzMyZjVjLCAw
eDBhZTZjNGQwKSwgVE9CTigweGE5Y2ExZDFlLCAweDczOTY5NTY4KSwKLSAgICAgICAgIFRPQk4o
MHg5ODA0M2MzMSwgMHgxYWE3NDY3ZSksIFRPQk4oMHhlODMyZTc1YywgMHhlMjFiNWFjNiksCi0g
ICAgICAgICBUT0JOKDB4MzE0YjdhZWEsIDB4NTIzMjEyM2QpLCBUT0JOKDB4MDgzMDdjOGMsIDB4
NjVhZTg2ZGIpLAotICAgICAgICAgVE9CTigweDA2ZTcxNjVjLCAweGFhNDY2OGVkKSwgVE9CTigw
eGIxNzA0NThiLCAweGI0ZDNlYzM5KSwKLSAgICAgICAgIFRPQk4oMHg0ZDJlM2VjNiwgMHhjMTli
Yjk4NiksIFRPQk4oMHhjNWYzNDg0NiwgMHhhZTAzMDRlZCksCi0gICAgICAgICBUT0JOKDB4OTE3
Njk1YTAsIDB4NmM5Zjk3MjIpLCBUT0JOKDB4NmM3ZjczMTcsIDB4NGNhYjFjMGEpLAotICAgICAg
ICAgVE9CTigweDYyOTU5NDBlLCAweDlkNmQyZThiKSwgVE9CTigweGQzMThiOGMxLCAweDU0OWY3
Yzk3KSwKLSAgICAgICAgIFRPQk4oMHgyMjQ1MzIwNCwgMHg5NzcxMzg4NSksIFRPQk4oMHg0Njhk
ODM0YiwgMHhhOGE0NDBmZSksCi0gICAgICAgICBUT0JOKDB4ZDgxZmU1YjIsIDB4YmZiYTc5NmUp
LCBUT0JOKDB4MTUyMzY0ZGIsIDB4NmQ3MWYxMTYpLAotICAgICAgICAgVE9CTigweGJiOGM3YzU5
LCAweGI1YjY2ZTUzKSwgVE9CTigweDBiMTJjNjFiLCAweDI2NDFhMTkyKSwKLSAgICAgICAgIFRP
Qk4oMHgzMWYxNDgwMiwgMHhmY2YwYTdmZCksIFRPQk4oMHg0MmZkMDc4OSwgMHg1NDg4YjAxZSks
Ci0gICAgICAgICBUT0JOKDB4NzFkNzhkNmQsIDB4OTk1MmI0OTgpLCBUT0JOKDB4OGViNTcyZDks
IDB4MDdhYzUyMDEpLAotICAgICAgICAgVE9CTigweGUwYTJhNDRjLCAweDRkMTk0YTg4KSwgVE9C
TigweGQyYjYzZmQ5LCAweGJhMDE3ZTY2KSwKLSAgICAgICAgIFRPQk4oMHg3OGVmYzZjOCwgMHhm
ODg4YWVmYyksIFRPQk4oMHhiNzZmNmJkYSwgMHg0YTg4MWExMSksCi0gICAgICAgICBUT0JOKDB4
MTg3ZjMxNGIsIDB4YjQ2YzIzOTcpLCBUT0JOKDB4MDA0Y2Y1NjYsIDB4NWRlZDI4MTkpLAotICAg
ICAgICAgVE9CTigweGE5ZWE1NzA0LCAweDM4NzY0ZDM0KSwgVE9CTigweGJiYTQ1MjE3LCAweDc4
MDg0NzA5KSwKLSAgICAgICAgIFRPQk4oMHgwNjQ3NDU3MSwgMHgxMTcxMTIxZSksIFRPQk4oMHhh
ZDdiN2ViMSwgMHhlN2M5YjY3MSksCi0gICAgICAgICBUT0JOKDB4ZGFjZmJjNDAsIDB4NzMwZjc1
MDcpLCBUT0JOKDB4MTc4Y2Q4YzYsIDB4YzdhZDdiZDEpLAotICAgICAgICAgVE9CTigweGJmMGJl
MTAxLCAweGIyYTY3MjM4KSwgVE9CTigweDM1NTZkMzY3LCAweGFmOWMxNGYyKSwKLSAgICAgICAg
IFRPQk4oMHgxMDRiNzgzMSwgMHhhNTY2MjA3NSksIFRPQk4oMHg1OGNhNTliYiwgMHg3OWQ5ZTYw
YSksCi0gICAgICAgICBUT0JOKDB4NGJjNDUzOTIsIDB4YTU2OWE3M2IpLCBUT0JOKDB4NTE3YTUy
ZTgsIDB4NTY5OGY2YzkpLAotICAgICAgICAgVE9CTigweDg1NjQzZGE1LCAweGFlYWRkNzU1KSwg
VE9CTigweDFhZWQwY2Q1LCAweDJhNTgxYjg0KSwKLSAgICAgICAgIFRPQk4oMHhiOWI0ZmY4NCwg
MHg4MGFmMTM3MiksIFRPQk4oMHgyNDRjMzExMywgMHhmMWJhNWQxZiksCi0gICAgICAgICBUT0JO
KDB4MmE1ZGFjYmUsIDB4ZjVmOThkMzEpLCBUT0JOKDB4MmMzMzIzZTgsIDB4NDM3NWJjMmEpLAot
ICAgICAgICAgVE9CTigweDE3YTNhYjRhLCAweDU1OTRiMWRkKSwgVE9CTigweGExOTI4YmZiLCAw
eGNlYjQ3OTdlKSwKLSAgICAgICAgIFRPQk4oMHhlODNhZjI0NSwgMHhlNDg4NmExOSksIFRPQk4o
MHg4OTc5ZDU0NiwgMHg3MmI1YTc0YSksCi0gICAgICAgICBUT0JOKDB4YTBmNzI2YmMsIDB4MTlm
OWU5NjcpLCBUT0JOKDB4ZDlkMDMxNTIsIDB4ZThmYmJmNGUpLAotICAgICAgICAgVE9CTigweGNm
ZDZmNTFkLCAweGI3NzA3ZDQwKSwgVE9CTigweDYzMzA4NGQ5LCAweDYzZjZlNmUwKSwKLSAgICAg
ICAgIFRPQk4oMHhlZGNkOWNkYywgMHg1NTY2N2VhZiksIFRPQk4oMHg3M2I3ZjkyYiwgMHgyZTQ0
ZDU2ZiksCi0gICAgICAgICBUT0JOKDB4ZmIyZTM5YjYsIDB4NGU5NjJiMTQpLCBUT0JOKDB4N2Q0
MDhmNmUsIDB4ZjY3MWZjYmYpLAotICAgICAgICAgVE9CTigweGNjNjM0ZGRjLCAweDE2NGE4OWJi
KSwgVE9CTigweDc0YTQyYmIyLCAweDNlZjNiZDA1KSwKLSAgICAgICAgIFRPQk4oMHgxMjgwZGJi
MiwgMHg0MjhkZWNiYiksIFRPQk4oMHg2MTAzZjZiYiwgMHg0MDJjODU5NiksCi0gICAgICAgICBU
T0JOKDB4ZmEyYmY1ODEsIDB4MzU1YTU3NTIpLCBUT0JOKDB4NTYyZjk2YTgsIDB4MDA5NDY2NzQp
LAotICAgICAgICAgVE9CTigweDRlNGNhMTZkLCAweDZkYTAyMjNiKSwgVE9CTigweGZlNDc4MTlm
LCAweDI4ZDNhYTI1KSwKLSAgICAgICAgIFRPQk4oMHg5ZWVhMzA3NSwgMHhmOGRmY2Y4YSksIFRP
Qk4oMHhhMjg0ZjBhYSwgMHg5NTY2OTgyNSksCi0gICAgICAgICBUT0JOKDB4YjNmY2EyNTAsIDB4
ODY3ZDNmZDgpLCBUT0JOKDB4MjA3NTdiNWYsIDB4MjY5ZDY5MWUpLAotICAgICAgICAgVE9CTigw
eGYyYzI0MDIwLCAweDkzYjhhNWRlKSwgVE9CTigweGQzZjkzMzU5LCAweGViYzA2ZGE2KSwKLSAg
ICAgICAgIFRPQk4oMHgxMTc4MjkzZSwgMHhiMjczOWMzMyksIFRPQk4oMHhkMmEzZTc3MCwgMHhi
Y2Q2ODZlNSksCi0gICAgICAgICBUT0JOKDB4YTc2ZjQ5ZjQsIDB4Y2Q5NDE1MzQpLCBUT0JOKDB4
MGQzNzQwNmIsIDB4ZTNjNzFjMGUpLAotICAgICAgICAgVE9CTigweDE3MmQ5Mzk3LCAweDNiOTdm
N2UzKSwgVE9CTigweGVjMTdlMjM5LCAweGJkN2ZkMGRlKSwKLSAgICAgICAgIFRPQk4oMHhlMzI5
MDU1MSwgMHg2ZjQ5NmJhMiksIFRPQk4oMHg2YTY5MzE3MiwgMHgzNmFkNTBlNyksCi0gICAgICAg
ICBUT0JOKDB4YzRlNTM5YTIsIDB4ODNlN2VmZjUpLCBUT0JOKDB4NzUyNzM3ZTcsIDB4MThlMWI0
Y2YpLAotICAgICAgICAgVE9CTigweGEyZjc5MzJjLCAweDY4YWY0M2VlKSwgVE9CTigweDU1MDI0
NjhlLCAweDcwM2QwMGJkKSwKLSAgICAgICAgIFRPQk4oMHhlNWRjOTc4ZiwgMHgyZmIwNjFmNSks
IFRPQk4oMHhjOWExOTA0YSwgMHgyOGM4MTVhZCksCi0gICAgICAgICBUT0JOKDB4ZDNhZjUzOGQs
IDB4NDcwYzU2YTQpLCBUT0JOKDB4MTU5YWJjNWYsIDB4MTkzZDhjZWQpLAotICAgICAgICAgVE9C
TigweDJhMzcyNDVmLCAweDIwMTA4ZWYzKSwgVE9CTigweGZhMTcwODFlLCAweDIyM2Y3MTc4KSwK
LSAgICAgICAgIFRPQk4oMHgyN2IwZmIyYiwgMHgxMGM4YzBmNSksIFRPQk4oMHgyMTAyYzNlYSwg
MHg0MDY1MDU0NyksCi0gICAgICAgICBUT0JOKDB4NTk0NTY0ZGYsIDB4OGFjM2JmYTcpLCBUT0JO
KDB4OTgxMDIwMzMsIDB4NTA5ZGFkOTYpLAotICAgICAgICAgVE9CTigweDY5ODk2NDNmLCAweGYx
ZDE4YTEzKSwgVE9CTigweDM1ZWViZDkxLCAweGQ3ZmM1YWYwKSwKLSAgICAgICAgIFRPQk4oMHgw
NzhkMDk2YSwgMHhmYWVhYWZkOCksIFRPQk4oMHhiN2E4OTM0MSwgMHhkZWYzZGU5OCksCi0gICAg
ICAgICBUT0JOKDB4MmEyMDZlOGQsIDB4ZWNmMmE3M2EpLCBUT0JOKDB4MDY2YTYzOTcsIDB4OGU1
NTE5OTQpLAotICAgICAgICAgVE9CTigweDNhNmEwODhhLCAweGI5OGQ1M2EyKSwgVE9CTigweDBj
ZTdjNjdjLCAweDJkMTEyNGFhKSwKLSAgICAgICAgIFRPQk4oMHg0OGNlYzY3MSwgMHg3NTlhMTEz
YyksIFRPQk4oMHhlM2IzNzNkMywgMHg0ZjZmNjdmYSksCi0gICAgICAgICBUT0JOKDB4NTQ1NWQ0
NzksIDB4ZmQzNjcyN2IpLCBUT0JOKDB4ZTVhNDI4ZWUsIDB4YTEzYzBkODEpLAotICAgICAgICAg
VE9CTigweGI4NTNkYmM4LCAweDFjODY2ODJiKSwgVE9CTigweGI3OGQyNzI3LCAweGI4ZDAyYjJh
KSwKLSAgICAgICAgIFRPQk4oMHhhYWY2OWJlZCwgMHg4ZWJjMzI5YSksIFRPQk4oMHhkYjZiNDBi
MywgMHgyOTNiMjE0OCksCi0gICAgICAgICBUT0JOKDB4ZTQyZWE3N2QsIDB4YjhjNDk2MWYpLCBU
T0JOKDB4YjFhMTJmN2MsIDB4MjBlNWUwYWIpLAotICAgICAgICAgVE9CTigweGEwZWM1Mjc0LCAw
eDc5ZThiMDVlKSwgVE9CTigweDY4MDI3MzkxLCAweGZhYjYwYTgwKSwKLSAgICAgICAgIFRPQk4o
MHg2YmZlZWE1ZiwgMHgxNmIxYmQ1ZSksIFRPQk4oMHhmOTU3ZTQyMCwgMHg0ZGUzMGFkMyksCi0g
ICAgICAgICBUT0JOKDB4Y2JhZjY2NGUsIDB4NmEzNTNiOWUpLCBUT0JOKDB4NWM4NzMzMTIsIDB4
MjZkMTRmZWIpLAotICAgICAgICAgVE9CTigweDRlODdmOThjLCAweGI2NWY1N2NiKSwgVE9CTigw
eGRiNjBhNjIxLCAweDVlMGNkZDQxKSwKLSAgICAgICAgIFRPQk4oMHg2N2MxNjg2NSwgMHhhNjg4
MTQ0MCksIFRPQk4oMHgxMDkzZWYxYSwgMHg0NmFiNTJhYSksCi0gICAgICAgICBUT0JOKDB4YzA5
NWFmYjUsIDB4M2Y0ZWNlNjQpLCBUT0JOKDB4NmE2YmIwMmUsIDB4NzYwNDU1MWEpLAotICAgICAg
ICAgVE9CTigweDU1ZDQ0YjRlLCAweDBiMjZiOGNkKSwgVE9CTigweGU1ZjlhOTk5LCAweGY5NzEy
NjhhKSwKLSAgICAgICAgIFRPQk4oMHhjMDhlYzQyNSwgMHgxMWE3ZGU4NCksIFRPQk4oMHg4MzU2
ODA5NSwgMHhmZGE0NjlkZCksCi0gICAgICAgICBUT0JOKDB4NzM3YmZiYTEsIDB4NmM2YzkwYTIp
LCBUT0JOKDB4MWNiOWM0YTAsIDB4YmUyMjk4MzEpLAotICAgICAgICAgVE9CTigweDkzYmNjYmJh
LCAweGJiMmVlYzY0KSwgVE9CTigweGEwYzIzYjY0LCAweGRhMDNhZGJlKSwKLSAgICAgICAgIFRP
Qk4oMHg1ZjdhYTAwYSwgMHhlMGU4NmFjNCksIFRPQk4oMHg0NzBiOTQxZSwgMHhmYzE0MDFlNiks
Ci0gICAgICAgICBUT0JOKDB4NWFkOGQ2NzksIDB4OWRmNDM1NzQpLCBUT0JOKDB4NGNjZmI4YTks
IDB4MGY2NWQ4MTApLAotICAgICAgICAgVE9CTigweDFiY2U4MGUzLCAweGFhN2ZiZDgxKSwgVE9C
TigweDI3MzI5MWFkLCAweDk1MDhkMjBhKSwKLSAgICAgICAgIFRPQk4oMHhmNWM0YjQ2YiwgMHg0
MmE5MjgwNiksIFRPQk4oMHg4MTA2ODRlYywgMHhhODZhYjQ0YSksCi0gICAgICAgICBUT0JOKDB4
NDU5MTY0MGIsIDB4Y2EwYmM5ZjgpLCBUT0JOKDB4YjVlZmNkZmMsIDB4NWM0YjYwNTQpLAotICAg
ICAgICAgVE9CTigweDE2ZmM4OTA3LCAweDZlOWVkZDEyKSwgVE9CTigweGUyOWQwYjUwLCAweGQ0
ZDc5MmY5KSwKLSAgICAgICAgIFRPQk4oMHhhNDVmZDAxYywgMHg5YjAzMTE2ZCksIFRPQk4oMHg4
NTAzNTIzNSwgMHhjODE3NjVhNCksCi0gICAgICAgICBUT0JOKDB4MWZlMmE5YjIsIDB4YjRiNGI2
N2MpLCBUT0JOKDB4YzFkMTBkZjAsIDB4ZTgwMjA2MDQpLAotICAgICAgICAgVE9CTigweDlkNjRh
YmZjLCAweGJjODA1OGQ4KSwgVE9CTigweDg5NDNiOWIyLCAweDcxMmEwZmJiKSwKLSAgICAgICAg
IFRPQk4oMHg5MGVlZDkxNCwgMHgzYjNkZWYwNCksIFRPQk4oMHg4NWFiM2FhMiwgMHg0Y2U3NzVm
ZiksCi0gICAgICAgICBUT0JOKDB4NjA1ZmQ0Y2EsIDB4N2JiYzkwNDApLCBUT0JOKDB4OGIzNGE1
NjQsIDB4ZTJjNzVkZmIpLAotICAgICAgICAgVE9CTigweDQxZmZjOTRhLCAweDEwMzU4NTYwKSwg
VE9CTigweDJkOGE1MDcyLCAweDllNWMyOGFhKSwKLSAgICAgICAgIFRPQk4oMHhlOTE1YTBmYywg
MHg0Y2M3ZWIxNSksIFRPQk4oMHhlOWVmYWIwNSwgMHg4ZjZkMGY1ZCksCi0gICAgICAgICBUT0JO
KDB4ZGJhYjQ3YTksIDB4ZDE5ZTliOTEpLCBUT0JOKDB4OGNmZWQ3NDUsIDB4MDI3NjE1NGMpLAot
ICAgICAgICAgVE9CTigweDE1NDM1N2FlLCAweDJjZmVkZTBkKSwgVE9CTigweDUyMDYzMGRmLCAw
eDE5ZjVhNGVmKSwKLSAgICAgICAgIFRPQk4oMHgyNTc1OWY3YywgMHhlMzgyMzYwZiksIFRPQk4o
MHhiNmRiMDVjOSwgMHg4OGJmNTg1NyksCi0gICAgICAgICBUT0JOKDB4MjkxN2Q2MWQsIDB4NmM1
OGQ0NmMpLCBUT0JOKDB4MTRmOGU0OTEsIDB4ZmQyMGNiN2EpLAotICAgICAgICAgVE9CTigweGI2
OGE3MjdhLCAweDExYzIwMzQwKSwgVE9CTigweDAzODZmODZmLCAweGFmN2NjYmI2KSwKLSAgICAg
ICAgIFRPQk4oMHg1YzhiYzZjYywgMHhmZWUwOWEyMCksIFRPQk4oMHg3ZDc2ZmY0YSwgMHhiYjdl
ZWEzNSksCi0gICAgICAgICBUT0JOKDB4YTdiZGViZTcsIDB4ZGIxNWJlN2EpLCBUT0JOKDB4Njdh
MDgwNTQsIDB4ZDg5ZjAzMDIpLAotICAgICAgICAgVE9CTigweDU2YmYwZWE5LCAweGMxMTkzMzY0
KSwgVE9CTigweGM4MjQ0NDY3LCAweDYyODM3ZWJlKSwKLSAgICAgICAgIFRPQk4oMHgzMmJkOGU4
YiwgMHgyMGQ4NDFiOCksIFRPQk4oMHgxMjdhMDU0OCwgMHhkYmI4YTU0ZiksCi0gICAgICAgICBU
T0JOKDB4ODNkZDRjYTYsIDB4NjNiMjAyMzYpLCBUT0JOKDB4ODc3MTQ3MTgsIDB4MjAzNDkxZmEp
LAotICAgICAgICAgVE9CTigweDRkYWJjYWFhLCAweGFhOGE1Mjg4KSwgVE9CTigweDkxY2MwYzhh
LCAweGFmMjNhMWM5KSwKLSAgICAgICAgIFRPQk4oMHgzNGM3MmM2YSwgMHgzZjIyMGUwYyksIFRP
Qk4oMHhiY2MyMGJkZiwgMHgxMjMyMTQ0YSksCi0gICAgICAgICBUT0JOKDB4NmUyZjQyZGEsIDB4
YTIwZWRlMWIpLCBUT0JOKDB4YzQ0MWYwMGMsIDB4NzRhMDA1MTUpLAotICAgICAgICAgVE9CTigw
eGJmNDZhNWI2LCAweDczNGI4YzRiKSwgVE9CTigweDU3NDA5NTAzLCAweDdiNTZjOWE0KSwKLSAg
ICAgICAgIFRPQk4oMHg5ZjczNTI2MSwgMHhlNDU4NWQ0NSksIFRPQk4oMHg5MjMxZmFlZCwgMHg2
NzM0ZTY0MiksCi0gICAgICAgICBUT0JOKDB4MTE1OGExNzYsIDB4YmU3MGVlNmMpLCBUT0JOKDB4
MzVmMTA2OGQsIDB4N2MzNTAxYmYpLAotICAgICAgICAgVE9CTigweDZiZWVmOTAwLCAweGEyZDI2
MTE1KSwgVE9CTigweDY0OTQwNmYyLCAweGVmMGFmZWUzKSwKLSAgICAgICAgIFRPQk4oMHgzZjQz
YTYwYSwgMHhiYzI0MjBhMSksIFRPQk4oMHg1MDkwMDJhNywgMHhkNWFlZTRhYyksCi0gICAgICAg
ICBUT0JOKDB4YjQ2ODM2YTUsIDB4M2ZmMzU3MWIpLCBUT0JOKDB4MjRmOThiNzgsIDB4ODM3OTI3
YzEpLAotICAgICAgICAgVE9CTigweDYyNTQyNTZhLCAweDQ1MzNjNzE2KSwgVE9CTigweGYyN2Fi
YjBiLCAweGQwN2VlMTk2KSwKLSAgICAgICAgIFRPQk4oMHhkN2NmNjRmYywgMHg1YzZkNWJmZCks
IFRPQk4oMHg2OTE1Yzc1MSwgMHhmMGNkN2E3NyksCi0gICAgICAgICBUT0JOKDB4ZDlmNTkwMTIs
IDB4ODc5OGY1MzQpLCBUT0JOKDB4NzcyYjBkYTgsIDB4ZjgxZDhiNWYpLAotICAgICAgICAgVE9C
TigweDEyNDQyNjBjLCAweDJlMDNmYTY5KSwgVE9CTigweDM2Y2YwZTNhLCAweDNiZTFhMzc0KSwK
LSAgICAgICAgIFRPQk4oMHg2ZTdjMTYzMywgMHhlZjA2Yjk2MCksIFRPQk4oMHhhNzFhNGM1NSwg
MHg2NzFmOTBmNiksCi0gICAgICAgICBUT0JOKDB4N2E5NDEyNTEsIDB4MzNjNjczZGIpLCBUT0JO
KDB4YzBiZWE1MTAsIDB4NzNlOGMxMzEpLAotICAgICAgICAgVE9CTigweDYxYThhNjk5LCAweGQ0
ZjZjNzM0KSwgVE9CTigweDI1ZTc4Yzg4LCAweDM0MWVkMDAxKSwKLSAgICAgICAgIFRPQk4oMHg1
YzE4YWNmOCwgMHg4ZTJmN2Q5MCksIFRPQk4oMHhmZGJmMzNkNywgMHg3N2JlMzJjZCksCi0gICAg
ICAgICBUT0JOKDB4MGEwODVjZDcsIDB4ZDJlYjVlZTkpLCBUT0JOKDB4MmQ3MDJjZmIsIDB4YjMy
MDExMTUpLAotICAgICAgICAgVE9CTigweGI2ZTBlYmRiLCAweDg1Yzg4Y2U4KSwgVE9CTigweDIz
YTNjZTNjLCAweDFlMDFkNjE3KSwKLSAgICAgICAgIFRPQk4oMHgzMDQxNjE4ZSwgMHg1NjczMzNh
YyksIFRPQk4oMHg5ZGQwZmQ4ZiwgMHgxNTdlZGI2YiksCi0gICAgICAgICBUT0JOKDB4MjdmNzQ3
MDIsIDB4YjU3ODcyYjgpLCBUT0JOKDB4MmVmMjZiNGYsIDB4NjU3ZDVmZTEpLAotICAgICAgICAg
VE9CTigweDk1NDI2ZjBhLCAweDU3Y2YzZDQwKSwgVE9CTigweDg0N2UyYWQxLCAweDY1YTYwNjdh
KSwKLSAgICAgICAgIFRPQk4oMHhkNDc0ZDlhMCwgMHgwOTk5NmE3NCksIFRPQk4oMHgxNmE1NmFj
ZCwgMHgyYTI2MTE1YyksCi0gICAgICAgICBUT0JOKDB4MDJhNjE1YzMsIDB4ZDE2ZjRkNDMpLCBU
T0JOKDB4Y2MzZmM5NjUsIDB4YWFkYjg1YjcpLAotICAgICAgICAgVE9CTigweDM4NmJkYTczLCAw
eGNlMDdkMWIwKSwgVE9CTigweGQ4MjkxMGMyLCAweDU4YWQ0MTc4KSwKLSAgICAgICAgIFRPQk4o
MHgxMjRmODJjZiwgMHhjZDI2MTdmNCksIFRPQk4oMHhjYzJmNWU4ZCwgMHhlZjY5MTc3MCksCi0g
ICAgICAgICBUT0JOKDB4ODI3MDI1NTAsIDB4YjhjMzBjY2MpLCBUT0JOKDB4N2I4NTZhZWEsIDB4
MWE4ZTU3NWEpLAotICAgICAgICAgVE9CTigweGJiODIyZmVmLCAweGIxYWI5NDU5KSwgVE9CTigw
eDA4NTkyOGJjLCAweGVjMjRlMzhlKSwKLSAgICAgICAgIFRPQk4oMHg1ZDA0MDJlYywgMHhiYThm
NGI0ZCksIFRPQk4oMHhjMDdjZDRiYSwgMHgwMGI0ZDU4YiksCi0gICAgICAgICBUT0JOKDB4NWQ4
ZGZmZDUsIDB4MjkyMjdlN2EpLCBUT0JOKDB4NjFkNDRkMGMsIDB4MzFiZjM4NmYpLAotICAgICAg
ICAgVE9CTigweGU0ODZkYzJiLCAweDEzNWU2ZjRkKSwgVE9CTigweDY4MDk2MmViLCAweGU3OTQx
MGVmKSwKLSAgICAgICAgIFRPQk4oMHhhNjFiZDM0MywgMHhmMTAwODhiNSksIFRPQk4oMHg2YWE3
NjA3NiwgMHhlMmUyODY4NiksCi0gICAgICAgICBUT0JOKDB4ODA0NjNkMTEsIDB4OGZiOTg4NzEp
LCBUT0JOKDB4Y2IyNmY1YzMsIDB4YmJjNzZhZmYpLAotICAgICAgICAgVE9CTigweGQ0YWI4ZWRk
LCAweGZiZTAzNjE0KSwgVE9CTigweGM4ZWI1NzliLCAweGMwY2YyZGVlKSwKLSAgICAgICAgIFRP
Qk4oMHhjYzAwNGMxNSwgMHhjOTNiYWU0MSksIFRPQk4oMHg0NmZiYWU1ZCwgMHgzYWVjYTNiMiks
Ci0gICAgICAgICBUT0JOKDB4NjcxMjM1Y2YsIDB4MGYxZTlhYjEpLCBUT0JOKDB4YWRmYmE5MzQs
IDB4OWVjMjg1YzEpLAotICAgICAgICAgVE9CTigweDg4ZGVkMDEzLCAweGYyMTZjOTgwKSwgVE9C
TigweGM4YWM0ZmI4LCAweGY3OWUwYmMxKSwKLSAgICAgICAgIFRPQk4oMHhhMjliODljNiwgMHhm
Yjk3YTIzNyksIFRPQk4oMHhiNjk3Yjc4MCwgMHg5OTIyZDhlNyksCi0gICAgICAgICBUT0JOKDB4
MzE0MmM2MzksIDB4ZGRiOTQ1YjUpLCBUT0JOKDB4NDQ3YjA2YzcsIDB4ZTA5NGMzYTkpLAotICAg
ICAgICAgVE9CTigweGNkY2IzNjQyLCAweDcyMjY2YzkwKSwgVE9CTigweDYzM2FhZDA4LCAweGE5
Mzg1MDQ2KSwKLSAgICAgICAgIFRPQk4oMHhhMzZjOTM2YiwgMHhiNTdjNjQ3NyksIFRPQk4oMHg4
NzFmOGI2NCwgMHhlOTRkYmNjNiksCi0gICAgICAgICBUT0JOKDB4MjhkMGZiNjIsIDB4YTU5MWE2
N2IpLCBUT0JOKDB4OWQ0MGUwODEsIDB4YzFkOTI2ZjUpLAotICAgICAgICAgVE9CTigweDMxMTFl
YWY2LCAweGYyZDg0YjVhKSwgVE9CTigweDIyODk5M2Y5LCAweGE1NjViNjQ0KSwKLSAgICAgICAg
IFRPQk4oMHgwY2NiZjU5MiwgMHgyYzgzMTg4YiksIFRPQk4oMHhmODdiMzBhYiwgMHgzZGYzZTE5
NyksCi0gICAgICAgICBUT0JOKDB4Yjg2NThiMzEsIDB4NzY0MmJjYTgpLCBUT0JOKDB4MWEwMzJk
N2YsIDB4NTI4MDBmMTcpLAotICAgICAgICAgVE9CTigweDA1MWRjYWU1LCAweDc5YmY5NDQ1KSwg
VE9CTigweGViYTZiOGVlLCAweDU0YTJlMjUzKSwKLSAgICAgICAgIFRPQk4oMHg1YzhiOWNhZCwg
MHhkNDQ4NTY5MiksIFRPQk4oMHg4NGJkYTQwZSwgMHg4OTg2ZTliZSksCi0gICAgICAgICBUT0JO
KDB4ZDE2ZDE2YTQsIDB4MmYwZGI0NDgpLCBUT0JOKDB4OGVjODAwNTAsIDB4YTE0ZDQxODgpLAot
ICAgICAgICAgVE9CTigweGIyYjI2MTA3LCAweDk4ZmE3YWFhKSwgVE9CTigweDQxMjA5ZWU0LCAw
eGYwNzNhYTRlKSwKLSAgICAgICAgIFRPQk4oMHhmMTU3MDM1OSwgMHhmMmQ2YjE5YiksIFRPQk4o
MHhjYmU2ODY4YywgMHhmYzU3N2NhZiksCi0gICAgICAgICBUT0JOKDB4MTg2YzRiZGMsIDB4MzJj
MDRkZDMpLCBUT0JOKDB4YTZjMzVmYWUsIDB4Y2ZlZWUzOTcpLAotICAgICAgICAgVE9CTigweGI0
YTFiMzEyLCAweGYwODZjMGNmKSwgVE9CTigweGUwYTVjY2M2LCAweGQ5NDYxZmUyKSwKLSAgICAg
ICAgIFRPQk4oMHhjMzIyNzhhYSwgMHgxNTM2MTg5ZiksIFRPQk4oMHgxMTI2YzU1ZiwgMHhiYTZk
ZjU3MSksCi0gICAgICAgICBUT0JOKDB4MGY3MWE2MDIsIDB4YjE5NDU2MGUpLCBUT0JOKDB4OGIy
ZDc0MDUsIDB4MzI0YmQ2ZTEpLAotICAgICAgICAgVE9CTigweDg0ODE5MzllLCAweDM3MzhiZTcx
KSwgVE9CTigweGI1MDkwYjFhLCAweDFhNGQ5N2E5KSwKLSAgICAgICAgIFRPQk4oMHgxMTZjNjVh
MywgMHhmMDViYTkxNSksIFRPQk4oMHgyMTg2M2FkMywgMHhhYWU0NDhhYSksCi0gICAgICAgICBU
T0JOKDB4ZDI0ZTI2NzksIDB4YTdhYWU1ZDMpLCBUT0JOKDB4NzA3NjAxM2QsIDB4MGRlNWMxYzQp
LAotICAgICAgICAgVE9CTigweDJkNTBmOGJhLCAweGJiMDViNjI5KSwgVE9CTigweDczYzFhYmUy
LCAweDZlNjZlZmJiKSwKLSAgICAgICAgIFRPQk4oMHhlZmQ0YjQyMiwgMHhmMjQ4OGFmNyksIFRP
Qk4oMHhlNDEwNWQwMiwgMHg2NjNiYTU3NSksCi0gICAgICAgICBUT0JOKDB4N2ViNjBhOGIsIDB4
NTNhNjk0NTcpLCBUT0JOKDB4NjIyMTAwMDgsIDB4Yzk0NTk3M2IpLAotICAgICAgICAgVE9CTigw
eGZiMjU1NDc4LCAweDc3YTUwZWM2KSwgVE9CTigweGJmMDM5MmY3LCAweDBhMzdhNzJjKSwKLSAg
ICAgICAgIFRPQk4oMHhhMGE3YTE5YywgMHg0YmUxOGU3YSksIFRPQk4oMHg5MGQ4ZWExNiwgMHgy
NWIxZTBhZiksCi0gICAgICAgICBUT0JOKDB4NzU4MmEyOTMsIDB4ZWY5NTNmNTcpLCBUT0JOKDB4
OTBhNjRkMDUsIDB4YmRjNTQ2NWEpLAotICAgICAgICAgVE9CTigweGNhNzljNDk3LCAweGUyNTEw
NzE3KSwgVE9CTigweDU2MGRiYjdjLCAweDE4Y2I2NDFmKSwKLSAgICAgICAgIFRPQk4oMHgxZDhl
MzI4NiwgMHg0YjY2YWJmYiksIFRPQk4oMHhkMjZmNTJlNSwgMHg1OTAzMDkwMCksCi0gICAgICAg
ICBUT0JOKDB4MWVlM2Y2NDMsIDB4NTU4NDk0MWEpLCBUT0JOKDB4NmQzYjM3MzAsIDB4NTY5ZjU5
NTgpLAotICAgICAgICAgVE9CTigweDlmZjJhNjJmLCAweDQ3ODlkYmE1KSwgVE9CTigweDkxZmNi
ODE1LCAweDcyYjVjOWI3KSwKLSAgICAgICAgIFRPQk4oMHhmNDQ2Y2I3ZCwgMHg2YzhmOWEwZSks
IFRPQk4oMHg0OGY2MjVjMSwgMHgzOWI3ZWNiNSksCi0gICAgICAgICBUT0JOKDB4YmFiYWU4MDEs
IDB4MWM2MjE5YjgpLCBUT0JOKDB4ZTdhNTYyZDksIDB4MjhhYzJmMjMpLAotICAgICAgICAgVE9C
TigweGUxYjQ4NzMyLCAweDI2ZTIwNTg4KSwgVE9CTigweDA2ZWUxY2FkLCAweDc3NWFmMDUxKSwK
LSAgICAgICAgIFRPQk4oMHhkYTI5YWU0MywgMHhmYWZmNzlmNyksIFRPQk4oMHhjMTQxYTQxMiwg
MHg2NTJlZTllMCksCi0gICAgICAgICBUT0JOKDB4MWUxMjdmNmYsIDB4MTk1ZjRiZDApLCBUT0JO
KDB4MjljNmFiNGYsIDB4MDcyZjM0ZjgpLAotICAgICAgICAgVE9CTigweDdiN2MxNDc3LCAweDMw
NDQ4MTEyKSwgVE9CTigweDgyYjUxYWYxLCAweGU0YTM4NjU2KSwKLSAgICAgICAgIFRPQk4oMHgy
YmYyMDI4YSwgMHgyZjMxNTAxMCksIFRPQk4oMHhjOWE0YTAxZiwgMHg2ZWE4OGNkNCksCi0gICAg
ICAgICBUT0JOKDB4ZjYzZTk1ZDgsIDB4MjU3ZTU4MTgpLCBUT0JOKDB4ZGQ4ZWZhMTAsIDB4YjQ1
MTliMTYpLAotICAgICAgICAgVE9CTigweGVkODk3M2UwLCAweDBkYTkxMGJmKSwgVE9CTigweGVk
NDlkMDc3LCAweDVjMGZlNGE5KSwKLSAgICAgICAgIFRPQk4oMHhhYzNhYWM1ZSwgMHhiN2NhZWUx
ZSksIFRPQk4oMHgxMDMzODk4ZCwgMHhhN2Y0ZGE1NyksCi0gICAgICAgICBUT0JOKDB4NDIxNDVj
MGUsIDB4NWM2NjY5YjkpLCBUT0JOKDB4NDJkYWE2ODgsIDB4YzFhYTJhYTApLAotICAgICAgICAg
VE9CTigweDYyOWNjMTVjLCAweDFhMWQ4ODVhKSwgVE9CTigweDI1NTcyZWMwLCAweGY0Yjc2ODE3
KSwKLSAgICAgICAgIFRPQk4oMHg4MzEyZTQzNSwgMHg5YzhmOGYyOCksIFRPQk4oMHg4MTA3Zjhj
ZCwgMHg4MTk2NTQ5MCksCi0gICAgICAgICBUT0JOKDB4NTE2ZmYzYTMsIDB4NmZhNjExMGMpLCBU
T0JOKDB4NzRmYjFlYjEsIDB4ZmI5MzU2MWYpLAotICAgICAgICAgVE9CTigweDZjMGM5MDQ3LCAw
eDg0NTc1MjJiKSwgVE9CTigweGNmZDMyMTA0LCAweDZiYjhiZGM2KSwKLSAgICAgICAgIFRPQk4o
MHgyZDY4ODRhMiwgMHhjYzgwYWQ1NyksIFRPQk4oMHg3YzI3ZmMzNSwgMHg4NmE5YjYzNyksCi0g
ICAgICAgICBUT0JOKDB4MzQ2MWJhZWQsIDB4YWRmNGU4Y2QpLCBUT0JOKDB4MWQ1NjI1MWEsIDB4
NjE3MjQyZjApLAotICAgICAgICAgVE9CTigweDBiODBkMjA5LCAweGM5NTViZWY0KSwgVE9CTigw
eGRmMDJjYWQyLCAweDA2YWRiMDQ3KSwKLSAgICAgICAgIFRPQk4oMHhmMGQ3Y2I5MSwgMHg1ZWM3
NGZlZSksIFRPQk4oMHhkMjUwMzM3NSwgMHgxMTExYmE0NCksCi0gICAgICAgICBUT0JOKDB4OTY3
MTc1NWUsIDB4ZGY1M2NiMzYpLCBUT0JOKDB4NTRkY2I2MTIsIDB4MzM2ODU1MWIpLAotICAgICAg
ICAgVE9CTigweDY2ZDY5YWFjLCAweGM4YTAyNWE0KSwgVE9CTigweDZiZTk0NmM2LCAweGU3N2Vm
NDQ1KSwKLSAgICAgICAgIFRPQk4oMHg3MTk5NDZkMSwgMHhhOTk1ZTA5NCksIFRPQk4oMHg2NWU4
NDhmNiwgMHhlNTFlMDRkOCksCi0gICAgICAgICBUT0JOKDB4ZTYyZjMzMDAsIDB4NmExZTMxMTMp
LCBUT0JOKDB4MTU0MWM3YzEsIDB4NTAxZGU1MDMpLAotICAgICAgICAgVE9CTigweDRkYWFjOWZh
LCAweGY0YWNmYWRlKSwgVE9CTigweDBlNTg1ODk3LCAweDQ0Y2QwYjcxKSwKLSAgICAgICAgIFRP
Qk4oMHg1NDRmZDg2OSwgMHgwYTUxY2Q3NyksIFRPQk4oMHg2MGZjMjBlZCwgMHgwMDMxMDE2ZCks
Ci0gICAgICAgICBUT0JOKDB4NThiNDA0ZWMsIDB4YTQyNzY4NjcpLCBUT0JOKDB4NDZmNmMzY2Ms
IDB4MzRmMzQ5OTMpLAotICAgICAgICAgVE9CTigweDQ3N2NhMDA3LCAweGM2MzZlNWJkKSwgVE9C
TigweDgwMThmNWU1LCAweDdjNDU4YjQ3KSwKLSAgICAgICAgIFRPQk4oMHhhMTIwMjI3MCwgMHhl
NDdiNjY4ZiksIFRPQk4oMHhjZWY0OGNjZCwgMHhlZTE0ZjIwMyksCi0gICAgICAgICBUT0JOKDB4
MjNmOThiYWUsIDB4NjJmZjliNGQpLCBUT0JOKDB4NTVhY2MwMzUsIDB4YzU4OWVkZGQpLAotICAg
ICAgICAgVE9CTigweDNmZTcxMmFmLCAweDY0ZGI0NDQ0KSwgVE9CTigweDE5ZTlkNjM0LCAweGJl
Y2RkNDgwKSwKLSAgICAgICAgIFRPQk4oMHhlMDhiYzA0NywgMHhhOTMwOTc4YSksIFRPQk4oMHgy
ZGJmMjRlYywgMHhhMTI4MDczMyksCi0gICAgICAgICBUT0JOKDB4M2MwYWUzOGMsIDB4MmNkNzA2
YjIpLCBUT0JOKDB4NWIwMTJhNWIsIDB4MzU5MDE3YjkpLAotICAgICAgICAgVE9CTigweDM5NDNj
MzhjLCAweDcyZTBmNWFlKSwgVE9CTigweDc4NjE2N2VhLCAweDU3MTc2ZmEzKSwKLSAgICAgICAg
IFRPQk4oMHhlNWY5ODk3ZCwgMHg1OTQ4ODFkYyksIFRPQk4oMHg2YjVlZmFkOCwgMHhjZmI4MjBj
MSksCi0gICAgICAgICBUT0JOKDB4YjIxNzkwOTMsIDB4ZDU1MDE4ZGUpLCBUT0JOKDB4MzlhZDdk
MzIsIDB4MGJhYzU2Y2UpLAotICAgICAgICAgVE9CTigweGI1NTEyMmUwLCAweDJjZmMwZTgxKSwg
VE9CTigweDExN2M0NjYxLCAweGY2ZDg5ZGFhKSwKLSAgICAgICAgIFRPQk4oMHgzNjJkMDFlMSwg
MHhjYjY0ZmEwOSksIFRPQk4oMHg2YTMwOWI0ZSwgMHgzZTljNGRkZCksCi0gICAgICAgICBUT0JO
KDB4ZmE5NzlmYjcsIDB4YWJlYTQ5YjEpLCBUT0JOKDB4YjRiMWQyN2QsIDB4MTBlMmM2YzUpLAot
ICAgICAgICAgVE9CTigweGJkNjFjMmM0LCAweDIzYWZkZTdhKSwgVE9CTigweGViNjYxNGY4LCAw
eDk3ODZkMzU4KSwKLSAgICAgICAgIFRPQk4oMHg0YTVkODE2YiwgMHg3ZjZmNzQ1OSksIFRPQk4o
MHhlNDMxYTQ0ZiwgMHgwOTM2MGU3YiksCi0gICAgICAgICBUT0JOKDB4OGMyN2EwMzIsIDB4YzMw
OTkxNGMpLCBUT0JOKDB4Y2VhNWQ2OGEsIDB4Y2FlZGUzZDgpLAotICAgICAgICAgVE9CTigweDM2
NjhmNjY1LCAweDNhMGEzZjk1KSwgVE9CTigweDg5MzY5NDE2LCAweDdjZWJhMjdiKSwKLSAgICAg
ICAgIFRPQk4oMHg4OTk4MWZhZCwgMHhlNDcyOGZlOSksIFRPQk4oMHg3MTAyYzhhMCwgMHg4YTA5
MzU2MiksCi0gICAgICAgICBUT0JOKDB4YmI4MDMxMGUsIDB4MjM1ZDIxYzgpLCBUT0JOKDB4NTA1
ZTU1ZDEsIDB4YmVmYjdmN2IpLAotICAgICAgICAgVE9CTigweGEwYTkwODExLCAweDEyOTU4YTY3
KSwgVE9CTigweGQ2N2UxMDZhLCAweDRkODUxZmVmKSwKLSAgICAgICAgIFRPQk4oMHhiODQwMTFh
OSwgMHg0MzFkZDgwZSksIFRPQk4oMHhlYjdjN2NjYSwgMHg3MzMwNmNkOSksCi0gICAgICAgICBU
T0JOKDB4MjBmYWRkMjksIDB4ZDFiM2I3MzApLCBUT0JOKDB4ODM4NThiNWIsIDB4ZmUzN2IzZDMp
LAotICAgICAgICAgVE9CTigweGJmNGNkMTkzLCAweGI2MjUxZDVjKSwgVE9CTigweDFjY2ExZmQz
LCAweDEzNTJkOTUyKSwKLSAgICAgICAgIFRPQk4oMHhjNjYxNTdhNCwgMHg5MGZiYzA1MSksIFRP
Qk4oMHg3OTkwYTYzOCwgMHg4OWI5ODYzNil9LAotICAgICAgICB7VE9CTigweGU1YWE2OTJhLCAw
eDg3ZGVjMGUxKSwgVE9CTigweDAxMGRlZDhkLCAweGY3YjM5ZDAwKSwKLSAgICAgICAgIFRPQk4o
MHg3YjFiODBjOCwgMHg1NGNmYTBiNSksIFRPQk4oMHg2NmJlYjg3NiwgMHhhMGY4ZWEyOCksCi0g
ICAgICAgICBUT0JOKDB4NTBkN2Y1MzEsIDB4MzQ3NmNkMGUpLCBUT0JOKDB4YTYzZDBlNjUsIDB4
YjA4ZDM5NDkpLAotICAgICAgICAgVE9CTigweDFhMDllZWE5LCAweDUzNDc5ZmM2KSwgVE9CTigw
eDgyYWU5ODkxLCAweGY0OTllNzQyKSwKLSAgICAgICAgIFRPQk4oMHhhYjU4YjkxMCwgMHg1Y2E3
ZDg2NiksIFRPQk4oMHg1ODI5NjdlMiwgMHgzYWRiM2IzNCksCi0gICAgICAgICBUT0JOKDB4ODlh
ZTQ0NDcsIDB4Y2NlYWMwYmMpLCBUT0JOKDB4OTE5YzY2N2MsIDB4N2JmNTZhZjUpLAotICAgICAg
ICAgVE9CTigweDlhZWMxN2IxLCAweDYwZjVkY2Q3KSwgVE9CTigweGVjNjk3YjlmLCAweGRkY2Fh
ZGJjKSwKLSAgICAgICAgIFRPQk4oMHgwYjk4ZjM0MSwgMHg0NjM0NjdmNSksIFRPQk4oMHhiMTg3
ZjFmNywgMHhhOTY3MTMyZiksCi0gICAgICAgICBUT0JOKDB4OTBmZTdhMWQsIDB4MjE0YWViMTgp
LCBUT0JOKDB4MTUwNmFmM2MsIDB4NzQxNDMyZjcpLAotICAgICAgICAgVE9CTigweGJiNTU2NWY5
LCAweGU1OTFhMGM0KSwgVE9CTigweDEwZDQxYTc3LCAweGI0NGYxYmMzKSwKLSAgICAgICAgIFRP
Qk4oMHhhMDlkNjVlNCwgMHhhODRiZGU5NiksIFRPQk4oMHg0MmYwNjBkOCwgMHhmMjBhNmExYyks
Ci0gICAgICAgICBUT0JOKDB4NjUyYTNiZmQsIDB4ZjI3ZjljZTcpLCBUT0JOKDB4YjZiZGI2NWMs
IDB4M2IzZDczOWYpLAotICAgICAgICAgVE9CTigweGViNWRkY2I2LCAweGVjN2ZhZTlmKSwgVE9C
TigweDk5NWYyNzE0LCAweGVmYjY2ZTVhKSwKLSAgICAgICAgIFRPQk4oMHhkZWU5NWQ4ZSwgMHg2
OTQ0NWQ1MiksIFRPQk4oMHgxYjZjMmQ0NiwgMHgwOWUyNzYyMCksCi0gICAgICAgICBUT0JOKDB4
MzI2MjFjMzEsIDB4ODEyOWQ3MTYpLCBUT0JOKDB4YjAzOTA5ZjEsIDB4MDk1OGMxYWEpLAotICAg
ICAgICAgVE9CTigweDhjNDY4ZWY5LCAweDFhZjRhZjYzKSwgVE9CTigweDE2MmM0MjlmLCAweGZi
YTVjZGY2KSwKLSAgICAgICAgIFRPQk4oMHgyZjY4MjM0MywgMHg3NTNiOTM3MSksIFRPQk4oMHgy
OWNhYjQ1YSwgMHg1ZjFmOWNkNyksCi0gICAgICAgICBUT0JOKDB4NTcxNjIzYWIsIDB4YjI0NWRi
OTYpLCBUT0JOKDB4YzUwN2RiMDksIDB4M2ZkNzk5OTkpLAotICAgICAgICAgVE9CTigweDRlMmVm
NjUyLCAweGFmMDM2YzMyKSwgVE9CTigweDg2ZjBjYzc4LCAweDA1MDE4ZTVjKSwKLSAgICAgICAg
IFRPQk4oMHhjMTBhNzNkNCwgMHhhYjhiZTM1MCksIFRPQk4oMHg2NTE5YjM5NywgMHg3ZTgyNjMy
NyksCi0gICAgICAgICBUT0JOKDB4ZThjYjVlZWYsIDB4OWMwNTNkZjcpLCBUT0JOKDB4OGRlMjVi
MzcsIDB4YjMwMGVhNmYpLAotICAgICAgICAgVE9CTigweGRiMDNmYTkyLCAweGM4NDljZmZiKSwg
VE9CTigweDI0MmU0M2E3LCAweGU4NDE2OWJiKSwKLSAgICAgICAgIFRPQk4oMHhlNGZhNTFmNCwg
MHhkZDZmOTU4ZSksIFRPQk4oMHg2OTI1YTc3ZiwgMHhmNDQ0NWE4ZCksCi0gICAgICAgICBUT0JO
KDB4ZTZlNzJhNTAsIDB4ZTkwZDg5NDkpLCBUT0JOKDB4YzY2NjQ4ZTMsIDB4MmIxZjYzOTApLAot
ICAgICAgICAgVE9CTigweGIyYWIxOTU3LCAweDE3M2U0NjBjKSwgVE9CTigweDFiYmJjZTc1LCAw
eDMwNzA0NTkwKSwKLSAgICAgICAgIFRPQk4oMHhjMGE5MGRiZCwgMHhkYjFjNzE2MiksIFRPQk4o
MHg1MDVlMzk5ZSwgMHgxNWNkZDY1ZCksCi0gICAgICAgICBUT0JOKDB4Njg0MzRkY2IsIDB4NTc3
OTdhYjcpLCBUT0JOKDB4NjBhZDM1YmEsIDB4NmEyY2E4ZTgpLAotICAgICAgICAgVE9CTigweDRi
ZmRiMWUwLCAweGRlMzMzNmMxKSwgVE9CTigweGJiZWY5OWViLCAweGQ4YjM5MDE1KSwKLSAgICAg
ICAgIFRPQk4oMHg2YzNiOTZmMywgMHgxNzExZWJlYyksIFRPQk4oMHgyZGE0MGYxZiwgMHhjZTk4
ZmRjNCksCi0gICAgICAgICBUT0JOKDB4Yjk5Nzc0ZDMsIDB4NTdiNDQxMWYpLCBUT0JOKDB4ODdj
OGJkZjQsIDB4MTViNjViYjYpLAotICAgICAgICAgVE9CTigweGRhM2E4OWUzLCAweGMyZWVmMTJk
KSwgVE9CTigweGRlOTViYjliLCAweDNjNzQ3MWYzKSwKLSAgICAgICAgIFRPQk4oMHg2MDBmMjI1
YiwgMHhkODEyYzU5NCksIFRPQk4oMHg1NDkwN2M1ZCwgMHgyYjc1YTU2YiksCi0gICAgICAgICBU
T0JOKDB4YTkzY2M1ZjAsIDB4OGRiNjBlMzUpLCBUT0JOKDB4NzQzZTNjZDYsIDB4ZmE4MzMzMTkp
LAotICAgICAgICAgVE9CTigweDdkYWQ1YzQxLCAweGY4MTY4M2M5KSwgVE9CTigweDcwYzFlN2Q5
LCAweDljMzQxMDdlKSwKLSAgICAgICAgIFRPQk4oMHgwZWRjNGEzOSwgMHhhNmJlMDkwNyksIFRP
Qk4oMHgzNmQ0NzAzNSwgMHg4NmQwYjdkMyksCi0gICAgICAgICBUT0JOKDB4OGM3NmRhMDMsIDB4
MjcyYmZhNjApLCBUT0JOKDB4MGI0YTA3ZWEsIDB4MGYwOGE0MTQpLAotICAgICAgICAgVE9CTigw
eDY5OWU0ZDI5LCAweDQ1YzFkZDUzKSwgVE9CTigweGNhZGM1ODk4LCAweDIzMWRlYmI1KSwKLSAg
ICAgICAgIFRPQk4oMHhkZjQ5ZmNjNywgMHhhNzdmMDBlMCksIFRPQk4oMHg5MzA1N2JiZiwgMHhh
NzNlNWEwZSksCi0gICAgICAgICBUT0JOKDB4MmY4YjdlY2QsIDB4MDI3YTRjZDEpLCBUT0JOKDB4
MTE0NzM0YjMsIDB4YzYxNDAxMWEpLAotICAgICAgICAgVE9CTigweGU3YTAxZGI3LCAweDY3Njc3
YzY4KSwgVE9CTigweDg5ZDliZTVlLCAweDdlMjczZjRmKSwKLSAgICAgICAgIFRPQk4oMHhkMjI1
Y2IyZSwgMHgwODk4MDhlZiksIFRPQk4oMHhmMWY3YTI3ZCwgMHhkNTllNDEwNyksCi0gICAgICAg
ICBUT0JOKDB4NTNhZmM3NjEsIDB4ODIxMWI5YzkpLCBUT0JOKDB4MDM2MWJjNjcsIDB4ZTY4MTkx
NTkpLAotICAgICAgICAgVE9CTigweDJhODY1ZDBiLCAweDdmMDcxNDI2KSwgVE9CTigweDZhM2Mx
ODEwLCAweGU3MDcyNTY3KSwKLSAgICAgICAgIFRPQk4oMHgzZTNiY2ExZSwgMHgwZDZiY2FiZCks
IFRPQk4oMHhhMWIwMmJjMSwgMHg0MDg1OTFiYyksCi0gICAgICAgICBUT0JOKDB4ZTBkZWVlNTks
IDB4MzFmYmEyMzkpLCBUT0JOKDB4ZjQ3NDI0ZDMsIDB4OThiZDkxZDEpLAotICAgICAgICAgVE9C
TigweDBmODg4NmY0LCAweDA3MWEzYzFkKSwgVE9CTigweDNmN2Q0MWU4LCAweGE4MTkyMzNiKSwK
LSAgICAgICAgIFRPQk4oMHg3MDg2MjNjMiwgMHhjZjZlYjk5OCksIFRPQk4oMHg4NmJiNDlhZiwg
MHg2MDlhMjg3ZiksCi0gICAgICAgICBUT0JOKDB4OTQyYmIyNDksIDB4NjNjOTA3NjIpLCBUT0JO
KDB4MGVmNmVlYTUsIDB4NTVhOTY1NGIpLAotICAgICAgICAgVE9CTigweDVmNmQyZDcyLCAweDM2
ZjVkZWZlKSwgVE9CTigweGZhOTkyMmRjLCAweDU2Zjk5MTc2KSwKLSAgICAgICAgIFRPQk4oMHg2
YzhjNWVjZSwgMHhmNzhjZTBjNyksIFRPQk4oMHg3YjQ0NTg5ZCwgMHhiZTA5YjU1ZSksCi0gICAg
ICAgICBUT0JOKDB4ZTExYjNiY2EsIDB4OWVhODM3NzApLCBUT0JOKDB4ZDdmYTJjN2YsIDB4MmFi
NzE1NDcpLAotICAgICAgICAgVE9CTigweDJhM2RkNmZhLCAweDJhMWRkY2MwKSwgVE9CTigweDA5
YWNiNDMwLCAweDVhN2I3NzA3KSwKLSAgICAgICAgIFRPQk4oMHg0YWRkNGEyZSwgMHg2NDlkNGU1
NyksIFRPQk4oMHhjZDUzYTJiMCwgMHgxOTE3NTI2ZSksCi0gICAgICAgICBUT0JOKDB4YzUyNjIz
MzAsIDB4MjBiNDRhYzQpLCBUT0JOKDB4NDAyODc0NmEsIDB4YmFhMmMzMWQpLAotICAgICAgICAg
VE9CTigweDUxMzE4MzkwLCAweDY0MjkxZDRjKSwgVE9CTigweGJmNDhmMTUxLCAweGVlNWFkOTA5
KSwKLSAgICAgICAgIFRPQk4oMHhjY2U1N2Y1OSwgMHg3YjE4NTY4MSksIFRPQk4oMHg3YzNhYzFi
MCwgMHg0ODU0ZDQ0MiksCi0gICAgICAgICBUT0JOKDB4NjU1ODdkYzMsIDB4YzA5M2MxNzEpLCBU
T0JOKDB4YWU3YWNiMjQsIDB4MjRmNDJiNjUpLAotICAgICAgICAgVE9CTigweDVhMzM4YWRiLCAw
eDk1NTk5NmNiKSwgVE9CTigweGM4ZTY1Njc1LCAweDYwNTFmOTFiKSwKLSAgICAgICAgIFRPQk4o
MHg2NjcxMWZiYSwgMHgyOGI4ZDBiMSksIFRPQk4oMHgxNWQ3NDEzNywgMHhiNmMxMGE5MCksCi0g
ICAgICAgICBUT0JOKDB4NzBjZGQ3ZWIsIDB4M2EyMzJhODApLCBUT0JOKDB4YzllMmYwN2YsIDB4
NjE5MWVkMjQpLAotICAgICAgICAgVE9CTigweGE4MGQxZGI2LCAweGY3OTU4OGMwKSwgVE9CTigw
eGZhNTJmYzY5LCAweGI1NTc2OGNjKSwKLSAgICAgICAgIFRPQk4oMHgwYjRkZjFhZSwgMHg3ZjU0
NDM4YSksIFRPQk4oMHgwY2FkZDFhNywgMHhmOWI0NmE0ZiksCi0gICAgICAgICBUT0JOKDB4YjQw
ZWE2YjMsIDB4MTgwM2RkNmYpLCBUT0JOKDB4NDg4ZTRmYTUsIDB4NTVlYWFlMzUpLAotICAgICAg
ICAgVE9CTigweDlmMDQ3ZDU1LCAweDM4MmU0ZTE2KSwgVE9CTigweGM5YjViN2UwLCAweDJmNmUw
Yzk4KSwKLSAgICAgICAgIFRPQk4oMHg2YjFiZDJkMywgMHg5NTc2MjY0OSksIFRPQk4oMHhhOTYw
NGVlNywgMHhjN2FlYTNmNiksCi0gICAgICAgICBUT0JOKDB4MzY0NmZmMjcsIDB4NmRjNmY4OTYp
LCBUT0JOKDB4OWJmMGU3ZjUsIDB4Mjg2MGJhZDEpLAotICAgICAgICAgVE9CTigweDJkOTJjODIx
LCAweDdjYjQ0YjkyKSwgVE9CTigweGEyZjVjZTYzLCAweGFlYTljMTgyKSwKLSAgICAgICAgIFRP
Qk4oMHhkMGEyYWZiMSwgMHg5MTU0YTVmZCksIFRPQk4oMHg0ODJlNDc0YywgMHg5NTgwMWRhNiks
Ci0gICAgICAgICBUT0JOKDB4YzE5OTcyZDAsIDB4YjYxMWMyNGIpLCBUT0JOKDB4MWQ0NjhlNjUs
IDB4NjBhOGYzNTEpLAotICAgICAgICAgVE9CTigweGViNzU4MDY5LCAweDdiY2Y2NDIxKSwgVE9C
TigweGVjOWRkMGVlLCAweDg4ZmJjNDkxKSwKLSAgICAgICAgIFRPQk4oMHg1YjU5ZDJiZiwgMHg5
NTZjMmUzMiksIFRPQk4oMHg3M2RjNjg2NCwgMHhkY2RkZjk0ZSksCi0gICAgICAgICBUT0JOKDB4
ZmQ1ZTIzMjEsIDB4YmNlZTc2NjUpLCBUT0JOKDB4YTdiNGY4ZWYsIDB4NWU5YTA2YzQpLAotICAg
ICAgICAgVE9CTigweGZiYTkxOGRkLCAweDcyODBmODU1KSwgVE9CTigweGJiYWFjMjYwLCAweDhi
YWVjNjg4KSwKLSAgICAgICAgIFRPQk4oMHhhM2IzZjAwZiwgMHgzMzQwMGY0MiksIFRPQk4oMHgz
ZDJkYmEyOSwgMHg2NmYyZTZlNCksCi0gICAgICAgICBUT0JOKDB4YjZmNzFhOTQsIDB4OTg1MDkz
NzUpLCBUT0JOKDB4OGYzMzAzMWYsIDB4Y2VhNDIzY2MpLAotICAgICAgICAgVE9CTigweDAwOWI4
ZGQwLCAweDQ4MDdlNmZiKSwgVE9CTigweDUxNjNjZmU1LCAweDVjZGI5NTRjKSwKLSAgICAgICAg
IFRPQk4oMHgwM2NjOGYxNywgMHhjZjQxYzZlOCksIFRPQk4oMHhmMWYwM2MyYSwgMHgwMzdiOTI1
YyksCi0gICAgICAgICBUT0JOKDB4YzM5YzE5Y2MsIDB4NjZkMjQyN2MpLCBUT0JOKDB4ODIzZDI0
YmEsIDB4N2I2YzE4ZTQpLAotICAgICAgICAgVE9CTigweDMyZWY5MDEzLCAweDkwMWYwYjRmKSwg
VE9CTigweDY4NDM2MGYxLCAweGY4OTQxYzJlKSwKLSAgICAgICAgIFRPQk4oMHgwZWJhZmY1Miwg
MHgyYzI4MDkyZSksIFRPQk4oMHg3ODkxZTRlMywgMHgyNTZjOTMyZiksCi0gICAgICAgICBUT0JO
KDB4NTEyNjQzMTksIDB4YWM0NDVlM2QpLCBUT0JOKDB4NTUzNDMyZTcsIDB4OGVhNzQzODEpLAot
ICAgICAgICAgVE9CTigweGU2ZWVhYTY5LCAweDY3ZTljNTBhKSwgVE9CTigweDI3Y2VkMjg0LCAw
eDYyZTYyOGM3KSwKLSAgICAgICAgIFRPQk4oMHgzZjk2ZDM3NSwgMHg3YTRhZmE1NyksIFRPQk4o
MHhkZTBhMTRjMywgMHhlNDg0YzE1MCksCi0gICAgICAgICBUT0JOKDB4MzY0YTI0ZWIsIDB4Mzhi
ZDk5MjMpLCBUT0JOKDB4MWRmMThkYTAsIDB4ZTUxNzc0MjIpLAotICAgICAgICAgVE9CTigweDE3
NGU4ZjgyLCAweGQ4ZDM4YTliKSwgVE9CTigweDJlOTdjNjAwLCAweGU3ZGUxMzkxKSwKLSAgICAg
ICAgIFRPQk4oMHhjNTcwOTg1MCwgMHhhMWMxNzVkZCksIFRPQk4oMHg5NjkwNDFhMCwgMHgzMmFl
NTAzNSksCi0gICAgICAgICBUT0JOKDB4Y2JmZDUzM2IsIDB4NzZhMjA4NmIpLCBUT0JOKDB4ZDZi
YmE3MWIsIDB4ZDdjMmU4ZmUpLAotICAgICAgICAgVE9CTigweGIyZDU4ZWU2LCAweDA5OWRmYjY3
KSwgVE9CTigweDNhOGIzNDJkLCAweDA2NGE4NWQ5KSwKLSAgICAgICAgIFRPQk4oMHgzYmMwNzY0
OSwgMHg1MjJmOWJlMyksIFRPQk4oMHg2OTBjMDc1YiwgMHhkZjFmNDlhOCksCi0gICAgICAgICBU
T0JOKDB4ODBlMWFlZTgsIDB4Mzg1NGVjNDIpLCBUT0JOKDB4MmE3ZGJmNDQsIDB4MTc2ODlkYzcp
LAotICAgICAgICAgVE9CTigweGMwMDRmYzBlLCAweDNmYWY0MDc4KSwgVE9CTigweGIyZjAyZTll
LCAweGRmMTE4NjJjKSwKLSAgICAgICAgIFRPQk4oMHhmMTBhNWUwZiwgMHhhMGExYjdiMyksIFRP
Qk4oMHgzMGFjYTYyMywgMHg4OTM2ZWM4MCksCi0gICAgICAgICBUT0JOKDB4ZjgzY2JmMDUsIDB4
MDJmNDBkOWEpLCBUT0JOKDB4NDY4MWM0NjgsIDB4MmMzMThhNGQpLAotICAgICAgICAgVE9CTigw
eDk4NTc1NjE4LCAweDBlOWMyNjc0KSwgVE9CTigweGJlNzlkMDQ2LCAweDE4NDcwOTJlKSwKLSAg
ICAgICAgIFRPQk4oMHhhZjFlNDgwYSwgMHg3OGJkMDFlMCksIFRPQk4oMHg2ZGQzNTllNCwgMHg3
MmE1MWRiOSksCi0gICAgICAgICBUT0JOKDB4NjJjZTM4MjEsIDB4ZTNhZmJhYjYpLCBUT0JOKDB4
YzVjZWU1YjYsIDB4MTc3MzMxOTkpLAotICAgICAgICAgVE9CTigweGUwOGIzMGQ0LCAweDZmZmQ5
ZmJiKSwgVE9CTigweDZlNWJjNjk5LCAweDM2YzYxMGI3KSwKLSAgICAgICAgIFRPQk4oMHhmMzQz
Y2ZmMiwgMHg5Y2UyNjJjZiksIFRPQk4oMHhjYTJlNGUzNSwgMHg2OGI5MTRjMSksCi0gICAgICAg
ICBUT0JOKDB4MDExZDY0YzAsIDB4MTZkZTM2YzUpLCBUT0JOKDB4ZTBiMTBmZGQsIDB4NDJlMmI4
MjkpLAotICAgICAgICAgVE9CTigweDc4OTQyOTgxLCAweDY2ODVhYWY4KSwgVE9CTigweGU3NTEx
NzA4LCAweDIzMGVkZTk3KSwKLSAgICAgICAgIFRPQk4oMHg2NzFlZDhmYywgMHgzYjkyMmJmOCks
IFRPQk4oMHhlNGQ4YzBhMCwgMHg0YzI5YjEzMyksCi0gICAgICAgICBUT0JOKDB4ODdlYjEyMzks
IDB4M2I2ZTk5YzQpLCBUT0JOKDB4YWZmMzk3NGMsIDB4ODc5M2JlYmEpLAotICAgICAgICAgVE9C
TigweDAzNzQ5NDA1LCAweDJjMThkZjliKSwgVE9CTigweGM1YzNhMjkzLCAweDkxMDA3MTM5KSwK
LSAgICAgICAgIFRPQk4oMHg2YTc3MjM0ZiwgMHhlMzdhMGI5NSksIFRPQk4oMHgwMmMyOWEyMSwg
MHhiNjYxYzk2YiksCi0gICAgICAgICBUT0JOKDB4YzNhYWYxZDYsIDB4MTQxZWNmNjEpLCBUT0JO
KDB4OTE5NTUwOWUsIDB4M2JiMjJmNTMpLAotICAgICAgICAgVE9CTigweDI5NTk3NDA0LCAweDIy
ZDUxMzU3KSwgVE9CTigweDFiMDgzODIyLCAweDUzN2JlZDYwKSwKLSAgICAgICAgIFRPQk4oMHhj
ZDdkNmUzNSwgMHhlMDcyODlmMCksIFRPQk4oMHgxZjk0YzQ4YywgMHg2ZGQ4NmVmZiksCi0gICAg
ICAgICBUT0JOKDB4YzhiYjFmODIsIDB4ZWIwZjljZmEpLCBUT0JOKDB4OWVlMGI3ZTYsIDB4MWIy
ZWI5N2QpLAotICAgICAgICAgVE9CTigweDVhNTJmZTJlLCAweDM0ZDc0ZTMxKSwgVE9CTigweGEz
NTJjMzEwLCAweDNiZjc5YWI2KSwKLSAgICAgICAgIFRPQk4oMHg5N2ZmNmM1YSwgMHhhYmZlZWI4
ZiksIFRPQk4oMHhiZmJlOGZlZiwgMHhmNWM5NzMwNSksCi0gICAgICAgICBUT0JOKDB4ZDYwODFj
ZTYsIDB4YTc5MDQ2MDgpLCBUT0JOKDB4MWY4MTJmM2EsIDB4YzRmY2EyNDkpLAotICAgICAgICAg
VE9CTigweDliMjRiYzlhLCAweGI5ZTVlMjAwKSwgVE9CTigweDkxMDIyYzY3LCAweDM4MDEyZWU4
KSwKLSAgICAgICAgIFRPQk4oMHhlODNkOWM1ZCwgMHgzMGE3MTNhMSksIFRPQk4oMHg0ODc2ZTNm
MCwgMHg4NGVmMGY5MyksCi0gICAgICAgICBUT0JOKDB4Yzk3NzcwMjksIDB4YzFmYmY5MjgpLCBU
T0JOKDB4ZWY3YTZiYjMsIDB4YmNlN2QyYTQpLAotICAgICAgICAgVE9CTigweGI4MDY3MjI4LCAw
eGRmYTJhNjU5KSwgVE9CTigweGQ1Y2QzMzk4LCAweGQ4NzdhNDhmKSwKLSAgICAgICAgIFRPQk4o
MHhiZWE0ZmQ4ZiwgMHgwMjVkMGYzZiksIFRPQk4oMHhkNjdkMmUzNSwgMHgyZWFlN2MyYiksCi0g
ICAgICAgICBUT0JOKDB4MTg0ZGU3ZDcsIDB4Y2M1ZjQzOTQpLCBUT0JOKDB4YjU1NTFiNWMsIDB4
NDUzNmUxNDIpLAotICAgICAgICAgVE9CTigweDJlODliMjEyLCAweGQzNGFhNjBhKSwgVE9CTigw
eDE0YTk2ZmVhLCAweGY1MDA1MWQ1KSwKLSAgICAgICAgIFRPQk4oMHg0ZTIxZWY3NCwgMHgwZDEy
YmIwYiksIFRPQk4oMHhjNTIyZjAyMCwgMHg2MGI5Njc3ZSksCi0gICAgICAgICBUT0JOKDB4OGIx
MmU0NjcsIDB4MmRmNzczMWQpLCBUT0JOKDB4MzlmODAzODIsIDB4N2IzMjZkMzEpLAotICAgICAg
ICAgVE9CTigweGRmYjg2MzBjLCAweDM5MDI0YTk0KSwgVE9CTigweGFhY2I5NmE4LCAweDk3MzE5
NDUyKSwKLSAgICAgICAgIFRPQk4oMHhkNjhhMzk2MSwgMHhlZGEzODY3YyksIFRPQk4oMHgwYzU4
ZTJiMCwgMHg3N2M0ZmZjYSksCi0gICAgICAgICBUT0JOKDB4M2Q1NDVkNjMsIDB4NGRhOTE5ZmEp
LCBUT0JOKDB4ZWY3OWI2OWEsIDB4ZjE1ZTIyODkpLAotICAgICAgICAgVE9CTigweDU0YmMzZDNk
LCAweDgwOGJhYjEwKSwgVE9CTigweGM4YWIzMDA3LCAweDQ1ZjgyYzM3KSwKLSAgICAgICAgIFRP
Qk4oMHhjMTI3MzhiNiwgMHg3YzRhNjU4YSksIFRPQk4oMHhiM2M0NzYzOSwgMHg0MGU3MjE4Miks
Ci0gICAgICAgICBUT0JOKDB4M2I3N2JlNDYsIDB4ODc5OGU0NGYpLCBUT0JOKDB4ZGMwNDdkZjIs
IDB4MTdhN2Y4NWYpLAotICAgICAgICAgVE9CTigweDI0MzlkNGM1LCAweDVlNTlkOTJkKSwgVE9C
TigweGNlZGNhNDc1LCAweGU4ZTY0ZDhkKSwKLSAgICAgICAgIFRPQk4oMHhhNzI0Y2QwZCwgMHg4
N2NhOWIxNiksIFRPQk4oMHgzNWU0ZmQ1OSwgMHhhNTU0MGRmZSksCi0gICAgICAgICBUT0JOKDB4
ZjhjMWZmMTgsIDB4ZTRiY2Y2YjEpLCBUT0JOKDB4ODU2ZDYyODUsIDB4Mjk1MDE4ZmEpLAotICAg
ICAgICAgVE9CTigweDQzM2Y2NjVjLCAweDMyNjNjOTQ5KSwgVE9CTigweGE2YTc2ZGQ2LCAweGEx
ZjIxNDA5KSwKLSAgICAgICAgIFRPQk4oMHgxN2QzMjMzNCwgMHhjYzdiNGY3OSksIFRPQk4oMHhh
MWQwMzEyMiwgMHgwNjcyMGU0YSksCi0gICAgICAgICBUT0JOKDB4YWRiNjY2MWQsIDB4ODFkOWJl
ZDUpLCBUT0JOKDB4ZjBkNmZiMDIsIDB4MTFkYjE1ZDEpLAotICAgICAgICAgVE9CTigweDdmZDEx
YWQ1LCAweDFmYjc0N2QyKSwgVE9CTigweGFiNTBmOTU5LCAweDMwMzM3NjJiKSwKLSAgICAgICAg
IFRPQk4oMHgyYTdlNzExYiwgMHhmYmVmYWY1YSksIFRPQk4oMHhjNzM5MzI3OCwgMHgzZmVmMmJi
ZiksCi0gICAgICAgICBUT0JOKDB4ZTI5ZmEyNDQsIDB4MGRmNmY5YmUpLCBUT0JOKDB4OTA5Mjc1
N2IsIDB4NzFlZmQyMTUpLAotICAgICAgICAgVE9CTigweGVlNjBlMzExLCAweDRmM2Q2ZmQ5KSwg
VE9CTigweDMzODU0MmQ0LCAweDBhY2ZiNzhiKSwKLSAgICAgICAgIFRPQk4oMHg0NGEyM2YwOCwg
MHgzODk2MWEwZiksIFRPQk4oMHgxNDI2ZWFkZSwgMHg5ODY5ODdjYSksCi0gICAgICAgICBUT0JO
KDB4MzZlNmVlMmUsIDB4NGE4NjNjYzYpLCBUT0JOKDB4NDgwNTk0MjAsIDB4NjI4YjhiNzkpLAot
ICAgICAgICAgVE9CTigweDMwMzAzYWQ4LCAweDczOTZlMWRlKSwgVE9CTigweDVjOGJkYzQ4LCAw
eDM4YzVhYWQxKSwKLSAgICAgICAgIFRPQk4oMHgzZTQwZTExZiwgMHg1YzhmNTA2NiksIFRPQk4o
MHhhYmQ2ZTc2OCwgMHg4ZDI0NmJiZCksCi0gICAgICAgICBUT0JOKDB4NjhhYTQwYmIsIDB4MjMz
MzBhMDEpLCBUT0JOKDB4ZDIzZjVlZTQsIDB4YzM0ZWFmYTApLAotICAgICAgICAgVE9CTigweDNi
YmVlMzE1LCAweDVkZTAyYzIxKSwgVE9CTigweDE4ZGQ0Mzk3LCAweGQxZDhkZDA2KSwKLSAgICAg
ICAgIFRPQk4oMHgzYmExOTM5YSwgMHgxMjJkN2I0NCksIFRPQk4oMHhlNmQzYjQwYSwgMHhhMzM4
NzBkNiksCi0gICAgICAgICBUT0JOKDB4OGU2MjBmNzAsIDB4MWM0ZmUzZjgpLCBUT0JOKDB4ZjZi
YmExYTUsIDB4ZDNhNTBjYmYpLAotICAgICAgICAgVE9CTigweDRhNzhiZGU1LCAweGNmYzBhZWUw
KSwgVE9CTigweDg0N2VkYzQ2LCAweGMwOGM1MGJkKSwKLSAgICAgICAgIFRPQk4oMHhiYWEyNDM5
YywgMHhhZDYzYzliMiksIFRPQk4oMHhjZWI0YTcyOCwgMHgxMGZjMmFjYiksCi0gICAgICAgICBU
T0JOKDB4YTQxOWU0MGUsIDB4MjZkYTAzM2QpLCBUT0JOKDB4NmNjMzg4OWQsIDB4MDNlMDI2ODMp
LAotICAgICAgICAgVE9CTigweDFjZDI4NTU5LCAweGZkY2NmNzI1KSwgVE9CTigweDBmZDdlMGYx
LCAweDhkMTNkMjA4KSwKLSAgICAgICAgIFRPQk4oMHgwMWI5NzMzYiwgMHgxZjBkZjlkNCksIFRP
Qk4oMHg4Y2MyYzVmMywgMHhhMmI1ZTRmMyksCi0gICAgICAgICBUT0JOKDB4NDMwNTNiZmEsIDB4
M2EzMDRmZDQpLCBUT0JOKDB4OGU4NzY2NWMsIDB4MGE5ZjFhYTcpLAotICAgICAgICAgVE9CTigw
eDA4N2YyOWVjLCAweGQ3M2RjOTY1KSwgVE9CTigweDE1YWNlNDU1LCAweDNlOTAyM2RiKSwKLSAg
ICAgICAgIFRPQk4oMHgyMzcwZTMwOSwgMHgyYmNlMjhiNCksIFRPQk4oMHhmOTcyMzQ0MiwgMHhi
NmIxZTg0YSksCi0gICAgICAgICBUT0JOKDB4YmVlZTY2MmUsIDB4YjcyZDlmMjYpLCBUT0JOKDB4
YjE5Mzk2ZGUsIDB4ZjBlNDcxMDkpLAotICAgICAgICAgVE9CTigweDg1YjFmYTczLCAweGUxMzI4
OWQwKSwgVE9CTigweDQzNmNmNzdlLCAweDU0ZTU4ZTMyKSwKLSAgICAgICAgIFRPQk4oMHgwZWM4
MzNiMywgMHhlOTkwZWY3NyksIFRPQk4oMHg3MzczZTNlZCwgMHgxYjExZmMyNSksCi0gICAgICAg
ICBUT0JOKDB4YmUwZWRhODcsIDB4MGZjMzMyY2UpLCBUT0JOKDB4Y2VkMDQ5NzAsIDB4OGQ3ZWE4
NTYpLAotICAgICAgICAgVE9CTigweGY4NWZmNzg1LCAweDdlOTc3Y2EwKSwgVE9CTigweGI2NmVl
OGRhLCAweGRmZGQ1ZDJiKSwKLSAgICAgICAgIFRPQk4oMHhmNWUzNzk1MCwgMHg5MDVhZjQ2MSks
IFRPQk4oMHg1ODdiOTA5MCwgMHg5NjZkNDg3YyksCi0gICAgICAgICBUT0JOKDB4NmExOThhMWIs
IDB4MzJiYTAxMjcpLCBUT0JOKDB4YTc3MjBlMDcsIDB4MTQxNjE1YWMpLAotICAgICAgICAgVE9C
TigweGEyM2YzNDk5LCAweDk5NmVmMmYyKSwgVE9CTigweGVmNWY2NGI0LCAweDQ3MGJjYjNkKSwK
LSAgICAgICAgIFRPQk4oMHhhNTI2YTk2MiwgMHg5MmI4YzU1OSksIFRPQk4oMHgwYzE0YWFjMCwg
MHg2OTc0MGEwZiksCi0gICAgICAgICBUT0JOKDB4MGQ0MWE5ZTMsIDB4YTZiZGMwYTUpLCBUT0JO
KDB4OTdkNTIxMDYsIDB4OWM0OGFlZjQpLAotICAgICAgICAgVE9CTigweGNmMTZiZDMwLCAweDNl
N2MyNTNiKSwgVE9CTigweGNjODM0YjFhLCAweDQ3ZmRlZGMxKSwKLSAgICAgICAgIFRPQk4oMHg3
MzYyYzZlNSwgMHgzNzNhYWIyZSksIFRPQk4oMHgyNjRlZDg1ZSwgMHhjNWY1OTBmZiksCi0gICAg
ICAgICBUT0JOKDB4N2E0NmQ5YzAsIDB4NjZkNDE4NzApLCBUT0JOKDB4YTUwYzIwYjEsIDB4NDc4
N2JhMDkpLAotICAgICAgICAgVE9CTigweDE4NWU3ZTUxLCAweGUzZDQ0NjM1KSwgVE9CTigweGIz
YjNlMDgwLCAweDMxZTJkOGRjKSwKLSAgICAgICAgIFRPQk4oMHhiZWQxZTU1OCwgMHhhMTc5ZTlk
OSksIFRPQk4oMHgyZGFhM2Y3OSwgMHg3NGE3Njc4MSksCi0gICAgICAgICBUT0JOKDB4NDM3MmJh
ZjIsIDB4M2E0MDg2NGYpLCBUT0JOKDB4NDY5MDBjNTQsIDB4NGZlNzVjYjUpLAotICAgICAgICAg
VE9CTigweGI5NWYxNzFlLCAweGY3Njc2NWQwKSwgVE9CTigweDRhZDcyNmQyLCAweDk1Yzg3NTAy
KSwKLSAgICAgICAgIFRPQk4oMHgyZWM3NjlkYSwgMHg0ZDdjOTliZCksIFRPQk4oMHg1ZTJkZGQx
OSwgMHhjMzZjZGZhOCksCi0gICAgICAgICBUT0JOKDB4YzIyMTE3ZmMsIDB4YTkzZTZkZWEpLCBU
T0JOKDB4ZThhMjU4M2IsIDB4OTM3NzExMjMpLAotICAgICAgICAgVE9CTigweGJlMmY2MDg5LCAw
eGZhMDhhM2EyKSwgVE9CTigweDQ4MDlkNWVkLCAweDhmMGUxMTEyKSwKLSAgICAgICAgIFRPQk4o
MHgzYjQxNGFhMywgMHhkYTdhMDk1ZSksIFRPQk4oMHg5MDQ5YWNmMSwgMHgyNmY1YWFkZCksCi0g
ICAgICAgICBUT0JOKDB4NzhkNDZhNGQsIDB4NmJlOGI4NGEpLCBUT0JOKDB4ZDY2YjE5NjMsIDB4
YjczMmI5YjMpLAotICAgICAgICAgVE9CTigweDVjMmFjMmEwLCAweGRlNmU5NTU1KSwgVE9CTigw
eGNmNTJkMDk4LCAweGI1YmQ4NzcwKSwKLSAgICAgICAgIFRPQk4oMHgxNWExNWZhNiwgMHgwZmQy
ODkyMSksIFRPQk4oMHg1NmNjYjgxZSwgMHg4YjI3NTM2ZCksCi0gICAgICAgICBUT0JOKDB4MGYw
ZDhhYjgsIDB4OWY0Y2NiYjgpLCBUT0JOKDB4ZWQ1ZjQ0ZDIsIDB4ZGIyMjE3MjkpLAotICAgICAg
ICAgVE9CTigweDQzMTQxOTg4LCAweDAwYmVkMTBjKSwgVE9CTigweGM5NDM0OGE0LCAweDFkNzM1
YjhiKSwKLSAgICAgICAgIFRPQk4oMHg3OWYzZTljNCwgMHgyOWVmODQ3OSksIFRPQk4oMHg0YzEz
YTRlMywgMHg2MTRjNjkzZiksCi0gICAgICAgICBUT0JOKDB4MzJjOWFmNTYsIDB4OGUxNDNhMTQp
LCBUT0JOKDB4YmM1MTc3OTksIDB4ZTI5YWM1YzQpLAotICAgICAgICAgVE9CTigweDA1ZTE3OTky
LCAweDI3NzQ4NTZmKSwgVE9CTigweDZlNTJmYjA1LCAweDZjMWJmNTVmKSwKLSAgICAgICAgIFRP
Qk4oMHhhZWRhNDIyNSwgMHhlNGYxOWUxNiksIFRPQk4oMHg3MGY0NzI4YSwgMHhhZjVjY2IyNiks
Ci0gICAgICAgICBUT0JOKDB4NWQyMTE4ZDEsIDB4YjI5NDdmMjIpLCBUT0JOKDB4YzgyN2VhMTYs
IDB4MjgxZDZmYjkpLAotICAgICAgICAgVE9CTigweDg0MTIzMjhkLCAweDhjZjBlYWJkKSwgVE9C
TigweDQ1ZWU5ZmIyLCAweDAzZWY5ZGNmKSwKLSAgICAgICAgIFRPQk4oMHg4ZTcwMDQyMSwgMHhi
YjkzN2Q2MyksIFRPQk4oMHhkZjhmZjJkNSwgMHhjYzRiMzdhNiksCi0gICAgICAgICBUT0JOKDB4
YTRjMGQ1YjIsIDB4NWNlZDdiNjgpLCBUT0JOKDB4NjUzN2MxZWYsIDB4YzczMDhmNTkpLAotICAg
ICAgICAgVE9CTigweDI1Y2U2YTI2LCAweDNiMzdmOGU4KSwgVE9CTigweDE3MGU5YTliLCAweGRl
ZWJjNmNlKSwKLSAgICAgICAgIFRPQk4oMHhkZDAzNzk1MiwgMHg4NzI4ZDcyYyksIFRPQk4oMHg0
NDViMGU1NSwgMHg4NTAxNTRiYyksCi0gICAgICAgICBUT0JOKDB4NGI3ZDBlMDYsIDB4ODNhNzMz
N2IpLCBUT0JOKDB4MWUzNDE2ZDQsIDB4ZmZlY2YyNDkpLAotICAgICAgICAgVE9CTigweDI0ODQw
ZWZmLCAweDY2YTJiNzFmKSwgVE9CTigweGQwZDlhNTBhLCAweGIzN2NjMjZkKSwKLSAgICAgICAg
IFRPQk4oMHhlMjE5ODE1MCwgMHg2ZmUyOGVmNyksIFRPQk4oMHgzY2M1ZWYxNiwgMHgyMzMyNGM3
ZiksCi0gICAgICAgICBUT0JOKDB4MjIwZjM0NTUsIDB4NzY5YjUyNjMpLCBUT0JOKDB4ZTJhZGUy
ZjEsIDB4YTEwYmY0NzUpLAotICAgICAgICAgVE9CTigweDI4Y2QyMGZhLCAweDQ1OGQzNjcxKSwg
VE9CTigweDE1NDk3MjJjLCAweDJkYzQ4NDdiKSwKLSAgICAgICAgIFRPQk4oMHg2ZGQwMWU1NSwg
MHg1OTE5NDFlMyksIFRPQk4oMHgwZTZmYmNlYSwgMHgyNzEyOGNjYiksCi0gICAgICAgICBUT0JO
KDB4YWUxYTFlNmIsIDB4M2JlZjAyNjIpLCBUT0JOKDB4ZmE4YzQ3MmMsIDB4OGY1NGUxMDMpLAot
ICAgICAgICAgVE9CTigweDc1MzljMGE4LCAweDcyYzA1MmVjKSwgVE9CTigweGQ3YjI3MzY5LCAw
eDVhMzQ5MGU5KSwKLSAgICAgICAgIFRPQk4oMHgxNDNmZTFmMSwgMHg3MTY4NDM0OSksIFRPQk4o
MHgzNmI0NzIyZSwgMHgzMmUxOWI5NyksCi0gICAgICAgICBUT0JOKDB4ZGMwNTkyMjcsIDB4OTA5
ODBhZmYpLCBUT0JOKDB4MTc1YzljODgsIDB4OWUxM2Q2NzQpLAotICAgICAgICAgVE9CTigweGE3
ZGU1YjIyLCAweDZlNmJmZGIxKSwgVE9CTigweDVlYTViN2IyLCAweGJlZGI0YjQ2KSwKLSAgICAg
ICAgIFRPQk4oMHhkNTU3MDE5MSwgMHhkMzRhNmU0NCksIFRPQk4oMHhmY2Y2MGQyZSwgMHhhMjRm
ZjdlNiksCi0gICAgICAgICBUT0JOKDB4NjE0YTM5MmQsIDB4Njc3ODE5ZTEpLCBUT0JOKDB4N2Jl
NzRjN2UsIDB4YWE1YTI5ZTgpLAotICAgICAgICAgVE9CTigweGFiNTBmZWNlLCAweDYzYzg1ZjNm
KSwgVE9CTigweGFjYTJlMmE5LCAweDQ2Y2FiMzM3KSwKLSAgICAgICAgIFRPQk4oMHg3ZjcwMDM4
OCwgMHgxMjJhNmZlMyksIFRPQk4oMHhkYjY5ZjcwMywgMHg4ODJhMDRhOCksCi0gICAgICAgICBU
T0JOKDB4OWE3NzkzNWQsIDB4Y2Y3YWVkNTcpLCBUT0JOKDB4ZGYxNjIwN2MsIDB4OGQ5MWM4NmYp
LAotICAgICAgICAgVE9CTigweDJmY2E0OWFiLCAweDYzZWQ5OTk4KSwgVE9CTigweGEzMTI1YzQ0
LCAweGE3N2RkZjk2KSwKLSAgICAgICAgIFRPQk4oMHgwNWRkOGE4NiwgMHgyNDM0NDA3MiksIFRP
Qk4oMHhhMDIzZGRhMiwgMHhmZWMzZmI1NiksCi0gICAgICAgICBUT0JOKDB4NDIxYjQxZmMsIDB4
MGM3NDMwMzIpLCBUT0JOKDB4NGYyMTIwYzEsIDB4NWU0Mzg2MzkpLAotICAgICAgICAgVE9CTigw
eGZiN2NhZTUxLCAweGM4M2MxYjA3KSwgVE9CTigweGIyMzcwY2FhLCAweGNhYzIxNzFhKSwKLSAg
ICAgICAgIFRPQk4oMHgyZWIyZDk2MiwgMHg2Y2M4MjBmYiksIFRPQk4oMHg1OWZlZWU1YywgMHhi
ODVhNDRiZiksCi0gICAgICAgICBUT0JOKDB4OTQ2MjBmY2EsIDB4NWI2NTk4ZjApLCBUT0JOKDB4
NmI5MjJjYWUsIDB4N2UzMTQwNTEpLAotICAgICAgICAgVE9CTigweGZmODc0NWFkLCAweDEwNmJl
ZDRlKSwgVE9CTigweDU0NmU3MWY1LCAweGRmYTFlOWFiKSwKLSAgICAgICAgIFRPQk4oMHg5MzVj
MWU0OCwgMHgxZWMyOTQ4NyksIFRPQk4oMHg5NTA5MjE2YywgMHg0ZDkzNjUzMCksCi0gICAgICAg
ICBUT0JOKDB4YzdjYTMwNjcsIDB4ODVjOWEyZGIpLCBUT0JOKDB4ZDZhZTUxNTIsIDB4NmJlODYw
NmYpLAotICAgICAgICAgVE9CTigweDA5ZGJjYWU2LCAweGUxNGM2NTFkKSwgVE9CTigweGM5NTM2
ZTIzLCAweDliYzMyZjk2KSwKLSAgICAgICAgIFRPQk4oMHhhOTA1MzVhOSwgMHgzNDUyMWIwMyks
IFRPQk4oMHhmMzljNTI2YywgMHg4Nzg3NTZmZiksCi0gICAgICAgICBUT0JOKDB4MzgzMTcyZWMs
IDB4OGFlZGYwM2MpLCBUT0JOKDB4MjBhODA3NWUsIDB4ZWZlMGMwMzQpLAotICAgICAgICAgVE9C
TigweGYyMmY5YzYyLCAweDY0MDI2NDIyKSwgVE9CTigweDhkZDEwNzgwLCAweDI0YjlkMDc2KSwK
LSAgICAgICAgIFRPQk4oMHg5NDRjNzQyYSwgMHgzYmVmMjk1MCksIFRPQk4oMHg1NWI5NTAyZSwg
MHg4OGEyYjAwYiksCi0gICAgICAgICBUT0JOKDB4YTU5ZTE0YjQsIDB4ODZhMDk4MTcpLCBUT0JO
KDB4YTM5ZGQzYWMsIDB4NDdiYjQwNzEpLAotICAgICAgICAgVE9CTigweDU1MTM3ZjY2LCAweDNi
ZTA1OTJmKSwgVE9CTigweDA3ZmNhZmQ0LCAweGM5ZTYzZjViKSwKLSAgICAgICAgIFRPQk4oMHg5
NjM2NTJlZSwgMHgzNDZlYjIyNiksIFRPQk4oMHg3ZGZhYjA4NSwgMHhlYzJmYWNiNyksCi0gICAg
ICAgICBUT0JOKDB4MjczYmYyYjgsIDB4NjkxYWRkMjYpLCBUT0JOKDB4MzBkNzQ1NDAsIDB4ZjJi
NDZjNDQpLAotICAgICAgICAgVE9CTigweDA1ZThlNzNlLCAweGYyYzJkMDY1KSwgVE9CTigweGZm
OWI4YTAwLCAweGQ0MmVlYWM5KSwKLSAgICAgICAgIFRPQk4oMHgyZmNiZDIwNSwgMHg5NzIwOWQy
MiksIFRPQk4oMHhlYjc0MGZmYSwgMHhkZTE0ZWEyYyksCi0gICAgICAgICBUT0JOKDB4YzcxZmY5
MTMsIDB4YThhZWY1MTgpLCBUT0JOKDB4N2JmYzc0YmIsIDB4ZmZmNGNmYTIpLAotICAgICAgICAg
VE9CTigweDE3MTY2ODBjLCAweGI2YjM2MDQ4KSwgVE9CTigweDEyMWIyY2NlLCAweDllZjc5YWYx
KSwKLSAgICAgICAgIFRPQk4oMHhiZmYzYzgzNiwgMHhhMDFlYjNkMyksIFRPQk4oMHg1MGViMWM2
YSwgMHg1Zjc5MDc3YiksCi0gICAgICAgICBUT0JOKDB4YTQ4YzMyZDYsIDB4YTAwNGJiY2YpLCBU
T0JOKDB4NDdhNTkzMTYsIDB4N2Q2NGY2MWQpLAotICAgICAgICAgVE9CTigweDYwNjgxNDdmLCAw
eDkzMTAyMDE2KSwgVE9CTigweDEyYzVmNjU0LCAweDk0ZDEyNTc2KSwKLSAgICAgICAgIFRPQk4o
MHhlZmIwNzFhNywgMHhjOWJjNmI5MSksIFRPQk4oMHg3YzJkYTBjNSwgMHg2ZTIzZWE5NSksCi0g
ICAgICAgICBUT0JOKDB4ZjRmZDQ1YjYsIDB4ZDRhMWRkNWQpLCBUT0JOKDB4M2U3YWQ5YjYsIDB4
OTEyMmIxM2MpLAotICAgICAgICAgVE9CTigweDM0MmNhMTE4LCAweGU2ZjU3YTQ4KSwgVE9CTigw
eDFjMmU5NGE3LCAweDA2ZjgyODhmKSwKLSAgICAgICAgIFRPQk4oMHg5OWU2OGYwNywgMHg1YTk3
ZDIzMSksIFRPQk4oMHg3YzgwZGU5NywgMHg0ZDgzODc1OCksCi0gICAgICAgICBUT0JOKDB4YmNl
MGY1ZDAsIDB4MDU4NzI3MjcpLCBUT0JOKDB4YmU1ZDk1YzIsIDB4MTljNGQwMTYpLAotICAgICAg
ICAgVE9CTigweDkyMWQ1Y2IxLCAweDljMjQ5MmVlKSwgVE9CTigweDQyMTkyZGMxLCAweDQwNGQ2
ZmIzKSwKLSAgICAgICAgIFRPQk4oMHg0Yzg0ZGNkMSwgMHgzMmY5ODhkMyksIFRPQk4oMHhkZTI2
ZDYxZiwgMHhhMTdiOGU4NSksCi0gICAgICAgICBUT0JOKDB4YzQ2NmRjYjYsIDB4MTM3Yzc0MDgp
LCBUT0JOKDB4OWEzOGQ3YjYsIDB4MzZhMjY2ZGEpLAotICAgICAgICAgVE9CTigweDdlZjVjYjA2
LCAweDgzYmViZjFiKSwgVE9CTigweGU1Y2RjYmJmLCAweDBmZDAxNGUzKSwKLSAgICAgICAgIFRP
Qk4oMHgzMGFhMzc2ZCwgMHhmNjU5NjVhMCksIFRPQk4oMHg2MGZlODhjMiwgMHhlYmIzZTk1ZSks
Ci0gICAgICAgICBUT0JOKDB4MzNmZDBiNjEsIDB4NjZlZTZmMjApLCBUT0JOKDB4ODgyN2RjZGIs
IDB4M2Y0MWYwYTApLAotICAgICAgICAgVE9CTigweGJmOGE5ZDI0LCAweDBjNTZjNjkwKSwgVE9C
TigweDQwMjY1ZGFkLCAweGRkYjc2NDFkKSwKLSAgICAgICAgIFRPQk4oMHg1MjJiMDViZiwgMHgz
YTZiNjYyYiksIFRPQk4oMHg0NjZkMWRmZSwgMHhiMTQ3OGM5YiksCi0gICAgICAgICBUT0JOKDB4
YWE2MTY5NjIsIDB4MTQ4NDQ2OWIpLCBUT0JOKDB4MGRiNjA1NDksIDB4MDJkZjhmOWYpLAotICAg
ICAgICAgVE9CTigweGMzN2JjYTAyLCAweDNjYjhiZjUxKSwgVE9CTigweDVlZmZlMzQ2LCAweDIx
MzcxY2U4KSwKLSAgICAgICAgIFRPQk4oMHhlOGY2NTI2NCwgMHhmZjExMmMzMiksIFRPQk4oMHg4
YTljNzM2ZCwgMHg3Yjk3MWZiMiksCi0gICAgICAgICBUT0JOKDB4YTRmMTk0NzAsIDB4N2I3NTA4
MGQpLCBUT0JOKDB4ZmMzZjJjNWEsIDB4ODgzOWM1OWIpLAotICAgICAgICAgVE9CTigweDFkNmM3
NzdlLCAweDVhZWI0OWMyKSwgVE9CTigweGYzZGIwMzRkLCAweGRhMWFkZGZlKSwKLSAgICAgICAg
IFRPQk4oMHhkNzZmZWU1YSwgMHg1NTM1YWZmYyksIFRPQk4oMHgwODUzYWM3MCwgMHhiOTIyNTFm
ZCksCi0gICAgICAgICBUT0JOKDB4MzdlM2Q1OTQsIDB4OGIyYTI5ZDUpLCBUT0JOKDB4MjhmMWY0
NTcsIDB4NGRlMDBkZGIpLAotICAgICAgICAgVE9CTigweDgwODNjMWI1LCAweGY0MmMzMjhiKSwg
VE9CTigweGQ4ZWYxZDhmLCAweGU0OTNjNzNiKSwKLSAgICAgICAgIFRPQk4oMHg5NmZiNjI2MCwg
MHg0MWRjNjFiZCksIFRPQk4oMHhmNzRlOGE5ZCwgMHgyN2VlMmY4YSksCi0gICAgICAgICBUT0JO
KDB4N2M2MDVhODAsIDB4MmM5NDZhNWQpLCBUT0JOKDB4ZWVkNDhkNjUsIDB4MzgzOWNjZmQpLAot
ICAgICAgICAgVE9CTigweDk4OTQzNDRmLCAweDNhMjk0NjdhKSwgVE9CTigweGRlODFlOTQ5LCAw
eGM1MWViYTZkKSwKLSAgICAgICAgIFRPQk4oMHhkYWVhMDY2YiwgMHhhNWU1YzJmMiksIFRPQk4o
MHgzZmM4YTYxNCwgMHgwOGM4YzdiMyksCi0gICAgICAgICBUT0JOKDB4N2FkZmY4OGYsIDB4MDZk
MGRlOWYpLCBUT0JOKDB4YmJjMTFjZjUsIDB4M2I3NWNlMGEpLAotICAgICAgICAgVE9CTigweDlm
YmI3YWNjLCAweGZiYmM4N2Q1KSwgVE9CTigweGExNDU4ZTI2LCAweDdiYWRmZGUyKX0sCi0gICAg
ICAgIHtUT0JOKDB4MWNiNDM2NjgsIDB4ZTAzOWMyNTYpLCBUT0JOKDB4NWYyNmZiOGIsIDB4N2Mx
N2ZkNWQpLAotICAgICAgICAgVE9CTigweGVlZTQyNmFmLCAweDc5YWEwNjJiKSwgVE9CTigweDA3
MjAwMmQwLCAweGQ3OGZiZjA0KSwKLSAgICAgICAgIFRPQk4oMHg0YzljYTIzNywgMHhlODRmYjdl
MyksIFRPQk4oMHhiNDAxZDhhMSwgMHgwYzgyMTMzZCksCi0gICAgICAgICBUT0JOKDB4YWFhNTI1
OTIsIDB4NmQ3ZTQxODEpLCBUT0JOKDB4ZTk0MzA4MzMsIDB4NzNkYmIxNTIpLAotICAgICAgICAg
VE9CTigweGY5MmRkYTMxLCAweGJlMjQzMTlhKSwgVE9CTigweDAzZjdkMjhiLCAweGUwOTVhOGU3
KSwKLSAgICAgICAgIFRPQk4oMHhhNTJmZTg0MCwgMHg5ODc4MjE4NSksIFRPQk4oMHgyNzZkZGFm
ZSwgMHgyOWMyNGRiYyksCi0gICAgICAgICBUT0JOKDB4ODBjZDU0OTYsIDB4MWQ3YTY0ZWIpLCBU
T0JOKDB4ZTQzNjA4ODksIDB4N2YxZGJlNDIpLAotICAgICAgICAgVE9CTigweDJmODFhODc3LCAw
eDg0MzhkMmQ1KSwgVE9CTigweDdlNGQ1MmE4LCAweDg1MTY5MDM2KSwKLSAgICAgICAgIFRPQk4o
MHgxOWUzZDViMSwgMHgxZDU5NzE1ZCksIFRPQk4oMHhjN2VhYTc2MiwgMHhkNzg4OTgzZSksCi0g
ICAgICAgICBUT0JOKDB4ZTVhNzMwYjAsIDB4YWJmMWYyNDgpLCBUT0JOKDB4ZmJhYjgwODQsIDB4
ZmFlM2ZkODMpLAotICAgICAgICAgVE9CTigweDY1ZTUwZDIxLCAweDUzNzY1YjJmKSwgVE9CTigw
eGJkZDRlMDgzLCAweGZhMTI3ZjNkKSwKLSAgICAgICAgIFRPQk4oMHg5Y2YzYzA3NCwgMHgzOTdi
MWIxMCksIFRPQk4oMHg1OWY4MDkwYywgMHhiMWI1OWZkMyksCi0gICAgICAgICBUT0JOKDB4N2Ix
NWZkOWQsIDB4NjE1ZmFhOGYpLCBUT0JOKDB4OGZhMWViNDAsIDB4OTY4NTU0ZWQpLAotICAgICAg
ICAgVE9CTigweDdiYjQ0NDdlLCAweDdhYTQ0ODgyKSwgVE9CTigweDJiYjJkMGQxLCAweDAyOWZm
ZjMyKSwKLSAgICAgICAgIFRPQk4oMHgwNzVlMmE2NCwgMHg2Y2FhNmQyZiksIFRPQk4oMHg4ZWI4
NzlkZSwgMHgyMmU3MzUxYiksCi0gICAgICAgICBUT0JOKDB4YmNkNTYyNGUsIDB4OWE1MDZjNjIp
LCBUT0JOKDB4MjE4ZWFlZjAsIDB4YTg3ZTI0ZGMpLAotICAgICAgICAgVE9CTigweDM3ZTU2ODQ3
LCAweDQ0ZGRmYTM1KSwgVE9CTigweDljY2ZjNWM1LCAweGRhYjNmNzQ3KSwKLSAgICAgICAgIFRP
Qk4oMHg5YWMxZGYzZiwgMHgxZWU5NmNmNCksIFRPQk4oMHgwYzA1NzFhMSwgMHgzYjQ4MGI4Ziks
Ci0gICAgICAgICBUT0JOKDB4MmZiZWIzZDUsIDB4NGIzYTdiM2MpLCBUT0JOKDB4MzVjMDM2Njks
IDB4NWRjZGJiOTkpLAotICAgICAgICAgVE9CTigweDUyYTBmNWRjLCAweGIyNDE1YjNhKSwgVE9C
TigweGQ1Nzc1OWI0LCAweDQ0MTNlZDlhKSwKLSAgICAgICAgIFRPQk4oMHgxZmU2NDdkOCwgMHgz
ZDMwYTJjNSksIFRPQk4oMHgwODU3Zjc3ZSwgMHhmNzhhODFkYyksCi0gICAgICAgICBUT0JOKDB4
MTFkNWEzMzQsIDB4MTMxYTRhOWIpLCBUT0JOKDB4YzBhOTRhZjksIDB4MjlkMzkzZjUpLAotICAg
ICAgICAgVE9CTigweGJjM2E1YzBiLCAweGRhYTZlYzFhKSwgVE9CTigweGJhOWZlNDkzLCAweDg4
ZDJkN2VkKSwKLSAgICAgICAgIFRPQk4oMHhiYjQzMzViNCwgMHhiYjYxNDc5NyksIFRPQk4oMHg5
OTFjNGQ2OCwgMHg3MmY4MzUzMyksCi0gICAgICAgICBUT0JOKDB4NTMyNThjMjgsIDB4ZDJmMDFj
YjMpLCBUT0JOKDB4OTNkNmVhYTMsIDB4ZDc1ZGIwYjEpLAotICAgICAgICAgVE9CTigweDQxOWEy
YjBkLCAweGU4N2QwZGI0KSwgVE9CTigweGExZTQ4ZjAzLCAweGQ4ZmU4NDkzKSwKLSAgICAgICAg
IFRPQk4oMHhmNzQ3ZmFmNiwgMHhjNTA4YjIzYSksIFRPQk4oMHhmMTM3NTcxYSwgMHgzNWQ1MzU0
OSksCi0gICAgICAgICBUT0JOKDB4OWY1ZTU4ZTIsIDB4ZmNmOWI4MzgpLCBUT0JOKDB4YzcxODZj
ZWUsIDB4YTdmZDNjZjUpLAotICAgICAgICAgVE9CTigweDc3Yjg2OGNlLCAweGU5NzhhMWQzKSwg
VE9CTigweGUzYTY4YjMzLCAweDdhYjkyZDA0KSwKLSAgICAgICAgIFRPQk4oMHg1MTAyOTc5NCwg
MHg4N2E1Yjg2MiksIFRPQk4oMHg1ZjA2MDZjMywgMHgzYTYxZDQxZCksCi0gICAgICAgICBUT0JO
KDB4MjgxNGJlMjcsIDB4NmY5MzI2ZjEpLCBUT0JOKDB4MmY1MjFjMTQsIDB4YzZmZTNjMmUpLAot
ICAgICAgICAgVE9CTigweDE3NDY0ZDdkLCAweGFjZGY3MzUxKSwgVE9CTigweDEwZjVmOWQzLCAw
eDc3N2Y3ZTQ0KSwKLSAgICAgICAgIFRPQk4oMHhjZThlNjE2YiwgMHgyNjlmYjM3ZCksIFRPQk4o
MHhhYWY3MzgwNCwgMHg3ZGU2MmRlNSksCi0gICAgICAgICBUT0JOKDB4YWJhMTExNzUsIDB4NGZk
ZDQxNTMpLCBUT0JOKDB4NTE1NzU5YmEsIDB4Mzc3MGI0OWIpLAotICAgICAgICAgVE9CTigweDhi
MDllYmY4LCAweGFhNDIzYTYxKSwgVE9CTigweDU5MjI0NWExLCAweGNkNDFmYjkyKSwKLSAgICAg
ICAgIFRPQk4oMHgxY2JhOGVjMSwgMHg5YjRjODkzNiksIFRPQk4oMHhhODdlOTFlMywgMHhhZjM2
NzEwZSksCi0gICAgICAgICBUT0JOKDB4MWZkODRjZTQsIDB4M2QzNGEyZTMpLCBUT0JOKDB4ZWUz
NzU5Y2UsIDB4YjQzYjVkNjEpLAotICAgICAgICAgVE9CTigweDg5NWJjNzhjLCAweDYxOTE4NmM3
KSwgVE9CTigweGYxOWMzODA5LCAweGNiYjk3MjVhKSwKLSAgICAgICAgIFRPQk4oMHhjMGJlMjFh
YSwgMHhkZTc0NGIxZiksIFRPQk4oMHhhN2QyMjJiMCwgMHg2MGY4MDU2YiksCi0gICAgICAgICBU
T0JOKDB4NzRiZTYxNTcsIDB4YjIzZWZlMTEpLCBUT0JOKDB4NmZhYjJiNGYsIDB4MGNkNjgyNTMp
LAotICAgICAgICAgVE9CTigweGFkMzNlYTVmLCAweDRiZjFkNzI1KSwgVE9CTigweDljMWQ4ZWUy
LCAweDRmNmM5NTBmKSwKLSAgICAgICAgIFRPQk4oMHg1NDRlZTc4YSwgMHhhMzc3YWYwNiksIFRP
Qk4oMHg1NGY0ODliYiwgMHg5NGExMTNlMSksCi0gICAgICAgICBUT0JOKDB4OGYxMWQ2MzQsIDB4
OTkyZmI3ZTgpLCBUT0JOKDB4MDE2OWE3YWEsIDB4YTJhNDQzNDcpLAotICAgICAgICAgVE9CTigw
eDFkNDlkNGFmLCAweDk1MDIwZTAwKSwgVE9CTigweDk1OTQ1NzIyLCAweGUwOGUxMjBiKSwKLSAg
ICAgICAgIFRPQk4oMHhiNmUzMzg3OCwgMHhhNGQzMjI4MiksIFRPQk4oMHhlMzZlMDI5ZCwgMHg0
ODAyMGFlNyksCi0gICAgICAgICBUT0JOKDB4ZTA1ODQ3ZmIsIDB4MzdhOWI3NTApLCBUT0JOKDB4
Zjg3NjgxMmMsIDB4YjI5ZTM4MTkpLAotICAgICAgICAgVE9CTigweDg0YWQxMzhlLCAweGQyM2Ex
N2YwKSwgVE9CTigweDZkN2I0NDgwLCAweGYwYjM5NTBlKSwKLSAgICAgICAgIFRPQk4oMHhkZmE4
YWVmNCwgMHgyZmQ2N2FlMCksIFRPQk4oMHg4ZDNlZWEyNCwgMHg1MjMzM2FmNiksCi0gICAgICAg
ICBUT0JOKDB4MGQwNTIwNzUsIDB4YjE1ZDVhY2MpLCBUT0JOKDB4YzZkOWM3OWYsIDB4YmQ4MTVi
YzQpLAotICAgICAgICAgVE9CTigweDhkY2FmZDg4LCAweGRmYTM2Y2YyKSwgVE9CTigweDkwOGNj
YmUyLCAweDM4YWE5MDcwKSwKLSAgICAgICAgIFRPQk4oMHg2Mzg3MjJjNCwgMHhiYTM1YWZjZSks
IFRPQk4oMHg1YTNkYThiMCwgMHhmZDZhYmYwYiksCi0gICAgICAgICBUT0JOKDB4MmRjZTI1MmMs
IDB4YzljMzM1YzEpLCBUT0JOKDB4ODRlN2YwZGUsIDB4NjVhYTc5OWIpLAotICAgICAgICAgVE9C
TigweDIxMDFhNTIyLCAweGI5OWE3MmNiKSwgVE9CTigweDA2ZGU2ZTY3LCAweDg3NjE4MDE2KSwK
LSAgICAgICAgIFRPQk4oMHg1ZmY4YzdjZCwgMHhlNmYzNjUzZSksIFRPQk4oMHgwYTgyMWFiNSwg
MHhjN2E2NzU0YSksCi0gICAgICAgICBUT0JOKDB4N2UzZmE1MmIsIDB4N2NiMGI1YTIpLCBUT0JO
KDB4YTdmYjEyMWMsIDB4YzkwNDg3OTApLAotICAgICAgICAgVE9CTigweDFhNzI1MDIwLCAweDA2
Y2UwNTNhKSwgVE9CTigweGI0OTBhMzFmLCAweDA0ZTkyOWIwKSwKLSAgICAgICAgIFRPQk4oMHhl
MTdiZTQ3ZCwgMHg2MmRkNjFhZCksIFRPQk4oMHg3ODFhOTYxYywgMHg2YmUwMTM3MSksCi0gICAg
ICAgICBUT0JOKDB4MTA2M2JmZDMsIDB4ZGFlM2NiYmEpLCBUT0JOKDB4MzU2NDc0MDYsIDB4N2Y3
M2M5YmEpLAotICAgICAgICAgVE9CTigweGY1MGU5NTdiLCAweDI3MzZhMTI5KSwgVE9CTigweGE2
MzEzNzAyLCAweGVkMTNmMjU2KSwKLSAgICAgICAgIFRPQk4oMHg5NDM2ZWU2NSwgMHgzYTE5ZmNj
NSksIFRPQk4oMHhjZjJiZGIyOSwgMHhlN2E0YzhiNiksCi0gICAgICAgICBUT0JOKDB4YjA2YjEy
NDQsIDB4YzVmOTVjZDgpLCBUT0JOKDB4ZGE4YzhhZjAsIDB4ZjRhYjk1ZjQpLAotICAgICAgICAg
VE9CTigweDFiYWU1OWMyLCAweGI5ZTU4MzZkKSwgVE9CTigweDA3ZDUxZTdlLCAweDNhY2ZmZmZj
KSwKLSAgICAgICAgIFRPQk4oMHgwMWUxNWU2YSwgMHhjMmNjYmNkYSksIFRPQk4oMHgzYmMxOTIz
ZiwgMHg4NTI4YzNlMCksCi0gICAgICAgICBUT0JOKDB4NDMzMjQ1NzcsIDB4YTQ5ZmVhZDQpLCBU
T0JOKDB4NjFhMWI4ODQsIDB4MmFhN2E3MTEpLAotICAgICAgICAgVE9CTigweGY5YTg2ZTA4LCAw
eDcwMDIzMGVmKSwgVE9CTigweDBhZjU4NWExLCAweGJkMTlhZGY4KSwKLSAgICAgICAgIFRPQk4o
MHg3NjQ1ZjM2MSwgMHhmNTVhZDhmMiksIFRPQk4oMHg2ZTY3NjIyMywgMHg0NmMzNjE0YyksCi0g
ICAgICAgICBUT0JOKDB4MjNjYjI1N2MsIDB4NGU3NzRkM2YpLCBUT0JOKDB4ODJhMzg1MTMsIDB4
YWMxMDJkMWIpLAotICAgICAgICAgVE9CTigweDliY2RkZDg4LCAweDdiMTI2YWE1KSwgVE9CTigw
eGU3MTY5OThiLCAweGVlZmQzZWU0KSwKLSAgICAgICAgIFRPQk4oMHg0MjM5ZDU3MSwgMHhmYjE2
NzU4MyksIFRPQk4oMHhkZDAxMWM3OCwgMHhkMTZjOGY4YSksCi0gICAgICAgICBUT0JOKDB4Mjcx
YzI4OTUsIDB4NjlhMjc1MTkpLCBUT0JOKDB4OWNlMGEzYjcsIDB4ZDJkNjRiNmEpLAotICAgICAg
ICAgVE9CTigweDhjOTc3Mjg5LCAweGQ1ZWM2NzM4KSwgVE9CTigweGEzYjQ5ZjlhLCAweDg4NDBl
ZjZiKSwKLSAgICAgICAgIFRPQk4oMHg4MDhjMTRjOSwgMHg5YTQ1MzQxOSksIFRPQk4oMHg1YzAw
Mjk1YiwgMHgwY2YwYTJkNSksCi0gICAgICAgICBUT0JOKDB4NTI0NDE0ZmIsIDB4MWQ0YmNjNzYp
LCBUT0JOKDB4YjA3NjkxZDIsIDB4NDU5YTg4ZjEpLAotICAgICAgICAgVE9CTigweDc3ZjQzMjYz
LCAweGY3MGQxMTBmKSwgVE9CTigweDY0YWRhNWUwLCAweGI3YWJmOWYzKSwKLSAgICAgICAgIFRP
Qk4oMHhhZmQwZjk0ZSwgMHg1YjU0NGNmNSksIFRPQk4oMHhiNGExM2ExNSwgMHhmZDI3MTNmZSks
Ci0gICAgICAgICBUT0JOKDB4Yjk5YjdkNmUsIDB4MjUwYzc0ZjQpLCBUT0JOKDB4MDk3ZjJmNzMs
IDB4MjAzMjRlNDUpLAotICAgICAgICAgVE9CTigweDk5NGIzN2Q4LCAweGFmZmE4MjA4KSwgVE9C
TigweGMzYzMxYjBiLCAweGRjMjlhYWZjKSwKLSAgICAgICAgIFRPQk4oMHgzZGE3NDY1MSwgMHg3
YTNhNjA3ZiksIFRPQk4oMHhkOGUxYjhjMSwgMHhmZTY5NTVkNiksCi0gICAgICAgICBUT0JOKDB4
NzE2ZTE4MTUsIDB4Yzg0MTg2ODIpLCBUT0JOKDB4NTQxZDQ4N2YsIDB4N2RjOTFkOTcpLAotICAg
ICAgICAgVE9CTigweDQ4YTA0NjY5LCAweGM2OTk2OTgyKSwgVE9CTigweGYzOWNhYjE1LCAweDgz
YTY1MDJlKSwKLSAgICAgICAgIFRPQk4oMHgwMjU4MDFhMCwgMHhlNjhkYjA1NSksIFRPQk4oMHhm
MzU2OTc1OCwgMHhiYTMzMzhkNSksCi0gICAgICAgICBUT0JOKDB4YjBjOGMwYWEsIDB4ZWUyYWZh
ODQpLCBUT0JOKDB4NGY2OTg1ZDMsIDB4ZmI2NTYyZDEpLAotICAgICAgICAgVE9CTigweDM1MWYx
ZjE1LCAweDEzMmVkMTdhKSwgVE9CTigweDUxMGVkMGI0LCAweGMwNDM2NWZlKSwKLSAgICAgICAg
IFRPQk4oMHhhM2Y5ODEzOCwgMHhlNWIxZjA2NiksIFRPQk4oMHhiYzlkOTVkNiwgMHgzMmRmMDNk
YyksCi0gICAgICAgICBUT0JOKDB4YTgzY2NmNmUsIDB4MTlhYmQwOWUpLCBUT0JOKDB4MGI0MDk3
YzEsIDB4NGZmMTdlZGIpLAotICAgICAgICAgVE9CTigweDU4YTVjNDc4LCAweGQ2NGEwNmNlKSwg
VE9CTigweDJkZGNjM2ZkLCAweDU0NGE1OGZkKSwKLSAgICAgICAgIFRPQk4oMHhkNDQ5NTAzZCwg
MHg5ZTgxNTNiOCksIFRPQk4oMHgzMzI0ZmQwMiwgMHg3Nzc0MTc5YiksCi0gICAgICAgICBUT0JO
KDB4YWY1ZDQ3YzgsIDB4ZGJkOTEyMGMpLCBUT0JOKDB4ZWI4NjAxNjIsIDB4MzRmYTk0ZGIpLAot
ICAgICAgICAgVE9CTigweDU4MTdiZGQxLCAweDk3MmYwN2Y0KSwgVE9CTigweGU1NTc5ZTJlLCAw
eGQyN2JiY2ViKSwKLSAgICAgICAgIFRPQk4oMHg4Njg0N2ExZiwgMHg1ZjExZTVhNiksIFRPQk4o
MHhiMzllZDI1NSwgMHg3YzNjZjA0OCksCi0gICAgICAgICBUT0JOKDB4ZTEwNzY0MTcsIDB4YTJm
NjJlNTUpLCBUT0JOKDB4NmI5YWIzOGYsIDB4MWJjZjgyYTIpLAotICAgICAgICAgVE9CTigweDRi
YjdjMzE5LCAweDdhZWIyOWY5KSwgVE9CTigweGY2ZDE3ZGEzLCAweDE3MjI3YTQ2KSwKLSAgICAg
ICAgIFRPQk4oMHhhYjUzZGRiZCwgMHgwZjk2OGMwMCksIFRPQk4oMHhhMDNkYTdlYywgMHgwMDBj
ODgwYiksCi0gICAgICAgICBUT0JOKDB4N2IyMzk2MjQsIDB4NmE5YWQyNGQpLCBUT0JOKDB4NjEy
YzA0MDEsIDB4MDFlYzYwZDApLAotICAgICAgICAgVE9CTigweDcwZDEwNDkzLCAweDEwOWY1ZGYx
KSwgVE9CTigweGZiZGE0MDMwLCAweDgwYWY3NTUwKSwKLSAgICAgICAgIFRPQk4oMHgzMGI5M2Y5
NSwgMHhjNmI5YTliMyksIFRPQk4oMHgwYzc0ZWM3MSwgMHgwMDdkOTQxOCksCi0gICAgICAgICBU
T0JOKDB4OTQxNzU1NjQsIDB4NmVkYjk1MWYpLCBUT0JOKDB4NWY0YTlkNzgsIDB4N2YyMmMyODIp
LAotICAgICAgICAgVE9CTigweGI3ODcwODk1LCAweGIzOGQxMTk2KSwgVE9CTigweGJjNTkzZGYz
LCAweGEyMjhjZTdjKSwKLSAgICAgICAgIFRPQk4oMHhjNzhjNWJkNCwgMHg2YWYzNjQxYSksIFRP
Qk4oMHg3ODAyMjAwYiwgMHgzZDliM2RjYyksCi0gICAgICAgICBUT0JOKDB4MGRjNzNmMzIsIDB4
OGJlMzMzMDQpLCBUT0JOKDB4ODQ3ZWQ4N2QsIDB4NjFmZmI3OWEpLAotICAgICAgICAgVE9CTigw
eGY4NWM5NzRlLCAweDZkNjcxMTkyKSwgVE9CTigweDFlMTQxMDBhLCAweGRlMTZmNjBmKSwKLSAg
ICAgICAgIFRPQk4oMHg0NWNiMGQ1YSwgMHg5NWMzODc5NyksIFRPQk4oMHgxODkyM2JiYSwgMHg5
YjAyMmRhNCksCi0gICAgICAgICBUT0JOKDB4ZWYyYmU4OTksIDB4YmJlN2U4NmUpLCBUT0JOKDB4
NGExNTEwZWUsIDB4MjE2MDY3YmYpLAotICAgICAgICAgVE9CTigweGQ5OGM4MTU0LCAweDg0ZDVj
ZTNlKSwgVE9CTigweDFhZjc3N2YwLCAweGY5MmEyYjkwKSwKLSAgICAgICAgIFRPQk4oMHg5ZmJj
YjQwMCwgMHg0ZWY2NTcyNCksIFRPQk4oMHgzZTA0YTRjOSwgMHgzYzBjYTZmZSksCi0gICAgICAg
ICBUT0JOKDB4ZmIzZTJjYjUsIDB4NTUwMDI5OTQpLCBUT0JOKDB4MWYzYTkzYzUsIDB4NTM2M2Vj
YWIpLAotICAgICAgICAgVE9CTigweDFmZTAwZWZlLCAweDM5MjM1NTViKSwgVE9CTigweDc0NGJl
ZGQ5LCAweDFlMTc1MWVhKSwKLSAgICAgICAgIFRPQk4oMHgzZmIyZGI1OSwgMHg2YWI2OTM1Nyks
IFRPQk4oMHg4ZGJkNzM2NSwgMHhmNWU2NjE4YiksCi0gICAgICAgICBUT0JOKDB4OTlkNTMwOTks
IDB4ZGYxZWE0MGUpLCBUT0JOKDB4YjNmMjRhMGIsIDB4NTdkNjFlNjQpLAotICAgICAgICAgVE9C
TigweGQwODhhMTk4LCAweDU5NmViODEyKSwgVE9CTigweDIyYzgzNjFiLCAweDU3NjI5NDBiKSwK
LSAgICAgICAgIFRPQk4oMHg2NmYwMWY5NywgMHhmOWMwZDk1YyksIFRPQk4oMHg4ODQ2MTE3Miwg
MHg4ZTQzY2RhZSksCi0gICAgICAgICBUT0JOKDB4MTE1OTlhN2YsIDB4YjcyYjE1YzMpLCBUT0JO
KDB4MTM1YTc1MzYsIDB4NDIwZDk1Y2MpLAotICAgICAgICAgVE9CTigweDJkY2RmMGY3LCAweDVm
N2FlMmY2KSwgVE9CTigweDE1ZmM2ZTFkLCAweGQ3ZmE2ZGEyKSwKLSAgICAgICAgIFRPQk4oMHg4
MWNhODI5YSwgMHhkMWQ0NDFiNiksIFRPQk4oMHg4NGMxMGNmOCwgMHgwNGExMDZiNiksCi0gICAg
ICAgICBUT0JOKDB4YTliMjZjOTUsIDB4YTczZmJiZDApLCBUT0JOKDB4N2YyNGUwY2IsIDB4NGQ4
ZjZlZTgpLAotICAgICAgICAgVE9CTigweDQ4YjQ1OTM3LCAweDFlMjVhMDQzKSwgVE9CTigweGY4
YTc0ZmNhLCAweDAzNmYzZGZlKSwKLSAgICAgICAgIFRPQk4oMHgxZWQ0NjU4NSwgMHhjOWY4NDI5
NiksIFRPQk4oMHg3ZmJhYThmYiwgMHgzYmMyNzhiMCksCi0gICAgICAgICBUT0JOKDB4YThlOTZj
ZDQsIDB4NmM0ZmNiZDApLCBUT0JOKDB4OTQwYTEyMDIsIDB4NzNiNjBhNWYpLAotICAgICAgICAg
VE9CTigweDM0YWFlMTIwLCAweDU1YTRhZWM4KSwgVE9CTigweDU1MGU5YTc0LCAweGRiZDc0MmYw
KSwKLSAgICAgICAgIFRPQk4oMHg3OTQ0NTZkNywgMHgyMjhjNjhhYiksIFRPQk4oMHg0OTJmODg2
OCwgMHhhNGUyNWVjNiksCi0gICAgICAgICBUT0JOKDB4NjgyOTE1YWQsIDB4YjJkOGYzOTgpLCBU
T0JOKDB4ZjEzYjUxY2MsIDB4NWI4NGM5NTMpLAotICAgICAgICAgVE9CTigweGNkYTkwYWI4LCAw
eDViYjkxN2Q2KSwgVE9CTigweDRiNjE1NTYwLCAweDRlYTNkZWUxKSwKLSAgICAgICAgIFRPQk4o
MHg1NzhiNGU4NSwgMHgwYTUyYzFjOCksIFRPQk4oMHhlYWIxYTY5NSwgMHgyMGI3NWZjNCksCi0g
ICAgICAgICBUT0JOKDB4NjBjMTRmM2MsIDB4YWEwYmIzYzYpLCBUT0JOKDB4MjIwZjQ0OGEsIDB4
YjgyMTYwOTQpLAotICAgICAgICAgVE9CTigweDRmZTdlZTMxLCAweGIwZTYzZDM0KSwgVE9CTigw
eGY0NjAwNTcyLCAweGE5ZTU0ZmFiKSwKLSAgICAgICAgIFRPQk4oMHhjMDQ5MzMzNCwgMHhkNWU3
YjVhNCksIFRPQk4oMHg4NTg5ZmI5MiwgMHgwNmQ1NDgzMSksCi0gICAgICAgICBUT0JOKDB4YWE3
MGY1Y2MsIDB4NjU4MzU1M2EpLCBUT0JOKDB4MDg3OTA5NGEsIDB4ZTI1NjQ5ZTUpLAotICAgICAg
ICAgVE9CTigweGNjOTA0NTA3LCAweDEwMDQ0NjUyKSwgVE9CTigweGViYjA2OTZkLCAweDAyNTQx
YzRmKSwKLSAgICAgICAgIFRPQk4oMHg1YTE3MWZkZSwgMHhiOTcxODcxMCksIFRPQk4oMHgzOGYx
YmVkOCwgMHhmMzc0YTlmNSksCi0gICAgICAgICBUT0JOKDB4YzhjNTgyZTEsIDB4YmEzOWJkYzEp
LCBUT0JOKDB4ZmM0NTdiMGEsIDB4OTA4Y2MwY2UpLAotICAgICAgICAgVE9CTigweDlhMTg3ZmQ0
LCAweDg4Mzg0MWUyKSwgVE9CTigweDhlYzI1YjM5LCAweDM4NzI1MzgxKSwKLSAgICAgICAgIFRP
Qk4oMHgyNTUzZWQwNSwgMHg5NmY4NDM5NSksIFRPQk4oMHgwOTVjNzY2MSwgMHg2ZjZjNjg5Nyks
Ci0gICAgICAgICBUT0JOKDB4OTE3YWM4NWMsIDB4NGJkYzU2MTApLCBUT0JOKDB4YjI4ODVmZTQs
IDB4MTc5ZWIzMDEpLAotICAgICAgICAgVE9CTigweDVmYzY1NTQ3LCAweDhiNzhiZGNjKSwgVE9C
TigweDRhOWZjODkzLCAweGU1OWU0Njk5KSwKLSAgICAgICAgIFRPQk4oMHhiYjdmZjBjZCwgMHgz
Y2UyOTlhZiksIFRPQk4oMHgxOTViZTliMywgMHhhZGYzOGIyMCksCi0gICAgICAgICBUT0JOKDB4
NmE5MjljODcsIDB4ZDM4ZGRiOGYpLCBUT0JOKDB4NTVmY2M5OWMsIDB4YjIxYTUxYjkpLAotICAg
ICAgICAgVE9CTigweDJiNjk1YjRjLCAweDcyMWE0NTkzKSwgVE9CTigweGVkMWU5YTE1LCAweDc2
OGVhYWMyKSwKLSAgICAgICAgIFRPQk4oMHhmYjYzZDcxYywgMHg3NDg5ZjkxNCksIFRPQk4oMHhm
OThiYTMxYywgMHg3ODExODkxMCksCi0gICAgICAgICBUT0JOKDB4ODAyOTEzNzMsIDB4OWIxMjhl
YjQpLCBUT0JOKDB4NzgwMTIxNGUsIDB4ZDQ0OGFmNGEpLAotICAgICAgICAgVE9CTigweGRiZDJl
MjJiLCAweDU1NDE4ZGQzKSwgVE9CTigweGVmZmIzYzBkLCAweGQzOTk4MjQyKSwKLSAgICAgICAg
IFRPQk4oMHhkZmE2MDc3YywgMHhjN2JmMzgyNyksIFRPQk4oMHhmMjE2NWJjYiwgMHg0N2Y4MjM4
ZiksCi0gICAgICAgICBUT0JOKDB4ZmUzN2NmNjgsIDB4ODU2NGQ1NTQpLCBUT0JOKDB4ZTVmODI1
YzQsIDB4MGE4MWZiOTgpLAotICAgICAgICAgVE9CTigweDQzY2M0ZjY3LCAweGZmZWQ0ZDZmKSwg
VE9CTigweGJjNjA5NTc4LCAweGI1MGEzNGIwKSwKLSAgICAgICAgIFRPQk4oMHg4YWE4ZmNmOSwg
MHg1MDQxZmFmMSksIFRPQk4oMHg1NjU5ZjA1MywgMHg2NTE3NzNiNiksCi0gICAgICAgICBUT0JO
KDB4ZTg3NTgyYzMsIDB4NjA0NGQ2M2IpLCBUT0JOKDB4YTYwODk0MDksIDB4MGNkYjBjYTApLAot
ICAgICAgICAgVE9CTigweDhjOTkzZTBmLCAweGJmYjJiY2Y2KSwgVE9CTigweGZjNjRhNzE5LCAw
eDQ1OTg1Y2ZjKSwKLSAgICAgICAgIFRPQk4oMHgxNWM0ZGE4MCwgMHg4M2RiZWRiYSksIFRPQk4o
MHg4MDRhZTExMiwgMHgyYmU2N2RmNyksCi0gICAgICAgICBUT0JOKDB4ZGE0Yzk2NTgsIDB4YTIz
ZGVmZGUpLCBUT0JOKDB4MTIwMDJkZGQsIDB4NTE1NmUwZDMpLAotICAgICAgICAgVE9CTigweGU2
OGVhZTg5LCAweDVkZDIxYjk2KSwgVE9CTigweDhiOTlmMjhiLCAweGNmNDQ2MjRkKSwKLSAgICAg
ICAgIFRPQk4oMHgwYWUwMDgwOCwgMHgxZWM4ODk3YSksIFRPQk4oMHhkZDBhOTMwMywgMHg2NzEy
Zjc2ZSksCi0gICAgICAgICBUT0JOKDB4OTYyMzc1MjIsIDB4NGUyMzNkZTQpLCBUT0JOKDB4MTky
NDQ1YjEsIDB4MmIzNmE4YTUpLAotICAgICAgICAgVE9CTigweGFiZjlmZjc0LCAweDAyMzk5M2Q5
KSwgVE9CTigweDIxZjM3YmY0LCAweDJhYWQ0YThmKSwKLSAgICAgICAgIFRPQk4oMHgzNDBhNDM0
OSwgMHhmOGJkMmJiZCksIFRPQk4oMHgxZDkwMmNkOSwgMHg0ODY4MTk1ZCksCi0gICAgICAgICBU
T0JOKDB4M2QyN2JiZjEsIDB4ZTVmZGI2ZjEpLCBUT0JOKDB4N2E1YWIwODgsIDB4MTI0ZjlmMWMp
LAotICAgICAgICAgVE9CTigweGM0NjZhYjA2LCAweGY3YTA5ZTAzKSwgVE9CTigweDJmOGExOTc3
LCAweDMxZjJjMTIzKSwKLSAgICAgICAgIFRPQk4oMHhkYTM1NWRjNywgMHgwNDFiNjY1NyksIFRP
Qk4oMHhjYjg0MGQxMiwgMHg4ZWNlMmE3YyksCi0gICAgICAgICBUT0JOKDB4YjYwMGFkOWYsIDB4
N2RiMzI2NzUpLCBUT0JOKDB4NzhmZWExMzMsIDB4MDdhMDZmMWIpLAotICAgICAgICAgVE9CTigw
eDVkMDMyMjY5LCAweGIzMWY2MDk0KSwgVE9CTigweDA3NzUzZWY1LCAweDgzZWMzN2FhKSwKLSAg
ICAgICAgIFRPQk4oMHgwMzQ4NWFlZCwgMHg5YzBiZWE3OCksIFRPQk4oMHg0MWJiMzk4OSwgMHhi
YzNmNDUyNCksCi0gICAgICAgICBUT0JOKDB4MDk0MDM3NjEsIDB4Njk3ZjcyNmQpLCBUT0JOKDB4
NjEwOWJlYjMsIDB4ZGYzOTQ4MjApLAotICAgICAgICAgVE9CTigweDgwNDExMWVhLCAweDNiNmQx
MTQ1KSwgVE9CTigweGI2MjcxZWE5LCAweGE4NTgyNjU0KSwKLSAgICAgICAgIFRPQk4oMHg2MTk2
MTVlNiwgMHgyNGU2NjU2MiksIFRPQk4oMHhhMjU1NDk0NSwgMHhkN2I2YWQ5YyksCi0gICAgICAg
ICBUT0JOKDB4ZDljNDk4NWUsIDB4OTliZmUzNWYpLCBUT0JOKDB4OTc3MGNjYzAsIDB4N2I1MWNk
ZjYpLAotICAgICAgICAgVE9CTigweDdjMzI3MDEzLCAweDkyODgxODMyKSwgVE9CTigweDg3Nzdk
NDVmLCAweDI4NmIyNmQxKSwKLSAgICAgICAgIFRPQk4oMHg5YmJlZGEyMiwgMHhkODQ3OTk5ZCks
IFRPQk4oMHgwM2FhMzNiNiwgMHhjMzUyNWQzMiksCi0gICAgICAgICBUT0JOKDB4NGI3Yjk2ZDQs
IDB4MjhhOTU5YTEpLCBUT0JOKDB4YmIzNzg2ZTUsIDB4MzFlNWQyMzQpLAotICAgICAgICAgVE9C
TigweGFlYjVkM2NlLCAweDY5NjFmMjQ3KSwgVE9CTigweDIwYWE4NWFmLCAweDAyZjkzZDNmKSwK
LSAgICAgICAgIFRPQk4oMHg5Y2QxYWQzZCwgMHhkN2E3YWU0ZiksIFRPQk4oMHhiZjY2ODhmMCwg
MHg3ODFhZGFhOCksCi0gICAgICAgICBUT0JOKDB4YjFiNDBlODYsIDB4NzQ2OWNlYWQpLCBUT0JO
KDB4MTkwNGM1MjQsIDB4MzA5ZmNhNDgpLAotICAgICAgICAgVE9CTigweDliNzMxMmFmLCAweDRi
NTRiYmM3KSwgVE9CTigweGJlMjRiZjhmLCAweDU5M2FmZmEyKSwKLSAgICAgICAgIFRPQk4oMHhi
ZTVlMDc5MCwgMHhiZDk4NzY0YiksIFRPQk4oMHhhMGY0NWYxNywgMHhhMjZlMjk5ZSksCi0gICAg
ICAgICBUT0JOKDB4NGFmMGQyYzIsIDB4NmI4ZmU0YzcpLCBUT0JOKDB4ZWYxNzBkYjEsIDB4OGFl
OGEzZTYpLAotICAgICAgICAgVE9CTigweDBlOGQ2MWEwLCAweDI5ZTBjY2MxKSwgVE9CTigweGNk
NTNlODdlLCAweDYwYWQzNmNhKSwKLSAgICAgICAgIFRPQk4oMHgzMjhjNjYyMywgMHhjODE3Mzgy
MiksIFRPQk4oMHg3ZWUxNzY3ZCwgMHhhNDk2YmU1NSksCi0gICAgICAgICBUT0JOKDB4ODlmMTMy
NTksIDB4NjQ4OTQ1YWYpLCBUT0JOKDB4OWU0NWE1ZmQsIDB4MjVjODAwOWMpLAotICAgICAgICAg
VE9CTigweGFmMmZlYmQ5LCAweDFmNjFhYjhjKSwgVE9CTigweDQzZjZiYzg2LCAweDhhMjc1Mzg1
KSwKLSAgICAgICAgIFRPQk4oMHg4Nzc5MjM0OCwgMHhmMjE0MmU3OSksIFRPQk4oMHgxN2Q4OTI1
OSwgMHhjNmU2MjM4YSksCi0gICAgICAgICBUT0JOKDB4NzUzNmQyZjYsIDB4NGE4MzlkOWIpLCBU
T0JOKDB4MWY0MjhmY2UsIDB4NzZhMWZiZGMpLAotICAgICAgICAgVE9CTigweDFjMTA5NjAxLCAw
eDBkYjA2ZGZlKSwgVE9CTigweGJmYzE2YmMxLCAweDUwYTNhM2NjKSwKLSAgICAgICAgIFRPQk4o
MHhmOWNiZDllYywgMHg5YjMwZjQxYiksIFRPQk4oMHg1YjVkYTBkNiwgMHgwMDEzOGNjZSksCi0g
ICAgICAgICBUT0JOKDB4ZWMxZDBhNDgsIDB4NTZlZjk2YTcpLCBUT0JOKDB4YjQ3ZWI4NDgsIDB4
OTgyYmY4NDIpLAotICAgICAgICAgVE9CTigweDY2ZGVhZTMyLCAweGVjM2Y3MDBkKSwgVE9CTigw
eDRlNDNjNDJjLCAweGFhMTE4MWUwKSwKLSAgICAgICAgIFRPQk4oMHhhMWQ3MmEzMSwgMHhkMWE0
YWEyYSksIFRPQk4oMHg0NDBkNDY2OCwgMHhjMDA0ZjNjZSksCi0gICAgICAgICBUT0JOKDB4MGQ2
YTJkM2IsIDB4NDVmZThhN2EpLCBUT0JOKDB4ODIwZTUyZTIsIDB4ZmIxMjgzNjUpLAotICAgICAg
ICAgVE9CTigweDI5YWM1ZmNmLCAweDI1ZTUxYjA5KSwgVE9CTigweDE4MGNkMmJmLCAweDIwMjNk
MTU5KSwKLSAgICAgICAgIFRPQk4oMHhhOTg5MjE3MSwgMHhhMWViZjkwZSksIFRPQk4oMHhmOTdj
NGM4NywgMHg3YzEzMjE4MSksCi0gICAgICAgICBUT0JOKDB4OWYxZGM3MjQsIDB4YzAzZGJiN2Up
LCBUT0JOKDB4YWUwNDM3NjUsIDB4MDE4Y2JiZTQpLAotICAgICAgICAgVE9CTigweGZiMGIyYTM2
LCAweDA3NjdkMTUzKSwgVE9CTigweGE4ZTJmNGQ2LCAweDI0OWNiYWViKSwKLSAgICAgICAgIFRP
Qk4oMHgxNzJhNTI0NywgMHhkOTVlYTE2OCksIFRPQk4oMHgxNzU4ZmFkYSwgMHgyOTcwNzY0YSks
Ci0gICAgICAgICBUT0JOKDB4YWM4MDNhNTEsIDB4MWQ5NzgxNjkpLCBUT0JOKDB4Mjk5Y2ZlMmUs
IDB4ZGU3N2UwMWIpLAotICAgICAgICAgVE9CTigweDY1MmExZTE3LCAweGIwYTk4OTI3KSwgVE9C
TigweDJlMjZlMWQxLCAweDIwMDE0NDk1KSwKLSAgICAgICAgIFRPQk4oMHg3YWUwYWY5ZiwgMHg3
MTc1YjU2YSksIFRPQk4oMHhjMmUyMmE4MCwgMHhkNjRiOWY5NSksCi0gICAgICAgICBUT0JOKDB4
NGQwZmY5ZmIsIDB4ZDkwYTA2MGEpLCBUT0JOKDB4NDk2YTI3ZGIsIDB4YmFmMzgwODUpLAotICAg
ICAgICAgVE9CTigweDMyMzA1NDAxLCAweGRhNzc2YmNmKSwgVE9CTigweGI4Y2RjZWY2LCAweDcy
NWYyMDllKSwKLSAgICAgICAgIFRPQk4oMHg2MWJhMGYzNywgMHg0MzZhMGJiYSksIFRPQk4oMHgy
NjNmYTEwOCwgMHg3Njg2MDA0OSksCi0gICAgICAgICBUT0JOKDB4OTJiZWI5OGUsIDB4ZGEzNTQy
Y2YpLCBUT0JOKDB4YTJkNGQxNGEsIDB4ZDU4NDk1MzgpLAotICAgICAgICAgVE9CTigweDk4OWI5
ZDY4LCAweDEyZTlhMWJjKSwgVE9CTigweDYxZDkwNzVjLCAweDVmNmUzMjY4KSwKLSAgICAgICAg
IFRPQk4oMHgzNTJjNmFhOSwgMHg5OWFjZTYzOCksIFRPQk4oMHhkZTRlNGE1NSwgMHg5MjBmNDNm
ZiksCi0gICAgICAgICBUT0JOKDB4ZTVlNDE0NGEsIDB4ZDY3M2MwMTcpLCBUT0JOKDB4NjY3NDE3
YWUsIDB4NmY2ZTA1ZWEpLAotICAgICAgICAgVE9CTigweDYxMzQxNmFlLCAweGRjZDFiZDU2KSwg
VE9CTigweDVlYjM2MjAxLCAweDg2NjkzNzExKSwKLSAgICAgICAgIFRPQk4oMHgyZDdiYzUwNCwg
MHgzYTFhYTkxNCksIFRPQk4oMHgxNzVhMTI5OSwgMHg3NmRjNTk3NSksCi0gICAgICAgICBUT0JO
KDB4ZTkwMGUwZjIsIDB4M2ZjODEyNWMpLCBUT0JOKDB4NTY5ZWY2OGMsIDB4MTExOTg4NzUpLAot
ICAgICAgICAgVE9CTigweDkwMTJkYjYzLCAweDYzYTExM2I0KSwgVE9CTigweGUzYmQzZjU2LCAw
eDk4ODM1NzY2KSwKLSAgICAgICAgIFRPQk4oMHhhNWM5NGE1MiwgMHg3NjQxMmRlYSksIFRPQk4o
MHhhZDllMmEwOSwgMHhhYTczNWU1YyksCi0gICAgICAgICBUT0JOKDB4NDA1YTk4NGMsIDB4NTA4
YjY1ZTkpLCBUT0JOKDB4YmRlNGExZDEsIDB4NmRmMWEwZDEpLAotICAgICAgICAgVE9CTigweDFh
OTQzM2ExLCAweGRmYmE4MGRhKSwgVE9CTigweGU5MTkyZmY5LCAweDk0NDBhZDJlKSwKLSAgICAg
ICAgIFRPQk4oMHg5ZjY0OTY5NiwgMHg1MDk5ZmU5MiksIFRPQk4oMHgyNWRkYjY1YywgMHgwYjI3
YTU0YSksCi0gICAgICAgICBUT0JOKDB4MTc4Mjc5ZGQsIDB4YzU5MGRhNjEpLCBUT0JOKDB4NTQ3
OWE5OTksIDB4ZmJkZTY4MWEpLAotICAgICAgICAgVE9CTigweGQwZTg0ZTA1LCAweDAxM2ZlMTYy
KSwgVE9CTigweGJlMTFkYzkyLCAweDYzMmQ0NzFiKSwKLSAgICAgICAgIFRPQk4oMHhkZjBiMGM0
NSwgMHhmYzBlMDg5ZiksIFRPQk4oMHgwNGZiMTViMCwgMHg0YzE0NDAyNSksCi0gICAgICAgICBU
T0JOKDB4YTYxZDVmYzIsIDB4MTNjOTk5MjcpLCBUT0JOKDB4YTAzM2U5ZTAsIDB4M2RlMmViMzUp
LAotICAgICAgICAgVE9CTigweGY4MTg1ZDVjLCAweGI4ZGFjYmI0KSwgVE9CTigweDlhODhlMjY1
LCAweDg2NDQ1NDlkKSwKLSAgICAgICAgIFRPQk4oMHhmNzE3YWY2MiwgMHg1NDY3MWZmNiksIFRP
Qk4oMHg0YmQ0MjQxYiwgMHg1ZmE1ODYwMyksCi0gICAgICAgICBUT0JOKDB4MDZmYmE0MGIsIDB4
ZTY3NzczYzApLCBUT0JOKDB4YzFkOTMzZDIsIDB4NmEyODQ3ZTkpLAotICAgICAgICAgVE9CTigw
eGY0ZjVhY2YzLCAweDY4OWUyYzcwKSwgVE9CTigweDkyYWFiMGU3LCAweDQ2YmFmZDMxKSwKLSAg
ICAgICAgIFRPQk4oMHg3OThkNzZhYSwgMHgzNDczZjZlNSksIFRPQk4oMHhjYzY2NDFkYiwgMHg5
MzE0MTkzNCksCi0gICAgICAgICBUT0JOKDB4Y2FlMjc3NTcsIDB4ZDMxZTUzNWUpLCBUT0JOKDB4
MDRjYzQzYjYsIDB4ODdjMmVlMTEpLAotICAgICAgICAgVE9CTigweDhkMWY5Njc1LCAweDJlMDI5
ZmZhKSwgVE9CTigweGMyMTUwNjcyLCAweGU0Y2M3YTJjKSwKLSAgICAgICAgIFRPQk4oMHgzYjAz
YzFlMCwgMHg4ZDY4YjAxMyksIFRPQk4oMHhhOWQ2ODE2ZiwgMHhlZGYyOThmMyksCi0gICAgICAg
ICBUT0JOKDB4MWJmYmI1MjksIDB4YTI4MDQ0NjQpLCBUT0JOKDB4OTVhNTJmYWUsIDB4NWRiMjIx
MjUpLAotICAgICAgICAgVE9CTigweDU1YjMyMTYwLCAweDBlMWNiNjRlKSwgVE9CTigweDAwNDgy
OGY2LCAweDdlN2ZjOWZlKSwKLSAgICAgICAgIFRPQk4oMHgxMzM5NGI4MiwgMHgxYmIwZmI5Myks
IFRPQk4oMHhiNjI5M2EyZCwgMHgzNWYxYTkyMCksCi0gICAgICAgICBUT0JOKDB4ZGUzNWVmMjEs
IDB4ZDE0NWQyZDkpLCBUT0JOKDB4YmU2MjI1YjMsIDB4YmI4ZmE2MDMpLAotICAgICAgICAgVE9C
TigweDAwZmM4ZjZiLCAweDMyY2YyNTJkKSwgVE9CTigweGEyOGU1MmU2LCAweDExN2NmOGMyKSwK
LSAgICAgICAgIFRPQk4oMHg5ZDFkYzg5YiwgMHg0YzM3MWU2ZCksIFRPQk4oMHhjZWJlMDY3NSwg
MHgzNmVmMGYyOCksCi0gICAgICAgICBUT0JOKDB4NWRlMDVkMDksIDB4YTQyOTJmODEpLCBUT0JO
KDB4YTgzMDM1OTMsIDB4MzUzZTMwODMpLAotICAgICAgICAgVE9CTigweGExNzE1YjBhLCAweDdl
MzdhOWJiKSwgVE9CTigweDhjNTZmNjFlLCAweDJiOGZhZWMzKSwKLSAgICAgICAgIFRPQk4oMHg1
MjUwNzQzMSwgMHgzM2M5YjEwMiksIFRPQk4oMHgwMTMwY2VmYywgMHhhNDQ0MzFmMCksCi0gICAg
ICAgICBUT0JOKDB4NTYwMzlmYTAsIDB4YmQ4NjVjZmIpLCBUT0JOKDB4NGIwM2U1NzgsIDB4YmM1
ZjFkZDcpLAotICAgICAgICAgVE9CTigweDQwZWRmMmU0LCAweGJhYmU3MjI0KSwgVE9CTigweGM3
NTI0OTZkLCAweDNhMTk4OGY2KSwKLSAgICAgICAgIFRPQk4oMHhkMTU3MmQzYiwgMHg1NjRiZWI2
YiksIFRPQk4oMHgwZGIxZDExMCwgMHgzOWExYzYwOCksCi0gICAgICAgICBUT0JOKDB4NTY4ZDE5
MzQsIDB4MTZmNjAxMjYpLCBUT0JOKDB4MDVhZTk2NjgsIDB4ZjM1NGFmMzMpLAotICAgICAgICAg
VE9CTigweDE5ZGU2ZDM3LCAweGM5MjU0NGYyKSwgVE9CTigweGNjMDg0MzUzLCAweGEzNTgzN2Q1
KSwKLSAgICAgICAgIFRPQk4oMHhjYmI2ODY5YywgMHgxYTUxNGVjZSksIFRPQk4oMHhiNjMzZTcy
OCwgMHgyZTFkMTA2NiksCi0gICAgICAgICBUT0JOKDB4ZjE1ZGQ2OWYsIDB4OTM2YzU4MWMpLCBU
T0JOKDB4OTZlN2I4Y2UsIDB4NzQzOWM0ZjkpLAotICAgICAgICAgVE9CTigweDVlNjc2ZjQ4LCAw
eDJlNDQ4YTViKSwgVE9CTigweGIyY2E3ZDViLCAweGZkOTE2YmJiKSwKLSAgICAgICAgIFRPQk4o
MHhkNTVhMjU0MSwgMHhmNTAyNDAyNSksIFRPQk4oMHg0N2JjNTc2OSwgMHhlNGMyZDkzNyksCi0g
ICAgICAgICBUT0JOKDB4N2QzMWI5MmEsIDB4MDM2MjE4OWYpLCBUT0JOKDB4ODNmMzA4NmUsIDB4
ZWY3ODE2ZjkpLAotICAgICAgICAgVE9CTigweGY5ZjQ2ZDk0LCAweGI1ODc1NzlhKSwgVE9CTigw
eGVjMmQyMmQ4LCAweDMwZTc2YzVmKSwKLSAgICAgICAgIFRPQk4oMHgyN2Q1NzQ2MSwgMHhiMDAw
ZmZjZiksIFRPQk4oMHhiYjdlNjVmOSwgMHgzNjRmZmMyYyksCi0gICAgICAgICBUT0JOKDB4N2M3
Yzk0NzcsIDB4NjY1MmEyMjApLCBUT0JOKDB4NjE2MThmODksIDB4ZDY5NmM5ODEpLAotICAgICAg
ICAgVE9CTigweDUwMjE3MDFkLCAweDg5ZWZmZmYzKSwgVE9CTigweGYyYzhmZjhlLCAweDdjMzE0
MTYzKSwKLSAgICAgICAgIFRPQk4oMHgyZGE0MTNhZCwgMHg4ZWZiNGQzZSksIFRPQk4oMHg5Mzdi
NWFkZiwgMHhjZTE3NmQ5NSksCi0gICAgICAgICBUT0JOKDB4MjI4NjdkMzQsIDB4MmE2N2Q1MWMp
LCBUT0JOKDB4MjYyYjliMTAsIDB4MThlYjNhYzkpLAotICAgICAgICAgVE9CTigweDRlMzE0ZmU0
LCAweGM0M2ZmMjhiKSwgVE9CTigweDc2NDc2NjI3LCAweDZhNjY0ZTdhKSwKLSAgICAgICAgIFRP
Qk4oMHgzZTkwZTQwYiwgMHhiN2E1NjVjMiksIFRPQk4oMHg4NTg4OTkzYSwgMHhjMWFjZjgzMSks
Ci0gICAgICAgICBUT0JOKDB4ZDdiNTAxZDYsIDB4OGY5Mzg4MjkpLCBUT0JOKDB4OTk2NjI3ZWUs
IDB4M2VkZDdkNGMpLAotICAgICAgICAgVE9CTigweDM3ZDQ0YTYyLCAweDkwY2QzNGM3KSwgVE9C
TigweGE4MzI3NDk5LCAweGYzODMzZThkKSwKLSAgICAgICAgIFRPQk4oMHgyZTE4OTE3ZCwgMHg0
YmY1MDM1MyksIFRPQk4oMHg4NWRkNzI2YiwgMHg1NTY3NjVmYiksCi0gICAgICAgICBUT0JOKDB4
NTRmZTY1ZDYsIDB4OTNkNWFiNjYpLCBUT0JOKDB4M2RkYmFjZWQsIDB4OTE1YzI1ZmUpLAotICAg
ICAgICAgVE9CTigweGE3OTlkOWE0LCAweDEyZjIyZTg1KSwgVE9CTigweGUyYTI0ODY3LCAweDZk
MDZmNmJjKSwKLSAgICAgICAgIFRPQk4oMHhmNGYxZWU1NiwgMHg0M2NhMTYzNyksIFRPQk4oMHhm
ZGEyODI4YiwgMHg2MWVjZTMwYSksCi0gICAgICAgICBUT0JOKDB4NzU4YzFhM2UsIDB4YTJkZWU3
YTYpLCBUT0JOKDB4ZGNkZTJmM2MsIDB4NzM0YjIyODQpLAotICAgICAgICAgVE9CTigweGFiYTQ0
NWQyLCAweDRlYWJhNmFkKSwgVE9CTigweDM1YWFmNjY4LCAweDc2Y2VlMGE3KSwKLSAgICAgICAg
IFRPQk4oMHg3ZTBiMDRhOSwgMHhlNWFhMDQ5YSksIFRPQk4oMHhlNzQwODNhZCwgMHg5MTEwM2U4
NCksCi0gICAgICAgICBUT0JOKDB4YmViMTgzY2UsIDB4NDBhZmVjYzMpLCBUT0JOKDB4NmI4OWRl
OWYsIDB4ZWEwNDNmN2EpfSwKLSAgICAgICAge1RPQk4oMHgwZTI5OWQyMywgMHhmZTY3YmE2Niks
IFRPQk4oMHg5MTQ1MDc2MCwgMHg5M2NmMmYzNCksCi0gICAgICAgICBUT0JOKDB4ZjQ1YjVlYTks
IDB4OTdmY2Y5MTMpLCBUT0JOKDB4NWJlMDA4NDMsIDB4OGJkN2RkZGEpLAotICAgICAgICAgVE9C
TigweDM1OGMzZTA1LCAweGQ1M2ZmMDRkKSwgVE9CTigweGJmN2NjZGMzLCAweDVkZTkxZWY3KSwK
LSAgICAgICAgIFRPQk4oMHhhZDY4NGRiZiwgMHhiNjllYzFhMCksIFRPQk4oMHgzNjdlN2NmMiwg
MHg4MDFmZDk5NyksCi0gICAgICAgICBUT0JOKDB4MGNhMWYzYjcsIDB4YjBkYzg1OTUpLCBUT0JO
KDB4MjdkZTQ2MDgsIDB4OWYxZDlmMmUpLAotICAgICAgICAgVE9CTigweDFhZjNiZjM5LCAweGJh
ZGQ4MmE3KSwgVE9CTigweDc5MzU2YTc5LCAweDY1ODYyNDQ4KSwKLSAgICAgICAgIFRPQk4oMHhj
MDYwMjM0NSwgMHhmNWY5YTA1MiksIFRPQk4oMHgxYThiMGY4OSwgMHgxMzlhNDJmOSksCi0gICAg
ICAgICBUT0JOKDB4YjUzZWVlNDIsIDB4ODQ0ZDQwZmMpLCBUT0JOKDB4OTNiMGJmZTUsIDB4NGU1
YjYzNjgpLAotICAgICAgICAgVE9CTigweDU0MzRkZDAyLCAweGMwMjQ3ODljKSwgVE9CTigweDkw
ZGNhOWVhLCAweDQxYjU3YmZjKSwKLSAgICAgICAgIFRPQk4oMHg4YWE4OThlMiwgMHgyNDMzOThk
ZiksIFRPQk4oMHhmNjA3YzgzNCwgMHg4OTRhOTRiYiksCi0gICAgICAgICBUT0JOKDB4YmIwN2Jl
OTcsIDB4YzJjOTliNzYpLCBUT0JOKDB4NjU3NmJhNjcsIDB4MThjMjkzMDIpLAotICAgICAgICAg
VE9CTigweDNkNzllZmNjLCAweGU3MDNhODhjKSwgVE9CTigweGYyNTljZWQ3LCAweGI2YTBkMTA2
KSwKLSAgICAgICAgIFRPQk4oMHgwZjg5M2E1ZCwgMHhjOGRlNjEwYiksIFRPQk4oMHhlOGM1MTVm
YiwgMHg2N2UyMjNjZSksCi0gICAgICAgICBUT0JOKDB4Nzc3NGJmYTYsIDB4NGVhZDZkYzUpLCBU
T0JOKDB4ODlkMjBmOTUsIDB4OTI1YzcyOGYpLAotICAgICAgICAgVE9CTigweDdhMWUwOTY2LCAw
eDA5ODU4M2NlKSwgVE9CTigweGEyZWVkYjk0LCAweDkzZjJhN2Q3KSwKLSAgICAgICAgIFRPQk4o
MHgxYjI4MjA5NywgMHg0YzMwNGQ0YSksIFRPQk4oMHgwODQyZTNkYSwgMHhjMDc3MjgyZCksCi0g
ICAgICAgICBUT0JOKDB4ZTRkOTcyYTMsIDB4M2I5ZTJkN2IpLCBUT0JOKDB4N2NjNjBiMjcsIDB4
YzQ4MjE4ZmYpLAotICAgICAgICAgVE9CTigweDhmYzcwODM4LCAweDg0MTQ5ZDkxKSwgVE9CTigw
eDVjMDQzNDZmLCAweDJmNDYxZWNjKSwKLSAgICAgICAgIFRPQk4oMHhlYmU5ZmRmMiwgMHg2MTQ2
NTBhOSksIFRPQk4oMHg1ZTM1YjUzNywgMHhjMWY2NjZhYyksCi0gICAgICAgICBUT0JOKDB4NjQ1
NjEzZDEsIDB4ODhiYWJjODMpLCBUT0JOKDB4ODhjYWNlM2EsIDB4YzVlMWM5M2UpLAotICAgICAg
ICAgVE9CTigweDIwOWNhMzc1LCAweDNkZTkyZTIzKSwgVE9CTigweGNjYjAzY2M4LCAweDVmYmJi
NmUzKSwKLSAgICAgICAgIFRPQk4oMHhjY2I5MGYwMywgMHhkN2IxNDg3ZSksIFRPQk4oMHhmYTlj
MmEzOCwgMHhjNzEwOTQxZiksCi0gICAgICAgICBUT0JOKDB4NzU2YzM4MjMsIDB4NjcyNGNlZWQp
LCBUT0JOKDB4M2E5MDIyNTgsIDB4MTkyZDAzMjMpLAotICAgICAgICAgVE9CTigweGIxNTBlNTE5
LCAweGVhNWUwMzhlKSwgVE9CTigweGRjYmEyODY1LCAweGM3NDI3NTkxKSwKLSAgICAgICAgIFRP
Qk4oMHhlNTQ5MjM3ZiwgMHg3ODg5MDczMiksIFRPQk4oMHhjNDQzYmVmOSwgMHg1M2ZjYjRkOSks
Ci0gICAgICAgICBUT0JOKDB4OTg4NGQ4YTYsIDB4ZWIzNDgwZDYpLCBUT0JOKDB4OGEzNWI2YTEs
IDB4MzA0OGIxODYpLAotICAgICAgICAgVE9CTigweGI0ZTQ0NzE2LCAweDY1ZTlhOTBhKSwgVE9C
TigweDQ1YmYzODBkLCAweDY1MzAwNmMwKSwKLSAgICAgICAgIFRPQk4oMHg4ZjNmODIwZCwgMHg0
ZmU5YWUzYiksIFRPQk4oMHgyNDRhMzVhMCwgMHg5NzlhM2I3MSksCi0gICAgICAgICBUT0JOKDB4
YTEwMTBlOWQsIDB4NzRjZDA2ZmYpLCBUT0JOKDB4OWMxN2M3ZGYsIDB4YWNhM2VlYWMpLAotICAg
ICAgICAgVE9CTigweDc0Yzg2Y2QzLCAweDgwNjNhYTJiKSwgVE9CTigweDg1OTVjNGIzLCAweDcz
NDYxNGZmKSwKLSAgICAgICAgIFRPQk4oMHhhM2RlMDBjYSwgMHg5OTBmNjJjYyksIFRPQk4oMHhk
OWJlZDIxMywgMHhjYTBjM2JlNSksCi0gICAgICAgICBUT0JOKDB4Nzg4NjA3OGEsIDB4ZGY4Y2U5
ZjUpLCBUT0JOKDB4ZGRiMjdjZTMsIDB4NWNkNDQ0NDQpLAotICAgICAgICAgVE9CTigweGVkMzc0
YTY2LCAweDU4OTI2ZGRkKSwgVE9CTigweDEzOGIyZDQ5LCAweDkwODAxNWI4KSwKLSAgICAgICAg
IFRPQk4oMHg4ODZjNjU3OSwgMHhkZTFmN2FiOCksIFRPQk4oMHg4ODhiOWFhMCwgMHhjMzAyMGI3
YSksCi0gICAgICAgICBUT0JOKDB4ZDNlYzAzNGUsIDB4M2E5NmUzNTUpLCBUT0JOKDB4YmE2NWIw
YjgsIDB4ZjMwZmJlOWEpLAotICAgICAgICAgVE9CTigweDA2NGM4ZTUwLCAweGZmMjEzNjdhKSwg
VE9CTigweDFmNTA4ZWE0LCAweDBiMDRiNDZlKSwKLSAgICAgICAgIFRPQk4oMHg5ODU2MWE0OSwg
MHg3NDdjODY2YyksIFRPQk4oMHhiYmIxZTVmZSwgMHgwNTE4YTA2MiksCi0gICAgICAgICBUT0JO
KDB4MjBmZjRlOGIsIDB4ZWNkYzM2MDgpLCBUT0JOKDB4N2Y1NWNkZWQsIDB4MjAxODQwMjcpLAot
ICAgICAgICAgVE9CTigweDhkNzNlYzk1LCAweGYzOGM4NWYwKSwgVE9CTigweDViNTg5ZmRmLCAw
eDhiYzNiOGMzKSwKLSAgICAgICAgIFRPQk4oMHhiZTk1ZGQ5OCwgMHgwZjEyYjY2ZiksIFRPQk4o
MHhmNWJkMWEwOSwgMHgwZTMzOGUwMSksCi0gICAgICAgICBUT0JOKDB4NjUxNjNhZTUsIDB4NWU5
MTU5MTgpLCBUT0JOKDB4NjE1OGQ2ZDksIDB4ODZmOGE0NmIpLAotICAgICAgICAgVE9CTigweDg0
NjZiNTM4LCAweGVlZWJmOTljKSwgVE9CTigweGNhODc2MWY2LCAweGJjYTQ3N2VmKSwKLSAgICAg
ICAgIFRPQk4oMHhhZjM0NDljMiwgMHg5ZWJiYzYwMSksIFRPQk4oMHhlZjNiMGY0MSwgMHhlMGMz
YWUyZiksCi0gICAgICAgICBUT0JOKDB4YWE2YzU3N2QsIDB4NWRlNjM3NTIpLCBUT0JOKDB4ZTkx
NjY2MDEsIDB4NjQ2ODJhNTEpLAotICAgICAgICAgVE9CTigweDVhMzA5N2JlLCAweGZjMTVhYTFl
KSwgVE9CTigweDQwZDEyNTQ4LCAweGI1NGIwNzQ1KSwKLSAgICAgICAgIFRPQk4oMHg1YmFkNDcw
NiwgMHg1MTlhNWYxMiksIFRPQk4oMHhlZDAzZjcxNywgMHhhNDM5ZGVlNiksCi0gICAgICAgICBU
T0JOKDB4MDc5NGJiNmMsIDB4NGEwMmM0OTkpLCBUT0JOKDB4ZjcyNTA4M2QsIDB4Y2ZmZTcxZDIp
LAotICAgICAgICAgVE9CTigweDJjYWQ3NTE5LCAweDBmM2FkY2FmKSwgVE9CTigweDdmNjhlYTFj
LCAweDQzNzI5MzEwKSwKLSAgICAgICAgIFRPQk4oMHhlNzQ3YzhjNywgMHhiN2ZmZDk3NyksIFRP
Qk4oMHhlYzEwNGMzNSwgMHg4MDc2MWEyMiksCi0gICAgICAgICBUT0JOKDB4ODM5NWViYWYsIDB4
NWEzZmZiODMpLCBUT0JOKDB4ZmIzMjYxZjQsIDB4ZTRiNjNkYjcpLAotICAgICAgICAgVE9CTigw
eDUzNTQ0OTYwLCAweGQ4ODNlNTQ0KSwgVE9CTigweDEzNTIwZDcwLCAweDhjYzJlZWI4KSwKLSAg
ICAgICAgIFRPQk4oMHgwOGY2MzM3YiwgMHhkM2Q2NWY5OSksIFRPQk4oMHg4Mzk5N2RiMiwgMHg3
ODFjZjk1YiksCi0gICAgICAgICBUT0JOKDB4Y2U2ZmYxMDYsIDB4MGRiZDJjMDEpLCBUT0JOKDB4
NGY4ZWVhNmIsIDB4MWY5Y2U5MzQpLAotICAgICAgICAgVE9CTigweDU0NmY3YzRiLCAweDBlOTkz
OTIxKSwgVE9CTigweDYyMzZhMzI0LCAweDVlNzUzZmM3KSwKLSAgICAgICAgIFRPQk4oMHg2NWE0
MWY4NCwgMHhhMTYwMjJlOSksIFRPQk4oMHgwYzE4ZDg3OCwgMHg0M2QxZGJiMiksCi0gICAgICAg
ICBUT0JOKDB4NzNjNTU2NDAsIDB4MmQ0Y2VmOWMpLCBUT0JOKDB4YTA0MjgxMDgsIDB4NzA0NDRj
NzQpLAotICAgICAgICAgVE9CTigweDY4ZTRmMTVlLCAweDlhZmRmYjNjKSwgVE9CTigweDQ5YTU2
MTQzLCAweDViZGZiNmRmKSwKLSAgICAgICAgIFRPQk4oMHhhOWJjMWJkNCwgMHg1ZjgyM2Q5Nyks
IFRPQk4oMHhiY2ViNTk3MCwgMHhlYTExMWMyYSksCi0gICAgICAgICBUT0JOKDB4MzY2YjQ1NWYs
IDB4YjI2OWJiYzQpLCBUT0JOKDB4N2NkODVlMWUsIDB4ZTliYzVkNjIpLAotICAgICAgICAgVE9C
TigweGM3NDNjNDFjLCAweDRmMThiMDg2KSwgVE9CTigweGE0YjQwOTkwLCAweDk1Mjk0ZmI5KSwK
LSAgICAgICAgIFRPQk4oMHg5YzdjNTgxZCwgMHgyNmVlODM4MiksIFRPQk4oMHhjZjE3ZGNjNSwg
MHgzNTlkNjM4ZSksCi0gICAgICAgICBUT0JOKDB4ZWU4MjczYWIsIDB4YjcyOGFlM2QpLCBUT0JO
KDB4MWQxMTI5MjYsIDB4ZjgyMWYwNDcpLAotICAgICAgICAgVE9CTigweDExNDk4NDc3LCAweDUw
NDkxYTc0KSwgVE9CTigweDY4N2ZhNzYxLCAweGZkZTBkZmI5KSwKLSAgICAgICAgIFRPQk4oMHgy
YzI1ODAyMiwgMHg3ZWE0MzVhYiksIFRPQk4oMHg2YjhiZGI5NCwgMHg5MWNlN2UzZiksCi0gICAg
ICAgICBUT0JOKDB4NGM1YjVkYzksIDB4M2JmODM0YWEpLCBUT0JOKDB4MDQzNzE4MTksIDB4NGY2
YzdlNGIpLAotICAgICAgICAgVE9CTigweGMyODRlMDBhLCAweDM3MzZiY2FkKSwgVE9CTigweDBk
ODgxMTE4LCAweDIxYWU4ZjhkKSwKLSAgICAgICAgIFRPQk4oMHhmOWNmMGY4MiwgMHhmNDhjOGUz
MyksIFRPQk4oMHhhMTFmZDA3NSwgMHhhMWJmNDBkYiksCi0gICAgICAgICBUT0JOKDB4ZGNlYWIw
ZGUsIDB4ZGMyNzMzZTUpLCBUT0JOKDB4YzU2MGE4YjUsIDB4OGU5ODZiZDcpLAotICAgICAgICAg
VE9CTigweDQ4ZGQxZmUyLCAweDM5MjlkMDk3KSwgVE9CTigweDM4ODViMjkwLCAweDkyZjE4OGYx
KSwKLSAgICAgICAgIFRPQk4oMHgwZjJhZTYxMywgMHhkYTZmY2RhYyksIFRPQk4oMHg5MDU0MzAz
ZSwgMHhiNjYyYTQ2YyksCi0gICAgICAgICBUT0JOKDB4YjY4NzFlNDQsIDB4MDczODA0MmEpLCBU
T0JOKDB4OThlNmE5NzcsIDB4YmRhZjY0NDkpLAotICAgICAgICAgVE9CTigweGQ4YmMwNjUwLCAw
eGQxYzlkZjFiKSwgVE9CTigweGVmM2Q2NDUxLCAweDM2ZTA5OGY5KSwKLSAgICAgICAgIFRPQk4o
MHgwM2ZiYWU4MiwgMHhiNmQ3MmQyOCksIFRPQk4oMHg3N2NhOWRiMSwgMHhmNWQ4NDA4MCksCi0g
ICAgICAgICBUT0JOKDB4OGExMTJjZmYsIDB4YTU4ZWZjMWMpLCBUT0JOKDB4NTE4ZDc2MWMsIDB4
YzU2NGNiNGEpLAotICAgICAgICAgVE9CTigweDY5YjU3NDBlLCAweGYwZDFiNWNlKSwgVE9CTigw
eDcxNzAzOWNjLCAweGU5ZWIxNzg1KSwKLSAgICAgICAgIFRPQk4oMHgzZmUyOWY5MCwgMHgyMmY1
MzM4MiksIFRPQk4oMHg4ZTU0YmE1NiwgMHg2YmM3Yzk1YyksCi0gICAgICAgICBUT0JOKDB4OWM4
MDZkOGEsIDB4ZjdmOTFkMGYpLCBUT0JOKDB4M2I2MWIwZjEsIDB4YTgyYTU3MjgpLAotICAgICAg
ICAgVE9CTigweDQ2NDAwMzJkLCAweDk0ZDc2NzU0KSwgVE9CTigweDI3M2ViNWRlLCAweDQ3ZDgz
NGM2KSwKLSAgICAgICAgIFRPQk4oMHgyOTg4YWJmNywgMHg3YjRlNGQ1MyksIFRPQk4oMHhiN2Nl
NjZiZiwgMHhkZTQwMTc3NyksCi0gICAgICAgICBUT0JOKDB4OWZiYTZiMzIsIDB4NzE1MDcxYjMp
LCBUT0JOKDB4ODI0MTNjMjQsIDB4YWQzYTFhOTgpLAotICAgICAgICAgVE9CTigweDViN2ZjOGM0
LCAweGUwZThhZDkzKSwgVE9CTigweGI1Njc5YWVlLCAweDVmYWI4NjhkKSwKLSAgICAgICAgIFRP
Qk4oMHhiMWY5ZDJmYSwgMHgyYjM5NDZmMyksIFRPQk4oMHg0NTg4OTdkYywgMHg1Njg1YjUwYSks
Ci0gICAgICAgICBUT0JOKDB4MWU5OGM5MzAsIDB4ODlkMGNhZjMpLCBUT0JOKDB4Mzk1NjRjNWYs
IDB4Nzg2NDJlOTIpLAotICAgICAgICAgVE9CTigweDFiNzc3MjlhLCAweDBkYmRhZjE4KSwgVE9C
TigweGY5MTcwNzIyLCAweDU3OWU4MmU2KSwKLSAgICAgICAgIFRPQk4oMHg2ODBjMDMxNywgMHhl
NDUxNWZhNSksIFRPQk4oMHhmODVjZmY4NCwgMHhmYjBjNzkwZiksCi0gICAgICAgICBUT0JOKDB4
YzdhODJhYWIsIDB4NmQyZTA3NjUpLCBUT0JOKDB4NzQ0NmJjYTksIDB4MzVjODJiMzIpLAotICAg
ICAgICAgVE9CTigweDVkZTYwN2FhLCAweDZkNjMxODRmKSwgVE9CTigweDdjMWE0NmE4LCAweDI2
MjgwM2E2KSwKLSAgICAgICAgIFRPQk4oMHhkMjE4MzEzZCwgMHhhZWJlODAzNSksIFRPQk4oMHg5
MjExM2ZmZCwgMHhjNzNjNTFmOCksCi0gICAgICAgICBUT0JOKDB4NGIzOGUwODMsIDB4MTJlN2U0
NmMpLCBUT0JOKDB4NjlkMGEzN2EsIDB4NTYxMjZiZDUpLAotICAgICAgICAgVE9CTigweGZiM2Yz
MjRiLCAweDczYzA3ZTA0KSwgVE9CTigweGEwYzIyZjY3LCAweDhmZGE3MjY3KSwKLSAgICAgICAg
IFRPQk4oMHg4ZjJjMDA1MSwgMHg0ZDJjN2Q4ZiksIFRPQk4oMHhiYzQ1Y2VkMywgMHhjYmUyY2Fl
NSksCi0gICAgICAgICBUT0JOKDB4ZTFjNmNmMDcsIDB4YThmMGYyNzcpLCBUT0JOKDB4YmMzOTIz
MTIsIDB4MWViOTlhOTgpLAotICAgICAgICAgVE9CTigweDc1NTM3YjdlLCAweDNjYzhhYzg1KSwg
VE9CTigweDhkNzI1ZjU3LCAweGRkMDI3NTNiKSwKLSAgICAgICAgIFRPQk4oMHhmZDA1ZmY2NCwg
MHhiNzM3ZGYyZiksIFRPQk4oMHg1NWZlODcxMiwgMHhmNmQyNTMxZCksCi0gICAgICAgICBUT0JO
KDB4NTdjZTA0YTksIDB4NmFiNmIwMWMpLCBUT0JOKDB4NjlhMDJhODksIDB4N2NkOTM3MjQpLAot
ICAgICAgICAgVE9CTigweDRmODJhYzM1LCAweGNmODY2OTliKSwgVE9CTigweDgyNDJkM2FkLCAw
eDljYjRiMjMyKSwKLSAgICAgICAgIFRPQk4oMHg3MTNkMGY2NSwgMHhkNjIxMDVlNSksIFRPQk4o
MHhiYjIyMmJmYSwgMHgyZDI5YmU2MSksCi0gICAgICAgICBUT0JOKDB4ZjJmOWE3OWUsIDB4NmNm
YmVmMDkpLCBUT0JOKDB4ZmMyNGQ4ZDMsIDB4ZDVkNjc4MmYpLAotICAgICAgICAgVE9CTigweDVk
Yjc3MDg1LCAweGQ0MTI5OTY3KSwgVE9CTigweGRiODFjM2NjLCAweGRjM2MyYTQzKSwKLSAgICAg
ICAgIFRPQk4oMHg5ZDY1NWZjMCwgMHgwNWQ4ZDlhMyksIFRPQk4oMHgzZjVkMDU3YSwgMHg1NDI5
ODAyNiksCi0gICAgICAgICBUT0JOKDB4MTE1N2Y1NmQsIDB4ODhjNTQ2OTQpLCBUT0JOKDB4YjI2
YmFiYTUsIDB4OWIwOTU3M2UpLAotICAgICAgICAgVE9CTigweDJjYWIwM2IwLCAweDIyYWRmZmQx
KSwgVE9CTigweDYwYTQxMmM4LCAweGRkNjlmMzgzKSwKLSAgICAgICAgIFRPQk4oMHhlZDc2ZTk4
YiwgMHg1NGIyNTAzOSksIFRPQk4oMHhkNGVlNjdkMywgMHg2ODdlNzE0ZCksCi0gICAgICAgICBU
T0JOKDB4ODc3Mzk2NDgsIDB4N2IwMGI1OTQpLCBUT0JOKDB4Y2U0MTk3NzUsIDB4YzllZjcwOWIp
LAotICAgICAgICAgVE9CTigweDQwZjc2Zjg1LCAweDFjMjAzYTQwKSwgVE9CTigweDMwZDM1MmQ2
LCAweGVhZmQ4ZjkxKSwKLSAgICAgICAgIFRPQk4oMHhhZjE5NmQzZCwgMHg5NTU3OGRkMiksIFRP
Qk4oMHhlYTRiYjNkNywgMHg3N2NjM2YzZCksCi0gICAgICAgICBUT0JOKDB4NDJhNWJkMDMsIDB4
Yjk4ZTc4MmIpLCBUT0JOKDB4YWM5NThjNDAsIDB4MDYyNDkyMGQpLAotICAgICAgICAgVE9CTigw
eGI4MzgxMzRjLCAweGZjNTZmY2M4KSwgVE9CTigweDg2ZWM0Y2NmLCAweDg5NTcyZTVlKSwKLSAg
ICAgICAgIFRPQk4oMHg2OWM0MzUyNiwgMHg5YmU0N2JlMCksIFRPQk4oMHgzMjNiN2RkOCwgMHhj
YjI4ZmVhMSksCi0gICAgICAgICBUT0JOKDB4ZmE1NTM4YmEsIDB4M2E2YzY3ZTUpLCBUT0JOKDB4
ZWY5MjFkNzAsIDB4MWQzNzhlNDYpLAotICAgICAgICAgVE9CTigweGY5Mjk2MWZjLCAweDNjNGI4
ODBlKSwgVE9CTigweDNmNmY5MTRlLCAweDk4OTQwYTY3KSwKLSAgICAgICAgIFRPQk4oMHhhOTkw
ZWIwYSwgMHhmZWYwZmYzOSksIFRPQk4oMHhhNmMyOTIwZiwgMHhmMGVlZmY5YyksCi0gICAgICAg
ICBUT0JOKDB4Y2E4MDQxNjYsIDB4NTFiOGQ5YTMpLCBUT0JOKDB4NDI1MzFiYzksIDB4MGZmYjBk
YjEpLAotICAgICAgICAgVE9CTigweDcyY2U0NzE4LCAweGFhODJlN2NlKSwgVE9CTigweDZlMTk5
OTEzLCAweGRmNTc0NzQxKSwKLSAgICAgICAgIFRPQk4oMHhkNWYxYjEzZCwgMHhkNWQzNjk0Niks
IFRPQk4oMHg4MjU1ZGM2NSwgMHhmNjhmMDE5NCksCi0gICAgICAgICBUT0JOKDB4ZGM5ZGY0Y2Qs
IDB4ODcxMGQyMzApLCBUT0JOKDB4MzQ1M2MyMGYsIDB4MTM4YzE5ODgpLAotICAgICAgICAgVE9C
TigweDlhZjk4ZGMwLCAweDg5YTZlZjAxKSwgVE9CTigweDRkYmNjM2YwLCAweDk4NTdkZjg1KSwK
LSAgICAgICAgIFRPQk4oMHgzNDgwNTYwMSwgMHg1YzFhZDkyNCksIFRPQk4oMHg0MDQ0OGRhNSwg
MHhkMDQ5MzA0NiksCi0gICAgICAgICBUT0JOKDB4ZjYyOTkyNmQsIDB4NGVlMzQzZTIpLCBUT0JO
KDB4NjM0M2YxYmQsIDB4OTBlOGEzMDEpLAotICAgICAgICAgVE9CTigweGVmYzkzNDkxLCAweDQw
ODE1YjNmKSwgVE9CTigweGY4ODJhNDIzLCAweGRlOGY2NmZiKSwKLSAgICAgICAgIFRPQk4oMHgz
YTEyZDVmNCwgMHhlN2RiOWY1NyksIFRPQk4oMHg3ZGZiYTM4YSwgMHgzYzM4NGMyNyksCi0gICAg
ICAgICBUT0JOKDB4N2E5MDRiZmQsIDB4NmZjNjYwYjEpLCBUT0JOKDB4ZWI2YzVkYjMsIDB4Mjc3
M2IyMWMpLAotICAgICAgICAgVE9CTigweGMzNTBlZTY2LCAweDFjZGZlMDQ5KSwgVE9CTigweDli
YWFjMGNlLCAweDQ0NTQwZjI5KSwKLSAgICAgICAgIFRPQk4oMHhiYzU3YjZhYiwgMHhhNWVjNmFh
ZCksIFRPQk4oMHgxNjdjZThjMywgMHgwYTdjMWJhYSksCi0gICAgICAgICBUT0JOKDB4YjIzYTAz
YTUsIDB4NTNmYjJiNTYpLCBUT0JOKDB4NmNlMTQxZTcsIDB4NGUwNTdmNzgpLAotICAgICAgICAg
VE9CTigweDc5NjUyNWMzLCAweDg5ZTQ5MGQ5KSwgVE9CTigweDBiYzk1NzI1LCAweGEzMWE3ZTc1
KSwKLSAgICAgICAgIFRPQk4oMHgxZWM1Njc5MSwgMHgxMjIwZmQwNiksIFRPQk4oMHg3MTZlM2Ez
YywgMHg0MDhiMGJkNiksCi0gICAgICAgICBUT0JOKDB4MzFjZDZiZjcsIDB4ZThlYmViYTkpLCBU
T0JOKDB4YTczMjZjYTYsIDB4YmVlNmI2NzApLAotICAgICAgICAgVE9CTigweDNkOWY4NTFjLCAw
eGNkMDkwYzQzKSwgVE9CTigweDU2MWU4ZjEzLCAweGYxMmMzOTg4KSwKLSAgICAgICAgIFRPQk4o
MHg1MDQ5MGI2YSwgMHg5MDRiN2JlNCksIFRPQk4oMHg2MTY5MGNlMSwgMHgwNDEwNzM3YiksCi0g
ICAgICAgICBUT0JOKDB4Mjk5ZTlhMzcsIDB4MGYwMDkwNTIpLCBUT0JOKDB4MjU4NzU4ZjAsIDB4
ZjAyNjA5MmUpLAotICAgICAgICAgVE9CTigweDlmYTI1NWYzLCAweGZkZmNkYzBmKSwgVE9CTigw
eGRiYzlmYjFmLCAweGMwZTFiY2QyKSwKLSAgICAgICAgIFRPQk4oMHgzNWY5ZGQ2ZSwgMHgyNDY1
MTg0MCksIFRPQk4oMHhkY2E0NWE4NCwgMHhhNWM1OWFiYyksCi0gICAgICAgICBUT0JOKDB4MTAz
ZDM5NmYsIDB4ZWNjYTQ5MzgpLCBUT0JOKDB4NDUzMmRhMGEsIDB4Yjk3YjNmMjkpLAotICAgICAg
ICAgVE9CTigweGM0MTM1ZWE1LCAweDE5OTlhNmJmKSwgVE9CTigweDNhYTk1MDVhLCAweDVlNmJm
MmVlKSwKLSAgICAgICAgIFRPQk4oMHhmNzdjZWYwNiwgMHgzZjViZTA5MyksIFRPQk4oMHg5N2Qx
YTBmOCwgMHhhOTQzMTUyZSksCi0gICAgICAgICBUT0JOKDB4MmNiMGViYmEsIDB4MmUxYzIxZGQp
LCBUT0JOKDB4ZjQxYjI5ZmMsIDB4MmM2Nzk3YzQpLAotICAgICAgICAgVE9CTigweGM2ZTE3MzIx
LCAweGIzMDAxMDFmKSwgVE9CTigweDQ0MjJiMGU5LCAweGQwZDc5YTg5KSwKLSAgICAgICAgIFRP
Qk4oMHg0OWU0OTAxYywgMHg5MmYxYmZjNCksIFRPQk4oMHgwNmFiMWY4ZiwgMHhlMWUxMGVkOSks
Ci0gICAgICAgICBUT0JOKDB4ODRkMzU1NzcsIDB4ZGIyOTI2YjgpLCBUT0JOKDB4Y2EzNDlkMzks
IDB4MzU2ZThlYzIpLAotICAgICAgICAgVE9CTigweDcwYjYzZDMyLCAweDM0M2JmMWE5KSwgVE9C
TigweDhmZDNiZDI4LCAweDM3ZDFhNmIxKSwKLSAgICAgICAgIFRPQk4oMHgwNDU0ODc5YywgMHgz
MTY4NjViNCksIFRPQk4oMHhlZTk1OWZmNiwgMHhjNDU4ZWZhMiksCi0gICAgICAgICBUT0JOKDB4
MDQ2MWRjZjgsIDB4OTcwNmRjM2YpLCBUT0JOKDB4NzM3ZGIwZTIsIDB4MTY0ZTRiMmUpLAotICAg
ICAgICAgVE9CTigweDA5MjYyNjgwLCAweDJmODg0M2M4KSwgVE9CTigweDU0NDk4YmJjLCAweDc3
NDVlNmY2KSwKLSAgICAgICAgIFRPQk4oMHgzNTk0NzNmYSwgMHhhMjllMjRhZiksIFRPQk4oMHhm
Y2MzYzQ1NCwgMHg3MGFhODdhMSksCi0gICAgICAgICBUT0JOKDB4ZmQyYzRiZjUsIDB4MDA1NzNh
Y2UpLCBUT0JOKDB4YjY1YjUxNGUsIDB4MjhkZDE5NjUpLAotICAgICAgICAgVE9CTigweGU0NmFl
N2NmLCAweDIxOTNlMzkzKSwgVE9CTigweDYwZTlhNGUxLCAweGY1NDQ0ZDk3KSwKLSAgICAgICAg
IFRPQk4oMHhlNzU5NGU5NiwgMHgwMGZmMzhlZCksIFRPQk4oMHg0M2Q4NGQyZiwgMHgwYTBlMGYw
MiksCi0gICAgICAgICBUT0JOKDB4OGI2ZGIxNDEsIDB4ZWUzOThhMjEpLCBUT0JOKDB4Yjg4YTU2
YWUsIDB4ZTNiY2M1YmUpLAotICAgICAgICAgVE9CTigweDBhMWFhNTJmLCAweDM3MzQ2MGVhKSwg
VE9CTigweDIwZGExYTU2LCAweDE2MGJiMTliKSwKLSAgICAgICAgIFRPQk4oMHhmYjU0OTk5ZCwg
MHg2NWJmMDM4NCksIFRPQk4oMHg3MWExNGQyNCwgMHg1ZDVhMTgwZSksCi0gICAgICAgICBUT0JO
KDB4YmM0NGRiN2IsIDB4MjE3MzdiMDQpLCBUT0JOKDB4ZDg0ZmNiMTgsIDB4MDFkZDhlOTIpLAot
ICAgICAgICAgVE9CTigweDgwZGU5MzdiLCAweGZhNDRiNDc5KSwgVE9CTigweDUzNTA1NDk5LCAw
eDVjOThmZDRmKSwKLSAgICAgICAgIFRPQk4oMHgxZWRiMTJhYiwgMHgyOGYwODcyNyksIFRPQk4o
MHg0YzU4YjU4MiwgMHhhNWYzZWY1MyksCi0gICAgICAgICBUT0JOKDB4YmZiMjM2ZDgsIDB4ODMy
N2YyNDYpLCBUT0JOKDB4YzNhM2JmYWEsIDB4NGQ3ZGYzMjApLAotICAgICAgICAgVE9CTigweGVj
ZDk2YzU5LCAweGI5NjAyNGYyKSwgVE9CTigweGZjMjkzYTUzLCAweDdmNGUwNDMzKSwKLSAgICAg
ICAgIFRPQk4oMHg1MzQxMzUyYiwgMHg1YWNmNmUxMCksIFRPQk4oMHhjNTAzNDNmZCwgMHhhZmU2
NTJjMyksCi0gICAgICAgICBUT0JOKDB4NGFmMzc5MmQsIDB4MTg1NzdhN2YpLCBUT0JOKDB4ZTFh
NGM2MTcsIDB4YWYxNjgyM2QpLAotICAgICAgICAgVE9CTigweDliMjZkMGNkLCAweDMzNDI1ZDBh
KSwgVE9CTigweDMwNjM5OWVkLCAweDliN2JjNDdmKSwKLSAgICAgICAgIFRPQk4oMHgyYTc5MmYz
MywgMHg3MDZiYjIwYiksIFRPQk4oMHgzMTIxOTYxNCwgMHg5ODExMTA1NSksCi0gICAgICAgICBU
T0JOKDB4ODY0ZWMwNjQsIDB4ODdmNWQyOGIpLCBUT0JOKDB4MTEzOTJkOTEsIDB4OTYyMjc3ZmQp
LAotICAgICAgICAgVE9CTigweGI1YWE3OTQyLCAweGJiNmFlZDVmKSwgVE9CTigweDA4MDA5NGRj
LCAweDQ3ZTc5OWQ5KSwKLSAgICAgICAgIFRPQk4oMHg0YWZhNTg4YywgMHgyMDhiYTE5YiksIFRP
Qk4oMHhkM2U3NTcwZiwgMHg4NTEyZjI4NCksCi0gICAgICAgICBUT0JOKDB4Y2JhZTY0ZTYsIDB4
MDJmNTc5OWEpLCBUT0JOKDB4ZGVlYmU3ZWYsIDB4NTE0Yjk0OTIpLAotICAgICAgICAgVE9CTigw
eDMwMzAwZjk4LCAweGU1YzI5OGZmKSwgVE9CTigweDE3ZjU2MWJlLCAweDM2NzgzNjFmKSwKLSAg
ICAgICAgIFRPQk4oMHhmNTJmZjMxMiwgMHg5OGNiOWExNiksIFRPQk4oMHg2MjMzYzNiYywgMHg1
NTYyZDQ5MCksCi0gICAgICAgICBUT0JOKDB4N2JmYTE1YTEsIDB4OTJlM2EyY2IpLCBUT0JOKDB4
OTYxYmNmZDEsIDB4ZTYzNjUxMTkpLAotICAgICAgICAgVE9CTigweDNiZGQyOWJmLCAweDJjOGM1
M2IxKSwgVE9CTigweDczOTcwNGRmLCAweDgyMjg0NGJhKSwKLSAgICAgICAgIFRPQk4oMHg3ZGFj
ZmI1OCwgMHg3ZTdiNzU0YiksIFRPQk4oMHgyMzM2MDc5MSwgMHhhODA2YzliOSksCi0gICAgICAg
ICBUT0JOKDB4ZTdlYjg4YzksIDB4MjM1MDQ0NTIpLCBUT0JOKDB4Mjk4M2U5OTYsIDB4ODUyYzE3
ODMpLAotICAgICAgICAgVE9CTigweGRkNGFlNTI5LCAweDk1OGQ4ODFkKSwgVE9CTigweDAyNmJh
ZTAzLCAweDI2MmM3YjNjKSwKLSAgICAgICAgIFRPQk4oMHgzYTZmOTE5MywgMHg5NjBiNTJkMSks
IFRPQk4oMHhkMDk4MGY5MCwgMHg5MjY5NmNmYiksCi0gICAgICAgICBUT0JOKDB4NGMxZjQyOGMs
IDB4ZDVmMzA4NTEpLCBUT0JOKDB4OTRkZmVkMjcsIDB4MmE0ZjY2MzApLAotICAgICAgICAgVE9C
TigweDRkZjUzNzcyLCAweGZjNWQ0OGE0KSwgVE9CTigweGRkMmQ1YTJmLCAweDkzMzI2MGNlKSwK
LSAgICAgICAgIFRPQk4oMHg1NzQxMTViZCwgMHhkNDRjYzdhNSksIFRPQk4oMHg0YmE2YjIwZCwg
MHhiZDEyNTMzYSksCi0gICAgICAgICBUT0JOKDB4MzBlOTNjYjgsIDB4MjQzMDU3YzkpLCBUT0JO
KDB4Nzk0YzQ4NmEsIDB4MTRkZTMyMGUpLAotICAgICAgICAgVE9CTigweGU5MjVkNGNlLCAweGYy
MTQ5NmU0KSwgVE9CTigweGY5NTFkMTk4LCAweGVjNjk2MzMxKSwKLSAgICAgICAgIFRPQk4oMHg5
ODEwZTJkZSwgMHgzZThkODEyZiksIFRPQk4oMHhkMGE0NzI1OSwgMHgzODkyOTRhYiksCi0gICAg
ICAgICBUT0JOKDB4NTEzYmEyYjUsIDB4MGUzYmFiNjYpLCBUT0JOKDB4NDYyY2FmZjUsIDB4YWJh
ZDMwNmYpLAotICAgICAgICAgVE9CTigweGUyZGM2ZDU5LCAweGFmMDRjNDllKSwgVE9CTigweDFh
ZWI4NzUwLCAweGUwYjg0YjBiKSwKLSAgICAgICAgIFRPQk4oMHhjMDM0ZjEyZiwgMHgyZjdkMGNh
MiksIFRPQk4oMHg2ZDJlODEyOCwgMHhlMDZhY2YyZiksCi0gICAgICAgICBUT0JOKDB4ODAxZjRm
ODMsIDB4MjFmYWNjMmYpLCBUT0JOKDB4YTExNzBjMDMsIDB4ZjQwZWY2MDcpLAotICAgICAgICAg
VE9CTigweGZlMGExZDRmLCAweDc4MDVhOTljKSwgVE9CTigweGJkZTU2YTM2LCAweGNjMjZhYmE1
KSwKLSAgICAgICAgIFRPQk4oMHg1YjE2MjlkMCwgMHgzNTUzMWY0MCksIFRPQk4oMHhhYzIxMmMy
YiwgMHg5YWZhNjEwOCksCi0gICAgICAgICBUT0JOKDB4MzBhMDZiZjMsIDB4MTU2OTdiZTUpLCBU
T0JOKDB4NmYwNTQ1ZGMsIDB4MmM2M2M3YzEpLAotICAgICAgICAgVE9CTigweDVkOGNiODQyLCAw
eDdjY2RhZGFmKSwgVE9CTigweGQ1MmUzNzliLCAweGFjNzAxNWJiKSwKLSAgICAgICAgIFRPQk4o
MHhjNGY1NjE0NywgMHhmNDYyYzIzZSksIFRPQk4oMHhkNDRhNDI5OCwgMHg0NmJjMjRiMCksCi0g
ICAgICAgICBUT0JOKDB4YmM3M2QyM2EsIDB4ZTI4NTZkNGYpLCBUT0JOKDB4NjFjZWRkOGMsIDB4
MDgzMmJjZGYpLAotICAgICAgICAgVE9CTigweDYwOTUzNTU2LCAweDk5ZjI0MWQ3KSwgVE9CTigw
eGVlNGFkYmQ3LCAweDAwMWEzNDlkKSwKLSAgICAgICAgIFRPQk4oMHgwYjM1YmY2YSwgMHhhYTg5
ZTQ5MSksIFRPQk4oMHg3ZjAwNzZmNCwgMHgxMzZmNzU0NiksCi0gICAgICAgICBUT0JOKDB4ZDE5
YTE4YmEsIDB4OTI2NGRhM2QpLCBUT0JOKDB4NmViMmQyY2QsIDB4NjJhN2EyOGIpLAotICAgICAg
ICAgVE9CTigweGNkYmE5NDFmLCAweDg3NjFjOTcxKSwgVE9CTigweDE1NTA1MThiLCAweGEzYmU0
YTVkKSwKLSAgICAgICAgIFRPQk4oMHhkMGU4ZTJmMCwgMHg1N2QwYjcwYyksIFRPQk4oMHhlZWE4
NjEyZSwgMHhjZDEzM2JhMyksCi0gICAgICAgICBUT0JOKDB4ODE0NjcwZjAsIDB4NDQ0MTZhZWMp
LCBUT0JOKDB4NDI0ZGI2YzMsIDB4MzA3NzUwNjEpLAotICAgICAgICAgVE9CTigweGQ5NjAzOWQx
LCAweDE2MjEzZmQxKSwgVE9CTigweGM2MWU3ZmE1LCAweDE4YTM0NzhmKSwKLSAgICAgICAgIFRP
Qk4oMHhhODA1YmRjYywgMHhjYjBjNTAyMSksIFRPQk4oMHhiZGQ2ZjNhOCwgMHgwY2M2MTZkZCks
Ci0gICAgICAgICBUT0JOKDB4MDYwMDk2NjcsIDB4NWQ5N2Y3ZTIpLCBUT0JOKDB4MzFkYjBmYzEs
IDB4YWYwYmY0YjYpLAotICAgICAgICAgVE9CTigweDIzNjgwZWQ0LCAweDU0OTE2MjdhKSwgVE9C
TigweGI5OWEzYzY2LCAweDdkNzQxZmIxKSwKLSAgICAgICAgIFRPQk4oMHhlOWJiNWY1NSwgMHgz
NmIxZmY5MiksIFRPQk4oMHgyOTczODU3NywgMHg1MTJiMzg4ZCksCi0gICAgICAgICBUT0JOKDB4
ZGI4YTJjZTcsIDB4NTBmY2YyNjMpLCBUT0JOKDB4Mzg1MzQ2ZDQsIDB4NmM0ZjdiNDcpLAotICAg
ICAgICAgVE9CTigweGJlODZjNWVmLCAweDMxNjMxZjllKSwgVE9CTigweGJmOTFkYTIxLCAweDAz
YTU3YTI5KSwKLSAgICAgICAgIFRPQk4oMHhjM2IxZjc5NiwgMHg3YjIzZjgyMSksIFRPQk4oMHgw
ZjdkMDBkMiwgMHg3NzBkYjM1NCksCi0gICAgICAgICBUT0JOKDB4OGZmYzZjM2IsIDB4ZDhmZTc5
ZGEpLCBUT0JOKDB4Y2M1ZThjNDAsIDB4ZDUyNWM5OTYpLAotICAgICAgICAgVE9CTigweDQ2NDA5
OTFkLCAweGNmZmY2MzJhKSwgVE9CTigweDY0ZDk3ZThjLCAweDY3MTEyNTI4KSwKLSAgICAgICAg
IFRPQk4oMHhjMjMyZDk3MywgMHgwMmYxY2QxZSksIFRPQk4oMHhjZTg3ZWFjYiwgMHgxZGQyMTJh
NCksCi0gICAgICAgICBUT0JOKDB4NmU0YzhjNzMsIDB4ZTY5ODAyZjcpLCBUT0JOKDB4MTJlZjAy
OTAsIDB4MWZmZmRkYmQpLAotICAgICAgICAgVE9CTigweDk0MWVjNzRlLCAweDFiY2VhNmUyKSwg
VE9CTigweGQwYjU0MDI0LCAweDNjYjkyY2JiKSwKLSAgICAgICAgIFRPQk4oMHg4MDlmYjlkNCwg
MHg3ZThmOWQwNSksIFRPQk4oMHgzYmYxNjE1OSwgMHhmMjk5MmFhZSksCi0gICAgICAgICBUT0JO
KDB4YWQ0MGYyNzksIDB4ZjhhN2E4MzgpLCBUT0JOKDB4MTFhZWE2MzEsIDB4MDU2MTU2NjApLAot
ICAgICAgICAgVE9CTigweGJmNTJlNmYxLCAweGEwMWY2ZmExKSwgVE9CTigweGVmMDQ2OTk1LCAw
eDNkYzJhZWM5KSwKLSAgICAgICAgIFRPQk4oMHg3ODVkYmVjOSwgMHhkODA4MDcxMSksIFRPQk4o
MHhlMWFlYzYwYSwgMHg5ZmRlZGY3NiksCi0gICAgICAgICBUT0JOKDB4ZWNlNzk3YjUsIDB4ZmEy
MWMxMjYpLCBUT0JOKDB4YzY2ZTg5OGYsIDB4MDVlNTI3MzIpLAotICAgICAgICAgVE9CTigweDM5
YmI2OWM0LCAweDA4ODExZmRiKSwgVE9CTigweDhiZmUxZWY4LCAweDJmYzdmMDgyKSwKLSAgICAg
ICAgIFRPQk4oMHhjOGU3YTM5MywgMHgxNzRmNDEzOCksIFRPQk4oMHhmYmE4YWQxZCwgMHhkNThk
MWY5OCksCi0gICAgICAgICBUT0JOKDB4YmMyMWQwY2UsIDB4YmZkMmZkNWIpLCBUT0JOKDB4MGI4
MzlhODIsIDB4NmVlNjBkNjEpLAotICAgICAgICAgVE9CTigweGFhY2Y3NjU4LCAweGFmZDIyMjUz
KSwgVE9CTigweGI1MjZiZWQ4LCAweGFhZTM5NmIzKSwKLSAgICAgICAgIFRPQk4oMHhjY2MxYmJj
MiwgMHgzODU2NDQ2NCksIFRPQk4oMHg5ZTNmZjk0NywgMHg4YzQ1YmM3MyksCi0gICAgICAgICBU
T0JOKDB4Y2RlOWJjYTMsIDB4NTgxODhhNzgpLCBUT0JOKDB4MTM4YjhlZTAsIDB4ZDczYmY4Zjcp
LAotICAgICAgICAgVE9CTigweDVjN2UyMzRjLCAweDQxMjNjNDg5KSwgVE9CTigweDY2ZTY5MzY4
LCAweGZhNjQzMjk3KSwKLSAgICAgICAgIFRPQk4oMHgwNjI5ZWVlZSwgMHgzOWExNWZhMyksIFRP
Qk4oMHg5NWZhYjg4MSwgMHhhOWUyYTkyNyksCi0gICAgICAgICBUT0JOKDB4YjI0OTcwMDcsIDB4
ZWFmYmIxZTEpLCBUT0JOKDB4ZDc1YzljZTYsIDB4ZTc1YjdhOTMpLAotICAgICAgICAgVE9CTigw
eDM1NTgzNTJkLCAweGVmYjY4ZDc4KSwgVE9CTigweGEyZjI2Njk5LCAweDIyM2Y2Mzk2KSwKLSAg
ICAgICAgIFRPQk4oMHhlYjkxMWVjZiwgMHhlNDY5YjE3YSksIFRPQk4oMHg2MjU0NTc3OSwgMHhl
NzJkM2VjMiksCi0gICAgICAgICBUT0JOKDB4OGVhNDdkZTcsIDB4ODJjYjExM2YpLCBUT0JOKDB4
ZWJlNGIwODYsIDB4NGUxZmE5OGQpLAotICAgICAgICAgVE9CTigweGVjMmQ1ZWQ3LCAweDhjZGZl
ZGIxKSwgVE9CTigweGE1MzVjMDc3LCAweGZlMjExYTc0KSwKLSAgICAgICAgIFRPQk4oMHg5Njc4
MTA5YiwgMHgxMWQyNDRjNSksIFRPQk4oMHhmMTdjOGJmYiwgMHhiZTI5OWE3NiksCi0gICAgICAg
ICBUT0JOKDB4YjY1MTQxMmUsIDB4ZmIxMWZiYzQpLCBUT0JOKDB4ZWEwYjU0ODIsIDB4OTRhYjNm
NjUpLAotICAgICAgICAgVE9CTigweGQ4ZGZmZDk1LCAweDBjZjc4MjQzKSwgVE9CTigweDJlNzE5
ZTU3LCAweGNlMDM2MWQ0KSwKLSAgICAgICAgIFRPQk4oMHg5MDA3ZjA4NSwgMHgzMDRkZGM1Yiks
IFRPQk4oMHgwOTVlOGM2ZCwgMHg0ZGFiYTJlYSksCi0gICAgICAgICBUT0JOKDB4NWEzM2NkYjQs
IDB4M2Y5ZDI4YTkpLCBUT0JOKDB4ODViOTVjZDgsIDB4ZTIyODMwMDMpLAotICAgICAgICAgVE9C
TigweGJjZDZjODE5LCAweGI5NzQ0NzMzKSwgVE9CTigweDI5YzVmNTM4LCAweGZjN2Y1NzgzKSwK
LSAgICAgICAgIFRPQk4oMHg2YzQ5YjJmYSwgMHhkNTkwMzhlNCksIFRPQk4oMHg2ODM0OWNjMSwg
MHgzYmJlMTAxOCksCi0gICAgICAgICBUT0JOKDB4Y2M0OTBjMWQsIDB4MjE4MzBlZTUpLCBUT0JO
KDB4MzZmOWM0ZWUsIDB4ZTliZmEyOTcpLAotICAgICAgICAgVE9CTigweDU4ZmQ3Mjk0LCAweDQ4
ZGUxYTk0KSwgVE9CTigweGFhZGIxM2E4LCAweDRlOGYyY2RjKSwKLSAgICAgICAgIFRPQk4oMHg1
MTVlYWFhMCwgMHg4MTMxM2RiYSksIFRPQk4oMHhjNzZiYjQ2OCwgMHhjMjE1MmRkOCksCi0gICAg
ICAgICBUT0JOKDB4MzU3ZjhkNzUsIDB4YTY1M2RiZjgpLCBUT0JOKDB4ZTRkOGM0ZDEsIDB4YjE0
YWMxNDMpLAotICAgICAgICAgVE9CTigweGJkYjhlNjc1LCAweGIwNTVjYjQwKSwgVE9CTigweDg5
OGY4ZTdiLCAweDk3N2I1MTY3KSwKLSAgICAgICAgIFRPQk4oMHhlY2M2NTY1MSwgMHhiODJmYjg2
MyksIFRPQk4oMHg1NjU0NDgxNCwgMHg2ZDg4ZjAxZiksCi0gICAgICAgICBUT0JOKDB4YjA5Mjhl
OTUsIDB4MjYzYTc1YTkpLCBUT0JOKDB4Y2ZiNjgzNmYsIDB4MWEyMmZjZGEpLAotICAgICAgICAg
VE9CTigweDY1MWQxNGRiLCAweDNmM2JkMzdjKSwgVE9CTigweDFkMzgzN2ZiLCAweGI2YWQ0NjY0
KSwKLSAgICAgICAgIFRPQk4oMHg3YzVmYjUzOCwgMHhmZjRmOTRhYiksIFRPQk4oMHg3MjQzYzcx
MiwgMHg2ZDdmYjhmMiksCi0gICAgICAgICBUT0JOKDB4ZWYxM2Q2MGMsIDB4YTg1YzUyODcpLCBU
T0JOKDB4MThjZmI3YzcsIDB4NGJiOGRkMWIpLAotICAgICAgICAgVE9CTigweDgyZjliZmU2LCAw
eDcyOTA4MjE5KSwgVE9CTigweDM1YzQ1OTJiLCAweDlkNTE0NGFiKSwKLSAgICAgICAgIFRPQk4o
MHg1MjczNGYzNywgMHg5Y2Y0YjQyZiksIFRPQk4oMHg2YmFjNTVlNywgMHg4YzYwZGRjNCksCi0g
ICAgICAgICBUT0JOKDB4YjVjZDgxMWUsIDB4OTRkZWEwZjYpLCBUT0JOKDB4MjU5ZWNhZTQsIDB4
ZTE4Y2MxYTMpLAotICAgICAgICAgVE9CTigweDZhMGU4MzZlLCAweDE1ZTY2MGY4KSwgVE9CTigw
eDZjNjM5ZWE2LCAweDBlMDJiZmYyKSwKLSAgICAgICAgIFRPQk4oMHg4NzIxYjhjYiwgMHg3ZTEw
MjZmZCksIFRPQk4oMHg5ZTczYjUwYiwgMHg2MzI2MTk0MiksCi0gICAgICAgICBUT0JOKDB4Yjhj
NzA5NzQsIDB4NzdmMDFkYTMpLCBUT0JOKDB4MTgzOWU2YTYsIDB4ODI2OGY1N2YpLAotICAgICAg
ICAgVE9CTigweDU3MWI5NDE1LCAweDUxNTBiODA1KSwgVE9CTigweDE4OTIzODllLCAweGY5MmM3
MDk3KSwKLSAgICAgICAgIFRPQk4oMHg4ZDY5YzE4ZSwgMHg0YTA4NGI5NSksIFRPQk4oMHg3MDE0
YzUxMiwgMHhiZTViNDk1YyksCi0gICAgICAgICBUT0JOKDB4NDc4MGRiMzYsIDB4MWIwNzUyM2Mp
LCBUT0JOKDB4MmY2MjE5Y2UsIDB4MmMxYzY0ZmEpLAotICAgICAgICAgVE9CTigweGMzOGI4MWIw
LCAweDYwMmMxMDVhKSwgVE9CTigweGFiNGY0ZjIwLCAweDVkYzhlMzYwKSwKLSAgICAgICAgIFRP
Qk4oMHgyMGQzYzk4MiwgMHhjZjdkNjJkMiksIFRPQk4oMHgxZjM2ZTI5ZCwgMHgyM2JhODE1MCks
Ci0gICAgICAgICBUT0JOKDB4NDhhZTBiZjAsIDB4OTI3NjNmOWUpLCBUT0JOKDB4N2E1MjdlNmIs
IDB4MWQzYTcwMDcpLAotICAgICAgICAgVE9CTigweGI0YTg5MDk3LCAweDU4MWE4NWUzKSwgVE9C
TigweDFmMWE1MjBmLCAweGRjMTU4YmU1KSwKLSAgICAgICAgIFRPQk4oMHhmOThkYjM3ZCwgMHgx
NjdkNzI2ZSksIFRPQk4oMHg4ODAyNzg2ZSwgMHgxMTEzZTg2Mil9LAotICAgICAgICB7VE9CTigw
eGVmYjIxNDllLCAweDM2ZjA5YWIwKSwgVE9CTigweDAzZjE2M2NhLCAweDRhMTBiYjViKSwKLSAg
ICAgICAgIFRPQk4oMHhkMDI5NzA0NSwgMHgwNmUyMDk5OCksIFRPQk4oMHg1NmYwYWYwMCwgMHgx
YjVhM2JhYiksCi0gICAgICAgICBUT0JOKDB4N2FmNGNmZWMsIDB4NzA4ODBlMGQpLCBUT0JOKDB4
NzMzMmE2NmYsIDB4YmUzZDkxM2YpLAotICAgICAgICAgVE9CTigweDMyZTZjODRhLCAweDdlY2Vi
NGJkKSwgVE9CTigweGVkYzRhNzlhLCAweDljMjI4ZjU1KSwKLSAgICAgICAgIFRPQk4oMHhjMzdj
N2RkMCwgMHhjNTVjNDQ5NiksIFRPQk4oMHhhNmE5NjM1NywgMHgyNWJiYWJkMiksCi0gICAgICAg
ICBUT0JOKDB4NWI3ZTYzZjIsIDB4YWRkN2YzNjMpLCBUT0JOKDB4OWRjZTM3ODIsIDB4MmU3M2Yx
ZGYpLAotICAgICAgICAgVE9CTigweGUxZTVhMTZhLCAweGIyYjkxZjcxKSwgVE9CTigweGU0NDg5
ODIzLCAweDViYTAxNjNjKSwKLSAgICAgICAgIFRPQk4oMHhmMjc1OWMzMiwgMHhmNmU1MTVhZCks
IFRPQk4oMHhhNWUyZjFmOCwgMHg4NjE1ZWVjZiksCi0gICAgICAgICBUT0JOKDB4NzQ1MTliZTcs
IDB4YWJkZWQ1NTEpLCBUT0JOKDB4MDNkMzU4YjgsIDB4YzhiNzQ0MTApLAotICAgICAgICAgVE9C
TigweDRkMDBiMTBiLCAweDBlMTBkOWE5KSwgVE9CTigweDYzOTJiMGIxLCAweDI4ZGE1MmI3KSwK
LSAgICAgICAgIFRPQk4oMHg2NzQ0YTI5OCwgMHgwYjc1YzkwNCksIFRPQk4oMHhjMzA1YjBhZSwg
MHhhOGY3Zjk2YyksCi0gICAgICAgICBUT0JOKDB4MDQyZTQyMWQsIDB4MTgyY2Y5MzIpLCBUT0JO
KDB4ZjZmYzVkNTAsIDB4OWU0NjM2Y2EpLAotICAgICAgICAgVE9CTigweDc5NTg0N2M5LCAweGQ2
NGNjNzhjKSwgVE9CTigweDZjNTA2MjFiLCAweDliNmNiMjdiKSwKLSAgICAgICAgIFRPQk4oMHgw
NzA5OWJmOCwgMHhkZjgwMjJhYiksIFRPQk4oMHg0OGY4NjJlYiwgMHhjMDRlZGExZCksCi0gICAg
ICAgICBUT0JOKDB4ZDEyNzMyZWQsIDB4ZTE2MDNjMTYpLCBUT0JOKDB4MTlhODBlMGYsIDB4NWM5
YTk0NTApLAotICAgICAgICAgVE9CTigweGUyMjU3ZjU0LCAweGI0MjliNGZjKSwgVE9CTigweDY2
ZDNiMmM2LCAweDQ1NDYwNTE1KSwKLSAgICAgICAgIFRPQk4oMHg2Y2E0Zjg3ZSwgMHg4MjJlMzdi
ZSksIFRPQk4oMHg3M2YyMzdiNCwgMHgyNTNiZGE0ZSksCi0gICAgICAgICBUT0JOKDB4Zjc0N2Yz
YTIsIDB4NDExOTBhZWIpLCBUT0JOKDB4ZjA2ZmEzNmYsIDB4ODA0Y2YyODQpLAotICAgICAgICAg
VE9CTigweDBhNmJiYjZlLCAweGZjNjIxYzEyKSwgVE9CTigweDVkNjI0YjY0LCAweDQwYjgwZWM2
KSwKLSAgICAgICAgIFRPQk4oMHg0YjA3MjQyNSwgMHg3YmE1NTZmMyksIFRPQk4oMHg3ZmEwYzM1
NCwgMHgzZTJkMjBhOCksCi0gICAgICAgICBUT0JOKDB4ZTkyMWZhMzEsIDB4ZTMyMjlkNDEpLCBU
T0JOKDB4YTkyOWM2NTIsIDB4OTQ1MzFiZDQpLAotICAgICAgICAgVE9CTigweDg0MTU2MDI3LCAw
eGE2ZDM4MjA5KSwgVE9CTigweGYzZDY5ZjczLCAweDZiZGI5N2JkKSwKLSAgICAgICAgIFRPQk4o
MHg4OTA2ZDE5YSwgMHgxNjgzMzYzMSksIFRPQk4oMHg2OGEzNGMyZSwgMHgwM2Q1MWJlMyksCi0g
ICAgICAgICBUT0JOKDB4Y2I1OTU4M2IsIDB4MGU1MTFjZDgpLCBUT0JOKDB4OTljZTZiZmQsIDB4
ZmRjMTMyYTgpLAotICAgICAgICAgVE9CTigweDNmYWNkYWFhLCAweGZmY2RiNDYzKSwgVE9CTigw
eDY1OGJiYzFhLCAweDM0YTM4YjA4KSwKLSAgICAgICAgIFRPQk4oMHgxMmE4MDFmOCwgMHhmMWE5
MDc4ZCksIFRPQk4oMHgxNTY3YmNmOSwgMHg2YWI4NTVkZSksCi0gICAgICAgICBUT0JOKDB4ZTA4
NDk4ZTAsIDB4MzU3MjM1OWIpLCBUT0JOKDB4Y2YwMzUzZTUsIDB4ODY1OWU2OGIpLAotICAgICAg
ICAgVE9CTigweGJiODZlOWM4LCAweDdkMjM4MDdjKSwgVE9CTigweGJjMDg3MjhkLCAweDIxOThl
OGEyKSwKLSAgICAgICAgIFRPQk4oMHg4ZGUyYjdiYywgMHg0NTNjYWRkNiksIFRPQk4oMHgyMDM5
MDBhNywgMHhiYzBiYzFmOCksCi0gICAgICAgICBUT0JOKDB4YmNkODZlNDcsIDB4YTZhYmQzYWYp
LCBUT0JOKDB4OTExY2FjMTIsIDB4ODUwMmVmZmIpLAotICAgICAgICAgVE9CTigweDJkNTUwMjQy
LCAweGVjOTY1NDY5KSwgVE9CTigweDBlOWY3NjkyLCAweDI5ZTAwMTdlKSwKLSAgICAgICAgIFRP
Qk4oMHg2MzNmMDc4ZiwgMHg2NTk3OTg4NSksIFRPQk4oMHhmYjg3ZDQ0OSwgMHg0Y2Y3NTFlZiks
Ci0gICAgICAgICBUT0JOKDB4ZTE3OTBlNGIsIDB4ZmMyNTQxOWEpLCBUT0JOKDB4MzY0NjcyMDMs
IDB4NGJmZjNjZmQpLAotICAgICAgICAgVE9CTigweGM4ZGI2Mzg2LCAweDI1YjZlODNmKSwgVE9C
TigweDZjYzY5ZjIzLCAweDZjYWQ2ZmQyKSwKLSAgICAgICAgIFRPQk4oMHgwMjE5ZTQ1YSwgMHg2
YmM2OGJiOSksIFRPQk4oMHhlNDNkNzliNiwgMHgyOTdmNzMzNCksCi0gICAgICAgICBUT0JOKDB4
N2Q0NDUzNjgsIDB4NDY1ZGM5N2MpLCBUT0JOKDB4NGI5ZWVhMzIsIDB4MmEwYjk0OWEpLAotICAg
ICAgICAgVE9CTigweDFiOTZjNmJhLCAweDYxMDJkMDIxKSwgVE9CTigweGVhYWZhYzc4LCAweDJm
NDQ2MWVhKSwKLSAgICAgICAgIFRPQk4oMHhkNGI4NWM0MSwgMHhjNDlmMTlhOCksIFRPQk4oMHgy
NzVjMjhlNCwgMHhjZjUzODg3NSksCi0gICAgICAgICBUT0JOKDB4MzU0NTFhOWQsIDB4ZGQyZTU0
ZTApLCBUT0JOKDB4Njk5MWFkYjUsIDB4MDYwNTYxOGIpLAotICAgICAgICAgVE9CTigweDViOGI0
YmNkLCAweDdiMzZjZDI0KSwgVE9CTigweDM3MmE0ZjhjLCAweDU2ZjM3MjE2KSwKLSAgICAgICAg
IFRPQk4oMHhjODkwYmQ3MywgMHhhNmE1ZGE2MCksIFRPQk4oMHg2ZjA4M2RhMCwgMHhkYzRjOWZm
MCksCi0gICAgICAgICBUT0JOKDB4ZjRlMTRkOTQsIDB4ZjA1MzZlNTcpLCBUT0JOKDB4ZjllZTFl
ZGEsIDB4YWFlYzgyNDMpLAotICAgICAgICAgVE9CTigweDU3MTI0MWVjLCAweDhiZGNmOGU3KSwg
VE9CTigweGE1ZGI4MjcxLCAweDBiMDQxZTI2KSwKLSAgICAgICAgIFRPQk4oMHg5YTBiOWE5OSwg
MHhlM2ZmZjA0MCksIFRPQk4oMHhjYWFmMjFkZCwgMHg3YzI3MTIwMiksCi0gICAgICAgICBUT0JO
KDB4YjRlMmIyZTEsIDB4NGYwZGQyZTgpLCBUT0JOKDB4ZTc3ZTdjNGYsIDB4MGEzNzdhYzcpLAot
ICAgICAgICAgVE9CTigweDY5MjAyYzNmLCAweDBkN2EyMTk4KSwgVE9CTigweGY3NTliN2ZmLCAw
eDI4MjAwZWI4KSwKLSAgICAgICAgIFRPQk4oMHhjODc1MjZlZCwgMHhkY2ZlMzE0ZSksIFRPQk4o
MHhlYjg0YzUyNCwgMHg1M2Q1Y2Y5OSksCi0gICAgICAgICBUT0JOKDB4YjFiNTJhY2UsIDB4NTE1
MTM4YjYpLCBUT0JOKDB4NWFhN2ZmOGMsIDB4MjNmY2EzZjQpLAotICAgICAgICAgVE9CTigweGZm
MGIxM2MzLCAweGI5NzkxYTI2KSwgVE9CTigweDk2MDAyMmRhLCAweGNkZDU4YjE2KSwKLSAgICAg
ICAgIFRPQk4oMHhkYmQ1NWM5MiwgMHg1N2FhZDJkZSksIFRPQk4oMHgzYmFhYWFhMywgMHhmMzBm
ZTYxOSksCi0gICAgICAgICBUT0JOKDB4OWE0YjIzNDYsIDB4MGQ4ODFlZmQpLCBUT0JOKDB4NTA2
NDE2YzAsIDB4NDYzMjVlMmEpLAotICAgICAgICAgVE9CTigweDkxMzgxZTc2LCAweDAzNWMxOGQ0
KSwgVE9CTigweGIzYmI2OGJlLCAweGYyNzgxN2IwKSwKLSAgICAgICAgIFRPQk4oMHgxNWJmYjhi
ZiwgMHg1MTE2ZjkzNyksIFRPQk4oMHg3YzY0YTU4NiwgMHhjMTI2ODk0MyksCi0gICAgICAgICBU
T0JOKDB4NzFlMjVjYzMsIDB4ODQxOWEyYzgpLCBUT0JOKDB4OWZkNmIwYzQsIDB4ODMzNWY0NjMp
LAotICAgICAgICAgVE9CTigweDRiZjBiYTNjLCAweGU4ZWUwZTBlKSwgVE9CTigweDZmNmZiYTYw
LCAweDI5OGMyMWZhKSwKLSAgICAgICAgIFRPQk4oMHg1N2Q1N2IzOSwgMHhhZTY2YmVlMCksIFRP
Qk4oMHgyOTJkNTEzMCwgMHgyMjY3MjU0NCksCi0gICAgICAgICBUT0JOKDB4ZjQ1MTEwNWQsIDB4
YmFiMDkzYjMpLCBUT0JOKDB4MDEyZjU5YjksIDB4MDI4Mzk5ODYpLAotICAgICAgICAgVE9CTigw
eDhhOTE1ODAyLCAweDM0NzRhODljKSwgVE9CTigweDA0OGM5MTljLCAweDJkZTAzZTk3KSwKLSAg
ICAgICAgIFRPQk4oMHhjNDc2YTJiNSwgMHg5MTA3MWNkNSksIFRPQk4oMHg3OTFlZDg5YSwgMHgw
MzQ5NzBhNSksCi0gICAgICAgICBUT0JOKDB4ODliZDkwNDIsIDB4ZTFiNzk5NGIpLCBUT0JOKDB4
OGVhZjUxNzksIDB4YTEwNTdmZmQpLAotICAgICAgICAgVE9CTigweDYwNjZlMmEyLCAweGQ1NTFl
ZTEwKSwgVE9CTigweDg3YThmMWQ4LCAweDcyN2UwOWE2KSwKLSAgICAgICAgIFRPQk4oMHgwMGQw
OGJhYiwgMHgyYzAxMTQ4ZCksIFRPQk4oMHg2ZGE4ZTRmMSwgMHg0MjRmMzNmZSksCi0gICAgICAg
ICBUT0JOKDB4NDY2ZDE3ZjAsIDB4Y2Y5YTRlNzEpLCBUT0JOKDB4ZmY1MDIwMTAsIDB4M2JmNWNi
MTkpLAotICAgICAgICAgVE9CTigweGRjY2Y5N2Q4LCAweGQwNjJlY2MwKSwgVE9CTigweDgwYzBk
OWFmLCAweDgxZDgwYWM0KSwKLSAgICAgICAgIFRPQk4oMHhlODc3NzFkOCwgMHgwMzNmMjg3Niks
IFRPQk4oMHhiMDE4NmVjNiwgMHg3ZDVjYzNkYiksCi0gICAgICAgICBUT0JOKDB4NThlOGJiODAs
IDB4M2JjOWJjMWQpLCBUT0JOKDB4NGQxMzk1Y2MsIDB4NmY2ZWY2MGUpLAotICAgICAgICAgVE9C
TigweGE3M2M2MmQ2LCAweDE4NjI0NGEwKSwgVE9CTigweDkxOGU1ZjIzLCAweDExMGE1YjUzKSwK
LSAgICAgICAgIFRPQk4oMHhlZDQ4NzhjYSwgMHg3NDFiN2VhYiksIFRPQk4oMHgzMDM4ZDcxYSwg
MHhkYmUwM2U1MSksCi0gICAgICAgICBUT0JOKDB4ODQwMjA0YjcsIDB4YTkzYzMyNDYpLCBUT0JO
KDB4MjFhYjYwNjksIDB4YTBiOWI0Y2QpLAotICAgICAgICAgVE9CTigweGY1ZmE2ZTJiLCAweGIx
ZDY0MjE4KSwgVE9CTigweDFkZTZhZDBlLCAweGYzZDU2MTkxKSwKLSAgICAgICAgIFRPQk4oMHg1
NzBhYWE4OCwgMHhmZjE5MjljNyksIFRPQk4oMHhjNmRmNGM2YiwgMHg2NDBlODdiNSksCi0gICAg
ICAgICBUT0JOKDB4ZGU4YTc0ZjIsIDB4YzY1ZjBjY2MpLCBUT0JOKDB4OGI5NzJmZDUsIDB4ZTZm
NmNjMDEpLAotICAgICAgICAgVE9CTigweDNmZmYzNmI2LCAweDBiODQ2NTMxKSwgVE9CTigweGJh
N2U0NWU2LCAweDEwYTVlNDc1KSwKLSAgICAgICAgIFRPQk4oMHg4NGExZDEwZSwgMHg0MTQ1YjZj
NSksIFRPQk4oMHhmMWY3ZjkxYSwgMHg1ZTA0NmQ5ZCksCi0gICAgICAgICBUT0JOKDB4MDMxN2E2
OTIsIDB4NDRkZTkwZDcpLCBUT0JOKDB4OTUxYTFkNGEsIDB4ZjE5OWMxNWUpLAotICAgICAgICAg
VE9CTigweDkxZjc4MDQ2LCAweGM5ZDczZGViKSwgVE9CTigweDc0YzgyODI4LCAweGZhYjgyMjRm
KSwKLSAgICAgICAgIFRPQk4oMHhhYTY3NzhmYywgMHhlNzU2MGI5MCksIFRPQk4oMHhiNDA3M2U2
MSwgMHhhN2U4MjRjZSksCi0gICAgICAgICBUT0JOKDB4ZmYwZDY5M2MsIDB4ZDY0MmViYTgpLCBU
T0JOKDB4N2NlMmU1N2EsIDB4NWRjY2VmMzgpLAotICAgICAgICAgVE9CTigweDg5YzJjNzg5LCAw
eDFkZjFhZDQ2KSwgVE9CTigweDgzYTA2OTIyLCAweDA5ODM0NmZkKSwKLSAgICAgICAgIFRPQk4o
MHgyZDcxNWQ3MiwgMHhkYTJmYzE3NyksIFRPQk4oMHg3YjZkZDcxZCwgMHg4NWI2Y2YxZCksCi0g
ICAgICAgICBUT0JOKDB4YzYwYTZkMGEsIDB4NzNmYTljYjApLCBUT0JOKDB4ZWRkMzk5MmUsIDB4
MzI4YmY1YTkpLAotICAgICAgICAgVE9CTigweGMzODBkZGQwLCAweDgzMmM4YzgyKSwgVE9CTigw
eGQxODJkNDEwLCAweGEyYTBiZjUwKSwKLSAgICAgICAgIFRPQk4oMHg3ZDlkNzQzOCwgMHhkOWE1
MjhkYiksIFRPQk4oMHhlOGIxYTBlOSwgMHhjYWY1Mzk5NCksCi0gICAgICAgICBUT0JOKDB4ZGRk
NmU1ZmUsIDB4MGUxOTk4N2MpLCBUT0JOKDB4YWNiOGRmMDMsIDB4MTkwYjA1OWQpLAotICAgICAg
ICAgVE9CTigweDUzNzAzYTMyLCAweDgzMDAxMjlmKSwgVE9CTigweDFmNjM3NjYyLCAweDY4YzQz
YmZkKSwKLSAgICAgICAgIFRPQk4oMHhiY2JkMTkxMywgMHgwMGU1NDA1MSksIFRPQk4oMHg4MTJm
Y2M2MiwgMHg3YmY1YThjNSksCi0gICAgICAgICBUT0JOKDB4M2Y5NjlkNWYsIDB4MjlmYjg1ZGEp
LCBUT0JOKDB4NzJmNGUwMGEsIDB4Njk0NzU5ZTgpLAotICAgICAgICAgVE9CTigweDQyNmI2ZTUy
LCAweDc5MDcyNmI3KSwgVE9CTigweDYxN2JiYzg3LCAweDNiZGJiMjA5KSwKLSAgICAgICAgIFRP
Qk4oMHg1MTFmOGJiOSwgMHg5N2FlZTMxNyksIFRPQk4oMHg4MTJhNDA5NiwgMHhlODE1MzZhOCks
Ci0gICAgICAgICBUT0JOKDB4MTM3ZGZlNTksIDB4M2FjMDliOWIpLCBUT0JOKDB4MDY4MjIzOGYs
IDB4YmE4YzlhN2EpLAotICAgICAgICAgVE9CTigweDcwNzJlYWQ2LCAweGFlY2NiNGJkKSwgVE9C
TigweDZhMzRlOWFhLCAweDY5MmJhNjMzKSwKLSAgICAgICAgIFRPQk4oMHhjODJlYWVjMiwgMHg2
ZmZmOWQzMyksIFRPQk4oMHhmYjc1MzUxMiwgMHgxZDRkMmI2MiksCi0gICAgICAgICBUT0JOKDB4
MWEwNDQ1ZmYsIDB4MWQ3YWFkYWIpLCBUT0JOKDB4NjVkMzgyNjAsIDB4ZDVmNmE2N2MpLAotICAg
ICAgICAgVE9CTigweDZlNjJmYjA4LCAweDkxY2ZiMjZmKSwgVE9CTigweGVmMWUwZmE1LCAweDVj
N2Q5MWQ2KSwKLSAgICAgICAgIFRPQk4oMHg0N2U3YzdiYSwgMHgzM2RiNzJjZCksIFRPQk4oMHgw
MTdjYmMwOSwgMHhmYTdjNzRiMiksCi0gICAgICAgICBUT0JOKDB4M2M5MzE1OTAsIDB4ZjUwYTUw
M2MpLCBUT0JOKDB4Y2FjNTRmNjAsIDB4NjE2YmFhNDIpLAotICAgICAgICAgVE9CTigweDliNmNk
MzgwLCAweGIyMzY5ZjBmKSwgVE9CTigweDk3ZDNhNzBkLCAweDIzYzc2MTUxKSwKLSAgICAgICAg
IFRPQk4oMHg1ZjlkZDZmYywgMHg5ODYyYTljNiksIFRPQk4oMHgwNDRjNGFiMiwgMHgxMjMxMmY1
MSksCi0gICAgICAgICBUT0JOKDB4MDM1ZWEwZmQsIDB4ODM0YTJkZGMpLCBUT0JOKDB4NDllNmI4
NjIsIDB4Y2M3YjgyNmQpLAotICAgICAgICAgVE9CTigweGIwM2Q2ODgzLCAweDYyZmNlNDkwKSwg
VE9CTigweDYyZjI0OTdhLCAweGIzN2UzNmU5KSwKLSAgICAgICAgIFRPQk4oMHgwNGIwMDViNiwg
MHhjNjQ1ODI5MyksIFRPQk4oMHgzNmJiNTI3NiwgMHhlOGQxMGFmNyksCi0gICAgICAgICBUT0JO
KDB4YWNmMmRjMTMsIDB4OGVlNjE3YjgpLCBUT0JOKDB4NDcwZDJkMzUsIDB4YjAwNGIzZDQpLAot
ICAgICAgICAgVE9CTigweDA2NzkwODMyLCAweGZlZWIxYjc3KSwgVE9CTigweDJiYjc1YzM5LCAw
eDg1NjU3ZjljKSwKLSAgICAgICAgIFRPQk4oMHhkNzBiZDRlZCwgMHhjMGY2MDAwNCksIFRPQk4o
MHhmZTc5N2VjYywgMHgyMTliMDE4YiksCi0gICAgICAgICBUT0JOKDB4OWI1YmVjMmEsIDB4NzUz
YWViY2MpLCBUT0JOKDB4ZGFmOWYzZGMsIDB4YzkzOWVjYTUpLAotICAgICAgICAgVE9CTigweGQ2
YmM2ODMzLCAweGQwOTVhZDA5KSwgVE9CTigweDk4YWJkZDUxLCAweGRhYTRkMmZjKSwKLSAgICAg
ICAgIFRPQk4oMHhkOTg0MGEzMSwgMHg4ZDE2OGJlNSksIFRPQk4oMHhjZjdjMTBlMCwgMHgyMzI1
YTIzYyksCi0gICAgICAgICBUT0JOKDB4YTVjMDJhYTAsIDB4N2U2ZWNmYWYpLCBUT0JOKDB4MjQ2
MmU3ZTYsIDB4YjViZmRmMTgpLAotICAgICAgICAgVE9CTigweGFiMmQ4YThiLCAweGEwY2MzZjEy
KSwgVE9CTigweDY4ZGQ0ODVkLCAweGJjNjcyYTI5KSwKLSAgICAgICAgIFRPQk4oMHg3MjAzOTc1
MiwgMHg1OTZmMmNkMyksIFRPQk4oMHg1ZDNlZWE2NywgMHhhMGNmM2Q4ZCksCi0gICAgICAgICBU
T0JOKDB4ODEwYTFhODEsIDB4ZTY2MDI2NzEpLCBUT0JOKDB4OGYxNDRhNDAsIDB4MTQwMjZjMGMp
LAotICAgICAgICAgVE9CTigweGJjNzUzYTZkLCAweDc2YjUwZjg1KSwgVE9CTigweGM0ZGMyMWU4
LCAweDY0NWNkNGE0KSwKLSAgICAgICAgIFRPQk4oMHhjNTI2MmRlYSwgMHg1MjFkMDM3OCksIFRP
Qk4oMHg4MDJiOGUwZSwgMHgwNTAxMWM2ZiksCi0gICAgICAgICBUT0JOKDB4MWJhMTljYmIsIDB4
MGI0YzE5ZWEpLCBUT0JOKDB4MjFkYjY0YjUsIDB4ZWJmMGFhZWMpLAotICAgICAgICAgVE9CTigw
eDFmMzk0ZWU5LCAweDcwMzQyZjlkKSwgVE9CTigweDkzYTEwYWVlLCAweDFiYzQ0YTE0KSwKLSAg
ICAgICAgIFRPQk4oMHhhN2VlZDMxYiwgMHgzZWZkMGJhYSksIFRPQk4oMHg2ZTdjODI0ZSwgMHgx
ZDE1NGU2NSksCi0gICAgICAgICBUT0JOKDB4ZWUyM2ZhODEsIDB4OTk2NmU3ZWUpLCBUT0JOKDB4
NjRlYzRhYTgsIDB4MDViNzkyMGQpLAotICAgICAgICAgVE9CTigweDJkNDQ0NjJkLCAweDJkOTBh
YWQ0KSwgVE9CTigweGY0NGRkMTk1LCAweGRmMjc3YWQ1KSwKLSAgICAgICAgIFRPQk4oMHg4ZDY0
NzFmMSwgMHhiYjQ2YjZhMSksIFRPQk4oMHgxZTY1ZDMxMywgMHhmZDg4NTA5MCksCi0gICAgICAg
ICBUT0JOKDB4MzNhODAwZjUsIDB4MTNhOTc3YjQpLCBUT0JOKDB4YWNhOWQ3MjEsIDB4MDc5N2Ux
ZWYpLAotICAgICAgICAgVE9CTigweDlhNWE4NWEwLCAweGZjZmY2YTE3KSwgVE9CTigweDk5NzBh
M2YzLCAweDFlY2E3Y2VlKSwKLSAgICAgICAgIFRPQk4oMHhiYjlmMGQ2YiwgMHhjOTUwNGJlMyks
IFRPQk4oMHhlMGM1MDRiZSwgMHhhZGQyNGVlMiksCi0gICAgICAgICBUT0JOKDB4N2UwOWQ5NTYs
IDB4NzdmY2MyZjQpLCBUT0JOKDB4ZWYxYTUyMjcsIDB4NjViYjVmYzQpLAotICAgICAgICAgVE9C
TigweDE0NWQ0ZmIxLCAweDhiOTI4NmFhKSwgVE9CTigweDY2ZmQwYzVkLCAweDY2NDkwMjhiKSwK
LSAgICAgICAgIFRPQk4oMHg5ODg1N2NlYiwgMHgxYmY0NTgxYyksIFRPQk4oMHhlNjM1ZTE4Niwg
MHhhY2E3YjE2NiksCi0gICAgICAgICBUT0JOKDB4Mjc4ZGRkMjIsIDB4NjU5NzIyYWMpLCBUT0JO
KDB4YTA5MDNjNGMsIDB4MWRiNjgwMDcpLAotICAgICAgICAgVE9CTigweDM2NmU0NTg5LCAweDQ4
ZjIxNDAyKSwgVE9CTigweDMxYjQ5YzE0LCAweGI5NmFiZGEyKSwKLSAgICAgICAgIFRPQk4oMHgz
MjljNGIwOSwgMHhlMDQwMzE5MCksIFRPQk4oMHg5NzE5N2NhMywgMHhkMjlmNDNmZSksCi0gICAg
ICAgICBUT0JOKDB4ODA3M2RkMWUsIDB4Mjc0OTgzZDgpLCBUT0JOKDB4ZGExYTNiZGUsIDB4NTU3
MTdjOGYpLAotICAgICAgICAgVE9CTigweGZkM2Q0ZGEyLCAweDAzNjFmOWQxKSwgVE9CTigweDEz
MzJkMDgxLCAweDRjN2RlMWNlKSwKLSAgICAgICAgIFRPQk4oMHg5YjdlZjdhMywgMHhhYTZkMGUx
MCksIFRPQk4oMHgxN2RiMmU3MywgMHhmNTRmMWM0YSksCi0gICAgICAgICBUT0JOKDB4YWYzZGZm
YWUsIDB4NGNkMzU1NjcpLCBUT0JOKDB4YWFhMmY0MDYsIDB4ZTU2ZjRlNzEpLAotICAgICAgICAg
VE9CTigweDg5NjY3NTllLCAweDdhY2UzZmM3KSwgVE9CTigweDk1OTRlYWNmLCAweDQ1YThkOGM2
KSwKLSAgICAgICAgIFRPQk4oMHg4ZGUzYmQ4YiwgMHg5MTgzNGUwZSksIFRPQk4oMHhhZmU0Y2E1
MywgMHg1NDhjMDQyMSksCi0gICAgICAgICBUT0JOKDB4ZmRkN2U4NTYsIDB4ZTZlZTgxYzYpLCBU
T0JOKDB4OGY2NzFiZWIsIDB4NmI4OTFhM2EpLAotICAgICAgICAgVE9CTigweGY3YTU4ZjJiLCAw
eGZhZTYzODI5KSwgVE9CTigweDlhYjE4NmZiLCAweDljMTFhYzlmKSwKLSAgICAgICAgIFRPQk4o
MHg4ZDZlYjM2OSwgMHgxMGI1YmU3NiksIFRPQk4oMHgwNDZiNzczOSwgMHhmYjA0MGJjZCksCi0g
ICAgICAgICBUT0JOKDB4Y2NiNDUyOWYsIDB4Y2I3M2RlODgpLCBUT0JOKDB4MWRmMGZlZmMsIDB4
Y2YyNmJlMDMpLAotICAgICAgICAgVE9CTigweGFkNzc1N2E2LCAweGJjZmNkMDI3KSwgVE9CTigw
eGE4Nzg2Yzc1LCAweGJiMzE2NWNhKSwKLSAgICAgICAgIFRPQk4oMHhlOWRiMWUzNCwgMHg3ZTk5
YTRkOSksIFRPQk4oMHg5OWVlODZkZiwgMHhiMDZjNTA0YiksCi0gICAgICAgICBUT0JOKDB4NWI3
YzJkZGQsIDB4YzE1YzlmMGEpLCBUT0JOKDB4ZGY4N2E3MzQsIDB4NDI5NTk4OWUpLAotICAgICAg
ICAgVE9CTigweDU5ZWNlNDdjLCAweDAzZDA4ZmRhKSwgVE9CTigweGIwNzRkM2RkLCAweGFkNWZj
NzAyKSwKLSAgICAgICAgIFRPQk4oMHgyMDQwNzkwMywgMHg1MWEwMzc3NiksIFRPQk4oMHgyYmIx
Zjc3YiwgMHgyYTYwODAwNyksCi0gICAgICAgICBUT0JOKDB4MjVjNThmNGYsIDB4ZTExNTMxODUp
LCBUT0JOKDB4ZTZkZjYyZjYsIDB4NzY2ZTY0NDcpLAotICAgICAgICAgVE9CTigweGVmYjNkMWJl
LCAweGVkNTEyNzVhKSwgVE9CTigweDVkZTQ3ZGM3LCAweDJmMGY0ODNmKSwKLSAgICAgICAgIFRP
Qk4oMHg3OTMyZDk4ZSwgMHg5N2MyYmVkZiksIFRPQk4oMHhkNWMxMTkyNywgMHgwMjE5ZjhhMSks
Ci0gICAgICAgICBUT0JOKDB4OWQ3NTEyMDAsIDB4YTczYTI5NGUpLCBUT0JOKDB4NWY4ODQzNGEs
IDB4OWRjMjAxNzIpLAotICAgICAgICAgVE9CTigweGQyOGQ5ZmQzLCAweGEyNmY1MDZhKSwgVE9C
TigweGE4OTBjZDMxLCAweDlkMWRjZDQ4KSwKLSAgICAgICAgIFRPQk4oMHgwYWViYWVjMSwgMHg3
MGY0ZDNiNCksIFRPQk4oMHhmZDFhMTM2OSwgMHgwZmZjOGQwMCksCi0gICAgICAgICBUT0JOKDB4
YjlkOWMyNDAsIDB4NTdkNTc4MzgpLCBUT0JOKDB4NDU5MjlkMjYsIDB4NjhiYWMzNjEpLAotICAg
ICAgICAgVE9CTigweDVhMmNkMDYwLCAweDI1YjE1Y2E2KSwgVE9CTigweDRiM2M4M2UxLCAweDZl
NDc0NDQ2KSwKLSAgICAgICAgIFRPQk4oMHgxYWFjNzU3OCwgMHhlZTFlNTEzNCksIFRPQk4oMHhh
NDE4ZjVkNiwgMHhjOTFlMmY0MSksCi0gICAgICAgICBUT0JOKDB4NjkzNmZjOGEsIDB4MjEzZWQ2
OGIpLCBUT0JOKDB4ODYwYWU3ZWQsIDB4NTEwYTUyMjQpLAotICAgICAgICAgVE9CTigweDYzNjYw
MzM1LCAweGRlZjA5YjUzKSwgVE9CTigweDY0MWIyODk3LCAweGNkNzljOThkKSwKLSAgICAgICAg
IFRPQk4oMHgyOWJkMzhlMSwgMHgwMTExMGYzNSksIFRPQk4oMHg3OWMyNmY0MiwgMHg2NDhiMTkz
NyksCi0gICAgICAgICBUT0JOKDB4NjRkYWU1MTksIDB4OWQ5MTY0ZjQpLCBUT0JOKDB4ZDg1YTIz
MTAsIDB4MDI2NWMyNzMpLAotICAgICAgICAgVE9CTigweDcxNzNkZDVkLCAweDRiMDdlMmIxKSwg
VE9CTigweGQxNDRjNGNiLCAweDhkOWVhMjIxKSwKLSAgICAgICAgIFRPQk4oMHhlOGIwNGVhNCwg
MHgxMTA1YWIxNCksIFRPQk4oMHg5MmRkYTU0MiwgMHhmZTgwZDhmMSksCi0gICAgICAgICBUT0JO
KDB4ZTk5ODJmYTgsIDB4Y2YwM2RjZTYpLCBUT0JOKDB4OGI1ZWE5NjUsIDB4MWEyMmNmZmMpLAot
ICAgICAgICAgVE9CTigweGY3ZjRlYTdmLCAweDNmYWQ4OGM0KSwgVE9CTigweDYyZGI3NzNlLCAw
eDZhNWJhOTVjKSwKLSAgICAgICAgIFRPQk4oMHhkMjBmMDJmYiwgMHg5M2YyNDU2NyksIFRPQk4o
MHhmZDQ2YzY5YSwgMHgzMTUyNTdjYSksCi0gICAgICAgICBUT0JOKDB4MGFjNzRjYzcsIDB4OGJj
YWI5ODcpLCBUT0JOKDB4NDZmMzFjMDEsIDB4NWNlY2EyZjUpLAotICAgICAgICAgVE9CTigweDQw
YWVkYjU5LCAweDg4OGIyMTllKSwgVE9CTigweGU1MGVjYzM3LCAweGUxZmNjZDAyKSwKLSAgICAg
ICAgIFRPQk4oMHgxYmNkOWRhZCwgMHg5MTFmODE2YyksIFRPQk4oMHg1ODNjYzFlYywgMHg4ZGI5
YjAwYyksCi0gICAgICAgICBUT0JOKDB4ZjNjZDJlNjYsIDB4YTQ4M2JmMTEpLCBUT0JOKDB4ZmEw
OGE2ZjUsIDB4YjFiMmMxNjkpLAotICAgICAgICAgVE9CTigweGYzNzVlMjQ1LCAweDRiZTlmYTI4
KSwgVE9CTigweDk5YTdmZmVjLCAweDViNmQwMTFmKSwKLSAgICAgICAgIFRPQk4oMHg2YTNlYmRk
YiwgMHhjNGFlNjJkYSksIFRPQk4oMHg2Y2VhMDBhZSwgMHgzNzRhZWY1ZCksCi0gICAgICAgICBU
T0JOKDB4YWI1ZmI5OGQsIDB4OWQ0ZDA1YmMpLCBUT0JOKDB4N2NiYTE0MjMsIDB4ZDU2MGYyNTIp
LAotICAgICAgICAgVE9CTigweDQ5YjJjYzIxLCAweDIwODQ5MGRlKSwgVE9CTigweDFjYTY2ZWMz
LCAweGJjZmIyODc5KSwKLSAgICAgICAgIFRPQk4oMHg3ZjExNjZiNywgMHgxYjZmYjE2ZiksIFRP
Qk4oMHhmZmY2M2UwOCwgMHg2NWZlNWRiMyksCi0gICAgICAgICBUT0JOKDB4YjgzNDVhYmUsIDB4
OGIyNjEwYmUpLCBUT0JOKDB4YjczMmVkODAsIDB4MzlkZTNkZjQpLAotICAgICAgICAgVE9CTigw
eDBlMjRlZDUwLCAweDIxMWMzMmI0KSwgVE9CTigweGQxMGQ4YTY5LCAweDg0OGZmMjdkKSwKLSAg
ICAgICAgIFRPQk4oMHhjMTA3NDM5OCwgMHhlZDRkZTI0OCksIFRPQk4oMHhkN2NlZGFjZSwgMHgx
MDQ4ODkyNyksCi0gICAgICAgICBUT0JOKDB4YTRhYTZiZjgsIDB4ODU2NzNlMTMpLCBUT0JOKDB4
YjQ2YmFlOTEsIDB4NmRhZjMwYWYpLAotICAgICAgICAgVE9CTigweDA3MDg4NDcyLCAweGZjZWY3
YWQ4KSwgVE9CTigweDYxMTUxNjA4LCAweGQ0YjM1ZTk3KSwKLSAgICAgICAgIFRPQk4oMHhiY2Zl
OGYyNiwgMHhkZGUyOTk4NiksIFRPQk4oMHhlYjg0YzRjNywgMHhkNWEzNGM3OSksCi0gICAgICAg
ICBUT0JOKDB4YzFlZWM1NWMsIDB4MTY0ZTEyMTQpLCBUT0JOKDB4ODkxYmU4NmQsIDB4YTE0N2Ji
MDMpLAotICAgICAgICAgVE9CTigweDlmYWI0ZDEwLCAweDBiYTk2ODM1KSwgVE9CTigweGJmMDFl
OWI4LCAweGE1YzFhZTlmKSwKLSAgICAgICAgIFRPQk4oMHg2YjRkZTEzOSwgMHhiMTg2ZWJjMCks
IFRPQk4oMHhkNWM3NGMyNiwgMHg4NWI5MWJjYSksCi0gICAgICAgICBUT0JOKDB4NTA4NmE5OWMs
IDB4YzJkOTM4NTQpLCBUT0JOKDB4ZWVkNjJhN2IsIDB4YTdhOWRmYmMpLAotICAgICAgICAgVE9C
TigweDg3NzhlZDZmLCAweDc2Yjc2MThhKSwgVE9CTigweGJmZjc1MGE1LCAweDAzYjY2MDYyKSwK
LSAgICAgICAgIFRPQk4oMHg0Y2I3YmUyMiwgMHhiNjUxODZkYiksIFRPQk4oMHgzNjlkZmJmMCwg
MHhjYzNhNmQxMyksCi0gICAgICAgICBUT0JOKDB4YzdkYWIyNmMsIDB4NzE5MWEzMjEpLCBUT0JO
KDB4OWVkYWMzZjksIDB4NDBlZDcxOGUpLAotICAgICAgICAgVE9CTigweGJjMTQyYjM2LCAweGQw
Y2ZkMTgzKSwgVE9CTigweGM4YWY4MmY2LCAweDdjOTkxNjkzKSwKLSAgICAgICAgIFRPQk4oMHhi
M2QxZTRkOCwgMHg5N2NlMGIyYSksIFRPQk4oMHhlNmQ3Yzg3ZiwgMHhjM2E1NWNkZiksCi0gICAg
ICAgICBUT0JOKDB4MzU4NDZiOTUsIDB4NjhiODFhZmUpLCBUT0JOKDB4MDE4ZDEyYWYsIDB4ZDNj
MjM5ZDgpLAotICAgICAgICAgVE9CTigweDJiMmM2MjA4LCAweDAxMjA2ZTE1KSwgVE9CTigweGUw
ZTQyNDUzLCAweGEzYjg4MmM2KSwKLSAgICAgICAgIFRPQk4oMHg4NTQ0NzBhMywgMHhhNTAxNjJk
NSksIFRPQk4oMHgwODE1NzQ3OCwgMHg3MDE3YTYyYSksCi0gICAgICAgICBUT0JOKDB4MThiZDNm
YjQsIDB4ODIwMzU3YzcpLCBUT0JOKDB4OTkyMDM5YWUsIDB4NmYxNDU4YWQpLAotICAgICAgICAg
VE9CTigweDlhMWRmM2M1LCAweDI1YjQ0YWExKSwgVE9CTigweDJkNzgwMzU3LCAweGVkM2Q1Mjgx
KSwKLSAgICAgICAgIFRPQk4oMHg1OGNmN2U0ZCwgMHhjNzdhZDRkNCksIFRPQk4oMHhkNDlhNzk5
OCwgMHhmOWRmNGZjNCksCi0gICAgICAgICBUT0JOKDB4NDQ2NWE4YjUsIDB4MWQ3MTIwNWUpLCBU
T0JOKDB4YTBlZTBlYTYsIDB4NjQ5MjU0YWEpLAotICAgICAgICAgVE9CTigweDRiNWVlZWNmLCAw
eGFiN2JkNzcxKSwgVE9CTigweDZjODczMDczLCAweDM1YzI2MmI5KSwKLSAgICAgICAgIFRPQk4o
MHhkYzViZDY0OCwgMHgzYzlkNjFlNyksIFRPQk4oMHgyMzNkNmQ1NCwgMHgzMjE0NjBkMiksCi0g
ICAgICAgICBUT0JOKDB4ZDIwYzU2MjYsIDB4ZmMxOTViY2MpLCBUT0JOKDB4MjU0NDU5NTgsIDB4
MDRkNzhiNjMpLAotICAgICAgICAgVE9CTigweGUwM2ZjYjNkLCAweDE3ZWM4ZWYzKSwgVE9CTigw
eDU0YjY5MGQxLCAweDQ2YjhmNzgxKSwKLSAgICAgICAgIFRPQk4oMHg4MmZhMmM4YSwgMHgyMTIz
MDY0NiksIFRPQk4oMHhmNTFhYWJiOSwgMHgwODRmNDE4YyksCi0gICAgICAgICBUT0JOKDB4ZmY0
ZmJlYzEsIDB4MWEzMGJhNDMpLCBUT0JOKDB4NmE1YWNmNzMsIDB4NzQzYzlkZjcpLAotICAgICAg
ICAgVE9CTigweDFkYTJiMzU3LCAweGQ2MzViNGQ1KSwgVE9CTigweGMzZGU2OGRkLCAweGVjZDVj
MWRhKSwKLSAgICAgICAgIFRPQk4oMHhhNjg5MDgwYiwgMHhkNjFhZjBkZCksIFRPQk4oMHhkZWE1
OTM4YSwgMHhkNjY1YmY5OSksCi0gICAgICAgICBUT0JOKDB4MDIzMWQ3MWEsIDB4ZmU2MzcyOTQp
LCBUT0JOKDB4MDE5NjhhYTYsIDB4YTVhODFjZDgpLAotICAgICAgICAgVE9CTigweDExMjUyZDUw
LCAweDA0OGU2M2I1KSwgVE9CTigweGM0NDZiYzUyLCAweDZjYTAwN2U5KSwKLSAgICAgICAgIFRP
Qk4oMHhlZjhjNTBhNiwgMHg5NmQ2MTM0YiksIFRPQk4oMHg5MzYxZmJmNSwgMHg5ZTA5YTA1Yyks
Ci0gICAgICAgICBUT0JOKDB4ZjE3Zjg1YTYsIDB4ZGNhMzI5MWEpLCBUT0JOKDB4YjE3OGQ1NDgs
IDB4ZmYyNTFhMjEpLAotICAgICAgICAgVE9CTigweDg3ZjYzNzRiLCAweGE0ZGYzOTE1KSwgVE9C
TigweDU2NmNlMWJmLCAweDJmZDVkNjA4KSwKLSAgICAgICAgIFRPQk4oMHg0MjVjYmE0ZCwgMHg3
ZGUzNTEwMiksIFRPQk4oMHg2Yjc0NWY4ZiwgMHg1OGM1ZDVlMiksCi0gICAgICAgICBUT0JOKDB4
ODg0MDJhZjYsIDB4NjMxMjJlZGYpLCBUT0JOKDB4MzE5MGY5ZWQsIDB4M2I5ODlhODkpLAotICAg
ICAgICAgVE9CTigweDRhZDNkMzg3LCAweGViYmEzMTU2KSwgVE9CTigweGVmMzg1YWQ5LCAweGM3
YzQ2OWE1KSwKLSAgICAgICAgIFRPQk4oMHhiMDgyODFkZSwgMHgzZjY0MmMyOSksIFRPQk4oMHgy
MGJlMDg4OCwgMHg5MTBmZmI4OCksCi0gICAgICAgICBUT0JOKDB4ZjM1M2RkNGEsIDB4ZDUyOTI1
NDYpLCBUT0JOKDB4M2YxNjI3ZGUsIDB4ODM3N2EyNjIpLAotICAgICAgICAgVE9CTigweGE1ZmFh
MDEzLCAweGVlZmNkNjM4KSwgVE9CTigweDhmM2JmNjI2LCAweDc0Y2M3N2MzKSwKLSAgICAgICAg
IFRPQk4oMHgzMjYxOGY2NSwgMHhhMzQ4ZjU1ZSksIFRPQk4oMHg1Nzg3YzBkYywgMHg5ZmVmZWI5
ZSksCi0gICAgICAgICBUT0JOKDB4ZjE2NzNhYTIsIDB4ZDlhMjNlNDQpLCBUT0JOKDB4ODhkZmE5
OTMsIDB4NGUxMDY5MGQpLAotICAgICAgICAgVE9CTigweDFjZWQxYjM2LCAweDJiZjkxMTA4KSwg
VE9CTigweDkxOTNjZWNhLCAweDNhZjQ4NjQ5KSwKLSAgICAgICAgIFRPQk4oMHhmYjM0MzI3ZCwg
MHgyZDczOGZjNSksIFRPQk4oMHg2Njk3YjAzNywgMHg5NzVmZWU2YyksCi0gICAgICAgICBUT0JO
KDB4MmY0ODVkYTAsIDB4YzA0MDc5YTUpLCBUT0JOKDB4MmNkZjU3MzUsIDB4MmZlYWExYWMpLAot
ICAgICAgICAgVE9CTigweDc2OTQ0NDIwLCAweGJkNTU2NTllKSwgVE9CTigweDc5NzNlMzJiLCAw
eDQzNzYwOTBjKSwKLSAgICAgICAgIFRPQk4oMHg4NmJiNGZlMSwgMHgxNjNiNTkxYSksIFRPQk4o
MHgxMDQ0MWFlZCwgMHhjMTk2ZjBjYSksCi0gICAgICAgICBUT0JOKDB4M2I0MzFmNGEsIDB4MDQ1
YWQ5MTUpLCBUT0JOKDB4NmMxMWI0MzcsIDB4YTRhZmFjYjEpLAotICAgICAgICAgVE9CTigweDMw
YjBjN2RiLCAweDcxZmRiYmQ4KSwgVE9CTigweGI2NDI5MzFmLCAweGVkYTY1YWNkKSwKLSAgICAg
ICAgIFRPQk4oMHg0YmFhZTZlOCwgMHg5YzkyYjIzNSksIFRPQk4oMHhhNzNiYmQwZSwgMHg2YjM5
OTNhMSksCi0gICAgICAgICBUT0JOKDB4ZDA2ZDYwZWMsIDB4NjkzZGQwMzEpLCBUT0JOKDB4MDNj
YWI5MWIsIDB4NzE1Njg4MWMpLAotICAgICAgICAgVE9CTigweGQ2MTU4NjJmLCAweDFkYjM1NzRi
KSwgVE9CTigweDQ4NWIwMTg1LCAweDY0YmIwNjFhKSwKLSAgICAgICAgIFRPQk4oMHgyNzQzNDk4
OCwgMHhhMDE4MWUwNiksIFRPQk4oMHgyY2Q2MWFkNCwgMHhjMWMwYzc1NyksCi0gICAgICAgICBU
T0JOKDB4M2VmZmVkNWEsIDB4MmZmOWY0MDMpLCBUT0JOKDB4OGRjOThkOGIsIDB4NjIyMzkwMjkp
LAotICAgICAgICAgVE9CTigweDIyMDYwMjFlLCAweDFmMTdiNzBkKSwgVE9CTigweGFmYmVjMGNh
LCAweGJmNTEwMDE1KSwKLSAgICAgICAgIFRPQk4oMHg5ZmVkNzE2NCwgMHg4MDEzMGRmYSksIFRP
Qk4oMHgzMDZkYzJiNSwgMHg4YTAyZGNmNSksCi0gICAgICAgICBUT0JOKDB4NDhmMDY2MjAsIDB4
ZmViMTBmYzApLCBUT0JOKDB4NzhkMWUxZDUsIDB4NWE1N2NmNTEpLAotICAgICAgICAgVE9CTigw
eGFkZWY4YzVhLCAweDE5MmVmNzEwKSwgVE9CTigweDg4YWZiZDRiLCAweDNiNzQzMWY5KSwKLSAg
ICAgICAgIFRPQk4oMHg3ZTFmNzQwNywgMHg2NDI1MGM5ZSksIFRPQk4oMHg2ZTMxMzE4ZCwgMHhi
NThiZWMwNyksCi0gICAgICAgICBUT0JOKDB4ZmQ0ZmM0YjgsIDB4MjRmODliNGUpLCBUT0JOKDB4
NjVhNWRkODgsIDB4NDhjMzZhMmEpLAotICAgICAgICAgVE9CTigweDRmMWVjY2ZmLCAweGYwMjRi
YWE3KSwgVE9CTigweDIyYTIxY2YyLCAweGNiYTk0NjUwKSwKLSAgICAgICAgIFRPQk4oMHg5NWQy
OWRlZSwgMHg0MmE1NTRmNyksIFRPQk4oMHg4Mjg5ODNhNSwgMHgwMDJlYzRiYSksCi0gICAgICAg
ICBUT0JOKDB4ODExMmExZjcsIDB4OGJhZGI3M2QpLCBUT0JOKDB4NzllYTg4OTcsIDB4YTI3YzE4
MzkpLAotICAgICAgICAgVE9CTigweDg5NjlhNWE3LCAweGQwNjVmZDgzKSwgVE9CTigweGY0OWFm
NzkxLCAweGIyNjJhMGJjKSwKLSAgICAgICAgIFRPQk4oMHhmY2RlYThiNiwgMHhhZjJiNTEyNyks
IFRPQk4oMHgxMGU5MTNlMSwgMHg1NjRjMmRiYyksCi0gICAgICAgICBUT0JOKDB4NTEyMzlkMTQs
IDB4YmMyMWVmNTEpLCBUT0JOKDB4ZTUxYzNjZWIsIDB4NGNlNTcyOTIpLAotICAgICAgICAgVE9C
TigweDc5NWZmMDY4LCAweDQ3YmJjYzNiKSwgVE9CTigweDg2YjQ2ZTFlLCAweGJkN2UxMWU2KSwK
LSAgICAgICAgIFRPQk4oMHgwZWE2YmEyMywgMHg4MDA0MWVmNCksIFRPQk4oMHhkNzJmZTUwNSwg
MHg2MjYyMzQyZSksCi0gICAgICAgICBUT0JOKDB4OGFiYzZkZmQsIDB4MzFkMjk0ZDQpLCBUT0JO
KDB4YmJlMDE3YTIsIDB4MTI3OGMyYzkpLAotICAgICAgICAgVE9CTigweGIxZmNmYTA5LCAweGIz
ODkzMjhhKSwgVE9CTigweDMyMmZiYzYyLCAweGQwMTc3MWI1KSwKLSAgICAgICAgIFRPQk4oMHgw
NGMwZDA2MywgMHg2MGIwNDViZiksIFRPQk4oMHhkYjY1MmVkYywgMHgxMGU1MmQwMSksCi0gICAg
ICAgICBUT0JOKDB4NTBlZjkzMmMsIDB4MDNlYzY2MjcpLCBUT0JOKDB4ZGUxYjNiMmQsIDB4YzFl
ZTUwZTMpLAotICAgICAgICAgVE9CTigweDVhYjdiZGM1LCAweGRjMzdhOTBkKSwgVE9CTigweGZl
YTY3MjEzLCAweDMxZTMzYTk2KSwKLSAgICAgICAgIFRPQk4oMHg2NDgyYjVjYiwgMHg0ZjI5OTlh
YSksIFRPQk4oMHgzODQ3NmNjNiwgMHhiOGNiZjBkZCksCi0gICAgICAgICBUT0JOKDB4OTNlYmZh
Y2IsIDB4MTczNDA1YmIpLCBUT0JOKDB4MTVjZGFmZTcsIDB4ZTUyMzY5ZWMpLAotICAgICAgICAg
VE9CTigweGQ0MmQ1YmE0LCAweGQ5MzViN2RiKSwgVE9CTigweDY0OGI2MDA0LCAweDFjOTlhNGNk
KSwKLSAgICAgICAgIFRPQk4oMHg3ODUxMDFiZCwgMHhhM2I1NTQ1YiksIFRPQk4oMHg0YmYyYzM4
YSwgMHg5ZGQ2N2ZhZiksCi0gICAgICAgICBUT0JOKDB4YjFhYWRjNjMsIDB4NDQ0MjQ0OWMpLCBU
T0JOKDB4ZTBlOTkyMWEsIDB4MzNhZDRmYjgpLAotICAgICAgICAgVE9CTigweDVjNTUyMzEzLCAw
eGFhNjg2ZDgyKSwgVE9CTigweGRlZTYzNWZhLCAweDQ2NWQ4NjZjKSwKLSAgICAgICAgIFRPQk4o
MHhiYzNjMjI0YSwgMHgxOGVlNmU4YSksIFRPQk4oMHhlZWQ3NDhhNiwgMHhlZDQyZTAyZiksCi0g
ICAgICAgICBUT0JOKDB4ZTcwZjkzMGEsIDB4ZDQ3NGNkMDgpLCBUT0JOKDB4Nzc0ZWE2ZWMsIDB4
ZmZmMjRhZGYpLAotICAgICAgICAgVE9CTigweDAzZTJkZTFjLCAweGYzNDgwZDRhKSwgVE9CTigw
eGYwZDhlZGM3LCAweGJjOGFjZjFhKSwKLSAgICAgICAgIFRPQk4oMHhmMjNlMzMwMywgMHg2ODI5
NWE5YyksIFRPQk4oMHhmYWRkNWY2OCwgMHhjNTQ2YTk3ZCksCi0gICAgICAgICBUT0JOKDB4ODk1
NTk3YWQsIDB4OTZmOGFjYjEpLCBUT0JOKDB4YmRkZDQ5ZDUsIDB4NjcxYmRhZTIpLAotICAgICAg
ICAgVE9CTigweDE2ZmNkNTI4LCAweDIxZGQ0M2Y0KSwgVE9CTigweGE1YTQ1NDEyLCAweDY2MTkx
NDFhKX0sCi0gICAgICAgIHtUT0JOKDB4OGNlOWI2YmYsIDB4YzM2MGUyNWEpLCBUT0JOKDB4ZTY0
MjUxOTUsIDB4MDc1YTFhNzgpLAotICAgICAgICAgVE9CTigweDlkYzc1NmE4LCAweDQ4MTczMmY0
KSwgVE9CTigweDgzYzA0NDBmLCAweDU0MzJiNTdhKSwKLSAgICAgICAgIFRPQk4oMHhjNjcwYjNm
MSwgMHhkNzIwMjgxZiksIFRPQk4oMHgyMjA1OTEwZSwgMHhkMTM1ZTA1MSksCi0gICAgICAgICBU
T0JOKDB4ZGVkMTRiMGUsIDB4ZGIwNTJiZTcpLCBUT0JOKDB4Njk3YjNkMjcsIDB4YzU2OGVhMzkp
LAotICAgICAgICAgVE9CTigweDJlNTk5YjlhLCAweGZiM2ZmOWVkKSwgVE9CTigweDI4YzJlMGFi
LCAweDE3ZjY1MTVjKSwKLSAgICAgICAgIFRPQk4oMHgxY2JlZTRmZCwgMHg0NzRkYTQ0OSksIFRP
Qk4oMHgwNzEyNzlhNCwgMHg0ZjM2NDQ1MiksCi0gICAgICAgICBUT0JOKDB4OTdhYmZmNjYsIDB4
MDFmYmU4NTUpLCBUT0JOKDB4M2VlMzk0ZTgsIDB4NWZkYTUxYzQpLAotICAgICAgICAgVE9CTigw
eDE5MDM4NWY2LCAweDY3NTk3YzBiKSwgVE9CTigweDZlOWZjY2M2LCAweGEyN2VlMzRiKSwKLSAg
ICAgICAgIFRPQk4oMHgwYjg5ZGU5MywgMHgxNDA5MmViYiksIFRPQk4oMHhmMTcyNTZiZCwgMHg0
MjhlMjQwYyksCi0gICAgICAgICBUT0JOKDB4Y2Y4OWE3ZjMsIDB4OTNkMmYwNjQpLCBUT0JOKDB4
NGY1Nzg0MWUsIDB4ZTFlZDNiMTQpLAotICAgICAgICAgVE9CTigweDRlZTE0NDA1LCAweGU3MDhk
ODU1KSwgVE9CTigweDg1NmFhZTcyLCAweDAzZjFjM2QwKSwKLSAgICAgICAgIFRPQk4oMHhjOGU1
NDI0ZiwgMHhiZGQ3ZWVkNSksIFRPQk4oMHgzMzMzZTRlZiwgMHg3M2FiNDI3MCksCi0gICAgICAg
ICBUT0JOKDB4M2JjNzdhZGUsIDB4ZGRhNDkyZjgpLCBUT0JOKDB4YzExYTNhZWEsIDB4NzgyOTcy
MDUpLAotICAgICAgICAgVE9CTigweDVlODlhM2U3LCAweDM0OTMxYjRjKSwgVE9CTigweDE3NTEy
ZTJlLCAweDlmNTY5NGJiKSwKLSAgICAgICAgIFRPQk4oMHg1ZGMzNDlmMywgMHgxNzdiZjhiNiks
IFRPQk4oMHgyMzJlYTRiYSwgMHgwOGM3ZmYzZSksCi0gICAgICAgICBUT0JOKDB4OWM0ZjlkMTYs
IDB4ZjUxMTE0NWQpLCBUT0JOKDB4Y2NmMTA5YTMsIDB4MzNiMzc5YzMpLAotICAgICAgICAgVE9C
TigweGU3NWU3YTg4LCAweGExZjI1ODk3KSwgVE9CTigweDdhYzY5NjFmLCAweGExYjVkNGQ4KSwK
LSAgICAgICAgIFRPQk4oMHhlM2UxMDc3MywgMHgwOGYzZWQ1YyksIFRPQk4oMHgyMDhhNTRlYywg
MHgwYTg5MmRmYiksCi0gICAgICAgICBUT0JOKDB4YmU4MjZlMTksIDB4Nzg2NjA3MTApLCBUT0JO
KDB4MGNmNzBhOTcsIDB4MjM3ZGYyYzgpLAotICAgICAgICAgVE9CTigweDQxOGE3MzQwLCAweGVk
NzA0ZGE1KSwgVE9CTigweGEzZWViOWE5LCAweDA4Y2EzM2ZkKSwKLSAgICAgICAgIFRPQk4oMHg0
OWQ5NjIzMywgMHgxNjliY2E5NiksIFRPQk4oMHgwNGQyODZkNCwgMHgyZGE2YWFmYiksCi0gICAg
ICAgICBUT0JOKDB4YzA5NjA2ZWMsIDB4YTBjMmZhOTQpLCBUT0JOKDB4ODg2OWQwZDUsIDB4MjNm
ZjBmYjMpLAotICAgICAgICAgVE9CTigweGE5OTkzN2U1LCAweGQwMTUwZDY1KSwgVE9CTigweGE5
MmUyNTAzLCAweDI0MGMxNGM5KSwKLSAgICAgICAgIFRPQk4oMHg2NTZiZjk0NSwgMHgxMDhlMmQ0
OSksIFRPQk4oMHgxNTJhNzMzYSwgMHhhMmY1OWUyYiksCi0gICAgICAgICBUT0JOKDB4YjQzMjNk
NTgsIDB4ODQzNGE5MjApLCBUT0JOKDB4YzBhZjhlOTMsIDB4NjIyMTAzYzUpLAotICAgICAgICAg
VE9CTigweDY2NzUxOGVmLCAweDkzOGRiZjlhKSwgVE9CTigweGExODQzMDczLCAweDgzYTljZGYy
KSwKLSAgICAgICAgIFRPQk4oMHgzNTBhOTRhYSwgMHg1NDQ3YWI4MCksIFRPQk4oMHhlNWU1YTMy
NSwgMHhjNzVhM2Q2MSksCi0gICAgICAgICBUT0JOKDB4NzRiYTUwN2YsIDB4Njg0MTFhOWUpLCBU
T0JOKDB4MTA1ODFmYzEsIDB4NTk0ZjcwYzUpLAotICAgICAgICAgVE9CTigweDYwZTI4NTcwLCAw
eDgwZWIyNGE5KSwgVE9CTigweDdiZWRmYjRkLCAweDQ4OGUwY2ZkKSwKLSAgICAgICAgIFRPQk4o
MHg3MjFlYmJkNywgMHhjMjU5Y2RiOCksIFRPQk4oMHgwYjBkYTg1NSwgMHhiYzYzOTBhOSksCi0g
ICAgICAgICBUT0JOKDB4MmI0ZDA0ZGIsIDB4ZGUzMTRjNzApLCBUT0JOKDB4Y2RiZjFmYmMsIDB4
NmMzMmU4NDYpLAotICAgICAgICAgVE9CTigweDMzODMzZWFiLCAweGIxNjJmYzllKSwgVE9CTigw
eDk5MzliNDhiLCAweGIwZGQzYWI3KSwKLSAgICAgICAgIFRPQk4oMHg1YWFhOThhNywgMHhjYjBj
OWM4YyksIFRPQk4oMHg3NTEwNWYzMCwgMHg4MWM0Mzc1YyksCi0gICAgICAgICBUT0JOKDB4Y2Vl
ZTUwNTcsIDB4NWVmMWM5MGYpLCBUT0JOKDB4YjMxZTA2NWYsIDB4YzIzYTE3YmYpLAotICAgICAg
ICAgVE9CTigweDUzNjRkMjc1LCAweGQ0YjZkNDVhKSwgVE9CTigweGQzNjNmM2FkLCAweDYyZWM4
OTk2KSwKLSAgICAgICAgIFRPQk4oMHhiNWQyMTIzOSwgMHg0MzkxYzY1YiksIFRPQk4oMHg4NDU2
NDc2NSwgMHhlYmI0MWI0NyksCi0gICAgICAgICBUT0JOKDB4MjBkMThlY2MsIDB4MzcxMDdjNzgp
LCBUT0JOKDB4YWNmZjNiNmIsIDB4NTcwYzJhNjYpLAotICAgICAgICAgVE9CTigweDIyZjk3NWQ5
LCAweDliZDBkODQ1KSwgVE9CTigweGVmMGEwYzQ2LCAweGJhMTc4ZmEwKSwKLSAgICAgICAgIFRP
Qk4oMHgxYTQxOTY1MSwgMHg3NmI2MDI4ZSksIFRPQk4oMHhjNDllYzY3NCwgMHgyNDg2MTJkNCks
Ci0gICAgICAgICBUT0JOKDB4NWI2YWM0ZjIsIDB4NzMzOGFmNTUpLCBUT0JOKDB4MDYxNDVlNjIs
IDB4N2JlZTVhMzYpLAotICAgICAgICAgVE9CTigweDMzZTk1ZDA3LCAweGU3NTc0NmI1KSwgVE9C
TigweDFjMWUxZjZkLCAweGM0MGM3OGJlKSwKLSAgICAgICAgIFRPQk4oMHg5Njc4MzNlZiwgMHgy
MjJmZjhlMiksIFRPQk4oMHg0YmVkY2Y2YSwgMHhiNDkxODBhZCksCi0gICAgICAgICBUT0JOKDB4
NmIzN2U5YzEsIDB4M2Q3YTRjOGEpLCBUT0JOKDB4Mjc0ODg4N2MsIDB4NmRkZmU3NjApLAotICAg
ICAgICAgVE9CTigweGY3MDU1MTIzLCAweGFhM2E1YmJjKSwgVE9CTigweDk1NGZmMjI1LCAweDdi
YmI4ZTc0KSwKLSAgICAgICAgIFRPQk4oMHhjNDJiOGFiMSwgMHg5N2MzZGZiOSksIFRPQk4oMHg1
NWE1NDliMCwgMHhjZjE2ODE1NCksCi0gICAgICAgICBUT0JOKDB4YWQ2NzQ4ZTcsIDB4YzFiNTA2
OTIpLCBUT0JOKDB4Mjc3NTc4MGYsIDB4NmZjNWNiY2IpLAotICAgICAgICAgVE9CTigweDRlYWI4
MGI4LCAweGUxYzlkN2M4KSwgVE9CTigweDhjNjlkYWUxLCAweDNmZGJjZDU2KSwKLSAgICAgICAg
IFRPQk4oMHg0N2U2YjRmYiwgMHg5OTY5ZWFjZSksIFRPQk4oMHgwMDJmMTA4NSwgMHhhNzA1Y2I1
YSksCi0gICAgICAgICBUT0JOKDB4NGUyM2NhNDQsIDB4NmQzZmVhNTUpLCBUT0JOKDB4YjRhZTlj
ODYsIDB4ZjQ4MTA1NjgpLAotICAgICAgICAgVE9CTigweDQ3YmZiOTFiLCAweDJhNjJmMjdkKSwg
VE9CTigweDYwZGViNGM5LCAweGQ5YmFjMjhjKSwKLSAgICAgICAgIFRPQk4oMHhhODkyZDg5NCwg
MHg3ZGU2YzM0YyksIFRPQk4oMHg0ZWU2ODI1OSwgMHg0NDk0NTg3ZCksCi0gICAgICAgICBUT0JO
KDB4OTE0ZWUxNGUsIDB4MWEzZjhhNWIpLCBUT0JOKDB4YmIxMTNlYWEsIDB4Mjg3MDAzODUpLAot
ICAgICAgICAgVE9CTigweDgxY2EwM2I5LCAweDIxMTViNGM5KSwgVE9CTigweDdjMTYzZDM4LCAw
eDg5MDhjYWQxKSwKLSAgICAgICAgIFRPQk4oMHhjOTEyYTExOCwgMHhhYTE4MTc5YSksIFRPQk4o
MHhlMDllZDc1MCwgMHg4ODZlMzA4MSksCi0gICAgICAgICBUT0JOKDB4YTY3NmUzZmEsIDB4MjZm
NTE2Y2EpLCBUT0JOKDB4NzUzY2FjZjcsIDB4OGU3MzJmOTEpLAotICAgICAgICAgVE9CTigweDUx
NTkyYWVhLCAweDgzM2RhOGI0KSwgVE9CTigweGM2MjZmNDJmLCAweDRjYmVhOGFhKSwKLSAgICAg
ICAgIFRPQk4oMHhlZjlkYzg5OSwgMHhhN2I1NmVhZiksIFRPQk4oMHgwMGMwZTUyYywgMHgzNGVm
NzMxNiksCi0gICAgICAgICBUT0JOKDB4NWIxZTRlMjQsIDB4ZmU4MThhODYpLCBUT0JOKDB4OWQz
MWUyMGQsIDB4YzUzOGJlNDcpLAotICAgICAgICAgVE9CTigweDIyZWI5MzJkLCAweDNlZDY4OTc0
KSwgVE9CTigweGU0NGJiYzA4LCAweDdjNGU4N2M0KSwKLSAgICAgICAgIFRPQk4oMHg0MTIxMDg2
ZSwgMHgwZGRlOWFlZiksIFRPQk4oMHg4ZTZiOWNmZiwgMHgxMzRmNDM0NSksCi0gICAgICAgICBU
T0JOKDB4OTY4OTJjMWYsIDB4NzExYjBlYjkpLCBUT0JOKDB4YjkwNWYyYzgsIDB4NzgwYWI5NTQp
LAotICAgICAgICAgVE9CTigweGFjZTI2MzA5LCAweGEyMDc5MmRiKSwgVE9CTigweGVjOGFjOWIz
LCAweDA2ODRlMTI2KSwKLSAgICAgICAgIFRPQk4oMHg0ODZhZDhiNiwgMHhiNDBhMjQ0NyksIFRP
Qk4oMHg2MDEyMWZjMSwgMHg5ZmUzZmIyNCksCi0gICAgICAgICBUT0JOKDB4NTYyNmZjY2YsIDB4
MWE4ZTNiM2YpLCBUT0JOKDB4NGU1Njg2MjIsIDB4NmFkMWYzOTQpLAotICAgICAgICAgVE9CTigw
eGRhN2FhZTBkLCAweDE5NmFhNWExKSwgVE9CTigweGUwZGY4Yzc3LCAweDEwNDFiNWZiKSwKLSAg
ICAgICAgIFRPQk4oMHg0NTE0NjVkOSwgMHgyNmIzMThiNyksIFRPQk4oMHhjMjliNmU1NSwgMHg3
YWIxMzZlOSksCi0gICAgICAgICBUT0JOKDB4MmMyYWI0OGIsIDB4NzExNDg0NjMpLCBUT0JOKDB4
YjU3MzhkZTMsIDB4NjQ0NTRhNzYpLAotICAgICAgICAgVE9CTigweDU0Y2NmOWEwLCAweDVhMDNh
YmU0KSwgVE9CTigweDM3N2MwMjk2LCAweDA0MjdkNThlKSwKLSAgICAgICAgIFRPQk4oMHg3M2Y1
ZjBiOSwgMHgyYmIzOWMxZiksIFRPQk4oMHgxNDM3M2YyYywgMHhlNjA4ZDhjNSksCi0gICAgICAg
ICBUT0JOKDB4ZGNiZmQzMTQsIDB4MDBmYmI4MDUpLCBUT0JOKDB4ZGYxOGZiMjAsIDB4ODNhZmRj
ZmIpLAotICAgICAgICAgVE9CTigweDgxYTU3ZjQyLCAweDQyYjM1MjNmKSwgVE9CTigweGU5NTg1
MzJkLCAweDg3ZjY1MGZiKSwKLSAgICAgICAgIFRPQk4oMHhhYThkYzhiNiwgMHg4YjBhN2Q3Yyks
IFRPQk4oMHgxYjc1ZGZiNywgMHgxNTAxNjZiZSksCi0gICAgICAgICBUT0JOKDB4OTBlNGY3Yzks
IDB4MmQ3ZDE0MTMpLCBUT0JOKDB4NjdlMmQ2YjUsIDB4OTgzNGY1OTcpLAotICAgICAgICAgVE9C
TigweDRmZDRmNGY5LCAweGE4MDhjM2U4KSwgVE9CTigweGFmODIzN2UwLCAweGQ1MjgxZWMxKSwK
LSAgICAgICAgIFRPQk4oMHgyNWFiNWZkYywgMHg4NDY4N2NlZSksIFRPQk4oMHhjNWRlZDZiMSwg
MHhhNWIyNmMwOSksCi0gICAgICAgICBUT0JOKDB4OGU0YTVhZWMsIDB4YzhlYTc2NTApLCBUT0JO
KDB4MjNiNzNlNWMsIDB4MTRjYzQxN2YpLAotICAgICAgICAgVE9CTigweDJiZmI0MzE4LCAweDMw
MzdiZjUyKSwgVE9CTigweGI2MWU2ZGI1LCAweDc4YzcyNWQ3KSwKLSAgICAgICAgIFRPQk4oMHg4
ZWZkNDA2MCwgMHhiYmIzZTVkNyksIFRPQk4oMHgyZTAxNDcwMSwgMHhkYmFjNDg4ZSksCi0gICAg
ICAgICBUT0JOKDB4YWM3NWNmOWEsIDB4MzYwYWE0NDkpLCBUT0JOKDB4YjcwY2ZkMDUsIDB4Nzk2
MzRkMDgpLAotICAgICAgICAgVE9CTigweGE1OTE1MzZkLCAweGZmZmIxNWVmKSwgVE9CTigweGIy
YzM3NTgyLCAweGQwN2MxMDZjKSwKLSAgICAgICAgIFRPQk4oMHhiNDI5M2ZkYywgMHhmNTAyMjVm
OSksIFRPQk4oMHhjNTJlMTc1YywgMHhiMGUxMmIwMyksCi0gICAgICAgICBUT0JOKDB4ZjY0OWMz
YmEsIDB4ZDBhOGJmNjQpLCBUT0JOKDB4NzQ1YThmZWYsIDB4ZWI4YWUzYzYpLAotICAgICAgICAg
VE9CTigweDMwZDdlNWEzLCAweDU4MzIxYmMzKSwgVE9CTigweGIxNzMyYmU3LCAweDBiYzRkZjQ4
KSwKLSAgICAgICAgIFRPQk4oMHgxZjIxNzk5MywgMHhlOWVhNTA1OCksIFRPQk4oMHhmN2E3MWNk
ZSwgMHgzZTRmZDc0NSksCi0gICAgICAgICBUT0JOKDB4ODZjYzUzM2UsIDB4ODk0YzViYmIpLCBU
T0JOKDB4NjkxNWM3ZDksIDB4NjlkODMwODIpLAotICAgICAgICAgVE9CTigweGE2YWEyZDA1LCAw
eDU4MTVjMjQ0KSwgVE9CTigweGFlZWVlNTkyLCAweDQ5YjIyY2U1KSwKLSAgICAgICAgIFRPQk4o
MHg4OWUzOWQxMywgMHg3ODEzNTQ4NiksIFRPQk4oMHgzYTI3NWMxZiwgMHgxNmI3NmYyZiksCi0g
ICAgICAgICBUT0JOKDB4ZGI2YmNjMWIsIDB4ZTAzNmU4ZjUpLCBUT0JOKDB4NGRmNjliMjEsIDB4
NWU0NzA5ZjUpLAotICAgICAgICAgVE9CTigweGExODhiMjUwLCAweDJkMGYzOWFhKSwgVE9CTigw
eDYyMjExOGJiLCAweDE1YTg1OTQ3KSwKLSAgICAgICAgIFRPQk4oMHgyZWJmNTIwZiwgMHhmZGUw
ZjRmYSksIFRPQk4oMHhhNDBlOWYyOSwgMHg0ODYwZTUzOSksCi0gICAgICAgICBUT0JOKDB4N2I2
YTUxZWIsIDB4MjJiNTdmMGYpLCBUT0JOKDB4ODQ5YTMzYjksIDB4N2U4MDY0NGEpLAotICAgICAg
ICAgVE9CTigweDUwZTVkMTZmLCAweDFjZjA5NWZlKSwgVE9CTigweGQ3NTRiNTRlLCAweGVjNTVm
MDAyKSwKLSAgICAgICAgIFRPQk4oMHg1Y2ZiYmIyMiwgMHgyMzZmNGE5OCksIFRPQk4oMHgwYjBj
NTllOSwgMHgwNjY4MDBiYiksCi0gICAgICAgICBUT0JOKDB4NGFjNjlhOGYsIDB4NWE5YTc3NzQp
LCBUT0JOKDB4MmIzM2Y4MDQsIDB4ZDZiZWM5NDgpLAotICAgICAgICAgVE9CTigweGIzNzI5Mjk1
LCAweDMyZTZjNDY2KSwgVE9CTigweDY4OTU2ZDBmLCAweDRlNTk5YzczKSwKLSAgICAgICAgIFRP
Qk4oMHhhNDdhMjQ5ZiwgMHgxNTVjMzFjYyksIFRPQk4oMHgyNGQ4MGYwZCwgMHhlMWNlMjg0ZSks
Ci0gICAgICAgICBUT0JOKDB4Y2Q4MjFkZmIsIDB4OTg4YmFmMDEpLCBUT0JOKDB4ZTYzMzFhN2Qs
IDB4ZGJiMTY2NDcpLAotICAgICAgICAgVE9CTigweDFlYjhhZDMzLCAweDA5NGNiOTYwKSwgVE9C
TigweDU5M2NjYTM4LCAweGM5MWJiY2E1KSwKLSAgICAgICAgIFRPQk4oMHgzODRhYWM4ZCwgMHgy
NjU2NzQ1NiksIFRPQk4oMHg0MGZhMDMwOSwgMHhjMDRiNjQ5MCksCi0gICAgICAgICBUT0JOKDB4
OTc4MzRjZDYsIDB4ZGFiNmM4ZjYpLCBUT0JOKDB4NjhhNzMxOGQsIDB4M2Y5MWU1NWYpLAotICAg
ICAgICAgVE9CTigweGEwMGZkMDRlLCAweGZjNGQzMTU3KSwgVE9CTigweGI1NmY4YWIyLCAweDJi
ZjNiZGVhKSwKLSAgICAgICAgIFRPQk4oMHgwMTRmNTY0OCwgMHg0ZmE1NzE3MiksIFRPQk4oMHg5
NDhjNTg2MCwgMHg0NTBhYmRiMyksCi0gICAgICAgICBUT0JOKDB4MzQyYjVkZjAsIDB4MGViZDRm
MDgpLCBUT0JOKDB4M2U1MTY4Y2QsIDB4MGU4MjkzOGUpLAotICAgICAgICAgVE9CTigweDdhZWRj
MWNlLCAweGIwZGY1ZGQwKSwgVE9CTigweDZiYmJjNmQ5LCAweGU1NzMyNTE2KSwKLSAgICAgICAg
IFRPQk4oMHhjN2JmZDQ4NiwgMHg2MDVkYWFhNiksIFRPQk4oMHg0NmZkNzJiNywgMHhiYjlhNmM5
ZSksCi0gICAgICAgICBUT0JOKDB4ZTQ4NDdmYjEsIDB4YTEyNGZiODkpLCBUT0JOKDB4NzU5NTlj
YmQsIDB4YTJkOGZmYmMpLAotICAgICAgICAgVE9CTigweDQyNTc5ZjY1LCAweGM4YTU4OGVlKSwg
VE9CTigweDM2OGM5MmU2LCAweGI4MGI0OTlkKSwKLSAgICAgICAgIFRPQk4oMHhlYTRlZjZjZCwg
MHg5OTlhNWRmMSksIFRPQk4oMHhhYTczYmI3ZiwgMHg5MzZmZTYwNCksCi0gICAgICAgICBUT0JO
KDB4ZjM0N2E3MGQsIDB4NjQ1N2QxODgpLCBUT0JOKDB4ODZlZGE4NmIsIDB4OGI3YTM4OGIpLAot
ICAgICAgICAgVE9CTigweGI3Y2RmZjA2LCAweDBjY2Q2MDEzKSwgVE9CTigweGJlYjFiNmM3LCAw
eGQwMDUzZmIyKSwKLSAgICAgICAgIFRPQk4oMHgwYjAyMjM4NywgMHg5OTI0MGE5ZiksIFRPQk4o
MHgxYmJiMzg0ZiwgMHg3NzYxODliMiksCi0gICAgICAgICBUT0JOKDB4ODY5NWU3MWUsIDB4OTA2
NjE5M2EpLCBUT0JOKDB4MmViNTAwOTcsIDB4MDZmZmFjN2UpLAotICAgICAgICAgVE9CTigweDA2
NTRhOWMwLCAweDRhN2QyY2FhKSwgVE9CTigweDZmM2ZiM2QxLCAweGE1YWFhMjkwKSwKLSAgICAg
ICAgIFRPQk4oMHg4MzVkYjA0MSwgMHhmZjQ3NmU4ZiksIFRPQk4oMHg1NDBiOGIwYiwgMHhjNDIy
OTVlNCksCi0gICAgICAgICBUT0JOKDB4YTVjNzNhYzksIDB4MDVlMjE0ZjUpLCBUT0JOKDB4OWE3
NDA3NWEsIDB4NTZhMGI2MzgpLAotICAgICAgICAgVE9CTigweDJlNGIxMDkwLCAweGNlOWU2ODBi
KSwgVE9CTigweDU3YTViNDc5LCAweDZiOGQ5YWZhKSwKLSAgICAgICAgIFRPQk4oMHgwZGNhNDhl
NywgMHgyNmJmZTY1YyksIFRPQk4oMHgwOTdlMzkxYywgMHg3MjkwYzMwNyksCi0gICAgICAgICBU
T0JOKDB4NjgzYzQ2MmUsIDB4NjY2OWU3MmUpLCBUT0JOKDB4ZjUwNWJlMWUsIDB4MDYyNTU5YWMp
LAotICAgICAgICAgVE9CTigweDVmYmUzZWExLCAweGUzYTMwMzVhKSwgVE9CTigweDY0MzFlYmY2
LCAweDljZDUwZGE4KSwKLSAgICAgICAgIFRPQk4oMHhmZDE2OWQ1YywgMHgxZjY0MDdmMiksIFRP
Qk4oMHg4ZDgzOGE5NSwgMHg2MGZjZTZiOCksCi0gICAgICAgICBUT0JOKDB4MmEyYmZhN2YsIDB4
NjUwMDA2ZjApLCBUT0JOKDB4ZGZkN2RhZDMsIDB4NTBjMGZiYjIpLAotICAgICAgICAgVE9CTigw
eDkyNDUyNDk1LCAweGNjZjlhZDk2KSwgVE9CTigweDE4M2JmNDk0LCAweGQ5NTYzNWY5KSwKLSAg
ICAgICAgIFRPQk4oMHgwMmQ1ZGY0MywgMHg0YTdiZDk4OSksIFRPQk4oMHg1MDUzODVjYywgMHhh
NTQzMTA5NSksCi0gICAgICAgICBUT0JOKDB4ZGQ5OGU2N2QsIDB4ZmQ0M2Y1M2UpLCBUT0JOKDB4
ZDYxZTFhNmMsIDB4NTAwYzM0YTkpLAotICAgICAgICAgVE9CTigweDVhNGI0NmM2LCAweDRhOGEz
ZDYyKSwgVE9CTigweDg0NjljNGQwLCAweDI0Nzc0M2QyKSwKLSAgICAgICAgIFRPQk4oMHgyYmIz
YTEzZCwgMHg4OGY3ZTQzMyksIFRPQk4oMHg2MmIyM2ExMCwgMHgwMWJlNTg0OSksCi0gICAgICAg
ICBUT0JOKDB4ZTgzNTk2YjQsIDB4YTYzZDFhNGMpLCBUT0JOKDB4NDU0ZTdmZWEsIDB4N2QxODNm
M2UpLAotICAgICAgICAgVE9CTigweDY0M2ZjZTYxLCAweDE3YWZiMDFjKSwgVE9CTigweDRlNjVl
NWU2LCAweDFjNGMzNjM4KSwKLSAgICAgICAgIFRPQk4oMHg0MWQ4NWVhMSwgMHhlZjc0YzQ1Yiks
IFRPQk4oMHgyY2ZiZmE2NiwgMHhhZTMyODUwNiksCi0gICAgICAgICBUT0JOKDB4OThiMDc4ZjUs
IDB4M2FkYTdkYTkpLCBUT0JOKDB4ZDk4NWZlMzcsIDB4ZWM3NTJmYmIpLAotICAgICAgICAgVE9C
TigweGVlY2U2OGZlLCAweDVhMDE0OGI0KSwgVE9CTigweDZmOWE1NWM3LCAweDJkNzgxMzZkKSwK
LSAgICAgICAgIFRPQk4oMHgyMzJkY2NjNCwgMHhkMmI3MjljZSksIFRPQk4oMHhhMjdlMGRmZCwg
MHg5MGFhZmJjNCksCi0gICAgICAgICBUT0JOKDB4OTY0NzQ0NTIsIDB4MTJiNDYwM2UpLCBUT0JO
KDB4YTg3NmM1NTEsIDB4NmI3MDZkMTQpLAotICAgICAgICAgVE9CTigweGRmMTQ1ZmNmLCAweDY5
YTlkNDEyKSwgVE9CTigweGUyYWI3NWI3LCAweDJkNDc5YzM0KSwKLSAgICAgICAgIFRPQk4oMHgx
MmRmOWE3NiwgMHgxYTIzZmY5NyksIFRPQk4oMHhjNjEzODk5MiwgMHg1ZDM1OWQxMCksCi0gICAg
ICAgICBUT0JOKDB4NmU1MWM3YWUsIDB4ZmE4MzVmMjIpLCBUT0JOKDB4NjlhNzljYjEsIDB4YzBm
Y2M0ZDkpLAotICAgICAgICAgVE9CTigweGY1N2YzNTBkLCAweDU5NGNjN2UxKSwgVE9CTigweDMw
NzljYTYzLCAweDMzNTBhYjc5KSwKLSAgICAgICAgIFRPQk4oMHgyMjZmYjYxNCwgMHg5YWZmNTk0
YSksIFRPQk4oMHgzNWFmZWMwMiwgMHg2ZDU5YTYyYiksCi0gICAgICAgICBUT0JOKDB4OWJlZTQ2
ZjQsIDB4MDZlZDJjNmUpLCBUT0JOKDB4NThkYTE3MzUsIDB4N2Q5MzlhNTcpLAotICAgICAgICAg
VE9CTigweDQ0YzUwNDAyLCAweDhmZDE3OTdlKSwgVE9CTigweGQ4ODUzZTdjLCAweDVjY2VhNmNh
KSwKLSAgICAgICAgIFRPQk4oMHg0MDY1NTA4ZCwgMHhhMzVmY2Q1ZiksIFRPQk4oMHg4OTY1ZGY4
YywgMHg0OTVjY2FlYiksCi0gICAgICAgICBUT0JOKDB4MGYyZGE4NTAsIDB4MTJlMWE5NjIpLCBU
T0JOKDB4ZWU0NzFiOTQsIDB4YzFjZjFjYzQpLAotICAgICAgICAgVE9CTigweGNlZjE5YmM4LCAw
eDBhMDhmYjc1KSwgVE9CTigweDcwNDk1OGY1LCAweDgxZGUzNTkxKSwKLSAgICAgICAgIFRPQk4o
MHgyODY3ZjhiMiwgMHgzYWVmNGY4OCksIFRPQk4oMHg4ZDc0OTM4NCwgMHhlYTlmOWE1ZiksCi0g
ICAgICAgICBUT0JOKDB4MWIzODU1MzcsIDB4OGM5MDQ5ZjQpLCBUT0JOKDB4NWJlOTQ4ZjMsIDB4
N2I5MmQ4YjYpLAotICAgICAgICAgVE9CTigweGQ5NmY3MjVkLCAweGI2ZTJiZDZiKSwgVE9CTigw
eDM3YTIyMmJjLCAweDk1OGM0NTRkKSwKLSAgICAgICAgIFRPQk4oMHhlN2M2MWFiYiwgMHg4ODA5
YmY2MSksIFRPQk4oMHg0NmYwN2ZiYywgMHgxMzQ2ZjE4ZCksCi0gICAgICAgICBUT0JOKDB4ZmI1
NjdhN2EsIDB4ZTg3YzBkMWMpLCBUT0JOKDB4ODRhNDYxYzgsIDB4N2VmM2QwN2EpLAotICAgICAg
ICAgVE9CTigweDBhNWFkY2U2LCAweGQ5Mjc4ZDk4KSwgVE9CTigweDI0ZDk0ODEzLCAweDlkZmM3
M2UxKSwKLSAgICAgICAgIFRPQk4oMHg0ZjM1MjhiNiwgMHgwNTQzMjFjMyksIFRPQk4oMHgyZTAz
ZmRkZSwgMHg2OTJlYTcwNiksCi0gICAgICAgICBUT0JOKDB4MTBlNjA2MTksIDB4NDdiNTMzYzAp
LCBUT0JOKDB4MWE4YmM3M2YsIDB4MmNhM2MwNTUpLAotICAgICAgICAgVE9CTigweGFlNThkNGIy
LCAweDFiYjYyYjhmKSwgVE9CTigweGIyMDQ1YTczLCAweDU4NGEyNGUzKSwKLSAgICAgICAgIFRP
Qk4oMHgzYWIzZDVhZiwgMHhiZDc2ZTE5NSksIFRPQk4oMHg0NzhkZDFhZCwgMHg2OTM4YTgxMCks
Ci0gICAgICAgICBUT0JOKDB4NmZmYWIzOTMsIDB4NmVlM2Q1Y2IpLCBUT0JOKDB4ZGZiNjkzZGIs
IDB4MjJiMzYxZTQpLAotICAgICAgICAgVE9CTigweGY5Njk0NDk2LCAweDUxZGJmMWE3KSwgVE9C
TigweGNhYjRiNGVmLCAweDA4YTJlNzYyKSwKLSAgICAgICAgIFRPQk4oMHhlOGM5MmYyNSwgMHhk
MzliYmE5YSksIFRPQk4oMHg4NTBlNjFiYywgMHhmMTQ2NGQ5NiksCi0gICAgICAgICBUT0JOKDB4
YjdlODMwZTMsIDB4ZGMwOTUwOGIpLCBUT0JOKDB4ZmFmNmQyY2YsIDB4NzQzMTc2NTUpLAotICAg
ICAgICAgVE9CTigweDcyNjA2Y2ViLCAweGRmNjkwMzU1KSwgVE9CTigweDQ4YmI5MmIzLCAweGQw
YzNkZWQ2KSwKLSAgICAgICAgIFRPQk4oMHg2NWI3NTQ4NCwgMHg1YzdjZjg5MiksIFRPQk4oMHhm
NmNkN2FjOSwgMHhkNWQ1ZjAxZiksCi0gICAgICAgICBUT0JOKDB4YzJjMzBhNTksIDB4OTY0MDFk
NjkpLCBUT0JOKDB4OTEyNjg2NTAsIDB4ZWQ5MjE4NzgpLAotICAgICAgICAgVE9CTigweDM4MGJm
OTEzLCAweGI3OGM1NThmKSwgVE9CTigweDQzYzBiYWViLCAweGM4YWZkYWE5KSwKLSAgICAgICAg
IFRPQk4oMHgzNzdmNjFkNSwgMHg1NGYxNjlkMyksIFRPQk4oMHhmOGRhMDdlMywgMHhhZTVmZjIw
YiksCi0gICAgICAgICBUT0JOKDB4YjY3NmM0OWQsIDB4YThhOTBlYTgpLCBUT0JOKDB4ODFjMWZm
MmIsIDB4ODNhMjliMjEpLAotICAgICAgICAgVE9CTigweDM4MzI5N2FjLCAweDJhZDhkMjc2KSwg
VE9CTigweDMwMDExMjJmLCAweGJhODlmOTgyKSwKLSAgICAgICAgIFRPQk4oMHhlMWQ3OTRiZSwg
MHg2NzE4ZTQ0OCksIFRPQk4oMHgyNDZjMTQ4MiwgMHg3YzNlNmUxMyksCi0gICAgICAgICBUT0JO
KDB4NTY2NDZlZjgsIDB4NWQyNmI1ZWYpLCBUT0JOKDB4ODBmNTA5MWUsIDB4ODgwNjljZGQpLAot
ICAgICAgICAgVE9CTigweGM1OTkyZTJmLCAweDcyNGJkZDM4KSwgVE9CTigweDAyZTkxNWI0LCAw
eDg0NzFlOGM3KSwKLSAgICAgICAgIFRPQk4oMHg5NmZmMzIwYSwgMHgwZDBmZjJhOSksIFRPQk4o
MHhiZjg4NjQ4NywgMHg0Mzg0ZDFhMCksCi0gICAgICAgICBUT0JOKDB4YmJlMWU2YTYsIDB4Yzkz
ZjcyZDYpLCBUT0JOKDB4ZDVmNzVkMTIsIDB4Y2FkODAwZWEpLAotICAgICAgICAgVE9CTigweGZh
NDBhMDlmLCAweGU3YWNmMTE3KSwgVE9CTigweDMyYzhjZGQ1LCAweDc1ODFhMzU1KSwKLSAgICAg
ICAgIFRPQk4oMHg3NDIyMTk5MiwgMHg3MDIzYzQ5OSksIFRPQk4oMHhhOGFmZTVkNywgMHgzOGVj
MzkwMSksCi0gICAgICAgICBUT0JOKDB4NTY5MWFmY2IsIDB4YTkwZTgzZjApLCBUT0JOKDB4NDFi
Y2FhMDMsIDB4MGI4ZjhlYWMpLAotICAgICAgICAgVE9CTigweGUzOGI1ZmY5LCAweDhkMjY2OGQ1
KSwgVE9CTigweDA3MTUyODFhLCAweDdhZDgxOTY1KSwKLSAgICAgICAgIFRPQk4oMHgxYmM4ZmM3
YywgMHgwM2M2Y2UxMSksIFRPQk4oMHhjYmJlZTZlMiwgMHg4YjY1MDQzNiksCi0gICAgICAgICBU
T0JOKDB4MDZiMDBmZTgsIDB4MGNkYjk4MDgpLCBUT0JOKDB4MTdkNmUwNjYsIDB4ZmUzZWQzMTUp
LAotICAgICAgICAgVE9CTigweDJlOWQzOGM2LCAweDRkMGI1MDE4KSwgVE9CTigweGFiOGJmZDU2
LCAweDg0NGRjYWVmKSwKLSAgICAgICAgIFRPQk4oMHg0Mjg5NGE1OSwgMHg1MTNhZWQ4YiksIFRP
Qk4oMHhmNzdmM2I2ZCwgMHgzMTRiZDA3YSksCi0gICAgICAgICBUT0JOKDB4YmJkZWNiOGYsIDB4
OGU0MmI1ODIpLCBUT0JOKDB4ZjEwZTJmYTgsIDB4ZDIzOTBmZTYpLAotICAgICAgICAgVE9CTigw
eGVmYjk1MDIyLCAweDYyYTJmMjAxKSwgVE9CTigweDRkNTllYTUwLCAweDUwZWUzMmIwKSwKLSAg
ICAgICAgIFRPQk4oMHhkODdmNzcyOCwgMHg2ZGE3ODlhOCksIFRPQk4oMHhjZjk4YTJjZiwgMHhm
Nzk0OTJjNCksCi0gICAgICAgICBUT0JOKDB4Zjk1NzcyMzksIDB4NzIwOTQzYzIpLCBUT0JOKDB4
YmEwNDRjZjUsIDB4Mzk5MGI5ZDApLAotICAgICAgICAgVE9CTigweDVhYThlODIzLCAweDk1ZjI4
ODRhKSwgVE9CTigweDgzNGRlNmVkLCAweDAyNzhhMGFmKSwKLSAgICAgICAgIFRPQk4oMHhjOGUx
ZWU5YSwgMHg1ZjI1YmQxMiksIFRPQk4oMHg5MjU5Y2VhYSwgMHg2ZjdhYjI3MSksCi0gICAgICAg
ICBUT0JOKDB4N2U2ZDk3YTIsIDB4NzdkMDBiNzYpLCBUT0JOKDB4NWMwYzZlZWEsIDB4YTQzNzgz
MmEpLAotICAgICAgICAgVE9CTigweDUyMzJjMjBmLCAweDU2MDZiODFkKSwgVE9CTigweGFiZDdi
Mzc1LCAweDBkOTkxZWU1KSwKLSAgICAgICAgIFRPQk4oMHg0ZDJiZmUzNSwgMHg4NjMyZDk1MSks
IFRPQk4oMHg3OGY4NTE0NiwgMHg5OGVkOTM2NCksCi0gICAgICAgICBUT0JOKDB4OTUxODczZjAs
IDB4ZjMwYzMyODIpLCBUT0JOKDB4MGRhOGFjODAsIDB4YTc4OTIzMGIpLAotICAgICAgICAgVE9C
TigweDNhYzc3ODljLCAweDUzOTg5NjdmKSwgVE9CTigweGE2OWI4ZjdmLCAweGJkZGEwZmI1KSwK
LSAgICAgICAgIFRPQk4oMHhlNWRiNzcxNywgMHg2YWRkODU0NSksIFRPQk4oMHgxYjcxY2I2Niwg
MHg3MmM0OWI2NiksCi0gICAgICAgICBUT0JOKDB4ZDg1NjA3MzksIDB4Njg0MjFkNzcpLCBUT0JO
KDB4MDM4NDBmZTgsIDB4ODNlM2FmZWEpLAotICAgICAgICAgVE9CTigweGIzOTFkYWQ1LCAweDFl
YzY5OTc3KSwgVE9CTigweGFlMjQzZmI5LCAweDMwN2Y2NzI2KSwKLSAgICAgICAgIFRPQk4oMHhj
ODhhYzg3YiwgMHhlOGNhMTYwYyksIFRPQk4oMHg1MTc0Y2NlZCwgMHg0Y2UzNTVmNCksCi0gICAg
ICAgICBUT0JOKDB4OThhMzU5NjYsIDB4ZTU4YmEzN2QpLCBUT0JOKDB4ZmRjYzhkYTIsIDB4Nzgx
NzMzNWQpLAotICAgICAgICAgVE9CTigweDViNzUyODMwLCAweDgzZmJjN2JmKSwgVE9CTigweDY4
ZTQxOWQ0LCAweGQ5Yzk2OTg0KSwKLSAgICAgICAgIFRPQk4oMHg0MDlhMzlmNCwgMHgwMmE0MDM4
MCksIFRPQk4oMHg4ODk0MGZhZiwgMHgxZmU5NzdiYyksCi0gICAgICAgICBUT0JOKDB4YzY0MGE5
NGIsIDB4OGY4ZWRlYTYpLCBUT0JOKDB4MWUyMmNkMTcsIDB4ZWQxMTU0N2QpLAotICAgICAgICAg
VE9CTigweGUyODU2OGNlLCAweDU5ZmZjM2UyKSwgVE9CTigweDYwYWExYjU1LCAweGMxZGVlNGU3
KSwKLSAgICAgICAgIFRPQk4oMHhjNjc0OTdjOCwgMHg4MzdjYjM2MyksIFRPQk4oMHgwNmZiNDM4
YSwgMHgxMDVhMmJmMiksCi0gICAgICAgICBUT0JOKDB4MzAzNTdlYzQsIDB4NTAwZDhlMjApLCBU
T0JOKDB4MWFkOTA5NWQsIDB4MDY3MGRiMTApLAotICAgICAgICAgVE9CTigweDdmNTg5YTA1LCAw
eGM3M2I3Y2ZkKSwgVE9CTigweGY1NDQ2MDdkLCAweDg4MGQ2ZDI4KSwKLSAgICAgICAgIFRPQk4o
MHgxN2JhOTNiMSwgMHhhMjBlZjEwMyksIFRPQk4oMHhhZDg1OTEzMCwgMHg2YmE2NTc3YiksCi0g
ICAgICAgICBUT0JOKDB4NjVjOTFjZjYsIDB4NmZhMjE0YTApLCBUT0JOKDB4ZDdkNDljNmMsIDB4
Mjc5OTBkYTUpLAotICAgICAgICAgVE9CTigweGVjZDllYzhkLCAweDIwYmI1NjlkKSwgVE9CTigw
eGJkNGIyNTAyLCAweGVlZmZiYzMzKSwKLSAgICAgICAgIFRPQk4oMHgyMDU2Y2E1YSwgMHg2YmVk
MDQ2NyksIFRPQk4oMHg3OTE2YTFmNywgMHg1YjYzNzI4YyksCi0gICAgICAgICBUT0JOKDB4ZDRm
OTQ5N2QsIDB4NTNhNGY1NjYpLCBUT0JOKDB4ODk3MzQ2NjQsIDB4OTdiNTY4MTApLAotICAgICAg
ICAgVE9CTigweGY4ZTFkYTc0LCAweDA0OTRhNjIxKSwgVE9CTigweDgyNTQ2YTkzLCAweDhkMDEx
YzY4KSwKLSAgICAgICAgIFRPQk4oMHgxZjNhY2IxOSwgMHhjNjFhYzE2MiksIFRPQk4oMHg1MmY4
ZmE5YywgMHhhYmFkMGQzZSksCi0gICAgICAgICBUT0JOKDB4MTUzNTY1MjMsIDB4YjRiN2VhNDMp
LCBUT0JOKDB4NWExNmFkNjEsIDB4YWU2MDgxMjUpLAotICAgICAgICAgVE9CTigweGIwYmNiODdm
LCAweDRmYWVkMTg0KSwgVE9CTigweDVmMjM2YjFkLCAweDUwMjlmNDVmKSwKLSAgICAgICAgIFRP
Qk4oMHhkNDJjNzYwNywgMHgwYmM2YjFmYyksIFRPQk4oMHhjNjQ0MzI0ZSwgMHg2OGFlZmNlMyks
Ci0gICAgICAgICBUT0JOKDB4OGUxOTFkNTksIDB4NWM1ZDg0NDYpLCBUT0JOKDB4YzAyMDgwNzcs
IDB4MTNhZTE5NzkpLAotICAgICAgICAgVE9CTigweGFkY2FlZTU1LCAweDNiYTU5Y2M3KSwgVE9C
TigweDIwZWQ2ZDZiLCAweGEyY2I4MWJhKSwKLSAgICAgICAgIFRPQk4oMHgwOTUyYmExOSwgMHhi
NmVmY2ZmYyksIFRPQk4oMHg2MGYxMmQ2OCwgMHg5N2MwYjg3YyksCi0gICAgICAgICBUT0JOKDB4
NGVlMmM3YzQsIDB4OWNhYTMwYmMpLCBUT0JOKDB4NzY3MjM4YjcsIDB4OTdmYmZmNGUpLAotICAg
ICAgICAgVE9CTigweGViYzczOTIxLCAweDUwMWI1ZDkyKSwgVE9CTigweDMyNzllM2RmLCAweGMy
YTM3NzM3KSwKLSAgICAgICAgIFRPQk4oMHg5ZmMxMmJjOCwgMHg2ZDE5NzU0MyksIFRPQk4oMHhm
YTk0ZGM2ZiwgMHgwYTQwZGI0ZSksCi0gICAgICAgICBUT0JOKDB4NzM5MmI0MWEsIDB4NTMwY2Ni
YmQpLCBUT0JOKDB4ODdjODIxNDYsIDB4ZWE4MjM1MjUpLAotICAgICAgICAgVE9CTigweGE1MmY5
ODRjLCAweDA1ZDk4ZDBjKSwgVE9CTigweDJhZTU3ZDczLCAweDVlZjY5NzRjKSwKLSAgICAgICAg
IFRPQk4oMHg5Mzc3ZjdiZiwgMHgzMDQyYTZkZCksIFRPQk4oMHhiMWEwMDdjMCwgMHgxOTY0N2E2
NCksCi0gICAgICAgICBUT0JOKDB4ZmFhOTA3OWEsIDB4MGNjYTk3NjcpLCBUT0JOKDB4M2Q4MWEy
NWIsIDB4ZjY4ZjcyZDUpLAotICAgICAgICAgVE9CTigweDc1MjA2N2Y4LCAweGZmODE1NzhlKSwg
VE9CTigweDc4NjIyMTUwLCAweDkwNDU0NDdkKSwKLSAgICAgICAgIFRPQk4oMHhjMGMyMmZjZiwg
MHgwNTA1YWE2ZiksIFRPQk4oMHgxMDMwZjBhNiwgMHg2YmVkMWM3NyksCi0gICAgICAgICBUT0JO
KDB4MzFmMjlmMTUsIDB4MWYwYmQ3MzkpLCBUT0JOKDB4MmQ3OTg5YzcsIDB4ZTZkZWJlODUpLAot
ICAgICAgICAgVE9CTigweDVjMDcwZTcyLCAweDhlNjc3ZTk4KSwgVE9CTigweDBhODE3YmQzLCAw
eDA2ZTgxZmQ1KSwKLSAgICAgICAgIFRPQk4oMHhjMTEwZDgzMCwgMHhiMGYyYWM5NSksIFRPQk4o
MHg0OGQwOTk1YSwgMHhhYjIwZTY0ZSksCi0gICAgICAgICBUT0JOKDB4MGYzZTAwZTEsIDB4Nzcy
OWNkOWEpLCBUT0JOKDB4MmE1NzBjMjAsIDB4ZGQ1NTY5NDYpLAotICAgICAgICAgVE9CTigweDkx
MmRiY2ZkLCAweDRlODYyMTRkKSwgVE9CTigweDJkMDE0ZWUyLCAweGNmNjE1NDk4KSwKLSAgICAg
ICAgIFRPQk4oMHg1NWUyYjFlNiwgMHgzNTMwZDc2ZSksIFRPQk4oMHhjNTEzNWFlNCwgMHhmZDBm
ZDZkMSksCi0gICAgICAgICBUT0JOKDB4MDA2NjI3M2EsIDB4ZDRmMzA0OWYpLCBUT0JOKDB4YmI4
ZTk4OTMsIDB4ZTcwODc0NzcpLAotICAgICAgICAgVE9CTigweDJkYmExZGRiLCAweDE0YzZlNWZk
KSwgVE9CTigweGRiYTM3ODg2LCAweDUxZjU3ZTZjKSwKLSAgICAgICAgIFRPQk4oMHg1YWFlZTBh
NiwgMHg1YTcyZjJjZiksIFRPQk4oMHgxMjA4YmZiZiwgMHg3YmVhNTY0MiksCi0gICAgICAgICBU
T0JOKDB4ZjVjNmFhM2IsIDB4Njc4NzJjMzcpLCBUT0JOKDB4ZDcyNmUwODMsIDB4NDNmOTMyMjQp
LAotICAgICAgICAgVE9CTigweDE4NTRkYWE1LCAweDA2MWYxNjU4KSwgVE9CTigweGMwMDE2ZGYx
LCAweGRmMGNkMmIzKSwKLSAgICAgICAgIFRPQk4oMHhjMmEzZjIzZSwgMHg4MzNkNTBkZSksIFRP
Qk4oMHg3M2I2ODFkMiwgMHhiYmJkMzAxNyksCi0gICAgICAgICBUT0JOKDB4MmYwNDZkYzQsIDB4
M2FjMzQzYzApLCBUT0JOKDB4OWM4NDdlN2QsIDB4ODU3MTY0MjEpLAotICAgICAgICAgVE9CTigw
eGUxZTEzYzkxLCAweDA5MTdlZWQ0KSwgVE9CTigweDNmYzllZWJkLCAweDYzYTFiOWM2KSwKLSAg
ICAgICAgIFRPQk4oMHgwZjgxNmE3MiwgMHg3ZmUwMjI5OSksIFRPQk4oMHg2MzM1Y2NjMiwgMHgy
OTRmMzMxOSksCi0gICAgICAgICBUT0JOKDB4MzgyMDE3OWYsIDB4NDc0NWM1YmUpLCBUT0JOKDB4
ZTY0N2I3ODIsIDB4OTIyZjA2NmUpLAotICAgICAgICAgVE9CTigweGMyMmU0OWRlLCAweDAyY2Fm
YjhhKSwgVE9CTigweDI5OWJjMmZmLCAweGZjYzJlY2NjKSwKLSAgICAgICAgIFRPQk4oMHg5YThm
ZWVhMiwgMHg2ZTBlODI4MiksIFRPQk4oMHhhNjI3Mjc4YiwgMHhmZTg5MzIwNSksCi0gICAgICAg
ICBUT0JOKDB4YTdlMTk3MzMsIDB4NzkzM2U0N2IpLCBUT0JOKDB4ZjRmZjZiMTMsIDB4MmU3NjY0
MDIpLAotICAgICAgICAgVE9CTigweGE0ZDhiZTBhLCAweDk4NDQwZDlmKSwgVE9CTigweDY1OGY1
YzJmLCAweDM4OTM4ODA4KSwKLSAgICAgICAgIFRPQk4oMHg5MGI3NTY3NywgMHhjOTViM2IzZSks
IFRPQk4oMHhmYTA0NDI2OSwgMHgzMTM3YjZmZiksCi0gICAgICAgICBUT0JOKDB4MDc3YjAzOWIs
IDB4NDNjNDdjMjkpLCBUT0JOKDB4Y2NhOTVkZDMsIDB4OGE2NDQ1YjIpLAotICAgICAgICAgVE9C
TigweDBiNDk4YmE0LCAweDIzMzNmYzRjKSwgVE9CTigweDI3NGY4ZTY4LCAweGY3MzZhMWIxKSwK
LSAgICAgICAgIFRPQk4oMHg2Y2EzNDhmZCwgMHg1ZjFkNGIyZSksIFRPQk4oMHgyNGQzYmU3OCwg
MHhhOGYxMDE5OSksCi0gICAgICAgICBUT0JOKDB4ODUzNWY4NTgsIDB4Y2ExNGY1MzApLCBUT0JO
KDB4YTZlN2YxNjMsIDB4NWI5ODJlNTEpLAotICAgICAgICAgVE9CTigweDg0N2M4NTEyLCAweDM2
ZTFiZjYyKSwgVE9CTigweGY2YTdjNThlLCAweDAzNDQ4NDE4KSwKLSAgICAgICAgIFRPQk4oMHg1
ODNmMzcwMywgMHhmOTM3NGFiNiksIFRPQk4oMHg4NjRmOTE5NSwgMHg2ZTU2NDE0NSksCi0gICAg
ICAgICBUT0JOKDB4MzNiYzNmNDgsIDB4MjI1MjZkNTApLCBUT0JOKDB4OWYzMjNjODAsIDB4MTI2
MmE0OTYpLAotICAgICAgICAgVE9CTigweGFhOTdhN2FlLCAweDNmMDQ2YTlhKSwgVE9CTigweDcw
ZGExODNlLCAweGRmOGEwMzlhKSwKLSAgICAgICAgIFRPQk4oMHg1YjY4ZjcxYywgMHg1MmFhMGJh
NiksIFRPQk4oMHg5YmUwZmU1MSwgMHgyMTQ1OWMyZCksCi0gICAgICAgICBUT0JOKDB4YzFlMTdl
YjYsIDB4Y2JjNjEzZTUpLCBUT0JOKDB4MzMxMzFkNTUsIDB4NDk3ZWE2MWMpLAotICAgICAgICAg
VE9CTigweDJmNjlkMzllLCAweGFmN2VkZWQ1KSwgVE9CTigweDczYzJmNDM0LCAweGRlNmFmMTFi
KSwKLSAgICAgICAgIFRPQk4oMHg0Y2E1MjQ5MywgMHhhNGEzNzVmYSksIFRPQk4oMHg1ZjA2Nzg3
YywgMHhiODMzYzVjMiksCi0gICAgICAgICBUT0JOKDB4ODE0ZTA5MWYsIDB4M2U2ZTcxY2YpLCBU
T0JOKDB4NzY0NTFmNTcsIDB4OGI3NDY2NjYpfSwKLSAgICAgICAge1RPQk4oMHg4MGY5YmRlZiwg
MHg2OTRkYjdlMCksIFRPQk4oMHhlZGNhODc4NywgMHhiOWZjZGRjNiksCi0gICAgICAgICBUT0JO
KDB4NTE5ODFjMzQsIDB4MDNiOGRjZTEpLCBUT0JOKDB4NDI3NGRjZjEsIDB4NzBlMTBiYTEpLAot
ICAgICAgICAgVE9CTigweGY3Mjc0M2I4LCAweDZkZWY2ZDFhKSwgVE9CTigweGQyNWIxNjcwLCAw
eGViZGIxODY2KSwKLSAgICAgICAgIFRPQk4oMHhjNDQ5MWU4YywgMHgwNTBjNmY1OCksIFRPQk4o
MHgyYmUyYjJhYiwgMHg4N2ZiZDdmNSksCi0gICAgICAgICBUT0JOKDB4M2UwZTVjOWQsIDB4ZDEx
MWY4ZWMpLCBUT0JOKDB4YmNjMzNmOGQsIDB4YjdjNGU3NjApLAotICAgICAgICAgVE9CTigweDcw
MmY5YTkxLCAweGJkMzkyYTUxKSwgVE9CTigweDdkYTRhNzk1LCAweGMxMzJlOTJkKSwKLSAgICAg
ICAgIFRPQk4oMHgxYTBiMGFlMywgMHgwYmIxMTUxYiksIFRPQk4oMHg1NGZlYmFjOCwgMHgwMmUz
MjI1MSksCi0gICAgICAgICBUT0JOKDB4ZWEzYTUwODIsIDB4Njk0ZTllNzgpLCBUT0JOKDB4ZTU4
ZmZlYzEsIDB4ZTRmZTQwYjgpLAotICAgICAgICAgVE9CTigweGY4NTU5MmZjLCAweGQxZTBjZjll
KSwgVE9CTigweGRlYTc1ZjBkLCAweGMwZTdiMmU4KSwKLSAgICAgICAgIFRPQk4oMHhjMDQyMTVj
ZiwgMHhjMTM1NTg0ZSksIFRPQk4oMHgxNzRmYzcyNywgMHgyZjU3MDkyYSksCi0gICAgICAgICBU
T0JOKDB4ZTcyNzc4NzcsIDB4ZWI5MzBiZWEpLCBUT0JOKDB4NTA0Y2FjY2IsIDB4NWViMDJhNWEp
LAotICAgICAgICAgVE9CTigweGY5ZmUwOGY3LCAweGY1MjQxYjliKSwgVE9CTigweGU3ZmI2MmY0
LCAweDhkNWNhOTU0KSwKLSAgICAgICAgIFRPQk4oMHhmYmI4MzQ5ZCwgMHgyOWM0MTIwYiksIFRP
Qk4oMHg5Zjk0MzkxZiwgMHhjMGQwZDkxNSksCi0gICAgICAgICBUT0JOKDB4YzQwNzRmYTcsIDB4
NTQxMGJhNTEpLCBUT0JOKDB4YTY2YWRiZjYsIDB4MTUwYTU5MTEpLAotICAgICAgICAgVE9CTigw
eGMxNjQ1NDNjLCAweDM0YmZjYTM4KSwgVE9CTigweGUwZjI3NTYwLCAweGI5ZTFjY2ZjKSwKLSAg
ICAgICAgIFRPQk4oMHg5OWRhMGY1MywgMHhlODIwMjE5YyksIFRPQk4oMHhlODIzNDQ5OCwgMHhj
NmI0OTk3YSksCi0gICAgICAgICBUT0JOKDB4Y2ZiODhiNzYsIDB4OWQ0YzU0MjMpLCBUT0JOKDB4
OWU1NmViMTAsIDB4YjA1MjFjNDkpLAotICAgICAgICAgVE9CTigweDQxOGUwYjVlLCAweGJlODcw
MGExKSwgVE9CTigweDAwY2JhYWQ2LCAweGY5M2NiNThhKSwKLSAgICAgICAgIFRPQk4oMHhlOTIz
ZmJkZSwgMHhkOTJhNWU2NyksIFRPQk4oMHhjYTQ5NzlhYywgMHgxZjM0N2YxMSksCi0gICAgICAg
ICBUT0JOKDB4ODkxNjJkODUsIDB4NmJjMDU4NWIpLCBUT0JOKDB4ZGQ2MjU0YWYsIDB4YWMzYzcw
ZTMpLAotICAgICAgICAgVE9CTigweDdiMjNjNTEzLCAweDUxNmUxOWU0KSwgVE9CTigweDU2ZTJl
ODQ3LCAweGM1YzRkNTkzKSwKLSAgICAgICAgIFRPQk4oMHg5ZjcyN2Q3MywgMHg1Y2U3MWVmNiks
IFRPQk4oMHg1YjYzMDRhNiwgMHhmNzlhNDRjNSksCi0gICAgICAgICBUT0JOKDB4NjYzOGE3MzYs
IDB4M2FiN2U0MzMpLCBUT0JOKDB4MWFkZWE0NzAsIDB4ZmU3NDJmODMpLAotICAgICAgICAgVE9C
TigweGUwNTRiODU0LCAweDViN2ZjMTlmKSwgVE9CTigweGY5MzUzODFhLCAweGJhMWQwNjk4KSwK
LSAgICAgICAgIFRPQk4oMHg1NDZlYWIyZCwgMHg3OTllOWE3NCksIFRPQk4oMHg5NjIzOWUwZSwg
MHhhOTQ5ZjcyOSksCi0gICAgICAgICBUT0JOKDB4Y2EyNzRjNmIsIDB4NzA5MDA1NWEpLCBUT0JO
KDB4ODM1MTQyYzMsIDB4OTAyMGM5YjApLAotICAgICAgICAgVE9CTigweGE0MDU2NjdhLCAweGEy
ZTg4MDdmKSwgVE9CTigweDI5ZjJjMDg1LCAweDFhYTNkMzllKSwKLSAgICAgICAgIFRPQk4oMHhj
YzU1NWQ2NCwgMHg0MmZjNzJmNSksIFRPQk4oMHhlODU2ZTBlNywgMHhmYmVhY2IzYyksCi0gICAg
ICAgICBUT0JOKDB4YjU1MDRmOWQsIDB4OTE4ZTQ5MzYpLCBUT0JOKDB4NjUwMzVlZjYsIDB4YjI1
MTM5ODIpLAotICAgICAgICAgVE9CTigweDA1NTNhMGMyLCAweDZmNGQ5Y2I5KSwgVE9CTigweDZj
YjEwZDU2LCAweGJlYTg1NTA5KSwKLSAgICAgICAgIFRPQk4oMHg0OGQ5NTdiNywgMHhhMjQyZGEx
MSksIFRPQk4oMHgxNmE0ZDNkZCwgMHg2NzJiNzI2OCksCi0gICAgICAgICBUT0JOKDB4M2Q3ZTYz
N2MsIDB4ODUwMmE5NmIpLCBUT0JOKDB4MjdjNzAzMmIsIDB4NzMwZDQ2M2IpLAotICAgICAgICAg
VE9CTigweGJkYzAyYjE4LCAweGU0MTM2YTE0KSwgVE9CTigweGJhY2Y5NjlkLCAweDY3OGUzMmJm
KSwKLSAgICAgICAgIFRPQk4oMHhjOThkODlhMywgMHhkZDljM2MwMyksIFRPQk4oMHg3YjkyNDIw
YSwgMHgyM2JlY2M0ZiksCi0gICAgICAgICBUT0JOKDB4ZDRiNDFmNzgsIDB4YzY0ZDU2NWMpLCBU
T0JOKDB4OWY5NjlkMDAsIDB4MTBmMjgyOTUpLAotICAgICAgICAgVE9CTigweGVjN2Y3Zjc2LCAw
eGIxM2QwNTFhKSwgVE9CTigweDA4OTQ1ZTFlLCAweGE5MmRhNTg1KSwKLSAgICAgICAgIFRPQk4o
MHg1NTM2NmI3ZCwgMHg1ODQ2NDI2ZiksIFRPQk4oMHhlN2QwOWU4OSwgMHgyNDdkNDQxZCksCi0g
ICAgICAgICBUT0JOKDB4NTEwYjQwNGQsIDB4NzM2ZmJmNDgpLCBUT0JOKDB4N2ZhMDAzZDAsIDB4
ZTc4NGJkN2QpLAotICAgICAgICAgVE9CTigweDI1Zjc2MTRmLCAweDE3ZmQ5NTk2KSwgVE9CTigw
eDQ5ZTBlMGExLCAweDM1Y2I5OGRiKSwKLSAgICAgICAgIFRPQk4oMHgyYzY1OTU3YiwgMHgyZTgz
YTc2YSksIFRPQk4oMHg1ZDQwZGE4ZCwgMHhjZGRiZTBmOCksCi0gICAgICAgICBUT0JOKDB4ZjJi
OGM0MDUsIDB4MDUwYmFkMjQpLCBUT0JOKDB4ODkxODQyNmQsIDB4YzJhYTQ4MjMpLAotICAgICAg
ICAgVE9CTigweDJhZWFiM2RkLCAweGEzODM2NWE3KSwgVE9CTigweDcyMDMxNzE3LCAweDdjOTFi
NjkwKSwKLSAgICAgICAgIFRPQk4oMHg4YjAwZDY5OSwgMHg2MGE5NDEyMCksIFRPQk4oMHg0Nzhh
MjU1ZCwgMHhlOTllYWVlYyksCi0gICAgICAgICBUT0JOKDB4YmY2NTZhNWYsIDB4NmY2MGFhZmQp
LCBUT0JOKDB4ZGZkN2NiNzUsIDB4NWRlZTc3YjMpLAotICAgICAgICAgVE9CTigweDM3ZjY4YmI0
LCAweGE1OTU5MzlkKSwgVE9CTigweDAzNTU2NDc5LCAweDI4NzQwMjE3KSwKLSAgICAgICAgIFRP
Qk4oMHg4ZTc0MGU3YywgMHg4NGFkNzYxMiksIFRPQk4oMHhkODliYzg0MywgMHg5MDQ0Njk1Ziks
Ci0gICAgICAgICBUT0JOKDB4ZjdmM2RhNWQsIDB4ODVhOTE4NGQpLCBUT0JOKDB4NTYyNTYzYmIs
IDB4OWZjMGIwNzQpLAotICAgICAgICAgVE9CTigweDA2ZDJlNmFhLCAweGY4OGE4ODhlKSwgVE9C
TigweDYxMmQ4NjQzLCAweDE2MWZiZTdjKSwKLSAgICAgICAgIFRPQk4oMHg0NjVlZGJhNywgMHhm
NjQwODVlNyksIFRPQk4oMHhiMjMwZjMwNCwgMHgyOWFhODUxMSksCi0gICAgICAgICBUT0JOKDB4
NTMzODg0MjYsIDB4Y2RhMmQxODgpLCBUT0JOKDB4OTA4ODU3MzUsIDB4NGI2NjY2NDkpLAotICAg
ICAgICAgVE9CTigweDZmMDJmZjlhLCAweDY1MmY1NGY2KSwgVE9CTigweDY1YzgyMjk0LCAweDVm
YWUyYmYwKSwKLSAgICAgICAgIFRPQk4oMHg3ODE2YWRlMCwgMHg2MmY1ZWVlMyksIFRPQk4oMHhk
Y2RiZGY0MywgMHhmY2M1NmQ3MCksCi0gICAgICAgICBUT0JOKDB4OWZiM2JiYTMsIDB4NTQ1MzBi
YjIpLCBUT0JOKDB4YmRlM2VmNzcsIDB4Y2IwODY5ZWEpLAotICAgICAgICAgVE9CTigweDg5YmM5
MDQ2LCAweDBiNDMxMTYzKSwgVE9CTigweDRkMDNkN2QyLCAweGU0ODE5YTM1KSwKLSAgICAgICAg
IFRPQk4oMHgzM2FlNGY5ZSwgMHg0M2I2YTc4MiksIFRPQk4oMHgyMTZkYjMwNywgMHg5Yzg4YTY4
NiksCi0gICAgICAgICBUT0JOKDB4OTFkZDg4ZTAsIDB4MDBmZmVkZDkpLCBUT0JOKDB4YjI4MGRh
OWYsIDB4MTJiZDQ4NDApLAotICAgICAgICAgVE9CTigweDMyYTdjYjhhLCAweDE2MzVlNzQxKSwg
VE9CTigweGZlMTQwMDhhLCAweDc4YmUwMmE3KSwKLSAgICAgICAgIFRPQk4oMHgzZmFmYjMzNCwg
MHgxYjdhZTAzMCksIFRPQk4oMHg3ZmQ1MDhlNywgMHg1YWRkMGNlOSksCi0gICAgICAgICBUT0JO
KDB4NzJjODMyMTksIDB4ZDYwN2FkNTEpLCBUT0JOKDB4MGYyMjljMGEsIDB4OGQ0MDk2NGEpLAot
ICAgICAgICAgVE9CTigweDFiZTJjMzM2LCAweDFjODc4ZGEyKSwgVE9CTigweGUwYzk2NzQyLCAw
eGVhYjJhYjg2KSwKLSAgICAgICAgIFRPQk4oMHg0NThmODY5MSwgMHgzZTUzOGNkNyksIFRPQk4o
MHhhNzAwMWY2YywgMHg4ZTA4YWQ1MyksCi0gICAgICAgICBUT0JOKDB4NTJiOGM2ZTYsIDB4YmY1
ZDE1ZmYpLCBUT0JOKDB4NTQ4MjM0YTQsIDB4MDExMjE1ZGQpLAotICAgICAgICAgVE9CTigweGZm
NWE5ZDJkLCAweDNkNWI0MDQ1KSwgVE9CTigweGIwZmZlZWI2LCAweDRhOTA0MTkwKSwKLSAgICAg
ICAgIFRPQk4oMHg1NWEzYWNhNCwgMHg0ODYwN2Y4YiksIFRPQk4oMHg4Y2JkNjY1YywgMHgzMGEw
NjcyYSksCi0gICAgICAgICBUT0JOKDB4ODdmODM0ZTAsIDB4NDI1ODMwNjgpLCBUT0JOKDB4MDJk
YTJhZWIsIDB4ZjNmNmU2ODMpLAotICAgICAgICAgVE9CTigweDZiNzYzZTVkLCAweDA1YzEyMjQ4
KSwgVE9CTigweDcyMzAzNzhmLCAweDY1YThhZWZjKSwKLSAgICAgICAgIFRPQk4oMHg5M2JkODBi
NSwgMHg3MWU4ZTVjYSksIFRPQk4oMHg1M2FiMDQxYywgMHhiM2I2MjUyNCksCi0gICAgICAgICBU
T0JOKDB4MWI4NjA1MTMsIDB4NmM5YzU1MmUpLCBUT0JOKDB4ZTg0ZDQwMmMsIDB4ZDU1MjRlNjYp
LAotICAgICAgICAgVE9CTigweGEzN2YzNTczLCAweGYzN2Y1OTM3KSwgVE9CTigweGViMGY2Yzdk
LCAweGQxZTRmY2E1KSwKLSAgICAgICAgIFRPQk4oMHgyOTY1YTU1NCwgMHhhYzhhYjBmYyksIFRP
Qk4oMHgxN2ZiZjU2YywgMHgyNzQ2NzZhYyksCi0gICAgICAgICBUT0JOKDB4MmUyZjZiZDksIDB4
YWNmN2Q3MjApLCBUT0JOKDB4NDFmYzhmODgsIDB4MTAyMjQ3NjYpLAotICAgICAgICAgVE9CTigw
eDUxN2ExNGIzLCAweDg1ZDUzYmVmKSwgVE9CTigweGRhZTMyN2E1LCAweDdkNzZhN2QxKSwKLSAg
ICAgICAgIFRPQk4oMHg2YWQwYTA2NSwgMHhjNDgxODI2NyksIFRPQk4oMHgzM2FhMTg5YiwgMHgz
N2MxYmJjMSksCi0gICAgICAgICBUT0JOKDB4NjQ5NzBiNTIsIDB4MjczOTJhOTIpLCBUT0JOKDB4
MjE2OTlhMWMsIDB4MmQxNTM1ZWEpLAotICAgICAgICAgVE9CTigweGNkMjA3NzljLCAweGMyZDdh
N2ZkKSwgVE9CTigweGUzMTg2MDU5LCAweDk5YzgzY2YyKSwKLSAgICAgICAgIFRPQk4oMHg5YjY5
NDQwYiwgMHg3MmMwYjhjNyksIFRPQk4oMHhhODE0OTdkNywgMHg3YjllMGU0ZCksCi0gICAgICAg
ICBUT0JOKDB4NTE1ZDVjODksIDB4MWY1ZjgyZGMpLCBUT0JOKDB4OWE3ZjY3ZDcsIDB4NjM2MTA3
OWUpLAotICAgICAgICAgVE9CTigweGE4ZGE4MWUzLCAweDExYTM1MzMwKSwgVE9CTigweGU0NDk5
MGM0LCAweDRiMThiZTFiKSwKLSAgICAgICAgIFRPQk4oMHhjN2Q1ZWQ5NSwgMHhhZjEwM2U1OSks
IFRPQk4oMHhlY2U4YWJhNywgMHg4ZGFjOTI2MSksCi0gICAgICAgICBUT0JOKDB4YmU4MmIwOTks
IDB4OTM5NGI4ZDMpLCBUT0JOKDB4NjgzMGYwOWEsIDB4MTZhZGZlODMpLAotICAgICAgICAgVE9C
TigweDI1MGEyOWI0LCAweDg4MTcyZDAxKSwgVE9CTigweDhiMjBiZDY1LCAweGNhZmY5ZTAyKSwK
LSAgICAgICAgIFRPQk4oMHhiOGE3NjYxZSwgMHhlOGE2MzI5YSksIFRPQk4oMHg0NTIwMzA0ZCwg
MHhkM2ZjZTkyMCksCi0gICAgICAgICBUT0JOKDB4YWU0NWRhMWYsIDB4MmI0N2Y3ZWYpLCBUT0JO
KDB4ZTA3ZjUyODgsIDB4NWJmZmM1NDApLAotICAgICAgICAgVE9CTigweGY3OTk3MDA5LCAweDM0
NjRmODc0KSwgVE9CTigweDIyNDRjMmNkLCAweGE2ZmExZjM4KSwKLSAgICAgICAgIFRPQk4oMHg0
M2M0MWFjMSwgMHg5NGQ3ZDliMSksIFRPQk4oMHg1YmFmZGQ4MiwgMHhjODJlN2YxNyksCi0gICAg
ICAgICBUT0JOKDB4ZGYwNjE0YzEsIDB4NWZkYTBmY2EpLCBUT0JOKDB4NzRiMDQzYTcsIDB4YThh
ZTM3YWQpLAotICAgICAgICAgVE9CTigweDNiYTZhZmExLCAweDllNzE3MzRjKSwgVE9CTigweDE1
ZDU0MzdlLCAweDljNDUwZjJlKSwKLSAgICAgICAgIFRPQk4oMHg0YTU4ODNmZSwgMHg2N2UyNDJi
MSksIFRPQk4oMHg1MTQzYmRjMiwgMHgyYzE5NTNjMiksCi0gICAgICAgICBUT0JOKDB4NTQyYjhi
NTMsIDB4ZmM1ZTg5MjApLCBUT0JOKDB4MzYzYmY5YTgsIDB4OWE5Y2VlMDgpLAotICAgICAgICAg
VE9CTigweDAyMzc1ZjEwLCAweGMzNDg2ZTA4KSwgVE9CTigweDIwMzc1NDNiLCAweDhjNWU3MGQy
KSwKLSAgICAgICAgIFRPQk4oMHg3MTA5YmNjYywgMHg2MjU2NDBiNCksIFRPQk4oMHhjYmMxMDUx
ZSwgMHg4YmM2MmMzYiksCi0gICAgICAgICBUT0JOKDB4Zjg0NTVmZWQsIDB4ODAzZjI2ZWEpLCBU
T0JOKDB4NmJhZGNlYWIsIDB4ZWIzNzI0MjQpLAotICAgICAgICAgVE9CTigweGEyYTljZTdjLCAw
eDZiNTNmNWY5KSwgVE9CTigweDY0MjQ2NTk1LCAweDFiMTc2ZDk5KSwKLSAgICAgICAgIFRPQk4o
MHhiMTI5OGQzNiwgMHhiOTVjMDgxYiksIFRPQk4oMHg1MzUwNWJiOCwgMHgxZDlhOWVlNiksCi0g
ICAgICAgICBUT0JOKDB4M2Y2ZjllNjEsIDB4ZjJiYTcwYjApLCBUT0JOKDB4ZDA3ZTE2YzksIDB4
OGFmYWQ0NTMpLAotICAgICAgICAgVE9CTigweDlmMTY5NGJiLCAweGU3ZWI0YTZhKSwgVE9CTigw
eGRmZWJjZWQ5LCAweDNjYjBiYzhlKSwKLSAgICAgICAgIFRPQk4oMHg5MmQzZGNkYywgMHg1Mzg2
OGM4YiksIFRPQk4oMHgxNzQzMTFhMiwgMHgzODYxMDdhNiksCi0gICAgICAgICBUT0JOKDB4NDEw
OWUwN2MsIDB4Njg5YjRlNjQpLCBUT0JOKDB4MzBlNDU4N2YsIDB4MmRmM2RjYjYpLAotICAgICAg
ICAgVE9CTigweDg0MWFlYTMxLCAweDA4MTFiM2IyKSwgVE9CTigweDYxNDRkNDFkLCAweDBjY2U0
M2VhKSwKLSAgICAgICAgIFRPQk4oMHg0NjRjNDU4MSwgMHgyYTlhNzgwMyksIFRPQk4oMHhkMDNk
MzcxZiwgMHgzZTE1ODkzMCksCi0gICAgICAgICBUT0JOKDB4YzY3NmQ3ZjIsIDB4YjFmMzM5MGIp
LCBUT0JOKDB4OWY3YTFiOGMsIDB4YTViNjEyNzIpLAotICAgICAgICAgVE9CTigweDRlYmViZmM5
LCAweGMyZTEyN2E5KSwgVE9CTigweDQ2MDI1MDBjLCAweDVkZDk5N2JmKSwKLSAgICAgICAgIFRP
Qk4oMHg3ZjA5NzcxYywgMHg0NzExMjMwZiksIFRPQk4oMHgwNThlYjM3YywgMHgwMjBmMDljMSks
Ci0gICAgICAgICBUT0JOKDB4YWI2OTNkNGIsIDB4ZmVlNWUzOGIpLCBUT0JOKDB4OTI4OWViMWYs
IDB4NDY1M2NiYzApLAotICAgICAgICAgVE9CTigweGJlY2Y0NmFiLCAweGQ1MWI5Y2Y1KSwgVE9C
TigweGQyYWE5YzAyLCAweDlmMDEyMWFmKSwKLSAgICAgICAgIFRPQk4oMHgzNmFhZjdkMiwgMHhl
OTBkYzI3NCksIFRPQk4oMHg5MDllNGVhMCwgMHg0OGI5NWEzYyksCi0gICAgICAgICBUT0JOKDB4
ZTZiNzA0OTYsIDB4NmYzMmRiZGIpLCBUT0JOKDB4NjcyMTg4YTAsIDB4OGIwMzBiM2UpLAotICAg
ICAgICAgVE9CTigweGVlZmZlNWIzLCAweGNmYjYxN2UyKSwgVE9CTigweDg3ZTk0N2RlLCAweDdj
ODI3MDllKSwKLSAgICAgICAgIFRPQk4oMHhhNDRkMmIzOSwgMHgxNzcwZjVhNyksIFRPQk4oMHhl
NGQ0ZDc5MSwgMHgwZTQ0ZWI4MiksCi0gICAgICAgICBUT0JOKDB4NDJlNjlkMWUsIDB4M2Y2OTcx
MmEpLCBUT0JOKDB4YmYxMWM0ZDYsIDB4YWM2YTgyMGUpLAotICAgICAgICAgVE9CTigweGI1ZTdm
M2U1LCAweDQyYzQyMjRjKSwgVE9CTigweGQ2YjRlODFjLCAweDQ0OWQ5NDFjKSwKLSAgICAgICAg
IFRPQk4oMHg1ZDcyYmQxNiwgMHg1NDUwZTg3OCksIFRPQk4oMHg2YTYxZTI4YSwgMHhlZTI1YWM1
NCksCi0gICAgICAgICBUT0JOKDB4MzMyNzIwOTQsIDB4ZTZmMWNkOTUpLCBUT0JOKDB4NzUxMmYz
MGQsIDB4MGQxODY3M2YpLAotICAgICAgICAgVE9CTigweDMyZjdhNGNhLCAweDVhZmMxNDY0KSwg
VE9CTigweDJmMDk1NjU2LCAweDZiYmI5NzdiKSwKLSAgICAgICAgIFRPQk4oMHg1ODZmNDdjYSwg
MHhhODIyNjIwMCksIFRPQk4oMHgwMmM4NjhhZCwgMHgxYWMwNzM2OSksCi0gICAgICAgICBUT0JO
KDB4NGVmMmI4NDUsIDB4YzYxM2FjYmUpLCBUT0JOKDB4NDNkNzU2M2UsIDB4MDM4NjA1NGMpLAot
ICAgICAgICAgVE9CTigweDU0ZGE5ZGM3LCAweGFiOTUyNTc4KSwgVE9CTigweGI1NDIzZGYyLCAw
eDI2ZTg0ZDBiKSwKLSAgICAgICAgIFRPQk4oMHhhOGI2NGVlYiwgMHg5Yjg3MjA0MiksIFRPQk4o
MHhhYzIwNTc4MiwgMHg1OTkwZjZkZiksCi0gICAgICAgICBUT0JOKDB4NGZmNjk2ZWIsIDB4MjFm
NGM3N2EpLCBUT0JOKDB4MWE3OWMzZTQsIDB4YWFiMjczYWYpLAotICAgICAgICAgVE9CTigweDI5
YmM5MjJlLCAweDk0MzZiM2YxKSwgVE9CTigweGZmODA3ZWY4LCAweGQ2ZDlhMjdhKSwKLSAgICAg
ICAgIFRPQk4oMHg4MmFjZWEzZCwgMHg3NzhmMjJhMCksIFRPQk4oMHhmYjEwYjJlOCwgMHg1YjVl
NzQ2OSksCi0gICAgICAgICBUT0JOKDB4YzBiMTY5ODAsIDB4MjgxOGVlN2QpLCBUT0JOKDB4MDEx
YWZmZjQsIDB4YzkxYzFhMmYpLAotICAgICAgICAgVE9CTigweDk1YTZkMTI2LCAweGFkMTI0NDE4
KSwgVE9CTigweDMxYzA4MWE1LCAweGU3MmUyOTVmKSwKLSAgICAgICAgIFRPQk4oMHgzNmJiMjgz
YSwgMHhmMmY0ZGI3NSksIFRPQk4oMHhkMTE1NTQwZiwgMHg3YWNlZjQ2MiksCi0gICAgICAgICBU
T0JOKDB4YzdmM2E4ZjgsIDB4MzNmNjc0NmMpLCBUT0JOKDB4MjFlNDZmNjUsIDB4ZmVhOTkwY2Ep
LAotICAgICAgICAgVE9CTigweDkxNWZkNWM1LCAweGNhZGRiMGE5KSwgVE9CTigweGJkNDFmMDE2
LCAweDc4NjE0NTU1KSwKLSAgICAgICAgIFRPQk4oMHgzNDZmNDQzNCwgMHg0MjZmZmI1OCksIFRP
Qk4oMHg4MDU1OTQzNiwgMHgxNGRiYzIwNCksCi0gICAgICAgICBUT0JOKDB4ZjNkZDIwZmUsIDB4
NWE5NjliN2YpLCBUT0JOKDB4OWQ1OWU5NTYsIDB4ZTg5OWEzOWEpLAotICAgICAgICAgVE9CTigw
eGYxYjA5NzFjLCAweDhhZDRjZjRiKSwgVE9CTigweDAzNDQ4ODYwLCAweDJmZmI4ZmI4KSwKLSAg
ICAgICAgIFRPQk4oMHhmMDcxYWMzYywgMHg2NTM0MGJhNCksIFRPQk4oMHg0MDhkMDU5NiwgMHhi
MjdmZDc1OCksCi0gICAgICAgICBUT0JOKDB4ZTdjNzhlYTQsIDB4OThjMzY0YjApLCBUT0JOKDB4
YTRhYWM0YTUsIDB4MDUxZThhYjUpLAotICAgICAgICAgVE9CTigweGI5ZTFkNTYwLCAweDQ4NWQ5
MDAyKSwgVE9CTigweDlhY2Q1MThhLCAweDg4ODQ0NDU1KSwKLSAgICAgICAgIFRPQk4oMHhlNGNh
Njg4ZiwgMHhkMDZmNTZjMCksIFRPQk4oMHhhNDhhZjcwZCwgMHhkZjAyNzk3MiksCi0gICAgICAg
ICBUT0JOKDB4NjkxZjBmMDQsIDB4NWU5YTYwOWQpLCBUT0JOKDB4YTlkZDgyY2QsIDB4ZWU2MTI3
MGUpLAotICAgICAgICAgVE9CTigweDg5MDNjYTYzLCAweGEwZWYxOGQzKSwgVE9CTigweDlmYjdl
ZTM1LCAweDNkNmNhM2JkKSwKLSAgICAgICAgIFRPQk4oMHhhN2I0YTA5YywgMHhhYmY0N2QwMyks
IFRPQk4oMHg0Y2RhZGEwMSwgMHgxYzY3ZGU4ZSksCi0gICAgICAgICBUT0JOKDB4NTIwMDM3NDks
IDB4OTM1NWEyNDQpLCBUT0JOKDB4ZTc3ZmQyYjYsIDB4NGYyMTUxYTkpLAotICAgICAgICAgVE9C
TigweDY5NWQ2Y2Y2LCAweDY2YjRlZmNiKSwgVE9CTigweGM1YTBjYWNmLCAweGRhMmNmZTI1KSwK
LSAgICAgICAgIFRPQk4oMHgxMDRlZmU1YywgMHhlZjgxMTg2NSksIFRPQk4oMHhmNTI4MTNlOCwg
MHg5ZWE1Y2MzZCksCi0gICAgICAgICBUT0JOKDB4ODU1NjgzZGMsIDB4NDBiNThkYmMpLCBUT0JO
KDB4MDMzOGVjZGUsIDB4MTc1ZmNiMTEpLAotICAgICAgICAgVE9CTigweGY5YTA1NjM3LCAweDc0
OTIxNTkyKSwgVE9CTigweGI0ZjEyNjFkLCAweGI5YmI5ZDMxKSwKLSAgICAgICAgIFRPQk4oMHg1
NTE0MjliNywgMHg0ZTljNTQ1OSksIFRPQk4oMHhiZTE4MmU2ZiwgMHg2ZWE3MWY1MyksCi0gICAg
ICAgICBUT0JOKDB4ZDNhM2IwN2MsIDB4ZGZjNTA1NzMpLCBUT0JOKDB4OWJhMWFmZGEsIDB4NjJi
ZThkNDQpLAotICAgICAgICAgVE9CTigweDliY2ZkMmNiLCAweDUyYWI2NWQzKSwgVE9CTigweGRm
MTFkNTQ3LCAweGE5NTcxODAyKSwKLSAgICAgICAgIFRPQk4oMHgwOTk0MDNlZSwgMHgwMmEyNDA0
YSksIFRPQk4oMHg0OTc0MDZmNCwgMHgyMTA4OGE3MSksCi0gICAgICAgICBUT0JOKDB4OTk0Nzk0
MDksIDB4NTAwNGFlNzEpLCBUT0JOKDB4YmRiNDIwNzgsIDB4YTgxMmMzNjIpLAotICAgICAgICAg
VE9CTigweDJiNzJhMzBmLCAweGQ4ODI4NDQyKSwgVE9CTigweDI4M2FkZDI3LCAweGZjYjVlZDFj
KSwKLSAgICAgICAgIFRPQk4oMHhmN2MwZTIwMCwgMHg2NmE0MDAxNSksIFRPQk4oMHgzZTNiZTY0
MSwgMHgwOGIyOTVlZiksCi0gICAgICAgICBUT0JOKDB4YWMxMjdkYzEsIDB4ZTAzOGE2NzUpLCBU
T0JOKDB4NzI5ZGVmZjMsIDB4OGM1YzYzMjApLAotICAgICAgICAgVE9CTigweGI3ZGY4ZmQ0LCAw
eGE5MGQyYzUzKSwgVE9CTigweDliNzRiMGVjLCAweDY4MWU3Y2QzKSwKLSAgICAgICAgIFRPQk4o
MHg1Y2I1YTYyMywgMHhkYWI0MDdlNSksIFRPQk4oMHhjZGJkMzYxNSwgMHg3NmIzNDBjNiksCi0g
ICAgICAgICBUT0JOKDB4YTE4NDQxNWEsIDB4N2QyODM5MmMpLCBUT0JOKDB4YzE4NGMxZDgsIDB4
ZTk2Zjc4MzApLAotICAgICAgICAgVE9CTigweGMzMjA0ZjE5LCAweDgxZDNhODBmKSwgVE9CTigw
eGZkZTBjODQxLCAweGM4ZTAyNDMyKSwKLSAgICAgICAgIFRPQk4oMHg3ODIwM2IzZSwgMHg4MTQ5
ZTBjMSksIFRPQk4oMHg1OTA0YmRiYiwgMHgwODA1M2E3MyksCi0gICAgICAgICBUT0JOKDB4MzBm
YzFkZDEsIDB4MTAxYjY4MDUpLCBUT0JOKDB4NDNjMjIzYmMsIDB4NDlhYTZkNDkpLAotICAgICAg
ICAgVE9CTigweDllZDY3MTQxLCAweDdhMTc0MDg3KSwgVE9CTigweDMxMTQ2OWEwLCAweGQ1OTk3
MDA4KSwKLSAgICAgICAgIFRPQk4oMHhiMTg5YjY4NCwgMHg1ZTQzZmM2MSksIFRPQk4oMHhmMzI4
MjM3NSwgMHhlMGQzYWI1NyksCi0gICAgICAgICBUT0JOKDB4NGZhMzRiNjcsIDB4YjExODFkYTgp
LCBUT0JOKDB4NjIxZWQwYjIsIDB4OTllZTUyYjgpLAotICAgICAgICAgVE9CTigweDliMTc4ZGUx
LCAweGFkOTkwNjc2KSwgVE9CTigweGQ1MWRlNjdiLCAweDU2ZDU0MDY1KSwKLSAgICAgICAgIFRP
Qk4oMHgyYTJjMjdjNCwgMHg3NTM4YzIwMSksIFRPQk4oMHgzMzg1NmVjOCwgMHgzOGE0MGY1Yyks
Ci0gICAgICAgICBUT0JOKDB4MjUyMmZjMTUsIDB4YmU2Y2RjZGUpLCBUT0JOKDB4MWU2MDNmMzMs
IDB4OWYwYzZmODkpLAotICAgICAgICAgVE9CTigweDc5OTRlZGMzLCAweDEwM2UzMGE2KSwgVE9C
TigweDAzM2EwMGRiLCAweDIyMGM4NTNlKSwKLSAgICAgICAgIFRPQk4oMHhkM2NmYTQwOSwgMHhm
N2JiN2ZkNyksIFRPQk4oMHg3MGY4NzgxZSwgMHg0NjJkMThmNiksCi0gICAgICAgICBUT0JOKDB4
YmJkODI5ODAsIDB4Njg3ZmUyOTUpLCBUT0JOKDB4NmVlZjRjMzIsIDB4NTk1NjY5ZjMpLAotICAg
ICAgICAgVE9CTigweDg2YTkzMDNiLCAweDJmN2U4NWMzKSwgVE9CTigweDVmY2U0NjIxLCAweDcx
OTg4ZjliKSwKLSAgICAgICAgIFRPQk4oMHg1YjkzNWJmNiwgMHhjMTM4YWNiNSksIFRPQk4oMHgz
MGVhN2Q2NywgMHgyNTY2MTIxMiksCi0gICAgICAgICBUT0JOKDB4ZWYxZWI1ZjQsIDB4ZTUxYWI5
YTIpLCBUT0JOKDB4MDU4N2M5OGEsIDB4YWUwNjdjNzgpLAotICAgICAgICAgVE9CTigweGIzY2Ux
YjNjLCAweDc3Y2E5Y2E2KSwgVE9CTigweDJhNTUzZDRkLCAweDU0YjVmMDU3KSwKLSAgICAgICAg
IFRPQk4oMHhjNzg5ODIzNiwgMHg0ZGEyOWVjMiksIFRPQk4oMHhkYmRkNWQxMywgMHhiOWM1NzMx
NiksCi0gICAgICAgICBUT0JOKDB4YzU3ZDZlNmIsIDB4MmNkODBkNDcpLCBUT0JOKDB4ODBiNDYw
Y2YsIDB4ZmU5ZTczOTEpLAotICAgICAgICAgVE9CTigweDk4NjQ4Y2FiLCAweGY5NjNjMzFlKSwg
VE9CTigweDY3ZjlmNjMzLCAweGNjNGQzMmZkKSwKLSAgICAgICAgIFRPQk4oMHgwYWY0MmE5ZCwg
MHhmZGY3YzY4NyksIFRPQk4oMHg1NWYyOTJhMywgMHgwYjAxNWVhNyksCi0gICAgICAgICBUT0JO
KDB4ODllNDY4YjIsIDB4Y2QyMWFiM2QpLCBUT0JOKDB4ZTUwNGYwMjIsIDB4YzM5M2QzOTIpLAot
ICAgICAgICAgVE9CTigweGFiMjFlMWQ0LCAweGE1MDEzYWY5KSwgVE9CTigweGUzMjgzZjc4LCAw
eGMyYzI4YWNiKSwKLSAgICAgICAgIFRPQk4oMHhmMzhiMzVmNiwgMHgyMjZiZjk5ZiksIFRPQk4o
MHhlODM1NDI3NCwgMHgwZTI5MWU2OSksCi0gICAgICAgICBUT0JOKDB4NjE2NzNhMTUsIDB4YjIw
YzE2MmQpLCBUT0JOKDB4YzEwMWRjNzUsIDB4YjA0ZmJkYmUpLAotICAgICAgICAgVE9CTigweDgz
MjNiNGMyLCAweDI1NWJkNjE3KSwgVE9CTigweDZjOTY5NjkzLCAweDZjMmE5MTU0KSwKLSAgICAg
ICAgIFRPQk4oMHhjNmU2NTg2MCwgMHg2MjY3OTM4NyksIFRPQk4oMHg4ZTAxZGIwYywgMHhiOGM4
OGUyMyksCi0gICAgICAgICBUT0JOKDB4MzNjNDI4NzMsIDB4ODkzYTU1NTkpLCBUT0JOKDB4NzYz
MGYwNGIsIDB4NDdhM2UxNDkpLAotICAgICAgICAgVE9CTigweGI1ZDgwODA1LCAweGRkY2YzNWY4
KSwgVE9CTigweDU4MmNhMDgwLCAweDc3ZGZlNzMyKSwKLSAgICAgICAgIFRPQk4oMHgyYzcxNTZl
MSwgMHgwYjE4OTRhMCksIFRPQk4oMHg5MjAzNDAwMSwgMHhkODFjNjhjMCksCi0gICAgICAgICBU
T0JOKDB4ZWQyMjVkMDAsIDB4YzhiMTE1YjUpLCBUT0JOKDB4MjM3ZjljMjIsIDB4ODNiOTA3ZjIp
LAotICAgICAgICAgVE9CTigweDBlYTJmMzJmLCAweDQ0NzBlMmMwKSwgVE9CTigweGI3MjVmN2Mx
LCAweDU4YmU0ZTk1KSwKLSAgICAgICAgIFRPQk4oMHgwZjFkY2FmYSwgMHhiMWFlNTQ2MyksIFRP
Qk4oMHg1OWVkNTE4NywgMHgxYmEyZmMwNCksCi0gICAgICAgICBUT0JOKDB4ZjZlMGYzMTYsIDB4
ZDAxMTVkNGQpLCBUT0JOKDB4NTE4MGIxMmYsIDB4ZDM2OTE1OTkpLAotICAgICAgICAgVE9CTigw
eDE1N2UzMmM5LCAweDUyN2YwYTQxKSwgVE9CTigweDdiMGIwODFkLCAweGE4ZTBlY2MwKSwKLSAg
ICAgICAgIFRPQk4oMHg2ZGJhYWE4YSwgMHhiZjRmMGRkMCksIFRPQk4oMHg5OWIyODljNywgMHg0
ZDI1MjY5NiksCi0gICAgICAgICBUT0JOKDB4NzliNzc1NWUsIDB4ZGJmODY0ZmUpLCBUT0JOKDB4
Njk3NGUyYjEsIDB4NzZjYWQzYWIpLAotICAgICAgICAgVE9CTigweDM1ZGJiZWUyLCAweDA2ZGRk
NjU3KSwgVE9CTigweGU3Y2JkZDExLCAweDJmZjNhOTZkKSwKLSAgICAgICAgIFRPQk4oMHg4ODM4
MTk2OCwgMHgwNzZiZTc1OCksIFRPQk4oMHgyZDczN2U3MiwgMHgwOGM5MWY1ZCksCi0gICAgICAg
ICBUT0JOKDB4NWY4M2FiNjIsIDB4ODZlYzM3NzYpLCBUT0JOKDB4OThhYTY0OWQsIDB4OTQ1ZmE3
YTEpLAotICAgICAgICAgVE9CTigweGY0NzdlYzM3LCAweDcyZWYwOTMzKSwgVE9CTigweDY2ZjUy
YjFlLCAweDA5OGMxN2IxKSwKLSAgICAgICAgIFRPQk4oMHg5ZWVjNThmYiwgMHhkODAzNzM4Yiks
IFRPQk4oMHg5MWFhYWRlNywgMHhlNGU4NmFhNCksCi0gICAgICAgICBUT0JOKDB4NmIxYWU2MTcs
IDB4YTViNTE0OTIpLCBUT0JOKDB4NjMyNzIxMjEsIDB4YmJjNDU5NzQpLAotICAgICAgICAgVE9C
TigweDdlMGUyOGYwLCAweDg2MmM1MTI5KSwgVE9CTigweDBhOGY3OWE5LCAweDMzMjFhNGEwKSwK
LSAgICAgICAgIFRPQk4oMHhlMjZkMTY2NCwgMHg1MDQxYzg4ZiksIFRPQk4oMHgwNTcxYjgwNSwg
MHg1MzIzM2UzYSksCi0gICAgICAgICBUT0JOKDB4ZDFiMGNjZGUsIDB4Yzk1MjA3MTEpLCBUT0JO
KDB4NTVhOWU0ZWQsIDB4M2M4Yjg0YmYpLAotICAgICAgICAgVE9CTigweDk0MjZiZDM5LCAweGEx
ZmVmMzE0KSwgVE9CTigweDRmNWY2MzhlLCAweDZlYjkzZjJiKSwKLSAgICAgICAgIFRPQk4oMHhi
YTJhMWVkMywgMHgyYmY5MzQxYiksIFRPQk4oMHhkNjNjMTMyMSwgMHg0ZDQyZDVhOSksCi0gICAg
ICAgICBUT0JOKDB4ZDI5NjRhODksIDB4MzE2ZGM3YzUpLCBUT0JOKDB4ZDE3NTk2MDYsIDB4Y2E1
MTE4NTEpLAotICAgICAgICAgVE9CTigweGQ4YTkyMDFmLCAweGY5ZTZlZDM1KSwgVE9CTigweGI3
YjVlZTQ1LCAweDY3MzY5MjVhKSwKLSAgICAgICAgIFRPQk4oMHgwYTgzZmJiYywgMHg5OTU4MWFm
NyksIFRPQk4oMHgzMDc2YmM0MCwgMHg2NGVlYjA1MSksCi0gICAgICAgICBUT0JOKDB4NTUxMWM5
OGMsIDB4MDJkZWMzMTIpLCBUT0JOKDB4MjcwZGU4OTgsIDB4MjM4ZGNiNzgpLAotICAgICAgICAg
VE9CTigweDJjZjRjZjljLCAweDUzOWMwOGM5KSwgVE9CTigweGE3MGNiNjVlLCAweDM4ZDNiMDZl
KSwKLSAgICAgICAgIFRPQk4oMHhiMTJlYzEwZSwgMHhjZmU1N2JiZCksIFRPQk4oMHg4MmM3YjY1
NiwgMHgzNWEwYzJiNSksCi0gICAgICAgICBUT0JOKDB4ZGRjN2Q1Y2QsIDB4MTYxYzY3YmQpLCBU
T0JOKDB4ZTMyZTg5ODUsIDB4YWUzYTMyY2MpLAotICAgICAgICAgVE9CTigweDdhYmE5NDQ0LCAw
eGQxMWE1NTI5KSwgVE9CTigweGU5NjRlZDAyLCAweDI0MjdmYTFhKSwKLSAgICAgICAgIFRPQk4o
MHgxNTI4MzkyZCwgMHgyNGExNzcwYSksIFRPQk4oMHhhMTUyY2UyYywgMHgxMmM3MmZjZCksCi0g
ICAgICAgICBUT0JOKDB4NzE0NTUzYTQsIDB4OGVjMDc2NDkpLCBUT0JOKDB4MThiNGMyOTAsIDB4
NDU5ZGQ0NTMpLAotICAgICAgICAgVE9CTigweGVhMzJiNzE0LCAweDdiNjRiMTEwKSwgVE9CTigw
eGI4NzFiZmE1LCAweDJlNmYwN2EyKSwKLSAgICAgICAgIFRPQk4oMHhiNjcxMTJlNSwgMHg5ZTJl
M2M5YiksIFRPQk4oMHhmYmYyNTBlNSwgMHg0NGFhOTBmNiksCi0gICAgICAgICBUT0JOKDB4Zjc3
YWVkYjgsIDB4YmQ1MzkwMDYpLCBUT0JOKDB4M2IwY2RmOWEsIDB4ZDE3MmE2NmYpLAotICAgICAg
ICAgVE9CTigweGVkZjY5ZmVhLCAweGY4YzUxMTg3KSwgVE9CTigweDA1YmI2N2VjLCAweDc0MWU0
ZGE3KSwKLSAgICAgICAgIFRPQk4oMHg0N2RmMGYzMiwgMHgwODExNDM0NSksIFRPQk4oMHg1NmZh
Y2IwNywgMHhiYjk3OTJiMSksCi0gICAgICAgICBUT0JOKDB4ZjNlMDA3ZTksIDB4OGY2MjI5ZTQp
LCBUT0JOKDB4NjJkMTAzZjQsIDB4NTI2ZmJhMGYpLAotICAgICAgICAgVE9CTigweDRmMzNiZWY3
LCAweGIwMzM5ZDc5KSwgVE9CTigweDk4NDEzNTdiLCAweGI1OWJmZWMxKSwKLSAgICAgICAgIFRP
Qk4oMHhmYThkYmI1OSwgMHhjMzRlNjcwNSksIFRPQk4oMHhjM2M3MTgwYiwgMHg3ZmRhYTg0Yyks
Ci0gICAgICAgICBUT0JOKDB4Zjk1ODcyZmMsIDB4YTQxMDg1MzcpLCBUT0JOKDB4ODc1MGNjM2Is
IDB4OTMyYTNlNWEpLAotICAgICAgICAgVE9CTigweGI2MWNjNjlkLCAweGI3Mjc1ZDdkKSwgVE9C
TigweGZmYTAxNjhiLCAweDJlNTliMmU5KSwKLSAgICAgICAgIFRPQk4oMHhjYTAzMmFiYywgMHg2
ZWNiYjQ5MyksIFRPQk4oMHgxZDg2ZGJkMywgMHgyYzkwODJkOCksCi0gICAgICAgICBUT0JOKDB4
YWUxZTBiNjcsIDB4ZTI4ZWY1YmEpLCBUT0JOKDB4MmM5YTQ2OTksIDB4Y2IxOGUxNjkpLAotICAg
ICAgICAgVE9CTigweDBlY2QwZTMzLCAweDFlNmJiZDIwKSwgVE9CTigweDU3MWIzNjBlLCAweGFm
NWU4MWQyKSwKLSAgICAgICAgIFRPQk4oMHhjZDlmZWE1OCwgMHgxMDFjMWQ0NSksIFRPQk4oMHg2
NjUxNzg4ZSwgMHgxODg4MDQ1MiksCi0gICAgICAgICBUT0JOKDB4YTk5NzI2MzUsIDB4MWY4ZGQ0
NDYpLCBUT0JOKDB4NDRiZWQwMjIsIDB4ZTM3MjgxZDApLAotICAgICAgICAgVE9CTigweDA5NGIy
YjJkLCAweDMzZGE1MjVkKSwgVE9CTigweGYxOTM2NzhlLCAweDEzMTQ0ZmQ4KSwKLSAgICAgICAg
IFRPQk4oMHhiOGFiNWJhNCwgMHhmNGMxMDYxZCksIFRPQk4oMHg0MzQzYjVmYSwgMHhkY2NiZTBm
NCksCi0gICAgICAgICBUT0JOKDB4YTg3MDIzNzEsIDB4NjM4MTI3MTMpLCBUT0JOKDB4NDdiZjZk
MmQsIDB4Zjc2MTFkOTMpLAotICAgICAgICAgVE9CTigweDQ2NzI5YjhjLCAweGJkMjFlMWQ3KSwg
VE9CTigweDc0ODRkNGUwLCAweGQ2MjllNzdkKSwKLSAgICAgICAgIFRPQk4oMHg4MzBlNmVlYSwg
MHg2MGRiYWMxZiksIFRPQk4oMHgyM2Q4YzQ4NCwgMHhkYTA2YTJmNyksCi0gICAgICAgICBUT0JO
KDB4ODk2NzE0YjAsIDB4NTBjYTUzNWIpLCBUT0JOKDB4ZGM4ZDM2NDQsIDB4ZWJkOTdhOWIpLAot
ICAgICAgICAgVE9CTigweDEwNmVmOWZhLCAweGIxMjE3N2I0KSwgVE9CTigweGY3OWJmNDY0LCAw
eDUzNGQ1ZDljKSwKLSAgICAgICAgIFRPQk4oMHgyNTM3YTM0OSwgMHhhNmFiMzYwYiksIFRPQk4o
MHhjN2M1NDI1MywgMHhhMDBjNzQ0ZiksCi0gICAgICAgICBUT0JOKDB4YjNjN2EwNDcsIDB4ZTU5
MTFhNzYpLCBUT0JOKDB4NjFmZmE1YzgsIDB4NjQ3ZjFlZTcpLAotICAgICAgICAgVE9CTigweDE1
YWVkMzZmLCAweDhmNTZhYjQyKSwgVE9CTigweDZhMGQ0MWIwLCAweGEzZmY5YWM5KSwKLSAgICAg
ICAgIFRPQk4oMHg2OGY0NjlmNSwgMHhjYzMwZDM1NyksIFRPQk4oMHhiZTlhZGY4MSwgMHg2Yjcy
YmU5NiksCi0gICAgICAgICBUT0JOKDB4MWNkOTI2ZmUsIDB4OTAzYWQ0NjEpLCBUT0JOKDB4N2U4
OWUzOGYsIDB4Y2FjYTQ0MWIpLAotICAgICAgICAgVE9CTigweGYwZjgyZGU1LCAweGZhY2Y2OWQ0
KSwgVE9CTigweDM2M2I3ZTc2LCAweDQ3NzUzNDRjKSwKLSAgICAgICAgIFRPQk4oMHg2ODk0ZjMx
MiwgMHhiMmUzNmQwNCksIFRPQk4oMHgzYzZjYjRmZSwgMHgxMWQxYzlhNSksCi0gICAgICAgICBU
T0JOKDB4ODVkOWMzMzksIDB4NDAwOGUxZjIpLCBUT0JOKDB4NWU5YTg1ZWEsIDB4MjQ5ZjMyNmMp
LAotICAgICAgICAgVE9CTigweGRjMzVjNjBhLCAweDY3OGM1ZTA2KSwgVE9CTigweGMwOGI5NDRm
LCAweDlmODZmYmE5KSwKLSAgICAgICAgIFRPQk4oMHhkZTQwYzAyYywgMHg4OWY3MWYwZiksIFRP
Qk4oMHhhZDhmM2UzMSwgMHhmZjNkYTNjMCksCi0gICAgICAgICBUT0JOKDB4M2VhNTA5NmIsIDB4
NDIxMjVkZWQpLCBUT0JOKDB4MTM4NzljYmYsIDB4YTczNzkxODMpLAotICAgICAgICAgVE9CTigw
eDZmNDcxNGE1LCAweDZiMzA2YTBiKSwgVE9CTigweDM1OWMyZWE2LCAweDY3NjQ2YzVlKSwKLSAg
ICAgICAgIFRPQk4oMHhmYWNmODk0MywgMHgwNzcyNjM2OCksIFRPQk4oMHgwN2E1ODkzNSwgMHg2
NWZmNDMxZSksCi0gICAgICAgICBUT0JOKDB4MjRkNjYxZDEsIDB4Njg3NTRhYjApLCBUT0JOKDB4
ODAxZmNlMWQsIDB4NmY0MjlhNzYpLAotICAgICAgICAgVE9CTigweGMwNjhhODVmLCAweGE1OGNl
NzY5KSwgVE9CTigweGVkYzM1YzU0LCAweDVkNWVjYTJiKSwKLSAgICAgICAgIFRPQk4oMHhlYTMx
Mjc2ZiwgMHhhM2Y2NjBkMSksIFRPQk4oMHhhMDE4NGViZSwgMHhiOGZjNzE2NyksCi0gICAgICAg
ICBUT0JOKDB4MGYyMGYyMWEsIDB4MWQ4ZGIwYWUpLCBUT0JOKDB4ZDk2ZDA5NWYsIDB4NTZjMzVl
MTIpLAotICAgICAgICAgVE9CTigweGVkZjQwMmI1LCAweGY4YzJhMjViKSwgVE9CTigweDFiYjc3
MmI5LCAweDA1OTIwNGI2KSwKLSAgICAgICAgIFRPQk4oMHg1MGNiZWFlMiwgMHgxOWI0ZTM0Yyks
IFRPQk4oMHg5MzEwOWQ4MCwgMHgzZmEwODQ1YSksCi0gICAgICAgICBUT0JOKDB4NTRmN2NjZjcs
IDB4OGVmNTlmYjUpLCBUT0JOKDB4M2I0MzhmZTIsIDB4ODgwNzA5NjMpLAotICAgICAgICAgVE9C
TigweDllMjhjNjU5LCAweDMxZjNiYTliKSwgVE9CTigweDljYzMxYjQ2LCAweGVhZDlkYTkyKSwK
LSAgICAgICAgIFRPQk4oMHgzYzJmMGJhOSwgMHhiNzMzYWE1ZiksIFRPQk4oMHhkZWNlNDdjYiwg
MHhmMDVhZjIzNSksCi0gICAgICAgICBUT0JOKDB4ZjhlM2Y3MTUsIDB4YTJhYzgyYTUpLCBUT0JO
KDB4Yzk3YmE2NDEsIDB4MjIwM2YxOGEpLAotICAgICAgICAgVE9CTigweGMzYWY1NTA0LCAweDA5
YzExMDYwKSwgVE9CTigweDU2ZWEyYzA1LCAweDQ2YWY1MTJkKSwKLSAgICAgICAgIFRPQk4oMHhm
YWMyOGRhZiwgMHhmM2YyODE0NiksIFRPQk4oMHg4N2ZhYjQzYSwgMHg5NTllZjQ5NCl9LAotICAg
ICAgICB7VE9CTigweDA5ODkxNjQxLCAweGQ0YzUxMDVmKSwgVE9CTigweDFhZTgwZjhlLCAweDZk
N2ZiZDY1KSwKLSAgICAgICAgIFRPQk4oMHg5ZDY3MjI1ZiwgMHhiZWU2YmRiMCksIFRPQk4oMHgz
YjQzM2I1OSwgMHg3ZmM0ZDg2MCksCi0gICAgICAgICBUT0JOKDB4NDRlNjZkYjYsIDB4OTNlODU2
MzgpLCBUT0JOKDB4ZjdiNTkyNTIsIDB4ZTNlOTg2MmYpLAotICAgICAgICAgVE9CTigweGRiNzg1
MTU3LCAweDY2NWMzMmVjKSwgVE9CTigweDcwMmZlZmQ3LCAweGFlMzYyZjUwKSwKLSAgICAgICAg
IFRPQk4oMHgzNzU0NDc1ZCwgMHgwZmVmYjBjMyksIFRPQk4oMHhkNDhmYjU2YiwgMHg0NmQ3YzM1
ZCksCi0gICAgICAgICBUT0JOKDB4YTA3MGI2MzMsIDB4MzYzNzk4YTQpLCBUT0JOKDB4YWU4OWYz
ZDIsIDB4OGZkYjk4ZTYpLAotICAgICAgICAgVE9CTigweDk3MGI4OWM4LCAweDYzNjNkMTRjKSwg
VE9CTigweDg5ODE3NTIxLCAweDY3YWJkMjdkKSwKLSAgICAgICAgIFRPQk4oMHg5YmY3ZDQ3NCwg
MHg0NGQ1YTAyMSksIFRPQk4oMHhiMzA4M2JhZiwgMHhjYWM3MmFlZSksCi0gICAgICAgICBUT0JO
KDB4Mzg5NzQxZGUsIDB4YmU5NDlhNDQpLCBUT0JOKDB4NjM4ZTkzODgsIDB4NTQ2YTRmYTUpLAot
ICAgICAgICAgVE9CTigweDNmZTY0MTljLCAweGEwMDQ3YmRjKSwgVE9CTigweDcwNDdmNjQ4LCAw
eGFhZWE1N2NhKSwKLSAgICAgICAgIFRPQk4oMHg1NGU0OGE5MCwgMHg0MWZiYWIxNyksIFRPQk4o
MHhkYThlMGIyOCwgMHg1NzZiZGJhMiksCi0gICAgICAgICBUT0JOKDB4ZTgwN2VlYmMsIDB4Yzcy
YWZkZGMpLCBUT0JOKDB4MDdkMzMzNmQsIDB4ZjQyNTc3YmYpLAotICAgICAgICAgVE9CTigweDYy
YThjMjQ0LCAweGJmZTIwOTI1KSwgVE9CTigweDkxYzE5YWMzLCAweDhmZGNlODY3KSwKLSAgICAg
ICAgIFRPQk4oMHg1YTk2YTVkNSwgMHhkZDM4NzA2MyksIFRPQk4oMHg2MWQ1ODdkNCwgMHgyMWQz
MjRmNiksCi0gICAgICAgICBUT0JOKDB4ZTg3NjczYTIsIDB4YTM3MTczZWEpLCBUT0JOKDB4MjM4
NDgwMDgsIDB4NTM3NzhiNjUpLAotICAgICAgICAgVE9CTigweDEwZjg0NDFlLCAweDA1YmFiNDNl
KSwgVE9CTigweGZhMTFmZTEyLCAweDQ2MjFlZmJlKSwKLSAgICAgICAgIFRPQk4oMHgwNDdiNzcy
ZSwgMHg4MTY4NWQ3YiksIFRPQk4oMHgyM2YyN2Q4MSwgMHhiZjM0YTk3NiksCi0gICAgICAgICBU
T0JOKDB4YzI3NjA4ZTIsIDB4OTE1ZjQ4ZWYpLCBUT0JOKDB4M2IwYjQzZmEsIDB4YTUyMWQ1YzMp
LAotICAgICAgICAgVE9CTigweDc2MTNmYjI2LCAweDYzY2E3Mjg0KSwgVE9CTigweDdmNTcyOWI0
LCAweDFkNGRiODM3KSwKLSAgICAgICAgIFRPQk4oMHg4N2IxNDg5OCwgMHg1ODNiNTI2YiksIFRP
Qk4oMHgwMGI3MzJhNiwgMHhiYmFkZDNkMSksCi0gICAgICAgICBUT0JOKDB4OGUwMmY0MjYsIDB4
MjA0OGUzOTYpLCBUT0JOKDB4NDM2YjUwYjYsIDB4MzgzZDlkZTQpLAotICAgICAgICAgVE9CTigw
eGY3OGQzNDgxLCAweDQ3MWU4NWFkKSwgVE9CTigweDhiMDFlYTZhLCAweGQwMDVjOGQ2KSwKLSAg
ICAgICAgIFRPQk4oMHhkM2M3YWZlZSwgMHg5NzAxNWMwNyksIFRPQk4oMHg0NmNkZjFhOSwgMHg0
ZTNiYTJhZSksCi0gICAgICAgICBUT0JOKDB4N2E0MmU1MDEsIDB4ODNkM2ExZDIpLCBUT0JOKDB4
ZDU0YjUyNjgsIDB4YjU0MWRmZjQpLAotICAgICAgICAgVE9CTigweDNmMjRjZjMwLCAweDRlMjNl
OWJjKSwgVE9CTigweDQzODdmODE2LCAweDEyNmUzNjI0KSwKLSAgICAgICAgIFRPQk4oMHgyNmE0
NmEwMywgMHgzYjBiNmQ2MSksIFRPQk4oMHhhZjFiYzg0NSwgMHg4YjJkNzc3YyksCi0gICAgICAg
ICBUT0JOKDB4MjVjNDAxYmEsIDB4NTI3ZGU3OWMpLCBUT0JOKDB4MGUxMzQ2ZDQsIDB4NDI2MWJi
YjYpLAotICAgICAgICAgVE9CTigweDRiOTZjNDRiLCAweDI4N2I0YmM3KSwgVE9CTigweDY1ODQ5
M2M3LCAweDUyNTQ1NjJmKSwKLSAgICAgICAgIFRPQk4oMHgyM2Y5NDlmZSwgMHhiOGEyNGEyMCks
IFRPQk4oMHgxN2ViZmVkMSwgMHhmNTJjYTUzZiksCi0gICAgICAgICBUT0JOKDB4OWI2OTFiYmUs
IDB4YmNmYjQ4NTMpLCBUT0JOKDB4NTYxN2ZmNmIsIDB4NjI3OGEwNWQpLAotICAgICAgICAgVE9C
TigweDI0MWIzNGM1LCAweGUzYzk5ZWJkKSwgVE9CTigweGZjNjQyNDJlLCAweDE3ODQxNTZhKSwK
LSAgICAgICAgIFRPQk4oMHg0MjA2NDgyZiwgMHg2OTVkNjdkZiksIFRPQk4oMHhiOTY3Y2UwZSwg
MHhlZTI3YzAxMSksCi0gICAgICAgICBUT0JOKDB4NjVkYjM3NTEsIDB4MjFjODBiNWQpLCBUT0JO
KDB4MmU3YTU2M2MsIDB4YTMxZWNjYTApLAotICAgICAgICAgVE9CTigweGU1NmZmYzRlLCAweDUy
MzhhMDdlKSwgVE9CTigweDNkNmMyOTY2LCAweDMyY2VkODU0KSwKLSAgICAgICAgIFRPQk4oMHhl
OTlkN2QxYSwgMHhhZjcwYjg4NSksIFRPQk4oMHhhZmMzYmFkOSwgMHgyZDY4NjQ1OSksCi0gICAg
ICAgICBUT0JOKDB4OWM3OGJmNDYsIDB4MGNjOGJhNWIpLCBUT0JOKDB4NWE0Mzk1MTksIDB4MTg5
NTVhYTMpLAotICAgICAgICAgVE9CTigweGY4YjUxN2E4LCAweDVmZTRlMzE0KSwgVE9CTigweGU2
MDIzNGQwLCAweGZjYjg5MDZmKSwKLSAgICAgICAgIFRPQk4oMHhmZmU1NDJhYywgMHhmMjA2MWIy
MyksIFRPQk4oMHgyODdlMTkxZiwgMHg2YjRjYjU5YyksCi0gICAgICAgICBUT0JOKDB4MjE4NTdk
ZGMsIDB4MDlkODc3ZDgpLCBUT0JOKDB4MWMyMzQ3OGMsIDB4MTQ2Nzg5NDEpLAotICAgICAgICAg
VE9CTigweGJiZjBjMDU2LCAweGI2ZTA1ZWE0KSwgVE9CTigweDgyZGE0YjUzLCAweGIwMTU5NGZl
KSwKLSAgICAgICAgIFRPQk4oMHhmNzUyNjc5MSwgMHhmYWRiODYwOCksIFRPQk4oMHgwNDllODMy
ZCwgMHg3Yjc0Y2RmNiksCi0gICAgICAgICBUT0JOKDB4YTQzNTgxY2MsIDB4YzJiOTBhMzQpLCBU
T0JOKDB4NzM2MzllYjgsIDB4OTM2MGIxMGMpLAotICAgICAgICAgVE9CTigweDRmYmEzMzFmLCAw
eGUxZTRhNzFiKSwgVE9CTigweDZmZmQ2YjkzLCAweDgwNzJmOTE5KSwKLSAgICAgICAgIFRPQk4o
MHg2ZTUzMjcxYywgMHg2NTY3OTAzMiksIFRPQk4oMHg2NzIwNjQ0NCwgMHhmMTQyNzJjZSksCi0g
ICAgICAgICBUT0JOKDB4YzBmNzM0YTMsIDB4YjIzMzU4MzQpLCBUT0JOKDB4OTUyNjIwNWEsIDB4
OTBlZjY4NjApLAotICAgICAgICAgVE9CTigweGNiOGJlNzE3LCAweDA0ZTJiYjBkKSwgVE9CTigw
eDI0MTg4NzFlLCAweDAyZjM4M2ZhKSwKLSAgICAgICAgIFRPQk4oMHhkNzE3NzY4MSwgMHg0MDgy
YzE1NyksIFRPQk4oMHhjYzkxNGFkMCwgMHgyOWMyMDA3MyksCi0gICAgICAgICBUT0JOKDB4ZjE4
NmMxZWIsIDB4ZTU4N2U3MjgpLCBUT0JOKDB4NmZkYjNjMjIsIDB4NjFiY2Q1ZmQpLAotICAgICAg
ICAgVE9CTigweDMwZDAxNGE2LCAweGYyZjlmOGU5KSwgVE9CTigweDk2M2VjZTIzLCAweDRmZWM0
OWQyKSwKLSAgICAgICAgIFRPQk4oMHg4NjIwMjVjNSwgMHg5NjA1YThkOSksIFRPQk4oMHgzOTg3
NDQ0NSwgMHgxOWY4OTI5YSksCi0gICAgICAgICBUT0JOKDB4MDFiNmZmNjUsIDB4MTJiZjQ3NmEp
LCBUT0JOKDB4NTk4YTY0ZDgsIDB4MDljZjdkOTEpLAotICAgICAgICAgVE9CTigweGQ3ZWM3NzQ5
LCAweDkzYmU1NmNhKSwgVE9CTigweDEwODk5Nzg1LCAweGNiYjMzNjE1KSwKLSAgICAgICAgIFRP
Qk4oMHhiOGEwOTJmZCwgMHgwMmVlZTNhZCksIFRPQk4oMHhhODZiM2QzNSwgMHgzMDE0NTI3MCks
Ci0gICAgICAgICBUT0JOKDB4MzIzZDk4YzYsIDB4ODUxMmI2NzUpLCBUT0JOKDB4NGI4YmM3ODUs
IDB4NjJlYmI0MGYpLAotICAgICAgICAgVE9CTigweDdkMzAxZjU0LCAweDQxM2Y5Y2RlKSwgVE9C
TigweGE1ZTRmYjRmLCAweDJiYWI1NjY0KSwKLSAgICAgICAgIFRPQk4oMHgxZDJiMjUyZCwgMHgx
Y2JmZWMyMyksIFRPQk4oMHhmY2Q1NzZiYiwgMHhlMTc3MTIwZCksCi0gICAgICAgICBUT0JOKDB4
MDQ0MjdkM2UsIDB4ODM3MzFhMzQpLCBUT0JOKDB4MmJiOTAyOGUsIDB4ZWQ4MzZlOGUpLAotICAg
ICAgICAgVE9CTigweGIzNmFjZmY4LCAweGI2MTJjYTdjKSwgVE9CTigweGI4OGZlNWVmLCAweGQz
ZDljNzNhKSwKLSAgICAgICAgIFRPQk4oMHhiZTJhNmJjNiwgMHhlZGVhNGViMyksIFRPQk4oMHg0
M2I5MzEzMywgMHg0ODhlZWM3NyksCi0gICAgICAgICBUT0JOKDB4ZjQxZmY1NjYsIDB4YjE3MTA2
ZTEpLCBUT0JOKDB4NDY5ZTkxNzIsIDB4NjU0ZWZhMzIpLAotICAgICAgICAgVE9CTigweGI0NDgw
ZjA0LCAweDQxYzIzZmEzKSwgVE9CTigweGI0NzEyZWIwLCAweGMxOTg5YTJlKSwKLSAgICAgICAg
IFRPQk4oMHgzY2NiYmEwZiwgMHg5M2EyOWNhNyksIFRPQk4oMHg2ZTIwNWMxNCwgMHhkNjE5NDI4
YyksCi0gICAgICAgICBUT0JOKDB4OTBkYjc5NTcsIDB4YjM2NDE2ODYpLCBUT0JOKDB4MDQzMjY5
MWQsIDB4NDVhYzhiNGUpLAotICAgICAgICAgVE9CTigweDA3YTc1OWFjLCAweGY2NGUwMzUwKSwg
VE9CTigweDA1MTRkODljLCAweDljOTcyNTE3KSwKLSAgICAgICAgIFRPQk4oMHgxNzAxMTQ3Ziwg
MHhhOGU2N2ZjMyksIFRPQk4oMHg5ZTJlMGI4YiwgMHhhYjIwODViZSksCi0gICAgICAgICBUT0JO
KDB4ZDU2NTE4MjQsIDB4YWMyODRlNTcpLCBUT0JOKDB4ODkwZDQzMjUsIDB4NzQ4OTM2NjQpLAot
ICAgICAgICAgVE9CTigweDhhN2M1ZTZlLCAweGM1NWU2OGEzKSwgVE9CTigweGJmMTJlOTBiLCAw
eDQzMzljODVhKSwKLSAgICAgICAgIFRPQk4oMHgzMTg0NmI4NSwgMHhmOTIyYjY1NSksIFRPQk4o
MHg5YTU0Y2U0ZCwgMHgwYmY0ZDcwMCksCi0gICAgICAgICBUT0JOKDB4ZDdmNGU4M2EsIDB4ZjFh
MTQyOTUpLCBUT0JOKDB4OTE2Zjk1NWMsIDB4YjI4NWQ0ZjkpLAotICAgICAgICAgVE9CTigweGU1
N2JiMGUwLCAweDk5ZmZkYWJhKSwgVE9CTigweDI4YTQzMDM0LCAweGVhYjBkMTUyKSwKLSAgICAg
ICAgIFRPQk4oMHgwYTM2ZmZhMiwgMHhiOGE5Y2VmOCksIFRPQk4oMHg1NTE3NDA3ZSwgMHhiOWVj
MDUxYSksCi0gICAgICAgICBUT0JOKDB4OWM3OTYwOTYsIDB4ZWE2OGU2NzIpLCBUT0JOKDB4ODUz
ZGI1ZmIsIDB4ZmIzYzc3ZmIpLAotICAgICAgICAgVE9CTigweDIxNDc0YmE5LCAweGU4NjRhNTFh
KSwgVE9CTigweDZjMjY3Njk5LCAweDZlOGExYjhiKSwKLSAgICAgICAgIFRPQk4oMHg3YzgyMzYy
NiwgMHg5NDEyMGEyOCksIFRPQk4oMHhlNjFlOWE0OCwgMHg4MzgzYTVkYiksCi0gICAgICAgICBU
T0JOKDB4N2RkNzUwMDMsIDB4OWY4NDIxNmQpLCBUT0JOKDB4YWIwMjBkMDcsIDB4YWQ0M2NkODUp
LAotICAgICAgICAgVE9CTigweDk0MzdhZTQ4LCAweGRhMTJjNjU5KSwgVE9CTigweDY0NDljMmVi
LCAweGU2NTQ1MmFkKSwKLSAgICAgICAgIFRPQk4oMHhjYzdjNGMxYywgMHgyY2Y5ZDdjMSksIFRP
Qk4oMHgxMzIwODg2YSwgMHhlZTk1ZTVhYiksCi0gICAgICAgICBUT0JOKDB4YmI3YjkwNTYsIDB4
YmVhZTE3MGMpLCBUT0JOKDB4YzhhNWIyNTAsIDB4ZGJjMGQ2NjIpLAotICAgICAgICAgVE9CTigw
eDRlZDgxNDMyLCAweGMxMWQyMzAzKSwgVE9CTigweDdkYTY2OTEyLCAweDFmMDM3NjlmKSwKLSAg
ICAgICAgIFRPQk4oMHgzYWM3YTVmZCwgMHg4NDUzOTgyOCksIFRPQk4oMHgxNGRhZGE5NCwgMHgz
YmNjZGQwMiksCi0gICAgICAgICBUT0JOKDB4OGI4NGMzMjEsIDB4N2VmNmIwZDEpLCBUT0JOKDB4
NTJhOTQ3N2EsIDB4N2M5MzNmMjIpLAotICAgICAgICAgVE9CTigweDVlZjY3MjhhLCAweGZkNDQw
YjgyKSwgVE9CTigweDVjM2JkODU5LCAweDZjZTRiZDVlKSwKLSAgICAgICAgIFRPQk4oMHg5MThi
ODBmNSwgMHhmMjJjMmQzZSksIFRPQk4oMHgzNjhkNTA0MCwgMHhiN2JiNmNjNSksCi0gICAgICAg
ICBUT0JOKDB4YjY2MTQyYTEsIDB4MjY5NWExMWMpLCBUT0JOKDB4NjBhYzU4M2EsIDB4ZWIxOWVh
NzApLAotICAgICAgICAgVE9CTigweDMxN2NiYjk4LCAweDBlYWIyNDM3KSwgVE9CTigweDhjYzA4
YzU1LCAweDVlMjY1NGM4KSwKLSAgICAgICAgIFRPQk4oMHhmZTJkNjUyMCwgMHhlNmQ4MzA3Ziks
IFRPQk4oMHhlOWYxNDdmMywgMHg1NzQyODk5MyksCi0gICAgICAgICBUT0JOKDB4NWY5YzdkMTQs
IDB4ZDJmZDZjZjEpLCBUT0JOKDB4YTNlY2QwNjQsIDB4MmQ0ZmNiYjApLAotICAgICAgICAgVE9C
TigweGFkODNmZWYwLCAweDhlNzM0MWY3KSwgVE9CTigweDY0M2YyM2EwLCAweDNhNjMxMTVjKSwK
LSAgICAgICAgIFRPQk4oMHhkMzhhNzhhYiwgMHhlNjVhYjc0MyksIFRPQk4oMHhiZjdjNzViMSwg
MHgzNWVkYzg5YyksCi0gICAgICAgICBUT0JOKDB4M2RkODc1MmUsIDB4NTMwZGY1NjgpLCBUT0JO
KDB4Zjg1YzRhNzYsIDB4ZTMwOGM2ODIpLAotICAgICAgICAgVE9CTigweDRjOTk1NWIyLCAweGU2
OGFjZjM3KSwgVE9CTigweGE1NDRkZjNkLCAweGFiMzJhZjg1KSwKLSAgICAgICAgIFRPQk4oMHg0
YjhlYzNmNSwgMHhhMjVjZjQ5MyksIFRPQk4oMHg0ZDhmMjc2NCwgMHgxYTYyMmZlYiksCi0gICAg
ICAgICBUT0JOKDB4N2JiNGY3YWEsIDB4ZjBkY2JjNDkpLCBUT0JOKDB4N2RlNTUxZjksIDB4NzBi
YmI0NWIpLAotICAgICAgICAgVE9CTigweGNmZDBmM2U0LCAweDlmMmNhMmU1KSwgVE9CTigweGVj
ZTU4NzA5LCAweDFmNWM3NmVmKSwKLSAgICAgICAgIFRPQk4oMHgzMjkyMGVkZCwgMHgxNjdkNzlh
ZSksIFRPQk4oMHgwMzlkZjhhMiwgMHhmYTdkN2VjMSksCi0gICAgICAgICBUT0JOKDB4ZjQ2MjA2
YzAsIDB4YmIzMGFmOTEpLCBUT0JOKDB4MWZmNWUyZjUsIDB4MjI2NzZiNTkpLAotICAgICAgICAg
VE9CTigweDExZjRhMDM5LCAweDZlYTUxZDY2KSwgVE9CTigweDUwNmMxNDQ1LCAweDgwN2Q3YTI2
KSwKLSAgICAgICAgIFRPQk4oMHg2MGRhNTcwNSwgMHg3NTVhOWIyNCksIFRPQk4oMHg4ZmM4Y2Mz
MiwgMHgxZjFhMzE5ZSksCi0gICAgICAgICBUT0JOKDB4ODM2NDJkNGQsIDB4OTQzM2Q2N2QpLCBU
T0JOKDB4N2ZhNWNiOGYsIDB4NmE3ZGQyOTYpLAotICAgICAgICAgVE9CTigweDU3NjU5MWRiLCAw
eDliN2JkZTA3KSwgVE9CTigweDEzMTczZDI1LCAweDQxOTcxNmZiKSwKLSAgICAgICAgIFRPQk4o
MHhlYTMwNTk5ZCwgMHhkNWIzNDBmZiksIFRPQk4oMHhmYzZiNTI5NywgMHhiMGZlNzZjNSksCi0g
ICAgICAgICBUT0JOKDB4MWM2OTY4YzgsIDB4YWI4ZjVhZGMpLCBUT0JOKDB4ZjcyM2M3ZjUsIDB4
OTAxYzkyOGQpLAotICAgICAgICAgVE9CTigweDQyMDNjMzIxLCAweDk3NzNkNDAyKSwgVE9CTigw
eGRmN2M2YWEzLCAweDFiNTFkZDQ3KSwKLSAgICAgICAgIFRPQk4oMHgzZDQ5ZTM3YSwgMHg1NTJi
ZTIzYyksIFRPQk4oMHg1N2ZlYmVlOCwgMHgwYjVhNmU4NyksCi0gICAgICAgICBUT0JOKDB4YzVl
Y2JlZTQsIDB4N2JkOGU3MzkpLCBUT0JOKDB4NzlkNDQ5OTQsIDB4YWU2M2JmNzUpLAotICAgICAg
ICAgVE9CTigweDE2OGJkMDBmLCAweDM4ZmI4OTIzKSwgVE9CTigweDc1ZDQ4ZWU0LCAweGQwNTMz
MTMwKSwKLSAgICAgICAgIFRPQk4oMHg1NTRmNzdhYSwgMHhkYjVjZGYzMyksIFRPQk4oMHgzMzk2
ZTg5NiwgMHgzYzY5Njc2OSksCi0gICAgICAgICBUT0JOKDB4MmZkZGRiZjIsIDB4ZDNmZDY3NGUp
LCBUT0JOKDB4YmJiOGY2ZWUsIDB4OTlkMGUzZTUpLAotICAgICAgICAgVE9CTigweDUxYjkwNjUx
LCAweGNiYWUyZjcwKSwgVE9CTigweGVmYzRiYzA1LCAweDkzYWFhOGViKSwKLSAgICAgICAgIFRP
Qk4oMHg4ZWNkODY4OSwgMHhkZDFkZjQ5OSksIFRPQk4oMHgxYWVlOTlhOCwgMHgyMmYzNjdhNSks
Ci0gICAgICAgICBUT0JOKDB4OTVkNDg1YjksIDB4YWU4Mjc0YzUpLCBUT0JOKDB4NmMxNGQ0NDUs
IDB4N2QzMGIzOWMpLAotICAgICAgICAgVE9CTigweGJhZmVhOTBiLCAweGJjYzFlZjgxKSwgVE9C
TigweDdjNWYzMTdhLCAweGE0NTlhMmVkKSwKLSAgICAgICAgIFRPQk4oMHgwMTIxMTA3NSwgMHg0
ZWY0NDIyNyksIFRPQk4oMHhhMTdiZWQ2ZSwgMHhkYzIwZjQ5NiksCi0gICAgICAgICBUT0JOKDB4
MGNkZmU0MjQsIDB4ODE5ODUzY2QpLCBUT0JOKDB4MTM3OTMyOTgsIDB4ZjcxZTJjZTcpLAotICAg
ICAgICAgVE9CTigweDNjMWYzMDc4LCAweGRiYmUzMDdiKSwgVE9CTigweDZkZDFjMjBlLCAweDc2
ZWU5OTM2KSwKLSAgICAgICAgIFRPQk4oMHgyM2VlNGI1NywgMHg0MjNjYWEyMCksIFRPQk4oMHg0
YWMzNzkzYiwgMHg4ZWZiODQwZSksCi0gICAgICAgICBUT0JOKDB4OTM0NDM4ZWIsIDB4ZWQxZjhj
YTApLCBUT0JOKDB4M2U1NDY2NTgsIDB4NGViYjI1YTIpLAotICAgICAgICAgVE9CTigweGM0MTVh
ZjBlLCAweGMwNjk4OTZmKSwgVE9CTigweGMxM2VkZGIwLCAweDlhNWFhNDNkKSwKLSAgICAgICAg
IFRPQk4oMHg3YTA0MjA0ZiwgMHhkNDllYjhmNiksIFRPQk4oMHhkMGQ1YmRmYywgMHhkNzRmMTY3
MCksCi0gICAgICAgICBUT0JOKDB4MzY5N2UyODYsIDB4NTZmYzA1NTgpLCBUT0JOKDB4MTAyMDcz
NzEsIDB4MDFjZWJhZGUpLAotICAgICAgICAgVE9CTigweDVmODdlNjkwLCAweDA2NDdhODJiKSwg
VE9CTigweDkwOGUwZWQ0LCAweDhmNDAwNTRmKSwKLSAgICAgICAgIFRPQk4oMHhhOWY2MzNkNCwg
MHg3OTg1MzgwMyksIFRPQk4oMHg4ZWQxM2M5YSwgMHg0YTI4YjI1MiksCi0gICAgICAgICBUT0JO
KDB4M2UyZWY2NzYsIDB4MWY0NjBmNjQpLCBUT0JOKDB4NTM5MzBiOWIsIDB4MzZkMDYzMzYpLAot
ICAgICAgICAgVE9CTigweDM0NzA3M2FjLCAweDhmYzQ5NzliKSwgVE9CTigweDg0MzgwZTBlLCAw
eDVlY2Q1NTk3KSwKLSAgICAgICAgIFRPQk4oMHhlM2IyMmM2YiwgMHhjNGZlM2MzOSksIFRPQk4o
MHhiYTRhODE1MywgMHg2YzdiZWJkZiksCi0gICAgICAgICBUT0JOKDB4ZjIzYWI2YjcsIDB4MjU2
OTM0NTkpLCBUT0JOKDB4NTNiYzM3NzAsIDB4MTQ5MjJiMTEpLAotICAgICAgICAgVE9CTigweDQ2
NDVjOGFiLCAweDVhZmM2MGRiKSwgVE9CTigweGFhMDIyMzU1LCAweDIwYjlmMmEzKSwKLSAgICAg
ICAgIFRPQk4oMHg1MmEyOTU0YywgMHhjZTBmYzUwNyksIFRPQk4oMHg4YzI3MzFiYiwgMHg3Y2Ux
YzJlNyksCi0gICAgICAgICBUT0JOKDB4ZjM5NjA4YWIsIDB4MThhMDMzOWQpLCBUT0JOKDB4YWM3
YTY1OGQsIDB4MzczNTQzNmMpLAotICAgICAgICAgVE9CTigweGIyMmMyYjA3LCAweGNkOTkyYjRm
KSwgVE9CTigweDRlODNkYWVjLCAweGY0MGRjZmQ0KSwKLSAgICAgICAgIFRPQk4oMHg4YTM0Yzdi
ZSwgMHgyZjM5ZWEzZSksIFRPQk4oMHhlZjBjMDA1ZiwgMHhiMGE1NmQyZSksCi0gICAgICAgICBU
T0JOKDB4NjI3MzFmNmEsIDB4NmVkZDgwMzgpLCBUT0JOKDB4NTcyMWQ3NDAsIDB4NGUzY2IwNzUp
LAotICAgICAgICAgVE9CTigweDFlYTQxNTExLCAweGZiZWVlZTFiKSwgVE9CTigweGQxZWY1ZTcz
LCAweGVmMWQwYzA1KSwKLSAgICAgICAgIFRPQk4oMHg0MmZlZWZkMSwgMHg3M2MwN2QzNSksIFRP
Qk4oMHhlNTMwYTAwYSwgMHg4YTMyOTQ5MyksCi0gICAgICAgICBUT0JOKDB4NWQ1NWI3ZmUsIDB4
ZjE1ZWJmYjApLCBUT0JOKDB4NTQ5ZGUwM2MsIDB4ZDMyMjQ5MWEpLAotICAgICAgICAgVE9CTigw
eGY3YjVmNjAyLCAweDc0NWIzMjM3KSwgVE9CTigweDM2MzJhM2EyLCAweDFhYjZlMmI2KSwKLSAg
ICAgICAgIFRPQk4oMHgwZDNiYmE4OSwgMHgwZWY1OWY3OCksIFRPQk4oMHgwZGZjNjQ0MywgMHhj
OWU1MmI5YSksCi0gICAgICAgICBUT0JOKDB4MWRjNzk2OTksIDB4NzI2MzE0NDcpLCBUT0JOKDB4
ZWYwMzM5MTcsIDB4YjNiZTIwYjEpLAotICAgICAgICAgVE9CTigweDBjOTI3MzVkLCAweGIxMzgz
OTQ4KSwgVE9CTigweGMxZmMyOWEyLCAweGMwZGQ3ZDdkKSwKLSAgICAgICAgIFRPQk4oMHg2NDg1
YjY5NywgMHg0MDNlZDA2OCksIFRPQk4oMHgxM2JmYWFiMywgMHhhYWM5M2JkYyksCi0gICAgICAg
ICBUT0JOKDB4NDEwZGM2YTksIDB4MGRlZWFmNTIpLCBUT0JOKDB4YjAwM2ZiMDIsIDB4NGM2NDFj
MTUpLAotICAgICAgICAgVE9CTigweDEzODQ5NzhjLCAweDViYzUwNGM0KSwgVE9CTigweDM3NjQw
NDg3LCAweDg2NGE2YTc3KSwKLSAgICAgICAgIFRPQk4oMHgwNTk5MWJjNiwgMHgyMjJhNzdkYSks
IFRPQk4oMHg2MjI2MGE1NywgMHg1ZTQ3ZWIxMSksCi0gICAgICAgICBUT0JOKDB4YzdhZjY2MTMs
IDB4ZjIxYjQzMmMpLCBUT0JOKDB4MjJmM2FjYzksIDB4YWI0OTUzZTkpLAotICAgICAgICAgVE9C
TigweDUyOTM0OTIyLCAweDhlNDFkMTU1KSwgVE9CTigweDRkMDI0NTY4LCAweDNhYzA1OWVmKSwK
LSAgICAgICAgIFRPQk4oMHhiMDIwMTc1NSwgMHg0ZDg4NDQxMSksIFRPQk4oMHhjZTgwNTVjZiwg
MHhhNTlhMTc4ZiksCi0gICAgICAgICBUT0JOKDB4Y2Q3N2QxYWYsIDB4ZjYyMDQ1NDkpLCBUT0JO
KDB4YTBhMDBhM2UsIDB4YzcwNjY3NTkpLAotICAgICAgICAgVE9CTigweDQ3MTA3MWVmLCAweDAy
NzJjMjI5KSwgVE9CTigweDAwOWJjZjZiLCAweGQzYzRiNmIwKSwKLSAgICAgICAgIFRPQk4oMHgy
YTI2MzhhOCwgMHgyMjMwNTE3NyksIFRPQk4oMHhkNTFkNTlkZiwgMHg0MTY0NWJiZiksCi0gICAg
ICAgICBUT0JOKDB4YTgxMTQyZmQsIDB4YzBhN2EzYzApLCBUT0JOKDB4YTE3ZWNhNmQsIDB4NGM3
MDYzZWUpLAotICAgICAgICAgVE9CTigweDBiYjg4N2VkLCAweDYwZDlkY2VjKSwgVE9CTigweGQ2
ZDI4ZTUxLCAweDIwYWQyNDU1KSwKLSAgICAgICAgIFRPQk4oMHhlYmVkNjMwOCwgMHhhNjcxMDJi
YSksIFRPQk4oMHgwNDJjMzExNCwgMHg4YmZmYTQwOCksCi0gICAgICAgICBUT0JOKDB4ZmQwOTlh
YzUsIDB4OGFhNjhlMzApLCBUT0JOKDB4N2E2YTNkN2MsIDB4MTQ4MzUxM2UpLAotICAgICAgICAg
VE9CTigweGZmY2M2Yjc1LCAweGJhMmQ4ZjBjKSwgVE9CTigweDU0ZGFjZjk2LCAweDFlNzhiOTU0
KSwKLSAgICAgICAgIFRPQk4oMHhmNjQ1Njk2ZiwgMHhhNGE5YWY4OSksIFRPQk4oMHgzYTQxMTk0
MCwgMHgwNmFjOThlYyksCi0gICAgICAgICBUT0JOKDB4NDFiOGIzZjYsIDB4MjJhNjdhMjApLCBU
T0JOKDB4MmQwYjFlMGYsIDB4OTlkZWM2MjYpLAotICAgICAgICAgVE9CTigweDI3Yzg5MTkyLCAw
eDQwYmUzNGU4KSwgVE9CTigweGM3MTYyYjM3LCAweDkxOTA3ZjM1KSwKLSAgICAgICAgIFRPQk4o
MHg5MDE4OGVjMSwgMHhhOTU2NzAyYiksIFRPQk4oMHhjYTEzMmY3ZCwgMHhkZjkzNzY5YyksCi0g
ICAgICAgICBUT0JOKDB4M2VjZTQ0ZjksIDB4MGUyMDI1YjQpLCBUT0JOKDB4NjdhYWVjNjksIDB4
MGM2MmYxNGMpLAotICAgICAgICAgVE9CTigweGFkNzQxNDE4LCAweDIyZTNjYzExKSwgVE9CTigw
eGNmOWI3NWMzLCAweDdmZjlhNTBlKSwKLSAgICAgICAgIFRPQk4oMHgwMmZhMmIxNiwgMHg0ZDM0
ODI3MiksIFRPQk4oMHhiZDk5ZDYxYSwgMHg5OTU5ZDU2ZCksCi0gICAgICAgICBUT0JOKDB4YmM0
ZjE5ZGIsIDB4MTg3NjI5MTYpLCBUT0JOKDB4Y2M3Y2NlNTAsIDB4NDljMWFjODApLAotICAgICAg
ICAgVE9CTigweDRkNTllYmFhLCAweGQ4NDZiZDgzKSwgVE9CTigweDg3NzVhOWRjLCAweGE5MjAy
ODQ5KSwKLSAgICAgICAgIFRPQk4oMHgwN2VjNGFlMSwgMHg2ZTFmNGNhOSksIFRPQk4oMHgyN2Vi
NTg3NSwgMHhiYTg5M2YxMSksCi0gICAgICAgICBUT0JOKDB4MDAyODRkNTEsIDB4NjYyY2M1NjUp
LCBUT0JOKDB4ODIzNTNhNmIsIDB4MGRiNDEzOGQpLAotICAgICAgICAgVE9CTigweGQ5YzdhYWFh
LCAweGFhMzJhNTk0KSwgVE9CTigweGY1NTI4YjVlLCAweGE1NjY5YzQ3KSwKLSAgICAgICAgIFRP
Qk4oMHhmMzIyMDIzMSwgMHgyZjIzYzVmZiksIFRPQk4oMHhlM2U4MTQ3YSwgMHg2YWZmYTNhMSks
Ci0gICAgICAgICBUT0JOKDB4ZmI0MjNkNWMsIDB4MjAyZGRkYTApLCBUT0JOKDB4M2Q2NDE0YWMs
IDB4NmI4NzFiZDQpLAotICAgICAgICAgVE9CTigweDU4NmY4MmUxLCAweGE1MWExNjhhKSwgVE9C
TigweGI3MTJjNjcxLCAweDQ4YWU1NDQ4KSwKLSAgICAgICAgIFRPQk4oMHg5YTJlNGJkMSwgMHg3
NjIzM2ViOCksIFRPQk4oMHgwMTg4MjIzYSwgMHg3ODgxMWNhOSksCi0gICAgICAgICBUT0JOKDB4
NTUzYzVlMjEsIDB4ZjdjMThkZTEpLCBUT0JOKDB4NzY4MmU0NTEsIDB4YjI3YmIyODYpLAotICAg
ICAgICAgVE9CTigweDNlZDAzNmIzLCAweDBlNTFlOTI5KSwgVE9CTigweGY0ODcyMTFiLCAweGVj
OWNiMzRmKSwKLSAgICAgICAgIFRPQk4oMHgwZDA5NDI3NywgMHgwYzI0ZWZjOCksIFRPQk4oMHgw
MzQ5ZmQwNCwgMHhiZWY3MzdhNCksCi0gICAgICAgICBUT0JOKDB4NmQxYzlkZDIsIDB4NTE0Y2Rk
MjgpLCBUT0JOKDB4MjljMTM1ZmYsIDB4MzBkYTk1MjEpLAotICAgICAgICAgVE9CTigweGVhNmU0
NTA4LCAweGY3OGIwYjZmKSwgVE9CTigweDE3NmY1ZGQyLCAweDY3OGMxNDNjKSwKLSAgICAgICAg
IFRPQk4oMHgwODE0ODQxOCwgMHg0YmUyMWU2NSksIFRPQk4oMHgyN2Y3NTI1YywgMHhlN2RmMzhj
NCksCi0gICAgICAgICBUT0JOKDB4MWZiNzBlMDksIDB4NzQ4YWIxYTQpLCBUT0JOKDB4OWNiYTUw
YTAsIDB4NWVmZTQ0MzMpLAotICAgICAgICAgVE9CTigweDc4NDZjN2E2LCAweDE1Zjc1YWYyKSwg
VE9CTigweDJhN2MyYzU3LCAweDVlZTczZWE4KSwKLSAgICAgICAgIFRPQk4oMHg0MmU1NjZhNCwg
MHgzZjBhNDQ5YSksIFRPQk4oMHg0NTQ3NGMzYiwgMHhhZDkwZmMzZCksCi0gICAgICAgICBUT0JO
KDB4NzQ0N2JlM2QsIDB4OGI2MWQwNTcpLCBUT0JOKDB4M2U5ZDFjZjEsIDB4M2E0ZWMwOTIpLAot
ICAgICAgICAgVE9CTigweDE2MDNlNDUzLCAweGYzODBhNmU2KSwgVE9CTigweDBiODZlNDMxLCAw
eDliMTQzN2MyKSwKLSAgICAgICAgIFRPQk4oMHg3YTQxNzNmMiwgMHhlZjI5NjEwYSksIFRPQk4o
MHg4ZmE3MjlhNywgMHhmMDNkNTdmNyksCi0gICAgICAgICBUT0JOKDB4M2UxODZmNmUsIDB4NmM5
YzIxN2UpLCBUT0JOKDB4YmUxZDMwNzksIDB4OTE5MTk1MjQpLAotICAgICAgICAgVE9CTigweDky
YTYyYTcwLCAweDE1M2Q0ZmIxKSwgVE9CTigweDMyZWQzZTM0LCAweGQ2OGMyZjcxKSwKLSAgICAg
ICAgIFRPQk4oMHhkNzg1MDI3ZiwgMHg5ZWIxYThiNyksIFRPQk4oMHhiYzM3ZWI3NywgMHhjNWIy
MmZlOCksCi0gICAgICAgICBUT0JOKDB4NDY2YjM0ZjAsIDB4YjlkNmExOTEpLCBUT0JOKDB4MDA4
YTg5YWYsIDB4OWEwNWY4MTYpLAotICAgICAgICAgVE9CTigweDE5YjAyOGZiLCAweDdkNDJjMTBh
KSwgVE9CTigweDdmZThjOTJmLCAweDQ5YjNmNmI4KSwKLSAgICAgICAgIFRPQk4oMHg1ODkwN2Nj
MCwgMHhhNWEwYWRlMyksIFRPQk4oMHhiMzE1NGY1MSwgMHg1NTlkMWE3YyksCi0gICAgICAgICBU
T0JOKDB4NTA2NmVmYjYsIDB4ZDk3OTBlZDYpLCBUT0JOKDB4YTc3YTBjYmMsIDB4YTZhYTc5M2Ip
LAotICAgICAgICAgVE9CTigweDFhOTE1ZjNjLCAweDIyM2UwNDJlKSwgVE9CTigweDFjNWRlZjA0
LCAweDY5YzU4NzRiKSwKLSAgICAgICAgIFRPQk4oMHgwZTgzMDA3OCwgMHg3M2I2YzFkYSksIFRP
Qk4oMHg1NWNmODVkMiwgMHhmY2Q4NTU3YSksCi0gICAgICAgICBUT0JOKDB4MGY3YzdjNzYsIDB4
MDQ2MGYzYjEpLCBUT0JOKDB4ODcwNTJhY2IsIDB4NDZlNTgwNjMpLAotICAgICAgICAgVE9CTigw
eDA5MjEyYjgwLCAweDkwN2VhZTY2KSwgVE9CTigweDNjYjA2OGUwLCAweDRkNzIxYzg5KSwKLSAg
ICAgICAgIFRPQk4oMHhhODc5NDFhZSwgMHhkZDQ1YWMxYyksIFRPQk4oMHhkZThkNWMwZCwgMHgw
ZGFhMGRiYiksCi0gICAgICAgICBUT0JOKDB4ZGE0MjFmZGMsIDB4ZTM1MDJlNmUpLCBUT0JOKDB4
Yzg5NDQyMDEsIDB4NGQ4OWEwODQpLAotICAgICAgICAgVE9CTigweDczMDdiYTVlLCAweGYwYzI0
YmZiKSwgVE9CTigweGRhMjEyYmViLCAweDIwYmRlMGVmKSwKLSAgICAgICAgIFRPQk4oMHhlYTJk
YTI0YiwgMHhmODJjZTY4MiksIFRPQk4oMHgwNThkMzgxNiwgMHgwN2Y3MWZlNCksCi0gICAgICAg
ICBUT0JOKDB4MzVhMDI0NjIsIDB4NWZmYWQ4ZGUpLCBUT0JOKDB4Y2Q3YjA1ZGMsIDB4YWFkY2Vm
YWIpLAotICAgICAgICAgVE9CTigweGQ0NDJmOGVkLCAweDFkOWY1NGVjKSwgVE9CTigweDhiZTNk
NjE4LCAweGIyZDNiNWNhKSwKLSAgICAgICAgIFRPQk4oMHhlMjIyMGVkMCwgMHhlMDZiMmNlMiks
IFRPQk4oMHg4MjY5OWE1ZiwgMHgxYjBkYTRjMCksCi0gICAgICAgICBUT0JOKDB4M2ZmMTA2ZjUs
IDB4NzFjMGMzYTcpLCBUT0JOKDB4OGY1ODBmNWEsIDB4MGQzNDE4MGMpLAotICAgICAgICAgVE9C
TigweDRlYmIxMjBlLCAweDIyZDdkMzc1KSwgVE9CTigweDVlNTc4MmNjLCAweGU5NTEzNjc1KSwK
LSAgICAgICAgIFRPQk4oMHgyMjc1NTgwYywgMHg5OWM4MmE3MCksIFRPQk4oMHhlODM1OWZiZiwg
MHgxNWVhOGM0YyksCi0gICAgICAgICBUT0JOKDB4NTNiNDhkYjgsIDB4N2I0MTVlNzApLCBUT0JO
KDB4YWFjZjIyNDAsIDB4MTAwYzYwMTQpLAotICAgICAgICAgVE9CTigweDlmYWFjY2Y1LCAweGU0
NjUyZjFkKSwgVE9CTigweGJkNmZkZDJhLCAweGQ1NjE1N2IyKSwKLSAgICAgICAgIFRPQk4oMHhh
NGY0ZmIxZiwgMHg2MjYxZWM1MCksIFRPQk4oMHgyNDRlNTVhZCwgMHg0NzZiY2Q1MiksCi0gICAg
ICAgICBUT0JOKDB4ODgxYzkzMDUsIDB4MDQ3ZDMyMGIpLCBUT0JOKDB4MWNhOTgzZDUsIDB4NjE4
MTI2M2YpLAotICAgICAgICAgVE9CTigweDM1NGU5YTQ0LCAweDI3OGZiOGVlKSwgVE9CTigweGFk
MmRiYzBmLCAweDM5NmU0OTY0KSwKLSAgICAgICAgIFRPQk4oMHg3MjNmM2FhMiwgMHg5MjY4YjNk
ZSksIFRPQk4oMHgwZDFjYTI5YSwgMHhlNmUwNjA5YSksCi0gICAgICAgICBUT0JOKDB4Nzk0ODY2
YWEsIDB4NmNmNDQyNTIpLCBUT0JOKDB4MGI1OWYzZTMsIDB4MDFhZjg3ZWQpLAotICAgICAgICAg
VE9CTigweGUyMzRlNWZmLCAweDdmNGE2YzUxKSwgVE9CTigweGE4NzY4ZmQyLCAweDYxZGMyZjdl
KSwKLSAgICAgICAgIFRPQk4oMHhkYWZjNzMzMiwgMHgwYTk0ZDgxZiksIFRPQk4oMHhkN2Y4NDI4
MiwgMHgwNjkzOGNlMSksCi0gICAgICAgICBUT0JOKDB4YWUwYjNjMGUsIDB4MDU0NjA2M2UpLCBU
T0JOKDB4N2ZiYWRjYjIsIDB4NWQ2MWFiYzYpLAotICAgICAgICAgVE9CTigweGQ1ZDdhMmM5LCAw
eDM2OWFjNDAwKSwgVE9CTigweGE1OTc4ZDA5LCAweGFlNjdkMTBjKSwKLSAgICAgICAgIFRPQk4o
MHgyOTBmMjExZSwgMHg0Zjg1ZWFhYyksIFRPQk4oMHhlNjFlMmFkMSwgMHhmYWNhYzY4MSksCi0g
ICAgICAgICBUT0JOKDB4YWUxMjUyMjUsIDB4Mzg4Mzg0Y2QpLCBUT0JOKDB4YTdmYjY4ZTksIDB4
Y2NmZGUzMGYpLAotICAgICAgICAgVE9CTigweDdhNTliOTM2LCAweDNkYWVkNGMyKSwgVE9CTigw
eDgwYTlhYTQwLCAweDI2MDZmNzg5KSwKLSAgICAgICAgIFRPQk4oMHhiNDBjMWVhNSwgMHhmNmE2
ZDkwYSksIFRPQk4oMHg5NDgzNjRkMywgMHg1MTRkNTg4NSksCi0gICAgICAgICBUT0JOKDB4MDYy
ZWJjNjAsIDB4NzA5ODUxODIpLCBUT0JOKDB4YTZkYjViMGUsIDB4MzMzMTA4OTUpLAotICAgICAg
ICAgVE9CTigweDY0YTEyMTc1LCAweGUzMjljMmY1KSwgVE9CTigweGM1ZjI1YmQyLCAweDkwZWEy
MzdlKSwKLSAgICAgICAgIFRPQk4oMHg3OTE1YzUyNCwgMHgyZDBhNGMyMyksIFRPQk4oMHhlYjVk
MjZlNCwgMHg2YmIzY2M1MiksCi0gICAgICAgICBUT0JOKDB4MzY5YTkxMTYsIDB4YzA5ZTJjOTIp
LCBUT0JOKDB4MGM1MjdmOTIsIDB4Y2YxODJjZjgpLAotICAgICAgICAgVE9CTigweDllNTkxOTM4
LCAweDJhZWRlMGFjKSwgVE9CTigweGIyOTIyMjA4LCAweDZjYzM0OTM5KSwKLSAgICAgICAgIFRP
Qk4oMHgzYzlkODk2MiwgMHg5OWEzNDM2MSksIFRPQk4oMHgzYzgxODM2ZCwgMHhjMTkwNWZlNiks
Ci0gICAgICAgICBUT0JOKDB4NGJmZWI1N2YsIDB4YTAwMWVjNWEpLCBUT0JOKDB4ZTk5M2Y1YmIs
IDB4YTBkYzVkYmEpLAotICAgICAgICAgVE9CTigweDQ3ODg0MTA5LCAweDcyNGExMzgwKSwgVE9C
TigweDhhMDM2OWFiLCAweDMyZmU5YTA0KSwKLSAgICAgICAgIFRPQk4oMHhlYTA2OGQ2MCwgMHg4
YzkyN2RiOCksIFRPQk4oMHhiZjVmMzdjZiwgMHg5NDY1NTc0MSksCi0gICAgICAgICBUT0JOKDB4
NDdkNDAyYTIsIDB4MDRiNmM3ZWEpLCBUT0JOKDB4NDU1MWMyOTUsIDB4NmFmMjU5Y2IpLAotICAg
ICAgICAgVE9CTigweDY5OGI3MWU3LCAweGVkNzdlZThiKSwgVE9CTigweGJkZGY3YmQwLCAweGYz
MDlkNWM3KSwKLSAgICAgICAgIFRPQk4oMHg2MjAxYzIyYywgMHgzNGU3ODBjYSksIFRPQk4oMHhh
YjA0ZjdkOCwgMHg0YzI5NWVmNCksCi0gICAgICAgICBUT0JOKDB4MWM5NDcyOTQsIDB4NDMxM2E4
Y2UpLCBUT0JOKDB4ZTUzMmU0YWMsIDB4OTJjYTRjZmUpLAotICAgICAgICAgVE9CTigweDg5NzM4
ZjgwLCAweGQwYTdhOTdhKSwgVE9CTigweGVjMDg4Yzg4LCAweGE1ODBmZDViKSwKLSAgICAgICAg
IFRPQk4oMHg2MTJiMWVjYywgMHg0MmNlOWU1MSksIFRPQk4oMHg4Zjk4NDBmZCwgMHhiMjVmZGQy
YSksCi0gICAgICAgICBUT0JOKDB4M2NkYTc4YzAsIDB4MDFlN2Y4MzkpLCBUT0JOKDB4NTQ2YjNk
M2EsIDB4ZWNlMDU0ODApLAotICAgICAgICAgVE9CTigweDI3MTcxOWE5LCAweDgwZDMwOTE2KSwg
VE9CTigweDQ1NDk3MTA3LCAweDU4NGMyMGM0KSwKLSAgICAgICAgIFRPQk4oMHhhZjhmOTQ3OCwg
MHg1YmM3ODYwOCksIFRPQk4oMHgyOGM3ZDQ4NCwgMHgyNzdlMmE0YyksCi0gICAgICAgICBUT0JO
KDB4ZmNlMDE3NjcsIDB4ODhhMmZmZTQpLCBUT0JOKDB4ZGM1MDZhMzUsIDB4MjhlMTY5YTUpLAot
ICAgICAgICAgVE9CTigweDBlYTEwODYxLCAweDdhZjljOTNhKSwgVE9CTigweDFlZDI0MzYxLCAw
eDAzZmEwZTA4KSwKLSAgICAgICAgIFRPQk4oMHg5NmVhYWE5MiwgMHhhM2Q2OTRlNyksIFRPQk4o
MHhjMGY0M2I0ZCwgMHhlZjUwYmM3NCksCi0gICAgICAgICBUT0JOKDB4Y2U2YWE1OGMsIDB4NjQx
MTRkYjQpLCBUT0JOKDB4ODIxOGU4ZWEsIDB4N2MwMDBmZDQpLAotICAgICAgICAgVE9CTigweGFj
ODE1ZGZiLCAweDE4NWY4ODQ0KSwgVE9CTigweGNkN2U5MGNiLCAweDE1NTdhYmZiKSwKLSAgICAg
ICAgIFRPQk4oMHgyM2QxNjY1NSwgMHhhZmJmZWNkZiksIFRPQk4oMHg4MGYzMjcxZiwgMHgwODVj
YWM0YSksCi0gICAgICAgICBUT0JOKDB4N2ZjMzlhYTcsIDB4ZDBlNjJmNDcpLCBUT0JOKDB4ODhk
NTE5ZDEsIDB4NDYwYTQ4ZTUpLAotICAgICAgICAgVE9CTigweDU5NTU5YWM0LCAweGQyOGYxMDFl
KSwgVE9CTigweDc5ODFkOWU5LCAweGNhOWFlODE2KSwKLSAgICAgICAgIFRPQk4oMHg1YzM4NjUy
YywgMHg5YWMzODIwMyksIFRPQk4oMHg4NmVhZjg3ZiwgMHg1NzY1N2ZlNSksCi0gICAgICAgICBU
T0JOKDB4NTY4ZmM0NzIsIDB4ZTIxZjU0MTYpLCBUT0JOKDB4MmFmZmYzOWMsIDB4ZTdlNTk3YjUp
LAotICAgICAgICAgVE9CTigweDNhZGJiYjA3LCAweDI1NmQ0ZWFiKSwgVE9CTigweDIyNTk4Njky
LCAweDgyODVhYjg5KSwKLSAgICAgICAgIFRPQk4oMHgzNWY4MTEyYSwgMHgwNDFjYWVmZSksIFRP
Qk4oMHg5NWRmMDJlMywgMHhhNTA2NGM4YiksCi0gICAgICAgICBUT0JOKDB4NGQ2MzM1NmUsIDB4
YzcwMDRiZjMpLCBUT0JOKDB4MjMwYTA4ZjQsIDB4ZGI4M2M3ZGUpLAotICAgICAgICAgVE9CTigw
eGNhMjdiMjcwLCAweDg3MDlhN2I3KSwgVE9CTigweDBkMWM0Y2M0LCAweGNiOWFiZDJkKSwKLSAg
ICAgICAgIFRPQk4oMHg4YTBiYzY2ZSwgMHg3NTUwZmVlOCksIFRPQk4oMHgzNjljZDRjNywgMHg5
Y2Y3MjQ3ZSksCi0gICAgICAgICBUT0JOKDB4NzU1NjJlODQsIDB4OTJiNWI3ZTcpLCBUT0JOKDB4
OGZlZDBkYTAsIDB4NTgwMmFmN2IpLAotICAgICAgICAgVE9CTigweDZhNzA5MWMyLCAweGU0OGZi
ODg5KSwgVE9CTigweDI2ODgyYzEzLCAweDdiOGE5ZDA2KSwKLSAgICAgICAgIFRPQk4oMHhhMjQ5
ODY2MywgMHgxYjgyYTBlMiksIFRPQk4oMHg4NDRlZDczNiwgMHgzNTE4MTUyZCksCi0gICAgICAg
ICBUT0JOKDB4MjgyZjQ3NmYsIDB4ZDg2ZTI3YzcpLCBUT0JOKDB4YTA0ZWRhY2EsIDB4MDRhZmVm
ZGMpLAotICAgICAgICAgVE9CTigweDhiMjU2ZWJjLCAweDYxMTllMzRkKSwgVE9CTigweDU2YTQx
M2U5LCAweDA3ODdkNzhiKX0sCi0gICAgICAgIHtUT0JOKDB4ODJlZTA2MWQsIDB4NWE3NGJlNTAp
LCBUT0JOKDB4ZTQxNzgxYzQsIDB4ZGVhMTZmZjUpLAotICAgICAgICAgVE9CTigweGUwYjBjODFl
LCAweDk5YmZjOGEyKSwgVE9CTigweDYyNGY0ZDY5LCAweDBiNTQ3ZTJkKSwKLSAgICAgICAgIFRP
Qk4oMHgzYTgzNTQ1ZCwgMHhiZGNjOWFlNCksIFRPQk4oMHgyNTczZGJiNiwgMHg0MDliMWU4ZSks
Ci0gICAgICAgICBUT0JOKDB4NDgyOTYwYzQsIDB4YTZjOTM1MzkpLCBUT0JOKDB4ZjAxMDU5YWQs
IDB4NWFlMTg3OTgpLAotICAgICAgICAgVE9CTigweDcxNWM5Zjk3LCAweDMxMTI3OTVmKSwgVE9C
TigweGU4MjQ0NDM3LCAweDk4NGU2ZWUxKSwKLSAgICAgICAgIFRPQk4oMHg1NWNiNDg1OCwgMHhl
Y2I2NmJjZCksIFRPQk4oMHg3YzEzNjczNSwgMHhhYmFmZmJlZSksCi0gICAgICAgICBUT0JOKDB4
NTQ2NjE1OTUsIDB4NWRiZWMzOGUpLCBUT0JOKDB4NTFjMDc4MmMsIDB4Mzg4YWQxNTMpLAotICAg
ICAgICAgVE9CTigweDliYTRjNTNhLCAweGM2ZTA5NTJmKSwgVE9CTigweDI3ZTY3ODJhLCAweDFi
MjFkZmE4KSwKLSAgICAgICAgIFRPQk4oMHg2ODJmOTAzZCwgMHg0ZWQyZGJjMiksIFRPQk4oMHgw
ZWJhNTljOCwgMHg3YzNiMmQ4MyksCi0gICAgICAgICBUT0JOKDB4OGU5ZGM4NGQsIDB4OWM3ZTkz
MzUpLCBUT0JOKDB4NWY5YjIxYjAsIDB4MGViMjI2ZDcpLAotICAgICAgICAgVE9CTigweGUzM2Jk
Mzk0LCAweGFmMjY3YmFlKSwgVE9CTigweGFhODZjYzI1LCAweGJlMmUxNWFlKSwKLSAgICAgICAg
IFRPQk4oMHg0ZjBiZjY3ZCwgMHg2YThlYzUwMCksIFRPQk4oMHg1ODQ2YWE0NCwgMHhmOTYzMDY1
OCksCi0gICAgICAgICBUT0JOKDB4ZmViMDk3NDAsIDB4ZTJjMmJmMTUpLCBUT0JOKDB4NjI3YTIy
MDUsIDB4YTllOTk3MDQpLAotICAgICAgICAgVE9CTigweGVjOGQ3M2QwLCAweGMyZmJjNTY1KSwg
VE9CTigweDIyM2VlZDhmLCAweGMyMGM4ZGU4KSwKLSAgICAgICAgIFRPQk4oMHgxZWUzMjU4Mywg
MHhhODM2M2I0OSksIFRPQk4oMHgxYTBiNmNiOSwgMHhjOWMyYjBhNiksCi0gICAgICAgICBUT0JO
KDB4NDlmN2MzZDIsIDB4OTBkYmM4NWMpLCBUT0JOKDB4YThkZmJiOTcsIDB4MWVmNGMxYWMpLAot
ICAgICAgICAgVE9CTigweGFmYjM0ZDRjLCAweDY1YzdjMmFiKSwgVE9CTigweDFkNDYxMGU3LCAw
eGUyYzVlYTg0KSwKLSAgICAgICAgIFRPQk4oMHg4OTNmNmQxYiwgMHg5NzNjNGFiNSksIFRPQk4o
MHhhM2NkZDdlOSwgMHg5NDViYTVjNCksCi0gICAgICAgICBUT0JOKDB4NjA1MTQ5ODMsIDB4MDY0
NDE3ZWUpLCBUT0JOKDB4MTQ1OWIyM2MsIDB4YWQ2YmRmMmIpLAotICAgICAgICAgVE9CTigweDIz
YjJjMzQxLCAweDVjZjcyNmMzKSwgVE9CTigweDNhODI5NjM1LCAweDMyZDYzNTRhKSwKLSAgICAg
ICAgIFRPQk4oMHgyOTRmOTAxZiwgMHhhYjE5MmMxOCksIFRPQk4oMHhlYzVmY2JmZSwgMHg3MDMw
MTY0ZiksCi0gICAgICAgICBUT0JOKDB4ZTJlMmZjYjcsIDB4ZTIyNDZiYTYpLCBUT0JOKDB4MWU3
Yzg4YjMsIDB4MjIxYTFhMGMpLAotICAgICAgICAgVE9CTigweDcyYzdkZDkzLCAweGM5MmQ4OGM1
KSwgVE9CTigweDQxYzIxNDhlLCAweDExMDZmYjU5KSwKLSAgICAgICAgIFRPQk4oMHg1NDdkZDRm
NSwgMHhhMGY2MGYxNCksIFRPQk4oMHhlZDliNTJiMiwgMHg2Mzk2MGYzMSksCi0gICAgICAgICBU
T0JOKDB4NmM4MzQ5ZWIsIDB4YjBhNWIzNTgpLCBUT0JOKDB4YjE1NGM1YzIsIDB4OWU3ZTJlZDYp
LAotICAgICAgICAgVE9CTigweGNhZDVlY2NmLCAweGVkYTQ2MmRiKSwgVE9CTigweGYyZDZkYmU0
LCAweDJkZTY2YjY5KSwKLSAgICAgICAgIFRPQk4oMHg0MjZhZWRmMywgMHg4NjY1ZTViMiksIFRP
Qk4oMHg0ODhhODUxMywgMHg3YjdmNTcyMyksCi0gICAgICAgICBUT0JOKDB4MTVjYzQzYjMsIDB4
OGJjYmIzODYpLCBUT0JOKDB4MjdhZDBhZjMsIDB4ZDc5MWQ4NzkpLAotICAgICAgICAgVE9CTigw
eGMxNmMyMzZlLCAweDg0NmUzNjRmKSwgVE9CTigweDdmMzM1MjdjLCAweGRlYTUwY2EwKSwKLSAg
ICAgICAgIFRPQk4oMHhjNDgxMDc3NSwgMHgwOTI2Yjg2ZCksIFRPQk4oMHg2YzJhMzYwOSwgMHgw
NTk4ZTcwYyksCi0gICAgICAgICBUT0JOKDB4YTY3NTVlNTIsIDB4ZjAyNGU5MjQpLCBUT0JOKDB4
ZTBmYTA3YTQsIDB4OWRiNGFmY2EpLAotICAgICAgICAgVE9CTigweDE1YzNjZTdkLCAweDY2ODMx
NzkwKSwgVE9CTigweDViNGVmMzUwLCAweGE2Y2JiMGQ2KSwKLSAgICAgICAgIFRPQk4oMHgyYzRh
YWZjNCwgMHhiNjIwNTk2OSksIFRPQk4oMHg0MjU2M2YwMiwgMHhmNmM3ODU0ZiksCi0gICAgICAg
ICBUT0JOKDB4MDE2YWNlZDUsIDB4MWQ5ODNiNDgpLCBUT0JOKDB4ZmViMzU2ZDgsIDB4OTk5NDk3
NTUpLAotICAgICAgICAgVE9CTigweDhjMmEyYzgxLCAweGQxYTM5YmQ3KSwgVE9CTigweDhmNDQz
NDBmLCAweGU2OTM0YWU5KSwKLSAgICAgICAgIFRPQk4oMHgxNDhjZjkxYywgMHg0NDc5MDRkYSks
IFRPQk4oMHg3MzQwMTg1ZiwgMHgwZjUxYTkyNiksCi0gICAgICAgICBUT0JOKDB4MmY4ZjAwZmIs
IDB4NzQwOWFiNDYpLCBUT0JOKDB4MDU3ZTc4ZTYsIDB4ODBlMjg5YjIpLAotICAgICAgICAgVE9C
TigweDAzZTUwMjJjLCAweGE4ODhlNWQxKSwgVE9CTigweDNjODcxMTFhLCAweDlkZWRlNGUyKSwK
LSAgICAgICAgIFRPQk4oMHg1YjliMGUxYywgMHg3ODA5NDYwYiksIFRPQk4oMHhlNzUxYzg1Miwg
MHg3MWM5YWJjNyksCi0gICAgICAgICBUT0JOKDB4OGI5NDRlMjgsIDB4YzdjYzFkYzkpLCBUT0JO
KDB4NGYyMDFmZmEsIDB4MWQzY2ZhMDgpLAotICAgICAgICAgVE9CTigweDAyZmM5MDVjLCAweDNl
NjcyMWNlKSwgVE9CTigweGQ1MmQ3MGRhLCAweGQwYjM2NzRjKSwKLSAgICAgICAgIFRPQk4oMHg1
ZGMyZTVjYSwgMHgxODgxMGRhNCksIFRPQk4oMHhhOTg0YjI3MywgMHg1YzY5ZGQ5OSksCi0gICAg
ICAgICBUT0JOKDB4NjNiOTI1MjcsIDB4ODRkZTVjYTQpLCBUT0JOKDB4MmYxYzk4NzIsIDB4Yzg1
MmRlYzQpLAotICAgICAgICAgVE9CTigweDE4YjAzNTkzLCAweGMyZTNkZTA5KSwgVE9CTigweDE5
ZDcwYjAxLCAweDk4MTNkYzJmKSwKLSAgICAgICAgIFRPQk4oMHg0MjgwNmIyZCwgMHhhNmRjMWQy
OSksIFRPQk4oMHhkMzAzMDAwOSwgMHhmODcxZTE0NCksCi0gICAgICAgICBUT0JOKDB4YTFmZWIz
MzMsIDB4YWFmNDkyNzYpLCBUT0JOKDB4YjU1ODNiOWUsIDB4YzcwYmMwNGIpLAotICAgICAgICAg
VE9CTigweDFkYjBiZTc4LCAweDk1Njk1ZjIwKSwgVE9CTigweGZjODQxODExLCAweDg5ZDAxMmI1
KSwKLSAgICAgICAgIFRPQk4oMHg2NDA5ZjI3MiwgMHgwNWY2MTY0MyksIFRPQk4oMHg0MGQzNDE3
NCwgMHhkNTg4MzEyOCksCi0gICAgICAgICBUT0JOKDB4ZDc5MTk2ZjUsIDB4Njc0MTk4MzMpLCBU
T0JOKDB4NjA1OWUyNTIsIDB4ODYzYjdiMDgpLAotICAgICAgICAgVE9CTigweDg0ZGExODE3LCAw
eDFjNTY3MDBjKSwgVE9CTigweDU3NThlZTU2LCAweGIyOGQzZWM0KSwKLSAgICAgICAgIFRPQk4o
MHg3ZGEyNzcxZCwgMHgwMTNiMGVhNiksIFRPQk4oMHhmZGRmNTI0YiwgMHg1NGM1ZTliOSksCi0g
ICAgICAgICBUT0JOKDB4N2RmNGZhZjgsIDB4MjQzMDVkODApLCBUT0JOKDB4NThmNWMxYmYsIDB4
M2E5Nzc2M2YpLAotICAgICAgICAgVE9CTigweGE1YWYzN2YxLCAweDdjNjk2MDQyKSwgVE9CTigw
eGQ0Y2JhMjJjLCAweDRhMjUzOGRlKSwKLSAgICAgICAgIFRPQk4oMHgyMTFjYjk5NSwgMHg5ZWE0
MjYwMCksIFRPQk4oMHhjZDEwNWY0MSwgMHg3YjA2OTg4OSksCi0gICAgICAgICBUT0JOKDB4YjFl
MWNmMTksIDB4ZGRiODFlNzQpLCBUT0JOKDB4NDcyZjJkODksIDB4NTE1N2I4Y2EpLAotICAgICAg
ICAgVE9CTigweDA4NmZiMDA4LCAweGVlOWRiODg1KSwgVE9CTigweDM2NWNkNTcwLCAweDBmMjZk
MTMxKSwKLSAgICAgICAgIFRPQk4oMHgyODRiMDJiYiwgMHhhMmJlNzA1MyksIFRPQk4oMHhkY2Ji
ZjdjNiwgMHg3YWI5YTZkNiksCi0gICAgICAgICBUT0JOKDB4NDQyNTU1OWMsIDB4MjBmN2E1MzAp
LCBUT0JOKDB4OTYxZjJkZmEsIDB4MTg4NzY3YzgpLAotICAgICAgICAgVE9CTigweGUyZmQ5NDM1
LCAweDcwZGM4MGM0KSwgVE9CTigweDEwNGQ2YjYzLCAweGYwNzg0MTIwKSwKLSAgICAgICAgIFRP
Qk4oMHg3ZjU5MmJjMSwgMHg1MzU2NzEyMiksIFRPQk4oMHhmNmJjMTI0NiwgMHhmNjg4YWQ3Nyks
Ci0gICAgICAgICBUT0JOKDB4MDUyMTRjMDUsIDB4MGYxNWRkZTkpLCBUT0JOKDB4YTQ3YTc2YTgs
IDB4MGQ1ZjJiODIpLAotICAgICAgICAgVE9CTigweGJiMjU0ZDMwLCAweDYyZTgyYjYyKSwgVE9C
TigweDExYTA1ZmUwLCAweDNlYzk1NWVlKSwKLSAgICAgICAgIFRPQk4oMHg3ZWFmZjQ2ZSwgMHg5
ZDUyOWIzNiksIFRPQk4oMHg1NWFiMTMwMSwgMHg4ZjllM2RmNiksCi0gICAgICAgICBUT0JOKDB4
YzQ2M2UzNzEsIDB4OTkzMTc2OTgpLCBUT0JOKDB4ZmQyNTE0MzgsIDB4Y2NkYTQ3YWQpLAotICAg
ICAgICAgVE9CTigweGNhOWMzNTQ3LCAweDIzZDY5NWVhKSwgVE9CTigweDQ4Y2U2MjZlLCAweDE2
ZTU4OWI1KSwKLSAgICAgICAgIFRPQk4oMHg2YjViNjRjNywgMHhiMTg3ZDA4NiksIFRPQk4oMHhk
MDJlMTc5NCwgMHhiMjIwNzk0OCksCi0gICAgICAgICBUT0JOKDB4OGI1OGU5OGYsIDB4NzE5ODEx
MWQpLCBUT0JOKDB4OTBjYTYzMDUsIDB4ZGNmOWMzY2MpLAotICAgICAgICAgVE9CTigweDU2OTFm
ZTcyLCAweGYzNDA4OWIwKSwgVE9CTigweDYwOTQxYWYxLCAweGZjN2M4MGZmKSwKLSAgICAgICAg
IFRPQk4oMHhhMDliYzBhMiwgMHgyMmViNTFlNSksIFRPQk4oMHhjMGJiNzI0NCwgMHhhYTljZjA5
YSksCi0gICAgICAgICBUT0JOKDB4MzZhODA3N2YsIDB4ODAxNTlmMDYpLCBUT0JOKDB4OGI1Yzk4
OWUsIDB4ZGRkYzU2MGUpLAotICAgICAgICAgVE9CTigweDE5ZDJmMzE2LCAweDUxMmUxZjQzKSwg
VE9CTigweDAyZWFjNTU0LCAweGFkMDhmZjYyKSwKLSAgICAgICAgIFRPQk4oMHgwMTJhYjg0Yywg
MHgwN2QyMGI0ZSksIFRPQk4oMHgzN2QxZTExNSwgMHhkNmQ0ZTRlMSksCi0gICAgICAgICBUT0JO
KDB4YjY0NDNlMWEsIDB4YWI3YjE5YTgpLCBUT0JOKDB4ZjA4ZDA2N2UsIDB4ZGVmOGNkNDUpLAot
ICAgICAgICAgVE9CTigweDYzYWRmM2U5LCAweDY4NWUwM2RhKSwgVE9CTigweGNmMTVhMTBlLCAw
eDQ3OTJiOTE2KSwKLSAgICAgICAgIFRPQk4oMHhmNDRiY2NlNSwgMHhiNzM4YTQyNSksIFRPQk4o
MHhlYmUxMzFkNSwgMHg5NjM2YjJmZCksCi0gICAgICAgICBUT0JOKDB4OTQwNjg4NDEsIDB4Nzg1
MGQ2MDUpLCBUT0JOKDB4MDk2ODRlYWEsIDB4YjQwZDc0OWQpLAotICAgICAgICAgVE9CTigweDhj
M2M2NjljLCAweDcyYmEwNzViKSwgVE9CTigweDg5Zjc4YjU1LCAweGJhNDY5MDE1KSwKLSAgICAg
ICAgIFRPQk4oMHg1NzA2YWFkZSwgMHgzZTlmOGJhOCksIFRPQk4oMHg2ZDhiZDU2NSwgMHhiMzJk
N2VkNyksCi0gICAgICAgICBUT0JOKDB4MjVmNGU2M2IsIDB4ODA1ZjA4ZDYpLCBUT0JOKDB4N2Y0
ODIwMGQsIDB4YzNiY2MxYjUpLAotICAgICAgICAgVE9CTigweDRlODAxOTY4LCAweGIwMjVkODQ3
KSwgVE9CTigweDc0YWZhYzA0LCAweDg3Y2JlMGE4KSwKLSAgICAgICAgIFRPQk4oMHg0M2VkMmMy
YiwgMHg3ZTYzZDY5MCksIFRPQk4oMHhlZmI2YmJmMCwgMHgwMjIzY2RiOCksCi0gICAgICAgICBU
T0JOKDB4NGZlYzNjYWUsIDB4Mjg4NGQzZmUpLCBUT0JOKDB4MDY1ZWNjZTYsIDB4ZDc1ZTI1YTQp
LAotICAgICAgICAgVE9CTigweDZjMjI5NGNlLCAweDY5Zjc5MDcxKSwgVE9CTigweDBkOWE4ZTVm
LCAweDA0NGI4NjY2KSwKLSAgICAgICAgIFRPQk4oMHg1MDA5ZjIzOCwgMHgxN2I2OWQ4ZiksIFRP
Qk4oMHgzYzI5ZjhmZSwgMHhjNWRmZGFmNyksCi0gICAgICAgICBUT0JOKDB4OTA2NzUyOGYsIDB4
ZWJhZTY4YzQpLCBUT0JOKDB4NWIzODU2MzIsIDB4MzBjNWJhMjEpLAotICAgICAgICAgVE9CTigw
eDU0MGRmMTE5LCAweDFmZGQxYWVjKSwgVE9CTigweGNmMzc4MjViLCAweGNmYmE0Yzc4KSwKLSAg
ICAgICAgIFRPQk4oMHg3N2VmZjk4MCwgMHhiZWIxMTQ1NCksIFRPQk4oMHg0MGExYTk5MSwgMHg2
MGMxYjA2NiksCi0gICAgICAgICBUT0JOKDB4ZTgwMTg5ODAsIDB4Zjg4OWExYzcpLCBUT0JOKDB4
YjljNTJhZTksIDB4NzZjMjRiZTApLAotICAgICAgICAgVE9CTigweDA1ZmJiY2NlLCAweDQ1NjUw
ZWY0KSwgVE9CTigweGFlMDAwZjEwLCAweDhhYTI5YWM3KSwKLSAgICAgICAgIFRPQk4oMHg4ODRi
NzE3MiwgMHg0ZjA0YzQ3MCksIFRPQk4oMHg3Y2Q0ZmRlMiwgMHgxOWJiNWMyNSksCi0gICAgICAg
ICBUT0JOKDB4NjQ3N2IyMmEsIDB4ZTg4NDA4NjkpLCBUT0JOKDB4YTg4Njg4NTksIDB4NWZiZDA2
ODYpLAotICAgICAgICAgVE9CTigweGYyM2NjMDJlLCAweDExMTZkZmJhKSwgVE9CTigweDc2Y2Q1
NjNmLCAweGQ4N2Q3Nzc2KSwKLSAgICAgICAgIFRPQk4oMHhlMmEzNzU5OCwgMHhhOWQ4MmFiZiks
IFRPQk4oMHg1ZjE4OGNjYiwgMHhlNmMxNzBmNSksCi0gICAgICAgICBUT0JOKDB4ODE2ODIyMDAs
IDB4NTA2NmIwODcpLCBUT0JOKDB4ZGEyMmMyMTIsIDB4YzcxNTVhZGEpLAotICAgICAgICAgVE9C
TigweDE1MWU1ZDNhLCAweGZiZGRiNDc5KSwgVE9CTigweDRiNjA2Yjg0LCAweDZkNzE1Yjk5KSwK
LSAgICAgICAgIFRPQk4oMHg0YTczYjU0YiwgMHhmOTk3Y2IyZSksIFRPQk4oMHg5YTFiZmU0Mywg
MHgzZWNkOGI2NiksCi0gICAgICAgICBUT0JOKDB4MWMzMTI4MDksIDB4MmE2N2Q0OGEpLCBUT0JO
KDB4Y2Q2YTY3MWUsIDB4MDMxZmE5ZTIpLAotICAgICAgICAgVE9CTigweGJlYzMzMTJhLCAweDBl
NDNhMzRhKSwgVE9CTigweDFkOTM1NjM5LCAweDU1ZWY0N2QzKSwKLSAgICAgICAgIFRPQk4oMHg1
ZWEwMjQ4OSwgMHg4ZmVhNzNlYSksIFRPQk4oMHg4MjQ3YjM2NCwgMHhhMDM1YWZiMiksCi0gICAg
ICAgICBUT0JOKDB4YjU4MzAwYTYsIDB4NTI2NWI1NGMpLCBUT0JOKDB4MzI4NjY2MmYsIDB4NzIy
YzcxNDgpLAotICAgICAgICAgVE9CTigweGI3N2ZkNzZiLCAweGI0ZWM0YzIwKSwgVE9CTigweGYw
YTEyZmE3LCAweDBmM2ZlM2ZkKSwKLSAgICAgICAgIFRPQk4oMHhmODQ1YmJmNSwgMHg0MWQ4Yzdl
OCksIFRPQk4oMHhlNGQ5NjljYSwgMHg1ZWMxMGFhOCksCi0gICAgICAgICBUT0JOKDB4NGMwMDUz
YjcsIDB4NDNlMjMyYTMpLCBUT0JOKDB4ZGM3YTNmYWMsIDB4MzdmOGE0NWEpLAotICAgICAgICAg
VE9CTigweDNjNDI2MWM1LCAweDIwZDgxYzhmKSwgVE9CTigweGZkNGIzNDUzLCAweGIwMGVhYjAw
KSwKLSAgICAgICAgIFRPQk4oMHg3NmQ0OGY4NiwgMHhkMzZlMzA2MiksIFRPQk4oMHg2MjZjNTI3
NywgMHhhMTQzZmYwMiksCi0gICAgICAgICBUT0JOKDB4NTM4MTc0ZGUsIDB4YWY3NmY0MmUpLCBU
T0JOKDB4MjI2N2FhODYsIDB4NjQwN2NlYWMpLAotICAgICAgICAgVE9CTigweGZhZDc2MzUxLCAw
eDcyZTU3MmQ1KSwgVE9CTigweGFiODYxYWY3LCAweGJhNzMzMGViKSwKLSAgICAgICAgIFRPQk4o
MHhhMGExYzhjNywgMHg0MThkODY1NyksIFRPQk4oMHg5ODg4MjFjYiwgMHgyMDI4OWE1MiksCi0g
ICAgICAgICBUT0JOKDB4Nzk3MzI1MjIsIDB4Y2NjYzE4YWQpLCBUT0JOKDB4YWFkZjNmOGQsIDB4
ZjFhNmUwMjcpLAotICAgICAgICAgVE9CTigweGY3MzgyYzkzLCAweDE3YzIzNTRkKSwgVE9CTigw
eDVjZTE2ODBjLCAweGQ4MThiNjg5KSwKLSAgICAgICAgIFRPQk4oMHgzNTllYmJmYywgMHhkOWVj
YmVlOSksIFRPQk4oMHg0MzMwNjg5YywgMHgxY2FlNjJhYyksCi0gICAgICAgICBUT0JOKDB4YjU1
Y2U1YjQsIDB4YzUxYWMzOGEpLCBUT0JOKDB4NzkyMWRmZWEsIDB4ZmUyMzhlZTgpLAotICAgICAg
ICAgVE9CTigweDM5NzJiZWY4LCAweDI3MWQxY2E1KSwgVE9CTigweDNlNDIzYmM3LCAweGU4YWFi
ZDE4KSwKLSAgICAgICAgIFRPQk4oMHg1N2IwOWYzZiwgMHg0NGEzZTVlMyksIFRPQk4oMHg1ZGE4
ODZhZSwgMHg3YjQ0NGQ2NiksCi0gICAgICAgICBUT0JOKDB4NjgyMDY2MzQsIDB4YTk5NjQzNzUp
LCBUT0JOKDB4MzU2YTJmYTMsIDB4Njk5Y2QwZmYpLAotICAgICAgICAgVE9CTigweGFmMGZhYTI0
LCAweGRiYTUxNWU5KSwgVE9CTigweDUzNmUxZjVjLCAweGIzMjFkNzlhKSwKLSAgICAgICAgIFRP
Qk4oMHhkM2I5OTEzYSwgMHg1YzA0ZTRlYSksIFRPQk4oMHhkNTQ5ZGNmZSwgMHhkNmYxMTUxMyks
Ci0gICAgICAgICBUT0JOKDB4ZWUyMjdiZjUsIDB4NzlmZDFkOTQpLCBUT0JOKDB4OWYzNWFmZWUs
IDB4YjQzZjJjNjcpLAotICAgICAgICAgVE9CTigweGQyNjM4ZDI0LCAweGYxMzE0ZjUzKSwgVE9C
TigweDYyYmFmOTQ4LCAweGNhYmNkODIyKSwKLSAgICAgICAgIFRPQk4oMHg1NTQyZGUyOSwgMHg0
ZWY0OGRiMCksIFRPQk4oMHhiM2ViNmEwNCwgMHhmYzVmNmJiMiksCi0gICAgICAgICBUT0JOKDB4
MjNjMTEwYWUsIDB4MTIwOGUxNmEpLCBUT0JOKDB4MWE0ZDE1YjUsIDB4ZjgzNjNlMjQpLAotICAg
ICAgICAgVE9CTigweDMwNzE2ODQ0LCAweDE2NGJlMDBiKSwgVE9CTigweGE4ZTI0ODI0LCAweGY2
ZjQ2OTBkKSwKLSAgICAgICAgIFRPQk4oMHg1NDg3NzNhMiwgMHg5MGIxNzBjZiksIFRPQk4oMHhh
MWJlZjMzMSwgMHg0MmYxOTFmNCksCi0gICAgICAgICBUT0JOKDB4NzBmNDE4ZDAsIDB4OTI0N2Fh
OTcpLCBUT0JOKDB4ZWEwNjAyOGUsIDB4NDhiZTkxNDcpLAotICAgICAgICAgVE9CTigweGUxMzEy
MmYzLCAweGRiZmI4OTRlKSwgVE9CTigweGJlOWI3OWY2LCAweGNlMjc0YjE4KSwKLSAgICAgICAg
IFRPQk4oMHg4NWE0OWRlNSwgMHhjYTU4YWFkZiksIFRPQk4oMHgyNDk1Nzc1OCwgMHgxMTQ4NzM1
MSksCi0gICAgICAgICBUT0JOKDB4MTExZGVmNjEsIDB4YmI5MzkwOTkpLCBUT0JOKDB4MWQ2YTk3
NGEsIDB4MjZkMTM2OTQpLAotICAgICAgICAgVE9CTigweDQ0NzRiNGNlLCAweGQzZmMyNTNiKSwg
VE9CTigweDNhMTQ4NWU2LCAweDRjNWRiMTVlKSwKLSAgICAgICAgIFRPQk4oMHhlNzk2NjdiNCwg
MHgxNDdjMTViNCksIFRPQk4oMHhlMzRmNTUzYiwgMHg3YmM2MTMwMSksCi0gICAgICAgICBUT0JO
KDB4MDMyYjgwZjgsIDB4MTcwOTQzODEpLCBUT0JOKDB4NTVkOGJhZmQsIDB4NzIzZWFhMjEpLAot
ICAgICAgICAgVE9CTigweDVhOTg3OTk1LCAweGYxYzBlNzRlKSwgVE9CTigweDVhOWIyOTJlLCAw
eGViYmEyODljKSwKLSAgICAgICAgIFRPQk4oMHg0MTNjZDRiMiwgMHhlYjRjODI1MSksIFRPQk4o
MHg5OGI1ZDI0MywgMHhkMTYyZGIwYSksCi0gICAgICAgICBUT0JOKDB4YmI0N2JmNjYsIDB4Njgz
NDI1MjApLCBUT0JOKDB4MDhkNjg5NDksIDB4YmFhODYyZDEpLAotICAgICAgICAgVE9CTigweDEx
ZjM0OWM3LCAweGU5MDZhYmNkKSwgVE9CTigweDQ1NGNlOTg1LCAweGVkN2JmMDBlKSwKLSAgICAg
ICAgIFRPQk4oMHhhY2FiNWM5ZSwgMHhiNTViODAzYiksIFRPQk4oMHhiMDM0NjhlYSwgMHgzMWUz
YzE2ZCksCi0gICAgICAgICBUT0JOKDB4NWMyNDIxM2QsIDB4ZDI3M2JmMTIpLCBUT0JOKDB4MjEx
NTM4ZWIsIDB4NzE1ODc4ODcpLAotICAgICAgICAgVE9CTigweDE5OGU0YTJmLCAweDczMWRlYTJk
KSwgVE9CTigweGQ1ODU2Y2YyLCAweDc0ZWQ3YjJhKSwKLSAgICAgICAgIFRPQk4oMHg4NmE2MzJl
YiwgMHgxM2E2NjRmZSksIFRPQk4oMHg5MzJjZDkwOSwgMHhiZGE0MTI5MSksCi0gICAgICAgICBU
T0JOKDB4ODUwZTk1ZDQsIDB4YzBjNGRkYzApLCBUT0JOKDB4YzBmNDIyZjgsIDB4MzQ3ZmMyYzkp
LAotICAgICAgICAgVE9CTigweGU2OGNiZWM0LCAweDg2MDc2YmNiKSwgVE9CTigweGY5ZTdjMGMw
LCAweGNkNmNkMjg2KSwKLSAgICAgICAgIFRPQk4oMHg2NTk5NGRkYiwgMHgwZjVmMjdjYSksIFRP
Qk4oMHhlODU0NjFmYiwgMHhhODBkNTlmZiksCi0gICAgICAgICBUT0JOKDB4ZmYwNTQ4MWEsIDB4
NjY2MDEwMjMpLCBUT0JOKDB4YzY2NTQyN2EsIDB4ZmM5ZWJiZmIpLAotICAgICAgICAgVE9CTigw
eGIwNTcxYTY5LCAweDc1ODdmZDUyKSwgVE9CTigweDkzNTI4OWY4LCAweDhkNDllZmNlKSwKLSAg
ICAgICAgIFRPQk4oMHg2MWJlY2M2MCwgMHhlYTQyMDY4OCksIFRPQk4oMHhiMjI2MzlkOSwgMHgx
M2E3ODZhZiksCi0gICAgICAgICBUT0JOKDB4MWE4ZTYyMjAsIDB4MzYxZWNmOTApLCBUT0JOKDB4
MDAxZjIzZTAsIDB4MjU1MDY0NjMpLAotICAgICAgICAgVE9CTigweGU0YWU5YjVkLCAweDBhNWMy
Yjc5KSwgVE9CTigweGViYzljZGFkLCAweGQ4MTQ5ZGI1KSwKLSAgICAgICAgIFRPQk4oMHhiMzMx
NjRhMSwgMHg5MzRhYTcyOCksIFRPQk4oMHg3NTBlYjAwZSwgMHhhZTliNjBmMyksCi0gICAgICAg
ICBUT0JOKDB4NWE5MTYxNWIsIDB4OWI5Y2ZiZmQpLCBUT0JOKDB4OTcwMTVjYmYsIDB4ZWY0NWY3
ZjYpLAotICAgICAgICAgVE9CTigweGI0NjJjNGE1LCAweGJmNTE1MWRmKSwgVE9CTigweDIxYWRj
YzQxLCAweGIwNzExOGYyKSwKLSAgICAgICAgIFRPQk4oMHhkNjBjNTQ1YiwgMHgwNDNmYTQyYyks
IFRPQk4oMHhmYzIxYWE1NCwgMHhlOTZiZTFhYiksCi0gICAgICAgICBUT0JOKDB4ZTg0YmMzMmYs
IDB4NGU1MWVhODApLCBUT0JOKDB4M2RhZTQ1ZjAsIDB4MjU5YjVkOGQpLAotICAgICAgICAgVE9C
TigweGJiNzNjN2ViLCAweGMzOGYxYjVlKSwgVE9CTigweGU0MDVhNzRhLCAweGU4YWU2MTdkKSwK
LSAgICAgICAgIFRPQk4oMHhiYjFhZTljNiwgMHg5ZjFjNTZiZCksIFRPQk4oMHg4YzE3NmI5OCwg
MHg0OWYxOTZhNCksCi0gICAgICAgICBUT0JOKDB4YzQ0OGYzMTEsIDB4Njg3NTA5MmIpLCBUT0JO
KDB4YjVhZmUzZGUsIDB4OWY5NzYwMzMpLAotICAgICAgICAgVE9CTigweGE4ZGFmZDQ5LCAweDE0
NTgxM2U1KSwgVE9CTigweDY4N2ZjNGQ5LCAweGUyYjM0MjI2KSwKLSAgICAgICAgIFRPQk4oMHhm
MmRmYzkyZCwgMHg0YzdmZjU3ZiksIFRPQk4oMHgwMDRlM2ZjMSwgMHg0MDFmMWI0NiksCi0gICAg
ICAgICBUT0JOKDB4NWFmZGRhYjYsIDB4MTQzMGM5YWIpLCBUT0JOKDB4MGJkZDQxZDMsIDB4MjIz
OGU5OTcpLAotICAgICAgICAgVE9CTigweGYwOTQ3NDMwLCAweDQxODA0MmFlKSwgVE9CTigweDcx
ZjlhZGRhLCAweGNkZGRjNGNiKSwKLSAgICAgICAgIFRPQk4oMHg3MDkwYzAxNiwgMHhjNTJkZDkw
NyksIFRPQk4oMHhkOWJkZjQ0ZCwgMHgyOWUyMDQ3ZiksCi0gICAgICAgICBUT0JOKDB4ZTZmMWZl
ODAsIDB4MWIxMDExYTYpLCBUT0JOKDB4YjYzYWNjYmMsIDB4ZDlhY2RjNzgpLAotICAgICAgICAg
VE9CTigweGNmYzdlMjM1LCAweDEyNzJhOTViKSwgVE9CTigweDBjNjY3NzE3LCAweGE2Mjc2YWM4
KSwKLSAgICAgICAgIFRPQk4oMHgzYzBkMzcwOSwgMHhlMmQ3ZWVmNyksIFRPQk4oMHg1YWRkMmIw
NiwgMHg5YTY4NWIzZSksCi0gICAgICAgICBUT0JOKDB4MzYzYWQzMmQsIDB4MTRlYTVkNjUpLCBU
T0JOKDB4ZjhlMDFmMDYsIDB4OGQ3ZGQ1MDYpLAotICAgICAgICAgVE9CTigweGM5ZWEyMjEzLCAw
eDc1YjRhYWM2KSwgVE9CTigweGVkMmEyYmY5LCAweDBkMzUzNDY2KSwKLSAgICAgICAgIFRPQk4o
MHg0MzlkNzliNSwgMHhlOWQzYTdjMyksIFRPQk4oMHg4ZTBlZTVhNiwgMHg4MWI3ZjM0YiksCi0g
ICAgICAgICBUT0JOKDB4Y2YzZGFjZjUsIDB4MWRjNGJhNzUpLCBUT0JOKDB4MWQzZDE3NzMsIDB4
ZWIzMzEwYzcpLAotICAgICAgICAgVE9CTigweGE4ZTY3MTEyLCAweDc3NDdhZTgzKSwgVE9CTigw
eDMxZjQzMTYwLCAweDE5N2Q2YjQwKSwKLSAgICAgICAgIFRPQk4oMHgwNTIxY2NlZSwgMHhjZDk2
MTQwMCksIFRPQk4oMHg2NzI0NmYxMSwgMHhmNjUzNTc2OCksCi0gICAgICAgICBUT0JOKDB4NzAy
ZmNjNWEsIDB4ZWYwYzMxMzMpLCBUT0JOKDB4MjQ3Y2M0NWQsIDB4N2UxNjY5M2IpLAotICAgICAg
ICAgVE9CTigweGZkNDg0ZTQ5LCAweGM3MjliNzQ5KSwgVE9CTigweDUyMmNlZjdkLCAweGIyMTgz
MjBmKSwKLSAgICAgICAgIFRPQk4oMHhlNTZlZjQwNSwgMHg1OWFiOTNiMyksIFRPQk4oMHgyMjVm
YmExMSwgMHg5ZjE4MTA3MSksCi0gICAgICAgICBUT0JOKDB4MzNiZDY1OTUsIDB4MTUzMzBlZDAp
LCBUT0JOKDB4YzRiZTY5ZDUsIDB4MWRkYjMyZjcpLAotICAgICAgICAgVE9CTigweDI2NGM3NjY4
LCAweDA0NDgwODdjKSwgVE9CTigweGFjMzA5MDNmLCAweDcxNDMyZGFlKSwKLSAgICAgICAgIFRP
Qk4oMHgzODUxYjI2NiwgMHgwMGY5YmY0NyksIFRPQk4oMHg0MDBlZDMxMSwgMHg2Y2RkNmQwMyks
Ci0gICAgICAgICBUT0JOKDB4MDQ1ZTc5ZmUsIDB4ZjhmZDI0MjQpLCBUT0JOKDB4ZmRmZDk3NGEs
IDB4ZmE2ZGE5OGIpLAotICAgICAgICAgVE9CTigweDQ1YzlmNjQxLCAweDBjMWU2NzNhKSwgVE9C
TigweDc2ZjJlNzMzLCAweDViMmM1MTY4KSwKLSAgICAgICAgIFRPQk4oMHgxYWRhZWJiNSwgMHgy
YTYwMTc1MyksIFRPQk4oMHhiMjg2NTE0YywgMHhjNTdjMmQ0OSksCi0gICAgICAgICBUT0JOKDB4
ZDg3Njk2NzAsIDB4MWUwYmZkMjQpLCBUT0JOKDB4OTUwYzU0N2UsIDB4MDQ0Nzg5MjIpLAotICAg
ICAgICAgVE9CTigweGQxZDQxOTY5LCAweGU1ZDMyYmZlKSwgVE9CTigweDMwYmMxNDcyLCAweDc1
MGQ2YzNlKSwKLSAgICAgICAgIFRPQk4oMHg4ZjM2NzlmZSwgMHhlMGUyN2YzYSksIFRPQk4oMHg4
ZjY0YTdkYywgMHhhNGE2ZWUwYyksCi0gICAgICAgICBUT0JOKDB4MmZlNTk5MzcsIDB4NjMzZGZi
MWYpLCBUT0JOKDB4ZWE4MmMzOTUsIDB4OTc3ZjI1NDcpLAotICAgICAgICAgVE9CTigweGNiZGZk
ZjFhLCAweDY2MWVhNjQ2KSwgVE9CTigweGM3Y2NjNTkxLCAweGI5MDg1NDUxKSwKLSAgICAgICAg
IFRPQk4oMHg4MjE3Nzk2MiwgMHg4MTc2MWUxMyksIFRPQk4oMHhkYTU3NTk2ZiwgMHg5MTk2ODg1
YyksCi0gICAgICAgICBUT0JOKDB4YmMxN2U4NDksIDB4MjhmZmJkNzApLCBUT0JOKDB4MWU2ZTBh
NDEsIDB4MjY3MWQzNmYpLAotICAgICAgICAgVE9CTigweDYxYWU4NzJjLCAweDQxNTJmY2Y1KSwg
VE9CTigweDQ0MWM4N2IwLCAweDllNzdlNzU0KSwKLSAgICAgICAgIFRPQk4oMHhkMDc5OWRkNSwg
MHhhMzRkZmYwOSksIFRPQk4oMHg3NjZiNGU0NCwgMHg4OGE2YjE3MSksCi0gICAgICAgICBUT0JO
KDB4ZGMwNmE1MTIsIDB4MTFmMWM3OTIpLCBUT0JOKDB4ZWEwMmFlOTMsIDB4NGJlMzVjM2UpLAot
ICAgICAgICAgVE9CTigweGU1Y2E0ZDZkLCAweGU5MGM0NjllKSwgVE9CTigweDRkZjQzNjhlLCAw
eDU2ZTRmZjVjKSwKLSAgICAgICAgIFRPQk4oMHg3ODE3YWNhYiwgMHg0YmFlZjYyZSksIFRPQk4o
MHg5ZjVhMjIwMiwgMHhhODViOTFlOCksCi0gICAgICAgICBUT0JOKDB4OTY2NmViZTYsIDB4NmNl
NTc2MTApLCBUT0JOKDB4MzJhZDMxZjMsIDB4ZjczYmZlMDMpLAotICAgICAgICAgVE9CTigweDYy
ODMzMGE0LCAweDI1YmNmNGQ2KSwgVE9CTigweGVhOTUwNTkzLCAweDUxNTA1NmU2KSwKLSAgICAg
ICAgIFRPQk4oMHg1OTgxMWM4OSwgMHhlMTMzMjE1NiksIFRPQk4oMHhjODljZjFmZSwgMHg4YzEx
YjJkNyksCi0gICAgICAgICBUT0JOKDB4NzViNjM5MTMsIDB4MDRlNjBjYzApLCBUT0JOKDB4Y2U4
MTFlOGQsIDB4NDYyNWQzNzUpLAotICAgICAgICAgVE9CTigweDAzMGU0M2ZjLCAweDJkMjZlNTYy
KSwgVE9CTigweGZiYjMwYjRiLCAweDYwOGQzNmEwKSwKLSAgICAgICAgIFRPQk4oMHg2MzRmZjgy
YywgMHg0ODUyODExOCksIFRPQk4oMHg3YzZmZTA4NSwgMHhjZDI4NTkxMSksCi0gICAgICAgICBU
T0JOKDB4N2YyODMwYzAsIDB4OTkzNThmMjgpLCBUT0JOKDB4MmU2MGE5NWUsIDB4NjY1ZTZjMDkp
LAotICAgICAgICAgVE9CTigweDA4NDA3ZDNkLCAweDliNzg1ZGJmKSwgVE9CTigweDUzMDg4OWFi
LCAweGE3NTliY2U3KSwKLSAgICAgICAgIFRPQk4oMHhmMjI4ZTBlNiwgMHg1MmY2MTIzOSksIFRP
Qk4oMHgyYjZkMTQ2MSwgMHg2ODc5YmUzYyksCi0gICAgICAgICBUT0JOKDB4ZTY5MDJjMDQsIDB4
NTFhN2JiZjcpLCBUT0JOKDB4MzBhZDk5ZjAsIDB4NzZmMjRhNjQpLAotICAgICAgICAgVE9CTigw
eDY2ZDkzMTdhLCAweDk4YmM2ZGEwKSwgVE9CTigweGY0Zjg3N2YzLCAweGNiNTk2YWMwKSwKLSAg
ICAgICAgIFRPQk4oMHhiMDVmZjYyZCwgMHg0YzQ0ZjExOSksIFRPQk4oMHg0NTU1ZjUzNiwgMHhl
OWI3NzQxNiksCi0gICAgICAgICBUT0JOKDB4YzdjMGQwNTksIDB4OGNhZWQ2M2IpLCBUT0JOKDB4
MGNkMmI3Y2UsIDB4YzM1OGIyYTkpLAotICAgICAgICAgVE9CTigweDNmMzMyODdiLCAweDQ2OTQ1
ZmEzKSwgVE9CTigweGY4Nzg1YjIwLCAweGQ2N2M4NzkxKSwKLSAgICAgICAgIFRPQk4oMHhjNTRh
N2E2MSwgMHg5NjM3YmQwOCksIFRPQk4oMHg1NGQ0NTk4YywgMHgxOGJlNzlkNyksCi0gICAgICAg
ICBUT0JOKDB4ODg5ZTVhY2IsIDB4YzQ2ZDdjZTEpLCBUT0JOKDB4OWE1MTViYjcsIDB4OGIwODU4
NzcpLAotICAgICAgICAgVE9CTigweGZhYzFhMDNkLCAweDBiN2E1MDUwKSwgVE9CTigweDdkM2U3
MzhhLCAweGYyOTI2MDM1KSwKLSAgICAgICAgIFRPQk4oMHg4NjFjYzJjZSwgMHgyYTZjYjBlYiks
IFRPQk4oMHg2ZjJlMjk1NSwgMHg4ZjdhZGM3OSksCi0gICAgICAgICBUT0JOKDB4NjFjNGQ0NTEs
IDB4MzMwMTYzNzYpLCBUT0JOKDB4ZDlmZDJjODAsIDB4NWFkNTkwOTApLAotICAgICAgICAgVE9C
TigweGU1YTgzNzM4LCAweGIyYjgzNmExKSwgVE9CTigweDg1NWI0MWEwLCAweDdjMGQ2NjIyKSwK
LSAgICAgICAgIFRPQk4oMHgxODZmZTMxNywgMHg3Y2MxOWFmMSksIFRPQk4oMHg2NDY1YzFmZiwg
MHhmZGQ5OWFjYiksCi0gICAgICAgICBUT0JOKDB4NDZlNWMyM2YsIDB4Njk3NGI5OWUpLCBUT0JO
KDB4NzVhN2NmOGIsIDB4YTI3MTdjYmUpLAotICAgICAgICAgVE9CTigweDRkMmViYzNmLCAweDA2
MmJlNjU4KSwgVE9CTigweDA5NGI0NDQ3LCAweDVmMjA5Yzk4KSwKLSAgICAgICAgIFRPQk4oMHg0
YWYyODVlZCwgMHhiOTQwY2I1YSksIFRPQk4oMHg2NzA2ZDc5MiwgMHg3Y2M4MmYxMCksCi0gICAg
ICAgICBUT0JOKDB4YzhjODc3NmMsIDB4MDMwNTI2ZmEpLCBUT0JOKDB4ZmE4ZTZmNzYsIDB4YTBk
YTkxNDApLAotICAgICAgICAgVE9CTigweDc3ZWE5ZDM0LCAweDU5MWVlNGYwKSwgVE9CTigweDVm
NDZlMzM3LCAweDQwMjc0MTY2KSwKLSAgICAgICAgIFRPQk4oMHgxYmRmOThiYiwgMHhlYTY3MTQ1
NyksIFRPQk4oMHhkN2MwOGI0NiwgMHg4NjJhMWZlMiksCi0gICAgICAgICBUT0JOKDB4NDZjYzMw
M2MsIDB4MWMwOGFkNjMpLCBUT0JOKDB4OTk1NDM0NDAsIDB4NGM4NDVlN2IpLAotICAgICAgICAg
VE9CTigweDFiOGZiZGI1LCAweDQ4ZjM2YmY3KSwgVE9CTigweDViODJjMzkyLCAweDhjODI3M2E3
KSwKLSAgICAgICAgIFRPQk4oMHgwOGY3MTJjNCwgMHg5Mjg0MzVkNSksIFRPQk4oMHgwNzFjZjBm
MSwgMHg3OTMzMDM4MCksCi0gICAgICAgICBUT0JOKDB4Yzc0YzJkMjQsIDB4YThkYTA1NGEpLCBU
T0JOKDB4Y2IwZTcyMDEsIDB4NDNjNDZiNWMpLAotICAgICAgICAgVE9CTigweDBhZDczMzdhLCAw
eGMwYjdlZmYzKSwgVE9CTigweDg1NTIyMjVlLCAweGM1ZTQ4YjNjKSwKLSAgICAgICAgIFRPQk4o
MHhlNmY3OGIwYywgMHg3M2YxM2E1ZiksIFRPQk4oMHg1ZTcwMDYyZSwgMHg4MjM0OWNiZSksCi0g
ICAgICAgICBUT0JOKDB4NmI4ZDUwNDgsIDB4ZTcwNzM5NjkpLCBUT0JOKDB4MzkyZDJhMjksIDB4
YzMzY2IzZDIpLAotICAgICAgICAgVE9CTigweGVlNGY3MjdjLCAweDRlY2FhMjBmKSwgVE9CTigw
eGEwNjhjOTllLCAweDJjY2RlNzA3KSwKLSAgICAgICAgIFRPQk4oMHhmY2Q1NjUxZiwgMHhiODdh
MjkxMyksIFRPQk4oMHhlYTNlM2MxNSwgMHgzY2MyNTJmMCksCi0gICAgICAgICBUT0JOKDB4Nzc3
ZDkyZGYsIDB4M2I2Y2QzZTQpLCBUT0JOKDB4N2E0MTQxNDMsIDB4YzVhNzMyZTcpLAotICAgICAg
ICAgVE9CTigweGE4OTU5NTFhLCAweGE3MWZmNDkzKSwgVE9CTigweGZlOTgwYzkyLCAweGJiZDM3
Y2Y2KSwKLSAgICAgICAgIFRPQk4oMHg0NWJkNWU2NCwgMHhkZWNmZWVmZiksIFRPQk4oMHg5MTBk
YzJhOSwgMHhhNDRjNDNlOSksCi0gICAgICAgICBUT0JOKDB4Y2I0MDNmMjYsIDB4Y2NhOWY1NGQp
LCBUT0JOKDB4OTI4YmJkZmIsIDB4OTMwM2Y2ZGIpLAotICAgICAgICAgVE9CTigweDNjMzc5NTFl
LCAweGE5ZWVlNjdjKSwgVE9CTigweDNiZDYxYTUyLCAweGY3OTk2MWMzKSwKLSAgICAgICAgIFRP
Qk4oMHgwOWEyMzhlNiwgMHgzOTVjOWE3OSksIFRPQk4oMHg2OTQwY2EyZCwgMHg2MWViMzUyZCks
Ci0gICAgICAgICBUT0JOKDB4N2QxZTVjNWUsIDB4YzE4NzU2MzEpLCBUT0JOKDB4MWUxOTc0MmMs
IDB4MWUxYjIwZDEpLAotICAgICAgICAgVE9CTigweDQ2MzNkOTA4LCAweDIzZmMyZTZlKSwgVE9C
TigweGE3NmUyOWE5LCAweDA4OTU5MTQ5KSwKLSAgICAgICAgIFRPQk4oMHg2MTA2OWQ5YywgMHg4
NGVkN2RhNSksIFRPQk4oMHgwYmFhMTFjZiwgMHg1ZGJjYWQ1MSksCi0gICAgICAgICBUT0JOKDB4
ZDAxZWVjNjQsIDB4OTYxODQ5ZGEpLCBUT0JOKDB4OTNiNzVmMWYsIDB4YWYzZDhjMjgpLAotICAg
ICAgICAgVE9CTigweDU3YmM0ZjlmLCAweDFjYTJlZTQ0KSwgVE9CTigweDVhMjYzMjJkLCAweDAw
ZTAwNTU4KSwKLSAgICAgICAgIFRPQk4oMHgxODg4ZDY1OCwgMHg2MWEwMjNlZiksIFRPQk4oMHgx
ZDcyYWFiNCwgMHhiOWU1MjQ2ZSksCi0gICAgICAgICBUT0JOKDB4YTlhMjYzNDgsIDB4ZTU1NjNl
YzApLCBUT0JOKDB4YTA5NzE5NjMsIDB4YzM0MzlhNDMpLAotICAgICAgICAgVE9CTigweDU2N2Rk
NTRiLCAweGFkYjliNWI3KSwgVE9CTigweDczZmFjMWExLCAweGM0NWE1MjRiKSwKLSAgICAgICAg
IFRPQk4oMHg4ZmU5N2VmNywgMHhmZTM4ZTYwOCksIFRPQk4oMHg2MDg3NDhkMiwgMHgzZjM4NGY0
OCksCi0gICAgICAgICBUT0JOKDB4YjA1NzE3OTQsIDB4YzQ4NjA5NGYpLCBUT0JOKDB4ODY5MjU0
YTMsIDB4OGJmM2E4ZDYpLAotICAgICAgICAgVE9CTigweDE0OGE4ZGQxLCAweDMxMGIwZTI1KSwg
VE9CTigweDk5YWI5ZjNmLCAweDlhYTNmN2Q4KSwKLSAgICAgICAgIFRPQk4oMHgwOTI3YzY4YSwg
MHg2NzA2YzAyZSksIFRPQk4oMHgyMmI1ZTc2YywgMHg2OTc5MGU2YyksCi0gICAgICAgICBUT0JO
KDB4NmMzMjUyNjAsIDB4NmM3MTM3NmMpLCBUT0JOKDB4NTNhNTc2OTAsIDB4MDllZjY2NTcpLAot
ICAgICAgICAgVE9CTigweDhkNjNmODUyLCAweGVkZmZjZjNhKSwgVE9CTigweGI0ZDJlZDA0LCAw
eDNjMGE2ZjU1KSwKLSAgICAgICAgIFRPQk4oMHhkYjNhYThkZSwgMHgxMjUxOWI5ZSksIFRPQk4o
MHg1ZDM4ZTljNCwgMHgxZTBhNTY5YSksCi0gICAgICAgICBUT0JOKDB4ODcxNTI4YmYsIDB4MzAz
NzQ3ZTIpLCBUT0JOKDB4YTIwOGU3N2MsIDB4ZjViNWMxOGQpLAotICAgICAgICAgVE9CTigweDlk
MTI5Yzg4LCAweGNhNmJmOTIzKSwgVE9CTigweGJjYmYxOTdmLCAweGJmMDI4MzlmKSwKLSAgICAg
ICAgIFRPQk4oMHg5YjliZjAzMCwgMHgyNzMyMzE5NCksIFRPQk4oMHgzYjA1NWE4YiwgMHgzMzlj
YTU5ZCksCi0gICAgICAgICBUT0JOKDB4YjQ2YjIzMTIsIDB4MGY2Njk1MjApLCBUT0JOKDB4MTk3
ODlmMWYsIDB4NDk3ZTVmMjQpLAotICAgICAgICAgVE9CTigweDljNDk5NDY4LCAweGFhZjAxODAx
KSwgVE9CTigweDcyZWUxMTkwLCAweDhiNjlkNTljKSwKLSAgICAgICAgIFRPQk4oMHg4YmQzOTU5
NSwgMHhhY2Y0YzA3OSksIFRPQk4oMHgzZWUxMWVjZSwgMHg4ZTBjZDA0OCksCi0gICAgICAgICBU
T0JOKDB4ZWJkZTg2ZWMsIDB4MWVkNjZmMTgpLCBUT0JOKDB4MjI1ZDkwNmIsIDB4ZDYxZmNlNDMp
LAotICAgICAgICAgVE9CTigweDVjYWIwN2Q2LCAweGU4YmVkNzRkKSwgVE9CTigweDE2ZTQ2MTdm
LCAweDI3ODU1YWI3KSwKLSAgICAgICAgIFRPQk4oMHg2NTY4YWFkZCwgMHhiMmZiYzNkZCksIFRP
Qk4oMHhlZGI1NDg0ZiwgMHg4YWVkZGY1YiksCi0gICAgICAgICBUT0JOKDB4ODc4ZjIwZTgsIDB4
NmRjZjJmYWQpLCBUT0JOKDB4MzUxNjQ5N2MsIDB4NjE1ZjU2OTkpfSwKLSAgICAgICAge1RPQk4o
MHhlZjBhM2ZlYywgMHhmYTE4MWU2OSksIFRPQk4oMHg5ZWEwMmY4MSwgMHgzMGQ2OWE5OCksCi0g
ICAgICAgICBUT0JOKDB4YjJlOWNmOGUsIDB4NjZlYWI5NWQpLCBUT0JOKDB4NTIwZjJiZWIsIDB4
MjQ3MjAwMjEpLAotICAgICAgICAgVE9CTigweDYyMWM1NDBhLCAweDFkZjg0MzYxKSwgVE9CTigw
eDEyMDM3NzIxLCAweDcxZmE2ZDVkKSwKLSAgICAgICAgIFRPQk4oMHg2ZTNjN2I1MSwgMHgwZmY1
ZjZmZiksIFRPQk4oMHg4MTdhMDY5YiwgMHhhYmIyYmVmMyksCi0gICAgICAgICBUT0JOKDB4ODM1
NzJmYjYsIDB4YjI5NGNkYTYpLCBUT0JOKDB4NmNlOWJmNzUsIDB4YjkwMzlmMzQpLAotICAgICAg
ICAgVE9CTigweDIwZTAxMmYwLCAweDA5NWNiYjIxKSwgVE9CTigweGEwYWVjYzFiLCAweGQwNjNm
MGRhKSwKLSAgICAgICAgIFRPQk4oMHg1N2MyMWMzYSwgMHhmMDI5MDllNSksIFRPQk4oMHhjN2Q1
OWVjZiwgMHg0OGNlOWNkYyksCi0gICAgICAgICBUT0JOKDB4MjczMmI4NDQsIDB4OGFlMzM2Zjgp
LCBUT0JOKDB4MDU2ZTM3MjMsIDB4M2Y0Zjg1ZjQpLAotICAgICAgICAgVE9CTigweDhhMTBiNTMx
LCAweDg5ZTgwMGNhKSwgVE9CTigweDUwZmUwYzE3LCAweDE0NTIwOGZkKSwKLSAgICAgICAgIFRP
Qk4oMHg5ZTQzYzBkMywgMHhiNzE0YmEzNyksIFRPQk4oMHg0MjdkMjAwZSwgMHgzNDE4OWFjYyks
Ci0gICAgICAgICBUT0JOKDB4MDVkZWUyNGYsIDB4ZTYxNmUyYzApLCBUT0JOKDB4OWMyNWY0Yzgs
IDB4ZWUxODU0YzEpLAotICAgICAgICAgVE9CTigweDRkMzIyMmE1LCAweDhmMzQyYTczKSwgVE9C
TigweDA4MDc4MDRmLCAweGEwMjdjOTUyKSwKLSAgICAgICAgIFRPQk4oMHhjMjIyNjUzYSwgMHg0
ZjBkNTZmMyksIFRPQk4oMHg5NjFlNDA0NywgMHhjYTI4YjgwNSksCi0gICAgICAgICBUT0JOKDB4
MmMwM2Y4YjAsIDB4NGE3MzQzNGIpLCBUT0JOKDB4NGM5NjY3ODcsIDB4YWI3MTJhMTkpLAotICAg
ICAgICAgVE9CTigweGNjMTk2YzQyLCAweDg2NGZlZTQyKSwgVE9CTigweGMxYmU5M2RhLCAweDVi
MGVjZTVjKSwKLSAgICAgICAgIFRPQk4oMHhhODdkOWYyMiwgMHhjMTMxYzE1OSksIFRPQk4oMHgy
YmI2ZDU5MywgMHhkY2U0NTY1NSksCi0gICAgICAgICBUT0JOKDB4MjJjNDllYzksIDB4YjgwOWI3
Y2UpLCBUT0JOKDB4OGE0MTQ4NmIsIDB4ZTJjNzJjMmMpLAotICAgICAgICAgVE9CTigweDgxM2I5
NDIwLCAweGZlYTBiZjM2KSwgVE9CTigweGIzZDM2ZWU5LCAweGE2NmRhYzY5KSwKLSAgICAgICAg
IFRPQk4oMHg2ZmRkYzA4YSwgMHgzMjhjYzk4NyksIFRPQk4oMHgwYTNiY2QyYywgMHgzYTMyNjQ2
MSksCi0gICAgICAgICBUT0JOKDB4NzEwM2M0OWQsIDB4ZDgxMGRiYmEpLCBUT0JOKDB4ZjlkODFh
MjgsIDB4NGI3OGE0YzQpLAotICAgICAgICAgVE9CTigweDNkZTg2NWFkLCAweGU0ZDU1OTQxKSwg
VE9CTigweGRlZGFmYTVlLCAweDMwMzg0MDg3KSwKLSAgICAgICAgIFRPQk4oMHg2ZjQxNGFiYiwg
MHg0ZWYxOGI5YiksIFRPQk4oMHg5ZWU5ZWE0MiwgMHhmYWVlNTI2OCksCi0gICAgICAgICBUT0JO
KDB4MjYwZmFhMTYsIDB4MzdhNTVhNGEpLCBUT0JOKDB4ZWIxOWE1MTQsIDB4MDE1ZjkzYjkpLAot
ICAgICAgICAgVE9CTigweDUxZDdlYmQyLCAweDllOWMzNTk4KSwgVE9CTigweDUyM2ZjNTZkLCAw
eDE5MzIxNzhlKSwKLSAgICAgICAgIFRPQk4oMHg1MDFkMDcwYywgMHhiOThmZTY4NCksIFRPQk4o
MHhkNjBmYmU5YSwgMHgxMjRhMTQ1OCksCi0gICAgICAgICBUT0JOKDB4YTQ1NzYxYzgsIDB4OTJi
YzZiM2YpLCBUT0JOKDB4ZjUzODQ4NTgsIDB4ZmU2ZjI3Y2IpLAotICAgICAgICAgVE9CTigweDRi
MDI3MWY3LCAweGI1OWU3NjNiKSwgVE9CTigweDNkNDYwNmE5LCAweDViNWE4ZTVlKSwKLSAgICAg
ICAgIFRPQk4oMHgxZWRhNWQ5YiwgMHgwNWE0ODI5MiksIFRPQk4oMHhkYTc3MzFkMCwgMHhlNmZl
YzQ0NiksCi0gICAgICAgICBUT0JOKDB4YTNlMzM2OTMsIDB4OTBkNDU4NzEpLCBUT0JOKDB4ZTk3
NjQwNDAsIDB4MDYxNjZkOGQpLAotICAgICAgICAgVE9CTigweGI1YzMzNjgyLCAweDg5YTkwNDAz
KSwgVE9CTigweDRiZDE3OTgzLCAweDcyZjFkNjM3KSwKLSAgICAgICAgIFRPQk4oMHhhNjE2Njc5
ZSwgMHhkNWQyYzUzYSksIFRPQk4oMHg1ZWM0YmNkOCwgMHhmZGNmM2I4NyksCi0gICAgICAgICBU
T0JOKDB4YWU2ZDc2MTMsIDB4YjY2YTY5NGUpLCBUT0JOKDB4NzQ2MGZjNzYsIDB4ZTNmYzI3ZTUp
LAotICAgICAgICAgVE9CTigweDcwNDY5YjgyLCAweDk1Y2FhYmVlKSwgVE9CTigweGRlMDI0Y2E1
LCAweDg4OTUwMWUzKSwKLSAgICAgICAgIFRPQk4oMHg2YmRhZGMwNiwgMHgwNzZlZDI2NSksIFRP
Qk4oMHgwY2IxMjM2YiwgMHg1YTBlZjhiMiksCi0gICAgICAgICBUT0JOKDB4NDA2NWRkYmYsIDB4
MDk3MmViZjkpLCBUT0JOKDB4ZjFkZDM4NzUsIDB4MjJhY2E0MzIpLAotICAgICAgICAgVE9CTigw
eGE4OGI5N2NmLCAweDc0NGFmZjc2KSwgVE9CTigweGQxMzU5YWZkLCAweGZlOGUzZDI0KSwKLSAg
ICAgICAgIFRPQk4oMHg1MmEzYmEyYiwgMHg5MTUwMmNmMyksIFRPQk4oMHgyYzM4MzJhOCwgMHgw
ODRkYjc1ZCksCi0gICAgICAgICBUT0JOKDB4MDRhMTJkZGQsIDB4ZGUzMGIxYzkpLCBUT0JOKDB4
NzgwMmVhYmMsIDB4ZTMxZmQ2MGMpLAotICAgICAgICAgVE9CTigweDMzNzA3MzI3LCAweGEzN2Zk
ZGFiKSwgVE9CTigweDY1ZDZmMmFiLCAweGZhYWZhOTczKSwKLSAgICAgICAgIFRPQk4oMHgzNTI1
YzViOCwgMHgxMWU2ZjkxYSksIFRPQk4oMHg3NmFlYjBjOSwgMHg1ZjQ2NTMwYiksCi0gICAgICAg
ICBUT0JOKDB4ZTg4MTVmZjYsIDB4MmY5M2E2NzUpLCBUT0JOKDB4YTZlYzk2ODQsIDB4MDVmNDg2
NzkpLAotICAgICAgICAgVE9CTigweDZkY2JiNTU2LCAweDM1OGFlODg0KSwgVE9CTigweDBhZjYx
NDcyLCAweGUxOWUzODczKSwKLSAgICAgICAgIFRPQk4oMHg3MjMzNDM3MiwgMHhhNWY2OTZiZSks
IFRPQk4oMHhjNjVlNTdlYSwgMHg2ZjIyZmI3MCksCi0gICAgICAgICBUT0JOKDB4MjY4ZGEzMGMs
IDB4OTQ2Y2VhOTApLCBUT0JOKDB4MTM2YThhODcsIDB4NjU2ODFiMmEpLAotICAgICAgICAgVE9C
TigweGFkNWU4MWRjLCAweDBmOWY0NGQ0KSwgVE9CTigweGYwOWE2OTYwLCAweDJjNDY1ODVhKSwK
LSAgICAgICAgIFRPQk4oMHhkMTY0OTE2NCwgMHhjNDQ3ZDFiMSksIFRPQk4oMHgzYjRiMzZjOCwg
MHg4NzlkYzhiMSksCi0gICAgICAgICBUT0JOKDB4MjBkNDE3N2IsIDB4M2I2YjIzNGMpLCBUT0JO
KDB4MDk2YTI1MDUsIDB4MTczMGQ5ZDApLAotICAgICAgICAgVE9CTigweDA2MTFiOWI4LCAweGVm
ODA1MzFkKSwgVE9CTigweGJhOTA0YjNiLCAweDY0YmI0OTVkKSwKLSAgICAgICAgIFRPQk4oMHgx
MTkyZDlkNCwgMHg5M2EzMTQ3YSksIFRPQk4oMHg5ZjMwYTVkYywgMHg5YTU2NTU0NSksCi0gICAg
ICAgICBUT0JOKDB4OTBiMWY5Y2IsIDB4NmVmMDcyMTIpLCBUT0JOKDB4Mjk5NTg1NDYsIDB4MGQ4
N2ZjMTMpLAotICAgICAgICAgVE9CTigweGQzMzIzZWZmLCAweGMxN2RiOWJhKSwgVE9CTigweGNi
MTg1NDhjLCAweGNiMTY0NGE4KSwKLSAgICAgICAgIFRPQk4oMHgxOGEzMDZkNCwgMHg0ZjQ5ZmZi
YyksIFRPQk4oMHgyOGQ2NThmMSwgMHg0YzJlODY4NCksCi0gICAgICAgICBUT0JOKDB4NDRiYTYw
Y2QsIDB4YTk5ZjhjNzEpLCBUT0JOKDB4NjdiN2FiZGIsIDB4NGJmNzQyZmYpLAotICAgICAgICAg
VE9CTigweDY2MzEwZjljLCAweDkxNGIzZjk5KSwgVE9CTigweGFlNDMwYTMyLCAweGY0MTJjMTYx
KSwKLSAgICAgICAgIFRPQk4oMHgxZTY3NzZkMywgMHg4OGFjZTUyZiksIFRPQk4oMHg0YmMwZmEy
NCwgMHg1MmQ3MDY3ZCksCi0gICAgICAgICBUT0JOKDB4MDNjMjg2YWEsIDB4OGYwN2NkMWIpLCBU
T0JOKDB4NGNiOGYzOGMsIDB4YTk4NWIyYzEpLAotICAgICAgICAgVE9CTigweDgzY2NiZTgwLCAw
eDhjM2JmZjM2KSwgVE9CTigweDAwNWEwYmQyLCAweDUyNjNlNTc1KSwKLSAgICAgICAgIFRPQk4o
MHg0NjBkN2RkYSwgMHgyNTliZGNkMSksIFRPQk4oMHg0YTFjNTY0MiwgMHhmYTVjYWI2YiksCi0g
ICAgICAgICBUT0JOKDB4MmI3YmRiYjksIDB4OWZlNGZjODgpLCBUT0JOKDB4MDk0MThlMjgsIDB4
Y2M5N2JiYjUpLAotICAgICAgICAgVE9CTigweGQ4Mjc0ZmI0LCAweGExMjMyMWFlKSwgVE9CTigw
eGIxMzcwMDdkLCAweDVjODdiNjRlKSwKLSAgICAgICAgIFRPQk4oMHg4MDUzMWZlMSwgMHhjNjNj
NDk2MiksIFRPQk4oMHg1MDU0MWU4OSwgMHg5ODFmZGIyNSksCi0gICAgICAgICBUT0JOKDB4ZGMx
MjkxYTEsIDB4ZmQ0YzJiNmIpLCBUT0JOKDB4YzA2OTNhMTcsIDB4YTZkZjRmY2EpLAotICAgICAg
ICAgVE9CTigweGIyYzQ2MDRlLCAweDAxMTdmMjAzKSwgVE9CTigweDI0NWYxOTYzLCAweDBhOTli
OGQwKSwKLSAgICAgICAgIFRPQk4oMHhhZWRjMjBhYSwgMHhjNjIxMmM0NCksIFRPQk4oMHhiMWVk
NGU1NiwgMHg1MjBmNTJhOCksCi0gICAgICAgICBUT0JOKDB4ZmU0OGY1NzUsIDB4Zjg1NDdiZTMp
LCBUT0JOKDB4MGE3MDMzY2QsIDB4YTllNDVmOTgpLAotICAgICAgICAgVE9CTigweDRiNDVkM2E5
LCAweDE4YzUwMTAwKSwgVE9CTigweGIyYTZjZDZhLCAweGE2MWQ0MWRhKSwKLSAgICAgICAgIFRP
Qk4oMHg2MGJiYjRmNSwgMHg1NzkzM2M2YiksIFRPQk4oMHhhNzUzOGViZCwgMHgyYjBkN2ZmYyks
Ci0gICAgICAgICBUT0JOKDB4OWVhM2FiOGQsIDB4OGNkNjI2YjYpLCBUT0JOKDB4ODI3M2E0ODQs
IDB4MzYwMTYyNWEpLAotICAgICAgICAgVE9CTigweDg4ODU5ODQ1LCAweDAxNjhlNTA4KSwgVE9C
TigweDhjYmM5YmIyLCAweDk5YTk0YWJkKSwKLSAgICAgICAgIFRPQk4oMHg3MTNhYzc5MiwgMHhm
YWIwYTY3MSksIFRPQk4oMHhhMzk5NWIxOSwgMHg2YzllYmZmYyksCi0gICAgICAgICBUT0JOKDB4
ZTcxMTY2OGUsIDB4MTIzOWUxNTIpLCBUT0JOKDB4NTY4OTI1NTgsIDB4YmJiOGRmZjQpLAotICAg
ICAgICAgVE9CTigweDhiZmM3ZGFiLCAweGRiZjE3OTYzKSwgVE9CTigweDViNTlmZTVhLCAweGIz
ZGUxMjUzKSwKLSAgICAgICAgIFRPQk4oMHg3ZTMzMjBlYiwgMHgzNGE5ZjdhZSksIFRPQk4oMHhl
NWU4Y2Y3MiwgMHhkNzUxZWZlNCksCi0gICAgICAgICBUT0JOKDB4N2VhMDAzYmMsIDB4ZDliZTJm
MzcpLCBUT0JOKDB4YzBmNTUxYTAsIDB4YjZjMDhlZjcpLAotICAgICAgICAgVE9CTigweDU2NjA2
MjY4LCAweDAzOGY2NzI1KSwgVE9CTigweDFkZDM4ZTM1LCAweDZkOTJkM2I2KSwKLSAgICAgICAg
IFRPQk4oMHgwN2RmY2U3YywgMHhjM2NiZDY4NiksIFRPQk4oMHg0ZTU0OWUwNCwgMHg2NTFjNWRh
OCksCi0gICAgICAgICBUT0JOKDB4NDA1OGY5M2IsIDB4MDhiMTkzNDApLCBUT0JOKDB4YzJmYWU2
ZjQsIDB4Y2FjNmQ4OWQpLAotICAgICAgICAgVE9CTigweDRiYWQ4YThjLCAweDhmMTU5Y2M3KSwg
VE9CTigweDBkZGJhNGIzLCAweGNiMGI2MDFjKSwKLSAgICAgICAgIFRPQk4oMHhkYTRmYzdiNSwg
MHgxZGQ5NWY4YyksIFRPQk4oMHgxZDE2M2NkNywgMHhjZWE1YzI1NSksCi0gICAgICAgICBUT0JO
KDB4MzA3MDdkMDYsIDB4Mjc0YThjNGMpLCBUT0JOKDB4NzlkOWUwMDgsIDB4MjgwMmU5Y2UpLAot
ICAgICAgICAgVE9CTigweDAyYTI5ZWJmLCAweGU2ZGRkNTA1KSwgVE9CTigweDM3MDY0ZTc0LCAw
eGI1MGJlZDFhKSwKLSAgICAgICAgIFRPQk4oMHgzZjZiYWU2NSwgMHhhNzMyN2Q1NyksIFRPQk4o
MHgzODQ2ZjVmMSwgMHhmODM5MjBiYyksCi0gICAgICAgICBUT0JOKDB4ODdjMzc0OTEsIDB4NjBk
ZjFiOWIpLCBUT0JOKDB4NGNmYjI4OTUsIDB4MmQxZGEyOWYpLAotICAgICAgICAgVE9CTigweDEw
YTQ3OGNhLCAweDRlZDE3NDNjKSwgVE9CTigweDM5MGM2MDMwLCAweDNlZGQ0N2M2KSwKLSAgICAg
ICAgIFRPQk4oMHg4ZjNlNTMxMiwgMHg4YzBhNzhkZSksIFRPQk4oMHhjY2QwMmJkYSwgMHgxZTg1
ZGY3MCksCi0gICAgICAgICBUT0JOKDB4ZDZjNzVjMDMsIDB4YTYxYjY1ODIpLCBUT0JOKDB4MDc2
MjkyMWMsIDB4ZmMwZWViZDEpLAotICAgICAgICAgVE9CTigweGQzNGQwODIzLCAweGQ4NTAxMGMw
KSwgVE9CTigweGQ3M2FhYWNiLCAweDAwNDRjZjFmKSwKLSAgICAgICAgIFRPQk4oMHhmYjQxNTli
YiwgMHhhM2I1ZTc4YSksIFRPQk4oMHgyMjg3YzdmNywgMHhlNTgyNmYzZiksCi0gICAgICAgICBU
T0JOKDB4NGFlYWY3NDIsIDB4NTgwYjFhMDEpLCBUT0JOKDB4ZjA4MDQxNWQsIDB4NjA0MjNiNzkp
LAotICAgICAgICAgVE9CTigweGUxMjYyMmNkLCAweGE3ZGVhMTQ0KSwgVE9CTigweDQ5ZWE0OTk2
LCAweDU5ZDYyNDcyKSwKLSAgICAgICAgIFRPQk4oMHhiNDI5OTFlZiwgMHg1NzFmMzkxMyksIFRP
Qk4oMHgwNjEwZjIxNCwgMHhmNWIyNWE4YSksCi0gICAgICAgICBUT0JOKDB4NDdhZGM1ODUsIDB4
MzBiNzllOGYpLCBUT0JOKDB4ZjkwZTNkZjYsIDB4MDdhMDY1YTIpLAotICAgICAgICAgVE9CTigw
eDVkMGE1ZGViLCAweDQzZTJlMDM0KSwgVE9CTigweDUzZmI1YTM0LCAweDQ0NDAyNGFhKSwKLSAg
ICAgICAgIFRPQk4oMHhhODYyOGM2OCwgMHg2YjBjOWY3ZiksIFRPQk4oMHg5YzY5YzI5YywgMHhh
YzU2MzY1NiksCi0gICAgICAgICBUT0JOKDB4NWEyMzFmZWIsIDB4YmFjZTQ3YjYpLCBUT0JOKDB4
YmRjZTAyODksIDB4OWVhNWEyZWMpLAotICAgICAgICAgVE9CTigweDA1ZGExZmFjLCAweDk0NjM4
NTNlKSwgVE9CTigweDk2ODEyYzUyLCAweDUwOWU3OGFhKSwKLSAgICAgICAgIFRPQk4oMHhkM2Zi
NTc3MSwgMHg1NzE1MTY5MiksIFRPQk4oMHhlYjI3MjFmOCwgMHhkOThlMWM0NCksCi0gICAgICAg
ICBUT0JOKDB4YzA1MDYwODcsIDB4MzIzOTliZTEpLCBUT0JOKDB4ZGE1YTU1MTEsIDB4ZDk3OWQ4
YjgpLAotICAgICAgICAgVE9CTigweDczN2VkNTVkLCAweGM2ZjU2NzgwKSwgVE9CTigweGUyMGQz
MDA0LCAweDBkYzdhN2Y0KSwKLSAgICAgICAgIFRPQk4oMHgwMmNlNzMwMSwgMHhmNTk0MWEwMyks
IFRPQk4oMHg5MWVmNTIxNSwgMHhlZDMwZjgzYSksCi0gICAgICAgICBUT0JOKDB4Mjg3MjdmYzEs
IDB4NDA5MmQ4NWYpLCBUT0JOKDB4NzJkMjIzYzYsIDB4NWM0OWU0MWEpLAotICAgICAgICAgVE9C
TigweGE3Y2YzMGEyLCAweGJhNmE0ZDgxKSwgVE9CTigweDdjMDg2MjA5LCAweGIwMzBkODdkKSwK
LSAgICAgICAgIFRPQk4oMHgwNDg0NGM3ZCwgMHhmYzU4OGIwOSksIFRPQk4oMHg3MjhjZDQ5OSwg
MHg1ODc0YmJiMCksCi0gICAgICAgICBUT0JOKDB4Y2MxMjgxZWUsIDB4ZTg0YzA0OTUpLCBUT0JO
KDB4MDc2OWI1YmEsIDB4ZWMzMTk1OGYpLAotICAgICAgICAgVE9CTigweDY2NWMyMjhiLCAweGY5
OWMyNDcxKSwgVE9CTigweGYyZDhhMTFiLCAweDE5MWViMTEwKSwKLSAgICAgICAgIFRPQk4oMHg0
NTk0ZjQ5NCwgMHhkMzZkNzAyNCksIFRPQk4oMHg0ODJkZWQ4YiwgMHhjZGNiMjVhMSksCi0gICAg
ICAgICBUT0JOKDB4Yzk1OGE5ZDgsIDB4ZGFkZDQ4ODUpLCBUT0JOKDB4NzAwNDQ3N2UsIDB4ZjFk
MmI1NDcpLAotICAgICAgICAgVE9CTigweDBhNDVmNmVmLCAweDJhMGFmNTUwKSwgVE9CTigweDRm
YzczOWQ2LCAweDJmOGQ2MzUxKSwKLSAgICAgICAgIFRPQk4oMHg3NWNkYWYyNywgMHg3ODZmMDhh
OSksIFRPQk4oMHg4NzAwYmIyNiwgMHg0MmMyNzM3ZiksCi0gICAgICAgICBUT0JOKDB4ODU1YTcx
NDEsIDB4MWM0ZTI2NzApLCBUT0JOKDB4ODEwMTg4YzEsIDB4MTUwNzZmZWYpLAotICAgICAgICAg
VE9CTigweGMyNTFkMGM5LCAweGFiY2QzMjk3KSwgVE9CTigweGFlNGM4OTY3LCAweGY0ODEwOGVi
KSwKLSAgICAgICAgIFRPQk4oMHhiZDE0NmRlNywgMHgxOGNlZWQzMCksIFRPQk4oMHhmOWQ0ZjA3
YSwgMHhjOTg2YmNlZCksCi0gICAgICAgICBUT0JOKDB4NWFkOThlZDUsIDB4ODNmYTFlMDgpLCBU
T0JOKDB4Nzc4MGQzM2UsIDB4YmVhYmQxZmIpLAotICAgICAgICAgVE9CTigweGUzMzA1MTNjLCAw
eDkwM2IxMTk2KSwgVE9CTigweGJhMTFkZTllLCAweGE0N2JjOGM0KSwKLSAgICAgICAgIFRPQk4o
MHg2ODQzMzRkYSwgMHgwMmMyZDA2NCksIFRPQk4oMHg3ZWNmMzYwZCwgMHhhNDhkZTIzYiksCi0g
ICAgICAgICBUT0JOKDB4NTdhMWI0NzQsIDB4MGE5MDg5ZDgpLCBUT0JOKDB4ZjI4ZmE0MzksIDB4
ZmYzNjczNGMpLAotICAgICAgICAgVE9CTigweGYyYTQ4MmNiLCAweGVhNDU3MGIzKSwgVE9CTigw
eGVlNjVkNjhiLCAweGE1ZWJjZWU5KSwKLSAgICAgICAgIFRPQk4oMHg5ODhkMDAzNiwgMHhiOTY5
NGNkNSksIFRPQk4oMHg1M2VkZDBlOSwgMHgzNzg4NWQzMiksCi0gICAgICAgICBUT0JOKDB4ZTM3
ZTMzMDcsIDB4YmViOWJjNmQpLCBUT0JOKDB4ZTlhYmI5MDcsIDB4OWY1YzY3NjgpLAotICAgICAg
ICAgVE9CTigweDQzOTZjY2Q1LCAweDUxZjIxNjBmKSwgVE9CTigweDI1MDA4ODhjLCAweDQ3MzM2
ZGE2KSwKLSAgICAgICAgIFRPQk4oMHgzODNmOWVkOSwgMHg5MjZmY2U0MyksIFRPQk4oMHg4MDlk
ZDFjNywgMHgwNGRhMjkzMCksCi0gICAgICAgICBUT0JOKDB4MzBmNmY1OTYsIDB4OGE0Y2IyMjcp
LCBUT0JOKDB4MGQ3MDBjN2YsIDB4NzNhNTZiMzgpLAotICAgICAgICAgVE9CTigweDE4MjVlYTMz
LCAweGFiNjRhMDY1KSwgVE9CTigweGFhYjliNzM1LCAweDEzMzhkZjgwKSwKLSAgICAgICAgIFRP
Qk4oMHgxNTE2MTAwZCwgMHg5YjYzZjU3ZiksIFRPQk4oMHgyNTc0Mzk1YSwgMHgyN2E2YTYzNCks
Ci0gICAgICAgICBUT0JOKDB4YjU1NjBmYjYsIDB4NzAwYTFhY2QpLCBUT0JOKDB4ZTgyM2ZkNzMs
IDB4ZmQ5OTk2ODEpLAotICAgICAgICAgVE9CTigweGRhOTE1ZDFmLCAweDZjYjRlMWJhKSwgVE9C
TigweDBkMDMwMTE4LCAweDZlYmUwMGEzKSwKLSAgICAgICAgIFRPQk4oMHg3NDRmYjBjOSwgMHg4
OWZjYThjZCksIFRPQk4oMHg5NzBkMDFkYiwgMHhmOWRhMGUwYiksCi0gICAgICAgICBUT0JOKDB4
MGFkOGM1NjQsIDB4NzkzMWQ3NmYpLCBUT0JOKDB4YjE1NzM3YmYsIDB4ZjY1OWI5NmEpLAotICAg
ICAgICAgVE9CTigweGRjOTkzM2U4LCAweGE4YjQ4NGU3KSwgVE9CTigweGIyZmRiZGY5LCAweDdh
MjZkZWM3KSwKLSAgICAgICAgIFRPQk4oMHgyMzQ5ZTlhNCwgMHg5ZjFmMDEzNiksIFRPQk4oMHg3
ODYwMzY4ZSwgMHg3MGZkZGRkYiksCi0gICAgICAgICBUT0JOKDB4ZDkzZDJjMWMsIDB4ZjlhZDNl
MTgpLCBUT0JOKDB4NmQ2YzVmMTcsIDB4Njg5ZjRlNzkpLAotICAgICAgICAgVE9CTigweDdhNTQ0
ZDkxLCAweGIyNGZmMWI2KSwgVE9CTigweDNlMTJhNWViLCAweGZlMTZjZDhjKSwKLSAgICAgICAg
IFRPQk4oMHg1NDM1NzRlOSwgMHhhNTZiODcyZiksIFRPQk4oMHhhMWFkNTUwYywgMHhmY2Y2OGVh
MiksCi0gICAgICAgICBUT0JOKDB4Njg5ZTM3ZDIsIDB4M2Y1NjBlZjcpLCBUT0JOKDB4OGM1NGI5
Y2EsIDB4YzlkNDdhOGIpLAotICAgICAgICAgVE9CTigweDQ2ZDQwYTRhLCAweDA4OGFjMzQyKSwg
VE9CTigweGVjNDUwYzdjLCAweDE1NzZjNmQwKSwKLSAgICAgICAgIFRPQk4oMHhiNTg5ZTMxYywg
MHgxZjk2ODllOSksIFRPQk4oMHhkYWNmMjYwMiwgMHhiODc4MTcxOCksCi0gICAgICAgICBUT0JO
KDB4YTg5MjM3YzYsIDB4YzhjYjZiNDIpLCBUT0JOKDB4MTMyNmZjOTMsIDB4Yjk2ZWYzODEpLAot
ICAgICAgICAgVE9CTigweDU1ZDU2YzZkLCAweGI1ZjA3ODI1KSwgVE9CTigweGFjYmEyZWVhLCAw
eDc0NDllMjJkKSwKLSAgICAgICAgIFRPQk4oMHg3NGUwODg3YSwgMHg2MzNjMzAwMCksIFRPQk4o
MHhjYjZjZDE3MiwgMHhkN2NiY2Y3MSksCi0gICAgICAgICBUT0JOKDB4MzA5ZTgxZGUsIDB4YzM2
Y2YxYmUpLCBUT0JOKDB4MDdhMThhNmQsIDB4NjBhZTM5OWIpLAotICAgICAgICAgVE9CTigweGIz
NmMyNjc5LCAweDllZGNlNTdlKSwgVE9CTigweDUyYjg5MmY0LCAweGRmMDAxZDQxKSwKLSAgICAg
ICAgIFRPQk4oMHhkODg0YWU1ZCwgMHgxNmExZjJjNiksIFRPQk4oMHg5YjMyOTQyNCwgMHhlZmNj
MzcwYSksCi0gICAgICAgICBUT0JOKDB4MzEyMGRhZjIsIDB4YmQyZTIxZGYpLCBUT0JOKDB4NTUy
OThkMmQsIDB4MDI0NzBhOTkpLAotICAgICAgICAgVE9CTigweDBiNzhhZjZjLCAweGEwNWRiMzJl
KSwgVE9CTigweDVjNzZhMzMxLCAweDYwMWY1NjM2KSwKLSAgICAgICAgIFRPQk4oMHhhYWU4NjFm
ZiwgMHhmOGE0ZjI5YyksIFRPQk4oMHg3MGRjOTI0MCwgMHhkNjhmOGQ0OSksCi0gICAgICAgICBU
T0JOKDB4OTYwZTY0OWYsIDB4ODFiMTMyMWMpLCBUT0JOKDB4M2QyYzgwMWIsIDB4ODc5MmU0Y2Up
LAotICAgICAgICAgVE9CTigweGY0NzlmNzcyLCAweDQyNTIxODc2KSwgVE9CTigweDBiZWQ5M2Jj
LCAweDQxNmM3OWIxKSwKLSAgICAgICAgIFRPQk4oMHhhNjdmYmMwNSwgMHgyNjNlNWJjOSksIFRP
Qk4oMHgwMWU4ZTYzMCwgMHg1MjFkYjA0OSksCi0gICAgICAgICBUT0JOKDB4NzZmMjY3MzgsIDB4
YzZmMzQzMWUpLCBUT0JOKDB4ZTYwOWNiMDIsIDB4ZTMyNjc1NDEpLAotICAgICAgICAgVE9CTigw
eGIxMGNmZjJkLCAweDgxOGM4NzdjKSwgVE9CTigweDFmMGU3NWNlLCAweDc4NmExM2NiKSwKLSAg
ICAgICAgIFRPQk4oMHhmNGZkY2E2NCwgMHgxMTU4NTQ0ZCksIFRPQk4oMHg1ZDc3N2U4OSwgMHg2
Y2I3MWVkMCksCi0gICAgICAgICBUT0JOKDB4M2MyMzM3MzcsIDB4YTlhYTQ3NTUpLCBUT0JOKDB4
N2I0NTMxOTIsIDB4ZTUyN2FiNDApLAotICAgICAgICAgVE9CTigweGRiNTlmNjg4LCAweDM5ZjA1
ZmZlKSwgVE9CTigweDhmNGY0YmUwLCAweDZkODI1NzRlKSwKLSAgICAgICAgIFRPQk4oMHhjY2Uz
NDUwYywgMHhlZTI5MmQxYiksIFRPQk4oMHhhYTQ0OGExMiwgMHg2MWNjZDA4NiksCi0gICAgICAg
ICBUT0JOKDB4YWJjZTkxYjMsIDB4Zjc5MTQ5NjcpLCBUT0JOKDB4NDUzN2YwOWIsIDB4MTkwOGE1
ZWQpLAotICAgICAgICAgVE9CTigweGE4MTI0MjFlLCAweGY1MTA0MmU3KSwgVE9CTigweGZhZjVj
ZWJjLCAweGVjMGIzYTM0KSwKLSAgICAgICAgIFRPQk4oMHg3MzBmZmQ4NywgMHg0Y2E2YjM5YSks
IFRPQk4oMHg3MGZiNzJlZCwgMHgwMmVmZDM0MiksCi0gICAgICAgICBUT0JOKDB4ZWI0NzM1Zjks
IDB4ZDc1YzhlZGIpLCBUT0JOKDB4YzExZjIxNTcsIDB4YzI3OGFhNTEpLAotICAgICAgICAgVE9C
TigweGM0NTlmNjM1LCAweGJmM2JmZWJmKSwgVE9CTigweDNhMWZmMGI0LCAweDZiZDk2MDFmKSwK
LSAgICAgICAgIFRPQk4oMHhjOWQxMjgyMywgMHhjNDIwY2I3MyksIFRPQk4oMHgzZTlhZjNlMiwg
MHgzYzI5MTVhMyksCi0gICAgICAgICBUT0JOKDB4ZTBjODJjNzIsIDB4YjQxYzM0NDApLCBUT0JO
KDB4MTc1MjM5ZTUsIDB4ZTMwMzlhNWYpLAotICAgICAgICAgVE9CTigweGUxMDg0YjhhLCAweDU1
ODc5NWEzKSwgVE9CTigweDMyOGQwYTFkLCAweGQwMWU1YzYwKSwKLSAgICAgICAgIFRPQk4oMHgw
YTQ5NWYyZSwgMHhkMzc4OGEwNCksIFRPQk4oMHgyNWQ4ZmYxNiwgMHg2NmMxMWE5ZiksCi0gICAg
ICAgICBUT0JOKDB4ZjUxNTVmMDUsIDB4OWVkNjkyZDYpLCBUT0JOKDB4OTU0ZmExMDcsIDB4NGY0
MjVmZTQpLAotICAgICAgICAgVE9CTigweGQxNmFhYmYyLCAweGU5OGFhYTk5KSwgVE9CTigweDkw
Y2Q4YmEwLCAweDk2YjBmODhhKSwKLSAgICAgICAgIFRPQk4oMHg5NTdmNDc4MiwgMHhjMTU0MDI2
YSksIFRPQk4oMHg1NGVlMDczNCwgMHg1MmFmNTZkMiksCi0gICAgICAgICBUT0JOKDB4YmNmODll
NTQsIDB4NDViNDE0N2EpLCBUT0JOKDB4M2QxMDJmMjEsIDB4OWE1MjgxNmMpLAotICAgICAgICAg
VE9CTigweDY4MDg1MTdlLCAweDM5YjYyZTc3KSwgVE9CTigweDkyZTI1NDIxLCAweDY5MTY5YWQ4
KSwKLSAgICAgICAgIFRPQk4oMHhkNzIxZDg3MSwgMHhiYjYwODU1OCksIFRPQk4oMHg2MGU0ZWJh
ZSwgMHhmNmQ0ZmY5YiksCi0gICAgICAgICBUT0JOKDB4MGJhMTA4MTksIDB4NDFmMjc2M2UpLCBU
T0JOKDB4Y2EyZTQ1YmUsIDB4NTFlZTMyNDcpLAotICAgICAgICAgVE9CTigweDY2ZDE3MmVjLCAw
eDJiZmQ3YTVmKSwgVE9CTigweDUyOGE4ZjJmLCAweDc0ZDBiMTJkKSwKLSAgICAgICAgIFRPQk4o
MHhlMTdmMWUzOCwgMHhkYWJlNzBkYyksIFRPQk4oMHgxZDVkNzMxNiwgMHg5ZjkzOTgzYyksCi0g
ICAgICAgICBUT0JOKDB4NTFiMjE4NGEsIDB4ZGY0MjNlMzEpLCBUT0JOKDB4Y2I0MTcyOTEsIDB4
YWVkYjFhMTApLAotICAgICAgICAgVE9CTigweDIwNTRjYTkzLCAweDYyNWJjYWI5KSwgVE9CTigw
eDU0Mzk2ODYwLCAweGE5ODk5OGYwKSwKLSAgICAgICAgIFRPQk4oMHg0ZTUzZjZjNCwgMHhhNTRh
ZTU3ZSksIFRPQk4oMHgwZmZlYjU5MCwgMHhlZTY0OGU5ZCksCi0gICAgICAgICBUT0JOKDB4ZmJi
ZGFhZGMsIDB4NmFmYWY2YmMpLCBUT0JOKDB4Zjg4YWU3OTYsIDB4YWEzYmZiOGEpLAotICAgICAg
ICAgVE9CTigweDIwOWYxZDQ0LCAweGQyMzU5ZWQ5KSwgVE9CTigweGFjNjhkZDAzLCAweGYzNTQ0
Y2UyKSwKLSAgICAgICAgIFRPQk4oMHhmMzc4ZGE0NywgMHhmZDUxZTU2OSksIFRPQk4oMHhlMWFi
ZDg2MCwgMHgyY2M4MDA5NyksCi0gICAgICAgICBUT0JOKDB4MjNjYTE4ZDksIDB4MzQzYjZlM2Ep
LCBUT0JOKDB4NDgwNzk3ZTgsIDB4YjQwYTFiYWUpLAotICAgICAgICAgVE9CTigweGQxZjBjNzE3
LCAweDUzM2YzZTY3KSwgVE9CTigweDQ0ODk2OTcwLCAweDA2ZTZjZGZjKSwKLSAgICAgICAgIFRP
Qk4oMHg4Y2EyMTA1NSwgMHg1MmE4MmU4ZCksIFRPQk4oMHhiMmNhZjc4NSwgMHg3ODQ2MGNkYyks
Ci0gICAgICAgICBUT0JOKDB4NGMxYjdiNjIsIDB4ZTkwMzcxNzgpLCBUT0JOKDB4ZWZjMDlkMmMs
IDB4ZGI1MTRiNTgpLAotICAgICAgICAgVE9CTigweDVmMmRmOWVlLCAweDkxMTNiZTVjKSwgVE9C
TigweDJmYmRhNzhmLCAweGIzZjkyNzFjKSwKLSAgICAgICAgIFRPQk4oMHhlMDlhODFhZiwgMHg4
ZjgzZmM1NCksIFRPQk4oMHgwNmIxMzg2NiwgMHg4YWZiNTE0MSksCi0gICAgICAgICBUT0JOKDB4
MzhmNjQ4MGYsIDB4NDNlMzg2NWQpLCBUT0JOKDB4NzJkZDc3YTgsIDB4MWRkZjQ3ZDkpLAotICAg
ICAgICAgVE9CTigweGYyYThlOTcxLCAweDRjMjA1ZmY3KSwgVE9CTigweDQ2ZDQ0OWQ4LCAweDlk
MDg4YWQ4KSwKLSAgICAgICAgIFRPQk4oMHg5MjY2MTllYSwgMHgxODVkNzA2ZiksIFRPQk4oMHhl
NDdlMDJlYiwgMHhjN2RkN2Y2MiksCi0gICAgICAgICBUT0JOKDB4ZTdmMTIwYTcsIDB4OGNiYzIw
MzEpLCBUT0JOKDB4YzE4YmVmMDAsIDB4OTk4ZDRhYzkpLAotICAgICAgICAgVE9CTigweDE4ZjM3
YTljLCAweDZiZGYyMmRhKSwgVE9CTigweGVmYmM0MzJmLCAweDkwZGM4MmRmKSwKLSAgICAgICAg
IFRPQk4oMHhjNTJjZWY4ZSwgMHg1ZDcwMzY1MSksIFRPQk4oMHg4Mjg4N2JhMCwgMHhkOTk4ODFh
NSksCi0gICAgICAgICBUT0JOKDB4N2NlYzlkZGEsIDB4YjkyMGVjMWQpLCBUT0JOKDB4ZDBkN2U4
YzMsIDB4ZWMzZThkM2IpLAotICAgICAgICAgVE9CTigweDQ0NWJjMzk1LCAweDRjYTg4NzQ3KSwg
VE9CTigweGVkZWFhMmUwLCAweDlmZDUzNTM1KSwKLSAgICAgICAgIFRPQk4oMHg0NjFiMWQ5Mywg
MHg2Y2M4NzQ3NSksIFRPQk4oMHhkOTJhNTJlMiwgMHg2ZDIzODNiZCksCi0gICAgICAgICBUT0JO
KDB4ZmFiY2NiNTksIDB4ZDc5MDM1NDYpLCBUT0JOKDB4NjExMWE3NjEsIDB4M2QxNGIxMTIpLAot
ICAgICAgICAgVE9CTigweDBhZTU4NGZlLCAweGIzZDVmNjEyKSwgVE9CTigweDVlYTY5YjhkLCAw
eDYwZTgyOGVjKSwKLSAgICAgICAgIFRPQk4oMHg2YzA3ODk4NSwgMHg1NDA4NzAzMCksIFRPQk4o
MHg2NDljYWIwNCwgMHhhYzQ4MjFmZSksCi0gICAgICAgICBUT0JOKDB4MjVlY2VkY2YsIDB4OGJk
Y2UyMTQpLCBUT0JOKDB4YjU2MjJmNzIsIDB4ODZhZjczNjEpLAotICAgICAgICAgVE9CTigweDBl
MTIyN2FhLCAweDcwMzhiOWUyKSwgVE9CTigweGQwZWZiMjczLCAweGFjMjBmYTc3KSwKLSAgICAg
ICAgIFRPQk4oMHg4MTdmZjg4YiwgMHg3OWRmOTc1YiksIFRPQk4oMHg4NTZiZjI4NiwgMHgxOTk5
NTAzZSksCi0gICAgICAgICBUT0JOKDB4YjRkNTM1MWYsIDB4NTAzOGVjNDYpLCBUT0JOKDB4NzQw
YTUyYzUsIDB4ZmM0MmFmNmUpLAotICAgICAgICAgVE9CTigweDJlMzhiYjE1LCAweDJjYmIxYTNm
KSwgVE9CTigweGMzZWI5OWZlLCAweDE3YTgzNDI5KSwKLSAgICAgICAgIFRPQk4oMHhjYTRmY2Jm
MSwgMHhkZDY2YmI3NCksIFRPQk4oMHg4ODA3ODRkNiwgMHhjZGU1ZThmYyksCi0gICAgICAgICBU
T0JOKDB4ZGRjODRjMWMsIDB4YjRlN2EwYmUpLCBUT0JOKDB4ODc4MDUxMGQsIDB4YmQxNWE3MmYp
LAotICAgICAgICAgVE9CTigweDQ0YmNmMWFmLCAweDgxZWMzMGUxKSwgVE9CTigweDE0MWU1MGE4
LCAweDBhNjEwNzNlKSwKLSAgICAgICAgIFRPQk4oMHgwZDk1NTcxOCwgMHg0N2JlODdhZSksIFRP
Qk4oMHg2OGE2MTQxNywgMHhmNzZhNDM3MiksCi0gICAgICAgICBUT0JOKDB4ZjU3ZTdlODcsIDB4
YzYwN2MzZDMpLCBUT0JOKDB4MDQzYWZhZjgsIDB4NTI1MmYzMzIpLAotICAgICAgICAgVE9CTigw
eGNjMTRlMTIxLCAweDE1NTJhNGQyKSwgVE9CTigweGI2ZGVlNjkyLCAweGJiNGQ0YWI0KSwKLSAg
ICAgICAgIFRPQk4oMHhiNmFiNzRjOCwgMHhhMDM4MTZhNCksIFRPQk4oMHg4NDAwMWFlNCwgMHg2
ZjM5NGEyOSksCi0gICAgICAgICBUT0JOKDB4NWJlZDgzNDQsIDB4ZDc5NWZiNDUpLCBUT0JOKDB4
NTczMjZlN2QsIDB4Yjc5ZjU1YTUpLAotICAgICAgICAgVE9CTigweGM5NTMzY2UwLCAweDRhY2Nk
ZmZjKSwgVE9CTigweDUzNDczY2FmLCAweDM5OTNmYTA0KSwKLSAgICAgICAgIFRPQk4oMHg3OTA2
ZWI5MywgMHhhMTNkZjRjOCksIFRPQk4oMHhhNzNlNTFmNiwgMHg5N2NiZTQ2ZiksCi0gICAgICAg
ICBUT0JOKDB4ZDFhYjNhZTEsIDB4MGFlNGNjZjgpLCBUT0JOKDB4MjU2MTQ1MDgsIDB4OGE1YjNk
YmMpLAotICAgICAgICAgVE9CTigweDYxZWZmOTYyLCAweDExYTcxYjI3KSwgVE9CTigweGRmNzE0
MTJiLCAweDZiYjdmYTM5KSwKLSAgICAgICAgIFRPQk4oMHhiMzFiYTZiOCwgMHgyYmQ3ZjNlZiks
IFRPQk4oMHhiMGI5YzQxNSwgMHg2OTE4MGQyOSksCi0gICAgICAgICBUT0JOKDB4ZWVjMTQ1NTIs
IDB4MDE0Y2RkZTUpLCBUT0JOKDB4NzAyYzYyNGIsIDB4MjI3YjRiYmIpLAotICAgICAgICAgVE9C
TigweDJiMTVlOGMyLCAweGQzZTk4OGYzKSwgVE9CTigweGVlM2JjYzZkLCAweGE0ZjdmZDA0KSwK
LSAgICAgICAgIFRPQk4oMHg5ZDAwODIyYSwgMHg0MmFjNmM4NSksIFRPQk4oMHgyZGIwY2VhNiwg
MHgxZGY5ZjJiNyksCi0gICAgICAgICBUT0JOKDB4ZDdjYWQyYWIsIDB4NDJkZTFlNTgpLCBUT0JO
KDB4MzQ2ZWQ1MjYsIDB4MmQ2ZmJiNjEpLAotICAgICAgICAgVE9CTigweGIzOTYyOTk1LCAweDFh
MmZhZjA5KSwgVE9CTigweDJmYThhNTgwLCAweDdjMjU2MTJlKSwKLSAgICAgICAgIFRPQk4oMHgz
MGFlMDRkYSwgMHg3Y2Y1NjQ5MCksIFRPQk4oMHg3NTY2MjkwOCwgMHgwZWVhMzk2MSksCi0gICAg
ICAgICBUT0JOKDB4MzYwOWY1YzUsIDB4M2QwODA4NDcpLCBUT0JOKDB4Y2IwODFkMzksIDB4NTI0
MWQ0ZjYpLAotICAgICAgICAgVE9CTigweGI0ZmIzODEwLCAweDc3OTYxYTYzKSwgVE9CTigweGMy
MGM1OTg0LCAweDJhYmI2NmZjKSwKLSAgICAgICAgIFRPQk4oMHgzZDQwYWE3YywgMHhmOTAyZjI0
NSksIFRPQk4oMHg5Y2IxMjczNiwgMHg0ZTUzNmIxZSksCi0gICAgICAgICBUT0JOKDB4NWVkYTI0
ZGEsIDB4OTliMzEzNGYpLCBUT0JOKDB4YWZiZDljNjksIDB4NWNkMDExYWYpLAotICAgICAgICAg
VE9CTigweDlhMTZlMzBhLCAweGM3MDg4YzdkKSwgVE9CTigweDVhYjY1NzEwLCAweDMyMDczODlm
KSwKLSAgICAgICAgIFRPQk4oMHgxYjA5NTQ3ZiwgMHhlNzQwN2E1MyksIFRPQk4oMHgyMzIyZjlk
NywgMHg0ZmRjNmVhYiksCi0gICAgICAgICBUT0JOKDB4YzBmMmYyMmQsIDB4NzQzMGRlNGQpLCBU
T0JOKDB4MTkzODI2OTYsIDB4ZTY4Y2E5YTkpLAotICAgICAgICAgVE9CTigweDE3ZjFlZmYxLCAw
eDkxOGU1ODY4KSwgVE9CTigweGUzYjViNjM1LCAweDU4NmY0MjA0KSwKLSAgICAgICAgIFRPQk4o
MHgxNDZlZjk4MCwgMHgzZmJjNDM0MSksIFRPQk4oMHgzNTlmMmM4MCwgMHg1YjVlZWQ0ZSksCi0g
ICAgICAgICBUT0JOKDB4OWYzNTc0NGUsIDB4NzQ4MmU0MWQpLCBUT0JOKDB4OWE5YWMzZWMsIDB4
ZjNiMjI0YzIpLAotICAgICAgICAgVE9CTigweDkxNjFhNmZlLCAweDkxZmM1MGFlKSwgVE9CTigw
eDg5Y2NjNjZiLCAweGM2MTNmYTdjKSwKLSAgICAgICAgIFRPQk4oMHg4OTI2OGIxNCwgMHhjNzMy
ZjE1YSksIFRPQk4oMHg3Y2Q2ZjRlMiwgMHhiNDY3ZWQwMyksCi0gICAgICAgICBUT0JOKDB4ZmJm
Nzk4NjksIDB4Y2U1NmI0MGUpLCBUT0JOKDB4ZjkzZTA5NGMsIDB4YzAyZGRlOTgpLAotICAgICAg
ICAgVE9CTigweGVmZTBjM2E4LCAweGVkZWUyY2Q3KSwgVE9CTigweDkwZjNmZmMwLCAweGIyNjhm
ZDQyKSwKLSAgICAgICAgIFRPQk4oMHg4MWE3ZmQ1NiwgMHgwODI0MWFlZCksIFRPQk4oMHg5NWFi
N2FkOCwgMHgwMGIxYWZlOCksCi0gICAgICAgICBUT0JOKDB4NDAxMjcwNTYsIDB4M2UzMTBkNTIp
LCBUT0JOKDB4ZDNmZmRlYjEsIDB4MDlkOWZjNDMpLAotICAgICAgICAgVE9CTigweGM4Zjg1Yzkx
LCAweGQxMWE4NTk0KSwgVE9CTigweDJlNzRkMjU4LCAweDMxY2Y2ZGI4KSwKLSAgICAgICAgIFRP
Qk4oMHg4MjljN2NhMywgMHgwMmI1ZGZkMCksIFRPQk4oMHhlMzg5Y2ZiZSwgMHg2OTE0M2M4Niks
Ci0gICAgICAgICBUT0JOKDB4ZDAxYjY0MDUsIDB4OTQxNzY4ZDgpLCBUT0JOKDB4NDUxMDM5OTUs
IDB4MDNiZjgyNWQpLAotICAgICAgICAgVE9CTigweGNjNGVlMTY2LCAweDU2Y2QxN2UyKSwgVE9C
TigweGJlYTNjMjgzLCAweGJhMDM3ZTc5KSwKLSAgICAgICAgIFRPQk4oMHg0ZTFhYzA2ZSwgMHhk
OWE0NzUyMCksIFRPQk4oMHhmYmZlMThhYSwgMHhhZjg1MjQwNCksCi0gICAgICAgICBUT0JOKDB4
NTYxNWY4ZTIsIDB4ODA4NzY0OGEpLCBUT0JOKDB4NzMwMWU0N2UsIDB4YjlkMTUwZDkpLAotICAg
ICAgICAgVE9CTigweDc5ZjlmOWRkLCAweGIyOTliOTc3KSwgVE9CTigweDc2Njk3YTdiLCAweGE1
Yjc4MzE0KSwKLSAgICAgICAgIFRPQk4oMHgxMGQ2NzQ2OCwgMHg3ZDdjOTBlNyksIFRPQk4oMHg3
YWZmZmUwMywgMHg5MzcyMTBiNSksCi0gICAgICAgICBUT0JOKDB4NWFlZjNlNGIsIDB4MjhjMjJj
ZWUpLCBUT0JOKDB4ZWZiMGVjZDgsIDB4MDlmZDU1YWUpLAotICAgICAgICAgVE9CTigweDRjZWE3
MTMyLCAweDBkMmE1ZDZhKSwgVE9CTigweDljZmI1ZmExLCAweDAxZGI2MzU3KSwKLSAgICAgICAg
IFRPQk4oMHgzOTVlMGI1NywgMHhmMzZlMWFjNSksIFRPQk4oMHgwMDhmYTlhZCwgMHgzNmNhZmI3
ZCksCi0gICAgICAgICBUT0JOKDB4OGY2Y2RmNzAsIDB4NTMwOGM0ZGIpLCBUT0JOKDB4NTE1Mjdh
MzcsIDB4OTVlZDI0NzcpLAotICAgICAgICAgVE9CTigweGJhMGRlZTMwLCAweDViZDIxMzExKSwg
VE9CTigweDZlZDQxYjIyLCAweDkwOWM5MGQ3KSwKLSAgICAgICAgIFRPQk4oMHhjNWY2Yjc1OCwg
MHg3Yzg2OTZkMyksIFRPQk4oMHgwZGI4ZWFhOCwgMHgzY2U4M2E4MCksCi0gICAgICAgICBUT0JO
KDB4ZDI5N2ZlMzcsIDB4YjI0YjRiNmYpLCBUT0JOKDB4ZmU1OGFmZTgsIDB4NTIyZDFmMGQpLAot
ICAgICAgICAgVE9CTigweDk3MzU4NzM2LCAweDhjOThkYmQ5KSwgVE9CTigweDZiYzIyNmNhLCAw
eDk0NTRhNTI3KSwKLSAgICAgICAgIFRPQk4oMHhhMTJiMzg0ZSwgMHhjZTUzYzJkMCksIFRPQk4o
MHg3NzlkODk3ZCwgMHg1ZTQ2MDZkYSksCi0gICAgICAgICBUT0JOKDB4YTUzZTQ3YjAsIDB4NzNl
YzEyYjApLCBUT0JOKDB4NDYyZGJiYmEsIDB4NTc1NmYxYWQpLAotICAgICAgICAgVE9CTigweDY5
ZmUwOWYyLCAweGNhZmUzN2I2KSwgVE9CTigweDI3M2QxZWJmLCAweGVjY2UyZTE3KSwKLSAgICAg
ICAgIFRPQk4oMHg4YWMxZDUzOCwgMHgzY2Y2MDdmZCksIFRPQk4oMHg4MDM1ZjdmZiwgMHgxMmUx
MGMyNSl9LAotICAgICAgICB7VE9CTigweDg1NGQzNGM3LCAweDdlNmM1NTIwKSwgVE9CTigweGMy
N2RmOWVmLCAweGRjYjllYTU4KSwKLSAgICAgICAgIFRPQk4oMHg0MDVmMjM2OSwgMHhkNjg2NjY2
ZCksIFRPQk4oMHgyOWQxZmViZiwgMHgwNDE3YWE4NSksCi0gICAgICAgICBUT0JOKDB4OTg0Njgx
OWUsIDB4OTM0NzBhZmUpLCBUT0JOKDB4M2U2YTk2NjksIDB4ZTJhMjdmOWUpLAotICAgICAgICAg
VE9CTigweDI0ZDAwOGEyLCAweGUzMWU2NTA0KSwgVE9CTigweGRiYTdjZWNmLCAweDljYjc2ODBh
KSwKLSAgICAgICAgIFRPQk4oMHhlY2FmZjU0MSwgMHgzMzhkNmU0MyksIFRPQk4oMHg1NmY3ZGQ3
MywgMHg0NTQxZDVjYyksCi0gICAgICAgICBUT0JOKDB4YjVkNDI2ZGUsIDB4OTZiYzg4Y2EpLCBU
T0JOKDB4NDhkOTRmNmIsIDB4OWVkM2EyYzMpLAotICAgICAgICAgVE9CTigweDYzNTRhM2JiLCAw
eDJlZjgyNzljKSwgVE9CTigweGQ1NzU0NjViLCAweDBiMTg2N2YyKSwKLSAgICAgICAgIFRPQk4o
MHhlZjk5YjBmZiwgMHg5NTIyNTE1MSksIFRPQk4oMHhmM2UxOWQ4OCwgMHhmOTQ1MDBkOCksCi0g
ICAgICAgICBUT0JOKDB4OTJhODMyNjgsIDB4ZTMyZGQ2MjApLCBUT0JOKDB4OTEzZWM5OWYsIDB4
NjI3ODQ5YTIpLAotICAgICAgICAgVE9CTigweGVkZDhmZGZhLCAweDJjMzc4ODgyKSwgVE9CTigw
eGFmOTZmMzNlLCAweGVlNmY4Y2ZlKSwKLSAgICAgICAgIFRPQk4oMHhjMDY3MzdlNSwgMHhkYzNm
YThhNSksIFRPQk4oMHgyMzZiYjUzMSwgMHhiMGIwM2ExZCksCi0gICAgICAgICBUT0JOKDB4MzNl
NTlmMjksIDB4ODlmMDM3YjApLCBUT0JOKDB4MTNmOWI1YTcsIDB4ZDlhMTJhNTMpLAotICAgICAg
ICAgVE9CTigweDBkMGRmNmNlLCAweDUxZWZiMzEwKSwgVE9CTigweGNiNWIyZWI0LCAweDk1OGRm
NWJlKSwKLSAgICAgICAgIFRPQk4oMHhkNjQ1OWUyOSwgMHgzNjE1OGU1OSksIFRPQk4oMHg4MmFh
ZTJiOSwgMHgxNDY2ZTMzNiksCi0gICAgICAgICBUT0JOKDB4ZmI2NThhMzksIDB4NDExYWE2MzYp
LCBUT0JOKDB4NzE1MmVjYzUsIDB4ZDRjMGE5MzMpLAotICAgICAgICAgVE9CTigweGYxMGM3NThh
LCAweDQ5ZjAyNmI3KSwgVE9CTigweGY0ODM3Zjk3LCAweGNiMDkzMTFmKSwKLSAgICAgICAgIFRP
Qk4oMHhkZGZiMDJjNCwgMHhjNzUzYzQ1ZiksIFRPQk4oMHgxOGNhODFiNiwgMHhmOWM4NDBmZSks
Ci0gICAgICAgICBUT0JOKDB4ODQ2ZmQwOWEsIDB4YjBmOGEzZTYpLCBUT0JOKDB4YjExNjJhZGQs
IDB4ZTc3MzNkYmMpLAotICAgICAgICAgVE9CTigweDcwNzBhZDIwLCAweDIzNmUzYWI2KSwgVE9C
TigweGY4OGNkYWY1LCAweGIyYTU2MzI2KSwKLSAgICAgICAgIFRPQk4oMHgwNWZjODcxOSwgMHg5
OTdjYmM3YSksIFRPQk4oMHg0NDJjZDQ1MiwgMHg0YjY2NTI3MiksCi0gICAgICAgICBUT0JOKDB4
NzgwN2YzNjQsIDB4YjcxNjk4ZjUpLCBUT0JOKDB4NmJhNDE4ZDIsIDB4OWY3YjYwNWUpLAotICAg
ICAgICAgVE9CTigweGZkMjBiMDBmLCAweGEwM2IyY2JiKSwgVE9CTigweDg4M2VjYTM3LCAweGRh
NTQzODZmKSwKLSAgICAgICAgIFRPQk4oMHhmZjBiZTQzZiwgMHhmMzQzN2YyNCksIFRPQk4oMHhl
OTEwYjQzMiwgMHhhNDhiYjMzYyksCi0gICAgICAgICBUT0JOKDB4NDk2M2ExMjgsIDB4MzI5ZGY3
NjUpLCBUT0JOKDB4YWMxZGQ1NTYsIDB4YmUyZmU2ZjcpLAotICAgICAgICAgVE9CTigweDU1NzYx
MGY5LCAweDI0YTBhM2ZjKSwgVE9CTigweDM4ZTE3YmY0LCAweGU4ODFjM2Y5KSwKLSAgICAgICAg
IFRPQk4oMHg2YmE4NGZhZiwgMHhlZDBkYWM5OSksIFRPQk4oMHhkNGEyMjJjMywgMHg1OWVlYjkx
OCksCi0gICAgICAgICBUT0JOKDB4Yzc5YzFkYmUsIDB4MTNmNTQyYjYpLCBUT0JOKDB4MWZjNjVl
MGQsIDB4ZTQyNWQ0NTcpLAotICAgICAgICAgVE9CTigweGVmZmI3NTRmLCAweDFkZWJiNzc5KSwg
VE9CTigweDYzOGQ4ZmQwLCAweDllMDhhZjYwKSwKLSAgICAgICAgIFRPQk4oMHg5OTRmNTIzYSwg
MHg2MjYzMzJkNSksIFRPQk4oMHg3YmMzODgzMywgMHg1NTYxYmI0NCksCi0gICAgICAgICBUT0JO
KDB4MDA1ZWQ0YjAsIDB4M2Q4NDVlYTIpLCBUT0JOKDB4ZDM5ZDNlZTEsIDB4YzJhMWYwOGEpLAot
ICAgICAgICAgVE9CTigweDY1NjFmZGQzLCAweGU3Njc2YjBkKSwgVE9CTigweDYyMGUzNWZmLCAw
eGZiNzA2MDE3KSwKLSAgICAgICAgIFRPQk4oMHgzNmNlNDI0ZiwgMHhmMjY0ZjlhOCksIFRPQk4o
MHhjNGMzNDE5ZiwgMHhkYTI2ODFmNyksCi0gICAgICAgICBUT0JOKDB4ZmI2YWZkMmYsIDB4Njli
ZWI2ZTgpLCBUT0JOKDB4M2E1MGI5OTMsIDB4NmQ3MDBkMDMpLAotICAgICAgICAgVE9CTigweGM4
NDBiMmFkLCAweDBjODNhMTRmKSwgVE9CTigweDU3MzIwN2JlLCAweDU0MDg1YmVmKSwKLSAgICAg
ICAgIFRPQk4oMHg1YWY4ODJlMywgMHgwOWZlN2U1YiksIFRPQk4oMHg5NTc2NzhhNCwgMHgzYjQw
YTdlMSksCi0gICAgICAgICBUT0JOKDB4MTcyZDRiZGQsIDB4NTQzMDU2ZTIpLCBUT0JOKDB4OWMx
YjI2YjQsIDB4MGRmMTNjMGEpLAotICAgICAgICAgVE9CTigweDFjMzA4NjFjLCAweGY0MDVmZjA2
KSwgVE9CTigweGViYWM4NmJkLCAweDQ4NmU4MjhiKSwKLSAgICAgICAgIFRPQk4oMHhlNzkxYTk3
MSwgMHg2MzY5MzNmYyksIFRPQk4oMHg1MGU3YzJiZSwgMHg3YWVlZTk0NyksCi0gICAgICAgICBU
T0JOKDB4YzNkNGEwOTUsIDB4ZmE5MGQ3NjcpLCBUT0JOKDB4YWU2MGViN2IsIDB4ZTY3MGFiN2Ip
LAotICAgICAgICAgVE9CTigweDE3NjMzYTY0LCAweDM5N2IwNTZkKSwgVE9CTigweDkzYTIxZjMz
LCAweDEwNTAxMmFhKSwKLSAgICAgICAgIFRPQk4oMHg2NjNjMzcwYiwgMHhhYmI4ODY0MyksIFRP
Qk4oMHg5MWRmMzZkNywgMHgyMmUyMTU5OSksCi0gICAgICAgICBUT0JOKDB4MTgzYmE4MzUsIDB4
OGI3NjE2NzEpLCBUT0JOKDB4MzgxZWVhMWQsIDB4NzI4ZjNiZjEpLAotICAgICAgICAgVE9CTigw
eGI5YjJmMWJhLCAweDM5OTY2ZTZjKSwgVE9CTigweDdjNDY0YTI4LCAweGU3Mjk1NDkyKSwKLSAg
ICAgICAgIFRPQk4oMHgwZmQ1ZjcwYSwgMHgwOWIyNmI3ZiksIFRPQk4oMHhhOWFiYTFmOSwgMHhm
YmUwMDlkZiksCi0gICAgICAgICBUT0JOKDB4ODU3YzFmMjIsIDB4MzY5Yjg3YWQpLCBUT0JOKDB4
M2MwMGU1ZDksIDB4MzJmY2E1NTYpLAotICAgICAgICAgVE9CTigweDFhZDc0Y2FiLCAweDkwYjA2
NDY2KSwgVE9CTigweGE3MTEyMzg2LCAweDU1MGZhYWYyKSwKLSAgICAgICAgIFRPQk4oMHg3NDM1
ZTE5OCwgMHg2ZDliZDVmNSksIFRPQk4oMHgyZGNjN2UzOCwgMHg1OWMzNDYzZiksCi0gICAgICAg
ICBUT0JOKDB4ZGM3ZGY3NDgsIDB4Y2E3YmQ0YjIpLCBUT0JOKDB4MTNjZDRjMDgsIDB4OWRlYzJm
MzEpLAotICAgICAgICAgVE9CTigweDBkM2I1ZGY4LCAweGUzMjM3NzEwKSwgVE9CTigweDBkYWRi
MjZlLCAweGNiZDJmN2IwKSwKLSAgICAgICAgIFRPQk4oMHg5ZjU5NjZhYiwgMHhlNGFhMDgyYiks
IFRPQk4oMHg2NjZlYzhkZSwgMHgzNTBlOTY2ZSksCi0gICAgICAgICBUT0JOKDB4MWJmZDFlZDUs
IDB4ZWU1MjQyMTYpLCBUT0JOKDB4Y2Q5M2M1OWIsIDB4NDFkYWIwYjYpLAotICAgICAgICAgVE9C
TigweDY1OGE4NDM1LCAweGQxODZkNmJhKSwgVE9CTigweDFiN2QzNGQyLCAweDE1OWQxMTk1KSwK
LSAgICAgICAgIFRPQk4oMHg1OTM2ZTQ2MCwgMHgyMmNhZjQ2YiksIFRPQk4oMHg2YTQ1ZGQ4Ziwg
MHg5YTk2ZmU0ZiksCi0gICAgICAgICBUT0JOKDB4Zjc5MjU0MzQsIDB4Yjk4ZjQ3NGUpLCBUT0JO
KDB4NDE0MTA0MTIsIDB4MDA1M2VmMTUpLAotICAgICAgICAgVE9CTigweDcxY2Y4ZDEyLCAweDQx
ZGU5N2JmKSwgVE9CTigweGI4NTQ3YjYxLCAweGJkODBiZWY0KSwKLSAgICAgICAgIFRPQk4oMHhi
NDdkMzk3MCwgMHhjNGRiMDAzNyksIFRPQk4oMHhmMWJjZDMyOCwgMHhmZWYyMGRmZiksCi0gICAg
ICAgICBUT0JOKDB4MzFhOTJlMDksIDB4MTBjYWFkNjcpLCBUT0JOKDB4MWY1OTE5NjAsIDB4NTUz
MWExZTEpLAotICAgICAgICAgVE9CTigweDNiYjg1MmUwLCAweDVmNGZjODQwKSwgVE9CTigweDYz
ZTI5N2NhLCAweDkzYTcyYzZjKSwKLSAgICAgICAgIFRPQk4oMHgzYzJiMGIyZSwgMHg0OWFiYWQ2
NyksIFRPQk4oMHg2ZWM0MDVmYywgMHhlZDNkYjBkOSksCi0gICAgICAgICBUT0JOKDB4ZGMxNGE1
MzAsIDB4N2ZlZjFkNDApLCBUT0JOKDB4Y2NkMTk4NDYsIDB4MjgwODk2ZmMpLAotICAgICAgICAg
VE9CTigweDAwZjgzMTc2LCAweDliYjgxNjQ4KSwgVE9CTigweGQ2OWViNDg1LCAweDY1MzEyMGQw
KSwKLSAgICAgICAgIFRPQk4oMHhkMTdkNzVmNCwgMHg0Y2NhYmM2MiksIFRPQk4oMHgzNGEwN2Y4
MiwgMHhiNzQ5ZmNiMSksCi0gICAgICAgICBUT0JOKDB4MmMzYWY3ODcsIDB4YmJmYjU1NTQpLCBU
T0JOKDB4YjA2ZWQ0ZDAsIDB4NjJlMjgzZjgpLAotICAgICAgICAgVE9CTigweDU3MjI4ODlmLCAw
eGExOTIxM2EwKSwgVE9CTigweDE2MmIwODVlLCAweGRjZjNjN2I0KSwKLSAgICAgICAgIFRPQk4o
MHhiY2FlY2IzMSwgMHhlMGRkM2VjYSksIFRPQk4oMHhjNjIzN2ZiYywgMHhlNTJmMTNhNSksCi0g
ICAgICAgICBUT0JOKDB4Y2MyYjZiMDMsIDB4MjdiYWMyOTcpLCBUT0JOKDB4MmFlMWNhYzUsIDB4
YjkxN2Y1NGEpLAotICAgICAgICAgVE9CTigweDQ3NDgwN2Q0LCAweDc4NDVhZTRmKSwgVE9CTigw
eGZlYzdkZDkyLCAweGNlNTk3MmUwKSwKLSAgICAgICAgIFRPQk4oMHhjM2JkMjU0MSwgMHgxZDc5
MTViYiksIFRPQk4oMHg2NmY4NWRjNCwgMHhkOTQ5MDdjYSksCi0gICAgICAgICBUT0JOKDB4ZDk4
MWI4ODgsIDB4YmRiY2YwY2EpLCBUT0JOKDB4ZDc1ZjVkYTYsIDB4ZGYyNzllOWYpLAotICAgICAg
ICAgVE9CTigweDEyOGJiZjI0LCAweDcwNTRlOTM0KSwgVE9CTigweDNjNmZmNmU1LCAweDgxZGIx
MzRiKSwKLSAgICAgICAgIFRPQk4oMHg3OTViN2NmNCwgMHgwNDdkMjZlNCksIFRPQk4oMHhmMzcw
ZjdiOCwgMHg1MDQ5ZWMzNyksCi0gICAgICAgICBUT0JOKDB4YzY3MTJkNGQsIDB4Y2VkOTQ1YWYp
LCBUT0JOKDB4ZGYzMGI1ZWMsIDB4MDk1NjQyYmMpLAotICAgICAgICAgVE9CTigweDliMDM0YzYy
LCAweDQ4OTYyNDZlKSwgVE9CTigweDU2NTJjMDE2LCAweGVlOTBiYmQxKSwKLSAgICAgICAgIFRP
Qk4oMHhlYjM4NjM2ZiwgMHg4N2ZlZGI3MyksIFRPQk4oMHg1ZTMyZjg0NywgMHgwMTM1YTYxMyks
Ci0gICAgICAgICBUT0JOKDB4MDcwM2IzMTIsIDB4Y2Y5MzNjODMpLCBUT0JOKDB4ZDA1YmI3NmUs
IDB4MWE3ZjQ3ZTYpLAotICAgICAgICAgVE9CTigweDgyNWU0ZjBjLCAweDk0OWMyNDE1KSwgVE9C
TigweDU2OWU1NjIyLCAweDcyNTBkNmY4KSwKLSAgICAgICAgIFRPQk4oMHhiYmU5ZWIzYSwgMHg2
NTY4MDEzZSksIFRPQk4oMHg4ZGJkMjAzZiwgMHgyMmYyNDNmYyksCi0gICAgICAgICBUT0JOKDB4
OWRiZDc2OTQsIDB4YjM0MjczNGEpLCBUT0JOKDB4OGY2ZDEyZjgsIDB4NDZhZmE5ODQpLAotICAg
ICAgICAgVE9CTigweGI5ODYxMGEyLCAweGM5ZWFkZTI5KSwgVE9CTigweGJhYjRmMzIzLCAweDQ3
ZGQwZjE4KSwKLSAgICAgICAgIFRPQk4oMHg1Nzc5NzM3YiwgMHg2NzFjMGQ0NiksIFRPQk4oMHgx
MGI2YTdjNiwgMHhkM2UwYTQyYSksCi0gICAgICAgICBUT0JOKDB4ZmIxOWRkZjMsIDB4MzAzNWI0
MWMpLCBUT0JOKDB4ZDMzNjM0M2YsIDB4OTljNDU4OTUpLAotICAgICAgICAgVE9CTigweDYxZmU0
OTM4LCAweDU0Yzg1N2U1KSwgVE9CTigweGM0ZDUwNmJlLCAweGFlNGU1N2Q1KSwKLSAgICAgICAg
IFRPQk4oMHgzY2Q4YzhjYiwgMHhiYmMzM2Y3NSksIFRPQk4oMHg3MjgxZjA4YSwgMHg5MjYyYzc3
ZCksCi0gICAgICAgICBUT0JOKDB4MDgzZjRlYTYsIDB4ZjExYTI4MjMpLCBUT0JOKDB4ODg5NTA0
MWUsIDB4OWZiYTJlMzMpLAotICAgICAgICAgVE9CTigweGZjZGZlYTQ5LCAweDljNDM4ZWRmKSwg
VE9CTigweDc2NzhkY2MzLCAweDkxZWRiYTQ0KSwKLSAgICAgICAgIFRPQk4oMHhmMDdiM2I4Nywg
MHhlMmJhNTBmMCksIFRPQk4oMHhjMTM4ODhlZiwgMHg0Mzk0OGMxYiksCi0gICAgICAgICBUT0JO
KDB4YzIxMzVhZDQsIDB4MTE0MGFmNDIpLCBUT0JOKDB4OGU1MTA0ZjMsIDB4OTI2ZWQxYTcpLAot
ICAgICAgICAgVE9CTigweGYyNDQzMGNiLCAweDg4ZjY2OTVmKSwgVE9CTigweDBjZTA2MzdiLCAw
eDZkNzNjMTIwKSwKLSAgICAgICAgIFRPQk4oMHhiMmRiMDFlNiwgMHhmZTYzMWU4ZiksIFRPQk4o
MHgxYzU1NjNkNywgMHhkN2JkZDI0YiksCi0gICAgICAgICBUT0JOKDB4OGRhZWEzYmEsIDB4MzY5
YWQ0NGYpLCBUT0JOKDB4MDAwYzgxYjYsIDB4ODE4N2E5ZjkpLAotICAgICAgICAgVE9CTigweDVm
NDhhOTUxLCAweGFhZTFmZDlhKSwgVE9CTigweGUzNTYyNmM3LCAweDhkNWFlZDhhKSwKLSAgICAg
ICAgIFRPQk4oMHgyMDk1Mjc2MywgMHgwNDk4YzYyMiksIFRPQk4oMHg3NmQxNzYzNCwgMHg3NzNh
YTUwNCksCi0gICAgICAgICBUT0JOKDB4MzZkOTBkZGEsIDB4ZWIzMDBmN2EpLCBUT0JOKDB4OWRj
ZjdkZmMsIDB4ZWRiNWU4MDEpLAotICAgICAgICAgVE9CTigweDY0NWNiMjY4LCAweDc0ZDUyNDRj
KSwgVE9CTigweGExMjdlZTc5LCAweDM0OGUzYWEyKSwKLSAgICAgICAgIFRPQk4oMHg0ODhhY2M1
MywgMHg1NzVmMWRiYiksIFRPQk4oMHg5NTAzN2U4NSwgMHg4MGU2MTYxZSksCi0gICAgICAgICBU
T0JOKDB4NTdlNTkyODMsIDB4MjkyNjUwZDApLCBUT0JOKDB4YWJlNjdkOTksIDB4MTQ5MzgyMTYp
LAotICAgICAgICAgVE9CTigweDNjN2Y5NDRiLCAweDNmOGUxMDY1KSwgVE9CTigweGVkOTA4Y2I2
LCAweDMzMGU4OTI0KSwKLSAgICAgICAgIFRPQk4oMHgwOGVlOGZkNSwgMHg2ZjUzMDEzNiksIFRP
Qk4oMHgyMjI3YjdkNSwgMHhkN2ZmYzE2OSksCi0gICAgICAgICBUT0JOKDB4NGY1NWM4OTMsIDB4
YjVjZDZkZDUpLCBUT0JOKDB4ODIyMjVlMTEsIDB4YTYyNzk2ZTgpLAotICAgICAgICAgVE9CTigw
eDVjNmNlYWQxLCAweGNiMThlMTJjKSwgVE9CTigweDQzODFhZTBjLCAweDg0ZjVhNTFhKSwKLSAg
ICAgICAgIFRPQk4oMHgzNDU5MTNkMywgMHg3ZmFmYTRjOCksIFRPQk4oMHgzZDkxODA4MiwgMHgw
NDkxYWFjMCksCi0gICAgICAgICBUT0JOKDB4OTM0Nzg3MWYsIDB4M2U2OTI2NGMpLCBUT0JOKDB4
YmVhOWRkM2MsIDB4YjRmNGYwY2QpLAotICAgICAgICAgVE9CTigweGJkYTVkMDY3LCAweDNlYWRk
M2U3KSwgVE9CTigweDAwMzNjMWI4LCAweDA1NzNiY2Q4KSwKLSAgICAgICAgIFRPQk4oMHgyNTU4
OTM3OSwgMHg1ZGEyNDg2YyksIFRPQk4oMHhjYjg5ZWU1YiwgMHg4NmFiYmVlNyksCi0gICAgICAg
ICBUT0JOKDB4OGZlMGE4ZjMsIDB4MjI1MzJlNWQpLCBUT0JOKDB4YjY0MTBmZjAsIDB4NzI3ZGZj
NGMpLAotICAgICAgICAgVE9CTigweDYxOWI5ZDU4LCAweDIyNjcyNmRiKSwgVE9CTigweDVlYzI1
NjY5LCAweDdhMmIyZGM3KSwKLSAgICAgICAgIFRPQk4oMHhhZjRkMmUwNiwgMHg0YzNiZWIwMSks
IFRPQk4oMHg4NTIxMjNkMCwgMHg3YWNlYTU1NiksCi0gICAgICAgICBUT0JOKDB4MGU5NDcwZmEs
IDB4Zjc4MzQ4N2EpLCBUT0JOKDB4NzVhN2VhMDQsIDB4NTY2NGIzZWIpLAotICAgICAgICAgVE9C
TigweDRhZDc4ZjM1LCAweDY3OThlNGJhKSwgVE9CTigweDkyMTRlNmU1LCAweGM3ZDBlMDkxKSwK
LSAgICAgICAgIFRPQk4oMHhjNDIwYjQ4OCwgMHhiMTI5MDQwMyksIFRPQk4oMHg2NDA0OWUwYSwg
MHhmYzI5NTc0OSksCi0gICAgICAgICBUT0JOKDB4MDNlZjVhZjEsIDB4M2FlOTg0MWYpLCBUT0JO
KDB4ZGJlNGNhMTksIDB4YjBiNjYyYTYpLAotICAgICAgICAgVE9CTigweDQ2ODQ1YzVmLCAweGZh
NDUzNDU4KSwgVE9CTigweGY4ZGFiZjE5LCAweDEwYjY2NzIyKSwKLSAgICAgICAgIFRPQk4oMHhi
NjUwZjBhYSwgMHhjY2UyNzkzYiksIFRPQk4oMHg3MWRiODUxZSwgMHhjNWVjNDdjMSksCi0gICAg
ICAgICBUT0JOKDB4M2ViNzhmM2UsIDB4M2IyMzRmYTkpLCBUT0JOKDB4YjBjNjBmMzUsIDB4ZmMw
MTA2Y2UpLAotICAgICAgICAgVE9CTigweDA1NDI3MTIxLCAweDc3NGVhZGJkKSwgVE9CTigweDI1
MzY3ZmFmLCAweGNlMzIzODYzKSwKLSAgICAgICAgIFRPQk4oMHg3NTQxYjVjOSwgMHhjZDA4Njk3
NiksIFRPQk4oMHg0ZmYwNjllMiwgMHhkYzUwN2FkMSksCi0gICAgICAgICBUT0JOKDB4NzQxNDUy
NTYsIDB4ODc3NmU2NjcpLCBUT0JOKDB4NmU3NjE0MmMsIDB4YjIzYzZiYjUpLAotICAgICAgICAg
VE9CTigweGRiZjMwNzEyLCAweDFiM2E4YTg3KSwgVE9CTigweDYwZTczNjNlLCAweDk4NDUwODM2
KSwKLSAgICAgICAgIFRPQk4oMHg1NzQxNDUwZSwgMHhiNzM2NmQ4MCksIFRPQk4oMHhlNGVlMTRj
YSwgMHg0ODM3ZGJkZiksCi0gICAgICAgICBUT0JOKDB4YTc2NWViOWIsIDB4NjlkNDMxNmYpLCBU
T0JOKDB4MDQ1NDhkY2EsIDB4OGVmNDM4MjUpLAotICAgICAgICAgVE9CTigweDljOWY0ZTRjLCAw
eDVhZTg4OGViKSwgVE9CTigweDczM2FiYjUxLCAweDU2ZTlhYzk5KSwKLSAgICAgICAgIFRPQk4o
MHhkYWFkM2MyMCwgMHhiYTZhYzAyOSksIFRPQk4oMHg5YjhkZDNkMywgMHgyYmEzZTM4ZSksCi0g
ICAgICAgICBUT0JOKDB4YTliYjRjOTIsIDB4MGJjNWQxMWEpLCBUT0JOKDB4ZjIwMTI3YTcsIDB4
OWM1Zjg4YTMpLAotICAgICAgICAgVE9CTigweDRmNTJiMDZlLCAweDE2MWQzY2I4KSwgVE9CTigw
eDI2YzFmZjA5LCAweDZhZmFmMGE2KSwKLSAgICAgICAgIFRPQk4oMHgzMjY3MGQyZiwgMHg3MTg5
ZTcxZiksIFRPQk4oMHhjNjQzODc0OCwgMHg1ZWNmOTFlNyksCi0gICAgICAgICBUT0JOKDB4MTU3
NThlNTcsIDB4ZGI3NTdhMjEpLCBUT0JOKDB4NDI3ZDA5ZjgsIDB4MjkwYTljZTUpLAotICAgICAg
ICAgVE9CTigweDg0NmEzMDhmLCAweDM4Mzg0YTdhKSwgVE9CTigweGFhYzNhY2I0LCAweGIwNzMy
Yjk5KSwKLSAgICAgICAgIFRPQk4oMHg5ZTk0MTAwOSwgMHgxNzg0NTgxOSksIFRPQk4oMHg5NWNi
YTExMSwgMHhhN2NlNWUwMyksCi0gICAgICAgICBUT0JOKDB4NmYzZDRmN2YsIDB4YjAwMDA5YzQp
LCBUT0JOKDB4YjgzOTZjMjcsIDB4OGZmMjhiNWYpLAotICAgICAgICAgVE9CTigweGIxYTlhZTQz
LCAweDFjOTc5NzVkKSwgVE9CTigweDlkN2JhOGFmLCAweGU1ZDlmZWQ1KSwKLSAgICAgICAgIFRP
Qk4oMHgzMzhjZjA5ZiwgMHgzNGY0ODViNiksIFRPQk4oMHhiYzBkZGFjYywgMHg2NDEyMjUxNiks
Ci0gICAgICAgICBUT0JOKDB4YTQ1MGRhMTIsIDB4MDVkNDcxZmUpLCBUT0JOKDB4NGMzYTYyNTAs
IDB4NjI4ZGQ4YzkpLAotICAgICAgICAgVE9CTigweDY5YzdkMTAzLCAweGQxMjk1ODM3KSwgVE9C
TigweGEyODkzZTUwLCAweDM4MDdlYjJmKSwKLSAgICAgICAgIFRPQk4oMHhkNmUxZTFkZSwgMHhi
ZGI0MTQ5MSksIFRPQk4oMHhjNjMwNzQ1YiwgMHg1ZTEzODIzNSksCi0gICAgICAgICBUT0JOKDB4
Yzg5MjEwOWUsIDB4NDg2NjFhZTEpLCBUT0JOKDB4OGQxN2U3ZWIsIDB4ZWEyYjI2NzQpLAotICAg
ICAgICAgVE9CTigweDAwZWMwZjg3LCAweGMzMjhkNmI1KSwgVE9CTigweDZkODU4NjQ1LCAweGYw
NzlmZjllKSwKLSAgICAgICAgIFRPQk4oMHg2Y2RmMjQzZSwgMHgxOTExNWVhZCksIFRPQk4oMHgx
Y2UxMzkzZSwgMHg0YmFjNGZjZiksCi0gICAgICAgICBUT0JOKDB4MmM5NjBlZDAsIDB4OWMyOWYy
NWIpLCBUT0JOKDB4NTliZTRkOGUsIDB4OWQzODhhMDUpLAotICAgICAgICAgVE9CTigweDBkNDZl
MDZjLCAweGQwZGVmNzJiKSwgVE9CTigweGI5MjNkYjVkLCAweGUwMzQyNzQ4KSwKLSAgICAgICAg
IFRPQk4oMHhmN2QzYWFjZCwgMHg5MzZkNGEzZCksIFRPQk4oMHg1NTg1MTljYywgMHgwYjBiMDk5
ZSksCi0gICAgICAgICBUT0JOKDB4M2VhOGViZjgsIDB4ODI3MDk3ZWYpLCBUT0JOKDB4MjU5MzUz
ZGIsIDB4ZDA1NGY1NWQpLAotICAgICAgICAgVE9CTigweDg0Yzg5YWJjLCAweDZkMmVkMDg5KSwg
VE9CTigweDVjNTQ4YjY5LCAweDhlMDk2YTdjKSwKLSAgICAgICAgIFRPQk4oMHhkNTg3ZjYxNiwg
MHg5OTRiOTk1ZCksIFRPQk4oMHg0ZDE1MzFmNiwgMHhhNTg0NTYwMSksCi0gICAgICAgICBUT0JO
KDB4NzkyYWIzMWUsIDB4NDUxZmQ5ZjApLCBUT0JOKDB4YzhiNTdiYjIsIDB4NjVhZGY2Y2EpLAot
ICAgICAgICAgVE9CTigweDY4NDQwZmNiLCAweDFjZDVhZDczKSwgVE9CTigweGI5Yzg2MGU2LCAw
eDYxNDRkYTRmKSwKLSAgICAgICAgIFRPQk4oMHgyYWIyODZhYSwgMHg4NDYyYmViOCksIFRPQk4o
MHhjYzZiOGZmZiwgMHhlZjQ2Nzk3ZiksCi0gICAgICAgICBUT0JOKDB4YWM4MjBkYTQsIDB4MjBj
OGE0NzEpLCBUT0JOKDB4NjlhZTA1YTEsIDB4NzdmZjdmYWYpLAotICAgICAgICAgVE9CTigweGI5
MTYzZjM5LCAweGJmYjVkYTc3KSwgVE9CTigweGJkMDNlNTkwLCAweDJjNzNhYjdhKSwKLSAgICAg
ICAgIFRPQk4oMHg3ZTg2MmI1ZSwgMHhiMjk0MGQ5ZSksIFRPQk4oMHgzYzY2M2Q4NiwgMHg0Yjlh
ZjU2NCksCi0gICAgICAgICBUT0JOKDB4ZDgzMDkwMzEsIDB4YmRlMzAzM2QpLCBUT0JOKDB4Mjk4
MjMxYjIsIDB4ZDQyYzViYzYpLAotICAgICAgICAgVE9CTigweDQyMDkwZDJjLCAweDU1MmFkMDkz
KSwgVE9CTigweGE0Nzk5ZDFjLCAweGZmODU0Njk1KSwKLSAgICAgICAgIFRPQk4oMHgwYTg4YjVk
NiwgMHhkMzFmMGQwMCksIFRPQk4oMHhmOGI0MDgyNSwgMHhhMmYyNmI0NiksCi0gICAgICAgICBU
T0JOKDB4ZWMyOWIxZWQsIDB4ZjFiZDcyMTgpLCBUT0JOKDB4ZDQ5MWM1M2IsIDB4NGIyNGM4NmUp
LAotICAgICAgICAgVE9CTigweGQyZmU1ODhmLCAweDMzOTVlYTY1KSwgVE9CTigweDZmMzc2NGY3
LCAweDQ0NTZlZjE1KSwKLSAgICAgICAgIFRPQk4oMHhkYjQzMTE2ZCwgMHhjZGMzNDgwMCksIFRP
Qk4oMHhjZGJjZDQ1NiwgMHhjMWUzMzk1NSksCi0gICAgICAgICBUT0JOKDB4ZWZkYjU1NDAsIDB4
NzRhYjI4NmIpLCBUT0JOKDB4OTQ4YzdhNTEsIDB4ZDE4YzVkN2MpLAotICAgICAgICAgVE9CTigw
eGViODFhYTM3LCAweDczNzgwNThlKSwgVE9CTigweDQxYzc0NmExLCAweDA0NDExMTU0KSwKLSAg
ICAgICAgIFRPQk4oMHhhMTBjNzNiYywgMHhmYjgyOGFjNyksIFRPQk4oMHg2NDM5YmU5MSwgMHg5
ZDk3MmIyOSksCi0gICAgICAgICBUT0JOKDB4NGJmM2I0YjAsIDB4NDNhMmZiYWQpLCBUT0JOKDB4
MzllNmRhZGYsIDB4ODJiNWU4NDApLAotICAgICAgICAgVE9CTigweDRmNzE2NDA4LCAweDYzOTdi
ZDRjKSwgVE9CTigweDBmN2RlNTY4LCAweDdmMWVlY2NiKSwKLSAgICAgICAgIFRPQk4oMHg1ODY1
YzVhMSwgMHhkMmZmYmZjMSksIFRPQk4oMHhmNzQyMTFmYSwgMHg0Y2NiNjQ1MSksCi0gICAgICAg
ICBUT0JOKDB4NjYzNjhhODgsIDB4YzBiMzI1NTgpLCBUT0JOKDB4NWI1MzlkYzIsIDB4OWFkNzgx
MmUpLAotICAgICAgICAgVE9CTigweDU3OTQ4M2QwLCAweDJmM2FmNmY2KSwgVE9CTigweDUyMTMy
MDc4LCAweDk5OTM0ZWNlKSwKLSAgICAgICAgIFRPQk4oMHg1MGI5NjUwZiwgMHhkY2M5ZTk4Myks
IFRPQk4oMHhjYTk4OWVjOSwgMHhhZWU0MmI4YSksCi0gICAgICAgICBUT0JOKDB4NmE0NGM4Mjks
IDB4ZDZmNjJmOTkpLCBUT0JOKDB4OGYwNmEzMDksIDB4NGMyYTdjMGMpLAotICAgICAgICAgVE9C
TigweDRlYTJiM2EwLCAweDk4YTBjYjBhKSwgVE9CTigweDVjNTQ3YjcwLCAweGJlZWU4MzY0KSwK
LSAgICAgICAgIFRPQk4oMHg0NjFkNDBlMSwgMHg2ODJhZmUxMSksIFRPQk4oMHg5ZTBmYzc3YSwg
MHg3YjQxYzBhOCksCi0gICAgICAgICBUT0JOKDB4NzllNGFlZmQsIDB4ZTIwZDVkMzYpLCBUT0JO
KDB4MjkxNmU1MjAsIDB4MzJkZDlmNjMpLAotICAgICAgICAgVE9CTigweGY1OWU1MmU4LCAweDNm
ODgzZmFmKSwgVE9CTigweDM5NmY5NjM5LCAweDJiODY4ZDM1KSwKLSAgICAgICAgIFRPQk4oMHhj
OTAyYTlkZiwgMHg0Y2ExOTg4MSksIFRPQk4oMHgwZmM5NjgyMiwgMHhkYjI0MDFhNiksCi0gICAg
ICAgICBUT0JOKDB4NDEyMzc1ODcsIDB4NjZmMWM2OGQpLCBUT0JOKDB4MTBmYzZkZTMsIDB4ZmI0
NzZjMGQpLAotICAgICAgICAgVE9CTigweGY4YjZiNTc5LCAweDg0MWY1ZDkwKSwgVE9CTigweDJi
YTg0NDZjLCAweGZhMjRmNDRhKSwKLSAgICAgICAgIFRPQk4oMHhhMjM3YjkyMCwgMHhlZjRhOTk3
NSksIFRPQk4oMHg2MGJiNjAwNCwgMHgyMzMwNDM1ZiksCi0gICAgICAgICBUT0JOKDB4ZDZmNGFi
NWEsIDB4Y2ZiN2U3YjUpLCBUT0JOKDB4YjJhYzUwOTcsIDB4ODM0MzUzOTEpLAotICAgICAgICAg
VE9CTigweGYwMzZlZTJmLCAweGIwZDFlYTY3KSwgVE9CTigweGFlNzc5YTZhLCAweDc0YzU2MjMw
KSwKLSAgICAgICAgIFRPQk4oMHg1OWJmZjhjOCwgMHhhYjgzOGFlNiksIFRPQk4oMHhjZDgzY2E5
OSwgMHg5YjM4ZTZmMCksCi0gICAgICAgICBUT0JOKDB4YmIyN2JlZjUsIDB4ZTMzZGVlZDMpLCBU
T0JOKDB4ZTYzNTZmNmYsIDB4MDAxODkyYTgpLAotICAgICAgICAgVE9CTigweGJmM2JlNmNjLCAw
eDdhZGZiZDNlKSwgVE9CTigweGFlY2JjODFjLCAweDMzZDFhYzlkKSwKLSAgICAgICAgIFRPQk4o
MHhlNGZlYjkwOSwgMHhlNmU4NjFkYyksIFRPQk4oMHg5MGEyNDdhNCwgMHg1M2Y1ZjgwMSksCi0g
ICAgICAgICBUT0JOKDB4MDFjNTBhY2IsIDB4MjczNDZlNTcpLCBUT0JOKDB4Y2UyOTI0MmUsIDB4
NDYxYWNjMWIpLAotICAgICAgICAgVE9CTigweDA0ZGQyMTRhLCAweDJmOTk4YTkxKSwgVE9CTigw
eDI3MWVlOWIxLCAweGQ0YmFmMjdiKSwKLSAgICAgICAgIFRPQk4oMHg3ZTMwMjdkMSwgMHhlOGMy
NjcyMiksIFRPQk4oMHgyMWQxNjQ1YywgMHgxODIwZGNlNSksCi0gICAgICAgICBUT0JOKDB4MDg2
ZjI0MmMsIDB4NzUwMTc3OWMpLCBUT0JOKDB4ZjAwNjE0MDcsIDB4ZmEwZTgwMDkpLAotICAgICAg
ICAgVE9CTigweGYyM2NlNDc3LCAweDYwMTg3MTI5KSwgVE9CTigweDA1YmJkZWRiLCAweDBmZGU5
YmQwKSwKLSAgICAgICAgIFRPQk4oMHg2ODJmNDgzMiwgMHgyNWQ5ODQ3MyksIFRPQk4oMHhmMjA3
ZmU4NSwgMHg1YzY1ODQyNyksCi0gICAgICAgICBUT0JOKDB4YjZmZGQ3YmEsIDB4NDE2NmZmYTEp
LCBUT0JOKDB4MGMzMTQwNTYsIDB4OWVlZDc5OWQpLAotICAgICAgICAgVE9CTigweDBkYjgwNDhm
LCAweDQxMDdlMjhmKSwgVE9CTigweDc0ZWQzODcxLCAweDQxMjE2ODQwKSwKLSAgICAgICAgIFRP
Qk4oMHg3NDQ4OWY4ZiwgMHg1NmEzYzA2ZSksIFRPQk4oMHgxZTFjMDA1YiwgMHgxMjc3NzEzNCks
Ci0gICAgICAgICBUT0JOKDB4ZGIzMzJhNzMsIDB4ZjM3ZWMzYzMpLCBUT0JOKDB4YzY1MjU5YmQs
IDB4ZGQ1OWViYTApLAotICAgICAgICAgVE9CTigweDIyOTE3MDljLCAweGRiNGQzMjU3KSwgVE9C
TigweDlhNzkzYjI1LCAweGJkMzg5MzkwKSwKLSAgICAgICAgIFRPQk4oMHhmMzlmZTM0YiwgMHhl
NDM3NTZmMCksIFRPQk4oMHgyZjc2YmRjZSwgMHg5YWZiNTZjOSksCi0gICAgICAgICBUT0JOKDB4
OWYzNzg2N2EsIDB4NjEyMDhiMjcpLCBUT0JOKDB4ZWExZDQzMDcsIDB4MDg5OTcyYzMpLAotICAg
ICAgICAgVE9CTigweDhjNTk1MzMwLCAweDhiZGY2MjNhKSwgVE9CTigweDVmNWFjY2RhLCAweDg0
NDFmYjdkKSwKLSAgICAgICAgIFRPQk4oMHhmYWZhOTQxOCwgMHgzMmRkZmQ5NSksIFRPQk4oMHg2
YWQ0MGM1YSwgMHgwZmRlOWJlNyksCi0gICAgICAgICBUT0JOKDB4NDNmYWJhODksIDB4YWVjYTg3
MDkpLCBUT0JOKDB4YzY0YTdjZjEsIDB4MmMyNDhhOWQpLAotICAgICAgICAgVE9CTigweDE2NjIw
MjUyLCAweDcyNjM3YTc2KSwgVE9CTigweGFlZTFjNzkxLCAweDIyYjhkMWJiKSwKLSAgICAgICAg
IFRPQk4oMHhmMGY3OThmZCwgMHgyMWE4NDNiMiksIFRPQk4oMHg1NmU0ZWQ0ZCwgMHg4ZDAwNWNi
MSksCi0gICAgICAgICBUT0JOKDB4MzU1Zjc3ODAsIDB4MWYwZDhhYmUpLCBUT0JOKDB4MTk3YjA0
Y2YsIDB4MzQ1MjIzMjYpLAotICAgICAgICAgVE9CTigweDQxZjliMzFmLCAweGZkNDJjMTNmKSwg
VE9CTigweDVlZjdmZWIyLCAweGI0MGY5MzNkKSwKLSAgICAgICAgIFRPQk4oMHgyNzMyNmY0Miwg
MHg1ZDYwYmFkNCksIFRPQk4oMHgwMjdlY2RiMiwgMHg4YzkyY2Y4OSksCi0gICAgICAgICBUT0JO
KDB4MDRhYWU0ZDEsIDB4NGUzMzUyZmUpLCBUT0JOKDB4MDg0MTRkMmYsIDB4NzM1OTFiOTApLAot
ICAgICAgICAgVE9CTigweDVlZDYxMjRlLCAweGI3ZGE3ZDYwKSwgVE9CTigweGI5ODViOTMxLCAw
eDRkMTNkNGVjKSwKLSAgICAgICAgIFRPQk4oMHhhNTkyZDNhYiwgMHg5NmJmMzZmOSksIFRPQk4o
MHgwMTJkYmVkNSwgMHhiYmRmNTFkZiksCi0gICAgICAgICBUT0JOKDB4YTU3OTYzYzAsIDB4ZGY2
YzE3N2QpLCBUT0JOKDB4MDEwZWM4NjksIDB4ODdjYTI5Y2YpLAotICAgICAgICAgVE9CTigweGJh
MTcwMGY2LCAweGJmOTI2ZGZmKSwgVE9CTigweDdjOWZkYmQxLCAweGY0YmY2YmMyKSwKLSAgICAg
ICAgIFRPQk4oMHhkYzE4ZGM4ZiwgMHg2NGRhMTFmNSksIFRPQk4oMHhhNjA3NGI3YSwgMHhkOTM4
YWU3NSksCi0gICAgICAgICBUT0JOKDB4MTQyNzAwNjYsIDB4ZTg0ZjQ0YTQpLCBUT0JOKDB4OTk5
OThkMzgsIDB4ZDI3Yjk1NGUpLAotICAgICAgICAgVE9CTigweGMxYmU4YWIyLCAweGI0ZjM4ZTlh
KSwgVE9CTigweDhiYjU1YmJmLCAweDE1YzAxMDE2KSwKLSAgICAgICAgIFRPQk4oMHhmNzM0NzJi
NCwgMHgwZWEyYWIzMCksIFRPQk4oMHhkMzY1YTM0MCwgMHhmNzNkNjhkZCksCi0gICAgICAgICBU
T0JOKDB4YzAxYTcxNjgsIDB4MTljMmUxZWIpLCBUT0JOKDB4MzJmNDllMzcsIDB4MzQwNjE3MTkp
LAotICAgICAgICAgVE9CTigweGI3M2M1N2YxLCAweDAxZDhiNGQ2KSwgVE9CTigweDAzYzg0MjNj
LCAweDI2YjQ3NzAwKSwKLSAgICAgICAgIFRPQk4oMHgzMjFkMGJjOCwgMHhhNGQ4ODI2YSksIFRP
Qk4oMHg2MDA0MjEzYywgMHg0YmMwZTYzOCksCi0gICAgICAgICBUT0JOKDB4Zjc4YzY0YTEsIDB4
YzFjMDY2ODEpLCBUT0JOKDB4MTZlMGExNmYsIDB4ZWYwMThlNTApLAotICAgICAgICAgVE9CTigw
eDMxY2JkZjkxLCAweGRiNDJiMmIzKSwgVE9CTigweGY4ZjRmZmNlLCAweGUwZDM2ZjU4KSwKLSAg
ICAgICAgIFRPQk4oMHhjZGNjNzFjZCwgMHg0Y2M1ZTNlMCksIFRPQk4oMHhkNTVjN2NmYSwgMHhh
MTI5ZTNlMCksCi0gICAgICAgICBUT0JOKDB4Y2NkYjZiYTAsIDB4MGZiMmNiZjEpLCBUT0JOKDB4
NmFiYTAwMDUsIDB4YzRiY2UzY2IpLAotICAgICAgICAgVE9CTigweDUwMWNkYjMwLCAweGQyMzJj
ZmM0KSwgVE9CTigweDlkZGNmMTJlLCAweGQ1OGEzY2VmKSwKLSAgICAgICAgIFRPQk4oMHgwMmQy
Y2Y5YywgMHg4N2UwOTE0OSksIFRPQk4oMHhkYzVkN2VjNywgMHgyYzk3NjI1NyksCi0gICAgICAg
ICBUT0JOKDB4NjQ0Nzk4NmUsIDB4MGI1MGQ3ZGQpLCBUT0JOKDB4ODhmZGJhZjcsIDB4ODA3ZjEx
MmEpLAotICAgICAgICAgVE9CTigweDU4Yzk4MjJhLCAweGIwMGFlOWY2KSwgVE9CTigweDZhYmZi
OTUwLCAweDZkM2QyN2UwKSwKLSAgICAgICAgIFRPQk4oMHhkMGE3NDQ4NywgMHg4YTQyOWY0Ziks
IFRPQk4oMHgwNjQ5NzEyYiwgMHhkYjUxNjYwOSksCi0gICAgICAgICBUT0JOKDB4YjgyNmJhNTcs
IDB4ZTc2OWI1ZGYpLCBUT0JOKDB4ODIzMzVkZjIsIDB4MWZjN2FhZjIpLAotICAgICAgICAgVE9C
TigweDIzODlmMDY3LCAweDVjOTNkOTk1KSwgVE9CTigweDU5YWMzNjdhLCAweDY4Njc3YmU2KSwK
LSAgICAgICAgIFRPQk4oMHhhNzc5ODVmZiwgMHgyMWQ5OTUxYiksIFRPQk4oMHgwMzg5NTZmYiwg
MHg4NTAxMWNjZSksCi0gICAgICAgICBUT0JOKDB4NjA4ZTQ4Y2IsIDB4YmI3MzRlMzcpLCBUT0JO
KDB4YzA4YzBiZjIsIDB4MmJlNWIyNmYpLAotICAgICAgICAgVE9CTigweDE3YmJkZDNiLCAweGY5
YjFhMGQ5KSwgVE9CTigweGVhYzdkODk4LCAweDEwNDgzMzE5KSwKLSAgICAgICAgIFRPQk4oMHhj
OTVjNGJhZiwgMHhiYzFhNmRlYSksIFRPQk4oMHhmZGQwZTJiZiwgMHgxNzJhYWZkYiksCi0gICAg
ICAgICBUT0JOKDB4NDAzNzNjYmMsIDB4ODIzNWM0MWEpLCBUT0JOKDB4MTQzMDNmMjEsIDB4ZmI2
ZjQxZDUpLAotICAgICAgICAgVE9CTigweGJhMDYzNjIxLCAweDA0MDhmMjM3KSwgVE9CTigweGNh
ZDNiMDlhLCAweGVjZDJkMWVkKSwKLSAgICAgICAgIFRPQk4oMHg0NjY3ODU1YSwgMHg1MmFiYjZh
MiksIFRPQk4oMHhiYTkxNTdkYywgMHhhYThiNDE3YiksCi0gICAgICAgICBUT0JOKDB4ZmU3ZjM1
MDcsIDB4NGYwMTNlZmIpLCBUT0JOKDB4MWIxMTJjNGIsIDB4YWEzOGM0YTIpLAotICAgICAgICAg
VE9CTigweGExNDA2YTYwLCAweDliYTY0MzQ1KSwgVE9CTigweGU1M2NiYTMzLCAweDY5OTNjODBi
KSwKLSAgICAgICAgIFRPQk4oMHg0NTQ2NjA2MywgMHhkZWQ0MGQyMyksIFRPQk4oMHgzZDVmMWY0
ZCwgMHg1NDkwOGUyNSksCi0gICAgICAgICBUT0JOKDB4OWViZWZlNjIsIDB4NDAzYzNjMzEpLCBU
T0JOKDB4Mjc0ZWEwYjUsIDB4MDY3MmE2MjQpLAotICAgICAgICAgVE9CTigweGZmODE4ZDk5LCAw
eDQ1MWQxYjcxKSwgVE9CTigweDgwZTgyNjQzLCAweDhmNzljZjc5KSwKLSAgICAgICAgIFRPQk4o
MHhhMTY1ZGYxMywgMHg3M2NlMzdmNSksIFRPQk4oMHhhNzQ0ZWY0ZiwgMHhmZTNhMjFmZCksCi0g
ICAgICAgICBUT0JOKDB4NzNmMWU3ZjUsIDB4Y2Y1NTEzOTYpLCBUT0JOKDB4YzYxNjg5OGUsIDB4
ODY4YzY3NmIpLAotICAgICAgICAgVE9CTigweDY3MWMyOGM3LCAweDhjNDQyYzM2KSwgVE9CTigw
eGNmZTVlNTU4LCAweDVlMGEzMTdkKSwKLSAgICAgICAgIFRPQk4oMHgxMjQyZDgxOCwgMHg3MDUx
ZjQ3NiksIFRPQk4oMHg1NmZhZDJhNiwgMHgxNGYwMzQ0MiksCi0gICAgICAgICBUT0JOKDB4MjYy
MDY4YmMsIDB4MGE0NGQwZjYpLCBUT0JOKDB4ZGZhMmNkNmUsIDB4Y2U2ZWRmNGUpLAotICAgICAg
ICAgVE9CTigweDBmNDM4MTNhLCAweGQxNWQxNTE3KSwgVE9CTigweDYxMjE0Y2IyLCAweDM3N2Q0
NGY1KSwKLSAgICAgICAgIFRPQk4oMHhkMzk5YWEyOSwgMHhjNjM5YjM1ZiksIFRPQk4oMHg0MjEz
NmQ3MSwgMHg1NGM1MWMxOSksCi0gICAgICAgICBUT0JOKDB4OTc3NDcxMWIsIDB4MDg0MTcyMjEp
LCBUT0JOKDB4MGE1NTQ2YjMsIDB4NTI1NDVhNTcpLAotICAgICAgICAgVE9CTigweDgwNjI0YzQx
LCAweDExNTA1ODJkKSwgVE9CTigweDllYzVjNDE4LCAweGZiYzU1NWJjKSwKLSAgICAgICAgIFRP
Qk4oMHgyYzg3ZGNhZCwgMHg3NzE4NDlmMSksIFRPQk4oMHhiMGM5MzJjNSwgMHgwMWQ3YmY2Ziks
Ci0gICAgICAgICBUT0JOKDB4NmFhNWNkM2UsIDB4ODkxMTZlYjIpLCBUT0JOKDB4ZDM3OGMyNWEs
IDB4NTFjYTdiZDMpLAotICAgICAgICAgVE9CTigweGM2MTJhMGRhLCAweDllNmUzZTMxKSwgVE9C
TigweDA0MTdhNTRkLCAweGI2OGFkNWQwKSwKLSAgICAgICAgIFRPQk4oMHgwMDQ1MWU0YSwgMHgy
MmM2ZWRiOCksIFRPQk4oMHg5ZmJmZTAxOSwgMHhiNDI4MjdjZSksCi0gICAgICAgICBUT0JOKDB4
MmZhOTI1MDUsIDB4YmE5Mzg0YTIpLCBUT0JOKDB4MjFiODU5NmUsIDB4NjRhZDY5YzEpLAotICAg
ICAgICAgVE9CTigweDhmNGZjYzQ5LCAweDk4M2IzNWE2KSwgVE9CTigweGRlMDkzNzYwLCAweDcy
NzU0NjcyKSwKLSAgICAgICAgIFRPQk4oMHgyZjE0Y2NjOCwgMHhmN2JmZmU2ZCksIFRPQk4oMHgy
NzU2NmJmZiwgMHg1ZDk0MjYzZCksCi0gICAgICAgICBUT0JOKDB4YjViNGU5YzYsIDB4MmRmM2Vj
MzApLCBUT0JOKDB4OTRmMWQ3ZDUsIDB4M2U2ZWE2YmEpLAotICAgICAgICAgVE9CTigweDk3Yjc4
NTFhLCAweGFhY2E1ZTliKSwgVE9CTigweDUxOGFhNTIxLCAweDU2NzEzYjk3KSwKLSAgICAgICAg
IFRPQk4oMHgzMzU3ZThjNywgMHgxNTBhNjFmNiksIFRPQk4oMHg3ODQyZTdlMiwgMHhlYzJjMmI2
OSksCi0gICAgICAgICBUT0JOKDB4OGRmZmFmNjUsIDB4Njg2OGE1NDgpLCBUT0JOKDB4ZDk2M2Jk
ODIsIDB4ZTA2OGZjODEpLAotICAgICAgICAgVE9CTigweDY0ZGE1YzhiLCAweDY1OTE3NzMzKSwg
VE9CTigweDkyNzA5MGZmLCAweDdiMjQ3MzI4KX0sCi0gICAgICAgIHtUT0JOKDB4MjE0YmM5YTcs
IDB4ZDI5OGMyNDEpLCBUT0JOKDB4ZTNiNjk3YmEsIDB4NTY4MDdjZmQpLAotICAgICAgICAgVE9C
TigweGVmMWM3ODAyLCAweDQ1NjRlYWRiKSwgVE9CTigweGRkZThjZGNmLCAweGI0ODE0OWM1KSwK
LSAgICAgICAgIFRPQk4oMHg5NDZiZjBhNywgMHg1YTRkMjYwNCksIFRPQk4oMHgyNzE1NGQ3Ziwg
MHg2YzE1MzhhZiksCi0gICAgICAgICBUT0JOKDB4OTVjYzkyMzAsIDB4ZGU1YjFmY2MpLCBUT0JO
KDB4ZDg4NTE5ZTksIDB4NjY4NjRmODIpLAotICAgICAgICAgVE9CTigweGI4MjhkZDFhLCAweDdj
YjEyODJjKSwgVE9CTigweGEwOGQ3NjI2LCAweGJlNDY5NzNhKSwKLSAgICAgICAgIFRPQk4oMHg2
YmFmOGQ0MCwgMHhlNzA4ZDZiMiksIFRPQk4oMHg3MjU3MWZhMSwgMHg0ZGFlYjNmMyksCi0gICAg
ICAgICBUT0JOKDB4ODViMTczMmYsIDB4ZjIyZGZkOTgpLCBUT0JOKDB4ODdhYjAxYTcsIDB4MDA4
NzEwOGQpLAotICAgICAgICAgVE9CTigweGFhYWFmZWE4LCAweDU5ODgyMDdhKSwgVE9CTigweGNj
YzgzMmY4LCAweDY5ZjAwNzU1KSwKLSAgICAgICAgIFRPQk4oMHg5NjRkOTUwZSwgMHgzNmZmM2Jm
MCksIFRPQk4oMHg4YWQyMGY2ZiwgMHhmMGIzNDYzOCksCi0gICAgICAgICBUT0JOKDB4NGQ5MTc3
YjMsIDB4YjVkNzU4NWYpLCBUT0JOKDB4Y2Y4Mzk3NjAsIDB4ZWYzZjAxOWYpLAotICAgICAgICAg
VE9CTigweDU4MmZjNWIzLCAweDgyODhjNTQ1KSwgVE9CTigweDJmOGU0ZTliLCAweDEzMTE2YmQx
KSwKLSAgICAgICAgIFRPQk4oMHhmOTFlMWIyZiwgMHgzMzIxMjBlZiksIFRPQk4oMHhjZjU2ODcy
NCwgMHgyYTE3ZGQyMyksCi0gICAgICAgICBUT0JOKDB4NDg4ZjExODUsIDB4Y2E4ZDlkMWEpLCBU
T0JOKDB4YWRmMmM3N2QsIDB4ZDk4N2RlZDIpLAotICAgICAgICAgVE9CTigweDVmMzAzOWYwLCAw
eDYwYzQ2MTI0KSwgVE9CTigweGU1ZDcwYjc1LCAweDcxZTA5NWY0KSwKLSAgICAgICAgIFRPQk4o
MHg4MmQ1ODY1MCwgMHg2MjYwZTcwZiksIFRPQk4oMHgzOWQ3NWVhNywgMHhmNzUwZDEwNSksCi0g
ICAgICAgICBUT0JOKDB4OGNmM2QwYjEsIDB4NzViYWMzNjQpLCBUT0JOKDB4ZjNhNzU2NGQsIDB4
MjFkMDEzMjkpLAotICAgICAgICAgVE9CTigweDE4MmYwNGNkLCAweDJmNTJkMmE3KSwgVE9CTigw
eDRmZGUxNDlhLCAweGUyZGY1NjVhKSwKLSAgICAgICAgIFRPQk4oMHhiODBjNWVlYywgMHhhNzlm
YjJmNyksIFRPQk4oMHhhYjQ5MWQ3YiwgMHgyMmRkYzg5NyksCi0gICAgICAgICBUT0JOKDB4OTlk
NzZjMTgsIDB4YzYzMTJjN2YpLCBUT0JOKDB4Y2EwZDVmM2QsIDB4NmFhNDFhNTcpLAotICAgICAg
ICAgVE9CTigweDcxMjA3MzI1LCAweGQxNTM2M2EwKSwgVE9CTigweGU4MmFhMjY1LCAweGJlYjI1
MmMyKSwKLSAgICAgICAgIFRPQk4oMHg5NGFiNDcwMCwgMHhlYzMxMjhjMiksIFRPQk4oMHg2Yzc2
ZDg2MiwgMHg4ZTM4M2Y0OSksCi0gICAgICAgICBUT0JOKDB4ZGMzNmIxNTAsIDB4YzAzMDI0ZWIp
LCBUT0JOKDB4ZmI0Mzk0NzcsIDB4NTNkYWFjNjkpLAotICAgICAgICAgVE9CTigweGZjNjg3NjRh
LCAweDhkYzc5NjIzKSwgVE9CTigweDViODY5OTVkLCAweGI0NDBmYmIyKSwKLSAgICAgICAgIFRP
Qk4oMHhkNjY4NzliZiwgMHhjY2M1ZWUwZCksIFRPQk4oMHgwNTIyODk0MiwgMHg5NWFhOGJkMyks
Ci0gICAgICAgICBUT0JOKDB4YjUxYTQwYTUsIDB4MWU2YTc1YzEpLCBUT0JOKDB4MjQzMjdjNzYs
IDB4MGVhN2Q4MTcpLAotICAgICAgICAgVE9CTigweDA2NjMwMTgyLCAweDA3Nzc0NTk3KSwgVE9C
TigweGQ2ZmRiZWMzLCAweDk3ZmE3MTY0KSwKLSAgICAgICAgIFRPQk4oMHgyMGM5OWRmYiwgMHgx
M2M5MGY0OCksIFRPQk4oMHhkNmFjNTI3MywgMHg2ODZlZjI2MyksCi0gICAgICAgICBUT0JOKDB4
YzZhNTBiZGMsIDB4ZmVmNjRlZWIpLCBUT0JOKDB4Y2Q4N2IyODEsIDB4ODZmZGZjMzIpLAotICAg
ICAgICAgVE9CTigweGIyNGFhNDNlLCAweDNmY2QzZWZjKSwgVE9CTigweGRkMjZjMDM0LCAweGI4
MDg4ZTlhKSwKLSAgICAgICAgIFRPQk4oMHhhNWVmNGRjOSwgMHhiZDNkNDZlYSksIFRPQk4oMHhh
MmY5OWQ1OCwgMHg4YTRjNmE2ZiksCi0gICAgICAgICBUT0JOKDB4ZGRhYmQzNTUsIDB4MmYxZGE0
NmMpLCBUT0JOKDB4NzJjM2Y4Y2UsIDB4MWFmYWNkZDEpLAotICAgICAgICAgVE9CTigweGQ5MGM0
ZWVlLCAweDkyZDQwNTc4KSwgVE9CTigweGQyOGJiNDFmLCAweGNhNjIzYjk0KSwKLSAgICAgICAg
IFRPQk4oMHg1MGZjMDcxMSwgMHg3NDVlZGMxMSksIFRPQk4oMHg5ZGQ5YWQ3ZCwgMHgzZGM4NzU1
OCksCi0gICAgICAgICBUT0JOKDB4Y2U2OTMxZmIsIDB4YjQ5ZDFlNjQpLCBUT0JOKDB4NmM3N2Ew
YTIsIDB4Yzk4YmQwZjkpLAotICAgICAgICAgVE9CTigweDYyYjlhNjI5LCAweDZiYWY3Y2IxKSwg
VE9CTigweGNmMDY1ZjkxLCAweGNjZjcyZDIyKSwKLSAgICAgICAgIFRPQk4oMHg3MjAzY2NlOSwg
MHg3OTYzOTA3MSksIFRPQk4oMHgwOWFlNDg4NSwgMHhmOWNiNzMyZiksCi0gICAgICAgICBUT0JO
KDB4NWU3YzNiZWMsIDB4ZWU4MzE0ZjMpLCBUT0JOKDB4MWMwNjhhZWQsIDB4ZGJlYTI5OGYpLAot
ICAgICAgICAgVE9CTigweDA4ZDM4MWYxLCAweDdjODBhY2VjKSwgVE9CTigweDAzYjU2YmU4LCAw
eGUzMzA0OTViKSwKLSAgICAgICAgIFRPQk4oMHhhZWZmYjhmMiwgMHg5MjIyODgyZCksIFRPQk4o
MHg5NWZmMzhmNiwgMHhjNGFmOGJmNyksCi0gICAgICAgICBUT0JOKDB4NTBlMzJkMzUsIDB4MWZj
NTdkOGMpLCBUT0JOKDB4NjYzNWJlNTIsIDB4MTdiNDQ0ZjApLAotICAgICAgICAgVE9CTigweDA0
ZDE1Mjc2LCAweGE1MTc3OTAwKSwgVE9CTigweDRlMWRiYjQ3LCAweGY2ODU4NzUyKSwKLSAgICAg
ICAgIFRPQk4oMHg1YjQ3NTYyMiwgMHhjNjE1Nzk2YyksIFRPQk4oMHhhNmZhMDM4NywgMHg2OTE4
NjdiZiksCi0gICAgICAgICBUT0JOKDB4ZWQ3ZjVkNTYsIDB4Mjg0NGM2ZDApLCBUT0JOKDB4YzYz
M2NmOWIsIDB4MDNhMjQ3N2QpLAotICAgICAgICAgVE9CTigweGY2YmU1YzQwLCAweDJkMzcyMWQ2
KSwgVE9CTigweGFmMzEyZWI3LCAweGU5ZmQ2OGU2KSwKLSAgICAgICAgIFRPQk4oMHgyNDI3OTJk
MiwgMHhlNzQxN2NlMSksIFRPQk4oMHhmZjQyYmM3MSwgMHg5NzBlZTdmNSksCi0gICAgICAgICBU
T0JOKDB4MWZmNGRjNmQsIDB4NWM2N2E0MWUpLCBUT0JOKDB4Nzc3MDliN2IsIDB4MjA4ODJhNTgp
LAotICAgICAgICAgVE9CTigweDM1NTQ3MzFkLCAweGJlMjE3ZjJjKSwgVE9CTigweDJhZjJhOGNk
LCAweDViYjcyMTc3KSwKLSAgICAgICAgIFRPQk4oMHg1OGVlZTc2OSwgMHg1OTFkZDA1OSksIFRP
Qk4oMHhiYjI5MzBjOSwgMHg0YmJhNjQ3NyksCi0gICAgICAgICBUT0JOKDB4ODYzZWUwNDcsIDB4
N2Q5MzBjZmMpLCBUT0JOKDB4NGMyNjJhZDEsIDB4Mzk2ZmQxZjQpLAotICAgICAgICAgVE9CTigw
eGY0NzY1YmM4LCAweDAzOWFmN2UxKSwgVE9CTigweDI1MTk4MzRiLCAweDViYTEwNGY2KSwKLSAg
ICAgICAgIFRPQk4oMHg3Y2Q2MWI0YywgMHhkMTA1Zjk2MSksIFRPQk4oMHhhNTQxNWRhNSwgMHhk
NjNiY2E1NCksCi0gICAgICAgICBUT0JOKDB4Nzc4MjgwYTAsIDB4ODhhMWYxN2MpLCBUT0JOKDB4
YzQ5Njg5NDksIDB4MjMyOTUxMmMpLAotICAgICAgICAgVE9CTigweDE3NGE5MTI2LCAweGNlY2Rh
YTdhKSwgVE9CTigweGZjOGM3ZTBlLCAweDBiMTMyNDdiKSwKLSAgICAgICAgIFRPQk4oMHgyOWMx
MTBkMiwgMHgzNDg0YzFjNCksIFRPQk4oMHhmOGViODc1NywgMHg4MzFkZmMzYiksCi0gICAgICAg
ICBUT0JOKDB4MDIyZjAyMTIsIDB4YzAwNjc0NTIpLCBUT0JOKDB4M2Y2ZjY5ZWUsIDB4N2I5Yjky
NmMpLAotICAgICAgICAgVE9CTigweDA5MDMyZGEwLCAweGVmNDJkYWY0KSwgVE9CTigweDc5ZjAw
YWRlLCAweDgzZjgwZGU0KSwKLSAgICAgICAgIFRPQk4oMHg2MjEwZGI3MSwgMHg4MTIzNmM5Nyks
IFRPQk4oMHg3NGY3Njg1YiwgMHgzZWUwNzgxZiksCi0gICAgICAgICBUT0JOKDB4NGRmN2RhN2Is
IDB4YTNlNDEzNzIpLCBUT0JOKDB4MmFhZTM4YjEsIDB4YjFhMTU1M2UpLAotICAgICAgICAgVE9C
TigweDE2ODhlMjIyLCAweGY2ZGQ5ZDFiKSwgVE9CTigweDU3Njk1NDQ4LCAweDViOGI2NDg3KSwK
LSAgICAgICAgIFRPQk4oMHg0NzhkMjEyNywgMHg0YjJlZGVhYSksIFRPQk4oMHhiMjgxOGZhNSwg
MHgxZTg1OTU2YSksCi0gICAgICAgICBUT0JOKDB4MWU2YWRkZGEsIDB4ZjE3NmYyYzApLCBUT0JO
KDB4MDFjYTQ2MDQsIDB4ZTI1NzI2NTgpLAotICAgICAgICAgVE9CTigweDBhNDA0ZGVkLCAweDg1
MzQyZmZiKSwgVE9CTigweDhjZjYwZjk2LCAweDQ0MTgzOGQ2KSwKLSAgICAgICAgIFRPQk4oMHg5
YmJjNjkxYywgMHhjOTA3MWM0YSksIFRPQk4oMHhmZDU4ODc0NCwgMHgzNDQ0MjgwMyksCi0gICAg
ICAgICBUT0JOKDB4OTcxMDFjODUsIDB4ODA5YzBkODEpLCBUT0JOKDB4YTdmYjc1NGMsIDB4OGM0
NTZmN2YpLAotICAgICAgICAgVE9CTigweGM5NWYzYzVjLCAweGQ1MTgwNWUxKSwgVE9CTigweGFi
NGNjZDM5LCAweGIyOTlkY2E4KSwKLSAgICAgICAgIFRPQk4oMHgzZTAzZDIwYiwgMHg0N2VhZjUw
MCksIFRPQk4oMHhmYTMxNjVjMSwgMHhkN2I4MDg5MyksCi0gICAgICAgICBUT0JOKDB4MDA1ZThi
NTQsIDB4ZTE2MGU1NTIpLCBUT0JOKDB4ZGM0OTcyYmEsIDB4OTAxOWQxMWYpLAotICAgICAgICAg
VE9CTigweDIxYTY5NzJlLCAweDBjOWE0YTdhKSwgVE9CTigweGE1MmMyNThmLCAweDM3ODQwZmQ3
KSwKLSAgICAgICAgIFRPQk4oMHhmODU1OWZmNCwgMHhjMWU5OWQ4MSksIFRPQk4oMHgwOGUxYTdk
NiwgMHhhM2M2MTdjMCksCi0gICAgICAgICBUT0JOKDB4YjM5OGZkNDMsIDB4MjQ4YzZiYTcpLCBU
T0JOKDB4NmZmZWRkOTEsIDB4ZDEyODM3OTQpLAotICAgICAgICAgVE9CTigweDhhNmE1OWQyLCAw
eGQ2MjlkMjA4KSwgVE9CTigweGE5ZDE0MWQ1LCAweDM0OTA1MzBlKSwKLSAgICAgICAgIFRPQk4o
MHg0MmY2ZmMxOCwgMHgzODUwNTk4OSksIFRPQk4oMHgwOWJmMjUwZCwgMHg0NzlkOTRlZSksCi0g
ICAgICAgICBUT0JOKDB4MjIzYWQzYjEsIDB4YjM4MjI3OTApLCBUT0JOKDB4NmM1OTI2YzAsIDB4
OTNiODk3MWMpLAotICAgICAgICAgVE9CTigweDYwOWVmYzdlLCAweDc1ZjdmYTYyKSwgVE9CTigw
eDQ1ZDY2YTZkLCAweDFlYzJkOTg5KSwKLSAgICAgICAgIFRPQk4oMHg0NDIyZDY2MywgMHg5ODdk
Mjc5MiksIFRPQk4oMHg0YTczY2FhZCwgMHgzZWIzMWQyYiksCi0gICAgICAgICBUT0JOKDB4ZjA2
YzJhYzEsIDB4YTMyY2I5ZTYpLCBUT0JOKDB4ZDk0NDVjNWYsIDB4OTFhZWJhODQpLAotICAgICAg
ICAgVE9CTigweDZhZjdhMWQ1LCAweGFmNzEwMTNmKSwgVE9CTigweGU2ODIxNmU1LCAweDBiZWRj
OTQ2KSwKLSAgICAgICAgIFRPQk4oMHhmNGNiYTMwYiwgMHhkMjczNzBhMCksIFRPQk4oMHg3OTgx
YWZiZiwgMHg4NzA0MjFjYyksCi0gICAgICAgICBUT0JOKDB4MDI0OTZhNjcsIDB4OTQ0OWYwZTEp
LCBUT0JOKDB4ODZjZmM0YmUsIDB4MGE0N2VkYWUpLAotICAgICAgICAgVE9CTigweDMwNzNjOTM2
LCAweGIxZmVjYTIyKSwgVE9CTigweGY1Njk0NjEyLCAweDAzZjhmOGZiKSwKLSAgICAgICAgIFRP
Qk4oMHhkMDYzYjcyMywgMHg5MDE1MTVlYSksIFRPQk4oMHg0YzZjNzdhNSwgMHg3NDljZjAzOCks
Ci0gICAgICAgICBUT0JOKDB4NjM2MWUzNjAsIDB4YWI5ZTUwNTkpLCBUT0JOKDB4NTk2Y2YxNzEs
IDB4YTc2YTM3YzApLAotICAgICAgICAgVE9CTigweDgwMGY1M2ZhLCAweDY1MzBhZTdhKSwgVE9C
TigweDBmNWU2MzFlLCAweDA3OTJhN2E2KSwKLSAgICAgICAgIFRPQk4oMHg1Y2MyOWMyNCwgMHhl
ZmRiODFjOSksIFRPQk4oMHhhMjY5ZTg2OCwgMHgzZjljNDBiYSksCi0gICAgICAgICBUT0JOKDB4
ZWMxNGY5ZTEsIDB4MmNiNzE5MWUpLCBUT0JOKDB4NzhlYTFiZDgsIDB4ZTViMDhlYTYpLAotICAg
ICAgICAgVE9CTigweDNjNjVhYTliLCAweDQ2MzMyYmI5KSwgVE9CTigweDg0Y2MyMmIzLCAweGJm
ODBjZTI1KSwKLSAgICAgICAgIFRPQk4oMHgwMDk4ZTllOSwgMHhkNDlkNWJmMSksIFRPQk4oMHhj
ZDRlYzFjNiwgMHgxOTA4N2RhNCksCi0gICAgICAgICBUT0JOKDB4M2M5ZDA3YzUsIDB4YWVmNmUz
NTcpLCBUT0JOKDB4ODM5YTAyNjgsIDB4OWY4ZjY0YjgpLAotICAgICAgICAgVE9CTigweGM1ZTll
YjYyLCAweGM2ZDg2MDdmKSwgVE9CTigweDc1OTY4OWY1LCAweDZhYTk5NWU0KSwKLSAgICAgICAg
IFRPQk4oMHg3MDQ2NDY2OSwgMHhiYmI0ODMxNyksIFRPQk4oMHg5MjE0NzRiZiwgMHhlNDAyNDE3
ZCksCi0gICAgICAgICBUT0JOKDB4Y2FiZTEzNWIsIDB4MmEzNTRjOGMpLCBUT0JOKDB4ZDUxZTUy
ZDIsIDB4ODEyZmE0YjUpLAotICAgICAgICAgVE9CTigweGVjNzQxMDk2LCAweDUzMzExZmU4KSwg
VE9CTigweDRmNzc0NTM1LCAweGI4NjQ1MTRiKSwKLSAgICAgICAgIFRPQk4oMHhiY2FkZDY3MSwg
MHg1YmRlNDhmOCksIFRPQk4oMHhjOTcwMzg3MywgMHgyMTg5YmM3ZCksCi0gICAgICAgICBUT0JO
KDB4NWQ0NTI5OWUsIDB4YzcwOWVlOGEpLCBUT0JOKDB4ZDEyODdlZTIsIDB4ODQ1YWFmZjgpLAot
ICAgICAgICAgVE9CTigweDdkMWY4ODc0LCAweGRiMWRiZjFmKSwgVE9CTigweGVhNDY1ODhiLCAw
eDk5MGM4OGQ2KSwKLSAgICAgICAgIFRPQk4oMHg2MGJhNjQ5YSwgMHg4NDM2ODMxMyksIFRPQk4o
MHhkNWZkY2JjZSwgMHg2MGQ1NDNhZSksCi0gICAgICAgICBUT0JOKDB4OTBiNDZkNDMsIDB4ODEw
ZDVhYjApLCBUT0JOKDB4NjczOWQ4ZjksIDB4MDRkN2U1Y2MpLAotICAgICAgICAgVE9CTigweDAy
MWMxYTU4LCAweDBkMzM3YzMzKSwgVE9CTigweDAwYTYxMTYyLCAweDY4ZTY3YzQwKSwKLSAgICAg
ICAgIFRPQk4oMHg5NWVmNDEzYiwgMHgzNzlmMGExZiksIFRPQk4oMHhmZTEyNjYwNSwgMHhlOWUy
YWI5NSksCi0gICAgICAgICBUT0JOKDB4Njc1NzhiODUsIDB4MmY1ZjE5OWMpLCBUT0JOKDB4ZjVj
MDAzMjksIDB4MmNiODQ5MTMpLAotICAgICAgICAgVE9CTigweGY3OTU2NDMwLCAweDM3NTc3ZGQ4
KSwgVE9CTigweDgzYjgyYWY0LCAweDI5YzVmZTg4KSwKLSAgICAgICAgIFRPQk4oMHg5YzFiZWEy
NiwgMHhjZGJkYzEzMiksIFRPQk4oMHg1ODlmYTA4NiwgMHg5YzA0MzM5ZSksCi0gICAgICAgICBU
T0JOKDB4MDMzZTk1MzgsIDB4YjEzNzk5ZGYpLCBUT0JOKDB4ODVmYThiMjEsIDB4ZDI5NWQwMzQp
LAotICAgICAgICAgVE9CTigweGRmMTdmNzNmLCAweGJkOWRkY2NhKSwgVE9CTigweGYzMmJkMTIy
LCAweGRkYjY2MzM0KSwKLSAgICAgICAgIFRPQk4oMHg1NWVmODhhNywgMHg4NThiMDQ0YyksIFRP
Qk4oMHgxZjBkNjljMiwgMHg1YWE5ZTM5NyksCi0gICAgICAgICBUT0JOKDB4NTVmZDljYzMsIDB4
NDBkODU1NTkpLCBUT0JOKDB4Yzc3NGRmNzIsIDB4Nzc4NWRkYjIpLAotICAgICAgICAgVE9CTigw
eDVkY2NlOWY2LCAweGQzYmQyZTFjKSwgVE9CTigweGViMzBkYTIwLCAweGE4NWRmZWQwKSwKLSAg
ICAgICAgIFRPQk4oMHg1ZWQ3ZjViYiwgMHhkM2VkMDljNCksIFRPQk4oMHg3ZDQyYTM1YywgMHg4
MmE5YzFiZCksCi0gICAgICAgICBUT0JOKDB4Y2YzZGU5OTUsIDB4OTg5MDI3MmQpLCBUT0JOKDB4
NzVmMzQzMmEsIDB4M2U3MTNhMTApLAotICAgICAgICAgVE9CTigweDVlMTM0NzlmLCAweGUyODIy
N2I4KSwgVE9CTigweGI4NTYxZWE5LCAweGZlZmFjZGM4KSwKLSAgICAgICAgIFRPQk4oMHhhNmEy
OTdhMCwgMHg4MzMyYWFmZCksIFRPQk4oMHg5YjBkOGJiNSwgMHg3MzgwOWI2MiksCi0gICAgICAg
ICBUT0JOKDB4ZDJmYTFjZmQsIDB4MGM2MzAzNmYpLCBUT0JOKDB4N2ExNmViNTUsIDB4YmQ2NGJk
YTgpLAotICAgICAgICAgVE9CTigweDNmNWNmNWY2LCAweDc4ZTYyZGRjKSwgVE9CTigweDIyNjdj
NDU0LCAweDA3ZmQ3NTJiKSwKLSAgICAgICAgIFRPQk4oMHg1ZTM2MWI2YiwgMHg1ZTQzN2JiZSks
IFRPQk4oMHg5NWM1OTUwMSwgMHg4MzU0ZTA3NSksCi0gICAgICAgICBUT0JOKDB4ZWM3MjVmODUs
IDB4ZjJiMjU0ZDkpLCBUT0JOKDB4ODQ0YjYxN2QsIDB4MmNiNTJiNGUpLAotICAgICAgICAgVE9C
TigweGVkODU1NGY1LCAweGNmNDI1ZmI1KSwgVE9CTigweGFiNjc3MDNlLCAweDJhZjlmMzEyKSwK
LSAgICAgICAgIFRPQk4oMHg0Y2MzNGVjMSwgMHgzY2Y0ODI4MyksIFRPQk4oMHhiMDlkYWEyNSwg
MHg5YzhhNzA1ZSksCi0gICAgICAgICBUT0JOKDB4ZDFlOWQwZDAsIDB4NWI3ZDRmODQpLCBUT0JO
KDB4NGRmNmVmNjQsIDB4ZGIzODkyOWQpLAotICAgICAgICAgVE9CTigweGUxNmIwNzYzLCAweGFh
MjFiYTQ2KSwgVE9CTigweGM2YjFkMTc4LCAweGEyOTNmOGZiKSwKLSAgICAgICAgIFRPQk4oMHgw
ZmY1YjYwMiwgMHhkNTIwYWFiZiksIFRPQk4oMHg5NGQ2NzFiZCwgMHhjMzM5Mzk3YSksCi0gICAg
ICAgICBUT0JOKDB4N2M3ZDk4Y2YsIDB4NGY1NzkyZmEpLCBUT0JOKDB4N2M1ZTBkNjcsIDB4MTEy
MTUyNjEpLAotICAgICAgICAgVE9CTigweDliMTlhNjMxLCAweGE3YzVhNmQ0KSwgVE9CTigweGM4
NTExYTYyLCAweDdhNDUyNzRkKSwKLSAgICAgICAgIFRPQk4oMHgwYzE2NjIxYywgMHhhNWE2MGQ5
OSksIFRPQk4oMHhmN2ZiYWI4OCwgMHhjZjVlNDhjYiksCi0gICAgICAgICBUT0JOKDB4YWIxZTZj
YTIsIDB4ZjdkZGVlMDgpLCBUT0JOKDB4ODNiZDA4Y2UsIDB4ZTc4NjdmM2MpLAotICAgICAgICAg
VE9CTigweGY3ZTQ4ZThhLCAweDJhYzEzZTI3KSwgVE9CTigweDQ0OTRmNmRmLCAweDRlYjFhOWY1
KSwKLSAgICAgICAgIFRPQk4oMHhlZGJmODRlYiwgMHg5ODFmMGE2MiksIFRPQk4oMHg0OWJhZGMz
MiwgMHg1MzY0MzhmMCksCi0gICAgICAgICBUT0JOKDB4NTBiZWE1NDEsIDB4MDA0Zjc1NzEpLCBU
T0JOKDB4YmFjNjdkMTAsIDB4ZGYxYzk0ZWUpLAotICAgICAgICAgVE9CTigweDI1M2Q3M2ExLCAw
eGI3MjdiYzMxKSwgVE9CTigweGIzZDAxY2YyLCAweDMwNjg2ZTI4KSwKLSAgICAgICAgIFRPQk4o
MHg1MWI3N2IxYiwgMHg1NWZkMGI4YiksIFRPQk4oMHhhMDk5ZDE4MywgMHhmZWVjMzE3MyksCi0g
ICAgICAgICBUT0JOKDB4MjAyYjFmYjcsIDB4NjcwZTcyYjcpLCBUT0JOKDB4YWRjODhiMzMsIDB4
YThlMTYzNWYpLAotICAgICAgICAgVE9CTigweDM0ZTgyMTZhLCAweGY5ODlkOTA1KSwgVE9CTigw
eGMyZTY4ZDIwLCAweDI5YjU4ZDAxKSwKLSAgICAgICAgIFRPQk4oMHgxMWY4MWM5MiwgMHg2ZmU1
NWE5MyksIFRPQk4oMHgxNWYxNDYyYSwgMHg4ZjI5NmY0MCksCi0gICAgICAgICBUT0JOKDB4MTkx
NWQzNzUsIDB4ZWEzZDYyZjIpLCBUT0JOKDB4YTE3NzY1YTMsIDB4MDFjODk3N2QpLAotICAgICAg
ICAgVE9CTigweDc1NTk3MTBhLCAweGU0N2IyNmY2KSwgVE9CTigweGUwYmQyOWM4LCAweDUzNTA3
N2E1KSwKLSAgICAgICAgIFRPQk4oMHg2MTVmOTc2ZCwgMHgwOGQ4NDg1OCksIFRPQk4oMHgzNzBk
ZmU4NSwgMHg2OWNlZDVjMSksCi0gICAgICAgICBUT0JOKDB4YmJjNzUwM2MsIDB4YTczNGZhNTYp
LCBUT0JOKDB4ZmJiOWYxZWMsIDB4OTFhYzQ1NzQpLAotICAgICAgICAgVE9CTigweDk1ZDdlYzUz
LCAweDA2MGRkN2VmKSwgVE9CTigweGVlZjJkYWNkLCAweDZlNjU3OTc5KSwKLSAgICAgICAgIFRP
Qk4oMHg1NDUxMWFmMywgMHhlMmEwODIzNSksIFRPQk4oMHgxZTMyNGFhNCwgMHgxZjRhZWEzZCks
Ci0gICAgICAgICBUT0JOKDB4NTUwZTdlNzEsIDB4ZTZlNjc2NzEpLCBUT0JOKDB4YmNjZDUxOTAs
IDB4YmY1MmZhZjcpLAotICAgICAgICAgVE9CTigweGY4ODBkMzE2LCAweDIyM2NjNjJhKSwgVE9C
TigweDBkNDAyYzdlLCAweDJiMzJlYjVkKSwKLSAgICAgICAgIFRPQk4oMHhhNDBiYzAzOSwgMHgz
MDZhNWEzYiksIFRPQk4oMHg0ZTBhNDFmZCwgMHg5Njc4M2ExYiksCi0gICAgICAgICBUT0JOKDB4
YTFlOGQzOWEsIDB4MDI1M2NkZDQpLCBUT0JOKDB4NjQ4MGJlMjYsIDB4YzczODg2MzgpLAotICAg
ICAgICAgVE9CTigweGVlMzY1ZTFkLCAweDIyODVmMzgyKSwgVE9CTigweDE4OGQ4ZDhmLCAweGVj
MGI1YzM2KSwKLSAgICAgICAgIFRPQk4oMHgzNGVmMWE0OCwgMHgxZjBmNGQ4MiksIFRPQk4oMHgx
YThmNDNlMSwgMHhhNDg3ZDI5YSksCi0gICAgICAgICBUT0JOKDB4ODE2ODIyNmQsIDB4NzdhZWZi
M2EpLCBUT0JOKDB4ZjY5YTc1MWUsIDB4MWU3MmMyNTMpLAotICAgICAgICAgVE9CTigweDhlMDQz
NTlhLCAweGU5NTk0ZGYxKSwgVE9CTigweDQ3NWZmZDdkLCAweGQxNGMwNDY3KSwKLSAgICAgICAg
IFRPQk4oMHhiNWEyYzJiMSwgMHgzODQ0ZTk1YyksIFRPQk4oMHg4NWNhZjY0NywgMHhkZDEyZWY5
NCksCi0gICAgICAgICBUT0JOKDB4MWVjZDJhOWYsIDB4ZjEwNjNkMDApLCBUT0JOKDB4MWRkMmUy
MjksIDB4MjM4NDMzMTEpLAotICAgICAgICAgVE9CTigweDM4ZjBlMDlkLCAweDczZDE3MjQ0KSwg
VE9CTigweDNlZGU3NzQ2LCAweDhmYzY1M2YxKSwKLSAgICAgICAgIFRPQk4oMHhhZTQ0NTlmNSwg
MHhkYzIwZTIxYyksIFRPQk4oMHgwMGRiMmZmYSwgMHg2YTg1OTllYSksCi0gICAgICAgICBUT0JO
KDB4MTE2ODJjMzksIDB4MzBjZmQ5MDUpLCBUT0JOKDB4NDkzNGQwNzQsIDB4YTVjMTEyYTYpLAot
ICAgICAgICAgVE9CTigweGJkZjA2M2M1LCAweDU2OGJmZTk1KSwgVE9CTigweDc3OWE0NDBhLCAw
eDAxNmM0NDFhKSwKLSAgICAgICAgIFRPQk4oMHgwYzIzZjIxOCwgMHg5N2Q2ZmJkYyksIFRPQk4o
MHhkM2E1Y2Q4NywgMHhlMDc3NmFhYyksCi0gICAgICAgICBUT0JOKDB4Y2VlMzdmNzIsIDB4ZDcx
MmU4ZGIpLCBUT0JOKDB4ZmIyOGM3MGQsIDB4MjZmNzRlOGQpLAotICAgICAgICAgVE9CTigweGZm
ZTBjNzI4LCAweGI2MTMwMWEwKSwgVE9CTigweGE2MjgyMTY4LCAweGQzNzI0MzU0KSwKLSAgICAg
ICAgIFRPQk4oMHg3ZmY0Y2IwMCwgMHg3NjhmZmVkYyksIFRPQk4oMHhjNTFiMzA4OCwgMHgwM2Iw
MmRlOSksCi0gICAgICAgICBUT0JOKDB4YTVhODE0N2MsIDB4MzkwMmRkYTUpLCBUT0JOKDB4MzVk
MmY3MDYsIDB4ZmU2OTczYjQpLAotICAgICAgICAgVE9CTigweDVhYzJlZmNmLCAweGMyNTc0NTdl
KSwgVE9CTigweDkzM2Y0OGQ0LCAweDg3MDA2MTFiKSwKLSAgICAgICAgIFRPQk4oMHhjMzY1YWY4
OCwgMHg0OTEyYmViMiksIFRPQk4oMHg3ZjVhNGRlNiwgMHgxNjJlZGY5NCksCi0gICAgICAgICBU
T0JOKDB4YzY0NmJhN2MsIDB4MGMzMmYzNGIpLCBUT0JOKDB4NjMyYzZhZjMsIDB4YjIwOTEwNzQp
LAotICAgICAgICAgVE9CTigweDU4ZDRmMmUzLCAweDc1M2U0M2E5KSwgVE9CTigweDcwZTFkMjE3
LCAweDI0ZDRlMjNmKSwKLSAgICAgICAgIFRPQk4oMHhiMjRiZjcyOSwgMHhhZmVkZTZhNiksIFRP
Qk4oMHg3ZjRhOTRkOCwgMHg3MTBjOGI2MCksCi0gICAgICAgICBUT0JOKDB4YWFkOTBhOTYsIDB4
OGQ0ZmFhNmEpLCBUT0JOKDB4ZDllZDBiMzIsIDB4YjA2NmI2OTApLAotICAgICAgICAgVE9CTigw
eDUyZmNkMzdiLCAweDc4YjZkYmZkKSwgVE9CTigweDBiNjQ2MTVlLCAweDhiZDJiNDMxKSwKLSAg
ICAgICAgIFRPQk4oMHgyMjhlMjA0OCwgMHhjZmI5ZmFkNSksIFRPQk4oMHhiZWFhMzg2ZCwgMHgy
NDBiNzZiZCksCi0gICAgICAgICBUT0JOKDB4MmQ2NjgxYzgsIDB4OTBkYWQ3YmMpLCBUT0JOKDB4
M2U1NTNmYzMsIDB4MDZkMzhmNWUpLAotICAgICAgICAgVE9CTigweGYyN2NkYjliLCAweDlkNWY5
NzUwKSwgVE9CTigweDNlODVjNTJhLCAweGQyOGM1YjBlKSwKLSAgICAgICAgIFRPQk4oMHgxOTA3
OTVhZiwgMHg1MjQ3YzM5YiksIFRPQk4oMHg1NDc4MzFlYiwgMHhiZGRkNjgyOCksCi0gICAgICAg
ICBUT0JOKDB4ZjMyN2EyMjcsIDB4NGE4MmY0MjQpLCBUT0JOKDB4MzY5MTljNzgsIDB4N2U0N2Y4
OWQpLAotICAgICAgICAgVE9CTigweGU0NzgzOTE5LCAweDQzYzczOTJjKSwgVE9CTigweGYxMDFi
OWFhLCAweDIzMTZmZWZlKSwKLSAgICAgICAgIFRPQk4oMHhiY2RjOWU5YywgMHgxYzUwMDlkMiks
IFRPQk4oMHhmYjU1ZWExMywgMHg5Y2QxODM0NSksCi0gICAgICAgICBUT0JOKDB4ZjViNWUyMzEs
IDB4YTNjZTc3YzcpLCBUT0JOKDB4ZGU2YjQ1MjcsIDB4ZDJmMmNiM2QpLAotICAgICAgICAgVE9C
TigweDEwZjZhMzMzLCAweDliYjI2ZjVmKSwgVE9CTigweDFlODVkYjhlLCAweDA0NGQ4NWI2KSwK
LSAgICAgICAgIFRPQk4oMHhjMzY5N2EwOCwgMHg5NDE5N2U1NCksIFRPQk4oMHg2NWUxOGNjMCwg
MHhhN2NiNGVhOCksCi0gICAgICAgICBUT0JOKDB4YTM4YzRmNTAsIDB4YTQ3MWZlNmUpLCBUT0JO
KDB4ZjAzMTc0N2EsIDB4MmYxMzQzOWMpLAotICAgICAgICAgVE9CTigweDUzYzRhNmJhLCAweGMw
MDczMThiKSwgVE9CTigweGE4ZGEzZWU1LCAweDFkZWNjYjNkKSwKLSAgICAgICAgIFRPQk4oMHgw
NTU1YjMxYywgMHg1NTgyMTZiMSksIFRPQk4oMHg5MGM3ODEwYywgMHgyZjc5ZTZjMiksCi0gICAg
ICAgICBUT0JOKDB4OWI2NjlmNGQsIDB4ZmU4ZWVkM2MpLCBUT0JOKDB4NzAzOThlYzgsIDB4ZTBm
YWMxMjYpLAotICAgICAgICAgVE9CTigweGE5NmE0NDllLCAweGY3MDFiMjM1KSwgVE9CTigweDBj
ZWVjZGIzLCAweGViOTRmMzk1KSwKLSAgICAgICAgIFRPQk4oMHgyODVmYzM2OCwgMHhkMGNiNzQz
MSksIFRPQk4oMHgwZDM3YmI1MiwgMHgxNmExOGM2NCksCi0gICAgICAgICBUT0JOKDB4MDUxMTBk
MzgsIDB4Yjg4MGQyZGQpLCBUT0JOKDB4YTYwZjE3N2IsIDB4NjU5MzBkNTcpLAotICAgICAgICAg
VE9CTigweDdkYTM0YTY3LCAweGYzNjIzNWY1KSwgVE9CTigweDQ3ZjVlMTdjLCAweDE4MzgxNmI5
KSwKLSAgICAgICAgIFRPQk4oMHhjNzY2NGI1NywgMHhkYjM5NGFmNCksIFRPQk4oMHgzOWJhMjE1
ZCwgMHg3MDM2Zjc4OSksCi0gICAgICAgICBUT0JOKDB4NDZkMmNhMGUsIDB4MmYyN2I0NzIpLCBU
T0JOKDB4YzQyNjQ3ZWUsIDB4ZjczYTg0YjcpLAotICAgICAgICAgVE9CTigweDQ0YmM3NTQ1LCAw
eDY0NDg4ZjFkKSwgVE9CTigweGFhOTIyNzA4LCAweGY0Y2Y4NWQ1KSwKLSAgICAgICAgIFRPQk4o
MHg3MjFhMDFkNSwgMHg1M2U0ZGY2MyksIFRPQk4oMHg2NDljMGM1MSwgMHg1ZGI0NmNlZCksCi0g
ICAgICAgICBUT0JOKDB4NmJmMGQ2NGUsIDB4M2NmZmNiNmMpLCBUT0JOKDB4ZTNiZjkzZmUsIDB4
NTBmNzFkOTYpLAotICAgICAgICAgVE9CTigweDc1MDQ0NTU4LCAweGJjYzE5NGEwKSwgVE9CTigw
eDE2YWUzMzcyLCAweDZhZmRjNTU0KSwKLSAgICAgICAgIFRPQk4oMHhiZmMwMWFkZiwgMHg1Y2E0
OGYzZiksIFRPQk4oMHg2NDM1MmYwNiwgMHhlMjJhOWI4NCksCi0gICAgICAgICBUT0JOKDB4Y2Vl
NTRkYTEsIDB4YzEwOTllNGEpLCBUT0JOKDB4YmJkYTU0ZTgsIDB4ZmExYjg5YzApLAotICAgICAg
ICAgVE9CTigweDE2NmEzZGY1LCAweDZmNmU1NWZiKSwgVE9CTigweDFjYTQ0YTI0LCAweDIwMTc2
Zjg4KSwKLSAgICAgICAgIFRPQk4oMHg5MzZhZmQ4OCwgMHhkZmI3YjVmZiksIFRPQk4oMHhlMzRj
MjQzNywgMHg4NjExZDRhMCksCi0gICAgICAgICBUT0JOKDB4N2VmZmJiNzUsIDB4ODYxNDIxMDMp
LCBUT0JOKDB4NjcwNGJhMWIsIDB4MWYzNGZjNGQpLAotICAgICAgICAgVE9CTigweDdjMmE0Njhm
LCAweDEwYzFiMTIyKSwgVE9CTigweDM2YjNhNjEwLCAweDhjNmFhY2U5KSwKLSAgICAgICAgIFRP
Qk4oMHhhYmZjYzBhNywgMHg3NWEwZDA1MCksIFRPQk4oMHgwNjZmOTE5NywgMHgzY2UzM2UzMiks
Ci0gICAgICAgICBUT0JOKDB4Y2U5MDVlZjQsIDB4MjlmZTA5YmUpLCBUT0JOKDB4ODllZTI1YmEs
IDB4YTgzNzYzNTEpLAotICAgICAgICAgVE9CTigweDJhM2VkZTIyLCAweGZkMjlkYzc2KSwgVE9C
TigweDdmZDMyZWQ5LCAweDM2ZjE3MjYwKSwKLSAgICAgICAgIFRPQk4oMHgwY2FkY2Y2OCwgMHgy
ODRiNDEyNiksIFRPQk4oMHg2MzQyMmYwOCwgMHhhNzk1MWZjOCksCi0gICAgICAgICBUT0JOKDB4
NTYyYjI0ZjQsIDB4MDgwN2UxOTkpLCBUT0JOKDB4ZmU5Y2U1ZDEsIDB4MjJhZDQ0OTApLAotICAg
ICAgICAgVE9CTigweGMyZjUxYjEwLCAweDBkYjJiMWI0KSwgVE9CTigweGViMzYxM2ZmLCAweGU0
NTQxZDBkKSwKLSAgICAgICAgIFRPQk4oMHhiZDJjNGEwNSwgMHgyNjgwODEzYiksIFRPQk4oMHg1
MjdhYTU1ZCwgMHg1NjFiMDhkNiksCi0gICAgICAgICBUT0JOKDB4YTlmOGE0MGUsIDB4YTcyMDU1
NTgpLCBUT0JOKDB4ZTNlZWE1NmYsIDB4MjQzZDBiZWMpLAotICAgICAgICAgVE9CTigweDdiODUz
ODE3LCAweGEwZmY1OGIzKSwgVE9CTigweGI2N2QzZjY1LCAweDFhNjllNjI3KSwKLSAgICAgICAg
IFRPQk4oMHgwYjc2YmJiOSwgMHhhODY5YjVkNiksIFRPQk4oMHhhM2FmZWI4MiwgMHg1NDY3MjNl
ZCksCi0gICAgICAgICBUT0JOKDB4NWYyNDQxNmQsIDB4M2U1NTQ4OTIpLCBUT0JOKDB4ODQxM2I1
M2QsIDB4NDMwZTJhNDUpLAotICAgICAgICAgVE9CTigweDk5YzU2YWVlLCAweDkwMzJhMmEwKSwg
VE9CTigweDA5NDMyYmY2LCAweGVlYzM2N2IxKSwKLSAgICAgICAgIFRPQk4oMHg1NTI4NTBjNiwg
MHhkYWYwZWNjMSksIFRPQk4oMHg0OWViY2U1NSwgMHg1YmM5MjA0OCksCi0gICAgICAgICBUT0JO
KDB4ZGZiNjZiYTYsIDB4NTQ4MTEzMDcpLCBUT0JOKDB4MWI4NGY3OTcsIDB4NmYyOTg1OTcpLAot
ICAgICAgICAgVE9CTigweDc5NTkwNDgxLCAweDhkMWQ3YTBkKSwgVE9CTigweGQ5ZmFiZTAzLCAw
eDNhNmZhNTU2KSwKLSAgICAgICAgIFRPQk4oMHhhNDBmOWM1OSwgMHhiYTllNWQzNSksIFRPQk4o
MHhjYjE3NzFjMSwgMHhmNjI0NzU3NyksCi0gICAgICAgICBUT0JOKDB4NTQyYTQ3Y2EsIDB4ZTlh
NjMxMmIpLCBUT0JOKDB4YTM0YjM1NjAsIDB4NTUyZGQ4YzUpLAotICAgICAgICAgVE9CTigweGZk
Zjk0ZGUwLCAweDBkNzk0NzE2KSwgVE9CTigweGQ0NjEyNGE5LCAweDljNjIzMDk0KSwKLSAgICAg
ICAgIFRPQk4oMHg1NmI3NDM1ZCwgMHg2OGFmZThiNCksIFRPQk4oMHgyN2YyMDU0MCwgMHg2YzBk
OGVhMSksCi0gICAgICAgICBUT0JOKDB4MTJiNzdlMTQsIDB4NzMxODY4OTgpLCBUT0JOKDB4ZGJj
M2RkNDYsIDB4NzQ3OTQ5MGYpLAotICAgICAgICAgVE9CTigweDk1MWE5ODQyLCAweGMwM2IwYzA1
KSwgVE9CTigweDhiMWIzYmIzLCAweDc5MjFiYzk2KSwKLSAgICAgICAgIFRPQk4oMHhhNTczYjM0
NiwgMHgyYjIwMmUwYSksIFRPQk4oMHg3N2U0NjY1ZCwgMHg0NzI1NGQ1NiksCi0gICAgICAgICBU
T0JOKDB4MDhiNzBkZmMsIDB4ZDIzZTM5ODQpLCBUT0JOKDB4YWI4NmU4YmMsIDB4ZWJkMTQyMzYp
LAotICAgICAgICAgVE9CTigweGFhM2UwN2Y4LCAweDU3MTE0YmE3KSwgVE9CTigweDVhYzcxNjg5
LCAweGFiMGVmNGYyKSwKLSAgICAgICAgIFRPQk4oMHg4OGZjYTM4NCwgMHgwMTM5ZDlhZiksIFRP
Qk4oMHg3MjczM2Y4OCwgMHg3NjY0NGFmMCksCi0gICAgICAgICBUT0JOKDB4ZjEyMmY3MmEsIDB4
NjVkNzRmNGEpLCBUT0JOKDB4MTM5MzE1NzcsIDB4YTU2MjZjN2EpLAotICAgICAgICAgVE9CTigw
eGQ1YjVkOWViLCAweDcwZjhkNWE0KSwgVE9CTigweDM3NWFkZGU3LCAweGQ3YmJiMjI4KSwKLSAg
ICAgICAgIFRPQk4oMHgzMWU4OGI4NiwgMHgwYzFjMGIzMiksIFRPQk4oMHhkMWY1NjhjNCwgMHgx
NzNlZGJhYSksCi0gICAgICAgICBUT0JOKDB4MTU5MmZjODMsIDB4NTQ1OWRmMDIpLCBUT0JOKDB4
MmJlYWMwZmIsIDB4MGZjZDlhN2UpLAotICAgICAgICAgVE9CTigweGIwYTZmZGI4LCAweDFiNDcz
YjBhKSwgVE9CTigweGUzMjI0YzZmLCAweDBmZThmYzQ4KSwKLSAgICAgICAgIFRPQk4oMHg2ODBi
ZDAwZSwgMHhlODdlZGY1YiksIFRPQk4oMHgzMDM4NWYwMiwgMHgyMGU3N2NmNSksCi0gICAgICAg
ICBUT0JOKDB4ZTlhYjk4YzAsIDB4NGQ0MmQxYjIpLCBUT0JOKDB4NzJkMTkxZDIsIDB4ZDM4MTZk
NzcpLAotICAgICAgICAgVE9CTigweDE1NjRkYWNhLCAweDA5MTdkOWU1KSwgVE9CTigweDM5NGVh
YjU5LCAweDFmOGZlZDdmKSwKLSAgICAgICAgIFRPQk4oMHhhMjA5YWE4ZCwgMHg3ZmJiMzg5Niks
IFRPQk4oMHg1NTY0ZjNiOSwgMHhiZTZhYzk4ZSksCi0gICAgICAgICBUT0JOKDB4ZWFkMjFkMDUs
IDB4ZDczNjU0ZWYpLCBUT0JOKDB4NjhkMWE5YzQsIDB4MTNkNzhkNzQpLAotICAgICAgICAgVE9C
TigweDYxZTAxNzA4LCAweDZkNDk3M2EwKSwgVE9CTigweDgzZGEzNTAwLCAweDQ2ZTZkMzJhKSwK
LSAgICAgICAgIFRPQk4oMHg2YTNkZmNhNCwgMHg2OGFlMDExOCksIFRPQk4oMHhhMWI5YTRjOSwg
MHhkMDJkYTA2OSksCi0gICAgICAgICBUT0JOKDB4MGIyZmY5YzcsIDB4ZWJhYjgzMDIpLCBUT0JO
KDB4OThhZjA3YzMsIDB4OTQ0YmE0MzYpLAotICAgICAgICAgVE9CTigweDg1OTk3MzI2LCAweDk5
NWYwZjlmKSwgVE9CTigweDQ2N2ZhZGUwLCAweDcxYjU4YmM2KSwKLSAgICAgICAgIFRPQk4oMHg0
N2U0NDk1YSwgMHhiZDYyNWEyYiksIFRPQk4oMHhmZGQyZDAxZCwgMHgzM2MzYjhjZCksCi0gICAg
ICAgICBUT0JOKDB4MmMzOGFlMjgsIDB4YzY5M2Y5ZmEpLCBUT0JOKDB4NDg2MjIzMjksIDB4MzQ4
Zjc5OTkpLAotICAgICAgICAgVE9CTigweDk3YmY3MzhlLCAweDIxNjFmNTgzKSwgVE9CTigweDE1
ZWUyZmE3LCAweDU2NWU4Y2M5KSwKLSAgICAgICAgIFRPQk4oMHhhMWE1Yzg0NSwgMHg1Nzc3ZTE4
OSksIFRPQk4oMHhjYzEwYmVlMCwgMHg0NTZmMjgyOSksCi0gICAgICAgICBUT0JOKDB4OGFkOTVj
NTYsIDB4ZGE3NjJiZDUpLCBUT0JOKDB4MTUyZTIyMTQsIDB4ZTlkOTFkYTgpLAotICAgICAgICAg
VE9CTigweDk3NWIwZTcyLCAweDdjYjIzYzc0KSwgVE9CTigweGZkNWQ3NjcwLCAweGE5MGM2NmRm
KSwKLSAgICAgICAgIFRPQk4oMHhiNWI1YjhhZCwgMHgyMjVmZmM1MyksIFRPQk4oMHhhYjZkZmY3
MywgMHhmYWRlZDJhZSksCi0gICAgICAgICBUT0JOKDB4ZWJkNTY3ODEsIDB4NmY0Y2JlOWQpLCBU
T0JOKDB4MGVkOGIyNDksIDB4NmE1NzRiZDcpLAotICAgICAgICAgVE9CTigweDQxYzI0NmZlLCAw
eDgxYTg4MWZhKSwgVE9CTigweDkxNTY0ODA1LCAweGMzZGI5YzcwKSwKLSAgICAgICAgIFRPQk4o
MHhkN2MxMmIwOCwgMHg1Yjg2MjgwOSksIFRPQk4oMHgxZmFjZDFmMSwgMHg1NTg1OGQ3YiksCi0g
ICAgICAgICBUT0JOKDB4NzY5Mzc0N2MsIDB4YWYwOWU5MmEpLCBUT0JOKDB4M2I2OWRjYmEsIDB4
MTg5YTQyNWYpLAotICAgICAgICAgVE9CTigweDBiZTI4ZTlmLCAweDk2NzM2NWVmKSwgVE9CTigw
eDU3MzAwZWIyLCAweGU4MDFmNWM5KSwKLSAgICAgICAgIFRPQk4oMHg5M2I4YWM2YSwgMHhkNTgz
MzUyZiksIFRPQk4oMHhhMmNmMWY4OSwgMHhjZDA1YjJiNyksCi0gICAgICAgICBUT0JOKDB4N2Mw
YzliNzQsIDB4NGRjYzQwY2MpLCBUT0JOKDB4ZmVlMzhjNDUsIDB4YWRhNTIzZmIpLAotICAgICAg
ICAgVE9CTigweGI0OWE0ZGVjLCAweDEwOTljYzRkKSwgVE9CTigweDMyNWMzNzdmLCAweDY5ZjA2
OWM2KSwKLSAgICAgICAgIFRPQk4oMHhlMTI0NThjZSwgMHg0NzZjYzlmZiksIFRPQk4oMHg1ODBl
MGI2YywgMHhjNmQ0Y2I2MyksCi0gICAgICAgICBUT0JOKDB4ZDU2MWM4YjcsIDB4OTA3MjI4OWIp
LCBUT0JOKDB4MDM3N2YyNjQsIDB4YTYxOWU2ZGEpLAotICAgICAgICAgVE9CTigweDI2Njg1MzYy
LCAweDg4ZTU5MWE1KSwgVE9CTigweGE0NTNhN2JkLCAweDc1MjNjYTJiKSwKLSAgICAgICAgIFRP
Qk4oMHg4YTk1MzZkMiwgMHhjMWRmNDUzMyksIFRPQk4oMHhjOGU1MGYyZiwgMHhiZTk3MmY3OSks
Ci0gICAgICAgICBUT0JOKDB4ZDQzM2U1MGYsIDB4NmQzNTQ5Y2YpLCBUT0JOKDB4NmYzMzY5NmYs
IDB4ZmFjZDY2NWUpLAotICAgICAgICAgVE9CTigweDY5NWJmZGFjLCAweGNlMTFmY2I0KSwgVE9C
TigweDgxMGVlMjUyLCAweGFmN2M5ODYwKSwKLSAgICAgICAgIFRPQk4oMHg2NTQ1MGZlMSwgMHg3
MTU5YmIyYyksIFRPQk4oMHhmN2RmYmViZSwgMHg3NThiMzU3YiksCi0gICAgICAgICBUT0JOKDB4
MmIwNTdlNzQsIDB4ZDY5ZmVhNzIpLCBUT0JOKDB4ZDQ4NTcxN2EsIDB4OTI3MzE3NDUpfSwKLSAg
ICAgICAge1RPQk4oMHg4OTZjNDJlOCwgMHhlZTM2ODYwYyksIFRPQk4oMHhkYWYwNGRmZCwgMHg0
MTEzYzIyZCksCi0gICAgICAgICBUT0JOKDB4MWFkYmI3YjcsIDB4NDQxMDQyMTMpLCBUT0JOKDB4
ZTVmZDVmYTEsIDB4MWZkMzk0ZWEpLAotICAgICAgICAgVE9CTigweDY4MjM1ZDk0LCAweDFhNGUw
NTUxKSwgVE9CTigweDY3NzJjZmJlLCAweDE4ZDEwMTUxKSwKLSAgICAgICAgIFRPQk4oMHgyNzYw
NzFlMywgMHgwOTk4NDUyMyksIFRPQk4oMHhlNGU4NzlkZSwgMHg1YTU2YmE5OCksCi0gICAgICAg
ICBUT0JOKDB4YWFhZmFmYjAsIDB4Mjg1Yjk0OTEpLCBUT0JOKDB4MDFhMGJlODgsIDB4MWU0Yzcw
NWUpLAotICAgICAgICAgVE9CTigweGZmMWQ0ZjVkLCAweDJhZDljYWFiKSwgVE9CTigweDZlMzQ5
YTRhLCAweGMzN2EyMzNmKSwKLSAgICAgICAgIFRPQk4oMHhjZjFjMTI0NiwgMHg0YTFjNmExNiks
IFRPQk4oMHhkOTllNmI2NiwgMHgyOTM4MzI2MCksCi0gICAgICAgICBUT0JOKDB4ZWEzZDQzNjYs
IDB4NWY2ZDU0NzEpLCBUT0JOKDB4MzY5NzRkMDQsIDB4ZmY4Y2M4OWIpLAotICAgICAgICAgVE9C
TigweGMyNmM0OWExLCAweGNmZTg5ZDgwKSwgVE9CTigweGI0MmMwMjZkLCAweGRhOWM4MzcxKSwK
LSAgICAgICAgIFRPQk4oMHhjYTZjMDEzYSwgMHhkYWQwNjZkMiksIFRPQk4oMHhmYjhmNzIyOCwg
MHg1NmE0ZjNlZSksCi0gICAgICAgICBUT0JOKDB4MDhiNTc5ZWMsIDB4ZDg1MDkzNWIpLCBUT0JO
KDB4MzRjMWE3NGMsIDB4ZDYzMWUxYjMpLAotICAgICAgICAgVE9CTigweGNiNWZlNTk2LCAweGFj
MTk4NTM0KSwgVE9CTigweDM5ZmYyMWY2LCAweGUxZjI0ZjI1KSwKLSAgICAgICAgIFRPQk4oMHgy
N2YyOWUxNCwgMHg4ZjkyOTA1NyksIFRPQk4oMHg3YTY0YWUwNiwgMHhjMGM4NTNkZiksCi0gICAg
ICAgICBUT0JOKDB4MjU2Y2QxODMsIDB4NThlOWM1Y2UpLCBUT0JOKDB4OWQ5Y2NlODIsIDB4ZGVk
MDkyYTUpLAotICAgICAgICAgVE9CTigweGNjNmU1OTc5LCAweDZlOTNiN2M3KSwgVE9CTigweGUx
ZTQ3MDkyLCAweDMxYmI5ZTI3KSwKLSAgICAgICAgIFRPQk4oMHhiNzBiMzA4MywgMHhhYTllMjlh
MCksIFRPQk4oMHhiZjE4MWE3NSwgMHgzNzg1ZTY0NCksCi0gICAgICAgICBUT0JOKDB4ZjUzZjJj
NjUsIDB4OGVhZDA5ZjcpLCBUT0JOKDB4MTMzNWUxZDUsIDB4OTc4MGQxNGQpLAotICAgICAgICAg
VE9CTigweDY5Y2MyMGUwLCAweGNkMWI2NmJjKSwgVE9CTigweDliNjcwYTM3LCAweGJiZTBiZmM4
KSwKLSAgICAgICAgIFRPQk4oMHhjZTUzZGM4MSwgMHgyOGVmYmVlZCksIFRPQk4oMHgwYzc0ZTc3
YywgMHg4MzI2YTZlNSksCi0gICAgICAgICBUT0JOKDB4MzYwNGUwZDIsIDB4Yjg4ZTlhNjMpLCBU
T0JOKDB4YmFiMzhmY2EsIDB4MTNkYzIyNDgpLAotICAgICAgICAgVE9CTigweDhlZDZlOGM4LCAw
eDVjMGEzZjFlKSwgVE9CTigweGJjYWQyNDkyLCAweDdjODdjMzdmKSwKLSAgICAgICAgIFRPQk4o
MHhmZGZiNjJiYiwgMHg5ZWUzYjc4ZCksIFRPQk4oMHhlYmE4ZTQ3NywgMHhjYmNlYmE0NiksCi0g
ICAgICAgICBUT0JOKDB4MzdkMzhjYjAsIDB4ZWVhZWRlNGIpLCBUT0JOKDB4MGJjNDk4ZTgsIDB4
Nzk3NmRlYjYpLAotICAgICAgICAgVE9CTigweGIyOTQ0YzA0LCAweDZiNjE0N2ZiKSwgVE9CTigw
eDhiMTIzZjM1LCAweGY3MWY5NjA5KSwKLSAgICAgICAgIFRPQk4oMHhhMTU1ZGNjNywgMHhkZTc5
ZGMyNCksIFRPQk4oMHhmMTE2OGEzMiwgMHg1NThmNjljZCksCi0gICAgICAgICBUT0JOKDB4YmFj
MjE1OTUsIDB4MGQxODUwZGYpLCBUT0JOKDB4MTVjODI5NWIsIDB4YjIwNGM4NDgpLAotICAgICAg
ICAgVE9CTigweGY2NjFhYTM2LCAweDdkODE4NGZmKSwgVE9CTigweGMzOTYyMjhlLCAweDMwNDQ3
YmRiKSwKLSAgICAgICAgIFRPQk4oMHgxMWNkNTE0MywgMHhiZGU0YTU5ZSksIFRPQk4oMHhlM2Ey
NmUzYiwgMHg2YmVhYjVlNiksCi0gICAgICAgICBUT0JOKDB4ZDNiM2ExM2YsIDB4MTQwMmI5ZDAp
LCBUT0JOKDB4NTczNDQxYzMsIDB4MmM3YmM4NjMpLAotICAgICAgICAgVE9CTigweDRiMzAxZWM0
LCAweDU3OGMzZTZlKSwgVE9CTigweGMyNmZjOWM0LCAweDBhZGFmNTdlKSwKLSAgICAgICAgIFRP
Qk4oMHg5NmU3MWJmZCwgMHg3NDkzY2VhMyksIFRPQk4oMHhkMDVkNGIzZiwgMHgxYWY4MTQ1Niks
Ci0gICAgICAgICBUT0JOKDB4ZGFjYTJhOGEsIDB4NmE4YzYwOGYpLCBUT0JOKDB4NTNlZjA3ZjYs
IDB4MDcyNWIyNzYpLAotICAgICAgICAgVE9CTigweDA3YTVmYmQyLCAweDc4MjRmYzU2KSwgVE9C
TigweDM0Njc1MjE4LCAweDEzMjg5MDc3KSwKLSAgICAgICAgIFRPQk4oMHg1YmY2OWZkNSwgMHhl
MGM0ODM0OSksIFRPQk4oMHhhNjEzZGRkMywgMHhiNmFhNzg3NSksCi0gICAgICAgICBUT0JOKDB4
N2Y3OGMxOWMsIDB4NTQ1MGQ4NjYpLCBUT0JOKDB4NDZmNDQwOWMsIDB4OGY4NGE0ODEpLAotICAg
ICAgICAgVE9CTigweDlmMWQxOTI4LCAweDkwZmNlMjM5KSwgVE9CTigweDAxNmM0MTY4LCAweGIy
Y2U0NGI5KSwKLSAgICAgICAgIFRPQk4oMHhiYWUwMjNmMCwgMHhjNzQzNTk3OCksIFRPQk4oMHhi
MTUyYzg4OCwgMHgyMGUzMGUxOSksCi0gICAgICAgICBUT0JOKDB4OWMyNDE2NDUsIDB4ZTNmYTZm
YWYpLCBUT0JOKDB4NzM1ZDk1YzEsIDB4ODQ4MjNlNjApLAotICAgICAgICAgVE9CTigweDAzMTk3
NTczLCAweDAzOTU1MzE3KSwgVE9CTigweDBiNGIwMmE5LCAweGYwM2I0OTk1KSwKLSAgICAgICAg
IFRPQk4oMHgwNzZiZjU1OSwgMHg3MDI3NDYwMCksIFRPQk4oMHgzMmM1Y2M1MywgMHhhYWY1NzUw
OCksCi0gICAgICAgICBUT0JOKDB4ZThhZjZkMWYsIDB4NjA2MjQxMjkpLCBUT0JOKDB4YjdiYzVk
NjQsIDB4OWE1ZTJiNWUpLAotICAgICAgICAgVE9CTigweDM4MTRiMDQ4LCAweDVmMDgyZDcyKSwg
VE9CTigweDc2ZjI2N2YyLCAweGNlMTk2NzdhKSwKLSAgICAgICAgIFRPQk4oMHg2MjZjNjMwZiwg
MHhiMzZlZWQ5MyksIFRPQk4oMHg1NTIzMGNkNywgMHgzYmY1NjgwMyksCi0gICAgICAgICBUT0JO
KDB4Nzg4Mzc5NDksIDB4Y2UyNzM2YTApLCBUT0JOKDB4MGQ3OTJkNjAsIDB4YWE2YzU1ZjEpLAot
ICAgICAgICAgVE9CTigweDAzMThkYmZkLCAweGQ1YzdjNWQyKSwgVE9CTigweGIzOGY4ZGE3LCAw
eDA3MmIzNDJkKSwKLSAgICAgICAgIFRPQk4oMHgzNTY5YmRkYywgMHg3YjhkZTM4YSksIFRPQk4o
MHhmMjViNTg4NywgMHhhMWM5NDg0MiksCi0gICAgICAgICBUT0JOKDB4YjJkNWIyODQsIDB4Mjk0
NmFkNjApLCBUT0JOKDB4ODU0ZjI5YWQsIDB4ZTlkMTcwN2UpLAotICAgICAgICAgVE9CTigweGFh
NTE1OWRjLCAweDJjNmE0NTA5KSwgVE9CTigweDg5OWY5NGMwLCAweDU3MTg5ODM3KSwKLSAgICAg
ICAgIFRPQk4oMHhjZjZhZGM1MSwgMHhmNGE1NWIwMyksIFRPQk4oMHgyNjE3NjJkZSwgMHgzNWUz
YjJkNSksCi0gICAgICAgICBUT0JOKDB4NGNjNDMwMTIsIDB4MDQ4MjdiNTEpLCBUT0JOKDB4Y2Qy
MmExMTMsIDB4YzYwMjE0NDIpLAotICAgICAgICAgVE9CTigweGNlMmZkNjFhLCAweDI0N2M5NTY5
KSwgVE9CTigweDU5YTUwOTczLCAweGQxNTJiZWNhKSwKLSAgICAgICAgIFRPQk4oMHg2YzgzNWEx
MSwgMHg2M2E3MTZkNCksIFRPQk4oMHhjMjY0NTVlZCwgMHgxODdkZWRjZiksCi0gICAgICAgICBU
T0JOKDB4MjdmNTM2ZTAsIDB4NDljZTg5ZTcpLCBUT0JOKDB4MTg5MDg1MzksIDB4Y2M4OTBjYjUp
LAotICAgICAgICAgVE9CTigweDMwODkwOWFiLCAweGQ4M2MyYWExKSwgVE9CTigweGVjZDMxNDJi
LCAweDFhYjczYmQzKSwKLSAgICAgICAgIFRPQk4oMHg2YTg1YmY1OSwgMHhiM2Y1YWI4NCksIFRP
Qk4oMHgzYzMyMGE2OCwgMHhmMmJlYTRjNiksCi0gICAgICAgICBUT0JOKDB4YWQ4ZGM1MzgsIDB4
NmRhNDU0MWYpLCBUT0JOKDB4ZWFmMzRlYjAsIDB4YjdjNDExODYpLAotICAgICAgICAgVE9CTigw
eDFjNzgwMTI5LCAweDk3N2M5N2M0KSwgVE9CTigweDVmZjliZWViLCAweGM1N2ViOWZhKSwKLSAg
ICAgICAgIFRPQk4oMHhhMjRkMDUyNCwgMHhjODIyYzQ3OCksIFRPQk4oMHhmZDhlZWMyYSwgMHg0
NjFjZDQxNSksCi0gICAgICAgICBUT0JOKDB4ZmJkZTE5NGUsIDB4ZjAyNzQ1OGMpLCBUT0JOKDB4
YjRmZjUzMTksIDB4MWQxYmUxMTUpLAotICAgICAgICAgVE9CTigweDYzZjg3NGQ5LCAweDQ4NjZk
NmY0KSwgVE9CTigweDM1Yzc1MDE1LCAweGIyMWFkMGM5KSwKLSAgICAgICAgIFRPQk4oMHhhNmI1
YzlkNiwgMHg0NmFjNDlkMiksIFRPQk4oMHg0MmM3N2MwYiwgMHg4MzEzN2FhOSksCi0gICAgICAg
ICBUT0JOKDB4MjRkMDAwZmMsIDB4NjgyMjVhMzgpLCBUT0JOKDB4MGY2M2NmYzgsIDB4MmZlMWU5
MDcpLAotICAgICAgICAgVE9CTigweDIyZDFiMDFiLCAweGM2NDQxZjk1KSwgVE9CTigweDdkMzhm
NzE5LCAweGVjOGU0NDhmKSwKLSAgICAgICAgIFRPQk4oMHg5YjMzZmE1ZiwgMHg3ODdmYjFiYSks
IFRPQk4oMHg5NGRjZmRhMSwgMHgxOTAxNThkZiksCi0gICAgICAgICBUT0JOKDB4YzQ3Y2IzMzks
IDB4NWY2ZDRhMDkpLCBUT0JOKDB4NmI0ZjM1NWMsIDB4ZWU1MmI4MjYpLAotICAgICAgICAgVE9C
TigweDNkMTAwZjVkLCAweGY1MWI5MzBhKSwgVE9CTigweGY0NTEyZmFjLCAweDlmNjY4ZjY5KSwK
LSAgICAgICAgIFRPQk4oMHg1NDY3ODFkNSwgMHgyMDZjNGM3NCksIFRPQk4oMHhkMDIxZDRkNCwg
MHhjYjRkMmU0OCksCi0gICAgICAgICBUT0JOKDB4NDk0YTU0YzIsIDB4Y2EwODVjMmQpLCBUT0JO
KDB4ZjFkYmFjYTQsIDB4NTIwODUwYTgpLAotICAgICAgICAgVE9CTigweDYzYzc5MzI2LCAweDQ5
MGExYWNhKSwgVE9CTigweGNiNjRkZDljLCAweDQxNTI2YjAyKSwKLSAgICAgICAgIFRPQk4oMHhi
Yjc3MjU5MSwgMHhhMjk3OTI1OCksIFRPQk4oMHgzZjU4Mjk3MCwgMHg0OGQ5Nzg0NiksCi0gICAg
ICAgICBUT0JOKDB4ZDY2YjcwZDEsIDB4N2MyMTNiYTcpLCBUT0JOKDB4YzI4ZmViYjUsIDB4ZThh
MGNlZDQpLAotICAgICAgICAgVE9CTigweDZiOTExODMxLCAweGMxMDMzOGMxKSwgVE9CTigweDBk
NTRlMzg5LCAweGJmMDEyNmYzKSwKLSAgICAgICAgIFRPQk4oMHg3MDQ4ZDQ2MCwgMHg0YWYyMDZl
ZSksIFRPQk4oMHg3ODZjODhmNiwgMHg3N2U5N2NiOSksCi0gICAgICAgICBUT0JOKDB4ZDQzNzVh
ZTEsIDB4YWM2NDgwMmUpLCBUT0JOKDB4NDY5YmNmZTEsIDB4ZDUzZWMxMWMpLAotICAgICAgICAg
VE9CTigweGZjOWIzNDBkLCAweDQ3MDYyMjMwKSwgVE9CTigweGU3NDNiYjU3LCAweGM1YjRhM2Fj
KSwKLSAgICAgICAgIFRPQk4oMHhmZTAwYjRhYSwgMHg1OWVmNDVhYyksIFRPQk4oMHgyOWE0ZWYy
MywgMHg1OWVkZjE4OCksCi0gICAgICAgICBUT0JOKDB4NDAyNDJlZmUsIDB4YjQ4MzY4OWIpLCBU
T0JOKDB4MjU3NWQzZjYsIDB4NTEzYWMyNjIpLAotICAgICAgICAgVE9CTigweGYzMDAzN2M4LCAw
eDBjYTZkYjcyKSwgVE9CTigweGM5ZmNjZTgyLCAweDk4ODY0YmUyKSwKLSAgICAgICAgIFRPQk4o
MHg4NGExMTJmZiwgMHgwMTQ5MzYyZCksIFRPQk4oMHg5NWU1NzU4MiwgMHgxYzRhZTk3MSksCi0g
ICAgICAgICBUT0JOKDB4MWZhNGIxYTgsIDB4OTQ1Y2Y4NmMpLCBUT0JOKDB4NDUyNWE3MzQsIDB4
MGIwMjRhMmYpLAotICAgICAgICAgVE9CTigweGU3NmM4YjYyLCAweDhmMzM4MzYwKSwgVE9CTigw
eDQ4M2ZmNTkzLCAweDI4ZWRmMzJiKSwKLSAgICAgICAgIFRPQk4oMHg2N2U4ZTkwYSwgMHgyOThi
MWFlYyksIFRPQk4oMHg5Y2FhYjMzOCwgMHg3MzZkOWEyMSksCi0gICAgICAgICBUT0JOKDB4NWMw
OWQyZmQsIDB4NjY4OTI3MDkpLCBUT0JOKDB4MjQ5NmI0ZGMsIDB4YjU1YTFkNDEpLAotICAgICAg
ICAgVE9CTigweDkzZjVmYjFhLCAweGUyNGE0Mzk0KSwgVE9CTigweDA4Yzc1MDQ5LCAweDZmYThm
NmMxKSwKLSAgICAgICAgIFRPQk4oMHhjYWVhZDFjMiwgMHhjOTA1ZDg1ZiksIFRPQk4oMHhlOWQ3
Zjc5MCwgMHgwNzMzYWU1NyksCi0gICAgICAgICBUT0JOKDB4MjRjOWE2NWMsIDB4ZjA3Y2RkOTQp
LCBUT0JOKDB4NzM4OTM1OWMsIDB4YTRiNTU5MzEpLAotICAgICAgICAgVE9CTigweGY1ODcwOWI3
LCAweDM2N2U0NWY3KSwgVE9CTigweDFmMjAzMDY3LCAweGNiN2U3YWRjKSwKLSAgICAgICAgIFRP
Qk4oMHg4MjQ0NGJmZiwgMHhjN2I3MjgxOCksIFRPQk4oMHgwNzMwM2IzNSwgMHhiYWFjODAzMyks
Ci0gICAgICAgICBUT0JOKDB4MWUxZWU0ZTQsIDB4ZDEzYjdlYTEpLCBUT0JOKDB4ZTY0ODliMjQs
IDB4ZTBlNzQxODApLAotICAgICAgICAgVE9CTigweGE1ZjJjNjEwLCAweDdlNzBlZjcwKSwgVE9C
TigweGExNjU1NDEyLCAweGJkZDEwODk0KSwKLSAgICAgICAgIFRPQk4oMHg1NTVlYmVmYiwgMHg3
YWY0MTk0ZSksIFRPQk4oMHg1MzNjMWMzYywgMHg4ZTg5YmQ5YyksCi0gICAgICAgICBUT0JOKDB4
NzM1YjliNTcsIDB4ODk4OTU4NTYpLCBUT0JOKDB4MTVmYjNjZDIsIDB4NTY3ZjVjMTUpLAotICAg
ICAgICAgVE9CTigweDA1N2ZlZDQ1LCAweDUyNmYwOWZkKSwgVE9CTigweGU4YTRmMTBjLCAweDgx
MjgyNDBhKSwKLSAgICAgICAgIFRPQk4oMHg5MzMyZWZjNCwgMHhmZjJiZmQ4ZCksIFRPQk4oMHgy
MTRlNzdhMCwgMHhiZDM1YWEzMSksCi0gICAgICAgICBUT0JOKDB4MzI4OTZkNzMsIDB4MTRmYWE0
MGUpLCBUT0JOKDB4NzY3ODY3ZWMsIDB4MDFlNWYxODYpLAotICAgICAgICAgVE9CTigweGM5YWRm
OGYxLCAweDE3YTE4MTNlKSwgVE9CTigweGNiNmNkYTc4LCAweDU0NzQxNzk1KSwKLSAgICAgICAg
IFRPQk4oMHhiNzUyMWI2ZCwgMHgzNDlkNTFhYSksIFRPQk4oMHhmNTZiNWE5ZSwgMHhlM2M3Yjhl
OSksCi0gICAgICAgICBUT0JOKDB4YzZmMWU1YzksIDB4MzJhMDk2ZGYpLCBUT0JOKDB4MDgzNjY3
YzQsIDB4YTM2MzUwMjQpLAotICAgICAgICAgVE9CTigweDM2NWVhMTM1LCAweDE4MDg3ZjJmKSwg
VE9CTigweGYxYjhlYWFjLCAweGQxMzZlNDVkKSwKLSAgICAgICAgIFRPQk4oMHhjOGEwZTQ4NCwg
MHg3M2FlYzk4OSksIFRPQk4oMHhkNzVhMzI0YiwgMHgxNDJjOTI1OSksCi0gICAgICAgICBUT0JO
KDB4YjdiNGQwMDEsIDB4MDFkYWUxODUpLCBUT0JOKDB4NDU0MzRlMGIsIDB4OWI3YTk0YmMpLAot
ICAgICAgICAgVE9CTigweGY1NDMzOWFmLCAweGZiZDhjYjBiKSwgVE9CTigweGRjYzQ1NjllLCAw
eGU5OGVmNDllKSwKLSAgICAgICAgIFRPQk4oMHg3Nzg5MzE4YSwgMHgwOWE1MTI5OSksIFRPQk4o
MHg4MWI0ZDIwNiwgMHhiMmIwMjVkOCksCi0gICAgICAgICBUT0JOKDB4ZjY0YWE0MTgsIDB4ZmFl
ODU3OTIpLCBUT0JOKDB4M2U1MDI1OGYsIDB4YWNkN2JhZjcpLAotICAgICAgICAgVE9CTigweGRj
ZTg0Y2RiLCAweDI5OTY4NjRiKSwgVE9CTigweGEyZTY3MDg5LCAweDFmNDg1ZmE0KSwKLSAgICAg
ICAgIFRPQk4oMHhiMjhiMmJiNiwgMHg1MzRjNmE1YSksIFRPQk4oMHgzMWE3ZWM2YiwgMHhjOTRi
OWQzOSksCi0gICAgICAgICBUT0JOKDB4MWQyMTc3NjYsIDB4ZDZiYzIwZGEpLCBUT0JOKDB4NGFj
ZGI1ZWMsIDB4ODY3NjExOTApLAotICAgICAgICAgVE9CTigweDY4NzI2MzI4LCAweDczNzAxMDYz
KSwgVE9CTigweDRkMjRlZTdjLCAweDIxMjhjMjliKSwKLSAgICAgICAgIFRPQk4oMHhjMDcyZWJk
MywgMHhhMTlmZDg2OCksIFRPQk4oMHg2MTJlNDgxYywgMHhkYjhkZGQzYiksCi0gICAgICAgICBU
T0JOKDB4YjRlMWQ3NTQsIDB4MWE2NGQ4NTIpLCBUT0JOKDB4MDBlZjk1YWMsIDB4YzRjNmM0YWIp
LAotICAgICAgICAgVE9CTigweDE1MzZkMmVkLCAweGFhMGE2YzQ2KSwgVE9CTigweDYxMjk0MDg2
LCAweDQzNzc0NzkwKSwKLSAgICAgICAgIFRPQk4oMHg1NGFmMjVlOCwgMHgzNDNmZGExMCksIFRP
Qk4oMHg5ZmY5ZDk4ZCwgMHhmZDI1ZDZmMiksCi0gICAgICAgICBUT0JOKDB4MDc0NmFmN2MsIDB4
NDY4Yjg4MzUpLCBUT0JOKDB4OTc3YTMxY2IsIDB4NzMwZWNlYTcpLAotICAgICAgICAgVE9CTigw
eGE1MDk2YjgwLCAweGMyY2Y0YTgxKSwgVE9CTigweGFhOTg2ODMzLCAweDY0NThjMzdhKSwKLSAg
ICAgICAgIFRPQk4oMHg2YWYyOWJmMywgMHhhNmJkOWQzNCksIFRPQk4oMHg2YTYyZmU5YiwgMHgz
M2M1ZDg1NCksCi0gICAgICAgICBUT0JOKDB4NTBlNmMzMDQsIDB4YjcxMzNiNWUpLCBUT0JOKDB4
MDRiNjAxNTksIDB4N2Q2ZTY4NDgpLAotICAgICAgICAgVE9CTigweDRjZDI5NmRmLCAweDU1Nzli
ZWE0KSwgVE9CTigweDEwZTM1YWM4LCAweDVjZWVkYWYxKSwKLSAgICAgICAgIFRPQk4oMHgwNGM0
YzVmZCwgMHhlM2JjYzViMSksIFRPQk4oMHg5NWY5ZWU4YSwgMHg4OTQxMmNmOSksCi0gICAgICAg
ICBUT0JOKDB4MmM5NDU5ZWUsIDB4ODJiNmViMGYpLCBUT0JOKDB4MmU4NDU3NjUsIDB4OTVjMmFh
ZGQpLAotICAgICAgICAgVE9CTigweDc3NGE4NGFlLCAweGQzMjdmY2ZlKSwgVE9CTigweGQ4Yzkz
NzIyLCAweDAzNjhkNDc2KSwKLSAgICAgICAgIFRPQk4oMHgwZGJkNTc0OCwgMHhmODNlOGEzYiks
IFRPQk4oMHhhNTc5YWE5NiwgMHg4ZDI0OTVmMyksCi0gICAgICAgICBUT0JOKDB4NTM1OTk2YTAs
IDB4YWU0OTZlOWIpLCBUT0JOKDB4MDdhZmJmZTksIDB4YjdmOWJjYzIpLAotICAgICAgICAgVE9C
TigweDNhYzFkYzZkLCAweDViN2JkMjkzKSwgVE9CTigweDNiNTkyY2ZmLCAweDcwMjIzMjNkKSwK
LSAgICAgICAgIFRPQk4oMHhiYTBkZWI5OCwgMHg5YzBhM2U3NiksIFRPQk4oMHgxOGU3OGU5Ziwg
MHg0YjE5N2FjYiksCi0gICAgICAgICBUT0JOKDB4MjExY2RlMTAsIDB4Mjk2YzM2ZWYpLCBUT0JO
KDB4N2VlODk2NzIsIDB4ODJjNGRhNzcpLAotICAgICAgICAgVE9CTigweGI2MTdkMjcwLCAweGE1
NzgzNmRhKSwgVE9CTigweGYwY2Q5YzMxLCAweDljYjc1NjBiKSwKLSAgICAgICAgIFRPQk4oMHgw
MWZkY2JmNywgMHhlNDU1ZmU5MCksIFRPQk4oMHgzZmI1M2NiYiwgMHg3ZTczMzRmMyksCi0gICAg
ICAgICBUT0JOKDB4NzgxZTJlYTQsIDB4NGU3ZGU0ZWMpLCBUT0JOKDB4OGFkYWIzYWQsIDB4MGIz
ODRmZDApLAotICAgICAgICAgVE9CTigweDEyOWVlZTJmLCAweDUzZDY0ODI5KSwgVE9CTigweDdh
NDcxZTE3LCAweGEyNjE0OTJiKSwKLSAgICAgICAgIFRPQk4oMHhlNGY5YWRiOSwgMHhlNGNiNGEy
YyksIFRPQk4oMHgzZDM1OWY2ZiwgMHg5N2JhMmMyZCksCi0gICAgICAgICBUT0JOKDB4MzQ2YzY3
ODYsIDB4MGFhY2Q2OTcpLCBUT0JOKDB4OTJiNDQ0YzMsIDB4NzVjMmY4YTgpLAotICAgICAgICAg
VE9CTigweGM3OWZhMTE3LCAweGQ4NWRmNDRlKSwgVE9CTigweDU2NzgyMzcyLCAweDM5OGRkZjMx
KSwKLSAgICAgICAgIFRPQk4oMHg2MGU2OTBmMiwgMHhiYmJhYjNiOCksIFRPQk4oMHg0ODUxZjhh
ZSwgMHg4YjA0ODE2YiksCi0gICAgICAgICBUT0JOKDB4YzcyMDQ2YWIsIDB4OWM5MmU0ZDIpLCBU
T0JOKDB4NTE4Yzc0YTEsIDB4N2NmMzEzNmIpLAotICAgICAgICAgVE9CTigweGZmNGViNTBhLCAw
eGY5ODc3ZDRjKSwgVE9CTigweDE0NTc4ZDkwLCAweGE5MTljYWJiKSwKLSAgICAgICAgIFRPQk4o
MHg4MjE4ZjhjNCwgMHhhYzVlYjJiNiksIFRPQk4oMHhhM2NjYzU0NywgMHg1NDIwMTZlNCksCi0g
ICAgICAgICBUT0JOKDB4MDI1YmY0OGUsIDB4MzI3ZjgzNDkpLCBUT0JOKDB4ZjNlOTczNDYsIDB4
ZjQzY2I2NDEpLAotICAgICAgICAgVE9CTigweGRjMmJhZmRmLCAweDUwMGYxMDg1KSwgVE9CTigw
eDU3MTY3ODc2LCAweDJmMDYzMDU1KSwKLSAgICAgICAgIFRPQk4oMHg1YmQ5MTRiOSwgMHg0MTE5
MjVhNiksIFRPQk4oMHg3YzA3OGQ0OCwgMHhhMTEyM2RlNSksCi0gICAgICAgICBUT0JOKDB4ZWU2
YmY4MzUsIDB4MTgyYjE2NWQpLCBUT0JOKDB4YjExYjVlNWIsIDB4YmE1MTk3MjcpLAotICAgICAg
ICAgVE9CTigweGUzM2VhNzZjLCAweDFlZWE3Yjg1KSwgVE9CTigweDIzNTJiNDYxLCAweDkyZDRm
ODVlKSwKLSAgICAgICAgIFRPQk4oMHhmMTAxZDMzNCwgMHhhZmUxMTViYiksIFRPQk4oMHhmYWJj
MTI5NCwgMHg4ODkxNzVhMyksCi0gICAgICAgICBUT0JOKDB4N2Y2YmNkYzAsIDB4NTIzM2Y5MjUp
LCBUT0JOKDB4ZTBhODAyZGIsIDB4ZTc3ZmVjNTUpLAotICAgICAgICAgVE9CTigweGJkYjQ3Yjc1
LCAweDgwNjliNjU5KSwgVE9CTigweDFjNWUxMmRlLCAweGY5OGZiZDc0KSwKLSAgICAgICAgIFRP
Qk4oMHg4NjljNThjNiwgMHg0Yjg0NTdlZSksIFRPQk4oMHhhNTM2MGY2OSwgMHg0ZjdlYTlmNyks
Ci0gICAgICAgICBUT0JOKDB4ZTU3NmMwOWYsIDB4ZjQ2MGIzOGYpLCBUT0JOKDB4NmI3MGQ1NDgs
IDB4MjJiN2ZiMzYpLAotICAgICAgICAgVE9CTigweDNmZDIzN2YxLCAweDNiZmFlMzE1KSwgVE9C
TigweDMzNzk3ODUyLCAweGNiZGZmMzY5KSwKLSAgICAgICAgIFRPQk4oMHg5N2RmMjVmNSwgMHgy
NWI1MTZmOSksIFRPQk4oMHg0NmYzODhmMiwgMHhiYTM4YWQyZCksCi0gICAgICAgICBUT0JOKDB4
NjU2YzQ2NTgsIDB4ODlkOGRkYmIpLCBUT0JOKDB4ODgzMGIyNmUsIDB4NzBmMzhlZTgpLAotICAg
ICAgICAgVE9CTigweDQzMjBmZDVjLCAweGRlMTIxMmIwKSwgVE9CTigweGMzNGYzMGNmLCAweGU0
YTJlZGIyKSwKLSAgICAgICAgIFRPQk4oMHhhYmIxMzFhMywgMHg1NmFiNjRiOCksIFRPQk4oMHg3
Zjc3ZjBjYywgMHhkOTljNWQyNiksCi0gICAgICAgICBUT0JOKDB4NjY4NTZhMzcsIDB4YmY5ODFk
OTQpLCBUT0JOKDB4MTllNzZkMDksIDB4NzM4YmQ3NmUpLAotICAgICAgICAgVE9CTigweGU3NmM4
YWMzLCAweDk2MjM4ZjM5KSwgVE9CTigweGMwYTQ4MmJlLCAweGE4MzBiMzY2KSwKLSAgICAgICAg
IFRPQk4oMHhiN2I4ZWFmZiwgMHgwYjRlYjQ5OSksIFRPQk4oMHg4ZWNkODNiYywgMHg0YmZiNDg2
NSksCi0gICAgICAgICBUT0JOKDB4OTcxYjJjYjcsIDB4YTJmMzc3NmYpLCBUT0JOKDB4YjQyMTc2
YTQsIDB4ZjRiODhhZGYpLAotICAgICAgICAgVE9CTigweGI5NjE3ZGY1LCAweGJlMWZhNDQ2KSwg
VE9CTigweDhiMzJkNTA4LCAweGNkMDMxYmQyKSwKLSAgICAgICAgIFRPQk4oMHgxYzZiZDQ3ZCwg
MHg1M2I2MThjMCksIFRPQk4oMHhjNDI0ZjQ2YywgMHg2YTIyNzkyMyksCi0gICAgICAgICBUT0JO
KDB4NzMwM2ZmZGUsIDB4ZGQ5MmQ5NjQpLCBUT0JOKDB4ZTk3MTI4NzgsIDB4NzFiNWFiZjIpLAot
ICAgICAgICAgVE9CTigweDhmNDhhNjMyLCAweGY4MTU1NjFkKSwgVE9CTigweDg1ZjQ4ZmY1LCAw
eGQzYzA1NWQxKSwKLSAgICAgICAgIFRPQk4oMHgyMjJhMTQyNywgMHg3NTI1Njg0ZiksIFRPQk4o
MHhkMGQ4NDFhMCwgMHg2NzM2MGNjMyksCi0gICAgICAgICBUT0JOKDB4NDI0NWE5MjYsIDB4MGI5
MjY3YzYpLCBUT0JOKDB4Yzc4OTEzZjEsIDB4Y2YwN2Y4NjMpLAotICAgICAgICAgVE9CTigweGFh
ODQ0YzhlLCAweDRkMGQ5ZTI0KSwgVE9CTigweGE0MmFkNTIyLCAweDNkNWY5MDE3KSwKLSAgICAg
ICAgIFRPQk4oMHhiZDM3MTc0OSwgMHhhMmM5ODlkNSksIFRPQk4oMHg5MjgyOTJkZiwgMHhlMWY1
ZTc4ZSksCi0gICAgICAgICBUT0JOKDB4NDkzYjM4M2UsIDB4MGExZWE2ZGEpLCBUT0JOKDB4NTEz
NmZkOGQsIDB4MTNhZWU1MjkpLAotICAgICAgICAgVE9CTigweDg2MGM0NGIxLCAweGYyYzM0YTk5
KSwgVE9CTigweDNiMDBhY2E0LCAweGJmNTg1NWFjKSwKLSAgICAgICAgIFRPQk4oMHhhYmY2YWFh
MCwgMHhmYWFmMzdiZSksIFRPQk4oMHg2NWY0MzY4MiwgMHgyYTUzZWMwOCksCi0gICAgICAgICBU
T0JOKDB4MWQ5YTU4MDEsIDB4YTExYjEyZTEpLCBUT0JOKDB4NzhhN2FiMmMsIDB4ZTIwZWQ0NzUp
LAotICAgICAgICAgVE9CTigweDBkZTEwNjdlLCAweDlhNDFlMGQ1KSwgVE9CTigweDMwNDczZjVm
LCAweDMwNTAyM2VhKSwKLSAgICAgICAgIFRPQk4oMHhkZDNhZTA5ZCwgMHgxNjljN2Q5NyksIFRP
Qk4oMHg1Y2Q1YmFhNCwgMHhjZmFlZjljZCksCi0gICAgICAgICBUT0JOKDB4NWNkNzQ0MGIsIDB4
NjVhNDQ4MDMpLCBUT0JOKDB4ZGMxMzk2NmEsIDB4NDdmMzY0ZGUpLAotICAgICAgICAgVE9CTigw
eDA3N2IyYmU4LCAweDJiODM1N2MxKSwgVE9CTigweDBjYjFiNGM1LCAweGU5ZDU3YzJhKSwKLSAg
ICAgICAgIFRPQk4oMHg3YTRjZWIzMiwgMHgwNWZmMzYzZSksIFRPQk4oMHhmMzEwZmE0ZCwgMHhj
YTM1YTllZiksCi0gICAgICAgICBUT0JOKDB4ZGJiN2IzNTIsIDB4Zjk3ZjY4YzYpLCBUT0JOKDB4
MGM3NzNiNTAsIDB4MGIwMmNmNTgpLAotICAgICAgICAgVE9CTigweGVhMmU0ODIxLCAweDNjMWY5
NmQ5KSwgVE9CTigweGZmYjM1N2IwLCAweGVlZTAxODE1KSwKLSAgICAgICAgIFRPQk4oMHhiOWM5
MjRjZCwgMHhlMGYyODAzOSksIFRPQk4oMHgwYjM2Yzk1YSwgMHg0NmEzZmJlNCksCi0gICAgICAg
ICBUT0JOKDB4MWZhYWFlYTQsIDB4NWU0NmRiNmMpLCBUT0JOKDB4Y2FlNTc1YzMsIDB4MTkyOGFh
ZmYpLAotICAgICAgICAgVE9CTigweDdmNjcxMzAyLCAweGE3MGRhYjg2KSwgVE9CTigweGZjYmQx
MmE5LCAweDcxYzU4Y2ZjKSwKLSAgICAgICAgIFRPQk4oMHhjYmVmOWFjZiwgMHhiZWUwY2I5Miks
IFRPQk4oMHg1NzNkYTBiOSwgMHhmOGMxYjU4MyksCi0gICAgICAgICBUT0JOKDB4NDc1MmZjZmUs
IDB4MGQ0MWQ1NTApLCBUT0JOKDB4ZTdlZWMwZTMsIDB4MjE1NWNmZmUpLAotICAgICAgICAgVE9C
TigweDBmYzM5ZmNiLCAweDU0NWFlMjQ4KSwgVE9CTigweDUyMmNiOGQxLCAweDgwNjVmNDRlKSwK
LSAgICAgICAgIFRPQk4oMHgyNjNjOTYyYSwgMHg3MGNiYjk2YyksIFRPQk4oMHhlMDM0MzYyYSwg
MHhiY2QxMjRhOSksCi0gICAgICAgICBUT0JOKDB4ZjEyMGRiMjgsIDB4M2MyYWU1OGQpLCBUT0JO
KDB4YjlhMzhkNDksIDB4ZmVmNmQ1MDcpLAotICAgICAgICAgVE9CTigweGIxZmQyYTgyLCAweDFm
ZjE0MGZkKSwgVE9CTigweGJkMTYyZjMwLCAweDIwYWVlN2UwKSwKLSAgICAgICAgIFRPQk4oMHg0
ZTE3YTVkNCwgMHhjYjI1MTk0OSksIFRPQk4oMHgyYWViY2I4MywgMHg0ZjdlMWMzZCksCi0gICAg
ICAgICBUT0JOKDB4NjA4ZWIyNWYsIDB4OTM3YjA1MjcpLCBUT0JOKDB4ZjQyZTFlNDcsIDB4ZWI3
ZDk5OTcpLAotICAgICAgICAgVE9CTigweGViYTY5OWM0LCAweGI4YTUzYTI5KSwgVE9CTigweDFm
OTIxYzcxLCAweGUwOTFiNTM2KSwKLSAgICAgICAgIFRPQk4oMHhjY2UyOWU3YiwgMHg1YjI2YmJk
NSksIFRPQk4oMHg3YThlZjVlZCwgMHgzYjYxYTY4MCksCi0gICAgICAgICBUT0JOKDB4ZTVlZjgw
NDMsIDB4YmExZjFjN2UpLCBUT0JOKDB4MTZlYTgyMTcsIDB4MTgxNThkZGEpLAotICAgICAgICAg
VE9CTigweDAxNzc4YTJiLCAweDU5OWZmMGY5KSwgVE9CTigweDY4YTkyM2Q3LCAweDgxMDRmYzZi
KSwKLSAgICAgICAgIFRPQk4oMHg1YmZhNDRkZiwgMHhkYTY5NGZmMyksIFRPQk4oMHg0ZjcxOTlk
YiwgMHhmNzY2N2YxMiksCi0gICAgICAgICBUT0JOKDB4YzA2ZDhmZjYsIDB4ZTQ2ZjJhNzkpLCBU
T0JOKDB4MDhiNWRlYWQsIDB4ZTlmODEzMWQpLAotICAgICAgICAgVE9CTigweDAyNTE5YTU5LCAw
eGFiYjRjZTdjKSwgVE9CTigweGM0ZjcxMGJjLCAweGI0MmFlYzNlKSwKLSAgICAgICAgIFRPQk4o
MHgzZDc3YjA1NywgMHg3OGJkZTQxYSksIFRPQk4oMHg2NDc0YmY4MCwgMHhiNDE4NmI1YSksCi0g
ICAgICAgICBUT0JOKDB4MDQ4YjNmNjcsIDB4ODhjNjU3NDEpLCBUT0JOKDB4YzY0NTE5ZGUsIDB4
MDNjN2MxNTQpLAotICAgICAgICAgVE9CTigweGRmMDczODQ2LCAweDBlZGZjYzRmKSwgVE9CTigw
eDMxOWFhNzM3LCAweDQ4ZjFhYTZiKSwKLSAgICAgICAgIFRPQk4oMHg4YjlmOGEwMiwgMHhjYTkw
OWY3NyksIFRPQk4oMHg5MDI1ODEzOSwgMHg3NTgwYmZlZiksCi0gICAgICAgICBUT0JOKDB4ZDhi
ZmQzY2EsIDB4YzBjMjI3MTkpLCBUT0JOKDB4YzYwMjA5ZTQsIDB4YzljYTE1MWUpLAotICAgICAg
ICAgVE9CTigweDdhNzQ0YWI1LCAweGQ5YTFhNjljKSwgVE9CTigweDZkZTUwNDhiLCAweDE0OTM3
ZjhmKSwKLSAgICAgICAgIFRPQk4oMHgxNzE5MzhkOCwgMHhlMTE1YWMwNCksIFRPQk4oMHg3ZGY3
MDk0MCwgMHgxYzZiMTZkMiksCi0gICAgICAgICBUT0JOKDB4YTZhZWI2NjMsIDB4N2Y4ZTk0ZTcp
LCBUT0JOKDB4YzEzMDM4OGUsIDB4MmEyY2YwOTQpLAotICAgICAgICAgVE9CTigweDE4NTBiZTg0
LCAweDc3ZjU0ZTZlKSwgVE9CTigweDlmMjU4YTcyLCAweDY1ZDYwZmU1KSwKLSAgICAgICAgIFRP
Qk4oMHhmZjdmZjBjMCwgMHg2YzkxNDZkNiksIFRPQk4oMHgwMzlhYWY5MCwgMHhlNjNhODMwYiks
Ci0gICAgICAgICBUT0JOKDB4MzhmMjdhNzMsIDB4OTQ2MDM0MmYpLCBUT0JOKDB4NDcwMzE0OGMs
IDB4M2Y3OTVmOGEpLAotICAgICAgICAgVE9CTigweDFiYjU0NjdiLCAweDk2ODFhOTdlKSwgVE9C
TigweDAwOTMxYmE1LCAweGVjYWViNTk0KSwKLSAgICAgICAgIFRPQk4oMHhjZGI2NzE5ZCwgMHg3
ODZmMzM3YyksIFRPQk4oMHhkOWMwMWNkMiwgMHhlNzA0Mzk3ZCksCi0gICAgICAgICBUT0JOKDB4
MGY0YTNmMjAsIDB4NTU1YzJmZWYpLCBUT0JOKDB4MDA0NTI1MDksIDB4N2MwYWYyMjMpLAotICAg
ICAgICAgVE9CTigweDU0YTU4MDQ3LCAweDg0ZGI4ZTc2KSwgVE9CTigweDNiYWNmMWFhLCAweDkz
YzhhYTA2KSwKLSAgICAgICAgIFRPQk4oMHgxMWNhOTU3YywgMHhmNzkxOTQyMiksIFRPQk4oMHg1
MDY0MTA1MywgMHg3OGNkYWE0MCksCi0gICAgICAgICBUT0JOKDB4N2EzMDM4NzQsIDB4OWY3MTQ0
YWUpLCBUT0JOKDB4MTcwYzk2M2YsIDB4NDNkNGFjZmQpLAotICAgICAgICAgVE9CTigweDVlMTQ4
MTQ5LCAweDU4ZGRkM2VmKSwgVE9CTigweGE3YmRlNTgyLCAweDllNzJkYmE4KSwKLSAgICAgICAg
IFRPQk4oMHgwNzY5ZGE4YiwgMHg2ZmE2ODc1MCksIFRPQk4oMHhmYTY0ZTUzMiwgMHg1NzJlMDI0
OSksCi0gICAgICAgICBUT0JOKDB4ZmNhYWRmOWQsIDB4MjYxOWFkMzEpLCBUT0JOKDB4ODc4ODJk
YWEsIDB4YTdiMzQ5Y2QpLAotICAgICAgICAgVE9CTigweDlmNmViNzMxLCAweDZjNjdhNzc1KSwg
VE9CTigweGNiMTA0NzFhLCAweGVmYzVkMGIxKSwKLSAgICAgICAgIFRPQk4oMHhiNDMzNzUwYywg
MHhlMWI4MDZiMiksIFRPQk4oMHgxOWM1NzE0ZCwgMHg1N2IxYWU3ZSksCi0gICAgICAgICBUT0JO
KDB4YzBkYzhiN2IsIDB4ZWQwM2ZkM2YpLCBUT0JOKDB4ZGQwMzM0NGYsIDB4MzFiYzE5NGUpLAot
ICAgICAgICAgVE9CTigweGE2NmM1MmE3LCAweDhjNjMyMGI1KSwgVE9CTigweDhiYzgyY2UzLCAw
eGQwYjZmZDkzKSwKLSAgICAgICAgIFRPQk4oMHhmOGUxMzUwMSwgMHhiMzVmMTM0MSksIFRPQk4o
MHhlNTMxNTZkZCwgMHgyNWE0M2U0MiksCi0gICAgICAgICBUT0JOKDB4ZDNhZGYyN2UsIDB4NGRh
ZWI4NWMpLCBUT0JOKDB4YjgxZDgzNzksIDB4YmJlZGRlYjUpLAotICAgICAgICAgVE9CTigweDFi
MGI1NDZlLCAweDJlNDM1ODY3KSwgVE9CTigweDkwMjBlYjk0LCAweGViYTVkZDYwKSwKLSAgICAg
ICAgIFRPQk4oMHgzN2Q5MTE2MSwgMHg4MjEwY2I5ZCksIFRPQk4oMHg0YzU5NmIzMSwgMHg1Yzkx
ZjFjZiksCi0gICAgICAgICBUT0JOKDB4YjIyOGE5MGYsIDB4MGUwYjA0MGQpLCBUT0JOKDB4YmFm
MDJkODIsIDB4NDVmZjg5N2YpLAotICAgICAgICAgVE9CTigweDJhYWM3OWU2LCAweDAwZmE2MTIy
KSwgVE9CTigweDI0ODI4ODE3LCAweDhlMzZmNTU3KSwKLSAgICAgICAgIFRPQk4oMHhiOTUyMWQz
MSwgMHgxMTNlYzM1NiksIFRPQk4oMHg5ZTQ4ODYxZSwgMHgxNWVmZjFmOCksCi0gICAgICAgICBU
T0JOKDB4MmFhMWQ0MTIsIDB4ZTBkNDE3MTUpLCBUT0JOKDB4NzFmODYyMDMsIDB4NTNmMTMxYjgp
LAotICAgICAgICAgVE9CTigweGY2MGRhOGRhLCAweDNmZDE5NDA4KSwgVE9CTigweDRhYTcxNmRj
LCAweDI3OGQ5ZDk5KSwKLSAgICAgICAgIFRPQk4oMHgzOTQ1MzFmNywgMHhhOGM1MWM5MCksIFRP
Qk4oMHhiNTYwYjBlOCwgMHhmNTlkYjUxYyksCi0gICAgICAgICBUT0JOKDB4YTI4ZmM5OTIsIDB4
ZmEzNGJkYWQpLCBUT0JOKDB4ZjAyNGZhMTQsIDB4OWNkNGY4YmQpLAotICAgICAgICAgVE9CTigw
eDVjZjUzMGY3LCAweDIzYTlkMGQzKSwgVE9CTigweDYxNWNhMTkzLCAweGUyOGM5YjU2KSwKLSAg
ICAgICAgIFRPQk4oMHg2ZDJhNDgzZCwgMHg2ZjczYzUxZSksIFRPQk4oMHhhNGNiMjQxMiwgMHhl
YTBkYzJkZCksCi0gICAgICAgICBUT0JOKDB4NTA2NjNjNDEsIDB4MWViOTE3ZmYpLCBUT0JOKDB4
M2QzYTc0Y2YsIDB4ZWFkZTI5OWUpLAotICAgICAgICAgVE9CTigweDI5YjM5OTBmLCAweDRhN2E5
MjAyKSwgVE9CTigweGE5YmNjZjU5LCAweGE3YjE1YzNkKSwKLSAgICAgICAgIFRPQk4oMHg2NmEz
Y2NkYywgMHhhNWRmOTIwOCksIFRPQk4oMHg0ODAyN2MxNCwgMHg0M2YyZjkyOSksCi0gICAgICAg
ICBUT0JOKDB4ZDM4NTM3N2MsIDB4NDBiNTU3ZjApLCBUT0JOKDB4ZTAwMWMzNjYsIDB4Y2Q2ODQ2
NjApLAotICAgICAgICAgVE9CTigweDFiMThlZDZiLCAweGUyMTgzYTI3KSwgVE9CTigweDg3OTcz
OGQ4LCAweDYzMjEwMzI5KSwKLSAgICAgICAgIFRPQk4oMHhhNjg3Yzc0YiwgMHhiZGE5NDg4Miks
IFRPQk4oMHhkMWJiY2M0OCwgMHhhNjg0YjI5OSksCi0gICAgICAgICBUT0JOKDB4YWY2ZjExMTIs
IDB4ODYzYjM3MjQpLCBUT0JOKDB4Njk0M2QxYjQsIDB4MmM4Y2U5ZjgpLAotICAgICAgICAgVE9C
TigweGUwNDRhM2JiLCAweDA5OGNhZmI0KSwgVE9CTigweDI3ZWQyMzEwLCAweDYwZDQ4Y2FmKSwK
LSAgICAgICAgIFRPQk4oMHg1NDJiNTY3NSwgMHgzYTMxYjg0ZCksIFRPQk4oMHhjYmYzZGQ1MCwg
MHhmY2RkYmVkNyksCi0gICAgICAgICBUT0JOKDB4MjUwMzFmMTYsIDB4NDFiMWQ4MzApLCBUT0JO
KDB4YTdlYzg1MWQsIDB4Y2IwYzFlMjcpLAotICAgICAgICAgVE9CTigweGFjMWM4ZmUwLCAweGI1
YWU3NWRiKSwgVE9CTigweGIyNGM3NTU3LCAweDA4YzUyMTIwKSwKLSAgICAgICAgIFRPQk4oMHg1
N2Y4MTFkYywgMHgxZDQ2MzZjMyksIFRPQk4oMHhmODQzNjUyNiwgMHg2ODFhOTkzOSksCi0gICAg
ICAgICBUT0JOKDB4MWY2YmM2ZDksIDB4OWM4MWFkYjMpLCBUT0JOKDB4ODQwZjhhYzMsIDB4NWI3
ZDgwZDQpLAotICAgICAgICAgVE9CTigweDczMWE5ODExLCAweGY0Mzg3ZjFhKSwgVE9CTigweDdj
NTAxY2QzLCAweGI1MTU2ODgwKSwKLSAgICAgICAgIFRPQk4oMHhhNWNhNGEwNywgMHhkZmU2ODg2
NyksIFRPQk4oMHhmMTIzZDhmMCwgMHg1ZmNlYTEyMCksCi0gICAgICAgICBUT0JOKDB4MWZiYjBl
NzEsIDB4ZDYwNzAzOWUpLCBUT0JOKDB4MmI3MGUyMTUsIDB4Y2QzYTQ1NDYpLAotICAgICAgICAg
VE9CTigweDMyZDJmMDFkLCAweDUzMzI0MDkxKSwgVE9CTigweGI3OTZmZjA4LCAweDE4MGFiMTli
KSwKLSAgICAgICAgIFRPQk4oMHgzMmQ4N2E4NiwgMHgzYzU3YzRhYSksIFRPQk4oMHgyYWVkOWNh
ZiwgMHhiN2M0OWEyNyksCi0gICAgICAgICBUT0JOKDB4OWZiMzVlYWMsIDB4MzE2MzBkOTgpLCBU
T0JOKDB4MzM4ZThjZGYsIDB4NWMzZTIwYTMpLAotICAgICAgICAgVE9CTigweDgwZjE2MTgyLCAw
eDY2Y2RlOGRiKSwgVE9CTigweDRlMTU5OTgwLCAweDJkNzJmZDM2KSwKLSAgICAgICAgIFRPQk4o
MHhkN2I4ZjEzYiwgMHg5YjZlNTA3MiksIFRPQk4oMHhmNTIxMzkwNywgMHgzYjdiNWRjMSksCi0g
ICAgICAgICBUT0JOKDB4NGQ0MzFmMWQsIDB4OGNlNDM5NmUpLCBUT0JOKDB4MzdhMWE2ODAsIDB4
YTdlZDIxNDIpLAotICAgICAgICAgVE9CTigweGJmMzc1Njk2LCAweGQwMWFhZjZiKSwgVE9CTigw
eGFhMWMwYzU0LCAweGU2M2FhYjY2KSwKLSAgICAgICAgIFRPQk4oMHgzMDE0MzY4YiwgMHg0ZWQ4
MDk0MCksIFRPQk4oMHg2N2U2ZDA1NiwgMHg3YTZmY2VkZCksCi0gICAgICAgICBUT0JOKDB4N2My
MDhjNDksIDB4Y2E5NzU3OWYpLCBUT0JOKDB4ZmUzZDdhODEsIDB4YTIzNTk3ZjYpLAotICAgICAg
ICAgVE9CTigweDVlMjAzMjAyLCAweDdlMDk2YWUyKSwgVE9CTigweGIxZjNlMWU3LCAweDI0YjM5
MzY2KSwKLSAgICAgICAgIFRPQk4oMHgyNmRhMjZmMywgMHgyZmRjZGZmYyksIFRPQk4oMHg3OTQy
MmYxZCwgMHg2MDk3YmU4Myl9LAotICAgICAgICB7VE9CTigweDI2M2EyY2ZiLCAweDlkYjNiMzgx
KSwgVE9CTigweDljM2EyZGVlLCAweGQ0ZGYwYTRiKSwKLSAgICAgICAgIFRPQk4oMHg3MjhkMDZl
OSwgMHg3ZDA0ZTYxZiksIFRPQk4oMHg4YjFhZGZiYywgMHg0MjQ0OTMyNSksCi0gICAgICAgICBU
T0JOKDB4NmVjMWQ5MzksIDB4N2UwNTNhMWIpLCBUT0JOKDB4ZWUyYmU1YzcsIDB4NjZkYWY3MDcp
LAotICAgICAgICAgVE9CTigweDgwYmExZTE0LCAweDgxMGFjN2FiKSwgVE9CTigweGRkMmFlNzc4
LCAweGY1MzBmMTc0KSwKLSAgICAgICAgIFRPQk4oMHgwNDM1ZDk3YSwgMHgyMDViOWQ4YiksIFRP
Qk4oMHg2ZWI4ZjA2NCwgMHgwNTY3NTZkNCksCi0gICAgICAgICBUT0JOKDB4ZDVlODhhOGIsIDB4
YjZmODIxMGUpLCBUT0JOKDB4MDcwZWYxMmQsIDB4ZWM5ZmQ5ZWEpLAotICAgICAgICAgVE9CTigw
eDRkODQ5NTA1LCAweDNiY2M4NzZhKSwgVE9CTigweDEyYTc1MzM4LCAweGE3NDA0Y2UzKSwKLSAg
ICAgICAgIFRPQk4oMHhkMjJiNDllMSwgMHhiOGExZGI1ZSksIFRPQk4oMHhlYzFmMjA1MSwgMHgx
NGJmYTVhZCksCi0gICAgICAgICBUT0JOKDB4YWRiYWViNzksIDB4YjY4MjhmMzYpLCBUT0JOKDB4
OWQ3YTAyNTgsIDB4MDFiZDViOWUpLAotICAgICAgICAgVE9CTigweGVkYTAxZTBkLCAweDFlODQ0
YjBjKSwgVE9CTigweDRiNjI1MTc1LCAweDg4N2VkZmM5KSwKLSAgICAgICAgIFRPQk4oMHgxNDEw
OWZkZCwgMHg5NjY5YjYyMSksIFRPQk4oMHg4OGEyY2E1NiwgMHhmNmY4N2I5OCksCi0gICAgICAg
ICBUT0JOKDB4ZmUyZWI3ODgsIDB4MTcwZGY2YmMpLCBUT0JOKDB4MGNlYTA2ZjQsIDB4ZmZhNDcz
ZjkpLAotICAgICAgICAgVE9CTigweDQzZWQ4MWI1LCAweGM0ZTgzZDMzKSwgVE9CTigweGQ5ZjM1
ODc5LCAweDVlZmQ0ODhiKSwKLSAgICAgICAgIFRPQk4oMHgxNjRhNjIwZiwgMHg5ZGViNGQwZiks
IFRPQk4oMHhjNjkyN2JkYiwgMHhhYzZhNzM5NCksCi0gICAgICAgICBUT0JOKDB4NDVjMjhkZjcs
IDB4OWY5ZTBmMDMpLCBUT0JOKDB4Mjg2ODY2MWUsIDB4ZmNkN2UxYTkpLAotICAgICAgICAgVE9C
TigweDdjZjRlOGQwLCAweGZmYTM0OGYxKSwgVE9CTigweDZiZDRjMjg0LCAweDM5ODUzOGUwKSwK
LSAgICAgICAgIFRPQk4oMHgyNjE4YTA5MSwgMHgyODlhODYxOSksIFRPQk4oMHhlZjc5NmU2MCwg
MHg2NjcxYjE3MyksCi0gICAgICAgICBUT0JOKDB4NjY0ZTQ2ZTUsIDB4OTA5MGM2MzIpLCBUT0JO
KDB4YTM4MDYyZDQsIDB4MWU2NmY4ZmIpLAotICAgICAgICAgVE9CTigweDZjNzQ0YTIwLCAweDA1
NzMyNzRlKSwgVE9CTigweGQwN2I2N2U0LCAweGE5MjcxMzk0KSwKLSAgICAgICAgIFRPQk4oMHgz
OTEyMjNiMiwgMHg2YmRjMGUyMCksIFRPQk4oMHhiZTJkOTNmMSwgMHhlYjBhMDVhNyksCi0gICAg
ICAgICBUT0JOKDB4ZjIzZTJlNTMsIDB4M2YzNmQxNDEpLCBUT0JOKDB4ZTg0YmIzZDQsIDB4NGRm
Y2E0NDIpLAotICAgICAgICAgVE9CTigweGI4MDRhNDhkLCAweDZiN2MwMjNhKSwgVE9CTigweDFl
MTZhOGZhLCAweDc2NDMxYzNiKSwKLSAgICAgICAgIFRPQk4oMHgxYjU0NTJhZCwgMHhkZGQ0NzJl
MCksIFRPQk4oMHg3ZDQwNWVlNywgMHgwZDFlZTEyNyksCi0gICAgICAgICBUT0JOKDB4NTBmYzZm
MWQsIDB4ZmZhMjc1OTkpLCBUT0JOKDB4MzUxYWM1M2MsIDB4YmYzOTFiMzUpLAotICAgICAgICAg
VE9CTigweDdlZmExNGI4LCAweDQ0NDQ4OTZiKSwgVE9CTigweDY0OTc0ZDJmLCAweGY5NDAyN2Zi
KSwKLSAgICAgICAgIFRPQk4oMHhlZmRjZDBlOCwgMHhkZTg0NDg3ZCksIFRPQk4oMHg4YzQ1YjI2
MCwgMHgyYjQ4OTg5YiksCi0gICAgICAgICBUT0JOKDB4YThmY2JiYzIsIDB4ZDg0NjM0ODcpLCBU
T0JOKDB4ZDFiMmIzZjcsIDB4M2ZiYzQ3NmMpLAotICAgICAgICAgVE9CTigweDIxZDAwNWI3LCAw
eGM4ZjQ0M2MwKSwgVE9CTigweDUxOGYyZTY3LCAweDQwYzAxMzljKSwKLSAgICAgICAgIFRPQk4o
MHg1NjAzNmU4YywgMHgwNmQ3NWZjMSksIFRPQk4oMHgyZGNmN2JiNywgMHgzMjQ5YTg5ZiksCi0g
ICAgICAgICBUT0JOKDB4ODFkZDFkM2QsIDB4ZTI0NWU3ZGQpLCBUT0JOKDB4ZjU3OGRjNGIsIDB4
ZWJkNmUyYTcpLAotICAgICAgICAgVE9CTigweDRjMDI4OTAzLCAweGRmMmNlN2EwKSwgVE9CTigw
eGFlZTM2Mjg4LCAweDljMzlhZmFjKSwKLSAgICAgICAgIFRPQk4oMHhkYzg0N2MzMSwgMHgxNDY0
MDRhYiksIFRPQk4oMHg2MzA0YzBkOCwgMHhhNGU5NzgxOCksCi0gICAgICAgICBUT0JOKDB4YWU1
MWRjYTIsIDB4YTkxZjY3OTEpLCBUT0JOKDB4MmFiZTQxOTAsIDB4OWJhYTllZmMpLAotICAgICAg
ICAgVE9CTigweGQ5ZDJlMmY0LCAweDU1OWM3YWMxKSwgVE9CTigweGU4MmY0YjUxLCAweGZjOWY3
NzNhKSwKLSAgICAgICAgIFRPQk4oMHhhNzcxMzAyNywgMHg0MDczZTgxYyksIFRPQk4oMHhjMDI3
NmZhYywgMHhmYmI1OTZmYyksCi0gICAgICAgICBUT0JOKDB4MWQ4MTlmYzksIDB4YTY4NGY3MGMp
LCBUT0JOKDB4MjliNDdmZGQsIDB4YzlmN2IxZTApLAotICAgICAgICAgVE9CTigweDM1OGRlMTAz
LCAweDQ1OWIxOTQwKSwgVE9CTigweGVjODgxYzU5LCAweDViMDEzZTkzKSwKLSAgICAgICAgIFRP
Qk4oMHg1MTU3NGM5MywgMHg0OTUzMmFkMyksIFRPQk4oMHgyZGIxZDQ0NSwgMHhiMzdiNDZkZSks
Ci0gICAgICAgICBUT0JOKDB4YzY0NDViODcsIDB4ZGYyMzlmZDgpLCBUT0JOKDB4YzcxOGFmNzUs
IDB4MTUxZDI0ZWUpLAotICAgICAgICAgVE9CTigweGFlYTFjNGE0LCAweGY0M2M2MjU5KSwgVE9C
TigweDQwYzBlNWQ3LCAweDcwYmUwMmY3KSwKLSAgICAgICAgIFRPQk4oMHg2YTQ1OTBmNCwgMHg3
MjFiMzNmMiksIFRPQk4oMHgyMTI0ZjFmYiwgMHhmZWRmMDRlYSksCi0gICAgICAgICBUT0JOKDB4
ZjhlNTNjZGUsIDB4OTc0NWVmZTcpLCBUT0JOKDB4ZTdlMTA0MzIsIDB4NjVmMDQ2ZDkpLAotICAg
ICAgICAgVE9CTigweGMzZmNhMjhlLCAweGU0ZDBjN2U2KSwgVE9CTigweDg0N2UzMzlhLCAweDg3
MjUzYjFiKSwKLSAgICAgICAgIFRPQk4oMHg5YjU5NTM0OCwgMHgzNzQzZTY0MyksIFRPQk4oMHhj
YjZhMGEwYiwgMHg0ZmQxMmZjNSksCi0gICAgICAgICBUT0JOKDB4ZmI2ODM2YzMsIDB4MjdkMDJk
Y2MpLCBUT0JOKDB4NWFkMDA5ODIsIDB4N2E2OGJjYzIpLAotICAgICAgICAgVE9CTigweDFiMjRi
NDRjLCAweDAwNWU5MTJkKSwgVE9CTigweGNjODNkMjBmLCAweDgxMWZkY2ZlKSwKLSAgICAgICAg
IFRPQk4oMHgzNjUyN2VjMSwgMHg2NjZmYmEwYyksIFRPQk4oMHg2OTk0ODE5NywgMHgxNDc1NDYz
NSksCi0gICAgICAgICBUT0JOKDB4ZmNkY2IxYTgsIDB4NTU2ZGE5YzIpLCBUT0JOKDB4YTU5MzQy
NjcsIDB4ODFhNzMyYjIpLAotICAgICAgICAgVE9CTigweGVjMTIxNGVkLCAweGE3MTQxODFkKSwg
VE9CTigweDYwOWFjMTNiLCAweDYwNjdiMzQxKSwKLSAgICAgICAgIFRPQk4oMHhmZjRiNGM5Nywg
MHhhNTQ1ZGYxZiksIFRPQk4oMHhhMTI0MDUwMSwgMHgzNGQyMDc2YiksCi0gICAgICAgICBUT0JO
KDB4NmVmYTBjMjMsIDB4MTQwOWNhOTcpLCBUT0JOKDB4MjU0Y2MxYTgsIDB4MjA2MzhjNDMpLAot
ICAgICAgICAgVE9CTigweGQ0ZTM2M2FmLCAweGRjZmI0NmNkKSwgVE9CTigweDYyYzJhZGMzLCAw
eDAzOTQyYTI3KSwKLSAgICAgICAgIFRPQk4oMHhjNjdiOWRmMCwgMHg1NmU0NjQ4MyksIFRPQk4o
MHhhNTVhYmIyMCwgMHg2MzczNjM1NiksCi0gICAgICAgICBUT0JOKDB4YWI5M2MwOTgsIDB4YzU1
MWJjNTIpLCBUT0JOKDB4MzgyYjQ5ZjksIDB4YjE1ZmU2NGIpLAotICAgICAgICAgVE9CTigweDll
YzIyMWFkLCAweDRkZmY4ZDQ3KSwgVE9CTigweDc5Y2FmNjE1LCAweDQzN2RmNGQ2KSwKLSAgICAg
ICAgIFRPQk4oMHg1ZjEzZGM2NCwgMHhiYjQ1NjUwOSksIFRPQk4oMHhlNGM1ODlkOSwgMHgxOTFm
MDcxNCksCi0gICAgICAgICBUT0JOKDB4MjdiNmE4YWIsIDB4M2ZkNDBlMDkpLCBUT0JOKDB4ZTQ1
NTg0MmUsIDB4NzczMTNlYTkpLAotICAgICAgICAgVE9CTigweDhiNTFkMWUyLCAweDFmNTU5ODhi
KSwgVE9CTigweDU3MTZkZDczLCAweDA2MmJiYmZjKSwKLSAgICAgICAgIFRPQk4oMHg2MzNjMTFl
NSwgMHg0ZThiZjNkZSksIFRPQk4oMHg5YTBlNzdiNiwgMHgxYjg1YmUzYiksCi0gICAgICAgICBU
T0JOKDB4NTY1MTA3MjksIDB4MDkxMWNjYTYpLCBUT0JOKDB4MjdlNzY0OTUsIDB4ZWZhNjU5MGYp
LAotICAgICAgICAgVE9CTigweGU0YWM4YjMzLCAweDA3MGQzYWFiKSwgVE9CTigweDI2NDM2NzJi
LCAweDlhMmNkNWU1KSwKLSAgICAgICAgIFRPQk4oMHg1MmVmZjc5YiwgMHgxY2ZjOTE3MyksIFRP
Qk4oMHg2NjVjYTQ5YiwgMHg5MGE3YzEzZiksCi0gICAgICAgICBUT0JOKDB4NWE4ZGRhNTksIDB4
YjNlZmI5OTgpLCBUT0JOKDB4OGE1YjkyMmQsIDB4MDUyZjEzNDEpLAotICAgICAgICAgVE9CTigw
eGFlOWViYmFiLCAweDNjZjlhNTMwKSwgVE9CTigweDM1OTg2ZTdiLCAweGY1NmRhNGQ3KSwKLSAg
ICAgICAgIFRPQk4oMHgzYTYzNmI1YywgMHhmZjM1MTNjYyksIFRPQk4oMHhiYjBjZjhiYSwgMHgz
MTk4ZjdkZCksCi0gICAgICAgICBUT0JOKDB4YjhkNDA1MjIsIDB4NDFmMTZmODYpLCBUT0JOKDB4
NzYwNTc1ZDgsIDB4ZGUxM2E3YmYpLAotICAgICAgICAgVE9CTigweDM2Zjc0ZTE2LCAweDlmN2Fh
MTgxKSwgVE9CTigweDE2M2EzZWNmLCAweGY1MDllZDFjKSwKLSAgICAgICAgIFRPQk4oMHg2YWVh
ZDYxZiwgMHgzYzQwYTQ5MSksIFRPQk4oMHgxNThjOTVmYywgMHhkZmU4ZmNhYSksCi0gICAgICAg
ICBUT0JOKDB4YTM5OTFiNmUsIDB4MTNjZGE0NmYpLCBUT0JOKDB4Nzk0ODI0MTUsIDB4MzQyZmFl
ZDApLAotICAgICAgICAgVE9CTigweGYzYmE1YmRlLCAweDY2NmI1OTcwKSwgVE9CTigweDFkNTJl
NmJjLCAweGIyNmFiNmRkKSwKLSAgICAgICAgIFRPQk4oMHg3NjhiYTFlNywgMHg4NjA4ZGQzZCks
IFRPQk4oMHg0OTMwZGIyYSwgMHhlYTA3NjU4NiksCi0gICAgICAgICBUT0JOKDB4ZDk1NzU3MTQs
IDB4ZTdkYzFhZmEpLCBUT0JOKDB4MWZjN2JmN2QsIDB4ZjdjNTg4MTcpLAotICAgICAgICAgVE9C
TigweDZiNDdhY2NkLCAweGQ5ZWVlOTZjKSwgVE9CTigweDBjYTI3N2ZiLCAweGU1OGNlYzM3KSwK
LSAgICAgICAgIFRPQk4oMHgxMTNmZTQxMywgMHhlNzAyYzQyYSksIFRPQk4oMHhkZDE3NjRlZSwg
MHhjNDdjYmU1MSksCi0gICAgICAgICBUT0JOKDB4MDQxZTdjZGUsIDB4N2IzZWQ3MzkpLCBUT0JO
KDB4NTBjYjc0NTksIDB4NWNlOWUxYzApLAotICAgICAgICAgVE9CTigweDM1NTY4NTEzLCAweDI5
MjViMjEyKSwgVE9CTigweDdjZmY5NWM0LCAweDAwMWIwODFjKSwKLSAgICAgICAgIFRPQk4oMHg2
M2VlNGNiZCwgMHg4MDg4YjQ1NCksIFRPQk4oMHhkYjdmMzJmNywgMHg5YTllMGM4YSksCi0gICAg
ICAgICBUT0JOKDB4YjM3N2Q0MTgsIDB4NmIyNDQ3Y2IpLCBUT0JOKDB4ZTNlOTgyYWEsIDB4ZDM3
MDIxOWIpLAotICAgICAgICAgVE9CTigweDA2Y2NjMWU0LCAweGMyYTJhNTkzKSwgVE9CTigweDcy
YzM2ODY1LCAweDA3NzNmMjRmKSwKLSAgICAgICAgIFRPQk4oMHhhMTNiNGRhNywgMHg5NTg1OTQy
MyksIFRPQk4oMHg4YmJmMWQzMywgMHg3NTA0MGM4ZiksCi0gICAgICAgICBUT0JOKDB4NzI2ZjA5
NzMsIDB4ZGE1MGM5OTEpLCBUT0JOKDB4NDhhZmNkNWIsIDB4ODIyZDZlZTIpLAotICAgICAgICAg
VE9CTigweGU1ZmM3MThiLCAweDIwZmQ3NzcxKSwgVE9CTigweGI5ZThlNzdkLCAweGZkMDgwN2Ex
KSwKLSAgICAgICAgIFRPQk4oMHg3ZjVlMGY0NCwgMHg5OWE3NzAzZCksIFRPQk4oMHg2OTcyOTMw
ZSwgMHg2MThlMzZmMyksCi0gICAgICAgICBUT0JOKDB4MmI3Yzc3YjgsIDB4MjM4MDdiYmUpLCBU
T0JOKDB4ZTViODI0MDUsIDB4Y2IyN2ZmNTApLAotICAgICAgICAgVE9CTigweGJhOGI4YmUzLCAw
eGJkMzc5MDYyKSwgVE9CTigweGQ2NGI3YTFkLCAweDJkY2U0YTkyKSwKLSAgICAgICAgIFRPQk4o
MHgwNDBhNzNjNSwgMHhiMjk1MmUzNyksIFRPQk4oMHgwYTllMjUyZSwgMHhkNDM4YWVjYSksCi0g
ICAgICAgICBUT0JOKDB4ZGQ0Mzk1NmIsIDB4YzM5ZDNiY2IpLCBUT0JOKDB4MWEzMWNhMDAsIDB4
YjMyYjJkNjMpLAotICAgICAgICAgVE9CTigweGQ2NzEzM2I4LCAweDVjNDE3YTE4KSwgVE9CTigw
eGQwOGU0NzkwLCAweDJlZjQ0MmM4KSwKLSAgICAgICAgIFRPQk4oMHg5OGNiMWFlOSwgMHgyNTVj
MDk4MCksIFRPQk4oMHg0YmQ4NjM4MSwgMHgyYjRhNzM5ZiksCi0gICAgICAgICBUT0JOKDB4NWE1
YzMxZTEsIDB4MWU0YTQ1YTEpLCBUT0JOKDB4MWU1ZDU1ZmUsIDB4OWNiMGRiMmYpLAotICAgICAg
ICAgVE9CTigweDc0NjYxYjA2LCAweDhmZjVjYzI5KSwgVE9CTigweDAyNmIzODlmLCAweDBlYjhh
NGY0KSwKLSAgICAgICAgIFRPQk4oMHg1MzZiMjFhNCwgMHg1ODg0OGMyNCksIFRPQk4oMHgyZTVi
ZjhlYywgMHg4MWRjNzJiMCksCi0gICAgICAgICBUT0JOKDB4MDNjMTg3ZDAsIDB4YWQ4ODZhYWMp
LCBUT0JOKDB4NWMxNjg3OGEsIDB4Yjc3MWI2NDUpLAotICAgICAgICAgVE9CTigweGIwN2RmYzZm
LCAweGM3NDA0NWFiKSwgVE9CTigweDJjNjM2MGJmLCAweDc4MDBjYWVkKSwKLSAgICAgICAgIFRP
Qk4oMHgyNDI5NWJiNSwgMHhiOWM5NzJhMyksIFRPQk4oMHhjOWU2Zjg4ZSwgMHg3YzlhNmRiYSks
Ci0gICAgICAgICBUT0JOKDB4OTBmZmJmMjQsIDB4OTJhNzlhYTYpLCBUT0JOKDB4ZGUyOWQ1MGEs
IDB4NDFjMjZhYzIpLAotICAgICAgICAgVE9CTigweDlmMGFmNDgzLCAweGQzMDljYmU2KSwgVE9C
TigweDViMDIwZDhhLCAweGUwYmNlZDRmKSwKLSAgICAgICAgIFRPQk4oMHg2MDZlOTg2ZCwgMHhi
MzgwMjNlMyksIFRPQk4oMHhhZDhmMmM5ZCwgMHgxYWJjNjkzMyksCi0gICAgICAgICBUT0JOKDB4
MTkyOTJlMWQsIDB4ZTc0MDBlOTMpLCBUT0JOKDB4ZmUzZTE4YTksIDB4NTJiZTVlNGQpLAotICAg
ICAgICAgVE9CTigweGU4ZTk3NzFkLCAweDJlMDY4MGJmKSwgVE9CTigweDhjNWJlYzk4LCAweGM1
NGRiMDYzKSwKLSAgICAgICAgIFRPQk4oMHgyYWY5NjYyYSwgMHg3NGE1NWQxZiksIFRPQk4oMHhl
M2ZiZjI4ZiwgMHgwNDZmNjZkOCksCi0gICAgICAgICBUT0JOKDB4YTNhNzJhYjQsIDB4ZDRkYzQ3
OTQpLCBUT0JOKDB4MDk3NzlmNDUsIDB4NWM3YzJkZDgpLAotICAgICAgICAgVE9CTigweGQ4OTNi
ZGFmLCAweGMzZDE5ZDhkKSwgVE9CTigweGQ1YTc1MDk0LCAweDU3ZDZhNmRmKSwKLSAgICAgICAg
IFRPQk4oMHg4Y2Y4ZmVmOSwgMHg5NTJlNjI1NSksIFRPQk4oMHgzZGE2N2NmYiwgMHhkYTlhOGFm
ZiksCi0gICAgICAgICBUT0JOKDB4NGMyM2Y2MmEsIDB4MmMxNjBkY2QpLCBUT0JOKDB4MzRlNmM1
ZTMsIDB4OGY5MGVhZWYpLAotICAgICAgICAgVE9CTigweDM1ODY1NTE5LCAweGE5YTY1ZDVhKSwg
VE9CTigweDA3YzQ4YWFlLCAweDhmZDM4YTNkKSwKLSAgICAgICAgIFRPQk4oMHhiN2U3YWVkYSwg
MHg1MDA2ODUyNyksIFRPQk4oMHgyYzA5ZWYyMywgMHgxYzkwOTM2YSksCi0gICAgICAgICBUT0JO
KDB4MzFlY2ZlYjYsIDB4ZTg3OTMyNGMpLCBUT0JOKDB4YTA4NzFmNmIsIDB4ZmIwZWM5MzgpLAot
ICAgICAgICAgVE9CTigweGIxZjBmYjY4LCAweGQ4NGQ4MzVkKSwgVE9CTigweGM5MGNhZjM5LCAw
eDg2MWRjMWU2KSwKLSAgICAgICAgIFRPQk4oMHgxMmU1YjA0NiwgMHg3NTk0ZjhkNyksIFRPQk4o
MHgyNjg5N2FlMiwgMHg2NTAxMmI5MiksCi0gICAgICAgICBUT0JOKDB4YmNmNjhhMDgsIDB4YTRk
Njc1NWQpLCBUT0JOKDB4NDAzZWU0MWMsIDB4MDk5MWZiZGEpLAotICAgICAgICAgVE9CTigweDcz
M2UzNDNlLCAweDNiYmYxN2U4KSwgVE9CTigweGQyYzc5ODBkLCAweDY3OWIzZDY1KSwKLSAgICAg
ICAgIFRPQk4oMHgzMzA1NjIzMiwgMHhkMmUxMTMwNSksIFRPQk4oMHg5NjZiZTQ5MiwgMHhmM2Mw
N2E2ZiksCi0gICAgICAgICBUT0JOKDB4NmE4ODc4ZmYsIDB4YmIxNTUwOWQpLCBUT0JOKDB4ZmYy
MjExMDEsIDB4MGE5YjU5YTQpLAotICAgICAgICAgVE9CTigweDZjOWY1NjRhLCAweGFiZTMwMTI5
KSwgVE9CTigweGM2ZjJjOTQwLCAweDMzNmU2NGNmKSwKLSAgICAgICAgIFRPQk4oMHgwZmU3NTI2
MiwgMHg4YjBjODAyMiksIFRPQk4oMHhiZTAyNjdlOSwgMHg2YWU4ZGI4NyksCi0gICAgICAgICBU
T0JOKDB4MjJlMTkyZjEsIDB4OTNiYzA0MmIpLCBUT0JOKDB4ZjA4NWI1MzQsIDB4YjIzN2M0NTgp
LAotICAgICAgICAgVE9CTigweGEwZDE5MmJkLCAweDgzMmM0MTY4KSwgVE9CTigweDdhNzZlOWUz
LCAweGJkZjYyNzFkKSwKLSAgICAgICAgIFRPQk4oMHg1MmE4ODJmYSwgMHhiODg5MTFiNSksIFRP
Qk4oMHhjODUzNDVlNCwgMHhiNGRiMGViNSksCi0gICAgICAgICBUT0JOKDB4YTNiZTAyYTYsIDB4
ODFhN2MzZmYpLCBUT0JOKDB4NTE4ODljOGMsIDB4ZjBlYzA0NjkpLAotICAgICAgICAgVE9CTigw
eDlkMDMxMzY5LCAweGE1ZTgyOWU1KSwgVE9CTigweGNiYjRjNmZjLCAweDE2MDdhYTQxKSwKLSAg
ICAgICAgIFRPQk4oMHg3NWFjNTlhNiwgMHgyNDFkODRjMSksIFRPQk4oMHhjMDQzZjJiZiwgMHg4
ODI5ZTBlZSksCi0gICAgICAgICBUT0JOKDB4ODJhMzhmNzUsIDB4OGVhNWUxODUpLCBUT0JOKDB4
OGJkYTQwYjksIDB4ZDg3Y2JkOWYpLAotICAgICAgICAgVE9CTigweDllNjVlNzVlLCAweDJkOGZj
NjAxKSwgVE9CTigweDNkNTE1Zjc0LCAweGEzNTY5MGIzKSwKLSAgICAgICAgIFRPQk4oMHg1MzRh
Y2Y0ZiwgMHhkYTc5ZTVhYyksIFRPQk4oMHg2OGI4M2IzYSwgMHg4NjMwMjE1ZiksCi0gICAgICAg
ICBUT0JOKDB4NWM3NDhiMmUsIDB4ZDA4NTc1NmUpLCBUT0JOKDB4YjAzMTcyNTgsIDB4ZTVkMzdj
YjIpLAotICAgICAgICAgVE9CTigweDY3MzU4NDFhLCAweGM1Y2NjMmM0KSwgVE9CTigweDdkN2Rj
OTZiLCAweDNkOWQ1MDY5KSwKLSAgICAgICAgIFRPQk4oMHhhMTQ3ZTQxMCwgMHhmZDE3NTRiZCks
IFRPQk4oMHg2NTI5NmU5NCwgMHhkMzk5ZGRkNSksCi0gICAgICAgICBUT0JOKDB4ZjZiNWIyZDAs
IDB4YmM4ZmE1YmMpLCBUT0JOKDB4OGE1ZWFkNjcsIDB4NTAwYzI3N2IpLAotICAgICAgICAgVE9C
TigweDIxNDYyNWU2LCAweGRmYTA4YTVkKSwgVE9CTigweDUxZmRmZWRjLCAweDk1OWNmMDQ3KSwK
LSAgICAgICAgIFRPQk4oMHg2YmM5NDMwYiwgMHgyODlmY2EzMiksIFRPQk4oMHhlMzZmZjBjZiwg
MHg5ZDliZGMzZiksCi0gICAgICAgICBUT0JOKDB4MmZlMTg3Y2IsIDB4NThlYTBlZGUpLCBUT0JO
KDB4ZWQ2NmFmMjAsIDB4NWE5MDBiM2YpLAotICAgICAgICAgVE9CTigweDAwZTA5NjhiLCAweDVm
YTlmNGQ2KSwgVE9CTigweDJkNDA2NmNlLCAweDM3YTM2MmU3KSwKLSAgICAgICAgIFRPQk4oMHhh
OTlhOTc0OCwgMHhiZDA3ZTc3MiksIFRPQk4oMHg3MTA5ODljMCwgMHgwNmE0ZjFkMCksCi0gICAg
ICAgICBUT0JOKDB4ZDVkZWRmMzUsIDB4Y2U0MGNiZDgpLCBUT0JOKDB4YWI1NWM1ZjAsIDB4MTc0
MzI5M2QpLAotICAgICAgICAgVE9CTigweDc2NmYxMTQ0LCAweDhhYTI0ZTJjKSwgVE9CTigweDk0
ZDg3NGY4LCAweDYwNWZiY2I0KSwKLSAgICAgICAgIFRPQk4oMHhhMzY1ZjBlOCwgMHhhNTE4MDAx
YiksIFRPQk4oMHhlZTYwNWViNiwgMHg5ZDA0ZWYwZiksCi0gICAgICAgICBUT0JOKDB4NWEzOTE1
Y2QsIDB4YmE4ZDRkMjUpLCBUT0JOKDB4NDRjMGUxYjgsIDB4YjUxMTM0NzIpLAotICAgICAgICAg
VE9CTigweGNiYjAyNGU4LCAweDhiNjc0MGRjKSwgVE9CTigweDg5MDg3YTUzLCAweGVlMWQ0ZjBj
KSwKLSAgICAgICAgIFRPQk4oMHhhODhmYTA1YywgMHgxZmM0ZTM3MiksIFRPQk4oMHg4YmYzOTVj
YiwgMHhhZjhiM2FmMiksCi0gICAgICAgICBUT0JOKDB4MWU3MWM5YTEsIDB4ZGViODU2OGIpLCBU
T0JOKDB4YTM1ZGFlYTAsIDB4ODBmYjNkMzIpLAotICAgICAgICAgVE9CTigweGU4YjZmMjY2LCAw
eDJjZjhmYjgxKSwgVE9CTigweDZkNTFhZmU4LCAweDk0OTA2OTZhKSwKLSAgICAgICAgIFRPQk4o
MHg4MWJlYWM2ZSwgMHg1MTgwM2ExOSksIFRPQk4oMHhlM2QyNGI3ZiwgMHg4NjIxOTA4MCksCi0g
ICAgICAgICBUT0JOKDB4NzI3Y2ZkOWQsIDB4ZGY2ZjQ2M2MpLCBUT0JOKDB4OGM2ODY1Y2EsIDB4
NzIyODRlZTgpLAotICAgICAgICAgVE9CTigweDMyYzg4YjdkLCAweGI3NDNmNGVmKSwgVE9CTigw
eDM3OTM5MDliLCAweGU3ZDExZGNlKSwKLSAgICAgICAgIFRPQk4oMHhkMzk4ZjkyMiwgMHgyZmYy
ZWJlOCksIFRPQk4oMHgyYzcwY2E0NCwgMHhlNWU0OTc5NiksCi0gICAgICAgICBUT0JOKDB4ZGY0
ZDk5MjksIDB4Y2IxMTMxYjEpLCBUT0JOKDB4NzgyNmYyOTgsIDB4MjU4ODhlNzkpLAotICAgICAg
ICAgVE9CTigweDRkM2ExMTJjLCAweGYxZDg3NDBhKSwgVE9CTigweDAwMzg0Y2I2LCAweDI3MGFm
YThiKSwKLSAgICAgICAgIFRPQk4oMHhjYjY0MTI1YiwgMHgzYWI0ODA5NSksIFRPQk4oMHgzNDUx
YzI1NiwgMHg2MmQwNTEwNiksCi0gICAgICAgICBUT0JOKDB4ZDczZDU3N2QsIDB4YTQ5NTU4NDUp
LCBUT0JOKDB4Mzk1NzBjMTYsIDB4YmY5ZjQ0MzMpLAotICAgICAgICAgVE9CTigweGQ3ZGZhYWQz
LCAweGFkZWNmMjYzKSwgVE9CTigweGYxYzNkOGQxLCAweGRjNzZlMTAyKSwKLSAgICAgICAgIFRP
Qk4oMHg1ZTc3NGE1OCwgMHg1NGM2YTgzNiksIFRPQk4oMHhkYWQ0YjY3MiwgMHgzZTkyZDQ3Yiks
Ci0gICAgICAgICBUT0JOKDB4YmU3ZTk5MGYsIDB4ZjBkNzk2YTApLCBUT0JOKDB4NWZjNjI0Nzgs
IDB4ZGYwZThiMDIpLAotICAgICAgICAgVE9CTigweDhhYWU4YmY0LCAweDAzMGMwMGFkKSwgVE9C
TigweDNkMmRiOTNiLCAweDkwMDRiYTBmKSwKLSAgICAgICAgIFRPQk4oMHhlNDhjOGE3OSwgMHhk
ODVkNWRkYyksIFRPQk4oMHhlOTA3Y2FhNywgMHg2YmIwN2YzNCksCi0gICAgICAgICBUT0JOKDB4
NThkYjM0M2EsIDB4YTM5ZWFlZDUpLCBUT0JOKDB4MGVhNmUwMDcsIDB4YWRhZjU3MjQpLAotICAg
ICAgICAgVE9CTigweGUwMGRmMTY5LCAweGQyMzIzM2YzKSwgVE9CTigweDNlMzIyNzk2LCAweDc3
Y2I2MzdmKSwKLSAgICAgICAgIFRPQk4oMHgxZjg5N2MwZSwgMHgxZGEwY2Y2YyksIFRPQk4oMHhh
NjUxZjVkOCwgMHgzMWQ2YmJkZCksCi0gICAgICAgICBUT0JOKDB4ZGQ2MWFmMTksIDB4MWEyMzBj
NzYpLCBUT0JOKDB4YmQ1MjcyNzIsIDB4Y2RhYTVlNGEpLAotICAgICAgICAgVE9CTigweGNhNzUz
NjM2LCAweGQwYWJjZDdlKSwgVE9CTigweDc4YmRkMzdjLCAweDM3MGJkOGRjKSwKLSAgICAgICAg
IFRPQk4oMHhjMjM5MTZjMiwgMHgxN2NkOTNmZSksIFRPQk4oMHg2NWI5N2E0ZCwgMHhkYWRjZTZl
MiksCi0gICAgICAgICBUT0JOKDB4ZTA0ZWQ0ZWIsIDB4MTc0ZTQyZjgpLCBUT0JOKDB4MTQ5MWNj
YWEsIDB4YmIyMTQ4MGEpLAotICAgICAgICAgVE9CTigweDE0NWE4MjgwLCAweDIzMTk2MzMyKSwg
VE9CTigweDNjMzg2MmQ3LCAweDU4N2I0NzlhKSwKLSAgICAgICAgIFRPQk4oMHg5ZjRhODhhMywg
MHgwMWRjZDBlZCksIFRPQk4oMHg0ZGEyYjdlZiwgMHgzZWExMmYxZiksCi0gICAgICAgICBUT0JO
KDB4ZjhlN2FlMzMsIDB4YjEyNmU0OGUpLCBUT0JOKDB4NDA0YTBiMzIsIDB4ZjQ5NGUyMzcpLAot
ICAgICAgICAgVE9CTigweDliZWFjNDc0LCAweGM1NWFjYWRiKSwgVE9CTigweDRlZTVjZjNiLCAw
eGNiZWM5ZmQ5KSwKLSAgICAgICAgIFRPQk4oMHgzMzZiMzNiOSwgMHg3ZGYzYzhjMyksIFRPQk4o
MHhiZDkwNWZlMywgMHhiNzY4MDhmZCksCi0gICAgICAgICBUT0JOKDB4OGY0MzY5ODEsIDB4YWE0
NWMxNmEpLCBUT0JOKDB4MjU1YzViZmEsIDB4M2RkMjdiNjIpLAotICAgICAgICAgVE9CTigweDcx
OTY1Y2JmLCAweGMzZGQ5YjRkKSwgVE9CTigweGNlMjNlZGJmLCAweGZjMDY4YTg3KSwKLSAgICAg
ICAgIFRPQk4oMHhiNzhkNDcyNSwgMHg3NDViMDI5YiksIFRPQk4oMHg3NDYxMDcxMywgMHhjZWZk
ZDliZCksCi0gICAgICAgICBUT0JOKDB4NzExNmY3NWYsIDB4MTI2NmJmNTIpLCBUT0JOKDB4MDIw
NDY3MjIsIDB4MThlNDliYjYpLAotICAgICAgICAgVE9CTigweGRmNDNkZjlmLCAweDNkNmYxOWUz
KSwgVE9CTigweGVmMWJjN2QwLCAweGU2ODVjYjJmKSwKLSAgICAgICAgIFRPQk4oMHhjZGRiMjdj
MSwgMHg3MDc4YzQzMiksIFRPQk4oMHhlMTk2MWI5YywgMHhiNzdmZWRiNyksCi0gICAgICAgICBU
T0JOKDB4MWVkYzJmNWMsIDB4YzIyOTA1NzApLCBUT0JOKDB4MmMzZmVmY2EsIDB4MTljYmQ4ODYp
LAotICAgICAgICAgVE9CTigweGNmODgwYTM2LCAweGMyYWYzODlhKSwgVE9CTigweDk2YzYxMGZk
LCAweGJkYTcxY2VhKSwKLSAgICAgICAgIFRPQk4oMHhmMDM5NzdhOSwgMHgzMmFhODQ2MyksIFRP
Qk4oMHg4ZWI3NzYzZiwgMHg4NTg2ZDkwYSksCi0gICAgICAgICBUT0JOKDB4M2YzNDI0NTQsIDB4
MmEyOTZlNzcpLCBUT0JOKDB4Yzg3MTg2ODMsIDB4NDI4MzdhMzUpLAotICAgICAgICAgVE9CTigw
eDdkYzcxMDkwLCAweDZhMDljNzMxKSwgVE9CTigweDU0Nzc4ZmZiLCAweDUxYjgxNmRiKSwKLSAg
ICAgICAgIFRPQk4oMHg2YjMzYmZlYywgMHhhZjA2ZGVmZCksIFRPQk4oMHhmZTNjMTA1ZiwgMHg4
NTkyYjcwYiksCi0gICAgICAgICBUT0JOKDB4ZjkzN2ZkYTQsIDB4NjFkYTYxMTQpLCBUT0JOKDB4
M2MxM2U2NTEsIDB4NGMyNjZhZDcpLAotICAgICAgICAgVE9CTigweGUzNjNhODI5LCAweDg1NTkz
OGU4KSwgVE9CTigweDJlZWI1ZDllLCAweDlkZTU0YjcyKSwKLSAgICAgICAgIFRPQk4oMHhiZWI5
M2IwZSwgMHgyMGNjZmFiOSksIFRPQk4oMHgzZGZmYmI1ZiwgMHgyNWU2MWEyNSksCi0gICAgICAg
ICBUT0JOKDB4N2Y2NTVlNDMsIDB4MWFjYzA5M2QpLCBUT0JOKDB4MGNiNmNjM2QsIDB4Mzk2NGNl
NjEpLAotICAgICAgICAgVE9CTigweDZhYjI4M2ExLCAweGU1ZTliNDYwKSwgVE9CTigweDU1ZDc4
N2M1LCAweGExYzdlNzJkKSwKLSAgICAgICAgIFRPQk4oMHg0ZDJlZmQ0NywgMHhkZWFkYmYwMiks
IFRPQk4oMHgxMWU4MDIxOSwgMHhhYzQ1OTA2OCksCi0gICAgICAgICBUT0JOKDB4ODEwYzc2MjYs
IDB4NzFmMzExZjApLCBUT0JOKDB4ZmExN2VmOGQsIDB4NGFiNmVmNTMpLAotICAgICAgICAgVE9C
TigweGFmNDdmZDI1LCAweDkzZTQzYmZmKSwgVE9CTigweDVjYjVmZjNmLCAweDBiZTQwNjMyKSwK
LSAgICAgICAgIFRPQk4oMHg1NDY4NzEwNiwgMHg4ZWU2MWRhMyksIFRPQk4oMHg3NzY0MTk2ZSwg
MHhiMDhhZmQwZiksCi0gICAgICAgICBUT0JOKDB4ODMxYWIzZWQsIDB4ZjAyOTBhOGYpLCBUT0JO
KDB4Y2FlODE5NjYsIDB4Y2I0N2MzODcpLAotICAgICAgICAgVE9CTigweGFhZDdkZWNlLCAweDE4
NGVmYjRmKSwgVE9CTigweGRjZmM1M2IzLCAweDQ3NDkxMTBlKSwKLSAgICAgICAgIFRPQk4oMHg2
Njk4ZjIzYywgMHg0Y2I2MzJmOSksIFRPQk4oMHhjNDJhMWFkNiwgMHhiOTFmODA2NyksCi0gICAg
ICAgICBUT0JOKDB4YjExNmE4MWQsIDB4NjI4NDE4MGEpLCBUT0JOKDB4ZWJlZGY1ZjgsIDB4ZTkw
MTMyNmYpLAotICAgICAgICAgVE9CTigweGYyMjc0YzlmLCAweDk3ZTNlMDQ0KSwgVE9CTigweDQy
MDE4NTIwLCAweDExZDA5ZmM5KSwKLSAgICAgICAgIFRPQk4oMHg1NmE2NWYxNywgMHhkMThlNmUy
MyksIFRPQk4oMHgyZWE2MWUyYSwgMHgzNTJiNjgzYyksCi0gICAgICAgICBUT0JOKDB4MjdkMjkx
YmMsIDB4NTc1ZWFhOTQpLCBUT0JOKDB4OWU3YmM3MjEsIDB4YjhmZjUyMmQpLAotICAgICAgICAg
VE9CTigweDVmNzI2OGJmLCAweGE3ZjA0ZDZmKSwgVE9CTigweDU4NjhjNzNmLCAweGFiYTQxNzQ4
KSwKLSAgICAgICAgIFRPQk4oMHg5Zjg1YzJkYiwgMHg3YmUwZWVhZCksIFRPQk4oMHg1MTFlNzg0
MiwgMHhmZjcxOTEzNSksCi0gICAgICAgICBUT0JOKDB4NWEwNmIxZTksIDB4YzVlYTkwZDcpLCBU
T0JOKDB4MGMxOWUyODMsIDB4MjZmYWI2MzEpLAotICAgICAgICAgVE9CTigweDhhZjhmMGNmLCAw
eGU5MjA2YzU1KSwgVE9CTigweDg5Mzg5Y2I0LCAweDM1NTNjMDZhKSwKLSAgICAgICAgIFRPQk4o
MHgzOWRiZWQ5NywgMHhmNjVmODAwNCksIFRPQk4oMHgwNjIxYjAzNywgMHhjNTA4OTkxZCksCi0g
ICAgICAgICBUT0JOKDB4MWM1MmU2MzUsIDB4OTZlNzhjYzQpLCBUT0JOKDB4NTM4NWM4YjIsIDB4
MGMwNmI0YTgpLAotICAgICAgICAgVE9CTigweGQ4NGRkZmRiLCAweGIwZTg3ZDAzKSwgVE9CTigw
eGM0OWRmYjY2LCAweDkzNGJhZmFkKSwKLSAgICAgICAgIFRPQk4oMHg3MDcxZTE3MCwgMHg1OWY3
MDc3MiksIFRPQk4oMHgzYTA3M2E4NCwgMHgzYTFkYjU2YiksCi0gICAgICAgICBUT0JOKDB4MDM0
OTQ5MDMsIDB4M2I4YWYxOTApLCBUT0JOKDB4N2Q4ODJkZTMsIDB4ZDMyOTIwZjApLAotICAgICAg
ICAgVE9CTigweDkxNjMzZjBhLCAweGIyY2Y4OTQwKSwgVE9CTigweDcyYjBiMTc4LCAweDZmOTQ4
ZjUxKSwKLSAgICAgICAgIFRPQk4oMHgyZDI4ZGMzMCwgMHg3ODI2NTNjOCksIFRPQk4oMHg4ODgy
OTg0OSwgMHhkYjkwM2EwNSksCi0gICAgICAgICBUT0JOKDB4YjgwOTVkMGMsIDB4NmExOWQyYmIp
LCBUT0JOKDB4NGI5ZTdmMGMsIDB4ODZmNzgyY2IpLAotICAgICAgICAgVE9CTigweDdhZjczOTg4
LCAweDJkOTA3MDY0KSwgVE9CTigweGQxMmJlMGZlLCAweDhiMzI2NDNjKSwKLSAgICAgICAgIFRP
Qk4oMHgzNThlZDIzZCwgMHgwZTE2NWRjMyksIFRPQk4oMHgzZDQ3Y2U2MiwgMHg0ZTIzNzhjZSks
Ci0gICAgICAgICBUT0JOKDB4N2UyYmIwYjksIDB4ZmViOGEwODcpLCBUT0JOKDB4MzI0NmU4YWUs
IDB4ZTI5ZTEwYjkpLAotICAgICAgICAgVE9CTigweDQ1OWY0ZWM3LCAweDAzY2UyYjRkKSwgVE9C
TigweGU5YjRjYTFiLCAweGJiYzA3N2NmKSwKLSAgICAgICAgIFRPQk4oMHgyNjEzYjRmMiwgMHgw
ZTk5NDBjMSksIFRPQk4oMHhmYzU5OGJiOSwgMHgwNDdkMWViMSksCi0gICAgICAgICBUT0JOKDB4
OTc0NGM2MmIsIDB4NDUwMzYwOTkpLCBUT0JOKDB4YTlkZWU3NDIsIDB4MTY3YzY1ZDgpLAotICAg
ICAgICAgVE9CTigweDBjNTExNTI1LCAweGRhYmUxOTQzKSwgVE9CTigweGRhMTEwNTU0LCAweDkz
YzZjNjI0KSwKLSAgICAgICAgIFRPQk4oMHhhZTAwYTUyYywgMHg2NTFhM2JlMiksIFRPQk4oMHhj
ZGE1MTExZCwgMHg4ODQ0NDlhNiksCi0gICAgICAgICBUT0JOKDB4MDYzYzA2ZjQsIDB4ZmYzM2Jl
ZDEpLCBUT0JOKDB4NzNiYWFmOWEsIDB4MGQzZDc2YjQpLAotICAgICAgICAgVE9CTigweDUyZmIw
YzlkLCAweDdmYzYzNjY4KSwgVE9CTigweDY4ODZjOWRkLCAweDBjMDM5Y2RlKSwKLSAgICAgICAg
IFRPQk4oMHg2MDJiZDU5OSwgMHg1NWIyMjM1MSksIFRPQk4oMHhiMDBjYWIwMiwgMHgzNjBjN2Mx
MyksCi0gICAgICAgICBUT0JOKDB4OGNiNjE2YmMsIDB4ODFiNjk0NDIpLCBUT0JOKDB4NDE0ODY3
MDAsIDB4YjU1YzNjZWUpLAotICAgICAgICAgVE9CTigweDcxMDkzMjgxLCAweGY0OWJhMjc4KSwg
VE9CTigweGFkOTU2ZDljLCAweDY0YTUwNzEwKSwKLSAgICAgICAgIFRPQk4oMHg5NTYxZjI4Yiwg
MHg2MzhhN2U4MSksIFRPQk4oMHg1NDE1NWNkZiwgMHg1OTgwZGRjMyksCi0gICAgICAgICBUT0JO
KDB4YjJkYjRhOTYsIDB4ZDI2ZjI0N2EpLCBUT0JOKDB4OWQ3NzRlNGUsIDB4NDc4N2QxMDApLAot
ICAgICAgICAgVE9CTigweDFhOWU2ZTJlLCAweDA3ODYzN2QyKSwgVE9CTigweDFjMzYzZTJkLCAw
eDVlMGFlMDZhKSwKLSAgICAgICAgIFRPQk4oMHg3NDkzNDgzZSwgMHhlOWNmYTM1NCksIFRPQk4o
MHg3Njg0M2NiMywgMHg3Zjc0Yjk4ZCksCi0gICAgICAgICBUT0JOKDB4YmFjYTY1OTEsIDB4ZDRi
NjY5NDcpLCBUT0JOKDB4YjQ1MmNlOTgsIDB4MDQ0NjBhOGMpLAotICAgICAgICAgVE9CTigweDY4
MzBkMjQ2LCAweDQzNzY4ZjU1KSwgVE9CTigweGY0MTk3ZWQ4LCAweDdkZmYxMmRmKSwKLSAgICAg
ICAgIFRPQk4oMHg2NTIxYjQ3MiwgMHg0MDBkZDBmNyksIFRPQk4oMHg1OWY1Y2E4ZiwgMHg0YjFl
NzA5MyksCi0gICAgICAgICBUT0JOKDB4NmZlZmYxMWIsIDB4MDgwMzM4YWUpLCBUT0JOKDB4MGFk
YTMxZjYsIDB4YTI5Y2EzYzYpLAotICAgICAgICAgVE9CTigweDI0Nzk0ZWI2LCAweDk0YTJjMjE1
KSwgVE9CTigweGQ4M2E0M2FiLCAweDA1YTU3YWI0KSwKLSAgICAgICAgIFRPQk4oMHgyNjRhNTQz
YSwgMHgyYTZmODlmZSksIFRPQk4oMHgyYzJhMzg2OCwgMHhkZDVlYzdjMiksCi0gICAgICAgICBU
T0JOKDB4ZDMzNzM5NDAsIDB4ODQzOWQ5YjIpLCBUT0JOKDB4NzE1ZWE2NzIsIDB4MGFjZDFmMTEp
LAotICAgICAgICAgVE9CTigweDQyYzFkMjM1LCAweGU3ZTZjYzE5KSwgVE9CTigweDgxY2U2ZTk2
LCAweGI5OTA1ODVjKSwKLSAgICAgICAgIFRPQk4oMHgwNGU1ZGZlMCwgMHhkODA5YzdiZCksIFRP
Qk4oMHhkN2IyNTgwYywgMHg4ZjEwNTBhYiksCi0gICAgICAgICBUT0JOKDB4NmQ5MWFkNzgsIDB4
ZDhhNDE3NmYpLCBUT0JOKDB4MGFmNTU2ZWUsIDB4NGUyZTg5N2MpLAotICAgICAgICAgVE9CTigw
eDE2MmE4YjczLCAweDkyMWRlMGFjKSwgVE9CTigweDUyYWM5YzIyLCAweDdlYTc4NDAwKSwKLSAg
ICAgICAgIFRPQk4oMHhlZTJhNGVlYSwgMHhlZmNlMjE3NCksIFRPQk4oMHhiZTYxODQ0ZSwgMHg2
ZDYzN2Y3OSksCi0gICAgICAgICBUT0JOKDB4MDQ5MWYxYmMsIDB4Nzg5YTI4M2IpLCBUT0JOKDB4
NzJkM2FjM2QsIDB4ODgwODM2ZjQpLAotICAgICAgICAgVE9CTigweGFhMWM1ZWEzLCAweDg4ZTU0
MDJkKSwgVE9CTigweDFiMTkyNDIxLCAweGQ1Y2M0NzNkKSwKLSAgICAgICAgIFRPQk4oMHg1YzBi
OTk5OCwgMHg5ZGM4NGNhYyksIFRPQk4oMHhiMGE4NDgyZCwgMHg5YzZlNzViOCksCi0gICAgICAg
ICBUT0JOKDB4NjM5OTYxZDAsIDB4M2ExOTFjZTIpLCBUT0JOKDB4ZGEzYmM4NjUsIDB4NmQ4Mzc5
MzApLAotICAgICAgICAgVE9CTigweGNhOTkwNjUzLCAweDA1NmU2ZjhmKSwgVE9CTigweDg0ODYx
YzQxLCAweDY0ZDEzM2E3KSwKLSAgICAgICAgIFRPQk4oMHg4YjQwMzI3NiwgMHg3NDZhYmU0MCks
IFRPQk4oMHhiN2I0ZDUxYSwgMHhlYmY4ZTMwMyksCi0gICAgICAgICBUT0JOKDB4MDViNDMyMTEs
IDB4MjIwYTI1NWQpLCBUT0JOKDB4Yzk5NzE1MmMsIDB4MDI0MTllNmUpLAotICAgICAgICAgVE9C
TigweDc2ZmY0N2I2LCAweDYzMGMyZmVhKSwgVE9CTigweDUwNTE4Njc3LCAweDI4MWZkYWRlKSwK
LSAgICAgICAgIFRPQk4oMHgzMjgzYjhiYSwgMHhjZjkwMmIwYiksIFRPQk4oMHg4ZDRiNGViNSwg
MHgzN2RiMzAzYiksCi0gICAgICAgICBUT0JOKDB4Y2M4OWY0MmQsIDB4NzU1MDExYmMpLCBUT0JO
KDB4YjQzZDc0YmIsIDB4ZGQwOWQxOWIpLAotICAgICAgICAgVE9CTigweDY1NzQ2YmM5LCAweDhh
ZGJhMzUwKSwgVE9CTigweDM2NGVhZjhjLCAweGI1MWMxOTI3KSwKLSAgICAgICAgIFRPQk4oMHgx
M2M3NjU5NiwgMHgxMGFkNzJlYyksIFRPQk4oMHgzMDA0NTEyMSwgMHhmOGQ0MGMyMCksCi0gICAg
ICAgICBUT0JOKDB4NmQyZDk5YjcsIDB4ZWE3Yjk3OWIpLCBUT0JOKDB4Y2Q3OGNkNzQsIDB4ZTZm
YjNiY2QpLAotICAgICAgICAgVE9CTigweDExZTQ1YTllLCAweDg2Y2ZmYmZlKSwgVE9CTigweDc4
YTYxY2Y0LCAweDYzNzAyNGY2KSwKLSAgICAgICAgIFRPQk4oMHhkMDZiYzg3MiwgMHgzZDUwMjI5
NSksIFRPQk4oMHhmMTM3Njg1NCwgMHg0NThjYjI4OCksCi0gICAgICAgICBUT0JOKDB4YjlkYjI2
YTEsIDB4MzQyZjg1ODYpLCBUT0JOKDB4ZjMzZWZmY2YsIDB4NGJlZWUwOWUpLAotICAgICAgICAg
VE9CTigweGQ3ZTBjNGNkLCAweGIzMGNmYjNhKSwgVE9CTigweDZkMDliOGMxLCAweDZjOWRiNGM4
KSwKLSAgICAgICAgIFRPQk4oMHg0MGJhMWE0MiwgMHgwN2M4ZDlkZiksIFRPQk4oMHg2ZmQ0OTVm
NywgMHgxYzUyYzY2ZCksCi0gICAgICAgICBUT0JOKDB4ZmIwZTE2OWYsIDB4Mjc1MjY0ZGEpLCBU
T0JOKDB4ODBjMmI3NDYsIDB4ZTU3ZDgzNjIpLAotICAgICAgICAgVE9CTigweGVkZDk4N2Y3LCAw
eDQ5YWQ3MjIyKSwgVE9CTigweGZkYzIyOWFmLCAweDQzOThlYzdiKX0sCi0gICAgICAgIHtUT0JO
KDB4YjBkMWVkODQsIDB4NTI2NjZhNTgpLCBUT0JOKDB4NGJjYjZlMDAsIDB4ZTZhOWMzYzIpLAot
ICAgICAgICAgVE9CTigweDNjNTc0MTFjLCAweDI2OTA2NDA4KSwgVE9CTigweGNmYzIwNzU1LCAw
eDEzNTU2NDAwKSwKLSAgICAgICAgIFRPQk4oMHhhMDhiMWM1MCwgMHg1Mjk0ZGJhMyksIFRPQk4o
MHhhMzBiYTI4NiwgMHg4YjdkZDMxZSksCi0gICAgICAgICBUT0JOKDB4ZDcwYmE5MGUsIDB4OTkx
ZWNhNzQpLCBUT0JOKDB4MDk0ZTE0MmMsIDB4ZTc2MmMyYjkpLAotICAgICAgICAgVE9CTigweGI4
MWQ3ODNlLCAweDk3OWYzOTI1KSwgVE9CTigweDFlZmQxMzBhLCAweGFmNGM4OWE3KSwKLSAgICAg
ICAgIFRPQk4oMHg1MjVjMjE0NCwgMHhmZDFiZjdmYSksIFRPQk4oMHg0YjI5NjkwNCwgMHgxYjI2
NWE5ZSksCi0gICAgICAgICBUT0JOKDB4ZWQ4ZTk2MzQsIDB4YjlkYjY1YjYpLCBUT0JOKDB4MzVj
ODJlMzIsIDB4MDM1OTlkOGEpLAotICAgICAgICAgVE9CTigweGRhYTdhNTRmLCAweDQwMzU2M2Yz
KSwgVE9CTigweDlkZjA4OGFkLCAweDAyMmMzOGFiKSwKLSAgICAgICAgIFRPQk4oMHhlNWNmYjA2
NiwgMHhiYjNmZDMwYSksIFRPQk4oMHg0MjkxNjlkYSwgMHhlZmYwMzU0ZSksCi0gICAgICAgICBU
T0JOKDB4ODA5Y2Y4NTIsIDB4MzUyNGUzNmMpLCBUT0JOKDB4MTM2ZjRmYjMsIDB4MDE1NWJlMWQp
LAotICAgICAgICAgVE9CTigweDQ4MjZhZjAxLCAweDFmYmJhNzEyKSwgVE9CTigweDZlZjBmMGI0
LCAweDUwNmJhMWExKSwKLSAgICAgICAgIFRPQk4oMHhkOTkyOGIzMSwgMHg3N2FlYTczZSksIFRP
Qk4oMHhlMmJmNmFmMiwgMHg1ZWFhMjQ0ZSksCi0gICAgICAgICBUT0JOKDB4OGQwODRmMTIsIDB4
NDIzN2I2NGIpLCBUT0JOKDB4Njg4ZWJlOTksIDB4ZTNlY2ZkMDcpLAotICAgICAgICAgVE9CTigw
eDU3YjhhNzBjLCAweGY2ODQ1ZGQ4KSwgVE9CTigweDgwOGZjNTljLCAweDVkYTRhMzI1KSwKLSAg
ICAgICAgIFRPQk4oMHhhOTAzMmIyYiwgMHhhMzU4NTg2MiksIFRPQk4oMHhiNjY4MjVkNSwgMHhl
ZGYyOTM4NiksCi0gICAgICAgICBUT0JOKDB4YjVhNWE4ZGIsIDB4NDMxZWMyOWIpLCBUT0JOKDB4
YmIxNDNhOTgsIDB4M2ExZThkYzgpLAotICAgICAgICAgVE9CTigweDM1ZWU5NGNlLCAweDEyYWUz
ODFiKSwgVE9CTigweDNhN2YxNzZjLCAweDg2Y2NkYTkwKSwKLSAgICAgICAgIFRPQk4oMHhjNjNh
NjU3ZSwgMHg0NjA2ZWFjYSksIFRPQk4oMHg5YWU1YTM4MCwgMHg0M2NkMDRkZiksCi0gICAgICAg
ICBUT0JOKDB4OWJlYzhkMTUsIDB4ZWQyNTFiNDYpLCBUT0JOKDB4MWY1ZDZkMzAsIDB4Y2FjYTVl
NjQpLAotICAgICAgICAgVE9CTigweDM0N2IzYjM1LCAweDlmZjIwZjA3KSwgVE9CTigweDRkNjVm
MDM0LCAweGY3ZTRiMjg2KSwKLSAgICAgICAgIFRPQk4oMHg5ZTkzYmEyNCwgMHhmMTExNjYxZSks
IFRPQk4oMHhlZGNlZDQ4NCwgMHhiMTA1ZWIwNCksCi0gICAgICAgICBUT0JOKDB4OTZkYzliYTEs
IDB4ZjQyNGI1NzgpLCBUT0JOKDB4YmY4ZjY2YjcsIDB4ZTgzZTkwNjkpLAotICAgICAgICAgVE9C
TigweDg3MmQ0ZGY0LCAweGQ3ZWQ4MjE2KSwgVE9CTigweGJmMDdmMzc3LCAweDhlMmNiZWNmKSwK
LSAgICAgICAgIFRPQk4oMHg0MjgxZDg5OSwgMHg5OGU3Mzc1NCksIFRPQk4oMHhmZWM4NWZiYiwg
MHg4YWFiODcwOCksCi0gICAgICAgICBUT0JOKDB4OWEzYzBkZWUsIDB4YTViYTViMGIpLCBUT0JO
KDB4ZTZhMTE2Y2UsIDB4NDJkMDUyOTkpLAotICAgICAgICAgVE9CTigweGFlOTc3NWZlLCAweGU5
YjAyZDQyKSwgVE9CTigweDcyYjA1MjAwLCAweGExNTQ1Y2I2KSwKLSAgICAgICAgIFRPQk4oMHhi
YzUwNmY3ZCwgMHgzMWEzYjRlYSksIFRPQk4oMHhlNTg5MzA3OCwgMHg4YmJkOWIzMiksCi0gICAg
ICAgICBUT0JOKDB4YzhiYzVmMzcsIDB4ZTRiMTJhOTcpLCBUT0JOKDB4NmIwMDBjMDYsIDB4NGE3
M2I2NzEpLAotICAgICAgICAgVE9CTigweDEzYjViZjIyLCAweDc2NWZhN2QwKSwgVE9CTigweDU5
ODA1YmYwLCAweDFkNmE1MzcwKSwKLSAgICAgICAgIFRPQk4oMHg2N2E1ZTI5ZCwgMHg0MjgwZGI5
OCksIFRPQk4oMHg0ZjUzOTE2ZiwgMHg3NzZiMWNlMyksCi0gICAgICAgICBUT0JOKDB4NzE0ZmY2
MWYsIDB4MzNkZGY2MjYpLCBUT0JOKDB4NDIwNjIzOGUsIDB4YTA4NWQxMDMpLAotICAgICAgICAg
VE9CTigweDFjNTBkNGI3LCAweGU1ODA5ZWUzKSwgVE9CTigweDk5OWY0NTBkLCAweDg1ZjhlYjFk
KSwKLSAgICAgICAgIFRPQk4oMHg2NThhNjA1MSwgMHhlNGM3OWU5YiksIFRPQk4oMHgxMzk0Y2I3
MywgMHhjNjZhOWZlYSksCi0gICAgICAgICBUT0JOKDB4MjdmMzFlZDUsIDB4YzZiZTdiMjMpLCBU
T0JOKDB4ZjRjODhmMzYsIDB4NWFhNmY4ZmUpLAotICAgICAgICAgVE9CTigweDBmYjA3MjFmLCAw
eDRhYWE0OTllKSwgVE9CTigweDY4YjNhN2Q1LCAweGUzZmIyYTZiKSwKLSAgICAgICAgIFRPQk4o
MHhhNzg4MDk3ZCwgMHgzYTkyODUxZCksIFRPQk4oMHgwNjBlN2Y4YSwgMHhlOTZmNDkxMyksCi0g
ICAgICAgICBUT0JOKDB4ODJlZWJlNzMsIDB4MWEzYTkzYmMpLCBUT0JOKDB4NDJiYmY0NjUsIDB4
YTIxYWRjMWEpLAotICAgICAgICAgVE9CTigweGMxMGI2ZmE0LCAweGVmMDMwZWZkKSwgVE9CTigw
eDI0N2FhNGM3LCAweDg3YjA5N2JiKSwKLSAgICAgICAgIFRPQk4oMHg4YjhkYzYzMiwgMHhmNjBj
NzdkYSksIFRPQk4oMHg2ZmZiYzI2YSwgMHhjMjIzNTIzZSksCi0gICAgICAgICBUT0JOKDB4YTRm
NmZmMTEsIDB4MzQ0NTc5Y2YpLCBUT0JOKDB4NTgyNTY1M2MsIDB4OTgwMjUwZjYpLAotICAgICAg
ICAgVE9CTigweGIyZGQwOTdlLCAweGJjMWFhMmI5KSwgVE9CTigweDA3ODg5MzkzLCAweDM3YTAz
MzNhKSwKLSAgICAgICAgIFRPQk4oMHgxY2Y1NWU3MSwgMHgzN2EwZGIzOCksIFRPQk4oMHgyNjQ4
NDg3ZiwgMHg3OTJjMTYxMyksCi0gICAgICAgICBUT0JOKDB4ZGFkMDEzMzYsIDB4M2ZjZWYyNjEp
LCBUT0JOKDB4NjIzOWM4MWQsIDB4MGVhYmYxMjkpLAotICAgICAgICAgVE9CTigweDhlZTc2MWRl
LCAweDlkMjc2YmUyKSwgVE9CTigweDQwNmE3YTM0LCAweDFlZGE2YWQzKSwKLSAgICAgICAgIFRP
Qk4oMHg0YmYzNjdiYSwgMHg0YTQ5M2IzMSksIFRPQk4oMHg1NGYyMGE1MiwgMHg5YmY3ZjAyNiks
Ci0gICAgICAgICBUT0JOKDB4YjY5NmUwNjIsIDB4OTc5NTkxNGIpLCBUT0JOKDB4Y2RkYWI5NmQs
IDB4OGJmMjM2YWMpLAotICAgICAgICAgVE9CTigweDRmZjJjNzBhLCAweGVkMjVlYTEzKSwgVE9C
TigweGZhMWQwOWViLCAweDgxY2JiYmU3KSwKLSAgICAgICAgIFRPQk4oMHg4OGZjOGM4NywgMHg0
Njg1NDRjNSksIFRPQk4oMHg4NDdhNjcwZCwgMHg2OTZiMzMxNyksCi0gICAgICAgICBUT0JOKDB4
ZjEzMzQyMWUsIDB4NjRiY2I2MjYpLCBUT0JOKDB4YWVhNjM4YzgsIDB4MjZkZWUwYjUpLAotICAg
ICAgICAgVE9CTigweGQ2ZTc2ODBiLCAweGIzMTAzNDZjKSwgVE9CTigweGUwNmY0MDk3LCAweGQ1
ZDRjZWQzKSwKLSAgICAgICAgIFRPQk4oMHgwOTk2MTQ1MiwgMHg3NTEyYTMwYiksIFRPQk4oMHhm
M2Q4NjdmZCwgMHhlNTg5YTU5YSksCi0gICAgICAgICBUT0JOKDB4MmU3MzI1NGYsIDB4NTJkMGMx
ODApLCBUT0JOKDB4OTA2M2Q4YTMsIDB4MzMzYzc0YWMpLAotICAgICAgICAgVE9CTigweGVkYTZj
NTk1LCAweGQzMTRlN2JjKSwgVE9CTigweDJlZTc0NjRiLCAweDQ2Nzg5OWVkKSwKLSAgICAgICAg
IFRPQk4oMHgxY2VmNDIzYywgMHgwYTFlZDVkMyksIFRPQk4oMHgyMTdlNzZlYSwgMHg2OWNjNzYx
MyksCi0gICAgICAgICBUT0JOKDB4MjdjY2NlMWYsIDB4ZTdjZGE5MTcpLCBUT0JOKDB4MTJkODAx
NmIsIDB4OGE4OTNmMTYpLAotICAgICAgICAgVE9CTigweGJjZDZkZTg0LCAweDlmYzc0ZjZiKSwg
VE9CTigweGZhNTgxN2UyLCAweGYzMTQ0ZTYxKSwKLSAgICAgICAgIFRPQk4oMHgxZjM1NDE2NCwg
MHgwODIxZWU0YyksIFRPQk4oMHgxNTgzZWFiNCwgMHgwYmM2MTk5MiksCi0gICAgICAgICBUT0JO
KDB4NzQ5MGNhZjYsIDB4MWQ3Mjg3OWYpLCBUT0JOKDB4OTk4YWQ5ZjMsIDB4Zjc2YWU3YjIpLAot
ICAgICAgICAgVE9CTigweDFlMTgxOTUwLCAweGE0MTE1N2Y3KSwgVE9CTigweGE5ZDdlMWU2LCAw
eGU4ZGEzYTdlKSwKLSAgICAgICAgIFRPQk4oMHg5NjM3ODRlYiwgMHg4NDI2Yjk1ZiksIFRPQk4o
MHgwZWU0ZWQ2ZSwgMHg1NDJlMmExMCksCi0gICAgICAgICBUT0JOKDB4Yjc5ZDRjYzUsIDB4YWM3
NTFlN2IpLCBUT0JOKDB4OTNmOTY0NzIsIDB4ZmQ0MjExYmQpLAotICAgICAgICAgVE9CTigweDhj
NzJkM2QyLCAweGM4ZGU0ZmM2KSwgVE9CTigweDdiNjljYmY1LCAweGRmNDRmMDY0KSwKLSAgICAg
ICAgIFRPQk4oMHgzZGE5MGNhMiwgMHhmNGJmOTRlMSksIFRPQk4oMHgxYTUzMjVmOCwgMHhmMTI4
OTRlMiksCi0gICAgICAgICBUT0JOKDB4MGE0MzdmNmMsIDB4NzkxN2Q2MGIpLCBUT0JOKDB4OWJl
NzA0ODYsIDB4OTZjOWNiNWQpLAotICAgICAgICAgVE9CTigweGI0ZDg4MGJmLCAweGUxZGM1YzA1
KSwgVE9CTigweGQ3MzhhZGRhLCAweGVlYmVlYjU3KSwKLSAgICAgICAgIFRPQk4oMHg2ZjAxMTlk
MywgMHhkZjBmZTZhMyksIFRPQk4oMHg1YzY4NmU1NSwgMHg2NmVhYWY1YSksCi0gICAgICAgICBU
T0JOKDB4OWNiMTBiNTAsIDB4ZGZkMGI3ZWMpLCBUT0JOKDB4YmRkMDI2NGIsIDB4NmE0OTdjMjEp
LAotICAgICAgICAgVE9CTigweGZjMDkzNTE0LCAweDhjNTQ2Yzk2KSwgVE9CTigweDU4YTk0N2Zh
LCAweDc5ZGJmNDJhKSwKLSAgICAgICAgIFRPQk4oMHhjMGI0OGQ0ZSwgMHg0OWNjZDZkNyksIFRP
Qk4oMHhmZjhmYjAyYywgMHg4OGJkNTU4MCksCi0gICAgICAgICBUT0JOKDB4Yzc1MjM1ZTksIDB4
MDdkNDczYjIpLCBUT0JOKDB4NGZhYjFhYzUsIDB4YTIxODhhZjMpLAotICAgICAgICAgVE9CTigw
eDAzMGZhM2JjLCAweDk3NTc2ZWMwKSwgVE9CTigweGU4Yzk0NmU4LCAweDBiN2U3ZDJmKSwKLSAg
ICAgICAgIFRPQk4oMHg0MGE1YzljYywgMHg3MDMwNTYwMCksIFRPQk4oMHg2ZDgyNjBhOSwgMHhj
OGIwMTNiNCksCi0gICAgICAgICBUT0JOKDB4MDM2ODMwNGYsIDB4NzBiYmE4NWMpLCBUT0JOKDB4
YWQwOTBkYTEsIDB4YTRhMGQzMTEpLAotICAgICAgICAgVE9CTigweDcxNzBlODcwLCAweDI0MTVl
ZWMxKSwgVE9CTigweGJmYmEzNWZlLCAweDg0NjFlYTQ3KSwKLSAgICAgICAgIFRPQk4oMHg2Mjc5
MDE5YSwgMHhjMWU5MTkzOCksIFRPQk4oMHhhNDc2MzhmMywgMHgxYWZjNDE1ZiksCi0gICAgICAg
ICBUT0JOKDB4MzZjNjVjYmIsIDB4YmNiYTBlMGYpLCBUT0JOKDB4MDIxNjBlZmIsIDB4MDM0ZTJj
NDgpLAotICAgICAgICAgVE9CTigweGU2YzUxMDczLCAweDYxNWNkOWU0KSwgVE9CTigweDQ5OGVj
MDQ3LCAweGYxMjQzYzA2KSwKLSAgICAgICAgIFRPQk4oMHgzZTVhODgwOSwgMHhiMTdiM2Q4Yyks
IFRPQk4oMHg1Y2Q5OWU2MSwgMHgwY2M1NjVmMSksCi0gICAgICAgICBUT0JOKDB4ODFlMzEyZGYs
IDB4Nzg1MWRhZmUpLCBUT0JOKDB4ZjE1NmY1YmEsIDB4YTc5MDYxZTIpLAotICAgICAgICAgVE9C
TigweDgwZDYyYjcxLCAweDg4MGM1OTBlKSwgVE9CTigweGJlYzk3NDZmLCAweDBhMzlmYWExKSwK
LSAgICAgICAgIFRPQk4oMHgxZDk4YTljMSwgMHhjOGVkMWY3YSksIFRPQk4oMHgwOWU0M2JiNSwg
MHhhODFkNWZmMiksCi0gICAgICAgICBUT0JOKDB4ZDVmMDBmNjgsIDB4MGRhMDc5NGEpLCBUT0JO
KDB4NDEyMDUwZDksIDB4NjYxYWE4MzYpLAotICAgICAgICAgVE9CTigweGE4OWY3YzRlLCAweDkw
NzQ3ZTQwKSwgVE9CTigweDZkYzA1ZWJiLCAweGI2MmEzNjg2KSwKLSAgICAgICAgIFRPQk4oMHhk
ZjRkZTg0NywgMHgzMDhlMzM1MyksIFRPQk4oMHg1Mzg2OGZiYiwgMHg5ZmI1M2JiOSksCi0gICAg
ICAgICBUT0JOKDB4MmIwOWQyYzMsIDB4Y2ZkY2Y3ZGQpLCBUT0JOKDB4NDFhOWZjZTMsIDB4NzIz
ZmNhYjQpLAotICAgICAgICAgVE9CTigweDczZDkwNWY3LCAweDA3ZjU3Y2EzKSwgVE9CTigweDA4
MGY5ZmIxLCAweGFjOGUxNTU1KSwKLSAgICAgICAgIFRPQk4oMHg3YzA4OGU4NCwgMHg5YmE3YTUz
MSksIFRPQk4oMHgwN2QzNTU4NiwgMHhlZDlhMTQ3ZiksCi0gICAgICAgICBUT0JOKDB4NjAyODQ2
YWIsIDB4YWY0OGMzMzYpLCBUT0JOKDB4NzMyMGZkMzIsIDB4MGNjZjBlNzkpLAotICAgICAgICAg
VE9CTigweGFhNzgwNzk4LCAweGIxOGJkMWZmKSwgVE9CTigweDUyYzJlMzAwLCAweGFmZGQyOTA1
KSwKLSAgICAgICAgIFRPQk4oMHhmMjdlYTNkNiwgMHg0MzQyNjdjZCksIFRPQk4oMHg4Yjk2ZDE2
ZCwgMHgxNTYwNWI1ZiksCi0gICAgICAgICBUT0JOKDB4N2JiMzEwNDksIDB4NGI0NTcwNmIpLCBU
T0JOKDB4ZTdmNThiOGUsIDB4NzQzZDI1ZjgpLAotICAgICAgICAgVE9CTigweGU5YjVlNDViLCAw
eDg3ZjMwMDc2KSwgVE9CTigweGQxOTQ0OGQ2LCAweDVkMDUzZDVhKSwKLSAgICAgICAgIFRPQk4o
MHgxZWNjOGNiOSwgMHhkMzIxMGEwNCksIFRPQk4oMHg2YmM3ZDQ2MywgMHhkYWZiNTI2OSksCi0g
ICAgICAgICBUT0JOKDB4M2U1OWIxMGEsIDB4NjdjMzQ4OWYpLCBUT0JOKDB4MTc2OTc4OGMsIDB4
NjU2NDFlMWIpLAotICAgICAgICAgVE9CTigweDhhNTNiODJkLCAweGJkNmNiODM4KSwgVE9CTigw
eDcwNjZkNmU2LCAweDIzNmQ1ZjIyKSwKLSAgICAgICAgIFRPQk4oMHgwM2FhMWM2MSwgMHg2OTA4
NTM2ZSksIFRPQk4oMHhjOTcxZGEwZCwgMHg2NmFlOTgwOSksCi0gICAgICAgICBUT0JOKDB4MDFi
M2E4NmIsIDB4YzQ5YTJmYWMpLCBUT0JOKDB4M2I4NDIwYzAsIDB4MzA5MmU3N2EpLAotICAgICAg
ICAgVE9CTigweDAyMDU3MzAwLCAweDdkNmZiNTU2KSwgVE9CTigweDY5NDFiMmExLCAweGJmZjQw
YTg3KSwKLSAgICAgICAgIFRPQk4oMHgxNDBiNjMwOCwgMHgwNjU4ZmYyYSksIFRPQk4oMHg4Nzgw
NDM2MywgMHgzNDI0YWIzNiksCi0gICAgICAgICBUT0JOKDB4MDI1M2JkNTEsIDB4NTc1MWUyOTkp
LCBUT0JOKDB4Yzc1YmNkNzYsIDB4NDQ5YzNlM2EpLAotICAgICAgICAgVE9CTigweDkyZWI0MDkw
LCAweDdmOGY4NzVkKSwgVE9CTigweDljOWQ3NTRlLCAweDU2YzI2YmJmKSwKLSAgICAgICAgIFRP
Qk4oMHgxNThjZWE2MSwgMHg4MTEwYmJlNyksIFRPQk4oMHg2MmE2YjgwMiwgMHg3NDVmOTFlYSks
Ci0gICAgICAgICBUT0JOKDB4YTc5YzQxYWEsIDB4YzZlNzM5NGIpLCBUT0JOKDB4NDQ1YjZhODMs
IDB4YWQ1N2VmMTApLAotICAgICAgICAgVE9CTigweDBjNTI3N2ViLCAweDZlYTZmNDBjKSwgVE9C
TigweDMxOWZlOTZiLCAweDg4NjMzMzY1KSwKLSAgICAgICAgIFRPQk4oMHgwYjBmYzYxZiwgMHgz
ODVmNjNjYiksIFRPQk4oMHg0MTI1MGM4NCwgMHgyMmJkZDEyNyksCi0gICAgICAgICBUT0JOKDB4
NjdkMTUzZjEsIDB4MDllOTQyYzIpLCBUT0JOKDB4NjA5MjBkMDgsIDB4YzAyMWFkNWQpLAotICAg
ICAgICAgVE9CTigweDIyOWY1NzQ2LCAweDcyNGQ4MWE1KSwgVE9CTigweGI3ZmZiODkyLCAweDVi
YmEzMjk5KSwKLSAgICAgICAgIFRPQk4oMHg1MThjNTFhMSwgMHhkZTQxMzAzMiksIFRPQk4oMHgy
YTliZmU3NywgMHgzYzJmZDk0YyksCi0gICAgICAgICBUT0JOKDB4Y2JjZGUyMzksIDB4MzE5MWY0
ZmQpLCBUT0JOKDB4NDMwOTNlMTYsIDB4ZDNkNmFkYTEpLAotICAgICAgICAgVE9CTigweDE4NDU3
OWYzLCAweDU4NzY5NjA2KSwgVE9CTigweDJjOTRhOGIzLCAweGQyMzY2MjVjKSwKLSAgICAgICAg
IFRPQk4oMHg2OTIyYjljMCwgMHg1YzQzN2Q4ZSksIFRPQk4oMHgzZDRhZTQyMywgMHhkOGQ5ZjNj
OCksCi0gICAgICAgICBUT0JOKDB4ZjcyYzMxYzEsIDB4MmU3MDkwYTIpLCBUT0JOKDB4NGFjM2Y1
ZjMsIDB4ZDc2YTU1YmQpLAotICAgICAgICAgVE9CTigweDM0MjUwOGZjLCAweDZiNmFmOTkxKSwg
VE9CTigweDBkNTI3MTAwLCAweDFiNWNlYmJkKSwKLSAgICAgICAgIFRPQk4oMHhiODQ3NDBkMCwg
MHhkZDQ0MGRkNyksIFRPQk4oMHg3NDhlZjg0MSwgMHg3ODAxNjJmZCksCi0gICAgICAgICBUT0JO
KDB4YThkYmZlMGUsIDB4ZGZjNmZhZmIpLCBUT0JOKDB4ZWFkZmRmMDUsIDB4ZjczMDBmMjcpLAot
ICAgICAgICAgVE9CTigweDdkMDY1NTVmLCAweGZlYmE0ZWM5KSwgVE9CTigweDEyYzU2ZjgzLCAw
eDllMjVmYTk3KSwKLSAgICAgICAgIFRPQk4oMHg3N2Y4NDIwMywgMHhkMzliOGMzNCksIFRPQk4o
MHhlZDhiMWJlNiwgMHgzMTI1ZWRkYiksCi0gICAgICAgICBUT0JOKDB4NWJiZjI0NDEsIDB4ZjZl
MzlkYzUpLCBUT0JOKDB4YjAwZjZlZTYsIDB4NmE1ZDY3OGEpLAotICAgICAgICAgVE9CTigweGJh
NDU2ZWNmLCAweDU3ZDBlYTk5KSwgVE9CTigweGRjYWUwZjU4LCAweDE3ZTA2YzQzKSwKLSAgICAg
ICAgIFRPQk4oMHgwMTY0M2RlNCwgMHgwZjViNGJhYSksIFRPQk4oMHgyYzMyNDM0MSwgMHhkMTYx
YjliZSksCi0gICAgICAgICBUT0JOKDB4ODAxNzdmNTUsIDB4ZTEyNmQ0NjgpLCBUT0JOKDB4ZWQz
MjVmMWYsIDB4NzY3NDhlMDkpLAotICAgICAgICAgVE9CTigweDYxMTYwMDRhLCAweGNmYTliZGMy
KSwgVE9CTigweDJkODYwN2U2LCAweDNhOWZiNDY4KSwKLSAgICAgICAgIFRPQk4oMHgwZTU3M2Uy
NywgMHg2MDA5ZDY2MCksIFRPQk4oMHgzYTUyNWQyZSwgMHg4ZDEwYzVhMSksCi0gICAgICAgICBU
T0JOKDB4ZDI2Y2I0NWMsIDB4M2I5MDA5YTApLCBUT0JOKDB4YjZiMGNkYzAsIDB4ZGU5ZDc0NDgp
LAotICAgICAgICAgVE9CTigweDk0OWM5OTc2LCAweGUxMzM3YzI2KSwgVE9CTigweDZmYWFkZWJk
LCAweGQ3M2Q2OGU1KSwKLSAgICAgICAgIFRPQk4oMHg5ZTE1ODYxNCwgMHhmMWI3NjhkOSksIFRP
Qk4oMHgyMmRmYTU1NywgMHg5Y2M0ZjA2OSksCi0gICAgICAgICBUT0JOKDB4Y2NkNmRhMTcsIDB4
YmU5M2M2ZDYpLCBUT0JOKDB4MjQ4NjZjNjEsIDB4YTUwNGY1YjkpLAotICAgICAgICAgVE9CTigw
eDIxMjEzNTNjLCAweDhkNjk0ZGExKSwgVE9CTigweDFjNmNhNTgwLCAweDAxNDBiOGM2KSwKLSAg
ICAgICAgIFRPQk4oMHhjMjQ1YWQ4YywgMHhlOTY0MDIxZSksIFRPQk4oMHhiODNiZmZiYSwgMHgw
MzJiODJiMyksCi0gICAgICAgICBUT0JOKDB4ZmFhMjIwYzYsIDB4NDdlZjk4OTgpLCBUT0JOKDB4
N2U4ZDNhYzYsIDB4OTgyYzk0OGEpLAotICAgICAgICAgVE9CTigweDFmYWEyMDkxLCAweGJjMmQx
MjRhKSwgVE9CTigweGJkNTRjM2RkLCAweDA1YjE1ZmY0KSwKLSAgICAgICAgIFRPQk4oMHgzODZi
ZjNhYiwgMHhjODdjNmZiNyksIFRPQk4oMHhmYjJiMDU2MywgMHhmZGViNmY2NiksCi0gICAgICAg
ICBUT0JOKDB4NGU3N2M1NTcsIDB4NWI0NWFmYjQpLCBUT0JOKDB4ZTlkZWQ2NDksIDB4ZWZiODkx
MmQpLAotICAgICAgICAgVE9CTigweDdlYzliYmY1LCAweDQyZjZlNTU3KSwgVE9CTigweDI1NzBk
ZmZmLCAweDYyNjcxZjAwKSwKLSAgICAgICAgIFRPQk4oMHgyYjNiZmI3OCwgMHg4OGUwODRiZCks
IFRPQk4oMHhhMDI0YjIzOCwgMHhmMzdmZTViNCksCi0gICAgICAgICBUT0JOKDB4NDRlN2RjMDQs
IDB4OTU2NDlhZWUpLCBUT0JOKDB4NDk4Y2EyNTUsIDB4NWU3ZWMxZDgpLAotICAgICAgICAgVE9C
TigweDNiYzc2NmVhLCAweGFhYTA3ZTg2KSwgVE9CTigweDBkYjZmYWNiLCAweGYzNjA4NTg2KSwK
LSAgICAgICAgIFRPQk4oMHhiYWRkMjU0OSwgMHhiZGMyNTljOCksIFRPQk4oMHg5NWFmM2M2ZSwg
MHgwNDFjNjQ5ZiksCi0gICAgICAgICBUT0JOKDB4YjM2YTkyOGMsIDB4MDJlMzBhZmIpLCBUT0JO
KDB4OWI1MzU2YWQsIDB4MDA4YTg4YjgpLAotICAgICAgICAgVE9CTigweDRiNjdhNWYxLCAweGNm
MWQ5ZTlkKSwgVE9CTigweGM2NTQyZTQ3LCAweGE1ZDhkOGNlKSwKLSAgICAgICAgIFRPQk4oMHg3
MzA2MWZlOCwgMHg3YWRmYjZjYyksIFRPQk4oMHhjYzgyNmZkMywgMHg5ODY3ODE0MSksCi0gICAg
ICAgICBUT0JOKDB4MDBlNzU4YjEsIDB4M2M4MDUxNWEpLCBUT0JOKDB4NmFmZTMyNDcsIDB4NDE0
ODUwODMpLAotICAgICAgICAgVE9CTigweDBmY2IwOGI5LCAweGI2YWU4YTc1KSwgVE9CTigweGI4
Y2YzODhkLCAweDRhY2Y1MWUxKSwKLSAgICAgICAgIFRPQk4oMHgzNDRhNTU2MCwgMHg2OTYxYjlk
NiksIFRPQk4oMHgxYTY3NzhiOCwgMHg2YTk3ZmQwYyksCi0gICAgICAgICBUT0JOKDB4ZDg0MGZk
YzEsIDB4ZWNjNGM3ZTMpLCBUT0JOKDB4ZGU5ZmU0N2QsIDB4MTZkYjY4Y2MpLAotICAgICAgICAg
VE9CTigweGU5NWY4OWRlLCAweGEzZTIxNmFhKSwgVE9CTigweDg0ZjFhNmE0LCAweDk1OTRhOGJl
KSwKLSAgICAgICAgIFRPQk4oMHg3ZGRjN2Q3MiwgMHg1YTdiMTYyYiksIFRPQk4oMHhjNWNmZGEx
OSwgMHhhZGM4MTdhMyksCi0gICAgICAgICBUT0JOKDB4ODBhNWQzNTAsIDB4NzhiNThkNDYpLCBU
T0JOKDB4OTMzNjViMTMsIDB4ODI5NzhmMTkpLAotICAgICAgICAgVE9CTigweDJlNDRkMjI1LCAw
eDI2YTFmYzkwKSwgVE9CTigweDBkNmQxMGQyLCAweDRkNzA3MDVkKSwKLSAgICAgICAgIFRPQk4o
MHhkOTRiNmIxMCwgMHhkNzBjNDVmNCksIFRPQk4oMHgwZjIwMTAyMiwgMHhiMjE2YzA3OSksCi0g
ICAgICAgICBUT0JOKDB4Y2VjOTY2YzUsIDB4NjU4ZmRlNDEpLCBUT0JOKDB4YThkMmJjN2QsIDB4
N2UyNzYwMWQpLAotICAgICAgICAgVE9CTigweGJmY2NlM2UxLCAweGZmMjMwYmU3KSwgVE9CTigw
eDMzOTRmZjZiLCAweDAwMzNmZmI1KSwKLSAgICAgICAgIFRPQk4oMHhkODkwYzUwOSwgMHg4MTMy
YzlhZiksIFRPQk4oMHhhYWM0YjBlYiwgMHgzNjFlNzg2OCksCi0gICAgICAgICBUT0JOKDB4NTE5
NGRlZDMsIDB4ZTgyZDE1YWEpLCBUT0JOKDB4NDU1MGJkMmUsIDB4MjNhZTZiN2QpLAotICAgICAg
ICAgVE9CTigweDNmZGEzMThlLCAweGVhNTM5OWQ0KSwgVE9CTigweGQ5ODliZmZhLCAweDkxNjM4
YjgwKSwKLSAgICAgICAgIFRPQk4oMHg1ZWExMjRkMCwgMHhhMTRhYTEyZCksIFRPQk4oMHgxZmIx
Yjg5OSwgMHgzNjY3Yjk0NCksCi0gICAgICAgICBUT0JOKDB4OTVlYzc5NjksIDB4NDRjNDRkNmEp
LCBUT0JOKDB4OTFkZjE0NGEsIDB4NTdlODYxMzcpLAotICAgICAgICAgVE9CTigweDkxNWZkNjIw
LCAweDczYWRhYzQ0KSwgVE9CTigweDhmMDE3MzJkLCAweDU5YTgzODAxKSwKLSAgICAgICAgIFRP
Qk4oMHhlYzU3OWQyNSwgMHgzYWEwYTYzMyksIFRPQk4oMHgwNmRlNWU3YywgMHhjOWQ2ZDU5Yyks
Ci0gICAgICAgICBUT0JOKDB4YzEzMmY5NTgsIDB4YjFlZjgwMTApLCBUT0JOKDB4Mjk0NzZmOTYs
IDB4ZTY1YzFhMDIpLAotICAgICAgICAgVE9CTigweDMzNmE3N2MwLCAweGQzNGMzNTY1KSwgVE9C
TigweGVmMTEwNWIyLCAweDFiOWYxZTllKSwKLSAgICAgICAgIFRPQk4oMHg2M2U2ZDA4YiwgMHhm
OWUwODAwMiksIFRPQk4oMHg5YWZmMmYyMSwgMHhjNjEzODA5ZSksCi0gICAgICAgICBUT0JOKDB4
YjU3NTRmODUsIDB4M2E4MGU3NWQpLCBUT0JOKDB4ZGU3MTg1M2UsIDB4NmJiZGE2ODEpLAotICAg
ICAgICAgVE9CTigweDg2ZjA0MWRmLCAweDgxOTdmZDdhKSwgVE9CTigweDhiMzMyZTA4LCAweDEy
NzgxN2ZhKSwKLSAgICAgICAgIFRPQk4oMHgwNWQ5OWJlOCwgMHhiOWMyMGNkYSksIFRPQk4oMHg4
OWY3YWFkNSwgMHhkNWNkMGM5OCksCi0gICAgICAgICBUT0JOKDB4N2VmOTM2ZmUsIDB4NWJiOTQx
ODMpLCBUT0JOKDB4OTJjYTA3NTMsIDB4YjA1Y2Q3ZjIpLAotICAgICAgICAgVE9CTigweDlkNjVk
YjExLCAweDc0YTFlMDM1KSwgVE9CTigweDAyNjI4Y2M4LCAweDEzZWFlYTkyKSwKLSAgICAgICAg
IFRPQk4oMHhmMmQ5ZTI0MiwgMHg0OWU0ZmJmMiksIFRPQk4oMHg5NGZkZmQ5YiwgMHhlMzg0Zjhi
NyksCi0gICAgICAgICBUT0JOKDB4NjVmNTYwNTQsIDB4NjM0MjhjNmIpLCBUT0JOKDB4MmY3MjA1
YjIsIDB4OTBiNDA5YTUpLAotICAgICAgICAgVE9CTigweGY3NzhiYjc4LCAweGZmNDVhZTExKSwg
VE9CTigweGExMzA0NWJlLCAweGM1ZWU1M2IyKSwKLSAgICAgICAgIFRPQk4oMHhlMDBhMTRmZiwg
MHgwM2VmNzdmZSksIFRPQk4oMHg2ODljZDU5ZiwgMHhmZmVmOGJlZiksCi0gICAgICAgICBUT0JO
KDB4MzU3OGYwZWQsIDB4MWU5YWRlMjIpLCBUT0JOKDB4ZTk5ZjNlYzAsIDB4NjI2OGI2YTgpLAot
ICAgICAgICAgVE9CTigweGEyMDU3ZDkxLCAweGVhMWIzYzNlKSwgVE9CTigweDJkMWE3MDUzLCAw
eGI4ODIzYTRhKSwKLSAgICAgICAgIFRPQk4oMHhhYmJiMzM2YSwgMHgyY2NhNDUxZSksIFRPQk4o
MHhjZDI0NjZlMywgMHgyMjE4YmI1ZCksCi0gICAgICAgICBUT0JOKDB4M2FjMWY0MmYsIDB4Yzhj
Yjc2MmQpLCBUT0JOKDB4N2UzMTJhYWUsIDB4NzY5MDIxMWYpLAotICAgICAgICAgVE9CTigweGVi
YjliZDczLCAweDQ1ZDA3NDUwKSwgVE9CTigweDIwN2M0YjgyLCAweDQ2YzIyMTNmKSwKLSAgICAg
ICAgIFRPQk4oMHg5OWQ0MjVjMSwgMHgzNzU5MTNlYyksIFRPQk4oMHg5NGU0NWU5NiwgMHg2Nzkw
ODIyMCksCi0gICAgICAgICBUT0JOKDB4YzA4ZjMwODcsIDB4Y2Q2N2RiZjYpLCBUT0JOKDB4YTU2
NzBmYmUsIDB4YzA4ODcwNTYpLAotICAgICAgICAgVE9CTigweDY3MTdiNjRhLCAweDY2ZjViOGZj
KSwgVE9CTigweGQ1YTU2YWVhLCAweDc4NmZlYzI4KSwKLSAgICAgICAgIFRPQk4oMHhhOGMzZjU1
ZiwgMHhjMGZmNDk1MiksIFRPQk4oMHhhNzdmZWZhZSwgMHg0NTdhYzQ5YiksCi0gICAgICAgICBU
T0JOKDB4Mjk4ODJkN2MsIDB4OTgzNzlkNDQpLCBUT0JOKDB4ZDAwMGJkZmIsIDB4NTA5ZWRjOGEp
LAotICAgICAgICAgVE9CTigweGM2Zjk1OTc5LCAweGU2NmZlNDY0KSwgVE9CTigweDUwNGE2MTE1
LCAweGZhNjFiZGUwKSwKLSAgICAgICAgIFRPQk4oMHg1NmIzYjg3MSwgMHhlZmZlYTMxYSksIFRP
Qk4oMHgyZDNkZTI2ZCwgMHhmMGMyMWE1NCksCi0gICAgICAgICBUT0JOKDB4MjFkYmZmMzEsIDB4
ODM0NzUzYmYpLCBUT0JOKDB4ZTY3ZWNmNDksIDB4NjkyNjlkODYpLAotICAgICAgICAgVE9CTigw
eDdhMTc2OTUyLCAweDE1MWZlNjkwKSwgVE9CTigweDAzNTE1ODA0LCAweDdmMmFkYjVmKSwKLSAg
ICAgICAgIFRPQk4oMHhlZTc5NGIxNSwgMHhkMWI2MmE4ZCksIFRPQk4oMHhmMDA0Y2VlYywgMHhh
YWU0NTRlNiksCi0gICAgICAgICBUT0JOKDB4MDg5N2VhN2MsIDB4ZjAzODZmYWMpLCBUT0JOKDB4
M2I2MmZmMTIsIDB4ZDFmY2E3NTEpLAotICAgICAgICAgVE9CTigweDE1NDE4MWRmLCAweDFiN2Ew
NGVjKSwgVE9CTigweDIwMDhlMDRhLCAweGZiNTg0N2VjKSwKLSAgICAgICAgIFRPQk4oMHhkMTQ3
MTQ4ZSwgMHg0MWRiZDc3MiksIFRPQk4oMHgyYjQxOWY3MywgMHgyMjk0MjY1NCksCi0gICAgICAg
ICBUT0JOKDB4NjY5ZjMwZDMsIDB4ZTljNTQ0ZjcpLCBUT0JOKDB4NTJhMmMyMjMsIDB4Yzg1NDAx
NDkpLAotICAgICAgICAgVE9CTigweDVkYTllZTE0LCAweDYzNGRmYjAyKSwgVE9CTigweDVmMDc0
ZmYwLCAweGY0Nzg2OWYzKSwKLSAgICAgICAgIFRPQk4oMHg3NGVlODc4ZCwgMHhhMzkzM2FjYyks
IFRPQk4oMHhlNjUxMDY1MSwgMHg0ZmUzNWVkMSksCi0gICAgICAgICBUT0JOKDB4YjNlYjk0ODIs
IDB4ZjEwMTJlN2EpLCBUT0JOKDB4NTEwMTNjYzAsIDB4YThhNTY2YWUpLAotICAgICAgICAgVE9C
TigweGRkNWU5MjQzLCAweDQ3YzAwZDNiKSwgVE9CTigweDdmZGUwODlkLCAweDk0NmJiMGU1KSwK
LSAgICAgICAgIFRPQk4oMHgwMzA3NTRmZSwgMHhjNzMxYjRiMyksIFRPQk4oMHgxMmExMzZhNCwg
MHg5OWZkYTA2MiksCi0gICAgICAgICBUT0JOKDB4N2MxMDY0YjgsIDB4NWExYTM1YmMpLCBUT0JO
KDB4YmYxZjU3NjMsIDB4NDQ2Yzg0ZWYpLAotICAgICAgICAgVE9CTigweGVkMjlhNTZkLCAweGEx
NmQ0YjM0KSwgVE9CTigweDdmYmE5ZDA5LCAweGRjYTIxYzRmKSwKLSAgICAgICAgIFRPQk4oMHg2
NmQ3YWMwMCwgMHg2ZDhkZTQ4NiksIFRPQk4oMHg2MDA2MTk4NywgMHg3M2EyYTVlMSksCi0gICAg
ICAgICBUT0JOKDB4OGI0MDBmODYsIDB4OWRhMjhmZjApLCBUT0JOKDB4MzEzM2Y3MDgsIDB4NDNj
NDU5OWMpLAotICAgICAgICAgVE9CTigweDk5MTFjOWI4LCAweGVlMjhjYjBkKSwgVE9CTigweGNk
N2UyODc0LCAweDhlMGFmNjFkKSwKLSAgICAgICAgIFRPQk4oMHg1YTg1ZjBmMiwgMHg3MmVkOTFm
YyksIFRPQk4oMHg4NTIxNGYzMSwgMHg5Y2Q0YTM3MyksCi0gICAgICAgICBUT0JOKDB4ODgxZmU1
YmUsIDB4MTkyNTI1M2MpLCBUT0JOKDB4ZDhkYzk4ZTAsIDB4OTFlOGJjNzYpLAotICAgICAgICAg
VE9CTigweDcxMjBhZmZlLCAweDU4NWNjM2EyKSwgVE9CTigweDcyNDk1MmVkLCAweDczNWJmOTdh
KSwKLSAgICAgICAgIFRPQk4oMHg1NTgxZTdkYywgMHgzZWIzNDU4MSksIFRPQk4oMHg1Y2JmZjRm
MiwgMHhlNTJlZTU3ZCksCi0gICAgICAgICBUT0JOKDB4OGQzMjBhMGUsIDB4ODdkOGNjN2IpLCBU
T0JOKDB4OWJlYWE3ZjMsIDB4ZjFkMjgwZDApLAotICAgICAgICAgVE9CTigweDdhMGI5NTcxLCAw
eDliZWVjNzA0KSwgVE9CTigweDkxMjYzMzJlLCAweDViN2YwMDU3KSwKLSAgICAgICAgIFRPQk4o
MHgwMWZiYzFiNCwgMHg4ZWQzYmQ2ZCksIFRPQk4oMHgzNWJiMmMxMiwgMHhkOTQ1ZWIyNCksCi0g
ICAgICAgICBUT0JOKDB4NjQwNDY5NGUsIDB4OWE4YWUyNTUpLCBUT0JOKDB4YjYwOTJlZWMsIDB4
OGQ2YWJmYjMpLAotICAgICAgICAgVE9CTigweDRkNzYxNDNmLCAweGNjMDU4ODY1KSwgVE9CTigw
eDdiMGE1YWYyLCAweDZlMjQ5OTIyKSwKLSAgICAgICAgIFRPQk4oMHg4YWVmOTQ0MCwgMHg2YTUw
ZDM1MyksIFRPQk4oMHhlMTFlNGJjYywgMHg2NGYwZTA3YSksCi0gICAgICAgICBUT0JOKDB4NDQ3
Mjk5M2EsIDB4YTE0YTkwZmEpLCBUT0JOKDB4NzcwNmUyMGMsIDB4YmEwYzUxZDQpLAotICAgICAg
ICAgVE9CTigweGY0MDMyOTJmLCAweDE1MzI2NzJkKSwgVE9CTigweDUyNTczYmZhLCAweDIxODI5
MzgyKSwKLSAgICAgICAgIFRPQk4oMHg2YTdiYjZhOSwgMHgzYjViZGI4MyksIFRPQk4oMHgwOGRh
NjVjMCwgMHhhNGE3MjMxOCksCi0gICAgICAgICBUT0JOKDB4YzU4ZDIyYWEsIDB4NjNlYjA2NWYp
LCBUT0JOKDB4MTcxNzU5NmMsIDB4MWIxNWQ2ODUpLAotICAgICAgICAgVE9CTigweDExMmRmMGQw
LCAweGIyNjZkODhiKSwgVE9CTigweGY2ODhhZTk3LCAweDU5NDE5NDVhKSwKLSAgICAgICAgIFRP
Qk4oMHg0ODczODZlMywgMHg3YzI5MmNhYyksIFRPQk4oMHg0MmYzYjUwZCwgMHg1N2Q2OTg1Yyks
Ci0gICAgICAgICBUT0JOKDB4NmRhNGY5OTgsIDB4NmE5MGZjMzQpLCBUT0JOKDB4YzhmMjU3ZDMs
IDB4NjVjYThhOGQpLAotICAgICAgICAgVE9CTigweGMyZmVhYmNhLCAweDY5NTFmNzYyKSwgVE9C
TigweGUxYmM4MWQwLCAweDc0YzMyM2FjKSwKLSAgICAgICAgIFRPQk4oMHgxYmM2OGY2NywgMHgy
NTFhMmExMiksIFRPQk4oMHgxMGQ4NjU4NywgMHhiZThhNzBkYyksCi0gICAgICAgICBUT0JOKDB4
ZDY0OGFmN2YsIDB4ZjBmODRkMmUpLCBUT0JOKDB4ZjBhYTllYmMsIDB4NmE0M2FjOTIpLAotICAg
ICAgICAgVE9CTigweDY5ZTNiZTA0LCAweDI3NTk2ODkzKSwgVE9CTigweGI2YmIwMmE2LCAweDQ1
YmY0NTJiKSwKLSAgICAgICAgIFRPQk4oMHgwODc1YzExYSwgMHhmNGM2OThjOCksIFRPQk4oMHg2
NjUyYjVjNywgMHhiZWNlMzc5NCksCi0gICAgICAgICBUT0JOKDB4N2IzNzU1ZmQsIDB4NGY1YzA0
OTkpLCBUT0JOKDB4NmVhMTY1NTgsIDB4YjU1MzJiMzgpLAotICAgICAgICAgVE9CTigweGQxYzY5
ODg5LCAweGEyZTk2ZWY3KSwgVE9CTigweDljNzczYzNhLCAweDYxZWQ4ZjQ4KSwKLSAgICAgICAg
IFRPQk4oMHgyYjY1M2E0MCwgMHg5YjMyM2FiYyksIFRPQk4oMHhlMjY2MDVlMSwgMHhmMGUxZDc5
MSksCi0gICAgICAgICBUT0JOKDB4NDVkNDEwNjQsIDB4NGE4NzE1N2EpLCBUT0JOKDB4OGY5YTc4
YjcsIDB4Y2JiY2U2MTYpLAotICAgICAgICAgVE9CTigweGNmMWU0NGFhLCAweGM0MDdlZGRkKSwg
VE9CTigweDgxZGRkMWQ4LCAweGEzNWI5NjRmKSwKLSAgICAgICAgIFRPQk4oMHg0NzNlMzM5ZSwg
MHhmZDA4Mzk5OSksIFRPQk4oMHg2Yzk0YmRkZSwgMHg4ZTc5NjgwMiksCi0gICAgICAgICBUT0JO
KDB4NWEzMDRhZGEsIDB4ODU0NWQxODUpLCBUT0JOKDB4ODJhZTQ0ZWEsIDB4NzM4YmI4Y2IpLAot
ICAgICAgICAgVE9CTigweDYyOGEzNWUzLCAweGRmODdlMTBlKSwgVE9CTigweGQzNjI0ZjNkLCAw
eGExNWI5ZmUzKSwKLSAgICAgICAgIFRPQk4oMHhjYzQ0MjA5YiwgMHgxNGJlNDI1NCksIFRPQk4o
MHg3ZDBlZmNiYywgMHhiZGJjMmVhNSksCi0gICAgICAgICBUT0JOKDB4MWY2MDMzNjIsIDB4MDRj
MzdiYmUpLCBUT0JOKDB4MjFmMzYzZjUsIDB4NTZhNTg1MmMpLAotICAgICAgICAgVE9CTigweGEx
NTAzZDFjLCAweGE4NTAxNTUwKSwgVE9CTigweDIyNTFlMGUxLCAweGQ4YWIxMGJiKSwKLSAgICAg
ICAgIFRPQk4oMHhkZTEyOWM5NiwgMHg2OTYxYzUxYyksIFRPQk4oMHgxZjcyNDZhNCwgMHg4MTkx
MGY2OCksCi0gICAgICAgICBUT0JOKDB4MmViNzQ0ZWUsIDB4NWYyNTkxZjIpLCBUT0JOKDB4M2M0
N2QzM2YsIDB4NWU2MjcxNTcpLAotICAgICAgICAgVE9CTigweDRkNmQ2MmM5LCAweDIyZjNiZDY4
KSwgVE9CTigweDYxMjBhNjRiLCAweGNiOGRmODU2KSwKLSAgICAgICAgIFRPQk4oMHgzYTlhYzZj
MCwgMHg3YjVkMDdkZiksIFRPQk4oMHhhOTJiOTU1OCwgMHg3ZWYzOTc4MyksCi0gICAgICAgICBU
T0JOKDB4ZTEyOGExMzQsIDB4YWIzYTliNGYpLCBUT0JOKDB4NDFjMTg4MDcsIDB4YjEyNTJmMDUp
LAotICAgICAgICAgVE9CTigweGZjN2VkMDg5LCAweDgwYmE5YjFjKSwgVE9CTigweGFjOGRjNmRl
LCAweGM1MzJhOWRkKSwKLSAgICAgICAgIFRPQk4oMHhiZjgyOWNlZiwgMHg1NTI0NjgwOSksIFRP
Qk4oMHgxMDFiNzg0ZiwgMHg1YjRlZTgwZiksCi0gICAgICAgICBUT0JOKDB4YzA5OTQ1YmIsIDB4
YjZmMTE2MDMpLCBUT0JOKDB4NTdiMDlkYmUsIDB4NDFkMjgwMWUpLAotICAgICAgICAgVE9CTigw
eGZiYTUyMDJmLCAweGE5NzUzNGE4KSwgVE9CTigweDdmZDhhZTVmLCAweGMxN2I5NjE0KSwKLSAg
ICAgICAgIFRPQk4oMHhhNTBiYTY2NiwgMHg3ODMwODQzNSksIFRPQk4oMHg5NTcyZjc3YywgMHhk
Mzg2OGM0ZCksCi0gICAgICAgICBUT0JOKDB4MGNlZjdiZmQsIDB4MmRkN2FhYjApLCBUT0JOKDB4
ZTc5NThlMDgsIDB4MmM3Yzc5ZmYpLAotICAgICAgICAgVE9CTigweDgxMjYyZTQyLCAweDI1MzQ2
Njg5KSwgVE9CTigweDcxNmRhMjkwLCAweGIwN2M3MDA0KSwKLSAgICAgICAgIFRPQk4oMHgzNWY5
MTFlYSwgMHhiNzk1MGVlMyksIFRPQk4oMHg2ZmQ3Mjk2OSwgMHgyNjFkMjFiNSksCi0gICAgICAg
ICBUT0JOKDB4NTIzODk4MDMsIDB4MDhiNjQwZDMpLCBUT0JOKDB4NWIwMDI2ZWUsIDB4ODg3ZjEy
YTEpLAotICAgICAgICAgVE9CTigweDIwZTIxNjYwLCAweDc0MmU5MzExKSwgVE9CTigweDBlZjZk
NTQxLCAweDVmZjc3ZmY3KSwKLSAgICAgICAgIFRPQk4oMHg5NjkxMjdmMCwgMHhmOWM0MTEzNSks
IFRPQk4oMHhmMjFkNjBjOSwgMHg2OGE2NDk5MyksCi0gICAgICAgICBUT0JOKDB4NjU2ZTVkMGMs
IDB4ZTU0MTg3NWMpLCBUT0JOKDB4ZjFlMGY4NGUsIDB4YTFkM2MyMzMpLAotICAgICAgICAgVE9C
TigweDliY2NhMzU5LCAweDA2MDAyZDYwKSwgVE9CTigweGJlMmRhNjBjLCAweDA2MTkxNTUyKSwK
LSAgICAgICAgIFRPQk4oMHg1ZGE4YmJhZSwgMHg2MTE4MWVjMyksIFRPQk4oMHg5ZjA0YjgyMywg
MHg2NTgwNmYxOSksCi0gICAgICAgICBUT0JOKDB4ZjE2MDRhN2QsIDB4ZDRiNzliYjgpLCBUT0JO
KDB4YWVlODA2ZmIsIDB4NTJjODc4YzgpLAotICAgICAgICAgVE9CTigweDM0MTQ0ZjExLCAweDhk
NDdiOGU4KSwgVE9CTigweDcyZWRmNTJiLCAweDk0OWY5MDU0KSwKLSAgICAgICAgIFRPQk4oMHhl
YmZjYTg0ZSwgMHgyMTI3MDE1YSksIFRPQk4oMHg5MDUxZDBjMCwgMHg5Y2I3Y2VmMyksCi0gICAg
ICAgICBUT0JOKDB4ODZlOGZlNTgsIDB4Mjk2ZGVlYzgpLCBUT0JOKDB4MzNiMjgxODgsIDB4NDEw
MTBkNzQpfSwKLSAgICAgICAge1RPQk4oMHgwMTA3OTM4MywgMHgxNzFiNDQ1ZiksIFRPQk4oMHg5
YmNmMjFlMywgMHg4MTMxYWQ0YyksCi0gICAgICAgICBUT0JOKDB4OGNkZmUyMDUsIDB4YzkzOTg3
ZTgpLCBUT0JOKDB4ZTYzZjQxNTIsIDB4YzkyZThjOGYpLAotICAgICAgICAgVE9CTigweDcyOTQ2
MmE5LCAweDMwYWRkNDNkKSwgVE9CTigweDYyZWJiMTQzLCAweGM5ODBmMDVhKSwKLSAgICAgICAg
IFRPQk4oMHg0ZjM5NTRlNSwgMHgzYjA2ZTk2OCksIFRPQk4oMHhmZTFkNzVhZCwgMHgyNDJjZjZi
MSksCi0gICAgICAgICBUT0JOKDB4NWY5NWM2YzcsIDB4YWY4Njg1YzgpLCBUT0JOKDB4ZDRjMWM4
Y2UsIDB4MmY4ZjAxYWEpLAotICAgICAgICAgVE9CTigweGM0NGJiZTMyLCAweDI1NzQ2OTJhKSwg
VE9CTigweGI4MDAzNDc4LCAweGQ0YTRhMDY4KSwKLSAgICAgICAgIFRPQk4oMHg3YzhmYzZlNSwg
MHgyZWNhM2NkYiksIFRPQk4oMHhlYTFkYjE2YiwgMHhlYzA0ZDM5OSksCi0gICAgICAgICBUT0JO
KDB4YjA1YmM4MmUsIDB4OGYyYmM1Y2YpLCBUT0JOKDB4NzYzZDUxN2YsIDB4ZjQ0NzkzZDIpLAot
ICAgICAgICAgVE9CTigweDQ0NTFjMWI4LCAweDA4YmQ5OGQwKSwgVE9CTigweDY0NGIxY2Q0LCAw
eDY1NzVmMjQwKSwKLSAgICAgICAgIFRPQk4oMHg2OTA3ZWIzMywgMHg3Mzc1ZDI3MCksIFRPQk4o
MHg1NmM4YmViZCwgMHhmYTIyODZiZCksCi0gICAgICAgICBUT0JOKDB4YzcxM2QyYWMsIDB4YzQ2
MzJiNDYpLCBUT0JOKDB4MTdkYTQyN2EsIDB4YWZkNjAyNDIpLAotICAgICAgICAgVE9CTigweDMx
MzA2NWI3LCAweGM5NWM3NTQ2KSwgVE9CTigweGY4MjM5ODk4LCAweGJmMTdhM2RlKSwKLSAgICAg
ICAgIFRPQk4oMHhmM2I3OTYzZiwgMHg0YzgzMDMyMCksIFRPQk4oMHg4NDJjN2FhMCwgMHg5MDMy
MDNlMyksCi0gICAgICAgICBUT0JOKDB4YWYyMmNhMGEsIDB4ZTczMjdhZmIpLCBUT0JOKDB4Mzhl
MTMwOTIsIDB4OTY3NjA5YjYpLAotICAgICAgICAgVE9CTigweDczYjhmYjYyLCAweDc1NzU1OGYx
KSwgVE9CTigweDNjYzNlODMxLCAweGY3ZWNhOGMxKSwKLSAgICAgICAgIFRPQk4oMHhlNDE3NDQ3
NCwgMHhmNjMzMTYyNyksIFRPQk4oMHhhNzc5ODljYSwgMHhjM2M0MDIzNCksCi0gICAgICAgICBU
T0JOKDB4ZTVmZDE3YTEsIDB4NDRhMDgxZTApLCBUT0JOKDB4ZDc5N2ZiN2QsIDB4YjcwZTI5NmEp
LAotICAgICAgICAgVE9CTigweDJiNDcyYjMwLCAweDQ4MWY3MTljKSwgVE9CTigweDBlNjMyYTk4
LCAweGZlNmY4YzUyKSwKLSAgICAgICAgIFRPQk4oMHg4OWNjZDExNiwgMHhjNWYwYzI4NCksIFRP
Qk4oMHhmNTEwODhhZiwgMHgyZDk4N2M2MiksCi0gICAgICAgICBUT0JOKDB4MmEyYmNjZGEsIDB4
NGMyZGU2Y2YpLCBUT0JOKDB4ODEwZjllZmUsIDB4ZjY3OWYwZjkpLAotICAgICAgICAgVE9CTigw
eGIwZjM5NGI5LCAweDdmZmU0YjNlKSwgVE9CTigweDBiNjkxZDIxLCAweGU1ZmE1ZDIxKSwKLSAg
ICAgICAgIFRPQk4oMHhiMGJkNzc0NywgMHg5ZGZiYmM3NSksIFRPQk4oMHhkMjgzMGZkYSwgMHhm
YWY3OGIwMCksCi0gICAgICAgICBUT0JOKDB4Zjc4YzI0OWMsIDB4NTI0MzRmNTcpLCBUT0JOKDB4
NGIxZjc1NDUsIDB4OTgwOTZkYWIpLAotICAgICAgICAgVE9CTigweDczYmY2Zjk0LCAweDhmZjhj
MGIzKSwgVE9CTigweDM0YWVmMDNkLCAweDQ1NGUxMzRjKSwKLSAgICAgICAgIFRPQk4oMHhmOGQx
NTFmNCwgMHhiN2FjN2VjNSksIFRPQk4oMHhkNmNlYjk1YSwgMHhlNTBkYTdkNSksCi0gICAgICAg
ICBUT0JOKDB4YTFiNDkyYjAsIDB4ZGMzYTBlYjgpLCBUT0JOKDB4NzUxNTdiNjksIDB4YjNkZDI4
NjMpLAotICAgICAgICAgVE9CTigweGUyYzRjNzRlLCAweGM1NDEzZDYyKSwgVE9CTigweGJlMzI5
ZmY3LCAweGJjNWZjNGM3KSwKLSAgICAgICAgIFRPQk4oMHg4MzVhMmFlYSwgMHg2MGZhOWRkYSks
IFRPQk4oMHhmMTE3ZjVhZCwgMHg3NDQ1Y2I4NyksCi0gICAgICAgICBUT0JOKDB4YWU4MzE3ZjQs
IDB4YjAxNjZmN2EpLCBUT0JOKDB4ZmJkM2UzZjcsIDB4Y2VlYzc0ZTYpLAotICAgICAgICAgVE9C
TigweGZkYjUxNmFjLCAweGUwODc0YmZkKSwgVE9CTigweDNkODQ2MDE5LCAweGM2ODFmM2EzKSwK
LSAgICAgICAgIFRPQk4oMHgwYjEyZWU1YywgMHg3YzE2MjBiMCksIFRPQk4oMHhiYTY4YjRkZCwg
MHgyYjYzYzUwMSksCi0gICAgICAgICBUT0JOKDB4YWMwM2NkMzIsIDB4NjY2OGM1MWUpLCBUT0JO
KDB4MmE2Mjc5ZjcsIDB4NGUwYmNiNWIpLAotICAgICAgICAgVE9CTigweDE3YmQ2OWIwLCAweDZh
ZTg1YzEwKSwgVE9CTigweDcyOTQ2OTc5LCAweDFkZmRkM2E2KSwKLSAgICAgICAgIFRPQk4oMHhk
OWEwMzI2OCwgMHgyYzA3OGJlYyksIFRPQk4oMHg0MWM2YTY1OCwgMHhiZmQ2OGE1MiksCi0gICAg
ICAgICBUT0JOKDB4Y2RlYTEwMjQsIDB4MGUwMjM5MDApLCBUT0JOKDB4YmFlZWMxMjEsIDB4YjEw
ZDE0NGQpLAotICAgICAgICAgVE9CTigweDVhNjAwZTc0LCAweDA1OGFiOGRjKSwgVE9CTigweDEz
MzNhZjIxLCAweGJiODljY2RkKSwKLSAgICAgICAgIFRPQk4oMHhkZjI1ZWFlMCwgMHgzYWFiYTFm
MSksIFRPQk4oMHgyY2FkYTE2ZSwgMHgzYjcxNDRjZiksCi0gICAgICAgICBUT0JOKDB4NjU3ZWUy
N2QsIDB4NzFhYjk4YmMpLCBUT0JOKDB4OTkwODhiNGMsIDB4N2E2ZmM5NmUpLAotICAgICAgICAg
VE9CTigweDA1ZDVjMGEwLCAweDM1NDlkYmQ0KSwgVE9CTigweDQyY2JkZjhmLCAweGYxNThjM2Fj
KSwKLSAgICAgICAgIFRPQk4oMHgzZmI2YjNiMCwgMHg4N2VkZDY4NSksIFRPQk4oMHgyMjA3MWNm
NiwgMHg4NmYwNjRkMCksCi0gICAgICAgICBUT0JOKDB4ZDJkNjcyMWYsIDB4ZmYyODExZTUpLCBU
T0JOKDB4ZGI4MWI3MDMsIDB4ZmU3ZmFlOGMpLAotICAgICAgICAgVE9CTigweDNjZmI3NGVmLCAw
eGQzZjFmN2JiKSwgVE9CTigweDBjZGJjZDc2LCAweDE2Y2RlYjVkKSwKLSAgICAgICAgIFRPQk4o
MHg0ZjM5NjQyYSwgMHg1NjZhODA4YyksIFRPQk4oMHgwMmI3NDQ1NCwgMHgzNDAwNjRkNiksCi0g
ICAgICAgICBUT0JOKDB4ZmFiYmFkY2EsIDB4MDUyOGZhNmYpLCBUT0JOKDB4ZTRjMzA3NGMsIDB4
ZDNmYzBiYjYpLAotICAgICAgICAgVE9CTigweGIzMmNiOGIwLCAweGI3OTZkMjE5KSwgVE9CTigw
eGMzZTk1ZjRmLCAweDM0NzQxZGQ5KSwKLSAgICAgICAgIFRPQk4oMHg4NzIxMjEyNSwgMHg2OGVk
ZjZmNSksIFRPQk4oMHg3YTAzYWVlNCwgMHhhMmI5Y2I4ZSksCi0gICAgICAgICBUT0JOKDB4MGNk
M2MzNzYsIDB4ZjUzYTg5YWEpLCBUT0JOKDB4MGQ4YWY5YjEsIDB4OTQ4YTI4ZGMpLAotICAgICAg
ICAgVE9CTigweGNmODZhM2Y0LCAweDkwMmFiMDRmKSwgVE9CTigweDhhYWNiNjJhLCAweDdmNDIw
MDJkKSwKLSAgICAgICAgIFRPQk4oMHgxMDY5ODVlYiwgMHhmNjJmZmQ1MiksIFRPQk4oMHhlNjcw
YjU0ZSwgMHg1Nzk3YmYxMCksCi0gICAgICAgICBUT0JOKDB4NGI0MDUyMDksIDB4YzVlMzBhZWYp
LCBUT0JOKDB4MTJjOTdhMjAsIDB4NDM2NWI1ZTkpLAotICAgICAgICAgVE9CTigweDEwNDY0NmNl
LCAweDFmZTMyMDkzKSwgVE9CTigweDEzY2I0ZmY2LCAweDM5MDdhOGM5KSwKLSAgICAgICAgIFRP
Qk4oMHg4YjlmMzBkMSwgMHhkNDZlNzI2YiksIFRPQk4oMHhlMTk4NWUyMSwgMHhhYmEwZjQ5OSks
Ci0gICAgICAgICBUT0JOKDB4YzU3M2RlYTksIDB4MTBhMjMwY2QpLCBUT0JOKDB4MjRmNDZhOTMs
IDB4Y2QzMGY5NDcpLAotICAgICAgICAgVE9CTigweGYyNjIzZmNmLCAweGFiZTIwMTBhKSwgVE9C
TigweDNmMjc4Y2IyLCAweDczZjAwZTRmKSwKLSAgICAgICAgIFRPQk4oMHhlZDU1YzY3ZCwgMHg1
MGI5MjBlYiksIFRPQk4oMHhmMWNiOWEyZCwgMHg4ZTc2MDU3MSksCi0gICAgICAgICBUT0JOKDB4
N2M1MGQxMDksIDB4MDg5NWI3MDkpLCBUT0JOKDB4NDIwN2NmMDcsIDB4MTkwZDQzNjkpLAotICAg
ICAgICAgVE9CTigweDNiMDI3ZTgxLCAweGM0MTI3ZmUxKSwgVE9CTigweGE5ZjhiOWFkLCAweDNh
ZTljNTY2KSwKLSAgICAgICAgIFRPQk4oMHg1YWIxMDg1MSwgMHhhY2JmYmJhNSksIFRPQk4oMHhh
NzQ3ZDY0OCwgMHg1Njk1NTZmNSksCi0gICAgICAgICBUT0JOKDB4Y2MxNzJiNWMsIDB4MmJhOTdi
ZjcpLCBUT0JOKDB4MTVlMGY3N2QsIDB4YmNmYTMzMjQpLAotICAgICAgICAgVE9CTigweGEzNDVi
Nzk3LCAweDc2ODYyNzlkKSwgVE9CTigweDVhNzIzNDgwLCAweGUzODAwM2QzKSwKLSAgICAgICAg
IFRPQk4oMHhmZDhlMTM5ZiwgMHg4ZjVmY2RhOCksIFRPQk4oMHhmM2U1NThjNCwgMHhiZGVlNWJm
ZCksCi0gICAgICAgICBUT0JOKDB4ZDc2Y2JhZjQsIDB4ZTMzZjlmNzcpLCBUT0JOKDB4M2E0Yzk3
YTQsIDB4NzE3NzE5NjkpLAotICAgICAgICAgVE9CTigweGRhMjdlODRiLCAweGY2ZGNlNmE3KSwg
VE9CTigweGZmMzczZDk2LCAweDEzZTZjMmQxKSwKLSAgICAgICAgIFRPQk4oMHhmMTE1MTkzYywg
MHhkNzU5YTZlOSksIFRPQk4oMHgzZjliNzAyNSwgMHg2M2QyMjYyYyksCi0gICAgICAgICBUT0JO
KDB4ZDk3NjRhMzEsIDB4MzE3Y2QwNjIpLCBUT0JOKDB4MzA3NzlkOGUsIDB4MTk5ZjgzMzIpLAot
ICAgICAgICAgVE9CTigweGQ4MDc0MTA2LCAweDE2YjExYjBiKSwgVE9CTigweDc5MTdhYjlmLCAw
eDc4YWVhZWQ4KSwKLSAgICAgICAgIFRPQk4oMHhiNjdhOWNiZSwgMHgyOGZiMWQ4ZSksIFRPQk4o
MHgyZTMxMzU2MywgMHgxMzZlZGEzMyksCi0gICAgICAgICBUT0JOKDB4MDEwYjcwNjksIDB4YTM3
MWE4NmMpLCBUT0JOKDB4NDRkOTBmYTIsIDB4Njc0NGU2YjcpLAotICAgICAgICAgVE9CTigweDY4
MTkwODY3LCAweGQ2YjNlMjQzKSwgVE9CTigweDlmZTZjZDlkLCAweDU5MDQ4YzQ4KSwKLSAgICAg
ICAgIFRPQk4oMHhiOTAwYjAyOCwgMHg5NTczMTUzOCksIFRPQk4oMHhhMDEyMDYyZiwgMHgzMmNh
ZTA0ZiksCi0gICAgICAgICBUT0JOKDB4ODEwN2M4YmMsIDB4OTM5OWQwODIpLCBUT0JOKDB4NDdl
OGM1NGEsIDB4NDFkZjEyZTIpLAotICAgICAgICAgVE9CTigweDE0YmE1MTE3LCAweGI2ZWYzZjcz
KSwgVE9CTigweDIyMjYwYmVhLCAweDgxMzYyZjBiKSwKLSAgICAgICAgIFRPQk4oMHg5MGVhMjYx
ZSwgMHgxYTE4Y2MyMCksIFRPQk4oMHgyMTkyOTk5ZiwgMHgyMzIxZDYzNiksCi0gICAgICAgICBU
T0JOKDB4ZWY2NGQzMTQsIDB4ZTMxMWI2YTApLCBUT0JOKDB4ZDc0MDFlNGMsIDB4M2I1NGExZjUp
LAotICAgICAgICAgVE9CTigweDE5MDE5OTgzLCAweDZmYmNhMmJhKSwgVE9CTigweDQ2YWQzMjkz
LCAweDhmYmZmYzRiKSwKLSAgICAgICAgIFRPQk4oMHhhMTQyZDNmNiwgMHgzNzg2YmY0MCksIFRP
Qk4oMHhlYjVjYmMyNiwgMHhiNjcwMzlmYyksCi0gICAgICAgICBUT0JOKDB4OWNiMGFlNmMsIDB4
MjUyYmQ0NzkpLCBUT0JOKDB4MDVlMGY4OGEsIDB4MTJiNTg0OGYpLAotICAgICAgICAgVE9CTigw
eDc4ZjZkMmIyLCAweGE1Yzk3NjYzKSwgVE9CTigweDZmNmUxNDliLCAweGMxNjIyMjVjKSwKLSAg
ICAgICAgIFRPQk4oMHhlNjAyMjM1YywgMHhkZTYwMWE4OSksIFRPQk4oMHhkMTdiYmU5OCwgMHhm
MzczYmUxZiksCi0gICAgICAgICBUT0JOKDB4Y2FmNDlhNWIsIDB4YTg0NzE4MjcpLCBUT0JOKDB4
N2UxYTBhODUsIDB4MThhYWExMTYpLAotICAgICAgICAgVE9CTigweDZjODMzMTk2LCAweDI3MDU4
MGMzKSwgVE9CTigweDFlMjMzODM5LCAweGYxYzk4YTE0KSwKLSAgICAgICAgIFRPQk4oMHg2N2Iy
ZjdiNCwgMHhhZTM0ZTBhNSksIFRPQk4oMHg0N2FjODc0NSwgMHhkOGNlNzI4OSksCi0gICAgICAg
ICBUT0JOKDB4MmI3NDc3OWEsIDB4MTAwZGQ0NjcpLCBUT0JOKDB4Mjc0YTQzMzcsIDB4NGVlNTBk
MDkpLAotICAgICAgICAgVE9CTigweDYwM2RjZjEzLCAweDgzNjA4YmM5KSwgVE9CTigweGNkOWRh
NmMzLCAweGM4OWU4Mzg4KSwKLSAgICAgICAgIFRPQk4oMHgyNjYwMTk5ZiwgMHgzNTUxMTZhYyks
IFRPQk4oMHhjYzM4YmI1OSwgMHhiNmQxOGVlZCksCi0gICAgICAgICBUT0JOKDB4MzA3NWYzMWYs
IDB4MmY0YmMwNzEpLCBUT0JOKDB4OTc3NDQ1N2YsIDB4MjY1ZGM1N2UpLAotICAgICAgICAgVE9C
TigweDA2YTZhOWM4LCAweGM2ZGI4OGJiKSwgVE9CTigweDY0MjlkMDdmLCAweDRlYzk4ZTA0KSwK
LSAgICAgICAgIFRPQk4oMHg4ZDA1ZTU3YiwgMHgwNWVjYWE4YiksIFRPQk4oMHgyMGYxNDBiMSwg
MHg3ODcyZWE3YiksCi0gICAgICAgICBUT0JOKDB4ZGY4YzBmMDksIDB4Y2E0OTQ2OTMpLCBUT0JO
KDB4NDhkM2EwMjAsIDB4ZjI1MmU5MDkpLAotICAgICAgICAgVE9CTigweDRjNWMyOWFmLCAweDU3
YjE0YjEyKSwgVE9CTigweDdlNmZhMzdkLCAweGJmNDdhZDFjKSwKLSAgICAgICAgIFRPQk4oMHg2
NmU3YjUwNiwgMHg0OWEwYzkzOCksIFRPQk4oMHhiNzJjMGQ0OCwgMHg2YmU1ZjQxZiksCi0gICAg
ICAgICBUT0JOKDB4NmE2MjQyYjgsIDB4YjIzNTk0MTIpLCBUT0JOKDB4Y2QzNWM3NzQsIDB4OGU4
NTk0ODApLAotICAgICAgICAgVE9CTigweDEyNTM2ZmVhLCAweDg3YmFhNjI3KSwgVE9CTigweDU4
YzFmZWMxLCAweGY3MmFhNjgwKSwKLSAgICAgICAgIFRPQk4oMHg2YzI5YjYzNywgMHg2MDFlNWRj
OSksIFRPQk4oMHg5ZTNjM2MxYywgMHhkZTllMDFiOSksCi0gICAgICAgICBUT0JOKDB4ZWZjODEy
N2IsIDB4MmJjZmUwYjApLCBUT0JOKDB4MzUxMDcxMDIsIDB4MmExMmY1MGQpLAotICAgICAgICAg
VE9CTigweDZjY2Q2Y2IxLCAweDQ4NzliMzk3KSwgVE9CTigweGY3OTJmODA0LCAweGY4YTgyZjIx
KSwKLSAgICAgICAgIFRPQk4oMHg1MDlkNDgwNCwgMHhhOWI0NjQwMiksIFRPQk4oMHhlZGRkZjg1
ZCwgMHhjMTBmMDg1MCksCi0gICAgICAgICBUT0JOKDB4OTI4NDEwZGMsIDB4NGI2MjA4YWEpLCBU
T0JOKDB4ZjYyMjljNDYsIDB4MzkxMDEyZGMpLAotICAgICAgICAgVE9CTigweGM1YTdjNDFlLCAw
eDc3MjdiOWI2KSwgVE9CTigweDI4OWU0ZTRiLCAweGFhNDQ0ODQyKSwKLSAgICAgICAgIFRPQk4o
MHgwNDliYTFkOSwgMHhlOWE5NDdlYSksIFRPQk4oMHg0NGY5ZTQ3ZiwgMHg4M2M4ZGViYyksCi0g
ICAgICAgICBUT0JOKDB4ZmE3N2ExZmUsIDB4NjExZjhiOGUpLCBUT0JOKDB4ZmQyZTQxNmEsIDB4
ZjUxOGY0MjcpLAotICAgICAgICAgVE9CTigweGM1ZmZmYTcwLCAweDExNGViYWMzKSwgVE9CTigw
eGZlNTdjNGU5LCAweDVkODk2OTdiKSwKLSAgICAgICAgIFRPQk4oMHhmZGQwNTNhYywgMHhiMWFh
ZjYxMyksIFRPQk4oMHgzMWRmMjEwZiwgMHhlYTU4NWE0NSksCi0gICAgICAgICBUT0JOKDB4MzE4
Y2MxMGUsIDB4MjQ5ODUwMzQpLCBUT0JOKDB4MWEzOGVmZDEsIDB4NWYxZDYxMzApLAotICAgICAg
ICAgVE9CTigweGJmODZmMjM3LCAweDBiMWU5ZTIxKSwgVE9CTigweGIyNTg1MTRkLCAweDFkYmU4
OGFhKSwKLSAgICAgICAgIFRPQk4oMHgxZTM4YTU4OCwgMHg5MGMxYmFmOSksIFRPQk4oMHgyOTM2
YTAxZSwgMHhiZGI5YjY5MiksCi0gICAgICAgICBUT0JOKDB4ZDU3NmRlOTgsIDB4NmRkNWIyMGMp
LCBUT0JOKDB4YjU4NmJmNzEsIDB4NzBmOThlY2YpLAotICAgICAgICAgVE9CTigweGNjY2YwZjEy
LCAweGM0MmQyZmQ3KSwgVE9CTigweDg3MTdlNjFjLCAweGZiMzViZDdiKSwKLSAgICAgICAgIFRP
Qk4oMHg4YjFlNTcyMiwgMHgzNWU2ZmMwNiksIFRPQk4oMHgzNDc3NzI4ZiwgMHgwYjNlMTNkNSks
Ci0gICAgICAgICBUT0JOKDB4MTUwYzI5NGQsIDB4YWE4YTczNzIpLCBUT0JOKDB4YzAyOTFkNDMs
IDB4M2JmYTUyOGEpLAotICAgICAgICAgVE9CTigweGM2YzhiYzY3LCAweGNlYzVhMTk2KSwgVE9C
TigweGRlZWIzMWU0LCAweDVjMmU4YTdjKSwKLSAgICAgICAgIFRPQk4oMHhiYTkzZTI0NCwgMHhm
YjZlMWM1MSksIFRPQk4oMHhiOWY4YjcxYiwgMHgyZTI4ZTE1NiksCi0gICAgICAgICBUT0JOKDB4
Y2U2NWEyODcsIDB4OTY4YTJhYjkpLCBUT0JOKDB4ZTNjNWNlNjksIDB4NDZiYmNiMWYpLAotICAg
ICAgICAgVE9CTigweGY4YzgzNWI5LCAweGU3YWUzZjMwKSwgVE9CTigweDE2YmJlZTI2LCAweGZm
NzJiODJiKSwKLSAgICAgICAgIFRPQk4oMHg2NjVlMjAxNywgMHhmZDQyY2QyMiksIFRPQk4oMHgx
ZTEzOTk3MCwgMHhmOGIxZDJhMCksCi0gICAgICAgICBUT0JOKDB4MTI1Y2RhMjksIDB4NzkyMDQ5
MzIpLCBUT0JOKDB4N2FlZTk0YTUsIDB4NDljM2JlZTUpLAotICAgICAgICAgVE9CTigweDY4Yzcw
MTYwLCAweDg5ODIxYTY2KSwgVE9CTigweGY3YzM3Njc4LCAweDhmOTgxNjY5KSwKLSAgICAgICAg
IFRPQk4oMHhkOTA4MjlmYywgMHg0OGNjMzY0NSksIFRPQk4oMHgzNDZhZjA0OSwgMHhkNzBhZGRm
YyksCi0gICAgICAgICBUT0JOKDB4MjA1N2IyMzIsIDB4MzcwYmYyOWMpLCBUT0JOKDB4ZjkwYzcz
Y2UsIDB4NDJlNjUwZWUpLAotICAgICAgICAgVE9CTigweGUwMzM4NmVhLCAweGExMjZhYjkwKSwg
VE9CTigweDBlMjY2ZTdlLCAweDk3NWEwODdiKSwKLSAgICAgICAgIFRPQk4oMHg4MDU3OGViOSwg
MHgwZmNhNjVkOSksIFRPQk4oMHg3ZTI5ODllYSwgMHgxNmFmNDViOCksCi0gICAgICAgICBUT0JO
KDB4NzQzODIxMmQsIDB4Y2FjNzVhNGUpLCBUT0JOKDB4MzhjN2NhMzksIDB4NGZlZjM2YjgpLAot
ICAgICAgICAgVE9CTigweDg2NTBjNDk0LCAweGQ0MDI2NzZhKSwgVE9CTigweDI2YWI1YTY2LCAw
eGY3MmM3YzQ4KSwKLSAgICAgICAgIFRPQk4oMHg0ZTZjYjQyNiwgMHhjZTNhNDY0ZSksIFRPQk4o
MHhmOGY5OTg5NiwgMHgyYjcyZjg0MSksCi0gICAgICAgICBUT0JOKDB4OGMzMTg0OTEsIDB4MWEz
MzVjYzgpLCBUT0JOKDB4NTYzNDU5YmEsIDB4NmE1OTEzZTQpLAotICAgICAgICAgVE9CTigweDFi
OTIwZDYxLCAweGM3YjMyOTE5KSwgVE9CTigweDgwNWFiOGI2LCAweGEwMjQyNWFkKSwKLSAgICAg
ICAgIFRPQk4oMHgyYWM1MTJkYSwgMHg4ZDAwNjA4NiksIFRPQk4oMHg2Y2E0ODQ2YSwgMHhiY2Y1
YzBmZCksCi0gICAgICAgICBUT0JOKDB4YWZlYTUxZDgsIDB4YWMyMTM4ZDcpLCBUT0JOKDB4Y2I2
NDc1NDUsIDB4MzQ0Y2Q0NDMpLAotICAgICAgICAgVE9CTigweDA0MjllZThmLCAweGJkN2Q5MDQw
KSwgVE9CTigweGVlNjZhMmRlLCAweDgxOWI5Yzk2KSwKLSAgICAgICAgIFRPQk4oMHg1NGY5ZWMy
NSwgMHhkZWE3ZDc0NCksIFRPQk4oMHgyZmZlYTY0MiwgMHg2NzE3MjFiYiksCi0gICAgICAgICBU
T0JOKDB4NGYxOWRiZDEsIDB4MTE0MzQ0ZWEpLCBUT0JOKDB4MDQzMDQ1MzYsIDB4ZmQwZGJjOGIp
LAotICAgICAgICAgVE9CTigweDAxNGI1MGFhLCAweDI5ZWM3ZjkxKSwgVE9CTigweGI1ZmMyMmZl
LCAweGJiMDYwMTRkKSwKLSAgICAgICAgIFRPQk4oMHg2MGQ5NjNhOSwgMHgxZWU2ODJlMCksIFRP
Qk4oMHhkZjQ4YWJjMCwgMHhmZTg1YzcyNyksCi0gICAgICAgICBUT0JOKDB4MGNhZGJhMTMsIDB4
MmU3MDdjMmQpLCBUT0JOKDB4ZGU2MDhkM2EsIDB4YTY0NWFlZmYpLAotICAgICAgICAgVE9CTigw
eDA1ZjFjMjhiLCAweGVkYWZkODgzKSwgVE9CTigweDNjMzYyZWRlLCAweGJkOTRkZTFmKSwKLSAg
ICAgICAgIFRPQk4oMHg4ZGQwNjI5ZCwgMHgxMzU5M2U0MSksIFRPQk4oMHgwYTVlNzM2ZiwgMHg3
NjZkNmVhZiksCi0gICAgICAgICBUT0JOKDB4YmZhOTIzMTEsIDB4ZjY4Y2Y5ZDEpLCBUT0JOKDB4
YTRmOWVmODcsIDB4YzE3OTc1NTYpLAotICAgICAgICAgVE9CTigweDEwZDc1YTFmLCAweDU2MDFj
MjA5KSwgVE9CTigweDY1MWMzNzRjLCAweDA5YjA3MzYxKSwKLSAgICAgICAgIFRPQk4oMHg0OTk1
MGI1OCwgMHg4OGI1Y2VhZCksIFRPQk4oMHgwZWYwMDA1OCwgMHg2ZmE5ZGJhYSksCi0gICAgICAg
ICBUT0JOKDB4ZjUxZGRjMjYsIDB4NGUxNWYzM2EpLCBUT0JOKDB4MWY4YjVjYTYsIDB4MmVmNDYx
NDApLAotICAgICAgICAgVE9CTigweDM0M2FjMGEzLCAweGVlOTUyM2YwKSwgVE9CTigweGJiNzVl
YWIyLCAweDk3NWVhOTc4KSwKLSAgICAgICAgIFRPQk4oMHgxYmNjZjMzMiwgMHgxMDczODdmNCks
IFRPQk4oMHg3OTBmOTI1OSwgMHg5YWIwMDYyZSksCi0gICAgICAgICBUT0JOKDB4ZjFhMzYzYWQs
IDB4MWU0ZjZhNWYpLCBUT0JOKDB4MDZlMDhiODQsIDB4NjI1MTlhNTApLAotICAgICAgICAgVE9C
TigweDYwOTE1MTg3LCAweDcyNjVmMWVlKSwgVE9CTigweDZhODBjYTM0LCAweDkzYWU5ODVlKSwK
LSAgICAgICAgIFRPQk4oMHg4MWIyOTc2OCwgMHhhYWJhNDg2NCksIFRPQk4oMHhiMTNjYWJmMiwg
MHg4ZDUyYTdkNiksCi0gICAgICAgICBUT0JOKDB4YjVjMzYzNDgsIDB4OGVhZDAzZjEpLCBUT0JO
KDB4YzkzMmFkOTUsIDB4ODFjN2MxYzApLAotICAgICAgICAgVE9CTigweDU0NTI3MDhlLCAweGNh
ZTFlMjdiKSwgVE9CTigweDlkYWM0MjY5LCAweDFiMGRmNjQ4KSwKLSAgICAgICAgIFRPQk4oMHgy
MzNlM2YwYywgMHhkZmNkYjhiYyksIFRPQk4oMHhlNmNlY2NkZiwgMHhlYzU0MDE3NCksCi0gICAg
ICAgICBUT0JOKDB4YmQwZDg0NWUsIDB4OTUwODExODEpLCBUT0JOKDB4Y2M4YTc5MjAsIDB4Njk5
MzU1ZDUpLAotICAgICAgICAgVE9CTigweDExMWMwZjZkLCAweGMzYjM3NWE4KSwgVE9CTigweGZk
OTViYzZiLCAweGZkNTFlMGRjKSwKLSAgICAgICAgIFRPQk4oMHg0YTEwNmEyNiwgMHg2ODg4NTIz
YSksIFRPQk4oMHg0ZDE0MmJkNiwgMHhjYjAxYTA2ZCksCi0gICAgICAgICBUT0JOKDB4NzliZmQy
ODksIDB4YWRiOWIzOTcpLCBUT0JOKDB4MGJkYmZiOTQsIDB4ZTk4NjM5MTQpLAotICAgICAgICAg
VE9CTigweDI5ZDhhMjI5LCAweDE2NjBmNmE2KSwgVE9CTigweDdmNmFiY2Q2LCAweDU1MWMwNDJk
KSwKLSAgICAgICAgIFRPQk4oMHgxMzAzOWRlYiwgMHgwYWMzZmZlOCksIFRPQk4oMHhhMDFiZTYy
OCwgMHhlYzg1MjNmYiksCi0gICAgICAgICBUT0JOKDB4NmVhMzQxMDMsIDB4MGNhMWMzMjgpLCBU
T0JOKDB4Yzc0MTE0YmQsIDB4YjkwMzkyOGUpLAotICAgICAgICAgVE9CTigweDhhYTRmZjRlLCAw
eDllOTE0NGIwKSwgVE9CTigweDcwNjQwOTFmLCAweDdmOWE0YjE3KSwKLSAgICAgICAgIFRPQk4o
MHhhM2Y0ZjUyMSwgMHhlNDQ3ZjJjNCksIFRPQk4oMHg4MWI4ZGE3YSwgMHg2MDQyOTFmMCksCi0g
ICAgICAgICBUT0JOKDB4ZDY4MGJjNDYsIDB4N2Q1OTI2ZGUpLCBUT0JOKDB4ODRmMjFmZDUsIDB4
MzRhMTIwMmYpLAotICAgICAgICAgVE9CTigweDFkMWUzMTgxLCAweDRlOWRmM2Q4KSwgVE9CTigw
eDFjYTQ4NjFhLCAweDM5YWI4ZDM0KSwKLSAgICAgICAgIFRPQk4oMHg4MDlkZGVlYywgMHg1YjE5
YWE0YSksIFRPQk4oMHg1OWY3MmY3ZSwgMHg0ZDMyOTM2NiksCi0gICAgICAgICBUT0JOKDB4YTJm
OTNmNDEsIDB4Mzg2ZDUwODcpLCBUT0JOKDB4NDBiZjczOWMsIDB4ZGQ2N2Q2NGYpLAotICAgICAg
ICAgVE9CTigweGI0NDk0MjA1LCAweDY2NzAyMTU4KSwgVE9CTigweGMzM2M2NWJlLCAweDczYjFl
MTc4KSwKLSAgICAgICAgIFRPQk4oMHhjZGNkNjU3YywgMHgzOGNhNjE1MyksIFRPQk4oMHg5N2Y0
NTE5YSwgMHhkYzc5MTk3NiksCi0gICAgICAgICBUT0JOKDB4Y2M3YzdmMjksIDB4Y2Q2ZTFmMzkp
LCBUT0JOKDB4MzhkZTljZmIsIDB4N2UzYzM5MzIpLAotICAgICAgICAgVE9CTigweGU0NDhlYmEz
LCAweDdiNzkzZjg1KSwgVE9CTigweGU5ZjhkYmY5LCAweGYwNjdlOTE0KSwKLSAgICAgICAgIFRP
Qk4oMHhjMDM5MDI2NiwgMHhmMTE0YWU4NyksIFRPQk4oMHgzOWVkNzVhNywgMHhjZDZhOGUyYSks
Ci0gICAgICAgICBUT0JOKDB4YWRiMTQ4NDgsIDB4N2ZmYmEzOTApLCBUT0JOKDB4NjdmOGNiOGIs
IDB4NmFmOWJjMDkpLAotICAgICAgICAgVE9CTigweDMyMmMzODQ4LCAweDljNzQ3NmRiKSwgVE9C
TigweGEzMjBmZWNmLCAweDUyYTUzOGQ2KSwKLSAgICAgICAgIFRPQk4oMHhlMDQ5MzAwMiwgMHhi
MmFjZWQyYiksIFRPQk4oMHhkZmJhMTgwOSwgMHg2MTZiZDQzMCksCi0gICAgICAgICBUT0JOKDB4
NTMxYzQ2NDQsIDB4YzMzMWJlNzApLCBUT0JOKDB4YmMwNGQzMmUsIDB4OTBkMmU0NTApLAotICAg
ICAgICAgVE9CTigweDE4MDVhMGQxLCAweDBmOWYxNDJkKSwgVE9CTigweDJjNDRhMGM1LCAweDQ3
ZWU1YTIzKSwKLSAgICAgICAgIFRPQk4oMHgzMTg3NWE0MywgMHgzOTg5YjRlMyksIFRPQk4oMHg2
YjE5NDlmZCwgMHgwYzA2MzQ4MSksCi0gICAgICAgICBUT0JOKDB4MmRmYjllMDgsIDB4YmUwZjQ0
OTIpLCBUT0JOKDB4M2ZmMGRhMDMsIDB4ZTlkNWU1MTcpLAotICAgICAgICAgVE9CTigweDAzZGJl
OWExLCAweGY3OTQ2NmE4KSwgVE9CTigweDBiODdiY2QwLCAweDE1ZWE5OTMyKSwKLSAgICAgICAg
IFRPQk4oMHhlYjY0ZmM4MywgMHhhYjFmNThhYiksIFRPQk4oMHg2ZDk1OThkYSwgMHg4MTdlZGM4
YSksCi0gICAgICAgICBUT0JOKDB4Njk5Y2ZmNjYsIDB4MWQzYjY3ZTUpLCBUT0JOKDB4NjQ1YzBm
MjksIDB4OTI2MzU4NTMpLAotICAgICAgICAgVE9CTigweDI1M2NkZDgyLCAweGVhYmFmMjFjKSwg
VE9CTigweDgyYjk2MDJhLCAweDIyNDE2NTllKSwKLSAgICAgICAgIFRPQk4oMHgyY2FlMDdlYywg
MHgyZDlmNzA5MSksIFRPQk4oMHhiZTRjNzIwYywgMHg4YjQ4Y2Q5YiksCi0gICAgICAgICBUT0JO
KDB4NmNlNWJjMDMsIDB4NmYwOGQ2YzkpLCBUT0JOKDB4MzZlOGE5OTcsIDB4YWYxMGJmNDApLAot
ICAgICAgICAgVE9CTigweDgzNDIyZDIxLCAweDNlMTBmZjEyKSwgVE9CTigweDdiMjZkM2ViLCAw
eGJjYzEyNDk0KSwKLSAgICAgICAgIFRPQk4oMHhiMjQwZDJkMCwgMHhjOTQ2OWFkNiksIFRPQk4o
MHhjNGExMWI0ZCwgMHgzMGFmYTA1YiksCi0gICAgICAgICBUT0JOKDB4NGI2MDRhY2UsIDB4ZGQ2
YmEyODYpLCBUT0JOKDB4MTg0ODY2MDAsIDB4M2VlMjg2NGMpLAotICAgICAgICAgVE9CTigweDU4
NjlkNmJhLCAweDhkOWNlNWJlKSwgVE9CTigweDBkOGY2OGM1LCAweGZmNGJmYjBkKSwKLSAgICAg
ICAgIFRPQk4oMHhiNjlmMjEwYiwgMHg1NzAwY2Y3MyksIFRPQk4oMHg2MWY2NjUzYSwgMHg2ZDM3
YzEzNSksCi0gICAgICAgICBUT0JOKDB4ZmYzZDQzMmIsIDB4NWFmZjVhNDgpLCBUT0JOKDB4MGQ4
MWM0YjksIDB4NzJiYTNhNjkpLAotICAgICAgICAgVE9CTigweGVlODc5YWU5LCAweGZhMTg5OWVm
KSwgVE9CTigweGJhYzdlMmEwLCAweDJkNmFjYWZkKSwKLSAgICAgICAgIFRPQk4oMHhkNmQ5M2Y2
YywgMHgxYzY2NDM5OSksIFRPQk4oMHg0YzI4OGRlMSwgMHg1YmNiMTM1ZCksCi0gICAgICAgICBU
T0JOKDB4ODMwMzFkYWIsIDB4OWRhYjdjYmYpLCBUT0JOKDB4ZmUyM2ZlYjAsIDB4M2FiYmY1ZjAp
LAotICAgICAgICAgVE9CTigweDlmMWIyNDY2LCAweGNkZWRjYTg1KSwgVE9CTigweDE0MGJiNzEw
LCAweDFhMDk1MzhjKSwKLSAgICAgICAgIFRPQk4oMHhhYzhhZTg1MSwgMHg1ZTExMTE1ZCksIFRP
Qk4oMHgwZDYzZmY2NywgMHg2ZjAzZjU5ZSksCi0gICAgICAgICBUT0JOKDB4NzU1ZTU1NTEsIDB4
N2QyMzRhZmIpLCBUT0JOKDB4NjFjMmRiNGUsIDB4N2UyMDhmYzEpLAotICAgICAgICAgVE9CTigw
eGFhOTg1OWNlLCAweGYyOGE0YjVkKSwgVE9CTigweGJkZDZkNGZjLCAweDM0YWYwMzBmKSwKLSAg
ICAgICAgIFRPQk4oMHhkMWM0YTI2ZCwgMHgzYmUwMWNiMSksIFRPQk4oMHg5YmExNGZmYywgMHgy
NDNhYTA3YyksCi0gICAgICAgICBUT0JOKDB4Zjk1Y2QzYTksIDB4YjI1MDM1MDIpLCBUT0JOKDB4
ZTM3OWJjMDYsIDB4N2QyYTkzYWIpLAotICAgICAgICAgVE9CTigweDNlZmMxOGU5LCAweGQ0Y2E4
ZDY4KSwgVE9CTigweDA4MzU1OGVjLCAweDgwYmI0MTJhKSwKLSAgICAgICAgIFRPQk4oMHhkOTAz
Yjk0MCwgMHg5NjQ1YTk2OCksIFRPQk4oMHhhNDk5ZjBiNiwgMHg5YmE2MDU0ZiksCi0gICAgICAg
ICBUT0JOKDB4MjA4YjU3M2MsIDB4YjgzNDlhYmUpLCBUT0JOKDB4M2JhYWIzZTUsIDB4MzBiNGZj
MWMpLAotICAgICAgICAgVE9CTigweDg3ZTk3OGJhLCAweGNiNTI0OTkwKSwgVE9CTigweDM1MjQx
OTRlLCAweGNjZGYwZTgwKSwKLSAgICAgICAgIFRPQk4oMHg2MjcxMTcyNSwgMHg3ZDRiY2M0Miks
IFRPQk4oMHhlOTBhM2Q5YiwgMHhiOTAxMDliYSksCi0gICAgICAgICBUT0JOKDB4M2IxYmRkNTcs
IDB4MTMyM2UxZTApLCBUT0JOKDB4Yjc4ZTliZDUsIDB4NWVhZTE1OTkpLAotICAgICAgICAgVE9C
TigweDA3OTRiNzQ2LCAweDllMDNkMjc4KSwgVE9CTigweDgwMTc4NjA1LCAweGQ3MGU2Mjk3KSwK
LSAgICAgICAgIFRPQk4oMHgxNzE3OTJmOCwgMHg5OWM5Nzg1NSksIFRPQk4oMHgxMWIzOTNlZSwg
MHhmNWE4NmI1YyksCi0gICAgICAgICBUT0JOKDB4NDhlZjY1ODIsIDB4ZDg4ODRmMjcpLCBUT0JO
KDB4YmQ0NDczN2EsIDB4YmYxOWJhNWYpLAotICAgICAgICAgVE9CTigweDg2OThkZTRjLCAweGE0
MjA2MmM2KSwgVE9CTigweDg5NzVlYjgwLCAweDYxY2U5YzU0KSwKLSAgICAgICAgIFRPQk4oMHhk
NTBlNTdjNywgMHhkN2ZlNzFmMyksIFRPQk4oMHgxNTM0MjE5MCwgMHhiYzk3Y2UzOCksCi0gICAg
ICAgICBUT0JOKDB4NTFiZGEyZGUsIDB4NGRmMDdiNjMpLCBUT0JOKDB4YmExMmFlYWUsIDB4MjAw
ZWI4N2QpLAotICAgICAgICAgVE9CTigweGFiZTEzNWQyLCAweGE5YjRmOGY2KSwgVE9CTigweDA0
NjE5ZDY1LCAweGZhZDZkOTljKSwKLSAgICAgICAgIFRPQk4oMHg0YTY2ODNhNywgMHg3OTk0OTM3
YyksIFRPQk4oMHg3YTc3OGM4YiwgMHg2Zjk0ZjA5YSksCi0gICAgICAgICBUT0JOKDB4OGM1MDg2
MjMsIDB4MjBhNzFiODkpLCBUT0JOKDB4MjQxYTJhZWQsIDB4MWMyMjkxNjUpLAotICAgICAgICAg
VE9CTigweDM1MmJlNTk1LCAweGFhZjgzYTk5KSwgVE9CTigweDlmYmZlZTdmLCAweDE1NjJiYWM4
KSwKLSAgICAgICAgIFRPQk4oMHhlYWY2NThiOSwgMHg1YzQwMTdlMyksIFRPQk4oMHgxZGM3Zjll
MCwgMHgxNTEyMGI4NiksCi0gICAgICAgICBUT0JOKDB4ZDg0ZjEzZGQsIDB4NGMwMzRkNmYpLCBU
T0JOKDB4MjgzZGQ3MzcsIDB4ZWFlYTMwMzgpLAotICAgICAgICAgVE9CTigweDE5N2YyNjA5LCAw
eGNkODVkNmEyKSwgVE9CTigweDZlYmJjMzQ1LCAweGZhZTYwMTc3KSwKLSAgICAgICAgIFRPQk4o
MHhiODBmMDMxYiwgMHg0ZTEyZmVkZSksIFRPQk4oMHhkZTU1ZDBjMiwgMHgwN2EyMTg2YiksCi0g
ICAgICAgICBUT0JOKDB4MWZiM2UzN2YsIDB4MjRkY2RkNWEpLCBUT0JOKDB4OGQ2MDJkYTUsIDB4
N2VkMTkxZmIpLAotICAgICAgICAgVE9CTigweDEwOGZiMDU2LCAweDc2MDIzZTBkKSwgVE9CTigw
eDcwMTc4YzcxLCAweDQ1OWMyMGMwKSwKLSAgICAgICAgIFRPQk4oMHhmYWQ1YTM4NiwgMHgzZmU1
NGNmMCksIFRPQk4oMHhhNGEzZWM0ZiwgMHgwMmJiYjQ3NSksCi0gICAgICAgICBUT0JOKDB4MWFh
NWVjMjAsIDB4OTE5ZDk0ZDcpLCBUT0JOKDB4NWQzYjYzYjUsIDB4YTgxZTRhYjMpLAotICAgICAg
ICAgVE9CTigweDdmYTczM2Q4LCAweDVhZDNkMmFmKSwgVE9CTigweGZiYzU4NmRkLCAweGQxYWM3
YTM3KSwKLSAgICAgICAgIFRPQk4oMHgyODI5MjVkZSwgMHg0MDc3OTYxNCksIFRPQk4oMHhmZTBm
ZmZmYiwgMHhlNzRhMjQyYSksCi0gICAgICAgICBUT0JOKDB4M2YzOWU2N2YsIDB4OTA2MTUxZTUp
LCBUT0JOKDB4Y2VhMjdmNWYsIDB4NTVlMTA2NDkpLAotICAgICAgICAgVE9CTigweGRjYTFkNGUx
LCAweGMxN2NmN2I3KSwgVE9CTigweDBjMzI2ZDEyLCAweDJmZTIzNjJkKSwKLSAgICAgICAgIFRP
Qk4oMHgwNWY3YWMzMywgMHg3ZGQzNWRmMyksIFRPQk4oMHgwYzNiNzYzOSwgMHhjMzk2ZGJkZiks
Ci0gICAgICAgICBUT0JOKDB4MDkxMmY1YWMsIDB4MDNiN2RiMWMpLCBUT0JOKDB4OWRlYTRiNzAs
IDB4NWM5ZWQ0YTkpLAotICAgICAgICAgVE9CTigweDQ3NWU2ZTUzLCAweGFhZTNmNjM5KSwgVE9C
TigweGZhYmEwZTdjLCAweGZjMjc4YmFjKSwKLSAgICAgICAgIFRPQk4oMHgxNmY5ZTIyMSwgMHg5
NDkwMzc1ZiksIFRPQk4oMHhhZWJmOTc0NiwgMHhhNWE3ZWQwYSksCi0gICAgICAgICBUT0JOKDB4
NDVmOWFmM2YsIDB4ZjQxYWQ1ZDYpLCBUT0JOKDB4MDNjNDYyM2MsIDB4YjJlOTkyMjQpLAotICAg
ICAgICAgVE9CTigweDgyYzViYjVjLCAweGIzY2Y1NmFhKSwgVE9CTigweDY0MzExODE5LCAweDM0
NTY3ZWQzKSwKLSAgICAgICAgIFRPQk4oMHhlYzU3ZjIxMSwgMHg4YmU0ODlhYyksIFRPQk4oMHgy
ODIxODk1ZCwgMHhiOWExMTA0YiksCi0gICAgICAgICBUT0JOKDB4NjEwZGM4NzUsIDB4NjA2NGUw
MDcpLCBUT0JOKDB4OGU1MjZmM2YsIDB4NWIyMGQwZmUpLAotICAgICAgICAgVE9CTigweDZlNzFj
YTc3LCAweDViNjQ1YWVlKSwgVE9CTigweDNkMWRjYjlmLCAweDgwMGUxMGZmKSwKLSAgICAgICAg
IFRPQk4oMHgzNmI1MTE2MiwgMHgxODljZjZkZSksIFRPQk4oMHgyYzVhM2UzMCwgMHg2YmIxNzM1
MyksCi0gICAgICAgICBUT0JOKDB4YzE4NmNkM2UsIDB4MmE2YzZmYmYpLCBUT0JOKDB4YTc0NTE2
ZmEsIDB4NGJmOTc5MDYpLAotICAgICAgICAgVE9CTigweDViNGI4ZjRiLCAweDI3OWQ2OTAxKSwg
VE9CTigweDBjNGU1N2I0LCAweDJiNTczNzQzKSwKLSAgICAgICAgIFRPQk4oMHg3NWZkYjIyOSwg
MHhiNmUzODZiNiksIFRPQk4oMHhiNDY3OTNmZCwgMHg5OWRlYWMyNyksCi0gICAgICAgICBUT0JO
KDB4ZWVlYzQ3ZWEsIDB4Y2Y3MTI2MjkpLCBUT0JOKDB4ZTk2NWYzYzQsIDB4Y2JjM2IyZGQpLAot
ICAgICAgICAgVE9CTigweDhkZDFmYjgzLCAweDQyNWM2NTU5KSwgVE9CTigweDdmYzAwZWU2LCAw
eDBhZjA2ZmRhKSwKLSAgICAgICAgIFRPQk4oMHhlOThjOTIyNSwgMHgzM2Q5NTZkZiksIFRPQk4o
MHgwZjFlZjMzNSwgMHg0ZmJkYzhhMiksCi0gICAgICAgICBUT0JOKDB4MmFiYjUxNDUsIDB4Yjc5
YjhlYTIpLCBUT0JOKDB4NDBmZDI5NDUsIDB4YmRiZmYyODgpLAotICAgICAgICAgVE9CTigweDZh
ODE0YWM0LCAweGQ3MTg1ZGI3KSwgVE9CTigweGM0MzI5ZDZmLCAweGMwODQ2MDlhKSwKLSAgICAg
ICAgIFRPQk4oMHhjOWJhN2I1MiwgMHhlZDFiZTQ1ZCksIFRPQk4oMHg4OTFkZDIwZCwgMHhlNGNk
MmM3NCksCi0gICAgICAgICBUT0JOKDB4NWE0ZDRhN2YsIDB4ODI0MTM5YjEpLCBUT0JOKDB4NjZj
MTc3MTYsIDB4Yjg3M2M3MTApLAotICAgICAgICAgVE9CTigweDVlNWJjMTQxLCAweDI4NDNjNGUw
KSwgVE9CTigweGQ1YWM0ODE3LCAweGI5N2ViNWJmKSwKLSAgICAgICAgIFRPQk4oMHhjMGY4YWY1
NCwgMHg0NTBjOTVjNyksIFRPQk4oMHhjOTFiM2ZhMCwgMHgzMTg0MDZjNSksCi0gICAgICAgICBU
T0JOKDB4MzYwYzM0MGEsIDB4YWI5ZDk3ZjgpLCBUT0JOKDB4ZmI1N2JkMDcsIDB4OTBhMmQ2MTEp
LAotICAgICAgICAgVE9CTigweDQzMzlhZTNjLCAweGE2YTZmN2U1KSwgVE9CTigweDljMWZjZDJh
LCAweDJmZWI4YTEwKSwKLSAgICAgICAgIFRPQk4oMHg5NzJiY2NhOSwgMHhjN2VhNzQzMiksIFRP
Qk4oMHgxYjBiOTI0YywgMHgzMDgwNzZmNiksCi0gICAgICAgICBUT0JOKDB4ODBiMjgxNGEsIDB4
MmE1YjRjYTUpLCBUT0JOKDB4MmY3OGY1NWIsIDB4NjFlZjNiMjkpLAotICAgICAgICAgVE9CTigw
eGY4Mzg3NDRhLCAweGMxOGE0MTRmKSwgVE9CTigweGM2MTFlYWFlLCAweDkwM2QwYTg2KSwKLSAg
ICAgICAgIFRPQk4oMHg5NGRhYmMxNiwgMHgyYTQ1M2Y1NSksIFRPQk4oMHhlNmYyZTNkYSwgMHgx
NGVmYjI3OSksCi0gICAgICAgICBUT0JOKDB4NWI3YTYwMTcsIDB4OTMyMGRjM2MpLCBUT0JOKDB4
NjkyZTM4MmYsIDB4OGRmNmI1YTQpLAotICAgICAgICAgVE9CTigweDNmNWUxNWUwLCAweDJkNDBm
YTkwKSwgVE9CTigweGM4Nzg4M2FlLCAweDY0M2RkMzE4KSwKLSAgICAgICAgIFRPQk4oMHg1MTEw
NTNlNCwgMHg1MzU0NDc3NCksIFRPQk4oMHg4MzRkMGVjYywgMHgzYWRiYTJiYyksCi0gICAgICAg
ICBUT0JOKDB4NDIxNWQ3ZjcsIDB4YmFlMzcxZjUpLCBUT0JOKDB4ZmNmZDU3YmYsIDB4NmM4NjYz
YmMpLAotICAgICAgICAgVE9CTigweGRlZDIzODNkLCAweGQ2OTAxYjFkKSwgVE9CTigweDNiNDlm
YmI0LCAweGI1NTg3ZGMzKSwKLSAgICAgICAgIFRPQk4oMHhmZDQ0YTA4ZCwgMHgwNzYyNWY2Miks
IFRPQk4oMHgzZWU0ZDY1YiwgMHg5ZGU5Yjc2Mil9LAotICAgICAgICB7VE9CTigweDY0ZTUxMzdk
LCAweDBkNjNkMWZhKSwgVE9CTigweDY1OGZjMDUyLCAweDAyYTlkODlmKSwKLSAgICAgICAgIFRP
Qk4oMHg0ODg5NDg3NCwgMHg1MDQzNjMwOSksIFRPQk4oMHhlOWFlMzBmOCwgMHhkNTk4ZGE2MSks
Ci0gICAgICAgICBUT0JOKDB4MmVkNzEwZDEsIDB4ODE4YmFmOTEpLCBUT0JOKDB4ZTI3ZTllMDYs
IDB4OGI2YTBjMjApLAotICAgICAgICAgVE9CTigweDFlMjhkY2ZiLCAweDFjMWE2YjQ0KSwgVE9C
TigweDg4M2FjYjY0LCAweGQ2YWM1N2RjKSwKLSAgICAgICAgIFRPQk4oMHg4NzM1NzI4ZCwgMHhj
MmM2ZmY3MCksIFRPQk4oMHg3OWQ2MTIyZiwgMHhjNWRjMjIzNSksCi0gICAgICAgICBUT0JOKDB4
MjNmNWQwMDMsIDB4MTllMjc3ZjkpLCBUT0JOKDB4N2VlODRlMjUsIDB4ZGRlZDhjYzcpLAotICAg
ICAgICAgVE9CTigweDkxYThhZmIwLCAweDYzY2Q4ODBhKSwgVE9CTigweDNmM2VhN2M2LCAweDM1
NzRhZjYwKSwKLSAgICAgICAgIFRPQk4oMHgwY2ZjZGM4NCwgMHgwMmRlN2Y0MiksIFRPQk4oMHg2
MmQwNzkyZiwgMHhiMzFhYTE1MiksCi0gICAgICAgICBUT0JOKDB4OGUxYjRlNDMsIDB4OGE1ODA3
Y2UpLCBUT0JOKDB4YWQyODM4OTMsIDB4ZTQxMDlhN2UpLAotICAgICAgICAgVE9CTigweGMzMGNj
OWNiLCAweGFmZDU5ZGRhKSwgVE9CTigweGY2NWYzNmM2LCAweDNkOGQ4MDkzKSwKLSAgICAgICAg
IFRPQk4oMHhkZjMxNDY5ZSwgMHhhNjBkMzJiMiksIFRPQk4oMHhlZTkzZGY0YiwgMHgzZTgxOTFj
OCksCi0gICAgICAgICBUT0JOKDB4OWMxMDE3YzUsIDB4MzU1YmRlYjUpLCBUT0JOKDB4ZDI2MjMx
ODUsIDB4ODYxNmFhMjgpLAotICAgICAgICAgVE9CTigweGIwMmM4M2Y5LCAweGRlYzMxYTIxKSwg
VE9CTigweDk4OGM4YjIzLCAweDZhZDlkNTczKSwKLSAgICAgICAgIFRPQk4oMHg1M2U5ODNhZSwg
MHhhNTdiZTM2NSksIFRPQk4oMHhlOTY4NzM0ZCwgMHg2NDZmODM0ZSksCi0gICAgICAgICBUT0JO
KDB4OTEzN2VhOGYsIDB4NWRhNjMwOWIpLCBUT0JOKDB4MTBmM2E2MjQsIDB4YzFmMWNlMTYpLAot
ICAgICAgICAgVE9CTigweDc4MmE5ZWEyLCAweGNhNDQwOTIxKSwgVE9CTigweGRmOTQ3MzllLCAw
eDViNDZmMWI1KSwKLSAgICAgICAgIFRPQk4oMHg5ZjliZTAwNiwgMHhjY2U4NWM5YiksIFRPQk4o
MHgzNjBlNzBkNiwgMHhhNGM3YzJkMyksCi0gICAgICAgICBUT0JOKDB4MmNkNWJlZWEsIDB4YWVm
YTFlNjApLCBUT0JOKDB4NjRjZjYzYzAsIDB4OGMzZDJiNmQpLAotICAgICAgICAgVE9CTigweGZi
MTA3ZmEzLCAweGUxY2Y2ZjkwKSwgVE9CTigweGI3ZTkzN2M2LCAweGQ1ZTA0NGU2KSwKLSAgICAg
ICAgIFRPQk4oMHg3NGU4Y2E3OCwgMHhjZTM0ZGI5ZiksIFRPQk4oMHg0ZjhiMzZjMSwgMHgzZTIx
MGJkMCksCi0gICAgICAgICBUT0JOKDB4MWRmMTY1YTQsIDB4MzRhMzVlYTgpLCBUT0JOKDB4MzQx
OGUwZjcsIDB4NGQ0NDEyZjYpLAotICAgICAgICAgVE9CTigweDVhZjFmOGFmLCAweDUxODgzNmMz
KSwgVE9CTigweDQyY2VlZjRkLCAweDEzMGUxOTY1KSwKLSAgICAgICAgIFRPQk4oMHg1NTYwY2Ew
YiwgMHg1NDNhMTk1NyksIFRPQk4oMHhjMzM3NjFlNSwgMHg4ODZjYjEyMyksCi0gICAgICAgICBU
T0JOKDB4NjY2MjRiMWYsIDB4ZmU5OGVkMzApLCBUT0JOKDB4Zjc3MmY0YmYsIDB4MTA5MDk5N2Qp
LAotICAgICAgICAgVE9CTigweGY0ZTU0MGJiLCAweDQ4ODVkNDEwKSwgVE9CTigweDcyODdmODEw
LCAweDliYTVmOGQ3KSwKLSAgICAgICAgIFRPQk4oMHgyMmQwZDg2NSwgMHhkZTk4ZGZiMSksIFRP
Qk4oMHg0OWZmNTFhMSwgMHhiY2ZiYjhhMyksCi0gICAgICAgICBUT0JOKDB4YjZiNmZhNTMsIDB4
NmJjMzAxMmUpLCBUT0JOKDB4M2QzMWZkNzIsIDB4MTcwZDU0MWQpLAotICAgICAgICAgVE9CTigw
eDgwMTg3MjRmLCAweDRiMGY0OTY2KSwgVE9CTigweDc5ZTczOTlmLCAweDg3ZGJkZTA3KSwKLSAg
ICAgICAgIFRPQk4oMHg1NmY4NDEwZSwgMHhmNGY4YjE2YSksIFRPQk4oMHg5NzI0MWFmZSwgMHhj
NDdiMjY2YSksCi0gICAgICAgICBUT0JOKDB4MGE0MDZiOGUsIDB4NmQ5Yzg3YzEpLCBUT0JOKDB4
ODAzZjNlMDIsIDB4Y2Q0MmFiMWIpLAotICAgICAgICAgVE9CTigweDdmMDMwOWE4LCAweDA0ZGJl
YzY5KSwgVE9CTigweGE4M2I4NWY3LCAweDNiYmFkMDVmKSwKLSAgICAgICAgIFRPQk4oMHhjNjA5
NzI3MywgMHhhZDhlMTk3ZiksIFRPQk4oMHhjMDk3NDQwZSwgMHg1MDY3YWRjMSksCi0gICAgICAg
ICBUT0JOKDB4NzMwZWFmYjYsIDB4MzUyNGZmMTYpLCBUT0JOKDB4ZDdmOWI1MWUsIDB4ODIzZmM2
Y2UpLAotICAgICAgICAgVE9CTigweDI3YmQwZDMyLCAweDQ0M2U0YWMwKSwgVE9CTigweDQwYzU5
YWQ5LCAweDRkNjZmMjE3KSwKLSAgICAgICAgIFRPQk4oMHg2YzMzMTM2ZiwgMHgxN2MzODdhNCks
IFRPQk4oMHg1MDQzYjhkNSwgMHhlYjg2ODA0ZCksCi0gICAgICAgICBUT0JOKDB4NzQ5NzAzMTIs
IDB4Njc1YTczYzkpLCBUT0JOKDB4ODM4ZmRiMzEsIDB4ZjE2NjY5YjYpLAotICAgICAgICAgVE9C
TigweGM1MDdiNmRkLCAweDQxOGU3ZGRkKSwgVE9CTigweDM5ODg4ZDkzLCAweDQ3MmYxOWQ2KSwK
LSAgICAgICAgIFRPQk4oMHg3ZWFlMjZiZSwgMHgwYzI3ZWI0ZCksIFRPQk4oMHgxN2I1M2VkMywg
MHhmYmFiYjg4NCksCi0gICAgICAgICBUT0JOKDB4ZmMyNzAyMWIsIDB4MmIwMWFlNGYpLCBUT0JO
KDB4ODg0NjJlODcsIDB4Y2Y0ODg2ODIpLAotICAgICAgICAgVE9CTigweGJlZTA5NmVjLCAweDIx
NWUyZDg3KSwgVE9CTigweGViMmZlYTlhLCAweGQyNDJlMjliKSwKLSAgICAgICAgIFRPQk4oMHg1
ZDk4NWI1ZiwgMHhiODIxZmMyOCksIFRPQk4oMHg4OWQyZTE5NywgMHhkYzFlMmFkMiksCi0gICAg
ICAgICBUT0JOKDB4NTViNTY2YjgsIDB4OTAzMGJhNjIpLCBUT0JOKDB4ZTNmZDQxYjUsIDB4NGY0
MWIxYzYpLAotICAgICAgICAgVE9CTigweGI3MzhhYzJlLCAweGI5YTk2ZDYxKSwgVE9CTigweDdm
ODU2N2NhLCAweDM2OTQ0M2Y0KSwKLSAgICAgICAgIFRPQk4oMHg4Njk4NjIyZCwgMHhmODAzYTQ0
MCksIFRPQk4oMHgyYjU4NjIzNiwgMHg4ZmUyZjRkYyksCi0gICAgICAgICBUT0JOKDB4YmJjYzAw
YzcsIDB4NTZiOTViY2UpLCBUT0JOKDB4NWVjMDM5MDYsIDB4NjE2ZGE2ODApLAotICAgICAgICAg
VE9CTigweDc5MTYyZWU2LCAweDcyMjE0MjUyKSwgVE9CTigweDQzMTMyYjYzLCAweDg2YTg5MmQy
KSwKLSAgICAgICAgIFRPQk4oMHg0YmRkM2ZmMiwgMHgyZjMyNjNiZiksIFRPQk4oMHhkNWIzNzMz
YywgMHg5Y2QwYTE0MiksCi0gICAgICAgICBUT0JOKDB4NTkyZWFhODIsIDB4NDQ0MTVjY2IpLCBU
T0JOKDB4NjYzZTg5MjQsIDB4OGQ1NDc0ZWEpLAotICAgICAgICAgVE9CTigweDgwNThhMjVlLCAw
eDUyMzYzNDRlKSwgVE9CTigweDgyZThkZjlkLCAweGJkYTc2ZWU2KSwKLSAgICAgICAgIFRPQk4o
MHhkY2Y2ZWZkOCwgMHgxMWNjM2QyMiksIFRPQk4oMHgwMDA4OWNkYSwgMHgzYjRhYjUyOSksCi0g
ICAgICAgICBUT0JOKDB4OTFkM2EwNzEsIDB4YmQzOGEzZGIpLCBUT0JOKDB4NGVhOTdmYzAsIDB4
ZWY3MmI5MjUpLAotICAgICAgICAgVE9CTigweDBjOWZjMTViLCAweGVhM2VkZjc1KSwgVE9CTigw
eDVhNjI5N2NkLCAweGE0MzQ4ZWQzKSwKLSAgICAgICAgIFRPQk4oMHgwZDM4YWIzNSwgMHhjZTdj
NDJkNCksIFRPQk4oMHg5ZmQ0OTNlZiwgMHg4MmZlYWIxMCksCi0gICAgICAgICBUT0JOKDB4NDYw
NTZiNmQsIDB4ODIxMTFiNDUpLCBUT0JOKDB4ZGExMWRhZTEsIDB4NzNlZmM1YzMpLAotICAgICAg
ICAgVE9CTigweGRjNzQwMjc4LCAweDU1NDVhN2ZiKSwgVE9CTigweGJkYjI2MDFjLCAweDQwZDUw
N2U2KSwKLSAgICAgICAgIFRPQk4oMHgxMjFkZmVlYiwgMHg3MDY2ZmE1OCksIFRPQk4oMHgyMTQz
NjlhOCwgMHgzOWFlOGMyYSksCi0gICAgICAgICBUT0JOKDB4MTk1NzA5Y2IsIDB4MDZlMDk1NmMp
LCBUT0JOKDB4NGM5ZDI1NGYsIDB4MDEwY2QzNGIpLAotICAgICAgICAgVE9CTigweGY1MWUxM2Y3
LCAweDA0NzFhNTMyKSwgVE9CTigweGUxOWQ2NzkxLCAweDFlNzMwNTRkKSwKLSAgICAgICAgIFRP
Qk4oMHhmNzAyYTYyOCwgMHhkYjVjN2JlMyksIFRPQk4oMHhjNzE0MTIxOCwgMHhiMjRkZGUwNSks
Ci0gICAgICAgICBUT0JOKDB4ZGMxODIzM2MsIDB4ZjI5YjJlMmUpLCBUT0JOKDB4M2E2YmQxZTgs
IDB4ODUzNDJkYmEpLAotICAgICAgICAgVE9CTigweDNmNzQ3ZmEwLCAweGIzMTE4OThjKSwgVE9C
TigweGUyYTI3MmU0LCAweGNkMGVhYzY1KSwKLSAgICAgICAgIFRPQk4oMHg0YmJhNTg1MSwgMHhm
OTE0ZDBiYyksIFRPQk4oMHg3YTFhOTY2MCwgMHhjNGE0M2VlMyksCi0gICAgICAgICBUT0JOKDB4
ZTVhMzY3Y2UsIDB4YTFjOGNkZTkpLCBUT0JOKDB4OWQ5NThiYTksIDB4NzI3MWFiZTMpLAotICAg
ICAgICAgVE9CTigweGYzZmY3ZWI2LCAweDNkMTYxNWNkKSwgVE9CTigweGEyMjgwZGNlLCAweGY1
YWUyMGIwKSwKLSAgICAgICAgIFRPQk4oMHg1NmRiYTVjMSwgMHhjZjY0MDE0NyksIFRPQk4oMHhl
YTVhMmUzZCwgMHg1ZTgzZDExOCksCi0gICAgICAgICBUT0JOKDB4MDRjZDZiNmQsIDB4ZGEyNGM1
MTEpLCBUT0JOKDB4MWMwZjQ2NzEsIDB4ZTg1NGQyMTQpLAotICAgICAgICAgVE9CTigweDkxYTZi
N2E5LCAweDY5NTY1MzgxKSwgVE9CTigweGRjOTY2MjQwLCAweGRlY2YxZjViKSwKLSAgICAgICAg
IFRPQk4oMHgxYjIyZDIxYywgMHhmY2Y1ZDAwOSksIFRPQk4oMHgyYTA1ZjY0MSwgMHg5MDIxZGJk
NSksCi0gICAgICAgICBUT0JOKDB4OGMwZWQ1NjYsIDB4ZDQzMTI0ODMpLCBUT0JOKDB4NTE3OWE5
NWQsIDB4NjQzZTIxNmYpLAotICAgICAgICAgVE9CTigweGNjMTg1ZmVjLCAweDE3MDQ0NDkzKSwg
VE9CTigweGIzMDYzMzM5LCAweDU0OTkxYTIxKSwKLSAgICAgICAgIFRPQk4oMHhkODAxZWNkYiwg
MHgwMDgxYTcyNiksIFRPQk4oMHgwMTQ5YjBjNiwgMHg0ZmE4OWJiYiksCi0gICAgICAgICBUT0JO
KDB4YWZlOTA2NWEsIDB4NDM5MWI2YjkpLCBUT0JOKDB4ZWRjOTI3ODYsIDB4ZDYzM2YzYTMpLAot
ICAgICAgICAgVE9CTigweGU0MDhjMjRhLCAweGFlNmE4ZTEzKSwgVE9CTigweDg1ODMzZmRlLCAw
eDlmMzg5N2FiKSwKLSAgICAgICAgIFRPQk4oMHg0MzgwMGU3ZSwgMHhkODFhMDcxNSksIFRPQk4o
MHhkZTA4ZTM0NiwgMHhiNDRmZmM1ZiksCi0gICAgICAgICBUT0JOKDB4NzA5NDE4NGMsIDB4Y2Rl
ZmYyZTApLCBUT0JOKDB4NDlmOTM4N2IsIDB4MTY1ZWFlZDEpLAotICAgICAgICAgVE9CTigweDYz
NWQ2MTI5LCAweDc3N2M0NjhhKSwgVE9CTigweDhjMGRjZmQxLCAweDUzOGMyZGQ4KSwKLSAgICAg
ICAgIFRPQk4oMHhkNmQ5ZDllMywgMHg3YTZhMzA4YiksIFRPQk4oMHg2MjM3NTgzMCwgMHg0YzI3
NjdkMyksCi0gICAgICAgICBUT0JOKDB4ODc0YThiYzYsIDB4ZjM4Y2JlYjYpLCBUT0JOKDB4ZDk0
ZDNmMWEsIDB4Y2NiNmZkOWUpLAotICAgICAgICAgVE9CTigweDkyYTk3MzViLCAweGJhMjFmMjQ4
KSwgVE9CTigweDI3MmFkMGU1LCAweDZjZDFlZmIwKSwKLSAgICAgICAgIFRPQk4oMHg3NDM3YjY5
YywgMHgwNWIwMzI4NCksIFRPQk4oMHhlN2YwNDcwMiwgMHg2OTQ4YzIyNSksCi0gICAgICAgICBU
T0JOKDB4OGE1NmMwNGEsIDB4Y2JhMmVjZWMpLCBUT0JOKDB4MGMxODEyNzAsIDB4ZTNhNzNlNDEp
LAotICAgICAgICAgVE9CTigweDZjYjM0ZTlkLCAweDAzZTkzNzI1KSwgVE9CTigweGY3N2M4NzEz
LCAweDQ5NjUyMWE5KSwKLSAgICAgICAgIFRPQk4oMHg5NDU2OTE4MywgMHhmYTdmOWY5MCksIFRP
Qk4oMHhmMmU3YWE0YywgMHg4Yzk3MDdhZCksCi0gICAgICAgICBUT0JOKDB4Y2VkMmM5YmEsIDB4
MjZjMWM5YTMpLCBUT0JOKDB4OTEwOWZlOTYsIDB4NDAxOTc1MDcpLAotICAgICAgICAgVE9CTigw
eDlhZTg2OGE5LCAweGU5YWRmZTFjKSwgVE9CTigweDM5ODQ0MDNkLCAweDMxNGUzOWJiKSwKLSAg
ICAgICAgIFRPQk4oMHhiNTg3NTcyMCwgMHhmMmZlMzc4ZiksIFRPQk4oMHgzM2Y5MDFlMCwgMHhi
YTQ0YTYyOCksCi0gICAgICAgICBUT0JOKDB4ZWExMTI1ZmUsIDB4MzY1MjQzOGMpLCBUT0JOKDB4
YWU5ZWM0ZTYsIDB4OWRkMWYyMGIpLAotICAgICAgICAgVE9CTigweDFlNzQwZDllLCAweGJlYmY3
ZmJkKSwgVE9CTigweDZkYmQzZGRjLCAweDQyZGJlNzljKSwKLSAgICAgICAgIFRPQk4oMHg2MjA4
MmFlYywgMHhlZGQzNjc3NiksIFRPQk4oMHhmNjEyYzQ3OCwgMHhlOTg1OTAzOSksCi0gICAgICAg
ICBUT0JOKDB4YTQ5M2IyMDEsIDB4MDMyZjcwNjUpLCBUT0JOKDB4ZWJkNGQ4ZjIsIDB4NGZmOWIy
MTEpLAotICAgICAgICAgVE9CTigweDNmMjNhMGFhLCAweGFhYzRjYjMyKSwgVE9CTigweGVhM2Fh
ZGI3LCAweDE1ZWQ0MDA1KSwKLSAgICAgICAgIFRPQk4oMHhhY2YxN2VhNCwgMHhhZmEyN2U2Myks
IFRPQk4oMHg1NjEyNWMxYSwgMHhjMTFmZDY2YyksCi0gICAgICAgICBUT0JOKDB4MjY2MzQ0YTQs
IDB4Mzc5NGY4ZGMpLCBUT0JOKDB4ZGNjYTkyM2EsIDB4NDgzYzVjMzYpLAotICAgICAgICAgVE9C
TigweDJkNmI2YmJmLCAweDNmOWQxMGEwKSwgVE9CTigweGIzMjBjNWNhLCAweDgxZDliZGYzKSwK
LSAgICAgICAgIFRPQk4oMHg2MjBlMjhmZiwgMHg0N2I1MGE5NSksIFRPQk4oMHg5MzNlM2IwMSwg
MHhjZWYwMzM3MSksCi0gICAgICAgICBUT0JOKDB4ZjA4MWJmODUsIDB4OTkxMDAxNTMpLCBUT0JO
KDB4MTgzYmU5YTAsIDB4YzNhOGM4ZDYpLAotICAgICAgICAgVE9CTigweDRlM2RkYzVhLCAweGQ2
YmJlMjRkKSwgVE9CTigweGM2Yzc0NjMwLCAweDUzODQzNzk1KSwKLSAgICAgICAgIFRPQk4oMHg3
ODE5M2RkNywgMHg2NWVjMmQ0YyksIFRPQk4oMHhiOGRmMjZjYywgMHhjZDNjODliMiksCi0gICAg
ICAgICBUT0JOKDB4OThkYmUzOTksIDB4NWE0ODNmOGQpLCBUT0JOKDB4NzJkOGE5NTcsIDB4N2Rk
MzMxM2EpLAotICAgICAgICAgVE9CTigweDY1MDg3Mjk0LCAweGFiMGJkMzc1KSwgVE9CTigweGZj
ZDg5MjQ4LCAweDdjMjU5ZDE2KSwKLSAgICAgICAgIFRPQk4oMHg4YTk0NDNkNywgMHg3NjEzYWE4
MSksIFRPQk4oMHg4MDEwMDgwMCwgMHg4NWZlNjU4NCksCi0gICAgICAgICBUT0JOKDB4NzBmYzRk
YmMsIDB4N2ZiMTAyODgpLCBUT0JOKDB4ZjU4MjgwZDMsIDB4ZTg2YmVlZTgpLAotICAgICAgICAg
VE9CTigweDE0ZmRkODJmLCAweDdjOTc4YzM4KSwgVE9CTigweGRmMTIwNGMxLCAweDBkZTQ0ZDdi
KSwKLSAgICAgICAgIFRPQk4oMHhhMDhhMWM4NCwgMHg0MTYwMjUyZiksIFRPQk4oMHg1OTE1NTRj
YSwgMHhjMTc2NDZhNSksCi0gICAgICAgICBUT0JOKDB4MjE0YTM3ZDYsIDB4YTA1YmQ1MjUpLCBU
T0JOKDB4NDhkNWYwOWIsIDB4MDc5NTdiM2MpLAotICAgICAgICAgVE9CTigweDAyNDdjZGNiLCAw
eGQ3MTA5YmM5KSwgVE9CTigweDQwZjllNGJiLCAweDMwNTk5Y2U3KSwKLSAgICAgICAgIFRPQk4o
MHhjMzI1ZmEwMywgMHhmNDZhZDJlYyksIFRPQk4oMHgwMGY3NjZjZiwgMHhjM2UzZjllZSksCi0g
ICAgICAgICBUT0JOKDB4YWI1NTY2NjgsIDB4ZDQzYTQ1NzcpLCBUT0JOKDB4NjhkMzBhNjEsIDB4
M2VlMDNiOTMpLAotICAgICAgICAgVE9CTigweDdkZGM4MWVhLCAweDc3YjQ2YTA4KSwgVE9CTigw
eGNmNWE2NDc3LCAweGM3NDgwNjk5KSwKLSAgICAgICAgIFRPQk4oMHg0M2E4Y2IzNCwgMHg2NjMz
ZjY4MyksIFRPQk4oMHgxYjg2N2U2YiwgMHg5MjM2M2M2MCksCi0gICAgICAgICBUT0JOKDB4NDM5
MjExMTQsIDB4MWY2MDU1OGUpLCBUT0JOKDB4Y2RiY2RkNjMsIDB4MmY0MTQ1MGUpLAotICAgICAg
ICAgVE9CTigweDdmYzA0NjAxLCAweGNjNjMwZThiKSwgVE9CTigweGVhN2M2NmQ1LCAweDk3MDM4
YjQzKSwKLSAgICAgICAgIFRPQk4oMHg3MjU5YjhhNSwgMHgwNGU5OWZkOCksIFRPQk4oMHg5OGE4
ZGQxMiwgMHg0Nzg1NTQ5YSksCi0gICAgICAgICBUT0JOKDB4MGU0NTlhN2MsIDB4ODQwNTUyZTEp
LCBUT0JOKDB4Y2RmY2Y0ZDAsIDB4NGJiMDkwOWUpLAotICAgICAgICAgVE9CTigweDM0YTg2ZGIy
LCAweDUzNzU4ZGE3KSwgVE9CTigweGU2NDNiYjgzLCAweGVhYzk5N2UxKSwKLSAgICAgICAgIFRP
Qk4oMHg5NjQwMGJkNywgMHg1MzBjNWI3ZSksIFRPQk4oMHg5Zjk3YWY4NywgMHhiNDFjOGI1Miks
Ci0gICAgICAgICBUT0JOKDB4MzRmYzg4MjAsIDB4ZmJlZWUzZjkpLCBUT0JOKDB4OTNlNTM0OTAs
IDB4NDkwOTFhZmQpLAotICAgICAgICAgVE9CTigweDc2NGI5YmU1LCAweDlhMzFmMzVjKSwgVE9C
TigweDcxZjM3ODY0LCAweDU3ZTNkOTI0KSwKLSAgICAgICAgIFRPQk4oMHgwMmZiMzRlMCwgMHg5
NDNhYTc1ZSksIFRPQk4oMHhhMThjOWM1OCwgMHhhYjhmZjZlNCksCi0gICAgICAgICBUT0JOKDB4
MDgwZjMxYjEsIDB4MzNjZjBkMTkpLCBUT0JOKDB4NWM5NjgyZGIsIDB4MDgzNTE4YTcpLAotICAg
ICAgICAgVE9CTigweDg3M2Q0Y2E2LCAweGI3MDljM2RlKSwgVE9CTigweDY0YTg0MjYyLCAweDM1
NzViOGYwKSwKLSAgICAgICAgIFRPQk4oMHg2Mjc1ZGExZiwgMHgwMjAxNTRiYiksIFRPQk4oMHg5
NzY3OGNhYSwgMHhkMTdjZjFhYiksCi0gICAgICAgICBUT0JOKDB4ODc3OTc5NWYsIDB4OTUxYTk1
YzMpLCBUT0JOKDB4ZGQzNWIxNjMsIDB4NTBmY2NjMDgpLAotICAgICAgICAgVE9CTigweDMyNzA5
NjI3LCAweDMzZDhmMDMxKSwgVE9CTigweDNjNWFiMTBhLCAweDQ5OGRkODVjKSwKLSAgICAgICAg
IFRPQk4oMHhiNmMxODVjMywgMHg0MWRjYTU2NiksIFRPQk4oMHg3ZGU3ZmVkYSwgMHhkODYyMmFh
MyksCi0gICAgICAgICBUT0JOKDB4OTllODRkOTIsIDB4OTAxYjZkZmIpLCBUT0JOKDB4MzBhMDJi
MGUsIDB4N2M0YWQyODgpLAotICAgICAgICAgVE9CTigweGM3YzgxZGFhLCAweDJmZDNjZjM2KSwg
VE9CTigweGQxMzE5NTQ3LCAweGRmODllNTlmKSwKLSAgICAgICAgIFRPQk4oMHhiMmJlODE4NCwg
MHhjZDQ5NjczMyksIFRPQk4oMHhkNWY0NDllYiwgMHg5M2QzNDEyYiksCi0gICAgICAgICBUT0JO
KDB4N2VhNDFiMWIsIDB4MjVmZTUzMWQpLCBUT0JOKDB4Zjk3OTc0MzIsIDB4NmExZDU2NDYpLAot
ICAgICAgICAgVE9CTigweDg2MDY3ZjcyLCAweDJiZGU1MDFhKSwgVE9CTigweGY5MTQ4MWMwLCAw
eDBjODVlODljKSwKLSAgICAgICAgIFRPQk4oMHhjYThlZTQ2NSwgMHhmOGIwNWJjNiksIFRPQk4o
MHgxODQ0ZTFjZiwgMHgwMmU4M2NkYSksCi0gICAgICAgICBUT0JOKDB4Y2E4MjExNGEsIDB4YjRk
YmUzM2IpLCBUT0JOKDB4MGY5Zjg3NjksIDB4NGVhYmZkZTIpLAotICAgICAgICAgVE9CTigweDQ5
MzZiMWMwLCAweDM4YjI3ZmUyKSwgVE9CTigweDYzYjYzNTliLCAweGFiYTQwMmRmKSwKLSAgICAg
ICAgIFRPQk4oMHg0MGMwZWEyZiwgMHg2NTZiZGJhYiksIFRPQk4oMHg5Yzk5MmE4OSwgMHg2NTgw
YzM5YyksCi0gICAgICAgICBUT0JOKDB4NjAwZThmMTUsIDB4MmE2MGFlZDEpLCBUT0JOKDB4ZWIw
ODljYTQsIDB4ZTBiZjQ5ZGYpLAotICAgICAgICAgVE9CTigweDljMjMzZDdkLCAweDJkNDJkOTlh
KSwgVE9CTigweDY0OGQzZjk1LCAweDRjNmJjMmZhKSwKLSAgICAgICAgIFRPQk4oMHhkY2MzODNh
OCwgMHhlMWFkZDNmMyksIFRPQk4oMHhmNDJjMGM2YSwgMHg0ZjY0YTM0OCksCi0gICAgICAgICBU
T0JOKDB4MmFiZDE3NmYsIDB4MDAzMGRiZGIpLCBUT0JOKDB4NGRlNTAxYTMsIDB4N2Q2YzIxNWUp
LAotICAgICAgICAgVE9CTigweDRhMTA3YzFmLCAweDRiOWE2NGJjKSwgVE9CTigweGE3N2YwYWQz
LCAweDI0OTZjZDU5KSwKLSAgICAgICAgIFRPQk4oMHhmYjc4YWM2MiwgMHg3Njg4ZGZmYiksIFRP
Qk4oMHg3MDI1YTJjYSwgMHg2NzkzN2Q4ZSksCi0gICAgICAgICBUT0JOKDB4ZmRlOGIyZDEsIDB4
ZDFhOGY0ZTcpLCBUT0JOKDB4ZjViM2RhNDcsIDB4NzM1NDkyN2MpLAotICAgICAgICAgVE9CTigw
eGU0ODYwNmEzLCAweGQ5MjA1NzM1KSwgVE9CTigweGFjNDc3Y2M2LCAweGUxNzdiOTE3KSwKLSAg
ICAgICAgIFRPQk4oMHhmYjFmNzNkMiwgMHhhODgzMjM5YSksIFRPQk4oMHhlMTI1NzJmNiwgMHhj
YzhiODM1NyksCi0gICAgICAgICBUT0JOKDB4OWQzNTVlOWMsIDB4ZmIxZjRmODYpLCBUT0JOKDB4
ODliNzk1ZjgsIDB4ZDlmM2VjNmUpLAotICAgICAgICAgVE9CTigweDI3YmU1NmYxLCAweGI1NDM5
OGRjKSwgVE9CTigweDE4OTBlZmQ3LCAweDNmZWRlZWQ1KSwKLSAgICAgICAgIFRPQk4oMHg2MmY3
N2YxZiwgMHg5YzZkMDE0MCksIFRPQk4oMHg3ZWYwZTMxNCwgMHg1OTZmMGVlNCksCi0gICAgICAg
ICBUT0JOKDB4NTBjYTY2MzEsIDB4Y2M2MWRhYjMpLCBUT0JOKDB4NGEzOTgwMWQsIDB4ZjQ4NjZl
NGYpLAotICAgICAgICAgVE9CTigweDY2YzhkMDMyLCAweGFlMzYzYjM5KSwgVE9CTigweDIyYzU5
MWU1LCAweDJlYWQ2NmFhKSwKLSAgICAgICAgIFRPQk4oMHg5NTRiYTMwOCwgMHhkZTAyYTUzZSks
IFRPQk4oMHgyYTZjMDYwZiwgMHhkMzg5ZjM1NyksCi0gICAgICAgICBUT0JOKDB4ZTZjZmNkZTgs
IDB4ZmJmNDBiNjYpLCBUT0JOKDB4OGUwMmZjNTYsIDB4YzYzNDBjZTEpLAotICAgICAgICAgVE9C
TigweGU0OTU3Nzk1LCAweDczYWRiNGJhKSwgVE9CTigweDdiODYxMjJjLCAweGE3YjAzODA1KSwK
LSAgICAgICAgIFRPQk4oMHg2M2Y4MzUxMiwgMHgwYzhlNmZhNiksIFRPQk4oMHg4MzY2MGVhMCwg
MHgwNTdkNzgwNCksCi0gICAgICAgICBUT0JOKDB4YmFkNzkxMDUsIDB4MjFiYTQ3M2MpLCBUT0JO
KDB4YjZjNTBiZWUsIDB4ZGVkNTM4OWQpLAotICAgICAgICAgVE9CTigweGVlMmNhZjRkLCAweGFh
N2M5YmMwKSwgVE9CTigweGQ5N2I4ZGU0LCAweDhjNGU5OGE3KSwKLSAgICAgICAgIFRPQk4oMHhh
OWY2M2U3MCwgMHhhYjNiYmRkYiksIFRPQk4oMHgzODk4YWFiZiwgMHgyNTk3ODE1YSksCi0gICAg
ICAgICBUT0JOKDB4NzY1OWFmODksIDB4YWMxNWIzZDkpLCBUT0JOKDB4ZWRmNzcyNWIsIDB4NzAz
Y2U3ODQpLAotICAgICAgICAgVE9CTigweDI1NDcwZmFiLCAweGUwODUxMTZiKSwgVE9CTigweDA0
YTQzMzc1LCAweDg3Mjg1MzEwKSwKLSAgICAgICAgIFRPQk4oMHg0ZTM5MTg3ZSwgMHhlMmJmZDUy
ZiksIFRPQk4oMHgzNjE2NmI0NCwgMHg3ZDllYmM3NCksCi0gICAgICAgICBUT0JOKDB4OTJhZDQz
M2MsIDB4ZmQ0YjMyMmMpLCBUT0JOKDB4NzI2YWE4MTcsIDB4YmE3OWFiNTEpLAotICAgICAgICAg
VE9CTigweGY5NmVhY2Q4LCAweGMxZGIxNWViKSwgVE9CTigweGZhZjcxZTkxLCAweDA0NzZiZTYz
KSwKLSAgICAgICAgIFRPQk4oMHhkZDY5YTY0MCwgMHg2NDFmYWQ5OCksIFRPQk4oMHhiNzk5NTkx
OCwgMHgyOTYyMjU1OSksCi0gICAgICAgICBUT0JOKDB4MDNjNmRhYTUsIDB4ZGU0MTk5ZGMpLCBU
T0JOKDB4OTJjYWRjOTcsIDB4YWQ1NDVlYjQpLAotICAgICAgICAgVE9CTigweDEwMjgyMzhiLCAw
eDI1NjUzNGU0KSwgVE9CTigweDczZTgwY2U2LCAweDg1OTU0MDlhKSwKLSAgICAgICAgIFRPQk4o
MHg2OTBkNGM2NiwgMHhkMDVkYzU5YiksIFRPQk4oMHhjOTVmN2I4ZiwgMHg5ODFkZWU4MCksCi0g
ICAgICAgICBUT0JOKDB4ZjQzMzcwMTQsIDB4ZDg1NmFjMjUpLCBUT0JOKDB4NDQxYmQ5ZGQsIDB4
YWM1MjRkY2EpLAotICAgICAgICAgVE9CTigweDY0MGIzZDg1LCAweDVmMDQ5OWY1KSwgVE9CTigw
eDM5Y2Y4NGE5LCAweGQ1ZmRhMTgyKSwKLSAgICAgICAgIFRPQk4oMHgwNGU3YjA1NSwgMHhiMmFh
OTVhMCksIFRPQk4oMHgyOWUzM2YwYSwgMHgwZGRmMTg2MCksCi0gICAgICAgICBUT0JOKDB4MDgy
ZTc0YjUsIDB4NDIzZjZiNDMpLCBUT0JOKDB4MjE3ZWRlYjksIDB4MGFhYTJiMGYpLAotICAgICAg
ICAgVE9CTigweDU4YjgzZjM1LCAweDgzY2JlYTU1KSwgVE9CTigweGM0ODVlZTRkLCAweGJjMTg1
ZDcwKSwKLSAgICAgICAgIFRPQk4oMHg4MzNmZjAzYiwgMHgxZTVmNjk5MiksIFRPQk4oMHhiNWI5
YjljYywgMHhjZjBjMGRkNSksCi0gICAgICAgICBUT0JOKDB4N2NhYWVlOGUsIDB4NGU5ZThhNTAp
LCBUT0JOKDB4NDYyZTkwN2IsIDB4NjI2OWRhZmQpLAotICAgICAgICAgVE9CTigweDZlZDVjZWU5
LCAweGZiZTc5MWM2KSwgVE9CTigweDY4Y2EzMjU5LCAweGVkNDMwNzkwKSwKLSAgICAgICAgIFRP
Qk4oMHgyYjcyYmRmMiwgMHgxM2I1YmE4OCksIFRPQk4oMHg2MDI5NGM4YSwgMHgzNWVmMGFjNCks
Ci0gICAgICAgICBUT0JOKDB4OWMzMjMwZWQsIDB4MTliOTliMDgpLCBUT0JOKDB4NTYwZmZmMTcs
IDB4NmMyNTg5YWEpLAotICAgICAgICAgVE9CTigweDU1MmI4NDg3LCAweGQ2NzcwMzc0KSwgVE9C
TigweGEzNzMyMDJkLCAweDlhNTZmNjg1KSwKLSAgICAgICAgIFRPQk4oMHhkM2U3ZjkwNywgMHg0
NWYxNzVkOSksIFRPQk4oMHgzYzJmMzE1ZiwgMHhkMDgwZDgxMCksCi0gICAgICAgICBUT0JOKDB4
MTEzMGU5ZGQsIDB4N2I5NTIwZTgpLCBUT0JOKDB4YzA3OGY5ZTIsIDB4MGFmMDM3YjUpLAotICAg
ICAgICAgVE9CTigweDM4Y2QyZWM3LCAweDFlOWMxMDRjKSwgVE9CTigweDBmNjg0MzY4LCAweGM0
NzJmZTkyKSwKLSAgICAgICAgIFRPQk4oMHhkM2YxYjVlZCwgMHg2MjQ3ZTdlZiksIFRPQk4oMHhi
MzJkMzNhOSwgMHgzOTZkZmUyMSksCi0gICAgICAgICBUT0JOKDB4NDZmNTljZjQsIDB4NGE5YWEy
YzIpLCBUT0JOKDB4NjljZDUxNjgsIDB4ZmYwZjdlNDEpLAotICAgICAgICAgVE9CTigweDNmNTlk
YTBmLCAweDRiMzIzNGRhKSwgVE9CTigweGNmMGIwMjM1LCAweGI0NTc5ZWJlKSwKLSAgICAgICAg
IFRPQk4oMHg2ZDFjYmIyNSwgMHg2ZDI0NzZjNyksIFRPQk4oMHg0ZjA4MzdlNiwgMHg5ZGMzMGYw
OCksCi0gICAgICAgICBUT0JOKDB4OWE0MDc1YmIsIDB4OTA2ZjZlOTgpLCBUT0JOKDB4MjUzYmI0
MzQsIDB4Yzc2MWU3ZDEpLAotICAgICAgICAgVE9CTigweGRlMmU2NDVmLCAweDZlNzNhZjEwKSwg
VE9CTigweGI4OWE0MDYwLCAweDBjNWYxMzFjKSwKLSAgICAgICAgIFRPQk4oMHhkMTI4NDBjNSwg
MHhiOGNjMDM3ZiksIFRPQk4oMHgzZDA5M2E1YiwgMHg3NDA1YmI0NyksCi0gICAgICAgICBUT0JO
KDB4NjIwMmMyNTMsIDB4MjA2MzQ4YjgpLCBUT0JOKDB4YmY1ZDU3ZmMsIDB4YzU1YTNjYTcpLAot
ICAgICAgICAgVE9CTigweDg5ZjZjOTBjLCAweDhjM2JlZjQ4KSwgVE9CTigweDIzYWM3NjIzLCAw
eDVhMGE5NjBhKSwKLSAgICAgICAgIFRPQk4oMHhkZmJkM2Q2YiwgMHg1NTJiNDJhYiksIFRPQk4o
MHgzZWYyMjQ1OCwgMHgxMzIwNjFmNiksCi0gICAgICAgICBUT0JOKDB4ZDc0ZTliZGEsIDB4Yzk3
ZTY1MTYpLCBUT0JOKDB4ODg3NzkzNjAsIDB4YzIzMGY0OWUpLAotICAgICAgICAgVE9CTigweGE2
ZWMxZGUzLCAweDFlNzRlYTQ5KSwgVE9CTigweDU4MWRjZWU1LCAweDNmYjY0NWEyKSwKLSAgICAg
ICAgIFRPQk4oMHhiYWVmMjM5MSwgMHg4ZjQ4M2YxNCksIFRPQk4oMHg2ZDJkZGRmYywgMHhkMTM3
ZDEzYiksCi0gICAgICAgICBUT0JOKDB4NTRjZGU1MGUsIDB4ZDI3NDNhNDIpLCBUT0JOKDB4ODlh
MzRmYzUsIDB4ZTRkOTdlNjcpLAotICAgICAgICAgVE9CTigweDEzZjFmNWIzLCAweDEyZTA4Y2U1
KSwgVE9CTigweGE4MDU0MGI4LCAweGE3ZjBiMmNhKSwKLSAgICAgICAgIFRPQk4oMHg4NTRiY2Y3
NywgMHgwMTk4MjgwNSksIFRPQk4oMHhiODY1M2ZmZCwgMHgyMzNiZWEwNCksCi0gICAgICAgICBU
T0JOKDB4OGU3Yjg3ODcsIDB4MDJiMGI0YzkpLCBUT0JOKDB4MjY3NTI2MWYsIDB4OWFjYjE3MGEp
LAotICAgICAgICAgVE9CTigweDA2MWE5ZDkwLCAweDkzMGMxNGU1KSwgVE9CTigweGI1OWIzMGUw
LCAweGRlZjBhYmVhKSwKLSAgICAgICAgIFRPQk4oMHgxZGMxOWVhNiwgMHgwMjAwZWM3ZCksIFRP
Qk4oMHhiNmY0YTNmOSwgMHgwYmNlMTMyYiksCi0gICAgICAgICBUT0JOKDB4YjhkNWRlOTAsIDB4
ZjEzZTI3ZTApLCBUT0JOKDB4YmFlZTVlZjAsIDB4MWZhZGUxNmYpLAotICAgICAgICAgVE9CTigw
eDZmNDA2YWFhLCAweGU0YzZjZjM4KSwgVE9CTigweGFiNGNmZTA2LCAweGQxMzY5ODE1KSwKLSAg
ICAgICAgIFRPQk4oMHgwZGNmZmU4NywgMHhlZmQ1NTBjNiksIFRPQk4oMHg5ZDRmNTljNywgMHg3
NWZmN2QzOSksCi0gICAgICAgICBUT0JOKDB4YjAyNTUzYjEsIDB4NTFkZWI2YWQpLCBUT0JOKDB4
ODEyMzk5YTQsIDB4YjE4Nzc3NDkpLAotICAgICAgICAgVE9CTigweGNlOTBmNzFmLCAweGNhNjAw
NmUxKSwgVE9CTigweGMzMjM2M2E2LCAweGIwMmI2ZTc3KSwKLSAgICAgICAgIFRPQk4oMHgwMjI4
NGZiZSwgMHhkYzM2YzY0ZCksIFRPQk4oMHg4NmM4MWUzMSwgMHhhN2UxYWU2MSksCi0gICAgICAg
ICBUT0JOKDB4MjU3NmM3ZTUsIDB4YjkwOWQ5NGEpLCBUT0JOKDB4OGI2ZjdkMDIsIDB4ODE4YjJi
YjApLAotICAgICAgICAgVE9CTigweGVjYTNlZDA3LCAweDU2ZmFhMzhhKSwgVE9CTigweGEzNzkw
ZTZjLCAweDkzMDViYjU0KSwKLSAgICAgICAgIFRPQk4oMHhkNzg0ZWVkYSwgMHg3YmM3MzA2MSks
IFRPQk4oMHhiZDU2ZDM2OSwgMHg2ZGQ1MDYxNCksCi0gICAgICAgICBUT0JOKDB4ZDY1NzU5NDks
IDB4MjI5YThhYTkpLCBUT0JOKDB4ZGNjYThmNDcsIDB4NDU5NWVjMjgpLAotICAgICAgICAgVE9C
TigweDgxNDMwNWMxLCAweDA2YWI0ZmU2KSwgVE9CTigweGM4YzM5NzY4LCAweDI0ZjQzZjE2KSwK
LSAgICAgICAgIFRPQk4oMHhlMmE0NWYzNiwgMHg1MjNmMmIzNiksIFRPQk4oMHg5OTVjNjQ5Mywg
MHg5MjBkOTNiYiksCi0gICAgICAgICBUT0JOKDB4ZjhhZmRhYjcsIDB4OTBmMTYzMmIpLCBUT0JO
KDB4NzllYmJlY2QsIDB4MWMyOTU5NTQpLAotICAgICAgICAgVE9CTigweGM3YmIzZGRiLCAweDc5
NTkyZjQ4KSwgVE9CTigweDY3MjE2YTdiLCAweDVmODhlOTk4KSwKLSAgICAgICAgIFRPQk4oMHhk
OTFmMDk4YiwgMHhiYzAxMTkzZSksIFRPQk4oMHhmN2Q5MjhhNSwgMHhiMWRiODNmYyksCi0gICAg
ICAgICBUT0JOKDB4NTVlMzg0MTcsIDB4ZTk5MWY2MDApLCBUT0JOKDB4MmE5MTExM2UsIDB4Mjk4
MWE5MzQpLAotICAgICAgICAgVE9CTigweGNiYzlkNjQ4LCAweDA2YjEzYmRlKSwgVE9CTigweGIw
MTFiNmFjLCAweDA3NTVmZjQ0KSwKLSAgICAgICAgIFRPQk4oMHg2ZjRjYjUxOCwgMHgwNDVlYzYx
MyksIFRPQk4oMHg1MjJkMmQzMSwgMHhjMmY1OTMwYSksCi0gICAgICAgICBUT0JOKDB4NWFjYWUx
YWYsIDB4MzgyZTY1ZGUpLCBUT0JOKDB4NTc2NDMwNjcsIDB4MjdiYzk2NmYpLAotICAgICAgICAg
VE9CTigweDVlMTI3MDVkLCAweDFjNzE5M2YwKSwgVE9CTigweGYwZjMyZjQ3LCAweDNiZTg4NThl
KSwKLSAgICAgICAgIFRPQk4oMHg3ODVjM2Q3ZCwgMHg5NmM2ZGZjNyksIFRPQk4oMHhkNzViNGEy
MCwgMHhiZjMxNzk1ZCksCi0gICAgICAgICBUT0JOKDB4OTFhY2YxN2IsIDB4MzQyNjU5ZDQpLCBU
T0JOKDB4ZTU5NmVhMzQsIDB4NDRmMDM3OGYpLAotICAgICAgICAgVE9CTigweDQ1MTU3MDhmLCAw
eGNlNTIxMjlkKSwgVE9CTigweDE3Mzg3ZTFlLCAweDc5ZjJmNTg1KSwKLSAgICAgICAgIFRPQk4o
MHg3MmNmZDJlOSwgMHg0OWRlZTE2OCksIFRPQk4oMHgxYWUwNTIyMywgMHgzZTJhZjIzOSksCi0g
ICAgICAgICBUT0JOKDB4MDA5ZTc1YmUsIDB4MWQ5NDA2NmEpLCBUT0JOKDB4NmNjYTMxYzcsIDB4
MzhhYmY0MTMpLAotICAgICAgICAgVE9CTigweGI1MGJkNjFkLCAweDliYzQ5OTA4KSwgVE9CTigw
eDRhOWI0YThjLCAweGY1ZTJiYzFlKSwKLSAgICAgICAgIFRPQk4oMHhlYjZjYzVmNywgMHg5NDZm
ODNhYyksIFRPQk4oMHgyN2RhOTNmYywgMHhlYmZmYWIyOCksCi0gICAgICAgICBUT0JOKDB4ZWEz
MTRjOTYsIDB4NDgyMWM4YzUpLCBUT0JOKDB4OGRlNDlkZWQsIDB4YTgzYzE1ZjQpLAotICAgICAg
ICAgVE9CTigweDdhNjRjZjIwLCAweDdhZjMzMDA0KSwgVE9CTigweDQ1ZjFiZmViLCAweGM5NjI3
ZTEwKSwKLSAgICAgICAgIFRPQk4oMHg4NzhiMDYyNiwgMHg1NGI5ZGY2MCksIFRPQk4oMHg1ZTRm
ZGMzYywgMHhhOTVjMGIzMyksCi0gICAgICAgICBUT0JOKDB4ZTU0YTM3Y2EsIDB4YzIwMzVkOGUp
LCBUT0JOKDB4OTA4N2NkYTksIDB4ODBmMjBiOGMpLAotICAgICAgICAgVE9CTigweDM2ZjYxYzIz
LCAweDgzMTlhZGU0KSwgVE9CTigweDc2NmYyODdhLCAweGRlOGNmZGY4KSwKLSAgICAgICAgIFRP
Qk4oMHg0ODgyMTk0OCwgMHgzNDZmMzcwNSksIFRPQk4oMHg0OWE3Yjg1MywgMHgxNmU0ZjRhMiks
Ci0gICAgICAgICBUT0JOKDB4YjliM2Y4YTcsIDB4NWNlZGFkZmQpLCBUT0JOKDB4OGY1NjI4MTUs
IDB4OGRiMmE4MTUpLAotICAgICAgICAgVE9CTigweGMwYjdkNTU0LCAweDAxZjY4Zjk1KSwgVE9C
TigweDEyOTcxZTI3LCAweDY4OGEyMDhlKSwKLSAgICAgICAgIFRPQk4oMHhjOWY4YjY5NiwgMHhk
MGZmMzRmYyksIFRPQk4oMHgyMDgyNGRlMiwgMHgxMjIyNzE4YyksCi0gICAgICAgICBUT0JOKDB4
NzIxM2NmOWYsIDB4MGM5NTI4NGQpLCBUT0JOKDB4ZTJhZDc0MWIsIDB4ZGMxNTgyNDApLAotICAg
ICAgICAgVE9CTigweDBlZTNhNmRmLCAweDU0MDQzY2NmKSwgVE9CTigweDE2ZmY0NzliLCAweGQ4
NDQxMmIzKSwKLSAgICAgICAgIFRPQk4oMHhmNmM3NGVlMCwgMHhkZmM5OGFmMCksIFRPQk4oMHhh
NzhhMTY5ZiwgMHg1MmZjZDJmYiksCi0gICAgICAgICBUT0JOKDB4ZDhhZTg3NDYsIDB4OTljOTMw
ZTkpLCBUT0JOKDB4MWQzM2U4NTgsIDB4NDllMTE3YTUpLAotICAgICAgICAgVE9CTigweDc1ODFm
Y2I0LCAweDY2MjQ3NTlmKSwgVE9CTigweGRlNTA2NDRmLCAweDViZWRjMDFkKSwKLSAgICAgICAg
IFRPQk4oMHhiZWVjNWQwMCwgMHhjYWYzMTU1ZSksIFRPQk4oMHg2NzJkNjZhYywgMHhiYzczZTc1
ZiksCi0gICAgICAgICBUT0JOKDB4ODZiOWQ4YzYsIDB4MjcwYjAxZGIpLCBUT0JOKDB4ZDI0OWVm
ODMsIDB4NTBmNTViNzkpLAotICAgICAgICAgVE9CTigweDYxMzFkNmQ0LCAweDczOTc4ZmUzKSwg
VE9CTigweGNjNGU0NTQyLCAweDc1NGIwMGExKSwKLSAgICAgICAgIFRPQk4oMHg0ZTA1ZGYwNSwg
MHg1N2RmY2ZlOSksIFRPQk4oMHg5NGIyOWNkZCwgMHg1MWVmNmJmMCksCi0gICAgICAgICBUT0JO
KDB4ZTQ1MzBjZmYsIDB4OWJjN2VkZjIpLCBUT0JOKDB4OGFjMjM2ZmQsIDB4ZDNkYTY1ZjMpLAot
ICAgICAgICAgVE9CTigweDBmYWY3ZDVmLCAweGM4ZWIwYjQ4KSwgVE9CTigweDRkMmRlMTRjLCAw
eDY2MGViMDM5KSwKLSAgICAgICAgIFRPQk4oMHhjMDA2YmJhNywgMHg2MDQzMGU1NCksIFRPQk4o
MHgxMGEyZDBkNiwgMHhkYTMyODlhYiksCi0gICAgICAgICBUT0JOKDB4OWMwMzdhNWQsIDB4ZDc5
NzljNTkpLCBUT0JOKDB4MDRkMWYzZDMsIDB4YTExNmQ5NDQpLAotICAgICAgICAgVE9CTigweDlm
ZjIyNDczLCAweDhhMDk4M2NkKSwgVE9CTigweDI4ZTI1YjM4LCAweGM4ODNjYWJiKSwKLSAgICAg
ICAgIFRPQk4oMHhlOTY4ZGJhNSwgMHg0N2E1ODk5NSksIFRPQk4oMHgyYzgwYjUwNSwgMHg3NzRl
ZWJkZiksCi0gICAgICAgICBUT0JOKDB4ZWU3NjNiNzEsIDB4NGE5NTNiZWIpLCBUT0JOKDB4NTAy
ZTIyM2YsIDB4MTY0MmU3ZjYpLAotICAgICAgICAgVE9CTigweDZmZTRiNjQxLCAweDYxZDVlNzIy
KSwgVE9CTigweDlkMzdjNWIwLCAweGRiZWY1MzE2KSwKLSAgICAgICAgIFRPQk4oMHgwMTE1ZWQ3
MCwgMHhmODMzMGJjNyksIFRPQk4oMHgxMzk4NTBlNiwgMHg3NWE3Mjc4OSksCi0gICAgICAgICBU
T0JOKDB4MjdkN2ZhZWMsIDB4ZmZjZWNjYzIpLCBUT0JOKDB4MzAxNmE4NjAsIDB4NGZkOWY3ZjYp
LAotICAgICAgICAgVE9CTigweGM0OTJlYzY0LCAweDRjZDhmNjRjKSwgVE9CTigweDU4YTJkNzkw
LCAweDI3OWQ3YjUxKSwKLSAgICAgICAgIFRPQk4oMHgwY2VkMWZjNSwgMHgxZmM3NTI1NiksIFRP
Qk4oMHgzZTY1OGFlZCwgMHg4ZjQzMzAxNyksCi0gICAgICAgICBUT0JOKDB4MGI2MTk0MmUsIDB4
MDVkYTU5ZWIpLCBUT0JOKDB4YmEzZDYwYTMsIDB4MGRkYzM3MjIpLAotICAgICAgICAgVE9CTigw
eDdjMzExY2QxLCAweDc0MmU3Zjg3KSwgVE9CTigweDY0NzNmZmVlLCAweGY2YjAxYjZlKX0sCi0g
ICAgICAgIHtUT0JOKDB4ODMwMzYwNGYsIDB4NjkyYWM1NDIpLCBUT0JOKDB4ZjA3OWZmZTEsIDB4
MjI3YjkxZDMpLAotICAgICAgICAgVE9CTigweDE5ZjYzZTYzLCAweDE1YWFmOWJkKSwgVE9CTigw
eGY5OWVlNTY1LCAweGYxZjM0NGZiKSwKLSAgICAgICAgIFRPQk4oMHg4YTFkNjYxZiwgMHhkNjIx
OTE5OSksIFRPQk4oMHg4Yzg4M2JjNiwgMHhkNDhjZTQxYyksCi0gICAgICAgICBUT0JOKDB4MTA2
NTExOGYsIDB4M2M3NGQ5MDQpLCBUT0JOKDB4NzEzODg5ZWUsIDB4MGZhZjhiMWIpLAotICAgICAg
ICAgVE9CTigweDk3MmIzZjhmLCAweDgxYTFiM2JlKSwgVE9CTigweDRmM2NlMTQ1LCAweGNlMjc2
NGEwKSwKLSAgICAgICAgIFRPQk4oMHhlMmQwZjFjYywgMHgyOGM0ZjVmNyksIFRPQk4oMHhkZWVl
MGMwZCwgMHhjN2YzOTg1YiksCi0gICAgICAgICBUT0JOKDB4N2RmNGFkYzAsIDB4ZDM5ZTI1YzMp
LCBUT0JOKDB4NDA2MTk4MjAsIDB4YzQ2N2EwODApLAotICAgICAgICAgVE9CTigweDQ0MGViYzkz
LCAweDYxY2Y1YTU4KSwgVE9CTigweDUyNzcyOWE2LCAweDQyMmFkNjAwKSwKLSAgICAgICAgIFRP
Qk4oMHhjYTZjMDkzNywgMHhiMWI3NmJhNiksIFRPQk4oMHgxYTJlYWI4NSwgMHg0ZDIwMjZkYyks
Ci0gICAgICAgICBUT0JOKDB4YjE3MTVlMTUsIDB4MTlkOWFlMGEpLCBUT0JOKDB4ZjFhZDkxOTks
IDB4YmFjNGEwMjYpLAotICAgICAgICAgVE9CTigweDM1YjNkZmI4LCAweDA3ZWE3YjBlKSwgVE9C
TigweGVkZjU0OTZmLCAweDNlZDllYjg5KSwKLSAgICAgICAgIFRPQk4oMHg4OTMyZTVmZiwgMHgy
ZDZkMDhhYiksIFRPQk4oMHhmMzE0ODc0ZSwgMHgyNWJkMjczMSksCi0gICAgICAgICBUT0JOKDB4
ZWZiMjZhNzUsIDB4M2Y3M2Y0NDkpLCBUT0JOKDB4MWQxYzk0ZjgsIDB4OGQ0NGZjNzkpLAotICAg
ICAgICAgVE9CTigweDQ5ZjBmYmM1LCAweDNiYzBkYzRkKSwgVE9CTigweGI3NDdlYTBiLCAweDM2
OThhMGQwKSwKLSAgICAgICAgIFRPQk4oMHg1MjE4YzNmZSwgMHgyMjhkMjkxZSksIFRPQk4oMHgz
NWI4MDRiNSwgMHg0M2MxMjlkNiksCi0gICAgICAgICBUT0JOKDB4ZmFjODU5YjgsIDB4ZDFhY2M1
MTYpLCBUT0JOKDB4NmMxMDY5N2QsIDB4OTVkNmU2NjgpLAotICAgICAgICAgVE9CTigweGMzOGU0
MzhmLCAweDA4NzZmZDRlKSwgVE9CTigweDQ1ZjBjMzA3LCAweDgzZDJmMzgzKSwKLSAgICAgICAg
IFRPQk4oMHgyMDNjYzJlYywgMHhiMTA5MzRjYiksIFRPQk4oMHg2YThmMjQzOSwgMHgyYzlkNDZl
ZSksCi0gICAgICAgICBUT0JOKDB4ZjE2YjQzMWIsIDB4NjVjY2RlN2IpLCBUT0JOKDB4NDFlMmNk
MTgsIDB4MjdlNzZhNmYpLAotICAgICAgICAgVE9CTigweGI5YzhjZjhmLCAweDRlMzQ4NGQ3KSwg
VE9CTigweDY0NDI2ZWZkLCAweDgzMTUyNDRhKSwKLSAgICAgICAgIFRPQk4oMHgxYzBhOGU0NCwg
MHhmYzk0ZGVhMyksIFRPQk4oMHgzNGM4Y2RiZiwgMHhkYWQ2YTBiMCksCi0gICAgICAgICBUT0JO
KDB4OTE5YzM4NDAsIDB4MDQxMTNjZWYpLCBUT0JOKDB4ZmQzMmZiYTQsIDB4MTU0OTBmZmEpLAot
ICAgICAgICAgVE9CTigweDU4ZDE5MGY2LCAweDc5NWRjZmI3KSwgVE9CTigweGZlZjAxYjAzLCAw
eDgzNTg4YmFmKSwKLSAgICAgICAgIFRPQk4oMHg5ZTZkMWQ2MywgMHhjYTFmYzFjMCksIFRPQk4o
MHg1MzE3M2Y5NiwgMHhmMGE0MWFjOSksCi0gICAgICAgICBUT0JOKDB4MmIxZDQwMmEsIDB4YmEx
NmY3M2IpLCBUT0JOKDB4MmZiMzEwMTQsIDB4OGNmOWI5ZmMpLAotICAgICAgICAgVE9CTigweDJk
NTFlNjBlLCAweDQ0NmVmN2JmKSwgVE9CTigweGM3MzEwMjFiLCAweGI5MWUxNzQ1KSwKLSAgICAg
ICAgIFRPQk4oMHg5ZDNiNDcyNCwgMHg0ZmVlOTlkNCksIFRPQk4oMHg0YmNhNDhiNiwgMHhmYWM1
YzFlYSksCi0gICAgICAgICBUT0JOKDB4NzBmNWY1MTQsIDB4YmJlYTlhZjcpLCBUT0JOKDB4NzUx
ZjU1YTUsIDB4OTc0YzI4M2EpLAotICAgICAgICAgVE9CTigweDZlMzAyNTFhLCAweGNiNDUyZmRi
KSwgVE9CTigweDMxZWU2OTY1LCAweDUwZjMwNjUwKSwKLSAgICAgICAgIFRPQk4oMHhiMGIzZTUw
OCwgMHg5MzM1NDhkOSksIFRPQk4oMHhiODk0OWE0ZiwgMHhmNGIwZWY1YiksCi0gICAgICAgICBU
T0JOKDB4MjA4YjgzMjYsIDB4M2M4OGYzYmQpLCBUT0JOKDB4YWIxNDdjMzAsIDB4ZGIxZDk5ODkp
LAotICAgICAgICAgVE9CTigweGVkNjUxNWZkLCAweDQ0ZDRkZjAzKSwgVE9CTigweDE3YTEyZjc1
LCAweGU3MmViMGM1KSwKLSAgICAgICAgIFRPQk4oMHgzYjU5Nzk2ZCwgMHgzNmNmNjlkYiksIFRP
Qk4oMHgxMjE5ZWVlOSwgMHg1NjY3MGMxOCksCi0gICAgICAgICBUT0JOKDB4ZmUzMzQxZjcsIDB4
N2EwNzBkOGUpLCBUT0JOKDB4OWI3MDEzMGIsIDB4YTMyN2Y5MGMpLAotICAgICAgICAgVE9CTigw
eDM2YTMyNDYyLCAweDBhZTE4ZTBlKSwgVE9CTigweDIwMjFhNjIzLCAweDQ2YzBhNjM4KSwKLSAg
ICAgICAgIFRPQk4oMHgyNTFiNTgxNywgMHhjNjJlYjBkNCksIFRPQk4oMHg4N2JmYmNkZiwgMHg0
Yzc2MjI5MyksCi0gICAgICAgICBUT0JOKDB4Zjc4YWI1MDUsIDB4Y2RkNjFkNjQpLCBUT0JOKDB4
OGM3YTUzZmMsIDB4YzhjMTg4NTcpLAotICAgICAgICAgVE9CTigweGE2NTNjZTZmLCAweDE2MTQ3
NTE1KSwgVE9CTigweDljOTIzYWE1LCAweGVhN2Q1MmQ1KSwKLSAgICAgICAgIFRPQk4oMHhjMjQ3
MDljYiwgMHg1YzE4ODcxZiksIFRPQk4oMHg3ZDUzYmVjOCwgMHg3M2IzY2M3NCksCi0gICAgICAg
ICBUT0JOKDB4NTkyNjRhZmYsIDB4ZmRkMWQ0YzQpLCBUT0JOKDB4NTU1NTkxN2UsIDB4MjQwZGE1
ODIpLAotICAgICAgICAgVE9CTigweGNhZThiYmRhLCAweDU0OGY1YTBlKSwgVE9CTigweDE5MTBl
YWJhLCAweDNiYmZiYmUxKSwKLSAgICAgICAgIFRPQk4oMHhhZTU3OTY4NSwgMHg3Njc3YWZjMyks
IFRPQk4oMHg0OWVhNjFmMSwgMHg3M2ZmMGI1YyksCi0gICAgICAgICBUT0JOKDB4Nzg2NTU0Nzgs
IDB4NGY3YzM5MjIpLCBUT0JOKDB4OTVkMzM3Y2QsIDB4MjBjNjhlZWYpLAotICAgICAgICAgVE9C
TigweDY4ZjFlMWU1LCAweGRmNzc5YWI5KSwgVE9CTigweDE0YjQ5MWIwLCAweGI1Y2Y2OWE4KSwK
LSAgICAgICAgIFRPQk4oMHg3YTZjYmJlMCwgMHgyOGUzZmU4OSksIFRPQk4oMHhlN2UxZmVlNCwg
MHhjNWFhYzBlYiksCi0gICAgICAgICBUT0JOKDB4N2Y0N2VkYTUsIDB4Njk3ZTUxNDApLCBUT0JO
KDB4NGY0NTAxMzcsIDB4YjQ1NDkyMWYpLAotICAgICAgICAgVE9CTigweGRiNjI1Zjg0LCAweDk1
Y2Q4MTg1KSwgVE9CTigweDc0YmUwYmExLCAweGNkYjJlNTgzKSwKLSAgICAgICAgIFRPQk4oMHhh
ZWU0ZmQ3YywgMHhkZDVlNmRlNCksIFRPQk4oMHg0MjUxNDM3ZCwgMHhlODEwMTczOSksCi0gICAg
ICAgICBUT0JOKDB4Njg2ZDcyYTAsIDB4YWM2MjAzNjYpLCBUT0JOKDB4NGJlM2ZiOWMsIDB4YjZk
NTkzNDQpLAotICAgICAgICAgVE9CTigweDZlOGI0NGU3LCAweGExZWI3NWI5KSwgVE9CTigweDg0
ZTM5ZGEzLCAweDkxYTVjMTBjKSwKLSAgICAgICAgIFRPQk4oMHgzN2NjMTQ5MCwgMHhiMzhmMDQw
OSksIFRPQk4oMHgwMjk1MTk0MywgMHgyYzJhZGU4MiksCi0gICAgICAgICBUT0JOKDB4OWI2ODg3
ODMsIDB4MTE5MGEyZDgpLCBUT0JOKDB4MjU2MjdkMTQsIDB4MjMxMTgyYmEpLAotICAgICAgICAg
VE9CTigweDZlYjU1MGFhLCAweDY1OGE2ZDg3KSwgVE9CTigweDE0MDVhYWE3LCAweGNmOWM3MzI1
KSwKLSAgICAgICAgIFRPQk4oMHhkMTQ3MTQyZSwgMHg1Yzg3NDhjOSksIFRPQk4oMHg3ZjYzN2U0
ZiwgMHg1M2VkZTBlMCksCi0gICAgICAgICBUT0JOKDB4ZjhjYTI3NzYsIDB4MTRmZmFkMmMpLCBU
T0JOKDB4ZTU4ZmIxYmQsIDB4YmFmYjY3OTEpLAotICAgICAgICAgVE9CTigweDE3MTU4YzIzLCAw
eGJmOGY5M2ZjKSwgVE9CTigweDdmMTViMzczLCAweDBhNGE0NjU1KSwKLSAgICAgICAgIFRPQk4o
MHgzOWQ0YWRkMiwgMHhkODQyY2E3MiksIFRPQk4oMHhhNzFlNDM5MSwgMHgzZWQ5NjMwNSksCi0g
ICAgICAgICBUT0JOKDB4NWJiMDljYmUsIDB4NjcwMGJlMTQpLCBUT0JOKDB4NjhkNjlkNTQsIDB4
ZDhiZWZjZjYpLAotICAgICAgICAgVE9CTigweGE0NWY1MzY3LCAweDM3MTgzYmNmKSwgVE9CTigw
eDcxNTJiN2JiLCAweDMzNzBkZmY3KSwKLSAgICAgICAgIFRPQk4oMHhjZjg4N2JhYSwgMHhiZjEy
NTI1YiksIFRPQk4oMHhlN2FjN2JkZCwgMHhkNmQxZTNjZCksCi0gICAgICAgICBUT0JOKDB4MjU5
MTRmNzgsIDB4ODFmZGFkOTApLCBUT0JOKDB4Y2Y2MzhmNTYsIDB4MGQyY2Y2YWIpLAotICAgICAg
ICAgVE9CTigweGI5MGJjMDNmLCAweGNjMDU0ZGU1KSwgVE9CTigweDkzMjgxMWE3LCAweDE4YjA2
MzUwKSwKLSAgICAgICAgIFRPQk4oMHgyZjAwYjMzMCwgMHg5YmJkMTFmZiksIFRPQk4oMHg3NjEw
OGE2ZiwgMHhiNDA0NDk3NCksCi0gICAgICAgICBUT0JOKDB4ODAxYmI5ZTAsIDB4YTg1MWQyNjYp
LCBUT0JOKDB4MGRkMDk5YmUsIDB4YmY4OTkwYzEpLAotICAgICAgICAgVE9CTigweDU4YzVhYWFh
LCAweGFiZTMyOTg2KSwgVE9CTigweDBmZTlkZDJhLCAweDUwZDU5YzI3KSwKLSAgICAgICAgIFRP
Qk4oMHg4NDk1MWZmNCwgMHg4ZDMwNzMwNSksIFRPQk4oMHg2YzIzZjgyOSwgMHg4NjUyOWI3OCks
Ci0gICAgICAgICBUT0JOKDB4NTBiYjIyMTgsIDB4MGIxMzZhNzkpLCBUT0JOKDB4N2UyMTc0ZGUs
IDB4NzdhMjA5OTYpLAotICAgICAgICAgVE9CTigweDZmMDBhNGI5LCAweGMwYmI0ZGE2KSwgVE9C
TigweDg5YTI1YTE3LCAweGVmZGRlOGRhKSwKLSAgICAgICAgIFRPQk4oMHhmNzI4YTI3ZSwgMHhj
MTFlZTAxZCksIFRPQk4oMHhmOTAwNTUzYSwgMHhlNWYxMGRmYiksCi0gICAgICAgICBUT0JOKDB4
MTg5YTgzYzgsIDB4MDJlYzg5M2MpLCBUT0JOKDB4M2NhNWJkYzEsIDB4MjNmNjZkNzcpLAotICAg
ICAgICAgVE9CTigweDk4NzgxNTM3LCAweDk3ZWFkYTlmKSwgVE9CTigweDU5YzUwYWIzLCAweDEw
MjU2MjMwKSwKLSAgICAgICAgIFRPQk4oMHgzNDYwNDJkOSwgMHgzMjNjNjliMyksIFRPQk4oMHgx
YjcxNWE2ZCwgMHgyYzQ2MDQ0OSksCi0gICAgICAgICBUT0JOKDB4YTQxZGQ0NzYsIDB4NmFlMDZl
MGIpLCBUT0JOKDB4Y2RkNzg4OGUsIDB4OWQ0MmUyNWYpLAotICAgICAgICAgVE9CTigweDBmMzk1
Zjc0LCAweDU2YjI1YTIwKSwgVE9CTigweGVhZGZlMGFlLCAweDg3MDBlMjdlKSwKLSAgICAgICAg
IFRPQk4oMHhiMDlkNTJhOSwgMHg2OTk1MDA5MyksIFRPQk4oMHgzNTI1ZDljYiwgMHgzMjdmOGQ0
MCksCi0gICAgICAgICBUT0JOKDB4YjgyMzVhOTQsIDB4NjdkZjg4NmEpLCBUT0JOKDB4NzdlNGIw
ZGQsIDB4MDM1ZmFlYzIpLAotICAgICAgICAgVE9CTigweDExNWViMjBhLCAweDUxN2Q3MDYxKSwg
VE9CTigweDc3ZmUzNDMzLCAweDZjMmRmNjgzKSwKLSAgICAgICAgIFRPQk4oMHg2ODcwZGRjNywg
MHhjZGM2ZmM2NyksIFRPQk4oMHhiMTYxMDU4OCwgMHgwYjg3ZGU4MyksCi0gICAgICAgICBUT0JO
KDB4MzQzNTg0Y2EsIDB4ZDljNGRkYmUpLCBUT0JOKDB4YjMxNjRmMWMsIDB4M2Q3NTRiZTIpLAot
ICAgICAgICAgVE9CTigweDA3MzFlZDNhLCAweGMxZTZjODk0KSwgVE9CTigweDI2MzI3ZGVjLCAw
eDRmNmI5MDRjKSwKLSAgICAgICAgIFRPQk4oMHg5ZDQ5YzZkZSwgMHg5N2I1Y2QzMiksIFRPQk4o
MHg0MDgzNWRhZSwgMHhiNWVjZWVjZCksCi0gICAgICAgICBUT0JOKDB4YzY2MzUwZWQsIDB4ZDlk
ZWQ3ZmUpLCBUT0JOKDB4OGFlZWJiNWMsIDB4N2E2Nzg4MDQpLAotICAgICAgICAgVE9CTigweDUx
ZDQyZmI3LCAweDViOGVlOWVjKSwgVE9CTigweGQ3YTE3YmRkLCAweDhlM2NhMTE4KSwKLSAgICAg
ICAgIFRPQk4oMHg0MGQ3NTExYSwgMHgyZWY0NDAwZSksIFRPQk4oMHhjNDg5OTBhYywgMHg4NzVh
NjZmNCksCi0gICAgICAgICBUT0JOKDB4OGRlMDdkMmEsIDB4MjE5OWUzNDcpLCBUT0JOKDB4YmVl
NzU1NTYsIDB4MmEzOWUwNTEpLAotICAgICAgICAgVE9CTigweDU2OTE4Nzg2LCAweDkxNmU1MWRj
KSwgVE9CTigweGViMTkxMzEzLCAweDRhMmQ4OWVjKSwKLSAgICAgICAgIFRPQk4oMHg2Njc5NjEw
ZCwgMHgzN2QzNDFlZCksIFRPQk4oMHg0MzRmYmI0MSwgMHg1NmQ1MWMyYiksCi0gICAgICAgICBU
T0JOKDB4ZTU0YjdlZTcsIDB4ZDc0OTJkYmEpLCBUT0JOKDB4YWEzM2E3OWEsIDB4NTkwMjE0OTMp
LAotICAgICAgICAgVE9CTigweDQ5ZmM1MDU0LCAweGU0YmQ2ZDNkKSwgVE9CTigweDA5NTQwZjA0
LCAweDVhYjU1MWQwKSwKLSAgICAgICAgIFRPQk4oMHg4YWNjOTA4NSwgMHg0OTQyZDNhNiksIFRP
Qk4oMHgyMzFhZjAyZiwgMHgyZDI4MzIzYiksCi0gICAgICAgICBUT0JOKDB4OTM0NThjYWMsIDB4
MDk5MmMxNjMpLCBUT0JOKDB4MWZlZjhlNzEsIDB4ODg4ZTNiYjQpLAotICAgICAgICAgVE9CTigw
eDI3NTc4ZGE1LCAweGJlOGMyNjhjKSwgVE9CTigweGNjOGJlNzkyLCAweGU4MDVlYzAwKSwKLSAg
ICAgICAgIFRPQk4oMHgyOTI2N2JhZSwgMHhjNjFjMzg1NSksIFRPQk4oMHhlYmZmNDI5ZCwgMHg1
OGMxZmQzYiksCi0gICAgICAgICBUT0JOKDB4MjJkODg2YzAsIDB4OGMwYjkzYjgpLCBUT0JOKDB4
Y2E1ZTAwYjIsIDB4MmRkYjg5NTMpLAotICAgICAgICAgVE9CTigweGNmMzMwMTE3LCAweGMzZmVk
OGI3KSwgVE9CTigweGQ0OWFjNmZhLCAweDgxOWMwMWY2KSwKLSAgICAgICAgIFRPQk4oMHg2ZGRh
YTZiZCwgMHgzYzBmYmQ1NCksIFRPQk4oMHg5MTc0MzA2OCwgMHg4MDQ5YTJjZiksCi0gICAgICAg
ICBUT0JOKDB4ZDY3Zjk4MWUsIDB4YWZmMmVmODEpLCBUT0JOKDB4YzM2NTRkMzUsIDB4MjgxOGFl
ODApLAotICAgICAgICAgVE9CTigweDgxZDA1MDQ0LCAweDFiMmFhODkyKSwgVE9CTigweDJkYjA2
N2JmLCAweDNkMDk5MzI4KSwKLSAgICAgICAgIFRPQk4oMHhlN2M3OWU4NiwgMHg3MDNkY2M5Nyks
IFRPQk4oMHhlNjZmOWIzNywgMHhlMTMzZTIxNSksCi0gICAgICAgICBUT0JOKDB4Y2RmMTE5YTYs
IDB4ZTM5YTdhNWMpLCBUT0JOKDB4NDdjNjBkZTMsIDB4ODc2ZjFiNjEpLAotICAgICAgICAgVE9C
TigweDZlNDA1OTM5LCAweGQ4NjBmMWIyKSwgVE9CTigweDNlOWExZGJjLCAweGY1ZWQ0ZDRhKSwK
LSAgICAgICAgIFRPQk4oMHgzZjIzNjE5ZSwgMHhjOWI2YmNiZCksIFRPQk4oMHg1ZWU3OTBjZiwg
MHg3MzRlNDQ5NyksCi0gICAgICAgICBUT0JOKDB4ZjBhODM0YjEsIDB4NWJkYWY5YmIpLCBUT0JO
KDB4MDJjZWRkYTcsIDB4NGNhMjk1ZjApLAotICAgICAgICAgVE9CTigweDQ2MTlhYTJiLCAweGNi
OGUzNzhjKSwgVE9CTigweGU1NjEzMjQ0LCAweGNjOTg3ZWE0KSwKLSAgICAgICAgIFRPQk4oMHgw
YmMwMjJjYywgMHg3NmIyM2E1MCksIFRPQk4oMHg0YTI3OTNhZCwgMHgwYTZjMjFjZSksCi0gICAg
ICAgICBUT0JOKDB4MzgzMjg3ODAsIDB4ODljYWMzZjUpLCBUT0JOKDB4MjkxNzZmMWIsIDB4Y2Jh
MjZkNTYpLAotICAgICAgICAgVE9CTigweDA2Mjk2MTg3LCAweDRmNmY1OWViKSwgVE9CTigweDg2
ZTliY2E5LCAweDhiZGM2NThlKSwKLSAgICAgICAgIFRPQk4oMHgyY2E5YzRkMywgMHg1N2UzMDQw
MiksIFRPQk4oMHg1NDM4YjIxNiwgMHg1MTZhMDliYiksCi0gICAgICAgICBUT0JOKDB4MGE2YTA2
M2MsIDB4NzY3Mjc2NWEpLCBUT0JOKDB4MzdhM2NlNjQsIDB4MDU0N2I5YmYpLAotICAgICAgICAg
VE9CTigweDQyYzA5OWM4LCAweDk4YjFhNjMzKSwgVE9CTigweGI1YWI4MDBkLCAweDA1ZWU2OTYx
KSwKLSAgICAgICAgIFRPQk4oMHhmMTk2M2Y1OSwgMHgxMWE1YWNkNiksIFRPQk4oMHhiYWVlNjE1
NywgMHg0NjIwMTA2MyksCi0gICAgICAgICBUT0JOKDB4MzZkOWE2NDksIDB4YTU5NjIxMGEpLCBU
T0JOKDB4YWVkMDQzNjMsIDB4MWJhNzEzOGMpLAotICAgICAgICAgVE9CTigweGNmODE3ZDFjLCAw
eGE0YTgyYjc2KSwgVE9CTigweDU1ODY5NjBlLCAweGYzODA2YmU5KSwKLSAgICAgICAgIFRPQk4o
MHg3YWI2N2M4OSwgMHgwOWRjNmJiNSksIFRPQk4oMHg1MmFjZTdhMCwgMHgxMTRmZTdlYiksCi0g
ICAgICAgICBUT0JOKDB4Y2Q5ODc2MTgsIDB4Y2JiYzliNzApLCBUT0JOKDB4NGYwNmZkNWEsIDB4
NjA0Y2E1ZTEpLAotICAgICAgICAgVE9CTigweDkwYWYxNGNhLCAweDZkYmRlMTMzKSwgVE9CTigw
eDFhZmU0MzIyLCAweDk0OGEzMjY0KSwKLSAgICAgICAgIFRPQk4oMHhhNzBkMmNhNiwgMHhjNDRi
MmM2YyksIFRPQk4oMHhhYjcyNjc5OSwgMHgwZWY4N2RmZSksCi0gICAgICAgICBUT0JOKDB4MzEw
ZjY0ZGMsIDB4MmU2OTYzNzcpLCBUT0JOKDB4NDliNDJlNjgsIDB4NGM4MTI2YTApLAotICAgICAg
ICAgVE9CTigweDBlYTQ0NGMzLCAweGNlYTBiMTc2KSwgVE9CTigweDUzYThkZGY3LCAweGNiMjY5
MTgyKSwKLSAgICAgICAgIFRPQk4oMHhmM2U2NzRlYiwgMHhiYmJhOWRjYiksIFRPQk4oMHgwZDI4
NzhhOCwgMHhkODY2OWQzMyksCi0gICAgICAgICBUT0JOKDB4MDRiOTM1ZDUsIDB4ZDAxOWI2YTMp
LCBUT0JOKDB4YmI1Y2Y4OGUsIDB4NDA2ZjFlNDYpLAotICAgICAgICAgVE9CTigweGExOTEyZDE2
LCAweDViNTdjMTExKSwgVE9CTigweDk4MDNmYzIxLCAweDE5ZWJmZDc4KSwKLSAgICAgICAgIFRP
Qk4oMHg0ZjIzMWM5ZSwgMHhjMDc3NjRhOSksIFRPQk4oMHhkOTMyODZlZSwgMHhiNzViZDA1NSks
Ci0gICAgICAgICBUT0JOKDB4ODNhOTQ1N2QsIDB4OGVlNmM5ZGUpLCBUT0JOKDB4MDQ2OTU5MTUs
IDB4NjA4N2VjOTApLAotICAgICAgICAgVE9CTigweDE0YzZkZDhhLCAweDU4ZDZjZDQ2KSwgVE9C
TigweDljYjYzM2I1LCAweDhlNjYzNGQyKSwKLSAgICAgICAgIFRPQk4oMHhjMTMwNTA0NywgMHhm
ODFiYzMyOCksIFRPQk4oMHgxMmVkZTBlMiwgMHgyNmExNzdlNSksCi0gICAgICAgICBUT0JOKDB4
MzMyY2NhNjIsIDB4MDY1YTZmNGYpLCBUT0JOKDB4YzNhNDdlY2QsIDB4NjdiZTQ4N2IpLAotICAg
ICAgICAgVE9CTigweDc0MWViMTg3LCAweDBmNDdlZDFjKSwgVE9CTigweDk5ZTY2ZTU4LCAweGU3
NTk4YjE0KSwKLSAgICAgICAgIFRPQk4oMHg2ZjA1NDRjYSwgMHg2M2QwZmYxMiksIFRPQk4oMHhl
NWVmYzc4NCwgMHhiNjEwYTA1ZiksCi0gICAgICAgICBUT0JOKDB4ZjcyOTE3YjEsIDB4N2NhZDdi
NDcpLCBUT0JOKDB4M2ZmNmVhMjAsIDB4ZjJjYWMwYzApLAotICAgICAgICAgVE9CTigweGNjMjM3
OTFiLCAweGYyMWRiOGI3KSwgVE9CTigweDdkYWM3MGIxLCAweGQ3ZDkzNTY1KSwKLSAgICAgICAg
IFRPQk4oMHg2ODJjZGExZCwgMHg2OTRiZGFhZCksIFRPQk4oMHhlYjg4YmI4YywgMHgxMDIzNTE2
ZCksCi0gICAgICAgICBUT0JOKDB4YzRjNjM0YjQsIDB4ZGZkYmViMWIpLCBUT0JOKDB4MjJmNWNh
NzIsIDB4YjRlZTRkZWEpLAotICAgICAgICAgVE9CTigweDEwNDVhMzY4LCAweGU2NTI0ODIxKSwg
VE9CTigweGVkOWU4YTNmLCAweDA1MmIxOGIyKSwKLSAgICAgICAgIFRPQk4oMHg5YjdmMmNiMSwg
MHhiOTYxZjQ5YSksIFRPQk4oMHg3ZmVlMmVjMSwgMHg3YjAwOTY3MCksCi0gICAgICAgICBUT0JO
KDB4MzUwZDg3NTQsIDB4MjI1MDdhNmQpLCBUT0JOKDB4NTYxYmQ3MTEsIDB4NGRiNTVmMWQpLAot
ICAgICAgICAgVE9CTigweDRjMTg5Y2NjLCAweDMyMGJiY2FmKSwgVE9CTigweDU2ODQzNGNmLCAw
eGRmMWRlNDhjKSwKLSAgICAgICAgIFRPQk4oMHg2YWYxYjAwZSwgMHgwZmE4ZjEyOCksIFRPQk4o
MHhmMGJhOWQwMiwgMHg4OTA3NTgzYyksCi0gICAgICAgICBUT0JOKDB4NzM1YTQwMDQsIDB4MzJm
ZjlmNjApLCBUT0JOKDB4M2RkOGU0YjYsIDB4YzI1ZGNmMzMpLAotICAgICAgICAgVE9CTigweGYy
MjMwZjE2LCAweDQyYzc0Y2VmKSwgVE9CTigweGQ4MTE3NjIzLCAweDAxM2ZhOGFkKSwKLSAgICAg
ICAgIFRPQk4oMHgzNjgyMjg3NiwgMHhmNTFmZTc2ZSksIFRPQk4oMHg4YTY4MTFjYywgMHgxMWQ2
MjU4OSksCi0gICAgICAgICBUT0JOKDB4YzNmYzdlNjUsIDB4NDYyMjU3MTgpLCBUT0JOKDB4Yjdk
ZjJjOWYsIDB4YzgyZmRiY2QpLAotICAgICAgICAgVE9CTigweDNiMWQ0ZTUyLCAweGRkN2IyMDVi
KSwgVE9CTigweGI2OTU5NDc4LCAweDQ3YTJlNDE0KSwKLSAgICAgICAgIFRPQk4oMHgwNWU0ZDc5
MywgMHhlZmE5MTE0OCksIFRPQk4oMHhiNDdlZDQ0NiwgMHhmZDJlOTY3NSksCi0gICAgICAgICBU
T0JOKDB4MWE3MDk4YjksIDB4MDRjOWQ5YmYpLCBUT0JOKDB4NjYxZTI4ODEsIDB4MWI3OTMwNDgp
LAotICAgICAgICAgVE9CTigweGIxYTE2OTY2LCAweGIwMWVlNDYxKSwgVE9CTigweGJjNTIxMzA4
LCAweDI5NTQ3NDZmKSwKLSAgICAgICAgIFRPQk4oMHhjOTA5YTBmYywgMHgyNDc3ZGU1MCksIFRP
Qk4oMHhkODBiYjQxYywgMHg3ZGJkNTFlZiksCi0gICAgICAgICBUT0JOKDB4YTg1YmU3ZWMsIDB4
NTMyOTQ5MDUpLCBUT0JOKDB4NmQ0NjViMTgsIDB4ODM5NThmOTcpLAotICAgICAgICAgVE9CTigw
eDE2ZjZmMzMwLCAweGZiNjg0MGZkKSwgVE9CTigweGZhYWViMjE0LCAweDM0MDFlNmM4KSwKLSAg
ICAgICAgIFRPQk4oMHhhZjgzZDMwZiwgMHhjY2I1YjRmOCksIFRPQk4oMHgyMjg4NTczOSwgMHgy
NjZkZWM0YiksCi0gICAgICAgICBUT0JOKDB4NTFiNDM2N2MsIDB4N2JjNDY3ZGYpLCBUT0JOKDB4
OTI2NTYyZTMsIDB4ZDg0MmQyN2EpLAotICAgICAgICAgVE9CTigweGRmY2I2NjE0LCAweDBmZWEx
NGE2KSwgVE9CTigweGViMzk0ZGFlLCAweGYyNzM0Y2Q5KSwKLSAgICAgICAgIFRPQk4oMHgzZWVh
ZTVkMiwgMHgxMWMwYmU5OCksIFRPQk4oMHhiMWU2ZWQxMSwgMHg4MTRlODE2NSksCi0gICAgICAg
ICBUT0JOKDB4MTkxMDg2YmMsIDB4ZTUyYmNlMWMpLCBUT0JOKDB4MTRiNzRjYzYsIDB4YTc1YTA0
ZGEpLAotICAgICAgICAgVE9CTigweDYzY2YxMTg2LCAweDhjMDYwOTg1KSwgVE9CTigweDA3MTA0
N2RlLCAweDJkYmQ3ZjdjKSwKLSAgICAgICAgIFRPQk4oMHg0ZTQzM2I4YiwgMHhjZTA5NDJjYSks
IFRPQk4oMHhlY2JhYzQ0NywgMHhkOGZlYzYxZCksCi0gICAgICAgICBUT0JOKDB4OGYwZWQwZTIs
IDB4ZWJmMzIzMmYpLCBUT0JOKDB4ZmZmODBmOWUsIDB4YzUyYTJlZGQpLAotICAgICAgICAgVE9C
TigweGFkOWFiNDMzLCAweDc1YjU1ZmRiKSwgVE9CTigweDczY2E3ODIwLCAweGU0MmUwYzExKSwK
LSAgICAgICAgIFRPQk4oMHg2ZGFjZTBhMCwgMHhlNjI1MWI0NiksIFRPQk4oMHg4OWJjNmI1Yywg
MHg0YzBkOTMyZCksCi0gICAgICAgICBUT0JOKDB4MzQzOGNkNzcsIDB4MDk1ZGExOWEpLCBUT0JO
KDB4MmYyNGE5MzksIDB4OGQ0OGJkZmIpLAotICAgICAgICAgVE9CTigweDk5YjQ3ZTQ2LCAweDc2
NjU2MWI3KSwgVE9CTigweDczNjYwMGU2LCAweDBlZDAzMjJhKSwKLSAgICAgICAgIFRPQk4oMHgw
NmE0N2NiMSwgMHg2MzhlMTg2NSksIFRPQk4oMHg5MjdjMWMyZCwgMHhjYjEzNjAwMCksCi0gICAg
ICAgICBUT0JOKDB4Mjk1NDIzMzcsIDB4MGNjNWRmNjkpLCBUT0JOKDB4OTliMzdjMDIsIDB4MDlk
NjQ5YTkpLAotICAgICAgICAgVE9CTigweGM1ZjAwNDNjLCAweDZhZWZkYjI3KSwgVE9CTigweDZj
ZGQ5OTg3LCAweDFiZTk1YzI3KSwKLSAgICAgICAgIFRPQk4oMHg2OTg1MDkzMSwgMHgzOTA0MjBk
MiksIFRPQk4oMHgyOTljNDBhYywgMHgwOTgzZWZhNCksCi0gICAgICAgICBUT0JOKDB4M2EwNWU3
NzgsIDB4YWYzOWFlYWQpLCBUT0JOKDB4ODQyNzQ0MDgsIDB4NDNhNDUxOTMpLAotICAgICAgICAg
VE9CTigweDZiY2QwZmI5LCAweDkxYTcxMWEwKSwgVE9CTigweDQ2MTU5MmM4LCAweDlmNTJhYjE3
KSwKLSAgICAgICAgIFRPQk4oMHhiNDkzMDJiNCwgMHhkYTNjNmVkNiksIFRPQk4oMHhjNTFmZGRj
NywgMHgzMzBkNzA2NyksCi0gICAgICAgICBUT0JOKDB4OTRiYWJlYjYsIDB4ZGE1MGQ1MzEpLCBU
T0JOKDB4NTIxYjg0MGQsIDB4YTZhN2I5ZGEpLAotICAgICAgICAgVE9CTigweDUzMDUxNTFlLCAw
eDQwNGJkYzg5KSwgVE9CTigweDFiY2RlMjAxLCAweGQwZDA3NDQ5KSwKLSAgICAgICAgIFRPQk4o
MHhmNDI3YTc4YiwgMHgzYjc2YTU5YSksIFRPQk4oMHhmODQ4NDFjZSwgMHgwNzc5MWExYiksCi0g
ICAgICAgICBUT0JOKDB4ZWJkMzE0YmUsIDB4YmY5MWVkMWMpLCBUT0JOKDB4OGU2MWQzNGMsIDB4
YmYxNzI5NDMpLAotICAgICAgICAgVE9CTigweDFkNWRjNDUxLCAweDU1NDFiODkyKSwgVE9CTigw
eGIxODZlZTQxLCAweGZjOWQ5ZTU0KSwKLSAgICAgICAgIFRPQk4oMHg5ZDlmMzQ1ZSwgMHhkNWJm
NjEwZCksIFRPQk4oMHgzZTdiYTY1ZCwgMHhmNmFjY2E5ZiksCi0gICAgICAgICBUT0JOKDB4OWRk
YTc4N2EsIDB4YTgzNjk0ODYpLCBUT0JOKDB4MDlmOWRhYjcsIDB4OGViNWJhNTMpLAotICAgICAg
ICAgVE9CTigweDVhZmIyMDMzLCAweGQ2NDgxYmMzKSwgVE9CTigweDc2ZjRjZTMwLCAweGFmYTYy
MTA0KSwKLSAgICAgICAgIFRPQk4oMHhhOGZhMDBjZiwgMHhmNGYwNjZiNSksIFRPQk4oMHg4OWFi
NTE0MywgMHg0NjFkYWZjMiksCi0gICAgICAgICBUT0JOKDB4NDQzMzllZDcsIDB4YTMzODk5OTgp
LCBUT0JOKDB4MmZmODYyZjEsIDB4YmMyMTQ5MDMpLAotICAgICAgICAgVE9CTigweDJjODhmOTg1
LCAweGIwNTU1NmUzKSwgVE9CTigweGNkOTYwNThlLCAweDM0NjcwODFlKSwKLSAgICAgICAgIFRP
Qk4oMHg3ZDZhNDE3NiwgMHhlZGM2MzdlYSksIFRPQk4oMHhlMTc0M2QwOSwgMHgzNmE1YWNkYyks
Ci0gICAgICAgICBUT0JOKDB4NjZmZDcyZTIsIDB4N2ViMzc3MjYpLCBUT0JOKDB4ZjdmYTI2NGUs
IDB4MTQ4MWEwMzcpLAotICAgICAgICAgVE9CTigweDlmYmQzYmRlLCAweDQ1ZjRhYTc5KSwgVE9C
TigweGVkMWUwMTQ3LCAweDc2N2MzZTIyKSwKLSAgICAgICAgIFRPQk4oMHg3NjIxZjk3OSwgMHg4
MmU3YWJlMiksIFRPQk4oMHgxOWVlZGM3MiwgMHg0NWY2MzNmOCksCi0gICAgICAgICBUT0JOKDB4
ZTY5YjE1NWUsIDB4NjEzN2JmM2EpLCBUT0JOKDB4YTBhZDEzY2UsIDB4NDE0ZWU5NGUpLAotICAg
ICAgICAgVE9CTigweDkzZTNkNTI0LCAweDFjMGU2NTFhKSwgVE9CTigweGFiMWE2ZTJhLCAweDAy
Y2UyMjdlKSwKLSAgICAgICAgIFRPQk4oMHhlN2FmMTc5NywgMHg0YWIyN2VjYSksIFRPQk4oMHgy
NDU0NDZkZSwgMHhiZDQ0NGYzOSksCi0gICAgICAgICBUT0JOKDB4NTllMjJhMjEsIDB4NTZjMDc2
MTMpLCBUT0JOKDB4NDNkZWFmY2UsIDB4ZjQyNzU0OTgpLAotICAgICAgICAgVE9CTigweDEwODM0
Y2NiLCAweDY3ZmQwOTQ2KSwgVE9CTigweGE3NTg0MWU1LCAweDQ3NDA2ZWRmKSwKLSAgICAgICAg
IFRPQk4oMHhlYmQ2YTY3NywgMHg3YjBhYzkzZCksIFRPQk4oMHhhNmUzN2IwZCwgMHg3OGY1ZTBk
NyksCi0gICAgICAgICBUT0JOKDB4MjUxNmMwOTYsIDB4NzZmNTQ5MmIpLCBUT0JOKDB4MWU0YmY4
ODgsIDB4OWFjMDVmM2EpLAotICAgICAgICAgVE9CTigweGNkYjQyY2UwLCAweDRkZjBiYTJiKSwg
VE9CTigweDkzNWQ1Y2ZkLCAweDUwNjIzNDFiKSwKLSAgICAgICAgIFRPQk4oMHg4YTMwMzMzMywg
MHg4MmFjYWMyMCksIFRPQk4oMHg0Mjk0MzhjNCwgMHg1MTk4YjAwZSksCi0gICAgICAgICBUT0JO
KDB4MWQwODNiYzksIDB4MDQ5ZDMzZmEpLCBUT0JOKDB4NThiODJkZGEsIDB4OTQ2ZjY3ZmYpLAot
ICAgICAgICAgVE9CTigweGFjM2UyZGI4LCAweDY3YTFkNmEzKSwgVE9CTigweDYyZTZiZWFkLCAw
eDE3OThhYWM4KSwKLSAgICAgICAgIFRPQk4oMHhmYzg1OTgwZiwgMHhkZTQ2YzU4YyksIFRPQk4o
MHhhN2Y2OTM3OSwgMHg2OWM4ZDdiZSksCi0gICAgICAgICBUT0JOKDB4MjM1NTc5MjcsIDB4ODM3
YjM1ZWMpLCBUT0JOKDB4MDZhOTMzZDgsIDB4ZTA3OTBjMGMpLAotICAgICAgICAgVE9CTigweDgy
N2MwZTliLCAweDA3N2ZmNTVkKSwgVE9CTigweDUzOTc3Nzk4LCAweGJiMjZlNjgwKSwKLSAgICAg
ICAgIFRPQk4oMHg1OTUzMDg3NCwgMHgxZDljYjU0ZiksIFRPQk4oMHhjY2EzZjQ0OSwgMHg0YWFj
NTNlZiksCi0gICAgICAgICBUT0JOKDB4MTFkYzVjODcsIDB4YTA3ZWRhMGYpLCBUT0JOKDB4YzEz
OGJjY2YsIDB4ZmQ2NDAwYzgpLAotICAgICAgICAgVE9CTigweDU0OTY4MGQzLCAweDEzZTVkYTcy
KSwgVE9CTigweGM5M2VlZDgyLCAweDQ1NDA2MTdlKSwKLSAgICAgICAgIFRPQk4oMHhmZDNkYjE1
NywgMHg0ZDBiNzVjMCksIFRPQk4oMHg5NzE2ZWI0MiwgMHg2Mzg2MDc1YiksCi0gICAgICAgICBU
T0JOKDB4MDYzOTYwNWMsIDB4ODE3YjJjMTYpLCBUT0JOKDB4MDk5MTUxMDksIDB4ZjFlNGYyMDEp
LAotICAgICAgICAgVE9CTigweDM1YzlhOTI4LCAweDVjY2E2YzNiKSwgVE9CTigweGIyNWY3ZDFh
LCAweDM1MDVjOTAwKSwKLSAgICAgICAgIFRPQk4oMHhlYjlmN2QyMCwgMHg2MzA0ODBjNCksIFRP
Qk4oMHhjM2M3YjhjNiwgMHgyYTFhNTAxYyksCi0gICAgICAgICBUT0JOKDB4M2Y5OTE4M2MsIDB4
NWExZjhlMjQpLCBUT0JOKDB4ZmRiMTE4ZmEsIDB4OWRkMjU1ZjApLAotICAgICAgICAgVE9CTigw
eGI5YjE4YjkwLCAweGMyN2Y2MmE2KSwgVE9CTigweGU4ZjczMmY3LCAweDM5NmVjMTkxKSwKLSAg
ICAgICAgIFRPQk4oMHg1MjRhMmQ5MSwgMHgwYmU3ODZhYiksIFRPQk4oMHg1ZDMyYWRlZiwgMHgw
YWM1YTBmNSksCi0gICAgICAgICBUT0JOKDB4OWI1M2Q0ZDYsIDB4OTcyNWY2OTQpLCBUT0JOKDB4
MDMyYTc2YzYsIDB4MDUxMGJhODkpLAotICAgICAgICAgVE9CTigweDg0MDM5MWEzLCAweGViZWIx
NTQ0KSwgVE9CTigweDQ0YjdiODhjLCAweDNlZDczYWMzKSwKLSAgICAgICAgIFRPQk4oMHhkMjRi
YWU3YSwgMHgyNTZjYjhiMyksIFRPQk4oMHg3Y2ViMTUxYSwgMHhlMzk0Y2IxMiksCi0gICAgICAg
ICBUT0JOKDB4YmQ2YjY2ZDAsIDB4NWJjMWU2YTgpLCBUT0JOKDB4ZWM3MGNlY2IsIDB4MDkwZjA3
YmYpLAotICAgICAgICAgVE9CTigweDI3MDY0NGVkLCAweDdkOTM3NTg5KSwgVE9CTigweGVlOWUx
YTNkLCAweDVmMWRjY2ZlKSwKLSAgICAgICAgIFRPQk4oMHhiMGQ0MGE4NCwgMHg3NDViOThkMiks
IFRPQk4oMHhkYTQyOWEyMSwgMHgyNTU2ZWQ0MCksCi0gICAgICAgICBUT0JOKDB4ZjY3NmVjZWQs
IDB4ODUxNDhjYjkpLCBUT0JOKDB4NWEyMmQ0MGMsIDB4ZGVkMTg5MzYpLAotICAgICAgICAgVE9C
TigweDNiYzRiOWU1LCAweDcwZThhNGNlKSwgVE9CTigweGJmZDE0NDViLCAweDllYWUwMzc5KSwK
LSAgICAgICAgIFRPQk4oMHhmMjNmMmMwYywgMHgxYTBiZDQ3ZSksIFRPQk4oMHhhOWMwYmIzMSwg
MHhlMTg0NTUzMSksCi0gICAgICAgICBUT0JOKDB4OWRkYzRkNjAsIDB4MGE0YzNmNmIpLCBUT0JO
KDB4YmRmYWFkNzksIDB4MmMxNWVmNDQpLAotICAgICAgICAgVE9CTigweGNlNTVhMjM2LCAweDdm
NDg0YWNjKSwgVE9CTigweDA4NjUzY2E3LCAweDA1NWIxZjE1KSwKLSAgICAgICAgIFRPQk4oMHgy
ZWZhODcyNCwgMHg1Mzg4NzNhMyksIFRPQk4oMHgwOTI5OWU1ZCwgMHhhY2UxYzdlNyksCi0gICAg
ICAgICBUT0JOKDB4MDdhZmFiNjYsIDB4YWRlMzMyYmEpLCBUT0JOKDB4OWJlMWZkZjYsIDB4OTJk
ZDcxYjcpLAotICAgICAgICAgVE9CTigweGE0OWI1ZDU5LCAweDU3NThiMTFjKSwgVE9CTigweDBi
ODUyODkzLCAweGM4NjU0ZjQwKSwKLSAgICAgICAgIFRPQk4oMHhiNjNlZjZmNCwgMHg1MjM3OTQ0
NyksIFRPQk4oMHhkNDk1N2QyOSwgMHgxMDVlNjkwYyksCi0gICAgICAgICBUT0JOKDB4N2Q0ODQz
NjMsIDB4NjQ2NTU5YjApLCBUT0JOKDB4ZjRhODI3M2MsIDB4NDk3ODhhOGUpLAotICAgICAgICAg
VE9CTigweGVlNDA2Y2I4LCAweDM0Y2U1NGE5KSwgVE9CTigweDFlMWMyNjBmLCAweGY4NmZkYTli
KSwKLSAgICAgICAgIFRPQk4oMHhlMTUwZTIyOCwgMHhjZjZhNGE4MSksIFRPQk4oMHgxZmEzYjZh
MywgMHgxYjQ4ODc3MiksCi0gICAgICAgICBUT0JOKDB4MWU2ZmYxMTAsIDB4YzVhOWMxNWIpLCBU
T0JOKDB4YzYxMzNiOTEsIDB4OGFkNmFhNDcpLAotICAgICAgICAgVE9CTigweDhhYzVkNTVjLCAw
eDlkZmZhOTc4KSwgVE9CTigweGJhMWQxYzFkLCAweDVmMzk2NWYyKSwKLSAgICAgICAgIFRPQk4o
MHhmOTY5ZjRlMCwgMHg3NzMyYjUyZiksIFRPQk4oMHhmY2VlY2RiNSwgMHhhNTE3MmEwNyksCi0g
ICAgICAgICBUT0JOKDB4YjAxMjBhNWYsIDB4MTBmMmI4ZjUpLCBUT0JOKDB4YzgzYTZjZGYsIDB4
NWM0YzJmNjMpLAotICAgICAgICAgVE9CTigweDRkNDdhNDkxLCAweGY4ZjljMjEzKSwgVE9CTigw
eGQ5ZTFjY2U1LCAweGQzZjFiYmQ1KSwKLSAgICAgICAgIFRPQk4oMHgwZDkxYmM3YywgMHhhYmE3
ZTM3MiksIFRPQk4oMHhmY2RjNzRjOCwgMHhkZmQxYTJkYiksCi0gICAgICAgICBUT0JOKDB4MDVl
ZmE4MDAsIDB4Mzc0NjE4ZTUpLCBUT0JOKDB4MTEyMTY5NjksIDB4MTVhNzkyNWUpLAotICAgICAg
ICAgVE9CTigweGQ0Yzg5ODIzLCAweGY2MDIxYzVkKSwgVE9CTigweDg4MGQ1ZTg0LCAweGVmZjE0
NDIzKSwKLSAgICAgICAgIFRPQk4oMHg2NTIzYmM1YSwgMHg2ZGNkMTM5NiksIFRPQk4oMHhkMWFj
ZmRmYywgMHgxMTNjOTc4YiksCi0gICAgICAgICBUT0JOKDB4YjBjMTY0ZTgsIDB4YmJiNjY4NDAp
LCBUT0JOKDB4ZjdmNDMwMWUsIDB4NzJiNTg0NTkpLAotICAgICAgICAgVE9CTigweGMyOWFkNGE2
LCAweGE2MzhlOGVjKSwgVE9CTigweGY1YWI4OTYxLCAweDQ2Yjc4Njk5KSwKLSAgICAgICAgIFRP
Qk4oMHg5ZGJkNzk3NCwgMHgwZTk1NDc1MCksIFRPQk4oMHgwMTIxZGU4OCwgMHg2NGY5ZDJjNiks
Ci0gICAgICAgICBUT0JOKDB4MmU1OTdiNDIsIDB4ZDk4NTIzMmUpLCBUT0JOKDB4NTViNmMzYzUs
IDB4NTM0NTE3NzcpLAotICAgICAgICAgVE9CTigweGJiNTNlNTQ3LCAweDUxOWNiOWZiKSwgVE9C
TigweGYxMzQwMTlmLCAweDg0Mjg2MDBkKSwKLSAgICAgICAgIFRPQk4oMHg1YTQ3MzE3NiwgMHhl
MDgxNzkxYSksIFRPQk4oMHgyZjNlMjI2MywgMHgzNWZiMGMwOCksCi0gICAgICAgICBUT0JOKDB4
YjI4YzMwMTcsIDB4NzNkMjczYjApLCBUT0JOKDB4Y2NkMjEwNzYsIDB4NzcyMWVmOWEpLAotICAg
ICAgICAgVE9CTigweDA1NGNjMjkyLCAweGI2NTBkYzM5KSwgVE9CTigweDY2MjI0NmRlLCAweDYx
ODgwNDVlKSwKLSAgICAgICAgIFRPQk4oMHg5MDRiNTJmYSwgMHg2YjgzYzBkMSksIFRPQk4oMHhh
NzJkZjI2NywgMHg5N2U5Y2Q0NiksCi0gICAgICAgICBUT0JOKDB4ODg2YjQzY2QsIDB4ODk5NzI1
ZTQpLCBUT0JOKDB4MmI2NTE2ODgsIDB4ZDg0OWZmMjIpLAotICAgICAgICAgVE9CTigweDYwNDc5
Yjc5LCAweDAyZjM0NTMzKSwgVE9CTigweDVlMzU0YzE0LCAweDBjNzdjMTQ4KSwKLSAgICAgICAg
IFRPQk4oMHhiNGJiNzU4MSwgMHhhODUzN2M3OCksIFRPQk4oMHgxODgwNDNkNywgMHhlZmUxNDk1
ZiksCi0gICAgICAgICBUT0JOKDB4OWJhMTJmNDIsIDB4OGMxZDUwMjYpLCBUT0JOKDB4MmUwYzhh
MjYsIDB4OTNkNGFhYWIpLAotICAgICAgICAgVE9CTigweGJkYmE3YjhiLCAweGFhNTdjNDUwKSwg
VE9CTigweDE0MGM5YWQ2LCAweDliYmRhZmVmKSwKLSAgICAgICAgIFRPQk4oMHgyMDY3YWE0Miwg
MHgyNWFjMGYxOCksIFRPQk4oMHhmN2IxMjk1YiwgMHgwNGQxZmJmMyksCi0gICAgICAgICBUT0JO
KDB4MTQ4MjkxMTEsIDB4YTRiMDQ4MjQpLCBUT0JOKDB4MmNlM2YxOTIsIDB4MzNiZDVlOTEpLAot
ICAgICAgICAgVE9CTigweDljN2ExZDU1LCAweDhmMmUxYjcyKSwgVE9CTigweGZlOTMyMjg2LCAw
eDMwMmFhMjQzKSwKLSAgICAgICAgIFRPQk4oMHg0OTdjYTdiNCwgMHhkNGJlOTU1NCksIFRPQk4o
MHhiOGU4MjFiOCwgMHhlMDU0N2E2ZSksCi0gICAgICAgICBUT0JOKDB4ZmIyODM4YmUsIDB4Njdl
NTczZTApLCBUT0JOKDB4MDU4OTFkYjksIDB4NDA4NGM0NGIpLAotICAgICAgICAgVE9CTigweDkx
MzExMzczLCAweDk2YzFjMmM1KSwgVE9CTigweDZhZWJmYTNmLCAweGQ5NTg0NDRiKSwKLSAgICAg
ICAgIFRPQk4oMHhhYzljZGNlOSwgMHhlNTZlNTVjMSksIFRPQk4oMHg3MTQ4Y2VkMywgMHgyY2Fh
NDZkMCksCi0gICAgICAgICBUT0JOKDB4MmUxMGM3ZWYsIDB4YjYxZmU4ZWIpLCBUT0JOKDB4OWZk
ODM1ZGEsIDB4ZmY5N2NmNGQpfSwKLSAgICAgICAge1RPQk4oMHhhMzZkYTEwOSwgMHgwODFlOTM4
NyksIFRPQk4oMHhmYjk3ODBkNywgMHg4YzkzNTgyOCksCi0gICAgICAgICBUT0JOKDB4ZDU5NDAz
MzIsIDB4ZTU0MGIwMTUpLCBUT0JOKDB4YzlkN2I1MWIsIDB4ZTBmNDY2ZmEpLAotICAgICAgICAg
VE9CTigweGZhYWRjZDQxLCAweGQ2ZDlmNjcxKSwgVE9CTigweGJhNmMxZTI4LCAweGIxYTJhYzE3
KSwKLSAgICAgICAgIFRPQk4oMHgwNjZhNzgzMywgMHhlZDIwMWU1ZiksIFRPQk4oMHgxOWQ5OTcx
OSwgMHhmOTBmNDYyYiksCi0gICAgICAgICBUT0JOKDB4ZjQzMWY0NjIsIDB4MDYwYjVmNjEpLCBU
T0JOKDB4YTU2ZjQ2YjQsIDB4N2JkMDU3YzIpLAotICAgICAgICAgVE9CTigweDM0OGRjYTZjLCAw
eDQ3ZTFiZjY1KSwgVE9CTigweDlhMzg3ODNlLCAweDQxYmNmMWZmKSwKLSAgICAgICAgIFRPQk4o
MHg3YTVkMzNhOSwgMHhkYTcxMDcxOCksIFRPQk4oMHg1YTc3OTk4NywgMHgyZTBhZWFmNiksCi0g
ICAgICAgICBUT0JOKDB4Y2E4NzMxNGQsIDB4MmQyOWQxODcpLCBUT0JOKDB4ZmEwZWRjM2UsIDB4
YzY4N2Q3MzMpLAotICAgICAgICAgVE9CTigweDlkZjMzNjIxLCAweDZhMzFlMDliKSwgVE9CTigw
eGRlODllNDRkLCAweGMxMzUwZTM1KSwKLSAgICAgICAgIFRPQk4oMHgyOTIxNDg3MSwgMHg0Y2Ew
Y2Y1MiksIFRPQk4oMHhkZjM3OTY3MiwgMHgwYjg4YTUzOCksCi0gICAgICAgICBUT0JOKDB4Yzky
YTUxMGEsIDB4MjU5MWQ2MWIpLCBUT0JOKDB4NzlhYTg3ZDcsIDB4NTg1YjQ0N2IpLAotICAgICAg
ICAgVE9CTigweGY2N2RiNjA0LCAweGU1Mjg3Zjc3KSwgVE9CTigweDE2OTdjOGJmLCAweDVlZmU3
YTgwKSwKLSAgICAgICAgIFRPQk4oMHgxYzg5NDg0OSwgMHhjYjE5OGFjNyksIFRPQk4oMHhhODg0
YTkzZCwgMHgwZjI2NDY2NSksCi0gICAgICAgICBUT0JOKDB4MmRhOTY0ZWYsIDB4OWIyMDA2Nzgp
LCBUT0JOKDB4M2MzNTFiODcsIDB4MDA5ODM0ZTYpLAotICAgICAgICAgVE9CTigweGFmYjJlZjlm
LCAweGUyYzRiNDRiKSwgVE9CTigweDU4MGY2YzQ3LCAweDMzMjY3OTBjKSwKLSAgICAgICAgIFRP
Qk4oMHhiODQ4MDUyMSwgMHgwYjAyMjY0YSksIFRPQk4oMHg4YmE2ZjllMiwgMHg0MmExOTRlMiks
Ci0gICAgICAgICBUT0JOKDB4ZmM4Nzk3NWYsIDB4OGZiNTQ3MzgpLCBUT0JOKDB4MzUxNjA3ODgs
IDB4MjdjM2VhZDMpLAotICAgICAgICAgVE9CTigweDgzNDExNmQyLCAweGI3NGEwODVhKSwgVE9C
TigweDUzYzk5YTczLCAweGE2MmZlOTk2KSwKLSAgICAgICAgIFRPQk4oMHg4NzU4NWJlMCwgMHg1
YjgxYzUxYiksIFRPQk4oMHg5MjViYWZhOCwgMHhiZTA4NTJiNyksCi0gICAgICAgICBUT0JOKDB4
NzZhNGZhZmQsIDB4YTg0ZDE5YTcpLCBUT0JOKDB4MzlhNDU5ODIsIDB4NTg1MjA2ZDQpLAotICAg
ICAgICAgVE9CTigweDQ5OWI2YWI2LCAweDVlYjAzYzBlKSwgVE9CTigweGYxOWI3OTU0LCAweDcy
YmMzZmRlKSwKLSAgICAgICAgIFRPQk4oMHhhODZiNWI5YywgMHg2ZTNhODBkMiksIFRPQk4oMHhl
NDM3NzUwOCwgMHg2ZDQyODE5ZiksCi0gICAgICAgICBUT0JOKDB4YzE2NjM2NTAsIDB4YmIzZWU4
YTMpLCBUT0JOKDB4NzVlYjE0ZmMsIDB4YjEzMjA3NWYpLAotICAgICAgICAgVE9CTigweGE4Y2Nj
OTA2LCAweDdhZDgzNGY2KSwgVE9CTigweGVhNmEyNDc0LCAweGU2ZTkyZmZkKSwKLSAgICAgICAg
IFRPQk4oMHg5ZDcyZmQ5NSwgMHgwZjhkNjc1OCksIFRPQk4oMHhjYjg0ZTEwMSwgMHg0MDhjMDdk
ZCksCi0gICAgICAgICBUT0JOKDB4YjkxMTRiZmQsIDB4YTVlMjMyMjEpLCBUT0JOKDB4MzU4YjVm
ZTIsIDB4ZTk0ZTc0MmMpLAotICAgICAgICAgVE9CTigweDFjMDU3N2VjLCAweDk1ZjQwZTc1KSwg
VE9CTigweGYwMTU1NDUxLCAweDNkNzNmM2Q2KSwKLSAgICAgICAgIFRPQk4oMHg5ZDU1Y2Q2Nywg
MHhiZDFiOWI2NiksIFRPQk4oMHg2M2U4NmU3OCwgMHhhZjhkNjNjNyksCi0gICAgICAgICBUT0JO
KDB4MzlkOTM0YWIsIDB4ZDNjMDk1ZjEpLCBUT0JOKDB4MDRiMjYxYmUsIDB4ZTRiNzZkNzEpLAot
ICAgICAgICAgVE9CTigweDFkMmU2OTcwLCAweGU3M2U2OTg0KSwgVE9CTigweDg3OWZiMjNiLCAw
eDVlNWZjYjExKSwKLSAgICAgICAgIFRPQk4oMHgxMTUwNmM3MiwgMHhkZmQ3NTQ5MCksIFRPQk4o
MHgzYTk3ZDA4NSwgMHg2MWJjZjFjMSksCi0gICAgICAgICBUT0JOKDB4NDMyMDFkODIsIDB4YmY1
ZTcwMDcpLCBUT0JOKDB4N2YwYWM1MmYsIDB4Nzk4MjMyYTcpLAotICAgICAgICAgVE9CTigweDI3
MTVjYmM0LCAweDZlYjU2NGQ0KSwgVE9CTigweDhkNmM3NTJjLCAweDllNTcwZTI5KSwKLSAgICAg
ICAgIFRPQk4oMHhmODAyNDdjOCwgMHg5ZWY1ZmQ1ZCksIFRPQk4oMHhjM2M2NmI0NiwgMHhkNTNl
YjUxNCksCi0gICAgICAgICBUT0JOKDB4OTY2NmI0MDEsIDB4MGY4N2RlNTYpLCBUT0JOKDB4Y2U2
MmMwNmYsIDB4YzZjNjAzYjUpLAotICAgICAgICAgVE9CTigweGFlN2I0YzYwLCAweDdlNGZjOTQy
KSwgVE9CTigweDM4YWMwYjc3LCAweDY2M2E5YzE5KSwKLSAgICAgICAgIFRPQk4oMHhjYjRkMjBl
ZSwgMHg0YjA0OTEzNiksIFRPQk4oMHg4YjYzYmYxMiwgMHgzNTZhNDYxMyksCi0gICAgICAgICBU
T0JOKDB4MTIyMWFlZjYsIDB4NzBlMDgxMjgpLCBUT0JOKDB4ZTYyZDhjNTEsIDB4NGFjYjZiMTYp
LAotICAgICAgICAgVE9CTigweDcxZjY0YTY3LCAweDM3OWU3ODk2KSwgVE9CTigweGIyNTIzN2Ey
LCAweGNhZmQ3ZmE1KSwKLSAgICAgICAgIFRPQk4oMHhmMDc3YmQ5OCwgMHgzODQxYmE2YSksIFRP
Qk4oMHhjNGFjMDI0NCwgMHgzY2QxNmU3ZSksCi0gICAgICAgICBUT0JOKDB4NTQ4YmE4NjksIDB4
MjFmZWE0Y2EpLCBUT0JOKDB4ZDM2ZDA4MTcsIDB4ZjNkZmRhYzEpLAotICAgICAgICAgVE9CTigw
eDA5ZDhkNzFmLCAweGY0Njg1ZmFmKSwgVE9CTigweDhlZmY2NmJlLCAweGM1MmM0NTlhKSwKLSAg
ICAgICAgIFRPQk4oMHgxODJmYWVlNywgMHgwYjU3MjM1ZSksIFRPQk4oMHhlZTNjMzliMSwgMHgw
MTA2NzEyYiksCi0gICAgICAgICBUT0JOKDB4NTEwNzMzMWYsIDB4YzBmY2RjYjApLCBUT0JOKDB4
NjY5ZmI5ZGMsIDB4YTUxMDU0YmEpLAotICAgICAgICAgVE9CTigweGIyNTEwMWZiLCAweDMxOWQ3
NjgyKSwgVE9CTigweGIwMjkzMTI5LCAweDBhOTgyZmVlKSwKLSAgICAgICAgIFRPQk4oMHg1MWMx
YzliOSwgMHgwMjYxYjM0NCksIFRPQk4oMHgwZTAwOGM1YiwgMHhiZmQzNzFmYSksCi0gICAgICAg
ICBUT0JOKDB4ZDg2NmRkMWMsIDB4MDI3OGNhMzMpLCBUT0JOKDB4NjY2Zjc2YTYsIDB4ZTVhYTUz
YjEpLAotICAgICAgICAgVE9CTigweGU1Y2ZiNzc5LCAweDYwMTNhMmNmKSwgVE9CTigweDFkM2Ex
YWFkLCAweGEzNTIxODM2KSwKLSAgICAgICAgIFRPQk4oMHhjZWRkMjUzMSwgMHg3M2ZhYTQ4NSks
IFRPQk4oMHhjOGVlNmM0ZiwgMHhjMGE3Njg3OCksCi0gICAgICAgICBUT0JOKDB4ZGRiY2NmYzks
IDB4MmExMTY2N2QpLCBUT0JOKDB4MWE0MThlYTksIDB4MWMyZjY5NWEpLAotICAgICAgICAgVE9C
TigweGRiMTFiZDkyLCAweDUxZjczOTcxKSwgVE9CTigweDNlNGIzYzgyLCAweGRhMmVkODlmKSwK
LSAgICAgICAgIFRPQk4oMHg5YTQ0ZjNmNCwgMHhlNzNlMDMxOSksIFRPQk4oMHhkMWUzZGUwZiwg
MHgzMDM0MzFhZiksCi0gICAgICAgICBUT0JOKDB4M2M1NjA0ZmYsIDB4NTBmNzVmOWMpLCBUT0JO
KDB4MWQ4ZWRkZjMsIDB4N2U3NTJiMjIpLAotICAgICAgICAgVE9CTigweDBlZjA3NGRkLCAweDNj
OWExMTE4KSwgVE9CTigweGQwZmZjMTcyLCAweGNjYjg2ZDdiKSwKLSAgICAgICAgIFRPQk4oMHhh
YmQxZWNlMywgMHgwMzdkOTBmMiksIFRPQk4oMHhlM2YzMDdkNiwgMHg2MDU1ODU2YyksCi0gICAg
ICAgICBUT0JOKDB4NDIyZjkzMjgsIDB4N2U0YzZkYWYpLCBUT0JOKDB4OTAyYWFjNjYsIDB4MzM0
ODc5YTApLAotICAgICAgICAgVE9CTigweGI2YTFlN2JmLCAweDk0Y2RmYWRlKSwgVE9CTigweDZj
OTdlMWVkLCAweDdmYzZkNjM0KSwKLSAgICAgICAgIFRPQk4oMHg2NjJhZDI0ZCwgMHhhMmZiNjNm
OCksIFRPQk4oMHhmODFiZTFiOSwgMHhhNTkyODQwNSksCi0gICAgICAgICBUT0JOKDB4ODZkNzY1
ZTQsIDB4ZDE0YjQyMDYpLCBUT0JOKDB4YmVjYzJlMGUsIDB4OGZhMGRiNjUpLAotICAgICAgICAg
VE9CTigweGEyODgzOGUwLCAweGIxN2ZjNzZjKSwgVE9CTigweGU0OWE2MDJhLCAweGUzN2NmMjRl
KSwKLSAgICAgICAgIFRPQk4oMHg3NmI0MTMxYSwgMHg1NjcxOTNlYyksIFRPQk4oMHhhZjNjMzA1
YSwgMHhlNWY2ZTcwYiksCi0gICAgICAgICBUT0JOKDB4OTU4N2JkMzksIDB4MDMxZWViZGQpLCBU
T0JOKDB4NTcwOWRlZjgsIDB4NzFiYmU4MzEpLAotICAgICAgICAgVE9CTigweDU3MDU5OTgzLCAw
eDBlYjJiNjY5KSwgVE9CTigweDRkODBjZTFiLCAweDg3NWI3MDI5KSwKLSAgICAgICAgIFRPQk4o
MHg4MzhhN2RhOCwgMHgwMzY0YWMxNiksIFRPQk4oMHgyZjQzMWQyMywgMHhiZTFjODNhYiksCi0g
ICAgICAgICBUT0JOKDB4ZTU2ODEyYTYsIDB4ZjkyOTRkZDMpLCBUT0JOKDB4YjQ0OGQwMWYsIDB4
OWI0YjBkNzcpLAotICAgICAgICAgVE9CTigweGYzYWU2MDYxLCAweDA0ZTgzMDVjKSwgVE9CTigw
eDJiZWFkNjQ1LCAweDk0ZDhjNjNlKSwKLSAgICAgICAgIFRPQk4oMHgwYTg1NDM0ZCwgMHg4NGZk
OGIwNyksIFRPQk4oMHg1MzdiOTgzZiwgMHhmN2E5ZGVlNSksCi0gICAgICAgICBUT0JOKDB4ZWRj
YzVmMTgsIDB4ZWY1NWJkODUpLCBUT0JOKDB4MjA0MWFmNjIsIDB4MjFjNmNmOGIpLAotICAgICAg
ICAgVE9CTigweDhlNTI4NzRjLCAweGI5NDBjNzFlKSwgVE9CTigweDIxMTkzNWE5LCAweGRiNWY0
YjNhKSwKLSAgICAgICAgIFRPQk4oMHg5NDM1MDQ5MiwgMHgzMDFiMWRjMyksIFRPQk4oMHgzM2Qy
NjQ2ZCwgMHgyOTk1ODYyMCksCi0gICAgICAgICBUT0JOKDB4MTZiMGQ2NGIsIDB4ZWY5MTE0MDQp
LCBUT0JOKDB4OWQxZjI1ZWEsIDB4OWEzYzVlZjQpLAotICAgICAgICAgVE9CTigweDIwZjIwMGVi
LCAweDRhMzUyYzc4KSwgVE9CTigweDQzOTI5ZjJjLCAweDRiZDBiNDI4KSwKLSAgICAgICAgIFRP
Qk4oMHhhNTY1NjY2NywgMHhjNzE5NmUyOSksIFRPQk4oMHg3OTkyYzJmMCwgMHg5MzkxYmU0OCks
Ci0gICAgICAgICBUT0JOKDB4YWFhOTdjYmQsIDB4OWVlMGNkNmUpLCBUT0JOKDB4NTFiMDMxMGMs
IDB4M2RjOGM5YmYpLAotICAgICAgICAgVE9CTigweDIzN2Y4YWNmLCAweGRkOWYyMmNiKSwgVE9C
TigweGJiMWQ4MWExLCAweGI1ODVkNTg0KSwKLSAgICAgICAgIFRPQk4oMHg4ZDVkODVmNSwgMHg4
YzQxNjM4OCksIFRPQk4oMHgwZDZlNWE1YSwgMHg0MmZlNDc0ZiksCi0gICAgICAgICBUT0JOKDB4
ZTc4MTI3NjYsIDB4MzgyMzVkNGUpLCBUT0JOKDB4MWM2MmJkNjcsIDB4NDk2ZTMyOTgpLAotICAg
ICAgICAgVE9CTigweDgzNzg2NjBjLCAweDNmMTc1YmM4KSwgVE9CTigweDRkMDRlMTg5LCAweDE3
YWZkZDRkKSwKLSAgICAgICAgIFRPQk4oMHgzMmE4MTYwMSwgMHg4NWE4MDY4YyksIFRPQk4oMHhk
YjU4ZTRlMSwgMHg5MmIyOWE4NSksCi0gICAgICAgICBUT0JOKDB4ZThhNjViODYsIDB4YzcwZDhh
M2IpLCBUT0JOKDB4NWYwZTZmNGUsIDB4OThhMDQwM2IpLAotICAgICAgICAgVE9CTigweDA4MTI5
Njg0LCAweDY5ZWQyMzcwKSwgVE9CTigweDM0ZGMzMGJkLCAweDA4NzFlZTI2KSwKLSAgICAgICAg
IFRPQk4oMHgzYTVjZTk0OCwgMHg3YzljNWIwNSksIFRPQk4oMHg3ZDQ4N2I4MCwgMHg0M2E5MGM4
NyksCi0gICAgICAgICBUT0JOKDB4NDA4OWJhMzcsIDB4ZGQwZTcxNzkpLCBUT0JOKDB4NDVmODAx
OTEsIDB4YjQwNDE4MTEpLAotICAgICAgICAgVE9CTigweDFjM2UxMDU4LCAweDk4NzQ3YmE1KSwg
VE9CTigweDk4YzRlMTNhLCAweDZlMWFlNTkyKSwKLSAgICAgICAgIFRPQk4oMHhkNDQ2MzZlNiwg
MHhlODJjOWY5ZSksIFRPQk4oMHg3MTFkYjg3YywgMHhjMzNhMTA0MyksCi0gICAgICAgICBUT0JO
KDB4NmY0MzEyNjMsIDB4YWE4YWVjMDUpLCBUT0JOKDB4NDNmZjEyMGQsIDB4Mjc0NGE0YWEpLAot
ICAgICAgICAgVE9CTigweGQzYmQ4OTJmLCAweGFlNzc3NzliKSwgVE9CTigweGYwZmUwY2M5LCAw
eDhjZGM5ZjgyKSwKLSAgICAgICAgIFRPQk4oMHhjYTVmN2ZlNiwgMHhmMWM1YjFiYyksIFRPQk4o
MHhjYzYzYTY4MiwgMHg0NDkyOWE3MiksCi0gICAgICAgICBUT0JOKDB4YzdlYWJhMGMsIDB4MDlk
YmUxOWEpLCBUT0JOKDB4MmYzNTg1YWQsIDB4NmI1YzczYzIpLAotICAgICAgICAgVE9CTigweDhh
Yjg5MjRiLCAweDBhZTUwYzMwKSwgVE9CTigweDE3ZmNkMjdhLCAweDYzOGIzMGJhKSwKLSAgICAg
ICAgIFRPQk4oMHhhZjQxNGQzNCwgMHgxMGIzZDVhNSksIFRPQk4oMHgwOWMxMDdkMiwgMHgyYTlh
Y2NmMSksCi0gICAgICAgICBUT0JOKDB4MTVkYWM0OWYsIDB4OTQ2YTYyNDIpLCBUT0JOKDB4YWVj
M2RmMmEsIDB4ZDcwN2Q2NDIpLAotICAgICAgICAgVE9CTigweDJjMjQ5MmI3LCAweDNmODk0YWUw
KSwgVE9CTigweGY1OWRmM2U1LCAweGI3NWYxOGNlKSwKLSAgICAgICAgIFRPQk4oMHg3Y2I3NDBk
MiwgMHg4ZjUzY2FkMCksIFRPQk4oMHgzZWI1ODVmYiwgMHhjNGYwMTI5NCksCi0gICAgICAgICBU
T0JOKDB4MTdkYTBjODYsIDB4MzJjN2Y3MTcpLCBUT0JOKDB4ZWI4Yzc5NWIsIDB4YWY5NDNmNGMp
LAotICAgICAgICAgVE9CTigweDRlZTIzZmI1LCAweGY2N2M1MWQyKSwgVE9CTigweGVmMTg3NTc1
LCAweDY4ODg5OTQ5KSwKLSAgICAgICAgIFRPQk4oMHhhNmI0YmRiMiwgMHgwMzg5MTY4YiksIFRP
Qk4oMHhjNGVjZDI1OCwgMHhlYTU3N2QwMyksCi0gICAgICAgICBUT0JOKDB4M2E2Mzc4MmIsIDB4
NTU3NDMwODIpLCBUT0JOKDB4NmY2NzhmNGMsIDB4YzcyZjA4Y2QpLAotICAgICAgICAgVE9CTigw
eDU1MzUxMWNmLCAweDY1ZTU4ZGQ4KSwgVE9CTigweGQ1M2I0ZTNlLCAweGQ0MDJjMGNkKSwKLSAg
ICAgICAgIFRPQk4oMHgzN2RlM2UyOSwgMHhhMDM3YzE0YyksIFRPQk4oMHg4NmI2YzUxNiwgMHhj
MDU3MTJhYSksCi0gICAgICAgICBUT0JOKDB4MjgzNGRhM2UsIDB4YjM4ZGZmNmYpLCBUT0JOKDB4
YmUwMTJjNTIsIDB4ZWE2MzZiZTgpLAotICAgICAgICAgVE9CTigweDI5MmQyMzhjLCAweDYxZGQz
N2Y4KSwgVE9CTigweDBlNTQ1MjNmLCAweDhmODE0MmRiKSwKLSAgICAgICAgIFRPQk4oMHhlMzFl
YjQzNiwgMHgwMzZhMDVkOCksIFRPQk4oMHg4M2UzY2RmZiwgMHgxZTkzYzBmZiksCi0gICAgICAg
ICBUT0JOKDB4M2ZkMmZlMGYsIDB4NTA4MjFkZGYpLCBUT0JOKDB4YzhlMTliMGQsIDB4ZmY5ZWIz
M2IpLAotICAgICAgICAgVE9CTigweGM4Y2M5NDNmLCAweGI1NjlhNWZlKSwgVE9CTigweGFkMDA5
MGQ0LCAweGQ0MzQyZDc1KSwKLSAgICAgICAgIFRPQk4oMHg4MjA5MGI0YiwgMHhjYWVjYTAwMCks
IFRPQk4oMHhjYTM5Njg3ZiwgMHgxYmQ0MTBlYiksCi0gICAgICAgICBUT0JOKDB4ZTdiYjBkZjcs
IDB4NjU5NTlkNzcpLCBUT0JOKDB4MzlkNzgyMTgsIDB4OWM5NjQ5OTkpLAotICAgICAgICAgVE9C
TigweGQ4N2Y2MmU4LCAweGIyNDE1NDUxKSwgVE9CTigweGU1ZWZiNzc0LCAweGJlZDc2MTA4KSwK
LSAgICAgICAgIFRPQk4oMHgzZWEwMTFhNCwgMHhlODIyZjBkMCksIFRPQk4oMHhiYzY0N2FkMSwg
MHg1YTg3MDRmOCksCi0gICAgICAgICBUT0JOKDB4YmIzMTViMzUsIDB4NTBjNjgyMGYpLCBUT0JO
KDB4ODYzZGVjM2QsIDB4YjdlNzZiZWMpLAotICAgICAgICAgVE9CTigweDAxZmY1ZDNhLCAweGYw
MTdiZmM3KSwgVE9CTigweDIwMDU0NDM5LCAweDk3NmI4MjI5KSwKLSAgICAgICAgIFRPQk4oMHgw
NjdmY2EzNywgMHgwYmJkMGQzYiksIFRPQk4oMHhmNjNkZGU2NCwgMHg3ZjVlM2QwZiksCi0gICAg
ICAgICBUT0JOKDB4MjJkYmVmYjMsIDB4MmE0Yzk0ZTkpLCBUT0JOKDB4YWZiZmYwZmUsIDB4OTZm
ODI3OGEpLAotICAgICAgICAgVE9CTigweDgwYWVhMGIxLCAweDM1MDM3OTNkKSwgVE9CTigweGIy
MjM4MDI5LCAweDVmMDZjZDI5KSwKLSAgICAgICAgIFRPQk4oMHg2NTcwM2U1NywgMHg4ZWMzZmVj
YSksIFRPQk4oMHgwNmMzODMxNCwgMHgzOTNlNzA1MyksCi0gICAgICAgICBUT0JOKDB4YTBiNzUx
ZWIsIDB4N2M2NzM0YzQpLCBUT0JOKDB4ZDJlOGE0MzUsIDB4YzU5ZjBmMWUpLAotICAgICAgICAg
VE9CTigweDE0N2Q5MDUyLCAweDVlOWNhODk1KSwgVE9CTigweDJmNGRkMzFlLCAweDk3MjA3MmRm
KSwKLSAgICAgICAgIFRPQk4oMHhhMTZmZGE4ZSwgMHhlNmM2NzU1YyksIFRPQk4oMHhjNjY4MjZm
ZiwgMHhjZjE5NjU1OCksCi0gICAgICAgICBUT0JOKDB4MWYxYTc2YTMsIDB4MGNmNDM4OTUpLCBU
T0JOKDB4YTlkNjA0ZTAsIDB4ODNjMzA5N2IpLAotICAgICAgICAgVE9CTigweGUxOTA4MzA5LCAw
eDY2MzkwZTBlKSwgVE9CTigweGE1MGJmNzUzLCAweGIzYzg1ZWZmKSwKLSAgICAgICAgIFRPQk4o
MHgwNjk2YmRkZSwgMHhmNmE3MDI1MSksIFRPQk4oMHg1NDhiODAxYiwgMHgzYzZhYjE2YSksCi0g
ICAgICAgICBUT0JOKDB4MzdmY2Y3MDQsIDB4YTRkMDg3NjIpLCBUT0JOKDB4MDkwYjNkZWYsIDB4
ZGZmNzZjNGUpLAotICAgICAgICAgVE9CTigweDg3ZThjYjg5LCAweDY5Y2I5MTU4KSwgVE9CTigw
eDQ0YTkwNzQ0LCAweDk5NWVjZTQzKSwKLSAgICAgICAgIFRPQk4oMHhmODUzOTVmNCwgMHgwYWQ5
ZmJmNSksIFRPQk4oMHg0OWIwZjZjNSwgMHg0ZmIwYzgyZCksCi0gICAgICAgICBUT0JOKDB4NzVk
OWJjMTUsIDB4YWRmN2NjY2YpLCBUT0JOKDB4ODFhM2U1ZDYsIDB4ZGZhMWUxYjApLAotICAgICAg
ICAgVE9CTigweDhjMzllNDQ0LCAweDI0OWJjMTdlKSwgVE9CTigweGYzN2RjY2IyLCAweDhlYTdm
ZDQzKSwKLSAgICAgICAgIFRPQk4oMHhkYTY1NDg3MywgMHg5MDdmYmExMiksIFRPQk4oMHgzNWRh
YTZkYSwgMHg0YTM3MjkwNCksCi0gICAgICAgICBUT0JOKDB4MDU2NGNmYzYsIDB4NjI4M2E2YzUp
LCBUT0JOKDB4ZDA5ZmE0ZjYsIDB4NGE5Mzk1YmYpLAotICAgICAgICAgVE9CTigweDY4OGU5ZWM5
LCAweGFlYjE5YTM2KSwgVE9CTigweGQ5MTNmMWNlLCAweGM3YmZiZmI0KSwKLSAgICAgICAgIFRP
Qk4oMHg3OTdiOWEzYywgMHg2MWMyZmFhNiksIFRPQk4oMHgyZjk3OWJlYywgMHg2YTBhOWMxMiks
Ci0gICAgICAgICBUT0JOKDB4YjU5NjlkMGYsIDB4MzU5Njc5ZWMpLCBUT0JOKDB4ZWJjZjUyM2Qs
IDB4MDc5YjA0NjApLAotICAgICAgICAgVE9CTigweGZkNmIwMDA4LCAweDEwZmFiODcwKSwgVE9C
TigweDNmMmVkY2RhLCAweDkzNzNhMzljKSwKLSAgICAgICAgIFRPQk4oMHgwZDY0ZjlhNywgMHg2
ZjU2ODQzMSksIFRPQk4oMHhmODQ4YzI3YywgMHgwMmY4ODk4YyksCi0gICAgICAgICBUT0JOKDB4
ZjQxOGFkZTEsIDB4MjYwYjViZDUpLCBUT0JOKDB4YzFmM2UzMjMsIDB4Njk3M2RlZTgpLAotICAg
ICAgICAgVE9CTigweDQ2ZTkzMTljLCAweDI2YzE4NWRkKSwgVE9CTigweDZkODViN2Q4LCAweDU0
NmYwYWM0KSwKLSAgICAgICAgIFRPQk4oMHg0Mjc5NjVmMiwgMHgyNDdmOWQ1NyksIFRPQk4oMHhi
NTE5YjYzNiwgMHhiMDAzNWY0OCksCi0gICAgICAgICBUT0JOKDB4NmI2MTYzYTksIDB4YWI4N2Q1
OWMpLCBUT0JOKDB4ZmY5ZjU4YzMsIDB4MzljYWFhMTEpLAotICAgICAgICAgVE9CTigweDRhYzM5
Y2RlLCAweDMxNzczODdiKSwgVE9CTigweDVmNjU1N2MyLCAweDg3M2U3N2Y5KSwKLSAgICAgICAg
IFRPQk4oMHg2NzUwNDAwNiwgMHgzNmE4MzA0MSksIFRPQk4oMHg5YjFjOTZjYSwgMHg3NWVmMTk2
YyksCi0gICAgICAgICBUT0JOKDB4ZjM0MjgzZGUsIDB4YjA4Yzc5NDApLCBUT0JOKDB4N2VhMDk2
NDQsIDB4MTEyOGMzMTYpLAotICAgICAgICAgVE9CTigweGI1MTBiM2I1LCAweDZhYTM5ZGZmKSwg
VE9CTigweDU5YjQzZGEyLCAweDlmOGU0ZDhjKSwKLSAgICAgICAgIFRPQk4oMHhhOGNlMzFmZCwg
MHg5ZTRjNGI5ZiksIFRPQk4oMHgwZTIwYmUyNiwgMHhjMTMwM2MwMSksCi0gICAgICAgICBUT0JO
KDB4MTgxODcxODIsIDB4ZThlZTQ3YzkpLCBUT0JOKDB4ZDk2ODdjZGIsIDB4N2RiOTgxMDEpLAot
ICAgICAgICAgVE9CTigweDdhNTIwZTRkLCAweGExZTE0ZmY2KSwgVE9CTigweDQyOTgwOGJhLCAw
eDg4MzZkNTcyKSwKLSAgICAgICAgIFRPQk4oMHhhMzdjYTYwZCwgMHg0OTQ0YjY2MyksIFRPQk4o
MHhmOTAxZjdhOSwgMHhhM2Y5MWFlNSksCi0gICAgICAgICBUT0JOKDB4ZTRlM2U3NmUsIDB4OWUz
NmUzYjEpLCBUT0JOKDB4OWFhMjE5Y2YsIDB4MjlkOTMyNTApLAotICAgICAgICAgVE9CTigweDM0
N2ZlMjc1LCAweDA1NmEyNTEyKSwgVE9CTigweGE0ZDY0M2Q5LCAweGRlNjVkOTVjKSwKLSAgICAg
ICAgIFRPQk4oMHg5NjY5ZDM5NiwgMHg2OTlmYzNlZCksIFRPQk4oMHhiNTk4ZGVlMiwgMHhjZjhj
NmJiZSksCi0gICAgICAgICBUT0JOKDB4NjgyYWMxZTUsIDB4ZGRhOWU1YzYpLCBUT0JOKDB4NGUw
ZDNjNzIsIDB4Y2FhOWZjOTUpLAotICAgICAgICAgVE9CTigweDE3ZmFhYWRlLCAweDc3MmJlYTQ0
KSwgVE9CTigweDVlZjg0MjhjLCAweGFiMDAwOWM4KSwKLSAgICAgICAgIFRPQk4oMHhjYzRjZTQ3
YSwgMHg0NjBmZjAxNiksIFRPQk4oMHhkYTZkMTJiZiwgMHg3MjUyODFjYiksCi0gICAgICAgICBU
T0JOKDB4NDRjNjc4NDgsIDB4MDIyM2FhZDIpLCBUT0JOKDB4NmUzNDJhZmEsIDB4MzYyNTZlMjgp
LAotICAgICAgICAgVE9CTigweDE0MDBiYjBiLCAweDkzYTM3YzA0KSwgVE9CTigweDYyYjFiYzli
LCAweGRkMTBiZDk2KSwKLSAgICAgICAgIFRPQk4oMHg3MjUxYWRlYiwgMHgwZGFjNDZiNyksIFRP
Qk4oMHg3ZDMzYjkyZSwgMHg3YmU0ZWY1MSksCi0gICAgICAgICBUT0JOKDB4MjhiMmE5NGIsIDB4
ZTYxZmEyOWEpLCBUT0JOKDB4NGIyYmUxM2YsIDB4MDY0MjIyMzMpLAotICAgICAgICAgVE9CTigw
eDM2ZDZkMDYyLCAweDMzMGQ4ZDM3KSwgVE9CTigweDVlZjgwZTFlLCAweGIyOGNhMDA1KSwKLSAg
ICAgICAgIFRPQk4oMHgxNzRkNDY5OSwgMHg2ZDE2NzY4ZSksIFRPQk4oMHg5ZmM0ZmY2YSwgMHg2
MjhiZjIxNyksCi0gICAgICAgICBUT0JOKDB4Nzc3MDVhOTQsIDB4MTU0ZTQ5MGQpLCBUT0JOKDB4
OWQ5NmRkMjgsIDB4OGQyZDk5N2EpLAotICAgICAgICAgVE9CTigweDc3ZTJkOWQ4LCAweGNlNWQ3
MmM0KSwgVE9CTigweDlkMDZjNWE0LCAweGMxMWM3MTRmKSwKLSAgICAgICAgIFRPQk4oMHgwMmFh
NTEzNiwgMHg3OWU0YTAzZSksIFRPQk4oMHgxMzg2YjNjMiwgMHgwMzBmZjI4YiksCi0gICAgICAg
ICBUT0JOKDB4ZmU4MmU4YTYsIDB4ZmIyODNmNjEpLCBUT0JOKDB4N2RmMjAzZTUsIDB4ZjNhYmMz
ZmIpLAotICAgICAgICAgVE9CTigweGVlYzdjMzUxLCAweDNhNGQzNjIyKSwgVE9CTigweGY3ZDE3
ZGJmLCAweGRmNzYyNzYxKSwKLSAgICAgICAgIFRPQk4oMHhjMzk1NmU0NCwgMHg1MjIwNTVmMCks
IFRPQk4oMHhkZTMwMTJkYiwgMHg4ZmE3NDhkYiksCi0gICAgICAgICBUT0JOKDB4Y2E5ZmNiNjMs
IDB4YmYxZGNjMTQpLCBUT0JOKDB4YTU2ZDlkY2YsIDB4YmU0ZTJmM2EpLAotICAgICAgICAgVE9C
TigweGI4NjE4NmI2LCAweDhiY2VjOWMyKSwgVE9CTigweDdjZjI0ZGY5LCAweDY4MGI5ZjA2KSwK
LSAgICAgICAgIFRPQk4oMHhjNDZiNDVlYSwgMHhjMGQyOTI4MSksIFRPQk4oMHhmZmY0MmJjNSwg
MHgwN2IxMGUxMiksCi0gICAgICAgICBUT0JOKDB4MTIyNjNjNDAsIDB4NGQyODk0MjcpLCBUT0JO
KDB4M2Q1ZjE4OTksIDB4YjQ4NDhlYzQpLAotICAgICAgICAgVE9CTigweDExZjk3MDEwLCAweGQw
NDA4MDBjKSwgVE9CTigweGI0YzVmNTI5LCAweDMwMGZlYjIwKSwKLSAgICAgICAgIFRPQk4oMHhj
YzU0M2Y4ZiwgMHhkZTk0ZmRjYiksIFRPQk4oMHhlOTZhZjczOSwgMHhjN2MyZjA1ZSksCi0gICAg
ICAgICBUT0JOKDB4YWE1ZTAwMzYsIDB4ODgyNjkyZTEpLCBUT0JOKDB4MDljNzViNjgsIDB4OTUw
ZDRhZTkpLAotICAgICAgICAgVE9CTigweDYyZjYzZGYyLCAweGI1OTMyYTdhKSwgVE9CTigweDI2
NTgyNTJlLCAweGRlMDk3OWFkKSwKLSAgICAgICAgIFRPQk4oMHgyYTE5MzQzZiwgMHhiNWU2OTYz
MSksIFRPQk4oMHg3MThjNzUwMSwgMHg1MjViNjY2YiksCi0gICAgICAgICBUT0JOKDB4MjZhNDJk
NjksIDB4ZWE0MGRjM2EpLCBUT0JOKDB4ZGM4NGFkMjIsIDB4YWVjYzAxOGYpLAotICAgICAgICAg
VE9CTigweDI1YzM2YzdiLCAweDMyNzBmMDRhKSwgVE9CTigweDQ2YmE2ZDQ3LCAweDUwZmE3MmVk
KSwKLSAgICAgICAgIFRPQk4oMHg2YzM3ZDFjNSwgMHg5M2U1OGE4ZSksIFRPQk4oMHhhMjM5NDcz
MSwgMHgxMjBjMDg4YyksCi0gICAgICAgICBUT0JOKDB4YzNiZTQyNjMsIDB4Y2I2ZTg2ZGEpLCBU
T0JOKDB4MmM0MTdkMzYsIDB4NzEyNmQwMzgpLAotICAgICAgICAgVE9CTigweDViNzBmOWM1LCAw
eDhiNmY4ZWZhKSwgVE9CTigweDY3MWEyZmFhLCAweDM3NzE4NTM2KSwKLSAgICAgICAgIFRPQk4o
MHhkM2NlZDNjNiwgMHhiNTM5YzkyYiksIFRPQk4oMHhlNTZmMWJkOSwgMHhhMzEyMDNjMiksCi0g
ICAgICAgICBUT0JOKDB4OGIwOTZlYzQsIDB4OWZmM2M4ZWIpLCBUT0JOKDB4MmRlYWU0MzIsIDB4
NDM0OTFjZWEpLAotICAgICAgICAgVE9CTigweDI0NjVjNmViLCAweDE3OTQzNzk0KSwgVE9CTigw
eDVkMjY3ZTY2LCAweDIwNTg2ODQzKSwKLSAgICAgICAgIFRPQk4oMHg5ZDNkMTE2ZCwgMHhiMDcx
NTlkMCksIFRPQk4oMHhhZTA3YTY3ZiwgMHhjMTg5NjIxMCksCi0gICAgICAgICBUT0JOKDB4OGZj
ODRkODcsIDB4YmI5NjE1NzkpLCBUT0JOKDB4MzAwMDllNDksIDB4MWMxZjhkZDYpLAotICAgICAg
ICAgVE9CTigweDhhOGNhZjIyLCAweGUzMTMyODE5KSwgVE9CTigweGNmZmExOTdjLCAweGYyM2Fi
NGZmKSwKLSAgICAgICAgIFRPQk4oMHg1ODEwM2E0NCwgMHgyMDVkZDY4NyksIFRPQk4oMHg1N2I3
OTZjMywgMHgwZGVkNjdhMiksCi0gICAgICAgICBUT0JOKDB4MGI5YzNhNmMsIDB4YTE3NzlhZDcp
LCBUT0JOKDB4YTMzY2ZlMmUsIDB4MzU3YzA5YzUpLAotICAgICAgICAgVE9CTigweDJlYTI5MzE1
LCAweDNkYjRhNTdlKSwgVE9CTigweDkxOTU5Njk1LCAweDhlYmViNTJlKSwKLSAgICAgICAgIFRP
Qk4oMHgxMThkYjlhNiwgMHhlNTQ2Yzg3OSksIFRPQk4oMHg4ZTk5NmRmNCwgMHg2Mjk1YzhkNiks
Ci0gICAgICAgICBUT0JOKDB4ZGQ5OTA0ODQsIDB4NTVlYzgwNmIpLCBUT0JOKDB4MjRmMjkxY2Es
IDB4MTY1YzEwMzUpLAotICAgICAgICAgVE9CTigweGNjYTUyM2JiLCAweDQ0MGUyMjI5KSwgVE9C
TigweDMyNDY3M2EyLCAweDczZWY0ZDA0KSwKLSAgICAgICAgIFRPQk4oMHhhZjNhZGYzNCwgMHgz
ZTExZWMzOSksIFRPQk4oMHg2MTM2ZDdmMSwgMHhkYzU5NjhkMyksCi0gICAgICAgICBUT0JOKDB4
N2E3YjI4OTksIDB4YjA1M2E5MjcpLCBUT0JOKDB4M2VhYTI2NjEsIDB4YWUwNjdlY2QpLAotICAg
ICAgICAgVE9CTigweDg1NDliOWM4LCAweDAyNzc5Y2Q5KSwgVE9CTigweDA2MWQ3OTQwLCAweGM1
MzM4NWVhKSwKLSAgICAgICAgIFRPQk4oMHgzZTBiYTg4MywgMHhmMDZkMThiZCksIFRPQk4oMHg0
YmE2ZGU1MywgMHhiMjcwMDg0MyksCi0gICAgICAgICBUT0JOKDB4Yjk2NmI2NjgsIDB4NTkxYTll
NGQpLCBUT0JOKDB4OTNmNjc1NjcsIDB4N2Y0ZmEwZWQpLAotICAgICAgICAgVE9CTigweDVhMDI3
MTFiLCAweDQzNDcyMzdiKSwgVE9CTigweGJjMDQxZTJmLCAweGU3OTQ2MDhlKSwKLSAgICAgICAg
IFRPQk4oMHg1NWFmMTBmNSwgMHg3MGY3M2Q4YyksIFRPQk4oMHhkMmQ0ZDRmNywgMHhiYjc1NjRm
NyksCi0gICAgICAgICBUT0JOKDB4ZDdkMjdhODksIDB4YjNlOTNjZTcpLCBUT0JOKDB4ZjdiNWE4
NzUsIDB4NWQzYTJjMWIpLAotICAgICAgICAgVE9CTigweGIyOWU2OGEwLCAweDI1NWIyMThhKSwg
VE9CTigweGI1MzM4MzdlLCAweDhhZjc2NzU0KSwKLSAgICAgICAgIFRPQk4oMHhkMWIwNWE3Mywg
MHg1NzlmYWIyZSksIFRPQk4oMHhiNDEwNTVhMSwgMHhlY2Q3NDM4NSksCi0gICAgICAgICBUT0JO
KDB4YjIzNjkyNzQsIDB4NDQ1ZTkxMTUpLCBUT0JOKDB4Mjk3MmE3YzQsIDB4ZjUyMDI3NGUpLAot
ICAgICAgICAgVE9CTigweDZjMDgzMzRlLCAweGY2NzhlNjhhKSwgVE9CTigweDRlNDE2MGYwLCAw
eDk5YjA1N2VkKSwKLSAgICAgICAgIFRPQk4oMHgzY2ZlMTFiOCwgMHg1MmNjYjY5YSksIFRPQk4o
MHgyZmQxODIzYSwgMHgyMWM4Zjc3MiksCi0gICAgICAgICBUT0JOKDB4ZGY3ZjA3MmYsIDB4MzI5
OGYwNTUpLCBUT0JOKDB4OGMwNTY2ZjksIDB4ZmVjNzRhNmUpLAotICAgICAgICAgVE9CTigweGU1
NDllMDE5LCAweDViYjRkMDQxKSwgVE9CTigweDdjMzkzMGJhLCAweDkyMDhkODUwKSwKLSAgICAg
ICAgIFRPQk4oMHhlMDcxNDFmYywgMHhhYWEyOTAyYiksIFRPQk4oMHg1MzlhZDc5OSwgMHhlNGY2
OWFkMyksCi0gICAgICAgICBUT0JOKDB4YTY0NTNmOTQsIDB4ODEzZjlmZmQpLCBUT0JOKDB4YzU4
ZDNjNDgsIDB4Mzc1YmMyZjcpLAotICAgICAgICAgVE9CTigweGIzMzI2ZmFkLCAweDVkYzY0ZTk2
KSwgVE9CTigweDNhYWZjYWE5LCAweGIyNDBlMzU0KSwKLSAgICAgICAgIFRPQk4oMHgxZDFiMDkw
MywgMHhhY2ExZTdhOSksIFRPQk4oMHg0Y2ViOTc2NywgMHgxMjExYjhhMCksCi0gICAgICAgICBU
T0JOKDB4ZWNhODNlNDksIDB4ZTMyYTg1OGUpLCBUT0JOKDB4NGMzMjg5MmUsIDB4YWU5MDdiYWQp
LAotICAgICAgICAgVE9CTigweGQ1YjQyYWI2LCAweDJlYjliNDk0KSwgVE9CTigweDdmZGUzZWUy
LCAweDFlYWJhZTFiKSwKLSAgICAgICAgIFRPQk4oMHgxM2I1YWIwOSwgMHhjYWY1NDk1NyksIFRP
Qk4oMHhiZmIwMjhiZSwgMHhlNWY1ZDVkNSksCi0gICAgICAgICBUT0JOKDB4OTI4YTA2NTAsIDB4
MjAwM2UyYzApLCBUT0JOKDB4OTA3OTNhYWMsIDB4Njc0NzY4NDMpLAotICAgICAgICAgVE9CTigw
eDVlOTQyZTc5LCAweGM4MTcxMGEwKSwgVE9CTigweDU1N2U0YTM2LCAweDI3Y2NhZGQ0KSwKLSAg
ICAgICAgIFRPQk4oMHg3MmEyYmM1NiwgMHg0YmNmNmQwYyksIFRPQk4oMHgwOWVlNWY0MywgMHgy
NmQ3YjgwYyksCi0gICAgICAgICBUT0JOKDB4NmI3MGRiZTksIDB4ZDQyOTJmMTkpLCBUT0JOKDB4
NTZmNzRjMjYsIDB4NjNmMTZiMTgpLAotICAgICAgICAgVE9CTigweGMyM2RiMGY3LCAweDM1ZmJi
NDJhKSwgVE9CTigweGI2MDZiZGY2LCAweDZhZTEwMDQwKSwKLSAgICAgICAgIFRPQk4oMHgxZWIx
NWQ0ZCwgMHgwNDQ1NzNhYyksIFRPQk4oMHg3ZGMzY2Y4NiwgMHg1NTZiMGJhNCksCi0gICAgICAg
ICBUT0JOKDB4OTdhZjlhMzMsIDB4YzYwZGY2ZjcpLCBUT0JOKDB4MGIxZWY4NWMsIDB4YTcxNmNl
OGMpLAotICAgICAgICAgVE9CTigweDI5MjJmODg0LCAweGM5Njk1OGJlKSwgVE9CTigweDdjMzJm
YTk0LCAweDM1NjkwOTYzKSwKLSAgICAgICAgIFRPQk4oMHgyZDdmNjY3YywgMHhlYWEwMDA2MSks
IFRPQk4oMHhlYWFmN2MxNywgMHgzNTQ3MzY1YyksCi0gICAgICAgICBUT0JOKDB4MWViNGRlNDYs
IDB4ODcwMzJkNTgpLCBUT0JOKDB4YzU0ZjNkODMsIDB4NWUyYzc5ZTApLAotICAgICAgICAgVE9C
TigweDA3ODE4ZGY0LCAweDVkMDRlZjIzKSwgVE9CTigweDU1ZmFhOWM4LCAweDY3M2Q0MWI0KSwK
LSAgICAgICAgIFRPQk4oMHhjZWQ2NGY2ZiwgMHg4OWI5NTM1NSksIFRPQk4oMHg0ODYwZDJlYSwg
MHhiNzQxNWM4NCksCi0gICAgICAgICBUT0JOKDB4NWZkYjliZDIsIDB4MDUwZWJhZDMpLCBUT0JO
KDB4ZGI1M2UwY2MsIDB4NjY4NWE1YmYpLAotICAgICAgICAgVE9CTigweGI4MzBjMDMxLCAweDlm
ZWI2NTkzKSwgVE9CTigweGRkODdmMzEwLCAweDZhY2NmZjE3KSwKLSAgICAgICAgIFRPQk4oMHgy
MzAzZWJhYiwgMHg5ZjU1NWMxMCksIFRPQk4oMHg5NDYwMzY5NSwgMHgyODdlNzA2NSksCi0gICAg
ICAgICBUT0JOKDB4Zjg4MzExYzMsIDB4MmU4MzM1OGMpLCBUT0JOKDB4NTA4ZGQ5YjQsIDB4ZWVm
YjAxNzgpLAotICAgICAgICAgVE9CTigweDdjYTIzNzA2LCAweDJkYmE4NjUyKSwgVE9CTigweDYy
YWFjNWEzLCAweDAwNDdhYmU1KSwKLSAgICAgICAgIFRPQk4oMHg5YTYxZDJhMCwgMHg4YjFlYTdi
MyksIFRPQk4oMHhkNDk1YWI2MywgMHhhZThiMTQ4NSksCi0gICAgICAgICBUT0JOKDB4Mzg3NDBm
ODQsIDB4ODcwNTJmOTkpLCBUT0JOKDB4MTc4ZWJlNWIsIDB4YjI5NzRlZWEpLAotICAgICAgICAg
VE9CTigweDAzMGJiY2NhLCAweDViMzZkMTdmKSwgVE9CTigweGI1ZTRjY2UzLCAweGFhZjg2ZWVh
KSwKLSAgICAgICAgIFRPQk4oMHhiNTFhMDIyMCwgMHg2OGY4ZTllMCksIFRPQk4oMHhhNDM0ODc5
NiwgMHgwOWViM2U3NSksCi0gICAgICAgICBUT0JOKDB4YmU1OTIzMDksIDB4ZWVmMWE3NTIpLCBU
T0JOKDB4NWQ3MTYyZDcsIDB4NmYyYWExZWQpLAotICAgICAgICAgVE9CTigweGFlYmZiNWVkLCAw
eDBmMDA3ZGQyKSwgVE9CTigweDI1NWUxNGIyLCAweGM4OWVkZDIyKSwKLSAgICAgICAgIFRPQk4o
MHhiYTg1ZTA3MiwgMHgwMzAzYjY5NyksIFRPQk4oMHhjNWQxN2UyNSwgMHhmMDU3MjBmZiksCi0g
ICAgICAgICBUT0JOKDB4MDJiNThkNmUsIDB4NTEyOGViYjYpLCBUT0JOKDB4MmM4MDI0MmQsIDB4
ZDc1NGUxMTMpLAotICAgICAgICAgVE9CTigweDkxOWZjYTVmLCAweGFiZmFlMWNhKSwgVE9CTigw
eDkzN2FmYWFjLCAweDFhMjE0NTliKSwKLSAgICAgICAgIFRPQk4oMHg5ZTBjYTkxYywgMHgxZjY2
YTRkMiksIFRPQk4oMHgxOTRjYzdmMywgMHgyM2VjMTMzMSksCi0gICAgICAgICBUT0JOKDB4YWQy
NTE0M2EsIDB4OGFhMTE2OTApLCBUT0JOKDB4YmU0MGFkOGQsIDB4MDliNTllMDgpLAotICAgICAg
ICAgVE9CTigweDM3ZDYwZDliLCAweGU3NTA4NjBhKSwgVE9CTigweDZjNTNiMDA4LCAweGM2YmY0
MzRjKSwKLSAgICAgICAgIFRPQk4oMHhiNTcyNDE1ZCwgMHgxMzU2ZWI4MCksIFRPQk4oMHhiOGJm
OWRhMywgMHg5NTc4ZGVkOCksCi0gICAgICAgICBUT0JOKDB4MjI2NThlMzYsIDB4NWU4ZmIzOGIp
LCBUT0JOKDB4OWI3MGNlMjIsIDB4NWFmOGNiMjIpLAotICAgICAgICAgVE9CTigweDdjMDAwMThh
LCAweDgyOWE4MTgwKSwgVE9CTigweDg0MzI5ZjkzLCAweGI4MWVkMjk1KSwKLSAgICAgICAgIFRP
Qk4oMHg3YzM0M2VhMiwgMHg1ZjNjZWE4MyksIFRPQk4oMHgzOGY4NjU1ZiwgMHg2NzU4NjUzNiks
Ci0gICAgICAgICBUT0JOKDB4YTY2MWEwZDAsIDB4MWQzZWM1MTcpLCBUT0JOKDB4OTg3NDQ2NTIs
IDB4NTEyMzIxYWUpLAotICAgICAgICAgVE9CTigweDA4NGNhNTkxLCAweGVjYTkyNTk4KSwgVE9C
TigweGE5YmI5ZGM5LCAweDFkY2IzZmViKSwKLSAgICAgICAgIFRPQk4oMHgxNGM1NDM1NSwgMHg3
OGI0YzI0MCksIFRPQk4oMHg1ZWQ2MmEzYiwgMHg2MTBjYWZkYyksCi0gICAgICAgICBUT0JOKDB4
MDc1MTJmMzcsIDB4MWIzODg0NmIpLCBUT0JOKDB4NTcxYmI3MGEsIDB4YjBlMzgxNjEpLAotICAg
ICAgICAgVE9CTigweGI1NTZiOTViLCAweDJkYTcwNWQyKSwgVE9CTigweDNlZjhhZGE2LCAweGIx
YTA4Zjk4KSwKLSAgICAgICAgIFRPQk4oMHg4NTMwMmNhNywgMHhkZGVjZmJlNSksIFRPQk4oMHgw
ZTUzMDU3MywgMHg5NDMxMDVjZCksCi0gICAgICAgICBUT0JOKDB4NjA1NTRkNTUsIDB4MjFhOTI1
NWQpLCBUT0JOKDB4NjNhMzJmYTEsIDB4ZjJmMzgwMmEpLAotICAgICAgICAgVE9CTigweDM1Yzhj
NWIwLCAweGNkNDc3ODc1KSwgVE9CTigweDk3ZjQ1OGVhLCAweDZhZDQyZGExKSwKLSAgICAgICAg
IFRPQk4oMHg4MzJkNzA4MCwgMHhlYjZiMjQyZCksIFRPQk4oMHhkMzBiZDAyMywgMHgzYjcxZTI0
NiksCi0gICAgICAgICBUT0JOKDB4NzAyNzk5MWIsIDB4YmUzMTEzOWQpLCBUT0JOKDB4Njg3OTdl
OTEsIDB4NDYyZTRlNTMpLAotICAgICAgICAgVE9CTigweDQyM2ZlMjBhLCAweDZiNGUxODVhKSwg
VE9CTigweDgyZjJjNjdlLCAweDQyZDliNzA3KSwKLSAgICAgICAgIFRPQk4oMHgyNWM4MTc2OCwg
MHg0Y2Y3ODExYiksIFRPQk4oMHhiZDUzMDA1ZSwgMHgwNDViYjk1ZCl9LAotICAgICAgICB7VE9C
TigweGU1ZjY0OWJlLCAweDlkOGU2OGZkKSwgVE9CTigweGRiMGYwNTMzLCAweDFiMDQ0MzIwKSwK
LSAgICAgICAgIFRPQk4oMHhmNmZkZTliMywgMHhlMGMzMzM5OCksIFRPQk4oMHg5MmY0MjA5Yiwg
MHg2NmM4Y2ZhZSksCi0gICAgICAgICBUT0JOKDB4ZTlkMWFmY2MsIDB4MWE3MzlkNGIpLCBUT0JO
KDB4MDlhZWE3NWYsIDB4YTI4YWI4ZGUpLAotICAgICAgICAgVE9CTigweDE0Mzc1ZmI1LCAweGVh
YzZmMWQwKSwgVE9CTigweDY0MjBiNTYwLCAweDcwOGY3YWE1KSwKLSAgICAgICAgIFRPQk4oMHg5
ZWFlNDk5YywgMHg2MjU0ZGM0MSksIFRPQk4oMHg3ZTI5MzkyNCwgMHg3YTgzN2U3ZSksCi0gICAg
ICAgICBUT0JOKDB4NzRhZWMwOGMsIDB4MDkwNTI0YTcpLCBUT0JOKDB4ZjgyYjkyMTksIDB4OGQ2
ZjU1ZjIpLAotICAgICAgICAgVE9CTigweDQ5M2M5NjJlLCAweDE0MDJjZWM1KSwgVE9CTigweDlm
MTdjYTE3LCAweGZhMmYzMGU3KSwKLSAgICAgICAgIFRPQk4oMHhiY2Q3ODNlOCwgMHhlOWI4Nzlj
YiksIFRPQk4oMHhlYTNkOGMxNCwgMHg1YTZmMTQ1ZiksCi0gICAgICAgICBUT0JOKDB4ZGVkZTE1
ZTcsIDB4NWUwZGVlNmUpLCBUT0JOKDB4NzRmMjQ4NzIsIDB4ZGM2MjhhYTIpLAotICAgICAgICAg
VE9CTigweGQzZTljNGZlLCAweDc4NjFiYjkzKSwgVE9CTigweDU2ZDQ4MjJhLCAweDYxODdiMmUw
KSwKLSAgICAgICAgIFRPQk4oMHhiNjY0MTdjZiwgMHhjNTk4MjZmOSksIFRPQk4oMHhjYTI2MDk2
OSwgMHgyNDA4MTY5ZSksCi0gICAgICAgICBUT0JOKDB4ZWRmNjlkMDYsIDB4Yzc5ZWY4ODUpLCBU
T0JOKDB4MDAwMzFmOGEsIDB4ZGM3ZDEzOGYpLAotICAgICAgICAgVE9CTigweDEwM2M0NmU2LCAw
eDBlYmNmNzI2KSwgVE9CTigweDQ0ODJiODMxLCAweDYyMzE0NzBlKSwKLSAgICAgICAgIFRPQk4o
MHg2ZjZkZmFjYSwgMHg0ODdjMjEwOSksIFRPQk4oMHgyZTBhY2U5NywgMHg2MmU2NjZlZiksCi0g
ICAgICAgICBUT0JOKDB4MzI0NmE5ZDMsIDB4MWY4ZDFmNDIpLCBUT0JOKDB4MWIxZTgzZjEsIDB4
NTc0OTQ0ZDIpLAotICAgICAgICAgVE9CTigweDEzZGZhNjNhLCAweGE1N2YzMzRiKSwgVE9CTigw
eDBjZjhkYWVkLCAweDlmMDI1ZDgxKSwKLSAgICAgICAgIFRPQk4oMHgzMGQ3OGVhOCwgMHgwMGVl
MTFjMSksIFRPQk4oMHhlYjA1M2NkNCwgMHhiNWUzZGQ3NSksCi0gICAgICAgICBUT0JOKDB4OWI2
NWIxM2UsIDB4ZDU4YzQzYzUpLCBUT0JOKDB4YzNhZDQ5YmQsIDB4YmQxNTE2NjMpLAotICAgICAg
ICAgVE9CTigweDk5ZmQ4ZTQxLCAweGI2NDI3OTkwKSwgVE9CTigweDEyY2YxNWJkLCAweDcwN2Vh
ZTFlKSwKLSAgICAgICAgIFRPQk4oMHgyOWFkNGYxYiwgMHgxYWFiYjcxZSksIFRPQk4oMHg1MTQz
ZTc0ZCwgMHgwNzU0NWQwZSksCi0gICAgICAgICBUT0JOKDB4MzAyNjYzMzYsIDB4Yzg4YmRlZTEp
LCBUT0JOKDB4MjVmMjkzMDYsIDB4NTg3Njc2N2MpLAotICAgICAgICAgVE9CTigweDljMDc4NTcx
LCAweGM2NzMxOTk2KSwgVE9CTigweGM4ODY5MGIyLCAweGVkNTUyOTUxKSwKLSAgICAgICAgIFRP
Qk4oMHgyNzRmMmMyZCwgMHg4NTI3MDViNCksIFRPQk4oMHhiMGJmOGQ0NCwgMHg0ZTA5NTUyZCks
Ci0gICAgICAgICBUT0JOKDB4NzYyOGJlZWIsIDB4OTg2NTc1ZDEpLCBUT0JOKDB4NDA3YmUyMzgs
IDB4N2Y4NjQ2NTEpLAotICAgICAgICAgVE9CTigweDBlNWUzMDQ5LCAweGE2MzlmYzZiKSwgVE9C
TigweGU3NWMzNWQ5LCAweDg2MDAzNjI1KSwKLSAgICAgICAgIFRPQk4oMHgwY2YzNWJkOCwgMHg1
ZGNjMTY0NiksIFRPQk4oMHg4YmNhY2VkMiwgMHg2YzI2MjczYSksCi0gICAgICAgICBUT0JOKDB4
ZTIyZWNmMWQsIDB4YjU1MzY3NDIpLCBUT0JOKDB4MDEzZGQ4OTcsIDB4MWE5ZTA2OGIpLAotICAg
ICAgICAgVE9CTigweDE3ZjQxMWNiLCAweDhhNzkwOWM1KSwgVE9CTigweDU3NTdhYzk4LCAweDg2
MWRkNTA2KSwKLSAgICAgICAgIFRPQk4oMHg4NWRlMWYwZCwgMHgxZTkzNWFiYiksIFRPQk4oMHhk
ZWZkMTBiNCwgMHgxNTRkZTM3YSksCi0gICAgICAgICBUT0JOKDB4YjhkOWUzOTIsIDB4MzY5Y2Vi
YjUpLCBUT0JOKDB4NTRkNWVmOWIsIDB4NzYxMzI0YmUpLAotICAgICAgICAgVE9CTigweDRkNjM0
MWJhLCAweDc0ZjE3ZTI2KSwgVE9CTigweGMwYTBlM2M4LCAweDc4YzFkZGU0KSwKLSAgICAgICAg
IFRPQk4oMHhhNmQ3NzU4MSwgMHg4N2Q5MThmZCksIFRPQk4oMHg2Njg3NjAxNSwgMHgwMmNhM2Ex
MyksCi0gICAgICAgICBUT0JOKDB4YzczMTNlOWMsIDB4ZjM2NjU4ZjApLCBUT0JOKDB4YzQzM2Vm
MWMsIDB4NzFmODA1N2UpLAotICAgICAgICAgVE9CTigweDg1MzI2MjQ2LCAweDFiNmE4MzVhKSwg
VE9CTigweGM4ZjA1Mzk4LCAweDdjODYzOTRjKSwKLSAgICAgICAgIFRPQk4oMHhmZjM5OGNkZiwg
MHhlOTgzYzRhMSksIFRPQk4oMHhiZjVlODE2MiwgMHgwM2I3YjkzMSksCi0gICAgICAgICBUT0JO
KDB4OTMxOTNjNDYsIDB4YjdiOTA0NWIpLCBUT0JOKDB4MWU0ZWJmNWQsIDB4YTRhNmU0NmIpLAot
ICAgICAgICAgVE9CTigweGY5OTQyYTYwLCAweDQzYTI0ZmU3KSwgVE9CTigweDI5YzExOTFlLCAw
eGZmYjM0OTJiKSwKLSAgICAgICAgIFRPQk4oMHg5ZjY2MjQ0OSwgMHg5MDJmZGUwNSksIFRPQk4o
MHhjNzkyYTdhYywgMHg2NzEzYzMyZCksCi0gICAgICAgICBUT0JOKDB4MmZkODhhZDgsIDB4Yjcz
Nzk4MmMpLCBUT0JOKDB4N2UzYTAzMTksIDB4YTIxZTYwZTMpLAotICAgICAgICAgVE9CTigweDA5
YjBkZTQ0LCAweDczODM1OTFhKSwgVE9CTigweDZkZjE0MWVlLCAweDgzMTBhNDU2KSwKLSAgICAg
ICAgIFRPQk4oMHhhZWMxYTAzOSwgMHhlNmQ2ZjQ3MSksIFRPQk4oMHgxNGIyYmEwZiwgMHgxMTk4
ZDEyZSksCi0gICAgICAgICBUT0JOKDB4ZWJjMWExNjAsIDB4M2FlZWU1YWMpLCBUT0JOKDB4NDAx
ZjQ4MzYsIDB4ZTBiOTY0Y2UpLAotICAgICAgICAgVE9CTigweDJlZTQzNzk2LCAweDRmZDAzZjY2
KSwgVE9CTigweDNmZGI0ZTQ5LCAweGRkOGYzZjEyKSwKLSAgICAgICAgIFRPQk4oMHg2ZWYyNjdm
NiwgMHgyOTM4MGYxOCksIFRPQk4oMHgzZThlOTY3MCwgMHg4ZGE2NGQxNiksCi0gICAgICAgICBU
T0JOKDB4YmMxOTE4MGMsIDB4MjA3Njc0ZjEpLCBUT0JOKDB4MTEyZTA5YTcsIDB4MzNhZThmZGIp
LAotICAgICAgICAgVE9CTigweDk5NjY3NTU0LCAweDZhYWViNzFlKSwgVE9CTigweDc5NDMyYWYx
LCAweGUxMDFiMWM3KSwKLSAgICAgICAgIFRPQk4oMHhkNWViNTU4ZiwgMHhkZTJkZGVjNiksIFRP
Qk4oMHg4MTM5MmQxZiwgMHg1MzU3NzUzZiksCi0gICAgICAgICBUT0JOKDB4YTdhNzZiOTcsIDB4
M2FlMTE1OGEpLCBUT0JOKDB4NDE2ZmJiZmYsIDB4NGE4OTk5OTEpLAotICAgICAgICAgVE9CTigw
eDllNjVmZGZkLCAweDBkNGE5ZGNmKSwgVE9CTigweDdiYzI5ZTQ4LCAweDk0NGRkZjEyKSwKLSAg
ICAgICAgIFRPQk4oMHhiYzFhOTJkOSwgMHgzYzg1Njg2NiksIFRPQk4oMHgyNzNjNjkwNSwgMHg2
ZTk4ZGZlMiksCi0gICAgICAgICBUT0JOKDB4NjlmY2U0MTgsIDB4Y2RmYWE2YjgpLCBUT0JOKDB4
NjA2YmQ4MjMsIDB4NTA2MWM2OWYpLAotICAgICAgICAgVE9CTigweDQyZDQ5NWEwLCAweDZhZjc1
ZTI3KSwgVE9CTigweDhlZDNkNTA1LCAweDZkODczYTFmKSwKLSAgICAgICAgIFRPQk4oMHhhZjU1
Mjg0MSwgMHg2YWIyNWI2YSksIFRPQk4oMHhjNmMwZmZjNywgMHgyYjFhNDUyMyksCi0gICAgICAg
ICBUT0JOKDB4YWIxODgyN2IsIDB4MjFjOTllMDMpLCBUT0JOKDB4MDYwZTg2NDgsIDB4OTAzNDY5
MWIpLAotICAgICAgICAgVE9CTigweDUyMDdmOTBmLCAweDkzYzdmMzk4KSwgVE9CTigweDlmNGE5
NmNiLCAweDgyZjhkMTBiKSwKLSAgICAgICAgIFRPQk4oMHhkZDcxY2Q3OSwgMHgzYWQwZjllMyks
IFRPQk4oMHg4NGY0MzVkMiwgMHhmYzNhNTRmNSksCi0gICAgICAgICBUT0JOKDB4NGIwM2M1NWIs
IDB4OGUzMzc4N2YpLCBUT0JOKDB4ZWY0MmY5NzUsIDB4YTYzODQ2NzMpLAotICAgICAgICAgVE9C
TigweGZmNzMwNGY3LCAweDUwNTFiOWYwKSwgVE9CTigweDE4YWNhMWRjLCAweDc0MWM4N2MyKSwK
LSAgICAgICAgIFRPQk4oMHg1NmYxMjBhNywgMHgyZDRiZmU4MCksIFRPQk4oMHhmZDgyM2IzZCwg
MHgwNTNlNzMyYyksCi0gICAgICAgICBUT0JOKDB4MTFiY2NmZTQsIDB4NzUzN2NhMTYpLCBUT0JO
KDB4ZGY2YzljNzQsIDB4MWI1YTk5NmIpLAotICAgICAgICAgVE9CTigweGVlNzMzMmM3LCAweDkw
NGZjM2ZhKSwgVE9CTigweDE0YTIzZjQ1LCAweGM3ZTM2MzZhKSwKLSAgICAgICAgIFRPQk4oMHhj
Mzg2NTljMywgMHhmMDkxZDlhYSksIFRPQk4oMHg0YTk5NWU1ZCwgMHhiMTJkODU0MCksCi0gICAg
ICAgICBUT0JOKDB4MjBhNTNiZWMsIDB4ZjNhNTU5OGEpLCBUT0JOKDB4NTY1MzRiMTcsIDB4YjFl
YWE5OTUpLAotICAgICAgICAgVE9CTigweDllZDNkY2E0LCAweGJmMDRlMDNjKSwgVE9CTigweDcx
NmM1NjNhLCAweGQ4ZDU2MjY4KSwKLSAgICAgICAgIFRPQk4oMHgyN2JhNzdhNCwgMHgxZDYxNzhl
NyksIFRPQk4oMHhlNGM4MGM0MCwgMHg2OGExZmY4ZSksCi0gICAgICAgICBUT0JOKDB4NzUwMTEw
OTksIDB4MGExM2Y2M2QpLCBUT0JOKDB4N2JmMzM1MjEsIDB4YTYxZDQ2ZjMpLAotICAgICAgICAg
VE9CTigweDBhZmYyMThlLCAweDEwYjM2NWJiKSwgVE9CTigweDgxMDIxODA0LCAweDBmZDdlYTc1
KSwKLSAgICAgICAgIFRPQk4oMHgwNWEzZmQ4YSwgMHhhNGIzYTkyNSksIFRPQk4oMHhiODI5ZTc1
ZiwgMHg5YjNkYjRlNiksCi0gICAgICAgICBUT0JOKDB4NmJkYzc1YTUsIDB4NGQ1M2U1ZmIpLCBU
T0JOKDB4MDRhNWRjMDIsIDB4ZDUyNzE3ZTMpLAotICAgICAgICAgVE9CTigweDg2YWY1MDJmLCAw
eGU5YTQyZWMyKSwgVE9CTigweDg4NjdlOGZiLCAweDI2MzBlMzgyKSwKLSAgICAgICAgIFRPQk4o
MHhiZjg0NWM2ZSwgMHhiZWM5ODg5YiksIFRPQk4oMHg1NGY0OTFmMiwgMHhjYjQ3Yzk4ZCksCi0g
ICAgICAgICBUT0JOKDB4YTMwOTFmYmEsIDB4NzkwYzJhMTIpLCBUT0JOKDB4ZDdmNmZkNzgsIDB4
YzIwZjcwOGIpLAotICAgICAgICAgVE9CTigweGE1NjlhYzMwLCAweGFjZGU1ZTE3KSwgVE9CTigw
eGQwZjk5NmQwLCAweDY4NTJiNGQ3KSwKLSAgICAgICAgIFRPQk4oMHhlNTFkNGJiNSwgMHg0NjA5
YWU1NCksIFRPQk4oMHgzZmEzN2QxNywgMHgwZGFlZDA2MSksCi0gICAgICAgICBUT0JOKDB4NjJh
ODg2ODQsIDB4MzRiOGZiNDEpLCBUT0JOKDB4OTlhMmFjYmQsIDB4OWVmYjY0ZjEpLAotICAgICAg
ICAgVE9CTigweGI3NWMxYTVlLCAweDY0NDhlMWYyKSwgVE9CTigweGZhOTk5NTFhLCAweDQyYjVh
MDY5KSwKLSAgICAgICAgIFRPQk4oMHg2ZDk1NmU4OSwgMHgyZjNiMjZlNyksIFRPQk4oMHhmNDcw
OTg2MCwgMHhkYTg3NTI0NyksCi0gICAgICAgICBUT0JOKDB4M2FkMTUxNzksIDB4MjQ4MmRkYTMp
LCBUT0JOKDB4ZDY0MTEwZTMsIDB4MDE3ZDgyZjApLAotICAgICAgICAgVE9CTigweDE0OTI4ZDJj
LCAweGZhZDQxNGU0KSwgVE9CTigweDJiMTU1ZjU4LCAweDJlZDAyYjI0KSwKLSAgICAgICAgIFRP
Qk4oMHg0ODFhMTQxYiwgMHhjYjgyMWJmMSksIFRPQk4oMHgxMmUzYzc3MCwgMHg0ZjgxZjVkYSks
Ci0gICAgICAgICBUT0JOKDB4ZTQ5YzVkZTUsIDB4OWZmZjgzODEpLCBUT0JOKDB4MTEwNTMyMzIs
IDB4NWJiZWM4OTQpLAotICAgICAgICAgVE9CTigweGEwZDA1MWNjLCAweDQ1NGQ4OGM0KSwgVE9C
TigweDRmNmRiODljLCAweDFmOGU1MzFiKSwKLSAgICAgICAgIFRPQk4oMHgzNGZlM2ZkNiwgMHhj
YTU2M2E0NCksIFRPQk4oMHg3ZjVjMjIxNSwgMHg1OGRhOGFiOSksCi0gICAgICAgICBUT0JOKDB4
ODQ0NTAxNmQsIDB4OTQ3NGYwYTEpLCBUT0JOKDB4MTdkMzRkNjEsIDB4Y2I3ZDhhMGEpLAotICAg
ICAgICAgVE9CTigweDhlOWQzOTEwLCAweDFjNDc0MDE5KSwgVE9CTigweGNhZmYyNjI5LCAweGQ1
MmNlZWZiKSwKLSAgICAgICAgIFRPQk4oMHhmOWNmM2UzMiwgMHhjMTYyMmMyYiksIFRPQk4oMHhk
NGI5NWUzYywgMHhlOTA3MWEwNSksCi0gICAgICAgICBUT0JOKDB4ZmJiY2E2MWYsIDB4MTU5NDQz
OGMpLCBUT0JOKDB4MWViNmU2YTYsIDB4MDRhYWRlZGYpLAotICAgICAgICAgVE9CTigweDg1MzAy
N2Y0LCAweDY4ZTE0OTQwKSwgVE9CTigweDIyMWQzMjJhLCAweGRmYWJkYTljKSwKLSAgICAgICAg
IFRPQk4oMHhlZDhlYTlmNiwgMHhiN2NiMTc5YSksIFRPQk4oMHhkYzdiNzY0ZCwgMHhiNzkzNGRj
YyksCi0gICAgICAgICBUT0JOKDB4ZmNiMTM5NDAsIDB4NWUwOTE4MGQpLCBUT0JOKDB4NjYyOWE2
YmYsIDB4YjQ3ZGMyZGQpLAotICAgICAgICAgVE9CTigweGJmYzU1ZTRlLCAweDlmNWE5MTVlKSwg
VE9CTigweGIxZGI5ZDM3LCAweDYyMDQ0NDFlKSwKLSAgICAgICAgIFRPQk4oMHhmODJkNjhjZiwg
MHg5MzBjNWY1MyksIFRPQk4oMHgxN2QzYTE0MiwgMHhjYmI2MDViMSksCi0gICAgICAgICBUT0JO
KDB4ZGQ1OTQ0ZWEsIDB4MzA4NzgwZjIpLCBUT0JOKDB4ZGM4ZGU3NjEsIDB4Mzg0NWY1ZTQpLAot
ICAgICAgICAgVE9CTigweDZiZWFiYTdkLCAweDc2MjRkN2EzKSwgVE9CTigweDFlNzA5YWZkLCAw
eDMwNGRmMTFlKSwKLSAgICAgICAgIFRPQk4oMHg5NTM2NDM3NiwgMHgwMjE3MDQ1NiksIFRPQk4o
MHhiZjIwNGIzYSwgMHhjOGY5NGI2NCksCi0gICAgICAgICBUT0JOKDB4NGU1M2FmN2MsIDB4NTY4
MGNhNjgpLCBUT0JOKDB4MDUyNjA3NGEsIDB4ZTBjNjc1NzQpLAotICAgICAgICAgVE9CTigweDk1
ZDhjZWY4LCAweGVjZDkyYWY2KSwgVE9CTigweGU2YjlmYTdhLCAweDZjZDE3NDVhKSwKLSAgICAg
ICAgIFRPQk4oMHgzZDU0NmQzZCwgMHhhMzI1YzNlNCksIFRPQk4oMHgxZjU3NjkxZCwgMHg5YWU5
M2FhZSksCi0gICAgICAgICBUT0JOKDB4ZTg5MWYzZmUsIDB4OWQyZTFhMzMpLCBUT0JOKDB4ZDQz
MDA5M2YsIDB4YWMwNjNkMzUpLAotICAgICAgICAgVE9CTigweGVkYTU5YjEyLCAweDU1MTNhMzI3
KSwgVE9CTigweGRjMjEzNGYzLCAweDU1MzZmMThmKSwKLSAgICAgICAgIFRPQk4oMHhhYTUxZmUy
YywgMHg1YzIxMDI4NiksIFRPQk4oMHgzZjY4YWFlZSwgMHgxY2FiNjU4YyksCi0gICAgICAgICBU
T0JOKDB4NWEyM2EwMGIsIDB4ZjkzNTcyOTIpLCBUT0JOKDB4OWE2MjZmMzksIDB4N2VmZGFiZWQp
LAotICAgICAgICAgVE9CTigweGZlMmIzYmYzLCAweDE5OWQ3OGUzKSwgVE9CTigweGI3YTJhZjc3
LCAweDcxYmJjMzQ1KSwKLSAgICAgICAgIFRPQk4oMHgzZDE5ODI3YSwgMHgxZTU5ODAyYyksIFRP
Qk4oMHg4MjNiYmMxNSwgMHhiNDg3YTUxYyksCi0gICAgICAgICBUT0JOKDB4ODU2MTM5ZjIsIDB4
OTlkMGE0MjIpLCBUT0JOKDB4OWFjM2RmNjUsIDB4ZjQ1NmM2ZmIpLAotICAgICAgICAgVE9CTigw
eGFkZGY2NWM2LCAweDcwMWY4YmQ2KSwgVE9CTigweDE0OWYzMjFlLCAweDM3NThkZjg3KSwKLSAg
ICAgICAgIFRPQk4oMHhiMWVjZjcxNCwgMHg3MjFiN2ViYSksIFRPQk4oMHhlMTdkZjA5OCwgMHgz
MWEzMzEyYSksCi0gICAgICAgICBUT0JOKDB4ZGIyZmQ2ZWMsIDB4ZDVjNGQ1ODEpLCBUT0JOKDB4
ZmQwMjk5NmYsIDB4OGZjZWExYjMpLAotICAgICAgICAgVE9CTigweGUyOWZhNjNlLCAweDc4ODJm
MTRmKSwgVE9CTigweGM5ZjZkYzM1LCAweDA3YzZjYWRjKSwKLSAgICAgICAgIFRPQk4oMHg0NmYy
MmQ2ZiwgMHhiODgyYmVkMCksIFRPQk4oMHgxYTQ1NzU1YiwgMHhkMTE4ZTUyYyksCi0gICAgICAg
ICBUT0JOKDB4OWYyYzdjMjcsIDB4N2M0NjA4Y2YpLCBUT0JOKDB4N2NjYmRmMzIsIDB4NTY4MDEy
YzIpLAotICAgICAgICAgVE9CTigweGZjYjBhZWRkLCAweDYxNzI5YjBlKSwgVE9CTigweDdjYTJj
YTllLCAweGY3ZDc1ZGJmKSwKLSAgICAgICAgIFRPQk4oMHhmNThmZWNiMSwgMHg2ZjY0MGY2Miks
IFRPQk4oMHhlMjc0YjkyYiwgMHgzOWY1MTk0NiksCi0gICAgICAgICBUT0JOKDB4N2Y0ZGZjMDQs
IDB4NjI4OGFmNDQpLCBUT0JOKDB4MGE5MWYzMmEsIDB4ZWFjMzI5ZTUpLAotICAgICAgICAgVE9C
TigweDQzYWQyNzRiLCAweGQ2YWFiYTMxKSwgVE9CTigweDcxOWExNjQwLCAweDBmNjg4NGY5KSwK
LSAgICAgICAgIFRPQk4oMHg2ODVkMjlmNiwgMHhkYWY5MWUyMCksIFRPQk4oMHg1ZWMxY2MzMywg
MHgyN2U0OWQ1MiksCi0gICAgICAgICBUT0JOKDB4MzhmNGRlOTYsIDB4M2I1NGEwNTkpLCBUT0JO
KDB4MGUwMDE1ZTUsIDB4ZWZiY2ZkYjMpLAotICAgICAgICAgVE9CTigweDE3N2QyM2Q5LCAweDRk
YmI4ZGE2KSwgVE9CTigweDk4NzI0YWEyLCAweDk3YTYxN2FkKSwKLSAgICAgICAgIFRPQk4oMHgz
MGYwODg1YiwgMHhmZGI2NTU4ZSksIFRPQk4oMHhmOWY3YTI4YSwgMHhjNzg5OWE5NiksCi0gICAg
ICAgICBUT0JOKDB4ZDJhZThhYzgsIDB4ODcyZGMxMTIpLCBUT0JOKDB4ZmEwNjQyY2EsIDB4NzNj
M2M0NTkpLAotICAgICAgICAgVE9CTigweDE1Mjk2OTgxLCAweGU3ZGZjOGQ2KSwgVE9CTigweDY3
Y2Q0NDUwLCAweDFmYjViOTRhKSwKLSAgICAgICAgIFRPQk4oMHgwZWM3MWNmMSwgMHgwZWRkZmQz
NyksIFRPQk4oMHhjN2U1ZWViMywgMHg5YThlZGRjNyksCi0gICAgICAgICBUT0JOKDB4MDJhYzhl
M2QsIDB4ODFkOTUwMjgpLCBUT0JOKDB4MDA4OGYxNzIsIDB4NzBiMGUzNWQpLAotICAgICAgICAg
VE9CTigweGVjMDQxZmFiLCAweGUxODgxZmUzKSwgVE9CTigweDYyY2Y3MWI4LCAweGQ5OWU3ZmFh
KSwKLSAgICAgICAgIFRPQk4oMHg1MDQzZGVhNywgMHhlMGYyMjJjMiksIFRPQk4oMHgzMDlkNDJh
YywgMHg3MmU2NTE0MiksCi0gICAgICAgICBUT0JOKDB4OTRmZTlkZGQsIDB4OTIxNmNkMzApLCBU
T0JOKDB4ZDY1MzljN2QsIDB4MGY4N2ZlZWMpLAotICAgICAgICAgVE9CTigweDAzYzVhNTdjLCAw
eDQzMmFjN2Q3KSwgVE9CTigweDcyNjkyY2YwLCAweDMyN2ZkYTEwKSwKLSAgICAgICAgIFRPQk4o
MHhlYzI4Yzg1ZiwgMHgyODA2OThkZSksIFRPQk4oMHgyMzMxZmI0NiwgMHg3ZWMyODNiMSksCi0g
ICAgICAgICBUT0JOKDB4ZDM0YmZhMzIsIDB4Mjg2N2U2MzMpLCBUT0JOKDB4Nzg3MDlhODIsIDB4
MGE5Y2M4MTUpLAotICAgICAgICAgVE9CTigweGI3ZmU2OTY0LCAweDg3NWUyZmE1KSwgVE9CTigw
eDI1Y2MwNjRmLCAweDllOThiZmI1KSwKLSAgICAgICAgIFRPQk4oMHg5ZWIwMTUxYywgMHg0OTNh
NjVjNSksIFRPQk4oMHg1ZmI1ZDk0MSwgMHg1MzE4MjQ2NCksCi0gICAgICAgICBUT0JOKDB4Njll
NmYxMzAsIDB4ZjA0NjE4ZTIpLCBUT0JOKDB4YThlY2VjMjIsIDB4Zjg5YzhhYjYpLAotICAgICAg
ICAgVE9CTigweGNkNmFjODhiLCAweGI5NjIwOWJkKSwgVE9CTigweDY1ZmE4Y2RiLCAweGIzZTFj
OWUwKSwKLSAgICAgICAgIFRPQk4oMHhhNDdkMjJmNSwgMHg0YThkOGVhYyksIFRPQk4oMHg4Mzg5
NWNkZiwgMHg4ZDMzZjk2MyksCi0gICAgICAgICBUT0JOKDB4YThhZGNhNTksIDB4YjU2Y2QzZDEp
LCBUT0JOKDB4MTBjODM1MGIsIDB4ZGFmMzgyMzIpLAotICAgICAgICAgVE9CTigweDJiMTYxZmIz
LCAweGE1MDgwYTlmKSwgVE9CTigweGJlN2Y1YzY0LCAweDNhZjY1YjNhKSwKLSAgICAgICAgIFRP
Qk4oMHgyYzc1NDAzOSwgMHg5NzQwM2ExMSksIFRPQk4oMHg5NDYyNmNmNywgMHgxMjFiOTZhZiks
Ci0gICAgICAgICBUT0JOKDB4NDMxZGU3YzQsIDB4NmE5ODNlYzIpLCBUT0JOKDB4Mzc4MGRkM2Es
IDB4NTJjYzNkZjcpLAotICAgICAgICAgVE9CTigweGUyOGEwZTQ2LCAweDJiYWY4ZTNiKSwgVE9C
TigweGFiZTY4YWFkLCAweDUxZDI5OWFlKSwKLSAgICAgICAgIFRPQk4oMHg2MDNlYjhmOSwgMHg2
NDdhMjQwOCksIFRPQk4oMHgxNGM2MWVkNiwgMHg1Yzc1MDk4MSksCi0gICAgICAgICBUT0JOKDB4
ODhiMzQ0MTQsIDB4YzUzMzUyZTcpLCBUT0JOKDB4NWEzNDg4OWMsIDB4MTMzN2Q0NmUpLAotICAg
ICAgICAgVE9CTigweDYxMmMxNTYwLCAweGY5NWYyYmM4KSwgVE9CTigweDhhM2Y4NDQxLCAweGQ0
ODA3YTNhKSwKLSAgICAgICAgIFRPQk4oMHg2ODBkOWU5NywgMHg1MjI0ZGE2OCksIFRPQk4oMHg2
MGNkNmU4OCwgMHhjM2ViMDBlOSksCi0gICAgICAgICBUT0JOKDB4Mzg3NWE5OGUsIDB4OWE2YmMz
NzUpLCBUT0JOKDB4ZGM4MGY5MjQsIDB4NGZkNTU0YzIpLAotICAgICAgICAgVE9CTigweDZjNGIz
NDE1LCAweDZhYzc3NDA3KSwgVE9CTigweGExZTVlYThmLCAweDI1NDIwNjgxKSwKLSAgICAgICAg
IFRPQk4oMHg1NDFiZmExNCwgMHg0NjA3YTQ1OCksIFRPQk4oMHg1ZGJjN2U3YSwgMHg5NmQ3ZmJm
OSksCi0gICAgICAgICBUT0JOKDB4NjQ2YTg1MWIsIDB4MzE1OTBhNDcpLCBUT0JOKDB4MDM5ZTg1
YmEsIDB4MTVlZTZkZjgpLAotICAgICAgICAgVE9CTigweGQxOWZhMjMxLCAweGQ3YjQzZmMwKSwg
VE9CTigweDg0YmM4YmU4LCAweDI5OWEwZTA0KSwKLSAgICAgICAgIFRPQk4oMHgyYjlkMjkzNiwg
MHhmMjBkZjAzYSksIFRPQk4oMHgyNDA1NDM4MiwgMHg4NjA4ZDQ3MiksCi0gICAgICAgICBUT0JO
KDB4NzZiNmJhMDQsIDB4OTE0OTIwMmEpLCBUT0JOKDB4YjIxYzM4MzEsIDB4MzY3MGU3YjcpLAot
ICAgICAgICAgVE9CTigweGRkZDkzMDU5LCAweGQ2ZmRlZTEwKSwgVE9CTigweDlkYTQ3YWQzLCAw
eDc4NDg4ZTcxKSwKLSAgICAgICAgIFRPQk4oMHg5OWNjMWRmZCwgMHhhMGZjZmIyNSksIFRPQk4o
MHg0MmFiZGUxMCwgMHg2NDY5Njk1NCksCi0gICAgICAgICBUT0JOKDB4MTRjYzE1ZmMsIDB4MTdl
YWI5ZmUpLCBUT0JOKDB4ZDZlODYzZTQsIDB4ZDNlNzA5NzIpLAotICAgICAgICAgVE9CTigweDI5
YTc3NjVjLCAweDY0MzIxMTJjKSwgVE9CTigweDg4NjYwMDAxLCAweDViMDc3NGQ4KSwKLSAgICAg
ICAgIFRPQk4oMHgzNzI5MTc1YSwgMHgyYzA4OGVhZSksIFRPQk4oMHgxM2FmYmNhZSwgMHg4MjMw
YjhkNCksCi0gICAgICAgICBUT0JOKDB4NDQ3NjgxNTEsIDB4OTE1ZjQzNzkpLCBUT0JOKDB4ZjA4
NjQzMWEsIDB4ZDhkMjI4MTIpLAotICAgICAgICAgVE9CTigweDM3NDYxOTU1LCAweGMyOThiOTc0
KSwgVE9CTigweDkwNWZiNWYwLCAweGY4NzExZTA0KSwKLSAgICAgICAgIFRPQk4oMHg3ODdhYmYz
YSwgMHhmZTk2OWQxOCksIFRPQk4oMHgzOTIxNjdjMiwgMHg2ZjZhNDk0ZSksCi0gICAgICAgICBU
T0JOKDB4ZmM3YTBkMmQsIDB4MjhjNTExZGEpLCBUT0JOKDB4ZjEyN2M3ZGMsIDB4YjY2YTI2MmQp
LAotICAgICAgICAgVE9CTigweGY5YzRiYjk1LCAweGZkNjNmZGYwKSwgVE9CTigweDkwMDE2NTg5
LCAweDM5MTNlZjQ2KSwKLSAgICAgICAgIFRPQk4oMHg3NGQyYTczYywgMHgxMWFhNjAwZCksIFRP
Qk4oMHgyZjUzNzliZCwgMHg5ZmI1YWI1MiksCi0gICAgICAgICBUT0JOKDB4ZTQ5ZTUzYTQsIDB4
N2ZiNzAwNjgpLCBUT0JOKDB4NjhkZDM5ZTUsIDB4NDA0YWE5YTcpLAotICAgICAgICAgVE9CTigw
eGI5YjBjZjU3LCAweDJlY2FhOWMzKSwgVE9CTigweGJhMGUxMDNiLCAweGU4MjQ4MjZiKSwKLSAg
ICAgICAgIFRPQk4oMHg2MGMyMTk4YiwgMHg0NjMxYTNjNCksIFRPQk4oMHhjNWZmODRhYiwgMHhm
YTg5NjZhMiksCi0gICAgICAgICBUT0JOKDB4MmQ2ZWJlMjIsIDB4YWM5NWFmZjgpLCBUT0JOKDB4
MWM5YmI2ZGIsIDB4YjVhNDZkMDkpLAotICAgICAgICAgVE9CTigweDQxOTA2MmRhLCAweDUzZWU0
ZjhkKSwgVE9CTigweDdiOTA0MmQwLCAweGJiOTdlZmVmKSwKLSAgICAgICAgIFRPQk4oMHgwZjg3
ZjA4MCwgMHg4MzBjZjZiZCksIFRPQk4oMHg0ODYxZDE5YSwgMHg2ZWM4YTZjNiksCi0gICAgICAg
ICBUT0JOKDB4ZDNhMGRhYTEsIDB4MjAyZjAxYWEpLCBUT0JOKDB4YjAxMTE2NzQsIDB4ZjI1YWZi
ZDUpLAotICAgICAgICAgVE9CTigweDZkMDBkNmNmLCAweDFhZmIyMGQ5KSwgVE9CTigweDEzNjk1
MDAwLCAweDQwNjcxYmM1KSwKLSAgICAgICAgIFRPQk4oMHg5MTNhYjBkYywgMHgyNDg1ZWE5Yiks
IFRPQk4oMHgxZjJiZWQwNiwgMHg5ZWVmNjFhYyksCi0gICAgICAgICBUT0JOKDB4ODUwYzgyMTcs
IDB4NmQ3OTllMjApLCBUT0JOKDB4OTM0MTVmMzcsIDB4MzI3MWMyZGUpLAotICAgICAgICAgVE9C
TigweDVhZmIwNmU5LCAweDZjNGY1OTEwKSwgVE9CTigweDY4OGE1MmRmLCAweGM0ZTllNDIxKSwK
LSAgICAgICAgIFRPQk4oMHgzMDQ5NWJhMywgMHhlMmE5YTZkYiksIFRPQk4oMHg0NjAxMzAzZCwg
MHg1OGY5MjY4YiksCi0gICAgICAgICBUT0JOKDB4YmUzYjBkYWQsIDB4N2ViMGYwNGYpLCBUT0JO
KDB4NGVhNDcyNTAsIDB4NDQ1NjkzNmQpLAotICAgICAgICAgVE9CTigweDhjYWY4Nzk4LCAweGQz
M2ZkM2U3KSwgVE9CTigweDFjY2Q4YTg5LCAweGViNDMzNzA4KSwKLSAgICAgICAgIFRPQk4oMHg5
ZWZmZTNlOCwgMHg4N2ZkNTBhZCksIFRPQk4oMHhiZTI0MGE1NiwgMHg2YjI5YzRkZiksCi0gICAg
ICAgICBUT0JOKDB4ZWM0ZmZkOTgsIDB4Y2EwZTdlYmQpLCBUT0JOKDB4ZjU4Njc4M2EsIDB4ZTc0
ODYxNmUpLAotICAgICAgICAgVE9CTigweGE1YjAwZDhmLCAweGM3N2JhYTk5KSwgVE9CTigweDBh
Y2FkYTI5LCAweGI0ZjM0YzljKSwKLSAgICAgICAgIFRPQk4oMHgzNmRhZDY3ZCwgMHgwZmU3MjNh
YyksIFRPQk4oMHgxZDhlNTNhNSwgMHgzOWMzNmMxZSksCi0gICAgICAgICBUT0JOKDB4ZTRkZDM0
MmQsIDB4MWY0YmVhNDEpLCBUT0JOKDB4NjRmZDVlMzUsIDB4ZWJjOWU0ZTApLAotICAgICAgICAg
VE9CTigweDk2ZjAxZjkwLCAweDU3OTA4ODA1KSwgVE9CTigweGI1YjllYTNkLCAweDVlZDQ4MGRk
KSwKLSAgICAgICAgIFRPQk4oMHgzNjZjNWRjMiwgMHgzZWZkMmRkMCksIFRPQk4oMHhlZDJmZTMw
NSwgMHg2ZTlkZmEyNyksCi0gICAgICAgICBUT0JOKDB4NDU3NWU4OTIsIDB4NmU5MTk3ZTIpLCBU
T0JOKDB4MTE3MTljMDksIDB4YWI1MDJhNWQpLAotICAgICAgICAgVE9CTigweDI2NGM3YmVjLCAw
eGU4MWYyMTNmKSwgVE9CTigweDc0MWI5MjQxLCAweDU1ZjVjNDU3KSwKLSAgICAgICAgIFRPQk4o
MHg3OGFjN2I2OCwgMHg0OWE1ZjRmNCksIFRPQk4oMHhmOTFkNzBhMiwgMHg5ZmM0NWI3ZCksCi0g
ICAgICAgICBUT0JOKDB4MzliMDU1NDQsIDB4YjBmNWYzNTUpLCBUT0JOKDB4MTFmMDZiY2UsIDB4
ZWVmOTMwZDkpLAotICAgICAgICAgVE9CTigweGRiODRkMjVkLCAweDAzOGQwNWUxKSwgVE9CTigw
eDA0ODM4ZWU1LCAweGJhY2MxZDUxKSwKLSAgICAgICAgIFRPQk4oMHg5ZGEzY2U4NiwgMHg5ZThl
ZTAwYiksIFRPQk4oMHhjMzQxMjA1NywgMHhjMzZlZGExZiksCi0gICAgICAgICBUT0JOKDB4YWU4
MGI5MTMsIDB4NjRkOWMyZjQpLCBUT0JOKDB4NzQ2OGJhYzMsIDB4YTAxMGE4ZmYpLAotICAgICAg
ICAgVE9CTigweGRmZDIwMDM3LCAweDM3MzU5ZDQxKSwgVE9CTigweDFhMGY1YWI4LCAweDE1ZWZl
YWNjKSwKLSAgICAgICAgIFRPQk4oMHg3YzI1YWQyZiwgMHg2NTlkMGNlMCksIFRPQk4oMHg0MDEx
YmNiYiwgMHg2Nzg1Y2ZmMSksCi0gICAgICAgICBUT0JOKDB4MTI4Yjk5MTIsIDB4N2UyMTkyYzcp
LCBUT0JOKDB4YTU0OWQ4ZTEsIDB4MTNjY2IwZTgpLAotICAgICAgICAgVE9CTigweDgwNTU4OGQ4
LCAweGM4NTQzOGIxKSwgVE9CTigweDU2ODAzMzJkLCAweGJjMjVjYjI3KSwKLSAgICAgICAgIFRP
Qk4oMHhkY2QxYmM5NiwgMHgxYTRiZmRmNCksIFRPQk4oMHg3NzlmZjQyOCwgMHg3MDZmNjU2Niks
Ci0gICAgICAgICBUT0JOKDB4OGJiZWU5OTgsIDB4ZjA1OTk4N2EpLCBUT0JOKDB4ZjZjZThjZjIs
IDB4Y2M2ODZkZTcpLAotICAgICAgICAgVE9CTigweGY4YWQzYzRhLCAweDk1M2NmZGIyKSwgVE9C
TigweGQxZDQyNmQ5LCAweDIyMDVkYTM2KSwKLSAgICAgICAgIFRPQk4oMHhiM2MwZjEzZiwgMHhj
NzgxYTI0MSksIFRPQk4oMHgzZTg5MzYwZSwgMHhkNzUzNjJhOCksCi0gICAgICAgICBUT0JOKDB4
Y2NkMDU4NjMsIDB4YzhhOTExODQpLCBUT0JOKDB4OWJkMGM5YjcsIDB4ZWZhOGE3ZjQpLAotICAg
ICAgICAgVE9CTigweDk3ZWU0ZDUzLCAweDhhOTEyYTRiKSwgVE9CTigweGRlNWUxNWY4LCAweGJj
ZjUxOGZkKSwKLSAgICAgICAgIFRPQk4oMHg2YTA1NWJmOCwgMHhjNDY3ZTFlMCksIFRPQk4oMHgx
MGJlNGI0YiwgMHgxNTg3ZTI1NiksCi0gICAgICAgICBUT0JOKDB4ZDkwYzE0ZjIsIDB4NjY4NjIx
YzkpLCBUT0JOKDB4ZDU1MThmNTEsIDB4YWI5YzkyYzEpLAotICAgICAgICAgVE9CTigweDhlNmEw
MTAwLCAweGQ2ZDQ3YjNjKSwgVE9CTigweGNiZTk4MGRkLCAweDY2NzE2MTc1KSwKLSAgICAgICAg
IFRPQk4oMHg1MDBkM2YxMCwgMHhkZGQ4MzY4MyksIFRPQk4oMHgzYjZjYjM1ZCwgMHg5OWNhYzcz
YyksCi0gICAgICAgICBUT0JOKDB4NTM3MzBjOGIsIDB4NjA4M2Q1NTApLCBUT0JOKDB4Y2YxNTk3
NjcsIDB4ZGYwYTE5ODcpLAotICAgICAgICAgVE9CTigweDg0YmZjZjUzLCAweDQzYWQ3M2IzKSwg
VE9CTigweDFiNTI4YzIwLCAweDRmMDM1YTk0KSwKLSAgICAgICAgIFRPQk4oMHg0Mjk0ZWRmNywg
MHgzM2VlYWM2OSksIFRPQk4oMHhiNjI4M2U4MywgMHg4MTdmMzI0MCksCi0gICAgICAgICBUT0JO
KDB4YzNmZGM5NTksIDB4MGE1ZjI1YjEpLCBUT0JOKDB4ZWZhZjhhYTUsIDB4NTg0NGVlMjIpLAot
ICAgICAgICAgVE9CTigweGRlMjY5YmE1LCAweGRiZGRlNGRlKSwgVE9CTigweGUzMzQ3MTYwLCAw
eGM1NjEzM2JmKSwKLSAgICAgICAgIFRPQk4oMHhjMTE4NDIxOSwgMHg4ZDllYTlmOCksIFRPQk4o
MHgwOTBkZTVkYiwgMHhmM2ZjMWFiNSksCi0gICAgICAgICBUT0JOKDB4NDA0YzM3YjEsIDB4MGJm
MjJjZGEpLCBUT0JOKDB4N2RlMjBlYzgsIDB4ZjU2MTg4OTQpLAotICAgICAgICAgVE9CTigweDc1
NGM1ODhlLCAweGVjZGFlY2FiKSwgVE9CTigweDZjYTRiMGVkLCAweDg4MzQyNzQzKSwKLSAgICAg
ICAgIFRPQk4oMHg3NmYwOGJkZCwgMHhmNGE5MzhlYyksIFRPQk4oMHhkMTgyZGU4OSwgMHg5MTQ5
M2NjYiksCi0gICAgICAgICBUT0JOKDB4ZDY1MmM1M2UsIDB4YzhhNDE4NmEpLCBUT0JOKDB4YjNl
ODc4ZGIsIDB4OTQ2ZDhlMzMpLAotICAgICAgICAgVE9CTigweDA4ODQ1M2MwLCAweDVmMzc2NjNj
KSwgVE9CTigweDVjZDlkYWFhLCAweGI0MDc3NDhiKSwKLSAgICAgICAgIFRPQk4oMHhhMWY1MTk3
ZiwgMHg1ODZkNWU3MiksIFRPQk4oMHg0NzUwMGJlOCwgMHhjNDQzY2E1OSksCi0gICAgICAgICBU
T0JOKDB4NzhlZjM1YjIsIDB4ZTI2NTI0MjQpLCBUT0JOKDB4MDljNWQyNmYsIDB4NmRkNzc2N2Qp
LAotICAgICAgICAgVE9CTigweDcxNzVhNzlhLCAweGE3NGQzZjdiKSwgVE9CTigweDA0MjhmZDhk
LCAweGNmNWVhNDU5KSwKLSAgICAgICAgIFRPQk4oMHg1MTFjYjk3YywgMHhhNWQxNzQ2ZCksIFRP
Qk4oMHgzNjM2MzkzOSwgMHhlNzFkMTI3OCksCi0gICAgICAgICBUT0JOKDB4Y2YyZGY5NTUsIDB4
MTAzNTBiZjQpLCBUT0JOKDB4YjM4MTc0MzksIDB4NjBhYWU3ODIpLAotICAgICAgICAgVE9CTigw
eGE3NDhjMGU0LCAweDNlNjg4ODA5KSwgVE9CTigweDk4MDIxZmJmLCAweGQ3YTVhMDA2KSwKLSAg
ICAgICAgIFRPQk4oMHg5MDc2YTcwYywgMHgwZTM2N2E5OCksIFRPQk4oMHhiZWExYmMxNSwgMHgw
ZjYyYjdjMiksCi0gICAgICAgICBUT0JOKDB4MjY0NWE2OGMsIDB4MzBmZTAzNDMpLCBUT0JOKDB4
YWNhZmZhNzgsIDB4Njk5ZGMxNGYpLAotICAgICAgICAgVE9CTigweGY0NDY5OTY0LCAweDQ1N2Jm
OWM0KSwgVE9CTigweDBkYjY0MDdiLCAweDBkMmVhZDgzKSwKLSAgICAgICAgIFRPQk4oMHg2OGQ1
NmNhZCwgMHhiMmM2ZjNlYiksIFRPQk4oMHgzYjUxMmU3MywgMHhmMzc2MzU2YyksCi0gICAgICAg
ICBUT0JOKDB4ZTQzYjBlMWYsIDB4ZmNlMTA0MDgpLCBUT0JOKDB4ODlkZGMwMDMsIDB4NWE1ZTI1
N2QpLAotICAgICAgICAgVE9CTigweGIwYWUwZDEyLCAweDAzNjJlNWIzKSwgVE9CTigweDA3Zjk4
M2M3LCAweGIwNTE5MTYxKSwKLSAgICAgICAgIFRPQk4oMHhjMmU5NGQxNSwgMHg1ZDUyMzFlNyks
IFRPQk4oMHhjZmYyMmFlZCwgMHgwYjRmOTUxMyksCi0gICAgICAgICBUT0JOKDB4YjAyNTg4ZGQs
IDB4NmFkMGIwYjUpLCBUT0JOKDB4Yjk2N2QxYWMsIDB4MTFkMGRjZDUpLAotICAgICAgICAgVE9C
TigweDhkYWM2YmM2LCAweGNmNzc3YjZjKSwgVE9CTigweDAwNjJiZGJkLCAweDRjNmQxOTU5KSwK
LSAgICAgICAgIFRPQk4oMHg1M2RhNzFiNSwgMHgwZWY1Y2M4NSksIFRPQk4oMHgwNzAxMmM3ZCwg
MHg0MDA2ZjE0ZiksCi0gICAgICAgICBUT0JOKDB4NDYxN2Y5NjIsIDB4YWM0NzgwMGQpLCBUT0JO
KDB4NTMzNjVmMmIsIDB4YzEwMmVkNzUpLAotICAgICAgICAgVE9CTigweGI0MjJlZmNiLCAweDRh
YjhjOWQzKSwgVE9CTigweDE5NWNiMjZiLCAweDM0YWYzMWM5KSwKLSAgICAgICAgIFRPQk4oMHgz
YTkyNmUyOSwgMHgwNWYyYzRjZSksIFRPQk4oMHhiZDJiZGVjYiwgMHg5ODU2OTY2YyksCi0gICAg
ICAgICBUT0JOKDB4NWQxNmFiM2EsIDB4ODU1MjcwMTUpLCBUT0JOKDB4OWY4MTYwOWUsIDB4NDQ4
NmMyMzEpLAotICAgICAgICAgVE9CTigweGQ4Yjk2YjJjLCAweGRhMzUwMDAyKSwgVE9CTigweGJk
MDU0NjkwLCAweGZhMWI3ZDM2KSwKLSAgICAgICAgIFRPQk4oMHhkYzkwZWJmNSwgMHhlNzFkNzli
YyksIFRPQk4oMHhmMjQxYjZmOSwgMHgwODk2NGU0ZSksCi0gICAgICAgICBUT0JOKDB4N2M4Mzg2
NDMsIDB4MmZlM2NkNGMpLCBUT0JOKDB4ZTBmMzNhY2IsIDB4YjRiYzYzM2MpLAotICAgICAgICAg
VE9CTigweGI0YTllY2VjLCAweDNkMTM5ZjFmKSwgVE9CTigweDA1Y2U2OWNkLCAweGRjNGExZjQ5
KSwKLSAgICAgICAgIFRPQk4oMHhhMTlkMWIxNiwgMHhmNWY5OGFhZiksIFRPQk4oMHg0NWJiNzFk
NiwgMHg2ZjIzZTBlZiksCi0gICAgICAgICBUT0JOKDB4MzM3ODlmY2QsIDB4NDZjZGZkZDMpLCBU
T0JOKDB4OWI4ZTI5NzgsIDB4Y2VlMDQwY2EpLAotICAgICAgICAgVE9CTigweDljNjliMjQ2LCAw
eGFlMGE2ODI4KSwgVE9CTigweGJhNTMzZDI0LCAweDcwNzhkNWFhKSwKLSAgICAgICAgIFRPQk4o
MHg3YTJlNDJjMCwgMHg3YmI0ZmJkYiksIFRPQk4oMHhjZmI0ODc5YSwgMHg3MDM1Mzg1YyksCi0g
ICAgICAgICBUT0JOKDB4OGMzZGQzMGIsIDB4MzI4MTcwNWIpLCBUT0JOKDB4N2UzNjFjNmMsIDB4
NDA0ZmUwODEpLAotICAgICAgICAgVE9CTigweDdiMjE2NDljLCAweDNmNjA0ZWRmKSwgVE9CTigw
eDVkYmY2YTNmLCAweGU1MmZmZTQ3KSwKLSAgICAgICAgIFRPQk4oMHhjNDFiN2MyMywgMHg0YjU0
ZDliZiksIFRPQk4oMHgxMzc0ZTY4MSwgMHgzNTExYzNkOSksCi0gICAgICAgICBUT0JOKDB4MTg2
M2JmMTYsIDB4YzFiMmI3NTgpLCBUT0JOKDB4OTBlNzg1MDcsIDB4MWU5ZTZhOTYpLAotICAgICAg
ICAgVE9CTigweGFiNGJmOThkLCAweDVkODZmMTc0KSwgVE9CTigweGQ3NGUwYmQzLCAweDg1ZTk2
ZmU0KSwKLSAgICAgICAgIFRPQk4oMHg4YWZkZTM5ZiwgMHhjYWM1ZDM0NCksIFRPQk4oMHg5MDk0
NmRiYywgMHhiZDkxYjg0NyksCi0gICAgICAgICBUT0JOKDB4ZjViNDIzNTgsIDB4ZmUxYTgzOGMp
LCBUT0JOKDB4MDVhYWU2YzUsIDB4NjIwYWM5ZDgpLAotICAgICAgICAgVE9CTigweDhlMTkzYmQ4
LCAweGExY2U1YTBiKSwgVE9CTigweDhmNzEwNTcxLCAweDRkYWJmZDcyKSwKLSAgICAgICAgIFRP
Qk4oMHg4ZDhmZGQ0OCwgMHgxODJjYWFhYyksIFRPQk4oMHg4YzRhZWVmYSwgMHgwNDA3NDVjZiks
Ci0gICAgICAgICBUT0JOKDB4NzNjNmMzMGEsIDB4ZjNiOTNlNmQpLCBUT0JOKDB4OTkxMjQxZjMs
IDB4MTZmNDIwMTEpLAotICAgICAgICAgVE9CTigweGEwMTU4ZWVhLCAweGU0NTdhNDc3KSwgVE9C
TigweGQxOTg1N2RiLCAweGVlNmRkYzA1KSwKLSAgICAgICAgIFRPQk4oMHhiMzI2NTIyNCwgMHgx
OGM0MTY3MSksIFRPQk4oMHgzZmZkZmM3ZSwgMHgzYzJjMGQ1OCksCi0gICAgICAgICBUT0JOKDB4
M2EzYTUyNTQsIDB4MjZlZTdjZGEpLCBUT0JOKDB4MzQxYjA4NjksIDB4ZGYwMmMzYTgpLAotICAg
ICAgICAgVE9CTigweGEwMjNiZjQyLCAweDcyM2JiZmM4KSwgVE9CTigweDNkMTUwMDJhLCAweDE0
NDUyNjkxKX0sCi0gICAgICAgIHtUT0JOKDB4NWVmNzMyNGMsIDB4ODVlZGZhMzApLCBUT0JOKDB4
MjU5NzY1NTQsIDB4ODdkNGYzZGEpLAotICAgICAgICAgVE9CTigweDM1MmY1YmMwLCAweGRjYjUw
Yzg2KSwgVE9CTigweDhmNjkyN2IwLCAweDQ4MzJhOTZjKSwKLSAgICAgICAgIFRPQk4oMHhkMDhl
ZTFiYSwgMHg1NWYyZjk0YyksIFRPQk4oMHg2YTk5NmY5OSwgMHgzNDRiNDVmYSksCi0gICAgICAg
ICBUT0JOKDB4ZTEzM2NiOGQsIDB4YThhYTQ1NWQpLCBUT0JOKDB4NWQwNzIxZWMsIDB4NzU4ZGMx
ZjcpLAotICAgICAgICAgVE9CTigweDZiYTdhOTIwLCAweDc5ZTVmYjY3KSwgVE9CTigweGUxMzMx
ZmViLCAweDcwYWE3MjVlKSwKLSAgICAgICAgIFRPQk4oMHg1MDgwY2NmNSwgMHg3ZGY1ZDgzNyks
IFRPQk4oMHhlNGNhZTAxZCwgMHg3ZmY3MmUyMSksCi0gICAgICAgICBUT0JOKDB4ZDkyNDNlZTYs
IDB4MDQxMmE3N2QpLCBUT0JOKDB4MDZmZjdjYWMsIDB4ZGY0NDkwMjUpLAotICAgICAgICAgVE9C
TigweGJlNzVmN2NkLCAweDIzZWY1YTMxKSwgVE9CTigweGJjOTU3ODIyLCAweDBkZGVmN2E4KSwK
LSAgICAgICAgIFRPQk4oMHg4Y2Y3MjMwYywgMHhiMGNlMWM1NSksIFRPQk4oMHg1YjUzNGQwNSwg
MHgwYmJmYjYwNyksCi0gICAgICAgICBUT0JOKDB4ZWUxZWYxMTMsIDB4MGUxNjM2M2IpLCBUT0JO
KDB4MjdlMGFhN2EsIDB4YjQ5OTllODIpLAotICAgICAgICAgVE9CTigweGNlMWRhYzJkLCAweDc5
MzYyYzQxKSwgVE9CTigweDY3OTIwYzkwLCAweDkxYmI2Y2IwKSwKLSAgICAgICAgIFRPQk4oMHgx
ZTY0OGQ2MywgMHgyMjIzZGYyNCksIFRPQk4oMHgwZjdkOWVlZiwgMHhlMzJlOGYyOCksCi0gICAg
ICAgICBUT0JOKDB4Njk0M2YzOWEsIDB4ZmE4MzM4MzQpLCBUT0JOKDB4MjI5NTE3MjIsIDB4YTYz
Mjg1NjIpLAotICAgICAgICAgVE9CTigweDgxZDYzZGQ1LCAweDQxNzBmYzEwKSwgVE9CTigweDlm
NWZhNThmLCAweGFlY2MyZTZkKSwKLSAgICAgICAgIFRPQk4oMHhiNjZjODcyNSwgMHhlNzdkOWEz
YiksIFRPQk4oMHgxMTIzNWNlYSwgMHg2Mzg0ZWJlMCksCi0gICAgICAgICBUT0JOKDB4MDZhOGMx
MTgsIDB4NTg0NWUyNGEpLCBUT0JOKDB4MDEzN2IyODYsIDB4ZWJkMDkzYjEpLAotICAgICAgICAg
VE9CTigweGM1ODllMWNlLCAweDQ0YWNlMTUwKSwgVE9CTigweGUwZjhkM2Q5LCAweDQzODFlOTdj
KSwKLSAgICAgICAgIFRPQk4oMHg1OWU5OWIxMSwgMHg2MmM1YTRiOCksIFRPQk4oMHg5MGQyNjJm
NywgMHhmZDBlYzlmOSksCi0gICAgICAgICBUT0JOKDB4ZmJjODU0YzksIDB4MjgzZTEzYzkpLCBU
T0JOKDB4MmQwNGZkZTcsIDB4YWVkYzcwODUpLAotICAgICAgICAgVE9CTigweDA1N2Q3NzY1LCAw
eDQ3ZGNiZWNiKSwgVE9CTigweDhkYmRmNTkxLCAweDlhNzZmYTVmKSwKLSAgICAgICAgIFRPQk4o
MHhkMDE1MDY5NSwgMHgwZGUxZTU3OCksIFRPQk4oMHgyZTE0NjNlNywgMHhlOWY3MmJjNiksCi0g
ICAgICAgICBUT0JOKDB4ZmZhNjg0NDEsIDB4MWIzOWVjYTUpLCBUT0JOKDB4NjczYzg1MzAsIDB4
N2MwMzdmMmYpLAotICAgICAgICAgVE9CTigweGQwZDZhNjAwLCAweDc0N2Y5MWRhKSwgVE9CTigw
eGIwOGQ0M2UxLCAweGM5Y2I3OGU5KSwKLSAgICAgICAgIFRPQk4oMHgwZmMwYzY0NCwgMHgyN2I1
Y2VmNSksIFRPQk4oMHg1YzFkMTYwYSwgMHhhNjBhMmZkNiksCi0gICAgICAgICBUT0JOKDB4Zjk4
Y2FlNTMsIDB4MjhjOGUxM2IpLCBUT0JOKDB4Mzc1ZjEwYzQsIDB4YjJlZGRjZDEpLAotICAgICAg
ICAgVE9CTigweGQ0ZWI4YjdmLCAweDVjY2UwNmFkKSwgVE9CTigweGI0NjY5ZjQ1LCAweDgwYTJl
MWVmKSwKLSAgICAgICAgIFRPQk4oMHhkNTkzZjlkMCwgMHg1YmJkODY5OSksIFRPQk4oMHg1NTI4
YTRjOSwgMHhlNzk3NmQxMyksCi0gICAgICAgICBUT0JOKDB4MzkyM2UwOTUsIDB4MWM3ZTI4ZDMp
LCBUT0JOKDB4YjkyOTM3OTAsIDB4M2Y2YmI1NzcpLAotICAgICAgICAgVE9CTigweGRiNTY3ZDZh
LCAweGM0MmJkNmQyKSwgVE9CTigweDZkZjg2NDY4LCAweGJiMWY5NmFlKSwKLSAgICAgICAgIFRP
Qk4oMHgwZWZlNWIxYSwgMHg0ODQzYjI4ZSksIFRPQk4oMHg5NjFiYmIwNSwgMHg2Mzc5YjI0MCks
Ci0gICAgICAgICBUT0JOKDB4YjZjYWY1ZjAsIDB4NzBhNmEyNmIpLCBUT0JOKDB4NzA2ODZjMGQs
IDB4MzI4ZTZlMzkpLAotICAgICAgICAgVE9CTigweDgwZGEwNmNmLCAweDg5NWZjOGQzKSwgVE9C
TigweDgwNGQ4ODEwLCAweGIzNjNmZGM5KSwKLSAgICAgICAgIFRPQk4oMHhiZTIyODc3YiwgMHgy
MDdmMTY3MCksIFRPQk4oMHg5YjBkZDE4OCwgMHg0ZTYxNTI5MSksCi0gICAgICAgICBUT0JOKDB4
NjI1YWU4ZGMsIDB4OTdhM2MyYmYpLCBUT0JOKDB4MDg1ODRlZjcsIDB4NDM5Yjg2ZTgpLAotICAg
ICAgICAgVE9CTigweGRlNzE5MGE1LCAweGRjZDg5OGZmKSwgVE9CTigweDI2Mjg2YzQwLCAweDIw
NThlZTNkKSwKLSAgICAgICAgIFRPQk4oMHgzZGIwYjIxNywgMHg1Zjg3YjFjMSksIFRPQk4oMHhj
YzMzNDc3MSwgMHgxMDJhNmRiNSksCi0gICAgICAgICBUT0JOKDB4ZDk5ZGU5NTQsIDB4MmY3NzBm
YjEpLCBUT0JOKDB4OTdjMWM2MjAsIDB4NGNkNzUzNWUpLAotICAgICAgICAgVE9CTigweGQzYjZj
NDQ4LCAweDNmMDljZWZjKSwgVE9CTigweGQ3MjVhZjE1LCAweDVhNjNiNGY4KSwKLSAgICAgICAg
IFRPQk4oMHgwYzk1ZDI0ZiwgMHhjMDFlMjBlYyksIFRPQk4oMHhkZmQzNzQ5NCwgMHg5YWU3MTIx
ZiksCi0gICAgICAgICBUT0JOKDB4N2Q2ZGRiNzIsIDB4ZWM3N2I3ZWMpLCBUT0JOKDB4ZmUwNzlk
M2IsIDB4MDM1M2E0YWUpLAotICAgICAgICAgVE9CTigweDMwNjZlNzBhLCAweDJlNmFjOGQyKSwg
VE9CTigweDljNmI1YTQzLCAweDEwNmU1YzA1KSwKLSAgICAgICAgIFRPQk4oMHg1MmQzYzZmNSwg
MHhlZGU1OWI4YyksIFRPQk4oMHgzMGQ2YTVjMywgMHhmY2NlYzlhZSksCi0gICAgICAgICBUT0JO
KDB4ZWRlYzdjMjIsIDB4NGZjMGE5ZWYpLCBUT0JOKDB4MTkwZmYwODMsIDB4OTVjMTZjZWQpLAot
ICAgICAgICAgVE9CTigweGJlMTJlYzhmLCAweDk0ZGUwZmRlKSwgVE9CTigweDBkMTMxYWI4LCAw
eDg1MmQzNDMzKSwKLSAgICAgICAgIFRPQk4oMHg0MmFjZTA3ZSwgMHg4NTcwMTI5MSksIFRPQk4o
MHg5NDc5M2VkOSwgMHgxOTQwNjFhOCksCi0gICAgICAgICBUT0JOKDB4MzBlODNlZDYsIDB4ZDdm
NGE0ODUpLCBUT0JOKDB4OWVlYzcyNjksIDB4ZjllZWZmNGQpLAotICAgICAgICAgVE9CTigweDkw
YWNiYTU5LCAweDBjOWQ4MDA1KSwgVE9CTigweDVmZWNhNDU4LCAweDFlNzliOWQxKSwKLSAgICAg
ICAgIFRPQk4oMHg4ZmJlNTQyNywgMHgxZDUwNmExZSksIFRPQk4oMHhhMzJiMmM4ZSwgMHgyNDM5
Y2ZhNyksCi0gICAgICAgICBUT0JOKDB4MTY3MWMxNzMsIDB4NzNkZDBiNGUpLCBUT0JOKDB4Mzdh
MjgyMTQsIDB4NDRhMDU0YzYpLAotICAgICAgICAgVE9CTigweDgxNzYwYTFiLCAweDRlOGI1M2Yx
KSwgVE9CTigweGE2YzA0MjI0LCAweGY5ZjkzYjllKSwKLSAgICAgICAgIFRPQk4oMHgxODc4NGIz
NCwgMHhjZjY3MWUzYyksIFRPQk4oMHg4MWJiZWNkMiwgMHhjZGE5Yjk5NCksCi0gICAgICAgICBU
T0JOKDB4Mzg4MzE5NzksIDB4YjJhYjM4NDgpLCBUT0JOKDB4ZWY1NGZlYjcsIDB4ZjJlMDNjMmQp
LAotICAgICAgICAgVE9CTigweGNmMTk3Y2E3LCAweGZiODA4OGZhKSwgVE9CTigweDAxNDI3MjQ3
LCAweDRkZGM5NmM1KSwKLSAgICAgICAgIFRPQk4oMHhhMmQyNTUwYSwgMHgzMDc3NzE3NiksIFRP
Qk4oMHg1MzQ2OTg5OCwgMHg0ZDBjZjcxZCksCi0gICAgICAgICBUT0JOKDB4NmNlOTM3YjgsIDB4
M2EyYWFhYzYpLCBUT0JOKDB4ZTlmOTFkYzMsIDB4NWFmMzhkOWIpLAotICAgICAgICAgVE9CTigw
eDI1OThhZDgzLCAweGM4YmYyODk5KSwgVE9CTigweDhlNzA2YWM5LCAweGI1NTM2YzE2KSwKLSAg
ICAgICAgIFRPQk4oMHg0MGRjNzQ5NSwgMHhmNjg4ZGM5OCksIFRPQk4oMHgyNjQ5MGNkNywgMHgx
MjRjNGFmYyksCi0gICAgICAgICBUT0JOKDB4ZTY1MWVjODQsIDB4MWYxODc3NWMpLCBUT0JOKDB4
MzkzZWE2YzMsIDB4YjRmZGFmNGEpLAotICAgICAgICAgVE9CTigweDFlMWYzMzQzLCAweDdmMzM4
ZTBkKSwgVE9CTigweDM5ZmI4MzJiLCAweDYwNTNlN2I1KSwKLSAgICAgICAgIFRPQk4oMHg0NmU3
MDJkYSwgMHg2MTllMTRkNSksIFRPQk4oMHg4NTljYWNkMSwgMHhjZGVlZjZlMCksCi0gICAgICAg
ICBUT0JOKDB4NjNiOTljZTcsIDB4NDQ2MjAwN2QpLCBUT0JOKDB4YjhhYjQ4YTUsIDB4NGNiNWY1
YjcpLAotICAgICAgICAgVE9CTigweDllYzY3M2QyLCAweGY1NWVkZGU3KSwgVE9CTigweGQxNTY3
Zjc0LCAweDhjZmFlZmRhKSwKLSAgICAgICAgIFRPQk4oMHg0NjM4MWI2YiwgMHgwODg3YmNlYyks
IFRPQk4oMHg2OTQ0OTdjZSwgMHhlMTc4ZjNjMiksCi0gICAgICAgICBUT0JOKDB4NWU2NTI1ZTMs
IDB4MWU2MjY2Y2IpLCBUT0JOKDB4NTkzMWRlMjYsIDB4Njk3ZDY0MTMpLAotICAgICAgICAgVE9C
TigweDg3ZjhkZjdjLCAweDBlNThkNDkzKSwgVE9CTigweGIxYWU1ZWQwLCAweDU4YjczZjEyKSwK
LSAgICAgICAgIFRPQk4oMHhjMzY4Zjc4NCwgMHhkZWEwYzM0ZCksIFRPQk4oMHg5YmQwYTEyMCwg
MHg4NTlhOTFhMCksCi0gICAgICAgICBUT0JOKDB4YjAwZDg4YjcsIDB4Y2M4NjNjNjgpLCBUT0JO
KDB4M2ExY2MxMWUsIDB4M2QxZjRkNjUpLAotICAgICAgICAgVE9CTigweGVhMzhlMGU3LCAweDBh
YTg1NTkzKSwgVE9CTigweDM3ZjEzZTk4LCAweDdkYzRhZWU4KSwKLSAgICAgICAgIFRPQk4oMHgx
MGQzODY2NywgMHhiYzk0N2JhZCksIFRPQk4oMHg3MzhlMDdjZSwgMHgyYTM2ZWUyZSksCi0gICAg
ICAgICBUT0JOKDB4YzkzNDcwY2QsIDB4YzU3N2ZjYWMpLCBUT0JOKDB4ZGVlMWI2MTYsIDB4Mjc4
MjQ3MGQpLAotICAgICAgICAgVE9CTigweDM2YTI1ZTY3LCAweDJlNzkzZDEyKSwgVE9CTigweGQ2
YWE2Y2FlLCAweGUwZjE4NmRhKSwKLSAgICAgICAgIFRPQk4oMHg0NzRkMGZkOSwgMHg4MGUwN2Fm
NyksIFRPQk4oMHhmN2NkYzQ3ZCwgMHhiYThhNWNkNCksCi0gICAgICAgICBUT0JOKDB4MjhhZjZk
OWQsIDB4YWIxNTI0N2YpLCBUT0JOKDB4N2M3ODljMTAsIDB4NDkzYTUzN2YpLAotICAgICAgICAg
VE9CTigweDdhYzliMTEwLCAweDIzYTMzNGU3KSwgVE9CTigweDAyMzZhYzA5LCAweDEyYzljMjc3
KSwKLSAgICAgICAgIFRPQk4oMHhhN2U1YmQyNSwgMHgxZDdhNTE0NCksIFRPQk4oMHgwOThiOWMy
YSwgMHhmMTNlYzRlYyksCi0gICAgICAgICBUT0JOKDB4MzYzOWRhY2EsIDB4ZDNmMGFiY2EpLCBU
T0JOKDB4NjQyZGE4MWEsIDB4YTIzOTYwZjkpLAotICAgICAgICAgVE9CTigweDdkMmU1YzA1LCAw
eDRmNzI2OWIxKSwgVE9CTigweGZjZjMwNzc3LCAweGUyODdjMzg1KSwKLSAgICAgICAgIFRPQk4o
MHgxMGVkYzg0ZiwgMHhmMmE0NmYyMSksIFRPQk4oMHgzNTQ0MTc1NywgMHg0ZjQzZmEzNiksCi0g
ICAgICAgICBUT0JOKDB4ZjEzMjc4OTksIDB4ZmQ3MDM0MzEpLCBUT0JOKDB4YTQzOGQ3YTYsIDB4
MTZkZDU4N2EpLAotICAgICAgICAgVE9CTigweDY1YzM0YzU3LCAweGU5YzgzNTJkKSwgVE9CTigw
eGE3MjhlZGFiLCAweDVjYzVhMjRlKSwKLSAgICAgICAgIFRPQk4oMHhhZWQ3OGFiYywgMHg0MjUz
MTY4OSksIFRPQk4oMHgwYTUxYTBlOCwgMHgwMTA5NjNlZiksCi0gICAgICAgICBUT0JOKDB4NTc3
NmZhMGEsIDB4ZDcxN2Q5YjMpLCBUT0JOKDB4ZjM1NmMyMzksIDB4N2RkMzQyOGIpLAotICAgICAg
ICAgVE9CTigweDI5OTAzZmZmLCAweDhkM2EzZGFjKSwgVE9CTigweDQwOTU5N2ZhLCAweDNkOTQ0
OTFmKSwKLSAgICAgICAgIFRPQk4oMHg0Y2Q3YTVmZiwgMHhiZjRhNTZhNCksIFRPQk4oMHhlNTA5
NjQ3NCwgMHg4YWRhYjQ2MiksCi0gICAgICAgICBUT0JOKDB4YTk3YjUxMjYsIDB4NWMzNDI3YjAp
LCBUT0JOKDB4NjQwMTQwNWMsIDB4ZDI4MmM5YmQpLAotICAgICAgICAgVE9CTigweDM2MjlmOGQ3
LCAweDIyMmM1YzQ1KSwgVE9CTigweGIxYzAyYzE2LCAweGU4ZDUwYWVkKSwKLSAgICAgICAgIFRP
Qk4oMHhiZWEyZWQ3NSwgMHhkOTYzNWJjOSksIFRPQk4oMHgyMjY3OTBjNywgMHg2ZTI0NTUyZiks
Ci0gICAgICAgICBUT0JOKDB4M2MzM2YyYTMsIDB4NjVmMWQwNjYpLCBUT0JOKDB4MmE0MzQ2M2Us
IDB4NmRmY2NjMmUpLAotICAgICAgICAgVE9CTigweDhjYzM0NTNhLCAweGRiNDgzNzYxKSwgVE9C
TigweGU3Y2M2MDg1LCAweDY1ZDU2NzJiKSwKLSAgICAgICAgIFRPQk4oMHgyNzdlZDZjYiwgMHhk
ZTNlZmM4NyksIFRPQk4oMHgxOWYyZjM2OCwgMHg2OTIzNGVhZiksCi0gICAgICAgICBUT0JOKDB4
OWFhZjQzMTcsIDB4NWMwYjgwMGIpLCBUT0JOKDB4MWYxZTdjODksIDB4OGI2ZGE2ZTIpLAotICAg
ICAgICAgVE9CTigweDZjZmI0NzE1LCAweGI5NGVjNzVlKSwgVE9CTigweGQ1OTBkZDVmLCAweDQ1
MzExOGMyKSwKLSAgICAgICAgIFRPQk4oMHgxNGU0OWRhMSwgMHgxZjE3YTM0YyksIFRPQk4oMHg1
NDIwYWIzOSwgMHgyMzVhMTQ1NiksCi0gICAgICAgICBUT0JOKDB4Yjc2MzcyNDEsIDB4MmY1MDM2
M2IpLCBUT0JOKDB4N2IxNWQ2MjMsIDB4YzNmYWJiNmUpLAotICAgICAgICAgVE9CTigweGEwZWY0
MGIxLCAweGUyNzRlNDljKSwgVE9CTigweDVjZjUwNzQ0LCAweDk2YjE4NjBhKSwKLSAgICAgICAg
IFRPQk4oMHhkNjU4M2ZiZiwgMHg2NmFmZTVhNCksIFRPQk4oMHg0NDI0MDUxMCwgMHhmNDdlM2U5
YSksCi0gICAgICAgICBUT0JOKDB4OTkyNTQzNDMsIDB4MTFiMmQ1OTUpLCBUT0JOKDB4ZjEzNjc0
OTksIDB4ZWVjOGRmNTcpLAotICAgICAgICAgVE9CTigweDNjYjEyYzYxLCAweDNlNzNkZDA1KSwg
VE9CTigweGQyNDhjMDMzLCAweDdkYWMxMDJhKSwKLSAgICAgICAgIFRPQk4oMHhjZjE1NGYxMywg
MHhhNzc3MzlmNSksIFRPQk4oMHhiZjQyODhjYiwgMHgyM2QyYWY0MiksCi0gICAgICAgICBUT0JO
KDB4YWE2NGM5YjYsIDB4MzJlNGExY2YpLCBUT0JOKDB4ZWU4YzA3YTgsIDB4YzhhMjA4ZjMpLAot
ICAgICAgICAgVE9CTigweGUxMGQ0OTk5LCAweDZmZTgzOTNmKSwgVE9CTigweDBmODA5YTNmLCAw
eGU5MWYzYTMyKSwKLSAgICAgICAgIFRPQk4oMHg2MTA5NmQxYywgMHg4MDJmNjNjOCksIFRPQk4o
MHgyODllMTQ2MiwgMHg1Nzc1MGQzZCksCi0gICAgICAgICBUT0JOKDB4ZWQwNjE2N2UsIDB4OTg4
OWZlZWEpLCBUT0JOKDB4ZDVjOWMwZTIsIDB4ZTA5OTM5MDkpLAotICAgICAgICAgVE9CTigweDQ2
ZmNhMGQ4LCAweDU2NTA4YWM2KSwgVE9CTigweDkxODI2MDQ3LCAweDRmMWI4ZTgzKSwKLSAgICAg
ICAgIFRPQk4oMHg0ZjJjODc3YSwgMHg5YTRhMjc1MSksIFRPQk4oMHg3MWJkMDA3MiwgMHhjYWU2
ZmVhZCksCi0gICAgICAgICBUT0JOKDB4MzhkZjhkY2MsIDB4MDZhYTE5NDEpLCBUT0JOKDB4NWEw
NzRiNGMsIDB4NjNiZWVhYTgpLAotICAgICAgICAgVE9CTigweGQ2ZDY1OTM0LCAweGMxY2VjOGVk
KSwgVE9CTigweGE2ZWNiNDllLCAweGFhYmMwM2JkKSwKLSAgICAgICAgIFRPQk4oMHhhYWRlOTFj
MiwgMHhkZThhODQxNSksIFRPQk4oMHhjZmIwZWZkZiwgMHg2OTExMzZlMCksCi0gICAgICAgICBU
T0JOKDB4MTFhZjQ1ZWUsIDB4MjNhYjM0OTUpLCBUT0JOKDB4YTEzMmRmODgsIDB4MGI3NzQ2M2Qp
LAotICAgICAgICAgVE9CTigweDg5MjNjMTVjLCAweDgxNWQwNmY0KSwgVE9CTigweGMzY2ViM2Y1
LCAweDBkNjFhNDM2KSwKLSAgICAgICAgIFRPQk4oMHhhZjUyMjkxZCwgMHhlODhmYjFkYSksIFRP
Qk4oMHhlYTA1Nzk3NCwgMHgxZGExMjE3OSksCi0gICAgICAgICBUT0JOKDB4YjBkNzIxOGMsIDB4
ZDJmZWY3MjApLCBUT0JOKDB4NmMwODk5YzksIDB4OGUxZDg4NDUpLAotICAgICAgICAgVE9CTigw
eDk4MTU3NTA0LCAweDc1MmRkYWQ3KSwgVE9CTigweGQ2MGJkNzRmLCAweGExYTY4YTk3KSwKLSAg
ICAgICAgIFRPQk4oMHg3MDQ3YTNhOSwgMHhmNjU4ZmI5OSksIFRPQk4oMHgxZjVkODZkNiwgMHg1
Zjg1MTFlNCksCi0gICAgICAgICBUT0JOKDB4YjhhNGJjNDIsIDB4NGI1YTZkODgpLCBUT0JOKDB4
NjllYjJjMzMsIDB4MWFiZWZhN2QpLAotICAgICAgICAgVE9CTigweDk1YmYzOWU4LCAweDEzYzlj
NTEwKSwgVE9CTigweGY1NzE5NjBhLCAweGQ0OGFhYjQzKSwKLSAgICAgICAgIFRPQk4oMHg3ZThj
ZmJjZiwgMHg3MDRlMjNjNiksIFRPQk4oMHhjNzFiN2QyMiwgMHgyOGFhYTY1YiksCi0gICAgICAg
ICBUT0JOKDB4YTA0MWIyYmQsIDB4MjQ1ZTNjODMpLCBUT0JOKDB4NjliOTg4MzQsIDB4ZDIxODU0
ZmYpLAotICAgICAgICAgVE9CTigweDg5ZDIyN2EzLCAweDk2M2JmZWVjKSwgVE9CTigweDk5OTQ3
YWFhLCAweGRlN2RhN2NiKSwKLSAgICAgICAgIFRPQk4oMHgxZDllZTlkYiwgMHhlZTY4YTliMSks
IFRPQk4oMHgwYTA4ZjAwMywgMHg2OThlYzM2OCksCi0gICAgICAgICBUT0JOKDB4ZTllYTQwOTQs
IDB4NzhlZjI0ODcpLCBUT0JOKDB4YzhkMmQ0MTUsIDB4MDJjZmVjMjYpLAotICAgICAgICAgVE9C
TigweGM1MmY5YTZlLCAweGI3ZGNmMzI4KSwgVE9CTigweDBlZDQ4OWUzLCAweDg1YjZhOTM3KSwK
LSAgICAgICAgIFRPQk4oMHg5Yjk0OTg2YiwgMHhiZWYzMzY2ZSksIFRPQk4oMHgwZGU1OWM3MCwg
MHhlZGRkZGRiOCksCi0gICAgICAgICBUT0JOKDB4ZmZkYjc0OGMsIDB4ZWFkZGRiZTIpLCBUT0JO
KDB4OWI5Nzg0YmIsIDB4ODI2NmVhNDApLAotICAgICAgICAgVE9CTigweDE0MmI1NTAyLCAweDFh
OTM1MDdhKSwgVE9CTigweGI0Y2QxMTg3LCAweDhkM2MwNmNmKSwKLSAgICAgICAgIFRPQk4oMHhk
ZjcwZTc2YSwgMHg5MWVjM2Y0MCksIFRPQk4oMHg0ODRlODFhZCwgMHg0ZTc1NTNjMiksCi0gICAg
ICAgICBUT0JOKDB4ODMwZjg3YjUsIDB4MjcyZTlkNmUpLCBUT0JOKDB4ZWExYzkzZTUsIDB4YzZm
ZjUxNGEpLAotICAgICAgICAgVE9CTigweDY3Y2MyYWRjLCAweGM0MTkyYThlKSwgVE9CTigweGM3
N2UyN2UyLCAweDQyZjQ1MzVhKSwKLSAgICAgICAgIFRPQk4oMHg5Y2RiYWIzNiwgMHhkMmI3MTNj
NSksIFRPQk4oMHg4NjI3NGVhMCwgMHhjZjdiMGNkMyksCi0gICAgICAgICBUT0JOKDB4Nzg0Njgw
ZjMsIDB4MDlhZjgyNmIpLCBUT0JOKDB4YmZjYzgzN2EsIDB4MGM3MmRlYTMpLAotICAgICAgICAg
VE9CTigweGE4YmRmZTlkLCAweGQ2NTI5YjczKSwgVE9CTigweDcwOGFhMjI4LCAweDYzYTg4MDAy
KSwKLSAgICAgICAgIFRPQk4oMHg2YzdhOWE1NCwgMHhjOTFkNDViOSksIFRPQk4oMHhkZjFhMzhi
YiwgMHhmZDAwNGY1NiksCi0gICAgICAgICBUT0JOKDB4MmU4YzlhMjYsIDB4YjhiYWQ4NTMpLCBU
T0JOKDB4MmQ1MmNlYTMsIDB4MzcyM2VhZTcpLAotICAgICAgICAgVE9CTigweDA1NGQ2ZDgxLCAw
eDU2Y2EyODMwKSwgVE9CTigweGEzMzE3ZDE0LCAweDlhOGRjNDExKSwKLSAgICAgICAgIFRPQk4o
MHhhMDg2NjJmZSwgMHhmZDRkZGVkYSksIFRPQk4oMHhlZDJhMTUzYSwgMHhiNTVkNzkyYiksCi0g
ICAgICAgICBUT0JOKDB4NzAzNWMxNmEsIDB4YmZjNmU5NDQpLCBUT0JOKDB4YjZiYzU4MzQsIDB4
MDAxNzFjZjMpLAotICAgICAgICAgVE9CTigweGUyNzE1MmIzLCAweDgzZDEwMmI2KSwgVE9CTigw
eGZlNjk1YTQ3LCAweDA2NDZiODQ4KSwKLSAgICAgICAgIFRPQk4oMHhhNWJiMDlkOCwgMHg5MTZl
NmQzNyksIFRPQk4oMHhiNDI2OWQ2NCwgMHgwZDE3MDE1ZSksCi0gICAgICAgICBUT0JOKDB4OGQ4
MTU2YTEsIDB4MGExZDIyODUpLCBUT0JOKDB4ZmVlZjZjNTEsIDB4NDZkMjZkNzIpLAotICAgICAg
ICAgVE9CTigweDlkYWM1N2M4LCAweDRjNTQzNGE3KSwgVE9CTigweDAyODJlNWJlLCAweDU5ZDM5
ZTMxKSwKLSAgICAgICAgIFRPQk4oMHhlZGZmZjE4MSwgMHg3MjFjNDg2ZCksIFRPQk4oMHgzMDFi
YWYxMCwgMHhiYzU4ODI0ZSksCi0gICAgICAgICBUT0JOKDB4ODEzNmE2YWEsIDB4MDA1NzAwMzEp
LCBUT0JOKDB4NTVhYWY3OGMsIDB4MWNkZGRlNjgpLAotICAgICAgICAgVE9CTigweDI2ODI5Mzcx
LCAweDU5YzYzOTUyKSwgVE9CTigweDNhM2JkMjc0LCAweDhiYzI1YmFmKSwKLSAgICAgICAgIFRP
Qk4oMHhlY2RmODY1NywgMHhiN2U1MmRjMyksIFRPQk4oMHgyZGQ4YzA4NywgMHhmZDc4ZTZjOCks
Ci0gICAgICAgICBUT0JOKDB4MjA1NTMyNzQsIDB4ZjU1MzE0NjEpLCBUT0JOKDB4OGI0YTEyODEs
IDB4NWQ5NTQ5OWIpLAotICAgICAgICAgVE9CTigweGUyYzg3NjNhLCAweDFhODBmOWQyKSwgVE9C
TigweGQxZGJlMzJiLCAweDRkZGVjNzU4KSwKLSAgICAgICAgIFRPQk4oMHhhZjEyMjEwZCwgMHgz
MGMzNDE2OSksIFRPQk4oMHhiYTc0YTk1MywgMHg3OGJhYTUzMyksCi0gICAgICAgICBUT0JOKDB4
M2QxMzNjNmUsIDB4YTQzOGYyNTQpLCBUT0JOKDB4YTQzMTUzMWEsIDB4MjAxYmVmNWIpLAotICAg
ICAgICAgVE9CTigweDE1Mjk1ZTIyLCAweGY2NjlkN2VjKSwgVE9CTigweGNhMzc0ZjY0LCAweDM1
N2ZiNTE1KSwKLSAgICAgICAgIFRPQk4oMHg4YTg0MDZmZiwgMHhlYWEzZmRiMyksIFRPQk4oMHgx
MDZhZTQ0OCwgMHhkZjNmMmRhOCksCi0gICAgICAgICBUT0JOKDB4OGY5YjBhOTAsIDB4MzNjOGU5
YTEpLCBUT0JOKDB4MjM0NjQ1ZTIsIDB4NzFhZDU4ODUpLAotICAgICAgICAgVE9CTigweDNkMDgz
MjI0LCAweDFjMGFlZDE0KSwgVE9CTigweGYxMGE3ZDNlLCAweDdhOTQyZDQ2KSwKLSAgICAgICAg
IFRPQk4oMHg3YzExZGVlZSwgMHg0MGQ1YzliZSksIFRPQk4oMHhiMmJhZTdmZiwgMHhiYTg0ZWQ5
OCksCi0gICAgICAgICBUT0JOKDB4OTNlOTcxMzksIDB4YWFkNThkZGQpLCBUT0JOKDB4M2Q4NzI3
OTYsIDB4M2Y2ZDFmYTMpLAotICAgICAgICAgVE9CTigweDQ4M2FjYTgxLCAweDg1NjlmZjEzKSwg
VE9CTigweDhiODlhNWZiLCAweDlhNjAwZjcyKSwKLSAgICAgICAgIFRPQk4oMHg0Y2JjMjdjMywg
MHhjMDZmMmI4NiksIFRPQk4oMHgyMjEzMDcxMywgMHg2M2FkOWMwYiksCi0gICAgICAgICBUT0JO
KDB4YjUzNThiMWUsIDB4NDhhYzI4NDApLCBUT0JOKDB4MTgzMTEyOTQsIDB4ZWNiYTk0NzcpLAot
ICAgICAgICAgVE9CTigweGRhNThmOTkwLCAweGE2OTQ2YjQzKSwgVE9CTigweDMwOThiYWY5LCAw
eDlhYjQxODE5KSwKLSAgICAgICAgIFRPQk4oMHg2NmM0YzE1OCwgMHg0MTk4ZGE1MiksIFRPQk4o
MHhhYjRmYzE3YywgMHgxNDZiZmQxYiksCi0gICAgICAgICBUT0JOKDB4MmYwYTRjM2MsIDB4YmYz
NmE5MDgpLCBUT0JOKDB4MmFlOWUzNGIsIDB4NThjZjc4MzgpLAotICAgICAgICAgVE9CTigweGY0
MTE1MjllLCAweDNmYTExYjFmKSwgVE9CTigweDIxZTQzNjc3LCAweDk3NGFmMmI0KSwKLSAgICAg
ICAgIFRPQk4oMHg3YzIwOTU4ZSwgMHhjMjMwNzkzYiksIFRPQk4oMHg3MTBlYTg4NSwgMHgxNmU4
NDBmMyksCi0gICAgICAgICBUT0JOKDB4ZmMwYjIxZmMsIDB4YzVkYzY3Y2YpLCBUT0JOKDB4MDhk
NTE2NDcsIDB4ODg0MDU3MTgpLAotICAgICAgICAgVE9CTigweGQ5NTVjMjFmLCAweGNmZTQ5ZWI3
KSwgVE9CTigweDk3MjJhNWQ1LCAweDU2ZGQ0YTFmKSwKLSAgICAgICAgIFRPQk4oMHhjOWVmNTBl
MiwgMHhjODYxYmFhNSksIFRPQk4oMHhjMGMyMWE1ZCwgMHg5NTA1YWMzZSksCi0gICAgICAgICBU
T0JOKDB4YWY2YjlhMzMsIDB4OGI3YzA2M2YpLCBUT0JOKDB4YzYzNzAzMzksIDB4MmY0Nzc5YzEp
LAotICAgICAgICAgVE9CTigweDIyZGY5OWM3LCAweDYzODE2N2MzKSwgVE9CTigweGZlNmZmZTc2
LCAweDc5NWRiMzBjKSwKLSAgICAgICAgIFRPQk4oMHgyYjgyMmQzMywgMHhhNDg1NDk4OSksIFRP
Qk4oMHhmZWYwMzFkZCwgMHgzMDU2M2FhNSksCi0gICAgICAgICBUT0JOKDB4MTZiMDlmODIsIDB4
ZDU3YzY2N2YpLCBUT0JOKDB4YzcwMzEyY2UsIDB4Y2MwYjc2ZjEpLAotICAgICAgICAgVE9CTigw
eGJmMDRhOWU2LCAweGM5MTE4YWVjKSwgVE9CTigweDgyZmNiNDE5LCAweDM0MDlkMTMzKSwKLSAg
ICAgICAgIFRPQk4oMHgxYThhYjM4NSwgMHhhYjQ1ZDQ0ZCksIFRPQk4oMHhmYmEwNzIyMiwgMHg2
MTdiODNhMyksCi0gICAgICAgICBUT0JOKDB4YjA1ZjUwZGQsIDB4NThlODFiNTIpLCBUT0JOKDB4
MWQ4ZGI1NTMsIDB4MjFjZTVhZmYpLAotICAgICAgICAgVE9CTigweDMwOTdiOGQ0LCAweGUzNDRh
ODczKSwgVE9CTigweDdkOGQxMTZkLCAweGZlMzZkNTNlKSwKLSAgICAgICAgIFRPQk4oMHg2ZGIy
MmY1OCwgMHg3ODc1ZTc1MCksIFRPQk4oMHgyZGM1ZTM3MywgMHg0M2UxNDRlYSksCi0gICAgICAg
ICBUT0JOKDB4YzA1ZjMyZTYsIDB4ZTc5OWViOTUpLCBUT0JOKDB4ZTllNWY0ZGYsIDB4Njg5OWU2
ZWMpLAotICAgICAgICAgVE9CTigweGJkYzNiZDY4LCAweDFmYWIyM2Q1KSwgVE9CTigweGI3MmI4
YWI3LCAweDczYWY2MGU2KSwKLSAgICAgICAgIFRPQk4oMHg4ZGIyN2FlMCwgMHgyY2VjYzg0YSks
IFRPQk4oMHg2MDAwMTZkOCwgMHg3YmRiODcxYyksCi0gICAgICAgICBUT0JOKDB4NDJhNDRiMTMs
IDB4ZDdjNDZmNTgpLCBUT0JOKDB4Yjg5MTk3MjcsIDB4YzNhNzdkMzkpLAotICAgICAgICAgVE9C
TigweGNmYzZiYmJkLCAweGRhZmQ2MDg4KSwgVE9CTigweDFhNzQwMTQ2LCAweDZiZDIwZDM5KSwK
LSAgICAgICAgIFRPQk4oMHg4Yzc0N2FiZCwgMHg5OGM0MTA3MiksIFRPQk4oMHg0YzkxZTc2NSwg
MHhiZGY2OGVhMSksCi0gICAgICAgICBUT0JOKDB4N2M5NWU1Y2EsIDB4MDg4MTlhNzgpLCBUT0JO
KDB4Y2Y0OGI3MjksIDB4Yzk1ODc5MjEpLAotICAgICAgICAgVE9CTigweDA5MWM3YzVmLCAweGRl
YmJjYzdkKSwgVE9CTigweDZmMjg3NDA0LCAweGYwZTA1MTQ5KSwKLSAgICAgICAgIFRPQk4oMHhm
ODNiNWFjMiwgMHgyNmNkNDRlYyksIFRPQk4oMHg4OGFlMzJhNiwgMHhjZmVhMjUwZSksCi0gICAg
ICAgICBUT0JOKDB4NmFjNTA0N2EsIDB4MWQwNmViYzUpLCBUT0JOKDB4YzdlNTUwYjQsIDB4ZDQz
NGY3ODEpLAotICAgICAgICAgVE9CTigweDYxYWIxY2YyLCAweDVjNzI3YmQyKSwgVE9CTigweDJl
NGJhZGIxLCAweDFjZjkxNWIwKSwKLSAgICAgICAgIFRPQk4oMHgxYjRkYWRlYywgMHhmNjlkMzky
MCksIFRPQk4oMHhlNjFiMWNhNiwgMHhmMTRjMWRmZSksCi0gICAgICAgICBUT0JOKDB4OTBiNDc5
Y2MsIDB4YmQ2YmQ1MWYpLCBUT0JOKDB4ODAyNGU0MDEsIDB4ODA0NWVjMzApLAotICAgICAgICAg
VE9CTigweGNhYjI5Y2EzLCAweDI1ZWYwZTYyKSwgVE9CTigweDRmMmU5NDE2LCAweDQ5ZTRlYmMw
KSwKLSAgICAgICAgIFRPQk4oMHg0NWViNDBlYywgMHgwY2NjZWQ1OCksIFRPQk4oMHgyNWNkNGI5
YywgMHgwZGE0NGY5OCksCi0gICAgICAgICBUT0JOKDB4NDNlMDY0NTgsIDB4ODcxODEyYzYpLCBU
T0JOKDB4OTlmODBkNTUsIDB4MTZjZWY2NTEpLAotICAgICAgICAgVE9CTigweDU3MTM0MGM5LCAw
eGNlNmRjMTUzKSwgVE9CTigweDEzOGQ1MTE3LCAweGQ4NjY1NTIxKSwKLSAgICAgICAgIFRPQk4o
MHhhY2RiNDViYywgMHg0ZTA3MDE0ZCksIFRPQk4oMHgyZjM0YmIzOCwgMHg4NGI2MGI5MSksCi0g
ICAgICAgICBUT0JOKDB4ZjQ0YTRmZDIsIDB4MmFlODkyMWUpLCBUT0JOKDB4YjAzOTI4OGUsIDB4
ODkyYmExZTIpLAotICAgICAgICAgVE9CTigweDlkYTUwMTc0LCAweGIxYzE4MGIyKSwgVE9CTigw
eDZiNzBhYjY2LCAweDE2OTNkYzg3KSwKLSAgICAgICAgIFRPQk4oMHg3ZTliYWJjOSwgMHhlNzA1
NzQ4MSksIFRPQk4oMHg0NTgxZGRlZiwgMHg5YzgwZGM0MSksCi0gICAgICAgICBUT0JOKDB4MGM4
OTBkYTksIDB4NTEyOTQ2ODIpLCBUT0JOKDB4MGI1NjI5ZDMsIDB4M2Y0NzM2ZTUpLAotICAgICAg
ICAgVE9CTigweDIzNDBjNzllLCAweGIwNmY1YjQxKSwgVE9CTigweGE0MmU4NGNlLCAweDRlMjQz
NDY5KSwKLSAgICAgICAgIFRPQk4oMHhmOWEyMDEzNSwgMHgwNDVhNzFhOSksIFRPQk4oMHhlZmJm
YjQxNSwgMHhkMjdiNmZiNiksCi0gICAgICAgICBUT0JOKDB4MjVlYmVhMjMsIDB4OWQzM2NkNmYp
LCBUT0JOKDB4OWNhZWRiODgsIDB4YWE2YzBhZjgpLAotICAgICAgICAgVE9CTigweDUzZGM3ZTlh
LCAweGQ5Y2U2Zjk2KSwgVE9CTigweDM4OTdmOWZkLCAweDUxZTBiMTVhKSwKLSAgICAgICAgIFRP
Qk4oMHhmNTFjYjFmOCwgMHg4ZTVkNzg4ZSksIFRPQk4oMHgxYWVjN2JhOCwgMHhlMWQ0OTBlZSks
Ci0gICAgICAgICBUT0JOKDB4MjY1OTkxZTAsIDB4Y2M1OGNiM2MpLCBUT0JOKDB4OWYzMDZlOGMs
IDB4OWZjM2FkMzEpLAotICAgICAgICAgVE9CTigweDVmZWQwMDZlLCAweDUwNDBhMGFjKSwgVE9C
TigweGNhOWQ1MDQzLCAweGZiNDc2ZjJlKSwKLSAgICAgICAgIFRPQk4oMHhhMTljMDZlOCwgMHhi
ZWVhN2EyMyksIFRPQk4oMHhkMjg2NTgwMSwgMHgwZWRhYmI2MyksCi0gICAgICAgICBUT0JOKDB4
ZGI5MjI5M2YsIDB4Njk2NzQ2OWEpLCBUT0JOKDB4Mjg5NGQ4MzksIDB4OGQ4YThlZDgpLAotICAg
ICAgICAgVE9CTigweDg3YzllNDA2LCAweGJiYzc3MTIyKSwgVE9CTigweDg2NzFjNmYxLCAweDJl
YTNhMjZhKSwKLSAgICAgICAgIFRPQk4oMHhlNDJkZjhkNiwgMHhkN2RlOTg1MyksIFRPQk4oMHgy
ZTNjZTM0NiwgMHhiMWYyYmNjNyksCi0gICAgICAgICBUT0JOKDB4ZGE2MDFkZmMsIDB4ODk5ZDUw
Y2YpLCBUT0JOKDB4YmZjOTEzZGUsIDB4ZmIxYjU5OGYpLAotICAgICAgICAgVE9CTigweDgxYzQ5
MDlmLCAweGU2MWY3OTA4KSwgVE9CTigweDE5MmUzMDRmLCAweDliYmM3YjI5KSwKLSAgICAgICAg
IFRPQk4oMHhjM2VkODczOCwgMHhjMTA0YjMzOCksIFRPQk4oMHhlZGJlOWU0NywgMHg3ODNmNWQ2
MSksCi0gICAgICAgICBUT0JOKDB4MGMwNmU5YmUsIDB4MmRiMzA2NjApLCBUT0JOKDB4ZGEzZTYx
M2YsIDB4YzBlYjdkOGUpLAotICAgICAgICAgVE9CTigweGQ4ZmEzZTk3LCAweDMyMmUwOTZlKSwg
VE9CTigweGZlYmQ5MWU4LCAweGQzMzZlMjQ3KSwKLSAgICAgICAgIFRPQk4oMHg4ZjEzY2NjNCwg
MHhkZjY1NWE0OSksIFRPQk4oMHhhOWUwMGRmYywgMHg1ZWIyMDIxMCksCi0gICAgICAgICBUT0JO
KDB4ODQ2MzFkMGYsIDB4YzY1NmI2ZWEpLCBUT0JOKDB4OTNhMDU4Y2QsIDB4ZDhjMGQ5NDcpLAot
ICAgICAgICAgVE9CTigweDY4NDY5MDRhLCAweDY3YmQzNDQ4KSwgVE9CTigweDRhM2Q0ZTFhLCAw
eGYzOTRmZDVjKSwKLSAgICAgICAgIFRPQk4oMHhjMTAyYzFhNSwgMHhkYjIyNWY1MiksIFRPQk4o
MHhlMzQ1NWJiYSwgMHhmYzRmNWU5YSksCi0gICAgICAgICBUT0JOKDB4NmIzNjk4NWIsIDB4NGI5
YWQxY2UpLCBUT0JOKDB4YTk4MTg1MzYsIDB4NWJiN2Y3OTMpLAotICAgICAgICAgVE9CTigweDZj
MjVlMWQwLCAweDQ4YjFhNDE2KSwgVE9CTigweDEzODFkZDUzLCAweDNjODFiZWU3KSwKLSAgICAg
ICAgIFRPQk4oMHhkMmEzMGQ2MSwgMHg3YTRhNzYyMCksIFRPQk4oMHhjODQxMjkyNiwgMHgzOWI4
OTQ0YyksCi0gICAgICAgICBUT0JOKDB4M2MxYzZmYmUsIDB4N2E5N2MzM2EpLCBUT0JOKDB4OTQx
ZTU0MWQsIDB4OTM4NjY0ZTcpLAotICAgICAgICAgVE9CTigweDQxNzQ5OWU4LCAweDRhMzRmMjM5
KSwgVE9CTigweDE1ZmRiODNjLCAweGI5MDQwMmQ1KSwKLSAgICAgICAgIFRPQk4oMHhiNzVmNDZi
ZiwgMHg0MzNhYTgzMiksIFRPQk4oMHhiNjFlMTVhZiwgMHg2MzIxNWRiMSksCi0gICAgICAgICBU
T0JOKDB4YWFiZTU5ZDQsIDB4YTEyN2Y4OWEpLCBUT0JOKDB4NWQ1NDFlMGMsIDB4MDdlODE2ZGEp
LAotICAgICAgICAgVE9CTigweGFhYmEwNjU5LCAweGE2MThiNjkyKSwgVE9CTigweDU1MzI3NzMz
LCAweDE3MjY2MDI2KSwKLSAgICAgICAgIFRPQk4oMHhhZjUzYTBmYywgMHg5NWY1NzU1MiksIFRP
Qk4oMHgzMjk0NzY1MCwgMHg2Y2FjYjBjOSksCi0gICAgICAgICBUT0JOKDB4MjUzZmY1OGQsIDB4
YzgyMWJlMDEpLCBUT0JOKDB4YjAzMDk1MzEsIDB4YTA2ZjExNDYpLAotICAgICAgICAgVE9CTigw
eDU5YmJiZGY1LCAweDA1YzJlNTRkKSwgVE9CTigweDE1OGYyN2FkLCAweDI2ZThkZDIyKSwKLSAg
ICAgICAgIFRPQk4oMHhjYzViN2ZmYiwgMHgzOTdlMWU1MyksIFRPQk4oMHhhZTAzZjY1YiwgMHg3
ZmMxZTUwZCksCi0gICAgICAgICBUT0JOKDB4YTk3ODRlYmQsIDB4OWM5NWYwZjkpLCBUT0JOKDB4
NWVkOWRlYjIsIDB4MjQ2NDA3NzEpLAotICAgICAgICAgVE9CTigweDMxMjQ0YWY3LCAweDAzNTU2
MWM0KSwgVE9CTigweDg3MzMyZjNhLCAweDdlZTg1N2RlKSwKLSAgICAgICAgIFRPQk4oMHgwOWUx
NmU5ZSwgMHgyYjllMGQ4OCksIFRPQk4oMHg1MmQ5MTBmNCwgMHg1NmEwNjA0OSksCi0gICAgICAg
ICBUT0JOKDB4NTA3ZWQ0NzcsIDB4YTk1OTJmNDgpLCBUT0JOKDB4ODVjYjkxN2IsIDB4MjM2NWQ2
NzgpLAotICAgICAgICAgVE9CTigweGY4NTExYzkzLCAweDRjODk5OGQxKSwgVE9CTigweDIxODZh
M2YxLCAweDczMGVhNThmKSwKLSAgICAgICAgIFRPQk4oMHg1MDE4OTYyNiwgMHhiMjAyOWRiMCks
IFRPQk4oMHg5MTM3YTZkOSwgMHgwMmNlYjc1YSksCi0gICAgICAgICBUT0JOKDB4MmZlMTdmMzcs
IDB4NzQ4YmM4MmMpLCBUT0JOKDB4ODdjMmU5MzEsIDB4ODA0NjlmOGMpLAotICAgICAgICAgVE9C
TigweDg1MGY3MWNkLCAweGJmODkxYWEyKSwgVE9CTigweDBjYTFiODliLCAweDc1ZWMzZDhkKSwK
LSAgICAgICAgIFRPQk4oMHg1MTZjNDNhYSwgMHg1ZTFjZDNjZCksIFRPQk4oMHg4OTM5NzgwOCwg
MHg5YTg4N2MyOCksCi0gICAgICAgICBUT0JOKDB4MDA1OWM2OTksIDB4ZGRlYTFmOWYpLCBUT0JO
KDB4NzczN2Q2ZmEsIDB4OGU2ODY4ZjcpLAotICAgICAgICAgVE9CTigweDZkOTM3NDZhLCAweDYw
ZjE1MjRiKSwgVE9CTigweDM2OTg1ZTU1LCAweGJhMDUyYWE3KSwKLSAgICAgICAgIFRPQk4oMHg0
MWIxZDMyMiwgMHhlZDkyM2VhNSksIFRPQk4oMHgzNDI5NzU5ZiwgMHgyNTg1MmExMSksCi0gICAg
ICAgICBUT0JOKDB4YmVjYTZlYzMsIDB4MDkyZTlmNDEpLCBUT0JOKDB4M2EyMzhjNjYsIDB4NjIy
NTZiYmQpLAotICAgICAgICAgVE9CTigweGQ4Mjk1OGVhLCAweDcwYWQ0ODdkKSwgVE9CTigweDRh
YzhhYWY5LCAweDY1NjEwZDkzKSwKLSAgICAgICAgIFRPQk4oMHgzZmExMDFiMSwgMHg1ZTRjY2Fi
MCksIFRPQk4oMHg5YmY0MzBmMiwgMHg5ZGUxNGJmYiksCi0gICAgICAgICBUT0JOKDB4YTEwZjVj
YzYsIDB4NjUzMTg5OWQpLCBUT0JOKDB4NTkwMDA1ZmIsIDB4ZWE4Y2UxN2QpLAotICAgICAgICAg
VE9CTigweGM0Mzc5MTJmLCAweDI0NTQ0Y2I2KSwgVE9CTigweDk5ODdiNzFhLCAweGQ3OWFjMmUz
KSwKLSAgICAgICAgIFRPQk4oMHgxM2UzZDlkZCwgMHhjMDU4YTIxMiksIFRPQk4oMHgwMDA3NWFh
YywgMHhkMmRlOTYwNiksCi0gICAgICAgICBUT0JOKDB4ODBhYjUwOGIsIDB4NmNhYzgzNjkpLCBU
T0JOKDB4ODc4NDJiZTcsIDB4ZjU0ZjZjODkpLAotICAgICAgICAgVE9CTigweGE3YWQ2NjNkLCAw
eDZiYzUzMmE0KSwgVE9CTigweDY3ODEzZGU3LCAweDc4YTkxYmM4KSwKLSAgICAgICAgIFRPQk4o
MHg1ZGNiNjFjZSwgMHhjMzQyNzIzOSksIFRPQk4oMHg1ZjNjN2NmMCwgMHhjNTY5MzRkOSksCi0g
ICAgICAgICBUT0JOKDB4YzA3OWUwZmIsIDB4ZTMxOTE1OTEpLCBUT0JOKDB4ZTQwODk2YmQsIDB4
YjAxYWFkYTcpLAotICAgICAgICAgVE9CTigweDhkNDY2NzkxLCAweDA0OTJkMjVmKSwgVE9CTigw
eDhhZWIzMGM5LCAweGU3NDA4Mjc2KSwKLSAgICAgICAgIFRPQk4oMHhlOTQzNzQ5NSwgMHg5Mjg3
YWFjYyksIFRPQk4oMHgyM2Q0NzA4ZCwgMHg3OWZlMDNkNCksCi0gICAgICAgICBUT0JOKDB4OGNk
YTljZjIsIDB4ZDBjMDUxOTkpLCBUT0JOKDB4NTAyZmJjMjIsIDB4ZmFlNzg0NTQpLAotICAgICAg
ICAgVE9CTigweGMwYmRhOWRmLCAweGY1NzJhMTgyKSwgVE9CTigweDVmOWI3MWI4LCAweDYxNThi
MzcyKSwKLSAgICAgICAgIFRPQk4oMHhlMGYzM2E1OSwgMHgyYjgyZGQwNyksIFRPQk4oMHg3NjMw
MjczNSwgMHg5NTIzMDMyZSksCi0gICAgICAgICBUT0JOKDB4N2ZlMWE3MjEsIDB4YzQ1MDVhMzIp
LCBUT0JOKDB4N2I2ZTNlODIsIDB4Zjc5NjQwOWYpfSwKLSAgICAgICAge1RPQk4oMHhlMzQxN2Jj
MCwgMHgzNWQwYjM0YSksIFRPQk4oMHg0NDBiMzg2YiwgMHg4MzI3YzBhNyksCi0gICAgICAgICBU
T0JOKDB4OGZiNzI2MmQsIDB4YWMwMzYyZDEpLCBUT0JOKDB4MmM0MTExNGMsIDB4ZTBjZGY5NDMp
LAotICAgICAgICAgVE9CTigweDJiYTVjZWYxLCAweGFkOTVhMGIxKSwgVE9CTigweGMwOWIzN2E4
LCAweDY3ZDU0MzYyKSwKLSAgICAgICAgIFRPQk4oMHgyNmQ2Y2RkMiwgMHgwMWU0ODZjOSksIFRP
Qk4oMHgyMDQ3N2FiZiwgMHg0MmZmOTI5NyksCi0gICAgICAgICBUT0JOKDB4YTAwNGRjYjMsIDB4
MjkyYTkyODcpLCBUT0JOKDB4ZGRjMTVjZjYsIDB4NzdiMDkyYzcpLAotICAgICAgICAgVE9CTigw
eDA4M2E4NDY0LCAweDgwNmMwNjA1KSwgVE9CTigweDRhNjhkZjcwLCAweDNkYjk5N2IwKSwKLSAg
ICAgICAgIFRPQk4oMHg5YzEzNGU0NSwgMHgwNWJmN2RkMCksIFRPQk4oMHhhNGU2M2QzOSwgMHg4
Y2NmN2Y4YyksCi0gICAgICAgICBUT0JOKDB4YTZlNjUxN2YsIDB4NDFiNWY4YWYpLCBUT0JOKDB4
YWE4YjkzNDIsIDB4YWQ3YmMxY2MpLAotICAgICAgICAgVE9CTigweDEyNmYzNWI1LCAweDFlNzA2
YWQ5KSwgVE9CTigweGI5OWNlYmI0LCAweGMzYTllYmRmKSwKLSAgICAgICAgIFRPQk4oMHhhNzUz
ODlhZiwgMHhiZjYwOGQ5MCksIFRPQk4oMHg3NjExM2M0ZiwgMHhjNmM4OTg1OCksCi0gICAgICAg
ICBUT0JOKDB4ODBkZThlYjAsIDB4OTdlMmI1YWEpLCBUT0JOKDB4N2UxMDIyY2MsIDB4NjNiOTEz
MDQpLAotICAgICAgICAgVE9CTigweDNiZGFiNjA1LCAweDZjY2MwNjZjKSwgVE9CTigweDMzY2Ji
MTQ0LCAweGIyZWRmOTAwKSwKLSAgICAgICAgIFRPQk4oMHhjNDE3NjQ3MSwgMHg3YWY3MTVkMiks
IFRPQk4oMHhlMmY3ZjU5NCwgMHhkMDEzNGE5NiksCi0gICAgICAgICBUT0JOKDB4MmMxODczZWYs
IDB4YTQxZWM5NTYpLCBUT0JOKDB4ZTRlN2I0ZjYsIDB4Nzc4MjEzMDQpLAotICAgICAgICAgVE9C
TigweGU1YzhmZjk3LCAweDg4ZDUzNzRhKSwgVE9CTigweDJiOTE1ZTYzLCAweDgwODIzZDViKSwK
LSAgICAgICAgIFRPQk4oMHhlYTZiYzc1NSwgMHhiMmVlOGZlMiksIFRPQk4oMHg2NjU3NjI0Yywg
MHhlNzExMjY1MSksCi0gICAgICAgICBUT0JOKDB4MTU3YWYxMDEsIDB4ZGFjZTVhY2EpLCBUT0JO
KDB4YzRmZGJjZjIsIDB4MTFhNmEyNjcpLAotICAgICAgICAgVE9CTigweGRhZGRmMzQwLCAweGM0
OWM4NjA5KSwgVE9CTigweDk3ZTQ5ZjUyLCAweGU5NjA0YTY1KSwKLSAgICAgICAgIFRPQk4oMHg5
YmU4ZTc5MCwgMHg5MzdlMmFkNSksIFRPQk4oMHg4NDZlMjUwOCwgMHgzMjZlMTdmMSksCi0gICAg
ICAgICBUT0JOKDB4M2YzODAwN2EsIDB4MGJiYmMwZGMpLCBUT0JOKDB4Y2YwMzYwM2YsIDB4YjEx
ZTE2ZDYpLAotICAgICAgICAgVE9CTigweGQ2ZjgwMGUwLCAweDc0NDJmMWQ1KSwgVE9CTigweDQ3
NTYwN2QxLCAweDY2ZTBlM2FiKSwKLSAgICAgICAgIFRPQk4oMHg4MjgwN2YxNiwgMHhiN2M2NDA0
NyksIFRPQk4oMHg4ODU4ZTFlMywgMHhhNzQ5ODgzZCksCi0gICAgICAgICBUT0JOKDB4NTg1OTEy
MGIsIDB4ODIzMWVlMTApLCBUT0JOKDB4MWI4MGU3ZWIsIDB4NjM4YTFlY2UpLAotICAgICAgICAg
VE9CTigweGNiNzI1MjVhLCAweGM2YWE3M2E0KSwgVE9CTigweGE3Y2RlYTNkLCAweDg0NDQyM2Fj
KSwKLSAgICAgICAgIFRPQk4oMHg1ZWQwYzAwNywgMHhmOGFlN2MzOCksIFRPQk4oMHg2ZGIwN2E1
YywgMHgzZDc0MDE5MiksCi0gICAgICAgICBUT0JOKDB4YmU1ZTljMmEsIDB4NWZlMzZkYjMpLCBU
T0JOKDB4ZDViOWQ1N2EsIDB4NzZlOTUwNDYpLAotICAgICAgICAgVE9CTigweDU0YWMzMmU3LCAw
eDhlYmEyMGYyKSwgVE9CTigweGVmMTFjYThmLCAweDcxYjlhMzUyKSwKLSAgICAgICAgIFRPQk4o
MHgzMDVlMzczZSwgMHhmZjk4YTY1OCksIFRPQk4oMHhmZmU1YTEwMCwgMHg4MjNlYjY2NyksCi0g
ICAgICAgICBUT0JOKDB4NTc0NzdiMTEsIDB4ZTUxNzMyZDIpLCBUT0JOKDB4ZGZkNmViMjgsIDB4
MjUzOGZjMGUpLAotICAgICAgICAgVE9CTigweDVjNDNiMGNjLCAweDNiMzllZWM1KSwgVE9CTigw
eDZhZjEyNzc4LCAweGNiMzZjYzU3KSwKLSAgICAgICAgIFRPQk4oMHg3MGIwODUyZCwgMHgwNmM0
MjVhZSksIFRPQk4oMHg2ZGY5MmY4YywgMHg1YzIyMWI5YiksCi0gICAgICAgICBUT0JOKDB4NmM4
ZDRmOWUsIDB4Y2U4MjZkOWMpLCBUT0JOKDB4ZjU5YWJhN2IsIDB4YjQ5MzU5YzMpLAotICAgICAg
ICAgVE9CTigweDVjOGVkOGQ1LCAweGRhNjQzMDlkKSwgVE9CTigweDYxYTZkZTU2LCAweDkxYjMw
NzA0KSwKLSAgICAgICAgIFRPQk4oMHhkNmI1MmY2YSwgMHgyZjliNTgwOCksIFRPQk4oMHgwZWVl
NDE5NCwgMHg5OGM5NThhNyksCi0gICAgICAgICBUT0JOKDB4Y2RkZDlhYWIsIDB4NzcxZTRjYWEp
LCBUT0JOKDB4ODM5NjVkZmQsIDB4NzhiYzIxYmUpLAotICAgICAgICAgVE9CTigweDAyYWZmY2Uz
LCAweGIzYjUwNGY1KSwgVE9CTigweDMwODQ3YTIxLCAweDU2MWM4MjkxKSwKLSAgICAgICAgIFRP
Qk4oMHhkMmViMmNmMSwgMHg1MmJmZGEwNSksIFRPQk4oMHhlMGU0YzRlOSwgMHg2MTk3Yjk4Yyks
Ci0gICAgICAgICBUT0JOKDB4MWQzNTA3NmMsIDB4ZjhhMTcyNmYpLCBUT0JOKDB4NmMwNjA4NWIs
IDB4MmRiMTFlM2QpLAotICAgICAgICAgVE9CTigweDE1YzBjNGQ3LCAweDQ0NjNiYTE0KSwgVE9C
TigweDlkMjkyZjgzLCAweDAwMzAyMzhjKSwKLSAgICAgICAgIFRPQk4oMHgxMzExZWU4YiwgMHgz
NzI3NTM2ZCksIFRPQk4oMHhmZWVhODZlZiwgMHhiZWFlZGMxZSksCi0gICAgICAgICBUT0JOKDB4
YjlkMThjZDMsIDB4NjYxMzFlMmUpLCBUT0JOKDB4ZjMxZDk3NGYsIDB4ODBmZTI2ODIpLAotICAg
ICAgICAgVE9CTigweGI2ZTQ5ZTBmLCAweGU0MTYwMjg5KSwgVE9CTigweDdjNDhlYzBiLCAweDA4
ZTkyNzk5KSwKLSAgICAgICAgIFRPQk4oMHg4MTgxMTFkOCwgMHhkMTk4OWFhNyksIFRPQk4oMHhi
MzRmYTBhYSwgMHhlYmY5MjZmOSksCi0gICAgICAgICBUT0JOKDB4ZGI1ZmUyZjUsIDB4YTI0NTQ3
NGEpLCBUT0JOKDB4ZjgwYTZlYmIsIDB4M2M3Y2E3NTYpLAotICAgICAgICAgVE9CTigweGE3Zjk2
MDU0LCAweGFmYTA1ZGQ4KSwgVE9CTigweDI2ZGZjZjIxLCAweGZjYWYxMTllKSwKLSAgICAgICAg
IFRPQk4oMHhlMjBlZjJlMywgMHgwNTY0YmI1OSksIFRPQk4oMHhlZjRkY2E1MCwgMHg2MWNiMDJi
OCksCi0gICAgICAgICBUT0JOKDB4Y2RhNzgzOGEsIDB4NjVkMzA2NzIpLCBUT0JOKDB4OGIwOGQ1
MzQsIDB4ZmQ2NTdlODYpLAotICAgICAgICAgVE9CTigweDRjNWI0Mzk1LCAweDQ2ZDU5NWM4KSwg
VE9CTigweDM5YjU4NzI1LCAweDQyNWNiODM2KSwKLSAgICAgICAgIFRPQk4oMHg4ZWE2MTA1OSwg
MHgzZGU5YWJlMyksIFRPQk4oMHg0MDQzNDg4MSwgMHg5Y2RjMDNiZSksCi0gICAgICAgICBUT0JO
KDB4OWIyNjEyNDUsIDB4Y2ZlZGNlOGMpLCBUT0JOKDB4NzhjMzE4YjQsIDB4Y2Y1MjM0YTEpLAot
ICAgICAgICAgVE9CTigweDUxMGJjZjE2LCAweGZkZTI0Yzk5KSwgVE9CTigweDJhNzdjYjc1LCAw
eGEyYzJmZjVkKSwKLSAgICAgICAgIFRPQk4oMHg5Yzg5NWMyYiwgMHgyNzk2MGZiNCksIFRPQk4o
MHhkMzBjZTk3NSwgMHhiMGVkYTQyYiksCi0gICAgICAgICBUT0JOKDB4ZmRhODUzOTMsIDB4MWE2
MmNjMjYpLCBUT0JOKDB4MjNjNjliOTYsIDB4NTBjMGUwNTIpLAotICAgICAgICAgVE9CTigweGEy
MjdkZjE1LCAweGJmYzYzM2YzKSwgVE9CTigweDJhYzc4ODQ4LCAweDFiYWU3ZDQ4KSwKLSAgICAg
ICAgIFRPQk4oMHg0ODc4NzhmOSwgMHgxODdkMDczZCksIFRPQk4oMHg2YzJiZTkxOSwgMHg5Njdm
ODA3ZCksCi0gICAgICAgICBUT0JOKDB4NzY1ODYxZDgsIDB4MzM2ZTZkOGYpLCBUT0JOKDB4ODhi
ODk3NGMsIDB4Y2U1MjhhNDMpLAotICAgICAgICAgVE9CTigweDA5NTIxMTc3LCAweGZmNTdkMDUx
KSwgVE9CTigweDJmZjM4MDM3LCAweGZiNmExOTYxKSwKLSAgICAgICAgIFRPQk4oMHhmYzBhYmE3
NCwgMHhhM2Q3NmFkNCksIFRPQk4oMHg3Yzc2NDgwMywgMHgyNWE3ZWMxNyksCi0gICAgICAgICBU
T0JOKDB4NzUzMmQ3NWYsIDB4NDg4NzliYzgpLCBUT0JOKDB4ZWE3ZWFjYzAsIDB4NThjZTZiYzEp
LAotICAgICAgICAgVE9CTigweGM4MjE3NmI0LCAweDhlODk2YzE2KSwgVE9CTigweDlhMzBlMGIy
LCAweDJjNzUwZmVkKSwKLSAgICAgICAgIFRPQk4oMHhjMzdlMmMyZSwgMHg0MjFkM2FhNCksIFRP
Qk4oMHhmOTI2NDA3YywgMHhlODRmYTg0MCksCi0gICAgICAgICBUT0JOKDB4MThhYmMwM2QsIDB4
MTQ1NGU0MWMpLCBUT0JOKDB4MjY2MDVlY2QsIDB4M2Y3YWY2NDQpLAotICAgICAgICAgVE9CTigw
eDI0MjM0MWE2LCAweGQ2YTVlYWJmKSwgVE9CTigweDFlZGI4NGY0LCAweDIxNmI2NjhlKSwKLSAg
ICAgICAgIFRPQk4oMHhkODM2ZWRiOCwgMHgwNDAxMDEwMiksIFRPQk4oMHg1YjMzN2NlNywgMHg5
NDVlMWQ4YyksCi0gICAgICAgICBUT0JOKDB4ZDIwNzVjNzcsIDB4YzA1NWRjMTQpLCBUT0JOKDB4
MmEwZmZhMjUsIDB4ODFkODljZGYpLAotICAgICAgICAgVE9CTigweDhjZTgxNWVhLCAweDZmZmRj
YmFmKSwgVE9CTigweGEzNDI4ODc4LCAweGZiNjQ4ODY3KSwKLSAgICAgICAgIFRPQk4oMHgyNzc2
OTljZiwgMHg4ODQ2NTVmYiksIFRPQk4oMHhmYTViNWJkNiwgMHgzNjRkM2U0MSksCi0gICAgICAg
ICBUT0JOKDB4MDFmNjgwYzYsIDB4NDQxZTFjYjcpLCBUT0JOKDB4M2ZkNjFlNjYsIDB4YjcwYTdk
NjcpLAotICAgICAgICAgVE9CTigweDY2NmJhMmRjLCAweGNjNzhjZjY2KSwgVE9CTigweGIzMDE4
MTc0LCAweDZmZGJmZjc3KSwKLSAgICAgICAgIFRPQk4oMHg4ZDRkZDBkYiwgMHgxNjhkNDY2OCks
IFRPQk4oMHgyNTk0NTVkMCwgMHgxZGFiM2EyYSksCi0gICAgICAgICBUT0JOKDB4ZjU4NTY0YzUs
IDB4Y2RlM2FjZWMpLCBUT0JOKDB4NzcxNDE5MjUsIDB4MTNhZGIyNzYpLAotICAgICAgICAgVE9C
TigweDUyN2Q3MjVkLCAweDhhMzAzZjY1KSwgVE9CTigweDU1ZGViNmM5LCAweGU2ZjM4ZjdiKSwK
LSAgICAgICAgIFRPQk4oMHhmZDViYjY1NywgMHhiMWZhNzBmYiksIFRPQk4oMHhmYTA3ZjUwZiwg
MHhkODA3M2EwMCksCi0gICAgICAgICBUT0JOKDB4ZjcyZTNhYTcsIDB4YmNhMDI1MDApLCBUT0JO
KDB4ZjY4Zjg5NWQsIDB4OTk3NTc0MGQpLAotICAgICAgICAgVE9CTigweDMwMTEyMDYwLCAweDVj
YWUyYTZhKSwgVE9CTigweDAxYmQ3MjE4LCAweDAyODc0ODQyKSwKLSAgICAgICAgIFRPQk4oMHgz
ZDQyMzg5MSwgMHg3Y2U0N2JkMyksIFRPQk4oMHhhNjY2NjNjMSwgMHg3ODk1NDRmNiksCi0gICAg
ICAgICBUT0JOKDB4ODY0ZDA1ZDcsIDB4MzI3MmQ4MzgpLCBUT0JOKDB4ZTIyOTI0ZjksIDB4ZmE2
Mjk1YzUpLAotICAgICAgICAgVE9CTigweDgxODk1OTNmLCAweDZjMmZkYTMyKSwgVE9CTigweDMz
MGQ3MTg5LCAweGIxODRiNTQ0KSwKLSAgICAgICAgIFRPQk4oMHg3OWVmYTYyYywgMHhiZGUxZjcx
NCksIFRPQk4oMHgzNTc3MWM5NCwgMHhlNWNiMWE2MyksCi0gICAgICAgICBUT0JOKDB4MmY0ODI2
YjgsIDB4NjQxYzgzMzIpLCBUT0JOKDB4MDBhODk0ZmIsIDB4YzhjZWU4NTQpLAotICAgICAgICAg
VE9CTigweGI0YjlhMzliLCAweDM2MTk0ZDQwKSwgVE9CTigweGU4NTdhN2M1LCAweDc3NjEyNjAx
KSwKLSAgICAgICAgIFRPQk4oMHhmNDIwOWRkMiwgMHg0ZWNmMmY1OCksIFRPQk4oMHg4MmI5ZTY2
ZCwgMHg1YTAzMzQ4NyksCi0gICAgICAgICBUT0JOKDB4YzFlMzY5MzQsIDB4ZTRlOGI5ZGQpLCBU
T0JOKDB4ZDIzNzJjOWQsIDB4YTQyMzc3ZDcpLAotICAgICAgICAgVE9CTigweDUxZGM5NGM3LCAw
eDBlM2FlNDNiKSwgVE9CTigweDRjNTc3NjFlLCAweDA0NDc0ZjZmKSwKLSAgICAgICAgIFRPQk4o
MHhkY2RhY2QwYSwgMHgxMDU4YTMxOCksIFRPQk4oMHgzNjljZjNmNSwgMHg3ODA1M2E5YSksCi0g
ICAgICAgICBUT0JOKDB4YzZjM2RlNTAsIDB4MzFjNjhkZTIpLCBUT0JOKDB4NDY1M2E1NzYsIDB4
M2M0YjZkOWYpLAotICAgICAgICAgVE9CTigweDE2ODhkZDVhLCAweGFhNGU1Yzk3KSwgVE9CTigw
eDViZTgwYWExLCAweGI3YWIzYzc0KSwKLSAgICAgICAgIFRPQk4oMHg3MGNlZmU3YywgMHhiYzY1
YzI4MyksIFRPQk4oMHg1N2Y5NWYxMywgMHgwNjg2NzA5MSksCi0gICAgICAgICBUT0JOKDB4YTM5
MTE0ZTIsIDB4NDQxNTUwM2IpLCBUT0JOKDB4YzA4ZmY3YzYsIDB4NGNiYjE3ZTkpLAotICAgICAg
ICAgVE9CTigweDFlZmY2NzRkLCAweGQ3ZGVjOTY2KSwgVE9CTigweDZkNDY5MGFmLCAweDUzMzc2
ZjYzKSwKLSAgICAgICAgIFRPQk4oMHhmZjZmZTMyZSwgMHhlYTc0MjM3YiksIFRPQk4oMHhjNDM2
ZDE3ZSwgMHhjZDU3NTA4ZSksCi0gICAgICAgICBUT0JOKDB4MTVhYTI4ZTEsIDB4ZWRjYzQwZmUp
LCBUT0JOKDB4MGQ3NjljMDQsIDB4NTgxYmJiNDQpLAotICAgICAgICAgVE9CTigweGMyNDBiNmRl
LCAweDM0ZWFhY2RhKSwgVE9CTigweGQ5ZTExNmU4LCAweDJiYTBmMWRlKSwKLSAgICAgICAgIFRP
Qk4oMHhjYmU0NWVjNywgMHg3OTQzOGU1NSksIFRPQk4oMHg5MTc4N2M5ZCwgMHg5NmY3NTJkNyks
Ci0gICAgICAgICBUT0JOKDB4ODk3ZjUzMmIsIDB4ZjEyOWFjMmYpLCBUT0JOKDB4ZDMwN2I3Yzgs
IDB4NWEzNmUyMmMpLAotICAgICAgICAgVE9CTigweDkxOTQwNjc1LCAweDc0OWZiOGYzKSwgVE9C
TigweGQxNGY5NWQwLCAweDE1N2ZkYjI4KSwKLSAgICAgICAgIFRPQk4oMHhmZTUxZDAyOSwgMHg2
YWU1NTA0MyksIFRPQk4oMHg4OTMxZTk4ZiwgMHg0NGE4N2RlMSksCi0gICAgICAgICBUT0JOKDB4
ZTU3ZjFjYzYsIDB4MDllNGZlZTIpLCBUT0JOKDB4MGQwNjNiNjcsIDB4NGUwNzJkOTIpLAotICAg
ICAgICAgVE9CTigweDcwYTk5OGI5LCAweGVkMGU0MzE2KSwgVE9CTigweGU3NGE3MzZiLCAweDMw
NmFjYTQ2KSwKLSAgICAgICAgIFRPQk4oMHhlY2YwZmJmMiwgMHg0ZmRhOTdjNyksIFRPQk4oMHhh
NDBmNjVjYiwgMHgzZTE3OGQ5MyksCi0gICAgICAgICBUT0JOKDB4MTYyNTM2MDQsIDB4MTZkZjQy
ODUpLCBUT0JOKDB4YjBjOWJhYmIsIDB4ZDBjNTZhZTIpLAotICAgICAgICAgVE9CTigweDczMDMy
YjE5LCAweGNmYzVjZmMzKSwgVE9CTigweGU0OTdlNWMzLCAweDA5NzUyMDU2KSwKLSAgICAgICAg
IFRPQk4oMHgxMjA5NmJiNCwgMHgxNjRiZGE5NiksIFRPQk4oMHgxZWU0MjQxOSwgMHhhMGI3NGRh
MSksCi0gICAgICAgICBUT0JOKDB4OGZjMzYyNDMsIDB4NDAzODI2YmEpLCBUT0JOKDB4MGM4ZjAw
NjksIDB4ZGMwOWU2NjApLAotICAgICAgICAgVE9CTigweDg2NjdlOTgxLCAweGMyNzI1M2M5KSwg
VE9CTigweDA1YTZhZWZiLCAweDkyYjM2YTQ1KSwKLSAgICAgICAgIFRPQk4oMHhhNjJjNGIzNiwg
MHg5Y2I3YmI0NiksIFRPQk4oMHg4Mzk0ZjM3NSwgMHgxMWY3MDI3YiksCi0gICAgICAgICBUT0JO
KDB4NzQ3YmM3OWMsIDB4NWYxMDlkMGYpLCBUT0JOKDB4Y2FkODhhNzYsIDB4NWI4Y2M2MGEpLAot
ICAgICAgICAgVE9CTigweDgwYzVhNjZiLCAweDU4ZjA5ZTY4KSwgVE9CTigweGU3NTNkNDUxLCAw
eGY2MTI3ZWFjKSwKLSAgICAgICAgIFRPQk4oMHhjNDRiNzRhMSwgMHg1YjBlYzZmNSksIFRPQk4o
MHg0Nzk4OWZlNCwgMHg1Mjg5YjJiOCksCi0gICAgICAgICBUT0JOKDB4NzQ1Zjg0ODQsIDB4NThk
NmZjNzMpLCBUT0JOKDB4ZWMzNjJhNmYsIDB4ZjYxYzcwYWIpLAotICAgICAgICAgVE9CTigweDA3
MGM5OGE3LCAweGIzYThhZDQxKSwgVE9CTigweDczYTIwZmMwLCAweDdiNjNkYjUxKSwKLSAgICAg
ICAgIFRPQk4oMHhlZDJjMjE3MywgMHhmNDRjMzVmNCksIFRPQk4oMHg4YTU2MTQ5ZCwgMHg5YWNj
OWRjYSksCi0gICAgICAgICBUT0JOKDB4OThmMTc4ODEsIDB4OWFjNmUwZjQpLCBUT0JOKDB4MzYw
ZmRlYWYsIDB4YTQxM2I1ZWQpLAotICAgICAgICAgVE9CTigweDA2MjViOGY0LCAweGEzMDBiMGZk
KSwgVE9CTigweGYxZjRkNzZhLCAweDViMzIyMmQzKSwKLSAgICAgICAgIFRPQk4oMHg5ZDZmNTEw
OSwgMHg1ODdmNzZiOCksIFRPQk4oMHg4YjRlZTA4ZCwgMHgyMzE3ZmRiNSksCi0gICAgICAgICBU
T0JOKDB4ODgwODliYjcsIDB4OGM2OGIwOTUpLCBUT0JOKDB4OTU1NzBlOWEsIDB4NTgwOGQ5Yjkp
LAotICAgICAgICAgVE9CTigweGEzOTVjMzZmLCAweDM1ZDMzYWU3KSwgVE9CTigweDIwMGVhMTIz
LCAweDUwYmI1YTk0KSwKLSAgICAgICAgIFRPQk4oMHgyMGM3ODliZCwgMHgwYmFmZTg0YiksIFRP
Qk4oMHgyNDNlZjUyZCwgMHgwOTE5Mjc2YSksCi0gICAgICAgICBUT0JOKDB4MzkzNGM1NzcsIDB4
ZTIzYWUyMzMpLCBUT0JOKDB4YjkzODA3YWYsIDB4YTQ2MGQxZWMpLAotICAgICAgICAgVE9CTigw
eGI3MmE1M2IxLCAweGY4ZmE3NmE0KSwgVE9CTigweGQ4OTE0Y2IwLCAweGMzY2E0NDkxKSwKLSAg
ICAgICAgIFRPQk4oMHgyZTEyODQ5NCwgMHgzZmI0MjYyMiksIFRPQk4oMHgzYjI3MDBhYywgMHg1
MDA5MDdkNSksCi0gICAgICAgICBUT0JOKDB4ZjM3MGZiMDksIDB4MWE5NWVjNjMpLCBUT0JOKDB4
ZjhmMzBiZTIsIDB4MzFiNmRmYmQpLAotICAgICAgICAgVE9CTigweGYyYjJmOGQyLCAweDY5ZTU1
ZjE1KSwgVE9CTigweDFmZWFkODUxLCAweGNjMTMyM2U5KSwKLSAgICAgICAgIFRPQk4oMHhmYTM2
NjAxMCwgMHhkOWU1ZWVmNiksIFRPQk4oMHg2NGQ0ODdiMCwgMHhlMzE2MTA3ZSksCi0gICAgICAg
ICBUT0JOKDB4NGMwNzZiODYsIDB4ZDIzZGRjODIpLCBUT0JOKDB4MDNmZDM0NGMsIDB4N2UwMTQz
ZjApLAotICAgICAgICAgVE9CTigweGE5NTM2MmZmLCAweDMxN2FmMmM1KSwgVE9CTigweDBhZGQz
ZGI3LCAweGUxOGI3YTRmKSwKLSAgICAgICAgIFRPQk4oMHg5YzY3M2UzZiwgMHg4MjYwZTAxYiks
IFRPQk4oMHhmYmViNDllNSwgMHg1NGExY2M5MSksCi0gICAgICAgICBUT0JOKDB4OTEzNTFiZjIs
IDB4OTJmMmU0MzMpLCBUT0JOKDB4Yzc1NWU3ZWMsIDB4ODUxMTQxZWIpLAotICAgICAgICAgVE9C
TigweGM5YTk1MTM5LCAweDI5NjA3NzQ1KSwgVE9CTigweDBjYTA3NDIwLCAweGEyNmYyYjI4KSwK
LSAgICAgICAgIFRPQk4oMHhjYjI3OTBlNywgMHg0YmM2ZjlkZCksIFRPQk4oMHgzNDViYmI1OCwg
MHhhZGNhZmZjMCksCi0gICAgICAgICBUT0JOKDB4YzY1ZWEzOGMsIDB4YmUwZjI3YTIpLCBUT0JO
KDB4NjdjMjRkN2MsIDB4NjQxZmNiNTYpLAotICAgICAgICAgVE9CTigweDJjMjVmMGE3LCAweGE5
ZTJjNzU3KSwgVE9CTigweDkzZjVjZGIwLCAweDE2ZjE2YzQ5KSwKLSAgICAgICAgIFRPQk4oMHgy
Y2E1YTlkNywgMHhjNWVlMzBhMSksIFRPQk4oMHhkMTU5MzYzNSwgMHhiOTA5YjcyOSksCi0gICAg
ICAgICBUT0JOKDB4ODA0Y2U5ZjMsIDB4ZGFkZWZmNDgpLCBUT0JOKDB4ZWM0NjQ3NTEsIDB4YjA3
YzMwYzMpLAotICAgICAgICAgVE9CTigweDg5ZDY1ZmYzLCAweDllNDlhZjZhKSwgVE9CTigweGYy
ZDYyMzhhLCAweDZmM2QwMWJjKSwKLSAgICAgICAgIFRPQk4oMHgxMDk1NTYxZSwgMHgwYmNlZDg0
MyksIFRPQk4oMHg1MTc4OWUxMiwgMHhjOGExM2ZkOCksCi0gICAgICAgICBUT0JOKDB4ZDYzM2Y5
MjksIDB4NzYzMjMxZGYpLCBUT0JOKDB4NDZkZjlmN2QsIDB4ZTdjYmRkZWYpLAotICAgICAgICAg
VE9CTigweDAxYzg4OWMwLCAweGNiMjY1ZGE4KSwgVE9CTigweGZjZTFhZDEwLCAweGFmNDMzNmQy
KSwKLSAgICAgICAgIFRPQk4oMHg4ZDExMGRmNiwgMHhmYzZhMGE3ZSksIFRPQk4oMHhkZDQzMWI5
OCwgMHg2ZGE0MjVkYyksCi0gICAgICAgICBUT0JOKDB4Y2RjNGFlYWIsIDB4MTgzNGFhYmUpLCBU
T0JOKDB4ODRkZWIxMjQsIDB4ODQzOWI3ZmMpLAotICAgICAgICAgVE9CTigweDg3OTZmMTY5LCAw
eDNjMmE1OTk4KSwgVE9CTigweDliOTI0N2I0LCAweDc5NDcxOTBkKSwKLSAgICAgICAgIFRPQk4o
MHg1NWI5ZDlhNSwgMHgxMTU5NzAxNCksIFRPQk4oMHg3ZTlkZDcwZCwgMHg3YjE1NjZlZSksCi0g
ICAgICAgICBUT0JOKDB4OTRhZDc4ZjcsIDB4Y2JjZDVlNjQpLCBUT0JOKDB4MDM1OWFjMTcsIDB4
OWJkNGMwMzIpLAotICAgICAgICAgVE9CTigweDNiMTFiYWFmLCAweDdjYzIyMmFlKSwgVE9CTigw
eGE2YTZlMjg0LCAweGJhNzhlODEyKSwKLSAgICAgICAgIFRPQk4oMHg4MzkyMDUzZiwgMHgyNGNl
YTFhMCksIFRPQk4oMHhjOTdiY2U0YSwgMHgzMzYyMTQ5MSksCi0gICAgICAgICBUT0JOKDB4N2Vi
MWRiMzQsIDB4MzUzOTllZTkpLCBUT0JOKDB4NDczZjc4ZWYsIDB4ZWNlODFhZDEpLAotICAgICAg
ICAgVE9CTigweDQxZDcyZmUwLCAweGY2M2QzZDBkKSwgVE9CTigweGU2MjBiODgwLCAweGFmYWI2
MmZjKSwKLSAgICAgICAgIFRPQk4oMHg5MjA5NmJjOSwgMHg5MzE1ODM4MyksIFRPQk4oMHg0MWEy
MTM1NywgMHg4Zjg5NmY2YyksCi0gICAgICAgICBUT0JOKDB4MWI1ZWUyZmEsIDB4YzdkY2ZjYWIp
LCBUT0JOKDB4NjUwYWNmZGUsIDB4OTU0NmUwMDcpLAotICAgICAgICAgVE9CTigweGMwODFiNzQ5
LCAweGIxYjAyZTA3KSwgVE9CTigweGRhOWU0MWEwLCAweGY5ZWNhMDNkKSwKLSAgICAgICAgIFRP
Qk4oMHgwMTNiYTcyNywgMHgxNzVhNTRhYiksIFRPQk4oMHhjYTBjZDE5MCwgMHhlYTVkOGQxMCks
Ci0gICAgICAgICBUT0JOKDB4ODVlYTUyYzAsIDB4OTVmZDk2YTkpLCBUT0JOKDB4MmM1OTFiOWYs
IDB4YmM1YzM5NDApLAotICAgICAgICAgVE9CTigweDZmYjRkNGU0LCAweDJiYWQ0ZDVmKSwgVE9C
TigweGZhNGMzNTkwLCAweGZlZjAwNTliKSwKLSAgICAgICAgIFRPQk4oMHg2YTEwMjE4YSwgMHhm
NTEyMjI5NCksIFRPQk4oMHg5YTc4YTgxYSwgMHhhODU3NTFkMSksCi0gICAgICAgICBUT0JOKDB4
MDRmMjA1NzksIDB4YTk4ZTg0ZTcpLCBUT0JOKDB4ZmUxMjQyYzAsIDB4NDk5N2U1YjUpLAotICAg
ICAgICAgVE9CTigweGU3N2EyNzNiLCAweGNhMjFlMWU0KSwgVE9CTigweGZjYzhiMWVmLCAweDk0
MTE5MzlkKSwKLSAgICAgICAgIFRPQk4oMHhlMjBlYTMwMiwgMHg5MmQwNDg3YSksIFRPQk4oMHgx
NDQyZGJlYywgMHgyOTRiOTFmZSksCi0gICAgICAgICBUT0JOKDB4MWY3YTRhZmUsIDB4YmI2YjBl
OGYpLCBUT0JOKDB4MTcwMGVmNzQsIDB4Njg4OWMzMTgpLAotICAgICAgICAgVE9CTigweGY1YmJm
ZmMzLCAweDcwZjFmYzYyKSwgVE9CTigweDNiMzFkNGI2LCAweDY5Yzc5Y2NhKSwKLSAgICAgICAg
IFRPQk4oMHhlOGJjMmFhYiwgMHhhN2Y2MzQwZCksIFRPQk4oMHhiMGIwOGFiNCwgMHhhNzI1ZTEw
YSksCi0gICAgICAgICBUT0JOKDB4NDRmMDU3MDEsIDB4YWUzNDAwNTApLCBUT0JOKDB4YmE0YjMw
MTYsIDB4MWNmMGM1NjkpLAotICAgICAgICAgVE9CTigweDVhYTI5ZjgzLCAweGZiZTE5YTUxKSwg
VE9CTigweDFiOWVkNDI4LCAweGI3MWQ3NTJlKSwKLSAgICAgICAgIFRPQk4oMHgxNjY2ZTU0ZSwg
MHhlYjQ4MTlmNSksIFRPQk4oMHg2MTZjZGZlZCwgMHg5ZTE4Yjc1YiksCi0gICAgICAgICBUT0JO
KDB4MTEyZWQ1YmUsIDB4M2VlMjdiMGIpLCBUT0JOKDB4ZmJmMjgzMTksIDB4NDRjN2RlNGQpLAot
ICAgICAgICAgVE9CTigweGQ2ODVlYzg1LCAweGUwZTYwZDg0KSwgVE9CTigweDY4MDM3ZTMwLCAw
eDFkYjdlZTc4KSwKLSAgICAgICAgIFRPQk4oMHg1YjY1YmRjZCwgMHgwMDNjNGQ2ZSksIFRPQk4o
MHgzM2U3MzYzYSwgMHg5M2UyOWE2YSksCi0gICAgICAgICBUT0JOKDB4OTk1YjNhNjEsIDB4MDhk
MDc1NmMpLCBUT0JOKDB4ZDcyN2Y4NWMsIDB4MmZhZjEzNGIpLAotICAgICAgICAgVE9CTigweGZh
YzZlZGY3LCAweDFkMzM3ODIzKSwgVE9CTigweDk5YjlhYTUwLCAweDA0MzliOGI0KSwKLSAgICAg
ICAgIFRPQk4oMHg3MjJlYjEwNCwgMHhlMmI0ZTA3NSksIFRPQk4oMHg0OTk4NzI5NSwgMHg0Mzdj
NDkyNiksCi0gICAgICAgICBUT0JOKDB4YjFlNGMwZTQsIDB4NDZhOWI4MmQpLCBUT0JOKDB4ZDBj
YjMxOTcsIDB4NTdhMDA2ZjUpLAotICAgICAgICAgVE9CTigweGYzZGUwZjdkLCAweGQ3ODA4YzU2
KSwgVE9CTigweGI1YzU0ZDhmLCAweDUxZjg5NzcyKSwKLSAgICAgICAgIFRPQk4oMHg1MDBhMTE0
YSwgMHhhZGJkMzFhYSksIFRPQk4oMHg5YWZhYWFhNiwgMHgyOTVmNmNhYiksCi0gICAgICAgICBU
T0JOKDB4OTQ3MDVlMjEsIDB4MDRjZjY2N2EpLCBUT0JOKDB4ZmMyYTgxMWIsIDB4OWQzOTM1ZDcp
LAotICAgICAgICAgVE9CTigweDU2MGIwMjgwLCAweDZkMDkyNjdjKSwgVE9CTigweGYxOWVkMTE5
LCAweGY3ODBlNTNiKSwKLSAgICAgICAgIFRPQk4oMHhmMDIyN2MwOSwgMHgwNjdiNjI2OSksIFRP
Qk4oMHg5NjdiODUzMywgMHg1Y2FlZjU5OSksCi0gICAgICAgICBUT0JOKDB4MTU1YjkyNDMsIDB4
NjhlZmVlYmMpLCBUT0JOKDB4Y2Q2ZDM0ZjUsIDB4YzQ5N2JhZTYpLAotICAgICAgICAgVE9CTigw
eDFkZDhkNWQzLCAweDZjY2ViMzcwKSwgVE9CTigweDJhZWFjNTc5LCAweGE3OGQ3YmY5KSwKLSAg
ICAgICAgIFRPQk4oMHg1ZDY1MDE3ZCwgMHg3MGI2N2E2MiksIFRPQk4oMHg3MGM4ZTQ0ZiwgMHgx
N2M1M2Y2NyksCi0gICAgICAgICBUT0JOKDB4ZDFmYzA5NTAsIDB4ODZhMzRkMDkpLCBUT0JOKDB4
ZTBmY2EyNTYsIDB4ZTcxMzQ5MDcpLAotICAgICAgICAgVE9CTigweGUyNGZhMjljLCAweDgwZmRk
MzE1KSwgVE9CTigweDJjNGFjZDAzLCAweGQ4NzQ5OWFkKSwKLSAgICAgICAgIFRPQk4oMHhiYWFm
NzUxNywgMHgzYjVhOWJhNiksIFRPQk4oMHhiOWNiZTFmNiwgMHgxMmU1MWE1MSksCi0gICAgICAg
ICBUT0JOKDB4ZDg4ZWRhZTMsIDB4NWUxNTQ4OTcpLCBUT0JOKDB4ZTQzMDljM2MsIDB4NzdiNjZj
YTApLAotICAgICAgICAgVE9CTigweGY1NTU1ODA1LCAweGY2N2YzNzQ2KSwgVE9CTigweDg1ZmMz
N2JhLCAweGEzNjQwMWZmKSwKLSAgICAgICAgIFRPQk4oMHhkZjg2ZTJjYSwgMHhkOTQ5OWE1Myks
IFRPQk4oMHg2MjcwYjJhMywgMHhlY2JjOTU1YiksCi0gICAgICAgICBUT0JOKDB4YWZhZTY0ZjUs
IDB4OTc0YWQzM2IpLCBUT0JOKDB4MDRkODU5NzcsIDB4ZmU3YjJkZjEpLAotICAgICAgICAgVE9C
TigweDJhM2RiM2ZmLCAweDRhYjAzZjczKSwgVE9CTigweDBiODc4NzhhLCAweDg3MDI3NDBhKSwK
LSAgICAgICAgIFRPQk4oMHg2ZDI2M2YwMSwgMHg1YTA2MTczMiksIFRPQk4oMHhjMjU0MzBjZSwg
MHhhMzJhMTkwMSksCi0gICAgICAgICBUT0JOKDB4ZjdlYmFiM2QsIDB4ZGIxNTUwMTgpLCBUT0JO
KDB4M2E4NmY2OTMsIDB4NjNhOWI3OGUpLAotICAgICAgICAgVE9CTigweDM0OWFlMzY4LCAweGRh
OWYzODA0KSwgVE9CTigweDQ3MGYwN2ZlLCAweGExNjQzNDljKSwKLSAgICAgICAgIFRPQk4oMHhk
NTJmNGNjOSwgMHg4NTYyYmFhNSksIFRPQk4oMHhjNzRhOWU4NiwgMHgyYjI5MGRmMyksCi0gICAg
ICAgICBUT0JOKDB4ZDNhMWFhMzUsIDB4NDM0NzFhMjQpLCBUT0JOKDB4MjM5NDQ2YmUsIDB4Yjgx
OTQ1MTEpLAotICAgICAgICAgVE9CTigweGJlYzJkZDAwLCAweDgxZGNkNDRkKSwgVE9CTigweGNh
M2Q3ZjBmLCAweGM0MmFjODJkKSwKLSAgICAgICAgIFRPQk4oMHgxZjNkYjA4NSwgMHhmZGFmNDUy
MCksIFRPQk4oMHhiYjZkM2U4MCwgMHg0NTQ5ZGFmMiksCi0gICAgICAgICBUT0JOKDB4ZjU5Njlk
OGEsIDB4MTlhZDVjNDIpLCBUT0JOKDB4NzA1MmIxM2QsIDB4ZGJmZDE1MTEpLAotICAgICAgICAg
VE9CTigweDExODkwZDFiLCAweDY4MmI5MDYwKSwgVE9CTigweGE3MWQzODgzLCAweGFjMzQ0NTJj
KSwKLSAgICAgICAgIFRPQk4oMHhhNDM4MDU1YiwgMHg3ODM4MDViNCksIFRPQk4oMHg0MzI0MTI3
NywgMHg0NzI1YjIzZSksCi0gICAgICAgICBUT0JOKDB4ZjIwY2Y5NmUsIDB4NDkwMWJiZWQpLCBU
T0JOKDB4NjQxOWM3MTAsIDB4ZjQzMmEyYmIpLAotICAgICAgICAgVE9CTigweDU3YTBmYmI5LCAw
eGRmYTljZDdkKSwgVE9CTigweDU4OTExMWU0LCAweDAwZGFhMjQ5KSwKLSAgICAgICAgIFRPQk4o
MHgxOTgwOWEzMywgMHg3YjYwNTU0ZSksIFRPQk4oMHhlYTVmODg4NywgMHhlZGUyODNhNCksCi0g
ICAgICAgICBUT0JOKDB4MmQ3MTM4MDIsIDB4NTAzYmZkMzUpLCBUT0JOKDB4MTUxYmIwYWYsIDB4
NTg1ZDJhNTMpLAotICAgICAgICAgVE9CTigweDQwYjA4Zjc0LCAweDQzYjMwY2E4KSwgVE9CTigw
eGUxMGI1YmJhLCAweGQ5OTM0NTgzKSwKLSAgICAgICAgIFRPQk4oMHhlOGE1NDZkNiwgMHhiNTEx
MTBhZCksIFRPQk4oMHgxZGQ1MGU2NiwgMHgyOGUwYjZjNSksCi0gICAgICAgICBUT0JOKDB4Mjky
ZTlkNTQsIDB4Y2ZmMmI4MjEpLCBUT0JOKDB4Mzg4MjU1NWQsIDB4NDcyODE3NjApLAotICAgICAg
ICAgVE9CTigweDEzNDgzOGY4LCAweDM3MjRkNmUzKSwgVE9CTigweGYyYzY3OWUwLCAweDIyZGRj
ZGExKSwKLSAgICAgICAgIFRPQk4oMHg0MGVlODgxNSwgMHg2ZDJhNTc2OCksIFRPQk4oMHg3ZjIy
N2JkMiwgMHgxYzFlN2UyZCksCi0gICAgICAgICBUT0JOKDB4NDg3YmExMzQsIDB4ZDA0ZmY0NDMp
LCBUT0JOKDB4NzZlMmZmM2QsIDB4YzYxNGU1NGIpLAotICAgICAgICAgVE9CTigweDM2Yjg4ZDZm
LCAweGEzMTc3ZWM3KSwgVE9CTigweGJmNzMxZDUxLCAweDIzMjhmZmY1KSwKLSAgICAgICAgIFRP
Qk4oMHg3NThjYWVhMiwgMHg0OWJhMTU4ZSksIFRPQk4oMHg1YWI4ZmY0YywgMHgwMjkzODE4OCks
Ci0gICAgICAgICBUT0JOKDB4MzNlMTYwNTYsIDB4MzVlZGM1NmQpLCBUT0JOKDB4NWE2OWQzNDks
IDB4N2U5NDBkNzkpLAotICAgICAgICAgVE9CTigweDZjNGZkMDAxLCAweDAzODY2ZGNiKSwgVE9C
TigweDIwYTM4ZjU3LCAweDQ4OTNjZGVmKSwKLSAgICAgICAgIFRPQk4oMHhmYmYzZTc5MCwgMHhm
YWMzYTE1YiksIFRPQk4oMHg2ZWQ3ZWEyZSwgMHg3YTRmOGU2YiksCi0gICAgICAgICBUT0JOKDB4
YTY2M2ViNGYsIDB4YmMzYWNhODYpLCBUT0JOKDB4MjIwNjFlYTUsIDB4MDgwZDUzZjcpLAotICAg
ICAgICAgVE9CTigweDI0ODBkZmU2LCAweGY1NDY3ODNmKSwgVE9CTigweGQzOGJjNmRhLCAweDVh
MGE2NDFlKSwKLSAgICAgICAgIFRPQk4oMHhmYjA5M2NkMSwgMHgyZWRlODk2NSksIFRPQk4oMHg4
OTY1NGRiNCwgMHhhY2I0NTVjZiksCi0gICAgICAgICBUT0JOKDB4NDEzY2JmOWEsIDB4MjZlMWFk
ZWUpLCBUT0JOKDB4MjkxZjM3NjQsIDB4MzczMjk0ZDQpLAotICAgICAgICAgVE9CTigweDAwNzk3
MjU3LCAweDY0ODA4M2ZlKSwgVE9CTigweDI1ZjUwNGQzLCAweDIwOGNjMzQxKSwKLSAgICAgICAg
IFRPQk4oMHg2MzVhOGU1ZSwgMHhjM2EwZWU0MyksIFRPQk4oMHg3MGFhZWJjYSwgMHg2Nzk4OThm
ZiksCi0gICAgICAgICBUT0JOKDB4OWVlOWY1NDcsIDB4NWRjNjNkNTYpLCBUT0JOKDB4Y2U5ODc5
NjYsIDB4ZmZiMzRkMDApLAotICAgICAgICAgVE9CTigweGY5Zjg2YjE5LCAweDVlMjYzMTBhKSwg
VE9CTigweDllNDM1NDg0LCAweDM4MmE4Y2E4KSwKLSAgICAgICAgIFRPQk4oMHgyNTNiY2I4MSwg
MHhjMjM1MmZlNCksIFRPQk4oMHhhNGVhYzhiMCwgMHg0NDc0YjU3MSksCi0gICAgICAgICBUT0JO
KDB4YzFiOTc1MTIsIDB4YzFhZDhjZjgpLCBUT0JOKDB4MTkzYjRlOWUsIDB4OTllMGI2OTcpLAot
ICAgICAgICAgVE9CTigweDkzOWQyNzE2LCAweDAxZTg1ZGYwKSwgVE9CTigweDRmYjI2NWIzLCAw
eGNkNDRlYWZkKSwKLSAgICAgICAgIFRPQk4oMHgzMjFlN2RjZCwgMHhlNTFlMWFlMiksIFRPQk4o
MHg4ZTNhOGNhNiwgMHhlM2Q4YjA5NiksCi0gICAgICAgICBUT0JOKDB4OGRlNDZjYjAsIDB4NTI2
MDQ5OTgpLCBUT0JOKDB4OTEwOTlhZDgsIDB4MzkwNzJhYTcpLAotICAgICAgICAgVE9CTigweDI2
MTdmOTFjLCAweDkzYWE5NmI4KSwgVE9CTigweDBmYzg3MTZiLCAweDdmY2EyZTEzKSwKLSAgICAg
ICAgIFRPQk4oMHhhNzEwNmY1ZSwgMHg5NTMyODcyMyksIFRPQk4oMHhkMWM5YzQwYiwgMHgyNjJl
NjUyMiksCi0gICAgICAgICBUT0JOKDB4YjliYWZlODYsIDB4NDJiN2MwOTQpLCBUT0JOKDB4MTg3
MzQzOWQsIDB4MTU0M2MwMjEpLAotICAgICAgICAgVE9CTigweGUxYmFhNWRlLCAweDVjYmVmZDVk
KSwgVE9CTigweGEzNjNmYzVlLCAweDUyMWU4YWZmKSwKLSAgICAgICAgIFRPQk4oMHhlZmU2MzIw
ZCwgMHhmODYyZWFhYyksIFRPQk4oMHgxNDQxOWM2MywgMHgyMmM2NDdkYyksCi0gICAgICAgICBU
T0JOKDB4MGUwNjcwN2MsIDB4NGU0NmQ0MjgpLCBUT0JOKDB4Y2I2YzgzNGYsIDB4NGExNzhmOGYp
LAotICAgICAgICAgVE9CTigweDBmOTkzYTQ1LCAweGQzMGY5MTdjKSwgVE9CTigweGQ0YzRiMDQ5
LCAweDk4NzlhZmVlKSwKLSAgICAgICAgIFRPQk4oMHhiNjE0MmExZSwgMHg3MDUwMDA2MyksIFRP
Qk4oMHg3YzliNDFjMywgMHhhNWQ5ZDYwNSksCi0gICAgICAgICBUT0JOKDB4YmMwMGZjMmYsIDB4
MmY4YmEyYzcpLCBUT0JOKDB4MDk2NmViMmYsIDB4N2M2N2FhMjgpLAotICAgICAgICAgVE9CTigw
eDEzZjdiNTE2LCAweDVhNzg2OTcyKSwgVE9CTigweDNiZmI3NTU3LCAweDhhMmZiYmEwKSwKLSAg
ICAgICAgIFRPQk4oMHgxMzFjNGYyMywgMHg1YTJiOTYyMCksIFRPQk4oMHhiZmYzZWQyNywgMHg2
ZmFmNDZiZSksCi0gICAgICAgICBUT0JOKDB4OWI0NDczZDEsIDB4N2UxNzIzMjMpLCBUT0JOKDB4
NDIxZTg4NzgsIDB4MzM5ZjYyNDYpLAotICAgICAgICAgVE9CTigweDBmYTg1ODdhLCAweDI1YTQx
NjMyKSwgVE9CTigweGMwODE0MTI0LCAweGEzNWI2YzkzKSwKLSAgICAgICAgIFRPQk4oMHgyYjE4
YTlmNSwgMHg1OWViYjhkYiksIFRPQk4oMHgyNjRlMzM1NywgMHg3NmVkYjI5YyksCi0gICAgICAg
ICBUT0JOKDB4YWYyNDVjY2QsIDB4Yzg3YzUxZTIpLCBUT0JOKDB4MTZiMzAxNWIsIDB4NTAxZTYy
MTQpLAotICAgICAgICAgVE9CTigweGJiMzFjNTYwLCAweDBhMzg4MmNlKSwgVE9CTigweDY5NjFi
Yjk0LCAweGZlYzExZTA0KSwKLSAgICAgICAgIFRPQk4oMHgzYjgyNWI4ZCwgMHhlZmY3YTNhMCks
IFRPQk4oMHhiZWMzMzczOCwgMHhiMWRmNzMyNiksCi0gICAgICAgICBUT0JOKDB4NjhhZDc0N2Ms
IDB4OTk2MDRhMWYpLCBUT0JOKDB4ZDE1NGM5MzQsIDB4OWEzYmQ0OTkpLAotICAgICAgICAgVE9C
TigweGFjMzM1MDZmLCAweDFjYzdhOTA2KSwgVE9CTigweDczYmI1MzkyLCAweDZjNTYwZThmKSwK
LSAgICAgICAgIFRPQk4oMHg2NDI4ZmNiZSwgMHgyNjNlMzk0NCksIFRPQk4oMHhjMTE4MjhkNSwg
MHgxYzM4NzQzNCksCi0gICAgICAgICBUT0JOKDB4M2NkMDRiZTEsIDB4M2U0YjEyZmYpLCBUT0JO
KDB4YzNhYWQ5ZjksIDB4MmQ4ODY2N2MpLAotICAgICAgICAgVE9CTigweGM1MmRkY2Y4LCAweDI0
ODEyMGNmKSwgVE9CTigweDk4NWE4OTJlLCAweDJhMzg5NTMyKSwKLSAgICAgICAgIFRPQk4oMHhm
YmI0YjIxYiwgMHgzYmI4NWZhMCksIFRPQk4oMHhmOTUzNzVlMCwgMHg4ZGZjNjI2OSksCi0gICAg
ICAgICBUT0JOKDB4ZmI0ZmIwNmMsIDB4N2VlMmFjZWEpLCBUT0JOKDB4Njc4NTQyNmUsIDB4MzA5
YzRkMWYpLAotICAgICAgICAgVE9CTigweDY1OWIxN2M4LCAweGQ4Y2ViMTQ3KSwgVE9CTigweDli
NjQ5ZWVlLCAweGI3MGE1NTU0KSwKLSAgICAgICAgIFRPQk4oMHg2YjdmYTBiNSwgMHhhYzZiYzYz
NCksIFRPQk4oMHhkOTlmZTJjNywgMHgxZDZlNzMyZiksCi0gICAgICAgICBUT0JOKDB4MzBlNmU3
NjIsIDB4OGQzYWJiYTIpLCBUT0JOKDB4MThmZWU2ZTcsIDB4YTc5N2I3OTkpLAotICAgICAgICAg
VE9CTigweDVjOWQzNjBkLCAweGM2OTY0NjRkKSwgVE9CTigweGUzYmFlYjQ4LCAweDI3YmZkZTEy
KSwKLSAgICAgICAgIFRPQk4oMHgyYmY1ZGI0NywgMHhmMjMyMDZkNSksIFRPQk4oMHgyZjZkMzQy
MCwgMHgxZDI2MDE1MiksCi0gICAgICAgICBUT0JOKDB4MTdiODc2NTMsIDB4M2Y4ZmY4OWEpLCBU
T0JOKDB4NTE1N2MzMGMsIDB4Mzc4ZmE0NTgpLAotICAgICAgICAgVE9CTigweDc1MTdjNWM1LCAw
eDJkNGZiOTM2KSwgVE9CTigweGVmMjJmN2FjLCAweGU2NTE4Y2RjKSwKLSAgICAgICAgIFRPQk4o
MHhkZWI0ODNlNiwgMHhiZjg0N2E2NCksIFRPQk4oMHhmNTA4NDU1OCwgMHg5MmUwZmE4OSl9LAot
ICAgICAgICB7VE9CTigweGFiOTY1OWQ4LCAweGRmNzMwNGQ0KSwgVE9CTigweGI3MWJjZjFiLCAw
eGZmMjEwZThlKSwKLSAgICAgICAgIFRPQk4oMHhhOWEyNDM4YiwgMHhkNzNmYmQ2MCksIFRPQk4o
MHg0NTk1Y2QxZiwgMHg1ZDExYjRkZSksCi0gICAgICAgICBUT0JOKDB4OWMwZDMyOWEsIDB4NDgz
NTg1OWQpLCBUT0JOKDB4NGEwZjBkMmQsIDB4N2RiYjZlNTYpLAotICAgICAgICAgVE9CTigweGM2
MDM4ZTVlLCAweGRmOTI4YTRlKSwgVE9CTigweGM5NDI5NjIxLCAweDhmNWFkMTU0KSwKLSAgICAg
ICAgIFRPQk4oMHg5MTIxMzQ2MiwgMHhmMjNmMmQ5MiksIFRPQk4oMHg2Y2FiNzFiZCwgMHg2MGI5
NDA3OCksCi0gICAgICAgICBUT0JOKDB4NmJkZDBhNjMsIDB4MTc2Y2RlMjApLCBUT0JOKDB4NTRj
OWIyMGMsIDB4ZWU0ZDU0YmMpLAotICAgICAgICAgVE9CTigweDNjZDJkOGFhLCAweDlmMmFjMDJm
KSwgVE9CTigweDAzZjhlNjE3LCAweDIwNmVlZGIwKSwKLSAgICAgICAgIFRPQk4oMHhjN2Y2OGUx
NiwgMHg5MzA4NjQzNCksIFRPQk4oMHg4MzE0NjljNSwgMHg5MmRkM2RiOSksCi0gICAgICAgICBU
T0JOKDB4ODUyMWRmMjQsIDB4OGY5ODEzNTQpLCBUT0JOKDB4NTg3ZTIzZWMsIDB4MzU4OGEyNTkp
LAotICAgICAgICAgVE9CTigweGNiZWRmMjgxLCAweGQ3YTA5OTJjKSwgVE9CTigweDA2OTMwYTU1
LCAweDM4OTYxNDA3KSwKLSAgICAgICAgIFRPQk4oMHgwOTMyMGRlYiwgMHhiZTViYmUyMSksIFRP
Qk4oMHhhN2ZmYTViNSwgMHgyNDkxODE3ZiksCi0gICAgICAgICBUT0JOKDB4ZTZjOGI0ZDksIDB4
MDkwNjUxNjApLCBUT0JOKDB4YWM0ZjM5OTIsIDB4ZmZmNmQyYTkpLAotICAgICAgICAgVE9CTigw
eDdhYTdhMTU4LCAweDNhZTljMWJkKSwgVE9CTigweGUwYWY2ZDk4LCAweGUzN2NlMjQwKSwKLSAg
ICAgICAgIFRPQk4oMHhlNTQzNDJkOSwgMHgyOGFiMzhiNCksIFRPQk4oMHhlOGI3NTAwNywgMHgw
YTFjOThjYSksCi0gICAgICAgICBUT0JOKDB4ZWZjZTg2YWYsIDB4ZTAyMzU4ZjIpLCBUT0JOKDB4
MzFiOGI4NTYsIDB4ZWE5MjEyMjgpLAotICAgICAgICAgVE9CTigweDA1MmExOTEyLCAweDBhMWM2
N2ZjKSwgVE9CTigweGI0MDY5ZWE0LCAweGUzYWVhZDU5KSwKLSAgICAgICAgIFRPQk4oMHgzMjMy
ZDZlMiwgMHg3ZmEwM2NiMyksIFRPQk4oMHhkYjkzOGU1YiwgMHgwZmRkN2Q4OCksCi0gICAgICAg
ICBUT0JOKDB4MDRjMWQyY2QsIDB4MmNjYmZjNWQpLCBUT0JOKDB4ZDJmNDVjMTIsIDB4YWYzYTU4
MGYpLAotICAgICAgICAgVE9CTigweDU5MjYyMGI1LCAweDc4ODNlNjE0KSwgVE9CTigweDVmZDI3
ZTY4LCAweGJlN2M1ZjI2KSwKLSAgICAgICAgIFRPQk4oMHgxMzllNDVhOSwgMHgxNTY3ZTFlMyks
IFRPQk4oMHgyY2M3MWQyZCwgMHg0NGQ4YWFhZiksCi0gICAgICAgICBUT0JOKDB4NGE5MDkwY2Qs
IDB4ZTM2ZDA3NTcpLCBUT0JOKDB4ZjcyMmQ3YjEsIDB4ZDlhMjkzODIpLAotICAgICAgICAgVE9C
TigweGZiN2ZiMDRjLCAweDA0YjQ4ZGRmKSwgVE9CTigweDYyOGFkMmE3LCAweGViZTE2ZjQzKSwK
LSAgICAgICAgIFRPQk4oMHhjZDNmYmZiNSwgMHgyMDIyNjA0MCksIFRPQk4oMHg2YzM0ZWNiMSwg
MHg1MTA0YjZjNCksCi0gICAgICAgICBUT0JOKDB4MzBjMDc1NGUsIDB4YzkwM2MxODgpLCBUT0JO
KDB4ZWMzMzZiMDgsIDB4MmQyM2NhYjApLAotICAgICAgICAgVE9CTigweDQ3M2Q2MmEyLCAweDFl
MjA2ZWU1KSwgVE9CTigweGYxZTI3NDgwLCAweDhjNDlhNjMzKSwKLSAgICAgICAgIFRPQk4oMHg4
N2FiOTU2YywgMHhlOWY2YjJjMyksIFRPQk4oMHg2MTgzMGI0OCwgMHg2MmI2MDZlYSksCi0gICAg
ICAgICBUT0JOKDB4NjdjZDY4NDYsIDB4ZTc4ZTgxNWYpLCBUT0JOKDB4ZmU0MDEzOWYsIDB4NGMw
MjA4MmEpLAotICAgICAgICAgVE9CTigweDUyYmJiZmNiLCAweDk1MmVjMzY1KSwgVE9CTigweDc0
YzExNjQyLCAweDZiOTgzNmFiKSwKLSAgICAgICAgIFRPQk4oMHg5ZjUxNDM5ZSwgMHg1NThkZjAx
OSksIFRPQk4oMHgyMzBkYTRiYSwgMHhhYzcxMmIyNyksCi0gICAgICAgICBUT0JOKDB4NTE4OTE5
ZTMsIDB4NTUxODVhMjQpLCBUT0JOKDB4NGRjZWZjZGQsIDB4ODRiNzhmNTApLAotICAgICAgICAg
VE9CTigweGE3ZDkwZmIyLCAweGE0N2Q0YzVhKSwgVE9CTigweDU1YWM5YWJmLCAweGIzMGUwMDll
KSwKLSAgICAgICAgIFRPQk4oMHhmZDJmYzM1OSwgMHg3NGVlZDI3MyksIFRPQk4oMHhiNzJkODI0
YywgMHhkYmVhOGZhZiksCi0gICAgICAgICBUT0JOKDB4Y2U3MjFhNzQsIDB4NDUxM2UyY2EpLCBU
T0JOKDB4MGI0MTg2MTIsIDB4MzgyNDBiMmMpLAotICAgICAgICAgVE9CTigweDA1MTk5OTY4LCAw
eGQ1YmFhNDUwKSwgVE9CTigweGViMTc1N2VkLCAweDJiMGU4YzI1KSwKLSAgICAgICAgIFRPQk4o
MHg2ZWJjM2UyOCwgMHgzZGZhYzZkNSksIFRPQk4oMHhiMjQzMWUyZSwgMHg0OGEyMzdmNSksCi0g
ICAgICAgICBUT0JOKDB4MmFjYjVlMjMsIDB4NTJmNjE0OTkpLCBUT0JOKDB4NTU1OGEyYTcsIDB4
ZTA2YzkzNmIpLAotICAgICAgICAgVE9CTigweGQyMTNmOTIzLCAweGNiYjEzZDFiKSwgVE9CTigw
eDk4Nzk5ZjQyLCAweDViZmI5YmZlKSwKLSAgICAgICAgIFRPQk4oMHgxYWU4ZGRjOSwgMHg3MDEx
NDRhOSksIFRPQk4oMHgwYjhiM2JiNiwgMHg0YzU1OTVlZSksCi0gICAgICAgICBUT0JOKDB4MGVh
OWVmMmUsIDB4M2VjZWJiMjEpLCBUT0JOKDB4MTdjYjZjNGIsIDB4MzY3MWY5YTcpLAotICAgICAg
ICAgVE9CTigweDQ3ZWY0NjRmLCAweDcyNmYxZDFmKSwgVE9CTigweDE3MWI5NDg0LCAweDY5NDNh
Mjc2KSwKLSAgICAgICAgIFRPQk4oMHg1MWE0YWUyZCwgMHg3ZWYwMzI5YyksIFRPQk4oMHgwODUw
OTIyMiwgMHg5MWM0NDAyYSksCi0gICAgICAgICBUT0JOKDB4NjRhNjFkMzUsIDB4YWZkNDViYmMp
LCBUT0JOKDB4MzhmMDk2ZmUsIDB4MzAzNWE4NTEpLAotICAgICAgICAgVE9CTigweGM3NDY4Yjc0
LCAweGExZGVjMDI3KSwgVE9CTigweGU4Y2YxMGU3LCAweDRmYzdkY2JhKSwKLSAgICAgICAgIFRP
Qk4oMHhlYTM1ZmY0MCwgMHhmNGEwNjM1MyksIFRPQk4oMHgwYjRjMGRmYSwgMHg4Yjc3ZGQ2Niks
Ci0gICAgICAgICBUT0JOKDB4Nzc5Yjg1NTIsIDB4ZGU3ZTVjMTkpLCBUT0JOKDB4ZmFiMjg2MDks
IDB4YzFjMDI1NmMpLAotICAgICAgICAgVE9CTigweDY0ZjU4ZWVlLCAweGFiZDQ3NDNkKSwgVE9C
TigweDRlOGVmODM4LCAweDdiNmNjOTNiKSwKLSAgICAgICAgIFRPQk4oMHhlZTY1MGQyNiwgMHg0
Y2IxYmYzZCksIFRPQk4oMHg0YzFmOWQwOSwgMHg3M2RlZGY2MSksCi0gICAgICAgICBUT0JOKDB4
YWVmN2M5ZDcsIDB4YmZiNzBjZWQpLCBUT0JOKDB4MWVjMDUwN2UsIDB4MTY0MWRlMWUpLAotICAg
ICAgICAgVE9CTigweGNkN2U1Y2M3LCAweGNkZTQ1MDc5KSwgVE9CTigweGRlMTczYzlhLCAweDUx
NmFjOWU0KSwKLSAgICAgICAgIFRPQk4oMHg1MTdhODQ5NCwgMHhjMTcwMzE1YyksIFRPQk4oMHg0
MzhmZDkwNSwgMHg5MWQ4ZThmYiksCi0gICAgICAgICBUT0JOKDB4NTE0NWM1MDYsIDB4YzdkOTYz
MGIpLCBUT0JOKDB4NjQ1N2E4N2IsIDB4ZjQ3ZDRkNzUpLAotICAgICAgICAgVE9CTigweGQzMTY0
NmJmLCAweDBkOWE4MGU4KSwgVE9CTigweDQ1M2FkZDJiLCAweGNlZjNhYWJlKSwKLSAgICAgICAg
IFRPQk4oMHhjOTk0MTEwOSwgMHhhNjA3NDE5ZCksIFRPQk4oMHhmYWE3MWU2MiwgMHhiYjZiY2E4
MCksCi0gICAgICAgICBUT0JOKDB4MzQxNThjMTMsIDB4MDdjNDMxZjMpLCBUT0JOKDB4NTk0YWJl
YmMsIDB4OTkyYmM0N2EpLAotICAgICAgICAgVE9CTigweDZkZmVhNjkxLCAweGViNzgzOTlmKSwg
VE9CTigweDQ4YWFmYjM1LCAweDNmNDJjYmE0KSwKLSAgICAgICAgIFRPQk4oMHhlZGNkNjVhZiwg
MHgwNzdjMDRmMCksIFRPQk4oMHgxYTI5YTM2NiwgMHhlODg0NDkxYSksCi0gICAgICAgICBUT0JO
KDB4MDIzYTQwZTUsIDB4MWMyMWYyYmYpLCBUT0JOKDB4Zjk5YTUxM2MsIDB4YTUwNTdhZWUpLAot
ICAgICAgICAgVE9CTigweGEzZmU3ZTI1LCAweGJjYWIwNzJlKSwgVE9CTigweDg1NjhkMmUxLCAw
eDQwZTMyYmNmKSwKLSAgICAgICAgIFRPQk4oMHg5MDQ1OTRlYiwgMHhkM2Y2OWQ5ZiksIFRPQk4o
MHgxODFhOTczMywgMHgwN2FmZmFiMSksCi0gICAgICAgICBUT0JOKDB4ZTRkNjhkNzYsIDB4YjZl
MzMwZjQpLCBUT0JOKDB4ODdhNmRhZmIsIDB4Yzc1YTdmYzEpLAotICAgICAgICAgVE9CTigweDU0
OWRiMmI1LCAweGVmN2Q5Mjg5KSwgVE9CTigweDI0ODBkNGE4LCAweDE5N2YwMTVhKSwKLSAgICAg
ICAgIFRPQk4oMHg2MWQ1NTkwYiwgMHhjNDA0OTNiNiksIFRPQk4oMHgzYTU1YjUyZSwgMHg2Zjc4
MDMzMSksCi0gICAgICAgICBUT0JOKDB4NDBlYjgxMTUsIDB4MzA5ZWFkYjApLCBUT0JOKDB4ZGVh
N2RlNWEsIDB4OTJlNWM2MjUpLAotICAgICAgICAgVE9CTigweDY0ZDYzMWYwLCAweGNjNmEzZDVh
KSwgVE9CTigweDlkNWU5ZDdjLCAweDkzZThkZDYxKSwKLSAgICAgICAgIFRPQk4oMHhmMjk3YmVm
NSwgMHgyMDZkM2ZmYyksIFRPQk4oMHgyM2Q1ZTAzMywgMHg3ZDgwOGJkNCksCi0gICAgICAgICBU
T0JOKDB4NGE0ZjY5MTIsIDB4ZDI0Y2Y1YmEpLCBUT0JOKDB4ZTRkODE2M2IsIDB4MDljZGFhOGEp
LAotICAgICAgICAgVE9CTigweDBlMGRlOWVmLCAweGQzMDgyZThlKSwgVE9CTigweDRmZTEyNDZj
LCAweDAxOTJmMzYwKSwKLSAgICAgICAgIFRPQk4oMHgxZjkwMDE1MCwgMHg0YjhlZWUwYSksIFRP
Qk4oMHg1MjE5ZGE4MSwgMHhmMWRhMzkxYiksCi0gICAgICAgICBUT0JOKDB4N2JmNmE1YzEsIDB4
ZjdlYTI1YWEpLCBUT0JOKDB4ZDE2NWU2YmYsIDB4ZmJiMDdkNWYpLAotICAgICAgICAgVE9CTigw
eGUzNTM5MzYxLCAweDg5ZTc4NjcxKSwgVE9CTigweGEzZmNhYzg5LCAweDJiYWM0MjE5KSwKLSAg
ICAgICAgIFRPQk4oMHhkZmFiNmZkNCwgMHhmMGJhYThhYiksIFRPQk4oMHg1YTRhZGFjMSwgMHhl
MmMxYzJlNSksCi0gICAgICAgICBUT0JOKDB4NmNkNzVlMzEsIDB4NDBkODU4NDkpLCBUT0JOKDB4
Y2UyNjNmZWEsIDB4MTliMzkxODEpLAotICAgICAgICAgVE9CTigweGNiNjgwM2QzLCAweDA3MDMy
YzcyKSwgVE9CTigweDdmNDBkNWNlLCAweDc5MDk2OGM4KSwKLSAgICAgICAgIFRPQk4oMHhhNmRl
ODZiZCwgMHhkY2U5NzhmMCksIFRPQk4oMHgyNTU0N2M0ZiwgMHgzNjhmNzUxYyksCi0gICAgICAg
ICBUT0JOKDB4YjFlNjg1ZmQsIDB4NjVmYjJhOWUpLCBUT0JOKDB4Y2U2OTMzNmYsIDB4MWViOTE3
OWMpLAotICAgICAgICAgVE9CTigweGIxNWQxYzI3LCAweDEyNTA0NDQyKSwgVE9CTigweGI3ZGY0
NjVjLCAweGI5MTFhMDZiKSwKLSAgICAgICAgIFRPQk4oMHhiOGQ4MDRhMywgMHgzMTU5ODBjZCks
IFRPQk4oMHg2OTNiYzQ5MiwgMHhmYTNiZWJmNyksCi0gICAgICAgICBUT0JOKDB4MzU3OGFlZWUs
IDB4MjI1M2M1MDQpLCBUT0JOKDB4MTU4ZGU0OTgsIDB4Y2QyNDc0YTIpLAotICAgICAgICAgVE9C
TigweDEzMzFmNWM3LCAweGNmZGE4MzY4KSwgVE9CTigweGQyZDdiYmIzLCAweDc4ZDcxNzdlKSwK
LSAgICAgICAgIFRPQk4oMHhkZjYxMTMzYSwgMHhmM2MxZTQ2ZSksIFRPQk4oMHg1ODM2Y2U3ZCwg
MHhkMzBlN2JlOCksCi0gICAgICAgICBUT0JOKDB4ODMwODRmMTksIDB4OTRmODM0Y2IpLCBUT0JO
KDB4ZDM1NjUzZDQsIDB4NDI5ZWQ3ODIpLAotICAgICAgICAgVE9CTigweGE1NDJmMTZmLCAweDU5
ZTU4MjQzKSwgVE9CTigweGMyYjUyZjY1LCAweDA0NzBhMjJkKSwKLSAgICAgICAgIFRPQk4oMHhl
M2I2MjIxYiwgMHgxOGYyM2Q5NiksIFRPQk4oMHhjYjA1YWJhYywgMHgzZjUyNTJiNCksCi0gICAg
ICAgICBUT0JOKDB4Y2EwMDkzOGIsIDB4ODdkNjE0MDIpLCBUT0JOKDB4MmYxODZjZGQsIDB4NDEx
OTMzZTQpLAotICAgICAgICAgVE9CTigweGUwNDJlY2U1LCAweDlhMjlhNWM1KSwgVE9CTigweGIx
OWIzYzA3LCAweDNiNmM4NDAyKSwKLSAgICAgICAgIFRPQk4oMHhjOTc2NjdjNywgMHgxOWQ5MjY4
NCksIFRPQk4oMHhiNTYyNDYyMiwgMHhlYmM2NjM3MiksCi0gICAgICAgICBUT0JOKDB4MGNiOTZl
NjUsIDB4M2MwNGZhMDIpLCBUT0JOKDB4ODNhNzE3NmMsIDB4OGVhYTM5YWEpLAotICAgICAgICAg
VE9CTigweDIwMzM1NjFkLCAweGVhYTE2MzNmKSwgVE9CTigweDQ1YTlkMDg2LCAweDQ1MzNkZjcz
KSwKLSAgICAgICAgIFRPQk4oMHhlMDU0MmMxZCwgMHgzZGMwOTBiYyksIFRPQk4oMHg4MmM5OTZl
ZiwgMHhhYTU5YzE2NyksCi0gICAgICAgICBUT0JOKDB4ZTNmNzM1ZTgsIDB4MGVlN2ZjNGQpLCBU
T0JOKDB4N2IxNzkzOTMsIDB4N2MzNWRiNzkpLAotICAgICAgICAgVE9CTigweGI2NDE5ZTI1LCAw
eGY4YzVkYmZkKSwgVE9CTigweDRkOWQ3YTFlLCAweDFmMzI3YjA0KSwKLSAgICAgICAgIFRPQk4o
MHg5NzlmNmY5YiwgMHgyOThkZmNhOCksIFRPQk4oMHhjN2M1ZGZmMSwgMHg4ZGU5MzY2YSksCi0g
ICAgICAgICBUT0JOKDB4MWI3YTU4OGQsIDB4MDRjODJiZGQpLCBUT0JOKDB4NjgwMDU1MzQsIDB4
ZjgzMTlkZmQpLAotICAgICAgICAgVE9CTigweGRlOGE1NWI1LCAweGQ4ZWI5NTgwKSwgVE9CTigw
eDVlYTg4NmRhLCAweDhkNWJjYTgxKSwKLSAgICAgICAgIFRPQk4oMHhlODUzMGEwMSwgMHgyNTJh
MGI0ZCksIFRPQk4oMHgxYmZmYjRmZSwgMHgzNWVhYTBhMSksCi0gICAgICAgICBUT0JOKDB4MmFk
ODI4YjEsIDB4ZDhlOTk1NjMpLCBUT0JOKDB4N2RlOTZlZjUsIDB4OTVmOWNkODcpLAotICAgICAg
ICAgVE9CTigweDRhYmIyZDBjLCAweGQ3N2Q5NzBjKSwgVE9CTigweDAzY2ZiOTMzLCAweGQzM2Vm
OWNiKSwKLSAgICAgICAgIFRPQk4oMHhiMDU0N2MwMSwgMHg4YjIxMWZlOSksIFRPQk4oMHgyZmU2
NDgwOSwgMHhhNTZlZDFjNiksCi0gICAgICAgICBUT0JOKDB4Y2I3ZDU2MjQsIDB4YzJhYzk4Y2Mp
LCBUT0JOKDB4MmExMzcyYzAsIDB4MWEzOTNlMzMpLAotICAgICAgICAgVE9CTigweGM4ZDFlYzFj
LCAweDI5NjYwNTIxKSwgVE9CTigweGYzZDMxYjA0LCAweGIzN2FjM2U5KSwKLSAgICAgICAgIFRP
Qk4oMHhhMjlhZTlkZiwgMHg1ZWNlNmU3YyksIFRPQk4oMHgwNjAzYWM4ZiwgMHgwZmFjZmI1NSks
Ci0gICAgICAgICBUT0JOKDB4Y2ZlODViN2EsIDB4ZGRhMjMzYTUpLCBUT0JOKDB4ZTYxODkxOWYs
IDB4YmQ3NWYwYjgpLAotICAgICAgICAgVE9CTigweGY1NTVhM2QyLCAweDk5YmYxNjAzKSwgVE9C
TigweDFmNDNhZmM5LCAweGYxODQyNTVhKSwKLSAgICAgICAgIFRPQk4oMHhkY2RhZjM0MSwgMHgz
MTlhM2UwMiksIFRPQk4oMHhkM2IxMTdlZiwgMHgwMzkwM2EzOSksCi0gICAgICAgICBUT0JOKDB4
ZTA5NWRhMTMsIDB4NjVkMWQxMzEpLCBUT0JOKDB4ODZmMTYzNjcsIDB4YzM3YWQwM2UpLAotICAg
ICAgICAgVE9CTigweDVmMzczODllLCAweDQ2MmNkOGRkKSwgVE9CTigweGMxMDNmYTA0LCAweGQ2
N2E2MGU2KSwKLSAgICAgICAgIFRPQk4oMHg1N2MzNDM0NCwgMHhmNGI0NzhmMCksIFRPQk4oMHhj
ZTkxZWRkOCwgMHhlMTE3Yzk4ZCksCi0gICAgICAgICBUT0JOKDB4MDAxNzc3YjAsIDB4MjMxZmMx
MmUpLCBUT0JOKDB4MTFhZTQ3ZjIsIDB4YjIwN2JjY2IpLAotICAgICAgICAgVE9CTigweGQ5ODNj
ZjhkLCAweDIwZjhhMjQyKSwgVE9CTigweDdhZmY1YjFkLCAweGYyMmUxYWQ4KSwKLSAgICAgICAg
IFRPQk4oMHg2OGZkMTFkMCwgMHg3ZmM0ZmViMyksIFRPQk4oMHg1ZDUzYWU5MCwgMHhiMGYxYzNl
MSksCi0gICAgICAgICBUT0JOKDB4NTBmYjc5MDUsIDB4ZWMwNDE4MDMpLCBUT0JOKDB4ODVlM2M5
NzcsIDB4MTQ0MDQ4ODgpLAotICAgICAgICAgVE9CTigweDBlNjdmYWVkLCAweGFjNjI4ZDhmKSwg
VE9CTigweDJlODY1MTUwLCAweDY2Njg1MzJjKSwKLSAgICAgICAgIFRPQk4oMHgxNWFjYWFhNCwg
MHg2YTY3YTZiMCksIFRPQk4oMHhmNGNkZWUyNSwgMHhiMjVjZWM0MSksCi0gICAgICAgICBUT0JO
KDB4NDllZTU2NWEsIDB4ZTRjNjcwMWUpLCBUT0JOKDB4MmEwNGNhNjYsIDB4ZmM3ZDYzZDgpLAot
ICAgICAgICAgVE9CTigweGViMTA1MDE4LCAweGVmMDU0M2ZiKSwgVE9CTigweGY3MDlhNGY1LCAw
eGQxYjBkODFkKSwKLSAgICAgICAgIFRPQk4oMHg1YjkwNmVlNiwgMHgyOTE1ZDMzMyksIFRPQk4o
MHhmNGE4NzQxMiwgMHg5NmYxZjBhYiksCi0gICAgICAgICBUT0JOKDB4YjZiODJmYTcsIDB4NGQ4
MmY0YzIpLCBUT0JOKDB4OTA3MjVhNjAsIDB4NjgwNGVmYjMpLAotICAgICAgICAgVE9CTigweGJj
ODJlYzQ2LCAweGFkYzM0MjVlKSwgVE9CTigweGI3YjgwNTgxLCAweDI3ODc4NDNlKSwKLSAgICAg
ICAgIFRPQk4oMHhkZjQ2ZDkxYywgMHhkZDFmYzc0YyksIFRPQk4oMHhkYzFjNjJjYiwgMHhlNzgz
YTZjNCksCi0gICAgICAgICBUT0JOKDB4NTlkMWI5ZjMsIDB4MWEwNGNiYmEpLCBUT0JOKDB4ZDg3
ZjZmNzIsIDB4OTVlNDA3NjQpLAotICAgICAgICAgVE9CTigweDAyYjRjZmMxLCAweDMxN2Y0YTc2
KSwgVE9CTigweDhkMjcwM2ViLCAweDkxMDM2YmNlKSwKLSAgICAgICAgIFRPQk4oMHg5ODIwNmNj
NiwgMHhhNWU3MmE1NiksIFRPQk4oMHg1N2JlOWVkMSwgMHhjZjUzZmIwZiksCi0gICAgICAgICBU
T0JOKDB4MDkzNzQ1NzEsIDB4ZWYwYjE3YWMpLCBUT0JOKDB4NzRiMjY1NWUsIDB4ZDkxODFiMzgp
LAotICAgICAgICAgVE9CTigweGM4ZjgwZWE4LCAweDg5OTM1ZDBlKSwgVE9CTigweGMwZDllOTQy
LCAweDkxNTI5OTM2KSwKLSAgICAgICAgIFRPQk4oMHgxOTY4NjA0MSwgMHgxZTg0ZTBlNSksIFRP
Qk4oMHhhNWRiODRkMywgMHhhZWEzNGM5MyksCi0gICAgICAgICBUT0JOKDB4ZjlkNWJiMTksIDB4
NzA3M2E3MzIpLCBUT0JOKDB4YjhkMmZlNTYsIDB4NmJjZmQ3YzApLAotICAgICAgICAgVE9CTigw
eDQ1Nzc1ZjM2LCAweGYzZWI4MmZhKSwgVE9CTigweDhjYjIwY2NjLCAweGZkZmY4YjU4KSwKLSAg
ICAgICAgIFRPQk4oMHgxNjU5YjY1ZiwgMHg4Mzc0YzExMCksIFRPQk4oMHhiOGI0YTQyMiwgMHgz
MzBjNzg5YSksCi0gICAgICAgICBUT0JOKDB4NzVlM2MzZWEsIDB4NmZlODIwOGIpLCBUT0JOKDB4
YmQ3NGI5ZTQsIDB4Mjg2ZTc4ZmUpLAotICAgICAgICAgVE9CTigweDBiZTJlODFiLCAweGQ3ZDkz
YTFhKSwgVE9CTigweDdlZDA2ZTI3LCAweGRkMGE1YWFlKSwKLSAgICAgICAgIFRPQk4oMHg3MjFm
NWE1OCwgMHg2YmU4YjgwMCksIFRPQk4oMHg0MjgyOTlkMSwgMHhkODQ2ZGIyOCksCi0gICAgICAg
ICBUT0JOKDB4OTVjYjhlNmIsIDB4NWJlODhlZDMpLCBUT0JOKDB4YzMxODZiMjMsIDB4MWMwMzRl
MTEpLAotICAgICAgICAgVE9CTigweGE2MzEyYzllLCAweDg5NzdkOTliKSwgVE9CTigweGJlOTQ0
MzMxLCAweDgzZjUzMWU3KSwKLSAgICAgICAgIFRPQk4oMHg4MjMyYzBjMiwgMHgxOGQzYjFkNCks
IFRPQk4oMHg2MTdhYWU4YiwgMHhlMTI0N2I3MyksCi0gICAgICAgICBUT0JOKDB4NDAxNTNmYzQs
IDB4MjgyYWVjM2IpLCBUT0JOKDB4YzYwNjNkMmYsIDB4ZjdiOGY4MjMpLAotICAgICAgICAgVE9C
TigweDY4ZjEwZTU4LCAweDMzMDRmOTRjKSwgVE9CTigweDMxZWZhZTc0LCAweGVlNjc2MzQ2KSwK
LSAgICAgICAgIFRPQk4oMHhiYWRiNmM2ZCwgMHg0MGE5Yjk3YyksIFRPQk4oMHgxNDcwMmM2Mywg
MHg0ZjY2NjI1NiksCi0gICAgICAgICBUT0JOKDB4ZGViOTU0ZjEsIDB4NTE4NGIyZTMpLCBUT0JO
KDB4NTE4NGE1MjYsIDB4OTRiNmNhNDApLAotICAgICAgICAgVE9CTigweGZmZjA1MzM3LCAweDAw
M2MzMmVhKSwgVE9CTigweDVhYTM3NGRkLCAweDIwNTk3NGM3KSwKLSAgICAgICAgIFRPQk4oMHg5
YTc2Mzg1NCwgMHg0YjBkZDcxYSksIFRPQk4oMHg0NTljZDI3ZiwgMHhkZWI5NDdlYyksCi0gICAg
ICAgICBUT0JOKDB4YTZlMjgxNjEsIDB4NDU5YzJiOTIpLCBUT0JOKDB4MmYwMjBmYTgsIDB4NzVl
ZThlZjUpLAotICAgICAgICAgVE9CTigweGIxMzJlYzJkLCAweDMwYjA2MzEwKSwgVE9CTigweGMz
ZTE1ODk5LCAweGJjNmE0NTMwKSwKLSAgICAgICAgIFRPQk4oMHhkYzVmNTNmZSwgMHhhYTNmNDUx
YSksIFRPQk4oMHgzYTNjN2YyMywgMHhjMmQ5YWNhYyksCi0gICAgICAgICBUT0JOKDB4MmVjMmY4
OTIsIDB4NmIyN2U1OGIpLCBUT0JOKDB4Njg0NjZlZTcsIDB4ZDc0Mjc5OWYpLAotICAgICAgICAg
VE9CTigweDk4MzI0ZGQ0LCAweDFmYTI2NjEzKSwgVE9CTigweGEyZGM2ZGFiLCAweGJkYzI5ZDYz
KSwKLSAgICAgICAgIFRPQk4oMHhmOTY3NWZhYSwgMHhkNzEyZDY1NyksIFRPQk4oMHg4MTM5OTRi
ZSwgMHgyMWZkOGQxNSksCi0gICAgICAgICBUT0JOKDB4NWNjYmI3MjIsIDB4ZmQ0Zjc1NTMpLCBU
T0JOKDB4NTEzNWZmOGIsIDB4ZjNhMzZiMjApLAotICAgICAgICAgVE9CTigweDQ0YmUyOGFmLCAw
eDY5NTU5ZGY1KSwgVE9CTigweDQwYjY1YmVkLCAweDlkNDFiZjMwKSwKLSAgICAgICAgIFRPQk4o
MHhkOThiZjJhNCwgMHgzNzM0ZTUyMCksIFRPQk4oMHg1ZTNhYmJlMywgMHgyMDliZGNiYSksCi0g
ICAgICAgICBUT0JOKDB4NzdjNzY1NTMsIDB4YmM5NDViMzUpLCBUT0JOKDB4NTMzMWMwOTMsIDB4
YzZlZjE0YWEpLAotICAgICAgICAgVE9CTigweDUxOGZmZTI5LCAweDc2YjYwYzgwKSwgVE9CTigw
eDIyODU1OTNiLCAweDdhY2UxNmY4KSwKLSAgICAgICAgIFRPQk4oMHhhYjFmNjRjYywgMHhiZTJi
OTc4NCksIFRPQk4oMHhlOGYyYzBkOSwgMHhhYjI0MjFiNiksCi0gICAgICAgICBUT0JOKDB4NjE3
ZDcxNzQsIDB4YzFkZjA2NWMpLCBUT0JOKDB4YWZlZWI1YWIsIDB4NWY2NTc4ZmEpLAotICAgICAg
ICAgVE9CTigweDE2ZmYxMzI5LCAweDI2M2I1NGE4KSwgVE9CTigweDQ1YzU1ODA4LCAweGM5OTBk
Y2UzKSwKLSAgICAgICAgIFRPQk4oMHg0MmVhYjZjMCwgMHhlY2M4YzE3NyksIFRPQk4oMHg3OTll
YTliNSwgMHg1OTgyZWNhYSksCi0gICAgICAgICBUT0JOKDB4ZjY1ZGEyNDQsIDB4YjYwN2VmOGUp
LCBUT0JOKDB4OGFiMjI2Y2UsIDB4MzJhM2ZjMmMpLAotICAgICAgICAgVE9CTigweDc0NTc0MWU1
LCAweDdlYTk3M2RjKSwgVE9CTigweDVjMDBjYTcwLCAweDIwODg4ZjJlKSwKLSAgICAgICAgIFRP
Qk4oMHg3Y2RjZTNjZiwgMHg0NWZkOWNmMSksIFRPQk4oMHg4YTc0MWVmMSwgMHg1NTA3Zjg3Miks
Ci0gICAgICAgICBUT0JOKDB4NDdjNTFjMmYsIDB4MTk2YjRjZWMpLCBUT0JOKDB4NzBkMDhlNDMs
IDB4Yzk3ZWE2MTgpLAotICAgICAgICAgVE9CTigweDkzMGRhMTVjLCAweDE1YjE4YTJiKSwgVE9C
TigweDMzYjZjNjc4LCAweDJmNjEwNTE0KSwKLSAgICAgICAgIFRPQk4oMHhjNjYyZTRmOCwgMHgw
N2FjOTc5NCksIFRPQk4oMHgxZWNjZjA1MCwgMHhiYTA2Y2I3OSksCi0gICAgICAgICBUT0JOKDB4
MWZmMDg2MjMsIDB4ZTdkOTU0ZTUpLCBUT0JOKDB4NmVmMmM1ZmIsIDB4MjRjZjcxYzMpLAotICAg
ICAgICAgVE9CTigweGIyYzA2M2QyLCAweDY3OTc4NDUzKSwgVE9CTigweGEwY2YzNzk2LCAweDFk
NjU0YWY4KSwKLSAgICAgICAgIFRPQk4oMHg3Y2IyNDJlYSwgMHg3ZWJkYWEzNyksIFRPQk4oMHgy
MDZlMGIxMCwgMHhiODY3NDdlMCksCi0gICAgICAgICBUT0JOKDB4NDgxZGFlNWYsIDB4ZDVlY2Zl
ZmMpLCBUT0JOKDB4MDcwODRmZDgsIDB4YzJiZmY4ZmMpLAotICAgICAgICAgVE9CTigweDgwNDBh
MDFhLCAweGVhMzI0NTk2KSwgVE9CTigweDRjNjQ2OTgwLCAweGQ0ZGU0MDM2KSwKLSAgICAgICAg
IFRPQk4oMHg5ZWI4YWI0ZSwgMHhkNjVhYmZjMyksIFRPQk4oMHhlMDFjYjkxZiwgMHgxMzU0MWVj
NyksCi0gICAgICAgICBUT0JOKDB4OGYwMjlhZGIsIDB4ZmQ2OTUwMTIpLCBUT0JOKDB4OWFlMjg0
ODMsIDB4M2M3NTY5ZWMpLAotICAgICAgICAgVE9CTigweGE1NjE0YzllLCAweGE2NmQ4MGExKSwg
VE9CTigweDY4MGEzZTQ0LCAweDc1ZjVmOTExKSwKLSAgICAgICAgIFRPQk4oMHgwYzA3YjE0ZCwg
MHhjZWJhNGZjMSksIFRPQk4oMHg4OTFjMjg1YiwgMHhhMTMwNzFjMSksCi0gICAgICAgICBUT0JO
KDB4Y2FjNjdjZWIsIDB4Nzk5ZWNlM2MpLCBUT0JOKDB4MjliOTEwYTksIDB4NDFlMDdlMjcpLAot
ICAgICAgICAgVE9CTigweDY2YmRiNDA5LCAweGYyZTQzMTIzKSwgVE9CTigweDA2ZjhiMTM3LCAw
eDdhYzllY2JlKSwKLSAgICAgICAgIFRPQk4oMHg1OTgxZmFmZCwgMHgzODU0NzA5MCksIFRPQk4o
MHgxOWFiOGI5ZiwgMHg4NWUzNDE1ZCksCi0gICAgICAgICBUT0JOKDB4ZmMyOGMxOTQsIDB4Yzdl
MzFiMjcpLCBUT0JOKDB4ODQzYmUwYWEsIDB4NmZiY2JiNDIpLAotICAgICAgICAgVE9CTigweGYz
YjFlZDQzLCAweGE2ZGI4MzZjKSwgVE9CTigweDJhMTMzMGU0LCAweDAxYTQ1YzA1KSwKLSAgICAg
ICAgIFRPQk4oMHg0ZjE5ZjNjNSwgMHg5NWMxYTM3NyksIFRPQk4oMHhhODVmMzlkMCwgMHg0NGI1
ZWUzMyksCi0gICAgICAgICBUT0JOKDB4M2RhMThlNmQsIDB4NGFlNTI4MzQpLCBUT0JOKDB4NWE0
MDNiMzksIDB4NzQyM2RjYjApLAotICAgICAgICAgVE9CTigweGJiNTU1ZTBhLCAweGYyMzc0YWVm
KSwgVE9CTigweDJhZDU5OWM0LCAweDFlOGNhMTExKSwKLSAgICAgICAgIFRPQk4oMHgxYjNhMmZi
OSwgMHgwMTRiM2JmOCksIFRPQk4oMHg3MzA5MjY4NCwgMHhmNjZkNTAwNyksCi0gICAgICAgICBU
T0JOKDB4MDc5ZjE0MjYsIDB4YzQzNDAxMDIpLCBUT0JOKDB4MTgyN2NmODEsIDB4OGZkZGY0ZGUp
LAotICAgICAgICAgVE9CTigweGM4MzYwNWY2LCAweGYxMGZmOTI3KSwgVE9CTigweGQzODcxNDUx
LCAweDIzNzM5ZmM2KSwKLSAgICAgICAgIFRPQk4oMHg2ZDE2MzQ1MCwgMHhjYWMxYzJjYyksIFRP
Qk4oMHg2YjUyMTI5NiwgMHhhMmVjMWFjNSksCi0gICAgICAgICBUT0JOKDB4MDYwNmM0ZjksIDB4
NmUzY2I0YTUpLCBUT0JOKDB4ZTQ3ZDNmNDEsIDB4Nzc4YWJmZjcpLAotICAgICAgICAgVE9CTigw
eDQyNWE4ZDVlLCAweGJlOGUzYTQ1KSwgVE9CTigweDUzZWE5ZTk3LCAweGE2MTAyMTYwKSwKLSAg
ICAgICAgIFRPQk4oMHg0NzdhMTA2ZSwgMHgzOWNiYjY4OCksIFRPQk4oMHg1MzI0MDFkMiwgMHhm
MzM4NmQzMiksCi0gICAgICAgICBUT0JOKDB4OGU1NjRmNjQsIDB4YjFiOWI0MjEpLCBUT0JOKDB4
Y2E5YjgzODgsIDB4ODFkYWQzM2YpLAotICAgICAgICAgVE9CTigweGIxNDIyYjRlLCAweDIwOTM5
MTNlKSwgVE9CTigweDUzM2QyZjkyLCAweDY5YmM4MTEyKSwKLSAgICAgICAgIFRPQk4oMHgzZmEw
MTdiZSwgMHhlYmU3YjJjNyksIFRPQk4oMHhiMjc2N2M0YSwgMHhjYWYxOTdjNiksCi0gICAgICAg
ICBUT0JOKDB4YzkyNWZmODcsIDB4YWVkYmFlOWYpLCBUT0JOKDB4N2RhZjBlYjksIDB4MzY4ODBh
NTQpLAotICAgICAgICAgVE9CTigweDkyODRkZGY1LCAweDljNGQwZTcxKSwgVE9CTigweDE1ODFj
ZjkzLCAweDMxNmY4Y2Y1KSwKLSAgICAgICAgIFRPQk4oMHgzZWVjYTg4NywgMHgzYWMxZjQ1Miks
IFRPQk4oMHhiNDE3ZmNlOSwgMHhmYjZhZWZmZSksCi0gICAgICAgICBUT0JOKDB4YTU5MTgwNDYs
IDB4ZWVmYjhkYzMpLCBUT0JOKDB4NzNkMzE4YWMsIDB4MDIyMDk0MDApLAotICAgICAgICAgVE9C
TigweGU4MDA0MDBmLCAweDcyODY5M2U1KSwgVE9CTigweGU4N2Q4MTRiLCAweDMzOTkyN2VkKSwK
LSAgICAgICAgIFRPQk4oMHg5M2U5NGQzYiwgMHg1N2VhOTkxMCksIFRPQk4oMHhmZjhhMzViNiwg
MHgyMjQ1ZmI2OSksCi0gICAgICAgICBUT0JOKDB4MDQzODUzZDcsIDB4N2YyMDBkMzQpLCBUT0JO
KDB4NDcwZjFlNjgsIDB4MGY2NTNjZTEpLAotICAgICAgICAgVE9CTigweDgxYWMwNWJkLCAweDU5
YTA2Mzc5KSwgVE9CTigweGExNDA1MmMyLCAweDAzOTMwYzI5KSwKLSAgICAgICAgIFRPQk4oMHg2
YjcyZmFiNSwgMHgyNmJjMjc5NyksIFRPQk4oMHgxMzY3MGQxNiwgMHg5OWYxNjc3MSksCi0gICAg
ICAgICBUT0JOKDB4MDAxNzAwNTIsIDB4MWUzZTQ4ZDEpLCBUT0JOKDB4OTc4ZmU0MDEsIDB4Yjdh
ZGY2NzgpLAotICAgICAgICAgVE9CTigweDU1ZWNmYjkyLCAweGQ0MWM1ZGQ0KSwgVE9CTigweDVm
ZjhlMjQ3LCAweGM3YjI3ZGE1KSwKLSAgICAgICAgIFRPQk4oMHhlNzUxODI3MiwgMHgwMTNmYjYw
NiksIFRPQk4oMHg1NzY4ZDdlNSwgMHgyZjU0N2EzYyksCi0gICAgICAgICBUT0JOKDB4YmIyNGVh
YTMsIDB4NjAwMTdhNWYpLCBUT0JOKDB4NmIxOGU2ZTQsIDB4OWM2NGNlOWIpLAotICAgICAgICAg
VE9CTigweGMyMjVjNjU1LCAweDEwM2RkZTA3KSwgVE9CTigweGZjMzY3MmFlLCAweDc1OTJmN2Vh
KSwKLSAgICAgICAgIFRPQk4oMHg5NjA2YWQ3NywgMHhkMDYyODNhMSksIFRPQk4oMHg1NDJmYzY1
MCwgMHhlNGQ1OWQ5OSksCi0gICAgICAgICBUT0JOKDB4YWJiNTdjNDksIDB4MmE0MGU3YzIpLCBU
T0JOKDB4YWM5NDhmMTMsIDB4YThkYjlmNTUpLAotICAgICAgICAgVE9CTigweDZkNGM5NjgyLCAw
eGIwNDQ2NWMzKSwgVE9CTigweGUzZDA2MmZhLCAweDY0NjhiZDE1KSwKLSAgICAgICAgIFRPQk4o
MHhhNTE3MjlhYywgMHg1ZjMxOGQ3ZSksIFRPQk4oMHgxZmM4N2RmNiwgMHg5ZWI2ZmM5NSksCi0g
ICAgICAgICBUT0JOKDB4NjNkMTQ2YTgsIDB4MDU5MWY2NTIpLCBUT0JOKDB4YTg2MWI4ZjcsIDB4
NTg5NjIxYWEpLAotICAgICAgICAgVE9CTigweDU5ZjVmMTVhLCAweGNlMzEzNDhjKSwgVE9CTigw
eDhmNjYzMzkxLCAweDQ0MGRhNmRhKSwKLSAgICAgICAgIFRPQk4oMHhjZmE3NzhhYywgMHhiNTkx
ZmZhMyksIFRPQk4oMHgwMjdjYTljNSwgMHg0Y2RmZWJjZSksCi0gICAgICAgICBUT0JOKDB4YmU4
ZTA1YTUsIDB4NDQ0ZWE2YjMpLCBUT0JOKDB4OGFhYjRlNjksIDB4YTc4ZDgyNTQpLAotICAgICAg
ICAgVE9CTigweDI0MzdmMDRmLCAweGI0NzRkNmI4KSwgVE9CTigweDY1OTdmZmQ0LCAweDA0NWIz
ODU1KSwKLSAgICAgICAgIFRPQk4oMHhiYjBhZWE0ZSwgMHhjYTQ3ZWNhYSksIFRPQk4oMHg1Njhh
YWU4MywgMHg4NWM3ZWJmYyksCi0gICAgICAgICBUT0JOKDB4MGU5NjZlNjQsIDB4YzczYjIzODMp
LCBUT0JOKDB4NDllYjM0NDcsIDB4ZDE3ZDg3NjIpLAotICAgICAgICAgVE9CTigweGRlMTA3ODIx
LCAweDhkYTA1ZGFiKSwgVE9CTigweDQ0M2Q4YmFhLCAweDAxNmI3MjM2KSwKLSAgICAgICAgIFRP
Qk4oMHgxNjNiNjNhNSwgMHhlYTc2MTBkNiksIFRPQk4oMHhlNDdlNDE4NSwgMHhjZTFjYTk3OSks
Ci0gICAgICAgICBUT0JOKDB4YWU2NDhiNjUsIDB4ODBiYWExMzIpLCBUT0JOKDB4ZWJmNTNkZTIs
IDB4MGUwZDViNjQpLAotICAgICAgICAgVE9CTigweDhkM2JmY2I0LCAweGQzYzhjMWNhKSwgVE9C
TigweDBkOTE0ZWYzLCAweDVkMDRiMzA5KSwKLSAgICAgICAgIFRPQk4oMHg1NWVmNjQxNSwgMHgz
ZGU3ZDM5NSksIFRPQk4oMHhiZGUxNjY2ZiwgMHgyNmI4NTBlOCksCi0gICAgICAgICBUT0JOKDB4
ZGJlMWNhNmUsIDB4ZDQ0OWFiMTkpLCBUT0JOKDB4ODkwMmIzMjIsIDB4ZTg5YTI2NzIpLAotICAg
ICAgICAgVE9CTigweGIxNjc0YjdlLCAweGRhY2I3YTUzKSwgVE9CTigweDhlOWZhZjZlLCAweGY1
MjUyM2ZmKSwKLSAgICAgICAgIFRPQk4oMHg2YmE1MzVkYSwgMHg5YTg1Nzg4YiksIFRPQk4oMHhk
MjFmMDNhZSwgMHhiZDA2MjZkNCksCi0gICAgICAgICBUT0JOKDB4MDk5ZjhjNDcsIDB4ZTg3M2Rj
NjQpLCBUT0JOKDB4Y2RhODU2NGQsIDB4MDE4ZWM5N2UpLAotICAgICAgICAgVE9CTigweDNlOGQ3
YTVjLCAweGRlOTJjNjhjKSwgVE9CTigweDc4ZTAzNWExLCAweDczMzIzY2M0KSwKLSAgICAgICAg
IFRPQk4oMHgzZWYyNjI3NSwgMHhmODgwZmY3YyksIFRPQk4oMHhhNGVlM2RmZiwgMHgyNzNlZWRh
YSksCi0gICAgICAgICBUT0JOKDB4NTg4MjM1MDcsIDB4YWY0ZTE4ZjgpLCBUT0JOKDB4OTY3ZWM5
YjUsIDB4MDY3MmYzMjgpLAotICAgICAgICAgVE9CTigweDlkZWQxOWQ5LCAweDU1OWQzMTg2KSwg
VE9CTigweDVlMmFiM2RlLCAweDZjZGNlMzljKSwKLSAgICAgICAgIFRPQk4oMHhhYmFkNmU0ZCwg
MHgxMWMyMjZkZiksIFRPQk4oMHhmOTc4M2Y0MywgMHg4NzcyMzAxNCksCi0gICAgICAgICBUT0JO
KDB4OWE0OWEwY2YsIDB4MWE4ODU3MTkpLCBUT0JOKDB4ZmMwYzFhNWEsIDB4OTBkYTlkYmYpLAot
ICAgICAgICAgVE9CTigweDhiYmFlYzQ5LCAweDU3MWQ5MmFjKSwgVE9CTigweDU2OWU4NWZlLCAw
eDQ2OTI1MTdmKSwKLSAgICAgICAgIFRPQk4oMHg4MzMzYjAxNCwgMHhhMTRlYTRhZiksIFRPQk4o
MHgzMmYyYTYyZiwgMHgxMmU1YzVhZCksCi0gICAgICAgICBUT0JOKDB4OThjMmNlM2EsIDB4MDZk
ODliODUpLCBUT0JOKDB4YjkwNzQxYWEsIDB4MmZmNzdhMDgpLAotICAgICAgICAgVE9CTigweDI1
MzBkZWZjLCAweDAxZjc5NWEyKSwgVE9CTigweGQ2ZTViYTBiLCAweDg0YjNjMTk5KSwKLSAgICAg
ICAgIFRPQk4oMHg3ZDhlODQ1MSwgMHgxMmU0YzkzNiksIFRPQk4oMHhhZTQxOWY3ZCwgMHhiZDBi
ZTE3YiksCi0gICAgICAgICBUT0JOKDB4YTU4M2ZjOGMsIDB4MjIyNjJiYzkpLCBUT0JOKDB4NmI4
NDJhYzcsIDB4OTFiZmUyYmQpLAotICAgICAgICAgVE9CTigweDMzY2VmNGU5LCAweDQ0MGQ2ODI3
KSwgVE9CTigweDVmNjlmNGRlLCAweGVmODFmYjE0KSwKLSAgICAgICAgIFRPQk4oMHhmMTZjZjZm
NiwgMHgyMzRmYmI5MiksIFRPQk4oMHg3NmFlM2ZjMywgMHhkOWU3ZTE1OCksCi0gICAgICAgICBU
T0JOKDB4NGU4OWY2YzIsIDB4ZTk3NDBiMzMpLCBUT0JOKDB4Njc3YmM4NWQsIDB4NDk2MmQ2YTEp
LAotICAgICAgICAgVE9CTigweDZjNmQ4YTdmLCAweDY4ZDEwZDE1KSwgVE9CTigweDVmOWE3MjI0
LCAweDAyNTdiMWNkKSwKLSAgICAgICAgIFRPQk4oMHg3MDk2YjkxNiwgMHg0YWQ4NTk2MSksIFRP
Qk4oMHg1ZjhjNDdmNywgMHhlNjU3YWI0YSksCi0gICAgICAgICBUT0JOKDB4ZGU1N2Q3ZDAsIDB4
Zjc0NjFkN2UpLCBUT0JOKDB4N2ViNjA5NGQsIDB4ODBjZTVlZTIpLAotICAgICAgICAgVE9CTigw
eDBiMWUxZGZkLCAweDM0MTkwNTQ3KSwgVE9CTigweDhhMzk0ZjQzLCAweGYwNWRkMTUwKSwKLSAg
ICAgICAgIFRPQk4oMHgwYTllYjI0ZCwgMHg5N2RmNDRlNiksIFRPQk4oMHg3OGNhMDZiZiwgMHg4
NzY3NTcxOSksCi0gICAgICAgICBUT0JOKDB4NmYwYjM0NjIsIDB4NmZmZWVjMjIpLCBUT0JOKDB4
OWQ5MWJjZWEsIDB4MzZjZGQ4ZmIpLAotICAgICAgICAgVE9CTigweGFjODMzNjNjLCAweGExMDVi
ZTQ3KSwgVE9CTigweDgxYmE3NmMxLCAweDA2OTcxMGUzKSwKLSAgICAgICAgIFRPQk4oMHgzZDFi
MjRjYiwgMHgyOGM2ODJjNiksIFRPQk4oMHgyN2YyNTIyOCwgMHg4NjEyNTc1YiksCi0gICAgICAg
ICBUT0JOKDB4YjU4N2M3NzksIDB4ZThlNjZlOTgpLCBUT0JOKDB4N2IwYzAzZTksIDB4NDA1ZWIx
ZmUpLAotICAgICAgICAgVE9CTigweGZkZjBkMDMwLCAweDE1YjU0OGU3KSwgVE9CTigweGE4YmU3
NmUwLCAweDM4YjM2YWY3KSwKLSAgICAgICAgIFRPQk4oMHg0Y2RhYjA0YSwgMHg0ZjMxMGM0MCks
IFRPQk4oMHg2Mjg3MjIzZSwgMHhmNDdlY2FlYyksCi0gICAgICAgICBUT0JOKDB4Njc4ZTYwNTUs
IDB4OGIzOTkzMjApLCBUT0JOKDB4NjFmZTNmYTYsIDB4YzAxZTQ2NDYpLAotICAgICAgICAgVE9C
TigweGM0ODI4NjZiLCAweDAzMjYxYTVlKSwgVE9CTigweGRmY2Y0NWI4LCAweDVjMmYyNDRhKSwK
LSAgICAgICAgIFRPQk4oMHg4ZmFiOWE1MSwgMHgyZjY4NGI0MyksIFRPQk4oMHhmNzk2YzY1NCwg
MHhjNzIyMGE2NiksCi0gICAgICAgICBUT0JOKDB4MWQ5MDcwN2UsIDB4ZjVhZmE1OGYpLCBUT0JO
KDB4MmM0MjFkOTcsIDB4NGZkYmUwZGUpLAotICAgICAgICAgVE9CTigweGM0ZjRjZGEzLCAweGFm
MmViYzJmKSwgVE9CTigweGEwYWY4NDNkLCAweGNiNGVmZTI0KSwKLSAgICAgICAgIFRPQk4oMHg1
M2I4NTdjMSwgMHg5Y2NkMTBiMSksIFRPQk4oMHhkZGM5ZDFlYiwgMHg5MTRkM2UwNCksCi0gICAg
ICAgICBUT0JOKDB4N2JkZWM4YmIsIDB4NjI3NzFkZWIpLCBUT0JOKDB4ODI5Mjc3YWEsIDB4OTFj
NWFhODEpLAotICAgICAgICAgVE9CTigweDdhZjE4ZGQ2LCAweDgzMjM5MWFlKSwgVE9CTigweDE3
NDBmMzE2LCAweGM3MWE4NGNhKX0sCi0gICAgICAgIHtUT0JOKDB4ODkyOGU5OWEsIDB4ZWVhZjhj
NDkpLCBUT0JOKDB4ZWU3YWE3M2QsIDB4NmUyNGQ3MjgpLAotICAgICAgICAgVE9CTigweDRjNTAw
N2MyLCAweGU3MmIxNTZjKSwgVE9CTigweDVmY2Y1N2M1LCAweGVkNDA4YTFkKSwKLSAgICAgICAg
IFRPQk4oMHg5ZjcxOWUzOSwgMHhiNjA1NzYwNCksIFRPQk4oMHg3ZDM0M2MwMSwgMHhjMjg2OGJi
ZiksCi0gICAgICAgICBUT0JOKDB4MmNjYTI1NGIsIDB4N2UxMDNlMmQpLCBUT0JOKDB4ZTZlYjM4
YTksIDB4ZjEzMWJlYTIpLAotICAgICAgICAgVE9CTigweGIzM2U2MjRmLCAweDhiZTc2MmI0KSwg
VE9CTigweDJhOWVlNGQxLCAweDA1OGUzNDEzKSwKLSAgICAgICAgIFRPQk4oMHg5NjhlNjM2OSwg
MHg2N2Q4MDVmYSksIFRPQk4oMHg5ODQ4OTQ5YiwgMHg3ZGI4YmZkNyksCi0gICAgICAgICBUT0JO
KDB4NTMwOGQ3ZTUsIDB4ZDIzYTg0MTcpLCBUT0JOKDB4ODkyZjNiMWQsIDB4ZjNlMjlkYTUpLAot
ICAgICAgICAgVE9CTigweGM5NWMxMzllLCAweDNkZWU0NzFmKSwgVE9CTigweDg2MzE1OTRkLCAw
eGQ3NTdlMDg5KSwKLSAgICAgICAgIFRPQk4oMHhlMGM4MmEzYywgMHhkZTkxOGRjYyksIFRPQk4o
MHgyZTdiNTk5NCwgMHgyNmZkY2Y0YiksCi0gICAgICAgICBUT0JOKDB4ODJjNTAyNDksIDB4MzJj
YjFiMmQpLCBUT0JOKDB4ZWE2MTNhOWQsIDB4NzY1N2FlMDcpLAotICAgICAgICAgVE9CTigweGMy
ZWI1ZjZjLCAweGYxZmRjOWY3KSwgVE9CTigweGI2ZWFlOGI4LCAweDg3OWZlNjgyKSwKLSAgICAg
ICAgIFRPQk4oMHgyNTNkZmVlMCwgMHg1OTFjYmM3ZiksIFRPQk4oMHgwMDBkYTcxMywgMHgzZTEy
OTBlNiksCi0gICAgICAgICBUT0JOKDB4MTA4M2UyZWEsIDB4MWYwOTU2MTUpLCBUT0JOKDB4MGEy
OGFkNzcsIDB4MTRlNjhjMzMpLAotICAgICAgICAgVE9CTigweDZiZmMwMjUyLCAweDNkODgxOGJl
KSwgVE9CTigweGI1ODUxMTNhLCAweGYzNTg1MGNkKSwKLSAgICAgICAgIFRPQk4oMHg3ZDkzNWYw
YiwgMHgzMGRmOGFhMSksIFRPQk4oMHhhZGRkYTA3YywgMHg0YWI3ZTNhYyksCi0gICAgICAgICBU
T0JOKDB4OTJjMzQyOTksIDB4NTUyZjAwY2IpLCBUT0JOKDB4YzMzZWQxZGUsIDB4MjkwOWRmNmMp
LAotICAgICAgICAgVE9CTigweDIyYzIxOTVkLCAweDgwZTg3NzY2KSwgVE9CTigweDllOTllNmQ4
LCAweDlkZGY0YWMwKSwKLSAgICAgICAgIFRPQk4oMHgwOTY0MmU0ZSwgMHg2NWU3NDkzNCksIFRP
Qk4oMHgyNjEwZmZhMiwgMHhmZjFmZjI0MSksCi0gICAgICAgICBUT0JOKDB4NGQxZDQ3ZDQsIDB4
NzUxYzgxNTkpLCBUT0JOKDB4Njk3YjQ5ODUsIDB4YWYzYTkzNjMpLAotICAgICAgICAgVE9CTigw
eDAzMThjYTQ2LCAweDg3NDc3YzMzKSwgVE9CTigweGE5MGNiNTY1LCAweDk0NDFlZmYzKSwKLSAg
ICAgICAgIFRPQk4oMHg1OGJiMzg0OCwgMHgzNmYwMjRjYiksIFRPQk4oMHg4NWJlMWY3NywgMHgz
NjAxNjE2OCksCi0gICAgICAgICBUT0JOKDB4NmM1OTU4N2MsIDB4ZGM3ZTA3ZjEpLCBUT0JOKDB4
MTkxYmUwNzEsIDB4YWYxZDhmMDIpLAotICAgICAgICAgVE9CTigweGJmMTY5ZmE1LCAweGNjYTVl
NTVjKSwgVE9CTigweDM4NjRiYTNjLCAweGY3ZDA0ZWFjKSwKLSAgICAgICAgIFRPQk4oMHg5MTVl
MzY3ZiwgMHg4ZDdkMDVkYiksIFRPQk4oMHhiNDhhODc2ZCwgMHhhNjU0OWU1ZCksCi0gICAgICAg
ICBUT0JOKDB4ZWY4OWM2NTYsIDB4NTgwZTQwYTIpLCBUT0JOKDB4ZjE5NGVkOGMsIDB4NzI4MDY4
YmMpLAotICAgICAgICAgVE9CTigweDc0NTI4MDQ1LCAweGE0Nzk5MGM5KSwgVE9CTigweGY1M2Zj
N2Q3LCAweDVlMWE0NjQ5KSwKLSAgICAgICAgIFRPQk4oMHhiZWM1YWU5YiwgMHg3ODU5M2U3ZCks
IFRPQk4oMHgyY2FjNGVlMywgMHg0MWRiNjVkNyksCi0gICAgICAgICBUT0JOKDB4YThjMWViMjQs
IDB4MDRhM2QzOWIpLCBUT0JOKDB4NTNiN2Q2MzQsIDB4MDNmOGYzZWYpLAotICAgICAgICAgVE9C
TigweDJkYzQwZDQ4LCAweDNlMDcxMTNjKSwgVE9CTigweDZlNGE1ZDM5LCAweDdkOGI2M2FlKSwK
LSAgICAgICAgIFRPQk4oMHg1NTgyYTk0YiwgMHg3OTY4NGMyYiksIFRPQk4oMHg5MzJiMzNkNCwg
MHg2MjJkYTI2YyksCi0gICAgICAgICBUT0JOKDB4ZjUzNGY2NTEsIDB4MGRiYmYwOGQpLCBUT0JO
KDB4MjExZDA3YzksIDB4NjRjMjNhNTIpLAotICAgICAgICAgVE9CTigweDBlZWVjZTBmLCAweGVl
NWJkYzliKSwgVE9CTigweGRmMTc4MTY4LCAweGY3MDE1NTU4KSwKLSAgICAgICAgIFRPQk4oMHhk
NDI5NDYzNSwgMHgwYTcxMjIyOSksIFRPQk4oMHg5M2NiZTQ0OCwgMHgwOTI3M2Y4YyksCi0gICAg
ICAgICBUT0JOKDB4MDBiMDk1ZWYsIDB4OGYxM2JjODMpLCBUT0JOKDB4YmI3NDE5NzIsIDB4ODc5
ODk3OGMpLAotICAgICAgICAgVE9CTigweDlkNzMwOWEyLCAweDU2ZGJlNmU3KSwgVE9CTigweGU1
NzhlYzU2LCAweDVhNWQzOWVjKSwKLSAgICAgICAgIFRPQk4oMHgzOTYxMTUxYiwgMHg4NTFmOWEz
MSksIFRPQk4oMHgyZGE3NzE1ZCwgMHhlNTcwOWViNCksCi0gICAgICAgICBUT0JOKDB4ODY3ZjMw
MTcsIDB4NTNkZmFiZjApLCBUT0JOKDB4NzI4ZDIwNzgsIDB4YjhlMzkyNTkpLAotICAgICAgICAg
VE9CTigweDVjNzVhMGNkLCAweDgxNWQ5OTU4KSwgVE9CTigweGY4NDg2N2E2LCAweDE2NjAzYmUx
KSwKLSAgICAgICAgIFRPQk4oMHhjODY1YjEzZCwgMHg3MGUzNWIxYyksIFRPQk4oMHgwMjQxNDQ2
OCwgMHgxOWIwM2UyYyksCi0gICAgICAgICBUT0JOKDB4ZTQ2MDQxZGEsIDB4YWMxZjMxMjEpLCBU
T0JOKDB4N2M5MDE3YWQsIDB4NmYwMjhhN2MpLAotICAgICAgICAgVE9CTigweGFiYzk2ZGU5LCAw
eDBhNDgyODczKSwgVE9CTigweDQyNjVkNmIxLCAweGI3N2U1NGQ0KSwKLSAgICAgICAgIFRPQk4o
MHg2OGMzOGU3OSwgMHhhNTdkODhlNyksIFRPQk4oMHhkNDYxZDc2NiwgMHg5Y2U4MmRlMyksCi0g
ICAgICAgICBUT0JOKDB4ODE3YTllYzUsIDB4NjRhN2U0ODkpLCBUT0JOKDB4Y2M1Njc1Y2QsIDB4
YTBkZWY1ZjIpLAotICAgICAgICAgVE9CTigweDlhMDBlNzg1LCAweDk4NWQ0OTRlKSwgVE9CTigw
eGM2MjY4MzNmLCAweDFiMDM1MTRhKSwKLSAgICAgICAgIFRPQk4oMHhhYmU3OTA1YSwgMHg4M2Nk
ZDYwZSksIFRPQk4oMHg1MDYwMmZiNSwgMHhhMTE3MDE4NCksCi0gICAgICAgICBUT0JOKDB4Njg5
ODg2Y2QsIDB4YjAyMzY0MmEpLCBUT0JOKDB4ZDU2OGQwOTAsIDB4YTZlMWZiMDApLAotICAgICAg
ICAgVE9CTigweDViMTkyMmM3LCAweDAyNTkyMTdmKSwgVE9CTigweDkzODMxY2Q5LCAweGM0MzE0
MWU0KSwKLSAgICAgICAgIFRPQk4oMHhkZmNhMzU4NywgMHgwYzk1Zjg2ZSksIFRPQk4oMHhkZWMy
MDU3YSwgMHg1NjhhZTgyOCksCi0gICAgICAgICBUT0JOKDB4YzQ0ZWE1OTksIDB4Zjk4YTc1OWEp
LCBUT0JOKDB4NTVhMGE3YTIsIDB4ZjdjMjNjMWQpLAotICAgICAgICAgVE9CTigweGQ1ZmZiNmU2
LCAweDk0YzRmNjg3KSwgVE9CTigweDM1NjNjY2UyLCAweDEyODQ4NDc4KSwKLSAgICAgICAgIFRP
Qk4oMHg4MTJiMzUxNywgMHhlN2IxZmJlMSksIFRPQk4oMHg4YTdkYzk3OSwgMHg0ZjczMzhlMCks
Ci0gICAgICAgICBUT0JOKDB4MjExZWNlZTksIDB4NTJkMDQ4ZGIpLCBUT0JOKDB4MmVlYTQwNTYs
IDB4Yzg2ZWEzYjgpLAotICAgICAgICAgVE9CTigweGQ4Y2I2OGE3LCAweGJhNzcyYjM0KSwgVE9C
TigweGUxNmVkMzQxLCAweDVmNGUyNTQxKSwKLSAgICAgICAgIFRPQk4oMHg5YjMyZjZhNiwgMHgw
ZmVjMTRkYiksIFRPQk4oMHhlZWUzNzZmNywgMHgzOTE2OThiZSksCi0gICAgICAgICBUT0JOKDB4
ZTlhN2FhMTcsIDB4ODM2NzRjMDIpLCBUT0JOKDB4NjU4MzJmOTcsIDB4NTg0MzAyMmEpLAotICAg
ICAgICAgVE9CTigweDI5ZjNhOGRhLCAweDViYTQ5OTBmKSwgVE9CTigweDc5YTU5YzNhLCAweGZi
OGUzMjE2KSwKLSAgICAgICAgIFRPQk4oMHg5Y2RjNGQyZSwgMHhiZDE5YmIxNiksIFRPQk4oMHhj
NmM3Y2ZkMCwgMHhiMzI2MmQ4NiksCi0gICAgICAgICBUT0JOKDB4ZDRjZTE0ZDAsIDB4OTY5YzBi
NDcpLCBUT0JOKDB4MWZhMzUyYjcsIDB4MTNlNTYxMjgpLAotICAgICAgICAgVE9CTigweDM4M2Q1
NWI4LCAweDk3M2RiNmQzKSwgVE9CTigweDcxODM2ODUwLCAweGU4ZTViN2JmKSwKLSAgICAgICAg
IFRPQk4oMHhjNzcxNDU5NiwgMHhlNmJiNTcxZiksIFRPQk4oMHgyNTlkZjMxZiwgMHgyZDViMmRk
MiksCi0gICAgICAgICBUT0JOKDB4NTY4Zjg5MjUsIDB4OTEzY2MxNmQpLCBUT0JOKDB4MThiYzVi
NmQsIDB4ZTFhMjZmNWEpLAotICAgICAgICAgVE9CTigweGRmYTQxM2JlLCAweGY1ZjQ5OWFlKSwg
VE9CTigweGY4ODM1ZGVjLCAweGMzZjBhZTg0KSwKLSAgICAgICAgIFRPQk4oMHhiNmU2MGJkOCwg
MHg2NWE0MGFiMCksIFRPQk4oMHg2NTU5NjQzOSwgMHgxOTRiMzc3ZSksCi0gICAgICAgICBUT0JO
KDB4YmNkODU2MjUsIDB4OTIwODRhNjkpLCBUT0JOKDB4NWNlNDMzYjksIDB4NGYyM2VkZTApLAot
ICAgICAgICAgVE9CTigweGU4ZThmMDRmLCAweDZhZDY1MTQzKSwgVE9CTigweDExNTExODI3LCAw
eGQ2ZTE0YWY2KSwKLSAgICAgICAgIFRPQk4oMHgzZDM5MGExMCwgMHg4Mjk1YzBjNyksIFRPQk4o
MHg3MWUyOWVlNCwgMHg2MjFlYmExNiksCi0gICAgICAgICBUT0JOKDB4YTU4OGZjMDksIDB4NjM3
MTdiNDYpLCBUT0JOKDB4MDJiZTAyZmUsIDB4ZTA2YWQ0YTIpLAotICAgICAgICAgVE9CTigweDkz
MTU1OGM2LCAweDA0YzIyYjIyKSwgVE9CTigweGJiNGQ0YmQ2LCAweDEyZjNjODQ5KSwKLSAgICAg
ICAgIFRPQk4oMHg1NGE0ZjQ5NiwgMHgyMGVmZDY2MiksIFRPQk4oMHg5MmJhNmQyMCwgMHhjNTk1
MmQxNCksCi0gICAgICAgICBUT0JOKDB4MmRiOGVhMWUsIDB4Y2M5Nzg0YzIpLCBUT0JOKDB4ODFj
YzEwY2EsIDB4NGIzNTM2NDQpLAotICAgICAgICAgVE9CTigweDQwYjU3MGFkLCAweDRiNGQ3ZjZj
KSwgVE9CTigweDVjOWYxZDk2LCAweDg0YTFkY2QyKSwKLSAgICAgICAgIFRPQk4oMHgwMTM3OWY4
MSwgMHgzMTQ3ZTc5NyksIFRPQk4oMHhlNWM2MDk3YiwgMHgyYmQ0OTlmNSksCi0gICAgICAgICBU
T0JOKDB4NDBkY2FmYTYsIDB4MzI4ZTVlMjApLCBUT0JOKDB4ZjdiNTI0NGEsIDB4NTQ4MTU1NTAp
LAotICAgICAgICAgVE9CTigweGI5YTRmMTE4LCAweDQ3YmZjOTc4KSwgVE9CTigweDBlYTBlNzlm
LCAweGQyNTgyNWIxKSwKLSAgICAgICAgIFRPQk4oMHhhNTBmOTZlYiwgMHg2NDZjN2VjZiksIFRP
Qk4oMHhlYjgxMTQ5MywgMHg0NDZkZWE5ZCksCi0gICAgICAgICBUT0JOKDB4MmFmMDQ2NzcsIDB4
ZGZhYmNmNjkpLCBUT0JOKDB4YmUzYTA2OGYsIDB4YzcxM2Y2ZTgpLAotICAgICAgICAgVE9CTigw
eDg2MGQ1MjNkLCAweDQyZTA2MTg5KSwgVE9CTigweGJmMDc3OTQxLCAweDRlM2FmZjEzKSwKLSAg
ICAgICAgIFRPQk4oMHgwYjYxNmRjYSwgMHhjMWIyMDY1MCksIFRPQk4oMHhlNjZkZDZkMSwgMHgy
MTMxMzAwZCksCi0gICAgICAgICBUT0JOKDB4ZDRhMGZkNjcsIDB4ZmY5OWFiZGUpLCBUT0JOKDB4
Yzk5MDM1NTAsIDB4YzdhYWM1MGQpLAotICAgICAgICAgVE9CTigweDAyMmVjZjhiLCAweDdjNDZi
MmQ3KSwgVE9CTigweDMzMzNiMWU4LCAweDNhYmY5MmFmKSwKLSAgICAgICAgIFRPQk4oMHgxMWNj
MTEzYywgMHg2YzQ5MWMxNCksIFRPQk4oMHgwNTk3NjY4OCwgMHg4MGRkM2Y4OCksCi0gICAgICAg
ICBUT0JOKDB4ZjViNGQ5ZTcsIDB4MjlkOTMyZWQpLCBUT0JOKDB4ZTk4MmFhZDgsIDB4YTJjMzhi
NmQpLAotICAgICAgICAgVE9CTigweDZmOTI1MzQ3LCAweDhiZTBkY2YwKSwgVE9CTigweDcwMDA4
MGFlLCAweDY1Y2E1M2YyKSwKLSAgICAgICAgIFRPQk4oMHhkODEzMTE1NiwgMHg0NDNjYTc3Ziks
IFRPQk4oMHhlOTJkNjk0MiwgMHhlYzUxZjk4NCksCi0gICAgICAgICBUT0JOKDB4ZDJhMDhhZjgs
IDB4ODVkZmU5YWUpLCBUT0JOKDB4ZDgyNWQ5YTUsIDB4NGQyYTg2Y2EpLAotICAgICAgICAgVE9C
TigweDJjNTM5ODhkLCAweDM5ZGZmMDIwKSwgVE9CTigweGYzOGIxMzVhLCAweDQzMGNkYzQwKSwK
LSAgICAgICAgIFRPQk4oMHgwYzkxOGFlMCwgMHg2MmE3MTUwYiksIFRPQk4oMHhmMzFmZDhkZSwg
MHgwYzM0MGU5YiksCi0gICAgICAgICBUT0JOKDB4YWZhMGU3YWUsIDB4NGRiYmYwMmUpLCBUT0JO
KDB4NTg0N2ZiMmEsIDB4NWViYTYyMzkpLAotICAgICAgICAgVE9CTigweDZiMTY0N2RjLCAweGRj
Y2JhYzhiKSwgVE9CTigweGI2NDJhYTc4LCAweDA2ZjQ4NWM4KSwKLSAgICAgICAgIFRPQk4oMHg4
NzNmMzc2NSwgMHg3MDM4ZWNkZiksIFRPQk4oMHgyY2U1ZTg2NSwgMHhmYTQ5ZDNmZSksCi0gICAg
ICAgICBUT0JOKDB4ZWEyMjM3ODgsIDB4Yzk4YzQ0MDApLCBUT0JOKDB4ODEwNGE4Y2QsIDB4ZjFm
YTUyNzkpLAotICAgICAgICAgVE9CTigweGJjZjdjYzdhLCAweDA2YmVjZmQ3KSwgVE9CTigweDQ5
NDI0MzE2LCAweGM4Zjk3NGFlKSwKLSAgICAgICAgIFRPQk4oMHhjMGRhNjVlNywgMHg4NGQ2MzY1
ZCksIFRPQk4oMHhiY2I3NDQzZiwgMHg4Zjc1OWZiOCksCi0gICAgICAgICBUT0JOKDB4MzVjNzEy
YjEsIDB4N2FlODE5MzApLCBUT0JOKDB4ODA0MjhkZmYsIDB4NGM2ZTA4YWIpLAotICAgICAgICAg
VE9CTigweGYxOWRhZmVmLCAweGE0ZmFmODQzKSwgVE9CTigweGNlZDg1MzhkLCAweGZmYTk4NTVm
KSwKLSAgICAgICAgIFRPQk4oMHgyMGFjNDA5YywgMHhiZTNhYzdjZSksIFRPQk4oMHgzNThjMWZi
NiwgMHg4ODJkYTcxZSksCi0gICAgICAgICBUT0JOKDB4YWZhOWMwZTUsIDB4ZmQzNDk5NjEpLCBU
T0JOKDB4MmIyY2ZhNTEsIDB4ODQyMWMyZmMpLAotICAgICAgICAgVE9CTigweDJhODBkYjE3LCAw
eGYzYTI4ZDM4KSwgVE9CTigweGE4YWJhNTM5LCAweDVkMTM4ZTdlKSwKLSAgICAgICAgIFRPQk4o
MHg1MjAxMmQxZCwgMHg2ZTk2ZWI4ZCksIFRPQk4oMHg2NWQ4ZGVhMCwgMHhjYmFmOTYyMiksCi0g
ICAgICAgICBUT0JOKDB4NTc3MzU0NDcsIDB4YjI2NGY1NmMpLCBUT0JOKDB4YmVlYmVmM2YsIDB4
MWI2YzhkYTIpLAotICAgICAgICAgVE9CTigweGZjMzQ2ZDk4LCAweGNlNzg1MjU0KSwgVE9CTigw
eGQ1MGU4ZDcyLCAweGJiNjRhMTYxKSwKLSAgICAgICAgIFRPQk4oMHhjMDM1NjdjNywgMHg0OTc5
NGFkZCksIFRPQk4oMHgxNWE3NjA2NSwgMHg3NTJjN2VmNiksCi0gICAgICAgICBUT0JOKDB4NTlm
M2EyMjIsIDB4OTYxZjIzZDYpLCBUT0JOKDB4Mzc4ZTQ0MzgsIDB4NzNlY2MwYjApLAotICAgICAg
ICAgVE9CTigweGM3NGJlNDM0LCAweDVhODJmZGU0KSwgVE9CTigweGFlNTA5YWYyLCAweGQ4Yjlj
ZjM0KSwKLSAgICAgICAgIFRPQk4oMHg0YTYxZWU0NiwgMHg1NzdmNDRhMSksIFRPQk4oMHhlMDli
NzQ4YywgMHhiNjExZGVlYiksCi0gICAgICAgICBUT0JOKDB4YzA0ODFiMmMsIDB4ZjVmN2I4ODQp
LCBUT0JOKDB4MzU2MjY2NzgsIDB4NjFhY2ZhNmIpLAotICAgICAgICAgVE9CTigweDM3ZjRjNTE4
LCAweGJmOGQyMWU2KSwgVE9CTigweDIyZDk2NTMxLCAweGIyMDVhNzZkKSwKLSAgICAgICAgIFRP
Qk4oMHgzN2ZiODVlMSwgMHg5NTQwNzNjMCksIFRPQk4oMHhiY2VhZmU0ZiwgMHg2NWIzYTU2Nyks
Ci0gICAgICAgICBUT0JOKDB4ZWZlY2RlZjcsIDB4YmU0MmE1ODIpLCBUT0JOKDB4ZDNmYzYwODAs
IDB4NjUwNDZiZTYpLAotICAgICAgICAgVE9CTigweGM5YWYxM2M4LCAweDA5ZThkYmE5KSwgVE9C
TigweDFlNmM5ODQ3LCAweDY0MTQ5MWZmKSwKLSAgICAgICAgIFRPQk4oMHgzYjU3NDkyNSwgMHhk
MzBjMzFmNyksIFRPQk4oMHhiN2ViNzJiYSwgMHhhYzJhMjEyMiksCi0gICAgICAgICBUT0JOKDB4
Nzc2YTBkYWMsIDB4ZWYwODU5ZTcpLCBUT0JOKDB4MDZmZWMzMTQsIDB4MjE5MDA5NDIpLAotICAg
ICAgICAgVE9CTigweDI0NjRiYzEwLCAweGY4YzIyMDQ5KSwgVE9CTigweDliZmJjY2U3LCAweDg3
NWViZjY5KSwKLSAgICAgICAgIFRPQk4oMHhkN2E4OGUyYSwgMHg0MzM2MzI2YiksIFRPQk4oMHhk
YTA1MjYxYywgMHg1YmMyYWNmYSksCi0gICAgICAgICBUT0JOKDB4YzI5ZjViZGMsIDB4ZWJhN2Vm
YzgpLCBUT0JOKDB4NDcxMjM3Y2EsIDB4MjVkYmJmMmUpLAotICAgICAgICAgVE9CTigweGE3Mjc3
M2YyLCAweDI5NzVmMTI3KSwgVE9CTigweGRjNzQ0ZThlLCAweDA0ZDBiMzI2KSwKLSAgICAgICAg
IFRPQk4oMHgzOGE3ZWQxNiwgMHhhNTZlZGI3MyksIFRPQk4oMHg2NDM1N2UzNywgMHgyYzAwN2U3
MCksCi0gICAgICAgICBUT0JOKDB4YTE2N2QxNWIsIDB4NTA4MGI0MDApLCBUT0JOKDB4MDdiNDEx
NjQsIDB4MjNkZTRiZTEpLAotICAgICAgICAgVE9CTigweGIyZDkxZTMyLCAweDc0Yzg5ODgzKSwg
VE9CTigweDNjMTYyODIxLCAweDI4ODJlN2VkKSwKLSAgICAgICAgIFRPQk4oMHhhZDZiMzZiYSwg
MHg3NTAzZTQ4MiksIFRPQk4oMHg0ODQzNGU4ZSwgMHgwZWEzNDMzMSksCi0gICAgICAgICBUT0JO
KDB4NzlmNGYyNGYsIDB4MmM3YWUwYjkpLCBUT0JOKDB4YzQ2ZmJmODEsIDB4MTkzOWI0NGEpLAot
ICAgICAgICAgVE9CTigweDc2ZmVmYWU4LCAweDU2NTk1ZWIxKSwgVE9CTigweDQxN2I2NmFiLCAw
eGNkNWYyOWM3KSwKLSAgICAgICAgIFRPQk4oMHg1ZjIzMzJiMiwgMHhjNWNlZWMyMCksIFRPQk4o
MHhkNjk2NjFmZiwgMHhlMWExY2FlMiksCi0gICAgICAgICBUT0JOKDB4NWVkZTdlNTIsIDB4OWIw
Mjg2ZTYpLCBUT0JOKDB4OWQwNjI1MjksIDB4ZTI3NmI5OTMpLAotICAgICAgICAgVE9CTigweDMy
NDc5NGIwLCAweDdlNTAxMjJiKSwgVE9CTigweGRkNzQ0ZjhiLCAweDRhZjA3Y2E1KSwKLSAgICAg
ICAgIFRPQk4oMHgzMGExMmYwOCwgMHhkNjNmYzk3YiksIFRPQk4oMHgzOTY1MGYxYSwgMHg3NjYy
NmQ5ZCksCi0gICAgICAgICBUT0JOKDB4MTAxYjQ3ZjcsIDB4MWZhMzg0NzcpLCBUT0JOKDB4M2Q4
MTVmMTksIDB4ZDRkYzEyNGYpLAotICAgICAgICAgVE9CTigweDE1NjlhZTk1LCAweGIyNmViNThh
KSwgVE9CTigweGMzY2RlMTg4LCAweDk1ZmIxODg3KSwKLSAgICAgICAgIFRPQk4oMHg1NGU5ZjM3
YiwgMHhmOTUzOWE0OCksIFRPQk4oMHhiMDEwMGUwNiwgMHg3NDA4YzFhNSksCi0gICAgICAgICBU
T0JOKDB4ODIxZDk4MTEsIDB4ZWE1ODBjYmIpLCBUT0JOKDB4OGFmNTJkMzUsIDB4ODZlNTBjNTYp
LAotICAgICAgICAgVE9CTigweGRmYmQ5ZDQ3LCAweGRiYmY2OThiKSwgVE9CTigweDI5NjFhMWVh
LCAweDAzZGMxYzczKSwKLSAgICAgICAgIFRPQk4oMHgyMDNkMzhmOCwgMHhlNzZhNWRmOCksIFRP
Qk4oMHgwOGE1M2E2OCwgMHg2ZGVmNzA3YSksCi0gICAgICAgICBUT0JOKDB4MjZlZWZiNDgsIDB4
MWJlZTQ1ZDQpLCBUT0JOKDB4YjNjZWUzNDYsIDB4M2M2ODgwMzYpLAotICAgICAgICAgVE9CTigw
eDQ2M2M1MzE1LCAweGM0MmYyNDY5KSwgVE9CTigweDE5ZDg0ZDJlLCAweDgxMzc4MTYyKSwKLSAg
ICAgICAgIFRPQk4oMHgyMmQ3YzNjNSwgMHgxYzRkMzQ5ZiksIFRPQk4oMHg2NTk2NTg0NCwgMHgx
NjNkNTljNSksCi0gICAgICAgICBUT0JOKDB4Y2YxOThjNTYsIDB4YjhhYmNlYWUpLCBUT0JOKDB4
NmZiMWZiMWIsIDB4NjI4NTU5ZDUpLAotICAgICAgICAgVE9CTigweDhiYmZmZDA2LCAweDA3YmY4
ZmUzKSwgVE9CTigweDQ2MjU5YzU4LCAweDM0Njc3MzRiKSwKLSAgICAgICAgIFRPQk4oMHhkODk1
M2NlYSwgMHgzNWY3ZjBkMyksIFRPQk4oMHgxZjBiZWNlMiwgMHhkNjViMGZmMSksCi0gICAgICAg
ICBUT0JOKDB4ZjdkNWI0YjMsIDB4ZjNjNzI5MTQpLCBUT0JOKDB4MjllOGVhOTUsIDB4M2NiNTMz
ODkpLAotICAgICAgICAgVE9CTigweDRhMzY1NjI2LCAweDgzNmI2ZDQ2KSwgVE9CTigweGU4NDlm
OTEwLCAweGVhMTc0ZmRlKSwKLSAgICAgICAgIFRPQk4oMHg3ZWM2MmZiYiwgMHhmNDczN2YyMSks
IFRPQk4oMHhkOGRiYTVhYiwgMHg2MjA5ZjVhYyksCi0gICAgICAgICBUT0JOKDB4MjRiNWQ3YTks
IDB4YTVmOWFkYmUpLCBUT0JOKDB4NzA3ZDI4ZjcsIDB4YTYxZGM3NjgpLAotICAgICAgICAgVE9C
TigweDc3MTE0NjBiLCAweGNhYTk5OWVhKSwgVE9CTigweGJhN2IxNzRkLCAweDFjOTJlNGNjKSwK
LSAgICAgICAgIFRPQk4oMHgzYzRiYWI2NiwgMHgxOGQ0YmYyZCksIFRPQk4oMHhiOGYwYzk4MCwg
MHhlYjhiZDI3OSksCi0gICAgICAgICBUT0JOKDB4MDI0YmVhOWEsIDB4MzI0YjQ3MzcpLCBUT0JO
KDB4ZmJhOWU0MjMsIDB4MzJhODNiY2EpLAotICAgICAgICAgVE9CTigweDZlNjM1NjQzLCAweGEy
MzJkY2VkKSwgVE9CTigweDk5NjE5MzY3LCAweDI1NzFjOGJhKSwKLSAgICAgICAgIFRPQk4oMHhl
OGM5ZjM1NywgMHg1NGI3MDMyYiksIFRPQk4oMHhmOTM2YjNiYSwgMHgyNDQyZDU0YSksCi0gICAg
ICAgICBUT0JOKDB4MjI2M2YwZjAsIDB4ODI5MGM2NWEpLCBUT0JOKDB4NDg5ODk3ODAsIDB4ZWUy
YzdmZGIpLAotICAgICAgICAgVE9CTigweGFkYzVkNTVhLCAweDEzZDRmOTVlKSwgVE9CTigweDcz
N2NmZjg1LCAweGFkOWI4NTAwKSwKLSAgICAgICAgIFRPQk4oMHgyNzFjNTU3YiwgMHg4YTczZjQz
ZCksIFRPQk4oMHhiZWQ2MTdhNCwgMHhlMThiYzQ3NiksCi0gICAgICAgICBUT0JOKDB4NjYyNDU0
MDEsIDB4N2RmZDhhYjIpLCBUT0JOKDB4YWU3Yjg5YWUsIDB4M2EyODcwYWEpLAotICAgICAgICAg
VE9CTigweDFiNTU1ZjUzLCAweDIzYTdlNTQ1KSwgVE9CTigweDY3OTFlMjQ3LCAweGJlMDU3ZTRj
KSwKLSAgICAgICAgIFRPQk4oMHg4NjAxMzZhZCwgMHgzMjRmYTM0ZCksIFRPQk4oMHhlYTExMTQ0
NywgMHg0Y2JlYWUyOCksCi0gICAgICAgICBUT0JOKDB4MDIzYTQyNzAsIDB4YmVkZDMyOTkpLCBU
T0JOKDB4M2Q1YzNhN2YsIDB4YzFjMzVjMzQpLAotICAgICAgICAgVE9CTigweGIwZjZkYjY3LCAw
eDhkMDQxMmQyKSwgVE9CTigweGQ5MjYyNWUyLCAweGZjZGM2YjlhKSwKLSAgICAgICAgIFRPQk4o
MHg5MmFlNWNjYywgMHg0ZTI4YTk4MiksIFRPQk4oMHhlYTI1MWMzNiwgMHg0N2EzY2U3ZSksCi0g
ICAgICAgICBUT0JOKDB4OWQ2NTg5MzIsIDB4NzkwNjkxYmYpLCBUT0JOKDB4ZWQ2MTA1ODksIDB4
MDZiNzM2YWUpLAotICAgICAgICAgVE9CTigweDcxMmMyZjA0LCAweGMwZDYzYjZlKSwgVE9CTigw
eDVjZjA2ZmQ1LCAweGM2M2Q0ODhmKSwKLSAgICAgICAgIFRPQk4oMHg5NzM2M2ZhYywgMHhkOTU4
OGU0MSksIFRPQk4oMHgxZjliZjc2MiwgMHgyYjkzMjU3ZSksCi0gICAgICAgICBUT0JOKDB4YTlk
MWZmYzQsIDB4NjY3YWNhY2UpLCBUT0JOKDB4MWNmNGExYWEsIDB4MGEwNjFlY2YpLAotICAgICAg
ICAgVE9CTigweDQwZTQ4YTQ5LCAweGRjMTgxOGQwKSwgVE9CTigweDA2NDNmZjM5LCAweGEzNjIx
YWIwKSwKLSAgICAgICAgIFRPQk4oMHg1NzY4NjQwYywgMHhlMzllZjYzOSksIFRPQk4oMHgxZmMw
OTllYSwgMHgwNGQ4Njg1NCksCi0gICAgICAgICBUT0JOKDB4OTEzMGI5YzMsIDB4ZWNjZDI4ZmQp
LCBUT0JOKDB4ZDc0M2NiZDIsIDB4N2VlYzU0YWIpLAotICAgICAgICAgVE9CTigweDA1MmIxNDZm
LCAweGU1YjQ3NWI2KSwgVE9CTigweDA1OGQ5YTgyLCAweDkwMGE3ZDFmKSwKLSAgICAgICAgIFRP
Qk4oMHg2NWUwMjI5MiwgMHg5MTI2MmI3MiksIFRPQk4oMHg5NmY5MjRmOSwgMHhiYjBlZGYwMyks
Ci0gICAgICAgICBUT0JOKDB4NWNmYTU5YzgsIDB4ZmUyMDY4NDIpLCBUT0JOKDB4ZjYwMzcwMDQs
IDB4NWVhZmE3MjApLAotICAgICAgICAgVE9CTigweDVmMzA2OTllLCAweDE4ZDdkZDk2KSwgVE9C
TigweDM4MWU4NzgyLCAweGNiYWIyNDk1KSwKLSAgICAgICAgIFRPQk4oMHg5MTY2OWI0NiwgMHhk
ZDhiZTk0OSksIFRPQk4oMHhiNDA2MDZmNSwgMHgyNmFhZThlZiksCi0gICAgICAgICBUT0JOKDB4
MjgxMmI4MzksIDB4ZmM2NzUxYTQpLCBUT0JOKDB4MTYxOTYyMTQsIDB4ZmJhODAwZWYpLAotICAg
ICAgICAgVE9CTigweDQzOThkNWNhLCAweDRjMWEyODc1KSwgVE9CTigweDcyMGMwMGVlLCAweDY1
M2Q4MzQ5KSwKLSAgICAgICAgIFRPQk4oMHhjMjY5OWViMCwgMHhkODIwMDA3YyksIFRPQk4oMHg4
ODBlZTY2MCwgMHhhMzliNTgyNSksCi0gICAgICAgICBUT0JOKDB4NzA2OTQ2OTQsIDB4NDcxZjY5
ODQpLCBUT0JOKDB4ZjdkMTZlYTgsIDB4ZTNkZGE5OWEpLAotICAgICAgICAgVE9CTigweDI4ZDY3
NWIyLCAweGMwNTE5YTIzKSwgVE9CTigweDllYmY5NGZlLCAweDRmNjk1MmUzKSwKLSAgICAgICAg
IFRPQk4oMHhmMjhiYjc2NywgMHhhMjI5NGE4YSksIFRPQk4oMHg4NTUxMmI0ZCwgMHhmZTBhZjNm
NSksCi0gICAgICAgICBUT0JOKDB4MTg5NThiYTgsIDB4OTliMTZhMGQpLCBUT0JOKDB4OTVjMjQz
MGMsIDB4YmE3NTQ4YTcpLAotICAgICAgICAgVE9CTigweGIzMGQxYjEwLCAweGExNmJlNjE1KSwg
VE9CTigweGUzZWJiYjk3LCAweDg1YmZiNzRjKSwKLSAgICAgICAgIFRPQk4oMHhhMzI3M2NmZSwg
MHgxODU0OWZkYiksIFRPQk4oMHhmNmUyMDBiZiwgMHg0ZmNkYjc5MiksCi0gICAgICAgICBUT0JO
KDB4NTRhNzZlMTgsIDB4ODNhYmE1NmMpLCBUT0JOKDB4NzNlYzY2ZjYsIDB4ODllZjZhYTIpLAot
ICAgICAgICAgVE9CTigweDhkMTdhZGQ3LCAweGQxYjlhMzA1KSwgVE9CTigweGE5NTljNWI5LCAw
eGI3YWUxYjlkKSwKLSAgICAgICAgIFRPQk4oMHg4ODY0MzUyMiwgMHg2YmNjMDk0YSksIFRPQk4o
MHhjYzU2MTZjNCwgMHhkN2Q0MjliOSksCi0gICAgICAgICBUT0JOKDB4YTZkYWRhMDEsIDB4ZTZh
MzNmN2MpLCBUT0JOKDB4YzYyMTdhMDcsIDB4OWQ0ZTcwYWQpLAotICAgICAgICAgVE9CTigweGQ2
MTlhODE4LCAweDA5YzE1YjdjKSwgVE9CTigweGVhMDZiMzI5LCAweDBlODBjODU0KSwKLSAgICAg
ICAgIFRPQk4oMHgxNzQ4MTFjZSwgMHhhNWY1ZTdiOSksIFRPQk4oMHg2NmRmYzMxMCwgMHg3ODdj
NjVmNCksCi0gICAgICAgICBUT0JOKDB4NGVhN2JkNjksIDB4MzMxNmFiNTQpLCBUT0JOKDB4YzEy
YzRhY2IsIDB4MWRjYzBmNzApLAotICAgICAgICAgVE9CTigweGU0MzA4ZDFhLCAweDFlNDA3ZGQ5
KSwgVE9CTigweGU4YTM1ODdjLCAweDkxYWZhOTk3KSwKLSAgICAgICAgIFRPQk4oMHhlYTI5NmMx
MiwgMHhhYjc3YjdhNSksIFRPQk4oMHhiNWFkNDllNCwgMHg2NzNjMGQ1MiksCi0gICAgICAgICBU
T0JOKDB4NDBmOWIyYjIsIDB4NzAwNjA4NWEpLCBUT0JOKDB4YTg4ZmYzNDAsIDB4ODdiZjZlYzIp
LAotICAgICAgICAgVE9CTigweDk3ODYwM2IxLCAweDRlMzA2NmE2KSwgVE9CTigweGIzZjk5ZmMy
LCAweGI1ZTQ4NmUyKSwKLSAgICAgICAgIFRPQk4oMHgwN2I1M2Y1ZSwgMHhiMmU2MzY0NSksIFRP
Qk4oMHhiZTU3ZTU0NywgMHg4NGM4NDIzMiksCi0gICAgICAgICBUT0JOKDB4ZDc3OWMyMTYsIDB4
NzIxNGQ1Y2YpLCBUT0JOKDB4NjE3OTY5Y2QsIDB4MDI5YTNhY2EpLAotICAgICAgICAgVE9CTigw
eGQxNzY2OGNkLCAweDhhNzAxN2EwKSwgVE9CTigweDc3YjRkMTlhLCAweGJlOWI3ZWU4KSwKLSAg
ICAgICAgIFRPQk4oMHg1OGZkMGU5MywgMHg5YzE2MTc3NiksIFRPQk4oMHhhOGM0ZjRlZiwgMHhk
NTk2OGE3MiksCi0gICAgICAgICBUT0JOKDB4Mjk2MDcxY2MsIDB4NjdiM2RlNzcpLCBUT0JOKDB4
YWUzYzBiOGUsIDB4NjM0Zjc5MDUpLAotICAgICAgICAgVE9CTigweDY3ZTQ0MGMyLCAweDhhNzEw
MGM5KSwgVE9CTigweGJiOGMzYzFiLCAweGViNGI5YjQyKSwKLSAgICAgICAgIFRPQk4oMHg2ZDcx
ZThlYSwgMHhjNTFiMzU4MyksIFRPQk4oMHg3NTkxZjVhZiwgMHg5NTI1ZTY0MiksCi0gICAgICAg
ICBUT0JOKDB4ZjczYTJmN2IsIDB4MTNmNTA5ZjMpLCBUT0JOKDB4NjE4NDg3YWEsIDB4NTYxOWFj
OWIpLAotICAgICAgICAgVE9CTigweDNhNzJlNWY3LCAweDlkNjE3MThhKSwgVE9CTigweDAwNDEz
YmNjLCAweDc1OTJkMjhjKSwKLSAgICAgICAgIFRPQk4oMHg3ZDliMTFkMywgMHg5NjNjMzVjZiks
IFRPQk4oMHg3NzYyM2JjZiwgMHhiOTBhNDZlZCksCi0gICAgICAgICBUT0JOKDB4ZGVlZjI3M2Is
IDB4ZGNkZDJhNTApLCBUT0JOKDB4NGE3NDFmOWIsIDB4MDYwMTg0NmUpLAotICAgICAgICAgVE9C
TigweDMzYjg5ZTUxLCAweDBlYzZlOTI5KSwgVE9CTigweGNiMDIzMTlmLCAweDhiN2YyMmNkKSwK
LSAgICAgICAgIFRPQk4oMHhiYmUxNTAwZCwgMHgwODRiYWUyNCksIFRPQk4oMHgyZjBhZThkNywg
MHgzNDNkMjY5MyksCi0gICAgICAgICBUT0JOKDB4YWNmZmI1ZjIsIDB4N2NkZWY4MTEpLCBUT0JO
KDB4YWEwYzAzMGEsIDB4MjYzZmI5NGYpLAotICAgICAgICAgVE9CTigweDZlZWYwZDYxLCAweGEw
ZjQ0MmRlKSwgVE9CTigweGY5MmUxODE3LCAweDI3YjEzOWQzKSwKLSAgICAgICAgIFRPQk4oMHgx
YWU2ZGViNywgMHgwYWQ4YmMyOCksIFRPQk4oMHhhODllMzhkYywgMHhjMDUxNDEzMCksCi0gICAg
ICAgICBUT0JOKDB4ODFlZWI4NjUsIDB4ZDJmZGNhMjMpLCBUT0JOKDB4NWExNWVlMDgsIDB4Y2M4
ZWY4OTUpLAotICAgICAgICAgVE9CTigweDc2OGZhMTBhLCAweDAxOTA1NjE0KSwgVE9CTigweGVm
ZjViOGVmLCAweDg4MGVlMTliKSwKLSAgICAgICAgIFRPQk4oMHhmMGMwY2FiYiwgMHhjYjFjOGEw
ZSksIFRPQk4oMHgyZTFlZTljZCwgMHhiOGM4MzhmOSksCi0gICAgICAgICBUT0JOKDB4MDU4N2Q4
YjgsIDB4OGE0YTE0YzApLCBUT0JOKDB4ZjZmMjc4OTYsIDB4MmZmNjk4ZTUpLAotICAgICAgICAg
VE9CTigweGVkMzhlZjFjLCAweDg5ZWU2MjU2KSwgVE9CTigweGY0NGVlMWZlLCAweDZiMzUzYjQ1
KSwKLSAgICAgICAgIFRPQk4oMHg5MTE1YzBjNywgMHg3MGU5MDNiMyksIFRPQk4oMHhjNzhlYzBh
MSwgMHg4MThmMzFkZiksCi0gICAgICAgICBUT0JOKDB4NmMwMDMzMjQsIDB4YjdkY2NiYzYpLCBU
T0JOKDB4ZDk2ZGQxZjMsIDB4MTYzYmJjMjUpLAotICAgICAgICAgVE9CTigweDMzYWE4MmRkLCAw
eDVjZWRkODA1KSwgVE9CTigweDEyM2FhZTRmLCAweDdmN2ViMmYxKSwKLSAgICAgICAgIFRPQk4o
MHgxNzIzZmNmNSwgMHhhMjYyNjJjZCksIFRPQk4oMHgxZjdmNGQ1ZCwgMHgwMDYwZWJkNSksCi0g
ICAgICAgICBUT0JOKDB4ZjE5YzVjMDEsIDB4YjJlYWEzYWYpLCBUT0JOKDB4MmNjYjliMTQsIDB4
OTc5MGFjY2YpLAotICAgICAgICAgVE9CTigweDFmOWMxY2FkLCAweDUyMzI0YWE2KSwgVE9CTigw
eDYzMjAwNTI2LCAweDcyNDdkZjU0KSwKLSAgICAgICAgIFRPQk4oMHg1NzMyZmU0MiwgMHhiYWM5
NmY4MiksIFRPQk4oMHg1MmZlNzcxZiwgMHgwMWExYzM4NCksCi0gICAgICAgICBUT0JOKDB4NTQ2
Y2ExM2QsIDB4YjEwMDE2ODQpLCBUT0JOKDB4YjU2YjRlZWUsIDB4YTE3MDlmNzUpLAotICAgICAg
ICAgVE9CTigweDI2NjU0NWE5LCAweGQ1ZGI4NjcyKSwgVE9CTigweGVkOTcxYzkwLCAweDFlOGYz
Y2ZiKSwKLSAgICAgICAgIFRPQk4oMHg0ZTdkODY5MSwgMHhlM2EwN2IyOSksIFRPQk4oMHg3NTcw
ZDllYywgMHhlNGI2OTZiOSksCi0gICAgICAgICBUT0JOKDB4ZGM1ZmEwNjcsIDB4N2JjN2U5YWUp
LCBUT0JOKDB4NjhiNDRjYWYsIDB4YzgyYzQ4NDQpLAotICAgICAgICAgVE9CTigweDUxOWQzNGIz
LCAweGJmNDRkYTgwKSwgVE9CTigweDI4MzgzNGY5LCAweDVhYjMyZTY2KSwKLSAgICAgICAgIFRP
Qk4oMHg2ZTYwODc5NywgMHg2Mjc4YTAwMCksIFRPQk4oMHgxZTYyOTYwZSwgMHg2MjczMTJmNiks
Ci0gICAgICAgICBUT0JOKDB4OWI4N2IyN2IsIDB4ZTY5MDFjNTUpLCBUT0JOKDB4ODBlNzg1Mzgs
IDB4MjRmZGJjMWYpLAotICAgICAgICAgVE9CTigweGJiYmMwOTUxLCAweDJmYWNjMjdkKSwgVE9C
TigweDA2Mzk0MjM5LCAweGFjMTQzYjVhKSwKLSAgICAgICAgIFRPQk4oMHgzNWJiNGE0MCwgMHgz
NzZjMTk0NCksIFRPQk4oMHg3Y2I2MjY5NCwgMHg2M2RhMTUxMSksCi0gICAgICAgICBUT0JOKDB4
YWZkMjkxNjEsIDB4YjcxNDhhM2IpLCBUT0JOKDB4YTZmOWQ5ZWQsIDB4NGUyZWEyZWUpLAotICAg
ICAgICAgVE9CTigweDE1ZGMyY2EyLCAweDg4MGRkMjEyKSwgVE9CTigweDkwM2MzODEzLCAweGE2
MTEzOWE5KSwKLSAgICAgICAgIFRPQk4oMHgyYWE3YjQ2ZCwgMHg2YzBmODc4NSksIFRPQk4oMHgz
NmNlMjg3MSwgMHg5MDFjNjBmZiksCi0gICAgICAgICBUT0JOKDB4YzY4M2IwMjgsIDB4ZTEwZDlj
MTIpLCBUT0JOKDB4NzU3M2JhYTIsIDB4MDMyZjMzZDMpLAotICAgICAgICAgVE9CTigweDg3YTli
MWY2LCAweDY3YTMxYjU4KSwgVE9CTigweGZkM2VkMTFhLCAweGY0ZmZhZTEyKSwKLSAgICAgICAg
IFRPQk4oMHg4M2RjYWE5YSwgMHgwY2IyNzQ4ZSksIFRPQk4oMHg4MjM5ZjAxOCwgMHg1ZDZmZGYx
NiksCi0gICAgICAgICBUT0JOKDB4YmE2N2I0OWMsIDB4NzI3NTM5NDEpLCBUT0JOKDB4MmJlZWM0
NTUsIDB4YzMyMWNiMzYpLAotICAgICAgICAgVE9CTigweDg4MDE1NjA2LCAweDNmOGI4NGNlKSwg
VE9CTigweDc2NDE3MDgzLCAweDhkMzhjODZmKSwKLSAgICAgICAgIFRPQk4oMHgwNTRmMWNhNywg
MHg1OTg5NTNkZCksIFRPQk4oMHhjOTM5ZTExMCwgMHg0ZThlNzQyOSksCi0gICAgICAgICBUT0JO
KDB4OWIxYWMyYjMsIDB4NWE5MTRmMmYpLCBUT0JOKDB4MzllMzVlZDMsIDB4ZTc0YjhmOWMpLAot
ICAgICAgICAgVE9CTigweGQwZGViZGIyLCAweDc4MWIyZmIwKSwgVE9CTigweDE1ODU2MzhmLCAw
eDJkOTk3YmEyKSwKLSAgICAgICAgIFRPQk4oMHg5YzRiNjQ2ZSwgMHg5ZTJmY2U5OSksIFRPQk4o
MHg2OGEyMTA4MSwgMHgxZTgwODU3ZiksCi0gICAgICAgICBUT0JOKDB4MDZkNTRlNDQsIDB4MzY0
M2I1MmEpLCBUT0JOKDB4ZGU4ZDZkNjMsIDB4MGQ4ZWI4NDMpLAotICAgICAgICAgVE9CTigweDcw
MzIxNTYzLCAweDQyMTQ2YTBhKSwgVE9CTigweDhiYTgyNmYyLCAweDVlYWEzNjIyKSwKLSAgICAg
ICAgIFRPQk4oMHgyMjdhNThiZCwgMHg4NjEzODc4NyksIFRPQk4oMHg0M2I2YzAzYywgMHgxMDI4
MWQzNyksCi0gICAgICAgICBUT0JOKDB4NjMyNmFmYmIsIDB4YjU0ZGRlMzkpLCBUT0JOKDB4NzQ0
ZTVlOGEsIDB4ZGI2ZjJkNWYpLAotICAgICAgICAgVE9CTigweDQ4YjJhOTlhLCAweGNmZjE1OGUx
KSwgVE9CTigweGE5M2M4ZmEwLCAweGVmODc5MThmKSwKLSAgICAgICAgIFRPQk4oMHgyMTgyZjk1
NiwgMHhkZTA1OGM1YyksIFRPQk4oMHgyMTYyMzVkMiwgMHg5MzZmOWU3YSksCi0gICAgICAgICBU
T0JOKDB4YWNlMGMwZGIsIDB4ZDJlMzFlNjcpLCBUT0JOKDB4Yzk2NDQ5YmYsIDB4ZjIzYWMzZTcp
LAotICAgICAgICAgVE9CTigweDdlOWEyODc0LCAweDE3MDY5M2JkKSwgVE9CTigweGEyOGUxNGZk
LCAweGE0NWU2MzM1KSwKLSAgICAgICAgIFRPQk4oMHg1NzU3ZjZiMywgMHg1NjQyNzM0NCksIFRP
Qk4oMHg4MjJlNDU1NiwgMHhhY2Y4ZWRmOSksCi0gICAgICAgICBUT0JOKDB4MmI3YTZlZTIsIDB4
ZTZhMjg1Y2QpLCBUT0JOKDB4NTg2NmYyMTEsIDB4YTlkZjNhZjApLAotICAgICAgICAgVE9CTigw
eDQwZGRlMmRkLCAweGY4NDViODQ0KSwgVE9CTigweDk4NmMzNzI2LCAweDExMGU1ZTQ5KSwKLSAg
ICAgICAgIFRPQk4oMHg3MzY4MGMyYSwgMHhmNzE3MjI3NyksIFRPQk4oMHg1N2I5NGYwZiwgMHgw
Y2NjYjI0NCksCi0gICAgICAgICBUT0JOKDB4YmRmZjcyNjcsIDB4MmQ0MzhjYTcpLCBUT0JOKDB4
YmFkMWNlMTEsIDB4Y2Y0NjYzZmQpLAotICAgICAgICAgVE9CTigweDk4MTNlZDlkLCAweGQ4Zjcx
Y2FlKSwgVE9CTigweGY0MzI3MmE2LCAweDk2MWZkYWE2KSwKLSAgICAgICAgIFRPQk4oMHhiZWZm
MDExOSwgMHhiZDZkMTYzNyksIFRPQk4oMHhmZWJjNGY5MSwgMHgzMDM2MTk3OCksCi0gICAgICAg
ICBUT0JOKDB4MDJiMzdhOTUsIDB4MmY0MWRlZmYpLCBUT0JOKDB4MGU0NGE1OWEsIDB4ZTYzYjg5
YjcpLAotICAgICAgICAgVE9CTigweDY3MzI1N2RjLCAweDE0M2ZmOTUxKSwgVE9CTigweDE5YzAy
MjA1LCAweGQ3NTJiYWY0KSwKLSAgICAgICAgIFRPQk4oMHg0NmMyMzA2OSwgMHhjNGI3ZDY5Miks
IFRPQk4oMHgyZTYzOTJjMywgMHhmZDE1MDJhYyksCi0gICAgICAgICBUT0JOKDB4NjA1N2IxYTIs
IDB4MWIyMjA4NDYpLCBUT0JOKDB4ZTUxZmY5NDYsIDB4MGMxYjViNjMpfSwKLSAgICAgICAge1RP
Qk4oMHg2ZTg1Y2I1MSwgMHg1NjZjNWM0MyksIFRPQk4oMHhjZmY5YzkxOSwgMHgzNTk3ZjA0Niks
Ci0gICAgICAgICBUT0JOKDB4OTM1NGU5MGMsIDB4NDk5NGQ5NGEpLCBUT0JOKDB4ZTBhMzkzMzIs
IDB4MjE0NzkyN2QpLAotICAgICAgICAgVE9CTigweDg0MjdmYWMxLCAweDBkYzFlYjJiKSwgVE9C
TigweDg4Y2ZkOGMyLCAweDJmZjMxOWZhKSwKLSAgICAgICAgIFRPQk4oMHhlMmQ0ZTY4NCwgMHgw
MTk2NTI3NCksIFRPQk4oMHhmYTJlMDY3ZCwgMHg2N2FhYTc0NiksCi0gICAgICAgICBUT0JOKDB4
YjZkOTJhN2YsIDB4M2U1ZjlmMTEpLCBUT0JOKDB4OWFmZTE1M2EsIDB4ZDZjYjNiOGUpLAotICAg
ICAgICAgVE9CTigweDRkMWE2ZGQ3LCAweGRkZjgwMGJkKSwgVE9CTigweGY2YzEzY2MwLCAweGNh
ZjE3ZTE5KSwKLSAgICAgICAgIFRPQk4oMHgxNWY2YzU4ZSwgMHgzMjVmYzNlZSksIFRPQk4oMHg3
MTA5NTQwMCwgMHhhMzFkYzNiMiksCi0gICAgICAgICBUT0JOKDB4MTY4ZTdjMDcsIDB4YWZhM2Qz
ZTcpLCBUT0JOKDB4M2Y4NDE3YTEsIDB4OTRjN2FlMmQpLAotICAgICAgICAgVE9CTigweGVjMjM0
NzcyLCAweDgxM2IyMzBkKSwgVE9CTigweDYzNGQwZjVmLCAweDE3MzQ0NDI3KSwKLSAgICAgICAg
IFRPQk4oMHgxMTU0OGFiMSwgMHhkNzdmYzU2YSksIFRPQk4oMHg3ZmFiMTc1MCwgMHhjZTA2YWY3
NyksCi0gICAgICAgICBUT0JOKDB4YjYyYzEwYTcsIDB4NGY3YzRmODMpLCBUT0JOKDB4YTdkMmVk
YzQsIDB4MjIwYTY3ZDkpLAotICAgICAgICAgVE9CTigweDFjNDA0MTcwLCAweDkyMTIwOWEwKSwg
VE9CTigweDBiOTgxNWEwLCAweGZhY2U1OWYwKSwKLSAgICAgICAgIFRPQk4oMHgyODQyNTg5Yiwg
MHgzMTk1NDBjMyksIFRPQk4oMHgxODQ5MGY1OSwgMHhhMjgzZDZmOCksCi0gICAgICAgICBUT0JO
KDB4YTI3MzFmODQsIDB4ZGFhZTlmY2IpLCBUT0JOKDB4M2RiNmQ5NjAsIDB4YzM2ODNiYTApLAot
ICAgICAgICAgVE9CTigweGM4NWM2M2JiLCAweDE0NjExMDY5KSwgVE9CTigweGIxOTQzNmFmLCAw
eDA3ODhiZjA1KSwKLSAgICAgICAgIFRPQk4oMHg5MDU0NTlkZiwgMHgzNDc0NjBkMiksIFRPQk4o
MHg3M2Y2ZTA5NCwgMHhlMTFhN2RiMSksCi0gICAgICAgICBUT0JOKDB4ZGM3ZjkzOGUsIDB4YjYz
NTdmMzcpLCBUT0JOKDB4YzVkMDBmNzksIDB4MmJkOGFhNjIpLAotICAgICAgICAgVE9CTigweGM4
NzhkY2I5LCAweDJjYTk3OWZjKSwgVE9CTigweDM3ZTgzZWQ5LCAweGViMDIzYTk5KSwKLSAgICAg
ICAgIFRPQk4oMHg2YjIzZTI3MywgMHgxNTYwYmYzZCksIFRPQk4oMHgxMDg2ZTQ1OSwgMHgxZDBm
YWU2MSksCi0gICAgICAgICBUT0JOKDB4NzgyNDgzMTYsIDB4OWE5NDE0YmQpLCBUT0JOKDB4MWI5
NTZiYzAsIDB4ZjBlYTllYTEpLAotICAgICAgICAgVE9CTigweDdiODViYjkxLCAweGMzMWI5YzM4
KSwgVE9CTigweDBjNWFhOTBiLCAweDQ4ZWY1N2I1KSwKLSAgICAgICAgIFRPQk4oMHhkZWRlYjE2
OSwgMHhhZjNiYWI2ZiksIFRPQk4oMHhlNjEwYWQ3MywgMHgyZDM3MzY4NSksCi0gICAgICAgICBU
T0JOKDB4ZjEzODcwZGYsIDB4MDJiYThlMTUpLCBUT0JOKDB4MDMzN2VkYjYsIDB4OGNhN2Y3NzEp
LAotICAgICAgICAgVE9CTigweGU0YWNmNzQ3LCAweGI2MmMwMzZjKSwgVE9CTigweGQ5MjFkNTc2
LCAweGI2Yjk0ZTgxKSwKLSAgICAgICAgIFRPQk4oMHhkYmM4NjQzOSwgMHgyYzQyMmY3YSksIFRP
Qk4oMHhmYjYzNTM2MiwgMHhlZDM0ODg5OCksCi0gICAgICAgICBUT0JOKDB4ODMwODQ2NjgsIDB4
YzQ1YmZjZDEpLCBUT0JOKDB4YzM1N2M5ZTMsIDB4MmIzMTVlMTEpLAotICAgICAgICAgVE9CTigw
eGIxNzNiNTQwLCAweDViMmU1YjhjKSwgVE9CTigweDdlOTQ2OTMxLCAweGUxMDJiOWE0KSwKLSAg
ICAgICAgIFRPQk4oMHgxN2M4OTBlYiwgMHg3YjBmYjE5OSksIFRPQk4oMHhlYzIyNWE4MywgMHhk
NjFiNjYyYiksCi0gICAgICAgICBUT0JOKDB4ZjMwNmEzYzgsIDB4ZWUzYzc2Y2IpLCBUT0JOKDB4
M2NmMTE2MjMsIDB4ZDMyYTFmNmUpLAotICAgICAgICAgVE9CTigweGU2ZDVhYjY0LCAweDY4NjNl
OTU2KSwgVE9CTigweDNiOGE0Y2JlLCAweDVjMDA1YzI2KSwKLSAgICAgICAgIFRPQk4oMHhkY2Q1
MjlhNSwgMHg5Y2U2YmIyNyksIFRPQk4oMHhjNGFmYWE1MiwgMHgwNGQ0YjE2ZiksCi0gICAgICAg
ICBUT0JOKDB4YjA2MjRhMjYsIDB4NzkyMzc5OGQpLCBUT0JOKDB4ODVlNTZkZjYsIDB4NmIzMDdm
YWIpLAotICAgICAgICAgVE9CTigweDAyODE4OTNjLCAweDJiZjI5Njk4KSwgVE9CTigweDkxZmMx
OWE0LCAweGQ3Y2U3NjAzKSwKLSAgICAgICAgIFRPQk4oMHg3NWE1ZGNhMywgMHhhZDlhNTU4Ziks
IFRPQk4oMHg0MGNlYjNmYSwgMHg0ZDUwYmY3NyksCi0gICAgICAgICBUT0JOKDB4MWJhZjYwNjAs
IDB4YmM5YmEzNjkpLCBUT0JOKDB4OTI3ZTEwMzcsIDB4NTk3ODg4YzIpLAotICAgICAgICAgVE9C
TigweGQ5MzZiZjE5LCAweDg2YTM0YzA3KSwgVE9CTigweGQ0Y2YxMGMxLCAweGMzNGFlOTgwKSwK
LSAgICAgICAgIFRPQk4oMHgzYTNlNTMzNCwgMHg4NTlkZDYxNCksIFRPQk4oMHg5YzQ3NWI1Yiwg
MHgxOGQwYzhlZSksCi0gICAgICAgICBUT0JOKDB4NjMwODBkMWYsIDB4MDdjZDUxZDUpLCBUT0JO
KDB4YzljMGQwYTYsIDB4Yjg4YjQzMjYpLAotICAgICAgICAgVE9CTigweDFhYzk4NjkxLCAweGMy
MzQyOTZmKSwgVE9CTigweDJhMGE4M2E0LCAweDk0ODg3ZmI2KSwKLSAgICAgICAgIFRPQk4oMHg1
NjUxMTQyNywgMHgwY2VhOWNmMiksIFRPQk4oMHg1MjMwYTZlOCwgMHhhMjQ4MDJmNSksCi0gICAg
ICAgICBUT0JOKDB4ZjdhMmJmMGYsIDB4NzJlM2Q1YzEpLCBUT0JOKDB4Mzc3MTc0NDYsIDB4NGYy
MTQzOWUpLAotICAgICAgICAgVE9CTigweGZlZGNiZjI1LCAweDljZTMwMzM0KSwgVE9CTigweGUw
MDMwYTc4LCAweDdjZTIwMmY5KSwKLSAgICAgICAgIFRPQk4oMHg2ZjJkOWViZiwgMHgxMjAyZTlj
YSksIFRPQk4oMHhlNzlkZGU2YywgMHg3NWU2ZTU5MSksCi0gICAgICAgICBUT0JOKDB4ZjUyMDcy
YWYsIDB4ZjFkYWM0ZjgpLCBUT0JOKDB4NmM4ZDA4N2UsIDB4YmI5YjQwNGQpLAotICAgICAgICAg
VE9CTigweGFkMGZjNzNkLCAweGJjZTkxM2FmKSwgVE9CTigweDkwOWU1ODdiLCAweDQ1OGEwN2Ni
KSwKLSAgICAgICAgIFRPQk4oMHgxMzAwZGE4NCwgMHhkNGYwMGM4YSksIFRPQk4oMHg0MjVjZDA0
OCwgMHhiNTQ0NjZhYyksCi0gICAgICAgICBUT0JOKDB4YjU5Y2I5YmUsIDB4OTBlOWQ4YmYpLCBU
T0JOKDB4OTkxNjE2ZGIsIDB4M2U0MzFiMGUpLAotICAgICAgICAgVE9CTigweGQzYWExMTdhLCAw
eDUzMWFlY2ZmKSwgVE9CTigweDkxYWY5MmQzLCAweDU5ZjRkYzNiKSwKLSAgICAgICAgIFRPQk4o
MHg5YjFlYzI5MiwgMHhlOTNmZGEyOSksIFRPQk4oMHg3NmJiNmMxNywgMHhlOTdkOTFiYyksCi0g
ICAgICAgICBUT0JOKDB4NzUwOWQ5NWYsIDB4YWZhY2UxZTYpLCBUT0JOKDB4MzY1M2ZlNDcsIDB4
YmU4NTVhZTMpLAotICAgICAgICAgVE9CTigweDczMTgwYjI4LCAweDBmNjgwZTc1KSwgVE9CTigw
eDc1ZWVmZDFiLCAweGVlYjZjMjZjKSwKLSAgICAgICAgIFRPQk4oMHhhNGNkZjI5ZiwgMHhiNjZk
NDIzNiksIFRPQk4oMHgyZDcwYTk5NywgMHg2YjU4MjFkOCksCi0gICAgICAgICBUT0JOKDB4N2Ez
ZWUyMDcsIDB4MjA0NDVjMzYpLCBUT0JOKDB4NzFkMWFjODIsIDB4NTk4NzcxNzQpLAotICAgICAg
ICAgVE9CTigweDBmYzUzOWY3LCAweDk0OWY3M2U5KSwgVE9CTigweGQwNWNmM2Q3LCAweDk4MmUz
MDgxKSwKLSAgICAgICAgIFRPQk4oMHg4NzU4ZTIwYiwgMHg3YjFjNzEyOSksIFRPQk4oMHhmZmFk
Y2MyMCwgMHg1NjllNjFmMiksCi0gICAgICAgICBUT0JOKDB4YjA1ZDNhMmYsIDB4NTk1NDRjMmQp
LCBUT0JOKDB4YmUxNmY1YzEsIDB4OWZmZjVlNTMpLAotICAgICAgICAgVE9CTigweDczY2Y2NWI4
LCAweGFhZDU4MTM1KSwgVE9CTigweDYyMmMyMTE5LCAweDAzN2FhNWJlKSwKLSAgICAgICAgIFRP
Qk4oMHg3OTM3M2IzZiwgMHg2NDZmZDZhMCksIFRPQk4oMHgwZTAyOWRiNSwgMHgwZDM5NzhjZiks
Ci0gICAgICAgICBUT0JOKDB4OGJkZmM0MzcsIDB4OTRmYmEwMzcpLCBUT0JOKDB4YWVmYmQ2ODcs
IDB4NjIwNzk3YTYpLAotICAgICAgICAgVE9CTigweDNmYTUzODJiLCAweGJkMzBkMzhlKSwgVE9C
TigweDc2MjdjZmJmLCAweDU4NWQ3NDY0KSwKLSAgICAgICAgIFRPQk4oMHhiMjMzMGZlZiwgMHg0
ZTRjYTQ2MyksIFRPQk4oMHhiY2VmNzI4NywgMHgzNTY2Y2M2MyksCi0gICAgICAgICBUT0JOKDB4
ZDE2MWQyY2EsIDB4Y2Y3ODA5MDApLCBUT0JOKDB4MTM1ZGM1MzksIDB4NWI1NDgyN2QpLAotICAg
ICAgICAgVE9CTigweDYzOGYwNTJlLCAweDI3YmYxYmM2KSwgVE9CTigweDEwYTIyNGYwLCAweDA3
ZGZhMDZjKSwKLSAgICAgICAgIFRPQk4oMHhlOTczNTg2ZCwgMHg2ZDMzMjFkYSksIFRPQk4oMHg4
YjBjNTczOCwgMHgyNjE1MmM4ZiksCi0gICAgICAgICBUT0JOKDB4MDdlZjRmMmEsIDB4MzQ2MDYw
NzQpLCBUT0JOKDB4ODBmZTdmZTgsIDB4YTBmNzA0N2EpLAotICAgICAgICAgVE9CTigweDNkMWE4
MTUyLCAweGUxYTBlMzA2KSwgVE9CTigweDMyY2Y0M2Q4LCAweDg4ZGE1MjIyKSwKLSAgICAgICAg
IFRPQk4oMHhiZjg5YTk1ZiwgMHg1ZjAyZmZlNiksIFRPQk4oMHgzZDllYjlhNCwgMHg4MDZhZDNl
YSksCi0gICAgICAgICBUT0JOKDB4MDEyYzE3YmIsIDB4NzljOGU1NWUpLCBUT0JOKDB4ZmRjZDFh
NzQsIDB4OTljODFkYWMpLAotICAgICAgICAgVE9CTigweDcwNDMxNzhiLCAweGI5NTU2MDk4KSwg
VE9CTigweDQwOTBhMWRmLCAweDgwMWMzODg2KSwKLSAgICAgICAgIFRPQk4oMHg3NTk4MDBmZiwg
MHg5YjY3YjkxMiksIFRPQk4oMHgzZTVjMDMwNCwgMHgyMzI2MjBjOCksCi0gICAgICAgICBUT0JO
KDB4NGI5ZDNjNGIsIDB4NzBkY2VlY2EpLCBUT0JOKDB4YmIyZDNjMTUsIDB4MTgxZjY0OGUpLAot
ICAgICAgICAgVE9CTigweGY5ODFkODM3LCAweDZlMzMzNDVjKSwgVE9CTigweGI2MjYyODliLCAw
eDBjZjIyOTdhKSwKLSAgICAgICAgIFRPQk4oMHg3NjZhYzY1OSwgMHg4YmFlYmRjZiksIFRPQk4o
MHgxYTI4YWUwOSwgMHg3NWRmMDFlNSksCi0gICAgICAgICBUT0JOKDB4YjcxMjgzZGEsIDB4Mzc1
ODc2ZDgpLCBUT0JOKDB4NDg2NWE5NmQsIDB4NjA3Yjk4MDApLAotICAgICAgICAgVE9CTigweDI1
ZGQxYmNkLCAweDIzNzkzNmIyKSwgVE9CTigweDMzMmY0ZjRiLCAweDYwNDE3NDk0KSwKLSAgICAg
ICAgIFRPQk4oMHhkMDkyM2Q2OCwgMHgzNzBhMjE0NyksIFRPQk4oMHg0OTdmNWRmYiwgMHhkYzg0
MjIwMyksCi0gICAgICAgICBUT0JOKDB4OWRjNzRjYmQsIDB4MzJiZTVlMGYpLCBUT0JOKDB4NzQ3
NWJjYjcsIDB4MTdhMDEzNzUpLAotICAgICAgICAgVE9CTigweDQzODQ3N2M5LCAweDUwZDg3MmIx
KSwgVE9CTigweGNlYzY3ODc5LCAweGZmZTFkNjNkKSwKLSAgICAgICAgIFRPQk4oMHg5YjAwNjAx
NCwgMHhkODU3OGM3MCksIFRPQk4oMHhjOWFkOTlhOCwgMHg3OGJiNmI4YiksCi0gICAgICAgICBU
T0JOKDB4Njc5OTAwOGUsIDB4MTFmYjM4MDYpLCBUT0JOKDB4Y2ZlODE0MzUsIDB4Y2Q0NGNhYjMp
LAotICAgICAgICAgVE9CTigweGEyZWUxNTgyLCAweDJmNGZiMzQ0KSwgVE9CTigweGI4ODIzNDUw
LCAweDQ4M2ZhNmViKSwKLSAgICAgICAgIFRPQk4oMHg2MjJkMzIzZCwgMHg2NTJjNzc0OSksIFRP
Qk4oMHhkODQ3NGE5OCwgMHhiZWIwYTE1YiksCi0gICAgICAgICBUT0JOKDB4ZTQzYzE1NGQsIDB4
NWQxYzAwZDApLCBUT0JOKDB4N2ZkNTgxZDksIDB4MGUzZTdhYWMpLAotICAgICAgICAgVE9CTigw
eDJiNDRjNjE5LCAweDI1MjVkZGY4KSwgVE9CTigweDY3YTAzM2ViLCAweGI4YWU5NzM5KSwKLSAg
ICAgICAgIFRPQk4oMHgxMTNmZmVjMSwgMHg5ZWYyZDJlNCksIFRPQk4oMHgxYmY2NzY3ZSwgMHhk
NWEwZWE3ZiksCi0gICAgICAgICBUT0JOKDB4NTdmZmY3NWUsIDB4MDM3MTRjMGEpLCBUT0JOKDB4
YTIzYzQyMmUsIDB4MGEyM2U5ZWUpLAotICAgICAgICAgVE9CTigweGRkNWY2YjJkLCAweDU0MGY4
M2FmKSwgVE9CTigweGMyYzJjMjdlLCAweDU1ZWE0NmE3KSwKLSAgICAgICAgIFRPQk4oMHhlYjZi
NDI0NiwgMHg2NzJhMTIwOCksIFRPQk4oMHhkMTM1OTlmNywgMHhhZTYzNGY3YSksCi0gICAgICAg
ICBUT0JOKDB4Y2Y5MTRiNWMsIDB4ZDdiMzJjNmUpLCBUT0JOKDB4NjFhNWE2NDAsIDB4ZWFmNjE4
MTQpLAotICAgICAgICAgVE9CTigweDhkYzNkZjhiLCAweDIwOGExYmJiKSwgVE9CTigweGVmNjI3
ZmQ2LCAweGI2ZDc5YWE1KSwKLSAgICAgICAgIFRPQk4oMHg0NDIzMmZmYywgMHhjNGM4NmJjOCks
IFRPQk4oMHhlNmY5MjMxYiwgMHgwNjE1MzlmZSksCi0gICAgICAgICBUT0JOKDB4MWQwNGYyNWEs
IDB4OTU4Yjk1MzMpLCBUT0JOKDB4MTgwY2Y5MzQsIDB4NDllOGM4ODUpLAotICAgICAgICAgVE9C
TigweDg5Njg5NTk1LCAweDk4ODRhYWY3KSwgVE9CTigweGIxOTU5YmUzLCAweDA3YjM0OGE2KSwK
LSAgICAgICAgIFRPQk4oMHg5NjI1MGU1NywgMHgzYzE0N2M4NyksIFRPQk4oMHhhZTBlZmIzYSwg
MHhkZDBjNjFmOCksCi0gICAgICAgICBUT0JOKDB4ZWQwMDc0NWUsIDB4Y2E4YzMyNWUpLCBUT0JO
KDB4M2M5MTE2OTYsIDB4ZWNmZjNmNzApLAotICAgICAgICAgVE9CTigweDczYWNiYzY1LCAweDMx
OWFkNDFkKSwgVE9CTigweDdiMDFhMDIwLCAweGYwYjFjN2VmKSwKLSAgICAgICAgIFRPQk4oMHhl
YTMyYjI5MywgMHg2M2ExNDgzZiksIFRPQk4oMHg4OWVhYmU3MSwgMHg3YTI0OGY5NiksCi0gICAg
ICAgICBUT0JOKDB4OWM2MjMxZDMsIDB4MzQzMTU3ZTUpLCBUT0JOKDB4OTNhMzc1ZTUsIDB4ZGYz
YzU0NmQpLAotICAgICAgICAgVE9CTigweGU3NmU5MzQzLCAweDZhMmFmZTY5KSwgVE9CTigweGM0
Zjg5MTAwLCAweGUxNjZjODhlKSwKLSAgICAgICAgIFRPQk4oMHgyNDhlZmQwZCwgMHg0Zjg3MjA5
MyksIFRPQk4oMHhhZTBlYjNlYSwgMHg4ZmUwZWE2MSksCi0gICAgICAgICBUT0JOKDB4YWY4OTc5
MGQsIDB4OWQ3OTA0NmUpLCBUT0JOKDB4NGQ2NTBmMmQsIDB4NmNlZTA5NzYpLAotICAgICAgICAg
VE9CTigweGEzOTM1ZDlhLCAweDQzMDcxZWNhKSwgVE9CTigweDY2ZmNkMmM5LCAweDI4M2IwYmZl
KSwKLSAgICAgICAgIFRPQk4oMHgwZTY2NWViNSwgMHg2OTY2MDVmMSksIFRPQk4oMHhlNzdlNWQw
NywgMHhhNTRjZDM4ZCksCi0gICAgICAgICBUT0JOKDB4OTBlZTA1MGEsIDB4NDNkOTUwY2YpLCBU
T0JOKDB4ODZkZGViZGEsIDB4ZDMyZTY5YjUpLAotICAgICAgICAgVE9CTigweDZhZDk0YTNkLCAw
eGZkZGY3NDE1KSwgVE9CTigweGY3ZmExMzA5LCAweDNmNmU4ZDVhKSwKLSAgICAgICAgIFRPQk4o
MHhjNDgzMWQxZCwgMHhlOTk1N2Y3NSksIFRPQk4oMHg3ZGUyODUwMSwgMHhkNTgxNzQ0NyksCi0g
ICAgICAgICBUT0JOKDB4NmYxZDcwNzgsIDB4OWUyYWViNmIpLCBUT0JOKDB4YmEyYjlmZjQsIDB4
ZjY3YTUzYzIpLAotICAgICAgICAgVE9CTigweDM2OTYzNzY3LCAweGRmOWRlZmMzKSwgVE9CTigw
eDQ3OWRlZWQzLCAweDBkMzgwMjJjKSwKLSAgICAgICAgIFRPQk4oMHhkMmVkYjg5YiwgMHgzYTg2
MzFlOCksIFRPQk4oMHg4ZGU4NTVkZSwgMHg3YTIxMzc0NiksCi0gICAgICAgICBUT0JOKDB4YjIw
NTZjYjcsIDB4YjAwYzVmMTEpLCBUT0JOKDB4ZGVhZWZiZDAsIDB4MmM5Yjg1ZTQpLAotICAgICAg
ICAgVE9CTigweDAzZjM5YThkLCAweGQxNTA4OTJkKSwgVE9CTigweDM3Yjg0Njg2LCAweDIxOGI3
OTg1KSwKLSAgICAgICAgIFRPQk4oMHgzNjI5NmRkOCwgMHhiNzM3NWYxYSksIFRPQk4oMHg0NzJj
ZDRiMSwgMHhiNzhlODk4ZSksCi0gICAgICAgICBUT0JOKDB4MTVkZmY2NTEsIDB4ZTlmMDVkZTkp
LCBUT0JOKDB4ZDQwNDUwNjksIDB4MmNlOThiYTkpLAotICAgICAgICAgVE9CTigweDg0NjZhN2Fl
LCAweDliMzgwMjRjKSwgVE9CTigweGI5MTBlNzAwLCAweGU1YTZiNWVmKSwKLSAgICAgICAgIFRP
Qk4oMHhhZTFjNTZlYSwgMHhiM2FhOGYwZCksIFRPQk4oMHhiYWIyYTUwNywgMHg3ZWVlNzRhNiks
Ci0gICAgICAgICBUT0JOKDB4MGRjYTExZTIsIDB4NGI0YzQ2MjApLCBUT0JOKDB4ZmQ4OTZlMmUs
IDB4NGM0N2QxZjQpLAotICAgICAgICAgVE9CTigweGViNDVhZTUzLCAweDMwOGZiZDkzKSwgVE9C
TigweDQ2Y2Q1YTJlLCAweDAyYzM2ZmRhKSwKLSAgICAgICAgIFRPQk4oMHg2YTNkNGU5MCwgMHhi
YWE0ODM4NSksIFRPQk4oMHhkZDU1ZTYyZSwgMHg5ZGJlOTk2MCksCi0gICAgICAgICBUT0JOKDB4
YTE0MDZhYTAsIDB4MmE4MWVkZTcpLCBUT0JOKDB4Njg2MGRkMTQsIDB4ZjkyNzRlYTcpLAotICAg
ICAgICAgVE9CTigweGNmZGNiMGMyLCAweDgwNDE0Zjg2KSwgVE9CTigweGZmNDEwYjEwLCAweDIy
Zjk0MzI3KSwKLSAgICAgICAgIFRPQk4oMHg1YTMzY2MzOCwgMHg0OWFkNDY3YiksIFRPQk4oMHhl
ZmI0OGI2YywgMHgwYTczMzVmMSksCi0gICAgICAgICBUT0JOKDB4MTRmYjU0YTQsIDB4YjE1M2Ez
NjApLCBUT0JOKDB4NjA0YWE5ZDIsIDB4YjUyNDY5Y2MpLAotICAgICAgICAgVE9CTigweDVlOWRj
NDg2LCAweDc1NGU0OGU5KSwgVE9CTigweDY5M2NiNDU1LCAweDM3NDcxZThlKSwKLSAgICAgICAg
IFRPQk4oMHhmYjJmZDdjZCwgMHg4ZDNiMzdiNiksIFRPQk4oMHg2MzM0NWUxNiwgMHhjZjA5ZmYw
NyksCi0gICAgICAgICBUT0JOKDB4OTkxMGJhNmIsIDB4MjNhNWQ4OTYpLCBUT0JOKDB4MWZlMTll
MzUsIDB4N2ZlNDM2NGUpLAotICAgICAgICAgVE9CTigweDZlMWRhOGMzLCAweDlhMzNjNjc3KSwg
VE9CTigweDE1YjQ0ODhiLCAweDI5ZmQ5ZmQwKSwKLSAgICAgICAgIFRPQk4oMHgxZjQzOTI1NCwg
MHgxYTFmMjJiZiksIFRPQk4oMHg5MjBhOGE3MCwgMHhhYjgxNjNlOCksCi0gICAgICAgICBUT0JO
KDB4M2ZkMWIyNDksIDB4MDdlNTY1OGUpLCBUT0JOKDB4ZjJjNGY3OWMsIDB4YjZlYzgzOWIpLAot
ICAgICAgICAgVE9CTigweDFhYmJjM2QwLCAweDRhYTM4ZDFiKSwgVE9CTigweDNiMGRiMzVjLCAw
eGI1ZDk1MTBlKSwKLSAgICAgICAgIFRPQk4oMHgxNzU0YWM3OCwgMHgzZTYwZGVjMCksIFRPQk4o
MHg1MzI3MmZkNywgMHhlYTA5OWIzMyksCi0gICAgICAgICBUT0JOKDB4NWZiMDQ5NGYsIDB4MDdh
OGUxMDcpLCBUT0JOKDB4NGE4OWUxMzcsIDB4NmE4MTkxZmEpLAotICAgICAgICAgVE9CTigweGEx
MTNiN2Y2LCAweDNjNGFkNTQ0KSwgVE9CTigweDg4YTJlOTA5LCAweDZjYjk4OTdiKSwKLSAgICAg
ICAgIFRPQk4oMHgxN2Q1NWRlMywgMHhiNDRhM2Y4NCksIFRPQk4oMHhhY2IyZjM0NCwgMHgxN2M2
YzY5MCksCi0gICAgICAgICBUT0JOKDB4MzIwODgxNjgsIDB4MTAyMzIzOTApLCBUT0JOKDB4ZjJl
OGE2MWYsIDB4NmM3MzNiZjcpLAotICAgICAgICAgVE9CTigweGE3NzRhYWI2LCAweDljMmQ3NjUy
KSwgVE9CTigweGZiNTMwN2UzLCAweGVkOTVjNWJjKSwKLSAgICAgICAgIFRPQk4oMHhhMDVjNzNj
MiwgMHg0OTgxZjExMCksIFRPQk4oMHgxYmFhZTMxYywgMHhhMzk0NThjOSksCi0gICAgICAgICBU
T0JOKDB4MWRlZjE4NWIsIDB4Y2JlYTYyZTcpLCBUT0JOKDB4ZThhYzllYWUsIDB4ZWFmNjMwNTkp
LAotICAgICAgICAgVE9CTigweDA5OGE4Y2ZkLCAweDk5MjE4NTFjKSwgVE9CTigweGQ5NTljM2Yx
LCAweDNhYmUyZjViKSwKLSAgICAgICAgIFRPQk4oMHhhNGYxOTUyNSwgMHgyMGU0MGFlNSksIFRP
Qk4oMHgzMjA3ODllMywgMHgwN2EyNGFhMSksCi0gICAgICAgICBUT0JOKDB4MjU5ZTY5MjcsIDB4
NzM5MmIyYmMpLCBUT0JOKDB4NThmNmM2NjcsIDB4MTkxODY2OGIpLAotICAgICAgICAgVE9CTigw
eGNlMWRiMmJiLCAweGM1NWQyZDhiKSwgVE9CTigweDQxZDU4YmI3LCAweGY0ZjZjYTU2KSwKLSAg
ICAgICAgIFRPQk4oMHg3NjUwYjY4MCwgMHg4Zjg3NzYxNCksIFRPQk4oMHg5MDVlMTZiYSwgMHhm
NGMzNDllZCksCi0gICAgICAgICBUT0JOKDB4ZWQ0MTUxNDAsIDB4ZjY2MWFjYWMpLCBUT0JOKDB4
M2I4Nzg0ZjAsIDB4Y2IyMjcwYWYpLAotICAgICAgICAgVE9CTigweDNiYzI4MGFjLCAweDhhNDAy
Y2JhKSwgVE9CTigweGQ1M2Y3MTQ2LCAweDA5Mzc5MjFhKSwKLSAgICAgICAgIFRPQk4oMHhjMDNj
OGVlNSwgMHhlNTY4MWU4MyksIFRPQk4oMHg2MjEyNjEwNSwgMHhmNmFjOWU0YSksCi0gICAgICAg
ICBUT0JOKDB4OTUwM2E1M2YsIDB4OTM2YjFhMzgpLCBUT0JOKDB4M2Q0NWUyZDQsIDB4NzgyZmVj
YmQpLAotICAgICAgICAgVE9CTigweDY5YTVjNDM5LCAweDc2ZThhZTk4KSwgVE9CTigweGI1M2Iy
ZWViLCAweGJmYjRiMDBlKSwKLSAgICAgICAgIFRPQk4oMHhmMTY3NDcxMiwgMHg3MjM4NmM4OSks
IFRPQk4oMHgzMGNhMzRhMiwgMHg0MjY4YmNlNCksCi0gICAgICAgICBUT0JOKDB4N2YxZWQ4NmMs
IDB4NzgzNDE3MzApLCBUT0JOKDB4OGVmNWJlYjgsIDB4YjUyNWUyNDgpLAotICAgICAgICAgVE9C
TigweGJiYzQ4OWZkLCAweGI3NGZiZjM4KSwgVE9CTigweDM4YTkyYTBlLCAweDkxYTBiMzgyKSwK
LSAgICAgICAgIFRPQk4oMHg3YTc3YmEzZiwgMHgyMjQzM2NjZiksIFRPQk4oMHhkZTgzNjJkNiwg
MHhhMjlmMDVhOSksCi0gICAgICAgICBUT0JOKDB4N2Y2YTMwZWEsIDB4NjExODlhZmMpLCBUT0JO
KDB4NjkzYjU1MDUsIDB4NTllZjExNGYpLAotICAgICAgICAgVE9CTigweDUwMjY2YmMwLCAweGNk
MTc5N2ExKSwgVE9CTigweGVhMTdiNDdlLCAweGY0YjdhZjJkKSwKLSAgICAgICAgIFRPQk4oMHhk
NmM0MDI1YywgMHgzZGY5NDgzZSksIFRPQk4oMHg4Y2JiOWQ5ZiwgMHhhMzdiMThjOSksCi0gICAg
ICAgICBUT0JOKDB4OTFjYmZkOWMsIDB4NGQ4NDI0Y2YpLCBUT0JOKDB4ZGI3MDQ4ZjEsIDB4YWIx
YzM1MDYpLAotICAgICAgICAgVE9CTigweDllYWY2NDFmLCAweDAyODIwNmEzKSwgVE9CTigweGY5
ODZmM2Y5LCAweDI1YmRmNmNlKSwKLSAgICAgICAgIFRPQk4oMHgyNjIxNDNiNSwgMHgyMjRjMDhk
YyksIFRPQk4oMHgyYmJiMDliNCwgMHg4MWI1MGM5MSksCi0gICAgICAgICBUT0JOKDB4YzE2ZWQ3
MDksIDB4YWNhOGM4NGYpLCBUT0JOKDB4YTYyMTBkOWQsIDB4YjI4NTBjYTgpLAotICAgICAgICAg
VE9CTigweDZkOGRmNjdhLCAweDA5Y2I1NGQ2KSwgVE9CTigweDkxZWVmNmUwLCAweDUwMDkxOWE0
KSwKLSAgICAgICAgIFRPQk4oMHg5MGY2MTM4MSwgMHgwZjEzMjg1NyksIFRPQk4oMHg5YWNlZGU0
NywgMHhmOGQ1MDI4YiksCi0gICAgICAgICBUT0JOKDB4ODQ0ZDFiNzEsIDB4OTBiNzcxYzMpLCBU
T0JOKDB4NTYzYjcxZTQsIDB4YmE2NDI2YmUpLAotICAgICAgICAgVE9CTigweDJlZmEyZTgzLCAw
eGJkYjgwMmZmKSwgVE9CTigweDM0MTBjYmFiLCAweGFiNWI0YTQxKSwKLSAgICAgICAgIFRPQk4o
MHg1NTViMmQyNiwgMHgzMGRhODRkZCksIFRPQk4oMHhkMDcxMWFlOSwgMHhlZTFjYzI5YSksCi0g
ICAgICAgICBUT0JOKDB4Y2YzZThjNjAsIDB4MmY1NDc3OTIpLCBUT0JOKDB4MDNkN2Q1ZGUsIDB4
ZGM2NzhiMzUpLAotICAgICAgICAgVE9CTigweDA3MWEyZmE4LCAweGNlZDgwNmI4KSwgVE9CTigw
eDIyMmU2MTM0LCAweDY5N2YxNDc4KSwKLSAgICAgICAgIFRPQk4oMHhkYzE2ZmQ1ZCwgMHhhYmZj
ZGJiZiksIFRPQk4oMHg0NDkxMmViZiwgMHgxMjFiNTNiOCksCi0gICAgICAgICBUT0JOKDB4YWM5
NDM2NzQsIDB4MjQ5NmMyN2MpLCBUT0JOKDB4OGVhMzE3NmMsIDB4MWZmYzI2YjApLAotICAgICAg
ICAgVE9CTigweGI2ZTIyNGFjLCAweDEzZGViZjJjKSwgVE9CTigweDUyNGNjMjM1LCAweGYzNzJh
ODMyKSwKLSAgICAgICAgIFRPQk4oMHhkNzA2ZTFkOCwgMHg5ZjZmMWIxOCksIFRPQk4oMHgyNTUy
ZjAwNSwgMHg0NGNjZTM1YiksCi0gICAgICAgICBUT0JOKDB4OGM4MzI2YzIsIDB4YTg4ZTMxZmMp
LCBUT0JOKDB4YjU0NjhiMmMsIDB4Zjk1NTIwNDcpLAotICAgICAgICAgVE9CTigweGNlNjgzZTg4
LCAweDNmZjkwZjJiKSwgVE9CTigweDc3OTQ3YmRmLCAweDJmMGE1NDIzKSwKLSAgICAgICAgIFRP
Qk4oMHhkMGExYjI4YiwgMHhlZDU2ZTMyOCksIFRPQk4oMHhhZWUzNTI1MywgMHhjMjAxMzRhYyks
Ci0gICAgICAgICBUT0JOKDB4N2U5ODM2N2QsIDB4MzU2Nzk2MmYpLCBUT0JOKDB4Mzc5ZWQ2MWYs
IDB4ODE4OGJmZmIpLAotICAgICAgICAgVE9CTigweDczYmJhMzQ4LCAweGZhZjEzMGExKSwgVE9C
TigweDZjMWY3NWUxLCAweDkwNGVkNzM0KSwKLSAgICAgICAgIFRPQk4oMHgxODk1NjY0MiwgMHgz
YjRhNzlmYyksIFRPQk4oMHhmMjBiYzgzZCwgMHg1NGVmNDQ5MyksCi0gICAgICAgICBUT0JOKDB4
ODM2ZDQyNWQsIDB4OTExMWVjYTEpLCBUT0JOKDB4ZTViNWMzMTgsIDB4MDA5YThkY2YpLAotICAg
ICAgICAgVE9CTigweDMzNjBiMjVkLCAweDEzMjIxYmM1KSwgVE9CTigweDcwN2JhYWQyLCAweDZi
M2VlYWY3KSwKLSAgICAgICAgIFRPQk4oMHhkNzI3OWVkOCwgMHg3NDNhOTVhMSksIFRPQk4oMHg3
NDUwYTg3NSwgMHg5NjllODA5ZiksCi0gICAgICAgICBUT0JOKDB4MzJiNmJkNTMsIDB4ZTVkMDMz
OGYpLCBUT0JOKDB4MWU3N2Y3YWYsIDB4MmI4ODNiYmMpLAotICAgICAgICAgVE9CTigweDkwZGEx
MmNjLCAweDEwNjNlY2QwKSwgVE9CTigweGUyNjk3YjU4LCAweGMzMTViZTQ3KSwKLSAgICAgICAg
IFRPQk4oMHgyNzcxYTViZCwgMHhkYTg1ZDUzNCksIFRPQk4oMHg1M2U3OGMxZiwgMHhmZjk4MGVl
YSksCi0gICAgICAgICBUT0JOKDB4YWRmMWNmODQsIDB4OTAwMzg1ZTcpLCBUT0JOKDB4N2QzYjE0
ZjYsIDB4YzkzODdiNjIpLAotICAgICAgICAgVE9CTigweDE3MGU3NGIwLCAweGNiOGYyYmQyKSwg
VE9CTigweDJkNTBiNDg2LCAweDgyN2ZhOTkzKSwKLSAgICAgICAgIFRPQk4oMHhjZGJlOGM5YSwg
MHhmNmYzMmJhYiksIFRPQk4oMHg1NWU5MDZiMCwgMHhjM2I5M2FiOCksCi0gICAgICAgICBUT0JO
KDB4NzQ3ZjIyZmMsIDB4OGZlMjgwZDEpLCBUT0JOKDB4Y2Q4ZTBkZTUsIDB4YjJlMTE0YWIpLAot
ICAgICAgICAgVE9CTigweDVhYjdkYmViLCAweGUxMGI2OGIwKSwgVE9CTigweDlkYzYzYTljLCAw
eGE0ODBkNGIyKSwKLSAgICAgICAgIFRPQk4oMHg3OGQ0YmMzYiwgMHg0YmUxNDk1ZiksIFRPQk4o
MHgyNWViM2RiOCwgMHg5MzU5MTIyZCksCi0gICAgICAgICBUT0JOKDB4M2Y4YWMwNWIsIDB4MDgw
OWNiZGMpLCBUT0JOKDB4YmY0MTg3YmIsIDB4ZDM3YzcwMmYpLAotICAgICAgICAgVE9CTigweDg0
Y2VhMDY5LCAweDE0MTZhNmE1KSwgVE9CTigweDhmODYwYzc5LCAweDQzZWY4ODFjKSwKLSAgICAg
ICAgIFRPQk4oMHg0MTMxMWY4YSwgMHgzODAzOGE1ZCksIFRPQk4oMHhlNzhjMmVjMCwgMHhmYzYx
MjA2NyksCi0gICAgICAgICBUT0JOKDB4NDk0ZDJlODEsIDB4NWFkNzM1ODEpLCBUT0JOKDB4YjRj
YzllMDAsIDB4NTk2MDQwOTcpLAotICAgICAgICAgVE9CTigweGZmNTU4YWVjLCAweGYzNjEyY2Jh
KSwgVE9CTigweDM1YmVlZjdhLCAweDllMzZjMzllKSwKLSAgICAgICAgIFRPQk4oMHgxODQ1Yzdj
ZiwgMHhkYmNmNDFiOSksIFRPQk4oMHg1NzAzNjYyYSwgMHhhZWE5OTdjMCksCi0gICAgICAgICBU
T0JOKDB4OGI5MjVhZmUsIDB4ZTQwMmY2ZDgpLCBUT0JOKDB4ZDBhMWIxYWUsIDB4NGRkNzIxNjIp
LAotICAgICAgICAgVE9CTigweDlmNDdiMzc1LCAweDAzYzQxYzRiKSwgVE9CTigweGEwMjM4Mjli
LCAweDAzOTFkMDQyKSwKLSAgICAgICAgIFRPQk4oMHg1ZjUwNDVjMywgMHg1MDNiOGIwYSksIFRP
Qk4oMHgxMjNjMjY4OCwgMHg5OGMwMTBlNSksCi0gICAgICAgICBUT0JOKDB4MzI0ZWMwY2MsIDB4
MzZiYTA2ZWUpLCBUT0JOKDB4ZmFjZTMxMTUsIDB4M2RkMmNjMGMpLAotICAgICAgICAgVE9CTigw
eGIzNjRmM2JlLCAweGYzMzNlOTFmKSwgVE9CTigweGVmOGFmZjczLCAweDI4ZTgzMmIwKSwKLSAg
ICAgICAgIFRPQk4oMHgxZTliYWQwNCwgMHgyZDA1ODQxYiksIFRPQk4oMHg0MmYwZTNkZiwgMHgz
NTZhMjFlMiksCi0gICAgICAgICBUT0JOKDB4YTMyNzBiY2IsIDB4NGFkZDYyN2UpLCBUT0JOKDB4
YjA5YTgxNTgsIDB4ZDMyMmU3MTEpLAotICAgICAgICAgVE9CTigweDg2ZTMyNmExLCAweDBmZWUx
MDRhKSwgVE9CTigweGFkNzc4OGY4LCAweDM3MDNmNjVkKSwKLSAgICAgICAgIFRPQk4oMHg3ZTc2
NTQzMCwgMHg0N2JjNDgzMyksIFRPQk4oMHg2Y2VlNTgyYiwgMHgyYjliODkzYSksCi0gICAgICAg
ICBUT0JOKDB4OWNkMmExNjcsIDB4ZThmNTVhN2IpLCBUT0JOKDB4ZWZiZWUzYzYsIDB4ZDllNDE5
MGQpLAotICAgICAgICAgVE9CTigweDMzZWU3MTg1LCAweGQ0MGMyZTlkKSwgVE9CTigweDg0NGNj
OWM1LCAweGEzODBiNTQ4KSwKLSAgICAgICAgIFRPQk4oMHgzMjNmOGVjZCwgMHg2NjkyNmUwNCks
IFRPQk4oMHgwMDAxZTM4ZiwgMHg4MTEwYzFiYSksCi0gICAgICAgICBUT0JOKDB4OGRiY2FjMTIs
IDB4ZmM2YTdmMDcpLCBUT0JOKDB4ZDY1ZTFkNTgsIDB4MGNlYzA4MjcpLAotICAgICAgICAgVE9C
TigweGQyY2Q0MTQxLCAweGJlNzZjYTJkKSwgVE9CTigweDc4OTVjZjVjLCAweGU4OTJmMzNhKSwK
LSAgICAgICAgIFRPQk4oMHg5NTZkMjMwZCwgMHgzNjcxMzlkMiksIFRPQk4oMHhhOTFhYmQzZSwg
MHhkMDEyYzRjMSksCi0gICAgICAgICBUT0JOKDB4MzRmYTQ4ODMsIDB4ODdlYjM2YmYpLCBUT0JO
KDB4YzVmMDcxMDIsIDB4OTE0YjhmYjQpLAotICAgICAgICAgVE9CTigweDkwZjBlNTc5LCAweGFk
YjljOTVmKSwgVE9CTigweGZlNmVhOGNiLCAweDI4ODg4MTk1KSwKLSAgICAgICAgIFRPQk4oMHg3
YjliNTA2NSwgMHhlZGZhOTI4NCksIFRPQk4oMHg2YzUxMGJkMiwgMHgyYjhjOGQ2NSksCi0gICAg
ICAgICBUT0JOKDB4ZDdiOGViZWYsIDB4Y2JlOGFhZmQpLCBUT0JOKDB4ZWRiM2FmOTgsIDB4OTZi
MWRhMDcpLAotICAgICAgICAgVE9CTigweDI4ZmY3NzlkLCAweDYyOTVkNDI2KSwgVE9CTigweDBj
NGY2YWM3LCAweDNmYTNhZDdiKSwKLSAgICAgICAgIFRPQk4oMHhlYzQ0ZDA1NCwgMHg4YjhlMjYw
NCksIFRPQk4oMHg5YjMyYTY2ZCwgMHg4YjAwNTBlMSksCi0gICAgICAgICBUT0JOKDB4MWY5NDMz
NjYsIDB4ZjA0NzZjZTIpLCBUT0JOKDB4NzU1NGQ5NTMsIDB4YTYwMmM3YjQpLAotICAgICAgICAg
VE9CTigweGJlMzVhY2E2LCAweDUyNGYyODA5KSwgVE9CTigweGI2ODgxMjI5LCAweGZkNGVkYmVh
KSwKLSAgICAgICAgIFRPQk4oMHhlOGNkMGM4ZiwgMHg1MDhlZmI2MyksIFRPQk4oMHg5ZWI1YjVj
OCwgMHg2YWJjZWZjNyksCi0gICAgICAgICBUT0JOKDB4ZjU2MjFmNWYsIDB4YjQ0MWFiNGYpLCBU
T0JOKDB4NzllNmMwNDYsIDB4Yjc2YTJiMjIpLAotICAgICAgICAgVE9CTigweDc0YTQ3OTJjLCAw
eGUzN2ExZjY5KSwgVE9CTigweGNiZDI1MmNiLCAweDAzNTQyYjYwKSwKLSAgICAgICAgIFRPQk4o
MHg3ODVmNjVkNSwgMHhiM2MyMGJkMyksIFRPQk4oMHg4ZGVhNjE0MywgMHg0ZmFiYzYwYyksCi0g
ICAgICAgICBUT0JOKDB4NDVlMjE0NDYsIDB4ZGU2NzM2MjkpLCBUT0JOKDB4NTdmN2FhMWUsIDB4
NzAzYzJkMjEpLAotICAgICAgICAgVE9CTigweGEwZTk5YjdmLCAweDk4Yzg2OGM3KSwgVE9CTigw
eDRlNDJmNjZkLCAweDhiNjQxNjc2KSwKLSAgICAgICAgIFRPQk4oMHg2MDI4ODRkYywgMHg5MTA3
Nzg5NiksIFRPQk4oMHhhMGQ2OTBjZiwgMHhjMmM5ODg1YiksCi0gICAgICAgICBUT0JOKDB4ZmVi
NGRhMzMsIDB4M2I5YTUxODcpLCBUT0JOKDB4NWY3ODk1OTgsIDB4MTUzYzg3ZWUpLAotICAgICAg
ICAgVE9CTigweDIxOTJkZDQ3LCAweDUyYjE2ZGJhKSwgVE9CTigweGRlZWZjMGU2LCAweDM1MjRj
MWIxKSwKLSAgICAgICAgIFRPQk4oMHg0NjVlYTc2ZSwgMHhlNDM4MzY5MyksIFRPQk4oMHg3OTQw
MTcxMSwgMHgzNjFiOGQ5OCksCi0gICAgICAgICBUT0JOKDB4YTVmOWFjZTksIDB4ZjIxYTE1Y2Ip
LCBUT0JOKDB4NzNkMjYxNjMsIDB4ZWZlZTlhZWIpLAotICAgICAgICAgVE9CTigweGNjYTg0NGIz
LCAweGU2NzcwMTZjKSwgVE9CTigweDZjMTIyYjA3LCAweDU3ZWFlZTA2KSwKLSAgICAgICAgIFRP
Qk4oMHhiNzgyZGNlNywgMHgxNWYwOTY5MCksIFRPQk4oMHg1MDhiOWIxMiwgMHgyZGZjMGZjOSks
Ci0gICAgICAgICBUT0JOKDB4OTAxNWFiNGIsIDB4NjVkODlmYzYpLCBUT0JOKDB4NWU3OWRhYjcs
IDB4ZDZkNWJiMGYpLAotICAgICAgICAgVE9CTigweDY0ZjAyMWYwLCAweDZjNzc1YWEyKSwgVE9C
TigweGRmMDlkOGNjLCAweDM3YzdlY2ExKSwKLSAgICAgICAgIFRPQk4oMHg5YTc2MTM2NywgMHhl
ZjJmYTUwNiksIFRPQk4oMHhlZDRjYTQ3NiwgMHg1YjgxZWVjNiksCi0gICAgICAgICBUT0JOKDB4
MjYyZWRlMzYsIDB4MTBiYmI4YjUpLCBUT0JOKDB4MDczN2NlODMsIDB4MDY0MWFkYTMpLAotICAg
ICAgICAgVE9CTigweDRjOTQyODhhLCAweGU5ODMxY2NjKSwgVE9CTigweDQ4N2ZjMWNlLCAweDgw
NjVlNjM1KSwKLSAgICAgICAgIFRPQk4oMHhiMTNkN2FiMywgMHhiOGJiMzY1OSksIFRPQk4oMHhk
ZWE1ZGYzZSwgMHg4NTVlNDEyMCksCi0gICAgICAgICBUT0JOKDB4YjlhMTg1NzMsIDB4ODVlYjAy
NDQpLCBUT0JOKDB4MWExYjhlYTMsIDB4YTdjZmUwYTMpLAotICAgICAgICAgVE9CTigweDNiODM3
MTE5LCAweDY3YjA4NjdjKSwgVE9CTigweDhkNWUwZDA4LCAweDlkMzY0NTIwKSwKLSAgICAgICAg
IFRPQk4oMHg1MmRjY2MxZSwgMHhkOTMwZjBlMyksIFRPQk4oMHhlZmJiY2VjNywgMHhiZjIwYmJh
ZiksCi0gICAgICAgICBUT0JOKDB4OTljZmZjYWIsIDB4MDI2M2FkMTApLCBUT0JOKDB4ZDgxOTll
NmQsIDB4ZmNkMThmOGEpLAotICAgICAgICAgVE9CTigweDY0ZTI3NzNmLCAweGU5ZjEwNjE3KSwg
VE9CTigweDAwNzllOGUxLCAweDA4NzA0ODQ4KSwKLSAgICAgICAgIFRPQk4oMHgxMTY5OTg5Ziwg
MHg4YTM0MjI4MyksIFRPQk4oMHg4MDk3Nzk5YywgMHhhODMwMTJlNiksCi0gICAgICAgICBUT0JO
KDB4ZWNlOTY2Y2IsIDB4OGE2YTkwMDEpLCBUT0JOKDB4OTNiM2FmZWYsIDB4MDcyYWM3ZmMpLAot
ICAgICAgICAgVE9CTigweGU2ODkzYTJhLCAweDJkYjNkNWJhKSwgVE9CTigweDI2M2RjNDYyLCAw
eDg5YmY0ZmRjKSwKLSAgICAgICAgIFRPQk4oMHg4ODUyZGZjOSwgMHhlMDM5NjY3MyksIFRPQk4o
MHg3YWM3MDg5NSwgMHgzYWYzNjJiNiksCi0gICAgICAgICBUT0JOKDB4YmI5Y2NlNGQsIDB4NWMy
ZjM0MmIpLCBUT0JOKDB4YmY4MDkwN2EsIDB4YjUyZDdhYWUpLAotICAgICAgICAgVE9CTigweDk3
ZjNkM2NkLCAweDIxNjFiY2QwKSwgVE9CTigweGIyNWIwODM0LCAweDA5NjI3NDRkKSwKLSAgICAg
ICAgIFRPQk4oMHhjNWIxOGVhNSwgMHg2YzNhMWRkYSksIFRPQk4oMHhmZTRlYzdlYiwgMHgwNmM5
MjMxNyksCi0gICAgICAgICBUT0JOKDB4Yjc4N2I4OTAsIDB4YWQxYzRhZmUpLCBUT0JOKDB4ZGNj
ZDlhOTIsIDB4MGVkZTgwMWEpLAotICAgICAgICAgVE9CTigweDlhYzZkZGRhLCAweGRiNThkYTFm
KSwgVE9CTigweDIyYmJjMTJmLCAweGI4Y2FlNmVlKSwKLSAgICAgICAgIFRPQk4oMHhjNmY4YmNl
ZCwgMHg4MTVjNGE0MyksIFRPQk4oMHg4MTA1YTkyYywgMHhmOTY0ODBjNyksCi0gICAgICAgICBU
T0JOKDB4MGRjM2RiZjMsIDB4N2E4NTlkNTEpLCBUT0JOKDB4ZTNlYzdjZTYsIDB4MzA0MTE5NmIp
LAotICAgICAgICAgVE9CTigweGQ5ZjY0YjI1LCAweDBkMTA2N2M5KSwgVE9CTigweGYyMzIxMzIx
LCAweDNkMWY4ZGQ4KSwKLSAgICAgICAgIFRPQk4oMHg4YjVjNjE5YywgMHg3NjQ5N2VlOCksIFRP
Qk4oMHg1ZDJiMGFjNiwgMHhjNzE3MzcwZSksCi0gICAgICAgICBUT0JOKDB4OTgyMDRjYjYsIDB4
NGZjZjY4ZTEpLCBUT0JOKDB4MGJkZWMyMTEsIDB4NjJiYzY3OTIpLAotICAgICAgICAgVE9CTigw
eDY5NzNjY2VmLCAweGE2M2IxMDExKSwgVE9CTigweGY5ZTNmYTk3LCAweGUwZGUxYWM1KSwKLSAg
ICAgICAgIFRPQk4oMHg1ZWZiNjkzZSwgMHgzZDBlMGM4YiksIFRPQk4oMHgwMzcyNDhlOSwgMHhk
MmQ0ZmNiNCl9LAotICAgICAgICB7VE9CTigweDgwODAyZGM5LCAweDFlYzM0ZjllKSwgVE9CTigw
eGQ4NzcyZDM1LCAweDMzODEwNjAzKSwKLSAgICAgICAgIFRPQk4oMHgzZjA2ZDY2YywgMHg1MzBj
YjRmMyksIFRPQk4oMHg3YmU1ZWQwZCwgMHhjNDc1YzEyOSksCi0gICAgICAgICBUT0JOKDB4Y2I5
ZTNjMTksIDB4MzFlODJiMTApLCBUT0JOKDB4YzYzZDI4NTcsIDB4YzlmZjZiNGMpLAotICAgICAg
ICAgVE9CTigweGI5MjExOGM2LCAweDkyYTFiNDVlKSwgVE9CTigweDBhZWM0NDE0LCAweDcyODVi
YmNhKSwKLSAgICAgICAgIFRPQk4oMHhmYzE4OWFlNywgMHgxZTI5YTNlZiksIFRPQk4oMHhjYmU5
MDZmMCwgMHg0YzkzMzAyZSksCi0gICAgICAgICBUT0JOKDB4ZDAxMDc5MTQsIDB4Y2VhYWUxMGUp
LCBUT0JOKDB4YjdhMjNmMzQsIDB4YjY4ZTE5ZjgpLAotICAgICAgICAgVE9CTigweGU5ZDg3NWMy
LCAweGVmZDIxMTlkKSwgVE9CTigweDAzMTk4YzZlLCAweGZjYWRjOWM4KSwKLSAgICAgICAgIFRP
Qk4oMHg2NTU5MWJmNiwgMHg0ZGExNzExMyksIFRPQk4oMHgzY2YwYmJmOCwgMHgzZDQ0MzAzOCks
Ci0gICAgICAgICBUT0JOKDB4YWU0ODViYjcsIDB4MmI3MjQ3NTkpLCBUT0JOKDB4OTQ1MzUzZTEs
IDB4YjJkNGM2M2EpLAotICAgICAgICAgVE9CTigweDgyMTU5ZDA3LCAweGRlN2Q2ZjJjKSwgVE9C
TigweDM4OWNhZWYzLCAweDRlYzViMTA5KSwKLSAgICAgICAgIFRPQk4oMHg0YThlYmI1MywgMHhk
YjY1ZWYxNCksIFRPQk4oMHgyZGMyY2I3ZSwgMHhkZDk5ZGU0MyksCi0gICAgICAgICBUT0JOKDB4
ODE2ZmEzZWQsIDB4ODNmMjQwNWYpLCBUT0JOKDB4NzM0MjliYjksIDB4YzE0MjA4YTMpLAotICAg
ICAgICAgVE9CTigweGI2MThkNTkwLCAweGIwMWU2ZTI3KSwgVE9CTigweDA0N2UyY2NkLCAweGUx
ODBiMmRjKSwKLSAgICAgICAgIFRPQk4oMHhkMWIyOTliNSwgMHgwNGFlYTRhOSksIFRPQk4oMHg0
MTJjOWUxZSwgMHg5ZmE0MDNhNCksCi0gICAgICAgICBUT0JOKDB4ODhkMjhhMzYsIDB4Nzk0MDc1
NTIpLCBUT0JOKDB4NDljNTAxMzYsIDB4ZjMzMmI4ZTMpLAotICAgICAgICAgVE9CTigweDNhMWI2
ZmNjLCAweGU2NjhkZTE5KSwgVE9CTigweDE3ODg1MWJjLCAweDc1MTIyYjk3KSwKLSAgICAgICAg
IFRPQk4oMHhiMWUxMzc1MiwgMHhmYjg1ZmE0YyksIFRPQk4oMHhkNjEyNTdjZSwgMHgzODNjOGNl
OSksCi0gICAgICAgICBUT0JOKDB4ZDQzZGE2NzAsIDB4ZDJmNzRkYWUpLCBUT0JOKDB4YTM1YWEy
M2YsIDB4YmY4NDZiYmIpLAotICAgICAgICAgVE9CTigweDVlNzQyMzVkLCAweDQ0MjFmYzgzKSwg
VE9CTigweGY2ZGY4ZWUwLCAweGMzNjM0NzNiKSwKLSAgICAgICAgIFRPQk4oMHgzNGQ3ZjUyYSwg
MHgzYzRhYTE1OCksIFRPQk4oMHg1MGQwNWFhYiwgMHg5YmM2ZDIyZSksCi0gICAgICAgICBUT0JO
KDB4OGM1NmU3MzUsIDB4YTY0Nzg1ZjQpLCBUT0JOKDB4YmM1NjYzN2IsIDB4NWYyOWNkMDcpLAot
ICAgICAgICAgVE9CTigweDUzYjJiYjgwLCAweDNlZTM1MDY3KSwgVE9CTigweDUwMjM1YTBmLCAw
eGRjOTE5MjcwKSwKLSAgICAgICAgIFRPQk4oMHgxOTFhYjZkOCwgMHhmMmM0YWE2NSksIFRPQk4o
MHhjMzQ3NTgzMSwgMHg4Mzk2MDIzYiksCi0gICAgICAgICBUT0JOKDB4ODA0MDBiYTUsIDB4ZjBm
ODA1YmEpLCBUT0JOKDB4ODg4MTA2NWIsIDB4NWVjMGY4MGYpLAotICAgICAgICAgVE9CTigweGMz
NzBlNTIyLCAweGNjMWI1ZTgzKSwgVE9CTigweGRlMmQ0YWQxLCAweDg2MGI4YmZiKSwKLSAgICAg
ICAgIFRPQk4oMHhhZDM2NGRmMCwgMHg2N2IyNTZkZiksIFRPQk4oMHg4ZjEyNTAyZSwgMHhlMDEz
ODk5NyksCi0gICAgICAgICBUT0JOKDB4NTAzZmEwZGMsIDB4Nzc4MzkyMGEpLCBUT0JOKDB4ZTgw
MDE0YWQsIDB4YzBiYzg2NmEpLAotICAgICAgICAgVE9CTigweDNmODliNzQ0LCAweGQzMDY0YmE2
KSwgVE9CTigweDAzNTExZGNkLCAweGNiYTVkYmE1KSwKLSAgICAgICAgIFRPQk4oMHgxOTdkZDQ2
ZCwgMHg5NWE3YjFhMiksIFRPQk4oMHg5YzRlN2FkNiwgMHgzYzYzNDFmYiksCi0gICAgICAgICBU
T0JOKDB4NDI2ZWNhMjksIDB4NDg0YzJlY2UpLCBUT0JOKDB4OTIxMWU0ODksIDB4ZGU3ZjRmOGEp
LAotICAgICAgICAgVE9CTigweDE0OTk3ZjZlLCAweGM3OGVmMWY0KSwgVE9CTigweDJiMmMwOTEw
LCAweDA2NTc0NTg2KSwKLSAgICAgICAgIFRPQk4oMHgxNzI4NmE2ZSwgMHgxYzNlZWRlOCksIFRP
Qk4oMHgyNWY5MmU0NywgMHgwZjYwZTAxOCksCi0gICAgICAgICBUT0JOKDB4ODA1YzU2NDYsIDB4
MzE4OTBhMzYpLCBUT0JOKDB4NzAzZWY2MDAsIDB4NTdmZWVhNWIpLAotICAgICAgICAgVE9CTigw
eDM4OWY3NDdjLCAweGFmM2MzMDMwKSwgVE9CTigweGUwZTVkYWViLCAweDU0ZGQzNzM5KSwKLSAg
ICAgICAgIFRPQk4oMHhmZTI0YTRjMywgMHhjOWM5ZjE1NSksIFRPQk4oMHg3ZTRiZjE3NiwgMHhi
NTM5Mzk2MiksCi0gICAgICAgICBUT0JOKDB4MzcxODNkZTIsIDB4YWYyMGJmMjkpLCBUT0JOKDB4
NGExYmQ3YjUsIDB4Zjk1YThjM2IpLAotICAgICAgICAgVE9CTigweGE4M2I5Njk5LCAweDQ2MTkx
ZDNkKSwgVE9CTigweDI4MWZjOGRkLCAweDdiODdmMjU3KSwKLSAgICAgICAgIFRPQk4oMHhiMThl
MmMxMywgMHg1NDEwNzU4OCksIFRPQk4oMHg2MzcyZGVmNywgMHg5YjJiYWZlOCksCi0gICAgICAg
ICBUT0JOKDB4ZGFmNGJiNDgsIDB4MGQ4OTcyY2EpLCBUT0JOKDB4M2YyZGQ0YjcsIDB4NTYxNjdh
M2YpLAotICAgICAgICAgVE9CTigweDFlYWNlMzJkLCAweDg0MzEwY2Y0KSwgVE9CTigweGUzYmNl
ZmFmLCAweGU0MjcwMGFhKSwKLSAgICAgICAgIFRPQk4oMHg1ZmU1NjkxZSwgMHhkNzg1ZTczZCks
IFRPQk4oMHhhNWRiNWFiNiwgMHgyZWE2MDQ2NyksCi0gICAgICAgICBUT0JOKDB4MDJlMjNkNDEs
IDB4ZGZjNjUxNGEpLCBUT0JOKDB4MzVlODA0OGUsIDB4ZTAzYzM2NjUpLAotICAgICAgICAgVE9C
TigweDNmOGIxMThmLCAweDFhZGFhMGY4KSwgVE9CTigweDI4ZWMzYjQ1LCAweDg0Y2UxYTVhKSwK
LSAgICAgICAgIFRPQk4oMHhlOGNhY2M2ZSwgMHgyYzY2NDZiOCksIFRPQk4oMHgxMzQzZDE4NSwg
MHhkYmQwZTQwZiksCi0gICAgICAgICBUT0JOKDB4ZTVkN2Y4NDQsIDB4Y2FhYTM1OGMpLCBUT0JO
KDB4MWExZGI3ZTQsIDB4OTkyNDE4MmEpLAotICAgICAgICAgVE9CTigweGQ2NGNkNDJkLCAweDlj
ODc1ZDlhKSwgVE9CTigweGIzN2I1MTVmLCAweDA0MmVlZWM4KSwKLSAgICAgICAgIFRPQk4oMHg0
ZDRkZDQwOSwgMHg3YjE2NWZiZSksIFRPQk4oMHhmYzMyMmVkOSwgMHhlMjA2ZWZmMyksCi0gICAg
ICAgICBUT0JOKDB4N2RlZTQxMDIsIDB4NTliN2UxN2UpLCBUT0JOKDB4NTVhNDgxYzAsIDB4ODIz
NmNhMDApLAotICAgICAgICAgVE9CTigweDhjODg1MzEyLCAweGMyM2ZjOTc1KSwgVE9CTigweDE1
NzE1ODA2LCAweDA1ZDYyOTdiKSwKLSAgICAgICAgIFRPQk4oMHhhMDc4ODY4ZSwgMHhmNzhlZGQz
OSksIFRPQk4oMHg5NTZiMzFlMCwgMHgwM2M0NWU1MiksCi0gICAgICAgICBUT0JOKDB4NDcwMjc1
ZDUsIDB4ZmY3YjMzYTYpLCBUT0JOKDB4YzhkNWRjM2EsIDB4MGM3ZTY3M2YpLAotICAgICAgICAg
VE9CTigweDQxOTIyN2I0LCAweDdlMmYyNTk4KSwgVE9CTigweDhiMzdiNjM0LCAweDRjMTRhOTc1
KSwKLSAgICAgICAgIFRPQk4oMHhkMDY2N2VkNiwgMHg4YjExODg4YyksIFRPQk4oMHg1ZTBlOGMz
ZSwgMHg4MDNlMjVkYyksCi0gICAgICAgICBUT0JOKDB4MzRlNWQwZGMsIDB4Yjk4N2EyNGEpLCBU
T0JOKDB4OWY0MGFjM2IsIDB4YWU5MjAzMjMpLAotICAgICAgICAgVE9CTigweDU0NjNkZTk1LCAw
eDM0ZTBmNjNhKSwgVE9CTigweGExMjhiZjkyLCAweDZiNjMyOGY5KSwKLSAgICAgICAgIFRPQk4o
MHg0OTFjY2Q3YywgMHhkYTY0ZjFiNyksIFRPQk4oMHg3ZWYxZWMyNywgMHhjNDdiZGUzNSksCi0g
ICAgICAgICBUT0JOKDB4YTg1NzI0MGYsIDB4YTM2YTI3MzcpLCBUT0JOKDB4MzVkYzEzNjYsIDB4
NjM2MjFiYzEpLAotICAgICAgICAgVE9CTigweDdhM2E2NDUzLCAweGQ0ZmI2ODk3KSwgVE9CTigw
eDgwZjFhNDM5LCAweGM5MjkzMTlkKSwKLSAgICAgICAgIFRPQk4oMHhmYzE4Mjc0YiwgMHhmOGNi
MGJhMCksIFRPQk4oMHhiMGI1Mzc2NiwgMHg4MDc4YzVlYiksCi0gICAgICAgICBUT0JOKDB4ZmIw
ZDQ5MjQsIDB4MWUwMWQwZWYpLCBUT0JOKDB4NTBkN2M2N2QsIDB4MzcyYWIwOWMpLAotICAgICAg
ICAgVE9CTigweGI0ZTM3MGFmLCAweDNhZWFjOTY4KSwgVE9CTigweGU0ZjdmZWU5LCAweGM0YjYz
MjY2KSwKLSAgICAgICAgIFRPQk4oMHhiNGFjZDRjMiwgMHhlM2FjNTY2NCksIFRPQk4oMHhmODkx
MGJkMiwgMHhjZWIzOGNiZiksCi0gICAgICAgICBUT0JOKDB4MWMzYWU1MGMsIDB4YzljMDcyNmUp
LCBUT0JOKDB4MTUzMDk1NjksIDB4ZDk3YjQwYmYpLAotICAgICAgICAgVE9CTigweDcwODg0Yjdm
LCAweGZkNWE1YTFiKSwgVE9CTigweDM4OTA4OTZhLCAweGVmODMxNGNkKSwKLSAgICAgICAgIFRP
Qk4oMHg1OGUxNTE1YywgMHhhNTYxOGM5MyksIFRPQk4oMHhlNjY1NDMyYiwgMHg3N2Q5NDJkMSks
Ci0gICAgICAgICBUT0JOKDB4YjMyMTgxYmYsIDB4YjZmNzY3YTgpLCBUT0JOKDB4NzUzNzk0ZTgs
IDB4M2E2MDQxMTApLAotICAgICAgICAgVE9CTigweDA5YWZlYjdjLCAweGU4YzBkYmNjKSwgVE9C
TigweDMxZTAyNjEzLCAweDU5ODY3M2EzKSwKLSAgICAgICAgIFRPQk4oMHg1ZDk4ZTU1NywgMHg3
ZDQ2ZGIwMCksIFRPQk4oMHhmYzIxZmI4YywgMHg5ZDk4NWIyOCksCi0gICAgICAgICBUT0JOKDB4
YzkwNDAxMTYsIDB4YjA4NDNlMGIpLCBUT0JOKDB4NTNiMWIzYTgsIDB4NjliMDQ1MzEpLAotICAg
ICAgICAgVE9CTigweGRkMTY0OWYwLCAweDg1ZDdkODMwKSwgVE9CTigweGJiM2JjYzg3LCAweGNi
NzQyN2U4KSwKLSAgICAgICAgIFRPQk4oMHg3NzI2MTEwMCwgMHhjOTNkY2U4MyksIFRPQk4oMHg3
ZTc5ZGE2MSwgMHhhMTkyMmEyYSksCi0gICAgICAgICBUT0JOKDB4NTg3YTJiMDIsIDB4ZjMxNDlj
ZTgpLCBUT0JOKDB4MTQ3ZTEzODQsIDB4ZGU5MmVjODMpLAotICAgICAgICAgVE9CTigweDQ4NGM4
M2QzLCAweGFmMDc3ZjMwKSwgVE9CTigweGVhNzhmODQ0LCAweDA2NThiNTNhKSwKLSAgICAgICAg
IFRPQk4oMHg5MTIwNzZjMiwgMHgwMjdhZWM1MyksIFRPQk4oMHhmMzQ3MTRlMywgMHg5M2M4MTc3
ZCksCi0gICAgICAgICBUT0JOKDB4MzdlZjVkMTUsIDB4YzIzNzZjODQpLCBUT0JOKDB4ODMxNWI2
NTksIDB4M2QxYWE3ODMpLAotICAgICAgICAgVE9CTigweDNhNzVjNDg0LCAweGVmODUyYTkwKSwg
VE9CTigweDBiYTBjNThhLCAweDE2MDg2YmQ0KSwKLSAgICAgICAgIFRPQk4oMHgyOTY4OGQ3YSwg
MHg1MjlhNmQ0OCksIFRPQk4oMHg5YzdmMjUwZCwgMHhjMmYxOTIwMyksCi0gICAgICAgICBUT0JO
KDB4MTIzMDQyZmIsIDB4NjgyZTJkZjkpLCBUT0JOKDB4MmI3NTg3ZTcsIDB4YWQ4MTIxYmMpLAot
ICAgICAgICAgVE9CTigweDMwZmMwMjMzLCAweGUwMTgyYTY1KSwgVE9CTigweGI4MmVjZjg3LCAw
eGUzZTExMjhhKSwKLSAgICAgICAgIFRPQk4oMHg3MTY4Mjg2MSwgMHg5M2ZiMDk4ZiksIFRPQk4o
MHgwNDNlMjFhZSwgMHg4NWU5ZTZhNyksCi0gICAgICAgICBUT0JOKDB4YWI1YjQ5ZDYsIDB4NjZj
ODM0ZWEpLCBUT0JOKDB4M2JlNDNlMTgsIDB4NDc0MTQyODcpLAotICAgICAgICAgVE9CTigweGY0
MGZiODU5LCAweDIxOWEyYTQ3KSwgVE9CTigweDBlNjU1OWU5LCAweGNjNThkZjNjKSwKLSAgICAg
ICAgIFRPQk4oMHhmZTFkZmU4ZSwgMHgwYzY2MTViNCksIFRPQk4oMHgxNGFiYzhmZCwgMHg1NjQ1
OWQ3MCksCi0gICAgICAgICBUT0JOKDB4N2JlMGZhOGUsIDB4MDVkZTAzODYpLCBUT0JOKDB4OGU2
M2VmNjgsIDB4ZTkwMzVjN2MpLAotICAgICAgICAgVE9CTigweDExNjQwMWI0LCAweDUzYjMxZTkx
KSwgVE9CTigweDBjYmE3YWQ0LCAweDQ0MzZiNGQ4KSwKLSAgICAgICAgIFRPQk4oMHg5MTUxZjlh
MCwgMHgxMDdhZmQ2NiksIFRPQk4oMHhhZmFjYThkMCwgMHgxZjBlZTRjNCksCi0gICAgICAgICBU
T0JOKDB4NzVmZTVjMWQsIDB4OWVlOTc2MWMpLCBUT0JOKDB4MzQ5N2ExNmIsIDB4ZjBjMDU4OGYp
LAotICAgICAgICAgVE9CTigweDNlZTJiZWJkLCAweDAzMDQ4MDRjKSwgVE9CTigweGE4ZmI5YTYw
LCAweGMyYzk5MGI5KSwKLSAgICAgICAgIFRPQk4oMHhkMTRkMzJmZSwgMHgzOTI1MTExNCksIFRP
Qk4oMHgzNmJmMjViYywgMHhjYWM3MzM2NiksCi0gICAgICAgICBUT0JOKDB4Yzk1NjJjNjYsIDB4
ZGJhNzQ5NWMpLCBUT0JOKDB4MzI0ZDMwMWIsIDB4NDZhZDM0OGIpLAotICAgICAgICAgVE9CTigw
eDlmNDY2MjBjLCAweGQ2NzA0MDdlKSwgVE9CTigweDBlYThkNGYxLCAweGUzNzMzYTAxKSwKLSAg
ICAgICAgIFRPQk4oMHhkMzk2ZDUzMiwgMHhiMGMzMjRlMCksIFRPQk4oMHg1YjIxMWEwZSwgMHgw
M2MzMTdjZCksCi0gICAgICAgICBUT0JOKDB4MDkwZDdkMjAsIDB4NWZmZTdiMzcpLCBUT0JOKDB4
M2I3ZjNlZmIsIDB4MTc0N2QyZGEpLAotICAgICAgICAgVE9CTigweGEyY2I1MjVmLCAweGI1NGZj
NTE5KSwgVE9CTigweDZlMjIwOTMyLCAweGY2NmE5NzFlKSwKLSAgICAgICAgIFRPQk4oMHhkZGMx
NjBkZiwgMHhiNDg2ZDQ0MCksIFRPQk4oMHg3ZmNmZWM0NiwgMHgzZmUxMzQ2NSksCi0gICAgICAg
ICBUT0JOKDB4ODNkYTdlNGUsIDB4NzZlNGMxNTEpLCBUT0JOKDB4ZDZmYTQ4YTEsIDB4ZDhkMzAy
YjUpLAotICAgICAgICAgVE9CTigweGM2MzA0ZjI2LCAweDU4NzJjZDg4KSwgVE9CTigweDgwNmMx
ZDNjLCAweDI3OGI5MGExKSwKLSAgICAgICAgIFRPQk4oMHgzNTUzZTcyNSwgMHhjYWYwYmMxYyks
IFRPQk4oMHhmZjU5ZTYwMywgMHhiYjlkOGQ1YyksCi0gICAgICAgICBUT0JOKDB4YTQ1NTBmMzIs
IDB4N2EwYjg1ZGQpLCBUT0JOKDB4ZGVjNTcyMGEsIDB4OTNlY2MyMTcpLAotICAgICAgICAgVE9C
TigweDBiODhiNzQxLCAweDY5ZDYyMjEzKSwgVE9CTigweDcyMTJmMjQ1LCAweDViMzY1OTU1KSwK
LSAgICAgICAgIFRPQk4oMHgyMDc2NDExMSwgMHhiNWNhZTc4NyksIFRPQk4oMHgxM2NiN2Y1OCwg
MHgxZGZkMzEyNCksCi0gICAgICAgICBUT0JOKDB4MmRjYTc3ZGEsIDB4MTE3NWFlZmIpLCBUT0JO
KDB4ZWI3NTQ2NmIsIDB4ZmZhYWU3NzUpLAotICAgICAgICAgVE9CTigweDc0ZDc2ZjNiLCAweGRi
NmNmZjMyKSwgVE9CTigweDc0NDBmMzdhLCAweDYxZmNkYTlhKSwKLSAgICAgICAgIFRPQk4oMHgx
YmIzYWM5MiwgMHhiNTI1MDI4YiksIFRPQk4oMHgyMGZiZjhmNywgMHhhMTk3NWYyOSksCi0gICAg
ICAgICBUT0JOKDB4OTgyNjkyZTEsIDB4ZGY4MzA5N2YpLCBUT0JOKDB4Mjg3MzhmNmMsIDB4NTU0
YjA4MDApLAotICAgICAgICAgVE9CTigweGRjNzAzNzE3LCAweGEyY2UyZjJmKSwgVE9CTigweDc5
MTNiOTNjLCAweDQwODE0MTk0KSwKLSAgICAgICAgIFRPQk4oMHgwNDkyNDU5MywgMHgxZmU4OTYz
NiksIFRPQk4oMHg3Yjk4NDQzZiwgMHhmNzg4MzRhNiksCi0gICAgICAgICBUT0JOKDB4MTFjNmFi
MDEsIDB4NTExNGE1YTEpLCBUT0JOKDB4NjBkZWIzODMsIDB4ZmZiYTVmNGMpLAotICAgICAgICAg
VE9CTigweDRjYWE1NGM2LCAweDAxYTk4MmU2KSwgVE9CTigweDFkZDM1ZTExLCAweDM0OTFjZDI2
KSwKLSAgICAgICAgIFRPQk4oMHg5NzNjMzE1ZiwgMHg3Y2JkNmIwNSksIFRPQk4oMHhjYWIwMDc3
NSwgMHg1MjQ5NDcyNCksCi0gICAgICAgICBUT0JOKDB4MDQ2NTliMWYsIDB4NjU2NWUxNWEpLCBU
T0JOKDB4YmYzMGY1MjksIDB4OGM4ZmIwMjYpLAotICAgICAgICAgVE9CTigweGZjMjE2NDFiLCAw
eGE4YTBkZTM3KSwgVE9CTigweGU5YzdhMzY2LCAweGZhNWU1MTE0KSwKLSAgICAgICAgIFRPQk4o
MHhkYjg0OWNhNSwgMHg1MmYwM2FkOCksIFRPQk4oMHhjN2U4ZGJlOSwgMHgwMjRlMzVjMCksCi0g
ICAgICAgICBUT0JOKDB4YTFhMmJiYWMsIDB4Y2ZjM2M3ODkpLCBUT0JOKDB4YmY3MzNlN2QsIDB4
OWMyNmYyNjIpLAotICAgICAgICAgVE9CTigweDg4MmZmYmY1LCAweGI4NDQ0ODIzKSwgVE9CTigw
eGI3MjI0ZTg4LCAweDZiZjg0ODNiKSwKLSAgICAgICAgIFRPQk4oMHg1MzAyM2I4YiwgMHg2NWJl
ZjY0MCksIFRPQk4oMHhhYWJmZWM5MSwgMHhkNGQ1ZjhjZCksCi0gICAgICAgICBUT0JOKDB4YTQw
ZTE1MTAsIDB4MDc5ZWExYmQpLCBUT0JOKDB4MWFkOWFkZGMsIDB4ZDA1ZDVkMjYpLAotICAgICAg
ICAgVE9CTigweGRiM2YyZWFiLCAweDEzZTY4ZDRmKSwgVE9CTigweDFjZmYxYWUyLCAweDY0MGY4
MDNmKSwKLSAgICAgICAgIFRPQk4oMHhlMGU3Yjc0OSwgMHhkNGNlZTExNyksIFRPQk4oMHg4ZTlm
Mjc1YiwgMHg0MDM2ZDkwOSksCi0gICAgICAgICBUT0JOKDB4Y2UzNGUzMWQsIDB4OGY0ZDRjMzgp
LCBUT0JOKDB4MjJiMzdmNjksIDB4ZDc1MTMwZmMpLAotICAgICAgICAgVE9CTigweDgzZTBmMWZk
LCAweGI0MDE0NjA0KSwgVE9CTigweGE4Y2U5OTE5LCAweDg5NDE1MDc4KSwKLSAgICAgICAgIFRP
Qk4oMHg4MjM3NWI3NSwgMHg0MTc5MmVmZSksIFRPQk4oMHg0ZjU5YmY1YywgMHg5N2Q0NTE1Yiks
Ci0gICAgICAgICBUT0JOKDB4YWM0ZjMyNGYsIDB4OTIzYTI3N2QpLCBUT0JOKDB4ZDliYzliN2Qs
IDB4NjUwZjM0MDYpLAotICAgICAgICAgVE9CTigweGM2ZmE4N2QxLCAweDhhMzliYzUxKSwgVE9C
TigweDgyNTg4NTMwLCAweDVjY2MxMDhmKSwKLSAgICAgICAgIFRPQk4oMHg1Y2VkM2M5ZiwgMHg4
MmU0YzYzNCksIFRPQk4oMHg4ZWZiODMxNCwgMHgzYTQ0NjRmOCksCi0gICAgICAgICBUT0JOKDB4
ZTcwNjM4MWIsIDB4N2ExZGNhMjUpLCBUT0JOKDB4NmNkMTVhM2MsIDB4NWEyYTQxMmIpLAotICAg
ICAgICAgVE9CTigweDkzNDdhOGZkLCAweGJmY2Q4ZmI1KSwgVE9CTigweDMxZGIyZWVmLCAweDZl
NTRjZDIyKSwKLSAgICAgICAgIFRPQk4oMHhjNGFlYjExZSwgMHhmOGQ4OTMyZiksIFRPQk4oMHgx
MWU3YzFlZCwgMHgzNDQ0MTFhZiksCi0gICAgICAgICBUT0JOKDB4MjY1MzA1MGMsIDB4ZGM5YTE1
MWUpLCBUT0JOKDB4OWVkYmZjMDgsIDB4M2JiMGE4NTkpLAotICAgICAgICAgVE9CTigweDkyNmM4
MWM3LCAweGZkNTY5MWU3KSwgVE9CTigweDljMWIyMzQyLCAweDZmMzkwMTlhKSwKLSAgICAgICAg
IFRPQk4oMHg2NGE4MWM4YiwgMHg3Zjg0NzRiOSksIFRPQk4oMHg5MDY1N2MwNywgMHgwMTc2MTgx
OSksCi0gICAgICAgICBUT0JOKDB4MzkwYjMzMzEsIDB4NTVlMDM3NWEpLCBUT0JOKDB4YzY3NmM2
MjYsIDB4YjZlYmM0N2QpLAotICAgICAgICAgVE9CTigweDUxNjIzMjQ3LCAweGI3ZDZkZWU4KSwg
VE9CTigweDA5NDhkOTI3LCAweDc5NjU5MzEzKSwKLSAgICAgICAgIFRPQk4oMHg5OTcwMDE2MSwg
MHhlOWFiMzVlZCksIFRPQk4oMHgwNmNjMzJiNCwgMHg4ZGRkZTQwOCksCi0gICAgICAgICBUT0JO
KDB4NmYyZmQ2NjQsIDB4MDYxZWYzMzgpLCBUT0JOKDB4MTYwNmZhMDIsIDB4YzIwMmU5ZWQpLAot
ICAgICAgICAgVE9CTigweDU1Mzg4YmMxLCAweDkyOWJhOTliKSwgVE9CTigweGM0NDI4YzVlLCAw
eDFlODFkZjY5KSwKLSAgICAgICAgIFRPQk4oMHhjZTIwMjhhZSwgMHhmOTFiMGIyYSksIFRPQk4o
MHhjZTg3MGEyMywgMHhmMDNkZmQzZiksCi0gICAgICAgICBUT0JOKDB4NjZlYzJjODcsIDB4MGFm
ZmU4ZWQpLCBUT0JOKDB4YjIwNWZiNDYsIDB4Mjg0ZDBjMDApLAotICAgICAgICAgVE9CTigweGJm
NWRmZmU3LCAweDQ0Y2VmYTQ4KSwgVE9CTigweGI2ZmMzN2E4LCAweGExOTg3NmQ3KSwKLSAgICAg
ICAgIFRPQk4oMHhiZWNmYTg0YywgMHgwOGI3Mjg2MyksIFRPQk4oMHhkNzIwNWZmNSwgMHgyNTc2
Mzc0ZiksCi0gICAgICAgICBUT0JOKDB4ODAzMzBkMzIsIDB4ODg4N2RlNDEpLCBUT0JOKDB4NWRl
MGRmMGMsIDB4ODY5ZWE1MzQpLAotICAgICAgICAgVE9CTigweDEzZjQyNzUzLCAweDNjNTZlYTE3
KSwgVE9CTigweGViMWY2MDY5LCAweDQ1MmIxYTc4KSwKLSAgICAgICAgIFRPQk4oMHg1MDQ3NDM5
NiwgMHhlMzBlYTE1YyksIFRPQk4oMHg1NzU4MTZhMSwgMHhjMTQ5NDEyNSksCi0gICAgICAgICBU
T0JOKDB4YmUxY2U1NWIsIDB4ZmU2YmIzOGYpLCBUT0JOKDB4YjkwMWE5NDgsIDB4OTZhZTMwZjcp
LAotICAgICAgICAgVE9CTigweGU1YWYwZjA4LCAweGQ4ZmMzNTQ4KSwgVE9CTigweDUwMTBiNWQw
LCAweGQ3M2JmZDA4KSwKLSAgICAgICAgIFRPQk4oMHg5OTNkMjg4MCwgMHg1M2ZlNjU1YSksIFRP
Qk4oMHg5OWYyNjMwYiwgMHgxYzEzMDlmZCksCi0gICAgICAgICBUT0JOKDB4ZDg2NzdiYWYsIDB4
YjRlM2I3NmYpLCBUT0JOKDB4MTRlNTFkZGMsIDB4Yjg0MDc4NGIpLAotICAgICAgICAgVE9CTigw
eDMyNmM3NTBjLCAweGJmMDA5MmNlKSwgVE9CTigweGM4M2QzMDZiLCAweGY1MjgzMjBmKSwKLSAg
ICAgICAgIFRPQk4oMHhjNDQ1NjcxNSwgMHg3N2Q0NzE1YyksIFRPQk4oMHhkMzAwMTlmOSwgMHg2
YjcwMzIzNSksCi0gICAgICAgICBUT0JOKDB4MjA3Y2NiMmUsIDB4ZDY2OWU5ODYpLCBUT0JOKDB4
NTdjODI0YWYsIDB4ZjZkYmZjMjgpLAotICAgICAgICAgVE9CTigweGYwZWI1MzJmLCAweGQ4Zjky
YTIzKSwgVE9CTigweDRhNTU3ZmQ0LCAweDliYjk4ZmQyKSwKLSAgICAgICAgIFRPQk4oMHhhNTdh
Y2VhNywgMHhjMWU2MTk5YSksIFRPQk4oMHgwYzY2MzgyMCwgMHg4Yjk0YjFlZCksCi0gICAgICAg
ICBUT0JOKDB4OWI0MmJlOGYsIDB4ZjgzYTkyNjYpLCBUT0JOKDB4Yzc3NDFjOTcsIDB4MDEwMWJk
NDUpLAotICAgICAgICAgVE9CTigweDk1NzcwYzExLCAweDA3YmQ5Y2ViKSwgVE9CTigweDFmNTAy
NTBhLCAweDhiMmUwNzQ0KSwKLSAgICAgICAgIFRPQk4oMHhmNzYyZWVjOCwgMHgxNDc3YjY1NCks
IFRPQk4oMHhjNjViOTAwZSwgMHgxNWVmZTU5YSksCi0gICAgICAgICBUT0JOKDB4ODhjOTYxNDgs
IDB4OTU0NmE4OTcpLCBUT0JOKDB4N2U4MDI1YjMsIDB4YzMwYjRkN2MpLAotICAgICAgICAgVE9C
TigweGFlNDA2NWVmLCAweDEyMDQ1Y2Y5KSwgVE9CTigweDZmY2IyY2FmLCAweDljY2NlOGJkKSwK
LSAgICAgICAgIFRPQk4oMHgxZmEwYmE0ZSwgMHhmMmNmNjUyNSksIFRPQk4oMHhmNjgzMTI1ZCwg
MHhjYjcyYzMxMiksCi0gICAgICAgICBUT0JOKDB4YTAxZGE0ZWEsIDB4ZTMxMjQxMGUpLCBUT0JO
KDB4NjdlMjg2NzcsIDB4NmNkOGU4MzApLAotICAgICAgICAgVE9CTigweGFiZDk1NzUyLCAweDk4
ZmIzZjA3KSwgVE9CTigweDA1ZjExZTExLCAweGVlZjY0OWE1KSwKLSAgICAgICAgIFRPQk4oMHhi
YTQ3ZmFlZiwgMHg5ZDM0NzJjMiksIFRPQk4oMHgzYWRmZjY5NywgMHhjNzdkMTM0NSksCi0gICAg
ICAgICBUT0JOKDB4NDc2MWZhMDQsIDB4ZGQxNWFmZWUpLCBUT0JOKDB4NjRmMWY2MWEsIDB4Yjll
Njk0NjIpLAotICAgICAgICAgVE9CTigweGZhNjkxZmFiLCAweDliZmI5MDkzKSwgVE9CTigweDNk
ZjhhZThmLCAweGExMTMzZGZlKSwKLSAgICAgICAgIFRPQk4oMHhjZDVmODk2NywgMHg1OGNjNzEw
ZCksIFRPQk4oMHhmYmI4OGQ1MCwgMHgxNmM3ZmU3OSksCi0gICAgICAgICBUT0JOKDB4OGUwMTFi
NGMsIDB4ZTg4YzUwZDEpLCBUT0JOKDB4NzUzMmU4MDcsIDB4YTg3NzFjNGYpLAotICAgICAgICAg
VE9CTigweDY0Yzc4YTQ4LCAweGUyMjc4ZWU0KSwgVE9CTigweDBiMjgzZTgzLCAweDM4NDUwNzJh
KSwKLSAgICAgICAgIFRPQk4oMHg5OGE2ZjI5MSwgMHg0OWU2OTI3NCksIFRPQk4oMHhiOTZlOTY2
OCwgMHgxODY4YjIxYyksCi0gICAgICAgICBUT0JOKDB4MzhmMGFkYzIsIDB4YjFhODkwOGUpLCBU
T0JOKDB4OTBhZmNmZjcsIDB4MWZlYjgyOWQpLAotICAgICAgICAgVE9CTigweDk5MTVhMzgzLCAw
eDIxMGIwODU2KSwgVE9CTigweGE1YTgwNjAyLCAweGRlZjA0ODg5KSwKLSAgICAgICAgIFRPQk4o
MHg4MDBlOWFmOSwgMHg3YzY0ZDUwOSksIFRPQk4oMHg4MTM4MmQwYiwgMHhiODk5NmY2ZiksCi0g
ICAgICAgICBUT0JOKDB4NDkwZWJhNTMsIDB4ODE5MjdlMjcpLCBUT0JOKDB4NDZjNjNiMzIsIDB4
NGFmNTAxODIpLAotICAgICAgICAgVE9CTigweDc4NGM1ZmQ5LCAweGQzYWQ2MmNlKSwgVE9CTigw
eGU0ZmExODcwLCAweGY4YWU4NzM2KSwKLSAgICAgICAgIFRPQk4oMHg0ZWM5ZDBiYywgMHhkNzQ2
NmIyNSksIFRPQk4oMHg4NGRkYmUxYSwgMHhkYjIzNWM2NSksCi0gICAgICAgICBUT0JOKDB4NWUy
NjQ1ZWUsIDB4MTYzYzE2ODgpLCBUT0JOKDB4NTcwYmQwMGUsIDB4MDBlYmE3NDcpLAotICAgICAg
ICAgVE9CTigweGZhNTFiNjI5LCAweDEyOGJmYTBmKSwgVE9CTigweDkyZmNlMWJkLCAweDZjMWQz
YjY4KSwKLSAgICAgICAgIFRPQk4oMHgzZTczNjFkYywgMHhiNjY3NzhiMSksIFRPQk4oMHg5Yzdk
MjQ5ZCwgMHg1NTYxZDJiYiksCi0gICAgICAgICBUT0JOKDB4YTQwYjI4YmYsIDB4MGJiYzYyMjkp
LCBUT0JOKDB4MWM4M2MwNWUsIDB4ZGZkOTE0OTcpLAotICAgICAgICAgVE9CTigweDVmOWY1MTU0
LCAweGYwODNkZjA1KSwgVE9CTigweGJhYzM4YjNjLCAweGVlZTY2YzlkKSwKLSAgICAgICAgIFRP
Qk4oMHhmNzFkYjdlMywgMHhlYzBkZmNmZCksIFRPQk4oMHhmMmVjZGE4ZSwgMHg4YjBhODQxNiks
Ci0gICAgICAgICBUT0JOKDB4NTJmZGRkODYsIDB4NzgxMmFhNjYpLCBUT0JOKDB4Mjg5NmVmMTAs
IDB4NGU2ZjQyNzIpLAotICAgICAgICAgVE9CTigweGZmMjcxODZhLCAweDBmZTlhNzQ1KSwgVE9C
TigweDA4MjQ5ZmNkLCAweDQ5Y2E3MGRiKSwKLSAgICAgICAgIFRPQk4oMHg3NDI1YTJlNiwgMHg0
NDFjYWM0OSksIFRPQk4oMHhmNGEwODg1YSwgMHhlY2U1ZmY1NyksCi0gICAgICAgICBUT0JOKDB4
NmUyY2I3MzEsIDB4N2Q3ZWFkNTgpLCBUT0JOKDB4Zjk2Y2Y3ZDYsIDB4MTg5OGQxMDQpLAotICAg
ICAgICAgVE9CTigweGFmZTY3YzlkLCAweDRmMmM5YTg5KSwgVE9CTigweDg5ODk1YTUwLCAweDFj
N2JmNWJjKSwKLSAgICAgICAgIFRPQk4oMHhkYzdjYjhlNSwgMHg1NzNjZWNmYSksIFRPQk4oMHg2
NjQ5N2VhZSwgMHhkMTVmMDNlNiksCi0gICAgICAgICBUT0JOKDB4NmJjMGRlNjksIDB4M2YwODQ0
MjApLCBUT0JOKDB4MzIzYjliMzYsIDB4YWNkNTMyYjApLAotICAgICAgICAgVE9CTigweGNmZWQz
OTBhLCAweDAxMTVhM2MxKSwgVE9CTigweDk0MTRjNDBiLCAweDJkNjVjYTBlKSwKLSAgICAgICAg
IFRPQk4oMHg2NDE0MDZiZCwgMHgyZjUzMGM3OCksIFRPQk4oMHgyOTM2OWE0NCwgMHg4MzM0Mzhm
MiksCi0gICAgICAgICBUT0JOKDB4OTk2ODg0ZjUsIDB4OTAzZmEyNzEpLCBUT0JOKDB4ZTZkYTBm
ZDIsIDB4YjlkYTkyMWUpLAotICAgICAgICAgVE9CTigweGE2ZjJmMjY5LCAweDVkYjAxZTU0KSwg
VE9CTigweDFlZTNlOWJkLCAweDY4NzYyMTRlKSwKLSAgICAgICAgIFRPQk4oMHhhMjZlMTgxYywg
MHhlMjdhOTQ5NyksIFRPQk4oMHgzNmQyNTRlNCwgMHg4ZTIxNWUwNCksCi0gICAgICAgICBUT0JO
KDB4NDJmMzJhNmMsIDB4MjUyY2FiY2EpLCBUT0JOKDB4OTk0ODE0ODcsIDB4ODBiNTc2MTQpLAot
ICAgICAgICAgVE9CTigweDRjNGRmZTY5LCAweDQwZDljYWUxKSwgVE9CTigweDA1ODY5NTgwLCAw
eDExYTEwZjA5KSwKLSAgICAgICAgIFRPQk4oMHhjYTI4N2I1NywgMHgzNDkxYjY0YiksIFRPQk4o
MHg3Nzg2MmQ1ZCwgMHgzZmQ0YTUzYiksCi0gICAgICAgICBUT0JOKDB4YmY5NDg1NmUsIDB4NTAz
NDkxMjYpLCBUT0JOKDB4MmJlMzBiZDEsIDB4NzFjNTI2OGYpLAotICAgICAgICAgVE9CTigweDEw
MzkzZjE5LCAweGNiYjY1MGE2KSwgVE9CTigweDYzOTUzMWZlLCAweDc3OGNmOWZkKSwKLSAgICAg
ICAgIFRPQk4oMHgwMjU1NmExMSwgMHhiMjkzNTM1OSksIFRPQk4oMHhkYTM4YWE5NiwgMHhhZjhj
MTI2ZSksCi0gICAgICAgICBUT0JOKDB4NDdkYmU2YzIsIDB4MDk2MDE2N2YpLCBUT0JOKDB4Mzdi
YmFiYjYsIDB4NTAxOTAxY2QpLAotICAgICAgICAgVE9CTigweGI2ZTk3OWUwLCAweDJjOTQ3Nzc4
KSwgVE9CTigweGQ2OWE1MTc1LCAweDdhMWExZGM2KSwKLSAgICAgICAgIFRPQk4oMHhjM2VkNTA5
NSwgMHg5ZDlmYWYwYyksIFRPQk4oMHg0ZGQ5YzA5NiwgMHgxZDVmYTVmMCksCi0gICAgICAgICBU
T0JOKDB4YTBjNDMwNGQsIDB4NjRmMTZlYTgpLCBUT0JOKDB4OGIxY2FjMTYsIDB4N2U3MTg2MjMp
LAotICAgICAgICAgVE9CTigweDBiNTc2NTQ2LCAweDdjNjdmMDNlKSwgVE9CTigweDU1OWNmNWFk
LCAweGNiZDg4YzAxKSwKLSAgICAgICAgIFRPQk4oMHgwNzQ4NzdiYiwgMHgwZTJhZjE5YSksIFRP
Qk4oMHgxZjcxN2VjMSwgMHhhMTIyOGM5MiksCi0gICAgICAgICBUT0JOKDB4NzBiY2I4MDAsIDB4
MzI2ZTg5MjApLCBUT0JOKDB4ZWM2ZTJjNWMsIDB4NGYzMTI4MDQpLAotICAgICAgICAgVE9CTigw
eDQyNmFlYTdkLCAweDNmY2E0NzUyKSwgVE9CTigweGYxMmMwOTQ5LCAweDIyMTFmNjJhKSwKLSAg
ICAgICAgIFRPQk4oMHgyNGJlZWNkOCwgMHg3YmU3YjZiNSksIFRPQk4oMHhiNzdlYWY0YywgMHgz
NmQ3YTI3ZCksCi0gICAgICAgICBUT0JOKDB4MTU0YzI3ODEsIDB4ZmRhNzhmZDMpLCBUT0JOKDB4
ODQ4YTgzYjAsIDB4MjY0ZWVhYmUpLAotICAgICAgICAgVE9CTigweDgxMjg3ZWYwLCAweDRmZmUy
YmM0KSwgVE9CTigweDdiNmQ4OGM2LCAweGI2YjZmYzJhKSwKLSAgICAgICAgIFRPQk4oMHg4MDVm
Yjk0NywgMHhjZTQxN2Q5OSksIFRPQk4oMHg0YjkzZGNjMywgMHg4YjkxNmNjNCksCi0gICAgICAg
ICBUT0JOKDB4NzJlNjViYjMsIDB4MjEyNzMzMjMpLCBUT0JOKDB4YmNjMWJhZGQsIDB4NmVhOTg4
NmUpLAotICAgICAgICAgVE9CTigweDBlMjIzMDExLCAweDRiYzVlZTg1KSwgVE9CTigweGE1NjFi
ZTc0LCAweGMxOGVlMWU0KSwKLSAgICAgICAgIFRPQk4oMHg3NjJmZDJkNCwgMHhhNmJjZjFmMSks
IFRPQk4oMHg1MGU2YTVhNCwgMHg5NTIzMTQ4OSksCi0gICAgICAgICBUT0JOKDB4Y2E5NjAwMWYs
IDB4YTAwYjUwMGIpLCBUT0JOKDB4NWMwOThjZmMsIDB4NWQ3ZGNkZjUpLAotICAgICAgICAgVE9C
TigweGE2NGUyZDJlLCAweDhjNDQ2YTg1KSwgVE9CTigweGJhZTliY2YxLCAweDk3MWYzYzYyKSwK
LSAgICAgICAgIFRPQk4oMHg0ZWMyMjY4MywgMHg4NDM1YTJjNSksIFRPQk4oMHg4Y2VhZWQ2Yywg
MHg0YmFkNDY0MyksCi0gICAgICAgICBUT0JOKDB4ZTlmOGZiNDcsIDB4Y2NjY2Y0ZTMpLCBUT0JO
KDB4YmQ0ZjNmYTQsIDB4MWNlM2IyMWUpLAotICAgICAgICAgVE9CTigweGQ3OWZiMTEwLCAweGEz
ZGIzMjkyKSwgVE9CTigweGUyOGEzN2RhLCAweGI1MzZjNjZhKSwKLSAgICAgICAgIFRPQk4oMHgy
NzljZTg3YiwgMHg4ZTQ5ZTZhOSksIFRPQk4oMHg3MGNjZmU4ZCwgMHhmZGNlYzhlMyksCi0gICAg
ICAgICBUT0JOKDB4MjE5M2U0ZTAsIDB4M2JhNDY0YjIpLCBUT0JOKDB4MGYzOWQ2MGUsIDB4YWNh
OWEzOTgpLAotICAgICAgICAgVE9CTigweDdkNzkzMmFmLCAweGY4MmMxMmFiKSwgVE9CTigweGQ4
ZmY1MGVkLCAweDkxZTdlMGY3KSwKLSAgICAgICAgIFRPQk4oMHhlYTk2MTA1OCwgMHhmYTI4YTdl
MCksIFRPQk4oMHhjNzI2Y2YyNSwgMHgwYmY1ZWM3NCksCi0gICAgICAgICBUT0JOKDB4ZTc0ZDU1
YzgsIDB4ZGIyMjk2NjYpLCBUT0JOKDB4MGJkOWFiYmYsIDB4YTU3ZjU3OTkpLAotICAgICAgICAg
VE9CTigweDc0NzllZjA3LCAweDRkZmM0N2IzKSwgVE9CTigweGQ5YzY1ZmMzLCAweDBjNTJmOTFk
KSwKLSAgICAgICAgIFRPQk4oMHg4ZTAyODNmZSwgMHgzNmE4YmRlMiksIFRPQk4oMHhhMzJhOGI1
ZSwgMHg3ZDRiNzI4MCksCi0gICAgICAgICBUT0JOKDB4NmE2NzdjNjEsIDB4MTJlODMyMzMpLCBU
T0JOKDB4MGZiYjM1MTIsIDB4ZGNjOWJmMjgpLAotICAgICAgICAgVE9CTigweDU2MmU4ZWE1LCAw
eDBkNzgwZjYxKSwgVE9CTigweDBkYjhiMjJiLCAweDFkYzRlODljKSwKLSAgICAgICAgIFRPQk4o
MHgwYTZmZDFmYiwgMHg4OWJlMDE0NCksIFRPQk4oMHg4Yzc3ZDI0NiwgMHhjYTU3MTEzYiksCi0g
ICAgICAgICBUT0JOKDB4NDYzOTA3NWQsIDB4ZmYwOWM5MWMpLCBUT0JOKDB4NWI0N2IxN2YsIDB4
NTA2MDgyNGMpLAotICAgICAgICAgVE9CTigweDU4YWVhMmIwLCAweDE2Mjg3YjUyKSwgVE9CTigw
eGExMzQzNTIwLCAweGQwY2Q4ZWIwKSwKLSAgICAgICAgIFRPQk4oMHg2MTQ4YjRkMCwgMHhjNWQ1
ODU3MyksIFRPQk4oMHhkZDJiNjE3MCwgMHgyOTFjNjhhZSksCi0gICAgICAgICBUT0JOKDB4YTYx
YjM5MjksIDB4MWRhM2IzYjcpLCBUT0JOKDB4NWY5NDZkNzksIDB4MDhjNGFjMTApLAotICAgICAg
ICAgVE9CTigweDQxMDVkNGE1LCAweDcyMTdkNTgzKSwgVE9CTigweDUwNjFkYTNkLCAweDI1ZTZk
ZTVlKSwKLSAgICAgICAgIFRPQk4oMHgzMTEzOTQwZCwgMHhlYzFiNDk5MSksIFRPQk4oMHhmMTIx
OTVlMSwgMHgzNmY0ODVhZSksCi0gICAgICAgICBUT0JOKDB4YTc1MDdmYjIsIDB4NzMxYTJlZTAp
LCBUT0JOKDB4OTUwNTdhOGUsIDB4NmU5ZTE5NmUpLAotICAgICAgICAgVE9CTigweGEzYzJjOTEx
LCAweDJlMTMwMTM2KSwgVE9CTigweDk3ZGZiYjM2LCAweDMzYzYwZDE1KSwKLSAgICAgICAgIFRP
Qk4oMHhjYWYzYzU4MSwgMHhiMzAwZWUyYiksIFRPQk4oMHg3N2YyNWQ5MCwgMHhmNGJhYzhiOCks
Ci0gICAgICAgICBUT0JOKDB4ZGIxYzRmOTgsIDB4NmQ4NDBjZDYpLCBUT0JOKDB4NDcxZDYyYzAs
IDB4ZTYzNDI4OGMpLAotICAgICAgICAgVE9CTigweDhlYzJmODVlLCAweGNlYzhhMTYxKSwgVE9C
TigweDQxZjM3Y2JjLCAweGZhNmY0YWUyKSwKLSAgICAgICAgIFRPQk4oMHg2NzkzYTIwZiwgMHg0
YjcwOTk4NSksIFRPQk4oMHg3YTdiZDMzYiwgMHhlZmE4OTg1YiksCi0gICAgICAgICBUT0JOKDB4
MmM2YTNmYmQsIDB4OTM4ZTY0NDYpLCBUT0JOKDB4MTkwNDI2MTksIDB4MmE4ZDQ3YzEpLAotICAg
ICAgICAgVE9CTigweDE2ODQ4NjY3LCAweGNjMzY5NzVmKSwgVE9CTigweDAyYWNmMTY4LCAweDlk
NWYxZGZiKSwKLSAgICAgICAgIFRPQk4oMHg2MmQ0MWFkNCwgMHg2MTNiYWE5NCksIFRPQk4oMHhi
NTZmYmI5MiwgMHg5ZjY4NDY3MCksCi0gICAgICAgICBUT0JOKDB4Y2U2MTBkMGQsIDB4ZTllNDA1
NjkpLCBUT0JOKDB4N2I5OWM2NWYsIDB4MzU0ODlmZWYpLAotICAgICAgICAgVE9CTigweDBjODhh
ZDFiLCAweDNkZjE4Yjk3KSwgVE9CTigweDgxYjdkOWJlLCAweDVkMGU5ZWRiKSwKLSAgICAgICAg
IFRPQk4oMHhkODUyMThjMCwgMHhjNzE2Y2MwYSksIFRPQk4oMHhmNGI1ZmY5MCwgMHg4NTY5MWM0
OSksCi0gICAgICAgICBUT0JOKDB4YTRmZDY2NmIsIDB4Y2UzNTZhYzYpLCBUT0JOKDB4MTdjNzI4
OTUsIDB4NGIzMjdhN2EpLAotICAgICAgICAgVE9CTigweGY5M2Q1MDg1LCAweGRhNmJlN2RlKSwg
VE9CTigweGZmNzE1MzBlLCAweDMzMDFkMzRlKSwKLSAgICAgICAgIFRPQk4oMHg0Y2Q5NjQ0Miwg
MHhkOGY0NDhlOCksIFRPQk4oMHg5MjgzZDMzMSwgMHgyZWQxOGZmYSksCi0gICAgICAgICBUT0JO
KDB4NGQzM2RkOTksIDB4MmE4NDk4NzApLCBUT0JOKDB4YTcxNjk2NGIsIDB4NDE1NzYzMzUpLAot
ICAgICAgICAgVE9CTigweGZmNWUzYTliLCAweDE3OWJlMGU1KSwgVE9CTigweDViOWQ2YjFiLCAw
eDgzYjEzNjMyKSwKLSAgICAgICAgIFRPQk4oMHgzYjhiZDdkNCwgMHhhNTJmMzEzYiksIFRPQk4o
MHhjOWRkOTVhMCwgMHg2MzdhNDY2MCksCi0gICAgICAgICBUT0JOKDB4MzAwMzU5NjIsIDB4MGIz
ZTIxOGYpLCBUT0JOKDB4Y2UxNDgxYTMsIDB4YzdiMjhhM2MpLAotICAgICAgICAgVE9CTigweGFi
NDFiNDNhLCAweDQzMjI4ZDgzKSwgVE9CTigweDI0YWUxYzMwLCAweDRhZDYzZjk5KSwKLSAgICAg
ICAgIFRPQk4oMHg4ZTUyNWYxYSwgMHg0NmE1MTIyOSksIFRPQk4oMHgxNGFmODYwZiwgMHhjZDI2
ZDJiNCksCi0gICAgICAgICBUT0JOKDB4ZDZiYWVmNjEsIDB4M2Y3MTRhYTEpLCBUT0JOKDB4ZjUx
ODY1YWQsIDB4ZWI3ODc5NWUpLAotICAgICAgICAgVE9CTigweGQzZTIxZmNlLCAweGU2YTlkNjk0
KSwgVE9CTigweDgyY2ViMWRkLCAweDhhMzdiNTI3KX19Oworc3RhdGljIGNvbnN0IGFsaWduYXMo
NDA5NikgUFJFQ09NUDI1Nl9ST1cgZWNwX25pc3R6MjU2X3ByZWNvbXB1dGVkWzM3XSA9IHsKKyAg
ICAgICAge3t7VE9CTigweDc5ZTczMGQ0LCAweDE4YTkxNDNjKSwgVE9CTigweDc1YmE5NWZjLCAw
eDVmZWRiNjAxKSwKKyAgICAgICAgICAgVE9CTigweDc5ZmI3MzJiLCAweDc3NjIyNTEwKSwgVE9C
TigweDE4OTA1Zjc2LCAweGE1Mzc1NWM2KX0sCisgICAgICAgICAge1RPQk4oMHhkZGYyNTM1Nywg
MHhjZTk1NTYwYSksIFRPQk4oMHg4YjRhYjhlNCwgMHhiYTE5ZTQ1YyksCisgICAgICAgICAgIFRP
Qk4oMHhkMmU4ODY4OCwgMHhkZDIxZjMyNSksIFRPQk4oMHg4NTcxZmYxOCwgMHgyNTg4NWQ4NSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDg1MDA0NmQ0LCAweDEwZGRkNjRkKSwgVE9CTigweGFhNmFl
M2MxLCAweGE0MzM4MjdkKSwKKyAgICAgICAgICAgVE9CTigweDczMjIwNTAzLCAweDhkMTQ5MGQ5
KSwgVE9CTigweGY2YmIzMmU0LCAweDNkY2YzYTNiKX0sCisgICAgICAgICAge1RPQk4oMHgyZjM2
NDhkMywgMHg2MWJlZTFhNSksIFRPQk4oMHgxNTJjZDdjYiwgMHhlYjIzNmZmOCksCisgICAgICAg
ICAgIFRPQk4oMHgxOWE4ZmIwZSwgMHg5MjA0MmRiZSksIFRPQk4oMHg3OGM1Nzc1MSwgMHgwYTVi
OGEzYil9fSwKKyAgICAgICAgIHt7VE9CTigweGZmYWMzZjkwLCAweDRlZWJjMTI3KSwgVE9CTigw
eGIwMjdmODRhLCAweDA4N2Q4MWZiKSwKKyAgICAgICAgICAgVE9CTigweDY2YWQ3N2RkLCAweDg3
Y2JiYzk4KSwgVE9CTigweDI2OTM2YTNmLCAweGI2ZmY3NDdlKX0sCisgICAgICAgICAge1RPQk4o
MHhiMDRjNWMxZiwgMHhjOTgzYTdlYiksIFRPQk4oMHg1ODNlNDdhZCwgMHgwODYxZmUxYSksCisg
ICAgICAgICAgIFRPQk4oMHg3ODgyMDgzMSwgMHgxYTJlZTk4ZSksIFRPQk4oMHhkNWYwNmEyOSwg
MHhlNTg3Y2MwNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDc0YjBiNTBkLCAweDQ2OTE4ZGNjKSwg
VE9CTigweDQ2NTBhNmVkLCAweGM2MjNjMTczKSwKKyAgICAgICAgICAgVE9CTigweDBjZGFhY2Fj
LCAweGU4MTAwYWYyKSwgVE9CTigweDU3NzM2MmY1LCAweDQxYjAxNzZiKX0sCisgICAgICAgICAg
e1RPQk4oMHgyZDk2ZjI0YywgMHhlNGNiYWJhNiksIFRPQk4oMHgxNzYyODQ3MSwgMHhmYWQ2ZjQ0
NyksCisgICAgICAgICAgIFRPQk4oMHg2YjZjMzZkZSwgMHhlNWRkZDIyZSksIFRPQk4oMHg4NGIx
NGMzOSwgMHg0YzVhYjg2Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGJlMWI4YWFlLCAweGM0NWM2
MWY1KSwgVE9CTigweDkwZWM2NDlhLCAweDk0Yjk1MzdkKSwKKyAgICAgICAgICAgVE9CTigweDk0
MWNiNWFhLCAweGQwNzZjMjBjKSwgVE9CTigweGM5MDc5NjA1LCAweDg5MDUyM2M4KX0sCisgICAg
ICAgICAge1RPQk4oMHhlYjMwOWI0YSwgMHhlN2JhNGYxMCksIFRPQk4oMHg3M2M1NjhlZiwgMHhl
NWViODgyYiksCisgICAgICAgICAgIFRPQk4oMHgzNTQwYTk4NywgMHg3ZTdhMWY2OCksIFRPQk4o
MHg3M2EwNzZiYiwgMHgyZGQxZTkxNil9fSwKKyAgICAgICAgIHt7VE9CTigweDQwMzk0NzM3LCAw
eDNlNzc2NjRhKSwgVE9CTigweDU1YWU3NDRmLCAweDM0NmNlZTNlKSwKKyAgICAgICAgICAgVE9C
TigweGQ1MGE5NjFhLCAweDViMTdhM2FkKSwgVE9CTigweDEzMDc0YjU5LCAweDU0MjEzNjczKX0s
CisgICAgICAgICAge1RPQk4oMHg5M2QzNjIyMCwgMHhkMzc3ZTQ0YiksIFRPQk4oMHgyOTljMmI1
MywgMHhhZGZmMTRiNSksCisgICAgICAgICAgIFRPQk4oMHhmNDI0ZDQ0YywgMHhlZjYzOWYxMSks
IFRPQk4oMHhhNGM5OTE2ZCwgMHg0YTA3Zjc1Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDA3NDYz
NTRlLCAweGEwMTczYjRmKSwgVE9CTigweDJiZDIwMjEzLCAweGQyM2MwMGY3KSwKKyAgICAgICAg
ICAgVE9CTigweGY0M2VhYWI1LCAweDBjMjNiYjA4KSwgVE9CTigweDEzYmE1MTE5LCAweGMzMTIz
ZTAzKX0sCisgICAgICAgICAge1RPQk4oMHgyODQ3ZDAzMCwgMHgzZjViOWQ0ZCksIFRPQk4oMHg2
NzQyZjJmMiwgMHg1ZGE2N2JkZCksCisgICAgICAgICAgIFRPQk4oMHhlZjkzM2JkYywgMHg3N2M5
NDE5NSksIFRPQk4oMHhlYWVkZDkxNSwgMHg2ZTI0MDg2Nyl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDI3ZjE0Y2QxLCAweDk0OTlhNzhmKSwgVE9CTigweDQ2MmFiNWM1LCAweDZmOWIzNDU1KSwKKyAg
ICAgICAgICAgVE9CTigweDhmOTBmMDJhLCAweGYwMmNmYzZiKSwgVE9CTigweGI3NjM4OTFlLCAw
eGIyNjUyMzBkKX0sCisgICAgICAgICAge1RPQk4oMHhmNTlkYTNhOSwgMHg1MzJkNDk3NyksIFRP
Qk4oMHgyMWUzMzI3ZCwgMHhjZjllYmExNSksCisgICAgICAgICAgIFRPQk4oMHgxMjNjN2I4NCwg
MHhiZTYwYmJmMCksIFRPQk4oMHg1NmVjMTJmMiwgMHg3NzA2ZGY3Nil9fSwKKyAgICAgICAgIHt7
VE9CTigweDc1Yzk2ZThmLCAweDI2NGUyMGU4KSwgVE9CTigweGFiZTZiZmVkLCAweDU5YTdhODQx
KSwKKyAgICAgICAgICAgVE9CTigweDJjYzA5YzA0LCAweDQ0YzhlYjAwKSwgVE9CTigweGUwNWIz
MDgwLCAweGYwYzRlMTZiKX0sCisgICAgICAgICAge1RPQk4oMHgxZWI3Nzc3YSwgMHhhNDVmMzMx
NCksIFRPQk4oMHg1NmFmN2JlZCwgMHhjZTVkNDVlMyksCisgICAgICAgICAgIFRPQk4oMHgyYjZl
MDE5YSwgMHg4OGIxMmYxYSksIFRPQk4oMHgwODY2NTljZCwgMHhmZDgzNWY5Yil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDJjMThkYmQxLCAweDlkYzIxZWM4KSwgVE9CTigweDk4Zjk4NjhhLCAweDBm
Y2Y4MTM5KSwKKyAgICAgICAgICAgVE9CTigweDczN2QyY2Q2LCAweDQ4MjUwYjQ5KSwgVE9CTigw
eGNjNjFjOTQ3LCAweDI0YjM0MjhmKX0sCisgICAgICAgICAge1RPQk4oMHgwYzJiNDA3OCwgMHg4
MGRkOWU3NiksIFRPQk4oMHhjNDNhODk5MSwgMHgzODNmYmUwOCksCisgICAgICAgICAgIFRPQk4o
MHg1ZjdkMmQ2NSwgMHg3NzliZTVkMiksIFRPQk4oMHg3ODcxOWE1NCwgMHhlYjNiNGFiNSl9fSwK
KyAgICAgICAgIHt7VE9CTigweGVhN2QyNjBhLCAweDYyNDVlNDA0KSwgVE9CTigweDlkZTQwNzk1
LCAweDZlN2ZkZmUwKSwKKyAgICAgICAgICAgVE9CTigweDFmZjNhNDE1LCAweDhkYWMxYWI1KSwg
VE9CTigweDNlNzA5MGYxLCAweDY0OWM5MDczKX0sCisgICAgICAgICAge1RPQk4oMHgxYTc2ODU2
MSwgMHgyYjk0NGU4OCksIFRPQk4oMHgyNTBmOTM5ZSwgMHhlNTdmNjFjOCksCisgICAgICAgICAg
IFRPQk4oMHgwYzBkYWE4OSwgMHgxZWFkNjQzZCksIFRPQk4oMHg2ODkzMDAyMywgMHhlMTI1Yjg4
ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDA0YjcxYWE3LCAweGQyNjk3NzY4KSwgVE9CTigweGFi
ZGVkZWY1LCAweGNhMzQ1YTMzKSwKKyAgICAgICAgICAgVE9CTigweDI0MDlkMjlkLCAweGVlMzcz
ODVlKSwgVE9CTigweDRlZTFkZjc3LCAweGNiODNlMTU2KX0sCisgICAgICAgICAge1RPQk4oMHgw
Y2FjMTJkOSwgMHgxY2JiNWI0MyksIFRPQk4oMHgxNzBlZDJmNiwgMHhjYTg5NTYzNyksCisgICAg
ICAgICAgIFRPQk4oMHgyODIyOGNmYSwgMHg4YWRlNmQ2NiksIFRPQk4oMHg3ZmY1N2M5NSwgMHg1
MzIzOGFjYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGNjYzQyNTYzLCAweDRiMmVkNzA5KSwgVE9C
TigweDBlMzU2NzY5LCAweDg1NmZkMzBkKSwKKyAgICAgICAgICAgVE9CTigweGJjYmNkNDNmLCAw
eDU1OWU5ODExKSwgVE9CTigweDczODQ3N2FjLCAweDUzOTViNzU5KX0sCisgICAgICAgICAge1RP
Qk4oMHgzNTc1MmI5MCwgMHhjMDBlZTE3ZiksIFRPQk4oMHg2ODc0ODM5MCwgMHg3NDJlZDJlMyks
CisgICAgICAgICAgIFRPQk4oMHg3Y2QwNjQyMiwgMHhiZDFmNWJjMSksIFRPQk4oMHhmYmMwODc2
OSwgMHhjOWU3Yjc5Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweGEyNDJhMzViLCAweGIwY2Y2NjRh
KSwgVE9CTigweDEyNmU0OGY3LCAweDdmOTcwN2UzKSwKKyAgICAgICAgICAgVE9CTigweDE3MTdi
ZjU0LCAweGM2ODMyNjYwKSwgVE9CTigweGZhYWU3MzMyLCAweGZkMTJjNzJlKX0sCisgICAgICAg
ICAge1RPQk4oMHgyN2I1MmRiNywgMHg5OTVkNTg2YiksIFRPQk4oMHhiZTI5NTY5ZSwgMHg4MzIy
MzdjMiksCisgICAgICAgICAgIFRPQk4oMHhlOGU0MTkzZSwgMHgyYTY1ZTdkYiksIFRPQk4oMHgx
NTI3MDZkYywgMHgyZWFhMWJiYil9fSwKKyAgICAgICAgIHt7VE9CTigweDcyYmNkOGI3LCAweGJj
NjAwNTViKSwgVE9CTigweDAzY2MyM2VlLCAweDU2ZTI3ZTRiKSwKKyAgICAgICAgICAgVE9CTigw
eGVlMzM3NDI0LCAweGU0ODE5MzcwKSwgVE9CTigweGUyYWEwZTQzLCAweDBhZDNkYTA5KX0sCisg
ICAgICAgICAge1RPQk4oMHg0MGI4NTI0ZiwgMHg2MzgzYzQ1ZCksIFRPQk4oMHhkNzY2MzU1NCwg
MHg0MmE0MWIyNSksCisgICAgICAgICAgIFRPQk4oMHg2NGVmYTZkZSwgMHg3NzhhNDc5NyksIFRP
Qk4oMHgyMDQyMTcwYSwgMHg3MDc5YWRmNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDgwOGIwYjY1
LCAweDBiYzZmYjgwKSwgVE9CTigweDU4ODJlMDc1LCAweDNmZmUyZTZiKSwKKyAgICAgICAgICAg
VE9CTigweGQ1ZWYyZjdjLCAweDJjODNmNTQ5KSwgVE9CTigweDU0ZDYzYzgwLCAweDkxMDNiNzIz
KX0sCisgICAgICAgICAge1RPQk4oMHhmMmYxMWJkNiwgMHg1MmEyM2Y5YiksIFRPQk4oMHgzNjcw
YzMxOSwgMHg0YjBiNjU4NyksCisgICAgICAgICAgIFRPQk4oMHg1NWM0NjIzYiwgMHhiMTU4MGU5
ZSksIFRPQk4oMHg2NGVkZjdiMiwgMHgwMWVmZTIyMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk3
MDkxZGNiLCAweGQ1M2M1YzlkKSwgVE9CTigweGYxNzYyNGI2LCAweGFjMGExNzdiKSwKKyAgICAg
ICAgICAgVE9CTigweGIwZjEzOTc1LCAweDJjZmUyZGZmKSwgVE9CTigweGMxYTM1YzBhLCAweDZj
N2E1NzRlKX0sCisgICAgICAgICAge1RPQk4oMHgyMjdkMzE0NiwgMHg5M2U3OTk4NyksIFRPQk4o
MHgwNTc1YmYzMCwgMHhlODljYjgwZSksCisgICAgICAgICAgIFRPQk4oMHgyZjRlMjQ3ZiwgMHgw
ZDE4ODNiYiksIFRPQk4oMHhlYmQ1MTIyNiwgMHgzMjc0YzNkMCl9fSwKKyAgICAgICAgIHt7VE9C
TigweDVmM2U1MWM4LCAweDU2YWRhOTdhKSwgVE9CTigweDRhZmM5NjRkLCAweDhmOGI0MDNlKSwK
KyAgICAgICAgICAgVE9CTigweGE2ZjI0N2FiLCAweDQxMmUyOTc5KSwgVE9CTigweDY3NWFiZDFi
LCAweDZmODBlYmRhKX0sCisgICAgICAgICAge1RPQk4oMHg2NmEyYmQ3MiwgMHg1ZTQ4NWExZCks
IFRPQk4oMHg0YjJhNWNhZiwgMHg4ZjRmMGIzYyksCisgICAgICAgICAgIFRPQk4oMHgyNjI2OTI3
ZiwgMHgxYjg0N2JiYSksIFRPQk4oMHg2YzZmYzdkOSwgMHgwNTAyMzk0ZCl9fSwKKyAgICAgICAg
IHt7VE9CTigweGZlYTkxMmJhLCAweGE1NjU5YWU4KSwgVE9CTigweDY4MzYzYWJhLCAweDI1ZTFh
MTZlKSwKKyAgICAgICAgICAgVE9CTigweGI4ODQyMjc3LCAweDc1MmM0MWFjKSwgVE9CTigweGZl
NTQ1YzI4LCAweDI4OTdjM2ZjKX0sCisgICAgICAgICAge1RPQk4oMHgyZDM2ZTllNywgMHhkYzRj
Njk2YiksIFRPQk4oMHg1ODA2MjQ0YSwgMHhmYmE5NzdjNSksCisgICAgICAgICAgIFRPQk4oMHg4
NTY2NWU5YiwgMHhlMzk1MDhjMSksIFRPQk4oMHhmNzIwZWUyNSwgMHg2ZDEyNTk3Yil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDhhOTc5MTI5LCAweGQyMzM3YTMxKSwgVE9CTigweDU5MTY4NjhmLCAw
eDBmODYyYmRjKSwKKyAgICAgICAgICAgVE9CTigweDA0ODA5OWQ5LCAweDVkZDI4M2JhKSwgVE9C
TigweGUyZDFlZWI2LCAweGZlNWJmYjRlKX0sCisgICAgICAgICAge1RPQk4oMHg4MmVmMWM0MSwg
MHg3ODg0MDA1ZCksIFRPQk4oMHhhMmQ0ZWMxNywgMHhmZmZmY2JhZSksCisgICAgICAgICAgIFRP
Qk4oMHg5MTYxYzUzZiwgMHg4YWE5NWU2NiksIFRPQk4oMHg1ZWUxMDRlMSwgMHhjNWZlZTBkMCl9
fSwKKyAgICAgICAgIHt7VE9CTigweDU2MmU0Y2VjLCAweGMxMzViMjA4KSwgVE9CTigweDc0ZTFi
MjY1LCAweDQ3ODNmNDdkKSwKKyAgICAgICAgICAgVE9CTigweDZkMmE1MDZjLCAweDVhM2YzYjMw
KSwgVE9CTigweGVjZWFkOWY0LCAweGMxNjc2MmZjKX0sCisgICAgICAgICAge1RPQk4oMHhmMjlk
ZDRiMiwgMHhlMjg2ZTViOSksIFRPQk4oMHgxYjBmYWRjMCwgMHg4M2JiM2M2MSksCisgICAgICAg
ICAgIFRPQk4oMHg3YTc1MDIzZSwgMHg3ZmFjMjlhNCksIFRPQk4oMHhjMDg2ZDVmMSwgMHhjOTQ3
N2ZhMyl9fSwKKyAgICAgICAgIHt7VE9CTigweDBmYzYxMTM1LCAweDJmNmYzMDc2KSwgVE9CTigw
eGM5OWZmYTIzLCAweGUzOTEyYTlhKSwKKyAgICAgICAgICAgVE9CTigweDZhMGIwNjg1LCAweGQy
ZjhiYTNkKSwgVE9CTigweGZkYzc3N2U4LCAweGU5MzM1OGE0KX0sCisgICAgICAgICAge1RPQk4o
MHg5NGE3ODdiYiwgMHgzNTQxNWYwNCksIFRPQk4oMHg2NDBjMmQ2YSwgMHg0ZDIzZmVhNCksCisg
ICAgICAgICAgIFRPQk4oMHg5ZGU5MTdkYSwgMHgxNTNhMzViNSksIFRPQk4oMHg3OTNlOGQwNywg
MHg1ZDVjZDA3NCl9fSwKKyAgICAgICAgIHt7VE9CTigweGY0Zjg3NjUzLCAweDJkZTQ1MDY4KSwg
VE9CTigweDM3YzdhN2U4LCAweDllMmUxZjZlKSwKKyAgICAgICAgICAgVE9CTigweGQwODI1ZmEy
LCAweGEzNTg0MDY5KSwgVE9CTigweGFmMmNlYTdjLCAweDE3MjdiZjQyKX0sCisgICAgICAgICAg
e1RPQk4oMHgwMzYwYTRmYiwgMHg5ZTQ3ODVhOSksIFRPQk4oMHhlNWZkYTQ5YywgMHgyNzI5OWY0
YSksCisgICAgICAgICAgIFRPQk4oMHg0ODA2OGUxMywgMHg3MWFjMmY3MSksIFRPQk4oMHg4M2Qw
Njg3YiwgMHg5MDc3NjY2Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDZkMzg4M2IyLCAweDE1ZDAy
ODE5KSwgVE9CTigweDZkMGQ3NTUwLCAweDQwZGQ5YTM1KSwKKyAgICAgICAgICAgVE9CTigweDYx
ZDdjYmY5LCAweDFkMmI0NjlmKSwgVE9CTigweGY5N2IyMzJmLCAweDJlZmMzMTE1KX0sCisgICAg
ICAgICAge1RPQk4oMHhhNTUxZDc1MCwgMHhiMjRiY2JjNyksIFRPQk4oMHgxMWVhNDk0OSwgMHg4
OGExZTM1NiksCisgICAgICAgICAgIFRPQk4oMHg3NjY5ZjAzMSwgMHg5M2NiNzUwMSksIFRPQk4o
MHg1OTVkYzU1ZSwgMHhjYTczN2I4YSl9fSwKKyAgICAgICAgIHt7VE9CTigweGE0YTMxOWFjLCAw
eGQ4Mzc4NzlmKSwgVE9CTigweDZmYzFiNDllLCAweGVkNmI2N2IwKSwKKyAgICAgICAgICAgVE9C
TigweGUzOTU5OTMzLCAweDMyZjFmM2FmKSwgVE9CTigweDk2Njc0MmViLCAweDY1NDMyYTJlKX0s
CisgICAgICAgICAge1RPQk4oMHg0YjhkYzlmZSwgMHhiNDk2NjIyOCksIFRPQk4oMHg5NmNjNjMx
MiwgMHg0M2Y0Mzk1MCksCisgICAgICAgICAgIFRPQk4oMHgxMjA2ODg1OSwgMHhjOWI3MzFlZSks
IFRPQk4oMHg3Yjk0OGRjMywgMHg1NmY3OTk2OCl9fSwKKyAgICAgICAgIHt7VE9CTigweDYxZTRh
ZDMyLCAweGVkMWY4MDA4KSwgVE9CTigweGU2YzkyNjdhLCAweGQ4YjE3NTM4KSwKKyAgICAgICAg
ICAgVE9CTigweDFhYzdjNWViLCAweDg1N2ZmNmZiKSwgVE9CTigweDk5NGJhYWE4LCAweDU1ZjJm
YjEwKX0sCisgICAgICAgICAge1RPQk4oMHg4NGNmMTRlMSwgMHgxZDI0ODAxOCksIFRPQk4oMHg1
YTM5ODk4YiwgMHg2MjhhYzUwOCksCisgICAgICAgICAgIFRPQk4oMHgxNGZkZTk3YiwgMHg1ZmE5
NDRmNSksIFRPQk4oMHhlZDE3ODAzMCwgMHhkMTJlNWFjNyl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDA0MmMyYWY0LCAweDk3ZTJmZWI0KSwgVE9CTigweGQzNmE0MmQ3LCAweGFlYmY3MzEzKSwKKyAg
ICAgICAgICAgVE9CTigweDQ5ZDJjOWViLCAweDA4NGZmZGQ3KSwgVE9CTigweDlmOGFhNTRiLCAw
eDJlZjdjNzZhKX0sCisgICAgICAgICAge1RPQk4oMHg5MjAwYjdiYSwgMHgwOTg5NWU3MCksIFRP
Qk4oMHgzYmQwYzY2ZiwgMHhkZGI3ZmI1OCksCisgICAgICAgICAgIFRPQk4oMHgyZDk3ZDEwOCwg
MHg3OGViNGNiYiksIFRPQk4oMHgyZDQzMTA2OCwgMHhkODRiZGUzMSl9fSwKKyAgICAgICAgIHt7
VE9CTigweDRiNTIzZWI3LCAweDE3MmNjZDFmKSwgVE9CTigweDczMjNjYjI4LCAweDMwYTZhODky
KSwKKyAgICAgICAgICAgVE9CTigweDk3MDgyZWMwLCAweGNmZTE1M2ViKSwgVE9CTigweGU5N2Y2
YjZhLCAweGYyYWFkYjk3KX0sCisgICAgICAgICAge1RPQk4oMHgxZDNkMzkzZSwgMHhkMWE4M2Rh
MSksIFRPQk4oMHhhNmE3ZjljNywgMHg4MDRiMmE2OCksCisgICAgICAgICAgIFRPQk4oMHg0YTY4
OGI0OCwgMHgyZDBjYjcxZSksIFRPQk4oMHhhOWI0Y2M1ZiwgMHg0MDU4NTI3OCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDVlNWRiNDZhLCAweGNiNjZlMTMyKSwgVE9CTigweGYxYmU5NjNhLCAweDBk
OTI1ODgwKSwKKyAgICAgICAgICAgVE9CTigweDk0NGE3MDI3LCAweDAzMTdiOWUyKSwgVE9CTigw
eGUyNjZmOTU5LCAweDQ4NjAzZDQ4KX0sCisgICAgICAgICAge1RPQk4oMHg5OGRiNjY3MywgMHg1
YzIwODg5OSksIFRPQk4oMHg5MDQ3MjQ0NywgMHhhMmZiMThhMyksCisgICAgICAgICAgIFRPQk4o
MHg4YTk2NjkzOSwgMHg3NzdjNjE5ZiksIFRPQk4oMHgzNzk4MTQyYSwgMHgyYTNiZTIxYil9fSwK
KyAgICAgICAgIHt7VE9CTigweGI0MjQxY2IxLCAweDMyOThiMzQzKSwgVE9CTigweGEzYTE0ZTQ5
LCAweGI0NGY2NWExKSwKKyAgICAgICAgICAgVE9CTigweGM1ZjRkNmNkLCAweDNhYzc3YWNkKSwg
VE9CTigweGQwMjg4Y2I1LCAweDUyYjZmYzNjKX0sCisgICAgICAgICAge1RPQk4oMHhkNWNjOGMy
ZiwgMHgxYzA0MGFiYyksIFRPQk4oMHhiNjc1NTExZSwgMHgwNmJmOWI0YSksCisgICAgICAgICAg
IFRPQk4oMHhkNjY3ZGEzNywgMHg5YjNhYTQ0MSksIFRPQk4oMHg0NjBkNDVjZSwgMHg1MTYwMWY3
Mil9fSwKKyAgICAgICAgIHt7VE9CTigweGUyZjczYzY5LCAweDY3NTVmZjg5KSwgVE9CTigweGRk
M2NmN2U3LCAweDQ3MzAxN2U2KSwKKyAgICAgICAgICAgVE9CTigweDhlZjU2ODlkLCAweDNjZjc2
MDBkKSwgVE9CTigweDk0OGRjNGY4LCAweGIxZmM4N2I0KX0sCisgICAgICAgICAge1RPQk4oMHhk
OWU5ZmU4MSwgMHg0ZWE1MzI5OSksIFRPQk4oMHgyZDkyMWNhMiwgMHg5OGViNjAyOCksCisgICAg
ICAgICAgIFRPQk4oMHhmYWVjZWRmZCwgMHgwYzk4MDNmYyksIFRPQk4oMHhmMzhhZTg5MSwgMHg0
ZDdiNDc0NSl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ4YzVmY2NmLCAweGM1ZTNhM2Q4KSwgVE9C
TigweGJlZmQ5MDRjLCAweDQwNzlkZmJmKSwKKyAgICAgICAgICAgVE9CTigweGJjNmQ2YTU4LCAw
eGZlYWQwMTk3KSwgVE9CTigweDM5MjI3MDc3LCAweDY5NTUzMmE0KX0sCisgICAgICAgICAge1RP
Qk4oMHgwOWUyM2U2ZCwgMHhkYmVmNDJmNSksIFRPQk4oMHg3ZTQ0OWI2NCwgMHg0ODBhOTkwOCks
CisgICAgICAgICAgIFRPQk4oMHg3Yjk2OWMxYSwgMHhhZDlhMmU0MCksIFRPQk4oMHg2MjMxZDc5
MiwgMHg5NTkxYzJhNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDg3MTUxNDU2LCAweDBmNjY0NTM0
KSwgVE9CTigweDg1Y2VhZTdjLCAweDRiNjhmMTAzKSwKKyAgICAgICAgICAgVE9CTigweGFjMDlj
NGFlLCAweDY1NTc4YWI5KSwgVE9CTigweDMzZWM2ODY4LCAweGYwNDRiMTBjKX0sCisgICAgICAg
ICAge1RPQk4oMHg2YWM0ODMyYiwgMHgzYThlYzFmMSksIFRPQk4oMHg1NTA5ZDEyOCwgMHg1ODQ3
ZDVlZiksCisgICAgICAgICAgIFRPQk4oMHhmOTA5NjA0ZiwgMHg3NjNmMTU3NCksIFRPQk4oMHhi
MTZjNDMwMywgMHhjMzJmNjNjNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGI2YWIyMDE0LCAweDdj
YTIzY2QzKSwgVE9CTigweGNhYTdhNWM2LCAweGEzOTE4NDlkKSwKKyAgICAgICAgICAgVE9CTigw
eDViMDY3M2EzLCAweDc1Njc4ZDk0KSwgVE9CTigweGM5ODJkZGQ0LCAweGRkMzAzZTY0KX0sCisg
ICAgICAgICAge1RPQk4oMHhmZDdiMDAwYiwgMHg1ZGI2Zjk3MSksIFRPQk4oMHhiYmEyY2IxZiwg
MHg2Zjg3NmY5MiksCisgICAgICAgICAgIFRPQk4oMHhjNzczMzJhMywgMHgzYzU2OTQyNiksIFRP
Qk4oMHhhMTU5MTAwYywgMHg1NzBkNzRmOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGZkMTY4NDdm
LCAweGRlYzY3ZWY1KSwgVE9CTigweDc0MmVlNDY0LCAweDIzM2U3NmI3KSwKKyAgICAgICAgICAg
VE9CTigweDBiOGU0MTM0LCAweGVmYzJiNGM4KSwgVE9CTigweGNhNjQwYjg2LCAweDQyYTNlNTIx
KX0sCisgICAgICAgICAge1RPQk4oMHg2NTNhMDE5MCwgMHg4Y2ViNmFhOSksIFRPQk4oMHgzMTNj
MzAwYywgMHg1NDc4NTJkNSksCisgICAgICAgICAgIFRPQk4oMHgyNGU0YWIxMiwgMHg2YjIzN2Fm
NyksIFRPQk4oMHgyYmE5MDE2MiwgMHg4YmI0N2FmOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDNk
NWU1OGQ2LCAweGE4MjE5YmI3KSwgVE9CTigweGM2OTFkMGJkLCAweDFiMDZjNTdmKSwKKyAgICAg
ICAgICAgVE9CTigweDBhZTRjYjEwLCAweGQyNTc1NzZlKSwgVE9CTigweDM1Njk2NTZjLCAweGQ1
NGEzZGMzKX0sCisgICAgICAgICAge1RPQk4oMHhlNWViYWViZCwgMHg5NGNkYTAzYSksIFRPQk4o
MHg5MzRlODJkMywgMHgxNjJiZmUxMyksCisgICAgICAgICAgIFRPQk4oMHg0NTBhYzBiYSwgMHhl
MjUxYTBjNiksIFRPQk4oMHg0ODBiOWUxMSwgMHhkZDZkYTUyNil9fSwKKyAgICAgICAgIHt7VE9C
TigweDAwNDY3YmM1LCAweDhjY2UwOGI1KSwgVE9CTigweGI2MzY0NThjLCAweDdmMTc4ZDU1KSwK
KyAgICAgICAgICAgVE9CTigweGM1NzQ4YmFlLCAweGE2NzdkODA2KSwgVE9CTigweDI3NjNhMzg3
LCAweGRmYTM5NGViKX0sCisgICAgICAgICAge1RPQk4oMHhhMTJiNDQ4YSwgMHg3ZDNjZWJiNiks
IFRPQk4oMHhlN2FkZGEzZSwgMHg2ZjIwZDg1MCksCisgICAgICAgICAgIFRPQk4oMHhmNjNlYmNl
NSwgMHgxNTU4NDYyYyksIFRPQk4oMHg1OGIzNjE0MywgMHg2MjAwODhhOCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDhhMmNjM2NhLCAweDRkNjNjMGVlKSwgVE9CTigweDUxMjMzMTE3LCAweDBmZTk0
OGNlKSwKKyAgICAgICAgICAgVE9CTigweDc0NjNmZDg1LCAweDIyMmVmMzNiKSwgVE9CTigweGFk
ZjBjN2RjLCAweDdjNjAzZDZjKX0sCisgICAgICAgICAge1RPQk4oMHgwZWMzMmQzYiwgMHhmZTc3
NjVlNSksIFRPQk4oMHhjY2FhYjM1OSwgMHhiZjM4MDQwOSksCisgICAgICAgICAgIFRPQk4oMHhi
ZGFhODRkNiwgMHg4ZTU5MzE5YyksIFRPQk4oMHhkOWE0YzI4MCwgMHg5YzgwYzM0ZCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGE5ZDg5NDg4LCAweGEwNTljMTQyKSwgVE9CTigweDZmNWFlNzE0LCAw
eGZmMGI5MzQ2KSwKKyAgICAgICAgICAgVE9CTigweDA2OGYyMzdkLCAweDE2ZmIzNjY0KSwgVE9C
TigweDU4NTNlNGM0LCAweDM2MzE4NmFjKX0sCisgICAgICAgICAge1RPQk4oMHhlMmQ4N2QyMywg
MHg2M2M1MmY5OCksIFRPQk4oMHgyZWM0YTc2NiwgMHg4MTgyODg3NiksCisgICAgICAgICAgIFRP
Qk4oMHg0N2I4NjRmYSwgMHhlMTRlN2IxYyksIFRPQk4oMHgwYzBiYzBlNSwgMHg2OTE5MjQwOCl9
fSwKKyAgICAgICAgIHt7VE9CTigweGU0ZDc2ODFkLCAweGI4MmU5ZjNlKSwgVE9CTigweDgzMjAw
ZjBiLCAweGRmMjVlMTNjKSwKKyAgICAgICAgICAgVE9CTigweDg5MDk5ODRjLCAweDY2ZjI3Mjgw
KSwgVE9CTigweDQ2MmQ3YjAwLCAweDc1ZjczMjI3KX0sCisgICAgICAgICAge1RPQk4oMHhkOTBi
YTE4OCwgMHhmMjY1MTc5OCksIFRPQk4oMHg3NGM2ZTE4YywgMHgzNmFiMWMzNCksCisgICAgICAg
ICAgIFRPQk4oMHhhYjI1NmVhMywgMHg1ZWY1NDM1OSksIFRPQk4oMHgwMzQ2NjYxMiwgMHhkMWFh
NzAyZil9fSwKKyAgICAgICAgIHt7VE9CTigweDYyNGQ2MDQ5LCAweDJlZDIyZTkxKSwgVE9CTigw
eDZmZGZlMGI1LCAweDZmMDcyODIyKSwKKyAgICAgICAgICAgVE9CTigweGVlY2ExMTE1LCAweDM5
Y2UyMjcxKSwgVE9CTigweDk4MTAwYTRmLCAweGRiMDE2MTRmKX0sCisgICAgICAgICAge1RPQk4o
MHhiNmIwZGFhMiwgMHhhMzVjNjI4ZiksIFRPQk4oMHhiNmY5NGQyZSwgMHhjODdlOWE0NyksCisg
ICAgICAgICAgIFRPQk4oMHhjNjc3MzI1OSwgMHgxZDU3ZDljZSksIFRPQk4oMHhmNzBiZmVlYywg
MHgwMzg4NGE3Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDVmYjM1Y2NmLCAweGVkMmJhZDAxKSwg
VE9CTigweGExNTVjYmUzLCAweDFkYTZhNWM3KSwKKyAgICAgICAgICAgVE9CTigweGMyZTI1OTRj
LCAweDMwYTkyZjhmKSwgVE9CTigweDY0OWM4OWNlLCAweDViZmFmZTQzKX0sCisgICAgICAgICAg
e1RPQk4oMHhkMTU4NjY3ZCwgMHhlOWZmMjU3YSksIFRPQk4oMHg5YjM1OTYxMSwgMHhmMzJjNTBh
ZSksCisgICAgICAgICAgIFRPQk4oMHg0YjAwYjIwYiwgMHg5MDYwMTRjZiksIFRPQk4oMHhmM2E4
Y2ZlMywgMHg4OWJjN2QzZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDRmZjIzZmZkLCAweDI0OGE3
ZDA2KSwgVE9CTigweDgwYzViZmI0LCAweDg3ODg3M2ZhKSwKKyAgICAgICAgICAgVE9CTigweGI3
ZDlhZDkwLCAweDA1NzQ1OTgxKSwgVE9CTigweDE3OWM4NWRiLCAweDNkYjAxOTk0KX0sCisgICAg
ICAgICAge1RPQk4oMHhiYTQxYjA2MiwgMHg2MWE2OTY2YyksIFRPQk4oMHg0ZDgyZDA1MiwgMHhl
YWRjZTVhOCksCisgICAgICAgICAgIFRPQk4oMHg5ZTkxY2QzYiwgMHhhNWU2YTMxOCksIFRPQk4o
MHg0Nzc5NWY0ZiwgMHg5NWIyZGRhMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGVjZmQ3YzFmLCAw
eGQ1NWE4OTdjKSwgVE9CTigweDAwOTE5NGFiLCAweGIyOTExMGZiKSwKKyAgICAgICAgICAgVE9C
TigweDVmMGUyMDQ2LCAweGUzODFkM2IwKSwgVE9CTigweDVmMzQyNWY2LCAweGE5OGRkMjkxKX0s
CisgICAgICAgICAge1RPQk4oMHhiZmEwNjY4NywgMHg3MzBkNTBkYSksIFRPQk4oMHgwNDIzNDQ2
YywgMHg0YjA4M2I3ZiksCisgICAgICAgICAgIFRPQk4oMHgzOTdhMjQ3ZCwgMHhkNjlkMzQxNyks
IFRPQk4oMHhlYjYyOWY5MCwgMHgzODdiYTQyYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDFlZTQy
NmNjLCAweGQ1Y2Q3OWJmKSwgVE9CTigweDAwMzI5NDBiLCAweDk0NmM2ZTE4KSwKKyAgICAgICAg
ICAgVE9CTigweDFiMWU4YWUwLCAweDU3NDc3ZjU4KSwgVE9CTigweGU5NGY3ZDM0LCAweDZkODIz
Mjc4KX0sCisgICAgICAgICAge1RPQk4oMHhjNzQ3Y2I5NiwgMHg3ODJiYTIxYSksIFRPQk4oMHhj
NTI1NDQ2OSwgMHhmNzJiMzNhNSksCisgICAgICAgICAgIFRPQk4oMHg3NzJlZjZkZSwgMHhjN2Y4
MGM4MSksIFRPQk4oMHhkNzNhY2JmZSwgMHgyY2Q5ZTZiNSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDQwNzViNWIxLCAweDQ5ZWU5MGQ5KSwgVE9CTigweDc4NWMzMzlhLCAweGEwNmU5ZWJhKSwKKyAg
ICAgICAgICAgVE9CTigweGExMDMwZDViLCAweGFiZjgyNWUwKSwgVE9CTigweGNlYzY4NGMzLCAw
eGE0MjkzMWRjKX0sCisgICAgICAgICAge1RPQk4oMHg0MmFiNjJjOSwgMHhjMTU4NmU2MyksIFRP
Qk4oMHg0NTQzMWQ2NiwgMHg1YWI0M2YyYiksCisgICAgICAgICAgIFRPQk4oMHg1N2M4YjJjMCwg
MHg1NWY3ODM1ZCksIFRPQk4oMHgwMzNkYTMzOCwgMHhjMWI3Zjg2NSl9fSwKKyAgICAgICAgIHt7
VE9CTigweDI4M2M3NTEzLCAweGNhYTc2MDk3KSwgVE9CTigweDBhNjI0ZmE5LCAweDM2YzgzOTA2
KSwKKyAgICAgICAgICAgVE9CTigweDZiMjBhZmVjLCAweDcxNWFmMmM3KSwgVE9CTigweDRiOTY5
OTc0LCAweGViYTc4YmZkKX0sCisgICAgICAgICAge1RPQk4oMHgyMjA3NTVjYywgMHhkOTIxZDYw
ZSksIFRPQk4oMHg5Yjk0NGUxMCwgMHg3YmFlY2ExMyksCisgICAgICAgICAgIFRPQk4oMHgwNDgx
OWQ1MSwgMHg1ZGVkOTNkNCksIFRPQk4oMHg5YmJmZjg2ZSwgMHg2ZGRkZmQyNyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDZiMzQ0MTMwLCAweDc3YWRjNjEyKSwgVE9CTigweGE3NDk2NTI5LCAweGJi
ZDgwM2EwKSwKKyAgICAgICAgICAgVE9CTigweDFhMWJhYWE3LCAweDZkODgwNWJkKSwgVE9CTigw
eGM4NDAzOTAyLCAweDQ3MDM0M2FkKX0sCisgICAgICAgICAge1RPQk4oMHgzOWY1OWY2NiwgMHgx
NzVhZGZmMSksIFRPQk4oMHgwYjI2ZDdmYiwgMHhiN2Q4YzViNyksCisgICAgICAgICAgIFRPQk4o
MHhhODc1ZjVjZSwgMHg1MjlkNzVlMyksIFRPQk4oMHg4NWVmYzdlOSwgMHg0MTMyNWNjMil9fSwK
KyAgICAgICAgIHt7VE9CTigweDIxOTUwYjQyLCAweDFmZjZhY2QzKSwgVE9CTigweGZmZTcwNDg0
LCAweDUzZGM2OTA5KSwKKyAgICAgICAgICAgVE9CTigweGZmNGNkMGIyLCAweDI4NzY2MTI3KSwg
VE9CTigweGFiZGJlNjA4LCAweDRmYjdkYjJiKX0sCisgICAgICAgICAge1RPQk4oMHg4MzdjOTIy
OCwgMHg1ZTExMDllOCksIFRPQk4oMHgyNjE0N2QyNywgMHhmNDY0NWI1YSksCisgICAgICAgICAg
IFRPQk4oMHg0ZDc4ZjU5MiwgMHhmNzgxOGVkOCksIFRPQk4oMHhkMzk0MDc3ZSwgMHhmMjQ3ZmEz
Nil9fSwKKyAgICAgICAgIHt7VE9CTigweDBmYjljMmQwLCAweDQ4OGMxNzFhKSwgVE9CTigweGE3
OGJmYmFhLCAweDEzNjg1Mjc4KSwKKyAgICAgICAgICAgVE9CTigweGVkZmJlMjY4LCAweGQ1YjFm
YTZhKSwgVE9CTigweDBkY2ViOGRiLCAweDJiN2VhYmE3KX0sCisgICAgICAgICAge1RPQk4oMHhi
ZjllODA4OSwgMHg5YWUyYjcxMCksIFRPQk4oMHhlZmRlN2FlNiwgMHhhNDQ0OWM5NiksCisgICAg
ICAgICAgIFRPQk4oMHg0M2I3NzE2YiwgMHhjYzE0M2E0NiksIFRPQk4oMHhkN2QzNDE5NCwgMHhj
MzYyOGMxMyl9fSwKKyAgICAgICAgIHt7VE9CTigweDUwOGNlYzFjLCAweDNiM2Y2NGM5KSwgVE9C
TigweGUyMGJjMGJhLCAweDFlNWVkZjNmKSwKKyAgICAgICAgICAgVE9CTigweGRhMWRlYjg1LCAw
eDJmNDMxOGQ0KSwgVE9CTigweGQyMGViZTBkLCAweDVjM2ZhNDQzKX0sCisgICAgICAgICAge1RP
Qk4oMHgzNzBiNGVhNywgMHg3MzI0MWVhMyksIFRPQk4oMHg2MWYxNTExYywgMHg1ZTFhNWY2NSks
CisgICAgICAgICAgIFRPQk4oMHg5OWE1ZTIzZCwgMHg4MjY4MWM2MiksIFRPQk4oMHhkNzMxZTM4
MywgMHhhMmY1NGMyZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDI2OTJmMzZlLCAweDgzNDQ1OTA0
KSwgVE9CTigweDJlMGVjNDY5LCAweGFmNDVmOWMwKSwKKyAgICAgICAgICAgVE9CTigweDkwNWEz
MjAxLCAweGM2NzUyOGI3KSwgVE9CTigweDg4Zjc3ZjM0LCAweGQwZTVlNTQyKX0sCisgICAgICAg
ICAge1RPQk4oMHhmNjdhOGQyOSwgMHg1ODY0Njg3YyksIFRPQk4oMHgyM2I5MmVhZSwgMHgyMmRm
MzU2MiksCisgICAgICAgICAgIFRPQk4oMHg1YzI3MDE0YiwgMHg5YmJlYzM5ZSksIFRPQk4oMHg3
ZWYyZjIyNiwgMHg5YzBmMGY4ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk3MzU5NjM4LCAweDU0
NmM0ZDhkKSwgVE9CTigweDVmOWMzZmM0LCAweDkyZjI0Njc5KSwKKyAgICAgICAgICAgVE9CTigw
eDkxMmU4YmVkLCAweGE4YzhhY2Q5KSwgVE9CTigweGVjM2EzMThkLCAweDMwNjYzNGIwKX0sCisg
ICAgICAgICAge1RPQk4oMHg4MDE2N2Y0MSwgMHhjMzFjYjI2NCksIFRPQk4oMHgzZGI4MmY2Ziwg
MHg1MjIxMTNmMiksCisgICAgICAgICAgIFRPQk4oMHhiMTU1YmNkMiwgMHhkY2FmZTE5NyksIFRP
Qk4oMHhmYmExZGE1OSwgMHg0MzQ2NTI4Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGEwNDI1Yjhl
LCAweGIyMTJjZjUzKSwgVE9CTigweDRmMmU1MTJlLCAweGY4NTU3YzVmKSwKKyAgICAgICAgICAg
VE9CTigweGMxMjg2ZmY5LCAweDI1YzRkNTZjKSwgVE9CTigweGJiOGEwZmVhLCAweGVlMjZjODUx
KX0sCisgICAgICAgICAge1RPQk4oMHhjMjhmNzBkMiwgMHhlN2Q2MTA3ZSksIFRPQk4oMHg3ZWUw
YzQ0NCwgMHhlNzYyNjVhYSksCisgICAgICAgICAgIFRPQk4oMHgzZGYyNzdhNCwgMHgxZDE5MzZi
MSksIFRPQk4oMHgxYTU1NmUzZiwgMHhlYTk1OTVlYil9fSwKKyAgICAgICAgIHt7VE9CTigweDI1
OGJiYmY5LCAweGU3MzA1NjgzKSwgVE9CTigweDMxZWVhNWJmLCAweDA3ZWY1YmU2KSwKKyAgICAg
ICAgICAgVE9CTigweDBkZWIwZTRhLCAweDQ2YzgxNGMxKSwgVE9CTigweDVjZWU4NDQ5LCAweGE3
YjczMGRkKX0sCisgICAgICAgICAge1RPQk4oMHhlYWI0OTVjNSwgMHhhMDE4MmJkZSksIFRPQk4o
MHhlZTc1OWY4NywgMHg5ZTI3YTZiNCksCisgICAgICAgICAgIFRPQk4oMHhjMmNmNmE2OCwgMHg4
MGU1MThjYSksIFRPQk4oMHgyNWU4MDEzZiwgMHhmMTRjZjNmNCl9fSwKKyAgICAgICAgIHt7VE9C
TigweDhmYzQ0MTQwLCAweDdlOGQ3YTE0KSwgVE9CTigweGJiMWZmM2NhLCAweDk1NTZmMzZhKSwK
KyAgICAgICAgICAgVE9CTigweDZhODQ0Mzg1LCAweDE0NjAwMDQ0KSwgVE9CTigweGJhM2YwYzRh
LCAweDc0NTFhZTYzKX0sCisgICAgICAgICAge1RPQk4oMHhkZmNhYzI1YiwgMHgxZjlhZjMyYSks
IFRPQk4oMHgwMWUwZGI4NiwgMHhiMWYyMjE0YiksCisgICAgICAgICAgIFRPQk4oMHg0ZTlhNWJj
MiwgMHhhNGI1OTZhYyksIFRPQk4oMHg4MzkyNzY4MSwgMHgwMjZjMmMwOCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDNlYzgzMmU3LCAweDdhY2FjYTI4KSwgVE9CTigweDFiZmVlYTU3LCAweGM3Mzg1
YjI5KSwKKyAgICAgICAgICAgVE9CTigweDA2ODIxMmUzLCAweGZkMWVhZjM4KSwgVE9CTigweGMx
MzI5ODMwLCAweDZhY2Y4Y2NjKX0sCisgICAgICAgICAge1RPQk4oMHhiOTA5ZjJkYiwgMHgyYWFj
OWU1OSksIFRPQk4oMHg1NzQ4MDYwZCwgMHhiNjYxNzgyYSksCisgICAgICAgICAgIFRPQk4oMHhj
NWFiMjYzMiwgMHhjNzliN2EwMSksIFRPQk4oMHhkYTQ0YzZjNiwgMHgwMDAxNzYyNil9fSwKKyAg
ICAgICAgIHt7VE9CTigweGYyNmMwMGU4LCAweGE3ZWE4MmYwKSwgVE9CTigweDk5Y2FjODBkLCAw
eGU0Mjk5YWFmKSwKKyAgICAgICAgICAgVE9CTigweGQ2NmZlM2I2LCAweDdlZDc4YmUxKSwgVE9C
TigweDMwNWY3MjVmLCAweDY0OGQwMmNkKX0sCisgICAgICAgICAge1RPQk4oMHgzM2VkMWJjNCwg
MHg2MjNmYjIxYiksIFRPQk4oMHhmYTcwNTMzZSwgMHg3YTYzMTlhZCksCisgICAgICAgICAgIFRP
Qk4oMHgxN2FiNTYyZCwgMHhiZTVmZmIzZSksIFRPQk4oMHgwNjM3NDk5NCwgMHg1NjY3NDc0MSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDY5ZDQ0ZWQ2LCAweDVjNDZhYThlKSwgVE9CTigweDIxMDBk
NWQzLCAweGE4ZDA2M2QxKSwKKyAgICAgICAgICAgVE9CTigweGNiOTcyN2VhLCAweGEyZDE3YzM2
KSwgVE9CTigweDRjMmJhYjFiLCAweDhhZGQ1M2I3KX0sCisgICAgICAgICAge1RPQk4oMHhhMDg0
ZTkwYywgMHgxNTQyNjcwNCksIFRPQk4oMHg3NzhhZmNkMywgMHhhODM3ZWJlYSksCisgICAgICAg
ICAgIFRPQk4oMHg2NjUxZjcwMSwgMHg3Y2U0NzdmOCksIFRPQk4oMHhhMDYyNDk5OCwgMHg0NmZi
N2E4Yil9fSwKKyAgICAgICAgIHt7VE9CTigweGRjMWU2ODI4LCAweGVkOGE2ZTE5KSwgVE9CTigw
eDMzZmMyMzM2LCAweDQxODlkOWM3KSwKKyAgICAgICAgICAgVE9CTigweDAyNmY4ZmUyLCAweDY3
MWMzOWJjKSwgVE9CTigweGQ0MGM0Y2NkLCAweGJjNmY5OTE1KX0sCisgICAgICAgICAge1RPQk4o
MHhhZmExMzViYiwgMHhmODBlNzVjYSksIFRPQk4oMHgxMmM2NTFhMCwgMHgyMmFkZmYyYyksCisg
ICAgICAgICAgIFRPQk4oMHhjNDBhMDRiZCwgMHg0ZjUxYWQ5NiksIFRPQk4oMHgwNDgyMDEwOSwg
MHhiYmU0ZTgzMil9fSwKKyAgICAgICAgIHt7VE9CTigweDM2NjdlYjFhLCAweDdmNGMwNGNjKSwg
VE9CTigweDU5NTU2NjIxLCAweGE5NDA0Zjg0KSwKKyAgICAgICAgICAgVE9CTigweDcxY2RmNjUz
LCAweDdlY2ViNTBhKSwgVE9CTigweDk5NGE0NGE2LCAweDliODMzNWZhKX0sCisgICAgICAgICAg
e1RPQk4oMHhkN2ZhZjgxOSwgMHhkYmViOWI2OSksIFRPQk4oMHg0NzNjNTY4MCwgMHhlZWQ0MzUw
ZCksCisgICAgICAgICAgIFRPQk4oMHhiNjY1ODQ2NiwgMHhkYTQ0YmJhMiksIFRPQk4oMHgwZDFi
Yzc4MCwgMHg4NzJiZGJmMyl9fSwKKyAgICAgICAgIHt7VE9CTigweGU1MzVmMTc1LCAweGExOTYy
ZjkxKSwgVE9CTigweDZlZDdlMDYxLCAweGVkNThmNWE3KSwKKyAgICAgICAgICAgVE9CTigweDE3
N2FhNGMwLCAweDIwODlhMjMzKSwgVE9CTigweDBkYmNiMDNhLCAweGU1MzliNDEzKX0sCisgICAg
ICAgICAge1RPQk4oMHhlM2RjNDI0ZSwgMHhiYjMyZTM4ZSksIFRPQk4oMHg2NDcyZTVlZiwgMHg2
ODA2NzAxZSksCisgICAgICAgICAgIFRPQk4oMHhkZDQ3ZmY5OCwgMHg4MTRiZTllZSksIFRPQk4o
MHg2YjYwY2ZmZiwgMHgzNWFjZTAwOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGI4ZDNkOTMxLCAw
eDlmZjkxZmU1KSwgVE9CTigweDAzOWM0ODAwLCAweGYwNTE4ZWVkKSwKKyAgICAgICAgICAgVE9C
TigweDk1YzM3NjMyLCAweDkxODJjYjI2KSwgVE9CTigweDA3NjNhNDM0LCAweDgyZmM1NjhkKX0s
CisgICAgICAgICAge1RPQk4oMHg3MDdjMDRkNSwgMHgzODNlNzZiYSksIFRPQk4oMHhhYzk4Yjkz
MCwgMHg4MjRlODE5NyksCisgICAgICAgICAgIFRPQk4oMHg5MmJmN2M4ZiwgMHg5MTIzMGRlMCks
IFRPQk4oMHg5MDg3NmEwMSwgMHg0MDk1OWI3MCl9fSwKKyAgICAgICAgIHt7VE9CTigweGRiNmQ5
NmYzLCAweDA1OTY4YjgwKSwgVE9CTigweDM4MGEwOTEzLCAweDA4OWY3M2I5KSwKKyAgICAgICAg
ICAgVE9CTigweDdkYTcwYjgzLCAweGMyYzYxZTAxKSwgVE9CTigweDk1ZmI4Mzk0LCAweDU2OWIz
OGM3KX0sCisgICAgICAgICAge1RPQk4oMHg5YTNjNjUxMiwgMHg4MGVkZmUyZiksIFRPQk4oMHg4
ZjcyNmJiOSwgMHg4ZmFlYWY4MiksCisgICAgICAgICAgIFRPQk4oMHg4MDEwYTRhMCwgMHg3ODQy
NGJmOCksIFRPQk4oMHgyOTY3MjA0NCwgMHgwZTg0NDk3MCl9fX0sCisgICAgICAgIHt7e1RPQk4o
MHg2M2M1Y2I4MSwgMHg3YTJhZDYyYSksIFRPQk4oMHg3ZWYyYjZiOSwgMHhhYzYyZmY1NCksCisg
ICAgICAgICAgIFRPQk4oMHgzNzQ5YmJhNCwgMHhiM2FkOWRiNSksIFRPQk4oMHhhZDMxMWYyYywg
MHg0NmQ1YTYxNyl9LAorICAgICAgICAgIHtUT0JOKDB4Yjc3YTgwODcsIDB4YzJmZjNiNmQpLCBU
T0JOKDB4YjQ2ZmVhZjMsIDB4MzY3ODM0ZmYpLAorICAgICAgICAgICBUT0JOKDB4ZjhhYTI2NmQs
IDB4NzVkNmIxMzgpLCBUT0JOKDB4ZmEzOGQzMjAsIDB4ZWMwMDgxODgpfX0sCisgICAgICAgICB7
e1RPQk4oMHg0ODZkOGZmYSwgMHg2OTY5NDZmYyksIFRPQk4oMHg1MGZiYzZkOCwgMHhiOWNiYTU2
ZCksCisgICAgICAgICAgIFRPQk4oMHg3ZTNkNDIzZSwgMHg5MGYzNWExNSksIFRPQk4oMHg3YzNk
YTE5NSwgMHhjMGRkOTYyYyl9LAorICAgICAgICAgIHtUT0JOKDB4ZTY3M2ZkYjAsIDB4M2NmZDVk
OGIpLCBUT0JOKDB4MDcwNGI3YzIsIDB4ODg5ZGZjYTUpLAorICAgICAgICAgICBUT0JOKDB4ZjZj
ZTU4MWYsIDB4ZjUyMzA1YWEpLCBUT0JOKDB4Mzk5ZDQ5ZWIsIDB4OTE0ZDVlNTMpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgzODBhNDk2ZCwgMHg2ZWMyOTNjZCksIFRPQk4oMHg3MzNkYmRhNywgMHg4
ZTcwNTFmNSksCisgICAgICAgICAgIFRPQk4oMHgwMzdlMzg4ZCwgMHhiODQ5MTQwYSksIFRPQk4o
MHhlZTRiMzJiMCwgMHg1OTQ2ZGJmNil9LAorICAgICAgICAgIHtUT0JOKDB4YjFjNGZkYTksIDB4
Y2FlMzY4ZDEpLCBUT0JOKDB4NTAwMWE3YjAsIDB4ZmRiMGIyZjMpLAorICAgICAgICAgICBUT0JO
KDB4NmRmNTkzNzQsIDB4MmUzYWM0NmUpLCBUT0JOKDB4NGFmNjc1ZjIsIDB4MzliM2U2NTYpfX0s
CisgICAgICAgICB7e1RPQk4oMHg0NGUzODExMCwgMHgzOTk0OTI5NiksIFRPQk4oMHg1YjYzODI3
YiwgMHgzNjFkYjFiNSksCisgICAgICAgICAgIFRPQk4oMHgzZTUzMjNlZCwgMHgyMDZlYWZmNSks
IFRPQk4oMHg5NDIzNzBkMiwgMHhjMjFmNDI5MCl9LAorICAgICAgICAgIHtUT0JOKDB4ZjJjYWFm
MmUsIDB4ZTBkOTg1YTEpLCBUT0JOKDB4MTkyY2M2NGIsIDB4NzIzOTg0NmQpLAorICAgICAgICAg
ICBUT0JOKDB4N2MwYjhmNDcsIDB4YWU2MzEyZjgpLCBUT0JOKDB4N2RjNjFmOTEsIDB4OTY2MjAx
MDgpfX0sCisgICAgICAgICB7e1RPQk4oMHhiODMwZmI1YiwgMHhjMmRhN2RlOSksIFRPQk4oMHhk
MGU2NDNkZiwgMHgwZmY4ZDNiZSksCisgICAgICAgICAgIFRPQk4oMHgzMWVlNzdiYSwgMHgxODhh
OTY0MSksIFRPQk4oMHg0ZThhYTNhYSwgMHhiY2Y2ZDUwMil9LAorICAgICAgICAgIHtUT0JOKDB4
ZjlmYjY1MzIsIDB4OWE0OTExMGYpLCBUT0JOKDB4ZDE4MzE3ZjYsIDB4MmRkNmIyMjApLAorICAg
ICAgICAgICBUT0JOKDB4N2UzY2VkNDEsIDB4NTJjM2VhNWEpLCBUT0JOKDB4MGQyOTZhMTQsIDB4
N2Q1NzljNGEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzNWQ2YTUzZSwgMHhlZDRjMzcxNyksIFRP
Qk4oMHg5ZjgyNDBjZiwgMHgzZDBlZDJhMyksCisgICAgICAgICAgIFRPQk4oMHg4YzBkNGQwNSwg
MHhlNTU0M2FhNSksIFRPQk4oMHg0NWQ1YmJmYiwgMHhkZDMzYjRiNCl9LAorICAgICAgICAgIHtU
T0JOKDB4ZmEwNGNjNzMsIDB4MTM3ZmQyOGUpLCBUT0JOKDB4ODYyYWM2ZWYsIDB4YzczYjNmZmQp
LAorICAgICAgICAgICBUT0JOKDB4NDAzZmY5ZjUsIDB4MzFmNTFlZjIpLCBUT0JOKDB4MzRkNWUw
ZmMsIDB4YmM3M2Y1YTIpfX0sCisgICAgICAgICB7e1RPQk4oMHhmMjUyNjgyMCwgMHgwODkxM2Y0
ZiksIFRPQk4oMHhlYTIwZWQ2MSwgMHhlYWM5M2Q5NSksCisgICAgICAgICAgIFRPQk4oMHg1MWVk
MzhiNCwgMHg2Y2E2YjI2YyksIFRPQk4oMHg4NjYyZGNiYywgMHhlYTQzMjdiMCl9LAorICAgICAg
ICAgIHtUT0JOKDB4NmRhZjI5NWMsIDB4NzI1ZDJhYWEpLCBUT0JOKDB4YmFkMjc1MmYsIDB4OGU1
MmRjZGEpLAorICAgICAgICAgICBUT0JOKDB4MjIxMGU3MjEsIDB4MGIxN2RhY2MpLCBUT0JOKDB4
YTM3Zjc5MTIsIDB4ZDUxZTgyMzIpfX0sCisgICAgICAgICB7e1RPQk4oMHg0ZjcwODFlMSwgMHg0
NGNjM2FkZCksIFRPQk4oMHhkNWZmYTFkNiwgMHg4N2JlODJjZiksCisgICAgICAgICAgIFRPQk4o
MHg4OTg5MGI2YywgMHgwZWRkNjQ3MiksIFRPQk4oMHhhZGEyNmUxYSwgMHgzZWQxNzg2Myl9LAor
ICAgICAgICAgIHtUT0JOKDB4Mjc2ZjI3MTUsIDB4NjM0ODNjYWEpLCBUT0JOKDB4ZTY5MjRjZDks
IDB4MmY2MDc3ZmQpLAorICAgICAgICAgICBUT0JOKDB4MDVhN2ZlOTgsIDB4MGE0NjZlM2MpLCBU
T0JOKDB4ZjFjNzk0YjAsIDB4YjE5MDJkMWYpfX0sCisgICAgICAgICB7e1RPQk4oMHhlNTIxMzY4
OCwgMHg4MmE4MDQyYyksIFRPQk4oMHhkOTMxY2ZhZiwgMHhjZDI3ODI5OCksCisgICAgICAgICAg
IFRPQk4oMHgwNjlhMGFlMCwgMHhmNTk3YTc0MCksIFRPQk4oMHgwYWRiYjNmMywgMHhlYjU5MTA3
Yyl9LAorICAgICAgICAgIHtUT0JOKDB4OTgzZTk1MWUsIDB4NWVhYThlYjgpLCBUT0JOKDB4ZTY2
M2E4YjUsIDB4MTFiNDhlNzgpLAorICAgICAgICAgICBUT0JOKDB4MTYzMWNjMGQsIDB4OGEwM2Yy
YzUpLCBUT0JOKDB4NzU3N2MxMWUsIDB4MTFlMjcxZTIpfX0sCisgICAgICAgICB7e1RPQk4oMHgz
M2IyMzg1YywgMHgwODM2OWE5MCksIFRPQk4oMHgyOTkwYzU5YiwgMHgxOTBlYjRmOCksCisgICAg
ICAgICAgIFRPQk4oMHg4MTlhNjE0NSwgMHhjNjhlYWM4MCksIFRPQk4oMHg3YTc4NmQ2MiwgMHgy
ZWM0YTAxNCl9LAorICAgICAgICAgIHtUT0JOKDB4MzNmYWFkYmUsIDB4MjBhYzNhOGQpLCBUT0JO
KDB4MzFhMjE3ODEsIDB4NWFiYTJkMzApLAorICAgICAgICAgICBUT0JOKDB4MjA5ZDI3NDIsIDB4
ZGJhNGY1NjUpLCBUT0JOKDB4ZGIyY2U5ZTMsIDB4NTVhYTBmYmIpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg4Y2VmMzM0YiwgMHgxNjg5ODRkZiksIFRPQk4oMHhlODFkY2UxNywgMHgzMzg3OTYzOCks
CisgICAgICAgICAgIFRPQk4oMHhmNmU2OTQ5YywgMHgyNjM3MjBmMCksIFRPQk4oMHg1YzU2ZmVh
ZiwgMHhmNTkzY2JlYyl9LAorICAgICAgICAgIHtUT0JOKDB4OGJmZjU2MDEsIDB4ZmRlNThjODQp
LCBUT0JOKDB4NzRlMjQxMTcsIDB4MmVjY2IzMTQpLAorICAgICAgICAgICBUT0JOKDB4YmNmMDFi
NjEsIDB4NGM5YThhNzgpLCBUT0JOKDB4YTIzM2UzNWUsIDB4NTQ0Yzk4NjgpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhiMzE1NmJmMywgMHg4YmQ3YWZmMSksIFRPQk4oMHgxYjVlZTRjYiwgMHgxZDgx
YjE0NiksCisgICAgICAgICAgIFRPQk4oMHg3YmExYWM0MSwgMHhkNjI4YTkxNSksIFRPQk4oMHg4
ZjNhOGY5YywgMHhmZDg5Njk5ZSl9LAorICAgICAgICAgIHtUT0JOKDB4NzMyOWI5YzksIDB4YTA3
NDhiZTcpLCBUT0JOKDB4MWQzOTFjOTUsIDB4YTkyZTYyMWYpLAorICAgICAgICAgICBUT0JOKDB4
ZTUxZTZiMjEsIDB4NGQxMGE4MzcpLCBUT0JOKDB4ZDI1NWY1M2EsIDB4NDk0N2I0MzUpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgwNzY2OWUwNCwgMHhmMTc4OGVlMyksIFRPQk4oMHhjMTRmMjdhZiwg
MHhhODY5MzhhMiksCisgICAgICAgICAgIFRPQk4oMHg4YjQ3YTMzNCwgMHhlOTNhMDFjMCksIFRP
Qk4oMHhmZjYyNzQzOCwgMHhkOTM2NjgwOCl9LAorICAgICAgICAgIHtUT0JOKDB4N2EwOTg1ZDgs
IDB4Y2EyYTU5NjUpLCBUT0JOKDB4M2Q5YTU1NDIsIDB4ZDZlOWI5YjMpLAorICAgICAgICAgICBU
T0JOKDB4YzIzZWI4MGIsIDB4NGNmOTcyZTgpLCBUT0JOKDB4NWMxYzMzYmIsIDB4NGZkZjcyZmQp
fX0sCisgICAgICAgICB7e1RPQk4oMHgwYzRhNThkNCwgMHg3NGE4NjEwOCksIFRPQk4oMHhmODA0
OGE4ZiwgMHhlZTRjNWQ5MCksCisgICAgICAgICAgIFRPQk4oMHhlM2M3YzkyNCwgMHhlODZkNGM4
MCksIFRPQk4oMHgyOGM4ODlkZSwgMHgwNTZhMWU2MCl9LAorICAgICAgICAgIHtUT0JOKDB4NTdl
MjY2MmUsIDB4YjIxNGEwNDApLCBUT0JOKDB4ZThjNDhlOTgsIDB4MzdlMTAzNDcpLAorICAgICAg
ICAgICBUT0JOKDB4ODc3NDI4NjIsIDB4ODBhYzc0OGEpLCBUT0JOKDB4ZjFjMjQwMjIsIDB4MTg2
YjA2ZjIpfX0sCisgICAgICAgICB7e1RPQk4oMHhhYzJkZDRjMywgMHg1Zjc0MDQwYSksIFRPQk4o
MHg0MDlhZWI3MSwgMHhmY2VhYzk1NyksCisgICAgICAgICAgIFRPQk4oMHg0ZmJhZDc4MiwgMHg1
NWM0ZWMyMyksIFRPQk4oMHhiMzU5ZWQ2MSwgMHg4YTdiNzZlYyl9LAorICAgICAgICAgIHtUT0JO
KDB4MTI3NDQ5MjYsIDB4ZWQ2ZjRhNjApLCBUT0JOKDB4ZTIxZThkN2YsIDB4NGI5MTJkZTMpLAor
ICAgICAgICAgICBUT0JOKDB4ZTI1NzVhNTksIDB4ZmM3MDVhNTkpLCBUT0JOKDB4NzJmMWQ0ZGUs
IDB4ZWQyZGJjMGUpfX0sCisgICAgICAgICB7e1RPQk4oMHgzZDJiMjRiOSwgMHhlYjc5MjZiOCks
IFRPQk4oMHhiZmY4OGNiMywgMHhjZGJlNTUwOSksCisgICAgICAgICAgIFRPQk4oMHhkMGYzOTlh
ZiwgMHhlNGRkNjQwYiksIFRPQk4oMHgzYzVmZTEzMCwgMHgyZjc2ZWQ0NSl9LAorICAgICAgICAg
IHtUT0JOKDB4NmYzNTYyZjQsIDB4Mzc2NGZiM2QpLCBUT0JOKDB4N2I1YWYzMTgsIDB4MzE1MWI2
MmQpLAorICAgICAgICAgICBUT0JOKDB4ZDViZDBiYzcsIDB4ZDc5Y2U1ZjMpLCBUT0JOKDB4ZmRh
ZjZiMjAsIDB4ZWM2Njg5MGYpfX0sCisgICAgICAgICB7e1RPQk4oMHg3MzVjNjdlYywgMHg2MDYz
NTQwYyksIFRPQk4oMHg1MGIyNTljMiwgMHhlNWY5Y2I4ZiksCisgICAgICAgICAgIFRPQk4oMHhi
ODczNGY5YSwgMHgzZjk5YzZhYiksIFRPQk4oMHhmOGNjMTNkNSwgMHhhM2E3YmM4NSl9LAorICAg
ICAgICAgIHtUT0JOKDB4ODBjMWIzMDUsIDB4YzUyMTc2NTkpLCBUT0JOKDB4ZmU1MzY0ZDQsIDB4
NGVjMTJhNTQpLAorICAgICAgICAgICBUT0JOKDB4YmQ4NzA0NWUsIDB4NjgxMzQ1ZmUpLCBUT0JO
KDB4N2Y4ZWZlYjEsIDB4NTgyZjg5N2YpfX0sCisgICAgICAgICB7e1RPQk4oMHhlOGNiZjFlNSwg
MHhkNTkyMzM1OSksIFRPQk4oMHhkYjBjZWE5ZCwgMHg1MzliOWZiMCksCisgICAgICAgICAgIFRP
Qk4oMHgwYzViMzRjZiwgMHg0OTg1OWI5OCksIFRPQk4oMHg1ZTU4M2M1NiwgMHhhNDQwM2NjNil9
LAorICAgICAgICAgIHtUT0JOKDB4MTFmYzFhMmQsIDB4ZDQ4MTg1YjcpLCBUT0JOKDB4YzkzZmJj
N2UsIDB4NmU1MjE3ODcpLAorICAgICAgICAgICBUT0JOKDB4NDdlN2EwNTgsIDB4MDUxMDViOGIp
LCBUT0JOKDB4N2I0ZDRkNTgsIDB4ZGI4MjYwYzgpfX0sCisgICAgICAgICB7e1RPQk4oMHhlMzM5
MzBiMCwgMHg0NmViODQyYSksIFRPQk4oMHg4ZTg0NGE5YSwgMHg3YmRhZTU2ZCksCisgICAgICAg
ICAgIFRPQk4oMHgzNGVmM2E5ZSwgMHgxM2Y3ZmRmYyksIFRPQk4oMHhiMzc2OGY4MiwgMHg2MzZj
YTE3Nil9LAorICAgICAgICAgIHtUT0JOKDB4MjgyMWY0ZTAsIDB4NGUwOWU2MWMpLCBUT0JOKDB4
NDE0ZGMzYTEsIDB4YTBjN2NkZGMpLAorICAgICAgICAgICBUT0JOKDB4ZDUzNzk0MzcsIDB4NTQ5
NDVmY2QpLCBUT0JOKDB4MTUxYjZlZWYsIDB4YjM1NTVmZjEpfX0sCisgICAgICAgICB7e1RPQk4o
MHhiMzFiZDYxMywgMHg2MzM5YzA4MyksIFRPQk4oMHgzOWZmODE1NSwgMHhkZmI2NDcwMSksCisg
ICAgICAgICAgIFRPQk4oMHg3YzMzODhkMiwgMHhlMjk2MDRhYiksIFRPQk4oMHgxZTE5MDg0Yiwg
MHhhNmIxMDQ0Mil9LAorICAgICAgICAgIHtUT0JOKDB4MTdjZjU0YzAsIDB4ZWNjZDQ3ZWYpLCBU
T0JOKDB4ODk2OTMzODUsIDB4NGE1ZGZiMzApLAorICAgICAgICAgICBUT0JOKDB4NjlkMDIzZmIs
IDB4NDdkYWY5ZjYpLCBUT0JOKDB4OTIyMjg0MGIsIDB4N2Q5MWQ5NTkpfX0sCisgICAgICAgICB7
e1RPQk4oMHg0MzkxMDhmNSwgMHg4MDNiYWM2MiksIFRPQk4oMHgwYjdkZDkxZCwgMHgzNzliZDQ1
ZiksCisgICAgICAgICAgIFRPQk4oMHhkNjUxZTgyNywgMHhjYTYzYzU4MSksIFRPQk4oMHg1YzVk
NzVmNiwgMHg1MDljMTA0Zil9LAorICAgICAgICAgIHtUT0JOKDB4N2Q1ZmM3MzgsIDB4MWYyZGMz
MDgpLCBUT0JOKDB4MjBmYWE3YmYsIDB4ZDk4NDU0YmUpLAorICAgICAgICAgICBUT0JOKDB4OTUz
NzRiZWUsIDB4YTUxN2IwMzEpLCBUT0JOKDB4ZjAzNmI5YjEsIDB4NjQyNjkyYWMpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhjNTEwNjEwOSwgMHgzOTg0MjE5NCksIFRPQk4oMHhiN2UyMzUzZSwgMHg0
OWQwNTI5NSksCisgICAgICAgICAgIFRPQk4oMHhmYzhjMWQ1YywgMHhlZmI0MmVlMCksIFRPQk4o
MHhlMDQ4ODRlYiwgMHgwOGNlODExYyl9LAorICAgICAgICAgIHtUT0JOKDB4ZjFmNzVkODEsIDB4
NzQxOWY0MGUpLCBUT0JOKDB4NWIwYWMxNjIsIDB4YTk5NWMyNDEpLAorICAgICAgICAgICBUT0JO
KDB4MTIwOTIxYmIsIDB4YzRjNTU2NDYpLCBUT0JOKDB4NzEzNTIwYzIsIDB4OGQzM2NmOTcpfX0s
CisgICAgICAgICB7e1RPQk4oMHhiNGE2NWE1YywgMHhlOThjNTEwMCksIFRPQk4oMHg2Y2VjODcx
ZCwgMHgyZGRkMGY1YSksCisgICAgICAgICAgIFRPQk4oMHgyNTFmMGI3ZiwgMHg5YmEyZTc4Yiks
IFRPQk4oMHgyMjRhODQzNCwgMHhjZTNhMmE1Zil9LAorICAgICAgICAgIHtUT0JOKDB4MjY4Mjdm
NjEsIDB4MjVmNWM0NmYpLCBUT0JOKDB4NmEyMmJlZGMsIDB4NDg1NDVlYzApLAorICAgICAgICAg
ICBUT0JOKDB4MjVhZTVmYTAsIDB4YjFiYjVjZGMpLCBUT0JOKDB4ZDY5MzY4MmYsIDB4ZmNiOWI5
OGYpfX0sCisgICAgICAgICB7e1RPQk4oMHgzMjAyN2ZlOCwgMHg5MWU1ZDdkMyksIFRPQk4oMHhm
MTRiN2QxNywgMHg3M2EwNzY3OCksCisgICAgICAgICAgIFRPQk4oMHhmODg0OTdiMywgMHhjMGRm
ZGQ2MSksIFRPQk4oMHhmN2MyZWVjMCwgMHgyYThjNGY0OCl9LAorICAgICAgICAgIHtUT0JOKDB4
YWE1NTczZjQsIDB4Mzc1NmU2MjEpLCBUT0JOKDB4YzAxM2EyNDAsIDB4MTgyNWI5NDgpLAorICAg
ICAgICAgICBUT0JOKDB4MWMwM2IzNDUsIDB4NjM4Nzg1NzIpLCBUT0JOKDB4YTA0NzJiZWEsIDB4
NjUzYTQxODQpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNDIyMmUyNywgMHgwYWM2OWE4MCksIFRP
Qk4oMHgzNDA5NmQyNSwgMHhmNTFlNTRmNiksCisgICAgICAgICAgIFRPQk4oMHgwMGE2NDhjYiwg
MHg4ZmZmYTU5MSksIFRPQk4oMHg0ZTg3YWNkYywgMHg2OWI2NTI3Zil9LAorICAgICAgICAgIHtU
T0JOKDB4MDU3NWUwMzcsIDB4ZTI4NWNjYjQpLCBUT0JOKDB4MTg4MDg5ZTQsIDB4NTBkZGNmNTIp
LAorICAgICAgICAgICBUT0JOKDB4YWE5NmM5YTgsIDB4ODcwZmY3MTkpLCBUT0JOKDB4NzRhNTZj
ZDgsIDB4MWZjN2UzNjkpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MWQwNGVlMiwgMHgxNzI2OTMx
YSksIFRPQk4oMHgwYmJiYjJjOCwgMHgzNjYwZWNmZCksCisgICAgICAgICAgIFRPQk4oMHhhNmVm
NmRlNSwgMHgyNDgxOGUxOCksIFRPQk4oMHhlNDIxY2M1MSwgMHhlN2Q1Nzg4Nyl9LAorICAgICAg
ICAgIHtUT0JOKDB4ZjEyN2QyMDgsIDB4YmVhODdiZTYpLCBUT0JOKDB4MTZhNDc1ZDMsIDB4YjFj
ZGQ2ODIpLAorICAgICAgICAgICBUT0JOKDB4OWRiMWI2ODQsIDB4NDM5YjYzZjcpLCBUT0JOKDB4
NTM1OWIzZGIsIDB4ZjBmMTEzYjYpfX0sCisgICAgICAgICB7e1RPQk4oMHhkZmNjZjFkZSwgMHg4
YmYwNmUzMSksIFRPQk4oMHgxZmRmOGY0NCwgMHhkZDM4MzkwMSksCisgICAgICAgICAgIFRPQk4o
MHgxMDc3NWNhZCwgMHg1MDE3ZTdkMiksIFRPQk4oMHhkZmMzYTU5NywgMHg1OGQxMWVlZil9LAor
ICAgICAgICAgIHtUT0JOKDB4NmVjOWM4YTAsIDB4YjFlY2ZmMTApLCBUT0JOKDB4ZWU2ZWQ2Y2Ms
IDB4Mjg0MDA1NDkpLAorICAgICAgICAgICBUT0JOKDB4YjVhZDdiYWUsIDB4MWI0ZjhkNzMpLCBU
T0JOKDB4NjFiNGYxMWQsIDB4ZTAwYWFhYjkpfX0sCisgICAgICAgICB7e1RPQk4oMHg3YjMyZDY5
YiwgMHhkNGVmZjJkNyksIFRPQk4oMHg4OGFlNjc3MSwgMHg0Mjg4YjYwZiksCisgICAgICAgICAg
IFRPQk4oMHgxNTk0NjFiNCwgMHgzN2ExZTcyMyksIFRPQk4oMHgxZjNkNDc4OSwgMHg1NzBhYWU4
Yyl9LAorICAgICAgICAgIHtUT0JOKDB4ODY5MTE4YzAsIDB4N2Y5ODcxZGEpLCBUT0JOKDB4MzVm
YmRhNzgsIDB4ZjYzNWUyNzgpLAorICAgICAgICAgICBUT0JOKDB4NzM4ZjM2NDEsIDB4ZTE1NDFk
YWMpLCBUT0JOKDB4Njc5NGIxM2EsIDB4YzBkYWU0NWYpfX0sCisgICAgICAgICB7e1RPQk4oMHgw
NjUwNjRhYywgMHgwOWNjMDkxNyksIFRPQk4oMHgyN2M1MzcyOSwgMHhjNjg1NDBmZCksCisgICAg
ICAgICAgIFRPQk4oMHgwZDJkNGM4ZSwgMHhlZjIyNzY3MSksIFRPQk4oMHhkMjNhOWY4MCwgMHhh
MTc4NWEwNCl9LAorICAgICAgICAgIHtUT0JOKDB4OThjNTk1MjgsIDB4NTI2NTAzNTkpLCBUT0JO
KDB4ZmEwOWFkMDEsIDB4NzRhMWFjYWQpLAorICAgICAgICAgICBUT0JOKDB4MDgyZDVhMjksIDB4
MGI1NWJmNWMpLCBUT0JOKDB4YTQwZjFjNjcsIDB4NDE5YjgwODQpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgzYTVjNzUyZSwgMHhkY2MxODc3MCksIFRPQk4oMHg0YmFmMWYyZiwgMHg4ODI1YzNhNSks
CisgICAgICAgICAgIFRPQk4oMHhlYmQ2M2Y3NCwgMHgyMWIxNTNlZCksIFRPQk4oMHhhMjM4M2U0
NywgMHhiMmY2NDcyMyl9LAorICAgICAgICAgIHtUT0JOKDB4ZTdiZjYyMGEsIDB4MjY0NmQxOWEp
LCBUT0JOKDB4NTZjYjQ0ZWMsIDB4MDNjODNmZmQpLAorICAgICAgICAgICBUT0JOKDB4YWY3MjY3
YzksIDB4NGY2YmU5ZjEpLCBUT0JOKDB4OGIyZGZkN2IsIDB4YzA2YmI1ZTkpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhiODcwNzJmMiwgMHhhNjcyYzVjNyksIFRPQk4oMHhlYWNiMTFjOCwgMHgwZDUz
YzVlMiksCisgICAgICAgICAgIFRPQk4oMHgyMmRhYzI5ZCwgMHhmZjQzNTkzMiksIFRPQk4oMHgz
N2JkYjk5ZCwgMHg0NDA4NjkzYyl9LAorICAgICAgICAgIHtUT0JOKDB4ZjZlNjJmYjYsIDB4Mjg5
OWMyMGYpLCBUT0JOKDB4MzUzNWQ1MTIsIDB4NDQ3ZWNlMjQpLAorICAgICAgICAgICBUT0JOKDB4
ZmJkYzZiODgsIDB4ZmY1NzdjZTMpLCBUT0JOKDB4NzI2NjkzYmQsIDB4MTkwNTc1ZjIpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg2NzcyYjBlNSwgMHhhYjRiMzVhMiksIFRPQk4oMHgxZDhiNjAwMSwg
MHhmNWVlYWFjZiksCisgICAgICAgICAgIFRPQk4oMHg3MjhmN2NlNCwgMHg3OTViOTU4MCksIFRP
Qk4oMHg0YTIwZWQyYSwgMHg0MWZiODFkYSl9LAorICAgICAgICAgIHtUT0JOKDB4OWY2ODVjZDQs
IDB4NGZlYzAxZTYpLCBUT0JOKDB4M2VkN2RkY2MsIDB4YTdmZjUwYWQpLAorICAgICAgICAgICBU
T0JOKDB4NDYwZmQyNjQsIDB4MGMyZDk3ZmQpLCBUT0JOKDB4M2EyNDE0MjYsIDB4ZWI4MmY0Zjkp
fX0sCisgICAgICAgICB7e1RPQk4oMHgxN2QxZGYyYywgMHg2YThlYTgyMCksIFRPQk4oMHhiMmI1
MGQzYiwgMHhmMjJjYzI1NCksCisgICAgICAgICAgIFRPQk4oMHgwMzg1NmNiYSwgMHhiNzI5MTQy
NiksIFRPQk4oMHg4N2ZkMjZhZSwgMHgwNGY1ZWUzOSl9LAorICAgICAgICAgIHtUT0JOKDB4OWNi
Njk2Y2MsIDB4MDJiZWU0YmEpLCBUT0JOKDB4NTMxMjE4MDQsIDB4MDY4MjBmZDYpLAorICAgICAg
ICAgICBUT0JOKDB4YTVkZmMyNjksIDB4MDIxMmU5ODUpLCBUT0JOKDB4NjY2ZjdmZmEsIDB4MTYw
ZjlhMDkpfX0sCisgICAgICAgICB7e1RPQk4oMHhjNTAzY2QzMywgMHhiY2NkOTYxNyksIFRPQk4o
MHgzNjVkZWRlNCwgMHhiYTc3MzBhMyksCisgICAgICAgICAgIFRPQk4oMHg3OThjNjM1NSwgMHg1
ZGRiMDc4NiksIFRPQk4oMHhhNmMzMjAwZSwgMHhmYzljZDNiYyl9LAorICAgICAgICAgIHtUT0JO
KDB4MDYwZmZiMmMsIDB4ZTVlMzVlZmQpLCBUT0JOKDB4OTlhNGUyNWIsIDB4NTU1NWExYzEpLAor
ICAgICAgICAgICBUT0JOKDB4MTFkOTUzNzUsIDB4ZjcwYjM3NTEpLCBUT0JOKDB4MGE1NzM1NGEs
IDB4MTYwZTFiZjYpfX0sCisgICAgICAgICB7e1RPQk4oMHhlY2IzYWU0YiwgMHhmOGU0YjA2NSks
IFRPQk4oMHgwN2E4MzRjNCwgMHgyZTUzMDIyYiksCisgICAgICAgICAgIFRPQk4oMHgxY2QzMDBi
MywgMHg4NjkyZWQ5NiksIFRPQk4oMHgxNmE2Zjc5MiwgMHg2MWVlMTRlYyl9LAorICAgICAgICAg
IHtUT0JOKDB4OGYxMDYzYzYsIDB4NmE4NjQ5ZWQpLCBUT0JOKDB4ZmJjZGZjZmUsIDB4ODY5ZjNl
MTQpLAorICAgICAgICAgICBUT0JOKDB4MmNmYjk3YzEsIDB4MDBhN2IzZWMpLCBUT0JOKDB4Y2Vh
NDliM2MsIDB4NzEzMGMyZjEpfX0sCisgICAgICAgICB7e1RPQk4oMHg0NjJkMDQ0ZiwgMHhlOWQ5
NjQ4OCksIFRPQk4oMHg0YjUzZDUyZSwgMHg4MTgyYTBjMSksCisgICAgICAgICAgIFRPQk4oMHg4
NGI2ZGRkMywgMHgwMzkxZTllOSksIFRPQk4oMHg4MGFiN2I0OCwgMHhiMTc0MWEwOSl9LAorICAg
ICAgICAgIHtUT0JOKDB4ZWMwZTE1ZDQsIDB4MjdkMzMxN2YpLCBUT0JOKDB4OGRmYzFkZGIsIDB4
MWE2NDY3MWUpLAorICAgICAgICAgICBUT0JOKDB4OTNjYzVkNWYsIDB4ZDQ5YzViOTIpLCBUT0JO
KDB4Yzk5NWQ1M2QsIDB4MzY3NGEzMzEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzMDJlNDFlYywg
MHgwOTAwOTBhZSksIFRPQk4oMHgyMjc4YTBjYywgMHhlZGIwNjgzMCksCisgICAgICAgICAgIFRP
Qk4oMHgxZDAyNTkzMiwgMHhmYmM5OTY5MCksIFRPQk4oMHgwYzMyZmJkMiwgMHhiODBkNjhkYSl9
LAorICAgICAgICAgIHtUT0JOKDB4ZDc5MTQ2ZGEsIDB4ZjM0MWE2YzEpLCBUT0JOKDB4YWUwYmEx
MzksIDB4MWJlZjY4YTApLAorICAgICAgICAgICBUT0JOKDB4YzZiOGE1NjMsIDB4OGQ3NzRiM2Ep
LCBUT0JOKDB4MWNmMzA3YmQsIDB4ODgwYmE0ZDcpfX0sCisgICAgICAgICB7e1RPQk4oMHhjMDMz
YmRjNywgMHgxOTgwMzUxMSksIFRPQk4oMHhhOWY5N2IzYiwgMHg4ODg4YzNiZSksCisgICAgICAg
ICAgIFRPQk4oMHgzZDY4YWViYywgMHg4NWM2ZDA1ZSksIFRPQk4oMHhjM2I4OGE5ZCwgMHgxOTM5
MTllYil9LAorICAgICAgICAgIHtUT0JOKDB4MmQzMDA3NDgsIDB4YzQ4YjBlZTMpLCBUT0JOKDB4
NzUwNmJjN2MsIDB4MDdhNzQ2YzEpLAorICAgICAgICAgICBUT0JOKDB4ZmM0ODQzN2MsIDB4NmU2
ZDU3ZjMpLCBUT0JOKDB4NWJkNzE1ODcsIDB4Y2ZlYWE5MWEpfX0sCisgICAgICAgICB7e1RPQk4o
MHhhNGVkMDQwOCwgMHhjMWJjNTIyNSksIFRPQk4oMHhkMGI5NDZkYiwgMHgyNzE5MjI2ZCksCisg
ICAgICAgICAgIFRPQk4oMHgxMDllY2Q2MiwgMHg3NThkMmQ0MyksIFRPQk4oMHg3NWM4NDg1YSwg
MHgyNzUxNzU5Yil9LAorICAgICAgICAgIHtUT0JOKDB4YjBiNzVmNDksIDB4OWNlNDE3N2EpLCBU
T0JOKDB4NGZhNjFhMWUsIDB4NzljMTBjM2QpLAorICAgICAgICAgICBUT0JOKDB4YzA2MmQzMDAs
IDB4YTE2N2ZjZDcpLCBUT0JOKDB4NGRmMzg3NGMsIDB4NzUwZjBmYTgpfX0sCisgICAgICAgICB7
e1RPQk4oMHgyOWFlMmNmOSwgMHg4M2RmZWRjOSksIFRPQk4oMHhmODQzNzEzNCwgMHg4ZDg3NjMx
YSksCisgICAgICAgICAgIFRPQk4oMHhhZjU3MTcxMSwgMHg3NDI5YzhkMiksIFRPQk4oMHgxOGQx
NTg2NywgMHgxNDZkOTI3Mil9LAorICAgICAgICAgIHtUT0JOKDB4ODMwNTNlY2YsIDB4Njk3Njli
YjcpLCBUT0JOKDB4YzU1ZWI4NTYsIDB4YzQ3OWFiODIpLAorICAgICAgICAgICBUT0JOKDB4NWVm
Nzc5MWMsIDB4MjFiMGY0YjIpLCBUT0JOKDB4YWE1OTU2YmEsIDB4M2Q0OTE1MjUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg0MDdhOTZjMiwgMHg5ZmUyMGViYSksIFRPQk4oMHhmMjcxNjhiYiwgMHhl
NTJhNWFkMyksCisgICAgICAgICAgIFRPQk4oMHg0M2I2MGFiMywgMHhiZjFkOWQ4OSksIFRPQk4o
MHhlNDVjNTFlZiwgMHg3MTBlNzI3YSl9LAorICAgICAgICAgIHtUT0JOKDB4ZGZjYTUyNzYsIDB4
MDk5YjQyMjEpLCBUT0JOKDB4OGRjNjQwN2MsIDB4MjU1N2ExNTkpLAorICAgICAgICAgICBUT0JO
KDB4MGVhZDgzMzUsIDB4OTEwMzU4OTUpLCBUT0JOKDB4MGE5ZGI5NTcsIDB4OWM1NWRjMzIpfX0s
CisgICAgICAgICB7e1RPQk4oMHhlNDA3MzZkMywgMHhkZjYxYmM3NiksIFRPQk4oMHgxM2E2MTlj
MCwgMHgzZjc3OGNkYiksCisgICAgICAgICAgIFRPQk4oMHg2ZGQ5MjFhNCwgMHhjNTZlYTI4Ziks
IFRPQk4oMHg3NmE1MjQzMywgMHgyZmE2NDdiNCl9LAorICAgICAgICAgIHtUT0JOKDB4MjM1OTE4
OTEsIDB4YWM1YmRjNWQpLCBUT0JOKDB4ZmY0YTFhNzIsIDB4YmFjN2RjMDEpLAorICAgICAgICAg
ICBUT0JOKDB4OTkwNWUyNjEsIDB4NjJkZjg0NTMpLCBUT0JOKDB4M2FjMDQ1ZGYsIDB4ZTYzYjI2
NWYpfX0sCisgICAgICAgICB7e1RPQk4oMHg4YTNmMzQxYiwgMHhhZDUzZGJhNyksIFRPQk4oMHg4
ZWMyNjljYywgMHg4MzdiNjI1YSksCisgICAgICAgICAgIFRPQk4oMHhkNzFhMjc4MiwgMHgzYWUz
MTE4OSksIFRPQk4oMHg4ZmI0ZjlhMywgMHg1NWU5NjEyMCl9LAorICAgICAgICAgIHtUT0JOKDB4
ODA0YWY4MjMsIDB4ZmY5ODc1Y2YpLCBUT0JOKDB4MjMyMjRmNTcsIDB4NWQ0NDJhOWIpLAorICAg
ICAgICAgICBUT0JOKDB4MWM0ZDNiOWUsIDB4ZWNjNjI2NzkpLCBUT0JOKDB4OTFkYTIyZmIsIDB4
YTBlN2RkYjEpfX0sCisgICAgICAgICB7e1RPQk4oMHhhMzcwMzI0ZCwgMHg2YzA0YTY2MSksIFRP
Qk4oMHg5NzEwZDNiNiwgMHg1ZTM3NmQxNyksCisgICAgICAgICAgIFRPQk4oMHhlZDhjOThmMCwg
MHgzMDQ0ZTM1NyksIFRPQk4oMHhjMzY0ZWJiZSwgMHg2NDIyNzAxYyl9LAorICAgICAgICAgIHtU
T0JOKDB4MzQ3ZjVkNTEsIDB4NzczM2Q2MWMpLCBUT0JOKDB4ZDU1NjQ0YjksIDB4Y2VhODI2YzMp
LAorICAgICAgICAgICBUT0JOKDB4ODBjNmUwYWQsIDB4NTVhMjU1NDgpLCBUT0JOKDB4MGFhNzY0
MWQsIDB4ODQ0MjIwYTcpfX0sCisgICAgICAgICB7e1RPQk4oMHgxNDM4ZWM4MSwgMHgzMTgxMDY2
MCksIFRPQk4oMHg5ZGZhNjUwNywgMHhkZTRiNDA0MyksCisgICAgICAgICAgIFRPQk4oMHgxMGI1
MTVkOCwgMHhjYzNlMDI3MyksIFRPQk4oMHgxYjYwNjZkZCwgMHgyOGQ4Y2ZiMil9LAorICAgICAg
ICAgIHtUT0JOKDB4ZDNiMDQ1OTEsIDB4OWM5ZWZlYmQpLCBUT0JOKDB4NDI1ZDRiZGYsIDB4YTIx
YzFmZjQpLAorICAgICAgICAgICBUT0JOKDB4NWZlNWFmMTksIDB4ZDU3NjA3ZDMpLCBUT0JOKDB4
YmJmNzczZjcsIDB4NTQ0ODEwODQpfX0sCisgICAgICAgICB7e1RPQk4oMHg4NDM1YmQ2OSwgMHg5
NGIwM2VkMSksIFRPQk4oMHhkOWFkMWRlMywgMHg2MzRjYzU0NiksCisgICAgICAgICAgIFRPQk4o
MHgyY2Y0MjNmYywgMHgwMGU0MjBjYSksIFRPQk4oMHhlZWQyNmQ4MCwgMHhhMDMwOTZkZCl9LAor
ICAgICAgICAgIHtUT0JOKDB4ZDdmNjBiZTcsIDB4YTRkYjA5ZDIpLCBUT0JOKDB4ZjQ3ZjU2OWQs
IDB4OTYwNjIyZjcpLAorICAgICAgICAgICBUT0JOKDB4ZTU5MjVmZDcsIDB4NzI5NmM3MjkpLCBU
T0JOKDB4ZWZmMmRiMjYsIDB4MjZjYTI3MTUpfX0sCisgICAgICAgICB7e1RPQk4oMHhhNmZjZDAx
NCwgMHhiOTEzZTc1OSksIFRPQk4oMHg1M2RhNDc4NiwgMHg4ZmY0ZGU5MyksCisgICAgICAgICAg
IFRPQk4oMHgxNDYxNmQ3OSwgMHhjMzIwNjhlMSksIFRPQk4oMHhiMTg3ZDY2NCwgMHhjY2RmMzUy
ZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZjdhZmI2NTAsIDB4MWRjOTBiNTkpLCBUT0JOKDB4ODE3
MGU5NDMsIDB4N2RhYTFiMjYpLAorICAgICAgICAgICBUT0JOKDB4YzhlM2JkZDgsIDB4NzAwYzBh
ODQpLCBUT0JOKDB4NmU4ZDM0NWYsIDB4NjQ4MmJkZmEpfX0sCisgICAgICAgICB7e1RPQk4oMHg4
NGNmYmZhMSwgMHhjNWM1ZWE1MCksIFRPQk4oMHhkM2JhZjE0YywgMHg2Nzk2MDY4MSksCisgICAg
ICAgICAgIFRPQk4oMHgyNjM5ODQwMywgMHgwZGQ1MDk0MiksIFRPQk4oMHhlNGI3ODM5YywgMHg0
NzE2YTY2Myl9LAorICAgICAgICAgIHtUT0JOKDB4ZDVmMWY3OTQsIDB4ZTdkZTZkYzApLCBUT0JO
KDB4NWNkMGY0ZDQsIDB4NjIyYWE3Y2UpLAorICAgICAgICAgICBUT0JOKDB4NTI5NWYzZjEsIDB4
NTlhY2ZlZWMpLCBUT0JOKDB4OGQ5MzM1NTIsIDB4OTUzZTA2MDcpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhjN2RiOGVjNSwgMHg3NzZjNTcyMiksIFRPQk4oMHhkYzQ2N2U2MiwgMHgyYjVmMjkwYyks
CisgICAgICAgICAgIFRPQk4oMHhkNDI5N2U3MCwgMHg0ZmY0MjVhOSksIFRPQk4oMHg0YmU5MjRj
MSwgMHgwY2Y3YmI3Mil9LAorICAgICAgICAgIHtUT0JOKDB4MGQ1ZGM1YWUsIDB4YTE4OTIxMzEp
LCBUT0JOKDB4OGJmOGE4ZTMsIDB4YTcwNWM5OTIpLAorICAgICAgICAgICBUT0JOKDB4NzNhMGIw
NjQsIDB4N2EzMDVhYzUpLCBUT0JOKDB4MDBjOWNhNGUsIDB4OWE4Yzc3YTgpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg1ZGZlZTgwZiwgMHg4Mzc3NGJkZCksIFRPQk4oMHg2MzEzMTYwMiwgMHg4NTcz
NDQ4NSksCisgICAgICAgICAgIFRPQk4oMHhhMWI1MjRhZSwgMHg5MTRhNjlhOSksIFRPQk4oMHhl
YmMyZmZhZiwgMHhkNGUzMDBkNyl9LAorICAgICAgICAgIHtUT0JOKDB4NTJjOTNkYjcsIDB4N2Nm
YTQ2YTUpLCBUT0JOKDB4NzFlNjE2MWYsIDB4MjE2NTNiNTApLAorICAgICAgICAgICBUT0JOKDB4
MzU3NGZjNTcsIDB4YTRiYzU4MGEpLCBUT0JOKDB4YzA5MDE1ZGQsIDB4ZTFiYzEyNTMpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg0YjdiNDdiMiwgMHhkMTc0ZDdhYSksIFRPQk4oMHg0MDcyZDhlOCwg
MHhmM2ExNWQwNCksCisgICAgICAgICAgIFRPQk4oMHhlZWI3ZDQ3ZiwgMHhkNmZhMDdlZCksIFRP
Qk4oMHg2ZjJiOWZmOSwgMHhlZGJkYWZiMSl9LAorICAgICAgICAgIHtUT0JOKDB4MThjNTE2MTUs
IDB4Mzc2MGZlOGEpLCBUT0JOKDB4N2E5NmU2YmYsIDB4ZjA2YzZjMTMpLAorICAgICAgICAgICBU
T0JOKDB4NGQ3YTA0MTAsIDB4MGVhMmQwNzEpLCBUT0JOKDB4YTE5MTRlOWIsIDB4MGJlMmE1Y2Up
fX0sCisgICAgICAgICB7e1RPQk4oMHg1NzI2ZTM1NywgMHhkOGEzYzVjZiksIFRPQk4oMHgxMTk3
ZWNjMywgMHgyYWJiMmIxMyksCisgICAgICAgICAgIFRPQk4oMHg2YzBkN2Y3ZiwgMHgzMWFlODhk
ZCksIFRPQk4oMHgxNWIyMGQxYSwgMHhmZGJiM2VmZSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2Qw
NmFhMjYsIDB4NzA1ODQwMzkpLCBUT0JOKDB4MjI3N2M5NjksIDB4YTdkYzk3NDcpLAorICAgICAg
ICAgICBUT0JOKDB4YmNhNjk1ODcsIDB4Nzg1NWQ4MTUpLCBUT0JOKDB4ODk5ZWEyMzgsIDB4NTE4
OGIzMmEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzN2Q5MjI4YiwgMHg3NjBjMWM5ZCksIFRPQk4o
MHhjN2VmYmIxMSwgMHg5YjVjMThkYSksCisgICAgICAgICAgIFRPQk4oMHg3ZjBkMWJjOCwgMHgx
OWY2ZGJjNSksIFRPQk4oMHg0ODc1Mzg0YiwgMHgwN2U2OTA1Yil9LAorICAgICAgICAgIHtUT0JO
KDB4YzdjNTBiYWEsIDB4M2JhOGNkODYpLCBUT0JOKDB4YjBjZTQwZmIsIDB4YzI5MDVkZTApLAor
ICAgICAgICAgICBUT0JOKDB4NzA4NDA2NzMsIDB4N2EyMzE5NTIpLCBUT0JOKDB4YTkxMmEyNjIs
IDB4Y2Y0M2RlMjYpfX0sCisgICAgICAgICB7e1RPQk4oMHg5YzM4ZGRjYywgMHhlYjViNzZjMSks
IFRPQk4oMHg3NDZmNTI4NSwgMHgyNmZjMGFiNCksCisgICAgICAgICAgIFRPQk4oMHg1MmE2M2E1
MCwgMHhkNjJjMjY5ZiksIFRPQk4oMHg2MDA0OWM1NSwgMHg5OTQ1ODYyMSl9LAorICAgICAgICAg
IHtUT0JOKDB4ZTdmNDhmODIsIDB4M2MyZjdjOWUpLCBUT0JOKDB4NmJkOTkwNDMsIDB4OTE3ZDVj
ZjMpLAorICAgICAgICAgICBUT0JOKDB4ZWIxMzE3YTgsIDB4ODcwMWY0NjkpLCBUT0JOKDB4YmQz
ZmUyZWQsIDB4OWE0NDlmZTApfX0sCisgICAgICAgICB7e1RPQk4oMHg0MjFlNzljYSwgMHgxMmVm
M2QzNiksIFRPQk4oMHg5ZWUzYzM2YywgMHgzZTdlYTVkZSksCisgICAgICAgICAgIFRPQk4oMHhl
NDgxOThiNSwgMHhjZGZmMzZmNyksIFRPQk4oMHhhZmY0Zjk2NywgMHhjNmI4MjIyOCl9LAorICAg
ICAgICAgIHtUT0JOKDB4MTVlMTlkZDAsIDB4YzQ3YWRiN2UpLCBUT0JOKDB4NDU2OTliMjMsIDB4
MDMyZTdkZmEpLAorICAgICAgICAgICBUT0JOKDB4NDA2ODBjOGIsIDB4MWZhZTAyNmEpLCBUT0JO
KDB4NWEzNDdhNDgsIDB4NTUwZGJmNGQpfX0sCisgICAgICAgICB7e1RPQk4oMHhlNjUyNTMzYiwg
MHgzY2VmMGQ3ZCksIFRPQk4oMHhkOTRmN2IxOCwgMHgyYmJiNDM4MSksCisgICAgICAgICAgIFRP
Qk4oMHg4Mzg3NTJiZSwgMHgwZTgwZjUwMCksIFRPQk4oMHg4ZTZlMjQ4OCwgMHg5ZTljOWJmYil9
LAorICAgICAgICAgIHtUT0JOKDB4Yzk3NTE2OTcsIDB4MTZjYWNhNmEpLCBUT0JOKDB4ODY2YzQ5
ZDgsIDB4Mzg1MzFhZDkpLAorICAgICAgICAgICBUT0JOKDB4YzkxN2UyMzksIDB4NzE1MWFkZTEp
LCBUT0JOKDB4MmQwMTZlYzEsIDB4NjAzN2M0MDcpfX0sCisgICAgICAgICB7e1RPQk4oMHhhNDA3
Y2NjOSwgMHgwMGVhYzNmOSksIFRPQk4oMHg4MzVmNjI4MCwgMHhlMmVkNDc0OCksCisgICAgICAg
ICAgIFRPQk4oMHhjYzU0YzM0NywgMHgxY2M5OGUwZCksIFRPQk4oMHgwZTk2OTkzNywgMHhkY2I1
NzJlYil9LAorICAgICAgICAgIHtUT0JOKDB4MWIxNmM4ZTgsIDB4OGYzMGM5Y2IpLCBUT0JOKDB4
YTYwNmFlNzUsIDB4MzczYzQ2NjEpLAorICAgICAgICAgICBUT0JOKDB4NDdhYTY4OWIsIDB4MzU1
MDJjYWIpLCBUT0JOKDB4Zjg5MDE0YWUsIDB4NGQ5YmI2NGYpfX0sCisgICAgICAgICB7e1RPQk4o
MHgyMDJmNmE5YywgMHgzMWM3MWY3YiksIFRPQk4oMHgwMWY5NWFhMywgMHgyOTZmZmU1YyksCisg
ICAgICAgICAgIFRPQk4oMHg1ZmMwNjAxNCwgMHg1M2NlYzNhMyksIFRPQk4oMHhlYjk5MTIzNywg
MHg1ZjQ5OGE0NSl9LAorICAgICAgICAgIHtUT0JOKDB4YWU5YTkzNWUsIDB4NWQ5MWJhODcpLCBU
T0JOKDB4YzZhYzYyODEsIDB4MGI1NjRhMTkpLAorICAgICAgICAgICBUT0JOKDB4OGE4ZmU4MWMs
IDB4M2JkNDRlNjkpLCBUT0JOKDB4N2M4YjQ2N2YsIDB4OWRkMTFkNDUpfX0sCisgICAgICAgICB7
e1RPQk4oMHhmNzcyMjUxZiwgMHhlYTViOGU2OSksIFRPQk4oMHhhZWVjYjNiZCwgMHhjNWI3NWZi
YyksCisgICAgICAgICAgIFRPQk4oMHgxYWNhMzMzMSwgMHg4ODdmZjBlNSksIFRPQk4oMHhiZTVk
NDlmZiwgMHgxOWYwYTEzMSl9LAorICAgICAgICAgIHtUT0JOKDB4NTgyYzEzYWEsIDB4ZTVjODY0
NmYpLCBUT0JOKDB4ZGJhYTEyZTgsIDB4MjBlMTk5ODApLAorICAgICAgICAgICBUT0JOKDB4OGY0
MGYzMWEsIDB4ZjdhYmJkOTQpLCBUT0JOKDB4MWYxM2Y1YTgsIDB4MWRmYzc2NjMpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg1ZDgxZjFlZSwgMHhhY2ViNGZjMCksIFRPQk4oMHgzNjI1NjAwMiwgMHg1
ZTZmMGY0MiksCisgICAgICAgICAgIFRPQk4oMHg0YjY3ZDZkNywgMHg3NTEzNzBjOCksIFRPQk4o
MHgyNjA4YjY5OCwgMHgwM2U4MDU4OSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2ZjMGQyZmMsIDB4
MDUyNjgzMDEpLCBUT0JOKDB4YTY5NDNkMzksIDB4NDAzMDkyMTIpLAorICAgICAgICAgICBUT0JO
KDB4MTkyYTkwYzIsIDB4MWZkMGUxYzIpLCBUT0JOKDB4YjIwOWYxMTMsIDB4MzdmMWRjNzYpfX0s
CisgICAgICAgICB7e1RPQk4oMHhlZmNjNWUwNiwgMHg5N2JmMTI5OCksIFRPQk4oMHhjYmRiNjcz
MCwgMHgyMTlkNjM5ZSksCisgICAgICAgICAgIFRPQk4oMHhkMDA5YzExNiwgMHhiODFlOGM2Ziks
IFRPQk4oMHhhM2ZmZGRlMywgMHgxYTdjZTJlNSl9LAorICAgICAgICAgIHtUT0JOKDB4YzUzZmJh
YWEsIDB4YTkxNGQzYmEpLCBUT0JOKDB4ODM2ZDUwMGYsIDB4ODhkZjg1ZWUpLAorICAgICAgICAg
ICBUT0JOKDB4ZDk4ZGM3MWIsIDB4NjZlZTA3NTEpLCBUT0JOKDB4NWEzZDcwMDUsIDB4NzE0NTE2
ZmQpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMWQzNjM0ZCwgMHgzOWVlZGJiYSksIFRPQk4oMHgz
NWNkMmU2OCwgMHgwNDU1YTQ2ZCksCisgICAgICAgICAgIFRPQk4oMHhjOGNhZmU2NSwgMHhmOWQ3
ZWIwYyksIFRPQk4oMHhiZGEzY2U5ZSwgMHgwMGNlZmIzZSl9LAorICAgICAgICAgIHtUT0JOKDB4
ZGRjMTdhNjAsIDB4MmM5Y2Y3YTQpLCBUT0JOKDB4MDE1NzJlZTQsIDB4N2JjYjg3NzMpLAorICAg
ICAgICAgICBUT0JOKDB4YTkyYjJiMDEsIDB4OGM3NTQ4ZGYpLCBUT0JOKDB4NzMyZmQzMDksIDB4
YTg0NjAwZTMpfX0sCisgICAgICAgICB7e1RPQk4oMHhlMjIxMDljNywgMHgxNjU0M2E0MCksIFRP
Qk4oMHg5YWNhZmQzNiwgMHhmZWRlM2M2YyksCisgICAgICAgICAgIFRPQk4oMHhmYjIwNjg1Miwg
MHg2ODI0ZTYxNCksIFRPQk4oMHgyYTQ1NDRhOSwgMHhkYTI1ZGNhMCl9LAorICAgICAgICAgIHtU
T0JOKDB4MjU5ODUyNjIsIDB4OTFkNjBiMDYpLCBUT0JOKDB4MjgxYjdiZTksIDB4Mjg3NTM1NDUp
LAorICAgICAgICAgICBUT0JOKDB4ZWM2NjdiMWEsIDB4OTBmMTNiMjcpLCBUT0JOKDB4MzNhODNh
ZmYsIDB4OTQwZTJlYjQpfX0sCisgICAgICAgICB7e1RPQk4oMHg4MDAwOTg2MiwgMHhkNWQ3MjFk
NSksIFRPQk4oMHgwYzMzNTdhMywgMHg1YmQzYTE4MiksCisgICAgICAgICAgIFRPQk4oMHgyN2Yz
YTgzYiwgMHg3YWEyY2RhNCksIFRPQk4oMHhiNThhZTc0ZSwgMHhmNmY4MzA4NSl9LAorICAgICAg
ICAgIHtUT0JOKDB4MmE5MTFhODEsIDB4MmU2ZGFkNmIpLCBUT0JOKDB4ZGUyODYwNTEsIDB4ZjQz
ZDZjNWIpLAorICAgICAgICAgICBUT0JOKDB4NGJkY2NjNDEsIDB4Zjk5NmM0ZDgpLCBUT0JOKDB4
ZTczMTJlYzAsIDB4MGFlMWUyNGUpfX19LAorICAgICAgICB7e3tUT0JOKDB4ZjhkMTEyZTcsIDB4
NmU2NDg1YjMpLCBUT0JOKDB4NGQzZTI0ZGIsIDB4NzcxYzUyZjgpLAorICAgICAgICAgICBUT0JO
KDB4NDhlM2VlNDEsIDB4Njg0YTJmNmQpLCBUT0JOKDB4NzE2MTk1N2QsIDB4MjFkOTU1NTEpfSwK
KyAgICAgICAgICB7VE9CTigweDE5NjMxMjgzLCAweGNkYjEyYTZjKSwgVE9CTigweGJmM2ZhODgy
LCAweDJlNTBlMTY0KSwKKyAgICAgICAgICAgVE9CTigweGY2MjU0YjYzLCAweDMxNjZjYzczKSwg
VE9CTigweDNhZWZhN2FlLCAweGFlZThjYzM4KX19LAorICAgICAgICAge3tUT0JOKDB4NzliMGZl
NjIsIDB4M2IzNmY5ZmQpLCBUT0JOKDB4MjY1NDNiMjMsIDB4ZmRlMTlmYzApLAorICAgICAgICAg
ICBUT0JOKDB4MTM2ZTY0YTAsIDB4OTU4NDgyZWYpLCBUT0JOKDB4MjNmNjM3NzEsIDB4OWIwOTU4
MjUpfSwKKyAgICAgICAgICB7VE9CTigweDE0Y2ZkNTk2LCAweGI2YTExNDJlKSwgVE9CTigweDVl
YTZhYWM2LCAweDMzNWFhYzBiKSwKKyAgICAgICAgICAgVE9CTigweDg2YTBlOGJkLCAweGYzMDgx
ZGQ1KSwgVE9CTigweDVmYjg5ZDc5LCAweDAwM2RjMTJhKX19LAorICAgICAgICAge3tUT0JOKDB4
ZjYxNWMzM2EsIDB4ZjcyZTM0ZDQpLCBUT0JOKDB4MGJkOWVhNDAsIDB4MTEwZWVjMzUpLAorICAg
ICAgICAgICBUT0JOKDB4MWMxMmJjNWIsIDB4YzFkZWEzNGUpLCBUT0JOKDB4Njg2NTg0YzksIDB4
NDlhZTQ2OTkpfSwKKyAgICAgICAgICB7VE9CTigweDEzYWQ5NWQzLCAweDhjOTdiOTQyKSwgVE9C
TigweDQ2MDk1NjFhLCAweDRlNWM3NTYyKSwKKyAgICAgICAgICAgVE9CTigweDllOTRhNGFlLCAw
eGYyNzM3Zjg5KSwgVE9CTigweGY1NzU5NGM2LCAweDM3MWM3OGI2KX19LAorICAgICAgICAge3tU
T0JOKDB4MGYwMTY1ZmMsIDB4ZTM3NzllZTMpLCBUT0JOKDB4ZTAwZTdmOWQsIDB4YmQ0OTVkOWUp
LAorICAgICAgICAgICBUT0JOKDB4MWZhNGVmYTIsIDB4MjAyODRlN2EpLCBUT0JOKDB4NDU2NGJh
ZGUsIDB4NDdhYzYyMTkpfSwKKyAgICAgICAgICB7VE9CTigweDkwZTYzMTJhLCAweGM0NzA4ZThl
KSwgVE9CTigweDRmNTcyNWZiLCAweGE3MWU5YWRmKSwKKyAgICAgICAgICAgVE9CTigweGU5NWY1
NWFlLCAweDNkNjg0YjlmKSwgVE9CTigweDQ3ZjdjY2IxLCAweDFlOTRiNDE1KX19LAorICAgICAg
ICAge3tUT0JOKDB4NzMyMjg1MWIsIDB4OGQ5NDY1ODEpLCBUT0JOKDB4ZjBkMTMxMzMsIDB4YmRm
NGEwMTIpLAorICAgICAgICAgICBUT0JOKDB4YTM1MTBmNjksIDB4NjU4NGRhZTApLCBUT0JOKDB4
MDNhN2MxNzEsIDB4M2M5ZjZjNmQpfSwKKyAgICAgICAgICB7VE9CTigweDViZTk3ZjM4LCAweGU0
NzUzODFhKSwgVE9CTigweGNhMWJhNDIyLCAweDg1ODIzMzM0KSwKKyAgICAgICAgICAgVE9CTigw
eGY4M2NjNWM3LCAweDBiZTE3ZGRhKSwgVE9CTigweDE1OGIxNDk0LCAweDBiOTE4YzBmKX19LAor
ICAgICAgICAge3tUT0JOKDB4ZGEzYTc3ZTUsIDB4NTIyZTZiNjkpLCBUT0JOKDB4NjljOTA4YzMs
IDB4YmJjZDZjMTgpLAorICAgICAgICAgICBUT0JOKDB4MWYxYjllNDgsIDB4ZDkyNGZkNTYpLCBU
T0JOKDB4MzdjNjRlMzYsIDB4YWE0YmIzZjcpfSwKKyAgICAgICAgICB7VE9CTigweDVhNGZkYmRm
LCAweGVlNDc4ZDdkKSwgVE9CTigweGJhNzVjOGJjLCAweDAxOTNmN2EwKSwKKyAgICAgICAgICAg
VE9CTigweDg0YmMxZTg0LCAweDU2Y2QxNmRmKSwgVE9CTigweDFmYjA4ZjA4LCAweDQ2ZmFkMTUx
KX19LAorICAgICAgICAge3tUT0JOKDB4OGE3Y2FiZjksIDB4ODQyZTlmMzApLCBUT0JOKDB4YTMz
MWQ0YmYsIDB4NWVhYjgzYWYpLAorICAgICAgICAgICBUT0JOKDB4ZDI3MmNmYmEsIDB4MDE3ZjJh
NmEpLCBUT0JOKDB4Mjc1NjBhYmMsIDB4ODNhYmEwZTMpfSwKKyAgICAgICAgICB7VE9CTigweDk0
YjgzMzg3LCAweDBlM2E2Yjc1KSwgVE9CTigweDI1YzZhZWEyLCAweDZiOWY1MGY1KSwKKyAgICAg
ICAgICAgVE9CTigweDgwM2Q2OTFkLCAweGI1ZmRmNmQwKSwgVE9CTigweDAzYjc3NTA5LCAweGU2
MzMzNTE0KX19LAorICAgICAgICAge3tUT0JOKDB4MzYxNzg5MDMsIDB4NjFhMzQxYzEpLCBUT0JO
KDB4MzYwNGRjNjAsIDB4MGNmZDYxNDIpLAorICAgICAgICAgICBUT0JOKDB4MDIyMjk1ZWIsIDB4
ODUzMzMxNmMpLCBUT0JOKDB4M2RiZGU0YWMsIDB4NDRhZjI5MjIpfSwKKyAgICAgICAgICB7VE9C
TigweDg5OGFmYzVkLCAweDFjN2VlZjY5KSwgVE9CTigweDU4ODk2ODA1LCAweGQxNGY0ZmExKSwK
KyAgICAgICAgICAgVE9CTigweDA1MDAyMTYwLCAweDIwM2MyMWNhKSwgVE9CTigweDZmMGQxZjMw
LCAweDQwZWY3MzBiKX19LAorICAgICAgICAge3tUT0JOKDB4OGU4YzQ0ZDQsIDB4MTk2MjI0Zjgp
LCBUT0JOKDB4NzVhNGFiOTUsIDB4Mzc0ZDA3OWQpLAorICAgICAgICAgICBUT0JOKDB4NzkwODVl
Y2MsIDB4N2Q0OGYxMjMpLCBUT0JOKDB4NTZmMDRkMzEsIDB4MWJmNjVhZDgpfSwKKyAgICAgICAg
ICB7VE9CTigweGUyMjBiZjFjLCAweGJkYTYwMmIyKSwgVE9CTigweDczZWUxNzQyLCAweGY5NjEy
YzY5KSwKKyAgICAgICAgICAgVE9CTigweDc2MDA4ZmM4LCAweDA4NGZkMDZiKSwgVE9CTigweDQw
MDBlZjlmLCAweGYxMTM4MGQxKX19LAorICAgICAgICAge3tUT0JOKDB4NDgyMDFiNGIsIDB4MTJj
ZmUyOTcpLCBUT0JOKDB4M2VlZTEyOWMsIDB4MjkyZjc0ZTUpLAorICAgICAgICAgICBUT0JOKDB4
ZTFmZTExNGUsIDB4YzllODc0ZTgpLCBUT0JOKDB4ODk5YjA1NWMsIDB4OTJjNWZjNDEpfSwKKyAg
ICAgICAgICB7VE9CTigweDRlNDc3YTY0LCAweDNhMzljOGNmKSwgVE9CTigweDgyZjA5ZWZlLCAw
eDc4OTYzY2M5KSwKKyAgICAgICAgICAgVE9CTigweDZmZDNmZDhmLCAweGQzMzNmODYzKSwgVE9C
TigweDg1MTMyYjJhLCAweGRjOTQ5YzYzKX19LAorICAgICAgICAge3tUT0JOKDB4N2UwNmEzYWIs
IDB4NTE2ZWIxN2IpLCBUT0JOKDB4NzNiZWMwNmYsIDB4ZDJjNzM3MmIpLAorICAgICAgICAgICBU
T0JOKDB4ZTRmNzRmNTUsIDB4YmE4OTZkYTYpLCBUT0JOKDB4YmI0YWZlZjgsIDB4OGU5ZWI0MGYp
fSwKKyAgICAgICAgICB7VE9CTigweDJkNzViZWM4LCAweGU2MWQ2NmIwKSwgVE9CTigweDAyYmRh
NGI0LCAweGVmMjkzMDBiKSwKKyAgICAgICAgICAgVE9CTigweDhiYmFhOGRlLCAweDAyNmJhYTVh
KSwgVE9CTigweGZmNTRiZWZkLCAweGEwN2Y0NDQwKX19LAorICAgICAgICAge3tUT0JOKDB4YmQ5
YjhiMWQsIDB4YmU3YTJhZjMpLCBUT0JOKDB4ZWM1MWNhYTksIDB4NGZiNzRhNzIpLAorICAgICAg
ICAgICBUT0JOKDB4Yjk5MzdhNGIsIDB4NjM4Nzk2OTcpLCBUT0JOKDB4N2M5YTlkMjAsIDB4ZWMy
Njg3ZDUpfSwKKyAgICAgICAgICB7VE9CTigweDE3NzNlNDRmLCAweDZlZjVmMDE0KSwgVE9CTigw
eDhhYmNmNDEyLCAweGU5MGM2OTAwKSwKKyAgICAgICAgICAgVE9CTigweDM4N2JkMDIyLCAweDgx
NDIxNjFlKSwgVE9CTigweDUwMzkzNzU1LCAweGZjYjZmZjJhKX19LAorICAgICAgICAge3tUT0JO
KDB4OTgxM2ZkNTYsIDB4ZWQ2ZGVmNjMpLCBUT0JOKDB4NTNjZjY0ODIsIDB4N2Q1MzEwNmMpLAor
ICAgICAgICAgICBUT0JOKDB4OTkxYTM1YmQsIDB4NDMxZjdhYzEpLCBUT0JOKDB4ZjFlMjc0ZGQs
IDB4NjNlNjVmYWYpfSwKKyAgICAgICAgICB7VE9CTigweGY2M2ZmYTNjLCAweDQ0Y2M3ODgwKSwg
VE9CTigweDQxMWE0MjZiLCAweDdjMjU2OTgxKSwKKyAgICAgICAgICAgVE9CTigweGI2OThiOWZk
LCAweDkzYTQyMGUwKSwgVE9CTigweDg5ZmRkZGMwLCAweGFlNTNmOGZlKX19LAorICAgICAgICAg
e3tUT0JOKDB4NzY2ZTA3MjIsIDB4MzIzOThiYWEpLCBUT0JOKDB4MjA1ZmVlNDIsIDB4NWNmY2Ew
MzEpLAorICAgICAgICAgICBUT0JOKDB4YTQ5ZjUzNDEsIDB4N2EwMjljZjIpLCBUT0JOKDB4YTg4
YzY4YjgsIDB4NDAyMzg5MGQpfSwKKyAgICAgICAgICB7VE9CTigweGJjMjc1MDQxLCAweDczMzdh
YWE4KSwgVE9CTigweDllZDM2NGFkLCAweDBlYjM4NGY0KSwKKyAgICAgICAgICAgVE9CTigweGUw
ODE2Zjg1LCAweDI5YWJhOTJmKSwgVE9CTigweDJlOWUxOTQxLCAweDA0ZTM4YTg4KX19LAorICAg
ICAgICAge3tUT0JOKDB4NTdlZWY0NGEsIDB4M2RhZmQyZDUpLCBUT0JOKDB4MzVkMWZhZTUsIDB4
OTdlZDk4ZDgpLAorICAgICAgICAgICBUT0JOKDB4NTA2MjhjMDksIDB4MjMwN2Y5YjEpLCBUT0JO
KDB4MDlkODRhYWUsIDB4ZDZjYmE1YzYpfSwKKyAgICAgICAgICB7VE9CTigweDY3MDcxYmM3LCAw
eDg4YWFhNjkxKSwgVE9CTigweDJkZWE1N2E5LCAweGFmZTZjYjAzKSwKKyAgICAgICAgICAgVE9C
TigweGRmZTExYmI0LCAweDNkNzhhYzAxKSwgVE9CTigweDcyODY0MThjLCAweDdmZDdhYTUxKX19
LAorICAgICAgICAge3tUT0JOKDB4ZmFiZjc3MDksIDB4NzdmNzE5NWEpLCBUT0JOKDB4OGVjODYx
NjcsIDB4YWRlYjgzOGYpLAorICAgICAgICAgICBUT0JOKDB4ZWExMjg1YTgsIDB4YmI0ZjAxMmQp
LCBUT0JOKDB4ZDY4ODM1MDMsIDB4OWEzZWFiM2YpfSwKKyAgICAgICAgICB7VE9CTigweGVlNWQy
NGY4LCAweDMwOTAwNGMyKSwgVE9CTigweGE5NmU0Yjc2LCAweDEzZmZlOTVlKSwKKyAgICAgICAg
ICAgVE9CTigweDBjZGZmZTEyLCAweGJkMjIzZWE0KSwgVE9CTigweDhmNWMyZWU1LCAweGI2NzM5
YTUzKX19LAorICAgICAgICAge3tUT0JOKDB4NWNiNGFhYTUsIDB4ZGQ5NjgxOTgpLCBUT0JOKDB4
ZmExMzFjNTIsIDB4NzI0MTNhNmMpLAorICAgICAgICAgICBUT0JOKDB4NTNkNDZhOTAsIDB4OTUz
NmQ5MDMpLCBUT0JOKDB4YjI3MGYwZDMsIDB4NDg2MDZkOGUpfSwKKyAgICAgICAgICB7VE9CTigw
eDUxOGM3NTY0LCAweGEwNTNhM2JjKSwgVE9CTigweDA4ODI1NGI3LCAweDFhODZjYWVmKSwKKyAg
ICAgICAgICAgVE9CTigweGIzYmE4Y2I0LCAweDBhYjVlZmQwKSwgVE9CTigweDVjNTk5MDBlLCAw
eDQ2MDU5NDVkKX19LAorICAgICAgICAge3tUT0JOKDB4ZWNhY2UxZGQsIDB4YTE4ODczOTUpLCBU
T0JOKDB4NDA5NjBmMzYsIDB4OTMyYTY1ZGUpLAorICAgICAgICAgICBUT0JOKDB4OTYxMWZmNWMs
IDB4M2FhOTU1MjkpLCBUT0JOKDB4YzU4MjE1YjAsIDB4N2MxZTVhMzYpfSwKKyAgICAgICAgICB7
VE9CTigweGQ0OGM5YjU4LCAweGYwZTFhNTI0KSwgVE9CTigweGI0MDY4NTZiLCAweGY1OTBkZmI4
KSwKKyAgICAgICAgICAgVE9CTigweGM3NjA1ZTA0LCAweDljZDk1NjYyKSwgVE9CTigweDBkZDAz
NmVlLCAweGEzM2VjZjgyKX19LAorICAgICAgICAge3tUT0JOKDB4YTUwMTcxYWMsIDB4YzMzMTU2
YjMpLCBUT0JOKDB4ZjA5ZDI0ZWEsIDB4NGE4MDE3MmUpLAorICAgICAgICAgICBUT0JOKDB4NGUx
ZjcyYzYsIDB4NzZkYzhlZWYpLCBUT0JOKDB4ZTYwY2FhZGMsIDB4NWUzZDQ0ZWUpfSwKKyAgICAg
ICAgICB7VE9CTigweDAwNmVmOGE2LCAweDk3OWIxZDhmKSwgVE9CTigweDYwOTA4YTFjLCAweDk3
Nzg4ZDI2KSwKKyAgICAgICAgICAgVE9CTigweDZlMDhmOTViLCAweDI2NmZlZWMwKSwgVE9CTigw
eDYxODQyN2MyLCAweDIyZThjOTRlKX19LAorICAgICAgICAge3tUT0JOKDB4M2Q2MTMzMzksIDB4
NTkxNDVhNjUpLCBUT0JOKDB4Y2Q5YmMzNjgsIDB4ZmE0MDYzMzcpLAorICAgICAgICAgICBUT0JO
KDB4ODJkMTFiZTMsIDB4MmQ4YTUyYTApLCBUT0JOKDB4ZjY4NzdiMjcsIDB4OTdhMWM1OTApfSwK
KyAgICAgICAgICB7VE9CTigweDgzN2E4MTliLCAweGY1Y2JkYjI1KSwgVE9CTigweDJhNGZkMWQ4
LCAweGRlMDkwMjQ5KSwKKyAgICAgICAgICAgVE9CTigweDYyMmE3ZGU3LCAweDc0OTkwZTVmKSwg
VE9CTigweDg0MGZhNWEwLCAweDc5NDU1MTFiKX19LAorICAgICAgICAge3tUT0JOKDB4MzBiOTc0
YmUsIDB4NjU1ODg0MmQpLCBUT0JOKDB4NzBkZjhjNjQsIDB4MTdmM2QwYTYpLAorICAgICAgICAg
ICBUT0JOKDB4N2M4MDM1MjAsIDB4NzU0MmU0NmQpLCBUT0JOKDB4NzI1MWZlN2YsIDB4ZTRlY2M4
MjMpfSwKKyAgICAgICAgICB7VE9CTigweGU1OTEzNGNiLCAweDVlOWFhYzlhKSwgVE9CTigweDEx
YmIwOTM0LCAweGYwMDQ1ZDcxKSwKKyAgICAgICAgICAgVE9CTigweDUzZTVkOWI1LCAweGRiY2Ix
ZDRlKSwgVE9CTigweDhkOTdhOTA1LCAweDkyZGVmYzkxKX19LAorICAgICAgICAge3tUT0JOKDB4
ZmUyODkzMjcsIDB4Nzk0NmQzZjkpLCBUT0JOKDB4ZTEzMmJkMjQsIDB4MDc0NzIyNzMpLAorICAg
ICAgICAgICBUT0JOKDB4ZWVlYjUxMGMsIDB4MWViNmFlODYpLCBUT0JOKDB4Nzc3NzA4YzUsIDB4
ZjA1OTUwNjcpfSwKKyAgICAgICAgICB7VE9CTigweDE4ZTJjOGNkLCAweDEyOTcwMjllKSwgVE9C
TigweDJjNjEwOTVjLCAweGJiZjkzMDVlKSwKKyAgICAgICAgICAgVE9CTigweGU0NjZjMjU4LCAw
eDZiODVkNmQ5KSwgVE9CTigweDhhYzA2YzM2LCAweGRhMWVhNTMwKX19LAorICAgICAgICAge3tU
T0JOKDB4YTM2NWRjMzksIDB4YTEzMDQ2NjgpLCBUT0JOKDB4ZTRhOWM4ODUsIDB4MDdmODk2MDYp
LAorICAgICAgICAgICBUT0JOKDB4NjVhNDg5OGYsIDB4YWNjNzIyOGQpLCBUT0JOKDB4M2UyMzQ3
ZmYsIDB4ODRjYTgzMDMpfSwKKyAgICAgICAgICB7VE9CTigweGE1ZjZmYjc3LCAweGVhN2QyM2Ez
KSwgVE9CTigweDJmYWMyNTdkLCAweDY3MmE3MWNkKSwKKyAgICAgICAgICAgVE9CTigweDY5MDhi
ZWY4LCAweDdlNmE0NGQzKSwgVE9CTigweDhmZjg3NTY2LCAweDg5MWQzZDdhKX19LAorICAgICAg
ICAge3tUT0JOKDB4ZTU4ZTkwYjMsIDB4NmIwY2Y4MmUpLCBUT0JOKDB4NjQzOGQyNDYsIDB4MjYx
NWI1ZTcpLAorICAgICAgICAgICBUT0JOKDB4MDdiMWY4ZmMsIDB4NjY5YzE0NWEpLCBUT0JOKDB4
YjBkOGIyZGEsIDB4MzZmMWUxY2IpfSwKKyAgICAgICAgICB7VE9CTigweDU0ZDVkYWRiLCAweGQ5
MTg0YzRkKSwgVE9CTigweDNkYmIxOGQ1LCAweGY5M2Q5OTc2KSwKKyAgICAgICAgICAgVE9CTigw
eDBhM2UwZjU2LCAweGQxMTQ3ZDQ3KSwgVE9CTigweDJhZmE4YzhkLCAweGEwYTQ4NjA5KX19LAor
ICAgICAgICAge3tUT0JOKDB4Mjc1MzUzZTgsIDB4YmMzNjc0MmMpLCBUT0JOKDB4ODk4ZjQyN2Us
IDB4ZWVhMGVkOTApLAorICAgICAgICAgICBUT0JOKDB4MjZmNDk0N2UsIDB4M2U0NzdiMDApLCBU
T0JOKDB4OGFkODg0OGEsIDB4MzA4NzQxZTMpfSwKKyAgICAgICAgICB7VE9CTigweDZjNzAzYzM4
LCAweGQ3NGEyYTQ2KSwgVE9CTigweDVlM2UwNWE5LCAweDliYTE3YmEyKSwKKyAgICAgICAgICAg
VE9CTigweGMxZmE2ZjY2LCAweDRhYjlhOWU0KSwgVE9CTigweDQ3NGEyZDlhLCAweDM4NDFkNmVj
KX19LAorICAgICAgICAge3tUT0JOKDB4ODcxMjM5YWQsIDB4NjUzYWUzMjYpLCBUT0JOKDB4MTRi
Y2Y3MmEsIDB4YTc0Y2JiNDMpLAorICAgICAgICAgICBUT0JOKDB4ODczNzY1MGUsIDB4MjBkNGMw
ODMpLCBUT0JOKDB4M2RmODY1MzYsIDB4MTEwZWQ0YWYpfSwKKyAgICAgICAgICB7VE9CTigweGQy
ZDg2ZmU3LCAweGI1M2NhNTU1KSwgVE9CTigweDY4OGNiMDBkLCAweGFiZDVkNTM4KSwKKyAgICAg
ICAgICAgVE9CTigweGNmODFiZGEzLCAweDFhZDM4NDY4KSwgVE9CTigweDdjY2ZlM2NjLCAweGYw
MTE2N2I2KX19LAorICAgICAgICAge3tUT0JOKDB4Y2Y0ZjQ3ZTAsIDB4NmM0YzFmZTYpLCBUT0JO
KDB4NTU3ZTFmMWEsIDB4Mjk4YmJiNzkpLAorICAgICAgICAgICBUT0JOKDB4ZjkzYjk3NGYsIDB4
MzBkNDVhMTQpLCBUT0JOKDB4MTc0YTFkMmQsIDB4MGJhZjk3YzQpfSwKKyAgICAgICAgICB7VE9C
TigweDdhMDAzYjMwLCAweGM1MWZiZjUzKSwgVE9CTigweGQ4OTQwOTkxLCAweGVlNjhiMjI1KSwK
KyAgICAgICAgICAgVE9CTigweDViMGFhN2I3LCAweDFjMGY0MTczKSwgVE9CTigweDk3NTc5N2M5
LCAweGEyMGE3MTUzKX19LAorICAgICAgICAge3tUT0JOKDB4MjZlMDhjMDcsIDB4ZTM1MzNkNzcp
LCBUT0JOKDB4ZDcyMjJlNmEsIDB4MmUzNDFjOTkpLAorICAgICAgICAgICBUT0JOKDB4OWQ2MGVj
M2QsIDB4OGQyZGM0ZWQpLCBUT0JOKDB4YmRmZTBkOGYsIDB4N2M0NzZjZjgpfSwKKyAgICAgICAg
ICB7VE9CTigweDFmZTU5YWI2LCAweDFkMDU2NjA1KSwgVE9CTigweGE5ZWE5ZGY2LCAweDg2YTg1
NTFmKSwKKyAgICAgICAgICAgVE9CTigweDg0ODk5NDFlLCAweDQ3ZmI4ZDhjKSwgVE9CTigweGZl
Yjg3NGViLCAweDRhN2YxYjEwKX19LAorICAgICAgICAge3tUT0JOKDB4ZmU1ZmVhODYsIDB4N2Vl
MGQ5OGYpLCBUT0JOKDB4MjAxYWQzNGIsIDB4ZGJmNjE4NjQpLAorICAgICAgICAgICBUT0JOKDB4
NDVkOGZlNDcsIDB4MzdjMDMxZDQpLCBUT0JOKDB4ZDVmNDlmYWUsIDB4Nzk1ZjA4MjIpfSwKKyAg
ICAgICAgICB7VE9CTigweGRiMGZiMjkxLCAweGM3ZjRhNDBjKSwgVE9CTigweDJlNjlkOWMxLCAw
eDczMGRkZDkyKSwKKyAgICAgICAgICAgVE9CTigweDc1NGUxMDU0LCAweDQ5ZDc2OTg3KSwgVE9C
TigweDhhMjQ5MTFkLCAweDc2NjJkYjg3KX19LAorICAgICAgICAge3tUT0JOKDB4NjFmYzE4MTAs
IDB4NjBhNzE2NzYpLCBUT0JOKDB4ZTg1MmQxYTgsIDB4ZjY2YThhZDEpLAorICAgICAgICAgICBU
T0JOKDB4MTcyYmJkNjUsIDB4NjQxNzIzMWUpLCBUT0JOKDB4MGQ2ZGU3YmQsIDB4M2JhYmIxMWYp
fSwKKyAgICAgICAgICB7VE9CTigweDZmZGU2Zjg4LCAweGM4ZTM0N2Y4KSwgVE9CTigweDFjNTg3
NTQ3LCAweDliZDk5Y2MzKSwKKyAgICAgICAgICAgVE9CTigweDc4ZTU0ZWQwLCAweDM0MDc2OTUw
KSwgVE9CTigweDk3ZjBmMzM0LCAweDc5NmU4M2JhKX19LAorICAgICAgICAge3tUT0JOKDB4ZTRk
YmUxY2UsIDB4NDkyNDg2N2EpLCBUT0JOKDB4YmQ1ZjUxYjAsIDB4NjBiODQ5MTcpLAorICAgICAg
ICAgICBUT0JOKDB4Mzc1MzAwNDAsIDB4M2NiMDlhNzkpLCBUT0JOKDB4ZGIzZmUwZjgsIDB4ZmYx
NzQzZDgpfSwKKyAgICAgICAgICB7VE9CTigweGVkNzg5NGQ4LCAweDU1NmZhOWRiKSwgVE9CTigw
eGZhMjYyMTY5LCAweDIzNDEyZmJmKSwKKyAgICAgICAgICAgVE9CTigweDU2M2JlMGRiLCAweGJh
N2I5MjkxKSwgVE9CTigweDZjYThiOGMwLCAweDBjOWZiMjM0KX19LAorICAgICAgICAge3tUT0JO
KDB4ZWQ0MDZhYTksIDB4YmQ3NjM4MDIpLCBUT0JOKDB4YzIxNDg2YTAsIDB4NjUzMDNkYTEpLAor
ICAgICAgICAgICBUT0JOKDB4NjFhZTI5MWUsIDB4YzdlNjJlYzQpLCBUT0JOKDB4NjIyYTA0OTIs
IDB4ZGY5OTMzM2UpfSwKKyAgICAgICAgICB7VE9CTigweDdmZDgwYzlkLCAweGJiN2E4ZWUwKSwg
VE9CTigweGRjMmVkM2JjLCAweDZjMDFhZWRiKSwKKyAgICAgICAgICAgVE9CTigweDM1YzM1YTEy
LCAweDA4YmU3NGVjKSwgVE9CTigweGQ1NDBjYjFhLCAweDQ2OWY2NzFmKX19LAorICAgICAgICAg
e3tUT0JOKDB4ZDE2Y2VkNGUsIDB4Y2Y4NGY2YzcpLCBUT0JOKDB4ODU2MWZiOWMsIDB4MmQwOTBm
NDMpLAorICAgICAgICAgICBUT0JOKDB4N2U2OTNkNzksIDB4NmYyMzlkYjQpLCBUT0JOKDB4YTcz
NmY5MjgsIDB4NzdiZDBkOTQpfSwKKyAgICAgICAgICB7VE9CTigweDA3YjRkOTI5LCAweDJjMTk1
MGVlKSwgVE9CTigweGRhMTc3NTQzLCAweDU2ZGMxMWIzKSwKKyAgICAgICAgICAgVE9CTigweGE1
ZGZiYmFhLCAweDdhNmE4NzhlKSwgVE9CTigweDFjNzBjYjI5LCAweDRkZWNiMDhhKX19LAorICAg
ICAgICAge3tUT0JOKDB4ZmJhMjhjOGIsIDB4NmYwZjdjNTApLCBUT0JOKDB4YThlYmEyYjgsIDB4
ODU0ZGNjNmQpLAorICAgICAgICAgICBUT0JOKDB4NWZmOGU4OWEsIDB4MzZiNzg2NDIpLCBUT0JO
KDB4MDcwYzFjOGUsIDB4ZjY4NzNhZGYpfSwKKyAgICAgICAgICB7VE9CTigweGJiZDNjMzcxLCAw
eDY0ODRkMmU0KSwgVE9CTigweGZiNzgzMThmLCAweDBkNDE0MTI5KSwKKyAgICAgICAgICAgVE9C
TigweDI2MjFhMzljLCAweDZhZDkzYjBiKSwgVE9CTigweDk3OWQ3NGMyLCAweGE5ZTkxN2Y3KX19
LAorICAgICAgICAge3tUT0JOKDB4ZmMxOTU2NDcsIDB4NjFmYjA0MjgpLCBUT0JOKDB4NGQ3ODk1
NGEsIDB4YmVlNjI0ZDQpLAorICAgICAgICAgICBUT0JOKDB4Yjk0ODk2ZTAsIDB4YjhhZTg2ZmQp
LCBUT0JOKDB4NjY2N2FjMGMsIDB4YzkxYzhiMTMpfSwKKyAgICAgICAgICB7VE9CTigweDlmMTgw
NTEyLCAweDQzYmNmODMyKSwgVE9CTigweGZiYWRmOGI3LCAweGEwMDEwMTM3KSwKKyAgICAgICAg
ICAgVE9CTigweGM2OWI0MDg5LCAweGIzYmE4YWE3KSwgVE9CTigweGZhYzRiYWNkLCAweGU2ODdj
ZTg1KX19LAorICAgICAgICAge3tUT0JOKDB4OTE2NDA4OGQsIDB4OTc3ZWFiNDApLCBUT0JOKDB4
NTFmNGM1YjYsIDB4Mjc2MGIzOTApLAorICAgICAgICAgICBUT0JOKDB4ZDIzODIzOGYsIDB4MzQw
ZGQ1NTMpLCBUT0JOKDB4MzU4NTY2YzMsIDB4ZGIxZDMxYzkpfSwKKyAgICAgICAgICB7VE9CTigw
eDNhNWFkNjllLCAweDUwNjhmNWZmKSwgVE9CTigweGYzMTQzNWZjLCAweGRhZmY2YjA2KSwKKyAg
ICAgICAgICAgVE9CTigweGFlNTQ5YTViLCAweGQ2ZGViZmYwKSwgVE9CTigweDU5ZTVmMGI3LCAw
eDc1ZTAxMzMxKX19LAorICAgICAgICAge3tUT0JOKDB4NWQ0OTJmYjgsIDB4OTg1NTlhY2YpLCBU
T0JOKDB4OTYwMThjMmUsIDB4NGRiNzliNTApLAorICAgICAgICAgICBUT0JOKDB4NTVmNGE0OGYs
IDB4NjA5ZjY2YWEpLCBUT0JOKDB4MTk0M2IzYWYsIDB4NDkwMGExNGYpfSwKKyAgICAgICAgICB7
VE9CTigweGMyMjQ5NmRmLCAweDE1YTQwZDM5KSwgVE9CTigweGIyYTQ0Njg0LCAweDRjMjBmN2M1
KSwKKyAgICAgICAgICAgVE9CTigweDc2YTM1YWZhLCAweDNiOTg0MDRjKSwgVE9CTigweGJlYzc1
NzI1LCAweGZmNWQxYjc3KX19LAorICAgICAgICAge3tUT0JOKDB4YjY3YWExNjMsIDB4YmVhMDY0
NDQpLCBUT0JOKDB4MjdlOTViYjIsIDB4ZjcyNGI2ZjIpLAorICAgICAgICAgICBUT0JOKDB4M2My
MGUzZTksIDB4ZDIzOGM4YWIpLCBUT0JOKDB4MTIxMzc1NGUsIDB4ZGRkNmFlMTcpfSwKKyAgICAg
ICAgICB7VE9CTigweDhjNDMxMDIwLCAweDcxNmUwZjc0KSwgVE9CTigweDY2NzljODJlLCAweGZm
YzA5NWMyKSwKKyAgICAgICAgICAgVE9CTigweDJlYjNhZGY0LCAweGQwYWMyOTMyKSwgVE9CTigw
eDJjYzk3MGQzLCAweDAxYmI3YTc2KX19LAorICAgICAgICAge3tUT0JOKDB4NzBjNzFmMmYsIDB4
NzQwZjBlNjYpLCBUT0JOKDB4NTQ1YzYxNmIsIDB4MmI2YjIzY2MpLAorICAgICAgICAgICBUT0JO
KDB4NDUyOGNmY2IsIDB4YjQwYThiZDcpLCBUT0JOKDB4ZmY4Mzk2MzMsIDB4MmFiMjc3MjIpfSwK
KyAgICAgICAgICB7VE9CTigweDA0OTEyN2Q5LCAweDAyNWFjOTlhKSwgVE9CTigweGQzMTRkNGEw
LCAweDJiNjNlMzNiKSwKKyAgICAgICAgICAgVE9CTigweGM4YzMxMGU3LCAweDI4ZDg0NTE5KSwg
VE9CTigweDBmY2I4OTgzLCAweGIzYmM4NGJhKX19LAorICAgICAgICAge3tUT0JOKDB4MmNjNTIy
NjEsIDB4Mzg2MzQ4MTgpLCBUT0JOKDB4NTAxODE0ZjQsIDB4YjQ0YzJlMGIpLAorICAgICAgICAg
ICBUT0JOKDB4ZjdlMTgxYWEsIDB4NTRkZmRiYTMpLCBUT0JOKDB4Y2ZkNThmZjAsIDB4ZTc1OTcx
OGMpfSwKKyAgICAgICAgICB7VE9CTigweGY5MGNkYjE0LCAweGQzYjUwN2E4KSwgVE9CTigweDU3
YmQ0NzhlLCAweGM1MGJkYWQ4KSwKKyAgICAgICAgICAgVE9CTigweDI5YzE5N2UyLCAweDUwZTVm
OWFhKSwgVE9CTigweDRkYjZlZWY4LCAweGU0MGJjODU1KX19LAorICAgICAgICAge3tUT0JOKDB4
MmNjOGYyMWEsIDB4ZDFmYzA2NTQpLCBUT0JOKDB4YzcxY2M5NjMsIDB4ODEyNjlkNzMpLAorICAg
ICAgICAgICBUT0JOKDB4ZWNmYmIyMDQsIDB4MDc3ZjQ5ZjkpLCBUT0JOKDB4ZGRlOTI1NzEsIDB4
Y2E1NmI3OTMpfSwKKyAgICAgICAgICB7VE9CTigweDlhYmVkNmEzLCAweGY5N2FkOGY3KSwgVE9C
TigweGU2YzE5ZDNmLCAweDkyNGRlM2JkKSwKKyAgICAgICAgICAgVE9CTigweDhkY2U5MmY0LCAw
eGExNDBhODAwKSwgVE9CTigweDg1ZjQ0ZDFlLCAweDEzMzdhZjA3KX19LAorICAgICAgICAge3tU
T0JOKDB4NTk1M2MwOGIsIDB4MDlkNjRjNTIpLCBUT0JOKDB4YTFiNWU0OWYsIDB4ZjVkZjk3NDkp
LAorICAgICAgICAgICBUT0JOKDB4MzM2YThmYjgsIDB4NTI3MzVmN2QpLCBUT0JOKDB4YjMzMmI2
ZGIsIDB4OWFkZDY3NmIpfSwKKyAgICAgICAgICB7VE9CTigweDU1OGI4OGEwLCAweGI0NTExYWE0
KSwgVE9CTigweDA5Nzg4NzUyLCAweGRiZDVjYzU1KSwKKyAgICAgICAgICAgVE9CTigweDE2YjQz
YjljLCAweGQ4Y2Q1MmJkKSwgVE9CTigweDdmMGJjNWEwLCAweGMyYTI2OTZiKX19LAorICAgICAg
ICAge3tUT0JOKDB4MTQ2ZTEyZDQsIDB4YzExZjYxZWYpLCBUT0JOKDB4OWNlMTA3NTQsIDB4M2E4
M2U3OWUpLAorICAgICAgICAgICBUT0JOKDB4MDhlYzczZDksIDB4NmNiZmNhMTUpLCBUT0JOKDB4
MDlmZjI5YWQsIDB4NWI0OTY1M2YpfSwKKyAgICAgICAgICB7VE9CTigweGUzMWI3MmJkLCAweGU3
ZGE5NDZlKSwgVE9CTigweGViZjllYjNiLCAweGVlODBhNGYyKSwKKyAgICAgICAgICAgVE9CTigw
eGQxYWFiZDA4LCAweDE3NTk4Y2U0KSwgVE9CTigweDE4YjVmZWY0LCAweDUzZjM3ZTgwKX19LAor
ICAgICAgICAge3tUT0JOKDB4ZDVkNWNkZDMsIDB4NTk1OGNkNzkpLCBUT0JOKDB4MzU4MGExYjUs
IDB4MWQzNzMxMTQpLAorICAgICAgICAgICBUT0JOKDB4YTM2ZTRjOTEsIDB4ZmE5MzU3MjYpLCBU
T0JOKDB4YTM4YzUzNGQsIDB4ZWYyMGQ3NjApfSwKKyAgICAgICAgICB7VE9CTigweDcwODhlNDBh
LCAweDJmZjU4NDViKSwgVE9CTigweGU1YmI0MGJkLCAweGJkNzgxNzdmKSwKKyAgICAgICAgICAg
VE9CTigweDRmMDZhN2E4LCAweDg1N2Y5OTIwKSwgVE9CTigweGUzY2MzZTUwLCAweGU5NjhmMDVk
KX19LAorICAgICAgICAge3tUT0JOKDB4MWQ2OGI3ZmUsIDB4ZTU2ODJkMjYpLCBUT0JOKDB4NTIw
NmY3NmYsIDB4YWVjN2Y4N2MpLAorICAgICAgICAgICBUT0JOKDB4NDExMTA1MzAsIDB4MDQxOTUx
YWIpLCBUT0JOKDB4NThlYzUyYzEsIDB4ZDRiNWE3MWEpfSwKKyAgICAgICAgICB7VE9CTigweGYz
NDg4Zjk5LCAweDBmNzVjZjlhKSwgVE9CTigweGY0MTE5NTFmLCAweGJhODJkMGQ1KSwKKyAgICAg
ICAgICAgVE9CTigweDI3ZWU3NWJlLCAweDYxODg5NWFiKSwgVE9CTigweGVhZTA2MGQ0LCAweDZk
OGFhYjE0KX19LAorICAgICAgICAge3tUT0JOKDB4OWFlMWRmNzMsIDB4N2ZiNTRkYzIpLCBUT0JO
KDB4MWYzZTM5MWIsIDB4MjU5NjM2NDkpLAorICAgICAgICAgICBUT0JOKDB4MjQyZWMzMmEsIDB4
ZmUwNTUwODEpLCBUT0JOKDB4NWJkNDUwZWYsIDB4ODQ5MWM5YmQpfSwKKyAgICAgICAgICB7VE9C
TigweDM2N2VmYzY3LCAweDk4MWViMzg5KSwgVE9CTigweGVkN2UxOTI4LCAweDNhMDU1MGQ1KSwK
KyAgICAgICAgICAgVE9CTigweDM2MmU3NzZiLCAweGFiM2NlNzVjKSwgVE9CTigweGU4OTBlMzA4
LCAweDFmMjRjNTIzKX19LAorICAgICAgICAge3tUT0JOKDB4Yjk2MWI2ODIsIDB4ZmVjY2VmNzYp
LCBUT0JOKDB4OGI4ZTExZjUsIDB4OGJiYTZkOTIpLAorICAgICAgICAgICBUT0JOKDB4OGYyY2Nj
NGMsIDB4MmIyMzc1YzQpLCBUT0JOKDB4MGQ3ZjdhNTIsIDB4ZTJmODZjZmEpfSwKKyAgICAgICAg
ICB7VE9CTigweGZkOTRkMzBhLCAweDllZmU1NjMzKSwgVE9CTigweDJkOGQyNDZiLCAweDU0NTFm
OTM0KSwKKyAgICAgICAgICAgVE9CTigweDIyMzRjNmUzLCAweDI0NGU2YTAwKSwgVE9CTigweGRl
MmI1YjBkLCAweGRkZWM4YzUwKX19LAorICAgICAgICAge3tUT0JOKDB4MmNlNTNjNWEsIDB4YmY3
NzZmNWIpLCBUT0JOKDB4NmY3MjQwNzEsIDB4NjAzNTdiMDUpLAorICAgICAgICAgICBUT0JOKDB4
YjI1OTM3MTcsIDB4NzFiZjNmN2EpLCBUT0JOKDB4ODdkMjUwMWMsIDB4NDQwYzRhOWYpfSwKKyAg
ICAgICAgICB7VE9CTigweDQ0MDU1MmUxLCAweDg3YjA1MzQwKSwgVE9CTigweGI3YmY3Y2M4LCAw
eDIxNjI0YzMyKSwKKyAgICAgICAgICAgVE9CTigweDQxNTVhNmNlLCAweDIyZmFjZGRiKSwgVE9C
TigweDVhNDIyOGNiLCAweDg4OTgzN2VmKX19LAorICAgICAgICAge3tUT0JOKDB4ZWY4N2Q2ZDYs
IDB4ZmQ0ZmQ2NzEpLCBUT0JOKDB4YTIzMzY4N2UsIDB4YzJkYWExMGUpLAorICAgICAgICAgICBU
T0JOKDB4NzU2MjIyNDQsIDB4MDNjMGViOTYpLCBUT0JOKDB4NzYzMmQxODQsIDB4OGJmMTliZTYp
fSwKKyAgICAgICAgICB7VE9CTigweDA1ZDBmOGU5LCAweDQwNzM1ZmY0KSwgVE9CTigweDNhM2U2
ZTEzLCAweGMwMDkzMWYxKSwKKyAgICAgICAgICAgVE9CTigweDMxY2NkZTZhLCAweGRhZmUzZjE4
KSwgVE9CTigweGYzODEzNjZhLCAweGNmZTUxMjA3KX19LAorICAgICAgICAge3tUT0JOKDB4MjRj
MjIyYTksIDB4NjAxNjdkOTIpLCBUT0JOKDB4NjJmOWQ2ZjgsIDB4NzUyOWYxOGMpLAorICAgICAg
ICAgICBUT0JOKDB4NDEyMzk3YzAsIDB4MDM1M2IxMTQpLCBUT0JOKDB4MzM0ZDg5ZGMsIDB4ZWY4
MDgwNDMpfSwKKyAgICAgICAgICB7VE9CTigweGQ5ZWM2M2JhLCAweDJhNDM4M2NlKSwgVE9CTigw
eGNlYzhlOTM3LCAweDVjZjkyYmEwKSwKKyAgICAgICAgICAgVE9CTigweGZiOGI0Mjg4LCAweGM4
YmU3NGMwKSwgVE9CTigweDY3ZDY5MTJmLCAweDEwNWQ0MzkxKX19LAorICAgICAgICAge3tUT0JO
KDB4N2I5OTZjNDYsIDB4MWI5MTMxNDkpLCBUT0JOKDB4MzZhYWUyZWYsIDB4M2E0ZTAyZGEpLAor
ICAgICAgICAgICBUT0JOKDB4YjY4YWEwMDMsIDB4OTcyZGU1OTQpLCBUT0JOKDB4Mjg0ZWM3MGQs
IDB4NGVjNmQ1NDUpfSwKKyAgICAgICAgICB7VE9CTigweGYzZDJiMmQwLCAweDYxMzkxZDU0KSwg
VE9CTigweDY5YzVkNWQ2LCAweGZlMTE0ZTkyKSwKKyAgICAgICAgICAgVE9CTigweGJlMGYwMGI1
LCAweGI0NDgyZGZmKSwgVE9CTigweGUxNTk2ZmE1LCAweGY1YmYzM2M1KX19LAorICAgICAgICAg
e3tUT0JOKDB4MTA1OTViNTYsIDB4OTZhNzFjYmEpLCBUT0JOKDB4OTQ0OTM4YjIsIDB4ZmRjYWRl
YjcpLAorICAgICAgICAgICBUT0JOKDB4YTI4MmRhNGMsIDB4ZmNjZDg0NzEpLCBUT0JOKDB4OThl
YzA1ZjMsIDB4MGQzN2JmZTEpfSwKKyAgICAgICAgICB7VE9CTigweGUxNzFjZTFiLCAweDA2OTgz
MDRhKSwgVE9CTigweDJkNjkxNDQ0LCAweDIxYmRmNzliKSwKKyAgICAgICAgICAgVE9CTigweGQw
Y2QzYjc0LCAweDFiMjFkZWMxKSwgVE9CTigweDcxMmVjZDhiLCAweDE2YTE1ZjcxKX19LAorICAg
ICAgICAge3tUT0JOKDB4OGQ0YzAwYTcsIDB4MDBmZDU2ZTEpLCBUT0JOKDB4MDJlYzk2OTIsIDB4
Zjk1MjdjMTgpLAorICAgICAgICAgICBUT0JOKDB4MjFjNDQ5MzcsIDB4NGEzZTQyZTEpLCBUT0JO
KDB4OTE3NmZiYWIsIDB4MTM5MmFlMGEpfSwKKyAgICAgICAgICB7VE9CTigweDg3MjZmMWJhLCAw
eDQ0YjdiNjE4KSwgVE9CTigweGI0ZDdhYWU5LCAweGYxZGU0OTFjKSwKKyAgICAgICAgICAgVE9C
TigweGY5MWRmN2I5LCAweDA3YjU4MmMwKSwgVE9CTigweDdlMTE2YzMwLCAweGVmNjBhYTNhKX19
LAorICAgICAgICAge3tUT0JOKDB4OTkyNzBmODEsIDB4NDY2MjY1ZDcpLCBUT0JOKDB4YjE1YjZm
ZTIsIDB4NGRmN2FkZjApLAorICAgICAgICAgICBUT0JOKDB4ZmUzM2IyZDMsIDB4Zjk3MzhmN2Yp
LCBUT0JOKDB4NDg1NTNhYjksIDB4ZDZkNzBmOTUpfSwKKyAgICAgICAgICB7VE9CTigweDJjYzcy
YWM4LCAweGMyMWU5NGRiKSwgVE9CTigweDc5NWFjMzhkLCAweGJkYzBiYmVlKSwKKyAgICAgICAg
ICAgVE9CTigweDBhMWJlNDQ5LCAweDJlNDA0NzhmKSwgVE9CTigweDgxYmQzMzk0LCAweDA1MmJk
ZTU1KX19LAorICAgICAgICAge3tUT0JOKDB4NjNjOGRiZTksIDB4NTZiM2M0ZjIpLCBUT0JOKDB4
MDE3YTk5Y2YsIDB4OTA0MTc3Y2MpLAorICAgICAgICAgICBUT0JOKDB4OTQ3YmJkZGIsIDB4NGQw
MTBmYzEpLCBUT0JOKDB4YWNmOWIwMGIsIDB4YmIyYzliMjEpfSwKKyAgICAgICAgICB7VE9CTigw
eDI5NzBiYzhkLCAweDQ3MTczNjExKSwgVE9CTigweDFhNGNiZTA4LCAweGFjN2Q3NTZmKSwKKyAg
ICAgICAgICAgVE9CTigweDA2ZDlmNGFhLCAweDY3ZDU0MWEyKSwgVE9CTigweGEzZThiNjg5LCAw
eDU5YzJjZjQ0KX19LAorICAgICAgICAge3tUT0JOKDB4YWFkMDY2ZGEsIDB4NGQ4OGYxZGQpLCBU
T0JOKDB4YzYwNGYxNjUsIDB4N2FkMzVkZWEpLAorICAgICAgICAgICBUT0JOKDB4N2VkYzA3MjAs
IDB4NDQ3OGNhNjcpLCBUT0JOKDB4YTEwZGZhZTAsIDB4YmEwMmNlMDYpfSwKKyAgICAgICAgICB7
VE9CTigweGVjZWIxYzc2LCAweGFmMzZmNGU0KSwgVE9CTigweDk5NGIyMjkyLCAweGFmM2Y4ZjQ4
KSwKKyAgICAgICAgICAgVE9CTigweGJmOWVkNzdiLCAweDc3YzhhNjhjKSwgVE9CTigweDc0ZjU0
NGVhLCAweDUxNzQ0YzlkKX19LAorICAgICAgICAge3tUT0JOKDB4ODJkMDViYjksIDB4ODExM2E3
NTcpLCBUT0JOKDB4NGVmMmQyYjQsIDB4OGE5ODg1ZTQpLAorICAgICAgICAgICBUT0JOKDB4MWUz
MzJiZTUsIDB4MWFhNzg2NWYpLCBUT0JOKDB4MjJiNzZiMTgsIDB4MjkwZDFhNTIpfSwKKyAgICAg
ICAgICB7VE9CTigweDMwOGEyMzEwLCAweDQ0MzUxNjgzKSwgVE9CTigweDlkODYxODk2LCAweGEz
ZjIyODQwKSwKKyAgICAgICAgICAgVE9CTigweDU5NTlkZGNkLCAweDg0MWVkOTQ3KSwgVE9CTigw
eDBkZWYwYzk0LCAweDE1NGI3M2JmKX19LAorICAgICAgICAge3tUT0JOKDB4ZjAxMDU0MTcsIDB4
NGM3YzE1ZTApLCBUT0JOKDB4NTM5YmZiMDIsIDB4M2EyNzdjMzIpLAorICAgICAgICAgICBUT0JO
KDB4ZTY5OTI2OGUsIDB4ZjlkY2NmNWYpLCBUT0JOKDB4OWY1Nzk2YTUsIDB4MDI0N2EzYmQpfSwK
KyAgICAgICAgICB7VE9CTigweDhiODM5ZGU4LCAweDRmMTU3MjY5KSwgVE9CTigweGM4MjVjMWU1
LCAweDdhMzAxOTZiKSwKKyAgICAgICAgICAgVE9CTigweDZlZjBhYWJjLCAweGRjOGE1YTkxKSwg
VE9CTigweGY0YThjZTZjLCAweDQ5OGI3ZmU2KX19LAorICAgICAgICAge3tUT0JOKDB4MWNjZTM1
YTcsIDB4NzBjYmFjNzgpLCBUT0JOKDB4ODM0ODhlOWIsIDB4ZjZiMjM5NTgpLAorICAgICAgICAg
ICBUT0JOKDB4MDM0MWEwNzAsIDB4ZDc2Y2IwMTEpLCBUT0JOKDB4ZGE2YzlkMDYsIDB4YWUxYjI2
NTgpfSwKKyAgICAgICAgICB7VE9CTigweGI3MDFmYjMwLCAweGRkNjQ4YzUyKSwgVE9CTigweDk5
NGNhMDJjLCAweDUyZmI5ZmQxKSwKKyAgICAgICAgICAgVE9CTigweDA2OTMzMTE3LCAweDZmNTYz
MDg2KSwgVE9CTigweDNkMmI4MTAwLCAweDE3ODU2YmFiKX19LAorICAgICAgICAge3tUT0JOKDB4
ZTg5ZjQ4YzgsIDB4NTk2M2E0NmUpLCBUT0JOKDB4NjU4YWI4NzUsIDB4YTk5ZTYxYzcpLAorICAg
ICAgICAgICBUT0JOKDB4NmUyOTZmODcsIDB4NGI4NTE3YjQpLCBUT0JOKDB4MzZjNGZjZGMsIDB4
ZmMxYmM2NTYpfSwKKyAgICAgICAgICB7VE9CTigweGRlNTIyN2ExLCAweGEzOTA2ZGVmKSwgVE9C
TigweDlmZTk1ZjU3LCAweDYyNDE4OTQ1KSwKKyAgICAgICAgICAgVE9CTigweDIwYzkxZTgxLCAw
eGZkZDk2Y2RlKSwgVE9CTigweDVhZGJlNDdlLCAweGRhNDQ4MGRlKX19LAorICAgICAgICAge3tU
T0JOKDB4YTAwOTM3MGYsIDB4Mzk2ZGUyYjYpLCBUT0JOKDB4OTg1ODNkNGIsIDB4ZjBlY2M3YmQp
LAorICAgICAgICAgICBUT0JOKDB4ZjQ0ZjZiNTcsIDB4ZTUxZDA2NzIpLCBUT0JOKDB4MDNkNmIw
NzgsIDB4NTU2YjE5ODQpfSwKKyAgICAgICAgICB7VE9CTigweDI3ZGJkZDkzLCAweGIwYjY0OTEy
KSwgVE9CTigweDliM2EzNDM0LCAweDE1Njg3YjA5KSwKKyAgICAgICAgICAgVE9CTigweDBkYmE2
NDYxLCAweDUxZWMyMGE5KSwgVE9CTigweGVjOTNkYjdmLCAweGZmMjgxODdjKX19LAorICAgICAg
ICAge3tUT0JOKDB4MDBmZjhjMjQsIDB4NjZlNDhiZGQpLCBUT0JOKDB4MjUxNGYyZjksIDB4MTFj
Y2Q3OGUpLAorICAgICAgICAgICBUT0JOKDB4ZWJhMTFmNGYsIDB4ZTEyNTA2MDMpLCBUT0JOKDB4
OGEyMmNkNDEsIDB4MjQzZmExNTYpfSwKKyAgICAgICAgICB7VE9CTigweGE0ZTU4ZGY0LCAweGIy
ODNlNGM2KSwgVE9CTigweDc4YzI5ODU5LCAweDhiMzk3ODNmKSwKKyAgICAgICAgICAgVE9CTigw
eDUyMzVhZWUyLCAweGE1MjU5ODA5KSwgVE9CTigweGMxNjI4NGI1LCAweDBlMDIyN2RkKX19LAor
ICAgICAgICAge3tUT0JOKDB4YTVmNTc5MTYsIDB4MTMzODgzMGQpLCBUT0JOKDB4NmQ0YjhhNmIs
IDB4ZDIxMjNmY2EpLAorICAgICAgICAgICBUT0JOKDB4MjM2ZWE2OGEsIDB4ZjljNTQ2ZjgpLCBU
T0JOKDB4YzFkMzY4NzMsIDB4ZmE2MDhkMzYpfSwKKyAgICAgICAgICB7VE9CTigweGNkNzZlNDk1
LCAweDhkNDM2ZDEzKSwgVE9CTigweGQ0ZDljMjIxLCAweDhmYjA4MGFmKSwKKyAgICAgICAgICAg
VE9CTigweDY2NWMxNzI4LCAweGU4YWQzZmI1KSwgVE9CTigweGNmMWViZTRkLCAweGIzZDU3MmUw
KX19LAorICAgICAgICAge3tUT0JOKDB4YTdhODc0NmEsIDB4NTg0YzVlMjApLCBUT0JOKDB4MjY3
ZTRlYTEsIDB4YjlkYzcwMzUpLAorICAgICAgICAgICBUT0JOKDB4NTkzYTE1Y2YsIDB4Yjk1NDhj
OWIpLCBUT0JOKDB4NWU2ZTIxMzUsIDB4NGJkMDEyZjMpfSwKKyAgICAgICAgICB7VE9CTigweGRm
MzFjYzZhLCAweDhjOGY5MzZlKSwgVE9CTigweDhhZjg0ZDA0LCAweGI1YzI0MWRjKSwKKyAgICAg
ICAgICAgVE9CTigweDYzOTkwYTZmLCAweDM0NWVmYjg2KSwgVE9CTigweDZmZWY0ZTYxLCAweGI5
Yjk2MmNiKX19fSwKKyAgICAgICAge3t7VE9CTigweGY2MzY4ZjA5LCAweDI1NzIyNjA4KSwgVE9C
TigweDEzMTI2MGRiLCAweDEzMWNmNWM2KSwKKyAgICAgICAgICAgVE9CTigweDQwZWIzNTNiLCAw
eGZhYjRmN2FjKSwgVE9CTigweDg1Yzc4ODgwLCAweDM3ZWVlODI5KX0sCisgICAgICAgICAge1RP
Qk4oMHg0YzE1ODFmZiwgMHhjM2JkZjI0ZSksIFRPQk4oMHg1YmZmNzVjYiwgMHhmNWMzYzVhOCks
CisgICAgICAgICAgIFRPQk4oMHgzNWU4YzgzZiwgMHhhMTRlNmY0MCksIFRPQk4oMHhiODFkMWMw
ZiwgMHgwMjk1ZTBjYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGZjZGU3Y2M4LCAweGY0M2E3MzBm
KSwgVE9CTigweGU4OWI2ZjNjLCAweDMzYWI1OTBlKSwKKyAgICAgICAgICAgVE9CTigweGM4MjNm
NTI5LCAweGFkMDMyNDBiKSwgVE9CTigweDgyYjc5YWZlLCAweDk4YmVhNWRiKX0sCisgICAgICAg
ICAge1RPQk4oMHg1NjhmMjg1NiwgMHg5NjJmZTVkZSksIFRPQk4oMHgwYzU5MGFkYiwgMHg2MGM1
OTFmMyksCisgICAgICAgICAgIFRPQk4oMHgxZmM3NGExNCwgMHg0YTI4YTg1OCksIFRPQk4oMHgz
YjY2MjQ5OCwgMHhiMzIwM2Y0Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDkxZTNjZjBkLCAweDZj
Mzk3NjVhKSwgVE9CTigweGEyZGIzYWNkLCAweGFjM2NjYTBiKSwKKyAgICAgICAgICAgVE9CTigw
eDI4OGYyZjA4LCAweGNiOTUzYjUwKSwgVE9CTigweDI0MTQ1ODJjLCAweGNmNDNjZjFhKX0sCisg
ICAgICAgICAge1RPQk4oMHg4ZGVjOGJiYywgMHg2MGVlZTlhOCksIFRPQk4oMHg1NGM3OWYwMiwg
MHg3MjlhYTA0MiksCisgICAgICAgICAgIFRPQk4oMHhkODFjZDVlYywgMHg2NTMyZjVkNSksIFRP
Qk4oMHhhNjcyMzAzYSwgMHhjZjgyZTE1Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDM3NmFhZmE4
LCAweDcxOWMwNTYzKSwgVE9CTigweGNkOGFkMmRjLCAweGJjNWZjNzlmKSwKKyAgICAgICAgICAg
VE9CTigweDMwM2ZkYjlmLCAweGNiNzUwY2QzKSwgVE9CTigweDE0ZmYwNTJmLCAweDQ0MThiMDhl
KX0sCisgICAgICAgICAge1RPQk4oMHhmNzUwODRjZiwgMHgzZTJkNjUyMCksIFRPQk4oMHg3ZWJk
ZjBmOCwgMHgxNDRlZDUwOSksCisgICAgICAgICAgIFRPQk4oMHhmNDNiZjBmMiwgMHhkM2YyNWI5
OCksIFRPQk4oMHg4NmFkNzFjZiwgMHhhMzU0ZDgzNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGI4
MjdmZTkyLCAweDI2ZjQzNTcyKSwgVE9CTigweGRmZDNhYjViLCAweDVkODI0NzU4KSwKKyAgICAg
ICAgICAgVE9CTigweDMxNWRkMjNhLCAweDUzOTA5NGMxKSwgVE9CTigweDg1YzBlMzdhLCAweDY2
NjIzZDY4KX0sCisgICAgICAgICAge1RPQk4oMHg1NzVjNzk3MiwgMHg3YmUxOWFlMCksIFRPQk4o
MHg2MTZhMzM5NiwgMHhkZjBkMzZiNSksCisgICAgICAgICAgIFRPQk4oMHhhMWViYjNjOCwgMHgy
NmIxZmY3ZSksIFRPQk4oMHg2MzViOTQ4NSwgMHgxNDBhZDQ1Myl9fSwKKyAgICAgICAgIHt7VE9C
TigweDkyYmYzY2RhLCAweGRhNDMwYzBiKSwgVE9CTigweDQ3MDI4NTBlLCAweDNhOTZkYWM2KSwK
KyAgICAgICAgICAgVE9CTigweGM5MWNmMGE1LCAweDE1YWMzMjZhKSwgVE9CTigweDk1ZGU0ZjQ5
LCAweGFiOGMyNWU0KX0sCisgICAgICAgICAge1RPQk4oMHhiMDFiYWQwOSwgMHhlMjY1YzE3Yyks
IFRPQk4oMHgyNGU0NTQ2NCwgMHgwODdiMzg4MSksCisgICAgICAgICAgIFRPQk4oMHhkNDNlNTgz
YywgMHhlMWZhYzVjYSksIFRPQk4oMHhlMTdjYjMxOCwgMHg2ZWFkOTdhNil9fSwKKyAgICAgICAg
IHt7VE9CTigweDZjYzM5MjQzLCAweDc0ZGNlYzQ2KSwgVE9CTigweDMzY2ZjMDJkLCAweDU0YzJi
NzNmKSwKKyAgICAgICAgICAgVE9CTigweDgyOTE3ODQ0LCAweGYyNmNkOTljKSwgVE9CTigweDg4
MTlkZDk1LCAweGQxNzczZjg5KX0sCisgICAgICAgICAge1RPQk4oMHgwOTU3MmFhNiwgMHgwODcx
ZjQyNyksIFRPQk4oMHg4ZTBjZjM2NSwgMHhmNmYwMWMzNCksCisgICAgICAgICAgIFRPQk4oMHg3
ZmE1Mjk4OCwgMHhiZmYxZjVhZiksIFRPQk4oMHg0ZWIzNTdlYSwgMHhlNzVlOGU1MCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGQ5ZDBjOGM0LCAweDg2OGFmNzVkKSwgVE9CTigweGQ3MzI1Y2ZmLCAw
eDQ1YzhjN2VhKSwKKyAgICAgICAgICAgVE9CTigweGFiNDcxOTk2LCAweGNjODFlY2IwKSwgVE9C
TigweGZmNWQ1NWYzLCAweDYxMTgyNGVkKX0sCisgICAgICAgICAge1RPQk4oMHhiZTMxNDU0MSwg
MHgxOTc3YTBlZSksIFRPQk4oMHg1MDg1YzRjNSwgMHg3MjIwMzhjNiksCisgICAgICAgICAgIFRP
Qk4oMHgyZDUzMzViZiwgMHhmOTRiYjQ5NSksIFRPQk4oMHg4OTRhZDhhNiwgMHhjOGUyYTA4Mil9
fSwKKyAgICAgICAgIHt7VE9CTigweDVjM2UyMzQxLCAweGFkYTM1NDM4KSwgVE9CTigweGY0YTlm
Yzg5LCAweDA0OWI4YzRlKSwKKyAgICAgICAgICAgVE9CTigweGJlZWIzNTVhLCAweDlmMTdjZjM0
KSwgVE9CTigweDNmMzExZTBlLCAweDZjOTFmZTEwKX0sCisgICAgICAgICAge1RPQk4oMHhjMmQy
MDAzOCwgMHg5MmFiOTg5MSksIFRPQk4oMHgyNTdiZGNjMSwgMHgzZThjZTlhOSksCisgICAgICAg
ICAgIFRPQk4oMHgxYjJkOTc4OSwgMHg4OGM1M2JlZSksIFRPQk4oMHg5MjdjZTg5YSwgMHhjZGJh
MTQzYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGIwYTMyY2NhLCAweDUyM2RiMjgwKSwgVE9CTigw
eDVjODg5ZjhhLCAweDUwZDQzNzgzKSwKKyAgICAgICAgICAgVE9CTigweDUwM2UwNGIzLCAweDQ4
OTdkMTZmKSwgVE9CTigweDhjZGI2ZTc4LCAweDA4ZjVmMmU4KX0sCisgICAgICAgICAge1RPQk4o
MHg2YWI5MWNmMCwgMHgxNzljOGU3NCksIFRPQk4oMHhkODg3NGU1MiwgMHg0ODIxMWQ2MCksCisg
ICAgICAgICAgIFRPQk4oMHhmOTQ4ZDRkNSwgMHhlYTg1MTIwMCksIFRPQk4oMHg0MDc2ZDQxZSwg
MHhlNmY5ODQwYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGMyMGUyNjNjLCAweDQ3YjUxN2VhKSwg
VE9CTigweDc5YTQ0OGZkLCAweDMwNjg1ZTVlKSwKKyAgICAgICAgICAgVE9CTigweGU1NWY2Zjc4
LCAweGY5MDYzMWEwKSwgVE9CTigweDg4YTc5MGIxLCAweGE3OWU2MzQ2KX0sCisgICAgICAgICAg
e1RPQk4oMHg2MjE2MGM3ZCwgMHg4MDk2OWZlOCksIFRPQk4oMHg1NGY5MmZkNCwgMHg0MTQ5MWJi
OSksCisgICAgICAgICAgIFRPQk4oMHhhNjY0NWMyMywgMHg1Yzk1NzUyNiksIFRPQk4oMHhmNDRj
YzVhZSwgMHhiZWEzY2U3Yil9fSwKKyAgICAgICAgIHt7VE9CTigweGY3NjI4MzI3LCAweDhiMWU2
OGI3KSwgVE9CTigweGM3MzFhZDdhLCAweDMwM2YyOWQzKSwKKyAgICAgICAgICAgVE9CTigweGZl
NWE5Y2E5LCAweDU3ZDAzZWNiKSwgVE9CTigweDk2YzBkNTBjLCAweDQxYmM5N2E3KX0sCisgICAg
ICAgICAge1RPQk4oMHhjNDY2OWZlNywgMHg5YjRmN2YyNCksIFRPQk4oMHhmZGQ3ODFkOCwgMHgz
ZDk5NjdlZiksCisgICAgICAgICAgIFRPQk4oMHg3ODkyYzdjMywgMHg1ZDJjMjA4ZCksIFRPQk4o
MHg4YmY2NGY3YywgMHhhZTU0NWNiMyl9fSwKKyAgICAgICAgIHt7VE9CTigweGMwMWY4NjJjLCAw
eDQ2N2JlOTEyKSwgVE9CTigweGY0Yzg1ZWU5LCAweGM3M2QzMGNjKSwKKyAgICAgICAgICAgVE9C
TigweDFmYTZmNGJlLCAweDZhYjgzZWM3KSwgVE9CTigweGEwN2EzYzFjLCAweDRlM2UzY2Y5KX0s
CisgICAgICAgICAge1RPQk4oMHg4N2Y4ZWY0NSwgMHgwYzAwYmViMyksIFRPQk4oMHgzMGUyYzJi
MywgMHgwMDBkNGMzZSksCisgICAgICAgICAgIFRPQk4oMHgxYWEwMGI5NCwgMHhmZTA4YmY1Yiks
IFRPQk4oMHgzMmMxMzNhYSwgMHg5MjI0ZWY1Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDM4ZGYx
NmJiLCAweDMyZTU2ODVkKSwgVE9CTigweDY4YTllMDY5LCAweDU4ZTZmNTQ0KSwKKyAgICAgICAg
ICAgVE9CTigweDQ5NWFhZmY3LCAweGNkYzVlYmM2KSwgVE9CTigweGY4OTRhNjQ1LCAweDM3OGIx
MzVmKX0sCisgICAgICAgICAge1RPQk4oMHhmMzE2MzUwYSwgMHgwOWUyN2VjZiksIFRPQk4oMHhl
Y2VkMjAxZSwgMHg1OGY3MTc5ZCksCisgICAgICAgICAgIFRPQk4oMHgyZWVjMjczYywgMHhlOTc4
NjFiYSksIFRPQk4oMHg0N2VjMmNhZSwgMHhkNjkzYmUyZSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGZhNGM5N2M0LCAweGY2ODM2N2NlKSwgVE9CTigweGU0ZjQ3ZDBiLCAweGJlNWE1NzU1KSwKKyAg
ICAgICAgICAgVE9CTigweDE3ZGU4MTVkLCAweGIyOThhOTc5KSwgVE9CTigweGQ3ZWNhNjU5LCAw
eGMxNzdkYzdkKX0sCisgICAgICAgICAge1RPQk4oMHgyMGZkYmI3MSwgMHg0OWRlZDBhMyksIFRP
Qk4oMHg0Y2IyYWFkNCwgMHhmYjM0ZDNjNSksCisgICAgICAgICAgIFRPQk4oMHgyY2YzMWQyOCwg
MHg2MDg1OGEzMyksIFRPQk4oMHgzYjY4NzNlZiwgMHhhMjRhYTQwZil9fSwKKyAgICAgICAgIHt7
VE9CTigweDU0MDIzNGIyLCAweDJjMTFiYjM3KSwgVE9CTigweDJkMDM2NmRkLCAweGVkNGM3NGEz
KSwKKyAgICAgICAgICAgVE9CTigweGY5YTk2OGRhLCAweGVlYzVmMjVkKSwgVE9CTigweDM2NjAx
MDY4LCAweDY3YjYzMTQyKX0sCisgICAgICAgICAge1RPQk4oMHgwN2NkNmQyYywgMHg2OGQ3YjZk
NCksIFRPQk4oMHhhOGY3NGYwOSwgMHgwYzg0Mjk0MiksCisgICAgICAgICAgIFRPQk4oMHhlMjc1
MTQwNCwgMHg3NzY4YjFlZSksIFRPQk4oMHg0YjVmN2U4OSwgMHhmZTYyYWVlNCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGM2YTc3MTc3LCAweDg5MDcwZDI2KSwgVE9CTigweGExZjI4ZTRlLCAweGRk
MWM4YmM3KSwKKyAgICAgICAgICAgVE9CTigweGVhNWY0ZjA2LCAweDQ2OWUxZjE3KSwgVE9CTigw
eDc4ZmMyNDJhLCAweGZiZGI3OGUwKX0sCisgICAgICAgICAge1RPQk4oMHhjOWM3YzU5MiwgMHg4
YjA1ODhmMSksIFRPQk4oMHhiNmI3YTBmZCwgMHgxNTM1OTIxZSksCisgICAgICAgICAgIFRPQk4o
MHhjYzViZGI5MSwgMHhiZGU1YWUzNSksIFRPQk4oMHhiNDJjNDg1ZSwgMHgxMmZmMTg2NCl9fSwK
KyAgICAgICAgIHt7VE9CTigweGExMTEzZTEzLCAweGRiYWI5OGFhKSwgVE9CTigweGRlOWQ0Njli
LCAweGExN2IxMDI0KSwKKyAgICAgICAgICAgVE9CTigweDIzZjQ4YjM3LCAweGMwNDYyZDNhKSwg
VE9CTigweDM3NTJlNTM3LCAweDdjNWMwNzhkKX0sCisgICAgICAgICAge1RPQk4oMHhlM2E4NmFk
ZCwgMHgxNTU0NGViOSksIFRPQk4oMHhmMDEzYWVhNywgMHg4MGZiYTI3OSksCisgICAgICAgICAg
IFRPQk4oMHg4YjViYjc2YywgMHhmMjIwMDFiNSksIFRPQk4oMHhlNjE3YmExNCwgMHhmMDI4OTFh
Yil9fSwKKyAgICAgICAgIHt7VE9CTigweGQzOTE4MmE2LCAweDkzNjIxOWQzKSwgVE9CTigweDVj
ZTFmMTk0LCAweGFlNTFjYjE5KSwKKyAgICAgICAgICAgVE9CTigweGM3OGY4NTk4LCAweGJmMDdh
NzRjKSwgVE9CTigweDZkNzE1OGYyLCAweDIyY2JmMWJjKX0sCisgICAgICAgICAge1RPQk4oMHgz
Yjg0NmIyMSwgMHhlMzAwY2UxOCksIFRPQk4oMHgzNWZiYTYzMCwgMHgyZDExMjc1ZCksCisgICAg
ICAgICAgIFRPQk4oMHg1ZmUyNWMzNiwgMHhhMDIzOWI5YiksIFRPQk4oMHhkOGJlYjM1ZCwgMHhk
ZjA1ZDk0MCl9fSwKKyAgICAgICAgIHt7VE9CTigweDRkYjAyYmIwLCAweDFmN2UzMjBkKSwgVE9C
TigweDA2NDFjMzY0LCAweDZkYTMyMGVhKSwKKyAgICAgICAgICAgVE9CTigweDZkOTVmYTVkLCAw
eDgyMTM4OWEzKSwgVE9CTigweDkyNjk5NzQ4LCAweDhmY2Q4ZTNkKX0sCisgICAgICAgICAge1RP
Qk4oMHgzMTZmZWYxNywgMHhjZWI2YzE0MyksIFRPQk4oMHg2N2ZjYjg0MSwgMHhkOTMzNzYyYiks
CisgICAgICAgICAgIFRPQk4oMHhiYjgzN2UzNSwgMHgxMThiMTdmOCksIFRPQk4oMHg0YjkyNTUy
ZiwgMHg5ZmQyNDgyMSl9fSwKKyAgICAgICAgIHt7VE9CTigweGFlNmJjNzBlLCAweDQ2YWNhNzkz
KSwgVE9CTigweDFjZjBiMGU0LCAweGU1NzkzMTFiKSwKKyAgICAgICAgICAgVE9CTigweDhkYzYz
MWJlLCAweDU4MDJmNzE2KSwgVE9CTigweDA5OWJkYzZmLCAweGJkZGJlZTRkKX0sCisgICAgICAg
ICAge1RPQk4oMHhjYzM1MmJiMiwgMHgwY2FmOGIwNSksIFRPQk4oMHhmNzRkNTA1YSwgMHg3MmQ2
M2RmMiksCisgICAgICAgICAgIFRPQk4oMHhiOTg3NmQ0YiwgMHg5MWM0ZjQwOCksIFRPQk4oMHgx
Y2UxODQ3MywgMHg5ZTIyOWIyZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDQ5NTA3NTk3LCAweDgz
YWJkYjRhKSwgVE9CTigweDg1MGZiY2I2LCAweGRlZTg0YjE4KSwKKyAgICAgICAgICAgVE9CTigw
eDYzMjUyMzZlLCAweDYwOWU2N2RjKSwgVE9CTigweDA0ZDgzMWQ5LCAweDkzMzZjNmQ4KX0sCisg
ICAgICAgICAge1RPQk4oMHg4ZGVhYWUzYiwgMHhmYTEyZDQ1ZCksIFRPQk4oMHhlNDI1ZjhjZSwg
MHg0NzQ2ZTI0NiksCisgICAgICAgICAgIFRPQk4oMHg4MDA0YzE3NSwgMHgyNGY1ZjMxZSksIFRP
Qk4oMHhhY2ExNmQ4ZiwgMHhhZDYyYzNiNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDBkYzE1YTZh
LCAweDkxNTJmOTM0KSwgVE9CTigweGYxMjM1ZTVkLCAweGVkMGUxMmMxKSwKKyAgICAgICAgICAg
VE9CTigweGMzM2MwNmVjLCAweGRhNDc3ZGFjKSwgVE9CTigweDc2YmU4NzMyLCAweGIyZWEwMDA2
KX0sCisgICAgICAgICAge1RPQk4oMHhjZjNmNzgzMSwgMHgwYzBjZDMxMyksIFRPQk4oMHgzYzUy
NDU1MywgMHhhNjE0MjYwZCksCisgICAgICAgICAgIFRPQk4oMHgzMWE3NTZmOCwgMHhjYWIyMmQx
NSksIFRPQk4oMHgwM2VlMTBkMSwgMHg3NzgyN2EyMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGQx
ZTA1OWIyLCAweDE5OTRlZjIwKSwgVE9CTigweDJhNjUzYjY5LCAweDYzOGFlMzE4KSwKKyAgICAg
ICAgICAgVE9CTigweDcwZDVlYjU4LCAweDJmNjk5MDEwKSwgVE9CTigweDI3OTczOWY3LCAweDA5
ZjVmODRhKX0sCisgICAgICAgICAge1RPQk4oMHg1ZGE0NjYzYywgMHg4Yjc5OTMzNiksIFRPQk4o
MHhmZGZkZjE0ZCwgMHgyMDNjMzdlYiksCisgICAgICAgICAgIFRPQk4oMHgzMmQ4YTlkYywgMHhh
MWRiZmIyZCksIFRPQk4oMHhhYjQwY2ZmMCwgMHg3N2Q0OGY5Yil9fSwKKyAgICAgICAgIHt7VE9C
TigweGMwMThiMzgzLCAweGQyMGI0MmQ1KSwgVE9CTigweGY5YTgxMGVmLCAweDlmNzg4NDVmKSwK
KyAgICAgICAgICAgVE9CTigweDQwYWYzNzUzLCAweGJkYmE5ZGYwKSwgVE9CTigweGI5MGJkY2Zj
LCAweDEzMWRmZGY5KX0sCisgICAgICAgICAge1RPQk4oMHgxODcyMDU5MSwgMHhmMDFhYjc4Miks
IFRPQk4oMHhjODIzZjIxMSwgMHg2YWYxMmE4OCksCisgICAgICAgICAgIFRPQk4oMHhhNTFiODBm
MywgMHgwZGMxNDQwMSksIFRPQk4oMHhkZTI0OGY3NywgMHhmYjJkZmJlMyl9fSwKKyAgICAgICAg
IHt7VE9CTigweGVmNWE0NGU1LCAweDBjYWZlNzUxKSwgVE9CTigweDczOTk3YzljLCAweGQ0ZGNk
MjIxKSwKKyAgICAgICAgICAgVE9CTigweDMyZmQ4NmQxLCAweGRlODU0MDI0KSwgVE9CTigweGQ1
YjUzYWRjLCAweGEwOWI4NGJiKX0sCisgICAgICAgICAge1RPQk4oMHgwMDhkN2ExMSwgMHhkY2Vk
ZDhkMSksIFRPQk4oMHg0MDZiZDFjOCwgMHg3NGIzMmM4NCksCisgICAgICAgICAgIFRPQk4oMHg1
ZDQ0NzJmZiwgMHgwNWRkZThiMSksIFRPQk4oMHgyZTI1ZjJjZCwgMHhmY2UyYjMyZil9fSwKKyAg
ICAgICAgIHt7VE9CTigweGJlYzBkZDVlLCAweDI5ZGZjMjU0KSwgVE9CTigweDQ0NTVmY2Y2LCAw
eDJiOThiMjY3KSwKKyAgICAgICAgICAgVE9CTigweDBiNGQ0M2E1LCAweGM3MmRmMmFkKSwgVE9C
TigweGVhNzBlNmJlLCAweDQ4YTc1Mzk3KX0sCisgICAgICAgICAge1RPQk4oMHgyYWFkNjE2OSwg
MHg1ODIwZjNiZiksIFRPQk4oMHhmNDEwZDJkZCwgMHg5ZTM3ZjY4ZiksCisgICAgICAgICAgIFRP
Qk4oMHg3MGZiN2RiYSwgMHg3YmU1YWM4MyksIFRPQk4oMHg2MzZiYjY0NSwgMHgzNmVjM2VlYyl9
fSwKKyAgICAgICAgIHt7VE9CTigweDI3MTA0ZWEzLCAweDk3NTRlMjFjKSwgVE9CTigweGJjODdh
M2U2LCAweDhkNjNjMzczKSwKKyAgICAgICAgICAgVE9CTigweDQ4MzM1MWQ3LCAweDQxMDlkYjlh
KSwgVE9CTigweDBmYTcyNGUzLCAweDYwMTM0ZGE3KX0sCisgICAgICAgICAge1RPQk4oMHg5ZmY0
NGMyOSwgMHhiMDcyMGIxNiksIFRPQk4oMHgyZGQwY2YxMywgMHgwNmFjZWVhZCksCisgICAgICAg
ICAgIFRPQk4oMHg1OTQyNzU4YywgMHhlMjY5MjlhNiksIFRPQk4oMHg5NmM1ZGI5MiwgMHhiNzY2
YTkyYil9fSwKKyAgICAgICAgIHt7VE9CTigweGNlYzdkNGMwLCAweDVmMTgzOTVlKSwgVE9CTigw
eGQzZjIyNzQ0LCAweDFmODBkMDMyKSwKKyAgICAgICAgICAgVE9CTigweDdhNjhiMzdhLCAweGNi
ODYwNzViKSwgVE9CTigweDA3NDc2NGRkLCAweGFmZWY5MmRiKX0sCisgICAgICAgICAge1RPQk4o
MHhkZWQxZTk1MCwgMHg3YmM3ZjM4OSksIFRPQk4oMHhjNTgwYzg1MCwgMHhiOTc1NjQ2MCksCisg
ICAgICAgICAgIFRPQk4oMHhhZWVlYzJhNCwgMHg3ZGE0ODE1NyksIFRPQk4oMHgzZjBiNGU3Ziwg
MHg4MmM1ODdiMyl9fSwKKyAgICAgICAgIHt7VE9CTigweDIzMWM2ZGU4LCAweGE5ZjE5YzUzKSwg
VE9CTigweDU3MTdiZDczLCAweDY5NzRlMzRlKSwKKyAgICAgICAgICAgVE9CTigweGQ5ZTFkMjE2
LCAweGYxNTA4ZmE5KSwgVE9CTigweDlmMTEyMzYxLCAweGRhZGFhMTI0KX0sCisgICAgICAgICAg
e1RPQk4oMHg4MDE0NWUzMSwgMHg4MjNiNzM0OCksIFRPQk4oMHg0ZGQ4ZjBkNSwgMHhhYzYzNDA2
OSksCisgICAgICAgICAgIFRPQk4oMHhlM2Q4MmZjNywgMHgyMjk3YzI1OCksIFRPQk4oMHgyNzZm
Y2ZlZSwgMHg5Y2VlNzQzMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDhlYjYxYjVlLCAweDJiYzBh
ZWE5KSwgVE9CTigweDRmNjY4ZmQ1LCAweGRlMzI5NDMxKSwKKyAgICAgICAgICAgVE9CTigweDAz
YTMyYWIxLCAweDM4ZTRiODdlKSwgVE9CTigweGUxMzc0NTE3LCAweDczZDBlZjBiKX0sCisgICAg
ICAgICAge1RPQk4oMHgxYTQ2ZjdlNiwgMHg4NTNhYzk4MyksIFRPQk4oMHhjM2JkZjQyZSwgMHg2
OGU3OGE1NyksCisgICAgICAgICAgIFRPQk4oMHhhY2YyMDc4NSwgMHgyZWE5NmRkMSksIFRPQk4o
MHhhMTA2NDliOSwgMHhmMTYzODQ2MCl9fSwKKyAgICAgICAgIHt7VE9CTigweGYyMzY5ZjBiLCAw
eDg3OWZiYmVkKSwgVE9CTigweDBmZjBhZTg2LCAweGRhOWQxODY5KSwKKyAgICAgICAgICAgVE9C
TigweDUyNTFkNzU5LCAweDU2NzY2ZjQ1KSwgVE9CTigweDQ5ODRkOGMwLCAweDJiZThkMGZjKX0s
CisgICAgICAgICAge1RPQk4oMHg3ZWNjOTVhNiwgMHhkMjEwMDhmMCksIFRPQk4oMHgyOWJkNTRh
MCwgMHgzYTFhMWM0OSksCisgICAgICAgICAgIFRPQk4oMHhhYjk4MjhjNSwgMHhkMjZjNTBmMyks
IFRPQk4oMHgzMmMwMDg3YywgMHg1MWQwZDI1MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDliYWMz
Y2U2LCAweDBjMWNkYjI2KSwgVE9CTigweGNkOTRkOTQ3LCAweDU1N2NhMjA1KSwKKyAgICAgICAg
ICAgVE9CTigweDFiMWJkNTk4LCAweDlkYjFmZGNkKSwgVE9CTigweDBlZGEwMTA4LCAweGEzZDhi
MTQ5KX0sCisgICAgICAgICAge1RPQk4oMHg5NTA2NjYxMCwgMHg1NjE1MmZjYyksIFRPQk4oMHhj
MmYwMzdlNiwgMHhlNzE5MmIzMyksCisgICAgICAgICAgIFRPQk4oMHhkZWZmYjQxYSwgMHhjOTJl
MDVhNCksIFRPQk4oMHgxMTA1ZjZjMiwgMHhjMmY2YzYyZSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDY4ZTczNTAwLCAweDg3MzM5MTNjKSwgVE9CTigweGNjZTg2MTYzLCAweDNmM2FkYzQwKSwKKyAg
ICAgICAgICAgVE9CTigweGY0MDdhOTQyLCAweDM4YTI3OGU5KSwgVE9CTigweGQxM2MxYjlkLCAw
eDJhYjIxMjkyKX0sCisgICAgICAgICAge1RPQk4oMHg5M2VkN2VjNywgMHgxYzc0Y2Y1YyksIFRP
Qk4oMHg4ODg3ZGM0OCwgMHhmMWE0YzFiNCksCisgICAgICAgICAgIFRPQk4oMHgzODMwZmYzMCwg
MHg0YjNhMTFmMSksIFRPQk4oMHgzNThjNWEzYywgMHg1ODkzN2NiNil9fSwKKyAgICAgICAgIHt7
VE9CTigweDAyN2RjNDA0LCAweDg5MDIyODI5KSwgVE9CTigweDQwZTkzOTc3LCAweDNiNzk4Zjc5
KSwKKyAgICAgICAgICAgVE9CTigweDkwYWQzMzM3LCAweDM4YmU2ZWFkKSwgVE9CTigweDljMjNm
NmJjLCAweGYzNGMwYTVkKX0sCisgICAgICAgICAge1RPQk4oMHhkMTcxMWEzNSwgMHhmYmZmZDhi
YiksIFRPQk4oMHg2MGZjZmI0OSwgMHgxOTQ5ZDNkZCksCisgICAgICAgICAgIFRPQk4oMHgwOWM4
ZWY0YiwgMHg3ODI1ZDkzYSksIFRPQk4oMHgyNDIzM2NmZiwgMHhhMGE4Yzk2OCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDY3YWRlNDZjLCAweGU2ZDk4MmFmKSwgVE9CTigweGViYjZiZjNlLCAweGU3
NTQ0ZDdjKSwKKyAgICAgICAgICAgVE9CTigweGQ2YjliYTc2LCAweDNkOGJkMDg3KSwgVE9CTigw
eDQ2ZmUzODJkLCAweDRkYzYxMjgwKX0sCisgICAgICAgICAge1RPQk4oMHhiZDM5YTdlOCwgMHhi
NWJkYmQ3NSksIFRPQk4oMHhhYjM4MTMzMSwgMHhiOGYyMjhmZSksCisgICAgICAgICAgIFRPQk4o
MHgwNzA5YTc3YywgMHhjZTFjNDMwMCksIFRPQk4oMHg2YTI0N2U1NiwgMHhmMzM3Y2VhYyl9fSwK
KyAgICAgICAgIHt7VE9CTigweDhmMzRmMjFiLCAweDYzNjI4OGJlKSwgVE9CTigweDlkZmRjYTc0
LCAweGM4YTdjMzA1KSwKKyAgICAgICAgICAgVE9CTigweDZkZWNmZDFiLCAweGVhOTE5ZTA0KSwg
VE9CTigweGNkZjI2ODhkLCAweDhlMTk5MWY4KX0sCisgICAgICAgICAge1RPQk4oMHhlNjA3ZGY0
NCwgMHhkMGY4YTY3ZSksIFRPQk4oMHhkOTg1ZGY0YiwgMHgwYjU4ZDAxMCksCisgICAgICAgICAg
IFRPQk4oMHg1N2Y4MzRjNSwgMHgwYzI0ZjhmNCksIFRPQk4oMHhlOTc2ZWY1NiwgMHhhMGJmMDFh
ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDUzNjM5NWFjLCAweGExYzMyMzczKSwgVE9CTigweDM1
MTAyN2FhLCAweDczNGMwYTEzKSwKKyAgICAgICAgICAgVE9CTigweGQyZjFiNWQ2LCAweDVlNmJk
NWJjKSwgVE9CTigweDJiNTM5ZTI0LCAweDIyM2RlYmVkKX0sCisgICAgICAgICAge1RPQk4oMHhk
NDk5NGNlYywgMHgwZWFhMWQ3MSksIFRPQk4oMHgyYTgzMzgxZCwgMHg2NjFkY2Y2NSksCisgICAg
ICAgICAgIFRPQk4oMHg1ZjFhZWQyZiwgMHg3YjU0Yzc0MCksIFRPQk4oMHgwYmVhM2ZhNSwgMHhk
NmRkYTVlZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDlkNGZiNjg0LCAweDM2Y2M2MTM0KSwgVE9C
TigweDhlYjliYmYzLCAweGMwYTQ0M2RkKSwKKyAgICAgICAgICAgVE9CTigweGZjNTAwZTJlLCAw
eDM4M2I3ZDJhKSwgVE9CTigweDdhYWQ2MjFjLCAweDViNzc1MjU3KX0sCisgICAgICAgICAge1RP
Qk4oMHg2OTI4NGQ3NCwgMHgwYThmN2NjMCksIFRPQk4oMHhlODIwYzJjZSwgMHgwNzU2MmQ2NSks
CisgICAgICAgICAgIFRPQk4oMHhiZjk1MzFiOSwgMHg0OTk3NThlZSksIFRPQk4oMHg3M2U5NWNh
NSwgMHg2ZWUwY2MyZCl9fSwKKyAgICAgICAgIHt7VE9CTigweGY2MTc5MGFiLCAweGZiYWY1MGE1
KSwgVE9CTigweGRmNTVlNzZiLCAweDY4NGUwNzUwKSwKKyAgICAgICAgICAgVE9CTigweGVjNTE2
ZGE3LCAweGYxNzZiMDA1KSwgVE9CTigweDU3NTU1M2JiLCAweDdhMmRkZGM3KX0sCisgICAgICAg
ICAge1RPQk4oMHgzN2M4N2NhMywgMHg1NTNhZmE3MyksIFRPQk4oMHgzMTVmM2ZmYywgMHg0ZDU1
YzI1MSksCisgICAgICAgICAgIFRPQk4oMHhlODQ2NDQyYSwgMHhhZjNlNWQzNSksIFRPQk4oMHg2
MWI5MTE0OSwgMHg2NDk1ZmYyOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDIzY2M5NWQzLCAweGZh
MzI2ZGMzKSwgVE9CTigweDFkZjRkYTFmLCAweDE4ZmMyY2VhKSwKKyAgICAgICAgICAgVE9CTigw
eDI0YmY5YWRjLCAweGQwYTM3ZDU5KSwgVE9CTigweGI2NzEwMDUzLCAweDMyMGQ2ZTFlKX0sCisg
ICAgICAgICAge1RPQk4oMHg5NmY5NjY3ZSwgMHg2MTgzNDRkMSksIFRPQk4oMHhjYzdjZTA0Miwg
MHhhMDY0NDVhZiksCisgICAgICAgICAgIFRPQk4oMHhhMDJkODUxNCwgMHhkNjhkYmMzYSksIFRP
Qk4oMHg0ZWExMDllNCwgMHgyODBiNWE1Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDU3NDFhN2Fj
LCAweGI0MDk2MWJmKSwgVE9CTigweDRhZGE1OTM3LCAweDZhYTU2YmZhKSwKKyAgICAgICAgICAg
VE9CTigweDdmZWI5MTQ1LCAweDAyYjc2NWQxKSwgVE9CTigweDU2MWU5N2JlLCAweGU2YWQxNTgy
KX0sCisgICAgICAgICAge1RPQk4oMHhiYmM0YTViNiwgMHhkYTM5ODJmNSksIFRPQk4oMHgwYzI2
NTllZCwgMHhiNTQ2ZjQ2OCksCisgICAgICAgICAgIFRPQk4oMHhiOGU3ZTZhYSwgMHg1OTYxMmQy
MCksIFRPQk4oMHhkODNkZmUyMCwgMHhhYzE5ZThlMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDg1
MzBjNDVmLCAweGI4MzUzOThjKSwgVE9CTigweDYxMDZhOGJmLCAweGIzOGE0MWMyKSwKKyAgICAg
ICAgICAgVE9CTigweDIxZThmOWE2LCAweDM1ZjVkY2RiKSwgVE9CTigweDM5NzA3MTM3LCAweGNh
ZTQ5OGVkKX0sCisgICAgICAgICAge1RPQk4oMHg3MGMyMzgzNCwgMHhkODI0OWYwMCksIFRPQk4o
MHg5ZjE0YjU4ZiwgMHhhYjI1MzdhMCksCisgICAgICAgICAgIFRPQk4oMHhkMDQzYzM2NSwgMHg1
ZjYxYzBjMiksIFRPQk4oMHhkYzU5MjZkNiwgMHgwOWExOTRhNyl9fSwKKyAgICAgICAgIHt7VE9C
TigweGRkZWMwMzM5LCAweDhlNzc3MzhhKSwgVE9CTigweGQwN2E2M2VmLCAweGZiYTQ2NDI2KSwK
KyAgICAgICAgICAgVE9CTigweDJlNThlNzljLCAweGVlN2Y2ZTg2KSwgVE9CTigweGU1OWIwNDU5
LCAweGZmMzJkMjQxKX0sCisgICAgICAgICAge1RPQk4oMHhjNWVjODRlNSwgMHgyMGZhMDMzOCks
IFRPQk4oMHg5NzkzOWFjOCwgMHhlYWZmNWFjZSksCisgICAgICAgICAgIFRPQk4oMHgwMzEwYTRl
MywgMHhiNGEzODMxMyksIFRPQk4oMHg5MTE1ZmJhMiwgMHg4ZjlkOTg4NSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDhkZDcxMGMyLCAweDVmYWRmOGMzKSwgVE9CTigweDY2YmUzOGEyLCAweGNlMTlj
MGUyKSwKKyAgICAgICAgICAgVE9CTigweGQ0MmEyNzljLCAweDRjZmU1MDIyKSwgVE9CTigweDU5
N2JiNTMwLCAweDBlMjRlMWI4KX0sCisgICAgICAgICAge1RPQk4oMHgzY2RlODZiNywgMHhjMTUz
Y2E3ZiksIFRPQk4oMHhhOGQzMGZiMywgMHg3MDdkNjNiZCksCisgICAgICAgICAgIFRPQk4oMHhh
YzkwNWY5MiwgMHhiZDYwZDIxZSksIFRPQk4oMHg5OGU3ZmZiNiwgMHg3YjlhNTRhYil9fSwKKyAg
ICAgICAgIHt7VE9CTigweGQ3MTQ3ZGY4LCAweGU5NzI2YTMwKSwgVE9CTigweGI1ZTIxNmZmLCAw
eGFmY2UzNTMzKSwKKyAgICAgICAgICAgVE9CTigweGI1NTBiNzk5LCAweDJmZjFlYzQwKSwgVE9C
TigweDZiNjEzYjg3LCAweGExZTk1M2ZkKX0sCisgICAgICAgICAge1RPQk4oMHg4N2I4OGRiYSwg
MHg3OTJkNTYxMCksIFRPQk4oMHgyZWUxMjcwYSwgMHhhMTkwZmJlMSksCisgICAgICAgICAgIFRP
Qk4oMHgwMmY0ZTJkYywgMHgyZWY1ODFkYSksIFRPQk4oMHgwMTY1MzBlNCwgMHhlZmY4MmE5NSl9
fSwKKyAgICAgICAgIHt7VE9CTigweGNiYjkzZGZkLCAweDhmZDZlZTg5KSwgVE9CTigweDE2ZDNk
OTg2LCAweDQ2ODQ4ZmZmKSwKKyAgICAgICAgICAgVE9CTigweDYwMGVmZjI0LCAweDFkYTQ3YWRm
KSwgVE9CTigweDFiOTc1NGEwLCAweDBhZDQ3YTcxKX0sCisgICAgICAgICAge1RPQk4oMHg4Zjky
NjZkZiwgMHg3MGMzM2I5OCksIFRPQk4oMHhhYWRjODdhZSwgMHhkZjM0MTg2ZSksCisgICAgICAg
ICAgIFRPQk4oMHgwZDJjZThlMSwgMHg0YWQyNDEzMiksIFRPQk4oMHg4YTQ3Y2JmYywgMHgxOTk0
NmViYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDQ3ZmVlYjY2LCAweDYyYjVmM2FmKSwgVE9CTigw
eGNlZmFiNTYxLCAweDBhYmIzNzM0KSwKKyAgICAgICAgICAgVE9CTigweDQ0OWRlNjBlLCAweDE5
ZjM1Y2IxKSwgVE9CTigweDM5ZjhkYjE0LCAweDE1N2YwZWI5KX0sCisgICAgICAgICAge1RPQk4o
MHhmZmFlY2M1YiwgMHgzYzYxYmZkNiksIFRPQk4oMHhhNWE0ZDQxZCwgMHg0MTIxNjcwMyksCisg
ICAgICAgICAgIFRPQk4oMHg3ZjhmYWJlZCwgMHgyMjRlMWNjMiksIFRPQk4oMHgwZDVhODE4Niwg
MHg4NzFhZDk1Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGYxMDc3NGY3LCAweGQyMmRhOWE5KSwg
VE9CTigweDQ1YjhhNjc4LCAweGNjOGE5YjBkKSwKKyAgICAgICAgICAgVE9CTigweGQ5YzJlNzIy
LCAweGJkYzMyY2ZmKSwgVE9CTigweGJmNzFiNWY1LCAweDMzNzIwMmE1KX0sCisgICAgICAgICAg
e1RPQk4oMHg5NWM1N2YyZiwgMHg2OWZjNGRiOSksIFRPQk4oMHhiNmRhZDM0YywgMHg3NjVkMDFl
MSksCisgICAgICAgICAgIFRPQk4oMHg3ZTBiZDEzZiwgMHhjYjkwNDYzNSksIFRPQk4oMHg2MTc1
MTI1MywgMHg3NjNhNTg4Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ4NWMyOTk3LCAweDgxYWYy
YzJkKSwgVE9CTigweGMwZjdkOWM0LCAweDgxYjlkN2RhKSwKKyAgICAgICAgICAgVE9CTigweDgz
OGEzNGFlLCAweDA4NTMzZThkKSwgVE9CTigweDE1YzRjYjA4LCAweDMxMWQ4MzExKX0sCisgICAg
ICAgICAge1RPQk4oMHg5N2Y4MzI4NSwgMHg4ZTEyMWUxNCksIFRPQk4oMHhlZWE3ZGMxZSwgMHg4
NTAwMGE1ZiksCisgICAgICAgICAgIFRPQk4oMHgwYzYwNTliNiwgMHg1ZDI1NjI3NCksIFRPQk4o
MHhlYzliZWFjZSwgMHhiOTUwNzVjMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDE3M2RhYWQ3LCAw
eDFkZjk3ODI4KSwgVE9CTigweGJmODUxY2I1LCAweGE4OTM3ODc3KSwKKyAgICAgICAgICAgVE9C
TigweGIwODNjNTk0LCAweDAxNjQ2ZjNjKSwgVE9CTigweDNiYWQzMGNmLCAweDUwYzZkMzUyKX0s
CisgICAgICAgICAge1RPQk4oMHhmZWIyYjIwMiwgMHg0OTZiYmNlYSksIFRPQk4oMHgzY2Y5ZmQ0
ZiwgMHgxOGExZThiYSksCisgICAgICAgICAgIFRPQk4oMHhkMjZkZTdmZiwgMHgxYzA2NjAyOSks
IFRPQk4oMHgzOWM4MWU5ZSwgMHg0ZTllZDRmOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ4YmUw
Y2I5LCAweDdiMzkwZDM1KSwgVE9CTigweDAxZGYyYmJkLCAweDk2NGFhYjI3KSwKKyAgICAgICAg
ICAgVE9CTigweDNlOGMxYTY1LCAweGMzZWY2NGY4KSwgVE9CTigweDU2NzI5MWQxLCAweDcxNmVk
MWRkKX0sCisgICAgICAgICAge1RPQk4oMHg5NTQ5OWM2YywgMHg1ZjU0MDZkMyksIFRPQk4oMHg3
MWZkZGEzOSwgMHg1YmE4ZTIzZiksCisgICAgICAgICAgIFRPQk4oMHhjZmViMzIwZSwgMHhkNTA5
NmVjZSksIFRPQk4oMHhiZTdiYTkyYiwgMHhjYTY2ZGQxNil9fSwKKyAgICAgICAgIHt7VE9CTigw
eDQ2MDhkMzZiLCAweGM2ZmI1YTdkKSwgVE9CTigweGUzZWVhMTVhLCAweDZkMmRkMGUwKSwKKyAg
ICAgICAgICAgVE9CTigweDc1YjBhM2ViLCAweDhmOTdhMzZhKSwgVE9CTigweGY1OTgxNGNjLCAw
eDFjODNkZTFlKX0sCisgICAgICAgICAge1RPQk4oMHg1NmM5YzViMCwgMHgxYzMzYzIzZiksIFRP
Qk4oMHhhOTZjMWRhNCwgMHg2ZmFhNDEzNiksCisgICAgICAgICAgIFRPQk4oMHg0NmJmMjA3NCwg
MHhkZTMxNjU1MSksIFRPQk4oMHgzYjg2NmU3YiwgMHgxZjc1NmM4Zil9fSwKKyAgICAgICAgIHt7
VE9CTigweDcyNzcyN2Q4LCAweDE0OTVlZDZiKSwgVE9CTigweGIyMzk0MjQzLCAweGI2ODJkY2U3
KSwKKyAgICAgICAgICAgVE9CTigweDhhYjg0NTRlLCAweDc1ODYxMGYzKSwgVE9CTigweGMyNDNj
ZTg0LCAweDg1N2Q3MmE0KX0sCisgICAgICAgICAge1RPQk4oMHg3YjMyMGQ3MSwgMHhkYmJmMzcw
ZiksIFRPQk4oMHhmZjlhZmEzNywgMHg3OGUwZjdjYSksCisgICAgICAgICAgIFRPQk4oMHgwMTE5
ZDFlMCwgMHhlYTdiNTIzZiksIFRPQk4oMHhiOTk3ZjhjYiwgMHgwNThjN2Q0Mil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDI4NWJjZDJhLCAweDM3YmJiMTg0KSwgVE9CTigweDUxZGNlYzQ5LCAweGE0
NWQxZmE2KSwKKyAgICAgICAgICAgVE9CTigweDZhZGUzYjY0LCAweGUyOTYzNGNiKSwgVE9CTigw
eDA4MGM5NGE3LCAweDI2Yjg2ZWYxKX0sCisgICAgICAgICAge1RPQk4oMHhiYTU4M2RiMSwgMHgy
MjgzZmJlMyksIFRPQk4oMHg5MDJiZGRjOCwgMHg1YTkzMTVlZCksCisgICAgICAgICAgIFRPQk4o
MHgwN2MxY2NiMywgMHg4Njk2NGJlYyksIFRPQk4oMHg3OGY0ZWFjZiwgMHhiNjI1ODMwMSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDRiZGYzYTQ5LCAweDU2ZjkwODIzKSwgVE9CTigweGJhMGY1MDgw
LCAweDc0MWQ3NzdiKSwKKyAgICAgICAgICAgVE9CTigweDA5MWQ3MWMzLCAweGYzOGJmNzYwKSwg
VE9CTigweDk2MzNkNTBmLCAweDliNjI1YjAyKX0sCisgICAgICAgICAge1RPQk4oMHgwM2VjYjc0
MywgMHhiOGM5ZGU2MSksIFRPQk4oMHhiNDc1MTI1NCwgMHg1ZGU3NDcyMCksCisgICAgICAgICAg
IFRPQk4oMHg5ZjlkZWZjOSwgMHg3NGNlMWNiMiksIFRPQk4oMHg3NzRhNGY2YSwgMHgwMGJkMzJl
Zil9fSwKKyAgICAgICAgIHt7VE9CTigweGFjYTM4NWY3LCAweDczODQ4ZjIyKSwgVE9CTigweDUz
ZGFkNzE2LCAweGYzZjg1NThlKSwKKyAgICAgICAgICAgVE9CTigweGFiN2IzNGIwLCAweDkzYzQ3
MWY5KSwgVE9CTigweGY1MzBlMDY5LCAweDE5NjQ0YmM3KX0sCisgICAgICAgICAge1RPQk4oMHgz
ZDlmYjFmZiwgMHhkZDU5ZDMxYSksIFRPQk4oMHg0MzgyZTBkZiwgMHgwOGRhYTc5NSksCisgICAg
ICAgICAgIFRPQk4oMHgxNjVjNmY0YiwgMHhkNWNjODhkNyksIFRPQk4oMHhlYWEzOTJkNSwgMHg0
YTE4YzkwMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk0MjAzYzY3LCAweDY0ODAyNGVlKSwgVE9C
TigweDE4ODc2M2YyLCAweDhjMmZhYmNkKSwKKyAgICAgICAgICAgVE9CTigweGE4MGY4N2FjLCAw
eGJiYWVjODM1KSwgVE9CTigweDYzMmM5NmUwLCAweGYyOWQ4ZDU0KX0sCisgICAgICAgICAge1RP
Qk4oMHgyOWIwYTYwZSwgMHg0YzAwYTk1ZSksIFRPQk4oMHgyZWYxN2Y0MCwgMHhlMDExZTlmYSks
CisgICAgICAgICAgIFRPQk4oMHhmNmMwZTFkMSwgMHgxNWI3NzIyMyksIFRPQk4oMHhhYWVjMmM2
MiwgMHgxNGIwNGUzMil9fSwKKyAgICAgICAgIHt7VE9CTigweGQzNTY4OGQ4LCAweDNkODRlNThj
KSwgVE9CTigweDJhZjUwOTRjLCAweDk1ODU3MWRiKSwKKyAgICAgICAgICAgVE9CTigweDRmZmY3
ZTE5LCAweDc2MDY4MmE2KSwgVE9CTigweDRjYjI3MDc3LCAweGUzOWE0MDdjKX0sCisgICAgICAg
ICAge1RPQk4oMHgwZjU5YzU0NywgMHg0ZmYwZTMyMSksIFRPQk4oMHgxNjlmMzRhNiwgMHgxYjM0
YzhmZiksCisgICAgICAgICAgIFRPQk4oMHgyYmZmMTA5NiwgMHg1MmJjMWJhNyksIFRPQk4oMHhh
MjU0MjNiNywgMHg4MzU4MzU0NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDVkNTVkNWQ1LCAweDBh
YzhiNzgyKSwgVE9CTigweGZmNjYyMmVjLCAweDJkYjNjODkyKSwKKyAgICAgICAgICAgVE9CTigw
eDQ4ZmNlNzQxLCAweDZiOGJiNjQyKSwgVE9CTigweDMxZDY5OThjLCAweDY5ZDdlM2RjKX0sCisg
ICAgICAgICAge1RPQk4oMHhkYmFmODAwNCwgMHhjYWRjYWVkMCksIFRPQk4oMHg4MDFiMDE0Miwg
MHhkODFkMDUzYyksCisgICAgICAgICAgIFRPQk4oMHg5NGIxODlmYywgMHg1OTYzMGVjNiksIFRP
Qk4oMHgxMjBlOTkzNCwgMHhhZjc2MmM4ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDUzYTI5YWE0
LCAweGZkYzZhNDA0KSwgVE9CTigweDE5ZDhlMDFlLCAweGExOTA5OTQ4KSwKKyAgICAgICAgICAg
VE9CTigweDNjZmNhYmYxLCAweGQ3ZTg5NjgxKSwgVE9CTigweDMzMjFhNTBkLCAweDRlMTMyZDM3
KX0sCisgICAgICAgICAge1RPQk4oMHhkMDQ5Njg2MywgMHhlOWE4NjExMSksIFRPQk4oMHg4YzBj
ZGU2MSwgMHgwNmEzYmM2NSksCisgICAgICAgICAgIFRPQk4oMHhhZjg2NmM0OSwgMHhmYzlmOGVl
ZiksIFRPQk4oMHgyMDY2MzUwZSwgMHhmZjdmNTE0MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDRm
OGE0Njg5LCAweGU1NmRkZmJkKSwgVE9CTigweGVhMWIwYzA3LCAweGZlMzI5ODNhKSwKKyAgICAg
ICAgICAgVE9CTigweDJiMzE3NDYyLCAweDg3M2NiOGNiKSwgVE9CTigweDY1OGRlZGRjLCAweDJk
OTMyMjlmKX0sCisgICAgICAgICAge1RPQk4oMHg2NWVmYWY0ZCwgMHgwZjY0ZWY1OCksIFRPQk4o
MHhmZTQzMjg3ZCwgMHg3MzBjYzdhOCksCisgICAgICAgICAgIFRPQk4oMHhhZWJjMGM3MiwgMHgz
ZDA0N2Q3MCksIFRPQk4oMHg5MmVmYTUzOSwgMHhkOTJkMjZjOSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDA2ZTc4NDU3LCAweDk0YjU2NTI2KSwgVE9CTigweDQxNWNiODBmLCAweDA5NjEwMDJkKSwK
KyAgICAgICAgICAgVE9CTigweDg5ZTVjNTY1LCAweDc2ZGNiMTBmKSwgVE9CTigweDhiYmI2OTgy
LCAweGZmOTI1OWZlKX0sCisgICAgICAgICAge1RPQk4oMHg0ZmU4Nzk1YiwgMHg5YWJjMjY2OCks
IFRPQk4oMHhiNWQ0ZjUzNCwgMHgxZTY3OGZiMSksCisgICAgICAgICAgIFRPQk4oMHg2NjAxZjNi
ZSwgMHg3YjdkYTJiOSksIFRPQk4oMHg5OGRhNTllMiwgMHhhMTNkNjgwNSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDE5MGQ4ZWE2LCAweDAxNzk5YTUyKSwgVE9CTigweGEyMGNlYzQxLCAweGI4NmQy
OTUyKSwKKyAgICAgICAgICAgVE9CTigweDMwNjJmZmIyLCAweDdmZmYyYTdjKSwgVE9CTigweDc0
MWIzMmU1LCAweDc5ZjE5ZDM3KX0sCisgICAgICAgICAge1RPQk4oMHhmODBkODE4MSwgMHg0ZWI1
N2Q0NyksIFRPQk4oMHg3YTJkMGVkNCwgMHgxNmFlZjA2YiksCisgICAgICAgICAgIFRPQk4oMHgw
OTczNWZiMCwgMHgxY2VjYjU4OCksIFRPQk4oMHgxNjQxY2FhYSwgMHhjNjA2MWY1Yil9fX0sCisg
ICAgICAgIHt7e1RPQk4oMHg3Zjk5ODI0ZiwgMHgyMDE1MTQyNyksIFRPQk4oMHgyMDY4MjhiNiwg
MHg5MjQzMDIwNiksCisgICAgICAgICAgIFRPQk4oMHhhYTkwOTdkNywgMHhlMTExMjM1NyksIFRP
Qk4oMHhhY2Y5YTJmMiwgMHgwOWU0MTRlYyl9LAorICAgICAgICAgIHtUT0JOKDB4ZGJkYWM5ZGEs
IDB4Mjc5MTUzNTYpLCBUT0JOKDB4N2UwNzM0YjcsIDB4MDAxZWZlZTMpLAorICAgICAgICAgICBU
T0JOKDB4NTRmYWI1YmIsIDB4ZDJiMjg4ZTIpLCBUT0JOKDB4NGM2MzBmYzQsIDB4ZjYyZGQwOWMp
fX0sCisgICAgICAgICB7e1RPQk4oMHg4NTM3MTA3YSwgMHgxYWMyNzAzYiksIFRPQk4oMHhiNDky
NThkOCwgMHg2YmM4NTdiNSksCisgICAgICAgICAgIFRPQk4oMHg1N2RmMTRkZSwgMHhiY2RhY2Nk
MSksIFRPQk4oMHgyNGFiNjhkNywgMHhjNGFlODUyOSl9LAorICAgICAgICAgIHtUT0JOKDB4N2Vk
OGI1ZDQsIDB4NzM0ZTU5ZDApLCBUT0JOKDB4NWY4NzQwYzgsIDB4YzQ5NWNjODApLAorICAgICAg
ICAgICBUT0JOKDB4ODRhZWRkNWEsIDB4MjkxZGI5YjMpLCBUT0JOKDB4ODBiMzYwZjgsIDB4NGZi
OTk1YmUpfX0sCisgICAgICAgICB7e1RPQk4oMHhhZTkxNWY1ZCwgMHg1ZmEwNjdkMSksIFRPQk4o
MHg0MTM0YjU3ZiwgMHg5NjY4OTYwYyksCisgICAgICAgICAgIFRPQk4oMHhiZDM2NTZkNiwgMHhh
NDhlZGFhYyksIFRPQk4oMHhkYWMxZTNlNCwgMHhmYzFkNzQzNil9LAorICAgICAgICAgIHtUT0JO
KDB4Njc0ZmY4NjksIDB4ZDgxZmJiMjYpLCBUT0JOKDB4NDQ5ZWQzZWMsIDB4YjI2YzMzZDQpLAor
ICAgICAgICAgICBUT0JOKDB4ODUxMzg3MDUsIDB4ZDk0MjAzZTgpLCBUT0JOKDB4Y2NkZTUzOGIs
IDB4YmVlYjZmNGEpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NWQ1YzY4ZCwgMHhhNjFhNzZmYSks
IFRPQk4oMHg1OThiNDQxZCwgMHhjYTE1NTRkYyksCisgICAgICAgICAgIFRPQk4oMHhkMzk5MjNi
OSwgMHg3NzNiMjc5YyksIFRPQk4oMHgzMzMzMWQzYywgMHgzNmJmOWVmYyl9LAorICAgICAgICAg
IHtUT0JOKDB4MmQ0Yzg0OGUsIDB4Mjk4ZGUzOTkpLCBUT0JOKDB4Y2ZkYjhlNzcsIDB4YTFhMjdm
NTYpLAorICAgICAgICAgICBUT0JOKDB4OTRjODU1ZWEsIDB4NTdiOGFiNzApLCBUT0JOKDB4ZGNk
YjlkYWUsIDB4NmY3ODc5YmEpfX0sCisgICAgICAgICB7e1RPQk4oMHg3YmRmZjhjMiwgMHgwMTlm
MmE1OSksIFRPQk4oMHhiM2NlNWJiMywgMHhjYjRmYmM3NCksCisgICAgICAgICAgIFRPQk4oMHhl
YTkwN2Y2OCwgMHg4YTkxNzNkZCksIFRPQk4oMHg2Y2QzZDBkMywgMHg5NWE3NTQzOSl9LAorICAg
ICAgICAgIHtUT0JOKDB4OTJlY2M0ZDYsIDB4ZWZlZDAyMWMpLCBUT0JOKDB4MDlhOWY5YjAsIDB4
NmE3NzMzOWEpLAorICAgICAgICAgICBUT0JOKDB4ODdjYTZiMTUsIDB4NzE4OGM2NGEpLCBUT0JO
KDB4MTBjMjk5NjgsIDB4NDQ4OTkxNTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg1ODU5YTIyOSwg
MHhlZDZlODJlZiksIFRPQk4oMHgxNmYzMzhlMywgMHg2NWViYWY0ZSksCisgICAgICAgICAgIFRP
Qk4oMHgwY2QzMTM4NywgMHg1ZWFkNjdhZSksIFRPQk4oMHgxYzczZDIyOCwgMHg1NGVmMGJiNCl9
LAorICAgICAgICAgIHtUT0JOKDB4NGNiNTUxMzEsIDB4NzRhNWM4YzcpLCBUT0JOKDB4MDFjZDI5
NzAsIDB4N2Y2OWFkNmEpLAorICAgICAgICAgICBUT0JOKDB4YTA0ZDAwZGQsIDB4ZTk2NmY4N2Up
LCBUT0JOKDB4ZDk2ZmU0NDcsIDB4MGI3YjAzMjEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzNDJh
YzA2ZSwgMHg4OGZiZDM4MSksIFRPQk4oMHgwMmNkNGE4NCwgMHg1YzM1YTQ5MyksCisgICAgICAg
ICAgIFRPQk4oMHhlOGZhODlkZSwgMHg1NGYxYmJjZCksIFRPQk4oMHgzNDFkNjM2NywgMHgyNTc1
ZWQ0Yyl9LAorICAgICAgICAgIHtUT0JOKDB4ZWJlMzU3ZmIsIDB4ZDIzODIwMmIpLCBUT0JOKDB4
NjAwYjRkMWEsIDB4YTk4NGVhZDkpLAorICAgICAgICAgICBUT0JOKDB4YzM1YzlmNDQsIDB4NTI0
MzZlYTApLCBUT0JOKDB4OTZmZTBhMzksIDB4YTM3MDc1MWIpfX0sCisgICAgICAgICB7e1RPQk4o
MHg0YzRmMDczNiwgMHg3ZjYzNmEzOCksIFRPQk4oMHg5Zjk0M2ZiNywgMHgwZTc2ZDVjYiksCisg
ICAgICAgICAgIFRPQk4oMHhiMDM1MTBiYSwgMHhhOGI2OGI4YiksIFRPQk4oMHhjMjQ2NzgwYSwg
MHg5ZWQwN2ExZil9LAorICAgICAgICAgIHtUT0JOKDB4M2MwNTE0MTUsIDB4NmQ1NDlmYzIpLCBU
T0JOKDB4YzI5NTNmMzEsIDB4NjA3NzgxY2EpLAorICAgICAgICAgICBUT0JOKDB4OTU1ZTJjNjks
IDB4ZDhkOTU0MTMpLCBUT0JOKDB4YjMwMGZhZGMsIDB4N2JkMjgyZTMpfX0sCisgICAgICAgICB7
e1RPQk4oMHg4MWZlN2I1MCwgMHg4N2U5MTg5ZiksIFRPQk4oMHhkYjE3Mzc1YywgMHhmNDJkZGEy
NyksCisgICAgICAgICAgIFRPQk4oMHgyMmY3ZDg5NiwgMHhjZjBhNTkwNCksIFRPQk4oMHhhMGU1
N2M1YSwgMHhlYmUzNDhlNil9LAorICAgICAgICAgIHtUT0JOKDB4YTYxMDExZDMsIDB4ZjQwZTNj
ODApLCBUT0JOKDB4YjExODkzMjEsIDB4OGRiNzA1YzUpLAorICAgICAgICAgICBUT0JOKDB4NGVk
OTMwOWUsIDB4NTBmZWRlYzMpLCBUT0JOKDB4ZGNmMTRhMTAsIDB4NGQ2ZDVjMWQpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgwNTZjMjY1YiwgMHg1NTY5MTM0MiksIFRPQk4oMHhlOGUwODUwNCwgMHg5
MTA0OWRjNyksCisgICAgICAgICAgIFRPQk4oMHgxMzEzMjlmNSwgMHhjOWJhZTIwYSksIFRPQk4o
MHg5NmM4YjNlOCwgMHhkOWRjY2RiNCl9LAorICAgICAgICAgIHtUT0JOKDB4OGM1ZmY4MzgsIDB4
ZmI0ZWU2YjQpLCBUT0JOKDB4ZmM1YTlhZWIsIDB4NDFlOGNjZjApLAorICAgICAgICAgICBUT0JO
KDB4NzQxN2I3NjQsIDB4ZmFlMDUwYzYpLCBUT0JOKDB4MDk1M2MzZDcsIDB4MDA0NTIwODApfX0s
CisgICAgICAgICB7e1RPQk4oMHgyMTM3MjY4MiwgMHgzOGRmZTdlOCksIFRPQk4oMHhlYTQxN2Ux
NSwgMHgyYmI3OWQ0YiksCisgICAgICAgICAgIFRPQk4oMHg1OTY0MWYxYywgMHg3NmU3Y2YyZCks
IFRPQk4oMHgyNzFlMzA1OSwgMHhlYTBiY2ZjYyl9LAorICAgICAgICAgIHtUT0JOKDB4NjI0Yzdk
ZmQsIDB4NzI1M2VjYmQpLCBUT0JOKDB4MmY1NTJlMjUsIDB4NGZjYTYxODYpLAorICAgICAgICAg
ICBUT0JOKDB4Y2JmODRlY2QsIDB4NGQ4NjZlOWMpLCBUT0JOKDB4NzM5Njc3MDksIDB4ZjY4ZDQ2
MTApfX0sCisgICAgICAgICB7e1RPQk4oMHhhMTRiMTE2MywgMHhjMjc5MDFiNCksIFRPQk4oMHhm
ZDkyMzZlMCwgMHg4OTliOGJmMyksCisgICAgICAgICAgIFRPQk4oMHg0MmIwOTFlYywgMHhjYmM2
ZGEwYSksIFRPQk4oMHhiYjFkYWM2ZiwgMHg1YWQxZDI5Nyl9LAorICAgICAgICAgIHtUT0JOKDB4
ODBlNjFkNTMsIDB4YTkxY2Y3NmUpLCBUT0JOKDB4NDExMGE0MTIsIDB4ZDMxZjFlZTcpLAorICAg
ICAgICAgICBUT0JOKDB4MmQ4N2MzYmEsIDB4MTNlZmNmNzcpLCBUT0JOKDB4MWYzNzRiYjQsIDB4
ZGY0NTBkNzYpfX0sCisgICAgICAgICB7e1RPQk4oMHg1ZTc4ZTJmMiwgMHgwZDE4OGRhYiksIFRP
Qk4oMHhlMzk2OGVkMCwgMHhmNGI4ODVlZiksCisgICAgICAgICAgIFRPQk4oMHg0NmMwNTY4ZSwg
MHg3MzE0NTcwZiksIFRPQk4oMHgzMTYxNjMzOCwgMHgwMTE3MDUyMSl9LAorICAgICAgICAgIHtU
T0JOKDB4MThlMWU3ZTIsIDB4NGYwYzhhZmUpLCBUT0JOKDB4NGNhYTc1ZmYsIDB4ZGVlYTc4ZGEp
LAorICAgICAgICAgICBUT0JOKDB4ODJkYjY3ZjIsIDB4N2M1ZDhhNTEpLCBUT0JOKDB4MzZhNDRk
ODYsIDB4NmY1MDUzNzApfX0sCisgICAgICAgICB7e1RPQk4oMHhkNzJjNWJkYSwgMHgwMzMzOTc0
ZiksIFRPQk4oMHg1ZGI1MTZhZSwgMHgyN2E3MDE0NiksCisgICAgICAgICAgIFRPQk4oMHgzNDcw
NTI4MSwgMHgyMTBlZjkyMSksIFRPQk4oMHhiZmYxN2E4ZiwgMHgwYzljMzhlNSl9LAorICAgICAg
ICAgIHtUT0JOKDB4NzhmNDgxNGUsIDB4MTI0NzZkYTEpLCBUT0JOKDB4YzFlMTY2MTMsIDB4MzNj
MTY5ODApLAorICAgICAgICAgICBUT0JOKDB4OWU1YjM4NmYsIDB4NDI0ZDRiY2EpLCBUT0JOKDB4
NGMyNzRlODcsIDB4Yzg1NzQwZGUpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNmE5Yjg4ZCwgMHg2
YzJmNTIyNiksIFRPQk4oMHgxNGQxYjk0NCwgMHg1NTBkN2NhOCksCisgICAgICAgICAgIFRPQk4o
MHg1ODBjODVmYywgMHgxZmM0MTcwOSksIFRPQk4oMHhjMWRhMzY4YiwgMHg1NGM2ZDUxOSl9LAor
ICAgICAgICAgIHtUT0JOKDB4MmIwNzg1Y2UsIDB4ZDUxMTNjZjcpLCBUT0JOKDB4MDY3MGY2MzMs
IDB4NWEzNDcwOGYpLAorICAgICAgICAgICBUT0JOKDB4NDZlMjM3NjcsIDB4MTVjYzNmODgpLCBU
T0JOKDB4MWI0ODBjZmEsIDB4NTBjNzJjOGYpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMDI4ODYw
MiwgMHg0MTQ3NTE5YSksIFRPQk4oMHhkMDk4MWVhYywgMHgyNmIzNzJmMCksCisgICAgICAgICAg
IFRPQk4oMHhhOWQ0YTdjYSwgMHhhNzg1ZWJjOCksIFRPQk4oMHhkOTUzYzUwZCwgMHhkYmRmNThl
OSl9LAorICAgICAgICAgIHtUT0JOKDB4OWQ2MzYxY2MsIDB4ZmQ1OTBmOGYpLCBUT0JOKDB4NzJl
OTYyNmIsIDB4NDRlNmM5MTcpLAorICAgICAgICAgICBUT0JOKDB4N2ZkOTYxMTAsIDB4MjJlYjY0
Y2YpLCBUT0JOKDB4ODYzZWJiN2UsIDB4OWViMjg4ZjMpfX0sCisgICAgICAgICB7e1RPQk4oMHg2
ZTZhYjc2MSwgMHg2YWNhOGVlNyksIFRPQk4oMHg5N2QxMGIzOSwgMHhkN2I0MDM1OCksCisgICAg
ICAgICAgIFRPQk4oMHgxNjg3ZDM3NywgMHgxZTVmZWIwZCksIFRPQk4oMHhjODNlNTBlNCwgMHg4
MjY1YTI3YSl9LAorICAgICAgICAgIHtUT0JOKDB4OGY3NWE5ZmUsIDB4Yzk1NGIzMTMpLCBUT0JO
KDB4Y2MyZThmNDcsIDB4MzEwZDFmNjEpLAorICAgICAgICAgICBUT0JOKDB4ZjViYTgxYzUsIDB4
NjU1N2QwZTApLCBUT0JOKDB4MjVmOTY4MGMsIDB4M2VhZjYyMDcpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhmOTVjNjYwOSwgMHg0MzU0MDgwYiksIFRPQk4oMHg1MjI1YmZhNSwgMHg3YmYyZmUxYyks
CisgICAgICAgICAgIFRPQk4oMHhjNWMwMDRlMiwgMHg1YzdkOThmYSksIFRPQk4oMHgzNTYxYmYx
YywgMHgwMTlhYWY2MCl9LAorICAgICAgICAgIHtUT0JOKDB4NWU2ZjlmMTcsIDB4YmExNTE0NzQp
LCBUT0JOKDB4ZGVjMmY5MzQsIDB4YjA0ZjZlY2EpLAorICAgICAgICAgICBUT0JOKDB4NjRlMzY4
YTEsIDB4MjY5YWNiMWUpLCBUT0JOKDB4MTMzMmQ5ZTQsIDB4MGNkZGE0OTMpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg2MGQ2Y2Y2OSwgMHhkZjIzZGUwNSksIFRPQk4oMHg2NmQxN2RhMiwgMHgwMDkz
MzlhMCksCisgICAgICAgICAgIFRPQk4oMHg5ZmNhYzk4NSwgMHgwYTY5MzkyMyksIFRPQk4oMHhi
Y2YwNTdmYywgMHhlZDdjNmE2ZCl9LAorICAgICAgICAgIHtUT0JOKDB4YzNjNWM4YzUsIDB4ZjBi
NTY2MmMpLCBUT0JOKDB4MjUzMThkZDgsIDB4ZGNiYTRmMjQpLAorICAgICAgICAgICBUT0JOKDB4
NjBlOGNiNzUsIDB4MDgyYjY5ZmYpLCBUT0JOKDB4N2MyM2IzZWUsIDB4MWU3MjhjMDEpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgxNWUxMGEwYSwgMHgwOTdlNDQwMyksIFRPQk4oMHhjYjNkMGE4Niwg
MHgxOTg1NDY2NSksCisgICAgICAgICAgIFRPQk4oMHg4OGQ4ZTIxMSwgMHhkNjdkNDgyNiksIFRP
Qk4oMHhiMzlhZjY2ZSwgMHgwYjlkMjgzOSl9LAorICAgICAgICAgIHtUT0JOKDB4YTVmOTQ1ODgs
IDB4YmQ0NzVjYTgpLCBUT0JOKDB4ZTA2Yjc5NjYsIDB4YzA3N2I4MGIpLAorICAgICAgICAgICBU
T0JOKDB4ZmVkYjE0ODUsIDB4ZGEyN2MyNmMpLCBUT0JOKDB4ZDI5MGQzM2EsIDB4ZmUwZmQ1ZTAp
fX0sCisgICAgICAgICB7e1RPQk4oMHhhNDBiY2M0NywgMHhmMzRmYjBmYSksIFRPQk4oMHhiNDc2
MGNjOCwgMHgxZmIxYWIwOSksCisgICAgICAgICAgIFRPQk4oMHg4ZmNhMDk5MywgMHhhMjczYmZl
MyksIFRPQk4oMHgxM2U0ZmUwNywgMHhmNzBiMjEzYyl9LAorICAgICAgICAgIHtUT0JOKDB4M2Jj
ZGI5OTIsIDB4ZmRiMDUxNjMpLCBUT0JOKDB4OGM0ODRiMTEsIDB4MGMyYjE5YjYpLAorICAgICAg
ICAgICBUT0JOKDB4MWFjYjgxNWYsIDB4YWFmMmUzZTIpLCBUT0JOKDB4YzY5MDU5MzUsIDB4Yjg5
ZmYxYjQpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMmFkNmY5ZCwgMHg1ODZlNzRlMSksIFRPQk4o
MHg0ODg4ODNhZCwgMHg2N2I4MDQ4NCksCisgICAgICAgICAgIFRPQk4oMHg3NThhYTJjNywgMHgz
NjljM2RkYiksIFRPQk4oMHg4YWI3NGU2OSwgMHg5ZjlhZmQzMSl9LAorICAgICAgICAgIHtUT0JO
KDB4MTBmYzJkMjgsIDB4NWUyMWJlYjEpLCBUT0JOKDB4MzQ4NDUxOGEsIDB4MzE4YzQyZjkpLAor
ICAgICAgICAgICBUT0JOKDB4Mzc3NDI3ZGMsIDB4NTNjZjQwYzMpLCBUT0JOKDB4OWRlMDc4MWEs
IDB4MzkxYmMxZDkpfX0sCisgICAgICAgICB7e1RPQk4oMHg4ZmFlZTg1OCwgMHg2OTM4MDdlMSks
IFRPQk4oMHhhMzg2NTMyNywgMHg0ZTgxY2NjNyksCisgICAgICAgICAgIFRPQk4oMHgwMmMzMGZm
MiwgMHg2ZjgzNWI4NCksIFRPQk4oMHhiNjA0NDM3YiwgMHgwZDNkMzhkNCl9LAorICAgICAgICAg
IHtUT0JOKDB4YjNmYzhhOTgsIDB4NWNhMTgyM2QpLCBUT0JOKDB4YjgyZjdlYzksIDB4MDNiZTAz
MjQpLAorICAgICAgICAgICBUT0JOKDB4ZWUzNmQ3NjEsIDB4Y2Y2ODRhMzMpLCBUT0JOKDB4NWEw
MWRmMGUsIDB4OWYyOWJmN2QpfX0sCisgICAgICAgICB7e1RPQk4oMHg2ODYyMDJmMywgMHgxMzA2
NTgzZCksIFRPQk4oMHgwNWIxMGRhMCwgMHg0MzdjNjIyZSksCisgICAgICAgICAgIFRPQk4oMHhi
ZjlhYWEwZiwgMHgwNzZhN2JjOCksIFRPQk4oMHgyNWU5NGVmYiwgMHg4ZjhmNGU0Myl9LAorICAg
ICAgICAgIHtUT0JOKDB4OGEzNWM5YjcsIDB4ZmEzZGMyNmQpLCBUT0JOKDB4ZTBlNWZiOTMsIDB4
OTZmZjAzYzUpLAorICAgICAgICAgICBUT0JOKDB4YTc3ZTM4NDMsIDB4ZWJjMzk0Y2UpLCBUT0JO
KDB4Y2VkZTY1OTUsIDB4ODM2MWRlNjApfX0sCisgICAgICAgICB7e1RPQk4oMHhkMjdjMjJmNiwg
MHhhMTk5MzU0NSksIFRPQk4oMHhhYjAxY2MzNiwgMHgyNGQ2NzFiYSksCisgICAgICAgICAgIFRP
Qk4oMHg2M2ZhMjg3NywgMHhhMTY5YzI4ZSksIFRPQk4oMHg5MjVlZjkwNCwgMHgyZWIwODM3Nil9
LAorICAgICAgICAgIHtUT0JOKDB4M2IyZmEzY2YsIDB4NTNhYTBiMzIpLCBUT0JOKDB4YjI3YmVi
NWIsIDB4NzFjNDlkN2EpLAorICAgICAgICAgICBUT0JOKDB4YjYwZTE4MzQsIDB4ZDEwNWUyN2Yp
LCBUT0JOKDB4ZDYwODk3ODgsIDB4NGY2ODU3MGQpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMzA5
NGNlMCwgMHhkNmZiYzJhYyksIFRPQk4oMHg3MzgwMzdhMSwgMHg4MTVmZjU1MSksCisgICAgICAg
ICAgIFRPQk4oMHhkYTczYjFiYiwgMHg2YmVmMTE5YyksIFRPQk4oMHhkY2Y2YzQzMCwgMHhlZWY1
MDZiYSl9LAorICAgICAgICAgIHtUT0JOKDB4MDBlNGZlN2IsIDB4ZTNlZjEwNGEpLCBUT0JOKDB4
ZWJkZDlhMmMsIDB4MGEwNjU2MjgpLAorICAgICAgICAgICBUT0JOKDB4ODUzYTgxYzMsIDB4ODc5
MjA0M2UpLCBUT0JOKDB4MjJhZDZlY2UsIDB4YjNiNTkxMDgpfX0sCisgICAgICAgICB7e1RPQk4o
MHg5ZmI4MTNjMCwgMHgzOWNkMjk3ZCksIFRPQk4oMHg4ZWM3ZTE2ZSwgMHgwNWJkYTVkOSksCisg
ICAgICAgICAgIFRPQk4oMHgyODM0Nzk3YywgMHgwZDEwNGI5NiksIFRPQk4oMHhjYzExYTJlNywg
MHg3YzUxMTUxMCl9LAorICAgICAgICAgIHtUT0JOKDB4OTZjYTVhNTMsIDB4OTZlZTYzODApLCBU
T0JOKDB4MDU0Yzg2NTUsIDB4Y2VhMzg3NDIpLAorICAgICAgICAgICBUT0JOKDB4YjU5NDY4NTIs
IDB4ZDU0ZGZhN2QpLCBUT0JOKDB4OTdjNDIyZTcsIDB4MWY0YWIyMDcpfX0sCisgICAgICAgICB7
e1RPQk4oMHhiZjkwNzUwOSwgMHgwYzIyYjU0MCksIFRPQk4oMHgyY2RlNDJhYSwgMHhiN2MyNjdk
NCksCisgICAgICAgICAgIFRPQk4oMHhiYTE4ZjllZCwgMHg1YWIwZDY5MyksIFRPQk4oMHgzYmE2
MmFhNiwgMHg2ZTQ2NjBkOSl9LAorICAgICAgICAgIHtUT0JOKDB4YjI0YmY5N2IsIDB4YWI5ZWE5
NmEpLCBUT0JOKDB4NWQwMzk2NDIsIDB4ZTNiNjBlMzIpLAorICAgICAgICAgICBUT0JOKDB4NGU2
YTQ1MDYsIDB4N2M0ZDliZDUpLCBUT0JOKDB4NjY2YzViOWUsIDB4N2VkNGE2YTQpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhmYTNmZGNkOSwgMHg4ZWRiZDdjYyksIFRPQk4oMHg0NjYwYmI4NywgMHhj
NmNjZDc1MyksCisgICAgICAgICAgIFRPQk4oMHg5YWU5MDgyMCwgMHgyMWU2YjY0ZiksIFRPQk4o
MHg4YTU2YTcxMywgMHhiMzZiZmIzZil9LAorICAgICAgICAgIHtUT0JOKDB4YWJmY2UwOTYsIDB4
NTcyNmQ0N2YpLCBUT0JOKDB4OWVlZDAxYjIsIDB4MGIxYTlhN2YpLAorICAgICAgICAgICBUT0JO
KDB4MzBlOWNhZDQsIDB4NGViNzRhMzcpLCBUT0JOKDB4N2IyNTI0Y2MsIDB4NTNlOTY2NmQpfX0s
CisgICAgICAgICB7e1RPQk4oMHg2YTI5NjgzYiwgMHg4ZjRiMDAyZiksIFRPQk4oMHhjMjIwMGQ3
YSwgMHg0MWY0ZmMyMCksCisgICAgICAgICAgIFRPQk4oMHhjZjNhZjQ3YSwgMHgzYTMzOGFjYyks
IFRPQk4oMHg2NTM5YTRmYiwgMHhlNzEyODk3NSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2VjMzFj
MTQsIDB4YzMzYzdmY2YpLCBUT0JOKDB4N2ViNjc5OWIsIDB4YzdiZTMyMmIpLAorICAgICAgICAg
ICBUT0JOKDB4MTE5ZWY0ZTksIDB4NjY0NmY2MjMpLCBUT0JOKDB4N2I3YTI2YTUsIDB4NTRkNzI5
OWIpfX0sCisgICAgICAgICB7e1RPQk4oMHhjYjM3ZjA4ZCwgMHg0MDNmNDZmMiksIFRPQk4oMHg5
NGI4ZmM0MywgMHgxYTBlYzBjNyksCisgICAgICAgICAgIFRPQk4oMHhiYjg1MTRlMywgMHhjMzMy
MTQyZiksIFRPQk4oMHhmM2VkMmMzMywgMHhlODBkMmE3YSl9LAorICAgICAgICAgIHtUT0JOKDB4
OGQyMDgwYWYsIDB4YjYzOTEyNmMpLCBUT0JOKDB4ZjdiNmJlNjAsIDB4ZTM1NTNhZGUpLAorICAg
ICAgICAgICBUT0JOKDB4Mzk1MGFhOWYsIDB4MWM3ZTJiMDkpLCBUT0JOKDB4ODQ3ZmY5NTgsIDB4
NjQxMGYwMmIpfX0sCisgICAgICAgICB7e1RPQk4oMHg4NzdiN2NmNSwgMHg2NzhhMzFiMCksIFRP
Qk4oMHhkNTAzMDFhZSwgMHgzOTk4YjYyMCksCisgICAgICAgICAgIFRPQk4oMHg3MzQyNTdjNSwg
MHhjMDBmYjM5NiksIFRPQk4oMHhmOWZiMThhMCwgMHgwNGU2NzJhNil9LAorICAgICAgICAgIHtU
T0JOKDB4ZmY4YmQ4ZWIsIDB4ZTg3NTg4NTEpLCBUT0JOKDB4MWU2NGU0YzYsIDB4NWQ5OWJhNDQp
LAorICAgICAgICAgICBUT0JOKDB4NGI4ZWFlZGYsIDB4N2RmZDkzYjcpLCBUT0JOKDB4YmEyZjJh
OTgsIDB4MDRlNzZiOGMpfX0sCisgICAgICAgICB7e1RPQk4oMHg3ZDc5MGNiYSwgMHhlODA1MzQz
MyksIFRPQk4oMHhjOGU3MjVhMCwgMHgzZDJjOTU4NSksCisgICAgICAgICAgIFRPQk4oMHg1OGM1
YzQ3NiwgMHhjZGQ4ZjVlZCksIFRPQk4oMHhkMTA2Yjk1MiwgMHhlZmE5ZmUxZCl9LAorICAgICAg
ICAgIHtUT0JOKDB4M2M1Yzc3NWIsIDB4MGVmZjEzYTkpLCBUT0JOKDB4MjQyNDQyYmEsIDB4ZTA1
N2I5MzApLAorICAgICAgICAgICBUT0JOKDB4ZTlmNDU4ZDQsIDB4YzliNzBjYmQpLCBUT0JOKDB4
NjliNzE0NDgsIDB4YTNjZGI4OWEpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MWVlNDZmNiwgMHgw
ZTJlZDc0MiksIFRPQk4oMHg1NzNmMTA0NSwgMHg0MDA2NzQ5MyksCisgICAgICAgICAgIFRPQk4o
MHhiMWUxNTRmZiwgMHg5ZDU0YzMwNCksIFRPQk4oMHgyYWQwNDM2YSwgMHg4ZDNhNzUwMil9LAor
ICAgICAgICAgIHtUT0JOKDB4ZWU0YWFhMmQsIDB4NDMxYTgxMjEpLCBUT0JOKDB4Y2QzOGIzYWIs
IDB4ODg2ZjExZWQpLAorICAgICAgICAgICBUT0JOKDB4NTdkNDllYTYsIDB4MDM0YTBlYjcpLCBU
T0JOKDB4ZDJiNzczYmQsIDB4ZjdlODVlNTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg0YTU1OWFj
NCwgMHg5YjVjMWYxNCksIFRPQk4oMHhjNDQ0YmUxYSwgMHgzZTU0ZGYyYiksCisgICAgICAgICAg
IFRPQk4oMHgxM2FhZDcwNCwgMHhlZGE0MTg5MSksIFRPQk4oMHhjZDkyN2JlYywgMHg1ZWI1Yzc4
OCl9LAorICAgICAgICAgIHtUT0JOKDB4ZWIzYzg1MTYsIDB4ZTQ4YzhhMzQpLCBUT0JOKDB4MWI3
YWM4MTIsIDB4NGI1NDY2NjkpLAorICAgICAgICAgICBUT0JOKDB4MTgxNWY4OTYsIDB4NTk0ZGY4
ZWMpLCBUT0JOKDB4ODdjNmE3OWMsIDB4NzkyMjc4NjUpfX0sCisgICAgICAgICB7e1RPQk4oMHhh
ZTAyYTJmMCwgMHg5YjU2ZGRiZCksIFRPQk4oMHgxMzM5YjVhYywgMHg4YTJmMWNmMyksCisgICAg
ICAgICAgIFRPQk4oMHhmMmI1NjljNywgMHg4MzlkZmYwZCksIFRPQk4oMHhiMGI5ZTg2NCwgMHhm
ZWU5YTQzZCl9LAorICAgICAgICAgIHtUT0JOKDB4NGZmOGNhNDEsIDB4NzdiYjA2NGUpLCBUT0JO
KDB4MTQ1YTI4MTIsIDB4ZmQyNDlmNjMpLAorICAgICAgICAgICBUT0JOKDB4M2FiN2JlYWMsIDB4
Zjg2ZjY4OWEpLCBUT0JOKDB4OWJhZmVjMjcsIDB4MDFkMzVmNWUpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgyODA1NGM2NSwgMHg0MjY1YWE5MSksIFRPQk4oMHhhNGIxODMwNCwgMHgwMzVlZmU0Miks
CisgICAgICAgICAgIFRPQk4oMHg2ODg3YjBlNiwgMHg5NjM5ZGVjNyksIFRPQk4oMHhmNGI4ZjZh
ZCwgMHgzZDUyYWVhNSl9LAorICAgICAgICAgIHtUT0JOKDB4ZmI5MjkzY2MsIDB4OTcxYThhMTMp
LCBUT0JOKDB4M2YxNTllNWQsIDB4NGM5MzRkMDcpLAorICAgICAgICAgICBUT0JOKDB4MmM1MGU5
YjEsIDB4MDlhY2JjMjkpLCBUT0JOKDB4MDhlYjY1ZTYsIDB4NzE1NGQxMjkpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg0ZmVmZjU4OSwgMHgzMGI3NWMzZSksIFRPQk4oMHgwYmI4MmZlMiwgMHg5NDQ5
MWM5MyksCisgICAgICAgICAgIFRPQk4oMHhkOGFjMzc3YSwgMHg4OWFmNjJiYiksIFRPQk4oMHhk
N2I1MTQ5MCwgMHg5Njg1ZTQ5Zil9LAorICAgICAgICAgIHtUT0JOKDB4YWJjYTlhN2IsIDB4MDQ0
OTdmMTkpLCBUT0JOKDB4MWIzNWVkMGEsIDB4MWE3YWQxM2YpLAorICAgICAgICAgICBUT0JOKDB4
NmI2MDFlMjEsIDB4M2VjODZlZDYpLCBUT0JOKDB4ZGE5MWZjYjksIDB4Y2UwYzc2ZjEpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg5ZTI4NTA3YiwgMHhkN2FiMjdlMSksIFRPQk4oMHg3YzE5YTU1NSwg
MHg2Mzk0NWI3YiksCisgICAgICAgICAgIFRPQk4oMHg2YjQzZjBhMSwgMHhhYWZjOTgyNyksIFRP
Qk4oMHg0NDNiNGZiZCwgMHgzYWE1NWI5MSl9LAorICAgICAgICAgIHtUT0JOKDB4OTYyYjJlNjUs
IDB4Njk2MmM4OGYpLCBUT0JOKDB4MTM5ZGE4ZDQsIDB4Y2UwZGIwY2EpLAorICAgICAgICAgICBU
T0JOKDB4YjkzZjA1ZGQsIDB4MWI4ZDZjNGYpLCBUT0JOKDB4Nzc5Y2RmZjcsIDB4MTgwYjk4MjQp
fX0sCisgICAgICAgICB7e1RPQk4oMHhiYmEyM2ZkZCwgMHhhZTU3YzdiNyksIFRPQk4oMHgzNDUz
NDJmMiwgMHgxYjkzMjUyMiksCisgICAgICAgICAgIFRPQk4oMHhmZDljODBmZSwgMHg1NTZkNGFh
MyksIFRPQk4oMHhhMDM5MDdiYSwgMHg2NTI1YmI2MSl9LAorICAgICAgICAgIHtUT0JOKDB4Mzhi
MDEwZTEsIDB4ZmYyMTg5MzMpLCBUT0JOKDB4YzA2NmI2NTQsIDB4YWE1MjExN2IpLAorICAgICAg
ICAgICBUT0JOKDB4OGUxNDE5MjAsIDB4OTRmMmU2ZWEpLCBUT0JOKDB4NjZhMjdkY2EsIDB4MGQz
MmYyYjIpfX0sCisgICAgICAgICB7e1RPQk4oMHg2OWM3Zjk5MywgMHgwNDhiMzcxNyksIFRPQk4o
MHhiZjVhOTg5YSwgMHhiMTc4YWUxYyksCisgICAgICAgICAgIFRPQk4oMHg0OWZhOTA1OCwgMHg1
NjRmMWQ2YiksIFRPQk4oMHgyN2VjNmUxNSwgMHhkMzFmZGU0ZSl9LAorICAgICAgICAgIHtUT0JO
KDB4NGNjZTAzNzMsIDB4NzI3NmU3ZmMpLCBUT0JOKDB4NjQwODZkNzksIDB4ODlkNmJmMDIpLAor
ICAgICAgICAgICBUT0JOKDB4NWE3MmYwNDYsIDB4NGNjZGQ5NzkpLCBUT0JOKDB4OTA5YzM1NjYs
IDB4NDc3NzU2MzEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxYzA3YmM2YiwgMHg3NWRkNzEyNSks
IFRPQk4oMHhiNGM2YmM5NywgMHg4N2EwNDI4ZCksCisgICAgICAgICAgIFRPQk4oMHg1MDdlY2U1
MiwgMHhmZGViNmI5ZCksIFRPQk4oMHhmY2E1NjUxMiwgMHhiMmM5NTQzMil9LAorICAgICAgICAg
IHtUT0JOKDB4MTVkOTcxODEsIDB4ZDBlOGJkMDYpLCBUT0JOKDB4Mzg0ZGQzMTcsIDB4YzZiYjQ2
ZWEpLAorICAgICAgICAgICBUT0JOKDB4NTQ0MWVhMjAsIDB4Mzk1MmI2MjQpLCBUT0JOKDB4YmNm
NzBkZWUsIDB4NGU3ZGMyZmIpfX0sCisgICAgICAgICB7e1RPQk4oMHgzNzJiMDE2ZSwgMHg2NjI4
ZThjMyksIFRPQk4oMHgwN2EwZDY2NywgMHhiNjBhNzUyMiksCisgICAgICAgICAgIFRPQk4oMHhj
ZjA1NzUxYiwgMHgwYTM0NGVlMiksIFRPQk4oMHgwZWMwOWE0OCwgMHgxMThiZGVlYyl9LAorICAg
ICAgICAgIHtUT0JOKDB4NmU0YjNkNGUsIDB4ZDgzZGNlNDYpLCBUT0JOKDB4NDNhNjMxNmQsIDB4
OTlkMmZjNmUpLAorICAgICAgICAgICBUT0JOKDB4YTk5ZDg5ODksIDB4NTZjZjA0NGMpLCBUT0JO
KDB4N2M3ZjQ0NTQsIDB4YWUzZTVmYjcpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMmU2YjEyMSwg
MHhmYmFiYmU5MiksIFRPQk4oMHgyODE4NTBmYiwgMHhlMTMzMDA3NiksCisgICAgICAgICAgIFRP
Qk4oMHgwOTM1ODFlYywgMHg5Nzg5MDAxNSksIFRPQk4oMHg2OWIxZGRlZCwgMHg3NWZmNzdmNSl9
LAorICAgICAgICAgIHtUT0JOKDB4N2NmMGIxOGYsIDB4YWIxMDUxMDUpLCBUT0JOKDB4OTUzY2Vk
MzEsIDB4YTg5Y2NmZWYpLAorICAgICAgICAgICBUT0JOKDB4MzE1MWY4NWYsIDB4ZWI5MTQwMDkp
LCBUT0JOKDB4M2M5ZjFiODcsIDB4ODhlZDQ4YWQpfX0sCisgICAgICAgICB7e1RPQk4oMHhjOWFi
YTFhMSwgMHg0YTdlYWRjYiksIFRPQk4oMHg5MjhlNzUwMSwgMHg1MjJlNzFjZiksCisgICAgICAg
ICAgIFRPQk4oMHhlYWVkZTcyNywgMHgzYTJlNGY4MyksIFRPQk4oMHg0NjdlMTBkMSwgMHgxY2Uz
YmJkMyl9LAorICAgICAgICAgIHtUT0JOKDB4ZjM0NDJhYzMsIDB4Yjk1NWRjZjApLCBUT0JOKDB4
YmE5NjMwN2QsIDB4ZDNkNWU1MjcpLAorICAgICAgICAgICBUT0JOKDB4Zjc2M2ExMGUsIDB4ZmQ3
N2Y0NzQpLCBUT0JOKDB4NWQ3NDRiZDAsIDB4NmE2ZTFmZjApfX0sCisgICAgICAgICB7e1RPQk4o
MHhkMjg3MjgyYSwgMHhhNzc3ODk5ZSksIFRPQk4oMHhlMjBlZGE4ZiwgMHhkMDNmM2NkZSksCisg
ICAgICAgICAgIFRPQk4oMHg2YTdlNzViYiwgMHg1MGIwN2QzMSksIFRPQk4oMHgwYjdlMmE5NCwg
MHg2ZjM3OWRlNCl9LAorICAgICAgICAgIHtUT0JOKDB4MzFjYjY0YWQsIDB4MTlmNTkzY2YpLCBU
T0JOKDB4N2IxYTllNGYsIDB4MWU3NmVmMWQpLAorICAgICAgICAgICBUT0JOKDB4ZTE4YzljOWQs
IDB4YjYyZDYwOWMpLCBUT0JOKDB4NDM5YmFkNmQsIDB4ZTc3OWE2NTApfX0sCisgICAgICAgICB7
e1RPQk4oMHgyMTlkOTA2NiwgMHhlMDMyZjE0NCksIFRPQk4oMHgxZGI2MzJiOCwgMHhlOGIyZWM2
YSksCisgICAgICAgICAgIFRPQk4oMHhmZjBkMGZkNCwgMHhmZGExMmY3OCksIFRPQk4oMHg1NmZi
NGMyZCwgMHgyYTI1ZDI2NSl9LAorICAgICAgICAgIHtUT0JOKDB4NWY0ZTJlZTEsIDB4MjU1YTAz
ZjEpLCBUT0JOKDB4NjFjZDZhZjIsIDB4ZTk2YWYxNzYpLAorICAgICAgICAgICBUT0JOKDB4ZTAz
MTdiYTgsIDB4ZDA2OGJjOTcpLCBUT0JOKDB4OTI3ZDZiYWIsIDB4MjY0Yjk4OGUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhhMThmMDdlMCwgMHhlOTBmYjIxZSksIFRPQk4oMHgwMGZkMmI4MCwgMHhi
YmE3ZmNhMSksCisgICAgICAgICAgIFRPQk4oMHgyMDM4N2YyNywgMHg5NWNkNjdiNSksIFRPQk4o
MHg1Yjg5YTRlNywgMHhkMzk3MDdmNyl9LAorICAgICAgICAgIHtUT0JOKDB4OGY4M2FkM2YsIDB4
ODk0NDA3Y2UpLCBUT0JOKDB4YTAwMjViOTQsIDB4NmMyMjYxMzIpLAorICAgICAgICAgICBUT0JO
KDB4Yzc5NTYzYzcsIDB4ZjkwNmMxM2IpLCBUT0JOKDB4NWY1NDhmMzEsIDB4NGU3YmIwMjUpfX0s
CisgICAgICAgICB7e1RPQk4oMHgyYjRjNmI4ZiwgMHhlYWM2ZDExMyksIFRPQk4oMHhhNjdlM2Y5
YywgMHgwZTgxM2M3NiksCisgICAgICAgICAgIFRPQk4oMHgzOTgyNzE3YywgMHgzZmUxZjRiOSks
IFRPQk4oMHg1ODg2NTgxOSwgMHgyNmQ4MDUwZSl9LAorICAgICAgICAgIHtUT0JOKDB4OTlmMzY0
MGMsIDB4ZjdmMDZmMjApLCBUT0JOKDB4ZGM2MTAyMTYsIDB4MmE2NmViYzIpLAorICAgICAgICAg
ICBUT0JOKDB4NTJmMmMxNzUsIDB4NzY3YTFlMDgpLCBUT0JOKDB4MDU2NjBlMWEsIDB4NTk5OTg3
MWIpfX0sCisgICAgICAgICB7e1RPQk4oMHg2YjBmMTc2MiwgMHg2ZDNjNDY5MyksIFRPQk4oMHhm
MGU3ZDYyNywgMHgzN2VkN2JlYSksCisgICAgICAgICAgIFRPQk4oMHhjNTE3NThjNywgMHhiNzVi
MjI2ZCksIFRPQk4oMHg0MGE4ODYyOCwgMHgxZjkxNjEzYil9LAorICAgICAgICAgIHtUT0JOKDB4
ODg5ZGJhYTcsIDB4YmJiMzhjZTApLCBUT0JOKDB4ZTA0MDRiNjUsIDB4YmRkY2FkODEpLAorICAg
ICAgICAgICBUT0JOKDB4ZmViY2NkM2EsIDB4OGJjOTY3MWYpLCBUT0JOKDB4ZmJmOWEzNTcsIDB4
ZWUxZjUzNzUpfX0sCisgICAgICAgICB7e1RPQk4oMHg1ZGMxNjliMCwgMHgyOGYzMzM5OCksIFRP
Qk4oMHhiMDdlYzExZCwgMHg3MmU5MGY2NSksCisgICAgICAgICAgIFRPQk4oMHhhZTdmM2I0YSwg
MHhmYWFiMWViMSksIFRPQk4oMHhkOTcwMTk1ZSwgMHg1ZjE3NTM4YSl9LAorICAgICAgICAgIHtU
T0JOKDB4NTJiMDVjYmUsIDB4MDE4MWU2NDApLCBUT0JOKDB4ZjVkZWJkNjIsIDB4MjY0MzMxM2Qp
LAorICAgICAgICAgICBUT0JOKDB4NzYxNDgxNTQsIDB4NWRmMzFmODIpLCBUT0JOKDB4MjNlMDNi
MzMsIDB4M2E5ZTEzYzUpfX0sCisgICAgICAgICB7e1RPQk4oMHhmZjc1ODk0OSwgMHg0ZmRlMGMx
ZiksIFRPQk4oMHhiZjhhMWFiZSwgMHhlNWI2ZWMyMCksCisgICAgICAgICAgIFRPQk4oMHg3MDIy
NzhmYiwgMHg4N2UxZGI2YyksIFRPQk4oMHhjNDQ3YWQ3YSwgMHgzNWVkNjU4Zil9LAorICAgICAg
ICAgIHtUT0JOKDB4NDhkNGFhMzgsIDB4MDNkMGNjZjIpLCBUT0JOKDB4ODBhY2IzMzgsIDB4ODE5
YTdjMDMpLAorICAgICAgICAgICBUT0JOKDB4OWJjN2M4OWUsIDB4NmUxN2NlY2MpLCBUT0JOKDB4
NDY3MzZiOGIsIDB4MDNiZTFkODIpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNjVkN2I2MCwgMHhj
MDQzMmY5NiksIFRPQk4oMHhkZGViZTdhMywgMHhkZWI1NDQyZiksCisgICAgICAgICAgIFRPQk4o
MHg3OWEyNTMwNywgMHg3ZGZmNjlhMiksIFRPQk4oMHgzN2E1NmQ5NCwgMHgwMmNmMzEyMil9LAor
ICAgICAgICAgIHtUT0JOKDB4OGJhYjhhZWQsIDB4ZjIzNTBkMGEpLCBUT0JOKDB4MTNjM2YyNzYs
IDB4MDM3YjBkOWEpLAorICAgICAgICAgICBUT0JOKDB4YzY2NDk1N2MsIDB4NDRjNjVjYWUpLCBU
T0JOKDB4ODhiNDQwODksIDB4YzJlNzFhODgpfX0sCisgICAgICAgICB7e1RPQk4oMHhkYjg4ZTVh
MywgMHg1Y2IwMjY2NCksIFRPQk4oMHg1ZDRjMGJmMSwgMHg4Njg2YzcyZSksCisgICAgICAgICAg
IFRPQk4oMHhlYTNkOWI2MiwgMHhhNjgyZDUzZSksIFRPQk4oMHg5YjYwNWVmNCwgMHgwYjJhZDQz
MSl9LAorICAgICAgICAgIHtUT0JOKDB4NzFiYWMyMDIsIDB4YzY5NjQ1ZDApLCBUT0JOKDB4YTEx
NWYwM2EsIDB4NmExYjY2ZTcpLAorICAgICAgICAgICBUT0JOKDB4ZmUyYzU2M2EsIDB4MTU4ZjRk
YzQpLCBUT0JOKDB4ZjcxNWIzYTAsIDB4NGQxMmE3OGMpfX0sCisgICAgICAgICB7e1RPQk4oMHg4
ZjdmMGE0OCwgMHhkNDEzMjEzYSksIFRPQk4oMHgyMDM1ODA2ZCwgMHhjMDRiZWNkYiksCisgICAg
ICAgICAgIFRPQk4oMHhlY2QzNGE5OSwgMHg1ZDg1ODdmNSksIFRPQk4oMHg0ZDhjMzA3OSwgMHg5
ZjZkM2E3MSl9LAorICAgICAgICAgIHtUT0JOKDB4MWIyYTJhNjcsIDB4OGQ5NWE4ZjYpLCBUT0JO
KDB4YzU4YzlkN2QsIDB4ZjIxMTBkMGQpLAorICAgICAgICAgICBUT0JOKDB4ZGVlZTgxZDUsIDB4
Y2Y4ZmJhM2YpLCBUT0JOKDB4YTQyYmUzYzAsIDB4MGM3Y2RmNjgpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgyMTI2Zjc0MiwgMHhkNDNiNWVhYSksIFRPQk4oMHgwNTRhMDc2NiwgMHhkZmE1OWI4NSks
CisgICAgICAgICAgIFRPQk4oMHg5ZDBkNWUzNiwgMHgxMjZiZmQ0NSksIFRPQk4oMHhhMWY4ZmJk
NywgMHgzODRmOGE4Zil9LAorICAgICAgICAgIHtUT0JOKDB4MzE3NjgwZjUsIDB4ZDU2M2ZjY2Mp
LCBUT0JOKDB4NDhjYTUwNTUsIDB4ZjI4MGE5MjgpLAorICAgICAgICAgICBUT0JOKDB4ZTAwYjgx
YjIsIDB4MjdiNTc4Y2YpLCBUT0JOKDB4MTBhYWQ5MTgsIDB4Mjk5NGE1MTQpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhkOWUwN2I2MiwgMHhiN2JkYzk1MyksIFRPQk4oMHg5ZjBmNmZmMiwgMHg1YmMw
ODZkZCksCisgICAgICAgICAgIFRPQk4oMHgwOWQxY2NmZiwgMHg2NTVlZWU3NyksIFRPQk4oMHg0
NTQ3NWY3OSwgMHg1YmVmN2RmMSl9LAorICAgICAgICAgIHtUT0JOKDB4M2ZhYTI4ZmEsIDB4ODZm
NzAyY2MpLCBUT0JOKDB4OTJlNjA5MDUsIDB4MGYwMjFmMDcpLAorICAgICAgICAgICBUT0JOKDB4
ZTllNjI5NjgsIDB4N2Y4ZmE4YzYpLCBUT0JOKDB4YmQ3MTQxOWEsIDB4ZjAzNmVhMmMpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgxNzFlZTFjYywgMHg2MDI4ZGE5YSksIFRPQk4oMHg1MzUyZmUxYSwg
MHhjMjUxZjU3MyksCisgICAgICAgICAgIFRPQk4oMHhmOGZmMjM2ZSwgMHgzZmE5OTdmNCksIFRP
Qk4oMHhkODMxYjZjOSwgMHhhNTc0OWQ1Zil9LAorICAgICAgICAgIHtUT0JOKDB4N2M4NzJlMWQs
IDB4ZTM1MGUyYzIpLCBUT0JOKDB4YzU2MjQwZDksIDB4MWUwY2U0MDMpLAorICAgICAgICAgICBU
T0JOKDB4ZjlkZWIwNzcsIDB4Njk3NGY1Y2IpLCBUT0JOKDB4N2Q1MGJhODcsIDB4OTYxYzM3Mjgp
fX0sCisgICAgICAgICB7e1RPQk4oMHhkNmY4OTQyNiwgMHg1YTNhMjUxOCksIFRPQk4oMHhjZjgx
Nzc5OSwgMHhjNjMwM2Q0MyksCisgICAgICAgICAgIFRPQk4oMHg1MTBhMDQ3MSwgMHg2MTllNTY5
NiksIFRPQk4oMHhhYjA0OWZmNiwgMHgzYTVlMzA3Yil9LAorICAgICAgICAgIHtUT0JOKDB4ZTRj
ZGY5YjAsIDB4ZmViMTNlYzcpLCBUT0JOKDB4ZDVlOTcxMTcsIDB4OWQ4ZmY5MGMpLAorICAgICAg
ICAgICBUT0JOKDB4ZjZmNjRkMDYsIDB4OWFmYTk2YWYpLCBUT0JOKDB4MDBkMGJmNWUsIDB4OWQy
MDEyYTIpfX0sCisgICAgICAgICB7e1RPQk4oMHhlNjNmMzAxZiwgMHgzNThiY2RjMCksIFRPQk4o
MHgwNzY4OWU5OSwgMHgwYTlkNDdmOCksCisgICAgICAgICAgIFRPQk4oMHgxZjY4OWUyZiwgMHg0
ZjQzZDQzYSksIFRPQk4oMHg0ZDU0MmExNiwgMHg5MDkyMDkwNCl9LAorICAgICAgICAgIHtUT0JO
KDB4YWVhMjkzZDUsIDB4OWNhMGE3MDcpLCBUT0JOKDB4ZDA2MWZlNDUsIDB4OGFjNjgwNjUpLAor
ICAgICAgICAgICBUT0JOKDB4MTAzM2JmMWIsIDB4MDA5MDAwOGMpLCBUT0JOKDB4Mjk3NDk1NTgs
IDB4YzA4YTZkYjYpfX0sCisgICAgICAgICB7e1RPQk4oMHg3NGI1ZmM1OSwgMHhjMWQ1ZDAzNCks
IFRPQk4oMHhmNzEyZTlmNiwgMHg2N2UyMTVlMCksCisgICAgICAgICAgIFRPQk4oMHhmZDUyMGNi
ZCwgMHg4NjAyMDBlNiksIFRPQk4oMHgwMjI5YWNiNCwgMHgzZWEyMjU4OCl9LAorICAgICAgICAg
IHtUT0JOKDB4OWNkMWUxNGMsIDB4ZmZmMGM4MmUpLCBUT0JOKDB4ODc2ODRiNjIsIDB4NTljNjll
NzMpLAorICAgICAgICAgICBUT0JOKDB4ZGE4NWU2MWMsIDB4OTZjY2I5ODkpLCBUT0JOKDB4MmQ1
ZGJiMDIsIDB4YTNkMDY0OTMpfX0sCisgICAgICAgICB7e1RPQk4oMHhmMjJhZDMzYSwgMHhlODZi
MTczYyksIFRPQk4oMHhlOGU0MWVhNSwgMHhhNzlmZjBlMyksCisgICAgICAgICAgIFRPQk4oMHgw
MWQyZDcyNSwgMHhkZDBkMGMxMCksIFRPQk4oMHgzMWYzOTA4OCwgMHgwMzJkMjhmOSl9LAorICAg
ICAgICAgIHtUT0JOKDB4N2IzZjcxZTEsIDB4NzgyOTgzOWUpLCBUT0JOKDB4MGNmNjkxYjQsIDB4
NDUwMmFlNTgpLAorICAgICAgICAgICBUT0JOKDB4ZWY2NThkYmQsIDB4YmVmYzYxMTUpLCBUT0JO
KDB4YTVjZDZlZTUsIDB4YjNhYjUzMTQpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMDZjOGQ3Yiwg
MHg1ZjFkMjM0NyksIFRPQk4oMHg3OTQ2NDViYSwgMHg0Y2MyMjUzYSksCisgICAgICAgICAgIFRP
Qk4oMHhkNTE3ZDhmZiwgMHg1ODM4OWUwOCksIFRPQk4oMHg0ZmEyMGRlZSwgMHg5Zjg0NzI4OCl9
LAorICAgICAgICAgIHtUT0JOKDB4ZWJhMDcyZDgsIDB4ZDc5Nzc3MGEpLCBUT0JOKDB4NzM2MGM5
MWQsIDB4YmY0MjllMjYpLAorICAgICAgICAgICBUT0JOKDB4NzIwMGEzYjMsIDB4ODBhZjgyNzkp
LCBUT0JOKDB4NmExYzkxNTAsIDB4ODJkYWRjZTMpfX0sCisgICAgICAgICB7e1RPQk4oMHgwZWU2
ZDNhNywgMHhjMzVkODc5NCksIFRPQk4oMHgwNDJlNjU1OCwgMHgwMzU2YmFlNSksCisgICAgICAg
ICAgIFRPQk4oMHg5ZjU5Njk4ZCwgMHg2NDMzMjJmZCksIFRPQk4oMHg5Mzc5YWUxNSwgMHg1MGE2
MTk2Nyl9LAorICAgICAgICAgIHtUT0JOKDB4NjRiOWFlNjIsIDB4ZmNjOTk4MWUpLCBUT0JOKDB4
YWVkM2Q2MzEsIDB4NmQyOTM0YzYpLAorICAgICAgICAgICBUT0JOKDB4MjQ1NGIzMDIsIDB4NWU0
ZTY1ZWIpLCBUT0JOKDB4YWIwOWY2NDcsIDB4Zjk5NTA0MjgpfX19LAorICAgICAgICB7e3tUT0JO
KDB4YjIwODNhMTIsIDB4MjIyNDhhY2MpLCBUT0JOKDB4MWY2ZWMwZWYsIDB4MzI2NGUzNjYpLAor
ICAgICAgICAgICBUT0JOKDB4NTY1OWI3MDQsIDB4NWFmZGVlMjgpLCBUT0JOKDB4N2E4MjNhNDAs
IDB4ZTY0MzBiYjUpfSwKKyAgICAgICAgICB7VE9CTigweDI0NTkyYTA0LCAweGUxOTAwYTc5KSwg
VE9CTigweGNkZTA5ZDRhLCAweGM5ZWU2NTc2KSwKKyAgICAgICAgICAgVE9CTigweDUyYjY0NjNm
LCAweDRiNWVhNTRhKSwgVE9CTigweDFlZmU5ZWQzLCAweGQzY2E2NWE3KX19LAorICAgICAgICAg
e3tUT0JOKDB4ZTI3YTZkYmUsIDB4MzA1NDA2ZGQpLCBUT0JOKDB4OGViN2RjN2YsIDB4ZGQ1ZDE5
NTcpLAorICAgICAgICAgICBUT0JOKDB4ZjU0YTY4NzYsIDB4Mzg3ZDRkOGYpLCBUT0JOKDB4OWM0
Nzk0MDksIDB4Yzc3NjJkZTQpfSwKKyAgICAgICAgICB7VE9CTigweGJlNGQ1YjVkLCAweDk5YjMw
Nzc4KSwgVE9CTigweDI1MzgwYzU2LCAweDZlNzkzNjgyKSwKKyAgICAgICAgICAgVE9CTigweDYw
MmQzN2YzLCAweGRhYzc0MGUzKSwgVE9CTigweDE0MGRlYWJlLCAweDE1NjZlNGFlKX19LAorICAg
ICAgICAge3tUT0JOKDB4NDQ4MWQwNjcsIDB4YWZkMzJhY2YpLCBUT0JOKDB4ZDhmMGZjY2EsIDB4
ZTFmNzFjY2YpLAorICAgICAgICAgICBUT0JOKDB4ZDIwOGRkMGMsIDB4YjU5NmYyZGEpLCBUT0JO
KDB4ZDA0OWQ3MzAsIDB4OWFhZDkzZjkpfSwKKyAgICAgICAgICB7VE9CTigweGM3OWYyNjNkLCAw
eDQyYWI1ODBlKSwgVE9CTigweDA5NDExYmIxLCAweDIzZjcwN2I0KSwKKyAgICAgICAgICAgVE9C
TigweDhjZmRlMWZmLCAweDgzNWUwZWRhKSwgVE9CTigweDcyNzA3NDkwLCAweDkwZjAzNDAyKX19
LAorICAgICAgICAge3tUT0JOKDB4ZWFlZTYxMjYsIDB4YzQ5YTg2MWUpLCBUT0JOKDB4MDI0ZjNi
NjUsIDB4ZTE0ZjBkMDYpLAorICAgICAgICAgICBUT0JOKDB4NTFhM2YxZTgsIDB4YzY5YmZjMTcp
LCBUT0JOKDB4YzNjM2E4ZTksIDB4YTc2ODYzODEpfSwKKyAgICAgICAgICB7VE9CTigweDM0MDA3
NTJjLCAweGIxMDNkNGM4KSwgVE9CTigweDAyYmM0NjEzLCAweDkyMThiMzZiKSwKKyAgICAgICAg
ICAgVE9CTigweGM2N2Y3NWViLCAweDc2NTE1MDRhKSwgVE9CTigweGQ2ODQ4YjU2LCAweGQwMmFl
YmZhKX19LAorICAgICAgICAge3tUT0JOKDB4YmQ5ODAyZTYsIDB4YzMwZmE5MmIpLCBUT0JOKDB4
NWE3MGQ5NmQsIDB4OWE1NTI3ODQpLAorICAgICAgICAgICBUT0JOKDB4OTA4NWM0ZWEsIDB4M2Y4
MzE2OWIpLCBUT0JOKDB4ZmE5NDIzYmIsIDB4MDY5MDgyMjgpfSwKKyAgICAgICAgICB7VE9CTigw
eDJmZmViZTEyLCAweGZlOTdhNWI5KSwgVE9CTigweDg1ZGE2MDQ5LCAweDcxYjk5MTE4KSwKKyAg
ICAgICAgICAgVE9CTigweDljYmMyZjdmLCAweDYzMTc4ODQ2KSwgVE9CTigweGZkOTZiYzcwLCAw
eDkxNTMyMThlKX19LAorICAgICAgICAge3tUT0JOKDB4OTU4MzgxZGIsIDB4MTc4MjI2OWIpLCBU
T0JOKDB4YWUzNGJmNzksIDB4MjU5N2U1NTApLAorICAgICAgICAgICBUT0JOKDB4YmI1YzYwNjQs
IDB4NWYzODUxNTMpLCBUT0JOKDB4NmYwZTk2YWYsIDB4ZTMwODgwNDgpfSwKKyAgICAgICAgICB7
VE9CTigweGJmNmEwMjE1LCAweDc3ODg0NDU2KSwgVE9CTigweGIzYjU2ODhjLCAweDY5MzEwZWE3
KSwKKyAgICAgICAgICAgVE9CTigweDE3Yzk0Mjk1LCAweDA0ZmFkMmRlKSwgVE9CTigweGUwMjBm
MGU1LCAweDE3ODk2ZDRkKX19LAorICAgICAgICAge3tUT0JOKDB4NzMwYmEwYWIsIDB4MDk3NjUw
NWYpLCBUT0JOKDB4NTY3ZjY4MTMsIDB4MDk1ZTJlYzUpLAorICAgICAgICAgICBUT0JOKDB4NDcw
NjIwMTAsIDB4NjMzMWFiNzEpLCBUT0JOKDB4NzJjZmE5NzcsIDB4NDFkMjJiOWYpfSwKKyAgICAg
ICAgICB7VE9CTigweDMzZTU1ZWFkLCAweDhhMjM3M2RhKSwgVE9CTigweGE4ZDBkNWY0LCAweDdi
YTQ1YTY4KSwKKyAgICAgICAgICAgVE9CTigweGJhMWQ4ZjljLCAweDAzMDI5ZDE1KSwgVE9CTigw
eDhmMzRmMWNjLCAweGZjNTViOWYzKX19LAorICAgICAgICAge3tUT0JOKDB4Y2NhNDQyOGQsIDB4
YmJlNWExYTkpLCBUT0JOKDB4ODE4N2ZkNWYsIDB4MzEyNmJkNjcpLAorICAgICAgICAgICBUT0JO
KDB4MDAzNjk3M2EsIDB4NDgxMDU4MjYpLCBUT0JOKDB4YTM5YjY2NjMsIDB4YjhiZDYxYTApfSwK
KyAgICAgICAgICB7VE9CTigweDZkNDJkZWVmLCAweDJkNjVhODA4KSwgVE9CTigweDQ5NjkwNDRm
LCAweDk0NjM2YjE5KSwKKyAgICAgICAgICAgVE9CTigweGY2MTFlZTQ3LCAweGRkNWQ1NjRjKSwg
VE9CTigweDdiMmYzYTQ5LCAweGQyODczMDc3KX19LAorICAgICAgICAge3tUT0JOKDB4OTQxNTdk
NDUsIDB4MzAwZWIyOTQpLCBUT0JOKDB4MmIyYTY1NmUsIDB4MTY5YzE0OTQpLAorICAgICAgICAg
ICBUT0JOKDB4YzAwMGRkNzYsIDB4ZDNhNDdhYTkpLCBUT0JOKDB4YTI4NjRlNGYsIDB4YTYyNDNl
YTQpfSwKKyAgICAgICAgICB7VE9CTigweDgyNzE2YzQ3LCAweGRiODk4NDJlKSwgVE9CTigweDEy
ZGZkN2Q3LCAweDYxNDc5ZmI3KSwKKyAgICAgICAgICAgVE9CTigweDNiOWEyYzU2LCAweGUwYjJm
NmRjKSwgVE9CTigweDQ2YmU4NjJhLCAweGQ3Zjg1ZDY3KX19LAorICAgICAgICAge3tUT0JOKDB4
MDNiMGQ4ZGQsIDB4MGY4MmIyMTQpLCBUT0JOKDB4NDYwYzM0ZjksIDB4ZjEwM2NiYzYpLAorICAg
ICAgICAgICBUT0JOKDB4ZjMyZTVjMDMsIDB4MThkNzllMTkpLCBUT0JOKDB4OGI4ODg4YmEsIDB4
YTg0MTE3ZjgpfSwKKyAgICAgICAgICB7VE9CTigweDhmM2MzN2RjLCAweGMwNzIyNjc3KSwgVE9C
TigweDEwZDIxYmU5LCAweDFjMWMwZjI3KSwKKyAgICAgICAgICAgVE9CTigweGQ0N2M4NDY4LCAw
eGUwZjdhMGM2KSwgVE9CTigweDliZjAyMjEzLCAweGFkZWNjMGUwKX19LAorICAgICAgICAge3tU
T0JOKDB4MGJhYTdkMTIsIDB4NDJiNDhiOTkpLCBUT0JOKDB4MWJjYjY2NWQsIDB4NDg0MjQwOTYp
LAorICAgICAgICAgICBUT0JOKDB4OGI4NDdjZDYsIDB4ZWJmYjVjZmIpLCBUT0JOKDB4ODdjMmFl
NTYsIDB4OWFkNGQxMGQpfSwKKyAgICAgICAgICB7VE9CTigweGYxY2JiMTIyLCAweDBkZTM2NzI2
KSwgVE9CTigweGU3MDQzYzY4LCAweDNmZGZiZDIxKSwKKyAgICAgICAgICAgVE9CTigweDRiZDA4
MjZhLCAweDRlNzlkNDYwKSwgVE9CTigweDExZjVlNTk4LCAweDRiZDFhMmNiKX19LAorICAgICAg
ICAge3tUT0JOKDB4OTc1NTQxNjAsIDB4YjdmZTdiNmUpLCBUT0JOKDB4N2QxNjE4OWEsIDB4NDAw
YTNmYjIpLAorICAgICAgICAgICBUT0JOKDB4ZDczZTliZWEsIDB4ZTMyOGNhMWUpLCBUT0JOKDB4
MGRkMDRiOTcsIDB4ZTc5M2Q4Y2MpfSwKKyAgICAgICAgICB7VE9CTigweGE5YzgzYzliLCAweDUw
NmRiOGNjKSwgVE9CTigweDVjZDQ3YWFlLCAweGNmMzg4MTRjKSwKKyAgICAgICAgICAgVE9CTigw
eDI2ZmM0MzBkLCAweGI2NGI0NWU2KSwgVE9CTigweDA3OWI1NDk5LCAweGQ4MThlYTg0KX19LAor
ICAgICAgICAge3tUT0JOKDB4ZWJiMDExMDIsIDB4YzFjMjRhM2IpLCBUT0JOKDB4Y2EyNGU1Njgs
IDB4MWMxNjFjMWEpLAorICAgICAgICAgICBUT0JOKDB4MTAzZWVhNjksIDB4MzZmMDBhNGEpLCBU
T0JOKDB4OWFkNzZlZTgsIDB4NzYxNzZjN2IpfSwKKyAgICAgICAgICB7VE9CTigweDk3NDUxZmMy
LCAweDUzOGUwZmY3KSwgVE9CTigweDk0Zjg5ODA5LCAweDY2MDRiM2IwKSwKKyAgICAgICAgICAg
VE9CTigweDYzMTE0MzZlLCAweDMyNDljZmQ3KSwgVE9CTigweDI3YjRhN2JkLCAweDQxMjI0ZjY5
KX19LAorICAgICAgICAge3tUT0JOKDB4MDNiNWQyMWEsIDB4ZTBhYzI5NDEpLCBUT0JOKDB4Mjc5
YjAyNTQsIDB4YzJkMzE5MzcpLAorICAgICAgICAgICBUT0JOKDB4MzMwN2MwNTIsIDB4Y2FjOTky
ZDApLCBUT0JOKDB4NmFhN2NiOTIsIDB4ZWZhOGIxZjMpfSwKKyAgICAgICAgICB7VE9CTigweDVh
MTgyNTgwLCAweDBkMzdjN2E1KSwgVE9CTigweDEzMzgwYzM3LCAweDM0MmQ1NDIyKSwKKyAgICAg
ICAgICAgVE9CTigweDkyYWMyZDY2LCAweGQ1ZDJlZjkyKSwgVE9CTigweDAzNWE3MGM5LCAweDAz
MGM2M2M2KX19LAorICAgICAgICAge3tUT0JOKDB4YzE2MDI1ZGQsIDB4NGNlNGYxNTIpLCBUT0JO
KDB4MWY0MTlhNzEsIDB4ZjlkZjdjMDYpLAorICAgICAgICAgICBUT0JOKDB4NmQ1YjIyMTQsIDB4
OTFlNGJiMTQpLCBUT0JOKDB4ZmM0M2M2Y2MsIDB4ODM5ZmI0Y2UpfSwKKyAgICAgICAgICB7VE9C
TigweDQ5ZjA2NTkxLCAweDkyNWQ2YjJkKSwgVE9CTigweDRiMzdkOWQzLCAweDYyMTg2NTk4KSwK
KyAgICAgICAgICAgVE9CTigweDhjNTRhOTcxLCAweGQwMWIxNjI5KSwgVE9CTigweGUxYTljMjlm
LCAweDUxZDUwZTA1KX19LAorICAgICAgICAge3tUT0JOKDB4NTEwOWI3ODUsIDB4NzFiYTE4NjEp
LCBUT0JOKDB4NDhiMjJkNWMsIDB4ZDBjOGY5M2QpLAorICAgICAgICAgICBUT0JOKDB4ZThmYTg0
YTcsIDB4ODYzM2JiOTMpLCBUT0JOKDB4NTNmYmE2YmEsIDB4NWFlYmJkMDgpfSwKKyAgICAgICAg
ICB7VE9CTigweDdmZjI3ZGYzLCAweGU1ZWVhN2Q4KSwgVE9CTigweDUyMWM4Nzk2LCAweDY4Y2E3
MTU4KSwKKyAgICAgICAgICAgVE9CTigweGI5ZDUxMzNiLCAweGNlNmYxYTA1KSwgVE9CTigweDJk
NTBjZDUzLCAweGZkMGViZWU0KX19LAorICAgICAgICAge3tUT0JOKDB4YzgyMTE1ZDYsIDB4YzVh
M2VmMTYpLCBUT0JOKDB4OTkzZWZmOWQsIDB4YmEwNzkyMjEpLAorICAgICAgICAgICBUT0JOKDB4
ZTRkYTJjNWUsIDB4NGI1ZGE4MWMpLCBUT0JOKDB4OWE4OWRiZGIsIDB4ODAzM2ZkODUpfSwKKyAg
ICAgICAgICB7VE9CTigweDYwODE5ZWJmLCAweDJiODkyODkxKSwgVE9CTigweDUzOTAyYjIxLCAw
eDVkMTRhNGQ1KSwKKyAgICAgICAgICAgVE9CTigweDZhYzM1MDUxLCAweGQ3ZmRhNDIxKSwgVE9C
TigweGNjNmFiODg1LCAweDYxYzgzMjg0KX19LAorICAgICAgICAge3tUT0JOKDB4MTRlYmExMzMs
IDB4Zjc0Y2ZmMTcpLCBUT0JOKDB4MjQwYWFhMDMsIDB4ZWNiODEzZjIpLAorICAgICAgICAgICBU
T0JOKDB4Y2ZiYjY1NDAsIDB4NmY2NjViZWUpLCBUT0JOKDB4MDg0YjFmZTQsIDB4YTQyNWFkNzMp
fSwKKyAgICAgICAgICB7VE9CTigweDAwOWQ1ZDE2LCAweGQwODFmNmE2KSwgVE9CTigweDM1MzA0
ZmU4LCAweGVlZjgyYzkwKSwKKyAgICAgICAgICAgVE9CTigweGYyMDM0NmQ1LCAweGFhOWVhYTIy
KSwgVE9CTigweDBhZGE5ZjA3LCAweGFjMWM5MWUzKX19LAorICAgICAgICAge3tUT0JOKDB4YTZl
MjE2NzgsIDB4OTY4YTYxNDQpLCBUT0JOKDB4NTRjMWY3N2MsIDB4MDdiMzFhMWUpLAorICAgICAg
ICAgICBUT0JOKDB4ZDZiYjc4N2UsIDB4NTc4MWZiZTEpLCBUT0JOKDB4NjFiZDJlZTAsIDB4ZTMx
ZjFjNGEpfSwKKyAgICAgICAgICB7VE9CTigweGYyNWFhMWU5LCAweDc4MTEwNWZjKSwgVE9CTigw
eDljZjI5NzFmLCAweDdiMmY4ZTgwKSwKKyAgICAgICAgICAgVE9CTigweDI2ZDE1NDEyLCAweGNk
ZmY5MTliKSwgVE9CTigweDAxZGI0ZWJlLCAweDM0YmM4OTZlKX19LAorICAgICAgICAge3tUT0JO
KDB4N2Q5YjNlMjMsIDB4YjQwZGYxY2YpLCBUT0JOKDB4NTkzMzczNzMsIDB4OTRlOTcxYjQpLAor
ICAgICAgICAgICBUT0JOKDB4YmY1N2JkMTQsIDB4NjY5Y2Y5MjEpLCBUT0JOKDB4ODY1ZGFlZGYs
IDB4MGMxYTEwNjQpfSwKKyAgICAgICAgICB7VE9CTigweDNlYjcwYmQzLCAweDgzMjc5MTI1KSwg
VE9CTigweGJjM2Q1YjlmLCAweDM0ZWNkYWFiKSwKKyAgICAgICAgICAgVE9CTigweDkxZTNlZDdl
LCAweDVmNzU1Y2FmKSwgVE9CTigweDQ5Njk5ZjU0LCAweGQ0MWU2ZjAyKX19LAorICAgICAgICAg
e3tUT0JOKDB4MTg1NzcwZTEsIDB4ZDRhN2ExNWIpLCBUT0JOKDB4MDhmMzU4N2EsIDB4ZWFhYzg3
ZTcpLAorICAgICAgICAgICBUT0JOKDB4MzUyMDE4ZGIsIDB4NDczMTMzZWEpLCBUT0JOKDB4Njc0
Y2U3MTksIDB4MDRmZDMwZmMpfSwKKyAgICAgICAgICB7VE9CTigweDdiOGQ5ODM1LCAweDA4OGIz
ZTBlKSwgVE9CTigweDdhMDM1NmE5LCAweDVkMGQ0N2ExKSwKKyAgICAgICAgICAgVE9CTigweDlk
OWU3NjU5LCAweDY0NzRhM2M0KSwgVE9CTigweDYxZWE0OGE3LCAweGZmNjY5NjZjKX19LAorICAg
ICAgICAge3tUT0JOKDB4MzA0MTc3NTgsIDB4MGYzZTQ4MzQpLCBUT0JOKDB4ZmRiYjIxYzIsIDB4
MTdhOWFmY2IpLAorICAgICAgICAgICBUT0JOKDB4NzU2ZmExN2YsIDB4MmY5YTY3YjMpLCBUT0JO
KDB4MmE2YjI0MjEsIDB4YTI0NWMxYTgpfSwKKyAgICAgICAgICB7VE9CTigweDY0YmUyNzk0LCAw
eDRhZjAyMjkxKSwgVE9CTigweGFkZTQ2NWM2LCAweDJhNTgwNGZlKSwKKyAgICAgICAgICAgVE9C
TigweDhkZmZiZDM5LCAweGE2ZjA4ZmQ3KSwgVE9CTigweGM0ZWZhODRjLCAweGFhMTQ0MDNiKX19
LAorICAgICAgICAge3tUT0JOKDB4YTFiOTFiMmEsIDB4NDQyYjBmNWMpLCBUT0JOKDB4Yjc0OGUz
MTcsIDB4Y2Y5OTc3MzYpLAorICAgICAgICAgICBUT0JOKDB4OGQxYjYyYmYsIDB4Y2VlOTBlMTYp
LCBUT0JOKDB4OTA3YWUyNzEsIDB4MGIyMDc4YzApfSwKKyAgICAgICAgICB7VE9CTigweGRmMzE1
MzRiLCAweDBjOWJjZGRkKSwgVE9CTigweDA0M2ZiMDU0LCAweDM5YWRjZTgzKSwKKyAgICAgICAg
ICAgVE9CTigweDk5MDMxMDQzLCAweGQ4MjY4NDZhKSwgVE9CTigweDYxYTljMGQ2LCAweGIxNDRm
MzkzKX19LAorICAgICAgICAge3tUT0JOKDB4ZGFiNDgwNDYsIDB4NDc3MTg0MjcpLCBUT0JOKDB4
ZGYxN2ZmOWIsIDB4NmU4MzBmOGIpLAorICAgICAgICAgICBUT0JOKDB4NDA4ZDdlZTgsIDB4ZTQ5
YTEzNDcpLCBUT0JOKDB4NmFjNzFlMjMsIDB4OTFjMWQ0YWUpfSwKKyAgICAgICAgICB7VE9CTigw
eGM4Y2JiOWZkLCAweDFkZWZkNzNjKSwgVE9CTigweDE5ODQwNjU3LCAweGJiYmJmZWM1KSwKKyAg
ICAgICAgICAgVE9CTigweDM5ZGIxY2I1LCAweDllN2VmOGVhKSwgVE9CTigweDc4YWE4Mjk2LCAw
eDY0MTA1ZjMwKX19LAorICAgICAgICAge3tUT0JOKDB4YTNkOWI3ZjAsIDB4YTM3MzhjMjkpLCBU
T0JOKDB4MGEyZjIzNWEsIDB4YmMzMjUwYTMpLAorICAgICAgICAgICBUT0JOKDB4NTVlNTA2ZjYs
IDB4NDQ1ZTRjYWYpLCBUT0JOKDB4MDk3NGY3M2QsIDB4MzM0NzVmN2EpfSwKKyAgICAgICAgICB7
VE9CTigweGQzN2RiYmEzLCAweDViYTJmNWE4KSwgVE9CTigweDU0MmM2ZTYzLCAweDZhZjQwMDY2
KSwKKyAgICAgICAgICAgVE9CTigweDI2ZDk5YjUzLCAweGM1ZDczZTJjKSwgVE9CTigweDA2MDYw
ZDdkLCAweDZjM2NhMzNlKX19LAorICAgICAgICAge3tUT0JOKDB4Y2RiZWYxYzIsIDB4MDY1ZmVm
NGEpLCBUT0JOKDB4NzdlNjBmN2QsIDB4ZmQ1YjkyZTMpLAorICAgICAgICAgICBUT0JOKDB4ZDdj
NTQ5ZjAsIDB4MjY3MDgzNTApLCBUT0JOKDB4MjAxYjNhZDAsIDB4MzRmMTIxYmYpfSwKKyAgICAg
ICAgICB7VE9CTigweDVmY2FjMmExLCAweDAzMzRmYzE0KSwgVE9CTigweDhhOWE5ZTA5LCAweDM0
NDU1MmY2KSwKKyAgICAgICAgICAgVE9CTigweDdkZDhhMWQzLCAweDk3NjUzMDgyKSwgVE9CTigw
eDVmYzA3MzhmLCAweDc5ZDRmMjg5KX19LAorICAgICAgICAge3tUT0JOKDB4Nzg3ZDI0NGQsIDB4
MTdkMmQ4YzMpLCBUT0JOKDB4ZWZmYzYzNDUsIDB4NzA4MzA2ODQpLAorICAgICAgICAgICBUT0JO
KDB4NWRkYjk2ZGQsIDB4ZTRmNzNhZTUpLCBUT0JOKDB4OGVmYjE0YjEsIDB4MTcyNTQ5YTUpfSwK
KyAgICAgICAgICB7VE9CTigweDZlYjczZWVlLCAweDIyNDVhZTdhKSwgVE9CTigweGJjYTQwNjFl
LCAweGVhMTFmMTNlKSwKKyAgICAgICAgICAgVE9CTigweGI1Nzc0MjFkLCAweDMwYjAxZjVkKSwg
VE9CTigweGFhNjg4YjI0LCAweDc4MmUxNTJjKX19LAorICAgICAgICAge3tUT0JOKDB4Njc2MDhl
NzEsIDB4YmQzNTAyYmEpLCBUT0JOKDB4NGVmNDFmMjQsIDB4YjRkZTc1YTApLAorICAgICAgICAg
ICBUT0JOKDB4YjA4ZGRlNWUsIDB4ZmQ2MTI1ZTUpLCBUT0JOKDB4ZGU0ODQ4MjUsIDB4YTQwOTU0
M2YpfSwKKyAgICAgICAgICB7VE9CTigweDFmMTk4ZDk4LCAweDY1Y2MyMjk1KSwgVE9CTigweDQy
OGEzNzcxLCAweDZlMGVkZmEyKSwKKyAgICAgICAgICAgVE9CTigweDRmOTY5N2EyLCAweGFkZjM1
ZmM3KSwgVE9CTigweDAxYTQzYzc5LCAweGY3Y2FjM2M3KX19LAorICAgICAgICAge3tUT0JOKDB4
YjA1ZDcwNTksIDB4MGZkMzY1OWEpLCBUT0JOKDB4ODkyN2YzMGMsIDB4YmI3ZjJkOWEpLAorICAg
ICAgICAgICBUT0JOKDB4NDAyM2QxYWMsIDB4OGNmOTg0ZDMpLCBUT0JOKDB4MzIxMjVlZDMsIDB4
MDI4OTdhNDUpfSwKKyAgICAgICAgICB7VE9CTigweGZiNTcyZGFkLCAweDNkNDE0MjA1KSwgVE9C
TigweDczMDAwZWYyLCAweGUzZmE4MmE5KSwKKyAgICAgICAgICAgVE9CTigweDRjMDg2OGU5LCAw
eGYxMGE1NTgxKSwgVE9CTigweDViNjFmYzY3LCAweDZiMGIzY2E1KX19LAorICAgICAgICAge3tU
T0JOKDB4YzEyNThkNWIsIDB4N2NhZTQ0MGMpLCBUT0JOKDB4MjFjMDhiNDEsIDB4NDAyYjc1MzEp
LAorICAgICAgICAgICBUT0JOKDB4ZjYxYTg5NTUsIDB4ZGU5MzIzMjEpLCBUT0JOKDB4MzU2OGZh
ZjgsIDB4MmQxNDA4YWYpfSwKKyAgICAgICAgICB7VE9CTigweDcxYjE1ZTk5LCAweDllY2Y5NjVi
KSwgVE9CTigweGYxNGVkMjQ4LCAweGU5MTcyNzZmKSwKKyAgICAgICAgICAgVE9CTigweGM2ZjRj
YWExLCAweDgyMGNmOWUyKSwgVE9CTigweDY4MWIyMGIyLCAweDE4ZDgzYzdlKX19LAorICAgICAg
ICAge3tUT0JOKDB4NmNkZTczOGQsIDB4YzZjMDExMjApLCBUT0JOKDB4NzFkYjA4MTMsIDB4YWU3
MGUwZGIpLAorICAgICAgICAgICBUT0JOKDB4OTVmYzA2NDQsIDB4NzRhZmUxOGMpLCBUT0JOKDB4
MzQ2MTkwNTMsIDB4MTI5ZTJiZTcpfSwKKyAgICAgICAgICB7VE9CTigweDgwNjE1Y2VhLCAweGRi
MmEzYjE1KSwgVE9CTigweDBhNDlhMTllLCAweGRiNGM3MDczKSwKKyAgICAgICAgICAgVE9CTigw
eDBlMWI4NGM4LCAweDhmZDJkMzY3KSwgVE9CTigweGQ3NGJmNDYyLCAweDAzM2ZiOGFhKX19LAor
ICAgICAgICAge3tUT0JOKDB4ODg5ZjZkNjUsIDB4NTMzZWYyMTcpLCBUT0JOKDB4NzE1OGM3ZTQs
IDB4YzNjYTJlODcpLAorICAgICAgICAgICBUT0JOKDB4ZmI2NzBkZmIsIDB4ZGMyYjQxNjcpLCBU
T0JOKDB4NzU5MTBhMDEsIDB4ODQ0YzI1N2YpfSwKKyAgICAgICAgICB7VE9CTigweGYzMzZiZjA3
LCAweGNmODg1NzdkKSwgVE9CTigweDIyMjQ1MjUwLCAweGU0NWUyYWNlKSwKKyAgICAgICAgICAg
VE9CTigweDJlZDkyZThkLCAweDdjYTIzZDg1KSwgVE9CTigweDI5ZjhiZTRjLCAweDJiODEyZjU4
KX19LAorICAgICAgICAge3tUT0JOKDB4ZGQ5ZWJhYTcsIDB4MDc2ZmUxMmIpLCBUT0JOKDB4M2Yy
NDAwY2IsIDB4YWUxNTM3ZjkpLAorICAgICAgICAgICBUT0JOKDB4MWFhOTM1MjgsIDB4MTdiZGZi
NDYpLCBUT0JOKDB4YzBmOTg0MzAsIDB4Njc4ODNiNDEpfSwKKyAgICAgICAgICB7VE9CTigweDU1
OTBlZGUxLCAweDAxNzA5MTFkKSwgVE9CTigweDc1NjJmNWJiLCAweDM0ZDRiMTdmKSwKKyAgICAg
ICAgICAgVE9CTigweGUxZmExZGYyLCAweDE4MjZiOGQyKSwgVE9CTigweGI0MGI3OTZhLCAweDZi
ZDgwZDU5KX19LAorICAgICAgICAge3tUT0JOKDB4ZDY1YmYxOTcsIDB4MzQ2N2JhOTIpLCBUT0JO
KDB4OGM5YjQ2ZGIsIDB4ZjcwOTU0YjApLAorICAgICAgICAgICBUT0JOKDB4OTdjOGEwZjMsIDB4
MGU3OGYxNWQpLCBUT0JOKDB4YThmM2E2OWEsIDB4ODVhNGM5NjEpfSwKKyAgICAgICAgICB7VE9C
TigweDQyNDI2NjBmLCAweDYxZTRjZTliKSwgVE9CTigweGJmMDZhYWIzLCAweDZlYTY3OTBjKSwK
KyAgICAgICAgICAgVE9CTigweGM2NzA2ZjhlLCAweGVjOTg2NDE2KSwgVE9CTigweDllNTZkZWMx
LCAweDlhOWZjMjI1KX19LAorICAgICAgICAge3tUT0JOKDB4NTI3YzQ2ZjQsIDB4OWE5ODk4ZDkp
LCBUT0JOKDB4ZDc5OWU3N2IsIDB4NTYzM2NkZWYpLAorICAgICAgICAgICBUT0JOKDB4MjRlYWNj
MTYsIDB4N2Q5ZTQyOTcpLCBUT0JOKDB4YWJiNjFjZWEsIDB4NmIxY2I3MzQpfSwKKyAgICAgICAg
ICB7VE9CTigweGJlZTJlOGE3LCAweGY3Nzg0NDNjKSwgVE9CTigweDNiYjQyYmYxLCAweDI5ZGUy
ZmU2KSwKKyAgICAgICAgICAgVE9CTigweGNiZWQ4NmExLCAweDMwMDNiYjZmKSwgVE9CTigweGQz
OTE4ZTZjLCAweGQ3ODFjZGY2KX19LAorICAgICAgICAge3tUT0JOKDB4NGJlZTMyNzEsIDB4OWE1
MTAzZjEpLCBUT0JOKDB4NTI0M2VmYzYsIDB4ZjUwZWFjMDYpLAorICAgICAgICAgICBUT0JOKDB4
YjhlMTIyY2IsIDB4NmFkY2MxMTkpLCBUT0JOKDB4MWI3ZmFhODQsIDB4YzBiODBhMDgpfSwKKyAg
ICAgICAgICB7VE9CTigweDMyYzNkMWJkLCAweDZkZmNkMDhjKSwgVE9CTigweDEyOWRlYzRlLCAw
eDBiZTQyN2RlKSwKKyAgICAgICAgICAgVE9CTigweDk4YWI2NzljLCAweDFkMjYzYzgzKSwgVE9C
TigweGFmYzgzY2I3LCAweGNlZjY0ZWZmKX19LAorICAgICAgICAge3tUT0JOKDB4ODVlYjYwODgs
IDB4MmZhNmJlNzYpLCBUT0JOKDB4ODkyNTg1ZmIsIDB4MTMyOGNiZmUpLAorICAgICAgICAgICBU
T0JOKDB4YzE1NGQzZWQsIDB4Y2Y2MThkZGEpLCBUT0JOKDB4YzQ0ZjYwMWIsIDB4M2FiYWYyNmUp
fSwKKyAgICAgICAgICB7VE9CTigweDdiZjU3ZDBiLCAweDJiZTFmZGZkKSwgVE9CTigweGE4MzNi
ZDJkLCAweDIxMTM3ZmVlKSwKKyAgICAgICAgICAgVE9CTigweDkzNTNhZjM2LCAweDJkYjU5MWE4
KSwgVE9CTigweGM3NmYyNmRjLCAweDU1NjJhMDU2KX19LAorICAgICAgICAge3tUT0JOKDB4MWQ4
N2U0N2QsIDB4M2ZkZjVhNTEpLCBUT0JOKDB4N2FmYjVmOTMsIDB4NTVjOWNhYjApLAorICAgICAg
ICAgICBUT0JOKDB4OTFiYmY1OGYsIDB4ODllMDU4NmUpLCBUT0JOKDB4N2M3MmMwMTgsIDB4MGQ4
NDM3MDkpfSwKKyAgICAgICAgICB7VE9CTigweGE5YTVhYWZiLCAweDk5YjVjM2RjKSwgVE9CTigw
eGE0OGEwZjFkLCAweDM4NDRhZWIwKSwKKyAgICAgICAgICAgVE9CTigweDcxNzhiN2RkLCAweGI2
NjdlNDgyKSwgVE9CTigweDQ1Mzk4NWU5LCAweDZlMjNhNTlhKX19LAorICAgICAgICAge3tUT0JO
KDB4NGE1NGM4NjAsIDB4MDFiMjVkZDgpLCBUT0JOKDB4MGRkMzdmNDgsIDB4ZmI4OTdjOGEpLAor
ICAgICAgICAgICBUT0JOKDB4NWY4YWE2MTAsIDB4MGVhOTBjZDkpLCBUT0JOKDB4Yzg4OTJjNjgs
IDB4MTZkNTgzMGQpfSwKKyAgICAgICAgICB7VE9CTigweGViNGJlZmMwLCAweGVmNTE0Y2E1KSwg
VE9CTigweDQ3OGViNjc5LCAweGU3MmM5ZWU2KSwKKyAgICAgICAgICAgVE9CTigweDliY2EyMGRh
LCAweGRiYzQwZDVmKSwgVE9CTigweGYwMTVkZTIxLCAweGRkZTRmNjRhKX19LAorICAgICAgICAg
e3tUT0JOKDB4YWE2YTRkZTAsIDB4ZWFmNGI4YTUpLCBUT0JOKDB4NjhjZmQ5Y2EsIDB4NGJjNjBl
MzIpLAorICAgICAgICAgICBUT0JOKDB4NjY4YTRiMDEsIDB4N2ZkMTVlNzApLCBUT0JOKDB4ZDlm
MDY5NGEsIDB4ZjI3ZGMwOWQpfSwKKyAgICAgICAgICB7VE9CTigweGY2YzNjYWQ1LCAweGJhNzA4
YmNkKSwgVE9CTigweDVjZDJiYTY5LCAweDViYjk1YzJhKSwKKyAgICAgICAgICAgVE9CTigweGFh
MjhjMWQzLCAweDMzYzBhNThmKSwgVE9CTigweDIzZTI3NGUzLCAweGFiYzc3ODcwKX19LAorICAg
ICAgICAge3tUT0JOKDB4NDRjMzY5MmQsIDB4ZGZkMjBhNGEpLCBUT0JOKDB4MDkxYzVmZDMsIDB4
ODFhNjY2NTMpLAorICAgICAgICAgICBUT0JOKDB4NmMwYmI2OTEsIDB4MDlhMDc1N2QpLCBUT0JO
KDB4OTA3MmU4YjksIDB4NjY3MzQzZWEpfSwKKyAgICAgICAgICB7VE9CTigweDMxZDQwZWIwLCAw
eDgwODQ4YmVjKSwgVE9CTigweDk1YmQ0ODBhLCAweDc5ZmQzNmNjKSwKKyAgICAgICAgICAgVE9C
TigweDAxYTc3YzYxLCAweDY1ZWQ0M2Y1KSwgVE9CTigweGFmY2NkMTI3LCAweDJlMGQ0MGJmKX19
LAorICAgICAgICAge3tUT0JOKDB4ZWNjZmM4MmQsIDB4MWNjMTg4NGIpLCBUT0JOKDB4Yzg1YWMy
MDEsIDB4NWQ0NzUzYjQpLAorICAgICAgICAgICBUT0JOKDB4YzdhNmNhYWMsIDB4NjU4ZTA5OWYp
LCBUT0JOKDB4Y2Y0NjM2OWUsIDB4MDRiMjczOTApfSwKKyAgICAgICAgICB7VE9CTigweGUyZTdk
MDQ5LCAweDUwNjQ2N2VhKSwgVE9CTigweDQ4MWI2M2EyLCAweDM3Y2RlY2NjKSwKKyAgICAgICAg
ICAgVE9CTigweDQwMjlhYmQ4LCAweGVkODAxNDNhKSwgVE9CTigweDI4YmZlM2M3LCAweGJjYjAw
Yjg4KX19LAorICAgICAgICAge3tUT0JOKDB4M2JlYzEwMDksIDB4MDY0M2Q4NGEpLCBUT0JOKDB4
ODg1ZjM2NjgsIDB4YWJkMTEwNDEpLAorICAgICAgICAgICBUT0JOKDB4ZGIwMjQzMmMsIDB4Zjgz
YTM0ZDYpLCBUT0JOKDB4MzJmN2IzNjAsIDB4NzE5Y2VlYmUpfSwKKyAgICAgICAgICB7VE9CTigw
eGYwNmM3ODM3LCAweGRhZDFmZTdhKSwgVE9CTigweDYwYTE1N2E5LCAweDU0NDFhMGIwKSwKKyAg
ICAgICAgICAgVE9CTigweDcwNDk3MGU5LCAweGUyZDQ3NTUwKSwgVE9CTigweGNkMmJkNTUzLCAw
eDI3MWI5MDIwKX19LAorICAgICAgICAge3tUT0JOKDB4ZmY1N2Y4MmYsIDB4MzNlMjRhMGIpLCBU
T0JOKDB4OWNiZWUyM2YsIDB4ZjI1NjUwNzkpLAorICAgICAgICAgICBUT0JOKDB4MTYzNTM0Mjcs
IDB4ZWI1ZjU4MjUpLCBUT0JOKDB4Mjc2ZmVlYzQsIDB4ZTk0OGQ2NjIpfSwKKyAgICAgICAgICB7
VE9CTigweGQxYjYyYmM2LCAweGRhMTAwMzJiKSwgVE9CTigweDcxODM1MWRkLCAweGYwZTcyYTUz
KSwKKyAgICAgICAgICAgVE9CTigweDkzNDUyMDc2LCAweDI0MjBlN2JhKSwgVE9CTigweDk2MzY4
ZmZmLCAweDNhMDAxMThkKX19LAorICAgICAgICAge3tUT0JOKDB4MDBjZTJkMjYsIDB4MTUwYTQ5
ZTQpLCBUT0JOKDB4MGMyOGI2MzYsIDB4M2YwNDcwNmIpLAorICAgICAgICAgICBUT0JOKDB4YmFk
NjVhNDYsIDB4NThiMTk2ZDApLCBUT0JOKDB4NmM4NDU1ZmMsIDB4ZWM5ZjhiN2MpfSwKKyAgICAg
ICAgICB7VE9CTigweGU5MGM4OTVmLCAweDJkNzE4NjdlKSwgVE9CTigweDVjMGJlMzFiLCAweGVk
ZjlmMzhjKSwKKyAgICAgICAgICAgVE9CTigweDJhMzdhMTVlLCAweGQ4ZjZlYzA0KSwgVE9CTigw
eDIzOTYzOWU3LCAweDhjZDg1MjUxKX19LAorICAgICAgICAge3tUT0JOKDB4ZDg5NzUzMTUsIDB4
OWM3YzRjNmIpLCBUT0JOKDB4NjAzYWEzYzAsIDB4ZDc0MDlhZjcpLAorICAgICAgICAgICBUT0JO
KDB4YjhkNTNkMGMsIDB4MDA3MTMyZmIpLCBUT0JOKDB4NjhkMTJhZjcsIDB4YTY4NDkyMzgpfSwK
KyAgICAgICAgICB7VE9CTigweGJlMDYwN2U3LCAweGJmNWQ5Mjc5KSwgVE9CTigweDlhYTUwMDU1
LCAweGFhZGE3NGNlKSwKKyAgICAgICAgICAgVE9CTigweGU4MTA3OWNiLCAweGJhN2U4Y2NiKSwg
VE9CTigweDYxMGM3MWQxLCAweGE1ZjRmZjVlKX19LAorICAgICAgICAge3tUT0JOKDB4OWUyZWUx
YTcsIDB4NWFhMDcwOTMpLCBUT0JOKDB4Y2E4NDAwNGIsIDB4YTc1ZGE0N2MpLAorICAgICAgICAg
ICBUT0JOKDB4MDc0ZDM5NTEsIDB4M2RlNzU0MDEpLCBUT0JOKDB4ZjkzOGY3NTYsIDB4YmIzMTE1
OTIpfSwKKyAgICAgICAgICB7VE9CTigweDk2MTk3NjE4LCAweDAwYTQzNDIxKSwgVE9CTigweDM5
YTI1MzYyLCAweDA3YmM3OGM4KSwKKyAgICAgICAgICAgVE9CTigweDI3OGY3MTBhLCAweDBhMTcx
Mjc2KSwgVE9CTigweGIyODQ0NmVhLCAweDhkMWE4ZjA4KX19LAorICAgICAgICAge3tUT0JOKDB4
MTg0NzgxYmYsIDB4ZTNiNmE2NjEpLCBUT0JOKDB4Nzc1MWNiMWQsIDB4ZTZkMjc5ZjcpLAorICAg
ICAgICAgICBUT0JOKDB4ZjhmZjk1ZDYsIDB4YzU5ZWI2NjIpLCBUT0JOKDB4MTg2ZDkwYjcsIDB4
NThkM2RlYTcpfSwKKyAgICAgICAgICB7VE9CTigweDBlNGJiNmMxLCAweGRmYjRmNzU0KSwgVE9C
TigweDVjNWNmNTZiLCAweDJiMjgwMWRjKSwKKyAgICAgICAgICAgVE9CTigweGM1NjFlNDUyLCAw
eDFmNTQ1NjRkKSwgVE9CTigweGI0ZmI4YzYwLCAweGYwZGQ3ZjEzKX19LAorICAgICAgICAge3tU
T0JOKDB4Zjg4NDk2MzAsIDB4MzNmZjk4YzcpLCBUT0JOKDB4OTYxOWZmZmEsIDB4Y2YxNzc2OWMp
LAorICAgICAgICAgICBUT0JOKDB4ZjgwOTBiZjYsIDB4MWJmZGQ4MGEpLCBUT0JOKDB4MTRkOWEx
NDksIDB4NDIyY2ZlNjMpfSwKKyAgICAgICAgICB7VE9CTigweGIzNTRjMzYwLCAweDZmNmRmOWVh
KSwgVE9CTigweGRiY2Y3NzBkLCAweDIxOGYxN2VhKSwKKyAgICAgICAgICAgVE9CTigweDIwN2Ri
N2M4LCAweDc5ZWIzNDgwKSwgVE9CTigweDIxM2RiZGE4LCAweDU1OWI2YTI2KX19LAorICAgICAg
ICAge3tUT0JOKDB4YWM0YzIwMGIsIDB4MjlmYzgxYjMpLCBUT0JOKDB4ZWJjM2UwOWYsIDB4MTcx
ZDg3YzEpLAorICAgICAgICAgICBUT0JOKDB4OTE3OTk1MzAsIDB4MTQ4MWFhOWUpLCBUT0JOKDB4
MDUxYjkyZTEsIDB4OTJlMTE0ZmEpfSwKKyAgICAgICAgICB7VE9CTigweGRmOGY5MmU5LCAweGVj
YjU1MzdmKSwgVE9CTigweDQ0YjFiMmNjLCAweDI5MGM3NDgzKSwKKyAgICAgICAgICAgVE9CTigw
eGE3MTE0NTVhLCAweDJhZGViMDE2KSwgVE9CTigweDk2NGI2ODU2LCAweDgxYTEwYzJjKX19LAor
ICAgICAgICAge3tUT0JOKDB4NGYxNTlkOTksIDB4Y2VjMDM2MjMpLCBUT0JOKDB4MDU1MzIyMjUs
IDB4ZWYzMjcxZWEpLAorICAgICAgICAgICBUT0JOKDB4YjIzMWJlYTMsIDB4YzVlZTQ4NDkpLCBU
T0JOKDB4NTdhNTRmNTAsIDB4NzA5NGYxMDMpfSwKKyAgICAgICAgICB7VE9CTigweDNlMmQ0MjFk
LCAweDk1OThiMzUyKSwgVE9CTigweGU4NjVhNDljLCAweDY3NDEyYWI0KSwKKyAgICAgICAgICAg
VE9CTigweGQyOTk4YTI1LCAweDFjYzNhOTEyKSwgVE9CTigweDVkMDkyODA4LCAweDBjNzRkNjVk
KX19LAorICAgICAgICAge3tUT0JOKDB4NzNmNDU5MDgsIDB4NDA4ODU2N2EpLCBUT0JOKDB4ZWI2
YjI4MGUsIDB4MWYyMTRhNjEpLAorICAgICAgICAgICBUT0JOKDB4OGM5YWRjMzQsIDB4Y2FmMGMx
M2QpLCBUT0JOKDB4MzlkMTI5MzgsIDB4ZjU2MWZiODApfSwKKyAgICAgICAgICB7VE9CTigweGIy
ZGMzYTVlLCAweGJjNmVkZmI0KSwgVE9CTigweDc0ODViMWIxLCAweGZlNGQyMTBlKSwKKyAgICAg
ICAgICAgVE9CTigweDA2MmUwNDAwLCAweGUxODZhZTcyKSwgVE9CTigweDkxZTMyZDVjLCAweDZl
ZWIzYjg4KX19LAorICAgICAgICAge3tUT0JOKDB4NmRmNTc0ZDcsIDB4NGJlNTkyMjQpLCBUT0JO
KDB4ZWJjODhjY2MsIDB4NzE2ZDU1ZjMpLAorICAgICAgICAgICBUT0JOKDB4MjZjMmU2ZDAsIDB4
Y2FkNmVkMzMpLCBUT0JOKDB4YzZlMjFlN2QsIDB4MGQzZThiMTApfSwKKyAgICAgICAgICB7VE9C
TigweDJjYzU4NDBlLCAweDViY2MzNmJiKSwgVE9CTigweDkyOTI0NDVlLCAweDdkYTc0ZjY5KSwK
KyAgICAgICAgICAgVE9CTigweDhiZThkMzIxLCAweDRlNTE5M2E4KSwgVE9CTigweDNlYzIzNjI5
LCAweDhkZjA2NDEzKX19LAorICAgICAgICAge3tUT0JOKDB4YzdlOWFlODUsIDB4YjEzNGRlZmEp
LCBUT0JOKDB4NjA3M2IxZDAsIDB4MWJiMmQ0NzUpLAorICAgICAgICAgICBUT0JOKDB4YjlhZDYx
NWUsIDB4Mjg2M2MwMGQpLCBUT0JOKDB4OWUyOTQ5M2QsIDB4NTI1ZjRhYzQpfSwKKyAgICAgICAg
ICB7VE9CTigweGMzMmIxZGVhLCAweDRlOWFjZjRmKSwgVE9CTigweDNlMWYwMWM4LCAweGE1MGRi
ODhkKSwKKyAgICAgICAgICAgVE9CTigweGIwNWQ3MGVhLCAweDA0ZGE5MTZjKSwgVE9CTigweDcx
NGIwZDBhLCAweGQ4NjU4MDNlKX19LAorICAgICAgICAge3tUT0JOKDB4NGJkNDkzZmMsIDB4OTky
MGNiNWUpLCBUT0JOKDB4NWI0NGIxZjcsIDB4OTJjN2EzYWMpLAorICAgICAgICAgICBUT0JOKDB4
YTJhNzcyOTMsIDB4YmNlYzkyMzUpLCBUT0JOKDB4NWVlMDZlODcsIDB4Y2QzNzg1NTMpfSwKKyAg
ICAgICAgICB7VE9CTigweGNlZmY4MTczLCAweGRhNjIxNjA3KSwgVE9CTigweDJiYjAzZTRjLCAw
eDk5ZjVkMjkwKSwKKyAgICAgICAgICAgVE9CTigweDI5NDUxMDZhLCAweGE2ZjczNGFjKSwgVE9C
TigweGI1MDU2NjA0LCAweGQyNWM0NzMyKX19LAorICAgICAgICAge3tUT0JOKDB4NTk0NTkyMGMs
IDB4ZTA3OWFmZWUpLCBUT0JOKDB4Njg2ZTE3YTAsIDB4Njc4OTgzMWYpLAorICAgICAgICAgICBU
T0JOKDB4NTk2NmJlZTgsIDB4Yjc0YTVhZTUpLCBUT0JOKDB4MzhhNjczYTIsIDB4MWUyNThkNDYp
fSwKKyAgICAgICAgICB7VE9CTigweGJkMWNjMWYyLCAweDgzMTQxYzk1KSwgVE9CTigweDNiMmVj
ZjRmLCAweDBlOTZlNDg2KSwKKyAgICAgICAgICAgVE9CTigweGNkM2FhODk2LCAweDc0ZTVmYzc4
KSwgVE9CTigweDQxNWVjMTBjLCAweDI0ODJmYTdhKX19LAorICAgICAgICAge3tUT0JOKDB4MTUy
MzQ0MTksIDB4ODA1MDMzODApLCBUT0JOKDB4NTEzZDkxN2EsIDB4ZDMxNGIzOTIpLAorICAgICAg
ICAgICBUT0JOKDB4YjBiNTJmNGUsIDB4NjNjYWVjYWUpLCBUT0JOKDB4MDdiZjIyYWQsIDB4MmRj
Nzc4MGIpfSwKKyAgICAgICAgICB7VE9CTigweGU3NjFlOGExLCAweGU0MzA2ODM5KSwgVE9CTigw
eDFiM2JlOTYyLCAweDVkZDdmZWFhKSwKKyAgICAgICAgICAgVE9CTigweDRmZTcyOGRlLCAweDc0
Yzc3OGYxKSwgVE9CTigweGYxZmEwYmRhLCAweDVlMDA3MGY2KX19LAorICAgICAgICAge3tUT0JO
KDB4ODUyMDVhMzEsIDB4NmVjM2Y1MTApLCBUT0JOKDB4MmM3ZTRhMTQsIDB4ZDI5ODA0NzUpLAor
ICAgICAgICAgICBUT0JOKDB4ZGUzYzE5YzAsIDB4NmYzMGViZmQpLCBUT0JOKDB4ZGIxYzFmMzgs
IDB4ZDRiN2U2NDQpfSwKKyAgICAgICAgICB7VE9CTigweGZlMjkxYTc1LCAweDVkY2UzNjRhKSwg
VE9CTigweGI3YjIyYTNjLCAweDA1OGY1YmUzKSwKKyAgICAgICAgICAgVE9CTigweDJjZDJjMzAy
LCAweDM3ZmVhMzhjKSwgVE9CTigweDI5MzA5NjdhLCAweDJlMTdiZTE3KX19LAorICAgICAgICAg
e3tUT0JOKDB4ODdmMDA5ZGUsIDB4MGMwNjFjNjUpLCBUT0JOKDB4Y2IwMTRhYWMsIDB4ZWRjNmVk
NDQpLAorICAgICAgICAgICBUT0JOKDB4NDliZDFjYjQsIDB4M2JhZmIxZWIpLCBUT0JOKDB4ODFi
ZDhiNWMsIDB4MjgyZDM2ODgpfSwKKyAgICAgICAgICB7VE9CTigweDFjZGFiODdlLCAweGYwMWEx
N2FmKSwgVE9CTigweDIxZjM3YWM0LCAweGU3MTAwNjNiKSwKKyAgICAgICAgICAgVE9CTigweDVh
NmM1Njc2LCAweDQyZmM4MTkzKSwgVE9CTigweGY0NzUzZTcwLCAweDU2YTYwMTVjKX19LAorICAg
ICAgICAge3tUT0JOKDB4MDIwZjc5NWUsIDB4YTE1YjBhNDQpLCBUT0JOKDB4OGYzN2M4ZDcsIDB4
ODk1OGE5NTgpLAorICAgICAgICAgICBUT0JOKDB4NjNiN2U4OWIsIDB4YTRiNjc1YjUpLCBUT0JO
KDB4YjRmYjBjMGMsIDB4MGZjMzFhZWEpfSwKKyAgICAgICAgICB7VE9CTigweGVkOTVlNjM5LCAw
eGE3ZmYxZjJlKSwgVE9CTigweDk4ODBmNWEzLCAweDYxOTYxNGZiKSwKKyAgICAgICAgICAgVE9C
TigweGRlYjZmZjAyLCAweDk0NzE1MWFiKSwgVE9CTigweDViYzUxMThjLCAweGE4NjhkY2RiKX19
LAorICAgICAgICAge3tUT0JOKDB4ZDhkYTIwNTUsIDB4NGMyMGNlYTUpLCBUT0JOKDB4Y2FjMjc3
NmUsIDB4MTRjNGQ2OWEpLAorICAgICAgICAgICBUT0JOKDB4Y2NjYjIyYzEsIDB4NjIyZDU5OWIp
LCBUT0JOKDB4YTRkZGI2NTMsIDB4NjhhOWJiNTApfSwKKyAgICAgICAgICB7VE9CTigweDJjNGZm
MTUxLCAweDFiNDk0MWI0KSwgVE9CTigweGUxZmYxOWI0LCAweDZlZmJhNTg4KSwKKyAgICAgICAg
ICAgVE9CTigweDM1MDM0MzYzLCAweGM0ODM0NWUwKSwgVE9CTigweDQ1NTQyZTNkLCAweDFlMjlk
ZmM0KX19LAorICAgICAgICAge3tUT0JOKDB4ZjE5N2NiOTEsIDB4MzQ5ZjdhZWQpLCBUT0JOKDB4
M2IyYjVhMDAsIDB4OGZjYTg0MjApLAorICAgICAgICAgICBUT0JOKDB4N2MxNzVlZTgsIDB4MjNh
YWY2ZDgpLCBUT0JOKDB4NTRkY2Y0MjEsIDB4MzVhZjMyYjYpfSwKKyAgICAgICAgICB7VE9CTigw
eDBiYTE0MzA3LCAweDI3ZDY1NjFlKSwgVE9CTigweDg3OWQ1ZWU0LCAweGQxNzViMWUyKSwKKyAg
ICAgICAgICAgVE9CTigweGM3YzQzNjczLCAweDk5ODA3ZGI1KSwgVE9CTigweDc3YTU0NDU1LCAw
eDljZDU1YmNkKX19LAorICAgICAgICAge3tUT0JOKDB4ZTZjMmZmMTMsIDB4MDEwNWMwNzIpLCBU
T0JOKDB4MThmN2E5OWYsIDB4OGRkYTdkYTQpLAorICAgICAgICAgICBUT0JOKDB4NGMzMDE4MjAs
IDB4MGUyZDM1YzEpLCBUT0JOKDB4MDZhNTNjYTAsIDB4ZDljYzZjODIpfSwKKyAgICAgICAgICB7
VE9CTigweGFhMjFjYzFlLCAweGYxYWExZDllKSwgVE9CTigweDMyNDE0MzM0LCAweDRhNzViMWU4
KSwKKyAgICAgICAgICAgVE9CTigweDJhNmQxMzI4LCAweDBlYmU5ZmRjKSwgVE9CTigweDE2YmQx
NzNmLCAweDk4YTQ3NTVhKX19LAorICAgICAgICAge3tUT0JOKDB4ZmJiOWIyNDUsIDB4MjEzM2Zm
ZDkpLCBUT0JOKDB4MzlhOGIyZjEsIDB4ODMwZjFhMjApLAorICAgICAgICAgICBUT0JOKDB4NDg0
YmM5N2QsIDB4ZDVhMWY1MmEpLCBUT0JOKDB4ZDZhZWJmNTYsIDB4YTQwZWRkZjgpfSwKKyAgICAg
ICAgICB7VE9CTigweDMyMjU3YWNiLCAweDc2Y2NkYWM2KSwgVE9CTigweGFmNGQzNmVjLCAweDE1
ODZmZjI3KSwKKyAgICAgICAgICAgVE9CTigweDhlYWE4ODYzLCAweGY4ZGU3ZGQxKSwgVE9CTigw
eDAwNDVkNWNmLCAweDg4NjQ3YzE2KX19fSwKKyAgICAgICAge3t7VE9CTigweGE2ZjNkNTc0LCAw
eGMwMDU5NzlkKSwgVE9CTigweGMyMDcyYjQyLCAweDZhNDBlMzUwKSwKKyAgICAgICAgICAgVE9C
TigweGZjYTVjMTU2LCAweDhkZTJlY2Y5KSwgVE9CTigweGE4YzhiZjViLCAweGE1MTUzNDRlKX0s
CisgICAgICAgICAge1RPQk4oMHg5N2FlZTU1NSwgMHgxMTRkZjE0YSksIFRPQk4oMHhkNDM3NGE0
ZCwgMHhmZGM1ZWM2YiksCisgICAgICAgICAgIFRPQk4oMHg3NTRjYzI4ZiwgMHgyY2E4NTQxOCks
IFRPQk4oMHg3MWNiOWUyNywgMHhkM2M0MWY3OCl9fSwKKyAgICAgICAgIHt7VE9CTigweDg5MTA1
MDc5LCAweDAzNjA1YzM5KSwgVE9CTigweGYwODQzZDllLCAweGExNDJjOTZjKSwKKyAgICAgICAg
ICAgVE9CTigweGYzNzQ0OTM0LCAweDE2OTIzNjg0KSwgVE9CTigweDczMmNhYTJmLCAweGZhMGEy
ODkzKX0sCisgICAgICAgICAge1RPQk4oMHhiMmU4YzI3MCwgMHg2MTE2MDE3MCksIFRPQk4oMHhj
MzI3ODhjYywgMHg0MzdmYmFhMyksCisgICAgICAgICAgIFRPQk4oMHgzOWNkODE4ZSwgMHhhNmVk
YTNhYyksIFRPQk4oMHhlMmU5NDIzOSwgMHg5ZTJiMmUwNyl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDY5NjdkMzliLCAweDAyNjBlNTJhKSwgVE9CTigweGQ0MjU4NWNjLCAweDkwNjUzMzI1KSwKKyAg
ICAgICAgICAgVE9CTigweDBkOWJkNjA1LCAweDIxY2E3OTU0KSwgVE9CTigweDRmYTIwODc3LCAw
eDgxZWQ1N2IzKX0sCisgICAgICAgICAge1RPQk4oMHg2MGMxZWZmOCwgMHhlMzRhMGJiZSksIFRP
Qk4oMHg1NmIwMDQwYywgMHg4NGY2ZWY2NCksCisgICAgICAgICAgIFRPQk4oMHgyOGJlMmIyNCwg
MHhiMWFmODQ4MyksIFRPQk4oMHhiMjI3ODE2MywgMHhmNTUzMTYxNCl9fSwKKyAgICAgICAgIHt7
VE9CTigweDhkZjI3NTQ1LCAweDU5MjJhYzFjKSwgVE9CTigweGE3YjNlZjVjLCAweGE1MmIzZjYz
KSwKKyAgICAgICAgICAgVE9CTigweDhlNzdiMjE0LCAweDcxZGU1N2M0KSwgVE9CTigweDMxNjgy
YzEwLCAweDgzNGMwMDhiKX0sCisgICAgICAgICAge1RPQk4oMHhjNzY4MjRmMCwgMHg0YmQ1NWQz
MSksIFRPQk4oMHhiNmQxYzA4NiwgMHgxN2I2MWM3MSksCisgICAgICAgICAgIFRPQk4oMHgzMWRi
MDkwMywgMHhjMmE1MDg5ZCksIFRPQk4oMHg5YzA5MjE3MiwgMHgxODRlNWQzZil9fSwKKyAgICAg
ICAgIHt7VE9CTigweGRkN2NlZDViLCAweGMwMGNjNjM4KSwgVE9CTigweDFhMjAxNWViLCAweDYx
Mjc4ZmMyKSwKKyAgICAgICAgICAgVE9CTigweDJlOGU1Mjg4LCAweDZhMzdmOGQ2KSwgVE9CTigw
eGM0NTc3ODZmLCAweGU3OTkzM2FkKX0sCisgICAgICAgICAge1RPQk4oMHhiM2ZlNGNjZSwgMHgy
YzUxMjExYSksIFRPQk4oMHhhZDliMTBiMiwgMHgyNGMyMDQ5OCksCisgICAgICAgICAgIFRPQk4o
MHg5MGQ4N2E0ZiwgMHhkMjhkYjVlNSksIFRPQk4oMHg2OThjZDEwNSwgMHgzYWNhMmZjMyl9fSwK
KyAgICAgICAgIHt7VE9CTigweDRmMTEyZDA3LCAweGU5MWI1MzZkKSwgVE9CTigweGNlYjk4MmYy
LCAweDllYmEwOWQ2KSwKKyAgICAgICAgICAgVE9CTigweDNjMTU3YjJjLCAweDE5N2MzOTZmKSwg
VE9CTigweGUyM2MyZDQxLCAweDdiNjZlYjI0KX0sCisgICAgICAgICAge1RPQk4oMHg0ODBjNTdk
OSwgMHgzZjMzMGQzNyksIFRPQk4oMHhiM2E0YzhhMSwgMHg3OTEwOGRlYiksCisgICAgICAgICAg
IFRPQk4oMHg3MDIzODhkZSwgMHhjYjE5OWNlNSksIFRPQk4oMHgwYjAxOTIxMSwgMHhiOTQ0YThk
NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDI0ZjJhNjkyLCAweDg0MGJiMzM2KSwgVE9CTigweDdj
MzUzYmRjLCAweGE2NjlmYTdiKSwKKyAgICAgICAgICAgVE9CTigweGRhMjBkNmZjLCAweGRlYzlj
MzAwKSwgVE9CTigweDYyNWZiZTJmLCAweGExM2E0ZjE3KX0sCisgICAgICAgICAge1RPQk4oMHhh
MmIxYjYxYSwgMHhkYmMxNzMyOCksIFRPQk4oMHgwMDg5NjViZiwgMHhhOTUxNTYyMSksCisgICAg
ICAgICAgIFRPQk4oMHg0OTY5MDkzOSwgMHhjNjIwZmY0NiksIFRPQk4oMHgxODJkZDI3ZCwgMHg4
NzE3ZTkxYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDVhY2U1MDM1LCAweGVhNmMzOTk3KSwgVE9C
TigweDU0MjU5YWFhLCAweGMyNjEwYmVmKSwKKyAgICAgICAgICAgVE9CTigweGVmMThiYjNmLCAw
eDNjODBkZDM5KSwgVE9CTigweDY5MTBiOTViLCAweDVmYzNmYTM5KX0sCisgICAgICAgICAge1RP
Qk4oMHhmY2UyZjUxMCwgMHg0M2UwOWFlZSksIFRPQk4oMHhjZWQ1NmM5ZiwgMHhhNzY3NTY2NSks
CisgICAgICAgICAgIFRPQk4oMHgxMGUyNjVhYywgMHhkODcyZGI2MSksIFRPQk4oMHg2OTgyODEy
ZSwgMHhhZTlmY2U2OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDI5YmUxMWM2LCAweGNlODAwOTk4
KSwgVE9CTigweDcyYmIxNzUyLCAweGI5MDM2MGQ5KSwKKyAgICAgICAgICAgVE9CTigweDJjMTkz
MTk3LCAweDVhNGFkNTkwKSwgVE9CTigweDJiYTJmNTQ4LCAweDlmYzFkYmMwKX0sCisgICAgICAg
ICAge1RPQk4oMHg3ZmU0ZWViYiwgMHhlNDkwZWJlMCksIFRPQk4oMHgxMmEwYTRjZCwgMHg3ZmFl
MTFjMCksCisgICAgICAgICAgIFRPQk4oMHg3MTk3Y2Y4MSwgMHhlOTAzYmEzNyksIFRPQk4oMHhj
ZjdkNGFhOCwgMHhkZTFjNmRkOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDkyYWY2YmY0LCAweDNm
ZDU2ODRjKSwgVE9CTigweDJiMjZlZWNmLCAweDgwMzYwYWExKSwKKyAgICAgICAgICAgVE9CTigw
eGJkOTYwZjMwLCAweDAwNTQ2YTgyKSwgVE9CTigweDQwN2IzYzQzLCAweGY1OWFkOGZlKX0sCisg
ICAgICAgICAge1RPQk4oMHg4NmNhZTVmZSwgMHgyNDljODJiYSksIFRPQk4oMHg5ZTBmYWVjNywg
MHgyNDYzNzQ0YyksCisgICAgICAgICAgIFRPQk4oMHg4N2Y1NTFlOCwgMHg5NDkxNjI3MiksIFRP
Qk4oMHgwMzNmOTM0NCwgMHg2Y2ViMDYxNSl9fSwKKyAgICAgICAgIHt7VE9CTigweDFlNWViMGQx
LCAweDhiZTgyZTg0KSwgVE9CTigweDg5OTY3ZjBlLCAweDdhNTgyZmVmKSwKKyAgICAgICAgICAg
VE9CTigweGJjZjY4N2Q1LCAweGE2ZTkyMWZhKSwgVE9CTigweGRmZWU0Y2YzLCAweGQzN2EwOWJh
KX0sCisgICAgICAgICAge1RPQk4oMHg5NGYwNjk2NSwgMHhiNDkzYzQ2NSksIFRPQk4oMHg2Mzhi
OWExYywgMHg3NjM1YzAzMCksCisgICAgICAgICAgIFRPQk4oMHg3NjY2Nzg2NCwgMHg2NmYwNWU5
ZiksIFRPQk4oMHhjY2FmNjgwOCwgMHhjMDRkYTcyNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGNh
MmViNjkwLCAweDc2OGZjY2ZjKSwgVE9CTigweGY0MDJkMzdkLCAweGI4MzViMzYyKSwKKyAgICAg
ICAgICAgVE9CTigweDBlZmFjMGQwLCAweGUyZmRmY2NlKSwgVE9CTigweGVmYzljZGVmLCAweGI2
MzhkOTkwKX0sCisgICAgICAgICAge1RPQk4oMHgyYWYxMmI3MiwgMHhkMTY2OWE4YiksIFRPQk4o
MHgzM2M1MzZiYywgMHg1Nzc0Y2NiZCksCisgICAgICAgICAgIFRPQk4oMHgzMGIyMTkwOSwgMHhm
YjM0ODcwZSksIFRPQk4oMHhjMzhmYTJmNywgMHg3ZGYyNWFjYSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDc0YzVmMDJiLCAweGJmODFmM2Y1KSwgVE9CTigweDA1MjVhNWFlLCAweGFmN2U0NTgxKSwK
KyAgICAgICAgICAgVE9CTigweDg4ZDJhYWJhLCAweDQzM2M1NGFlKSwgVE9CTigweGVkOTc3NWRi
LCAweDgwNmE1NmM1KX0sCisgICAgICAgICAge1RPQk4oMHhkMzIwNzM4YSwgMHhjMGVkYjM3ZCks
IFRPQk4oMHgyNWZkYjZlZSwgMHg2NmNjMWY1MSksCisgICAgICAgICAgIFRPQk4oMHhhYzY2MWQx
NywgMHgxMDYwMGQ3NiksIFRPQk4oMHg5MzFlYzFmMywgMHhiZGQxZWQ3Nil9fSwKKyAgICAgICAg
IHt7VE9CTigweDY1YzExZDYyLCAweDE5ZWU0M2YxKSwgVE9CTigweDVjZDU3YzNlLCAweDYwODI5
ZDk3KSwKKyAgICAgICAgICAgVE9CTigweGQyNmM5MWEzLCAweDk4NGJlNmU4KSwgVE9CTigweGYw
OGQ5MzA5LCAweDhiMGM1M2JkKX0sCisgICAgICAgICAge1RPQk4oMHg5NGJjOWU1YiwgMHhjMDE2
ZTRlYSksIFRPQk4oMHhkMzkxNjgzOSwgMHgxMWQ0M2QyYiksCisgICAgICAgICAgIFRPQk4oMHg4
ODZjNWFkNywgMHg3MzcwMTE1NSksIFRPQk4oMHhlMDM3NzYyNiwgMHgyMGIwMDcxNSl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDdmMDFjOWVjLCAweGFhODBiYTU5KSwgVE9CTigweDMwODM0MTFhLCAw
eDY4NTM4ZTUxKSwKKyAgICAgICAgICAgVE9CTigweDk3MDM3MGYxLCAweGU4ODEyOGFmKSwgVE9C
TigweDYyNWNjM2RiLCAweDkxZGVjMTRiKX0sCisgICAgICAgICAge1RPQk4oMHhmZWY5NjY2Yywg
MHgwMWFjMzEwNyksIFRPQk4oMHhiMmE4ZDU3NywgMHhkNTA1N2FjMyksCisgICAgICAgICAgIFRP
Qk4oMHhiMGYyNjI5OSwgMHg5MmJlNWRmNyksIFRPQk4oMHhmNTc5YzhlNSwgMHgwMDM1MzkyNCl9
fSwKKyAgICAgICAgIHt7VE9CTigweGI4ZmEzZDkzLCAweDEzNDFlZDdhKSwgVE9CTigweDQyMjMy
NzJjLCAweGE3YjU5ZDQ5KSwKKyAgICAgICAgICAgVE9CTigweDNkY2IxOTQ3LCAweDgzYjhjNGE0
KSwgVE9CTigweDRlNDEzYzAxLCAweGVkMTMwMmU0KX0sCisgICAgICAgICAge1RPQk4oMHg2ZDk5
OTEyNywgMHhlMTdlNDRjZSksIFRPQk4oMHhlZTg2YmY3NSwgMHgzM2IzYWRmYiksCisgICAgICAg
ICAgIFRPQk4oMHhmNjkwMmZlNiwgMHgyNWFhOTZjYSksIFRPQk4oMHhiNzM1NDBlNCwgMHhlNWFh
ZTQ3ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDMyODAxZDdiLCAweDFiNGExNThjKSwgVE9CTigw
eGU1NzFjOTllLCAweDI3ZTJhMzY5KSwKKyAgICAgICAgICAgVE9CTigweDQwY2I3NmMwLCAweDEw
ZDlmMTk3KSwgVE9CTigweGMzMDhjMjg5LCAweDMxNjdjMGFlKX0sCisgICAgICAgICAge1RPQk4o
MHhhNmVmOWRkMywgMHhlYjc5NThmMiksIFRPQk4oMHhhNzIyNmRmYywgMHgzMDA4NzliMSksCisg
ICAgICAgICAgIFRPQk4oMHg2Y2QwYjM2MiwgMHg3ZWRmMDYzNiksIFRPQk4oMHg0ZWZiY2U2Yywg
MHg3YmMzN2VlZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDc1ZjkyYTA1LCAweDhkNjk5MDIxKSwg
VE9CTigweDU4NmQ0Yzc5LCAweDc3MjU2NmUzKSwKKyAgICAgICAgICAgVE9CTigweDM3OGNhNWYx
LCAweDc2MWFkMjNhKSwgVE9CTigweDY1MGQ4NmZjLCAweDE0NjVhOGFjKX0sCisgICAgICAgICAg
e1RPQk4oMHg3YTRlZDQ1NywgMHg4NDJiYTI1MSksIFRPQk4oMHg2YjY1ZTNlNiwgMHg0MjIzNDkz
MyksCisgICAgICAgICAgIFRPQk4oMHhhZjE1NDNiNywgMHgzMWFhZDY1NyksIFRPQk4oMHhhNGNl
ZmU5OCwgMHhjYmZlYzM2OSl9fSwKKyAgICAgICAgIHt7VE9CTigweGI1ODdkYTkwLCAweDlmNDdi
ZWZiKSwgVE9CTigweDY1NjJlOWZiLCAweDQxMzEyZDEzKSwKKyAgICAgICAgICAgVE9CTigweGE2
OTFlYTU5LCAweGVmZjFjZWZlKSwgVE9CTigweGNjMzA0NzdhLCAweDA1ZmM0Y2Y2KX0sCisgICAg
ICAgICAge1RPQk4oMHhhMTYzMjQ2MSwgMHgwYjBmZmQzZCksIFRPQk4oMHhhMWYxNmYzYiwgMHg1
YjM1NTk1NiksCisgICAgICAgICAgIFRPQk4oMHg1YjE0OGQ1MywgMHg0MjI0ZWMyNCksIFRPQk4o
MHhkYzgzNGU3YiwgMHhmOTc3MDEyYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDdiZmM1ZTc1LCAw
eGIyYzY5ZGJjKSwgVE9CTigweDNhYTc3YTI5LCAweDAzYzNkYTZjKSwKKyAgICAgICAgICAgVE9C
TigweGRlMGRmMDNjLCAweGNhOTEwMjcxKSwgVE9CTigweGNiZDVjYTRhLCAweDc4MDZkYzU1KX0s
CisgICAgICAgICAge1RPQk4oMHhlMWNhNTgwNywgMHg2ZGI0NzZjYiksIFRPQk4oMHhmZGUxNWQ2
MiwgMHg1ZjM3YTMxZSksCisgICAgICAgICAgIFRPQk4oMHhmNDlhZjUyMCwgMHhmNDFhZjQxNiks
IFRPQk4oMHg5NmM1YzViMSwgMHg3ZDM0MmRiNSl9fSwKKyAgICAgICAgIHt7VE9CTigweDE1NWM0
M2I3LCAweGViNGNlYjliKSwgVE9CTigweDJlOTkzMDEwLCAweDRlNzczNzFhKSwKKyAgICAgICAg
ICAgVE9CTigweDFkMjk4N2RhLCAweDY3NWQ0M2FmKSwgVE9CTigweGVmMmJjMWMwLCAweDg1OTlm
ZDcyKX0sCisgICAgICAgICAge1RPQk4oMHg5Njg5NGI3YiwgMHg5MzQyZjZiMiksIFRPQk4oMHgy
MDFlYWRmMiwgMHg3YzhlNzFmMCksCisgICAgICAgICAgIFRPQk4oMHhmMzQ3OWQ5ZiwgMHg0YTFm
M2VmYyksIFRPQk4oMHhlMGY4YTc0MiwgMHg3MDJhOTcwNCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGVhZmQ0NGI2LCAweGIzZWJhNDBjKSwgVE9CTigweGY5NzM5ZjI5LCAweGMxYzFlMGQwKSwKKyAg
ICAgICAgICAgVE9CTigweDAwOTE0NzFhLCAweDYxOWQ1MDVlKSwgVE9CTigweGMxNWY5Yzk2LCAw
eDlkN2MyNjNlKX0sCisgICAgICAgICAge1RPQk4oMHg1YmU0NzI4NSwgMHg4M2FmYmUzMyksIFRP
Qk4oMHhhM2I2ZDZhZiwgMHgwNGYxZTA5MiksCisgICAgICAgICAgIFRPQk4oMHhlNzY1MjZiOSwg
MHg3NTFhOWQxMSksIFRPQk4oMHgyZWM1YjI2ZCwgMHg5YTRhZTRkMil9fSwKKyAgICAgICAgIHt7
VE9CTigweGViNjZmNGQ5LCAweDAyZjZmYjhkKSwgVE9CTigweDQwNjNjNTYxLCAweDk2OTEyMTY0
KSwKKyAgICAgICAgICAgVE9CTigweGViNzA1MGMxLCAweDgwZWYzMDAwKSwgVE9CTigweDI4OGQx
YzMzLCAweGVhYTViM2YwKX0sCisgICAgICAgICAge1RPQk4oMHhlODdjNjhkNiwgMHgwNzgwNmZk
OCksIFRPQk4oMHhiMmY3ZjlkNSwgMHg0YmJiZjUwZiksCisgICAgICAgICAgIFRPQk4oMHgyNTk3
MmYzYSwgMHhhYzhkNjYyNyksIFRPQk4oMHhmODU0Nzc3NCwgMHgxMGU4YzEzYil9fSwKKyAgICAg
ICAgIHt7VE9CTigweGNjNTBlZjZjLCAweDg3MmI0YTYwKSwgVE9CTigweGFiMmEzNGE0LCAweDQ2
MTM1MjFiKSwKKyAgICAgICAgICAgVE9CTigweDM5YzVjMTkwLCAweDk4M2UxNWQxKSwgVE9CTigw
eDYxZGRlNWRmLCAweDU5OTA1NTEyKX0sCisgICAgICAgICAge1RPQk4oMHhlNDE3ZjYyMSwgMHg5
ZjIyNzVmMyksIFRPQk4oMHgwNzUwYzhiNiwgMHg0NTFkODk0YiksCisgICAgICAgICAgIFRPQk4o
MHg3NWIwNGFiOSwgMHg3OGIwYmRhYSksIFRPQk4oMHgzYmZkOWZkNCwgMHg0NTg1ODliZCl9fSwK
KyAgICAgICAgIHt7VE9CTigweGYxMDEzZTMwLCAweGVlOTEyMGI2KSwgVE9CTigweDJiNTFhZjkz
LCAweDIzYTQ3NDNlKSwKKyAgICAgICAgICAgVE9CTigweGVhOTZmZmFlLCAweDQ4ZDE0ZDllKSwg
VE9CTigweDcxZGMwZGJlLCAweDY5OGExZDMyKX0sCisgICAgICAgICAge1RPQk4oMHg5MTQ5NjJk
MiwgMHgwMTgwY2NhNCksIFRPQk4oMHgxYWU2MDY3NywgMHhjMzU2ODk2MyksCisgICAgICAgICAg
IFRPQk4oMHg4Y2YyMjdiMSwgMHg0MzdiYzQ0NCksIFRPQk4oMHhjNjUwYzgzYiwgMHhjOTk2MmM3
YSl9fSwKKyAgICAgICAgIHt7VE9CTigweDIzYzJjN2RkLCAweGZlN2NjZmM0KSwgVE9CTigweGY5
MjVjODlkLCAweDFiOTI5ZDQ4KSwKKyAgICAgICAgICAgVE9CTigweDQ0NjBmNzRiLCAweDA2Nzgz
YzMzKSwgVE9CTigweGFjMmM4ZDQ5LCAweGE1OTA0NzVhKX0sCisgICAgICAgICAge1RPQk4oMHhm
YjQwYjQwNywgMHhiODA3YmJhMCksIFRPQk4oMHg5ZDFlMzYyZCwgMHg2OWZmOGYzYSksCisgICAg
ICAgICAgIFRPQk4oMHhhMzNlOTY4MSwgMHhjYmVmNjRhNCksIFRPQk4oMHg2N2VjZTVmYSwgMHgz
MzJmYjRiMil9fSwKKyAgICAgICAgIHt7VE9CTigweDY5MDBhOTliLCAweDczOWYxMGUzKSwgVE9C
TigweGMzMzQxY2E5LCAweGZmNTI1OTI1KSwKKyAgICAgICAgICAgVE9CTigweGVlMThhNjI2LCAw
eGE5ZTJkMDQxKSwgVE9CTigweGE1YTgzNjg1LCAweDI5NTgwZGRkKX0sCisgICAgICAgICAge1RP
Qk4oMHhmMzQ3MGM4MSwgMHg5ZDdkZTNjZCksIFRPQk4oMHhlZGYwMjU4NiwgMHgyMDYyY2Y5Yyks
CisgICAgICAgICAgIFRPQk4oMHhmNDM1MjJmYSwgMHhjMDEwZWRiMCksIFRPQk4oMHgzMDMxNDEz
NSwgMHgxM2E0YjFhZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGM3OTJlMDJhLCAweGRiMjJiOTRi
KSwgVE9CTigweDk5M2Q4YWU5LCAweGExZWFhNDViKSwKKyAgICAgICAgICAgVE9CTigweDhhYWQ2
Y2QzLCAweGNkMWUxYzYzKSwgVE9CTigweDg5NTI5Y2E3LCAweGM1Y2U2ODhhKX0sCisgICAgICAg
ICAge1RPQk4oMHgyY2NlZTNhYSwgMHhlNTcyYTI1MyksIFRPQk4oMHhlMDJiNjQzOCwgMHgwMmEy
MWVmYiksCisgICAgICAgICAgIFRPQk4oMHhhNzA5MWI2ZSwgMHhjOTQzMDM1OCksIFRPQk4oMHgw
NmQxYjFmYSwgMHg5ZDdkYjUwNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDU4ODQ2ZDMyLCAweGM0
NzQ0NzMzKSwgVE9CTigweDQwNTE3YzcxLCAweDM3OWY5ZTM0KSwKKyAgICAgICAgICAgVE9CTigw
eDJmNjU2NTVmLCAweDEzMGVmNmNhKSwgVE9CTigweDUyNmU0NDg4LCAweGYxZjM1MDNmKX0sCisg
ICAgICAgICAge1RPQk4oMHg4NDY3YmQxNywgMHg3ZWU0YTk3NiksIFRPQk4oMHgxZDlkYzkxMywg
MHg5MjEzNjNkMSksCisgICAgICAgICAgIFRPQk4oMHhkOGQyNGMzMywgMHhiMDY5ZTA0MSksIFRP
Qk4oMHg1ZWI1ZGEwYSwgMHgyY2RmN2Y1MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDFjMGYzY2Ix
LCAweDE5N2I5OTRmKSwgVE9CTigweDNjOTVhNmM1LCAweDI4NDNlYWU5KSwKKyAgICAgICAgICAg
VE9CTigweDc3NjZmZmM5LCAweGE2MDk3ZWE1KSwgVE9CTigweDdiZWE0MDkzLCAweGQ3MjNiODY3
KX0sCisgICAgICAgICAge1RPQk4oMHhiNDhlMWY3MywgMHg0ZGIzNzhmOSksIFRPQk4oMHg3MDAy
NWIwMCwgMHhlMzdiNzdhYyksCisgICAgICAgICAgIFRPQk4oMHg5NDNkYzhlNywgMHhhZjI0YWQ0
NiksIFRPQk4oMHhiOThhMTVhYywgMHgxNmQwMGE4NSl9fSwKKyAgICAgICAgIHt7VE9CTigweDNh
ZGMzOGJhLCAweDI3NDNiMDA0KSwgVE9CTigweGIxYzdmNGY3LCAweDMzNDQxNWVlKSwKKyAgICAg
ICAgICAgVE9CTigweGVhNDNkZjhmLCAweDFlNjJkMDVhKSwgVE9CTigweDMyNjE4OTA1LCAweDlk
NzZhM2I2KX0sCisgICAgICAgICAge1RPQk4oMHgyZmJkMGJiNSwgMHhhMjNhMGY0NiksIFRPQk4o
MHg1YmM5NzFkYiwgMHg2YTAxOTE4YyksCisgICAgICAgICAgIFRPQk4oMHg3ODAxZDk0YSwgMHhi
NDc0M2Y5NCksIFRPQk4oMHhiOTRkZjY1ZSwgMHg2NzZhZTIyYil9fSwKKyAgICAgICAgIHt7VE9C
TigweGFhZmNiZmFiLCAweGFmOTU4OTRjKSwgVE9CTigweDdiOWJkYzA3LCAweDI3NmIyMjQxKSwK
KyAgICAgICAgICAgVE9CTigweGVhZjk4MzYyLCAweDViZGRhNDhiKSwgVE9CTigweDU5NzdmYWYy
LCAweGEzZmNiNGRmKX0sCisgICAgICAgICAge1RPQk4oMHhiZWQwNDJlZiwgMHgwNTJjNGI1Yiks
IFRPQk4oMHg5ZmU4N2Y3MSwgMHgwNjc1OTFmMCksCisgICAgICAgICAgIFRPQk4oMHhjODljNzNj
YSwgMHgyMmYyNGVjNyksIFRPQk4oMHg3ZDM3ZmE5ZSwgMHhlNjRhOWYxYil9fSwKKyAgICAgICAg
IHt7VE9CTigweDI3MTA4NDFhLCAweDE1NTYyNjI3KSwgVE9CTigweDJjMDFhNjEzLCAweGMyNDNi
MDM0KSwKKyAgICAgICAgICAgVE9CTigweDFkMTM1YzU2LCAweDJiYzY4NjA5KSwgVE9CTigweGMy
Y2ExNzE1LCAweDhiMDNmMWY2KX0sCisgICAgICAgICAge1RPQk4oMHhjOTk2NmMyZCwgMHgzZWI4
MWQ4MiksIFRPQk4oMHhjMDJhYmY0YSwgMHg4ZjZkZjEzZSksCisgICAgICAgICAgIFRPQk4oMHg3
N2IzNGJkNywgMHg4ZjcyYjQzYiksIFRPQk4oMHhhZmY2MjE4ZiwgMHgzNjBjODJiMCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDBhYTU3MjZjLCAweDhkNTViOWQyKSwgVE9CTigweGRjMGFkYmU5LCAw
eDk5ZTliZmZiKSwKKyAgICAgICAgICAgVE9CTigweDkwOTc1NDljLCAweGVmYjllNzJhKSwgVE9C
TigweDE2NzU1NzEyLCAweDlkZmIzMTExKX0sCisgICAgICAgICAge1RPQk4oMHhkZDhiZjk4NCwg
MHhmMjY4NDdmOSksIFRPQk4oMHhiY2I4ZTM4NywgMHhkZmIzMGNiNyksCisgICAgICAgICAgIFRP
Qk4oMHhjMWZkMzJhNywgMHg1MTcxZWY5YyksIFRPQk4oMHg5NzdmM2ZjNywgMHgzODliMzYzZil9
fSwKKyAgICAgICAgIHt7VE9CTigweDExNmVhZjJiLCAweGY0YmFiZGEwKSwgVE9CTigweGZlYWI2
OGJkLCAweGY3MTEzYzhlKSwKKyAgICAgICAgICAgVE9CTigweGQxZTNmMDY0LCAweGI3ZGVmNTI2
KSwgVE9CTigweDFhYzMwODg1LCAweGUwYjNmYTAyKX0sCisgICAgICAgICAge1RPQk4oMHgxYzVh
NmU3YiwgMHg0MDE0MmQ5ZCksIFRPQk4oMHg4MzliNTYwMywgMHgzMDkyMWMwYiksCisgICAgICAg
ICAgIFRPQk4oMHg0OGYzMDFmYSwgMHgzNmExMTZhMyksIFRPQk4oMHgzODBlMTEwNywgMHhjZmQ5
ZWU2ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDc5NDVlYWQ4LCAweDU4ODU0YmUxKSwgVE9CTigw
eDQxMTFjMTJlLCAweGNiZDRkNDlkKSwKKyAgICAgICAgICAgVE9CTigweGVjZTNiMWVjLCAweDNh
MjljMmVmKSwgVE9CTigweDYzNTZkNDA0LCAweDhkMzYxNmY1KX0sCisgICAgICAgICAge1RPQk4o
MHg5ZjBkNmE4ZiwgMHg1OTRkMzIwZSksIFRPQk4oMHgwOTg5MzE2ZCwgMHhmNjUxY2NkMiksCisg
ICAgICAgICAgIFRPQk4oMHg2YzMyMTE3YSwgMHgwZjhmZGRlNCksIFRPQk4oMHg5YWJlNWNjNSwg
MHhhMjZhOWJiYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGNmZjU2MGZiLCAweDk3MjNmNjcxKSwg
VE9CTigweDIxYjJhMTJkLCAweDdmM2Q1OTNjKSwKKyAgICAgICAgICAgVE9CTigweGU0Y2IxOGRh
LCAweDI0YmEwNjk2KSwgVE9CTigweDE4NmUyMjIwLCAweGMzNTQzMzg0KX0sCisgICAgICAgICAg
e1RPQk4oMHg3MjJmNjRlMCwgMHg4ODMxMmMyOSksIFRPQk4oMHg5NDI4MmE5OSwgMHgxN2RjNzc1
MiksCisgICAgICAgICAgIFRPQk4oMHg2MjQ2N2JiZiwgMHg1YTg1ZWU4OSksIFRPQk4oMHhmNDM1
YzY1MCwgMHhmMTAwNzZhMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGM5ZmYxNTM5LCAweDQzYjNh
NTBiKSwgVE9CTigweDcxMzIxMzBjLCAweDFhNTNlZmJjKSwKKyAgICAgICAgICAgVE9CTigweDMx
YmZlMDYzLCAweGY3YjBjNWI3KSwgVE9CTigweGIwMTc5YTdkLCAweDRlYTk5NGNjKX0sCisgICAg
ICAgICAge1RPQk4oMHgxMmQwNjRiMywgMHhjODVmNDU1YiksIFRPQk4oMHg0NzI1OTMyOCwgMHg4
ZjZlMDA2MiksCisgICAgICAgICAgIFRPQk4oMHhmNjRlNTkwYiwgMHhiODc1ZDZkOSksIFRPQk4o
MHgyMmRkNjIyNSwgMHhhZDkyYmNjNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGI2NTgwMzhlLCAw
eGI5YzNiZDZkKSwgVE9CTigweDAwY2RiMGQ2LCAweGZiYmEyN2M4KSwKKyAgICAgICAgICAgVE9C
TigweDBjNjgxMzM3LCAweDEwNjJjNDVkKSwgVE9CTigweGQ4NTE1YjhjLCAweDJkMzM0MDdkKX0s
CisgICAgICAgICAge1RPQk4oMHhjYjhmNjk5ZSwgMHg4Y2JiNWVjZiksIFRPQk4oMHg4YzQzNDdm
OCwgMHhjNjA4ZDdkOCksCisgICAgICAgICAgIFRPQk4oMHgyYzExODUwYSwgMHhiYjNlMDBkYiks
IFRPQk4oMHgyMGE4ZGFmZCwgMHhlY2I0OWQxOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGJkNzgx
NDgwLCAweDQ1ZWUyZjQwKSwgVE9CTigweDc1ZTM1NGFmLCAweDQxNmI2MGNmKSwKKyAgICAgICAg
ICAgVE9CTigweGRlMGI1OGExLCAweDhkNDlhOGM0KSwgVE9CTigweGU0MGU5NGUyLCAweGZhMzU5
NTM2KX0sCisgICAgICAgICAge1RPQk4oMHhiZDRmYTU5ZiwgMHg2MmFjY2Q3NiksIFRPQk4oMHgw
NWNmNDY2YSwgMHg4Yzc2MjgzNyksCisgICAgICAgICAgIFRPQk4oMHhiNWFiZGE5OSwgMHg0NDhj
Mjc3YiksIFRPQk4oMHg1YTllMDFiZiwgMHg0OGIxMzc0MCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDlkNDU3Nzk4LCAweDMyNmFhZDhkKSwgVE9CTigweGJkZWY0OTU0LCAweGMzOTZmN2U3KSwKKyAg
ICAgICAgICAgVE9CTigweDZmYjI3NGEyLCAweGMyNTNlMjkyKSwgVE9CTigweDI4MDBiZjBhLCAw
eDFjZmU1M2U3KX0sCisgICAgICAgICAge1RPQk4oMHgyMjQyNmQzMSwgMHg0NDQzOGZkNCksIFRP
Qk4oMHhlZjIzMzkyMywgMHg1ZTI1OWY5YSksCisgICAgICAgICAgIFRPQk4oMHg0MTg4NTAzYywg
MHgwM2Y2NjI2NCksIFRPQk4oMHg5ZTVlN2YxMywgMHg3ZjlmZGZhYil9fSwKKyAgICAgICAgIHt7
VE9CTigweDU2NWViNzZjLCAweDVmY2MxYWJhKSwgVE9CTigweGVhNjMyNTQ4LCAweDU5YjViZmY4
KSwKKyAgICAgICAgICAgVE9CTigweDU1ODdjMDg3LCAweGFhYjZkM2ZhKSwgVE9CTigweDkyYjYz
OWVhLCAweDZjZTM5YzFiKX0sCisgICAgICAgICAge1RPQk4oMHgwNzA2ZTc4MiwgMHg5NTNiMTM1
YyksIFRPQk4oMHg3MzA4OTEyZSwgMHg0MjUyNjhlZiksCisgICAgICAgICAgIFRPQk4oMHg1OTll
OTJjNywgMHgwOTBlNzQ2OSksIFRPQk4oMHg4M2I5MGY1MiwgMHg5YmMzNWU3NSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDQ3NTBiM2QwLCAweDI0NDk3NWIzKSwgVE9CTigweGYzYTQ0MzU4LCAweDEx
OTY1ZDcyKSwKKyAgICAgICAgICAgVE9CTigweDE3OWM2Nzc0LCAweDljOGRjNzUxKSwgVE9CTigw
eGZmMThjZGZlLCAweGQyM2Q5ZmYwKX0sCisgICAgICAgICAge1RPQk4oMHhjNDAxMzgzMywgMHgy
MDI4ZTI0NyksIFRPQk4oMHg5NmUyODBlMiwgMHhmM2JmYmM3OSksCisgICAgICAgICAgIFRPQk4o
MHhmNjA0MTdiZCwgMHhkMDg4MGE4NCksIFRPQk4oMHgyNjNjOWYzZCwgMHgyYTU2ODE1MSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDM2YmUxNWIzLCAweDJkMmNlODExKSwgVE9CTigweDg0NmRjMGMy
LCAweGY4MjkxZDIxKSwKKyAgICAgICAgICAgVE9CTigweDVjZmEwZWNiLCAweDc4OWZjZmRiKSwg
VE9CTigweDQ1YTBiZWVkLCAweGQ3NTM1YjlhKX0sCisgICAgICAgICAge1RPQk4oMHhlYzhlOWYw
NywgMHg5NmQ2OWFmMSksIFRPQk4oMHgzMWE3YzViOCwgMHg1OTlhYjZkYyksCisgICAgICAgICAg
IFRPQk4oMHhkMzZkNDVlZiwgMHhmOWUyZTA5ZiksIFRPQk4oMHgzY2Y0OWVmMSwgMHhkY2VlOTU0
Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDZiZTM0Y2YzLCAweDA4NmNmZjliKSwgVE9CTigweDg4
ZGJkNDkxLCAweDM5YTMzNjBmKSwKKyAgICAgICAgICAgVE9CTigweDFlOTZiOGNjLCAweDBkYmZi
ZDFkKSwgVE9CTigweGMxZTVmN2JmLCAweGNiN2UyNTUyKX0sCisgICAgICAgICAge1RPQk4oMHgw
NTQ3YjIxNCwgMHgyODgxOWQ5OCksIFRPQk4oMHhjNzcwZGQ5YywgMHg3YWVhOWRjYiksCisgICAg
ICAgICAgIFRPQk4oMHhhZWYwZDRjNywgMHgwNDFkNjhjOCksIFRPQk4oMHhjYzJiOTgxOCwgMHgx
M2NiOWJhOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDdmYzdiYzc2LCAweGZlODZjNjA3KSwgVE9C
TigweDZiN2I5MzM3LCAweDUwMmE5YTk1KSwKKyAgICAgICAgICAgVE9CTigweDE5NDhkYzI3LCAw
eGQxNGRhYjYzKSwgVE9CTigweDI0OWRkMTk4LCAweGRhZTA0N2JlKX0sCisgICAgICAgICAge1RP
Qk4oMHhlODM1NjU4NCwgMHhhOTgxYTIwMiksIFRPQk4oMHgzNTMxZGQxOCwgMHgzYTg5MzM4Nyks
CisgICAgICAgICAgIFRPQk4oMHgxYmUxMWY5MCwgMHhjODVjNzIwOSksIFRPQk4oMHg5M2QyZmUx
ZSwgMHhlMmE1MmI1YSl9fSwKKyAgICAgICAgIHt7VE9CTigweDgyMjViZmUyLCAweGVjNmQ2Yjk3
KSwgVE9CTigweDljZjZkNmY0LCAweGJkMGFhNWRlKSwKKyAgICAgICAgICAgVE9CTigweDkxMTQ1
OWNiLCAweDU0Nzc5ZjVmKSwgVE9CTigweDU2NDljZGRiLCAweDg2YWViMWYzKX0sCisgICAgICAg
ICAge1RPQk4oMHgzMjEzMzU3OSwgMHgzZjI2Y2U1YSksIFRPQk4oMHhjMjg5YTEwMiwgMHg1NTBm
NDMxZSksCisgICAgICAgICAgIFRPQk4oMHg1NTlkY2ZkYSwgMHg3M2I4NGM2ZiksIFRPQk4oMHg4
NDk3MzgxOSwgMHhlZTNhYzRkNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGI1MWU1NWU2LCAweGYy
NjA2YTgyKSwgVE9CTigweGUyNWY3MDYxLCAweDkwZjJmYjU3KSwKKyAgICAgICAgICAgVE9CTigw
eGFjZWY2YzJhLCAweGIxYTRlMzdjKSwgVE9CTigweDg2NGUzNTlkLCAweDVkY2YyNzA2KX0sCisg
ICAgICAgICAge1RPQk4oMHg0NzllNmIxOCwgMHg3Y2U1NzMxNiksIFRPQk4oMHgyY2FiMjUwMCwg
MHgzYTk2YjIzZCksCisgICAgICAgICAgIFRPQk4oMHhlZDQ4OTg2MiwgMHg4ZWYxNmRmNyksIFRP
Qk4oMHgyMDU2NTM4YywgMHhlZjM3NThiNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGE3ZGY4NjVl
LCAweGYxNWQzMTAxKSwgVE9CTigweDgwYzU1MzNhLCAweDYxYjU1M2Q3KSwKKyAgICAgICAgICAg
VE9CTigweDM2NmUxOTk3LCAweDRlZDE0Mjk0KSwgVE9CTigweDY2MjA3NDFmLCAweGIzYzBiY2Q2
KX0sCisgICAgICAgICAge1RPQk4oMHgyMWQxZDljNCwgMHhlZGM0NTQxOCksIFRPQk4oMHgwMDVi
ODU5ZSwgMHhjMWNjNGE5ZCksCisgICAgICAgICAgIFRPQk4oMHhkZjAxZjYzMCwgMHhhMWM0NjJm
MCksIFRPQk4oMHgxNWQwNmNmMywgMHhmMjY4MjBjNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDlm
N2YyNGVlLCAweDM0ODRiZTQ3KSwgVE9CTigweDJmZjMzZTk2LCAweDRhMGM5MDJmKSwKKyAgICAg
ICAgICAgVE9CTigweDAwYmRmNDU3LCAweDVhMGJjNDUzKSwgVE9CTigweDIzNzhkZmFmLCAweDFh
YTIzOGRiKX0sCisgICAgICAgICAge1RPQk4oMHgyNzI0MjBlYywgMHg4NTY3MjBmMiksIFRPQk4o
MHgyYWQ5ZDk1YiwgMHg5Njc5NzI5MSksCisgICAgICAgICAgIFRPQk4oMHhkMTI0MmNjNiwgMHg3
NjhhMTU1OCksIFRPQk4oMHgyZTI4N2Y4YiwgMHg1Y2M4NmFhOCl9fSwKKyAgICAgICAgIHt7VE9C
TigweDc5Njg3M2QwLCAweDk5MGNlY2FhKSwgVE9CTigweGFkZTU1ZjgxLCAweDY3NWQ0MDgwKSwK
KyAgICAgICAgICAgVE9CTigweDI2NDVlZWEzLCAweDIxZjBjZDg0KSwgVE9CTigweDdhMWVmYTBm
LCAweGI0ZTE3ZDAyKX0sCisgICAgICAgICAge1RPQk4oMHhmNjg1ODQyMCwgMHgwMzdjYzA2MSks
IFRPQk4oMHg2ODJlMDVmMCwgMHhkNWQ0M2UxMiksCisgICAgICAgICAgIFRPQk4oMHg1OWMzNjk5
NCwgMHgyNzIxODcxMCksIFRPQk4oMHg4NWNiYmE0ZCwgMHgzZjdjZDJmYyl9fSwKKyAgICAgICAg
IHt7VE9CTigweDcyNmY5NzI5LCAweDdhM2NkMjJhKSwgVE9CTigweDlmOGNkNWRjLCAweDRhNjI4
Mzk3KSwKKyAgICAgICAgICAgVE9CTigweDE3YjkzYWI5LCAweGMyMzE2NWVkKSwgVE9CTigweGZm
NWY1ZGJmLCAweDEyMjgyM2Q0KX0sCisgICAgICAgICAge1RPQk4oMHhjMWU0ZTRiNSwgMHg2NTRh
NDQ2ZCksIFRPQk4oMHhkMWE5NDk2ZiwgMHg2NzcyNTdiYSksCisgICAgICAgICAgIFRPQk4oMHg2
Mzg3YmE5NCwgMHhkZTc2NmE1NiksIFRPQk4oMHgyMzYwOGJjOCwgMHg1MjFlYzc0YSl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDE2YTUyMmQ3LCAweDY2ODhjNGQ0KSwgVE9CTigweDlkNmI0MjgyLCAw
eDA3MzczYWJkKSwKKyAgICAgICAgICAgVE9CTigweGE2MmYwN2FjLCAweGI0MmVmYWEzKSwgVE9C
TigweGY3M2UwMGY3LCAweGUzYjkwMTgwKX0sCisgICAgICAgICAge1RPQk4oMHgzNjE3NWZlYywg
MHg0OTQyMWMzZSksIFRPQk4oMHhjNGU0NGY5YiwgMHgzZGNmMjY3OCksCisgICAgICAgICAgIFRP
Qk4oMHg3NmRmNDM2YiwgMHg3MjIwZjA5ZiksIFRPQk4oMHgxNzI3NTVmYiwgMHgzYWE4YjZjZil9
fSwKKyAgICAgICAgIHt7VE9CTigweGJhYjg5ZDU3LCAweDQ0NjEzOWNjKSwgVE9CTigweDBhMGE2
ZTAyLCAweDVmZTAyMDhmKSwKKyAgICAgICAgICAgVE9CTigweGNkYmI2M2UyLCAweDExZTVkMzk5
KSwgVE9CTigweDMzZWNhYTEyLCAweGE4OTc3ZjBiKX0sCisgICAgICAgICAge1RPQk4oMHg1OTU5
OGIyMSwgMHhmN2M0MjY2NCksIFRPQk4oMHhiM2U5MWIzMiwgMHhhYjY1ZDA4YSksCisgICAgICAg
ICAgIFRPQk4oMHgwMzU4MjJlZSwgMHhmNDUwMjUyNiksIFRPQk4oMHgxZGNmMDE3NiwgMHg3MjBh
ODJhOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDUwZjg1OThmLCAweDNkNTg5ZTAyKSwgVE9CTigw
eGRmMDQ3OGZmLCAweGIxZDYzZDJjKSwKKyAgICAgICAgICAgVE9CTigweDhiODA2OGJkLCAweDE1
NzFjZDA3KSwgVE9CTigweDMwYzNhYTRmLCAweGQ3OTY3MGNkKX0sCisgICAgICAgICAge1RPQk4o
MHgyNWU4ZmQ0YiwgMHg5NDFhZGU3ZiksIFRPQk4oMHgzZDFkZWJkYywgMHgzMjc5MDAxMSksCisg
ICAgICAgICAgIFRPQk4oMHg2NWI2ZGNiZCwgMHgzYTNmOWZmMCksIFRPQk4oMHgyODI3MzZhNCwg
MHg3OTNkZTY5Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweGVmNjlhMGMzLCAweGQ0MWQzYmQzKSwg
VE9CTigweGI1MzNiOGM5LCAweDA3YTI2YmRlKSwKKyAgICAgICAgICAgVE9CTigweGUyODAxZDk3
LCAweGRiMmVkZjlmKSwgVE9CTigweGRjNGE4MjY5LCAweGUxODc3YWYwKX0sCisgICAgICAgICAg
e1RPQk4oMHg2YzFjNTg1MSwgMHgzZDU5MGRiZSksIFRPQk4oMHg4NDYzMmY2YiwgMHhlZTRlOTM1
NyksCisgICAgICAgICAgIFRPQk4oMHhkMzZkMzZiNywgMHg3OWIzMzM3NCksIFRPQk4oMHhiNDY4
MzNlMywgMHg5YmJjYTJlNil9fSwKKyAgICAgICAgIHt7VE9CTigweDM3ODkzOTEzLCAweGY3ZmMw
NTg2KSwgVE9CTigweDM4NTMxNWY3LCAweDY2YmY0NzE5KSwKKyAgICAgICAgICAgVE9CTigweDcy
YzU2MjkzLCAweGIzMTg1NWRjKSwgVE9CTigweGQxNDE2ZDRlLCAweDg0OTA2MWZlKX0sCisgICAg
ICAgICAge1RPQk4oMHhiZWIzYWI3OCwgMHg1MTA0NzIxMyksIFRPQk4oMHg0NDdmNmU2MSwgMHhm
MDQwYzk5NiksCisgICAgICAgICAgIFRPQk4oMHhkMDZkMzEwZCwgMHg2MzhiMWQwYyksIFRPQk4o
MHhlMjhhNDEzZiwgMHhiYWQxNTIyZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDY4NWE3NmNiLCAw
eDgyMDAzZjg2KSwgVE9CTigweDYxMGQwN2Y3LCAweDBiY2RiY2EzKSwKKyAgICAgICAgICAgVE9C
TigweDZmZjY2MDIxLCAweDljYTRjNDU1KSwgVE9CTigweDdkZjM5Yjg3LCAweGNlYTEwZWVjKX0s
CisgICAgICAgICAge1RPQk4oMHhiOTI1NWY5NiwgMHhlMjJkYjIxOCksIFRPQk4oMHg4Y2M2ZDll
YiwgMHgwOGEzNGM0NCksCisgICAgICAgICAgIFRPQk4oMHhjZDRmZmI4NiwgMHg4NTlmOTI3Niks
IFRPQk4oMHg4ZmExNWViMiwgMHg1MGQwNzMzNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGRmNTUz
ODQ1LCAweGNmMmMyNGI1KSwgVE9CTigweDg5ZjY2YTlmLCAweDUyZjljM2JhKSwKKyAgICAgICAg
ICAgVE9CTigweDhmMjJiNWI5LCAweGU0YTdjZWIzKSwgVE9CTigweGFmZmVmODA5LCAweDBlMTM0
Njg2KX0sCisgICAgICAgICAge1RPQk4oMHgzZTUzZTFjNiwgMHg4ZWI4ZmFjMiksIFRPQk4oMHg5
M2MxZTRlYiwgMHgyOGFlYzk4ZSksCisgICAgICAgICAgIFRPQk4oMHhiNmI5MWVjNSwgMHgzMmE0
M2JjYiksIFRPQk4oMHgyZGJmYTk0NywgMHhiMmQ3NGE1MSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGUwNjVkMTkwLCAweGNhODRiYWQ3KSwgVE9CTigweGZiMTM5MTlmLCAweGFkNThlNjVjKSwKKyAg
ICAgICAgICAgVE9CTigweDNjNDE3MThiLCAweGYxY2I2ZTMxKSwgVE9CTigweDY4ODk2OWYwLCAw
eDA2ZDA1YzNmKX0sCisgICAgICAgICAge1RPQk4oMHhkNGY5NGNlNywgMHgyMTI2NGQ0NSksIFRP
Qk4oMHhmZGZiNjVlOSwgMHg3MzY3NTMyYiksCisgICAgICAgICAgIFRPQk4oMHg1YjFiZThiMSwg
MHgwOTQ1YTM5ZCksIFRPQk4oMHgyMjlmNzg5YywgMHgyYjhiYWYzYil9fSwKKyAgICAgICAgIHt7
VE9CTigweGQ4ZjQxZjNlLCAweDZmNDlmMTVkKSwgVE9CTigweDY3OGNlODI4LCAweDkwN2YwNzky
KSwKKyAgICAgICAgICAgVE9CTigweGM2OWFjZTgyLCAweGZjYTZlODY3KSwgVE9CTigweDEwNjQ1
MWFlLCAweGQwMWRjYzg5KX0sCisgICAgICAgICAge1RPQk4oMHgxYmI0ZjdmMCwgMHgxOWZjMzJk
MiksIFRPQk4oMHg2NDYzM2RmYywgMHhiMDBjNTJkMiksCisgICAgICAgICAgIFRPQk4oMHg4ZjEz
NTQ5YSwgMHhhZDllYTQ0NSksIFRPQk4oMHg5OWEzYmY1MCwgMHhmYjMyMzcwNSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDBjOTYyNWEyLCAweDUzNGQ0ZGJjKSwgVE9CTigweDQ1YjhmMWQxLCAweGMy
YTJmZWEzKSwKKyAgICAgICAgICAgVE9CTigweDc2ZWMyMWExLCAweGE1MzBmYzFhKSwgVE9CTigw
eDRiYWM5YzJhLCAweDllNWJkNzM0KX0sCisgICAgICAgICAge1RPQk4oMHg1OTk2ZDc2YSwgMHg3
YjRlMzU4NyksIFRPQk4oMHgwMDQ1Y2RlZSwgMHgxMTgyZDllMyksCisgICAgICAgICAgIFRPQk4o
MHgxYWVlMjRiOSwgMHgxMjA3ZjEzZCksIFRPQk4oMHg2NjQ1MmU5NywgMHg5NzM0NWE0MSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDE2ZTViMDU0LCAweDlmOTUwY2QwKSwgVE9CTigweDljYzcyZmIx
LCAweGQ3ZmRkMDc1KSwKKyAgICAgICAgICAgVE9CTigweDZlZGQ2MWU3LCAweDY2MjQ5NjYzKSwg
VE9CTigweGRlNGNhYTRkLCAweGYwNDNjY2NiKX0sCisgICAgICAgICAge1RPQk4oMHgxMWIxZjU3
YSwgMHg1NWM3YWMxNyksIFRPQk4oMHg3NzljYmQ0NCwgMHgxYTg1ZTI0ZCksCisgICAgICAgICAg
IFRPQk4oMHg3ODAzMGY4NiwgMHhlNDYwODFlNyksIFRPQk4oMHhmZDRhNjAzMiwgMHg4ZTIwZjY0
Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGNjN2E2NDg4LCAweDBhNzUwYzBmKSwgVE9CTigweDM5
YmFjZmUzLCAweDRlNTQ4ZTgzKSwKKyAgICAgICAgICAgVE9CTigweDNkNDE4Yzc2LCAweDBjMTEw
ZjA1KSwgVE9CTigweDNlNGRhYTRjLCAweGIxZjExNTg4KX0sCisgICAgICAgICAge1RPQk4oMHgy
NzMzZTdiNSwgMHg1ZmZjNjlmZiksIFRPQk4oMHg0NmYxNDdiYywgMHg5MjA1MzEyNyksCisgICAg
ICAgICAgIFRPQk4oMHg4ODViMjQzNCwgMHhkNzIyZGY5NCksIFRPQk4oMHg2YTQ0NGY2NSwgMHhl
NmZjNmI3Yyl9fX0sCisgICAgICAgIHt7e1RPQk4oMHg3YTFhNDY1YSwgMHhjM2YxNmVhOCksIFRP
Qk4oMHgxMTVhNDYxZCwgMHhiMmYxZDExYyksCisgICAgICAgICAgIFRPQk4oMHg0NzY3ZGQ5NSwg
MHg2YzY4YTE3MiksIFRPQk4oMHgzMzkyZjJlYiwgMHhkMTNhNDY5OCl9LAorICAgICAgICAgIHtU
T0JOKDB4YzdhOTljY2QsIDB4ZTUyNmNkYzcpLCBUT0JOKDB4OGU1MzdmZGMsIDB4MjIyOTJiODEp
LAorICAgICAgICAgICBUT0JOKDB4NzZkOGNmNjksIDB4YTZkMzkxOTgpLCBUT0JOKDB4ZmZjNWZm
NDMsIDB4MjQ0Njg1MmQpfX0sCisgICAgICAgICB7e1RPQk4oMHg5N2IxNGY3ZSwgMHhhOTA1Njdl
NiksIFRPQk4oMHg1MTMyNTdiNywgMHhiNmFlNWNiNyksCisgICAgICAgICAgIFRPQk4oMHg4NTQ1
NGEzYywgMHg5ZjEwOTAzZCksIFRPQk4oMHhkOGQyYzlhZCwgMHg2OWJjMzcyNCl9LAorICAgICAg
ICAgIHtUT0JOKDB4MzhkYTkzMjQsIDB4NmIyOWNiNDQpLCBUT0JOKDB4YjU0MGEyMWQsIDB4Nzdj
OGNiYWMpLAorICAgICAgICAgICBUT0JOKDB4OWJiZmU0MzUsIDB4MDE5MThlNDIpLCBUT0JOKDB4
ZmZmYTcwN2EsIDB4NTZjMzYxNGUpfX0sCisgICAgICAgICB7e1RPQk4oMHgwY2U0ZTNmMSwgMHhk
NGUzNTNiNyksIFRPQk4oMHgwNjJkOGExNCwgMHhlZjQ2YjBhMCksCisgICAgICAgICAgIFRPQk4o
MHg2NDA4ZDVhYiwgMHg1NzRiNzNmZCksIFRPQk4oMHhiYzQxZDFjOSwgMHhkMzI3M2ZmZCl9LAor
ICAgICAgICAgIHtUT0JOKDB4MzUzOGUxZTcsIDB4NmJlNzc4MDApLCBUT0JOKDB4NzFmZThiMzcs
IDB4YzU2NTUwMzEpLAorICAgICAgICAgICBUT0JOKDB4MWNkOTE2MjEsIDB4NmI5YjMzMWEpLCBU
T0JOKDB4YWQ4MjVkMGIsIDB4YmIzODhmNzMpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NmMyZTA1
YiwgMHgxY2I3NjIxOSksIFRPQk4oMHgwZWMwYmY5MSwgMHg3MTU2N2U3ZSksCisgICAgICAgICAg
IFRPQk4oMHhlNzA3NmY4NiwgMHg2MWM0YzkxMCksIFRPQk4oMHhkNjdiMDg1YiwgMHhiYWJjMDRk
OSl9LAorICAgICAgICAgIHtUT0JOKDB4OWZiOTA0NTksIDB4NWU5M2E5NmEpLCBUT0JOKDB4NzUy
NmMxZWEsIDB4ZmJkYzI0OWEpLAorICAgICAgICAgICBUT0JOKDB4MGQ0NGQzNjcsIDB4ZWNkZDBi
YjcpLCBUT0JOKDB4OTUzOTk5MTcsIDB4OWRjMGQ2OTUpfX0sCisgICAgICAgICB7e1RPQk4oMHg2
MTM2MGVlOSwgMHg5ZTI0MGQxOCksIFRPQk4oMHgwNTdjZGNhYywgMHhiNGI5NDQ2NiksCisgICAg
ICAgICAgIFRPQk4oMHhlNzY2N2NkMSwgMHgyZmU1MzI1YyksIFRPQk4oMHgxZmEyOTdiNSwgMHgy
MTk3NGUzYil9LAorICAgICAgICAgIHtUT0JOKDB4ZmE0MDgxZTcsIDB4ZGIwODNkNzYpLCBUT0JO
KDB4MzE5OTNiZTYsIDB4ZjIwNmJkMTUpLAorICAgICAgICAgICBUT0JOKDB4ODk0OTI2OWIsIDB4
MTRjMTlmOGMpLCBUT0JOKDB4MjE0NjhkNzIsIDB4YTlkOTIzNTcpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgyY2NiYzU4MywgMHhhNGM1MDZlYyksIFRPQk4oMHg5NTdlZDE4OCwgMHhkMWFjZmU5Nyks
CisgICAgICAgICAgIFRPQk4oMHg4YmFlZDgzMywgMHgxMmYxYWVhMiksIFRPQk4oMHhlZjJhNmNi
NCwgMHg4MzI1MzYyZCl9LAorICAgICAgICAgIHtUT0JOKDB4MTMwZGRlNDIsIDB4OGUxOTVjNDMp
LCBUT0JOKDB4Yzg0MjAyNWEsIDB4MGU2MDUwYzYpLAorICAgICAgICAgICBUT0JOKDB4MmRhOTcy
YTcsIDB4MDg2ODZhNWQpLCBUT0JOKDB4YjUyOTk5YTEsIDB4ZTUwOGI0YTgpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhkOWYwOTBiOSwgMHgxMGE1YThiZCksIFRPQk4oMHhjYTkxZDI0OSwgMHgwOTY4
NjRkYSksCisgICAgICAgICAgIFRPQk4oMHg4ZTZhOTNiZSwgMHgzZjY3ZGJjMSksIFRPQk4oMHhh
Y2FlNmZiYSwgMHhmNWY0NzY0Yyl9LAorICAgICAgICAgIHtUT0JOKDB4MTU2M2M2ZTAsIDB4ZDIx
NDExYTApLCBUT0JOKDB4MjhmYTc4N2YsIDB4ZGEwYTRhZDgpLAorICAgICAgICAgICBUT0JOKDB4
ZDUyNDQ5MWMsIDB4OTA4YzgwMzApLCBUT0JOKDB4MTI1N2JhMGUsIDB4NGM3OTVmMDcpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg4M2Y0OTE2NywgMHhjZWNhOTc1NCksIFRPQk4oMHg0MjZkMmNmNiwg
MHg0Yjc5MzlhMCksCisgICAgICAgICAgIFRPQk4oMHgyNTU1ZTM1NSwgMHg3MjNmZDBiZiksIFRP
Qk4oMHhhOTZlNmQwNiwgMHhjNGYxNDRlMil9LAorICAgICAgICAgIHtUT0JOKDB4NDc2OGE4ZGQs
IDB4ODc4ODBlNjEpLCBUT0JOKDB4MTU1NDM4MTUsIDB4ZTUwOGU0ZDUpLAorICAgICAgICAgICBU
T0JOKDB4MDlkN2U3NzIsIDB4YjFiNjVlMTUpLCBUT0JOKDB4NjM0MzlkZDYsIDB4YWMzMDJmYTAp
fX0sCisgICAgICAgICB7e1RPQk4oMHhiOTNmODAyZiwgMHhjMTRlMzVjMiksIFRPQk4oMHg3MTcz
NWI3YywgMHg0MzQxMzMzYyksCisgICAgICAgICAgIFRPQk4oMHgwM2EyNTEwNCwgMHgxNmQ0ZjM2
MiksIFRPQk4oMHgzZjRkMDY5YiwgMHhiZjQzM2M4ZSl9LAorICAgICAgICAgIHtUT0JOKDB4MGQ4
M2FlMDEsIDB4Zjc4ZjVhN2MpLCBUT0JOKDB4NTBhOGZmYmUsIDB4N2M0ZWVkMDcpLAorICAgICAg
ICAgICBUT0JOKDB4Yzc0Zjg5MDYsIDB4NzZlMTBmODMpLCBUT0JOKDB4N2QwODA5NjYsIDB4OWRk
YWY4ZTEpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMTFkZjhlMSwgMHg2OThlMDRjYyksIFRPQk4o
MHg4NzdiZTIwMywgMHgxNjkwMDVjOCksCisgICAgICAgICAgIFRPQk4oMHgzMjc0OWU4YywgMHg0
ZjNjNjE3OSksIFRPQk4oMHgyZGJjOWQwYSwgMHg3ODUzZmMwNSl9LAorICAgICAgICAgIHtUT0JO
KDB4MTg3ZDRmOTMsIDB4OTQ1NGQ5MzcpLCBUT0JOKDB4ZTY4MmNlOWQsIDB4YjQ4MDBlMWIpLAor
ICAgICAgICAgICBUT0JOKDB4YTkxMjlhZDgsIDB4MTY1ZTY4ZTgpLCBUT0JOKDB4MGZlMjk3MzUs
IDB4YmU3Zjc4NWIpfX0sCisgICAgICAgICB7e1RPQk4oMHg1MzAzZjQwYywgMHg1YjllMDJiNyks
IFRPQk4oMHhhMzdjOTY5MiwgMHgzNWVlMDRlOCksCisgICAgICAgICAgIFRPQk4oMHg1ZjQ2Y2My
MCwgMHgzNGQ2NjMyYiksIFRPQk4oMHg1NWVmNzJiMiwgMHg5NmFjNTQ1Yil9LAorICAgICAgICAg
IHtUT0JOKDB4YWJlYzVjMWYsIDB4N2I5MWIwNjIpLCBUT0JOKDB4MGE3OWUxYzcsIDB4YmIzM2U4
MjEpLAorICAgICAgICAgICBUT0JOKDB4YmIwNGI0MjgsIDB4M2E5ZjQxMTcpLCBUT0JOKDB4MGRl
MWYyOGYsIDB4ZmQyYTQ3NWEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzMTAxOWNjZiwgMHgzYTQ0
MzRiNCksIFRPQk4oMHhhMzQ1ODExMSwgMHgxYTc5NTRkYyksCisgICAgICAgICAgIFRPQk4oMHhh
OWRhYzgwZCwgMHhlMzQ5NzJhNyksIFRPQk4oMHhiMDQzZDA1NCwgMHg3NGY2YjhkZCl9LAorICAg
ICAgICAgIHtUT0JOKDB4MDIxYzMxOWUsIDB4MTExMzdiMWEpLCBUT0JOKDB4MDBhNzU0Y2UsIDB4
ZWQ1Y2MwM2YpLAorICAgICAgICAgICBUT0JOKDB4MGFhMmM3OTQsIDB4Y2JlYTVhZDQpLCBUT0JO
KDB4MDkzZTY3ZjQsIDB4NzBjMDE1YjYpfX0sCisgICAgICAgICB7e1RPQk4oMHg3MmNkZmVlOSwg
MHhjOTdlM2Y2YiksIFRPQk4oMHhjMTBiY2FiNCwgMHhiNmRhNzQ2MSksCisgICAgICAgICAgIFRP
Qk4oMHgzYjAyZDJmYywgMHhiNTk4MDZiOSksIFRPQk4oMHg4NTE4NWU4OSwgMHhhMWRlNmY0Nyl9
LAorICAgICAgICAgIHtUT0JOKDB4MzllNjkzMWYsIDB4MGViNmM0ZDQpLCBUT0JOKDB4NGQ0NDQw
YmQsIDB4ZDRmYTViMDQpLAorICAgICAgICAgICBUT0JOKDB4NTQxODc4NmUsIDB4MzRiZTdlYjgp
LCBUT0JOKDB4NjM4MGU1MjEsIDB4OWQ3MjU5YmMpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMGFj
MDM1MSwgMHhkNTk4ZDcxMCksIFRPQk4oMHgyNzJjNDE2NiwgMHhjYjNhNGRhNCksCisgICAgICAg
ICAgIFRPQk4oMHhkYjgyZmUxYSwgMHhjYTcxZGUxZiksIFRPQk4oMHg3NDZlNzlmMiwgMHhkOGY1
NGIwZil9LAorICAgICAgICAgIHtUT0JOKDB4NmU3ZmM3MzYsIDB4NGI1NzNlOWIpLCBUT0JOKDB4
NzVkMDNmNDYsIDB4ZmQ0YjUwNDApLAorICAgICAgICAgICBUT0JOKDB4NWMxY2MzNmQsIDB4MGI5
OGQ4N2IpLCBUT0JOKDB4NTEzYmEzZjEsIDB4MWY0NzJkYTEpfX0sCisgICAgICAgICB7e1RPQk4o
MHg3OWQwYWYyNiwgMHhhYmIxNzdkZCksIFRPQk4oMHhmODJhYjU2OCwgMHg3ODkxZDU2NCksCisg
ICAgICAgICAgIFRPQk4oMHgyYjY3NjhhOSwgMHg3MjIzMjE3MyksIFRPQk4oMHhlZmJiM2JiMCwg
MHg4YzFmNjYxOSl9LAorICAgICAgICAgIHtUT0JOKDB4YjI5YzExZGIsIDB4YTZkMTgzNTgpLCBU
T0JOKDB4NTE5ZTI3OTcsIDB4YjA5MTZkM2EpLAorICAgICAgICAgICBUT0JOKDB4ZDRkYzE4ZjAs
IDB4OTE4OGUyOTApLCBUT0JOKDB4NjQ4ZTg2ZTMsIDB4OThiMGNhN2YpfX0sCisgICAgICAgICB7
e1RPQk4oMHg4NTlkMzE0NSwgMHg5ODNjMzhiNSksIFRPQk4oMHhiMTRmMTc2YywgMHg2MzdhYmM4
YiksCisgICAgICAgICAgIFRPQk4oMHgyNzkzZmI5ZCwgMHhjYWZmN2JlNiksIFRPQk4oMHhlYmU1
YTU1ZiwgMHgzNWE2NmE1YSl9LAorICAgICAgICAgIHtUT0JOKDB4N2NlYzFkY2QsIDB4OWY4N2Rj
NTkpLCBUT0JOKDB4N2M1OTVjZDMsIDB4ZmJkYmY1NjApLAorICAgICAgICAgICBUT0JOKDB4NWI1
NDNiMjIsIDB4MjZlYjMyNTcpLCBUT0JOKDB4NjkwODA2NDYsIDB4YzRjOTM1ZmQpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg3ZjJlNDQwMywgMHg4MWU5ZWRlMyksIFRPQk4oMHgyNDNjMzg5NCwgMHhj
YWY2ZGYwYSksCisgICAgICAgICAgIFRPQk4oMHg3YzYwNWJiMSwgMHgxYzA3M2IxMSksIFRPQk4o
MHhjZDA2YTU0MSwgMHhiYTZhNGE2Mil9LAorICAgICAgICAgIHtUT0JOKDB4MjkxNjg5NDksIDB4
NDlkNGUyZTUpLCBUT0JOKDB4MzM2NDlkMDcsIDB4NGFmNjY4ODApLAorICAgICAgICAgICBUT0JO
KDB4YmZjMGM4ODUsIDB4ZTlhODUwMzUpLCBUT0JOKDB4YjRlNTIxMTMsIDB4ZmM0MTBmNGIpfX0s
CisgICAgICAgICB7e1RPQk4oMHhkY2EzYjcwNiwgMHg3OGE2NTEzYiksIFRPQk4oMHg5MmVhNGEy
YSwgMHg5ZWRiMTk0MyksCisgICAgICAgICAgIFRPQk4oMHgwMjY0MjIxNiwgMHhkYjZlMmRkOCks
IFRPQk4oMHg5YjQ1ZDBiNCwgMHg5ZmQ1Nzg5NCl9LAorICAgICAgICAgIHtUT0JOKDB4MTE0ZTcw
ZGIsIDB4YzY5ZDExYWUpLCBUT0JOKDB4MTQ3N2RkMTksIDB4NGM1NzU5NWYpLAorICAgICAgICAg
ICBUT0JOKDB4YmMyMjA4YjQsIDB4ZWM3N2MyNzIpLCBUT0JOKDB4OTVjNWI0ZDcsIDB4ZGI2OGY1
OWMpfX0sCisgICAgICAgICB7e1RPQk4oMHhiOGM0ZmM2MywgMHg0MmU1MzJiNyksIFRPQk4oMHgz
ODZiYTQyMiwgMHg5YWUzNTI5MCksCisgICAgICAgICAgIFRPQk4oMHhmYjVkZGE0MiwgMHhkMjAx
ZWNiYyksIFRPQk4oMHgyMzUzZGM4YiwgMHhhMGUzOGZkNil9LAorICAgICAgICAgIHtUT0JOKDB4
OWEwYjg1ZWEsIDB4NjhmN2U5NzgpLCBUT0JOKDB4OTZlYzU2ODIsIDB4MmFkNmQxMWYpLAorICAg
ICAgICAgICBUT0JOKDB4NWUyNzlkNmMsIDB4ZTVmNjg4NmQpLCBUT0JOKDB4ZDNmZTAzY2QsIDB4
M2NiMTkxNGQpfX0sCisgICAgICAgICB7e1RPQk4oMHhmZTU0MWZhNCwgMHg3ZWE2N2M3NyksIFRP
Qk4oMHg5NTJiZDJhZiwgMHhlM2VhODEwYyksCisgICAgICAgICAgIFRPQk4oMHg3OTFmZWY1Niwg
MHg4ZDAxZDM3NCksIFRPQk4oMHhhM2ExYzYyMSwgMHgwZjExMzM2ZSl9LAorICAgICAgICAgIHtU
T0JOKDB4NWFkMGQ1YTksIDB4YzdlYzZkNzkpLCBUT0JOKDB4ZmY3MDM4YWYsIDB4MzIyNWMzNDIp
LAorICAgICAgICAgICBUT0JOKDB4MDAzYzY2ODksIDB4YmM2OTYwMWIpLCBUT0JOKDB4MjUwNTli
YzcsIDB4NDVlODc0N2QpfX0sCisgICAgICAgICB7e1RPQk4oMHhmYTQ5NjViMiwgMHhmMjA4NmZi
ZiksIFRPQk4oMHhmNjg0MGVhNiwgMHg4NjkxNjA3OCksCisgICAgICAgICAgIFRPQk4oMHhkN2Fj
NzYyMCwgMHg3MDA4MWQ2YyksIFRPQk4oMHhlNjAwZGEzMSwgMHhiNTMyODY0NSl9LAorICAgICAg
ICAgIHtUT0JOKDB4MDE5MTZmNjMsIDB4NTI5YjhhODApLCBUT0JOKDB4ZTgwZTQ4NTgsIDB4MmQ3
ZDZmM2UpLAorICAgICAgICAgICBUT0JOKDB4MjllYjBmZTgsIDB4ZDY2NGNhN2MpLCBUT0JOKDB4
ZjAxNzYzN2IsIDB4ZTdiNDNiMGMpfX0sCisgICAgICAgICB7e1RPQk4oMHg5YTc1YzgwNiwgMHg3
NmNiMjU2NiksIFRPQk4oMHg4Zjc2YWNiMSwgMHhiMjQ4OTJkOSksCisgICAgICAgICAgIFRPQk4o
MHg3YWU3YjljYywgMHgxZjA4ZmU0NSksIFRPQk4oMHgxOWVmNzMyOSwgMHg2YTQ5MDdkOCl9LAor
ICAgICAgICAgIHtUT0JOKDB4MmRiNGFiNzEsIDB4NWYyMjhiZjApLCBUT0JOKDB4ZjNjZGVhMzks
IDB4ODE3MDMyZDcpLAorICAgICAgICAgICBUT0JOKDB4MGIxZjQ4MmUsIDB4ZGNhYmUzYzApLCBU
T0JOKDB4M2JhZjc2YjQsIDB4YmI4NjMyNWMpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNDkwNjVl
MCwgMHgxMDA4OTQ2NSksIFRPQk4oMHgzYmFiNWQyOSwgMHg4ZTc3YzU5NiksCisgICAgICAgICAg
IFRPQk4oMHg3NjM2YzNhNiwgMHgxOTNkYmQ5NSksIFRPQk4oMHhkZWY1ZDI5NCwgMHhiMjQ2ZTQ5
OSl9LAorICAgICAgICAgIHtUT0JOKDB4YjIyYzU4YjksIDB4Mjg2YjI0NzUpLCBUT0JOKDB4YTBi
OTM5MzksIDB4Y2Q4MDg2MmIpLAorICAgICAgICAgICBUT0JOKDB4MzAwMmM4M2EsIDB4ZjA5OTIz
ODgpLCBUT0JOKDB4NmRlMDFmOWIsIDB4ZWFjYmUxNGMpfX0sCisgICAgICAgICB7e1RPQk4oMHg2
YWFjNjg4ZSwgMHhhZGQ3MDQ4MiksIFRPQk4oMHg3MDhkZTkyYSwgMHg3YjRhNGU4YSksCisgICAg
ICAgICAgIFRPQk4oMHg3NWI2ZGQ3MywgMHg3NThhNmVlZiksIFRPQk4oMHhlYTRiZjM1MiwgMHg3
MjViM2M0Myl9LAorICAgICAgICAgIHtUT0JOKDB4MTAwNDFmMmMsIDB4ODc5MTI4NjgpLCBUT0JO
KDB4YjFiMWJlOTUsIDB4ZWYwOTI5N2EpLAorICAgICAgICAgICBUT0JOKDB4MTlhZTIzYzUsIDB4
YTlmMzg2MGEpLCBUT0JOKDB4YzRmMGY4MzksIDB4NTE1ZGNmNGIpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgzYzdlY2NhMywgMHg5N2Y2MzA2YSksIFRPQk4oMHg3NDRjNDRhZSwgMHg2OGEzYTRiMCks
CisgICAgICAgICAgIFRPQk4oMHg2OWNkMTNhMCwgMHhiM2ExZDhhMiksIFRPQk4oMHg3Y2FkMGEx
ZSwgMHg1MjU2YjU3OCl9LAorICAgICAgICAgIHtUT0JOKDB4ZWE2NTNmY2QsIDB4MzM3OTFkOWUp
LCBUT0JOKDB4OWNjMmEwNWQsIDB4NzRiMmUwNWYpLAorICAgICAgICAgICBUT0JOKDB4NzNiMzkx
ZGMsIDB4ZmQ3YWZmYTIpLCBUT0JOKDB4ZGRiNzA5MWUsIDB4YjZiMDU0NDIpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhjNzFlMjdiZiwgMHg4NTM4YTVjNiksIFRPQk4oMHgxOTVjNjNkZCwgMHg4OWFi
ZmYxNyksCisgICAgICAgICAgIFRPQk4oMHhmZDMxNTI4NSwgMHgxYjcxZTNkYSksIFRPQk4oMHg5
Y2JkZmRhNywgMHhmYTY4MGZhMCl9LAorICAgICAgICAgIHtUT0JOKDB4OWRiODc2Y2EsIDB4ODQ5
ZDdlYWIpLCBUT0JOKDB4ZWJlMjc2NGIsIDB4M2MyNzMyNzEpLAorICAgICAgICAgICBUT0JOKDB4
NjYzMzU3ZTMsIDB4ZjIwOGRjZWEpLCBUT0JOKDB4OGM1YmQ4MzMsIDB4NTY1YjFiNzApfX0sCisg
ICAgICAgICB7e1RPQk4oMHhjY2MzYjRmNSwgMHg5ODM3ZmMwZCksIFRPQk4oMHg5YjY0MWJhOCwg
MHhhNzljZjAwZiksCisgICAgICAgICAgIFRPQk4oMHg3NDI4MjQzZCwgMHhkZmRmMzk5MCksIFRP
Qk4oMHg4M2E1OTRjNCwgMHgwMjA3ODZiMSl9LAorICAgICAgICAgIHtUT0JOKDB4YjcxMjQ1MWEs
IDB4NTI2YzQ1MDIpLCBUT0JOKDB4OWQzOTQzOGUsIDB4NmFkYjNmOTMpLAorICAgICAgICAgICBU
T0JOKDB4ZmRiMjYxZTMsIDB4ZTlmZjBjY2QpLCBUT0JOKDB4ODAzNDRlM2MsIDB4ZTA3YWY0YzMp
fX0sCisgICAgICAgICB7e1RPQk4oMHg3NTkwMGQ3YywgMHgyZmE0ZjEyNiksIFRPQk4oMHgwOGEz
Yjg2NSwgMHg1Yzk5YTIzMiksCisgICAgICAgICAgIFRPQk4oMHgyNDc4YjZiZiwgMHhkYjI1ZTBj
MyksIFRPQk4oMHg0ODJjYzJjMiwgMHg3MWRiMmVkZil9LAorICAgICAgICAgIHtUT0JOKDB4Mzdk
ZjdlNjQsIDB4NWYzMjFiYjgpLCBUT0JOKDB4OGE5MzgyMWIsIDB4OWE4MDA1YjQpLAorICAgICAg
ICAgICBUT0JOKDB4M2ZhMmYxMGMsIDB4Y2M4YzE5NTgpLCBUT0JOKDB4MGQzMzIyMTgsIDB4MmMy
NjlkMGEpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMGFiODExOSwgMHhlMjQ2YjBlNiksIFRPQk4o
MHhiMzk3ODFlNCwgMHhkMzQ5ZmQxNyksCisgICAgICAgICAgIFRPQk4oMHhkMjkzMjMxZSwgMHhi
MzFhYTEwMCksIFRPQk4oMHg0Yjc3OWM5NywgMHhiYjAzMjE2OCl9LAorICAgICAgICAgIHtUT0JO
KDB4NGIzZjE5ZTEsIDB4Yzg0NzA1MDApLCBUT0JOKDB4NDViN2VmZTksIDB4MGM0Yzg2OWQpLAor
ICAgICAgICAgICBUT0JOKDB4ZGI4NGYzOGEsIDB4YTFhNmJiY2MpLCBUT0JOKDB4M2I1OWNiMTUs
IDB4YjJmZGRiYzEpfX0sCisgICAgICAgICB7e1RPQk4oMHhiYTU1MTRkZiwgMHgzZmQxNjVlOCks
IFRPQk4oMHg0OTlmZDZhOSwgMHgwNjFmODgxMSksCisgICAgICAgICAgIFRPQk4oMHg3MmNkMWZl
MCwgMHhiZmVmOWYwMCksIFRPQk4oMHgxMjBhNGJiOSwgMHg3OWFkN2U4YSl9LAorICAgICAgICAg
IHtUT0JOKDB4ZjJmZmQwOTUsIDB4NWY0YTVhYzUpLCBUT0JOKDB4Y2ZkMTc0ZjEsIDB4OTVhN2Ey
ZjApLAorICAgICAgICAgICBUT0JOKDB4ZDQyMzAxYmEsIDB4OWQxN2JhZjEpLCBUT0JOKDB4ZDJm
YTQ4N2EsIDB4NzdmMjIwODkpfX0sCisgICAgICAgICB7e1RPQk4oMHg5Y2IwOWVmZSwgMHhiMWRj
NzdlMSksIFRPQk4oMHhlOTU2NjkzOSwgMHgyMWM5OTY4MiksCisgICAgICAgICAgIFRPQk4oMHg4
YzU0NjkwMSwgMHg2YzYwNjdiYiksIFRPQk4oMHhmZDM3ODU3NCwgMHg2MWMyNDQ1Nil9LAorICAg
ICAgICAgIHtUT0JOKDB4MmI2YTZjYmUsIDB4ODE3OTZiMzMpLCBUT0JOKDB4NjJkNTUwZjYsIDB4
NThlODdmOGIpLAorICAgICAgICAgICBUT0JOKDB4MWI3NjNlMWMsIDB4N2YxYjAxYjQpLCBUT0JO
KDB4NGI5M2NmZWEsIDB4MWIxYjVlMTIpfX0sCisgICAgICAgICB7e1RPQk4oMHhiOTM0NTIzOCwg
MHgxZDUzMTY5NiksIFRPQk4oMHg1NzIwMWMwMCwgMHg4OGNkZGU2OSksCisgICAgICAgICAgIFRP
Qk4oMHhkZGU5MjI1MSwgMHg5YTg2YWZjNyksIFRPQk4oMHhlMzA0Mzg5NSwgMHhiZDM1Y2VhOCl9
LAorICAgICAgICAgIHtUT0JOKDB4NzYwOGMxZTEsIDB4ODU1NTk3MGQpLCBUT0JOKDB4ODI2N2Rm
YTksIDB4MjUzNTkzNWUpLAorICAgICAgICAgICBUT0JOKDB4ZDRjNjBhNTcsIDB4MzIyZWEzOGIp
LCBUT0JOKDB4ZTBiZjc5NzcsIDB4ODA0ZWY4YjUpfX0sCisgICAgICAgICB7e1RPQk4oMHgxYTBk
YWIyOCwgMHhjMDZmZWNlNCksIFRPQk4oMHhkNDA1OTkxZSwgMHg5NGU3YjQ5ZCksCisgICAgICAg
ICAgIFRPQk4oMHhjNTQyYjZkMiwgMHg3MDZkYWIyOCksIFRPQk4oMHhjYjIyOGRhMywgMHhhOTE2
MThmYil9LAorICAgICAgICAgIHtUT0JOKDB4MjI0ZTQxNjQsIDB4MTA3ZDFjZWEpLCBUT0JOKDB4
ZWI5ZmRhYjMsIDB4ZDBmNWQ4ZjEpLAorICAgICAgICAgICBUT0JOKDB4YzAyYmEzODYsIDB4MGQ2
ZTQxY2QpLCBUT0JOKDB4Njc2YTcyYzUsIDB4OWIxZjcxNDYpfX0sCisgICAgICAgICB7e1RPQk4o
MHhmZmQ2ZGQ5OCwgMHg0ZDZjYjAwYiksIFRPQk4oMHhjZWY5YzVjYSwgMHhkZTJlOGQ3YyksCisg
ICAgICAgICAgIFRPQk4oMHhhMWJiZjVkNywgMHg2NDFjNzkzNiksIFRPQk4oMHgxYjk1YjIzMCwg
MHhlZThmNzcyZSl9LAorICAgICAgICAgIHtUT0JOKDB4Zjc2NWE5MmUsIDB4ZThhYzI1YjEpLCBU
T0JOKDB4Y2ViMDRjZmMsIDB4M2ExOGI3YzYpLAorICAgICAgICAgICBUT0JOKDB4Mjc5NDRjZWYs
IDB4MGFjYzg5NjYpLCBUT0JOKDB4Y2JiM2M5NTcsIDB4NDM0YzEwMDQpfX0sCisgICAgICAgICB7
e1RPQk4oMHg5Yzk5NzFhMSwgMHhhNDNmZjkzYyksIFRPQk4oMHg1YmMyZGIxNywgMHhhMWUzNThh
OSksCisgICAgICAgICAgIFRPQk4oMHg0NWI0ODYyZSwgMHhhOGQ5YmM4MiksIFRPQk4oMHg3MGVi
ZmJmYiwgMHgyMjAxZTA1Mil9LAorICAgICAgICAgIHtUT0JOKDB4YWZkZjY0YzcsIDB4OTI4NzE1
OTEpLCBUT0JOKDB4ZWE1YmNhZTYsIDB4YjQyZDAyMTkpLAorICAgICAgICAgICBUT0JOKDB4ZGU1
MzZjNTUsIDB4MmFkOGYwM2MpLCBUT0JOKDB4Y2Q2YzNmNGQsIDB4YTc2YWEzM2MpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhiZWI1ZjYyMywgMHgwYmNhNmRlMyksIFRPQk4oMHhkZDIwZGQ5OSwgMHhi
MWU3MDZmZCksCisgICAgICAgICAgIFRPQk4oMHg5MGIzZmY5ZCwgMHhhYzkwNTlkNCksIFRPQk4o
MHgyZDdiMjkwMiwgMHg3Y2NjY2M0ZSl9LAorICAgICAgICAgIHtUT0JOKDB4OGEwOTBhNTksIDB4
Y2U5ODg0MGYpLCBUT0JOKDB4YTVkOTQ3ZTAsIDB4ODQxMDY4MGEpLAorICAgICAgICAgICBUT0JO
KDB4NDlhZTM0NmEsIDB4OTIzMzc5YTUpLCBUT0JOKDB4N2RiYzg0ZjksIDB4YjI4YTMxNTYpfX0s
CisgICAgICAgICB7e1RPQk4oMHhmZDQwZDkxNiwgMHg1NGExYWZmMiksIFRPQk4oMHhhYmYzMThi
YSwgMHgzYTc4ZmI5YiksCisgICAgICAgICAgIFRPQk4oMHg1MDE1MmVkOCwgMHgzMDI5Zjk1ZSks
IFRPQk4oMHg5ZmMxZGQ3NywgMHhjNThhZDdmYSl9LAorICAgICAgICAgIHtUT0JOKDB4NWZhNTc5
MTUsIDB4MTM1OTVjMTcpLCBUT0JOKDB4Yjk1MDQ2NjgsIDB4OGY2MmIzYTkpLAorICAgICAgICAg
ICBUT0JOKDB4OTA3YjViMjQsIDB4ZmYzMDU1YjApLCBUT0JOKDB4MmU5OTVlMzUsIDB4OWE4NGYx
MjUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4N2RhY2Y2OSwgMHg3ZTliYmNmYiksIFRPQk4oMHg5
NWQwYzFkNiwgMHhlODZkOTZlMyksCisgICAgICAgICAgIFRPQk4oMHg2NTcyNmUzYywgMHgyZDk1
YTc1YyksIFRPQk4oMHgyYzNjOTAwMSwgMHhhY2QyN2YyMSl9LAorICAgICAgICAgIHtUT0JOKDB4
MWRlYWI1NjEsIDB4NmM5NzNmNTcpLCBUT0JOKDB4MTA4YjdlMmMsIDB4YTUyMjE2NDMpLAorICAg
ICAgICAgICBUT0JOKDB4NWZlZTk4NTksIDB4YzRlZjc5ZDQpLCBUT0JOKDB4YmQ2MmI4OGEsIDB4
NDBkNGI4YzYpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNGRkMjljNCwgMHgxOTdjNzVkNiksIFRP
Qk4oMHgyNjZhNmRmMiwgMHhiNzA3NmZlYiksCisgICAgICAgICAgIFRPQk4oMHg5NTEyZDBlYSwg
MHg0YmYyZGYxMSksIFRPQk4oMHgxMzIwYzI0ZiwgMHg2YjBjYzllYyl9LAorICAgICAgICAgIHtU
T0JOKDB4NmJiMWUwZTEsIDB4MDFhNTk1OTYpLCBUT0JOKDB4ODMxN2M1YmIsIDB4ZWZmOWFhYWMp
LAorICAgICAgICAgICBUT0JOKDB4NjViYjQwNWUsIDB4Mzg1YWE2YzkpLCBUT0JOKDB4NjEzNDM5
YzEsIDB4OGYwNzk4OGYpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNzMwMDQ5ZiwgMHgxNmE2NmU5
MSksIFRPQk4oMHhlOTdmMjgyMCwgMHhmYTFiMGUwZCksCisgICAgICAgICAgIFRPQk4oMHg0MTMx
ZTAwMywgMHgzMDRjMjhlYSksIFRPQk4oMHg4MjBhYjczMiwgMHg1MjZiYWM2Mil9LAorICAgICAg
ICAgIHtUT0JOKDB4YjJhYzllZjksIDB4Mjg3MTQ0MjMpLCBUT0JOKDB4NTRlY2ZmZmEsIDB4YWRi
MTBjYjIpLAorICAgICAgICAgICBUT0JOKDB4ODc4MTQ3NmUsIDB4Zjg4NmE0Y2MpLCBUT0JOKDB4
NGIyYzg3YjUsIDB4ZGIyZjhkNDkpfX0sCisgICAgICAgICB7e1RPQk4oMHhlODU3Y2QyMCwgMHgw
YTQ0Mjk1ZCksIFRPQk4oMHg3MDdkN2QyMSwgMHg1OGM2YjA0NCksCisgICAgICAgICAgIFRPQk4o
MHhhZTg1MjFmOSwgMHhmNTk2NzU3YyksIFRPQk4oMHg4NzQ0OGYwMywgMHg2N2IyYjcxNCl9LAor
ICAgICAgICAgIHtUT0JOKDB4MTNhOWJjNDUsIDB4NWViY2Q1OGQpLCBUT0JOKDB4NzliY2NlZDks
IDB4OTEyMmQzYzEpLAorICAgICAgICAgICBUT0JOKDB4M2M2NDQyNDcsIDB4OWUwNzY2NDIpLCBU
T0JOKDB4MGNmMjI3NzgsIDB4MmRmNDc2N2QpfX0sCisgICAgICAgICB7e1RPQk4oMHg1ZTYxYWVl
NCwgMHg3MWQ0NDRiNiksIFRPQk4oMHgyMTEyMzZiZiwgMHhjNTA4NGExZCksCisgICAgICAgICAg
IFRPQk4oMHg3ZTE1YmM5YSwgMHg0ZmQzZWFmNiksIFRPQk4oMHg2OGRmMmMzNCwgMHhhYjYyMmJm
NSl9LAorICAgICAgICAgIHtUT0JOKDB4OWU2NzRmMGYsIDB4NTliZjRmMzYpLCBUT0JOKDB4Zjg4
MzY2OWIsIDB4ZDdmMzRkNzMpLAorICAgICAgICAgICBUT0JOKDB4YzQ4YWMxYjgsIDB4MzE0OTdi
MWQpLCBUT0JOKDB4MzIzYjkyNWQsIDB4NTEwNjcwM2IpfX0sCisgICAgICAgICB7e1RPQk4oMHgy
MjE1NmY0MiwgMHg3NDA4MjAwOCksIFRPQk4oMHhlZmZjNTIxYSwgMHhjODQ4MmJjYiksCisgICAg
ICAgICAgIFRPQk4oMHg1YzY4MzFiZiwgMHgxMjE3MzQ3OSksIFRPQk4oMHhjYWEyNTI4ZiwgMHhj
NDczOTQ5MCl9LAorICAgICAgICAgIHtUT0JOKDB4ODRkMjEwMmEsIDB4OGYxYjNjNGQpLCBUT0JO
KDB4Y2Y2NGRmYzEsIDB4MmQ5YmVjMGQpLAorICAgICAgICAgICBUT0JOKDB4NDMzZmViYWQsIDB4
NzhhNTQ2ZWYpLCBUT0JOKDB4MWY2MjFlYzMsIDB4N2I3M2NlZjEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg2YWVjZDYyNywgMHgzNzMzODYxNSksIFRPQk4oMHgxNjIwODJhYiwgMHgwMWQ4ZWRmNiks
CisgICAgICAgICAgIFRPQk4oMHg4MzNhODExOSwgMHgxOWU4NmI2NiksIFRPQk4oMHg2MDIzYTI1
MSwgMHhkMjk5YjVkYil9LAorICAgICAgICAgIHtUT0JOKDB4ZjViYjBjM2EsIDB4YmJmMDRiODkp
LCBUT0JOKDB4NjczNWViNjksIDB4YWU3NDlhNDQpLAorICAgICAgICAgICBUT0JOKDB4ZDBlMDU4
YzUsIDB4NDcxM2RlM2IpLCBUT0JOKDB4ZmRmMjU5M2UsIDB4MmMzZDRjY2QpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgxYjhmNDE0ZSwgMHhmZGQyMzY2NyksIFRPQk4oMHhkZDUyYWFjYSwgMHhmYTIw
MTVlZSksCisgICAgICAgICAgIFRPQk4oMHgzZTMxYjUxNywgMHhiZDk2MjVmZiksIFRPQk4oMHg1
ZWM5MzIyZCwgMHg4ZGI1OTE4Yyl9LAorICAgICAgICAgIHtUT0JOKDB4YmM3M2FjODUsIDB4YTk2
ZjUyOTQpLCBUT0JOKDB4ODJhYTViZjMsIDB4NjFhMDY2NmEpLAorICAgICAgICAgICBUT0JOKDB4
NDk3NTU4MTAsIDB4YmYwOGFjNDIpLCBUT0JOKDB4ZDIxY2RmZDUsIDB4ODkxY2VkZmMpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg5MThjYjU3YiwgMHg2N2Y4YmUxMCksIFRPQk4oMHgzNjVkMWE3Yywg
MHg1NmZmYTcyNiksCisgICAgICAgICAgIFRPQk4oMHgyNDM1YzUwNCwgMHg2NTMyZGU5MyksIFRP
Qk4oMHhjMGZjNWUxMCwgMHgyNjc0Y2QwMil9LAorICAgICAgICAgIHtUT0JOKDB4NmU1MWZjZjgs
IDB4OWNiYmIxNDIpLCBUT0JOKDB4MWQ0MzZlNWEsIDB4YWZjNTA2OTIpLAorICAgICAgICAgICBU
T0JOKDB4NzY2YmZmZmYsIDB4M2ZiY2FlMjIpLCBUT0JOKDB4MzE0OGMyZmQsIDB4ZmQ1NWQzYjgp
fX0sCisgICAgICAgICB7e1RPQk4oMHg1MmM3ZmRjOSwgMHgyMzMyMjJmYSksIFRPQk4oMHg4OWZm
MTA5MiwgMHhlNDE5ZmI2YiksCisgICAgICAgICAgIFRPQk4oMHgzY2Q2ZGI5OSwgMHgyNTI1NDk3
NyksIFRPQk4oMHgyZTg1YTE2MSwgMHgxY2YxMmNhNyl9LAorICAgICAgICAgIHtUT0JOKDB4YWRk
MjU0N2MsIDB4ZGM4MTBiYzkpLCBUT0JOKDB4ZWEzZjQ1OGYsIDB4OWQyNTdjMjIpLAorICAgICAg
ICAgICBUT0JOKDB4NjQyYzFmYmUsIDB4MjdkNmIxOWIpLCBUT0JOKDB4ZWQwN2U2YjUsIDB4MTQw
NDgxYTYpfX0sCisgICAgICAgICB7e1RPQk4oMHg2YWRhMWQ0MiwgMHg4NmQyZTBmOCksIFRPQk4o
MHhlNTkyMDEyMiwgMHgwZThhOWZkNSksCisgICAgICAgICAgIFRPQk4oMHgwMmM5MzZhZiwgMHg3
MDhjMWI0OSksIFRPQk4oMHg2MGYzMGZlZSwgMHgyYjRiZmFmZil9LAorICAgICAgICAgIHtUT0JO
KDB4NjYzN2FkMDYsIDB4ODU4ZTZhNjEpLCBUT0JOKDB4Y2U0Yzc3NjcsIDB4M2ZkMzc0ZDApLAor
ICAgICAgICAgICBUT0JOKDB4MzlkNTRiMmQsIDB4NzE4OGRlZmIpLCBUT0JOKDB4YThjOWQyNTAs
IDB4ZjU2YTZiNjYpfX0sCisgICAgICAgICB7e1RPQk4oMHg1OGZjMGY1ZSwgMHhiMjRmZTFkYyks
IFRPQk4oMHg5ZWFmOWRlZSwgMHg2YjczZjI0YyksCisgICAgICAgICAgIFRPQk4oMHhhOTBkNTg4
YiwgMHgzMzY1MDcwNSksIFRPQk4oMHhkZTViNjJjNSwgMHhhZjJlYzcyOSl9LAorICAgICAgICAg
IHtUT0JOKDB4NWM3MmNmYWUsIDB4ZDNjMmIzNmUpLCBUT0JOKDB4ODY4YzE5ZDUsIDB4MDM0NDM1
ZGEpLAorICAgICAgICAgICBUT0JOKDB4ODg2MDVmOTMsIDB4ZTE3ZWUxNDUpLCBUT0JOKDB4YWE2
MGM0ZWUsIDB4NzdhNWQ1YjEpfX0sCisgICAgICAgICB7e1RPQk4oMHhiY2Y1YmZkMiwgMHgzYjYw
YzQ3MiksIFRPQk4oMHhhZjRlZjEzYywgMHhlYjFkMzA0OSksCisgICAgICAgICAgIFRPQk4oMHgz
NzNmNDRmYywgMHhlMTM4OTVjOSksIFRPQk4oMHhmMjliMzgyZiwgMHgwY2JjOTgyMil9LAorICAg
ICAgICAgIHtUT0JOKDB4MWJmY2I4NTMsIDB4NzNlZmFlZjYpLCBUT0JOKDB4Y2Y1NmFjOWMsIDB4
YThjOTZmNDApLAorICAgICAgICAgICBUT0JOKDB4ZDdhZGYxMDksIDB4N2ExOTFlMjQpLCBUT0JO
KDB4OTgwMzVmNDQsIDB4YmY4YThkYzIpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNDBhNzFiOSwg
MHgxZTc1MGM4NCksIFRPQk4oMHhjNTdmN2IwYywgMHg1ZGM2YzQ2OSksCisgICAgICAgICAgIFRP
Qk4oMHg0OWEwZTc5YywgMHg2ZmJjMTljMSksIFRPQk4oMHg2YjBmNTg4OSwgMHhhNDhlYmRiOCl9
LAorICAgICAgICAgIHtUT0JOKDB4NWQzZmQwODQsIDB4YTA3YzRlOWYpLCBUT0JOKDB4YzM4MzAx
MTEsIDB4YWIyN2RlMTQpLAorICAgICAgICAgICBUT0JOKDB4MGU0OTI5ZmUsIDB4MzNlMDhkY2Mp
LCBUT0JOKDB4ZjRhNWFkMjQsIDB4NDBiYjczYTMpfX0sCisgICAgICAgICB7e1RPQk4oMHhkZTg2
YzJiZiwgMHg0OTBmOTdjYSksIFRPQk4oMHgyODhmMDljNiwgMHg2N2ExY2UxOCksCisgICAgICAg
ICAgIFRPQk4oMHgzNjRiYjg4NiwgMHgxODQ0NDc4ZCksIFRPQk4oMHg3ODQwZmE0MiwgMHhjZWVk
YjA0MCl9LAorICAgICAgICAgIHtUT0JOKDB4MTI2OWZkZDIsIDB4NWE2MzFiMzcpLCBUT0JOKDB4
OTQ3NjFmMWUsIDB4YTQ3YzhiN2QpLAorICAgICAgICAgICBUT0JOKDB4ZmMwYzJlMTcsIDB4NDgx
YzYyNjYpLCBUT0JOKDB4ODVlMTZlYTIsIDB4M2RhYTVmYTcpfX0sCisgICAgICAgICB7e1RPQk4o
MHhjY2Q4NjAzMywgMHg5MjQ5MTA0OCksIFRPQk4oMHgwYzJmNjk2MywgMHhmNGQ0MDJkNyksCisg
ICAgICAgICAgIFRPQk4oMHg2MzM2ZjdkZiwgMHhkZjZhODY1YyksIFRPQk4oMHgwYTJhNDYzYywg
MHhiNWMwMmE4Nyl9LAorICAgICAgICAgIHtUT0JOKDB4YjBlMjliZTcsIDB4YmYyZjEyZWUpLCBU
T0JOKDB4ZjBhMjIwMDIsIDB4NjZiYWQ5ODgpLAorICAgICAgICAgICBUT0JOKDB4MjdmODdlMDMs
IDB4OTEyM2MxZDcpLCBUT0JOKDB4MjE2NjljNTUsIDB4MzI4YThjOTgpfX0sCisgICAgICAgICB7
e1RPQk4oMHgxODZiOTgwMywgMHg5MmYxNDUyOSksIFRPQk4oMHhkM2QwNTZjYywgMHg2Mzk1NGRm
MyksCisgICAgICAgICAgIFRPQk4oMHgyZjAzZmQ1OCwgMHgxNzVhNDZmNiksIFRPQk4oMHg2M2Uz
NGViZSwgMHgxMTU1ODU1OCl9LAorICAgICAgICAgIHtUT0JOKDB4ZTEzZmVkZWUsIDB4NWI4MGNm
YTUpLCBUT0JOKDB4ZTg3MmExMjAsIDB4ZDQwMWRiZDEpLAorICAgICAgICAgICBUT0JOKDB4NTI2
NTc2MTYsIDB4ZThhOWQ2NjcpLCBUT0JOKDB4YmM4ZGE0YjYsIDB4ZTA4ZDY2OTMpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgzNzBmYjliYiwgMHgxYjcwM2U3NSksIFRPQk4oMHg2NzczYjE4NiwgMHhk
NDMzODM2MyksCisgICAgICAgICAgIFRPQk4oMHgxOGRhZDM3OCwgMHhlY2VmN2JmZiksIFRPQk4o
MHhhYWM3ODdlZCwgMHg5OTU2NzdkYSl9LAorICAgICAgICAgIHtUT0JOKDB4NDgwMWVhOGIsIDB4
MDQzNzE2NGIpLCBUT0JOKDB4ZjQzMGFkMjAsIDB4NzNmZTc5NWUpLAorICAgICAgICAgICBUT0JO
KDB4YjE2NDE1NGQsIDB4OGVlNWViNzMpLCBUT0JOKDB4MDg4NGVjZDgsIDB4MTA4ZjdjMGUpfX0s
CisgICAgICAgICB7e1RPQk4oMHgwZTZlYzA5NiwgMHg1ZjUyMDY5OCksIFRPQk4oMHg2NDA2MzFm
ZSwgMHg0NGY3YjhkOSksCisgICAgICAgICAgIFRPQk4oMHg5MmZkMzRmYywgMHhhMzVhNjhiOSks
IFRPQk4oMHg5YzVhNGI2NiwgMHg0ZDQwY2Y0ZSl9LAorICAgICAgICAgIHtUT0JOKDB4OTQ5NDU0
YmYsIDB4ODBiNjc4M2QpLCBUT0JOKDB4ODBlNzAxZmUsIDB4M2EzMjBhMTApLAorICAgICAgICAg
ICBUT0JOKDB4OGQxYTU2NGEsIDB4MWEwYTM5YjIpLCBUT0JOKDB4MTQzNmQ1M2QsIDB4MzIwNTg3
ZGIpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNTA5NmU2ZCwgMHg2NTU2YzM2MiksIFRPQk4oMHhi
YzIzYTNjMCwgMHhlMjQ1NWQ3ZSksCisgICAgICAgICAgIFRPQk4oMHgzYTdhZWU1NCwgMHg4MDcy
MzBmOSksIFRPQk4oMHg5YmExY2ZhNiwgMHgyMmFlODJmZCl9LAorICAgICAgICAgIHtUT0JOKDB4
ODMzYTA1N2EsIDB4OTljNWQ3MDYpLCBUT0JOKDB4OGJlODVmNGIsIDB4ODQyMzE1YzkpLAorICAg
ICAgICAgICBUT0JOKDB4ZDA4MzE3OWEsIDB4NjZhNzJmMTIpLCBUT0JOKDB4MmZjNzdkNWQsIDB4
Y2RjYzczY2QpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMmI4OGE4MCwgMHg1NjE2ZWUzMCksIFRP
Qk4oMHhmYjA5NTQ4ZiwgMHhlN2FiMTA4MyksCisgICAgICAgICAgIFRPQk4oMHg4YWQ2YWIwZCwg
MHg1MTEyNzBjZCksIFRPQk4oMHg2MWY2YzU3YSwgMHg2OTI0ZDlhYil9LAorICAgICAgICAgIHtU
T0JOKDB4YTBmN2JmNzIsIDB4OTBhZWNiMDgpLCBUT0JOKDB4ODQ5Zjg3YzksIDB4MGRmNzg0YTQp
LAorICAgICAgICAgICBUT0JOKDB4MjdjNzljMTUsIDB4Y2ZhZjFkMDMpLCBUT0JOKDB4YmJmOWY2
NzUsIDB4YzQ2M2ZhY2UpfX0sCisgICAgICAgICB7e1RPQk4oMHg5MTUwMmM2NSwgMHg3NjViYTU0
MyksIFRPQk4oMHgxOGNlM2NhYywgMHg0MmVhNjBkZCksCisgICAgICAgICAgIFRPQk4oMHhlNWNl
ZTZhYywgMHg2ZTQzZWNiMyksIFRPQk4oMHg2M2U0ZTkxMCwgMHg2OGYyYWVlYil9LAorICAgICAg
ICAgIHtUT0JOKDB4MjYyMzRmYTMsIDB4Yzg1OTMyZWUpLCBUT0JOKDB4OTY4ODNlOGIsIDB4NGM5
MGM0NGQpLAorICAgICAgICAgICBUT0JOKDB4MjliOWU3MzgsIDB4YTE4YTUwZjYpLCBUT0JOKDB4
YmZjNjJiMmEsIDB4M2YwNDIwZGYpfX0sCisgICAgICAgICB7e1RPQk4oMHhkMjJhN2Q5MCwgMHg2
ZDNlMWZhOSksIFRPQk4oMHgxNzExNTYxOCwgMHhmZTA1YjhhMyksCisgICAgICAgICAgIFRPQk4o
MHgyYTBjOTkyNiwgMHhiYjJiOWMwMSksIFRPQk4oMHhjNzM5ZmNjNiwgMHhlMDdlNzZhMil9LAor
ICAgICAgICAgIHtUT0JOKDB4NTQwZTkxNTcsIDB4MTY1ZTQzOWEpLCBUT0JOKDB4MDYzNTNhNjIs
IDB4NmE5MDYzZDgpLAorICAgICAgICAgICBUT0JOKDB4ODRkOTU1OTQsIDB4NjFlOTI3YTMpLCBU
T0JOKDB4MDEzYjliMjYsIDB4ZTJlMGJlN2YpfX0sCisgICAgICAgICB7e1RPQk4oMHg0ZmVhZWMz
YiwgMHg5NzM0OTdmMSksIFRPQk4oMHgxNWMwZjk0ZSwgMHgwOTNlYmMyZCksCisgICAgICAgICAg
IFRPQk4oMHg2YWY1ZjIyNywgMHgzM2FmMDU4MyksIFRPQk4oMHgwYzJhZjIwNiwgMHhjNjFmMzM0
MCl9LAorICAgICAgICAgIHtUT0JOKDB4ZDI1ZGJkZjEsIDB4NDQ1NzM5N2MpLCBUT0JOKDB4MmU4
ZWQwMTcsIDB4Y2FiY2JhZTApLAorICAgICAgICAgICBUT0JOKDB4ZTMwMTA5MzgsIDB4YzI4MTUz
MDYpLCBUT0JOKDB4YmFhOTkzMzcsIDB4ZThjNmNkNjgpfX0sCisgICAgICAgICB7e1RPQk4oMHgw
ODUxMzE4MiwgMHgzYjBlYzdkZSksIFRPQk4oMHgxZTFiODIyYiwgMHg1OGRmMDVkZiksCisgICAg
ICAgICAgIFRPQk4oMHg1YzE0ODQyZiwgMHhhNWMzYjY4MyksIFRPQk4oMHg5OGZlOTc3ZSwgMHgz
ZWJhMzRjZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZmQyMzE2YzIsIDB4MGQ1ZTg4NzMpLCBUT0JO
KDB4ZTQ4ZDgzOWEsIDB4YmQwZDQyN2QpLAorICAgICAgICAgICBUT0JOKDB4NDk1YjIyMTgsIDB4
NjIzZmM5NjEpLCBUT0JOKDB4MjRlZTU2ZTcsIDB4YjQ2ZmJhNWUpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg5MTg0YTU1YiwgMHg5MWU0ZGU1OCksIFRPQk4oMHhhNzQ4OGNhNSwgMHhkZmRlYTI4OCks
CisgICAgICAgICAgIFRPQk4oMHhhNzIzODYyZSwgMHhhOGRjYzk0MyksIFRPQk4oMHg5MmQ3NjJi
MiwgMHg4NDlkYzBmYyl9LAorICAgICAgICAgIHtUT0JOKDB4M2M0NDRhMTIsIDB4MDkxZmY0YTkp
LCBUT0JOKDB4NTgxMTEzZmEsIDB4MGNhZGEyNzQpLAorICAgICAgICAgICBUT0JOKDB4YjlkZTBh
NDUsIDB4MzBkOGVhZTIpLCBUT0JOKDB4NWUwZmNkODUsIDB4ZGY2YjQxZWEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg2MjMzZWE2OCwgMHhjMDk0ZGJiNSksIFRPQk4oMHhiNzdkMDYyZSwgMHhkOTY4
ZDQxMCksCisgICAgICAgICAgIFRPQk4oMHgzZTcxOWJiYywgMHg1OGIzMDAyZCksIFRPQk4oMHg2
OGU3ZGQzZCwgMHgzZGM0OWQ1OCl9LAorICAgICAgICAgIHtUT0JOKDB4OGQ4MjU3NDAsIDB4MDEz
YTVlNTgpLCBUT0JOKDB4MjEzMTE3NDcsIDB4M2M5ZTNjMWIpLAorICAgICAgICAgICBUT0JOKDB4
MGNiMGEyYTcsIDB4N2M5OWI2YWIpLCBUT0JOKDB4NWM0OGEzYjMsIDB4YzJmODg4ZjIpfX19LAor
ICAgICAgICB7e3tUT0JOKDB4Yzc5MTNlOTEsIDB4OTkxNzI0ZjMpLCBUT0JOKDB4NWVkYTc5OWMs
IDB4MzljYmQ2ODYpLAorICAgICAgICAgICBUT0JOKDB4ZGRiNTk1YzcsIDB4NjNkNGZjMWUpLCBU
T0JOKDB4NmI2M2I4MGIsIDB4YWM0ZmVkNTQpfSwKKyAgICAgICAgICB7VE9CTigweDZlYTBmYzY5
LCAweDdlNWZiNTE2KSwgVE9CTigweDczNzcwOGJhLCAweGQwZjFjOTY0KSwKKyAgICAgICAgICAg
VE9CTigweDk2Mjg3NDVmLCAweDExYTkyY2E1KSwgVE9CTigweDYxZjM3OTU4LCAweDlhODY5Njdh
KX19LAorICAgICAgICAge3tUT0JOKDB4OWFmMzliMmMsIDB4YWE2NjUwNzIpLCBUT0JOKDB4Nzgz
MjJmYTQsIDB4ZWZkMzI0ZWYpLAorICAgICAgICAgICBUT0JOKDB4M2QxNTMzOTQsIDB4YzMyN2Jk
MzEpLCBUT0JOKDB4ODFkNWYyNzEsIDB4MzEyOWRhYjApfSwKKyAgICAgICAgICB7VE9CTigweGM3
MmUwYzQyLCAweGY0ODAyN2Y1KSwgVE9CTigweGFhNDBjZGJjLCAweDg1MzZlNzE3KSwKKyAgICAg
ICAgICAgVE9CTigweGY0NWE2NTdhLCAweDJkMzY5ZDBmKSwgVE9CTigweGIwM2JiZmM0LCAweGVh
N2Y3NGU2KX19LAorICAgICAgICAge3tUT0JOKDB4NDZhOGM0MTgsIDB4MGQ3MzhkZWQpLCBUT0JO
KDB4NmYxYTViYjAsIDB4ZTBkZTU3MjkpLAorICAgICAgICAgICBUT0JOKDB4ZjEwMjMwYjksIDB4
OGJhODE2NzUpLCBUT0JOKDB4MzJjNmYzMGMsIDB4MTEyYjMzZDQpfSwKKyAgICAgICAgICB7VE9C
TigweDc1NTkxMjlkLCAweGQ4ZmZmYjYyKSwgVE9CTigweDZhMjgxYjQ3LCAweGI0NTliZjA1KSwK
KyAgICAgICAgICAgVE9CTigweDc3YzFiZDNhLCAweGZhM2I2Nzc2KSwgVE9CTigweDA3MDliMzgw
LCAweDc4Mjk5NzNhKX19LAorICAgICAgICAge3tUT0JOKDB4OGMyNmIyMzIsIDB4YTMzMjY1MDUp
LCBUT0JOKDB4MzhkNjkyNzIsIDB4ZWUxZDQxYmYpLAorICAgICAgICAgICBUT0JOKDB4MDQ1OTQ1
M2UsIDB4ZmZlMzJhZmEpLCBUT0JOKDB4Y2U4MTQzYWQsIDB4N2NiM2VhODcpfSwKKyAgICAgICAg
ICB7VE9CTigweDkzMmVjMWZhLCAweDdlNmFiNjY2KSwgVE9CTigweDZjZDJkMjMwLCAweDIyMjg2
MjY0KSwKKyAgICAgICAgICAgVE9CTigweDQ1OWE0NmZlLCAweDY3MzZmOGVkKSwgVE9CTigweDUw
YmYwZDAwLCAweDllY2E4NWJiKX19LAorICAgICAgICAge3tUT0JOKDB4MGI4MjU4NTIsIDB4ODc3
YTIxZWMpLCBUT0JOKDB4MzAwNDE0YTcsIDB4MGY1MzdhOTQpLAorICAgICAgICAgICBUT0JOKDB4
M2YxY2JhNDAsIDB4MjFhOWE2YTIpLCBUT0JOKDB4NTA4MjRlZWUsIDB4NzY5NDNjMDApfSwKKyAg
ICAgICAgICB7VE9CTigweGEwZGJmY2VjLCAweGY4M2NiYTVkKSwgVE9CTigweGY5NTM4MTQ4LCAw
eDkzYjRmM2MwKSwKKyAgICAgICAgICAgVE9CTigweDYxNzQ0MTYyLCAweDQ4ZjI0ZGQ3KSwgVE9C
TigweDUzMjJkNjRkLCAweGU0ZmIwOWRkKX19LAorICAgICAgICAge3tUT0JOKDB4NTc0NDczODQs
IDB4M2Q5MzI1ZjMpLCBUT0JOKDB4YTliZWYyZDAsIDB4ZjM3MWNiODQpLAorICAgICAgICAgICBU
T0JOKDB4NzdkMjE4OGIsIDB4YTYxZTM2YzUpLCBUT0JOKDB4YmJkNmE3ZDcsIDB4YzYwMmRmNzIp
fSwKKyAgICAgICAgICB7VE9CTigweGJhM2FhOTAyLCAweDhmNjFiYzBiKSwgVE9CTigweGY0OTA4
NWVkLCAweDZlZDBiNmExKSwKKyAgICAgICAgICAgVE9CTigweDhiYzYyNWQ2LCAweGFlNmU4Mjk4
KSwgVE9CTigweDgzMmIwYjFkLCAweGEyZTljMDFkKX19LAorICAgICAgICAge3tUT0JOKDB4YTMz
N2M0NDcsIDB4ZjFmMGNlZDEpLCBUT0JOKDB4ODAwY2M3OTMsIDB4OTQ5MmRkMmIpLAorICAgICAg
ICAgICBUT0JOKDB4NGI5MzE1MWQsIDB4YmVhMDhlZmEpLCBUT0JOKDB4ODIwY2YzZjgsIDB4ZGUw
YTc0MWUpfSwKKyAgICAgICAgICB7VE9CTigweGZmMTk4MmRjLCAweDFjMGY3ZDEzKSwgVE9CTigw
eGVmOTIxOTYwLCAweDg0ZGRlNmNhKSwKKyAgICAgICAgICAgVE9CTigweDFhZDdkOTcyLCAweDQ1
Zjk2ZWUzKSwgVE9CTigweDMxOWM4ZGJlLCAweDI5ZGVhMGM3KX19LAorICAgICAgICAge3tUT0JO
KDB4ZDNlYTM4NzEsIDB4N2I4MmI5OWIpLCBUT0JOKDB4NzU5MjJkNGQsIDB4NDcwZWI2MjQpLAor
ICAgICAgICAgICBUT0JOKDB4OGY2NmVjNTQsIDB4M2I5NWQ0NjYpLCBUT0JOKDB4NjZlNjczY2Ms
IDB4YmVlMWUzNDYpfSwKKyAgICAgICAgICB7VE9CTigweDZhZmU2N2M0LCAweGI1ZjJiODlhKSwg
VE9CTigweDNkZTljMWU2LCAweDI5MGU1Y2QzKSwKKyAgICAgICAgICAgVE9CTigweDhjMjc4YmI2
LCAweDMxMGEyYWRhKSwgVE9CTigweDQyMGZhMzg0LCAweDBiZGIzMjNiKX19LAorICAgICAgICAg
e3tUT0JOKDB4MGFlMWQ2M2IsIDB4MGViOTE5YjApLCBUT0JOKDB4ZDc0ZWU1MWQsIDB4YTc0Yjk2
MjApLAorICAgICAgICAgICBUT0JOKDB4Mzk1NDU4ZDAsIDB4YTY3NDI5MGMpLCBUT0JOKDB4MzI0
YzkzMGYsIDB4NDYyMGE1MTApfSwKKyAgICAgICAgICB7VE9CTigweDJkMWY0ZDE5LCAweGZiYWMy
N2Q0KSwgVE9CTigweDQwODZlOGNhLCAweDliZWRlZWFjKSwKKyAgICAgICAgICAgVE9CTigweDBj
ZGQyMTFiLCAweDliNjc5YWI4KSwgVE9CTigweDU5NzAxNjdkLCAweDcwOTBmZWM0KX19LAorICAg
ICAgICAge3tUT0JOKDB4MzQyMGYyYzksIDB4ZmFmMWZjNjMpLCBUT0JOKDB4NjE2ZDMzM2EsIDB4
MzI4YzhiYjQpLAorICAgICAgICAgICBUT0JOKDB4N2Q2NTM2NGMsIDB4NTdmMWZlNGEpLCBUT0JO
KDB4OTM0M2U4NzcsIDB4NTVlNWM3M2EpfSwKKyAgICAgICAgICB7VE9CTigweDU3OTUxNzZiLCAw
eGU5NzBlNzhjKSwgVE9CTigweGEzNmNjZWJmLCAweDYwNTMzNjI3KSwKKyAgICAgICAgICAgVE9C
TigweGZjN2M3MzgwLCAweDA5Y2RmYzFiKSwgVE9CTigweGIzOWEyYWZlLCAweGIzZmVjMzI2KX19
LAorICAgICAgICAge3tUT0JOKDB4YjdmZjFiYTEsIDB4NjIyNDQwOGEpLCBUT0JOKDB4Y2M4NTZl
OTIsIDB4MjQ3Y2ZjNWUpLAorICAgICAgICAgICBUT0JOKDB4MDFmMTAyZTcsIDB4YzE4YmM0OTMp
LCBUT0JOKDB4NDYxM2FiNzQsIDB4MjA5MWM3MjcpfSwKKyAgICAgICAgICB7VE9CTigweGFhMjVl
ODljLCAweGM0MjBiZjJiKSwgVE9CTigweDAwYTUzMTc2LCAweDkwMzM3ZWMyKSwKKyAgICAgICAg
ICAgVE9CTigweGQyYmU5ZjQzLCAweDdkMDI1ZmM3KSwgVE9CTigweDMzMTZmYjg1LCAweDZlNmZl
M2RjKX19LAorICAgICAgICAge3tUT0JOKDB4Mjc1MjBhZjUsIDB4OWFjNTA4MTQpLCBUT0JOKDB4
ZmRmOTVlNzgsIDB4OWE4ZTQyMjMpLAorICAgICAgICAgICBUT0JOKDB4YjdlN2RmMmEsIDB4NTZi
ZWM1YTApLCBUT0JOKDB4ZjcwMjJmN2QsIDB4ZGYxNTllNWQpfSwKKyAgICAgICAgICB7VE9CTigw
eDkzZWVlYWIxLCAweGNhYzFmZThmKSwgVE9CTigweDgwNDAxODhjLCAweDM3NDUxMTY4KSwKKyAg
ICAgICAgICAgVE9CTigweDdlZThhYThhLCAweGQ5NjdkY2U2KSwgVE9CTigweGZhMGU3OWU3LCAw
eDNhYmM5Mjk5KX19LAorICAgICAgICAge3tUT0JOKDB4NjczMzJjZmMsIDB4MjA2NGNmZDEpLCBU
T0JOKDB4MzM5YzMxZGUsIDB4YjA2NTE5MzQpLAorICAgICAgICAgICBUT0JOKDB4NzE5YjI4ZDUs
IDB4MmEzYmNiZWEpLCBUT0JOKDB4ZWU3NGM4MmIsIDB4OWQ2YWU1YzYpfSwKKyAgICAgICAgICB7
VE9CTigweDA5MjdkMDVlLCAweGJhZjI4ZWU2KSwgVE9CTigweDgyY2VjZjJjLCAweDlkNzE5MDI4
KSwKKyAgICAgICAgICAgVE9CTigweDBiMGQzNTNlLCAweGRkYjMwMjg5KSwgVE9CTigweGZlNGJi
OTc3LCAweGZkZGIyZTI5KX19LAorICAgICAgICAge3tUT0JOKDB4YmI1YmI5OTAsIDB4NjQwYmZk
OWUpLCBUT0JOKDB4ZDIyNmUyNzcsIDB4ODJmNjIxMDgpLAorICAgICAgICAgICBUT0JOKDB4NGJm
MDA5ODUsIDB4MDJmZmRkNTYpLCBUT0JOKDB4Nzc1Njc1OGEsIDB4MmNhMWIxYjUpfSwKKyAgICAg
ICAgICB7VE9CTigweGMzMmI2MmEzLCAweDUyODVmZTkxKSwgVE9CTigweGVkYmM1NDZhLCAweDhj
OWNkMTQwKSwKKyAgICAgICAgICAgVE9CTigweDFlNDdhMDEzLCAweGFmNWNiMDA4KSwgVE9CTigw
eGJjYTdlNzIwLCAweDA3M2NlOGYyKX19LAorICAgICAgICAge3tUT0JOKDB4ZTEwYjJhYjgsIDB4
MTdhOTFjYWUpLCBUT0JOKDB4Yjg5YWFiNjUsIDB4MDhlMjdmNjMpLAorICAgICAgICAgICBUT0JO
KDB4N2IzMDc0YTcsIDB4ZGJhM2RkZjkpLCBUT0JOKDB4MWMyMGNlMDksIDB4MzMwYzI5NzIpfSwK
KyAgICAgICAgICB7VE9CTigweDZiOTkxN2I0LCAweDVmY2Y3ZTMzKSwgVE9CTigweGU2NzkzNzQz
LCAweDk0NWNlYjQyKSwKKyAgICAgICAgICAgVE9CTigweDE4ZmMyMjE1LCAweDVjNjMzZDE5KSwg
VE9CTigweGFkMWFkYjNjLCAweGM3NDg1NDc0KX19LAorICAgICAgICAge3tUT0JOKDB4NjQ2Zjk2
NzksIDB4NjQyNGM0OWIpLCBUT0JOKDB4Zjg4OGRmZTgsIDB4NjdjMjQxYzkpLAorICAgICAgICAg
ICBUT0JOKDB4ZTEyZDRiOTMsIDB4MjRmNjhiNDkpLCBUT0JOKDB4OWE2YjYyZDgsIDB4YTU3MWRm
MjApfSwKKyAgICAgICAgICB7VE9CTigweDgxYjRiMjZkLCAweDE3OTQ4M2NiKSwgVE9CTigweDY2
NmY5NjMyLCAweDk1MTFmYWUyKSwKKyAgICAgICAgICAgVE9CTigweGQyODFiM2U0LCAweGQ1M2Fh
NTFmKSwgVE9CTigweDdmOTZhNzY1LCAweDdmM2RiZDE2KX19LAorICAgICAgICAge3tUT0JOKDB4
YTdmOGI1YmYsIDB4MDc0YTMwY2UpLCBUT0JOKDB4ZDdmNTIxMDcsIDB4MDA1YTMyZTYpLAorICAg
ICAgICAgICBUT0JOKDB4NmY5ZTA5MDcsIDB4NTAyMzdlZDQpLCBUT0JOKDB4MmYyMWRhNDcsIDB4
ODA5NmZhMmIpfSwKKyAgICAgICAgICB7VE9CTigweGYzZTE5Y2I0LCAweGVlYzg2M2EwKSwgVE9C
TigweGQxOGY3N2ZkLCAweDk1Mjc2MjBhKSwKKyAgICAgICAgICAgVE9CTigweDk1MDVjODFjLCAw
eDQwN2MxY2Y4KSwgVE9CTigweDk5OThkYjRlLCAweDFiNmVjMjg0KX19LAorICAgICAgICAge3tU
T0JOKDB4N2UzMzg5ZTUsIDB4YzI0N2Q0NGQpLCBUT0JOKDB4MTI1MDcxNDEsIDB4M2Y0ZjNkODAp
LAorICAgICAgICAgICBUT0JOKDB4ZDRiYTAxMTAsIDB4NGE3OGE2YzcpLCBUT0JOKDB4MzEyODc0
YTAsIDB4NzY3NzIwYmUpfSwKKyAgICAgICAgICB7VE9CTigweGRlZDA1OWE2LCAweDc1OTQ0Mzcw
KSwgVE9CTigweGQ2MTIzZDkwLCAweDNiMmMwYmRkKSwKKyAgICAgICAgICAgVE9CTigweGE1NmI3
MTdiLCAweDUxYzEwOGUzKSwgVE9CTigweDliYjc5NDBlLCAweDA3MDYyM2U5KX19LAorICAgICAg
ICAge3tUT0JOKDB4Nzk0ZTJkNTksIDB4ODRhYzA2NmMpLCBUT0JOKDB4ZjU5NTRhOTIsIDB4ZTY4
YzY5YTApLAorICAgICAgICAgICBUT0JOKDB4MjhjNTI0NTgsIDB4NGZkOTlkY2MpLCBUT0JOKDB4
NjBlNjM5ZmMsIDB4YjEwMTI1MTcpfSwKKyAgICAgICAgICB7VE9CTigweGMyZTYwMTI1LCAweDdk
ZTc5MjQ4KSwgVE9CTigweGU5ZWY2NDA0LCAweGYxMmZjNmQ3KSwKKyAgICAgICAgICAgVE9CTigw
eDRjNGYyODA4LCAweDJhM2I1ZDMyKSwgVE9CTigweDg2NWFkMzJlLCAweGM3NjhlYjhhKX19LAor
ICAgICAgICAge3tUT0JOKDB4YWMwMjMzMWIsIDB4MTNmYjcwYjYpLCBUT0JOKDB4MDM3YjQ0YzEs
IDB4OTU1OTliMjcpLAorICAgICAgICAgICBUT0JOKDB4MWE4NjBmYzQsIDB4NjBiZDA4MmMpLCBU
T0JOKDB4YTJlMjU3NDUsIDB4Yzk4MGNkMDEpfSwKKyAgICAgICAgICB7VE9CTigweGVlMzM4N2E4
LCAweDFkYTAyNjNlKSwgVE9CTigweDkzMWJmYjk1LCAweDJkMTBmM2Q2KSwKKyAgICAgICAgICAg
VE9CTigweDViNjg3MjcwLCAweGExZjI0YTMyKSwgVE9CTigweGYxNDBlNjVkLCAweGNhNDk0Yjg2
KX19LAorICAgICAgICAge3tUT0JOKDB4NGY0ZGRmOTEsIDB4YjJmMWFjN2EpLCBUT0JOKDB4Zjk5
ZWFhYmIsIDB4NzYwZmVlMjcpLAorICAgICAgICAgICBUT0JOKDB4NTdmNDAwOGEsIDB4NDljMjI4
ZTUpLCBUT0JOKDB4MDkwYmU0NDAsIDB4MWNmNzEzYmIpfSwKKyAgICAgICAgICB7VE9CTigweGFj
OTFmYmU0LCAweDUwMDRmMDIyKSwgVE9CTigweGQ4MzhjMmMyLCAweDU2OWUxYWY2KSwKKyAgICAg
ICAgICAgVE9CTigweGQ2YzdkMjBiLCAweDBmMWRhYWE1KSwgVE9CTigweGFhMDYzYWMxLCAweDFi
YmIwMmMwKX19LAorICAgICAgICAge3tUT0JOKDB4MDkzOGE0MjIsIDB4NTk1NThhNzgpLCBUT0JO
KDB4NTM0M2M2NjksIDB4ODQzNWRhMmYpLAorICAgICAgICAgICBUT0JOKDB4OTZmNjdiMTgsIDB4
MDM0NDEwZGMpLCBUT0JOKDB4N2NjMWU0MjQsIDB4ODQ1MTA4MDQpfSwKKyAgICAgICAgICB7VE9C
TigweDg2YTE1NDNmLCAweDE2ZGZiYjdkKSwgVE9CTigweDkyMWZhOTQyLCAweDViNWJkNTkyKSwK
KyAgICAgICAgICAgVE9CTigweDlkY2NjYjZlLCAweGIzM2RkMDNjKSwgVE9CTigweDg1ODFkZGQ5
LCAweGI4NDNmNTFlKX19LAorICAgICAgICAge3tUT0JOKDB4NTQ5MzVmY2IsIDB4ODFkNzNjOWUp
LCBUT0JOKDB4NmQwN2U5NzksIDB4MGE1ZTk3YWIpLAorICAgICAgICAgICBUT0JOKDB4NGRjN2Iz
MGEsIDB4Y2YzYTZiYWIpLCBUT0JOKDB4MTQ3YWIxZjMsIDB4MTcwYmVlMTEpfSwKKyAgICAgICAg
ICB7VE9CTigweDBhYWY4ZTNkLCAweDlmYWZkZWU0KSwgVE9CTigweGZhYjNkYmNiLCAweDUzOGE4
Yjk1KSwKKyAgICAgICAgICAgVE9CTigweDQwNWRmNGIzLCAweDZlZjEzODcxKSwgVE9CTigweGYx
ZjRlOWNiLCAweDA4OGQ1YTQ5KX19LAorICAgICAgICAge3tUT0JOKDB4OWJjZDI0ZDMsIDB4NjZi
MzNmMWQpLCBUT0JOKDB4M2I5N2I4MjAsIDB4NWNlNDQ1YzApLAorICAgICAgICAgICBUT0JOKDB4
ZTI5MjY1NDksIDB4YmE5M2ZmNjEpLCBUT0JOKDB4ZDljMzQxY2UsIDB4NGRhZmU2MTYpfSwKKyAg
ICAgICAgICB7VE9CTigweGZiMzBhNzZlLCAweDE2ZWZiNmYzKSwgVE9CTigweGRmMjRiOGNhLCAw
eDYwNWI5NTNjKSwKKyAgICAgICAgICAgVE9CTigweDhiZDUyYWZlLCAweGMyZmZmYjlmKSwgVE9C
TigweGJiYWM1ZmY3LCAweGUxOWQwYjk2KX19LAorICAgICAgICAge3tUT0JOKDB4NDNjMDFiODcs
IDB4NDU5YWZjY2QpLCBUT0JOKDB4NmJkNDUxNDMsIDB4Yjc0MzI2NTIpLAorICAgICAgICAgICBU
T0JOKDB4ODQ3MzQ1MzAsIDB4NTViNWQ3OGUpLCBUT0JOKDB4ODEwODhmZGIsIDB4MTU1NGJhN2Qp
fSwKKyAgICAgICAgICB7VE9CTigweGFkYTBhNTJjLCAweDFlMjY5Mzc1KSwgVE9CTigweGY5ZjAz
N2M0LCAweDJkYzVlYzEwKSwKKyAgICAgICAgICAgVE9CTigweGMwNjYwNjA3LCAweDk0YmZiYzEx
KSwgVE9CTigweGMwYTYzMGJiLCAweGM5YzQwZDJmKX19LAorICAgICAgICAge3tUT0JOKDB4NWVm
Yzc5N2UsIDB4YWI2NGMzMWUpLCBUT0JOKDB4ZmZkYjFkYWIsIDB4NzQ1MDcxNDQpLAorICAgICAg
ICAgICBUT0JOKDB4ZjYxMjQyODcsIDB4MWNhNjc5MGMpLCBUT0JOKDB4ZTk2MDlkODEsIDB4ZTY5
YmYxYmYpfSwKKyAgICAgICAgICB7VE9CTigweGRiODk4NTk1LCAweDAwZDI0ZmM5KSwgVE9CTigw
eDljNzUwMzMzLCAweGU1MWZiNDE3KSwKKyAgICAgICAgICAgVE9CTigweDUxODMwYTkxLCAweGZl
ZjdiYmRlKSwgVE9CTigweDBjZTY3ZGM4LCAweDk0NWY1ODVjKX19LAorICAgICAgICAge3tUT0JO
KDB4OWE3MzBlZDQsIDB4NDc2M2ViNTApLCBUT0JOKDB4MjRhMGUyMjEsIDB4YzFhYjBkNjYpLAor
ICAgICAgICAgICBUT0JOKDB4NjQzYjYzOTMsIDB4NjQ4NzQ4ZjMpLCBUT0JOKDB4MTk4MmRhYTEs
IDB4NmQzYzYyOTEpfSwKKyAgICAgICAgICB7VE9CTigweDZmMDBhOWY3LCAweDhiYmM1NTQ5KSwg
VE9CTigweDdhMTc4M2UxLCAweDdmMzYzODRlKSwKKyAgICAgICAgICAgVE9CTigweGU4MzQ2MzIz
LCAweGRlOTc3ZjUwKSwgVE9CTigweDkxYWI2ODhkLCAweGIyNDU1MDJhKX19LAorICAgICAgICAg
e3tUT0JOKDB4MzMxYWI2YjUsIDB4NmQwYmRkNjYpLCBUT0JOKDB4MGE2ZWYzMmUsIDB4NjRiNzEy
MjkpLAorICAgICAgICAgICBUT0JOKDB4MTAyODE1MGUsIDB4ZmU3YzM1MmYpLCBUT0JOKDB4Mjdl
MDQzNTAsIDB4Y2U3YjM5ZDMpfSwKKyAgICAgICAgICB7VE9CTigweDJhM2M4YWNkLCAweGMxMDcw
YzgyKSwgVE9CTigweGZiMjAzNGQzLCAweDgwYzlmZWVmKSwKKyAgICAgICAgICAgVE9CTigweDJk
NzI5NjIxLCAweDcwOWYzNzI5KSwgVE9CTigweDhkZjI5MGJmLCAweDYyY2I0NTQ5KX19LAorICAg
ICAgICAge3tUT0JOKDB4MDJmOTlmMzMsIDB4ZmMyZTQzMjYpLCBUT0JOKDB4M2IzMDA3NmQsIDB4
NWVkZGYwMzIpLAorICAgICAgICAgICBUT0JOKDB4YmIyMWY4Y2YsIDB4MGM2NTJmYjUpLCBUT0JO
KDB4MzE0ZmI0OWUsIDB4ZWQ5MWNmN2IpfSwKKyAgICAgICAgICB7VE9CTigweGEwMTNlY2E1LCAw
eDJmNzAwNzUwKSwgVE9CTigweDJiOWUzYzIzLCAweDcxMmE0NTc1KSwKKyAgICAgICAgICAgVE9C
TigweGU1MzU1NTU3LCAweGFmMzBmYmIwKSwgVE9CTigweDFhZGEzNTE2LCAweDdjNzdlNzcxKX19
LAorICAgICAgICAge3tUT0JOKDB4NDVmNmVjYjIsIDB4N2IxMzU2NzApLCBUT0JOKDB4ZTg1ZDE5
ZGYsIDB4N2NmYzIwMmUpLAorICAgICAgICAgICBUT0JOKDB4MGYxYjUwYzcsIDB4NThkMWJlOWYp
LCBUT0JOKDB4NWViZjJjMGEsIDB4ZWFkMmUzNDQpfSwKKyAgICAgICAgICB7VE9CTigweDE1MzFm
ZTRlLCAweGFiYzE5OWM5KSwgVE9CTigweGM3MDMyNTkyLCAweDU2YmFiMGFlKSwKKyAgICAgICAg
ICAgVE9CTigweDE2YWIyZTQ4LCAweDZjMWZlYzU0KSwgVE9CTigweDBmODdmZGE4LCAweDA0Mjgw
MTg4KX19LAorICAgICAgICAge3tUT0JOKDB4ZGM5ZjQ2ZmMsIDB4NjA5ZTRhNzQpLCBUT0JOKDB4
MmE0NGExNDMsIDB4YmE2NjdmOTEpLAorICAgICAgICAgICBUT0JOKDB4YmMzZDhiOTUsIDB4YjRk
ODM0MzYpLCBUT0JOKDB4YTAxZTRiZDAsIDB4YzdiZDI5NTgpfSwKKyAgICAgICAgICB7VE9CTigw
eDdiMTgyOTMyLCAweDczNDgzYzkwKSwgVE9CTigweGE3OWM2YWExLCAweGE3YzdiNTk4KSwKKyAg
ICAgICAgICAgVE9CTigweGJmMzk4M2M2LCAweGVhYWFjMDdlKSwgVE9CTigweDhmMTgxODFlLCAw
eDk2ZTBkNGU2KX19LAorICAgICAgICAge3tUT0JOKDB4ODU1M2QzN2MsIDB4MDUxYWY2MmIpLCBU
T0JOKDB4ZTlhOTk4ZWIsIDB4MGJmOTQ0OTYpLAorICAgICAgICAgICBUT0JOKDB4ZTA4NDRmOWYs
IDB4YjBkNTlhYTEpLCBUT0JOKDB4OTgzZmQ1NTgsIDB4ZTZhZmI4MTMpfSwKKyAgICAgICAgICB7
VE9CTigweDk2NzBjMGNhLCAweDY1ZDY5ODA0KSwgVE9CTigweDczMmIyMmRlLCAweDZlYTVmZjJk
KSwKKyAgICAgICAgICAgVE9CTigweGQ3NjQwYmE5LCAweDVmZDg2MjNiKSwgVE9CTigweDlmNjE5
MTYzLCAweGE2MzUxNzgyKX19LAorICAgICAgICAge3tUT0JOKDB4MGJmYzI3ZWUsIDB4YWNlZTUw
NDMpLCBUT0JOKDB4YWU0MTllNzMsIDB4MmViMTBmMDIpLAorICAgICAgICAgICBUT0JOKDB4MTlj
MDI4ZDEsIDB4ODk0M2ZiMDUpLCBUT0JOKDB4NzFmMDFjZjcsIDB4ZmYxM2FhMmEpfSwKKyAgICAg
ICAgICB7VE9CTigweDc3OTA3MzdlLCAweDg4ODdhMTMyKSwgVE9CTigweDY3NTEzMzA5LCAweDY2
MzE4NDEwKSwKKyAgICAgICAgICAgVE9CTigweDk4MTllOGEzLCAweDdkZGI3OTVlKSwgVE9CTigw
eGZlY2I4ZWY1LCAweGRhZDEwMGIyKX19LAorICAgICAgICAge3tUT0JOKDB4NTlmNzRhMjIsIDB4
MzAyMTkyNmEpLCBUT0JOKDB4YjdjMjhhNDksIDB4NmY5YjRjMWMpLAorICAgICAgICAgICBUT0JO
KDB4ZWQxYTczM2YsIDB4OTEyYWQwYWIpLCBUT0JOKDB4NDJhOTEwYWYsIDB4MDFhNTY1OWMpfSwK
KyAgICAgICAgICB7VE9CTigweDM4NDJjNmUwLCAweDdiZDY4Y2FiKSwgVE9CTigweDJiNTdmYTM4
LCAweDc2ZDcwYWM4KSwKKyAgICAgICAgICAgVE9CTigweDhhNjcwN2E4LCAweDNjNTNhYWViKSwg
VE9CTigweDYyYzFjNTEwLCAweDY1YjRkYjE4KX19LAorICAgICAgICAge3tUT0JOKDB4OGRlMmMx
ZmIsIDB4YjJkMDlkYzcpLCBUT0JOKDB4YzNkZmVkMTIsIDB4MjY2YmQyM2IpLAorICAgICAgICAg
ICBUT0JOKDB4OTI3ZDAzOWIsIDB4ZDViMjdkYjYpLCBUT0JOKDB4MmZiMmYwZjEsIDB4MTAzMjQz
ZGEpfSwKKyAgICAgICAgICB7VE9CTigweGY4NTVhMDdiLCAweDgwYmU3Mzk5KSwgVE9CTigweGVk
OTMyN2NlLCAweDFmOWYyN2E4KSwKKyAgICAgICAgICAgVE9CTigweGEwYmQ5OWM3LCAweDcyOWJk
ZWY3KSwgVE9CTigweDJiNjcxMjVlLCAweDI4MjUwZDg4KX19LAorICAgICAgICAge3tUT0JOKDB4
Nzg0YjI2ZTgsIDB4ODY3MGNlZDcpLCBUT0JOKDB4ZTNkZmU0MWYsIDB4YzMxYmQzYjQpLAorICAg
ICAgICAgICBUT0JOKDB4OWUzNTNhMDYsIDB4YmNjODVjYmMpLCBUT0JOKDB4MzAyZTI5MDksIDB4
NjAxNzhhOWQpfSwKKyAgICAgICAgICB7VE9CTigweDg2MGFiZjExLCAweGE2ZWFjMTZlKSwgVE9C
TigweDc2NDQ3MDAwLCAweGFhMmIzYWFjKSwKKyAgICAgICAgICAgVE9CTigweDQ2ZmY5ZDE5LCAw
eDg1MGFmZGFiKSwgVE9CTigweDM1YmRkNmE1LCAweGZkYjJkNGMxKX19LAorICAgICAgICAge3tU
T0JOKDB4ZTgyNTk0YjAsIDB4N2U1YzljZTkpLCBUT0JOKDB4MGYzNzllNTMsIDB4MjBhZjM0NmUp
LAorICAgICAgICAgICBUT0JOKDB4NjA4YjMxZTMsIDB4YmM2NWFkNGEpLCBUT0JOKDB4NzEwYzZi
MTIsIDB4MjY3YzQ4MjYpfSwKKyAgICAgICAgICB7VE9CTigweDUxYzk2NmY5LCAweDcxOTU0Y2Yx
KSwgVE9CTigweGIxY2VjNzkzLCAweDBkMGFhMjE1KSwKKyAgICAgICAgICAgVE9CTigweDFmMTU1
OTg5LCAweDg2YmQyM2E4KSwgVE9CTigweGFlMmZmOTljLCAweGY5NDUyZTg2KX19LAorICAgICAg
ICAge3tUT0JOKDB4ZDhkZDk1M2MsIDB4MzQwY2VhYTIpLCBUT0JOKDB4MjYzNTUyNzUsIDB4MmUy
ZTkzMzMpLAorICAgICAgICAgICBUT0JOKDB4MTVkNGU1ZjksIDB4ODU4NmYwNmQpLCBUT0JOKDB4
ZDZiZjk0YTgsIDB4ZjdjYWI1NDYpfSwKKyAgICAgICAgICB7VE9CTigweDMzYzU5YTBhLCAweGI3
NmE5YWYwKSwgVE9CTigweDUyNzQwYWIzLCAweGJhMDk1YWY3KSwKKyAgICAgICAgICAgVE9CTigw
eGM0NDRkZThhLCAweDI0Mzg5Y2EwKSwgVE9CTigweGNjNmY5ODYzLCAweDcwNmRhMGNiKX19LAor
ICAgICAgICAge3tUT0JOKDB4YjVhNzQxYTcsIDB4NmIyNTE1Y2YpLCBUT0JOKDB4NzFjNDE2MDEs
IDB4OTU4NWM3NDkpLAorICAgICAgICAgICBUT0JOKDB4NzgzNTBkNGYsIDB4ZTY4M2RlOTcpLCBU
T0JOKDB4MzFkNjE1MjQsIDB4NjNkMGI1ZjUpfSwKKyAgICAgICAgICB7VE9CTigweDdhMGNjNWUx
LCAweGZiY2UwOTBiKSwgVE9CTigweGFhYzkyN2VkLCAweGZiY2IyYTViKSwKKyAgICAgICAgICAg
VE9CTigweGU5MjBkZTQ5LCAweDIwZDg0YzM1KSwgVE9CTigweDhjMDZhMGI2LCAweDIyYjRkZTI2
KX19LAorICAgICAgICAge3tUT0JOKDB4ZDM0ZGQ1OGIsIDB4YWZlN2RkZjMpLCBUT0JOKDB4NTU4
NTFmZWQsIDB4YzFlNmU1NWIpLAorICAgICAgICAgICBUT0JOKDB4ZDEzOTU2MTYsIDB4OTYwNjk2
ZTcpLCBUT0JOKDB4OTQwMzA0YjIsIDB4NWYyMjcwNWYpfSwKKyAgICAgICAgICB7VE9CTigweDZm
NDNmODYxLCAweGIwYTJhODYwKSwgVE9CTigweGNmMTIxMjgyLCAweDBlN2NjOTgxKSwKKyAgICAg
ICAgICAgVE9CTigweDEyMTg2MjEyLCAweDBhYjY0YTk2KSwgVE9CTigweDA5MjE1YjlhLCAweGI3
ODkzODNjKX19LAorICAgICAgICAge3tUT0JOKDB4MzExZWIzMDUsIDB4MzczODdjMDkpLCBUT0JO
KDB4YzU4MzJmY2UsIDB4ZjAzZWU3NjApLAorICAgICAgICAgICBUT0JOKDB4MzAzNThmNTgsIDB4
MzJmN2VhMTkpLCBUT0JOKDB4ZTAxZDNjMzQsIDB4OTFkNTM1NTEpfSwKKyAgICAgICAgICB7VE9C
TigweDFjYTVlZTQxLCAweGRhNDhlYTgwKSwgVE9CTigweDM0ZTcxZThlLCAweGNmNGZhNGMxKSwK
KyAgICAgICAgICAgVE9CTigweDMxMmFiZDI1LCAweDdhZjFlMWM3KSwgVE9CTigweGUzYWZjZGVi
LCAweDIxNTNmNGE1KX19LAorICAgICAgICAge3tUT0JOKDB4OWQ1Yzg0ZDcsIDB4MDAyMzVlOWEp
LCBUT0JOKDB4MDMwOGQzZjQsIDB4OGM0YzgzNmYpLAorICAgICAgICAgICBUT0JOKDB4YzBhNjZi
MDQsIDB4ODkzMzJkZTUpLCBUT0JOKDB4NjEwZGQzOTksIDB4ODllNTY2ZWYpfSwKKyAgICAgICAg
ICB7VE9CTigweGY4ZWVhNDYwLCAweGQxYWMxNjM1KSwgVE9CTigweDg0Y2JiM2ZiLCAweDIwYTJj
MGRmKSwKKyAgICAgICAgICAgVE9CTigweDQwYWZiNDg4LCAweGU3NGE0OGM1KSwgVE9CTigweDI5
NzM4MTk4LCAweGQzMjZiMTUwKX19LAorICAgICAgICAge3tUT0JOKDB4MmExNzc0N2YsIDB4YTZk
NzQwODEpLCBUT0JOKDB4NjBlYTRjMDUsIDB4NTVhMjYyMTQpLAorICAgICAgICAgICBUT0JOKDB4
NTM1MTRiYjQsIDB4MWY4OGM1ZmUpLCBUT0JOKDB4ZWRkNjQ1NjcsIDB4N2U4MzQyNmMpfSwKKyAg
ICAgICAgICB7VE9CTigweGQ1ZDZjYmVjLCAweDk2NDYwYjI1KSwgVE9CTigweGExMmZkMGNlLCAw
eDY4ZGMxMTVlKSwKKyAgICAgICAgICAgVE9CTigweGM1YmMzZWQyLCAweDY5Nzg0MGVhKSwgVE9C
TigweDk2OTg3NmE4LCAweGE2MzMxZTMxKX19LAorICAgICAgICAge3tUT0JOKDB4NjBjMzYyMTcs
IDB4NDcyZmY1ODApLCBUT0JOKDB4ZjQyMjk3MDUsIDB4NGFkNDEzOTMpLAorICAgICAgICAgICBU
T0JOKDB4NGJkOTllZjAsIDB4YTAzYjhiOTIpLCBUT0JOKDB4NTAxYzczMTcsIDB4YzE0NGY0ZjYp
fSwKKyAgICAgICAgICB7VE9CTigweDE1OTAwOWIzLCAweDE4NDY0OTQ1KSwgVE9CTigweDZkNWU1
OTRjLCAweDc0YzVjNmJlKSwKKyAgICAgICAgICAgVE9CTigweDJkNTg3MDExLCAweDMyMWEzNjYw
KSwgVE9CTigweGQxZTE4NGIxLCAweDM4OThkMDIyKX19LAorICAgICAgICAge3tUT0JOKDB4NWJh
MDQ3NTIsIDB4NGM2YTdlMDQpLCBUT0JOKDB4NDdmYTFlMmIsIDB4NDU1NTBiNjUpLAorICAgICAg
ICAgICBUT0JOKDB4OTQxOWRhZjAsIDB4NDhjMGE5YTUpLCBUT0JOKDB4NjYzNjI5NTMsIDB4N2My
NDMyMzYpfSwKKyAgICAgICAgICB7VE9CTigweGNkMDc0NGIxLCAweDVjYjEyYTg4KSwgVE9CTigw
eDU2MWI2ZjlhLCAweDJiNjQ2MTg4KSwKKyAgICAgICAgICAgVE9CTigweDU5OTQxNWE1LCAweDY2
YzJjMGMwKSwgVE9CTigweGJlM2YwODU5LCAweDBmODNmMDlhKX19LAorICAgICAgICAge3tUT0JO
KDB4OTE0MWM1YmUsIDB4YjkyMDQxYjgpLCBUT0JOKDB4MDFhZTM4YzcsIDB4MjY0NzdkMGQpLAor
ICAgICAgICAgICBUT0JOKDB4Y2E4YjcxZjMsIDB4ZDEyYzdhOTQpLCBUT0JOKDB4ZmFiNWIzMWYs
IDB4NzY1YzcwZGIpfSwKKyAgICAgICAgICB7VE9CTigweDc2YWU3NDkyLCAweDQ4NzQ0M2U5KSwg
VE9CTigweDg1OTVhMzEwLCAweDk5MGQxMzQ5KSwKKyAgICAgICAgICAgVE9CTigweGY4ZGJlZGE4
LCAweDdkNDYwYTM3KSwgVE9CTigweDdmN2FkMDgyLCAweDFlNDVhMzhmKX19LAorICAgICAgICAg
e3tUT0JOKDB4ZWQxZDRkYjYsIDB4MTA1OTcwNWEpLCBUT0JOKDB4YTNkZDQ5MmEsIDB4ZTZiOWM2
OTcpLAorICAgICAgICAgICBUT0JOKDB4NGI5MmVlM2EsIDB4NmViMzhiZDUpLCBUT0JOKDB4YmFi
MjYwOWQsIDB4NjdjYzBiYjcpfSwKKyAgICAgICAgICB7VE9CTigweDdmYzRmZTg5LCAweDZlNzBl
ZTgyKSwgVE9CTigweGVmZjJjNTZlLCAweDEzZTZiN2UzKSwKKyAgICAgICAgICAgVE9CTigweDli
MTg5NTllLCAweDM0ZDI2ZmNhKSwgVE9CTigweDI1MTdhYjY2LCAweDg4OWQ2YjQ1KX19LAorICAg
ICAgICAge3tUT0JOKDB4ZjE2N2I0ZTAsIDB4YmRlZmRkNGYpLCBUT0JOKDB4Njk5NTg0NjUsIDB4
ZjM2NmU0MDEpLAorICAgICAgICAgICBUT0JOKDB4NWFhMzY4YWIsIDB4YTczYmJlYzApLCBUT0JO
KDB4MTIxNDg3MDksIDB4N2IyNDBjMjEpfSwKKyAgICAgICAgICB7VE9CTigweDM3OGMzMjMzLCAw
eDE4OTY5MDA2KSwgVE9CTigweGNiNGQ3M2NlLCAweGUxZmU1M2QxKSwKKyAgICAgICAgICAgVE9C
TigweDVmNTBhODBlLCAweDEzMGM0MzYxKSwgVE9CTigweGQ2N2Y1OTUxLCAweDdlZjUyMTJiKX19
LAorICAgICAgICAge3tUT0JOKDB4ZjE0NWUyMWUsIDB4OWU3MGM3MmUpLCBUT0JOKDB4YjJlNTJl
MjksIDB4NTU2NmQyZmIpLAorICAgICAgICAgICBUT0JOKDB4NDRlYWJhNGEsIDB4MDMyMzk3ZjUp
LCBUT0JOKDB4NWU1NjkzN2IsIDB4N2UzMWE3ZGUpfSwKKyAgICAgICAgICB7VE9CTigweDY4ZGNm
NTE3LCAweDQ1NmM2MWUxKSwgVE9CTigweGJjMmU5NTRhLCAweGE4YjBhMzg4KSwKKyAgICAgICAg
ICAgVE9CTigweGUzNTUyZmE3LCAweDYwYThiNzU1KSwgVE9CTigweDAzNDQyZGFlLCAweDczYWQw
Y2RlKX19LAorICAgICAgICAge3tUT0JOKDB4MzdmZmU3NDcsIDB4Y2ViMjYyMTApLCBUT0JOKDB4
OTgzNTQ1ZTgsIDB4Nzg3YmFlZjkpLAorICAgICAgICAgICBUT0JOKDB4OGI4Yzg1MzUsIDB4ODZh
M2RlMzEpLCBUT0JOKDB4YzYyMWRiY2IsIDB4ZmFjZDQ2ZGIpfSwKKyAgICAgICAgICB7VE9CTigw
eDgyZTQ0MmU5LCAweDU5MjY2ZmJiKSwgVE9CTigweGEzNTE0YzM3LCAweDMzOWQ0NzFjKSwKKyAg
ICAgICAgICAgVE9CTigweDNhMTFiNzcxLCAweDYyY2RhZDk2KSwgVE9CTigweGYwY2IzYjNjLCAw
eGVjZjliZGYwKX19LAorICAgICAgICAge3tUT0JOKDB4M2ZjYmRiY2UsIDB4NDc4ZTIxMzUpLCBU
T0JOKDB4NzU0N2I1Y2YsIDB4YmRhMzUzNDIpLAorICAgICAgICAgICBUT0JOKDB4YTk3ZTgxZjEs
IDB4OGE2NzdhZjYpLCBUT0JOKDB4YzhjMmJmODMsIDB4Mjg4MTc5ODcpfSwKKyAgICAgICAgICB7
VE9CTigweGRmMDdlYWFmLCAweDQ1NTgwOTg1KSwgVE9CTigweGM2OGQxZjA1LCAweGM5M2I0NWNi
KSwKKyAgICAgICAgICAgVE9CTigweDEwNmFhMmZlLCAweGM3N2I0Y2FjKSwgVE9CTigweDRjMWQ4
YWZjLCAweDA0YTdhZTg2KX19LAorICAgICAgICAge3tUT0JOKDB4ZGI0MWMzZmQsIDB4OWViNDVh
YjIpLCBUT0JOKDB4NWIyMzRiNWIsIDB4ZDRiMjJlNzQpLAorICAgICAgICAgICBUT0JOKDB4ZGEy
NTNkZWMsIDB4ZjIxNTk1OGEpLCBUT0JOKDB4NjdlMDYwNmUsIDB4YTA0ZWRmYTApfSwKKyAgICAg
ICAgICB7VE9CTigweGFiYmJmMDcwLCAweGVmNzUxYjExKSwgVE9CTigweGYzNTJmMTc1LCAweGY2
ZjA2ZGNlKSwKKyAgICAgICAgICAgVE9CTigweGRmYzRiNmFmLCAweDY4MzlmNmI0KSwgVE9CTigw
eDUzZGRmOWE4LCAweDk5NTk4NDhlKX19LAorICAgICAgICAge3tUT0JOKDB4ZGE0OWMzNzksIDB4
YzIxNTIwYjApLCBUT0JOKDB4OTA4NjRmZjAsIDB4ZGJkNWQxYjYpLAorICAgICAgICAgICBUT0JO
KDB4MmYwNTVkMjMsIDB4NWY0OWM3ZjcpLCBUT0JOKDB4ZTUxZTRlNmEsIDB4YTc5NmIyZDgpfSwK
KyAgICAgICAgICB7VE9CTigweGMzNjFhNjdmLCAweDVjOWRjMzQwKSwgVE9CTigweDVhZDUzYzM3
LCAweGJjYTdjNjIwKSwKKyAgICAgICAgICAgVE9CTigweGRhMWQ2NTg4LCAweDMyYzc1NmQwKSwg
VE9CTigweGFkNjBkOTExLCAweDhiYjY3ZTEzKX19LAorICAgICAgICAge3tUT0JOKDB4ZDZjNDdi
ZGYsIDB4MGVlZWM4YzYpLCBUT0JOKDB4NGEyN2ZlYzEsIDB4MDc4YTE4MjEpLAorICAgICAgICAg
ICBUT0JOKDB4MDgxZjc0MTUsIDB4YzMwOTk1MjQpLCBUT0JOKDB4OGVmZmRmMGIsIDB4ODJjZDgw
NjApfSwKKyAgICAgICAgICB7VE9CTigweGRiNzBlYzFjLCAweDY1ODQyZGY4KSwgVE9CTigweDg4
MjFiMzU4LCAweGQzMTlhOTAxKSwKKyAgICAgICAgICAgVE9CTigweDcyZWU1NmVlLCAweGRlNDJi
NTI5KSwgVE9CTigweDViYjM5NTkyLCAweDIzNmU0Mjg2KX19LAorICAgICAgICAge3tUT0JOKDB4
ZDExODMzMTYsIDB4ZmQ2ZjcxNDApLCBUT0JOKDB4ZjlmYWRiNWIsIDB4YmQ4ZTgxZjcpLAorICAg
ICAgICAgICBUT0JOKDB4NzAxZDVlMGMsIDB4NWEwMmQ5NjIpLCBUT0JOKDB4ZmRlZTRkYmYsIDB4
MWI2MDEzMjQpfSwKKyAgICAgICAgICB7VE9CTigweGJlZDE3NDA3LCAweDM1ZDc2MjBlKSwgVE9C
TigweDA0ZTNjMmMzLCAweGY0OGMwMDEyKSwKKyAgICAgICAgICAgVE9CTigweDllZTI5ZGE3LCAw
eDM0NTU0NDlhKSwgVE9CTigweDU2MmNkZWY0LCAweDkxYTgzNmM0KX19LAorICAgICAgICAge3tU
T0JOKDB4OGY2ODJhNWYsIDB4NDc3MDEwOTcpLCBUT0JOKDB4NjE3MTI1ZDgsIDB4ZmY4OGQwYzIp
LAorICAgICAgICAgICBUT0JOKDB4OTQ4ZmRhMjQsIDB4NTdiYjg2ZGQpLCBUT0JOKDB4MzQ4YWJi
OGYsIDB4Mjg5ZjcyODYpfSwKKyAgICAgICAgICB7VE9CTigweGViMTBlYWI1LCAweDk5ZDk0YmJk
KSwgVE9CTigweGQ1MWJhMjhlLCAweDQ2ODRkMTYwKSwKKyAgICAgICAgICAgVE9CTigweGFiZTBl
NTFjLCAweDMwYzhmNDFhKSwgVE9CTigweDY2NTg4YjQ1LCAweDEzMjU0ZjRhKX19LAorICAgICAg
ICAge3tUT0JOKDB4MTQ3ZWJmMDEsIDB4ZmFkMDk3YTUpLCBUT0JOKDB4NDk4ODNlYTgsIDB4NjEw
ZTgxNWQpLAorICAgICAgICAgICBUT0JOKDB4ZTQ0ZDYwYmEsIDB4OGExMWRlNTYpLCBUT0JOKDB4
YTk3MGRlNmUsIDB4ODI3YTdhNmQpfSwKKyAgICAgICAgICB7VE9CTigweDJiZTQxNDI0LCAweDVl
MTdmYzE5KSwgVE9CTigweGQ4MzNjNjU3LCAweDAxMjE0MDU3KSwKKyAgICAgICAgICAgVE9CTigw
eDEzNzU4MTNiLCAweDM2M2U3MjNmKSwgVE9CTigweDY4MjBiYjg4LCAweGU2YTUyZTliKX19LAor
ICAgICAgICAge3tUT0JOKDB4N2U3ZjY5NzAsIDB4ZDg3NWQ1NmEpLCBUT0JOKDB4ZDZhMGE5YWMs
IDB4NTFmYmY2YmYpLAorICAgICAgICAgICBUT0JOKDB4NTRiYTg3OTAsIDB4YTMwODNjMTIpLCBU
T0JOKDB4ZWJhZWIyM2QsIDB4NmFlN2ViNjQpfSwKKyAgICAgICAgICB7VE9CTigweGE4Njg1YzNh
LCAweGI5OWE5MDdhKSwgVE9CTigweGYxZTc0NTUwLCAweDAyNmJmNDBiKSwKKyAgICAgICAgICAg
VE9CTigweDdiNzNhMDI3LCAweGM4MDJjZDllKSwgVE9CTigweDlhOGE5MjdjLCAweDRmZWY0NjM1
KX19LAorICAgICAgICAge3tUT0JOKDB4ZTFiNmY2MGMsIDB4MDgxOTEyMjQpLCBUT0JOKDB4YzQx
MjZlYmIsIDB4ZGU0ZWMwOTEpLAorICAgICAgICAgICBUT0JOKDB4ZTFkZmY0ZGMsIDB4NGFlMzhk
ODQpLCBUT0JOKDB4ZGUzZjU3ZGIsIDB4NGYyZWY5ODUpfSwKKyAgICAgICAgICB7VE9CTigweDM0
OTY0MzM3LCAweGQ0NDZhMWRkKSwgVE9CTigweDdiZjIxN2EwLCAweDg1OWU3N2Y2KSwKKyAgICAg
ICAgICAgVE9CTigweDhmZjEwNTI3LCAweDhlMWQxM2Y1KSwgVE9CTigweGEzMDRlZjAzLCAweDc0
ZWVhZTI3KX19LAorICAgICAgICAge3tUT0JOKDB4ZmM2ZjVlNDcsIDB4ZDE5ZGZhNWEpLCBUT0JO
KDB4ZGIwMDdkZTMsIDB4N2ZhZDk4MmIpLAorICAgICAgICAgICBUT0JOKDB4MjgyMDVhZDEsIDB4
NjEzNzE1ZjUpLCBUT0JOKDB4MjUxZTY3MjksIDB4Nzg4OTUyOWUpfSwKKyAgICAgICAgICB7VE9C
TigweDcyNzA1MTg0LCAweDFhZTk4ZTc4KSwgVE9CTigweGY4MTg1MzdkLCAweDI3MWNhYzMyKSwK
KyAgICAgICAgICAgVE9CTigweGM4YTE1YjdlLCAweGI3ZjQxMGY1KSwgVE9CTigweGM0NzQzNTZm
LCAweDgxZjYyMzkzKX19LAorICAgICAgICAge3tUT0JOKDB4OTJkYmRjNWEsIDB4YzI0MjMxNmIp
LCBUT0JOKDB4YWJlMDYwYWMsIDB4ZGJmNGFmZjUpLAorICAgICAgICAgICBUT0JOKDB4NmU4YzM4
ZmUsIDB4OTA5YThlYzYpLCBUT0JOKDB4NDNlNTE0ZTUsIDB4NjExNmNiOTQpfSwKKyAgICAgICAg
ICB7VE9CTigweDIwNzhmYTM4LCAweDA3ZDc4NGY5KSwgVE9CTigweDExNjFhODgwLCAweGY0YjVi
MzU3KSwKKyAgICAgICAgICAgVE9CTigweDUyODNjZTc5LCAweDEzYWRlYTNkKSwgVE9CTigweDA3
NTZjM2U2LCAweGNjNmE5MTBiKX19LAorICAgICAgICAge3tUT0JOKDB4NjBiY2ZlMDEsIDB4YWFh
Nzk2OTcpLCBUT0JOKDB4MDRhNzNiMjksIDB4NTYzOTFkYjEpLAorICAgICAgICAgICBUT0JOKDB4
ZGQ4ZGFkNDcsIDB4MTg5YjQ1YTApLCBUT0JOKDB4YmZhYzBkZDAsIDB4NDhkNWI4ZDkpfSwKKyAg
ICAgICAgICB7VE9CTigweDM0YWIzYWY1LCAweDdkM2QyZWMyKSwgVE9CTigweDZmYTJmYzJkLCAw
eDIwN2JkM2FmKSwKKyAgICAgICAgICAgVE9CTigweDlmZjQwMDkyLCAweDY2NTUwZGVkKSwgVE9C
TigweDcxOWIzZTg3LCAweDFmZDViOTEzKX19LAorICAgICAgICAge3tUT0JOKDB4YTU3M2E0OTYs
IDB4NmQxN2ZiYzcpLCBUT0JOKDB4MGNkMWE3MGEsIDB4NzNkMmIyNGUpLAorICAgICAgICAgICBU
T0JOKDB4MzRlMmM1Y2EsIDB4YjI2NzY5MzcpLCBUT0JOKDB4ZTcwNTBiMDYsIDB4YmY2NjlmMjEp
fSwKKyAgICAgICAgICB7VE9CTigweGZiZTk0OGI2LCAweDFlZGU5MDQ2KSwgVE9CTigweGEwNTMw
MDUxLCAweDk3NjYyNjU5KSwKKyAgICAgICAgICAgVE9CTigweDU4Y2JkNGVkLCAweGYxMDEyNGM1
KSwgVE9CTigweGRlMjY0NmU0LCAweGRkNmMwNmM4KX19LAorICAgICAgICAge3tUT0JOKDB4MzMy
ZjgxMDgsIDB4OGNhZDM4YzApLCBUT0JOKDB4NDcxYjdlOTAsIDB4NmJkNjhhZTIpLAorICAgICAg
ICAgICBUT0JOKDB4NTZhYzNmYjIsIDB4MGQ4ZTI3YTMpLCBUT0JOKDB4YjU0NjYwZGIsIDB4MTM2
YjRiMGQpfSwKKyAgICAgICAgICB7VE9CTigweDEyM2ExZTExLCAweGE2ZmQ4ZGU0KSwgVE9CTigw
eDQ0ZGJmZmVhLCAweGEzNzc5OWVmKSwKKyAgICAgICAgICAgVE9CTigweDQ1NDBiOTc3LCAweGNl
NmFjMTdjKSwgVE9CTigweDQ5NTE3M2E4LCAweGFmNjBhY2VmKX19fSwKKyAgICAgICAge3t7VE9C
TigweDllYmIyODRkLCAweDM5MWMyYTgyKSwgVE9CTigweGJjZGQ0ODYzLCAweDE1ODMwOGU4KSwK
KyAgICAgICAgICAgVE9CTigweDAwNmYxNmVjLCAweDgzZjFlZGNhKSwgVE9CTigweGExM2UyYzM3
LCAweDY5NWRjNmM4KX0sCisgICAgICAgICAge1RPQk4oMHgyYWI3NTZmMCwgMHg0YTA1N2E4Nyks
IFRPQk4oMHhhODc2NTUwMCwgMHhhNmI0OGY5OCksCisgICAgICAgICAgIFRPQk4oMHg0MjUyZmFj
ZSwgMHg2ODY1MWM0NCksIFRPQk4oMHhhNTJiNTQwYiwgMHhlMTc2NWUwMil9fSwKKyAgICAgICAg
IHt7VE9CTigweDRmOTIyZmM1LCAweDE2YTBkMmJiKSwgVE9CTigweDBkNWNjMTZjLCAweDFhNjIz
NDk5KSwKKyAgICAgICAgICAgVE9CTigweDkyNDFjZjNhLCAweDU3YzYyYzhiKSwgVE9CTigweDJm
NWU2OTYxLCAweGZkMWI2NjdmKX0sCisgICAgICAgICAge1RPQk4oMHg1YzE1YzcwYiwgMHhmNWEw
MTc5NyksIFRPQk4oMHgzZDIwYjQ0ZCwgMHg2MDk1NjE5MiksCisgICAgICAgICAgIFRPQk4oMHgw
NDkxMWIzNywgMHgwNzFmZGI1MiksIFRPQk4oMHhmNjQ4ZjkxNiwgMHg4ZDZmMGY3Yil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDZkYzFhY2FmLCAweGU2MGI3Y2Y3KSwgVE9CTigweDI1ODYwYTUwLCAw
eDg0YTlkODY5KSwKKyAgICAgICAgICAgVE9CTigweDU2ZmM2ZjA5LCAweGU3YmE4YWM0KSwgVE9C
TigweDgyOGM1YmQwLCAweDYxNDhkMjllKX0sCisgICAgICAgICAge1RPQk4oMHhhYzZiNDM1ZSwg
MHhkYzU1YWU1ZiksIFRPQk4oMHhhNTI3ZjU2YywgMHhjMDExNzQxMSksCisgICAgICAgICAgIFRP
Qk4oMHg5NGQ1MDQ1ZSwgMHhmZDI0MzQyYyksIFRPQk4oMHgyYzRjMGEzNSwgMHg3MGI2N2MwZCl9
fSwKKyAgICAgICAgIHt7VE9CTigweDAyN2NjOGI4LCAweGZhYzYxZDlhKSwgVE9CTigweDdkMjVl
MDYyLCAweGUzYzZmZThhKSwKKyAgICAgICAgICAgVE9CTigweGUwODgwNWJmLCAweGU1YmZmNTAz
KSwgVE9CTigweDEzMjcxZTZjLCAweDZmZjYzMmY3KX0sCisgICAgICAgICAge1RPQk4oMHg1NWRj
YTZjMCwgMHgyMzJmNzZhNSksIFRPQk4oMHg4OTU3YzMyZCwgMHg3MDFlZjQyNiksCisgICAgICAg
ICAgIFRPQk4oMHhlZTcyOGJjYiwgMHhhMTBhNTE3OCksIFRPQk4oMHg1ZWE2MDQxMSwgMHhiNjJj
NTE3Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGZjNGU5NjRlLCAweGQwYjg4OTJiKSwgVE9CTigw
eDllYTE3NjgzLCAweDkzMDFiYjc0KSwKKyAgICAgICAgICAgVE9CTigweDYyNjVjNWFlLCAweGZj
YzQ4NjI2KSwgVE9CTigweGU2MGNmODJlLCAweGJiM2U5MTAyKX0sCisgICAgICAgICAge1RPQk4o
MHg1N2FkZjc5NywgMHhkNGRmNTUzMSksIFRPQk4oMHgyMzViNTlhMSwgMHg4ZGVlZWZlMiksCisg
ICAgICAgICAgIFRPQk4oMHg2MGFkY2Y1OCwgMHgzZjMwNmViMSksIFRPQk4oMHgxMDVjMjc1Mywg
MHgzZDA5NDkyZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDQwOTA5MTRiLCAweGI1ZGVmOTk2KSwg
VE9CTigweDFjYjY5YzgzLCAweDIzM2RkMWU3KSwKKyAgICAgICAgICAgVE9CTigweGMxZTljMWQz
LCAweDliM2Q1ZTc2KSwgVE9CTigweDFmMzMzOGVkLCAweGZjY2Y2MDEyKX0sCisgICAgICAgICAg
e1RPQk4oMHhiMWU5NWQwZCwgMHgyZjUzNzhhOCksIFRPQk4oMHhhY2Y0YzJjNywgMHgyZjAwY2Qy
MSksCisgICAgICAgICAgIFRPQk4oMHg2ZTk4NDI0MCwgMHhlYjVmZTI5MCksIFRPQk4oMHhkNjZj
MDM4ZCwgMHgyNDgwODhhZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDgwNGQyNjRhLCAweGY5NGQ3
MGNmKSwgVE9CTigweGJkYjgwMmVmLCAweDczMTRiZjdlKSwKKyAgICAgICAgICAgVE9CTigweDhm
YjU0ZGUyLCAweDQzMzNlZDAyKSwgVE9CTigweDc0MDQ2MWUwLCAweDI4NTYzNWQ5KX0sCisgICAg
ICAgICAge1RPQk4oMHg0MTEzYjJjOCwgMHgzNjVlOTM4MyksIFRPQk4oMHhlYTc2MmM4MywgMHgz
ZmRlZjY1MiksCisgICAgICAgICAgIFRPQk4oMHg0ZWVjNmUyZSwgMHg0N2I5NTZjMSksIFRPQk4o
MHhhM2Q4MTRiZSwgMHg2NTYyMGZhNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDlhZDU0NjJiLCAw
eGI0ZDhiYzUwKSwgVE9CTigweDE4MWMwYjE2LCAweGE5MTk1NzcwKSwKKyAgICAgICAgICAgVE9C
TigweGViZDRmZTFjLCAweDc4NDEyYTY4KSwgVE9CTigweGFlMDM0MWJjLCAweGMwZGZmNDhjKX0s
CisgICAgICAgICAge1RPQk4oMHhiNmJjNDVjZiwgMHg3MDAzZTg2NiksIFRPQk4oMHhmMTFhNmRl
YSwgMHg4YTI0YTQxYiksCisgICAgICAgICAgIFRPQk4oMHg1NDA3MTUxYSwgMHhkMDRjMjRjMiks
IFRPQk4oMHg2MmM5ZDI3ZCwgMHhkYTViN2I2OCl9fSwKKyAgICAgICAgIHt7VE9CTigweDJlOTY0
MjM1LCAweDg4Y2NlZmY2KSwgVE9CTigweDg1OTRjNTRmLCAweDhiMDdlZDY5KSwKKyAgICAgICAg
ICAgVE9CTigweDE1NzhlNzNjLCAweGM4NGQwZDBkKSwgVE9CTigweDdiNGUxMDU1LCAweGZmNTMy
ODY4KX0sCisgICAgICAgICAge1RPQk4oMHhhMzQ4YzBkNSwgMHhiNWVjOTk1YSksIFRPQk4oMHhi
ZjRiOWQ1NSwgMHgxNDI4OWE1NCksCisgICAgICAgICAgIFRPQk4oMHg5YmExNTVhNiwgMHg1OGZi
ZDc3NyksIFRPQk4oMHgxODZlZDdhOCwgMHgxYTg0NDkxZCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGQ0OTkyYjMwLCAweDYxNGMwOTAwKSwgVE9CTigweGRhOThkMTIxLCAweGJkMDBjMjRiKSwKKyAg
ICAgICAgICAgVE9CTigweDdmNTM0ZGM4LCAweDdlYzRiZmExKSwgVE9CTigweDRhNWZmNjc0LCAw
eDM3ZGMzNGJjKX0sCisgICAgICAgICAge1RPQk4oMHg2OGMxOTZiOCwgMHgxZDdlYTFkNyksIFRP
Qk4oMHgzOGNmMjg5MywgMHg4MGE2ZDIwOCksCisgICAgICAgICAgIFRPQk4oMHhmZDU2Y2QwOSwg
MHhlM2NiYmQ2ZSksIFRPQk4oMHhlYzcyZTI3ZSwgMHg0MjA1YTViNil9fSwKKyAgICAgICAgIHt7
VE9CTigweDE1ZWE2OGY1LCAweGE0NGY3N2Y3KSwgVE9CTigweDdhYTVmOWZkLCAweGI0M2M1MmJj
KSwKKyAgICAgICAgICAgVE9CTigweDg2ZmY2NzZmLCAweDk0ZjBlNjA5KSwgVE9CTigweGE0Y2Rl
OTYzLCAweDJlMmQ0MzJiKX0sCisgICAgICAgICAge1RPQk4oMHg4Y2FmYTBjMCwgMHhlZWU0NzBh
ZiksIFRPQk4oMHg4NDEzN2QwZSwgMHg4YTNmNWVjOCksCisgICAgICAgICAgIFRPQk4oMHhlYmI0
MDQxMSwgMHhmYWEzMTIzMSksIFRPQk4oMHhhMjM5YzEzZiwgMHg2ZjdmN2NjZil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDMyODY1NzE5LCAweGE4YWZkMzBiKSwgVE9CTigweDg2Nzk4MzI4LCAweDhh
ODI2ZGNlKSwKKyAgICAgICAgICAgVE9CTigweGRmMDRlODkxLCAweGM0YThmYmUwKSwgVE9CTigw
eGJiNmI2ZTFiLCAweGViZjU2YWQzKX0sCisgICAgICAgICAge1RPQk4oMHgwYTY5NWIxMSwgMHg0
NzFmMWZmMCksIFRPQk4oMHhkNzZjMzM4OSwgMHhiZTE1YmFmMCksCisgICAgICAgICAgIFRPQk4o
MHgwMThlZGI5NSwgMHhiZTk2YzQzZSksIFRPQk4oMHhmMmJlYWFmNCwgMHg5MDc5NDE1OCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDE1MmRiMDllLCAweGMzMDc2YTI3KSwgVE9CTigweDVlODI5MDhl
LCAweGU0MTY1NDVkKSwKKyAgICAgICAgICAgVE9CTigweGEyYzQxMjcyLCAweDM1NmQ2ZjJlKSwg
VE9CTigweGRjOWM5NjQyLCAweDMxZmQ3NGUxKX0sCisgICAgICAgICAge1RPQk4oMHg2NmNlYjg4
ZCwgMHg1MTliZjYxNSksIFRPQk4oMHhlMjllY2Q3NiwgMHgwNWEyMjc0ZSksCisgICAgICAgICAg
IFRPQk4oMHgzYTA0NzNjNCwgMHhiZjVlMmZhMCksIFRPQk4oMHg2YjZlYjY3MSwgMHg2NDI4NGU2
Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweGU4Yjk3OTMyLCAweGI4ODc1NmRkKSwgVE9CTigweGVk
NGU4NjUyLCAweGYxN2UzZTYxKSwKKyAgICAgICAgICAgVE9CTigweGMyZGQxNDk5LCAweDNlZTFj
NGE0KSwgVE9CTigweGMwYWFlZTE3LCAweDU5N2Y4YzBlKX0sCisgICAgICAgICAge1RPQk4oMHgx
NWM0ZWRiOSwgMHg2YzE2OGFmMyksIFRPQk4oMHg2NTYzYzdiZiwgMHhiMzlhZTg3NSksCisgICAg
ICAgICAgIFRPQk4oMHhhZGZhZGI2ZiwgMHgyMGFkYjQzNiksIFRPQk4oMHhhZDU1ZThjOSwgMHg5
YTA0MmFjMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk3NWExZWQ4LCAweGI3NmRhMWY1KSwgVE9C
TigweDEwZGZhNDY2LCAweGE1OGFjYjk0KSwKKyAgICAgICAgICAgVE9CTigweDhkZDdmN2UzLCAw
eGFjMDYwMjgyKSwgVE9CTigweDY4MTNlNjZhLCAweDU3MmEwNTFlKX0sCisgICAgICAgICAge1RP
Qk4oMHhiNGNjYWUxZSwgMHgzNTBjYjkwMSksIFRPQk4oMHhiNjUzZDY1NiwgMHg1MGNiNzgyMiks
CisgICAgICAgICAgIFRPQk4oMHg0MjQ4NDcxMCwgMHhkZmFiM2I4NyksIFRPQk4oMHhjZDdlZTUz
NywgMHg5YjY3MGZkMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDBhNTBiMTJlLCAweDUyM2I4YmY2
KSwgVE9CTigweDgwMDllYjViLCAweDhmOTEwYzFiKSwKKyAgICAgICAgICAgVE9CTigweGY1MzVh
ZjgyLCAweDRhMTY3NTg4KSwgVE9CTigweDBmODM1ZjljLCAweGZiMmEyYWJkKX0sCisgICAgICAg
ICAge1RPQk4oMHhmNTliMjkzMSwgMHgyYWZjZWI2MiksIFRPQk4oMHhjNzk3ZGYyYSwgMHgxNjlk
MzgzZiksCisgICAgICAgICAgIFRPQk4oMHhlYjNmNWZiMCwgMHg2NmFjMDJiMCksIFRPQk4oMHgw
MjlkNGM2ZiwgMHhkYWEyZDBjYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ0MDU5YmMxLCAweGFm
YWI0YmM1KSwgVE9CTigweDgzM2Y1YzZmLCAweDU2NzgzMjQ3KSwKKyAgICAgICAgICAgVE9CTigw
eGI1MzQ2NjMwLCAweDhkMmQzNjA1KSwgVE9CTigweDgzMzg3ODkxLCAweGQzNGQ4NDMzKX0sCisg
ICAgICAgICAge1RPQk4oMHhkOTczYjMwZiwgMHhhZGQ5NDE5YSksIFRPQk4oMHhiY2NhMTA5OSwg
MHhhZmUzZmNlOCksCisgICAgICAgICAgIFRPQk4oMHgwODE3ODMxNSwgMHgwODA5YWFjNiksIFRP
Qk4oMHgwMWI3ZjIxYSwgMHg1NDBmMGYxMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDY1YzI5MjE5
LCAweDkwOTUyM2M4KSwgVE9CTigweGE2MmY2NDhmLCAweGEzYTFjNzQxKSwKKyAgICAgICAgICAg
VE9CTigweDg4NTk4ZDRmLCAweDYwYzllNTVhKSwgVE9CTigweGJjZTkxNDFiLCAweDBlNGYzNDdh
KX0sCisgICAgICAgICAge1RPQk4oMHg5YWY5N2Q4NCwgMHgzNWY5Yjk4OCksIFRPQk4oMHgwMjEw
ZGE2MiwgMHgzMjA0NzViNiksCisgICAgICAgICAgIFRPQk4oMHgzYzA3NmUyMiwgMHg5MTkxNDc2
YyksIFRPQk4oMHg3NTIwZGJkOSwgMHg0NGZjNzgzNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDZh
NmIyY2ZlLCAweGMxYWIxYmJkKSwgVE9CTigweGVmOGE2NWJlLCAweGRjNjUwOTM4KSwKKyAgICAg
ICAgICAgVE9CTigweDcyODU1NTQwLCAweDgwNWQ3YmM0KSwgVE9CTigweGRhMzg5Mzk2LCAweGVk
MTFmZGZkKX0sCisgICAgICAgICAge1RPQk4oMHhhOWQ1YmQzNiwgMHg3NDY2MDg3NiksIFRPQk4o
MHgxMWQ2N2M1NCwgMHhiNDVkZmYzNSksCisgICAgICAgICAgIFRPQk4oMHg2YWY3ZDE0OCwgMHhh
NGY1ZGE5NCksIFRPQk4oMHhiYjhkNGMzZiwgMHhjMGJiZWIzMSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDg3YTdlYmQxLCAweGUwYTFiMTJhKSwgVE9CTigweDFlNGVmODhkLCAweDc3MGJhOTVmKSwK
KyAgICAgICAgICAgVE9CTigweDhjMzMzNDVjLCAweGRjMmFlOWNiKSwgVE9CTigweGNlY2YxMjc2
LCAweDAxY2M4NDAzKX0sCisgICAgICAgICAge1RPQk4oMHg2ODdjMDEyZSwgMHgxYjM5YjgwZiks
IFRPQk4oMHhmZDkwZDBhZCwgMHgzNWMzM2JhNCksCisgICAgICAgICAgIFRPQk4oMHhhM2VmNWE2
NywgMHg1Yzk2NjFjMiksIFRPQk4oMHgzNjhmYzg4ZSwgMHhlMDE3NDI5ZSl9fSwKKyAgICAgICAg
IHt7VE9CTigweGQzMGM2NzYxLCAweDE5NmEyZmEyKSwgVE9CTigweDkzMWI5ODE3LCAweGJkNWIz
MTJlKSwKKyAgICAgICAgICAgVE9CTigweGJhMDEwMDBjLCAweDcyZjU0YTMxKSwgVE9CTigweGEy
MDNkMmM4LCAweDY2ZWFhNTQxKX0sCisgICAgICAgICAge1RPQk4oMHhmMmFiZGVlMCwgMHg5ODkz
OWRiMyksIFRPQk4oMHhlMzdkNmMyYywgMHgzZTYwNmMwMiksCisgICAgICAgICAgIFRPQk4oMHhm
MjkyMTU3NCwgMHg1MjFmZjY0MyksIFRPQk4oMHgyNzgxYjNjNCwgMHhkN2UyZmNhMyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDY2NDMwMGIwLCAweDc4NTBlYzA2KSwgVE9CTigweGFjNWEzOGI5LCAw
eDdkM2ExMGNmKSwKKyAgICAgICAgICAgVE9CTigweDkyMzMxODhkLCAweGUzNGFiMzlkKSwgVE9C
TigweGU3NzA1N2U0LCAweDUwNzJjYmI5KX0sCisgICAgICAgICAge1RPQk4oMHhiY2YwYzA0Miwg
MHhiNTllNzhkZiksIFRPQk4oMHg0Y2ZjOTFlOCwgMHgxZDk3ZGU1MiksCisgICAgICAgICAgIFRP
Qk4oMHg0NjYxYTI2YywgMHgzZWUwY2E0YSksIFRPQk4oMHg1NjIwYTRjMSwgMHhmYjg1MDdiYyl9
fSwKKyAgICAgICAgIHt7VE9CTigweDRiNDRkNGFhLCAweDA0OWY4NDJjKSwgVE9CTigweGNlYWJj
NWQ1LCAweDE1NDBlODJiKSwKKyAgICAgICAgICAgVE9CTigweDMwNjcxMGZkLCAweDE1YzZmMTU2
KSwgVE9CTigweGJlNWFlNTJiLCAweDYzZGIxZDcyKX0sCisgICAgICAgICAge1RPQk4oMHgwNmYx
ZTdlNiwgMHgzMzQ5NTdmMSksIFRPQk4oMHg1N2UzODhmMCwgMHgzMTE0NGE3MCksCisgICAgICAg
ICAgIFRPQk4oMHhmYjY5YmIyZiwgMHhkZjk2NDQ3YiksIFRPQk4oMHgwZjc4ZWJkMywgMHg3M2Uz
OGExMil9fSwKKyAgICAgICAgIHt7VE9CTigweGI4MjIyNjA1LCAweDJiN2NlNTQyKSwgVE9CTigw
eGU2ZDRjZTk5LCAweDc0NzJiZGUxKSwKKyAgICAgICAgICAgVE9CTigweDUzZTE2ZWJlLCAweDA5
ZDJmNGRhKSwgVE9CTigweDE4MGZmNDJlLCAweDUzYjkyYjJlKX0sCisgICAgICAgICAge1RPQk4o
MHhjNTliY2MwMiwgMHgyYzM0YTFjNiksIFRPQk4oMHgzODAzZDZmOSwgMHg0MjJjNDZjMiksCisg
ICAgICAgICAgIFRPQk4oMHgxOGFmZjc0ZiwgMHg1YzE0YThhMiksIFRPQk4oMHg1NWFlYmY4MCwg
MHgxMGEwOGIyOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDY2MDk3ZDU4LCAweDcxMzU1OTNmKSwg
VE9CTigweDMyZTZlZmY3LCAweDJiZTU3MGNkKSwKKyAgICAgICAgICAgVE9CTigweDU4NGU2YTEw
LCAweDJhOGM4NjBkKSwgVE9CTigweGNkMTg1ODkwLCAweGEyZWI0MTYzKX0sCisgICAgICAgICAg
e1RPQk4oMHg3Y2VhZTk5ZCwgMHg2ZDk3ZTEzNCksIFRPQk4oMHhkNDJjNmI3MCwgMHhkZDg0NDdj
ZSksCisgICAgICAgICAgIFRPQk4oMHg1OWRkYmI0YSwgMHhiOGM1MDI3MyksIFRPQk4oMHgwM2M2
MTJkZiwgMHgzY2YzNGUxZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDg0YjljYTE1LCAweDA0YjZj
NWEwKSwgVE9CTigweDM1MjE2ZjM5LCAweDE4ZjBlM2EzKSwKKyAgICAgICAgICAgVE9CTigweDNl
YzJkMmJjLCAweGJkOTg2YzAwKSwgVE9CTigweDhiZjU0NmQ5LCAweGQxOTIyOGZlKX0sCisgICAg
ICAgICAge1RPQk4oMHhkMWM2NTVhNCwgMHg0Y2Q2MjNjMyksIFRPQk4oMHgzNjZjZTcxOCwgMHg1
MDJiOGU1YSksCisgICAgICAgICAgIFRPQk4oMHgyY2ZjODRiNCwgMHhlZWEwYmZlNyksIFRPQk4o
MHhlMDFkNWNlZSwgMHhjZjQ0M2U4ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDhlYzA0NWQ5LCAw
eDAzNjUyMGY4KSwgVE9CTigweGRmYjNjM2QxLCAweDkyZDQwZTk4KSwKKyAgICAgICAgICAgVE9C
TigweDBiYWM0Y2NlLCAweGNjNTU5YTA0KSwgVE9CTigweDM1ZWNjYWU1LCAweDI0MGVhNmIxKX0s
CisgICAgICAgICAge1RPQk4oMHgxODBiMzJkYiwgMHhmOGE1YTBhYyksIFRPQk4oMHg1NDc5NzJh
NSwgMHhlYjY5OTcwMCksCisgICAgICAgICAgIFRPQk4oMHhhMzc2NTgwMSwgMHhjYTI2YmNhMCks
IFRPQk4oMHg1N2UwOWQwZSwgMHhhNjQ3ZjI1YSl9fSwKKyAgICAgICAgIHt7VE9CTigweGI5NTY5
NzBlLCAweDJmZGQyM2NjKSwgVE9CTigweGI4MDI4OGJjLCAweDU2ODJlOTcxKSwKKyAgICAgICAg
ICAgVE9CTigweGU2ZTZkOTFlLCAweDlhZTg2ZWJjKSwgVE9CTigweDA1NjRjODNmLCAweDhjOWYx
OTM5KX0sCisgICAgICAgICAge1RPQk4oMHg1NTE5MzJhMiwgMHgzOTU2MDM2OCksIFRPQk4oMHhl
ODkzNzUyYiwgMHgwNDljMjhlMiksCisgICAgICAgICAgIFRPQk4oMHgwYjAzY2VlNSwgMHhhNmEx
NThjMyksIFRPQk4oMHhlMTJkNjU2YiwgMHgwNDk2NDI2Myl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDRiNDc1NTRlLCAweDYzZTNiYzFkKSwgVE9CTigweGM3MTliNmEyLCAweDQ1MDQ0ZmY3KSwKKyAg
ICAgICAgICAgVE9CTigweDRmMjRkMzBhLCAweGU0OGRhYTA3KSwgVE9CTigweGEzZjM3NTU2LCAw
eGM4YzFlZGMzKX0sCisgICAgICAgICAge1RPQk4oMHg5YTQ3YmY3NiwgMHgwNzAwZDM2MCksIFRP
Qk4oMHhiYjFhMTgyNCwgMHg4MjJhZTRlMiksCisgICAgICAgICAgIFRPQk4oMHgyMmUyNzVhMywg
MHg4OWYxZmI0YyksIFRPQk4oMHg3MmIxYWEyMywgMHg5OTY4YzVmNSl9fSwKKyAgICAgICAgIHt7
VE9CTigweGE3NWZlYWNhLCAweGJlMDYzZjY0KSwgVE9CTigweDliMzkyZjQzLCAweGJjZTQ3YTA5
KSwKKyAgICAgICAgICAgVE9CTigweGQ0MjQxNTA5LCAweDFhZDA3YWNhKSwgVE9CTigweDRiMGM1
OTFiLCAweDhkMjZjZDBmKX0sCisgICAgICAgICAge1RPQk4oMHgyZDQyZGRmZCwgMHg5MmYxMTY5
YSksIFRPQk4oMHg2M2FlYjFhYywgMHg0Y2JmMjM5MiksCisgICAgICAgICAgIFRPQk4oMHgxZGU5
ZTg3NywgMHgwNjkxYTJhZiksIFRPQk4oMHhlYmU3OWFmNywgMHhkOTgwMjFkYSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGNmZGYyYTRlLCAweDQwZTUwYWNmKSwgVE9CTigweGYwYTk4YWQ3LCAweGFm
MDFkNjY1KSwKKyAgICAgICAgICAgVE9CTigweGVmYjY0MGJmLCAweDE4MzFiZTFmKSwgVE9CTigw
eDZmZThiZDJmLCAweDgwZTlhZGEwKX0sCisgICAgICAgICAge1RPQk4oMHg5NGMxMDNhMSwgMHg2
Y2FmYmM5MSksIFRPQk4oMHgxNzBmODc1OSwgMHg4MzA4ZTA4YyksCisgICAgICAgICAgIFRPQk4o
MHg1ZGUyZDJhYiwgMHg5NzgwZmY0ZiksIFRPQk4oMHg2NjY0NjZiYywgMHg0NWIyMDFmMil9fSwK
KyAgICAgICAgIHt7VE9CTigweDU4YWYyMDEwLCAweGY1YjM0M2JjKSwgVE9CTigweDBmMmU0MDBh
LCAweGYyZjE0MmZlKSwKKyAgICAgICAgICAgVE9CTigweDM0ODNiZmRlLCAweGE4NWY0YmRmKSwg
VE9CTigweGYwYjFkMDkzLCAweDAzYmZlYWE5KX0sCisgICAgICAgICAge1RPQk4oMHgyZWEwMWI5
NSwgMHhjNzA4MTYwMyksIFRPQk4oMHhlOTQzZTRjOSwgMHgzZGJhMTA5NyksCisgICAgICAgICAg
IFRPQk4oMHg0N2JlOTJhZCwgMHhiNDM4ZjNhNiksIFRPQk4oMHgwMGJiNzc0MiwgMHhlNWJmNjYz
Nil9fSwKKyAgICAgICAgIHt7VE9CTigweDEzNmI3MDgzLCAweDgyNDI5N2I0KSwgVE9CTigweDlk
MGU1NTgwLCAweDU1ODQ0NTVmKSwKKyAgICAgICAgICAgVE9CTigweGFiNDhjZWRjLCAweGYxYzdk
NjllKSwgVE9CTigweDUzYTllNDgxLCAweDJhMjU2ZTc2KX0sCisgICAgICAgICAge1RPQk4oMHgw
NDAyYjBlMCwgMHg2NWViMjQxMyksIFRPQk4oMHhkYWRiYmI4NCwgMHg4ZmM0MDdhNyksCisgICAg
ICAgICAgIFRPQk4oMHhhNjVjZDVhNCwgMHg4ZDdmNTQ5MiksIFRPQk4oMHgyMWQ0NDI5MywgMHg3
NGJhZTI5NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDY2OTE3Y2U2LCAweDNiNWYxY2M0KSwgVE9C
TigweDM3YWU1MmVhLCAweGNlODcyZTYyKSwKKyAgICAgICAgICAgVE9CTigweGJiMDg3YjcyLCAw
eDI5MDVmMjQ0KSwgVE9CTigweDEyMDc3MDg2LCAweDFlNmFmNzRmKX0sCisgICAgICAgICAge1RP
Qk4oMHg0YjY0NGU0OSwgMHgxMDU4ZWRlYSksIFRPQk4oMHg4Mjc1MTBlMywgMHhiNjM4Y2ExZCks
CisgICAgICAgICAgIFRPQk4oMHg4Y2YyYjcwNCwgMHg2MDM4NTkxYyksIFRPQk4oMHhmZmM4YjQ3
YSwgMHhmZTYzNTA2Myl9fSwKKyAgICAgICAgIHt7VE9CTigweDNhZTIyMGU2LCAweDFiNGQ1ZTYz
KSwgVE9CTigweGJkODY0NzQyLCAweDlkOTYxYjRiKSwKKyAgICAgICAgICAgVE9CTigweDYxMGMx
MDdlLCAweDliZDE2YmVkKSwgVE9CTigweDQyNzAzNTJhLCAweDExMjcxNDdiKX0sCisgICAgICAg
ICAge1RPQk4oMHg3ZDE3ZmZlNiwgMHg2NGNmYzUwZSksIFRPQk4oMHg1MGRlZTAxYSwgMHgxZTM2
Y2I0MiksCisgICAgICAgICAgIFRPQk4oMHgwNjhhNzYyMiwgMHgzNWRjNWY5YSksIFRPQk4oMHg5
YTA4ZDUzNiwgMHhkZjUzZjYyYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDRlZDcxNDU3LCAweDZi
ZTVmN2RlKSwgVE9CTigweGQ5MzAwNmY4LCAweGMyMjYzYzllKSwKKyAgICAgICAgICAgVE9CTigw
eGUwNzM2OTRjLCAweGNhY2FjYjM2KSwgVE9CTigweDJmZjdhNWI0LCAweDNhZTExOGFiKX0sCisg
ICAgICAgICAge1RPQk4oMHgzY2NlNTNmMSwgMHhjZDg3MTIzNiksIFRPQk4oMHhmMTU2YTM5ZCwg
MHhjMmFhNmQ1MiksCisgICAgICAgICAgIFRPQk4oMHg5Y2M1ZjI3MSwgMHhiMTk4ZDc2ZCksIFRP
Qk4oMHhiYzYxNWI2ZiwgMHg4MTM4M2QzOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGE1NDUzOGU4
LCAweGRlM2VlZTZiKSwgVE9CTigweDU4Yzc3NTM4LCAweGFiOTEwZDkxKSwKKyAgICAgICAgICAg
VE9CTigweDMxZTViZGJjLCAweDU4ZDI3OGJkKSwgVE9CTigweDNjZGU0YWRmLCAweGI5NjNhY2Fl
KX0sCisgICAgICAgICAge1RPQk4oMHhiMTg4MWZkMiwgMHg1MzAyMTY5YyksIFRPQk4oMHg4Y2E2
MGZhMCwgMHhhOTg5ZWQ4YiksCisgICAgICAgICAgIFRPQk4oMHhhMTk5OTQ1OCwgMHhmZjk2YTBl
ZSksIFRPQk4oMHhjMTE0MWYwMywgMHhhYzZjMjgzZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDc2
Nzc0MDhkLCAweDZkZmFmZWQzKSwgVE9CTigweDMzYTAxNjUzLCAweDM5NjYxNTg4KSwKKyAgICAg
ICAgICAgVE9CTigweDNjOWMxNWVjLCAweDBiNzI2ZmEwKSwgVE9CTigweDA5MGNmZDkzLCAweDZj
OWI1NmRhKX0sCisgICAgICAgICAge1RPQk4oMHhlMzRmNGJhZSwgMHhhM2M0MGFmNSksIFRPQk4o
MHgzNDY5ZWFkYiwgMHhkMjExMjlmMSksCisgICAgICAgICAgIFRPQk4oMHhjYzUxNjc0YSwgMHgx
ZTIwN2NlOCksIFRPQk4oMHgxZTI5M2IyNCwgMHhjODNiMWVmOSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDE3MTczZDEzLCAweDFlNmMwYmI0KSwgVE9CTigweDE5MDA0Njk1LCAweDkwNzc2ZDM1KSwK
KyAgICAgICAgICAgVE9CTigweGU3OTgwZTM0LCAweDZkZTZmOTIyKSwgVE9CTigweDg3MzU1NGNi
LCAweGY0ZGQ5YTIyKX0sCisgICAgICAgICAge1RPQk4oMHgwMzE2YzYyNywgMHhjYmYxOGE1MSks
IFRPQk4oMHg0ZDkzNjUxYiwgMHgzMDMyYzA4MSksCisgICAgICAgICAgIFRPQk4oMHgyMDdmMjc3
MSwgMHgzOTQ2ODM0ZCksIFRPQk4oMHgyYzA4ZDdiNCwgMHgzMGNkYmY4MCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDEzN2E0ZmI0LCAweDg2ZGYyYTYxKSwgVE9CTigweGExZWQ5YzA3LCAweGVjZjdi
NGEyKSwKKyAgICAgICAgICAgVE9CTigweGIyZTQ2MGUyLCAweDdiZDA0MmZmKSwgVE9CTigweGI3
ZjVlMmZhLCAweDVmNjJmNWVjKX0sCisgICAgICAgICAge1RPQk4oMHg3YWE2ZWM2YiwgMHhjYzI0
MjNiNyksIFRPQk4oMHg3NWNlMGE3ZiwgMHhiYTYzZWVhNyksCisgICAgICAgICAgIFRPQk4oMHg2
N2E0NWZiMSwgMHhmMjUwYTZlMSksIFRPQk4oMHg5M2JjOTE5YywgMHhlNTNjZGM5Zil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDkyNzFmNTZmLCAweDg3MTk0MmRmKSwgVE9CTigweDIzNzJmZjZmLCAw
eDc4NTlhZDY2KSwKKyAgICAgICAgICAgVE9CTigweDVmNGMyYjk2LCAweDMzY2IxYTc4KSwgVE9C
TigweGUzZTI5MTAxLCAweDU4MzhhYTgzKX0sCisgICAgICAgICAge1RPQk4oMHhhN2VkMTYxMSwg
MHhlNGU4MTEwYyksIFRPQk4oMHgyYTJkNzBkNSwgMHgzMzAxOThjZSksCisgICAgICAgICAgIFRP
Qk4oMHhiZGYxMzJlOCwgMHg2NzIwZWZlMCksIFRPQk4oMHhlNjFhODk2MiwgMHg2NmE0NzFiZil9
fSwKKyAgICAgICAgIHt7VE9CTigweDc5NmQzYTg1LCAweDgyNTgwOGJkKSwgVE9CTigweDUxZGMz
Y2I3LCAweDNmZDZlOTAyKSwKKyAgICAgICAgICAgVE9CTigweDY0M2M3NjhhLCAweDkxNjIxOWQx
KSwgVE9CTigweDM2Y2Q3Njg1LCAweGEyYWQ3ZDMyKX0sCisgICAgICAgICAge1RPQk4oMHhlM2Ri
OWQwNSwgMHhiMjI5MjJhNCksIFRPQk4oMHg2NDk0Yzg3ZSwgMHhkYmEyOTY2MCksCisgICAgICAg
ICAgIFRPQk4oMHhmMGFjOTFkZiwgMHhiY2QyZWJjNyksIFRPQk4oMHg0ZGViNTdhMCwgMHg0NTEw
N2Y4ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDQyMjcxZjU5LCAweGMzZDEyYTczKSwgVE9CTigw
eDVmNzE2ODdjLCAweGE1YzJjNTFkKSwKKyAgICAgICAgICAgVE9CTigweGNiMWY1MGM2LCAweDA1
Nzk3YmNiKSwgVE9CTigweDI5ZWQwZWQ5LCAweGQ2ZDM0ZWIwKX0sCisgICAgICAgICAge1RPQk4o
MHhlNWZlNWI0NywgMHg0NjgzYzJlYiksIFRPQk4oMHg0OTU2ZWViNSwgMHg5NzQ0N2M0NiksCisg
ICAgICAgICAgIFRPQk4oMHg1YjE2M2E0MywgMHg3MTIwNzE2NyksIFRPQk4oMHg5M2ZhMmZlZCwg
MHgwMjQ4YzVlZil9fSwKKyAgICAgICAgIHt7VE9CTigweDY3OTMwYWYyLCAweDMxZjYzOTUwKSwg
VE9CTigweGE3Nzc5N2MxLCAweDE0Y2FhMmM5KSwKKyAgICAgICAgICAgVE9CTigweDUyNmU4MGVl
LCAweDI3YWM3ZTYyKSwgVE9CTigweGUxZTZlNjI2LCAweDU4YjI4YWVjKX0sCisgICAgICAgICAg
e1RPQk4oMHg2MzYxNzhiMCwgMHhiM2M5ZmVmMCksIFRPQk4oMHhhZjc3NTJlMCwgMHg2ZDVmOTBi
ZSksCisgICAgICAgICAgIFRPQk4oMHg5NGVjYWYxOCwgMHhlZWNlNTFjZiksIFRPQk4oMHgyODY0
ZDBlZCwgMHhjYTgwNmUxZil9fSwKKyAgICAgICAgIHt7VE9CTigweDZkZTJlMzgzLCAweDk3YzY5
MTM0KSwgVE9CTigweDVhNDJjMzE2LCAweGViMjkxMjkzKSwKKyAgICAgICAgICAgVE9CTigweGM3
Nzc5MjE5LCAweDZhNjBiYWUwKSwgVE9CTigweGEyNGRlMzQ2LCAweDZiNzU5OWQxKX0sCisgICAg
ICAgICAge1RPQk4oMHg0OWQzNzRhYSwgMHhiNzVkNDk0MSksIFRPQk4oMHg5ODkwMDU4NiwgMHgy
ZDUwMWZmMCksCisgICAgICAgICAgIFRPQk4oMHg5ZjE2ZDQwZSwgMHhlYjc5NzRjZiksIFRPQk4o
MHgxMDMzODYwYiwgMHhjZGQ4YzExNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGI2YzY5YWM4LCAw
eDIwOTRjZWMzKSwgVE9CTigweDk5NzZmYjg4LCAweDQwM2I3NzBjKSwKKyAgICAgICAgICAgVE9C
TigweDFkZWEwMjZjLCAweDQ4NTk1OTBkKSwgVE9CTigweGI2YWNiYjQ2LCAweDg1NjJkMWZkKX0s
CisgICAgICAgICAge1RPQk4oMHg3Y2Q2YzQ2MSwgMHg0NDU2OWQ4NSksIFRPQk4oMHhjMzE5MGEz
NiwgMHg5N2YwODkxZCksCisgICAgICAgICAgIFRPQk4oMHhjNmY1MzE5NSwgMHg0OGQ1YTE3ZCks
IFRPQk4oMHg3ZDkxOTk2NiwgMHhkNzQ5YWJjOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDY1MTA0
ODM3LCAweGRkMWM4YTIwKSwgVE9CTigweDdlNTQxMGM4LCAweDJmNjgzNDE5KSwKKyAgICAgICAg
ICAgVE9CTigweDk1OGMzY2E4LCAweGJlOTQwMjJlKSwgVE9CTigweDYwNWMzMTk3LCAweDYxNDVk
YWMyKX0sCisgICAgICAgICAge1RPQk4oMHgzZmMwNzUwMSwgMHgwMTY4M2Q1NCksIFRPQk4oMHgx
ZDcxMjdjNSwgMHg1OTViMTIzNCksCisgICAgICAgICAgIFRPQk4oMHgxMGI4Zjg3YywgMHg5NDgx
Mjc3ZiksIFRPQk4oMHg2NzdkYjJhOCwgMHhlNjVhMWFkYil9fSwKKyAgICAgICAgIHt7VE9CTigw
eGVjMmZjY2FhLCAweGRkY2UzMzQ1KSwgVE9CTigweDJhNjgxMWI3LCAweDAxMmE0MzUwKSwKKyAg
ICAgICAgICAgVE9CTigweDk2NzYwZmYxLCAweGFjNTk4YmRjKSwgVE9CTigweDA1NGQ2NTJhLCAw
eGQxYmY0MTI4KX0sCisgICAgICAgICAge1RPQk4oMHgwYTExNTFkNCwgMHg5MmEyMTAwNSksIFRP
Qk4oMHhhZDdmMzk3MSwgMHgzMzExMGZkZiksCisgICAgICAgICAgIFRPQk4oMHg4Yzk1OTI4Yywg
MHgxOTYwMTAwZiksIFRPQk4oMHg2YzkxYzgyNSwgMHg3YmYwMzM2Mil9fSwKKyAgICAgICAgIHt7
VE9CTigweGM4YzhiMmEyLCAweGNlMzA5ZjA2KSwgVE9CTigweGZkYjI3YjU5LCAweGNhMjcyMDRi
KSwKKyAgICAgICAgICAgVE9CTigweGQyMjNlYWE1LCAweDA4NDhlMzJlKSwgVE9CTigweGI5M2U0
YjJlLCAweGU3YmZhZjFlKX0sCisgICAgICAgICAge1RPQk4oMHhjNTMwOGFlNiwgMHg0NGFhM2Rl
ZCksIFRPQk4oMHgzMTdhNjY2YSwgMHhjMDE1ZDU3MyksCisgICAgICAgICAgIFRPQk4oMHhjODg4
Y2UyMywgMHgxYTk3OTcwNyksIFRPQk4oMHhmMTQxYzFlNiwgMHgwZDVjNDk1OCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGI1M2I3ZGU1LCAweDYxOTA2MzczKSwgVE9CTigweDg1OGRiYWRlLCAweGVi
OTk5NTk1KSwKKyAgICAgICAgICAgVE9CTigweDhjYmI0N2IyLCAweGE1OWU1YzM2KSwgVE9CTigw
eDY2MDMxOGIzLCAweGRjZjRlODQyKX0sCisgICAgICAgICAge1RPQk4oMHhiZDE2MWNjZCwgMHgx
MmJhNGI3YSksIFRPQk4oMHhmMzk5ZGFhYiwgMHhmOGM4MjgyYSksCisgICAgICAgICAgIFRPQk4o
MHgxNTg3NjMzYSwgMHhlZWIyMTMwZCksIFRPQk4oMHhhNDY1MzExYSwgMHhkYTM4ZGQ3ZCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDVmNzVlZWM4LCAweDY0ZDM3NzliKSwgVE9CTigweDNjNWQwNDc2
LCAweGFkNjRjMTcxKSwKKyAgICAgICAgICAgVE9CTigweDg3NDEwMzcxLCAweDJhOTE0NDI4KSwg
VE9CTigweDgwOTZhODkxLCAweDkwZTJmYzI5KX0sCisgICAgICAgICAge1RPQk4oMHhkM2QyYWU5
ZCwgMHgyM2IzZWJjMiksIFRPQk4oMHg5MGJkZDZkYiwgMHhhNTgwY2ZkNiksCisgICAgICAgICAg
IFRPQk4oMHg1MmRiYjdmMywgMHhjNWIwMWY2YyksIFRPQk4oMHhlNjhlZGVkNCwgMHhlMTAyYTJk
Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDE3Nzg1Yjc3LCAweDk5ZWI2ZGYwKSwgVE9CTigweDI2
YzNjYzUxLCAweDczODZiNzc5KSwKKyAgICAgICAgICAgVE9CTigweDM0NWVkOTg4LCAweDY0MTdh
NDhlKSwgVE9CTigweGU5OTBiNGU0LCAweDA3ZDZlZjMxKX0sCisgICAgICAgICAge1RPQk4oMHgw
ZjQ1NmI3ZSwgMHgyNTg2YWJiYSksIFRPQk4oMHgyMzljYTZhNSwgMHg1OWM5NmU5YSksCisgICAg
ICAgICAgIFRPQk4oMHhlMzI3NDU5YywgMHhlMmViNDIwNiksIFRPQk4oMHgzYTRjMzMxMywgMHhh
MDAyYjkwYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDJhMTE0ODA2LCAweGY2YTNmNmZiKSwgVE9C
TigweGFkNWNhZDJmLCAweDg1YzI1MWRkKSwKKyAgICAgICAgICAgVE9CTigweDkyYzFmNjEzLCAw
eGY1YTc4NGQzKSwgVE9CTigweGVjN2JmYWNmLCAweDM0OTc2NmQ1KX0sCisgICAgICAgICAge1RP
Qk4oMHgwNGIzY2QzMywgMHgzZTIzY2IzYiksIFRPQk4oMHgzOTc5ZmU4NCwgMHhjNWE2NGIyZCks
CisgICAgICAgICAgIFRPQk4oMHgxOTJlMjcyMCwgMHg3ZTU4OTEwNiksIFRPQk4oMHhhNjBjNDNk
MSwgMHhhMTViNTI3Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDJkYWU5MDgyLCAweGJlN2NmM2E2
KSwgVE9CTigweGNjODZiYTkyLCAweGJjOTY3Mjc0KSwKKyAgICAgICAgICAgVE9CTigweGYyOGEy
Y2U4LCAweGFlYTBhOGE5KSwgVE9CTigweDQwNGNhNmQ5LCAweDZlZTk4OGIzKX0sCisgICAgICAg
ICAge1RPQk4oMHhmZDdlOWM1ZCwgMHgwMDU5MjFiOCksIFRPQk4oMHhmNTYyOTdmMSwgMHg0NGU3
OWJmOSksCisgICAgICAgICAgIFRPQk4oMHhhMTYzYjQ2MCwgMHgwZDc1ZGRjMiksIFRPQk4oMHgz
MGIyMzYxNiwgMHhhMWYyYmU4Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDRiMDcwZDIxLCAweGJm
ZTUwZTJiKSwgVE9CTigweDdlZjhjZmQwLCAweGUxYmZlZGUxKSwKKyAgICAgICAgICAgVE9CTigw
eGFkYmEwMDExLCAweDJhYWM0YWUwKSwgVE9CTigweDJhM2U3ZDAxLCAweGI5ZWJkMDMzKX0sCisg
ICAgICAgICAge1RPQk4oMHg5OTUyNzdlYywgMHhlMzhkOWQxYyksIFRPQk4oMHhiNTAwMjQ5ZSwg
MHg5YzVkMmRlMyksCisgICAgICAgICAgIFRPQk4oMHg4OTEyYjgyMCwgMHhmMTNjYThjOSksIFRP
Qk4oMHhjODc5ODExNCwgMHg4Nzc3OTNhZil9fSwKKyAgICAgICAgIHt7VE9CTigweDE5ZTYxMjVk
LCAweGVjM2YxZGVjKSwgVE9CTigweDA3YjFmMDQwLCAweDkxMTE3OGRhKSwKKyAgICAgICAgICAg
VE9CTigweGQ5M2VkZWRhLCAweDkwNGE2NzM4KSwgVE9CTigweDU1MTg3YTVhLCAweDBiZWJlZGNk
KX0sCisgICAgICAgICAge1RPQk4oMHhmN2QwNDcyMiwgMHhlYjMyOWQ0MSksIFRPQk4oMHhmNDQ5
MDk5ZSwgMHhmMTcwYjM5MSksCisgICAgICAgICAgIFRPQk4oMHhmZDMxN2E2OSwgMHhjYTk5Zjgy
OCksIFRPQk4oMHg1MGMzZGIyYiwgMHgzNGE0OTc2ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweGU5
YmE3Nzg0LCAweDM3NTdiMzkyKSwgVE9CTigweDMyNmNhZWZkLCAweGFhM2NhMDVhKSwKKyAgICAg
ICAgICAgVE9CTigweDc4ZTUyOTNiLCAweGYxZTU5M2Q0KSwgVE9CTigweDc4NDJhOTM3LCAweDBk
OThmZDEzKX0sCisgICAgICAgICAge1RPQk4oMHhlNjk0YmY5NiwgMHg1Zjk2YjEwZCksIFRPQk4o
MHgzNzNhOWRmNiwgMHgwNmE4Y2QwNSksCisgICAgICAgICAgIFRPQk4oMHg5OTdkMWU1MSwgMHhl
OGYwYzdmYyksIFRPQk4oMHgxZDAxOTc5MCwgMHg2M2ZkOTcyZSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDAwNjRkODU4LCAweDU0OTlmYjMyKSwgVE9CTigweDdiNjdiYWQ5LCAweDc3YThhZWI3KSwK
KyAgICAgICAgICAgVE9CTigweDFkM2ViOTc3LCAweDJkMDhlZWM1KSwgVE9CTigweDVmYzA0N2E2
LCAweGNiYWJhZTFkKX0sCisgICAgICAgICAge1RPQk4oMHgwNTc3ZDE1OSwgMHhlNTRhNjRiYiks
IFRPQk4oMHg4ODYyMjAxYiwgMHhjNDM0OTdlNCksCisgICAgICAgICAgIFRPQk4oMHhhZDZiNGUy
OCwgMHgyY2UwNjA4ZCksIFRPQk4oMHg4YjY4N2I3ZCwgMHgwYjE2N2FhYyl9fSwKKyAgICAgICAg
IHt7VE9CTigweDZlZDRkMzY3LCAweDhiMmVjZmE5KSwgVE9CTigweDI0ZGZlNjJkLCAweGE5MGMz
YzM4KSwKKyAgICAgICAgICAgVE9CTigweGExODYyZTEwLCAweDNmZTVjNDJiKSwgVE9CTigweDFj
YTczZGNhLCAweGQ1NzMyYTlmKX0sCisgICAgICAgICAge1RPQk4oMHgzNWYwMzhiNywgMHg3NmJi
ODdhZCksIFRPQk4oMHg2NzQ5NzZhYiwgMHhmMjQyYjgxZiksCisgICAgICAgICAgIFRPQk4oMHg0
ZjJiZGU3ZSwgMHhiMGZkOTBjZCksIFRPQk4oMHg2ZWZjMTcyZSwgMHhhN2ZkZjA5Mil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDM4MDZiNjliLCAweDkyMjIyZjFmKSwgVE9CTigweDVhMjQ1OWNhLCAw
eDZjZjdhZTcwKSwKKyAgICAgICAgICAgVE9CTigweDY3ODlmNjljLCAweGE4NTIxN2VlKSwgVE9C
TigweDVmMjMyYjVlLCAweGUzZGM4NWFjKX0sCisgICAgICAgICAge1RPQk4oMHg2NjBlM2VjNSwg
MHg0OGU5ZTUxNiksIFRPQk4oMHgxMjRiNGU0NywgMHgzMTk3ZWIzMSksCisgICAgICAgICAgIFRP
Qk4oMHgxMGEwY2IxMywgMHhhYWZjY2EyMyksIFRPQk4oMHg3YmQ2M2JhNCwgMHg4MjEzMjI0Zil9
fSwKKyAgICAgICAgIHt7VE9CTigweGFmZmFkN2NjLCAweDI5MGE3ZjRmKSwgVE9CTigweDZiNDA5
YzllLCAweDAyODZiNDYxKSwKKyAgICAgICAgICAgVE9CTigweDU4YWI4MDlmLCAweGZmYTQwN2Fm
KSwgVE9CTigweGMzMTIyZWVkLCAweGM2OGFjMDczKX0sCisgICAgICAgICAge1RPQk4oMHgxN2Jm
OWU1MCwgMHg0ZWYyNGQ3ZSksIFRPQk4oMHg1ZDkyOTc5NCwgMHgzZTJhNTgxMSksCisgICAgICAg
ICAgIFRPQk4oMHg1MTliYzg2NywgMHgwMjkwMmUwMSksIFRPQk4oMHg3NmJiYTVkYSwgMHgzOWM4
YTg1MSl9fSwKKyAgICAgICAgIHt7VE9CTigweGU5Zjk2NjljLCAweGRhOTQ5NTFlKSwgVE9CTigw
eDRiNmFmNThkLCAweDY2YjhkNDE4KSwKKyAgICAgICAgICAgVE9CTigweGZhMzIxMDc0LCAweDE3
ZDQyNmE0KSwgVE9CTigweGM3OGU2NmE5LCAweDlkZGU2MDI3KX0sCisgICAgICAgICAge1RPQk4o
MHgwNTE2YzA4MywgMHg0YTUzYjk2NCksIFRPQk4oMHhmYzY1OWQzOCwgMHhmZjYwMjMzMCksCisg
ICAgICAgICAgIFRPQk4oMHgwYWI1NWU1YywgMHg1OGM1Yzg5NyksIFRPQk4oMHg5ODUwOTliMiwg
MHg4MzhiYzVkZil9fSwKKyAgICAgICAgIHt7VE9CTigweDA2MWQ5ZWZjLCAweGM1MmZjMjM4KSwg
VE9CTigweDcxMmIyNzI4LCAweDZhYzFkYTNmKSwKKyAgICAgICAgICAgVE9CTigweGZiNjU4MTQ5
LCAweDkyODNmZTA4KSwgVE9CTigweDQ5NTRhYzk0LCAweGI4YWFhMmY3KX0sCisgICAgICAgICAg
e1RPQk4oMHg4NWMwYWRhNCwgMHg3ZmIyZTc0ZiksIFRPQk4oMHhlZThiYTk4ZSwgMHhiODk5MjZi
MCksCisgICAgICAgICAgIFRPQk4oMHhlNGY5ZDM3ZCwgMHgyM2QxYWY1YiksIFRPQk4oMHgxNGNj
ZGJmOSwgMHhiYTliMDE1ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGI2NzQ0ODFiLCAweDdiZmU3
MTc4KSwgVE9CTigweDRlMWRlYmFlLCAweDY1NDA1ODY4KSwKKyAgICAgICAgICAgVE9CTigweDA2
MWIyODIxLCAweGM0OGM4NjdkKSwgVE9CTigweDY5YzE1YjM1LCAweDUxM2IzMGVhKX0sCisgICAg
ICAgICAge1RPQk4oMHgzYjRhMTY2NiwgMHgzNjg3MTA4OCksIFRPQk4oMHhlNWUyOWY1ZCwgMHgx
MjIwYjFmZiksCisgICAgICAgICAgIFRPQk4oMHg0YjgyYmIzNSwgMHgyMzNkOWY0ZCksIFRPQk4o
MHg0ZTA3NjMzMywgMHgxOGNkYzY3NSl9fX0sCisgICAgICAgIHt7e1RPQk4oMHgwZDUzZjVjNywg
MHhhM2U2ZmNlZCksIFRPQk4oMHhlOGNiYmRkNSwgMHhmNDVmYmRlYiksCisgICAgICAgICAgIFRP
Qk4oMHhmODVjMDFkZiwgMHgxMzMzOWE3MCksIFRPQk4oMHgwZmY3MTg4MCwgMHgxNDJjZWI4MSl9
LAorICAgICAgICAgIHtUT0JOKDB4NGM0ZTg3NzQsIDB4YmQ3MDQzN2EpLCBUT0JOKDB4NWZiMzI4
OTEsIDB4YmEwYmRhNmEpLAorICAgICAgICAgICBUT0JOKDB4MWNkYmViZDIsIDB4ZjE4YmQyNmUp
LCBUT0JOKDB4MmY5NTI2ZjEsIDB4MDNhOWQ1MjIpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MGNl
MzA1MSwgMHg5MmM0ZDY4NCksIFRPQk4oMHg4YjA0ZDcyNSwgMHg3NjEyZWZjZCksCisgICAgICAg
ICAgIFRPQk4oMHhiOWRjZGEzNiwgMHg2ZjljYWUyMCksIFRPQk4oMHgwZWRjNGQyNCwgMHhmMDU4
ODU2Yyl9LAorICAgICAgICAgIHtUT0JOKDB4NjRmMmU2YmYsIDB4ODU0Mjc5MDApLCBUT0JOKDB4
M2RlODEyOTUsIDB4ZGMwOWRmZWEpLAorICAgICAgICAgICBUT0JOKDB4ZDQxYjQ0ODcsIDB4Mzc5
YmYyNmMpLCBUT0JOKDB4NTBiNjJjNmQsIDB4NmRmMTM1YTkpfX0sCisgICAgICAgICB7e1RPQk4o
MHhkNGY4ZTNiNCwgMHhjNzJkZmU2NyksIFRPQk4oMHhjNDE2YjBmNiwgMHg5MGUxOWZkZiksCisg
ICAgICAgICAgIFRPQk4oMHgxOGI5MDk4ZCwgMHg0YzEzYmQzNSksIFRPQk4oMHhhYzExMTE4YSwg
MHgxNWI4Y2I5ZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZjU5OGEzMTgsIDB4ZjAwNjI4NDEpLCBU
T0JOKDB4YmZlMDYwMmYsIDB4ODlmMzU2ZjQpLAorICAgICAgICAgICBUT0JOKDB4N2FlMzYzN2Us
IDB4MzAxNzdhMGMpLCBUT0JOKDB4MzQwOTc3NDcsIDB4NjExMzY1MzcpfX0sCisgICAgICAgICB7
e1RPQk4oMHgwZGIyZmI1ZSwgMHhkMDA1ODMyYSksIFRPQk4oMHg1ZjVlZmQzYiwgMHg5MTA0MmU0
ZiksCisgICAgICAgICAgIFRPQk4oMHg4YzRmZmRjNiwgMHhlZDcwZjhjYSksIFRPQk4oMHhlNDY0
NWQwYiwgMHhiNTJkYTljYyl9LAorICAgICAgICAgIHtUT0JOKDB4OTU5NmY1OGIsIDB4YzkwMDFk
MWYpLCBUT0JOKDB4NTJjOGYwYmMsIDB4NGUxMTcyMDUpLAorICAgICAgICAgICBUT0JOKDB4ZmQ0
YWEwZDIsIDB4ZTM5OGEwODQpLCBUT0JOKDB4ODE1YmZlM2EsIDB4MTA0ZjQ5ZGUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg5N2U1NDQzZiwgMHgyMzg4NWU1ZiksIFRPQk4oMHhmNzJmOGY5OSwgMHhl
ODQzM2FhYiksCisgICAgICAgICAgIFRPQk4oMHhiZDAwYjE1NCwgMHhlNGQ0ZTYwNCksIFRPQk4o
MHhkMGIzNWU2YSwgMHhlNWUxNzNmZil9LAorICAgICAgICAgIHtUT0JOKDB4NTdiMmEwNDgsIDB4
OTE2NDcyMmQpLCBUT0JOKDB4M2UzYzY2NWIsIDB4ODg3NjFlYzgpLAorICAgICAgICAgICBUT0JO
KDB4NmJkZDEzOTcsIDB4M2RhODM4MzIpLCBUT0JOKDB4M2M4YjFhMWUsIDB4NzNkYWZlM2IpfX0s
CisgICAgICAgICB7e1RPQk4oMHg0NDk3YWNlNiwgMHg1NDMxN2NhYyksIFRPQk4oMHhiZTYwMGFi
OSwgMHg1MjE3NzFiMyksCisgICAgICAgICAgIFRPQk4oMHhiNDJlNDA5ZSwgMHhiMGRmZThiOCks
IFRPQk4oMHgzODZhNjdkNywgMHgzOTQyMzEwZil9LAorICAgICAgICAgIHtUT0JOKDB4MjU1NDhk
OGQsIDB4NDQzMWNjMjgpLCBUT0JOKDB4YTdjZmYxNDIsIDB4OTg1ZGM1MjQpLAorICAgICAgICAg
ICBUT0JOKDB4NGQ2MGY1YTEsIDB4OTNjNGJlMzIpLCBUT0JOKDB4ODNlYmQ1YzgsIDB4ZDA3MWM2
ZTEpfX0sCisgICAgICAgICB7e1RPQk4oMHhiYTNhODBhNywgMHhiMWZkMmIwYiksIFRPQk4oMHg5
YjNhZDM5NiwgMHg1YmVjMzNlOCksCisgICAgICAgICAgIFRPQk4oMHhiMzg2OGQ2MSwgMHg3OTc0
M2ZiMyksIFRPQk4oMHhjZmQxNjlmYywgMHhmZGI0NjJmYSl9LAorICAgICAgICAgIHtUT0JOKDB4
ZDNiNDk5ZDcsIDB4OWNlMGE2YWYpLCBUT0JOKDB4NTVkYzFjZjEsIDB4ZTQyZDNmZjgpLAorICAg
ICAgICAgICBUT0JOKDB4MDRmYjllNmMsIDB4YzZjM2UxYjIpLCBUT0JOKDB4NDdlNjk2MWQsIDB4
NmY2OWE0NzQpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NGViM2FjYywgMHhlNTQ4YjM3YiksIFRP
Qk4oMHhiMzhlNzU0MiwgMHg4NGQ0MDU0OSksCisgICAgICAgICAgIFRPQk4oMHg4YzNkYWE1MSwg
MHg3YjM0MWI0ZiksIFRPQk4oMHgyZjY5MjhlYywgMHg2OTBiZjdmYSl9LAorICAgICAgICAgIHtU
T0JOKDB4MDQ5NmIzMjMsIDB4ODZjZTZjNDEpLCBUT0JOKDB4MDFiZTFjNTUsIDB4MTBhZGFkY2Qp
LAorICAgICAgICAgICBUT0JOKDB4YzA0ZTY3ZTcsIDB4NGJiNWZhZjkpLCBUT0JOKDB4M2NiYWY2
NzgsIDB4ZTE1Yzk5ODUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4Y2QxMjE0NSwgMHg1MGNhNDI0
NyksIFRPQk4oMHhiYTFhYTQ3YSwgMHhlN2RkMzBhYSksCisgICAgICAgICAgIFRPQk4oMHgyZjgx
ZGRmMSwgMHhlNThmZWUyNCksIFRPQk4oMHgwMzQ1MjkzNiwgMHhlZWM5YjBlOCl9LAorICAgICAg
ICAgIHtUT0JOKDB4OGJkYzNiODEsIDB4MjQzYWVhOTYpLCBUT0JOKDB4OWEyOTE5YWYsIDB4MTVj
M2QwZTUpLAorICAgICAgICAgICBUT0JOKDB4OWVhNjQwZWMsIDB4MTA5NDgzNjEpLCBUT0JOKDB4
NWFjODZkNWIsIDB4NmUwYmNjY2YpfX0sCisgICAgICAgICB7e1RPQk4oMHhmODkyZDkxOCwgMHhj
MzZjZjQ0MCksIFRPQk4oMHhhZWQzZTgzNywgMHhjOTM5NzE5YyksCisgICAgICAgICAgIFRPQk4o
MHhiMDdiMDhkMiwgMHhjMDIxOGI2NCksIFRPQk4oMHg2ZjFiY2JiYSwgMHhjZTk3OTBkZCl9LAor
ICAgICAgICAgIHtUT0JOKDB4NGE4NGQ2ZWQsIDB4NjA5MTliOGUpLCBUT0JOKDB4ZDg5MDA3OTEs
IDB4OGFjMWY5ZWIpLAorICAgICAgICAgICBUT0JOKDB4Zjg0OTQxYWEsIDB4MGRkNWRhZWYpLCBU
T0JOKDB4YjIyZmU0MGEsIDB4NjdmZDYyYzUpfX0sCisgICAgICAgICB7e1RPQk4oMHg5N2UxNWJh
MiwgMHgxNTdmMmRiMyksIFRPQk4oMHhiZGEyZmM4ZiwgMHg4ZTI4Y2E5YyksCisgICAgICAgICAg
IFRPQk4oMHg1ZDA1MGRhNCwgMHgzN2I5ZjQ1NCksIFRPQk4oMHgzZDU3ZWI1NywgMHgyMzc5ZDcy
ZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZTliNWViYTIsIDB4ZmI1ZWU5OTcpLCBUT0JOKDB4MDE2
NDhjYTIsIDB4ZTExNTM4Y2EpLAorICAgICAgICAgICBUT0JOKDB4MzJiYjc2ZjYsIDB4ZjYzMjc5
NzQpLCBUT0JOKDB4MzM4ZjE0YjgsIDB4ZmYzZjRiYjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg1
MjRkMjI2YSwgMHhkN2FiOWEyZCksIFRPQk4oMHg5YzAwMDkwZCwgMHg3ZGZhZTk1OCksCisgICAg
ICAgICAgIFRPQk4oMHgwYmE1ZjUzOSwgMHg4NzUxZDhjMiksIFRPQk4oMHg4YWZjYmNkZCwgMHgz
YWI4MjYyZCl9LAorICAgICAgICAgIHtUT0JOKDB4NTczOTI3MjksIDB4ZTk5ZDA0M2IpLCBUT0JO
KDB4ZWY1MTI2M2IsIDB4YWViYzk0M2EpLAorICAgICAgICAgICBUT0JOKDB4OWZlYWNlOTMsIDB4
MjA4NjI5MzUpLCBUT0JOKDB4NjM5ZWZjMDMsIDB4YjA2YzgxN2IpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgxZmUwNTRiMywgMHg2NmI0YmU3YSksIFRPQk4oMHgzZjI1YTlkZSwgMHg4NGEzN2ExZSks
CisgICAgICAgICAgIFRPQk4oMHhmMzllZjFhZCwgMHg3OGQ3NWNkOSksIFRPQk4oMHhkN2I1OGY0
OSwgMHg1MDYyYzFiNSl9LAorICAgICAgICAgIHtUT0JOKDB4NmY3NGY5YTksIDB4ZmY1NjM0MzYp
LCBUT0JOKDB4ZjcxOGZmMjksIDB4ZThhZjUxZTcpLAorICAgICAgICAgICBUT0JOKDB4NTIzNGQz
MTMsIDB4MTVlOTdmZWMpLCBUT0JOKDB4YjZhOGUyYjEsIDB4MjkyZjFjMGEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhhN2Y1M2FhOCwgMHgzMjc3MjBjMSksIFRPQk4oMHg5NTZjYTMyMiwgMHhiYTA5
MmNjOCksCisgICAgICAgICAgIFRPQk4oMHg4ZjAzZDY0YSwgMHgyODc0NmM0ZCksIFRPQk4oMHg1
MWZlMTc4MiwgMHg2NmQwZDM5Mil9LAorICAgICAgICAgIHtUT0JOKDB4ZDE5YjM0ZGIsIDB4M2M4
MzJjODApLCBUT0JOKDB4NjBkY2NjNWMsIDB4NmRhMmUzYjQpLAorICAgICAgICAgICBUT0JOKDB4
MjQ1ZGQ2MmUsIDB4MGExMDRjY2MpLCBUT0JOKDB4YTdhYjFkZTEsIDB4NjIwYjIxZmQpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhiMjkzYWUwYiwgMHgzODkzZDEyMyksIFRPQk4oMHhmN2I3NTc4Mywg
MHhiMTVlZTcxYyksCisgICAgICAgICAgIFRPQk4oMHg1YWEzYzYxNCwgMHg0MmE5NDY4YiksIFRP
Qk4oMHhkNjg2MTIzYywgMHhkYjE1ZDc0NCl9LAorICAgICAgICAgIHtUT0JOKDB4OGM2MTY4OTEs
IDB4YTdhYjQxMTYpLCBUT0JOKDB4NmZjZDcyYzgsIDB4YTRlNmE0NTkpLAorICAgICAgICAgICBU
T0JOKDB4YWMyMTkxMTAsIDB4NzdlNWZhZDcpLCBUT0JOKDB4ZmI2YTIwZTcsIDB4NzA0ZmE0NmIp
fX0sCisgICAgICAgICB7e1RPQk4oMHhlODM5YmU3ZCwgMHgzNDFkODFkYyksIFRPQk4oMHhjZGRi
Njg4OSwgMHgzMjE0ODM3OSksCisgICAgICAgICAgIFRPQk4oMHhkYTYyMTFhMSwgMHhmNzAyNmVh
ZCksIFRPQk4oMHhmM2IyNTc1ZiwgMHhmNGQxY2M1ZSl9LAorICAgICAgICAgIHtUT0JOKDB4NDBj
ZmM4ZjYsIDB4YTdhNzNhZTYpLCBUT0JOKDB4ODM4NzlhNWUsIDB4NjFkNWI0ODMpLAorICAgICAg
ICAgICBUT0JOKDB4YzVhY2IxZWQsIDB4NDFhNTBlYmMpLCBUT0JOKDB4NTlhNjBjYzgsIDB4M2Mw
N2Q4ZmEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxYjczYmRjZSwgMHhiMTg3NjI2MiksIFRPQk4o
MHgyYjBkNzlmMCwgMHgxMmFmNGVlOSksCisgICAgICAgICAgIFRPQk4oMHg4YmNmM2IwYiwgMHhk
NDZlMWQwNyksIFRPQk4oMHgxN2Q2YWY5ZCwgMHhlNDVkMTUyZil9LAorICAgICAgICAgIHtUT0JO
KDB4NzM1MjA0NjEsIDB4NmQ3MzY0NTEpLCBUT0JOKDB4NDNjYmJkOTcsIDB4NTZiMGJmNWEpLAor
ICAgICAgICAgICBUT0JOKDB4YjA4MzNhNWIsIDB4ZDU5OTliOWQpLCBUT0JOKDB4NzAyNjE0ZjAs
IDB4ZWI3MmUzOTgpfX0sCisgICAgICAgICB7e1RPQk4oMHgwYWFkZjAxYSwgMHg1OWMzZTlmOCks
IFRPQk4oMHg0MDIwMGU3NywgMHhjZTZiM2QxNiksCisgICAgICAgICAgIFRPQk4oMHhkYTIyYmRk
MywgMHhkZWRkYWZhZCksIFRPQk4oMHg3NmRlZGFmNCwgMHgzMTBkNzJlMSl9LAorICAgICAgICAg
IHtUT0JOKDB4NDllZjgwN2MsIDB4NGJjMmU4OGYpLCBUT0JOKDB4NmJhODEyOTEsIDB4MTQ2ZGQ1
YTUpLAorICAgICAgICAgICBUT0JOKDB4YTFhNDA3N2EsIDB4N2Q4ZDU5ZTkpLCBUT0JOKDB4ODdi
NmEyZTcsIDB4ODAyZGIzNDkpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNTY3OTk5NywgMHgxYjRl
NTk4ZSksIFRPQk4oMHhmNDk5ZWYxZiwgMHgwNmZlNGIxZCksCisgICAgICAgICAgIFRPQk4oMHgz
OTc4ZDNhZSwgMHhmY2IyNjdjNSksIFRPQk4oMHhiNTgyYjU1NywgMHgyMzU3ODZkMCl9LAorICAg
ICAgICAgIHtUT0JOKDB4MzJiM2IyY2EsIDB4MTcxNWNiMDcpLCBUT0JOKDB4NGMzZGU2YTIsIDB4
ODQ4MDI0MWQpLAorICAgICAgICAgICBUT0JOKDB4NjNiNWZmZWQsIDB4Y2I1NzFlY2QpLCBUT0JO
KDB4ZWFmNTM5MDAsIDB4ZWQyZmU5YTkpfX0sCisgICAgICAgICB7e1RPQk4oMHhkZWM5OGQ0YSwg
MHhjM2I4MTk5MCksIFRPQk4oMHgxY2I4MzcyMiwgMHg5ZTBjYzhmZSksCisgICAgICAgICAgIFRP
Qk4oMHhmZTBiMDQ5MSwgMHhkMmI0MjdiOSksIFRPQk4oMHgwZjIzODZhYywgMHhlOTgzYTY2Yyl9
LAorICAgICAgICAgIHtUT0JOKDB4OTMwYzRkMWUsIDB4YjMyOTEyMTMpLCBUT0JOKDB4YTJmODJi
MmUsIDB4NTlhNjJhZTQpLAorICAgICAgICAgICBUT0JOKDB4NzcyMzM4NTMsIDB4ZjkzZTg5ZTMp
LCBUT0JOKDB4N2Y4MDYzYWMsIDB4MTE3NzdjN2YpfX0sCisgICAgICAgICB7e1RPQk4oMHhmZjBl
YjU2NywgMHg1OWFkMjg3NyksIFRPQk4oMHg2ZjQ1NDY0MiwgMHg5ODY1Yzc1NCksCisgICAgICAg
ICAgIFRPQk4oMHhlNmZlNzAxYSwgMHgyMzZlOWE4NCksIFRPQk4oMHhjNTg2ZWYxNiwgMHgwNmU0
MGZjMyl9LAorICAgICAgICAgIHtUT0JOKDB4M2Y2MmI2ZTAsIDB4MjRiYWZhZDkpLCBUT0JOKDB4
YzhiNDJiZDIsIDB4NjRkYTkwNmEpLAorICAgICAgICAgICBUT0JOKDB4Yzk4ZTFlYjQsIDB4ZGEz
Mjc2YTApLCBUT0JOKDB4MzBkMGU1ZmMsIDB4MDZjYmY4NTIpfX0sCisgICAgICAgICB7e1RPQk4o
MHgxYjZiMmFlMSwgMHhlOGI0ZGZkNCksIFRPQk4oMHhkNzU0ZDVjNywgMHg4MzAxY2JhYyksCisg
ICAgICAgICAgIFRPQk4oMHg2NjA5NzYyOSwgMHgxMTJhMzlhYyksIFRPQk4oMHhmODZiNTk5OSwg
MHg5M2JhNGFiOSl9LAorICAgICAgICAgIHtUT0JOKDB4MjZjOWRlYTcsIDB4OTlmOWQ1ODEpLCBU
T0JOKDB4MDQ3M2IxYTgsIDB4YzJmYWZlYWEpLAorICAgICAgICAgICBUT0JOKDB4MTQ2OWFmNTUs
IDB4M2IyNTA1YTUpLCBUT0JOKDB4MjI3ZDE2ZDcsIDB4ZDZhNDMzMjMpfX0sCisgICAgICAgICB7
e1RPQk4oMHgzMzE2ZjczYywgMHhhZDNkOTdmOSksIFRPQk4oMHg1MmJmM2JiNSwgMHgxZjEzNzQ1
NSksCisgICAgICAgICAgIFRPQk4oMHg5NTNlYWZlYiwgMHgwOTk1NGU3YyksIFRPQk4oMHhhNzIx
ZGZlZCwgMHhkZDczMjQxMSl9LAorICAgICAgICAgIHtUT0JOKDB4YjQ5Mjk4MjEsIDB4MTQxZDQ1
NzkpLCBUT0JOKDB4MzQxMTMyMWMsIDB4YWEzYmQ0MzUpLAorICAgICAgICAgICBUT0JOKDB4YWZi
MzU1YWEsIDB4MTdmYTYwMTUpLCBUT0JOKDB4YjRlN2VmNGEsIDB4MThlNDJmMGUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg2MDRhYzk3YywgMHg1OTM3MTAwMCksIFRPQk4oMHhlMWM0OGM3MCwgMHg3
Zjc1OWMxOCksCisgICAgICAgICAgIFRPQk4oMHgzZjYyZWNjNSwgMHhhNWRiNmI2NSksIFRPQk4o
MHgwYTc4YjE3MywgMHgzOGEyMTQ5NSl9LAorICAgICAgICAgIHtUT0JOKDB4NmJlMTgxOWQsIDB4
YmNjOGFkOTQpLCBUT0JOKDB4NzBkYzA0ZjYsIDB4ZDg5YzM0MDApLAorICAgICAgICAgICBUT0JO
KDB4NDYyNTU3YjQsIDB4YTZiNDg0MGEpLCBUT0JOKDB4NTQ0YzZhZGUsIDB4NjBiZDIxYzApfX0s
CisgICAgICAgICB7e1RPQk4oMHg2YTAwZjI0ZSwgMHg5MDdhNTQ0YiksIFRPQk4oMHhhNzUyMGRj
YiwgMHgzMTNkYTIxMCksCisgICAgICAgICAgIFRPQk4oMHhmZTkzOWI3NSwgMHgxMWU0OTk0Yiks
IFRPQk4oMHg5MThiNmJhNiwgMHhiYzI3NWQ3MCl9LAorICAgICAgICAgIHtUT0JOKDB4ZDNlNWUw
ZmMsIDB4NjQ0YmU4OTIpLCBUT0JOKDB4NzA3YTk4MTYsIDB4ZmRhZjZjNDIpLAorICAgICAgICAg
ICBUT0JOKDB4NjAxNDU1NjcsIDB4ZjE1YzEzZmUpLCBUT0JOKDB4NDgxOGViYWEsIDB4ZTEzMGE1
NGEpfX0sCisgICAgICAgICB7e1RPQk4oMHgyOGFhZDNhZCwgMHg1OGQyZjc2NyksIFRPQk4oMHhk
YzUyNjdmZCwgMHhkN2U3Yzc3MyksCisgICAgICAgICAgIFRPQk4oMHg0OTE5Y2M4OCwgMHhjM2Fm
Y2M5OCksIFRPQk4oMHhhYTJlNmFiMCwgMHgyZGI4Y2Q0Yil9LAorICAgICAgICAgIHtUT0JOKDB4
ZDQ2ZmVjMDQsIDB4ZDBjNjNlYWEpLCBUT0JOKDB4YTFjYjkyYzUsIDB4MTlmZmE4MzIpLAorICAg
ICAgICAgICBUT0JOKDB4Njc4ZGQxNzgsIDB4ZTQzYTYzMWYpLCBUT0JOKDB4ZmI1YWUxY2QsIDB4
M2RjNzg4YjMpfX0sCisgICAgICAgICB7e1RPQk4oMHg2OGI0ZmI5MCwgMHg2ZTc3ZGUwNCksIFRP
Qk4oMHg3OTkyYmNmMCwgMHhmMDZkYmI5NyksCisgICAgICAgICAgIFRPQk4oMHg4OTZlNmExMywg
MHhjNDE3YzAxZCksIFRPQk4oMHg4ZDk2MzMyYywgMHhiOTU2YmUwMSl9LAorICAgICAgICAgIHtU
T0JOKDB4OTAyZmM5M2EsIDB4NDEzYWEyYjkpLCBUT0JOKDB4OTlhNGQ5MTUsIDB4ZmM5OGM4YTUp
LAorICAgICAgICAgICBUT0JOKDB4NTJjMjk0MDcsIDB4NTY1ZjExMzcpLCBUT0JOKDB4NDA3MjY5
MGYsIDB4MjFlNGYyODEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzNmU2MDdjZiwgMHgwMmZmNjA3
MiksIFRPQk4oMHhhNDdkMmNhOSwgMHg4YWQ5OGNkYyksCisgICAgICAgICAgIFRPQk4oMHhiZjQ3
MWQxZSwgMHhmNWY1NjYwOSksIFRPQk4oMHhiY2Y4NjYyMywgMHhmMjY0YWRhMCl9LAorICAgICAg
ICAgIHtUT0JOKDB4YjcwYzA2ODcsIDB4YWE5ZTVjYjYpLCBUT0JOKDB4Yzk4MTI0ZjIsIDB4MTc0
MDFjNmMpLAorICAgICAgICAgICBUT0JOKDB4ODE4OTYzNWYsIDB4ZDRhNjE0MzUpLCBUT0JOKDB4
ZDI4ZmI4YWYsIDB4YTlkOThlYTYpfX0sCisgICAgICAgICB7e1RPQk4oMHhiOWE2N2MyYSwgMHg0
MGMyNTFmOCksIFRPQk4oMHg4OGNkNWQ4NywgMHhhMmRhNDRiZSksCisgICAgICAgICAgIFRPQk4o
MHg0MzdkZWI5NiwgMHhlMDliNTQyMyksIFRPQk4oMHgxNTA0NjdkYiwgMHg2NDI4N2RjMSl9LAor
ICAgICAgICAgIHtUT0JOKDB4ZTE2MWRlYmIsIDB4Y2RhYmI4MzkpLCBUT0JOKDB4YTc5ZTk3NDIs
IDB4ZjE4MzlhM2UpLAorICAgICAgICAgICBUT0JOKDB4YmI4ZGQzYzIsIDB4NjUyZDIwMmIpLCBU
T0JOKDB4N2IzZTY3ZjcsIDB4ZTlmOTdkOTYpfX0sCisgICAgICAgICB7e1RPQk4oMHg1YWE1ZDc4
ZiwgMHhiMWNiNmFjOSksIFRPQk4oMHhmZmExM2U4ZSwgMHhjYTFkMGQ0NSksCisgICAgICAgICAg
IFRPQk4oMHgzNjkyOTVkZCwgMHgyYmE1YmY5NSksIFRPQk4oMHhkNjhiZDFmOCwgMHgzOWFmZjA1
ZSl9LAorICAgICAgICAgIHtUT0JOKDB4YWYwZDg2ZjksIDB4MjZkNzgzZjIpLCBUT0JOKDB4NTQz
YTU5YjMsIDB4ZmMzYWFmYzEpLAorICAgICAgICAgICBUT0JOKDB4M2ZjZjgxZDIsIDB4N2I3ZGE5
N2MpLCBUT0JOKDB4Yzk5MGEwNTYsIDB4ZDI1ZGVlNDYpfX0sCisgICAgICAgICB7e1RPQk4oMHgz
ZTY3NzViOCwgMHg1MTljY2UyYyksIFRPQk4oMHhmYzlhZjcxZiwgMHhhZTEzZDg2MyksCisgICAg
ICAgICAgIFRPQk4oMHg3NzRhNGE2ZiwgMHg0N2MxNjA1YyksIFRPQk4oMHg0NmJhNDI0NSwgMHgy
ZmQyMDVlOCl9LAorICAgICAgICAgIHtUT0JOKDB4YTA2ZmVlYTQsIDB4ZDNmZDUyNGQpLCBUT0JO
KDB4MWU3MjQ2NDEsIDB4NmRlMWFjYzIpLAorICAgICAgICAgICBUT0JOKDB4ZjUzODE2ZjEsIDB4
MzM0ZTJiNDIpLCBUT0JOKDB4NDllNTkxOGUsIDB4OTIyZjAwMjQpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg0Mzk1MzBiNiwgMHg2NWM3MzIyZCksIFRPQk4oMHhjZjEyY2MwMSwgMHhiM2MxYjNmYiks
CisgICAgICAgICAgIFRPQk4oMHhjNzBiMDE4NiwgMHgwMTcyZjY4NSksIFRPQk4oMHhiOTE1ZWUy
MiwgMHgxYjU4MzkxZCl9LAorICAgICAgICAgIHtUT0JOKDB4OWFmZGYwM2IsIDB4YTMxN2RiMjQp
LCBUT0JOKDB4ODdkZWM2NTksIDB4MTdiOGZmYzQpLAorICAgICAgICAgICBUT0JOKDB4N2Y0NjU5
N2IsIDB4ZTRkM2QwNTApLCBUT0JOKDB4ODBhMWMxZWQsIDB4MDA2NTAwZTcpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg4NDkwMmE5NiwgMHg3OGJmMDMwZSksIFRPQk4oMHhmYjVlOWM5YSwgMHg1MDU2
MDE0OCksCisgICAgICAgICAgIFRPQk4oMHg2ZGFlMGE5MiwgMHg2MzM2MjQyNiksIFRPQk4oMHhk
Y2FlZWNmNCwgMHhhOWUzMGM0MCl9LAorICAgICAgICAgIHtUT0JOKDB4YzBkODg3YmIsIDB4NTE4
ZDBjNmIpLCBUT0JOKDB4OTkxODExNTIsIDB4Y2I5ODViOWQpLAorICAgICAgICAgICBUT0JOKDB4
YWQxODY4OTgsIDB4ZWY3YmMzODEpLCBUT0JOKDB4MTgxNjhmZmIsIDB4OWVlNDYyMDEpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg5YTA0Y2RhYSwgMHgyNTAyNzUzYyksIFRPQk4oMHhiYjI3OWUyNiwg
MHg1MTQwN2M0MSksCisgICAgICAgICAgIFRPQk4oMHhlYWNiMDNhYSwgMHhmMjM1NjRlNSksIFRP
Qk4oMHgxODMzNjU4MiwgMHg3MWU2MTAxNil9LAorICAgICAgICAgIHtUT0JOKDB4ODY4NGI4YzQs
IDB4ZWI4MDk4NzcpLCBUT0JOKDB4YjMzNmUxOGQsIDB4ZWEwZTY3MmUpLAorICAgICAgICAgICBU
T0JOKDB4ZWZiNjAxZjAsIDB4MzRlZTU4NjcpLCBUT0JOKDB4MjczM2VkYmUsIDB4MTM0MWNmZDEp
fX0sCisgICAgICAgICB7e1RPQk4oMHhiMTVlODA5YSwgMHgyNjAyNWMzYyksIFRPQk4oMHhlNmU5
ODFhNiwgMHg5MzUwZGY4OCksCisgICAgICAgICAgIFRPQk4oMHg5MjM3NjIzNywgMHg4NTAyZmQ4
ZSksIFRPQk4oMHg0NzkxZjIxNiwgMHgwYzEyYmU5Yil9LAorICAgICAgICAgIHtUT0JOKDB4Yjcy
NTY3ODksIDB4MjVmMDI0MjUpLCBUT0JOKDB4ZWM4NjMxOTQsIDB4N2E5NzQ0NDMpLAorICAgICAg
ICAgICBUT0JOKDB4N2MwY2U4ODIsIDB4ZmI0MWNjNTIpLCBUT0JOKDB4YzI2NmZmN2UsIDB4ZjI1
YzA3ZjIpfX0sCisgICAgICAgICB7e1RPQk4oMHgzZDRkYThjMywgMHgwMTcwMjVmMyksIFRPQk4o
MHhlZmNmNjI4YywgMHhmYjk1NzliNCksCisgICAgICAgICAgIFRPQk4oMHg1YzRkMDAxNiwgMHgx
ZjM3MTZlYyksIFRPQk4oMHg5YzI3ZWJjNCwgMHg2ODAxMTE2ZSl9LAorICAgICAgICAgIHtUT0JO
KDB4NWViYTBlYTEsIDB4MWRhMTc2N2UpLCBUT0JOKDB4ZmUxNTE0NTIsIDB4NDcwMDRjNTcpLAor
ICAgICAgICAgICBUT0JOKDB4M2FjZTZkZjYsIDB4OGMyMzczYjcpLCBUT0JOKDB4NzVjM2RmZmUs
IDB4NWRiYzM3YWMpfX0sCisgICAgICAgICB7e1RPQk4oMHgzZGMzMmE3MywgMHhkZGM5MjVmYyks
IFRPQk4oMHhiNjc5Yzg0MSwgMHgyZjY1ZWUwYiksCisgICAgICAgICAgIFRPQk4oMHg3MTVhMzI5
NSwgMHg0NTFjYmZlYiksIFRPQk4oMHhkOTg4OTc2OCwgMHhmNzZlOWEyOSl9LAorICAgICAgICAg
IHtUT0JOKDB4ZWMyMGNlN2YsIDB4YjI4YWQyNDcpLCBUT0JOKDB4ZTk5MTQ2YzQsIDB4MDA4OTRk
NzkpLAorICAgICAgICAgICBUT0JOKDB4NzE0NTdkN2MsIDB4OWY1ZTNlYTcpLCBUT0JOKDB4MDk3
YjI2NjIsIDB4MzgwMzAwMzEpfX0sCisgICAgICAgICB7e1RPQk4oMHhkYjdmNmFlNiwgMHhjZjlm
ODJhOCksIFRPQk4oMHgzMTlkZWNiOSwgMHg0MzhmNDczYSksCisgICAgICAgICAgIFRPQk4oMHhh
NjNhYjM4NiwgMHgyODM4NTZjMyksIFRPQk4oMHgxM2UzMTcyZiwgMHhiMDZhMzYxYil9LAorICAg
ICAgICAgIHtUT0JOKDB4Mjk1OWY4ZGMsIDB4N2Q1YTAwNmMpLCBUT0JOKDB4MmRiYzI3YzYsIDB4
NzVmYmE3NTIpLAorICAgICAgICAgICBUT0JOKDB4YzEyMjdhYjIsIDB4ODdjMjJjOWUpLCBUT0JO
KDB4MDZmNjFmNzUsIDB4NzFhMjY4YjIpfX0sCisgICAgICAgICB7e1RPQk4oMHgxYjZiYjk3MSwg
MHgwNDc3OWNlMiksIFRPQk4oMHhhY2E4MzgxMiwgMHgwYWFkY2IxZCksCisgICAgICAgICAgIFRP
Qk4oMHgyOTdhZTBiYywgMHhhZWFhYjJkNSksIFRPQk4oMHhhNWMxNGVlNywgMHg1YmZiOWYxMyl9
LAorICAgICAgICAgIHtUT0JOKDB4YWEwMGM1ODMsIDB4ZjE3YTYyYzcpLCBUT0JOKDB4MzllYjk2
MmMsIDB4MTczNzU5ZjYpLAorICAgICAgICAgICBUT0JOKDB4MWVlYmExZDQsIDB4ODZjOWE4OGYp
LCBUT0JOKDB4MGFiNmMzN2EsIDB4ZGYwMTZjNWUpfX0sCisgICAgICAgICB7e1RPQk4oMHhhMmEx
NDdkYiwgMHhhMjhhMDc0OSksIFRPQk4oMHgyNDZjMjBkNiwgMHhlZTUxOTE2NSksCisgICAgICAg
ICAgIFRPQk4oMHg1MDY4ZDFiMSwgMHhkMzgxMDcxNSksIFRPQk4oMHhiMWU3MDE4YywgMHg3NDgx
NjBiOSl9LAorICAgICAgICAgIHtUT0JOKDB4MDNmNWIxZmEsIDB4ZjM4MGZmNjIpLCBUT0JOKDB4
ZWY3ZmIxZGQsIDB4ZjNjYjJjMWUpLAorICAgICAgICAgICBUT0JOKDB4ZWFiNTM5YTgsIDB4ZmM5
MWE3ZGEpLCBUT0JOKDB4ODNkZGI3MDcsIDB4ZjNmOWI1NjEpfX0sCisgICAgICAgICB7e1RPQk4o
MHhjNTUwZTIxMSwgMHhmZTdkZjdhNCksIFRPQk4oMHhhN2NkMDdmMiwgMHgwNjNmNmY0MCksCisg
ICAgICAgICAgIFRPQk4oMHhiMGRlMzYzNSwgMHgyOTc2ODc5YyksIFRPQk4oMHhiNWY4M2Y4NSwg
MHhlNTU3NDFkYSl9LAorICAgICAgICAgIHtUT0JOKDB4NGVhOWQyNWUsIDB4ZjNkOGFjM2QpLCBU
T0JOKDB4NmZlMjA2NmYsIDB4NjI4MTlmMDIpLAorICAgICAgICAgICBUT0JOKDB4NGFiMmI5YzIs
IDB4Y2VmNGE1NjQpLCBUT0JOKDB4MWUxNTVkOTYsIDB4NWZmYTJkZTMpfX0sCisgICAgICAgICB7
e1RPQk4oMHgwZWIwYTE5YiwgMHhjM2E3MmQwMCksIFRPQk4oMHg0MDM3NjY1YiwgMHg4NTEzYzMx
YiksCisgICAgICAgICAgIFRPQk4oMHgyZmIyYjZiZiwgMHgwNGM2NDYzNyksIFRPQk4oMHg0NWMz
NGQ2ZSwgMHgwOGNkYzYzOSl9LAorICAgICAgICAgIHtUT0JOKDB4NTZmMWUxMGYsIDB4ZjAxZmQ3
OTYpLCBUT0JOKDB4NGRmYjgxMDEsIDB4ZmUzNjY3YjgpLAorICAgICAgICAgICBUT0JOKDB4ZTBl
ZGEyNTMsIDB4OTAyMWQwYzApLCBUT0JOKDB4N2E5NGU5ZmYsIDB4OGEwNmM2YWIpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgyZDNiYjBkOSwgMHhiYjlhYTg4MiksIFRPQk4oMHhlYTIwZTRlNSwgMHhl
YzA1ZmQxMCksCisgICAgICAgICAgIFRPQk4oMHhlZDdlZWI1ZiwgMHgxYTFjYTY0ZSksIFRPQk4o
MHgyZmE2YjQzYywgMHhjNjMyN2NiZCl9LAorICAgICAgICAgIHtUT0JOKDB4YjU3N2UzY2YsIDB4
M2FhOTExMjEpLCBUT0JOKDB4OGM2YmQ1ZWEsIDB4M2EzNDA3OWIpLAorICAgICAgICAgICBUT0JO
KDB4ZDdlNWJhMzksIDB4NjBlMDJmYzApLCBUT0JOKDB4ZjE2ZGQyYzMsIDB4OTAxNDFiZjgpfX0s
CisgICAgICAgICB7e1RPQk4oMHhiNTcyNzZkOSwgMHg4MDEwMWI5OCksIFRPQk4oMHg3NjA4ODNm
ZCwgMHhiODJmMGY2NiksCisgICAgICAgICAgIFRPQk4oMHg4OWQ3ZGU3NSwgMHg0YmMzZWZmMyks
IFRPQk4oMHgwM2I2MDY0MywgMHg1ZGMyYWI0MCl9LAorICAgICAgICAgIHtUT0JOKDB4Y2Q2ZTUz
ZGYsIDB4ZTA1YmVlYWMpLCBUT0JOKDB4ZjJmMWU4NjIsIDB4YmMzMzI1Y2QpLAorICAgICAgICAg
ICBUT0JOKDB4ZGQwZjc5MjEsIDB4Nzc0ZjAzYzMpLCBUT0JOKDB4OTdjYTcyMjEsIDB4NDU1MmNj
MWIpfX0sCisgICAgICAgICB7e1RPQk4oMHg1YTBkNmFmZSwgMHgxY2QxOWY3MiksIFRPQk4oMHhh
MjA5MTVkYywgMHhmMTgzZmJlYiksCisgICAgICAgICAgIFRPQk4oMHg5ZmRhNGI0MCwgMHg4MzJj
NDAzYyksIFRPQk4oMHgzMjczOGVkZCwgMHhiZTQyNTQ0Mil9LAorICAgICAgICAgIHtUT0JOKDB4
NDY5YTFkZjYsIDB4YjVlY2NmMWEpLCBUT0JOKDB4NGI1YWZmNDIsIDB4MjhiYmUxZjApLAorICAg
ICAgICAgICBUT0JOKDB4MzEzNTlkN2YsIDB4NTcwZGZjOTMpLCBUT0JOKDB4YTE4YmUyMzUsIDB4
ZjAwODg2MjgpfX0sCisgICAgICAgICB7e1RPQk4oMHhhNWIzMGZiYSwgMHhiMDBlZDNhOSksIFRP
Qk4oMHgzNGM2MTM3NCwgMHg3M2NkZjhiZSksCisgICAgICAgICAgIFRPQk4oMHgyYzVjNWY0Niwg
MHhhYmM1Njc5NyksIFRPQk4oMHg1Y2VjZjkzZCwgMHhiODJhOGFlMil9LAorICAgICAgICAgIHtU
T0JOKDB4N2QzZGJlNDEsIDB4YTk2OGZiZjApLCBUT0JOKDB4ZDIzZDQ1ODMsIDB4MWE1YzdmM2Qp
LAorICAgICAgICAgICBUT0JOKDB4ZjI4ZjY5YTAsIDB4YzA4N2E5YzcpLCBUT0JOKDB4YzJkNzU0
NzEsIDB4NDc0NDcxY2EpfX0sCisgICAgICAgICB7e1RPQk4oMHgzNmVjOWY0YSwgMHg0ZWI3MzJl
YyksIFRPQk4oMHg2Yzk0M2JiZCwgMHhiMWNhNmJlZCksCisgICAgICAgICAgIFRPQk4oMHhkNjQ1
MzVlMSwgMHhmMjQ1Nzg5MiksIFRPQk4oMHg4Yjg0YThlYSwgMHhmN2UyYWMwNil9LAorICAgICAg
ICAgIHtUT0JOKDB4ZTA5MzZjZDMsIDB4MjQ5OWRkNWYpLCBUT0JOKDB4MTIwNTNkN2UsIDB4MGVk
MDRlNTcpLAorICAgICAgICAgICBUT0JOKDB4NGJkZDAwNzYsIDB4ZTQzMDVkOWQpLCBUT0JOKDB4
MzRhNTI3YjksIDB4MWY2N2YwYTIpfX0sCisgICAgICAgICB7e1RPQk4oMHhlNzlhNGFmMCwgMHg5
Y2VjNDZlYSksIFRPQk4oMHhiMTUzNDdhMSwgMHg2NThiOWJjNyksCisgICAgICAgICAgIFRPQk4o
MHg2YmQyNzk2ZiwgMHgzNWFmMmY3NSksIFRPQk4oMHhhYzk1Nzk5MCwgMHg0MDUxYzQzNSl9LAor
ICAgICAgICAgIHtUT0JOKDB4MjY2OWRkYTMsIDB4YzMzYTY1NWQpLCBUT0JOKDB4NWQ1MDNjMmUs
IDB4ODg1MTRhYTMpLAorICAgICAgICAgICBUT0JOKDB4ZGZhMTEzMzcsIDB4Mzc1M2RkNDEpLCBU
T0JOKDB4M2YwNTQ2NzMsIDB4MGI3NTRmNzgpfX0sCisgICAgICAgICB7e1RPQk4oMHhiZjE4NTY3
NywgMHg0OTYxMjViZCksIFRPQk4oMHhmYjAwMjNjOCwgMHgzNzc1MDA2YyksCisgICAgICAgICAg
IFRPQk4oMHhmYTBmMDcyZiwgMHgzYTAzNzg5OSksIFRPQk4oMHg0MjIyYjZlYiwgMHgwZTRhZWE1
Nyl9LAorICAgICAgICAgIHtUT0JOKDB4M2RkZTVlNzYsIDB4Nzg2NmQyNWEpLCBUT0JOKDB4YjZl
YjA0ZjgsIDB4NDgzN2FhNmYpLAorICAgICAgICAgICBUT0JOKDB4NTMxNTU5MWEsIDB4MmNmMWNk
YjgpLCBUT0JOKDB4NmRmYjRmNDEsIDB4MmQ0ZTY4M2MpfX0sCisgICAgICAgICB7e1RPQk4oMHg3
ZTkyM2VhNCwgMHg0OGVlMWYzYSksIFRPQk4oMHg5NjA0ZDlmNywgMHgwNWEyYWZkNSksCisgICAg
ICAgICAgIFRPQk4oMHhiZTFkNGEzMywgMHg0MGVhNDk0OCksIFRPQk4oMHg1YjQ1ZjFmNCwgMHhi
NDRjYmQyZil9LAorICAgICAgICAgIHtUT0JOKDB4NWZhZjgzNzYsIDB4NGFjYzc1N2UpLCBUT0JO
KDB4YTdjZjlhYjgsIDB4NjNkNjhmZjcpLAorICAgICAgICAgICBUT0JOKDB4OGFkNjJmNjksIDB4
ZGYwZTQwNGIpLCBUT0JOKDB4ZDY1ZjMzYzIsIDB4MTJiZGFmZGYpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhjMzY1ZGUxNSwgMHhhMzc3YjE0ZSksIFRPQk4oMHg2YmY1NDYzYiwgMHg4ZTM5ZjYwYyks
CisgICAgICAgICAgIFRPQk4oMHg2MjAzMGQyZCwgMHgyY2U2ODE0OCksIFRPQk4oMHhkOTU4Njdl
ZiwgMHhlNmY4NDNhOCl9LAorICAgICAgICAgIHtUT0JOKDB4ZDM5YTAyNDQsIDB4ZWY1YWIwMTcp
LCBUT0JOKDB4MGJkMmQ4YzEsIDB4NGFiNTVkMTIpLAorICAgICAgICAgICBUT0JOKDB4Yzk1MDNk
YjMsIDB4NDE2MzkxNjkpLCBUT0JOKDB4MmQ0ZTI1YjAsIDB4Zjc2NjBjOGEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg3NjBjYjNiNSwgMHhlMjI0YzVkNyksIFRPQk4oMHhmYTNiYWY4YywgMHg2ODYx
NjkxOSksCisgICAgICAgICAgIFRPQk4oMHg5ZmJjYTExMywgMHg4ZDE0MjU1MiksIFRPQk4oMHgx
YWIxOGJmMSwgMHg3NjY5ZWJmNSl9LAorICAgICAgICAgIHtUT0JOKDB4NTVlNmY1M2UsIDB4OWJk
ZjI1ZGQpLCBUT0JOKDB4MDRjYzBiZjMsIDB4Y2I2Y2QxNTQpLAorICAgICAgICAgICBUT0JOKDB4
NTk1YmVmNDksIDB4OTVlODkwODApLCBUT0JOKDB4ZmU5NDU5YTgsIDB4MTA0YTlhYzEpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhhZDJkODljYSwgMHhjY2U5YmIzMiksIFRPQk4oMHhkZGVhNjVlMSwg
MHhmN2RlODI4NSksCisgICAgICAgICAgIFRPQk4oMHg2MmVkOGMzNSwgMHhiMzUxYmQ0YiksIFRP
Qk4oMHg0MTUwZmYzNiwgMHgwYzBlMTlhNyl9LAorICAgICAgICAgIHtUT0JOKDB4ODZlM2M4MDEs
IDB4MzQ1ZjRlNDcpLCBUT0JOKDB4M2JmMjFmNzEsIDB4MjAzYTI2NmMpLAorICAgICAgICAgICBU
T0JOKDB4N2FlMTEwZDQsIDB4ODU1YjFmMTMpLCBUT0JOKDB4NWQ2YWFmNmEsIDB4MDcyNjI1MTcp
fX0sCisgICAgICAgICB7e1RPQk4oMHgxZTBmMTJlMSwgMHg4MTNkMjhmMSksIFRPQk4oMHg2MDAw
ZTExZCwgMHg3YWQ3YTUyMyksCisgICAgICAgICAgIFRPQk4oMHhjN2Q4ZGVlZiwgMHhjNzQ0YTE3
YiksIFRPQk4oMHgxZTk5MGI0OCwgMHgxNGMwNWEwMCl9LAorICAgICAgICAgIHtUT0JOKDB4Njhm
ZGRhZWUsIDB4OTNlOTc2ZDUpLCBUT0JOKDB4Njk2MjQxZDEsIDB4NDY2MTBkNjMpLAorICAgICAg
ICAgICBUT0JOKDB4YjIwNGU3YzMsIDB4ODkzZGRhODgpLCBUT0JOKDB4OGJjY2ZhNjUsIDB4NmEz
YTY5NDYpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNTk0MjViNCwgMHhjNWNkMTQxMSksIFRPQk4o
MHg3MDFiNDA0MiwgMHhmZjM2NThiMSksCisgICAgICAgICAgIFRPQk4oMHhlM2U1NmJjYSwgMHg0
Nzg0Y2Y5MyksIFRPQk4oMHgyN2RlNWYxNSwgMHg4ZmU2OGQ2MCl9LAorICAgICAgICAgIHtUT0JO
KDB4NGFiOWNmY2UsIDB4ZjhkNTNmMTkpLCBUT0JOKDB4ZGRiMTAzMTEsIDB4YTQwYTczMGQpLAor
ICAgICAgICAgICBUT0JOKDB4NmZhNzNjZDEsIDB4NGVlZTBhOGEpLCBUT0JOKDB4ZmQ1NDg3NDgs
IDB4NTI0OTcxOWQpfX0sCisgICAgICAgICB7e1RPQk4oMHg0OWQ2NjMxNiwgMHhhODEyM2VmMCks
IFRPQk4oMHg3M2MzMmRiNCwgMHhlN2Y5NTQzOCksCisgICAgICAgICAgIFRPQk4oMHgyZTJlZDIw
OSwgMHgwZDllNzg1NCksIFRPQk4oMHhmOThhOTMyOSwgMHg5ZDlmMDUwNyl9LAorICAgICAgICAg
IHtUT0JOKDB4YzVkMzNjZjYsIDB4MGM2YWEyMGEpLCBUT0JOKDB4OWEzMmJhMTQsIDB4NzUyNzli
YjIpLAorICAgICAgICAgICBUT0JOKDB4N2UzMjAyY2IsIDB4Nzc0YTczMDcpLCBUT0JOKDB4NjRl
ZDRiYzQsIDB4ZThjNDJkYmQpfX0sCisgICAgICAgICB7e1RPQk4oMHhjMjBmMWEwNiwgMHhkNGNh
ZWQwZCksIFRPQk4oMHhiODAyMTQwNywgMHgxNzFkMjJiMyksCisgICAgICAgICAgIFRPQk4oMHhk
NDI2Y2EwNCwgMHhkMTMyNjhkNyksIFRPQk4oMHg5MjM3NzAwNywgMHgyNWY0ZDEyNil9LAorICAg
ICAgICAgIHtUT0JOKDB4NDIwNGNiYzMsIDB4NzFmMjFhODUpLCBUT0JOKDB4MTg0NjFiN2EsIDB4
ZjgyMzY5YmEpLAorICAgICAgICAgICBUT0JOKDB4YzBjMDdkMzEsIDB4M2ZjODU4ZjkpLCBUT0JO
KDB4NWRlYjVhNTAsIDB4ZTJiYWI1NjkpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNTk1OWQ0Niwg
MHhkNWVlYTg5ZSksIFRPQk4oMHhmZGZmODQyNCwgMHgwODQzN2Y0YiksCisgICAgICAgICAgIFRP
Qk4oMHhmMjEwNzFlNCwgMHgzY2ZlMjU0ZiksIFRPQk4oMHg3MjQxNzY5NiwgMHg5NTQ2ODMyMSl9
LAorICAgICAgICAgIHtUT0JOKDB4NWQ4Mjg4YjksIDB4MTAyY2FlM2UpLCBUT0JOKDB4MmQxNDNl
M2QsIDB4ZjE5NjVkZmYpLAorICAgICAgICAgICBUT0JOKDB4MDBjOWEzNzYsIDB4YTA3OGQ4NDcp
LCBUT0JOKDB4NmZjMGRhMzEsIDB4MjYwMjg3MzEpfX0sCisgICAgICAgICB7e1RPQk4oMHhhMmJh
ZWFkZiwgMHhlNDUwODNhMiksIFRPQk4oMHg2NmJjNzIxOCwgMHg1ZTViNGJjZCksCisgICAgICAg
ICAgIFRPQk4oMHgyYzgyNjQ0MiwgMHhkMDRiOGU3ZiksIFRPQk4oMHhjMTlmNTQ1MSwgMHg2YzRi
NTg2Yil9LAorICAgICAgICAgIHtUT0JOKDB4NjAxODJjNDksIDB4NWI3ZWVlZDUpLCBUT0JOKDB4
ZDk5NTRlY2QsIDB4N2FhOWRmYTEpLAorICAgICAgICAgICBUT0JOKDB4YTQwM2E4ZWMsIDB4Yzcz
ODg0YWQpLCBUT0JOKDB4N2ZiMTdkZTIsIDB4OWJiMzkwNDEpfX0sCisgICAgICAgICB7e1RPQk4o
MHg2OTRiNjRjNSwgMHhhYmIwMjBlOCksIFRPQk4oMHgzZDE4YzE4NCwgMHgxOWM0ZWVjNyksCisg
ICAgICAgICAgIFRPQk4oMHg5YzQ2NzNlZiwgMHgxYzQ3OTNlNSksIFRPQk4oMHhjN2I4YWViNSwg
MHgwNTYwOTJlNil9LAorICAgICAgICAgIHtUT0JOKDB4M2FhMWNhNDMsIDB4ZjBmOGMxNmIpLCBU
T0JOKDB4MjI0ZWQ1ZWMsIDB4ZDY3OWIyZjYpLAorICAgICAgICAgICBUT0JOKDB4MGQ1NmVlYWYs
IDB4NTVhMjA1YzkpLCBUT0JOKDB4YmZlMTE1YmEsIDB4NGI4ZTAyOGIpfX0sCisgICAgICAgICB7
e1RPQk4oMHg5N2U2MDg0OSwgMHgzOTI3ZjRmZSksIFRPQk4oMHhmOTFmYmY5NCwgMHg3NTlhYTdj
NSksCisgICAgICAgICAgIFRPQk4oMHg5ODVhZjc2OSwgMHg2YmU5MGE1MSksIFRPQk4oMHhjMTI3
N2I3OCwgMHg3OGNjYjgyMyl9LAorICAgICAgICAgIHtUT0JOKDB4Mzk1YjY1NmUsIDB4ZTdhNzU5
NTIpLCBUT0JOKDB4MDBkZjdkZTAsIDB4OTI4ZGE1ZjUpLAorICAgICAgICAgICBUT0JOKDB4MDlj
MjMxNzUsIDB4NGNhNDQ1NGYpLCBUT0JOKDB4NGVjOTcxZjQsIDB4N2FhMmQzYzEpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg0NWMzYzUwNywgMHhlNzVkOWNjYyksIFRPQk4oMHg2M2I3YmU4YSwgMHgz
ZGM5MDMwNiksCisgICAgICAgICAgIFRPQk4oMHgzN2UwOWM2NiwgMHg1ZGI0NGJkYyksIFRPQk4o
MHg1MGQ2MGRhMSwgMHg2ODQxYzZhMil9LAorICAgICAgICAgIHtUT0JOKDB4NmY5YjY1ZWUsIDB4
MDhkZjFiMTIpLCBUT0JOKDB4Mzg3MzQ4NzksIDB4N2ZmMDg5ZGYpLAorICAgICAgICAgICBUT0JO
KDB4OWMzMzFhNjYsIDB4M2ZlODAxM2QpLCBUT0JOKDB4MDE3ZjVkZTksIDB4NWY0MmZjYzgpfX0s
CisgICAgICAgICB7e1RPQk4oMHg0MzA3Nzg2NiwgMHhlOGU1NzU2NyksIFRPQk4oMHhjOWY3ODFj
ZSwgMHhmOWZjZGIxOCksCisgICAgICAgICAgIFRPQk4oMHgzODEzMWRkYSwgMHg5YjEyZTE3NCks
IFRPQk4oMHgyNWQ4NGFhMywgMHg4YTAzNzUyYSl9LAorICAgICAgICAgIHtUT0JOKDB4NDVlMDll
MDksIDB4NGQwYzBjZTIpLCBUT0JOKDB4MTU2NDAwOGIsIDB4OTJiZWJiYTUpLAorICAgICAgICAg
ICBUT0JOKDB4ZjdlOGFkMzEsIDB4YTg3Mjg0YzcpLCBUT0JOKDB4YjdjNGI0NmMsIDB4OTdlN2Ji
YWEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzZTIyYTdiMywgMHg5N2FjZjRlYyksIFRPQk4oMHgw
NDI2YzQwMCwgMHg1ZWE4YjY0MCksCisgICAgICAgICAgIFRPQk4oMHg1ZTMyOTVhNiwgMHg0ZTk2
OTI4NSksIFRPQk4oMHgyMmFhYmM1OSwgMHhhNmE0NTY3MCl9LAorICAgICAgICAgIHtUT0JOKDB4
YjkyOTcxNGMsIDB4NWY1OTQyYmMpLCBUT0JOKDB4OWE2MTY4YmQsIDB4ZmEzMTgyZWQpLAorICAg
ICAgICAgICBUT0JOKDB4MjIxNmE2NjUsIDB4MTA0MTUyYmEpLCBUT0JOKDB4NDY5MDhkMDMsIDB4
YjY5MjYzNjgpfX19LAorICAgICAgICB7e3tUT0JOKDB4YTlmNWQ4NzQsIDB4NWExMjUxZmIpLCBU
T0JOKDB4OTY3NzQ3YTgsIDB4YzcyNzI1YzcpLAorICAgICAgICAgICBUT0JOKDB4MTk1YzMzZTUs
IDB4MzFmZmU4OWUpLCBUT0JOKDB4NjA5ZDIxMGYsIDB4ZTk2NDkzNWUpfSwKKyAgICAgICAgICB7
VE9CTigweGNhZmQ2Y2E4LCAweDJmZTEyMjI3KSwgVE9CTigweGFmOWI1Yjk2LCAweDA0MjY0Njlk
KSwKKyAgICAgICAgICAgVE9CTigweDJlOWVlMDRjLCAweDU2OTMxODNjKSwgVE9CTigweDEwODRh
MzMzLCAweGM4MTQ2ZmVmKX19LAorICAgICAgICAge3tUT0JOKDB4OTY2NDk5MzMsIDB4YWVkMWQx
ZjcpLCBUT0JOKDB4NTY2ZWFmZjMsIDB4NTA1NjMwOTApLAorICAgICAgICAgICBUT0JOKDB4MzQ1
MDU3ZjAsIDB4YWQyZTM5Y2YpLCBUT0JOKDB4MTQ4ZmY2NWIsIDB4MWY4MzIxMjQpfSwKKyAgICAg
ICAgICB7VE9CTigweDA0MmU4OWQ0LCAweGNmOTRjZjBkKSwgVE9CTigweDMxOWJlYzg0LCAweDUy
MGM1OGIzKSwKKyAgICAgICAgICAgVE9CTigweDJhMjY3NjI2LCAweDUzNjFhYTBkKSwgVE9CTigw
eGM4NmZhMzAyLCAweDhmYmM4N2FkKX19LAorICAgICAgICAge3tUT0JOKDB4ZmM4M2QyYWIsIDB4
NWM4YjA2ZDUpLCBUT0JOKDB4YjFhNzg1YTIsIDB4ZmU0ZWFjNDYpLAorICAgICAgICAgICBUT0JO
KDB4Yjk5MzE1YmMsIDB4ODQ2Zjc3NzkpLCBUT0JOKDB4Y2YzMWQ4MTYsIDB4ZWY5ZWE1MDUpfSwK
KyAgICAgICAgICB7VE9CTigweDIzOTFmZTZhLCAweDE1ZDdkYzg1KSwgVE9CTigweDJmMTMyYjA0
LCAweGI0MDE2YjMzKSwKKyAgICAgICAgICAgVE9CTigweDI5NTQ3ZmUzLCAweDE4MWNiNGM3KSwg
VE9CTigweGRiNjZkOGE2LCAweDY1MDE1NWExKX19LAorICAgICAgICAge3tUT0JOKDB4NmI2NmQ3
ZTEsIDB4YWRjMTY5NmYpLCBUT0JOKDB4OThlYmU1OTMsIDB4MGFjZDcyZDApLAorICAgICAgICAg
ICBUT0JOKDB4NjVmMjQ1NTAsIDB4Y2MxYjc0MzUpLCBUT0JOKDB4Y2UyMzEzOTMsIDB4YjRiOWE1
ZWMpfSwKKyAgICAgICAgICB7VE9CTigweDIzNGEyMmQ0LCAweGRiMDY3ZGY5KSwgVE9CTigweDk4
ZGRhMDk1LCAweGNhZmY5YjAwKSwKKyAgICAgICAgICAgVE9CTigweDFiYmM3NWEwLCAweDYxMDBj
OWMxKSwgVE9CTigweDE1NjBhOWM4LCAweDkzOWNmNjk1KX19LAorICAgICAgICAge3tUT0JOKDB4
Y2YwMDZkM2UsIDB4OTllMDkyNWYpLCBUT0JOKDB4MmRkNzRhOTYsIDB4NjMyMjM3NWEpLAorICAg
ICAgICAgICBUT0JOKDB4YzU4YjQ0NmEsIDB4YjU2YWY1YmEpLCBUT0JOKDB4NTAyOTI2ODMsIDB4
ZTBiOWI0ZjEpfSwKKyAgICAgICAgICB7VE9CTigweGUyYzM0Y2I0LCAweDFhZWFmZmEzKSwgVE9C
TigweDhiMTcyMDNmLCAweDliOTU4N2MxKSwKKyAgICAgICAgICAgVE9CTigweDZkNTU5MjA3LCAw
eGVhZDEzNTBjKSwgVE9CTigweDJiNjZhMjE1LCAweGZiN2Y5NjA0KX19LAorICAgICAgICAge3tU
T0JOKDB4MDg1MDMyNWUsIDB4ZmU1MWJmNzQpLCBUT0JOKDB4OWM0ZjU3OWUsIDB4NWU0NjAwOTQp
LAorICAgICAgICAgICBUT0JOKDB4NWM4N2I5MmEsIDB4NzZkYTJmMjUpLCBUT0JOKDB4ODg5ZGU0
ZTAsIDB4NmZlYmVmMzMpfSwKKyAgICAgICAgICB7VE9CTigweDY5MDBlYzA2LCAweDY0NjA4M2Nl
KSwgVE9CTigweGJlMmEwMzM1LCAweGJmZTEyNzczKSwKKyAgICAgICAgICAgVE9CTigweGFkZDFk
YTM1LCAweGM1MzQ0MTEwKSwgVE9CTigweDc1NzU2OGI3LCAweGI4MDJjZDIwKX19LAorICAgICAg
ICAge3tUT0JOKDB4NzU1NTk3NzksIDB4MDBmN2U2YzgpLCBUT0JOKDB4MzhlOGI5NGYsIDB4MGZh
Y2QyZjApLAorICAgICAgICAgICBUT0JOKDB4ZmVhMWYzYWYsIDB4MDNmZGUzNzUpLCBUT0JOKDB4
NWUxMWExZDgsIDB4NzU4ODFkZmMpfSwKKyAgICAgICAgICB7VE9CTigweGIzYTZiMDJlLCAweGMx
ZTJmMmVmKSwgVE9CTigweDE5M2QyYmJiLCAweGM2MDVhNmM1KSwKKyAgICAgICAgICAgVE9CTigw
eDMyNWZmZWVlLCAweDMzOWEwYjJkKSwgVE9CTigweDI3YjZhNzI0LCAweDllMGM4ODQ2KX19LAor
ICAgICAgICAge3tUT0JOKDB4ZTQwNTBmMWMsIDB4ZjFjMzY3Y2EpLCBUT0JOKDB4OWJjODVhOWIs
IDB4YzkwZmJjN2QpLAorICAgICAgICAgICBUT0JOKDB4YTM3M2M0YTIsIDB4ZTFhMTEwMzIpLCBU
T0JOKDB4YjY0MjMyYjcsIDB4YWQwMzkzYTkpfSwKKyAgICAgICAgICB7VE9CTigweGY1NTc3ZWIw
LCAweDE2N2RhZDI5KSwgVE9CTigweDE2MDRmMzAxLCAweDk0Yjc4YWIyKSwKKyAgICAgICAgICAg
VE9CTigweDBiYWE5NGFmLCAweGU4MjkzNDhiKSwgVE9CTigweDc3ZmJkOGRkLCAweDQxNjU0MzQy
KX19LAorICAgICAgICAge3tUT0JOKDB4ZGFiNTBlYTUsIDB4Yjk2NGUzOWEpLCBUT0JOKDB4ZDRj
MjllM2MsIDB4ZDBkM2M3NmUpLAorICAgICAgICAgICBUT0JOKDB4ODBkYWU2N2MsIDB4NTZkMTE5
NjQpLCBUT0JOKDB4NzMwN2E4YmYsIDB4ZTVmZmNjMmYpfSwKKyAgICAgICAgICB7VE9CTigweDY1
YmJjMWFhLCAweDkxNzA4YzNiKSwgVE9CTigweGExNTFlNjJjLCAweDI4YmYwZWViKSwKKyAgICAg
ICAgICAgVE9CTigweDZjYjUzMzgxLCAweDZmYTM0ZGI3KSwgVE9CTigweDUxMzllMDVjLCAweGEy
OTQwM2E4KX19LAorICAgICAgICAge3tUT0JOKDB4NmZmNjUxYjQsIDB4OTRhN2NkMmUpLCBUT0JO
KDB4NTY3MWZmZDEsIDB4MDY5OTMzNmMpLAorICAgICAgICAgICBUT0JOKDB4NmY1ZmQyY2MsIDB4
OTc5YTg5NmEpLCBUT0JOKDB4MTFlODkzYTgsIDB4ZDgxNDhjZWYpfSwKKyAgICAgICAgICB7VE9C
TigweDk4ODkwNmExLCAweDY1Y2Y3YjEwKSwgVE9CTigweDgxYjY3MTc4LCAweGM1MGQ4NDg1KSwK
KyAgICAgICAgICAgVE9CTigweDdjMGRlYjM1LCAweDhhMzViM2RlKSwgVE9CTigweDQyM2FjODU1
LCAweGMxZDI5Nzk5KX19LAorICAgICAgICAge3tUT0JOKDB4YWY1ODBkODcsIDB4ZGFjNTBiNzQp
LCBUT0JOKDB4MjhiMmI4OWYsIDB4NTg2OTczNGMpLAorICAgICAgICAgICBUT0JOKDB4OTlhM2I5
MzYsIDB4ODc0ZTI4ZmIpLCBUT0JOKDB4YmIyYzkxOTAsIDB4MjVmM2Y3M2EpfSwKKyAgICAgICAg
ICB7VE9CTigweDE5OWY2OTE4LCAweDg0YTlkNWI3KSwgVE9CTigweDdlYmUyMzI1LCAweDdlNzcw
Mzc0KSwKKyAgICAgICAgICAgVE9CTigweGY0NDJlMTA3LCAweDA3MzhlZmUyKSwgVE9CTigweGNm
OWYzZjU2LCAweGNmOTA4MmQyKX19LAorICAgICAgICAge3tUT0JOKDB4NzE5ZjY5ZTEsIDB4MDk2
MTg3MDgpLCBUT0JOKDB4Y2M5ZTgzNjQsIDB4YzE4M2Y5YjEpLAorICAgICAgICAgICBUT0JOKDB4
ZWMyMDNhOTUsIDB4MzY2YTIxYWYpLCBUT0JOKDB4NmFlYzVkNmQsIDB4MDY4YjE0MWYpfSwKKyAg
ICAgICAgICB7VE9CTigweGVlMmRmNzhhLCAweDk5NGYwNGU5KSwgVE9CTigweGIzOWNjYWU4LCAw
eDI3MTI0NWIwKSwKKyAgICAgICAgICAgVE9CTigweGI4NzVhNGE5LCAweDk3ZTQzZjRmKSwgVE9C
TigweDUwN2RmZTExLCAweGRiMmNlYTk4KX19LAorICAgICAgICAge3tUT0JOKDB4NGZiZjgxY2Is
IDB4NDg5YjAzZTkpLCBUT0JOKDB4ZGI4NmVjNWIsIDB4NmVjNDE0ZmEpLAorICAgICAgICAgICBU
T0JOKDB4ZmFkNDQ0ZjksIDB4ZjUxYjNhZTUpLCBUT0JOKDB4Y2E3ZDMzZDYsIDB4MTkxNGUzZmUp
fSwKKyAgICAgICAgICB7VE9CTigweGE5YzMyZjVjLCAweDBhZTZjNGQwKSwgVE9CTigweGE5Y2Ex
ZDFlLCAweDczOTY5NTY4KSwKKyAgICAgICAgICAgVE9CTigweDk4MDQzYzMxLCAweDFhYTc0Njdl
KSwgVE9CTigweGU4MzJlNzVjLCAweGUyMWI1YWM2KX19LAorICAgICAgICAge3tUT0JOKDB4MzE0
YjdhZWEsIDB4NTIzMjEyM2QpLCBUT0JOKDB4MDgzMDdjOGMsIDB4NjVhZTg2ZGIpLAorICAgICAg
ICAgICBUT0JOKDB4MDZlNzE2NWMsIDB4YWE0NjY4ZWQpLCBUT0JOKDB4YjE3MDQ1OGIsIDB4YjRk
M2VjMzkpfSwKKyAgICAgICAgICB7VE9CTigweDRkMmUzZWM2LCAweGMxOWJiOTg2KSwgVE9CTigw
eGM1ZjM0ODQ2LCAweGFlMDMwNGVkKSwKKyAgICAgICAgICAgVE9CTigweDkxNzY5NWEwLCAweDZj
OWY5NzIyKSwgVE9CTigweDZjN2Y3MzE3LCAweDRjYWIxYzBhKX19LAorICAgICAgICAge3tUT0JO
KDB4NjI5NTk0MGUsIDB4OWQ2ZDJlOGIpLCBUT0JOKDB4ZDMxOGI4YzEsIDB4NTQ5ZjdjOTcpLAor
ICAgICAgICAgICBUT0JOKDB4MjI0NTMyMDQsIDB4OTc3MTM4ODUpLCBUT0JOKDB4NDY4ZDgzNGIs
IDB4YThhNDQwZmUpfSwKKyAgICAgICAgICB7VE9CTigweGQ4MWZlNWIyLCAweGJmYmE3OTZlKSwg
VE9CTigweDE1MjM2NGRiLCAweDZkNzFmMTE2KSwKKyAgICAgICAgICAgVE9CTigweGJiOGM3YzU5
LCAweGI1YjY2ZTUzKSwgVE9CTigweDBiMTJjNjFiLCAweDI2NDFhMTkyKX19LAorICAgICAgICAg
e3tUT0JOKDB4MzFmMTQ4MDIsIDB4ZmNmMGE3ZmQpLCBUT0JOKDB4NDJmZDA3ODksIDB4NTQ4OGIw
MWUpLAorICAgICAgICAgICBUT0JOKDB4NzFkNzhkNmQsIDB4OTk1MmI0OTgpLCBUT0JOKDB4OGVi
NTcyZDksIDB4MDdhYzUyMDEpfSwKKyAgICAgICAgICB7VE9CTigweGUwYTJhNDRjLCAweDRkMTk0
YTg4KSwgVE9CTigweGQyYjYzZmQ5LCAweGJhMDE3ZTY2KSwKKyAgICAgICAgICAgVE9CTigweDc4
ZWZjNmM4LCAweGY4ODhhZWZjKSwgVE9CTigweGI3NmY2YmRhLCAweDRhODgxYTExKX19LAorICAg
ICAgICAge3tUT0JOKDB4MTg3ZjMxNGIsIDB4YjQ2YzIzOTcpLCBUT0JOKDB4MDA0Y2Y1NjYsIDB4
NWRlZDI4MTkpLAorICAgICAgICAgICBUT0JOKDB4YTllYTU3MDQsIDB4Mzg3NjRkMzQpLCBUT0JO
KDB4YmJhNDUyMTcsIDB4NzgwODQ3MDkpfSwKKyAgICAgICAgICB7VE9CTigweDA2NDc0NTcxLCAw
eDExNzExMjFlKSwgVE9CTigweGFkN2I3ZWIxLCAweGU3YzliNjcxKSwKKyAgICAgICAgICAgVE9C
TigweGRhY2ZiYzQwLCAweDczMGY3NTA3KSwgVE9CTigweDE3OGNkOGM2LCAweGM3YWQ3YmQxKX19
LAorICAgICAgICAge3tUT0JOKDB4YmYwYmUxMDEsIDB4YjJhNjcyMzgpLCBUT0JOKDB4MzU1NmQz
NjcsIDB4YWY5YzE0ZjIpLAorICAgICAgICAgICBUT0JOKDB4MTA0Yjc4MzEsIDB4YTU2NjIwNzUp
LCBUT0JOKDB4NThjYTU5YmIsIDB4NzlkOWU2MGEpfSwKKyAgICAgICAgICB7VE9CTigweDRiYzQ1
MzkyLCAweGE1NjlhNzNiKSwgVE9CTigweDUxN2E1MmU4LCAweDU2OThmNmM5KSwKKyAgICAgICAg
ICAgVE9CTigweDg1NjQzZGE1LCAweGFlYWRkNzU1KSwgVE9CTigweDFhZWQwY2Q1LCAweDJhNTgx
Yjg0KX19LAorICAgICAgICAge3tUT0JOKDB4YjliNGZmODQsIDB4ODBhZjEzNzIpLCBUT0JOKDB4
MjQ0YzMxMTMsIDB4ZjFiYTVkMWYpLAorICAgICAgICAgICBUT0JOKDB4MmE1ZGFjYmUsIDB4ZjVm
OThkMzEpLCBUT0JOKDB4MmMzMzIzZTgsIDB4NDM3NWJjMmEpfSwKKyAgICAgICAgICB7VE9CTigw
eDE3YTNhYjRhLCAweDU1OTRiMWRkKSwgVE9CTigweGExOTI4YmZiLCAweGNlYjQ3OTdlKSwKKyAg
ICAgICAgICAgVE9CTigweGU4M2FmMjQ1LCAweGU0ODg2YTE5KSwgVE9CTigweDg5NzlkNTQ2LCAw
eDcyYjVhNzRhKX19LAorICAgICAgICAge3tUT0JOKDB4YTBmNzI2YmMsIDB4MTlmOWU5NjcpLCBU
T0JOKDB4ZDlkMDMxNTIsIDB4ZThmYmJmNGUpLAorICAgICAgICAgICBUT0JOKDB4Y2ZkNmY1MWQs
IDB4Yjc3MDdkNDApLCBUT0JOKDB4NjMzMDg0ZDksIDB4NjNmNmU2ZTApfSwKKyAgICAgICAgICB7
VE9CTigweGVkY2Q5Y2RjLCAweDU1NjY3ZWFmKSwgVE9CTigweDczYjdmOTJiLCAweDJlNDRkNTZm
KSwKKyAgICAgICAgICAgVE9CTigweGZiMmUzOWI2LCAweDRlOTYyYjE0KSwgVE9CTigweDdkNDA4
ZjZlLCAweGY2NzFmY2JmKX19LAorICAgICAgICAge3tUT0JOKDB4Y2M2MzRkZGMsIDB4MTY0YTg5
YmIpLCBUT0JOKDB4NzRhNDJiYjIsIDB4M2VmM2JkMDUpLAorICAgICAgICAgICBUT0JOKDB4MTI4
MGRiYjIsIDB4NDI4ZGVjYmIpLCBUT0JOKDB4NjEwM2Y2YmIsIDB4NDAyYzg1OTYpfSwKKyAgICAg
ICAgICB7VE9CTigweGZhMmJmNTgxLCAweDM1NWE1NzUyKSwgVE9CTigweDU2MmY5NmE4LCAweDAw
OTQ2Njc0KSwKKyAgICAgICAgICAgVE9CTigweDRlNGNhMTZkLCAweDZkYTAyMjNiKSwgVE9CTigw
eGZlNDc4MTlmLCAweDI4ZDNhYTI1KX19LAorICAgICAgICAge3tUT0JOKDB4OWVlYTMwNzUsIDB4
ZjhkZmNmOGEpLCBUT0JOKDB4YTI4NGYwYWEsIDB4OTU2Njk4MjUpLAorICAgICAgICAgICBUT0JO
KDB4YjNmY2EyNTAsIDB4ODY3ZDNmZDgpLCBUT0JOKDB4MjA3NTdiNWYsIDB4MjY5ZDY5MWUpfSwK
KyAgICAgICAgICB7VE9CTigweGYyYzI0MDIwLCAweDkzYjhhNWRlKSwgVE9CTigweGQzZjkzMzU5
LCAweGViYzA2ZGE2KSwKKyAgICAgICAgICAgVE9CTigweDExNzgyOTNlLCAweGIyNzM5YzMzKSwg
VE9CTigweGQyYTNlNzcwLCAweGJjZDY4NmU1KX19LAorICAgICAgICAge3tUT0JOKDB4YTc2ZjQ5
ZjQsIDB4Y2Q5NDE1MzQpLCBUT0JOKDB4MGQzNzQwNmIsIDB4ZTNjNzFjMGUpLAorICAgICAgICAg
ICBUT0JOKDB4MTcyZDkzOTcsIDB4M2I5N2Y3ZTMpLCBUT0JOKDB4ZWMxN2UyMzksIDB4YmQ3ZmQw
ZGUpfSwKKyAgICAgICAgICB7VE9CTigweGUzMjkwNTUxLCAweDZmNDk2YmEyKSwgVE9CTigweDZh
NjkzMTcyLCAweDM2YWQ1MGU3KSwKKyAgICAgICAgICAgVE9CTigweGM0ZTUzOWEyLCAweDgzZTdl
ZmY1KSwgVE9CTigweDc1MjczN2U3LCAweDE4ZTFiNGNmKX19LAorICAgICAgICAge3tUT0JOKDB4
YTJmNzkzMmMsIDB4NjhhZjQzZWUpLCBUT0JOKDB4NTUwMjQ2OGUsIDB4NzAzZDAwYmQpLAorICAg
ICAgICAgICBUT0JOKDB4ZTVkYzk3OGYsIDB4MmZiMDYxZjUpLCBUT0JOKDB4YzlhMTkwNGEsIDB4
MjhjODE1YWQpfSwKKyAgICAgICAgICB7VE9CTigweGQzYWY1MzhkLCAweDQ3MGM1NmE0KSwgVE9C
TigweDE1OWFiYzVmLCAweDE5M2Q4Y2VkKSwKKyAgICAgICAgICAgVE9CTigweDJhMzcyNDVmLCAw
eDIwMTA4ZWYzKSwgVE9CTigweGZhMTcwODFlLCAweDIyM2Y3MTc4KX19LAorICAgICAgICAge3tU
T0JOKDB4MjdiMGZiMmIsIDB4MTBjOGMwZjUpLCBUT0JOKDB4MjEwMmMzZWEsIDB4NDA2NTA1NDcp
LAorICAgICAgICAgICBUT0JOKDB4NTk0NTY0ZGYsIDB4OGFjM2JmYTcpLCBUT0JOKDB4OTgxMDIw
MzMsIDB4NTA5ZGFkOTYpfSwKKyAgICAgICAgICB7VE9CTigweDY5ODk2NDNmLCAweGYxZDE4YTEz
KSwgVE9CTigweDM1ZWViZDkxLCAweGQ3ZmM1YWYwKSwKKyAgICAgICAgICAgVE9CTigweDA3OGQw
OTZhLCAweGZhZWFhZmQ4KSwgVE9CTigweGI3YTg5MzQxLCAweGRlZjNkZTk4KX19LAorICAgICAg
ICAge3tUT0JOKDB4MmEyMDZlOGQsIDB4ZWNmMmE3M2EpLCBUT0JOKDB4MDY2YTYzOTcsIDB4OGU1
NTE5OTQpLAorICAgICAgICAgICBUT0JOKDB4M2E2YTA4OGEsIDB4Yjk4ZDUzYTIpLCBUT0JOKDB4
MGNlN2M2N2MsIDB4MmQxMTI0YWEpfSwKKyAgICAgICAgICB7VE9CTigweDQ4Y2VjNjcxLCAweDc1
OWExMTNjKSwgVE9CTigweGUzYjM3M2QzLCAweDRmNmY2N2ZhKSwKKyAgICAgICAgICAgVE9CTigw
eDU0NTVkNDc5LCAweGZkMzY3MjdiKSwgVE9CTigweGU1YTQyOGVlLCAweGExM2MwZDgxKX19LAor
ICAgICAgICAge3tUT0JOKDB4Yjg1M2RiYzgsIDB4MWM4NjY4MmIpLCBUT0JOKDB4Yjc4ZDI3Mjcs
IDB4YjhkMDJiMmEpLAorICAgICAgICAgICBUT0JOKDB4YWFmNjliZWQsIDB4OGViYzMyOWEpLCBU
T0JOKDB4ZGI2YjQwYjMsIDB4MjkzYjIxNDgpfSwKKyAgICAgICAgICB7VE9CTigweGU0MmVhNzdk
LCAweGI4YzQ5NjFmKSwgVE9CTigweGIxYTEyZjdjLCAweDIwZTVlMGFiKSwKKyAgICAgICAgICAg
VE9CTigweGEwZWM1Mjc0LCAweDc5ZThiMDVlKSwgVE9CTigweDY4MDI3MzkxLCAweGZhYjYwYTgw
KX19LAorICAgICAgICAge3tUT0JOKDB4NmJmZWVhNWYsIDB4MTZiMWJkNWUpLCBUT0JOKDB4Zjk1
N2U0MjAsIDB4NGRlMzBhZDMpLAorICAgICAgICAgICBUT0JOKDB4Y2JhZjY2NGUsIDB4NmEzNTNi
OWUpLCBUT0JOKDB4NWM4NzMzMTIsIDB4MjZkMTRmZWIpfSwKKyAgICAgICAgICB7VE9CTigweDRl
ODdmOThjLCAweGI2NWY1N2NiKSwgVE9CTigweGRiNjBhNjIxLCAweDVlMGNkZDQxKSwKKyAgICAg
ICAgICAgVE9CTigweDY3YzE2ODY1LCAweGE2ODgxNDQwKSwgVE9CTigweDEwOTNlZjFhLCAweDQ2
YWI1MmFhKX19LAorICAgICAgICAge3tUT0JOKDB4YzA5NWFmYjUsIDB4M2Y0ZWNlNjQpLCBUT0JO
KDB4NmE2YmIwMmUsIDB4NzYwNDU1MWEpLAorICAgICAgICAgICBUT0JOKDB4NTVkNDRiNGUsIDB4
MGIyNmI4Y2QpLCBUT0JOKDB4ZTVmOWE5OTksIDB4Zjk3MTI2OGEpfSwKKyAgICAgICAgICB7VE9C
TigweGMwOGVjNDI1LCAweDExYTdkZTg0KSwgVE9CTigweDgzNTY4MDk1LCAweGZkYTQ2OWRkKSwK
KyAgICAgICAgICAgVE9CTigweDczN2JmYmExLCAweDZjNmM5MGEyKSwgVE9CTigweDFjYjljNGEw
LCAweGJlMjI5ODMxKX19LAorICAgICAgICAge3tUT0JOKDB4OTNiY2NiYmEsIDB4YmIyZWVjNjQp
LCBUT0JOKDB4YTBjMjNiNjQsIDB4ZGEwM2FkYmUpLAorICAgICAgICAgICBUT0JOKDB4NWY3YWEw
MGEsIDB4ZTBlODZhYzQpLCBUT0JOKDB4NDcwYjk0MWUsIDB4ZmMxNDAxZTYpfSwKKyAgICAgICAg
ICB7VE9CTigweDVhZDhkNjc5LCAweDlkZjQzNTc0KSwgVE9CTigweDRjY2ZiOGE5LCAweDBmNjVk
ODEwKSwKKyAgICAgICAgICAgVE9CTigweDFiY2U4MGUzLCAweGFhN2ZiZDgxKSwgVE9CTigweDI3
MzI5MWFkLCAweDk1MDhkMjBhKX19LAorICAgICAgICAge3tUT0JOKDB4ZjVjNGI0NmIsIDB4NDJh
OTI4MDYpLCBUT0JOKDB4ODEwNjg0ZWMsIDB4YTg2YWI0NGEpLAorICAgICAgICAgICBUT0JOKDB4
NDU5MTY0MGIsIDB4Y2EwYmM5ZjgpLCBUT0JOKDB4YjVlZmNkZmMsIDB4NWM0YjYwNTQpfSwKKyAg
ICAgICAgICB7VE9CTigweDE2ZmM4OTA3LCAweDZlOWVkZDEyKSwgVE9CTigweGUyOWQwYjUwLCAw
eGQ0ZDc5MmY5KSwKKyAgICAgICAgICAgVE9CTigweGE0NWZkMDFjLCAweDliMDMxMTZkKSwgVE9C
TigweDg1MDM1MjM1LCAweGM4MTc2NWE0KX19LAorICAgICAgICAge3tUT0JOKDB4MWZlMmE5YjIs
IDB4YjRiNGI2N2MpLCBUT0JOKDB4YzFkMTBkZjAsIDB4ZTgwMjA2MDQpLAorICAgICAgICAgICBU
T0JOKDB4OWQ2NGFiZmMsIDB4YmM4MDU4ZDgpLCBUT0JOKDB4ODk0M2I5YjIsIDB4NzEyYTBmYmIp
fSwKKyAgICAgICAgICB7VE9CTigweDkwZWVkOTE0LCAweDNiM2RlZjA0KSwgVE9CTigweDg1YWIz
YWEyLCAweDRjZTc3NWZmKSwKKyAgICAgICAgICAgVE9CTigweDYwNWZkNGNhLCAweDdiYmM5MDQw
KSwgVE9CTigweDhiMzRhNTY0LCAweGUyYzc1ZGZiKX19LAorICAgICAgICAge3tUT0JOKDB4NDFm
ZmM5NGEsIDB4MTAzNTg1NjApLCBUT0JOKDB4MmQ4YTUwNzIsIDB4OWU1YzI4YWEpLAorICAgICAg
ICAgICBUT0JOKDB4ZTkxNWEwZmMsIDB4NGNjN2ViMTUpLCBUT0JOKDB4ZTllZmFiMDUsIDB4OGY2
ZDBmNWQpfSwKKyAgICAgICAgICB7VE9CTigweGRiYWI0N2E5LCAweGQxOWU5YjkxKSwgVE9CTigw
eDhjZmVkNzQ1LCAweDAyNzYxNTRjKSwKKyAgICAgICAgICAgVE9CTigweDE1NDM1N2FlLCAweDJj
ZmVkZTBkKSwgVE9CTigweDUyMDYzMGRmLCAweDE5ZjVhNGVmKX19LAorICAgICAgICAge3tUT0JO
KDB4MjU3NTlmN2MsIDB4ZTM4MjM2MGYpLCBUT0JOKDB4YjZkYjA1YzksIDB4ODhiZjU4NTcpLAor
ICAgICAgICAgICBUT0JOKDB4MjkxN2Q2MWQsIDB4NmM1OGQ0NmMpLCBUT0JOKDB4MTRmOGU0OTEs
IDB4ZmQyMGNiN2EpfSwKKyAgICAgICAgICB7VE9CTigweGI2OGE3MjdhLCAweDExYzIwMzQwKSwg
VE9CTigweDAzODZmODZmLCAweGFmN2NjYmI2KSwKKyAgICAgICAgICAgVE9CTigweDVjOGJjNmNj
LCAweGZlZTA5YTIwKSwgVE9CTigweDdkNzZmZjRhLCAweGJiN2VlYTM1KX19LAorICAgICAgICAg
e3tUT0JOKDB4YTdiZGViZTcsIDB4ZGIxNWJlN2EpLCBUT0JOKDB4NjdhMDgwNTQsIDB4ZDg5ZjAz
MDIpLAorICAgICAgICAgICBUT0JOKDB4NTZiZjBlYTksIDB4YzExOTMzNjQpLCBUT0JOKDB4Yzgy
NDQ0NjcsIDB4NjI4MzdlYmUpfSwKKyAgICAgICAgICB7VE9CTigweDMyYmQ4ZThiLCAweDIwZDg0
MWI4KSwgVE9CTigweDEyN2EwNTQ4LCAweGRiYjhhNTRmKSwKKyAgICAgICAgICAgVE9CTigweDgz
ZGQ0Y2E2LCAweDYzYjIwMjM2KSwgVE9CTigweDg3NzE0NzE4LCAweDIwMzQ5MWZhKX19LAorICAg
ICAgICAge3tUT0JOKDB4NGRhYmNhYWEsIDB4YWE4YTUyODgpLCBUT0JOKDB4OTFjYzBjOGEsIDB4
YWYyM2ExYzkpLAorICAgICAgICAgICBUT0JOKDB4MzRjNzJjNmEsIDB4M2YyMjBlMGMpLCBUT0JO
KDB4YmNjMjBiZGYsIDB4MTIzMjE0NGEpfSwKKyAgICAgICAgICB7VE9CTigweDZlMmY0MmRhLCAw
eGEyMGVkZTFiKSwgVE9CTigweGM0NDFmMDBjLCAweDc0YTAwNTE1KSwKKyAgICAgICAgICAgVE9C
TigweGJmNDZhNWI2LCAweDczNGI4YzRiKSwgVE9CTigweDU3NDA5NTAzLCAweDdiNTZjOWE0KX19
LAorICAgICAgICAge3tUT0JOKDB4OWY3MzUyNjEsIDB4ZTQ1ODVkNDUpLCBUT0JOKDB4OTIzMWZh
ZWQsIDB4NjczNGU2NDIpLAorICAgICAgICAgICBUT0JOKDB4MTE1OGExNzYsIDB4YmU3MGVlNmMp
LCBUT0JOKDB4MzVmMTA2OGQsIDB4N2MzNTAxYmYpfSwKKyAgICAgICAgICB7VE9CTigweDZiZWVm
OTAwLCAweGEyZDI2MTE1KSwgVE9CTigweDY0OTQwNmYyLCAweGVmMGFmZWUzKSwKKyAgICAgICAg
ICAgVE9CTigweDNmNDNhNjBhLCAweGJjMjQyMGExKSwgVE9CTigweDUwOTAwMmE3LCAweGQ1YWVl
NGFjKX19LAorICAgICAgICAge3tUT0JOKDB4YjQ2ODM2YTUsIDB4M2ZmMzU3MWIpLCBUT0JOKDB4
MjRmOThiNzgsIDB4ODM3OTI3YzEpLAorICAgICAgICAgICBUT0JOKDB4NjI1NDI1NmEsIDB4NDUz
M2M3MTYpLCBUT0JOKDB4ZjI3YWJiMGIsIDB4ZDA3ZWUxOTYpfSwKKyAgICAgICAgICB7VE9CTigw
eGQ3Y2Y2NGZjLCAweDVjNmQ1YmZkKSwgVE9CTigweDY5MTVjNzUxLCAweGYwY2Q3YTc3KSwKKyAg
ICAgICAgICAgVE9CTigweGQ5ZjU5MDEyLCAweDg3OThmNTM0KSwgVE9CTigweDc3MmIwZGE4LCAw
eGY4MWQ4YjVmKX19LAorICAgICAgICAge3tUT0JOKDB4MTI0NDI2MGMsIDB4MmUwM2ZhNjkpLCBU
T0JOKDB4MzZjZjBlM2EsIDB4M2JlMWEzNzQpLAorICAgICAgICAgICBUT0JOKDB4NmU3YzE2MzMs
IDB4ZWYwNmI5NjApLCBUT0JOKDB4YTcxYTRjNTUsIDB4NjcxZjkwZjYpfSwKKyAgICAgICAgICB7
VE9CTigweDdhOTQxMjUxLCAweDMzYzY3M2RiKSwgVE9CTigweGMwYmVhNTEwLCAweDczZThjMTMx
KSwKKyAgICAgICAgICAgVE9CTigweDYxYThhNjk5LCAweGQ0ZjZjNzM0KSwgVE9CTigweDI1ZTc4
Yzg4LCAweDM0MWVkMDAxKX19LAorICAgICAgICAge3tUT0JOKDB4NWMxOGFjZjgsIDB4OGUyZjdk
OTApLCBUT0JOKDB4ZmRiZjMzZDcsIDB4NzdiZTMyY2QpLAorICAgICAgICAgICBUT0JOKDB4MGEw
ODVjZDcsIDB4ZDJlYjVlZTkpLCBUT0JOKDB4MmQ3MDJjZmIsIDB4YjMyMDExMTUpfSwKKyAgICAg
ICAgICB7VE9CTigweGI2ZTBlYmRiLCAweDg1Yzg4Y2U4KSwgVE9CTigweDIzYTNjZTNjLCAweDFl
MDFkNjE3KSwKKyAgICAgICAgICAgVE9CTigweDMwNDE2MThlLCAweDU2NzMzM2FjKSwgVE9CTigw
eDlkZDBmZDhmLCAweDE1N2VkYjZiKX19LAorICAgICAgICAge3tUT0JOKDB4MjdmNzQ3MDIsIDB4
YjU3ODcyYjgpLCBUT0JOKDB4MmVmMjZiNGYsIDB4NjU3ZDVmZTEpLAorICAgICAgICAgICBUT0JO
KDB4OTU0MjZmMGEsIDB4NTdjZjNkNDApLCBUT0JOKDB4ODQ3ZTJhZDEsIDB4NjVhNjA2N2EpfSwK
KyAgICAgICAgICB7VE9CTigweGQ0NzRkOWEwLCAweDA5OTk2YTc0KSwgVE9CTigweDE2YTU2YWNk
LCAweDJhMjYxMTVjKSwKKyAgICAgICAgICAgVE9CTigweDAyYTYxNWMzLCAweGQxNmY0ZDQzKSwg
VE9CTigweGNjM2ZjOTY1LCAweGFhZGI4NWI3KX19LAorICAgICAgICAge3tUT0JOKDB4Mzg2YmRh
NzMsIDB4Y2UwN2QxYjApLCBUT0JOKDB4ZDgyOTEwYzIsIDB4NThhZDQxNzgpLAorICAgICAgICAg
ICBUT0JOKDB4MTI0ZjgyY2YsIDB4Y2QyNjE3ZjQpLCBUT0JOKDB4Y2MyZjVlOGQsIDB4ZWY2OTE3
NzApfSwKKyAgICAgICAgICB7VE9CTigweDgyNzAyNTUwLCAweGI4YzMwY2NjKSwgVE9CTigweDdi
ODU2YWVhLCAweDFhOGU1NzVhKSwKKyAgICAgICAgICAgVE9CTigweGJiODIyZmVmLCAweGIxYWI5
NDU5KSwgVE9CTigweDA4NTkyOGJjLCAweGVjMjRlMzhlKX19LAorICAgICAgICAge3tUT0JOKDB4
NWQwNDAyZWMsIDB4YmE4ZjRiNGQpLCBUT0JOKDB4YzA3Y2Q0YmEsIDB4MDBiNGQ1OGIpLAorICAg
ICAgICAgICBUT0JOKDB4NWQ4ZGZmZDUsIDB4MjkyMjdlN2EpLCBUT0JOKDB4NjFkNDRkMGMsIDB4
MzFiZjM4NmYpfSwKKyAgICAgICAgICB7VE9CTigweGU0ODZkYzJiLCAweDEzNWU2ZjRkKSwgVE9C
TigweDY4MDk2MmViLCAweGU3OTQxMGVmKSwKKyAgICAgICAgICAgVE9CTigweGE2MWJkMzQzLCAw
eGYxMDA4OGI1KSwgVE9CTigweDZhYTc2MDc2LCAweGUyZTI4Njg2KX19LAorICAgICAgICAge3tU
T0JOKDB4ODA0NjNkMTEsIDB4OGZiOTg4NzEpLCBUT0JOKDB4Y2IyNmY1YzMsIDB4YmJjNzZhZmYp
LAorICAgICAgICAgICBUT0JOKDB4ZDRhYjhlZGQsIDB4ZmJlMDM2MTQpLCBUT0JOKDB4YzhlYjU3
OWIsIDB4YzBjZjJkZWUpfSwKKyAgICAgICAgICB7VE9CTigweGNjMDA0YzE1LCAweGM5M2JhZTQx
KSwgVE9CTigweDQ2ZmJhZTVkLCAweDNhZWNhM2IyKSwKKyAgICAgICAgICAgVE9CTigweDY3MTIz
NWNmLCAweDBmMWU5YWIxKSwgVE9CTigweGFkZmJhOTM0LCAweDllYzI4NWMxKX19LAorICAgICAg
ICAge3tUT0JOKDB4ODhkZWQwMTMsIDB4ZjIxNmM5ODApLCBUT0JOKDB4YzhhYzRmYjgsIDB4Zjc5
ZTBiYzEpLAorICAgICAgICAgICBUT0JOKDB4YTI5Yjg5YzYsIDB4ZmI5N2EyMzcpLCBUT0JOKDB4
YjY5N2I3ODAsIDB4OTkyMmQ4ZTcpfSwKKyAgICAgICAgICB7VE9CTigweDMxNDJjNjM5LCAweGRk
Yjk0NWI1KSwgVE9CTigweDQ0N2IwNmM3LCAweGUwOTRjM2E5KSwKKyAgICAgICAgICAgVE9CTigw
eGNkY2IzNjQyLCAweDcyMjY2YzkwKSwgVE9CTigweDYzM2FhZDA4LCAweGE5Mzg1MDQ2KX19LAor
ICAgICAgICAge3tUT0JOKDB4YTM2YzkzNmIsIDB4YjU3YzY0NzcpLCBUT0JOKDB4ODcxZjhiNjQs
IDB4ZTk0ZGJjYzYpLAorICAgICAgICAgICBUT0JOKDB4MjhkMGZiNjIsIDB4YTU5MWE2N2IpLCBU
T0JOKDB4OWQ0MGUwODEsIDB4YzFkOTI2ZjUpfSwKKyAgICAgICAgICB7VE9CTigweDMxMTFlYWY2
LCAweGYyZDg0YjVhKSwgVE9CTigweDIyODk5M2Y5LCAweGE1NjViNjQ0KSwKKyAgICAgICAgICAg
VE9CTigweDBjY2JmNTkyLCAweDJjODMxODhiKSwgVE9CTigweGY4N2IzMGFiLCAweDNkZjNlMTk3
KX19LAorICAgICAgICAge3tUT0JOKDB4Yjg2NThiMzEsIDB4NzY0MmJjYTgpLCBUT0JOKDB4MWEw
MzJkN2YsIDB4NTI4MDBmMTcpLAorICAgICAgICAgICBUT0JOKDB4MDUxZGNhZTUsIDB4NzliZjk0
NDUpLCBUT0JOKDB4ZWJhNmI4ZWUsIDB4NTRhMmUyNTMpfSwKKyAgICAgICAgICB7VE9CTigweDVj
OGI5Y2FkLCAweGQ0NDg1NjkyKSwgVE9CTigweDg0YmRhNDBlLCAweDg5ODZlOWJlKSwKKyAgICAg
ICAgICAgVE9CTigweGQxNmQxNmE0LCAweDJmMGRiNDQ4KSwgVE9CTigweDhlYzgwMDUwLCAweGEx
NGQ0MTg4KX19LAorICAgICAgICAge3tUT0JOKDB4YjJiMjYxMDcsIDB4OThmYTdhYWEpLCBUT0JO
KDB4NDEyMDllZTQsIDB4ZjA3M2FhNGUpLAorICAgICAgICAgICBUT0JOKDB4ZjE1NzAzNTksIDB4
ZjJkNmIxOWIpLCBUT0JOKDB4Y2JlNjg2OGMsIDB4ZmM1NzdjYWYpfSwKKyAgICAgICAgICB7VE9C
TigweDE4NmM0YmRjLCAweDMyYzA0ZGQzKSwgVE9CTigweGE2YzM1ZmFlLCAweGNmZWVlMzk3KSwK
KyAgICAgICAgICAgVE9CTigweGI0YTFiMzEyLCAweGYwODZjMGNmKSwgVE9CTigweGUwYTVjY2M2
LCAweGQ5NDYxZmUyKX19LAorICAgICAgICAge3tUT0JOKDB4YzMyMjc4YWEsIDB4MTUzNjE4OWYp
LCBUT0JOKDB4MTEyNmM1NWYsIDB4YmE2ZGY1NzEpLAorICAgICAgICAgICBUT0JOKDB4MGY3MWE2
MDIsIDB4YjE5NDU2MGUpLCBUT0JOKDB4OGIyZDc0MDUsIDB4MzI0YmQ2ZTEpfSwKKyAgICAgICAg
ICB7VE9CTigweDg0ODE5MzllLCAweDM3MzhiZTcxKSwgVE9CTigweGI1MDkwYjFhLCAweDFhNGQ5
N2E5KSwKKyAgICAgICAgICAgVE9CTigweDExNmM2NWEzLCAweGYwNWJhOTE1KSwgVE9CTigweDIx
ODYzYWQzLCAweGFhZTQ0OGFhKX19LAorICAgICAgICAge3tUT0JOKDB4ZDI0ZTI2NzksIDB4YTdh
YWU1ZDMpLCBUT0JOKDB4NzA3NjAxM2QsIDB4MGRlNWMxYzQpLAorICAgICAgICAgICBUT0JOKDB4
MmQ1MGY4YmEsIDB4YmIwNWI2MjkpLCBUT0JOKDB4NzNjMWFiZTIsIDB4NmU2NmVmYmIpfSwKKyAg
ICAgICAgICB7VE9CTigweGVmZDRiNDIyLCAweGYyNDg4YWY3KSwgVE9CTigweGU0MTA1ZDAyLCAw
eDY2M2JhNTc1KSwKKyAgICAgICAgICAgVE9CTigweDdlYjYwYThiLCAweDUzYTY5NDU3KSwgVE9C
TigweDYyMjEwMDA4LCAweGM5NDU5NzNiKX19LAorICAgICAgICAge3tUT0JOKDB4ZmIyNTU0Nzgs
IDB4NzdhNTBlYzYpLCBUT0JOKDB4YmYwMzkyZjcsIDB4MGEzN2E3MmMpLAorICAgICAgICAgICBU
T0JOKDB4YTBhN2ExOWMsIDB4NGJlMThlN2EpLCBUT0JOKDB4OTBkOGVhMTYsIDB4MjViMWUwYWYp
fSwKKyAgICAgICAgICB7VE9CTigweDc1ODJhMjkzLCAweGVmOTUzZjU3KSwgVE9CTigweDkwYTY0
ZDA1LCAweGJkYzU0NjVhKSwKKyAgICAgICAgICAgVE9CTigweGNhNzljNDk3LCAweGUyNTEwNzE3
KSwgVE9CTigweDU2MGRiYjdjLCAweDE4Y2I2NDFmKX19LAorICAgICAgICAge3tUT0JOKDB4MWQ4
ZTMyODYsIDB4NGI2NmFiZmIpLCBUT0JOKDB4ZDI2ZjUyZTUsIDB4NTkwMzA5MDApLAorICAgICAg
ICAgICBUT0JOKDB4MWVlM2Y2NDMsIDB4NTU4NDk0MWEpLCBUT0JOKDB4NmQzYjM3MzAsIDB4NTY5
ZjU5NTgpfSwKKyAgICAgICAgICB7VE9CTigweDlmZjJhNjJmLCAweDQ3ODlkYmE1KSwgVE9CTigw
eDkxZmNiODE1LCAweDcyYjVjOWI3KSwKKyAgICAgICAgICAgVE9CTigweGY0NDZjYjdkLCAweDZj
OGY5YTBlKSwgVE9CTigweDQ4ZjYyNWMxLCAweDM5YjdlY2I1KX19LAorICAgICAgICAge3tUT0JO
KDB4YmFiYWU4MDEsIDB4MWM2MjE5YjgpLCBUT0JOKDB4ZTdhNTYyZDksIDB4MjhhYzJmMjMpLAor
ICAgICAgICAgICBUT0JOKDB4ZTFiNDg3MzIsIDB4MjZlMjA1ODgpLCBUT0JOKDB4MDZlZTFjYWQs
IDB4Nzc1YWYwNTEpfSwKKyAgICAgICAgICB7VE9CTigweGRhMjlhZTQzLCAweGZhZmY3OWY3KSwg
VE9CTigweGMxNDFhNDEyLCAweDY1MmVlOWUwKSwKKyAgICAgICAgICAgVE9CTigweDFlMTI3ZjZm
LCAweDE5NWY0YmQwKSwgVE9CTigweDI5YzZhYjRmLCAweDA3MmYzNGY4KX19LAorICAgICAgICAg
e3tUT0JOKDB4N2I3YzE0NzcsIDB4MzA0NDgxMTIpLCBUT0JOKDB4ODJiNTFhZjEsIDB4ZTRhMzg2
NTYpLAorICAgICAgICAgICBUT0JOKDB4MmJmMjAyOGEsIDB4MmYzMTUwMTApLCBUT0JOKDB4Yzlh
NGEwMWYsIDB4NmVhODhjZDQpfSwKKyAgICAgICAgICB7VE9CTigweGY2M2U5NWQ4LCAweDI1N2U1
ODE4KSwgVE9CTigweGRkOGVmYTEwLCAweGI0NTE5YjE2KSwKKyAgICAgICAgICAgVE9CTigweGVk
ODk3M2UwLCAweDBkYTkxMGJmKSwgVE9CTigweGVkNDlkMDc3LCAweDVjMGZlNGE5KX19LAorICAg
ICAgICAge3tUT0JOKDB4YWMzYWFjNWUsIDB4YjdjYWVlMWUpLCBUT0JOKDB4MTAzMzg5OGQsIDB4
YTdmNGRhNTcpLAorICAgICAgICAgICBUT0JOKDB4NDIxNDVjMGUsIDB4NWM2NjY5YjkpLCBUT0JO
KDB4NDJkYWE2ODgsIDB4YzFhYTJhYTApfSwKKyAgICAgICAgICB7VE9CTigweDYyOWNjMTVjLCAw
eDFhMWQ4ODVhKSwgVE9CTigweDI1NTcyZWMwLCAweGY0Yjc2ODE3KSwKKyAgICAgICAgICAgVE9C
TigweDgzMTJlNDM1LCAweDljOGY4ZjI4KSwgVE9CTigweDgxMDdmOGNkLCAweDgxOTY1NDkwKX19
LAorICAgICAgICAge3tUT0JOKDB4NTE2ZmYzYTMsIDB4NmZhNjExMGMpLCBUT0JOKDB4NzRmYjFl
YjEsIDB4ZmI5MzU2MWYpLAorICAgICAgICAgICBUT0JOKDB4NmMwYzkwNDcsIDB4ODQ1NzUyMmIp
LCBUT0JOKDB4Y2ZkMzIxMDQsIDB4NmJiOGJkYzYpfSwKKyAgICAgICAgICB7VE9CTigweDJkNjg4
NGEyLCAweGNjODBhZDU3KSwgVE9CTigweDdjMjdmYzM1LCAweDg2YTliNjM3KSwKKyAgICAgICAg
ICAgVE9CTigweDM0NjFiYWVkLCAweGFkZjRlOGNkKSwgVE9CTigweDFkNTYyNTFhLCAweDYxNzI0
MmYwKX19LAorICAgICAgICAge3tUT0JOKDB4MGI4MGQyMDksIDB4Yzk1NWJlZjQpLCBUT0JOKDB4
ZGYwMmNhZDIsIDB4MDZhZGIwNDcpLAorICAgICAgICAgICBUT0JOKDB4ZjBkN2NiOTEsIDB4NWVj
NzRmZWUpLCBUT0JOKDB4ZDI1MDMzNzUsIDB4MTExMWJhNDQpfSwKKyAgICAgICAgICB7VE9CTigw
eDk2NzE3NTVlLCAweGRmNTNjYjM2KSwgVE9CTigweDU0ZGNiNjEyLCAweDMzNjg1NTFiKSwKKyAg
ICAgICAgICAgVE9CTigweDY2ZDY5YWFjLCAweGM4YTAyNWE0KSwgVE9CTigweDZiZTk0NmM2LCAw
eGU3N2VmNDQ1KX19LAorICAgICAgICAge3tUT0JOKDB4NzE5OTQ2ZDEsIDB4YTk5NWUwOTQpLCBU
T0JOKDB4NjVlODQ4ZjYsIDB4ZTUxZTA0ZDgpLAorICAgICAgICAgICBUT0JOKDB4ZTYyZjMzMDAs
IDB4NmExZTMxMTMpLCBUT0JOKDB4MTU0MWM3YzEsIDB4NTAxZGU1MDMpfSwKKyAgICAgICAgICB7
VE9CTigweDRkYWFjOWZhLCAweGY0YWNmYWRlKSwgVE9CTigweDBlNTg1ODk3LCAweDQ0Y2QwYjcx
KSwKKyAgICAgICAgICAgVE9CTigweDU0NGZkODY5LCAweDBhNTFjZDc3KSwgVE9CTigweDYwZmMy
MGVkLCAweDAwMzEwMTZkKX19LAorICAgICAgICAge3tUT0JOKDB4NThiNDA0ZWMsIDB4YTQyNzY4
NjcpLCBUT0JOKDB4NDZmNmMzY2MsIDB4MzRmMzQ5OTMpLAorICAgICAgICAgICBUT0JOKDB4NDc3
Y2EwMDcsIDB4YzYzNmU1YmQpLCBUT0JOKDB4ODAxOGY1ZTUsIDB4N2M0NThiNDcpfSwKKyAgICAg
ICAgICB7VE9CTigweGExMjAyMjcwLCAweGU0N2I2NjhmKSwgVE9CTigweGNlZjQ4Y2NkLCAweGVl
MTRmMjAzKSwKKyAgICAgICAgICAgVE9CTigweDIzZjk4YmFlLCAweDYyZmY5YjRkKSwgVE9CTigw
eDU1YWNjMDM1LCAweGM1ODllZGRkKX19LAorICAgICAgICAge3tUT0JOKDB4M2ZlNzEyYWYsIDB4
NjRkYjQ0NDQpLCBUT0JOKDB4MTllOWQ2MzQsIDB4YmVjZGQ0ODApLAorICAgICAgICAgICBUT0JO
KDB4ZTA4YmMwNDcsIDB4YTkzMDk3OGEpLCBUT0JOKDB4MmRiZjI0ZWMsIDB4YTEyODA3MzMpfSwK
KyAgICAgICAgICB7VE9CTigweDNjMGFlMzhjLCAweDJjZDcwNmIyKSwgVE9CTigweDViMDEyYTVi
LCAweDM1OTAxN2I5KSwKKyAgICAgICAgICAgVE9CTigweDM5NDNjMzhjLCAweDcyZTBmNWFlKSwg
VE9CTigweDc4NjE2N2VhLCAweDU3MTc2ZmEzKX19LAorICAgICAgICAge3tUT0JOKDB4ZTVmOTg5
N2QsIDB4NTk0ODgxZGMpLCBUT0JOKDB4NmI1ZWZhZDgsIDB4Y2ZiODIwYzEpLAorICAgICAgICAg
ICBUT0JOKDB4YjIxNzkwOTMsIDB4ZDU1MDE4ZGUpLCBUT0JOKDB4MzlhZDdkMzIsIDB4MGJhYzU2
Y2UpfSwKKyAgICAgICAgICB7VE9CTigweGI1NTEyMmUwLCAweDJjZmMwZTgxKSwgVE9CTigweDEx
N2M0NjYxLCAweGY2ZDg5ZGFhKSwKKyAgICAgICAgICAgVE9CTigweDM2MmQwMWUxLCAweGNiNjRm
YTA5KSwgVE9CTigweDZhMzA5YjRlLCAweDNlOWM0ZGRkKX19LAorICAgICAgICAge3tUT0JOKDB4
ZmE5NzlmYjcsIDB4YWJlYTQ5YjEpLCBUT0JOKDB4YjRiMWQyN2QsIDB4MTBlMmM2YzUpLAorICAg
ICAgICAgICBUT0JOKDB4YmQ2MWMyYzQsIDB4MjNhZmRlN2EpLCBUT0JOKDB4ZWI2NjE0ZjgsIDB4
OTc4NmQzNTgpfSwKKyAgICAgICAgICB7VE9CTigweDRhNWQ4MTZiLCAweDdmNmY3NDU5KSwgVE9C
TigweGU0MzFhNDRmLCAweDA5MzYwZTdiKSwKKyAgICAgICAgICAgVE9CTigweDhjMjdhMDMyLCAw
eGMzMDk5MTRjKSwgVE9CTigweGNlYTVkNjhhLCAweGNhZWRlM2Q4KX19LAorICAgICAgICAge3tU
T0JOKDB4MzY2OGY2NjUsIDB4M2EwYTNmOTUpLCBUT0JOKDB4ODkzNjk0MTYsIDB4N2NlYmEyN2Ip
LAorICAgICAgICAgICBUT0JOKDB4ODk5ODFmYWQsIDB4ZTQ3MjhmZTkpLCBUT0JOKDB4NzEwMmM4
YTAsIDB4OGEwOTM1NjIpfSwKKyAgICAgICAgICB7VE9CTigweGJiODAzMTBlLCAweDIzNWQyMWM4
KSwgVE9CTigweDUwNWU1NWQxLCAweGJlZmI3ZjdiKSwKKyAgICAgICAgICAgVE9CTigweGEwYTkw
ODExLCAweDEyOTU4YTY3KSwgVE9CTigweGQ2N2UxMDZhLCAweDRkODUxZmVmKX19LAorICAgICAg
ICAge3tUT0JOKDB4Yjg0MDExYTksIDB4NDMxZGQ4MGUpLCBUT0JOKDB4ZWI3YzdjY2EsIDB4NzMz
MDZjZDkpLAorICAgICAgICAgICBUT0JOKDB4MjBmYWRkMjksIDB4ZDFiM2I3MzApLCBUT0JOKDB4
ODM4NThiNWIsIDB4ZmUzN2IzZDMpfSwKKyAgICAgICAgICB7VE9CTigweGJmNGNkMTkzLCAweGI2
MjUxZDVjKSwgVE9CTigweDFjY2ExZmQzLCAweDEzNTJkOTUyKSwKKyAgICAgICAgICAgVE9CTigw
eGM2NjE1N2E0LCAweDkwZmJjMDUxKSwgVE9CTigweDc5OTBhNjM4LCAweDg5Yjk4NjM2KX19fSwK
KyAgICAgICAge3t7VE9CTigweGU1YWE2OTJhLCAweDg3ZGVjMGUxKSwgVE9CTigweDAxMGRlZDhk
LCAweGY3YjM5ZDAwKSwKKyAgICAgICAgICAgVE9CTigweDdiMWI4MGM4LCAweDU0Y2ZhMGI1KSwg
VE9CTigweDY2YmViODc2LCAweGEwZjhlYTI4KX0sCisgICAgICAgICAge1RPQk4oMHg1MGQ3ZjUz
MSwgMHgzNDc2Y2QwZSksIFRPQk4oMHhhNjNkMGU2NSwgMHhiMDhkMzk0OSksCisgICAgICAgICAg
IFRPQk4oMHgxYTA5ZWVhOSwgMHg1MzQ3OWZjNiksIFRPQk4oMHg4MmFlOTg5MSwgMHhmNDk5ZTc0
Mil9fSwKKyAgICAgICAgIHt7VE9CTigweGFiNThiOTEwLCAweDVjYTdkODY2KSwgVE9CTigweDU4
Mjk2N2UyLCAweDNhZGIzYjM0KSwKKyAgICAgICAgICAgVE9CTigweDg5YWU0NDQ3LCAweGNjZWFj
MGJjKSwgVE9CTigweDkxOWM2NjdjLCAweDdiZjU2YWY1KX0sCisgICAgICAgICAge1RPQk4oMHg5
YWVjMTdiMSwgMHg2MGY1ZGNkNyksIFRPQk4oMHhlYzY5N2I5ZiwgMHhkZGNhYWRiYyksCisgICAg
ICAgICAgIFRPQk4oMHgwYjk4ZjM0MSwgMHg0NjM0NjdmNSksIFRPQk4oMHhiMTg3ZjFmNywgMHhh
OTY3MTMyZil9fSwKKyAgICAgICAgIHt7VE9CTigweDkwZmU3YTFkLCAweDIxNGFlYjE4KSwgVE9C
TigweDE1MDZhZjNjLCAweDc0MTQzMmY3KSwKKyAgICAgICAgICAgVE9CTigweGJiNTU2NWY5LCAw
eGU1OTFhMGM0KSwgVE9CTigweDEwZDQxYTc3LCAweGI0NGYxYmMzKX0sCisgICAgICAgICAge1RP
Qk4oMHhhMDlkNjVlNCwgMHhhODRiZGU5NiksIFRPQk4oMHg0MmYwNjBkOCwgMHhmMjBhNmExYyks
CisgICAgICAgICAgIFRPQk4oMHg2NTJhM2JmZCwgMHhmMjdmOWNlNyksIFRPQk4oMHhiNmJkYjY1
YywgMHgzYjNkNzM5Zil9fSwKKyAgICAgICAgIHt7VE9CTigweGViNWRkY2I2LCAweGVjN2ZhZTlm
KSwgVE9CTigweDk5NWYyNzE0LCAweGVmYjY2ZTVhKSwKKyAgICAgICAgICAgVE9CTigweGRlZTk1
ZDhlLCAweDY5NDQ1ZDUyKSwgVE9CTigweDFiNmMyZDQ2LCAweDA5ZTI3NjIwKX0sCisgICAgICAg
ICAge1RPQk4oMHgzMjYyMWMzMSwgMHg4MTI5ZDcxNiksIFRPQk4oMHhiMDM5MDlmMSwgMHgwOTU4
YzFhYSksCisgICAgICAgICAgIFRPQk4oMHg4YzQ2OGVmOSwgMHgxYWY0YWY2MyksIFRPQk4oMHgx
NjJjNDI5ZiwgMHhmYmE1Y2RmNil9fSwKKyAgICAgICAgIHt7VE9CTigweDJmNjgyMzQzLCAweDc1
M2I5MzcxKSwgVE9CTigweDI5Y2FiNDVhLCAweDVmMWY5Y2Q3KSwKKyAgICAgICAgICAgVE9CTigw
eDU3MTYyM2FiLCAweGIyNDVkYjk2KSwgVE9CTigweGM1MDdkYjA5LCAweDNmZDc5OTk5KX0sCisg
ICAgICAgICAge1RPQk4oMHg0ZTJlZjY1MiwgMHhhZjAzNmMzMiksIFRPQk4oMHg4NmYwY2M3OCwg
MHgwNTAxOGU1YyksCisgICAgICAgICAgIFRPQk4oMHhjMTBhNzNkNCwgMHhhYjhiZTM1MCksIFRP
Qk4oMHg2NTE5YjM5NywgMHg3ZTgyNjMyNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGU4Y2I1ZWVm
LCAweDljMDUzZGY3KSwgVE9CTigweDhkZTI1YjM3LCAweGIzMDBlYTZmKSwKKyAgICAgICAgICAg
VE9CTigweGRiMDNmYTkyLCAweGM4NDljZmZiKSwgVE9CTigweDI0MmU0M2E3LCAweGU4NDE2OWJi
KX0sCisgICAgICAgICAge1RPQk4oMHhlNGZhNTFmNCwgMHhkZDZmOTU4ZSksIFRPQk4oMHg2OTI1
YTc3ZiwgMHhmNDQ0NWE4ZCksCisgICAgICAgICAgIFRPQk4oMHhlNmU3MmE1MCwgMHhlOTBkODk0
OSksIFRPQk4oMHhjNjY2NDhlMywgMHgyYjFmNjM5MCl9fSwKKyAgICAgICAgIHt7VE9CTigweGIy
YWIxOTU3LCAweDE3M2U0NjBjKSwgVE9CTigweDFiYmJjZTc1LCAweDMwNzA0NTkwKSwKKyAgICAg
ICAgICAgVE9CTigweGMwYTkwZGJkLCAweGRiMWM3MTYyKSwgVE9CTigweDUwNWUzOTllLCAweDE1
Y2RkNjVkKX0sCisgICAgICAgICAge1RPQk4oMHg2ODQzNGRjYiwgMHg1Nzc5N2FiNyksIFRPQk4o
MHg2MGFkMzViYSwgMHg2YTJjYThlOCksCisgICAgICAgICAgIFRPQk4oMHg0YmZkYjFlMCwgMHhk
ZTMzMzZjMSksIFRPQk4oMHhiYmVmOTllYiwgMHhkOGIzOTAxNSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDZjM2I5NmYzLCAweDE3MTFlYmVjKSwgVE9CTigweDJkYTQwZjFmLCAweGNlOThmZGM0KSwK
KyAgICAgICAgICAgVE9CTigweGI5OTc3NGQzLCAweDU3YjQ0MTFmKSwgVE9CTigweDg3YzhiZGY0
LCAweDE1YjY1YmI2KX0sCisgICAgICAgICAge1RPQk4oMHhkYTNhODllMywgMHhjMmVlZjEyZCks
IFRPQk4oMHhkZTk1YmI5YiwgMHgzYzc0NzFmMyksCisgICAgICAgICAgIFRPQk4oMHg2MDBmMjI1
YiwgMHhkODEyYzU5NCksIFRPQk4oMHg1NDkwN2M1ZCwgMHgyYjc1YTU2Yil9fSwKKyAgICAgICAg
IHt7VE9CTigweGE5M2NjNWYwLCAweDhkYjYwZTM1KSwgVE9CTigweDc0M2UzY2Q2LCAweGZhODMz
MzE5KSwKKyAgICAgICAgICAgVE9CTigweDdkYWQ1YzQxLCAweGY4MTY4M2M5KSwgVE9CTigweDcw
YzFlN2Q5LCAweDljMzQxMDdlKX0sCisgICAgICAgICAge1RPQk4oMHgwZWRjNGEzOSwgMHhhNmJl
MDkwNyksIFRPQk4oMHgzNmQ0NzAzNSwgMHg4NmQwYjdkMyksCisgICAgICAgICAgIFRPQk4oMHg4
Yzc2ZGEwMywgMHgyNzJiZmE2MCksIFRPQk4oMHgwYjRhMDdlYSwgMHgwZjA4YTQxNCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDY5OWU0ZDI5LCAweDQ1YzFkZDUzKSwgVE9CTigweGNhZGM1ODk4LCAw
eDIzMWRlYmI1KSwKKyAgICAgICAgICAgVE9CTigweGRmNDlmY2M3LCAweGE3N2YwMGUwKSwgVE9C
TigweDkzMDU3YmJmLCAweGE3M2U1YTBlKX0sCisgICAgICAgICAge1RPQk4oMHgyZjhiN2VjZCwg
MHgwMjdhNGNkMSksIFRPQk4oMHgxMTQ3MzRiMywgMHhjNjE0MDExYSksCisgICAgICAgICAgIFRP
Qk4oMHhlN2EwMWRiNywgMHg2NzY3N2M2OCksIFRPQk4oMHg4OWQ5YmU1ZSwgMHg3ZTI3M2Y0Zil9
fSwKKyAgICAgICAgIHt7VE9CTigweGQyMjVjYjJlLCAweDA4OTgwOGVmKSwgVE9CTigweGYxZjdh
MjdkLCAweGQ1OWU0MTA3KSwKKyAgICAgICAgICAgVE9CTigweDUzYWZjNzYxLCAweDgyMTFiOWM5
KSwgVE9CTigweDAzNjFiYzY3LCAweGU2ODE5MTU5KX0sCisgICAgICAgICAge1RPQk4oMHgyYTg2
NWQwYiwgMHg3ZjA3MTQyNiksIFRPQk4oMHg2YTNjMTgxMCwgMHhlNzA3MjU2NyksCisgICAgICAg
ICAgIFRPQk4oMHgzZTNiY2ExZSwgMHgwZDZiY2FiZCksIFRPQk4oMHhhMWIwMmJjMSwgMHg0MDg1
OTFiYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGUwZGVlZTU5LCAweDMxZmJhMjM5KSwgVE9CTigw
eGY0NzQyNGQzLCAweDk4YmQ5MWQxKSwKKyAgICAgICAgICAgVE9CTigweDBmODg4NmY0LCAweDA3
MWEzYzFkKSwgVE9CTigweDNmN2Q0MWU4LCAweGE4MTkyMzNiKX0sCisgICAgICAgICAge1RPQk4o
MHg3MDg2MjNjMiwgMHhjZjZlYjk5OCksIFRPQk4oMHg4NmJiNDlhZiwgMHg2MDlhMjg3ZiksCisg
ICAgICAgICAgIFRPQk4oMHg5NDJiYjI0OSwgMHg2M2M5MDc2MiksIFRPQk4oMHgwZWY2ZWVhNSwg
MHg1NWE5NjU0Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDVmNmQyZDcyLCAweDM2ZjVkZWZlKSwg
VE9CTigweGZhOTkyMmRjLCAweDU2Zjk5MTc2KSwKKyAgICAgICAgICAgVE9CTigweDZjOGM1ZWNl
LCAweGY3OGNlMGM3KSwgVE9CTigweDdiNDQ1ODlkLCAweGJlMDliNTVlKX0sCisgICAgICAgICAg
e1RPQk4oMHhlMTFiM2JjYSwgMHg5ZWE4Mzc3MCksIFRPQk4oMHhkN2ZhMmM3ZiwgMHgyYWI3MTU0
NyksCisgICAgICAgICAgIFRPQk4oMHgyYTNkZDZmYSwgMHgyYTFkZGNjMCksIFRPQk4oMHgwOWFj
YjQzMCwgMHg1YTdiNzcwNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDRhZGQ0YTJlLCAweDY0OWQ0
ZTU3KSwgVE9CTigweGNkNTNhMmIwLCAweDE5MTc1MjZlKSwKKyAgICAgICAgICAgVE9CTigweGM1
MjYyMzMwLCAweDIwYjQ0YWM0KSwgVE9CTigweDQwMjg3NDZhLCAweGJhYTJjMzFkKX0sCisgICAg
ICAgICAge1RPQk4oMHg1MTMxODM5MCwgMHg2NDI5MWQ0YyksIFRPQk4oMHhiZjQ4ZjE1MSwgMHhl
ZTVhZDkwOSksCisgICAgICAgICAgIFRPQk4oMHhjY2U1N2Y1OSwgMHg3YjE4NTY4MSksIFRPQk4o
MHg3YzNhYzFiMCwgMHg0ODU0ZDQ0Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDY1NTg3ZGMzLCAw
eGMwOTNjMTcxKSwgVE9CTigweGFlN2FjYjI0LCAweDI0ZjQyYjY1KSwKKyAgICAgICAgICAgVE9C
TigweDVhMzM4YWRiLCAweDk1NTk5NmNiKSwgVE9CTigweGM4ZTY1Njc1LCAweDYwNTFmOTFiKX0s
CisgICAgICAgICAge1RPQk4oMHg2NjcxMWZiYSwgMHgyOGI4ZDBiMSksIFRPQk4oMHgxNWQ3NDEz
NywgMHhiNmMxMGE5MCksCisgICAgICAgICAgIFRPQk4oMHg3MGNkZDdlYiwgMHgzYTIzMmE4MCks
IFRPQk4oMHhjOWUyZjA3ZiwgMHg2MTkxZWQyNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGE4MGQx
ZGI2LCAweGY3OTU4OGMwKSwgVE9CTigweGZhNTJmYzY5LCAweGI1NTc2OGNjKSwKKyAgICAgICAg
ICAgVE9CTigweDBiNGRmMWFlLCAweDdmNTQ0MzhhKSwgVE9CTigweDBjYWRkMWE3LCAweGY5YjQ2
YTRmKX0sCisgICAgICAgICAge1RPQk4oMHhiNDBlYTZiMywgMHgxODAzZGQ2ZiksIFRPQk4oMHg0
ODhlNGZhNSwgMHg1NWVhYWUzNSksCisgICAgICAgICAgIFRPQk4oMHg5ZjA0N2Q1NSwgMHgzODJl
NGUxNiksIFRPQk4oMHhjOWI1YjdlMCwgMHgyZjZlMGM5OCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDZiMWJkMmQzLCAweDk1NzYyNjQ5KSwgVE9CTigweGE5NjA0ZWU3LCAweGM3YWVhM2Y2KSwKKyAg
ICAgICAgICAgVE9CTigweDM2NDZmZjI3LCAweDZkYzZmODk2KSwgVE9CTigweDliZjBlN2Y1LCAw
eDI4NjBiYWQxKX0sCisgICAgICAgICAge1RPQk4oMHgyZDkyYzgyMSwgMHg3Y2I0NGI5MiksIFRP
Qk4oMHhhMmY1Y2U2MywgMHhhZWE5YzE4MiksCisgICAgICAgICAgIFRPQk4oMHhkMGEyYWZiMSwg
MHg5MTU0YTVmZCksIFRPQk4oMHg0ODJlNDc0YywgMHg5NTgwMWRhNil9fSwKKyAgICAgICAgIHt7
VE9CTigweGMxOTk3MmQwLCAweGI2MTFjMjRiKSwgVE9CTigweDFkNDY4ZTY1LCAweDYwYThmMzUx
KSwKKyAgICAgICAgICAgVE9CTigweGViNzU4MDY5LCAweDdiY2Y2NDIxKSwgVE9CTigweGVjOWRk
MGVlLCAweDg4ZmJjNDkxKX0sCisgICAgICAgICAge1RPQk4oMHg1YjU5ZDJiZiwgMHg5NTZjMmUz
MiksIFRPQk4oMHg3M2RjNjg2NCwgMHhkY2RkZjk0ZSksCisgICAgICAgICAgIFRPQk4oMHhmZDVl
MjMyMSwgMHhiY2VlNzY2NSksIFRPQk4oMHhhN2I0ZjhlZiwgMHg1ZTlhMDZjNCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGZiYTkxOGRkLCAweDcyODBmODU1KSwgVE9CTigweGJiYWFjMjYwLCAweDhi
YWVjNjg4KSwKKyAgICAgICAgICAgVE9CTigweGEzYjNmMDBmLCAweDMzNDAwZjQyKSwgVE9CTigw
eDNkMmRiYTI5LCAweDY2ZjJlNmU0KX0sCisgICAgICAgICAge1RPQk4oMHhiNmY3MWE5NCwgMHg5
ODUwOTM3NSksIFRPQk4oMHg4ZjMzMDMxZiwgMHhjZWE0MjNjYyksCisgICAgICAgICAgIFRPQk4o
MHgwMDliOGRkMCwgMHg0ODA3ZTZmYiksIFRPQk4oMHg1MTYzY2ZlNSwgMHg1Y2RiOTU0Yyl9fSwK
KyAgICAgICAgIHt7VE9CTigweDAzY2M4ZjE3LCAweGNmNDFjNmU4KSwgVE9CTigweGYxZjAzYzJh
LCAweDAzN2I5MjVjKSwKKyAgICAgICAgICAgVE9CTigweGMzOWMxOWNjLCAweDY2ZDI0MjdjKSwg
VE9CTigweDgyM2QyNGJhLCAweDdiNmMxOGU0KX0sCisgICAgICAgICAge1RPQk4oMHgzMmVmOTAx
MywgMHg5MDFmMGI0ZiksIFRPQk4oMHg2ODQzNjBmMSwgMHhmODk0MWMyZSksCisgICAgICAgICAg
IFRPQk4oMHgwZWJhZmY1MiwgMHgyYzI4MDkyZSksIFRPQk4oMHg3ODkxZTRlMywgMHgyNTZjOTMy
Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDUxMjY0MzE5LCAweGFjNDQ1ZTNkKSwgVE9CTigweDU1
MzQzMmU3LCAweDhlYTc0MzgxKSwKKyAgICAgICAgICAgVE9CTigweGU2ZWVhYTY5LCAweDY3ZTlj
NTBhKSwgVE9CTigweDI3Y2VkMjg0LCAweDYyZTYyOGM3KX0sCisgICAgICAgICAge1RPQk4oMHgz
Zjk2ZDM3NSwgMHg3YTRhZmE1NyksIFRPQk4oMHhkZTBhMTRjMywgMHhlNDg0YzE1MCksCisgICAg
ICAgICAgIFRPQk4oMHgzNjRhMjRlYiwgMHgzOGJkOTkyMyksIFRPQk4oMHgxZGYxOGRhMCwgMHhl
NTE3NzQyMil9fSwKKyAgICAgICAgIHt7VE9CTigweDE3NGU4ZjgyLCAweGQ4ZDM4YTliKSwgVE9C
TigweDJlOTdjNjAwLCAweGU3ZGUxMzkxKSwKKyAgICAgICAgICAgVE9CTigweGM1NzA5ODUwLCAw
eGExYzE3NWRkKSwgVE9CTigweDk2OTA0MWEwLCAweDMyYWU1MDM1KX0sCisgICAgICAgICAge1RP
Qk4oMHhjYmZkNTMzYiwgMHg3NmEyMDg2YiksIFRPQk4oMHhkNmJiYTcxYiwgMHhkN2MyZThmZSks
CisgICAgICAgICAgIFRPQk4oMHhiMmQ1OGVlNiwgMHgwOTlkZmI2NyksIFRPQk4oMHgzYThiMzQy
ZCwgMHgwNjRhODVkOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDNiYzA3NjQ5LCAweDUyMmY5YmUz
KSwgVE9CTigweDY5MGMwNzViLCAweGRmMWY0OWE4KSwKKyAgICAgICAgICAgVE9CTigweDgwZTFh
ZWU4LCAweDM4NTRlYzQyKSwgVE9CTigweDJhN2RiZjQ0LCAweDE3Njg5ZGM3KX0sCisgICAgICAg
ICAge1RPQk4oMHhjMDA0ZmMwZSwgMHgzZmFmNDA3OCksIFRPQk4oMHhiMmYwMmU5ZSwgMHhkZjEx
ODYyYyksCisgICAgICAgICAgIFRPQk4oMHhmMTBhNWUwZiwgMHhhMGExYjdiMyksIFRPQk4oMHgz
MGFjYTYyMywgMHg4OTM2ZWM4MCl9fSwKKyAgICAgICAgIHt7VE9CTigweGY4M2NiZjA1LCAweDAy
ZjQwZDlhKSwgVE9CTigweDQ2ODFjNDY4LCAweDJjMzE4YTRkKSwKKyAgICAgICAgICAgVE9CTigw
eDk4NTc1NjE4LCAweDBlOWMyNjc0KSwgVE9CTigweGJlNzlkMDQ2LCAweDE4NDcwOTJlKX0sCisg
ICAgICAgICAge1RPQk4oMHhhZjFlNDgwYSwgMHg3OGJkMDFlMCksIFRPQk4oMHg2ZGQzNTllNCwg
MHg3MmE1MWRiOSksCisgICAgICAgICAgIFRPQk4oMHg2MmNlMzgyMSwgMHhlM2FmYmFiNiksIFRP
Qk4oMHhjNWNlZTViNiwgMHgxNzczMzE5OSl9fSwKKyAgICAgICAgIHt7VE9CTigweGUwOGIzMGQ0
LCAweDZmZmQ5ZmJiKSwgVE9CTigweDZlNWJjNjk5LCAweDM2YzYxMGI3KSwKKyAgICAgICAgICAg
VE9CTigweGYzNDNjZmYyLCAweDljZTI2MmNmKSwgVE9CTigweGNhMmU0ZTM1LCAweDY4YjkxNGMx
KX0sCisgICAgICAgICAge1RPQk4oMHgwMTFkNjRjMCwgMHgxNmRlMzZjNSksIFRPQk4oMHhlMGIx
MGZkZCwgMHg0MmUyYjgyOSksCisgICAgICAgICAgIFRPQk4oMHg3ODk0Mjk4MSwgMHg2Njg1YWFm
OCksIFRPQk4oMHhlNzUxMTcwOCwgMHgyMzBlZGU5Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDY3
MWVkOGZjLCAweDNiOTIyYmY4KSwgVE9CTigweGU0ZDhjMGEwLCAweDRjMjliMTMzKSwKKyAgICAg
ICAgICAgVE9CTigweDg3ZWIxMjM5LCAweDNiNmU5OWM0KSwgVE9CTigweGFmZjM5NzRjLCAweDg3
OTNiZWJhKX0sCisgICAgICAgICAge1RPQk4oMHgwMzc0OTQwNSwgMHgyYzE4ZGY5YiksIFRPQk4o
MHhjNWMzYTI5MywgMHg5MTAwNzEzOSksCisgICAgICAgICAgIFRPQk4oMHg2YTc3MjM0ZiwgMHhl
MzdhMGI5NSksIFRPQk4oMHgwMmMyOWEyMSwgMHhiNjYxYzk2Yil9fSwKKyAgICAgICAgIHt7VE9C
TigweGMzYWFmMWQ2LCAweDE0MWVjZjYxKSwgVE9CTigweDkxOTU1MDllLCAweDNiYjIyZjUzKSwK
KyAgICAgICAgICAgVE9CTigweDI5NTk3NDA0LCAweDIyZDUxMzU3KSwgVE9CTigweDFiMDgzODIy
LCAweDUzN2JlZDYwKX0sCisgICAgICAgICAge1RPQk4oMHhjZDdkNmUzNSwgMHhlMDcyODlmMCks
IFRPQk4oMHgxZjk0YzQ4YywgMHg2ZGQ4NmVmZiksCisgICAgICAgICAgIFRPQk4oMHhjOGJiMWY4
MiwgMHhlYjBmOWNmYSksIFRPQk4oMHg5ZWUwYjdlNiwgMHgxYjJlYjk3ZCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDVhNTJmZTJlLCAweDM0ZDc0ZTMxKSwgVE9CTigweGEzNTJjMzEwLCAweDNiZjc5
YWI2KSwKKyAgICAgICAgICAgVE9CTigweDk3ZmY2YzVhLCAweGFiZmVlYjhmKSwgVE9CTigweGJm
YmU4ZmVmLCAweGY1Yzk3MzA1KX0sCisgICAgICAgICAge1RPQk4oMHhkNjA4MWNlNiwgMHhhNzkw
NDYwOCksIFRPQk4oMHgxZjgxMmYzYSwgMHhjNGZjYTI0OSksCisgICAgICAgICAgIFRPQk4oMHg5
YjI0YmM5YSwgMHhiOWU1ZTIwMCksIFRPQk4oMHg5MTAyMmM2NywgMHgzODAxMmVlOCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGU4M2Q5YzVkLCAweDMwYTcxM2ExKSwgVE9CTigweDQ4NzZlM2YwLCAw
eDg0ZWYwZjkzKSwKKyAgICAgICAgICAgVE9CTigweGM5Nzc3MDI5LCAweGMxZmJmOTI4KSwgVE9C
TigweGVmN2E2YmIzLCAweGJjZTdkMmE0KX0sCisgICAgICAgICAge1RPQk4oMHhiODA2NzIyOCwg
MHhkZmEyYTY1OSksIFRPQk4oMHhkNWNkMzM5OCwgMHhkODc3YTQ4ZiksCisgICAgICAgICAgIFRP
Qk4oMHhiZWE0ZmQ4ZiwgMHgwMjVkMGYzZiksIFRPQk4oMHhkNjdkMmUzNSwgMHgyZWFlN2MyYil9
fSwKKyAgICAgICAgIHt7VE9CTigweDE4NGRlN2Q3LCAweGNjNWY0Mzk0KSwgVE9CTigweGI1NTUx
YjVjLCAweDQ1MzZlMTQyKSwKKyAgICAgICAgICAgVE9CTigweDJlODliMjEyLCAweGQzNGFhNjBh
KSwgVE9CTigweDE0YTk2ZmVhLCAweGY1MDA1MWQ1KX0sCisgICAgICAgICAge1RPQk4oMHg0ZTIx
ZWY3NCwgMHgwZDEyYmIwYiksIFRPQk4oMHhjNTIyZjAyMCwgMHg2MGI5Njc3ZSksCisgICAgICAg
ICAgIFRPQk4oMHg4YjEyZTQ2NywgMHgyZGY3NzMxZCksIFRPQk4oMHgzOWY4MDM4MiwgMHg3YjMy
NmQzMSl9fSwKKyAgICAgICAgIHt7VE9CTigweGRmYjg2MzBjLCAweDM5MDI0YTk0KSwgVE9CTigw
eGFhY2I5NmE4LCAweDk3MzE5NDUyKSwKKyAgICAgICAgICAgVE9CTigweGQ2OGEzOTYxLCAweGVk
YTM4NjdjKSwgVE9CTigweDBjNThlMmIwLCAweDc3YzRmZmNhKX0sCisgICAgICAgICAge1RPQk4o
MHgzZDU0NWQ2MywgMHg0ZGE5MTlmYSksIFRPQk4oMHhlZjc5YjY5YSwgMHhmMTVlMjI4OSksCisg
ICAgICAgICAgIFRPQk4oMHg1NGJjM2QzZCwgMHg4MDhiYWIxMCksIFRPQk4oMHhjOGFiMzAwNywg
MHg0NWY4MmMzNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGMxMjczOGI2LCAweDdjNGE2NThhKSwg
VE9CTigweGIzYzQ3NjM5LCAweDQwZTcyMTgyKSwKKyAgICAgICAgICAgVE9CTigweDNiNzdiZTQ2
LCAweDg3OThlNDRmKSwgVE9CTigweGRjMDQ3ZGYyLCAweDE3YTdmODVmKX0sCisgICAgICAgICAg
e1RPQk4oMHgyNDM5ZDRjNSwgMHg1ZTU5ZDkyZCksIFRPQk4oMHhjZWRjYTQ3NSwgMHhlOGU2NGQ4
ZCksCisgICAgICAgICAgIFRPQk4oMHhhNzI0Y2QwZCwgMHg4N2NhOWIxNiksIFRPQk4oMHgzNWU0
ZmQ1OSwgMHhhNTU0MGRmZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGY4YzFmZjE4LCAweGU0YmNm
NmIxKSwgVE9CTigweDg1NmQ2Mjg1LCAweDI5NTAxOGZhKSwKKyAgICAgICAgICAgVE9CTigweDQz
M2Y2NjVjLCAweDMyNjNjOTQ5KSwgVE9CTigweGE2YTc2ZGQ2LCAweGExZjIxNDA5KX0sCisgICAg
ICAgICAge1RPQk4oMHgxN2QzMjMzNCwgMHhjYzdiNGY3OSksIFRPQk4oMHhhMWQwMzEyMiwgMHgw
NjcyMGU0YSksCisgICAgICAgICAgIFRPQk4oMHhhZGI2NjYxZCwgMHg4MWQ5YmVkNSksIFRPQk4o
MHhmMGQ2ZmIwMiwgMHgxMWRiMTVkMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDdmZDExYWQ1LCAw
eDFmYjc0N2QyKSwgVE9CTigweGFiNTBmOTU5LCAweDMwMzM3NjJiKSwKKyAgICAgICAgICAgVE9C
TigweDJhN2U3MTFiLCAweGZiZWZhZjVhKSwgVE9CTigweGM3MzkzMjc4LCAweDNmZWYyYmJmKX0s
CisgICAgICAgICAge1RPQk4oMHhlMjlmYTI0NCwgMHgwZGY2ZjliZSksIFRPQk4oMHg5MDkyNzU3
YiwgMHg3MWVmZDIxNSksCisgICAgICAgICAgIFRPQk4oMHhlZTYwZTMxMSwgMHg0ZjNkNmZkOSks
IFRPQk4oMHgzMzg1NDJkNCwgMHgwYWNmYjc4Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDQ0YTIz
ZjA4LCAweDM4OTYxYTBmKSwgVE9CTigweDE0MjZlYWRlLCAweDk4Njk4N2NhKSwKKyAgICAgICAg
ICAgVE9CTigweDM2ZTZlZTJlLCAweDRhODYzY2M2KSwgVE9CTigweDQ4MDU5NDIwLCAweDYyOGI4
Yjc5KX0sCisgICAgICAgICAge1RPQk4oMHgzMDMwM2FkOCwgMHg3Mzk2ZTFkZSksIFRPQk4oMHg1
YzhiZGM0OCwgMHgzOGM1YWFkMSksCisgICAgICAgICAgIFRPQk4oMHgzZTQwZTExZiwgMHg1Yzhm
NTA2NiksIFRPQk4oMHhhYmQ2ZTc2OCwgMHg4ZDI0NmJiZCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDY4YWE0MGJiLCAweDIzMzMwYTAxKSwgVE9CTigweGQyM2Y1ZWU0LCAweGMzNGVhZmEwKSwKKyAg
ICAgICAgICAgVE9CTigweDNiYmVlMzE1LCAweDVkZTAyYzIxKSwgVE9CTigweDE4ZGQ0Mzk3LCAw
eGQxZDhkZDA2KX0sCisgICAgICAgICAge1RPQk4oMHgzYmExOTM5YSwgMHgxMjJkN2I0NCksIFRP
Qk4oMHhlNmQzYjQwYSwgMHhhMzM4NzBkNiksCisgICAgICAgICAgIFRPQk4oMHg4ZTYyMGY3MCwg
MHgxYzRmZTNmOCksIFRPQk4oMHhmNmJiYTFhNSwgMHhkM2E1MGNiZil9fSwKKyAgICAgICAgIHt7
VE9CTigweDRhNzhiZGU1LCAweGNmYzBhZWUwKSwgVE9CTigweDg0N2VkYzQ2LCAweGMwOGM1MGJk
KSwKKyAgICAgICAgICAgVE9CTigweGJhYTI0MzljLCAweGFkNjNjOWIyKSwgVE9CTigweGNlYjRh
NzI4LCAweDEwZmMyYWNiKX0sCisgICAgICAgICAge1RPQk4oMHhhNDE5ZTQwZSwgMHgyNmRhMDMz
ZCksIFRPQk4oMHg2Y2MzODg5ZCwgMHgwM2UwMjY4MyksCisgICAgICAgICAgIFRPQk4oMHgxY2Qy
ODU1OSwgMHhmZGNjZjcyNSksIFRPQk4oMHgwZmQ3ZTBmMSwgMHg4ZDEzZDIwOCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDAxYjk3MzNiLCAweDFmMGRmOWQ0KSwgVE9CTigweDhjYzJjNWYzLCAweGEy
YjVlNGYzKSwKKyAgICAgICAgICAgVE9CTigweDQzMDUzYmZhLCAweDNhMzA0ZmQ0KSwgVE9CTigw
eDhlODc2NjVjLCAweDBhOWYxYWE3KX0sCisgICAgICAgICAge1RPQk4oMHgwODdmMjllYywgMHhk
NzNkYzk2NSksIFRPQk4oMHgxNWFjZTQ1NSwgMHgzZTkwMjNkYiksCisgICAgICAgICAgIFRPQk4o
MHgyMzcwZTMwOSwgMHgyYmNlMjhiNCksIFRPQk4oMHhmOTcyMzQ0MiwgMHhiNmIxZTg0YSl9fSwK
KyAgICAgICAgIHt7VE9CTigweGJlZWU2NjJlLCAweGI3MmQ5ZjI2KSwgVE9CTigweGIxOTM5NmRl
LCAweGYwZTQ3MTA5KSwKKyAgICAgICAgICAgVE9CTigweDg1YjFmYTczLCAweGUxMzI4OWQwKSwg
VE9CTigweDQzNmNmNzdlLCAweDU0ZTU4ZTMyKX0sCisgICAgICAgICAge1RPQk4oMHgwZWM4MzNi
MywgMHhlOTkwZWY3NyksIFRPQk4oMHg3MzczZTNlZCwgMHgxYjExZmMyNSksCisgICAgICAgICAg
IFRPQk4oMHhiZTBlZGE4NywgMHgwZmMzMzJjZSksIFRPQk4oMHhjZWQwNDk3MCwgMHg4ZDdlYTg1
Nil9fSwKKyAgICAgICAgIHt7VE9CTigweGY4NWZmNzg1LCAweDdlOTc3Y2EwKSwgVE9CTigweGI2
NmVlOGRhLCAweGRmZGQ1ZDJiKSwKKyAgICAgICAgICAgVE9CTigweGY1ZTM3OTUwLCAweDkwNWFm
NDYxKSwgVE9CTigweDU4N2I5MDkwLCAweDk2NmQ0ODdjKX0sCisgICAgICAgICAge1RPQk4oMHg2
YTE5OGExYiwgMHgzMmJhMDEyNyksIFRPQk4oMHhhNzcyMGUwNywgMHgxNDE2MTVhYyksCisgICAg
ICAgICAgIFRPQk4oMHhhMjNmMzQ5OSwgMHg5OTZlZjJmMiksIFRPQk4oMHhlZjVmNjRiNCwgMHg0
NzBiY2IzZCl9fSwKKyAgICAgICAgIHt7VE9CTigweGE1MjZhOTYyLCAweDkyYjhjNTU5KSwgVE9C
TigweDBjMTRhYWMwLCAweDY5NzQwYTBmKSwKKyAgICAgICAgICAgVE9CTigweDBkNDFhOWUzLCAw
eGE2YmRjMGE1KSwgVE9CTigweDk3ZDUyMTA2LCAweDljNDhhZWY0KX0sCisgICAgICAgICAge1RP
Qk4oMHhjZjE2YmQzMCwgMHgzZTdjMjUzYiksIFRPQk4oMHhjYzgzNGIxYSwgMHg0N2ZkZWRjMSks
CisgICAgICAgICAgIFRPQk4oMHg3MzYyYzZlNSwgMHgzNzNhYWIyZSksIFRPQk4oMHgyNjRlZDg1
ZSwgMHhjNWY1OTBmZil9fSwKKyAgICAgICAgIHt7VE9CTigweDdhNDZkOWMwLCAweDY2ZDQxODcw
KSwgVE9CTigweGE1MGMyMGIxLCAweDQ3ODdiYTA5KSwKKyAgICAgICAgICAgVE9CTigweDE4NWU3
ZTUxLCAweGUzZDQ0NjM1KSwgVE9CTigweGIzYjNlMDgwLCAweDMxZTJkOGRjKX0sCisgICAgICAg
ICAge1RPQk4oMHhiZWQxZTU1OCwgMHhhMTc5ZTlkOSksIFRPQk4oMHgyZGFhM2Y3OSwgMHg3NGE3
Njc4MSksCisgICAgICAgICAgIFRPQk4oMHg0MzcyYmFmMiwgMHgzYTQwODY0ZiksIFRPQk4oMHg0
NjkwMGM1NCwgMHg0ZmU3NWNiNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGI5NWYxNzFlLCAweGY3
Njc2NWQwKSwgVE9CTigweDRhZDcyNmQyLCAweDk1Yzg3NTAyKSwKKyAgICAgICAgICAgVE9CTigw
eDJlYzc2OWRhLCAweDRkN2M5OWJkKSwgVE9CTigweDVlMmRkZDE5LCAweGMzNmNkZmE4KX0sCisg
ICAgICAgICAge1RPQk4oMHhjMjIxMTdmYywgMHhhOTNlNmRlYSksIFRPQk4oMHhlOGEyNTgzYiwg
MHg5Mzc3MTEyMyksCisgICAgICAgICAgIFRPQk4oMHhiZTJmNjA4OSwgMHhmYTA4YTNhMiksIFRP
Qk4oMHg0ODA5ZDVlZCwgMHg4ZjBlMTExMil9fSwKKyAgICAgICAgIHt7VE9CTigweDNiNDE0YWEz
LCAweGRhN2EwOTVlKSwgVE9CTigweDkwNDlhY2YxLCAweDI2ZjVhYWRkKSwKKyAgICAgICAgICAg
VE9CTigweDc4ZDQ2YTRkLCAweDZiZThiODRhKSwgVE9CTigweGQ2NmIxOTYzLCAweGI3MzJiOWIz
KX0sCisgICAgICAgICAge1RPQk4oMHg1YzJhYzJhMCwgMHhkZTZlOTU1NSksIFRPQk4oMHhjZjUy
ZDA5OCwgMHhiNWJkODc3MCksCisgICAgICAgICAgIFRPQk4oMHgxNWExNWZhNiwgMHgwZmQyODky
MSksIFRPQk4oMHg1NmNjYjgxZSwgMHg4YjI3NTM2ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDBm
MGQ4YWI4LCAweDlmNGNjYmI4KSwgVE9CTigweGVkNWY0NGQyLCAweGRiMjIxNzI5KSwKKyAgICAg
ICAgICAgVE9CTigweDQzMTQxOTg4LCAweDAwYmVkMTBjKSwgVE9CTigweGM5NDM0OGE0LCAweDFk
NzM1YjhiKX0sCisgICAgICAgICAge1RPQk4oMHg3OWYzZTljNCwgMHgyOWVmODQ3OSksIFRPQk4o
MHg0YzEzYTRlMywgMHg2MTRjNjkzZiksCisgICAgICAgICAgIFRPQk4oMHgzMmM5YWY1NiwgMHg4
ZTE0M2ExNCksIFRPQk4oMHhiYzUxNzc5OSwgMHhlMjlhYzVjNCl9fSwKKyAgICAgICAgIHt7VE9C
TigweDA1ZTE3OTkyLCAweDI3NzQ4NTZmKSwgVE9CTigweDZlNTJmYjA1LCAweDZjMWJmNTVmKSwK
KyAgICAgICAgICAgVE9CTigweGFlZGE0MjI1LCAweGU0ZjE5ZTE2KSwgVE9CTigweDcwZjQ3Mjhh
LCAweGFmNWNjYjI2KX0sCisgICAgICAgICAge1RPQk4oMHg1ZDIxMThkMSwgMHhiMjk0N2YyMiks
IFRPQk4oMHhjODI3ZWExNiwgMHgyODFkNmZiOSksCisgICAgICAgICAgIFRPQk4oMHg4NDEyMzI4
ZCwgMHg4Y2YwZWFiZCksIFRPQk4oMHg0NWVlOWZiMiwgMHgwM2VmOWRjZil9fSwKKyAgICAgICAg
IHt7VE9CTigweDhlNzAwNDIxLCAweGJiOTM3ZDYzKSwgVE9CTigweGRmOGZmMmQ1LCAweGNjNGIz
N2E2KSwKKyAgICAgICAgICAgVE9CTigweGE0YzBkNWIyLCAweDVjZWQ3YjY4KSwgVE9CTigweDY1
MzdjMWVmLCAweGM3MzA4ZjU5KX0sCisgICAgICAgICAge1RPQk4oMHgyNWNlNmEyNiwgMHgzYjM3
ZjhlOCksIFRPQk4oMHgxNzBlOWE5YiwgMHhkZWViYzZjZSksCisgICAgICAgICAgIFRPQk4oMHhk
ZDAzNzk1MiwgMHg4NzI4ZDcyYyksIFRPQk4oMHg0NDViMGU1NSwgMHg4NTAxNTRiYyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDRiN2QwZTA2LCAweDgzYTczMzdiKSwgVE9CTigweDFlMzQxNmQ0LCAw
eGZmZWNmMjQ5KSwKKyAgICAgICAgICAgVE9CTigweDI0ODQwZWZmLCAweDY2YTJiNzFmKSwgVE9C
TigweGQwZDlhNTBhLCAweGIzN2NjMjZkKX0sCisgICAgICAgICAge1RPQk4oMHhlMjE5ODE1MCwg
MHg2ZmUyOGVmNyksIFRPQk4oMHgzY2M1ZWYxNiwgMHgyMzMyNGM3ZiksCisgICAgICAgICAgIFRP
Qk4oMHgyMjBmMzQ1NSwgMHg3NjliNTI2MyksIFRPQk4oMHhlMmFkZTJmMSwgMHhhMTBiZjQ3NSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDI4Y2QyMGZhLCAweDQ1OGQzNjcxKSwgVE9CTigweDE1NDk3
MjJjLCAweDJkYzQ4NDdiKSwKKyAgICAgICAgICAgVE9CTigweDZkZDAxZTU1LCAweDU5MTk0MWUz
KSwgVE9CTigweDBlNmZiY2VhLCAweDI3MTI4Y2NiKX0sCisgICAgICAgICAge1RPQk4oMHhhZTFh
MWU2YiwgMHgzYmVmMDI2MiksIFRPQk4oMHhmYThjNDcyYywgMHg4ZjU0ZTEwMyksCisgICAgICAg
ICAgIFRPQk4oMHg3NTM5YzBhOCwgMHg3MmMwNTJlYyksIFRPQk4oMHhkN2IyNzM2OSwgMHg1YTM0
OTBlOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDE0M2ZlMWYxLCAweDcxNjg0MzQ5KSwgVE9CTigw
eDM2YjQ3MjJlLCAweDMyZTE5Yjk3KSwKKyAgICAgICAgICAgVE9CTigweGRjMDU5MjI3LCAweDkw
OTgwYWZmKSwgVE9CTigweDE3NWM5Yzg4LCAweDllMTNkNjc0KX0sCisgICAgICAgICAge1RPQk4o
MHhhN2RlNWIyMiwgMHg2ZTZiZmRiMSksIFRPQk4oMHg1ZWE1YjdiMiwgMHhiZWRiNGI0NiksCisg
ICAgICAgICAgIFRPQk4oMHhkNTU3MDE5MSwgMHhkMzRhNmU0NCksIFRPQk4oMHhmY2Y2MGQyZSwg
MHhhMjRmZjdlNil9fSwKKyAgICAgICAgIHt7VE9CTigweDYxNGEzOTJkLCAweDY3NzgxOWUxKSwg
VE9CTigweDdiZTc0YzdlLCAweGFhNWEyOWU4KSwKKyAgICAgICAgICAgVE9CTigweGFiNTBmZWNl
LCAweDYzYzg1ZjNmKSwgVE9CTigweGFjYTJlMmE5LCAweDQ2Y2FiMzM3KX0sCisgICAgICAgICAg
e1RPQk4oMHg3ZjcwMDM4OCwgMHgxMjJhNmZlMyksIFRPQk4oMHhkYjY5ZjcwMywgMHg4ODJhMDRh
OCksCisgICAgICAgICAgIFRPQk4oMHg5YTc3OTM1ZCwgMHhjZjdhZWQ1NyksIFRPQk4oMHhkZjE2
MjA3YywgMHg4ZDkxYzg2Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDJmY2E0OWFiLCAweDYzZWQ5
OTk4KSwgVE9CTigweGEzMTI1YzQ0LCAweGE3N2RkZjk2KSwKKyAgICAgICAgICAgVE9CTigweDA1
ZGQ4YTg2LCAweDI0MzQ0MDcyKSwgVE9CTigweGEwMjNkZGEyLCAweGZlYzNmYjU2KX0sCisgICAg
ICAgICAge1RPQk4oMHg0MjFiNDFmYywgMHgwYzc0MzAzMiksIFRPQk4oMHg0ZjIxMjBjMSwgMHg1
ZTQzODYzOSksCisgICAgICAgICAgIFRPQk4oMHhmYjdjYWU1MSwgMHhjODNjMWIwNyksIFRPQk4o
MHhiMjM3MGNhYSwgMHhjYWMyMTcxYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDJlYjJkOTYyLCAw
eDZjYzgyMGZiKSwgVE9CTigweDU5ZmVlZTVjLCAweGI4NWE0NGJmKSwKKyAgICAgICAgICAgVE9C
TigweDk0NjIwZmNhLCAweDViNjU5OGYwKSwgVE9CTigweDZiOTIyY2FlLCAweDdlMzE0MDUxKX0s
CisgICAgICAgICAge1RPQk4oMHhmZjg3NDVhZCwgMHgxMDZiZWQ0ZSksIFRPQk4oMHg1NDZlNzFm
NSwgMHhkZmExZTlhYiksCisgICAgICAgICAgIFRPQk4oMHg5MzVjMWU0OCwgMHgxZWMyOTQ4Nyks
IFRPQk4oMHg5NTA5MjE2YywgMHg0ZDkzNjUzMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGM3Y2Ez
MDY3LCAweDg1YzlhMmRiKSwgVE9CTigweGQ2YWU1MTUyLCAweDZiZTg2MDZmKSwKKyAgICAgICAg
ICAgVE9CTigweDA5ZGJjYWU2LCAweGUxNGM2NTFkKSwgVE9CTigweGM5NTM2ZTIzLCAweDliYzMy
Zjk2KX0sCisgICAgICAgICAge1RPQk4oMHhhOTA1MzVhOSwgMHgzNDUyMWIwMyksIFRPQk4oMHhm
MzljNTI2YywgMHg4Nzg3NTZmZiksCisgICAgICAgICAgIFRPQk4oMHgzODMxNzJlYywgMHg4YWVk
ZjAzYyksIFRPQk4oMHgyMGE4MDc1ZSwgMHhlZmUwYzAzNCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGYyMmY5YzYyLCAweDY0MDI2NDIyKSwgVE9CTigweDhkZDEwNzgwLCAweDI0YjlkMDc2KSwKKyAg
ICAgICAgICAgVE9CTigweDk0NGM3NDJhLCAweDNiZWYyOTUwKSwgVE9CTigweDU1Yjk1MDJlLCAw
eDg4YTJiMDBiKX0sCisgICAgICAgICAge1RPQk4oMHhhNTllMTRiNCwgMHg4NmEwOTgxNyksIFRP
Qk4oMHhhMzlkZDNhYywgMHg0N2JiNDA3MSksCisgICAgICAgICAgIFRPQk4oMHg1NTEzN2Y2Niwg
MHgzYmUwNTkyZiksIFRPQk4oMHgwN2ZjYWZkNCwgMHhjOWU2M2Y1Yil9fSwKKyAgICAgICAgIHt7
VE9CTigweDk2MzY1MmVlLCAweDM0NmViMjI2KSwgVE9CTigweDdkZmFiMDg1LCAweGVjMmZhY2I3
KSwKKyAgICAgICAgICAgVE9CTigweDI3M2JmMmI4LCAweDY5MWFkZDI2KSwgVE9CTigweDMwZDc0
NTQwLCAweGYyYjQ2YzQ0KX0sCisgICAgICAgICAge1RPQk4oMHgwNWU4ZTczZSwgMHhmMmMyZDA2
NSksIFRPQk4oMHhmZjliOGEwMCwgMHhkNDJlZWFjOSksCisgICAgICAgICAgIFRPQk4oMHgyZmNi
ZDIwNSwgMHg5NzIwOWQyMiksIFRPQk4oMHhlYjc0MGZmYSwgMHhkZTE0ZWEyYyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGM3MWZmOTEzLCAweGE4YWVmNTE4KSwgVE9CTigweDdiZmM3NGJiLCAweGZm
ZjRjZmEyKSwKKyAgICAgICAgICAgVE9CTigweDE3MTY2ODBjLCAweGI2YjM2MDQ4KSwgVE9CTigw
eDEyMWIyY2NlLCAweDllZjc5YWYxKX0sCisgICAgICAgICAge1RPQk4oMHhiZmYzYzgzNiwgMHhh
MDFlYjNkMyksIFRPQk4oMHg1MGViMWM2YSwgMHg1Zjc5MDc3YiksCisgICAgICAgICAgIFRPQk4o
MHhhNDhjMzJkNiwgMHhhMDA0YmJjZiksIFRPQk4oMHg0N2E1OTMxNiwgMHg3ZDY0ZjYxZCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDYwNjgxNDdmLCAweDkzMTAyMDE2KSwgVE9CTigweDEyYzVmNjU0
LCAweDk0ZDEyNTc2KSwKKyAgICAgICAgICAgVE9CTigweGVmYjA3MWE3LCAweGM5YmM2YjkxKSwg
VE9CTigweDdjMmRhMGM1LCAweDZlMjNlYTk1KX0sCisgICAgICAgICAge1RPQk4oMHhmNGZkNDVi
NiwgMHhkNGExZGQ1ZCksIFRPQk4oMHgzZTdhZDliNiwgMHg5MTIyYjEzYyksCisgICAgICAgICAg
IFRPQk4oMHgzNDJjYTExOCwgMHhlNmY1N2E0OCksIFRPQk4oMHgxYzJlOTRhNywgMHgwNmY4Mjg4
Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDk5ZTY4ZjA3LCAweDVhOTdkMjMxKSwgVE9CTigweDdj
ODBkZTk3LCAweDRkODM4NzU4KSwKKyAgICAgICAgICAgVE9CTigweGJjZTBmNWQwLCAweDA1ODcy
NzI3KSwgVE9CTigweGJlNWQ5NWMyLCAweDE5YzRkMDE2KX0sCisgICAgICAgICAge1RPQk4oMHg5
MjFkNWNiMSwgMHg5YzI0OTJlZSksIFRPQk4oMHg0MjE5MmRjMSwgMHg0MDRkNmZiMyksCisgICAg
ICAgICAgIFRPQk4oMHg0Yzg0ZGNkMSwgMHgzMmY5ODhkMyksIFRPQk4oMHhkZTI2ZDYxZiwgMHhh
MTdiOGU4NSl9fSwKKyAgICAgICAgIHt7VE9CTigweGM0NjZkY2I2LCAweDEzN2M3NDA4KSwgVE9C
TigweDlhMzhkN2I2LCAweDM2YTI2NmRhKSwKKyAgICAgICAgICAgVE9CTigweDdlZjVjYjA2LCAw
eDgzYmViZjFiKSwgVE9CTigweGU1Y2RjYmJmLCAweDBmZDAxNGUzKX0sCisgICAgICAgICAge1RP
Qk4oMHgzMGFhMzc2ZCwgMHhmNjU5NjVhMCksIFRPQk4oMHg2MGZlODhjMiwgMHhlYmIzZTk1ZSks
CisgICAgICAgICAgIFRPQk4oMHgzM2ZkMGI2MSwgMHg2NmVlNmYyMCksIFRPQk4oMHg4ODI3ZGNk
YiwgMHgzZjQxZjBhMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGJmOGE5ZDI0LCAweDBjNTZjNjkw
KSwgVE9CTigweDQwMjY1ZGFkLCAweGRkYjc2NDFkKSwKKyAgICAgICAgICAgVE9CTigweDUyMmIw
NWJmLCAweDNhNmI2NjJiKSwgVE9CTigweDQ2NmQxZGZlLCAweGIxNDc4YzliKX0sCisgICAgICAg
ICAge1RPQk4oMHhhYTYxNjk2MiwgMHgxNDg0NDY5YiksIFRPQk4oMHgwZGI2MDU0OSwgMHgwMmRm
OGY5ZiksCisgICAgICAgICAgIFRPQk4oMHhjMzdiY2EwMiwgMHgzY2I4YmY1MSksIFRPQk4oMHg1
ZWZmZTM0NiwgMHgyMTM3MWNlOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGU4ZjY1MjY0LCAweGZm
MTEyYzMyKSwgVE9CTigweDhhOWM3MzZkLCAweDdiOTcxZmIyKSwKKyAgICAgICAgICAgVE9CTigw
eGE0ZjE5NDcwLCAweDdiNzUwODBkKSwgVE9CTigweGZjM2YyYzVhLCAweDg4MzljNTliKX0sCisg
ICAgICAgICAge1RPQk4oMHgxZDZjNzc3ZSwgMHg1YWViNDljMiksIFRPQk4oMHhmM2RiMDM0ZCwg
MHhkYTFhZGRmZSksCisgICAgICAgICAgIFRPQk4oMHhkNzZmZWU1YSwgMHg1NTM1YWZmYyksIFRP
Qk4oMHgwODUzYWM3MCwgMHhiOTIyNTFmZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDM3ZTNkNTk0
LCAweDhiMmEyOWQ1KSwgVE9CTigweDI4ZjFmNDU3LCAweDRkZTAwZGRiKSwKKyAgICAgICAgICAg
VE9CTigweDgwODNjMWI1LCAweGY0MmMzMjhiKSwgVE9CTigweGQ4ZWYxZDhmLCAweGU0OTNjNzNi
KX0sCisgICAgICAgICAge1RPQk4oMHg5NmZiNjI2MCwgMHg0MWRjNjFiZCksIFRPQk4oMHhmNzRl
OGE5ZCwgMHgyN2VlMmY4YSksCisgICAgICAgICAgIFRPQk4oMHg3YzYwNWE4MCwgMHgyYzk0NmE1
ZCksIFRPQk4oMHhlZWQ0OGQ2NSwgMHgzODM5Y2NmZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk4
OTQzNDRmLCAweDNhMjk0NjdhKSwgVE9CTigweGRlODFlOTQ5LCAweGM1MWViYTZkKSwKKyAgICAg
ICAgICAgVE9CTigweGRhZWEwNjZiLCAweGE1ZTVjMmYyKSwgVE9CTigweDNmYzhhNjE0LCAweDA4
YzhjN2IzKX0sCisgICAgICAgICAge1RPQk4oMHg3YWRmZjg4ZiwgMHgwNmQwZGU5ZiksIFRPQk4o
MHhiYmMxMWNmNSwgMHgzYjc1Y2UwYSksCisgICAgICAgICAgIFRPQk4oMHg5ZmJiN2FjYywgMHhm
YmJjODdkNSksIFRPQk4oMHhhMTQ1OGUyNiwgMHg3YmFkZmRlMil9fX0sCisgICAgICAgIHt7e1RP
Qk4oMHgxY2I0MzY2OCwgMHhlMDM5YzI1NiksIFRPQk4oMHg1ZjI2ZmI4YiwgMHg3YzE3ZmQ1ZCks
CisgICAgICAgICAgIFRPQk4oMHhlZWU0MjZhZiwgMHg3OWFhMDYyYiksIFRPQk4oMHgwNzIwMDJk
MCwgMHhkNzhmYmYwNCl9LAorICAgICAgICAgIHtUT0JOKDB4NGM5Y2EyMzcsIDB4ZTg0ZmI3ZTMp
LCBUT0JOKDB4YjQwMWQ4YTEsIDB4MGM4MjEzM2QpLAorICAgICAgICAgICBUT0JOKDB4YWFhNTI1
OTIsIDB4NmQ3ZTQxODEpLCBUT0JOKDB4ZTk0MzA4MzMsIDB4NzNkYmIxNTIpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhmOTJkZGEzMSwgMHhiZTI0MzE5YSksIFRPQk4oMHgwM2Y3ZDI4YiwgMHhlMDk1
YThlNyksCisgICAgICAgICAgIFRPQk4oMHhhNTJmZTg0MCwgMHg5ODc4MjE4NSksIFRPQk4oMHgy
NzZkZGFmZSwgMHgyOWMyNGRiYyl9LAorICAgICAgICAgIHtUT0JOKDB4ODBjZDU0OTYsIDB4MWQ3
YTY0ZWIpLCBUT0JOKDB4ZTQzNjA4ODksIDB4N2YxZGJlNDIpLAorICAgICAgICAgICBUT0JOKDB4
MmY4MWE4NzcsIDB4ODQzOGQyZDUpLCBUT0JOKDB4N2U0ZDUyYTgsIDB4ODUxNjkwMzYpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgxOWUzZDViMSwgMHgxZDU5NzE1ZCksIFRPQk4oMHhjN2VhYTc2Miwg
MHhkNzg4OTgzZSksCisgICAgICAgICAgIFRPQk4oMHhlNWE3MzBiMCwgMHhhYmYxZjI0OCksIFRP
Qk4oMHhmYmFiODA4NCwgMHhmYWUzZmQ4Myl9LAorICAgICAgICAgIHtUT0JOKDB4NjVlNTBkMjEs
IDB4NTM3NjViMmYpLCBUT0JOKDB4YmRkNGUwODMsIDB4ZmExMjdmM2QpLAorICAgICAgICAgICBU
T0JOKDB4OWNmM2MwNzQsIDB4Mzk3YjFiMTApLCBUT0JOKDB4NTlmODA5MGMsIDB4YjFiNTlmZDMp
fX0sCisgICAgICAgICB7e1RPQk4oMHg3YjE1ZmQ5ZCwgMHg2MTVmYWE4ZiksIFRPQk4oMHg4ZmEx
ZWI0MCwgMHg5Njg1NTRlZCksCisgICAgICAgICAgIFRPQk4oMHg3YmI0NDQ3ZSwgMHg3YWE0NDg4
MiksIFRPQk4oMHgyYmIyZDBkMSwgMHgwMjlmZmYzMil9LAorICAgICAgICAgIHtUT0JOKDB4MDc1
ZTJhNjQsIDB4NmNhYTZkMmYpLCBUT0JOKDB4OGViODc5ZGUsIDB4MjJlNzM1MWIpLAorICAgICAg
ICAgICBUT0JOKDB4YmNkNTYyNGUsIDB4OWE1MDZjNjIpLCBUT0JOKDB4MjE4ZWFlZjAsIDB4YTg3
ZTI0ZGMpfX0sCisgICAgICAgICB7e1RPQk4oMHgzN2U1Njg0NywgMHg0NGRkZmEzNSksIFRPQk4o
MHg5Y2NmYzVjNSwgMHhkYWIzZjc0NyksCisgICAgICAgICAgIFRPQk4oMHg5YWMxZGYzZiwgMHgx
ZWU5NmNmNCksIFRPQk4oMHgwYzA1NzFhMSwgMHgzYjQ4MGI4Zil9LAorICAgICAgICAgIHtUT0JO
KDB4MmZiZWIzZDUsIDB4NGIzYTdiM2MpLCBUT0JOKDB4MzVjMDM2NjksIDB4NWRjZGJiOTkpLAor
ICAgICAgICAgICBUT0JOKDB4NTJhMGY1ZGMsIDB4YjI0MTViM2EpLCBUT0JOKDB4ZDU3NzU5YjQs
IDB4NDQxM2VkOWEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxZmU2NDdkOCwgMHgzZDMwYTJjNSks
IFRPQk4oMHgwODU3Zjc3ZSwgMHhmNzhhODFkYyksCisgICAgICAgICAgIFRPQk4oMHgxMWQ1YTMz
NCwgMHgxMzFhNGE5YiksIFRPQk4oMHhjMGE5NGFmOSwgMHgyOWQzOTNmNSl9LAorICAgICAgICAg
IHtUT0JOKDB4YmMzYTVjMGIsIDB4ZGFhNmVjMWEpLCBUT0JOKDB4YmE5ZmU0OTMsIDB4ODhkMmQ3
ZWQpLAorICAgICAgICAgICBUT0JOKDB4YmI0MzM1YjQsIDB4YmI2MTQ3OTcpLCBUT0JOKDB4OTkx
YzRkNjgsIDB4NzJmODM1MzMpfX0sCisgICAgICAgICB7e1RPQk4oMHg1MzI1OGMyOCwgMHhkMmYw
MWNiMyksIFRPQk4oMHg5M2Q2ZWFhMywgMHhkNzVkYjBiMSksCisgICAgICAgICAgIFRPQk4oMHg0
MTlhMmIwZCwgMHhlODdkMGRiNCksIFRPQk4oMHhhMWU0OGYwMywgMHhkOGZlODQ5Myl9LAorICAg
ICAgICAgIHtUT0JOKDB4Zjc0N2ZhZjYsIDB4YzUwOGIyM2EpLCBUT0JOKDB4ZjEzNzU3MWEsIDB4
MzVkNTM1NDkpLAorICAgICAgICAgICBUT0JOKDB4OWY1ZTU4ZTIsIDB4ZmNmOWI4MzgpLCBUT0JO
KDB4YzcxODZjZWUsIDB4YTdmZDNjZjUpfX0sCisgICAgICAgICB7e1RPQk4oMHg3N2I4NjhjZSwg
MHhlOTc4YTFkMyksIFRPQk4oMHhlM2E2OGIzMywgMHg3YWI5MmQwNCksCisgICAgICAgICAgIFRP
Qk4oMHg1MTAyOTc5NCwgMHg4N2E1Yjg2MiksIFRPQk4oMHg1ZjA2MDZjMywgMHgzYTYxZDQxZCl9
LAorICAgICAgICAgIHtUT0JOKDB4MjgxNGJlMjcsIDB4NmY5MzI2ZjEpLCBUT0JOKDB4MmY1MjFj
MTQsIDB4YzZmZTNjMmUpLAorICAgICAgICAgICBUT0JOKDB4MTc0NjRkN2QsIDB4YWNkZjczNTEp
LCBUT0JOKDB4MTBmNWY5ZDMsIDB4Nzc3ZjdlNDQpfX0sCisgICAgICAgICB7e1RPQk4oMHhjZThl
NjE2YiwgMHgyNjlmYjM3ZCksIFRPQk4oMHhhYWY3MzgwNCwgMHg3ZGU2MmRlNSksCisgICAgICAg
ICAgIFRPQk4oMHhhYmExMTE3NSwgMHg0ZmRkNDE1MyksIFRPQk4oMHg1MTU3NTliYSwgMHgzNzcw
YjQ5Yil9LAorICAgICAgICAgIHtUT0JOKDB4OGIwOWViZjgsIDB4YWE0MjNhNjEpLCBUT0JOKDB4
NTkyMjQ1YTEsIDB4Y2Q0MWZiOTIpLAorICAgICAgICAgICBUT0JOKDB4MWNiYThlYzEsIDB4OWI0
Yzg5MzYpLCBUT0JOKDB4YTg3ZTkxZTMsIDB4YWYzNjcxMGUpfX0sCisgICAgICAgICB7e1RPQk4o
MHgxZmQ4NGNlNCwgMHgzZDM0YTJlMyksIFRPQk4oMHhlZTM3NTljZSwgMHhiNDNiNWQ2MSksCisg
ICAgICAgICAgIFRPQk4oMHg4OTViYzc4YywgMHg2MTkxODZjNyksIFRPQk4oMHhmMTljMzgwOSwg
MHhjYmI5NzI1YSl9LAorICAgICAgICAgIHtUT0JOKDB4YzBiZTIxYWEsIDB4ZGU3NDRiMWYpLCBU
T0JOKDB4YTdkMjIyYjAsIDB4NjBmODA1NmIpLAorICAgICAgICAgICBUT0JOKDB4NzRiZTYxNTcs
IDB4YjIzZWZlMTEpLCBUT0JOKDB4NmZhYjJiNGYsIDB4MGNkNjgyNTMpfX0sCisgICAgICAgICB7
e1RPQk4oMHhhZDMzZWE1ZiwgMHg0YmYxZDcyNSksIFRPQk4oMHg5YzFkOGVlMiwgMHg0ZjZjOTUw
ZiksCisgICAgICAgICAgIFRPQk4oMHg1NDRlZTc4YSwgMHhhMzc3YWYwNiksIFRPQk4oMHg1NGY0
ODliYiwgMHg5NGExMTNlMSl9LAorICAgICAgICAgIHtUT0JOKDB4OGYxMWQ2MzQsIDB4OTkyZmI3
ZTgpLCBUT0JOKDB4MDE2OWE3YWEsIDB4YTJhNDQzNDcpLAorICAgICAgICAgICBUT0JOKDB4MWQ0
OWQ0YWYsIDB4OTUwMjBlMDApLCBUT0JOKDB4OTU5NDU3MjIsIDB4ZTA4ZTEyMGIpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhiNmUzMzg3OCwgMHhhNGQzMjI4MiksIFRPQk4oMHhlMzZlMDI5ZCwgMHg0
ODAyMGFlNyksCisgICAgICAgICAgIFRPQk4oMHhlMDU4NDdmYiwgMHgzN2E5Yjc1MCksIFRPQk4o
MHhmODc2ODEyYywgMHhiMjllMzgxOSl9LAorICAgICAgICAgIHtUT0JOKDB4ODRhZDEzOGUsIDB4
ZDIzYTE3ZjApLCBUT0JOKDB4NmQ3YjQ0ODAsIDB4ZjBiMzk1MGUpLAorICAgICAgICAgICBUT0JO
KDB4ZGZhOGFlZjQsIDB4MmZkNjdhZTApLCBUT0JOKDB4OGQzZWVhMjQsIDB4NTIzMzNhZjYpfX0s
CisgICAgICAgICB7e1RPQk4oMHgwZDA1MjA3NSwgMHhiMTVkNWFjYyksIFRPQk4oMHhjNmQ5Yzc5
ZiwgMHhiZDgxNWJjNCksCisgICAgICAgICAgIFRPQk4oMHg4ZGNhZmQ4OCwgMHhkZmEzNmNmMiks
IFRPQk4oMHg5MDhjY2JlMiwgMHgzOGFhOTA3MCl9LAorICAgICAgICAgIHtUT0JOKDB4NjM4NzIy
YzQsIDB4YmEzNWFmY2UpLCBUT0JOKDB4NWEzZGE4YjAsIDB4ZmQ2YWJmMGIpLAorICAgICAgICAg
ICBUT0JOKDB4MmRjZTI1MmMsIDB4YzljMzM1YzEpLCBUT0JOKDB4ODRlN2YwZGUsIDB4NjVhYTc5
OWIpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMTAxYTUyMiwgMHhiOTlhNzJjYiksIFRPQk4oMHgw
NmRlNmU2NywgMHg4NzYxODAxNiksCisgICAgICAgICAgIFRPQk4oMHg1ZmY4YzdjZCwgMHhlNmYz
NjUzZSksIFRPQk4oMHgwYTgyMWFiNSwgMHhjN2E2NzU0YSl9LAorICAgICAgICAgIHtUT0JOKDB4
N2UzZmE1MmIsIDB4N2NiMGI1YTIpLCBUT0JOKDB4YTdmYjEyMWMsIDB4YzkwNDg3OTApLAorICAg
ICAgICAgICBUT0JOKDB4MWE3MjUwMjAsIDB4MDZjZTA1M2EpLCBUT0JOKDB4YjQ5MGEzMWYsIDB4
MDRlOTI5YjApfX0sCisgICAgICAgICB7e1RPQk4oMHhlMTdiZTQ3ZCwgMHg2MmRkNjFhZCksIFRP
Qk4oMHg3ODFhOTYxYywgMHg2YmUwMTM3MSksCisgICAgICAgICAgIFRPQk4oMHgxMDYzYmZkMywg
MHhkYWUzY2JiYSksIFRPQk4oMHgzNTY0NzQwNiwgMHg3ZjczYzliYSl9LAorICAgICAgICAgIHtU
T0JOKDB4ZjUwZTk1N2IsIDB4MjczNmExMjkpLCBUT0JOKDB4YTYzMTM3MDIsIDB4ZWQxM2YyNTYp
LAorICAgICAgICAgICBUT0JOKDB4OTQzNmVlNjUsIDB4M2ExOWZjYzUpLCBUT0JOKDB4Y2YyYmRi
MjksIDB4ZTdhNGM4YjYpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMDZiMTI0NCwgMHhjNWY5NWNk
OCksIFRPQk4oMHhkYThjOGFmMCwgMHhmNGFiOTVmNCksCisgICAgICAgICAgIFRPQk4oMHgxYmFl
NTljMiwgMHhiOWU1ODM2ZCksIFRPQk4oMHgwN2Q1MWU3ZSwgMHgzYWNmZmZmYyl9LAorICAgICAg
ICAgIHtUT0JOKDB4MDFlMTVlNmEsIDB4YzJjY2JjZGEpLCBUT0JOKDB4M2JjMTkyM2YsIDB4ODUy
OGMzZTApLAorICAgICAgICAgICBUT0JOKDB4NDMzMjQ1NzcsIDB4YTQ5ZmVhZDQpLCBUT0JOKDB4
NjFhMWI4ODQsIDB4MmFhN2E3MTEpfX0sCisgICAgICAgICB7e1RPQk4oMHhmOWE4NmUwOCwgMHg3
MDAyMzBlZiksIFRPQk4oMHgwYWY1ODVhMSwgMHhiZDE5YWRmOCksCisgICAgICAgICAgIFRPQk4o
MHg3NjQ1ZjM2MSwgMHhmNTVhZDhmMiksIFRPQk4oMHg2ZTY3NjIyMywgMHg0NmMzNjE0Yyl9LAor
ICAgICAgICAgIHtUT0JOKDB4MjNjYjI1N2MsIDB4NGU3NzRkM2YpLCBUT0JOKDB4ODJhMzg1MTMs
IDB4YWMxMDJkMWIpLAorICAgICAgICAgICBUT0JOKDB4OWJjZGRkODgsIDB4N2IxMjZhYTUpLCBU
T0JOKDB4ZTcxNjk5OGIsIDB4ZWVmZDNlZTQpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MjM5ZDU3
MSwgMHhmYjE2NzU4MyksIFRPQk4oMHhkZDAxMWM3OCwgMHhkMTZjOGY4YSksCisgICAgICAgICAg
IFRPQk4oMHgyNzFjMjg5NSwgMHg2OWEyNzUxOSksIFRPQk4oMHg5Y2UwYTNiNywgMHhkMmQ2NGI2
YSl9LAorICAgICAgICAgIHtUT0JOKDB4OGM5NzcyODksIDB4ZDVlYzY3MzgpLCBUT0JOKDB4YTNi
NDlmOWEsIDB4ODg0MGVmNmIpLAorICAgICAgICAgICBUT0JOKDB4ODA4YzE0YzksIDB4OWE0NTM0
MTkpLCBUT0JOKDB4NWMwMDI5NWIsIDB4MGNmMGEyZDUpfX0sCisgICAgICAgICB7e1RPQk4oMHg1
MjQ0MTRmYiwgMHgxZDRiY2M3NiksIFRPQk4oMHhiMDc2OTFkMiwgMHg0NTlhODhmMSksCisgICAg
ICAgICAgIFRPQk4oMHg3N2Y0MzI2MywgMHhmNzBkMTEwZiksIFRPQk4oMHg2NGFkYTVlMCwgMHhi
N2FiZjlmMyl9LAorICAgICAgICAgIHtUT0JOKDB4YWZkMGY5NGUsIDB4NWI1NDRjZjUpLCBUT0JO
KDB4YjRhMTNhMTUsIDB4ZmQyNzEzZmUpLAorICAgICAgICAgICBUT0JOKDB4Yjk5YjdkNmUsIDB4
MjUwYzc0ZjQpLCBUT0JOKDB4MDk3ZjJmNzMsIDB4MjAzMjRlNDUpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg5OTRiMzdkOCwgMHhhZmZhODIwOCksIFRPQk4oMHhjM2MzMWIwYiwgMHhkYzI5YWFmYyks
CisgICAgICAgICAgIFRPQk4oMHgzZGE3NDY1MSwgMHg3YTNhNjA3ZiksIFRPQk4oMHhkOGUxYjhj
MSwgMHhmZTY5NTVkNil9LAorICAgICAgICAgIHtUT0JOKDB4NzE2ZTE4MTUsIDB4Yzg0MTg2ODIp
LCBUT0JOKDB4NTQxZDQ4N2YsIDB4N2RjOTFkOTcpLAorICAgICAgICAgICBUT0JOKDB4NDhhMDQ2
NjksIDB4YzY5OTY5ODIpLCBUT0JOKDB4ZjM5Y2FiMTUsIDB4ODNhNjUwMmUpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgwMjU4MDFhMCwgMHhlNjhkYjA1NSksIFRPQk4oMHhmMzU2OTc1OCwgMHhiYTMz
MzhkNSksCisgICAgICAgICAgIFRPQk4oMHhiMGM4YzBhYSwgMHhlZTJhZmE4NCksIFRPQk4oMHg0
ZjY5ODVkMywgMHhmYjY1NjJkMSl9LAorICAgICAgICAgIHtUT0JOKDB4MzUxZjFmMTUsIDB4MTMy
ZWQxN2EpLCBUT0JOKDB4NTEwZWQwYjQsIDB4YzA0MzY1ZmUpLAorICAgICAgICAgICBUT0JOKDB4
YTNmOTgxMzgsIDB4ZTViMWYwNjYpLCBUT0JOKDB4YmM5ZDk1ZDYsIDB4MzJkZjAzZGMpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhhODNjY2Y2ZSwgMHgxOWFiZDA5ZSksIFRPQk4oMHgwYjQwOTdjMSwg
MHg0ZmYxN2VkYiksCisgICAgICAgICAgIFRPQk4oMHg1OGE1YzQ3OCwgMHhkNjRhMDZjZSksIFRP
Qk4oMHgyZGRjYzNmZCwgMHg1NDRhNThmZCl9LAorICAgICAgICAgIHtUT0JOKDB4ZDQ0OTUwM2Qs
IDB4OWU4MTUzYjgpLCBUT0JOKDB4MzMyNGZkMDIsIDB4Nzc3NDE3OWIpLAorICAgICAgICAgICBU
T0JOKDB4YWY1ZDQ3YzgsIDB4ZGJkOTEyMGMpLCBUT0JOKDB4ZWI4NjAxNjIsIDB4MzRmYTk0ZGIp
fX0sCisgICAgICAgICB7e1RPQk4oMHg1ODE3YmRkMSwgMHg5NzJmMDdmNCksIFRPQk4oMHhlNTU3
OWUyZSwgMHhkMjdiYmNlYiksCisgICAgICAgICAgIFRPQk4oMHg4Njg0N2ExZiwgMHg1ZjExZTVh
NiksIFRPQk4oMHhiMzllZDI1NSwgMHg3YzNjZjA0OCl9LAorICAgICAgICAgIHtUT0JOKDB4ZTEw
NzY0MTcsIDB4YTJmNjJlNTUpLCBUT0JOKDB4NmI5YWIzOGYsIDB4MWJjZjgyYTIpLAorICAgICAg
ICAgICBUT0JOKDB4NGJiN2MzMTksIDB4N2FlYjI5ZjkpLCBUT0JOKDB4ZjZkMTdkYTMsIDB4MTcy
MjdhNDYpfX0sCisgICAgICAgICB7e1RPQk4oMHhhYjUzZGRiZCwgMHgwZjk2OGMwMCksIFRPQk4o
MHhhMDNkYTdlYywgMHgwMDBjODgwYiksCisgICAgICAgICAgIFRPQk4oMHg3YjIzOTYyNCwgMHg2
YTlhZDI0ZCksIFRPQk4oMHg2MTJjMDQwMSwgMHgwMWVjNjBkMCl9LAorICAgICAgICAgIHtUT0JO
KDB4NzBkMTA0OTMsIDB4MTA5ZjVkZjEpLCBUT0JOKDB4ZmJkYTQwMzAsIDB4ODBhZjc1NTApLAor
ICAgICAgICAgICBUT0JOKDB4MzBiOTNmOTUsIDB4YzZiOWE5YjMpLCBUT0JOKDB4MGM3NGVjNzEs
IDB4MDA3ZDk0MTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg5NDE3NTU2NCwgMHg2ZWRiOTUxZiks
IFRPQk4oMHg1ZjRhOWQ3OCwgMHg3ZjIyYzI4MiksCisgICAgICAgICAgIFRPQk4oMHhiNzg3MDg5
NSwgMHhiMzhkMTE5NiksIFRPQk4oMHhiYzU5M2RmMywgMHhhMjI4Y2U3Yyl9LAorICAgICAgICAg
IHtUT0JOKDB4Yzc4YzViZDQsIDB4NmFmMzY0MWEpLCBUT0JOKDB4NzgwMjIwMGIsIDB4M2Q5YjNk
Y2MpLAorICAgICAgICAgICBUT0JOKDB4MGRjNzNmMzIsIDB4OGJlMzMzMDQpLCBUT0JOKDB4ODQ3
ZWQ4N2QsIDB4NjFmZmI3OWEpfX0sCisgICAgICAgICB7e1RPQk4oMHhmODVjOTc0ZSwgMHg2ZDY3
MTE5MiksIFRPQk4oMHgxZTE0MTAwYSwgMHhkZTE2ZjYwZiksCisgICAgICAgICAgIFRPQk4oMHg0
NWNiMGQ1YSwgMHg5NWMzODc5NyksIFRPQk4oMHgxODkyM2JiYSwgMHg5YjAyMmRhNCl9LAorICAg
ICAgICAgIHtUT0JOKDB4ZWYyYmU4OTksIDB4YmJlN2U4NmUpLCBUT0JOKDB4NGExNTEwZWUsIDB4
MjE2MDY3YmYpLAorICAgICAgICAgICBUT0JOKDB4ZDk4YzgxNTQsIDB4ODRkNWNlM2UpLCBUT0JO
KDB4MWFmNzc3ZjAsIDB4ZjkyYTJiOTApfX0sCisgICAgICAgICB7e1RPQk4oMHg5ZmJjYjQwMCwg
MHg0ZWY2NTcyNCksIFRPQk4oMHgzZTA0YTRjOSwgMHgzYzBjYTZmZSksCisgICAgICAgICAgIFRP
Qk4oMHhmYjNlMmNiNSwgMHg1NTAwMjk5NCksIFRPQk4oMHgxZjNhOTNjNSwgMHg1MzYzZWNhYil9
LAorICAgICAgICAgIHtUT0JOKDB4MWZlMDBlZmUsIDB4MzkyMzU1NWIpLCBUT0JOKDB4NzQ0YmVk
ZDksIDB4MWUxNzUxZWEpLAorICAgICAgICAgICBUT0JOKDB4M2ZiMmRiNTksIDB4NmFiNjkzNTcp
LCBUT0JOKDB4OGRiZDczNjUsIDB4ZjVlNjYxOGIpfX0sCisgICAgICAgICB7e1RPQk4oMHg5OWQ1
MzA5OSwgMHhkZjFlYTQwZSksIFRPQk4oMHhiM2YyNGEwYiwgMHg1N2Q2MWU2NCksCisgICAgICAg
ICAgIFRPQk4oMHhkMDg4YTE5OCwgMHg1OTZlYjgxMiksIFRPQk4oMHgyMmM4MzYxYiwgMHg1NzYy
OTQwYil9LAorICAgICAgICAgIHtUT0JOKDB4NjZmMDFmOTcsIDB4ZjljMGQ5NWMpLCBUT0JOKDB4
ODg0NjExNzIsIDB4OGU0M2NkYWUpLAorICAgICAgICAgICBUT0JOKDB4MTE1OTlhN2YsIDB4Yjcy
YjE1YzMpLCBUT0JOKDB4MTM1YTc1MzYsIDB4NDIwZDk1Y2MpfX0sCisgICAgICAgICB7e1RPQk4o
MHgyZGNkZjBmNywgMHg1ZjdhZTJmNiksIFRPQk4oMHgxNWZjNmUxZCwgMHhkN2ZhNmRhMiksCisg
ICAgICAgICAgIFRPQk4oMHg4MWNhODI5YSwgMHhkMWQ0NDFiNiksIFRPQk4oMHg4NGMxMGNmOCwg
MHgwNGExMDZiNil9LAorICAgICAgICAgIHtUT0JOKDB4YTliMjZjOTUsIDB4YTczZmJiZDApLCBU
T0JOKDB4N2YyNGUwY2IsIDB4NGQ4ZjZlZTgpLAorICAgICAgICAgICBUT0JOKDB4NDhiNDU5Mzcs
IDB4MWUyNWEwNDMpLCBUT0JOKDB4ZjhhNzRmY2EsIDB4MDM2ZjNkZmUpfX0sCisgICAgICAgICB7
e1RPQk4oMHgxZWQ0NjU4NSwgMHhjOWY4NDI5NiksIFRPQk4oMHg3ZmJhYThmYiwgMHgzYmMyNzhi
MCksCisgICAgICAgICAgIFRPQk4oMHhhOGU5NmNkNCwgMHg2YzRmY2JkMCksIFRPQk4oMHg5NDBh
MTIwMiwgMHg3M2I2MGE1Zil9LAorICAgICAgICAgIHtUT0JOKDB4MzRhYWUxMjAsIDB4NTVhNGFl
YzgpLCBUT0JOKDB4NTUwZTlhNzQsIDB4ZGJkNzQyZjApLAorICAgICAgICAgICBUT0JOKDB4Nzk0
NDU2ZDcsIDB4MjI4YzY4YWIpLCBUT0JOKDB4NDkyZjg4NjgsIDB4YTRlMjVlYzYpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg2ODI5MTVhZCwgMHhiMmQ4ZjM5OCksIFRPQk4oMHhmMTNiNTFjYywgMHg1
Yjg0Yzk1MyksCisgICAgICAgICAgIFRPQk4oMHhjZGE5MGFiOCwgMHg1YmI5MTdkNiksIFRPQk4o
MHg0YjYxNTU2MCwgMHg0ZWEzZGVlMSl9LAorICAgICAgICAgIHtUT0JOKDB4NTc4YjRlODUsIDB4
MGE1MmMxYzgpLCBUT0JOKDB4ZWFiMWE2OTUsIDB4MjBiNzVmYzQpLAorICAgICAgICAgICBUT0JO
KDB4NjBjMTRmM2MsIDB4YWEwYmIzYzYpLCBUT0JOKDB4MjIwZjQ0OGEsIDB4YjgyMTYwOTQpfX0s
CisgICAgICAgICB7e1RPQk4oMHg0ZmU3ZWUzMSwgMHhiMGU2M2QzNCksIFRPQk4oMHhmNDYwMDU3
MiwgMHhhOWU1NGZhYiksCisgICAgICAgICAgIFRPQk4oMHhjMDQ5MzMzNCwgMHhkNWU3YjVhNCks
IFRPQk4oMHg4NTg5ZmI5MiwgMHgwNmQ1NDgzMSl9LAorICAgICAgICAgIHtUT0JOKDB4YWE3MGY1
Y2MsIDB4NjU4MzU1M2EpLCBUT0JOKDB4MDg3OTA5NGEsIDB4ZTI1NjQ5ZTUpLAorICAgICAgICAg
ICBUT0JOKDB4Y2M5MDQ1MDcsIDB4MTAwNDQ2NTIpLCBUT0JOKDB4ZWJiMDY5NmQsIDB4MDI1NDFj
NGYpfX0sCisgICAgICAgICB7e1RPQk4oMHg1YTE3MWZkZSwgMHhiOTcxODcxMCksIFRPQk4oMHgz
OGYxYmVkOCwgMHhmMzc0YTlmNSksCisgICAgICAgICAgIFRPQk4oMHhjOGM1ODJlMSwgMHhiYTM5
YmRjMSksIFRPQk4oMHhmYzQ1N2IwYSwgMHg5MDhjYzBjZSl9LAorICAgICAgICAgIHtUT0JOKDB4
OWExODdmZDQsIDB4ODgzODQxZTIpLCBUT0JOKDB4OGVjMjViMzksIDB4Mzg3MjUzODEpLAorICAg
ICAgICAgICBUT0JOKDB4MjU1M2VkMDUsIDB4OTZmODQzOTUpLCBUT0JOKDB4MDk1Yzc2NjEsIDB4
NmY2YzY4OTcpfX0sCisgICAgICAgICB7e1RPQk4oMHg5MTdhYzg1YywgMHg0YmRjNTYxMCksIFRP
Qk4oMHhiMjg4NWZlNCwgMHgxNzllYjMwMSksCisgICAgICAgICAgIFRPQk4oMHg1ZmM2NTU0Nywg
MHg4Yjc4YmRjYyksIFRPQk4oMHg0YTlmYzg5MywgMHhlNTllNDY5OSl9LAorICAgICAgICAgIHtU
T0JOKDB4YmI3ZmYwY2QsIDB4M2NlMjk5YWYpLCBUT0JOKDB4MTk1YmU5YjMsIDB4YWRmMzhiMjAp
LAorICAgICAgICAgICBUT0JOKDB4NmE5MjljODcsIDB4ZDM4ZGRiOGYpLCBUT0JOKDB4NTVmY2M5
OWMsIDB4YjIxYTUxYjkpfX0sCisgICAgICAgICB7e1RPQk4oMHgyYjY5NWI0YywgMHg3MjFhNDU5
MyksIFRPQk4oMHhlZDFlOWExNSwgMHg3NjhlYWFjMiksCisgICAgICAgICAgIFRPQk4oMHhmYjYz
ZDcxYywgMHg3NDg5ZjkxNCksIFRPQk4oMHhmOThiYTMxYywgMHg3ODExODkxMCl9LAorICAgICAg
ICAgIHtUT0JOKDB4ODAyOTEzNzMsIDB4OWIxMjhlYjQpLCBUT0JOKDB4NzgwMTIxNGUsIDB4ZDQ0
OGFmNGEpLAorICAgICAgICAgICBUT0JOKDB4ZGJkMmUyMmIsIDB4NTU0MThkZDMpLCBUT0JOKDB4
ZWZmYjNjMGQsIDB4ZDM5OTgyNDIpfX0sCisgICAgICAgICB7e1RPQk4oMHhkZmE2MDc3YywgMHhj
N2JmMzgyNyksIFRPQk4oMHhmMjE2NWJjYiwgMHg0N2Y4MjM4ZiksCisgICAgICAgICAgIFRPQk4o
MHhmZTM3Y2Y2OCwgMHg4NTY0ZDU1NCksIFRPQk4oMHhlNWY4MjVjNCwgMHgwYTgxZmI5OCl9LAor
ICAgICAgICAgIHtUT0JOKDB4NDNjYzRmNjcsIDB4ZmZlZDRkNmYpLCBUT0JOKDB4YmM2MDk1Nzgs
IDB4YjUwYTM0YjApLAorICAgICAgICAgICBUT0JOKDB4OGFhOGZjZjksIDB4NTA0MWZhZjEpLCBU
T0JOKDB4NTY1OWYwNTMsIDB4NjUxNzczYjYpfX0sCisgICAgICAgICB7e1RPQk4oMHhlODc1ODJj
MywgMHg2MDQ0ZDYzYiksIFRPQk4oMHhhNjA4OTQwOSwgMHgwY2RiMGNhMCksCisgICAgICAgICAg
IFRPQk4oMHg4Yzk5M2UwZiwgMHhiZmIyYmNmNiksIFRPQk4oMHhmYzY0YTcxOSwgMHg0NTk4NWNm
Yyl9LAorICAgICAgICAgIHtUT0JOKDB4MTVjNGRhODAsIDB4ODNkYmVkYmEpLCBUT0JOKDB4ODA0
YWUxMTIsIDB4MmJlNjdkZjcpLAorICAgICAgICAgICBUT0JOKDB4ZGE0Yzk2NTgsIDB4YTIzZGVm
ZGUpLCBUT0JOKDB4MTIwMDJkZGQsIDB4NTE1NmUwZDMpfX0sCisgICAgICAgICB7e1RPQk4oMHhl
NjhlYWU4OSwgMHg1ZGQyMWI5NiksIFRPQk4oMHg4Yjk5ZjI4YiwgMHhjZjQ0NjI0ZCksCisgICAg
ICAgICAgIFRPQk4oMHgwYWUwMDgwOCwgMHgxZWM4ODk3YSksIFRPQk4oMHhkZDBhOTMwMywgMHg2
NzEyZjc2ZSl9LAorICAgICAgICAgIHtUT0JOKDB4OTYyMzc1MjIsIDB4NGUyMzNkZTQpLCBUT0JO
KDB4MTkyNDQ1YjEsIDB4MmIzNmE4YTUpLAorICAgICAgICAgICBUT0JOKDB4YWJmOWZmNzQsIDB4
MDIzOTkzZDkpLCBUT0JOKDB4MjFmMzdiZjQsIDB4MmFhZDRhOGYpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgzNDBhNDM0OSwgMHhmOGJkMmJiZCksIFRPQk4oMHgxZDkwMmNkOSwgMHg0ODY4MTk1ZCks
CisgICAgICAgICAgIFRPQk4oMHgzZDI3YmJmMSwgMHhlNWZkYjZmMSksIFRPQk4oMHg3YTVhYjA4
OCwgMHgxMjRmOWYxYyl9LAorICAgICAgICAgIHtUT0JOKDB4YzQ2NmFiMDYsIDB4ZjdhMDllMDMp
LCBUT0JOKDB4MmY4YTE5NzcsIDB4MzFmMmMxMjMpLAorICAgICAgICAgICBUT0JOKDB4ZGEzNTVk
YzcsIDB4MDQxYjY2NTcpLCBUT0JOKDB4Y2I4NDBkMTIsIDB4OGVjZTJhN2MpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhiNjAwYWQ5ZiwgMHg3ZGIzMjY3NSksIFRPQk4oMHg3OGZlYTEzMywgMHgwN2Ew
NmYxYiksCisgICAgICAgICAgIFRPQk4oMHg1ZDAzMjI2OSwgMHhiMzFmNjA5NCksIFRPQk4oMHgw
Nzc1M2VmNSwgMHg4M2VjMzdhYSl9LAorICAgICAgICAgIHtUT0JOKDB4MDM0ODVhZWQsIDB4OWMw
YmVhNzgpLCBUT0JOKDB4NDFiYjM5ODksIDB4YmMzZjQ1MjQpLAorICAgICAgICAgICBUT0JOKDB4
MDk0MDM3NjEsIDB4Njk3ZjcyNmQpLCBUT0JOKDB4NjEwOWJlYjMsIDB4ZGYzOTQ4MjApfX0sCisg
ICAgICAgICB7e1RPQk4oMHg4MDQxMTFlYSwgMHgzYjZkMTE0NSksIFRPQk4oMHhiNjI3MWVhOSwg
MHhhODU4MjY1NCksCisgICAgICAgICAgIFRPQk4oMHg2MTk2MTVlNiwgMHgyNGU2NjU2MiksIFRP
Qk4oMHhhMjU1NDk0NSwgMHhkN2I2YWQ5Yyl9LAorICAgICAgICAgIHtUT0JOKDB4ZDljNDk4NWUs
IDB4OTliZmUzNWYpLCBUT0JOKDB4OTc3MGNjYzAsIDB4N2I1MWNkZjYpLAorICAgICAgICAgICBU
T0JOKDB4N2MzMjcwMTMsIDB4OTI4ODE4MzIpLCBUT0JOKDB4ODc3N2Q0NWYsIDB4Mjg2YjI2ZDEp
fX0sCisgICAgICAgICB7e1RPQk4oMHg5YmJlZGEyMiwgMHhkODQ3OTk5ZCksIFRPQk4oMHgwM2Fh
MzNiNiwgMHhjMzUyNWQzMiksCisgICAgICAgICAgIFRPQk4oMHg0YjdiOTZkNCwgMHgyOGE5NTlh
MSksIFRPQk4oMHhiYjM3ODZlNSwgMHgzMWU1ZDIzNCl9LAorICAgICAgICAgIHtUT0JOKDB4YWVi
NWQzY2UsIDB4Njk2MWYyNDcpLCBUT0JOKDB4MjBhYTg1YWYsIDB4MDJmOTNkM2YpLAorICAgICAg
ICAgICBUT0JOKDB4OWNkMWFkM2QsIDB4ZDdhN2FlNGYpLCBUT0JOKDB4YmY2Njg4ZjAsIDB4Nzgx
YWRhYTgpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMWI0MGU4NiwgMHg3NDY5Y2VhZCksIFRPQk4o
MHgxOTA0YzUyNCwgMHgzMDlmY2E0OCksCisgICAgICAgICAgIFRPQk4oMHg5YjczMTJhZiwgMHg0
YjU0YmJjNyksIFRPQk4oMHhiZTI0YmY4ZiwgMHg1OTNhZmZhMil9LAorICAgICAgICAgIHtUT0JO
KDB4YmU1ZTA3OTAsIDB4YmQ5ODc2NGIpLCBUT0JOKDB4YTBmNDVmMTcsIDB4YTI2ZTI5OWUpLAor
ICAgICAgICAgICBUT0JOKDB4NGFmMGQyYzIsIDB4NmI4ZmU0YzcpLCBUT0JOKDB4ZWYxNzBkYjEs
IDB4OGFlOGEzZTYpfX0sCisgICAgICAgICB7e1RPQk4oMHgwZThkNjFhMCwgMHgyOWUwY2NjMSks
IFRPQk4oMHhjZDUzZTg3ZSwgMHg2MGFkMzZjYSksCisgICAgICAgICAgIFRPQk4oMHgzMjhjNjYy
MywgMHhjODE3MzgyMiksIFRPQk4oMHg3ZWUxNzY3ZCwgMHhhNDk2YmU1NSl9LAorICAgICAgICAg
IHtUT0JOKDB4ODlmMTMyNTksIDB4NjQ4OTQ1YWYpLCBUT0JOKDB4OWU0NWE1ZmQsIDB4MjVjODAw
OWMpLAorICAgICAgICAgICBUT0JOKDB4YWYyZmViZDksIDB4MWY2MWFiOGMpLCBUT0JOKDB4NDNm
NmJjODYsIDB4OGEyNzUzODUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4Nzc5MjM0OCwgMHhmMjE0
MmU3OSksIFRPQk4oMHgxN2Q4OTI1OSwgMHhjNmU2MjM4YSksCisgICAgICAgICAgIFRPQk4oMHg3
NTM2ZDJmNiwgMHg0YTgzOWQ5YiksIFRPQk4oMHgxZjQyOGZjZSwgMHg3NmExZmJkYyl9LAorICAg
ICAgICAgIHtUT0JOKDB4MWMxMDk2MDEsIDB4MGRiMDZkZmUpLCBUT0JOKDB4YmZjMTZiYzEsIDB4
NTBhM2EzY2MpLAorICAgICAgICAgICBUT0JOKDB4ZjljYmQ5ZWMsIDB4OWIzMGY0MWIpLCBUT0JO
KDB4NWI1ZGEwZDYsIDB4MDAxMzhjY2UpfX0sCisgICAgICAgICB7e1RPQk4oMHhlYzFkMGE0OCwg
MHg1NmVmOTZhNyksIFRPQk4oMHhiNDdlYjg0OCwgMHg5ODJiZjg0MiksCisgICAgICAgICAgIFRP
Qk4oMHg2NmRlYWUzMiwgMHhlYzNmNzAwZCksIFRPQk4oMHg0ZTQzYzQyYywgMHhhYTExODFlMCl9
LAorICAgICAgICAgIHtUT0JOKDB4YTFkNzJhMzEsIDB4ZDFhNGFhMmEpLCBUT0JOKDB4NDQwZDQ2
NjgsIDB4YzAwNGYzY2UpLAorICAgICAgICAgICBUT0JOKDB4MGQ2YTJkM2IsIDB4NDVmZThhN2Ep
LCBUT0JOKDB4ODIwZTUyZTIsIDB4ZmIxMjgzNjUpfX0sCisgICAgICAgICB7e1RPQk4oMHgyOWFj
NWZjZiwgMHgyNWU1MWIwOSksIFRPQk4oMHgxODBjZDJiZiwgMHgyMDIzZDE1OSksCisgICAgICAg
ICAgIFRPQk4oMHhhOTg5MjE3MSwgMHhhMWViZjkwZSksIFRPQk4oMHhmOTdjNGM4NywgMHg3YzEz
MjE4MSl9LAorICAgICAgICAgIHtUT0JOKDB4OWYxZGM3MjQsIDB4YzAzZGJiN2UpLCBUT0JOKDB4
YWUwNDM3NjUsIDB4MDE4Y2JiZTQpLAorICAgICAgICAgICBUT0JOKDB4ZmIwYjJhMzYsIDB4MDc2
N2QxNTMpLCBUT0JOKDB4YThlMmY0ZDYsIDB4MjQ5Y2JhZWIpfX0sCisgICAgICAgICB7e1RPQk4o
MHgxNzJhNTI0NywgMHhkOTVlYTE2OCksIFRPQk4oMHgxNzU4ZmFkYSwgMHgyOTcwNzY0YSksCisg
ICAgICAgICAgIFRPQk4oMHhhYzgwM2E1MSwgMHgxZDk3ODE2OSksIFRPQk4oMHgyOTljZmUyZSwg
MHhkZTc3ZTAxYil9LAorICAgICAgICAgIHtUT0JOKDB4NjUyYTFlMTcsIDB4YjBhOTg5MjcpLCBU
T0JOKDB4MmUyNmUxZDEsIDB4MjAwMTQ0OTUpLAorICAgICAgICAgICBUT0JOKDB4N2FlMGFmOWYs
IDB4NzE3NWI1NmEpLCBUT0JOKDB4YzJlMjJhODAsIDB4ZDY0YjlmOTUpfX0sCisgICAgICAgICB7
e1RPQk4oMHg0ZDBmZjlmYiwgMHhkOTBhMDYwYSksIFRPQk4oMHg0OTZhMjdkYiwgMHhiYWYzODA4
NSksCisgICAgICAgICAgIFRPQk4oMHgzMjMwNTQwMSwgMHhkYTc3NmJjZiksIFRPQk4oMHhiOGNk
Y2VmNiwgMHg3MjVmMjA5ZSl9LAorICAgICAgICAgIHtUT0JOKDB4NjFiYTBmMzcsIDB4NDM2YTBi
YmEpLCBUT0JOKDB4MjYzZmExMDgsIDB4NzY4NjAwNDkpLAorICAgICAgICAgICBUT0JOKDB4OTJi
ZWI5OGUsIDB4ZGEzNTQyY2YpLCBUT0JOKDB4YTJkNGQxNGEsIDB4ZDU4NDk1MzgpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg5ODliOWQ2OCwgMHgxMmU5YTFiYyksIFRPQk4oMHg2MWQ5MDc1YywgMHg1
ZjZlMzI2OCksCisgICAgICAgICAgIFRPQk4oMHgzNTJjNmFhOSwgMHg5OWFjZTYzOCksIFRPQk4o
MHhkZTRlNGE1NSwgMHg5MjBmNDNmZil9LAorICAgICAgICAgIHtUT0JOKDB4ZTVlNDE0NGEsIDB4
ZDY3M2MwMTcpLCBUT0JOKDB4NjY3NDE3YWUsIDB4NmY2ZTA1ZWEpLAorICAgICAgICAgICBUT0JO
KDB4NjEzNDE2YWUsIDB4ZGNkMWJkNTYpLCBUT0JOKDB4NWViMzYyMDEsIDB4ODY2OTM3MTEpfX0s
CisgICAgICAgICB7e1RPQk4oMHgyZDdiYzUwNCwgMHgzYTFhYTkxNCksIFRPQk4oMHgxNzVhMTI5
OSwgMHg3NmRjNTk3NSksCisgICAgICAgICAgIFRPQk4oMHhlOTAwZTBmMiwgMHgzZmM4MTI1Yyks
IFRPQk4oMHg1NjllZjY4YywgMHgxMTE5ODg3NSl9LAorICAgICAgICAgIHtUT0JOKDB4OTAxMmRi
NjMsIDB4NjNhMTEzYjQpLCBUT0JOKDB4ZTNiZDNmNTYsIDB4OTg4MzU3NjYpLAorICAgICAgICAg
ICBUT0JOKDB4YTVjOTRhNTIsIDB4NzY0MTJkZWEpLCBUT0JOKDB4YWQ5ZTJhMDksIDB4YWE3MzVl
NWMpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MDVhOTg0YywgMHg1MDhiNjVlOSksIFRPQk4oMHhi
ZGU0YTFkMSwgMHg2ZGYxYTBkMSksCisgICAgICAgICAgIFRPQk4oMHgxYTk0MzNhMSwgMHhkZmJh
ODBkYSksIFRPQk4oMHhlOTE5MmZmOSwgMHg5NDQwYWQyZSl9LAorICAgICAgICAgIHtUT0JOKDB4
OWY2NDk2OTYsIDB4NTA5OWZlOTIpLCBUT0JOKDB4MjVkZGI2NWMsIDB4MGIyN2E1NGEpLAorICAg
ICAgICAgICBUT0JOKDB4MTc4Mjc5ZGQsIDB4YzU5MGRhNjEpLCBUT0JOKDB4NTQ3OWE5OTksIDB4
ZmJkZTY4MWEpfX0sCisgICAgICAgICB7e1RPQk4oMHhkMGU4NGUwNSwgMHgwMTNmZTE2MiksIFRP
Qk4oMHhiZTExZGM5MiwgMHg2MzJkNDcxYiksCisgICAgICAgICAgIFRPQk4oMHhkZjBiMGM0NSwg
MHhmYzBlMDg5ZiksIFRPQk4oMHgwNGZiMTViMCwgMHg0YzE0NDAyNSl9LAorICAgICAgICAgIHtU
T0JOKDB4YTYxZDVmYzIsIDB4MTNjOTk5MjcpLCBUT0JOKDB4YTAzM2U5ZTAsIDB4M2RlMmViMzUp
LAorICAgICAgICAgICBUT0JOKDB4ZjgxODVkNWMsIDB4YjhkYWNiYjQpLCBUT0JOKDB4OWE4OGUy
NjUsIDB4ODY0NDU0OWQpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNzE3YWY2MiwgMHg1NDY3MWZm
NiksIFRPQk4oMHg0YmQ0MjQxYiwgMHg1ZmE1ODYwMyksCisgICAgICAgICAgIFRPQk4oMHgwNmZi
YTQwYiwgMHhlNjc3NzNjMCksIFRPQk4oMHhjMWQ5MzNkMiwgMHg2YTI4NDdlOSl9LAorICAgICAg
ICAgIHtUT0JOKDB4ZjRmNWFjZjMsIDB4Njg5ZTJjNzApLCBUT0JOKDB4OTJhYWIwZTcsIDB4NDZi
YWZkMzEpLAorICAgICAgICAgICBUT0JOKDB4Nzk4ZDc2YWEsIDB4MzQ3M2Y2ZTUpLCBUT0JOKDB4
Y2M2NjQxZGIsIDB4OTMxNDE5MzQpfX0sCisgICAgICAgICB7e1RPQk4oMHhjYWUyNzc1NywgMHhk
MzFlNTM1ZSksIFRPQk4oMHgwNGNjNDNiNiwgMHg4N2MyZWUxMSksCisgICAgICAgICAgIFRPQk4o
MHg4ZDFmOTY3NSwgMHgyZTAyOWZmYSksIFRPQk4oMHhjMjE1MDY3MiwgMHhlNGNjN2EyYyl9LAor
ICAgICAgICAgIHtUT0JOKDB4M2IwM2MxZTAsIDB4OGQ2OGIwMTMpLCBUT0JOKDB4YTlkNjgxNmYs
IDB4ZWRmMjk4ZjMpLAorICAgICAgICAgICBUT0JOKDB4MWJmYmI1MjksIDB4YTI4MDQ0NjQpLCBU
T0JOKDB4OTVhNTJmYWUsIDB4NWRiMjIxMjUpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NWIzMjE2
MCwgMHgwZTFjYjY0ZSksIFRPQk4oMHgwMDQ4MjhmNiwgMHg3ZTdmYzlmZSksCisgICAgICAgICAg
IFRPQk4oMHgxMzM5NGI4MiwgMHgxYmIwZmI5MyksIFRPQk4oMHhiNjI5M2EyZCwgMHgzNWYxYTky
MCl9LAorICAgICAgICAgIHtUT0JOKDB4ZGUzNWVmMjEsIDB4ZDE0NWQyZDkpLCBUT0JOKDB4YmU2
MjI1YjMsIDB4YmI4ZmE2MDMpLAorICAgICAgICAgICBUT0JOKDB4MDBmYzhmNmIsIDB4MzJjZjI1
MmQpLCBUT0JOKDB4YTI4ZTUyZTYsIDB4MTE3Y2Y4YzIpfX0sCisgICAgICAgICB7e1RPQk4oMHg5
ZDFkYzg5YiwgMHg0YzM3MWU2ZCksIFRPQk4oMHhjZWJlMDY3NSwgMHgzNmVmMGYyOCksCisgICAg
ICAgICAgIFRPQk4oMHg1ZGUwNWQwOSwgMHhhNDI5MmY4MSksIFRPQk4oMHhhODMwMzU5MywgMHgz
NTNlMzA4Myl9LAorICAgICAgICAgIHtUT0JOKDB4YTE3MTViMGEsIDB4N2UzN2E5YmIpLCBUT0JO
KDB4OGM1NmY2MWUsIDB4MmI4ZmFlYzMpLAorICAgICAgICAgICBUT0JOKDB4NTI1MDc0MzEsIDB4
MzNjOWIxMDIpLCBUT0JOKDB4MDEzMGNlZmMsIDB4YTQ0NDMxZjApfX0sCisgICAgICAgICB7e1RP
Qk4oMHg1NjAzOWZhMCwgMHhiZDg2NWNmYiksIFRPQk4oMHg0YjAzZTU3OCwgMHhiYzVmMWRkNyks
CisgICAgICAgICAgIFRPQk4oMHg0MGVkZjJlNCwgMHhiYWJlNzIyNCksIFRPQk4oMHhjNzUyNDk2
ZCwgMHgzYTE5ODhmNil9LAorICAgICAgICAgIHtUT0JOKDB4ZDE1NzJkM2IsIDB4NTY0YmViNmIp
LCBUT0JOKDB4MGRiMWQxMTAsIDB4MzlhMWM2MDgpLAorICAgICAgICAgICBUT0JOKDB4NTY4ZDE5
MzQsIDB4MTZmNjAxMjYpLCBUT0JOKDB4MDVhZTk2NjgsIDB4ZjM1NGFmMzMpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgxOWRlNmQzNywgMHhjOTI1NDRmMiksIFRPQk4oMHhjYzA4NDM1MywgMHhhMzU4
MzdkNSksCisgICAgICAgICAgIFRPQk4oMHhjYmI2ODY5YywgMHgxYTUxNGVjZSksIFRPQk4oMHhi
NjMzZTcyOCwgMHgyZTFkMTA2Nil9LAorICAgICAgICAgIHtUT0JOKDB4ZjE1ZGQ2OWYsIDB4OTM2
YzU4MWMpLCBUT0JOKDB4OTZlN2I4Y2UsIDB4NzQzOWM0ZjkpLAorICAgICAgICAgICBUT0JOKDB4
NWU2NzZmNDgsIDB4MmU0NDhhNWIpLCBUT0JOKDB4YjJjYTdkNWIsIDB4ZmQ5MTZiYmIpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhkNTVhMjU0MSwgMHhmNTAyNDAyNSksIFRPQk4oMHg0N2JjNTc2OSwg
MHhlNGMyZDkzNyksCisgICAgICAgICAgIFRPQk4oMHg3ZDMxYjkyYSwgMHgwMzYyMTg5ZiksIFRP
Qk4oMHg4M2YzMDg2ZSwgMHhlZjc4MTZmOSl9LAorICAgICAgICAgIHtUT0JOKDB4ZjlmNDZkOTQs
IDB4YjU4NzU3OWEpLCBUT0JOKDB4ZWMyZDIyZDgsIDB4MzBlNzZjNWYpLAorICAgICAgICAgICBU
T0JOKDB4MjdkNTc0NjEsIDB4YjAwMGZmY2YpLCBUT0JOKDB4YmI3ZTY1ZjksIDB4MzY0ZmZjMmMp
fX0sCisgICAgICAgICB7e1RPQk4oMHg3YzdjOTQ3NywgMHg2NjUyYTIyMCksIFRPQk4oMHg2MTYx
OGY4OSwgMHhkNjk2Yzk4MSksCisgICAgICAgICAgIFRPQk4oMHg1MDIxNzAxZCwgMHg4OWVmZmZm
MyksIFRPQk4oMHhmMmM4ZmY4ZSwgMHg3YzMxNDE2Myl9LAorICAgICAgICAgIHtUT0JOKDB4MmRh
NDEzYWQsIDB4OGVmYjRkM2UpLCBUT0JOKDB4OTM3YjVhZGYsIDB4Y2UxNzZkOTUpLAorICAgICAg
ICAgICBUT0JOKDB4MjI4NjdkMzQsIDB4MmE2N2Q1MWMpLCBUT0JOKDB4MjYyYjliMTAsIDB4MThl
YjNhYzkpfX0sCisgICAgICAgICB7e1RPQk4oMHg0ZTMxNGZlNCwgMHhjNDNmZjI4YiksIFRPQk4o
MHg3NjQ3NjYyNywgMHg2YTY2NGU3YSksCisgICAgICAgICAgIFRPQk4oMHgzZTkwZTQwYiwgMHhi
N2E1NjVjMiksIFRPQk4oMHg4NTg4OTkzYSwgMHhjMWFjZjgzMSl9LAorICAgICAgICAgIHtUT0JO
KDB4ZDdiNTAxZDYsIDB4OGY5Mzg4MjkpLCBUT0JOKDB4OTk2NjI3ZWUsIDB4M2VkZDdkNGMpLAor
ICAgICAgICAgICBUT0JOKDB4MzdkNDRhNjIsIDB4OTBjZDM0YzcpLCBUT0JOKDB4YTgzMjc0OTks
IDB4ZjM4MzNlOGQpfX0sCisgICAgICAgICB7e1RPQk4oMHgyZTE4OTE3ZCwgMHg0YmY1MDM1Myks
IFRPQk4oMHg4NWRkNzI2YiwgMHg1NTY3NjVmYiksCisgICAgICAgICAgIFRPQk4oMHg1NGZlNjVk
NiwgMHg5M2Q1YWI2NiksIFRPQk4oMHgzZGRiYWNlZCwgMHg5MTVjMjVmZSl9LAorICAgICAgICAg
IHtUT0JOKDB4YTc5OWQ5YTQsIDB4MTJmMjJlODUpLCBUT0JOKDB4ZTJhMjQ4NjcsIDB4NmQwNmY2
YmMpLAorICAgICAgICAgICBUT0JOKDB4ZjRmMWVlNTYsIDB4NDNjYTE2MzcpLCBUT0JOKDB4ZmRh
MjgyOGIsIDB4NjFlY2UzMGEpfX0sCisgICAgICAgICB7e1RPQk4oMHg3NThjMWEzZSwgMHhhMmRl
ZTdhNiksIFRPQk4oMHhkY2RlMmYzYywgMHg3MzRiMjI4NCksCisgICAgICAgICAgIFRPQk4oMHhh
YmE0NDVkMiwgMHg0ZWFiYTZhZCksIFRPQk4oMHgzNWFhZjY2OCwgMHg3NmNlZTBhNyl9LAorICAg
ICAgICAgIHtUT0JOKDB4N2UwYjA0YTksIDB4ZTVhYTA0OWEpLCBUT0JOKDB4ZTc0MDgzYWQsIDB4
OTExMDNlODQpLAorICAgICAgICAgICBUT0JOKDB4YmViMTgzY2UsIDB4NDBhZmVjYzMpLCBUT0JO
KDB4NmI4OWRlOWYsIDB4ZWEwNDNmN2EpfX19LAorICAgICAgICB7e3tUT0JOKDB4MGUyOTlkMjMs
IDB4ZmU2N2JhNjYpLCBUT0JOKDB4OTE0NTA3NjAsIDB4OTNjZjJmMzQpLAorICAgICAgICAgICBU
T0JOKDB4ZjQ1YjVlYTksIDB4OTdmY2Y5MTMpLCBUT0JOKDB4NWJlMDA4NDMsIDB4OGJkN2RkZGEp
fSwKKyAgICAgICAgICB7VE9CTigweDM1OGMzZTA1LCAweGQ1M2ZmMDRkKSwgVE9CTigweGJmN2Nj
ZGMzLCAweDVkZTkxZWY3KSwKKyAgICAgICAgICAgVE9CTigweGFkNjg0ZGJmLCAweGI2OWVjMWEw
KSwgVE9CTigweDM2N2U3Y2YyLCAweDgwMWZkOTk3KX19LAorICAgICAgICAge3tUT0JOKDB4MGNh
MWYzYjcsIDB4YjBkYzg1OTUpLCBUT0JOKDB4MjdkZTQ2MDgsIDB4OWYxZDlmMmUpLAorICAgICAg
ICAgICBUT0JOKDB4MWFmM2JmMzksIDB4YmFkZDgyYTcpLCBUT0JOKDB4NzkzNTZhNzksIDB4NjU4
NjI0NDgpfSwKKyAgICAgICAgICB7VE9CTigweGMwNjAyMzQ1LCAweGY1ZjlhMDUyKSwgVE9CTigw
eDFhOGIwZjg5LCAweDEzOWE0MmY5KSwKKyAgICAgICAgICAgVE9CTigweGI1M2VlZTQyLCAweDg0
NGQ0MGZjKSwgVE9CTigweDkzYjBiZmU1LCAweDRlNWI2MzY4KX19LAorICAgICAgICAge3tUT0JO
KDB4NTQzNGRkMDIsIDB4YzAyNDc4OWMpLCBUT0JOKDB4OTBkY2E5ZWEsIDB4NDFiNTdiZmMpLAor
ICAgICAgICAgICBUT0JOKDB4OGFhODk4ZTIsIDB4MjQzMzk4ZGYpLCBUT0JOKDB4ZjYwN2M4MzQs
IDB4ODk0YTk0YmIpfSwKKyAgICAgICAgICB7VE9CTigweGJiMDdiZTk3LCAweGMyYzk5Yjc2KSwg
VE9CTigweDY1NzZiYTY3LCAweDE4YzI5MzAyKSwKKyAgICAgICAgICAgVE9CTigweDNkNzllZmNj
LCAweGU3MDNhODhjKSwgVE9CTigweGYyNTljZWQ3LCAweGI2YTBkMTA2KX19LAorICAgICAgICAg
e3tUT0JOKDB4MGY4OTNhNWQsIDB4YzhkZTYxMGIpLCBUT0JOKDB4ZThjNTE1ZmIsIDB4NjdlMjIz
Y2UpLAorICAgICAgICAgICBUT0JOKDB4Nzc3NGJmYTYsIDB4NGVhZDZkYzUpLCBUT0JOKDB4ODlk
MjBmOTUsIDB4OTI1YzcyOGYpfSwKKyAgICAgICAgICB7VE9CTigweDdhMWUwOTY2LCAweDA5ODU4
M2NlKSwgVE9CTigweGEyZWVkYjk0LCAweDkzZjJhN2Q3KSwKKyAgICAgICAgICAgVE9CTigweDFi
MjgyMDk3LCAweDRjMzA0ZDRhKSwgVE9CTigweDA4NDJlM2RhLCAweGMwNzcyODJkKX19LAorICAg
ICAgICAge3tUT0JOKDB4ZTRkOTcyYTMsIDB4M2I5ZTJkN2IpLCBUT0JOKDB4N2NjNjBiMjcsIDB4
YzQ4MjE4ZmYpLAorICAgICAgICAgICBUT0JOKDB4OGZjNzA4MzgsIDB4ODQxNDlkOTEpLCBUT0JO
KDB4NWMwNDM0NmYsIDB4MmY0NjFlY2MpfSwKKyAgICAgICAgICB7VE9CTigweGViZTlmZGYyLCAw
eDYxNDY1MGE5KSwgVE9CTigweDVlMzViNTM3LCAweGMxZjY2NmFjKSwKKyAgICAgICAgICAgVE9C
TigweDY0NTYxM2QxLCAweDg4YmFiYzgzKSwgVE9CTigweDg4Y2FjZTNhLCAweGM1ZTFjOTNlKX19
LAorICAgICAgICAge3tUT0JOKDB4MjA5Y2EzNzUsIDB4M2RlOTJlMjMpLCBUT0JOKDB4Y2NiMDNj
YzgsIDB4NWZiYmI2ZTMpLAorICAgICAgICAgICBUT0JOKDB4Y2NiOTBmMDMsIDB4ZDdiMTQ4N2Up
LCBUT0JOKDB4ZmE5YzJhMzgsIDB4YzcxMDk0MWYpfSwKKyAgICAgICAgICB7VE9CTigweDc1NmMz
ODIzLCAweDY3MjRjZWVkKSwgVE9CTigweDNhOTAyMjU4LCAweDE5MmQwMzIzKSwKKyAgICAgICAg
ICAgVE9CTigweGIxNTBlNTE5LCAweGVhNWUwMzhlKSwgVE9CTigweGRjYmEyODY1LCAweGM3NDI3
NTkxKX19LAorICAgICAgICAge3tUT0JOKDB4ZTU0OTIzN2YsIDB4Nzg4OTA3MzIpLCBUT0JOKDB4
YzQ0M2JlZjksIDB4NTNmY2I0ZDkpLAorICAgICAgICAgICBUT0JOKDB4OTg4NGQ4YTYsIDB4ZWIz
NDgwZDYpLCBUT0JOKDB4OGEzNWI2YTEsIDB4MzA0OGIxODYpfSwKKyAgICAgICAgICB7VE9CTigw
eGI0ZTQ0NzE2LCAweDY1ZTlhOTBhKSwgVE9CTigweDQ1YmYzODBkLCAweDY1MzAwNmMwKSwKKyAg
ICAgICAgICAgVE9CTigweDhmM2Y4MjBkLCAweDRmZTlhZTNiKSwgVE9CTigweDI0NGEzNWEwLCAw
eDk3OWEzYjcxKX19LAorICAgICAgICAge3tUT0JOKDB4YTEwMTBlOWQsIDB4NzRjZDA2ZmYpLCBU
T0JOKDB4OWMxN2M3ZGYsIDB4YWNhM2VlYWMpLAorICAgICAgICAgICBUT0JOKDB4NzRjODZjZDMs
IDB4ODA2M2FhMmIpLCBUT0JOKDB4ODU5NWM0YjMsIDB4NzM0NjE0ZmYpfSwKKyAgICAgICAgICB7
VE9CTigweGEzZGUwMGNhLCAweDk5MGY2MmNjKSwgVE9CTigweGQ5YmVkMjEzLCAweGNhMGMzYmU1
KSwKKyAgICAgICAgICAgVE9CTigweDc4ODYwNzhhLCAweGRmOGNlOWY1KSwgVE9CTigweGRkYjI3
Y2UzLCAweDVjZDQ0NDQ0KX19LAorICAgICAgICAge3tUT0JOKDB4ZWQzNzRhNjYsIDB4NTg5MjZk
ZGQpLCBUT0JOKDB4MTM4YjJkNDksIDB4OTA4MDE1YjgpLAorICAgICAgICAgICBUT0JOKDB4ODg2
YzY1NzksIDB4ZGUxZjdhYjgpLCBUT0JOKDB4ODg4YjlhYTAsIDB4YzMwMjBiN2EpfSwKKyAgICAg
ICAgICB7VE9CTigweGQzZWMwMzRlLCAweDNhOTZlMzU1KSwgVE9CTigweGJhNjViMGI4LCAweGYz
MGZiZTlhKSwKKyAgICAgICAgICAgVE9CTigweDA2NGM4ZTUwLCAweGZmMjEzNjdhKSwgVE9CTigw
eDFmNTA4ZWE0LCAweDBiMDRiNDZlKX19LAorICAgICAgICAge3tUT0JOKDB4OTg1NjFhNDksIDB4
NzQ3Yzg2NmMpLCBUT0JOKDB4YmJiMWU1ZmUsIDB4MDUxOGEwNjIpLAorICAgICAgICAgICBUT0JO
KDB4MjBmZjRlOGIsIDB4ZWNkYzM2MDgpLCBUT0JOKDB4N2Y1NWNkZWQsIDB4MjAxODQwMjcpfSwK
KyAgICAgICAgICB7VE9CTigweDhkNzNlYzk1LCAweGYzOGM4NWYwKSwgVE9CTigweDViNTg5ZmRm
LCAweDhiYzNiOGMzKSwKKyAgICAgICAgICAgVE9CTigweGJlOTVkZDk4LCAweDBmMTJiNjZmKSwg
VE9CTigweGY1YmQxYTA5LCAweDBlMzM4ZTAxKX19LAorICAgICAgICAge3tUT0JOKDB4NjUxNjNh
ZTUsIDB4NWU5MTU5MTgpLCBUT0JOKDB4NjE1OGQ2ZDksIDB4ODZmOGE0NmIpLAorICAgICAgICAg
ICBUT0JOKDB4ODQ2NmI1MzgsIDB4ZWVlYmY5OWMpLCBUT0JOKDB4Y2E4NzYxZjYsIDB4YmNhNDc3
ZWYpfSwKKyAgICAgICAgICB7VE9CTigweGFmMzQ0OWMyLCAweDllYmJjNjAxKSwgVE9CTigweGVm
M2IwZjQxLCAweGUwYzNhZTJmKSwKKyAgICAgICAgICAgVE9CTigweGFhNmM1NzdkLCAweDVkZTYz
NzUyKSwgVE9CTigweGU5MTY2NjAxLCAweDY0NjgyYTUxKX19LAorICAgICAgICAge3tUT0JOKDB4
NWEzMDk3YmUsIDB4ZmMxNWFhMWUpLCBUT0JOKDB4NDBkMTI1NDgsIDB4YjU0YjA3NDUpLAorICAg
ICAgICAgICBUT0JOKDB4NWJhZDQ3MDYsIDB4NTE5YTVmMTIpLCBUT0JOKDB4ZWQwM2Y3MTcsIDB4
YTQzOWRlZTYpfSwKKyAgICAgICAgICB7VE9CTigweDA3OTRiYjZjLCAweDRhMDJjNDk5KSwgVE9C
TigweGY3MjUwODNkLCAweGNmZmU3MWQyKSwKKyAgICAgICAgICAgVE9CTigweDJjYWQ3NTE5LCAw
eDBmM2FkY2FmKSwgVE9CTigweDdmNjhlYTFjLCAweDQzNzI5MzEwKX19LAorICAgICAgICAge3tU
T0JOKDB4ZTc0N2M4YzcsIDB4YjdmZmQ5NzcpLCBUT0JOKDB4ZWMxMDRjMzUsIDB4ODA3NjFhMjIp
LAorICAgICAgICAgICBUT0JOKDB4ODM5NWViYWYsIDB4NWEzZmZiODMpLCBUT0JOKDB4ZmIzMjYx
ZjQsIDB4ZTRiNjNkYjcpfSwKKyAgICAgICAgICB7VE9CTigweDUzNTQ0OTYwLCAweGQ4ODNlNTQ0
KSwgVE9CTigweDEzNTIwZDcwLCAweDhjYzJlZWI4KSwKKyAgICAgICAgICAgVE9CTigweDA4ZjYz
MzdiLCAweGQzZDY1Zjk5KSwgVE9CTigweDgzOTk3ZGIyLCAweDc4MWNmOTViKX19LAorICAgICAg
ICAge3tUT0JOKDB4Y2U2ZmYxMDYsIDB4MGRiZDJjMDEpLCBUT0JOKDB4NGY4ZWVhNmIsIDB4MWY5
Y2U5MzQpLAorICAgICAgICAgICBUT0JOKDB4NTQ2ZjdjNGIsIDB4MGU5OTM5MjEpLCBUT0JOKDB4
NjIzNmEzMjQsIDB4NWU3NTNmYzcpfSwKKyAgICAgICAgICB7VE9CTigweDY1YTQxZjg0LCAweGEx
NjAyMmU5KSwgVE9CTigweDBjMThkODc4LCAweDQzZDFkYmIyKSwKKyAgICAgICAgICAgVE9CTigw
eDczYzU1NjQwLCAweDJkNGNlZjljKSwgVE9CTigweGEwNDI4MTA4LCAweDcwNDQ0Yzc0KX19LAor
ICAgICAgICAge3tUT0JOKDB4NjhlNGYxNWUsIDB4OWFmZGZiM2MpLCBUT0JOKDB4NDlhNTYxNDMs
IDB4NWJkZmI2ZGYpLAorICAgICAgICAgICBUT0JOKDB4YTliYzFiZDQsIDB4NWY4MjNkOTcpLCBU
T0JOKDB4YmNlYjU5NzAsIDB4ZWExMTFjMmEpfSwKKyAgICAgICAgICB7VE9CTigweDM2NmI0NTVm
LCAweGIyNjliYmM0KSwgVE9CTigweDdjZDg1ZTFlLCAweGU5YmM1ZDYyKSwKKyAgICAgICAgICAg
VE9CTigweGM3NDNjNDFjLCAweDRmMThiMDg2KSwgVE9CTigweGE0YjQwOTkwLCAweDk1Mjk0ZmI5
KX19LAorICAgICAgICAge3tUT0JOKDB4OWM3YzU4MWQsIDB4MjZlZTgzODIpLCBUT0JOKDB4Y2Yx
N2RjYzUsIDB4MzU5ZDYzOGUpLAorICAgICAgICAgICBUT0JOKDB4ZWU4MjczYWIsIDB4YjcyOGFl
M2QpLCBUT0JOKDB4MWQxMTI5MjYsIDB4ZjgyMWYwNDcpfSwKKyAgICAgICAgICB7VE9CTigweDEx
NDk4NDc3LCAweDUwNDkxYTc0KSwgVE9CTigweDY4N2ZhNzYxLCAweGZkZTBkZmI5KSwKKyAgICAg
ICAgICAgVE9CTigweDJjMjU4MDIyLCAweDdlYTQzNWFiKSwgVE9CTigweDZiOGJkYjk0LCAweDkx
Y2U3ZTNmKX19LAorICAgICAgICAge3tUT0JOKDB4NGM1YjVkYzksIDB4M2JmODM0YWEpLCBUT0JO
KDB4MDQzNzE4MTksIDB4NGY2YzdlNGIpLAorICAgICAgICAgICBUT0JOKDB4YzI4NGUwMGEsIDB4
MzczNmJjYWQpLCBUT0JOKDB4MGQ4ODExMTgsIDB4MjFhZThmOGQpfSwKKyAgICAgICAgICB7VE9C
TigweGY5Y2YwZjgyLCAweGY0OGM4ZTMzKSwgVE9CTigweGExMWZkMDc1LCAweGExYmY0MGRiKSwK
KyAgICAgICAgICAgVE9CTigweGRjZWFiMGRlLCAweGRjMjczM2U1KSwgVE9CTigweGM1NjBhOGI1
LCAweDhlOTg2YmQ3KX19LAorICAgICAgICAge3tUT0JOKDB4NDhkZDFmZTIsIDB4MzkyOWQwOTcp
LCBUT0JOKDB4Mzg4NWIyOTAsIDB4OTJmMTg4ZjEpLAorICAgICAgICAgICBUT0JOKDB4MGYyYWU2
MTMsIDB4ZGE2ZmNkYWMpLCBUT0JOKDB4OTA1NDMwM2UsIDB4YjY2MmE0NmMpfSwKKyAgICAgICAg
ICB7VE9CTigweGI2ODcxZTQ0LCAweDA3MzgwNDJhKSwgVE9CTigweDk4ZTZhOTc3LCAweGJkYWY2
NDQ5KSwKKyAgICAgICAgICAgVE9CTigweGQ4YmMwNjUwLCAweGQxYzlkZjFiKSwgVE9CTigweGVm
M2Q2NDUxLCAweDM2ZTA5OGY5KX19LAorICAgICAgICAge3tUT0JOKDB4MDNmYmFlODIsIDB4YjZk
NzJkMjgpLCBUT0JOKDB4NzdjYTlkYjEsIDB4ZjVkODQwODApLAorICAgICAgICAgICBUT0JOKDB4
OGExMTJjZmYsIDB4YTU4ZWZjMWMpLCBUT0JOKDB4NTE4ZDc2MWMsIDB4YzU2NGNiNGEpfSwKKyAg
ICAgICAgICB7VE9CTigweDY5YjU3NDBlLCAweGYwZDFiNWNlKSwgVE9CTigweDcxNzAzOWNjLCAw
eGU5ZWIxNzg1KSwKKyAgICAgICAgICAgVE9CTigweDNmZTI5ZjkwLCAweDIyZjUzMzgyKSwgVE9C
TigweDhlNTRiYTU2LCAweDZiYzdjOTVjKX19LAorICAgICAgICAge3tUT0JOKDB4OWM4MDZkOGEs
IDB4ZjdmOTFkMGYpLCBUT0JOKDB4M2I2MWIwZjEsIDB4YTgyYTU3MjgpLAorICAgICAgICAgICBU
T0JOKDB4NDY0MDAzMmQsIDB4OTRkNzY3NTQpLCBUT0JOKDB4MjczZWI1ZGUsIDB4NDdkODM0YzYp
fSwKKyAgICAgICAgICB7VE9CTigweDI5ODhhYmY3LCAweDdiNGU0ZDUzKSwgVE9CTigweGI3Y2U2
NmJmLCAweGRlNDAxNzc3KSwKKyAgICAgICAgICAgVE9CTigweDlmYmE2YjMyLCAweDcxNTA3MWIz
KSwgVE9CTigweDgyNDEzYzI0LCAweGFkM2ExYTk4KX19LAorICAgICAgICAge3tUT0JOKDB4NWI3
ZmM4YzQsIDB4ZTBlOGFkOTMpLCBUT0JOKDB4YjU2NzlhZWUsIDB4NWZhYjg2OGQpLAorICAgICAg
ICAgICBUT0JOKDB4YjFmOWQyZmEsIDB4MmIzOTQ2ZjMpLCBUT0JOKDB4NDU4ODk3ZGMsIDB4NTY4
NWI1MGEpfSwKKyAgICAgICAgICB7VE9CTigweDFlOThjOTMwLCAweDg5ZDBjYWYzKSwgVE9CTigw
eDM5NTY0YzVmLCAweDc4NjQyZTkyKSwKKyAgICAgICAgICAgVE9CTigweDFiNzc3MjlhLCAweDBk
YmRhZjE4KSwgVE9CTigweGY5MTcwNzIyLCAweDU3OWU4MmU2KX19LAorICAgICAgICAge3tUT0JO
KDB4NjgwYzAzMTcsIDB4ZTQ1MTVmYTUpLCBUT0JOKDB4Zjg1Y2ZmODQsIDB4ZmIwYzc5MGYpLAor
ICAgICAgICAgICBUT0JOKDB4YzdhODJhYWIsIDB4NmQyZTA3NjUpLCBUT0JOKDB4NzQ0NmJjYTks
IDB4MzVjODJiMzIpfSwKKyAgICAgICAgICB7VE9CTigweDVkZTYwN2FhLCAweDZkNjMxODRmKSwg
VE9CTigweDdjMWE0NmE4LCAweDI2MjgwM2E2KSwKKyAgICAgICAgICAgVE9CTigweGQyMTgzMTNk
LCAweGFlYmU4MDM1KSwgVE9CTigweDkyMTEzZmZkLCAweGM3M2M1MWY4KX19LAorICAgICAgICAg
e3tUT0JOKDB4NGIzOGUwODMsIDB4MTJlN2U0NmMpLCBUT0JOKDB4NjlkMGEzN2EsIDB4NTYxMjZi
ZDUpLAorICAgICAgICAgICBUT0JOKDB4ZmIzZjMyNGIsIDB4NzNjMDdlMDQpLCBUT0JOKDB4YTBj
MjJmNjcsIDB4OGZkYTcyNjcpfSwKKyAgICAgICAgICB7VE9CTigweDhmMmMwMDUxLCAweDRkMmM3
ZDhmKSwgVE9CTigweGJjNDVjZWQzLCAweGNiZTJjYWU1KSwKKyAgICAgICAgICAgVE9CTigweGUx
YzZjZjA3LCAweGE4ZjBmMjc3KSwgVE9CTigweGJjMzkyMzEyLCAweDFlYjk5YTk4KX19LAorICAg
ICAgICAge3tUT0JOKDB4NzU1MzdiN2UsIDB4M2NjOGFjODUpLCBUT0JOKDB4OGQ3MjVmNTcsIDB4
ZGQwMjc1M2IpLAorICAgICAgICAgICBUT0JOKDB4ZmQwNWZmNjQsIDB4YjczN2RmMmYpLCBUT0JO
KDB4NTVmZTg3MTIsIDB4ZjZkMjUzMWQpfSwKKyAgICAgICAgICB7VE9CTigweDU3Y2UwNGE5LCAw
eDZhYjZiMDFjKSwgVE9CTigweDY5YTAyYTg5LCAweDdjZDkzNzI0KSwKKyAgICAgICAgICAgVE9C
TigweDRmODJhYzM1LCAweGNmODY2OTliKSwgVE9CTigweDgyNDJkM2FkLCAweDljYjRiMjMyKX19
LAorICAgICAgICAge3tUT0JOKDB4NzEzZDBmNjUsIDB4ZDYyMTA1ZTUpLCBUT0JOKDB4YmIyMjJi
ZmEsIDB4MmQyOWJlNjEpLAorICAgICAgICAgICBUT0JOKDB4ZjJmOWE3OWUsIDB4NmNmYmVmMDkp
LCBUT0JOKDB4ZmMyNGQ4ZDMsIDB4ZDVkNjc4MmYpfSwKKyAgICAgICAgICB7VE9CTigweDVkYjc3
MDg1LCAweGQ0MTI5OTY3KSwgVE9CTigweGRiODFjM2NjLCAweGRjM2MyYTQzKSwKKyAgICAgICAg
ICAgVE9CTigweDlkNjU1ZmMwLCAweDA1ZDhkOWEzKSwgVE9CTigweDNmNWQwNTdhLCAweDU0Mjk4
MDI2KX19LAorICAgICAgICAge3tUT0JOKDB4MTE1N2Y1NmQsIDB4ODhjNTQ2OTQpLCBUT0JOKDB4
YjI2YmFiYTUsIDB4OWIwOTU3M2UpLAorICAgICAgICAgICBUT0JOKDB4MmNhYjAzYjAsIDB4MjJh
ZGZmZDEpLCBUT0JOKDB4NjBhNDEyYzgsIDB4ZGQ2OWYzODMpfSwKKyAgICAgICAgICB7VE9CTigw
eGVkNzZlOThiLCAweDU0YjI1MDM5KSwgVE9CTigweGQ0ZWU2N2QzLCAweDY4N2U3MTRkKSwKKyAg
ICAgICAgICAgVE9CTigweDg3NzM5NjQ4LCAweDdiMDBiNTk0KSwgVE9CTigweGNlNDE5Nzc1LCAw
eGM5ZWY3MDliKX19LAorICAgICAgICAge3tUT0JOKDB4NDBmNzZmODUsIDB4MWMyMDNhNDApLCBU
T0JOKDB4MzBkMzUyZDYsIDB4ZWFmZDhmOTEpLAorICAgICAgICAgICBUT0JOKDB4YWYxOTZkM2Qs
IDB4OTU1NzhkZDIpLCBUT0JOKDB4ZWE0YmIzZDcsIDB4NzdjYzNmM2QpfSwKKyAgICAgICAgICB7
VE9CTigweDQyYTViZDAzLCAweGI5OGU3ODJiKSwgVE9CTigweGFjOTU4YzQwLCAweDA2MjQ5MjBk
KSwKKyAgICAgICAgICAgVE9CTigweGI4MzgxMzRjLCAweGZjNTZmY2M4KSwgVE9CTigweDg2ZWM0
Y2NmLCAweDg5NTcyZTVlKX19LAorICAgICAgICAge3tUT0JOKDB4NjljNDM1MjYsIDB4OWJlNDdi
ZTApLCBUT0JOKDB4MzIzYjdkZDgsIDB4Y2IyOGZlYTEpLAorICAgICAgICAgICBUT0JOKDB4ZmE1
NTM4YmEsIDB4M2E2YzY3ZTUpLCBUT0JOKDB4ZWY5MjFkNzAsIDB4MWQzNzhlNDYpfSwKKyAgICAg
ICAgICB7VE9CTigweGY5Mjk2MWZjLCAweDNjNGI4ODBlKSwgVE9CTigweDNmNmY5MTRlLCAweDk4
OTQwYTY3KSwKKyAgICAgICAgICAgVE9CTigweGE5OTBlYjBhLCAweGZlZjBmZjM5KSwgVE9CTigw
eGE2YzI5MjBmLCAweGYwZWVmZjljKX19LAorICAgICAgICAge3tUT0JOKDB4Y2E4MDQxNjYsIDB4
NTFiOGQ5YTMpLCBUT0JOKDB4NDI1MzFiYzksIDB4MGZmYjBkYjEpLAorICAgICAgICAgICBUT0JO
KDB4NzJjZTQ3MTgsIDB4YWE4MmU3Y2UpLCBUT0JOKDB4NmUxOTk5MTMsIDB4ZGY1NzQ3NDEpfSwK
KyAgICAgICAgICB7VE9CTigweGQ1ZjFiMTNkLCAweGQ1ZDM2OTQ2KSwgVE9CTigweDgyNTVkYzY1
LCAweGY2OGYwMTk0KSwKKyAgICAgICAgICAgVE9CTigweGRjOWRmNGNkLCAweDg3MTBkMjMwKSwg
VE9CTigweDM0NTNjMjBmLCAweDEzOGMxOTg4KX19LAorICAgICAgICAge3tUT0JOKDB4OWFmOThk
YzAsIDB4ODlhNmVmMDEpLCBUT0JOKDB4NGRiY2MzZjAsIDB4OTg1N2RmODUpLAorICAgICAgICAg
ICBUT0JOKDB4MzQ4MDU2MDEsIDB4NWMxYWQ5MjQpLCBUT0JOKDB4NDA0NDhkYTUsIDB4ZDA0OTMw
NDYpfSwKKyAgICAgICAgICB7VE9CTigweGY2Mjk5MjZkLCAweDRlZTM0M2UyKSwgVE9CTigweDYz
NDNmMWJkLCAweDkwZThhMzAxKSwKKyAgICAgICAgICAgVE9CTigweGVmYzkzNDkxLCAweDQwODE1
YjNmKSwgVE9CTigweGY4ODJhNDIzLCAweGRlOGY2NmZiKX19LAorICAgICAgICAge3tUT0JOKDB4
M2ExMmQ1ZjQsIDB4ZTdkYjlmNTcpLCBUT0JOKDB4N2RmYmEzOGEsIDB4M2MzODRjMjcpLAorICAg
ICAgICAgICBUT0JOKDB4N2E5MDRiZmQsIDB4NmZjNjYwYjEpLCBUT0JOKDB4ZWI2YzVkYjMsIDB4
Mjc3M2IyMWMpfSwKKyAgICAgICAgICB7VE9CTigweGMzNTBlZTY2LCAweDFjZGZlMDQ5KSwgVE9C
TigweDliYWFjMGNlLCAweDQ0NTQwZjI5KSwKKyAgICAgICAgICAgVE9CTigweGJjNTdiNmFiLCAw
eGE1ZWM2YWFkKSwgVE9CTigweDE2N2NlOGMzLCAweDBhN2MxYmFhKX19LAorICAgICAgICAge3tU
T0JOKDB4YjIzYTAzYTUsIDB4NTNmYjJiNTYpLCBUT0JOKDB4NmNlMTQxZTcsIDB4NGUwNTdmNzgp
LAorICAgICAgICAgICBUT0JOKDB4Nzk2NTI1YzMsIDB4ODllNDkwZDkpLCBUT0JOKDB4MGJjOTU3
MjUsIDB4YTMxYTdlNzUpfSwKKyAgICAgICAgICB7VE9CTigweDFlYzU2NzkxLCAweDEyMjBmZDA2
KSwgVE9CTigweDcxNmUzYTNjLCAweDQwOGIwYmQ2KSwKKyAgICAgICAgICAgVE9CTigweDMxY2Q2
YmY3LCAweGU4ZWJlYmE5KSwgVE9CTigweGE3MzI2Y2E2LCAweGJlZTZiNjcwKX19LAorICAgICAg
ICAge3tUT0JOKDB4M2Q5Zjg1MWMsIDB4Y2QwOTBjNDMpLCBUT0JOKDB4NTYxZThmMTMsIDB4ZjEy
YzM5ODgpLAorICAgICAgICAgICBUT0JOKDB4NTA0OTBiNmEsIDB4OTA0YjdiZTQpLCBUT0JOKDB4
NjE2OTBjZTEsIDB4MDQxMDczN2IpfSwKKyAgICAgICAgICB7VE9CTigweDI5OWU5YTM3LCAweDBm
MDA5MDUyKSwgVE9CTigweDI1ODc1OGYwLCAweGYwMjYwOTJlKSwKKyAgICAgICAgICAgVE9CTigw
eDlmYTI1NWYzLCAweGZkZmNkYzBmKSwgVE9CTigweGRiYzlmYjFmLCAweGMwZTFiY2QyKX19LAor
ICAgICAgICAge3tUT0JOKDB4MzVmOWRkNmUsIDB4MjQ2NTE4NDApLCBUT0JOKDB4ZGNhNDVhODQs
IDB4YTVjNTlhYmMpLAorICAgICAgICAgICBUT0JOKDB4MTAzZDM5NmYsIDB4ZWNjYTQ5MzgpLCBU
T0JOKDB4NDUzMmRhMGEsIDB4Yjk3YjNmMjkpfSwKKyAgICAgICAgICB7VE9CTigweGM0MTM1ZWE1
LCAweDE5OTlhNmJmKSwgVE9CTigweDNhYTk1MDVhLCAweDVlNmJmMmVlKSwKKyAgICAgICAgICAg
VE9CTigweGY3N2NlZjA2LCAweDNmNWJlMDkzKSwgVE9CTigweDk3ZDFhMGY4LCAweGE5NDMxNTJl
KX19LAorICAgICAgICAge3tUT0JOKDB4MmNiMGViYmEsIDB4MmUxYzIxZGQpLCBUT0JOKDB4ZjQx
YjI5ZmMsIDB4MmM2Nzk3YzQpLAorICAgICAgICAgICBUT0JOKDB4YzZlMTczMjEsIDB4YjMwMDEw
MWYpLCBUT0JOKDB4NDQyMmIwZTksIDB4ZDBkNzlhODkpfSwKKyAgICAgICAgICB7VE9CTigweDQ5
ZTQ5MDFjLCAweDkyZjFiZmM0KSwgVE9CTigweDA2YWIxZjhmLCAweGUxZTEwZWQ5KSwKKyAgICAg
ICAgICAgVE9CTigweDg0ZDM1NTc3LCAweGRiMjkyNmI4KSwgVE9CTigweGNhMzQ5ZDM5LCAweDM1
NmU4ZWMyKX19LAorICAgICAgICAge3tUT0JOKDB4NzBiNjNkMzIsIDB4MzQzYmYxYTkpLCBUT0JO
KDB4OGZkM2JkMjgsIDB4MzdkMWE2YjEpLAorICAgICAgICAgICBUT0JOKDB4MDQ1NDg3OWMsIDB4
MzE2ODY1YjQpLCBUT0JOKDB4ZWU5NTlmZjYsIDB4YzQ1OGVmYTIpfSwKKyAgICAgICAgICB7VE9C
TigweDA0NjFkY2Y4LCAweDk3MDZkYzNmKSwgVE9CTigweDczN2RiMGUyLCAweDE2NGU0YjJlKSwK
KyAgICAgICAgICAgVE9CTigweDA5MjYyNjgwLCAweDJmODg0M2M4KSwgVE9CTigweDU0NDk4YmJj
LCAweDc3NDVlNmY2KX19LAorICAgICAgICAge3tUT0JOKDB4MzU5NDczZmEsIDB4YTI5ZTI0YWYp
LCBUT0JOKDB4ZmNjM2M0NTQsIDB4NzBhYTg3YTEpLAorICAgICAgICAgICBUT0JOKDB4ZmQyYzRi
ZjUsIDB4MDA1NzNhY2UpLCBUT0JOKDB4YjY1YjUxNGUsIDB4MjhkZDE5NjUpfSwKKyAgICAgICAg
ICB7VE9CTigweGU0NmFlN2NmLCAweDIxOTNlMzkzKSwgVE9CTigweDYwZTlhNGUxLCAweGY1NDQ0
ZDk3KSwKKyAgICAgICAgICAgVE9CTigweGU3NTk0ZTk2LCAweDAwZmYzOGVkKSwgVE9CTigweDQz
ZDg0ZDJmLCAweDBhMGUwZjAyKX19LAorICAgICAgICAge3tUT0JOKDB4OGI2ZGIxNDEsIDB4ZWUz
OThhMjEpLCBUT0JOKDB4Yjg4YTU2YWUsIDB4ZTNiY2M1YmUpLAorICAgICAgICAgICBUT0JOKDB4
MGExYWE1MmYsIDB4MzczNDYwZWEpLCBUT0JOKDB4MjBkYTFhNTYsIDB4MTYwYmIxOWIpfSwKKyAg
ICAgICAgICB7VE9CTigweGZiNTQ5OTlkLCAweDY1YmYwMzg0KSwgVE9CTigweDcxYTE0ZDI0LCAw
eDVkNWExODBlKSwKKyAgICAgICAgICAgVE9CTigweGJjNDRkYjdiLCAweDIxNzM3YjA0KSwgVE9C
TigweGQ4NGZjYjE4LCAweDAxZGQ4ZTkyKX19LAorICAgICAgICAge3tUT0JOKDB4ODBkZTkzN2Is
IDB4ZmE0NGI0NzkpLCBUT0JOKDB4NTM1MDU0OTksIDB4NWM5OGZkNGYpLAorICAgICAgICAgICBU
T0JOKDB4MWVkYjEyYWIsIDB4MjhmMDg3MjcpLCBUT0JOKDB4NGM1OGI1ODIsIDB4YTVmM2VmNTMp
fSwKKyAgICAgICAgICB7VE9CTigweGJmYjIzNmQ4LCAweDgzMjdmMjQ2KSwgVE9CTigweGMzYTNi
ZmFhLCAweDRkN2RmMzIwKSwKKyAgICAgICAgICAgVE9CTigweGVjZDk2YzU5LCAweGI5NjAyNGYy
KSwgVE9CTigweGZjMjkzYTUzLCAweDdmNGUwNDMzKX19LAorICAgICAgICAge3tUT0JOKDB4NTM0
MTM1MmIsIDB4NWFjZjZlMTApLCBUT0JOKDB4YzUwMzQzZmQsIDB4YWZlNjUyYzMpLAorICAgICAg
ICAgICBUT0JOKDB4NGFmMzc5MmQsIDB4MTg1NzdhN2YpLCBUT0JOKDB4ZTFhNGM2MTcsIDB4YWYx
NjgyM2QpfSwKKyAgICAgICAgICB7VE9CTigweDliMjZkMGNkLCAweDMzNDI1ZDBhKSwgVE9CTigw
eDMwNjM5OWVkLCAweDliN2JjNDdmKSwKKyAgICAgICAgICAgVE9CTigweDJhNzkyZjMzLCAweDcw
NmJiMjBiKSwgVE9CTigweDMxMjE5NjE0LCAweDk4MTExMDU1KX19LAorICAgICAgICAge3tUT0JO
KDB4ODY0ZWMwNjQsIDB4ODdmNWQyOGIpLCBUT0JOKDB4MTEzOTJkOTEsIDB4OTYyMjc3ZmQpLAor
ICAgICAgICAgICBUT0JOKDB4YjVhYTc5NDIsIDB4YmI2YWVkNWYpLCBUT0JOKDB4MDgwMDk0ZGMs
IDB4NDdlNzk5ZDkpfSwKKyAgICAgICAgICB7VE9CTigweDRhZmE1ODhjLCAweDIwOGJhMTliKSwg
VE9CTigweGQzZTc1NzBmLCAweDg1MTJmMjg0KSwKKyAgICAgICAgICAgVE9CTigweGNiYWU2NGU2
LCAweDAyZjU3OTlhKSwgVE9CTigweGRlZWJlN2VmLCAweDUxNGI5NDkyKX19LAorICAgICAgICAg
e3tUT0JOKDB4MzAzMDBmOTgsIDB4ZTVjMjk4ZmYpLCBUT0JOKDB4MTdmNTYxYmUsIDB4MzY3ODM2
MWYpLAorICAgICAgICAgICBUT0JOKDB4ZjUyZmYzMTIsIDB4OThjYjlhMTYpLCBUT0JOKDB4NjIz
M2MzYmMsIDB4NTU2MmQ0OTApfSwKKyAgICAgICAgICB7VE9CTigweDdiZmExNWExLCAweDkyZTNh
MmNiKSwgVE9CTigweDk2MWJjZmQxLCAweGU2MzY1MTE5KSwKKyAgICAgICAgICAgVE9CTigweDNi
ZGQyOWJmLCAweDJjOGM1M2IxKSwgVE9CTigweDczOTcwNGRmLCAweDgyMjg0NGJhKX19LAorICAg
ICAgICAge3tUT0JOKDB4N2RhY2ZiNTgsIDB4N2U3Yjc1NGIpLCBUT0JOKDB4MjMzNjA3OTEsIDB4
YTgwNmM5YjkpLAorICAgICAgICAgICBUT0JOKDB4ZTdlYjg4YzksIDB4MjM1MDQ0NTIpLCBUT0JO
KDB4Mjk4M2U5OTYsIDB4ODUyYzE3ODMpfSwKKyAgICAgICAgICB7VE9CTigweGRkNGFlNTI5LCAw
eDk1OGQ4ODFkKSwgVE9CTigweDAyNmJhZTAzLCAweDI2MmM3YjNjKSwKKyAgICAgICAgICAgVE9C
TigweDNhNmY5MTkzLCAweDk2MGI1MmQxKSwgVE9CTigweGQwOTgwZjkwLCAweDkyNjk2Y2ZiKX19
LAorICAgICAgICAge3tUT0JOKDB4NGMxZjQyOGMsIDB4ZDVmMzA4NTEpLCBUT0JOKDB4OTRkZmVk
MjcsIDB4MmE0ZjY2MzApLAorICAgICAgICAgICBUT0JOKDB4NGRmNTM3NzIsIDB4ZmM1ZDQ4YTQp
LCBUT0JOKDB4ZGQyZDVhMmYsIDB4OTMzMjYwY2UpfSwKKyAgICAgICAgICB7VE9CTigweDU3NDEx
NWJkLCAweGQ0NGNjN2E1KSwgVE9CTigweDRiYTZiMjBkLCAweGJkMTI1MzNhKSwKKyAgICAgICAg
ICAgVE9CTigweDMwZTkzY2I4LCAweDI0MzA1N2M5KSwgVE9CTigweDc5NGM0ODZhLCAweDE0ZGUz
MjBlKX19LAorICAgICAgICAge3tUT0JOKDB4ZTkyNWQ0Y2UsIDB4ZjIxNDk2ZTQpLCBUT0JOKDB4
Zjk1MWQxOTgsIDB4ZWM2OTYzMzEpLAorICAgICAgICAgICBUT0JOKDB4OTgxMGUyZGUsIDB4M2U4
ZDgxMmYpLCBUT0JOKDB4ZDBhNDcyNTksIDB4Mzg5Mjk0YWIpfSwKKyAgICAgICAgICB7VE9CTigw
eDUxM2JhMmI1LCAweDBlM2JhYjY2KSwgVE9CTigweDQ2MmNhZmY1LCAweGFiYWQzMDZmKSwKKyAg
ICAgICAgICAgVE9CTigweGUyZGM2ZDU5LCAweGFmMDRjNDllKSwgVE9CTigweDFhZWI4NzUwLCAw
eGUwYjg0YjBiKX19LAorICAgICAgICAge3tUT0JOKDB4YzAzNGYxMmYsIDB4MmY3ZDBjYTIpLCBU
T0JOKDB4NmQyZTgxMjgsIDB4ZTA2YWNmMmYpLAorICAgICAgICAgICBUT0JOKDB4ODAxZjRmODMs
IDB4MjFmYWNjMmYpLCBUT0JOKDB4YTExNzBjMDMsIDB4ZjQwZWY2MDcpfSwKKyAgICAgICAgICB7
VE9CTigweGZlMGExZDRmLCAweDc4MDVhOTljKSwgVE9CTigweGJkZTU2YTM2LCAweGNjMjZhYmE1
KSwKKyAgICAgICAgICAgVE9CTigweDViMTYyOWQwLCAweDM1NTMxZjQwKSwgVE9CTigweGFjMjEy
YzJiLCAweDlhZmE2MTA4KX19LAorICAgICAgICAge3tUT0JOKDB4MzBhMDZiZjMsIDB4MTU2OTdi
ZTUpLCBUT0JOKDB4NmYwNTQ1ZGMsIDB4MmM2M2M3YzEpLAorICAgICAgICAgICBUT0JOKDB4NWQ4
Y2I4NDIsIDB4N2NjZGFkYWYpLCBUT0JOKDB4ZDUyZTM3OWIsIDB4YWM3MDE1YmIpfSwKKyAgICAg
ICAgICB7VE9CTigweGM0ZjU2MTQ3LCAweGY0NjJjMjNlKSwgVE9CTigweGQ0NGE0Mjk4LCAweDQ2
YmMyNGIwKSwKKyAgICAgICAgICAgVE9CTigweGJjNzNkMjNhLCAweGUyODU2ZDRmKSwgVE9CTigw
eDYxY2VkZDhjLCAweDA4MzJiY2RmKX19LAorICAgICAgICAge3tUT0JOKDB4NjA5NTM1NTYsIDB4
OTlmMjQxZDcpLCBUT0JOKDB4ZWU0YWRiZDcsIDB4MDAxYTM0OWQpLAorICAgICAgICAgICBUT0JO
KDB4MGIzNWJmNmEsIDB4YWE4OWU0OTEpLCBUT0JOKDB4N2YwMDc2ZjQsIDB4MTM2Zjc1NDYpfSwK
KyAgICAgICAgICB7VE9CTigweGQxOWExOGJhLCAweDkyNjRkYTNkKSwgVE9CTigweDZlYjJkMmNk
LCAweDYyYTdhMjhiKSwKKyAgICAgICAgICAgVE9CTigweGNkYmE5NDFmLCAweDg3NjFjOTcxKSwg
VE9CTigweDE1NTA1MThiLCAweGEzYmU0YTVkKX19LAorICAgICAgICAge3tUT0JOKDB4ZDBlOGUy
ZjAsIDB4NTdkMGI3MGMpLCBUT0JOKDB4ZWVhODYxMmUsIDB4Y2QxMzNiYTMpLAorICAgICAgICAg
ICBUT0JOKDB4ODE0NjcwZjAsIDB4NDQ0MTZhZWMpLCBUT0JOKDB4NDI0ZGI2YzMsIDB4MzA3NzUw
NjEpfSwKKyAgICAgICAgICB7VE9CTigweGQ5NjAzOWQxLCAweDE2MjEzZmQxKSwgVE9CTigweGM2
MWU3ZmE1LCAweDE4YTM0NzhmKSwKKyAgICAgICAgICAgVE9CTigweGE4MDViZGNjLCAweGNiMGM1
MDIxKSwgVE9CTigweGJkZDZmM2E4LCAweDBjYzYxNmRkKX19LAorICAgICAgICAge3tUT0JOKDB4
MDYwMDk2NjcsIDB4NWQ5N2Y3ZTIpLCBUT0JOKDB4MzFkYjBmYzEsIDB4YWYwYmY0YjYpLAorICAg
ICAgICAgICBUT0JOKDB4MjM2ODBlZDQsIDB4NTQ5MTYyN2EpLCBUT0JOKDB4Yjk5YTNjNjYsIDB4
N2Q3NDFmYjEpfSwKKyAgICAgICAgICB7VE9CTigweGU5YmI1ZjU1LCAweDM2YjFmZjkyKSwgVE9C
TigweDI5NzM4NTc3LCAweDUxMmIzODhkKSwKKyAgICAgICAgICAgVE9CTigweGRiOGEyY2U3LCAw
eDUwZmNmMjYzKSwgVE9CTigweDM4NTM0NmQ0LCAweDZjNGY3YjQ3KX19LAorICAgICAgICAge3tU
T0JOKDB4YmU4NmM1ZWYsIDB4MzE2MzFmOWUpLCBUT0JOKDB4YmY5MWRhMjEsIDB4MDNhNTdhMjkp
LAorICAgICAgICAgICBUT0JOKDB4YzNiMWY3OTYsIDB4N2IyM2Y4MjEpLCBUT0JOKDB4MGY3ZDAw
ZDIsIDB4NzcwZGIzNTQpfSwKKyAgICAgICAgICB7VE9CTigweDhmZmM2YzNiLCAweGQ4ZmU3OWRh
KSwgVE9CTigweGNjNWU4YzQwLCAweGQ1MjVjOTk2KSwKKyAgICAgICAgICAgVE9CTigweDQ2NDA5
OTFkLCAweGNmZmY2MzJhKSwgVE9CTigweDY0ZDk3ZThjLCAweDY3MTEyNTI4KX19LAorICAgICAg
ICAge3tUT0JOKDB4YzIzMmQ5NzMsIDB4MDJmMWNkMWUpLCBUT0JOKDB4Y2U4N2VhY2IsIDB4MWRk
MjEyYTQpLAorICAgICAgICAgICBUT0JOKDB4NmU0YzhjNzMsIDB4ZTY5ODAyZjcpLCBUT0JOKDB4
MTJlZjAyOTAsIDB4MWZmZmRkYmQpfSwKKyAgICAgICAgICB7VE9CTigweDk0MWVjNzRlLCAweDFi
Y2VhNmUyKSwgVE9CTigweGQwYjU0MDI0LCAweDNjYjkyY2JiKSwKKyAgICAgICAgICAgVE9CTigw
eDgwOWZiOWQ0LCAweDdlOGY5ZDA1KSwgVE9CTigweDNiZjE2MTU5LCAweGYyOTkyYWFlKX19LAor
ICAgICAgICAge3tUT0JOKDB4YWQ0MGYyNzksIDB4ZjhhN2E4MzgpLCBUT0JOKDB4MTFhZWE2MzEs
IDB4MDU2MTU2NjApLAorICAgICAgICAgICBUT0JOKDB4YmY1MmU2ZjEsIDB4YTAxZjZmYTEpLCBU
T0JOKDB4ZWYwNDY5OTUsIDB4M2RjMmFlYzkpfSwKKyAgICAgICAgICB7VE9CTigweDc4NWRiZWM5
LCAweGQ4MDgwNzExKSwgVE9CTigweGUxYWVjNjBhLCAweDlmZGVkZjc2KSwKKyAgICAgICAgICAg
VE9CTigweGVjZTc5N2I1LCAweGZhMjFjMTI2KSwgVE9CTigweGM2NmU4OThmLCAweDA1ZTUyNzMy
KX19LAorICAgICAgICAge3tUT0JOKDB4MzliYjY5YzQsIDB4MDg4MTFmZGIpLCBUT0JOKDB4OGJm
ZTFlZjgsIDB4MmZjN2YwODIpLAorICAgICAgICAgICBUT0JOKDB4YzhlN2EzOTMsIDB4MTc0ZjQx
MzgpLCBUT0JOKDB4ZmJhOGFkMWQsIDB4ZDU4ZDFmOTgpfSwKKyAgICAgICAgICB7VE9CTigweGJj
MjFkMGNlLCAweGJmZDJmZDViKSwgVE9CTigweDBiODM5YTgyLCAweDZlZTYwZDYxKSwKKyAgICAg
ICAgICAgVE9CTigweGFhY2Y3NjU4LCAweGFmZDIyMjUzKSwgVE9CTigweGI1MjZiZWQ4LCAweGFh
ZTM5NmIzKX19LAorICAgICAgICAge3tUT0JOKDB4Y2NjMWJiYzIsIDB4Mzg1NjQ0NjQpLCBUT0JO
KDB4OWUzZmY5NDcsIDB4OGM0NWJjNzMpLAorICAgICAgICAgICBUT0JOKDB4Y2RlOWJjYTMsIDB4
NTgxODhhNzgpLCBUT0JOKDB4MTM4YjhlZTAsIDB4ZDczYmY4ZjcpfSwKKyAgICAgICAgICB7VE9C
TigweDVjN2UyMzRjLCAweDQxMjNjNDg5KSwgVE9CTigweDY2ZTY5MzY4LCAweGZhNjQzMjk3KSwK
KyAgICAgICAgICAgVE9CTigweDA2MjllZWVlLCAweDM5YTE1ZmEzKSwgVE9CTigweDk1ZmFiODgx
LCAweGE5ZTJhOTI3KX19LAorICAgICAgICAge3tUT0JOKDB4YjI0OTcwMDcsIDB4ZWFmYmIxZTEp
LCBUT0JOKDB4ZDc1YzljZTYsIDB4ZTc1YjdhOTMpLAorICAgICAgICAgICBUT0JOKDB4MzU1ODM1
MmQsIDB4ZWZiNjhkNzgpLCBUT0JOKDB4YTJmMjY2OTksIDB4MjIzZjYzOTYpfSwKKyAgICAgICAg
ICB7VE9CTigweGViOTExZWNmLCAweGU0NjliMTdhKSwgVE9CTigweDYyNTQ1Nzc5LCAweGU3MmQz
ZWMyKSwKKyAgICAgICAgICAgVE9CTigweDhlYTQ3ZGU3LCAweDgyY2IxMTNmKSwgVE9CTigweGVi
ZTRiMDg2LCAweDRlMWZhOThkKX19LAorICAgICAgICAge3tUT0JOKDB4ZWMyZDVlZDcsIDB4OGNk
ZmVkYjEpLCBUT0JOKDB4YTUzNWMwNzcsIDB4ZmUyMTFhNzQpLAorICAgICAgICAgICBUT0JOKDB4
OTY3ODEwOWIsIDB4MTFkMjQ0YzUpLCBUT0JOKDB4ZjE3YzhiZmIsIDB4YmUyOTlhNzYpfSwKKyAg
ICAgICAgICB7VE9CTigweGI2NTE0MTJlLCAweGZiMTFmYmM0KSwgVE9CTigweGVhMGI1NDgyLCAw
eDk0YWIzZjY1KSwKKyAgICAgICAgICAgVE9CTigweGQ4ZGZmZDk1LCAweDBjZjc4MjQzKSwgVE9C
TigweDJlNzE5ZTU3LCAweGNlMDM2MWQ0KX19LAorICAgICAgICAge3tUT0JOKDB4OTAwN2YwODUs
IDB4MzA0ZGRjNWIpLCBUT0JOKDB4MDk1ZThjNmQsIDB4NGRhYmEyZWEpLAorICAgICAgICAgICBU
T0JOKDB4NWEzM2NkYjQsIDB4M2Y5ZDI4YTkpLCBUT0JOKDB4ODViOTVjZDgsIDB4ZTIyODMwMDMp
fSwKKyAgICAgICAgICB7VE9CTigweGJjZDZjODE5LCAweGI5NzQ0NzMzKSwgVE9CTigweDI5YzVm
NTM4LCAweGZjN2Y1NzgzKSwKKyAgICAgICAgICAgVE9CTigweDZjNDliMmZhLCAweGQ1OTAzOGU0
KSwgVE9CTigweDY4MzQ5Y2MxLCAweDNiYmUxMDE4KX19LAorICAgICAgICAge3tUT0JOKDB4Y2M0
OTBjMWQsIDB4MjE4MzBlZTUpLCBUT0JOKDB4MzZmOWM0ZWUsIDB4ZTliZmEyOTcpLAorICAgICAg
ICAgICBUT0JOKDB4NThmZDcyOTQsIDB4NDhkZTFhOTQpLCBUT0JOKDB4YWFkYjEzYTgsIDB4NGU4
ZjJjZGMpfSwKKyAgICAgICAgICB7VE9CTigweDUxNWVhYWEwLCAweDgxMzEzZGJhKSwgVE9CTigw
eGM3NmJiNDY4LCAweGMyMTUyZGQ4KSwKKyAgICAgICAgICAgVE9CTigweDM1N2Y4ZDc1LCAweGE2
NTNkYmY4KSwgVE9CTigweGU0ZDhjNGQxLCAweGIxNGFjMTQzKX19LAorICAgICAgICAge3tUT0JO
KDB4YmRiOGU2NzUsIDB4YjA1NWNiNDApLCBUT0JOKDB4ODk4ZjhlN2IsIDB4OTc3YjUxNjcpLAor
ICAgICAgICAgICBUT0JOKDB4ZWNjNjU2NTEsIDB4YjgyZmI4NjMpLCBUT0JOKDB4NTY1NDQ4MTQs
IDB4NmQ4OGYwMWYpfSwKKyAgICAgICAgICB7VE9CTigweGIwOTI4ZTk1LCAweDI2M2E3NWE5KSwg
VE9CTigweGNmYjY4MzZmLCAweDFhMjJmY2RhKSwKKyAgICAgICAgICAgVE9CTigweDY1MWQxNGRi
LCAweDNmM2JkMzdjKSwgVE9CTigweDFkMzgzN2ZiLCAweGI2YWQ0NjY0KX19LAorICAgICAgICAg
e3tUT0JOKDB4N2M1ZmI1MzgsIDB4ZmY0Zjk0YWIpLCBUT0JOKDB4NzI0M2M3MTIsIDB4NmQ3ZmI4
ZjIpLAorICAgICAgICAgICBUT0JOKDB4ZWYxM2Q2MGMsIDB4YTg1YzUyODcpLCBUT0JOKDB4MThj
ZmI3YzcsIDB4NGJiOGRkMWIpfSwKKyAgICAgICAgICB7VE9CTigweDgyZjliZmU2LCAweDcyOTA4
MjE5KSwgVE9CTigweDM1YzQ1OTJiLCAweDlkNTE0NGFiKSwKKyAgICAgICAgICAgVE9CTigweDUy
NzM0ZjM3LCAweDljZjRiNDJmKSwgVE9CTigweDZiYWM1NWU3LCAweDhjNjBkZGM0KX19LAorICAg
ICAgICAge3tUT0JOKDB4YjVjZDgxMWUsIDB4OTRkZWEwZjYpLCBUT0JOKDB4MjU5ZWNhZTQsIDB4
ZTE4Y2MxYTMpLAorICAgICAgICAgICBUT0JOKDB4NmEwZTgzNmUsIDB4MTVlNjYwZjgpLCBUT0JO
KDB4NmM2MzllYTYsIDB4MGUwMmJmZjIpfSwKKyAgICAgICAgICB7VE9CTigweDg3MjFiOGNiLCAw
eDdlMTAyNmZkKSwgVE9CTigweDllNzNiNTBiLCAweDYzMjYxOTQyKSwKKyAgICAgICAgICAgVE9C
TigweGI4YzcwOTc0LCAweDc3ZjAxZGEzKSwgVE9CTigweDE4MzllNmE2LCAweDgyNjhmNTdmKX19
LAorICAgICAgICAge3tUT0JOKDB4NTcxYjk0MTUsIDB4NTE1MGI4MDUpLCBUT0JOKDB4MTg5MjM4
OWUsIDB4ZjkyYzcwOTcpLAorICAgICAgICAgICBUT0JOKDB4OGQ2OWMxOGUsIDB4NGEwODRiOTUp
LCBUT0JOKDB4NzAxNGM1MTIsIDB4YmU1YjQ5NWMpfSwKKyAgICAgICAgICB7VE9CTigweDQ3ODBk
YjM2LCAweDFiMDc1MjNjKSwgVE9CTigweDJmNjIxOWNlLCAweDJjMWM2NGZhKSwKKyAgICAgICAg
ICAgVE9CTigweGMzOGI4MWIwLCAweDYwMmMxMDVhKSwgVE9CTigweGFiNGY0ZjIwLCAweDVkYzhl
MzYwKX19LAorICAgICAgICAge3tUT0JOKDB4MjBkM2M5ODIsIDB4Y2Y3ZDYyZDIpLCBUT0JOKDB4
MWYzNmUyOWQsIDB4MjNiYTgxNTApLAorICAgICAgICAgICBUT0JOKDB4NDhhZTBiZjAsIDB4OTI3
NjNmOWUpLCBUT0JOKDB4N2E1MjdlNmIsIDB4MWQzYTcwMDcpfSwKKyAgICAgICAgICB7VE9CTigw
eGI0YTg5MDk3LCAweDU4MWE4NWUzKSwgVE9CTigweDFmMWE1MjBmLCAweGRjMTU4YmU1KSwKKyAg
ICAgICAgICAgVE9CTigweGY5OGRiMzdkLCAweDE2N2Q3MjZlKSwgVE9CTigweDg4MDI3ODZlLCAw
eDExMTNlODYyKX19fSwKKyAgICAgICAge3t7VE9CTigweGVmYjIxNDllLCAweDM2ZjA5YWIwKSwg
VE9CTigweDAzZjE2M2NhLCAweDRhMTBiYjViKSwKKyAgICAgICAgICAgVE9CTigweGQwMjk3MDQ1
LCAweDA2ZTIwOTk4KSwgVE9CTigweDU2ZjBhZjAwLCAweDFiNWEzYmFiKX0sCisgICAgICAgICAg
e1RPQk4oMHg3YWY0Y2ZlYywgMHg3MDg4MGUwZCksIFRPQk4oMHg3MzMyYTY2ZiwgMHhiZTNkOTEz
ZiksCisgICAgICAgICAgIFRPQk4oMHgzMmU2Yzg0YSwgMHg3ZWNlYjRiZCksIFRPQk4oMHhlZGM0
YTc5YSwgMHg5YzIyOGY1NSl9fSwKKyAgICAgICAgIHt7VE9CTigweGMzN2M3ZGQwLCAweGM1NWM0
NDk2KSwgVE9CTigweGE2YTk2MzU3LCAweDI1YmJhYmQyKSwKKyAgICAgICAgICAgVE9CTigweDVi
N2U2M2YyLCAweGFkZDdmMzYzKSwgVE9CTigweDlkY2UzNzgyLCAweDJlNzNmMWRmKX0sCisgICAg
ICAgICAge1RPQk4oMHhlMWU1YTE2YSwgMHhiMmI5MWY3MSksIFRPQk4oMHhlNDQ4OTgyMywgMHg1
YmEwMTYzYyksCisgICAgICAgICAgIFRPQk4oMHhmMjc1OWMzMiwgMHhmNmU1MTVhZCksIFRPQk4o
MHhhNWUyZjFmOCwgMHg4NjE1ZWVjZil9fSwKKyAgICAgICAgIHt7VE9CTigweDc0NTE5YmU3LCAw
eGFiZGVkNTUxKSwgVE9CTigweDAzZDM1OGI4LCAweGM4Yjc0NDEwKSwKKyAgICAgICAgICAgVE9C
TigweDRkMDBiMTBiLCAweDBlMTBkOWE5KSwgVE9CTigweDYzOTJiMGIxLCAweDI4ZGE1MmI3KX0s
CisgICAgICAgICAge1RPQk4oMHg2NzQ0YTI5OCwgMHgwYjc1YzkwNCksIFRPQk4oMHhjMzA1YjBh
ZSwgMHhhOGY3Zjk2YyksCisgICAgICAgICAgIFRPQk4oMHgwNDJlNDIxZCwgMHgxODJjZjkzMiks
IFRPQk4oMHhmNmZjNWQ1MCwgMHg5ZTQ2MzZjYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDc5NTg0
N2M5LCAweGQ2NGNjNzhjKSwgVE9CTigweDZjNTA2MjFiLCAweDliNmNiMjdiKSwKKyAgICAgICAg
ICAgVE9CTigweDA3MDk5YmY4LCAweGRmODAyMmFiKSwgVE9CTigweDQ4Zjg2MmViLCAweGMwNGVk
YTFkKX0sCisgICAgICAgICAge1RPQk4oMHhkMTI3MzJlZCwgMHhlMTYwM2MxNiksIFRPQk4oMHgx
OWE4MGUwZiwgMHg1YzlhOTQ1MCksCisgICAgICAgICAgIFRPQk4oMHhlMjI1N2Y1NCwgMHhiNDI5
YjRmYyksIFRPQk4oMHg2NmQzYjJjNiwgMHg0NTQ2MDUxNSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDZjYTRmODdlLCAweDgyMmUzN2JlKSwgVE9CTigweDczZjIzN2I0LCAweDI1M2JkYTRlKSwKKyAg
ICAgICAgICAgVE9CTigweGY3NDdmM2EyLCAweDQxMTkwYWViKSwgVE9CTigweGYwNmZhMzZmLCAw
eDgwNGNmMjg0KX0sCisgICAgICAgICAge1RPQk4oMHgwYTZiYmI2ZSwgMHhmYzYyMWMxMiksIFRP
Qk4oMHg1ZDYyNGI2NCwgMHg0MGI4MGVjNiksCisgICAgICAgICAgIFRPQk4oMHg0YjA3MjQyNSwg
MHg3YmE1NTZmMyksIFRPQk4oMHg3ZmEwYzM1NCwgMHgzZTJkMjBhOCl9fSwKKyAgICAgICAgIHt7
VE9CTigweGU5MjFmYTMxLCAweGUzMjI5ZDQxKSwgVE9CTigweGE5MjljNjUyLCAweDk0NTMxYmQ0
KSwKKyAgICAgICAgICAgVE9CTigweDg0MTU2MDI3LCAweGE2ZDM4MjA5KSwgVE9CTigweGYzZDY5
ZjczLCAweDZiZGI5N2JkKX0sCisgICAgICAgICAge1RPQk4oMHg4OTA2ZDE5YSwgMHgxNjgzMzYz
MSksIFRPQk4oMHg2OGEzNGMyZSwgMHgwM2Q1MWJlMyksCisgICAgICAgICAgIFRPQk4oMHhjYjU5
NTgzYiwgMHgwZTUxMWNkOCksIFRPQk4oMHg5OWNlNmJmZCwgMHhmZGMxMzJhOCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDNmYWNkYWFhLCAweGZmY2RiNDYzKSwgVE9CTigweDY1OGJiYzFhLCAweDM0
YTM4YjA4KSwKKyAgICAgICAgICAgVE9CTigweDEyYTgwMWY4LCAweGYxYTkwNzhkKSwgVE9CTigw
eDE1NjdiY2Y5LCAweDZhYjg1NWRlKX0sCisgICAgICAgICAge1RPQk4oMHhlMDg0OThlMCwgMHgz
NTcyMzU5YiksIFRPQk4oMHhjZjAzNTNlNSwgMHg4NjU5ZTY4YiksCisgICAgICAgICAgIFRPQk4o
MHhiYjg2ZTljOCwgMHg3ZDIzODA3YyksIFRPQk4oMHhiYzA4NzI4ZCwgMHgyMTk4ZThhMil9fSwK
KyAgICAgICAgIHt7VE9CTigweDhkZTJiN2JjLCAweDQ1M2NhZGQ2KSwgVE9CTigweDIwMzkwMGE3
LCAweGJjMGJjMWY4KSwKKyAgICAgICAgICAgVE9CTigweGJjZDg2ZTQ3LCAweGE2YWJkM2FmKSwg
VE9CTigweDkxMWNhYzEyLCAweDg1MDJlZmZiKX0sCisgICAgICAgICAge1RPQk4oMHgyZDU1MDI0
MiwgMHhlYzk2NTQ2OSksIFRPQk4oMHgwZTlmNzY5MiwgMHgyOWUwMDE3ZSksCisgICAgICAgICAg
IFRPQk4oMHg2MzNmMDc4ZiwgMHg2NTk3OTg4NSksIFRPQk4oMHhmYjg3ZDQ0OSwgMHg0Y2Y3NTFl
Zil9fSwKKyAgICAgICAgIHt7VE9CTigweGUxNzkwZTRiLCAweGZjMjU0MTlhKSwgVE9CTigweDM2
NDY3MjAzLCAweDRiZmYzY2ZkKSwKKyAgICAgICAgICAgVE9CTigweGM4ZGI2Mzg2LCAweDI1YjZl
ODNmKSwgVE9CTigweDZjYzY5ZjIzLCAweDZjYWQ2ZmQyKX0sCisgICAgICAgICAge1RPQk4oMHgw
MjE5ZTQ1YSwgMHg2YmM2OGJiOSksIFRPQk4oMHhlNDNkNzliNiwgMHgyOTdmNzMzNCksCisgICAg
ICAgICAgIFRPQk4oMHg3ZDQ0NTM2OCwgMHg0NjVkYzk3YyksIFRPQk4oMHg0YjllZWEzMiwgMHgy
YTBiOTQ5YSl9fSwKKyAgICAgICAgIHt7VE9CTigweDFiOTZjNmJhLCAweDYxMDJkMDIxKSwgVE9C
TigweGVhYWZhYzc4LCAweDJmNDQ2MWVhKSwKKyAgICAgICAgICAgVE9CTigweGQ0Yjg1YzQxLCAw
eGM0OWYxOWE4KSwgVE9CTigweDI3NWMyOGU0LCAweGNmNTM4ODc1KX0sCisgICAgICAgICAge1RP
Qk4oMHgzNTQ1MWE5ZCwgMHhkZDJlNTRlMCksIFRPQk4oMHg2OTkxYWRiNSwgMHgwNjA1NjE4Yiks
CisgICAgICAgICAgIFRPQk4oMHg1YjhiNGJjZCwgMHg3YjM2Y2QyNCksIFRPQk4oMHgzNzJhNGY4
YywgMHg1NmYzNzIxNil9fSwKKyAgICAgICAgIHt7VE9CTigweGM4OTBiZDczLCAweGE2YTVkYTYw
KSwgVE9CTigweDZmMDgzZGEwLCAweGRjNGM5ZmYwKSwKKyAgICAgICAgICAgVE9CTigweGY0ZTE0
ZDk0LCAweGYwNTM2ZTU3KSwgVE9CTigweGY5ZWUxZWRhLCAweGFhZWM4MjQzKX0sCisgICAgICAg
ICAge1RPQk4oMHg1NzEyNDFlYywgMHg4YmRjZjhlNyksIFRPQk4oMHhhNWRiODI3MSwgMHgwYjA0
MWUyNiksCisgICAgICAgICAgIFRPQk4oMHg5YTBiOWE5OSwgMHhlM2ZmZjA0MCksIFRPQk4oMHhj
YWFmMjFkZCwgMHg3YzI3MTIwMil9fSwKKyAgICAgICAgIHt7VE9CTigweGI0ZTJiMmUxLCAweDRm
MGRkMmU4KSwgVE9CTigweGU3N2U3YzRmLCAweDBhMzc3YWM3KSwKKyAgICAgICAgICAgVE9CTigw
eDY5MjAyYzNmLCAweDBkN2EyMTk4KSwgVE9CTigweGY3NTliN2ZmLCAweDI4MjAwZWI4KX0sCisg
ICAgICAgICAge1RPQk4oMHhjODc1MjZlZCwgMHhkY2ZlMzE0ZSksIFRPQk4oMHhlYjg0YzUyNCwg
MHg1M2Q1Y2Y5OSksCisgICAgICAgICAgIFRPQk4oMHhiMWI1MmFjZSwgMHg1MTUxMzhiNiksIFRP
Qk4oMHg1YWE3ZmY4YywgMHgyM2ZjYTNmNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGZmMGIxM2Mz
LCAweGI5NzkxYTI2KSwgVE9CTigweDk2MDAyMmRhLCAweGNkZDU4YjE2KSwKKyAgICAgICAgICAg
VE9CTigweGRiZDU1YzkyLCAweDU3YWFkMmRlKSwgVE9CTigweDNiYWFhYWEzLCAweGYzMGZlNjE5
KX0sCisgICAgICAgICAge1RPQk4oMHg5YTRiMjM0NiwgMHgwZDg4MWVmZCksIFRPQk4oMHg1MDY0
MTZjMCwgMHg0NjMyNWUyYSksCisgICAgICAgICAgIFRPQk4oMHg5MTM4MWU3NiwgMHgwMzVjMThk
NCksIFRPQk4oMHhiM2JiNjhiZSwgMHhmMjc4MTdiMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDE1
YmZiOGJmLCAweDUxMTZmOTM3KSwgVE9CTigweDdjNjRhNTg2LCAweGMxMjY4OTQzKSwKKyAgICAg
ICAgICAgVE9CTigweDcxZTI1Y2MzLCAweDg0MTlhMmM4KSwgVE9CTigweDlmZDZiMGM0LCAweDgz
MzVmNDYzKX0sCisgICAgICAgICAge1RPQk4oMHg0YmYwYmEzYywgMHhlOGVlMGUwZSksIFRPQk4o
MHg2ZjZmYmE2MCwgMHgyOThjMjFmYSksCisgICAgICAgICAgIFRPQk4oMHg1N2Q1N2IzOSwgMHhh
ZTY2YmVlMCksIFRPQk4oMHgyOTJkNTEzMCwgMHgyMjY3MjU0NCl9fSwKKyAgICAgICAgIHt7VE9C
TigweGY0NTExMDVkLCAweGJhYjA5M2IzKSwgVE9CTigweDAxMmY1OWI5LCAweDAyODM5OTg2KSwK
KyAgICAgICAgICAgVE9CTigweDhhOTE1ODAyLCAweDM0NzRhODljKSwgVE9CTigweDA0OGM5MTlj
LCAweDJkZTAzZTk3KX0sCisgICAgICAgICAge1RPQk4oMHhjNDc2YTJiNSwgMHg5MTA3MWNkNSks
IFRPQk4oMHg3OTFlZDg5YSwgMHgwMzQ5NzBhNSksCisgICAgICAgICAgIFRPQk4oMHg4OWJkOTA0
MiwgMHhlMWI3OTk0YiksIFRPQk4oMHg4ZWFmNTE3OSwgMHhhMTA1N2ZmZCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDYwNjZlMmEyLCAweGQ1NTFlZTEwKSwgVE9CTigweDg3YThmMWQ4LCAweDcyN2Uw
OWE2KSwKKyAgICAgICAgICAgVE9CTigweDAwZDA4YmFiLCAweDJjMDExNDhkKSwgVE9CTigweDZk
YThlNGYxLCAweDQyNGYzM2ZlKX0sCisgICAgICAgICAge1RPQk4oMHg0NjZkMTdmMCwgMHhjZjlh
NGU3MSksIFRPQk4oMHhmZjUwMjAxMCwgMHgzYmY1Y2IxOSksCisgICAgICAgICAgIFRPQk4oMHhk
Y2NmOTdkOCwgMHhkMDYyZWNjMCksIFRPQk4oMHg4MGMwZDlhZiwgMHg4MWQ4MGFjNCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGU4Nzc3MWQ4LCAweDAzM2YyODc2KSwgVE9CTigweGIwMTg2ZWM2LCAw
eDdkNWNjM2RiKSwKKyAgICAgICAgICAgVE9CTigweDU4ZThiYjgwLCAweDNiYzliYzFkKSwgVE9C
TigweDRkMTM5NWNjLCAweDZmNmVmNjBlKX0sCisgICAgICAgICAge1RPQk4oMHhhNzNjNjJkNiwg
MHgxODYyNDRhMCksIFRPQk4oMHg5MThlNWYyMywgMHgxMTBhNWI1MyksCisgICAgICAgICAgIFRP
Qk4oMHhlZDQ4NzhjYSwgMHg3NDFiN2VhYiksIFRPQk4oMHgzMDM4ZDcxYSwgMHhkYmUwM2U1MSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDg0MDIwNGI3LCAweGE5M2MzMjQ2KSwgVE9CTigweDIxYWI2
MDY5LCAweGEwYjliNGNkKSwKKyAgICAgICAgICAgVE9CTigweGY1ZmE2ZTJiLCAweGIxZDY0MjE4
KSwgVE9CTigweDFkZTZhZDBlLCAweGYzZDU2MTkxKX0sCisgICAgICAgICAge1RPQk4oMHg1NzBh
YWE4OCwgMHhmZjE5MjljNyksIFRPQk4oMHhjNmRmNGM2YiwgMHg2NDBlODdiNSksCisgICAgICAg
ICAgIFRPQk4oMHhkZThhNzRmMiwgMHhjNjVmMGNjYyksIFRPQk4oMHg4Yjk3MmZkNSwgMHhlNmY2
Y2MwMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDNmZmYzNmI2LCAweDBiODQ2NTMxKSwgVE9CTigw
eGJhN2U0NWU2LCAweDEwYTVlNDc1KSwKKyAgICAgICAgICAgVE9CTigweDg0YTFkMTBlLCAweDQx
NDViNmM1KSwgVE9CTigweGYxZjdmOTFhLCAweDVlMDQ2ZDlkKX0sCisgICAgICAgICAge1RPQk4o
MHgwMzE3YTY5MiwgMHg0NGRlOTBkNyksIFRPQk4oMHg5NTFhMWQ0YSwgMHhmMTk5YzE1ZSksCisg
ICAgICAgICAgIFRPQk4oMHg5MWY3ODA0NiwgMHhjOWQ3M2RlYiksIFRPQk4oMHg3NGM4MjgyOCwg
MHhmYWI4MjI0Zil9fSwKKyAgICAgICAgIHt7VE9CTigweGFhNjc3OGZjLCAweGU3NTYwYjkwKSwg
VE9CTigweGI0MDczZTYxLCAweGE3ZTgyNGNlKSwKKyAgICAgICAgICAgVE9CTigweGZmMGQ2OTNj
LCAweGQ2NDJlYmE4KSwgVE9CTigweDdjZTJlNTdhLCAweDVkY2NlZjM4KX0sCisgICAgICAgICAg
e1RPQk4oMHg4OWMyYzc4OSwgMHgxZGYxYWQ0NiksIFRPQk4oMHg4M2EwNjkyMiwgMHgwOTgzNDZm
ZCksCisgICAgICAgICAgIFRPQk4oMHgyZDcxNWQ3MiwgMHhkYTJmYzE3NyksIFRPQk4oMHg3YjZk
ZDcxZCwgMHg4NWI2Y2YxZCl9fSwKKyAgICAgICAgIHt7VE9CTigweGM2MGE2ZDBhLCAweDczZmE5
Y2IwKSwgVE9CTigweGVkZDM5OTJlLCAweDMyOGJmNWE5KSwKKyAgICAgICAgICAgVE9CTigweGMz
ODBkZGQwLCAweDgzMmM4YzgyKSwgVE9CTigweGQxODJkNDEwLCAweGEyYTBiZjUwKX0sCisgICAg
ICAgICAge1RPQk4oMHg3ZDlkNzQzOCwgMHhkOWE1MjhkYiksIFRPQk4oMHhlOGIxYTBlOSwgMHhj
YWY1Mzk5NCksCisgICAgICAgICAgIFRPQk4oMHhkZGQ2ZTVmZSwgMHgwZTE5OTg3YyksIFRPQk4o
MHhhY2I4ZGYwMywgMHgxOTBiMDU5ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDUzNzAzYTMyLCAw
eDgzMDAxMjlmKSwgVE9CTigweDFmNjM3NjYyLCAweDY4YzQzYmZkKSwKKyAgICAgICAgICAgVE9C
TigweGJjYmQxOTEzLCAweDAwZTU0MDUxKSwgVE9CTigweDgxMmZjYzYyLCAweDdiZjVhOGM1KX0s
CisgICAgICAgICAge1RPQk4oMHgzZjk2OWQ1ZiwgMHgyOWZiODVkYSksIFRPQk4oMHg3MmY0ZTAw
YSwgMHg2OTQ3NTllOCksCisgICAgICAgICAgIFRPQk4oMHg0MjZiNmU1MiwgMHg3OTA3MjZiNyks
IFRPQk4oMHg2MTdiYmM4NywgMHgzYmRiYjIwOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDUxMWY4
YmI5LCAweDk3YWVlMzE3KSwgVE9CTigweDgxMmE0MDk2LCAweGU4MTUzNmE4KSwKKyAgICAgICAg
ICAgVE9CTigweDEzN2RmZTU5LCAweDNhYzA5YjliKSwgVE9CTigweDA2ODIyMzhmLCAweGJhOGM5
YTdhKX0sCisgICAgICAgICAge1RPQk4oMHg3MDcyZWFkNiwgMHhhZWNjYjRiZCksIFRPQk4oMHg2
YTM0ZTlhYSwgMHg2OTJiYTYzMyksCisgICAgICAgICAgIFRPQk4oMHhjODJlYWVjMiwgMHg2ZmZm
OWQzMyksIFRPQk4oMHhmYjc1MzUxMiwgMHgxZDRkMmI2Mil9fSwKKyAgICAgICAgIHt7VE9CTigw
eDFhMDQ0NWZmLCAweDFkN2FhZGFiKSwgVE9CTigweDY1ZDM4MjYwLCAweGQ1ZjZhNjdjKSwKKyAg
ICAgICAgICAgVE9CTigweDZlNjJmYjA4LCAweDkxY2ZiMjZmKSwgVE9CTigweGVmMWUwZmE1LCAw
eDVjN2Q5MWQ2KX0sCisgICAgICAgICAge1RPQk4oMHg0N2U3YzdiYSwgMHgzM2RiNzJjZCksIFRP
Qk4oMHgwMTdjYmMwOSwgMHhmYTdjNzRiMiksCisgICAgICAgICAgIFRPQk4oMHgzYzkzMTU5MCwg
MHhmNTBhNTAzYyksIFRPQk4oMHhjYWM1NGY2MCwgMHg2MTZiYWE0Mil9fSwKKyAgICAgICAgIHt7
VE9CTigweDliNmNkMzgwLCAweGIyMzY5ZjBmKSwgVE9CTigweDk3ZDNhNzBkLCAweDIzYzc2MTUx
KSwKKyAgICAgICAgICAgVE9CTigweDVmOWRkNmZjLCAweDk4NjJhOWM2KSwgVE9CTigweDA0NGM0
YWIyLCAweDEyMzEyZjUxKX0sCisgICAgICAgICAge1RPQk4oMHgwMzVlYTBmZCwgMHg4MzRhMmRk
YyksIFRPQk4oMHg0OWU2Yjg2MiwgMHhjYzdiODI2ZCksCisgICAgICAgICAgIFRPQk4oMHhiMDNk
Njg4MywgMHg2MmZjZTQ5MCksIFRPQk4oMHg2MmYyNDk3YSwgMHhiMzdlMzZlOSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDA0YjAwNWI2LCAweGM2NDU4MjkzKSwgVE9CTigweDM2YmI1Mjc2LCAweGU4
ZDEwYWY3KSwKKyAgICAgICAgICAgVE9CTigweGFjZjJkYzEzLCAweDhlZTYxN2I4KSwgVE9CTigw
eDQ3MGQyZDM1LCAweGIwMDRiM2Q0KX0sCisgICAgICAgICAge1RPQk4oMHgwNjc5MDgzMiwgMHhm
ZWViMWI3NyksIFRPQk4oMHgyYmI3NWMzOSwgMHg4NTY1N2Y5YyksCisgICAgICAgICAgIFRPQk4o
MHhkNzBiZDRlZCwgMHhjMGY2MDAwNCksIFRPQk4oMHhmZTc5N2VjYywgMHgyMTliMDE4Yil9fSwK
KyAgICAgICAgIHt7VE9CTigweDliNWJlYzJhLCAweDc1M2FlYmNjKSwgVE9CTigweGRhZjlmM2Rj
LCAweGM5MzllY2E1KSwKKyAgICAgICAgICAgVE9CTigweGQ2YmM2ODMzLCAweGQwOTVhZDA5KSwg
VE9CTigweDk4YWJkZDUxLCAweGRhYTRkMmZjKX0sCisgICAgICAgICAge1RPQk4oMHhkOTg0MGEz
MSwgMHg4ZDE2OGJlNSksIFRPQk4oMHhjZjdjMTBlMCwgMHgyMzI1YTIzYyksCisgICAgICAgICAg
IFRPQk4oMHhhNWMwMmFhMCwgMHg3ZTZlY2ZhZiksIFRPQk4oMHgyNDYyZTdlNiwgMHhiNWJmZGYx
OCl9fSwKKyAgICAgICAgIHt7VE9CTigweGFiMmQ4YThiLCAweGEwY2MzZjEyKSwgVE9CTigweDY4
ZGQ0ODVkLCAweGJjNjcyYTI5KSwKKyAgICAgICAgICAgVE9CTigweDcyMDM5NzUyLCAweDU5NmYy
Y2QzKSwgVE9CTigweDVkM2VlYTY3LCAweGEwY2YzZDhkKX0sCisgICAgICAgICAge1RPQk4oMHg4
MTBhMWE4MSwgMHhlNjYwMjY3MSksIFRPQk4oMHg4ZjE0NGE0MCwgMHgxNDAyNmMwYyksCisgICAg
ICAgICAgIFRPQk4oMHhiYzc1M2E2ZCwgMHg3NmI1MGY4NSksIFRPQk4oMHhjNGRjMjFlOCwgMHg2
NDVjZDRhNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGM1MjYyZGVhLCAweDUyMWQwMzc4KSwgVE9C
TigweDgwMmI4ZTBlLCAweDA1MDExYzZmKSwKKyAgICAgICAgICAgVE9CTigweDFiYTE5Y2JiLCAw
eDBiNGMxOWVhKSwgVE9CTigweDIxZGI2NGI1LCAweGViZjBhYWVjKX0sCisgICAgICAgICAge1RP
Qk4oMHgxZjM5NGVlOSwgMHg3MDM0MmY5ZCksIFRPQk4oMHg5M2ExMGFlZSwgMHgxYmM0NGExNCks
CisgICAgICAgICAgIFRPQk4oMHhhN2VlZDMxYiwgMHgzZWZkMGJhYSksIFRPQk4oMHg2ZTdjODI0
ZSwgMHgxZDE1NGU2NSl9fSwKKyAgICAgICAgIHt7VE9CTigweGVlMjNmYTgxLCAweDk5NjZlN2Vl
KSwgVE9CTigweDY0ZWM0YWE4LCAweDA1Yjc5MjBkKSwKKyAgICAgICAgICAgVE9CTigweDJkNDQ0
NjJkLCAweDJkOTBhYWQ0KSwgVE9CTigweGY0NGRkMTk1LCAweGRmMjc3YWQ1KX0sCisgICAgICAg
ICAge1RPQk4oMHg4ZDY0NzFmMSwgMHhiYjQ2YjZhMSksIFRPQk4oMHgxZTY1ZDMxMywgMHhmZDg4
NTA5MCksCisgICAgICAgICAgIFRPQk4oMHgzM2E4MDBmNSwgMHgxM2E5NzdiNCksIFRPQk4oMHhh
Y2E5ZDcyMSwgMHgwNzk3ZTFlZil9fSwKKyAgICAgICAgIHt7VE9CTigweDlhNWE4NWEwLCAweGZj
ZmY2YTE3KSwgVE9CTigweDk5NzBhM2YzLCAweDFlY2E3Y2VlKSwKKyAgICAgICAgICAgVE9CTigw
eGJiOWYwZDZiLCAweGM5NTA0YmUzKSwgVE9CTigweGUwYzUwNGJlLCAweGFkZDI0ZWUyKX0sCisg
ICAgICAgICAge1RPQk4oMHg3ZTA5ZDk1NiwgMHg3N2ZjYzJmNCksIFRPQk4oMHhlZjFhNTIyNywg
MHg2NWJiNWZjNCksCisgICAgICAgICAgIFRPQk4oMHgxNDVkNGZiMSwgMHg4YjkyODZhYSksIFRP
Qk4oMHg2NmZkMGM1ZCwgMHg2NjQ5MDI4Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDk4ODU3Y2Vi
LCAweDFiZjQ1ODFjKSwgVE9CTigweGU2MzVlMTg2LCAweGFjYTdiMTY2KSwKKyAgICAgICAgICAg
VE9CTigweDI3OGRkZDIyLCAweDY1OTcyMmFjKSwgVE9CTigweGEwOTAzYzRjLCAweDFkYjY4MDA3
KX0sCisgICAgICAgICAge1RPQk4oMHgzNjZlNDU4OSwgMHg0OGYyMTQwMiksIFRPQk4oMHgzMWI0
OWMxNCwgMHhiOTZhYmRhMiksCisgICAgICAgICAgIFRPQk4oMHgzMjljNGIwOSwgMHhlMDQwMzE5
MCksIFRPQk4oMHg5NzE5N2NhMywgMHhkMjlmNDNmZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDgw
NzNkZDFlLCAweDI3NDk4M2Q4KSwgVE9CTigweGRhMWEzYmRlLCAweDU1NzE3YzhmKSwKKyAgICAg
ICAgICAgVE9CTigweGZkM2Q0ZGEyLCAweDAzNjFmOWQxKSwgVE9CTigweDEzMzJkMDgxLCAweDRj
N2RlMWNlKX0sCisgICAgICAgICAge1RPQk4oMHg5YjdlZjdhMywgMHhhYTZkMGUxMCksIFRPQk4o
MHgxN2RiMmU3MywgMHhmNTRmMWM0YSksCisgICAgICAgICAgIFRPQk4oMHhhZjNkZmZhZSwgMHg0
Y2QzNTU2NyksIFRPQk4oMHhhYWEyZjQwNiwgMHhlNTZmNGU3MSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDg5NjY3NTllLCAweDdhY2UzZmM3KSwgVE9CTigweDk1OTRlYWNmLCAweDQ1YThkOGM2KSwK
KyAgICAgICAgICAgVE9CTigweDhkZTNiZDhiLCAweDkxODM0ZTBlKSwgVE9CTigweGFmZTRjYTUz
LCAweDU0OGMwNDIxKX0sCisgICAgICAgICAge1RPQk4oMHhmZGQ3ZTg1NiwgMHhlNmVlODFjNiks
IFRPQk4oMHg4ZjY3MWJlYiwgMHg2Yjg5MWEzYSksCisgICAgICAgICAgIFRPQk4oMHhmN2E1OGYy
YiwgMHhmYWU2MzgyOSksIFRPQk4oMHg5YWIxODZmYiwgMHg5YzExYWM5Zil9fSwKKyAgICAgICAg
IHt7VE9CTigweDhkNmViMzY5LCAweDEwYjViZTc2KSwgVE9CTigweDA0NmI3NzM5LCAweGZiMDQw
YmNkKSwKKyAgICAgICAgICAgVE9CTigweGNjYjQ1MjlmLCAweGNiNzNkZTg4KSwgVE9CTigweDFk
ZjBmZWZjLCAweGNmMjZiZTAzKX0sCisgICAgICAgICAge1RPQk4oMHhhZDc3NTdhNiwgMHhiY2Zj
ZDAyNyksIFRPQk4oMHhhODc4NmM3NSwgMHhiYjMxNjVjYSksCisgICAgICAgICAgIFRPQk4oMHhl
OWRiMWUzNCwgMHg3ZTk5YTRkOSksIFRPQk4oMHg5OWVlODZkZiwgMHhiMDZjNTA0Yil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDViN2MyZGRkLCAweGMxNWM5ZjBhKSwgVE9CTigweGRmODdhNzM0LCAw
eDQyOTU5ODllKSwKKyAgICAgICAgICAgVE9CTigweDU5ZWNlNDdjLCAweDAzZDA4ZmRhKSwgVE9C
TigweGIwNzRkM2RkLCAweGFkNWZjNzAyKX0sCisgICAgICAgICAge1RPQk4oMHgyMDQwNzkwMywg
MHg1MWEwMzc3NiksIFRPQk4oMHgyYmIxZjc3YiwgMHgyYTYwODAwNyksCisgICAgICAgICAgIFRP
Qk4oMHgyNWM1OGY0ZiwgMHhlMTE1MzE4NSksIFRPQk4oMHhlNmRmNjJmNiwgMHg3NjZlNjQ0Nyl9
fSwKKyAgICAgICAgIHt7VE9CTigweGVmYjNkMWJlLCAweGVkNTEyNzVhKSwgVE9CTigweDVkZTQ3
ZGM3LCAweDJmMGY0ODNmKSwKKyAgICAgICAgICAgVE9CTigweDc5MzJkOThlLCAweDk3YzJiZWRm
KSwgVE9CTigweGQ1YzExOTI3LCAweDAyMTlmOGExKX0sCisgICAgICAgICAge1RPQk4oMHg5ZDc1
MTIwMCwgMHhhNzNhMjk0ZSksIFRPQk4oMHg1Zjg4NDM0YSwgMHg5ZGMyMDE3MiksCisgICAgICAg
ICAgIFRPQk4oMHhkMjhkOWZkMywgMHhhMjZmNTA2YSksIFRPQk4oMHhhODkwY2QzMSwgMHg5ZDFk
Y2Q0OCl9fSwKKyAgICAgICAgIHt7VE9CTigweDBhZWJhZWMxLCAweDcwZjRkM2I0KSwgVE9CTigw
eGZkMWExMzY5LCAweDBmZmM4ZDAwKSwKKyAgICAgICAgICAgVE9CTigweGI5ZDljMjQwLCAweDU3
ZDU3ODM4KSwgVE9CTigweDQ1OTI5ZDI2LCAweDY4YmFjMzYxKX0sCisgICAgICAgICAge1RPQk4o
MHg1YTJjZDA2MCwgMHgyNWIxNWNhNiksIFRPQk4oMHg0YjNjODNlMSwgMHg2ZTQ3NDQ0NiksCisg
ICAgICAgICAgIFRPQk4oMHgxYWFjNzU3OCwgMHhlZTFlNTEzNCksIFRPQk4oMHhhNDE4ZjVkNiwg
MHhjOTFlMmY0MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDY5MzZmYzhhLCAweDIxM2VkNjhiKSwg
VE9CTigweDg2MGFlN2VkLCAweDUxMGE1MjI0KSwKKyAgICAgICAgICAgVE9CTigweDYzNjYwMzM1
LCAweGRlZjA5YjUzKSwgVE9CTigweDY0MWIyODk3LCAweGNkNzljOThkKX0sCisgICAgICAgICAg
e1RPQk4oMHgyOWJkMzhlMSwgMHgwMTExMGYzNSksIFRPQk4oMHg3OWMyNmY0MiwgMHg2NDhiMTkz
NyksCisgICAgICAgICAgIFRPQk4oMHg2NGRhZTUxOSwgMHg5ZDkxNjRmNCksIFRPQk4oMHhkODVh
MjMxMCwgMHgwMjY1YzI3Myl9fSwKKyAgICAgICAgIHt7VE9CTigweDcxNzNkZDVkLCAweDRiMDdl
MmIxKSwgVE9CTigweGQxNDRjNGNiLCAweDhkOWVhMjIxKSwKKyAgICAgICAgICAgVE9CTigweGU4
YjA0ZWE0LCAweDExMDVhYjE0KSwgVE9CTigweDkyZGRhNTQyLCAweGZlODBkOGYxKX0sCisgICAg
ICAgICAge1RPQk4oMHhlOTk4MmZhOCwgMHhjZjAzZGNlNiksIFRPQk4oMHg4YjVlYTk2NSwgMHgx
YTIyY2ZmYyksCisgICAgICAgICAgIFRPQk4oMHhmN2Y0ZWE3ZiwgMHgzZmFkODhjNCksIFRPQk4o
MHg2MmRiNzczZSwgMHg2YTViYTk1Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweGQyMGYwMmZiLCAw
eDkzZjI0NTY3KSwgVE9CTigweGZkNDZjNjlhLCAweDMxNTI1N2NhKSwKKyAgICAgICAgICAgVE9C
TigweDBhYzc0Y2M3LCAweDhiY2FiOTg3KSwgVE9CTigweDQ2ZjMxYzAxLCAweDVjZWNhMmY1KX0s
CisgICAgICAgICAge1RPQk4oMHg0MGFlZGI1OSwgMHg4ODhiMjE5ZSksIFRPQk4oMHhlNTBlY2Mz
NywgMHhlMWZjY2QwMiksCisgICAgICAgICAgIFRPQk4oMHgxYmNkOWRhZCwgMHg5MTFmODE2Yyks
IFRPQk4oMHg1ODNjYzFlYywgMHg4ZGI5YjAwYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGYzY2Qy
ZTY2LCAweGE0ODNiZjExKSwgVE9CTigweGZhMDhhNmY1LCAweGIxYjJjMTY5KSwKKyAgICAgICAg
ICAgVE9CTigweGYzNzVlMjQ1LCAweDRiZTlmYTI4KSwgVE9CTigweDk5YTdmZmVjLCAweDViNmQw
MTFmKX0sCisgICAgICAgICAge1RPQk4oMHg2YTNlYmRkYiwgMHhjNGFlNjJkYSksIFRPQk4oMHg2
Y2VhMDBhZSwgMHgzNzRhZWY1ZCksCisgICAgICAgICAgIFRPQk4oMHhhYjVmYjk4ZCwgMHg5ZDRk
MDViYyksIFRPQk4oMHg3Y2JhMTQyMywgMHhkNTYwZjI1Mil9fSwKKyAgICAgICAgIHt7VE9CTigw
eDQ5YjJjYzIxLCAweDIwODQ5MGRlKSwgVE9CTigweDFjYTY2ZWMzLCAweGJjZmIyODc5KSwKKyAg
ICAgICAgICAgVE9CTigweDdmMTE2NmI3LCAweDFiNmZiMTZmKSwgVE9CTigweGZmZjYzZTA4LCAw
eDY1ZmU1ZGIzKX0sCisgICAgICAgICAge1RPQk4oMHhiODM0NWFiZSwgMHg4YjI2MTBiZSksIFRP
Qk4oMHhiNzMyZWQ4MCwgMHgzOWRlM2RmNCksCisgICAgICAgICAgIFRPQk4oMHgwZTI0ZWQ1MCwg
MHgyMTFjMzJiNCksIFRPQk4oMHhkMTBkOGE2OSwgMHg4NDhmZjI3ZCl9fSwKKyAgICAgICAgIHt7
VE9CTigweGMxMDc0Mzk4LCAweGVkNGRlMjQ4KSwgVE9CTigweGQ3Y2VkYWNlLCAweDEwNDg4OTI3
KSwKKyAgICAgICAgICAgVE9CTigweGE0YWE2YmY4LCAweDg1NjczZTEzKSwgVE9CTigweGI0NmJh
ZTkxLCAweDZkYWYzMGFmKX0sCisgICAgICAgICAge1RPQk4oMHgwNzA4ODQ3MiwgMHhmY2VmN2Fk
OCksIFRPQk4oMHg2MTE1MTYwOCwgMHhkNGIzNWU5NyksCisgICAgICAgICAgIFRPQk4oMHhiY2Zl
OGYyNiwgMHhkZGUyOTk4NiksIFRPQk4oMHhlYjg0YzRjNywgMHhkNWEzNGM3OSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGMxZWVjNTVjLCAweDE2NGUxMjE0KSwgVE9CTigweDg5MWJlODZkLCAweGEx
NDdiYjAzKSwKKyAgICAgICAgICAgVE9CTigweDlmYWI0ZDEwLCAweDBiYTk2ODM1KSwgVE9CTigw
eGJmMDFlOWI4LCAweGE1YzFhZTlmKX0sCisgICAgICAgICAge1RPQk4oMHg2YjRkZTEzOSwgMHhi
MTg2ZWJjMCksIFRPQk4oMHhkNWM3NGMyNiwgMHg4NWI5MWJjYSksCisgICAgICAgICAgIFRPQk4o
MHg1MDg2YTk5YywgMHhjMmQ5Mzg1NCksIFRPQk4oMHhlZWQ2MmE3YiwgMHhhN2E5ZGZiYyl9fSwK
KyAgICAgICAgIHt7VE9CTigweDg3NzhlZDZmLCAweDc2Yjc2MThhKSwgVE9CTigweGJmZjc1MGE1
LCAweDAzYjY2MDYyKSwKKyAgICAgICAgICAgVE9CTigweDRjYjdiZTIyLCAweGI2NTE4NmRiKSwg
VE9CTigweDM2OWRmYmYwLCAweGNjM2E2ZDEzKX0sCisgICAgICAgICAge1RPQk4oMHhjN2RhYjI2
YywgMHg3MTkxYTMyMSksIFRPQk4oMHg5ZWRhYzNmOSwgMHg0MGVkNzE4ZSksCisgICAgICAgICAg
IFRPQk4oMHhiYzE0MmIzNiwgMHhkMGNmZDE4MyksIFRPQk4oMHhjOGFmODJmNiwgMHg3Yzk5MTY5
Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGIzZDFlNGQ4LCAweDk3Y2UwYjJhKSwgVE9CTigweGU2
ZDdjODdmLCAweGMzYTU1Y2RmKSwKKyAgICAgICAgICAgVE9CTigweDM1ODQ2Yjk1LCAweDY4Yjgx
YWZlKSwgVE9CTigweDAxOGQxMmFmLCAweGQzYzIzOWQ4KX0sCisgICAgICAgICAge1RPQk4oMHgy
YjJjNjIwOCwgMHgwMTIwNmUxNSksIFRPQk4oMHhlMGU0MjQ1MywgMHhhM2I4ODJjNiksCisgICAg
ICAgICAgIFRPQk4oMHg4NTQ0NzBhMywgMHhhNTAxNjJkNSksIFRPQk4oMHgwODE1NzQ3OCwgMHg3
MDE3YTYyYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDE4YmQzZmI0LCAweDgyMDM1N2M3KSwgVE9C
TigweDk5MjAzOWFlLCAweDZmMTQ1OGFkKSwKKyAgICAgICAgICAgVE9CTigweDlhMWRmM2M1LCAw
eDI1YjQ0YWExKSwgVE9CTigweDJkNzgwMzU3LCAweGVkM2Q1MjgxKX0sCisgICAgICAgICAge1RP
Qk4oMHg1OGNmN2U0ZCwgMHhjNzdhZDRkNCksIFRPQk4oMHhkNDlhNzk5OCwgMHhmOWRmNGZjNCks
CisgICAgICAgICAgIFRPQk4oMHg0NDY1YThiNSwgMHgxZDcxMjA1ZSksIFRPQk4oMHhhMGVlMGVh
NiwgMHg2NDkyNTRhYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDRiNWVlZWNmLCAweGFiN2JkNzcx
KSwgVE9CTigweDZjODczMDczLCAweDM1YzI2MmI5KSwKKyAgICAgICAgICAgVE9CTigweGRjNWJk
NjQ4LCAweDNjOWQ2MWU3KSwgVE9CTigweDIzM2Q2ZDU0LCAweDMyMTQ2MGQyKX0sCisgICAgICAg
ICAge1RPQk4oMHhkMjBjNTYyNiwgMHhmYzE5NWJjYyksIFRPQk4oMHgyNTQ0NTk1OCwgMHgwNGQ3
OGI2MyksCisgICAgICAgICAgIFRPQk4oMHhlMDNmY2IzZCwgMHgxN2VjOGVmMyksIFRPQk4oMHg1
NGI2OTBkMSwgMHg0NmI4Zjc4MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDgyZmEyYzhhLCAweDIx
MjMwNjQ2KSwgVE9CTigweGY1MWFhYmI5LCAweDA4NGY0MThjKSwKKyAgICAgICAgICAgVE9CTigw
eGZmNGZiZWMxLCAweDFhMzBiYTQzKSwgVE9CTigweDZhNWFjZjczLCAweDc0M2M5ZGY3KX0sCisg
ICAgICAgICAge1RPQk4oMHgxZGEyYjM1NywgMHhkNjM1YjRkNSksIFRPQk4oMHhjM2RlNjhkZCwg
MHhlY2Q1YzFkYSksCisgICAgICAgICAgIFRPQk4oMHhhNjg5MDgwYiwgMHhkNjFhZjBkZCksIFRP
Qk4oMHhkZWE1OTM4YSwgMHhkNjY1YmY5OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDAyMzFkNzFh
LCAweGZlNjM3Mjk0KSwgVE9CTigweDAxOTY4YWE2LCAweGE1YTgxY2Q4KSwKKyAgICAgICAgICAg
VE9CTigweDExMjUyZDUwLCAweDA0OGU2M2I1KSwgVE9CTigweGM0NDZiYzUyLCAweDZjYTAwN2U5
KX0sCisgICAgICAgICAge1RPQk4oMHhlZjhjNTBhNiwgMHg5NmQ2MTM0YiksIFRPQk4oMHg5MzYx
ZmJmNSwgMHg5ZTA5YTA1YyksCisgICAgICAgICAgIFRPQk4oMHhmMTdmODVhNiwgMHhkY2EzMjkx
YSksIFRPQk4oMHhiMTc4ZDU0OCwgMHhmZjI1MWEyMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDg3
ZjYzNzRiLCAweGE0ZGYzOTE1KSwgVE9CTigweDU2NmNlMWJmLCAweDJmZDVkNjA4KSwKKyAgICAg
ICAgICAgVE9CTigweDQyNWNiYTRkLCAweDdkZTM1MTAyKSwgVE9CTigweDZiNzQ1ZjhmLCAweDU4
YzVkNWUyKX0sCisgICAgICAgICAge1RPQk4oMHg4ODQwMmFmNiwgMHg2MzEyMmVkZiksIFRPQk4o
MHgzMTkwZjllZCwgMHgzYjk4OWE4OSksCisgICAgICAgICAgIFRPQk4oMHg0YWQzZDM4NywgMHhl
YmJhMzE1NiksIFRPQk4oMHhlZjM4NWFkOSwgMHhjN2M0NjlhNSl9fSwKKyAgICAgICAgIHt7VE9C
TigweGIwODI4MWRlLCAweDNmNjQyYzI5KSwgVE9CTigweDIwYmUwODg4LCAweDkxMGZmYjg4KSwK
KyAgICAgICAgICAgVE9CTigweGYzNTNkZDRhLCAweGQ1MjkyNTQ2KSwgVE9CTigweDNmMTYyN2Rl
LCAweDgzNzdhMjYyKX0sCisgICAgICAgICAge1RPQk4oMHhhNWZhYTAxMywgMHhlZWZjZDYzOCks
IFRPQk4oMHg4ZjNiZjYyNiwgMHg3NGNjNzdjMyksCisgICAgICAgICAgIFRPQk4oMHgzMjYxOGY2
NSwgMHhhMzQ4ZjU1ZSksIFRPQk4oMHg1Nzg3YzBkYywgMHg5ZmVmZWI5ZSl9fSwKKyAgICAgICAg
IHt7VE9CTigweGYxNjczYWEyLCAweGQ5YTIzZTQ0KSwgVE9CTigweDg4ZGZhOTkzLCAweDRlMTA2
OTBkKSwKKyAgICAgICAgICAgVE9CTigweDFjZWQxYjM2LCAweDJiZjkxMTA4KSwgVE9CTigweDkx
OTNjZWNhLCAweDNhZjQ4NjQ5KX0sCisgICAgICAgICAge1RPQk4oMHhmYjM0MzI3ZCwgMHgyZDcz
OGZjNSksIFRPQk4oMHg2Njk3YjAzNywgMHg5NzVmZWU2YyksCisgICAgICAgICAgIFRPQk4oMHgy
ZjQ4NWRhMCwgMHhjMDQwNzlhNSksIFRPQk4oMHgyY2RmNTczNSwgMHgyZmVhYTFhYyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDc2OTQ0NDIwLCAweGJkNTU2NTllKSwgVE9CTigweDc5NzNlMzJiLCAw
eDQzNzYwOTBjKSwKKyAgICAgICAgICAgVE9CTigweDg2YmI0ZmUxLCAweDE2M2I1OTFhKSwgVE9C
TigweDEwNDQxYWVkLCAweGMxOTZmMGNhKX0sCisgICAgICAgICAge1RPQk4oMHgzYjQzMWY0YSwg
MHgwNDVhZDkxNSksIFRPQk4oMHg2YzExYjQzNywgMHhhNGFmYWNiMSksCisgICAgICAgICAgIFRP
Qk4oMHgzMGIwYzdkYiwgMHg3MWZkYmJkOCksIFRPQk4oMHhiNjQyOTMxZiwgMHhlZGE2NWFjZCl9
fSwKKyAgICAgICAgIHt7VE9CTigweDRiYWFlNmU4LCAweDljOTJiMjM1KSwgVE9CTigweGE3M2Ji
ZDBlLCAweDZiMzk5M2ExKSwKKyAgICAgICAgICAgVE9CTigweGQwNmQ2MGVjLCAweDY5M2RkMDMx
KSwgVE9CTigweDAzY2FiOTFiLCAweDcxNTY4ODFjKX0sCisgICAgICAgICAge1RPQk4oMHhkNjE1
ODYyZiwgMHgxZGIzNTc0YiksIFRPQk4oMHg0ODViMDE4NSwgMHg2NGJiMDYxYSksCisgICAgICAg
ICAgIFRPQk4oMHgyNzQzNDk4OCwgMHhhMDE4MWUwNiksIFRPQk4oMHgyY2Q2MWFkNCwgMHhjMWMw
Yzc1Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDNlZmZlZDVhLCAweDJmZjlmNDAzKSwgVE9CTigw
eDhkYzk4ZDhiLCAweDYyMjM5MDI5KSwKKyAgICAgICAgICAgVE9CTigweDIyMDYwMjFlLCAweDFm
MTdiNzBkKSwgVE9CTigweGFmYmVjMGNhLCAweGJmNTEwMDE1KX0sCisgICAgICAgICAge1RPQk4o
MHg5ZmVkNzE2NCwgMHg4MDEzMGRmYSksIFRPQk4oMHgzMDZkYzJiNSwgMHg4YTAyZGNmNSksCisg
ICAgICAgICAgIFRPQk4oMHg0OGYwNjYyMCwgMHhmZWIxMGZjMCksIFRPQk4oMHg3OGQxZTFkNSwg
MHg1YTU3Y2Y1MSl9fSwKKyAgICAgICAgIHt7VE9CTigweGFkZWY4YzVhLCAweDE5MmVmNzEwKSwg
VE9CTigweDg4YWZiZDRiLCAweDNiNzQzMWY5KSwKKyAgICAgICAgICAgVE9CTigweDdlMWY3NDA3
LCAweDY0MjUwYzllKSwgVE9CTigweDZlMzEzMThkLCAweGI1OGJlYzA3KX0sCisgICAgICAgICAg
e1RPQk4oMHhmZDRmYzRiOCwgMHgyNGY4OWI0ZSksIFRPQk4oMHg2NWE1ZGQ4OCwgMHg0OGMzNmEy
YSksCisgICAgICAgICAgIFRPQk4oMHg0ZjFlY2NmZiwgMHhmMDI0YmFhNyksIFRPQk4oMHgyMmEy
MWNmMiwgMHhjYmE5NDY1MCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk1ZDI5ZGVlLCAweDQyYTU1
NGY3KSwgVE9CTigweDgyODk4M2E1LCAweDAwMmVjNGJhKSwKKyAgICAgICAgICAgVE9CTigweDgx
MTJhMWY3LCAweDhiYWRiNzNkKSwgVE9CTigweDc5ZWE4ODk3LCAweGEyN2MxODM5KX0sCisgICAg
ICAgICAge1RPQk4oMHg4OTY5YTVhNywgMHhkMDY1ZmQ4MyksIFRPQk4oMHhmNDlhZjc5MSwgMHhi
MjYyYTBiYyksCisgICAgICAgICAgIFRPQk4oMHhmY2RlYThiNiwgMHhhZjJiNTEyNyksIFRPQk4o
MHgxMGU5MTNlMSwgMHg1NjRjMmRiYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDUxMjM5ZDE0LCAw
eGJjMjFlZjUxKSwgVE9CTigweGU1MWMzY2ViLCAweDRjZTU3MjkyKSwKKyAgICAgICAgICAgVE9C
TigweDc5NWZmMDY4LCAweDQ3YmJjYzNiKSwgVE9CTigweDg2YjQ2ZTFlLCAweGJkN2UxMWU2KX0s
CisgICAgICAgICAge1RPQk4oMHgwZWE2YmEyMywgMHg4MDA0MWVmNCksIFRPQk4oMHhkNzJmZTUw
NSwgMHg2MjYyMzQyZSksCisgICAgICAgICAgIFRPQk4oMHg4YWJjNmRmZCwgMHgzMWQyOTRkNCks
IFRPQk4oMHhiYmUwMTdhMiwgMHgxMjc4YzJjOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGIxZmNm
YTA5LCAweGIzODkzMjhhKSwgVE9CTigweDMyMmZiYzYyLCAweGQwMTc3MWI1KSwKKyAgICAgICAg
ICAgVE9CTigweDA0YzBkMDYzLCAweDYwYjA0NWJmKSwgVE9CTigweGRiNjUyZWRjLCAweDEwZTUy
ZDAxKX0sCisgICAgICAgICAge1RPQk4oMHg1MGVmOTMyYywgMHgwM2VjNjYyNyksIFRPQk4oMHhk
ZTFiM2IyZCwgMHhjMWVlNTBlMyksCisgICAgICAgICAgIFRPQk4oMHg1YWI3YmRjNSwgMHhkYzM3
YTkwZCksIFRPQk4oMHhmZWE2NzIxMywgMHgzMWUzM2E5Nil9fSwKKyAgICAgICAgIHt7VE9CTigw
eDY0ODJiNWNiLCAweDRmMjk5OWFhKSwgVE9CTigweDM4NDc2Y2M2LCAweGI4Y2JmMGRkKSwKKyAg
ICAgICAgICAgVE9CTigweDkzZWJmYWNiLCAweDE3MzQwNWJiKSwgVE9CTigweDE1Y2RhZmU3LCAw
eGU1MjM2OWVjKX0sCisgICAgICAgICAge1RPQk4oMHhkNDJkNWJhNCwgMHhkOTM1YjdkYiksIFRP
Qk4oMHg2NDhiNjAwNCwgMHgxYzk5YTRjZCksCisgICAgICAgICAgIFRPQk4oMHg3ODUxMDFiZCwg
MHhhM2I1NTQ1YiksIFRPQk4oMHg0YmYyYzM4YSwgMHg5ZGQ2N2ZhZil9fSwKKyAgICAgICAgIHt7
VE9CTigweGIxYWFkYzYzLCAweDQ0NDI0NDljKSwgVE9CTigweGUwZTk5MjFhLCAweDMzYWQ0ZmI4
KSwKKyAgICAgICAgICAgVE9CTigweDVjNTUyMzEzLCAweGFhNjg2ZDgyKSwgVE9CTigweGRlZTYz
NWZhLCAweDQ2NWQ4NjZjKX0sCisgICAgICAgICAge1RPQk4oMHhiYzNjMjI0YSwgMHgxOGVlNmU4
YSksIFRPQk4oMHhlZWQ3NDhhNiwgMHhlZDQyZTAyZiksCisgICAgICAgICAgIFRPQk4oMHhlNzBm
OTMwYSwgMHhkNDc0Y2QwOCksIFRPQk4oMHg3NzRlYTZlYywgMHhmZmYyNGFkZil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDAzZTJkZTFjLCAweGYzNDgwZDRhKSwgVE9CTigweGYwZDhlZGM3LCAweGJj
OGFjZjFhKSwKKyAgICAgICAgICAgVE9CTigweGYyM2UzMzAzLCAweDY4Mjk1YTljKSwgVE9CTigw
eGZhZGQ1ZjY4LCAweGM1NDZhOTdkKX0sCisgICAgICAgICAge1RPQk4oMHg4OTU1OTdhZCwgMHg5
NmY4YWNiMSksIFRPQk4oMHhiZGRkNDlkNSwgMHg2NzFiZGFlMiksCisgICAgICAgICAgIFRPQk4o
MHgxNmZjZDUyOCwgMHgyMWRkNDNmNCksIFRPQk4oMHhhNWE0NTQxMiwgMHg2NjE5MTQxYSl9fX0s
CisgICAgICAgIHt7e1RPQk4oMHg4Y2U5YjZiZiwgMHhjMzYwZTI1YSksIFRPQk4oMHhlNjQyNTE5
NSwgMHgwNzVhMWE3OCksCisgICAgICAgICAgIFRPQk4oMHg5ZGM3NTZhOCwgMHg0ODE3MzJmNCks
IFRPQk4oMHg4M2MwNDQwZiwgMHg1NDMyYjU3YSl9LAorICAgICAgICAgIHtUT0JOKDB4YzY3MGIz
ZjEsIDB4ZDcyMDI4MWYpLCBUT0JOKDB4MjIwNTkxMGUsIDB4ZDEzNWUwNTEpLAorICAgICAgICAg
ICBUT0JOKDB4ZGVkMTRiMGUsIDB4ZGIwNTJiZTcpLCBUT0JOKDB4Njk3YjNkMjcsIDB4YzU2OGVh
MzkpfX0sCisgICAgICAgICB7e1RPQk4oMHgyZTU5OWI5YSwgMHhmYjNmZjllZCksIFRPQk4oMHgy
OGMyZTBhYiwgMHgxN2Y2NTE1YyksCisgICAgICAgICAgIFRPQk4oMHgxY2JlZTRmZCwgMHg0NzRk
YTQ0OSksIFRPQk4oMHgwNzEyNzlhNCwgMHg0ZjM2NDQ1Mil9LAorICAgICAgICAgIHtUT0JOKDB4
OTdhYmZmNjYsIDB4MDFmYmU4NTUpLCBUT0JOKDB4M2VlMzk0ZTgsIDB4NWZkYTUxYzQpLAorICAg
ICAgICAgICBUT0JOKDB4MTkwMzg1ZjYsIDB4Njc1OTdjMGIpLCBUT0JOKDB4NmU5ZmNjYzYsIDB4
YTI3ZWUzNGIpfX0sCisgICAgICAgICB7e1RPQk4oMHgwYjg5ZGU5MywgMHgxNDA5MmViYiksIFRP
Qk4oMHhmMTcyNTZiZCwgMHg0MjhlMjQwYyksCisgICAgICAgICAgIFRPQk4oMHhjZjg5YTdmMywg
MHg5M2QyZjA2NCksIFRPQk4oMHg0ZjU3ODQxZSwgMHhlMWVkM2IxNCl9LAorICAgICAgICAgIHtU
T0JOKDB4NGVlMTQ0MDUsIDB4ZTcwOGQ4NTUpLCBUT0JOKDB4ODU2YWFlNzIsIDB4MDNmMWMzZDAp
LAorICAgICAgICAgICBUT0JOKDB4YzhlNTQyNGYsIDB4YmRkN2VlZDUpLCBUT0JOKDB4MzMzM2U0
ZWYsIDB4NzNhYjQyNzApfX0sCisgICAgICAgICB7e1RPQk4oMHgzYmM3N2FkZSwgMHhkZGE0OTJm
OCksIFRPQk4oMHhjMTFhM2FlYSwgMHg3ODI5NzIwNSksCisgICAgICAgICAgIFRPQk4oMHg1ZTg5
YTNlNywgMHgzNDkzMWI0YyksIFRPQk4oMHgxNzUxMmUyZSwgMHg5ZjU2OTRiYil9LAorICAgICAg
ICAgIHtUT0JOKDB4NWRjMzQ5ZjMsIDB4MTc3YmY4YjYpLCBUT0JOKDB4MjMyZWE0YmEsIDB4MDhj
N2ZmM2UpLAorICAgICAgICAgICBUT0JOKDB4OWM0ZjlkMTYsIDB4ZjUxMTE0NWQpLCBUT0JOKDB4
Y2NmMTA5YTMsIDB4MzNiMzc5YzMpfX0sCisgICAgICAgICB7e1RPQk4oMHhlNzVlN2E4OCwgMHhh
MWYyNTg5NyksIFRPQk4oMHg3YWM2OTYxZiwgMHhhMWI1ZDRkOCksCisgICAgICAgICAgIFRPQk4o
MHhlM2UxMDc3MywgMHgwOGYzZWQ1YyksIFRPQk4oMHgyMDhhNTRlYywgMHgwYTg5MmRmYil9LAor
ICAgICAgICAgIHtUT0JOKDB4YmU4MjZlMTksIDB4Nzg2NjA3MTApLCBUT0JOKDB4MGNmNzBhOTcs
IDB4MjM3ZGYyYzgpLAorICAgICAgICAgICBUT0JOKDB4NDE4YTczNDAsIDB4ZWQ3MDRkYTUpLCBU
T0JOKDB4YTNlZWI5YTksIDB4MDhjYTMzZmQpfX0sCisgICAgICAgICB7e1RPQk4oMHg0OWQ5NjIz
MywgMHgxNjliY2E5NiksIFRPQk4oMHgwNGQyODZkNCwgMHgyZGE2YWFmYiksCisgICAgICAgICAg
IFRPQk4oMHhjMDk2MDZlYywgMHhhMGMyZmE5NCksIFRPQk4oMHg4ODY5ZDBkNSwgMHgyM2ZmMGZi
Myl9LAorICAgICAgICAgIHtUT0JOKDB4YTk5OTM3ZTUsIDB4ZDAxNTBkNjUpLCBUT0JOKDB4YTky
ZTI1MDMsIDB4MjQwYzE0YzkpLAorICAgICAgICAgICBUT0JOKDB4NjU2YmY5NDUsIDB4MTA4ZTJk
NDkpLCBUT0JOKDB4MTUyYTczM2EsIDB4YTJmNTllMmIpfX0sCisgICAgICAgICB7e1RPQk4oMHhi
NDMyM2Q1OCwgMHg4NDM0YTkyMCksIFRPQk4oMHhjMGFmOGU5MywgMHg2MjIxMDNjNSksCisgICAg
ICAgICAgIFRPQk4oMHg2Njc1MThlZiwgMHg5MzhkYmY5YSksIFRPQk4oMHhhMTg0MzA3MywgMHg4
M2E5Y2RmMil9LAorICAgICAgICAgIHtUT0JOKDB4MzUwYTk0YWEsIDB4NTQ0N2FiODApLCBUT0JO
KDB4ZTVlNWEzMjUsIDB4Yzc1YTNkNjEpLAorICAgICAgICAgICBUT0JOKDB4NzRiYTUwN2YsIDB4
Njg0MTFhOWUpLCBUT0JOKDB4MTA1ODFmYzEsIDB4NTk0ZjcwYzUpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg2MGUyODU3MCwgMHg4MGViMjRhOSksIFRPQk4oMHg3YmVkZmI0ZCwgMHg0ODhlMGNmZCks
CisgICAgICAgICAgIFRPQk4oMHg3MjFlYmJkNywgMHhjMjU5Y2RiOCksIFRPQk4oMHgwYjBkYTg1
NSwgMHhiYzYzOTBhOSl9LAorICAgICAgICAgIHtUT0JOKDB4MmI0ZDA0ZGIsIDB4ZGUzMTRjNzAp
LCBUT0JOKDB4Y2RiZjFmYmMsIDB4NmMzMmU4NDYpLAorICAgICAgICAgICBUT0JOKDB4MzM4MzNl
YWIsIDB4YjE2MmZjOWUpLCBUT0JOKDB4OTkzOWI0OGIsIDB4YjBkZDNhYjcpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg1YWFhOThhNywgMHhjYjBjOWM4YyksIFRPQk4oMHg3NTEwNWYzMCwgMHg4MWM0
Mzc1YyksCisgICAgICAgICAgIFRPQk4oMHhjZWVlNTA1NywgMHg1ZWYxYzkwZiksIFRPQk4oMHhi
MzFlMDY1ZiwgMHhjMjNhMTdiZil9LAorICAgICAgICAgIHtUT0JOKDB4NTM2NGQyNzUsIDB4ZDRi
NmQ0NWEpLCBUT0JOKDB4ZDM2M2YzYWQsIDB4NjJlYzg5OTYpLAorICAgICAgICAgICBUT0JOKDB4
YjVkMjEyMzksIDB4NDM5MWM2NWIpLCBUT0JOKDB4ODQ1NjQ3NjUsIDB4ZWJiNDFiNDcpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgyMGQxOGVjYywgMHgzNzEwN2M3OCksIFRPQk4oMHhhY2ZmM2I2Yiwg
MHg1NzBjMmE2NiksCisgICAgICAgICAgIFRPQk4oMHgyMmY5NzVkOSwgMHg5YmQwZDg0NSksIFRP
Qk4oMHhlZjBhMGM0NiwgMHhiYTE3OGZhMCl9LAorICAgICAgICAgIHtUT0JOKDB4MWE0MTk2NTEs
IDB4NzZiNjAyOGUpLCBUT0JOKDB4YzQ5ZWM2NzQsIDB4MjQ4NjEyZDQpLAorICAgICAgICAgICBU
T0JOKDB4NWI2YWM0ZjIsIDB4NzMzOGFmNTUpLCBUT0JOKDB4MDYxNDVlNjIsIDB4N2JlZTVhMzYp
fX0sCisgICAgICAgICB7e1RPQk4oMHgzM2U5NWQwNywgMHhlNzU3NDZiNSksIFRPQk4oMHgxYzFl
MWY2ZCwgMHhjNDBjNzhiZSksCisgICAgICAgICAgIFRPQk4oMHg5Njc4MzNlZiwgMHgyMjJmZjhl
MiksIFRPQk4oMHg0YmVkY2Y2YSwgMHhiNDkxODBhZCl9LAorICAgICAgICAgIHtUT0JOKDB4NmIz
N2U5YzEsIDB4M2Q3YTRjOGEpLCBUT0JOKDB4Mjc0ODg4N2MsIDB4NmRkZmU3NjApLAorICAgICAg
ICAgICBUT0JOKDB4ZjcwNTUxMjMsIDB4YWEzYTViYmMpLCBUT0JOKDB4OTU0ZmYyMjUsIDB4N2Ji
YjhlNzQpfX0sCisgICAgICAgICB7e1RPQk4oMHhjNDJiOGFiMSwgMHg5N2MzZGZiOSksIFRPQk4o
MHg1NWE1NDliMCwgMHhjZjE2ODE1NCksCisgICAgICAgICAgIFRPQk4oMHhhZDY3NDhlNywgMHhj
MWI1MDY5MiksIFRPQk4oMHgyNzc1NzgwZiwgMHg2ZmM1Y2JjYil9LAorICAgICAgICAgIHtUT0JO
KDB4NGVhYjgwYjgsIDB4ZTFjOWQ3YzgpLCBUT0JOKDB4OGM2OWRhZTEsIDB4M2ZkYmNkNTYpLAor
ICAgICAgICAgICBUT0JOKDB4NDdlNmI0ZmIsIDB4OTk2OWVhY2UpLCBUT0JOKDB4MDAyZjEwODUs
IDB4YTcwNWNiNWEpfX0sCisgICAgICAgICB7e1RPQk4oMHg0ZTIzY2E0NCwgMHg2ZDNmZWE1NSks
IFRPQk4oMHhiNGFlOWM4NiwgMHhmNDgxMDU2OCksCisgICAgICAgICAgIFRPQk4oMHg0N2JmYjkx
YiwgMHgyYTYyZjI3ZCksIFRPQk4oMHg2MGRlYjRjOSwgMHhkOWJhYzI4Yyl9LAorICAgICAgICAg
IHtUT0JOKDB4YTg5MmQ4OTQsIDB4N2RlNmMzNGMpLCBUT0JOKDB4NGVlNjgyNTksIDB4NDQ5NDU4
N2QpLAorICAgICAgICAgICBUT0JOKDB4OTE0ZWUxNGUsIDB4MWEzZjhhNWIpLCBUT0JOKDB4YmIx
MTNlYWEsIDB4Mjg3MDAzODUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4MWNhMDNiOSwgMHgyMTE1
YjRjOSksIFRPQk4oMHg3YzE2M2QzOCwgMHg4OTA4Y2FkMSksCisgICAgICAgICAgIFRPQk4oMHhj
OTEyYTExOCwgMHhhYTE4MTc5YSksIFRPQk4oMHhlMDllZDc1MCwgMHg4ODZlMzA4MSl9LAorICAg
ICAgICAgIHtUT0JOKDB4YTY3NmUzZmEsIDB4MjZmNTE2Y2EpLCBUT0JOKDB4NzUzY2FjZjcsIDB4
OGU3MzJmOTEpLAorICAgICAgICAgICBUT0JOKDB4NTE1OTJhZWEsIDB4ODMzZGE4YjQpLCBUT0JO
KDB4YzYyNmY0MmYsIDB4NGNiZWE4YWEpfX0sCisgICAgICAgICB7e1RPQk4oMHhlZjlkYzg5OSwg
MHhhN2I1NmVhZiksIFRPQk4oMHgwMGMwZTUyYywgMHgzNGVmNzMxNiksCisgICAgICAgICAgIFRP
Qk4oMHg1YjFlNGUyNCwgMHhmZTgxOGE4NiksIFRPQk4oMHg5ZDMxZTIwZCwgMHhjNTM4YmU0Nyl9
LAorICAgICAgICAgIHtUT0JOKDB4MjJlYjkzMmQsIDB4M2VkNjg5NzQpLCBUT0JOKDB4ZTQ0YmJj
MDgsIDB4N2M0ZTg3YzQpLAorICAgICAgICAgICBUT0JOKDB4NDEyMTA4NmUsIDB4MGRkZTlhZWYp
LCBUT0JOKDB4OGU2YjljZmYsIDB4MTM0ZjQzNDUpfX0sCisgICAgICAgICB7e1RPQk4oMHg5Njg5
MmMxZiwgMHg3MTFiMGViOSksIFRPQk4oMHhiOTA1ZjJjOCwgMHg3ODBhYjk1NCksCisgICAgICAg
ICAgIFRPQk4oMHhhY2UyNjMwOSwgMHhhMjA3OTJkYiksIFRPQk4oMHhlYzhhYzliMywgMHgwNjg0
ZTEyNil9LAorICAgICAgICAgIHtUT0JOKDB4NDg2YWQ4YjYsIDB4YjQwYTI0NDcpLCBUT0JOKDB4
NjAxMjFmYzEsIDB4OWZlM2ZiMjQpLAorICAgICAgICAgICBUT0JOKDB4NTYyNmZjY2YsIDB4MWE4
ZTNiM2YpLCBUT0JOKDB4NGU1Njg2MjIsIDB4NmFkMWYzOTQpfX0sCisgICAgICAgICB7e1RPQk4o
MHhkYTdhYWUwZCwgMHgxOTZhYTVhMSksIFRPQk4oMHhlMGRmOGM3NywgMHgxMDQxYjVmYiksCisg
ICAgICAgICAgIFRPQk4oMHg0NTE0NjVkOSwgMHgyNmIzMThiNyksIFRPQk4oMHhjMjliNmU1NSwg
MHg3YWIxMzZlOSl9LAorICAgICAgICAgIHtUT0JOKDB4MmMyYWI0OGIsIDB4NzExNDg0NjMpLCBU
T0JOKDB4YjU3MzhkZTMsIDB4NjQ0NTRhNzYpLAorICAgICAgICAgICBUT0JOKDB4NTRjY2Y5YTAs
IDB4NWEwM2FiZTQpLCBUT0JOKDB4Mzc3YzAyOTYsIDB4MDQyN2Q1OGUpfX0sCisgICAgICAgICB7
e1RPQk4oMHg3M2Y1ZjBiOSwgMHgyYmIzOWMxZiksIFRPQk4oMHgxNDM3M2YyYywgMHhlNjA4ZDhj
NSksCisgICAgICAgICAgIFRPQk4oMHhkY2JmZDMxNCwgMHgwMGZiYjgwNSksIFRPQk4oMHhkZjE4
ZmIyMCwgMHg4M2FmZGNmYil9LAorICAgICAgICAgIHtUT0JOKDB4ODFhNTdmNDIsIDB4NDJiMzUy
M2YpLCBUT0JOKDB4ZTk1ODUzMmQsIDB4ODdmNjUwZmIpLAorICAgICAgICAgICBUT0JOKDB4YWE4
ZGM4YjYsIDB4OGIwYTdkN2MpLCBUT0JOKDB4MWI3NWRmYjcsIDB4MTUwMTY2YmUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg5MGU0ZjdjOSwgMHgyZDdkMTQxMyksIFRPQk4oMHg2N2UyZDZiNSwgMHg5
ODM0ZjU5NyksCisgICAgICAgICAgIFRPQk4oMHg0ZmQ0ZjRmOSwgMHhhODA4YzNlOCksIFRPQk4o
MHhhZjgyMzdlMCwgMHhkNTI4MWVjMSl9LAorICAgICAgICAgIHtUT0JOKDB4MjVhYjVmZGMsIDB4
ODQ2ODdjZWUpLCBUT0JOKDB4YzVkZWQ2YjEsIDB4YTViMjZjMDkpLAorICAgICAgICAgICBUT0JO
KDB4OGU0YTVhZWMsIDB4YzhlYTc2NTApLCBUT0JOKDB4MjNiNzNlNWMsIDB4MTRjYzQxN2YpfX0s
CisgICAgICAgICB7e1RPQk4oMHgyYmZiNDMxOCwgMHgzMDM3YmY1MiksIFRPQk4oMHhiNjFlNmRi
NSwgMHg3OGM3MjVkNyksCisgICAgICAgICAgIFRPQk4oMHg4ZWZkNDA2MCwgMHhiYmIzZTVkNyks
IFRPQk4oMHgyZTAxNDcwMSwgMHhkYmFjNDg4ZSl9LAorICAgICAgICAgIHtUT0JOKDB4YWM3NWNm
OWEsIDB4MzYwYWE0NDkpLCBUT0JOKDB4YjcwY2ZkMDUsIDB4Nzk2MzRkMDgpLAorICAgICAgICAg
ICBUT0JOKDB4YTU5MTUzNmQsIDB4ZmZmYjE1ZWYpLCBUT0JOKDB4YjJjMzc1ODIsIDB4ZDA3YzEw
NmMpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNDI5M2ZkYywgMHhmNTAyMjVmOSksIFRPQk4oMHhj
NTJlMTc1YywgMHhiMGUxMmIwMyksCisgICAgICAgICAgIFRPQk4oMHhmNjQ5YzNiYSwgMHhkMGE4
YmY2NCksIFRPQk4oMHg3NDVhOGZlZiwgMHhlYjhhZTNjNil9LAorICAgICAgICAgIHtUT0JOKDB4
MzBkN2U1YTMsIDB4NTgzMjFiYzMpLCBUT0JOKDB4YjE3MzJiZTcsIDB4MGJjNGRmNDgpLAorICAg
ICAgICAgICBUT0JOKDB4MWYyMTc5OTMsIDB4ZTllYTUwNTgpLCBUT0JOKDB4ZjdhNzFjZGUsIDB4
M2U0ZmQ3NDUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4NmNjNTMzZSwgMHg4OTRjNWJiYiksIFRP
Qk4oMHg2OTE1YzdkOSwgMHg2OWQ4MzA4MiksCisgICAgICAgICAgIFRPQk4oMHhhNmFhMmQwNSwg
MHg1ODE1YzI0NCksIFRPQk4oMHhhZWVlZTU5MiwgMHg0OWIyMmNlNSl9LAorICAgICAgICAgIHtU
T0JOKDB4ODllMzlkMTMsIDB4NzgxMzU0ODYpLCBUT0JOKDB4M2EyNzVjMWYsIDB4MTZiNzZmMmYp
LAorICAgICAgICAgICBUT0JOKDB4ZGI2YmNjMWIsIDB4ZTAzNmU4ZjUpLCBUT0JOKDB4NGRmNjli
MjEsIDB4NWU0NzA5ZjUpfX0sCisgICAgICAgICB7e1RPQk4oMHhhMTg4YjI1MCwgMHgyZDBmMzlh
YSksIFRPQk4oMHg2MjIxMThiYiwgMHgxNWE4NTk0NyksCisgICAgICAgICAgIFRPQk4oMHgyZWJm
NTIwZiwgMHhmZGUwZjRmYSksIFRPQk4oMHhhNDBlOWYyOSwgMHg0ODYwZTUzOSl9LAorICAgICAg
ICAgIHtUT0JOKDB4N2I2YTUxZWIsIDB4MjJiNTdmMGYpLCBUT0JOKDB4ODQ5YTMzYjksIDB4N2U4
MDY0NGEpLAorICAgICAgICAgICBUT0JOKDB4NTBlNWQxNmYsIDB4MWNmMDk1ZmUpLCBUT0JOKDB4
ZDc1NGI1NGUsIDB4ZWM1NWYwMDIpfX0sCisgICAgICAgICB7e1RPQk4oMHg1Y2ZiYmIyMiwgMHgy
MzZmNGE5OCksIFRPQk4oMHgwYjBjNTllOSwgMHgwNjY4MDBiYiksCisgICAgICAgICAgIFRPQk4o
MHg0YWM2OWE4ZiwgMHg1YTlhNzc3NCksIFRPQk4oMHgyYjMzZjgwNCwgMHhkNmJlYzk0OCl9LAor
ICAgICAgICAgIHtUT0JOKDB4YjM3MjkyOTUsIDB4MzJlNmM0NjYpLCBUT0JOKDB4Njg5NTZkMGYs
IDB4NGU1OTljNzMpLAorICAgICAgICAgICBUT0JOKDB4YTQ3YTI0OWYsIDB4MTU1YzMxY2MpLCBU
T0JOKDB4MjRkODBmMGQsIDB4ZTFjZTI4NGUpfX0sCisgICAgICAgICB7e1RPQk4oMHhjZDgyMWRm
YiwgMHg5ODhiYWYwMSksIFRPQk4oMHhlNjMzMWE3ZCwgMHhkYmIxNjY0NyksCisgICAgICAgICAg
IFRPQk4oMHgxZWI4YWQzMywgMHgwOTRjYjk2MCksIFRPQk4oMHg1OTNjY2EzOCwgMHhjOTFiYmNh
NSl9LAorICAgICAgICAgIHtUT0JOKDB4Mzg0YWFjOGQsIDB4MjY1Njc0NTYpLCBUT0JOKDB4NDBm
YTAzMDksIDB4YzA0YjY0OTApLAorICAgICAgICAgICBUT0JOKDB4OTc4MzRjZDYsIDB4ZGFiNmM4
ZjYpLCBUT0JOKDB4NjhhNzMxOGQsIDB4M2Y5MWU1NWYpfX0sCisgICAgICAgICB7e1RPQk4oMHhh
MDBmZDA0ZSwgMHhmYzRkMzE1NyksIFRPQk4oMHhiNTZmOGFiMiwgMHgyYmYzYmRlYSksCisgICAg
ICAgICAgIFRPQk4oMHgwMTRmNTY0OCwgMHg0ZmE1NzE3MiksIFRPQk4oMHg5NDhjNTg2MCwgMHg0
NTBhYmRiMyl9LAorICAgICAgICAgIHtUT0JOKDB4MzQyYjVkZjAsIDB4MGViZDRmMDgpLCBUT0JO
KDB4M2U1MTY4Y2QsIDB4MGU4MjkzOGUpLAorICAgICAgICAgICBUT0JOKDB4N2FlZGMxY2UsIDB4
YjBkZjVkZDApLCBUT0JOKDB4NmJiYmM2ZDksIDB4ZTU3MzI1MTYpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhjN2JmZDQ4NiwgMHg2MDVkYWFhNiksIFRPQk4oMHg0NmZkNzJiNywgMHhiYjlhNmM5ZSks
CisgICAgICAgICAgIFRPQk4oMHhlNDg0N2ZiMSwgMHhhMTI0ZmI4OSksIFRPQk4oMHg3NTk1OWNi
ZCwgMHhhMmQ4ZmZiYyl9LAorICAgICAgICAgIHtUT0JOKDB4NDI1NzlmNjUsIDB4YzhhNTg4ZWUp
LCBUT0JOKDB4MzY4YzkyZTYsIDB4YjgwYjQ5OWQpLAorICAgICAgICAgICBUT0JOKDB4ZWE0ZWY2
Y2QsIDB4OTk5YTVkZjEpLCBUT0JOKDB4YWE3M2JiN2YsIDB4OTM2ZmU2MDQpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhmMzQ3YTcwZCwgMHg2NDU3ZDE4OCksIFRPQk4oMHg4NmVkYTg2YiwgMHg4Yjdh
Mzg4YiksCisgICAgICAgICAgIFRPQk4oMHhiN2NkZmYwNiwgMHgwY2NkNjAxMyksIFRPQk4oMHhi
ZWIxYjZjNywgMHhkMDA1M2ZiMil9LAorICAgICAgICAgIHtUT0JOKDB4MGIwMjIzODcsIDB4OTky
NDBhOWYpLCBUT0JOKDB4MWJiYjM4NGYsIDB4Nzc2MTg5YjIpLAorICAgICAgICAgICBUT0JOKDB4
ODY5NWU3MWUsIDB4OTA2NjE5M2EpLCBUT0JOKDB4MmViNTAwOTcsIDB4MDZmZmFjN2UpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgwNjU0YTljMCwgMHg0YTdkMmNhYSksIFRPQk4oMHg2ZjNmYjNkMSwg
MHhhNWFhYTI5MCksCisgICAgICAgICAgIFRPQk4oMHg4MzVkYjA0MSwgMHhmZjQ3NmU4ZiksIFRP
Qk4oMHg1NDBiOGIwYiwgMHhjNDIyOTVlNCl9LAorICAgICAgICAgIHtUT0JOKDB4YTVjNzNhYzks
IDB4MDVlMjE0ZjUpLCBUT0JOKDB4OWE3NDA3NWEsIDB4NTZhMGI2MzgpLAorICAgICAgICAgICBU
T0JOKDB4MmU0YjEwOTAsIDB4Y2U5ZTY4MGIpLCBUT0JOKDB4NTdhNWI0NzksIDB4NmI4ZDlhZmEp
fX0sCisgICAgICAgICB7e1RPQk4oMHgwZGNhNDhlNywgMHgyNmJmZTY1YyksIFRPQk4oMHgwOTdl
MzkxYywgMHg3MjkwYzMwNyksCisgICAgICAgICAgIFRPQk4oMHg2ODNjNDYyZSwgMHg2NjY5ZTcy
ZSksIFRPQk4oMHhmNTA1YmUxZSwgMHgwNjI1NTlhYyl9LAorICAgICAgICAgIHtUT0JOKDB4NWZi
ZTNlYTEsIDB4ZTNhMzAzNWEpLCBUT0JOKDB4NjQzMWViZjYsIDB4OWNkNTBkYTgpLAorICAgICAg
ICAgICBUT0JOKDB4ZmQxNjlkNWMsIDB4MWY2NDA3ZjIpLCBUT0JOKDB4OGQ4MzhhOTUsIDB4NjBm
Y2U2YjgpfX0sCisgICAgICAgICB7e1RPQk4oMHgyYTJiZmE3ZiwgMHg2NTAwMDZmMCksIFRPQk4o
MHhkZmQ3ZGFkMywgMHg1MGMwZmJiMiksCisgICAgICAgICAgIFRPQk4oMHg5MjQ1MjQ5NSwgMHhj
Y2Y5YWQ5NiksIFRPQk4oMHgxODNiZjQ5NCwgMHhkOTU2MzVmOSl9LAorICAgICAgICAgIHtUT0JO
KDB4MDJkNWRmNDMsIDB4NGE3YmQ5ODkpLCBUT0JOKDB4NTA1Mzg1Y2MsIDB4YTU0MzEwOTUpLAor
ICAgICAgICAgICBUT0JOKDB4ZGQ5OGU2N2QsIDB4ZmQ0M2Y1M2UpLCBUT0JOKDB4ZDYxZTFhNmMs
IDB4NTAwYzM0YTkpfX0sCisgICAgICAgICB7e1RPQk4oMHg1YTRiNDZjNiwgMHg0YThhM2Q2Miks
IFRPQk4oMHg4NDY5YzRkMCwgMHgyNDc3NDNkMiksCisgICAgICAgICAgIFRPQk4oMHgyYmIzYTEz
ZCwgMHg4OGY3ZTQzMyksIFRPQk4oMHg2MmIyM2ExMCwgMHgwMWJlNTg0OSl9LAorICAgICAgICAg
IHtUT0JOKDB4ZTgzNTk2YjQsIDB4YTYzZDFhNGMpLCBUT0JOKDB4NDU0ZTdmZWEsIDB4N2QxODNm
M2UpLAorICAgICAgICAgICBUT0JOKDB4NjQzZmNlNjEsIDB4MTdhZmIwMWMpLCBUT0JOKDB4NGU2
NWU1ZTYsIDB4MWM0YzM2MzgpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MWQ4NWVhMSwgMHhlZjc0
YzQ1YiksIFRPQk4oMHgyY2ZiZmE2NiwgMHhhZTMyODUwNiksCisgICAgICAgICAgIFRPQk4oMHg5
OGIwNzhmNSwgMHgzYWRhN2RhOSksIFRPQk4oMHhkOTg1ZmUzNywgMHhlYzc1MmZiYil9LAorICAg
ICAgICAgIHtUT0JOKDB4ZWVjZTY4ZmUsIDB4NWEwMTQ4YjQpLCBUT0JOKDB4NmY5YTU1YzcsIDB4
MmQ3ODEzNmQpLAorICAgICAgICAgICBUT0JOKDB4MjMyZGNjYzQsIDB4ZDJiNzI5Y2UpLCBUT0JO
KDB4YTI3ZTBkZmQsIDB4OTBhYWZiYzQpfX0sCisgICAgICAgICB7e1RPQk4oMHg5NjQ3NDQ1Miwg
MHgxMmI0NjAzZSksIFRPQk4oMHhhODc2YzU1MSwgMHg2YjcwNmQxNCksCisgICAgICAgICAgIFRP
Qk4oMHhkZjE0NWZjZiwgMHg2OWE5ZDQxMiksIFRPQk4oMHhlMmFiNzViNywgMHgyZDQ3OWMzNCl9
LAorICAgICAgICAgIHtUT0JOKDB4MTJkZjlhNzYsIDB4MWEyM2ZmOTcpLCBUT0JOKDB4YzYxMzg5
OTIsIDB4NWQzNTlkMTApLAorICAgICAgICAgICBUT0JOKDB4NmU1MWM3YWUsIDB4ZmE4MzVmMjIp
LCBUT0JOKDB4NjlhNzljYjEsIDB4YzBmY2M0ZDkpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNTdm
MzUwZCwgMHg1OTRjYzdlMSksIFRPQk4oMHgzMDc5Y2E2MywgMHgzMzUwYWI3OSksCisgICAgICAg
ICAgIFRPQk4oMHgyMjZmYjYxNCwgMHg5YWZmNTk0YSksIFRPQk4oMHgzNWFmZWMwMiwgMHg2ZDU5
YTYyYil9LAorICAgICAgICAgIHtUT0JOKDB4OWJlZTQ2ZjQsIDB4MDZlZDJjNmUpLCBUT0JOKDB4
NThkYTE3MzUsIDB4N2Q5MzlhNTcpLAorICAgICAgICAgICBUT0JOKDB4NDRjNTA0MDIsIDB4OGZk
MTc5N2UpLCBUT0JOKDB4ZDg4NTNlN2MsIDB4NWNjZWE2Y2EpfX0sCisgICAgICAgICB7e1RPQk4o
MHg0MDY1NTA4ZCwgMHhhMzVmY2Q1ZiksIFRPQk4oMHg4OTY1ZGY4YywgMHg0OTVjY2FlYiksCisg
ICAgICAgICAgIFRPQk4oMHgwZjJkYTg1MCwgMHgxMmUxYTk2MiksIFRPQk4oMHhlZTQ3MWI5NCwg
MHhjMWNmMWNjNCl9LAorICAgICAgICAgIHtUT0JOKDB4Y2VmMTliYzgsIDB4MGEwOGZiNzUpLCBU
T0JOKDB4NzA0OTU4ZjUsIDB4ODFkZTM1OTEpLAorICAgICAgICAgICBUT0JOKDB4Mjg2N2Y4YjIs
IDB4M2FlZjRmODgpLCBUT0JOKDB4OGQ3NDkzODQsIDB4ZWE5ZjlhNWYpfX0sCisgICAgICAgICB7
e1RPQk4oMHgxYjM4NTUzNywgMHg4YzkwNDlmNCksIFRPQk4oMHg1YmU5NDhmMywgMHg3YjkyZDhi
NiksCisgICAgICAgICAgIFRPQk4oMHhkOTZmNzI1ZCwgMHhiNmUyYmQ2YiksIFRPQk4oMHgzN2Ey
MjJiYywgMHg5NThjNDU0ZCl9LAorICAgICAgICAgIHtUT0JOKDB4ZTdjNjFhYmIsIDB4ODgwOWJm
NjEpLCBUT0JOKDB4NDZmMDdmYmMsIDB4MTM0NmYxOGQpLAorICAgICAgICAgICBUT0JOKDB4ZmI1
NjdhN2EsIDB4ZTg3YzBkMWMpLCBUT0JOKDB4ODRhNDYxYzgsIDB4N2VmM2QwN2EpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgwYTVhZGNlNiwgMHhkOTI3OGQ5OCksIFRPQk4oMHgyNGQ5NDgxMywgMHg5
ZGZjNzNlMSksCisgICAgICAgICAgIFRPQk4oMHg0ZjM1MjhiNiwgMHgwNTQzMjFjMyksIFRPQk4o
MHgyZTAzZmRkZSwgMHg2OTJlYTcwNil9LAorICAgICAgICAgIHtUT0JOKDB4MTBlNjA2MTksIDB4
NDdiNTMzYzApLCBUT0JOKDB4MWE4YmM3M2YsIDB4MmNhM2MwNTUpLAorICAgICAgICAgICBUT0JO
KDB4YWU1OGQ0YjIsIDB4MWJiNjJiOGYpLCBUT0JOKDB4YjIwNDVhNzMsIDB4NTg0YTI0ZTMpfX0s
CisgICAgICAgICB7e1RPQk4oMHgzYWIzZDVhZiwgMHhiZDc2ZTE5NSksIFRPQk4oMHg0NzhkZDFh
ZCwgMHg2OTM4YTgxMCksCisgICAgICAgICAgIFRPQk4oMHg2ZmZhYjM5MywgMHg2ZWUzZDVjYiks
IFRPQk4oMHhkZmI2OTNkYiwgMHgyMmIzNjFlNCl9LAorICAgICAgICAgIHtUT0JOKDB4Zjk2OTQ0
OTYsIDB4NTFkYmYxYTcpLCBUT0JOKDB4Y2FiNGI0ZWYsIDB4MDhhMmU3NjIpLAorICAgICAgICAg
ICBUT0JOKDB4ZThjOTJmMjUsIDB4ZDM5YmJhOWEpLCBUT0JOKDB4ODUwZTYxYmMsIDB4ZjE0NjRk
OTYpfX0sCisgICAgICAgICB7e1RPQk4oMHhiN2U4MzBlMywgMHhkYzA5NTA4YiksIFRPQk4oMHhm
YWY2ZDJjZiwgMHg3NDMxNzY1NSksCisgICAgICAgICAgIFRPQk4oMHg3MjYwNmNlYiwgMHhkZjY5
MDM1NSksIFRPQk4oMHg0OGJiOTJiMywgMHhkMGMzZGVkNil9LAorICAgICAgICAgIHtUT0JOKDB4
NjViNzU0ODQsIDB4NWM3Y2Y4OTIpLCBUT0JOKDB4ZjZjZDdhYzksIDB4ZDVkNWYwMWYpLAorICAg
ICAgICAgICBUT0JOKDB4YzJjMzBhNTksIDB4OTY0MDFkNjkpLCBUT0JOKDB4OTEyNjg2NTAsIDB4
ZWQ5MjE4NzgpfX0sCisgICAgICAgICB7e1RPQk4oMHgzODBiZjkxMywgMHhiNzhjNTU4ZiksIFRP
Qk4oMHg0M2MwYmFlYiwgMHhjOGFmZGFhOSksCisgICAgICAgICAgIFRPQk4oMHgzNzdmNjFkNSwg
MHg1NGYxNjlkMyksIFRPQk4oMHhmOGRhMDdlMywgMHhhZTVmZjIwYil9LAorICAgICAgICAgIHtU
T0JOKDB4YjY3NmM0OWQsIDB4YThhOTBlYTgpLCBUT0JOKDB4ODFjMWZmMmIsIDB4ODNhMjliMjEp
LAorICAgICAgICAgICBUT0JOKDB4MzgzMjk3YWMsIDB4MmFkOGQyNzYpLCBUT0JOKDB4MzAwMTEy
MmYsIDB4YmE4OWY5ODIpfX0sCisgICAgICAgICB7e1RPQk4oMHhlMWQ3OTRiZSwgMHg2NzE4ZTQ0
OCksIFRPQk4oMHgyNDZjMTQ4MiwgMHg3YzNlNmUxMyksCisgICAgICAgICAgIFRPQk4oMHg1NjY0
NmVmOCwgMHg1ZDI2YjVlZiksIFRPQk4oMHg4MGY1MDkxZSwgMHg4ODA2OWNkZCl9LAorICAgICAg
ICAgIHtUT0JOKDB4YzU5OTJlMmYsIDB4NzI0YmRkMzgpLCBUT0JOKDB4MDJlOTE1YjQsIDB4ODQ3
MWU4YzcpLAorICAgICAgICAgICBUT0JOKDB4OTZmZjMyMGEsIDB4MGQwZmYyYTkpLCBUT0JOKDB4
YmY4ODY0ODcsIDB4NDM4NGQxYTApfX0sCisgICAgICAgICB7e1RPQk4oMHhiYmUxZTZhNiwgMHhj
OTNmNzJkNiksIFRPQk4oMHhkNWY3NWQxMiwgMHhjYWQ4MDBlYSksCisgICAgICAgICAgIFRPQk4o
MHhmYTQwYTA5ZiwgMHhlN2FjZjExNyksIFRPQk4oMHgzMmM4Y2RkNSwgMHg3NTgxYTM1NSl9LAor
ICAgICAgICAgIHtUT0JOKDB4NzQyMjE5OTIsIDB4NzAyM2M0OTkpLCBUT0JOKDB4YThhZmU1ZDcs
IDB4MzhlYzM5MDEpLAorICAgICAgICAgICBUT0JOKDB4NTY5MWFmY2IsIDB4YTkwZTgzZjApLCBU
T0JOKDB4NDFiY2FhMDMsIDB4MGI4ZjhlYWMpfX0sCisgICAgICAgICB7e1RPQk4oMHhlMzhiNWZm
OSwgMHg4ZDI2NjhkNSksIFRPQk4oMHgwNzE1MjgxYSwgMHg3YWQ4MTk2NSksCisgICAgICAgICAg
IFRPQk4oMHgxYmM4ZmM3YywgMHgwM2M2Y2UxMSksIFRPQk4oMHhjYmJlZTZlMiwgMHg4YjY1MDQz
Nil9LAorICAgICAgICAgIHtUT0JOKDB4MDZiMDBmZTgsIDB4MGNkYjk4MDgpLCBUT0JOKDB4MTdk
NmUwNjYsIDB4ZmUzZWQzMTUpLAorICAgICAgICAgICBUT0JOKDB4MmU5ZDM4YzYsIDB4NGQwYjUw
MTgpLCBUT0JOKDB4YWI4YmZkNTYsIDB4ODQ0ZGNhZWYpfX0sCisgICAgICAgICB7e1RPQk4oMHg0
Mjg5NGE1OSwgMHg1MTNhZWQ4YiksIFRPQk4oMHhmNzdmM2I2ZCwgMHgzMTRiZDA3YSksCisgICAg
ICAgICAgIFRPQk4oMHhiYmRlY2I4ZiwgMHg4ZTQyYjU4MiksIFRPQk4oMHhmMTBlMmZhOCwgMHhk
MjM5MGZlNil9LAorICAgICAgICAgIHtUT0JOKDB4ZWZiOTUwMjIsIDB4NjJhMmYyMDEpLCBUT0JO
KDB4NGQ1OWVhNTAsIDB4NTBlZTMyYjApLAorICAgICAgICAgICBUT0JOKDB4ZDg3Zjc3MjgsIDB4
NmRhNzg5YTgpLCBUT0JOKDB4Y2Y5OGEyY2YsIDB4Zjc5NDkyYzQpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhmOTU3NzIzOSwgMHg3MjA5NDNjMiksIFRPQk4oMHhiYTA0NGNmNSwgMHgzOTkwYjlkMCks
CisgICAgICAgICAgIFRPQk4oMHg1YWE4ZTgyMywgMHg5NWYyODg0YSksIFRPQk4oMHg4MzRkZTZl
ZCwgMHgwMjc4YTBhZil9LAorICAgICAgICAgIHtUT0JOKDB4YzhlMWVlOWEsIDB4NWYyNWJkMTIp
LCBUT0JOKDB4OTI1OWNlYWEsIDB4NmY3YWIyNzEpLAorICAgICAgICAgICBUT0JOKDB4N2U2ZDk3
YTIsIDB4NzdkMDBiNzYpLCBUT0JOKDB4NWMwYzZlZWEsIDB4YTQzNzgzMmEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg1MjMyYzIwZiwgMHg1NjA2YjgxZCksIFRPQk4oMHhhYmQ3YjM3NSwgMHgwZDk5
MWVlNSksCisgICAgICAgICAgIFRPQk4oMHg0ZDJiZmUzNSwgMHg4NjMyZDk1MSksIFRPQk4oMHg3
OGY4NTE0NiwgMHg5OGVkOTM2NCl9LAorICAgICAgICAgIHtUT0JOKDB4OTUxODczZjAsIDB4ZjMw
YzMyODIpLCBUT0JOKDB4MGRhOGFjODAsIDB4YTc4OTIzMGIpLAorICAgICAgICAgICBUT0JOKDB4
M2FjNzc4OWMsIDB4NTM5ODk2N2YpLCBUT0JOKDB4YTY5YjhmN2YsIDB4YmRkYTBmYjUpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhlNWRiNzcxNywgMHg2YWRkODU0NSksIFRPQk4oMHgxYjcxY2I2Niwg
MHg3MmM0OWI2NiksCisgICAgICAgICAgIFRPQk4oMHhkODU2MDczOSwgMHg2ODQyMWQ3NyksIFRP
Qk4oMHgwMzg0MGZlOCwgMHg4M2UzYWZlYSl9LAorICAgICAgICAgIHtUT0JOKDB4YjM5MWRhZDUs
IDB4MWVjNjk5NzcpLCBUT0JOKDB4YWUyNDNmYjksIDB4MzA3ZjY3MjYpLAorICAgICAgICAgICBU
T0JOKDB4Yzg4YWM4N2IsIDB4ZThjYTE2MGMpLCBUT0JOKDB4NTE3NGNjZWQsIDB4NGNlMzU1ZjQp
fX0sCisgICAgICAgICB7e1RPQk4oMHg5OGEzNTk2NiwgMHhlNThiYTM3ZCksIFRPQk4oMHhmZGNj
OGRhMiwgMHg3ODE3MzM1ZCksCisgICAgICAgICAgIFRPQk4oMHg1Yjc1MjgzMCwgMHg4M2ZiYzdi
ZiksIFRPQk4oMHg2OGU0MTlkNCwgMHhkOWM5Njk4NCl9LAorICAgICAgICAgIHtUT0JOKDB4NDA5
YTM5ZjQsIDB4MDJhNDAzODApLCBUT0JOKDB4ODg5NDBmYWYsIDB4MWZlOTc3YmMpLAorICAgICAg
ICAgICBUT0JOKDB4YzY0MGE5NGIsIDB4OGY4ZWRlYTYpLCBUT0JOKDB4MWUyMmNkMTcsIDB4ZWQx
MTU0N2QpfX0sCisgICAgICAgICB7e1RPQk4oMHhlMjg1NjhjZSwgMHg1OWZmYzNlMiksIFRPQk4o
MHg2MGFhMWI1NSwgMHhjMWRlZTRlNyksCisgICAgICAgICAgIFRPQk4oMHhjNjc0OTdjOCwgMHg4
MzdjYjM2MyksIFRPQk4oMHgwNmZiNDM4YSwgMHgxMDVhMmJmMil9LAorICAgICAgICAgIHtUT0JO
KDB4MzAzNTdlYzQsIDB4NTAwZDhlMjApLCBUT0JOKDB4MWFkOTA5NWQsIDB4MDY3MGRiMTApLAor
ICAgICAgICAgICBUT0JOKDB4N2Y1ODlhMDUsIDB4YzczYjdjZmQpLCBUT0JOKDB4ZjU0NDYwN2Qs
IDB4ODgwZDZkMjgpfX0sCisgICAgICAgICB7e1RPQk4oMHgxN2JhOTNiMSwgMHhhMjBlZjEwMyks
IFRPQk4oMHhhZDg1OTEzMCwgMHg2YmE2NTc3YiksCisgICAgICAgICAgIFRPQk4oMHg2NWM5MWNm
NiwgMHg2ZmEyMTRhMCksIFRPQk4oMHhkN2Q0OWM2YywgMHgyNzk5MGRhNSl9LAorICAgICAgICAg
IHtUT0JOKDB4ZWNkOWVjOGQsIDB4MjBiYjU2OWQpLCBUT0JOKDB4YmQ0YjI1MDIsIDB4ZWVmZmJj
MzMpLAorICAgICAgICAgICBUT0JOKDB4MjA1NmNhNWEsIDB4NmJlZDA0NjcpLCBUT0JOKDB4Nzkx
NmExZjcsIDB4NWI2MzcyOGMpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNGY5NDk3ZCwgMHg1M2E0
ZjU2NiksIFRPQk4oMHg4OTczNDY2NCwgMHg5N2I1NjgxMCksCisgICAgICAgICAgIFRPQk4oMHhm
OGUxZGE3NCwgMHgwNDk0YTYyMSksIFRPQk4oMHg4MjU0NmE5MywgMHg4ZDAxMWM2OCl9LAorICAg
ICAgICAgIHtUT0JOKDB4MWYzYWNiMTksIDB4YzYxYWMxNjIpLCBUT0JOKDB4NTJmOGZhOWMsIDB4
YWJhZDBkM2UpLAorICAgICAgICAgICBUT0JOKDB4MTUzNTY1MjMsIDB4YjRiN2VhNDMpLCBUT0JO
KDB4NWExNmFkNjEsIDB4YWU2MDgxMjUpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMGJjYjg3Ziwg
MHg0ZmFlZDE4NCksIFRPQk4oMHg1ZjIzNmIxZCwgMHg1MDI5ZjQ1ZiksCisgICAgICAgICAgIFRP
Qk4oMHhkNDJjNzYwNywgMHgwYmM2YjFmYyksIFRPQk4oMHhjNjQ0MzI0ZSwgMHg2OGFlZmNlMyl9
LAorICAgICAgICAgIHtUT0JOKDB4OGUxOTFkNTksIDB4NWM1ZDg0NDYpLCBUT0JOKDB4YzAyMDgw
NzcsIDB4MTNhZTE5NzkpLAorICAgICAgICAgICBUT0JOKDB4YWRjYWVlNTUsIDB4M2JhNTljYzcp
LCBUT0JOKDB4MjBlZDZkNmIsIDB4YTJjYjgxYmEpfX0sCisgICAgICAgICB7e1RPQk4oMHgwOTUy
YmExOSwgMHhiNmVmY2ZmYyksIFRPQk4oMHg2MGYxMmQ2OCwgMHg5N2MwYjg3YyksCisgICAgICAg
ICAgIFRPQk4oMHg0ZWUyYzdjNCwgMHg5Y2FhMzBiYyksIFRPQk4oMHg3NjcyMzhiNywgMHg5N2Zi
ZmY0ZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZWJjNzM5MjEsIDB4NTAxYjVkOTIpLCBUT0JOKDB4
MzI3OWUzZGYsIDB4YzJhMzc3MzcpLAorICAgICAgICAgICBUT0JOKDB4OWZjMTJiYzgsIDB4NmQx
OTc1NDMpLCBUT0JOKDB4ZmE5NGRjNmYsIDB4MGE0MGRiNGUpfX0sCisgICAgICAgICB7e1RPQk4o
MHg3MzkyYjQxYSwgMHg1MzBjY2JiZCksIFRPQk4oMHg4N2M4MjE0NiwgMHhlYTgyMzUyNSksCisg
ICAgICAgICAgIFRPQk4oMHhhNTJmOTg0YywgMHgwNWQ5OGQwYyksIFRPQk4oMHgyYWU1N2Q3Mywg
MHg1ZWY2OTc0Yyl9LAorICAgICAgICAgIHtUT0JOKDB4OTM3N2Y3YmYsIDB4MzA0MmE2ZGQpLCBU
T0JOKDB4YjFhMDA3YzAsIDB4MTk2NDdhNjQpLAorICAgICAgICAgICBUT0JOKDB4ZmFhOTA3OWEs
IDB4MGNjYTk3NjcpLCBUT0JOKDB4M2Q4MWEyNWIsIDB4ZjY4ZjcyZDUpfX0sCisgICAgICAgICB7
e1RPQk4oMHg3NTIwNjdmOCwgMHhmZjgxNTc4ZSksIFRPQk4oMHg3ODYyMjE1MCwgMHg5MDQ1NDQ3
ZCksCisgICAgICAgICAgIFRPQk4oMHhjMGMyMmZjZiwgMHgwNTA1YWE2ZiksIFRPQk4oMHgxMDMw
ZjBhNiwgMHg2YmVkMWM3Nyl9LAorICAgICAgICAgIHtUT0JOKDB4MzFmMjlmMTUsIDB4MWYwYmQ3
MzkpLCBUT0JOKDB4MmQ3OTg5YzcsIDB4ZTZkZWJlODUpLAorICAgICAgICAgICBUT0JOKDB4NWMw
NzBlNzIsIDB4OGU2NzdlOTgpLCBUT0JOKDB4MGE4MTdiZDMsIDB4MDZlODFmZDUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhjMTEwZDgzMCwgMHhiMGYyYWM5NSksIFRPQk4oMHg0OGQwOTk1YSwgMHhh
YjIwZTY0ZSksCisgICAgICAgICAgIFRPQk4oMHgwZjNlMDBlMSwgMHg3NzI5Y2Q5YSksIFRPQk4o
MHgyYTU3MGMyMCwgMHhkZDU1Njk0Nil9LAorICAgICAgICAgIHtUT0JOKDB4OTEyZGJjZmQsIDB4
NGU4NjIxNGQpLCBUT0JOKDB4MmQwMTRlZTIsIDB4Y2Y2MTU0OTgpLAorICAgICAgICAgICBUT0JO
KDB4NTVlMmIxZTYsIDB4MzUzMGQ3NmUpLCBUT0JOKDB4YzUxMzVhZTQsIDB4ZmQwZmQ2ZDEpfX0s
CisgICAgICAgICB7e1RPQk4oMHgwMDY2MjczYSwgMHhkNGYzMDQ5ZiksIFRPQk4oMHhiYjhlOTg5
MywgMHhlNzA4NzQ3NyksCisgICAgICAgICAgIFRPQk4oMHgyZGJhMWRkYiwgMHgxNGM2ZTVmZCks
IFRPQk4oMHhkYmEzNzg4NiwgMHg1MWY1N2U2Yyl9LAorICAgICAgICAgIHtUT0JOKDB4NWFhZWUw
YTYsIDB4NWE3MmYyY2YpLCBUT0JOKDB4MTIwOGJmYmYsIDB4N2JlYTU2NDIpLAorICAgICAgICAg
ICBUT0JOKDB4ZjVjNmFhM2IsIDB4Njc4NzJjMzcpLCBUT0JOKDB4ZDcyNmUwODMsIDB4NDNmOTMy
MjQpfX0sCisgICAgICAgICB7e1RPQk4oMHgxODU0ZGFhNSwgMHgwNjFmMTY1OCksIFRPQk4oMHhj
MDAxNmRmMSwgMHhkZjBjZDJiMyksCisgICAgICAgICAgIFRPQk4oMHhjMmEzZjIzZSwgMHg4MzNk
NTBkZSksIFRPQk4oMHg3M2I2ODFkMiwgMHhiYmJkMzAxNyl9LAorICAgICAgICAgIHtUT0JOKDB4
MmYwNDZkYzQsIDB4M2FjMzQzYzApLCBUT0JOKDB4OWM4NDdlN2QsIDB4ODU3MTY0MjEpLAorICAg
ICAgICAgICBUT0JOKDB4ZTFlMTNjOTEsIDB4MDkxN2VlZDQpLCBUT0JOKDB4M2ZjOWVlYmQsIDB4
NjNhMWI5YzYpfX0sCisgICAgICAgICB7e1RPQk4oMHgwZjgxNmE3MiwgMHg3ZmUwMjI5OSksIFRP
Qk4oMHg2MzM1Y2NjMiwgMHgyOTRmMzMxOSksCisgICAgICAgICAgIFRPQk4oMHgzODIwMTc5Ziwg
MHg0NzQ1YzViZSksIFRPQk4oMHhlNjQ3Yjc4MiwgMHg5MjJmMDY2ZSl9LAorICAgICAgICAgIHtU
T0JOKDB4YzIyZTQ5ZGUsIDB4MDJjYWZiOGEpLCBUT0JOKDB4Mjk5YmMyZmYsIDB4ZmNjMmVjY2Mp
LAorICAgICAgICAgICBUT0JOKDB4OWE4ZmVlYTIsIDB4NmUwZTgyODIpLCBUT0JOKDB4YTYyNzI3
OGIsIDB4ZmU4OTMyMDUpfX0sCisgICAgICAgICB7e1RPQk4oMHhhN2UxOTczMywgMHg3OTMzZTQ3
YiksIFRPQk4oMHhmNGZmNmIxMywgMHgyZTc2NjQwMiksCisgICAgICAgICAgIFRPQk4oMHhhNGQ4
YmUwYSwgMHg5ODQ0MGQ5ZiksIFRPQk4oMHg2NThmNWMyZiwgMHgzODkzODgwOCl9LAorICAgICAg
ICAgIHtUT0JOKDB4OTBiNzU2NzcsIDB4Yzk1YjNiM2UpLCBUT0JOKDB4ZmEwNDQyNjksIDB4MzEz
N2I2ZmYpLAorICAgICAgICAgICBUT0JOKDB4MDc3YjAzOWIsIDB4NDNjNDdjMjkpLCBUT0JOKDB4
Y2NhOTVkZDMsIDB4OGE2NDQ1YjIpfX0sCisgICAgICAgICB7e1RPQk4oMHgwYjQ5OGJhNCwgMHgy
MzMzZmM0YyksIFRPQk4oMHgyNzRmOGU2OCwgMHhmNzM2YTFiMSksCisgICAgICAgICAgIFRPQk4o
MHg2Y2EzNDhmZCwgMHg1ZjFkNGIyZSksIFRPQk4oMHgyNGQzYmU3OCwgMHhhOGYxMDE5OSl9LAor
ICAgICAgICAgIHtUT0JOKDB4ODUzNWY4NTgsIDB4Y2ExNGY1MzApLCBUT0JOKDB4YTZlN2YxNjMs
IDB4NWI5ODJlNTEpLAorICAgICAgICAgICBUT0JOKDB4ODQ3Yzg1MTIsIDB4MzZlMWJmNjIpLCBU
T0JOKDB4ZjZhN2M1OGUsIDB4MDM0NDg0MTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg1ODNmMzcw
MywgMHhmOTM3NGFiNiksIFRPQk4oMHg4NjRmOTE5NSwgMHg2ZTU2NDE0NSksCisgICAgICAgICAg
IFRPQk4oMHgzM2JjM2Y0OCwgMHgyMjUyNmQ1MCksIFRPQk4oMHg5ZjMyM2M4MCwgMHgxMjYyYTQ5
Nil9LAorICAgICAgICAgIHtUT0JOKDB4YWE5N2E3YWUsIDB4M2YwNDZhOWEpLCBUT0JOKDB4NzBk
YTE4M2UsIDB4ZGY4YTAzOWEpLAorICAgICAgICAgICBUT0JOKDB4NWI2OGY3MWMsIDB4NTJhYTBi
YTYpLCBUT0JOKDB4OWJlMGZlNTEsIDB4MjE0NTljMmQpfX0sCisgICAgICAgICB7e1RPQk4oMHhj
MWUxN2ViNiwgMHhjYmM2MTNlNSksIFRPQk4oMHgzMzEzMWQ1NSwgMHg0OTdlYTYxYyksCisgICAg
ICAgICAgIFRPQk4oMHgyZjY5ZDM5ZSwgMHhhZjdlZGVkNSksIFRPQk4oMHg3M2MyZjQzNCwgMHhk
ZTZhZjExYil9LAorICAgICAgICAgIHtUT0JOKDB4NGNhNTI0OTMsIDB4YTRhMzc1ZmEpLCBUT0JO
KDB4NWYwNjc4N2MsIDB4YjgzM2M1YzIpLAorICAgICAgICAgICBUT0JOKDB4ODE0ZTA5MWYsIDB4
M2U2ZTcxY2YpLCBUT0JOKDB4NzY0NTFmNTcsIDB4OGI3NDY2NjYpfX19LAorICAgICAgICB7e3tU
T0JOKDB4ODBmOWJkZWYsIDB4Njk0ZGI3ZTApLCBUT0JOKDB4ZWRjYTg3ODcsIDB4YjlmY2RkYzYp
LAorICAgICAgICAgICBUT0JOKDB4NTE5ODFjMzQsIDB4MDNiOGRjZTEpLCBUT0JOKDB4NDI3NGRj
ZjEsIDB4NzBlMTBiYTEpfSwKKyAgICAgICAgICB7VE9CTigweGY3Mjc0M2I4LCAweDZkZWY2ZDFh
KSwgVE9CTigweGQyNWIxNjcwLCAweGViZGIxODY2KSwKKyAgICAgICAgICAgVE9CTigweGM0NDkx
ZThjLCAweDA1MGM2ZjU4KSwgVE9CTigweDJiZTJiMmFiLCAweDg3ZmJkN2Y1KX19LAorICAgICAg
ICAge3tUT0JOKDB4M2UwZTVjOWQsIDB4ZDExMWY4ZWMpLCBUT0JOKDB4YmNjMzNmOGQsIDB4Yjdj
NGU3NjApLAorICAgICAgICAgICBUT0JOKDB4NzAyZjlhOTEsIDB4YmQzOTJhNTEpLCBUT0JOKDB4
N2RhNGE3OTUsIDB4YzEzMmU5MmQpfSwKKyAgICAgICAgICB7VE9CTigweDFhMGIwYWUzLCAweDBi
YjExNTFiKSwgVE9CTigweDU0ZmViYWM4LCAweDAyZTMyMjUxKSwKKyAgICAgICAgICAgVE9CTigw
eGVhM2E1MDgyLCAweDY5NGU5ZTc4KSwgVE9CTigweGU1OGZmZWMxLCAweGU0ZmU0MGI4KX19LAor
ICAgICAgICAge3tUT0JOKDB4Zjg1NTkyZmMsIDB4ZDFlMGNmOWUpLCBUT0JOKDB4ZGVhNzVmMGQs
IDB4YzBlN2IyZTgpLAorICAgICAgICAgICBUT0JOKDB4YzA0MjE1Y2YsIDB4YzEzNTU4NGUpLCBU
T0JOKDB4MTc0ZmM3MjcsIDB4MmY1NzA5MmEpfSwKKyAgICAgICAgICB7VE9CTigweGU3Mjc3ODc3
LCAweGViOTMwYmVhKSwgVE9CTigweDUwNGNhY2NiLCAweDVlYjAyYTVhKSwKKyAgICAgICAgICAg
VE9CTigweGY5ZmUwOGY3LCAweGY1MjQxYjliKSwgVE9CTigweGU3ZmI2MmY0LCAweDhkNWNhOTU0
KX19LAorICAgICAgICAge3tUT0JOKDB4ZmJiODM0OWQsIDB4MjljNDEyMGIpLCBUT0JOKDB4OWY5
NDM5MWYsIDB4YzBkMGQ5MTUpLAorICAgICAgICAgICBUT0JOKDB4YzQwNzRmYTcsIDB4NTQxMGJh
NTEpLCBUT0JOKDB4YTY2YWRiZjYsIDB4MTUwYTU5MTEpfSwKKyAgICAgICAgICB7VE9CTigweGMx
NjQ1NDNjLCAweDM0YmZjYTM4KSwgVE9CTigweGUwZjI3NTYwLCAweGI5ZTFjY2ZjKSwKKyAgICAg
ICAgICAgVE9CTigweDk5ZGEwZjUzLCAweGU4MjAyMTljKSwgVE9CTigweGU4MjM0NDk4LCAweGM2
YjQ5OTdhKX19LAorICAgICAgICAge3tUT0JOKDB4Y2ZiODhiNzYsIDB4OWQ0YzU0MjMpLCBUT0JO
KDB4OWU1NmViMTAsIDB4YjA1MjFjNDkpLAorICAgICAgICAgICBUT0JOKDB4NDE4ZTBiNWUsIDB4
YmU4NzAwYTEpLCBUT0JOKDB4MDBjYmFhZDYsIDB4ZjkzY2I1OGEpfSwKKyAgICAgICAgICB7VE9C
TigweGU5MjNmYmRlLCAweGQ5MmE1ZTY3KSwgVE9CTigweGNhNDk3OWFjLCAweDFmMzQ3ZjExKSwK
KyAgICAgICAgICAgVE9CTigweDg5MTYyZDg1LCAweDZiYzA1ODViKSwgVE9CTigweGRkNjI1NGFm
LCAweGFjM2M3MGUzKX19LAorICAgICAgICAge3tUT0JOKDB4N2IyM2M1MTMsIDB4NTE2ZTE5ZTQp
LCBUT0JOKDB4NTZlMmU4NDcsIDB4YzVjNGQ1OTMpLAorICAgICAgICAgICBUT0JOKDB4OWY3Mjdk
NzMsIDB4NWNlNzFlZjYpLCBUT0JOKDB4NWI2MzA0YTYsIDB4Zjc5YTQ0YzUpfSwKKyAgICAgICAg
ICB7VE9CTigweDY2MzhhNzM2LCAweDNhYjdlNDMzKSwgVE9CTigweDFhZGVhNDcwLCAweGZlNzQy
ZjgzKSwKKyAgICAgICAgICAgVE9CTigweGUwNTRiODU0LCAweDViN2ZjMTlmKSwgVE9CTigweGY5
MzUzODFhLCAweGJhMWQwNjk4KX19LAorICAgICAgICAge3tUT0JOKDB4NTQ2ZWFiMmQsIDB4Nzk5
ZTlhNzQpLCBUT0JOKDB4OTYyMzllMGUsIDB4YTk0OWY3MjkpLAorICAgICAgICAgICBUT0JOKDB4
Y2EyNzRjNmIsIDB4NzA5MDA1NWEpLCBUT0JOKDB4ODM1MTQyYzMsIDB4OTAyMGM5YjApfSwKKyAg
ICAgICAgICB7VE9CTigweGE0MDU2NjdhLCAweGEyZTg4MDdmKSwgVE9CTigweDI5ZjJjMDg1LCAw
eDFhYTNkMzllKSwKKyAgICAgICAgICAgVE9CTigweGNjNTU1ZDY0LCAweDQyZmM3MmY1KSwgVE9C
TigweGU4NTZlMGU3LCAweGZiZWFjYjNjKX19LAorICAgICAgICAge3tUT0JOKDB4YjU1MDRmOWQs
IDB4OTE4ZTQ5MzYpLCBUT0JOKDB4NjUwMzVlZjYsIDB4YjI1MTM5ODIpLAorICAgICAgICAgICBU
T0JOKDB4MDU1M2EwYzIsIDB4NmY0ZDljYjkpLCBUT0JOKDB4NmNiMTBkNTYsIDB4YmVhODU1MDkp
fSwKKyAgICAgICAgICB7VE9CTigweDQ4ZDk1N2I3LCAweGEyNDJkYTExKSwgVE9CTigweDE2YTRk
M2RkLCAweDY3MmI3MjY4KSwKKyAgICAgICAgICAgVE9CTigweDNkN2U2MzdjLCAweDg1MDJhOTZi
KSwgVE9CTigweDI3YzcwMzJiLCAweDczMGQ0NjNiKX19LAorICAgICAgICAge3tUT0JOKDB4YmRj
MDJiMTgsIDB4ZTQxMzZhMTQpLCBUT0JOKDB4YmFjZjk2OWQsIDB4Njc4ZTMyYmYpLAorICAgICAg
ICAgICBUT0JOKDB4Yzk4ZDg5YTMsIDB4ZGQ5YzNjMDMpLCBUT0JOKDB4N2I5MjQyMGEsIDB4MjNi
ZWNjNGYpfSwKKyAgICAgICAgICB7VE9CTigweGQ0YjQxZjc4LCAweGM2NGQ1NjVjKSwgVE9CTigw
eDlmOTY5ZDAwLCAweDEwZjI4Mjk1KSwKKyAgICAgICAgICAgVE9CTigweGVjN2Y3Zjc2LCAweGIx
M2QwNTFhKSwgVE9CTigweDA4OTQ1ZTFlLCAweGE5MmRhNTg1KX19LAorICAgICAgICAge3tUT0JO
KDB4NTUzNjZiN2QsIDB4NTg0NjQyNmYpLCBUT0JOKDB4ZTdkMDllODksIDB4MjQ3ZDQ0MWQpLAor
ICAgICAgICAgICBUT0JOKDB4NTEwYjQwNGQsIDB4NzM2ZmJmNDgpLCBUT0JOKDB4N2ZhMDAzZDAs
IDB4ZTc4NGJkN2QpfSwKKyAgICAgICAgICB7VE9CTigweDI1Zjc2MTRmLCAweDE3ZmQ5NTk2KSwg
VE9CTigweDQ5ZTBlMGExLCAweDM1Y2I5OGRiKSwKKyAgICAgICAgICAgVE9CTigweDJjNjU5NTdi
LCAweDJlODNhNzZhKSwgVE9CTigweDVkNDBkYThkLCAweGNkZGJlMGY4KX19LAorICAgICAgICAg
e3tUT0JOKDB4ZjJiOGM0MDUsIDB4MDUwYmFkMjQpLCBUT0JOKDB4ODkxODQyNmQsIDB4YzJhYTQ4
MjMpLAorICAgICAgICAgICBUT0JOKDB4MmFlYWIzZGQsIDB4YTM4MzY1YTcpLCBUT0JOKDB4NzIw
MzE3MTcsIDB4N2M5MWI2OTApfSwKKyAgICAgICAgICB7VE9CTigweDhiMDBkNjk5LCAweDYwYTk0
MTIwKSwgVE9CTigweDQ3OGEyNTVkLCAweGU5OWVhZWVjKSwKKyAgICAgICAgICAgVE9CTigweGJm
NjU2YTVmLCAweDZmNjBhYWZkKSwgVE9CTigweGRmZDdjYjc1LCAweDVkZWU3N2IzKX19LAorICAg
ICAgICAge3tUT0JOKDB4MzdmNjhiYjQsIDB4YTU5NTkzOWQpLCBUT0JOKDB4MDM1NTY0NzksIDB4
Mjg3NDAyMTcpLAorICAgICAgICAgICBUT0JOKDB4OGU3NDBlN2MsIDB4ODRhZDc2MTIpLCBUT0JO
KDB4ZDg5YmM4NDMsIDB4OTA0NDY5NWYpfSwKKyAgICAgICAgICB7VE9CTigweGY3ZjNkYTVkLCAw
eDg1YTkxODRkKSwgVE9CTigweDU2MjU2M2JiLCAweDlmYzBiMDc0KSwKKyAgICAgICAgICAgVE9C
TigweDA2ZDJlNmFhLCAweGY4OGE4ODhlKSwgVE9CTigweDYxMmQ4NjQzLCAweDE2MWZiZTdjKX19
LAorICAgICAgICAge3tUT0JOKDB4NDY1ZWRiYTcsIDB4ZjY0MDg1ZTcpLCBUT0JOKDB4YjIzMGYz
MDQsIDB4MjlhYTg1MTEpLAorICAgICAgICAgICBUT0JOKDB4NTMzODg0MjYsIDB4Y2RhMmQxODgp
LCBUT0JOKDB4OTA4ODU3MzUsIDB4NGI2NjY2NDkpfSwKKyAgICAgICAgICB7VE9CTigweDZmMDJm
ZjlhLCAweDY1MmY1NGY2KSwgVE9CTigweDY1YzgyMjk0LCAweDVmYWUyYmYwKSwKKyAgICAgICAg
ICAgVE9CTigweDc4MTZhZGUwLCAweDYyZjVlZWUzKSwgVE9CTigweGRjZGJkZjQzLCAweGZjYzU2
ZDcwKX19LAorICAgICAgICAge3tUT0JOKDB4OWZiM2JiYTMsIDB4NTQ1MzBiYjIpLCBUT0JOKDB4
YmRlM2VmNzcsIDB4Y2IwODY5ZWEpLAorICAgICAgICAgICBUT0JOKDB4ODliYzkwNDYsIDB4MGI0
MzExNjMpLCBUT0JOKDB4NGQwM2Q3ZDIsIDB4ZTQ4MTlhMzUpfSwKKyAgICAgICAgICB7VE9CTigw
eDMzYWU0ZjllLCAweDQzYjZhNzgyKSwgVE9CTigweDIxNmRiMzA3LCAweDljODhhNjg2KSwKKyAg
ICAgICAgICAgVE9CTigweDkxZGQ4OGUwLCAweDAwZmZlZGQ5KSwgVE9CTigweGIyODBkYTlmLCAw
eDEyYmQ0ODQwKX19LAorICAgICAgICAge3tUT0JOKDB4MzJhN2NiOGEsIDB4MTYzNWU3NDEpLCBU
T0JOKDB4ZmUxNDAwOGEsIDB4NzhiZTAyYTcpLAorICAgICAgICAgICBUT0JOKDB4M2ZhZmIzMzQs
IDB4MWI3YWUwMzApLCBUT0JOKDB4N2ZkNTA4ZTcsIDB4NWFkZDBjZTkpfSwKKyAgICAgICAgICB7
VE9CTigweDcyYzgzMjE5LCAweGQ2MDdhZDUxKSwgVE9CTigweDBmMjI5YzBhLCAweDhkNDA5NjRh
KSwKKyAgICAgICAgICAgVE9CTigweDFiZTJjMzM2LCAweDFjODc4ZGEyKSwgVE9CTigweGUwYzk2
NzQyLCAweGVhYjJhYjg2KX19LAorICAgICAgICAge3tUT0JOKDB4NDU4Zjg2OTEsIDB4M2U1Mzhj
ZDcpLCBUT0JOKDB4YTcwMDFmNmMsIDB4OGUwOGFkNTMpLAorICAgICAgICAgICBUT0JOKDB4NTJi
OGM2ZTYsIDB4YmY1ZDE1ZmYpLCBUT0JOKDB4NTQ4MjM0YTQsIDB4MDExMjE1ZGQpfSwKKyAgICAg
ICAgICB7VE9CTigweGZmNWE5ZDJkLCAweDNkNWI0MDQ1KSwgVE9CTigweGIwZmZlZWI2LCAweDRh
OTA0MTkwKSwKKyAgICAgICAgICAgVE9CTigweDU1YTNhY2E0LCAweDQ4NjA3ZjhiKSwgVE9CTigw
eDhjYmQ2NjVjLCAweDMwYTA2NzJhKX19LAorICAgICAgICAge3tUT0JOKDB4ODdmODM0ZTAsIDB4
NDI1ODMwNjgpLCBUT0JOKDB4MDJkYTJhZWIsIDB4ZjNmNmU2ODMpLAorICAgICAgICAgICBUT0JO
KDB4NmI3NjNlNWQsIDB4MDVjMTIyNDgpLCBUT0JOKDB4NzIzMDM3OGYsIDB4NjVhOGFlZmMpfSwK
KyAgICAgICAgICB7VE9CTigweDkzYmQ4MGI1LCAweDcxZThlNWNhKSwgVE9CTigweDUzYWIwNDFj
LCAweGIzYjYyNTI0KSwKKyAgICAgICAgICAgVE9CTigweDFiODYwNTEzLCAweDZjOWM1NTJlKSwg
VE9CTigweGU4NGQ0MDJjLCAweGQ1NTI0ZTY2KX19LAorICAgICAgICAge3tUT0JOKDB4YTM3ZjM1
NzMsIDB4ZjM3ZjU5MzcpLCBUT0JOKDB4ZWIwZjZjN2QsIDB4ZDFlNGZjYTUpLAorICAgICAgICAg
ICBUT0JOKDB4Mjk2NWE1NTQsIDB4YWM4YWIwZmMpLCBUT0JOKDB4MTdmYmY1NmMsIDB4Mjc0Njc2
YWMpfSwKKyAgICAgICAgICB7VE9CTigweDJlMmY2YmQ5LCAweGFjZjdkNzIwKSwgVE9CTigweDQx
ZmM4Zjg4LCAweDEwMjI0NzY2KSwKKyAgICAgICAgICAgVE9CTigweDUxN2ExNGIzLCAweDg1ZDUz
YmVmKSwgVE9CTigweGRhZTMyN2E1LCAweDdkNzZhN2QxKX19LAorICAgICAgICAge3tUT0JOKDB4
NmFkMGEwNjUsIDB4YzQ4MTgyNjcpLCBUT0JOKDB4MzNhYTE4OWIsIDB4MzdjMWJiYzEpLAorICAg
ICAgICAgICBUT0JOKDB4NjQ5NzBiNTIsIDB4MjczOTJhOTIpLCBUT0JOKDB4MjE2OTlhMWMsIDB4
MmQxNTM1ZWEpfSwKKyAgICAgICAgICB7VE9CTigweGNkMjA3NzljLCAweGMyZDdhN2ZkKSwgVE9C
TigweGUzMTg2MDU5LCAweDk5YzgzY2YyKSwKKyAgICAgICAgICAgVE9CTigweDliNjk0NDBiLCAw
eDcyYzBiOGM3KSwgVE9CTigweGE4MTQ5N2Q3LCAweDdiOWUwZTRkKX19LAorICAgICAgICAge3tU
T0JOKDB4NTE1ZDVjODksIDB4MWY1ZjgyZGMpLCBUT0JOKDB4OWE3ZjY3ZDcsIDB4NjM2MTA3OWUp
LAorICAgICAgICAgICBUT0JOKDB4YThkYTgxZTMsIDB4MTFhMzUzMzApLCBUT0JOKDB4ZTQ0OTkw
YzQsIDB4NGIxOGJlMWIpfSwKKyAgICAgICAgICB7VE9CTigweGM3ZDVlZDk1LCAweGFmMTAzZTU5
KSwgVE9CTigweGVjZThhYmE3LCAweDhkYWM5MjYxKSwKKyAgICAgICAgICAgVE9CTigweGJlODJi
MDk5LCAweDkzOTRiOGQzKSwgVE9CTigweDY4MzBmMDlhLCAweDE2YWRmZTgzKX19LAorICAgICAg
ICAge3tUT0JOKDB4MjUwYTI5YjQsIDB4ODgxNzJkMDEpLCBUT0JOKDB4OGIyMGJkNjUsIDB4Y2Fm
ZjllMDIpLAorICAgICAgICAgICBUT0JOKDB4YjhhNzY2MWUsIDB4ZThhNjMyOWEpLCBUT0JOKDB4
NDUyMDMwNGQsIDB4ZDNmY2U5MjApfSwKKyAgICAgICAgICB7VE9CTigweGFlNDVkYTFmLCAweDJi
NDdmN2VmKSwgVE9CTigweGUwN2Y1Mjg4LCAweDViZmZjNTQwKSwKKyAgICAgICAgICAgVE9CTigw
eGY3OTk3MDA5LCAweDM0NjRmODc0KSwgVE9CTigweDIyNDRjMmNkLCAweGE2ZmExZjM4KX19LAor
ICAgICAgICAge3tUT0JOKDB4NDNjNDFhYzEsIDB4OTRkN2Q5YjEpLCBUT0JOKDB4NWJhZmRkODIs
IDB4YzgyZTdmMTcpLAorICAgICAgICAgICBUT0JOKDB4ZGYwNjE0YzEsIDB4NWZkYTBmY2EpLCBU
T0JOKDB4NzRiMDQzYTcsIDB4YThhZTM3YWQpfSwKKyAgICAgICAgICB7VE9CTigweDNiYTZhZmEx
LCAweDllNzE3MzRjKSwgVE9CTigweDE1ZDU0MzdlLCAweDljNDUwZjJlKSwKKyAgICAgICAgICAg
VE9CTigweDRhNTg4M2ZlLCAweDY3ZTI0MmIxKSwgVE9CTigweDUxNDNiZGMyLCAweDJjMTk1M2My
KX19LAorICAgICAgICAge3tUT0JOKDB4NTQyYjhiNTMsIDB4ZmM1ZTg5MjApLCBUT0JOKDB4MzYz
YmY5YTgsIDB4OWE5Y2VlMDgpLAorICAgICAgICAgICBUT0JOKDB4MDIzNzVmMTAsIDB4YzM0ODZl
MDgpLCBUT0JOKDB4MjAzNzU0M2IsIDB4OGM1ZTcwZDIpfSwKKyAgICAgICAgICB7VE9CTigweDcx
MDliY2NjLCAweDYyNTY0MGI0KSwgVE9CTigweGNiYzEwNTFlLCAweDhiYzYyYzNiKSwKKyAgICAg
ICAgICAgVE9CTigweGY4NDU1ZmVkLCAweDgwM2YyNmVhKSwgVE9CTigweDZiYWRjZWFiLCAweGVi
MzcyNDI0KX19LAorICAgICAgICAge3tUT0JOKDB4YTJhOWNlN2MsIDB4NmI1M2Y1ZjkpLCBUT0JO
KDB4NjQyNDY1OTUsIDB4MWIxNzZkOTkpLAorICAgICAgICAgICBUT0JOKDB4YjEyOThkMzYsIDB4
Yjk1YzA4MWIpLCBUT0JOKDB4NTM1MDViYjgsIDB4MWQ5YTllZTYpfSwKKyAgICAgICAgICB7VE9C
TigweDNmNmY5ZTYxLCAweGYyYmE3MGIwKSwgVE9CTigweGQwN2UxNmM5LCAweDhhZmFkNDUzKSwK
KyAgICAgICAgICAgVE9CTigweDlmMTY5NGJiLCAweGU3ZWI0YTZhKSwgVE9CTigweGRmZWJjZWQ5
LCAweDNjYjBiYzhlKX19LAorICAgICAgICAge3tUT0JOKDB4OTJkM2RjZGMsIDB4NTM4NjhjOGIp
LCBUT0JOKDB4MTc0MzExYTIsIDB4Mzg2MTA3YTYpLAorICAgICAgICAgICBUT0JOKDB4NDEwOWUw
N2MsIDB4Njg5YjRlNjQpLCBUT0JOKDB4MzBlNDU4N2YsIDB4MmRmM2RjYjYpfSwKKyAgICAgICAg
ICB7VE9CTigweDg0MWFlYTMxLCAweDA4MTFiM2IyKSwgVE9CTigweDYxNDRkNDFkLCAweDBjY2U0
M2VhKSwKKyAgICAgICAgICAgVE9CTigweDQ2NGM0NTgxLCAweDJhOWE3ODAzKSwgVE9CTigweGQw
M2QzNzFmLCAweDNlMTU4OTMwKX19LAorICAgICAgICAge3tUT0JOKDB4YzY3NmQ3ZjIsIDB4YjFm
MzM5MGIpLCBUT0JOKDB4OWY3YTFiOGMsIDB4YTViNjEyNzIpLAorICAgICAgICAgICBUT0JOKDB4
NGViZWJmYzksIDB4YzJlMTI3YTkpLCBUT0JOKDB4NDYwMjUwMGMsIDB4NWRkOTk3YmYpfSwKKyAg
ICAgICAgICB7VE9CTigweDdmMDk3NzFjLCAweDQ3MTEyMzBmKSwgVE9CTigweDA1OGViMzdjLCAw
eDAyMGYwOWMxKSwKKyAgICAgICAgICAgVE9CTigweGFiNjkzZDRiLCAweGZlZTVlMzhiKSwgVE9C
TigweDkyODllYjFmLCAweDQ2NTNjYmMwKX19LAorICAgICAgICAge3tUT0JOKDB4YmVjZjQ2YWIs
IDB4ZDUxYjljZjUpLCBUT0JOKDB4ZDJhYTljMDIsIDB4OWYwMTIxYWYpLAorICAgICAgICAgICBU
T0JOKDB4MzZhYWY3ZDIsIDB4ZTkwZGMyNzQpLCBUT0JOKDB4OTA5ZTRlYTAsIDB4NDhiOTVhM2Mp
fSwKKyAgICAgICAgICB7VE9CTigweGU2YjcwNDk2LCAweDZmMzJkYmRiKSwgVE9CTigweDY3MjE4
OGEwLCAweDhiMDMwYjNlKSwKKyAgICAgICAgICAgVE9CTigweGVlZmZlNWIzLCAweGNmYjYxN2Uy
KSwgVE9CTigweDg3ZTk0N2RlLCAweDdjODI3MDllKX19LAorICAgICAgICAge3tUT0JOKDB4YTQ0
ZDJiMzksIDB4MTc3MGY1YTcpLCBUT0JOKDB4ZTRkNGQ3OTEsIDB4MGU0NGViODIpLAorICAgICAg
ICAgICBUT0JOKDB4NDJlNjlkMWUsIDB4M2Y2OTcxMmEpLCBUT0JOKDB4YmYxMWM0ZDYsIDB4YWM2
YTgyMGUpfSwKKyAgICAgICAgICB7VE9CTigweGI1ZTdmM2U1LCAweDQyYzQyMjRjKSwgVE9CTigw
eGQ2YjRlODFjLCAweDQ0OWQ5NDFjKSwKKyAgICAgICAgICAgVE9CTigweDVkNzJiZDE2LCAweDU0
NTBlODc4KSwgVE9CTigweDZhNjFlMjhhLCAweGVlMjVhYzU0KX19LAorICAgICAgICAge3tUT0JO
KDB4MzMyNzIwOTQsIDB4ZTZmMWNkOTUpLCBUT0JOKDB4NzUxMmYzMGQsIDB4MGQxODY3M2YpLAor
ICAgICAgICAgICBUT0JOKDB4MzJmN2E0Y2EsIDB4NWFmYzE0NjQpLCBUT0JOKDB4MmYwOTU2NTYs
IDB4NmJiYjk3N2IpfSwKKyAgICAgICAgICB7VE9CTigweDU4NmY0N2NhLCAweGE4MjI2MjAwKSwg
VE9CTigweDAyYzg2OGFkLCAweDFhYzA3MzY5KSwKKyAgICAgICAgICAgVE9CTigweDRlZjJiODQ1
LCAweGM2MTNhY2JlKSwgVE9CTigweDQzZDc1NjNlLCAweDAzODYwNTRjKX19LAorICAgICAgICAg
e3tUT0JOKDB4NTRkYTlkYzcsIDB4YWI5NTI1NzgpLCBUT0JOKDB4YjU0MjNkZjIsIDB4MjZlODRk
MGIpLAorICAgICAgICAgICBUT0JOKDB4YThiNjRlZWIsIDB4OWI4NzIwNDIpLCBUT0JOKDB4YWMy
MDU3ODIsIDB4NTk5MGY2ZGYpfSwKKyAgICAgICAgICB7VE9CTigweDRmZjY5NmViLCAweDIxZjRj
NzdhKSwgVE9CTigweDFhNzljM2U0LCAweGFhYjI3M2FmKSwKKyAgICAgICAgICAgVE9CTigweDI5
YmM5MjJlLCAweDk0MzZiM2YxKSwgVE9CTigweGZmODA3ZWY4LCAweGQ2ZDlhMjdhKX19LAorICAg
ICAgICAge3tUT0JOKDB4ODJhY2VhM2QsIDB4Nzc4ZjIyYTApLCBUT0JOKDB4ZmIxMGIyZTgsIDB4
NWI1ZTc0NjkpLAorICAgICAgICAgICBUT0JOKDB4YzBiMTY5ODAsIDB4MjgxOGVlN2QpLCBUT0JO
KDB4MDExYWZmZjQsIDB4YzkxYzFhMmYpfSwKKyAgICAgICAgICB7VE9CTigweDk1YTZkMTI2LCAw
eGFkMTI0NDE4KSwgVE9CTigweDMxYzA4MWE1LCAweGU3MmUyOTVmKSwKKyAgICAgICAgICAgVE9C
TigweDM2YmIyODNhLCAweGYyZjRkYjc1KSwgVE9CTigweGQxMTU1NDBmLCAweDdhY2VmNDYyKX19
LAorICAgICAgICAge3tUT0JOKDB4YzdmM2E4ZjgsIDB4MzNmNjc0NmMpLCBUT0JOKDB4MjFlNDZm
NjUsIDB4ZmVhOTkwY2EpLAorICAgICAgICAgICBUT0JOKDB4OTE1ZmQ1YzUsIDB4Y2FkZGIwYTkp
LCBUT0JOKDB4YmQ0MWYwMTYsIDB4Nzg2MTQ1NTUpfSwKKyAgICAgICAgICB7VE9CTigweDM0NmY0
NDM0LCAweDQyNmZmYjU4KSwgVE9CTigweDgwNTU5NDM2LCAweDE0ZGJjMjA0KSwKKyAgICAgICAg
ICAgVE9CTigweGYzZGQyMGZlLCAweDVhOTY5YjdmKSwgVE9CTigweDlkNTllOTU2LCAweGU4OTlh
MzlhKX19LAorICAgICAgICAge3tUT0JOKDB4ZjFiMDk3MWMsIDB4OGFkNGNmNGIpLCBUT0JOKDB4
MDM0NDg4NjAsIDB4MmZmYjhmYjgpLAorICAgICAgICAgICBUT0JOKDB4ZjA3MWFjM2MsIDB4NjUz
NDBiYTQpLCBUT0JOKDB4NDA4ZDA1OTYsIDB4YjI3ZmQ3NTgpfSwKKyAgICAgICAgICB7VE9CTigw
eGU3Yzc4ZWE0LCAweDk4YzM2NGIwKSwgVE9CTigweGE0YWFjNGE1LCAweDA1MWU4YWI1KSwKKyAg
ICAgICAgICAgVE9CTigweGI5ZTFkNTYwLCAweDQ4NWQ5MDAyKSwgVE9CTigweDlhY2Q1MThhLCAw
eDg4ODQ0NDU1KX19LAorICAgICAgICAge3tUT0JOKDB4ZTRjYTY4OGYsIDB4ZDA2ZjU2YzApLCBU
T0JOKDB4YTQ4YWY3MGQsIDB4ZGYwMjc5NzIpLAorICAgICAgICAgICBUT0JOKDB4NjkxZjBmMDQs
IDB4NWU5YTYwOWQpLCBUT0JOKDB4YTlkZDgyY2QsIDB4ZWU2MTI3MGUpfSwKKyAgICAgICAgICB7
VE9CTigweDg5MDNjYTYzLCAweGEwZWYxOGQzKSwgVE9CTigweDlmYjdlZTM1LCAweDNkNmNhM2Jk
KSwKKyAgICAgICAgICAgVE9CTigweGE3YjRhMDljLCAweGFiZjQ3ZDAzKSwgVE9CTigweDRjZGFk
YTAxLCAweDFjNjdkZThlKX19LAorICAgICAgICAge3tUT0JOKDB4NTIwMDM3NDksIDB4OTM1NWEy
NDQpLCBUT0JOKDB4ZTc3ZmQyYjYsIDB4NGYyMTUxYTkpLAorICAgICAgICAgICBUT0JOKDB4Njk1
ZDZjZjYsIDB4NjZiNGVmY2IpLCBUT0JOKDB4YzVhMGNhY2YsIDB4ZGEyY2ZlMjUpfSwKKyAgICAg
ICAgICB7VE9CTigweDEwNGVmZTVjLCAweGVmODExODY1KSwgVE9CTigweGY1MjgxM2U4LCAweDll
YTVjYzNkKSwKKyAgICAgICAgICAgVE9CTigweDg1NTY4M2RjLCAweDQwYjU4ZGJjKSwgVE9CTigw
eDAzMzhlY2RlLCAweDE3NWZjYjExKX19LAorICAgICAgICAge3tUT0JOKDB4ZjlhMDU2MzcsIDB4
NzQ5MjE1OTIpLCBUT0JOKDB4YjRmMTI2MWQsIDB4YjliYjlkMzEpLAorICAgICAgICAgICBUT0JO
KDB4NTUxNDI5YjcsIDB4NGU5YzU0NTkpLCBUT0JOKDB4YmUxODJlNmYsIDB4NmVhNzFmNTMpfSwK
KyAgICAgICAgICB7VE9CTigweGQzYTNiMDdjLCAweGRmYzUwNTczKSwgVE9CTigweDliYTFhZmRh
LCAweDYyYmU4ZDQ0KSwKKyAgICAgICAgICAgVE9CTigweDliY2ZkMmNiLCAweDUyYWI2NWQzKSwg
VE9CTigweGRmMTFkNTQ3LCAweGE5NTcxODAyKX19LAorICAgICAgICAge3tUT0JOKDB4MDk5NDAz
ZWUsIDB4MDJhMjQwNGEpLCBUT0JOKDB4NDk3NDA2ZjQsIDB4MjEwODhhNzEpLAorICAgICAgICAg
ICBUT0JOKDB4OTk0Nzk0MDksIDB4NTAwNGFlNzEpLCBUT0JOKDB4YmRiNDIwNzgsIDB4YTgxMmMz
NjIpfSwKKyAgICAgICAgICB7VE9CTigweDJiNzJhMzBmLCAweGQ4ODI4NDQyKSwgVE9CTigweDI4
M2FkZDI3LCAweGZjYjVlZDFjKSwKKyAgICAgICAgICAgVE9CTigweGY3YzBlMjAwLCAweDY2YTQw
MDE1KSwgVE9CTigweDNlM2JlNjQxLCAweDA4YjI5NWVmKX19LAorICAgICAgICAge3tUT0JOKDB4
YWMxMjdkYzEsIDB4ZTAzOGE2NzUpLCBUT0JOKDB4NzI5ZGVmZjMsIDB4OGM1YzYzMjApLAorICAg
ICAgICAgICBUT0JOKDB4YjdkZjhmZDQsIDB4YTkwZDJjNTMpLCBUT0JOKDB4OWI3NGIwZWMsIDB4
NjgxZTdjZDMpfSwKKyAgICAgICAgICB7VE9CTigweDVjYjVhNjIzLCAweGRhYjQwN2U1KSwgVE9C
TigweGNkYmQzNjE1LCAweDc2YjM0MGM2KSwKKyAgICAgICAgICAgVE9CTigweGExODQ0MTVhLCAw
eDdkMjgzOTJjKSwgVE9CTigweGMxODRjMWQ4LCAweGU5NmY3ODMwKX19LAorICAgICAgICAge3tU
T0JOKDB4YzMyMDRmMTksIDB4ODFkM2E4MGYpLCBUT0JOKDB4ZmRlMGM4NDEsIDB4YzhlMDI0MzIp
LAorICAgICAgICAgICBUT0JOKDB4NzgyMDNiM2UsIDB4ODE0OWUwYzEpLCBUT0JOKDB4NTkwNGJk
YmIsIDB4MDgwNTNhNzMpfSwKKyAgICAgICAgICB7VE9CTigweDMwZmMxZGQxLCAweDEwMWI2ODA1
KSwgVE9CTigweDQzYzIyM2JjLCAweDQ5YWE2ZDQ5KSwKKyAgICAgICAgICAgVE9CTigweDllZDY3
MTQxLCAweDdhMTc0MDg3KSwgVE9CTigweDMxMTQ2OWEwLCAweGQ1OTk3MDA4KX19LAorICAgICAg
ICAge3tUT0JOKDB4YjE4OWI2ODQsIDB4NWU0M2ZjNjEpLCBUT0JOKDB4ZjMyODIzNzUsIDB4ZTBk
M2FiNTcpLAorICAgICAgICAgICBUT0JOKDB4NGZhMzRiNjcsIDB4YjExODFkYTgpLCBUT0JOKDB4
NjIxZWQwYjIsIDB4OTllZTUyYjgpfSwKKyAgICAgICAgICB7VE9CTigweDliMTc4ZGUxLCAweGFk
OTkwNjc2KSwgVE9CTigweGQ1MWRlNjdiLCAweDU2ZDU0MDY1KSwKKyAgICAgICAgICAgVE9CTigw
eDJhMmMyN2M0LCAweDc1MzhjMjAxKSwgVE9CTigweDMzODU2ZWM4LCAweDM4YTQwZjVjKX19LAor
ICAgICAgICAge3tUT0JOKDB4MjUyMmZjMTUsIDB4YmU2Y2RjZGUpLCBUT0JOKDB4MWU2MDNmMzMs
IDB4OWYwYzZmODkpLAorICAgICAgICAgICBUT0JOKDB4Nzk5NGVkYzMsIDB4MTAzZTMwYTYpLCBU
T0JOKDB4MDMzYTAwZGIsIDB4MjIwYzg1M2UpfSwKKyAgICAgICAgICB7VE9CTigweGQzY2ZhNDA5
LCAweGY3YmI3ZmQ3KSwgVE9CTigweDcwZjg3ODFlLCAweDQ2MmQxOGY2KSwKKyAgICAgICAgICAg
VE9CTigweGJiZDgyOTgwLCAweDY4N2ZlMjk1KSwgVE9CTigweDZlZWY0YzMyLCAweDU5NTY2OWYz
KX19LAorICAgICAgICAge3tUT0JOKDB4ODZhOTMwM2IsIDB4MmY3ZTg1YzMpLCBUT0JOKDB4NWZj
ZTQ2MjEsIDB4NzE5ODhmOWIpLAorICAgICAgICAgICBUT0JOKDB4NWI5MzViZjYsIDB4YzEzOGFj
YjUpLCBUT0JOKDB4MzBlYTdkNjcsIDB4MjU2NjEyMTIpfSwKKyAgICAgICAgICB7VE9CTigweGVm
MWViNWY0LCAweGU1MWFiOWEyKSwgVE9CTigweDA1ODdjOThhLCAweGFlMDY3Yzc4KSwKKyAgICAg
ICAgICAgVE9CTigweGIzY2UxYjNjLCAweDc3Y2E5Y2E2KSwgVE9CTigweDJhNTUzZDRkLCAweDU0
YjVmMDU3KX19LAorICAgICAgICAge3tUT0JOKDB4Yzc4OTgyMzYsIDB4NGRhMjllYzIpLCBUT0JO
KDB4ZGJkZDVkMTMsIDB4YjljNTczMTYpLAorICAgICAgICAgICBUT0JOKDB4YzU3ZDZlNmIsIDB4
MmNkODBkNDcpLCBUT0JOKDB4ODBiNDYwY2YsIDB4ZmU5ZTczOTEpfSwKKyAgICAgICAgICB7VE9C
TigweDk4NjQ4Y2FiLCAweGY5NjNjMzFlKSwgVE9CTigweDY3ZjlmNjMzLCAweGNjNGQzMmZkKSwK
KyAgICAgICAgICAgVE9CTigweDBhZjQyYTlkLCAweGZkZjdjNjg3KSwgVE9CTigweDU1ZjI5MmEz
LCAweDBiMDE1ZWE3KX19LAorICAgICAgICAge3tUT0JOKDB4ODllNDY4YjIsIDB4Y2QyMWFiM2Qp
LCBUT0JOKDB4ZTUwNGYwMjIsIDB4YzM5M2QzOTIpLAorICAgICAgICAgICBUT0JOKDB4YWIyMWUx
ZDQsIDB4YTUwMTNhZjkpLCBUT0JOKDB4ZTMyODNmNzgsIDB4YzJjMjhhY2IpfSwKKyAgICAgICAg
ICB7VE9CTigweGYzOGIzNWY2LCAweDIyNmJmOTlmKSwgVE9CTigweGU4MzU0Mjc0LCAweDBlMjkx
ZTY5KSwKKyAgICAgICAgICAgVE9CTigweDYxNjczYTE1LCAweGIyMGMxNjJkKSwgVE9CTigweGMx
MDFkYzc1LCAweGIwNGZiZGJlKX19LAorICAgICAgICAge3tUT0JOKDB4ODMyM2I0YzIsIDB4MjU1
YmQ2MTcpLCBUT0JOKDB4NmM5Njk2OTMsIDB4NmMyYTkxNTQpLAorICAgICAgICAgICBUT0JOKDB4
YzZlNjU4NjAsIDB4NjI2NzkzODcpLCBUT0JOKDB4OGUwMWRiMGMsIDB4YjhjODhlMjMpfSwKKyAg
ICAgICAgICB7VE9CTigweDMzYzQyODczLCAweDg5M2E1NTU5KSwgVE9CTigweDc2MzBmMDRiLCAw
eDQ3YTNlMTQ5KSwKKyAgICAgICAgICAgVE9CTigweGI1ZDgwODA1LCAweGRkY2YzNWY4KSwgVE9C
TigweDU4MmNhMDgwLCAweDc3ZGZlNzMyKX19LAorICAgICAgICAge3tUT0JOKDB4MmM3MTU2ZTEs
IDB4MGIxODk0YTApLCBUT0JOKDB4OTIwMzQwMDEsIDB4ZDgxYzY4YzApLAorICAgICAgICAgICBU
T0JOKDB4ZWQyMjVkMDAsIDB4YzhiMTE1YjUpLCBUT0JOKDB4MjM3ZjljMjIsIDB4ODNiOTA3ZjIp
fSwKKyAgICAgICAgICB7VE9CTigweDBlYTJmMzJmLCAweDQ0NzBlMmMwKSwgVE9CTigweGI3MjVm
N2MxLCAweDU4YmU0ZTk1KSwKKyAgICAgICAgICAgVE9CTigweDBmMWRjYWZhLCAweGIxYWU1NDYz
KSwgVE9CTigweDU5ZWQ1MTg3LCAweDFiYTJmYzA0KX19LAorICAgICAgICAge3tUT0JOKDB4ZjZl
MGYzMTYsIDB4ZDAxMTVkNGQpLCBUT0JOKDB4NTE4MGIxMmYsIDB4ZDM2OTE1OTkpLAorICAgICAg
ICAgICBUT0JOKDB4MTU3ZTMyYzksIDB4NTI3ZjBhNDEpLCBUT0JOKDB4N2IwYjA4MWQsIDB4YThl
MGVjYzApfSwKKyAgICAgICAgICB7VE9CTigweDZkYmFhYThhLCAweGJmNGYwZGQwKSwgVE9CTigw
eDk5YjI4OWM3LCAweDRkMjUyNjk2KSwKKyAgICAgICAgICAgVE9CTigweDc5Yjc3NTVlLCAweGRi
Zjg2NGZlKSwgVE9CTigweDY5NzRlMmIxLCAweDc2Y2FkM2FiKX19LAorICAgICAgICAge3tUT0JO
KDB4MzVkYmJlZTIsIDB4MDZkZGQ2NTcpLCBUT0JOKDB4ZTdjYmRkMTEsIDB4MmZmM2E5NmQpLAor
ICAgICAgICAgICBUT0JOKDB4ODgzODE5NjgsIDB4MDc2YmU3NTgpLCBUT0JOKDB4MmQ3MzdlNzIs
IDB4MDhjOTFmNWQpfSwKKyAgICAgICAgICB7VE9CTigweDVmODNhYjYyLCAweDg2ZWMzNzc2KSwg
VE9CTigweDk4YWE2NDlkLCAweDk0NWZhN2ExKSwKKyAgICAgICAgICAgVE9CTigweGY0NzdlYzM3
LCAweDcyZWYwOTMzKSwgVE9CTigweDY2ZjUyYjFlLCAweDA5OGMxN2IxKX19LAorICAgICAgICAg
e3tUT0JOKDB4OWVlYzU4ZmIsIDB4ZDgwMzczOGIpLCBUT0JOKDB4OTFhYWFkZTcsIDB4ZTRlODZh
YTQpLAorICAgICAgICAgICBUT0JOKDB4NmIxYWU2MTcsIDB4YTViNTE0OTIpLCBUT0JOKDB4NjMy
NzIxMjEsIDB4YmJjNDU5NzQpfSwKKyAgICAgICAgICB7VE9CTigweDdlMGUyOGYwLCAweDg2MmM1
MTI5KSwgVE9CTigweDBhOGY3OWE5LCAweDMzMjFhNGEwKSwKKyAgICAgICAgICAgVE9CTigweGUy
NmQxNjY0LCAweDUwNDFjODhmKSwgVE9CTigweDA1NzFiODA1LCAweDUzMjMzZTNhKX19LAorICAg
ICAgICAge3tUT0JOKDB4ZDFiMGNjZGUsIDB4Yzk1MjA3MTEpLCBUT0JOKDB4NTVhOWU0ZWQsIDB4
M2M4Yjg0YmYpLAorICAgICAgICAgICBUT0JOKDB4OTQyNmJkMzksIDB4YTFmZWYzMTQpLCBUT0JO
KDB4NGY1ZjYzOGUsIDB4NmViOTNmMmIpfSwKKyAgICAgICAgICB7VE9CTigweGJhMmExZWQzLCAw
eDJiZjkzNDFiKSwgVE9CTigweGQ2M2MxMzIxLCAweDRkNDJkNWE5KSwKKyAgICAgICAgICAgVE9C
TigweGQyOTY0YTg5LCAweDMxNmRjN2M1KSwgVE9CTigweGQxNzU5NjA2LCAweGNhNTExODUxKX19
LAorICAgICAgICAge3tUT0JOKDB4ZDhhOTIwMWYsIDB4ZjllNmVkMzUpLCBUT0JOKDB4YjdiNWVl
NDUsIDB4NjczNjkyNWEpLAorICAgICAgICAgICBUT0JOKDB4MGE4M2ZiYmMsIDB4OTk1ODFhZjcp
LCBUT0JOKDB4MzA3NmJjNDAsIDB4NjRlZWIwNTEpfSwKKyAgICAgICAgICB7VE9CTigweDU1MTFj
OThjLCAweDAyZGVjMzEyKSwgVE9CTigweDI3MGRlODk4LCAweDIzOGRjYjc4KSwKKyAgICAgICAg
ICAgVE9CTigweDJjZjRjZjljLCAweDUzOWMwOGM5KSwgVE9CTigweGE3MGNiNjVlLCAweDM4ZDNi
MDZlKX19LAorICAgICAgICAge3tUT0JOKDB4YjEyZWMxMGUsIDB4Y2ZlNTdiYmQpLCBUT0JOKDB4
ODJjN2I2NTYsIDB4MzVhMGMyYjUpLAorICAgICAgICAgICBUT0JOKDB4ZGRjN2Q1Y2QsIDB4MTYx
YzY3YmQpLCBUT0JOKDB4ZTMyZTg5ODUsIDB4YWUzYTMyY2MpfSwKKyAgICAgICAgICB7VE9CTigw
eDdhYmE5NDQ0LCAweGQxMWE1NTI5KSwgVE9CTigweGU5NjRlZDAyLCAweDI0MjdmYTFhKSwKKyAg
ICAgICAgICAgVE9CTigweDE1MjgzOTJkLCAweDI0YTE3NzBhKSwgVE9CTigweGExNTJjZTJjLCAw
eDEyYzcyZmNkKX19LAorICAgICAgICAge3tUT0JOKDB4NzE0NTUzYTQsIDB4OGVjMDc2NDkpLCBU
T0JOKDB4MThiNGMyOTAsIDB4NDU5ZGQ0NTMpLAorICAgICAgICAgICBUT0JOKDB4ZWEzMmI3MTQs
IDB4N2I2NGIxMTApLCBUT0JOKDB4Yjg3MWJmYTUsIDB4MmU2ZjA3YTIpfSwKKyAgICAgICAgICB7
VE9CTigweGI2NzExMmU1LCAweDllMmUzYzliKSwgVE9CTigweGZiZjI1MGU1LCAweDQ0YWE5MGY2
KSwKKyAgICAgICAgICAgVE9CTigweGY3N2FlZGI4LCAweGJkNTM5MDA2KSwgVE9CTigweDNiMGNk
ZjlhLCAweGQxNzJhNjZmKX19LAorICAgICAgICAge3tUT0JOKDB4ZWRmNjlmZWEsIDB4ZjhjNTEx
ODcpLCBUT0JOKDB4MDViYjY3ZWMsIDB4NzQxZTRkYTcpLAorICAgICAgICAgICBUT0JOKDB4NDdk
ZjBmMzIsIDB4MDgxMTQzNDUpLCBUT0JOKDB4NTZmYWNiMDcsIDB4YmI5NzkyYjEpfSwKKyAgICAg
ICAgICB7VE9CTigweGYzZTAwN2U5LCAweDhmNjIyOWU0KSwgVE9CTigweDYyZDEwM2Y0LCAweDUy
NmZiYTBmKSwKKyAgICAgICAgICAgVE9CTigweDRmMzNiZWY3LCAweGIwMzM5ZDc5KSwgVE9CTigw
eDk4NDEzNTdiLCAweGI1OWJmZWMxKX19LAorICAgICAgICAge3tUT0JOKDB4ZmE4ZGJiNTksIDB4
YzM0ZTY3MDUpLCBUT0JOKDB4YzNjNzE4MGIsIDB4N2ZkYWE4NGMpLAorICAgICAgICAgICBUT0JO
KDB4Zjk1ODcyZmMsIDB4YTQxMDg1MzcpLCBUT0JOKDB4ODc1MGNjM2IsIDB4OTMyYTNlNWEpfSwK
KyAgICAgICAgICB7VE9CTigweGI2MWNjNjlkLCAweGI3Mjc1ZDdkKSwgVE9CTigweGZmYTAxNjhi
LCAweDJlNTliMmU5KSwKKyAgICAgICAgICAgVE9CTigweGNhMDMyYWJjLCAweDZlY2JiNDkzKSwg
VE9CTigweDFkODZkYmQzLCAweDJjOTA4MmQ4KX19LAorICAgICAgICAge3tUT0JOKDB4YWUxZTBi
NjcsIDB4ZTI4ZWY1YmEpLCBUT0JOKDB4MmM5YTQ2OTksIDB4Y2IxOGUxNjkpLAorICAgICAgICAg
ICBUT0JOKDB4MGVjZDBlMzMsIDB4MWU2YmJkMjApLCBUT0JOKDB4NTcxYjM2MGUsIDB4YWY1ZTgx
ZDIpfSwKKyAgICAgICAgICB7VE9CTigweGNkOWZlYTU4LCAweDEwMWMxZDQ1KSwgVE9CTigweDY2
NTE3ODhlLCAweDE4ODgwNDUyKSwKKyAgICAgICAgICAgVE9CTigweGE5OTcyNjM1LCAweDFmOGRk
NDQ2KSwgVE9CTigweDQ0YmVkMDIyLCAweGUzNzI4MWQwKX19LAorICAgICAgICAge3tUT0JOKDB4
MDk0YjJiMmQsIDB4MzNkYTUyNWQpLCBUT0JOKDB4ZjE5MzY3OGUsIDB4MTMxNDRmZDgpLAorICAg
ICAgICAgICBUT0JOKDB4YjhhYjViYTQsIDB4ZjRjMTA2MWQpLCBUT0JOKDB4NDM0M2I1ZmEsIDB4
ZGNjYmUwZjQpfSwKKyAgICAgICAgICB7VE9CTigweGE4NzAyMzcxLCAweDYzODEyNzEzKSwgVE9C
TigweDQ3YmY2ZDJkLCAweGY3NjExZDkzKSwKKyAgICAgICAgICAgVE9CTigweDQ2NzI5YjhjLCAw
eGJkMjFlMWQ3KSwgVE9CTigweDc0ODRkNGUwLCAweGQ2MjllNzdkKX19LAorICAgICAgICAge3tU
T0JOKDB4ODMwZTZlZWEsIDB4NjBkYmFjMWYpLCBUT0JOKDB4MjNkOGM0ODQsIDB4ZGEwNmEyZjcp
LAorICAgICAgICAgICBUT0JOKDB4ODk2NzE0YjAsIDB4NTBjYTUzNWIpLCBUT0JOKDB4ZGM4ZDM2
NDQsIDB4ZWJkOTdhOWIpfSwKKyAgICAgICAgICB7VE9CTigweDEwNmVmOWZhLCAweGIxMjE3N2I0
KSwgVE9CTigweGY3OWJmNDY0LCAweDUzNGQ1ZDljKSwKKyAgICAgICAgICAgVE9CTigweDI1Mzdh
MzQ5LCAweGE2YWIzNjBiKSwgVE9CTigweGM3YzU0MjUzLCAweGEwMGM3NDRmKX19LAorICAgICAg
ICAge3tUT0JOKDB4YjNjN2EwNDcsIDB4ZTU5MTFhNzYpLCBUT0JOKDB4NjFmZmE1YzgsIDB4NjQ3
ZjFlZTcpLAorICAgICAgICAgICBUT0JOKDB4MTVhZWQzNmYsIDB4OGY1NmFiNDIpLCBUT0JOKDB4
NmEwZDQxYjAsIDB4YTNmZjlhYzkpfSwKKyAgICAgICAgICB7VE9CTigweDY4ZjQ2OWY1LCAweGNj
MzBkMzU3KSwgVE9CTigweGJlOWFkZjgxLCAweDZiNzJiZTk2KSwKKyAgICAgICAgICAgVE9CTigw
eDFjZDkyNmZlLCAweDkwM2FkNDYxKSwgVE9CTigweDdlODllMzhmLCAweGNhY2E0NDFiKX19LAor
ICAgICAgICAge3tUT0JOKDB4ZjBmODJkZTUsIDB4ZmFjZjY5ZDQpLCBUT0JOKDB4MzYzYjdlNzYs
IDB4NDc3NTM0NGMpLAorICAgICAgICAgICBUT0JOKDB4Njg5NGYzMTIsIDB4YjJlMzZkMDQpLCBU
T0JOKDB4M2M2Y2I0ZmUsIDB4MTFkMWM5YTUpfSwKKyAgICAgICAgICB7VE9CTigweDg1ZDljMzM5
LCAweDQwMDhlMWYyKSwgVE9CTigweDVlOWE4NWVhLCAweDI0OWYzMjZjKSwKKyAgICAgICAgICAg
VE9CTigweGRjMzVjNjBhLCAweDY3OGM1ZTA2KSwgVE9CTigweGMwOGI5NDRmLCAweDlmODZmYmE5
KX19LAorICAgICAgICAge3tUT0JOKDB4ZGU0MGMwMmMsIDB4ODlmNzFmMGYpLCBUT0JOKDB4YWQ4
ZjNlMzEsIDB4ZmYzZGEzYzApLAorICAgICAgICAgICBUT0JOKDB4M2VhNTA5NmIsIDB4NDIxMjVk
ZWQpLCBUT0JOKDB4MTM4NzljYmYsIDB4YTczNzkxODMpfSwKKyAgICAgICAgICB7VE9CTigweDZm
NDcxNGE1LCAweDZiMzA2YTBiKSwgVE9CTigweDM1OWMyZWE2LCAweDY3NjQ2YzVlKSwKKyAgICAg
ICAgICAgVE9CTigweGZhY2Y4OTQzLCAweDA3NzI2MzY4KSwgVE9CTigweDA3YTU4OTM1LCAweDY1
ZmY0MzFlKX19LAorICAgICAgICAge3tUT0JOKDB4MjRkNjYxZDEsIDB4Njg3NTRhYjApLCBUT0JO
KDB4ODAxZmNlMWQsIDB4NmY0MjlhNzYpLAorICAgICAgICAgICBUT0JOKDB4YzA2OGE4NWYsIDB4
YTU4Y2U3NjkpLCBUT0JOKDB4ZWRjMzVjNTQsIDB4NWQ1ZWNhMmIpfSwKKyAgICAgICAgICB7VE9C
TigweGVhMzEyNzZmLCAweGEzZjY2MGQxKSwgVE9CTigweGEwMTg0ZWJlLCAweGI4ZmM3MTY3KSwK
KyAgICAgICAgICAgVE9CTigweDBmMjBmMjFhLCAweDFkOGRiMGFlKSwgVE9CTigweGQ5NmQwOTVm
LCAweDU2YzM1ZTEyKX19LAorICAgICAgICAge3tUT0JOKDB4ZWRmNDAyYjUsIDB4ZjhjMmEyNWIp
LCBUT0JOKDB4MWJiNzcyYjksIDB4MDU5MjA0YjYpLAorICAgICAgICAgICBUT0JOKDB4NTBjYmVh
ZTIsIDB4MTliNGUzNGMpLCBUT0JOKDB4OTMxMDlkODAsIDB4M2ZhMDg0NWEpfSwKKyAgICAgICAg
ICB7VE9CTigweDU0ZjdjY2Y3LCAweDhlZjU5ZmI1KSwgVE9CTigweDNiNDM4ZmUyLCAweDg4MDcw
OTYzKSwKKyAgICAgICAgICAgVE9CTigweDllMjhjNjU5LCAweDMxZjNiYTliKSwgVE9CTigweDlj
YzMxYjQ2LCAweGVhZDlkYTkyKX19LAorICAgICAgICAge3tUT0JOKDB4M2MyZjBiYTksIDB4Yjcz
M2FhNWYpLCBUT0JOKDB4ZGVjZTQ3Y2IsIDB4ZjA1YWYyMzUpLAorICAgICAgICAgICBUT0JOKDB4
ZjhlM2Y3MTUsIDB4YTJhYzgyYTUpLCBUT0JOKDB4Yzk3YmE2NDEsIDB4MjIwM2YxOGEpfSwKKyAg
ICAgICAgICB7VE9CTigweGMzYWY1NTA0LCAweDA5YzExMDYwKSwgVE9CTigweDU2ZWEyYzA1LCAw
eDQ2YWY1MTJkKSwKKyAgICAgICAgICAgVE9CTigweGZhYzI4ZGFmLCAweGYzZjI4MTQ2KSwgVE9C
TigweDg3ZmFiNDNhLCAweDk1OWVmNDk0KX19fSwKKyAgICAgICAge3t7VE9CTigweDA5ODkxNjQx
LCAweGQ0YzUxMDVmKSwgVE9CTigweDFhZTgwZjhlLCAweDZkN2ZiZDY1KSwKKyAgICAgICAgICAg
VE9CTigweDlkNjcyMjVmLCAweGJlZTZiZGIwKSwgVE9CTigweDNiNDMzYjU5LCAweDdmYzRkODYw
KX0sCisgICAgICAgICAge1RPQk4oMHg0NGU2NmRiNiwgMHg5M2U4NTYzOCksIFRPQk4oMHhmN2I1
OTI1MiwgMHhlM2U5ODYyZiksCisgICAgICAgICAgIFRPQk4oMHhkYjc4NTE1NywgMHg2NjVjMzJl
YyksIFRPQk4oMHg3MDJmZWZkNywgMHhhZTM2MmY1MCl9fSwKKyAgICAgICAgIHt7VE9CTigweDM3
NTQ0NzVkLCAweDBmZWZiMGMzKSwgVE9CTigweGQ0OGZiNTZiLCAweDQ2ZDdjMzVkKSwKKyAgICAg
ICAgICAgVE9CTigweGEwNzBiNjMzLCAweDM2Mzc5OGE0KSwgVE9CTigweGFlODlmM2QyLCAweDhm
ZGI5OGU2KX0sCisgICAgICAgICAge1RPQk4oMHg5NzBiODljOCwgMHg2MzYzZDE0YyksIFRPQk4o
MHg4OTgxNzUyMSwgMHg2N2FiZDI3ZCksCisgICAgICAgICAgIFRPQk4oMHg5YmY3ZDQ3NCwgMHg0
NGQ1YTAyMSksIFRPQk4oMHhiMzA4M2JhZiwgMHhjYWM3MmFlZSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDM4OTc0MWRlLCAweGJlOTQ5YTQ0KSwgVE9CTigweDYzOGU5Mzg4LCAweDU0NmE0ZmE1KSwK
KyAgICAgICAgICAgVE9CTigweDNmZTY0MTljLCAweGEwMDQ3YmRjKSwgVE9CTigweDcwNDdmNjQ4
LCAweGFhZWE1N2NhKX0sCisgICAgICAgICAge1RPQk4oMHg1NGU0OGE5MCwgMHg0MWZiYWIxNyks
IFRPQk4oMHhkYThlMGIyOCwgMHg1NzZiZGJhMiksCisgICAgICAgICAgIFRPQk4oMHhlODA3ZWVi
YywgMHhjNzJhZmRkYyksIFRPQk4oMHgwN2QzMzM2ZCwgMHhmNDI1NzdiZil9fSwKKyAgICAgICAg
IHt7VE9CTigweDYyYThjMjQ0LCAweGJmZTIwOTI1KSwgVE9CTigweDkxYzE5YWMzLCAweDhmZGNl
ODY3KSwKKyAgICAgICAgICAgVE9CTigweDVhOTZhNWQ1LCAweGRkMzg3MDYzKSwgVE9CTigweDYx
ZDU4N2Q0LCAweDIxZDMyNGY2KX0sCisgICAgICAgICAge1RPQk4oMHhlODc2NzNhMiwgMHhhMzcx
NzNlYSksIFRPQk4oMHgyMzg0ODAwOCwgMHg1Mzc3OGI2NSksCisgICAgICAgICAgIFRPQk4oMHgx
MGY4NDQxZSwgMHgwNWJhYjQzZSksIFRPQk4oMHhmYTExZmUxMiwgMHg0NjIxZWZiZSl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDA0N2I3NzJlLCAweDgxNjg1ZDdiKSwgVE9CTigweDIzZjI3ZDgxLCAw
eGJmMzRhOTc2KSwKKyAgICAgICAgICAgVE9CTigweGMyNzYwOGUyLCAweDkxNWY0OGVmKSwgVE9C
TigweDNiMGI0M2ZhLCAweGE1MjFkNWMzKX0sCisgICAgICAgICAge1RPQk4oMHg3NjEzZmIyNiwg
MHg2M2NhNzI4NCksIFRPQk4oMHg3ZjU3MjliNCwgMHgxZDRkYjgzNyksCisgICAgICAgICAgIFRP
Qk4oMHg4N2IxNDg5OCwgMHg1ODNiNTI2YiksIFRPQk4oMHgwMGI3MzJhNiwgMHhiYmFkZDNkMSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDhlMDJmNDI2LCAweDIwNDhlMzk2KSwgVE9CTigweDQzNmI1
MGI2LCAweDM4M2Q5ZGU0KSwKKyAgICAgICAgICAgVE9CTigweGY3OGQzNDgxLCAweDQ3MWU4NWFk
KSwgVE9CTigweDhiMDFlYTZhLCAweGQwMDVjOGQ2KX0sCisgICAgICAgICAge1RPQk4oMHhkM2M3
YWZlZSwgMHg5NzAxNWMwNyksIFRPQk4oMHg0NmNkZjFhOSwgMHg0ZTNiYTJhZSksCisgICAgICAg
ICAgIFRPQk4oMHg3YTQyZTUwMSwgMHg4M2QzYTFkMiksIFRPQk4oMHhkNTRiNTI2OCwgMHhiNTQx
ZGZmNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDNmMjRjZjMwLCAweDRlMjNlOWJjKSwgVE9CTigw
eDQzODdmODE2LCAweDEyNmUzNjI0KSwKKyAgICAgICAgICAgVE9CTigweDI2YTQ2YTAzLCAweDNi
MGI2ZDYxKSwgVE9CTigweGFmMWJjODQ1LCAweDhiMmQ3NzdjKX0sCisgICAgICAgICAge1RPQk4o
MHgyNWM0MDFiYSwgMHg1MjdkZTc5YyksIFRPQk4oMHgwZTEzNDZkNCwgMHg0MjYxYmJiNiksCisg
ICAgICAgICAgIFRPQk4oMHg0Yjk2YzQ0YiwgMHgyODdiNGJjNyksIFRPQk4oMHg2NTg0OTNjNywg
MHg1MjU0NTYyZil9fSwKKyAgICAgICAgIHt7VE9CTigweDIzZjk0OWZlLCAweGI4YTI0YTIwKSwg
VE9CTigweDE3ZWJmZWQxLCAweGY1MmNhNTNmKSwKKyAgICAgICAgICAgVE9CTigweDliNjkxYmJl
LCAweGJjZmI0ODUzKSwgVE9CTigweDU2MTdmZjZiLCAweDYyNzhhMDVkKX0sCisgICAgICAgICAg
e1RPQk4oMHgyNDFiMzRjNSwgMHhlM2M5OWViZCksIFRPQk4oMHhmYzY0MjQyZSwgMHgxNzg0MTU2
YSksCisgICAgICAgICAgIFRPQk4oMHg0MjA2NDgyZiwgMHg2OTVkNjdkZiksIFRPQk4oMHhiOTY3
Y2UwZSwgMHhlZTI3YzAxMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDY1ZGIzNzUxLCAweDIxYzgw
YjVkKSwgVE9CTigweDJlN2E1NjNjLCAweGEzMWVjY2EwKSwKKyAgICAgICAgICAgVE9CTigweGU1
NmZmYzRlLCAweDUyMzhhMDdlKSwgVE9CTigweDNkNmMyOTY2LCAweDMyY2VkODU0KX0sCisgICAg
ICAgICAge1RPQk4oMHhlOTlkN2QxYSwgMHhhZjcwYjg4NSksIFRPQk4oMHhhZmMzYmFkOSwgMHgy
ZDY4NjQ1OSksCisgICAgICAgICAgIFRPQk4oMHg5Yzc4YmY0NiwgMHgwY2M4YmE1YiksIFRPQk4o
MHg1YTQzOTUxOSwgMHgxODk1NWFhMyl9fSwKKyAgICAgICAgIHt7VE9CTigweGY4YjUxN2E4LCAw
eDVmZTRlMzE0KSwgVE9CTigweGU2MDIzNGQwLCAweGZjYjg5MDZmKSwKKyAgICAgICAgICAgVE9C
TigweGZmZTU0MmFjLCAweGYyMDYxYjIzKSwgVE9CTigweDI4N2UxOTFmLCAweDZiNGNiNTljKX0s
CisgICAgICAgICAge1RPQk4oMHgyMTg1N2RkYywgMHgwOWQ4NzdkOCksIFRPQk4oMHgxYzIzNDc4
YywgMHgxNDY3ODk0MSksCisgICAgICAgICAgIFRPQk4oMHhiYmYwYzA1NiwgMHhiNmUwNWVhNCks
IFRPQk4oMHg4MmRhNGI1MywgMHhiMDE1OTRmZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGY3NTI2
NzkxLCAweGZhZGI4NjA4KSwgVE9CTigweDA0OWU4MzJkLCAweDdiNzRjZGY2KSwKKyAgICAgICAg
ICAgVE9CTigweGE0MzU4MWNjLCAweGMyYjkwYTM0KSwgVE9CTigweDczNjM5ZWI4LCAweDkzNjBi
MTBjKX0sCisgICAgICAgICAge1RPQk4oMHg0ZmJhMzMxZiwgMHhlMWU0YTcxYiksIFRPQk4oMHg2
ZmZkNmI5MywgMHg4MDcyZjkxOSksCisgICAgICAgICAgIFRPQk4oMHg2ZTUzMjcxYywgMHg2NTY3
OTAzMiksIFRPQk4oMHg2NzIwNjQ0NCwgMHhmMTQyNzJjZSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGMwZjczNGEzLCAweGIyMzM1ODM0KSwgVE9CTigweDk1MjYyMDVhLCAweDkwZWY2ODYwKSwKKyAg
ICAgICAgICAgVE9CTigweGNiOGJlNzE3LCAweDA0ZTJiYjBkKSwgVE9CTigweDI0MTg4NzFlLCAw
eDAyZjM4M2ZhKX0sCisgICAgICAgICAge1RPQk4oMHhkNzE3NzY4MSwgMHg0MDgyYzE1NyksIFRP
Qk4oMHhjYzkxNGFkMCwgMHgyOWMyMDA3MyksCisgICAgICAgICAgIFRPQk4oMHhmMTg2YzFlYiwg
MHhlNTg3ZTcyOCksIFRPQk4oMHg2ZmRiM2MyMiwgMHg2MWJjZDVmZCl9fSwKKyAgICAgICAgIHt7
VE9CTigweDMwZDAxNGE2LCAweGYyZjlmOGU5KSwgVE9CTigweDk2M2VjZTIzLCAweDRmZWM0OWQy
KSwKKyAgICAgICAgICAgVE9CTigweDg2MjAyNWM1LCAweDk2MDVhOGQ5KSwgVE9CTigweDM5ODc0
NDQ1LCAweDE5Zjg5MjlhKX0sCisgICAgICAgICAge1RPQk4oMHgwMWI2ZmY2NSwgMHgxMmJmNDc2
YSksIFRPQk4oMHg1OThhNjRkOCwgMHgwOWNmN2Q5MSksCisgICAgICAgICAgIFRPQk4oMHhkN2Vj
Nzc0OSwgMHg5M2JlNTZjYSksIFRPQk4oMHgxMDg5OTc4NSwgMHhjYmIzMzYxNSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGI4YTA5MmZkLCAweDAyZWVlM2FkKSwgVE9CTigweGE4NmIzZDM1LCAweDMw
MTQ1MjcwKSwKKyAgICAgICAgICAgVE9CTigweDMyM2Q5OGM2LCAweDg1MTJiNjc1KSwgVE9CTigw
eDRiOGJjNzg1LCAweDYyZWJiNDBmKX0sCisgICAgICAgICAge1RPQk4oMHg3ZDMwMWY1NCwgMHg0
MTNmOWNkZSksIFRPQk4oMHhhNWU0ZmI0ZiwgMHgyYmFiNTY2NCksCisgICAgICAgICAgIFRPQk4o
MHgxZDJiMjUyZCwgMHgxY2JmZWMyMyksIFRPQk4oMHhmY2Q1NzZiYiwgMHhlMTc3MTIwZCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDA0NDI3ZDNlLCAweDgzNzMxYTM0KSwgVE9CTigweDJiYjkwMjhl
LCAweGVkODM2ZThlKSwKKyAgICAgICAgICAgVE9CTigweGIzNmFjZmY4LCAweGI2MTJjYTdjKSwg
VE9CTigweGI4OGZlNWVmLCAweGQzZDljNzNhKX0sCisgICAgICAgICAge1RPQk4oMHhiZTJhNmJj
NiwgMHhlZGVhNGViMyksIFRPQk4oMHg0M2I5MzEzMywgMHg0ODhlZWM3NyksCisgICAgICAgICAg
IFRPQk4oMHhmNDFmZjU2NiwgMHhiMTcxMDZlMSksIFRPQk4oMHg0NjllOTE3MiwgMHg2NTRlZmEz
Mil9fSwKKyAgICAgICAgIHt7VE9CTigweGI0NDgwZjA0LCAweDQxYzIzZmEzKSwgVE9CTigweGI0
NzEyZWIwLCAweGMxOTg5YTJlKSwKKyAgICAgICAgICAgVE9CTigweDNjY2JiYTBmLCAweDkzYTI5
Y2E3KSwgVE9CTigweDZlMjA1YzE0LCAweGQ2MTk0MjhjKX0sCisgICAgICAgICAge1RPQk4oMHg5
MGRiNzk1NywgMHhiMzY0MTY4NiksIFRPQk4oMHgwNDMyNjkxZCwgMHg0NWFjOGI0ZSksCisgICAg
ICAgICAgIFRPQk4oMHgwN2E3NTlhYywgMHhmNjRlMDM1MCksIFRPQk4oMHgwNTE0ZDg5YywgMHg5
Yzk3MjUxNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDE3MDExNDdmLCAweGE4ZTY3ZmMzKSwgVE9C
TigweDllMmUwYjhiLCAweGFiMjA4NWJlKSwKKyAgICAgICAgICAgVE9CTigweGQ1NjUxODI0LCAw
eGFjMjg0ZTU3KSwgVE9CTigweDg5MGQ0MzI1LCAweDc0ODkzNjY0KX0sCisgICAgICAgICAge1RP
Qk4oMHg4YTdjNWU2ZSwgMHhjNTVlNjhhMyksIFRPQk4oMHhiZjEyZTkwYiwgMHg0MzM5Yzg1YSks
CisgICAgICAgICAgIFRPQk4oMHgzMTg0NmI4NSwgMHhmOTIyYjY1NSksIFRPQk4oMHg5YTU0Y2U0
ZCwgMHgwYmY0ZDcwMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ3ZjRlODNhLCAweGYxYTE0Mjk1
KSwgVE9CTigweDkxNmY5NTVjLCAweGIyODVkNGY5KSwKKyAgICAgICAgICAgVE9CTigweGU1N2Ji
MGUwLCAweDk5ZmZkYWJhKSwgVE9CTigweDI4YTQzMDM0LCAweGVhYjBkMTUyKX0sCisgICAgICAg
ICAge1RPQk4oMHgwYTM2ZmZhMiwgMHhiOGE5Y2VmOCksIFRPQk4oMHg1NTE3NDA3ZSwgMHhiOWVj
MDUxYSksCisgICAgICAgICAgIFRPQk4oMHg5Yzc5NjA5NiwgMHhlYTY4ZTY3MiksIFRPQk4oMHg4
NTNkYjVmYiwgMHhmYjNjNzdmYil9fSwKKyAgICAgICAgIHt7VE9CTigweDIxNDc0YmE5LCAweGU4
NjRhNTFhKSwgVE9CTigweDZjMjY3Njk5LCAweDZlOGExYjhiKSwKKyAgICAgICAgICAgVE9CTigw
eDdjODIzNjI2LCAweDk0MTIwYTI4KSwgVE9CTigweGU2MWU5YTQ4LCAweDgzODNhNWRiKX0sCisg
ICAgICAgICAge1RPQk4oMHg3ZGQ3NTAwMywgMHg5Zjg0MjE2ZCksIFRPQk4oMHhhYjAyMGQwNywg
MHhhZDQzY2Q4NSksCisgICAgICAgICAgIFRPQk4oMHg5NDM3YWU0OCwgMHhkYTEyYzY1OSksIFRP
Qk4oMHg2NDQ5YzJlYiwgMHhlNjU0NTJhZCl9fSwKKyAgICAgICAgIHt7VE9CTigweGNjN2M0YzFj
LCAweDJjZjlkN2MxKSwgVE9CTigweDEzMjA4ODZhLCAweGVlOTVlNWFiKSwKKyAgICAgICAgICAg
VE9CTigweGJiN2I5MDU2LCAweGJlYWUxNzBjKSwgVE9CTigweGM4YTViMjUwLCAweGRiYzBkNjYy
KX0sCisgICAgICAgICAge1RPQk4oMHg0ZWQ4MTQzMiwgMHhjMTFkMjMwMyksIFRPQk4oMHg3ZGE2
NjkxMiwgMHgxZjAzNzY5ZiksCisgICAgICAgICAgIFRPQk4oMHgzYWM3YTVmZCwgMHg4NDUzOTgy
OCksIFRPQk4oMHgxNGRhZGE5NCwgMHgzYmNjZGQwMil9fSwKKyAgICAgICAgIHt7VE9CTigweDhi
ODRjMzIxLCAweDdlZjZiMGQxKSwgVE9CTigweDUyYTk0NzdhLCAweDdjOTMzZjIyKSwKKyAgICAg
ICAgICAgVE9CTigweDVlZjY3MjhhLCAweGZkNDQwYjgyKSwgVE9CTigweDVjM2JkODU5LCAweDZj
ZTRiZDVlKX0sCisgICAgICAgICAge1RPQk4oMHg5MThiODBmNSwgMHhmMjJjMmQzZSksIFRPQk4o
MHgzNjhkNTA0MCwgMHhiN2JiNmNjNSksCisgICAgICAgICAgIFRPQk4oMHhiNjYxNDJhMSwgMHgy
Njk1YTExYyksIFRPQk4oMHg2MGFjNTgzYSwgMHhlYjE5ZWE3MCl9fSwKKyAgICAgICAgIHt7VE9C
TigweDMxN2NiYjk4LCAweDBlYWIyNDM3KSwgVE9CTigweDhjYzA4YzU1LCAweDVlMjY1NGM4KSwK
KyAgICAgICAgICAgVE9CTigweGZlMmQ2NTIwLCAweGU2ZDgzMDdmKSwgVE9CTigweGU5ZjE0N2Yz
LCAweDU3NDI4OTkzKX0sCisgICAgICAgICAge1RPQk4oMHg1ZjljN2QxNCwgMHhkMmZkNmNmMSks
IFRPQk4oMHhhM2VjZDA2NCwgMHgyZDRmY2JiMCksCisgICAgICAgICAgIFRPQk4oMHhhZDgzZmVm
MCwgMHg4ZTczNDFmNyksIFRPQk4oMHg2NDNmMjNhMCwgMHgzYTYzMTE1Yyl9fSwKKyAgICAgICAg
IHt7VE9CTigweGQzOGE3OGFiLCAweGU2NWFiNzQzKSwgVE9CTigweGJmN2M3NWIxLCAweDM1ZWRj
ODljKSwKKyAgICAgICAgICAgVE9CTigweDNkZDg3NTJlLCAweDUzMGRmNTY4KSwgVE9CTigweGY4
NWM0YTc2LCAweGUzMDhjNjgyKX0sCisgICAgICAgICAge1RPQk4oMHg0Yzk5NTViMiwgMHhlNjhh
Y2YzNyksIFRPQk4oMHhhNTQ0ZGYzZCwgMHhhYjMyYWY4NSksCisgICAgICAgICAgIFRPQk4oMHg0
YjhlYzNmNSwgMHhhMjVjZjQ5MyksIFRPQk4oMHg0ZDhmMjc2NCwgMHgxYTYyMmZlYil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDdiYjRmN2FhLCAweGYwZGNiYzQ5KSwgVE9CTigweDdkZTU1MWY5LCAw
eDcwYmJiNDViKSwKKyAgICAgICAgICAgVE9CTigweGNmZDBmM2U0LCAweDlmMmNhMmU1KSwgVE9C
TigweGVjZTU4NzA5LCAweDFmNWM3NmVmKX0sCisgICAgICAgICAge1RPQk4oMHgzMjkyMGVkZCwg
MHgxNjdkNzlhZSksIFRPQk4oMHgwMzlkZjhhMiwgMHhmYTdkN2VjMSksCisgICAgICAgICAgIFRP
Qk4oMHhmNDYyMDZjMCwgMHhiYjMwYWY5MSksIFRPQk4oMHgxZmY1ZTJmNSwgMHgyMjY3NmI1OSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDExZjRhMDM5LCAweDZlYTUxZDY2KSwgVE9CTigweDUwNmMx
NDQ1LCAweDgwN2Q3YTI2KSwKKyAgICAgICAgICAgVE9CTigweDYwZGE1NzA1LCAweDc1NWE5YjI0
KSwgVE9CTigweDhmYzhjYzMyLCAweDFmMWEzMTllKX0sCisgICAgICAgICAge1RPQk4oMHg4MzY0
MmQ0ZCwgMHg5NDMzZDY3ZCksIFRPQk4oMHg3ZmE1Y2I4ZiwgMHg2YTdkZDI5NiksCisgICAgICAg
ICAgIFRPQk4oMHg1NzY1OTFkYiwgMHg5YjdiZGUwNyksIFRPQk4oMHgxMzE3M2QyNSwgMHg0MTk3
MTZmYil9fSwKKyAgICAgICAgIHt7VE9CTigweGVhMzA1OTlkLCAweGQ1YjM0MGZmKSwgVE9CTigw
eGZjNmI1Mjk3LCAweGIwZmU3NmM1KSwKKyAgICAgICAgICAgVE9CTigweDFjNjk2OGM4LCAweGFi
OGY1YWRjKSwgVE9CTigweGY3MjNjN2Y1LCAweDkwMWM5MjhkKX0sCisgICAgICAgICAge1RPQk4o
MHg0MjAzYzMyMSwgMHg5NzczZDQwMiksIFRPQk4oMHhkZjdjNmFhMywgMHgxYjUxZGQ0NyksCisg
ICAgICAgICAgIFRPQk4oMHgzZDQ5ZTM3YSwgMHg1NTJiZTIzYyksIFRPQk4oMHg1N2ZlYmVlOCwg
MHgwYjVhNmU4Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweGM1ZWNiZWU0LCAweDdiZDhlNzM5KSwg
VE9CTigweDc5ZDQ0OTk0LCAweGFlNjNiZjc1KSwKKyAgICAgICAgICAgVE9CTigweDE2OGJkMDBm
LCAweDM4ZmI4OTIzKSwgVE9CTigweDc1ZDQ4ZWU0LCAweGQwNTMzMTMwKX0sCisgICAgICAgICAg
e1RPQk4oMHg1NTRmNzdhYSwgMHhkYjVjZGYzMyksIFRPQk4oMHgzMzk2ZTg5NiwgMHgzYzY5Njc2
OSksCisgICAgICAgICAgIFRPQk4oMHgyZmRkZGJmMiwgMHhkM2ZkNjc0ZSksIFRPQk4oMHhiYmI4
ZjZlZSwgMHg5OWQwZTNlNSl9fSwKKyAgICAgICAgIHt7VE9CTigweDUxYjkwNjUxLCAweGNiYWUy
ZjcwKSwgVE9CTigweGVmYzRiYzA1LCAweDkzYWFhOGViKSwKKyAgICAgICAgICAgVE9CTigweDhl
Y2Q4Njg5LCAweGRkMWRmNDk5KSwgVE9CTigweDFhZWU5OWE4LCAweDIyZjM2N2E1KX0sCisgICAg
ICAgICAge1RPQk4oMHg5NWQ0ODViOSwgMHhhZTgyNzRjNSksIFRPQk4oMHg2YzE0ZDQ0NSwgMHg3
ZDMwYjM5YyksCisgICAgICAgICAgIFRPQk4oMHhiYWZlYTkwYiwgMHhiY2MxZWY4MSksIFRPQk4o
MHg3YzVmMzE3YSwgMHhhNDU5YTJlZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDAxMjExMDc1LCAw
eDRlZjQ0MjI3KSwgVE9CTigweGExN2JlZDZlLCAweGRjMjBmNDk2KSwKKyAgICAgICAgICAgVE9C
TigweDBjZGZlNDI0LCAweDgxOTg1M2NkKSwgVE9CTigweDEzNzkzMjk4LCAweGY3MWUyY2U3KX0s
CisgICAgICAgICAge1RPQk4oMHgzYzFmMzA3OCwgMHhkYmJlMzA3YiksIFRPQk4oMHg2ZGQxYzIw
ZSwgMHg3NmVlOTkzNiksCisgICAgICAgICAgIFRPQk4oMHgyM2VlNGI1NywgMHg0MjNjYWEyMCks
IFRPQk4oMHg0YWMzNzkzYiwgMHg4ZWZiODQwZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDkzNDQz
OGViLCAweGVkMWY4Y2EwKSwgVE9CTigweDNlNTQ2NjU4LCAweDRlYmIyNWEyKSwKKyAgICAgICAg
ICAgVE9CTigweGM0MTVhZjBlLCAweGMwNjk4OTZmKSwgVE9CTigweGMxM2VkZGIwLCAweDlhNWFh
NDNkKX0sCisgICAgICAgICAge1RPQk4oMHg3YTA0MjA0ZiwgMHhkNDllYjhmNiksIFRPQk4oMHhk
MGQ1YmRmYywgMHhkNzRmMTY3MCksCisgICAgICAgICAgIFRPQk4oMHgzNjk3ZTI4NiwgMHg1NmZj
MDU1OCksIFRPQk4oMHgxMDIwNzM3MSwgMHgwMWNlYmFkZSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDVmODdlNjkwLCAweDA2NDdhODJiKSwgVE9CTigweDkwOGUwZWQ0LCAweDhmNDAwNTRmKSwKKyAg
ICAgICAgICAgVE9CTigweGE5ZjYzM2Q0LCAweDc5ODUzODAzKSwgVE9CTigweDhlZDEzYzlhLCAw
eDRhMjhiMjUyKX0sCisgICAgICAgICAge1RPQk4oMHgzZTJlZjY3NiwgMHgxZjQ2MGY2NCksIFRP
Qk4oMHg1MzkzMGI5YiwgMHgzNmQwNjMzNiksCisgICAgICAgICAgIFRPQk4oMHgzNDcwNzNhYywg
MHg4ZmM0OTc5YiksIFRPQk4oMHg4NDM4MGUwZSwgMHg1ZWNkNTU5Nyl9fSwKKyAgICAgICAgIHt7
VE9CTigweGUzYjIyYzZiLCAweGM0ZmUzYzM5KSwgVE9CTigweGJhNGE4MTUzLCAweDZjN2JlYmRm
KSwKKyAgICAgICAgICAgVE9CTigweGYyM2FiNmI3LCAweDI1NjkzNDU5KSwgVE9CTigweDUzYmMz
NzcwLCAweDE0OTIyYjExKX0sCisgICAgICAgICAge1RPQk4oMHg0NjQ1YzhhYiwgMHg1YWZjNjBk
YiksIFRPQk4oMHhhYTAyMjM1NSwgMHgyMGI5ZjJhMyksCisgICAgICAgICAgIFRPQk4oMHg1MmEy
OTU0YywgMHhjZTBmYzUwNyksIFRPQk4oMHg4YzI3MzFiYiwgMHg3Y2UxYzJlNyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGYzOTYwOGFiLCAweDE4YTAzMzlkKSwgVE9CTigweGFjN2E2NThkLCAweDM3
MzU0MzZjKSwKKyAgICAgICAgICAgVE9CTigweGIyMmMyYjA3LCAweGNkOTkyYjRmKSwgVE9CTigw
eDRlODNkYWVjLCAweGY0MGRjZmQ0KX0sCisgICAgICAgICAge1RPQk4oMHg4YTM0YzdiZSwgMHgy
ZjM5ZWEzZSksIFRPQk4oMHhlZjBjMDA1ZiwgMHhiMGE1NmQyZSksCisgICAgICAgICAgIFRPQk4o
MHg2MjczMWY2YSwgMHg2ZWRkODAzOCksIFRPQk4oMHg1NzIxZDc0MCwgMHg0ZTNjYjA3NSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDFlYTQxNTExLCAweGZiZWVlZTFiKSwgVE9CTigweGQxZWY1ZTcz
LCAweGVmMWQwYzA1KSwKKyAgICAgICAgICAgVE9CTigweDQyZmVlZmQxLCAweDczYzA3ZDM1KSwg
VE9CTigweGU1MzBhMDBhLCAweDhhMzI5NDkzKX0sCisgICAgICAgICAge1RPQk4oMHg1ZDU1Yjdm
ZSwgMHhmMTVlYmZiMCksIFRPQk4oMHg1NDlkZTAzYywgMHhkMzIyNDkxYSksCisgICAgICAgICAg
IFRPQk4oMHhmN2I1ZjYwMiwgMHg3NDViMzIzNyksIFRPQk4oMHgzNjMyYTNhMiwgMHgxYWI2ZTJi
Nil9fSwKKyAgICAgICAgIHt7VE9CTigweDBkM2JiYTg5LCAweDBlZjU5Zjc4KSwgVE9CTigweDBk
ZmM2NDQzLCAweGM5ZTUyYjlhKSwKKyAgICAgICAgICAgVE9CTigweDFkYzc5Njk5LCAweDcyNjMx
NDQ3KSwgVE9CTigweGVmMDMzOTE3LCAweGIzYmUyMGIxKX0sCisgICAgICAgICAge1RPQk4oMHgw
YzkyNzM1ZCwgMHhiMTM4Mzk0OCksIFRPQk4oMHhjMWZjMjlhMiwgMHhjMGRkN2Q3ZCksCisgICAg
ICAgICAgIFRPQk4oMHg2NDg1YjY5NywgMHg0MDNlZDA2OCksIFRPQk4oMHgxM2JmYWFiMywgMHhh
YWM5M2JkYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDQxMGRjNmE5LCAweDBkZWVhZjUyKSwgVE9C
TigweGIwMDNmYjAyLCAweDRjNjQxYzE1KSwKKyAgICAgICAgICAgVE9CTigweDEzODQ5NzhjLCAw
eDViYzUwNGM0KSwgVE9CTigweDM3NjQwNDg3LCAweDg2NGE2YTc3KX0sCisgICAgICAgICAge1RP
Qk4oMHgwNTk5MWJjNiwgMHgyMjJhNzdkYSksIFRPQk4oMHg2MjI2MGE1NywgMHg1ZTQ3ZWIxMSks
CisgICAgICAgICAgIFRPQk4oMHhjN2FmNjYxMywgMHhmMjFiNDMyYyksIFRPQk4oMHgyMmYzYWNj
OSwgMHhhYjQ5NTNlOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDUyOTM0OTIyLCAweDhlNDFkMTU1
KSwgVE9CTigweDRkMDI0NTY4LCAweDNhYzA1OWVmKSwKKyAgICAgICAgICAgVE9CTigweGIwMjAx
NzU1LCAweDRkODg0NDExKSwgVE9CTigweGNlODA1NWNmLCAweGE1OWExNzhmKX0sCisgICAgICAg
ICAge1RPQk4oMHhjZDc3ZDFhZiwgMHhmNjIwNDU0OSksIFRPQk4oMHhhMGEwMGEzZSwgMHhjNzA2
Njc1OSksCisgICAgICAgICAgIFRPQk4oMHg0NzEwNzFlZiwgMHgwMjcyYzIyOSksIFRPQk4oMHgw
MDliY2Y2YiwgMHhkM2M0YjZiMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDJhMjYzOGE4LCAweDIy
MzA1MTc3KSwgVE9CTigweGQ1MWQ1OWRmLCAweDQxNjQ1YmJmKSwKKyAgICAgICAgICAgVE9CTigw
eGE4MTE0MmZkLCAweGMwYTdhM2MwKSwgVE9CTigweGExN2VjYTZkLCAweDRjNzA2M2VlKX0sCisg
ICAgICAgICAge1RPQk4oMHgwYmI4ODdlZCwgMHg2MGQ5ZGNlYyksIFRPQk4oMHhkNmQyOGU1MSwg
MHgyMGFkMjQ1NSksCisgICAgICAgICAgIFRPQk4oMHhlYmVkNjMwOCwgMHhhNjcxMDJiYSksIFRP
Qk4oMHgwNDJjMzExNCwgMHg4YmZmYTQwOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGZkMDk5YWM1
LCAweDhhYTY4ZTMwKSwgVE9CTigweDdhNmEzZDdjLCAweDE0ODM1MTNlKSwKKyAgICAgICAgICAg
VE9CTigweGZmY2M2Yjc1LCAweGJhMmQ4ZjBjKSwgVE9CTigweDU0ZGFjZjk2LCAweDFlNzhiOTU0
KX0sCisgICAgICAgICAge1RPQk4oMHhmNjQ1Njk2ZiwgMHhhNGE5YWY4OSksIFRPQk4oMHgzYTQx
MTk0MCwgMHgwNmFjOThlYyksCisgICAgICAgICAgIFRPQk4oMHg0MWI4YjNmNiwgMHgyMmE2N2Ey
MCksIFRPQk4oMHgyZDBiMWUwZiwgMHg5OWRlYzYyNil9fSwKKyAgICAgICAgIHt7VE9CTigweDI3
Yzg5MTkyLCAweDQwYmUzNGU4KSwgVE9CTigweGM3MTYyYjM3LCAweDkxOTA3ZjM1KSwKKyAgICAg
ICAgICAgVE9CTigweDkwMTg4ZWMxLCAweGE5NTY3MDJiKSwgVE9CTigweGNhMTMyZjdkLCAweGRm
OTM3NjljKX0sCisgICAgICAgICAge1RPQk4oMHgzZWNlNDRmOSwgMHgwZTIwMjViNCksIFRPQk4o
MHg2N2FhZWM2OSwgMHgwYzYyZjE0YyksCisgICAgICAgICAgIFRPQk4oMHhhZDc0MTQxOCwgMHgy
MmUzY2MxMSksIFRPQk4oMHhjZjliNzVjMywgMHg3ZmY5YTUwZSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDAyZmEyYjE2LCAweDRkMzQ4MjcyKSwgVE9CTigweGJkOTlkNjFhLCAweDk5NTlkNTZkKSwK
KyAgICAgICAgICAgVE9CTigweGJjNGYxOWRiLCAweDE4NzYyOTE2KSwgVE9CTigweGNjN2NjZTUw
LCAweDQ5YzFhYzgwKX0sCisgICAgICAgICAge1RPQk4oMHg0ZDU5ZWJhYSwgMHhkODQ2YmQ4Myks
IFRPQk4oMHg4Nzc1YTlkYywgMHhhOTIwMjg0OSksCisgICAgICAgICAgIFRPQk4oMHgwN2VjNGFl
MSwgMHg2ZTFmNGNhOSksIFRPQk4oMHgyN2ViNTg3NSwgMHhiYTg5M2YxMSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDAwMjg0ZDUxLCAweDY2MmNjNTY1KSwgVE9CTigweDgyMzUzYTZiLCAweDBkYjQx
MzhkKSwKKyAgICAgICAgICAgVE9CTigweGQ5YzdhYWFhLCAweGFhMzJhNTk0KSwgVE9CTigweGY1
NTI4YjVlLCAweGE1NjY5YzQ3KX0sCisgICAgICAgICAge1RPQk4oMHhmMzIyMDIzMSwgMHgyZjIz
YzVmZiksIFRPQk4oMHhlM2U4MTQ3YSwgMHg2YWZmYTNhMSksCisgICAgICAgICAgIFRPQk4oMHhm
YjQyM2Q1YywgMHgyMDJkZGRhMCksIFRPQk4oMHgzZDY0MTRhYywgMHg2Yjg3MWJkNCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDU4NmY4MmUxLCAweGE1MWExNjhhKSwgVE9CTigweGI3MTJjNjcxLCAw
eDQ4YWU1NDQ4KSwKKyAgICAgICAgICAgVE9CTigweDlhMmU0YmQxLCAweDc2MjMzZWI4KSwgVE9C
TigweDAxODgyMjNhLCAweDc4ODExY2E5KX0sCisgICAgICAgICAge1RPQk4oMHg1NTNjNWUyMSwg
MHhmN2MxOGRlMSksIFRPQk4oMHg3NjgyZTQ1MSwgMHhiMjdiYjI4NiksCisgICAgICAgICAgIFRP
Qk4oMHgzZWQwMzZiMywgMHgwZTUxZTkyOSksIFRPQk4oMHhmNDg3MjExYiwgMHhlYzljYjM0Zil9
fSwKKyAgICAgICAgIHt7VE9CTigweDBkMDk0Mjc3LCAweDBjMjRlZmM4KSwgVE9CTigweDAzNDlm
ZDA0LCAweGJlZjczN2E0KSwKKyAgICAgICAgICAgVE9CTigweDZkMWM5ZGQyLCAweDUxNGNkZDI4
KSwgVE9CTigweDI5YzEzNWZmLCAweDMwZGE5NTIxKX0sCisgICAgICAgICAge1RPQk4oMHhlYTZl
NDUwOCwgMHhmNzhiMGI2ZiksIFRPQk4oMHgxNzZmNWRkMiwgMHg2NzhjMTQzYyksCisgICAgICAg
ICAgIFRPQk4oMHgwODE0ODQxOCwgMHg0YmUyMWU2NSksIFRPQk4oMHgyN2Y3NTI1YywgMHhlN2Rm
MzhjNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDFmYjcwZTA5LCAweDc0OGFiMWE0KSwgVE9CTigw
eDljYmE1MGEwLCAweDVlZmU0NDMzKSwKKyAgICAgICAgICAgVE9CTigweDc4NDZjN2E2LCAweDE1
Zjc1YWYyKSwgVE9CTigweDJhN2MyYzU3LCAweDVlZTczZWE4KX0sCisgICAgICAgICAge1RPQk4o
MHg0MmU1NjZhNCwgMHgzZjBhNDQ5YSksIFRPQk4oMHg0NTQ3NGMzYiwgMHhhZDkwZmMzZCksCisg
ICAgICAgICAgIFRPQk4oMHg3NDQ3YmUzZCwgMHg4YjYxZDA1NyksIFRPQk4oMHgzZTlkMWNmMSwg
MHgzYTRlYzA5Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDE2MDNlNDUzLCAweGYzODBhNmU2KSwg
VE9CTigweDBiODZlNDMxLCAweDliMTQzN2MyKSwKKyAgICAgICAgICAgVE9CTigweDdhNDE3M2Yy
LCAweGVmMjk2MTBhKSwgVE9CTigweDhmYTcyOWE3LCAweGYwM2Q1N2Y3KX0sCisgICAgICAgICAg
e1RPQk4oMHgzZTE4NmY2ZSwgMHg2YzljMjE3ZSksIFRPQk4oMHhiZTFkMzA3OSwgMHg5MTkxOTUy
NCksCisgICAgICAgICAgIFRPQk4oMHg5MmE2MmE3MCwgMHgxNTNkNGZiMSksIFRPQk4oMHgzMmVk
M2UzNCwgMHhkNjhjMmY3MSl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ3ODUwMjdmLCAweDllYjFh
OGI3KSwgVE9CTigweGJjMzdlYjc3LCAweGM1YjIyZmU4KSwKKyAgICAgICAgICAgVE9CTigweDQ2
NmIzNGYwLCAweGI5ZDZhMTkxKSwgVE9CTigweDAwOGE4OWFmLCAweDlhMDVmODE2KX0sCisgICAg
ICAgICAge1RPQk4oMHgxOWIwMjhmYiwgMHg3ZDQyYzEwYSksIFRPQk4oMHg3ZmU4YzkyZiwgMHg0
OWIzZjZiOCksCisgICAgICAgICAgIFRPQk4oMHg1ODkwN2NjMCwgMHhhNWEwYWRlMyksIFRPQk4o
MHhiMzE1NGY1MSwgMHg1NTlkMWE3Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDUwNjZlZmI2LCAw
eGQ5NzkwZWQ2KSwgVE9CTigweGE3N2EwY2JjLCAweGE2YWE3OTNiKSwKKyAgICAgICAgICAgVE9C
TigweDFhOTE1ZjNjLCAweDIyM2UwNDJlKSwgVE9CTigweDFjNWRlZjA0LCAweDY5YzU4NzRiKX0s
CisgICAgICAgICAge1RPQk4oMHgwZTgzMDA3OCwgMHg3M2I2YzFkYSksIFRPQk4oMHg1NWNmODVk
MiwgMHhmY2Q4NTU3YSksCisgICAgICAgICAgIFRPQk4oMHgwZjdjN2M3NiwgMHgwNDYwZjNiMSks
IFRPQk4oMHg4NzA1MmFjYiwgMHg0NmU1ODA2Myl9fSwKKyAgICAgICAgIHt7VE9CTigweDA5MjEy
YjgwLCAweDkwN2VhZTY2KSwgVE9CTigweDNjYjA2OGUwLCAweDRkNzIxYzg5KSwKKyAgICAgICAg
ICAgVE9CTigweGE4Nzk0MWFlLCAweGRkNDVhYzFjKSwgVE9CTigweGRlOGQ1YzBkLCAweDBkYWEw
ZGJiKX0sCisgICAgICAgICAge1RPQk4oMHhkYTQyMWZkYywgMHhlMzUwMmU2ZSksIFRPQk4oMHhj
ODk0NDIwMSwgMHg0ZDg5YTA4NCksCisgICAgICAgICAgIFRPQk4oMHg3MzA3YmE1ZSwgMHhmMGMy
NGJmYiksIFRPQk4oMHhkYTIxMmJlYiwgMHgyMGJkZTBlZil9fSwKKyAgICAgICAgIHt7VE9CTigw
eGVhMmRhMjRiLCAweGY4MmNlNjgyKSwgVE9CTigweDA1OGQzODE2LCAweDA3ZjcxZmU0KSwKKyAg
ICAgICAgICAgVE9CTigweDM1YTAyNDYyLCAweDVmZmFkOGRlKSwgVE9CTigweGNkN2IwNWRjLCAw
eGFhZGNlZmFiKX0sCisgICAgICAgICAge1RPQk4oMHhkNDQyZjhlZCwgMHgxZDlmNTRlYyksIFRP
Qk4oMHg4YmUzZDYxOCwgMHhiMmQzYjVjYSksCisgICAgICAgICAgIFRPQk4oMHhlMjIyMGVkMCwg
MHhlMDZiMmNlMiksIFRPQk4oMHg4MjY5OWE1ZiwgMHgxYjBkYTRjMCl9fSwKKyAgICAgICAgIHt7
VE9CTigweDNmZjEwNmY1LCAweDcxYzBjM2E3KSwgVE9CTigweDhmNTgwZjVhLCAweDBkMzQxODBj
KSwKKyAgICAgICAgICAgVE9CTigweDRlYmIxMjBlLCAweDIyZDdkMzc1KSwgVE9CTigweDVlNTc4
MmNjLCAweGU5NTEzNjc1KX0sCisgICAgICAgICAge1RPQk4oMHgyMjc1NTgwYywgMHg5OWM4MmE3
MCksIFRPQk4oMHhlODM1OWZiZiwgMHgxNWVhOGM0YyksCisgICAgICAgICAgIFRPQk4oMHg1M2I0
OGRiOCwgMHg3YjQxNWU3MCksIFRPQk4oMHhhYWNmMjI0MCwgMHgxMDBjNjAxNCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDlmYWFjY2Y1LCAweGU0NjUyZjFkKSwgVE9CTigweGJkNmZkZDJhLCAweGQ1
NjE1N2IyKSwKKyAgICAgICAgICAgVE9CTigweGE0ZjRmYjFmLCAweDYyNjFlYzUwKSwgVE9CTigw
eDI0NGU1NWFkLCAweDQ3NmJjZDUyKX0sCisgICAgICAgICAge1RPQk4oMHg4ODFjOTMwNSwgMHgw
NDdkMzIwYiksIFRPQk4oMHgxY2E5ODNkNSwgMHg2MTgxMjYzZiksCisgICAgICAgICAgIFRPQk4o
MHgzNTRlOWE0NCwgMHgyNzhmYjhlZSksIFRPQk4oMHhhZDJkYmMwZiwgMHgzOTZlNDk2NCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDcyM2YzYWEyLCAweDkyNjhiM2RlKSwgVE9CTigweDBkMWNhMjlh
LCAweGU2ZTA2MDlhKSwKKyAgICAgICAgICAgVE9CTigweDc5NDg2NmFhLCAweDZjZjQ0MjUyKSwg
VE9CTigweDBiNTlmM2UzLCAweDAxYWY4N2VkKX0sCisgICAgICAgICAge1RPQk4oMHhlMjM0ZTVm
ZiwgMHg3ZjRhNmM1MSksIFRPQk4oMHhhODc2OGZkMiwgMHg2MWRjMmY3ZSksCisgICAgICAgICAg
IFRPQk4oMHhkYWZjNzMzMiwgMHgwYTk0ZDgxZiksIFRPQk4oMHhkN2Y4NDI4MiwgMHgwNjkzOGNl
MSl9fSwKKyAgICAgICAgIHt7VE9CTigweGFlMGIzYzBlLCAweDA1NDYwNjNlKSwgVE9CTigweDdm
YmFkY2IyLCAweDVkNjFhYmM2KSwKKyAgICAgICAgICAgVE9CTigweGQ1ZDdhMmM5LCAweDM2OWFj
NDAwKSwgVE9CTigweGE1OTc4ZDA5LCAweGFlNjdkMTBjKX0sCisgICAgICAgICAge1RPQk4oMHgy
OTBmMjExZSwgMHg0Zjg1ZWFhYyksIFRPQk4oMHhlNjFlMmFkMSwgMHhmYWNhYzY4MSksCisgICAg
ICAgICAgIFRPQk4oMHhhZTEyNTIyNSwgMHgzODgzODRjZCksIFRPQk4oMHhhN2ZiNjhlOSwgMHhj
Y2ZkZTMwZil9fSwKKyAgICAgICAgIHt7VE9CTigweDdhNTliOTM2LCAweDNkYWVkNGMyKSwgVE9C
TigweDgwYTlhYTQwLCAweDI2MDZmNzg5KSwKKyAgICAgICAgICAgVE9CTigweGI0MGMxZWE1LCAw
eGY2YTZkOTBhKSwgVE9CTigweDk0ODM2NGQzLCAweDUxNGQ1ODg1KX0sCisgICAgICAgICAge1RP
Qk4oMHgwNjJlYmM2MCwgMHg3MDk4NTE4MiksIFRPQk4oMHhhNmRiNWIwZSwgMHgzMzMxMDg5NSks
CisgICAgICAgICAgIFRPQk4oMHg2NGExMjE3NSwgMHhlMzI5YzJmNSksIFRPQk4oMHhjNWYyNWJk
MiwgMHg5MGVhMjM3ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDc5MTVjNTI0LCAweDJkMGE0YzIz
KSwgVE9CTigweGViNWQyNmU0LCAweDZiYjNjYzUyKSwKKyAgICAgICAgICAgVE9CTigweDM2OWE5
MTE2LCAweGMwOWUyYzkyKSwgVE9CTigweDBjNTI3ZjkyLCAweGNmMTgyY2Y4KX0sCisgICAgICAg
ICAge1RPQk4oMHg5ZTU5MTkzOCwgMHgyYWVkZTBhYyksIFRPQk4oMHhiMjkyMjIwOCwgMHg2Y2Mz
NDkzOSksCisgICAgICAgICAgIFRPQk4oMHgzYzlkODk2MiwgMHg5OWEzNDM2MSksIFRPQk4oMHgz
YzgxODM2ZCwgMHhjMTkwNWZlNil9fSwKKyAgICAgICAgIHt7VE9CTigweDRiZmViNTdmLCAweGEw
MDFlYzVhKSwgVE9CTigweGU5OTNmNWJiLCAweGEwZGM1ZGJhKSwKKyAgICAgICAgICAgVE9CTigw
eDQ3ODg0MTA5LCAweDcyNGExMzgwKSwgVE9CTigweDhhMDM2OWFiLCAweDMyZmU5YTA0KX0sCisg
ICAgICAgICAge1RPQk4oMHhlYTA2OGQ2MCwgMHg4YzkyN2RiOCksIFRPQk4oMHhiZjVmMzdjZiwg
MHg5NDY1NTc0MSksCisgICAgICAgICAgIFRPQk4oMHg0N2Q0MDJhMiwgMHgwNGI2YzdlYSksIFRP
Qk4oMHg0NTUxYzI5NSwgMHg2YWYyNTljYil9fSwKKyAgICAgICAgIHt7VE9CTigweDY5OGI3MWU3
LCAweGVkNzdlZThiKSwgVE9CTigweGJkZGY3YmQwLCAweGYzMDlkNWM3KSwKKyAgICAgICAgICAg
VE9CTigweDYyMDFjMjJjLCAweDM0ZTc4MGNhKSwgVE9CTigweGFiMDRmN2Q4LCAweDRjMjk1ZWY0
KX0sCisgICAgICAgICAge1RPQk4oMHgxYzk0NzI5NCwgMHg0MzEzYThjZSksIFRPQk4oMHhlNTMy
ZTRhYywgMHg5MmNhNGNmZSksCisgICAgICAgICAgIFRPQk4oMHg4OTczOGY4MCwgMHhkMGE3YTk3
YSksIFRPQk4oMHhlYzA4OGM4OCwgMHhhNTgwZmQ1Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDYx
MmIxZWNjLCAweDQyY2U5ZTUxKSwgVE9CTigweDhmOTg0MGZkLCAweGIyNWZkZDJhKSwKKyAgICAg
ICAgICAgVE9CTigweDNjZGE3OGMwLCAweDAxZTdmODM5KSwgVE9CTigweDU0NmIzZDNhLCAweGVj
ZTA1NDgwKX0sCisgICAgICAgICAge1RPQk4oMHgyNzE3MTlhOSwgMHg4MGQzMDkxNiksIFRPQk4o
MHg0NTQ5NzEwNywgMHg1ODRjMjBjNCksCisgICAgICAgICAgIFRPQk4oMHhhZjhmOTQ3OCwgMHg1
YmM3ODYwOCksIFRPQk4oMHgyOGM3ZDQ4NCwgMHgyNzdlMmE0Yyl9fSwKKyAgICAgICAgIHt7VE9C
TigweGZjZTAxNzY3LCAweDg4YTJmZmU0KSwgVE9CTigweGRjNTA2YTM1LCAweDI4ZTE2OWE1KSwK
KyAgICAgICAgICAgVE9CTigweDBlYTEwODYxLCAweDdhZjljOTNhKSwgVE9CTigweDFlZDI0MzYx
LCAweDAzZmEwZTA4KX0sCisgICAgICAgICAge1RPQk4oMHg5NmVhYWE5MiwgMHhhM2Q2OTRlNyks
IFRPQk4oMHhjMGY0M2I0ZCwgMHhlZjUwYmM3NCksCisgICAgICAgICAgIFRPQk4oMHhjZTZhYTU4
YywgMHg2NDExNGRiNCksIFRPQk4oMHg4MjE4ZThlYSwgMHg3YzAwMGZkNCl9fSwKKyAgICAgICAg
IHt7VE9CTigweGFjODE1ZGZiLCAweDE4NWY4ODQ0KSwgVE9CTigweGNkN2U5MGNiLCAweDE1NTdh
YmZiKSwKKyAgICAgICAgICAgVE9CTigweDIzZDE2NjU1LCAweGFmYmZlY2RmKSwgVE9CTigweDgw
ZjMyNzFmLCAweDA4NWNhYzRhKX0sCisgICAgICAgICAge1RPQk4oMHg3ZmMzOWFhNywgMHhkMGU2
MmY0NyksIFRPQk4oMHg4OGQ1MTlkMSwgMHg0NjBhNDhlNSksCisgICAgICAgICAgIFRPQk4oMHg1
OTU1OWFjNCwgMHhkMjhmMTAxZSksIFRPQk4oMHg3OTgxZDllOSwgMHhjYTlhZTgxNil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDVjMzg2NTJjLCAweDlhYzM4MjAzKSwgVE9CTigweDg2ZWFmODdmLCAw
eDU3NjU3ZmU1KSwKKyAgICAgICAgICAgVE9CTigweDU2OGZjNDcyLCAweGUyMWY1NDE2KSwgVE9C
TigweDJhZmZmMzljLCAweGU3ZTU5N2I1KX0sCisgICAgICAgICAge1RPQk4oMHgzYWRiYmIwNywg
MHgyNTZkNGVhYiksIFRPQk4oMHgyMjU5ODY5MiwgMHg4Mjg1YWI4OSksCisgICAgICAgICAgIFRP
Qk4oMHgzNWY4MTEyYSwgMHgwNDFjYWVmZSksIFRPQk4oMHg5NWRmMDJlMywgMHhhNTA2NGM4Yil9
fSwKKyAgICAgICAgIHt7VE9CTigweDRkNjMzNTZlLCAweGM3MDA0YmYzKSwgVE9CTigweDIzMGEw
OGY0LCAweGRiODNjN2RlKSwKKyAgICAgICAgICAgVE9CTigweGNhMjdiMjcwLCAweDg3MDlhN2I3
KSwgVE9CTigweDBkMWM0Y2M0LCAweGNiOWFiZDJkKX0sCisgICAgICAgICAge1RPQk4oMHg4YTBi
YzY2ZSwgMHg3NTUwZmVlOCksIFRPQk4oMHgzNjljZDRjNywgMHg5Y2Y3MjQ3ZSksCisgICAgICAg
ICAgIFRPQk4oMHg3NTU2MmU4NCwgMHg5MmI1YjdlNyksIFRPQk4oMHg4ZmVkMGRhMCwgMHg1ODAy
YWY3Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDZhNzA5MWMyLCAweGU0OGZiODg5KSwgVE9CTigw
eDI2ODgyYzEzLCAweDdiOGE5ZDA2KSwKKyAgICAgICAgICAgVE9CTigweGEyNDk4NjYzLCAweDFi
ODJhMGUyKSwgVE9CTigweDg0NGVkNzM2LCAweDM1MTgxNTJkKX0sCisgICAgICAgICAge1RPQk4o
MHgyODJmNDc2ZiwgMHhkODZlMjdjNyksIFRPQk4oMHhhMDRlZGFjYSwgMHgwNGFmZWZkYyksCisg
ICAgICAgICAgIFRPQk4oMHg4YjI1NmViYywgMHg2MTE5ZTM0ZCksIFRPQk4oMHg1NmE0MTNlOSwg
MHgwNzg3ZDc4Yil9fX0sCisgICAgICAgIHt7e1RPQk4oMHg4MmVlMDYxZCwgMHg1YTc0YmU1MCks
IFRPQk4oMHhlNDE3ODFjNCwgMHhkZWExNmZmNSksCisgICAgICAgICAgIFRPQk4oMHhlMGIwYzgx
ZSwgMHg5OWJmYzhhMiksIFRPQk4oMHg2MjRmNGQ2OSwgMHgwYjU0N2UyZCl9LAorICAgICAgICAg
IHtUT0JOKDB4M2E4MzU0NWQsIDB4YmRjYzlhZTQpLCBUT0JOKDB4MjU3M2RiYjYsIDB4NDA5YjFl
OGUpLAorICAgICAgICAgICBUT0JOKDB4NDgyOTYwYzQsIDB4YTZjOTM1MzkpLCBUT0JOKDB4ZjAx
MDU5YWQsIDB4NWFlMTg3OTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg3MTVjOWY5NywgMHgzMTEy
Nzk1ZiksIFRPQk4oMHhlODI0NDQzNywgMHg5ODRlNmVlMSksCisgICAgICAgICAgIFRPQk4oMHg1
NWNiNDg1OCwgMHhlY2I2NmJjZCksIFRPQk4oMHg3YzEzNjczNSwgMHhhYmFmZmJlZSl9LAorICAg
ICAgICAgIHtUT0JOKDB4NTQ2NjE1OTUsIDB4NWRiZWMzOGUpLCBUT0JOKDB4NTFjMDc4MmMsIDB4
Mzg4YWQxNTMpLAorICAgICAgICAgICBUT0JOKDB4OWJhNGM1M2EsIDB4YzZlMDk1MmYpLCBUT0JO
KDB4MjdlNjc4MmEsIDB4MWIyMWRmYTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg2ODJmOTAzZCwg
MHg0ZWQyZGJjMiksIFRPQk4oMHgwZWJhNTljOCwgMHg3YzNiMmQ4MyksCisgICAgICAgICAgIFRP
Qk4oMHg4ZTlkYzg0ZCwgMHg5YzdlOTMzNSksIFRPQk4oMHg1ZjliMjFiMCwgMHgwZWIyMjZkNyl9
LAorICAgICAgICAgIHtUT0JOKDB4ZTMzYmQzOTQsIDB4YWYyNjdiYWUpLCBUT0JOKDB4YWE4NmNj
MjUsIDB4YmUyZTE1YWUpLAorICAgICAgICAgICBUT0JOKDB4NGYwYmY2N2QsIDB4NmE4ZWM1MDAp
LCBUT0JOKDB4NTg0NmFhNDQsIDB4Zjk2MzA2NTgpfX0sCisgICAgICAgICB7e1RPQk4oMHhmZWIw
OTc0MCwgMHhlMmMyYmYxNSksIFRPQk4oMHg2MjdhMjIwNSwgMHhhOWU5OTcwNCksCisgICAgICAg
ICAgIFRPQk4oMHhlYzhkNzNkMCwgMHhjMmZiYzU2NSksIFRPQk4oMHgyMjNlZWQ4ZiwgMHhjMjBj
OGRlOCl9LAorICAgICAgICAgIHtUT0JOKDB4MWVlMzI1ODMsIDB4YTgzNjNiNDkpLCBUT0JOKDB4
MWEwYjZjYjksIDB4YzljMmIwYTYpLAorICAgICAgICAgICBUT0JOKDB4NDlmN2MzZDIsIDB4OTBk
YmM4NWMpLCBUT0JOKDB4YThkZmJiOTcsIDB4MWVmNGMxYWMpfX0sCisgICAgICAgICB7e1RPQk4o
MHhhZmIzNGQ0YywgMHg2NWM3YzJhYiksIFRPQk4oMHgxZDQ2MTBlNywgMHhlMmM1ZWE4NCksCisg
ICAgICAgICAgIFRPQk4oMHg4OTNmNmQxYiwgMHg5NzNjNGFiNSksIFRPQk4oMHhhM2NkZDdlOSwg
MHg5NDViYTVjNCl9LAorICAgICAgICAgIHtUT0JOKDB4NjA1MTQ5ODMsIDB4MDY0NDE3ZWUpLCBU
T0JOKDB4MTQ1OWIyM2MsIDB4YWQ2YmRmMmIpLAorICAgICAgICAgICBUT0JOKDB4MjNiMmMzNDEs
IDB4NWNmNzI2YzMpLCBUT0JOKDB4M2E4Mjk2MzUsIDB4MzJkNjM1NGEpfX0sCisgICAgICAgICB7
e1RPQk4oMHgyOTRmOTAxZiwgMHhhYjE5MmMxOCksIFRPQk4oMHhlYzVmY2JmZSwgMHg3MDMwMTY0
ZiksCisgICAgICAgICAgIFRPQk4oMHhlMmUyZmNiNywgMHhlMjI0NmJhNiksIFRPQk4oMHgxZTdj
ODhiMywgMHgyMjFhMWEwYyl9LAorICAgICAgICAgIHtUT0JOKDB4NzJjN2RkOTMsIDB4YzkyZDg4
YzUpLCBUT0JOKDB4NDFjMjE0OGUsIDB4MTEwNmZiNTkpLAorICAgICAgICAgICBUT0JOKDB4NTQ3
ZGQ0ZjUsIDB4YTBmNjBmMTQpLCBUT0JOKDB4ZWQ5YjUyYjIsIDB4NjM5NjBmMzEpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg2YzgzNDllYiwgMHhiMGE1YjM1OCksIFRPQk4oMHhiMTU0YzVjMiwgMHg5
ZTdlMmVkNiksCisgICAgICAgICAgIFRPQk4oMHhjYWQ1ZWNjZiwgMHhlZGE0NjJkYiksIFRPQk4o
MHhmMmQ2ZGJlNCwgMHgyZGU2NmI2OSl9LAorICAgICAgICAgIHtUT0JOKDB4NDI2YWVkZjMsIDB4
ODY2NWU1YjIpLCBUT0JOKDB4NDg4YTg1MTMsIDB4N2I3ZjU3MjMpLAorICAgICAgICAgICBUT0JO
KDB4MTVjYzQzYjMsIDB4OGJjYmIzODYpLCBUT0JOKDB4MjdhZDBhZjMsIDB4ZDc5MWQ4NzkpfX0s
CisgICAgICAgICB7e1RPQk4oMHhjMTZjMjM2ZSwgMHg4NDZlMzY0ZiksIFRPQk4oMHg3ZjMzNTI3
YywgMHhkZWE1MGNhMCksCisgICAgICAgICAgIFRPQk4oMHhjNDgxMDc3NSwgMHgwOTI2Yjg2ZCks
IFRPQk4oMHg2YzJhMzYwOSwgMHgwNTk4ZTcwYyl9LAorICAgICAgICAgIHtUT0JOKDB4YTY3NTVl
NTIsIDB4ZjAyNGU5MjQpLCBUT0JOKDB4ZTBmYTA3YTQsIDB4OWRiNGFmY2EpLAorICAgICAgICAg
ICBUT0JOKDB4MTVjM2NlN2QsIDB4NjY4MzE3OTApLCBUT0JOKDB4NWI0ZWYzNTAsIDB4YTZjYmIw
ZDYpfX0sCisgICAgICAgICB7e1RPQk4oMHgyYzRhYWZjNCwgMHhiNjIwNTk2OSksIFRPQk4oMHg0
MjU2M2YwMiwgMHhmNmM3ODU0ZiksCisgICAgICAgICAgIFRPQk4oMHgwMTZhY2VkNSwgMHgxZDk4
M2I0OCksIFRPQk4oMHhmZWIzNTZkOCwgMHg5OTk0OTc1NSl9LAorICAgICAgICAgIHtUT0JOKDB4
OGMyYTJjODEsIDB4ZDFhMzliZDcpLCBUT0JOKDB4OGY0NDM0MGYsIDB4ZTY5MzRhZTkpLAorICAg
ICAgICAgICBUT0JOKDB4MTQ4Y2Y5MWMsIDB4NDQ3OTA0ZGEpLCBUT0JOKDB4NzM0MDE4NWYsIDB4
MGY1MWE5MjYpfX0sCisgICAgICAgICB7e1RPQk4oMHgyZjhmMDBmYiwgMHg3NDA5YWI0NiksIFRP
Qk4oMHgwNTdlNzhlNiwgMHg4MGUyODliMiksCisgICAgICAgICAgIFRPQk4oMHgwM2U1MDIyYywg
MHhhODg4ZTVkMSksIFRPQk4oMHgzYzg3MTExYSwgMHg5ZGVkZTRlMil9LAorICAgICAgICAgIHtU
T0JOKDB4NWI5YjBlMWMsIDB4NzgwOTQ2MGIpLCBUT0JOKDB4ZTc1MWM4NTIsIDB4NzFjOWFiYzcp
LAorICAgICAgICAgICBUT0JOKDB4OGI5NDRlMjgsIDB4YzdjYzFkYzkpLCBUT0JOKDB4NGYyMDFm
ZmEsIDB4MWQzY2ZhMDgpfX0sCisgICAgICAgICB7e1RPQk4oMHgwMmZjOTA1YywgMHgzZTY3MjFj
ZSksIFRPQk4oMHhkNTJkNzBkYSwgMHhkMGIzNjc0YyksCisgICAgICAgICAgIFRPQk4oMHg1ZGMy
ZTVjYSwgMHgxODgxMGRhNCksIFRPQk4oMHhhOTg0YjI3MywgMHg1YzY5ZGQ5OSl9LAorICAgICAg
ICAgIHtUT0JOKDB4NjNiOTI1MjcsIDB4ODRkZTVjYTQpLCBUT0JOKDB4MmYxYzk4NzIsIDB4Yzg1
MmRlYzQpLAorICAgICAgICAgICBUT0JOKDB4MThiMDM1OTMsIDB4YzJlM2RlMDkpLCBUT0JOKDB4
MTlkNzBiMDEsIDB4OTgxM2RjMmYpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MjgwNmIyZCwgMHhh
NmRjMWQyOSksIFRPQk4oMHhkMzAzMDAwOSwgMHhmODcxZTE0NCksCisgICAgICAgICAgIFRPQk4o
MHhhMWZlYjMzMywgMHhhYWY0OTI3NiksIFRPQk4oMHhiNTU4M2I5ZSwgMHhjNzBiYzA0Yil9LAor
ICAgICAgICAgIHtUT0JOKDB4MWRiMGJlNzgsIDB4OTU2OTVmMjApLCBUT0JOKDB4ZmM4NDE4MTEs
IDB4ODlkMDEyYjUpLAorICAgICAgICAgICBUT0JOKDB4NjQwOWYyNzIsIDB4MDVmNjE2NDMpLCBU
T0JOKDB4NDBkMzQxNzQsIDB4ZDU4ODMxMjgpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNzkxOTZm
NSwgMHg2NzQxOTgzMyksIFRPQk4oMHg2MDU5ZTI1MiwgMHg4NjNiN2IwOCksCisgICAgICAgICAg
IFRPQk4oMHg4NGRhMTgxNywgMHgxYzU2NzAwYyksIFRPQk4oMHg1NzU4ZWU1NiwgMHhiMjhkM2Vj
NCl9LAorICAgICAgICAgIHtUT0JOKDB4N2RhMjc3MWQsIDB4MDEzYjBlYTYpLCBUT0JOKDB4ZmRk
ZjUyNGIsIDB4NTRjNWU5YjkpLAorICAgICAgICAgICBUT0JOKDB4N2RmNGZhZjgsIDB4MjQzMDVk
ODApLCBUT0JOKDB4NThmNWMxYmYsIDB4M2E5Nzc2M2YpfX0sCisgICAgICAgICB7e1RPQk4oMHhh
NWFmMzdmMSwgMHg3YzY5NjA0MiksIFRPQk4oMHhkNGNiYTIyYywgMHg0YTI1MzhkZSksCisgICAg
ICAgICAgIFRPQk4oMHgyMTFjYjk5NSwgMHg5ZWE0MjYwMCksIFRPQk4oMHhjZDEwNWY0MSwgMHg3
YjA2OTg4OSl9LAorICAgICAgICAgIHtUT0JOKDB4YjFlMWNmMTksIDB4ZGRiODFlNzQpLCBUT0JO
KDB4NDcyZjJkODksIDB4NTE1N2I4Y2EpLAorICAgICAgICAgICBUT0JOKDB4MDg2ZmIwMDgsIDB4
ZWU5ZGI4ODUpLCBUT0JOKDB4MzY1Y2Q1NzAsIDB4MGYyNmQxMzEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgyODRiMDJiYiwgMHhhMmJlNzA1MyksIFRPQk4oMHhkY2JiZjdjNiwgMHg3YWI5YTZkNiks
CisgICAgICAgICAgIFRPQk4oMHg0NDI1NTU5YywgMHgyMGY3YTUzMCksIFRPQk4oMHg5NjFmMmRm
YSwgMHgxODg3NjdjOCl9LAorICAgICAgICAgIHtUT0JOKDB4ZTJmZDk0MzUsIDB4NzBkYzgwYzQp
LCBUT0JOKDB4MTA0ZDZiNjMsIDB4ZjA3ODQxMjApLAorICAgICAgICAgICBUT0JOKDB4N2Y1OTJi
YzEsIDB4NTM1NjcxMjIpLCBUT0JOKDB4ZjZiYzEyNDYsIDB4ZjY4OGFkNzcpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgwNTIxNGMwNSwgMHgwZjE1ZGRlOSksIFRPQk4oMHhhNDdhNzZhOCwgMHgwZDVm
MmI4MiksCisgICAgICAgICAgIFRPQk4oMHhiYjI1NGQzMCwgMHg2MmU4MmI2MiksIFRPQk4oMHgx
MWEwNWZlMCwgMHgzZWM5NTVlZSl9LAorICAgICAgICAgIHtUT0JOKDB4N2VhZmY0NmUsIDB4OWQ1
MjliMzYpLCBUT0JOKDB4NTVhYjEzMDEsIDB4OGY5ZTNkZjYpLAorICAgICAgICAgICBUT0JOKDB4
YzQ2M2UzNzEsIDB4OTkzMTc2OTgpLCBUT0JOKDB4ZmQyNTE0MzgsIDB4Y2NkYTQ3YWQpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhjYTljMzU0NywgMHgyM2Q2OTVlYSksIFRPQk4oMHg0OGNlNjI2ZSwg
MHgxNmU1ODliNSksCisgICAgICAgICAgIFRPQk4oMHg2YjViNjRjNywgMHhiMTg3ZDA4NiksIFRP
Qk4oMHhkMDJlMTc5NCwgMHhiMjIwNzk0OCl9LAorICAgICAgICAgIHtUT0JOKDB4OGI1OGU5OGYs
IDB4NzE5ODExMWQpLCBUT0JOKDB4OTBjYTYzMDUsIDB4ZGNmOWMzY2MpLAorICAgICAgICAgICBU
T0JOKDB4NTY5MWZlNzIsIDB4ZjM0MDg5YjApLCBUT0JOKDB4NjA5NDFhZjEsIDB4ZmM3YzgwZmYp
fX0sCisgICAgICAgICB7e1RPQk4oMHhhMDliYzBhMiwgMHgyMmViNTFlNSksIFRPQk4oMHhjMGJi
NzI0NCwgMHhhYTljZjA5YSksCisgICAgICAgICAgIFRPQk4oMHgzNmE4MDc3ZiwgMHg4MDE1OWYw
NiksIFRPQk4oMHg4YjVjOTg5ZSwgMHhkZGRjNTYwZSl9LAorICAgICAgICAgIHtUT0JOKDB4MTlk
MmYzMTYsIDB4NTEyZTFmNDMpLCBUT0JOKDB4MDJlYWM1NTQsIDB4YWQwOGZmNjIpLAorICAgICAg
ICAgICBUT0JOKDB4MDEyYWI4NGMsIDB4MDdkMjBiNGUpLCBUT0JOKDB4MzdkMWUxMTUsIDB4ZDZk
NGU0ZTEpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNjQ0M2UxYSwgMHhhYjdiMTlhOCksIFRPQk4o
MHhmMDhkMDY3ZSwgMHhkZWY4Y2Q0NSksCisgICAgICAgICAgIFRPQk4oMHg2M2FkZjNlOSwgMHg2
ODVlMDNkYSksIFRPQk4oMHhjZjE1YTEwZSwgMHg0NzkyYjkxNil9LAorICAgICAgICAgIHtUT0JO
KDB4ZjQ0YmNjZTUsIDB4YjczOGE0MjUpLCBUT0JOKDB4ZWJlMTMxZDUsIDB4OTYzNmIyZmQpLAor
ICAgICAgICAgICBUT0JOKDB4OTQwNjg4NDEsIDB4Nzg1MGQ2MDUpLCBUT0JOKDB4MDk2ODRlYWEs
IDB4YjQwZDc0OWQpfX0sCisgICAgICAgICB7e1RPQk4oMHg4YzNjNjY5YywgMHg3MmJhMDc1Yiks
IFRPQk4oMHg4OWY3OGI1NSwgMHhiYTQ2OTAxNSksCisgICAgICAgICAgIFRPQk4oMHg1NzA2YWFk
ZSwgMHgzZTlmOGJhOCksIFRPQk4oMHg2ZDhiZDU2NSwgMHhiMzJkN2VkNyl9LAorICAgICAgICAg
IHtUT0JOKDB4MjVmNGU2M2IsIDB4ODA1ZjA4ZDYpLCBUT0JOKDB4N2Y0ODIwMGQsIDB4YzNiY2Mx
YjUpLAorICAgICAgICAgICBUT0JOKDB4NGU4MDE5NjgsIDB4YjAyNWQ4NDcpLCBUT0JOKDB4NzRh
ZmFjMDQsIDB4ODdjYmUwYTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg0M2VkMmMyYiwgMHg3ZTYz
ZDY5MCksIFRPQk4oMHhlZmI2YmJmMCwgMHgwMjIzY2RiOCksCisgICAgICAgICAgIFRPQk4oMHg0
ZmVjM2NhZSwgMHgyODg0ZDNmZSksIFRPQk4oMHgwNjVlY2NlNiwgMHhkNzVlMjVhNCl9LAorICAg
ICAgICAgIHtUT0JOKDB4NmMyMjk0Y2UsIDB4NjlmNzkwNzEpLCBUT0JOKDB4MGQ5YThlNWYsIDB4
MDQ0Yjg2NjYpLAorICAgICAgICAgICBUT0JOKDB4NTAwOWYyMzgsIDB4MTdiNjlkOGYpLCBUT0JO
KDB4M2MyOWY4ZmUsIDB4YzVkZmRhZjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg5MDY3NTI4Ziwg
MHhlYmFlNjhjNCksIFRPQk4oMHg1YjM4NTYzMiwgMHgzMGM1YmEyMSksCisgICAgICAgICAgIFRP
Qk4oMHg1NDBkZjExOSwgMHgxZmRkMWFlYyksIFRPQk4oMHhjZjM3ODI1YiwgMHhjZmJhNGM3OCl9
LAorICAgICAgICAgIHtUT0JOKDB4NzdlZmY5ODAsIDB4YmViMTE0NTQpLCBUT0JOKDB4NDBhMWE5
OTEsIDB4NjBjMWIwNjYpLAorICAgICAgICAgICBUT0JOKDB4ZTgwMTg5ODAsIDB4Zjg4OWExYzcp
LCBUT0JOKDB4YjljNTJhZTksIDB4NzZjMjRiZTApfX0sCisgICAgICAgICB7e1RPQk4oMHgwNWZi
YmNjZSwgMHg0NTY1MGVmNCksIFRPQk4oMHhhZTAwMGYxMCwgMHg4YWEyOWFjNyksCisgICAgICAg
ICAgIFRPQk4oMHg4ODRiNzE3MiwgMHg0ZjA0YzQ3MCksIFRPQk4oMHg3Y2Q0ZmRlMiwgMHgxOWJi
NWMyNSl9LAorICAgICAgICAgIHtUT0JOKDB4NjQ3N2IyMmEsIDB4ZTg4NDA4NjkpLCBUT0JOKDB4
YTg4Njg4NTksIDB4NWZiZDA2ODYpLAorICAgICAgICAgICBUT0JOKDB4ZjIzY2MwMmUsIDB4MTEx
NmRmYmEpLCBUT0JOKDB4NzZjZDU2M2YsIDB4ZDg3ZDc3NzYpfX0sCisgICAgICAgICB7e1RPQk4o
MHhlMmEzNzU5OCwgMHhhOWQ4MmFiZiksIFRPQk4oMHg1ZjE4OGNjYiwgMHhlNmMxNzBmNSksCisg
ICAgICAgICAgIFRPQk4oMHg4MTY4MjIwMCwgMHg1MDY2YjA4NyksIFRPQk4oMHhkYTIyYzIxMiwg
MHhjNzE1NWFkYSl9LAorICAgICAgICAgIHtUT0JOKDB4MTUxZTVkM2EsIDB4ZmJkZGI0NzkpLCBU
T0JOKDB4NGI2MDZiODQsIDB4NmQ3MTViOTkpLAorICAgICAgICAgICBUT0JOKDB4NGE3M2I1NGIs
IDB4Zjk5N2NiMmUpLCBUT0JOKDB4OWExYmZlNDMsIDB4M2VjZDhiNjYpfX0sCisgICAgICAgICB7
e1RPQk4oMHgxYzMxMjgwOSwgMHgyYTY3ZDQ4YSksIFRPQk4oMHhjZDZhNjcxZSwgMHgwMzFmYTll
MiksCisgICAgICAgICAgIFRPQk4oMHhiZWMzMzEyYSwgMHgwZTQzYTM0YSksIFRPQk4oMHgxZDkz
NTYzOSwgMHg1NWVmNDdkMyl9LAorICAgICAgICAgIHtUT0JOKDB4NWVhMDI0ODksIDB4OGZlYTcz
ZWEpLCBUT0JOKDB4ODI0N2IzNjQsIDB4YTAzNWFmYjIpLAorICAgICAgICAgICBUT0JOKDB4YjU4
MzAwYTYsIDB4NTI2NWI1NGMpLCBUT0JOKDB4MzI4NjY2MmYsIDB4NzIyYzcxNDgpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhiNzdmZDc2YiwgMHhiNGVjNGMyMCksIFRPQk4oMHhmMGExMmZhNywgMHgw
ZjNmZTNmZCksCisgICAgICAgICAgIFRPQk4oMHhmODQ1YmJmNSwgMHg0MWQ4YzdlOCksIFRPQk4o
MHhlNGQ5NjljYSwgMHg1ZWMxMGFhOCl9LAorICAgICAgICAgIHtUT0JOKDB4NGMwMDUzYjcsIDB4
NDNlMjMyYTMpLCBUT0JOKDB4ZGM3YTNmYWMsIDB4MzdmOGE0NWEpLAorICAgICAgICAgICBUT0JO
KDB4M2M0MjYxYzUsIDB4MjBkODFjOGYpLCBUT0JOKDB4ZmQ0YjM0NTMsIDB4YjAwZWFiMDApfX0s
CisgICAgICAgICB7e1RPQk4oMHg3NmQ0OGY4NiwgMHhkMzZlMzA2MiksIFRPQk4oMHg2MjZjNTI3
NywgMHhhMTQzZmYwMiksCisgICAgICAgICAgIFRPQk4oMHg1MzgxNzRkZSwgMHhhZjc2ZjQyZSks
IFRPQk4oMHgyMjY3YWE4NiwgMHg2NDA3Y2VhYyl9LAorICAgICAgICAgIHtUT0JOKDB4ZmFkNzYz
NTEsIDB4NzJlNTcyZDUpLCBUT0JOKDB4YWI4NjFhZjcsIDB4YmE3MzMwZWIpLAorICAgICAgICAg
ICBUT0JOKDB4YTBhMWM4YzcsIDB4NDE4ZDg2NTcpLCBUT0JOKDB4OTg4ODIxY2IsIDB4MjAyODlh
NTIpfX0sCisgICAgICAgICB7e1RPQk4oMHg3OTczMjUyMiwgMHhjY2NjMThhZCksIFRPQk4oMHhh
YWRmM2Y4ZCwgMHhmMWE2ZTAyNyksCisgICAgICAgICAgIFRPQk4oMHhmNzM4MmM5MywgMHgxN2My
MzU0ZCksIFRPQk4oMHg1Y2UxNjgwYywgMHhkODE4YjY4OSl9LAorICAgICAgICAgIHtUT0JOKDB4
MzU5ZWJiZmMsIDB4ZDllY2JlZTkpLCBUT0JOKDB4NDMzMDY4OWMsIDB4MWNhZTYyYWMpLAorICAg
ICAgICAgICBUT0JOKDB4YjU1Y2U1YjQsIDB4YzUxYWMzOGEpLCBUT0JOKDB4NzkyMWRmZWEsIDB4
ZmUyMzhlZTgpfX0sCisgICAgICAgICB7e1RPQk4oMHgzOTcyYmVmOCwgMHgyNzFkMWNhNSksIFRP
Qk4oMHgzZTQyM2JjNywgMHhlOGFhYmQxOCksCisgICAgICAgICAgIFRPQk4oMHg1N2IwOWYzZiwg
MHg0NGEzZTVlMyksIFRPQk4oMHg1ZGE4ODZhZSwgMHg3YjQ0NGQ2Nil9LAorICAgICAgICAgIHtU
T0JOKDB4NjgyMDY2MzQsIDB4YTk5NjQzNzUpLCBUT0JOKDB4MzU2YTJmYTMsIDB4Njk5Y2QwZmYp
LAorICAgICAgICAgICBUT0JOKDB4YWYwZmFhMjQsIDB4ZGJhNTE1ZTkpLCBUT0JOKDB4NTM2ZTFm
NWMsIDB4YjMyMWQ3OWEpfX0sCisgICAgICAgICB7e1RPQk4oMHhkM2I5OTEzYSwgMHg1YzA0ZTRl
YSksIFRPQk4oMHhkNTQ5ZGNmZSwgMHhkNmYxMTUxMyksCisgICAgICAgICAgIFRPQk4oMHhlZTIy
N2JmNSwgMHg3OWZkMWQ5NCksIFRPQk4oMHg5ZjM1YWZlZSwgMHhiNDNmMmM2Nyl9LAorICAgICAg
ICAgIHtUT0JOKDB4ZDI2MzhkMjQsIDB4ZjEzMTRmNTMpLCBUT0JOKDB4NjJiYWY5NDgsIDB4Y2Fi
Y2Q4MjIpLAorICAgICAgICAgICBUT0JOKDB4NTU0MmRlMjksIDB4NGVmNDhkYjApLCBUT0JOKDB4
YjNlYjZhMDQsIDB4ZmM1ZjZiYjIpfX0sCisgICAgICAgICB7e1RPQk4oMHgyM2MxMTBhZSwgMHgx
MjA4ZTE2YSksIFRPQk4oMHgxYTRkMTViNSwgMHhmODM2M2UyNCksCisgICAgICAgICAgIFRPQk4o
MHgzMDcxNjg0NCwgMHgxNjRiZTAwYiksIFRPQk4oMHhhOGUyNDgyNCwgMHhmNmY0NjkwZCl9LAor
ICAgICAgICAgIHtUT0JOKDB4NTQ4NzczYTIsIDB4OTBiMTcwY2YpLCBUT0JOKDB4YTFiZWYzMzEs
IDB4NDJmMTkxZjQpLAorICAgICAgICAgICBUT0JOKDB4NzBmNDE4ZDAsIDB4OTI0N2FhOTcpLCBU
T0JOKDB4ZWEwNjAyOGUsIDB4NDhiZTkxNDcpfX0sCisgICAgICAgICB7e1RPQk4oMHhlMTMxMjJm
MywgMHhkYmZiODk0ZSksIFRPQk4oMHhiZTliNzlmNiwgMHhjZTI3NGIxOCksCisgICAgICAgICAg
IFRPQk4oMHg4NWE0OWRlNSwgMHhjYTU4YWFkZiksIFRPQk4oMHgyNDk1Nzc1OCwgMHgxMTQ4NzM1
MSl9LAorICAgICAgICAgIHtUT0JOKDB4MTExZGVmNjEsIDB4YmI5MzkwOTkpLCBUT0JOKDB4MWQ2
YTk3NGEsIDB4MjZkMTM2OTQpLAorICAgICAgICAgICBUT0JOKDB4NDQ3NGI0Y2UsIDB4ZDNmYzI1
M2IpLCBUT0JOKDB4M2ExNDg1ZTYsIDB4NGM1ZGIxNWUpfX0sCisgICAgICAgICB7e1RPQk4oMHhl
Nzk2NjdiNCwgMHgxNDdjMTViNCksIFRPQk4oMHhlMzRmNTUzYiwgMHg3YmM2MTMwMSksCisgICAg
ICAgICAgIFRPQk4oMHgwMzJiODBmOCwgMHgxNzA5NDM4MSksIFRPQk4oMHg1NWQ4YmFmZCwgMHg3
MjNlYWEyMSl9LAorICAgICAgICAgIHtUT0JOKDB4NWE5ODc5OTUsIDB4ZjFjMGU3NGUpLCBUT0JO
KDB4NWE5YjI5MmUsIDB4ZWJiYTI4OWMpLAorICAgICAgICAgICBUT0JOKDB4NDEzY2Q0YjIsIDB4
ZWI0YzgyNTEpLCBUT0JOKDB4OThiNWQyNDMsIDB4ZDE2MmRiMGEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhiYjQ3YmY2NiwgMHg2ODM0MjUyMCksIFRPQk4oMHgwOGQ2ODk0OSwgMHhiYWE4NjJkMSks
CisgICAgICAgICAgIFRPQk4oMHgxMWYzNDljNywgMHhlOTA2YWJjZCksIFRPQk4oMHg0NTRjZTk4
NSwgMHhlZDdiZjAwZSl9LAorICAgICAgICAgIHtUT0JOKDB4YWNhYjVjOWUsIDB4YjU1YjgwM2Ip
LCBUT0JOKDB4YjAzNDY4ZWEsIDB4MzFlM2MxNmQpLAorICAgICAgICAgICBUT0JOKDB4NWMyNDIx
M2QsIDB4ZDI3M2JmMTIpLCBUT0JOKDB4MjExNTM4ZWIsIDB4NzE1ODc4ODcpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgxOThlNGEyZiwgMHg3MzFkZWEyZCksIFRPQk4oMHhkNTg1NmNmMiwgMHg3NGVk
N2IyYSksCisgICAgICAgICAgIFRPQk4oMHg4NmE2MzJlYiwgMHgxM2E2NjRmZSksIFRPQk4oMHg5
MzJjZDkwOSwgMHhiZGE0MTI5MSl9LAorICAgICAgICAgIHtUT0JOKDB4ODUwZTk1ZDQsIDB4YzBj
NGRkYzApLCBUT0JOKDB4YzBmNDIyZjgsIDB4MzQ3ZmMyYzkpLAorICAgICAgICAgICBUT0JOKDB4
ZTY4Y2JlYzQsIDB4ODYwNzZiY2IpLCBUT0JOKDB4ZjllN2MwYzAsIDB4Y2Q2Y2QyODYpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg2NTk5NGRkYiwgMHgwZjVmMjdjYSksIFRPQk4oMHhlODU0NjFmYiwg
MHhhODBkNTlmZiksCisgICAgICAgICAgIFRPQk4oMHhmZjA1NDgxYSwgMHg2NjYwMTAyMyksIFRP
Qk4oMHhjNjY1NDI3YSwgMHhmYzllYmJmYil9LAorICAgICAgICAgIHtUT0JOKDB4YjA1NzFhNjks
IDB4NzU4N2ZkNTIpLCBUT0JOKDB4OTM1Mjg5ZjgsIDB4OGQ0OWVmY2UpLAorICAgICAgICAgICBU
T0JOKDB4NjFiZWNjNjAsIDB4ZWE0MjA2ODgpLCBUT0JOKDB4YjIyNjM5ZDksIDB4MTNhNzg2YWYp
fX0sCisgICAgICAgICB7e1RPQk4oMHgxYThlNjIyMCwgMHgzNjFlY2Y5MCksIFRPQk4oMHgwMDFm
MjNlMCwgMHgyNTUwNjQ2MyksCisgICAgICAgICAgIFRPQk4oMHhlNGFlOWI1ZCwgMHgwYTVjMmI3
OSksIFRPQk4oMHhlYmM5Y2RhZCwgMHhkODE0OWRiNSl9LAorICAgICAgICAgIHtUT0JOKDB4YjMz
MTY0YTEsIDB4OTM0YWE3MjgpLCBUT0JOKDB4NzUwZWIwMGUsIDB4YWU5YjYwZjMpLAorICAgICAg
ICAgICBUT0JOKDB4NWE5MTYxNWIsIDB4OWI5Y2ZiZmQpLCBUT0JOKDB4OTcwMTVjYmYsIDB4ZWY0
NWY3ZjYpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNDYyYzRhNSwgMHhiZjUxNTFkZiksIFRPQk4o
MHgyMWFkY2M0MSwgMHhiMDcxMThmMiksCisgICAgICAgICAgIFRPQk4oMHhkNjBjNTQ1YiwgMHgw
NDNmYTQyYyksIFRPQk4oMHhmYzIxYWE1NCwgMHhlOTZiZTFhYil9LAorICAgICAgICAgIHtUT0JO
KDB4ZTg0YmMzMmYsIDB4NGU1MWVhODApLCBUT0JOKDB4M2RhZTQ1ZjAsIDB4MjU5YjVkOGQpLAor
ICAgICAgICAgICBUT0JOKDB4YmI3M2M3ZWIsIDB4YzM4ZjFiNWUpLCBUT0JOKDB4ZTQwNWE3NGEs
IDB4ZThhZTYxN2QpfX0sCisgICAgICAgICB7e1RPQk4oMHhiYjFhZTljNiwgMHg5ZjFjNTZiZCks
IFRPQk4oMHg4YzE3NmI5OCwgMHg0OWYxOTZhNCksCisgICAgICAgICAgIFRPQk4oMHhjNDQ4ZjMx
MSwgMHg2ODc1MDkyYiksIFRPQk4oMHhiNWFmZTNkZSwgMHg5Zjk3NjAzMyl9LAorICAgICAgICAg
IHtUT0JOKDB4YThkYWZkNDksIDB4MTQ1ODEzZTUpLCBUT0JOKDB4Njg3ZmM0ZDksIDB4ZTJiMzQy
MjYpLAorICAgICAgICAgICBUT0JOKDB4ZjJkZmM5MmQsIDB4NGM3ZmY1N2YpLCBUT0JOKDB4MDA0
ZTNmYzEsIDB4NDAxZjFiNDYpfX0sCisgICAgICAgICB7e1RPQk4oMHg1YWZkZGFiNiwgMHgxNDMw
YzlhYiksIFRPQk4oMHgwYmRkNDFkMywgMHgyMjM4ZTk5NyksCisgICAgICAgICAgIFRPQk4oMHhm
MDk0NzQzMCwgMHg0MTgwNDJhZSksIFRPQk4oMHg3MWY5YWRkYSwgMHhjZGRkYzRjYil9LAorICAg
ICAgICAgIHtUT0JOKDB4NzA5MGMwMTYsIDB4YzUyZGQ5MDcpLCBUT0JOKDB4ZDliZGY0NGQsIDB4
MjllMjA0N2YpLAorICAgICAgICAgICBUT0JOKDB4ZTZmMWZlODAsIDB4MWIxMDExYTYpLCBUT0JO
KDB4YjYzYWNjYmMsIDB4ZDlhY2RjNzgpfX0sCisgICAgICAgICB7e1RPQk4oMHhjZmM3ZTIzNSwg
MHgxMjcyYTk1YiksIFRPQk4oMHgwYzY2NzcxNywgMHhhNjI3NmFjOCksCisgICAgICAgICAgIFRP
Qk4oMHgzYzBkMzcwOSwgMHhlMmQ3ZWVmNyksIFRPQk4oMHg1YWRkMmIwNiwgMHg5YTY4NWIzZSl9
LAorICAgICAgICAgIHtUT0JOKDB4MzYzYWQzMmQsIDB4MTRlYTVkNjUpLCBUT0JOKDB4ZjhlMDFm
MDYsIDB4OGQ3ZGQ1MDYpLAorICAgICAgICAgICBUT0JOKDB4YzllYTIyMTMsIDB4NzViNGFhYzYp
LCBUT0JOKDB4ZWQyYTJiZjksIDB4MGQzNTM0NjYpfX0sCisgICAgICAgICB7e1RPQk4oMHg0Mzlk
NzliNSwgMHhlOWQzYTdjMyksIFRPQk4oMHg4ZTBlZTVhNiwgMHg4MWI3ZjM0YiksCisgICAgICAg
ICAgIFRPQk4oMHhjZjNkYWNmNSwgMHgxZGM0YmE3NSksIFRPQk4oMHgxZDNkMTc3MywgMHhlYjMz
MTBjNyl9LAorICAgICAgICAgIHtUT0JOKDB4YThlNjcxMTIsIDB4Nzc0N2FlODMpLCBUT0JOKDB4
MzFmNDMxNjAsIDB4MTk3ZDZiNDApLAorICAgICAgICAgICBUT0JOKDB4MDUyMWNjZWUsIDB4Y2Q5
NjE0MDApLCBUT0JOKDB4NjcyNDZmMTEsIDB4ZjY1MzU3NjgpfX0sCisgICAgICAgICB7e1RPQk4o
MHg3MDJmY2M1YSwgMHhlZjBjMzEzMyksIFRPQk4oMHgyNDdjYzQ1ZCwgMHg3ZTE2NjkzYiksCisg
ICAgICAgICAgIFRPQk4oMHhmZDQ4NGU0OSwgMHhjNzI5Yjc0OSksIFRPQk4oMHg1MjJjZWY3ZCwg
MHhiMjE4MzIwZil9LAorICAgICAgICAgIHtUT0JOKDB4ZTU2ZWY0MDUsIDB4NTlhYjkzYjMpLCBU
T0JOKDB4MjI1ZmJhMTEsIDB4OWYxODEwNzEpLAorICAgICAgICAgICBUT0JOKDB4MzNiZDY1OTUs
IDB4MTUzMzBlZDApLCBUT0JOKDB4YzRiZTY5ZDUsIDB4MWRkYjMyZjcpfX0sCisgICAgICAgICB7
e1RPQk4oMHgyNjRjNzY2OCwgMHgwNDQ4MDg3YyksIFRPQk4oMHhhYzMwOTAzZiwgMHg3MTQzMmRh
ZSksCisgICAgICAgICAgIFRPQk4oMHgzODUxYjI2NiwgMHgwMGY5YmY0NyksIFRPQk4oMHg0MDBl
ZDMxMSwgMHg2Y2RkNmQwMyl9LAorICAgICAgICAgIHtUT0JOKDB4MDQ1ZTc5ZmUsIDB4ZjhmZDI0
MjQpLCBUT0JOKDB4ZmRmZDk3NGEsIDB4ZmE2ZGE5OGIpLAorICAgICAgICAgICBUT0JOKDB4NDVj
OWY2NDEsIDB4MGMxZTY3M2EpLCBUT0JOKDB4NzZmMmU3MzMsIDB4NWIyYzUxNjgpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgxYWRhZWJiNSwgMHgyYTYwMTc1MyksIFRPQk4oMHhiMjg2NTE0YywgMHhj
NTdjMmQ0OSksCisgICAgICAgICAgIFRPQk4oMHhkODc2OTY3MCwgMHgxZTBiZmQyNCksIFRPQk4o
MHg5NTBjNTQ3ZSwgMHgwNDQ3ODkyMil9LAorICAgICAgICAgIHtUT0JOKDB4ZDFkNDE5NjksIDB4
ZTVkMzJiZmUpLCBUT0JOKDB4MzBiYzE0NzIsIDB4NzUwZDZjM2UpLAorICAgICAgICAgICBUT0JO
KDB4OGYzNjc5ZmUsIDB4ZTBlMjdmM2EpLCBUT0JOKDB4OGY2NGE3ZGMsIDB4YTRhNmVlMGMpfX0s
CisgICAgICAgICB7e1RPQk4oMHgyZmU1OTkzNywgMHg2MzNkZmIxZiksIFRPQk4oMHhlYTgyYzM5
NSwgMHg5NzdmMjU0NyksCisgICAgICAgICAgIFRPQk4oMHhjYmRmZGYxYSwgMHg2NjFlYTY0Niks
IFRPQk4oMHhjN2NjYzU5MSwgMHhiOTA4NTQ1MSl9LAorICAgICAgICAgIHtUT0JOKDB4ODIxNzc5
NjIsIDB4ODE3NjFlMTMpLCBUT0JOKDB4ZGE1NzU5NmYsIDB4OTE5Njg4NWMpLAorICAgICAgICAg
ICBUT0JOKDB4YmMxN2U4NDksIDB4MjhmZmJkNzApLCBUT0JOKDB4MWU2ZTBhNDEsIDB4MjY3MWQz
NmYpfX0sCisgICAgICAgICB7e1RPQk4oMHg2MWFlODcyYywgMHg0MTUyZmNmNSksIFRPQk4oMHg0
NDFjODdiMCwgMHg5ZTc3ZTc1NCksCisgICAgICAgICAgIFRPQk4oMHhkMDc5OWRkNSwgMHhhMzRk
ZmYwOSksIFRPQk4oMHg3NjZiNGU0NCwgMHg4OGE2YjE3MSl9LAorICAgICAgICAgIHtUT0JOKDB4
ZGMwNmE1MTIsIDB4MTFmMWM3OTIpLCBUT0JOKDB4ZWEwMmFlOTMsIDB4NGJlMzVjM2UpLAorICAg
ICAgICAgICBUT0JOKDB4ZTVjYTRkNmQsIDB4ZTkwYzQ2OWUpLCBUT0JOKDB4NGRmNDM2OGUsIDB4
NTZlNGZmNWMpfX0sCisgICAgICAgICB7e1RPQk4oMHg3ODE3YWNhYiwgMHg0YmFlZjYyZSksIFRP
Qk4oMHg5ZjVhMjIwMiwgMHhhODViOTFlOCksCisgICAgICAgICAgIFRPQk4oMHg5NjY2ZWJlNiwg
MHg2Y2U1NzYxMCksIFRPQk4oMHgzMmFkMzFmMywgMHhmNzNiZmUwMyl9LAorICAgICAgICAgIHtU
T0JOKDB4NjI4MzMwYTQsIDB4MjViY2Y0ZDYpLCBUT0JOKDB4ZWE5NTA1OTMsIDB4NTE1MDU2ZTYp
LAorICAgICAgICAgICBUT0JOKDB4NTk4MTFjODksIDB4ZTEzMzIxNTYpLCBUT0JOKDB4Yzg5Y2Yx
ZmUsIDB4OGMxMWIyZDcpfX0sCisgICAgICAgICB7e1RPQk4oMHg3NWI2MzkxMywgMHgwNGU2MGNj
MCksIFRPQk4oMHhjZTgxMWU4ZCwgMHg0NjI1ZDM3NSksCisgICAgICAgICAgIFRPQk4oMHgwMzBl
NDNmYywgMHgyZDI2ZTU2MiksIFRPQk4oMHhmYmIzMGI0YiwgMHg2MDhkMzZhMCl9LAorICAgICAg
ICAgIHtUT0JOKDB4NjM0ZmY4MmMsIDB4NDg1MjgxMTgpLCBUT0JOKDB4N2M2ZmUwODUsIDB4Y2Qy
ODU5MTEpLAorICAgICAgICAgICBUT0JOKDB4N2YyODMwYzAsIDB4OTkzNThmMjgpLCBUT0JOKDB4
MmU2MGE5NWUsIDB4NjY1ZTZjMDkpfX0sCisgICAgICAgICB7e1RPQk4oMHgwODQwN2QzZCwgMHg5
Yjc4NWRiZiksIFRPQk4oMHg1MzA4ODlhYiwgMHhhNzU5YmNlNyksCisgICAgICAgICAgIFRPQk4o
MHhmMjI4ZTBlNiwgMHg1MmY2MTIzOSksIFRPQk4oMHgyYjZkMTQ2MSwgMHg2ODc5YmUzYyl9LAor
ICAgICAgICAgIHtUT0JOKDB4ZTY5MDJjMDQsIDB4NTFhN2JiZjcpLCBUT0JOKDB4MzBhZDk5ZjAs
IDB4NzZmMjRhNjQpLAorICAgICAgICAgICBUT0JOKDB4NjZkOTMxN2EsIDB4OThiYzZkYTApLCBU
T0JOKDB4ZjRmODc3ZjMsIDB4Y2I1OTZhYzApfX0sCisgICAgICAgICB7e1RPQk4oMHhiMDVmZjYy
ZCwgMHg0YzQ0ZjExOSksIFRPQk4oMHg0NTU1ZjUzNiwgMHhlOWI3NzQxNiksCisgICAgICAgICAg
IFRPQk4oMHhjN2MwZDA1OSwgMHg4Y2FlZDYzYiksIFRPQk4oMHgwY2QyYjdjZSwgMHhjMzU4YjJh
OSl9LAorICAgICAgICAgIHtUT0JOKDB4M2YzMzI4N2IsIDB4NDY5NDVmYTMpLCBUT0JOKDB4Zjg3
ODViMjAsIDB4ZDY3Yzg3OTEpLAorICAgICAgICAgICBUT0JOKDB4YzU0YTdhNjEsIDB4OTYzN2Jk
MDgpLCBUT0JOKDB4NTRkNDU5OGMsIDB4MThiZTc5ZDcpfX0sCisgICAgICAgICB7e1RPQk4oMHg4
ODllNWFjYiwgMHhjNDZkN2NlMSksIFRPQk4oMHg5YTUxNWJiNywgMHg4YjA4NTg3NyksCisgICAg
ICAgICAgIFRPQk4oMHhmYWMxYTAzZCwgMHgwYjdhNTA1MCksIFRPQk4oMHg3ZDNlNzM4YSwgMHhm
MjkyNjAzNSl9LAorICAgICAgICAgIHtUT0JOKDB4ODYxY2MyY2UsIDB4MmE2Y2IwZWIpLCBUT0JO
KDB4NmYyZTI5NTUsIDB4OGY3YWRjNzkpLAorICAgICAgICAgICBUT0JOKDB4NjFjNGQ0NTEsIDB4
MzMwMTYzNzYpLCBUT0JOKDB4ZDlmZDJjODAsIDB4NWFkNTkwOTApfX0sCisgICAgICAgICB7e1RP
Qk4oMHhlNWE4MzczOCwgMHhiMmI4MzZhMSksIFRPQk4oMHg4NTViNDFhMCwgMHg3YzBkNjYyMiks
CisgICAgICAgICAgIFRPQk4oMHgxODZmZTMxNywgMHg3Y2MxOWFmMSksIFRPQk4oMHg2NDY1YzFm
ZiwgMHhmZGQ5OWFjYil9LAorICAgICAgICAgIHtUT0JOKDB4NDZlNWMyM2YsIDB4Njk3NGI5OWUp
LCBUT0JOKDB4NzVhN2NmOGIsIDB4YTI3MTdjYmUpLAorICAgICAgICAgICBUT0JOKDB4NGQyZWJj
M2YsIDB4MDYyYmU2NTgpLCBUT0JOKDB4MDk0YjQ0NDcsIDB4NWYyMDljOTgpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg0YWYyODVlZCwgMHhiOTQwY2I1YSksIFRPQk4oMHg2NzA2ZDc5MiwgMHg3Y2M4
MmYxMCksCisgICAgICAgICAgIFRPQk4oMHhjOGM4Nzc2YywgMHgwMzA1MjZmYSksIFRPQk4oMHhm
YThlNmY3NiwgMHhhMGRhOTE0MCl9LAorICAgICAgICAgIHtUT0JOKDB4NzdlYTlkMzQsIDB4NTkx
ZWU0ZjApLCBUT0JOKDB4NWY0NmUzMzcsIDB4NDAyNzQxNjYpLAorICAgICAgICAgICBUT0JOKDB4
MWJkZjk4YmIsIDB4ZWE2NzE0NTcpLCBUT0JOKDB4ZDdjMDhiNDYsIDB4ODYyYTFmZTIpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg0NmNjMzAzYywgMHgxYzA4YWQ2MyksIFRPQk4oMHg5OTU0MzQ0MCwg
MHg0Yzg0NWU3YiksCisgICAgICAgICAgIFRPQk4oMHgxYjhmYmRiNSwgMHg0OGYzNmJmNyksIFRP
Qk4oMHg1YjgyYzM5MiwgMHg4YzgyNzNhNyl9LAorICAgICAgICAgIHtUT0JOKDB4MDhmNzEyYzQs
IDB4OTI4NDM1ZDUpLCBUT0JOKDB4MDcxY2YwZjEsIDB4NzkzMzAzODApLAorICAgICAgICAgICBU
T0JOKDB4Yzc0YzJkMjQsIDB4YThkYTA1NGEpLCBUT0JOKDB4Y2IwZTcyMDEsIDB4NDNjNDZiNWMp
fX0sCisgICAgICAgICB7e1RPQk4oMHgwYWQ3MzM3YSwgMHhjMGI3ZWZmMyksIFRPQk4oMHg4NTUy
MjI1ZSwgMHhjNWU0OGIzYyksCisgICAgICAgICAgIFRPQk4oMHhlNmY3OGIwYywgMHg3M2YxM2E1
ZiksIFRPQk4oMHg1ZTcwMDYyZSwgMHg4MjM0OWNiZSl9LAorICAgICAgICAgIHtUT0JOKDB4NmI4
ZDUwNDgsIDB4ZTcwNzM5NjkpLCBUT0JOKDB4MzkyZDJhMjksIDB4YzMzY2IzZDIpLAorICAgICAg
ICAgICBUT0JOKDB4ZWU0ZjcyN2MsIDB4NGVjYWEyMGYpLCBUT0JOKDB4YTA2OGM5OWUsIDB4MmNj
ZGU3MDcpfX0sCisgICAgICAgICB7e1RPQk4oMHhmY2Q1NjUxZiwgMHhiODdhMjkxMyksIFRPQk4o
MHhlYTNlM2MxNSwgMHgzY2MyNTJmMCksCisgICAgICAgICAgIFRPQk4oMHg3NzdkOTJkZiwgMHgz
YjZjZDNlNCksIFRPQk4oMHg3YTQxNDE0MywgMHhjNWE3MzJlNyl9LAorICAgICAgICAgIHtUT0JO
KDB4YTg5NTk1MWEsIDB4YTcxZmY0OTMpLCBUT0JOKDB4ZmU5ODBjOTIsIDB4YmJkMzdjZjYpLAor
ICAgICAgICAgICBUT0JOKDB4NDViZDVlNjQsIDB4ZGVjZmVlZmYpLCBUT0JOKDB4OTEwZGMyYTks
IDB4YTQ0YzQzZTkpfX0sCisgICAgICAgICB7e1RPQk4oMHhjYjQwM2YyNiwgMHhjY2E5ZjU0ZCks
IFRPQk4oMHg5MjhiYmRmYiwgMHg5MzAzZjZkYiksCisgICAgICAgICAgIFRPQk4oMHgzYzM3OTUx
ZSwgMHhhOWVlZTY3YyksIFRPQk4oMHgzYmQ2MWE1MiwgMHhmNzk5NjFjMyl9LAorICAgICAgICAg
IHtUT0JOKDB4MDlhMjM4ZTYsIDB4Mzk1YzlhNzkpLCBUT0JOKDB4Njk0MGNhMmQsIDB4NjFlYjM1
MmQpLAorICAgICAgICAgICBUT0JOKDB4N2QxZTVjNWUsIDB4YzE4NzU2MzEpLCBUT0JOKDB4MWUx
OTc0MmMsIDB4MWUxYjIwZDEpfX0sCisgICAgICAgICB7e1RPQk4oMHg0NjMzZDkwOCwgMHgyM2Zj
MmU2ZSksIFRPQk4oMHhhNzZlMjlhOSwgMHgwODk1OTE0OSksCisgICAgICAgICAgIFRPQk4oMHg2
MTA2OWQ5YywgMHg4NGVkN2RhNSksIFRPQk4oMHgwYmFhMTFjZiwgMHg1ZGJjYWQ1MSl9LAorICAg
ICAgICAgIHtUT0JOKDB4ZDAxZWVjNjQsIDB4OTYxODQ5ZGEpLCBUT0JOKDB4OTNiNzVmMWYsIDB4
YWYzZDhjMjgpLAorICAgICAgICAgICBUT0JOKDB4NTdiYzRmOWYsIDB4MWNhMmVlNDQpLCBUT0JO
KDB4NWEyNjMyMmQsIDB4MDBlMDA1NTgpfX0sCisgICAgICAgICB7e1RPQk4oMHgxODg4ZDY1OCwg
MHg2MWEwMjNlZiksIFRPQk4oMHgxZDcyYWFiNCwgMHhiOWU1MjQ2ZSksCisgICAgICAgICAgIFRP
Qk4oMHhhOWEyNjM0OCwgMHhlNTU2M2VjMCksIFRPQk4oMHhhMDk3MTk2MywgMHhjMzQzOWE0Myl9
LAorICAgICAgICAgIHtUT0JOKDB4NTY3ZGQ1NGIsIDB4YWRiOWI1YjcpLCBUT0JOKDB4NzNmYWMx
YTEsIDB4YzQ1YTUyNGIpLAorICAgICAgICAgICBUT0JOKDB4OGZlOTdlZjcsIDB4ZmUzOGU2MDgp
LCBUT0JOKDB4NjA4NzQ4ZDIsIDB4M2YzODRmNDgpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMDU3
MTc5NCwgMHhjNDg2MDk0ZiksIFRPQk4oMHg4NjkyNTRhMywgMHg4YmYzYThkNiksCisgICAgICAg
ICAgIFRPQk4oMHgxNDhhOGRkMSwgMHgzMTBiMGUyNSksIFRPQk4oMHg5OWFiOWYzZiwgMHg5YWEz
ZjdkOCl9LAorICAgICAgICAgIHtUT0JOKDB4MDkyN2M2OGEsIDB4NjcwNmMwMmUpLCBUT0JOKDB4
MjJiNWU3NmMsIDB4Njk3OTBlNmMpLAorICAgICAgICAgICBUT0JOKDB4NmMzMjUyNjAsIDB4NmM3
MTM3NmMpLCBUT0JOKDB4NTNhNTc2OTAsIDB4MDllZjY2NTcpfX0sCisgICAgICAgICB7e1RPQk4o
MHg4ZDYzZjg1MiwgMHhlZGZmY2YzYSksIFRPQk4oMHhiNGQyZWQwNCwgMHgzYzBhNmY1NSksCisg
ICAgICAgICAgIFRPQk4oMHhkYjNhYThkZSwgMHgxMjUxOWI5ZSksIFRPQk4oMHg1ZDM4ZTljNCwg
MHgxZTBhNTY5YSl9LAorICAgICAgICAgIHtUT0JOKDB4ODcxNTI4YmYsIDB4MzAzNzQ3ZTIpLCBU
T0JOKDB4YTIwOGU3N2MsIDB4ZjViNWMxOGQpLAorICAgICAgICAgICBUT0JOKDB4OWQxMjljODgs
IDB4Y2E2YmY5MjMpLCBUT0JOKDB4YmNiZjE5N2YsIDB4YmYwMjgzOWYpfX0sCisgICAgICAgICB7
e1RPQk4oMHg5YjliZjAzMCwgMHgyNzMyMzE5NCksIFRPQk4oMHgzYjA1NWE4YiwgMHgzMzljYTU5
ZCksCisgICAgICAgICAgIFRPQk4oMHhiNDZiMjMxMiwgMHgwZjY2OTUyMCksIFRPQk4oMHgxOTc4
OWYxZiwgMHg0OTdlNWYyNCl9LAorICAgICAgICAgIHtUT0JOKDB4OWM0OTk0NjgsIDB4YWFmMDE4
MDEpLCBUT0JOKDB4NzJlZTExOTAsIDB4OGI2OWQ1OWMpLAorICAgICAgICAgICBUT0JOKDB4OGJk
Mzk1OTUsIDB4YWNmNGMwNzkpLCBUT0JOKDB4M2VlMTFlY2UsIDB4OGUwY2QwNDgpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhlYmRlODZlYywgMHgxZWQ2NmYxOCksIFRPQk4oMHgyMjVkOTA2YiwgMHhk
NjFmY2U0MyksCisgICAgICAgICAgIFRPQk4oMHg1Y2FiMDdkNiwgMHhlOGJlZDc0ZCksIFRPQk4o
MHgxNmU0NjE3ZiwgMHgyNzg1NWFiNyl9LAorICAgICAgICAgIHtUT0JOKDB4NjU2OGFhZGQsIDB4
YjJmYmMzZGQpLCBUT0JOKDB4ZWRiNTQ4NGYsIDB4OGFlZGRmNWIpLAorICAgICAgICAgICBUT0JO
KDB4ODc4ZjIwZTgsIDB4NmRjZjJmYWQpLCBUT0JOKDB4MzUxNjQ5N2MsIDB4NjE1ZjU2OTkpfX19
LAorICAgICAgICB7e3tUT0JOKDB4ZWYwYTNmZWMsIDB4ZmExODFlNjkpLCBUT0JOKDB4OWVhMDJm
ODEsIDB4MzBkNjlhOTgpLAorICAgICAgICAgICBUT0JOKDB4YjJlOWNmOGUsIDB4NjZlYWI5NWQp
LCBUT0JOKDB4NTIwZjJiZWIsIDB4MjQ3MjAwMjEpfSwKKyAgICAgICAgICB7VE9CTigweDYyMWM1
NDBhLCAweDFkZjg0MzYxKSwgVE9CTigweDEyMDM3NzIxLCAweDcxZmE2ZDVkKSwKKyAgICAgICAg
ICAgVE9CTigweDZlM2M3YjUxLCAweDBmZjVmNmZmKSwgVE9CTigweDgxN2EwNjliLCAweGFiYjJi
ZWYzKX19LAorICAgICAgICAge3tUT0JOKDB4ODM1NzJmYjYsIDB4YjI5NGNkYTYpLCBUT0JOKDB4
NmNlOWJmNzUsIDB4YjkwMzlmMzQpLAorICAgICAgICAgICBUT0JOKDB4MjBlMDEyZjAsIDB4MDk1
Y2JiMjEpLCBUT0JOKDB4YTBhZWNjMWIsIDB4ZDA2M2YwZGEpfSwKKyAgICAgICAgICB7VE9CTigw
eDU3YzIxYzNhLCAweGYwMjkwOWU1KSwgVE9CTigweGM3ZDU5ZWNmLCAweDQ4Y2U5Y2RjKSwKKyAg
ICAgICAgICAgVE9CTigweDI3MzJiODQ0LCAweDhhZTMzNmY4KSwgVE9CTigweDA1NmUzNzIzLCAw
eDNmNGY4NWY0KX19LAorICAgICAgICAge3tUT0JOKDB4OGExMGI1MzEsIDB4ODllODAwY2EpLCBU
T0JOKDB4NTBmZTBjMTcsIDB4MTQ1MjA4ZmQpLAorICAgICAgICAgICBUT0JOKDB4OWU0M2MwZDMs
IDB4YjcxNGJhMzcpLCBUT0JOKDB4NDI3ZDIwMGUsIDB4MzQxODlhY2MpfSwKKyAgICAgICAgICB7
VE9CTigweDA1ZGVlMjRmLCAweGU2MTZlMmMwKSwgVE9CTigweDljMjVmNGM4LCAweGVlMTg1NGMx
KSwKKyAgICAgICAgICAgVE9CTigweDRkMzIyMmE1LCAweDhmMzQyYTczKSwgVE9CTigweDA4MDc4
MDRmLCAweGEwMjdjOTUyKX19LAorICAgICAgICAge3tUT0JOKDB4YzIyMjY1M2EsIDB4NGYwZDU2
ZjMpLCBUT0JOKDB4OTYxZTQwNDcsIDB4Y2EyOGI4MDUpLAorICAgICAgICAgICBUT0JOKDB4MmMw
M2Y4YjAsIDB4NGE3MzQzNGIpLCBUT0JOKDB4NGM5NjY3ODcsIDB4YWI3MTJhMTkpfSwKKyAgICAg
ICAgICB7VE9CTigweGNjMTk2YzQyLCAweDg2NGZlZTQyKSwgVE9CTigweGMxYmU5M2RhLCAweDVi
MGVjZTVjKSwKKyAgICAgICAgICAgVE9CTigweGE4N2Q5ZjIyLCAweGMxMzFjMTU5KSwgVE9CTigw
eDJiYjZkNTkzLCAweGRjZTQ1NjU1KX19LAorICAgICAgICAge3tUT0JOKDB4MjJjNDllYzksIDB4
YjgwOWI3Y2UpLCBUT0JOKDB4OGE0MTQ4NmIsIDB4ZTJjNzJjMmMpLAorICAgICAgICAgICBUT0JO
KDB4ODEzYjk0MjAsIDB4ZmVhMGJmMzYpLCBUT0JOKDB4YjNkMzZlZTksIDB4YTY2ZGFjNjkpfSwK
KyAgICAgICAgICB7VE9CTigweDZmZGRjMDhhLCAweDMyOGNjOTg3KSwgVE9CTigweDBhM2JjZDJj
LCAweDNhMzI2NDYxKSwKKyAgICAgICAgICAgVE9CTigweDcxMDNjNDlkLCAweGQ4MTBkYmJhKSwg
VE9CTigweGY5ZDgxYTI4LCAweDRiNzhhNGM0KX19LAorICAgICAgICAge3tUT0JOKDB4M2RlODY1
YWQsIDB4ZTRkNTU5NDEpLCBUT0JOKDB4ZGVkYWZhNWUsIDB4MzAzODQwODcpLAorICAgICAgICAg
ICBUT0JOKDB4NmY0MTRhYmIsIDB4NGVmMThiOWIpLCBUT0JOKDB4OWVlOWVhNDIsIDB4ZmFlZTUy
NjgpfSwKKyAgICAgICAgICB7VE9CTigweDI2MGZhYTE2LCAweDM3YTU1YTRhKSwgVE9CTigweGVi
MTlhNTE0LCAweDAxNWY5M2I5KSwKKyAgICAgICAgICAgVE9CTigweDUxZDdlYmQyLCAweDllOWMz
NTk4KSwgVE9CTigweDUyM2ZjNTZkLCAweDE5MzIxNzhlKX19LAorICAgICAgICAge3tUT0JOKDB4
NTAxZDA3MGMsIDB4Yjk4ZmU2ODQpLCBUT0JOKDB4ZDYwZmJlOWEsIDB4MTI0YTE0NTgpLAorICAg
ICAgICAgICBUT0JOKDB4YTQ1NzYxYzgsIDB4OTJiYzZiM2YpLCBUT0JOKDB4ZjUzODQ4NTgsIDB4
ZmU2ZjI3Y2IpfSwKKyAgICAgICAgICB7VE9CTigweDRiMDI3MWY3LCAweGI1OWU3NjNiKSwgVE9C
TigweDNkNDYwNmE5LCAweDViNWE4ZTVlKSwKKyAgICAgICAgICAgVE9CTigweDFlZGE1ZDliLCAw
eDA1YTQ4MjkyKSwgVE9CTigweGRhNzczMWQwLCAweGU2ZmVjNDQ2KX19LAorICAgICAgICAge3tU
T0JOKDB4YTNlMzM2OTMsIDB4OTBkNDU4NzEpLCBUT0JOKDB4ZTk3NjQwNDAsIDB4MDYxNjZkOGQp
LAorICAgICAgICAgICBUT0JOKDB4YjVjMzM2ODIsIDB4ODlhOTA0MDMpLCBUT0JOKDB4NGJkMTc5
ODMsIDB4NzJmMWQ2MzcpfSwKKyAgICAgICAgICB7VE9CTigweGE2MTY2NzllLCAweGQ1ZDJjNTNh
KSwgVE9CTigweDVlYzRiY2Q4LCAweGZkY2YzYjg3KSwKKyAgICAgICAgICAgVE9CTigweGFlNmQ3
NjEzLCAweGI2NmE2OTRlKSwgVE9CTigweDc0NjBmYzc2LCAweGUzZmMyN2U1KX19LAorICAgICAg
ICAge3tUT0JOKDB4NzA0NjliODIsIDB4OTVjYWFiZWUpLCBUT0JOKDB4ZGUwMjRjYTUsIDB4ODg5
NTAxZTMpLAorICAgICAgICAgICBUT0JOKDB4NmJkYWRjMDYsIDB4MDc2ZWQyNjUpLCBUT0JOKDB4
MGNiMTIzNmIsIDB4NWEwZWY4YjIpfSwKKyAgICAgICAgICB7VE9CTigweDQwNjVkZGJmLCAweDA5
NzJlYmY5KSwgVE9CTigweGYxZGQzODc1LCAweDIyYWNhNDMyKSwKKyAgICAgICAgICAgVE9CTigw
eGE4OGI5N2NmLCAweDc0NGFmZjc2KSwgVE9CTigweGQxMzU5YWZkLCAweGZlOGUzZDI0KX19LAor
ICAgICAgICAge3tUT0JOKDB4NTJhM2JhMmIsIDB4OTE1MDJjZjMpLCBUT0JOKDB4MmMzODMyYTgs
IDB4MDg0ZGI3NWQpLAorICAgICAgICAgICBUT0JOKDB4MDRhMTJkZGQsIDB4ZGUzMGIxYzkpLCBU
T0JOKDB4NzgwMmVhYmMsIDB4ZTMxZmQ2MGMpfSwKKyAgICAgICAgICB7VE9CTigweDMzNzA3MzI3
LCAweGEzN2ZkZGFiKSwgVE9CTigweDY1ZDZmMmFiLCAweGZhYWZhOTczKSwKKyAgICAgICAgICAg
VE9CTigweDM1MjVjNWI4LCAweDExZTZmOTFhKSwgVE9CTigweDc2YWViMGM5LCAweDVmNDY1MzBi
KX19LAorICAgICAgICAge3tUT0JOKDB4ZTg4MTVmZjYsIDB4MmY5M2E2NzUpLCBUT0JOKDB4YTZl
Yzk2ODQsIDB4MDVmNDg2NzkpLAorICAgICAgICAgICBUT0JOKDB4NmRjYmI1NTYsIDB4MzU4YWU4
ODQpLCBUT0JOKDB4MGFmNjE0NzIsIDB4ZTE5ZTM4NzMpfSwKKyAgICAgICAgICB7VE9CTigweDcy
MzM0MzcyLCAweGE1ZjY5NmJlKSwgVE9CTigweGM2NWU1N2VhLCAweDZmMjJmYjcwKSwKKyAgICAg
ICAgICAgVE9CTigweDI2OGRhMzBjLCAweDk0NmNlYTkwKSwgVE9CTigweDEzNmE4YTg3LCAweDY1
NjgxYjJhKX19LAorICAgICAgICAge3tUT0JOKDB4YWQ1ZTgxZGMsIDB4MGY5ZjQ0ZDQpLCBUT0JO
KDB4ZjA5YTY5NjAsIDB4MmM0NjU4NWEpLAorICAgICAgICAgICBUT0JOKDB4ZDE2NDkxNjQsIDB4
YzQ0N2QxYjEpLCBUT0JOKDB4M2I0YjM2YzgsIDB4ODc5ZGM4YjEpfSwKKyAgICAgICAgICB7VE9C
TigweDIwZDQxNzdiLCAweDNiNmIyMzRjKSwgVE9CTigweDA5NmEyNTA1LCAweDE3MzBkOWQwKSwK
KyAgICAgICAgICAgVE9CTigweDA2MTFiOWI4LCAweGVmODA1MzFkKSwgVE9CTigweGJhOTA0YjNi
LCAweDY0YmI0OTVkKX19LAorICAgICAgICAge3tUT0JOKDB4MTE5MmQ5ZDQsIDB4OTNhMzE0N2Ep
LCBUT0JOKDB4OWYzMGE1ZGMsIDB4OWE1NjU1NDUpLAorICAgICAgICAgICBUT0JOKDB4OTBiMWY5
Y2IsIDB4NmVmMDcyMTIpLCBUT0JOKDB4Mjk5NTg1NDYsIDB4MGQ4N2ZjMTMpfSwKKyAgICAgICAg
ICB7VE9CTigweGQzMzIzZWZmLCAweGMxN2RiOWJhKSwgVE9CTigweGNiMTg1NDhjLCAweGNiMTY0
NGE4KSwKKyAgICAgICAgICAgVE9CTigweDE4YTMwNmQ0LCAweDRmNDlmZmJjKSwgVE9CTigweDI4
ZDY1OGYxLCAweDRjMmU4Njg0KX19LAorICAgICAgICAge3tUT0JOKDB4NDRiYTYwY2QsIDB4YTk5
ZjhjNzEpLCBUT0JOKDB4NjdiN2FiZGIsIDB4NGJmNzQyZmYpLAorICAgICAgICAgICBUT0JOKDB4
NjYzMTBmOWMsIDB4OTE0YjNmOTkpLCBUT0JOKDB4YWU0MzBhMzIsIDB4ZjQxMmMxNjEpfSwKKyAg
ICAgICAgICB7VE9CTigweDFlNjc3NmQzLCAweDg4YWNlNTJmKSwgVE9CTigweDRiYzBmYTI0LCAw
eDUyZDcwNjdkKSwKKyAgICAgICAgICAgVE9CTigweDAzYzI4NmFhLCAweDhmMDdjZDFiKSwgVE9C
TigweDRjYjhmMzhjLCAweGE5ODViMmMxKX19LAorICAgICAgICAge3tUT0JOKDB4ODNjY2JlODAs
IDB4OGMzYmZmMzYpLCBUT0JOKDB4MDA1YTBiZDIsIDB4NTI2M2U1NzUpLAorICAgICAgICAgICBU
T0JOKDB4NDYwZDdkZGEsIDB4MjU5YmRjZDEpLCBUT0JOKDB4NGExYzU2NDIsIDB4ZmE1Y2FiNmIp
fSwKKyAgICAgICAgICB7VE9CTigweDJiN2JkYmI5LCAweDlmZTRmYzg4KSwgVE9CTigweDA5NDE4
ZTI4LCAweGNjOTdiYmI1KSwKKyAgICAgICAgICAgVE9CTigweGQ4Mjc0ZmI0LCAweGExMjMyMWFl
KSwgVE9CTigweGIxMzcwMDdkLCAweDVjODdiNjRlKX19LAorICAgICAgICAge3tUT0JOKDB4ODA1
MzFmZTEsIDB4YzYzYzQ5NjIpLCBUT0JOKDB4NTA1NDFlODksIDB4OTgxZmRiMjUpLAorICAgICAg
ICAgICBUT0JOKDB4ZGMxMjkxYTEsIDB4ZmQ0YzJiNmIpLCBUT0JOKDB4YzA2OTNhMTcsIDB4YTZk
ZjRmY2EpfSwKKyAgICAgICAgICB7VE9CTigweGIyYzQ2MDRlLCAweDAxMTdmMjAzKSwgVE9CTigw
eDI0NWYxOTYzLCAweDBhOTliOGQwKSwKKyAgICAgICAgICAgVE9CTigweGFlZGMyMGFhLCAweGM2
MjEyYzQ0KSwgVE9CTigweGIxZWQ0ZTU2LCAweDUyMGY1MmE4KX19LAorICAgICAgICAge3tUT0JO
KDB4ZmU0OGY1NzUsIDB4Zjg1NDdiZTMpLCBUT0JOKDB4MGE3MDMzY2QsIDB4YTllNDVmOTgpLAor
ICAgICAgICAgICBUT0JOKDB4NGI0NWQzYTksIDB4MThjNTAxMDApLCBUT0JOKDB4YjJhNmNkNmEs
IDB4YTYxZDQxZGEpfSwKKyAgICAgICAgICB7VE9CTigweDYwYmJiNGY1LCAweDU3OTMzYzZiKSwg
VE9CTigweGE3NTM4ZWJkLCAweDJiMGQ3ZmZjKSwKKyAgICAgICAgICAgVE9CTigweDllYTNhYjhk
LCAweDhjZDYyNmI2KSwgVE9CTigweDgyNzNhNDg0LCAweDM2MDE2MjVhKX19LAorICAgICAgICAg
e3tUT0JOKDB4ODg4NTk4NDUsIDB4MDE2OGU1MDgpLCBUT0JOKDB4OGNiYzliYjIsIDB4OTlhOTRh
YmQpLAorICAgICAgICAgICBUT0JOKDB4NzEzYWM3OTIsIDB4ZmFiMGE2NzEpLCBUT0JOKDB4YTM5
OTViMTksIDB4NmM5ZWJmZmMpfSwKKyAgICAgICAgICB7VE9CTigweGU3MTE2NjhlLCAweDEyMzll
MTUyKSwgVE9CTigweDU2ODkyNTU4LCAweGJiYjhkZmY0KSwKKyAgICAgICAgICAgVE9CTigweDhi
ZmM3ZGFiLCAweGRiZjE3OTYzKSwgVE9CTigweDViNTlmZTVhLCAweGIzZGUxMjUzKX19LAorICAg
ICAgICAge3tUT0JOKDB4N2UzMzIwZWIsIDB4MzRhOWY3YWUpLCBUT0JOKDB4ZTVlOGNmNzIsIDB4
ZDc1MWVmZTQpLAorICAgICAgICAgICBUT0JOKDB4N2VhMDAzYmMsIDB4ZDliZTJmMzcpLCBUT0JO
KDB4YzBmNTUxYTAsIDB4YjZjMDhlZjcpfSwKKyAgICAgICAgICB7VE9CTigweDU2NjA2MjY4LCAw
eDAzOGY2NzI1KSwgVE9CTigweDFkZDM4ZTM1LCAweDZkOTJkM2I2KSwKKyAgICAgICAgICAgVE9C
TigweDA3ZGZjZTdjLCAweGMzY2JkNjg2KSwgVE9CTigweDRlNTQ5ZTA0LCAweDY1MWM1ZGE4KX19
LAorICAgICAgICAge3tUT0JOKDB4NDA1OGY5M2IsIDB4MDhiMTkzNDApLCBUT0JOKDB4YzJmYWU2
ZjQsIDB4Y2FjNmQ4OWQpLAorICAgICAgICAgICBUT0JOKDB4NGJhZDhhOGMsIDB4OGYxNTljYzcp
LCBUT0JOKDB4MGRkYmE0YjMsIDB4Y2IwYjYwMWMpfSwKKyAgICAgICAgICB7VE9CTigweGRhNGZj
N2I1LCAweDFkZDk1ZjhjKSwgVE9CTigweDFkMTYzY2Q3LCAweGNlYTVjMjU1KSwKKyAgICAgICAg
ICAgVE9CTigweDMwNzA3ZDA2LCAweDI3NGE4YzRjKSwgVE9CTigweDc5ZDllMDA4LCAweDI4MDJl
OWNlKX19LAorICAgICAgICAge3tUT0JOKDB4MDJhMjllYmYsIDB4ZTZkZGQ1MDUpLCBUT0JOKDB4
MzcwNjRlNzQsIDB4YjUwYmVkMWEpLAorICAgICAgICAgICBUT0JOKDB4M2Y2YmFlNjUsIDB4YTcz
MjdkNTcpLCBUT0JOKDB4Mzg0NmY1ZjEsIDB4ZjgzOTIwYmMpfSwKKyAgICAgICAgICB7VE9CTigw
eDg3YzM3NDkxLCAweDYwZGYxYjliKSwgVE9CTigweDRjZmIyODk1LCAweDJkMWRhMjlmKSwKKyAg
ICAgICAgICAgVE9CTigweDEwYTQ3OGNhLCAweDRlZDE3NDNjKSwgVE9CTigweDM5MGM2MDMwLCAw
eDNlZGQ0N2M2KX19LAorICAgICAgICAge3tUT0JOKDB4OGYzZTUzMTIsIDB4OGMwYTc4ZGUpLCBU
T0JOKDB4Y2NkMDJiZGEsIDB4MWU4NWRmNzApLAorICAgICAgICAgICBUT0JOKDB4ZDZjNzVjMDMs
IDB4YTYxYjY1ODIpLCBUT0JOKDB4MDc2MjkyMWMsIDB4ZmMwZWViZDEpfSwKKyAgICAgICAgICB7
VE9CTigweGQzNGQwODIzLCAweGQ4NTAxMGMwKSwgVE9CTigweGQ3M2FhYWNiLCAweDAwNDRjZjFm
KSwKKyAgICAgICAgICAgVE9CTigweGZiNDE1OWJiLCAweGEzYjVlNzhhKSwgVE9CTigweDIyODdj
N2Y3LCAweGU1ODI2ZjNmKX19LAorICAgICAgICAge3tUT0JOKDB4NGFlYWY3NDIsIDB4NTgwYjFh
MDEpLCBUT0JOKDB4ZjA4MDQxNWQsIDB4NjA0MjNiNzkpLAorICAgICAgICAgICBUT0JOKDB4ZTEy
NjIyY2QsIDB4YTdkZWExNDQpLCBUT0JOKDB4NDllYTQ5OTYsIDB4NTlkNjI0NzIpfSwKKyAgICAg
ICAgICB7VE9CTigweGI0Mjk5MWVmLCAweDU3MWYzOTEzKSwgVE9CTigweDA2MTBmMjE0LCAweGY1
YjI1YThhKSwKKyAgICAgICAgICAgVE9CTigweDQ3YWRjNTg1LCAweDMwYjc5ZThmKSwgVE9CTigw
eGY5MGUzZGY2LCAweDA3YTA2NWEyKX19LAorICAgICAgICAge3tUT0JOKDB4NWQwYTVkZWIsIDB4
NDNlMmUwMzQpLCBUT0JOKDB4NTNmYjVhMzQsIDB4NDQ0MDI0YWEpLAorICAgICAgICAgICBUT0JO
KDB4YTg2MjhjNjgsIDB4NmIwYzlmN2YpLCBUT0JOKDB4OWM2OWMyOWMsIDB4YWM1NjM2NTYpfSwK
KyAgICAgICAgICB7VE9CTigweDVhMjMxZmViLCAweGJhY2U0N2I2KSwgVE9CTigweGJkY2UwMjg5
LCAweDllYTVhMmVjKSwKKyAgICAgICAgICAgVE9CTigweDA1ZGExZmFjLCAweDk0NjM4NTNlKSwg
VE9CTigweDk2ODEyYzUyLCAweDUwOWU3OGFhKX19LAorICAgICAgICAge3tUT0JOKDB4ZDNmYjU3
NzEsIDB4NTcxNTE2OTIpLCBUT0JOKDB4ZWIyNzIxZjgsIDB4ZDk4ZTFjNDQpLAorICAgICAgICAg
ICBUT0JOKDB4YzA1MDYwODcsIDB4MzIzOTliZTEpLCBUT0JOKDB4ZGE1YTU1MTEsIDB4ZDk3OWQ4
YjgpfSwKKyAgICAgICAgICB7VE9CTigweDczN2VkNTVkLCAweGM2ZjU2NzgwKSwgVE9CTigweGUy
MGQzMDA0LCAweDBkYzdhN2Y0KSwKKyAgICAgICAgICAgVE9CTigweDAyY2U3MzAxLCAweGY1OTQx
YTAzKSwgVE9CTigweDkxZWY1MjE1LCAweGVkMzBmODNhKX19LAorICAgICAgICAge3tUT0JOKDB4
Mjg3MjdmYzEsIDB4NDA5MmQ4NWYpLCBUT0JOKDB4NzJkMjIzYzYsIDB4NWM0OWU0MWEpLAorICAg
ICAgICAgICBUT0JOKDB4YTdjZjMwYTIsIDB4YmE2YTRkODEpLCBUT0JOKDB4N2MwODYyMDksIDB4
YjAzMGQ4N2QpfSwKKyAgICAgICAgICB7VE9CTigweDA0ODQ0YzdkLCAweGZjNTg4YjA5KSwgVE9C
TigweDcyOGNkNDk5LCAweDU4NzRiYmIwKSwKKyAgICAgICAgICAgVE9CTigweGNjMTI4MWVlLCAw
eGU4NGMwNDk1KSwgVE9CTigweDA3NjliNWJhLCAweGVjMzE5NThmKX19LAorICAgICAgICAge3tU
T0JOKDB4NjY1YzIyOGIsIDB4Zjk5YzI0NzEpLCBUT0JOKDB4ZjJkOGExMWIsIDB4MTkxZWIxMTAp
LAorICAgICAgICAgICBUT0JOKDB4NDU5NGY0OTQsIDB4ZDM2ZDcwMjQpLCBUT0JOKDB4NDgyZGVk
OGIsIDB4Y2RjYjI1YTEpfSwKKyAgICAgICAgICB7VE9CTigweGM5NThhOWQ4LCAweGRhZGQ0ODg1
KSwgVE9CTigweDcwMDQ0NzdlLCAweGYxZDJiNTQ3KSwKKyAgICAgICAgICAgVE9CTigweDBhNDVm
NmVmLCAweDJhMGFmNTUwKSwgVE9CTigweDRmYzczOWQ2LCAweDJmOGQ2MzUxKX19LAorICAgICAg
ICAge3tUT0JOKDB4NzVjZGFmMjcsIDB4Nzg2ZjA4YTkpLCBUT0JOKDB4ODcwMGJiMjYsIDB4NDJj
MjczN2YpLAorICAgICAgICAgICBUT0JOKDB4ODU1YTcxNDEsIDB4MWM0ZTI2NzApLCBUT0JOKDB4
ODEwMTg4YzEsIDB4MTUwNzZmZWYpfSwKKyAgICAgICAgICB7VE9CTigweGMyNTFkMGM5LCAweGFi
Y2QzMjk3KSwgVE9CTigweGFlNGM4OTY3LCAweGY0ODEwOGViKSwKKyAgICAgICAgICAgVE9CTigw
eGJkMTQ2ZGU3LCAweDE4Y2VlZDMwKSwgVE9CTigweGY5ZDRmMDdhLCAweGM5ODZiY2VkKX19LAor
ICAgICAgICAge3tUT0JOKDB4NWFkOThlZDUsIDB4ODNmYTFlMDgpLCBUT0JOKDB4Nzc4MGQzM2Us
IDB4YmVhYmQxZmIpLAorICAgICAgICAgICBUT0JOKDB4ZTMzMDUxM2MsIDB4OTAzYjExOTYpLCBU
T0JOKDB4YmExMWRlOWUsIDB4YTQ3YmM4YzQpfSwKKyAgICAgICAgICB7VE9CTigweDY4NDMzNGRh
LCAweDAyYzJkMDY0KSwgVE9CTigweDdlY2YzNjBkLCAweGE0OGRlMjNiKSwKKyAgICAgICAgICAg
VE9CTigweDU3YTFiNDc0LCAweDBhOTA4OWQ4KSwgVE9CTigweGYyOGZhNDM5LCAweGZmMzY3MzRj
KX19LAorICAgICAgICAge3tUT0JOKDB4ZjJhNDgyY2IsIDB4ZWE0NTcwYjMpLCBUT0JOKDB4ZWU2
NWQ2OGIsIDB4YTVlYmNlZTkpLAorICAgICAgICAgICBUT0JOKDB4OTg4ZDAwMzYsIDB4Yjk2OTRj
ZDUpLCBUT0JOKDB4NTNlZGQwZTksIDB4Mzc4ODVkMzIpfSwKKyAgICAgICAgICB7VE9CTigweGUz
N2UzMzA3LCAweGJlYjliYzZkKSwgVE9CTigweGU5YWJiOTA3LCAweDlmNWM2NzY4KSwKKyAgICAg
ICAgICAgVE9CTigweDQzOTZjY2Q1LCAweDUxZjIxNjBmKSwgVE9CTigweDI1MDA4ODhjLCAweDQ3
MzM2ZGE2KX19LAorICAgICAgICAge3tUT0JOKDB4MzgzZjllZDksIDB4OTI2ZmNlNDMpLCBUT0JO
KDB4ODA5ZGQxYzcsIDB4MDRkYTI5MzApLAorICAgICAgICAgICBUT0JOKDB4MzBmNmY1OTYsIDB4
OGE0Y2IyMjcpLCBUT0JOKDB4MGQ3MDBjN2YsIDB4NzNhNTZiMzgpfSwKKyAgICAgICAgICB7VE9C
TigweDE4MjVlYTMzLCAweGFiNjRhMDY1KSwgVE9CTigweGFhYjliNzM1LCAweDEzMzhkZjgwKSwK
KyAgICAgICAgICAgVE9CTigweDE1MTYxMDBkLCAweDliNjNmNTdmKSwgVE9CTigweDI1NzQzOTVh
LCAweDI3YTZhNjM0KX19LAorICAgICAgICAge3tUT0JOKDB4YjU1NjBmYjYsIDB4NzAwYTFhY2Qp
LCBUT0JOKDB4ZTgyM2ZkNzMsIDB4ZmQ5OTk2ODEpLAorICAgICAgICAgICBUT0JOKDB4ZGE5MTVk
MWYsIDB4NmNiNGUxYmEpLCBUT0JOKDB4MGQwMzAxMTgsIDB4NmViZTAwYTMpfSwKKyAgICAgICAg
ICB7VE9CTigweDc0NGZiMGM5LCAweDg5ZmNhOGNkKSwgVE9CTigweDk3MGQwMWRiLCAweGY5ZGEw
ZTBiKSwKKyAgICAgICAgICAgVE9CTigweDBhZDhjNTY0LCAweDc5MzFkNzZmKSwgVE9CTigweGIx
NTczN2JmLCAweGY2NTliOTZhKX19LAorICAgICAgICAge3tUT0JOKDB4ZGM5OTMzZTgsIDB4YThi
NDg0ZTcpLCBUT0JOKDB4YjJmZGJkZjksIDB4N2EyNmRlYzcpLAorICAgICAgICAgICBUT0JOKDB4
MjM0OWU5YTQsIDB4OWYxZjAxMzYpLCBUT0JOKDB4Nzg2MDM2OGUsIDB4NzBmZGRkZGIpfSwKKyAg
ICAgICAgICB7VE9CTigweGQ5M2QyYzFjLCAweGY5YWQzZTE4KSwgVE9CTigweDZkNmM1ZjE3LCAw
eDY4OWY0ZTc5KSwKKyAgICAgICAgICAgVE9CTigweDdhNTQ0ZDkxLCAweGIyNGZmMWI2KSwgVE9C
TigweDNlMTJhNWViLCAweGZlMTZjZDhjKX19LAorICAgICAgICAge3tUT0JOKDB4NTQzNTc0ZTks
IDB4YTU2Yjg3MmYpLCBUT0JOKDB4YTFhZDU1MGMsIDB4ZmNmNjhlYTIpLAorICAgICAgICAgICBU
T0JOKDB4Njg5ZTM3ZDIsIDB4M2Y1NjBlZjcpLCBUT0JOKDB4OGM1NGI5Y2EsIDB4YzlkNDdhOGIp
fSwKKyAgICAgICAgICB7VE9CTigweDQ2ZDQwYTRhLCAweDA4OGFjMzQyKSwgVE9CTigweGVjNDUw
YzdjLCAweDE1NzZjNmQwKSwKKyAgICAgICAgICAgVE9CTigweGI1ODllMzFjLCAweDFmOTY4OWU5
KSwgVE9CTigweGRhY2YyNjAyLCAweGI4NzgxNzE4KX19LAorICAgICAgICAge3tUT0JOKDB4YTg5
MjM3YzYsIDB4YzhjYjZiNDIpLCBUT0JOKDB4MTMyNmZjOTMsIDB4Yjk2ZWYzODEpLAorICAgICAg
ICAgICBUT0JOKDB4NTVkNTZjNmQsIDB4YjVmMDc4MjUpLCBUT0JOKDB4YWNiYTJlZWEsIDB4NzQ0
OWUyMmQpfSwKKyAgICAgICAgICB7VE9CTigweDc0ZTA4ODdhLCAweDYzM2MzMDAwKSwgVE9CTigw
eGNiNmNkMTcyLCAweGQ3Y2JjZjcxKSwKKyAgICAgICAgICAgVE9CTigweDMwOWU4MWRlLCAweGMz
NmNmMWJlKSwgVE9CTigweDA3YTE4YTZkLCAweDYwYWUzOTliKX19LAorICAgICAgICAge3tUT0JO
KDB4YjM2YzI2NzksIDB4OWVkY2U1N2UpLCBUT0JOKDB4NTJiODkyZjQsIDB4ZGYwMDFkNDEpLAor
ICAgICAgICAgICBUT0JOKDB4ZDg4NGFlNWQsIDB4MTZhMWYyYzYpLCBUT0JOKDB4OWIzMjk0MjQs
IDB4ZWZjYzM3MGEpfSwKKyAgICAgICAgICB7VE9CTigweDMxMjBkYWYyLCAweGJkMmUyMWRmKSwg
VE9CTigweDU1Mjk4ZDJkLCAweDAyNDcwYTk5KSwKKyAgICAgICAgICAgVE9CTigweDBiNzhhZjZj
LCAweGEwNWRiMzJlKSwgVE9CTigweDVjNzZhMzMxLCAweDYwMWY1NjM2KX19LAorICAgICAgICAg
e3tUT0JOKDB4YWFlODYxZmYsIDB4ZjhhNGYyOWMpLCBUT0JOKDB4NzBkYzkyNDAsIDB4ZDY4Zjhk
NDkpLAorICAgICAgICAgICBUT0JOKDB4OTYwZTY0OWYsIDB4ODFiMTMyMWMpLCBUT0JOKDB4M2Qy
YzgwMWIsIDB4ODc5MmU0Y2UpfSwKKyAgICAgICAgICB7VE9CTigweGY0NzlmNzcyLCAweDQyNTIx
ODc2KSwgVE9CTigweDBiZWQ5M2JjLCAweDQxNmM3OWIxKSwKKyAgICAgICAgICAgVE9CTigweGE2
N2ZiYzA1LCAweDI2M2U1YmM5KSwgVE9CTigweDAxZThlNjMwLCAweDUyMWRiMDQ5KX19LAorICAg
ICAgICAge3tUT0JOKDB4NzZmMjY3MzgsIDB4YzZmMzQzMWUpLCBUT0JOKDB4ZTYwOWNiMDIsIDB4
ZTMyNjc1NDEpLAorICAgICAgICAgICBUT0JOKDB4YjEwY2ZmMmQsIDB4ODE4Yzg3N2MpLCBUT0JO
KDB4MWYwZTc1Y2UsIDB4Nzg2YTEzY2IpfSwKKyAgICAgICAgICB7VE9CTigweGY0ZmRjYTY0LCAw
eDExNTg1NDRkKSwgVE9CTigweDVkNzc3ZTg5LCAweDZjYjcxZWQwKSwKKyAgICAgICAgICAgVE9C
TigweDNjMjMzNzM3LCAweGE5YWE0NzU1KSwgVE9CTigweDdiNDUzMTkyLCAweGU1MjdhYjQwKX19
LAorICAgICAgICAge3tUT0JOKDB4ZGI1OWY2ODgsIDB4MzlmMDVmZmUpLCBUT0JOKDB4OGY0ZjRi
ZTAsIDB4NmQ4MjU3NGUpLAorICAgICAgICAgICBUT0JOKDB4Y2NlMzQ1MGMsIDB4ZWUyOTJkMWIp
LCBUT0JOKDB4YWE0NDhhMTIsIDB4NjFjY2QwODYpfSwKKyAgICAgICAgICB7VE9CTigweGFiY2U5
MWIzLCAweGY3OTE0OTY3KSwgVE9CTigweDQ1MzdmMDliLCAweDE5MDhhNWVkKSwKKyAgICAgICAg
ICAgVE9CTigweGE4MTI0MjFlLCAweGY1MTA0MmU3KSwgVE9CTigweGZhZjVjZWJjLCAweGVjMGIz
YTM0KX19LAorICAgICAgICAge3tUT0JOKDB4NzMwZmZkODcsIDB4NGNhNmIzOWEpLCBUT0JOKDB4
NzBmYjcyZWQsIDB4MDJlZmQzNDIpLAorICAgICAgICAgICBUT0JOKDB4ZWI0NzM1ZjksIDB4ZDc1
YzhlZGIpLCBUT0JOKDB4YzExZjIxNTcsIDB4YzI3OGFhNTEpfSwKKyAgICAgICAgICB7VE9CTigw
eGM0NTlmNjM1LCAweGJmM2JmZWJmKSwgVE9CTigweDNhMWZmMGI0LCAweDZiZDk2MDFmKSwKKyAg
ICAgICAgICAgVE9CTigweGM5ZDEyODIzLCAweGM0MjBjYjczKSwgVE9CTigweDNlOWFmM2UyLCAw
eDNjMjkxNWEzKX19LAorICAgICAgICAge3tUT0JOKDB4ZTBjODJjNzIsIDB4YjQxYzM0NDApLCBU
T0JOKDB4MTc1MjM5ZTUsIDB4ZTMwMzlhNWYpLAorICAgICAgICAgICBUT0JOKDB4ZTEwODRiOGEs
IDB4NTU4Nzk1YTMpLCBUT0JOKDB4MzI4ZDBhMWQsIDB4ZDAxZTVjNjApfSwKKyAgICAgICAgICB7
VE9CTigweDBhNDk1ZjJlLCAweGQzNzg4YTA0KSwgVE9CTigweDI1ZDhmZjE2LCAweDY2YzExYTlm
KSwKKyAgICAgICAgICAgVE9CTigweGY1MTU1ZjA1LCAweDllZDY5MmQ2KSwgVE9CTigweDk1NGZh
MTA3LCAweDRmNDI1ZmU0KX19LAorICAgICAgICAge3tUT0JOKDB4ZDE2YWFiZjIsIDB4ZTk4YWFh
OTkpLCBUT0JOKDB4OTBjZDhiYTAsIDB4OTZiMGY4OGEpLAorICAgICAgICAgICBUT0JOKDB4OTU3
ZjQ3ODIsIDB4YzE1NDAyNmEpLCBUT0JOKDB4NTRlZTA3MzQsIDB4NTJhZjU2ZDIpfSwKKyAgICAg
ICAgICB7VE9CTigweGJjZjg5ZTU0LCAweDQ1YjQxNDdhKSwgVE9CTigweDNkMTAyZjIxLCAweDlh
NTI4MTZjKSwKKyAgICAgICAgICAgVE9CTigweDY4MDg1MTdlLCAweDM5YjYyZTc3KSwgVE9CTigw
eDkyZTI1NDIxLCAweDY5MTY5YWQ4KX19LAorICAgICAgICAge3tUT0JOKDB4ZDcyMWQ4NzEsIDB4
YmI2MDg1NTgpLCBUT0JOKDB4NjBlNGViYWUsIDB4ZjZkNGZmOWIpLAorICAgICAgICAgICBUT0JO
KDB4MGJhMTA4MTksIDB4NDFmMjc2M2UpLCBUT0JOKDB4Y2EyZTQ1YmUsIDB4NTFlZTMyNDcpfSwK
KyAgICAgICAgICB7VE9CTigweDY2ZDE3MmVjLCAweDJiZmQ3YTVmKSwgVE9CTigweDUyOGE4ZjJm
LCAweDc0ZDBiMTJkKSwKKyAgICAgICAgICAgVE9CTigweGUxN2YxZTM4LCAweGRhYmU3MGRjKSwg
VE9CTigweDFkNWQ3MzE2LCAweDlmOTM5ODNjKX19LAorICAgICAgICAge3tUT0JOKDB4NTFiMjE4
NGEsIDB4ZGY0MjNlMzEpLCBUT0JOKDB4Y2I0MTcyOTEsIDB4YWVkYjFhMTApLAorICAgICAgICAg
ICBUT0JOKDB4MjA1NGNhOTMsIDB4NjI1YmNhYjkpLCBUT0JOKDB4NTQzOTY4NjAsIDB4YTk4OTk4
ZjApfSwKKyAgICAgICAgICB7VE9CTigweDRlNTNmNmM0LCAweGE1NGFlNTdlKSwgVE9CTigweDBm
ZmViNTkwLCAweGVlNjQ4ZTlkKSwKKyAgICAgICAgICAgVE9CTigweGZiYmRhYWRjLCAweDZhZmFm
NmJjKSwgVE9CTigweGY4OGFlNzk2LCAweGFhM2JmYjhhKX19LAorICAgICAgICAge3tUT0JOKDB4
MjA5ZjFkNDQsIDB4ZDIzNTllZDkpLCBUT0JOKDB4YWM2OGRkMDMsIDB4ZjM1NDRjZTIpLAorICAg
ICAgICAgICBUT0JOKDB4ZjM3OGRhNDcsIDB4ZmQ1MWU1NjkpLCBUT0JOKDB4ZTFhYmQ4NjAsIDB4
MmNjODAwOTcpfSwKKyAgICAgICAgICB7VE9CTigweDIzY2ExOGQ5LCAweDM0M2I2ZTNhKSwgVE9C
TigweDQ4MDc5N2U4LCAweGI0MGExYmFlKSwKKyAgICAgICAgICAgVE9CTigweGQxZjBjNzE3LCAw
eDUzM2YzZTY3KSwgVE9CTigweDQ0ODk2OTcwLCAweDA2ZTZjZGZjKX19LAorICAgICAgICAge3tU
T0JOKDB4OGNhMjEwNTUsIDB4NTJhODJlOGQpLCBUT0JOKDB4YjJjYWY3ODUsIDB4Nzg0NjBjZGMp
LAorICAgICAgICAgICBUT0JOKDB4NGMxYjdiNjIsIDB4ZTkwMzcxNzgpLCBUT0JOKDB4ZWZjMDlk
MmMsIDB4ZGI1MTRiNTgpfSwKKyAgICAgICAgICB7VE9CTigweDVmMmRmOWVlLCAweDkxMTNiZTVj
KSwgVE9CTigweDJmYmRhNzhmLCAweGIzZjkyNzFjKSwKKyAgICAgICAgICAgVE9CTigweGUwOWE4
MWFmLCAweDhmODNmYzU0KSwgVE9CTigweDA2YjEzODY2LCAweDhhZmI1MTQxKX19LAorICAgICAg
ICAge3tUT0JOKDB4MzhmNjQ4MGYsIDB4NDNlMzg2NWQpLCBUT0JOKDB4NzJkZDc3YTgsIDB4MWRk
ZjQ3ZDkpLAorICAgICAgICAgICBUT0JOKDB4ZjJhOGU5NzEsIDB4NGMyMDVmZjcpLCBUT0JOKDB4
NDZkNDQ5ZDgsIDB4OWQwODhhZDgpfSwKKyAgICAgICAgICB7VE9CTigweDkyNjYxOWVhLCAweDE4
NWQ3MDZmKSwgVE9CTigweGU0N2UwMmViLCAweGM3ZGQ3ZjYyKSwKKyAgICAgICAgICAgVE9CTigw
eGU3ZjEyMGE3LCAweDhjYmMyMDMxKSwgVE9CTigweGMxOGJlZjAwLCAweDk5OGQ0YWM5KX19LAor
ICAgICAgICAge3tUT0JOKDB4MThmMzdhOWMsIDB4NmJkZjIyZGEpLCBUT0JOKDB4ZWZiYzQzMmYs
IDB4OTBkYzgyZGYpLAorICAgICAgICAgICBUT0JOKDB4YzUyY2VmOGUsIDB4NWQ3MDM2NTEpLCBU
T0JOKDB4ODI4ODdiYTAsIDB4ZDk5ODgxYTUpfSwKKyAgICAgICAgICB7VE9CTigweDdjZWM5ZGRh
LCAweGI5MjBlYzFkKSwgVE9CTigweGQwZDdlOGMzLCAweGVjM2U4ZDNiKSwKKyAgICAgICAgICAg
VE9CTigweDQ0NWJjMzk1LCAweDRjYTg4NzQ3KSwgVE9CTigweGVkZWFhMmUwLCAweDlmZDUzNTM1
KX19LAorICAgICAgICAge3tUT0JOKDB4NDYxYjFkOTMsIDB4NmNjODc0NzUpLCBUT0JOKDB4ZDky
YTUyZTIsIDB4NmQyMzgzYmQpLAorICAgICAgICAgICBUT0JOKDB4ZmFiY2NiNTksIDB4ZDc5MDM1
NDYpLCBUT0JOKDB4NjExMWE3NjEsIDB4M2QxNGIxMTIpfSwKKyAgICAgICAgICB7VE9CTigweDBh
ZTU4NGZlLCAweGIzZDVmNjEyKSwgVE9CTigweDVlYTY5YjhkLCAweDYwZTgyOGVjKSwKKyAgICAg
ICAgICAgVE9CTigweDZjMDc4OTg1LCAweDU0MDg3MDMwKSwgVE9CTigweDY0OWNhYjA0LCAweGFj
NDgyMWZlKX19LAorICAgICAgICAge3tUT0JOKDB4MjVlY2VkY2YsIDB4OGJkY2UyMTQpLCBUT0JO
KDB4YjU2MjJmNzIsIDB4ODZhZjczNjEpLAorICAgICAgICAgICBUT0JOKDB4MGUxMjI3YWEsIDB4
NzAzOGI5ZTIpLCBUT0JOKDB4ZDBlZmIyNzMsIDB4YWMyMGZhNzcpfSwKKyAgICAgICAgICB7VE9C
TigweDgxN2ZmODhiLCAweDc5ZGY5NzViKSwgVE9CTigweDg1NmJmMjg2LCAweDE5OTk1MDNlKSwK
KyAgICAgICAgICAgVE9CTigweGI0ZDUzNTFmLCAweDUwMzhlYzQ2KSwgVE9CTigweDc0MGE1MmM1
LCAweGZjNDJhZjZlKX19LAorICAgICAgICAge3tUT0JOKDB4MmUzOGJiMTUsIDB4MmNiYjFhM2Yp
LCBUT0JOKDB4YzNlYjk5ZmUsIDB4MTdhODM0MjkpLAorICAgICAgICAgICBUT0JOKDB4Y2E0ZmNi
ZjEsIDB4ZGQ2NmJiNzQpLCBUT0JOKDB4ODgwNzg0ZDYsIDB4Y2RlNWU4ZmMpfSwKKyAgICAgICAg
ICB7VE9CTigweGRkYzg0YzFjLCAweGI0ZTdhMGJlKSwgVE9CTigweDg3ODA1MTBkLCAweGJkMTVh
NzJmKSwKKyAgICAgICAgICAgVE9CTigweDQ0YmNmMWFmLCAweDgxZWMzMGUxKSwgVE9CTigweDE0
MWU1MGE4LCAweDBhNjEwNzNlKX19LAorICAgICAgICAge3tUT0JOKDB4MGQ5NTU3MTgsIDB4NDdi
ZTg3YWUpLCBUT0JOKDB4NjhhNjE0MTcsIDB4Zjc2YTQzNzIpLAorICAgICAgICAgICBUT0JOKDB4
ZjU3ZTdlODcsIDB4YzYwN2MzZDMpLCBUT0JOKDB4MDQzYWZhZjgsIDB4NTI1MmYzMzIpfSwKKyAg
ICAgICAgICB7VE9CTigweGNjMTRlMTIxLCAweDE1NTJhNGQyKSwgVE9CTigweGI2ZGVlNjkyLCAw
eGJiNGQ0YWI0KSwKKyAgICAgICAgICAgVE9CTigweGI2YWI3NGM4LCAweGEwMzgxNmE0KSwgVE9C
TigweDg0MDAxYWU0LCAweDZmMzk0YTI5KX19LAorICAgICAgICAge3tUT0JOKDB4NWJlZDgzNDQs
IDB4ZDc5NWZiNDUpLCBUT0JOKDB4NTczMjZlN2QsIDB4Yjc5ZjU1YTUpLAorICAgICAgICAgICBU
T0JOKDB4Yzk1MzNjZTAsIDB4NGFjY2RmZmMpLCBUT0JOKDB4NTM0NzNjYWYsIDB4Mzk5M2ZhMDQp
fSwKKyAgICAgICAgICB7VE9CTigweDc5MDZlYjkzLCAweGExM2RmNGM4KSwgVE9CTigweGE3M2U1
MWY2LCAweDk3Y2JlNDZmKSwKKyAgICAgICAgICAgVE9CTigweGQxYWIzYWUxLCAweDBhZTRjY2Y4
KSwgVE9CTigweDI1NjE0NTA4LCAweDhhNWIzZGJjKX19LAorICAgICAgICAge3tUT0JOKDB4NjFl
ZmY5NjIsIDB4MTFhNzFiMjcpLCBUT0JOKDB4ZGY3MTQxMmIsIDB4NmJiN2ZhMzkpLAorICAgICAg
ICAgICBUT0JOKDB4YjMxYmE2YjgsIDB4MmJkN2YzZWYpLCBUT0JOKDB4YjBiOWM0MTUsIDB4Njkx
ODBkMjkpfSwKKyAgICAgICAgICB7VE9CTigweGVlYzE0NTUyLCAweDAxNGNkZGU1KSwgVE9CTigw
eDcwMmM2MjRiLCAweDIyN2I0YmJiKSwKKyAgICAgICAgICAgVE9CTigweDJiMTVlOGMyLCAweGQz
ZTk4OGYzKSwgVE9CTigweGVlM2JjYzZkLCAweGE0ZjdmZDA0KX19LAorICAgICAgICAge3tUT0JO
KDB4OWQwMDgyMmEsIDB4NDJhYzZjODUpLCBUT0JOKDB4MmRiMGNlYTYsIDB4MWRmOWYyYjcpLAor
ICAgICAgICAgICBUT0JOKDB4ZDdjYWQyYWIsIDB4NDJkZTFlNTgpLCBUT0JOKDB4MzQ2ZWQ1MjYs
IDB4MmQ2ZmJiNjEpfSwKKyAgICAgICAgICB7VE9CTigweGIzOTYyOTk1LCAweDFhMmZhZjA5KSwg
VE9CTigweDJmYThhNTgwLCAweDdjMjU2MTJlKSwKKyAgICAgICAgICAgVE9CTigweDMwYWUwNGRh
LCAweDdjZjU2NDkwKSwgVE9CTigweDc1NjYyOTA4LCAweDBlZWEzOTYxKX19LAorICAgICAgICAg
e3tUT0JOKDB4MzYwOWY1YzUsIDB4M2QwODA4NDcpLCBUT0JOKDB4Y2IwODFkMzksIDB4NTI0MWQ0
ZjYpLAorICAgICAgICAgICBUT0JOKDB4YjRmYjM4MTAsIDB4Nzc5NjFhNjMpLCBUT0JOKDB4YzIw
YzU5ODQsIDB4MmFiYjY2ZmMpfSwKKyAgICAgICAgICB7VE9CTigweDNkNDBhYTdjLCAweGY5MDJm
MjQ1KSwgVE9CTigweDljYjEyNzM2LCAweDRlNTM2YjFlKSwKKyAgICAgICAgICAgVE9CTigweDVl
ZGEyNGRhLCAweDk5YjMxMzRmKSwgVE9CTigweGFmYmQ5YzY5LCAweDVjZDAxMWFmKX19LAorICAg
ICAgICAge3tUT0JOKDB4OWExNmUzMGEsIDB4YzcwODhjN2QpLCBUT0JOKDB4NWFiNjU3MTAsIDB4
MzIwNzM4OWYpLAorICAgICAgICAgICBUT0JOKDB4MWIwOTU0N2YsIDB4ZTc0MDdhNTMpLCBUT0JO
KDB4MjMyMmY5ZDcsIDB4NGZkYzZlYWIpfSwKKyAgICAgICAgICB7VE9CTigweGMwZjJmMjJkLCAw
eDc0MzBkZTRkKSwgVE9CTigweDE5MzgyNjk2LCAweGU2OGNhOWE5KSwKKyAgICAgICAgICAgVE9C
TigweDE3ZjFlZmYxLCAweDkxOGU1ODY4KSwgVE9CTigweGUzYjViNjM1LCAweDU4NmY0MjA0KX19
LAorICAgICAgICAge3tUT0JOKDB4MTQ2ZWY5ODAsIDB4M2ZiYzQzNDEpLCBUT0JOKDB4MzU5ZjJj
ODAsIDB4NWI1ZWVkNGUpLAorICAgICAgICAgICBUT0JOKDB4OWYzNTc0NGUsIDB4NzQ4MmU0MWQp
LCBUT0JOKDB4OWE5YWMzZWMsIDB4ZjNiMjI0YzIpfSwKKyAgICAgICAgICB7VE9CTigweDkxNjFh
NmZlLCAweDkxZmM1MGFlKSwgVE9CTigweDg5Y2NjNjZiLCAweGM2MTNmYTdjKSwKKyAgICAgICAg
ICAgVE9CTigweDg5MjY4YjE0LCAweGM3MzJmMTVhKSwgVE9CTigweDdjZDZmNGUyLCAweGI0Njdl
ZDAzKX19LAorICAgICAgICAge3tUT0JOKDB4ZmJmNzk4NjksIDB4Y2U1NmI0MGUpLCBUT0JOKDB4
ZjkzZTA5NGMsIDB4YzAyZGRlOTgpLAorICAgICAgICAgICBUT0JOKDB4ZWZlMGMzYTgsIDB4ZWRl
ZTJjZDcpLCBUT0JOKDB4OTBmM2ZmYzAsIDB4YjI2OGZkNDIpfSwKKyAgICAgICAgICB7VE9CTigw
eDgxYTdmZDU2LCAweDA4MjQxYWVkKSwgVE9CTigweDk1YWI3YWQ4LCAweDAwYjFhZmU4KSwKKyAg
ICAgICAgICAgVE9CTigweDQwMTI3MDU2LCAweDNlMzEwZDUyKSwgVE9CTigweGQzZmZkZWIxLCAw
eDA5ZDlmYzQzKX19LAorICAgICAgICAge3tUT0JOKDB4YzhmODVjOTEsIDB4ZDExYTg1OTQpLCBU
T0JOKDB4MmU3NGQyNTgsIDB4MzFjZjZkYjgpLAorICAgICAgICAgICBUT0JOKDB4ODI5YzdjYTMs
IDB4MDJiNWRmZDApLCBUT0JOKDB4ZTM4OWNmYmUsIDB4NjkxNDNjODYpfSwKKyAgICAgICAgICB7
VE9CTigweGQwMWI2NDA1LCAweDk0MTc2OGQ4KSwgVE9CTigweDQ1MTAzOTk1LCAweDAzYmY4MjVk
KSwKKyAgICAgICAgICAgVE9CTigweGNjNGVlMTY2LCAweDU2Y2QxN2UyKSwgVE9CTigweGJlYTNj
MjgzLCAweGJhMDM3ZTc5KX19LAorICAgICAgICAge3tUT0JOKDB4NGUxYWMwNmUsIDB4ZDlhNDc1
MjApLCBUT0JOKDB4ZmJmZTE4YWEsIDB4YWY4NTI0MDQpLAorICAgICAgICAgICBUT0JOKDB4NTYx
NWY4ZTIsIDB4ODA4NzY0OGEpLCBUT0JOKDB4NzMwMWU0N2UsIDB4YjlkMTUwZDkpfSwKKyAgICAg
ICAgICB7VE9CTigweDc5ZjlmOWRkLCAweGIyOTliOTc3KSwgVE9CTigweDc2Njk3YTdiLCAweGE1
Yjc4MzE0KSwKKyAgICAgICAgICAgVE9CTigweDEwZDY3NDY4LCAweDdkN2M5MGU3KSwgVE9CTigw
eDdhZmZmZTAzLCAweDkzNzIxMGI1KX19LAorICAgICAgICAge3tUT0JOKDB4NWFlZjNlNGIsIDB4
MjhjMjJjZWUpLCBUT0JOKDB4ZWZiMGVjZDgsIDB4MDlmZDU1YWUpLAorICAgICAgICAgICBUT0JO
KDB4NGNlYTcxMzIsIDB4MGQyYTVkNmEpLCBUT0JOKDB4OWNmYjVmYTEsIDB4MDFkYjYzNTcpfSwK
KyAgICAgICAgICB7VE9CTigweDM5NWUwYjU3LCAweGYzNmUxYWM1KSwgVE9CTigweDAwOGZhOWFk
LCAweDM2Y2FmYjdkKSwKKyAgICAgICAgICAgVE9CTigweDhmNmNkZjcwLCAweDUzMDhjNGRiKSwg
VE9CTigweDUxNTI3YTM3LCAweDk1ZWQyNDc3KX19LAorICAgICAgICAge3tUT0JOKDB4YmEwZGVl
MzAsIDB4NWJkMjEzMTEpLCBUT0JOKDB4NmVkNDFiMjIsIDB4OTA5YzkwZDcpLAorICAgICAgICAg
ICBUT0JOKDB4YzVmNmI3NTgsIDB4N2M4Njk2ZDMpLCBUT0JOKDB4MGRiOGVhYTgsIDB4M2NlODNh
ODApfSwKKyAgICAgICAgICB7VE9CTigweGQyOTdmZTM3LCAweGIyNGI0YjZmKSwgVE9CTigweGZl
NThhZmU4LCAweDUyMmQxZjBkKSwKKyAgICAgICAgICAgVE9CTigweDk3MzU4NzM2LCAweDhjOThk
YmQ5KSwgVE9CTigweDZiYzIyNmNhLCAweDk0NTRhNTI3KX19LAorICAgICAgICAge3tUT0JOKDB4
YTEyYjM4NGUsIDB4Y2U1M2MyZDApLCBUT0JOKDB4Nzc5ZDg5N2QsIDB4NWU0NjA2ZGEpLAorICAg
ICAgICAgICBUT0JOKDB4YTUzZTQ3YjAsIDB4NzNlYzEyYjApLCBUT0JOKDB4NDYyZGJiYmEsIDB4
NTc1NmYxYWQpfSwKKyAgICAgICAgICB7VE9CTigweDY5ZmUwOWYyLCAweGNhZmUzN2I2KSwgVE9C
TigweDI3M2QxZWJmLCAweGVjY2UyZTE3KSwKKyAgICAgICAgICAgVE9CTigweDhhYzFkNTM4LCAw
eDNjZjYwN2ZkKSwgVE9CTigweDgwMzVmN2ZmLCAweDEyZTEwYzI1KX19fSwKKyAgICAgICAge3t7
VE9CTigweDg1NGQzNGM3LCAweDdlNmM1NTIwKSwgVE9CTigweGMyN2RmOWVmLCAweGRjYjllYTU4
KSwKKyAgICAgICAgICAgVE9CTigweDQwNWYyMzY5LCAweGQ2ODY2NjZkKSwgVE9CTigweDI5ZDFm
ZWJmLCAweDA0MTdhYTg1KX0sCisgICAgICAgICAge1RPQk4oMHg5ODQ2ODE5ZSwgMHg5MzQ3MGFm
ZSksIFRPQk4oMHgzZTZhOTY2OSwgMHhlMmEyN2Y5ZSksCisgICAgICAgICAgIFRPQk4oMHgyNGQw
MDhhMiwgMHhlMzFlNjUwNCksIFRPQk4oMHhkYmE3Y2VjZiwgMHg5Y2I3NjgwYSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGVjYWZmNTQxLCAweDMzOGQ2ZTQzKSwgVE9CTigweDU2ZjdkZDczLCAweDQ1
NDFkNWNjKSwKKyAgICAgICAgICAgVE9CTigweGI1ZDQyNmRlLCAweDk2YmM4OGNhKSwgVE9CTigw
eDQ4ZDk0ZjZiLCAweDllZDNhMmMzKX0sCisgICAgICAgICAge1RPQk4oMHg2MzU0YTNiYiwgMHgy
ZWY4Mjc5YyksIFRPQk4oMHhkNTc1NDY1YiwgMHgwYjE4NjdmMiksCisgICAgICAgICAgIFRPQk4o
MHhlZjk5YjBmZiwgMHg5NTIyNTE1MSksIFRPQk4oMHhmM2UxOWQ4OCwgMHhmOTQ1MDBkOCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDkyYTgzMjY4LCAweGUzMmRkNjIwKSwgVE9CTigweDkxM2VjOTlm
LCAweDYyNzg0OWEyKSwKKyAgICAgICAgICAgVE9CTigweGVkZDhmZGZhLCAweDJjMzc4ODgyKSwg
VE9CTigweGFmOTZmMzNlLCAweGVlNmY4Y2ZlKX0sCisgICAgICAgICAge1RPQk4oMHhjMDY3Mzdl
NSwgMHhkYzNmYThhNSksIFRPQk4oMHgyMzZiYjUzMSwgMHhiMGIwM2ExZCksCisgICAgICAgICAg
IFRPQk4oMHgzM2U1OWYyOSwgMHg4OWYwMzdiMCksIFRPQk4oMHgxM2Y5YjVhNywgMHhkOWExMmE1
Myl9fSwKKyAgICAgICAgIHt7VE9CTigweDBkMGRmNmNlLCAweDUxZWZiMzEwKSwgVE9CTigweGNi
NWIyZWI0LCAweDk1OGRmNWJlKSwKKyAgICAgICAgICAgVE9CTigweGQ2NDU5ZTI5LCAweDM2MTU4
ZTU5KSwgVE9CTigweDgyYWFlMmI5LCAweDE0NjZlMzM2KX0sCisgICAgICAgICAge1RPQk4oMHhm
YjY1OGEzOSwgMHg0MTFhYTYzNiksIFRPQk4oMHg3MTUyZWNjNSwgMHhkNGMwYTkzMyksCisgICAg
ICAgICAgIFRPQk4oMHhmMTBjNzU4YSwgMHg0OWYwMjZiNyksIFRPQk4oMHhmNDgzN2Y5NywgMHhj
YjA5MzExZil9fSwKKyAgICAgICAgIHt7VE9CTigweGRkZmIwMmM0LCAweGM3NTNjNDVmKSwgVE9C
TigweDE4Y2E4MWI2LCAweGY5Yzg0MGZlKSwKKyAgICAgICAgICAgVE9CTigweDg0NmZkMDlhLCAw
eGIwZjhhM2U2KSwgVE9CTigweGIxMTYyYWRkLCAweGU3NzMzZGJjKX0sCisgICAgICAgICAge1RP
Qk4oMHg3MDcwYWQyMCwgMHgyMzZlM2FiNiksIFRPQk4oMHhmODhjZGFmNSwgMHhiMmE1NjMyNiks
CisgICAgICAgICAgIFRPQk4oMHgwNWZjODcxOSwgMHg5OTdjYmM3YSksIFRPQk4oMHg0NDJjZDQ1
MiwgMHg0YjY2NTI3Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDc4MDdmMzY0LCAweGI3MTY5OGY1
KSwgVE9CTigweDZiYTQxOGQyLCAweDlmN2I2MDVlKSwKKyAgICAgICAgICAgVE9CTigweGZkMjBi
MDBmLCAweGEwM2IyY2JiKSwgVE9CTigweDg4M2VjYTM3LCAweGRhNTQzODZmKX0sCisgICAgICAg
ICAge1RPQk4oMHhmZjBiZTQzZiwgMHhmMzQzN2YyNCksIFRPQk4oMHhlOTEwYjQzMiwgMHhhNDhi
YjMzYyksCisgICAgICAgICAgIFRPQk4oMHg0OTYzYTEyOCwgMHgzMjlkZjc2NSksIFRPQk4oMHhh
YzFkZDU1NiwgMHhiZTJmZTZmNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDU1NzYxMGY5LCAweDI0
YTBhM2ZjKSwgVE9CTigweDM4ZTE3YmY0LCAweGU4ODFjM2Y5KSwKKyAgICAgICAgICAgVE9CTigw
eDZiYTg0ZmFmLCAweGVkMGRhYzk5KSwgVE9CTigweGQ0YTIyMmMzLCAweDU5ZWViOTE4KX0sCisg
ICAgICAgICAge1RPQk4oMHhjNzljMWRiZSwgMHgxM2Y1NDJiNiksIFRPQk4oMHgxZmM2NWUwZCwg
MHhlNDI1ZDQ1NyksCisgICAgICAgICAgIFRPQk4oMHhlZmZiNzU0ZiwgMHgxZGViYjc3OSksIFRP
Qk4oMHg2MzhkOGZkMCwgMHg5ZTA4YWY2MCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk5NGY1MjNh
LCAweDYyNjMzMmQ1KSwgVE9CTigweDdiYzM4ODMzLCAweDU1NjFiYjQ0KSwKKyAgICAgICAgICAg
VE9CTigweDAwNWVkNGIwLCAweDNkODQ1ZWEyKSwgVE9CTigweGQzOWQzZWUxLCAweGMyYTFmMDhh
KX0sCisgICAgICAgICAge1RPQk4oMHg2NTYxZmRkMywgMHhlNzY3NmIwZCksIFRPQk4oMHg2MjBl
MzVmZiwgMHhmYjcwNjAxNyksCisgICAgICAgICAgIFRPQk4oMHgzNmNlNDI0ZiwgMHhmMjY0Zjlh
OCksIFRPQk4oMHhjNGMzNDE5ZiwgMHhkYTI2ODFmNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGZi
NmFmZDJmLCAweDY5YmViNmU4KSwgVE9CTigweDNhNTBiOTkzLCAweDZkNzAwZDAzKSwKKyAgICAg
ICAgICAgVE9CTigweGM4NDBiMmFkLCAweDBjODNhMTRmKSwgVE9CTigweDU3MzIwN2JlLCAweDU0
MDg1YmVmKX0sCisgICAgICAgICAge1RPQk4oMHg1YWY4ODJlMywgMHgwOWZlN2U1YiksIFRPQk4o
MHg5NTc2NzhhNCwgMHgzYjQwYTdlMSksCisgICAgICAgICAgIFRPQk4oMHgxNzJkNGJkZCwgMHg1
NDMwNTZlMiksIFRPQk4oMHg5YzFiMjZiNCwgMHgwZGYxM2MwYSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDFjMzA4NjFjLCAweGY0MDVmZjA2KSwgVE9CTigweGViYWM4NmJkLCAweDQ4NmU4MjhiKSwK
KyAgICAgICAgICAgVE9CTigweGU3OTFhOTcxLCAweDYzNjkzM2ZjKSwgVE9CTigweDUwZTdjMmJl
LCAweDdhZWVlOTQ3KX0sCisgICAgICAgICAge1RPQk4oMHhjM2Q0YTA5NSwgMHhmYTkwZDc2Nyks
IFRPQk4oMHhhZTYwZWI3YiwgMHhlNjcwYWI3YiksCisgICAgICAgICAgIFRPQk4oMHgxNzYzM2E2
NCwgMHgzOTdiMDU2ZCksIFRPQk4oMHg5M2EyMWYzMywgMHgxMDUwMTJhYSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDY2M2MzNzBiLCAweGFiYjg4NjQzKSwgVE9CTigweDkxZGYzNmQ3LCAweDIyZTIx
NTk5KSwKKyAgICAgICAgICAgVE9CTigweDE4M2JhODM1LCAweDhiNzYxNjcxKSwgVE9CTigweDM4
MWVlYTFkLCAweDcyOGYzYmYxKX0sCisgICAgICAgICAge1RPQk4oMHhiOWIyZjFiYSwgMHgzOTk2
NmU2YyksIFRPQk4oMHg3YzQ2NGEyOCwgMHhlNzI5NTQ5MiksCisgICAgICAgICAgIFRPQk4oMHgw
ZmQ1ZjcwYSwgMHgwOWIyNmI3ZiksIFRPQk4oMHhhOWFiYTFmOSwgMHhmYmUwMDlkZil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDg1N2MxZjIyLCAweDM2OWI4N2FkKSwgVE9CTigweDNjMDBlNWQ5LCAw
eDMyZmNhNTU2KSwKKyAgICAgICAgICAgVE9CTigweDFhZDc0Y2FiLCAweDkwYjA2NDY2KSwgVE9C
TigweGE3MTEyMzg2LCAweDU1MGZhYWYyKX0sCisgICAgICAgICAge1RPQk4oMHg3NDM1ZTE5OCwg
MHg2ZDliZDVmNSksIFRPQk4oMHgyZGNjN2UzOCwgMHg1OWMzNDYzZiksCisgICAgICAgICAgIFRP
Qk4oMHhkYzdkZjc0OCwgMHhjYTdiZDRiMiksIFRPQk4oMHgxM2NkNGMwOCwgMHg5ZGVjMmYzMSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDBkM2I1ZGY4LCAweGUzMjM3NzEwKSwgVE9CTigweDBkYWRi
MjZlLCAweGNiZDJmN2IwKSwKKyAgICAgICAgICAgVE9CTigweDlmNTk2NmFiLCAweGU0YWEwODJi
KSwgVE9CTigweDY2NmVjOGRlLCAweDM1MGU5NjZlKX0sCisgICAgICAgICAge1RPQk4oMHgxYmZk
MWVkNSwgMHhlZTUyNDIxNiksIFRPQk4oMHhjZDkzYzU5YiwgMHg0MWRhYjBiNiksCisgICAgICAg
ICAgIFRPQk4oMHg2NThhODQzNSwgMHhkMTg2ZDZiYSksIFRPQk4oMHgxYjdkMzRkMiwgMHgxNTlk
MTE5NSl9fSwKKyAgICAgICAgIHt7VE9CTigweDU5MzZlNDYwLCAweDIyY2FmNDZiKSwgVE9CTigw
eDZhNDVkZDhmLCAweDlhOTZmZTRmKSwKKyAgICAgICAgICAgVE9CTigweGY3OTI1NDM0LCAweGI5
OGY0NzRlKSwgVE9CTigweDQxNDEwNDEyLCAweDAwNTNlZjE1KX0sCisgICAgICAgICAge1RPQk4o
MHg3MWNmOGQxMiwgMHg0MWRlOTdiZiksIFRPQk4oMHhiODU0N2I2MSwgMHhiZDgwYmVmNCksCisg
ICAgICAgICAgIFRPQk4oMHhiNDdkMzk3MCwgMHhjNGRiMDAzNyksIFRPQk4oMHhmMWJjZDMyOCwg
MHhmZWYyMGRmZil9fSwKKyAgICAgICAgIHt7VE9CTigweDMxYTkyZTA5LCAweDEwY2FhZDY3KSwg
VE9CTigweDFmNTkxOTYwLCAweDU1MzFhMWUxKSwKKyAgICAgICAgICAgVE9CTigweDNiYjg1MmUw
LCAweDVmNGZjODQwKSwgVE9CTigweDYzZTI5N2NhLCAweDkzYTcyYzZjKX0sCisgICAgICAgICAg
e1RPQk4oMHgzYzJiMGIyZSwgMHg0OWFiYWQ2NyksIFRPQk4oMHg2ZWM0MDVmYywgMHhlZDNkYjBk
OSksCisgICAgICAgICAgIFRPQk4oMHhkYzE0YTUzMCwgMHg3ZmVmMWQ0MCksIFRPQk4oMHhjY2Qx
OTg0NiwgMHgyODA4OTZmYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDAwZjgzMTc2LCAweDliYjgx
NjQ4KSwgVE9CTigweGQ2OWViNDg1LCAweDY1MzEyMGQwKSwKKyAgICAgICAgICAgVE9CTigweGQx
N2Q3NWY0LCAweDRjY2FiYzYyKSwgVE9CTigweDM0YTA3ZjgyLCAweGI3NDlmY2IxKX0sCisgICAg
ICAgICAge1RPQk4oMHgyYzNhZjc4NywgMHhiYmZiNTU1NCksIFRPQk4oMHhiMDZlZDRkMCwgMHg2
MmUyODNmOCksCisgICAgICAgICAgIFRPQk4oMHg1NzIyODg5ZiwgMHhhMTkyMTNhMCksIFRPQk4o
MHgxNjJiMDg1ZSwgMHhkY2YzYzdiNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGJjYWVjYjMxLCAw
eGUwZGQzZWNhKSwgVE9CTigweGM2MjM3ZmJjLCAweGU1MmYxM2E1KSwKKyAgICAgICAgICAgVE9C
TigweGNjMmI2YjAzLCAweDI3YmFjMjk3KSwgVE9CTigweDJhZTFjYWM1LCAweGI5MTdmNTRhKX0s
CisgICAgICAgICAge1RPQk4oMHg0NzQ4MDdkNCwgMHg3ODQ1YWU0ZiksIFRPQk4oMHhmZWM3ZGQ5
MiwgMHhjZTU5NzJlMCksCisgICAgICAgICAgIFRPQk4oMHhjM2JkMjU0MSwgMHgxZDc5MTViYiks
IFRPQk4oMHg2NmY4NWRjNCwgMHhkOTQ5MDdjYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ5ODFi
ODg4LCAweGJkYmNmMGNhKSwgVE9CTigweGQ3NWY1ZGE2LCAweGRmMjc5ZTlmKSwKKyAgICAgICAg
ICAgVE9CTigweDEyOGJiZjI0LCAweDcwNTRlOTM0KSwgVE9CTigweDNjNmZmNmU1LCAweDgxZGIx
MzRiKX0sCisgICAgICAgICAge1RPQk4oMHg3OTViN2NmNCwgMHgwNDdkMjZlNCksIFRPQk4oMHhm
MzcwZjdiOCwgMHg1MDQ5ZWMzNyksCisgICAgICAgICAgIFRPQk4oMHhjNjcxMmQ0ZCwgMHhjZWQ5
NDVhZiksIFRPQk4oMHhkZjMwYjVlYywgMHgwOTU2NDJiYyl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDliMDM0YzYyLCAweDQ4OTYyNDZlKSwgVE9CTigweDU2NTJjMDE2LCAweGVlOTBiYmQxKSwKKyAg
ICAgICAgICAgVE9CTigweGViMzg2MzZmLCAweDg3ZmVkYjczKSwgVE9CTigweDVlMzJmODQ3LCAw
eDAxMzVhNjEzKX0sCisgICAgICAgICAge1RPQk4oMHgwNzAzYjMxMiwgMHhjZjkzM2M4MyksIFRP
Qk4oMHhkMDViYjc2ZSwgMHgxYTdmNDdlNiksCisgICAgICAgICAgIFRPQk4oMHg4MjVlNGYwYywg
MHg5NDljMjQxNSksIFRPQk4oMHg1NjllNTYyMiwgMHg3MjUwZDZmOCl9fSwKKyAgICAgICAgIHt7
VE9CTigweGJiZTllYjNhLCAweDY1NjgwMTNlKSwgVE9CTigweDhkYmQyMDNmLCAweDIyZjI0M2Zj
KSwKKyAgICAgICAgICAgVE9CTigweDlkYmQ3Njk0LCAweGIzNDI3MzRhKSwgVE9CTigweDhmNmQx
MmY4LCAweDQ2YWZhOTg0KX0sCisgICAgICAgICAge1RPQk4oMHhiOTg2MTBhMiwgMHhjOWVhZGUy
OSksIFRPQk4oMHhiYWI0ZjMyMywgMHg0N2RkMGYxOCksCisgICAgICAgICAgIFRPQk4oMHg1Nzc5
NzM3YiwgMHg2NzFjMGQ0NiksIFRPQk4oMHgxMGI2YTdjNiwgMHhkM2UwYTQyYSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGZiMTlkZGYzLCAweDMwMzViNDFjKSwgVE9CTigweGQzMzYzNDNmLCAweDk5
YzQ1ODk1KSwKKyAgICAgICAgICAgVE9CTigweDYxZmU0OTM4LCAweDU0Yzg1N2U1KSwgVE9CTigw
eGM0ZDUwNmJlLCAweGFlNGU1N2Q1KX0sCisgICAgICAgICAge1RPQk4oMHgzY2Q4YzhjYiwgMHhi
YmMzM2Y3NSksIFRPQk4oMHg3MjgxZjA4YSwgMHg5MjYyYzc3ZCksCisgICAgICAgICAgIFRPQk4o
MHgwODNmNGVhNiwgMHhmMTFhMjgyMyksIFRPQk4oMHg4ODk1MDQxZSwgMHg5ZmJhMmUzMyl9fSwK
KyAgICAgICAgIHt7VE9CTigweGZjZGZlYTQ5LCAweDljNDM4ZWRmKSwgVE9CTigweDc2NzhkY2Mz
LCAweDkxZWRiYTQ0KSwKKyAgICAgICAgICAgVE9CTigweGYwN2IzYjg3LCAweGUyYmE1MGYwKSwg
VE9CTigweGMxMzg4OGVmLCAweDQzOTQ4YzFiKX0sCisgICAgICAgICAge1RPQk4oMHhjMjEzNWFk
NCwgMHgxMTQwYWY0MiksIFRPQk4oMHg4ZTUxMDRmMywgMHg5MjZlZDFhNyksCisgICAgICAgICAg
IFRPQk4oMHhmMjQ0MzBjYiwgMHg4OGY2Njk1ZiksIFRPQk4oMHgwY2UwNjM3YiwgMHg2ZDczYzEy
MCl9fSwKKyAgICAgICAgIHt7VE9CTigweGIyZGIwMWU2LCAweGZlNjMxZThmKSwgVE9CTigweDFj
NTU2M2Q3LCAweGQ3YmRkMjRiKSwKKyAgICAgICAgICAgVE9CTigweDhkYWVhM2JhLCAweDM2OWFk
NDRmKSwgVE9CTigweDAwMGM4MWI2LCAweDgxODdhOWY5KX0sCisgICAgICAgICAge1RPQk4oMHg1
ZjQ4YTk1MSwgMHhhYWUxZmQ5YSksIFRPQk4oMHhlMzU2MjZjNywgMHg4ZDVhZWQ4YSksCisgICAg
ICAgICAgIFRPQk4oMHgyMDk1Mjc2MywgMHgwNDk4YzYyMiksIFRPQk4oMHg3NmQxNzYzNCwgMHg3
NzNhYTUwNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDM2ZDkwZGRhLCAweGViMzAwZjdhKSwgVE9C
TigweDlkY2Y3ZGZjLCAweGVkYjVlODAxKSwKKyAgICAgICAgICAgVE9CTigweDY0NWNiMjY4LCAw
eDc0ZDUyNDRjKSwgVE9CTigweGExMjdlZTc5LCAweDM0OGUzYWEyKX0sCisgICAgICAgICAge1RP
Qk4oMHg0ODhhY2M1MywgMHg1NzVmMWRiYiksIFRPQk4oMHg5NTAzN2U4NSwgMHg4MGU2MTYxZSks
CisgICAgICAgICAgIFRPQk4oMHg1N2U1OTI4MywgMHgyOTI2NTBkMCksIFRPQk4oMHhhYmU2N2Q5
OSwgMHgxNDkzODIxNil9fSwKKyAgICAgICAgIHt7VE9CTigweDNjN2Y5NDRiLCAweDNmOGUxMDY1
KSwgVE9CTigweGVkOTA4Y2I2LCAweDMzMGU4OTI0KSwKKyAgICAgICAgICAgVE9CTigweDA4ZWU4
ZmQ1LCAweDZmNTMwMTM2KSwgVE9CTigweDIyMjdiN2Q1LCAweGQ3ZmZjMTY5KX0sCisgICAgICAg
ICAge1RPQk4oMHg0ZjU1Yzg5MywgMHhiNWNkNmRkNSksIFRPQk4oMHg4MjIyNWUxMSwgMHhhNjI3
OTZlOCksCisgICAgICAgICAgIFRPQk4oMHg1YzZjZWFkMSwgMHhjYjE4ZTEyYyksIFRPQk4oMHg0
MzgxYWUwYywgMHg4NGY1YTUxYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDM0NTkxM2QzLCAweDdm
YWZhNGM4KSwgVE9CTigweDNkOTE4MDgyLCAweDA0OTFhYWMwKSwKKyAgICAgICAgICAgVE9CTigw
eDkzNDc4NzFmLCAweDNlNjkyNjRjKSwgVE9CTigweGJlYTlkZDNjLCAweGI0ZjRmMGNkKX0sCisg
ICAgICAgICAge1RPQk4oMHhiZGE1ZDA2NywgMHgzZWFkZDNlNyksIFRPQk4oMHgwMDMzYzFiOCwg
MHgwNTczYmNkOCksCisgICAgICAgICAgIFRPQk4oMHgyNTU4OTM3OSwgMHg1ZGEyNDg2YyksIFRP
Qk4oMHhjYjg5ZWU1YiwgMHg4NmFiYmVlNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDhmZTBhOGYz
LCAweDIyNTMyZTVkKSwgVE9CTigweGI2NDEwZmYwLCAweDcyN2RmYzRjKSwKKyAgICAgICAgICAg
VE9CTigweDYxOWI5ZDU4LCAweDIyNjcyNmRiKSwgVE9CTigweDVlYzI1NjY5LCAweDdhMmIyZGM3
KX0sCisgICAgICAgICAge1RPQk4oMHhhZjRkMmUwNiwgMHg0YzNiZWIwMSksIFRPQk4oMHg4NTIx
MjNkMCwgMHg3YWNlYTU1NiksCisgICAgICAgICAgIFRPQk4oMHgwZTk0NzBmYSwgMHhmNzgzNDg3
YSksIFRPQk4oMHg3NWE3ZWEwNCwgMHg1NjY0YjNlYil9fSwKKyAgICAgICAgIHt7VE9CTigweDRh
ZDc4ZjM1LCAweDY3OThlNGJhKSwgVE9CTigweDkyMTRlNmU1LCAweGM3ZDBlMDkxKSwKKyAgICAg
ICAgICAgVE9CTigweGM0MjBiNDg4LCAweGIxMjkwNDAzKSwgVE9CTigweDY0MDQ5ZTBhLCAweGZj
Mjk1NzQ5KX0sCisgICAgICAgICAge1RPQk4oMHgwM2VmNWFmMSwgMHgzYWU5ODQxZiksIFRPQk4o
MHhkYmU0Y2ExOSwgMHhiMGI2NjJhNiksCisgICAgICAgICAgIFRPQk4oMHg0Njg0NWM1ZiwgMHhm
YTQ1MzQ1OCksIFRPQk4oMHhmOGRhYmYxOSwgMHgxMGI2NjcyMil9fSwKKyAgICAgICAgIHt7VE9C
TigweGI2NTBmMGFhLCAweGNjZTI3OTNiKSwgVE9CTigweDcxZGI4NTFlLCAweGM1ZWM0N2MxKSwK
KyAgICAgICAgICAgVE9CTigweDNlYjc4ZjNlLCAweDNiMjM0ZmE5KSwgVE9CTigweGIwYzYwZjM1
LCAweGZjMDEwNmNlKX0sCisgICAgICAgICAge1RPQk4oMHgwNTQyNzEyMSwgMHg3NzRlYWRiZCks
IFRPQk4oMHgyNTM2N2ZhZiwgMHhjZTMyMzg2MyksCisgICAgICAgICAgIFRPQk4oMHg3NTQxYjVj
OSwgMHhjZDA4Njk3NiksIFRPQk4oMHg0ZmYwNjllMiwgMHhkYzUwN2FkMSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDc0MTQ1MjU2LCAweDg3NzZlNjY3KSwgVE9CTigweDZlNzYxNDJjLCAweGIyM2M2
YmI1KSwKKyAgICAgICAgICAgVE9CTigweGRiZjMwNzEyLCAweDFiM2E4YTg3KSwgVE9CTigweDYw
ZTczNjNlLCAweDk4NDUwODM2KX0sCisgICAgICAgICAge1RPQk4oMHg1NzQxNDUwZSwgMHhiNzM2
NmQ4MCksIFRPQk4oMHhlNGVlMTRjYSwgMHg0ODM3ZGJkZiksCisgICAgICAgICAgIFRPQk4oMHhh
NzY1ZWI5YiwgMHg2OWQ0MzE2ZiksIFRPQk4oMHgwNDU0OGRjYSwgMHg4ZWY0MzgyNSl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDljOWY0ZTRjLCAweDVhZTg4OGViKSwgVE9CTigweDczM2FiYjUxLCAw
eDU2ZTlhYzk5KSwKKyAgICAgICAgICAgVE9CTigweGRhYWQzYzIwLCAweGJhNmFjMDI5KSwgVE9C
TigweDliOGRkM2QzLCAweDJiYTNlMzhlKX0sCisgICAgICAgICAge1RPQk4oMHhhOWJiNGM5Miwg
MHgwYmM1ZDExYSksIFRPQk4oMHhmMjAxMjdhNywgMHg5YzVmODhhMyksCisgICAgICAgICAgIFRP
Qk4oMHg0ZjUyYjA2ZSwgMHgxNjFkM2NiOCksIFRPQk4oMHgyNmMxZmYwOSwgMHg2YWZhZjBhNil9
fSwKKyAgICAgICAgIHt7VE9CTigweDMyNjcwZDJmLCAweDcxODllNzFmKSwgVE9CTigweGM2NDM4
NzQ4LCAweDVlY2Y5MWU3KSwKKyAgICAgICAgICAgVE9CTigweDE1NzU4ZTU3LCAweGRiNzU3YTIx
KSwgVE9CTigweDQyN2QwOWY4LCAweDI5MGE5Y2U1KX0sCisgICAgICAgICAge1RPQk4oMHg4NDZh
MzA4ZiwgMHgzODM4NGE3YSksIFRPQk4oMHhhYWMzYWNiNCwgMHhiMDczMmI5OSksCisgICAgICAg
ICAgIFRPQk4oMHg5ZTk0MTAwOSwgMHgxNzg0NTgxOSksIFRPQk4oMHg5NWNiYTExMSwgMHhhN2Nl
NWUwMyl9fSwKKyAgICAgICAgIHt7VE9CTigweDZmM2Q0ZjdmLCAweGIwMDAwOWM0KSwgVE9CTigw
eGI4Mzk2YzI3LCAweDhmZjI4YjVmKSwKKyAgICAgICAgICAgVE9CTigweGIxYTlhZTQzLCAweDFj
OTc5NzVkKSwgVE9CTigweDlkN2JhOGFmLCAweGU1ZDlmZWQ1KX0sCisgICAgICAgICAge1RPQk4o
MHgzMzhjZjA5ZiwgMHgzNGY0ODViNiksIFRPQk4oMHhiYzBkZGFjYywgMHg2NDEyMjUxNiksCisg
ICAgICAgICAgIFRPQk4oMHhhNDUwZGExMiwgMHgwNWQ0NzFmZSksIFRPQk4oMHg0YzNhNjI1MCwg
MHg2MjhkZDhjOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDY5YzdkMTAzLCAweGQxMjk1ODM3KSwg
VE9CTigweGEyODkzZTUwLCAweDM4MDdlYjJmKSwKKyAgICAgICAgICAgVE9CTigweGQ2ZTFlMWRl
LCAweGJkYjQxNDkxKSwgVE9CTigweGM2MzA3NDViLCAweDVlMTM4MjM1KX0sCisgICAgICAgICAg
e1RPQk4oMHhjODkyMTA5ZSwgMHg0ODY2MWFlMSksIFRPQk4oMHg4ZDE3ZTdlYiwgMHhlYTJiMjY3
NCksCisgICAgICAgICAgIFRPQk4oMHgwMGVjMGY4NywgMHhjMzI4ZDZiNSksIFRPQk4oMHg2ZDg1
ODY0NSwgMHhmMDc5ZmY5ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDZjZGYyNDNlLCAweDE5MTE1
ZWFkKSwgVE9CTigweDFjZTEzOTNlLCAweDRiYWM0ZmNmKSwKKyAgICAgICAgICAgVE9CTigweDJj
OTYwZWQwLCAweDljMjlmMjViKSwgVE9CTigweDU5YmU0ZDhlLCAweDlkMzg4YTA1KX0sCisgICAg
ICAgICAge1RPQk4oMHgwZDQ2ZTA2YywgMHhkMGRlZjcyYiksIFRPQk4oMHhiOTIzZGI1ZCwgMHhl
MDM0Mjc0OCksCisgICAgICAgICAgIFRPQk4oMHhmN2QzYWFjZCwgMHg5MzZkNGEzZCksIFRPQk4o
MHg1NTg1MTljYywgMHgwYjBiMDk5ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDNlYThlYmY4LCAw
eDgyNzA5N2VmKSwgVE9CTigweDI1OTM1M2RiLCAweGQwNTRmNTVkKSwKKyAgICAgICAgICAgVE9C
TigweDg0Yzg5YWJjLCAweDZkMmVkMDg5KSwgVE9CTigweDVjNTQ4YjY5LCAweDhlMDk2YTdjKX0s
CisgICAgICAgICAge1RPQk4oMHhkNTg3ZjYxNiwgMHg5OTRiOTk1ZCksIFRPQk4oMHg0ZDE1MzFm
NiwgMHhhNTg0NTYwMSksCisgICAgICAgICAgIFRPQk4oMHg3OTJhYjMxZSwgMHg0NTFmZDlmMCks
IFRPQk4oMHhjOGI1N2JiMiwgMHg2NWFkZjZjYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDY4NDQw
ZmNiLCAweDFjZDVhZDczKSwgVE9CTigweGI5Yzg2MGU2LCAweDYxNDRkYTRmKSwKKyAgICAgICAg
ICAgVE9CTigweDJhYjI4NmFhLCAweDg0NjJiZWI4KSwgVE9CTigweGNjNmI4ZmZmLCAweGVmNDY3
OTdmKX0sCisgICAgICAgICAge1RPQk4oMHhhYzgyMGRhNCwgMHgyMGM4YTQ3MSksIFRPQk4oMHg2
OWFlMDVhMSwgMHg3N2ZmN2ZhZiksCisgICAgICAgICAgIFRPQk4oMHhiOTE2M2YzOSwgMHhiZmI1
ZGE3NyksIFRPQk4oMHhiZDAzZTU5MCwgMHgyYzczYWI3YSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDdlODYyYjVlLCAweGIyOTQwZDllKSwgVE9CTigweDNjNjYzZDg2LCAweDRiOWFmNTY0KSwKKyAg
ICAgICAgICAgVE9CTigweGQ4MzA5MDMxLCAweGJkZTMwMzNkKSwgVE9CTigweDI5ODIzMWIyLCAw
eGQ0MmM1YmM2KX0sCisgICAgICAgICAge1RPQk4oMHg0MjA5MGQyYywgMHg1NTJhZDA5MyksIFRP
Qk4oMHhhNDc5OWQxYywgMHhmZjg1NDY5NSksCisgICAgICAgICAgIFRPQk4oMHgwYTg4YjVkNiwg
MHhkMzFmMGQwMCksIFRPQk4oMHhmOGI0MDgyNSwgMHhhMmYyNmI0Nil9fSwKKyAgICAgICAgIHt7
VE9CTigweGVjMjliMWVkLCAweGYxYmQ3MjE4KSwgVE9CTigweGQ0OTFjNTNiLCAweDRiMjRjODZl
KSwKKyAgICAgICAgICAgVE9CTigweGQyZmU1ODhmLCAweDMzOTVlYTY1KSwgVE9CTigweDZmMzc2
NGY3LCAweDQ0NTZlZjE1KX0sCisgICAgICAgICAge1RPQk4oMHhkYjQzMTE2ZCwgMHhjZGMzNDgw
MCksIFRPQk4oMHhjZGJjZDQ1NiwgMHhjMWUzMzk1NSksCisgICAgICAgICAgIFRPQk4oMHhlZmRi
NTU0MCwgMHg3NGFiMjg2YiksIFRPQk4oMHg5NDhjN2E1MSwgMHhkMThjNWQ3Yyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGViODFhYTM3LCAweDczNzgwNThlKSwgVE9CTigweDQxYzc0NmExLCAweDA0
NDExMTU0KSwKKyAgICAgICAgICAgVE9CTigweGExMGM3M2JjLCAweGZiODI4YWM3KSwgVE9CTigw
eDY0MzliZTkxLCAweDlkOTcyYjI5KX0sCisgICAgICAgICAge1RPQk4oMHg0YmYzYjRiMCwgMHg0
M2EyZmJhZCksIFRPQk4oMHgzOWU2ZGFkZiwgMHg4MmI1ZTg0MCksCisgICAgICAgICAgIFRPQk4o
MHg0ZjcxNjQwOCwgMHg2Mzk3YmQ0YyksIFRPQk4oMHgwZjdkZTU2OCwgMHg3ZjFlZWNjYil9fSwK
KyAgICAgICAgIHt7VE9CTigweDU4NjVjNWExLCAweGQyZmZiZmMxKSwgVE9CTigweGY3NDIxMWZh
LCAweDRjY2I2NDUxKSwKKyAgICAgICAgICAgVE9CTigweDY2MzY4YTg4LCAweGMwYjMyNTU4KSwg
VE9CTigweDViNTM5ZGMyLCAweDlhZDc4MTJlKX0sCisgICAgICAgICAge1RPQk4oMHg1Nzk0ODNk
MCwgMHgyZjNhZjZmNiksIFRPQk4oMHg1MjEzMjA3OCwgMHg5OTkzNGVjZSksCisgICAgICAgICAg
IFRPQk4oMHg1MGI5NjUwZiwgMHhkY2M5ZTk4MyksIFRPQk4oMHhjYTk4OWVjOSwgMHhhZWU0MmI4
YSl9fSwKKyAgICAgICAgIHt7VE9CTigweDZhNDRjODI5LCAweGQ2ZjYyZjk5KSwgVE9CTigweDhm
MDZhMzA5LCAweDRjMmE3YzBjKSwKKyAgICAgICAgICAgVE9CTigweDRlYTJiM2EwLCAweDk4YTBj
YjBhKSwgVE9CTigweDVjNTQ3YjcwLCAweGJlZWU4MzY0KX0sCisgICAgICAgICAge1RPQk4oMHg0
NjFkNDBlMSwgMHg2ODJhZmUxMSksIFRPQk4oMHg5ZTBmYzc3YSwgMHg3YjQxYzBhOCksCisgICAg
ICAgICAgIFRPQk4oMHg3OWU0YWVmZCwgMHhlMjBkNWQzNiksIFRPQk4oMHgyOTE2ZTUyMCwgMHgz
MmRkOWY2Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGY1OWU1MmU4LCAweDNmODgzZmFmKSwgVE9C
TigweDM5NmY5NjM5LCAweDJiODY4ZDM1KSwKKyAgICAgICAgICAgVE9CTigweGM5MDJhOWRmLCAw
eDRjYTE5ODgxKSwgVE9CTigweDBmYzk2ODIyLCAweGRiMjQwMWE2KX0sCisgICAgICAgICAge1RP
Qk4oMHg0MTIzNzU4NywgMHg2NmYxYzY4ZCksIFRPQk4oMHgxMGZjNmRlMywgMHhmYjQ3NmMwZCks
CisgICAgICAgICAgIFRPQk4oMHhmOGI2YjU3OSwgMHg4NDFmNWQ5MCksIFRPQk4oMHgyYmE4NDQ2
YywgMHhmYTI0ZjQ0YSl9fSwKKyAgICAgICAgIHt7VE9CTigweGEyMzdiOTIwLCAweGVmNGE5OTc1
KSwgVE9CTigweDYwYmI2MDA0LCAweDIzMzA0MzVmKSwKKyAgICAgICAgICAgVE9CTigweGQ2ZjRh
YjVhLCAweGNmYjdlN2I1KSwgVE9CTigweGIyYWM1MDk3LCAweDgzNDM1MzkxKX0sCisgICAgICAg
ICAge1RPQk4oMHhmMDM2ZWUyZiwgMHhiMGQxZWE2NyksIFRPQk4oMHhhZTc3OWE2YSwgMHg3NGM1
NjIzMCksCisgICAgICAgICAgIFRPQk4oMHg1OWJmZjhjOCwgMHhhYjgzOGFlNiksIFRPQk4oMHhj
ZDgzY2E5OSwgMHg5YjM4ZTZmMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGJiMjdiZWY1LCAweGUz
M2RlZWQzKSwgVE9CTigweGU2MzU2ZjZmLCAweDAwMTg5MmE4KSwKKyAgICAgICAgICAgVE9CTigw
eGJmM2JlNmNjLCAweDdhZGZiZDNlKSwgVE9CTigweGFlY2JjODFjLCAweDMzZDFhYzlkKX0sCisg
ICAgICAgICAge1RPQk4oMHhlNGZlYjkwOSwgMHhlNmU4NjFkYyksIFRPQk4oMHg5MGEyNDdhNCwg
MHg1M2Y1ZjgwMSksCisgICAgICAgICAgIFRPQk4oMHgwMWM1MGFjYiwgMHgyNzM0NmU1NyksIFRP
Qk4oMHhjZTI5MjQyZSwgMHg0NjFhY2MxYil9fSwKKyAgICAgICAgIHt7VE9CTigweDA0ZGQyMTRh
LCAweDJmOTk4YTkxKSwgVE9CTigweDI3MWVlOWIxLCAweGQ0YmFmMjdiKSwKKyAgICAgICAgICAg
VE9CTigweDdlMzAyN2QxLCAweGU4YzI2NzIyKSwgVE9CTigweDIxZDE2NDVjLCAweDE4MjBkY2U1
KX0sCisgICAgICAgICAge1RPQk4oMHgwODZmMjQyYywgMHg3NTAxNzc5YyksIFRPQk4oMHhmMDA2
MTQwNywgMHhmYTBlODAwOSksCisgICAgICAgICAgIFRPQk4oMHhmMjNjZTQ3NywgMHg2MDE4NzEy
OSksIFRPQk4oMHgwNWJiZGVkYiwgMHgwZmRlOWJkMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDY4
MmY0ODMyLCAweDI1ZDk4NDczKSwgVE9CTigweGYyMDdmZTg1LCAweDVjNjU4NDI3KSwKKyAgICAg
ICAgICAgVE9CTigweGI2ZmRkN2JhLCAweDQxNjZmZmExKSwgVE9CTigweDBjMzE0MDU2LCAweDll
ZWQ3OTlkKX0sCisgICAgICAgICAge1RPQk4oMHgwZGI4MDQ4ZiwgMHg0MTA3ZTI4ZiksIFRPQk4o
MHg3NGVkMzg3MSwgMHg0MTIxNjg0MCksCisgICAgICAgICAgIFRPQk4oMHg3NDQ4OWY4ZiwgMHg1
NmEzYzA2ZSksIFRPQk4oMHgxZTFjMDA1YiwgMHgxMjc3NzEzNCl9fSwKKyAgICAgICAgIHt7VE9C
TigweGRiMzMyYTczLCAweGYzN2VjM2MzKSwgVE9CTigweGM2NTI1OWJkLCAweGRkNTllYmEwKSwK
KyAgICAgICAgICAgVE9CTigweDIyOTE3MDljLCAweGRiNGQzMjU3KSwgVE9CTigweDlhNzkzYjI1
LCAweGJkMzg5MzkwKX0sCisgICAgICAgICAge1RPQk4oMHhmMzlmZTM0YiwgMHhlNDM3NTZmMCks
IFRPQk4oMHgyZjc2YmRjZSwgMHg5YWZiNTZjOSksCisgICAgICAgICAgIFRPQk4oMHg5ZjM3ODY3
YSwgMHg2MTIwOGIyNyksIFRPQk4oMHhlYTFkNDMwNywgMHgwODk5NzJjMyl9fSwKKyAgICAgICAg
IHt7VE9CTigweDhjNTk1MzMwLCAweDhiZGY2MjNhKSwgVE9CTigweDVmNWFjY2RhLCAweDg0NDFm
YjdkKSwKKyAgICAgICAgICAgVE9CTigweGZhZmE5NDE4LCAweDMyZGRmZDk1KSwgVE9CTigweDZh
ZDQwYzVhLCAweDBmZGU5YmU3KX0sCisgICAgICAgICAge1RPQk4oMHg0M2ZhYmE4OSwgMHhhZWNh
ODcwOSksIFRPQk4oMHhjNjRhN2NmMSwgMHgyYzI0OGE5ZCksCisgICAgICAgICAgIFRPQk4oMHgx
NjYyMDI1MiwgMHg3MjYzN2E3NiksIFRPQk4oMHhhZWUxYzc5MSwgMHgyMmI4ZDFiYil9fSwKKyAg
ICAgICAgIHt7VE9CTigweGYwZjc5OGZkLCAweDIxYTg0M2IyKSwgVE9CTigweDU2ZTRlZDRkLCAw
eDhkMDA1Y2IxKSwKKyAgICAgICAgICAgVE9CTigweDM1NWY3NzgwLCAweDFmMGQ4YWJlKSwgVE9C
TigweDE5N2IwNGNmLCAweDM0NTIyMzI2KX0sCisgICAgICAgICAge1RPQk4oMHg0MWY5YjMxZiwg
MHhmZDQyYzEzZiksIFRPQk4oMHg1ZWY3ZmViMiwgMHhiNDBmOTMzZCksCisgICAgICAgICAgIFRP
Qk4oMHgyNzMyNmY0MiwgMHg1ZDYwYmFkNCksIFRPQk4oMHgwMjdlY2RiMiwgMHg4YzkyY2Y4OSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDA0YWFlNGQxLCAweDRlMzM1MmZlKSwgVE9CTigweDA4NDE0
ZDJmLCAweDczNTkxYjkwKSwKKyAgICAgICAgICAgVE9CTigweDVlZDYxMjRlLCAweGI3ZGE3ZDYw
KSwgVE9CTigweGI5ODViOTMxLCAweDRkMTNkNGVjKX0sCisgICAgICAgICAge1RPQk4oMHhhNTky
ZDNhYiwgMHg5NmJmMzZmOSksIFRPQk4oMHgwMTJkYmVkNSwgMHhiYmRmNTFkZiksCisgICAgICAg
ICAgIFRPQk4oMHhhNTc5NjNjMCwgMHhkZjZjMTc3ZCksIFRPQk4oMHgwMTBlYzg2OSwgMHg4N2Nh
MjljZil9fSwKKyAgICAgICAgIHt7VE9CTigweGJhMTcwMGY2LCAweGJmOTI2ZGZmKSwgVE9CTigw
eDdjOWZkYmQxLCAweGY0YmY2YmMyKSwKKyAgICAgICAgICAgVE9CTigweGRjMThkYzhmLCAweDY0
ZGExMWY1KSwgVE9CTigweGE2MDc0YjdhLCAweGQ5MzhhZTc1KX0sCisgICAgICAgICAge1RPQk4o
MHgxNDI3MDA2NiwgMHhlODRmNDRhNCksIFRPQk4oMHg5OTk5OGQzOCwgMHhkMjdiOTU0ZSksCisg
ICAgICAgICAgIFRPQk4oMHhjMWJlOGFiMiwgMHhiNGYzOGU5YSksIFRPQk4oMHg4YmI1NWJiZiwg
MHgxNWMwMTAxNil9fSwKKyAgICAgICAgIHt7VE9CTigweGY3MzQ3MmI0LCAweDBlYTJhYjMwKSwg
VE9CTigweGQzNjVhMzQwLCAweGY3M2Q2OGRkKSwKKyAgICAgICAgICAgVE9CTigweGMwMWE3MTY4
LCAweDE5YzJlMWViKSwgVE9CTigweDMyZjQ5ZTM3LCAweDM0MDYxNzE5KX0sCisgICAgICAgICAg
e1RPQk4oMHhiNzNjNTdmMSwgMHgwMWQ4YjRkNiksIFRPQk4oMHgwM2M4NDIzYywgMHgyNmI0Nzcw
MCksCisgICAgICAgICAgIFRPQk4oMHgzMjFkMGJjOCwgMHhhNGQ4ODI2YSksIFRPQk4oMHg2MDA0
MjEzYywgMHg0YmMwZTYzOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGY3OGM2NGExLCAweGMxYzA2
NjgxKSwgVE9CTigweDE2ZTBhMTZmLCAweGVmMDE4ZTUwKSwKKyAgICAgICAgICAgVE9CTigweDMx
Y2JkZjkxLCAweGRiNDJiMmIzKSwgVE9CTigweGY4ZjRmZmNlLCAweGUwZDM2ZjU4KX0sCisgICAg
ICAgICAge1RPQk4oMHhjZGNjNzFjZCwgMHg0Y2M1ZTNlMCksIFRPQk4oMHhkNTVjN2NmYSwgMHhh
MTI5ZTNlMCksCisgICAgICAgICAgIFRPQk4oMHhjY2RiNmJhMCwgMHgwZmIyY2JmMSksIFRPQk4o
MHg2YWJhMDAwNSwgMHhjNGJjZTNjYil9fSwKKyAgICAgICAgIHt7VE9CTigweDUwMWNkYjMwLCAw
eGQyMzJjZmM0KSwgVE9CTigweDlkZGNmMTJlLCAweGQ1OGEzY2VmKSwKKyAgICAgICAgICAgVE9C
TigweDAyZDJjZjljLCAweDg3ZTA5MTQ5KSwgVE9CTigweGRjNWQ3ZWM3LCAweDJjOTc2MjU3KX0s
CisgICAgICAgICAge1RPQk4oMHg2NDQ3OTg2ZSwgMHgwYjUwZDdkZCksIFRPQk4oMHg4OGZkYmFm
NywgMHg4MDdmMTEyYSksCisgICAgICAgICAgIFRPQk4oMHg1OGM5ODIyYSwgMHhiMDBhZTlmNiks
IFRPQk4oMHg2YWJmYjk1MCwgMHg2ZDNkMjdlMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGQwYTc0
NDg3LCAweDhhNDI5ZjRmKSwgVE9CTigweDA2NDk3MTJiLCAweGRiNTE2NjA5KSwKKyAgICAgICAg
ICAgVE9CTigweGI4MjZiYTU3LCAweGU3NjliNWRmKSwgVE9CTigweDgyMzM1ZGYyLCAweDFmYzdh
YWYyKX0sCisgICAgICAgICAge1RPQk4oMHgyMzg5ZjA2NywgMHg1YzkzZDk5NSksIFRPQk4oMHg1
OWFjMzY3YSwgMHg2ODY3N2JlNiksCisgICAgICAgICAgIFRPQk4oMHhhNzc5ODVmZiwgMHgyMWQ5
OTUxYiksIFRPQk4oMHgwMzg5NTZmYiwgMHg4NTAxMWNjZSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDYwOGU0OGNiLCAweGJiNzM0ZTM3KSwgVE9CTigweGMwOGMwYmYyLCAweDJiZTViMjZmKSwKKyAg
ICAgICAgICAgVE9CTigweDE3YmJkZDNiLCAweGY5YjFhMGQ5KSwgVE9CTigweGVhYzdkODk4LCAw
eDEwNDgzMzE5KX0sCisgICAgICAgICAge1RPQk4oMHhjOTVjNGJhZiwgMHhiYzFhNmRlYSksIFRP
Qk4oMHhmZGQwZTJiZiwgMHgxNzJhYWZkYiksCisgICAgICAgICAgIFRPQk4oMHg0MDM3M2NiYywg
MHg4MjM1YzQxYSksIFRPQk4oMHgxNDMwM2YyMSwgMHhmYjZmNDFkNSl9fSwKKyAgICAgICAgIHt7
VE9CTigweGJhMDYzNjIxLCAweDA0MDhmMjM3KSwgVE9CTigweGNhZDNiMDlhLCAweGVjZDJkMWVk
KSwKKyAgICAgICAgICAgVE9CTigweDQ2Njc4NTVhLCAweDUyYWJiNmEyKSwgVE9CTigweGJhOTE1
N2RjLCAweGFhOGI0MTdiKX0sCisgICAgICAgICAge1RPQk4oMHhmZTdmMzUwNywgMHg0ZjAxM2Vm
YiksIFRPQk4oMHgxYjExMmM0YiwgMHhhYTM4YzRhMiksCisgICAgICAgICAgIFRPQk4oMHhhMTQw
NmE2MCwgMHg5YmE2NDM0NSksIFRPQk4oMHhlNTNjYmEzMywgMHg2OTkzYzgwYil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDQ1NDY2MDYzLCAweGRlZDQwZDIzKSwgVE9CTigweDNkNWYxZjRkLCAweDU0
OTA4ZTI1KSwKKyAgICAgICAgICAgVE9CTigweDllYmVmZTYyLCAweDQwM2MzYzMxKSwgVE9CTigw
eDI3NGVhMGI1LCAweDA2NzJhNjI0KX0sCisgICAgICAgICAge1RPQk4oMHhmZjgxOGQ5OSwgMHg0
NTFkMWI3MSksIFRPQk4oMHg4MGU4MjY0MywgMHg4Zjc5Y2Y3OSksCisgICAgICAgICAgIFRPQk4o
MHhhMTY1ZGYxMywgMHg3M2NlMzdmNSksIFRPQk4oMHhhNzQ0ZWY0ZiwgMHhmZTNhMjFmZCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDczZjFlN2Y1LCAweGNmNTUxMzk2KSwgVE9CTigweGM2MTY4OThl
LCAweDg2OGM2NzZiKSwKKyAgICAgICAgICAgVE9CTigweDY3MWMyOGM3LCAweDhjNDQyYzM2KSwg
VE9CTigweGNmZTVlNTU4LCAweDVlMGEzMTdkKX0sCisgICAgICAgICAge1RPQk4oMHgxMjQyZDgx
OCwgMHg3MDUxZjQ3NiksIFRPQk4oMHg1NmZhZDJhNiwgMHgxNGYwMzQ0MiksCisgICAgICAgICAg
IFRPQk4oMHgyNjIwNjhiYywgMHgwYTQ0ZDBmNiksIFRPQk4oMHhkZmEyY2Q2ZSwgMHhjZTZlZGY0
ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDBmNDM4MTNhLCAweGQxNWQxNTE3KSwgVE9CTigweDYx
MjE0Y2IyLCAweDM3N2Q0NGY1KSwKKyAgICAgICAgICAgVE9CTigweGQzOTlhYTI5LCAweGM2Mzli
MzVmKSwgVE9CTigweDQyMTM2ZDcxLCAweDU0YzUxYzE5KX0sCisgICAgICAgICAge1RPQk4oMHg5
Nzc0NzExYiwgMHgwODQxNzIyMSksIFRPQk4oMHgwYTU1NDZiMywgMHg1MjU0NWE1NyksCisgICAg
ICAgICAgIFRPQk4oMHg4MDYyNGM0MSwgMHgxMTUwNTgyZCksIFRPQk4oMHg5ZWM1YzQxOCwgMHhm
YmM1NTViYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDJjODdkY2FkLCAweDc3MTg0OWYxKSwgVE9C
TigweGIwYzkzMmM1LCAweDAxZDdiZjZmKSwKKyAgICAgICAgICAgVE9CTigweDZhYTVjZDNlLCAw
eDg5MTE2ZWIyKSwgVE9CTigweGQzNzhjMjVhLCAweDUxY2E3YmQzKX0sCisgICAgICAgICAge1RP
Qk4oMHhjNjEyYTBkYSwgMHg5ZTZlM2UzMSksIFRPQk4oMHgwNDE3YTU0ZCwgMHhiNjhhZDVkMCks
CisgICAgICAgICAgIFRPQk4oMHgwMDQ1MWU0YSwgMHgyMmM2ZWRiOCksIFRPQk4oMHg5ZmJmZTAx
OSwgMHhiNDI4MjdjZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDJmYTkyNTA1LCAweGJhOTM4NGEy
KSwgVE9CTigweDIxYjg1OTZlLCAweDY0YWQ2OWMxKSwKKyAgICAgICAgICAgVE9CTigweDhmNGZj
YzQ5LCAweDk4M2IzNWE2KSwgVE9CTigweGRlMDkzNzYwLCAweDcyNzU0NjcyKX0sCisgICAgICAg
ICAge1RPQk4oMHgyZjE0Y2NjOCwgMHhmN2JmZmU2ZCksIFRPQk4oMHgyNzU2NmJmZiwgMHg1ZDk0
MjYzZCksCisgICAgICAgICAgIFRPQk4oMHhiNWI0ZTljNiwgMHgyZGYzZWMzMCksIFRPQk4oMHg5
NGYxZDdkNSwgMHgzZTZlYTZiYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDk3Yjc4NTFhLCAweGFh
Y2E1ZTliKSwgVE9CTigweDUxOGFhNTIxLCAweDU2NzEzYjk3KSwKKyAgICAgICAgICAgVE9CTigw
eDMzNTdlOGM3LCAweDE1MGE2MWY2KSwgVE9CTigweDc4NDJlN2UyLCAweGVjMmMyYjY5KX0sCisg
ICAgICAgICAge1RPQk4oMHg4ZGZmYWY2NSwgMHg2ODY4YTU0OCksIFRPQk4oMHhkOTYzYmQ4Miwg
MHhlMDY4ZmM4MSksCisgICAgICAgICAgIFRPQk4oMHg2NGRhNWM4YiwgMHg2NTkxNzczMyksIFRP
Qk4oMHg5MjcwOTBmZiwgMHg3YjI0NzMyOCl9fX0sCisgICAgICAgIHt7e1RPQk4oMHgyMTRiYzlh
NywgMHhkMjk4YzI0MSksIFRPQk4oMHhlM2I2OTdiYSwgMHg1NjgwN2NmZCksCisgICAgICAgICAg
IFRPQk4oMHhlZjFjNzgwMiwgMHg0NTY0ZWFkYiksIFRPQk4oMHhkZGU4Y2RjZiwgMHhiNDgxNDlj
NSl9LAorICAgICAgICAgIHtUT0JOKDB4OTQ2YmYwYTcsIDB4NWE0ZDI2MDQpLCBUT0JOKDB4Mjcx
NTRkN2YsIDB4NmMxNTM4YWYpLAorICAgICAgICAgICBUT0JOKDB4OTVjYzkyMzAsIDB4ZGU1YjFm
Y2MpLCBUT0JOKDB4ZDg4NTE5ZTksIDB4NjY4NjRmODIpfX0sCisgICAgICAgICB7e1RPQk4oMHhi
ODI4ZGQxYSwgMHg3Y2IxMjgyYyksIFRPQk4oMHhhMDhkNzYyNiwgMHhiZTQ2OTczYSksCisgICAg
ICAgICAgIFRPQk4oMHg2YmFmOGQ0MCwgMHhlNzA4ZDZiMiksIFRPQk4oMHg3MjU3MWZhMSwgMHg0
ZGFlYjNmMyl9LAorICAgICAgICAgIHtUT0JOKDB4ODViMTczMmYsIDB4ZjIyZGZkOTgpLCBUT0JO
KDB4ODdhYjAxYTcsIDB4MDA4NzEwOGQpLAorICAgICAgICAgICBUT0JOKDB4YWFhYWZlYTgsIDB4
NTk4ODIwN2EpLCBUT0JOKDB4Y2NjODMyZjgsIDB4NjlmMDA3NTUpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg5NjRkOTUwZSwgMHgzNmZmM2JmMCksIFRPQk4oMHg4YWQyMGY2ZiwgMHhmMGIzNDYzOCks
CisgICAgICAgICAgIFRPQk4oMHg0ZDkxNzdiMywgMHhiNWQ3NTg1ZiksIFRPQk4oMHhjZjgzOTc2
MCwgMHhlZjNmMDE5Zil9LAorICAgICAgICAgIHtUT0JOKDB4NTgyZmM1YjMsIDB4ODI4OGM1NDUp
LCBUT0JOKDB4MmY4ZTRlOWIsIDB4MTMxMTZiZDEpLAorICAgICAgICAgICBUT0JOKDB4ZjkxZTFi
MmYsIDB4MzMyMTIwZWYpLCBUT0JOKDB4Y2Y1Njg3MjQsIDB4MmExN2RkMjMpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg0ODhmMTE4NSwgMHhjYThkOWQxYSksIFRPQk4oMHhhZGYyYzc3ZCwgMHhkOTg3
ZGVkMiksCisgICAgICAgICAgIFRPQk4oMHg1ZjMwMzlmMCwgMHg2MGM0NjEyNCksIFRPQk4oMHhl
NWQ3MGI3NSwgMHg3MWUwOTVmNCl9LAorICAgICAgICAgIHtUT0JOKDB4ODJkNTg2NTAsIDB4NjI2
MGU3MGYpLCBUT0JOKDB4MzlkNzVlYTcsIDB4Zjc1MGQxMDUpLAorICAgICAgICAgICBUT0JOKDB4
OGNmM2QwYjEsIDB4NzViYWMzNjQpLCBUT0JOKDB4ZjNhNzU2NGQsIDB4MjFkMDEzMjkpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgxODJmMDRjZCwgMHgyZjUyZDJhNyksIFRPQk4oMHg0ZmRlMTQ5YSwg
MHhlMmRmNTY1YSksCisgICAgICAgICAgIFRPQk4oMHhiODBjNWVlYywgMHhhNzlmYjJmNyksIFRP
Qk4oMHhhYjQ5MWQ3YiwgMHgyMmRkYzg5Nyl9LAorICAgICAgICAgIHtUT0JOKDB4OTlkNzZjMTgs
IDB4YzYzMTJjN2YpLCBUT0JOKDB4Y2EwZDVmM2QsIDB4NmFhNDFhNTcpLAorICAgICAgICAgICBU
T0JOKDB4NzEyMDczMjUsIDB4ZDE1MzYzYTApLCBUT0JOKDB4ZTgyYWEyNjUsIDB4YmViMjUyYzIp
fX0sCisgICAgICAgICB7e1RPQk4oMHg5NGFiNDcwMCwgMHhlYzMxMjhjMiksIFRPQk4oMHg2Yzc2
ZDg2MiwgMHg4ZTM4M2Y0OSksCisgICAgICAgICAgIFRPQk4oMHhkYzM2YjE1MCwgMHhjMDMwMjRl
YiksIFRPQk4oMHhmYjQzOTQ3NywgMHg1M2RhYWM2OSl9LAorICAgICAgICAgIHtUT0JOKDB4ZmM2
ODc2NGEsIDB4OGRjNzk2MjMpLCBUT0JOKDB4NWI4Njk5NWQsIDB4YjQ0MGZiYjIpLAorICAgICAg
ICAgICBUT0JOKDB4ZDY2ODc5YmYsIDB4Y2NjNWVlMGQpLCBUT0JOKDB4MDUyMjg5NDIsIDB4OTVh
YThiZDMpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNTFhNDBhNSwgMHgxZTZhNzVjMSksIFRPQk4o
MHgyNDMyN2M3NiwgMHgwZWE3ZDgxNyksCisgICAgICAgICAgIFRPQk4oMHgwNjYzMDE4MiwgMHgw
Nzc3NDU5NyksIFRPQk4oMHhkNmZkYmVjMywgMHg5N2ZhNzE2NCl9LAorICAgICAgICAgIHtUT0JO
KDB4MjBjOTlkZmIsIDB4MTNjOTBmNDgpLCBUT0JOKDB4ZDZhYzUyNzMsIDB4Njg2ZWYyNjMpLAor
ICAgICAgICAgICBUT0JOKDB4YzZhNTBiZGMsIDB4ZmVmNjRlZWIpLCBUT0JOKDB4Y2Q4N2IyODEs
IDB4ODZmZGZjMzIpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMjRhYTQzZSwgMHgzZmNkM2VmYyks
IFRPQk4oMHhkZDI2YzAzNCwgMHhiODA4OGU5YSksCisgICAgICAgICAgIFRPQk4oMHhhNWVmNGRj
OSwgMHhiZDNkNDZlYSksIFRPQk4oMHhhMmY5OWQ1OCwgMHg4YTRjNmE2Zil9LAorICAgICAgICAg
IHtUT0JOKDB4ZGRhYmQzNTUsIDB4MmYxZGE0NmMpLCBUT0JOKDB4NzJjM2Y4Y2UsIDB4MWFmYWNk
ZDEpLAorICAgICAgICAgICBUT0JOKDB4ZDkwYzRlZWUsIDB4OTJkNDA1NzgpLCBUT0JOKDB4ZDI4
YmI0MWYsIDB4Y2E2MjNiOTQpfX0sCisgICAgICAgICB7e1RPQk4oMHg1MGZjMDcxMSwgMHg3NDVl
ZGMxMSksIFRPQk4oMHg5ZGQ5YWQ3ZCwgMHgzZGM4NzU1OCksCisgICAgICAgICAgIFRPQk4oMHhj
ZTY5MzFmYiwgMHhiNDlkMWU2NCksIFRPQk4oMHg2Yzc3YTBhMiwgMHhjOThiZDBmOSl9LAorICAg
ICAgICAgIHtUT0JOKDB4NjJiOWE2MjksIDB4NmJhZjdjYjEpLCBUT0JOKDB4Y2YwNjVmOTEsIDB4
Y2NmNzJkMjIpLAorICAgICAgICAgICBUT0JOKDB4NzIwM2NjZTksIDB4Nzk2MzkwNzEpLCBUT0JO
KDB4MDlhZTQ4ODUsIDB4ZjljYjczMmYpfX0sCisgICAgICAgICB7e1RPQk4oMHg1ZTdjM2JlYywg
MHhlZTgzMTRmMyksIFRPQk4oMHgxYzA2OGFlZCwgMHhkYmVhMjk4ZiksCisgICAgICAgICAgIFRP
Qk4oMHgwOGQzODFmMSwgMHg3YzgwYWNlYyksIFRPQk4oMHgwM2I1NmJlOCwgMHhlMzMwNDk1Yil9
LAorICAgICAgICAgIHtUT0JOKDB4YWVmZmI4ZjIsIDB4OTIyMjg4MmQpLCBUT0JOKDB4OTVmZjM4
ZjYsIDB4YzRhZjhiZjcpLAorICAgICAgICAgICBUT0JOKDB4NTBlMzJkMzUsIDB4MWZjNTdkOGMp
LCBUT0JOKDB4NjYzNWJlNTIsIDB4MTdiNDQ0ZjApfX0sCisgICAgICAgICB7e1RPQk4oMHgwNGQx
NTI3NiwgMHhhNTE3NzkwMCksIFRPQk4oMHg0ZTFkYmI0NywgMHhmNjg1ODc1MiksCisgICAgICAg
ICAgIFRPQk4oMHg1YjQ3NTYyMiwgMHhjNjE1Nzk2YyksIFRPQk4oMHhhNmZhMDM4NywgMHg2OTE4
NjdiZil9LAorICAgICAgICAgIHtUT0JOKDB4ZWQ3ZjVkNTYsIDB4Mjg0NGM2ZDApLCBUT0JOKDB4
YzYzM2NmOWIsIDB4MDNhMjQ3N2QpLAorICAgICAgICAgICBUT0JOKDB4ZjZiZTVjNDAsIDB4MmQz
NzIxZDYpLCBUT0JOKDB4YWYzMTJlYjcsIDB4ZTlmZDY4ZTYpfX0sCisgICAgICAgICB7e1RPQk4o
MHgyNDI3OTJkMiwgMHhlNzQxN2NlMSksIFRPQk4oMHhmZjQyYmM3MSwgMHg5NzBlZTdmNSksCisg
ICAgICAgICAgIFRPQk4oMHgxZmY0ZGM2ZCwgMHg1YzY3YTQxZSksIFRPQk4oMHg3NzcwOWI3Yiwg
MHgyMDg4MmE1OCl9LAorICAgICAgICAgIHtUT0JOKDB4MzU1NDczMWQsIDB4YmUyMTdmMmMpLCBU
T0JOKDB4MmFmMmE4Y2QsIDB4NWJiNzIxNzcpLAorICAgICAgICAgICBUT0JOKDB4NThlZWU3Njks
IDB4NTkxZGQwNTkpLCBUT0JOKDB4YmIyOTMwYzksIDB4NGJiYTY0NzcpfX0sCisgICAgICAgICB7
e1RPQk4oMHg4NjNlZTA0NywgMHg3ZDkzMGNmYyksIFRPQk4oMHg0YzI2MmFkMSwgMHgzOTZmZDFm
NCksCisgICAgICAgICAgIFRPQk4oMHhmNDc2NWJjOCwgMHgwMzlhZjdlMSksIFRPQk4oMHgyNTE5
ODM0YiwgMHg1YmExMDRmNil9LAorICAgICAgICAgIHtUT0JOKDB4N2NkNjFiNGMsIDB4ZDEwNWY5
NjEpLCBUT0JOKDB4YTU0MTVkYTUsIDB4ZDYzYmNhNTQpLAorICAgICAgICAgICBUT0JOKDB4Nzc4
MjgwYTAsIDB4ODhhMWYxN2MpLCBUT0JOKDB4YzQ5Njg5NDksIDB4MjMyOTUxMmMpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgxNzRhOTEyNiwgMHhjZWNkYWE3YSksIFRPQk4oMHhmYzhjN2UwZSwgMHgw
YjEzMjQ3YiksCisgICAgICAgICAgIFRPQk4oMHgyOWMxMTBkMiwgMHgzNDg0YzFjNCksIFRPQk4o
MHhmOGViODc1NywgMHg4MzFkZmMzYil9LAorICAgICAgICAgIHtUT0JOKDB4MDIyZjAyMTIsIDB4
YzAwNjc0NTIpLCBUT0JOKDB4M2Y2ZjY5ZWUsIDB4N2I5YjkyNmMpLAorICAgICAgICAgICBUT0JO
KDB4MDkwMzJkYTAsIDB4ZWY0MmRhZjQpLCBUT0JOKDB4NzlmMDBhZGUsIDB4ODNmODBkZTQpfX0s
CisgICAgICAgICB7e1RPQk4oMHg2MjEwZGI3MSwgMHg4MTIzNmM5NyksIFRPQk4oMHg3NGY3Njg1
YiwgMHgzZWUwNzgxZiksCisgICAgICAgICAgIFRPQk4oMHg0ZGY3ZGE3YiwgMHhhM2U0MTM3Miks
IFRPQk4oMHgyYWFlMzhiMSwgMHhiMWExNTUzZSl9LAorICAgICAgICAgIHtUT0JOKDB4MTY4OGUy
MjIsIDB4ZjZkZDlkMWIpLCBUT0JOKDB4NTc2OTU0NDgsIDB4NWI4YjY0ODcpLAorICAgICAgICAg
ICBUT0JOKDB4NDc4ZDIxMjcsIDB4NGIyZWRlYWEpLCBUT0JOKDB4YjI4MThmYTUsIDB4MWU4NTk1
NmEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxZTZhZGRkYSwgMHhmMTc2ZjJjMCksIFRPQk4oMHgw
MWNhNDYwNCwgMHhlMjU3MjY1OCksCisgICAgICAgICAgIFRPQk4oMHgwYTQwNGRlZCwgMHg4NTM0
MmZmYiksIFRPQk4oMHg4Y2Y2MGY5NiwgMHg0NDE4MzhkNil9LAorICAgICAgICAgIHtUT0JOKDB4
OWJiYzY5MWMsIDB4YzkwNzFjNGEpLCBUT0JOKDB4ZmQ1ODg3NDQsIDB4MzQ0NDI4MDMpLAorICAg
ICAgICAgICBUT0JOKDB4OTcxMDFjODUsIDB4ODA5YzBkODEpLCBUT0JOKDB4YTdmYjc1NGMsIDB4
OGM0NTZmN2YpfX0sCisgICAgICAgICB7e1RPQk4oMHhjOTVmM2M1YywgMHhkNTE4MDVlMSksIFRP
Qk4oMHhhYjRjY2QzOSwgMHhiMjk5ZGNhOCksCisgICAgICAgICAgIFRPQk4oMHgzZTAzZDIwYiwg
MHg0N2VhZjUwMCksIFRPQk4oMHhmYTMxNjVjMSwgMHhkN2I4MDg5Myl9LAorICAgICAgICAgIHtU
T0JOKDB4MDA1ZThiNTQsIDB4ZTE2MGU1NTIpLCBUT0JOKDB4ZGM0OTcyYmEsIDB4OTAxOWQxMWYp
LAorICAgICAgICAgICBUT0JOKDB4MjFhNjk3MmUsIDB4MGM5YTRhN2EpLCBUT0JOKDB4YTUyYzI1
OGYsIDB4Mzc4NDBmZDcpfX0sCisgICAgICAgICB7e1RPQk4oMHhmODU1OWZmNCwgMHhjMWU5OWQ4
MSksIFRPQk4oMHgwOGUxYTdkNiwgMHhhM2M2MTdjMCksCisgICAgICAgICAgIFRPQk4oMHhiMzk4
ZmQ0MywgMHgyNDhjNmJhNyksIFRPQk4oMHg2ZmZlZGQ5MSwgMHhkMTI4Mzc5NCl9LAorICAgICAg
ICAgIHtUT0JOKDB4OGE2YTU5ZDIsIDB4ZDYyOWQyMDgpLCBUT0JOKDB4YTlkMTQxZDUsIDB4MzQ5
MDUzMGUpLAorICAgICAgICAgICBUT0JOKDB4NDJmNmZjMTgsIDB4Mzg1MDU5ODkpLCBUT0JOKDB4
MDliZjI1MGQsIDB4NDc5ZDk0ZWUpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMjNhZDNiMSwgMHhi
MzgyMjc5MCksIFRPQk4oMHg2YzU5MjZjMCwgMHg5M2I4OTcxYyksCisgICAgICAgICAgIFRPQk4o
MHg2MDllZmM3ZSwgMHg3NWY3ZmE2MiksIFRPQk4oMHg0NWQ2NmE2ZCwgMHgxZWMyZDk4OSl9LAor
ICAgICAgICAgIHtUT0JOKDB4NDQyMmQ2NjMsIDB4OTg3ZDI3OTIpLCBUT0JOKDB4NGE3M2NhYWQs
IDB4M2ViMzFkMmIpLAorICAgICAgICAgICBUT0JOKDB4ZjA2YzJhYzEsIDB4YTMyY2I5ZTYpLCBU
T0JOKDB4ZDk0NDVjNWYsIDB4OTFhZWJhODQpfX0sCisgICAgICAgICB7e1RPQk4oMHg2YWY3YTFk
NSwgMHhhZjcxMDEzZiksIFRPQk4oMHhlNjgyMTZlNSwgMHgwYmVkYzk0NiksCisgICAgICAgICAg
IFRPQk4oMHhmNGNiYTMwYiwgMHhkMjczNzBhMCksIFRPQk4oMHg3OTgxYWZiZiwgMHg4NzA0MjFj
Yyl9LAorICAgICAgICAgIHtUT0JOKDB4MDI0OTZhNjcsIDB4OTQ0OWYwZTEpLCBUT0JOKDB4ODZj
ZmM0YmUsIDB4MGE0N2VkYWUpLAorICAgICAgICAgICBUT0JOKDB4MzA3M2M5MzYsIDB4YjFmZWNh
MjIpLCBUT0JOKDB4ZjU2OTQ2MTIsIDB4MDNmOGY4ZmIpfX0sCisgICAgICAgICB7e1RPQk4oMHhk
MDYzYjcyMywgMHg5MDE1MTVlYSksIFRPQk4oMHg0YzZjNzdhNSwgMHg3NDljZjAzOCksCisgICAg
ICAgICAgIFRPQk4oMHg2MzYxZTM2MCwgMHhhYjllNTA1OSksIFRPQk4oMHg1OTZjZjE3MSwgMHhh
NzZhMzdjMCl9LAorICAgICAgICAgIHtUT0JOKDB4ODAwZjUzZmEsIDB4NjUzMGFlN2EpLCBUT0JO
KDB4MGY1ZTYzMWUsIDB4MDc5MmE3YTYpLAorICAgICAgICAgICBUT0JOKDB4NWNjMjljMjQsIDB4
ZWZkYjgxYzkpLCBUT0JOKDB4YTI2OWU4NjgsIDB4M2Y5YzQwYmEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhlYzE0ZjllMSwgMHgyY2I3MTkxZSksIFRPQk4oMHg3OGVhMWJkOCwgMHhlNWIwOGVhNiks
CisgICAgICAgICAgIFRPQk4oMHgzYzY1YWE5YiwgMHg0NjMzMmJiOSksIFRPQk4oMHg4NGNjMjJi
MywgMHhiZjgwY2UyNSl9LAorICAgICAgICAgIHtUT0JOKDB4MDA5OGU5ZTksIDB4ZDQ5ZDViZjEp
LCBUT0JOKDB4Y2Q0ZWMxYzYsIDB4MTkwODdkYTQpLAorICAgICAgICAgICBUT0JOKDB4M2M5ZDA3
YzUsIDB4YWVmNmUzNTcpLCBUT0JOKDB4ODM5YTAyNjgsIDB4OWY4ZjY0YjgpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhjNWU5ZWI2MiwgMHhjNmQ4NjA3ZiksIFRPQk4oMHg3NTk2ODlmNSwgMHg2YWE5
OTVlNCksCisgICAgICAgICAgIFRPQk4oMHg3MDQ2NDY2OSwgMHhiYmI0ODMxNyksIFRPQk4oMHg5
MjE0NzRiZiwgMHhlNDAyNDE3ZCl9LAorICAgICAgICAgIHtUT0JOKDB4Y2FiZTEzNWIsIDB4MmEz
NTRjOGMpLCBUT0JOKDB4ZDUxZTUyZDIsIDB4ODEyZmE0YjUpLAorICAgICAgICAgICBUT0JOKDB4
ZWM3NDEwOTYsIDB4NTMzMTFmZTgpLCBUT0JOKDB4NGY3NzQ1MzUsIDB4Yjg2NDUxNGIpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhiY2FkZDY3MSwgMHg1YmRlNDhmOCksIFRPQk4oMHhjOTcwMzg3Mywg
MHgyMTg5YmM3ZCksCisgICAgICAgICAgIFRPQk4oMHg1ZDQ1Mjk5ZSwgMHhjNzA5ZWU4YSksIFRP
Qk4oMHhkMTI4N2VlMiwgMHg4NDVhYWZmOCl9LAorICAgICAgICAgIHtUT0JOKDB4N2QxZjg4NzQs
IDB4ZGIxZGJmMWYpLCBUT0JOKDB4ZWE0NjU4OGIsIDB4OTkwYzg4ZDYpLAorICAgICAgICAgICBU
T0JOKDB4NjBiYTY0OWEsIDB4ODQzNjgzMTMpLCBUT0JOKDB4ZDVmZGNiY2UsIDB4NjBkNTQzYWUp
fX0sCisgICAgICAgICB7e1RPQk4oMHg5MGI0NmQ0MywgMHg4MTBkNWFiMCksIFRPQk4oMHg2NzM5
ZDhmOSwgMHgwNGQ3ZTVjYyksCisgICAgICAgICAgIFRPQk4oMHgwMjFjMWE1OCwgMHgwZDMzN2Mz
MyksIFRPQk4oMHgwMGE2MTE2MiwgMHg2OGU2N2M0MCl9LAorICAgICAgICAgIHtUT0JOKDB4OTVl
ZjQxM2IsIDB4Mzc5ZjBhMWYpLCBUT0JOKDB4ZmUxMjY2MDUsIDB4ZTllMmFiOTUpLAorICAgICAg
ICAgICBUT0JOKDB4Njc1NzhiODUsIDB4MmY1ZjE5OWMpLCBUT0JOKDB4ZjVjMDAzMjksIDB4MmNi
ODQ5MTMpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNzk1NjQzMCwgMHgzNzU3N2RkOCksIFRPQk4o
MHg4M2I4MmFmNCwgMHgyOWM1ZmU4OCksCisgICAgICAgICAgIFRPQk4oMHg5YzFiZWEyNiwgMHhj
ZGJkYzEzMiksIFRPQk4oMHg1ODlmYTA4NiwgMHg5YzA0MzM5ZSl9LAorICAgICAgICAgIHtUT0JO
KDB4MDMzZTk1MzgsIDB4YjEzNzk5ZGYpLCBUT0JOKDB4ODVmYThiMjEsIDB4ZDI5NWQwMzQpLAor
ICAgICAgICAgICBUT0JOKDB4ZGYxN2Y3M2YsIDB4YmQ5ZGRjY2EpLCBUT0JOKDB4ZjMyYmQxMjIs
IDB4ZGRiNjYzMzQpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NWVmODhhNywgMHg4NThiMDQ0Yyks
IFRPQk4oMHgxZjBkNjljMiwgMHg1YWE5ZTM5NyksCisgICAgICAgICAgIFRPQk4oMHg1NWZkOWNj
MywgMHg0MGQ4NTU1OSksIFRPQk4oMHhjNzc0ZGY3MiwgMHg3Nzg1ZGRiMil9LAorICAgICAgICAg
IHtUT0JOKDB4NWRjY2U5ZjYsIDB4ZDNiZDJlMWMpLCBUT0JOKDB4ZWIzMGRhMjAsIDB4YTg1ZGZl
ZDApLAorICAgICAgICAgICBUT0JOKDB4NWVkN2Y1YmIsIDB4ZDNlZDA5YzQpLCBUT0JOKDB4N2Q0
MmEzNWMsIDB4ODJhOWMxYmQpfX0sCisgICAgICAgICB7e1RPQk4oMHhjZjNkZTk5NSwgMHg5ODkw
MjcyZCksIFRPQk4oMHg3NWYzNDMyYSwgMHgzZTcxM2ExMCksCisgICAgICAgICAgIFRPQk4oMHg1
ZTEzNDc5ZiwgMHhlMjgyMjdiOCksIFRPQk4oMHhiODU2MWVhOSwgMHhmZWZhY2RjOCl9LAorICAg
ICAgICAgIHtUT0JOKDB4YTZhMjk3YTAsIDB4ODMzMmFhZmQpLCBUT0JOKDB4OWIwZDhiYjUsIDB4
NzM4MDliNjIpLAorICAgICAgICAgICBUT0JOKDB4ZDJmYTFjZmQsIDB4MGM2MzAzNmYpLCBUT0JO
KDB4N2ExNmViNTUsIDB4YmQ2NGJkYTgpfX0sCisgICAgICAgICB7e1RPQk4oMHgzZjVjZjVmNiwg
MHg3OGU2MmRkYyksIFRPQk4oMHgyMjY3YzQ1NCwgMHgwN2ZkNzUyYiksCisgICAgICAgICAgIFRP
Qk4oMHg1ZTM2MWI2YiwgMHg1ZTQzN2JiZSksIFRPQk4oMHg5NWM1OTUwMSwgMHg4MzU0ZTA3NSl9
LAorICAgICAgICAgIHtUT0JOKDB4ZWM3MjVmODUsIDB4ZjJiMjU0ZDkpLCBUT0JOKDB4ODQ0YjYx
N2QsIDB4MmNiNTJiNGUpLAorICAgICAgICAgICBUT0JOKDB4ZWQ4NTU0ZjUsIDB4Y2Y0MjVmYjUp
LCBUT0JOKDB4YWI2NzcwM2UsIDB4MmFmOWYzMTIpfX0sCisgICAgICAgICB7e1RPQk4oMHg0Y2Mz
NGVjMSwgMHgzY2Y0ODI4MyksIFRPQk4oMHhiMDlkYWEyNSwgMHg5YzhhNzA1ZSksCisgICAgICAg
ICAgIFRPQk4oMHhkMWU5ZDBkMCwgMHg1YjdkNGY4NCksIFRPQk4oMHg0ZGY2ZWY2NCwgMHhkYjM4
OTI5ZCl9LAorICAgICAgICAgIHtUT0JOKDB4ZTE2YjA3NjMsIDB4YWEyMWJhNDYpLCBUT0JOKDB4
YzZiMWQxNzgsIDB4YTI5M2Y4ZmIpLAorICAgICAgICAgICBUT0JOKDB4MGZmNWI2MDIsIDB4ZDUy
MGFhYmYpLCBUT0JOKDB4OTRkNjcxYmQsIDB4YzMzOTM5N2EpfX0sCisgICAgICAgICB7e1RPQk4o
MHg3YzdkOThjZiwgMHg0ZjU3OTJmYSksIFRPQk4oMHg3YzVlMGQ2NywgMHgxMTIxNTI2MSksCisg
ICAgICAgICAgIFRPQk4oMHg5YjE5YTYzMSwgMHhhN2M1YTZkNCksIFRPQk4oMHhjODUxMWE2Miwg
MHg3YTQ1Mjc0ZCl9LAorICAgICAgICAgIHtUT0JOKDB4MGMxNjYyMWMsIDB4YTVhNjBkOTkpLCBU
T0JOKDB4ZjdmYmFiODgsIDB4Y2Y1ZTQ4Y2IpLAorICAgICAgICAgICBUT0JOKDB4YWIxZTZjYTIs
IDB4ZjdkZGVlMDgpLCBUT0JOKDB4ODNiZDA4Y2UsIDB4ZTc4NjdmM2MpfX0sCisgICAgICAgICB7
e1RPQk4oMHhmN2U0OGU4YSwgMHgyYWMxM2UyNyksIFRPQk4oMHg0NDk0ZjZkZiwgMHg0ZWIxYTlm
NSksCisgICAgICAgICAgIFRPQk4oMHhlZGJmODRlYiwgMHg5ODFmMGE2MiksIFRPQk4oMHg0OWJh
ZGMzMiwgMHg1MzY0MzhmMCl9LAorICAgICAgICAgIHtUT0JOKDB4NTBiZWE1NDEsIDB4MDA0Zjc1
NzEpLCBUT0JOKDB4YmFjNjdkMTAsIDB4ZGYxYzk0ZWUpLAorICAgICAgICAgICBUT0JOKDB4MjUz
ZDczYTEsIDB4YjcyN2JjMzEpLCBUT0JOKDB4YjNkMDFjZjIsIDB4MzA2ODZlMjgpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg1MWI3N2IxYiwgMHg1NWZkMGI4YiksIFRPQk4oMHhhMDk5ZDE4MywgMHhm
ZWVjMzE3MyksCisgICAgICAgICAgIFRPQk4oMHgyMDJiMWZiNywgMHg2NzBlNzJiNyksIFRPQk4o
MHhhZGM4OGIzMywgMHhhOGUxNjM1Zil9LAorICAgICAgICAgIHtUT0JOKDB4MzRlODIxNmEsIDB4
Zjk4OWQ5MDUpLCBUT0JOKDB4YzJlNjhkMjAsIDB4MjliNThkMDEpLAorICAgICAgICAgICBUT0JO
KDB4MTFmODFjOTIsIDB4NmZlNTVhOTMpLCBUT0JOKDB4MTVmMTQ2MmEsIDB4OGYyOTZmNDApfX0s
CisgICAgICAgICB7e1RPQk4oMHgxOTE1ZDM3NSwgMHhlYTNkNjJmMiksIFRPQk4oMHhhMTc3NjVh
MywgMHgwMWM4OTc3ZCksCisgICAgICAgICAgIFRPQk4oMHg3NTU5NzEwYSwgMHhlNDdiMjZmNiks
IFRPQk4oMHhlMGJkMjljOCwgMHg1MzUwNzdhNSl9LAorICAgICAgICAgIHtUT0JOKDB4NjE1Zjk3
NmQsIDB4MDhkODQ4NTgpLCBUT0JOKDB4MzcwZGZlODUsIDB4NjljZWQ1YzEpLAorICAgICAgICAg
ICBUT0JOKDB4YmJjNzUwM2MsIDB4YTczNGZhNTYpLCBUT0JOKDB4ZmJiOWYxZWMsIDB4OTFhYzQ1
NzQpfX0sCisgICAgICAgICB7e1RPQk4oMHg5NWQ3ZWM1MywgMHgwNjBkZDdlZiksIFRPQk4oMHhl
ZWYyZGFjZCwgMHg2ZTY1Nzk3OSksCisgICAgICAgICAgIFRPQk4oMHg1NDUxMWFmMywgMHhlMmEw
ODIzNSksIFRPQk4oMHgxZTMyNGFhNCwgMHgxZjRhZWEzZCl9LAorICAgICAgICAgIHtUT0JOKDB4
NTUwZTdlNzEsIDB4ZTZlNjc2NzEpLCBUT0JOKDB4YmNjZDUxOTAsIDB4YmY1MmZhZjcpLAorICAg
ICAgICAgICBUT0JOKDB4Zjg4MGQzMTYsIDB4MjIzY2M2MmEpLCBUT0JOKDB4MGQ0MDJjN2UsIDB4
MmIzMmViNWQpfX0sCisgICAgICAgICB7e1RPQk4oMHhhNDBiYzAzOSwgMHgzMDZhNWEzYiksIFRP
Qk4oMHg0ZTBhNDFmZCwgMHg5Njc4M2ExYiksCisgICAgICAgICAgIFRPQk4oMHhhMWU4ZDM5YSwg
MHgwMjUzY2RkNCksIFRPQk4oMHg2NDgwYmUyNiwgMHhjNzM4ODYzOCl9LAorICAgICAgICAgIHtU
T0JOKDB4ZWUzNjVlMWQsIDB4MjI4NWYzODIpLCBUT0JOKDB4MTg4ZDhkOGYsIDB4ZWMwYjVjMzYp
LAorICAgICAgICAgICBUT0JOKDB4MzRlZjFhNDgsIDB4MWYwZjRkODIpLCBUT0JOKDB4MWE4ZjQz
ZTEsIDB4YTQ4N2QyOWEpfX0sCisgICAgICAgICB7e1RPQk4oMHg4MTY4MjI2ZCwgMHg3N2FlZmIz
YSksIFRPQk4oMHhmNjlhNzUxZSwgMHgxZTcyYzI1MyksCisgICAgICAgICAgIFRPQk4oMHg4ZTA0
MzU5YSwgMHhlOTU5NGRmMSksIFRPQk4oMHg0NzVmZmQ3ZCwgMHhkMTRjMDQ2Nyl9LAorICAgICAg
ICAgIHtUT0JOKDB4YjVhMmMyYjEsIDB4Mzg0NGU5NWMpLCBUT0JOKDB4ODVjYWY2NDcsIDB4ZGQx
MmVmOTQpLAorICAgICAgICAgICBUT0JOKDB4MWVjZDJhOWYsIDB4ZjEwNjNkMDApLCBUT0JOKDB4
MWRkMmUyMjksIDB4MjM4NDMzMTEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzOGYwZTA5ZCwgMHg3
M2QxNzI0NCksIFRPQk4oMHgzZWRlNzc0NiwgMHg4ZmM2NTNmMSksCisgICAgICAgICAgIFRPQk4o
MHhhZTQ0NTlmNSwgMHhkYzIwZTIxYyksIFRPQk4oMHgwMGRiMmZmYSwgMHg2YTg1OTllYSl9LAor
ICAgICAgICAgIHtUT0JOKDB4MTE2ODJjMzksIDB4MzBjZmQ5MDUpLCBUT0JOKDB4NDkzNGQwNzQs
IDB4YTVjMTEyYTYpLAorICAgICAgICAgICBUT0JOKDB4YmRmMDYzYzUsIDB4NTY4YmZlOTUpLCBU
T0JOKDB4Nzc5YTQ0MGEsIDB4MDE2YzQ0MWEpfX0sCisgICAgICAgICB7e1RPQk4oMHgwYzIzZjIx
OCwgMHg5N2Q2ZmJkYyksIFRPQk4oMHhkM2E1Y2Q4NywgMHhlMDc3NmFhYyksCisgICAgICAgICAg
IFRPQk4oMHhjZWUzN2Y3MiwgMHhkNzEyZThkYiksIFRPQk4oMHhmYjI4YzcwZCwgMHgyNmY3NGU4
ZCl9LAorICAgICAgICAgIHtUT0JOKDB4ZmZlMGM3MjgsIDB4YjYxMzAxYTApLCBUT0JOKDB4YTYy
ODIxNjgsIDB4ZDM3MjQzNTQpLAorICAgICAgICAgICBUT0JOKDB4N2ZmNGNiMDAsIDB4NzY4ZmZl
ZGMpLCBUT0JOKDB4YzUxYjMwODgsIDB4MDNiMDJkZTkpfX0sCisgICAgICAgICB7e1RPQk4oMHhh
NWE4MTQ3YywgMHgzOTAyZGRhNSksIFRPQk4oMHgzNWQyZjcwNiwgMHhmZTY5NzNiNCksCisgICAg
ICAgICAgIFRPQk4oMHg1YWMyZWZjZiwgMHhjMjU3NDU3ZSksIFRPQk4oMHg5MzNmNDhkNCwgMHg4
NzAwNjExYil9LAorICAgICAgICAgIHtUT0JOKDB4YzM2NWFmODgsIDB4NDkxMmJlYjIpLCBUT0JO
KDB4N2Y1YTRkZTYsIDB4MTYyZWRmOTQpLAorICAgICAgICAgICBUT0JOKDB4YzY0NmJhN2MsIDB4
MGMzMmYzNGIpLCBUT0JOKDB4NjMyYzZhZjMsIDB4YjIwOTEwNzQpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg1OGQ0ZjJlMywgMHg3NTNlNDNhOSksIFRPQk4oMHg3MGUxZDIxNywgMHgyNGQ0ZTIzZiks
CisgICAgICAgICAgIFRPQk4oMHhiMjRiZjcyOSwgMHhhZmVkZTZhNiksIFRPQk4oMHg3ZjRhOTRk
OCwgMHg3MTBjOGI2MCl9LAorICAgICAgICAgIHtUT0JOKDB4YWFkOTBhOTYsIDB4OGQ0ZmFhNmEp
LCBUT0JOKDB4ZDllZDBiMzIsIDB4YjA2NmI2OTApLAorICAgICAgICAgICBUT0JOKDB4NTJmY2Qz
N2IsIDB4NzhiNmRiZmQpLCBUT0JOKDB4MGI2NDYxNWUsIDB4OGJkMmI0MzEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgyMjhlMjA0OCwgMHhjZmI5ZmFkNSksIFRPQk4oMHhiZWFhMzg2ZCwgMHgyNDBi
NzZiZCksCisgICAgICAgICAgIFRPQk4oMHgyZDY2ODFjOCwgMHg5MGRhZDdiYyksIFRPQk4oMHgz
ZTU1M2ZjMywgMHgwNmQzOGY1ZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZjI3Y2RiOWIsIDB4OWQ1
Zjk3NTApLCBUT0JOKDB4M2U4NWM1MmEsIDB4ZDI4YzViMGUpLAorICAgICAgICAgICBUT0JOKDB4
MTkwNzk1YWYsIDB4NTI0N2MzOWIpLCBUT0JOKDB4NTQ3ODMxZWIsIDB4YmRkZDY4MjgpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhmMzI3YTIyNywgMHg0YTgyZjQyNCksIFRPQk4oMHgzNjkxOWM3OCwg
MHg3ZTQ3Zjg5ZCksCisgICAgICAgICAgIFRPQk4oMHhlNDc4MzkxOSwgMHg0M2M3MzkyYyksIFRP
Qk4oMHhmMTAxYjlhYSwgMHgyMzE2ZmVmZSl9LAorICAgICAgICAgIHtUT0JOKDB4YmNkYzllOWMs
IDB4MWM1MDA5ZDIpLCBUT0JOKDB4ZmI1NWVhMTMsIDB4OWNkMTgzNDUpLAorICAgICAgICAgICBU
T0JOKDB4ZjViNWUyMzEsIDB4YTNjZTc3YzcpLCBUT0JOKDB4ZGU2YjQ1MjcsIDB4ZDJmMmNiM2Qp
fX0sCisgICAgICAgICB7e1RPQk4oMHgxMGY2YTMzMywgMHg5YmIyNmY1ZiksIFRPQk4oMHgxZTg1
ZGI4ZSwgMHgwNDRkODViNiksCisgICAgICAgICAgIFRPQk4oMHhjMzY5N2EwOCwgMHg5NDE5N2U1
NCksIFRPQk4oMHg2NWUxOGNjMCwgMHhhN2NiNGVhOCl9LAorICAgICAgICAgIHtUT0JOKDB4YTM4
YzRmNTAsIDB4YTQ3MWZlNmUpLCBUT0JOKDB4ZjAzMTc0N2EsIDB4MmYxMzQzOWMpLAorICAgICAg
ICAgICBUT0JOKDB4NTNjNGE2YmEsIDB4YzAwNzMxOGIpLCBUT0JOKDB4YThkYTNlZTUsIDB4MWRl
Y2NiM2QpfX0sCisgICAgICAgICB7e1RPQk4oMHgwNTU1YjMxYywgMHg1NTgyMTZiMSksIFRPQk4o
MHg5MGM3ODEwYywgMHgyZjc5ZTZjMiksCisgICAgICAgICAgIFRPQk4oMHg5YjY2OWY0ZCwgMHhm
ZThlZWQzYyksIFRPQk4oMHg3MDM5OGVjOCwgMHhlMGZhYzEyNil9LAorICAgICAgICAgIHtUT0JO
KDB4YTk2YTQ0OWUsIDB4ZjcwMWIyMzUpLCBUT0JOKDB4MGNlZWNkYjMsIDB4ZWI5NGYzOTUpLAor
ICAgICAgICAgICBUT0JOKDB4Mjg1ZmMzNjgsIDB4ZDBjYjc0MzEpLCBUT0JOKDB4MGQzN2JiNTIs
IDB4MTZhMThjNjQpfX0sCisgICAgICAgICB7e1RPQk4oMHgwNTExMGQzOCwgMHhiODgwZDJkZCks
IFRPQk4oMHhhNjBmMTc3YiwgMHg2NTkzMGQ1NyksCisgICAgICAgICAgIFRPQk4oMHg3ZGEzNGE2
NywgMHhmMzYyMzVmNSksIFRPQk4oMHg0N2Y1ZTE3YywgMHgxODM4MTZiOSl9LAorICAgICAgICAg
IHtUT0JOKDB4Yzc2NjRiNTcsIDB4ZGIzOTRhZjQpLCBUT0JOKDB4MzliYTIxNWQsIDB4NzAzNmY3
ODkpLAorICAgICAgICAgICBUT0JOKDB4NDZkMmNhMGUsIDB4MmYyN2I0NzIpLCBUT0JOKDB4YzQy
NjQ3ZWUsIDB4ZjczYTg0YjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg0NGJjNzU0NSwgMHg2NDQ4
OGYxZCksIFRPQk4oMHhhYTkyMjcwOCwgMHhmNGNmODVkNSksCisgICAgICAgICAgIFRPQk4oMHg3
MjFhMDFkNSwgMHg1M2U0ZGY2MyksIFRPQk4oMHg2NDljMGM1MSwgMHg1ZGI0NmNlZCl9LAorICAg
ICAgICAgIHtUT0JOKDB4NmJmMGQ2NGUsIDB4M2NmZmNiNmMpLCBUT0JOKDB4ZTNiZjkzZmUsIDB4
NTBmNzFkOTYpLAorICAgICAgICAgICBUT0JOKDB4NzUwNDQ1NTgsIDB4YmNjMTk0YTApLCBUT0JO
KDB4MTZhZTMzNzIsIDB4NmFmZGM1NTQpfX0sCisgICAgICAgICB7e1RPQk4oMHhiZmMwMWFkZiwg
MHg1Y2E0OGYzZiksIFRPQk4oMHg2NDM1MmYwNiwgMHhlMjJhOWI4NCksCisgICAgICAgICAgIFRP
Qk4oMHhjZWU1NGRhMSwgMHhjMTA5OWU0YSksIFRPQk4oMHhiYmRhNTRlOCwgMHhmYTFiODljMCl9
LAorICAgICAgICAgIHtUT0JOKDB4MTY2YTNkZjUsIDB4NmY2ZTU1ZmIpLCBUT0JOKDB4MWNhNDRh
MjQsIDB4MjAxNzZmODgpLAorICAgICAgICAgICBUT0JOKDB4OTM2YWZkODgsIDB4ZGZiN2I1ZmYp
LCBUT0JOKDB4ZTM0YzI0MzcsIDB4ODYxMWQ0YTApfX0sCisgICAgICAgICB7e1RPQk4oMHg3ZWZm
YmI3NSwgMHg4NjE0MjEwMyksIFRPQk4oMHg2NzA0YmExYiwgMHgxZjM0ZmM0ZCksCisgICAgICAg
ICAgIFRPQk4oMHg3YzJhNDY4ZiwgMHgxMGMxYjEyMiksIFRPQk4oMHgzNmIzYTYxMCwgMHg4YzZh
YWNlOSl9LAorICAgICAgICAgIHtUT0JOKDB4YWJmY2MwYTcsIDB4NzVhMGQwNTApLCBUT0JOKDB4
MDY2ZjkxOTcsIDB4M2NlMzNlMzIpLAorICAgICAgICAgICBUT0JOKDB4Y2U5MDVlZjQsIDB4Mjlm
ZTA5YmUpLCBUT0JOKDB4ODllZTI1YmEsIDB4YTgzNzYzNTEpfX0sCisgICAgICAgICB7e1RPQk4o
MHgyYTNlZGUyMiwgMHhmZDI5ZGM3NiksIFRPQk4oMHg3ZmQzMmVkOSwgMHgzNmYxNzI2MCksCisg
ICAgICAgICAgIFRPQk4oMHgwY2FkY2Y2OCwgMHgyODRiNDEyNiksIFRPQk4oMHg2MzQyMmYwOCwg
MHhhNzk1MWZjOCl9LAorICAgICAgICAgIHtUT0JOKDB4NTYyYjI0ZjQsIDB4MDgwN2UxOTkpLCBU
T0JOKDB4ZmU5Y2U1ZDEsIDB4MjJhZDQ0OTApLAorICAgICAgICAgICBUT0JOKDB4YzJmNTFiMTAs
IDB4MGRiMmIxYjQpLCBUT0JOKDB4ZWIzNjEzZmYsIDB4ZTQ1NDFkMGQpfX0sCisgICAgICAgICB7
e1RPQk4oMHhiZDJjNGEwNSwgMHgyNjgwODEzYiksIFRPQk4oMHg1MjdhYTU1ZCwgMHg1NjFiMDhk
NiksCisgICAgICAgICAgIFRPQk4oMHhhOWY4YTQwZSwgMHhhNzIwNTU1OCksIFRPQk4oMHhlM2Vl
YTU2ZiwgMHgyNDNkMGJlYyl9LAorICAgICAgICAgIHtUT0JOKDB4N2I4NTM4MTcsIDB4YTBmZjU4
YjMpLCBUT0JOKDB4YjY3ZDNmNjUsIDB4MWE2OWU2MjcpLAorICAgICAgICAgICBUT0JOKDB4MGI3
NmJiYjksIDB4YTg2OWI1ZDYpLCBUT0JOKDB4YTNhZmViODIsIDB4NTQ2NzIzZWQpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg1ZjI0NDE2ZCwgMHgzZTU1NDg5MiksIFRPQk4oMHg4NDEzYjUzZCwgMHg0
MzBlMmE0NSksCisgICAgICAgICAgIFRPQk4oMHg5OWM1NmFlZSwgMHg5MDMyYTJhMCksIFRPQk4o
MHgwOTQzMmJmNiwgMHhlZWMzNjdiMSl9LAorICAgICAgICAgIHtUT0JOKDB4NTUyODUwYzYsIDB4
ZGFmMGVjYzEpLCBUT0JOKDB4NDllYmNlNTUsIDB4NWJjOTIwNDgpLAorICAgICAgICAgICBUT0JO
KDB4ZGZiNjZiYTYsIDB4NTQ4MTEzMDcpLCBUT0JOKDB4MWI4NGY3OTcsIDB4NmYyOTg1OTcpfX0s
CisgICAgICAgICB7e1RPQk4oMHg3OTU5MDQ4MSwgMHg4ZDFkN2EwZCksIFRPQk4oMHhkOWZhYmUw
MywgMHgzYTZmYTU1NiksCisgICAgICAgICAgIFRPQk4oMHhhNDBmOWM1OSwgMHhiYTllNWQzNSks
IFRPQk4oMHhjYjE3NzFjMSwgMHhmNjI0NzU3Nyl9LAorICAgICAgICAgIHtUT0JOKDB4NTQyYTQ3
Y2EsIDB4ZTlhNjMxMmIpLCBUT0JOKDB4YTM0YjM1NjAsIDB4NTUyZGQ4YzUpLAorICAgICAgICAg
ICBUT0JOKDB4ZmRmOTRkZTAsIDB4MGQ3OTQ3MTYpLCBUT0JOKDB4ZDQ2MTI0YTksIDB4OWM2MjMw
OTQpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NmI3NDM1ZCwgMHg2OGFmZThiNCksIFRPQk4oMHgy
N2YyMDU0MCwgMHg2YzBkOGVhMSksCisgICAgICAgICAgIFRPQk4oMHgxMmI3N2UxNCwgMHg3MzE4
Njg5OCksIFRPQk4oMHhkYmMzZGQ0NiwgMHg3NDc5NDkwZil9LAorICAgICAgICAgIHtUT0JOKDB4
OTUxYTk4NDIsIDB4YzAzYjBjMDUpLCBUT0JOKDB4OGIxYjNiYjMsIDB4NzkyMWJjOTYpLAorICAg
ICAgICAgICBUT0JOKDB4YTU3M2IzNDYsIDB4MmIyMDJlMGEpLCBUT0JOKDB4NzdlNDY2NWQsIDB4
NDcyNTRkNTYpfX0sCisgICAgICAgICB7e1RPQk4oMHgwOGI3MGRmYywgMHhkMjNlMzk4NCksIFRP
Qk4oMHhhYjg2ZThiYywgMHhlYmQxNDIzNiksCisgICAgICAgICAgIFRPQk4oMHhhYTNlMDdmOCwg
MHg1NzExNGJhNyksIFRPQk4oMHg1YWM3MTY4OSwgMHhhYjBlZjRmMil9LAorICAgICAgICAgIHtU
T0JOKDB4ODhmY2EzODQsIDB4MDEzOWQ5YWYpLCBUT0JOKDB4NzI3MzNmODgsIDB4NzY2NDRhZjAp
LAorICAgICAgICAgICBUT0JOKDB4ZjEyMmY3MmEsIDB4NjVkNzRmNGEpLCBUT0JOKDB4MTM5MzE1
NzcsIDB4YTU2MjZjN2EpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNWI1ZDllYiwgMHg3MGY4ZDVh
NCksIFRPQk4oMHgzNzVhZGRlNywgMHhkN2JiYjIyOCksCisgICAgICAgICAgIFRPQk4oMHgzMWU4
OGI4NiwgMHgwYzFjMGIzMiksIFRPQk4oMHhkMWY1NjhjNCwgMHgxNzNlZGJhYSl9LAorICAgICAg
ICAgIHtUT0JOKDB4MTU5MmZjODMsIDB4NTQ1OWRmMDIpLCBUT0JOKDB4MmJlYWMwZmIsIDB4MGZj
ZDlhN2UpLAorICAgICAgICAgICBUT0JOKDB4YjBhNmZkYjgsIDB4MWI0NzNiMGEpLCBUT0JOKDB4
ZTMyMjRjNmYsIDB4MGZlOGZjNDgpfX0sCisgICAgICAgICB7e1RPQk4oMHg2ODBiZDAwZSwgMHhl
ODdlZGY1YiksIFRPQk4oMHgzMDM4NWYwMiwgMHgyMGU3N2NmNSksCisgICAgICAgICAgIFRPQk4o
MHhlOWFiOThjMCwgMHg0ZDQyZDFiMiksIFRPQk4oMHg3MmQxOTFkMiwgMHhkMzgxNmQ3Nyl9LAor
ICAgICAgICAgIHtUT0JOKDB4MTU2NGRhY2EsIDB4MDkxN2Q5ZTUpLCBUT0JOKDB4Mzk0ZWFiNTks
IDB4MWY4ZmVkN2YpLAorICAgICAgICAgICBUT0JOKDB4YTIwOWFhOGQsIDB4N2ZiYjM4OTYpLCBU
T0JOKDB4NTU2NGYzYjksIDB4YmU2YWM5OGUpfX0sCisgICAgICAgICB7e1RPQk4oMHhlYWQyMWQw
NSwgMHhkNzM2NTRlZiksIFRPQk4oMHg2OGQxYTljNCwgMHgxM2Q3OGQ3NCksCisgICAgICAgICAg
IFRPQk4oMHg2MWUwMTcwOCwgMHg2ZDQ5NzNhMCksIFRPQk4oMHg4M2RhMzUwMCwgMHg0NmU2ZDMy
YSl9LAorICAgICAgICAgIHtUT0JOKDB4NmEzZGZjYTQsIDB4NjhhZTAxMTgpLCBUT0JOKDB4YTFi
OWE0YzksIDB4ZDAyZGEwNjkpLAorICAgICAgICAgICBUT0JOKDB4MGIyZmY5YzcsIDB4ZWJhYjgz
MDIpLCBUT0JOKDB4OThhZjA3YzMsIDB4OTQ0YmE0MzYpfX0sCisgICAgICAgICB7e1RPQk4oMHg4
NTk5NzMyNiwgMHg5OTVmMGY5ZiksIFRPQk4oMHg0NjdmYWRlMCwgMHg3MWI1OGJjNiksCisgICAg
ICAgICAgIFRPQk4oMHg0N2U0NDk1YSwgMHhiZDYyNWEyYiksIFRPQk4oMHhmZGQyZDAxZCwgMHgz
M2MzYjhjZCl9LAorICAgICAgICAgIHtUT0JOKDB4MmMzOGFlMjgsIDB4YzY5M2Y5ZmEpLCBUT0JO
KDB4NDg2MjIzMjksIDB4MzQ4Zjc5OTkpLAorICAgICAgICAgICBUT0JOKDB4OTdiZjczOGUsIDB4
MjE2MWY1ODMpLCBUT0JOKDB4MTVlZTJmYTcsIDB4NTY1ZThjYzkpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhhMWE1Yzg0NSwgMHg1Nzc3ZTE4OSksIFRPQk4oMHhjYzEwYmVlMCwgMHg0NTZmMjgyOSks
CisgICAgICAgICAgIFRPQk4oMHg4YWQ5NWM1NiwgMHhkYTc2MmJkNSksIFRPQk4oMHgxNTJlMjIx
NCwgMHhlOWQ5MWRhOCl9LAorICAgICAgICAgIHtUT0JOKDB4OTc1YjBlNzIsIDB4N2NiMjNjNzQp
LCBUT0JOKDB4ZmQ1ZDc2NzAsIDB4YTkwYzY2ZGYpLAorICAgICAgICAgICBUT0JOKDB4YjViNWI4
YWQsIDB4MjI1ZmZjNTMpLCBUT0JOKDB4YWI2ZGZmNzMsIDB4ZmFkZWQyYWUpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhlYmQ1Njc4MSwgMHg2ZjRjYmU5ZCksIFRPQk4oMHgwZWQ4YjI0OSwgMHg2YTU3
NGJkNyksCisgICAgICAgICAgIFRPQk4oMHg0MWMyNDZmZSwgMHg4MWE4ODFmYSksIFRPQk4oMHg5
MTU2NDgwNSwgMHhjM2RiOWM3MCl9LAorICAgICAgICAgIHtUT0JOKDB4ZDdjMTJiMDgsIDB4NWI4
NjI4MDkpLCBUT0JOKDB4MWZhY2QxZjEsIDB4NTU4NThkN2IpLAorICAgICAgICAgICBUT0JOKDB4
NzY5Mzc0N2MsIDB4YWYwOWU5MmEpLCBUT0JOKDB4M2I2OWRjYmEsIDB4MTg5YTQyNWYpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgwYmUyOGU5ZiwgMHg5NjczNjVlZiksIFRPQk4oMHg1NzMwMGViMiwg
MHhlODAxZjVjOSksCisgICAgICAgICAgIFRPQk4oMHg5M2I4YWM2YSwgMHhkNTgzMzUyZiksIFRP
Qk4oMHhhMmNmMWY4OSwgMHhjZDA1YjJiNyl9LAorICAgICAgICAgIHtUT0JOKDB4N2MwYzliNzQs
IDB4NGRjYzQwY2MpLCBUT0JOKDB4ZmVlMzhjNDUsIDB4YWRhNTIzZmIpLAorICAgICAgICAgICBU
T0JOKDB4YjQ5YTRkZWMsIDB4MTA5OWNjNGQpLCBUT0JOKDB4MzI1YzM3N2YsIDB4NjlmMDY5YzYp
fX0sCisgICAgICAgICB7e1RPQk4oMHhlMTI0NThjZSwgMHg0NzZjYzlmZiksIFRPQk4oMHg1ODBl
MGI2YywgMHhjNmQ0Y2I2MyksCisgICAgICAgICAgIFRPQk4oMHhkNTYxYzhiNywgMHg5MDcyMjg5
YiksIFRPQk4oMHgwMzc3ZjI2NCwgMHhhNjE5ZTZkYSl9LAorICAgICAgICAgIHtUT0JOKDB4MjY2
ODUzNjIsIDB4ODhlNTkxYTUpLCBUT0JOKDB4YTQ1M2E3YmQsIDB4NzUyM2NhMmIpLAorICAgICAg
ICAgICBUT0JOKDB4OGE5NTM2ZDIsIDB4YzFkZjQ1MzMpLCBUT0JOKDB4YzhlNTBmMmYsIDB4YmU5
NzJmNzkpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNDMzZTUwZiwgMHg2ZDM1NDljZiksIFRPQk4o
MHg2ZjMzNjk2ZiwgMHhmYWNkNjY1ZSksCisgICAgICAgICAgIFRPQk4oMHg2OTViZmRhYywgMHhj
ZTExZmNiNCksIFRPQk4oMHg4MTBlZTI1MiwgMHhhZjdjOTg2MCl9LAorICAgICAgICAgIHtUT0JO
KDB4NjU0NTBmZTEsIDB4NzE1OWJiMmMpLCBUT0JOKDB4ZjdkZmJlYmUsIDB4NzU4YjM1N2IpLAor
ICAgICAgICAgICBUT0JOKDB4MmIwNTdlNzQsIDB4ZDY5ZmVhNzIpLCBUT0JOKDB4ZDQ4NTcxN2Es
IDB4OTI3MzE3NDUpfX19LAorICAgICAgICB7e3tUT0JOKDB4ODk2YzQyZTgsIDB4ZWUzNjg2MGMp
LCBUT0JOKDB4ZGFmMDRkZmQsIDB4NDExM2MyMmQpLAorICAgICAgICAgICBUT0JOKDB4MWFkYmI3
YjcsIDB4NDQxMDQyMTMpLCBUT0JOKDB4ZTVmZDVmYTEsIDB4MWZkMzk0ZWEpfSwKKyAgICAgICAg
ICB7VE9CTigweDY4MjM1ZDk0LCAweDFhNGUwNTUxKSwgVE9CTigweDY3NzJjZmJlLCAweDE4ZDEw
MTUxKSwKKyAgICAgICAgICAgVE9CTigweDI3NjA3MWUzLCAweDA5OTg0NTIzKSwgVE9CTigweGU0
ZTg3OWRlLCAweDVhNTZiYTk4KX19LAorICAgICAgICAge3tUT0JOKDB4YWFhZmFmYjAsIDB4Mjg1
Yjk0OTEpLCBUT0JOKDB4MDFhMGJlODgsIDB4MWU0YzcwNWUpLAorICAgICAgICAgICBUT0JOKDB4
ZmYxZDRmNWQsIDB4MmFkOWNhYWIpLCBUT0JOKDB4NmUzNDlhNGEsIDB4YzM3YTIzM2YpfSwKKyAg
ICAgICAgICB7VE9CTigweGNmMWMxMjQ2LCAweDRhMWM2YTE2KSwgVE9CTigweGQ5OWU2YjY2LCAw
eDI5MzgzMjYwKSwKKyAgICAgICAgICAgVE9CTigweGVhM2Q0MzY2LCAweDVmNmQ1NDcxKSwgVE9C
TigweDM2OTc0ZDA0LCAweGZmOGNjODliKX19LAorICAgICAgICAge3tUT0JOKDB4YzI2YzQ5YTEs
IDB4Y2ZlODlkODApLCBUT0JOKDB4YjQyYzAyNmQsIDB4ZGE5YzgzNzEpLAorICAgICAgICAgICBU
T0JOKDB4Y2E2YzAxM2EsIDB4ZGFkMDY2ZDIpLCBUT0JOKDB4ZmI4ZjcyMjgsIDB4NTZhNGYzZWUp
fSwKKyAgICAgICAgICB7VE9CTigweDA4YjU3OWVjLCAweGQ4NTA5MzViKSwgVE9CTigweDM0YzFh
NzRjLCAweGQ2MzFlMWIzKSwKKyAgICAgICAgICAgVE9CTigweGNiNWZlNTk2LCAweGFjMTk4NTM0
KSwgVE9CTigweDM5ZmYyMWY2LCAweGUxZjI0ZjI1KX19LAorICAgICAgICAge3tUT0JOKDB4Mjdm
MjllMTQsIDB4OGY5MjkwNTcpLCBUT0JOKDB4N2E2NGFlMDYsIDB4YzBjODUzZGYpLAorICAgICAg
ICAgICBUT0JOKDB4MjU2Y2QxODMsIDB4NThlOWM1Y2UpLCBUT0JOKDB4OWQ5Y2NlODIsIDB4ZGVk
MDkyYTUpfSwKKyAgICAgICAgICB7VE9CTigweGNjNmU1OTc5LCAweDZlOTNiN2M3KSwgVE9CTigw
eGUxZTQ3MDkyLCAweDMxYmI5ZTI3KSwKKyAgICAgICAgICAgVE9CTigweGI3MGIzMDgzLCAweGFh
OWUyOWEwKSwgVE9CTigweGJmMTgxYTc1LCAweDM3ODVlNjQ0KX19LAorICAgICAgICAge3tUT0JO
KDB4ZjUzZjJjNjUsIDB4OGVhZDA5ZjcpLCBUT0JOKDB4MTMzNWUxZDUsIDB4OTc4MGQxNGQpLAor
ICAgICAgICAgICBUT0JOKDB4NjljYzIwZTAsIDB4Y2QxYjY2YmMpLCBUT0JOKDB4OWI2NzBhMzcs
IDB4YmJlMGJmYzgpfSwKKyAgICAgICAgICB7VE9CTigweGNlNTNkYzgxLCAweDI4ZWZiZWVkKSwg
VE9CTigweDBjNzRlNzdjLCAweDgzMjZhNmU1KSwKKyAgICAgICAgICAgVE9CTigweDM2MDRlMGQy
LCAweGI4OGU5YTYzKSwgVE9CTigweGJhYjM4ZmNhLCAweDEzZGMyMjQ4KX19LAorICAgICAgICAg
e3tUT0JOKDB4OGVkNmU4YzgsIDB4NWMwYTNmMWUpLCBUT0JOKDB4YmNhZDI0OTIsIDB4N2M4N2Mz
N2YpLAorICAgICAgICAgICBUT0JOKDB4ZmRmYjYyYmIsIDB4OWVlM2I3OGQpLCBUT0JOKDB4ZWJh
OGU0NzcsIDB4Y2JjZWJhNDYpfSwKKyAgICAgICAgICB7VE9CTigweDM3ZDM4Y2IwLCAweGVlYWVk
ZTRiKSwgVE9CTigweDBiYzQ5OGU4LCAweDc5NzZkZWI2KSwKKyAgICAgICAgICAgVE9CTigweGIy
OTQ0YzA0LCAweDZiNjE0N2ZiKSwgVE9CTigweDhiMTIzZjM1LCAweGY3MWY5NjA5KX19LAorICAg
ICAgICAge3tUT0JOKDB4YTE1NWRjYzcsIDB4ZGU3OWRjMjQpLCBUT0JOKDB4ZjExNjhhMzIsIDB4
NTU4ZjY5Y2QpLAorICAgICAgICAgICBUT0JOKDB4YmFjMjE1OTUsIDB4MGQxODUwZGYpLCBUT0JO
KDB4MTVjODI5NWIsIDB4YjIwNGM4NDgpfSwKKyAgICAgICAgICB7VE9CTigweGY2NjFhYTM2LCAw
eDdkODE4NGZmKSwgVE9CTigweGMzOTYyMjhlLCAweDMwNDQ3YmRiKSwKKyAgICAgICAgICAgVE9C
TigweDExY2Q1MTQzLCAweGJkZTRhNTllKSwgVE9CTigweGUzYTI2ZTNiLCAweDZiZWFiNWU2KX19
LAorICAgICAgICAge3tUT0JOKDB4ZDNiM2ExM2YsIDB4MTQwMmI5ZDApLCBUT0JOKDB4NTczNDQx
YzMsIDB4MmM3YmM4NjMpLAorICAgICAgICAgICBUT0JOKDB4NGIzMDFlYzQsIDB4NTc4YzNlNmUp
LCBUT0JOKDB4YzI2ZmM5YzQsIDB4MGFkYWY1N2UpfSwKKyAgICAgICAgICB7VE9CTigweDk2ZTcx
YmZkLCAweDc0OTNjZWEzKSwgVE9CTigweGQwNWQ0YjNmLCAweDFhZjgxNDU2KSwKKyAgICAgICAg
ICAgVE9CTigweGRhY2EyYThhLCAweDZhOGM2MDhmKSwgVE9CTigweDUzZWYwN2Y2LCAweDA3MjVi
Mjc2KX19LAorICAgICAgICAge3tUT0JOKDB4MDdhNWZiZDIsIDB4NzgyNGZjNTYpLCBUT0JOKDB4
MzQ2NzUyMTgsIDB4MTMyODkwNzcpLAorICAgICAgICAgICBUT0JOKDB4NWJmNjlmZDUsIDB4ZTBj
NDgzNDkpLCBUT0JOKDB4YTYxM2RkZDMsIDB4YjZhYTc4NzUpfSwKKyAgICAgICAgICB7VE9CTigw
eDdmNzhjMTljLCAweDU0NTBkODY2KSwgVE9CTigweDQ2ZjQ0MDljLCAweDhmODRhNDgxKSwKKyAg
ICAgICAgICAgVE9CTigweDlmMWQxOTI4LCAweDkwZmNlMjM5KSwgVE9CTigweDAxNmM0MTY4LCAw
eGIyY2U0NGI5KX19LAorICAgICAgICAge3tUT0JOKDB4YmFlMDIzZjAsIDB4Yzc0MzU5NzgpLCBU
T0JOKDB4YjE1MmM4ODgsIDB4MjBlMzBlMTkpLAorICAgICAgICAgICBUT0JOKDB4OWMyNDE2NDUs
IDB4ZTNmYTZmYWYpLCBUT0JOKDB4NzM1ZDk1YzEsIDB4ODQ4MjNlNjApfSwKKyAgICAgICAgICB7
VE9CTigweDAzMTk3NTczLCAweDAzOTU1MzE3KSwgVE9CTigweDBiNGIwMmE5LCAweGYwM2I0OTk1
KSwKKyAgICAgICAgICAgVE9CTigweDA3NmJmNTU5LCAweDcwMjc0NjAwKSwgVE9CTigweDMyYzVj
YzUzLCAweGFhZjU3NTA4KX19LAorICAgICAgICAge3tUT0JOKDB4ZThhZjZkMWYsIDB4NjA2MjQx
MjkpLCBUT0JOKDB4YjdiYzVkNjQsIDB4OWE1ZTJiNWUpLAorICAgICAgICAgICBUT0JOKDB4Mzgx
NGIwNDgsIDB4NWYwODJkNzIpLCBUT0JOKDB4NzZmMjY3ZjIsIDB4Y2UxOTY3N2EpfSwKKyAgICAg
ICAgICB7VE9CTigweDYyNmM2MzBmLCAweGIzNmVlZDkzKSwgVE9CTigweDU1MjMwY2Q3LCAweDNi
ZjU2ODAzKSwKKyAgICAgICAgICAgVE9CTigweDc4ODM3OTQ5LCAweGNlMjczNmEwKSwgVE9CTigw
eDBkNzkyZDYwLCAweGFhNmM1NWYxKX19LAorICAgICAgICAge3tUT0JOKDB4MDMxOGRiZmQsIDB4
ZDVjN2M1ZDIpLCBUT0JOKDB4YjM4ZjhkYTcsIDB4MDcyYjM0MmQpLAorICAgICAgICAgICBUT0JO
KDB4MzU2OWJkZGMsIDB4N2I4ZGUzOGEpLCBUT0JOKDB4ZjI1YjU4ODcsIDB4YTFjOTQ4NDIpfSwK
KyAgICAgICAgICB7VE9CTigweGIyZDViMjg0LCAweDI5NDZhZDYwKSwgVE9CTigweDg1NGYyOWFk
LCAweGU5ZDE3MDdlKSwKKyAgICAgICAgICAgVE9CTigweGFhNTE1OWRjLCAweDJjNmE0NTA5KSwg
VE9CTigweDg5OWY5NGMwLCAweDU3MTg5ODM3KX19LAorICAgICAgICAge3tUT0JOKDB4Y2Y2YWRj
NTEsIDB4ZjRhNTViMDMpLCBUT0JOKDB4MjYxNzYyZGUsIDB4MzVlM2IyZDUpLAorICAgICAgICAg
ICBUT0JOKDB4NGNjNDMwMTIsIDB4MDQ4MjdiNTEpLCBUT0JOKDB4Y2QyMmExMTMsIDB4YzYwMjE0
NDIpfSwKKyAgICAgICAgICB7VE9CTigweGNlMmZkNjFhLCAweDI0N2M5NTY5KSwgVE9CTigweDU5
YTUwOTczLCAweGQxNTJiZWNhKSwKKyAgICAgICAgICAgVE9CTigweDZjODM1YTExLCAweDYzYTcx
NmQ0KSwgVE9CTigweGMyNjQ1NWVkLCAweDE4N2RlZGNmKX19LAorICAgICAgICAge3tUT0JOKDB4
MjdmNTM2ZTAsIDB4NDljZTg5ZTcpLCBUT0JOKDB4MTg5MDg1MzksIDB4Y2M4OTBjYjUpLAorICAg
ICAgICAgICBUT0JOKDB4MzA4OTA5YWIsIDB4ZDgzYzJhYTEpLCBUT0JOKDB4ZWNkMzE0MmIsIDB4
MWFiNzNiZDMpfSwKKyAgICAgICAgICB7VE9CTigweDZhODViZjU5LCAweGIzZjVhYjg0KSwgVE9C
TigweDNjMzIwYTY4LCAweGYyYmVhNGM2KSwKKyAgICAgICAgICAgVE9CTigweGFkOGRjNTM4LCAw
eDZkYTQ1NDFmKSwgVE9CTigweGVhZjM0ZWIwLCAweGI3YzQxMTg2KX19LAorICAgICAgICAge3tU
T0JOKDB4MWM3ODAxMjksIDB4OTc3Yzk3YzQpLCBUT0JOKDB4NWZmOWJlZWIsIDB4YzU3ZWI5ZmEp
LAorICAgICAgICAgICBUT0JOKDB4YTI0ZDA1MjQsIDB4YzgyMmM0NzgpLCBUT0JOKDB4ZmQ4ZWVj
MmEsIDB4NDYxY2Q0MTUpfSwKKyAgICAgICAgICB7VE9CTigweGZiZGUxOTRlLCAweGYwMjc0NThj
KSwgVE9CTigweGI0ZmY1MzE5LCAweDFkMWJlMTE1KSwKKyAgICAgICAgICAgVE9CTigweDYzZjg3
NGQ5LCAweDQ4NjZkNmY0KSwgVE9CTigweDM1Yzc1MDE1LCAweGIyMWFkMGM5KX19LAorICAgICAg
ICAge3tUT0JOKDB4YTZiNWM5ZDYsIDB4NDZhYzQ5ZDIpLCBUT0JOKDB4NDJjNzdjMGIsIDB4ODMx
MzdhYTkpLAorICAgICAgICAgICBUT0JOKDB4MjRkMDAwZmMsIDB4NjgyMjVhMzgpLCBUT0JOKDB4
MGY2M2NmYzgsIDB4MmZlMWU5MDcpfSwKKyAgICAgICAgICB7VE9CTigweDIyZDFiMDFiLCAweGM2
NDQxZjk1KSwgVE9CTigweDdkMzhmNzE5LCAweGVjOGU0NDhmKSwKKyAgICAgICAgICAgVE9CTigw
eDliMzNmYTVmLCAweDc4N2ZiMWJhKSwgVE9CTigweDk0ZGNmZGExLCAweDE5MDE1OGRmKX19LAor
ICAgICAgICAge3tUT0JOKDB4YzQ3Y2IzMzksIDB4NWY2ZDRhMDkpLCBUT0JOKDB4NmI0ZjM1NWMs
IDB4ZWU1MmI4MjYpLAorICAgICAgICAgICBUT0JOKDB4M2QxMDBmNWQsIDB4ZjUxYjkzMGEpLCBU
T0JOKDB4ZjQ1MTJmYWMsIDB4OWY2NjhmNjkpfSwKKyAgICAgICAgICB7VE9CTigweDU0Njc4MWQ1
LCAweDIwNmM0Yzc0KSwgVE9CTigweGQwMjFkNGQ0LCAweGNiNGQyZTQ4KSwKKyAgICAgICAgICAg
VE9CTigweDQ5NGE1NGMyLCAweGNhMDg1YzJkKSwgVE9CTigweGYxZGJhY2E0LCAweDUyMDg1MGE4
KX19LAorICAgICAgICAge3tUT0JOKDB4NjNjNzkzMjYsIDB4NDkwYTFhY2EpLCBUT0JOKDB4Y2I2
NGRkOWMsIDB4NDE1MjZiMDIpLAorICAgICAgICAgICBUT0JOKDB4YmI3NzI1OTEsIDB4YTI5Nzky
NTgpLCBUT0JOKDB4M2Y1ODI5NzAsIDB4NDhkOTc4NDYpfSwKKyAgICAgICAgICB7VE9CTigweGQ2
NmI3MGQxLCAweDdjMjEzYmE3KSwgVE9CTigweGMyOGZlYmI1LCAweGU4YTBjZWQ0KSwKKyAgICAg
ICAgICAgVE9CTigweDZiOTExODMxLCAweGMxMDMzOGMxKSwgVE9CTigweDBkNTRlMzg5LCAweGJm
MDEyNmYzKX19LAorICAgICAgICAge3tUT0JOKDB4NzA0OGQ0NjAsIDB4NGFmMjA2ZWUpLCBUT0JO
KDB4Nzg2Yzg4ZjYsIDB4NzdlOTdjYjkpLAorICAgICAgICAgICBUT0JOKDB4ZDQzNzVhZTEsIDB4
YWM2NDgwMmUpLCBUT0JOKDB4NDY5YmNmZTEsIDB4ZDUzZWMxMWMpfSwKKyAgICAgICAgICB7VE9C
TigweGZjOWIzNDBkLCAweDQ3MDYyMjMwKSwgVE9CTigweGU3NDNiYjU3LCAweGM1YjRhM2FjKSwK
KyAgICAgICAgICAgVE9CTigweGZlMDBiNGFhLCAweDU5ZWY0NWFjKSwgVE9CTigweDI5YTRlZjIz
LCAweDU5ZWRmMTg4KX19LAorICAgICAgICAge3tUT0JOKDB4NDAyNDJlZmUsIDB4YjQ4MzY4OWIp
LCBUT0JOKDB4MjU3NWQzZjYsIDB4NTEzYWMyNjIpLAorICAgICAgICAgICBUT0JOKDB4ZjMwMDM3
YzgsIDB4MGNhNmRiNzIpLCBUT0JOKDB4YzlmY2NlODIsIDB4OTg4NjRiZTIpfSwKKyAgICAgICAg
ICB7VE9CTigweDg0YTExMmZmLCAweDAxNDkzNjJkKSwgVE9CTigweDk1ZTU3NTgyLCAweDFjNGFl
OTcxKSwKKyAgICAgICAgICAgVE9CTigweDFmYTRiMWE4LCAweDk0NWNmODZjKSwgVE9CTigweDQ1
MjVhNzM0LCAweDBiMDI0YTJmKX19LAorICAgICAgICAge3tUT0JOKDB4ZTc2YzhiNjIsIDB4OGYz
MzgzNjApLCBUT0JOKDB4NDgzZmY1OTMsIDB4MjhlZGYzMmIpLAorICAgICAgICAgICBUT0JOKDB4
NjdlOGU5MGEsIDB4Mjk4YjFhZWMpLCBUT0JOKDB4OWNhYWIzMzgsIDB4NzM2ZDlhMjEpfSwKKyAg
ICAgICAgICB7VE9CTigweDVjMDlkMmZkLCAweDY2ODkyNzA5KSwgVE9CTigweDI0OTZiNGRjLCAw
eGI1NWExZDQxKSwKKyAgICAgICAgICAgVE9CTigweDkzZjVmYjFhLCAweGUyNGE0Mzk0KSwgVE9C
TigweDA4Yzc1MDQ5LCAweDZmYThmNmMxKX19LAorICAgICAgICAge3tUT0JOKDB4Y2FlYWQxYzIs
IDB4YzkwNWQ4NWYpLCBUT0JOKDB4ZTlkN2Y3OTAsIDB4MDczM2FlNTcpLAorICAgICAgICAgICBU
T0JOKDB4MjRjOWE2NWMsIDB4ZjA3Y2RkOTQpLCBUT0JOKDB4NzM4OTM1OWMsIDB4YTRiNTU5MzEp
fSwKKyAgICAgICAgICB7VE9CTigweGY1ODcwOWI3LCAweDM2N2U0NWY3KSwgVE9CTigweDFmMjAz
MDY3LCAweGNiN2U3YWRjKSwKKyAgICAgICAgICAgVE9CTigweDgyNDQ0YmZmLCAweGM3YjcyODE4
KSwgVE9CTigweDA3MzAzYjM1LCAweGJhYWM4MDMzKX19LAorICAgICAgICAge3tUT0JOKDB4MWUx
ZWU0ZTQsIDB4ZDEzYjdlYTEpLCBUT0JOKDB4ZTY0ODliMjQsIDB4ZTBlNzQxODApLAorICAgICAg
ICAgICBUT0JOKDB4YTVmMmM2MTAsIDB4N2U3MGVmNzApLCBUT0JOKDB4YTE2NTU0MTIsIDB4YmRk
MTA4OTQpfSwKKyAgICAgICAgICB7VE9CTigweDU1NWViZWZiLCAweDdhZjQxOTRlKSwgVE9CTigw
eDUzM2MxYzNjLCAweDhlODliZDljKSwKKyAgICAgICAgICAgVE9CTigweDczNWI5YjU3LCAweDg5
ODk1ODU2KSwgVE9CTigweDE1ZmIzY2QyLCAweDU2N2Y1YzE1KX19LAorICAgICAgICAge3tUT0JO
KDB4MDU3ZmVkNDUsIDB4NTI2ZjA5ZmQpLCBUT0JOKDB4ZThhNGYxMGMsIDB4ODEyODI0MGEpLAor
ICAgICAgICAgICBUT0JOKDB4OTMzMmVmYzQsIDB4ZmYyYmZkOGQpLCBUT0JOKDB4MjE0ZTc3YTAs
IDB4YmQzNWFhMzEpfSwKKyAgICAgICAgICB7VE9CTigweDMyODk2ZDczLCAweDE0ZmFhNDBlKSwg
VE9CTigweDc2Nzg2N2VjLCAweDAxZTVmMTg2KSwKKyAgICAgICAgICAgVE9CTigweGM5YWRmOGYx
LCAweDE3YTE4MTNlKSwgVE9CTigweGNiNmNkYTc4LCAweDU0NzQxNzk1KX19LAorICAgICAgICAg
e3tUT0JOKDB4Yjc1MjFiNmQsIDB4MzQ5ZDUxYWEpLCBUT0JOKDB4ZjU2YjVhOWUsIDB4ZTNjN2I4
ZTkpLAorICAgICAgICAgICBUT0JOKDB4YzZmMWU1YzksIDB4MzJhMDk2ZGYpLCBUT0JOKDB4MDgz
NjY3YzQsIDB4YTM2MzUwMjQpfSwKKyAgICAgICAgICB7VE9CTigweDM2NWVhMTM1LCAweDE4MDg3
ZjJmKSwgVE9CTigweGYxYjhlYWFjLCAweGQxMzZlNDVkKSwKKyAgICAgICAgICAgVE9CTigweGM4
YTBlNDg0LCAweDczYWVjOTg5KSwgVE9CTigweGQ3NWEzMjRiLCAweDE0MmM5MjU5KX19LAorICAg
ICAgICAge3tUT0JOKDB4YjdiNGQwMDEsIDB4MDFkYWUxODUpLCBUT0JOKDB4NDU0MzRlMGIsIDB4
OWI3YTk0YmMpLAorICAgICAgICAgICBUT0JOKDB4ZjU0MzM5YWYsIDB4ZmJkOGNiMGIpLCBUT0JO
KDB4ZGNjNDU2OWUsIDB4ZTk4ZWY0OWUpfSwKKyAgICAgICAgICB7VE9CTigweDc3ODkzMThhLCAw
eDA5YTUxMjk5KSwgVE9CTigweDgxYjRkMjA2LCAweGIyYjAyNWQ4KSwKKyAgICAgICAgICAgVE9C
TigweGY2NGFhNDE4LCAweGZhZTg1NzkyKSwgVE9CTigweDNlNTAyNThmLCAweGFjZDdiYWY3KX19
LAorICAgICAgICAge3tUT0JOKDB4ZGNlODRjZGIsIDB4Mjk5Njg2NGIpLCBUT0JOKDB4YTJlNjcw
ODksIDB4MWY0ODVmYTQpLAorICAgICAgICAgICBUT0JOKDB4YjI4YjJiYjYsIDB4NTM0YzZhNWEp
LCBUT0JOKDB4MzFhN2VjNmIsIDB4Yzk0YjlkMzkpfSwKKyAgICAgICAgICB7VE9CTigweDFkMjE3
NzY2LCAweGQ2YmMyMGRhKSwgVE9CTigweDRhY2RiNWVjLCAweDg2NzYxMTkwKSwKKyAgICAgICAg
ICAgVE9CTigweDY4NzI2MzI4LCAweDczNzAxMDYzKSwgVE9CTigweDRkMjRlZTdjLCAweDIxMjhj
MjliKX19LAorICAgICAgICAge3tUT0JOKDB4YzA3MmViZDMsIDB4YTE5ZmQ4NjgpLCBUT0JOKDB4
NjEyZTQ4MWMsIDB4ZGI4ZGRkM2IpLAorICAgICAgICAgICBUT0JOKDB4YjRlMWQ3NTQsIDB4MWE2
NGQ4NTIpLCBUT0JOKDB4MDBlZjk1YWMsIDB4YzRjNmM0YWIpfSwKKyAgICAgICAgICB7VE9CTigw
eDE1MzZkMmVkLCAweGFhMGE2YzQ2KSwgVE9CTigweDYxMjk0MDg2LCAweDQzNzc0NzkwKSwKKyAg
ICAgICAgICAgVE9CTigweDU0YWYyNWU4LCAweDM0M2ZkYTEwKSwgVE9CTigweDlmZjlkOThkLCAw
eGZkMjVkNmYyKX19LAorICAgICAgICAge3tUT0JOKDB4MDc0NmFmN2MsIDB4NDY4Yjg4MzUpLCBU
T0JOKDB4OTc3YTMxY2IsIDB4NzMwZWNlYTcpLAorICAgICAgICAgICBUT0JOKDB4YTUwOTZiODAs
IDB4YzJjZjRhODEpLCBUT0JOKDB4YWE5ODY4MzMsIDB4NjQ1OGMzN2EpfSwKKyAgICAgICAgICB7
VE9CTigweDZhZjI5YmYzLCAweGE2YmQ5ZDM0KSwgVE9CTigweDZhNjJmZTliLCAweDMzYzVkODU0
KSwKKyAgICAgICAgICAgVE9CTigweDUwZTZjMzA0LCAweGI3MTMzYjVlKSwgVE9CTigweDA0YjYw
MTU5LCAweDdkNmU2ODQ4KX19LAorICAgICAgICAge3tUT0JOKDB4NGNkMjk2ZGYsIDB4NTU3OWJl
YTQpLCBUT0JOKDB4MTBlMzVhYzgsIDB4NWNlZWRhZjEpLAorICAgICAgICAgICBUT0JOKDB4MDRj
NGM1ZmQsIDB4ZTNiY2M1YjEpLCBUT0JOKDB4OTVmOWVlOGEsIDB4ODk0MTJjZjkpfSwKKyAgICAg
ICAgICB7VE9CTigweDJjOTQ1OWVlLCAweDgyYjZlYjBmKSwgVE9CTigweDJlODQ1NzY1LCAweDk1
YzJhYWRkKSwKKyAgICAgICAgICAgVE9CTigweDc3NGE4NGFlLCAweGQzMjdmY2ZlKSwgVE9CTigw
eGQ4YzkzNzIyLCAweDAzNjhkNDc2KX19LAorICAgICAgICAge3tUT0JOKDB4MGRiZDU3NDgsIDB4
ZjgzZThhM2IpLCBUT0JOKDB4YTU3OWFhOTYsIDB4OGQyNDk1ZjMpLAorICAgICAgICAgICBUT0JO
KDB4NTM1OTk2YTAsIDB4YWU0OTZlOWIpLCBUT0JOKDB4MDdhZmJmZTksIDB4YjdmOWJjYzIpfSwK
KyAgICAgICAgICB7VE9CTigweDNhYzFkYzZkLCAweDViN2JkMjkzKSwgVE9CTigweDNiNTkyY2Zm
LCAweDcwMjIzMjNkKSwKKyAgICAgICAgICAgVE9CTigweGJhMGRlYjk4LCAweDljMGEzZTc2KSwg
VE9CTigweDE4ZTc4ZTlmLCAweDRiMTk3YWNiKX19LAorICAgICAgICAge3tUT0JOKDB4MjExY2Rl
MTAsIDB4Mjk2YzM2ZWYpLCBUT0JOKDB4N2VlODk2NzIsIDB4ODJjNGRhNzcpLAorICAgICAgICAg
ICBUT0JOKDB4YjYxN2QyNzAsIDB4YTU3ODM2ZGEpLCBUT0JOKDB4ZjBjZDljMzEsIDB4OWNiNzU2
MGIpfSwKKyAgICAgICAgICB7VE9CTigweDAxZmRjYmY3LCAweGU0NTVmZTkwKSwgVE9CTigweDNm
YjUzY2JiLCAweDdlNzMzNGYzKSwKKyAgICAgICAgICAgVE9CTigweDc4MWUyZWE0LCAweDRlN2Rl
NGVjKSwgVE9CTigweDhhZGFiM2FkLCAweDBiMzg0ZmQwKX19LAorICAgICAgICAge3tUT0JOKDB4
MTI5ZWVlMmYsIDB4NTNkNjQ4MjkpLCBUT0JOKDB4N2E0NzFlMTcsIDB4YTI2MTQ5MmIpLAorICAg
ICAgICAgICBUT0JOKDB4ZTRmOWFkYjksIDB4ZTRjYjRhMmMpLCBUT0JOKDB4M2QzNTlmNmYsIDB4
OTdiYTJjMmQpfSwKKyAgICAgICAgICB7VE9CTigweDM0NmM2Nzg2LCAweDBhYWNkNjk3KSwgVE9C
TigweDkyYjQ0NGMzLCAweDc1YzJmOGE4KSwKKyAgICAgICAgICAgVE9CTigweGM3OWZhMTE3LCAw
eGQ4NWRmNDRlKSwgVE9CTigweDU2NzgyMzcyLCAweDM5OGRkZjMxKX19LAorICAgICAgICAge3tU
T0JOKDB4NjBlNjkwZjIsIDB4YmJiYWIzYjgpLCBUT0JOKDB4NDg1MWY4YWUsIDB4OGIwNDgxNmIp
LAorICAgICAgICAgICBUT0JOKDB4YzcyMDQ2YWIsIDB4OWM5MmU0ZDIpLCBUT0JOKDB4NTE4Yzc0
YTEsIDB4N2NmMzEzNmIpfSwKKyAgICAgICAgICB7VE9CTigweGZmNGViNTBhLCAweGY5ODc3ZDRj
KSwgVE9CTigweDE0NTc4ZDkwLCAweGE5MTljYWJiKSwKKyAgICAgICAgICAgVE9CTigweDgyMThm
OGM0LCAweGFjNWViMmI2KSwgVE9CTigweGEzY2NjNTQ3LCAweDU0MjAxNmU0KX19LAorICAgICAg
ICAge3tUT0JOKDB4MDI1YmY0OGUsIDB4MzI3ZjgzNDkpLCBUT0JOKDB4ZjNlOTczNDYsIDB4ZjQz
Y2I2NDEpLAorICAgICAgICAgICBUT0JOKDB4ZGMyYmFmZGYsIDB4NTAwZjEwODUpLCBUT0JOKDB4
NTcxNjc4NzYsIDB4MmYwNjMwNTUpfSwKKyAgICAgICAgICB7VE9CTigweDViZDkxNGI5LCAweDQx
MTkyNWE2KSwgVE9CTigweDdjMDc4ZDQ4LCAweGExMTIzZGU1KSwKKyAgICAgICAgICAgVE9CTigw
eGVlNmJmODM1LCAweDE4MmIxNjVkKSwgVE9CTigweGIxMWI1ZTViLCAweGJhNTE5NzI3KX19LAor
ICAgICAgICAge3tUT0JOKDB4ZTMzZWE3NmMsIDB4MWVlYTdiODUpLCBUT0JOKDB4MjM1MmI0NjEs
IDB4OTJkNGY4NWUpLAorICAgICAgICAgICBUT0JOKDB4ZjEwMWQzMzQsIDB4YWZlMTE1YmIpLCBU
T0JOKDB4ZmFiYzEyOTQsIDB4ODg5MTc1YTMpfSwKKyAgICAgICAgICB7VE9CTigweDdmNmJjZGMw
LCAweDUyMzNmOTI1KSwgVE9CTigweGUwYTgwMmRiLCAweGU3N2ZlYzU1KSwKKyAgICAgICAgICAg
VE9CTigweGJkYjQ3Yjc1LCAweDgwNjliNjU5KSwgVE9CTigweDFjNWUxMmRlLCAweGY5OGZiZDc0
KX19LAorICAgICAgICAge3tUT0JOKDB4ODY5YzU4YzYsIDB4NGI4NDU3ZWUpLCBUT0JOKDB4YTUz
NjBmNjksIDB4NGY3ZWE5ZjcpLAorICAgICAgICAgICBUT0JOKDB4ZTU3NmMwOWYsIDB4ZjQ2MGIz
OGYpLCBUT0JOKDB4NmI3MGQ1NDgsIDB4MjJiN2ZiMzYpfSwKKyAgICAgICAgICB7VE9CTigweDNm
ZDIzN2YxLCAweDNiZmFlMzE1KSwgVE9CTigweDMzNzk3ODUyLCAweGNiZGZmMzY5KSwKKyAgICAg
ICAgICAgVE9CTigweDk3ZGYyNWY1LCAweDI1YjUxNmY5KSwgVE9CTigweDQ2ZjM4OGYyLCAweGJh
MzhhZDJkKX19LAorICAgICAgICAge3tUT0JOKDB4NjU2YzQ2NTgsIDB4ODlkOGRkYmIpLCBUT0JO
KDB4ODgzMGIyNmUsIDB4NzBmMzhlZTgpLAorICAgICAgICAgICBUT0JOKDB4NDMyMGZkNWMsIDB4
ZGUxMjEyYjApLCBUT0JOKDB4YzM0ZjMwY2YsIDB4ZTRhMmVkYjIpfSwKKyAgICAgICAgICB7VE9C
TigweGFiYjEzMWEzLCAweDU2YWI2NGI4KSwgVE9CTigweDdmNzdmMGNjLCAweGQ5OWM1ZDI2KSwK
KyAgICAgICAgICAgVE9CTigweDY2ODU2YTM3LCAweGJmOTgxZDk0KSwgVE9CTigweDE5ZTc2ZDA5
LCAweDczOGJkNzZlKX19LAorICAgICAgICAge3tUT0JOKDB4ZTc2YzhhYzMsIDB4OTYyMzhmMzkp
LCBUT0JOKDB4YzBhNDgyYmUsIDB4YTgzMGIzNjYpLAorICAgICAgICAgICBUT0JOKDB4YjdiOGVh
ZmYsIDB4MGI0ZWI0OTkpLCBUT0JOKDB4OGVjZDgzYmMsIDB4NGJmYjQ4NjUpfSwKKyAgICAgICAg
ICB7VE9CTigweDk3MWIyY2I3LCAweGEyZjM3NzZmKSwgVE9CTigweGI0MjE3NmE0LCAweGY0Yjg4
YWRmKSwKKyAgICAgICAgICAgVE9CTigweGI5NjE3ZGY1LCAweGJlMWZhNDQ2KSwgVE9CTigweDhi
MzJkNTA4LCAweGNkMDMxYmQyKX19LAorICAgICAgICAge3tUT0JOKDB4MWM2YmQ0N2QsIDB4NTNi
NjE4YzApLCBUT0JOKDB4YzQyNGY0NmMsIDB4NmEyMjc5MjMpLAorICAgICAgICAgICBUT0JOKDB4
NzMwM2ZmZGUsIDB4ZGQ5MmQ5NjQpLCBUT0JOKDB4ZTk3MTI4NzgsIDB4NzFiNWFiZjIpfSwKKyAg
ICAgICAgICB7VE9CTigweDhmNDhhNjMyLCAweGY4MTU1NjFkKSwgVE9CTigweDg1ZjQ4ZmY1LCAw
eGQzYzA1NWQxKSwKKyAgICAgICAgICAgVE9CTigweDIyMmExNDI3LCAweDc1MjU2ODRmKSwgVE9C
TigweGQwZDg0MWEwLCAweDY3MzYwY2MzKX19LAorICAgICAgICAge3tUT0JOKDB4NDI0NWE5MjYs
IDB4MGI5MjY3YzYpLCBUT0JOKDB4Yzc4OTEzZjEsIDB4Y2YwN2Y4NjMpLAorICAgICAgICAgICBU
T0JOKDB4YWE4NDRjOGUsIDB4NGQwZDllMjQpLCBUT0JOKDB4YTQyYWQ1MjIsIDB4M2Q1ZjkwMTcp
fSwKKyAgICAgICAgICB7VE9CTigweGJkMzcxNzQ5LCAweGEyYzk4OWQ1KSwgVE9CTigweDkyODI5
MmRmLCAweGUxZjVlNzhlKSwKKyAgICAgICAgICAgVE9CTigweDQ5M2IzODNlLCAweDBhMWVhNmRh
KSwgVE9CTigweDUxMzZmZDhkLCAweDEzYWVlNTI5KX19LAorICAgICAgICAge3tUT0JOKDB4ODYw
YzQ0YjEsIDB4ZjJjMzRhOTkpLCBUT0JOKDB4M2IwMGFjYTQsIDB4YmY1ODU1YWMpLAorICAgICAg
ICAgICBUT0JOKDB4YWJmNmFhYTAsIDB4ZmFhZjM3YmUpLCBUT0JOKDB4NjVmNDM2ODIsIDB4MmE1
M2VjMDgpfSwKKyAgICAgICAgICB7VE9CTigweDFkOWE1ODAxLCAweGExMWIxMmUxKSwgVE9CTigw
eDc4YTdhYjJjLCAweGUyMGVkNDc1KSwKKyAgICAgICAgICAgVE9CTigweDBkZTEwNjdlLCAweDlh
NDFlMGQ1KSwgVE9CTigweDMwNDczZjVmLCAweDMwNTAyM2VhKX19LAorICAgICAgICAge3tUT0JO
KDB4ZGQzYWUwOWQsIDB4MTY5YzdkOTcpLCBUT0JOKDB4NWNkNWJhYTQsIDB4Y2ZhZWY5Y2QpLAor
ICAgICAgICAgICBUT0JOKDB4NWNkNzQ0MGIsIDB4NjVhNDQ4MDMpLCBUT0JOKDB4ZGMxMzk2NmEs
IDB4NDdmMzY0ZGUpfSwKKyAgICAgICAgICB7VE9CTigweDA3N2IyYmU4LCAweDJiODM1N2MxKSwg
VE9CTigweDBjYjFiNGM1LCAweGU5ZDU3YzJhKSwKKyAgICAgICAgICAgVE9CTigweDdhNGNlYjMy
LCAweDA1ZmYzNjNlKSwgVE9CTigweGYzMTBmYTRkLCAweGNhMzVhOWVmKX19LAorICAgICAgICAg
e3tUT0JOKDB4ZGJiN2IzNTIsIDB4Zjk3ZjY4YzYpLCBUT0JOKDB4MGM3NzNiNTAsIDB4MGIwMmNm
NTgpLAorICAgICAgICAgICBUT0JOKDB4ZWEyZTQ4MjEsIDB4M2MxZjk2ZDkpLCBUT0JOKDB4ZmZi
MzU3YjAsIDB4ZWVlMDE4MTUpfSwKKyAgICAgICAgICB7VE9CTigweGI5YzkyNGNkLCAweGUwZjI4
MDM5KSwgVE9CTigweDBiMzZjOTVhLCAweDQ2YTNmYmU0KSwKKyAgICAgICAgICAgVE9CTigweDFm
YWFhZWE0LCAweDVlNDZkYjZjKSwgVE9CTigweGNhZTU3NWMzLCAweDE5MjhhYWZmKX19LAorICAg
ICAgICAge3tUT0JOKDB4N2Y2NzEzMDIsIDB4YTcwZGFiODYpLCBUT0JOKDB4ZmNiZDEyYTksIDB4
NzFjNThjZmMpLAorICAgICAgICAgICBUT0JOKDB4Y2JlZjlhY2YsIDB4YmVlMGNiOTIpLCBUT0JO
KDB4NTczZGEwYjksIDB4ZjhjMWI1ODMpfSwKKyAgICAgICAgICB7VE9CTigweDQ3NTJmY2ZlLCAw
eDBkNDFkNTUwKSwgVE9CTigweGU3ZWVjMGUzLCAweDIxNTVjZmZlKSwKKyAgICAgICAgICAgVE9C
TigweDBmYzM5ZmNiLCAweDU0NWFlMjQ4KSwgVE9CTigweDUyMmNiOGQxLCAweDgwNjVmNDRlKX19
LAorICAgICAgICAge3tUT0JOKDB4MjYzYzk2MmEsIDB4NzBjYmI5NmMpLCBUT0JOKDB4ZTAzNDM2
MmEsIDB4YmNkMTI0YTkpLAorICAgICAgICAgICBUT0JOKDB4ZjEyMGRiMjgsIDB4M2MyYWU1OGQp
LCBUT0JOKDB4YjlhMzhkNDksIDB4ZmVmNmQ1MDcpfSwKKyAgICAgICAgICB7VE9CTigweGIxZmQy
YTgyLCAweDFmZjE0MGZkKSwgVE9CTigweGJkMTYyZjMwLCAweDIwYWVlN2UwKSwKKyAgICAgICAg
ICAgVE9CTigweDRlMTdhNWQ0LCAweGNiMjUxOTQ5KSwgVE9CTigweDJhZWJjYjgzLCAweDRmN2Ux
YzNkKX19LAorICAgICAgICAge3tUT0JOKDB4NjA4ZWIyNWYsIDB4OTM3YjA1MjcpLCBUT0JOKDB4
ZjQyZTFlNDcsIDB4ZWI3ZDk5OTcpLAorICAgICAgICAgICBUT0JOKDB4ZWJhNjk5YzQsIDB4Yjhh
NTNhMjkpLCBUT0JOKDB4MWY5MjFjNzEsIDB4ZTA5MWI1MzYpfSwKKyAgICAgICAgICB7VE9CTigw
eGNjZTI5ZTdiLCAweDViMjZiYmQ1KSwgVE9CTigweDdhOGVmNWVkLCAweDNiNjFhNjgwKSwKKyAg
ICAgICAgICAgVE9CTigweGU1ZWY4MDQzLCAweGJhMWYxYzdlKSwgVE9CTigweDE2ZWE4MjE3LCAw
eDE4MTU4ZGRhKX19LAorICAgICAgICAge3tUT0JOKDB4MDE3NzhhMmIsIDB4NTk5ZmYwZjkpLCBU
T0JOKDB4NjhhOTIzZDcsIDB4ODEwNGZjNmIpLAorICAgICAgICAgICBUT0JOKDB4NWJmYTQ0ZGYs
IDB4ZGE2OTRmZjMpLCBUT0JOKDB4NGY3MTk5ZGIsIDB4Zjc2NjdmMTIpfSwKKyAgICAgICAgICB7
VE9CTigweGMwNmQ4ZmY2LCAweGU0NmYyYTc5KSwgVE9CTigweDA4YjVkZWFkLCAweGU5ZjgxMzFk
KSwKKyAgICAgICAgICAgVE9CTigweDAyNTE5YTU5LCAweGFiYjRjZTdjKSwgVE9CTigweGM0Zjcx
MGJjLCAweGI0MmFlYzNlKX19LAorICAgICAgICAge3tUT0JOKDB4M2Q3N2IwNTcsIDB4NzhiZGU0
MWEpLCBUT0JOKDB4NjQ3NGJmODAsIDB4YjQxODZiNWEpLAorICAgICAgICAgICBUT0JOKDB4MDQ4
YjNmNjcsIDB4ODhjNjU3NDEpLCBUT0JOKDB4YzY0NTE5ZGUsIDB4MDNjN2MxNTQpfSwKKyAgICAg
ICAgICB7VE9CTigweGRmMDczODQ2LCAweDBlZGZjYzRmKSwgVE9CTigweDMxOWFhNzM3LCAweDQ4
ZjFhYTZiKSwKKyAgICAgICAgICAgVE9CTigweDhiOWY4YTAyLCAweGNhOTA5Zjc3KSwgVE9CTigw
eDkwMjU4MTM5LCAweDc1ODBiZmVmKX19LAorICAgICAgICAge3tUT0JOKDB4ZDhiZmQzY2EsIDB4
YzBjMjI3MTkpLCBUT0JOKDB4YzYwMjA5ZTQsIDB4YzljYTE1MWUpLAorICAgICAgICAgICBUT0JO
KDB4N2E3NDRhYjUsIDB4ZDlhMWE2OWMpLCBUT0JOKDB4NmRlNTA0OGIsIDB4MTQ5MzdmOGYpfSwK
KyAgICAgICAgICB7VE9CTigweDE3MTkzOGQ4LCAweGUxMTVhYzA0KSwgVE9CTigweDdkZjcwOTQw
LCAweDFjNmIxNmQyKSwKKyAgICAgICAgICAgVE9CTigweGE2YWViNjYzLCAweDdmOGU5NGU3KSwg
VE9CTigweGMxMzAzODhlLCAweDJhMmNmMDk0KX19LAorICAgICAgICAge3tUT0JOKDB4MTg1MGJl
ODQsIDB4NzdmNTRlNmUpLCBUT0JOKDB4OWYyNThhNzIsIDB4NjVkNjBmZTUpLAorICAgICAgICAg
ICBUT0JOKDB4ZmY3ZmYwYzAsIDB4NmM5MTQ2ZDYpLCBUT0JOKDB4MDM5YWFmOTAsIDB4ZTYzYTgz
MGIpfSwKKyAgICAgICAgICB7VE9CTigweDM4ZjI3YTczLCAweDk0NjAzNDJmKSwgVE9CTigweDQ3
MDMxNDhjLCAweDNmNzk1ZjhhKSwKKyAgICAgICAgICAgVE9CTigweDFiYjU0NjdiLCAweDk2ODFh
OTdlKSwgVE9CTigweDAwOTMxYmE1LCAweGVjYWViNTk0KX19LAorICAgICAgICAge3tUT0JOKDB4
Y2RiNjcxOWQsIDB4Nzg2ZjMzN2MpLCBUT0JOKDB4ZDljMDFjZDIsIDB4ZTcwNDM5N2QpLAorICAg
ICAgICAgICBUT0JOKDB4MGY0YTNmMjAsIDB4NTU1YzJmZWYpLCBUT0JOKDB4MDA0NTI1MDksIDB4
N2MwYWYyMjMpfSwKKyAgICAgICAgICB7VE9CTigweDU0YTU4MDQ3LCAweDg0ZGI4ZTc2KSwgVE9C
TigweDNiYWNmMWFhLCAweDkzYzhhYTA2KSwKKyAgICAgICAgICAgVE9CTigweDExY2E5NTdjLCAw
eGY3OTE5NDIyKSwgVE9CTigweDUwNjQxMDUzLCAweDc4Y2RhYTQwKX19LAorICAgICAgICAge3tU
T0JOKDB4N2EzMDM4NzQsIDB4OWY3MTQ0YWUpLCBUT0JOKDB4MTcwYzk2M2YsIDB4NDNkNGFjZmQp
LAorICAgICAgICAgICBUT0JOKDB4NWUxNDgxNDksIDB4NThkZGQzZWYpLCBUT0JOKDB4YTdiZGU1
ODIsIDB4OWU3MmRiYTgpfSwKKyAgICAgICAgICB7VE9CTigweDA3NjlkYThiLCAweDZmYTY4NzUw
KSwgVE9CTigweGZhNjRlNTMyLCAweDU3MmUwMjQ5KSwKKyAgICAgICAgICAgVE9CTigweGZjYWFk
ZjlkLCAweDI2MTlhZDMxKSwgVE9CTigweDg3ODgyZGFhLCAweGE3YjM0OWNkKX19LAorICAgICAg
ICAge3tUT0JOKDB4OWY2ZWI3MzEsIDB4NmM2N2E3NzUpLCBUT0JOKDB4Y2IxMDQ3MWEsIDB4ZWZj
NWQwYjEpLAorICAgICAgICAgICBUT0JOKDB4YjQzMzc1MGMsIDB4ZTFiODA2YjIpLCBUT0JOKDB4
MTljNTcxNGQsIDB4NTdiMWFlN2UpfSwKKyAgICAgICAgICB7VE9CTigweGMwZGM4YjdiLCAweGVk
MDNmZDNmKSwgVE9CTigweGRkMDMzNDRmLCAweDMxYmMxOTRlKSwKKyAgICAgICAgICAgVE9CTigw
eGE2NmM1MmE3LCAweDhjNjMyMGI1KSwgVE9CTigweDhiYzgyY2UzLCAweGQwYjZmZDkzKX19LAor
ICAgICAgICAge3tUT0JOKDB4ZjhlMTM1MDEsIDB4YjM1ZjEzNDEpLCBUT0JOKDB4ZTUzMTU2ZGQs
IDB4MjVhNDNlNDIpLAorICAgICAgICAgICBUT0JOKDB4ZDNhZGYyN2UsIDB4NGRhZWI4NWMpLCBU
T0JOKDB4YjgxZDgzNzksIDB4YmJlZGRlYjUpfSwKKyAgICAgICAgICB7VE9CTigweDFiMGI1NDZl
LCAweDJlNDM1ODY3KSwgVE9CTigweDkwMjBlYjk0LCAweGViYTVkZDYwKSwKKyAgICAgICAgICAg
VE9CTigweDM3ZDkxMTYxLCAweDgyMTBjYjlkKSwgVE9CTigweDRjNTk2YjMxLCAweDVjOTFmMWNm
KX19LAorICAgICAgICAge3tUT0JOKDB4YjIyOGE5MGYsIDB4MGUwYjA0MGQpLCBUT0JOKDB4YmFm
MDJkODIsIDB4NDVmZjg5N2YpLAorICAgICAgICAgICBUT0JOKDB4MmFhYzc5ZTYsIDB4MDBmYTYx
MjIpLCBUT0JOKDB4MjQ4Mjg4MTcsIDB4OGUzNmY1NTcpfSwKKyAgICAgICAgICB7VE9CTigweGI5
NTIxZDMxLCAweDExM2VjMzU2KSwgVE9CTigweDllNDg4NjFlLCAweDE1ZWZmMWY4KSwKKyAgICAg
ICAgICAgVE9CTigweDJhYTFkNDEyLCAweGUwZDQxNzE1KSwgVE9CTigweDcxZjg2MjAzLCAweDUz
ZjEzMWI4KX19LAorICAgICAgICAge3tUT0JOKDB4ZjYwZGE4ZGEsIDB4M2ZkMTk0MDgpLCBUT0JO
KDB4NGFhNzE2ZGMsIDB4Mjc4ZDlkOTkpLAorICAgICAgICAgICBUT0JOKDB4Mzk0NTMxZjcsIDB4
YThjNTFjOTApLCBUT0JOKDB4YjU2MGIwZTgsIDB4ZjU5ZGI1MWMpfSwKKyAgICAgICAgICB7VE9C
TigweGEyOGZjOTkyLCAweGZhMzRiZGFkKSwgVE9CTigweGYwMjRmYTE0LCAweDljZDRmOGJkKSwK
KyAgICAgICAgICAgVE9CTigweDVjZjUzMGY3LCAweDIzYTlkMGQzKSwgVE9CTigweDYxNWNhMTkz
LCAweGUyOGM5YjU2KX19LAorICAgICAgICAge3tUT0JOKDB4NmQyYTQ4M2QsIDB4NmY3M2M1MWUp
LCBUT0JOKDB4YTRjYjI0MTIsIDB4ZWEwZGMyZGQpLAorICAgICAgICAgICBUT0JOKDB4NTA2NjNj
NDEsIDB4MWViOTE3ZmYpLCBUT0JOKDB4M2QzYTc0Y2YsIDB4ZWFkZTI5OWUpfSwKKyAgICAgICAg
ICB7VE9CTigweDI5YjM5OTBmLCAweDRhN2E5MjAyKSwgVE9CTigweGE5YmNjZjU5LCAweGE3YjE1
YzNkKSwKKyAgICAgICAgICAgVE9CTigweDY2YTNjY2RjLCAweGE1ZGY5MjA4KSwgVE9CTigweDQ4
MDI3YzE0LCAweDQzZjJmOTI5KX19LAorICAgICAgICAge3tUT0JOKDB4ZDM4NTM3N2MsIDB4NDBi
NTU3ZjApLCBUT0JOKDB4ZTAwMWMzNjYsIDB4Y2Q2ODQ2NjApLAorICAgICAgICAgICBUT0JOKDB4
MWIxOGVkNmIsIDB4ZTIxODNhMjcpLCBUT0JOKDB4ODc5NzM4ZDgsIDB4NjMyMTAzMjkpfSwKKyAg
ICAgICAgICB7VE9CTigweGE2ODdjNzRiLCAweGJkYTk0ODgyKSwgVE9CTigweGQxYmJjYzQ4LCAw
eGE2ODRiMjk5KSwKKyAgICAgICAgICAgVE9CTigweGFmNmYxMTEyLCAweDg2M2IzNzI0KSwgVE9C
TigweDY5NDNkMWI0LCAweDJjOGNlOWY4KX19LAorICAgICAgICAge3tUT0JOKDB4ZTA0NGEzYmIs
IDB4MDk4Y2FmYjQpLCBUT0JOKDB4MjdlZDIzMTAsIDB4NjBkNDhjYWYpLAorICAgICAgICAgICBU
T0JOKDB4NTQyYjU2NzUsIDB4M2EzMWI4NGQpLCBUT0JOKDB4Y2JmM2RkNTAsIDB4ZmNkZGJlZDcp
fSwKKyAgICAgICAgICB7VE9CTigweDI1MDMxZjE2LCAweDQxYjFkODMwKSwgVE9CTigweGE3ZWM4
NTFkLCAweGNiMGMxZTI3KSwKKyAgICAgICAgICAgVE9CTigweGFjMWM4ZmUwLCAweGI1YWU3NWRi
KSwgVE9CTigweGIyNGM3NTU3LCAweDA4YzUyMTIwKX19LAorICAgICAgICAge3tUT0JOKDB4NTdm
ODExZGMsIDB4MWQ0NjM2YzMpLCBUT0JOKDB4Zjg0MzY1MjYsIDB4NjgxYTk5MzkpLAorICAgICAg
ICAgICBUT0JOKDB4MWY2YmM2ZDksIDB4OWM4MWFkYjMpLCBUT0JOKDB4ODQwZjhhYzMsIDB4NWI3
ZDgwZDQpfSwKKyAgICAgICAgICB7VE9CTigweDczMWE5ODExLCAweGY0Mzg3ZjFhKSwgVE9CTigw
eDdjNTAxY2QzLCAweGI1MTU2ODgwKSwKKyAgICAgICAgICAgVE9CTigweGE1Y2E0YTA3LCAweGRm
ZTY4ODY3KSwgVE9CTigweGYxMjNkOGYwLCAweDVmY2VhMTIwKX19LAorICAgICAgICAge3tUT0JO
KDB4MWZiYjBlNzEsIDB4ZDYwNzAzOWUpLCBUT0JOKDB4MmI3MGUyMTUsIDB4Y2QzYTQ1NDYpLAor
ICAgICAgICAgICBUT0JOKDB4MzJkMmYwMWQsIDB4NTMzMjQwOTEpLCBUT0JOKDB4Yjc5NmZmMDgs
IDB4MTgwYWIxOWIpfSwKKyAgICAgICAgICB7VE9CTigweDMyZDg3YTg2LCAweDNjNTdjNGFhKSwg
VE9CTigweDJhZWQ5Y2FmLCAweGI3YzQ5YTI3KSwKKyAgICAgICAgICAgVE9CTigweDlmYjM1ZWFj
LCAweDMxNjMwZDk4KSwgVE9CTigweDMzOGU4Y2RmLCAweDVjM2UyMGEzKX19LAorICAgICAgICAg
e3tUT0JOKDB4ODBmMTYxODIsIDB4NjZjZGU4ZGIpLCBUT0JOKDB4NGUxNTk5ODAsIDB4MmQ3MmZk
MzYpLAorICAgICAgICAgICBUT0JOKDB4ZDdiOGYxM2IsIDB4OWI2ZTUwNzIpLCBUT0JOKDB4ZjUy
MTM5MDcsIDB4M2I3YjVkYzEpfSwKKyAgICAgICAgICB7VE9CTigweDRkNDMxZjFkLCAweDhjZTQz
OTZlKSwgVE9CTigweDM3YTFhNjgwLCAweGE3ZWQyMTQyKSwKKyAgICAgICAgICAgVE9CTigweGJm
Mzc1Njk2LCAweGQwMWFhZjZiKSwgVE9CTigweGFhMWMwYzU0LCAweGU2M2FhYjY2KX19LAorICAg
ICAgICAge3tUT0JOKDB4MzAxNDM2OGIsIDB4NGVkODA5NDApLCBUT0JOKDB4NjdlNmQwNTYsIDB4
N2E2ZmNlZGQpLAorICAgICAgICAgICBUT0JOKDB4N2MyMDhjNDksIDB4Y2E5NzU3OWYpLCBUT0JO
KDB4ZmUzZDdhODEsIDB4YTIzNTk3ZjYpfSwKKyAgICAgICAgICB7VE9CTigweDVlMjAzMjAyLCAw
eDdlMDk2YWUyKSwgVE9CTigweGIxZjNlMWU3LCAweDI0YjM5MzY2KSwKKyAgICAgICAgICAgVE9C
TigweDI2ZGEyNmYzLCAweDJmZGNkZmZjKSwgVE9CTigweDc5NDIyZjFkLCAweDYwOTdiZTgzKX19
fSwKKyAgICAgICAge3t7VE9CTigweDI2M2EyY2ZiLCAweDlkYjNiMzgxKSwgVE9CTigweDljM2Ey
ZGVlLCAweGQ0ZGYwYTRiKSwKKyAgICAgICAgICAgVE9CTigweDcyOGQwNmU5LCAweDdkMDRlNjFm
KSwgVE9CTigweDhiMWFkZmJjLCAweDQyNDQ5MzI1KX0sCisgICAgICAgICAge1RPQk4oMHg2ZWMx
ZDkzOSwgMHg3ZTA1M2ExYiksIFRPQk4oMHhlZTJiZTVjNywgMHg2NmRhZjcwNyksCisgICAgICAg
ICAgIFRPQk4oMHg4MGJhMWUxNCwgMHg4MTBhYzdhYiksIFRPQk4oMHhkZDJhZTc3OCwgMHhmNTMw
ZjE3NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDA0MzVkOTdhLCAweDIwNWI5ZDhiKSwgVE9CTigw
eDZlYjhmMDY0LCAweDA1Njc1NmQ0KSwKKyAgICAgICAgICAgVE9CTigweGQ1ZTg4YThiLCAweGI2
ZjgyMTBlKSwgVE9CTigweDA3MGVmMTJkLCAweGVjOWZkOWVhKX0sCisgICAgICAgICAge1RPQk4o
MHg0ZDg0OTUwNSwgMHgzYmNjODc2YSksIFRPQk4oMHgxMmE3NTMzOCwgMHhhNzQwNGNlMyksCisg
ICAgICAgICAgIFRPQk4oMHhkMjJiNDllMSwgMHhiOGExZGI1ZSksIFRPQk4oMHhlYzFmMjA1MSwg
MHgxNGJmYTVhZCl9fSwKKyAgICAgICAgIHt7VE9CTigweGFkYmFlYjc5LCAweGI2ODI4ZjM2KSwg
VE9CTigweDlkN2EwMjU4LCAweDAxYmQ1YjllKSwKKyAgICAgICAgICAgVE9CTigweGVkYTAxZTBk
LCAweDFlODQ0YjBjKSwgVE9CTigweDRiNjI1MTc1LCAweDg4N2VkZmM5KX0sCisgICAgICAgICAg
e1RPQk4oMHgxNDEwOWZkZCwgMHg5NjY5YjYyMSksIFRPQk4oMHg4OGEyY2E1NiwgMHhmNmY4N2I5
OCksCisgICAgICAgICAgIFRPQk4oMHhmZTJlYjc4OCwgMHgxNzBkZjZiYyksIFRPQk4oMHgwY2Vh
MDZmNCwgMHhmZmE0NzNmOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDQzZWQ4MWI1LCAweGM0ZTgz
ZDMzKSwgVE9CTigweGQ5ZjM1ODc5LCAweDVlZmQ0ODhiKSwKKyAgICAgICAgICAgVE9CTigweDE2
NGE2MjBmLCAweDlkZWI0ZDBmKSwgVE9CTigweGM2OTI3YmRiLCAweGFjNmE3Mzk0KX0sCisgICAg
ICAgICAge1RPQk4oMHg0NWMyOGRmNywgMHg5ZjllMGYwMyksIFRPQk4oMHgyODY4NjYxZSwgMHhm
Y2Q3ZTFhOSksCisgICAgICAgICAgIFRPQk4oMHg3Y2Y0ZThkMCwgMHhmZmEzNDhmMSksIFRPQk4o
MHg2YmQ0YzI4NCwgMHgzOTg1MzhlMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDI2MThhMDkxLCAw
eDI4OWE4NjE5KSwgVE9CTigweGVmNzk2ZTYwLCAweDY2NzFiMTczKSwKKyAgICAgICAgICAgVE9C
TigweDY2NGU0NmU1LCAweDkwOTBjNjMyKSwgVE9CTigweGEzODA2MmQ0LCAweDFlNjZmOGZiKX0s
CisgICAgICAgICAge1RPQk4oMHg2Yzc0NGEyMCwgMHgwNTczMjc0ZSksIFRPQk4oMHhkMDdiNjdl
NCwgMHhhOTI3MTM5NCksCisgICAgICAgICAgIFRPQk4oMHgzOTEyMjNiMiwgMHg2YmRjMGUyMCks
IFRPQk4oMHhiZTJkOTNmMSwgMHhlYjBhMDVhNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGYyM2Uy
ZTUzLCAweDNmMzZkMTQxKSwgVE9CTigweGU4NGJiM2Q0LCAweDRkZmNhNDQyKSwKKyAgICAgICAg
ICAgVE9CTigweGI4MDRhNDhkLCAweDZiN2MwMjNhKSwgVE9CTigweDFlMTZhOGZhLCAweDc2NDMx
YzNiKX0sCisgICAgICAgICAge1RPQk4oMHgxYjU0NTJhZCwgMHhkZGQ0NzJlMCksIFRPQk4oMHg3
ZDQwNWVlNywgMHgwZDFlZTEyNyksCisgICAgICAgICAgIFRPQk4oMHg1MGZjNmYxZCwgMHhmZmEy
NzU5OSksIFRPQk4oMHgzNTFhYzUzYywgMHhiZjM5MWIzNSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDdlZmExNGI4LCAweDQ0NDQ4OTZiKSwgVE9CTigweDY0OTc0ZDJmLCAweGY5NDAyN2ZiKSwKKyAg
ICAgICAgICAgVE9CTigweGVmZGNkMGU4LCAweGRlODQ0ODdkKSwgVE9CTigweDhjNDViMjYwLCAw
eDJiNDg5ODliKX0sCisgICAgICAgICAge1RPQk4oMHhhOGZjYmJjMiwgMHhkODQ2MzQ4NyksIFRP
Qk4oMHhkMWIyYjNmNywgMHgzZmJjNDc2YyksCisgICAgICAgICAgIFRPQk4oMHgyMWQwMDViNywg
MHhjOGY0NDNjMCksIFRPQk4oMHg1MThmMmU2NywgMHg0MGMwMTM5Yyl9fSwKKyAgICAgICAgIHt7
VE9CTigweDU2MDM2ZThjLCAweDA2ZDc1ZmMxKSwgVE9CTigweDJkY2Y3YmI3LCAweDMyNDlhODlm
KSwKKyAgICAgICAgICAgVE9CTigweDgxZGQxZDNkLCAweGUyNDVlN2RkKSwgVE9CTigweGY1Nzhk
YzRiLCAweGViZDZlMmE3KX0sCisgICAgICAgICAge1RPQk4oMHg0YzAyODkwMywgMHhkZjJjZTdh
MCksIFRPQk4oMHhhZWUzNjI4OCwgMHg5YzM5YWZhYyksCisgICAgICAgICAgIFRPQk4oMHhkYzg0
N2MzMSwgMHgxNDY0MDRhYiksIFRPQk4oMHg2MzA0YzBkOCwgMHhhNGU5NzgxOCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGFlNTFkY2EyLCAweGE5MWY2NzkxKSwgVE9CTigweDJhYmU0MTkwLCAweDli
YWE5ZWZjKSwKKyAgICAgICAgICAgVE9CTigweGQ5ZDJlMmY0LCAweDU1OWM3YWMxKSwgVE9CTigw
eGU4MmY0YjUxLCAweGZjOWY3NzNhKX0sCisgICAgICAgICAge1RPQk4oMHhhNzcxMzAyNywgMHg0
MDczZTgxYyksIFRPQk4oMHhjMDI3NmZhYywgMHhmYmI1OTZmYyksCisgICAgICAgICAgIFRPQk4o
MHgxZDgxOWZjOSwgMHhhNjg0ZjcwYyksIFRPQk4oMHgyOWI0N2ZkZCwgMHhjOWY3YjFlMCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDM1OGRlMTAzLCAweDQ1OWIxOTQwKSwgVE9CTigweGVjODgxYzU5
LCAweDViMDEzZTkzKSwKKyAgICAgICAgICAgVE9CTigweDUxNTc0YzkzLCAweDQ5NTMyYWQzKSwg
VE9CTigweDJkYjFkNDQ1LCAweGIzN2I0NmRlKX0sCisgICAgICAgICAge1RPQk4oMHhjNjQ0NWI4
NywgMHhkZjIzOWZkOCksIFRPQk4oMHhjNzE4YWY3NSwgMHgxNTFkMjRlZSksCisgICAgICAgICAg
IFRPQk4oMHhhZWExYzRhNCwgMHhmNDNjNjI1OSksIFRPQk4oMHg0MGMwZTVkNywgMHg3MGJlMDJm
Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDZhNDU5MGY0LCAweDcyMWIzM2YyKSwgVE9CTigweDIx
MjRmMWZiLCAweGZlZGYwNGVhKSwKKyAgICAgICAgICAgVE9CTigweGY4ZTUzY2RlLCAweDk3NDVl
ZmU3KSwgVE9CTigweGU3ZTEwNDMyLCAweDY1ZjA0NmQ5KX0sCisgICAgICAgICAge1RPQk4oMHhj
M2ZjYTI4ZSwgMHhlNGQwYzdlNiksIFRPQk4oMHg4NDdlMzM5YSwgMHg4NzI1M2IxYiksCisgICAg
ICAgICAgIFRPQk4oMHg5YjU5NTM0OCwgMHgzNzQzZTY0MyksIFRPQk4oMHhjYjZhMGEwYiwgMHg0
ZmQxMmZjNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGZiNjgzNmMzLCAweDI3ZDAyZGNjKSwgVE9C
TigweDVhZDAwOTgyLCAweDdhNjhiY2MyKSwKKyAgICAgICAgICAgVE9CTigweDFiMjRiNDRjLCAw
eDAwNWU5MTJkKSwgVE9CTigweGNjODNkMjBmLCAweDgxMWZkY2ZlKX0sCisgICAgICAgICAge1RP
Qk4oMHgzNjUyN2VjMSwgMHg2NjZmYmEwYyksIFRPQk4oMHg2OTk0ODE5NywgMHgxNDc1NDYzNSks
CisgICAgICAgICAgIFRPQk4oMHhmY2RjYjFhOCwgMHg1NTZkYTljMiksIFRPQk4oMHhhNTkzNDI2
NywgMHg4MWE3MzJiMil9fSwKKyAgICAgICAgIHt7VE9CTigweGVjMTIxNGVkLCAweGE3MTQxODFk
KSwgVE9CTigweDYwOWFjMTNiLCAweDYwNjdiMzQxKSwKKyAgICAgICAgICAgVE9CTigweGZmNGI0
Yzk3LCAweGE1NDVkZjFmKSwgVE9CTigweGExMjQwNTAxLCAweDM0ZDIwNzZiKX0sCisgICAgICAg
ICAge1RPQk4oMHg2ZWZhMGMyMywgMHgxNDA5Y2E5NyksIFRPQk4oMHgyNTRjYzFhOCwgMHgyMDYz
OGM0MyksCisgICAgICAgICAgIFRPQk4oMHhkNGUzNjNhZiwgMHhkY2ZiNDZjZCksIFRPQk4oMHg2
MmMyYWRjMywgMHgwMzk0MmEyNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGM2N2I5ZGYwLCAweDU2
ZTQ2NDgzKSwgVE9CTigweGE1NWFiYjIwLCAweDYzNzM2MzU2KSwKKyAgICAgICAgICAgVE9CTigw
eGFiOTNjMDk4LCAweGM1NTFiYzUyKSwgVE9CTigweDM4MmI0OWY5LCAweGIxNWZlNjRiKX0sCisg
ICAgICAgICAge1RPQk4oMHg5ZWMyMjFhZCwgMHg0ZGZmOGQ0NyksIFRPQk4oMHg3OWNhZjYxNSwg
MHg0MzdkZjRkNiksCisgICAgICAgICAgIFRPQk4oMHg1ZjEzZGM2NCwgMHhiYjQ1NjUwOSksIFRP
Qk4oMHhlNGM1ODlkOSwgMHgxOTFmMDcxNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDI3YjZhOGFi
LCAweDNmZDQwZTA5KSwgVE9CTigweGU0NTU4NDJlLCAweDc3MzEzZWE5KSwKKyAgICAgICAgICAg
VE9CTigweDhiNTFkMWUyLCAweDFmNTU5ODhiKSwgVE9CTigweDU3MTZkZDczLCAweDA2MmJiYmZj
KX0sCisgICAgICAgICAge1RPQk4oMHg2MzNjMTFlNSwgMHg0ZThiZjNkZSksIFRPQk4oMHg5YTBl
NzdiNiwgMHgxYjg1YmUzYiksCisgICAgICAgICAgIFRPQk4oMHg1NjUxMDcyOSwgMHgwOTExY2Nh
NiksIFRPQk4oMHgyN2U3NjQ5NSwgMHhlZmE2NTkwZil9fSwKKyAgICAgICAgIHt7VE9CTigweGU0
YWM4YjMzLCAweDA3MGQzYWFiKSwgVE9CTigweDI2NDM2NzJiLCAweDlhMmNkNWU1KSwKKyAgICAg
ICAgICAgVE9CTigweDUyZWZmNzliLCAweDFjZmM5MTczKSwgVE9CTigweDY2NWNhNDliLCAweDkw
YTdjMTNmKX0sCisgICAgICAgICAge1RPQk4oMHg1YThkZGE1OSwgMHhiM2VmYjk5OCksIFRPQk4o
MHg4YTViOTIyZCwgMHgwNTJmMTM0MSksCisgICAgICAgICAgIFRPQk4oMHhhZTllYmJhYiwgMHgz
Y2Y5YTUzMCksIFRPQk4oMHgzNTk4NmU3YiwgMHhmNTZkYTRkNyl9fSwKKyAgICAgICAgIHt7VE9C
TigweDNhNjM2YjVjLCAweGZmMzUxM2NjKSwgVE9CTigweGJiMGNmOGJhLCAweDMxOThmN2RkKSwK
KyAgICAgICAgICAgVE9CTigweGI4ZDQwNTIyLCAweDQxZjE2Zjg2KSwgVE9CTigweDc2MDU3NWQ4
LCAweGRlMTNhN2JmKX0sCisgICAgICAgICAge1RPQk4oMHgzNmY3NGUxNiwgMHg5ZjdhYTE4MSks
IFRPQk4oMHgxNjNhM2VjZiwgMHhmNTA5ZWQxYyksCisgICAgICAgICAgIFRPQk4oMHg2YWVhZDYx
ZiwgMHgzYzQwYTQ5MSksIFRPQk4oMHgxNThjOTVmYywgMHhkZmU4ZmNhYSl9fSwKKyAgICAgICAg
IHt7VE9CTigweGEzOTkxYjZlLCAweDEzY2RhNDZmKSwgVE9CTigweDc5NDgyNDE1LCAweDM0MmZh
ZWQwKSwKKyAgICAgICAgICAgVE9CTigweGYzYmE1YmRlLCAweDY2NmI1OTcwKSwgVE9CTigweDFk
NTJlNmJjLCAweGIyNmFiNmRkKX0sCisgICAgICAgICAge1RPQk4oMHg3NjhiYTFlNywgMHg4NjA4
ZGQzZCksIFRPQk4oMHg0OTMwZGIyYSwgMHhlYTA3NjU4NiksCisgICAgICAgICAgIFRPQk4oMHhk
OTU3NTcxNCwgMHhlN2RjMWFmYSksIFRPQk4oMHgxZmM3YmY3ZCwgMHhmN2M1ODgxNyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDZiNDdhY2NkLCAweGQ5ZWVlOTZjKSwgVE9CTigweDBjYTI3N2ZiLCAw
eGU1OGNlYzM3KSwKKyAgICAgICAgICAgVE9CTigweDExM2ZlNDEzLCAweGU3MDJjNDJhKSwgVE9C
TigweGRkMTc2NGVlLCAweGM0N2NiZTUxKX0sCisgICAgICAgICAge1RPQk4oMHgwNDFlN2NkZSwg
MHg3YjNlZDczOSksIFRPQk4oMHg1MGNiNzQ1OSwgMHg1Y2U5ZTFjMCksCisgICAgICAgICAgIFRP
Qk4oMHgzNTU2ODUxMywgMHgyOTI1YjIxMiksIFRPQk4oMHg3Y2ZmOTVjNCwgMHgwMDFiMDgxYyl9
fSwKKyAgICAgICAgIHt7VE9CTigweDYzZWU0Y2JkLCAweDgwODhiNDU0KSwgVE9CTigweGRiN2Yz
MmY3LCAweDlhOWUwYzhhKSwKKyAgICAgICAgICAgVE9CTigweGIzNzdkNDE4LCAweDZiMjQ0N2Ni
KSwgVE9CTigweGUzZTk4MmFhLCAweGQzNzAyMTliKX0sCisgICAgICAgICAge1RPQk4oMHgwNmNj
YzFlNCwgMHhjMmEyYTU5MyksIFRPQk4oMHg3MmMzNjg2NSwgMHgwNzczZjI0ZiksCisgICAgICAg
ICAgIFRPQk4oMHhhMTNiNGRhNywgMHg5NTg1OTQyMyksIFRPQk4oMHg4YmJmMWQzMywgMHg3NTA0
MGM4Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDcyNmYwOTczLCAweGRhNTBjOTkxKSwgVE9CTigw
eDQ4YWZjZDViLCAweDgyMmQ2ZWUyKSwKKyAgICAgICAgICAgVE9CTigweGU1ZmM3MThiLCAweDIw
ZmQ3NzcxKSwgVE9CTigweGI5ZThlNzdkLCAweGZkMDgwN2ExKX0sCisgICAgICAgICAge1RPQk4o
MHg3ZjVlMGY0NCwgMHg5OWE3NzAzZCksIFRPQk4oMHg2OTcyOTMwZSwgMHg2MThlMzZmMyksCisg
ICAgICAgICAgIFRPQk4oMHgyYjdjNzdiOCwgMHgyMzgwN2JiZSksIFRPQk4oMHhlNWI4MjQwNSwg
MHhjYjI3ZmY1MCl9fSwKKyAgICAgICAgIHt7VE9CTigweGJhOGI4YmUzLCAweGJkMzc5MDYyKSwg
VE9CTigweGQ2NGI3YTFkLCAweDJkY2U0YTkyKSwKKyAgICAgICAgICAgVE9CTigweDA0MGE3M2M1
LCAweGIyOTUyZTM3KSwgVE9CTigweDBhOWUyNTJlLCAweGQ0MzhhZWNhKX0sCisgICAgICAgICAg
e1RPQk4oMHhkZDQzOTU2YiwgMHhjMzlkM2JjYiksIFRPQk4oMHgxYTMxY2EwMCwgMHhiMzJiMmQ2
MyksCisgICAgICAgICAgIFRPQk4oMHhkNjcxMzNiOCwgMHg1YzQxN2ExOCksIFRPQk4oMHhkMDhl
NDc5MCwgMHgyZWY0NDJjOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk4Y2IxYWU5LCAweDI1NWMw
OTgwKSwgVE9CTigweDRiZDg2MzgxLCAweDJiNGE3MzlmKSwKKyAgICAgICAgICAgVE9CTigweDVh
NWMzMWUxLCAweDFlNGE0NWExKSwgVE9CTigweDFlNWQ1NWZlLCAweDljYjBkYjJmKX0sCisgICAg
ICAgICAge1RPQk4oMHg3NDY2MWIwNiwgMHg4ZmY1Y2MyOSksIFRPQk4oMHgwMjZiMzg5ZiwgMHgw
ZWI4YTRmNCksCisgICAgICAgICAgIFRPQk4oMHg1MzZiMjFhNCwgMHg1ODg0OGMyNCksIFRPQk4o
MHgyZTViZjhlYywgMHg4MWRjNzJiMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDAzYzE4N2QwLCAw
eGFkODg2YWFjKSwgVE9CTigweDVjMTY4NzhhLCAweGI3NzFiNjQ1KSwKKyAgICAgICAgICAgVE9C
TigweGIwN2RmYzZmLCAweGM3NDA0NWFiKSwgVE9CTigweDJjNjM2MGJmLCAweDc4MDBjYWVkKX0s
CisgICAgICAgICAge1RPQk4oMHgyNDI5NWJiNSwgMHhiOWM5NzJhMyksIFRPQk4oMHhjOWU2Zjg4
ZSwgMHg3YzlhNmRiYSksCisgICAgICAgICAgIFRPQk4oMHg5MGZmYmYyNCwgMHg5MmE3OWFhNiks
IFRPQk4oMHhkZTI5ZDUwYSwgMHg0MWMyNmFjMil9fSwKKyAgICAgICAgIHt7VE9CTigweDlmMGFm
NDgzLCAweGQzMDljYmU2KSwgVE9CTigweDViMDIwZDhhLCAweGUwYmNlZDRmKSwKKyAgICAgICAg
ICAgVE9CTigweDYwNmU5ODZkLCAweGIzODAyM2UzKSwgVE9CTigweGFkOGYyYzlkLCAweDFhYmM2
OTMzKX0sCisgICAgICAgICAge1RPQk4oMHgxOTI5MmUxZCwgMHhlNzQwMGU5MyksIFRPQk4oMHhm
ZTNlMThhOSwgMHg1MmJlNWU0ZCksCisgICAgICAgICAgIFRPQk4oMHhlOGU5NzcxZCwgMHgyZTA2
ODBiZiksIFRPQk4oMHg4YzViZWM5OCwgMHhjNTRkYjA2Myl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDJhZjk2NjJhLCAweDc0YTU1ZDFmKSwgVE9CTigweGUzZmJmMjhmLCAweDA0NmY2NmQ4KSwKKyAg
ICAgICAgICAgVE9CTigweGEzYTcyYWI0LCAweGQ0ZGM0Nzk0KSwgVE9CTigweDA5Nzc5ZjQ1LCAw
eDVjN2MyZGQ4KX0sCisgICAgICAgICAge1RPQk4oMHhkODkzYmRhZiwgMHhjM2QxOWQ4ZCksIFRP
Qk4oMHhkNWE3NTA5NCwgMHg1N2Q2YTZkZiksCisgICAgICAgICAgIFRPQk4oMHg4Y2Y4ZmVmOSwg
MHg5NTJlNjI1NSksIFRPQk4oMHgzZGE2N2NmYiwgMHhkYTlhOGFmZil9fSwKKyAgICAgICAgIHt7
VE9CTigweDRjMjNmNjJhLCAweDJjMTYwZGNkKSwgVE9CTigweDM0ZTZjNWUzLCAweDhmOTBlYWVm
KSwKKyAgICAgICAgICAgVE9CTigweDM1ODY1NTE5LCAweGE5YTY1ZDVhKSwgVE9CTigweDA3YzQ4
YWFlLCAweDhmZDM4YTNkKX0sCisgICAgICAgICAge1RPQk4oMHhiN2U3YWVkYSwgMHg1MDA2ODUy
NyksIFRPQk4oMHgyYzA5ZWYyMywgMHgxYzkwOTM2YSksCisgICAgICAgICAgIFRPQk4oMHgzMWVj
ZmViNiwgMHhlODc5MzI0YyksIFRPQk4oMHhhMDg3MWY2YiwgMHhmYjBlYzkzOCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGIxZjBmYjY4LCAweGQ4NGQ4MzVkKSwgVE9CTigweGM5MGNhZjM5LCAweDg2
MWRjMWU2KSwKKyAgICAgICAgICAgVE9CTigweDEyZTViMDQ2LCAweDc1OTRmOGQ3KSwgVE9CTigw
eDI2ODk3YWUyLCAweDY1MDEyYjkyKX0sCisgICAgICAgICAge1RPQk4oMHhiY2Y2OGEwOCwgMHhh
NGQ2NzU1ZCksIFRPQk4oMHg0MDNlZTQxYywgMHgwOTkxZmJkYSksCisgICAgICAgICAgIFRPQk4o
MHg3MzNlMzQzZSwgMHgzYmJmMTdlOCksIFRPQk4oMHhkMmM3OTgwZCwgMHg2NzliM2Q2NSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDMzMDU2MjMyLCAweGQyZTExMzA1KSwgVE9CTigweDk2NmJlNDky
LCAweGYzYzA3YTZmKSwKKyAgICAgICAgICAgVE9CTigweDZhODg3OGZmLCAweGJiMTU1MDlkKSwg
VE9CTigweGZmMjIxMTAxLCAweDBhOWI1OWE0KX0sCisgICAgICAgICAge1RPQk4oMHg2YzlmNTY0
YSwgMHhhYmUzMDEyOSksIFRPQk4oMHhjNmYyYzk0MCwgMHgzMzZlNjRjZiksCisgICAgICAgICAg
IFRPQk4oMHgwZmU3NTI2MiwgMHg4YjBjODAyMiksIFRPQk4oMHhiZTAyNjdlOSwgMHg2YWU4ZGI4
Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDIyZTE5MmYxLCAweDkzYmMwNDJiKSwgVE9CTigweGYw
ODViNTM0LCAweGIyMzdjNDU4KSwKKyAgICAgICAgICAgVE9CTigweGEwZDE5MmJkLCAweDgzMmM0
MTY4KSwgVE9CTigweDdhNzZlOWUzLCAweGJkZjYyNzFkKX0sCisgICAgICAgICAge1RPQk4oMHg1
MmE4ODJmYSwgMHhiODg5MTFiNSksIFRPQk4oMHhjODUzNDVlNCwgMHhiNGRiMGViNSksCisgICAg
ICAgICAgIFRPQk4oMHhhM2JlMDJhNiwgMHg4MWE3YzNmZiksIFRPQk4oMHg1MTg4OWM4YywgMHhm
MGVjMDQ2OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDlkMDMxMzY5LCAweGE1ZTgyOWU1KSwgVE9C
TigweGNiYjRjNmZjLCAweDE2MDdhYTQxKSwKKyAgICAgICAgICAgVE9CTigweDc1YWM1OWE2LCAw
eDI0MWQ4NGMxKSwgVE9CTigweGMwNDNmMmJmLCAweDg4MjllMGVlKX0sCisgICAgICAgICAge1RP
Qk4oMHg4MmEzOGY3NSwgMHg4ZWE1ZTE4NSksIFRPQk4oMHg4YmRhNDBiOSwgMHhkODdjYmQ5Ziks
CisgICAgICAgICAgIFRPQk4oMHg5ZTY1ZTc1ZSwgMHgyZDhmYzYwMSksIFRPQk4oMHgzZDUxNWY3
NCwgMHhhMzU2OTBiMyl9fSwKKyAgICAgICAgIHt7VE9CTigweDUzNGFjZjRmLCAweGRhNzllNWFj
KSwgVE9CTigweDY4YjgzYjNhLCAweDg2MzAyMTVmKSwKKyAgICAgICAgICAgVE9CTigweDVjNzQ4
YjJlLCAweGQwODU3NTZlKSwgVE9CTigweGIwMzE3MjU4LCAweGU1ZDM3Y2IyKX0sCisgICAgICAg
ICAge1RPQk4oMHg2NzM1ODQxYSwgMHhjNWNjYzJjNCksIFRPQk4oMHg3ZDdkYzk2YiwgMHgzZDlk
NTA2OSksCisgICAgICAgICAgIFRPQk4oMHhhMTQ3ZTQxMCwgMHhmZDE3NTRiZCksIFRPQk4oMHg2
NTI5NmU5NCwgMHhkMzk5ZGRkNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGY2YjViMmQwLCAweGJj
OGZhNWJjKSwgVE9CTigweDhhNWVhZDY3LCAweDUwMGMyNzdiKSwKKyAgICAgICAgICAgVE9CTigw
eDIxNDYyNWU2LCAweGRmYTA4YTVkKSwgVE9CTigweDUxZmRmZWRjLCAweDk1OWNmMDQ3KX0sCisg
ICAgICAgICAge1RPQk4oMHg2YmM5NDMwYiwgMHgyODlmY2EzMiksIFRPQk4oMHhlMzZmZjBjZiwg
MHg5ZDliZGMzZiksCisgICAgICAgICAgIFRPQk4oMHgyZmUxODdjYiwgMHg1OGVhMGVkZSksIFRP
Qk4oMHhlZDY2YWYyMCwgMHg1YTkwMGIzZil9fSwKKyAgICAgICAgIHt7VE9CTigweDAwZTA5Njhi
LCAweDVmYTlmNGQ2KSwgVE9CTigweDJkNDA2NmNlLCAweDM3YTM2MmU3KSwKKyAgICAgICAgICAg
VE9CTigweGE5OWE5NzQ4LCAweGJkMDdlNzcyKSwgVE9CTigweDcxMDk4OWMwLCAweDA2YTRmMWQw
KX0sCisgICAgICAgICAge1RPQk4oMHhkNWRlZGYzNSwgMHhjZTQwY2JkOCksIFRPQk4oMHhhYjU1
YzVmMCwgMHgxNzQzMjkzZCksCisgICAgICAgICAgIFRPQk4oMHg3NjZmMTE0NCwgMHg4YWEyNGUy
YyksIFRPQk4oMHg5NGQ4NzRmOCwgMHg2MDVmYmNiNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGEz
NjVmMGU4LCAweGE1MTgwMDFiKSwgVE9CTigweGVlNjA1ZWI2LCAweDlkMDRlZjBmKSwKKyAgICAg
ICAgICAgVE9CTigweDVhMzkxNWNkLCAweGJhOGQ0ZDI1KSwgVE9CTigweDQ0YzBlMWI4LCAweGI1
MTEzNDcyKX0sCisgICAgICAgICAge1RPQk4oMHhjYmIwMjRlOCwgMHg4YjY3NDBkYyksIFRPQk4o
MHg4OTA4N2E1MywgMHhlZTFkNGYwYyksCisgICAgICAgICAgIFRPQk4oMHhhODhmYTA1YywgMHgx
ZmM0ZTM3MiksIFRPQk4oMHg4YmYzOTVjYiwgMHhhZjhiM2FmMil9fSwKKyAgICAgICAgIHt7VE9C
TigweDFlNzFjOWExLCAweGRlYjg1NjhiKSwgVE9CTigweGEzNWRhZWEwLCAweDgwZmIzZDMyKSwK
KyAgICAgICAgICAgVE9CTigweGU4YjZmMjY2LCAweDJjZjhmYjgxKSwgVE9CTigweDZkNTFhZmU4
LCAweDk0OTA2OTZhKX0sCisgICAgICAgICAge1RPQk4oMHg4MWJlYWM2ZSwgMHg1MTgwM2ExOSks
IFRPQk4oMHhlM2QyNGI3ZiwgMHg4NjIxOTA4MCksCisgICAgICAgICAgIFRPQk4oMHg3MjdjZmQ5
ZCwgMHhkZjZmNDYzYyksIFRPQk4oMHg4YzY4NjVjYSwgMHg3MjI4NGVlOCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDMyYzg4YjdkLCAweGI3NDNmNGVmKSwgVE9CTigweDM3OTM5MDliLCAweGU3ZDEx
ZGNlKSwKKyAgICAgICAgICAgVE9CTigweGQzOThmOTIyLCAweDJmZjJlYmU4KSwgVE9CTigweDJj
NzBjYTQ0LCAweGU1ZTQ5Nzk2KX0sCisgICAgICAgICAge1RPQk4oMHhkZjRkOTkyOSwgMHhjYjEx
MzFiMSksIFRPQk4oMHg3ODI2ZjI5OCwgMHgyNTg4OGU3OSksCisgICAgICAgICAgIFRPQk4oMHg0
ZDNhMTEyYywgMHhmMWQ4NzQwYSksIFRPQk4oMHgwMDM4NGNiNiwgMHgyNzBhZmE4Yil9fSwKKyAg
ICAgICAgIHt7VE9CTigweGNiNjQxMjViLCAweDNhYjQ4MDk1KSwgVE9CTigweDM0NTFjMjU2LCAw
eDYyZDA1MTA2KSwKKyAgICAgICAgICAgVE9CTigweGQ3M2Q1NzdkLCAweGE0OTU1ODQ1KSwgVE9C
TigweDM5NTcwYzE2LCAweGJmOWY0NDMzKX0sCisgICAgICAgICAge1RPQk4oMHhkN2RmYWFkMywg
MHhhZGVjZjI2MyksIFRPQk4oMHhmMWMzZDhkMSwgMHhkYzc2ZTEwMiksCisgICAgICAgICAgIFRP
Qk4oMHg1ZTc3NGE1OCwgMHg1NGM2YTgzNiksIFRPQk4oMHhkYWQ0YjY3MiwgMHgzZTkyZDQ3Yil9
fSwKKyAgICAgICAgIHt7VE9CTigweGJlN2U5OTBmLCAweGYwZDc5NmEwKSwgVE9CTigweDVmYzYy
NDc4LCAweGRmMGU4YjAyKSwKKyAgICAgICAgICAgVE9CTigweDhhYWU4YmY0LCAweDAzMGMwMGFk
KSwgVE9CTigweDNkMmRiOTNiLCAweDkwMDRiYTBmKX0sCisgICAgICAgICAge1RPQk4oMHhlNDhj
OGE3OSwgMHhkODVkNWRkYyksIFRPQk4oMHhlOTA3Y2FhNywgMHg2YmIwN2YzNCksCisgICAgICAg
ICAgIFRPQk4oMHg1OGRiMzQzYSwgMHhhMzllYWVkNSksIFRPQk4oMHgwZWE2ZTAwNywgMHhhZGFm
NTcyNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGUwMGRmMTY5LCAweGQyMzIzM2YzKSwgVE9CTigw
eDNlMzIyNzk2LCAweDc3Y2I2MzdmKSwKKyAgICAgICAgICAgVE9CTigweDFmODk3YzBlLCAweDFk
YTBjZjZjKSwgVE9CTigweGE2NTFmNWQ4LCAweDMxZDZiYmRkKX0sCisgICAgICAgICAge1RPQk4o
MHhkZDYxYWYxOSwgMHgxYTIzMGM3NiksIFRPQk4oMHhiZDUyNzI3MiwgMHhjZGFhNWU0YSksCisg
ICAgICAgICAgIFRPQk4oMHhjYTc1MzYzNiwgMHhkMGFiY2Q3ZSksIFRPQk4oMHg3OGJkZDM3Yywg
MHgzNzBiZDhkYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGMyMzkxNmMyLCAweDE3Y2Q5M2ZlKSwg
VE9CTigweDY1Yjk3YTRkLCAweGRhZGNlNmUyKSwKKyAgICAgICAgICAgVE9CTigweGUwNGVkNGVi
LCAweDE3NGU0MmY4KSwgVE9CTigweDE0OTFjY2FhLCAweGJiMjE0ODBhKX0sCisgICAgICAgICAg
e1RPQk4oMHgxNDVhODI4MCwgMHgyMzE5NjMzMiksIFRPQk4oMHgzYzM4NjJkNywgMHg1ODdiNDc5
YSksCisgICAgICAgICAgIFRPQk4oMHg5ZjRhODhhMywgMHgwMWRjZDBlZCksIFRPQk4oMHg0ZGEy
YjdlZiwgMHgzZWExMmYxZil9fSwKKyAgICAgICAgIHt7VE9CTigweGY4ZTdhZTMzLCAweGIxMjZl
NDhlKSwgVE9CTigweDQwNGEwYjMyLCAweGY0OTRlMjM3KSwKKyAgICAgICAgICAgVE9CTigweDli
ZWFjNDc0LCAweGM1NWFjYWRiKSwgVE9CTigweDRlZTVjZjNiLCAweGNiZWM5ZmQ5KX0sCisgICAg
ICAgICAge1RPQk4oMHgzMzZiMzNiOSwgMHg3ZGYzYzhjMyksIFRPQk4oMHhiZDkwNWZlMywgMHhi
NzY4MDhmZCksCisgICAgICAgICAgIFRPQk4oMHg4ZjQzNjk4MSwgMHhhYTQ1YzE2YSksIFRPQk4o
MHgyNTVjNWJmYSwgMHgzZGQyN2I2Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDcxOTY1Y2JmLCAw
eGMzZGQ5YjRkKSwgVE9CTigweGNlMjNlZGJmLCAweGZjMDY4YTg3KSwKKyAgICAgICAgICAgVE9C
TigweGI3OGQ0NzI1LCAweDc0NWIwMjliKSwgVE9CTigweDc0NjEwNzEzLCAweGNlZmRkOWJkKX0s
CisgICAgICAgICAge1RPQk4oMHg3MTE2Zjc1ZiwgMHgxMjY2YmY1MiksIFRPQk4oMHgwMjA0Njcy
MiwgMHgxOGU0OWJiNiksCisgICAgICAgICAgIFRPQk4oMHhkZjQzZGY5ZiwgMHgzZDZmMTllMyks
IFRPQk4oMHhlZjFiYzdkMCwgMHhlNjg1Y2IyZil9fSwKKyAgICAgICAgIHt7VE9CTigweGNkZGIy
N2MxLCAweDcwNzhjNDMyKSwgVE9CTigweGUxOTYxYjljLCAweGI3N2ZlZGI3KSwKKyAgICAgICAg
ICAgVE9CTigweDFlZGMyZjVjLCAweGMyMjkwNTcwKSwgVE9CTigweDJjM2ZlZmNhLCAweDE5Y2Jk
ODg2KX0sCisgICAgICAgICAge1RPQk4oMHhjZjg4MGEzNiwgMHhjMmFmMzg5YSksIFRPQk4oMHg5
NmM2MTBmZCwgMHhiZGE3MWNlYSksCisgICAgICAgICAgIFRPQk4oMHhmMDM5NzdhOSwgMHgzMmFh
ODQ2MyksIFRPQk4oMHg4ZWI3NzYzZiwgMHg4NTg2ZDkwYSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDNmMzQyNDU0LCAweDJhMjk2ZTc3KSwgVE9CTigweGM4NzE4NjgzLCAweDQyODM3YTM1KSwKKyAg
ICAgICAgICAgVE9CTigweDdkYzcxMDkwLCAweDZhMDljNzMxKSwgVE9CTigweDU0Nzc4ZmZiLCAw
eDUxYjgxNmRiKX0sCisgICAgICAgICAge1RPQk4oMHg2YjMzYmZlYywgMHhhZjA2ZGVmZCksIFRP
Qk4oMHhmZTNjMTA1ZiwgMHg4NTkyYjcwYiksCisgICAgICAgICAgIFRPQk4oMHhmOTM3ZmRhNCwg
MHg2MWRhNjExNCksIFRPQk4oMHgzYzEzZTY1MSwgMHg0YzI2NmFkNyl9fSwKKyAgICAgICAgIHt7
VE9CTigweGUzNjNhODI5LCAweDg1NTkzOGU4KSwgVE9CTigweDJlZWI1ZDllLCAweDlkZTU0Yjcy
KSwKKyAgICAgICAgICAgVE9CTigweGJlYjkzYjBlLCAweDIwY2NmYWI5KSwgVE9CTigweDNkZmZi
YjVmLCAweDI1ZTYxYTI1KX0sCisgICAgICAgICAge1RPQk4oMHg3ZjY1NWU0MywgMHgxYWNjMDkz
ZCksIFRPQk4oMHgwY2I2Y2MzZCwgMHgzOTY0Y2U2MSksCisgICAgICAgICAgIFRPQk4oMHg2YWIy
ODNhMSwgMHhlNWU5YjQ2MCksIFRPQk4oMHg1NWQ3ODdjNSwgMHhhMWM3ZTcyZCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDRkMmVmZDQ3LCAweGRlYWRiZjAyKSwgVE9CTigweDExZTgwMjE5LCAweGFj
NDU5MDY4KSwKKyAgICAgICAgICAgVE9CTigweDgxMGM3NjI2LCAweDcxZjMxMWYwKSwgVE9CTigw
eGZhMTdlZjhkLCAweDRhYjZlZjUzKX0sCisgICAgICAgICAge1RPQk4oMHhhZjQ3ZmQyNSwgMHg5
M2U0M2JmZiksIFRPQk4oMHg1Y2I1ZmYzZiwgMHgwYmU0MDYzMiksCisgICAgICAgICAgIFRPQk4o
MHg1NDY4NzEwNiwgMHg4ZWU2MWRhMyksIFRPQk4oMHg3NzY0MTk2ZSwgMHhiMDhhZmQwZil9fSwK
KyAgICAgICAgIHt7VE9CTigweDgzMWFiM2VkLCAweGYwMjkwYThmKSwgVE9CTigweGNhZTgxOTY2
LCAweGNiNDdjMzg3KSwKKyAgICAgICAgICAgVE9CTigweGFhZDdkZWNlLCAweDE4NGVmYjRmKSwg
VE9CTigweGRjZmM1M2IzLCAweDQ3NDkxMTBlKX0sCisgICAgICAgICAge1RPQk4oMHg2Njk4ZjIz
YywgMHg0Y2I2MzJmOSksIFRPQk4oMHhjNDJhMWFkNiwgMHhiOTFmODA2NyksCisgICAgICAgICAg
IFRPQk4oMHhiMTE2YTgxZCwgMHg2Mjg0MTgwYSksIFRPQk4oMHhlYmVkZjVmOCwgMHhlOTAxMzI2
Zil9fSwKKyAgICAgICAgIHt7VE9CTigweGYyMjc0YzlmLCAweDk3ZTNlMDQ0KSwgVE9CTigweDQy
MDE4NTIwLCAweDExZDA5ZmM5KSwKKyAgICAgICAgICAgVE9CTigweDU2YTY1ZjE3LCAweGQxOGU2
ZTIzKSwgVE9CTigweDJlYTYxZTJhLCAweDM1MmI2ODNjKX0sCisgICAgICAgICAge1RPQk4oMHgy
N2QyOTFiYywgMHg1NzVlYWE5NCksIFRPQk4oMHg5ZTdiYzcyMSwgMHhiOGZmNTIyZCksCisgICAg
ICAgICAgIFRPQk4oMHg1ZjcyNjhiZiwgMHhhN2YwNGQ2ZiksIFRPQk4oMHg1ODY4YzczZiwgMHhh
YmE0MTc0OCl9fSwKKyAgICAgICAgIHt7VE9CTigweDlmODVjMmRiLCAweDdiZTBlZWFkKSwgVE9C
TigweDUxMWU3ODQyLCAweGZmNzE5MTM1KSwKKyAgICAgICAgICAgVE9CTigweDVhMDZiMWU5LCAw
eGM1ZWE5MGQ3KSwgVE9CTigweDBjMTllMjgzLCAweDI2ZmFiNjMxKX0sCisgICAgICAgICAge1RP
Qk4oMHg4YWY4ZjBjZiwgMHhlOTIwNmM1NSksIFRPQk4oMHg4OTM4OWNiNCwgMHgzNTUzYzA2YSks
CisgICAgICAgICAgIFRPQk4oMHgzOWRiZWQ5NywgMHhmNjVmODAwNCksIFRPQk4oMHgwNjIxYjAz
NywgMHhjNTA4OTkxZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDFjNTJlNjM1LCAweDk2ZTc4Y2M0
KSwgVE9CTigweDUzODVjOGIyLCAweDBjMDZiNGE4KSwKKyAgICAgICAgICAgVE9CTigweGQ4NGRk
ZmRiLCAweGIwZTg3ZDAzKSwgVE9CTigweGM0OWRmYjY2LCAweDkzNGJhZmFkKX0sCisgICAgICAg
ICAge1RPQk4oMHg3MDcxZTE3MCwgMHg1OWY3MDc3MiksIFRPQk4oMHgzYTA3M2E4NCwgMHgzYTFk
YjU2YiksCisgICAgICAgICAgIFRPQk4oMHgwMzQ5NDkwMywgMHgzYjhhZjE5MCksIFRPQk4oMHg3
ZDg4MmRlMywgMHhkMzI5MjBmMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDkxNjMzZjBhLCAweGIy
Y2Y4OTQwKSwgVE9CTigweDcyYjBiMTc4LCAweDZmOTQ4ZjUxKSwKKyAgICAgICAgICAgVE9CTigw
eDJkMjhkYzMwLCAweDc4MjY1M2M4KSwgVE9CTigweDg4ODI5ODQ5LCAweGRiOTAzYTA1KX0sCisg
ICAgICAgICAge1RPQk4oMHhiODA5NWQwYywgMHg2YTE5ZDJiYiksIFRPQk4oMHg0YjllN2YwYywg
MHg4NmY3ODJjYiksCisgICAgICAgICAgIFRPQk4oMHg3YWY3Mzk4OCwgMHgyZDkwNzA2NCksIFRP
Qk4oMHhkMTJiZTBmZSwgMHg4YjMyNjQzYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDM1OGVkMjNk
LCAweDBlMTY1ZGMzKSwgVE9CTigweDNkNDdjZTYyLCAweDRlMjM3OGNlKSwKKyAgICAgICAgICAg
VE9CTigweDdlMmJiMGI5LCAweGZlYjhhMDg3KSwgVE9CTigweDMyNDZlOGFlLCAweGUyOWUxMGI5
KX0sCisgICAgICAgICAge1RPQk4oMHg0NTlmNGVjNywgMHgwM2NlMmI0ZCksIFRPQk4oMHhlOWI0
Y2ExYiwgMHhiYmMwNzdjZiksCisgICAgICAgICAgIFRPQk4oMHgyNjEzYjRmMiwgMHgwZTk5NDBj
MSksIFRPQk4oMHhmYzU5OGJiOSwgMHgwNDdkMWViMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDk3
NDRjNjJiLCAweDQ1MDM2MDk5KSwgVE9CTigweGE5ZGVlNzQyLCAweDE2N2M2NWQ4KSwKKyAgICAg
ICAgICAgVE9CTigweDBjNTExNTI1LCAweGRhYmUxOTQzKSwgVE9CTigweGRhMTEwNTU0LCAweDkz
YzZjNjI0KX0sCisgICAgICAgICAge1RPQk4oMHhhZTAwYTUyYywgMHg2NTFhM2JlMiksIFRPQk4o
MHhjZGE1MTExZCwgMHg4ODQ0NDlhNiksCisgICAgICAgICAgIFRPQk4oMHgwNjNjMDZmNCwgMHhm
ZjMzYmVkMSksIFRPQk4oMHg3M2JhYWY5YSwgMHgwZDNkNzZiNCl9fSwKKyAgICAgICAgIHt7VE9C
TigweDUyZmIwYzlkLCAweDdmYzYzNjY4KSwgVE9CTigweDY4ODZjOWRkLCAweDBjMDM5Y2RlKSwK
KyAgICAgICAgICAgVE9CTigweDYwMmJkNTk5LCAweDU1YjIyMzUxKSwgVE9CTigweGIwMGNhYjAy
LCAweDM2MGM3YzEzKX0sCisgICAgICAgICAge1RPQk4oMHg4Y2I2MTZiYywgMHg4MWI2OTQ0Miks
IFRPQk4oMHg0MTQ4NjcwMCwgMHhiNTVjM2NlZSksCisgICAgICAgICAgIFRPQk4oMHg3MTA5MzI4
MSwgMHhmNDliYTI3OCksIFRPQk4oMHhhZDk1NmQ5YywgMHg2NGE1MDcxMCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDk1NjFmMjhiLCAweDYzOGE3ZTgxKSwgVE9CTigweDU0MTU1Y2RmLCAweDU5ODBk
ZGMzKSwKKyAgICAgICAgICAgVE9CTigweGIyZGI0YTk2LCAweGQyNmYyNDdhKSwgVE9CTigweDlk
Nzc0ZTRlLCAweDQ3ODdkMTAwKX0sCisgICAgICAgICAge1RPQk4oMHgxYTllNmUyZSwgMHgwNzg2
MzdkMiksIFRPQk4oMHgxYzM2M2UyZCwgMHg1ZTBhZTA2YSksCisgICAgICAgICAgIFRPQk4oMHg3
NDkzNDgzZSwgMHhlOWNmYTM1NCksIFRPQk4oMHg3Njg0M2NiMywgMHg3Zjc0Yjk4ZCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGJhY2E2NTkxLCAweGQ0YjY2OTQ3KSwgVE9CTigweGI0NTJjZTk4LCAw
eDA0NDYwYThjKSwKKyAgICAgICAgICAgVE9CTigweDY4MzBkMjQ2LCAweDQzNzY4ZjU1KSwgVE9C
TigweGY0MTk3ZWQ4LCAweDdkZmYxMmRmKX0sCisgICAgICAgICAge1RPQk4oMHg2NTIxYjQ3Miwg
MHg0MDBkZDBmNyksIFRPQk4oMHg1OWY1Y2E4ZiwgMHg0YjFlNzA5MyksCisgICAgICAgICAgIFRP
Qk4oMHg2ZmVmZjExYiwgMHgwODAzMzhhZSksIFRPQk4oMHgwYWRhMzFmNiwgMHhhMjljYTNjNil9
fSwKKyAgICAgICAgIHt7VE9CTigweDI0Nzk0ZWI2LCAweDk0YTJjMjE1KSwgVE9CTigweGQ4M2E0
M2FiLCAweDA1YTU3YWI0KSwKKyAgICAgICAgICAgVE9CTigweDI2NGE1NDNhLCAweDJhNmY4OWZl
KSwgVE9CTigweDJjMmEzODY4LCAweGRkNWVjN2MyKX0sCisgICAgICAgICAge1RPQk4oMHhkMzM3
Mzk0MCwgMHg4NDM5ZDliMiksIFRPQk4oMHg3MTVlYTY3MiwgMHgwYWNkMWYxMSksCisgICAgICAg
ICAgIFRPQk4oMHg0MmMxZDIzNSwgMHhlN2U2Y2MxOSksIFRPQk4oMHg4MWNlNmU5NiwgMHhiOTkw
NTg1Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDA0ZTVkZmUwLCAweGQ4MDljN2JkKSwgVE9CTigw
eGQ3YjI1ODBjLCAweDhmMTA1MGFiKSwKKyAgICAgICAgICAgVE9CTigweDZkOTFhZDc4LCAweGQ4
YTQxNzZmKSwgVE9CTigweDBhZjU1NmVlLCAweDRlMmU4OTdjKX0sCisgICAgICAgICAge1RPQk4o
MHgxNjJhOGI3MywgMHg5MjFkZTBhYyksIFRPQk4oMHg1MmFjOWMyMiwgMHg3ZWE3ODQwMCksCisg
ICAgICAgICAgIFRPQk4oMHhlZTJhNGVlYSwgMHhlZmNlMjE3NCksIFRPQk4oMHhiZTYxODQ0ZSwg
MHg2ZDYzN2Y3OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDA0OTFmMWJjLCAweDc4OWEyODNiKSwg
VE9CTigweDcyZDNhYzNkLCAweDg4MDgzNmY0KSwKKyAgICAgICAgICAgVE9CTigweGFhMWM1ZWEz
LCAweDg4ZTU0MDJkKSwgVE9CTigweDFiMTkyNDIxLCAweGQ1Y2M0NzNkKX0sCisgICAgICAgICAg
e1RPQk4oMHg1YzBiOTk5OCwgMHg5ZGM4NGNhYyksIFRPQk4oMHhiMGE4NDgyZCwgMHg5YzZlNzVi
OCksCisgICAgICAgICAgIFRPQk4oMHg2Mzk5NjFkMCwgMHgzYTE5MWNlMiksIFRPQk4oMHhkYTNi
Yzg2NSwgMHg2ZDgzNzkzMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGNhOTkwNjUzLCAweDA1NmU2
ZjhmKSwgVE9CTigweDg0ODYxYzQxLCAweDY0ZDEzM2E3KSwKKyAgICAgICAgICAgVE9CTigweDhi
NDAzMjc2LCAweDc0NmFiZTQwKSwgVE9CTigweGI3YjRkNTFhLCAweGViZjhlMzAzKX0sCisgICAg
ICAgICAge1RPQk4oMHgwNWI0MzIxMSwgMHgyMjBhMjU1ZCksIFRPQk4oMHhjOTk3MTUyYywgMHgw
MjQxOWU2ZSksCisgICAgICAgICAgIFRPQk4oMHg3NmZmNDdiNiwgMHg2MzBjMmZlYSksIFRPQk4o
MHg1MDUxODY3NywgMHgyODFmZGFkZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDMyODNiOGJhLCAw
eGNmOTAyYjBiKSwgVE9CTigweDhkNGI0ZWI1LCAweDM3ZGIzMDNiKSwKKyAgICAgICAgICAgVE9C
TigweGNjODlmNDJkLCAweDc1NTAxMWJjKSwgVE9CTigweGI0M2Q3NGJiLCAweGRkMDlkMTliKX0s
CisgICAgICAgICAge1RPQk4oMHg2NTc0NmJjOSwgMHg4YWRiYTM1MCksIFRPQk4oMHgzNjRlYWY4
YywgMHhiNTFjMTkyNyksCisgICAgICAgICAgIFRPQk4oMHgxM2M3NjU5NiwgMHgxMGFkNzJlYyks
IFRPQk4oMHgzMDA0NTEyMSwgMHhmOGQ0MGMyMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDZkMmQ5
OWI3LCAweGVhN2I5NzliKSwgVE9CTigweGNkNzhjZDc0LCAweGU2ZmIzYmNkKSwKKyAgICAgICAg
ICAgVE9CTigweDExZTQ1YTllLCAweDg2Y2ZmYmZlKSwgVE9CTigweDc4YTYxY2Y0LCAweDYzNzAy
NGY2KX0sCisgICAgICAgICAge1RPQk4oMHhkMDZiYzg3MiwgMHgzZDUwMjI5NSksIFRPQk4oMHhm
MTM3Njg1NCwgMHg0NThjYjI4OCksCisgICAgICAgICAgIFRPQk4oMHhiOWRiMjZhMSwgMHgzNDJm
ODU4NiksIFRPQk4oMHhmMzNlZmZjZiwgMHg0YmVlZTA5ZSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGQ3ZTBjNGNkLCAweGIzMGNmYjNhKSwgVE9CTigweDZkMDliOGMxLCAweDZjOWRiNGM4KSwKKyAg
ICAgICAgICAgVE9CTigweDQwYmExYTQyLCAweDA3YzhkOWRmKSwgVE9CTigweDZmZDQ5NWY3LCAw
eDFjNTJjNjZkKX0sCisgICAgICAgICAge1RPQk4oMHhmYjBlMTY5ZiwgMHgyNzUyNjRkYSksIFRP
Qk4oMHg4MGMyYjc0NiwgMHhlNTdkODM2MiksCisgICAgICAgICAgIFRPQk4oMHhlZGQ5ODdmNywg
MHg0OWFkNzIyMiksIFRPQk4oMHhmZGMyMjlhZiwgMHg0Mzk4ZWM3Yil9fX0sCisgICAgICAgIHt7
e1RPQk4oMHhiMGQxZWQ4NCwgMHg1MjY2NmE1OCksIFRPQk4oMHg0YmNiNmUwMCwgMHhlNmE5YzNj
MiksCisgICAgICAgICAgIFRPQk4oMHgzYzU3NDExYywgMHgyNjkwNjQwOCksIFRPQk4oMHhjZmMy
MDc1NSwgMHgxMzU1NjQwMCl9LAorICAgICAgICAgIHtUT0JOKDB4YTA4YjFjNTAsIDB4NTI5NGRi
YTMpLCBUT0JOKDB4YTMwYmEyODYsIDB4OGI3ZGQzMWUpLAorICAgICAgICAgICBUT0JOKDB4ZDcw
YmE5MGUsIDB4OTkxZWNhNzQpLCBUT0JOKDB4MDk0ZTE0MmMsIDB4ZTc2MmMyYjkpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhiODFkNzgzZSwgMHg5NzlmMzkyNSksIFRPQk4oMHgxZWZkMTMwYSwgMHhh
ZjRjODlhNyksCisgICAgICAgICAgIFRPQk4oMHg1MjVjMjE0NCwgMHhmZDFiZjdmYSksIFRPQk4o
MHg0YjI5NjkwNCwgMHgxYjI2NWE5ZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZWQ4ZTk2MzQsIDB4
YjlkYjY1YjYpLCBUT0JOKDB4MzVjODJlMzIsIDB4MDM1OTlkOGEpLAorICAgICAgICAgICBUT0JO
KDB4ZGFhN2E1NGYsIDB4NDAzNTYzZjMpLCBUT0JOKDB4OWRmMDg4YWQsIDB4MDIyYzM4YWIpfX0s
CisgICAgICAgICB7e1RPQk4oMHhlNWNmYjA2NiwgMHhiYjNmZDMwYSksIFRPQk4oMHg0MjkxNjlk
YSwgMHhlZmYwMzU0ZSksCisgICAgICAgICAgIFRPQk4oMHg4MDljZjg1MiwgMHgzNTI0ZTM2Yyks
IFRPQk4oMHgxMzZmNGZiMywgMHgwMTU1YmUxZCl9LAorICAgICAgICAgIHtUT0JOKDB4NDgyNmFm
MDEsIDB4MWZiYmE3MTIpLCBUT0JOKDB4NmVmMGYwYjQsIDB4NTA2YmExYTEpLAorICAgICAgICAg
ICBUT0JOKDB4ZDk5MjhiMzEsIDB4NzdhZWE3M2UpLCBUT0JOKDB4ZTJiZjZhZjIsIDB4NWVhYTI0
NGUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4ZDA4NGYxMiwgMHg0MjM3YjY0YiksIFRPQk4oMHg2
ODhlYmU5OSwgMHhlM2VjZmQwNyksCisgICAgICAgICAgIFRPQk4oMHg1N2I4YTcwYywgMHhmNjg0
NWRkOCksIFRPQk4oMHg4MDhmYzU5YywgMHg1ZGE0YTMyNSl9LAorICAgICAgICAgIHtUT0JOKDB4
YTkwMzJiMmIsIDB4YTM1ODU4NjIpLCBUT0JOKDB4YjY2ODI1ZDUsIDB4ZWRmMjkzODYpLAorICAg
ICAgICAgICBUT0JOKDB4YjVhNWE4ZGIsIDB4NDMxZWMyOWIpLCBUT0JOKDB4YmIxNDNhOTgsIDB4
M2ExZThkYzgpfX0sCisgICAgICAgICB7e1RPQk4oMHgzNWVlOTRjZSwgMHgxMmFlMzgxYiksIFRP
Qk4oMHgzYTdmMTc2YywgMHg4NmNjZGE5MCksCisgICAgICAgICAgIFRPQk4oMHhjNjNhNjU3ZSwg
MHg0NjA2ZWFjYSksIFRPQk4oMHg5YWU1YTM4MCwgMHg0M2NkMDRkZil9LAorICAgICAgICAgIHtU
T0JOKDB4OWJlYzhkMTUsIDB4ZWQyNTFiNDYpLCBUT0JOKDB4MWY1ZDZkMzAsIDB4Y2FjYTVlNjQp
LAorICAgICAgICAgICBUT0JOKDB4MzQ3YjNiMzUsIDB4OWZmMjBmMDcpLCBUT0JOKDB4NGQ2NWYw
MzQsIDB4ZjdlNGIyODYpfX0sCisgICAgICAgICB7e1RPQk4oMHg5ZTkzYmEyNCwgMHhmMTExNjYx
ZSksIFRPQk4oMHhlZGNlZDQ4NCwgMHhiMTA1ZWIwNCksCisgICAgICAgICAgIFRPQk4oMHg5NmRj
OWJhMSwgMHhmNDI0YjU3OCksIFRPQk4oMHhiZjhmNjZiNywgMHhlODNlOTA2OSl9LAorICAgICAg
ICAgIHtUT0JOKDB4ODcyZDRkZjQsIDB4ZDdlZDgyMTYpLCBUT0JOKDB4YmYwN2YzNzcsIDB4OGUy
Y2JlY2YpLAorICAgICAgICAgICBUT0JOKDB4NDI4MWQ4OTksIDB4OThlNzM3NTQpLCBUT0JOKDB4
ZmVjODVmYmIsIDB4OGFhYjg3MDgpfX0sCisgICAgICAgICB7e1RPQk4oMHg5YTNjMGRlZSwgMHhh
NWJhNWIwYiksIFRPQk4oMHhlNmExMTZjZSwgMHg0MmQwNTI5OSksCisgICAgICAgICAgIFRPQk4o
MHhhZTk3NzVmZSwgMHhlOWIwMmQ0MiksIFRPQk4oMHg3MmIwNTIwMCwgMHhhMTU0NWNiNil9LAor
ICAgICAgICAgIHtUT0JOKDB4YmM1MDZmN2QsIDB4MzFhM2I0ZWEpLCBUT0JOKDB4ZTU4OTMwNzgs
IDB4OGJiZDliMzIpLAorICAgICAgICAgICBUT0JOKDB4YzhiYzVmMzcsIDB4ZTRiMTJhOTcpLCBU
T0JOKDB4NmIwMDBjMDYsIDB4NGE3M2I2NzEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxM2I1YmYy
MiwgMHg3NjVmYTdkMCksIFRPQk4oMHg1OTgwNWJmMCwgMHgxZDZhNTM3MCksCisgICAgICAgICAg
IFRPQk4oMHg2N2E1ZTI5ZCwgMHg0MjgwZGI5OCksIFRPQk4oMHg0ZjUzOTE2ZiwgMHg3NzZiMWNl
Myl9LAorICAgICAgICAgIHtUT0JOKDB4NzE0ZmY2MWYsIDB4MzNkZGY2MjYpLCBUT0JOKDB4NDIw
NjIzOGUsIDB4YTA4NWQxMDMpLAorICAgICAgICAgICBUT0JOKDB4MWM1MGQ0YjcsIDB4ZTU4MDll
ZTMpLCBUT0JOKDB4OTk5ZjQ1MGQsIDB4ODVmOGViMWQpfX0sCisgICAgICAgICB7e1RPQk4oMHg2
NThhNjA1MSwgMHhlNGM3OWU5YiksIFRPQk4oMHgxMzk0Y2I3MywgMHhjNjZhOWZlYSksCisgICAg
ICAgICAgIFRPQk4oMHgyN2YzMWVkNSwgMHhjNmJlN2IyMyksIFRPQk4oMHhmNGM4OGYzNiwgMHg1
YWE2ZjhmZSl9LAorICAgICAgICAgIHtUT0JOKDB4MGZiMDcyMWYsIDB4NGFhYTQ5OWUpLCBUT0JO
KDB4NjhiM2E3ZDUsIDB4ZTNmYjJhNmIpLAorICAgICAgICAgICBUT0JOKDB4YTc4ODA5N2QsIDB4
M2E5Mjg1MWQpLCBUT0JOKDB4MDYwZTdmOGEsIDB4ZTk2ZjQ5MTMpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg4MmVlYmU3MywgMHgxYTNhOTNiYyksIFRPQk4oMHg0MmJiZjQ2NSwgMHhhMjFhZGMxYSks
CisgICAgICAgICAgIFRPQk4oMHhjMTBiNmZhNCwgMHhlZjAzMGVmZCksIFRPQk4oMHgyNDdhYTRj
NywgMHg4N2IwOTdiYil9LAorICAgICAgICAgIHtUT0JOKDB4OGI4ZGM2MzIsIDB4ZjYwYzc3ZGEp
LCBUT0JOKDB4NmZmYmMyNmEsIDB4YzIyMzUyM2UpLAorICAgICAgICAgICBUT0JOKDB4YTRmNmZm
MTEsIDB4MzQ0NTc5Y2YpLCBUT0JOKDB4NTgyNTY1M2MsIDB4OTgwMjUwZjYpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhiMmRkMDk3ZSwgMHhiYzFhYTJiOSksIFRPQk4oMHgwNzg4OTM5MywgMHgzN2Ew
MzMzYSksCisgICAgICAgICAgIFRPQk4oMHgxY2Y1NWU3MSwgMHgzN2EwZGIzOCksIFRPQk4oMHgy
NjQ4NDg3ZiwgMHg3OTJjMTYxMyl9LAorICAgICAgICAgIHtUT0JOKDB4ZGFkMDEzMzYsIDB4M2Zj
ZWYyNjEpLCBUT0JOKDB4NjIzOWM4MWQsIDB4MGVhYmYxMjkpLAorICAgICAgICAgICBUT0JOKDB4
OGVlNzYxZGUsIDB4OWQyNzZiZTIpLCBUT0JOKDB4NDA2YTdhMzQsIDB4MWVkYTZhZDMpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg0YmYzNjdiYSwgMHg0YTQ5M2IzMSksIFRPQk4oMHg1NGYyMGE1Miwg
MHg5YmY3ZjAyNiksCisgICAgICAgICAgIFRPQk4oMHhiNjk2ZTA2MiwgMHg5Nzk1OTE0YiksIFRP
Qk4oMHhjZGRhYjk2ZCwgMHg4YmYyMzZhYyl9LAorICAgICAgICAgIHtUT0JOKDB4NGZmMmM3MGEs
IDB4ZWQyNWVhMTMpLCBUT0JOKDB4ZmExZDA5ZWIsIDB4ODFjYmJiZTcpLAorICAgICAgICAgICBU
T0JOKDB4ODhmYzhjODcsIDB4NDY4NTQ0YzUpLCBUT0JOKDB4ODQ3YTY3MGQsIDB4Njk2YjMzMTcp
fX0sCisgICAgICAgICB7e1RPQk4oMHhmMTMzNDIxZSwgMHg2NGJjYjYyNiksIFRPQk4oMHhhZWE2
MzhjOCwgMHgyNmRlZTBiNSksCisgICAgICAgICAgIFRPQk4oMHhkNmU3NjgwYiwgMHhiMzEwMzQ2
YyksIFRPQk4oMHhlMDZmNDA5NywgMHhkNWQ0Y2VkMyl9LAorICAgICAgICAgIHtUT0JOKDB4MDk5
NjE0NTIsIDB4NzUxMmEzMGIpLCBUT0JOKDB4ZjNkODY3ZmQsIDB4ZTU4OWE1OWEpLAorICAgICAg
ICAgICBUT0JOKDB4MmU3MzI1NGYsIDB4NTJkMGMxODApLCBUT0JOKDB4OTA2M2Q4YTMsIDB4MzMz
Yzc0YWMpfX0sCisgICAgICAgICB7e1RPQk4oMHhlZGE2YzU5NSwgMHhkMzE0ZTdiYyksIFRPQk4o
MHgyZWU3NDY0YiwgMHg0Njc4OTllZCksCisgICAgICAgICAgIFRPQk4oMHgxY2VmNDIzYywgMHgw
YTFlZDVkMyksIFRPQk4oMHgyMTdlNzZlYSwgMHg2OWNjNzYxMyl9LAorICAgICAgICAgIHtUT0JO
KDB4MjdjY2NlMWYsIDB4ZTdjZGE5MTcpLCBUT0JOKDB4MTJkODAxNmIsIDB4OGE4OTNmMTYpLAor
ICAgICAgICAgICBUT0JOKDB4YmNkNmRlODQsIDB4OWZjNzRmNmIpLCBUT0JOKDB4ZmE1ODE3ZTIs
IDB4ZjMxNDRlNjEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxZjM1NDE2NCwgMHgwODIxZWU0Yyks
IFRPQk4oMHgxNTgzZWFiNCwgMHgwYmM2MTk5MiksCisgICAgICAgICAgIFRPQk4oMHg3NDkwY2Fm
NiwgMHgxZDcyODc5ZiksIFRPQk4oMHg5OThhZDlmMywgMHhmNzZhZTdiMil9LAorICAgICAgICAg
IHtUT0JOKDB4MWUxODE5NTAsIDB4YTQxMTU3ZjcpLCBUT0JOKDB4YTlkN2UxZTYsIDB4ZThkYTNh
N2UpLAorICAgICAgICAgICBUT0JOKDB4OTYzNzg0ZWIsIDB4ODQyNmI5NWYpLCBUT0JOKDB4MGVl
NGVkNmUsIDB4NTQyZTJhMTApfX0sCisgICAgICAgICB7e1RPQk4oMHhiNzlkNGNjNSwgMHhhYzc1
MWU3YiksIFRPQk4oMHg5M2Y5NjQ3MiwgMHhmZDQyMTFiZCksCisgICAgICAgICAgIFRPQk4oMHg4
YzcyZDNkMiwgMHhjOGRlNGZjNiksIFRPQk4oMHg3YjY5Y2JmNSwgMHhkZjQ0ZjA2NCl9LAorICAg
ICAgICAgIHtUT0JOKDB4M2RhOTBjYTIsIDB4ZjRiZjk0ZTEpLCBUT0JOKDB4MWE1MzI1ZjgsIDB4
ZjEyODk0ZTIpLAorICAgICAgICAgICBUT0JOKDB4MGE0MzdmNmMsIDB4NzkxN2Q2MGIpLCBUT0JO
KDB4OWJlNzA0ODYsIDB4OTZjOWNiNWQpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNGQ4ODBiZiwg
MHhlMWRjNWMwNSksIFRPQk4oMHhkNzM4YWRkYSwgMHhlZWJlZWI1NyksCisgICAgICAgICAgIFRP
Qk4oMHg2ZjAxMTlkMywgMHhkZjBmZTZhMyksIFRPQk4oMHg1YzY4NmU1NSwgMHg2NmVhYWY1YSl9
LAorICAgICAgICAgIHtUT0JOKDB4OWNiMTBiNTAsIDB4ZGZkMGI3ZWMpLCBUT0JOKDB4YmRkMDI2
NGIsIDB4NmE0OTdjMjEpLAorICAgICAgICAgICBUT0JOKDB4ZmMwOTM1MTQsIDB4OGM1NDZjOTYp
LCBUT0JOKDB4NThhOTQ3ZmEsIDB4NzlkYmY0MmEpfX0sCisgICAgICAgICB7e1RPQk4oMHhjMGI0
OGQ0ZSwgMHg0OWNjZDZkNyksIFRPQk4oMHhmZjhmYjAyYywgMHg4OGJkNTU4MCksCisgICAgICAg
ICAgIFRPQk4oMHhjNzUyMzVlOSwgMHgwN2Q0NzNiMiksIFRPQk4oMHg0ZmFiMWFjNSwgMHhhMjE4
OGFmMyl9LAorICAgICAgICAgIHtUT0JOKDB4MDMwZmEzYmMsIDB4OTc1NzZlYzApLCBUT0JOKDB4
ZThjOTQ2ZTgsIDB4MGI3ZTdkMmYpLAorICAgICAgICAgICBUT0JOKDB4NDBhNWM5Y2MsIDB4NzAz
MDU2MDApLCBUT0JOKDB4NmQ4MjYwYTksIDB4YzhiMDEzYjQpfX0sCisgICAgICAgICB7e1RPQk4o
MHgwMzY4MzA0ZiwgMHg3MGJiYTg1YyksIFRPQk4oMHhhZDA5MGRhMSwgMHhhNGEwZDMxMSksCisg
ICAgICAgICAgIFRPQk4oMHg3MTcwZTg3MCwgMHgyNDE1ZWVjMSksIFRPQk4oMHhiZmJhMzVmZSwg
MHg4NDYxZWE0Nyl9LAorICAgICAgICAgIHtUT0JOKDB4NjI3OTAxOWEsIDB4YzFlOTE5MzgpLCBU
T0JOKDB4YTQ3NjM4ZjMsIDB4MWFmYzQxNWYpLAorICAgICAgICAgICBUT0JOKDB4MzZjNjVjYmIs
IDB4YmNiYTBlMGYpLCBUT0JOKDB4MDIxNjBlZmIsIDB4MDM0ZTJjNDgpfX0sCisgICAgICAgICB7
e1RPQk4oMHhlNmM1MTA3MywgMHg2MTVjZDllNCksIFRPQk4oMHg0OThlYzA0NywgMHhmMTI0M2Mw
NiksCisgICAgICAgICAgIFRPQk4oMHgzZTVhODgwOSwgMHhiMTdiM2Q4YyksIFRPQk4oMHg1Y2Q5
OWU2MSwgMHgwY2M1NjVmMSl9LAorICAgICAgICAgIHtUT0JOKDB4ODFlMzEyZGYsIDB4Nzg1MWRh
ZmUpLCBUT0JOKDB4ZjE1NmY1YmEsIDB4YTc5MDYxZTIpLAorICAgICAgICAgICBUT0JOKDB4ODBk
NjJiNzEsIDB4ODgwYzU5MGUpLCBUT0JOKDB4YmVjOTc0NmYsIDB4MGEzOWZhYTEpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgxZDk4YTljMSwgMHhjOGVkMWY3YSksIFRPQk4oMHgwOWU0M2JiNSwgMHhh
ODFkNWZmMiksCisgICAgICAgICAgIFRPQk4oMHhkNWYwMGY2OCwgMHgwZGEwNzk0YSksIFRPQk4o
MHg0MTIwNTBkOSwgMHg2NjFhYTgzNil9LAorICAgICAgICAgIHtUT0JOKDB4YTg5ZjdjNGUsIDB4
OTA3NDdlNDApLCBUT0JOKDB4NmRjMDVlYmIsIDB4YjYyYTM2ODYpLAorICAgICAgICAgICBUT0JO
KDB4ZGY0ZGU4NDcsIDB4MzA4ZTMzNTMpLCBUT0JOKDB4NTM4NjhmYmIsIDB4OWZiNTNiYjkpfX0s
CisgICAgICAgICB7e1RPQk4oMHgyYjA5ZDJjMywgMHhjZmRjZjdkZCksIFRPQk4oMHg0MWE5ZmNl
MywgMHg3MjNmY2FiNCksCisgICAgICAgICAgIFRPQk4oMHg3M2Q5MDVmNywgMHgwN2Y1N2NhMyks
IFRPQk4oMHgwODBmOWZiMSwgMHhhYzhlMTU1NSl9LAorICAgICAgICAgIHtUT0JOKDB4N2MwODhl
ODQsIDB4OWJhN2E1MzEpLCBUT0JOKDB4MDdkMzU1ODYsIDB4ZWQ5YTE0N2YpLAorICAgICAgICAg
ICBUT0JOKDB4NjAyODQ2YWIsIDB4YWY0OGMzMzYpLCBUT0JOKDB4NzMyMGZkMzIsIDB4MGNjZjBl
NzkpfX0sCisgICAgICAgICB7e1RPQk4oMHhhYTc4MDc5OCwgMHhiMThiZDFmZiksIFRPQk4oMHg1
MmMyZTMwMCwgMHhhZmRkMjkwNSksCisgICAgICAgICAgIFRPQk4oMHhmMjdlYTNkNiwgMHg0MzQy
NjdjZCksIFRPQk4oMHg4Yjk2ZDE2ZCwgMHgxNTYwNWI1Zil9LAorICAgICAgICAgIHtUT0JOKDB4
N2JiMzEwNDksIDB4NGI0NTcwNmIpLCBUT0JOKDB4ZTdmNThiOGUsIDB4NzQzZDI1ZjgpLAorICAg
ICAgICAgICBUT0JOKDB4ZTliNWU0NWIsIDB4ODdmMzAwNzYpLCBUT0JOKDB4ZDE5NDQ4ZDYsIDB4
NWQwNTNkNWEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxZWNjOGNiOSwgMHhkMzIxMGEwNCksIFRP
Qk4oMHg2YmM3ZDQ2MywgMHhkYWZiNTI2OSksCisgICAgICAgICAgIFRPQk4oMHgzZTU5YjEwYSwg
MHg2N2MzNDg5ZiksIFRPQk4oMHgxNzY5Nzg4YywgMHg2NTY0MWUxYil9LAorICAgICAgICAgIHtU
T0JOKDB4OGE1M2I4MmQsIDB4YmQ2Y2I4MzgpLCBUT0JOKDB4NzA2NmQ2ZTYsIDB4MjM2ZDVmMjIp
LAorICAgICAgICAgICBUT0JOKDB4MDNhYTFjNjEsIDB4NjkwODUzNmUpLCBUT0JOKDB4Yzk3MWRh
MGQsIDB4NjZhZTk4MDkpfX0sCisgICAgICAgICB7e1RPQk4oMHgwMWIzYTg2YiwgMHhjNDlhMmZh
YyksIFRPQk4oMHgzYjg0MjBjMCwgMHgzMDkyZTc3YSksCisgICAgICAgICAgIFRPQk4oMHgwMjA1
NzMwMCwgMHg3ZDZmYjU1NiksIFRPQk4oMHg2OTQxYjJhMSwgMHhiZmY0MGE4Nyl9LAorICAgICAg
ICAgIHtUT0JOKDB4MTQwYjYzMDgsIDB4MDY1OGZmMmEpLCBUT0JOKDB4ODc4MDQzNjMsIDB4MzQy
NGFiMzYpLAorICAgICAgICAgICBUT0JOKDB4MDI1M2JkNTEsIDB4NTc1MWUyOTkpLCBUT0JOKDB4
Yzc1YmNkNzYsIDB4NDQ5YzNlM2EpfX0sCisgICAgICAgICB7e1RPQk4oMHg5MmViNDA5MCwgMHg3
ZjhmODc1ZCksIFRPQk4oMHg5YzlkNzU0ZSwgMHg1NmMyNmJiZiksCisgICAgICAgICAgIFRPQk4o
MHgxNThjZWE2MSwgMHg4MTEwYmJlNyksIFRPQk4oMHg2MmE2YjgwMiwgMHg3NDVmOTFlYSl9LAor
ICAgICAgICAgIHtUT0JOKDB4YTc5YzQxYWEsIDB4YzZlNzM5NGIpLCBUT0JOKDB4NDQ1YjZhODMs
IDB4YWQ1N2VmMTApLAorICAgICAgICAgICBUT0JOKDB4MGM1Mjc3ZWIsIDB4NmVhNmY0MGMpLCBU
T0JOKDB4MzE5ZmU5NmIsIDB4ODg2MzMzNjUpfX0sCisgICAgICAgICB7e1RPQk4oMHgwYjBmYzYx
ZiwgMHgzODVmNjNjYiksIFRPQk4oMHg0MTI1MGM4NCwgMHgyMmJkZDEyNyksCisgICAgICAgICAg
IFRPQk4oMHg2N2QxNTNmMSwgMHgwOWU5NDJjMiksIFRPQk4oMHg2MDkyMGQwOCwgMHhjMDIxYWQ1
ZCl9LAorICAgICAgICAgIHtUT0JOKDB4MjI5ZjU3NDYsIDB4NzI0ZDgxYTUpLCBUT0JOKDB4Yjdm
ZmI4OTIsIDB4NWJiYTMyOTkpLAorICAgICAgICAgICBUT0JOKDB4NTE4YzUxYTEsIDB4ZGU0MTMw
MzIpLCBUT0JOKDB4MmE5YmZlNzcsIDB4M2MyZmQ5NGMpfX0sCisgICAgICAgICB7e1RPQk4oMHhj
YmNkZTIzOSwgMHgzMTkxZjRmZCksIFRPQk4oMHg0MzA5M2UxNiwgMHhkM2Q2YWRhMSksCisgICAg
ICAgICAgIFRPQk4oMHgxODQ1NzlmMywgMHg1ODc2OTYwNiksIFRPQk4oMHgyYzk0YThiMywgMHhk
MjM2NjI1Yyl9LAorICAgICAgICAgIHtUT0JOKDB4NjkyMmI5YzAsIDB4NWM0MzdkOGUpLCBUT0JO
KDB4M2Q0YWU0MjMsIDB4ZDhkOWYzYzgpLAorICAgICAgICAgICBUT0JOKDB4ZjcyYzMxYzEsIDB4
MmU3MDkwYTIpLCBUT0JOKDB4NGFjM2Y1ZjMsIDB4ZDc2YTU1YmQpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgzNDI1MDhmYywgMHg2YjZhZjk5MSksIFRPQk4oMHgwZDUyNzEwMCwgMHgxYjVjZWJiZCks
CisgICAgICAgICAgIFRPQk4oMHhiODQ3NDBkMCwgMHhkZDQ0MGRkNyksIFRPQk4oMHg3NDhlZjg0
MSwgMHg3ODAxNjJmZCl9LAorICAgICAgICAgIHtUT0JOKDB4YThkYmZlMGUsIDB4ZGZjNmZhZmIp
LCBUT0JOKDB4ZWFkZmRmMDUsIDB4ZjczMDBmMjcpLAorICAgICAgICAgICBUT0JOKDB4N2QwNjU1
NWYsIDB4ZmViYTRlYzkpLCBUT0JOKDB4MTJjNTZmODMsIDB4OWUyNWZhOTcpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg3N2Y4NDIwMywgMHhkMzliOGMzNCksIFRPQk4oMHhlZDhiMWJlNiwgMHgzMTI1
ZWRkYiksCisgICAgICAgICAgIFRPQk4oMHg1YmJmMjQ0MSwgMHhmNmUzOWRjNSksIFRPQk4oMHhi
MDBmNmVlNiwgMHg2YTVkNjc4YSl9LAorICAgICAgICAgIHtUT0JOKDB4YmE0NTZlY2YsIDB4NTdk
MGVhOTkpLCBUT0JOKDB4ZGNhZTBmNTgsIDB4MTdlMDZjNDMpLAorICAgICAgICAgICBUT0JOKDB4
MDE2NDNkZTQsIDB4MGY1YjRiYWEpLCBUT0JOKDB4MmMzMjQzNDEsIDB4ZDE2MWI5YmUpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg4MDE3N2Y1NSwgMHhlMTI2ZDQ2OCksIFRPQk4oMHhlZDMyNWYxZiwg
MHg3Njc0OGUwOSksCisgICAgICAgICAgIFRPQk4oMHg2MTE2MDA0YSwgMHhjZmE5YmRjMiksIFRP
Qk4oMHgyZDg2MDdlNiwgMHgzYTlmYjQ2OCl9LAorICAgICAgICAgIHtUT0JOKDB4MGU1NzNlMjcs
IDB4NjAwOWQ2NjApLCBUT0JOKDB4M2E1MjVkMmUsIDB4OGQxMGM1YTEpLAorICAgICAgICAgICBU
T0JOKDB4ZDI2Y2I0NWMsIDB4M2I5MDA5YTApLCBUT0JOKDB4YjZiMGNkYzAsIDB4ZGU5ZDc0NDgp
fX0sCisgICAgICAgICB7e1RPQk4oMHg5NDljOTk3NiwgMHhlMTMzN2MyNiksIFRPQk4oMHg2ZmFh
ZGViZCwgMHhkNzNkNjhlNSksCisgICAgICAgICAgIFRPQk4oMHg5ZTE1ODYxNCwgMHhmMWI3Njhk
OSksIFRPQk4oMHgyMmRmYTU1NywgMHg5Y2M0ZjA2OSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2Nk
NmRhMTcsIDB4YmU5M2M2ZDYpLCBUT0JOKDB4MjQ4NjZjNjEsIDB4YTUwNGY1YjkpLAorICAgICAg
ICAgICBUT0JOKDB4MjEyMTM1M2MsIDB4OGQ2OTRkYTEpLCBUT0JOKDB4MWM2Y2E1ODAsIDB4MDE0
MGI4YzYpfX0sCisgICAgICAgICB7e1RPQk4oMHhjMjQ1YWQ4YywgMHhlOTY0MDIxZSksIFRPQk4o
MHhiODNiZmZiYSwgMHgwMzJiODJiMyksCisgICAgICAgICAgIFRPQk4oMHhmYWEyMjBjNiwgMHg0
N2VmOTg5OCksIFRPQk4oMHg3ZThkM2FjNiwgMHg5ODJjOTQ4YSl9LAorICAgICAgICAgIHtUT0JO
KDB4MWZhYTIwOTEsIDB4YmMyZDEyNGEpLCBUT0JOKDB4YmQ1NGMzZGQsIDB4MDViMTVmZjQpLAor
ICAgICAgICAgICBUT0JOKDB4Mzg2YmYzYWIsIDB4Yzg3YzZmYjcpLCBUT0JOKDB4ZmIyYjA1NjMs
IDB4ZmRlYjZmNjYpfX0sCisgICAgICAgICB7e1RPQk4oMHg0ZTc3YzU1NywgMHg1YjQ1YWZiNCks
IFRPQk4oMHhlOWRlZDY0OSwgMHhlZmI4OTEyZCksCisgICAgICAgICAgIFRPQk4oMHg3ZWM5YmJm
NSwgMHg0MmY2ZTU1NyksIFRPQk4oMHgyNTcwZGZmZiwgMHg2MjY3MWYwMCl9LAorICAgICAgICAg
IHtUT0JOKDB4MmIzYmZiNzgsIDB4ODhlMDg0YmQpLCBUT0JOKDB4YTAyNGIyMzgsIDB4ZjM3ZmU1
YjQpLAorICAgICAgICAgICBUT0JOKDB4NDRlN2RjMDQsIDB4OTU2NDlhZWUpLCBUT0JOKDB4NDk4
Y2EyNTUsIDB4NWU3ZWMxZDgpfX0sCisgICAgICAgICB7e1RPQk4oMHgzYmM3NjZlYSwgMHhhYWEw
N2U4NiksIFRPQk4oMHgwZGI2ZmFjYiwgMHhmMzYwODU4NiksCisgICAgICAgICAgIFRPQk4oMHhi
YWRkMjU0OSwgMHhiZGMyNTljOCksIFRPQk4oMHg5NWFmM2M2ZSwgMHgwNDFjNjQ5Zil9LAorICAg
ICAgICAgIHtUT0JOKDB4YjM2YTkyOGMsIDB4MDJlMzBhZmIpLCBUT0JOKDB4OWI1MzU2YWQsIDB4
MDA4YTg4YjgpLAorICAgICAgICAgICBUT0JOKDB4NGI2N2E1ZjEsIDB4Y2YxZDllOWQpLCBUT0JO
KDB4YzY1NDJlNDcsIDB4YTVkOGQ4Y2UpfX0sCisgICAgICAgICB7e1RPQk4oMHg3MzA2MWZlOCwg
MHg3YWRmYjZjYyksIFRPQk4oMHhjYzgyNmZkMywgMHg5ODY3ODE0MSksCisgICAgICAgICAgIFRP
Qk4oMHgwMGU3NThiMSwgMHgzYzgwNTE1YSksIFRPQk4oMHg2YWZlMzI0NywgMHg0MTQ4NTA4Myl9
LAorICAgICAgICAgIHtUT0JOKDB4MGZjYjA4YjksIDB4YjZhZThhNzUpLCBUT0JOKDB4YjhjZjM4
OGQsIDB4NGFjZjUxZTEpLAorICAgICAgICAgICBUT0JOKDB4MzQ0YTU1NjAsIDB4Njk2MWI5ZDYp
LCBUT0JOKDB4MWE2Nzc4YjgsIDB4NmE5N2ZkMGMpfX0sCisgICAgICAgICB7e1RPQk4oMHhkODQw
ZmRjMSwgMHhlY2M0YzdlMyksIFRPQk4oMHhkZTlmZTQ3ZCwgMHgxNmRiNjhjYyksCisgICAgICAg
ICAgIFRPQk4oMHhlOTVmODlkZSwgMHhhM2UyMTZhYSksIFRPQk4oMHg4NGYxYTZhNCwgMHg5NTk0
YThiZSl9LAorICAgICAgICAgIHtUT0JOKDB4N2RkYzdkNzIsIDB4NWE3YjE2MmIpLCBUT0JOKDB4
YzVjZmRhMTksIDB4YWRjODE3YTMpLAorICAgICAgICAgICBUT0JOKDB4ODBhNWQzNTAsIDB4Nzhi
NThkNDYpLCBUT0JOKDB4OTMzNjViMTMsIDB4ODI5NzhmMTkpfX0sCisgICAgICAgICB7e1RPQk4o
MHgyZTQ0ZDIyNSwgMHgyNmExZmM5MCksIFRPQk4oMHgwZDZkMTBkMiwgMHg0ZDcwNzA1ZCksCisg
ICAgICAgICAgIFRPQk4oMHhkOTRiNmIxMCwgMHhkNzBjNDVmNCksIFRPQk4oMHgwZjIwMTAyMiwg
MHhiMjE2YzA3OSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2VjOTY2YzUsIDB4NjU4ZmRlNDEpLCBU
T0JOKDB4YThkMmJjN2QsIDB4N2UyNzYwMWQpLAorICAgICAgICAgICBUT0JOKDB4YmZjY2UzZTEs
IDB4ZmYyMzBiZTcpLCBUT0JOKDB4MzM5NGZmNmIsIDB4MDAzM2ZmYjUpfX0sCisgICAgICAgICB7
e1RPQk4oMHhkODkwYzUwOSwgMHg4MTMyYzlhZiksIFRPQk4oMHhhYWM0YjBlYiwgMHgzNjFlNzg2
OCksCisgICAgICAgICAgIFRPQk4oMHg1MTk0ZGVkMywgMHhlODJkMTVhYSksIFRPQk4oMHg0NTUw
YmQyZSwgMHgyM2FlNmI3ZCl9LAorICAgICAgICAgIHtUT0JOKDB4M2ZkYTMxOGUsIDB4ZWE1Mzk5
ZDQpLCBUT0JOKDB4ZDk4OWJmZmEsIDB4OTE2MzhiODApLAorICAgICAgICAgICBUT0JOKDB4NWVh
MTI0ZDAsIDB4YTE0YWExMmQpLCBUT0JOKDB4MWZiMWI4OTksIDB4MzY2N2I5NDQpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg5NWVjNzk2OSwgMHg0NGM0NGQ2YSksIFRPQk4oMHg5MWRmMTQ0YSwgMHg1
N2U4NjEzNyksCisgICAgICAgICAgIFRPQk4oMHg5MTVmZDYyMCwgMHg3M2FkYWM0NCksIFRPQk4o
MHg4ZjAxNzMyZCwgMHg1OWE4MzgwMSl9LAorICAgICAgICAgIHtUT0JOKDB4ZWM1NzlkMjUsIDB4
M2FhMGE2MzMpLCBUT0JOKDB4MDZkZTVlN2MsIDB4YzlkNmQ1OWMpLAorICAgICAgICAgICBUT0JO
KDB4YzEzMmY5NTgsIDB4YjFlZjgwMTApLCBUT0JOKDB4Mjk0NzZmOTYsIDB4ZTY1YzFhMDIpfX0s
CisgICAgICAgICB7e1RPQk4oMHgzMzZhNzdjMCwgMHhkMzRjMzU2NSksIFRPQk4oMHhlZjExMDVi
MiwgMHgxYjlmMWU5ZSksCisgICAgICAgICAgIFRPQk4oMHg2M2U2ZDA4YiwgMHhmOWUwODAwMiks
IFRPQk4oMHg5YWZmMmYyMSwgMHhjNjEzODA5ZSl9LAorICAgICAgICAgIHtUT0JOKDB4YjU3NTRm
ODUsIDB4M2E4MGU3NWQpLCBUT0JOKDB4ZGU3MTg1M2UsIDB4NmJiZGE2ODEpLAorICAgICAgICAg
ICBUT0JOKDB4ODZmMDQxZGYsIDB4ODE5N2ZkN2EpLCBUT0JOKDB4OGIzMzJlMDgsIDB4MTI3ODE3
ZmEpfX0sCisgICAgICAgICB7e1RPQk4oMHgwNWQ5OWJlOCwgMHhiOWMyMGNkYSksIFRPQk4oMHg4
OWY3YWFkNSwgMHhkNWNkMGM5OCksCisgICAgICAgICAgIFRPQk4oMHg3ZWY5MzZmZSwgMHg1YmI5
NDE4MyksIFRPQk4oMHg5MmNhMDc1MywgMHhiMDVjZDdmMil9LAorICAgICAgICAgIHtUT0JOKDB4
OWQ2NWRiMTEsIDB4NzRhMWUwMzUpLCBUT0JOKDB4MDI2MjhjYzgsIDB4MTNlYWVhOTIpLAorICAg
ICAgICAgICBUT0JOKDB4ZjJkOWUyNDIsIDB4NDllNGZiZjIpLCBUT0JOKDB4OTRmZGZkOWIsIDB4
ZTM4NGY4YjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg2NWY1NjA1NCwgMHg2MzQyOGM2YiksIFRP
Qk4oMHgyZjcyMDViMiwgMHg5MGI0MDlhNSksCisgICAgICAgICAgIFRPQk4oMHhmNzc4YmI3OCwg
MHhmZjQ1YWUxMSksIFRPQk4oMHhhMTMwNDViZSwgMHhjNWVlNTNiMil9LAorICAgICAgICAgIHtU
T0JOKDB4ZTAwYTE0ZmYsIDB4MDNlZjc3ZmUpLCBUT0JOKDB4Njg5Y2Q1OWYsIDB4ZmZlZjhiZWYp
LAorICAgICAgICAgICBUT0JOKDB4MzU3OGYwZWQsIDB4MWU5YWRlMjIpLCBUT0JOKDB4ZTk5ZjNl
YzAsIDB4NjI2OGI2YTgpfX0sCisgICAgICAgICB7e1RPQk4oMHhhMjA1N2Q5MSwgMHhlYTFiM2Mz
ZSksIFRPQk4oMHgyZDFhNzA1MywgMHhiODgyM2E0YSksCisgICAgICAgICAgIFRPQk4oMHhhYmJi
MzM2YSwgMHgyY2NhNDUxZSksIFRPQk4oMHhjZDI0NjZlMywgMHgyMjE4YmI1ZCl9LAorICAgICAg
ICAgIHtUT0JOKDB4M2FjMWY0MmYsIDB4YzhjYjc2MmQpLCBUT0JOKDB4N2UzMTJhYWUsIDB4NzY5
MDIxMWYpLAorICAgICAgICAgICBUT0JOKDB4ZWJiOWJkNzMsIDB4NDVkMDc0NTApLCBUT0JOKDB4
MjA3YzRiODIsIDB4NDZjMjIxM2YpfX0sCisgICAgICAgICB7e1RPQk4oMHg5OWQ0MjVjMSwgMHgz
NzU5MTNlYyksIFRPQk4oMHg5NGU0NWU5NiwgMHg2NzkwODIyMCksCisgICAgICAgICAgIFRPQk4o
MHhjMDhmMzA4NywgMHhjZDY3ZGJmNiksIFRPQk4oMHhhNTY3MGZiZSwgMHhjMDg4NzA1Nil9LAor
ICAgICAgICAgIHtUT0JOKDB4NjcxN2I2NGEsIDB4NjZmNWI4ZmMpLCBUT0JOKDB4ZDVhNTZhZWEs
IDB4Nzg2ZmVjMjgpLAorICAgICAgICAgICBUT0JOKDB4YThjM2Y1NWYsIDB4YzBmZjQ5NTIpLCBU
T0JOKDB4YTc3ZmVmYWUsIDB4NDU3YWM0OWIpfX0sCisgICAgICAgICB7e1RPQk4oMHgyOTg4MmQ3
YywgMHg5ODM3OWQ0NCksIFRPQk4oMHhkMDAwYmRmYiwgMHg1MDllZGM4YSksCisgICAgICAgICAg
IFRPQk4oMHhjNmY5NTk3OSwgMHhlNjZmZTQ2NCksIFRPQk4oMHg1MDRhNjExNSwgMHhmYTYxYmRl
MCl9LAorICAgICAgICAgIHtUT0JOKDB4NTZiM2I4NzEsIDB4ZWZmZWEzMWEpLCBUT0JOKDB4MmQz
ZGUyNmQsIDB4ZjBjMjFhNTQpLAorICAgICAgICAgICBUT0JOKDB4MjFkYmZmMzEsIDB4ODM0NzUz
YmYpLCBUT0JOKDB4ZTY3ZWNmNDksIDB4NjkyNjlkODYpfX0sCisgICAgICAgICB7e1RPQk4oMHg3
YTE3Njk1MiwgMHgxNTFmZTY5MCksIFRPQk4oMHgwMzUxNTgwNCwgMHg3ZjJhZGI1ZiksCisgICAg
ICAgICAgIFRPQk4oMHhlZTc5NGIxNSwgMHhkMWI2MmE4ZCksIFRPQk4oMHhmMDA0Y2VlYywgMHhh
YWU0NTRlNil9LAorICAgICAgICAgIHtUT0JOKDB4MDg5N2VhN2MsIDB4ZjAzODZmYWMpLCBUT0JO
KDB4M2I2MmZmMTIsIDB4ZDFmY2E3NTEpLAorICAgICAgICAgICBUT0JOKDB4MTU0MTgxZGYsIDB4
MWI3YTA0ZWMpLCBUT0JOKDB4MjAwOGUwNGEsIDB4ZmI1ODQ3ZWMpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhkMTQ3MTQ4ZSwgMHg0MWRiZDc3MiksIFRPQk4oMHgyYjQxOWY3MywgMHgyMjk0MjY1NCks
CisgICAgICAgICAgIFRPQk4oMHg2NjlmMzBkMywgMHhlOWM1NDRmNyksIFRPQk4oMHg1MmEyYzIy
MywgMHhjODU0MDE0OSl9LAorICAgICAgICAgIHtUT0JOKDB4NWRhOWVlMTQsIDB4NjM0ZGZiMDIp
LCBUT0JOKDB4NWYwNzRmZjAsIDB4ZjQ3ODY5ZjMpLAorICAgICAgICAgICBUT0JOKDB4NzRlZTg3
OGQsIDB4YTM5MzNhY2MpLCBUT0JOKDB4ZTY1MTA2NTEsIDB4NGZlMzVlZDEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhiM2ViOTQ4MiwgMHhmMTAxMmU3YSksIFRPQk4oMHg1MTAxM2NjMCwgMHhhOGE1
NjZhZSksCisgICAgICAgICAgIFRPQk4oMHhkZDVlOTI0MywgMHg0N2MwMGQzYiksIFRPQk4oMHg3
ZmRlMDg5ZCwgMHg5NDZiYjBlNSl9LAorICAgICAgICAgIHtUT0JOKDB4MDMwNzU0ZmUsIDB4Yzcz
MWI0YjMpLCBUT0JOKDB4MTJhMTM2YTQsIDB4OTlmZGEwNjIpLAorICAgICAgICAgICBUT0JOKDB4
N2MxMDY0YjgsIDB4NWExYTM1YmMpLCBUT0JOKDB4YmYxZjU3NjMsIDB4NDQ2Yzg0ZWYpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhlZDI5YTU2ZCwgMHhhMTZkNGIzNCksIFRPQk4oMHg3ZmJhOWQwOSwg
MHhkY2EyMWM0ZiksCisgICAgICAgICAgIFRPQk4oMHg2NmQ3YWMwMCwgMHg2ZDhkZTQ4NiksIFRP
Qk4oMHg2MDA2MTk4NywgMHg3M2EyYTVlMSl9LAorICAgICAgICAgIHtUT0JOKDB4OGI0MDBmODYs
IDB4OWRhMjhmZjApLCBUT0JOKDB4MzEzM2Y3MDgsIDB4NDNjNDU5OWMpLAorICAgICAgICAgICBU
T0JOKDB4OTkxMWM5YjgsIDB4ZWUyOGNiMGQpLCBUT0JOKDB4Y2Q3ZTI4NzQsIDB4OGUwYWY2MWQp
fX0sCisgICAgICAgICB7e1RPQk4oMHg1YTg1ZjBmMiwgMHg3MmVkOTFmYyksIFRPQk4oMHg4NTIx
NGYzMSwgMHg5Y2Q0YTM3MyksCisgICAgICAgICAgIFRPQk4oMHg4ODFmZTViZSwgMHgxOTI1MjUz
YyksIFRPQk4oMHhkOGRjOThlMCwgMHg5MWU4YmM3Nil9LAorICAgICAgICAgIHtUT0JOKDB4NzEy
MGFmZmUsIDB4NTg1Y2MzYTIpLCBUT0JOKDB4NzI0OTUyZWQsIDB4NzM1YmY5N2EpLAorICAgICAg
ICAgICBUT0JOKDB4NTU4MWU3ZGMsIDB4M2ViMzQ1ODEpLCBUT0JOKDB4NWNiZmY0ZjIsIDB4ZTUy
ZWU1N2QpfX0sCisgICAgICAgICB7e1RPQk4oMHg4ZDMyMGEwZSwgMHg4N2Q4Y2M3YiksIFRPQk4o
MHg5YmVhYTdmMywgMHhmMWQyODBkMCksCisgICAgICAgICAgIFRPQk4oMHg3YTBiOTU3MSwgMHg5
YmVlYzcwNCksIFRPQk4oMHg5MTI2MzMyZSwgMHg1YjdmMDA1Nyl9LAorICAgICAgICAgIHtUT0JO
KDB4MDFmYmMxYjQsIDB4OGVkM2JkNmQpLCBUT0JOKDB4MzViYjJjMTIsIDB4ZDk0NWViMjQpLAor
ICAgICAgICAgICBUT0JOKDB4NjQwNDY5NGUsIDB4OWE4YWUyNTUpLCBUT0JOKDB4YjYwOTJlZWMs
IDB4OGQ2YWJmYjMpfX0sCisgICAgICAgICB7e1RPQk4oMHg0ZDc2MTQzZiwgMHhjYzA1ODg2NSks
IFRPQk4oMHg3YjBhNWFmMiwgMHg2ZTI0OTkyMiksCisgICAgICAgICAgIFRPQk4oMHg4YWVmOTQ0
MCwgMHg2YTUwZDM1MyksIFRPQk4oMHhlMTFlNGJjYywgMHg2NGYwZTA3YSl9LAorICAgICAgICAg
IHtUT0JOKDB4NDQ3Mjk5M2EsIDB4YTE0YTkwZmEpLCBUT0JOKDB4NzcwNmUyMGMsIDB4YmEwYzUx
ZDQpLAorICAgICAgICAgICBUT0JOKDB4ZjQwMzI5MmYsIDB4MTUzMjY3MmQpLCBUT0JOKDB4NTI1
NzNiZmEsIDB4MjE4MjkzODIpfX0sCisgICAgICAgICB7e1RPQk4oMHg2YTdiYjZhOSwgMHgzYjVi
ZGI4MyksIFRPQk4oMHgwOGRhNjVjMCwgMHhhNGE3MjMxOCksCisgICAgICAgICAgIFRPQk4oMHhj
NThkMjJhYSwgMHg2M2ViMDY1ZiksIFRPQk4oMHgxNzE3NTk2YywgMHgxYjE1ZDY4NSl9LAorICAg
ICAgICAgIHtUT0JOKDB4MTEyZGYwZDAsIDB4YjI2NmQ4OGIpLCBUT0JOKDB4ZjY4OGFlOTcsIDB4
NTk0MTk0NWEpLAorICAgICAgICAgICBUT0JOKDB4NDg3Mzg2ZTMsIDB4N2MyOTJjYWMpLCBUT0JO
KDB4NDJmM2I1MGQsIDB4NTdkNjk4NWMpfX0sCisgICAgICAgICB7e1RPQk4oMHg2ZGE0Zjk5OCwg
MHg2YTkwZmMzNCksIFRPQk4oMHhjOGYyNTdkMywgMHg2NWNhOGE4ZCksCisgICAgICAgICAgIFRP
Qk4oMHhjMmZlYWJjYSwgMHg2OTUxZjc2MiksIFRPQk4oMHhlMWJjODFkMCwgMHg3NGMzMjNhYyl9
LAorICAgICAgICAgIHtUT0JOKDB4MWJjNjhmNjcsIDB4MjUxYTJhMTIpLCBUT0JOKDB4MTBkODY1
ODcsIDB4YmU4YTcwZGMpLAorICAgICAgICAgICBUT0JOKDB4ZDY0OGFmN2YsIDB4ZjBmODRkMmUp
LCBUT0JOKDB4ZjBhYTllYmMsIDB4NmE0M2FjOTIpfX0sCisgICAgICAgICB7e1RPQk4oMHg2OWUz
YmUwNCwgMHgyNzU5Njg5MyksIFRPQk4oMHhiNmJiMDJhNiwgMHg0NWJmNDUyYiksCisgICAgICAg
ICAgIFRPQk4oMHgwODc1YzExYSwgMHhmNGM2OThjOCksIFRPQk4oMHg2NjUyYjVjNywgMHhiZWNl
Mzc5NCl9LAorICAgICAgICAgIHtUT0JOKDB4N2IzNzU1ZmQsIDB4NGY1YzA0OTkpLCBUT0JOKDB4
NmVhMTY1NTgsIDB4YjU1MzJiMzgpLAorICAgICAgICAgICBUT0JOKDB4ZDFjNjk4ODksIDB4YTJl
OTZlZjcpLCBUT0JOKDB4OWM3NzNjM2EsIDB4NjFlZDhmNDgpfX0sCisgICAgICAgICB7e1RPQk4o
MHgyYjY1M2E0MCwgMHg5YjMyM2FiYyksIFRPQk4oMHhlMjY2MDVlMSwgMHhmMGUxZDc5MSksCisg
ICAgICAgICAgIFRPQk4oMHg0NWQ0MTA2NCwgMHg0YTg3MTU3YSksIFRPQk4oMHg4ZjlhNzhiNywg
MHhjYmJjZTYxNil9LAorICAgICAgICAgIHtUT0JOKDB4Y2YxZTQ0YWEsIDB4YzQwN2VkZGQpLCBU
T0JOKDB4ODFkZGQxZDgsIDB4YTM1Yjk2NGYpLAorICAgICAgICAgICBUT0JOKDB4NDczZTMzOWUs
IDB4ZmQwODM5OTkpLCBUT0JOKDB4NmM5NGJkZGUsIDB4OGU3OTY4MDIpfX0sCisgICAgICAgICB7
e1RPQk4oMHg1YTMwNGFkYSwgMHg4NTQ1ZDE4NSksIFRPQk4oMHg4MmFlNDRlYSwgMHg3MzhiYjhj
YiksCisgICAgICAgICAgIFRPQk4oMHg2MjhhMzVlMywgMHhkZjg3ZTEwZSksIFRPQk4oMHhkMzYy
NGYzZCwgMHhhMTViOWZlMyl9LAorICAgICAgICAgIHtUT0JOKDB4Y2M0NDIwOWIsIDB4MTRiZTQy
NTQpLCBUT0JOKDB4N2QwZWZjYmMsIDB4YmRiYzJlYTUpLAorICAgICAgICAgICBUT0JOKDB4MWY2
MDMzNjIsIDB4MDRjMzdiYmUpLCBUT0JOKDB4MjFmMzYzZjUsIDB4NTZhNTg1MmMpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhhMTUwM2QxYywgMHhhODUwMTU1MCksIFRPQk4oMHgyMjUxZTBlMSwgMHhk
OGFiMTBiYiksCisgICAgICAgICAgIFRPQk4oMHhkZTEyOWM5NiwgMHg2OTYxYzUxYyksIFRPQk4o
MHgxZjcyNDZhNCwgMHg4MTkxMGY2OCl9LAorICAgICAgICAgIHtUT0JOKDB4MmViNzQ0ZWUsIDB4
NWYyNTkxZjIpLCBUT0JOKDB4M2M0N2QzM2YsIDB4NWU2MjcxNTcpLAorICAgICAgICAgICBUT0JO
KDB4NGQ2ZDYyYzksIDB4MjJmM2JkNjgpLCBUT0JOKDB4NjEyMGE2NGIsIDB4Y2I4ZGY4NTYpfX0s
CisgICAgICAgICB7e1RPQk4oMHgzYTlhYzZjMCwgMHg3YjVkMDdkZiksIFRPQk4oMHhhOTJiOTU1
OCwgMHg3ZWYzOTc4MyksCisgICAgICAgICAgIFRPQk4oMHhlMTI4YTEzNCwgMHhhYjNhOWI0Ziks
IFRPQk4oMHg0MWMxODgwNywgMHhiMTI1MmYwNSl9LAorICAgICAgICAgIHtUT0JOKDB4ZmM3ZWQw
ODksIDB4ODBiYTliMWMpLCBUT0JOKDB4YWM4ZGM2ZGUsIDB4YzUzMmE5ZGQpLAorICAgICAgICAg
ICBUT0JOKDB4YmY4MjljZWYsIDB4NTUyNDY4MDkpLCBUT0JOKDB4MTAxYjc4NGYsIDB4NWI0ZWU4
MGYpfX0sCisgICAgICAgICB7e1RPQk4oMHhjMDk5NDViYiwgMHhiNmYxMTYwMyksIFRPQk4oMHg1
N2IwOWRiZSwgMHg0MWQyODAxZSksCisgICAgICAgICAgIFRPQk4oMHhmYmE1MjAyZiwgMHhhOTc1
MzRhOCksIFRPQk4oMHg3ZmQ4YWU1ZiwgMHhjMTdiOTYxNCl9LAorICAgICAgICAgIHtUT0JOKDB4
YTUwYmE2NjYsIDB4NzgzMDg0MzUpLCBUT0JOKDB4OTU3MmY3N2MsIDB4ZDM4NjhjNGQpLAorICAg
ICAgICAgICBUT0JOKDB4MGNlZjdiZmQsIDB4MmRkN2FhYjApLCBUT0JOKDB4ZTc5NThlMDgsIDB4
MmM3Yzc5ZmYpfX0sCisgICAgICAgICB7e1RPQk4oMHg4MTI2MmU0MiwgMHgyNTM0NjY4OSksIFRP
Qk4oMHg3MTZkYTI5MCwgMHhiMDdjNzAwNCksCisgICAgICAgICAgIFRPQk4oMHgzNWY5MTFlYSwg
MHhiNzk1MGVlMyksIFRPQk4oMHg2ZmQ3Mjk2OSwgMHgyNjFkMjFiNSl9LAorICAgICAgICAgIHtU
T0JOKDB4NTIzODk4MDMsIDB4MDhiNjQwZDMpLCBUT0JOKDB4NWIwMDI2ZWUsIDB4ODg3ZjEyYTEp
LAorICAgICAgICAgICBUT0JOKDB4MjBlMjE2NjAsIDB4NzQyZTkzMTEpLCBUT0JOKDB4MGVmNmQ1
NDEsIDB4NWZmNzdmZjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg5NjkxMjdmMCwgMHhmOWM0MTEz
NSksIFRPQk4oMHhmMjFkNjBjOSwgMHg2OGE2NDk5MyksCisgICAgICAgICAgIFRPQk4oMHg2NTZl
NWQwYywgMHhlNTQxODc1YyksIFRPQk4oMHhmMWUwZjg0ZSwgMHhhMWQzYzIzMyl9LAorICAgICAg
ICAgIHtUT0JOKDB4OWJjY2EzNTksIDB4MDYwMDJkNjApLCBUT0JOKDB4YmUyZGE2MGMsIDB4MDYx
OTE1NTIpLAorICAgICAgICAgICBUT0JOKDB4NWRhOGJiYWUsIDB4NjExODFlYzMpLCBUT0JOKDB4
OWYwNGI4MjMsIDB4NjU4MDZmMTkpfX0sCisgICAgICAgICB7e1RPQk4oMHhmMTYwNGE3ZCwgMHhk
NGI3OWJiOCksIFRPQk4oMHhhZWU4MDZmYiwgMHg1MmM4NzhjOCksCisgICAgICAgICAgIFRPQk4o
MHgzNDE0NGYxMSwgMHg4ZDQ3YjhlOCksIFRPQk4oMHg3MmVkZjUyYiwgMHg5NDlmOTA1NCl9LAor
ICAgICAgICAgIHtUT0JOKDB4ZWJmY2E4NGUsIDB4MjEyNzAxNWEpLCBUT0JOKDB4OTA1MWQwYzAs
IDB4OWNiN2NlZjMpLAorICAgICAgICAgICBUT0JOKDB4ODZlOGZlNTgsIDB4Mjk2ZGVlYzgpLCBU
T0JOKDB4MzNiMjgxODgsIDB4NDEwMTBkNzQpfX19LAorICAgICAgICB7e3tUT0JOKDB4MDEwNzkz
ODMsIDB4MTcxYjQ0NWYpLCBUT0JOKDB4OWJjZjIxZTMsIDB4ODEzMWFkNGMpLAorICAgICAgICAg
ICBUT0JOKDB4OGNkZmUyMDUsIDB4YzkzOTg3ZTgpLCBUT0JOKDB4ZTYzZjQxNTIsIDB4YzkyZThj
OGYpfSwKKyAgICAgICAgICB7VE9CTigweDcyOTQ2MmE5LCAweDMwYWRkNDNkKSwgVE9CTigweDYy
ZWJiMTQzLCAweGM5ODBmMDVhKSwKKyAgICAgICAgICAgVE9CTigweDRmMzk1NGU1LCAweDNiMDZl
OTY4KSwgVE9CTigweGZlMWQ3NWFkLCAweDI0MmNmNmIxKX19LAorICAgICAgICAge3tUT0JOKDB4
NWY5NWM2YzcsIDB4YWY4Njg1YzgpLCBUT0JOKDB4ZDRjMWM4Y2UsIDB4MmY4ZjAxYWEpLAorICAg
ICAgICAgICBUT0JOKDB4YzQ0YmJlMzIsIDB4MjU3NDY5MmEpLCBUT0JOKDB4YjgwMDM0NzgsIDB4
ZDRhNGEwNjgpfSwKKyAgICAgICAgICB7VE9CTigweDdjOGZjNmU1LCAweDJlY2EzY2RiKSwgVE9C
TigweGVhMWRiMTZiLCAweGVjMDRkMzk5KSwKKyAgICAgICAgICAgVE9CTigweGIwNWJjODJlLCAw
eDhmMmJjNWNmKSwgVE9CTigweDc2M2Q1MTdmLCAweGY0NDc5M2QyKX19LAorICAgICAgICAge3tU
T0JOKDB4NDQ1MWMxYjgsIDB4MDhiZDk4ZDApLCBUT0JOKDB4NjQ0YjFjZDQsIDB4NjU3NWYyNDAp
LAorICAgICAgICAgICBUT0JOKDB4NjkwN2ViMzMsIDB4NzM3NWQyNzApLCBUT0JOKDB4NTZjOGJl
YmQsIDB4ZmEyMjg2YmQpfSwKKyAgICAgICAgICB7VE9CTigweGM3MTNkMmFjLCAweGM0NjMyYjQ2
KSwgVE9CTigweDE3ZGE0MjdhLCAweGFmZDYwMjQyKSwKKyAgICAgICAgICAgVE9CTigweDMxMzA2
NWI3LCAweGM5NWM3NTQ2KSwgVE9CTigweGY4MjM5ODk4LCAweGJmMTdhM2RlKX19LAorICAgICAg
ICAge3tUT0JOKDB4ZjNiNzk2M2YsIDB4NGM4MzAzMjApLCBUT0JOKDB4ODQyYzdhYTAsIDB4OTAz
MjAzZTMpLAorICAgICAgICAgICBUT0JOKDB4YWYyMmNhMGEsIDB4ZTczMjdhZmIpLCBUT0JOKDB4
MzhlMTMwOTIsIDB4OTY3NjA5YjYpfSwKKyAgICAgICAgICB7VE9CTigweDczYjhmYjYyLCAweDc1
NzU1OGYxKSwgVE9CTigweDNjYzNlODMxLCAweGY3ZWNhOGMxKSwKKyAgICAgICAgICAgVE9CTigw
eGU0MTc0NDc0LCAweGY2MzMxNjI3KSwgVE9CTigweGE3Nzk4OWNhLCAweGMzYzQwMjM0KX19LAor
ICAgICAgICAge3tUT0JOKDB4ZTVmZDE3YTEsIDB4NDRhMDgxZTApLCBUT0JOKDB4ZDc5N2ZiN2Qs
IDB4YjcwZTI5NmEpLAorICAgICAgICAgICBUT0JOKDB4MmI0NzJiMzAsIDB4NDgxZjcxOWMpLCBU
T0JOKDB4MGU2MzJhOTgsIDB4ZmU2ZjhjNTIpfSwKKyAgICAgICAgICB7VE9CTigweDg5Y2NkMTE2
LCAweGM1ZjBjMjg0KSwgVE9CTigweGY1MTA4OGFmLCAweDJkOTg3YzYyKSwKKyAgICAgICAgICAg
VE9CTigweDJhMmJjY2RhLCAweDRjMmRlNmNmKSwgVE9CTigweDgxMGY5ZWZlLCAweGY2NzlmMGY5
KX19LAorICAgICAgICAge3tUT0JOKDB4YjBmMzk0YjksIDB4N2ZmZTRiM2UpLCBUT0JOKDB4MGI2
OTFkMjEsIDB4ZTVmYTVkMjEpLAorICAgICAgICAgICBUT0JOKDB4YjBiZDc3NDcsIDB4OWRmYmJj
NzUpLCBUT0JOKDB4ZDI4MzBmZGEsIDB4ZmFmNzhiMDApfSwKKyAgICAgICAgICB7VE9CTigweGY3
OGMyNDljLCAweDUyNDM0ZjU3KSwgVE9CTigweDRiMWY3NTQ1LCAweDk4MDk2ZGFiKSwKKyAgICAg
ICAgICAgVE9CTigweDczYmY2Zjk0LCAweDhmZjhjMGIzKSwgVE9CTigweDM0YWVmMDNkLCAweDQ1
NGUxMzRjKX19LAorICAgICAgICAge3tUT0JOKDB4ZjhkMTUxZjQsIDB4YjdhYzdlYzUpLCBUT0JO
KDB4ZDZjZWI5NWEsIDB4ZTUwZGE3ZDUpLAorICAgICAgICAgICBUT0JOKDB4YTFiNDkyYjAsIDB4
ZGMzYTBlYjgpLCBUT0JOKDB4NzUxNTdiNjksIDB4YjNkZDI4NjMpfSwKKyAgICAgICAgICB7VE9C
TigweGUyYzRjNzRlLCAweGM1NDEzZDYyKSwgVE9CTigweGJlMzI5ZmY3LCAweGJjNWZjNGM3KSwK
KyAgICAgICAgICAgVE9CTigweDgzNWEyYWVhLCAweDYwZmE5ZGRhKSwgVE9CTigweGYxMTdmNWFk
LCAweDc0NDVjYjg3KX19LAorICAgICAgICAge3tUT0JOKDB4YWU4MzE3ZjQsIDB4YjAxNjZmN2Ep
LCBUT0JOKDB4ZmJkM2UzZjcsIDB4Y2VlYzc0ZTYpLAorICAgICAgICAgICBUT0JOKDB4ZmRiNTE2
YWMsIDB4ZTA4NzRiZmQpLCBUT0JOKDB4M2Q4NDYwMTksIDB4YzY4MWYzYTMpfSwKKyAgICAgICAg
ICB7VE9CTigweDBiMTJlZTVjLCAweDdjMTYyMGIwKSwgVE9CTigweGJhNjhiNGRkLCAweDJiNjNj
NTAxKSwKKyAgICAgICAgICAgVE9CTigweGFjMDNjZDMyLCAweDY2NjhjNTFlKSwgVE9CTigweDJh
NjI3OWY3LCAweDRlMGJjYjViKX19LAorICAgICAgICAge3tUT0JOKDB4MTdiZDY5YjAsIDB4NmFl
ODVjMTApLCBUT0JOKDB4NzI5NDY5NzksIDB4MWRmZGQzYTYpLAorICAgICAgICAgICBUT0JOKDB4
ZDlhMDMyNjgsIDB4MmMwNzhiZWMpLCBUT0JOKDB4NDFjNmE2NTgsIDB4YmZkNjhhNTIpfSwKKyAg
ICAgICAgICB7VE9CTigweGNkZWExMDI0LCAweDBlMDIzOTAwKSwgVE9CTigweGJhZWVjMTIxLCAw
eGIxMGQxNDRkKSwKKyAgICAgICAgICAgVE9CTigweDVhNjAwZTc0LCAweDA1OGFiOGRjKSwgVE9C
TigweDEzMzNhZjIxLCAweGJiODljY2RkKX19LAorICAgICAgICAge3tUT0JOKDB4ZGYyNWVhZTAs
IDB4M2FhYmExZjEpLCBUT0JOKDB4MmNhZGExNmUsIDB4M2I3MTQ0Y2YpLAorICAgICAgICAgICBU
T0JOKDB4NjU3ZWUyN2QsIDB4NzFhYjk4YmMpLCBUT0JOKDB4OTkwODhiNGMsIDB4N2E2ZmM5NmUp
fSwKKyAgICAgICAgICB7VE9CTigweDA1ZDVjMGEwLCAweDM1NDlkYmQ0KSwgVE9CTigweDQyY2Jk
ZjhmLCAweGYxNThjM2FjKSwKKyAgICAgICAgICAgVE9CTigweDNmYjZiM2IwLCAweDg3ZWRkNjg1
KSwgVE9CTigweDIyMDcxY2Y2LCAweDg2ZjA2NGQwKX19LAorICAgICAgICAge3tUT0JOKDB4ZDJk
NjcyMWYsIDB4ZmYyODExZTUpLCBUT0JOKDB4ZGI4MWI3MDMsIDB4ZmU3ZmFlOGMpLAorICAgICAg
ICAgICBUT0JOKDB4M2NmYjc0ZWYsIDB4ZDNmMWY3YmIpLCBUT0JOKDB4MGNkYmNkNzYsIDB4MTZj
ZGViNWQpfSwKKyAgICAgICAgICB7VE9CTigweDRmMzk2NDJhLCAweDU2NmE4MDhjKSwgVE9CTigw
eDAyYjc0NDU0LCAweDM0MDA2NGQ2KSwKKyAgICAgICAgICAgVE9CTigweGZhYmJhZGNhLCAweDA1
MjhmYTZmKSwgVE9CTigweGU0YzMwNzRjLCAweGQzZmMwYmI2KX19LAorICAgICAgICAge3tUT0JO
KDB4YjMyY2I4YjAsIDB4Yjc5NmQyMTkpLCBUT0JOKDB4YzNlOTVmNGYsIDB4MzQ3NDFkZDkpLAor
ICAgICAgICAgICBUT0JOKDB4ODcyMTIxMjUsIDB4NjhlZGY2ZjUpLCBUT0JOKDB4N2EwM2FlZTQs
IDB4YTJiOWNiOGUpfSwKKyAgICAgICAgICB7VE9CTigweDBjZDNjMzc2LCAweGY1M2E4OWFhKSwg
VE9CTigweDBkOGFmOWIxLCAweDk0OGEyOGRjKSwKKyAgICAgICAgICAgVE9CTigweGNmODZhM2Y0
LCAweDkwMmFiMDRmKSwgVE9CTigweDhhYWNiNjJhLCAweDdmNDIwMDJkKX19LAorICAgICAgICAg
e3tUT0JOKDB4MTA2OTg1ZWIsIDB4ZjYyZmZkNTIpLCBUT0JOKDB4ZTY3MGI1NGUsIDB4NTc5N2Jm
MTApLAorICAgICAgICAgICBUT0JOKDB4NGI0MDUyMDksIDB4YzVlMzBhZWYpLCBUT0JOKDB4MTJj
OTdhMjAsIDB4NDM2NWI1ZTkpfSwKKyAgICAgICAgICB7VE9CTigweDEwNDY0NmNlLCAweDFmZTMy
MDkzKSwgVE9CTigweDEzY2I0ZmY2LCAweDM5MDdhOGM5KSwKKyAgICAgICAgICAgVE9CTigweDhi
OWYzMGQxLCAweGQ0NmU3MjZiKSwgVE9CTigweGUxOTg1ZTIxLCAweGFiYTBmNDk5KX19LAorICAg
ICAgICAge3tUT0JOKDB4YzU3M2RlYTksIDB4MTBhMjMwY2QpLCBUT0JOKDB4MjRmNDZhOTMsIDB4
Y2QzMGY5NDcpLAorICAgICAgICAgICBUT0JOKDB4ZjI2MjNmY2YsIDB4YWJlMjAxMGEpLCBUT0JO
KDB4M2YyNzhjYjIsIDB4NzNmMDBlNGYpfSwKKyAgICAgICAgICB7VE9CTigweGVkNTVjNjdkLCAw
eDUwYjkyMGViKSwgVE9CTigweGYxY2I5YTJkLCAweDhlNzYwNTcxKSwKKyAgICAgICAgICAgVE9C
TigweDdjNTBkMTA5LCAweDA4OTViNzA5KSwgVE9CTigweDQyMDdjZjA3LCAweDE5MGQ0MzY5KX19
LAorICAgICAgICAge3tUT0JOKDB4M2IwMjdlODEsIDB4YzQxMjdmZTEpLCBUT0JOKDB4YTlmOGI5
YWQsIDB4M2FlOWM1NjYpLAorICAgICAgICAgICBUT0JOKDB4NWFiMTA4NTEsIDB4YWNiZmJiYTUp
LCBUT0JOKDB4YTc0N2Q2NDgsIDB4NTY5NTU2ZjUpfSwKKyAgICAgICAgICB7VE9CTigweGNjMTcy
YjVjLCAweDJiYTk3YmY3KSwgVE9CTigweDE1ZTBmNzdkLCAweGJjZmEzMzI0KSwKKyAgICAgICAg
ICAgVE9CTigweGEzNDViNzk3LCAweDc2ODYyNzlkKSwgVE9CTigweDVhNzIzNDgwLCAweGUzODAw
M2QzKX19LAorICAgICAgICAge3tUT0JOKDB4ZmQ4ZTEzOWYsIDB4OGY1ZmNkYTgpLCBUT0JOKDB4
ZjNlNTU4YzQsIDB4YmRlZTViZmQpLAorICAgICAgICAgICBUT0JOKDB4ZDc2Y2JhZjQsIDB4ZTMz
ZjlmNzcpLCBUT0JOKDB4M2E0Yzk3YTQsIDB4NzE3NzE5NjkpfSwKKyAgICAgICAgICB7VE9CTigw
eGRhMjdlODRiLCAweGY2ZGNlNmE3KSwgVE9CTigweGZmMzczZDk2LCAweDEzZTZjMmQxKSwKKyAg
ICAgICAgICAgVE9CTigweGYxMTUxOTNjLCAweGQ3NTlhNmU5KSwgVE9CTigweDNmOWI3MDI1LCAw
eDYzZDIyNjJjKX19LAorICAgICAgICAge3tUT0JOKDB4ZDk3NjRhMzEsIDB4MzE3Y2QwNjIpLCBU
T0JOKDB4MzA3NzlkOGUsIDB4MTk5ZjgzMzIpLAorICAgICAgICAgICBUT0JOKDB4ZDgwNzQxMDYs
IDB4MTZiMTFiMGIpLCBUT0JOKDB4NzkxN2FiOWYsIDB4NzhhZWFlZDgpfSwKKyAgICAgICAgICB7
VE9CTigweGI2N2E5Y2JlLCAweDI4ZmIxZDhlKSwgVE9CTigweDJlMzEzNTYzLCAweDEzNmVkYTMz
KSwKKyAgICAgICAgICAgVE9CTigweDAxMGI3MDY5LCAweGEzNzFhODZjKSwgVE9CTigweDQ0ZDkw
ZmEyLCAweDY3NDRlNmI3KX19LAorICAgICAgICAge3tUT0JOKDB4NjgxOTA4NjcsIDB4ZDZiM2Uy
NDMpLCBUT0JOKDB4OWZlNmNkOWQsIDB4NTkwNDhjNDgpLAorICAgICAgICAgICBUT0JOKDB4Yjkw
MGIwMjgsIDB4OTU3MzE1MzgpLCBUT0JOKDB4YTAxMjA2MmYsIDB4MzJjYWUwNGYpfSwKKyAgICAg
ICAgICB7VE9CTigweDgxMDdjOGJjLCAweDkzOTlkMDgyKSwgVE9CTigweDQ3ZThjNTRhLCAweDQx
ZGYxMmUyKSwKKyAgICAgICAgICAgVE9CTigweDE0YmE1MTE3LCAweGI2ZWYzZjczKSwgVE9CTigw
eDIyMjYwYmVhLCAweDgxMzYyZjBiKX19LAorICAgICAgICAge3tUT0JOKDB4OTBlYTI2MWUsIDB4
MWExOGNjMjApLCBUT0JOKDB4MjE5Mjk5OWYsIDB4MjMyMWQ2MzYpLAorICAgICAgICAgICBUT0JO
KDB4ZWY2NGQzMTQsIDB4ZTMxMWI2YTApLCBUT0JOKDB4ZDc0MDFlNGMsIDB4M2I1NGExZjUpfSwK
KyAgICAgICAgICB7VE9CTigweDE5MDE5OTgzLCAweDZmYmNhMmJhKSwgVE9CTigweDQ2YWQzMjkz
LCAweDhmYmZmYzRiKSwKKyAgICAgICAgICAgVE9CTigweGExNDJkM2Y2LCAweDM3ODZiZjQwKSwg
VE9CTigweGViNWNiYzI2LCAweGI2NzAzOWZjKX19LAorICAgICAgICAge3tUT0JOKDB4OWNiMGFl
NmMsIDB4MjUyYmQ0NzkpLCBUT0JOKDB4MDVlMGY4OGEsIDB4MTJiNTg0OGYpLAorICAgICAgICAg
ICBUT0JOKDB4NzhmNmQyYjIsIDB4YTVjOTc2NjMpLCBUT0JOKDB4NmY2ZTE0OWIsIDB4YzE2MjIy
NWMpfSwKKyAgICAgICAgICB7VE9CTigweGU2MDIyMzVjLCAweGRlNjAxYTg5KSwgVE9CTigweGQx
N2JiZTk4LCAweGYzNzNiZTFmKSwKKyAgICAgICAgICAgVE9CTigweGNhZjQ5YTViLCAweGE4NDcx
ODI3KSwgVE9CTigweDdlMWEwYTg1LCAweDE4YWFhMTE2KX19LAorICAgICAgICAge3tUT0JOKDB4
NmM4MzMxOTYsIDB4MjcwNTgwYzMpLCBUT0JOKDB4MWUyMzM4MzksIDB4ZjFjOThhMTQpLAorICAg
ICAgICAgICBUT0JOKDB4NjdiMmY3YjQsIDB4YWUzNGUwYTUpLCBUT0JOKDB4NDdhYzg3NDUsIDB4
ZDhjZTcyODkpfSwKKyAgICAgICAgICB7VE9CTigweDJiNzQ3NzlhLCAweDEwMGRkNDY3KSwgVE9C
TigweDI3NGE0MzM3LCAweDRlZTUwZDA5KSwKKyAgICAgICAgICAgVE9CTigweDYwM2RjZjEzLCAw
eDgzNjA4YmM5KSwgVE9CTigweGNkOWRhNmMzLCAweGM4OWU4Mzg4KX19LAorICAgICAgICAge3tU
T0JOKDB4MjY2MDE5OWYsIDB4MzU1MTE2YWMpLCBUT0JOKDB4Y2MzOGJiNTksIDB4YjZkMThlZWQp
LAorICAgICAgICAgICBUT0JOKDB4MzA3NWYzMWYsIDB4MmY0YmMwNzEpLCBUT0JOKDB4OTc3NDQ1
N2YsIDB4MjY1ZGM1N2UpfSwKKyAgICAgICAgICB7VE9CTigweDA2YTZhOWM4LCAweGM2ZGI4OGJi
KSwgVE9CTigweDY0MjlkMDdmLCAweDRlYzk4ZTA0KSwKKyAgICAgICAgICAgVE9CTigweDhkMDVl
NTdiLCAweDA1ZWNhYThiKSwgVE9CTigweDIwZjE0MGIxLCAweDc4NzJlYTdiKX19LAorICAgICAg
ICAge3tUT0JOKDB4ZGY4YzBmMDksIDB4Y2E0OTQ2OTMpLCBUT0JOKDB4NDhkM2EwMjAsIDB4ZjI1
MmU5MDkpLAorICAgICAgICAgICBUT0JOKDB4NGM1YzI5YWYsIDB4NTdiMTRiMTIpLCBUT0JOKDB4
N2U2ZmEzN2QsIDB4YmY0N2FkMWMpfSwKKyAgICAgICAgICB7VE9CTigweDY2ZTdiNTA2LCAweDQ5
YTBjOTM4KSwgVE9CTigweGI3MmMwZDQ4LCAweDZiZTVmNDFmKSwKKyAgICAgICAgICAgVE9CTigw
eDZhNjI0MmI4LCAweGIyMzU5NDEyKSwgVE9CTigweGNkMzVjNzc0LCAweDhlODU5NDgwKX19LAor
ICAgICAgICAge3tUT0JOKDB4MTI1MzZmZWEsIDB4ODdiYWE2MjcpLCBUT0JOKDB4NThjMWZlYzEs
IDB4ZjcyYWE2ODApLAorICAgICAgICAgICBUT0JOKDB4NmMyOWI2MzcsIDB4NjAxZTVkYzkpLCBU
T0JOKDB4OWUzYzNjMWMsIDB4ZGU5ZTAxYjkpfSwKKyAgICAgICAgICB7VE9CTigweGVmYzgxMjdi
LCAweDJiY2ZlMGIwKSwgVE9CTigweDM1MTA3MTAyLCAweDJhMTJmNTBkKSwKKyAgICAgICAgICAg
VE9CTigweDZjY2Q2Y2IxLCAweDQ4NzliMzk3KSwgVE9CTigweGY3OTJmODA0LCAweGY4YTgyZjIx
KX19LAorICAgICAgICAge3tUT0JOKDB4NTA5ZDQ4MDQsIDB4YTliNDY0MDIpLCBUT0JOKDB4ZWRk
ZGY4NWQsIDB4YzEwZjA4NTApLAorICAgICAgICAgICBUT0JOKDB4OTI4NDEwZGMsIDB4NGI2MjA4
YWEpLCBUT0JOKDB4ZjYyMjljNDYsIDB4MzkxMDEyZGMpfSwKKyAgICAgICAgICB7VE9CTigweGM1
YTdjNDFlLCAweDc3MjdiOWI2KSwgVE9CTigweDI4OWU0ZTRiLCAweGFhNDQ0ODQyKSwKKyAgICAg
ICAgICAgVE9CTigweDA0OWJhMWQ5LCAweGU5YTk0N2VhKSwgVE9CTigweDQ0ZjllNDdmLCAweDgz
YzhkZWJjKX19LAorICAgICAgICAge3tUT0JOKDB4ZmE3N2ExZmUsIDB4NjExZjhiOGUpLCBUT0JO
KDB4ZmQyZTQxNmEsIDB4ZjUxOGY0MjcpLAorICAgICAgICAgICBUT0JOKDB4YzVmZmZhNzAsIDB4
MTE0ZWJhYzMpLCBUT0JOKDB4ZmU1N2M0ZTksIDB4NWQ4OTY5N2IpfSwKKyAgICAgICAgICB7VE9C
TigweGZkZDA1M2FjLCAweGIxYWFmNjEzKSwgVE9CTigweDMxZGYyMTBmLCAweGVhNTg1YTQ1KSwK
KyAgICAgICAgICAgVE9CTigweDMxOGNjMTBlLCAweDI0OTg1MDM0KSwgVE9CTigweDFhMzhlZmQx
LCAweDVmMWQ2MTMwKX19LAorICAgICAgICAge3tUT0JOKDB4YmY4NmYyMzcsIDB4MGIxZTllMjEp
LCBUT0JOKDB4YjI1ODUxNGQsIDB4MWRiZTg4YWEpLAorICAgICAgICAgICBUT0JOKDB4MWUzOGE1
ODgsIDB4OTBjMWJhZjkpLCBUT0JOKDB4MjkzNmEwMWUsIDB4YmRiOWI2OTIpfSwKKyAgICAgICAg
ICB7VE9CTigweGQ1NzZkZTk4LCAweDZkZDViMjBjKSwgVE9CTigweGI1ODZiZjcxLCAweDcwZjk4
ZWNmKSwKKyAgICAgICAgICAgVE9CTigweGNjY2YwZjEyLCAweGM0MmQyZmQ3KSwgVE9CTigweDg3
MTdlNjFjLCAweGZiMzViZDdiKX19LAorICAgICAgICAge3tUT0JOKDB4OGIxZTU3MjIsIDB4MzVl
NmZjMDYpLCBUT0JOKDB4MzQ3NzcyOGYsIDB4MGIzZTEzZDUpLAorICAgICAgICAgICBUT0JOKDB4
MTUwYzI5NGQsIDB4YWE4YTczNzIpLCBUT0JOKDB4YzAyOTFkNDMsIDB4M2JmYTUyOGEpfSwKKyAg
ICAgICAgICB7VE9CTigweGM2YzhiYzY3LCAweGNlYzVhMTk2KSwgVE9CTigweGRlZWIzMWU0LCAw
eDVjMmU4YTdjKSwKKyAgICAgICAgICAgVE9CTigweGJhOTNlMjQ0LCAweGZiNmUxYzUxKSwgVE9C
TigweGI5ZjhiNzFiLCAweDJlMjhlMTU2KX19LAorICAgICAgICAge3tUT0JOKDB4Y2U2NWEyODcs
IDB4OTY4YTJhYjkpLCBUT0JOKDB4ZTNjNWNlNjksIDB4NDZiYmNiMWYpLAorICAgICAgICAgICBU
T0JOKDB4ZjhjODM1YjksIDB4ZTdhZTNmMzApLCBUT0JOKDB4MTZiYmVlMjYsIDB4ZmY3MmI4MmIp
fSwKKyAgICAgICAgICB7VE9CTigweDY2NWUyMDE3LCAweGZkNDJjZDIyKSwgVE9CTigweDFlMTM5
OTcwLCAweGY4YjFkMmEwKSwKKyAgICAgICAgICAgVE9CTigweDEyNWNkYTI5LCAweDc5MjA0OTMy
KSwgVE9CTigweDdhZWU5NGE1LCAweDQ5YzNiZWU1KX19LAorICAgICAgICAge3tUT0JOKDB4Njhj
NzAxNjAsIDB4ODk4MjFhNjYpLCBUT0JOKDB4ZjdjMzc2NzgsIDB4OGY5ODE2NjkpLAorICAgICAg
ICAgICBUT0JOKDB4ZDkwODI5ZmMsIDB4NDhjYzM2NDUpLCBUT0JOKDB4MzQ2YWYwNDksIDB4ZDcw
YWRkZmMpfSwKKyAgICAgICAgICB7VE9CTigweDIwNTdiMjMyLCAweDM3MGJmMjljKSwgVE9CTigw
eGY5MGM3M2NlLCAweDQyZTY1MGVlKSwKKyAgICAgICAgICAgVE9CTigweGUwMzM4NmVhLCAweGEx
MjZhYjkwKSwgVE9CTigweDBlMjY2ZTdlLCAweDk3NWEwODdiKX19LAorICAgICAgICAge3tUT0JO
KDB4ODA1NzhlYjksIDB4MGZjYTY1ZDkpLCBUT0JOKDB4N2UyOTg5ZWEsIDB4MTZhZjQ1YjgpLAor
ICAgICAgICAgICBUT0JOKDB4NzQzODIxMmQsIDB4Y2FjNzVhNGUpLCBUT0JOKDB4MzhjN2NhMzks
IDB4NGZlZjM2YjgpfSwKKyAgICAgICAgICB7VE9CTigweDg2NTBjNDk0LCAweGQ0MDI2NzZhKSwg
VE9CTigweDI2YWI1YTY2LCAweGY3MmM3YzQ4KSwKKyAgICAgICAgICAgVE9CTigweDRlNmNiNDI2
LCAweGNlM2E0NjRlKSwgVE9CTigweGY4Zjk5ODk2LCAweDJiNzJmODQxKX19LAorICAgICAgICAg
e3tUT0JOKDB4OGMzMTg0OTEsIDB4MWEzMzVjYzgpLCBUT0JOKDB4NTYzNDU5YmEsIDB4NmE1OTEz
ZTQpLAorICAgICAgICAgICBUT0JOKDB4MWI5MjBkNjEsIDB4YzdiMzI5MTkpLCBUT0JOKDB4ODA1
YWI4YjYsIDB4YTAyNDI1YWQpfSwKKyAgICAgICAgICB7VE9CTigweDJhYzUxMmRhLCAweDhkMDA2
MDg2KSwgVE9CTigweDZjYTQ4NDZhLCAweGJjZjVjMGZkKSwKKyAgICAgICAgICAgVE9CTigweGFm
ZWE1MWQ4LCAweGFjMjEzOGQ3KSwgVE9CTigweGNiNjQ3NTQ1LCAweDM0NGNkNDQzKX19LAorICAg
ICAgICAge3tUT0JOKDB4MDQyOWVlOGYsIDB4YmQ3ZDkwNDApLCBUT0JOKDB4ZWU2NmEyZGUsIDB4
ODE5YjljOTYpLAorICAgICAgICAgICBUT0JOKDB4NTRmOWVjMjUsIDB4ZGVhN2Q3NDQpLCBUT0JO
KDB4MmZmZWE2NDIsIDB4NjcxNzIxYmIpfSwKKyAgICAgICAgICB7VE9CTigweDRmMTlkYmQxLCAw
eDExNDM0NGVhKSwgVE9CTigweDA0MzA0NTM2LCAweGZkMGRiYzhiKSwKKyAgICAgICAgICAgVE9C
TigweDAxNGI1MGFhLCAweDI5ZWM3ZjkxKSwgVE9CTigweGI1ZmMyMmZlLCAweGJiMDYwMTRkKX19
LAorICAgICAgICAge3tUT0JOKDB4NjBkOTYzYTksIDB4MWVlNjgyZTApLCBUT0JOKDB4ZGY0OGFi
YzAsIDB4ZmU4NWM3MjcpLAorICAgICAgICAgICBUT0JOKDB4MGNhZGJhMTMsIDB4MmU3MDdjMmQp
LCBUT0JOKDB4ZGU2MDhkM2EsIDB4YTY0NWFlZmYpfSwKKyAgICAgICAgICB7VE9CTigweDA1ZjFj
MjhiLCAweGVkYWZkODgzKSwgVE9CTigweDNjMzYyZWRlLCAweGJkOTRkZTFmKSwKKyAgICAgICAg
ICAgVE9CTigweDhkZDA2MjlkLCAweDEzNTkzZTQxKSwgVE9CTigweDBhNWU3MzZmLCAweDc2NmQ2
ZWFmKX19LAorICAgICAgICAge3tUT0JOKDB4YmZhOTIzMTEsIDB4ZjY4Y2Y5ZDEpLCBUT0JOKDB4
YTRmOWVmODcsIDB4YzE3OTc1NTYpLAorICAgICAgICAgICBUT0JOKDB4MTBkNzVhMWYsIDB4NTYw
MWMyMDkpLCBUT0JOKDB4NjUxYzM3NGMsIDB4MDliMDczNjEpfSwKKyAgICAgICAgICB7VE9CTigw
eDQ5OTUwYjU4LCAweDg4YjVjZWFkKSwgVE9CTigweDBlZjAwMDU4LCAweDZmYTlkYmFhKSwKKyAg
ICAgICAgICAgVE9CTigweGY1MWRkYzI2LCAweDRlMTVmMzNhKSwgVE9CTigweDFmOGI1Y2E2LCAw
eDJlZjQ2MTQwKX19LAorICAgICAgICAge3tUT0JOKDB4MzQzYWMwYTMsIDB4ZWU5NTIzZjApLCBU
T0JOKDB4YmI3NWVhYjIsIDB4OTc1ZWE5NzgpLAorICAgICAgICAgICBUT0JOKDB4MWJjY2YzMzIs
IDB4MTA3Mzg3ZjQpLCBUT0JOKDB4NzkwZjkyNTksIDB4OWFiMDA2MmUpfSwKKyAgICAgICAgICB7
VE9CTigweGYxYTM2M2FkLCAweDFlNGY2YTVmKSwgVE9CTigweDA2ZTA4Yjg0LCAweDYyNTE5YTUw
KSwKKyAgICAgICAgICAgVE9CTigweDYwOTE1MTg3LCAweDcyNjVmMWVlKSwgVE9CTigweDZhODBj
YTM0LCAweDkzYWU5ODVlKX19LAorICAgICAgICAge3tUT0JOKDB4ODFiMjk3NjgsIDB4YWFiYTQ4
NjQpLCBUT0JOKDB4YjEzY2FiZjIsIDB4OGQ1MmE3ZDYpLAorICAgICAgICAgICBUT0JOKDB4YjVj
MzYzNDgsIDB4OGVhZDAzZjEpLCBUT0JOKDB4YzkzMmFkOTUsIDB4ODFjN2MxYzApfSwKKyAgICAg
ICAgICB7VE9CTigweDU0NTI3MDhlLCAweGNhZTFlMjdiKSwgVE9CTigweDlkYWM0MjY5LCAweDFi
MGRmNjQ4KSwKKyAgICAgICAgICAgVE9CTigweDIzM2UzZjBjLCAweGRmY2RiOGJjKSwgVE9CTigw
eGU2Y2VjY2RmLCAweGVjNTQwMTc0KX19LAorICAgICAgICAge3tUT0JOKDB4YmQwZDg0NWUsIDB4
OTUwODExODEpLCBUT0JOKDB4Y2M4YTc5MjAsIDB4Njk5MzU1ZDUpLAorICAgICAgICAgICBUT0JO
KDB4MTExYzBmNmQsIDB4YzNiMzc1YTgpLCBUT0JOKDB4ZmQ5NWJjNmIsIDB4ZmQ1MWUwZGMpfSwK
KyAgICAgICAgICB7VE9CTigweDRhMTA2YTI2LCAweDY4ODg1MjNhKSwgVE9CTigweDRkMTQyYmQ2
LCAweGNiMDFhMDZkKSwKKyAgICAgICAgICAgVE9CTigweDc5YmZkMjg5LCAweGFkYjliMzk3KSwg
VE9CTigweDBiZGJmYjk0LCAweGU5ODYzOTE0KX19LAorICAgICAgICAge3tUT0JOKDB4MjlkOGEy
MjksIDB4MTY2MGY2YTYpLCBUT0JOKDB4N2Y2YWJjZDYsIDB4NTUxYzA0MmQpLAorICAgICAgICAg
ICBUT0JOKDB4MTMwMzlkZWIsIDB4MGFjM2ZmZTgpLCBUT0JOKDB4YTAxYmU2MjgsIDB4ZWM4NTIz
ZmIpfSwKKyAgICAgICAgICB7VE9CTigweDZlYTM0MTAzLCAweDBjYTFjMzI4KSwgVE9CTigweGM3
NDExNGJkLCAweGI5MDM5MjhlKSwKKyAgICAgICAgICAgVE9CTigweDhhYTRmZjRlLCAweDllOTE0
NGIwKSwgVE9CTigweDcwNjQwOTFmLCAweDdmOWE0YjE3KX19LAorICAgICAgICAge3tUT0JOKDB4
YTNmNGY1MjEsIDB4ZTQ0N2YyYzQpLCBUT0JOKDB4ODFiOGRhN2EsIDB4NjA0MjkxZjApLAorICAg
ICAgICAgICBUT0JOKDB4ZDY4MGJjNDYsIDB4N2Q1OTI2ZGUpLCBUT0JOKDB4ODRmMjFmZDUsIDB4
MzRhMTIwMmYpfSwKKyAgICAgICAgICB7VE9CTigweDFkMWUzMTgxLCAweDRlOWRmM2Q4KSwgVE9C
TigweDFjYTQ4NjFhLCAweDM5YWI4ZDM0KSwKKyAgICAgICAgICAgVE9CTigweDgwOWRkZWVjLCAw
eDViMTlhYTRhKSwgVE9CTigweDU5ZjcyZjdlLCAweDRkMzI5MzY2KX19LAorICAgICAgICAge3tU
T0JOKDB4YTJmOTNmNDEsIDB4Mzg2ZDUwODcpLCBUT0JOKDB4NDBiZjczOWMsIDB4ZGQ2N2Q2NGYp
LAorICAgICAgICAgICBUT0JOKDB4YjQ0OTQyMDUsIDB4NjY3MDIxNTgpLCBUT0JOKDB4YzMzYzY1
YmUsIDB4NzNiMWUxNzgpfSwKKyAgICAgICAgICB7VE9CTigweGNkY2Q2NTdjLCAweDM4Y2E2MTUz
KSwgVE9CTigweDk3ZjQ1MTlhLCAweGRjNzkxOTc2KSwKKyAgICAgICAgICAgVE9CTigweGNjN2M3
ZjI5LCAweGNkNmUxZjM5KSwgVE9CTigweDM4ZGU5Y2ZiLCAweDdlM2MzOTMyKX19LAorICAgICAg
ICAge3tUT0JOKDB4ZTQ0OGViYTMsIDB4N2I3OTNmODUpLCBUT0JOKDB4ZTlmOGRiZjksIDB4ZjA2
N2U5MTQpLAorICAgICAgICAgICBUT0JOKDB4YzAzOTAyNjYsIDB4ZjExNGFlODcpLCBUT0JOKDB4
MzllZDc1YTcsIDB4Y2Q2YThlMmEpfSwKKyAgICAgICAgICB7VE9CTigweGFkYjE0ODQ4LCAweDdm
ZmJhMzkwKSwgVE9CTigweDY3ZjhjYjhiLCAweDZhZjliYzA5KSwKKyAgICAgICAgICAgVE9CTigw
eDMyMmMzODQ4LCAweDljNzQ3NmRiKSwgVE9CTigweGEzMjBmZWNmLCAweDUyYTUzOGQ2KX19LAor
ICAgICAgICAge3tUT0JOKDB4ZTA0OTMwMDIsIDB4YjJhY2VkMmIpLCBUT0JOKDB4ZGZiYTE4MDks
IDB4NjE2YmQ0MzApLAorICAgICAgICAgICBUT0JOKDB4NTMxYzQ2NDQsIDB4YzMzMWJlNzApLCBU
T0JOKDB4YmMwNGQzMmUsIDB4OTBkMmU0NTApfSwKKyAgICAgICAgICB7VE9CTigweDE4MDVhMGQx
LCAweDBmOWYxNDJkKSwgVE9CTigweDJjNDRhMGM1LCAweDQ3ZWU1YTIzKSwKKyAgICAgICAgICAg
VE9CTigweDMxODc1YTQzLCAweDM5ODliNGUzKSwgVE9CTigweDZiMTk0OWZkLCAweDBjMDYzNDgx
KX19LAorICAgICAgICAge3tUT0JOKDB4MmRmYjllMDgsIDB4YmUwZjQ0OTIpLCBUT0JOKDB4M2Zm
MGRhMDMsIDB4ZTlkNWU1MTcpLAorICAgICAgICAgICBUT0JOKDB4MDNkYmU5YTEsIDB4Zjc5NDY2
YTgpLCBUT0JOKDB4MGI4N2JjZDAsIDB4MTVlYTk5MzIpfSwKKyAgICAgICAgICB7VE9CTigweGVi
NjRmYzgzLCAweGFiMWY1OGFiKSwgVE9CTigweDZkOTU5OGRhLCAweDgxN2VkYzhhKSwKKyAgICAg
ICAgICAgVE9CTigweDY5OWNmZjY2LCAweDFkM2I2N2U1KSwgVE9CTigweDY0NWMwZjI5LCAweDky
NjM1ODUzKX19LAorICAgICAgICAge3tUT0JOKDB4MjUzY2RkODIsIDB4ZWFiYWYyMWMpLCBUT0JO
KDB4ODJiOTYwMmEsIDB4MjI0MTY1OWUpLAorICAgICAgICAgICBUT0JOKDB4MmNhZTA3ZWMsIDB4
MmQ5ZjcwOTEpLCBUT0JOKDB4YmU0YzcyMGMsIDB4OGI0OGNkOWIpfSwKKyAgICAgICAgICB7VE9C
TigweDZjZTViYzAzLCAweDZmMDhkNmM5KSwgVE9CTigweDM2ZThhOTk3LCAweGFmMTBiZjQwKSwK
KyAgICAgICAgICAgVE9CTigweDgzNDIyZDIxLCAweDNlMTBmZjEyKSwgVE9CTigweDdiMjZkM2Vi
LCAweGJjYzEyNDk0KX19LAorICAgICAgICAge3tUT0JOKDB4YjI0MGQyZDAsIDB4Yzk0NjlhZDYp
LCBUT0JOKDB4YzRhMTFiNGQsIDB4MzBhZmEwNWIpLAorICAgICAgICAgICBUT0JOKDB4NGI2MDRh
Y2UsIDB4ZGQ2YmEyODYpLCBUT0JOKDB4MTg0ODY2MDAsIDB4M2VlMjg2NGMpfSwKKyAgICAgICAg
ICB7VE9CTigweDU4NjlkNmJhLCAweDhkOWNlNWJlKSwgVE9CTigweDBkOGY2OGM1LCAweGZmNGJm
YjBkKSwKKyAgICAgICAgICAgVE9CTigweGI2OWYyMTBiLCAweDU3MDBjZjczKSwgVE9CTigweDYx
ZjY2NTNhLCAweDZkMzdjMTM1KX19LAorICAgICAgICAge3tUT0JOKDB4ZmYzZDQzMmIsIDB4NWFm
ZjVhNDgpLCBUT0JOKDB4MGQ4MWM0YjksIDB4NzJiYTNhNjkpLAorICAgICAgICAgICBUT0JOKDB4
ZWU4NzlhZTksIDB4ZmExODk5ZWYpLCBUT0JOKDB4YmFjN2UyYTAsIDB4MmQ2YWNhZmQpfSwKKyAg
ICAgICAgICB7VE9CTigweGQ2ZDkzZjZjLCAweDFjNjY0Mzk5KSwgVE9CTigweDRjMjg4ZGUxLCAw
eDViY2IxMzVkKSwKKyAgICAgICAgICAgVE9CTigweDgzMDMxZGFiLCAweDlkYWI3Y2JmKSwgVE9C
TigweGZlMjNmZWIwLCAweDNhYmJmNWYwKX19LAorICAgICAgICAge3tUT0JOKDB4OWYxYjI0NjYs
IDB4Y2RlZGNhODUpLCBUT0JOKDB4MTQwYmI3MTAsIDB4MWEwOTUzOGMpLAorICAgICAgICAgICBU
T0JOKDB4YWM4YWU4NTEsIDB4NWUxMTExNWQpLCBUT0JOKDB4MGQ2M2ZmNjcsIDB4NmYwM2Y1OWUp
fSwKKyAgICAgICAgICB7VE9CTigweDc1NWU1NTUxLCAweDdkMjM0YWZiKSwgVE9CTigweDYxYzJk
YjRlLCAweDdlMjA4ZmMxKSwKKyAgICAgICAgICAgVE9CTigweGFhOTg1OWNlLCAweGYyOGE0YjVk
KSwgVE9CTigweGJkZDZkNGZjLCAweDM0YWYwMzBmKX19LAorICAgICAgICAge3tUT0JOKDB4ZDFj
NGEyNmQsIDB4M2JlMDFjYjEpLCBUT0JOKDB4OWJhMTRmZmMsIDB4MjQzYWEwN2MpLAorICAgICAg
ICAgICBUT0JOKDB4Zjk1Y2QzYTksIDB4YjI1MDM1MDIpLCBUT0JOKDB4ZTM3OWJjMDYsIDB4N2Qy
YTkzYWIpfSwKKyAgICAgICAgICB7VE9CTigweDNlZmMxOGU5LCAweGQ0Y2E4ZDY4KSwgVE9CTigw
eDA4MzU1OGVjLCAweDgwYmI0MTJhKSwKKyAgICAgICAgICAgVE9CTigweGQ5MDNiOTQwLCAweDk2
NDVhOTY4KSwgVE9CTigweGE0OTlmMGI2LCAweDliYTYwNTRmKX19LAorICAgICAgICAge3tUT0JO
KDB4MjA4YjU3M2MsIDB4YjgzNDlhYmUpLCBUT0JOKDB4M2JhYWIzZTUsIDB4MzBiNGZjMWMpLAor
ICAgICAgICAgICBUT0JOKDB4ODdlOTc4YmEsIDB4Y2I1MjQ5OTApLCBUT0JOKDB4MzUyNDE5NGUs
IDB4Y2NkZjBlODApfSwKKyAgICAgICAgICB7VE9CTigweDYyNzExNzI1LCAweDdkNGJjYzQyKSwg
VE9CTigweGU5MGEzZDliLCAweGI5MDEwOWJhKSwKKyAgICAgICAgICAgVE9CTigweDNiMWJkZDU3
LCAweDEzMjNlMWUwKSwgVE9CTigweGI3OGU5YmQ1LCAweDVlYWUxNTk5KX19LAorICAgICAgICAg
e3tUT0JOKDB4MDc5NGI3NDYsIDB4OWUwM2QyNzgpLCBUT0JOKDB4ODAxNzg2MDUsIDB4ZDcwZTYy
OTcpLAorICAgICAgICAgICBUT0JOKDB4MTcxNzkyZjgsIDB4OTljOTc4NTUpLCBUT0JOKDB4MTFi
MzkzZWUsIDB4ZjVhODZiNWMpfSwKKyAgICAgICAgICB7VE9CTigweDQ4ZWY2NTgyLCAweGQ4ODg0
ZjI3KSwgVE9CTigweGJkNDQ3MzdhLCAweGJmMTliYTVmKSwKKyAgICAgICAgICAgVE9CTigweDg2
OThkZTRjLCAweGE0MjA2MmM2KSwgVE9CTigweDg5NzVlYjgwLCAweDYxY2U5YzU0KX19LAorICAg
ICAgICAge3tUT0JOKDB4ZDUwZTU3YzcsIDB4ZDdmZTcxZjMpLCBUT0JOKDB4MTUzNDIxOTAsIDB4
YmM5N2NlMzgpLAorICAgICAgICAgICBUT0JOKDB4NTFiZGEyZGUsIDB4NGRmMDdiNjMpLCBUT0JO
KDB4YmExMmFlYWUsIDB4MjAwZWI4N2QpfSwKKyAgICAgICAgICB7VE9CTigweGFiZTEzNWQyLCAw
eGE5YjRmOGY2KSwgVE9CTigweDA0NjE5ZDY1LCAweGZhZDZkOTljKSwKKyAgICAgICAgICAgVE9C
TigweDRhNjY4M2E3LCAweDc5OTQ5MzdjKSwgVE9CTigweDdhNzc4YzhiLCAweDZmOTRmMDlhKX19
LAorICAgICAgICAge3tUT0JOKDB4OGM1MDg2MjMsIDB4MjBhNzFiODkpLCBUT0JOKDB4MjQxYTJh
ZWQsIDB4MWMyMjkxNjUpLAorICAgICAgICAgICBUT0JOKDB4MzUyYmU1OTUsIDB4YWFmODNhOTkp
LCBUT0JOKDB4OWZiZmVlN2YsIDB4MTU2MmJhYzgpfSwKKyAgICAgICAgICB7VE9CTigweGVhZjY1
OGI5LCAweDVjNDAxN2UzKSwgVE9CTigweDFkYzdmOWUwLCAweDE1MTIwYjg2KSwKKyAgICAgICAg
ICAgVE9CTigweGQ4NGYxM2RkLCAweDRjMDM0ZDZmKSwgVE9CTigweDI4M2RkNzM3LCAweGVhZWEz
MDM4KX19LAorICAgICAgICAge3tUT0JOKDB4MTk3ZjI2MDksIDB4Y2Q4NWQ2YTIpLCBUT0JOKDB4
NmViYmMzNDUsIDB4ZmFlNjAxNzcpLAorICAgICAgICAgICBUT0JOKDB4YjgwZjAzMWIsIDB4NGUx
MmZlZGUpLCBUT0JOKDB4ZGU1NWQwYzIsIDB4MDdhMjE4NmIpfSwKKyAgICAgICAgICB7VE9CTigw
eDFmYjNlMzdmLCAweDI0ZGNkZDVhKSwgVE9CTigweDhkNjAyZGE1LCAweDdlZDE5MWZiKSwKKyAg
ICAgICAgICAgVE9CTigweDEwOGZiMDU2LCAweDc2MDIzZTBkKSwgVE9CTigweDcwMTc4YzcxLCAw
eDQ1OWMyMGMwKX19LAorICAgICAgICAge3tUT0JOKDB4ZmFkNWEzODYsIDB4M2ZlNTRjZjApLCBU
T0JOKDB4YTRhM2VjNGYsIDB4MDJiYmI0NzUpLAorICAgICAgICAgICBUT0JOKDB4MWFhNWVjMjAs
IDB4OTE5ZDk0ZDcpLCBUT0JOKDB4NWQzYjYzYjUsIDB4YTgxZTRhYjMpfSwKKyAgICAgICAgICB7
VE9CTigweDdmYTczM2Q4LCAweDVhZDNkMmFmKSwgVE9CTigweGZiYzU4NmRkLCAweGQxYWM3YTM3
KSwKKyAgICAgICAgICAgVE9CTigweDI4MjkyNWRlLCAweDQwNzc5NjE0KSwgVE9CTigweGZlMGZm
ZmZiLCAweGU3NGEyNDJhKX19LAorICAgICAgICAge3tUT0JOKDB4M2YzOWU2N2YsIDB4OTA2MTUx
ZTUpLCBUT0JOKDB4Y2VhMjdmNWYsIDB4NTVlMTA2NDkpLAorICAgICAgICAgICBUT0JOKDB4ZGNh
MWQ0ZTEsIDB4YzE3Y2Y3YjcpLCBUT0JOKDB4MGMzMjZkMTIsIDB4MmZlMjM2MmQpfSwKKyAgICAg
ICAgICB7VE9CTigweDA1ZjdhYzMzLCAweDdkZDM1ZGYzKSwgVE9CTigweDBjM2I3NjM5LCAweGMz
OTZkYmRmKSwKKyAgICAgICAgICAgVE9CTigweDA5MTJmNWFjLCAweDAzYjdkYjFjKSwgVE9CTigw
eDlkZWE0YjcwLCAweDVjOWVkNGE5KX19LAorICAgICAgICAge3tUT0JOKDB4NDc1ZTZlNTMsIDB4
YWFlM2Y2MzkpLCBUT0JOKDB4ZmFiYTBlN2MsIDB4ZmMyNzhiYWMpLAorICAgICAgICAgICBUT0JO
KDB4MTZmOWUyMjEsIDB4OTQ5MDM3NWYpLCBUT0JOKDB4YWViZjk3NDYsIDB4YTVhN2VkMGEpfSwK
KyAgICAgICAgICB7VE9CTigweDQ1ZjlhZjNmLCAweGY0MWFkNWQ2KSwgVE9CTigweDAzYzQ2MjNj
LCAweGIyZTk5MjI0KSwKKyAgICAgICAgICAgVE9CTigweDgyYzViYjVjLCAweGIzY2Y1NmFhKSwg
VE9CTigweDY0MzExODE5LCAweDM0NTY3ZWQzKX19LAorICAgICAgICAge3tUT0JOKDB4ZWM1N2Yy
MTEsIDB4OGJlNDg5YWMpLCBUT0JOKDB4MjgyMTg5NWQsIDB4YjlhMTEwNGIpLAorICAgICAgICAg
ICBUT0JOKDB4NjEwZGM4NzUsIDB4NjA2NGUwMDcpLCBUT0JOKDB4OGU1MjZmM2YsIDB4NWIyMGQw
ZmUpfSwKKyAgICAgICAgICB7VE9CTigweDZlNzFjYTc3LCAweDViNjQ1YWVlKSwgVE9CTigweDNk
MWRjYjlmLCAweDgwMGUxMGZmKSwKKyAgICAgICAgICAgVE9CTigweDM2YjUxMTYyLCAweDE4OWNm
NmRlKSwgVE9CTigweDJjNWEzZTMwLCAweDZiYjE3MzUzKX19LAorICAgICAgICAge3tUT0JOKDB4
YzE4NmNkM2UsIDB4MmE2YzZmYmYpLCBUT0JOKDB4YTc0NTE2ZmEsIDB4NGJmOTc5MDYpLAorICAg
ICAgICAgICBUT0JOKDB4NWI0YjhmNGIsIDB4Mjc5ZDY5MDEpLCBUT0JOKDB4MGM0ZTU3YjQsIDB4
MmI1NzM3NDMpfSwKKyAgICAgICAgICB7VE9CTigweDc1ZmRiMjI5LCAweGI2ZTM4NmI2KSwgVE9C
TigweGI0Njc5M2ZkLCAweDk5ZGVhYzI3KSwKKyAgICAgICAgICAgVE9CTigweGVlZWM0N2VhLCAw
eGNmNzEyNjI5KSwgVE9CTigweGU5NjVmM2M0LCAweGNiYzNiMmRkKX19LAorICAgICAgICAge3tU
T0JOKDB4OGRkMWZiODMsIDB4NDI1YzY1NTkpLCBUT0JOKDB4N2ZjMDBlZTYsIDB4MGFmMDZmZGEp
LAorICAgICAgICAgICBUT0JOKDB4ZTk4YzkyMjUsIDB4MzNkOTU2ZGYpLCBUT0JOKDB4MGYxZWYz
MzUsIDB4NGZiZGM4YTIpfSwKKyAgICAgICAgICB7VE9CTigweDJhYmI1MTQ1LCAweGI3OWI4ZWEy
KSwgVE9CTigweDQwZmQyOTQ1LCAweGJkYmZmMjg4KSwKKyAgICAgICAgICAgVE9CTigweDZhODE0
YWM0LCAweGQ3MTg1ZGI3KSwgVE9CTigweGM0MzI5ZDZmLCAweGMwODQ2MDlhKX19LAorICAgICAg
ICAge3tUT0JOKDB4YzliYTdiNTIsIDB4ZWQxYmU0NWQpLCBUT0JOKDB4ODkxZGQyMGQsIDB4ZTRj
ZDJjNzQpLAorICAgICAgICAgICBUT0JOKDB4NWE0ZDRhN2YsIDB4ODI0MTM5YjEpLCBUT0JOKDB4
NjZjMTc3MTYsIDB4Yjg3M2M3MTApfSwKKyAgICAgICAgICB7VE9CTigweDVlNWJjMTQxLCAweDI4
NDNjNGUwKSwgVE9CTigweGQ1YWM0ODE3LCAweGI5N2ViNWJmKSwKKyAgICAgICAgICAgVE9CTigw
eGMwZjhhZjU0LCAweDQ1MGM5NWM3KSwgVE9CTigweGM5MWIzZmEwLCAweDMxODQwNmM1KX19LAor
ICAgICAgICAge3tUT0JOKDB4MzYwYzM0MGEsIDB4YWI5ZDk3ZjgpLCBUT0JOKDB4ZmI1N2JkMDcs
IDB4OTBhMmQ2MTEpLAorICAgICAgICAgICBUT0JOKDB4NDMzOWFlM2MsIDB4YTZhNmY3ZTUpLCBU
T0JOKDB4OWMxZmNkMmEsIDB4MmZlYjhhMTApfSwKKyAgICAgICAgICB7VE9CTigweDk3MmJjY2E5
LCAweGM3ZWE3NDMyKSwgVE9CTigweDFiMGI5MjRjLCAweDMwODA3NmY2KSwKKyAgICAgICAgICAg
VE9CTigweDgwYjI4MTRhLCAweDJhNWI0Y2E1KSwgVE9CTigweDJmNzhmNTViLCAweDYxZWYzYjI5
KX19LAorICAgICAgICAge3tUT0JOKDB4ZjgzODc0NGEsIDB4YzE4YTQxNGYpLCBUT0JOKDB4YzYx
MWVhYWUsIDB4OTAzZDBhODYpLAorICAgICAgICAgICBUT0JOKDB4OTRkYWJjMTYsIDB4MmE0NTNm
NTUpLCBUT0JOKDB4ZTZmMmUzZGEsIDB4MTRlZmIyNzkpfSwKKyAgICAgICAgICB7VE9CTigweDVi
N2E2MDE3LCAweDkzMjBkYzNjKSwgVE9CTigweDY5MmUzODJmLCAweDhkZjZiNWE0KSwKKyAgICAg
ICAgICAgVE9CTigweDNmNWUxNWUwLCAweDJkNDBmYTkwKSwgVE9CTigweGM4Nzg4M2FlLCAweDY0
M2RkMzE4KX19LAorICAgICAgICAge3tUT0JOKDB4NTExMDUzZTQsIDB4NTM1NDQ3NzQpLCBUT0JO
KDB4ODM0ZDBlY2MsIDB4M2FkYmEyYmMpLAorICAgICAgICAgICBUT0JOKDB4NDIxNWQ3ZjcsIDB4
YmFlMzcxZjUpLCBUT0JOKDB4ZmNmZDU3YmYsIDB4NmM4NjYzYmMpfSwKKyAgICAgICAgICB7VE9C
TigweGRlZDIzODNkLCAweGQ2OTAxYjFkKSwgVE9CTigweDNiNDlmYmI0LCAweGI1NTg3ZGMzKSwK
KyAgICAgICAgICAgVE9CTigweGZkNDRhMDhkLCAweDA3NjI1ZjYyKSwgVE9CTigweDNlZTRkNjVi
LCAweDlkZTliNzYyKX19fSwKKyAgICAgICAge3t7VE9CTigweDY0ZTUxMzdkLCAweDBkNjNkMWZh
KSwgVE9CTigweDY1OGZjMDUyLCAweDAyYTlkODlmKSwKKyAgICAgICAgICAgVE9CTigweDQ4ODk0
ODc0LCAweDUwNDM2MzA5KSwgVE9CTigweGU5YWUzMGY4LCAweGQ1OThkYTYxKX0sCisgICAgICAg
ICAge1RPQk4oMHgyZWQ3MTBkMSwgMHg4MThiYWY5MSksIFRPQk4oMHhlMjdlOWUwNiwgMHg4YjZh
MGMyMCksCisgICAgICAgICAgIFRPQk4oMHgxZTI4ZGNmYiwgMHgxYzFhNmI0NCksIFRPQk4oMHg4
ODNhY2I2NCwgMHhkNmFjNTdkYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDg3MzU3MjhkLCAweGMy
YzZmZjcwKSwgVE9CTigweDc5ZDYxMjJmLCAweGM1ZGMyMjM1KSwKKyAgICAgICAgICAgVE9CTigw
eDIzZjVkMDAzLCAweDE5ZTI3N2Y5KSwgVE9CTigweDdlZTg0ZTI1LCAweGRkZWQ4Y2M3KX0sCisg
ICAgICAgICAge1RPQk4oMHg5MWE4YWZiMCwgMHg2M2NkODgwYSksIFRPQk4oMHgzZjNlYTdjNiwg
MHgzNTc0YWY2MCksCisgICAgICAgICAgIFRPQk4oMHgwY2ZjZGM4NCwgMHgwMmRlN2Y0MiksIFRP
Qk4oMHg2MmQwNzkyZiwgMHhiMzFhYTE1Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDhlMWI0ZTQz
LCAweDhhNTgwN2NlKSwgVE9CTigweGFkMjgzODkzLCAweGU0MTA5YTdlKSwKKyAgICAgICAgICAg
VE9CTigweGMzMGNjOWNiLCAweGFmZDU5ZGRhKSwgVE9CTigweGY2NWYzNmM2LCAweDNkOGQ4MDkz
KX0sCisgICAgICAgICAge1RPQk4oMHhkZjMxNDY5ZSwgMHhhNjBkMzJiMiksIFRPQk4oMHhlZTkz
ZGY0YiwgMHgzZTgxOTFjOCksCisgICAgICAgICAgIFRPQk4oMHg5YzEwMTdjNSwgMHgzNTViZGVi
NSksIFRPQk4oMHhkMjYyMzE4NSwgMHg4NjE2YWEyOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGIw
MmM4M2Y5LCAweGRlYzMxYTIxKSwgVE9CTigweDk4OGM4YjIzLCAweDZhZDlkNTczKSwKKyAgICAg
ICAgICAgVE9CTigweDUzZTk4M2FlLCAweGE1N2JlMzY1KSwgVE9CTigweGU5Njg3MzRkLCAweDY0
NmY4MzRlKX0sCisgICAgICAgICAge1RPQk4oMHg5MTM3ZWE4ZiwgMHg1ZGE2MzA5YiksIFRPQk4o
MHgxMGYzYTYyNCwgMHhjMWYxY2UxNiksCisgICAgICAgICAgIFRPQk4oMHg3ODJhOWVhMiwgMHhj
YTQ0MDkyMSksIFRPQk4oMHhkZjk0NzM5ZSwgMHg1YjQ2ZjFiNSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDlmOWJlMDA2LCAweGNjZTg1YzliKSwgVE9CTigweDM2MGU3MGQ2LCAweGE0YzdjMmQzKSwK
KyAgICAgICAgICAgVE9CTigweDJjZDViZWVhLCAweGFlZmExZTYwKSwgVE9CTigweDY0Y2Y2M2Mw
LCAweDhjM2QyYjZkKX0sCisgICAgICAgICAge1RPQk4oMHhmYjEwN2ZhMywgMHhlMWNmNmY5MCks
IFRPQk4oMHhiN2U5MzdjNiwgMHhkNWUwNDRlNiksCisgICAgICAgICAgIFRPQk4oMHg3NGU4Y2E3
OCwgMHhjZTM0ZGI5ZiksIFRPQk4oMHg0ZjhiMzZjMSwgMHgzZTIxMGJkMCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDFkZjE2NWE0LCAweDM0YTM1ZWE4KSwgVE9CTigweDM0MThlMGY3LCAweDRkNDQx
MmY2KSwKKyAgICAgICAgICAgVE9CTigweDVhZjFmOGFmLCAweDUxODgzNmMzKSwgVE9CTigweDQy
Y2VlZjRkLCAweDEzMGUxOTY1KX0sCisgICAgICAgICAge1RPQk4oMHg1NTYwY2EwYiwgMHg1NDNh
MTk1NyksIFRPQk4oMHhjMzM3NjFlNSwgMHg4ODZjYjEyMyksCisgICAgICAgICAgIFRPQk4oMHg2
NjYyNGIxZiwgMHhmZTk4ZWQzMCksIFRPQk4oMHhmNzcyZjRiZiwgMHgxMDkwOTk3ZCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGY0ZTU0MGJiLCAweDQ4ODVkNDEwKSwgVE9CTigweDcyODdmODEwLCAw
eDliYTVmOGQ3KSwKKyAgICAgICAgICAgVE9CTigweDIyZDBkODY1LCAweGRlOThkZmIxKSwgVE9C
TigweDQ5ZmY1MWExLCAweGJjZmJiOGEzKX0sCisgICAgICAgICAge1RPQk4oMHhiNmI2ZmE1Mywg
MHg2YmMzMDEyZSksIFRPQk4oMHgzZDMxZmQ3MiwgMHgxNzBkNTQxZCksCisgICAgICAgICAgIFRP
Qk4oMHg4MDE4NzI0ZiwgMHg0YjBmNDk2NiksIFRPQk4oMHg3OWU3Mzk5ZiwgMHg4N2RiZGUwNyl9
fSwKKyAgICAgICAgIHt7VE9CTigweDU2Zjg0MTBlLCAweGY0ZjhiMTZhKSwgVE9CTigweDk3MjQx
YWZlLCAweGM0N2IyNjZhKSwKKyAgICAgICAgICAgVE9CTigweDBhNDA2YjhlLCAweDZkOWM4N2Mx
KSwgVE9CTigweDgwM2YzZTAyLCAweGNkNDJhYjFiKX0sCisgICAgICAgICAge1RPQk4oMHg3ZjAz
MDlhOCwgMHgwNGRiZWM2OSksIFRPQk4oMHhhODNiODVmNywgMHgzYmJhZDA1ZiksCisgICAgICAg
ICAgIFRPQk4oMHhjNjA5NzI3MywgMHhhZDhlMTk3ZiksIFRPQk4oMHhjMDk3NDQwZSwgMHg1MDY3
YWRjMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDczMGVhZmI2LCAweDM1MjRmZjE2KSwgVE9CTigw
eGQ3ZjliNTFlLCAweDgyM2ZjNmNlKSwKKyAgICAgICAgICAgVE9CTigweDI3YmQwZDMyLCAweDQ0
M2U0YWMwKSwgVE9CTigweDQwYzU5YWQ5LCAweDRkNjZmMjE3KX0sCisgICAgICAgICAge1RPQk4o
MHg2YzMzMTM2ZiwgMHgxN2MzODdhNCksIFRPQk4oMHg1MDQzYjhkNSwgMHhlYjg2ODA0ZCksCisg
ICAgICAgICAgIFRPQk4oMHg3NDk3MDMxMiwgMHg2NzVhNzNjOSksIFRPQk4oMHg4MzhmZGIzMSwg
MHhmMTY2NjliNil9fSwKKyAgICAgICAgIHt7VE9CTigweGM1MDdiNmRkLCAweDQxOGU3ZGRkKSwg
VE9CTigweDM5ODg4ZDkzLCAweDQ3MmYxOWQ2KSwKKyAgICAgICAgICAgVE9CTigweDdlYWUyNmJl
LCAweDBjMjdlYjRkKSwgVE9CTigweDE3YjUzZWQzLCAweGZiYWJiODg0KX0sCisgICAgICAgICAg
e1RPQk4oMHhmYzI3MDIxYiwgMHgyYjAxYWU0ZiksIFRPQk4oMHg4ODQ2MmU4NywgMHhjZjQ4ODY4
MiksCisgICAgICAgICAgIFRPQk4oMHhiZWUwOTZlYywgMHgyMTVlMmQ4NyksIFRPQk4oMHhlYjJm
ZWE5YSwgMHhkMjQyZTI5Yil9fSwKKyAgICAgICAgIHt7VE9CTigweDVkOTg1YjVmLCAweGI4MjFm
YzI4KSwgVE9CTigweDg5ZDJlMTk3LCAweGRjMWUyYWQyKSwKKyAgICAgICAgICAgVE9CTigweDU1
YjU2NmI4LCAweDkwMzBiYTYyKSwgVE9CTigweGUzZmQ0MWI1LCAweDRmNDFiMWM2KX0sCisgICAg
ICAgICAge1RPQk4oMHhiNzM4YWMyZSwgMHhiOWE5NmQ2MSksIFRPQk4oMHg3Zjg1NjdjYSwgMHgz
Njk0NDNmNCksCisgICAgICAgICAgIFRPQk4oMHg4Njk4NjIyZCwgMHhmODAzYTQ0MCksIFRPQk4o
MHgyYjU4NjIzNiwgMHg4ZmUyZjRkYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGJiY2MwMGM3LCAw
eDU2Yjk1YmNlKSwgVE9CTigweDVlYzAzOTA2LCAweDYxNmRhNjgwKSwKKyAgICAgICAgICAgVE9C
TigweDc5MTYyZWU2LCAweDcyMjE0MjUyKSwgVE9CTigweDQzMTMyYjYzLCAweDg2YTg5MmQyKX0s
CisgICAgICAgICAge1RPQk4oMHg0YmRkM2ZmMiwgMHgyZjMyNjNiZiksIFRPQk4oMHhkNWIzNzMz
YywgMHg5Y2QwYTE0MiksCisgICAgICAgICAgIFRPQk4oMHg1OTJlYWE4MiwgMHg0NDQxNWNjYiks
IFRPQk4oMHg2NjNlODkyNCwgMHg4ZDU0NzRlYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDgwNThh
MjVlLCAweDUyMzYzNDRlKSwgVE9CTigweDgyZThkZjlkLCAweGJkYTc2ZWU2KSwKKyAgICAgICAg
ICAgVE9CTigweGRjZjZlZmQ4LCAweDExY2MzZDIyKSwgVE9CTigweDAwMDg5Y2RhLCAweDNiNGFi
NTI5KX0sCisgICAgICAgICAge1RPQk4oMHg5MWQzYTA3MSwgMHhiZDM4YTNkYiksIFRPQk4oMHg0
ZWE5N2ZjMCwgMHhlZjcyYjkyNSksCisgICAgICAgICAgIFRPQk4oMHgwYzlmYzE1YiwgMHhlYTNl
ZGY3NSksIFRPQk4oMHg1YTYyOTdjZCwgMHhhNDM0OGVkMyl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDBkMzhhYjM1LCAweGNlN2M0MmQ0KSwgVE9CTigweDlmZDQ5M2VmLCAweDgyZmVhYjEwKSwKKyAg
ICAgICAgICAgVE9CTigweDQ2MDU2YjZkLCAweDgyMTExYjQ1KSwgVE9CTigweGRhMTFkYWUxLCAw
eDczZWZjNWMzKX0sCisgICAgICAgICAge1RPQk4oMHhkYzc0MDI3OCwgMHg1NTQ1YTdmYiksIFRP
Qk4oMHhiZGIyNjAxYywgMHg0MGQ1MDdlNiksCisgICAgICAgICAgIFRPQk4oMHgxMjFkZmVlYiwg
MHg3MDY2ZmE1OCksIFRPQk4oMHgyMTQzNjlhOCwgMHgzOWFlOGMyYSl9fSwKKyAgICAgICAgIHt7
VE9CTigweDE5NTcwOWNiLCAweDA2ZTA5NTZjKSwgVE9CTigweDRjOWQyNTRmLCAweDAxMGNkMzRi
KSwKKyAgICAgICAgICAgVE9CTigweGY1MWUxM2Y3LCAweDA0NzFhNTMyKSwgVE9CTigweGUxOWQ2
NzkxLCAweDFlNzMwNTRkKX0sCisgICAgICAgICAge1RPQk4oMHhmNzAyYTYyOCwgMHhkYjVjN2Jl
MyksIFRPQk4oMHhjNzE0MTIxOCwgMHhiMjRkZGUwNSksCisgICAgICAgICAgIFRPQk4oMHhkYzE4
MjMzYywgMHhmMjliMmUyZSksIFRPQk4oMHgzYTZiZDFlOCwgMHg4NTM0MmRiYSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDNmNzQ3ZmEwLCAweGIzMTE4OThjKSwgVE9CTigweGUyYTI3MmU0LCAweGNk
MGVhYzY1KSwKKyAgICAgICAgICAgVE9CTigweDRiYmE1ODUxLCAweGY5MTRkMGJjKSwgVE9CTigw
eDdhMWE5NjYwLCAweGM0YTQzZWUzKX0sCisgICAgICAgICAge1RPQk4oMHhlNWEzNjdjZSwgMHhh
MWM4Y2RlOSksIFRPQk4oMHg5ZDk1OGJhOSwgMHg3MjcxYWJlMyksCisgICAgICAgICAgIFRPQk4o
MHhmM2ZmN2ViNiwgMHgzZDE2MTVjZCksIFRPQk4oMHhhMjI4MGRjZSwgMHhmNWFlMjBiMCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDU2ZGJhNWMxLCAweGNmNjQwMTQ3KSwgVE9CTigweGVhNWEyZTNk
LCAweDVlODNkMTE4KSwKKyAgICAgICAgICAgVE9CTigweDA0Y2Q2YjZkLCAweGRhMjRjNTExKSwg
VE9CTigweDFjMGY0NjcxLCAweGU4NTRkMjE0KX0sCisgICAgICAgICAge1RPQk4oMHg5MWE2Yjdh
OSwgMHg2OTU2NTM4MSksIFRPQk4oMHhkYzk2NjI0MCwgMHhkZWNmMWY1YiksCisgICAgICAgICAg
IFRPQk4oMHgxYjIyZDIxYywgMHhmY2Y1ZDAwOSksIFRPQk4oMHgyYTA1ZjY0MSwgMHg5MDIxZGJk
NSl9fSwKKyAgICAgICAgIHt7VE9CTigweDhjMGVkNTY2LCAweGQ0MzEyNDgzKSwgVE9CTigweDUx
NzlhOTVkLCAweDY0M2UyMTZmKSwKKyAgICAgICAgICAgVE9CTigweGNjMTg1ZmVjLCAweDE3MDQ0
NDkzKSwgVE9CTigweGIzMDYzMzM5LCAweDU0OTkxYTIxKX0sCisgICAgICAgICAge1RPQk4oMHhk
ODAxZWNkYiwgMHgwMDgxYTcyNiksIFRPQk4oMHgwMTQ5YjBjNiwgMHg0ZmE4OWJiYiksCisgICAg
ICAgICAgIFRPQk4oMHhhZmU5MDY1YSwgMHg0MzkxYjZiOSksIFRPQk4oMHhlZGM5Mjc4NiwgMHhk
NjMzZjNhMyl9fSwKKyAgICAgICAgIHt7VE9CTigweGU0MDhjMjRhLCAweGFlNmE4ZTEzKSwgVE9C
TigweDg1ODMzZmRlLCAweDlmMzg5N2FiKSwKKyAgICAgICAgICAgVE9CTigweDQzODAwZTdlLCAw
eGQ4MWEwNzE1KSwgVE9CTigweGRlMDhlMzQ2LCAweGI0NGZmYzVmKX0sCisgICAgICAgICAge1RP
Qk4oMHg3MDk0MTg0YywgMHhjZGVmZjJlMCksIFRPQk4oMHg0OWY5Mzg3YiwgMHgxNjVlYWVkMSks
CisgICAgICAgICAgIFRPQk4oMHg2MzVkNjEyOSwgMHg3NzdjNDY4YSksIFRPQk4oMHg4YzBkY2Zk
MSwgMHg1MzhjMmRkOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGQ2ZDlkOWUzLCAweDdhNmEzMDhi
KSwgVE9CTigweDYyMzc1ODMwLCAweDRjMjc2N2QzKSwKKyAgICAgICAgICAgVE9CTigweDg3NGE4
YmM2LCAweGYzOGNiZWI2KSwgVE9CTigweGQ5NGQzZjFhLCAweGNjYjZmZDllKX0sCisgICAgICAg
ICAge1RPQk4oMHg5MmE5NzM1YiwgMHhiYTIxZjI0OCksIFRPQk4oMHgyNzJhZDBlNSwgMHg2Y2Qx
ZWZiMCksCisgICAgICAgICAgIFRPQk4oMHg3NDM3YjY5YywgMHgwNWIwMzI4NCksIFRPQk4oMHhl
N2YwNDcwMiwgMHg2OTQ4YzIyNSl9fSwKKyAgICAgICAgIHt7VE9CTigweDhhNTZjMDRhLCAweGNi
YTJlY2VjKSwgVE9CTigweDBjMTgxMjcwLCAweGUzYTczZTQxKSwKKyAgICAgICAgICAgVE9CTigw
eDZjYjM0ZTlkLCAweDAzZTkzNzI1KSwgVE9CTigweGY3N2M4NzEzLCAweDQ5NjUyMWE5KX0sCisg
ICAgICAgICAge1RPQk4oMHg5NDU2OTE4MywgMHhmYTdmOWY5MCksIFRPQk4oMHhmMmU3YWE0Yywg
MHg4Yzk3MDdhZCksCisgICAgICAgICAgIFRPQk4oMHhjZWQyYzliYSwgMHgyNmMxYzlhMyksIFRP
Qk4oMHg5MTA5ZmU5NiwgMHg0MDE5NzUwNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDlhZTg2OGE5
LCAweGU5YWRmZTFjKSwgVE9CTigweDM5ODQ0MDNkLCAweDMxNGUzOWJiKSwKKyAgICAgICAgICAg
VE9CTigweGI1ODc1NzIwLCAweGYyZmUzNzhmKSwgVE9CTigweDMzZjkwMWUwLCAweGJhNDRhNjI4
KX0sCisgICAgICAgICAge1RPQk4oMHhlYTExMjVmZSwgMHgzNjUyNDM4YyksIFRPQk4oMHhhZTll
YzRlNiwgMHg5ZGQxZjIwYiksCisgICAgICAgICAgIFRPQk4oMHgxZTc0MGQ5ZSwgMHhiZWJmN2Zi
ZCksIFRPQk4oMHg2ZGJkM2RkYywgMHg0MmRiZTc5Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDYy
MDgyYWVjLCAweGVkZDM2Nzc2KSwgVE9CTigweGY2MTJjNDc4LCAweGU5ODU5MDM5KSwKKyAgICAg
ICAgICAgVE9CTigweGE0OTNiMjAxLCAweDAzMmY3MDY1KSwgVE9CTigweGViZDRkOGYyLCAweDRm
ZjliMjExKX0sCisgICAgICAgICAge1RPQk4oMHgzZjIzYTBhYSwgMHhhYWM0Y2IzMiksIFRPQk4o
MHhlYTNhYWRiNywgMHgxNWVkNDAwNSksCisgICAgICAgICAgIFRPQk4oMHhhY2YxN2VhNCwgMHhh
ZmEyN2U2MyksIFRPQk4oMHg1NjEyNWMxYSwgMHhjMTFmZDY2Yyl9fSwKKyAgICAgICAgIHt7VE9C
TigweDI2NjM0NGE0LCAweDM3OTRmOGRjKSwgVE9CTigweGRjY2E5MjNhLCAweDQ4M2M1YzM2KSwK
KyAgICAgICAgICAgVE9CTigweDJkNmI2YmJmLCAweDNmOWQxMGEwKSwgVE9CTigweGIzMjBjNWNh
LCAweDgxZDliZGYzKX0sCisgICAgICAgICAge1RPQk4oMHg2MjBlMjhmZiwgMHg0N2I1MGE5NSks
IFRPQk4oMHg5MzNlM2IwMSwgMHhjZWYwMzM3MSksCisgICAgICAgICAgIFRPQk4oMHhmMDgxYmY4
NSwgMHg5OTEwMDE1MyksIFRPQk4oMHgxODNiZTlhMCwgMHhjM2E4YzhkNil9fSwKKyAgICAgICAg
IHt7VE9CTigweDRlM2RkYzVhLCAweGQ2YmJlMjRkKSwgVE9CTigweGM2Yzc0NjMwLCAweDUzODQz
Nzk1KSwKKyAgICAgICAgICAgVE9CTigweDc4MTkzZGQ3LCAweDY1ZWMyZDRjKSwgVE9CTigweGI4
ZGYyNmNjLCAweGNkM2M4OWIyKX0sCisgICAgICAgICAge1RPQk4oMHg5OGRiZTM5OSwgMHg1YTQ4
M2Y4ZCksIFRPQk4oMHg3MmQ4YTk1NywgMHg3ZGQzMzEzYSksCisgICAgICAgICAgIFRPQk4oMHg2
NTA4NzI5NCwgMHhhYjBiZDM3NSksIFRPQk4oMHhmY2Q4OTI0OCwgMHg3YzI1OWQxNil9fSwKKyAg
ICAgICAgIHt7VE9CTigweDhhOTQ0M2Q3LCAweDc2MTNhYTgxKSwgVE9CTigweDgwMTAwODAwLCAw
eDg1ZmU2NTg0KSwKKyAgICAgICAgICAgVE9CTigweDcwZmM0ZGJjLCAweDdmYjEwMjg4KSwgVE9C
TigweGY1ODI4MGQzLCAweGU4NmJlZWU4KX0sCisgICAgICAgICAge1RPQk4oMHgxNGZkZDgyZiwg
MHg3Yzk3OGMzOCksIFRPQk4oMHhkZjEyMDRjMSwgMHgwZGU0NGQ3YiksCisgICAgICAgICAgIFRP
Qk4oMHhhMDhhMWM4NCwgMHg0MTYwMjUyZiksIFRPQk4oMHg1OTE1NTRjYSwgMHhjMTc2NDZhNSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDIxNGEzN2Q2LCAweGEwNWJkNTI1KSwgVE9CTigweDQ4ZDVm
MDliLCAweDA3OTU3YjNjKSwKKyAgICAgICAgICAgVE9CTigweDAyNDdjZGNiLCAweGQ3MTA5YmM5
KSwgVE9CTigweDQwZjllNGJiLCAweDMwNTk5Y2U3KX0sCisgICAgICAgICAge1RPQk4oMHhjMzI1
ZmEwMywgMHhmNDZhZDJlYyksIFRPQk4oMHgwMGY3NjZjZiwgMHhjM2UzZjllZSksCisgICAgICAg
ICAgIFRPQk4oMHhhYjU1NjY2OCwgMHhkNDNhNDU3NyksIFRPQk4oMHg2OGQzMGE2MSwgMHgzZWUw
M2I5Myl9fSwKKyAgICAgICAgIHt7VE9CTigweDdkZGM4MWVhLCAweDc3YjQ2YTA4KSwgVE9CTigw
eGNmNWE2NDc3LCAweGM3NDgwNjk5KSwKKyAgICAgICAgICAgVE9CTigweDQzYThjYjM0LCAweDY2
MzNmNjgzKSwgVE9CTigweDFiODY3ZTZiLCAweDkyMzYzYzYwKX0sCisgICAgICAgICAge1RPQk4o
MHg0MzkyMTExNCwgMHgxZjYwNTU4ZSksIFRPQk4oMHhjZGJjZGQ2MywgMHgyZjQxNDUwZSksCisg
ICAgICAgICAgIFRPQk4oMHg3ZmMwNDYwMSwgMHhjYzYzMGU4YiksIFRPQk4oMHhlYTdjNjZkNSwg
MHg5NzAzOGI0Myl9fSwKKyAgICAgICAgIHt7VE9CTigweDcyNTliOGE1LCAweDA0ZTk5ZmQ4KSwg
VE9CTigweDk4YThkZDEyLCAweDQ3ODU1NDlhKSwKKyAgICAgICAgICAgVE9CTigweDBlNDU5YTdj
LCAweDg0MDU1MmUxKSwgVE9CTigweGNkZmNmNGQwLCAweDRiYjA5MDllKX0sCisgICAgICAgICAg
e1RPQk4oMHgzNGE4NmRiMiwgMHg1Mzc1OGRhNyksIFRPQk4oMHhlNjQzYmI4MywgMHhlYWM5OTdl
MSksCisgICAgICAgICAgIFRPQk4oMHg5NjQwMGJkNywgMHg1MzBjNWI3ZSksIFRPQk4oMHg5Zjk3
YWY4NywgMHhiNDFjOGI1Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDM0ZmM4ODIwLCAweGZiZWVl
M2Y5KSwgVE9CTigweDkzZTUzNDkwLCAweDQ5MDkxYWZkKSwKKyAgICAgICAgICAgVE9CTigweDc2
NGI5YmU1LCAweDlhMzFmMzVjKSwgVE9CTigweDcxZjM3ODY0LCAweDU3ZTNkOTI0KX0sCisgICAg
ICAgICAge1RPQk4oMHgwMmZiMzRlMCwgMHg5NDNhYTc1ZSksIFRPQk4oMHhhMThjOWM1OCwgMHhh
YjhmZjZlNCksCisgICAgICAgICAgIFRPQk4oMHgwODBmMzFiMSwgMHgzM2NmMGQxOSksIFRPQk4o
MHg1Yzk2ODJkYiwgMHgwODM1MThhNyl9fSwKKyAgICAgICAgIHt7VE9CTigweDg3M2Q0Y2E2LCAw
eGI3MDljM2RlKSwgVE9CTigweDY0YTg0MjYyLCAweDM1NzViOGYwKSwKKyAgICAgICAgICAgVE9C
TigweDYyNzVkYTFmLCAweDAyMDE1NGJiKSwgVE9CTigweDk3Njc4Y2FhLCAweGQxN2NmMWFiKX0s
CisgICAgICAgICAge1RPQk4oMHg4Nzc5Nzk1ZiwgMHg5NTFhOTVjMyksIFRPQk4oMHhkZDM1YjE2
MywgMHg1MGZjY2MwOCksCisgICAgICAgICAgIFRPQk4oMHgzMjcwOTYyNywgMHgzM2Q4ZjAzMSks
IFRPQk4oMHgzYzVhYjEwYSwgMHg0OThkZDg1Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweGI2YzE4
NWMzLCAweDQxZGNhNTY2KSwgVE9CTigweDdkZTdmZWRhLCAweGQ4NjIyYWEzKSwKKyAgICAgICAg
ICAgVE9CTigweDk5ZTg0ZDkyLCAweDkwMWI2ZGZiKSwgVE9CTigweDMwYTAyYjBlLCAweDdjNGFk
Mjg4KX0sCisgICAgICAgICAge1RPQk4oMHhjN2M4MWRhYSwgMHgyZmQzY2YzNiksIFRPQk4oMHhk
MTMxOTU0NywgMHhkZjg5ZTU5ZiksCisgICAgICAgICAgIFRPQk4oMHhiMmJlODE4NCwgMHhjZDQ5
NjczMyksIFRPQk4oMHhkNWY0NDllYiwgMHg5M2QzNDEyYil9fSwKKyAgICAgICAgIHt7VE9CTigw
eDdlYTQxYjFiLCAweDI1ZmU1MzFkKSwgVE9CTigweGY5Nzk3NDMyLCAweDZhMWQ1NjQ2KSwKKyAg
ICAgICAgICAgVE9CTigweDg2MDY3ZjcyLCAweDJiZGU1MDFhKSwgVE9CTigweGY5MTQ4MWMwLCAw
eDBjODVlODljKX0sCisgICAgICAgICAge1RPQk4oMHhjYThlZTQ2NSwgMHhmOGIwNWJjNiksIFRP
Qk4oMHgxODQ0ZTFjZiwgMHgwMmU4M2NkYSksCisgICAgICAgICAgIFRPQk4oMHhjYTgyMTE0YSwg
MHhiNGRiZTMzYiksIFRPQk4oMHgwZjlmODc2OSwgMHg0ZWFiZmRlMil9fSwKKyAgICAgICAgIHt7
VE9CTigweDQ5MzZiMWMwLCAweDM4YjI3ZmUyKSwgVE9CTigweDYzYjYzNTliLCAweGFiYTQwMmRm
KSwKKyAgICAgICAgICAgVE9CTigweDQwYzBlYTJmLCAweDY1NmJkYmFiKSwgVE9CTigweDljOTky
YTg5LCAweDY1ODBjMzljKX0sCisgICAgICAgICAge1RPQk4oMHg2MDBlOGYxNSwgMHgyYTYwYWVk
MSksIFRPQk4oMHhlYjA4OWNhNCwgMHhlMGJmNDlkZiksCisgICAgICAgICAgIFRPQk4oMHg5YzIz
M2Q3ZCwgMHgyZDQyZDk5YSksIFRPQk4oMHg2NDhkM2Y5NSwgMHg0YzZiYzJmYSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGRjYzM4M2E4LCAweGUxYWRkM2YzKSwgVE9CTigweGY0MmMwYzZhLCAweDRm
NjRhMzQ4KSwKKyAgICAgICAgICAgVE9CTigweDJhYmQxNzZmLCAweDAwMzBkYmRiKSwgVE9CTigw
eDRkZTUwMWEzLCAweDdkNmMyMTVlKX0sCisgICAgICAgICAge1RPQk4oMHg0YTEwN2MxZiwgMHg0
YjlhNjRiYyksIFRPQk4oMHhhNzdmMGFkMywgMHgyNDk2Y2Q1OSksCisgICAgICAgICAgIFRPQk4o
MHhmYjc4YWM2MiwgMHg3Njg4ZGZmYiksIFRPQk4oMHg3MDI1YTJjYSwgMHg2NzkzN2Q4ZSl9fSwK
KyAgICAgICAgIHt7VE9CTigweGZkZThiMmQxLCAweGQxYThmNGU3KSwgVE9CTigweGY1YjNkYTQ3
LCAweDczNTQ5MjdjKSwKKyAgICAgICAgICAgVE9CTigweGU0ODYwNmEzLCAweGQ5MjA1NzM1KSwg
VE9CTigweGFjNDc3Y2M2LCAweGUxNzdiOTE3KX0sCisgICAgICAgICAge1RPQk4oMHhmYjFmNzNk
MiwgMHhhODgzMjM5YSksIFRPQk4oMHhlMTI1NzJmNiwgMHhjYzhiODM1NyksCisgICAgICAgICAg
IFRPQk4oMHg5ZDM1NWU5YywgMHhmYjFmNGY4NiksIFRPQk4oMHg4OWI3OTVmOCwgMHhkOWYzZWM2
ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDI3YmU1NmYxLCAweGI1NDM5OGRjKSwgVE9CTigweDE4
OTBlZmQ3LCAweDNmZWRlZWQ1KSwKKyAgICAgICAgICAgVE9CTigweDYyZjc3ZjFmLCAweDljNmQw
MTQwKSwgVE9CTigweDdlZjBlMzE0LCAweDU5NmYwZWU0KX0sCisgICAgICAgICAge1RPQk4oMHg1
MGNhNjYzMSwgMHhjYzYxZGFiMyksIFRPQk4oMHg0YTM5ODAxZCwgMHhmNDg2NmU0ZiksCisgICAg
ICAgICAgIFRPQk4oMHg2NmM4ZDAzMiwgMHhhZTM2M2IzOSksIFRPQk4oMHgyMmM1OTFlNSwgMHgy
ZWFkNjZhYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDk1NGJhMzA4LCAweGRlMDJhNTNlKSwgVE9C
TigweDJhNmMwNjBmLCAweGQzODlmMzU3KSwKKyAgICAgICAgICAgVE9CTigweGU2Y2ZjZGU4LCAw
eGZiZjQwYjY2KSwgVE9CTigweDhlMDJmYzU2LCAweGM2MzQwY2UxKX0sCisgICAgICAgICAge1RP
Qk4oMHhlNDk1Nzc5NSwgMHg3M2FkYjRiYSksIFRPQk4oMHg3Yjg2MTIyYywgMHhhN2IwMzgwNSks
CisgICAgICAgICAgIFRPQk4oMHg2M2Y4MzUxMiwgMHgwYzhlNmZhNiksIFRPQk4oMHg4MzY2MGVh
MCwgMHgwNTdkNzgwNCl9fSwKKyAgICAgICAgIHt7VE9CTigweGJhZDc5MTA1LCAweDIxYmE0NzNj
KSwgVE9CTigweGI2YzUwYmVlLCAweGRlZDUzODlkKSwKKyAgICAgICAgICAgVE9CTigweGVlMmNh
ZjRkLCAweGFhN2M5YmMwKSwgVE9CTigweGQ5N2I4ZGU0LCAweDhjNGU5OGE3KX0sCisgICAgICAg
ICAge1RPQk4oMHhhOWY2M2U3MCwgMHhhYjNiYmRkYiksIFRPQk4oMHgzODk4YWFiZiwgMHgyNTk3
ODE1YSksCisgICAgICAgICAgIFRPQk4oMHg3NjU5YWY4OSwgMHhhYzE1YjNkOSksIFRPQk4oMHhl
ZGY3NzI1YiwgMHg3MDNjZTc4NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDI1NDcwZmFiLCAweGUw
ODUxMTZiKSwgVE9CTigweDA0YTQzMzc1LCAweDg3Mjg1MzEwKSwKKyAgICAgICAgICAgVE9CTigw
eDRlMzkxODdlLCAweGUyYmZkNTJmKSwgVE9CTigweDM2MTY2YjQ0LCAweDdkOWViYzc0KX0sCisg
ICAgICAgICAge1RPQk4oMHg5MmFkNDMzYywgMHhmZDRiMzIyYyksIFRPQk4oMHg3MjZhYTgxNywg
MHhiYTc5YWI1MSksCisgICAgICAgICAgIFRPQk4oMHhmOTZlYWNkOCwgMHhjMWRiMTVlYiksIFRP
Qk4oMHhmYWY3MWU5MSwgMHgwNDc2YmU2Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGRkNjlhNjQw
LCAweDY0MWZhZDk4KSwgVE9CTigweGI3OTk1OTE4LCAweDI5NjIyNTU5KSwKKyAgICAgICAgICAg
VE9CTigweDAzYzZkYWE1LCAweGRlNDE5OWRjKSwgVE9CTigweDkyY2FkYzk3LCAweGFkNTQ1ZWI0
KX0sCisgICAgICAgICAge1RPQk4oMHgxMDI4MjM4YiwgMHgyNTY1MzRlNCksIFRPQk4oMHg3M2U4
MGNlNiwgMHg4NTk1NDA5YSksCisgICAgICAgICAgIFRPQk4oMHg2OTBkNGM2NiwgMHhkMDVkYzU5
YiksIFRPQk4oMHhjOTVmN2I4ZiwgMHg5ODFkZWU4MCl9fSwKKyAgICAgICAgIHt7VE9CTigweGY0
MzM3MDE0LCAweGQ4NTZhYzI1KSwgVE9CTigweDQ0MWJkOWRkLCAweGFjNTI0ZGNhKSwKKyAgICAg
ICAgICAgVE9CTigweDY0MGIzZDg1LCAweDVmMDQ5OWY1KSwgVE9CTigweDM5Y2Y4NGE5LCAweGQ1
ZmRhMTgyKX0sCisgICAgICAgICAge1RPQk4oMHgwNGU3YjA1NSwgMHhiMmFhOTVhMCksIFRPQk4o
MHgyOWUzM2YwYSwgMHgwZGRmMTg2MCksCisgICAgICAgICAgIFRPQk4oMHgwODJlNzRiNSwgMHg0
MjNmNmI0MyksIFRPQk4oMHgyMTdlZGViOSwgMHgwYWFhMmIwZil9fSwKKyAgICAgICAgIHt7VE9C
TigweDU4YjgzZjM1LCAweDgzY2JlYTU1KSwgVE9CTigweGM0ODVlZTRkLCAweGJjMTg1ZDcwKSwK
KyAgICAgICAgICAgVE9CTigweDgzM2ZmMDNiLCAweDFlNWY2OTkyKSwgVE9CTigweGI1YjliOWNj
LCAweGNmMGMwZGQ1KX0sCisgICAgICAgICAge1RPQk4oMHg3Y2FhZWU4ZSwgMHg0ZTllOGE1MCks
IFRPQk4oMHg0NjJlOTA3YiwgMHg2MjY5ZGFmZCksCisgICAgICAgICAgIFRPQk4oMHg2ZWQ1Y2Vl
OSwgMHhmYmU3OTFjNiksIFRPQk4oMHg2OGNhMzI1OSwgMHhlZDQzMDc5MCl9fSwKKyAgICAgICAg
IHt7VE9CTigweDJiNzJiZGYyLCAweDEzYjViYTg4KSwgVE9CTigweDYwMjk0YzhhLCAweDM1ZWYw
YWM0KSwKKyAgICAgICAgICAgVE9CTigweDljMzIzMGVkLCAweDE5Yjk5YjA4KSwgVE9CTigweDU2
MGZmZjE3LCAweDZjMjU4OWFhKX0sCisgICAgICAgICAge1RPQk4oMHg1NTJiODQ4NywgMHhkNjc3
MDM3NCksIFRPQk4oMHhhMzczMjAyZCwgMHg5YTU2ZjY4NSksCisgICAgICAgICAgIFRPQk4oMHhk
M2U3ZjkwNywgMHg0NWYxNzVkOSksIFRPQk4oMHgzYzJmMzE1ZiwgMHhkMDgwZDgxMCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDExMzBlOWRkLCAweDdiOTUyMGU4KSwgVE9CTigweGMwNzhmOWUyLCAw
eDBhZjAzN2I1KSwKKyAgICAgICAgICAgVE9CTigweDM4Y2QyZWM3LCAweDFlOWMxMDRjKSwgVE9C
TigweDBmNjg0MzY4LCAweGM0NzJmZTkyKX0sCisgICAgICAgICAge1RPQk4oMHhkM2YxYjVlZCwg
MHg2MjQ3ZTdlZiksIFRPQk4oMHhiMzJkMzNhOSwgMHgzOTZkZmUyMSksCisgICAgICAgICAgIFRP
Qk4oMHg0NmY1OWNmNCwgMHg0YTlhYTJjMiksIFRPQk4oMHg2OWNkNTE2OCwgMHhmZjBmN2U0MSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDNmNTlkYTBmLCAweDRiMzIzNGRhKSwgVE9CTigweGNmMGIw
MjM1LCAweGI0NTc5ZWJlKSwKKyAgICAgICAgICAgVE9CTigweDZkMWNiYjI1LCAweDZkMjQ3NmM3
KSwgVE9CTigweDRmMDgzN2U2LCAweDlkYzMwZjA4KX0sCisgICAgICAgICAge1RPQk4oMHg5YTQw
NzViYiwgMHg5MDZmNmU5OCksIFRPQk4oMHgyNTNiYjQzNCwgMHhjNzYxZTdkMSksCisgICAgICAg
ICAgIFRPQk4oMHhkZTJlNjQ1ZiwgMHg2ZTczYWYxMCksIFRPQk4oMHhiODlhNDA2MCwgMHgwYzVm
MTMxYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGQxMjg0MGM1LCAweGI4Y2MwMzdmKSwgVE9CTigw
eDNkMDkzYTViLCAweDc0MDViYjQ3KSwKKyAgICAgICAgICAgVE9CTigweDYyMDJjMjUzLCAweDIw
NjM0OGI4KSwgVE9CTigweGJmNWQ1N2ZjLCAweGM1NWEzY2E3KX0sCisgICAgICAgICAge1RPQk4o
MHg4OWY2YzkwYywgMHg4YzNiZWY0OCksIFRPQk4oMHgyM2FjNzYyMywgMHg1YTBhOTYwYSksCisg
ICAgICAgICAgIFRPQk4oMHhkZmJkM2Q2YiwgMHg1NTJiNDJhYiksIFRPQk4oMHgzZWYyMjQ1OCwg
MHgxMzIwNjFmNil9fSwKKyAgICAgICAgIHt7VE9CTigweGQ3NGU5YmRhLCAweGM5N2U2NTE2KSwg
VE9CTigweDg4Nzc5MzYwLCAweGMyMzBmNDllKSwKKyAgICAgICAgICAgVE9CTigweGE2ZWMxZGUz
LCAweDFlNzRlYTQ5KSwgVE9CTigweDU4MWRjZWU1LCAweDNmYjY0NWEyKX0sCisgICAgICAgICAg
e1RPQk4oMHhiYWVmMjM5MSwgMHg4ZjQ4M2YxNCksIFRPQk4oMHg2ZDJkZGRmYywgMHhkMTM3ZDEz
YiksCisgICAgICAgICAgIFRPQk4oMHg1NGNkZTUwZSwgMHhkMjc0M2E0MiksIFRPQk4oMHg4OWEz
NGZjNSwgMHhlNGQ5N2U2Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDEzZjFmNWIzLCAweDEyZTA4
Y2U1KSwgVE9CTigweGE4MDU0MGI4LCAweGE3ZjBiMmNhKSwKKyAgICAgICAgICAgVE9CTigweDg1
NGJjZjc3LCAweDAxOTgyODA1KSwgVE9CTigweGI4NjUzZmZkLCAweDIzM2JlYTA0KX0sCisgICAg
ICAgICAge1RPQk4oMHg4ZTdiODc4NywgMHgwMmIwYjRjOSksIFRPQk4oMHgyNjc1MjYxZiwgMHg5
YWNiMTcwYSksCisgICAgICAgICAgIFRPQk4oMHgwNjFhOWQ5MCwgMHg5MzBjMTRlNSksIFRPQk4o
MHhiNTliMzBlMCwgMHhkZWYwYWJlYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDFkYzE5ZWE2LCAw
eDAyMDBlYzdkKSwgVE9CTigweGI2ZjRhM2Y5LCAweDBiY2UxMzJiKSwKKyAgICAgICAgICAgVE9C
TigweGI4ZDVkZTkwLCAweGYxM2UyN2UwKSwgVE9CTigweGJhZWU1ZWYwLCAweDFmYWRlMTZmKX0s
CisgICAgICAgICAge1RPQk4oMHg2ZjQwNmFhYSwgMHhlNGM2Y2YzOCksIFRPQk4oMHhhYjRjZmUw
NiwgMHhkMTM2OTgxNSksCisgICAgICAgICAgIFRPQk4oMHgwZGNmZmU4NywgMHhlZmQ1NTBjNiks
IFRPQk4oMHg5ZDRmNTljNywgMHg3NWZmN2QzOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGIwMjU1
M2IxLCAweDUxZGViNmFkKSwgVE9CTigweDgxMjM5OWE0LCAweGIxODc3NzQ5KSwKKyAgICAgICAg
ICAgVE9CTigweGNlOTBmNzFmLCAweGNhNjAwNmUxKSwgVE9CTigweGMzMjM2M2E2LCAweGIwMmI2
ZTc3KX0sCisgICAgICAgICAge1RPQk4oMHgwMjI4NGZiZSwgMHhkYzM2YzY0ZCksIFRPQk4oMHg4
NmM4MWUzMSwgMHhhN2UxYWU2MSksCisgICAgICAgICAgIFRPQk4oMHgyNTc2YzdlNSwgMHhiOTA5
ZDk0YSksIFRPQk4oMHg4YjZmN2QwMiwgMHg4MThiMmJiMCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGVjYTNlZDA3LCAweDU2ZmFhMzhhKSwgVE9CTigweGEzNzkwZTZjLCAweDkzMDViYjU0KSwKKyAg
ICAgICAgICAgVE9CTigweGQ3ODRlZWRhLCAweDdiYzczMDYxKSwgVE9CTigweGJkNTZkMzY5LCAw
eDZkZDUwNjE0KX0sCisgICAgICAgICAge1RPQk4oMHhkNjU3NTk0OSwgMHgyMjlhOGFhOSksIFRP
Qk4oMHhkY2NhOGY0NywgMHg0NTk1ZWMyOCksCisgICAgICAgICAgIFRPQk4oMHg4MTQzMDVjMSwg
MHgwNmFiNGZlNiksIFRPQk4oMHhjOGMzOTc2OCwgMHgyNGY0M2YxNil9fSwKKyAgICAgICAgIHt7
VE9CTigweGUyYTQ1ZjM2LCAweDUyM2YyYjM2KSwgVE9CTigweDk5NWM2NDkzLCAweDkyMGQ5M2Ji
KSwKKyAgICAgICAgICAgVE9CTigweGY4YWZkYWI3LCAweDkwZjE2MzJiKSwgVE9CTigweDc5ZWJi
ZWNkLCAweDFjMjk1OTU0KX0sCisgICAgICAgICAge1RPQk4oMHhjN2JiM2RkYiwgMHg3OTU5MmY0
OCksIFRPQk4oMHg2NzIxNmE3YiwgMHg1Zjg4ZTk5OCksCisgICAgICAgICAgIFRPQk4oMHhkOTFm
MDk4YiwgMHhiYzAxMTkzZSksIFRPQk4oMHhmN2Q5MjhhNSwgMHhiMWRiODNmYyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDU1ZTM4NDE3LCAweGU5OTFmNjAwKSwgVE9CTigweDJhOTExMTNlLCAweDI5
ODFhOTM0KSwKKyAgICAgICAgICAgVE9CTigweGNiYzlkNjQ4LCAweDA2YjEzYmRlKSwgVE9CTigw
eGIwMTFiNmFjLCAweDA3NTVmZjQ0KX0sCisgICAgICAgICAge1RPQk4oMHg2ZjRjYjUxOCwgMHgw
NDVlYzYxMyksIFRPQk4oMHg1MjJkMmQzMSwgMHhjMmY1OTMwYSksCisgICAgICAgICAgIFRPQk4o
MHg1YWNhZTFhZiwgMHgzODJlNjVkZSksIFRPQk4oMHg1NzY0MzA2NywgMHgyN2JjOTY2Zil9fSwK
KyAgICAgICAgIHt7VE9CTigweDVlMTI3MDVkLCAweDFjNzE5M2YwKSwgVE9CTigweGYwZjMyZjQ3
LCAweDNiZTg4NThlKSwKKyAgICAgICAgICAgVE9CTigweDc4NWMzZDdkLCAweDk2YzZkZmM3KSwg
VE9CTigweGQ3NWI0YTIwLCAweGJmMzE3OTVkKX0sCisgICAgICAgICAge1RPQk4oMHg5MWFjZjE3
YiwgMHgzNDI2NTlkNCksIFRPQk4oMHhlNTk2ZWEzNCwgMHg0NGYwMzc4ZiksCisgICAgICAgICAg
IFRPQk4oMHg0NTE1NzA4ZiwgMHhjZTUyMTI5ZCksIFRPQk4oMHgxNzM4N2UxZSwgMHg3OWYyZjU4
NSl9fSwKKyAgICAgICAgIHt7VE9CTigweDcyY2ZkMmU5LCAweDQ5ZGVlMTY4KSwgVE9CTigweDFh
ZTA1MjIzLCAweDNlMmFmMjM5KSwKKyAgICAgICAgICAgVE9CTigweDAwOWU3NWJlLCAweDFkOTQw
NjZhKSwgVE9CTigweDZjY2EzMWM3LCAweDM4YWJmNDEzKX0sCisgICAgICAgICAge1RPQk4oMHhi
NTBiZDYxZCwgMHg5YmM0OTkwOCksIFRPQk4oMHg0YTliNGE4YywgMHhmNWUyYmMxZSksCisgICAg
ICAgICAgIFRPQk4oMHhlYjZjYzVmNywgMHg5NDZmODNhYyksIFRPQk4oMHgyN2RhOTNmYywgMHhl
YmZmYWIyOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGVhMzE0Yzk2LCAweDQ4MjFjOGM1KSwgVE9C
TigweDhkZTQ5ZGVkLCAweGE4M2MxNWY0KSwKKyAgICAgICAgICAgVE9CTigweDdhNjRjZjIwLCAw
eDdhZjMzMDA0KSwgVE9CTigweDQ1ZjFiZmViLCAweGM5NjI3ZTEwKX0sCisgICAgICAgICAge1RP
Qk4oMHg4NzhiMDYyNiwgMHg1NGI5ZGY2MCksIFRPQk4oMHg1ZTRmZGMzYywgMHhhOTVjMGIzMyks
CisgICAgICAgICAgIFRPQk4oMHhlNTRhMzdjYSwgMHhjMjAzNWQ4ZSksIFRPQk4oMHg5MDg3Y2Rh
OSwgMHg4MGYyMGI4Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDM2ZjYxYzIzLCAweDgzMTlhZGU0
KSwgVE9CTigweDc2NmYyODdhLCAweGRlOGNmZGY4KSwKKyAgICAgICAgICAgVE9CTigweDQ4ODIx
OTQ4LCAweDM0NmYzNzA1KSwgVE9CTigweDQ5YTdiODUzLCAweDE2ZTRmNGEyKX0sCisgICAgICAg
ICAge1RPQk4oMHhiOWIzZjhhNywgMHg1Y2VkYWRmZCksIFRPQk4oMHg4ZjU2MjgxNSwgMHg4ZGIy
YTgxNSksCisgICAgICAgICAgIFRPQk4oMHhjMGI3ZDU1NCwgMHgwMWY2OGY5NSksIFRPQk4oMHgx
Mjk3MWUyNywgMHg2ODhhMjA4ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGM5ZjhiNjk2LCAweGQw
ZmYzNGZjKSwgVE9CTigweDIwODI0ZGUyLCAweDEyMjI3MThjKSwKKyAgICAgICAgICAgVE9CTigw
eDcyMTNjZjlmLCAweDBjOTUyODRkKSwgVE9CTigweGUyYWQ3NDFiLCAweGRjMTU4MjQwKX0sCisg
ICAgICAgICAge1RPQk4oMHgwZWUzYTZkZiwgMHg1NDA0M2NjZiksIFRPQk4oMHgxNmZmNDc5Yiwg
MHhkODQ0MTJiMyksCisgICAgICAgICAgIFRPQk4oMHhmNmM3NGVlMCwgMHhkZmM5OGFmMCksIFRP
Qk4oMHhhNzhhMTY5ZiwgMHg1MmZjZDJmYil9fSwKKyAgICAgICAgIHt7VE9CTigweGQ4YWU4NzQ2
LCAweDk5YzkzMGU5KSwgVE9CTigweDFkMzNlODU4LCAweDQ5ZTExN2E1KSwKKyAgICAgICAgICAg
VE9CTigweDc1ODFmY2I0LCAweDY2MjQ3NTlmKSwgVE9CTigweGRlNTA2NDRmLCAweDViZWRjMDFk
KX0sCisgICAgICAgICAge1RPQk4oMHhiZWVjNWQwMCwgMHhjYWYzMTU1ZSksIFRPQk4oMHg2NzJk
NjZhYywgMHhiYzczZTc1ZiksCisgICAgICAgICAgIFRPQk4oMHg4NmI5ZDhjNiwgMHgyNzBiMDFk
YiksIFRPQk4oMHhkMjQ5ZWY4MywgMHg1MGY1NWI3OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDYx
MzFkNmQ0LCAweDczOTc4ZmUzKSwgVE9CTigweGNjNGU0NTQyLCAweDc1NGIwMGExKSwKKyAgICAg
ICAgICAgVE9CTigweDRlMDVkZjA1LCAweDU3ZGZjZmU5KSwgVE9CTigweDk0YjI5Y2RkLCAweDUx
ZWY2YmYwKX0sCisgICAgICAgICAge1RPQk4oMHhlNDUzMGNmZiwgMHg5YmM3ZWRmMiksIFRPQk4o
MHg4YWMyMzZmZCwgMHhkM2RhNjVmMyksCisgICAgICAgICAgIFRPQk4oMHgwZmFmN2Q1ZiwgMHhj
OGViMGI0OCksIFRPQk4oMHg0ZDJkZTE0YywgMHg2NjBlYjAzOSl9fSwKKyAgICAgICAgIHt7VE9C
TigweGMwMDZiYmE3LCAweDYwNDMwZTU0KSwgVE9CTigweDEwYTJkMGQ2LCAweGRhMzI4OWFiKSwK
KyAgICAgICAgICAgVE9CTigweDljMDM3YTVkLCAweGQ3OTc5YzU5KSwgVE9CTigweDA0ZDFmM2Qz
LCAweGExMTZkOTQ0KX0sCisgICAgICAgICAge1RPQk4oMHg5ZmYyMjQ3MywgMHg4YTA5ODNjZCks
IFRPQk4oMHgyOGUyNWIzOCwgMHhjODgzY2FiYiksCisgICAgICAgICAgIFRPQk4oMHhlOTY4ZGJh
NSwgMHg0N2E1ODk5NSksIFRPQk4oMHgyYzgwYjUwNSwgMHg3NzRlZWJkZil9fSwKKyAgICAgICAg
IHt7VE9CTigweGVlNzYzYjcxLCAweDRhOTUzYmViKSwgVE9CTigweDUwMmUyMjNmLCAweDE2NDJl
N2Y2KSwKKyAgICAgICAgICAgVE9CTigweDZmZTRiNjQxLCAweDYxZDVlNzIyKSwgVE9CTigweDlk
MzdjNWIwLCAweGRiZWY1MzE2KX0sCisgICAgICAgICAge1RPQk4oMHgwMTE1ZWQ3MCwgMHhmODMz
MGJjNyksIFRPQk4oMHgxMzk4NTBlNiwgMHg3NWE3Mjc4OSksCisgICAgICAgICAgIFRPQk4oMHgy
N2Q3ZmFlYywgMHhmZmNlY2NjMiksIFRPQk4oMHgzMDE2YTg2MCwgMHg0ZmQ5ZjdmNil9fSwKKyAg
ICAgICAgIHt7VE9CTigweGM0OTJlYzY0LCAweDRjZDhmNjRjKSwgVE9CTigweDU4YTJkNzkwLCAw
eDI3OWQ3YjUxKSwKKyAgICAgICAgICAgVE9CTigweDBjZWQxZmM1LCAweDFmYzc1MjU2KSwgVE9C
TigweDNlNjU4YWVkLCAweDhmNDMzMDE3KX0sCisgICAgICAgICAge1RPQk4oMHgwYjYxOTQyZSwg
MHgwNWRhNTllYiksIFRPQk4oMHhiYTNkNjBhMywgMHgwZGRjMzcyMiksCisgICAgICAgICAgIFRP
Qk4oMHg3YzMxMWNkMSwgMHg3NDJlN2Y4NyksIFRPQk4oMHg2NDczZmZlZSwgMHhmNmIwMWI2ZSl9
fX0sCisgICAgICAgIHt7e1RPQk4oMHg4MzAzNjA0ZiwgMHg2OTJhYzU0MiksIFRPQk4oMHhmMDc5
ZmZlMSwgMHgyMjdiOTFkMyksCisgICAgICAgICAgIFRPQk4oMHgxOWY2M2U2MywgMHgxNWFhZjli
ZCksIFRPQk4oMHhmOTllZTU2NSwgMHhmMWYzNDRmYil9LAorICAgICAgICAgIHtUT0JOKDB4OGEx
ZDY2MWYsIDB4ZDYyMTkxOTkpLCBUT0JOKDB4OGM4ODNiYzYsIDB4ZDQ4Y2U0MWMpLAorICAgICAg
ICAgICBUT0JOKDB4MTA2NTExOGYsIDB4M2M3NGQ5MDQpLCBUT0JOKDB4NzEzODg5ZWUsIDB4MGZh
ZjhiMWIpfX0sCisgICAgICAgICB7e1RPQk4oMHg5NzJiM2Y4ZiwgMHg4MWExYjNiZSksIFRPQk4o
MHg0ZjNjZTE0NSwgMHhjZTI3NjRhMCksCisgICAgICAgICAgIFRPQk4oMHhlMmQwZjFjYywgMHgy
OGM0ZjVmNyksIFRPQk4oMHhkZWVlMGMwZCwgMHhjN2YzOTg1Yil9LAorICAgICAgICAgIHtUT0JO
KDB4N2RmNGFkYzAsIDB4ZDM5ZTI1YzMpLCBUT0JOKDB4NDA2MTk4MjAsIDB4YzQ2N2EwODApLAor
ICAgICAgICAgICBUT0JOKDB4NDQwZWJjOTMsIDB4NjFjZjVhNTgpLCBUT0JOKDB4NTI3NzI5YTYs
IDB4NDIyYWQ2MDApfX0sCisgICAgICAgICB7e1RPQk4oMHhjYTZjMDkzNywgMHhiMWI3NmJhNiks
IFRPQk4oMHgxYTJlYWI4NSwgMHg0ZDIwMjZkYyksCisgICAgICAgICAgIFRPQk4oMHhiMTcxNWUx
NSwgMHgxOWQ5YWUwYSksIFRPQk4oMHhmMWFkOTE5OSwgMHhiYWM0YTAyNil9LAorICAgICAgICAg
IHtUT0JOKDB4MzViM2RmYjgsIDB4MDdlYTdiMGUpLCBUT0JOKDB4ZWRmNTQ5NmYsIDB4M2VkOWVi
ODkpLAorICAgICAgICAgICBUT0JOKDB4ODkzMmU1ZmYsIDB4MmQ2ZDA4YWIpLCBUT0JOKDB4ZjMx
NDg3NGUsIDB4MjViZDI3MzEpfX0sCisgICAgICAgICB7e1RPQk4oMHhlZmIyNmE3NSwgMHgzZjcz
ZjQ0OSksIFRPQk4oMHgxZDFjOTRmOCwgMHg4ZDQ0ZmM3OSksCisgICAgICAgICAgIFRPQk4oMHg0
OWYwZmJjNSwgMHgzYmMwZGM0ZCksIFRPQk4oMHhiNzQ3ZWEwYiwgMHgzNjk4YTBkMCl9LAorICAg
ICAgICAgIHtUT0JOKDB4NTIxOGMzZmUsIDB4MjI4ZDI5MWUpLCBUT0JOKDB4MzViODA0YjUsIDB4
NDNjMTI5ZDYpLAorICAgICAgICAgICBUT0JOKDB4ZmFjODU5YjgsIDB4ZDFhY2M1MTYpLCBUT0JO
KDB4NmMxMDY5N2QsIDB4OTVkNmU2NjgpfX0sCisgICAgICAgICB7e1RPQk4oMHhjMzhlNDM4Ziwg
MHgwODc2ZmQ0ZSksIFRPQk4oMHg0NWYwYzMwNywgMHg4M2QyZjM4MyksCisgICAgICAgICAgIFRP
Qk4oMHgyMDNjYzJlYywgMHhiMTA5MzRjYiksIFRPQk4oMHg2YThmMjQzOSwgMHgyYzlkNDZlZSl9
LAorICAgICAgICAgIHtUT0JOKDB4ZjE2YjQzMWIsIDB4NjVjY2RlN2IpLCBUT0JOKDB4NDFlMmNk
MTgsIDB4MjdlNzZhNmYpLAorICAgICAgICAgICBUT0JOKDB4YjljOGNmOGYsIDB4NGUzNDg0ZDcp
LCBUT0JOKDB4NjQ0MjZlZmQsIDB4ODMxNTI0NGEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxYzBh
OGU0NCwgMHhmYzk0ZGVhMyksIFRPQk4oMHgzNGM4Y2RiZiwgMHhkYWQ2YTBiMCksCisgICAgICAg
ICAgIFRPQk4oMHg5MTljMzg0MCwgMHgwNDExM2NlZiksIFRPQk4oMHhmZDMyZmJhNCwgMHgxNTQ5
MGZmYSl9LAorICAgICAgICAgIHtUT0JOKDB4NThkMTkwZjYsIDB4Nzk1ZGNmYjcpLCBUT0JOKDB4
ZmVmMDFiMDMsIDB4ODM1ODhiYWYpLAorICAgICAgICAgICBUT0JOKDB4OWU2ZDFkNjMsIDB4Y2Ex
ZmMxYzApLCBUT0JOKDB4NTMxNzNmOTYsIDB4ZjBhNDFhYzkpfX0sCisgICAgICAgICB7e1RPQk4o
MHgyYjFkNDAyYSwgMHhiYTE2ZjczYiksIFRPQk4oMHgyZmIzMTAxNCwgMHg4Y2Y5YjlmYyksCisg
ICAgICAgICAgIFRPQk4oMHgyZDUxZTYwZSwgMHg0NDZlZjdiZiksIFRPQk4oMHhjNzMxMDIxYiwg
MHhiOTFlMTc0NSl9LAorICAgICAgICAgIHtUT0JOKDB4OWQzYjQ3MjQsIDB4NGZlZTk5ZDQpLCBU
T0JOKDB4NGJjYTQ4YjYsIDB4ZmFjNWMxZWEpLAorICAgICAgICAgICBUT0JOKDB4NzBmNWY1MTQs
IDB4YmJlYTlhZjcpLCBUT0JOKDB4NzUxZjU1YTUsIDB4OTc0YzI4M2EpfX0sCisgICAgICAgICB7
e1RPQk4oMHg2ZTMwMjUxYSwgMHhjYjQ1MmZkYiksIFRPQk4oMHgzMWVlNjk2NSwgMHg1MGYzMDY1
MCksCisgICAgICAgICAgIFRPQk4oMHhiMGIzZTUwOCwgMHg5MzM1NDhkOSksIFRPQk4oMHhiODk0
OWE0ZiwgMHhmNGIwZWY1Yil9LAorICAgICAgICAgIHtUT0JOKDB4MjA4YjgzMjYsIDB4M2M4OGYz
YmQpLCBUT0JOKDB4YWIxNDdjMzAsIDB4ZGIxZDk5ODkpLAorICAgICAgICAgICBUT0JOKDB4ZWQ2
NTE1ZmQsIDB4NDRkNGRmMDMpLCBUT0JOKDB4MTdhMTJmNzUsIDB4ZTcyZWIwYzUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgzYjU5Nzk2ZCwgMHgzNmNmNjlkYiksIFRPQk4oMHgxMjE5ZWVlOSwgMHg1
NjY3MGMxOCksCisgICAgICAgICAgIFRPQk4oMHhmZTMzNDFmNywgMHg3YTA3MGQ4ZSksIFRPQk4o
MHg5YjcwMTMwYiwgMHhhMzI3ZjkwYyl9LAorICAgICAgICAgIHtUT0JOKDB4MzZhMzI0NjIsIDB4
MGFlMThlMGUpLCBUT0JOKDB4MjAyMWE2MjMsIDB4NDZjMGE2MzgpLAorICAgICAgICAgICBUT0JO
KDB4MjUxYjU4MTcsIDB4YzYyZWIwZDQpLCBUT0JOKDB4ODdiZmJjZGYsIDB4NGM3NjIyOTMpfX0s
CisgICAgICAgICB7e1RPQk4oMHhmNzhhYjUwNSwgMHhjZGQ2MWQ2NCksIFRPQk4oMHg4YzdhNTNm
YywgMHhjOGMxODg1NyksCisgICAgICAgICAgIFRPQk4oMHhhNjUzY2U2ZiwgMHgxNjE0NzUxNSks
IFRPQk4oMHg5YzkyM2FhNSwgMHhlYTdkNTJkNSl9LAorICAgICAgICAgIHtUT0JOKDB4YzI0NzA5
Y2IsIDB4NWMxODg3MWYpLCBUT0JOKDB4N2Q1M2JlYzgsIDB4NzNiM2NjNzQpLAorICAgICAgICAg
ICBUT0JOKDB4NTkyNjRhZmYsIDB4ZmRkMWQ0YzQpLCBUT0JOKDB4NTU1NTkxN2UsIDB4MjQwZGE1
ODIpfX0sCisgICAgICAgICB7e1RPQk4oMHhjYWU4YmJkYSwgMHg1NDhmNWEwZSksIFRPQk4oMHgx
OTEwZWFiYSwgMHgzYmJmYmJlMSksCisgICAgICAgICAgIFRPQk4oMHhhZTU3OTY4NSwgMHg3Njc3
YWZjMyksIFRPQk4oMHg0OWVhNjFmMSwgMHg3M2ZmMGI1Yyl9LAorICAgICAgICAgIHtUT0JOKDB4
Nzg2NTU0NzgsIDB4NGY3YzM5MjIpLCBUT0JOKDB4OTVkMzM3Y2QsIDB4MjBjNjhlZWYpLAorICAg
ICAgICAgICBUT0JOKDB4NjhmMWUxZTUsIDB4ZGY3NzlhYjkpLCBUT0JOKDB4MTRiNDkxYjAsIDB4
YjVjZjY5YTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg3YTZjYmJlMCwgMHgyOGUzZmU4OSksIFRP
Qk4oMHhlN2UxZmVlNCwgMHhjNWFhYzBlYiksCisgICAgICAgICAgIFRPQk4oMHg3ZjQ3ZWRhNSwg
MHg2OTdlNTE0MCksIFRPQk4oMHg0ZjQ1MDEzNywgMHhiNDU0OTIxZil9LAorICAgICAgICAgIHtU
T0JOKDB4ZGI2MjVmODQsIDB4OTVjZDgxODUpLCBUT0JOKDB4NzRiZTBiYTEsIDB4Y2RiMmU1ODMp
LAorICAgICAgICAgICBUT0JOKDB4YWVlNGZkN2MsIDB4ZGQ1ZTZkZTQpLCBUT0JOKDB4NDI1MTQz
N2QsIDB4ZTgxMDE3MzkpfX0sCisgICAgICAgICB7e1RPQk4oMHg2ODZkNzJhMCwgMHhhYzYyMDM2
NiksIFRPQk4oMHg0YmUzZmI5YywgMHhiNmQ1OTM0NCksCisgICAgICAgICAgIFRPQk4oMHg2ZThi
NDRlNywgMHhhMWViNzViOSksIFRPQk4oMHg4NGUzOWRhMywgMHg5MWE1YzEwYyl9LAorICAgICAg
ICAgIHtUT0JOKDB4MzdjYzE0OTAsIDB4YjM4ZjA0MDkpLCBUT0JOKDB4MDI5NTE5NDMsIDB4MmMy
YWRlODIpLAorICAgICAgICAgICBUT0JOKDB4OWI2ODg3ODMsIDB4MTE5MGEyZDgpLCBUT0JOKDB4
MjU2MjdkMTQsIDB4MjMxMTgyYmEpfX0sCisgICAgICAgICB7e1RPQk4oMHg2ZWI1NTBhYSwgMHg2
NThhNmQ4NyksIFRPQk4oMHgxNDA1YWFhNywgMHhjZjljNzMyNSksCisgICAgICAgICAgIFRPQk4o
MHhkMTQ3MTQyZSwgMHg1Yzg3NDhjOSksIFRPQk4oMHg3ZjYzN2U0ZiwgMHg1M2VkZTBlMCl9LAor
ICAgICAgICAgIHtUT0JOKDB4ZjhjYTI3NzYsIDB4MTRmZmFkMmMpLCBUT0JOKDB4ZTU4ZmIxYmQs
IDB4YmFmYjY3OTEpLAorICAgICAgICAgICBUT0JOKDB4MTcxNThjMjMsIDB4YmY4ZjkzZmMpLCBU
T0JOKDB4N2YxNWIzNzMsIDB4MGE0YTQ2NTUpfX0sCisgICAgICAgICB7e1RPQk4oMHgzOWQ0YWRk
MiwgMHhkODQyY2E3MiksIFRPQk4oMHhhNzFlNDM5MSwgMHgzZWQ5NjMwNSksCisgICAgICAgICAg
IFRPQk4oMHg1YmIwOWNiZSwgMHg2NzAwYmUxNCksIFRPQk4oMHg2OGQ2OWQ1NCwgMHhkOGJlZmNm
Nil9LAorICAgICAgICAgIHtUT0JOKDB4YTQ1ZjUzNjcsIDB4MzcxODNiY2YpLCBUT0JOKDB4NzE1
MmI3YmIsIDB4MzM3MGRmZjcpLAorICAgICAgICAgICBUT0JOKDB4Y2Y4ODdiYWEsIDB4YmYxMjUy
NWIpLCBUT0JOKDB4ZTdhYzdiZGQsIDB4ZDZkMWUzY2QpfX0sCisgICAgICAgICB7e1RPQk4oMHgy
NTkxNGY3OCwgMHg4MWZkYWQ5MCksIFRPQk4oMHhjZjYzOGY1NiwgMHgwZDJjZjZhYiksCisgICAg
ICAgICAgIFRPQk4oMHhiOTBiYzAzZiwgMHhjYzA1NGRlNSksIFRPQk4oMHg5MzI4MTFhNywgMHgx
OGIwNjM1MCl9LAorICAgICAgICAgIHtUT0JOKDB4MmYwMGIzMzAsIDB4OWJiZDExZmYpLCBUT0JO
KDB4NzYxMDhhNmYsIDB4YjQwNDQ5NzQpLAorICAgICAgICAgICBUT0JOKDB4ODAxYmI5ZTAsIDB4
YTg1MWQyNjYpLCBUT0JOKDB4MGRkMDk5YmUsIDB4YmY4OTkwYzEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg1OGM1YWFhYSwgMHhhYmUzMjk4NiksIFRPQk4oMHgwZmU5ZGQyYSwgMHg1MGQ1OWMyNyks
CisgICAgICAgICAgIFRPQk4oMHg4NDk1MWZmNCwgMHg4ZDMwNzMwNSksIFRPQk4oMHg2YzIzZjgy
OSwgMHg4NjUyOWI3OCl9LAorICAgICAgICAgIHtUT0JOKDB4NTBiYjIyMTgsIDB4MGIxMzZhNzkp
LCBUT0JOKDB4N2UyMTc0ZGUsIDB4NzdhMjA5OTYpLAorICAgICAgICAgICBUT0JOKDB4NmYwMGE0
YjksIDB4YzBiYjRkYTYpLCBUT0JOKDB4ODlhMjVhMTcsIDB4ZWZkZGU4ZGEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhmNzI4YTI3ZSwgMHhjMTFlZTAxZCksIFRPQk4oMHhmOTAwNTUzYSwgMHhlNWYx
MGRmYiksCisgICAgICAgICAgIFRPQk4oMHgxODlhODNjOCwgMHgwMmVjODkzYyksIFRPQk4oMHgz
Y2E1YmRjMSwgMHgyM2Y2NmQ3Nyl9LAorICAgICAgICAgIHtUT0JOKDB4OTg3ODE1MzcsIDB4OTdl
YWRhOWYpLCBUT0JOKDB4NTljNTBhYjMsIDB4MTAyNTYyMzApLAorICAgICAgICAgICBUT0JOKDB4
MzQ2MDQyZDksIDB4MzIzYzY5YjMpLCBUT0JOKDB4MWI3MTVhNmQsIDB4MmM0NjA0NDkpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhhNDFkZDQ3NiwgMHg2YWUwNmUwYiksIFRPQk4oMHhjZGQ3ODg4ZSwg
MHg5ZDQyZTI1ZiksCisgICAgICAgICAgIFRPQk4oMHgwZjM5NWY3NCwgMHg1NmIyNWEyMCksIFRP
Qk4oMHhlYWRmZTBhZSwgMHg4NzAwZTI3ZSl9LAorICAgICAgICAgIHtUT0JOKDB4YjA5ZDUyYTks
IDB4Njk5NTAwOTMpLCBUT0JOKDB4MzUyNWQ5Y2IsIDB4MzI3ZjhkNDApLAorICAgICAgICAgICBU
T0JOKDB4YjgyMzVhOTQsIDB4NjdkZjg4NmEpLCBUT0JOKDB4NzdlNGIwZGQsIDB4MDM1ZmFlYzIp
fX0sCisgICAgICAgICB7e1RPQk4oMHgxMTVlYjIwYSwgMHg1MTdkNzA2MSksIFRPQk4oMHg3N2Zl
MzQzMywgMHg2YzJkZjY4MyksCisgICAgICAgICAgIFRPQk4oMHg2ODcwZGRjNywgMHhjZGM2ZmM2
NyksIFRPQk4oMHhiMTYxMDU4OCwgMHgwYjg3ZGU4Myl9LAorICAgICAgICAgIHtUT0JOKDB4MzQz
NTg0Y2EsIDB4ZDljNGRkYmUpLCBUT0JOKDB4YjMxNjRmMWMsIDB4M2Q3NTRiZTIpLAorICAgICAg
ICAgICBUT0JOKDB4MDczMWVkM2EsIDB4YzFlNmM4OTQpLCBUT0JOKDB4MjYzMjdkZWMsIDB4NGY2
YjkwNGMpfX0sCisgICAgICAgICB7e1RPQk4oMHg5ZDQ5YzZkZSwgMHg5N2I1Y2QzMiksIFRPQk4o
MHg0MDgzNWRhZSwgMHhiNWVjZWVjZCksCisgICAgICAgICAgIFRPQk4oMHhjNjYzNTBlZCwgMHhk
OWRlZDdmZSksIFRPQk4oMHg4YWVlYmI1YywgMHg3YTY3ODgwNCl9LAorICAgICAgICAgIHtUT0JO
KDB4NTFkNDJmYjcsIDB4NWI4ZWU5ZWMpLCBUT0JOKDB4ZDdhMTdiZGQsIDB4OGUzY2ExMTgpLAor
ICAgICAgICAgICBUT0JOKDB4NDBkNzUxMWEsIDB4MmVmNDQwMGUpLCBUT0JOKDB4YzQ4OTkwYWMs
IDB4ODc1YTY2ZjQpfX0sCisgICAgICAgICB7e1RPQk4oMHg4ZGUwN2QyYSwgMHgyMTk5ZTM0Nyks
IFRPQk4oMHhiZWU3NTU1NiwgMHgyYTM5ZTA1MSksCisgICAgICAgICAgIFRPQk4oMHg1NjkxODc4
NiwgMHg5MTZlNTFkYyksIFRPQk4oMHhlYjE5MTMxMywgMHg0YTJkODllYyl9LAorICAgICAgICAg
IHtUT0JOKDB4NjY3OTYxMGQsIDB4MzdkMzQxZWQpLCBUT0JOKDB4NDM0ZmJiNDEsIDB4NTZkNTFj
MmIpLAorICAgICAgICAgICBUT0JOKDB4ZTU0YjdlZTcsIDB4ZDc0OTJkYmEpLCBUT0JOKDB4YWEz
M2E3OWEsIDB4NTkwMjE0OTMpfX0sCisgICAgICAgICB7e1RPQk4oMHg0OWZjNTA1NCwgMHhlNGJk
NmQzZCksIFRPQk4oMHgwOTU0MGYwNCwgMHg1YWI1NTFkMCksCisgICAgICAgICAgIFRPQk4oMHg4
YWNjOTA4NSwgMHg0OTQyZDNhNiksIFRPQk4oMHgyMzFhZjAyZiwgMHgyZDI4MzIzYil9LAorICAg
ICAgICAgIHtUT0JOKDB4OTM0NThjYWMsIDB4MDk5MmMxNjMpLCBUT0JOKDB4MWZlZjhlNzEsIDB4
ODg4ZTNiYjQpLAorICAgICAgICAgICBUT0JOKDB4Mjc1NzhkYTUsIDB4YmU4YzI2OGMpLCBUT0JO
KDB4Y2M4YmU3OTIsIDB4ZTgwNWVjMDApfX0sCisgICAgICAgICB7e1RPQk4oMHgyOTI2N2JhZSwg
MHhjNjFjMzg1NSksIFRPQk4oMHhlYmZmNDI5ZCwgMHg1OGMxZmQzYiksCisgICAgICAgICAgIFRP
Qk4oMHgyMmQ4ODZjMCwgMHg4YzBiOTNiOCksIFRPQk4oMHhjYTVlMDBiMiwgMHgyZGRiODk1Myl9
LAorICAgICAgICAgIHtUT0JOKDB4Y2YzMzAxMTcsIDB4YzNmZWQ4YjcpLCBUT0JOKDB4ZDQ5YWM2
ZmEsIDB4ODE5YzAxZjYpLAorICAgICAgICAgICBUT0JOKDB4NmRkYWE2YmQsIDB4M2MwZmJkNTQp
LCBUT0JOKDB4OTE3NDMwNjgsIDB4ODA0OWEyY2YpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNjdm
OTgxZSwgMHhhZmYyZWY4MSksIFRPQk4oMHhjMzY1NGQzNSwgMHgyODE4YWU4MCksCisgICAgICAg
ICAgIFRPQk4oMHg4MWQwNTA0NCwgMHgxYjJhYTg5MiksIFRPQk4oMHgyZGIwNjdiZiwgMHgzZDA5
OTMyOCl9LAorICAgICAgICAgIHtUT0JOKDB4ZTdjNzllODYsIDB4NzAzZGNjOTcpLCBUT0JOKDB4
ZTY2ZjliMzcsIDB4ZTEzM2UyMTUpLAorICAgICAgICAgICBUT0JOKDB4Y2RmMTE5YTYsIDB4ZTM5
YTdhNWMpLCBUT0JOKDB4NDdjNjBkZTMsIDB4ODc2ZjFiNjEpfX0sCisgICAgICAgICB7e1RPQk4o
MHg2ZTQwNTkzOSwgMHhkODYwZjFiMiksIFRPQk4oMHgzZTlhMWRiYywgMHhmNWVkNGQ0YSksCisg
ICAgICAgICAgIFRPQk4oMHgzZjIzNjE5ZSwgMHhjOWI2YmNiZCksIFRPQk4oMHg1ZWU3OTBjZiwg
MHg3MzRlNDQ5Nyl9LAorICAgICAgICAgIHtUT0JOKDB4ZjBhODM0YjEsIDB4NWJkYWY5YmIpLCBU
T0JOKDB4MDJjZWRkYTcsIDB4NGNhMjk1ZjApLAorICAgICAgICAgICBUT0JOKDB4NDYxOWFhMmIs
IDB4Y2I4ZTM3OGMpLCBUT0JOKDB4ZTU2MTMyNDQsIDB4Y2M5ODdlYTQpfX0sCisgICAgICAgICB7
e1RPQk4oMHgwYmMwMjJjYywgMHg3NmIyM2E1MCksIFRPQk4oMHg0YTI3OTNhZCwgMHgwYTZjMjFj
ZSksCisgICAgICAgICAgIFRPQk4oMHgzODMyODc4MCwgMHg4OWNhYzNmNSksIFRPQk4oMHgyOTE3
NmYxYiwgMHhjYmEyNmQ1Nil9LAorICAgICAgICAgIHtUT0JOKDB4MDYyOTYxODcsIDB4NGY2ZjU5
ZWIpLCBUT0JOKDB4ODZlOWJjYTksIDB4OGJkYzY1OGUpLAorICAgICAgICAgICBUT0JOKDB4MmNh
OWM0ZDMsIDB4NTdlMzA0MDIpLCBUT0JOKDB4NTQzOGIyMTYsIDB4NTE2YTA5YmIpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgwYTZhMDYzYywgMHg3NjcyNzY1YSksIFRPQk4oMHgzN2EzY2U2NCwgMHgw
NTQ3YjliZiksCisgICAgICAgICAgIFRPQk4oMHg0MmMwOTljOCwgMHg5OGIxYTYzMyksIFRPQk4o
MHhiNWFiODAwZCwgMHgwNWVlNjk2MSl9LAorICAgICAgICAgIHtUT0JOKDB4ZjE5NjNmNTksIDB4
MTFhNWFjZDYpLCBUT0JOKDB4YmFlZTYxNTcsIDB4NDYyMDEwNjMpLAorICAgICAgICAgICBUT0JO
KDB4MzZkOWE2NDksIDB4YTU5NjIxMGEpLCBUT0JOKDB4YWVkMDQzNjMsIDB4MWJhNzEzOGMpfX0s
CisgICAgICAgICB7e1RPQk4oMHhjZjgxN2QxYywgMHhhNGE4MmI3NiksIFRPQk4oMHg1NTg2OTYw
ZSwgMHhmMzgwNmJlOSksCisgICAgICAgICAgIFRPQk4oMHg3YWI2N2M4OSwgMHgwOWRjNmJiNSks
IFRPQk4oMHg1MmFjZTdhMCwgMHgxMTRmZTdlYil9LAorICAgICAgICAgIHtUT0JOKDB4Y2Q5ODc2
MTgsIDB4Y2JiYzliNzApLCBUT0JOKDB4NGYwNmZkNWEsIDB4NjA0Y2E1ZTEpLAorICAgICAgICAg
ICBUT0JOKDB4OTBhZjE0Y2EsIDB4NmRiZGUxMzMpLCBUT0JOKDB4MWFmZTQzMjIsIDB4OTQ4YTMy
NjQpfX0sCisgICAgICAgICB7e1RPQk4oMHhhNzBkMmNhNiwgMHhjNDRiMmM2YyksIFRPQk4oMHhh
YjcyNjc5OSwgMHgwZWY4N2RmZSksCisgICAgICAgICAgIFRPQk4oMHgzMTBmNjRkYywgMHgyZTY5
NjM3NyksIFRPQk4oMHg0OWI0MmU2OCwgMHg0YzgxMjZhMCl9LAorICAgICAgICAgIHtUT0JOKDB4
MGVhNDQ0YzMsIDB4Y2VhMGIxNzYpLCBUT0JOKDB4NTNhOGRkZjcsIDB4Y2IyNjkxODIpLAorICAg
ICAgICAgICBUT0JOKDB4ZjNlNjc0ZWIsIDB4YmJiYTlkY2IpLCBUT0JOKDB4MGQyODc4YTgsIDB4
ZDg2NjlkMzMpfX0sCisgICAgICAgICB7e1RPQk4oMHgwNGI5MzVkNSwgMHhkMDE5YjZhMyksIFRP
Qk4oMHhiYjVjZjg4ZSwgMHg0MDZmMWU0NiksCisgICAgICAgICAgIFRPQk4oMHhhMTkxMmQxNiwg
MHg1YjU3YzExMSksIFRPQk4oMHg5ODAzZmMyMSwgMHgxOWViZmQ3OCl9LAorICAgICAgICAgIHtU
T0JOKDB4NGYyMzFjOWUsIDB4YzA3NzY0YTkpLCBUT0JOKDB4ZDkzMjg2ZWUsIDB4Yjc1YmQwNTUp
LAorICAgICAgICAgICBUT0JOKDB4ODNhOTQ1N2QsIDB4OGVlNmM5ZGUpLCBUT0JOKDB4MDQ2OTU5
MTUsIDB4NjA4N2VjOTApfX0sCisgICAgICAgICB7e1RPQk4oMHgxNGM2ZGQ4YSwgMHg1OGQ2Y2Q0
NiksIFRPQk4oMHg5Y2I2MzNiNSwgMHg4ZTY2MzRkMiksCisgICAgICAgICAgIFRPQk4oMHhjMTMw
NTA0NywgMHhmODFiYzMyOCksIFRPQk4oMHgxMmVkZTBlMiwgMHgyNmExNzdlNSl9LAorICAgICAg
ICAgIHtUT0JOKDB4MzMyY2NhNjIsIDB4MDY1YTZmNGYpLCBUT0JOKDB4YzNhNDdlY2QsIDB4Njdi
ZTQ4N2IpLAorICAgICAgICAgICBUT0JOKDB4NzQxZWIxODcsIDB4MGY0N2VkMWMpLCBUT0JOKDB4
OTllNjZlNTgsIDB4ZTc1OThiMTQpfX0sCisgICAgICAgICB7e1RPQk4oMHg2ZjA1NDRjYSwgMHg2
M2QwZmYxMiksIFRPQk4oMHhlNWVmYzc4NCwgMHhiNjEwYTA1ZiksCisgICAgICAgICAgIFRPQk4o
MHhmNzI5MTdiMSwgMHg3Y2FkN2I0NyksIFRPQk4oMHgzZmY2ZWEyMCwgMHhmMmNhYzBjMCl9LAor
ICAgICAgICAgIHtUT0JOKDB4Y2MyMzc5MWIsIDB4ZjIxZGI4YjcpLCBUT0JOKDB4N2RhYzcwYjEs
IDB4ZDdkOTM1NjUpLAorICAgICAgICAgICBUT0JOKDB4NjgyY2RhMWQsIDB4Njk0YmRhYWQpLCBU
T0JOKDB4ZWI4OGJiOGMsIDB4MTAyMzUxNmQpfX0sCisgICAgICAgICB7e1RPQk4oMHhjNGM2MzRi
NCwgMHhkZmRiZWIxYiksIFRPQk4oMHgyMmY1Y2E3MiwgMHhiNGVlNGRlYSksCisgICAgICAgICAg
IFRPQk4oMHgxMDQ1YTM2OCwgMHhlNjUyNDgyMSksIFRPQk4oMHhlZDllOGEzZiwgMHgwNTJiMThi
Mil9LAorICAgICAgICAgIHtUT0JOKDB4OWI3ZjJjYjEsIDB4Yjk2MWY0OWEpLCBUT0JOKDB4N2Zl
ZTJlYzEsIDB4N2IwMDk2NzApLAorICAgICAgICAgICBUT0JOKDB4MzUwZDg3NTQsIDB4MjI1MDdh
NmQpLCBUT0JOKDB4NTYxYmQ3MTEsIDB4NGRiNTVmMWQpfX0sCisgICAgICAgICB7e1RPQk4oMHg0
YzE4OWNjYywgMHgzMjBiYmNhZiksIFRPQk4oMHg1Njg0MzRjZiwgMHhkZjFkZTQ4YyksCisgICAg
ICAgICAgIFRPQk4oMHg2YWYxYjAwZSwgMHgwZmE4ZjEyOCksIFRPQk4oMHhmMGJhOWQwMiwgMHg4
OTA3NTgzYyl9LAorICAgICAgICAgIHtUT0JOKDB4NzM1YTQwMDQsIDB4MzJmZjlmNjApLCBUT0JO
KDB4M2RkOGU0YjYsIDB4YzI1ZGNmMzMpLAorICAgICAgICAgICBUT0JOKDB4ZjIyMzBmMTYsIDB4
NDJjNzRjZWYpLCBUT0JOKDB4ZDgxMTc2MjMsIDB4MDEzZmE4YWQpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgzNjgyMjg3NiwgMHhmNTFmZTc2ZSksIFRPQk4oMHg4YTY4MTFjYywgMHgxMWQ2MjU4OSks
CisgICAgICAgICAgIFRPQk4oMHhjM2ZjN2U2NSwgMHg0NjIyNTcxOCksIFRPQk4oMHhiN2RmMmM5
ZiwgMHhjODJmZGJjZCl9LAorICAgICAgICAgIHtUT0JOKDB4M2IxZDRlNTIsIDB4ZGQ3YjIwNWIp
LCBUT0JOKDB4YjY5NTk0NzgsIDB4NDdhMmU0MTQpLAorICAgICAgICAgICBUT0JOKDB4MDVlNGQ3
OTMsIDB4ZWZhOTExNDgpLCBUT0JOKDB4YjQ3ZWQ0NDYsIDB4ZmQyZTk2NzUpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgxYTcwOThiOSwgMHgwNGM5ZDliZiksIFRPQk4oMHg2NjFlMjg4MSwgMHgxYjc5
MzA0OCksCisgICAgICAgICAgIFRPQk4oMHhiMWExNjk2NiwgMHhiMDFlZTQ2MSksIFRPQk4oMHhi
YzUyMTMwOCwgMHgyOTU0NzQ2Zil9LAorICAgICAgICAgIHtUT0JOKDB4YzkwOWEwZmMsIDB4MjQ3
N2RlNTApLCBUT0JOKDB4ZDgwYmI0MWMsIDB4N2RiZDUxZWYpLAorICAgICAgICAgICBUT0JOKDB4
YTg1YmU3ZWMsIDB4NTMyOTQ5MDUpLCBUT0JOKDB4NmQ0NjViMTgsIDB4ODM5NThmOTcpfX0sCisg
ICAgICAgICB7e1RPQk4oMHgxNmY2ZjMzMCwgMHhmYjY4NDBmZCksIFRPQk4oMHhmYWFlYjIxNCwg
MHgzNDAxZTZjOCksCisgICAgICAgICAgIFRPQk4oMHhhZjgzZDMwZiwgMHhjY2I1YjRmOCksIFRP
Qk4oMHgyMjg4NTczOSwgMHgyNjZkZWM0Yil9LAorICAgICAgICAgIHtUT0JOKDB4NTFiNDM2N2Ms
IDB4N2JjNDY3ZGYpLCBUT0JOKDB4OTI2NTYyZTMsIDB4ZDg0MmQyN2EpLAorICAgICAgICAgICBU
T0JOKDB4ZGZjYjY2MTQsIDB4MGZlYTE0YTYpLCBUT0JOKDB4ZWIzOTRkYWUsIDB4ZjI3MzRjZDkp
fX0sCisgICAgICAgICB7e1RPQk4oMHgzZWVhZTVkMiwgMHgxMWMwYmU5OCksIFRPQk4oMHhiMWU2
ZWQxMSwgMHg4MTRlODE2NSksCisgICAgICAgICAgIFRPQk4oMHgxOTEwODZiYywgMHhlNTJiY2Ux
YyksIFRPQk4oMHgxNGI3NGNjNiwgMHhhNzVhMDRkYSl9LAorICAgICAgICAgIHtUT0JOKDB4NjNj
ZjExODYsIDB4OGMwNjA5ODUpLCBUT0JOKDB4MDcxMDQ3ZGUsIDB4MmRiZDdmN2MpLAorICAgICAg
ICAgICBUT0JOKDB4NGU0MzNiOGIsIDB4Y2UwOTQyY2EpLCBUT0JOKDB4ZWNiYWM0NDcsIDB4ZDhm
ZWM2MWQpfX0sCisgICAgICAgICB7e1RPQk4oMHg4ZjBlZDBlMiwgMHhlYmYzMjMyZiksIFRPQk4o
MHhmZmY4MGY5ZSwgMHhjNTJhMmVkZCksCisgICAgICAgICAgIFRPQk4oMHhhZDlhYjQzMywgMHg3
NWI1NWZkYiksIFRPQk4oMHg3M2NhNzgyMCwgMHhlNDJlMGMxMSl9LAorICAgICAgICAgIHtUT0JO
KDB4NmRhY2UwYTAsIDB4ZTYyNTFiNDYpLCBUT0JOKDB4ODliYzZiNWMsIDB4NGMwZDkzMmQpLAor
ICAgICAgICAgICBUT0JOKDB4MzQzOGNkNzcsIDB4MDk1ZGExOWEpLCBUT0JOKDB4MmYyNGE5Mzks
IDB4OGQ0OGJkZmIpfX0sCisgICAgICAgICB7e1RPQk4oMHg5OWI0N2U0NiwgMHg3NjY1NjFiNyks
IFRPQk4oMHg3MzY2MDBlNiwgMHgwZWQwMzIyYSksCisgICAgICAgICAgIFRPQk4oMHgwNmE0N2Ni
MSwgMHg2MzhlMTg2NSksIFRPQk4oMHg5MjdjMWMyZCwgMHhjYjEzNjAwMCl9LAorICAgICAgICAg
IHtUT0JOKDB4Mjk1NDIzMzcsIDB4MGNjNWRmNjkpLCBUT0JOKDB4OTliMzdjMDIsIDB4MDlkNjQ5
YTkpLAorICAgICAgICAgICBUT0JOKDB4YzVmMDA0M2MsIDB4NmFlZmRiMjcpLCBUT0JOKDB4NmNk
ZDk5ODcsIDB4MWJlOTVjMjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg2OTg1MDkzMSwgMHgzOTA0
MjBkMiksIFRPQk4oMHgyOTljNDBhYywgMHgwOTgzZWZhNCksCisgICAgICAgICAgIFRPQk4oMHgz
YTA1ZTc3OCwgMHhhZjM5YWVhZCksIFRPQk4oMHg4NDI3NDQwOCwgMHg0M2E0NTE5Myl9LAorICAg
ICAgICAgIHtUT0JOKDB4NmJjZDBmYjksIDB4OTFhNzExYTApLCBUT0JOKDB4NDYxNTkyYzgsIDB4
OWY1MmFiMTcpLAorICAgICAgICAgICBUT0JOKDB4YjQ5MzAyYjQsIDB4ZGEzYzZlZDYpLCBUT0JO
KDB4YzUxZmRkYzcsIDB4MzMwZDcwNjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg5NGJhYmViNiwg
MHhkYTUwZDUzMSksIFRPQk4oMHg1MjFiODQwZCwgMHhhNmE3YjlkYSksCisgICAgICAgICAgIFRP
Qk4oMHg1MzA1MTUxZSwgMHg0MDRiZGM4OSksIFRPQk4oMHgxYmNkZTIwMSwgMHhkMGQwNzQ0OSl9
LAorICAgICAgICAgIHtUT0JOKDB4ZjQyN2E3OGIsIDB4M2I3NmE1OWEpLCBUT0JOKDB4Zjg0ODQx
Y2UsIDB4MDc3OTFhMWIpLAorICAgICAgICAgICBUT0JOKDB4ZWJkMzE0YmUsIDB4YmY5MWVkMWMp
LCBUT0JOKDB4OGU2MWQzNGMsIDB4YmYxNzI5NDMpfX0sCisgICAgICAgICB7e1RPQk4oMHgxZDVk
YzQ1MSwgMHg1NTQxYjg5MiksIFRPQk4oMHhiMTg2ZWU0MSwgMHhmYzlkOWU1NCksCisgICAgICAg
ICAgIFRPQk4oMHg5ZDlmMzQ1ZSwgMHhkNWJmNjEwZCksIFRPQk4oMHgzZTdiYTY1ZCwgMHhmNmFj
Y2E5Zil9LAorICAgICAgICAgIHtUT0JOKDB4OWRkYTc4N2EsIDB4YTgzNjk0ODYpLCBUT0JOKDB4
MDlmOWRhYjcsIDB4OGViNWJhNTMpLAorICAgICAgICAgICBUT0JOKDB4NWFmYjIwMzMsIDB4ZDY0
ODFiYzMpLCBUT0JOKDB4NzZmNGNlMzAsIDB4YWZhNjIxMDQpfX0sCisgICAgICAgICB7e1RPQk4o
MHhhOGZhMDBjZiwgMHhmNGYwNjZiNSksIFRPQk4oMHg4OWFiNTE0MywgMHg0NjFkYWZjMiksCisg
ICAgICAgICAgIFRPQk4oMHg0NDMzOWVkNywgMHhhMzM4OTk5OCksIFRPQk4oMHgyZmY4NjJmMSwg
MHhiYzIxNDkwMyl9LAorICAgICAgICAgIHtUT0JOKDB4MmM4OGY5ODUsIDB4YjA1NTU2ZTMpLCBU
T0JOKDB4Y2Q5NjA1OGUsIDB4MzQ2NzA4MWUpLAorICAgICAgICAgICBUT0JOKDB4N2Q2YTQxNzYs
IDB4ZWRjNjM3ZWEpLCBUT0JOKDB4ZTE3NDNkMDksIDB4MzZhNWFjZGMpfX0sCisgICAgICAgICB7
e1RPQk4oMHg2NmZkNzJlMiwgMHg3ZWIzNzcyNiksIFRPQk4oMHhmN2ZhMjY0ZSwgMHgxNDgxYTAz
NyksCisgICAgICAgICAgIFRPQk4oMHg5ZmJkM2JkZSwgMHg0NWY0YWE3OSksIFRPQk4oMHhlZDFl
MDE0NywgMHg3NjdjM2UyMil9LAorICAgICAgICAgIHtUT0JOKDB4NzYyMWY5NzksIDB4ODJlN2Fi
ZTIpLCBUT0JOKDB4MTllZWRjNzIsIDB4NDVmNjMzZjgpLAorICAgICAgICAgICBUT0JOKDB4ZTY5
YjE1NWUsIDB4NjEzN2JmM2EpLCBUT0JOKDB4YTBhZDEzY2UsIDB4NDE0ZWU5NGUpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg5M2UzZDUyNCwgMHgxYzBlNjUxYSksIFRPQk4oMHhhYjFhNmUyYSwgMHgw
MmNlMjI3ZSksCisgICAgICAgICAgIFRPQk4oMHhlN2FmMTc5NywgMHg0YWIyN2VjYSksIFRPQk4o
MHgyNDU0NDZkZSwgMHhiZDQ0NGYzOSl9LAorICAgICAgICAgIHtUT0JOKDB4NTllMjJhMjEsIDB4
NTZjMDc2MTMpLCBUT0JOKDB4NDNkZWFmY2UsIDB4ZjQyNzU0OTgpLAorICAgICAgICAgICBUT0JO
KDB4MTA4MzRjY2IsIDB4NjdmZDA5NDYpLCBUT0JOKDB4YTc1ODQxZTUsIDB4NDc0MDZlZGYpfX0s
CisgICAgICAgICB7e1RPQk4oMHhlYmQ2YTY3NywgMHg3YjBhYzkzZCksIFRPQk4oMHhhNmUzN2Iw
ZCwgMHg3OGY1ZTBkNyksCisgICAgICAgICAgIFRPQk4oMHgyNTE2YzA5NiwgMHg3NmY1NDkyYiks
IFRPQk4oMHgxZTRiZjg4OCwgMHg5YWMwNWYzYSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2RiNDJj
ZTAsIDB4NGRmMGJhMmIpLCBUT0JOKDB4OTM1ZDVjZmQsIDB4NTA2MjM0MWIpLAorICAgICAgICAg
ICBUT0JOKDB4OGEzMDMzMzMsIDB4ODJhY2FjMjApLCBUT0JOKDB4NDI5NDM4YzQsIDB4NTE5OGIw
MGUpfX0sCisgICAgICAgICB7e1RPQk4oMHgxZDA4M2JjOSwgMHgwNDlkMzNmYSksIFRPQk4oMHg1
OGI4MmRkYSwgMHg5NDZmNjdmZiksCisgICAgICAgICAgIFRPQk4oMHhhYzNlMmRiOCwgMHg2N2Ex
ZDZhMyksIFRPQk4oMHg2MmU2YmVhZCwgMHgxNzk4YWFjOCl9LAorICAgICAgICAgIHtUT0JOKDB4
ZmM4NTk4MGYsIDB4ZGU0NmM1OGMpLCBUT0JOKDB4YTdmNjkzNzksIDB4NjljOGQ3YmUpLAorICAg
ICAgICAgICBUT0JOKDB4MjM1NTc5MjcsIDB4ODM3YjM1ZWMpLCBUT0JOKDB4MDZhOTMzZDgsIDB4
ZTA3OTBjMGMpfX0sCisgICAgICAgICB7e1RPQk4oMHg4MjdjMGU5YiwgMHgwNzdmZjU1ZCksIFRP
Qk4oMHg1Mzk3Nzc5OCwgMHhiYjI2ZTY4MCksCisgICAgICAgICAgIFRPQk4oMHg1OTUzMDg3NCwg
MHgxZDljYjU0ZiksIFRPQk4oMHhjY2EzZjQ0OSwgMHg0YWFjNTNlZil9LAorICAgICAgICAgIHtU
T0JOKDB4MTFkYzVjODcsIDB4YTA3ZWRhMGYpLCBUT0JOKDB4YzEzOGJjY2YsIDB4ZmQ2NDAwYzgp
LAorICAgICAgICAgICBUT0JOKDB4NTQ5NjgwZDMsIDB4MTNlNWRhNzIpLCBUT0JOKDB4YzkzZWVk
ODIsIDB4NDU0MDYxN2UpfX0sCisgICAgICAgICB7e1RPQk4oMHhmZDNkYjE1NywgMHg0ZDBiNzVj
MCksIFRPQk4oMHg5NzE2ZWI0MiwgMHg2Mzg2MDc1YiksCisgICAgICAgICAgIFRPQk4oMHgwNjM5
NjA1YywgMHg4MTdiMmMxNiksIFRPQk4oMHgwOTkxNTEwOSwgMHhmMWU0ZjIwMSl9LAorICAgICAg
ICAgIHtUT0JOKDB4MzVjOWE5MjgsIDB4NWNjYTZjM2IpLCBUT0JOKDB4YjI1ZjdkMWEsIDB4MzUw
NWM5MDApLAorICAgICAgICAgICBUT0JOKDB4ZWI5ZjdkMjAsIDB4NjMwNDgwYzQpLCBUT0JOKDB4
YzNjN2I4YzYsIDB4MmExYTUwMWMpfX0sCisgICAgICAgICB7e1RPQk4oMHgzZjk5MTgzYywgMHg1
YTFmOGUyNCksIFRPQk4oMHhmZGIxMThmYSwgMHg5ZGQyNTVmMCksCisgICAgICAgICAgIFRPQk4o
MHhiOWIxOGI5MCwgMHhjMjdmNjJhNiksIFRPQk4oMHhlOGY3MzJmNywgMHgzOTZlYzE5MSl9LAor
ICAgICAgICAgIHtUT0JOKDB4NTI0YTJkOTEsIDB4MGJlNzg2YWIpLCBUT0JOKDB4NWQzMmFkZWYs
IDB4MGFjNWEwZjUpLAorICAgICAgICAgICBUT0JOKDB4OWI1M2Q0ZDYsIDB4OTcyNWY2OTQpLCBU
T0JOKDB4MDMyYTc2YzYsIDB4MDUxMGJhODkpfX0sCisgICAgICAgICB7e1RPQk4oMHg4NDAzOTFh
MywgMHhlYmViMTU0NCksIFRPQk4oMHg0NGI3Yjg4YywgMHgzZWQ3M2FjMyksCisgICAgICAgICAg
IFRPQk4oMHhkMjRiYWU3YSwgMHgyNTZjYjhiMyksIFRPQk4oMHg3Y2ViMTUxYSwgMHhlMzk0Y2Ix
Mil9LAorICAgICAgICAgIHtUT0JOKDB4YmQ2YjY2ZDAsIDB4NWJjMWU2YTgpLCBUT0JOKDB4ZWM3
MGNlY2IsIDB4MDkwZjA3YmYpLAorICAgICAgICAgICBUT0JOKDB4MjcwNjQ0ZWQsIDB4N2Q5Mzc1
ODkpLCBUT0JOKDB4ZWU5ZTFhM2QsIDB4NWYxZGNjZmUpfX0sCisgICAgICAgICB7e1RPQk4oMHhi
MGQ0MGE4NCwgMHg3NDViOThkMiksIFRPQk4oMHhkYTQyOWEyMSwgMHgyNTU2ZWQ0MCksCisgICAg
ICAgICAgIFRPQk4oMHhmNjc2ZWNlZCwgMHg4NTE0OGNiOSksIFRPQk4oMHg1YTIyZDQwYywgMHhk
ZWQxODkzNil9LAorICAgICAgICAgIHtUT0JOKDB4M2JjNGI5ZTUsIDB4NzBlOGE0Y2UpLCBUT0JO
KDB4YmZkMTQ0NWIsIDB4OWVhZTAzNzkpLAorICAgICAgICAgICBUT0JOKDB4ZjIzZjJjMGMsIDB4
MWEwYmQ0N2UpLCBUT0JOKDB4YTljMGJiMzEsIDB4ZTE4NDU1MzEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg5ZGRjNGQ2MCwgMHgwYTRjM2Y2YiksIFRPQk4oMHhiZGZhYWQ3OSwgMHgyYzE1ZWY0NCks
CisgICAgICAgICAgIFRPQk4oMHhjZTU1YTIzNiwgMHg3ZjQ4NGFjYyksIFRPQk4oMHgwODY1M2Nh
NywgMHgwNTViMWYxNSl9LAorICAgICAgICAgIHtUT0JOKDB4MmVmYTg3MjQsIDB4NTM4ODczYTMp
LCBUT0JOKDB4MDkyOTllNWQsIDB4YWNlMWM3ZTcpLAorICAgICAgICAgICBUT0JOKDB4MDdhZmFi
NjYsIDB4YWRlMzMyYmEpLCBUT0JOKDB4OWJlMWZkZjYsIDB4OTJkZDcxYjcpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhhNDliNWQ1OSwgMHg1NzU4YjExYyksIFRPQk4oMHgwYjg1Mjg5MywgMHhjODY1
NGY0MCksCisgICAgICAgICAgIFRPQk4oMHhiNjNlZjZmNCwgMHg1MjM3OTQ0NyksIFRPQk4oMHhk
NDk1N2QyOSwgMHgxMDVlNjkwYyl9LAorICAgICAgICAgIHtUT0JOKDB4N2Q0ODQzNjMsIDB4NjQ2
NTU5YjApLCBUT0JOKDB4ZjRhODI3M2MsIDB4NDk3ODhhOGUpLAorICAgICAgICAgICBUT0JOKDB4
ZWU0MDZjYjgsIDB4MzRjZTU0YTkpLCBUT0JOKDB4MWUxYzI2MGYsIDB4Zjg2ZmRhOWIpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhlMTUwZTIyOCwgMHhjZjZhNGE4MSksIFRPQk4oMHgxZmEzYjZhMywg
MHgxYjQ4ODc3MiksCisgICAgICAgICAgIFRPQk4oMHgxZTZmZjExMCwgMHhjNWE5YzE1YiksIFRP
Qk4oMHhjNjEzM2I5MSwgMHg4YWQ2YWE0Nyl9LAorICAgICAgICAgIHtUT0JOKDB4OGFjNWQ1NWMs
IDB4OWRmZmE5NzgpLCBUT0JOKDB4YmExZDFjMWQsIDB4NWYzOTY1ZjIpLAorICAgICAgICAgICBU
T0JOKDB4Zjk2OWY0ZTAsIDB4NzczMmI1MmYpLCBUT0JOKDB4ZmNlZWNkYjUsIDB4YTUxNzJhMDcp
fX0sCisgICAgICAgICB7e1RPQk4oMHhiMDEyMGE1ZiwgMHgxMGYyYjhmNSksIFRPQk4oMHhjODNh
NmNkZiwgMHg1YzRjMmY2MyksCisgICAgICAgICAgIFRPQk4oMHg0ZDQ3YTQ5MSwgMHhmOGY5YzIx
MyksIFRPQk4oMHhkOWUxY2NlNSwgMHhkM2YxYmJkNSl9LAorICAgICAgICAgIHtUT0JOKDB4MGQ5
MWJjN2MsIDB4YWJhN2UzNzIpLCBUT0JOKDB4ZmNkYzc0YzgsIDB4ZGZkMWEyZGIpLAorICAgICAg
ICAgICBUT0JOKDB4MDVlZmE4MDAsIDB4Mzc0NjE4ZTUpLCBUT0JOKDB4MTEyMTY5NjksIDB4MTVh
NzkyNWUpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNGM4OTgyMywgMHhmNjAyMWM1ZCksIFRPQk4o
MHg4ODBkNWU4NCwgMHhlZmYxNDQyMyksCisgICAgICAgICAgIFRPQk4oMHg2NTIzYmM1YSwgMHg2
ZGNkMTM5NiksIFRPQk4oMHhkMWFjZmRmYywgMHgxMTNjOTc4Yil9LAorICAgICAgICAgIHtUT0JO
KDB4YjBjMTY0ZTgsIDB4YmJiNjY4NDApLCBUT0JOKDB4ZjdmNDMwMWUsIDB4NzJiNTg0NTkpLAor
ICAgICAgICAgICBUT0JOKDB4YzI5YWQ0YTYsIDB4YTYzOGU4ZWMpLCBUT0JOKDB4ZjVhYjg5NjEs
IDB4NDZiNzg2OTkpfX0sCisgICAgICAgICB7e1RPQk4oMHg5ZGJkNzk3NCwgMHgwZTk1NDc1MCks
IFRPQk4oMHgwMTIxZGU4OCwgMHg2NGY5ZDJjNiksCisgICAgICAgICAgIFRPQk4oMHgyZTU5N2I0
MiwgMHhkOTg1MjMyZSksIFRPQk4oMHg1NWI2YzNjNSwgMHg1MzQ1MTc3Nyl9LAorICAgICAgICAg
IHtUT0JOKDB4YmI1M2U1NDcsIDB4NTE5Y2I5ZmIpLCBUT0JOKDB4ZjEzNDAxOWYsIDB4ODQyODYw
MGQpLAorICAgICAgICAgICBUT0JOKDB4NWE0NzMxNzYsIDB4ZTA4MTc5MWEpLCBUT0JOKDB4MmYz
ZTIyNjMsIDB4MzVmYjBjMDgpfX0sCisgICAgICAgICB7e1RPQk4oMHhiMjhjMzAxNywgMHg3M2Qy
NzNiMCksIFRPQk4oMHhjY2QyMTA3NiwgMHg3NzIxZWY5YSksCisgICAgICAgICAgIFRPQk4oMHgw
NTRjYzI5MiwgMHhiNjUwZGMzOSksIFRPQk4oMHg2NjIyNDZkZSwgMHg2MTg4MDQ1ZSl9LAorICAg
ICAgICAgIHtUT0JOKDB4OTA0YjUyZmEsIDB4NmI4M2MwZDEpLCBUT0JOKDB4YTcyZGYyNjcsIDB4
OTdlOWNkNDYpLAorICAgICAgICAgICBUT0JOKDB4ODg2YjQzY2QsIDB4ODk5NzI1ZTQpLCBUT0JO
KDB4MmI2NTE2ODgsIDB4ZDg0OWZmMjIpfX0sCisgICAgICAgICB7e1RPQk4oMHg2MDQ3OWI3OSwg
MHgwMmYzNDUzMyksIFRPQk4oMHg1ZTM1NGMxNCwgMHgwYzc3YzE0OCksCisgICAgICAgICAgIFRP
Qk4oMHhiNGJiNzU4MSwgMHhhODUzN2M3OCksIFRPQk4oMHgxODgwNDNkNywgMHhlZmUxNDk1Zil9
LAorICAgICAgICAgIHtUT0JOKDB4OWJhMTJmNDIsIDB4OGMxZDUwMjYpLCBUT0JOKDB4MmUwYzhh
MjYsIDB4OTNkNGFhYWIpLAorICAgICAgICAgICBUT0JOKDB4YmRiYTdiOGIsIDB4YWE1N2M0NTAp
LCBUT0JOKDB4MTQwYzlhZDYsIDB4OWJiZGFmZWYpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMDY3
YWE0MiwgMHgyNWFjMGYxOCksIFRPQk4oMHhmN2IxMjk1YiwgMHgwNGQxZmJmMyksCisgICAgICAg
ICAgIFRPQk4oMHgxNDgyOTExMSwgMHhhNGIwNDgyNCksIFRPQk4oMHgyY2UzZjE5MiwgMHgzM2Jk
NWU5MSl9LAorICAgICAgICAgIHtUT0JOKDB4OWM3YTFkNTUsIDB4OGYyZTFiNzIpLCBUT0JOKDB4
ZmU5MzIyODYsIDB4MzAyYWEyNDMpLAorICAgICAgICAgICBUT0JOKDB4NDk3Y2E3YjQsIDB4ZDRi
ZTk1NTQpLCBUT0JOKDB4YjhlODIxYjgsIDB4ZTA1NDdhNmUpfX0sCisgICAgICAgICB7e1RPQk4o
MHhmYjI4MzhiZSwgMHg2N2U1NzNlMCksIFRPQk4oMHgwNTg5MWRiOSwgMHg0MDg0YzQ0YiksCisg
ICAgICAgICAgIFRPQk4oMHg5MTMxMTM3MywgMHg5NmMxYzJjNSksIFRPQk4oMHg2YWViZmEzZiwg
MHhkOTU4NDQ0Yil9LAorICAgICAgICAgIHtUT0JOKDB4YWM5Y2RjZTksIDB4ZTU2ZTU1YzEpLCBU
T0JOKDB4NzE0OGNlZDMsIDB4MmNhYTQ2ZDApLAorICAgICAgICAgICBUT0JOKDB4MmUxMGM3ZWYs
IDB4YjYxZmU4ZWIpLCBUT0JOKDB4OWZkODM1ZGEsIDB4ZmY5N2NmNGQpfX19LAorICAgICAgICB7
e3tUT0JOKDB4YTM2ZGExMDksIDB4MDgxZTkzODcpLCBUT0JOKDB4ZmI5NzgwZDcsIDB4OGM5MzU4
MjgpLAorICAgICAgICAgICBUT0JOKDB4ZDU5NDAzMzIsIDB4ZTU0MGIwMTUpLCBUT0JOKDB4Yzlk
N2I1MWIsIDB4ZTBmNDY2ZmEpfSwKKyAgICAgICAgICB7VE9CTigweGZhYWRjZDQxLCAweGQ2ZDlm
NjcxKSwgVE9CTigweGJhNmMxZTI4LCAweGIxYTJhYzE3KSwKKyAgICAgICAgICAgVE9CTigweDA2
NmE3ODMzLCAweGVkMjAxZTVmKSwgVE9CTigweDE5ZDk5NzE5LCAweGY5MGY0NjJiKX19LAorICAg
ICAgICAge3tUT0JOKDB4ZjQzMWY0NjIsIDB4MDYwYjVmNjEpLCBUT0JOKDB4YTU2ZjQ2YjQsIDB4
N2JkMDU3YzIpLAorICAgICAgICAgICBUT0JOKDB4MzQ4ZGNhNmMsIDB4NDdlMWJmNjUpLCBUT0JO
KDB4OWEzODc4M2UsIDB4NDFiY2YxZmYpfSwKKyAgICAgICAgICB7VE9CTigweDdhNWQzM2E5LCAw
eGRhNzEwNzE4KSwgVE9CTigweDVhNzc5OTg3LCAweDJlMGFlYWY2KSwKKyAgICAgICAgICAgVE9C
TigweGNhODczMTRkLCAweDJkMjlkMTg3KSwgVE9CTigweGZhMGVkYzNlLCAweGM2ODdkNzMzKX19
LAorICAgICAgICAge3tUT0JOKDB4OWRmMzM2MjEsIDB4NmEzMWUwOWIpLCBUT0JOKDB4ZGU4OWU0
NGQsIDB4YzEzNTBlMzUpLAorICAgICAgICAgICBUT0JOKDB4MjkyMTQ4NzEsIDB4NGNhMGNmNTIp
LCBUT0JOKDB4ZGYzNzk2NzIsIDB4MGI4OGE1MzgpfSwKKyAgICAgICAgICB7VE9CTigweGM5MmE1
MTBhLCAweDI1OTFkNjFiKSwgVE9CTigweDc5YWE4N2Q3LCAweDU4NWI0NDdiKSwKKyAgICAgICAg
ICAgVE9CTigweGY2N2RiNjA0LCAweGU1Mjg3Zjc3KSwgVE9CTigweDE2OTdjOGJmLCAweDVlZmU3
YTgwKX19LAorICAgICAgICAge3tUT0JOKDB4MWM4OTQ4NDksIDB4Y2IxOThhYzcpLCBUT0JOKDB4
YTg4NGE5M2QsIDB4MGYyNjQ2NjUpLAorICAgICAgICAgICBUT0JOKDB4MmRhOTY0ZWYsIDB4OWIy
MDA2NzgpLCBUT0JOKDB4M2MzNTFiODcsIDB4MDA5ODM0ZTYpfSwKKyAgICAgICAgICB7VE9CTigw
eGFmYjJlZjlmLCAweGUyYzRiNDRiKSwgVE9CTigweDU4MGY2YzQ3LCAweDMzMjY3OTBjKSwKKyAg
ICAgICAgICAgVE9CTigweGI4NDgwNTIxLCAweDBiMDIyNjRhKSwgVE9CTigweDhiYTZmOWUyLCAw
eDQyYTE5NGUyKX19LAorICAgICAgICAge3tUT0JOKDB4ZmM4Nzk3NWYsIDB4OGZiNTQ3MzgpLCBU
T0JOKDB4MzUxNjA3ODgsIDB4MjdjM2VhZDMpLAorICAgICAgICAgICBUT0JOKDB4ODM0MTE2ZDIs
IDB4Yjc0YTA4NWEpLCBUT0JOKDB4NTNjOTlhNzMsIDB4YTYyZmU5OTYpfSwKKyAgICAgICAgICB7
VE9CTigweDg3NTg1YmUwLCAweDViODFjNTFiKSwgVE9CTigweDkyNWJhZmE4LCAweGJlMDg1MmI3
KSwKKyAgICAgICAgICAgVE9CTigweDc2YTRmYWZkLCAweGE4NGQxOWE3KSwgVE9CTigweDM5YTQ1
OTgyLCAweDU4NTIwNmQ0KX19LAorICAgICAgICAge3tUT0JOKDB4NDk5YjZhYjYsIDB4NWViMDNj
MGUpLCBUT0JOKDB4ZjE5Yjc5NTQsIDB4NzJiYzNmZGUpLAorICAgICAgICAgICBUT0JOKDB4YTg2
YjViOWMsIDB4NmUzYTgwZDIpLCBUT0JOKDB4ZTQzNzc1MDgsIDB4NmQ0MjgxOWYpfSwKKyAgICAg
ICAgICB7VE9CTigweGMxNjYzNjUwLCAweGJiM2VlOGEzKSwgVE9CTigweDc1ZWIxNGZjLCAweGIx
MzIwNzVmKSwKKyAgICAgICAgICAgVE9CTigweGE4Y2NjOTA2LCAweDdhZDgzNGY2KSwgVE9CTigw
eGVhNmEyNDc0LCAweGU2ZTkyZmZkKX19LAorICAgICAgICAge3tUT0JOKDB4OWQ3MmZkOTUsIDB4
MGY4ZDY3NTgpLCBUT0JOKDB4Y2I4NGUxMDEsIDB4NDA4YzA3ZGQpLAorICAgICAgICAgICBUT0JO
KDB4YjkxMTRiZmQsIDB4YTVlMjMyMjEpLCBUT0JOKDB4MzU4YjVmZTIsIDB4ZTk0ZTc0MmMpfSwK
KyAgICAgICAgICB7VE9CTigweDFjMDU3N2VjLCAweDk1ZjQwZTc1KSwgVE9CTigweGYwMTU1NDUx
LCAweDNkNzNmM2Q2KSwKKyAgICAgICAgICAgVE9CTigweDlkNTVjZDY3LCAweGJkMWI5YjY2KSwg
VE9CTigweDYzZTg2ZTc4LCAweGFmOGQ2M2M3KX19LAorICAgICAgICAge3tUT0JOKDB4MzlkOTM0
YWIsIDB4ZDNjMDk1ZjEpLCBUT0JOKDB4MDRiMjYxYmUsIDB4ZTRiNzZkNzEpLAorICAgICAgICAg
ICBUT0JOKDB4MWQyZTY5NzAsIDB4ZTczZTY5ODQpLCBUT0JOKDB4ODc5ZmIyM2IsIDB4NWU1ZmNi
MTEpfSwKKyAgICAgICAgICB7VE9CTigweDExNTA2YzcyLCAweGRmZDc1NDkwKSwgVE9CTigweDNh
OTdkMDg1LCAweDYxYmNmMWMxKSwKKyAgICAgICAgICAgVE9CTigweDQzMjAxZDgyLCAweGJmNWU3
MDA3KSwgVE9CTigweDdmMGFjNTJmLCAweDc5ODIzMmE3KX19LAorICAgICAgICAge3tUT0JOKDB4
MjcxNWNiYzQsIDB4NmViNTY0ZDQpLCBUT0JOKDB4OGQ2Yzc1MmMsIDB4OWU1NzBlMjkpLAorICAg
ICAgICAgICBUT0JOKDB4ZjgwMjQ3YzgsIDB4OWVmNWZkNWQpLCBUT0JOKDB4YzNjNjZiNDYsIDB4
ZDUzZWI1MTQpfSwKKyAgICAgICAgICB7VE9CTigweDk2NjZiNDAxLCAweDBmODdkZTU2KSwgVE9C
TigweGNlNjJjMDZmLCAweGM2YzYwM2I1KSwKKyAgICAgICAgICAgVE9CTigweGFlN2I0YzYwLCAw
eDdlNGZjOTQyKSwgVE9CTigweDM4YWMwYjc3LCAweDY2M2E5YzE5KX19LAorICAgICAgICAge3tU
T0JOKDB4Y2I0ZDIwZWUsIDB4NGIwNDkxMzYpLCBUT0JOKDB4OGI2M2JmMTIsIDB4MzU2YTQ2MTMp
LAorICAgICAgICAgICBUT0JOKDB4MTIyMWFlZjYsIDB4NzBlMDgxMjgpLCBUT0JOKDB4ZTYyZDhj
NTEsIDB4NGFjYjZiMTYpfSwKKyAgICAgICAgICB7VE9CTigweDcxZjY0YTY3LCAweDM3OWU3ODk2
KSwgVE9CTigweGIyNTIzN2EyLCAweGNhZmQ3ZmE1KSwKKyAgICAgICAgICAgVE9CTigweGYwNzdi
ZDk4LCAweDM4NDFiYTZhKSwgVE9CTigweGM0YWMwMjQ0LCAweDNjZDE2ZTdlKX19LAorICAgICAg
ICAge3tUT0JOKDB4NTQ4YmE4NjksIDB4MjFmZWE0Y2EpLCBUT0JOKDB4ZDM2ZDA4MTcsIDB4ZjNk
ZmRhYzEpLAorICAgICAgICAgICBUT0JOKDB4MDlkOGQ3MWYsIDB4ZjQ2ODVmYWYpLCBUT0JOKDB4
OGVmZjY2YmUsIDB4YzUyYzQ1OWEpfSwKKyAgICAgICAgICB7VE9CTigweDE4MmZhZWU3LCAweDBi
NTcyMzVlKSwgVE9CTigweGVlM2MzOWIxLCAweDAxMDY3MTJiKSwKKyAgICAgICAgICAgVE9CTigw
eDUxMDczMzFmLCAweGMwZmNkY2IwKSwgVE9CTigweDY2OWZiOWRjLCAweGE1MTA1NGJhKX19LAor
ICAgICAgICAge3tUT0JOKDB4YjI1MTAxZmIsIDB4MzE5ZDc2ODIpLCBUT0JOKDB4YjAyOTMxMjks
IDB4MGE5ODJmZWUpLAorICAgICAgICAgICBUT0JOKDB4NTFjMWM5YjksIDB4MDI2MWIzNDQpLCBU
T0JOKDB4MGUwMDhjNWIsIDB4YmZkMzcxZmEpfSwKKyAgICAgICAgICB7VE9CTigweGQ4NjZkZDFj
LCAweDAyNzhjYTMzKSwgVE9CTigweDY2NmY3NmE2LCAweGU1YWE1M2IxKSwKKyAgICAgICAgICAg
VE9CTigweGU1Y2ZiNzc5LCAweDYwMTNhMmNmKSwgVE9CTigweDFkM2ExYWFkLCAweGEzNTIxODM2
KX19LAorICAgICAgICAge3tUT0JOKDB4Y2VkZDI1MzEsIDB4NzNmYWE0ODUpLCBUT0JOKDB4Yzhl
ZTZjNGYsIDB4YzBhNzY4NzgpLAorICAgICAgICAgICBUT0JOKDB4ZGRiY2NmYzksIDB4MmExMTY2
N2QpLCBUT0JOKDB4MWE0MThlYTksIDB4MWMyZjY5NWEpfSwKKyAgICAgICAgICB7VE9CTigweGRi
MTFiZDkyLCAweDUxZjczOTcxKSwgVE9CTigweDNlNGIzYzgyLCAweGRhMmVkODlmKSwKKyAgICAg
ICAgICAgVE9CTigweDlhNDRmM2Y0LCAweGU3M2UwMzE5KSwgVE9CTigweGQxZTNkZTBmLCAweDMw
MzQzMWFmKX19LAorICAgICAgICAge3tUT0JOKDB4M2M1NjA0ZmYsIDB4NTBmNzVmOWMpLCBUT0JO
KDB4MWQ4ZWRkZjMsIDB4N2U3NTJiMjIpLAorICAgICAgICAgICBUT0JOKDB4MGVmMDc0ZGQsIDB4
M2M5YTExMTgpLCBUT0JOKDB4ZDBmZmMxNzIsIDB4Y2NiODZkN2IpfSwKKyAgICAgICAgICB7VE9C
TigweGFiZDFlY2UzLCAweDAzN2Q5MGYyKSwgVE9CTigweGUzZjMwN2Q2LCAweDYwNTU4NTZjKSwK
KyAgICAgICAgICAgVE9CTigweDQyMmY5MzI4LCAweDdlNGM2ZGFmKSwgVE9CTigweDkwMmFhYzY2
LCAweDMzNDg3OWEwKX19LAorICAgICAgICAge3tUT0JOKDB4YjZhMWU3YmYsIDB4OTRjZGZhZGUp
LCBUT0JOKDB4NmM5N2UxZWQsIDB4N2ZjNmQ2MzQpLAorICAgICAgICAgICBUT0JOKDB4NjYyYWQy
NGQsIDB4YTJmYjYzZjgpLCBUT0JOKDB4ZjgxYmUxYjksIDB4YTU5Mjg0MDUpfSwKKyAgICAgICAg
ICB7VE9CTigweDg2ZDc2NWU0LCAweGQxNGI0MjA2KSwgVE9CTigweGJlY2MyZTBlLCAweDhmYTBk
YjY1KSwKKyAgICAgICAgICAgVE9CTigweGEyODgzOGUwLCAweGIxN2ZjNzZjKSwgVE9CTigweGU0
OWE2MDJhLCAweGUzN2NmMjRlKX19LAorICAgICAgICAge3tUT0JOKDB4NzZiNDEzMWEsIDB4NTY3
MTkzZWMpLCBUT0JOKDB4YWYzYzMwNWEsIDB4ZTVmNmU3MGIpLAorICAgICAgICAgICBUT0JOKDB4
OTU4N2JkMzksIDB4MDMxZWViZGQpLCBUT0JOKDB4NTcwOWRlZjgsIDB4NzFiYmU4MzEpfSwKKyAg
ICAgICAgICB7VE9CTigweDU3MDU5OTgzLCAweDBlYjJiNjY5KSwgVE9CTigweDRkODBjZTFiLCAw
eDg3NWI3MDI5KSwKKyAgICAgICAgICAgVE9CTigweDgzOGE3ZGE4LCAweDAzNjRhYzE2KSwgVE9C
TigweDJmNDMxZDIzLCAweGJlMWM4M2FiKX19LAorICAgICAgICAge3tUT0JOKDB4ZTU2ODEyYTYs
IDB4ZjkyOTRkZDMpLCBUT0JOKDB4YjQ0OGQwMWYsIDB4OWI0YjBkNzcpLAorICAgICAgICAgICBU
T0JOKDB4ZjNhZTYwNjEsIDB4MDRlODMwNWMpLCBUT0JOKDB4MmJlYWQ2NDUsIDB4OTRkOGM2M2Up
fSwKKyAgICAgICAgICB7VE9CTigweDBhODU0MzRkLCAweDg0ZmQ4YjA3KSwgVE9CTigweDUzN2I5
ODNmLCAweGY3YTlkZWU1KSwKKyAgICAgICAgICAgVE9CTigweGVkY2M1ZjE4LCAweGVmNTViZDg1
KSwgVE9CTigweDIwNDFhZjYyLCAweDIxYzZjZjhiKX19LAorICAgICAgICAge3tUT0JOKDB4OGU1
Mjg3NGMsIDB4Yjk0MGM3MWUpLCBUT0JOKDB4MjExOTM1YTksIDB4ZGI1ZjRiM2EpLAorICAgICAg
ICAgICBUT0JOKDB4OTQzNTA0OTIsIDB4MzAxYjFkYzMpLCBUT0JOKDB4MzNkMjY0NmQsIDB4Mjk5
NTg2MjApfSwKKyAgICAgICAgICB7VE9CTigweDE2YjBkNjRiLCAweGVmOTExNDA0KSwgVE9CTigw
eDlkMWYyNWVhLCAweDlhM2M1ZWY0KSwKKyAgICAgICAgICAgVE9CTigweDIwZjIwMGViLCAweDRh
MzUyYzc4KSwgVE9CTigweDQzOTI5ZjJjLCAweDRiZDBiNDI4KX19LAorICAgICAgICAge3tUT0JO
KDB4YTU2NTY2NjcsIDB4YzcxOTZlMjkpLCBUT0JOKDB4Nzk5MmMyZjAsIDB4OTM5MWJlNDgpLAor
ICAgICAgICAgICBUT0JOKDB4YWFhOTdjYmQsIDB4OWVlMGNkNmUpLCBUT0JOKDB4NTFiMDMxMGMs
IDB4M2RjOGM5YmYpfSwKKyAgICAgICAgICB7VE9CTigweDIzN2Y4YWNmLCAweGRkOWYyMmNiKSwg
VE9CTigweGJiMWQ4MWExLCAweGI1ODVkNTg0KSwKKyAgICAgICAgICAgVE9CTigweDhkNWQ4NWY1
LCAweDhjNDE2Mzg4KSwgVE9CTigweDBkNmU1YTVhLCAweDQyZmU0NzRmKX19LAorICAgICAgICAg
e3tUT0JOKDB4ZTc4MTI3NjYsIDB4MzgyMzVkNGUpLCBUT0JOKDB4MWM2MmJkNjcsIDB4NDk2ZTMy
OTgpLAorICAgICAgICAgICBUT0JOKDB4ODM3ODY2MGMsIDB4M2YxNzViYzgpLCBUT0JOKDB4NGQw
NGUxODksIDB4MTdhZmRkNGQpfSwKKyAgICAgICAgICB7VE9CTigweDMyYTgxNjAxLCAweDg1YTgw
NjhjKSwgVE9CTigweGRiNThlNGUxLCAweDkyYjI5YTg1KSwKKyAgICAgICAgICAgVE9CTigweGU4
YTY1Yjg2LCAweGM3MGQ4YTNiKSwgVE9CTigweDVmMGU2ZjRlLCAweDk4YTA0MDNiKX19LAorICAg
ICAgICAge3tUT0JOKDB4MDgxMjk2ODQsIDB4NjllZDIzNzApLCBUT0JOKDB4MzRkYzMwYmQsIDB4
MDg3MWVlMjYpLAorICAgICAgICAgICBUT0JOKDB4M2E1Y2U5NDgsIDB4N2M5YzViMDUpLCBUT0JO
KDB4N2Q0ODdiODAsIDB4NDNhOTBjODcpfSwKKyAgICAgICAgICB7VE9CTigweDQwODliYTM3LCAw
eGRkMGU3MTc5KSwgVE9CTigweDQ1ZjgwMTkxLCAweGI0MDQxODExKSwKKyAgICAgICAgICAgVE9C
TigweDFjM2UxMDU4LCAweDk4NzQ3YmE1KSwgVE9CTigweDk4YzRlMTNhLCAweDZlMWFlNTkyKX19
LAorICAgICAgICAge3tUT0JOKDB4ZDQ0NjM2ZTYsIDB4ZTgyYzlmOWUpLCBUT0JOKDB4NzExZGI4
N2MsIDB4YzMzYTEwNDMpLAorICAgICAgICAgICBUT0JOKDB4NmY0MzEyNjMsIDB4YWE4YWVjMDUp
LCBUT0JOKDB4NDNmZjEyMGQsIDB4Mjc0NGE0YWEpfSwKKyAgICAgICAgICB7VE9CTigweGQzYmQ4
OTJmLCAweGFlNzc3NzliKSwgVE9CTigweGYwZmUwY2M5LCAweDhjZGM5ZjgyKSwKKyAgICAgICAg
ICAgVE9CTigweGNhNWY3ZmU2LCAweGYxYzViMWJjKSwgVE9CTigweGNjNjNhNjgyLCAweDQ0OTI5
YTcyKX19LAorICAgICAgICAge3tUT0JOKDB4YzdlYWJhMGMsIDB4MDlkYmUxOWEpLCBUT0JOKDB4
MmYzNTg1YWQsIDB4NmI1YzczYzIpLAorICAgICAgICAgICBUT0JOKDB4OGFiODkyNGIsIDB4MGFl
NTBjMzApLCBUT0JOKDB4MTdmY2QyN2EsIDB4NjM4YjMwYmEpfSwKKyAgICAgICAgICB7VE9CTigw
eGFmNDE0ZDM0LCAweDEwYjNkNWE1KSwgVE9CTigweDA5YzEwN2QyLCAweDJhOWFjY2YxKSwKKyAg
ICAgICAgICAgVE9CTigweDE1ZGFjNDlmLCAweDk0NmE2MjQyKSwgVE9CTigweGFlYzNkZjJhLCAw
eGQ3MDdkNjQyKX19LAorICAgICAgICAge3tUT0JOKDB4MmMyNDkyYjcsIDB4M2Y4OTRhZTApLCBU
T0JOKDB4ZjU5ZGYzZTUsIDB4Yjc1ZjE4Y2UpLAorICAgICAgICAgICBUT0JOKDB4N2NiNzQwZDIs
IDB4OGY1M2NhZDApLCBUT0JOKDB4M2ViNTg1ZmIsIDB4YzRmMDEyOTQpfSwKKyAgICAgICAgICB7
VE9CTigweDE3ZGEwYzg2LCAweDMyYzdmNzE3KSwgVE9CTigweGViOGM3OTViLCAweGFmOTQzZjRj
KSwKKyAgICAgICAgICAgVE9CTigweDRlZTIzZmI1LCAweGY2N2M1MWQyKSwgVE9CTigweGVmMTg3
NTc1LCAweDY4ODg5OTQ5KX19LAorICAgICAgICAge3tUT0JOKDB4YTZiNGJkYjIsIDB4MDM4OTE2
OGIpLCBUT0JOKDB4YzRlY2QyNTgsIDB4ZWE1NzdkMDMpLAorICAgICAgICAgICBUT0JOKDB4M2E2
Mzc4MmIsIDB4NTU3NDMwODIpLCBUT0JOKDB4NmY2NzhmNGMsIDB4YzcyZjA4Y2QpfSwKKyAgICAg
ICAgICB7VE9CTigweDU1MzUxMWNmLCAweDY1ZTU4ZGQ4KSwgVE9CTigweGQ1M2I0ZTNlLCAweGQ0
MDJjMGNkKSwKKyAgICAgICAgICAgVE9CTigweDM3ZGUzZTI5LCAweGEwMzdjMTRjKSwgVE9CTigw
eDg2YjZjNTE2LCAweGMwNTcxMmFhKX19LAorICAgICAgICAge3tUT0JOKDB4MjgzNGRhM2UsIDB4
YjM4ZGZmNmYpLCBUT0JOKDB4YmUwMTJjNTIsIDB4ZWE2MzZiZTgpLAorICAgICAgICAgICBUT0JO
KDB4MjkyZDIzOGMsIDB4NjFkZDM3ZjgpLCBUT0JOKDB4MGU1NDUyM2YsIDB4OGY4MTQyZGIpfSwK
KyAgICAgICAgICB7VE9CTigweGUzMWViNDM2LCAweDAzNmEwNWQ4KSwgVE9CTigweDgzZTNjZGZm
LCAweDFlOTNjMGZmKSwKKyAgICAgICAgICAgVE9CTigweDNmZDJmZTBmLCAweDUwODIxZGRmKSwg
VE9CTigweGM4ZTE5YjBkLCAweGZmOWViMzNiKX19LAorICAgICAgICAge3tUT0JOKDB4YzhjYzk0
M2YsIDB4YjU2OWE1ZmUpLCBUT0JOKDB4YWQwMDkwZDQsIDB4ZDQzNDJkNzUpLAorICAgICAgICAg
ICBUT0JOKDB4ODIwOTBiNGIsIDB4Y2FlY2EwMDApLCBUT0JOKDB4Y2EzOTY4N2YsIDB4MWJkNDEw
ZWIpfSwKKyAgICAgICAgICB7VE9CTigweGU3YmIwZGY3LCAweDY1OTU5ZDc3KSwgVE9CTigweDM5
ZDc4MjE4LCAweDljOTY0OTk5KSwKKyAgICAgICAgICAgVE9CTigweGQ4N2Y2MmU4LCAweGIyNDE1
NDUxKSwgVE9CTigweGU1ZWZiNzc0LCAweGJlZDc2MTA4KX19LAorICAgICAgICAge3tUT0JOKDB4
M2VhMDExYTQsIDB4ZTgyMmYwZDApLCBUT0JOKDB4YmM2NDdhZDEsIDB4NWE4NzA0ZjgpLAorICAg
ICAgICAgICBUT0JOKDB4YmIzMTViMzUsIDB4NTBjNjgyMGYpLCBUT0JOKDB4ODYzZGVjM2QsIDB4
YjdlNzZiZWMpfSwKKyAgICAgICAgICB7VE9CTigweDAxZmY1ZDNhLCAweGYwMTdiZmM3KSwgVE9C
TigweDIwMDU0NDM5LCAweDk3NmI4MjI5KSwKKyAgICAgICAgICAgVE9CTigweDA2N2ZjYTM3LCAw
eDBiYmQwZDNiKSwgVE9CTigweGY2M2RkZTY0LCAweDdmNWUzZDBmKX19LAorICAgICAgICAge3tU
T0JOKDB4MjJkYmVmYjMsIDB4MmE0Yzk0ZTkpLCBUT0JOKDB4YWZiZmYwZmUsIDB4OTZmODI3OGEp
LAorICAgICAgICAgICBUT0JOKDB4ODBhZWEwYjEsIDB4MzUwMzc5M2QpLCBUT0JOKDB4YjIyMzgw
MjksIDB4NWYwNmNkMjkpfSwKKyAgICAgICAgICB7VE9CTigweDY1NzAzZTU3LCAweDhlYzNmZWNh
KSwgVE9CTigweDA2YzM4MzE0LCAweDM5M2U3MDUzKSwKKyAgICAgICAgICAgVE9CTigweGEwYjc1
MWViLCAweDdjNjczNGM0KSwgVE9CTigweGQyZThhNDM1LCAweGM1OWYwZjFlKX19LAorICAgICAg
ICAge3tUT0JOKDB4MTQ3ZDkwNTIsIDB4NWU5Y2E4OTUpLCBUT0JOKDB4MmY0ZGQzMWUsIDB4OTcy
MDcyZGYpLAorICAgICAgICAgICBUT0JOKDB4YTE2ZmRhOGUsIDB4ZTZjNjc1NWMpLCBUT0JOKDB4
YzY2ODI2ZmYsIDB4Y2YxOTY1NTgpfSwKKyAgICAgICAgICB7VE9CTigweDFmMWE3NmEzLCAweDBj
ZjQzODk1KSwgVE9CTigweGE5ZDYwNGUwLCAweDgzYzMwOTdiKSwKKyAgICAgICAgICAgVE9CTigw
eGUxOTA4MzA5LCAweDY2MzkwZTBlKSwgVE9CTigweGE1MGJmNzUzLCAweGIzYzg1ZWZmKX19LAor
ICAgICAgICAge3tUT0JOKDB4MDY5NmJkZGUsIDB4ZjZhNzAyNTEpLCBUT0JOKDB4NTQ4YjgwMWIs
IDB4M2M2YWIxNmEpLAorICAgICAgICAgICBUT0JOKDB4MzdmY2Y3MDQsIDB4YTRkMDg3NjIpLCBU
T0JOKDB4MDkwYjNkZWYsIDB4ZGZmNzZjNGUpfSwKKyAgICAgICAgICB7VE9CTigweDg3ZThjYjg5
LCAweDY5Y2I5MTU4KSwgVE9CTigweDQ0YTkwNzQ0LCAweDk5NWVjZTQzKSwKKyAgICAgICAgICAg
VE9CTigweGY4NTM5NWY0LCAweDBhZDlmYmY1KSwgVE9CTigweDQ5YjBmNmM1LCAweDRmYjBjODJk
KX19LAorICAgICAgICAge3tUT0JOKDB4NzVkOWJjMTUsIDB4YWRmN2NjY2YpLCBUT0JOKDB4ODFh
M2U1ZDYsIDB4ZGZhMWUxYjApLAorICAgICAgICAgICBUT0JOKDB4OGMzOWU0NDQsIDB4MjQ5YmMx
N2UpLCBUT0JOKDB4ZjM3ZGNjYjIsIDB4OGVhN2ZkNDMpfSwKKyAgICAgICAgICB7VE9CTigweGRh
NjU0ODczLCAweDkwN2ZiYTEyKSwgVE9CTigweDM1ZGFhNmRhLCAweDRhMzcyOTA0KSwKKyAgICAg
ICAgICAgVE9CTigweDA1NjRjZmM2LCAweDYyODNhNmM1KSwgVE9CTigweGQwOWZhNGY2LCAweDRh
OTM5NWJmKX19LAorICAgICAgICAge3tUT0JOKDB4Njg4ZTllYzksIDB4YWViMTlhMzYpLCBUT0JO
KDB4ZDkxM2YxY2UsIDB4YzdiZmJmYjQpLAorICAgICAgICAgICBUT0JOKDB4Nzk3YjlhM2MsIDB4
NjFjMmZhYTYpLCBUT0JOKDB4MmY5NzliZWMsIDB4NmEwYTljMTIpfSwKKyAgICAgICAgICB7VE9C
TigweGI1OTY5ZDBmLCAweDM1OTY3OWVjKSwgVE9CTigweGViY2Y1MjNkLCAweDA3OWIwNDYwKSwK
KyAgICAgICAgICAgVE9CTigweGZkNmIwMDA4LCAweDEwZmFiODcwKSwgVE9CTigweDNmMmVkY2Rh
LCAweDkzNzNhMzljKX19LAorICAgICAgICAge3tUT0JOKDB4MGQ2NGY5YTcsIDB4NmY1Njg0MzEp
LCBUT0JOKDB4Zjg0OGMyN2MsIDB4MDJmODg5OGMpLAorICAgICAgICAgICBUT0JOKDB4ZjQxOGFk
ZTEsIDB4MjYwYjViZDUpLCBUT0JOKDB4YzFmM2UzMjMsIDB4Njk3M2RlZTgpfSwKKyAgICAgICAg
ICB7VE9CTigweDQ2ZTkzMTljLCAweDI2YzE4NWRkKSwgVE9CTigweDZkODViN2Q4LCAweDU0NmYw
YWM0KSwKKyAgICAgICAgICAgVE9CTigweDQyNzk2NWYyLCAweDI0N2Y5ZDU3KSwgVE9CTigweGI1
MTliNjM2LCAweGIwMDM1ZjQ4KX19LAorICAgICAgICAge3tUT0JOKDB4NmI2MTYzYTksIDB4YWI4
N2Q1OWMpLCBUT0JOKDB4ZmY5ZjU4YzMsIDB4MzljYWFhMTEpLAorICAgICAgICAgICBUT0JOKDB4
NGFjMzljZGUsIDB4MzE3NzM4N2IpLCBUT0JOKDB4NWY2NTU3YzIsIDB4ODczZTc3ZjkpfSwKKyAg
ICAgICAgICB7VE9CTigweDY3NTA0MDA2LCAweDM2YTgzMDQxKSwgVE9CTigweDliMWM5NmNhLCAw
eDc1ZWYxOTZjKSwKKyAgICAgICAgICAgVE9CTigweGYzNDI4M2RlLCAweGIwOGM3OTQwKSwgVE9C
TigweDdlYTA5NjQ0LCAweDExMjhjMzE2KX19LAorICAgICAgICAge3tUT0JOKDB4YjUxMGIzYjUs
IDB4NmFhMzlkZmYpLCBUT0JOKDB4NTliNDNkYTIsIDB4OWY4ZTRkOGMpLAorICAgICAgICAgICBU
T0JOKDB4YThjZTMxZmQsIDB4OWU0YzRiOWYpLCBUT0JOKDB4MGUyMGJlMjYsIDB4YzEzMDNjMDEp
fSwKKyAgICAgICAgICB7VE9CTigweDE4MTg3MTgyLCAweGU4ZWU0N2M5KSwgVE9CTigweGQ5Njg3
Y2RiLCAweDdkYjk4MTAxKSwKKyAgICAgICAgICAgVE9CTigweDdhNTIwZTRkLCAweGExZTE0ZmY2
KSwgVE9CTigweDQyOTgwOGJhLCAweDg4MzZkNTcyKX19LAorICAgICAgICAge3tUT0JOKDB4YTM3
Y2E2MGQsIDB4NDk0NGI2NjMpLCBUT0JOKDB4ZjkwMWY3YTksIDB4YTNmOTFhZTUpLAorICAgICAg
ICAgICBUT0JOKDB4ZTRlM2U3NmUsIDB4OWUzNmUzYjEpLCBUT0JOKDB4OWFhMjE5Y2YsIDB4Mjlk
OTMyNTApfSwKKyAgICAgICAgICB7VE9CTigweDM0N2ZlMjc1LCAweDA1NmEyNTEyKSwgVE9CTigw
eGE0ZDY0M2Q5LCAweGRlNjVkOTVjKSwKKyAgICAgICAgICAgVE9CTigweDk2NjlkMzk2LCAweDY5
OWZjM2VkKSwgVE9CTigweGI1OThkZWUyLCAweGNmOGM2YmJlKX19LAorICAgICAgICAge3tUT0JO
KDB4NjgyYWMxZTUsIDB4ZGRhOWU1YzYpLCBUT0JOKDB4NGUwZDNjNzIsIDB4Y2FhOWZjOTUpLAor
ICAgICAgICAgICBUT0JOKDB4MTdmYWFhZGUsIDB4NzcyYmVhNDQpLCBUT0JOKDB4NWVmODQyOGMs
IDB4YWIwMDA5YzgpfSwKKyAgICAgICAgICB7VE9CTigweGNjNGNlNDdhLCAweDQ2MGZmMDE2KSwg
VE9CTigweGRhNmQxMmJmLCAweDcyNTI4MWNiKSwKKyAgICAgICAgICAgVE9CTigweDQ0YzY3ODQ4
LCAweDAyMjNhYWQyKSwgVE9CTigweDZlMzQyYWZhLCAweDM2MjU2ZTI4KX19LAorICAgICAgICAg
e3tUT0JOKDB4MTQwMGJiMGIsIDB4OTNhMzdjMDQpLCBUT0JOKDB4NjJiMWJjOWIsIDB4ZGQxMGJk
OTYpLAorICAgICAgICAgICBUT0JOKDB4NzI1MWFkZWIsIDB4MGRhYzQ2YjcpLCBUT0JOKDB4N2Qz
M2I5MmUsIDB4N2JlNGVmNTEpfSwKKyAgICAgICAgICB7VE9CTigweDI4YjJhOTRiLCAweGU2MWZh
MjlhKSwgVE9CTigweDRiMmJlMTNmLCAweDA2NDIyMjMzKSwKKyAgICAgICAgICAgVE9CTigweDM2
ZDZkMDYyLCAweDMzMGQ4ZDM3KSwgVE9CTigweDVlZjgwZTFlLCAweGIyOGNhMDA1KX19LAorICAg
ICAgICAge3tUT0JOKDB4MTc0ZDQ2OTksIDB4NmQxNjc2OGUpLCBUT0JOKDB4OWZjNGZmNmEsIDB4
NjI4YmYyMTcpLAorICAgICAgICAgICBUT0JOKDB4Nzc3MDVhOTQsIDB4MTU0ZTQ5MGQpLCBUT0JO
KDB4OWQ5NmRkMjgsIDB4OGQyZDk5N2EpfSwKKyAgICAgICAgICB7VE9CTigweDc3ZTJkOWQ4LCAw
eGNlNWQ3MmM0KSwgVE9CTigweDlkMDZjNWE0LCAweGMxMWM3MTRmKSwKKyAgICAgICAgICAgVE9C
TigweDAyYWE1MTM2LCAweDc5ZTRhMDNlKSwgVE9CTigweDEzODZiM2MyLCAweDAzMGZmMjhiKX19
LAorICAgICAgICAge3tUT0JOKDB4ZmU4MmU4YTYsIDB4ZmIyODNmNjEpLCBUT0JOKDB4N2RmMjAz
ZTUsIDB4ZjNhYmMzZmIpLAorICAgICAgICAgICBUT0JOKDB4ZWVjN2MzNTEsIDB4M2E0ZDM2MjIp
LCBUT0JOKDB4ZjdkMTdkYmYsIDB4ZGY3NjI3NjEpfSwKKyAgICAgICAgICB7VE9CTigweGMzOTU2
ZTQ0LCAweDUyMjA1NWYwKSwgVE9CTigweGRlMzAxMmRiLCAweDhmYTc0OGRiKSwKKyAgICAgICAg
ICAgVE9CTigweGNhOWZjYjYzLCAweGJmMWRjYzE0KSwgVE9CTigweGE1NmQ5ZGNmLCAweGJlNGUy
ZjNhKX19LAorICAgICAgICAge3tUT0JOKDB4Yjg2MTg2YjYsIDB4OGJjZWM5YzIpLCBUT0JOKDB4
N2NmMjRkZjksIDB4NjgwYjlmMDYpLAorICAgICAgICAgICBUT0JOKDB4YzQ2YjQ1ZWEsIDB4YzBk
MjkyODEpLCBUT0JOKDB4ZmZmNDJiYzUsIDB4MDdiMTBlMTIpfSwKKyAgICAgICAgICB7VE9CTigw
eDEyMjYzYzQwLCAweDRkMjg5NDI3KSwgVE9CTigweDNkNWYxODk5LCAweGI0ODQ4ZWM0KSwKKyAg
ICAgICAgICAgVE9CTigweDExZjk3MDEwLCAweGQwNDA4MDBjKSwgVE9CTigweGI0YzVmNTI5LCAw
eDMwMGZlYjIwKX19LAorICAgICAgICAge3tUT0JOKDB4Y2M1NDNmOGYsIDB4ZGU5NGZkY2IpLCBU
T0JOKDB4ZTk2YWY3MzksIDB4YzdjMmYwNWUpLAorICAgICAgICAgICBUT0JOKDB4YWE1ZTAwMzYs
IDB4ODgyNjkyZTEpLCBUT0JOKDB4MDljNzViNjgsIDB4OTUwZDRhZTkpfSwKKyAgICAgICAgICB7
VE9CTigweDYyZjYzZGYyLCAweGI1OTMyYTdhKSwgVE9CTigweDI2NTgyNTJlLCAweGRlMDk3OWFk
KSwKKyAgICAgICAgICAgVE9CTigweDJhMTkzNDNmLCAweGI1ZTY5NjMxKSwgVE9CTigweDcxOGM3
NTAxLCAweDUyNWI2NjZiKX19LAorICAgICAgICAge3tUT0JOKDB4MjZhNDJkNjksIDB4ZWE0MGRj
M2EpLCBUT0JOKDB4ZGM4NGFkMjIsIDB4YWVjYzAxOGYpLAorICAgICAgICAgICBUT0JOKDB4MjVj
MzZjN2IsIDB4MzI3MGYwNGEpLCBUT0JOKDB4NDZiYTZkNDcsIDB4NTBmYTcyZWQpfSwKKyAgICAg
ICAgICB7VE9CTigweDZjMzdkMWM1LCAweDkzZTU4YThlKSwgVE9CTigweGEyMzk0NzMxLCAweDEy
MGMwODhjKSwKKyAgICAgICAgICAgVE9CTigweGMzYmU0MjYzLCAweGNiNmU4NmRhKSwgVE9CTigw
eDJjNDE3ZDM2LCAweDcxMjZkMDM4KX19LAorICAgICAgICAge3tUT0JOKDB4NWI3MGY5YzUsIDB4
OGI2ZjhlZmEpLCBUT0JOKDB4NjcxYTJmYWEsIDB4Mzc3MTg1MzYpLAorICAgICAgICAgICBUT0JO
KDB4ZDNjZWQzYzYsIDB4YjUzOWM5MmIpLCBUT0JOKDB4ZTU2ZjFiZDksIDB4YTMxMjAzYzIpfSwK
KyAgICAgICAgICB7VE9CTigweDhiMDk2ZWM0LCAweDlmZjNjOGViKSwgVE9CTigweDJkZWFlNDMy
LCAweDQzNDkxY2VhKSwKKyAgICAgICAgICAgVE9CTigweDI0NjVjNmViLCAweDE3OTQzNzk0KSwg
VE9CTigweDVkMjY3ZTY2LCAweDIwNTg2ODQzKX19LAorICAgICAgICAge3tUT0JOKDB4OWQzZDEx
NmQsIDB4YjA3MTU5ZDApLCBUT0JOKDB4YWUwN2E2N2YsIDB4YzE4OTYyMTApLAorICAgICAgICAg
ICBUT0JOKDB4OGZjODRkODcsIDB4YmI5NjE1NzkpLCBUT0JOKDB4MzAwMDllNDksIDB4MWMxZjhk
ZDYpfSwKKyAgICAgICAgICB7VE9CTigweDhhOGNhZjIyLCAweGUzMTMyODE5KSwgVE9CTigweGNm
ZmExOTdjLCAweGYyM2FiNGZmKSwKKyAgICAgICAgICAgVE9CTigweDU4MTAzYTQ0LCAweDIwNWRk
Njg3KSwgVE9CTigweDU3Yjc5NmMzLCAweDBkZWQ2N2EyKX19LAorICAgICAgICAge3tUT0JOKDB4
MGI5YzNhNmMsIDB4YTE3NzlhZDcpLCBUT0JOKDB4YTMzY2ZlMmUsIDB4MzU3YzA5YzUpLAorICAg
ICAgICAgICBUT0JOKDB4MmVhMjkzMTUsIDB4M2RiNGE1N2UpLCBUT0JOKDB4OTE5NTk2OTUsIDB4
OGViZWI1MmUpfSwKKyAgICAgICAgICB7VE9CTigweDExOGRiOWE2LCAweGU1NDZjODc5KSwgVE9C
TigweDhlOTk2ZGY0LCAweDYyOTVjOGQ2KSwKKyAgICAgICAgICAgVE9CTigweGRkOTkwNDg0LCAw
eDU1ZWM4MDZiKSwgVE9CTigweDI0ZjI5MWNhLCAweDE2NWMxMDM1KX19LAorICAgICAgICAge3tU
T0JOKDB4Y2NhNTIzYmIsIDB4NDQwZTIyMjkpLCBUT0JOKDB4MzI0NjczYTIsIDB4NzNlZjRkMDQp
LAorICAgICAgICAgICBUT0JOKDB4YWYzYWRmMzQsIDB4M2UxMWVjMzkpLCBUT0JOKDB4NjEzNmQ3
ZjEsIDB4ZGM1OTY4ZDMpfSwKKyAgICAgICAgICB7VE9CTigweDdhN2IyODk5LCAweGIwNTNhOTI3
KSwgVE9CTigweDNlYWEyNjYxLCAweGFlMDY3ZWNkKSwKKyAgICAgICAgICAgVE9CTigweDg1NDli
OWM4LCAweDAyNzc5Y2Q5KSwgVE9CTigweDA2MWQ3OTQwLCAweGM1MzM4NWVhKX19LAorICAgICAg
ICAge3tUT0JOKDB4M2UwYmE4ODMsIDB4ZjA2ZDE4YmQpLCBUT0JOKDB4NGJhNmRlNTMsIDB4YjI3
MDA4NDMpLAorICAgICAgICAgICBUT0JOKDB4Yjk2NmI2NjgsIDB4NTkxYTllNGQpLCBUT0JOKDB4
OTNmNjc1NjcsIDB4N2Y0ZmEwZWQpfSwKKyAgICAgICAgICB7VE9CTigweDVhMDI3MTFiLCAweDQz
NDcyMzdiKSwgVE9CTigweGJjMDQxZTJmLCAweGU3OTQ2MDhlKSwKKyAgICAgICAgICAgVE9CTigw
eDU1YWYxMGY1LCAweDcwZjczZDhjKSwgVE9CTigweGQyZDRkNGY3LCAweGJiNzU2NGY3KX19LAor
ICAgICAgICAge3tUT0JOKDB4ZDdkMjdhODksIDB4YjNlOTNjZTcpLCBUT0JOKDB4ZjdiNWE4NzUs
IDB4NWQzYTJjMWIpLAorICAgICAgICAgICBUT0JOKDB4YjI5ZTY4YTAsIDB4MjU1YjIxOGEpLCBU
T0JOKDB4YjUzMzgzN2UsIDB4OGFmNzY3NTQpfSwKKyAgICAgICAgICB7VE9CTigweGQxYjA1YTcz
LCAweDU3OWZhYjJlKSwgVE9CTigweGI0MTA1NWExLCAweGVjZDc0Mzg1KSwKKyAgICAgICAgICAg
VE9CTigweGIyMzY5Mjc0LCAweDQ0NWU5MTE1KSwgVE9CTigweDI5NzJhN2M0LCAweGY1MjAyNzRl
KX19LAorICAgICAgICAge3tUT0JOKDB4NmMwODMzNGUsIDB4ZjY3OGU2OGEpLCBUT0JOKDB4NGU0
MTYwZjAsIDB4OTliMDU3ZWQpLAorICAgICAgICAgICBUT0JOKDB4M2NmZTExYjgsIDB4NTJjY2I2
OWEpLCBUT0JOKDB4MmZkMTgyM2EsIDB4MjFjOGY3NzIpfSwKKyAgICAgICAgICB7VE9CTigweGRm
N2YwNzJmLCAweDMyOThmMDU1KSwgVE9CTigweDhjMDU2NmY5LCAweGZlYzc0YTZlKSwKKyAgICAg
ICAgICAgVE9CTigweGU1NDllMDE5LCAweDViYjRkMDQxKSwgVE9CTigweDdjMzkzMGJhLCAweDky
MDhkODUwKX19LAorICAgICAgICAge3tUT0JOKDB4ZTA3MTQxZmMsIDB4YWFhMjkwMmIpLCBUT0JO
KDB4NTM5YWQ3OTksIDB4ZTRmNjlhZDMpLAorICAgICAgICAgICBUT0JOKDB4YTY0NTNmOTQsIDB4
ODEzZjlmZmQpLCBUT0JOKDB4YzU4ZDNjNDgsIDB4Mzc1YmMyZjcpfSwKKyAgICAgICAgICB7VE9C
TigweGIzMzI2ZmFkLCAweDVkYzY0ZTk2KSwgVE9CTigweDNhYWZjYWE5LCAweGIyNDBlMzU0KSwK
KyAgICAgICAgICAgVE9CTigweDFkMWIwOTAzLCAweGFjYTFlN2E5KSwgVE9CTigweDRjZWI5NzY3
LCAweDEyMTFiOGEwKX19LAorICAgICAgICAge3tUT0JOKDB4ZWNhODNlNDksIDB4ZTMyYTg1OGUp
LCBUT0JOKDB4NGMzMjg5MmUsIDB4YWU5MDdiYWQpLAorICAgICAgICAgICBUT0JOKDB4ZDViNDJh
YjYsIDB4MmViOWI0OTQpLCBUT0JOKDB4N2ZkZTNlZTIsIDB4MWVhYmFlMWIpfSwKKyAgICAgICAg
ICB7VE9CTigweDEzYjVhYjA5LCAweGNhZjU0OTU3KSwgVE9CTigweGJmYjAyOGJlLCAweGU1ZjVk
NWQ1KSwKKyAgICAgICAgICAgVE9CTigweDkyOGEwNjUwLCAweDIwMDNlMmMwKSwgVE9CTigweDkw
NzkzYWFjLCAweDY3NDc2ODQzKX19LAorICAgICAgICAge3tUT0JOKDB4NWU5NDJlNzksIDB4Yzgx
NzEwYTApLCBUT0JOKDB4NTU3ZTRhMzYsIDB4MjdjY2FkZDQpLAorICAgICAgICAgICBUT0JOKDB4
NzJhMmJjNTYsIDB4NGJjZjZkMGMpLCBUT0JOKDB4MDllZTVmNDMsIDB4MjZkN2I4MGMpfSwKKyAg
ICAgICAgICB7VE9CTigweDZiNzBkYmU5LCAweGQ0MjkyZjE5KSwgVE9CTigweDU2Zjc0YzI2LCAw
eDYzZjE2YjE4KSwKKyAgICAgICAgICAgVE9CTigweGMyM2RiMGY3LCAweDM1ZmJiNDJhKSwgVE9C
TigweGI2MDZiZGY2LCAweDZhZTEwMDQwKX19LAorICAgICAgICAge3tUT0JOKDB4MWViMTVkNGQs
IDB4MDQ0NTczYWMpLCBUT0JOKDB4N2RjM2NmODYsIDB4NTU2YjBiYTQpLAorICAgICAgICAgICBU
T0JOKDB4OTdhZjlhMzMsIDB4YzYwZGY2ZjcpLCBUT0JOKDB4MGIxZWY4NWMsIDB4YTcxNmNlOGMp
fSwKKyAgICAgICAgICB7VE9CTigweDI5MjJmODg0LCAweGM5Njk1OGJlKSwgVE9CTigweDdjMzJm
YTk0LCAweDM1NjkwOTYzKSwKKyAgICAgICAgICAgVE9CTigweDJkN2Y2NjdjLCAweGVhYTAwMDYx
KSwgVE9CTigweGVhYWY3YzE3LCAweDM1NDczNjVjKX19LAorICAgICAgICAge3tUT0JOKDB4MWVi
NGRlNDYsIDB4ODcwMzJkNTgpLCBUT0JOKDB4YzU0ZjNkODMsIDB4NWUyYzc5ZTApLAorICAgICAg
ICAgICBUT0JOKDB4MDc4MThkZjQsIDB4NWQwNGVmMjMpLCBUT0JOKDB4NTVmYWE5YzgsIDB4Njcz
ZDQxYjQpfSwKKyAgICAgICAgICB7VE9CTigweGNlZDY0ZjZmLCAweDg5Yjk1MzU1KSwgVE9CTigw
eDQ4NjBkMmVhLCAweGI3NDE1Yzg0KSwKKyAgICAgICAgICAgVE9CTigweDVmZGI5YmQyLCAweDA1
MGViYWQzKSwgVE9CTigweGRiNTNlMGNjLCAweDY2ODVhNWJmKX19LAorICAgICAgICAge3tUT0JO
KDB4YjgzMGMwMzEsIDB4OWZlYjY1OTMpLCBUT0JOKDB4ZGQ4N2YzMTAsIDB4NmFjY2ZmMTcpLAor
ICAgICAgICAgICBUT0JOKDB4MjMwM2ViYWIsIDB4OWY1NTVjMTApLCBUT0JOKDB4OTQ2MDM2OTUs
IDB4Mjg3ZTcwNjUpfSwKKyAgICAgICAgICB7VE9CTigweGY4ODMxMWMzLCAweDJlODMzNThjKSwg
VE9CTigweDUwOGRkOWI0LCAweGVlZmIwMTc4KSwKKyAgICAgICAgICAgVE9CTigweDdjYTIzNzA2
LCAweDJkYmE4NjUyKSwgVE9CTigweDYyYWFjNWEzLCAweDAwNDdhYmU1KX19LAorICAgICAgICAg
e3tUT0JOKDB4OWE2MWQyYTAsIDB4OGIxZWE3YjMpLCBUT0JOKDB4ZDQ5NWFiNjMsIDB4YWU4YjE0
ODUpLAorICAgICAgICAgICBUT0JOKDB4Mzg3NDBmODQsIDB4ODcwNTJmOTkpLCBUT0JOKDB4MTc4
ZWJlNWIsIDB4YjI5NzRlZWEpfSwKKyAgICAgICAgICB7VE9CTigweDAzMGJiY2NhLCAweDViMzZk
MTdmKSwgVE9CTigweGI1ZTRjY2UzLCAweGFhZjg2ZWVhKSwKKyAgICAgICAgICAgVE9CTigweGI1
MWEwMjIwLCAweDY4ZjhlOWUwKSwgVE9CTigweGE0MzQ4Nzk2LCAweDA5ZWIzZTc1KX19LAorICAg
ICAgICAge3tUT0JOKDB4YmU1OTIzMDksIDB4ZWVmMWE3NTIpLCBUT0JOKDB4NWQ3MTYyZDcsIDB4
NmYyYWExZWQpLAorICAgICAgICAgICBUT0JOKDB4YWViZmI1ZWQsIDB4MGYwMDdkZDIpLCBUT0JO
KDB4MjU1ZTE0YjIsIDB4Yzg5ZWRkMjIpfSwKKyAgICAgICAgICB7VE9CTigweGJhODVlMDcyLCAw
eDAzMDNiNjk3KSwgVE9CTigweGM1ZDE3ZTI1LCAweGYwNTcyMGZmKSwKKyAgICAgICAgICAgVE9C
TigweDAyYjU4ZDZlLCAweDUxMjhlYmI2KSwgVE9CTigweDJjODAyNDJkLCAweGQ3NTRlMTEzKX19
LAorICAgICAgICAge3tUT0JOKDB4OTE5ZmNhNWYsIDB4YWJmYWUxY2EpLCBUT0JOKDB4OTM3YWZh
YWMsIDB4MWEyMTQ1OWIpLAorICAgICAgICAgICBUT0JOKDB4OWUwY2E5MWMsIDB4MWY2NmE0ZDIp
LCBUT0JOKDB4MTk0Y2M3ZjMsIDB4MjNlYzEzMzEpfSwKKyAgICAgICAgICB7VE9CTigweGFkMjUx
NDNhLCAweDhhYTExNjkwKSwgVE9CTigweGJlNDBhZDhkLCAweDA5YjU5ZTA4KSwKKyAgICAgICAg
ICAgVE9CTigweDM3ZDYwZDliLCAweGU3NTA4NjBhKSwgVE9CTigweDZjNTNiMDA4LCAweGM2YmY0
MzRjKX19LAorICAgICAgICAge3tUT0JOKDB4YjU3MjQxNWQsIDB4MTM1NmViODApLCBUT0JOKDB4
YjhiZjlkYTMsIDB4OTU3OGRlZDgpLAorICAgICAgICAgICBUT0JOKDB4MjI2NThlMzYsIDB4NWU4
ZmIzOGIpLCBUT0JOKDB4OWI3MGNlMjIsIDB4NWFmOGNiMjIpfSwKKyAgICAgICAgICB7VE9CTigw
eDdjMDAwMThhLCAweDgyOWE4MTgwKSwgVE9CTigweDg0MzI5ZjkzLCAweGI4MWVkMjk1KSwKKyAg
ICAgICAgICAgVE9CTigweDdjMzQzZWEyLCAweDVmM2NlYTgzKSwgVE9CTigweDM4Zjg2NTVmLCAw
eDY3NTg2NTM2KX19LAorICAgICAgICAge3tUT0JOKDB4YTY2MWEwZDAsIDB4MWQzZWM1MTcpLCBU
T0JOKDB4OTg3NDQ2NTIsIDB4NTEyMzIxYWUpLAorICAgICAgICAgICBUT0JOKDB4MDg0Y2E1OTEs
IDB4ZWNhOTI1OTgpLCBUT0JOKDB4YTliYjlkYzksIDB4MWRjYjNmZWIpfSwKKyAgICAgICAgICB7
VE9CTigweDE0YzU0MzU1LCAweDc4YjRjMjQwKSwgVE9CTigweDVlZDYyYTNiLCAweDYxMGNhZmRj
KSwKKyAgICAgICAgICAgVE9CTigweDA3NTEyZjM3LCAweDFiMzg4NDZiKSwgVE9CTigweDU3MWJi
NzBhLCAweGIwZTM4MTYxKX19LAorICAgICAgICAge3tUT0JOKDB4YjU1NmI5NWIsIDB4MmRhNzA1
ZDIpLCBUT0JOKDB4M2VmOGFkYTYsIDB4YjFhMDhmOTgpLAorICAgICAgICAgICBUT0JOKDB4ODUz
MDJjYTcsIDB4ZGRlY2ZiZTUpLCBUT0JOKDB4MGU1MzA1NzMsIDB4OTQzMTA1Y2QpfSwKKyAgICAg
ICAgICB7VE9CTigweDYwNTU0ZDU1LCAweDIxYTkyNTVkKSwgVE9CTigweDYzYTMyZmExLCAweGYy
ZjM4MDJhKSwKKyAgICAgICAgICAgVE9CTigweDM1YzhjNWIwLCAweGNkNDc3ODc1KSwgVE9CTigw
eDk3ZjQ1OGVhLCAweDZhZDQyZGExKX19LAorICAgICAgICAge3tUT0JOKDB4ODMyZDcwODAsIDB4
ZWI2YjI0MmQpLCBUT0JOKDB4ZDMwYmQwMjMsIDB4M2I3MWUyNDYpLAorICAgICAgICAgICBUT0JO
KDB4NzAyNzk5MWIsIDB4YmUzMTEzOWQpLCBUT0JOKDB4Njg3OTdlOTEsIDB4NDYyZTRlNTMpfSwK
KyAgICAgICAgICB7VE9CTigweDQyM2ZlMjBhLCAweDZiNGUxODVhKSwgVE9CTigweDgyZjJjNjdl
LCAweDQyZDliNzA3KSwKKyAgICAgICAgICAgVE9CTigweDI1YzgxNzY4LCAweDRjZjc4MTFiKSwg
VE9CTigweGJkNTMwMDVlLCAweDA0NWJiOTVkKX19fSwKKyAgICAgICAge3t7VE9CTigweGU1ZjY0
OWJlLCAweDlkOGU2OGZkKSwgVE9CTigweGRiMGYwNTMzLCAweDFiMDQ0MzIwKSwKKyAgICAgICAg
ICAgVE9CTigweGY2ZmRlOWIzLCAweGUwYzMzMzk4KSwgVE9CTigweDkyZjQyMDliLCAweDY2Yzhj
ZmFlKX0sCisgICAgICAgICAge1RPQk4oMHhlOWQxYWZjYywgMHgxYTczOWQ0YiksIFRPQk4oMHgw
OWFlYTc1ZiwgMHhhMjhhYjhkZSksCisgICAgICAgICAgIFRPQk4oMHgxNDM3NWZiNSwgMHhlYWM2
ZjFkMCksIFRPQk4oMHg2NDIwYjU2MCwgMHg3MDhmN2FhNSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDllYWU0OTljLCAweDYyNTRkYzQxKSwgVE9CTigweDdlMjkzOTI0LCAweDdhODM3ZTdlKSwKKyAg
ICAgICAgICAgVE9CTigweDc0YWVjMDhjLCAweDA5MDUyNGE3KSwgVE9CTigweGY4MmI5MjE5LCAw
eDhkNmY1NWYyKX0sCisgICAgICAgICAge1RPQk4oMHg0OTNjOTYyZSwgMHgxNDAyY2VjNSksIFRP
Qk4oMHg5ZjE3Y2ExNywgMHhmYTJmMzBlNyksCisgICAgICAgICAgIFRPQk4oMHhiY2Q3ODNlOCwg
MHhlOWI4NzljYiksIFRPQk4oMHhlYTNkOGMxNCwgMHg1YTZmMTQ1Zil9fSwKKyAgICAgICAgIHt7
VE9CTigweGRlZGUxNWU3LCAweDVlMGRlZTZlKSwgVE9CTigweDc0ZjI0ODcyLCAweGRjNjI4YWEy
KSwKKyAgICAgICAgICAgVE9CTigweGQzZTljNGZlLCAweDc4NjFiYjkzKSwgVE9CTigweDU2ZDQ4
MjJhLCAweDYxODdiMmUwKX0sCisgICAgICAgICAge1RPQk4oMHhiNjY0MTdjZiwgMHhjNTk4MjZm
OSksIFRPQk4oMHhjYTI2MDk2OSwgMHgyNDA4MTY5ZSksCisgICAgICAgICAgIFRPQk4oMHhlZGY2
OWQwNiwgMHhjNzllZjg4NSksIFRPQk4oMHgwMDAzMWY4YSwgMHhkYzdkMTM4Zil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDEwM2M0NmU2LCAweDBlYmNmNzI2KSwgVE9CTigweDQ0ODJiODMxLCAweDYy
MzE0NzBlKSwKKyAgICAgICAgICAgVE9CTigweDZmNmRmYWNhLCAweDQ4N2MyMTA5KSwgVE9CTigw
eDJlMGFjZTk3LCAweDYyZTY2NmVmKX0sCisgICAgICAgICAge1RPQk4oMHgzMjQ2YTlkMywgMHgx
ZjhkMWY0MiksIFRPQk4oMHgxYjFlODNmMSwgMHg1NzQ5NDRkMiksCisgICAgICAgICAgIFRPQk4o
MHgxM2RmYTYzYSwgMHhhNTdmMzM0YiksIFRPQk4oMHgwY2Y4ZGFlZCwgMHg5ZjAyNWQ4MSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDMwZDc4ZWE4LCAweDAwZWUxMWMxKSwgVE9CTigweGViMDUzY2Q0
LCAweGI1ZTNkZDc1KSwKKyAgICAgICAgICAgVE9CTigweDliNjViMTNlLCAweGQ1OGM0M2M1KSwg
VE9CTigweGMzYWQ0OWJkLCAweGJkMTUxNjYzKX0sCisgICAgICAgICAge1RPQk4oMHg5OWZkOGU0
MSwgMHhiNjQyNzk5MCksIFRPQk4oMHgxMmNmMTViZCwgMHg3MDdlYWUxZSksCisgICAgICAgICAg
IFRPQk4oMHgyOWFkNGYxYiwgMHgxYWFiYjcxZSksIFRPQk4oMHg1MTQzZTc0ZCwgMHgwNzU0NWQw
ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDMwMjY2MzM2LCAweGM4OGJkZWUxKSwgVE9CTigweDI1
ZjI5MzA2LCAweDU4NzY3NjdjKSwKKyAgICAgICAgICAgVE9CTigweDljMDc4NTcxLCAweGM2NzMx
OTk2KSwgVE9CTigweGM4ODY5MGIyLCAweGVkNTUyOTUxKX0sCisgICAgICAgICAge1RPQk4oMHgy
NzRmMmMyZCwgMHg4NTI3MDViNCksIFRPQk4oMHhiMGJmOGQ0NCwgMHg0ZTA5NTUyZCksCisgICAg
ICAgICAgIFRPQk4oMHg3NjI4YmVlYiwgMHg5ODY1NzVkMSksIFRPQk4oMHg0MDdiZTIzOCwgMHg3
Zjg2NDY1MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDBlNWUzMDQ5LCAweGE2MzlmYzZiKSwgVE9C
TigweGU3NWMzNWQ5LCAweDg2MDAzNjI1KSwKKyAgICAgICAgICAgVE9CTigweDBjZjM1YmQ4LCAw
eDVkY2MxNjQ2KSwgVE9CTigweDhiY2FjZWQyLCAweDZjMjYyNzNhKX0sCisgICAgICAgICAge1RP
Qk4oMHhlMjJlY2YxZCwgMHhiNTUzNjc0MiksIFRPQk4oMHgwMTNkZDg5NywgMHgxYTllMDY4Yiks
CisgICAgICAgICAgIFRPQk4oMHgxN2Y0MTFjYiwgMHg4YTc5MDljNSksIFRPQk4oMHg1NzU3YWM5
OCwgMHg4NjFkZDUwNil9fSwKKyAgICAgICAgIHt7VE9CTigweDg1ZGUxZjBkLCAweDFlOTM1YWJi
KSwgVE9CTigweGRlZmQxMGI0LCAweDE1NGRlMzdhKSwKKyAgICAgICAgICAgVE9CTigweGI4ZDll
MzkyLCAweDM2OWNlYmI1KSwgVE9CTigweDU0ZDVlZjliLCAweDc2MTMyNGJlKX0sCisgICAgICAg
ICAge1RPQk4oMHg0ZDYzNDFiYSwgMHg3NGYxN2UyNiksIFRPQk4oMHhjMGEwZTNjOCwgMHg3OGMx
ZGRlNCksCisgICAgICAgICAgIFRPQk4oMHhhNmQ3NzU4MSwgMHg4N2Q5MThmZCksIFRPQk4oMHg2
Njg3NjAxNSwgMHgwMmNhM2ExMyl9fSwKKyAgICAgICAgIHt7VE9CTigweGM3MzEzZTljLCAweGYz
NjY1OGYwKSwgVE9CTigweGM0MzNlZjFjLCAweDcxZjgwNTdlKSwKKyAgICAgICAgICAgVE9CTigw
eDg1MzI2MjQ2LCAweDFiNmE4MzVhKSwgVE9CTigweGM4ZjA1Mzk4LCAweDdjODYzOTRjKX0sCisg
ICAgICAgICAge1RPQk4oMHhmZjM5OGNkZiwgMHhlOTgzYzRhMSksIFRPQk4oMHhiZjVlODE2Miwg
MHgwM2I3YjkzMSksCisgICAgICAgICAgIFRPQk4oMHg5MzE5M2M0NiwgMHhiN2I5MDQ1YiksIFRP
Qk4oMHgxZTRlYmY1ZCwgMHhhNGE2ZTQ2Yil9fSwKKyAgICAgICAgIHt7VE9CTigweGY5OTQyYTYw
LCAweDQzYTI0ZmU3KSwgVE9CTigweDI5YzExOTFlLCAweGZmYjM0OTJiKSwKKyAgICAgICAgICAg
VE9CTigweDlmNjYyNDQ5LCAweDkwMmZkZTA1KSwgVE9CTigweGM3OTJhN2FjLCAweDY3MTNjMzJk
KX0sCisgICAgICAgICAge1RPQk4oMHgyZmQ4OGFkOCwgMHhiNzM3OTgyYyksIFRPQk4oMHg3ZTNh
MDMxOSwgMHhhMjFlNjBlMyksCisgICAgICAgICAgIFRPQk4oMHgwOWIwZGU0NCwgMHg3MzgzNTkx
YSksIFRPQk4oMHg2ZGYxNDFlZSwgMHg4MzEwYTQ1Nil9fSwKKyAgICAgICAgIHt7VE9CTigweGFl
YzFhMDM5LCAweGU2ZDZmNDcxKSwgVE9CTigweDE0YjJiYTBmLCAweDExOThkMTJlKSwKKyAgICAg
ICAgICAgVE9CTigweGViYzFhMTYwLCAweDNhZWVlNWFjKSwgVE9CTigweDQwMWY0ODM2LCAweGUw
Yjk2NGNlKX0sCisgICAgICAgICAge1RPQk4oMHgyZWU0Mzc5NiwgMHg0ZmQwM2Y2NiksIFRPQk4o
MHgzZmRiNGU0OSwgMHhkZDhmM2YxMiksCisgICAgICAgICAgIFRPQk4oMHg2ZWYyNjdmNiwgMHgy
OTM4MGYxOCksIFRPQk4oMHgzZThlOTY3MCwgMHg4ZGE2NGQxNil9fSwKKyAgICAgICAgIHt7VE9C
TigweGJjMTkxODBjLCAweDIwNzY3NGYxKSwgVE9CTigweDExMmUwOWE3LCAweDMzYWU4ZmRiKSwK
KyAgICAgICAgICAgVE9CTigweDk5NjY3NTU0LCAweDZhYWViNzFlKSwgVE9CTigweDc5NDMyYWYx
LCAweGUxMDFiMWM3KX0sCisgICAgICAgICAge1RPQk4oMHhkNWViNTU4ZiwgMHhkZTJkZGVjNiks
IFRPQk4oMHg4MTM5MmQxZiwgMHg1MzU3NzUzZiksCisgICAgICAgICAgIFRPQk4oMHhhN2E3NmI5
NywgMHgzYWUxMTU4YSksIFRPQk4oMHg0MTZmYmJmZiwgMHg0YTg5OTk5MSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDllNjVmZGZkLCAweDBkNGE5ZGNmKSwgVE9CTigweDdiYzI5ZTQ4LCAweDk0NGRk
ZjEyKSwKKyAgICAgICAgICAgVE9CTigweGJjMWE5MmQ5LCAweDNjODU2ODY2KSwgVE9CTigweDI3
M2M2OTA1LCAweDZlOThkZmUyKX0sCisgICAgICAgICAge1RPQk4oMHg2OWZjZTQxOCwgMHhjZGZh
YTZiOCksIFRPQk4oMHg2MDZiZDgyMywgMHg1MDYxYzY5ZiksCisgICAgICAgICAgIFRPQk4oMHg0
MmQ0OTVhMCwgMHg2YWY3NWUyNyksIFRPQk4oMHg4ZWQzZDUwNSwgMHg2ZDg3M2ExZil9fSwKKyAg
ICAgICAgIHt7VE9CTigweGFmNTUyODQxLCAweDZhYjI1YjZhKSwgVE9CTigweGM2YzBmZmM3LCAw
eDJiMWE0NTIzKSwKKyAgICAgICAgICAgVE9CTigweGFiMTg4MjdiLCAweDIxYzk5ZTAzKSwgVE9C
TigweDA2MGU4NjQ4LCAweDkwMzQ2OTFiKX0sCisgICAgICAgICAge1RPQk4oMHg1MjA3ZjkwZiwg
MHg5M2M3ZjM5OCksIFRPQk4oMHg5ZjRhOTZjYiwgMHg4MmY4ZDEwYiksCisgICAgICAgICAgIFRP
Qk4oMHhkZDcxY2Q3OSwgMHgzYWQwZjllMyksIFRPQk4oMHg4NGY0MzVkMiwgMHhmYzNhNTRmNSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDRiMDNjNTViLCAweDhlMzM3ODdmKSwgVE9CTigweGVmNDJm
OTc1LCAweGE2Mzg0NjczKSwKKyAgICAgICAgICAgVE9CTigweGZmNzMwNGY3LCAweDUwNTFiOWYw
KSwgVE9CTigweDE4YWNhMWRjLCAweDc0MWM4N2MyKX0sCisgICAgICAgICAge1RPQk4oMHg1NmYx
MjBhNywgMHgyZDRiZmU4MCksIFRPQk4oMHhmZDgyM2IzZCwgMHgwNTNlNzMyYyksCisgICAgICAg
ICAgIFRPQk4oMHgxMWJjY2ZlNCwgMHg3NTM3Y2ExNiksIFRPQk4oMHhkZjZjOWM3NCwgMHgxYjVh
OTk2Yil9fSwKKyAgICAgICAgIHt7VE9CTigweGVlNzMzMmM3LCAweDkwNGZjM2ZhKSwgVE9CTigw
eDE0YTIzZjQ1LCAweGM3ZTM2MzZhKSwKKyAgICAgICAgICAgVE9CTigweGMzODY1OWMzLCAweGYw
OTFkOWFhKSwgVE9CTigweDRhOTk1ZTVkLCAweGIxMmQ4NTQwKX0sCisgICAgICAgICAge1RPQk4o
MHgyMGE1M2JlYywgMHhmM2E1NTk4YSksIFRPQk4oMHg1NjUzNGIxNywgMHhiMWVhYTk5NSksCisg
ICAgICAgICAgIFRPQk4oMHg5ZWQzZGNhNCwgMHhiZjA0ZTAzYyksIFRPQk4oMHg3MTZjNTYzYSwg
MHhkOGQ1NjI2OCl9fSwKKyAgICAgICAgIHt7VE9CTigweDI3YmE3N2E0LCAweDFkNjE3OGU3KSwg
VE9CTigweGU0YzgwYzQwLCAweDY4YTFmZjhlKSwKKyAgICAgICAgICAgVE9CTigweDc1MDExMDk5
LCAweDBhMTNmNjNkKSwgVE9CTigweDdiZjMzNTIxLCAweGE2MWQ0NmYzKX0sCisgICAgICAgICAg
e1RPQk4oMHgwYWZmMjE4ZSwgMHgxMGIzNjViYiksIFRPQk4oMHg4MTAyMTgwNCwgMHgwZmQ3ZWE3
NSksCisgICAgICAgICAgIFRPQk4oMHgwNWEzZmQ4YSwgMHhhNGIzYTkyNSksIFRPQk4oMHhiODI5
ZTc1ZiwgMHg5YjNkYjRlNil9fSwKKyAgICAgICAgIHt7VE9CTigweDZiZGM3NWE1LCAweDRkNTNl
NWZiKSwgVE9CTigweDA0YTVkYzAyLCAweGQ1MjcxN2UzKSwKKyAgICAgICAgICAgVE9CTigweDg2
YWY1MDJmLCAweGU5YTQyZWMyKSwgVE9CTigweDg4NjdlOGZiLCAweDI2MzBlMzgyKX0sCisgICAg
ICAgICAge1RPQk4oMHhiZjg0NWM2ZSwgMHhiZWM5ODg5YiksIFRPQk4oMHg1NGY0OTFmMiwgMHhj
YjQ3Yzk4ZCksCisgICAgICAgICAgIFRPQk4oMHhhMzA5MWZiYSwgMHg3OTBjMmExMiksIFRPQk4o
MHhkN2Y2ZmQ3OCwgMHhjMjBmNzA4Yil9fSwKKyAgICAgICAgIHt7VE9CTigweGE1NjlhYzMwLCAw
eGFjZGU1ZTE3KSwgVE9CTigweGQwZjk5NmQwLCAweDY4NTJiNGQ3KSwKKyAgICAgICAgICAgVE9C
TigweGU1MWQ0YmI1LCAweDQ2MDlhZTU0KSwgVE9CTigweDNmYTM3ZDE3LCAweDBkYWVkMDYxKX0s
CisgICAgICAgICAge1RPQk4oMHg2MmE4ODY4NCwgMHgzNGI4ZmI0MSksIFRPQk4oMHg5OWEyYWNi
ZCwgMHg5ZWZiNjRmMSksCisgICAgICAgICAgIFRPQk4oMHhiNzVjMWE1ZSwgMHg2NDQ4ZTFmMiks
IFRPQk4oMHhmYTk5OTUxYSwgMHg0MmI1YTA2OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDZkOTU2
ZTg5LCAweDJmM2IyNmU3KSwgVE9CTigweGY0NzA5ODYwLCAweGRhODc1MjQ3KSwKKyAgICAgICAg
ICAgVE9CTigweDNhZDE1MTc5LCAweDI0ODJkZGEzKSwgVE9CTigweGQ2NDExMGUzLCAweDAxN2Q4
MmYwKX0sCisgICAgICAgICAge1RPQk4oMHgxNDkyOGQyYywgMHhmYWQ0MTRlNCksIFRPQk4oMHgy
YjE1NWY1OCwgMHgyZWQwMmIyNCksCisgICAgICAgICAgIFRPQk4oMHg0ODFhMTQxYiwgMHhjYjgy
MWJmMSksIFRPQk4oMHgxMmUzYzc3MCwgMHg0ZjgxZjVkYSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGU0OWM1ZGU1LCAweDlmZmY4MzgxKSwgVE9CTigweDExMDUzMjMyLCAweDViYmVjODk0KSwKKyAg
ICAgICAgICAgVE9CTigweGEwZDA1MWNjLCAweDQ1NGQ4OGM0KSwgVE9CTigweDRmNmRiODljLCAw
eDFmOGU1MzFiKX0sCisgICAgICAgICAge1RPQk4oMHgzNGZlM2ZkNiwgMHhjYTU2M2E0NCksIFRP
Qk4oMHg3ZjVjMjIxNSwgMHg1OGRhOGFiOSksCisgICAgICAgICAgIFRPQk4oMHg4NDQ1MDE2ZCwg
MHg5NDc0ZjBhMSksIFRPQk4oMHgxN2QzNGQ2MSwgMHhjYjdkOGEwYSl9fSwKKyAgICAgICAgIHt7
VE9CTigweDhlOWQzOTEwLCAweDFjNDc0MDE5KSwgVE9CTigweGNhZmYyNjI5LCAweGQ1MmNlZWZi
KSwKKyAgICAgICAgICAgVE9CTigweGY5Y2YzZTMyLCAweGMxNjIyYzJiKSwgVE9CTigweGQ0Yjk1
ZTNjLCAweGU5MDcxYTA1KX0sCisgICAgICAgICAge1RPQk4oMHhmYmJjYTYxZiwgMHgxNTk0NDM4
YyksIFRPQk4oMHgxZWI2ZTZhNiwgMHgwNGFhZGVkZiksCisgICAgICAgICAgIFRPQk4oMHg4NTMw
MjdmNCwgMHg2OGUxNDk0MCksIFRPQk4oMHgyMjFkMzIyYSwgMHhkZmFiZGE5Yyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGVkOGVhOWY2LCAweGI3Y2IxNzlhKSwgVE9CTigweGRjN2I3NjRkLCAweGI3
OTM0ZGNjKSwKKyAgICAgICAgICAgVE9CTigweGZjYjEzOTQwLCAweDVlMDkxODBkKSwgVE9CTigw
eDY2MjlhNmJmLCAweGI0N2RjMmRkKX0sCisgICAgICAgICAge1RPQk4oMHhiZmM1NWU0ZSwgMHg5
ZjVhOTE1ZSksIFRPQk4oMHhiMWRiOWQzNywgMHg2MjA0NDQxZSksCisgICAgICAgICAgIFRPQk4o
MHhmODJkNjhjZiwgMHg5MzBjNWY1MyksIFRPQk4oMHgxN2QzYTE0MiwgMHhjYmI2MDViMSl9fSwK
KyAgICAgICAgIHt7VE9CTigweGRkNTk0NGVhLCAweDMwODc4MGYyKSwgVE9CTigweGRjOGRlNzYx
LCAweDM4NDVmNWU0KSwKKyAgICAgICAgICAgVE9CTigweDZiZWFiYTdkLCAweDc2MjRkN2EzKSwg
VE9CTigweDFlNzA5YWZkLCAweDMwNGRmMTFlKX0sCisgICAgICAgICAge1RPQk4oMHg5NTM2NDM3
NiwgMHgwMjE3MDQ1NiksIFRPQk4oMHhiZjIwNGIzYSwgMHhjOGY5NGI2NCksCisgICAgICAgICAg
IFRPQk4oMHg0ZTUzYWY3YywgMHg1NjgwY2E2OCksIFRPQk4oMHgwNTI2MDc0YSwgMHhlMGM2NzU3
NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk1ZDhjZWY4LCAweGVjZDkyYWY2KSwgVE9CTigweGU2
YjlmYTdhLCAweDZjZDE3NDVhKSwKKyAgICAgICAgICAgVE9CTigweDNkNTQ2ZDNkLCAweGEzMjVj
M2U0KSwgVE9CTigweDFmNTc2OTFkLCAweDlhZTkzYWFlKX0sCisgICAgICAgICAge1RPQk4oMHhl
ODkxZjNmZSwgMHg5ZDJlMWEzMyksIFRPQk4oMHhkNDMwMDkzZiwgMHhhYzA2M2QzNSksCisgICAg
ICAgICAgIFRPQk4oMHhlZGE1OWIxMiwgMHg1NTEzYTMyNyksIFRPQk4oMHhkYzIxMzRmMywgMHg1
NTM2ZjE4Zil9fSwKKyAgICAgICAgIHt7VE9CTigweGFhNTFmZTJjLCAweDVjMjEwMjg2KSwgVE9C
TigweDNmNjhhYWVlLCAweDFjYWI2NThjKSwKKyAgICAgICAgICAgVE9CTigweDVhMjNhMDBiLCAw
eGY5MzU3MjkyKSwgVE9CTigweDlhNjI2ZjM5LCAweDdlZmRhYmVkKX0sCisgICAgICAgICAge1RP
Qk4oMHhmZTJiM2JmMywgMHgxOTlkNzhlMyksIFRPQk4oMHhiN2EyYWY3NywgMHg3MWJiYzM0NSks
CisgICAgICAgICAgIFRPQk4oMHgzZDE5ODI3YSwgMHgxZTU5ODAyYyksIFRPQk4oMHg4MjNiYmMx
NSwgMHhiNDg3YTUxYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDg1NjEzOWYyLCAweDk5ZDBhNDIy
KSwgVE9CTigweDlhYzNkZjY1LCAweGY0NTZjNmZiKSwKKyAgICAgICAgICAgVE9CTigweGFkZGY2
NWM2LCAweDcwMWY4YmQ2KSwgVE9CTigweDE0OWYzMjFlLCAweDM3NThkZjg3KX0sCisgICAgICAg
ICAge1RPQk4oMHhiMWVjZjcxNCwgMHg3MjFiN2ViYSksIFRPQk4oMHhlMTdkZjA5OCwgMHgzMWEz
MzEyYSksCisgICAgICAgICAgIFRPQk4oMHhkYjJmZDZlYywgMHhkNWM0ZDU4MSksIFRPQk4oMHhm
ZDAyOTk2ZiwgMHg4ZmNlYTFiMyl9fSwKKyAgICAgICAgIHt7VE9CTigweGUyOWZhNjNlLCAweDc4
ODJmMTRmKSwgVE9CTigweGM5ZjZkYzM1LCAweDA3YzZjYWRjKSwKKyAgICAgICAgICAgVE9CTigw
eDQ2ZjIyZDZmLCAweGI4ODJiZWQwKSwgVE9CTigweDFhNDU3NTViLCAweGQxMThlNTJjKX0sCisg
ICAgICAgICAge1RPQk4oMHg5ZjJjN2MyNywgMHg3YzQ2MDhjZiksIFRPQk4oMHg3Y2NiZGYzMiwg
MHg1NjgwMTJjMiksCisgICAgICAgICAgIFRPQk4oMHhmY2IwYWVkZCwgMHg2MTcyOWIwZSksIFRP
Qk4oMHg3Y2EyY2E5ZSwgMHhmN2Q3NWRiZil9fSwKKyAgICAgICAgIHt7VE9CTigweGY1OGZlY2Ix
LCAweDZmNjQwZjYyKSwgVE9CTigweGUyNzRiOTJiLCAweDM5ZjUxOTQ2KSwKKyAgICAgICAgICAg
VE9CTigweDdmNGRmYzA0LCAweDYyODhhZjQ0KSwgVE9CTigweDBhOTFmMzJhLCAweGVhYzMyOWU1
KX0sCisgICAgICAgICAge1RPQk4oMHg0M2FkMjc0YiwgMHhkNmFhYmEzMSksIFRPQk4oMHg3MTlh
MTY0MCwgMHgwZjY4ODRmOSksCisgICAgICAgICAgIFRPQk4oMHg2ODVkMjlmNiwgMHhkYWY5MWUy
MCksIFRPQk4oMHg1ZWMxY2MzMywgMHgyN2U0OWQ1Mil9fSwKKyAgICAgICAgIHt7VE9CTigweDM4
ZjRkZTk2LCAweDNiNTRhMDU5KSwgVE9CTigweDBlMDAxNWU1LCAweGVmYmNmZGIzKSwKKyAgICAg
ICAgICAgVE9CTigweDE3N2QyM2Q5LCAweDRkYmI4ZGE2KSwgVE9CTigweDk4NzI0YWEyLCAweDk3
YTYxN2FkKX0sCisgICAgICAgICAge1RPQk4oMHgzMGYwODg1YiwgMHhmZGI2NTU4ZSksIFRPQk4o
MHhmOWY3YTI4YSwgMHhjNzg5OWE5NiksCisgICAgICAgICAgIFRPQk4oMHhkMmFlOGFjOCwgMHg4
NzJkYzExMiksIFRPQk4oMHhmYTA2NDJjYSwgMHg3M2MzYzQ1OSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDE1Mjk2OTgxLCAweGU3ZGZjOGQ2KSwgVE9CTigweDY3Y2Q0NDUwLCAweDFmYjViOTRhKSwK
KyAgICAgICAgICAgVE9CTigweDBlYzcxY2YxLCAweDBlZGRmZDM3KSwgVE9CTigweGM3ZTVlZWIz
LCAweDlhOGVkZGM3KX0sCisgICAgICAgICAge1RPQk4oMHgwMmFjOGUzZCwgMHg4MWQ5NTAyOCks
IFRPQk4oMHgwMDg4ZjE3MiwgMHg3MGIwZTM1ZCksCisgICAgICAgICAgIFRPQk4oMHhlYzA0MWZh
YiwgMHhlMTg4MWZlMyksIFRPQk4oMHg2MmNmNzFiOCwgMHhkOTllN2ZhYSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDUwNDNkZWE3LCAweGUwZjIyMmMyKSwgVE9CTigweDMwOWQ0MmFjLCAweDcyZTY1
MTQyKSwKKyAgICAgICAgICAgVE9CTigweDk0ZmU5ZGRkLCAweDkyMTZjZDMwKSwgVE9CTigweGQ2
NTM5YzdkLCAweDBmODdmZWVjKX0sCisgICAgICAgICAge1RPQk4oMHgwM2M1YTU3YywgMHg0MzJh
YzdkNyksIFRPQk4oMHg3MjY5MmNmMCwgMHgzMjdmZGExMCksCisgICAgICAgICAgIFRPQk4oMHhl
YzI4Yzg1ZiwgMHgyODA2OThkZSksIFRPQk4oMHgyMzMxZmI0NiwgMHg3ZWMyODNiMSl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGQzNGJmYTMyLCAweDI4NjdlNjMzKSwgVE9CTigweDc4NzA5YTgyLCAw
eDBhOWNjODE1KSwKKyAgICAgICAgICAgVE9CTigweGI3ZmU2OTY0LCAweDg3NWUyZmE1KSwgVE9C
TigweDI1Y2MwNjRmLCAweDllOThiZmI1KX0sCisgICAgICAgICAge1RPQk4oMHg5ZWIwMTUxYywg
MHg0OTNhNjVjNSksIFRPQk4oMHg1ZmI1ZDk0MSwgMHg1MzE4MjQ2NCksCisgICAgICAgICAgIFRP
Qk4oMHg2OWU2ZjEzMCwgMHhmMDQ2MThlMiksIFRPQk4oMHhhOGVjZWMyMiwgMHhmODljOGFiNil9
fSwKKyAgICAgICAgIHt7VE9CTigweGNkNmFjODhiLCAweGI5NjIwOWJkKSwgVE9CTigweDY1ZmE4
Y2RiLCAweGIzZTFjOWUwKSwKKyAgICAgICAgICAgVE9CTigweGE0N2QyMmY1LCAweDRhOGQ4ZWFj
KSwgVE9CTigweDgzODk1Y2RmLCAweDhkMzNmOTYzKX0sCisgICAgICAgICAge1RPQk4oMHhhOGFk
Y2E1OSwgMHhiNTZjZDNkMSksIFRPQk4oMHgxMGM4MzUwYiwgMHhkYWYzODIzMiksCisgICAgICAg
ICAgIFRPQk4oMHgyYjE2MWZiMywgMHhhNTA4MGE5ZiksIFRPQk4oMHhiZTdmNWM2NCwgMHgzYWY2
NWIzYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDJjNzU0MDM5LCAweDk3NDAzYTExKSwgVE9CTigw
eDk0NjI2Y2Y3LCAweDEyMWI5NmFmKSwKKyAgICAgICAgICAgVE9CTigweDQzMWRlN2M0LCAweDZh
OTgzZWMyKSwgVE9CTigweDM3ODBkZDNhLCAweDUyY2MzZGY3KX0sCisgICAgICAgICAge1RPQk4o
MHhlMjhhMGU0NiwgMHgyYmFmOGUzYiksIFRPQk4oMHhhYmU2OGFhZCwgMHg1MWQyOTlhZSksCisg
ICAgICAgICAgIFRPQk4oMHg2MDNlYjhmOSwgMHg2NDdhMjQwOCksIFRPQk4oMHgxNGM2MWVkNiwg
MHg1Yzc1MDk4MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDg4YjM0NDE0LCAweGM1MzM1MmU3KSwg
VE9CTigweDVhMzQ4ODljLCAweDEzMzdkNDZlKSwKKyAgICAgICAgICAgVE9CTigweDYxMmMxNTYw
LCAweGY5NWYyYmM4KSwgVE9CTigweDhhM2Y4NDQxLCAweGQ0ODA3YTNhKX0sCisgICAgICAgICAg
e1RPQk4oMHg2ODBkOWU5NywgMHg1MjI0ZGE2OCksIFRPQk4oMHg2MGNkNmU4OCwgMHhjM2ViMDBl
OSksCisgICAgICAgICAgIFRPQk4oMHgzODc1YTk4ZSwgMHg5YTZiYzM3NSksIFRPQk4oMHhkYzgw
ZjkyNCwgMHg0ZmQ1NTRjMil9fSwKKyAgICAgICAgIHt7VE9CTigweDZjNGIzNDE1LCAweDZhYzc3
NDA3KSwgVE9CTigweGExZTVlYThmLCAweDI1NDIwNjgxKSwKKyAgICAgICAgICAgVE9CTigweDU0
MWJmYTE0LCAweDQ2MDdhNDU4KSwgVE9CTigweDVkYmM3ZTdhLCAweDk2ZDdmYmY5KX0sCisgICAg
ICAgICAge1RPQk4oMHg2NDZhODUxYiwgMHgzMTU5MGE0NyksIFRPQk4oMHgwMzllODViYSwgMHgx
NWVlNmRmOCksCisgICAgICAgICAgIFRPQk4oMHhkMTlmYTIzMSwgMHhkN2I0M2ZjMCksIFRPQk4o
MHg4NGJjOGJlOCwgMHgyOTlhMGUwNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDJiOWQyOTM2LCAw
eGYyMGRmMDNhKSwgVE9CTigweDI0MDU0MzgyLCAweDg2MDhkNDcyKSwKKyAgICAgICAgICAgVE9C
TigweDc2YjZiYTA0LCAweDkxNDkyMDJhKSwgVE9CTigweGIyMWMzODMxLCAweDM2NzBlN2I3KX0s
CisgICAgICAgICAge1RPQk4oMHhkZGQ5MzA1OSwgMHhkNmZkZWUxMCksIFRPQk4oMHg5ZGE0N2Fk
MywgMHg3ODQ4OGU3MSksCisgICAgICAgICAgIFRPQk4oMHg5OWNjMWRmZCwgMHhhMGZjZmIyNSks
IFRPQk4oMHg0MmFiZGUxMCwgMHg2NDY5Njk1NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDE0Y2Mx
NWZjLCAweDE3ZWFiOWZlKSwgVE9CTigweGQ2ZTg2M2U0LCAweGQzZTcwOTcyKSwKKyAgICAgICAg
ICAgVE9CTigweDI5YTc3NjVjLCAweDY0MzIxMTJjKSwgVE9CTigweDg4NjYwMDAxLCAweDViMDc3
NGQ4KX0sCisgICAgICAgICAge1RPQk4oMHgzNzI5MTc1YSwgMHgyYzA4OGVhZSksIFRPQk4oMHgx
M2FmYmNhZSwgMHg4MjMwYjhkNCksCisgICAgICAgICAgIFRPQk4oMHg0NDc2ODE1MSwgMHg5MTVm
NDM3OSksIFRPQk4oMHhmMDg2NDMxYSwgMHhkOGQyMjgxMil9fSwKKyAgICAgICAgIHt7VE9CTigw
eDM3NDYxOTU1LCAweGMyOThiOTc0KSwgVE9CTigweDkwNWZiNWYwLCAweGY4NzExZTA0KSwKKyAg
ICAgICAgICAgVE9CTigweDc4N2FiZjNhLCAweGZlOTY5ZDE4KSwgVE9CTigweDM5MjE2N2MyLCAw
eDZmNmE0OTRlKX0sCisgICAgICAgICAge1RPQk4oMHhmYzdhMGQyZCwgMHgyOGM1MTFkYSksIFRP
Qk4oMHhmMTI3YzdkYywgMHhiNjZhMjYyZCksCisgICAgICAgICAgIFRPQk4oMHhmOWM0YmI5NSwg
MHhmZDYzZmRmMCksIFRPQk4oMHg5MDAxNjU4OSwgMHgzOTEzZWY0Nil9fSwKKyAgICAgICAgIHt7
VE9CTigweDc0ZDJhNzNjLCAweDExYWE2MDBkKSwgVE9CTigweDJmNTM3OWJkLCAweDlmYjVhYjUy
KSwKKyAgICAgICAgICAgVE9CTigweGU0OWU1M2E0LCAweDdmYjcwMDY4KSwgVE9CTigweDY4ZGQz
OWU1LCAweDQwNGFhOWE3KX0sCisgICAgICAgICAge1RPQk4oMHhiOWIwY2Y1NywgMHgyZWNhYTlj
MyksIFRPQk4oMHhiYTBlMTAzYiwgMHhlODI0ODI2YiksCisgICAgICAgICAgIFRPQk4oMHg2MGMy
MTk4YiwgMHg0NjMxYTNjNCksIFRPQk4oMHhjNWZmODRhYiwgMHhmYTg5NjZhMil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDJkNmViZTIyLCAweGFjOTVhZmY4KSwgVE9CTigweDFjOWJiNmRiLCAweGI1
YTQ2ZDA5KSwKKyAgICAgICAgICAgVE9CTigweDQxOTA2MmRhLCAweDUzZWU0ZjhkKSwgVE9CTigw
eDdiOTA0MmQwLCAweGJiOTdlZmVmKX0sCisgICAgICAgICAge1RPQk4oMHgwZjg3ZjA4MCwgMHg4
MzBjZjZiZCksIFRPQk4oMHg0ODYxZDE5YSwgMHg2ZWM4YTZjNiksCisgICAgICAgICAgIFRPQk4o
MHhkM2EwZGFhMSwgMHgyMDJmMDFhYSksIFRPQk4oMHhiMDExMTY3NCwgMHhmMjVhZmJkNSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDZkMDBkNmNmLCAweDFhZmIyMGQ5KSwgVE9CTigweDEzNjk1MDAw
LCAweDQwNjcxYmM1KSwKKyAgICAgICAgICAgVE9CTigweDkxM2FiMGRjLCAweDI0ODVlYTliKSwg
VE9CTigweDFmMmJlZDA2LCAweDllZWY2MWFjKX0sCisgICAgICAgICAge1RPQk4oMHg4NTBjODIx
NywgMHg2ZDc5OWUyMCksIFRPQk4oMHg5MzQxNWYzNywgMHgzMjcxYzJkZSksCisgICAgICAgICAg
IFRPQk4oMHg1YWZiMDZlOSwgMHg2YzRmNTkxMCksIFRPQk4oMHg2ODhhNTJkZiwgMHhjNGU5ZTQy
MSl9fSwKKyAgICAgICAgIHt7VE9CTigweDMwNDk1YmEzLCAweGUyYTlhNmRiKSwgVE9CTigweDQ2
MDEzMDNkLCAweDU4ZjkyNjhiKSwKKyAgICAgICAgICAgVE9CTigweGJlM2IwZGFkLCAweDdlYjBm
MDRmKSwgVE9CTigweDRlYTQ3MjUwLCAweDQ0NTY5MzZkKX0sCisgICAgICAgICAge1RPQk4oMHg4
Y2FmODc5OCwgMHhkMzNmZDNlNyksIFRPQk4oMHgxY2NkOGE4OSwgMHhlYjQzMzcwOCksCisgICAg
ICAgICAgIFRPQk4oMHg5ZWZmZTNlOCwgMHg4N2ZkNTBhZCksIFRPQk4oMHhiZTI0MGE1NiwgMHg2
YjI5YzRkZil9fSwKKyAgICAgICAgIHt7VE9CTigweGVjNGZmZDk4LCAweGNhMGU3ZWJkKSwgVE9C
TigweGY1ODY3ODNhLCAweGU3NDg2MTZlKSwKKyAgICAgICAgICAgVE9CTigweGE1YjAwZDhmLCAw
eGM3N2JhYTk5KSwgVE9CTigweDBhY2FkYTI5LCAweGI0ZjM0YzljKX0sCisgICAgICAgICAge1RP
Qk4oMHgzNmRhZDY3ZCwgMHgwZmU3MjNhYyksIFRPQk4oMHgxZDhlNTNhNSwgMHgzOWMzNmMxZSks
CisgICAgICAgICAgIFRPQk4oMHhlNGRkMzQyZCwgMHgxZjRiZWE0MSksIFRPQk4oMHg2NGZkNWUz
NSwgMHhlYmM5ZTRlMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk2ZjAxZjkwLCAweDU3OTA4ODA1
KSwgVE9CTigweGI1YjllYTNkLCAweDVlZDQ4MGRkKSwKKyAgICAgICAgICAgVE9CTigweDM2NmM1
ZGMyLCAweDNlZmQyZGQwKSwgVE9CTigweGVkMmZlMzA1LCAweDZlOWRmYTI3KX0sCisgICAgICAg
ICAge1RPQk4oMHg0NTc1ZTg5MiwgMHg2ZTkxOTdlMiksIFRPQk4oMHgxMTcxOWMwOSwgMHhhYjUw
MmE1ZCksCisgICAgICAgICAgIFRPQk4oMHgyNjRjN2JlYywgMHhlODFmMjEzZiksIFRPQk4oMHg3
NDFiOTI0MSwgMHg1NWY1YzQ1Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDc4YWM3YjY4LCAweDQ5
YTVmNGY0KSwgVE9CTigweGY5MWQ3MGEyLCAweDlmYzQ1YjdkKSwKKyAgICAgICAgICAgVE9CTigw
eDM5YjA1NTQ0LCAweGIwZjVmMzU1KSwgVE9CTigweDExZjA2YmNlLCAweGVlZjkzMGQ5KX0sCisg
ICAgICAgICAge1RPQk4oMHhkYjg0ZDI1ZCwgMHgwMzhkMDVlMSksIFRPQk4oMHgwNDgzOGVlNSwg
MHhiYWNjMWQ1MSksCisgICAgICAgICAgIFRPQk4oMHg5ZGEzY2U4NiwgMHg5ZThlZTAwYiksIFRP
Qk4oMHhjMzQxMjA1NywgMHhjMzZlZGExZil9fSwKKyAgICAgICAgIHt7VE9CTigweGFlODBiOTEz
LCAweDY0ZDljMmY0KSwgVE9CTigweDc0NjhiYWMzLCAweGEwMTBhOGZmKSwKKyAgICAgICAgICAg
VE9CTigweGRmZDIwMDM3LCAweDM3MzU5ZDQxKSwgVE9CTigweDFhMGY1YWI4LCAweDE1ZWZlYWNj
KX0sCisgICAgICAgICAge1RPQk4oMHg3YzI1YWQyZiwgMHg2NTlkMGNlMCksIFRPQk4oMHg0MDEx
YmNiYiwgMHg2Nzg1Y2ZmMSksCisgICAgICAgICAgIFRPQk4oMHgxMjhiOTkxMiwgMHg3ZTIxOTJj
NyksIFRPQk4oMHhhNTQ5ZDhlMSwgMHgxM2NjYjBlOCl9fSwKKyAgICAgICAgIHt7VE9CTigweDgw
NTU4OGQ4LCAweGM4NTQzOGIxKSwgVE9CTigweDU2ODAzMzJkLCAweGJjMjVjYjI3KSwKKyAgICAg
ICAgICAgVE9CTigweGRjZDFiYzk2LCAweDFhNGJmZGY0KSwgVE9CTigweDc3OWZmNDI4LCAweDcw
NmY2NTY2KX0sCisgICAgICAgICAge1RPQk4oMHg4YmJlZTk5OCwgMHhmMDU5OTg3YSksIFRPQk4o
MHhmNmNlOGNmMiwgMHhjYzY4NmRlNyksCisgICAgICAgICAgIFRPQk4oMHhmOGFkM2M0YSwgMHg5
NTNjZmRiMiksIFRPQk4oMHhkMWQ0MjZkOSwgMHgyMjA1ZGEzNil9fSwKKyAgICAgICAgIHt7VE9C
TigweGIzYzBmMTNmLCAweGM3ODFhMjQxKSwgVE9CTigweDNlODkzNjBlLCAweGQ3NTM2MmE4KSwK
KyAgICAgICAgICAgVE9CTigweGNjZDA1ODYzLCAweGM4YTkxMTg0KSwgVE9CTigweDliZDBjOWI3
LCAweGVmYThhN2Y0KX0sCisgICAgICAgICAge1RPQk4oMHg5N2VlNGQ1MywgMHg4YTkxMmE0Yiks
IFRPQk4oMHhkZTVlMTVmOCwgMHhiY2Y1MThmZCksCisgICAgICAgICAgIFRPQk4oMHg2YTA1NWJm
OCwgMHhjNDY3ZTFlMCksIFRPQk4oMHgxMGJlNGI0YiwgMHgxNTg3ZTI1Nil9fSwKKyAgICAgICAg
IHt7VE9CTigweGQ5MGMxNGYyLCAweDY2ODYyMWM5KSwgVE9CTigweGQ1NTE4ZjUxLCAweGFiOWM5
MmMxKSwKKyAgICAgICAgICAgVE9CTigweDhlNmEwMTAwLCAweGQ2ZDQ3YjNjKSwgVE9CTigweGNi
ZTk4MGRkLCAweDY2NzE2MTc1KX0sCisgICAgICAgICAge1RPQk4oMHg1MDBkM2YxMCwgMHhkZGQ4
MzY4MyksIFRPQk4oMHgzYjZjYjM1ZCwgMHg5OWNhYzczYyksCisgICAgICAgICAgIFRPQk4oMHg1
MzczMGM4YiwgMHg2MDgzZDU1MCksIFRPQk4oMHhjZjE1OTc2NywgMHhkZjBhMTk4Nyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDg0YmZjZjUzLCAweDQzYWQ3M2IzKSwgVE9CTigweDFiNTI4YzIwLCAw
eDRmMDM1YTk0KSwKKyAgICAgICAgICAgVE9CTigweDQyOTRlZGY3LCAweDMzZWVhYzY5KSwgVE9C
TigweGI2MjgzZTgzLCAweDgxN2YzMjQwKX0sCisgICAgICAgICAge1RPQk4oMHhjM2ZkYzk1OSwg
MHgwYTVmMjViMSksIFRPQk4oMHhlZmFmOGFhNSwgMHg1ODQ0ZWUyMiksCisgICAgICAgICAgIFRP
Qk4oMHhkZTI2OWJhNSwgMHhkYmRkZTRkZSksIFRPQk4oMHhlMzM0NzE2MCwgMHhjNTYxMzNiZil9
fSwKKyAgICAgICAgIHt7VE9CTigweGMxMTg0MjE5LCAweDhkOWVhOWY4KSwgVE9CTigweDA5MGRl
NWRiLCAweGYzZmMxYWI1KSwKKyAgICAgICAgICAgVE9CTigweDQwNGMzN2IxLCAweDBiZjIyY2Rh
KSwgVE9CTigweDdkZTIwZWM4LCAweGY1NjE4ODk0KX0sCisgICAgICAgICAge1RPQk4oMHg3NTRj
NTg4ZSwgMHhlY2RhZWNhYiksIFRPQk4oMHg2Y2E0YjBlZCwgMHg4ODM0Mjc0MyksCisgICAgICAg
ICAgIFRPQk4oMHg3NmYwOGJkZCwgMHhmNGE5MzhlYyksIFRPQk4oMHhkMTgyZGU4OSwgMHg5MTQ5
M2NjYil9fSwKKyAgICAgICAgIHt7VE9CTigweGQ2NTJjNTNlLCAweGM4YTQxODZhKSwgVE9CTigw
eGIzZTg3OGRiLCAweDk0NmQ4ZTMzKSwKKyAgICAgICAgICAgVE9CTigweDA4ODQ1M2MwLCAweDVm
Mzc2NjNjKSwgVE9CTigweDVjZDlkYWFhLCAweGI0MDc3NDhiKX0sCisgICAgICAgICAge1RPQk4o
MHhhMWY1MTk3ZiwgMHg1ODZkNWU3MiksIFRPQk4oMHg0NzUwMGJlOCwgMHhjNDQzY2E1OSksCisg
ICAgICAgICAgIFRPQk4oMHg3OGVmMzViMiwgMHhlMjY1MjQyNCksIFRPQk4oMHgwOWM1ZDI2Ziwg
MHg2ZGQ3NzY3ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDcxNzVhNzlhLCAweGE3NGQzZjdiKSwg
VE9CTigweDA0MjhmZDhkLCAweGNmNWVhNDU5KSwKKyAgICAgICAgICAgVE9CTigweDUxMWNiOTdj
LCAweGE1ZDE3NDZkKSwgVE9CTigweDM2MzYzOTM5LCAweGU3MWQxMjc4KX0sCisgICAgICAgICAg
e1RPQk4oMHhjZjJkZjk1NSwgMHgxMDM1MGJmNCksIFRPQk4oMHhiMzgxNzQzOSwgMHg2MGFhZTc4
MiksCisgICAgICAgICAgIFRPQk4oMHhhNzQ4YzBlNCwgMHgzZTY4ODgwOSksIFRPQk4oMHg5ODAy
MWZiZiwgMHhkN2E1YTAwNil9fSwKKyAgICAgICAgIHt7VE9CTigweDkwNzZhNzBjLCAweDBlMzY3
YTk4KSwgVE9CTigweGJlYTFiYzE1LCAweDBmNjJiN2MyKSwKKyAgICAgICAgICAgVE9CTigweDI2
NDVhNjhjLCAweDMwZmUwMzQzKSwgVE9CTigweGFjYWZmYTc4LCAweDY5OWRjMTRmKX0sCisgICAg
ICAgICAge1RPQk4oMHhmNDQ2OTk2NCwgMHg0NTdiZjljNCksIFRPQk4oMHgwZGI2NDA3YiwgMHgw
ZDJlYWQ4MyksCisgICAgICAgICAgIFRPQk4oMHg2OGQ1NmNhZCwgMHhiMmM2ZjNlYiksIFRPQk4o
MHgzYjUxMmU3MywgMHhmMzc2MzU2Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweGU0M2IwZTFmLCAw
eGZjZTEwNDA4KSwgVE9CTigweDg5ZGRjMDAzLCAweDVhNWUyNTdkKSwKKyAgICAgICAgICAgVE9C
TigweGIwYWUwZDEyLCAweDAzNjJlNWIzKSwgVE9CTigweDA3Zjk4M2M3LCAweGIwNTE5MTYxKX0s
CisgICAgICAgICAge1RPQk4oMHhjMmU5NGQxNSwgMHg1ZDUyMzFlNyksIFRPQk4oMHhjZmYyMmFl
ZCwgMHgwYjRmOTUxMyksCisgICAgICAgICAgIFRPQk4oMHhiMDI1ODhkZCwgMHg2YWQwYjBiNSks
IFRPQk4oMHhiOTY3ZDFhYywgMHgxMWQwZGNkNSl9fSwKKyAgICAgICAgIHt7VE9CTigweDhkYWM2
YmM2LCAweGNmNzc3YjZjKSwgVE9CTigweDAwNjJiZGJkLCAweDRjNmQxOTU5KSwKKyAgICAgICAg
ICAgVE9CTigweDUzZGE3MWI1LCAweDBlZjVjYzg1KSwgVE9CTigweDA3MDEyYzdkLCAweDQwMDZm
MTRmKX0sCisgICAgICAgICAge1RPQk4oMHg0NjE3Zjk2MiwgMHhhYzQ3ODAwZCksIFRPQk4oMHg1
MzM2NWYyYiwgMHhjMTAyZWQ3NSksCisgICAgICAgICAgIFRPQk4oMHhiNDIyZWZjYiwgMHg0YWI4
YzlkMyksIFRPQk4oMHgxOTVjYjI2YiwgMHgzNGFmMzFjOSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDNhOTI2ZTI5LCAweDA1ZjJjNGNlKSwgVE9CTigweGJkMmJkZWNiLCAweDk4NTY5NjZjKSwKKyAg
ICAgICAgICAgVE9CTigweDVkMTZhYjNhLCAweDg1NTI3MDE1KSwgVE9CTigweDlmODE2MDllLCAw
eDQ0ODZjMjMxKX0sCisgICAgICAgICAge1RPQk4oMHhkOGI5NmIyYywgMHhkYTM1MDAwMiksIFRP
Qk4oMHhiZDA1NDY5MCwgMHhmYTFiN2QzNiksCisgICAgICAgICAgIFRPQk4oMHhkYzkwZWJmNSwg
MHhlNzFkNzliYyksIFRPQk4oMHhmMjQxYjZmOSwgMHgwODk2NGU0ZSl9fSwKKyAgICAgICAgIHt7
VE9CTigweDdjODM4NjQzLCAweDJmZTNjZDRjKSwgVE9CTigweGUwZjMzYWNiLCAweGI0YmM2MzNj
KSwKKyAgICAgICAgICAgVE9CTigweGI0YTllY2VjLCAweDNkMTM5ZjFmKSwgVE9CTigweDA1Y2U2
OWNkLCAweGRjNGExZjQ5KX0sCisgICAgICAgICAge1RPQk4oMHhhMTlkMWIxNiwgMHhmNWY5OGFh
ZiksIFRPQk4oMHg0NWJiNzFkNiwgMHg2ZjIzZTBlZiksCisgICAgICAgICAgIFRPQk4oMHgzMzc4
OWZjZCwgMHg0NmNkZmRkMyksIFRPQk4oMHg5YjhlMjk3OCwgMHhjZWUwNDBjYSl9fSwKKyAgICAg
ICAgIHt7VE9CTigweDljNjliMjQ2LCAweGFlMGE2ODI4KSwgVE9CTigweGJhNTMzZDI0LCAweDcw
NzhkNWFhKSwKKyAgICAgICAgICAgVE9CTigweDdhMmU0MmMwLCAweDdiYjRmYmRiKSwgVE9CTigw
eGNmYjQ4NzlhLCAweDcwMzUzODVjKX0sCisgICAgICAgICAge1RPQk4oMHg4YzNkZDMwYiwgMHgz
MjgxNzA1YiksIFRPQk4oMHg3ZTM2MWM2YywgMHg0MDRmZTA4MSksCisgICAgICAgICAgIFRPQk4o
MHg3YjIxNjQ5YywgMHgzZjYwNGVkZiksIFRPQk4oMHg1ZGJmNmEzZiwgMHhlNTJmZmU0Nyl9fSwK
KyAgICAgICAgIHt7VE9CTigweGM0MWI3YzIzLCAweDRiNTRkOWJmKSwgVE9CTigweDEzNzRlNjgx
LCAweDM1MTFjM2Q5KSwKKyAgICAgICAgICAgVE9CTigweDE4NjNiZjE2LCAweGMxYjJiNzU4KSwg
VE9CTigweDkwZTc4NTA3LCAweDFlOWU2YTk2KX0sCisgICAgICAgICAge1RPQk4oMHhhYjRiZjk4
ZCwgMHg1ZDg2ZjE3NCksIFRPQk4oMHhkNzRlMGJkMywgMHg4NWU5NmZlNCksCisgICAgICAgICAg
IFRPQk4oMHg4YWZkZTM5ZiwgMHhjYWM1ZDM0NCksIFRPQk4oMHg5MDk0NmRiYywgMHhiZDkxYjg0
Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweGY1YjQyMzU4LCAweGZlMWE4MzhjKSwgVE9CTigweDA1
YWFlNmM1LCAweDYyMGFjOWQ4KSwKKyAgICAgICAgICAgVE9CTigweDhlMTkzYmQ4LCAweGExY2U1
YTBiKSwgVE9CTigweDhmNzEwNTcxLCAweDRkYWJmZDcyKX0sCisgICAgICAgICAge1RPQk4oMHg4
ZDhmZGQ0OCwgMHgxODJjYWFhYyksIFRPQk4oMHg4YzRhZWVmYSwgMHgwNDA3NDVjZiksCisgICAg
ICAgICAgIFRPQk4oMHg3M2M2YzMwYSwgMHhmM2I5M2U2ZCksIFRPQk4oMHg5OTEyNDFmMywgMHgx
NmY0MjAxMSl9fSwKKyAgICAgICAgIHt7VE9CTigweGEwMTU4ZWVhLCAweGU0NTdhNDc3KSwgVE9C
TigweGQxOTg1N2RiLCAweGVlNmRkYzA1KSwKKyAgICAgICAgICAgVE9CTigweGIzMjY1MjI0LCAw
eDE4YzQxNjcxKSwgVE9CTigweDNmZmRmYzdlLCAweDNjMmMwZDU4KX0sCisgICAgICAgICAge1RP
Qk4oMHgzYTNhNTI1NCwgMHgyNmVlN2NkYSksIFRPQk4oMHgzNDFiMDg2OSwgMHhkZjAyYzNhOCks
CisgICAgICAgICAgIFRPQk4oMHhhMDIzYmY0MiwgMHg3MjNiYmZjOCksIFRPQk4oMHgzZDE1MDAy
YSwgMHgxNDQ1MjY5MSl9fX0sCisgICAgICAgIHt7e1RPQk4oMHg1ZWY3MzI0YywgMHg4NWVkZmEz
MCksIFRPQk4oMHgyNTk3NjU1NCwgMHg4N2Q0ZjNkYSksCisgICAgICAgICAgIFRPQk4oMHgzNTJm
NWJjMCwgMHhkY2I1MGM4NiksIFRPQk4oMHg4ZjY5MjdiMCwgMHg0ODMyYTk2Yyl9LAorICAgICAg
ICAgIHtUT0JOKDB4ZDA4ZWUxYmEsIDB4NTVmMmY5NGMpLCBUT0JOKDB4NmE5OTZmOTksIDB4MzQ0
YjQ1ZmEpLAorICAgICAgICAgICBUT0JOKDB4ZTEzM2NiOGQsIDB4YThhYTQ1NWQpLCBUT0JOKDB4
NWQwNzIxZWMsIDB4NzU4ZGMxZjcpfX0sCisgICAgICAgICB7e1RPQk4oMHg2YmE3YTkyMCwgMHg3
OWU1ZmI2NyksIFRPQk4oMHhlMTMzMWZlYiwgMHg3MGFhNzI1ZSksCisgICAgICAgICAgIFRPQk4o
MHg1MDgwY2NmNSwgMHg3ZGY1ZDgzNyksIFRPQk4oMHhlNGNhZTAxZCwgMHg3ZmY3MmUyMSl9LAor
ICAgICAgICAgIHtUT0JOKDB4ZDkyNDNlZTYsIDB4MDQxMmE3N2QpLCBUT0JOKDB4MDZmZjdjYWMs
IDB4ZGY0NDkwMjUpLAorICAgICAgICAgICBUT0JOKDB4YmU3NWY3Y2QsIDB4MjNlZjVhMzEpLCBU
T0JOKDB4YmM5NTc4MjIsIDB4MGRkZWY3YTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg4Y2Y3MjMw
YywgMHhiMGNlMWM1NSksIFRPQk4oMHg1YjUzNGQwNSwgMHgwYmJmYjYwNyksCisgICAgICAgICAg
IFRPQk4oMHhlZTFlZjExMywgMHgwZTE2MzYzYiksIFRPQk4oMHgyN2UwYWE3YSwgMHhiNDk5OWU4
Mil9LAorICAgICAgICAgIHtUT0JOKDB4Y2UxZGFjMmQsIDB4NzkzNjJjNDEpLCBUT0JOKDB4Njc5
MjBjOTAsIDB4OTFiYjZjYjApLAorICAgICAgICAgICBUT0JOKDB4MWU2NDhkNjMsIDB4MjIyM2Rm
MjQpLCBUT0JOKDB4MGY3ZDllZWYsIDB4ZTMyZThmMjgpfX0sCisgICAgICAgICB7e1RPQk4oMHg2
OTQzZjM5YSwgMHhmYTgzMzgzNCksIFRPQk4oMHgyMjk1MTcyMiwgMHhhNjMyODU2MiksCisgICAg
ICAgICAgIFRPQk4oMHg4MWQ2M2RkNSwgMHg0MTcwZmMxMCksIFRPQk4oMHg5ZjVmYTU4ZiwgMHhh
ZWNjMmU2ZCl9LAorICAgICAgICAgIHtUT0JOKDB4YjY2Yzg3MjUsIDB4ZTc3ZDlhM2IpLCBUT0JO
KDB4MTEyMzVjZWEsIDB4NjM4NGViZTApLAorICAgICAgICAgICBUT0JOKDB4MDZhOGMxMTgsIDB4
NTg0NWUyNGEpLCBUT0JOKDB4MDEzN2IyODYsIDB4ZWJkMDkzYjEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhjNTg5ZTFjZSwgMHg0NGFjZTE1MCksIFRPQk4oMHhlMGY4ZDNkOSwgMHg0MzgxZTk3Yyks
CisgICAgICAgICAgIFRPQk4oMHg1OWU5OWIxMSwgMHg2MmM1YTRiOCksIFRPQk4oMHg5MGQyNjJm
NywgMHhmZDBlYzlmOSl9LAorICAgICAgICAgIHtUT0JOKDB4ZmJjODU0YzksIDB4MjgzZTEzYzkp
LCBUT0JOKDB4MmQwNGZkZTcsIDB4YWVkYzcwODUpLAorICAgICAgICAgICBUT0JOKDB4MDU3ZDc3
NjUsIDB4NDdkY2JlY2IpLCBUT0JOKDB4OGRiZGY1OTEsIDB4OWE3NmZhNWYpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhkMDE1MDY5NSwgMHgwZGUxZTU3OCksIFRPQk4oMHgyZTE0NjNlNywgMHhlOWY3
MmJjNiksCisgICAgICAgICAgIFRPQk4oMHhmZmE2ODQ0MSwgMHgxYjM5ZWNhNSksIFRPQk4oMHg2
NzNjODUzMCwgMHg3YzAzN2YyZil9LAorICAgICAgICAgIHtUT0JOKDB4ZDBkNmE2MDAsIDB4NzQ3
ZjkxZGEpLCBUT0JOKDB4YjA4ZDQzZTEsIDB4YzljYjc4ZTkpLAorICAgICAgICAgICBUT0JOKDB4
MGZjMGM2NDQsIDB4MjdiNWNlZjUpLCBUT0JOKDB4NWMxZDE2MGEsIDB4YTYwYTJmZDYpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhmOThjYWU1MywgMHgyOGM4ZTEzYiksIFRPQk4oMHgzNzVmMTBjNCwg
MHhiMmVkZGNkMSksCisgICAgICAgICAgIFRPQk4oMHhkNGViOGI3ZiwgMHg1Y2NlMDZhZCksIFRP
Qk4oMHhiNDY2OWY0NSwgMHg4MGEyZTFlZil9LAorICAgICAgICAgIHtUT0JOKDB4ZDU5M2Y5ZDAs
IDB4NWJiZDg2OTkpLCBUT0JOKDB4NTUyOGE0YzksIDB4ZTc5NzZkMTMpLAorICAgICAgICAgICBU
T0JOKDB4MzkyM2UwOTUsIDB4MWM3ZTI4ZDMpLCBUT0JOKDB4YjkyOTM3OTAsIDB4M2Y2YmI1Nzcp
fX0sCisgICAgICAgICB7e1RPQk4oMHhkYjU2N2Q2YSwgMHhjNDJiZDZkMiksIFRPQk4oMHg2ZGY4
NjQ2OCwgMHhiYjFmOTZhZSksCisgICAgICAgICAgIFRPQk4oMHgwZWZlNWIxYSwgMHg0ODQzYjI4
ZSksIFRPQk4oMHg5NjFiYmIwNSwgMHg2Mzc5YjI0MCl9LAorICAgICAgICAgIHtUT0JOKDB4YjZj
YWY1ZjAsIDB4NzBhNmEyNmIpLCBUT0JOKDB4NzA2ODZjMGQsIDB4MzI4ZTZlMzkpLAorICAgICAg
ICAgICBUT0JOKDB4ODBkYTA2Y2YsIDB4ODk1ZmM4ZDMpLCBUT0JOKDB4ODA0ZDg4MTAsIDB4YjM2
M2ZkYzkpfX0sCisgICAgICAgICB7e1RPQk4oMHhiZTIyODc3YiwgMHgyMDdmMTY3MCksIFRPQk4o
MHg5YjBkZDE4OCwgMHg0ZTYxNTI5MSksCisgICAgICAgICAgIFRPQk4oMHg2MjVhZThkYywgMHg5
N2EzYzJiZiksIFRPQk4oMHgwODU4NGVmNywgMHg0MzliODZlOCl9LAorICAgICAgICAgIHtUT0JO
KDB4ZGU3MTkwYTUsIDB4ZGNkODk4ZmYpLCBUT0JOKDB4MjYyODZjNDAsIDB4MjA1OGVlM2QpLAor
ICAgICAgICAgICBUT0JOKDB4M2RiMGIyMTcsIDB4NWY4N2IxYzEpLCBUT0JOKDB4Y2MzMzQ3NzEs
IDB4MTAyYTZkYjUpfX0sCisgICAgICAgICB7e1RPQk4oMHhkOTlkZTk1NCwgMHgyZjc3MGZiMSks
IFRPQk4oMHg5N2MxYzYyMCwgMHg0Y2Q3NTM1ZSksCisgICAgICAgICAgIFRPQk4oMHhkM2I2YzQ0
OCwgMHgzZjA5Y2VmYyksIFRPQk4oMHhkNzI1YWYxNSwgMHg1YTYzYjRmOCl9LAorICAgICAgICAg
IHtUT0JOKDB4MGM5NWQyNGYsIDB4YzAxZTIwZWMpLCBUT0JOKDB4ZGZkMzc0OTQsIDB4OWFlNzEy
MWYpLAorICAgICAgICAgICBUT0JOKDB4N2Q2ZGRiNzIsIDB4ZWM3N2I3ZWMpLCBUT0JOKDB4ZmUw
NzlkM2IsIDB4MDM1M2E0YWUpfX0sCisgICAgICAgICB7e1RPQk4oMHgzMDY2ZTcwYSwgMHgyZTZh
YzhkMiksIFRPQk4oMHg5YzZiNWE0MywgMHgxMDZlNWMwNSksCisgICAgICAgICAgIFRPQk4oMHg1
MmQzYzZmNSwgMHhlZGU1OWI4YyksIFRPQk4oMHgzMGQ2YTVjMywgMHhmY2NlYzlhZSl9LAorICAg
ICAgICAgIHtUT0JOKDB4ZWRlYzdjMjIsIDB4NGZjMGE5ZWYpLCBUT0JOKDB4MTkwZmYwODMsIDB4
OTVjMTZjZWQpLAorICAgICAgICAgICBUT0JOKDB4YmUxMmVjOGYsIDB4OTRkZTBmZGUpLCBUT0JO
KDB4MGQxMzFhYjgsIDB4ODUyZDM0MzMpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MmFjZTA3ZSwg
MHg4NTcwMTI5MSksIFRPQk4oMHg5NDc5M2VkOSwgMHgxOTQwNjFhOCksCisgICAgICAgICAgIFRP
Qk4oMHgzMGU4M2VkNiwgMHhkN2Y0YTQ4NSksIFRPQk4oMHg5ZWVjNzI2OSwgMHhmOWVlZmY0ZCl9
LAorICAgICAgICAgIHtUT0JOKDB4OTBhY2JhNTksIDB4MGM5ZDgwMDUpLCBUT0JOKDB4NWZlY2E0
NTgsIDB4MWU3OWI5ZDEpLAorICAgICAgICAgICBUT0JOKDB4OGZiZTU0MjcsIDB4MWQ1MDZhMWUp
LCBUT0JOKDB4YTMyYjJjOGUsIDB4MjQzOWNmYTcpfX0sCisgICAgICAgICB7e1RPQk4oMHgxNjcx
YzE3MywgMHg3M2RkMGI0ZSksIFRPQk4oMHgzN2EyODIxNCwgMHg0NGEwNTRjNiksCisgICAgICAg
ICAgIFRPQk4oMHg4MTc2MGExYiwgMHg0ZThiNTNmMSksIFRPQk4oMHhhNmMwNDIyNCwgMHhmOWY5
M2I5ZSl9LAorICAgICAgICAgIHtUT0JOKDB4MTg3ODRiMzQsIDB4Y2Y2NzFlM2MpLCBUT0JOKDB4
ODFiYmVjZDIsIDB4Y2RhOWI5OTQpLAorICAgICAgICAgICBUT0JOKDB4Mzg4MzE5NzksIDB4YjJh
YjM4NDgpLCBUT0JOKDB4ZWY1NGZlYjcsIDB4ZjJlMDNjMmQpfX0sCisgICAgICAgICB7e1RPQk4o
MHhjZjE5N2NhNywgMHhmYjgwODhmYSksIFRPQk4oMHgwMTQyNzI0NywgMHg0ZGRjOTZjNSksCisg
ICAgICAgICAgIFRPQk4oMHhhMmQyNTUwYSwgMHgzMDc3NzE3NiksIFRPQk4oMHg1MzQ2OTg5OCwg
MHg0ZDBjZjcxZCl9LAorICAgICAgICAgIHtUT0JOKDB4NmNlOTM3YjgsIDB4M2EyYWFhYzYpLCBU
T0JOKDB4ZTlmOTFkYzMsIDB4NWFmMzhkOWIpLAorICAgICAgICAgICBUT0JOKDB4MjU5OGFkODMs
IDB4YzhiZjI4OTkpLCBUT0JOKDB4OGU3MDZhYzksIDB4YjU1MzZjMTYpfX0sCisgICAgICAgICB7
e1RPQk4oMHg0MGRjNzQ5NSwgMHhmNjg4ZGM5OCksIFRPQk4oMHgyNjQ5MGNkNywgMHgxMjRjNGFm
YyksCisgICAgICAgICAgIFRPQk4oMHhlNjUxZWM4NCwgMHgxZjE4Nzc1YyksIFRPQk4oMHgzOTNl
YTZjMywgMHhiNGZkYWY0YSl9LAorICAgICAgICAgIHtUT0JOKDB4MWUxZjMzNDMsIDB4N2YzMzhl
MGQpLCBUT0JOKDB4MzlmYjgzMmIsIDB4NjA1M2U3YjUpLAorICAgICAgICAgICBUT0JOKDB4NDZl
NzAyZGEsIDB4NjE5ZTE0ZDUpLCBUT0JOKDB4ODU5Y2FjZDEsIDB4Y2RlZWY2ZTApfX0sCisgICAg
ICAgICB7e1RPQk4oMHg2M2I5OWNlNywgMHg0NDYyMDA3ZCksIFRPQk4oMHhiOGFiNDhhNSwgMHg0
Y2I1ZjViNyksCisgICAgICAgICAgIFRPQk4oMHg5ZWM2NzNkMiwgMHhmNTVlZGRlNyksIFRPQk4o
MHhkMTU2N2Y3NCwgMHg4Y2ZhZWZkYSl9LAorICAgICAgICAgIHtUT0JOKDB4NDYzODFiNmIsIDB4
MDg4N2JjZWMpLCBUT0JOKDB4Njk0NDk3Y2UsIDB4ZTE3OGYzYzIpLAorICAgICAgICAgICBUT0JO
KDB4NWU2NTI1ZTMsIDB4MWU2MjY2Y2IpLCBUT0JOKDB4NTkzMWRlMjYsIDB4Njk3ZDY0MTMpfX0s
CisgICAgICAgICB7e1RPQk4oMHg4N2Y4ZGY3YywgMHgwZTU4ZDQ5MyksIFRPQk4oMHhiMWFlNWVk
MCwgMHg1OGI3M2YxMiksCisgICAgICAgICAgIFRPQk4oMHhjMzY4Zjc4NCwgMHhkZWEwYzM0ZCks
IFRPQk4oMHg5YmQwYTEyMCwgMHg4NTlhOTFhMCl9LAorICAgICAgICAgIHtUT0JOKDB4YjAwZDg4
YjcsIDB4Y2M4NjNjNjgpLCBUT0JOKDB4M2ExY2MxMWUsIDB4M2QxZjRkNjUpLAorICAgICAgICAg
ICBUT0JOKDB4ZWEzOGUwZTcsIDB4MGFhODU1OTMpLCBUT0JOKDB4MzdmMTNlOTgsIDB4N2RjNGFl
ZTgpfX0sCisgICAgICAgICB7e1RPQk4oMHgxMGQzODY2NywgMHhiYzk0N2JhZCksIFRPQk4oMHg3
MzhlMDdjZSwgMHgyYTM2ZWUyZSksCisgICAgICAgICAgIFRPQk4oMHhjOTM0NzBjZCwgMHhjNTc3
ZmNhYyksIFRPQk4oMHhkZWUxYjYxNiwgMHgyNzgyNDcwZCl9LAorICAgICAgICAgIHtUT0JOKDB4
MzZhMjVlNjcsIDB4MmU3OTNkMTIpLCBUT0JOKDB4ZDZhYTZjYWUsIDB4ZTBmMTg2ZGEpLAorICAg
ICAgICAgICBUT0JOKDB4NDc0ZDBmZDksIDB4ODBlMDdhZjcpLCBUT0JOKDB4ZjdjZGM0N2QsIDB4
YmE4YTVjZDQpfX0sCisgICAgICAgICB7e1RPQk4oMHgyOGFmNmQ5ZCwgMHhhYjE1MjQ3ZiksIFRP
Qk4oMHg3Yzc4OWMxMCwgMHg0OTNhNTM3ZiksCisgICAgICAgICAgIFRPQk4oMHg3YWM5YjExMCwg
MHgyM2EzMzRlNyksIFRPQk4oMHgwMjM2YWMwOSwgMHgxMmM5YzI3Nyl9LAorICAgICAgICAgIHtU
T0JOKDB4YTdlNWJkMjUsIDB4MWQ3YTUxNDQpLCBUT0JOKDB4MDk4YjljMmEsIDB4ZjEzZWM0ZWMp
LAorICAgICAgICAgICBUT0JOKDB4MzYzOWRhY2EsIDB4ZDNmMGFiY2EpLCBUT0JOKDB4NjQyZGE4
MWEsIDB4YTIzOTYwZjkpfX0sCisgICAgICAgICB7e1RPQk4oMHg3ZDJlNWMwNSwgMHg0ZjcyNjli
MSksIFRPQk4oMHhmY2YzMDc3NywgMHhlMjg3YzM4NSksCisgICAgICAgICAgIFRPQk4oMHgxMGVk
Yzg0ZiwgMHhmMmE0NmYyMSksIFRPQk4oMHgzNTQ0MTc1NywgMHg0ZjQzZmEzNil9LAorICAgICAg
ICAgIHtUT0JOKDB4ZjEzMjc4OTksIDB4ZmQ3MDM0MzEpLCBUT0JOKDB4YTQzOGQ3YTYsIDB4MTZk
ZDU4N2EpLAorICAgICAgICAgICBUT0JOKDB4NjVjMzRjNTcsIDB4ZTljODM1MmQpLCBUT0JOKDB4
YTcyOGVkYWIsIDB4NWNjNWEyNGUpfX0sCisgICAgICAgICB7e1RPQk4oMHhhZWQ3OGFiYywgMHg0
MjUzMTY4OSksIFRPQk4oMHgwYTUxYTBlOCwgMHgwMTA5NjNlZiksCisgICAgICAgICAgIFRPQk4o
MHg1Nzc2ZmEwYSwgMHhkNzE3ZDliMyksIFRPQk4oMHhmMzU2YzIzOSwgMHg3ZGQzNDI4Yil9LAor
ICAgICAgICAgIHtUT0JOKDB4Mjk5MDNmZmYsIDB4OGQzYTNkYWMpLCBUT0JOKDB4NDA5NTk3ZmEs
IDB4M2Q5NDQ5MWYpLAorICAgICAgICAgICBUT0JOKDB4NGNkN2E1ZmYsIDB4YmY0YTU2YTQpLCBU
T0JOKDB4ZTUwOTY0NzQsIDB4OGFkYWI0NjIpfX0sCisgICAgICAgICB7e1RPQk4oMHhhOTdiNTEy
NiwgMHg1YzM0MjdiMCksIFRPQk4oMHg2NDAxNDA1YywgMHhkMjgyYzliZCksCisgICAgICAgICAg
IFRPQk4oMHgzNjI5ZjhkNywgMHgyMjJjNWM0NSksIFRPQk4oMHhiMWMwMmMxNiwgMHhlOGQ1MGFl
ZCl9LAorICAgICAgICAgIHtUT0JOKDB4YmVhMmVkNzUsIDB4ZDk2MzViYzkpLCBUT0JOKDB4MjI2
NzkwYzcsIDB4NmUyNDU1MmYpLAorICAgICAgICAgICBUT0JOKDB4M2MzM2YyYTMsIDB4NjVmMWQw
NjYpLCBUT0JOKDB4MmE0MzQ2M2UsIDB4NmRmY2NjMmUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4
Y2MzNDUzYSwgMHhkYjQ4Mzc2MSksIFRPQk4oMHhlN2NjNjA4NSwgMHg2NWQ1NjcyYiksCisgICAg
ICAgICAgIFRPQk4oMHgyNzdlZDZjYiwgMHhkZTNlZmM4NyksIFRPQk4oMHgxOWYyZjM2OCwgMHg2
OTIzNGVhZil9LAorICAgICAgICAgIHtUT0JOKDB4OWFhZjQzMTcsIDB4NWMwYjgwMGIpLCBUT0JO
KDB4MWYxZTdjODksIDB4OGI2ZGE2ZTIpLAorICAgICAgICAgICBUT0JOKDB4NmNmYjQ3MTUsIDB4
Yjk0ZWM3NWUpLCBUT0JOKDB4ZDU5MGRkNWYsIDB4NDUzMTE4YzIpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgxNGU0OWRhMSwgMHgxZjE3YTM0YyksIFRPQk4oMHg1NDIwYWIzOSwgMHgyMzVhMTQ1Niks
CisgICAgICAgICAgIFRPQk4oMHhiNzYzNzI0MSwgMHgyZjUwMzYzYiksIFRPQk4oMHg3YjE1ZDYy
MywgMHhjM2ZhYmI2ZSl9LAorICAgICAgICAgIHtUT0JOKDB4YTBlZjQwYjEsIDB4ZTI3NGU0OWMp
LCBUT0JOKDB4NWNmNTA3NDQsIDB4OTZiMTg2MGEpLAorICAgICAgICAgICBUT0JOKDB4ZDY1ODNm
YmYsIDB4NjZhZmU1YTQpLCBUT0JOKDB4NDQyNDA1MTAsIDB4ZjQ3ZTNlOWEpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg5OTI1NDM0MywgMHgxMWIyZDU5NSksIFRPQk4oMHhmMTM2NzQ5OSwgMHhlZWM4
ZGY1NyksCisgICAgICAgICAgIFRPQk4oMHgzY2IxMmM2MSwgMHgzZTczZGQwNSksIFRPQk4oMHhk
MjQ4YzAzMywgMHg3ZGFjMTAyYSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2YxNTRmMTMsIDB4YTc3
NzM5ZjUpLCBUT0JOKDB4YmY0Mjg4Y2IsIDB4MjNkMmFmNDIpLAorICAgICAgICAgICBUT0JOKDB4
YWE2NGM5YjYsIDB4MzJlNGExY2YpLCBUT0JOKDB4ZWU4YzA3YTgsIDB4YzhhMjA4ZjMpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhlMTBkNDk5OSwgMHg2ZmU4MzkzZiksIFRPQk4oMHgwZjgwOWEzZiwg
MHhlOTFmM2EzMiksCisgICAgICAgICAgIFRPQk4oMHg2MTA5NmQxYywgMHg4MDJmNjNjOCksIFRP
Qk4oMHgyODllMTQ2MiwgMHg1Nzc1MGQzZCl9LAorICAgICAgICAgIHtUT0JOKDB4ZWQwNjE2N2Us
IDB4OTg4OWZlZWEpLCBUT0JOKDB4ZDVjOWMwZTIsIDB4ZTA5OTM5MDkpLAorICAgICAgICAgICBU
T0JOKDB4NDZmY2EwZDgsIDB4NTY1MDhhYzYpLCBUT0JOKDB4OTE4MjYwNDcsIDB4NGYxYjhlODMp
fX0sCisgICAgICAgICB7e1RPQk4oMHg0ZjJjODc3YSwgMHg5YTRhMjc1MSksIFRPQk4oMHg3MWJk
MDA3MiwgMHhjYWU2ZmVhZCksCisgICAgICAgICAgIFRPQk4oMHgzOGRmOGRjYywgMHgwNmFhMTk0
MSksIFRPQk4oMHg1YTA3NGI0YywgMHg2M2JlZWFhOCl9LAorICAgICAgICAgIHtUT0JOKDB4ZDZk
NjU5MzQsIDB4YzFjZWM4ZWQpLCBUT0JOKDB4YTZlY2I0OWUsIDB4YWFiYzAzYmQpLAorICAgICAg
ICAgICBUT0JOKDB4YWFkZTkxYzIsIDB4ZGU4YTg0MTUpLCBUT0JOKDB4Y2ZiMGVmZGYsIDB4Njkx
MTM2ZTApfX0sCisgICAgICAgICB7e1RPQk4oMHgxMWFmNDVlZSwgMHgyM2FiMzQ5NSksIFRPQk4o
MHhhMTMyZGY4OCwgMHgwYjc3NDYzZCksCisgICAgICAgICAgIFRPQk4oMHg4OTIzYzE1YywgMHg4
MTVkMDZmNCksIFRPQk4oMHhjM2NlYjNmNSwgMHgwZDYxYTQzNil9LAorICAgICAgICAgIHtUT0JO
KDB4YWY1MjI5MWQsIDB4ZTg4ZmIxZGEpLCBUT0JOKDB4ZWEwNTc5NzQsIDB4MWRhMTIxNzkpLAor
ICAgICAgICAgICBUT0JOKDB4YjBkNzIxOGMsIDB4ZDJmZWY3MjApLCBUT0JOKDB4NmMwODk5Yzks
IDB4OGUxZDg4NDUpfX0sCisgICAgICAgICB7e1RPQk4oMHg5ODE1NzUwNCwgMHg3NTJkZGFkNyks
IFRPQk4oMHhkNjBiZDc0ZiwgMHhhMWE2OGE5NyksCisgICAgICAgICAgIFRPQk4oMHg3MDQ3YTNh
OSwgMHhmNjU4ZmI5OSksIFRPQk4oMHgxZjVkODZkNiwgMHg1Zjg1MTFlNCl9LAorICAgICAgICAg
IHtUT0JOKDB4YjhhNGJjNDIsIDB4NGI1YTZkODgpLCBUT0JOKDB4NjllYjJjMzMsIDB4MWFiZWZh
N2QpLAorICAgICAgICAgICBUT0JOKDB4OTViZjM5ZTgsIDB4MTNjOWM1MTApLCBUT0JOKDB4ZjU3
MTk2MGEsIDB4ZDQ4YWFiNDMpfX0sCisgICAgICAgICB7e1RPQk4oMHg3ZThjZmJjZiwgMHg3MDRl
MjNjNiksIFRPQk4oMHhjNzFiN2QyMiwgMHgyOGFhYTY1YiksCisgICAgICAgICAgIFRPQk4oMHhh
MDQxYjJiZCwgMHgyNDVlM2M4MyksIFRPQk4oMHg2OWI5ODgzNCwgMHhkMjE4NTRmZil9LAorICAg
ICAgICAgIHtUT0JOKDB4ODlkMjI3YTMsIDB4OTYzYmZlZWMpLCBUT0JOKDB4OTk5NDdhYWEsIDB4
ZGU3ZGE3Y2IpLAorICAgICAgICAgICBUT0JOKDB4MWQ5ZWU5ZGIsIDB4ZWU2OGE5YjEpLCBUT0JO
KDB4MGEwOGYwMDMsIDB4Njk4ZWMzNjgpfX0sCisgICAgICAgICB7e1RPQk4oMHhlOWVhNDA5NCwg
MHg3OGVmMjQ4NyksIFRPQk4oMHhjOGQyZDQxNSwgMHgwMmNmZWMyNiksCisgICAgICAgICAgIFRP
Qk4oMHhjNTJmOWE2ZSwgMHhiN2RjZjMyOCksIFRPQk4oMHgwZWQ0ODllMywgMHg4NWI2YTkzNyl9
LAorICAgICAgICAgIHtUT0JOKDB4OWI5NDk4NmIsIDB4YmVmMzM2NmUpLCBUT0JOKDB4MGRlNTlj
NzAsIDB4ZWRkZGRkYjgpLAorICAgICAgICAgICBUT0JOKDB4ZmZkYjc0OGMsIDB4ZWFkZGRiZTIp
LCBUT0JOKDB4OWI5Nzg0YmIsIDB4ODI2NmVhNDApfX0sCisgICAgICAgICB7e1RPQk4oMHgxNDJi
NTUwMiwgMHgxYTkzNTA3YSksIFRPQk4oMHhiNGNkMTE4NywgMHg4ZDNjMDZjZiksCisgICAgICAg
ICAgIFRPQk4oMHhkZjcwZTc2YSwgMHg5MWVjM2Y0MCksIFRPQk4oMHg0ODRlODFhZCwgMHg0ZTc1
NTNjMil9LAorICAgICAgICAgIHtUT0JOKDB4ODMwZjg3YjUsIDB4MjcyZTlkNmUpLCBUT0JOKDB4
ZWExYzkzZTUsIDB4YzZmZjUxNGEpLAorICAgICAgICAgICBUT0JOKDB4NjdjYzJhZGMsIDB4YzQx
OTJhOGUpLCBUT0JOKDB4Yzc3ZTI3ZTIsIDB4NDJmNDUzNWEpfX0sCisgICAgICAgICB7e1RPQk4o
MHg5Y2RiYWIzNiwgMHhkMmI3MTNjNSksIFRPQk4oMHg4NjI3NGVhMCwgMHhjZjdiMGNkMyksCisg
ICAgICAgICAgIFRPQk4oMHg3ODQ2ODBmMywgMHgwOWFmODI2YiksIFRPQk4oMHhiZmNjODM3YSwg
MHgwYzcyZGVhMyl9LAorICAgICAgICAgIHtUT0JOKDB4YThiZGZlOWQsIDB4ZDY1MjliNzMpLCBU
T0JOKDB4NzA4YWEyMjgsIDB4NjNhODgwMDIpLAorICAgICAgICAgICBUT0JOKDB4NmM3YTlhNTQs
IDB4YzkxZDQ1YjkpLCBUT0JOKDB4ZGYxYTM4YmIsIDB4ZmQwMDRmNTYpfX0sCisgICAgICAgICB7
e1RPQk4oMHgyZThjOWEyNiwgMHhiOGJhZDg1MyksIFRPQk4oMHgyZDUyY2VhMywgMHgzNzIzZWFl
NyksCisgICAgICAgICAgIFRPQk4oMHgwNTRkNmQ4MSwgMHg1NmNhMjgzMCksIFRPQk4oMHhhMzMx
N2QxNCwgMHg5YThkYzQxMSl9LAorICAgICAgICAgIHtUT0JOKDB4YTA4NjYyZmUsIDB4ZmQ0ZGRl
ZGEpLCBUT0JOKDB4ZWQyYTE1M2EsIDB4YjU1ZDc5MmIpLAorICAgICAgICAgICBUT0JOKDB4NzAz
NWMxNmEsIDB4YmZjNmU5NDQpLCBUT0JOKDB4YjZiYzU4MzQsIDB4MDAxNzFjZjMpfX0sCisgICAg
ICAgICB7e1RPQk4oMHhlMjcxNTJiMywgMHg4M2QxMDJiNiksIFRPQk4oMHhmZTY5NWE0NywgMHgw
NjQ2Yjg0OCksCisgICAgICAgICAgIFRPQk4oMHhhNWJiMDlkOCwgMHg5MTZlNmQzNyksIFRPQk4o
MHhiNDI2OWQ2NCwgMHgwZDE3MDE1ZSl9LAorICAgICAgICAgIHtUT0JOKDB4OGQ4MTU2YTEsIDB4
MGExZDIyODUpLCBUT0JOKDB4ZmVlZjZjNTEsIDB4NDZkMjZkNzIpLAorICAgICAgICAgICBUT0JO
KDB4OWRhYzU3YzgsIDB4NGM1NDM0YTcpLCBUT0JOKDB4MDI4MmU1YmUsIDB4NTlkMzllMzEpfX0s
CisgICAgICAgICB7e1RPQk4oMHhlZGZmZjE4MSwgMHg3MjFjNDg2ZCksIFRPQk4oMHgzMDFiYWYx
MCwgMHhiYzU4ODI0ZSksCisgICAgICAgICAgIFRPQk4oMHg4MTM2YTZhYSwgMHgwMDU3MDAzMSks
IFRPQk4oMHg1NWFhZjc4YywgMHgxY2RkZGU2OCl9LAorICAgICAgICAgIHtUT0JOKDB4MjY4Mjkz
NzEsIDB4NTljNjM5NTIpLCBUT0JOKDB4M2EzYmQyNzQsIDB4OGJjMjViYWYpLAorICAgICAgICAg
ICBUT0JOKDB4ZWNkZjg2NTcsIDB4YjdlNTJkYzMpLCBUT0JOKDB4MmRkOGMwODcsIDB4ZmQ3OGU2
YzgpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMDU1MzI3NCwgMHhmNTUzMTQ2MSksIFRPQk4oMHg4
YjRhMTI4MSwgMHg1ZDk1NDk5YiksCisgICAgICAgICAgIFRPQk4oMHhlMmM4NzYzYSwgMHgxYTgw
ZjlkMiksIFRPQk4oMHhkMWRiZTMyYiwgMHg0ZGRlYzc1OCl9LAorICAgICAgICAgIHtUT0JOKDB4
YWYxMjIxMGQsIDB4MzBjMzQxNjkpLCBUT0JOKDB4YmE3NGE5NTMsIDB4NzhiYWE1MzMpLAorICAg
ICAgICAgICBUT0JOKDB4M2QxMzNjNmUsIDB4YTQzOGYyNTQpLCBUT0JOKDB4YTQzMTUzMWEsIDB4
MjAxYmVmNWIpfX0sCisgICAgICAgICB7e1RPQk4oMHgxNTI5NWUyMiwgMHhmNjY5ZDdlYyksIFRP
Qk4oMHhjYTM3NGY2NCwgMHgzNTdmYjUxNSksCisgICAgICAgICAgIFRPQk4oMHg4YTg0MDZmZiwg
MHhlYWEzZmRiMyksIFRPQk4oMHgxMDZhZTQ0OCwgMHhkZjNmMmRhOCl9LAorICAgICAgICAgIHtU
T0JOKDB4OGY5YjBhOTAsIDB4MzNjOGU5YTEpLCBUT0JOKDB4MjM0NjQ1ZTIsIDB4NzFhZDU4ODUp
LAorICAgICAgICAgICBUT0JOKDB4M2QwODMyMjQsIDB4MWMwYWVkMTQpLCBUT0JOKDB4ZjEwYTdk
M2UsIDB4N2E5NDJkNDYpfX0sCisgICAgICAgICB7e1RPQk4oMHg3YzExZGVlZSwgMHg0MGQ1Yzli
ZSksIFRPQk4oMHhiMmJhZTdmZiwgMHhiYTg0ZWQ5OCksCisgICAgICAgICAgIFRPQk4oMHg5M2U5
NzEzOSwgMHhhYWQ1OGRkZCksIFRPQk4oMHgzZDg3Mjc5NiwgMHgzZjZkMWZhMyl9LAorICAgICAg
ICAgIHtUT0JOKDB4NDgzYWNhODEsIDB4ODU2OWZmMTMpLCBUT0JOKDB4OGI4OWE1ZmIsIDB4OWE2
MDBmNzIpLAorICAgICAgICAgICBUT0JOKDB4NGNiYzI3YzMsIDB4YzA2ZjJiODYpLCBUT0JOKDB4
MjIxMzA3MTMsIDB4NjNhZDljMGIpfX0sCisgICAgICAgICB7e1RPQk4oMHhiNTM1OGIxZSwgMHg0
OGFjMjg0MCksIFRPQk4oMHgxODMxMTI5NCwgMHhlY2JhOTQ3NyksCisgICAgICAgICAgIFRPQk4o
MHhkYTU4Zjk5MCwgMHhhNjk0NmI0MyksIFRPQk4oMHgzMDk4YmFmOSwgMHg5YWI0MTgxOSl9LAor
ICAgICAgICAgIHtUT0JOKDB4NjZjNGMxNTgsIDB4NDE5OGRhNTIpLCBUT0JOKDB4YWI0ZmMxN2Ms
IDB4MTQ2YmZkMWIpLAorICAgICAgICAgICBUT0JOKDB4MmYwYTRjM2MsIDB4YmYzNmE5MDgpLCBU
T0JOKDB4MmFlOWUzNGIsIDB4NThjZjc4MzgpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNDExNTI5
ZSwgMHgzZmExMWIxZiksIFRPQk4oMHgyMWU0MzY3NywgMHg5NzRhZjJiNCksCisgICAgICAgICAg
IFRPQk4oMHg3YzIwOTU4ZSwgMHhjMjMwNzkzYiksIFRPQk4oMHg3MTBlYTg4NSwgMHgxNmU4NDBm
Myl9LAorICAgICAgICAgIHtUT0JOKDB4ZmMwYjIxZmMsIDB4YzVkYzY3Y2YpLCBUT0JOKDB4MDhk
NTE2NDcsIDB4ODg0MDU3MTgpLAorICAgICAgICAgICBUT0JOKDB4ZDk1NWMyMWYsIDB4Y2ZlNDll
YjcpLCBUT0JOKDB4OTcyMmE1ZDUsIDB4NTZkZDRhMWYpfX0sCisgICAgICAgICB7e1RPQk4oMHhj
OWVmNTBlMiwgMHhjODYxYmFhNSksIFRPQk4oMHhjMGMyMWE1ZCwgMHg5NTA1YWMzZSksCisgICAg
ICAgICAgIFRPQk4oMHhhZjZiOWEzMywgMHg4YjdjMDYzZiksIFRPQk4oMHhjNjM3MDMzOSwgMHgy
ZjQ3NzljMSl9LAorICAgICAgICAgIHtUT0JOKDB4MjJkZjk5YzcsIDB4NjM4MTY3YzMpLCBUT0JO
KDB4ZmU2ZmZlNzYsIDB4Nzk1ZGIzMGMpLAorICAgICAgICAgICBUT0JOKDB4MmI4MjJkMzMsIDB4
YTQ4NTQ5ODkpLCBUT0JOKDB4ZmVmMDMxZGQsIDB4MzA1NjNhYTUpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgxNmIwOWY4MiwgMHhkNTdjNjY3ZiksIFRPQk4oMHhjNzAzMTJjZSwgMHhjYzBiNzZmMSks
CisgICAgICAgICAgIFRPQk4oMHhiZjA0YTllNiwgMHhjOTExOGFlYyksIFRPQk4oMHg4MmZjYjQx
OSwgMHgzNDA5ZDEzMyl9LAorICAgICAgICAgIHtUT0JOKDB4MWE4YWIzODUsIDB4YWI0NWQ0NGQp
LCBUT0JOKDB4ZmJhMDcyMjIsIDB4NjE3YjgzYTMpLAorICAgICAgICAgICBUT0JOKDB4YjA1ZjUw
ZGQsIDB4NThlODFiNTIpLCBUT0JOKDB4MWQ4ZGI1NTMsIDB4MjFjZTVhZmYpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgzMDk3YjhkNCwgMHhlMzQ0YTg3MyksIFRPQk4oMHg3ZDhkMTE2ZCwgMHhmZTM2
ZDUzZSksCisgICAgICAgICAgIFRPQk4oMHg2ZGIyMmY1OCwgMHg3ODc1ZTc1MCksIFRPQk4oMHgy
ZGM1ZTM3MywgMHg0M2UxNDRlYSl9LAorICAgICAgICAgIHtUT0JOKDB4YzA1ZjMyZTYsIDB4ZTc5
OWViOTUpLCBUT0JOKDB4ZTllNWY0ZGYsIDB4Njg5OWU2ZWMpLAorICAgICAgICAgICBUT0JOKDB4
YmRjM2JkNjgsIDB4MWZhYjIzZDUpLCBUT0JOKDB4YjcyYjhhYjcsIDB4NzNhZjYwZTYpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg4ZGIyN2FlMCwgMHgyY2VjYzg0YSksIFRPQk4oMHg2MDAwMTZkOCwg
MHg3YmRiODcxYyksCisgICAgICAgICAgIFRPQk4oMHg0MmE0NGIxMywgMHhkN2M0NmY1OCksIFRP
Qk4oMHhiODkxOTcyNywgMHhjM2E3N2QzOSl9LAorICAgICAgICAgIHtUT0JOKDB4Y2ZjNmJiYmQs
IDB4ZGFmZDYwODgpLCBUT0JOKDB4MWE3NDAxNDYsIDB4NmJkMjBkMzkpLAorICAgICAgICAgICBU
T0JOKDB4OGM3NDdhYmQsIDB4OThjNDEwNzIpLCBUT0JOKDB4NGM5MWU3NjUsIDB4YmRmNjhlYTEp
fX0sCisgICAgICAgICB7e1RPQk4oMHg3Yzk1ZTVjYSwgMHgwODgxOWE3OCksIFRPQk4oMHhjZjQ4
YjcyOSwgMHhjOTU4NzkyMSksCisgICAgICAgICAgIFRPQk4oMHgwOTFjN2M1ZiwgMHhkZWJiY2M3
ZCksIFRPQk4oMHg2ZjI4NzQwNCwgMHhmMGUwNTE0OSl9LAorICAgICAgICAgIHtUT0JOKDB4Zjgz
YjVhYzIsIDB4MjZjZDQ0ZWMpLCBUT0JOKDB4ODhhZTMyYTYsIDB4Y2ZlYTI1MGUpLAorICAgICAg
ICAgICBUT0JOKDB4NmFjNTA0N2EsIDB4MWQwNmViYzUpLCBUT0JOKDB4YzdlNTUwYjQsIDB4ZDQz
NGY3ODEpfX0sCisgICAgICAgICB7e1RPQk4oMHg2MWFiMWNmMiwgMHg1YzcyN2JkMiksIFRPQk4o
MHgyZTRiYWRiMSwgMHgxY2Y5MTViMCksCisgICAgICAgICAgIFRPQk4oMHgxYjRkYWRlYywgMHhm
NjlkMzkyMCksIFRPQk4oMHhlNjFiMWNhNiwgMHhmMTRjMWRmZSl9LAorICAgICAgICAgIHtUT0JO
KDB4OTBiNDc5Y2MsIDB4YmQ2YmQ1MWYpLCBUT0JOKDB4ODAyNGU0MDEsIDB4ODA0NWVjMzApLAor
ICAgICAgICAgICBUT0JOKDB4Y2FiMjljYTMsIDB4MjVlZjBlNjIpLCBUT0JOKDB4NGYyZTk0MTYs
IDB4NDllNGViYzApfX0sCisgICAgICAgICB7e1RPQk4oMHg0NWViNDBlYywgMHgwY2NjZWQ1OCks
IFRPQk4oMHgyNWNkNGI5YywgMHgwZGE0NGY5OCksCisgICAgICAgICAgIFRPQk4oMHg0M2UwNjQ1
OCwgMHg4NzE4MTJjNiksIFRPQk4oMHg5OWY4MGQ1NSwgMHgxNmNlZjY1MSl9LAorICAgICAgICAg
IHtUT0JOKDB4NTcxMzQwYzksIDB4Y2U2ZGMxNTMpLCBUT0JOKDB4MTM4ZDUxMTcsIDB4ZDg2NjU1
MjEpLAorICAgICAgICAgICBUT0JOKDB4YWNkYjQ1YmMsIDB4NGUwNzAxNGQpLCBUT0JOKDB4MmYz
NGJiMzgsIDB4ODRiNjBiOTEpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNDRhNGZkMiwgMHgyYWU4
OTIxZSksIFRPQk4oMHhiMDM5Mjg4ZSwgMHg4OTJiYTFlMiksCisgICAgICAgICAgIFRPQk4oMHg5
ZGE1MDE3NCwgMHhiMWMxODBiMiksIFRPQk4oMHg2YjcwYWI2NiwgMHgxNjkzZGM4Nyl9LAorICAg
ICAgICAgIHtUT0JOKDB4N2U5YmFiYzksIDB4ZTcwNTc0ODEpLCBUT0JOKDB4NDU4MWRkZWYsIDB4
OWM4MGRjNDEpLAorICAgICAgICAgICBUT0JOKDB4MGM4OTBkYTksIDB4NTEyOTQ2ODIpLCBUT0JO
KDB4MGI1NjI5ZDMsIDB4M2Y0NzM2ZTUpfX0sCisgICAgICAgICB7e1RPQk4oMHgyMzQwYzc5ZSwg
MHhiMDZmNWI0MSksIFRPQk4oMHhhNDJlODRjZSwgMHg0ZTI0MzQ2OSksCisgICAgICAgICAgIFRP
Qk4oMHhmOWEyMDEzNSwgMHgwNDVhNzFhOSksIFRPQk4oMHhlZmJmYjQxNSwgMHhkMjdiNmZiNil9
LAorICAgICAgICAgIHtUT0JOKDB4MjVlYmVhMjMsIDB4OWQzM2NkNmYpLCBUT0JOKDB4OWNhZWRi
ODgsIDB4YWE2YzBhZjgpLAorICAgICAgICAgICBUT0JOKDB4NTNkYzdlOWEsIDB4ZDljZTZmOTYp
LCBUT0JOKDB4Mzg5N2Y5ZmQsIDB4NTFlMGIxNWEpfX0sCisgICAgICAgICB7e1RPQk4oMHhmNTFj
YjFmOCwgMHg4ZTVkNzg4ZSksIFRPQk4oMHgxYWVjN2JhOCwgMHhlMWQ0OTBlZSksCisgICAgICAg
ICAgIFRPQk4oMHgyNjU5OTFlMCwgMHhjYzU4Y2IzYyksIFRPQk4oMHg5ZjMwNmU4YywgMHg5ZmMz
YWQzMSl9LAorICAgICAgICAgIHtUT0JOKDB4NWZlZDAwNmUsIDB4NTA0MGEwYWMpLCBUT0JOKDB4
Y2E5ZDUwNDMsIDB4ZmI0NzZmMmUpLAorICAgICAgICAgICBUT0JOKDB4YTE5YzA2ZTgsIDB4YmVl
YTdhMjMpLCBUT0JOKDB4ZDI4NjU4MDEsIDB4MGVkYWJiNjMpfX0sCisgICAgICAgICB7e1RPQk4o
MHhkYjkyMjkzZiwgMHg2OTY3NDY5YSksIFRPQk4oMHgyODk0ZDgzOSwgMHg4ZDhhOGVkOCksCisg
ICAgICAgICAgIFRPQk4oMHg4N2M5ZTQwNiwgMHhiYmM3NzEyMiksIFRPQk4oMHg4NjcxYzZmMSwg
MHgyZWEzYTI2YSl9LAorICAgICAgICAgIHtUT0JOKDB4ZTQyZGY4ZDYsIDB4ZDdkZTk4NTMpLCBU
T0JOKDB4MmUzY2UzNDYsIDB4YjFmMmJjYzcpLAorICAgICAgICAgICBUT0JOKDB4ZGE2MDFkZmMs
IDB4ODk5ZDUwY2YpLCBUT0JOKDB4YmZjOTEzZGUsIDB4ZmIxYjU5OGYpfX0sCisgICAgICAgICB7
e1RPQk4oMHg4MWM0OTA5ZiwgMHhlNjFmNzkwOCksIFRPQk4oMHgxOTJlMzA0ZiwgMHg5YmJjN2Iy
OSksCisgICAgICAgICAgIFRPQk4oMHhjM2VkODczOCwgMHhjMTA0YjMzOCksIFRPQk4oMHhlZGJl
OWU0NywgMHg3ODNmNWQ2MSl9LAorICAgICAgICAgIHtUT0JOKDB4MGMwNmU5YmUsIDB4MmRiMzA2
NjApLCBUT0JOKDB4ZGEzZTYxM2YsIDB4YzBlYjdkOGUpLAorICAgICAgICAgICBUT0JOKDB4ZDhm
YTNlOTcsIDB4MzIyZTA5NmUpLCBUT0JOKDB4ZmViZDkxZTgsIDB4ZDMzNmUyNDcpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg4ZjEzY2NjNCwgMHhkZjY1NWE0OSksIFRPQk4oMHhhOWUwMGRmYywgMHg1
ZWIyMDIxMCksCisgICAgICAgICAgIFRPQk4oMHg4NDYzMWQwZiwgMHhjNjU2YjZlYSksIFRPQk4o
MHg5M2EwNThjZCwgMHhkOGMwZDk0Nyl9LAorICAgICAgICAgIHtUT0JOKDB4Njg0NjkwNGEsIDB4
NjdiZDM0NDgpLCBUT0JOKDB4NGEzZDRlMWEsIDB4ZjM5NGZkNWMpLAorICAgICAgICAgICBUT0JO
KDB4YzEwMmMxYTUsIDB4ZGIyMjVmNTIpLCBUT0JOKDB4ZTM0NTViYmEsIDB4ZmM0ZjVlOWEpfX0s
CisgICAgICAgICB7e1RPQk4oMHg2YjM2OTg1YiwgMHg0YjlhZDFjZSksIFRPQk4oMHhhOTgxODUz
NiwgMHg1YmI3Zjc5MyksCisgICAgICAgICAgIFRPQk4oMHg2YzI1ZTFkMCwgMHg0OGIxYTQxNiks
IFRPQk4oMHgxMzgxZGQ1MywgMHgzYzgxYmVlNyl9LAorICAgICAgICAgIHtUT0JOKDB4ZDJhMzBk
NjEsIDB4N2E0YTc2MjApLCBUT0JOKDB4Yzg0MTI5MjYsIDB4MzliODk0NGMpLAorICAgICAgICAg
ICBUT0JOKDB4M2MxYzZmYmUsIDB4N2E5N2MzM2EpLCBUT0JOKDB4OTQxZTU0MWQsIDB4OTM4NjY0
ZTcpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MTc0OTllOCwgMHg0YTM0ZjIzOSksIFRPQk4oMHgx
NWZkYjgzYywgMHhiOTA0MDJkNSksCisgICAgICAgICAgIFRPQk4oMHhiNzVmNDZiZiwgMHg0MzNh
YTgzMiksIFRPQk4oMHhiNjFlMTVhZiwgMHg2MzIxNWRiMSl9LAorICAgICAgICAgIHtUT0JOKDB4
YWFiZTU5ZDQsIDB4YTEyN2Y4OWEpLCBUT0JOKDB4NWQ1NDFlMGMsIDB4MDdlODE2ZGEpLAorICAg
ICAgICAgICBUT0JOKDB4YWFiYTA2NTksIDB4YTYxOGI2OTIpLCBUT0JOKDB4NTUzMjc3MzMsIDB4
MTcyNjYwMjYpfX0sCisgICAgICAgICB7e1RPQk4oMHhhZjUzYTBmYywgMHg5NWY1NzU1MiksIFRP
Qk4oMHgzMjk0NzY1MCwgMHg2Y2FjYjBjOSksCisgICAgICAgICAgIFRPQk4oMHgyNTNmZjU4ZCwg
MHhjODIxYmUwMSksIFRPQk4oMHhiMDMwOTUzMSwgMHhhMDZmMTE0Nil9LAorICAgICAgICAgIHtU
T0JOKDB4NTliYmJkZjUsIDB4MDVjMmU1NGQpLCBUT0JOKDB4MTU4ZjI3YWQsIDB4MjZlOGRkMjIp
LAorICAgICAgICAgICBUT0JOKDB4Y2M1YjdmZmIsIDB4Mzk3ZTFlNTMpLCBUT0JOKDB4YWUwM2Y2
NWIsIDB4N2ZjMWU1MGQpfX0sCisgICAgICAgICB7e1RPQk4oMHhhOTc4NGViZCwgMHg5Yzk1ZjBm
OSksIFRPQk4oMHg1ZWQ5ZGViMiwgMHgyNDY0MDc3MSksCisgICAgICAgICAgIFRPQk4oMHgzMTI0
NGFmNywgMHgwMzU1NjFjNCksIFRPQk4oMHg4NzMzMmYzYSwgMHg3ZWU4NTdkZSl9LAorICAgICAg
ICAgIHtUT0JOKDB4MDllMTZlOWUsIDB4MmI5ZTBkODgpLCBUT0JOKDB4NTJkOTEwZjQsIDB4NTZh
MDYwNDkpLAorICAgICAgICAgICBUT0JOKDB4NTA3ZWQ0NzcsIDB4YTk1OTJmNDgpLCBUT0JOKDB4
ODVjYjkxN2IsIDB4MjM2NWQ2NzgpfX0sCisgICAgICAgICB7e1RPQk4oMHhmODUxMWM5MywgMHg0
Yzg5OThkMSksIFRPQk4oMHgyMTg2YTNmMSwgMHg3MzBlYTU4ZiksCisgICAgICAgICAgIFRPQk4o
MHg1MDE4OTYyNiwgMHhiMjAyOWRiMCksIFRPQk4oMHg5MTM3YTZkOSwgMHgwMmNlYjc1YSl9LAor
ICAgICAgICAgIHtUT0JOKDB4MmZlMTdmMzcsIDB4NzQ4YmM4MmMpLCBUT0JOKDB4ODdjMmU5MzEs
IDB4ODA0NjlmOGMpLAorICAgICAgICAgICBUT0JOKDB4ODUwZjcxY2QsIDB4YmY4OTFhYTIpLCBU
T0JOKDB4MGNhMWI4OWIsIDB4NzVlYzNkOGQpfX0sCisgICAgICAgICB7e1RPQk4oMHg1MTZjNDNh
YSwgMHg1ZTFjZDNjZCksIFRPQk4oMHg4OTM5NzgwOCwgMHg5YTg4N2MyOCksCisgICAgICAgICAg
IFRPQk4oMHgwMDU5YzY5OSwgMHhkZGVhMWY5ZiksIFRPQk4oMHg3NzM3ZDZmYSwgMHg4ZTY4Njhm
Nyl9LAorICAgICAgICAgIHtUT0JOKDB4NmQ5Mzc0NmEsIDB4NjBmMTUyNGIpLCBUT0JOKDB4MzY5
ODVlNTUsIDB4YmEwNTJhYTcpLAorICAgICAgICAgICBUT0JOKDB4NDFiMWQzMjIsIDB4ZWQ5MjNl
YTUpLCBUT0JOKDB4MzQyOTc1OWYsIDB4MjU4NTJhMTEpfX0sCisgICAgICAgICB7e1RPQk4oMHhi
ZWNhNmVjMywgMHgwOTJlOWY0MSksIFRPQk4oMHgzYTIzOGM2NiwgMHg2MjI1NmJiZCksCisgICAg
ICAgICAgIFRPQk4oMHhkODI5NThlYSwgMHg3MGFkNDg3ZCksIFRPQk4oMHg0YWM4YWFmOSwgMHg2
NTYxMGQ5Myl9LAorICAgICAgICAgIHtUT0JOKDB4M2ZhMTAxYjEsIDB4NWU0Y2NhYjApLCBUT0JO
KDB4OWJmNDMwZjIsIDB4OWRlMTRiZmIpLAorICAgICAgICAgICBUT0JOKDB4YTEwZjVjYzYsIDB4
NjUzMTg5OWQpLCBUT0JOKDB4NTkwMDA1ZmIsIDB4ZWE4Y2UxN2QpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhjNDM3OTEyZiwgMHgyNDU0NGNiNiksIFRPQk4oMHg5OTg3YjcxYSwgMHhkNzlhYzJlMyks
CisgICAgICAgICAgIFRPQk4oMHgxM2UzZDlkZCwgMHhjMDU4YTIxMiksIFRPQk4oMHgwMDA3NWFh
YywgMHhkMmRlOTYwNil9LAorICAgICAgICAgIHtUT0JOKDB4ODBhYjUwOGIsIDB4NmNhYzgzNjkp
LCBUT0JOKDB4ODc4NDJiZTcsIDB4ZjU0ZjZjODkpLAorICAgICAgICAgICBUT0JOKDB4YTdhZDY2
M2QsIDB4NmJjNTMyYTQpLCBUT0JOKDB4Njc4MTNkZTcsIDB4NzhhOTFiYzgpfX0sCisgICAgICAg
ICB7e1RPQk4oMHg1ZGNiNjFjZSwgMHhjMzQyNzIzOSksIFRPQk4oMHg1ZjNjN2NmMCwgMHhjNTY5
MzRkOSksCisgICAgICAgICAgIFRPQk4oMHhjMDc5ZTBmYiwgMHhlMzE5MTU5MSksIFRPQk4oMHhl
NDA4OTZiZCwgMHhiMDFhYWRhNyl9LAorICAgICAgICAgIHtUT0JOKDB4OGQ0NjY3OTEsIDB4MDQ5
MmQyNWYpLCBUT0JOKDB4OGFlYjMwYzksIDB4ZTc0MDgyNzYpLAorICAgICAgICAgICBUT0JOKDB4
ZTk0Mzc0OTUsIDB4OTI4N2FhY2MpLCBUT0JOKDB4MjNkNDcwOGQsIDB4NzlmZTAzZDQpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg4Y2RhOWNmMiwgMHhkMGMwNTE5OSksIFRPQk4oMHg1MDJmYmMyMiwg
MHhmYWU3ODQ1NCksCisgICAgICAgICAgIFRPQk4oMHhjMGJkYTlkZiwgMHhmNTcyYTE4MiksIFRP
Qk4oMHg1ZjliNzFiOCwgMHg2MTU4YjM3Mil9LAorICAgICAgICAgIHtUT0JOKDB4ZTBmMzNhNTks
IDB4MmI4MmRkMDcpLCBUT0JOKDB4NzYzMDI3MzUsIDB4OTUyMzAzMmUpLAorICAgICAgICAgICBU
T0JOKDB4N2ZlMWE3MjEsIDB4YzQ1MDVhMzIpLCBUT0JOKDB4N2I2ZTNlODIsIDB4Zjc5NjQwOWYp
fX19LAorICAgICAgICB7e3tUT0JOKDB4ZTM0MTdiYzAsIDB4MzVkMGIzNGEpLCBUT0JOKDB4NDQw
YjM4NmIsIDB4ODMyN2MwYTcpLAorICAgICAgICAgICBUT0JOKDB4OGZiNzI2MmQsIDB4YWMwMzYy
ZDEpLCBUT0JOKDB4MmM0MTExNGMsIDB4ZTBjZGY5NDMpfSwKKyAgICAgICAgICB7VE9CTigweDJi
YTVjZWYxLCAweGFkOTVhMGIxKSwgVE9CTigweGMwOWIzN2E4LCAweDY3ZDU0MzYyKSwKKyAgICAg
ICAgICAgVE9CTigweDI2ZDZjZGQyLCAweDAxZTQ4NmM5KSwgVE9CTigweDIwNDc3YWJmLCAweDQy
ZmY5Mjk3KX19LAorICAgICAgICAge3tUT0JOKDB4YTAwNGRjYjMsIDB4MjkyYTkyODcpLCBUT0JO
KDB4ZGRjMTVjZjYsIDB4NzdiMDkyYzcpLAorICAgICAgICAgICBUT0JOKDB4MDgzYTg0NjQsIDB4
ODA2YzA2MDUpLCBUT0JOKDB4NGE2OGRmNzAsIDB4M2RiOTk3YjApfSwKKyAgICAgICAgICB7VE9C
TigweDljMTM0ZTQ1LCAweDA1YmY3ZGQwKSwgVE9CTigweGE0ZTYzZDM5LCAweDhjY2Y3ZjhjKSwK
KyAgICAgICAgICAgVE9CTigweGE2ZTY1MTdmLCAweDQxYjVmOGFmKSwgVE9CTigweGFhOGI5MzQy
LCAweGFkN2JjMWNjKX19LAorICAgICAgICAge3tUT0JOKDB4MTI2ZjM1YjUsIDB4MWU3MDZhZDkp
LCBUT0JOKDB4Yjk5Y2ViYjQsIDB4YzNhOWViZGYpLAorICAgICAgICAgICBUT0JOKDB4YTc1Mzg5
YWYsIDB4YmY2MDhkOTApLCBUT0JOKDB4NzYxMTNjNGYsIDB4YzZjODk4NTgpfSwKKyAgICAgICAg
ICB7VE9CTigweDgwZGU4ZWIwLCAweDk3ZTJiNWFhKSwgVE9CTigweDdlMTAyMmNjLCAweDYzYjkx
MzA0KSwKKyAgICAgICAgICAgVE9CTigweDNiZGFiNjA1LCAweDZjY2MwNjZjKSwgVE9CTigweDMz
Y2JiMTQ0LCAweGIyZWRmOTAwKX19LAorICAgICAgICAge3tUT0JOKDB4YzQxNzY0NzEsIDB4N2Fm
NzE1ZDIpLCBUT0JOKDB4ZTJmN2Y1OTQsIDB4ZDAxMzRhOTYpLAorICAgICAgICAgICBUT0JOKDB4
MmMxODczZWYsIDB4YTQxZWM5NTYpLCBUT0JOKDB4ZTRlN2I0ZjYsIDB4Nzc4MjEzMDQpfSwKKyAg
ICAgICAgICB7VE9CTigweGU1YzhmZjk3LCAweDg4ZDUzNzRhKSwgVE9CTigweDJiOTE1ZTYzLCAw
eDgwODIzZDViKSwKKyAgICAgICAgICAgVE9CTigweGVhNmJjNzU1LCAweGIyZWU4ZmUyKSwgVE9C
TigweDY2NTc2MjRjLCAweGU3MTEyNjUxKX19LAorICAgICAgICAge3tUT0JOKDB4MTU3YWYxMDEs
IDB4ZGFjZTVhY2EpLCBUT0JOKDB4YzRmZGJjZjIsIDB4MTFhNmEyNjcpLAorICAgICAgICAgICBU
T0JOKDB4ZGFkZGYzNDAsIDB4YzQ5Yzg2MDkpLCBUT0JOKDB4OTdlNDlmNTIsIDB4ZTk2MDRhNjUp
fSwKKyAgICAgICAgICB7VE9CTigweDliZThlNzkwLCAweDkzN2UyYWQ1KSwgVE9CTigweDg0NmUy
NTA4LCAweDMyNmUxN2YxKSwKKyAgICAgICAgICAgVE9CTigweDNmMzgwMDdhLCAweDBiYmJjMGRj
KSwgVE9CTigweGNmMDM2MDNmLCAweGIxMWUxNmQ2KX19LAorICAgICAgICAge3tUT0JOKDB4ZDZm
ODAwZTAsIDB4NzQ0MmYxZDUpLCBUT0JOKDB4NDc1NjA3ZDEsIDB4NjZlMGUzYWIpLAorICAgICAg
ICAgICBUT0JOKDB4ODI4MDdmMTYsIDB4YjdjNjQwNDcpLCBUT0JOKDB4ODg1OGUxZTMsIDB4YTc0
OTg4M2QpfSwKKyAgICAgICAgICB7VE9CTigweDU4NTkxMjBiLCAweDgyMzFlZTEwKSwgVE9CTigw
eDFiODBlN2ViLCAweDYzOGExZWNlKSwKKyAgICAgICAgICAgVE9CTigweGNiNzI1MjVhLCAweGM2
YWE3M2E0KSwgVE9CTigweGE3Y2RlYTNkLCAweDg0NDQyM2FjKX19LAorICAgICAgICAge3tUT0JO
KDB4NWVkMGMwMDcsIDB4ZjhhZTdjMzgpLCBUT0JOKDB4NmRiMDdhNWMsIDB4M2Q3NDAxOTIpLAor
ICAgICAgICAgICBUT0JOKDB4YmU1ZTljMmEsIDB4NWZlMzZkYjMpLCBUT0JOKDB4ZDViOWQ1N2Es
IDB4NzZlOTUwNDYpfSwKKyAgICAgICAgICB7VE9CTigweDU0YWMzMmU3LCAweDhlYmEyMGYyKSwg
VE9CTigweGVmMTFjYThmLCAweDcxYjlhMzUyKSwKKyAgICAgICAgICAgVE9CTigweDMwNWUzNzNl
LCAweGZmOThhNjU4KSwgVE9CTigweGZmZTVhMTAwLCAweDgyM2ViNjY3KX19LAorICAgICAgICAg
e3tUT0JOKDB4NTc0NzdiMTEsIDB4ZTUxNzMyZDIpLCBUT0JOKDB4ZGZkNmViMjgsIDB4MjUzOGZj
MGUpLAorICAgICAgICAgICBUT0JOKDB4NWM0M2IwY2MsIDB4M2IzOWVlYzUpLCBUT0JOKDB4NmFm
MTI3NzgsIDB4Y2IzNmNjNTcpfSwKKyAgICAgICAgICB7VE9CTigweDcwYjA4NTJkLCAweDA2YzQy
NWFlKSwgVE9CTigweDZkZjkyZjhjLCAweDVjMjIxYjliKSwKKyAgICAgICAgICAgVE9CTigweDZj
OGQ0ZjllLCAweGNlODI2ZDljKSwgVE9CTigweGY1OWFiYTdiLCAweGI0OTM1OWMzKX19LAorICAg
ICAgICAge3tUT0JOKDB4NWM4ZWQ4ZDUsIDB4ZGE2NDMwOWQpLCBUT0JOKDB4NjFhNmRlNTYsIDB4
OTFiMzA3MDQpLAorICAgICAgICAgICBUT0JOKDB4ZDZiNTJmNmEsIDB4MmY5YjU4MDgpLCBUT0JO
KDB4MGVlZTQxOTQsIDB4OThjOTU4YTcpfSwKKyAgICAgICAgICB7VE9CTigweGNkZGQ5YWFiLCAw
eDc3MWU0Y2FhKSwgVE9CTigweDgzOTY1ZGZkLCAweDc4YmMyMWJlKSwKKyAgICAgICAgICAgVE9C
TigweDAyYWZmY2UzLCAweGIzYjUwNGY1KSwgVE9CTigweDMwODQ3YTIxLCAweDU2MWM4MjkxKX19
LAorICAgICAgICAge3tUT0JOKDB4ZDJlYjJjZjEsIDB4NTJiZmRhMDUpLCBUT0JOKDB4ZTBlNGM0
ZTksIDB4NjE5N2I5OGMpLAorICAgICAgICAgICBUT0JOKDB4MWQzNTA3NmMsIDB4ZjhhMTcyNmYp
LCBUT0JOKDB4NmMwNjA4NWIsIDB4MmRiMTFlM2QpfSwKKyAgICAgICAgICB7VE9CTigweDE1YzBj
NGQ3LCAweDQ0NjNiYTE0KSwgVE9CTigweDlkMjkyZjgzLCAweDAwMzAyMzhjKSwKKyAgICAgICAg
ICAgVE9CTigweDEzMTFlZThiLCAweDM3Mjc1MzZkKSwgVE9CTigweGZlZWE4NmVmLCAweGJlYWVk
YzFlKX19LAorICAgICAgICAge3tUT0JOKDB4YjlkMThjZDMsIDB4NjYxMzFlMmUpLCBUT0JOKDB4
ZjMxZDk3NGYsIDB4ODBmZTI2ODIpLAorICAgICAgICAgICBUT0JOKDB4YjZlNDllMGYsIDB4ZTQx
NjAyODkpLCBUT0JOKDB4N2M0OGVjMGIsIDB4MDhlOTI3OTkpfSwKKyAgICAgICAgICB7VE9CTigw
eDgxODExMWQ4LCAweGQxOTg5YWE3KSwgVE9CTigweGIzNGZhMGFhLCAweGViZjkyNmY5KSwKKyAg
ICAgICAgICAgVE9CTigweGRiNWZlMmY1LCAweGEyNDU0NzRhKSwgVE9CTigweGY4MGE2ZWJiLCAw
eDNjN2NhNzU2KX19LAorICAgICAgICAge3tUT0JOKDB4YTdmOTYwNTQsIDB4YWZhMDVkZDgpLCBU
T0JOKDB4MjZkZmNmMjEsIDB4ZmNhZjExOWUpLAorICAgICAgICAgICBUT0JOKDB4ZTIwZWYyZTMs
IDB4MDU2NGJiNTkpLCBUT0JOKDB4ZWY0ZGNhNTAsIDB4NjFjYjAyYjgpfSwKKyAgICAgICAgICB7
VE9CTigweGNkYTc4MzhhLCAweDY1ZDMwNjcyKSwgVE9CTigweDhiMDhkNTM0LCAweGZkNjU3ZTg2
KSwKKyAgICAgICAgICAgVE9CTigweDRjNWI0Mzk1LCAweDQ2ZDU5NWM4KSwgVE9CTigweDM5YjU4
NzI1LCAweDQyNWNiODM2KX19LAorICAgICAgICAge3tUT0JOKDB4OGVhNjEwNTksIDB4M2RlOWFi
ZTMpLCBUT0JOKDB4NDA0MzQ4ODEsIDB4OWNkYzAzYmUpLAorICAgICAgICAgICBUT0JOKDB4OWIy
NjEyNDUsIDB4Y2ZlZGNlOGMpLCBUT0JOKDB4NzhjMzE4YjQsIDB4Y2Y1MjM0YTEpfSwKKyAgICAg
ICAgICB7VE9CTigweDUxMGJjZjE2LCAweGZkZTI0Yzk5KSwgVE9CTigweDJhNzdjYjc1LCAweGEy
YzJmZjVkKSwKKyAgICAgICAgICAgVE9CTigweDljODk1YzJiLCAweDI3OTYwZmI0KSwgVE9CTigw
eGQzMGNlOTc1LCAweGIwZWRhNDJiKX19LAorICAgICAgICAge3tUT0JOKDB4ZmRhODUzOTMsIDB4
MWE2MmNjMjYpLCBUT0JOKDB4MjNjNjliOTYsIDB4NTBjMGUwNTIpLAorICAgICAgICAgICBUT0JO
KDB4YTIyN2RmMTUsIDB4YmZjNjMzZjMpLCBUT0JOKDB4MmFjNzg4NDgsIDB4MWJhZTdkNDgpfSwK
KyAgICAgICAgICB7VE9CTigweDQ4Nzg3OGY5LCAweDE4N2QwNzNkKSwgVE9CTigweDZjMmJlOTE5
LCAweDk2N2Y4MDdkKSwKKyAgICAgICAgICAgVE9CTigweDc2NTg2MWQ4LCAweDMzNmU2ZDhmKSwg
VE9CTigweDg4Yjg5NzRjLCAweGNlNTI4YTQzKX19LAorICAgICAgICAge3tUT0JOKDB4MDk1MjEx
NzcsIDB4ZmY1N2QwNTEpLCBUT0JOKDB4MmZmMzgwMzcsIDB4ZmI2YTE5NjEpLAorICAgICAgICAg
ICBUT0JOKDB4ZmMwYWJhNzQsIDB4YTNkNzZhZDQpLCBUT0JOKDB4N2M3NjQ4MDMsIDB4MjVhN2Vj
MTcpfSwKKyAgICAgICAgICB7VE9CTigweDc1MzJkNzVmLCAweDQ4ODc5YmM4KSwgVE9CTigweGVh
N2VhY2MwLCAweDU4Y2U2YmMxKSwKKyAgICAgICAgICAgVE9CTigweGM4MjE3NmI0LCAweDhlODk2
YzE2KSwgVE9CTigweDlhMzBlMGIyLCAweDJjNzUwZmVkKX19LAorICAgICAgICAge3tUT0JOKDB4
YzM3ZTJjMmUsIDB4NDIxZDNhYTQpLCBUT0JOKDB4ZjkyNjQwN2MsIDB4ZTg0ZmE4NDApLAorICAg
ICAgICAgICBUT0JOKDB4MThhYmMwM2QsIDB4MTQ1NGU0MWMpLCBUT0JOKDB4MjY2MDVlY2QsIDB4
M2Y3YWY2NDQpfSwKKyAgICAgICAgICB7VE9CTigweDI0MjM0MWE2LCAweGQ2YTVlYWJmKSwgVE9C
TigweDFlZGI4NGY0LCAweDIxNmI2NjhlKSwKKyAgICAgICAgICAgVE9CTigweGQ4MzZlZGI4LCAw
eDA0MDEwMTAyKSwgVE9CTigweDViMzM3Y2U3LCAweDk0NWUxZDhjKX19LAorICAgICAgICAge3tU
T0JOKDB4ZDIwNzVjNzcsIDB4YzA1NWRjMTQpLCBUT0JOKDB4MmEwZmZhMjUsIDB4ODFkODljZGYp
LAorICAgICAgICAgICBUT0JOKDB4OGNlODE1ZWEsIDB4NmZmZGNiYWYpLCBUT0JOKDB4YTM0Mjg4
NzgsIDB4ZmI2NDg4NjcpfSwKKyAgICAgICAgICB7VE9CTigweDI3NzY5OWNmLCAweDg4NDY1NWZi
KSwgVE9CTigweGZhNWI1YmQ2LCAweDM2NGQzZTQxKSwKKyAgICAgICAgICAgVE9CTigweDAxZjY4
MGM2LCAweDQ0MWUxY2I3KSwgVE9CTigweDNmZDYxZTY2LCAweGI3MGE3ZDY3KX19LAorICAgICAg
ICAge3tUT0JOKDB4NjY2YmEyZGMsIDB4Y2M3OGNmNjYpLCBUT0JOKDB4YjMwMTgxNzQsIDB4NmZk
YmZmNzcpLAorICAgICAgICAgICBUT0JOKDB4OGQ0ZGQwZGIsIDB4MTY4ZDQ2NjgpLCBUT0JOKDB4
MjU5NDU1ZDAsIDB4MWRhYjNhMmEpfSwKKyAgICAgICAgICB7VE9CTigweGY1ODU2NGM1LCAweGNk
ZTNhY2VjKSwgVE9CTigweDc3MTQxOTI1LCAweDEzYWRiMjc2KSwKKyAgICAgICAgICAgVE9CTigw
eDUyN2Q3MjVkLCAweDhhMzAzZjY1KSwgVE9CTigweDU1ZGViNmM5LCAweGU2ZjM4ZjdiKX19LAor
ICAgICAgICAge3tUT0JOKDB4ZmQ1YmI2NTcsIDB4YjFmYTcwZmIpLCBUT0JOKDB4ZmEwN2Y1MGYs
IDB4ZDgwNzNhMDApLAorICAgICAgICAgICBUT0JOKDB4ZjcyZTNhYTcsIDB4YmNhMDI1MDApLCBU
T0JOKDB4ZjY4Zjg5NWQsIDB4OTk3NTc0MGQpfSwKKyAgICAgICAgICB7VE9CTigweDMwMTEyMDYw
LCAweDVjYWUyYTZhKSwgVE9CTigweDAxYmQ3MjE4LCAweDAyODc0ODQyKSwKKyAgICAgICAgICAg
VE9CTigweDNkNDIzODkxLCAweDdjZTQ3YmQzKSwgVE9CTigweGE2NjY2M2MxLCAweDc4OTU0NGY2
KX19LAorICAgICAgICAge3tUT0JOKDB4ODY0ZDA1ZDcsIDB4MzI3MmQ4MzgpLCBUT0JOKDB4ZTIy
OTI0ZjksIDB4ZmE2Mjk1YzUpLAorICAgICAgICAgICBUT0JOKDB4ODE4OTU5M2YsIDB4NmMyZmRh
MzIpLCBUT0JOKDB4MzMwZDcxODksIDB4YjE4NGI1NDQpfSwKKyAgICAgICAgICB7VE9CTigweDc5
ZWZhNjJjLCAweGJkZTFmNzE0KSwgVE9CTigweDM1NzcxYzk0LCAweGU1Y2IxYTYzKSwKKyAgICAg
ICAgICAgVE9CTigweDJmNDgyNmI4LCAweDY0MWM4MzMyKSwgVE9CTigweDAwYTg5NGZiLCAweGM4
Y2VlODU0KX19LAorICAgICAgICAge3tUT0JOKDB4YjRiOWEzOWIsIDB4MzYxOTRkNDApLCBUT0JO
KDB4ZTg1N2E3YzUsIDB4Nzc2MTI2MDEpLAorICAgICAgICAgICBUT0JOKDB4ZjQyMDlkZDIsIDB4
NGVjZjJmNTgpLCBUT0JOKDB4ODJiOWU2NmQsIDB4NWEwMzM0ODcpfSwKKyAgICAgICAgICB7VE9C
TigweGMxZTM2OTM0LCAweGU0ZThiOWRkKSwgVE9CTigweGQyMzcyYzlkLCAweGE0MjM3N2Q3KSwK
KyAgICAgICAgICAgVE9CTigweDUxZGM5NGM3LCAweDBlM2FlNDNiKSwgVE9CTigweDRjNTc3NjFl
LCAweDA0NDc0ZjZmKX19LAorICAgICAgICAge3tUT0JOKDB4ZGNkYWNkMGEsIDB4MTA1OGEzMTgp
LCBUT0JOKDB4MzY5Y2YzZjUsIDB4NzgwNTNhOWEpLAorICAgICAgICAgICBUT0JOKDB4YzZjM2Rl
NTAsIDB4MzFjNjhkZTIpLCBUT0JOKDB4NDY1M2E1NzYsIDB4M2M0YjZkOWYpfSwKKyAgICAgICAg
ICB7VE9CTigweDE2ODhkZDVhLCAweGFhNGU1Yzk3KSwgVE9CTigweDViZTgwYWExLCAweGI3YWIz
Yzc0KSwKKyAgICAgICAgICAgVE9CTigweDcwY2VmZTdjLCAweGJjNjVjMjgzKSwgVE9CTigweDU3
Zjk1ZjEzLCAweDA2ODY3MDkxKX19LAorICAgICAgICAge3tUT0JOKDB4YTM5MTE0ZTIsIDB4NDQx
NTUwM2IpLCBUT0JOKDB4YzA4ZmY3YzYsIDB4NGNiYjE3ZTkpLAorICAgICAgICAgICBUT0JOKDB4
MWVmZjY3NGQsIDB4ZDdkZWM5NjYpLCBUT0JOKDB4NmQ0NjkwYWYsIDB4NTMzNzZmNjMpfSwKKyAg
ICAgICAgICB7VE9CTigweGZmNmZlMzJlLCAweGVhNzQyMzdiKSwgVE9CTigweGM0MzZkMTdlLCAw
eGNkNTc1MDhlKSwKKyAgICAgICAgICAgVE9CTigweDE1YWEyOGUxLCAweGVkY2M0MGZlKSwgVE9C
TigweDBkNzY5YzA0LCAweDU4MWJiYjQ0KX19LAorICAgICAgICAge3tUT0JOKDB4YzI0MGI2ZGUs
IDB4MzRlYWFjZGEpLCBUT0JOKDB4ZDllMTE2ZTgsIDB4MmJhMGYxZGUpLAorICAgICAgICAgICBU
T0JOKDB4Y2JlNDVlYzcsIDB4Nzk0MzhlNTUpLCBUT0JOKDB4OTE3ODdjOWQsIDB4OTZmNzUyZDcp
fSwKKyAgICAgICAgICB7VE9CTigweDg5N2Y1MzJiLCAweGYxMjlhYzJmKSwgVE9CTigweGQzMDdi
N2M4LCAweDVhMzZlMjJjKSwKKyAgICAgICAgICAgVE9CTigweDkxOTQwNjc1LCAweDc0OWZiOGYz
KSwgVE9CTigweGQxNGY5NWQwLCAweDE1N2ZkYjI4KX19LAorICAgICAgICAge3tUT0JOKDB4ZmU1
MWQwMjksIDB4NmFlNTUwNDMpLCBUT0JOKDB4ODkzMWU5OGYsIDB4NDRhODdkZTEpLAorICAgICAg
ICAgICBUT0JOKDB4ZTU3ZjFjYzYsIDB4MDllNGZlZTIpLCBUT0JOKDB4MGQwNjNiNjcsIDB4NGUw
NzJkOTIpfSwKKyAgICAgICAgICB7VE9CTigweDcwYTk5OGI5LCAweGVkMGU0MzE2KSwgVE9CTigw
eGU3NGE3MzZiLCAweDMwNmFjYTQ2KSwKKyAgICAgICAgICAgVE9CTigweGVjZjBmYmYyLCAweDRm
ZGE5N2M3KSwgVE9CTigweGE0MGY2NWNiLCAweDNlMTc4ZDkzKX19LAorICAgICAgICAge3tUT0JO
KDB4MTYyNTM2MDQsIDB4MTZkZjQyODUpLCBUT0JOKDB4YjBjOWJhYmIsIDB4ZDBjNTZhZTIpLAor
ICAgICAgICAgICBUT0JOKDB4NzMwMzJiMTksIDB4Y2ZjNWNmYzMpLCBUT0JOKDB4ZTQ5N2U1YzMs
IDB4MDk3NTIwNTYpfSwKKyAgICAgICAgICB7VE9CTigweDEyMDk2YmI0LCAweDE2NGJkYTk2KSwg
VE9CTigweDFlZTQyNDE5LCAweGEwYjc0ZGExKSwKKyAgICAgICAgICAgVE9CTigweDhmYzM2MjQz
LCAweDQwMzgyNmJhKSwgVE9CTigweDBjOGYwMDY5LCAweGRjMDllNjYwKX19LAorICAgICAgICAg
e3tUT0JOKDB4ODY2N2U5ODEsIDB4YzI3MjUzYzkpLCBUT0JOKDB4MDVhNmFlZmIsIDB4OTJiMzZh
NDUpLAorICAgICAgICAgICBUT0JOKDB4YTYyYzRiMzYsIDB4OWNiN2JiNDYpLCBUT0JOKDB4ODM5
NGYzNzUsIDB4MTFmNzAyN2IpfSwKKyAgICAgICAgICB7VE9CTigweDc0N2JjNzljLCAweDVmMTA5
ZDBmKSwgVE9CTigweGNhZDg4YTc2LCAweDViOGNjNjBhKSwKKyAgICAgICAgICAgVE9CTigweDgw
YzVhNjZiLCAweDU4ZjA5ZTY4KSwgVE9CTigweGU3NTNkNDUxLCAweGY2MTI3ZWFjKX19LAorICAg
ICAgICAge3tUT0JOKDB4YzQ0Yjc0YTEsIDB4NWIwZWM2ZjUpLCBUT0JOKDB4NDc5ODlmZTQsIDB4
NTI4OWIyYjgpLAorICAgICAgICAgICBUT0JOKDB4NzQ1Zjg0ODQsIDB4NThkNmZjNzMpLCBUT0JO
KDB4ZWMzNjJhNmYsIDB4ZjYxYzcwYWIpfSwKKyAgICAgICAgICB7VE9CTigweDA3MGM5OGE3LCAw
eGIzYThhZDQxKSwgVE9CTigweDczYTIwZmMwLCAweDdiNjNkYjUxKSwKKyAgICAgICAgICAgVE9C
TigweGVkMmMyMTczLCAweGY0NGMzNWY0KSwgVE9CTigweDhhNTYxNDlkLCAweDlhY2M5ZGNhKX19
LAorICAgICAgICAge3tUT0JOKDB4OThmMTc4ODEsIDB4OWFjNmUwZjQpLCBUT0JOKDB4MzYwZmRl
YWYsIDB4YTQxM2I1ZWQpLAorICAgICAgICAgICBUT0JOKDB4MDYyNWI4ZjQsIDB4YTMwMGIwZmQp
LCBUT0JOKDB4ZjFmNGQ3NmEsIDB4NWIzMjIyZDMpfSwKKyAgICAgICAgICB7VE9CTigweDlkNmY1
MTA5LCAweDU4N2Y3NmI4KSwgVE9CTigweDhiNGVlMDhkLCAweDIzMTdmZGI1KSwKKyAgICAgICAg
ICAgVE9CTigweDg4MDg5YmI3LCAweDhjNjhiMDk1KSwgVE9CTigweDk1NTcwZTlhLCAweDU4MDhk
OWI5KX19LAorICAgICAgICAge3tUT0JOKDB4YTM5NWMzNmYsIDB4MzVkMzNhZTcpLCBUT0JOKDB4
MjAwZWExMjMsIDB4NTBiYjVhOTQpLAorICAgICAgICAgICBUT0JOKDB4MjBjNzg5YmQsIDB4MGJh
ZmU4NGIpLCBUT0JOKDB4MjQzZWY1MmQsIDB4MDkxOTI3NmEpfSwKKyAgICAgICAgICB7VE9CTigw
eDM5MzRjNTc3LCAweGUyM2FlMjMzKSwgVE9CTigweGI5MzgwN2FmLCAweGE0NjBkMWVjKSwKKyAg
ICAgICAgICAgVE9CTigweGI3MmE1M2IxLCAweGY4ZmE3NmE0KSwgVE9CTigweGQ4OTE0Y2IwLCAw
eGMzY2E0NDkxKX19LAorICAgICAgICAge3tUT0JOKDB4MmUxMjg0OTQsIDB4M2ZiNDI2MjIpLCBU
T0JOKDB4M2IyNzAwYWMsIDB4NTAwOTA3ZDUpLAorICAgICAgICAgICBUT0JOKDB4ZjM3MGZiMDks
IDB4MWE5NWVjNjMpLCBUT0JOKDB4ZjhmMzBiZTIsIDB4MzFiNmRmYmQpfSwKKyAgICAgICAgICB7
VE9CTigweGYyYjJmOGQyLCAweDY5ZTU1ZjE1KSwgVE9CTigweDFmZWFkODUxLCAweGNjMTMyM2U5
KSwKKyAgICAgICAgICAgVE9CTigweGZhMzY2MDEwLCAweGQ5ZTVlZWY2KSwgVE9CTigweDY0ZDQ4
N2IwLCAweGUzMTYxMDdlKX19LAorICAgICAgICAge3tUT0JOKDB4NGMwNzZiODYsIDB4ZDIzZGRj
ODIpLCBUT0JOKDB4MDNmZDM0NGMsIDB4N2UwMTQzZjApLAorICAgICAgICAgICBUT0JOKDB4YTk1
MzYyZmYsIDB4MzE3YWYyYzUpLCBUT0JOKDB4MGFkZDNkYjcsIDB4ZTE4YjdhNGYpfSwKKyAgICAg
ICAgICB7VE9CTigweDljNjczZTNmLCAweDgyNjBlMDFiKSwgVE9CTigweGZiZWI0OWU1LCAweDU0
YTFjYzkxKSwKKyAgICAgICAgICAgVE9CTigweDkxMzUxYmYyLCAweDkyZjJlNDMzKSwgVE9CTigw
eGM3NTVlN2VjLCAweDg1MTE0MWViKX19LAorICAgICAgICAge3tUT0JOKDB4YzlhOTUxMzksIDB4
Mjk2MDc3NDUpLCBUT0JOKDB4MGNhMDc0MjAsIDB4YTI2ZjJiMjgpLAorICAgICAgICAgICBUT0JO
KDB4Y2IyNzkwZTcsIDB4NGJjNmY5ZGQpLCBUT0JOKDB4MzQ1YmJiNTgsIDB4YWRjYWZmYzApfSwK
KyAgICAgICAgICB7VE9CTigweGM2NWVhMzhjLCAweGJlMGYyN2EyKSwgVE9CTigweDY3YzI0ZDdj
LCAweDY0MWZjYjU2KSwKKyAgICAgICAgICAgVE9CTigweDJjMjVmMGE3LCAweGE5ZTJjNzU3KSwg
VE9CTigweDkzZjVjZGIwLCAweDE2ZjE2YzQ5KX19LAorICAgICAgICAge3tUT0JOKDB4MmNhNWE5
ZDcsIDB4YzVlZTMwYTEpLCBUT0JOKDB4ZDE1OTM2MzUsIDB4YjkwOWI3MjkpLAorICAgICAgICAg
ICBUT0JOKDB4ODA0Y2U5ZjMsIDB4ZGFkZWZmNDgpLCBUT0JOKDB4ZWM0NjQ3NTEsIDB4YjA3YzMw
YzMpfSwKKyAgICAgICAgICB7VE9CTigweDg5ZDY1ZmYzLCAweDllNDlhZjZhKSwgVE9CTigweGYy
ZDYyMzhhLCAweDZmM2QwMWJjKSwKKyAgICAgICAgICAgVE9CTigweDEwOTU1NjFlLCAweDBiY2Vk
ODQzKSwgVE9CTigweDUxNzg5ZTEyLCAweGM4YTEzZmQ4KX19LAorICAgICAgICAge3tUT0JOKDB4
ZDYzM2Y5MjksIDB4NzYzMjMxZGYpLCBUT0JOKDB4NDZkZjlmN2QsIDB4ZTdjYmRkZWYpLAorICAg
ICAgICAgICBUT0JOKDB4MDFjODg5YzAsIDB4Y2IyNjVkYTgpLCBUT0JOKDB4ZmNlMWFkMTAsIDB4
YWY0MzM2ZDIpfSwKKyAgICAgICAgICB7VE9CTigweDhkMTEwZGY2LCAweGZjNmEwYTdlKSwgVE9C
TigweGRkNDMxYjk4LCAweDZkYTQyNWRjKSwKKyAgICAgICAgICAgVE9CTigweGNkYzRhZWFiLCAw
eDE4MzRhYWJlKSwgVE9CTigweDg0ZGViMTI0LCAweDg0MzliN2ZjKX19LAorICAgICAgICAge3tU
T0JOKDB4ODc5NmYxNjksIDB4M2MyYTU5OTgpLCBUT0JOKDB4OWI5MjQ3YjQsIDB4Nzk0NzE5MGQp
LAorICAgICAgICAgICBUT0JOKDB4NTViOWQ5YTUsIDB4MTE1OTcwMTQpLCBUT0JOKDB4N2U5ZGQ3
MGQsIDB4N2IxNTY2ZWUpfSwKKyAgICAgICAgICB7VE9CTigweDk0YWQ3OGY3LCAweGNiY2Q1ZTY0
KSwgVE9CTigweDAzNTlhYzE3LCAweDliZDRjMDMyKSwKKyAgICAgICAgICAgVE9CTigweDNiMTFi
YWFmLCAweDdjYzIyMmFlKSwgVE9CTigweGE2YTZlMjg0LCAweGJhNzhlODEyKX19LAorICAgICAg
ICAge3tUT0JOKDB4ODM5MjA1M2YsIDB4MjRjZWExYTApLCBUT0JOKDB4Yzk3YmNlNGEsIDB4MzM2
MjE0OTEpLAorICAgICAgICAgICBUT0JOKDB4N2ViMWRiMzQsIDB4MzUzOTllZTkpLCBUT0JOKDB4
NDczZjc4ZWYsIDB4ZWNlODFhZDEpfSwKKyAgICAgICAgICB7VE9CTigweDQxZDcyZmUwLCAweGY2
M2QzZDBkKSwgVE9CTigweGU2MjBiODgwLCAweGFmYWI2MmZjKSwKKyAgICAgICAgICAgVE9CTigw
eDkyMDk2YmM5LCAweDkzMTU4MzgzKSwgVE9CTigweDQxYTIxMzU3LCAweDhmODk2ZjZjKX19LAor
ICAgICAgICAge3tUT0JOKDB4MWI1ZWUyZmEsIDB4YzdkY2ZjYWIpLCBUT0JOKDB4NjUwYWNmZGUs
IDB4OTU0NmUwMDcpLAorICAgICAgICAgICBUT0JOKDB4YzA4MWI3NDksIDB4YjFiMDJlMDcpLCBU
T0JOKDB4ZGE5ZTQxYTAsIDB4ZjllY2EwM2QpfSwKKyAgICAgICAgICB7VE9CTigweDAxM2JhNzI3
LCAweDE3NWE1NGFiKSwgVE9CTigweGNhMGNkMTkwLCAweGVhNWQ4ZDEwKSwKKyAgICAgICAgICAg
VE9CTigweDg1ZWE1MmMwLCAweDk1ZmQ5NmE5KSwgVE9CTigweDJjNTkxYjlmLCAweGJjNWMzOTQw
KX19LAorICAgICAgICAge3tUT0JOKDB4NmZiNGQ0ZTQsIDB4MmJhZDRkNWYpLCBUT0JOKDB4ZmE0
YzM1OTAsIDB4ZmVmMDA1OWIpLAorICAgICAgICAgICBUT0JOKDB4NmExMDIxOGEsIDB4ZjUxMjIy
OTQpLCBUT0JOKDB4OWE3OGE4MWEsIDB4YTg1NzUxZDEpfSwKKyAgICAgICAgICB7VE9CTigweDA0
ZjIwNTc5LCAweGE5OGU4NGU3KSwgVE9CTigweGZlMTI0MmMwLCAweDQ5OTdlNWI1KSwKKyAgICAg
ICAgICAgVE9CTigweGU3N2EyNzNiLCAweGNhMjFlMWU0KSwgVE9CTigweGZjYzhiMWVmLCAweDk0
MTE5MzlkKX19LAorICAgICAgICAge3tUT0JOKDB4ZTIwZWEzMDIsIDB4OTJkMDQ4N2EpLCBUT0JO
KDB4MTQ0MmRiZWMsIDB4Mjk0YjkxZmUpLAorICAgICAgICAgICBUT0JOKDB4MWY3YTRhZmUsIDB4
YmI2YjBlOGYpLCBUT0JOKDB4MTcwMGVmNzQsIDB4Njg4OWMzMTgpfSwKKyAgICAgICAgICB7VE9C
TigweGY1YmJmZmMzLCAweDcwZjFmYzYyKSwgVE9CTigweDNiMzFkNGI2LCAweDY5Yzc5Y2NhKSwK
KyAgICAgICAgICAgVE9CTigweGU4YmMyYWFiLCAweGE3ZjYzNDBkKSwgVE9CTigweGIwYjA4YWI0
LCAweGE3MjVlMTBhKX19LAorICAgICAgICAge3tUT0JOKDB4NDRmMDU3MDEsIDB4YWUzNDAwNTAp
LCBUT0JOKDB4YmE0YjMwMTYsIDB4MWNmMGM1NjkpLAorICAgICAgICAgICBUT0JOKDB4NWFhMjlm
ODMsIDB4ZmJlMTlhNTEpLCBUT0JOKDB4MWI5ZWQ0MjgsIDB4YjcxZDc1MmUpfSwKKyAgICAgICAg
ICB7VE9CTigweDE2NjZlNTRlLCAweGViNDgxOWY1KSwgVE9CTigweDYxNmNkZmVkLCAweDllMThi
NzViKSwKKyAgICAgICAgICAgVE9CTigweDExMmVkNWJlLCAweDNlZTI3YjBiKSwgVE9CTigweGZi
ZjI4MzE5LCAweDQ0YzdkZTRkKX19LAorICAgICAgICAge3tUT0JOKDB4ZDY4NWVjODUsIDB4ZTBl
NjBkODQpLCBUT0JOKDB4NjgwMzdlMzAsIDB4MWRiN2VlNzgpLAorICAgICAgICAgICBUT0JOKDB4
NWI2NWJkY2QsIDB4MDAzYzRkNmUpLCBUT0JOKDB4MzNlNzM2M2EsIDB4OTNlMjlhNmEpfSwKKyAg
ICAgICAgICB7VE9CTigweDk5NWIzYTYxLCAweDA4ZDA3NTZjKSwgVE9CTigweGQ3MjdmODVjLCAw
eDJmYWYxMzRiKSwKKyAgICAgICAgICAgVE9CTigweGZhYzZlZGY3LCAweDFkMzM3ODIzKSwgVE9C
TigweDk5YjlhYTUwLCAweDA0MzliOGI0KX19LAorICAgICAgICAge3tUT0JOKDB4NzIyZWIxMDQs
IDB4ZTJiNGUwNzUpLCBUT0JOKDB4NDk5ODcyOTUsIDB4NDM3YzQ5MjYpLAorICAgICAgICAgICBU
T0JOKDB4YjFlNGMwZTQsIDB4NDZhOWI4MmQpLCBUT0JOKDB4ZDBjYjMxOTcsIDB4NTdhMDA2ZjUp
fSwKKyAgICAgICAgICB7VE9CTigweGYzZGUwZjdkLCAweGQ3ODA4YzU2KSwgVE9CTigweGI1YzU0
ZDhmLCAweDUxZjg5NzcyKSwKKyAgICAgICAgICAgVE9CTigweDUwMGExMTRhLCAweGFkYmQzMWFh
KSwgVE9CTigweDlhZmFhYWE2LCAweDI5NWY2Y2FiKX19LAorICAgICAgICAge3tUT0JOKDB4OTQ3
MDVlMjEsIDB4MDRjZjY2N2EpLCBUT0JOKDB4ZmMyYTgxMWIsIDB4OWQzOTM1ZDcpLAorICAgICAg
ICAgICBUT0JOKDB4NTYwYjAyODAsIDB4NmQwOTI2N2MpLCBUT0JOKDB4ZjE5ZWQxMTksIDB4Zjc4
MGU1M2IpfSwKKyAgICAgICAgICB7VE9CTigweGYwMjI3YzA5LCAweDA2N2I2MjY5KSwgVE9CTigw
eDk2N2I4NTMzLCAweDVjYWVmNTk5KSwKKyAgICAgICAgICAgVE9CTigweDE1NWI5MjQzLCAweDY4
ZWZlZWJjKSwgVE9CTigweGNkNmQzNGY1LCAweGM0OTdiYWU2KX19LAorICAgICAgICAge3tUT0JO
KDB4MWRkOGQ1ZDMsIDB4NmNjZWIzNzApLCBUT0JOKDB4MmFlYWM1NzksIDB4YTc4ZDdiZjkpLAor
ICAgICAgICAgICBUT0JOKDB4NWQ2NTAxN2QsIDB4NzBiNjdhNjIpLCBUT0JOKDB4NzBjOGU0NGYs
IDB4MTdjNTNmNjcpfSwKKyAgICAgICAgICB7VE9CTigweGQxZmMwOTUwLCAweDg2YTM0ZDA5KSwg
VE9CTigweGUwZmNhMjU2LCAweGU3MTM0OTA3KSwKKyAgICAgICAgICAgVE9CTigweGUyNGZhMjlj
LCAweDgwZmRkMzE1KSwgVE9CTigweDJjNGFjZDAzLCAweGQ4NzQ5OWFkKX19LAorICAgICAgICAg
e3tUT0JOKDB4YmFhZjc1MTcsIDB4M2I1YTliYTYpLCBUT0JOKDB4YjljYmUxZjYsIDB4MTJlNTFh
NTEpLAorICAgICAgICAgICBUT0JOKDB4ZDg4ZWRhZTMsIDB4NWUxNTQ4OTcpLCBUT0JOKDB4ZTQz
MDljM2MsIDB4NzdiNjZjYTApfSwKKyAgICAgICAgICB7VE9CTigweGY1NTU1ODA1LCAweGY2N2Yz
NzQ2KSwgVE9CTigweDg1ZmMzN2JhLCAweGEzNjQwMWZmKSwKKyAgICAgICAgICAgVE9CTigweGRm
ODZlMmNhLCAweGQ5NDk5YTUzKSwgVE9CTigweDYyNzBiMmEzLCAweGVjYmM5NTViKX19LAorICAg
ICAgICAge3tUT0JOKDB4YWZhZTY0ZjUsIDB4OTc0YWQzM2IpLCBUT0JOKDB4MDRkODU5NzcsIDB4
ZmU3YjJkZjEpLAorICAgICAgICAgICBUT0JOKDB4MmEzZGIzZmYsIDB4NGFiMDNmNzMpLCBUT0JO
KDB4MGI4Nzg3OGEsIDB4ODcwMjc0MGEpfSwKKyAgICAgICAgICB7VE9CTigweDZkMjYzZjAxLCAw
eDVhMDYxNzMyKSwgVE9CTigweGMyNTQzMGNlLCAweGEzMmExOTAxKSwKKyAgICAgICAgICAgVE9C
TigweGY3ZWJhYjNkLCAweGRiMTU1MDE4KSwgVE9CTigweDNhODZmNjkzLCAweDYzYTliNzhlKX19
LAorICAgICAgICAge3tUT0JOKDB4MzQ5YWUzNjgsIDB4ZGE5ZjM4MDQpLCBUT0JOKDB4NDcwZjA3
ZmUsIDB4YTE2NDM0OWMpLAorICAgICAgICAgICBUT0JOKDB4ZDUyZjRjYzksIDB4ODU2MmJhYTUp
LCBUT0JOKDB4Yzc0YTllODYsIDB4MmIyOTBkZjMpfSwKKyAgICAgICAgICB7VE9CTigweGQzYTFh
YTM1LCAweDQzNDcxYTI0KSwgVE9CTigweDIzOTQ0NmJlLCAweGI4MTk0NTExKSwKKyAgICAgICAg
ICAgVE9CTigweGJlYzJkZDAwLCAweDgxZGNkNDRkKSwgVE9CTigweGNhM2Q3ZjBmLCAweGM0MmFj
ODJkKX19LAorICAgICAgICAge3tUT0JOKDB4MWYzZGIwODUsIDB4ZmRhZjQ1MjApLCBUT0JOKDB4
YmI2ZDNlODAsIDB4NDU0OWRhZjIpLAorICAgICAgICAgICBUT0JOKDB4ZjU5NjlkOGEsIDB4MTlh
ZDVjNDIpLCBUT0JOKDB4NzA1MmIxM2QsIDB4ZGJmZDE1MTEpfSwKKyAgICAgICAgICB7VE9CTigw
eDExODkwZDFiLCAweDY4MmI5MDYwKSwgVE9CTigweGE3MWQzODgzLCAweGFjMzQ0NTJjKSwKKyAg
ICAgICAgICAgVE9CTigweGE0MzgwNTViLCAweDc4MzgwNWI0KSwgVE9CTigweDQzMjQxMjc3LCAw
eDQ3MjViMjNlKX19LAorICAgICAgICAge3tUT0JOKDB4ZjIwY2Y5NmUsIDB4NDkwMWJiZWQpLCBU
T0JOKDB4NjQxOWM3MTAsIDB4ZjQzMmEyYmIpLAorICAgICAgICAgICBUT0JOKDB4NTdhMGZiYjks
IDB4ZGZhOWNkN2QpLCBUT0JOKDB4NTg5MTExZTQsIDB4MDBkYWEyNDkpfSwKKyAgICAgICAgICB7
VE9CTigweDE5ODA5YTMzLCAweDdiNjA1NTRlKSwgVE9CTigweGVhNWY4ODg3LCAweGVkZTI4M2E0
KSwKKyAgICAgICAgICAgVE9CTigweDJkNzEzODAyLCAweDUwM2JmZDM1KSwgVE9CTigweDE1MWJi
MGFmLCAweDU4NWQyYTUzKX19LAorICAgICAgICAge3tUT0JOKDB4NDBiMDhmNzQsIDB4NDNiMzBj
YTgpLCBUT0JOKDB4ZTEwYjViYmEsIDB4ZDk5MzQ1ODMpLAorICAgICAgICAgICBUT0JOKDB4ZThh
NTQ2ZDYsIDB4YjUxMTEwYWQpLCBUT0JOKDB4MWRkNTBlNjYsIDB4MjhlMGI2YzUpfSwKKyAgICAg
ICAgICB7VE9CTigweDI5MmU5ZDU0LCAweGNmZjJiODIxKSwgVE9CTigweDM4ODI1NTVkLCAweDQ3
MjgxNzYwKSwKKyAgICAgICAgICAgVE9CTigweDEzNDgzOGY4LCAweDM3MjRkNmUzKSwgVE9CTigw
eGYyYzY3OWUwLCAweDIyZGRjZGExKX19LAorICAgICAgICAge3tUT0JOKDB4NDBlZTg4MTUsIDB4
NmQyYTU3NjgpLCBUT0JOKDB4N2YyMjdiZDIsIDB4MWMxZTdlMmQpLAorICAgICAgICAgICBUT0JO
KDB4NDg3YmExMzQsIDB4ZDA0ZmY0NDMpLCBUT0JOKDB4NzZlMmZmM2QsIDB4YzYxNGU1NGIpfSwK
KyAgICAgICAgICB7VE9CTigweDM2Yjg4ZDZmLCAweGEzMTc3ZWM3KSwgVE9CTigweGJmNzMxZDUx
LCAweDIzMjhmZmY1KSwKKyAgICAgICAgICAgVE9CTigweDc1OGNhZWEyLCAweDQ5YmExNThlKSwg
VE9CTigweDVhYjhmZjRjLCAweDAyOTM4MTg4KX19LAorICAgICAgICAge3tUT0JOKDB4MzNlMTYw
NTYsIDB4MzVlZGM1NmQpLCBUT0JOKDB4NWE2OWQzNDksIDB4N2U5NDBkNzkpLAorICAgICAgICAg
ICBUT0JOKDB4NmM0ZmQwMDEsIDB4MDM4NjZkY2IpLCBUT0JOKDB4MjBhMzhmNTcsIDB4NDg5M2Nk
ZWYpfSwKKyAgICAgICAgICB7VE9CTigweGZiZjNlNzkwLCAweGZhYzNhMTViKSwgVE9CTigweDZl
ZDdlYTJlLCAweDdhNGY4ZTZiKSwKKyAgICAgICAgICAgVE9CTigweGE2NjNlYjRmLCAweGJjM2Fj
YTg2KSwgVE9CTigweDIyMDYxZWE1LCAweDA4MGQ1M2Y3KX19LAorICAgICAgICAge3tUT0JOKDB4
MjQ4MGRmZTYsIDB4ZjU0Njc4M2YpLCBUT0JOKDB4ZDM4YmM2ZGEsIDB4NWEwYTY0MWUpLAorICAg
ICAgICAgICBUT0JOKDB4ZmIwOTNjZDEsIDB4MmVkZTg5NjUpLCBUT0JOKDB4ODk2NTRkYjQsIDB4
YWNiNDU1Y2YpfSwKKyAgICAgICAgICB7VE9CTigweDQxM2NiZjlhLCAweDI2ZTFhZGVlKSwgVE9C
TigweDI5MWYzNzY0LCAweDM3MzI5NGQ0KSwKKyAgICAgICAgICAgVE9CTigweDAwNzk3MjU3LCAw
eDY0ODA4M2ZlKSwgVE9CTigweDI1ZjUwNGQzLCAweDIwOGNjMzQxKX19LAorICAgICAgICAge3tU
T0JOKDB4NjM1YThlNWUsIDB4YzNhMGVlNDMpLCBUT0JOKDB4NzBhYWViY2EsIDB4Njc5ODk4ZmYp
LAorICAgICAgICAgICBUT0JOKDB4OWVlOWY1NDcsIDB4NWRjNjNkNTYpLCBUT0JOKDB4Y2U5ODc5
NjYsIDB4ZmZiMzRkMDApfSwKKyAgICAgICAgICB7VE9CTigweGY5Zjg2YjE5LCAweDVlMjYzMTBh
KSwgVE9CTigweDllNDM1NDg0LCAweDM4MmE4Y2E4KSwKKyAgICAgICAgICAgVE9CTigweDI1M2Jj
YjgxLCAweGMyMzUyZmU0KSwgVE9CTigweGE0ZWFjOGIwLCAweDQ0NzRiNTcxKX19LAorICAgICAg
ICAge3tUT0JOKDB4YzFiOTc1MTIsIDB4YzFhZDhjZjgpLCBUT0JOKDB4MTkzYjRlOWUsIDB4OTll
MGI2OTcpLAorICAgICAgICAgICBUT0JOKDB4OTM5ZDI3MTYsIDB4MDFlODVkZjApLCBUT0JOKDB4
NGZiMjY1YjMsIDB4Y2Q0NGVhZmQpfSwKKyAgICAgICAgICB7VE9CTigweDMyMWU3ZGNkLCAweGU1
MWUxYWUyKSwgVE9CTigweDhlM2E4Y2E2LCAweGUzZDhiMDk2KSwKKyAgICAgICAgICAgVE9CTigw
eDhkZTQ2Y2IwLCAweDUyNjA0OTk4KSwgVE9CTigweDkxMDk5YWQ4LCAweDM5MDcyYWE3KX19LAor
ICAgICAgICAge3tUT0JOKDB4MjYxN2Y5MWMsIDB4OTNhYTk2YjgpLCBUT0JOKDB4MGZjODcxNmIs
IDB4N2ZjYTJlMTMpLAorICAgICAgICAgICBUT0JOKDB4YTcxMDZmNWUsIDB4OTUzMjg3MjMpLCBU
T0JOKDB4ZDFjOWM0MGIsIDB4MjYyZTY1MjIpfSwKKyAgICAgICAgICB7VE9CTigweGI5YmFmZTg2
LCAweDQyYjdjMDk0KSwgVE9CTigweDE4NzM0MzlkLCAweDE1NDNjMDIxKSwKKyAgICAgICAgICAg
VE9CTigweGUxYmFhNWRlLCAweDVjYmVmZDVkKSwgVE9CTigweGEzNjNmYzVlLCAweDUyMWU4YWZm
KX19LAorICAgICAgICAge3tUT0JOKDB4ZWZlNjMyMGQsIDB4Zjg2MmVhYWMpLCBUT0JOKDB4MTQ0
MTljNjMsIDB4MjJjNjQ3ZGMpLAorICAgICAgICAgICBUT0JOKDB4MGUwNjcwN2MsIDB4NGU0NmQ0
MjgpLCBUT0JOKDB4Y2I2YzgzNGYsIDB4NGExNzhmOGYpfSwKKyAgICAgICAgICB7VE9CTigweDBm
OTkzYTQ1LCAweGQzMGY5MTdjKSwgVE9CTigweGQ0YzRiMDQ5LCAweDk4NzlhZmVlKSwKKyAgICAg
ICAgICAgVE9CTigweGI2MTQyYTFlLCAweDcwNTAwMDYzKSwgVE9CTigweDdjOWI0MWMzLCAweGE1
ZDlkNjA1KX19LAorICAgICAgICAge3tUT0JOKDB4YmMwMGZjMmYsIDB4MmY4YmEyYzcpLCBUT0JO
KDB4MDk2NmViMmYsIDB4N2M2N2FhMjgpLAorICAgICAgICAgICBUT0JOKDB4MTNmN2I1MTYsIDB4
NWE3ODY5NzIpLCBUT0JOKDB4M2JmYjc1NTcsIDB4OGEyZmJiYTApfSwKKyAgICAgICAgICB7VE9C
TigweDEzMWM0ZjIzLCAweDVhMmI5NjIwKSwgVE9CTigweGJmZjNlZDI3LCAweDZmYWY0NmJlKSwK
KyAgICAgICAgICAgVE9CTigweDliNDQ3M2QxLCAweDdlMTcyMzIzKSwgVE9CTigweDQyMWU4ODc4
LCAweDMzOWY2MjQ2KX19LAorICAgICAgICAge3tUT0JOKDB4MGZhODU4N2EsIDB4MjVhNDE2MzIp
LCBUT0JOKDB4YzA4MTQxMjQsIDB4YTM1YjZjOTMpLAorICAgICAgICAgICBUT0JOKDB4MmIxOGE5
ZjUsIDB4NTllYmI4ZGIpLCBUT0JOKDB4MjY0ZTMzNTcsIDB4NzZlZGIyOWMpfSwKKyAgICAgICAg
ICB7VE9CTigweGFmMjQ1Y2NkLCAweGM4N2M1MWUyKSwgVE9CTigweDE2YjMwMTViLCAweDUwMWU2
MjE0KSwKKyAgICAgICAgICAgVE9CTigweGJiMzFjNTYwLCAweDBhMzg4MmNlKSwgVE9CTigweDY5
NjFiYjk0LCAweGZlYzExZTA0KX19LAorICAgICAgICAge3tUT0JOKDB4M2I4MjViOGQsIDB4ZWZm
N2EzYTApLCBUT0JOKDB4YmVjMzM3MzgsIDB4YjFkZjczMjYpLAorICAgICAgICAgICBUT0JOKDB4
NjhhZDc0N2MsIDB4OTk2MDRhMWYpLCBUT0JOKDB4ZDE1NGM5MzQsIDB4OWEzYmQ0OTkpfSwKKyAg
ICAgICAgICB7VE9CTigweGFjMzM1MDZmLCAweDFjYzdhOTA2KSwgVE9CTigweDczYmI1MzkyLCAw
eDZjNTYwZThmKSwKKyAgICAgICAgICAgVE9CTigweDY0MjhmY2JlLCAweDI2M2UzOTQ0KSwgVE9C
TigweGMxMTgyOGQ1LCAweDFjMzg3NDM0KX19LAorICAgICAgICAge3tUT0JOKDB4M2NkMDRiZTEs
IDB4M2U0YjEyZmYpLCBUT0JOKDB4YzNhYWQ5ZjksIDB4MmQ4ODY2N2MpLAorICAgICAgICAgICBU
T0JOKDB4YzUyZGRjZjgsIDB4MjQ4MTIwY2YpLCBUT0JOKDB4OTg1YTg5MmUsIDB4MmEzODk1MzIp
fSwKKyAgICAgICAgICB7VE9CTigweGZiYjRiMjFiLCAweDNiYjg1ZmEwKSwgVE9CTigweGY5NTM3
NWUwLCAweDhkZmM2MjY5KSwKKyAgICAgICAgICAgVE9CTigweGZiNGZiMDZjLCAweDdlZTJhY2Vh
KSwgVE9CTigweDY3ODU0MjZlLCAweDMwOWM0ZDFmKX19LAorICAgICAgICAge3tUT0JOKDB4NjU5
YjE3YzgsIDB4ZDhjZWIxNDcpLCBUT0JOKDB4OWI2NDllZWUsIDB4YjcwYTU1NTQpLAorICAgICAg
ICAgICBUT0JOKDB4NmI3ZmEwYjUsIDB4YWM2YmM2MzQpLCBUT0JOKDB4ZDk5ZmUyYzcsIDB4MWQ2
ZTczMmYpfSwKKyAgICAgICAgICB7VE9CTigweDMwZTZlNzYyLCAweDhkM2FiYmEyKSwgVE9CTigw
eDE4ZmVlNmU3LCAweGE3OTdiNzk5KSwKKyAgICAgICAgICAgVE9CTigweDVjOWQzNjBkLCAweGM2
OTY0NjRkKSwgVE9CTigweGUzYmFlYjQ4LCAweDI3YmZkZTEyKX19LAorICAgICAgICAge3tUT0JO
KDB4MmJmNWRiNDcsIDB4ZjIzMjA2ZDUpLCBUT0JOKDB4MmY2ZDM0MjAsIDB4MWQyNjAxNTIpLAor
ICAgICAgICAgICBUT0JOKDB4MTdiODc2NTMsIDB4M2Y4ZmY4OWEpLCBUT0JOKDB4NTE1N2MzMGMs
IDB4Mzc4ZmE0NTgpfSwKKyAgICAgICAgICB7VE9CTigweDc1MTdjNWM1LCAweDJkNGZiOTM2KSwg
VE9CTigweGVmMjJmN2FjLCAweGU2NTE4Y2RjKSwKKyAgICAgICAgICAgVE9CTigweGRlYjQ4M2U2
LCAweGJmODQ3YTY0KSwgVE9CTigweGY1MDg0NTU4LCAweDkyZTBmYTg5KX19fSwKKyAgICAgICAg
e3t7VE9CTigweGFiOTY1OWQ4LCAweGRmNzMwNGQ0KSwgVE9CTigweGI3MWJjZjFiLCAweGZmMjEw
ZThlKSwKKyAgICAgICAgICAgVE9CTigweGE5YTI0MzhiLCAweGQ3M2ZiZDYwKSwgVE9CTigweDQ1
OTVjZDFmLCAweDVkMTFiNGRlKX0sCisgICAgICAgICAge1RPQk4oMHg5YzBkMzI5YSwgMHg0ODM1
ODU5ZCksIFRPQk4oMHg0YTBmMGQyZCwgMHg3ZGJiNmU1NiksCisgICAgICAgICAgIFRPQk4oMHhj
NjAzOGU1ZSwgMHhkZjkyOGE0ZSksIFRPQk4oMHhjOTQyOTYyMSwgMHg4ZjVhZDE1NCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDkxMjEzNDYyLCAweGYyM2YyZDkyKSwgVE9CTigweDZjYWI3MWJkLCAw
eDYwYjk0MDc4KSwKKyAgICAgICAgICAgVE9CTigweDZiZGQwYTYzLCAweDE3NmNkZTIwKSwgVE9C
TigweDU0YzliMjBjLCAweGVlNGQ1NGJjKX0sCisgICAgICAgICAge1RPQk4oMHgzY2QyZDhhYSwg
MHg5ZjJhYzAyZiksIFRPQk4oMHgwM2Y4ZTYxNywgMHgyMDZlZWRiMCksCisgICAgICAgICAgIFRP
Qk4oMHhjN2Y2OGUxNiwgMHg5MzA4NjQzNCksIFRPQk4oMHg4MzE0NjljNSwgMHg5MmRkM2RiOSl9
fSwKKyAgICAgICAgIHt7VE9CTigweDg1MjFkZjI0LCAweDhmOTgxMzU0KSwgVE9CTigweDU4N2Uy
M2VjLCAweDM1ODhhMjU5KSwKKyAgICAgICAgICAgVE9CTigweGNiZWRmMjgxLCAweGQ3YTA5OTJj
KSwgVE9CTigweDA2OTMwYTU1LCAweDM4OTYxNDA3KX0sCisgICAgICAgICAge1RPQk4oMHgwOTMy
MGRlYiwgMHhiZTViYmUyMSksIFRPQk4oMHhhN2ZmYTViNSwgMHgyNDkxODE3ZiksCisgICAgICAg
ICAgIFRPQk4oMHhlNmM4YjRkOSwgMHgwOTA2NTE2MCksIFRPQk4oMHhhYzRmMzk5MiwgMHhmZmY2
ZDJhOSl9fSwKKyAgICAgICAgIHt7VE9CTigweDdhYTdhMTU4LCAweDNhZTljMWJkKSwgVE9CTigw
eGUwYWY2ZDk4LCAweGUzN2NlMjQwKSwKKyAgICAgICAgICAgVE9CTigweGU1NDM0MmQ5LCAweDI4
YWIzOGI0KSwgVE9CTigweGU4Yjc1MDA3LCAweDBhMWM5OGNhKX0sCisgICAgICAgICAge1RPQk4o
MHhlZmNlODZhZiwgMHhlMDIzNThmMiksIFRPQk4oMHgzMWI4Yjg1NiwgMHhlYTkyMTIyOCksCisg
ICAgICAgICAgIFRPQk4oMHgwNTJhMTkxMiwgMHgwYTFjNjdmYyksIFRPQk4oMHhiNDA2OWVhNCwg
MHhlM2FlYWQ1OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDMyMzJkNmUyLCAweDdmYTAzY2IzKSwg
VE9CTigweGRiOTM4ZTViLCAweDBmZGQ3ZDg4KSwKKyAgICAgICAgICAgVE9CTigweDA0YzFkMmNk
LCAweDJjY2JmYzVkKSwgVE9CTigweGQyZjQ1YzEyLCAweGFmM2E1ODBmKX0sCisgICAgICAgICAg
e1RPQk4oMHg1OTI2MjBiNSwgMHg3ODgzZTYxNCksIFRPQk4oMHg1ZmQyN2U2OCwgMHhiZTdjNWYy
NiksCisgICAgICAgICAgIFRPQk4oMHgxMzllNDVhOSwgMHgxNTY3ZTFlMyksIFRPQk4oMHgyY2M3
MWQyZCwgMHg0NGQ4YWFhZil9fSwKKyAgICAgICAgIHt7VE9CTigweDRhOTA5MGNkLCAweGUzNmQw
NzU3KSwgVE9CTigweGY3MjJkN2IxLCAweGQ5YTI5MzgyKSwKKyAgICAgICAgICAgVE9CTigweGZi
N2ZiMDRjLCAweDA0YjQ4ZGRmKSwgVE9CTigweDYyOGFkMmE3LCAweGViZTE2ZjQzKX0sCisgICAg
ICAgICAge1RPQk4oMHhjZDNmYmZiNSwgMHgyMDIyNjA0MCksIFRPQk4oMHg2YzM0ZWNiMSwgMHg1
MTA0YjZjNCksCisgICAgICAgICAgIFRPQk4oMHgzMGMwNzU0ZSwgMHhjOTAzYzE4OCksIFRPQk4o
MHhlYzMzNmIwOCwgMHgyZDIzY2FiMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDQ3M2Q2MmEyLCAw
eDFlMjA2ZWU1KSwgVE9CTigweGYxZTI3NDgwLCAweDhjNDlhNjMzKSwKKyAgICAgICAgICAgVE9C
TigweDg3YWI5NTZjLCAweGU5ZjZiMmMzKSwgVE9CTigweDYxODMwYjQ4LCAweDYyYjYwNmVhKX0s
CisgICAgICAgICAge1RPQk4oMHg2N2NkNjg0NiwgMHhlNzhlODE1ZiksIFRPQk4oMHhmZTQwMTM5
ZiwgMHg0YzAyMDgyYSksCisgICAgICAgICAgIFRPQk4oMHg1MmJiYmZjYiwgMHg5NTJlYzM2NSks
IFRPQk4oMHg3NGMxMTY0MiwgMHg2Yjk4MzZhYil9fSwKKyAgICAgICAgIHt7VE9CTigweDlmNTE0
MzllLCAweDU1OGRmMDE5KSwgVE9CTigweDIzMGRhNGJhLCAweGFjNzEyYjI3KSwKKyAgICAgICAg
ICAgVE9CTigweDUxODkxOWUzLCAweDU1MTg1YTI0KSwgVE9CTigweDRkY2VmY2RkLCAweDg0Yjc4
ZjUwKX0sCisgICAgICAgICAge1RPQk4oMHhhN2Q5MGZiMiwgMHhhNDdkNGM1YSksIFRPQk4oMHg1
NWFjOWFiZiwgMHhiMzBlMDA5ZSksCisgICAgICAgICAgIFRPQk4oMHhmZDJmYzM1OSwgMHg3NGVl
ZDI3MyksIFRPQk4oMHhiNzJkODI0YywgMHhkYmVhOGZhZil9fSwKKyAgICAgICAgIHt7VE9CTigw
eGNlNzIxYTc0LCAweDQ1MTNlMmNhKSwgVE9CTigweDBiNDE4NjEyLCAweDM4MjQwYjJjKSwKKyAg
ICAgICAgICAgVE9CTigweDA1MTk5OTY4LCAweGQ1YmFhNDUwKSwgVE9CTigweGViMTc1N2VkLCAw
eDJiMGU4YzI1KX0sCisgICAgICAgICAge1RPQk4oMHg2ZWJjM2UyOCwgMHgzZGZhYzZkNSksIFRP
Qk4oMHhiMjQzMWUyZSwgMHg0OGEyMzdmNSksCisgICAgICAgICAgIFRPQk4oMHgyYWNiNWUyMywg
MHg1MmY2MTQ5OSksIFRPQk4oMHg1NTU4YTJhNywgMHhlMDZjOTM2Yil9fSwKKyAgICAgICAgIHt7
VE9CTigweGQyMTNmOTIzLCAweGNiYjEzZDFiKSwgVE9CTigweDk4Nzk5ZjQyLCAweDViZmI5YmZl
KSwKKyAgICAgICAgICAgVE9CTigweDFhZThkZGM5LCAweDcwMTE0NGE5KSwgVE9CTigweDBiOGIz
YmI2LCAweDRjNTU5NWVlKX0sCisgICAgICAgICAge1RPQk4oMHgwZWE5ZWYyZSwgMHgzZWNlYmIy
MSksIFRPQk4oMHgxN2NiNmM0YiwgMHgzNjcxZjlhNyksCisgICAgICAgICAgIFRPQk4oMHg0N2Vm
NDY0ZiwgMHg3MjZmMWQxZiksIFRPQk4oMHgxNzFiOTQ4NCwgMHg2OTQzYTI3Nil9fSwKKyAgICAg
ICAgIHt7VE9CTigweDUxYTRhZTJkLCAweDdlZjAzMjljKSwgVE9CTigweDA4NTA5MjIyLCAweDkx
YzQ0MDJhKSwKKyAgICAgICAgICAgVE9CTigweDY0YTYxZDM1LCAweGFmZDQ1YmJjKSwgVE9CTigw
eDM4ZjA5NmZlLCAweDMwMzVhODUxKX0sCisgICAgICAgICAge1RPQk4oMHhjNzQ2OGI3NCwgMHhh
MWRlYzAyNyksIFRPQk4oMHhlOGNmMTBlNywgMHg0ZmM3ZGNiYSksCisgICAgICAgICAgIFRPQk4o
MHhlYTM1ZmY0MCwgMHhmNGEwNjM1MyksIFRPQk4oMHgwYjRjMGRmYSwgMHg4Yjc3ZGQ2Nil9fSwK
KyAgICAgICAgIHt7VE9CTigweDc3OWI4NTUyLCAweGRlN2U1YzE5KSwgVE9CTigweGZhYjI4NjA5
LCAweGMxYzAyNTZjKSwKKyAgICAgICAgICAgVE9CTigweDY0ZjU4ZWVlLCAweGFiZDQ3NDNkKSwg
VE9CTigweDRlOGVmODM4LCAweDdiNmNjOTNiKX0sCisgICAgICAgICAge1RPQk4oMHhlZTY1MGQy
NiwgMHg0Y2IxYmYzZCksIFRPQk4oMHg0YzFmOWQwOSwgMHg3M2RlZGY2MSksCisgICAgICAgICAg
IFRPQk4oMHhhZWY3YzlkNywgMHhiZmI3MGNlZCksIFRPQk4oMHgxZWMwNTA3ZSwgMHgxNjQxZGUx
ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGNkN2U1Y2M3LCAweGNkZTQ1MDc5KSwgVE9CTigweGRl
MTczYzlhLCAweDUxNmFjOWU0KSwKKyAgICAgICAgICAgVE9CTigweDUxN2E4NDk0LCAweGMxNzAz
MTVjKSwgVE9CTigweDQzOGZkOTA1LCAweDkxZDhlOGZiKX0sCisgICAgICAgICAge1RPQk4oMHg1
MTQ1YzUwNiwgMHhjN2Q5NjMwYiksIFRPQk4oMHg2NDU3YTg3YiwgMHhmNDdkNGQ3NSksCisgICAg
ICAgICAgIFRPQk4oMHhkMzE2NDZiZiwgMHgwZDlhODBlOCksIFRPQk4oMHg0NTNhZGQyYiwgMHhj
ZWYzYWFiZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGM5OTQxMTA5LCAweGE2MDc0MTlkKSwgVE9C
TigweGZhYTcxZTYyLCAweGJiNmJjYTgwKSwKKyAgICAgICAgICAgVE9CTigweDM0MTU4YzEzLCAw
eDA3YzQzMWYzKSwgVE9CTigweDU5NGFiZWJjLCAweDk5MmJjNDdhKX0sCisgICAgICAgICAge1RP
Qk4oMHg2ZGZlYTY5MSwgMHhlYjc4Mzk5ZiksIFRPQk4oMHg0OGFhZmIzNSwgMHgzZjQyY2JhNCks
CisgICAgICAgICAgIFRPQk4oMHhlZGNkNjVhZiwgMHgwNzdjMDRmMCksIFRPQk4oMHgxYTI5YTM2
NiwgMHhlODg0NDkxYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDAyM2E0MGU1LCAweDFjMjFmMmJm
KSwgVE9CTigweGY5OWE1MTNjLCAweGE1MDU3YWVlKSwKKyAgICAgICAgICAgVE9CTigweGEzZmU3
ZTI1LCAweGJjYWIwNzJlKSwgVE9CTigweDg1NjhkMmUxLCAweDQwZTMyYmNmKX0sCisgICAgICAg
ICAge1RPQk4oMHg5MDQ1OTRlYiwgMHhkM2Y2OWQ5ZiksIFRPQk4oMHgxODFhOTczMywgMHgwN2Fm
ZmFiMSksCisgICAgICAgICAgIFRPQk4oMHhlNGQ2OGQ3NiwgMHhiNmUzMzBmNCksIFRPQk4oMHg4
N2E2ZGFmYiwgMHhjNzVhN2ZjMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDU0OWRiMmI1LCAweGVm
N2Q5Mjg5KSwgVE9CTigweDI0ODBkNGE4LCAweDE5N2YwMTVhKSwKKyAgICAgICAgICAgVE9CTigw
eDYxZDU1OTBiLCAweGM0MDQ5M2I2KSwgVE9CTigweDNhNTViNTJlLCAweDZmNzgwMzMxKX0sCisg
ICAgICAgICAge1RPQk4oMHg0MGViODExNSwgMHgzMDllYWRiMCksIFRPQk4oMHhkZWE3ZGU1YSwg
MHg5MmU1YzYyNSksCisgICAgICAgICAgIFRPQk4oMHg2NGQ2MzFmMCwgMHhjYzZhM2Q1YSksIFRP
Qk4oMHg5ZDVlOWQ3YywgMHg5M2U4ZGQ2MSl9fSwKKyAgICAgICAgIHt7VE9CTigweGYyOTdiZWY1
LCAweDIwNmQzZmZjKSwgVE9CTigweDIzZDVlMDMzLCAweDdkODA4YmQ0KSwKKyAgICAgICAgICAg
VE9CTigweDRhNGY2OTEyLCAweGQyNGNmNWJhKSwgVE9CTigweGU0ZDgxNjNiLCAweDA5Y2RhYThh
KX0sCisgICAgICAgICAge1RPQk4oMHgwZTBkZTllZiwgMHhkMzA4MmU4ZSksIFRPQk4oMHg0ZmUx
MjQ2YywgMHgwMTkyZjM2MCksCisgICAgICAgICAgIFRPQk4oMHgxZjkwMDE1MCwgMHg0YjhlZWUw
YSksIFRPQk4oMHg1MjE5ZGE4MSwgMHhmMWRhMzkxYil9fSwKKyAgICAgICAgIHt7VE9CTigweDdi
ZjZhNWMxLCAweGY3ZWEyNWFhKSwgVE9CTigweGQxNjVlNmJmLCAweGZiYjA3ZDVmKSwKKyAgICAg
ICAgICAgVE9CTigweGUzNTM5MzYxLCAweDg5ZTc4NjcxKSwgVE9CTigweGEzZmNhYzg5LCAweDJi
YWM0MjE5KX0sCisgICAgICAgICAge1RPQk4oMHhkZmFiNmZkNCwgMHhmMGJhYThhYiksIFRPQk4o
MHg1YTRhZGFjMSwgMHhlMmMxYzJlNSksCisgICAgICAgICAgIFRPQk4oMHg2Y2Q3NWUzMSwgMHg0
MGQ4NTg0OSksIFRPQk4oMHhjZTI2M2ZlYSwgMHgxOWIzOTE4MSl9fSwKKyAgICAgICAgIHt7VE9C
TigweGNiNjgwM2QzLCAweDA3MDMyYzcyKSwgVE9CTigweDdmNDBkNWNlLCAweDc5MDk2OGM4KSwK
KyAgICAgICAgICAgVE9CTigweGE2ZGU4NmJkLCAweGRjZTk3OGYwKSwgVE9CTigweDI1NTQ3YzRm
LCAweDM2OGY3NTFjKX0sCisgICAgICAgICAge1RPQk4oMHhiMWU2ODVmZCwgMHg2NWZiMmE5ZSks
IFRPQk4oMHhjZTY5MzM2ZiwgMHgxZWI5MTc5YyksCisgICAgICAgICAgIFRPQk4oMHhiMTVkMWMy
NywgMHgxMjUwNDQ0MiksIFRPQk4oMHhiN2RmNDY1YywgMHhiOTExYTA2Yil9fSwKKyAgICAgICAg
IHt7VE9CTigweGI4ZDgwNGEzLCAweDMxNTk4MGNkKSwgVE9CTigweDY5M2JjNDkyLCAweGZhM2Jl
YmY3KSwKKyAgICAgICAgICAgVE9CTigweDM1NzhhZWVlLCAweDIyNTNjNTA0KSwgVE9CTigweDE1
OGRlNDk4LCAweGNkMjQ3NGEyKX0sCisgICAgICAgICAge1RPQk4oMHgxMzMxZjVjNywgMHhjZmRh
ODM2OCksIFRPQk4oMHhkMmQ3YmJiMywgMHg3OGQ3MTc3ZSksCisgICAgICAgICAgIFRPQk4oMHhk
ZjYxMTMzYSwgMHhmM2MxZTQ2ZSksIFRPQk4oMHg1ODM2Y2U3ZCwgMHhkMzBlN2JlOCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDgzMDg0ZjE5LCAweDk0ZjgzNGNiKSwgVE9CTigweGQzNTY1M2Q0LCAw
eDQyOWVkNzgyKSwKKyAgICAgICAgICAgVE9CTigweGE1NDJmMTZmLCAweDU5ZTU4MjQzKSwgVE9C
TigweGMyYjUyZjY1LCAweDA0NzBhMjJkKX0sCisgICAgICAgICAge1RPQk4oMHhlM2I2MjIxYiwg
MHgxOGYyM2Q5NiksIFRPQk4oMHhjYjA1YWJhYywgMHgzZjUyNTJiNCksCisgICAgICAgICAgIFRP
Qk4oMHhjYTAwOTM4YiwgMHg4N2Q2MTQwMiksIFRPQk4oMHgyZjE4NmNkZCwgMHg0MTE5MzNlNCl9
fSwKKyAgICAgICAgIHt7VE9CTigweGUwNDJlY2U1LCAweDlhMjlhNWM1KSwgVE9CTigweGIxOWIz
YzA3LCAweDNiNmM4NDAyKSwKKyAgICAgICAgICAgVE9CTigweGM5NzY2N2M3LCAweDE5ZDkyNjg0
KSwgVE9CTigweGI1NjI0NjIyLCAweGViYzY2MzcyKX0sCisgICAgICAgICAge1RPQk4oMHgwY2I5
NmU2NSwgMHgzYzA0ZmEwMiksIFRPQk4oMHg4M2E3MTc2YywgMHg4ZWFhMzlhYSksCisgICAgICAg
ICAgIFRPQk4oMHgyMDMzNTYxZCwgMHhlYWExNjMzZiksIFRPQk4oMHg0NWE5ZDA4NiwgMHg0NTMz
ZGY3Myl9fSwKKyAgICAgICAgIHt7VE9CTigweGUwNTQyYzFkLCAweDNkYzA5MGJjKSwgVE9CTigw
eDgyYzk5NmVmLCAweGFhNTljMTY3KSwKKyAgICAgICAgICAgVE9CTigweGUzZjczNWU4LCAweDBl
ZTdmYzRkKSwgVE9CTigweDdiMTc5MzkzLCAweDdjMzVkYjc5KX0sCisgICAgICAgICAge1RPQk4o
MHhiNjQxOWUyNSwgMHhmOGM1ZGJmZCksIFRPQk4oMHg0ZDlkN2ExZSwgMHgxZjMyN2IwNCksCisg
ICAgICAgICAgIFRPQk4oMHg5NzlmNmY5YiwgMHgyOThkZmNhOCksIFRPQk4oMHhjN2M1ZGZmMSwg
MHg4ZGU5MzY2YSl9fSwKKyAgICAgICAgIHt7VE9CTigweDFiN2E1ODhkLCAweDA0YzgyYmRkKSwg
VE9CTigweDY4MDA1NTM0LCAweGY4MzE5ZGZkKSwKKyAgICAgICAgICAgVE9CTigweGRlOGE1NWI1
LCAweGQ4ZWI5NTgwKSwgVE9CTigweDVlYTg4NmRhLCAweDhkNWJjYTgxKX0sCisgICAgICAgICAg
e1RPQk4oMHhlODUzMGEwMSwgMHgyNTJhMGI0ZCksIFRPQk4oMHgxYmZmYjRmZSwgMHgzNWVhYTBh
MSksCisgICAgICAgICAgIFRPQk4oMHgyYWQ4MjhiMSwgMHhkOGU5OTU2MyksIFRPQk4oMHg3ZGU5
NmVmNSwgMHg5NWY5Y2Q4Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweDRhYmIyZDBjLCAweGQ3N2Q5
NzBjKSwgVE9CTigweDAzY2ZiOTMzLCAweGQzM2VmOWNiKSwKKyAgICAgICAgICAgVE9CTigweGIw
NTQ3YzAxLCAweDhiMjExZmU5KSwgVE9CTigweDJmZTY0ODA5LCAweGE1NmVkMWM2KX0sCisgICAg
ICAgICAge1RPQk4oMHhjYjdkNTYyNCwgMHhjMmFjOThjYyksIFRPQk4oMHgyYTEzNzJjMCwgMHgx
YTM5M2UzMyksCisgICAgICAgICAgIFRPQk4oMHhjOGQxZWMxYywgMHgyOTY2MDUyMSksIFRPQk4o
MHhmM2QzMWIwNCwgMHhiMzdhYzNlOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGEyOWFlOWRmLCAw
eDVlY2U2ZTdjKSwgVE9CTigweDA2MDNhYzhmLCAweDBmYWNmYjU1KSwKKyAgICAgICAgICAgVE9C
TigweGNmZTg1YjdhLCAweGRkYTIzM2E1KSwgVE9CTigweGU2MTg5MTlmLCAweGJkNzVmMGI4KX0s
CisgICAgICAgICAge1RPQk4oMHhmNTU1YTNkMiwgMHg5OWJmMTYwMyksIFRPQk4oMHgxZjQzYWZj
OSwgMHhmMTg0MjU1YSksCisgICAgICAgICAgIFRPQk4oMHhkY2RhZjM0MSwgMHgzMTlhM2UwMiks
IFRPQk4oMHhkM2IxMTdlZiwgMHgwMzkwM2EzOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGUwOTVk
YTEzLCAweDY1ZDFkMTMxKSwgVE9CTigweDg2ZjE2MzY3LCAweGMzN2FkMDNlKSwKKyAgICAgICAg
ICAgVE9CTigweDVmMzczODllLCAweDQ2MmNkOGRkKSwgVE9CTigweGMxMDNmYTA0LCAweGQ2N2E2
MGU2KX0sCisgICAgICAgICAge1RPQk4oMHg1N2MzNDM0NCwgMHhmNGI0NzhmMCksIFRPQk4oMHhj
ZTkxZWRkOCwgMHhlMTE3Yzk4ZCksCisgICAgICAgICAgIFRPQk4oMHgwMDE3NzdiMCwgMHgyMzFm
YzEyZSksIFRPQk4oMHgxMWFlNDdmMiwgMHhiMjA3YmNjYil9fSwKKyAgICAgICAgIHt7VE9CTigw
eGQ5ODNjZjhkLCAweDIwZjhhMjQyKSwgVE9CTigweDdhZmY1YjFkLCAweGYyMmUxYWQ4KSwKKyAg
ICAgICAgICAgVE9CTigweDY4ZmQxMWQwLCAweDdmYzRmZWIzKSwgVE9CTigweDVkNTNhZTkwLCAw
eGIwZjFjM2UxKX0sCisgICAgICAgICAge1RPQk4oMHg1MGZiNzkwNSwgMHhlYzA0MTgwMyksIFRP
Qk4oMHg4NWUzYzk3NywgMHgxNDQwNDg4OCksCisgICAgICAgICAgIFRPQk4oMHgwZTY3ZmFlZCwg
MHhhYzYyOGQ4ZiksIFRPQk4oMHgyZTg2NTE1MCwgMHg2NjY4NTMyYyl9fSwKKyAgICAgICAgIHt7
VE9CTigweDE1YWNhYWE0LCAweDZhNjdhNmIwKSwgVE9CTigweGY0Y2RlZTI1LCAweGIyNWNlYzQx
KSwKKyAgICAgICAgICAgVE9CTigweDQ5ZWU1NjVhLCAweGU0YzY3MDFlKSwgVE9CTigweDJhMDRj
YTY2LCAweGZjN2Q2M2Q4KX0sCisgICAgICAgICAge1RPQk4oMHhlYjEwNTAxOCwgMHhlZjA1NDNm
YiksIFRPQk4oMHhmNzA5YTRmNSwgMHhkMWIwZDgxZCksCisgICAgICAgICAgIFRPQk4oMHg1Yjkw
NmVlNiwgMHgyOTE1ZDMzMyksIFRPQk4oMHhmNGE4NzQxMiwgMHg5NmYxZjBhYil9fSwKKyAgICAg
ICAgIHt7VE9CTigweGI2YjgyZmE3LCAweDRkODJmNGMyKSwgVE9CTigweDkwNzI1YTYwLCAweDY4
MDRlZmIzKSwKKyAgICAgICAgICAgVE9CTigweGJjODJlYzQ2LCAweGFkYzM0MjVlKSwgVE9CTigw
eGI3YjgwNTgxLCAweDI3ODc4NDNlKX0sCisgICAgICAgICAge1RPQk4oMHhkZjQ2ZDkxYywgMHhk
ZDFmYzc0YyksIFRPQk4oMHhkYzFjNjJjYiwgMHhlNzgzYTZjNCksCisgICAgICAgICAgIFRPQk4o
MHg1OWQxYjlmMywgMHgxYTA0Y2JiYSksIFRPQk4oMHhkODdmNmY3MiwgMHg5NWU0MDc2NCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDAyYjRjZmMxLCAweDMxN2Y0YTc2KSwgVE9CTigweDhkMjcwM2Vi
LCAweDkxMDM2YmNlKSwKKyAgICAgICAgICAgVE9CTigweDk4MjA2Y2M2LCAweGE1ZTcyYTU2KSwg
VE9CTigweDU3YmU5ZWQxLCAweGNmNTNmYjBmKX0sCisgICAgICAgICAge1RPQk4oMHgwOTM3NDU3
MSwgMHhlZjBiMTdhYyksIFRPQk4oMHg3NGIyNjU1ZSwgMHhkOTE4MWIzOCksCisgICAgICAgICAg
IFRPQk4oMHhjOGY4MGVhOCwgMHg4OTkzNWQwZSksIFRPQk4oMHhjMGQ5ZTk0MiwgMHg5MTUyOTkz
Nil9fSwKKyAgICAgICAgIHt7VE9CTigweDE5Njg2MDQxLCAweDFlODRlMGU1KSwgVE9CTigweGE1
ZGI4NGQzLCAweGFlYTM0YzkzKSwKKyAgICAgICAgICAgVE9CTigweGY5ZDViYjE5LCAweDcwNzNh
NzMyKSwgVE9CTigweGI4ZDJmZTU2LCAweDZiY2ZkN2MwKX0sCisgICAgICAgICAge1RPQk4oMHg0
NTc3NWYzNiwgMHhmM2ViODJmYSksIFRPQk4oMHg4Y2IyMGNjYywgMHhmZGZmOGI1OCksCisgICAg
ICAgICAgIFRPQk4oMHgxNjU5YjY1ZiwgMHg4Mzc0YzExMCksIFRPQk4oMHhiOGI0YTQyMiwgMHgz
MzBjNzg5YSl9fSwKKyAgICAgICAgIHt7VE9CTigweDc1ZTNjM2VhLCAweDZmZTgyMDhiKSwgVE9C
TigweGJkNzRiOWU0LCAweDI4NmU3OGZlKSwKKyAgICAgICAgICAgVE9CTigweDBiZTJlODFiLCAw
eGQ3ZDkzYTFhKSwgVE9CTigweDdlZDA2ZTI3LCAweGRkMGE1YWFlKX0sCisgICAgICAgICAge1RP
Qk4oMHg3MjFmNWE1OCwgMHg2YmU4YjgwMCksIFRPQk4oMHg0MjgyOTlkMSwgMHhkODQ2ZGIyOCks
CisgICAgICAgICAgIFRPQk4oMHg5NWNiOGU2YiwgMHg1YmU4OGVkMyksIFRPQk4oMHhjMzE4NmIy
MywgMHgxYzAzNGUxMSl9fSwKKyAgICAgICAgIHt7VE9CTigweGE2MzEyYzllLCAweDg5NzdkOTli
KSwgVE9CTigweGJlOTQ0MzMxLCAweDgzZjUzMWU3KSwKKyAgICAgICAgICAgVE9CTigweDgyMzJj
MGMyLCAweDE4ZDNiMWQ0KSwgVE9CTigweDYxN2FhZThiLCAweGUxMjQ3YjczKX0sCisgICAgICAg
ICAge1RPQk4oMHg0MDE1M2ZjNCwgMHgyODJhZWMzYiksIFRPQk4oMHhjNjA2M2QyZiwgMHhmN2I4
ZjgyMyksCisgICAgICAgICAgIFRPQk4oMHg2OGYxMGU1OCwgMHgzMzA0Zjk0YyksIFRPQk4oMHgz
MWVmYWU3NCwgMHhlZTY3NjM0Nil9fSwKKyAgICAgICAgIHt7VE9CTigweGJhZGI2YzZkLCAweDQw
YTliOTdjKSwgVE9CTigweDE0NzAyYzYzLCAweDRmNjY2MjU2KSwKKyAgICAgICAgICAgVE9CTigw
eGRlYjk1NGYxLCAweDUxODRiMmUzKSwgVE9CTigweDUxODRhNTI2LCAweDk0YjZjYTQwKX0sCisg
ICAgICAgICAge1RPQk4oMHhmZmYwNTMzNywgMHgwMDNjMzJlYSksIFRPQk4oMHg1YWEzNzRkZCwg
MHgyMDU5NzRjNyksCisgICAgICAgICAgIFRPQk4oMHg5YTc2Mzg1NCwgMHg0YjBkZDcxYSksIFRP
Qk4oMHg0NTljZDI3ZiwgMHhkZWI5NDdlYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGE2ZTI4MTYx
LCAweDQ1OWMyYjkyKSwgVE9CTigweDJmMDIwZmE4LCAweDc1ZWU4ZWY1KSwKKyAgICAgICAgICAg
VE9CTigweGIxMzJlYzJkLCAweDMwYjA2MzEwKSwgVE9CTigweGMzZTE1ODk5LCAweGJjNmE0NTMw
KX0sCisgICAgICAgICAge1RPQk4oMHhkYzVmNTNmZSwgMHhhYTNmNDUxYSksIFRPQk4oMHgzYTNj
N2YyMywgMHhjMmQ5YWNhYyksCisgICAgICAgICAgIFRPQk4oMHgyZWMyZjg5MiwgMHg2YjI3ZTU4
YiksIFRPQk4oMHg2ODQ2NmVlNywgMHhkNzQyNzk5Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDk4
MzI0ZGQ0LCAweDFmYTI2NjEzKSwgVE9CTigweGEyZGM2ZGFiLCAweGJkYzI5ZDYzKSwKKyAgICAg
ICAgICAgVE9CTigweGY5Njc1ZmFhLCAweGQ3MTJkNjU3KSwgVE9CTigweDgxMzk5NGJlLCAweDIx
ZmQ4ZDE1KX0sCisgICAgICAgICAge1RPQk4oMHg1Y2NiYjcyMiwgMHhmZDRmNzU1MyksIFRPQk4o
MHg1MTM1ZmY4YiwgMHhmM2EzNmIyMCksCisgICAgICAgICAgIFRPQk4oMHg0NGJlMjhhZiwgMHg2
OTU1OWRmNSksIFRPQk4oMHg0MGI2NWJlZCwgMHg5ZDQxYmYzMCl9fSwKKyAgICAgICAgIHt7VE9C
TigweGQ5OGJmMmE0LCAweDM3MzRlNTIwKSwgVE9CTigweDVlM2FiYmUzLCAweDIwOWJkY2JhKSwK
KyAgICAgICAgICAgVE9CTigweDc3Yzc2NTUzLCAweGJjOTQ1YjM1KSwgVE9CTigweDUzMzFjMDkz
LCAweGM2ZWYxNGFhKX0sCisgICAgICAgICAge1RPQk4oMHg1MThmZmUyOSwgMHg3NmI2MGM4MCks
IFRPQk4oMHgyMjg1NTkzYiwgMHg3YWNlMTZmOCksCisgICAgICAgICAgIFRPQk4oMHhhYjFmNjRj
YywgMHhiZTJiOTc4NCksIFRPQk4oMHhlOGYyYzBkOSwgMHhhYjI0MjFiNil9fSwKKyAgICAgICAg
IHt7VE9CTigweDYxN2Q3MTc0LCAweGMxZGYwNjVjKSwgVE9CTigweGFmZWViNWFiLCAweDVmNjU3
OGZhKSwKKyAgICAgICAgICAgVE9CTigweDE2ZmYxMzI5LCAweDI2M2I1NGE4KSwgVE9CTigweDQ1
YzU1ODA4LCAweGM5OTBkY2UzKX0sCisgICAgICAgICAge1RPQk4oMHg0MmVhYjZjMCwgMHhlY2M4
YzE3NyksIFRPQk4oMHg3OTllYTliNSwgMHg1OTgyZWNhYSksCisgICAgICAgICAgIFRPQk4oMHhm
NjVkYTI0NCwgMHhiNjA3ZWY4ZSksIFRPQk4oMHg4YWIyMjZjZSwgMHgzMmEzZmMyYyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDc0NTc0MWU1LCAweDdlYTk3M2RjKSwgVE9CTigweDVjMDBjYTcwLCAw
eDIwODg4ZjJlKSwKKyAgICAgICAgICAgVE9CTigweDdjZGNlM2NmLCAweDQ1ZmQ5Y2YxKSwgVE9C
TigweDhhNzQxZWYxLCAweDU1MDdmODcyKX0sCisgICAgICAgICAge1RPQk4oMHg0N2M1MWMyZiwg
MHgxOTZiNGNlYyksIFRPQk4oMHg3MGQwOGU0MywgMHhjOTdlYTYxOCksCisgICAgICAgICAgIFRP
Qk4oMHg5MzBkYTE1YywgMHgxNWIxOGEyYiksIFRPQk4oMHgzM2I2YzY3OCwgMHgyZjYxMDUxNCl9
fSwKKyAgICAgICAgIHt7VE9CTigweGM2NjJlNGY4LCAweDA3YWM5Nzk0KSwgVE9CTigweDFlY2Nm
MDUwLCAweGJhMDZjYjc5KSwKKyAgICAgICAgICAgVE9CTigweDFmZjA4NjIzLCAweGU3ZDk1NGU1
KSwgVE9CTigweDZlZjJjNWZiLCAweDI0Y2Y3MWMzKX0sCisgICAgICAgICAge1RPQk4oMHhiMmMw
NjNkMiwgMHg2Nzk3ODQ1MyksIFRPQk4oMHhhMGNmMzc5NiwgMHgxZDY1NGFmOCksCisgICAgICAg
ICAgIFRPQk4oMHg3Y2IyNDJlYSwgMHg3ZWJkYWEzNyksIFRPQk4oMHgyMDZlMGIxMCwgMHhiODY3
NDdlMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDQ4MWRhZTVmLCAweGQ1ZWNmZWZjKSwgVE9CTigw
eDA3MDg0ZmQ4LCAweGMyYmZmOGZjKSwKKyAgICAgICAgICAgVE9CTigweDgwNDBhMDFhLCAweGVh
MzI0NTk2KSwgVE9CTigweDRjNjQ2OTgwLCAweGQ0ZGU0MDM2KX0sCisgICAgICAgICAge1RPQk4o
MHg5ZWI4YWI0ZSwgMHhkNjVhYmZjMyksIFRPQk4oMHhlMDFjYjkxZiwgMHgxMzU0MWVjNyksCisg
ICAgICAgICAgIFRPQk4oMHg4ZjAyOWFkYiwgMHhmZDY5NTAxMiksIFRPQk4oMHg5YWUyODQ4Mywg
MHgzYzc1NjllYyl9fSwKKyAgICAgICAgIHt7VE9CTigweGE1NjE0YzllLCAweGE2NmQ4MGExKSwg
VE9CTigweDY4MGEzZTQ0LCAweDc1ZjVmOTExKSwKKyAgICAgICAgICAgVE9CTigweDBjMDdiMTRk
LCAweGNlYmE0ZmMxKSwgVE9CTigweDg5MWMyODViLCAweGExMzA3MWMxKX0sCisgICAgICAgICAg
e1RPQk4oMHhjYWM2N2NlYiwgMHg3OTllY2UzYyksIFRPQk4oMHgyOWI5MTBhOSwgMHg0MWUwN2Uy
NyksCisgICAgICAgICAgIFRPQk4oMHg2NmJkYjQwOSwgMHhmMmU0MzEyMyksIFRPQk4oMHgwNmY4
YjEzNywgMHg3YWM5ZWNiZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDU5ODFmYWZkLCAweDM4NTQ3
MDkwKSwgVE9CTigweDE5YWI4YjlmLCAweDg1ZTM0MTVkKSwKKyAgICAgICAgICAgVE9CTigweGZj
MjhjMTk0LCAweGM3ZTMxYjI3KSwgVE9CTigweDg0M2JlMGFhLCAweDZmYmNiYjQyKX0sCisgICAg
ICAgICAge1RPQk4oMHhmM2IxZWQ0MywgMHhhNmRiODM2YyksIFRPQk4oMHgyYTEzMzBlNCwgMHgw
MWE0NWMwNSksCisgICAgICAgICAgIFRPQk4oMHg0ZjE5ZjNjNSwgMHg5NWMxYTM3NyksIFRPQk4o
MHhhODVmMzlkMCwgMHg0NGI1ZWUzMyl9fSwKKyAgICAgICAgIHt7VE9CTigweDNkYTE4ZTZkLCAw
eDRhZTUyODM0KSwgVE9CTigweDVhNDAzYjM5LCAweDc0MjNkY2IwKSwKKyAgICAgICAgICAgVE9C
TigweGJiNTU1ZTBhLCAweGYyMzc0YWVmKSwgVE9CTigweDJhZDU5OWM0LCAweDFlOGNhMTExKX0s
CisgICAgICAgICAge1RPQk4oMHgxYjNhMmZiOSwgMHgwMTRiM2JmOCksIFRPQk4oMHg3MzA5MjY4
NCwgMHhmNjZkNTAwNyksCisgICAgICAgICAgIFRPQk4oMHgwNzlmMTQyNiwgMHhjNDM0MDEwMiks
IFRPQk4oMHgxODI3Y2Y4MSwgMHg4ZmRkZjRkZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGM4MzYw
NWY2LCAweGYxMGZmOTI3KSwgVE9CTigweGQzODcxNDUxLCAweDIzNzM5ZmM2KSwKKyAgICAgICAg
ICAgVE9CTigweDZkMTYzNDUwLCAweGNhYzFjMmNjKSwgVE9CTigweDZiNTIxMjk2LCAweGEyZWMx
YWM1KX0sCisgICAgICAgICAge1RPQk4oMHgwNjA2YzRmOSwgMHg2ZTNjYjRhNSksIFRPQk4oMHhl
NDdkM2Y0MSwgMHg3NzhhYmZmNyksCisgICAgICAgICAgIFRPQk4oMHg0MjVhOGQ1ZSwgMHhiZThl
M2E0NSksIFRPQk4oMHg1M2VhOWU5NywgMHhhNjEwMjE2MCl9fSwKKyAgICAgICAgIHt7VE9CTigw
eDQ3N2ExMDZlLCAweDM5Y2JiNjg4KSwgVE9CTigweDUzMjQwMWQyLCAweGYzMzg2ZDMyKSwKKyAg
ICAgICAgICAgVE9CTigweDhlNTY0ZjY0LCAweGIxYjliNDIxKSwgVE9CTigweGNhOWI4Mzg4LCAw
eDgxZGFkMzNmKX0sCisgICAgICAgICAge1RPQk4oMHhiMTQyMmI0ZSwgMHgyMDkzOTEzZSksIFRP
Qk4oMHg1MzNkMmY5MiwgMHg2OWJjODExMiksCisgICAgICAgICAgIFRPQk4oMHgzZmEwMTdiZSwg
MHhlYmU3YjJjNyksIFRPQk4oMHhiMjc2N2M0YSwgMHhjYWYxOTdjNil9fSwKKyAgICAgICAgIHt7
VE9CTigweGM5MjVmZjg3LCAweGFlZGJhZTlmKSwgVE9CTigweDdkYWYwZWI5LCAweDM2ODgwYTU0
KSwKKyAgICAgICAgICAgVE9CTigweDkyODRkZGY1LCAweDljNGQwZTcxKSwgVE9CTigweDE1ODFj
ZjkzLCAweDMxNmY4Y2Y1KX0sCisgICAgICAgICAge1RPQk4oMHgzZWVjYTg4NywgMHgzYWMxZjQ1
MiksIFRPQk4oMHhiNDE3ZmNlOSwgMHhmYjZhZWZmZSksCisgICAgICAgICAgIFRPQk4oMHhhNTkx
ODA0NiwgMHhlZWZiOGRjMyksIFRPQk4oMHg3M2QzMThhYywgMHgwMjIwOTQwMCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGU4MDA0MDBmLCAweDcyODY5M2U1KSwgVE9CTigweGU4N2Q4MTRiLCAweDMz
OTkyN2VkKSwKKyAgICAgICAgICAgVE9CTigweDkzZTk0ZDNiLCAweDU3ZWE5OTEwKSwgVE9CTigw
eGZmOGEzNWI2LCAweDIyNDVmYjY5KX0sCisgICAgICAgICAge1RPQk4oMHgwNDM4NTNkNywgMHg3
ZjIwMGQzNCksIFRPQk4oMHg0NzBmMWU2OCwgMHgwZjY1M2NlMSksCisgICAgICAgICAgIFRPQk4o
MHg4MWFjMDViZCwgMHg1OWEwNjM3OSksIFRPQk4oMHhhMTQwNTJjMiwgMHgwMzkzMGMyOSl9fSwK
KyAgICAgICAgIHt7VE9CTigweDZiNzJmYWI1LCAweDI2YmMyNzk3KSwgVE9CTigweDEzNjcwZDE2
LCAweDk5ZjE2NzcxKSwKKyAgICAgICAgICAgVE9CTigweDAwMTcwMDUyLCAweDFlM2U0OGQxKSwg
VE9CTigweDk3OGZlNDAxLCAweGI3YWRmNjc4KX0sCisgICAgICAgICAge1RPQk4oMHg1NWVjZmI5
MiwgMHhkNDFjNWRkNCksIFRPQk4oMHg1ZmY4ZTI0NywgMHhjN2IyN2RhNSksCisgICAgICAgICAg
IFRPQk4oMHhlNzUxODI3MiwgMHgwMTNmYjYwNiksIFRPQk4oMHg1NzY4ZDdlNSwgMHgyZjU0N2Ez
Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweGJiMjRlYWEzLCAweDYwMDE3YTVmKSwgVE9CTigweDZi
MThlNmU0LCAweDljNjRjZTliKSwKKyAgICAgICAgICAgVE9CTigweGMyMjVjNjU1LCAweDEwM2Rk
ZTA3KSwgVE9CTigweGZjMzY3MmFlLCAweDc1OTJmN2VhKX0sCisgICAgICAgICAge1RPQk4oMHg5
NjA2YWQ3NywgMHhkMDYyODNhMSksIFRPQk4oMHg1NDJmYzY1MCwgMHhlNGQ1OWQ5OSksCisgICAg
ICAgICAgIFRPQk4oMHhhYmI1N2M0OSwgMHgyYTQwZTdjMiksIFRPQk4oMHhhYzk0OGYxMywgMHhh
OGRiOWY1NSl9fSwKKyAgICAgICAgIHt7VE9CTigweDZkNGM5NjgyLCAweGIwNDQ2NWMzKSwgVE9C
TigweGUzZDA2MmZhLCAweDY0NjhiZDE1KSwKKyAgICAgICAgICAgVE9CTigweGE1MTcyOWFjLCAw
eDVmMzE4ZDdlKSwgVE9CTigweDFmYzg3ZGY2LCAweDllYjZmYzk1KX0sCisgICAgICAgICAge1RP
Qk4oMHg2M2QxNDZhOCwgMHgwNTkxZjY1MiksIFRPQk4oMHhhODYxYjhmNywgMHg1ODk2MjFhYSks
CisgICAgICAgICAgIFRPQk4oMHg1OWY1ZjE1YSwgMHhjZTMxMzQ4YyksIFRPQk4oMHg4ZjY2MzM5
MSwgMHg0NDBkYTZkYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGNmYTc3OGFjLCAweGI1OTFmZmEz
KSwgVE9CTigweDAyN2NhOWM1LCAweDRjZGZlYmNlKSwKKyAgICAgICAgICAgVE9CTigweGJlOGUw
NWE1LCAweDQ0NGVhNmIzKSwgVE9CTigweDhhYWI0ZTY5LCAweGE3OGQ4MjU0KX0sCisgICAgICAg
ICAge1RPQk4oMHgyNDM3ZjA0ZiwgMHhiNDc0ZDZiOCksIFRPQk4oMHg2NTk3ZmZkNCwgMHgwNDVi
Mzg1NSksCisgICAgICAgICAgIFRPQk4oMHhiYjBhZWE0ZSwgMHhjYTQ3ZWNhYSksIFRPQk4oMHg1
NjhhYWU4MywgMHg4NWM3ZWJmYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDBlOTY2ZTY0LCAweGM3
M2IyMzgzKSwgVE9CTigweDQ5ZWIzNDQ3LCAweGQxN2Q4NzYyKSwKKyAgICAgICAgICAgVE9CTigw
eGRlMTA3ODIxLCAweDhkYTA1ZGFiKSwgVE9CTigweDQ0M2Q4YmFhLCAweDAxNmI3MjM2KX0sCisg
ICAgICAgICAge1RPQk4oMHgxNjNiNjNhNSwgMHhlYTc2MTBkNiksIFRPQk4oMHhlNDdlNDE4NSwg
MHhjZTFjYTk3OSksCisgICAgICAgICAgIFRPQk4oMHhhZTY0OGI2NSwgMHg4MGJhYTEzMiksIFRP
Qk4oMHhlYmY1M2RlMiwgMHgwZTBkNWI2NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDhkM2JmY2I0
LCAweGQzYzhjMWNhKSwgVE9CTigweDBkOTE0ZWYzLCAweDVkMDRiMzA5KSwKKyAgICAgICAgICAg
VE9CTigweDU1ZWY2NDE1LCAweDNkZTdkMzk1KSwgVE9CTigweGJkZTE2NjZmLCAweDI2Yjg1MGU4
KX0sCisgICAgICAgICAge1RPQk4oMHhkYmUxY2E2ZSwgMHhkNDQ5YWIxOSksIFRPQk4oMHg4OTAy
YjMyMiwgMHhlODlhMjY3MiksCisgICAgICAgICAgIFRPQk4oMHhiMTY3NGI3ZSwgMHhkYWNiN2E1
MyksIFRPQk4oMHg4ZTlmYWY2ZSwgMHhmNTI1MjNmZil9fSwKKyAgICAgICAgIHt7VE9CTigweDZi
YTUzNWRhLCAweDlhODU3ODhiKSwgVE9CTigweGQyMWYwM2FlLCAweGJkMDYyNmQ0KSwKKyAgICAg
ICAgICAgVE9CTigweDA5OWY4YzQ3LCAweGU4NzNkYzY0KSwgVE9CTigweGNkYTg1NjRkLCAweDAx
OGVjOTdlKX0sCisgICAgICAgICAge1RPQk4oMHgzZThkN2E1YywgMHhkZTkyYzY4YyksIFRPQk4o
MHg3OGUwMzVhMSwgMHg3MzMyM2NjNCksCisgICAgICAgICAgIFRPQk4oMHgzZWYyNjI3NSwgMHhm
ODgwZmY3YyksIFRPQk4oMHhhNGVlM2RmZiwgMHgyNzNlZWRhYSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDU4ODIzNTA3LCAweGFmNGUxOGY4KSwgVE9CTigweDk2N2VjOWI1LCAweDA2NzJmMzI4KSwK
KyAgICAgICAgICAgVE9CTigweDlkZWQxOWQ5LCAweDU1OWQzMTg2KSwgVE9CTigweDVlMmFiM2Rl
LCAweDZjZGNlMzljKX0sCisgICAgICAgICAge1RPQk4oMHhhYmFkNmU0ZCwgMHgxMWMyMjZkZiks
IFRPQk4oMHhmOTc4M2Y0MywgMHg4NzcyMzAxNCksCisgICAgICAgICAgIFRPQk4oMHg5YTQ5YTBj
ZiwgMHgxYTg4NTcxOSksIFRPQk4oMHhmYzBjMWE1YSwgMHg5MGRhOWRiZil9fSwKKyAgICAgICAg
IHt7VE9CTigweDhiYmFlYzQ5LCAweDU3MWQ5MmFjKSwgVE9CTigweDU2OWU4NWZlLCAweDQ2OTI1
MTdmKSwKKyAgICAgICAgICAgVE9CTigweDgzMzNiMDE0LCAweGExNGVhNGFmKSwgVE9CTigweDMy
ZjJhNjJmLCAweDEyZTVjNWFkKX0sCisgICAgICAgICAge1RPQk4oMHg5OGMyY2UzYSwgMHgwNmQ4
OWI4NSksIFRPQk4oMHhiOTA3NDFhYSwgMHgyZmY3N2EwOCksCisgICAgICAgICAgIFRPQk4oMHgy
NTMwZGVmYywgMHgwMWY3OTVhMiksIFRPQk4oMHhkNmU1YmEwYiwgMHg4NGIzYzE5OSl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDdkOGU4NDUxLCAweDEyZTRjOTM2KSwgVE9CTigweGFlNDE5ZjdkLCAw
eGJkMGJlMTdiKSwKKyAgICAgICAgICAgVE9CTigweGE1ODNmYzhjLCAweDIyMjYyYmM5KSwgVE9C
TigweDZiODQyYWM3LCAweDkxYmZlMmJkKX0sCisgICAgICAgICAge1RPQk4oMHgzM2NlZjRlOSwg
MHg0NDBkNjgyNyksIFRPQk4oMHg1ZjY5ZjRkZSwgMHhlZjgxZmIxNCksCisgICAgICAgICAgIFRP
Qk4oMHhmMTZjZjZmNiwgMHgyMzRmYmI5MiksIFRPQk4oMHg3NmFlM2ZjMywgMHhkOWU3ZTE1OCl9
fSwKKyAgICAgICAgIHt7VE9CTigweDRlODlmNmMyLCAweGU5NzQwYjMzKSwgVE9CTigweDY3N2Jj
ODVkLCAweDQ5NjJkNmExKSwKKyAgICAgICAgICAgVE9CTigweDZjNmQ4YTdmLCAweDY4ZDEwZDE1
KSwgVE9CTigweDVmOWE3MjI0LCAweDAyNTdiMWNkKX0sCisgICAgICAgICAge1RPQk4oMHg3MDk2
YjkxNiwgMHg0YWQ4NTk2MSksIFRPQk4oMHg1ZjhjNDdmNywgMHhlNjU3YWI0YSksCisgICAgICAg
ICAgIFRPQk4oMHhkZTU3ZDdkMCwgMHhmNzQ2MWQ3ZSksIFRPQk4oMHg3ZWI2MDk0ZCwgMHg4MGNl
NWVlMil9fSwKKyAgICAgICAgIHt7VE9CTigweDBiMWUxZGZkLCAweDM0MTkwNTQ3KSwgVE9CTigw
eDhhMzk0ZjQzLCAweGYwNWRkMTUwKSwKKyAgICAgICAgICAgVE9CTigweDBhOWViMjRkLCAweDk3
ZGY0NGU2KSwgVE9CTigweDc4Y2EwNmJmLCAweDg3Njc1NzE5KX0sCisgICAgICAgICAge1RPQk4o
MHg2ZjBiMzQ2MiwgMHg2ZmZlZWMyMiksIFRPQk4oMHg5ZDkxYmNlYSwgMHgzNmNkZDhmYiksCisg
ICAgICAgICAgIFRPQk4oMHhhYzgzMzYzYywgMHhhMTA1YmU0NyksIFRPQk4oMHg4MWJhNzZjMSwg
MHgwNjk3MTBlMyl9fSwKKyAgICAgICAgIHt7VE9CTigweDNkMWIyNGNiLCAweDI4YzY4MmM2KSwg
VE9CTigweDI3ZjI1MjI4LCAweDg2MTI1NzViKSwKKyAgICAgICAgICAgVE9CTigweGI1ODdjNzc5
LCAweGU4ZTY2ZTk4KSwgVE9CTigweDdiMGMwM2U5LCAweDQwNWViMWZlKX0sCisgICAgICAgICAg
e1RPQk4oMHhmZGYwZDAzMCwgMHgxNWI1NDhlNyksIFRPQk4oMHhhOGJlNzZlMCwgMHgzOGIzNmFm
NyksCisgICAgICAgICAgIFRPQk4oMHg0Y2RhYjA0YSwgMHg0ZjMxMGM0MCksIFRPQk4oMHg2Mjg3
MjIzZSwgMHhmNDdlY2FlYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDY3OGU2MDU1LCAweDhiMzk5
MzIwKSwgVE9CTigweDYxZmUzZmE2LCAweGMwMWU0NjQ2KSwKKyAgICAgICAgICAgVE9CTigweGM0
ODI4NjZiLCAweDAzMjYxYTVlKSwgVE9CTigweGRmY2Y0NWI4LCAweDVjMmYyNDRhKX0sCisgICAg
ICAgICAge1RPQk4oMHg4ZmFiOWE1MSwgMHgyZjY4NGI0MyksIFRPQk4oMHhmNzk2YzY1NCwgMHhj
NzIyMGE2NiksCisgICAgICAgICAgIFRPQk4oMHgxZDkwNzA3ZSwgMHhmNWFmYTU4ZiksIFRPQk4o
MHgyYzQyMWQ5NywgMHg0ZmRiZTBkZSl9fSwKKyAgICAgICAgIHt7VE9CTigweGM0ZjRjZGEzLCAw
eGFmMmViYzJmKSwgVE9CTigweGEwYWY4NDNkLCAweGNiNGVmZTI0KSwKKyAgICAgICAgICAgVE9C
TigweDUzYjg1N2MxLCAweDljY2QxMGIxKSwgVE9CTigweGRkYzlkMWViLCAweDkxNGQzZTA0KX0s
CisgICAgICAgICAge1RPQk4oMHg3YmRlYzhiYiwgMHg2Mjc3MWRlYiksIFRPQk4oMHg4MjkyNzdh
YSwgMHg5MWM1YWE4MSksCisgICAgICAgICAgIFRPQk4oMHg3YWYxOGRkNiwgMHg4MzIzOTFhZSks
IFRPQk4oMHgxNzQwZjMxNiwgMHhjNzFhODRjYSl9fX0sCisgICAgICAgIHt7e1RPQk4oMHg4OTI4
ZTk5YSwgMHhlZWFmOGM0OSksIFRPQk4oMHhlZTdhYTczZCwgMHg2ZTI0ZDcyOCksCisgICAgICAg
ICAgIFRPQk4oMHg0YzUwMDdjMiwgMHhlNzJiMTU2YyksIFRPQk4oMHg1ZmNmNTdjNSwgMHhlZDQw
OGExZCl9LAorICAgICAgICAgIHtUT0JOKDB4OWY3MTllMzksIDB4YjYwNTc2MDQpLCBUT0JOKDB4
N2QzNDNjMDEsIDB4YzI4NjhiYmYpLAorICAgICAgICAgICBUT0JOKDB4MmNjYTI1NGIsIDB4N2Ux
MDNlMmQpLCBUT0JOKDB4ZTZlYjM4YTksIDB4ZjEzMWJlYTIpfX0sCisgICAgICAgICB7e1RPQk4o
MHhiMzNlNjI0ZiwgMHg4YmU3NjJiNCksIFRPQk4oMHgyYTllZTRkMSwgMHgwNThlMzQxMyksCisg
ICAgICAgICAgIFRPQk4oMHg5NjhlNjM2OSwgMHg2N2Q4MDVmYSksIFRPQk4oMHg5ODQ4OTQ5Yiwg
MHg3ZGI4YmZkNyl9LAorICAgICAgICAgIHtUT0JOKDB4NTMwOGQ3ZTUsIDB4ZDIzYTg0MTcpLCBU
T0JOKDB4ODkyZjNiMWQsIDB4ZjNlMjlkYTUpLAorICAgICAgICAgICBUT0JOKDB4Yzk1YzEzOWUs
IDB4M2RlZTQ3MWYpLCBUT0JOKDB4ODYzMTU5NGQsIDB4ZDc1N2UwODkpfX0sCisgICAgICAgICB7
e1RPQk4oMHhlMGM4MmEzYywgMHhkZTkxOGRjYyksIFRPQk4oMHgyZTdiNTk5NCwgMHgyNmZkY2Y0
YiksCisgICAgICAgICAgIFRPQk4oMHg4MmM1MDI0OSwgMHgzMmNiMWIyZCksIFRPQk4oMHhlYTYx
M2E5ZCwgMHg3NjU3YWUwNyl9LAorICAgICAgICAgIHtUT0JOKDB4YzJlYjVmNmMsIDB4ZjFmZGM5
ZjcpLCBUT0JOKDB4YjZlYWU4YjgsIDB4ODc5ZmU2ODIpLAorICAgICAgICAgICBUT0JOKDB4MjUz
ZGZlZTAsIDB4NTkxY2JjN2YpLCBUT0JOKDB4MDAwZGE3MTMsIDB4M2UxMjkwZTYpfX0sCisgICAg
ICAgICB7e1RPQk4oMHgxMDgzZTJlYSwgMHgxZjA5NTYxNSksIFRPQk4oMHgwYTI4YWQ3NywgMHgx
NGU2OGMzMyksCisgICAgICAgICAgIFRPQk4oMHg2YmZjMDI1MiwgMHgzZDg4MThiZSksIFRPQk4o
MHhiNTg1MTEzYSwgMHhmMzU4NTBjZCl9LAorICAgICAgICAgIHtUT0JOKDB4N2Q5MzVmMGIsIDB4
MzBkZjhhYTEpLCBUT0JOKDB4YWRkZGEwN2MsIDB4NGFiN2UzYWMpLAorICAgICAgICAgICBUT0JO
KDB4OTJjMzQyOTksIDB4NTUyZjAwY2IpLCBUT0JOKDB4YzMzZWQxZGUsIDB4MjkwOWRmNmMpfX0s
CisgICAgICAgICB7e1RPQk4oMHgyMmMyMTk1ZCwgMHg4MGU4Nzc2NiksIFRPQk4oMHg5ZTk5ZTZk
OCwgMHg5ZGRmNGFjMCksCisgICAgICAgICAgIFRPQk4oMHgwOTY0MmU0ZSwgMHg2NWU3NDkzNCks
IFRPQk4oMHgyNjEwZmZhMiwgMHhmZjFmZjI0MSl9LAorICAgICAgICAgIHtUT0JOKDB4NGQxZDQ3
ZDQsIDB4NzUxYzgxNTkpLCBUT0JOKDB4Njk3YjQ5ODUsIDB4YWYzYTkzNjMpLAorICAgICAgICAg
ICBUT0JOKDB4MDMxOGNhNDYsIDB4ODc0NzdjMzMpLCBUT0JOKDB4YTkwY2I1NjUsIDB4OTQ0MWVm
ZjMpfX0sCisgICAgICAgICB7e1RPQk4oMHg1OGJiMzg0OCwgMHgzNmYwMjRjYiksIFRPQk4oMHg4
NWJlMWY3NywgMHgzNjAxNjE2OCksCisgICAgICAgICAgIFRPQk4oMHg2YzU5NTg3YywgMHhkYzdl
MDdmMSksIFRPQk4oMHgxOTFiZTA3MSwgMHhhZjFkOGYwMil9LAorICAgICAgICAgIHtUT0JOKDB4
YmYxNjlmYTUsIDB4Y2NhNWU1NWMpLCBUT0JOKDB4Mzg2NGJhM2MsIDB4ZjdkMDRlYWMpLAorICAg
ICAgICAgICBUT0JOKDB4OTE1ZTM2N2YsIDB4OGQ3ZDA1ZGIpLCBUT0JOKDB4YjQ4YTg3NmQsIDB4
YTY1NDllNWQpfX0sCisgICAgICAgICB7e1RPQk4oMHhlZjg5YzY1NiwgMHg1ODBlNDBhMiksIFRP
Qk4oMHhmMTk0ZWQ4YywgMHg3MjgwNjhiYyksCisgICAgICAgICAgIFRPQk4oMHg3NDUyODA0NSwg
MHhhNDc5OTBjOSksIFRPQk4oMHhmNTNmYzdkNywgMHg1ZTFhNDY0OSl9LAorICAgICAgICAgIHtU
T0JOKDB4YmVjNWFlOWIsIDB4Nzg1OTNlN2QpLCBUT0JOKDB4MmNhYzRlZTMsIDB4NDFkYjY1ZDcp
LAorICAgICAgICAgICBUT0JOKDB4YThjMWViMjQsIDB4MDRhM2QzOWIpLCBUT0JOKDB4NTNiN2Q2
MzQsIDB4MDNmOGYzZWYpfX0sCisgICAgICAgICB7e1RPQk4oMHgyZGM0MGQ0OCwgMHgzZTA3MTEz
YyksIFRPQk4oMHg2ZTRhNWQzOSwgMHg3ZDhiNjNhZSksCisgICAgICAgICAgIFRPQk4oMHg1NTgy
YTk0YiwgMHg3OTY4NGMyYiksIFRPQk4oMHg5MzJiMzNkNCwgMHg2MjJkYTI2Yyl9LAorICAgICAg
ICAgIHtUT0JOKDB4ZjUzNGY2NTEsIDB4MGRiYmYwOGQpLCBUT0JOKDB4MjExZDA3YzksIDB4NjRj
MjNhNTIpLAorICAgICAgICAgICBUT0JOKDB4MGVlZWNlMGYsIDB4ZWU1YmRjOWIpLCBUT0JOKDB4
ZGYxNzgxNjgsIDB4ZjcwMTU1NTgpfX0sCisgICAgICAgICB7e1RPQk4oMHhkNDI5NDYzNSwgMHgw
YTcxMjIyOSksIFRPQk4oMHg5M2NiZTQ0OCwgMHgwOTI3M2Y4YyksCisgICAgICAgICAgIFRPQk4o
MHgwMGIwOTVlZiwgMHg4ZjEzYmM4MyksIFRPQk4oMHhiYjc0MTk3MiwgMHg4Nzk4OTc4Yyl9LAor
ICAgICAgICAgIHtUT0JOKDB4OWQ3MzA5YTIsIDB4NTZkYmU2ZTcpLCBUT0JOKDB4ZTU3OGVjNTYs
IDB4NWE1ZDM5ZWMpLAorICAgICAgICAgICBUT0JOKDB4Mzk2MTE1MWIsIDB4ODUxZjlhMzEpLCBU
T0JOKDB4MmRhNzcxNWQsIDB4ZTU3MDllYjQpfX0sCisgICAgICAgICB7e1RPQk4oMHg4NjdmMzAx
NywgMHg1M2RmYWJmMCksIFRPQk4oMHg3MjhkMjA3OCwgMHhiOGUzOTI1OSksCisgICAgICAgICAg
IFRPQk4oMHg1Yzc1YTBjZCwgMHg4MTVkOTk1OCksIFRPQk4oMHhmODQ4NjdhNiwgMHgxNjYwM2Jl
MSl9LAorICAgICAgICAgIHtUT0JOKDB4Yzg2NWIxM2QsIDB4NzBlMzViMWMpLCBUT0JOKDB4MDI0
MTQ0NjgsIDB4MTliMDNlMmMpLAorICAgICAgICAgICBUT0JOKDB4ZTQ2MDQxZGEsIDB4YWMxZjMx
MjEpLCBUT0JOKDB4N2M5MDE3YWQsIDB4NmYwMjhhN2MpfX0sCisgICAgICAgICB7e1RPQk4oMHhh
YmM5NmRlOSwgMHgwYTQ4Mjg3MyksIFRPQk4oMHg0MjY1ZDZiMSwgMHhiNzdlNTRkNCksCisgICAg
ICAgICAgIFRPQk4oMHg2OGMzOGU3OSwgMHhhNTdkODhlNyksIFRPQk4oMHhkNDYxZDc2NiwgMHg5
Y2U4MmRlMyl9LAorICAgICAgICAgIHtUT0JOKDB4ODE3YTllYzUsIDB4NjRhN2U0ODkpLCBUT0JO
KDB4Y2M1Njc1Y2QsIDB4YTBkZWY1ZjIpLAorICAgICAgICAgICBUT0JOKDB4OWEwMGU3ODUsIDB4
OTg1ZDQ5NGUpLCBUT0JOKDB4YzYyNjgzM2YsIDB4MWIwMzUxNGEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHhhYmU3OTA1YSwgMHg4M2NkZDYwZSksIFRPQk4oMHg1MDYwMmZiNSwgMHhhMTE3MDE4NCks
CisgICAgICAgICAgIFRPQk4oMHg2ODk4ODZjZCwgMHhiMDIzNjQyYSksIFRPQk4oMHhkNTY4ZDA5
MCwgMHhhNmUxZmIwMCl9LAorICAgICAgICAgIHtUT0JOKDB4NWIxOTIyYzcsIDB4MDI1OTIxN2Yp
LCBUT0JOKDB4OTM4MzFjZDksIDB4YzQzMTQxZTQpLAorICAgICAgICAgICBUT0JOKDB4ZGZjYTM1
ODcsIDB4MGM5NWY4NmUpLCBUT0JOKDB4ZGVjMjA1N2EsIDB4NTY4YWU4MjgpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhjNDRlYTU5OSwgMHhmOThhNzU5YSksIFRPQk4oMHg1NWEwYTdhMiwgMHhmN2My
M2MxZCksCisgICAgICAgICAgIFRPQk4oMHhkNWZmYjZlNiwgMHg5NGM0ZjY4NyksIFRPQk4oMHgz
NTYzY2NlMiwgMHgxMjg0ODQ3OCl9LAorICAgICAgICAgIHtUT0JOKDB4ODEyYjM1MTcsIDB4ZTdi
MWZiZTEpLCBUT0JOKDB4OGE3ZGM5NzksIDB4NGY3MzM4ZTApLAorICAgICAgICAgICBUT0JOKDB4
MjExZWNlZTksIDB4NTJkMDQ4ZGIpLCBUT0JOKDB4MmVlYTQwNTYsIDB4Yzg2ZWEzYjgpfX0sCisg
ICAgICAgICB7e1RPQk4oMHhkOGNiNjhhNywgMHhiYTc3MmIzNCksIFRPQk4oMHhlMTZlZDM0MSwg
MHg1ZjRlMjU0MSksCisgICAgICAgICAgIFRPQk4oMHg5YjMyZjZhNiwgMHgwZmVjMTRkYiksIFRP
Qk4oMHhlZWUzNzZmNywgMHgzOTE2OThiZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZTlhN2FhMTcs
IDB4ODM2NzRjMDIpLCBUT0JOKDB4NjU4MzJmOTcsIDB4NTg0MzAyMmEpLAorICAgICAgICAgICBU
T0JOKDB4MjlmM2E4ZGEsIDB4NWJhNDk5MGYpLCBUT0JOKDB4NzlhNTljM2EsIDB4ZmI4ZTMyMTYp
fX0sCisgICAgICAgICB7e1RPQk4oMHg5Y2RjNGQyZSwgMHhiZDE5YmIxNiksIFRPQk4oMHhjNmM3
Y2ZkMCwgMHhiMzI2MmQ4NiksCisgICAgICAgICAgIFRPQk4oMHhkNGNlMTRkMCwgMHg5NjljMGI0
NyksIFRPQk4oMHgxZmEzNTJiNywgMHgxM2U1NjEyOCl9LAorICAgICAgICAgIHtUT0JOKDB4Mzgz
ZDU1YjgsIDB4OTczZGI2ZDMpLCBUT0JOKDB4NzE4MzY4NTAsIDB4ZThlNWI3YmYpLAorICAgICAg
ICAgICBUT0JOKDB4Yzc3MTQ1OTYsIDB4ZTZiYjU3MWYpLCBUT0JOKDB4MjU5ZGYzMWYsIDB4MmQ1
YjJkZDIpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NjhmODkyNSwgMHg5MTNjYzE2ZCksIFRPQk4o
MHgxOGJjNWI2ZCwgMHhlMWEyNmY1YSksCisgICAgICAgICAgIFRPQk4oMHhkZmE0MTNiZSwgMHhm
NWY0OTlhZSksIFRPQk4oMHhmODgzNWRlYywgMHhjM2YwYWU4NCl9LAorICAgICAgICAgIHtUT0JO
KDB4YjZlNjBiZDgsIDB4NjVhNDBhYjApLCBUT0JOKDB4NjU1OTY0MzksIDB4MTk0YjM3N2UpLAor
ICAgICAgICAgICBUT0JOKDB4YmNkODU2MjUsIDB4OTIwODRhNjkpLCBUT0JOKDB4NWNlNDMzYjks
IDB4NGYyM2VkZTApfX0sCisgICAgICAgICB7e1RPQk4oMHhlOGU4ZjA0ZiwgMHg2YWQ2NTE0Myks
IFRPQk4oMHgxMTUxMTgyNywgMHhkNmUxNGFmNiksCisgICAgICAgICAgIFRPQk4oMHgzZDM5MGEx
MCwgMHg4Mjk1YzBjNyksIFRPQk4oMHg3MWUyOWVlNCwgMHg2MjFlYmExNil9LAorICAgICAgICAg
IHtUT0JOKDB4YTU4OGZjMDksIDB4NjM3MTdiNDYpLCBUT0JOKDB4MDJiZTAyZmUsIDB4ZTA2YWQ0
YTIpLAorICAgICAgICAgICBUT0JOKDB4OTMxNTU4YzYsIDB4MDRjMjJiMjIpLCBUT0JOKDB4YmI0
ZDRiZDYsIDB4MTJmM2M4NDkpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NGE0ZjQ5NiwgMHgyMGVm
ZDY2MiksIFRPQk4oMHg5MmJhNmQyMCwgMHhjNTk1MmQxNCksCisgICAgICAgICAgIFRPQk4oMHgy
ZGI4ZWExZSwgMHhjYzk3ODRjMiksIFRPQk4oMHg4MWNjMTBjYSwgMHg0YjM1MzY0NCl9LAorICAg
ICAgICAgIHtUT0JOKDB4NDBiNTcwYWQsIDB4NGI0ZDdmNmMpLCBUT0JOKDB4NWM5ZjFkOTYsIDB4
ODRhMWRjZDIpLAorICAgICAgICAgICBUT0JOKDB4MDEzNzlmODEsIDB4MzE0N2U3OTcpLCBUT0JO
KDB4ZTVjNjA5N2IsIDB4MmJkNDk5ZjUpfX0sCisgICAgICAgICB7e1RPQk4oMHg0MGRjYWZhNiwg
MHgzMjhlNWUyMCksIFRPQk4oMHhmN2I1MjQ0YSwgMHg1NDgxNTU1MCksCisgICAgICAgICAgIFRP
Qk4oMHhiOWE0ZjExOCwgMHg0N2JmYzk3OCksIFRPQk4oMHgwZWEwZTc5ZiwgMHhkMjU4MjViMSl9
LAorICAgICAgICAgIHtUT0JOKDB4YTUwZjk2ZWIsIDB4NjQ2YzdlY2YpLCBUT0JOKDB4ZWI4MTE0
OTMsIDB4NDQ2ZGVhOWQpLAorICAgICAgICAgICBUT0JOKDB4MmFmMDQ2NzcsIDB4ZGZhYmNmNjkp
LCBUT0JOKDB4YmUzYTA2OGYsIDB4YzcxM2Y2ZTgpfX0sCisgICAgICAgICB7e1RPQk4oMHg4NjBk
NTIzZCwgMHg0MmUwNjE4OSksIFRPQk4oMHhiZjA3Nzk0MSwgMHg0ZTNhZmYxMyksCisgICAgICAg
ICAgIFRPQk4oMHgwYjYxNmRjYSwgMHhjMWIyMDY1MCksIFRPQk4oMHhlNjZkZDZkMSwgMHgyMTMx
MzAwZCl9LAorICAgICAgICAgIHtUT0JOKDB4ZDRhMGZkNjcsIDB4ZmY5OWFiZGUpLCBUT0JOKDB4
Yzk5MDM1NTAsIDB4YzdhYWM1MGQpLAorICAgICAgICAgICBUT0JOKDB4MDIyZWNmOGIsIDB4N2M0
NmIyZDcpLCBUT0JOKDB4MzMzM2IxZTgsIDB4M2FiZjkyYWYpfX0sCisgICAgICAgICB7e1RPQk4o
MHgxMWNjMTEzYywgMHg2YzQ5MWMxNCksIFRPQk4oMHgwNTk3NjY4OCwgMHg4MGRkM2Y4OCksCisg
ICAgICAgICAgIFRPQk4oMHhmNWI0ZDllNywgMHgyOWQ5MzJlZCksIFRPQk4oMHhlOTgyYWFkOCwg
MHhhMmMzOGI2ZCl9LAorICAgICAgICAgIHtUT0JOKDB4NmY5MjUzNDcsIDB4OGJlMGRjZjApLCBU
T0JOKDB4NzAwMDgwYWUsIDB4NjVjYTUzZjIpLAorICAgICAgICAgICBUT0JOKDB4ZDgxMzExNTYs
IDB4NDQzY2E3N2YpLCBUT0JOKDB4ZTkyZDY5NDIsIDB4ZWM1MWY5ODQpfX0sCisgICAgICAgICB7
e1RPQk4oMHhkMmEwOGFmOCwgMHg4NWRmZTlhZSksIFRPQk4oMHhkODI1ZDlhNSwgMHg0ZDJhODZj
YSksCisgICAgICAgICAgIFRPQk4oMHgyYzUzOTg4ZCwgMHgzOWRmZjAyMCksIFRPQk4oMHhmMzhi
MTM1YSwgMHg0MzBjZGM0MCl9LAorICAgICAgICAgIHtUT0JOKDB4MGM5MThhZTAsIDB4NjJhNzE1
MGIpLCBUT0JOKDB4ZjMxZmQ4ZGUsIDB4MGMzNDBlOWIpLAorICAgICAgICAgICBUT0JOKDB4YWZh
MGU3YWUsIDB4NGRiYmYwMmUpLCBUT0JOKDB4NTg0N2ZiMmEsIDB4NWViYTYyMzkpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg2YjE2NDdkYywgMHhkY2NiYWM4YiksIFRPQk4oMHhiNjQyYWE3OCwgMHgw
NmY0ODVjOCksCisgICAgICAgICAgIFRPQk4oMHg4NzNmMzc2NSwgMHg3MDM4ZWNkZiksIFRPQk4o
MHgyY2U1ZTg2NSwgMHhmYTQ5ZDNmZSl9LAorICAgICAgICAgIHtUT0JOKDB4ZWEyMjM3ODgsIDB4
Yzk4YzQ0MDApLCBUT0JOKDB4ODEwNGE4Y2QsIDB4ZjFmYTUyNzkpLAorICAgICAgICAgICBUT0JO
KDB4YmNmN2NjN2EsIDB4MDZiZWNmZDcpLCBUT0JOKDB4NDk0MjQzMTYsIDB4YzhmOTc0YWUpfX0s
CisgICAgICAgICB7e1RPQk4oMHhjMGRhNjVlNywgMHg4NGQ2MzY1ZCksIFRPQk4oMHhiY2I3NDQz
ZiwgMHg4Zjc1OWZiOCksCisgICAgICAgICAgIFRPQk4oMHgzNWM3MTJiMSwgMHg3YWU4MTkzMCks
IFRPQk4oMHg4MDQyOGRmZiwgMHg0YzZlMDhhYil9LAorICAgICAgICAgIHtUT0JOKDB4ZjE5ZGFm
ZWYsIDB4YTRmYWY4NDMpLCBUT0JOKDB4Y2VkODUzOGQsIDB4ZmZhOTg1NWYpLAorICAgICAgICAg
ICBUT0JOKDB4MjBhYzQwOWMsIDB4YmUzYWM3Y2UpLCBUT0JOKDB4MzU4YzFmYjYsIDB4ODgyZGE3
MWUpfX0sCisgICAgICAgICB7e1RPQk4oMHhhZmE5YzBlNSwgMHhmZDM0OTk2MSksIFRPQk4oMHgy
YjJjZmE1MSwgMHg4NDIxYzJmYyksCisgICAgICAgICAgIFRPQk4oMHgyYTgwZGIxNywgMHhmM2Ey
OGQzOCksIFRPQk4oMHhhOGFiYTUzOSwgMHg1ZDEzOGU3ZSl9LAorICAgICAgICAgIHtUT0JOKDB4
NTIwMTJkMWQsIDB4NmU5NmViOGQpLCBUT0JOKDB4NjVkOGRlYTAsIDB4Y2JhZjk2MjIpLAorICAg
ICAgICAgICBUT0JOKDB4NTc3MzU0NDcsIDB4YjI2NGY1NmMpLCBUT0JOKDB4YmVlYmVmM2YsIDB4
MWI2YzhkYTIpfX0sCisgICAgICAgICB7e1RPQk4oMHhmYzM0NmQ5OCwgMHhjZTc4NTI1NCksIFRP
Qk4oMHhkNTBlOGQ3MiwgMHhiYjY0YTE2MSksCisgICAgICAgICAgIFRPQk4oMHhjMDM1NjdjNywg
MHg0OTc5NGFkZCksIFRPQk4oMHgxNWE3NjA2NSwgMHg3NTJjN2VmNil9LAorICAgICAgICAgIHtU
T0JOKDB4NTlmM2EyMjIsIDB4OTYxZjIzZDYpLCBUT0JOKDB4Mzc4ZTQ0MzgsIDB4NzNlY2MwYjAp
LAorICAgICAgICAgICBUT0JOKDB4Yzc0YmU0MzQsIDB4NWE4MmZkZTQpLCBUT0JOKDB4YWU1MDlh
ZjIsIDB4ZDhiOWNmMzQpfX0sCisgICAgICAgICB7e1RPQk4oMHg0YTYxZWU0NiwgMHg1NzdmNDRh
MSksIFRPQk4oMHhlMDliNzQ4YywgMHhiNjExZGVlYiksCisgICAgICAgICAgIFRPQk4oMHhjMDQ4
MWIyYywgMHhmNWY3Yjg4NCksIFRPQk4oMHgzNTYyNjY3OCwgMHg2MWFjZmE2Yil9LAorICAgICAg
ICAgIHtUT0JOKDB4MzdmNGM1MTgsIDB4YmY4ZDIxZTYpLCBUT0JOKDB4MjJkOTY1MzEsIDB4YjIw
NWE3NmQpLAorICAgICAgICAgICBUT0JOKDB4MzdmYjg1ZTEsIDB4OTU0MDczYzApLCBUT0JOKDB4
YmNlYWZlNGYsIDB4NjViM2E1NjcpfX0sCisgICAgICAgICB7e1RPQk4oMHhlZmVjZGVmNywgMHhi
ZTQyYTU4MiksIFRPQk4oMHhkM2ZjNjA4MCwgMHg2NTA0NmJlNiksCisgICAgICAgICAgIFRPQk4o
MHhjOWFmMTNjOCwgMHgwOWU4ZGJhOSksIFRPQk4oMHgxZTZjOTg0NywgMHg2NDE0OTFmZil9LAor
ICAgICAgICAgIHtUT0JOKDB4M2I1NzQ5MjUsIDB4ZDMwYzMxZjcpLCBUT0JOKDB4YjdlYjcyYmEs
IDB4YWMyYTIxMjIpLAorICAgICAgICAgICBUT0JOKDB4Nzc2YTBkYWMsIDB4ZWYwODU5ZTcpLCBU
T0JOKDB4MDZmZWMzMTQsIDB4MjE5MDA5NDIpfX0sCisgICAgICAgICB7e1RPQk4oMHgyNDY0YmMx
MCwgMHhmOGMyMjA0OSksIFRPQk4oMHg5YmZiY2NlNywgMHg4NzVlYmY2OSksCisgICAgICAgICAg
IFRPQk4oMHhkN2E4OGUyYSwgMHg0MzM2MzI2YiksIFRPQk4oMHhkYTA1MjYxYywgMHg1YmMyYWNm
YSl9LAorICAgICAgICAgIHtUT0JOKDB4YzI5ZjViZGMsIDB4ZWJhN2VmYzgpLCBUT0JOKDB4NDcx
MjM3Y2EsIDB4MjVkYmJmMmUpLAorICAgICAgICAgICBUT0JOKDB4YTcyNzczZjIsIDB4Mjk3NWYx
MjcpLCBUT0JOKDB4ZGM3NDRlOGUsIDB4MDRkMGIzMjYpfX0sCisgICAgICAgICB7e1RPQk4oMHgz
OGE3ZWQxNiwgMHhhNTZlZGI3MyksIFRPQk4oMHg2NDM1N2UzNywgMHgyYzAwN2U3MCksCisgICAg
ICAgICAgIFRPQk4oMHhhMTY3ZDE1YiwgMHg1MDgwYjQwMCksIFRPQk4oMHgwN2I0MTE2NCwgMHgy
M2RlNGJlMSl9LAorICAgICAgICAgIHtUT0JOKDB4YjJkOTFlMzIsIDB4NzRjODk4ODMpLCBUT0JO
KDB4M2MxNjI4MjEsIDB4Mjg4MmU3ZWQpLAorICAgICAgICAgICBUT0JOKDB4YWQ2YjM2YmEsIDB4
NzUwM2U0ODIpLCBUT0JOKDB4NDg0MzRlOGUsIDB4MGVhMzQzMzEpfX0sCisgICAgICAgICB7e1RP
Qk4oMHg3OWY0ZjI0ZiwgMHgyYzdhZTBiOSksIFRPQk4oMHhjNDZmYmY4MSwgMHgxOTM5YjQ0YSks
CisgICAgICAgICAgIFRPQk4oMHg3NmZlZmFlOCwgMHg1NjU5NWViMSksIFRPQk4oMHg0MTdiNjZh
YiwgMHhjZDVmMjljNyl9LAorICAgICAgICAgIHtUT0JOKDB4NWYyMzMyYjIsIDB4YzVjZWVjMjAp
LCBUT0JOKDB4ZDY5NjYxZmYsIDB4ZTFhMWNhZTIpLAorICAgICAgICAgICBUT0JOKDB4NWVkZTdl
NTIsIDB4OWIwMjg2ZTYpLCBUT0JOKDB4OWQwNjI1MjksIDB4ZTI3NmI5OTMpfX0sCisgICAgICAg
ICB7e1RPQk4oMHgzMjQ3OTRiMCwgMHg3ZTUwMTIyYiksIFRPQk4oMHhkZDc0NGY4YiwgMHg0YWYw
N2NhNSksCisgICAgICAgICAgIFRPQk4oMHgzMGExMmYwOCwgMHhkNjNmYzk3YiksIFRPQk4oMHgz
OTY1MGYxYSwgMHg3NjYyNmQ5ZCl9LAorICAgICAgICAgIHtUT0JOKDB4MTAxYjQ3ZjcsIDB4MWZh
Mzg0NzcpLCBUT0JOKDB4M2Q4MTVmMTksIDB4ZDRkYzEyNGYpLAorICAgICAgICAgICBUT0JOKDB4
MTU2OWFlOTUsIDB4YjI2ZWI1OGEpLCBUT0JOKDB4YzNjZGUxODgsIDB4OTVmYjE4ODcpfX0sCisg
ICAgICAgICB7e1RPQk4oMHg1NGU5ZjM3YiwgMHhmOTUzOWE0OCksIFRPQk4oMHhiMDEwMGUwNiwg
MHg3NDA4YzFhNSksCisgICAgICAgICAgIFRPQk4oMHg4MjFkOTgxMSwgMHhlYTU4MGNiYiksIFRP
Qk4oMHg4YWY1MmQzNSwgMHg4NmU1MGM1Nil9LAorICAgICAgICAgIHtUT0JOKDB4ZGZiZDlkNDcs
IDB4ZGJiZjY5OGIpLCBUT0JOKDB4Mjk2MWExZWEsIDB4MDNkYzFjNzMpLAorICAgICAgICAgICBU
T0JOKDB4MjAzZDM4ZjgsIDB4ZTc2YTVkZjgpLCBUT0JOKDB4MDhhNTNhNjgsIDB4NmRlZjcwN2Ep
fX0sCisgICAgICAgICB7e1RPQk4oMHgyNmVlZmI0OCwgMHgxYmVlNDVkNCksIFRPQk4oMHhiM2Nl
ZTM0NiwgMHgzYzY4ODAzNiksCisgICAgICAgICAgIFRPQk4oMHg0NjNjNTMxNSwgMHhjNDJmMjQ2
OSksIFRPQk4oMHgxOWQ4NGQyZSwgMHg4MTM3ODE2Mil9LAorICAgICAgICAgIHtUT0JOKDB4MjJk
N2MzYzUsIDB4MWM0ZDM0OWYpLCBUT0JOKDB4NjU5NjU4NDQsIDB4MTYzZDU5YzUpLAorICAgICAg
ICAgICBUT0JOKDB4Y2YxOThjNTYsIDB4YjhhYmNlYWUpLCBUT0JOKDB4NmZiMWZiMWIsIDB4NjI4
NTU5ZDUpfX0sCisgICAgICAgICB7e1RPQk4oMHg4YmJmZmQwNiwgMHgwN2JmOGZlMyksIFRPQk4o
MHg0NjI1OWM1OCwgMHgzNDY3NzM0YiksCisgICAgICAgICAgIFRPQk4oMHhkODk1M2NlYSwgMHgz
NWY3ZjBkMyksIFRPQk4oMHgxZjBiZWNlMiwgMHhkNjViMGZmMSl9LAorICAgICAgICAgIHtUT0JO
KDB4ZjdkNWI0YjMsIDB4ZjNjNzI5MTQpLCBUT0JOKDB4MjllOGVhOTUsIDB4M2NiNTMzODkpLAor
ICAgICAgICAgICBUT0JOKDB4NGEzNjU2MjYsIDB4ODM2YjZkNDYpLCBUT0JOKDB4ZTg0OWY5MTAs
IDB4ZWExNzRmZGUpfX0sCisgICAgICAgICB7e1RPQk4oMHg3ZWM2MmZiYiwgMHhmNDczN2YyMSks
IFRPQk4oMHhkOGRiYTVhYiwgMHg2MjA5ZjVhYyksCisgICAgICAgICAgIFRPQk4oMHgyNGI1ZDdh
OSwgMHhhNWY5YWRiZSksIFRPQk4oMHg3MDdkMjhmNywgMHhhNjFkYzc2OCl9LAorICAgICAgICAg
IHtUT0JOKDB4NzcxMTQ2MGIsIDB4Y2FhOTk5ZWEpLCBUT0JOKDB4YmE3YjE3NGQsIDB4MWM5MmU0
Y2MpLAorICAgICAgICAgICBUT0JOKDB4M2M0YmFiNjYsIDB4MThkNGJmMmQpLCBUT0JOKDB4Yjhm
MGM5ODAsIDB4ZWI4YmQyNzkpfX0sCisgICAgICAgICB7e1RPQk4oMHgwMjRiZWE5YSwgMHgzMjRi
NDczNyksIFRPQk4oMHhmYmE5ZTQyMywgMHgzMmE4M2JjYSksCisgICAgICAgICAgIFRPQk4oMHg2
ZTYzNTY0MywgMHhhMjMyZGNlZCksIFRPQk4oMHg5OTYxOTM2NywgMHgyNTcxYzhiYSl9LAorICAg
ICAgICAgIHtUT0JOKDB4ZThjOWYzNTcsIDB4NTRiNzAzMmIpLCBUT0JOKDB4ZjkzNmIzYmEsIDB4
MjQ0MmQ1NGEpLAorICAgICAgICAgICBUT0JOKDB4MjI2M2YwZjAsIDB4ODI5MGM2NWEpLCBUT0JO
KDB4NDg5ODk3ODAsIDB4ZWUyYzdmZGIpfX0sCisgICAgICAgICB7e1RPQk4oMHhhZGM1ZDU1YSwg
MHgxM2Q0Zjk1ZSksIFRPQk4oMHg3MzdjZmY4NSwgMHhhZDliODUwMCksCisgICAgICAgICAgIFRP
Qk4oMHgyNzFjNTU3YiwgMHg4YTczZjQzZCksIFRPQk4oMHhiZWQ2MTdhNCwgMHhlMThiYzQ3Nil9
LAorICAgICAgICAgIHtUT0JOKDB4NjYyNDU0MDEsIDB4N2RmZDhhYjIpLCBUT0JOKDB4YWU3Yjg5
YWUsIDB4M2EyODcwYWEpLAorICAgICAgICAgICBUT0JOKDB4MWI1NTVmNTMsIDB4MjNhN2U1NDUp
LCBUT0JOKDB4Njc5MWUyNDcsIDB4YmUwNTdlNGMpfX0sCisgICAgICAgICB7e1RPQk4oMHg4NjAx
MzZhZCwgMHgzMjRmYTM0ZCksIFRPQk4oMHhlYTExMTQ0NywgMHg0Y2JlYWUyOCksCisgICAgICAg
ICAgIFRPQk4oMHgwMjNhNDI3MCwgMHhiZWRkMzI5OSksIFRPQk4oMHgzZDVjM2E3ZiwgMHhjMWMz
NWMzNCl9LAorICAgICAgICAgIHtUT0JOKDB4YjBmNmRiNjcsIDB4OGQwNDEyZDIpLCBUT0JOKDB4
ZDkyNjI1ZTIsIDB4ZmNkYzZiOWEpLAorICAgICAgICAgICBUT0JOKDB4OTJhZTVjY2MsIDB4NGUy
OGE5ODIpLCBUT0JOKDB4ZWEyNTFjMzYsIDB4NDdhM2NlN2UpfX0sCisgICAgICAgICB7e1RPQk4o
MHg5ZDY1ODkzMiwgMHg3OTA2OTFiZiksIFRPQk4oMHhlZDYxMDU4OSwgMHgwNmI3MzZhZSksCisg
ICAgICAgICAgIFRPQk4oMHg3MTJjMmYwNCwgMHhjMGQ2M2I2ZSksIFRPQk4oMHg1Y2YwNmZkNSwg
MHhjNjNkNDg4Zil9LAorICAgICAgICAgIHtUT0JOKDB4OTczNjNmYWMsIDB4ZDk1ODhlNDEpLCBU
T0JOKDB4MWY5YmY3NjIsIDB4MmI5MzI1N2UpLAorICAgICAgICAgICBUT0JOKDB4YTlkMWZmYzQs
IDB4NjY3YWNhY2UpLCBUT0JOKDB4MWNmNGExYWEsIDB4MGEwNjFlY2YpfX0sCisgICAgICAgICB7
e1RPQk4oMHg0MGU0OGE0OSwgMHhkYzE4MThkMCksIFRPQk4oMHgwNjQzZmYzOSwgMHhhMzYyMWFi
MCksCisgICAgICAgICAgIFRPQk4oMHg1NzY4NjQwYywgMHhlMzllZjYzOSksIFRPQk4oMHgxZmMw
OTllYSwgMHgwNGQ4Njg1NCl9LAorICAgICAgICAgIHtUT0JOKDB4OTEzMGI5YzMsIDB4ZWNjZDI4
ZmQpLCBUT0JOKDB4ZDc0M2NiZDIsIDB4N2VlYzU0YWIpLAorICAgICAgICAgICBUT0JOKDB4MDUy
YjE0NmYsIDB4ZTViNDc1YjYpLCBUT0JOKDB4MDU4ZDlhODIsIDB4OTAwYTdkMWYpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg2NWUwMjI5MiwgMHg5MTI2MmI3MiksIFRPQk4oMHg5NmY5MjRmOSwgMHhi
YjBlZGYwMyksCisgICAgICAgICAgIFRPQk4oMHg1Y2ZhNTljOCwgMHhmZTIwNjg0MiksIFRPQk4o
MHhmNjAzNzAwNCwgMHg1ZWFmYTcyMCl9LAorICAgICAgICAgIHtUT0JOKDB4NWYzMDY5OWUsIDB4
MThkN2RkOTYpLCBUT0JOKDB4MzgxZTg3ODIsIDB4Y2JhYjI0OTUpLAorICAgICAgICAgICBUT0JO
KDB4OTE2NjliNDYsIDB4ZGQ4YmU5NDkpLCBUT0JOKDB4YjQwNjA2ZjUsIDB4MjZhYWU4ZWYpfX0s
CisgICAgICAgICB7e1RPQk4oMHgyODEyYjgzOSwgMHhmYzY3NTFhNCksIFRPQk4oMHgxNjE5NjIx
NCwgMHhmYmE4MDBlZiksCisgICAgICAgICAgIFRPQk4oMHg0Mzk4ZDVjYSwgMHg0YzFhMjg3NSks
IFRPQk4oMHg3MjBjMDBlZSwgMHg2NTNkODM0OSl9LAorICAgICAgICAgIHtUT0JOKDB4YzI2OTll
YjAsIDB4ZDgyMDAwN2MpLCBUT0JOKDB4ODgwZWU2NjAsIDB4YTM5YjU4MjUpLAorICAgICAgICAg
ICBUT0JOKDB4NzA2OTQ2OTQsIDB4NDcxZjY5ODQpLCBUT0JOKDB4ZjdkMTZlYTgsIDB4ZTNkZGE5
OWEpfX0sCisgICAgICAgICB7e1RPQk4oMHgyOGQ2NzViMiwgMHhjMDUxOWEyMyksIFRPQk4oMHg5
ZWJmOTRmZSwgMHg0ZjY5NTJlMyksCisgICAgICAgICAgIFRPQk4oMHhmMjhiYjc2NywgMHhhMjI5
NGE4YSksIFRPQk4oMHg4NTUxMmI0ZCwgMHhmZTBhZjNmNSl9LAorICAgICAgICAgIHtUT0JOKDB4
MTg5NThiYTgsIDB4OTliMTZhMGQpLCBUT0JOKDB4OTVjMjQzMGMsIDB4YmE3NTQ4YTcpLAorICAg
ICAgICAgICBUT0JOKDB4YjMwZDFiMTAsIDB4YTE2YmU2MTUpLCBUT0JOKDB4ZTNlYmJiOTcsIDB4
ODViZmI3NGMpfX0sCisgICAgICAgICB7e1RPQk4oMHhhMzI3M2NmZSwgMHgxODU0OWZkYiksIFRP
Qk4oMHhmNmUyMDBiZiwgMHg0ZmNkYjc5MiksCisgICAgICAgICAgIFRPQk4oMHg1NGE3NmUxOCwg
MHg4M2FiYTU2YyksIFRPQk4oMHg3M2VjNjZmNiwgMHg4OWVmNmFhMil9LAorICAgICAgICAgIHtU
T0JOKDB4OGQxN2FkZDcsIDB4ZDFiOWEzMDUpLCBUT0JOKDB4YTk1OWM1YjksIDB4YjdhZTFiOWQp
LAorICAgICAgICAgICBUT0JOKDB4ODg2NDM1MjIsIDB4NmJjYzA5NGEpLCBUT0JOKDB4Y2M1NjE2
YzQsIDB4ZDdkNDI5YjkpfX0sCisgICAgICAgICB7e1RPQk4oMHhhNmRhZGEwMSwgMHhlNmEzM2Y3
YyksIFRPQk4oMHhjNjIxN2EwNywgMHg5ZDRlNzBhZCksCisgICAgICAgICAgIFRPQk4oMHhkNjE5
YTgxOCwgMHgwOWMxNWI3YyksIFRPQk4oMHhlYTA2YjMyOSwgMHgwZTgwYzg1NCl9LAorICAgICAg
ICAgIHtUT0JOKDB4MTc0ODExY2UsIDB4YTVmNWU3YjkpLCBUT0JOKDB4NjZkZmMzMTAsIDB4Nzg3
YzY1ZjQpLAorICAgICAgICAgICBUT0JOKDB4NGVhN2JkNjksIDB4MzMxNmFiNTQpLCBUT0JOKDB4
YzEyYzRhY2IsIDB4MWRjYzBmNzApfX0sCisgICAgICAgICB7e1RPQk4oMHhlNDMwOGQxYSwgMHgx
ZTQwN2RkOSksIFRPQk4oMHhlOGEzNTg3YywgMHg5MWFmYTk5NyksCisgICAgICAgICAgIFRPQk4o
MHhlYTI5NmMxMiwgMHhhYjc3YjdhNSksIFRPQk4oMHhiNWFkNDllNCwgMHg2NzNjMGQ1Mil9LAor
ICAgICAgICAgIHtUT0JOKDB4NDBmOWIyYjIsIDB4NzAwNjA4NWEpLCBUT0JOKDB4YTg4ZmYzNDAs
IDB4ODdiZjZlYzIpLAorICAgICAgICAgICBUT0JOKDB4OTc4NjAzYjEsIDB4NGUzMDY2YTYpLCBU
T0JOKDB4YjNmOTlmYzIsIDB4YjVlNDg2ZTIpfX0sCisgICAgICAgICB7e1RPQk4oMHgwN2I1M2Y1
ZSwgMHhiMmU2MzY0NSksIFRPQk4oMHhiZTU3ZTU0NywgMHg4NGM4NDIzMiksCisgICAgICAgICAg
IFRPQk4oMHhkNzc5YzIxNiwgMHg3MjE0ZDVjZiksIFRPQk4oMHg2MTc5NjljZCwgMHgwMjlhM2Fj
YSl9LAorICAgICAgICAgIHtUT0JOKDB4ZDE3NjY4Y2QsIDB4OGE3MDE3YTApLCBUT0JOKDB4Nzdi
NGQxOWEsIDB4YmU5YjdlZTgpLAorICAgICAgICAgICBUT0JOKDB4NThmZDBlOTMsIDB4OWMxNjE3
NzYpLCBUT0JOKDB4YThjNGY0ZWYsIDB4ZDU5NjhhNzIpfX0sCisgICAgICAgICB7e1RPQk4oMHgy
OTYwNzFjYywgMHg2N2IzZGU3NyksIFRPQk4oMHhhZTNjMGI4ZSwgMHg2MzRmNzkwNSksCisgICAg
ICAgICAgIFRPQk4oMHg2N2U0NDBjMiwgMHg4YTcxMDBjOSksIFRPQk4oMHhiYjhjM2MxYiwgMHhl
YjRiOWI0Mil9LAorICAgICAgICAgIHtUT0JOKDB4NmQ3MWU4ZWEsIDB4YzUxYjM1ODMpLCBUT0JO
KDB4NzU5MWY1YWYsIDB4OTUyNWU2NDIpLAorICAgICAgICAgICBUT0JOKDB4ZjczYTJmN2IsIDB4
MTNmNTA5ZjMpLCBUT0JOKDB4NjE4NDg3YWEsIDB4NTYxOWFjOWIpfX0sCisgICAgICAgICB7e1RP
Qk4oMHgzYTcyZTVmNywgMHg5ZDYxNzE4YSksIFRPQk4oMHgwMDQxM2JjYywgMHg3NTkyZDI4Yyks
CisgICAgICAgICAgIFRPQk4oMHg3ZDliMTFkMywgMHg5NjNjMzVjZiksIFRPQk4oMHg3NzYyM2Jj
ZiwgMHhiOTBhNDZlZCl9LAorICAgICAgICAgIHtUT0JOKDB4ZGVlZjI3M2IsIDB4ZGNkZDJhNTAp
LCBUT0JOKDB4NGE3NDFmOWIsIDB4MDYwMTg0NmUpLAorICAgICAgICAgICBUT0JOKDB4MzNiODll
NTEsIDB4MGVjNmU5MjkpLCBUT0JOKDB4Y2IwMjMxOWYsIDB4OGI3ZjIyY2QpfX0sCisgICAgICAg
ICB7e1RPQk4oMHhiYmUxNTAwZCwgMHgwODRiYWUyNCksIFRPQk4oMHgyZjBhZThkNywgMHgzNDNk
MjY5MyksCisgICAgICAgICAgIFRPQk4oMHhhY2ZmYjVmMiwgMHg3Y2RlZjgxMSksIFRPQk4oMHhh
YTBjMDMwYSwgMHgyNjNmYjk0Zil9LAorICAgICAgICAgIHtUT0JOKDB4NmVlZjBkNjEsIDB4YTBm
NDQyZGUpLCBUT0JOKDB4ZjkyZTE4MTcsIDB4MjdiMTM5ZDMpLAorICAgICAgICAgICBUT0JOKDB4
MWFlNmRlYjcsIDB4MGFkOGJjMjgpLCBUT0JOKDB4YTg5ZTM4ZGMsIDB4YzA1MTQxMzApfX0sCisg
ICAgICAgICB7e1RPQk4oMHg4MWVlYjg2NSwgMHhkMmZkY2EyMyksIFRPQk4oMHg1YTE1ZWUwOCwg
MHhjYzhlZjg5NSksCisgICAgICAgICAgIFRPQk4oMHg3NjhmYTEwYSwgMHgwMTkwNTYxNCksIFRP
Qk4oMHhlZmY1YjhlZiwgMHg4ODBlZTE5Yil9LAorICAgICAgICAgIHtUT0JOKDB4ZjBjMGNhYmIs
IDB4Y2IxYzhhMGUpLCBUT0JOKDB4MmUxZWU5Y2QsIDB4YjhjODM4ZjkpLAorICAgICAgICAgICBU
T0JOKDB4MDU4N2Q4YjgsIDB4OGE0YTE0YzApLCBUT0JOKDB4ZjZmMjc4OTYsIDB4MmZmNjk4ZTUp
fX0sCisgICAgICAgICB7e1RPQk4oMHhlZDM4ZWYxYywgMHg4OWVlNjI1NiksIFRPQk4oMHhmNDRl
ZTFmZSwgMHg2YjM1M2I0NSksCisgICAgICAgICAgIFRPQk4oMHg5MTE1YzBjNywgMHg3MGU5MDNi
MyksIFRPQk4oMHhjNzhlYzBhMSwgMHg4MThmMzFkZil9LAorICAgICAgICAgIHtUT0JOKDB4NmMw
MDMzMjQsIDB4YjdkY2NiYzYpLCBUT0JOKDB4ZDk2ZGQxZjMsIDB4MTYzYmJjMjUpLAorICAgICAg
ICAgICBUT0JOKDB4MzNhYTgyZGQsIDB4NWNlZGQ4MDUpLCBUT0JOKDB4MTIzYWFlNGYsIDB4N2Y3
ZWIyZjEpfX0sCisgICAgICAgICB7e1RPQk4oMHgxNzIzZmNmNSwgMHhhMjYyNjJjZCksIFRPQk4o
MHgxZjdmNGQ1ZCwgMHgwMDYwZWJkNSksCisgICAgICAgICAgIFRPQk4oMHhmMTljNWMwMSwgMHhi
MmVhYTNhZiksIFRPQk4oMHgyY2NiOWIxNCwgMHg5NzkwYWNjZil9LAorICAgICAgICAgIHtUT0JO
KDB4MWY5YzFjYWQsIDB4NTIzMjRhYTYpLCBUT0JOKDB4NjMyMDA1MjYsIDB4NzI0N2RmNTQpLAor
ICAgICAgICAgICBUT0JOKDB4NTczMmZlNDIsIDB4YmFjOTZmODIpLCBUT0JOKDB4NTJmZTc3MWYs
IDB4MDFhMWMzODQpfX0sCisgICAgICAgICB7e1RPQk4oMHg1NDZjYTEzZCwgMHhiMTAwMTY4NCks
IFRPQk4oMHhiNTZiNGVlZSwgMHhhMTcwOWY3NSksCisgICAgICAgICAgIFRPQk4oMHgyNjY1NDVh
OSwgMHhkNWRiODY3MiksIFRPQk4oMHhlZDk3MWM5MCwgMHgxZThmM2NmYil9LAorICAgICAgICAg
IHtUT0JOKDB4NGU3ZDg2OTEsIDB4ZTNhMDdiMjkpLCBUT0JOKDB4NzU3MGQ5ZWMsIDB4ZTRiNjk2
YjkpLAorICAgICAgICAgICBUT0JOKDB4ZGM1ZmEwNjcsIDB4N2JjN2U5YWUpLCBUT0JOKDB4Njhi
NDRjYWYsIDB4YzgyYzQ4NDQpfX0sCisgICAgICAgICB7e1RPQk4oMHg1MTlkMzRiMywgMHhiZjQ0
ZGE4MCksIFRPQk4oMHgyODM4MzRmOSwgMHg1YWIzMmU2NiksCisgICAgICAgICAgIFRPQk4oMHg2
ZTYwODc5NywgMHg2Mjc4YTAwMCksIFRPQk4oMHgxZTYyOTYwZSwgMHg2MjczMTJmNil9LAorICAg
ICAgICAgIHtUT0JOKDB4OWI4N2IyN2IsIDB4ZTY5MDFjNTUpLCBUT0JOKDB4ODBlNzg1MzgsIDB4
MjRmZGJjMWYpLAorICAgICAgICAgICBUT0JOKDB4YmJiYzA5NTEsIDB4MmZhY2MyN2QpLCBUT0JO
KDB4MDYzOTQyMzksIDB4YWMxNDNiNWEpfX0sCisgICAgICAgICB7e1RPQk4oMHgzNWJiNGE0MCwg
MHgzNzZjMTk0NCksIFRPQk4oMHg3Y2I2MjY5NCwgMHg2M2RhMTUxMSksCisgICAgICAgICAgIFRP
Qk4oMHhhZmQyOTE2MSwgMHhiNzE0OGEzYiksIFRPQk4oMHhhNmY5ZDllZCwgMHg0ZTJlYTJlZSl9
LAorICAgICAgICAgIHtUT0JOKDB4MTVkYzJjYTIsIDB4ODgwZGQyMTIpLCBUT0JOKDB4OTAzYzM4
MTMsIDB4YTYxMTM5YTkpLAorICAgICAgICAgICBUT0JOKDB4MmFhN2I0NmQsIDB4NmMwZjg3ODUp
LCBUT0JOKDB4MzZjZTI4NzEsIDB4OTAxYzYwZmYpfX0sCisgICAgICAgICB7e1RPQk4oMHhjNjgz
YjAyOCwgMHhlMTBkOWMxMiksIFRPQk4oMHg3NTczYmFhMiwgMHgwMzJmMzNkMyksCisgICAgICAg
ICAgIFRPQk4oMHg4N2E5YjFmNiwgMHg2N2EzMWI1OCksIFRPQk4oMHhmZDNlZDExYSwgMHhmNGZm
YWUxMil9LAorICAgICAgICAgIHtUT0JOKDB4ODNkY2FhOWEsIDB4MGNiMjc0OGUpLCBUT0JOKDB4
ODIzOWYwMTgsIDB4NWQ2ZmRmMTYpLAorICAgICAgICAgICBUT0JOKDB4YmE2N2I0OWMsIDB4NzI3
NTM5NDEpLCBUT0JOKDB4MmJlZWM0NTUsIDB4YzMyMWNiMzYpfX0sCisgICAgICAgICB7e1RPQk4o
MHg4ODAxNTYwNiwgMHgzZjhiODRjZSksIFRPQk4oMHg3NjQxNzA4MywgMHg4ZDM4Yzg2ZiksCisg
ICAgICAgICAgIFRPQk4oMHgwNTRmMWNhNywgMHg1OTg5NTNkZCksIFRPQk4oMHhjOTM5ZTExMCwg
MHg0ZThlNzQyOSl9LAorICAgICAgICAgIHtUT0JOKDB4OWIxYWMyYjMsIDB4NWE5MTRmMmYpLCBU
T0JOKDB4MzllMzVlZDMsIDB4ZTc0YjhmOWMpLAorICAgICAgICAgICBUT0JOKDB4ZDBkZWJkYjIs
IDB4NzgxYjJmYjApLCBUT0JOKDB4MTU4NTYzOGYsIDB4MmQ5OTdiYTIpfX0sCisgICAgICAgICB7
e1RPQk4oMHg5YzRiNjQ2ZSwgMHg5ZTJmY2U5OSksIFRPQk4oMHg2OGEyMTA4MSwgMHgxZTgwODU3
ZiksCisgICAgICAgICAgIFRPQk4oMHgwNmQ1NGU0NCwgMHgzNjQzYjUyYSksIFRPQk4oMHhkZThk
NmQ2MywgMHgwZDhlYjg0Myl9LAorICAgICAgICAgIHtUT0JOKDB4NzAzMjE1NjMsIDB4NDIxNDZh
MGEpLCBUT0JOKDB4OGJhODI2ZjIsIDB4NWVhYTM2MjIpLAorICAgICAgICAgICBUT0JOKDB4MjI3
YTU4YmQsIDB4ODYxMzg3ODcpLCBUT0JOKDB4NDNiNmMwM2MsIDB4MTAyODFkMzcpfX0sCisgICAg
ICAgICB7e1RPQk4oMHg2MzI2YWZiYiwgMHhiNTRkZGUzOSksIFRPQk4oMHg3NDRlNWU4YSwgMHhk
YjZmMmQ1ZiksCisgICAgICAgICAgIFRPQk4oMHg0OGIyYTk5YSwgMHhjZmYxNThlMSksIFRPQk4o
MHhhOTNjOGZhMCwgMHhlZjg3OTE4Zil9LAorICAgICAgICAgIHtUT0JOKDB4MjE4MmY5NTYsIDB4
ZGUwNThjNWMpLCBUT0JOKDB4MjE2MjM1ZDIsIDB4OTM2ZjllN2EpLAorICAgICAgICAgICBUT0JO
KDB4YWNlMGMwZGIsIDB4ZDJlMzFlNjcpLCBUT0JOKDB4Yzk2NDQ5YmYsIDB4ZjIzYWMzZTcpfX0s
CisgICAgICAgICB7e1RPQk4oMHg3ZTlhMjg3NCwgMHgxNzA2OTNiZCksIFRPQk4oMHhhMjhlMTRm
ZCwgMHhhNDVlNjMzNSksCisgICAgICAgICAgIFRPQk4oMHg1NzU3ZjZiMywgMHg1NjQyNzM0NCks
IFRPQk4oMHg4MjJlNDU1NiwgMHhhY2Y4ZWRmOSl9LAorICAgICAgICAgIHtUT0JOKDB4MmI3YTZl
ZTIsIDB4ZTZhMjg1Y2QpLCBUT0JOKDB4NTg2NmYyMTEsIDB4YTlkZjNhZjApLAorICAgICAgICAg
ICBUT0JOKDB4NDBkZGUyZGQsIDB4Zjg0NWI4NDQpLCBUT0JOKDB4OTg2YzM3MjYsIDB4MTEwZTVl
NDkpfX0sCisgICAgICAgICB7e1RPQk4oMHg3MzY4MGMyYSwgMHhmNzE3MjI3NyksIFRPQk4oMHg1
N2I5NGYwZiwgMHgwY2NjYjI0NCksCisgICAgICAgICAgIFRPQk4oMHhiZGZmNzI2NywgMHgyZDQz
OGNhNyksIFRPQk4oMHhiYWQxY2UxMSwgMHhjZjQ2NjNmZCl9LAorICAgICAgICAgIHtUT0JOKDB4
OTgxM2VkOWQsIDB4ZDhmNzFjYWUpLCBUT0JOKDB4ZjQzMjcyYTYsIDB4OTYxZmRhYTYpLAorICAg
ICAgICAgICBUT0JOKDB4YmVmZjAxMTksIDB4YmQ2ZDE2MzcpLCBUT0JOKDB4ZmViYzRmOTEsIDB4
MzAzNjE5NzgpfX0sCisgICAgICAgICB7e1RPQk4oMHgwMmIzN2E5NSwgMHgyZjQxZGVmZiksIFRP
Qk4oMHgwZTQ0YTU5YSwgMHhlNjNiODliNyksCisgICAgICAgICAgIFRPQk4oMHg2NzMyNTdkYywg
MHgxNDNmZjk1MSksIFRPQk4oMHgxOWMwMjIwNSwgMHhkNzUyYmFmNCl9LAorICAgICAgICAgIHtU
T0JOKDB4NDZjMjMwNjksIDB4YzRiN2Q2OTIpLCBUT0JOKDB4MmU2MzkyYzMsIDB4ZmQxNTAyYWMp
LAorICAgICAgICAgICBUT0JOKDB4NjA1N2IxYTIsIDB4MWIyMjA4NDYpLCBUT0JOKDB4ZTUxZmY5
NDYsIDB4MGMxYjViNjMpfX19LAorICAgICAgICB7e3tUT0JOKDB4NmU4NWNiNTEsIDB4NTY2YzVj
NDMpLCBUT0JOKDB4Y2ZmOWM5MTksIDB4MzU5N2YwNDYpLAorICAgICAgICAgICBUT0JOKDB4OTM1
NGU5MGMsIDB4NDk5NGQ5NGEpLCBUT0JOKDB4ZTBhMzkzMzIsIDB4MjE0NzkyN2QpfSwKKyAgICAg
ICAgICB7VE9CTigweDg0MjdmYWMxLCAweDBkYzFlYjJiKSwgVE9CTigweDg4Y2ZkOGMyLCAweDJm
ZjMxOWZhKSwKKyAgICAgICAgICAgVE9CTigweGUyZDRlNjg0LCAweDAxOTY1Mjc0KSwgVE9CTigw
eGZhMmUwNjdkLCAweDY3YWFhNzQ2KX19LAorICAgICAgICAge3tUT0JOKDB4YjZkOTJhN2YsIDB4
M2U1ZjlmMTEpLCBUT0JOKDB4OWFmZTE1M2EsIDB4ZDZjYjNiOGUpLAorICAgICAgICAgICBUT0JO
KDB4NGQxYTZkZDcsIDB4ZGRmODAwYmQpLCBUT0JOKDB4ZjZjMTNjYzAsIDB4Y2FmMTdlMTkpfSwK
KyAgICAgICAgICB7VE9CTigweDE1ZjZjNThlLCAweDMyNWZjM2VlKSwgVE9CTigweDcxMDk1NDAw
LCAweGEzMWRjM2IyKSwKKyAgICAgICAgICAgVE9CTigweDE2OGU3YzA3LCAweGFmYTNkM2U3KSwg
VE9CTigweDNmODQxN2ExLCAweDk0YzdhZTJkKX19LAorICAgICAgICAge3tUT0JOKDB4ZWMyMzQ3
NzIsIDB4ODEzYjIzMGQpLCBUT0JOKDB4NjM0ZDBmNWYsIDB4MTczNDQ0MjcpLAorICAgICAgICAg
ICBUT0JOKDB4MTE1NDhhYjEsIDB4ZDc3ZmM1NmEpLCBUT0JOKDB4N2ZhYjE3NTAsIDB4Y2UwNmFm
NzcpfSwKKyAgICAgICAgICB7VE9CTigweGI2MmMxMGE3LCAweDRmN2M0ZjgzKSwgVE9CTigweGE3
ZDJlZGM0LCAweDIyMGE2N2Q5KSwKKyAgICAgICAgICAgVE9CTigweDFjNDA0MTcwLCAweDkyMTIw
OWEwKSwgVE9CTigweDBiOTgxNWEwLCAweGZhY2U1OWYwKX19LAorICAgICAgICAge3tUT0JOKDB4
Mjg0MjU4OWIsIDB4MzE5NTQwYzMpLCBUT0JOKDB4MTg0OTBmNTksIDB4YTI4M2Q2ZjgpLAorICAg
ICAgICAgICBUT0JOKDB4YTI3MzFmODQsIDB4ZGFhZTlmY2IpLCBUT0JOKDB4M2RiNmQ5NjAsIDB4
YzM2ODNiYTApfSwKKyAgICAgICAgICB7VE9CTigweGM4NWM2M2JiLCAweDE0NjExMDY5KSwgVE9C
TigweGIxOTQzNmFmLCAweDA3ODhiZjA1KSwKKyAgICAgICAgICAgVE9CTigweDkwNTQ1OWRmLCAw
eDM0NzQ2MGQyKSwgVE9CTigweDczZjZlMDk0LCAweGUxMWE3ZGIxKX19LAorICAgICAgICAge3tU
T0JOKDB4ZGM3ZjkzOGUsIDB4YjYzNTdmMzcpLCBUT0JOKDB4YzVkMDBmNzksIDB4MmJkOGFhNjIp
LAorICAgICAgICAgICBUT0JOKDB4Yzg3OGRjYjksIDB4MmNhOTc5ZmMpLCBUT0JOKDB4MzdlODNl
ZDksIDB4ZWIwMjNhOTkpfSwKKyAgICAgICAgICB7VE9CTigweDZiMjNlMjczLCAweDE1NjBiZjNk
KSwgVE9CTigweDEwODZlNDU5LCAweDFkMGZhZTYxKSwKKyAgICAgICAgICAgVE9CTigweDc4MjQ4
MzE2LCAweDlhOTQxNGJkKSwgVE9CTigweDFiOTU2YmMwLCAweGYwZWE5ZWExKX19LAorICAgICAg
ICAge3tUT0JOKDB4N2I4NWJiOTEsIDB4YzMxYjljMzgpLCBUT0JOKDB4MGM1YWE5MGIsIDB4NDhl
ZjU3YjUpLAorICAgICAgICAgICBUT0JOKDB4ZGVkZWIxNjksIDB4YWYzYmFiNmYpLCBUT0JOKDB4
ZTYxMGFkNzMsIDB4MmQzNzM2ODUpfSwKKyAgICAgICAgICB7VE9CTigweGYxMzg3MGRmLCAweDAy
YmE4ZTE1KSwgVE9CTigweDAzMzdlZGI2LCAweDhjYTdmNzcxKSwKKyAgICAgICAgICAgVE9CTigw
eGU0YWNmNzQ3LCAweGI2MmMwMzZjKSwgVE9CTigweGQ5MjFkNTc2LCAweGI2Yjk0ZTgxKX19LAor
ICAgICAgICAge3tUT0JOKDB4ZGJjODY0MzksIDB4MmM0MjJmN2EpLCBUT0JOKDB4ZmI2MzUzNjIs
IDB4ZWQzNDg4OTgpLAorICAgICAgICAgICBUT0JOKDB4ODMwODQ2NjgsIDB4YzQ1YmZjZDEpLCBU
T0JOKDB4YzM1N2M5ZTMsIDB4MmIzMTVlMTEpfSwKKyAgICAgICAgICB7VE9CTigweGIxNzNiNTQw
LCAweDViMmU1YjhjKSwgVE9CTigweDdlOTQ2OTMxLCAweGUxMDJiOWE0KSwKKyAgICAgICAgICAg
VE9CTigweDE3Yzg5MGViLCAweDdiMGZiMTk5KSwgVE9CTigweGVjMjI1YTgzLCAweGQ2MWI2NjJi
KX19LAorICAgICAgICAge3tUT0JOKDB4ZjMwNmEzYzgsIDB4ZWUzYzc2Y2IpLCBUT0JOKDB4M2Nm
MTE2MjMsIDB4ZDMyYTFmNmUpLAorICAgICAgICAgICBUT0JOKDB4ZTZkNWFiNjQsIDB4Njg2M2U5
NTYpLCBUT0JOKDB4M2I4YTRjYmUsIDB4NWMwMDVjMjYpfSwKKyAgICAgICAgICB7VE9CTigweGRj
ZDUyOWE1LCAweDljZTZiYjI3KSwgVE9CTigweGM0YWZhYTUyLCAweDA0ZDRiMTZmKSwKKyAgICAg
ICAgICAgVE9CTigweGIwNjI0YTI2LCAweDc5MjM3OThkKSwgVE9CTigweDg1ZTU2ZGY2LCAweDZi
MzA3ZmFiKX19LAorICAgICAgICAge3tUT0JOKDB4MDI4MTg5M2MsIDB4MmJmMjk2OTgpLCBUT0JO
KDB4OTFmYzE5YTQsIDB4ZDdjZTc2MDMpLAorICAgICAgICAgICBUT0JOKDB4NzVhNWRjYTMsIDB4
YWQ5YTU1OGYpLCBUT0JOKDB4NDBjZWIzZmEsIDB4NGQ1MGJmNzcpfSwKKyAgICAgICAgICB7VE9C
TigweDFiYWY2MDYwLCAweGJjOWJhMzY5KSwgVE9CTigweDkyN2UxMDM3LCAweDU5Nzg4OGMyKSwK
KyAgICAgICAgICAgVE9CTigweGQ5MzZiZjE5LCAweDg2YTM0YzA3KSwgVE9CTigweGQ0Y2YxMGMx
LCAweGMzNGFlOTgwKX19LAorICAgICAgICAge3tUT0JOKDB4M2EzZTUzMzQsIDB4ODU5ZGQ2MTQp
LCBUT0JOKDB4OWM0NzViNWIsIDB4MThkMGM4ZWUpLAorICAgICAgICAgICBUT0JOKDB4NjMwODBk
MWYsIDB4MDdjZDUxZDUpLCBUT0JOKDB4YzljMGQwYTYsIDB4Yjg4YjQzMjYpfSwKKyAgICAgICAg
ICB7VE9CTigweDFhYzk4NjkxLCAweGMyMzQyOTZmKSwgVE9CTigweDJhMGE4M2E0LCAweDk0ODg3
ZmI2KSwKKyAgICAgICAgICAgVE9CTigweDU2NTExNDI3LCAweDBjZWE5Y2YyKSwgVE9CTigweDUy
MzBhNmU4LCAweGEyNDgwMmY1KX19LAorICAgICAgICAge3tUT0JOKDB4ZjdhMmJmMGYsIDB4NzJl
M2Q1YzEpLCBUT0JOKDB4Mzc3MTc0NDYsIDB4NGYyMTQzOWUpLAorICAgICAgICAgICBUT0JOKDB4
ZmVkY2JmMjUsIDB4OWNlMzAzMzQpLCBUT0JOKDB4ZTAwMzBhNzgsIDB4N2NlMjAyZjkpfSwKKyAg
ICAgICAgICB7VE9CTigweDZmMmQ5ZWJmLCAweDEyMDJlOWNhKSwgVE9CTigweGU3OWRkZTZjLCAw
eDc1ZTZlNTkxKSwKKyAgICAgICAgICAgVE9CTigweGY1MjA3MmFmLCAweGYxZGFjNGY4KSwgVE9C
TigweDZjOGQwODdlLCAweGJiOWI0MDRkKX19LAorICAgICAgICAge3tUT0JOKDB4YWQwZmM3M2Qs
IDB4YmNlOTEzYWYpLCBUT0JOKDB4OTA5ZTU4N2IsIDB4NDU4YTA3Y2IpLAorICAgICAgICAgICBU
T0JOKDB4MTMwMGRhODQsIDB4ZDRmMDBjOGEpLCBUT0JOKDB4NDI1Y2QwNDgsIDB4YjU0NDY2YWMp
fSwKKyAgICAgICAgICB7VE9CTigweGI1OWNiOWJlLCAweDkwZTlkOGJmKSwgVE9CTigweDk5MTYx
NmRiLCAweDNlNDMxYjBlKSwKKyAgICAgICAgICAgVE9CTigweGQzYWExMTdhLCAweDUzMWFlY2Zm
KSwgVE9CTigweDkxYWY5MmQzLCAweDU5ZjRkYzNiKX19LAorICAgICAgICAge3tUT0JOKDB4OWIx
ZWMyOTIsIDB4ZTkzZmRhMjkpLCBUT0JOKDB4NzZiYjZjMTcsIDB4ZTk3ZDkxYmMpLAorICAgICAg
ICAgICBUT0JOKDB4NzUwOWQ5NWYsIDB4YWZhY2UxZTYpLCBUT0JOKDB4MzY1M2ZlNDcsIDB4YmU4
NTVhZTMpfSwKKyAgICAgICAgICB7VE9CTigweDczMTgwYjI4LCAweDBmNjgwZTc1KSwgVE9CTigw
eDc1ZWVmZDFiLCAweGVlYjZjMjZjKSwKKyAgICAgICAgICAgVE9CTigweGE0Y2RmMjlmLCAweGI2
NmQ0MjM2KSwgVE9CTigweDJkNzBhOTk3LCAweDZiNTgyMWQ4KX19LAorICAgICAgICAge3tUT0JO
KDB4N2EzZWUyMDcsIDB4MjA0NDVjMzYpLCBUT0JOKDB4NzFkMWFjODIsIDB4NTk4NzcxNzQpLAor
ICAgICAgICAgICBUT0JOKDB4MGZjNTM5ZjcsIDB4OTQ5ZjczZTkpLCBUT0JOKDB4ZDA1Y2YzZDcs
IDB4OTgyZTMwODEpfSwKKyAgICAgICAgICB7VE9CTigweDg3NThlMjBiLCAweDdiMWM3MTI5KSwg
VE9CTigweGZmYWRjYzIwLCAweDU2OWU2MWYyKSwKKyAgICAgICAgICAgVE9CTigweGIwNWQzYTJm
LCAweDU5NTQ0YzJkKSwgVE9CTigweGJlMTZmNWMxLCAweDlmZmY1ZTUzKX19LAorICAgICAgICAg
e3tUT0JOKDB4NzNjZjY1YjgsIDB4YWFkNTgxMzUpLCBUT0JOKDB4NjIyYzIxMTksIDB4MDM3YWE1
YmUpLAorICAgICAgICAgICBUT0JOKDB4NzkzNzNiM2YsIDB4NjQ2ZmQ2YTApLCBUT0JOKDB4MGUw
MjlkYjUsIDB4MGQzOTc4Y2YpfSwKKyAgICAgICAgICB7VE9CTigweDhiZGZjNDM3LCAweDk0ZmJh
MDM3KSwgVE9CTigweGFlZmJkNjg3LCAweDYyMDc5N2E2KSwKKyAgICAgICAgICAgVE9CTigweDNm
YTUzODJiLCAweGJkMzBkMzhlKSwgVE9CTigweDc2MjdjZmJmLCAweDU4NWQ3NDY0KX19LAorICAg
ICAgICAge3tUT0JOKDB4YjIzMzBmZWYsIDB4NGU0Y2E0NjMpLCBUT0JOKDB4YmNlZjcyODcsIDB4
MzU2NmNjNjMpLAorICAgICAgICAgICBUT0JOKDB4ZDE2MWQyY2EsIDB4Y2Y3ODA5MDApLCBUT0JO
KDB4MTM1ZGM1MzksIDB4NWI1NDgyN2QpfSwKKyAgICAgICAgICB7VE9CTigweDYzOGYwNTJlLCAw
eDI3YmYxYmM2KSwgVE9CTigweDEwYTIyNGYwLCAweDA3ZGZhMDZjKSwKKyAgICAgICAgICAgVE9C
TigweGU5NzM1ODZkLCAweDZkMzMyMWRhKSwgVE9CTigweDhiMGM1NzM4LCAweDI2MTUyYzhmKX19
LAorICAgICAgICAge3tUT0JOKDB4MDdlZjRmMmEsIDB4MzQ2MDYwNzQpLCBUT0JOKDB4ODBmZTdm
ZTgsIDB4YTBmNzA0N2EpLAorICAgICAgICAgICBUT0JOKDB4M2QxYTgxNTIsIDB4ZTFhMGUzMDYp
LCBUT0JOKDB4MzJjZjQzZDgsIDB4ODhkYTUyMjIpfSwKKyAgICAgICAgICB7VE9CTigweGJmODlh
OTVmLCAweDVmMDJmZmU2KSwgVE9CTigweDNkOWViOWE0LCAweDgwNmFkM2VhKSwKKyAgICAgICAg
ICAgVE9CTigweDAxMmMxN2JiLCAweDc5YzhlNTVlKSwgVE9CTigweGZkY2QxYTc0LCAweDk5Yzgx
ZGFjKX19LAorICAgICAgICAge3tUT0JOKDB4NzA0MzE3OGIsIDB4Yjk1NTYwOTgpLCBUT0JOKDB4
NDA5MGExZGYsIDB4ODAxYzM4ODYpLAorICAgICAgICAgICBUT0JOKDB4NzU5ODAwZmYsIDB4OWI2
N2I5MTIpLCBUT0JOKDB4M2U1YzAzMDQsIDB4MjMyNjIwYzgpfSwKKyAgICAgICAgICB7VE9CTigw
eDRiOWQzYzRiLCAweDcwZGNlZWNhKSwgVE9CTigweGJiMmQzYzE1LCAweDE4MWY2NDhlKSwKKyAg
ICAgICAgICAgVE9CTigweGY5ODFkODM3LCAweDZlMzMzNDVjKSwgVE9CTigweGI2MjYyODliLCAw
eDBjZjIyOTdhKX19LAorICAgICAgICAge3tUT0JOKDB4NzY2YWM2NTksIDB4OGJhZWJkY2YpLCBU
T0JOKDB4MWEyOGFlMDksIDB4NzVkZjAxZTUpLAorICAgICAgICAgICBUT0JOKDB4YjcxMjgzZGEs
IDB4Mzc1ODc2ZDgpLCBUT0JOKDB4NDg2NWE5NmQsIDB4NjA3Yjk4MDApfSwKKyAgICAgICAgICB7
VE9CTigweDI1ZGQxYmNkLCAweDIzNzkzNmIyKSwgVE9CTigweDMzMmY0ZjRiLCAweDYwNDE3NDk0
KSwKKyAgICAgICAgICAgVE9CTigweGQwOTIzZDY4LCAweDM3MGEyMTQ3KSwgVE9CTigweDQ5N2Y1
ZGZiLCAweGRjODQyMjAzKX19LAorICAgICAgICAge3tUT0JOKDB4OWRjNzRjYmQsIDB4MzJiZTVl
MGYpLCBUT0JOKDB4NzQ3NWJjYjcsIDB4MTdhMDEzNzUpLAorICAgICAgICAgICBUT0JOKDB4NDM4
NDc3YzksIDB4NTBkODcyYjEpLCBUT0JOKDB4Y2VjNjc4NzksIDB4ZmZlMWQ2M2QpfSwKKyAgICAg
ICAgICB7VE9CTigweDliMDA2MDE0LCAweGQ4NTc4YzcwKSwgVE9CTigweGM5YWQ5OWE4LCAweDc4
YmI2YjhiKSwKKyAgICAgICAgICAgVE9CTigweDY3OTkwMDhlLCAweDExZmIzODA2KSwgVE9CTigw
eGNmZTgxNDM1LCAweGNkNDRjYWIzKX19LAorICAgICAgICAge3tUT0JOKDB4YTJlZTE1ODIsIDB4
MmY0ZmIzNDQpLCBUT0JOKDB4Yjg4MjM0NTAsIDB4NDgzZmE2ZWIpLAorICAgICAgICAgICBUT0JO
KDB4NjIyZDMyM2QsIDB4NjUyYzc3NDkpLCBUT0JOKDB4ZDg0NzRhOTgsIDB4YmViMGExNWIpfSwK
KyAgICAgICAgICB7VE9CTigweGU0M2MxNTRkLCAweDVkMWMwMGQwKSwgVE9CTigweDdmZDU4MWQ5
LCAweDBlM2U3YWFjKSwKKyAgICAgICAgICAgVE9CTigweDJiNDRjNjE5LCAweDI1MjVkZGY4KSwg
VE9CTigweDY3YTAzM2ViLCAweGI4YWU5NzM5KX19LAorICAgICAgICAge3tUT0JOKDB4MTEzZmZl
YzEsIDB4OWVmMmQyZTQpLCBUT0JOKDB4MWJmNjc2N2UsIDB4ZDVhMGVhN2YpLAorICAgICAgICAg
ICBUT0JOKDB4NTdmZmY3NWUsIDB4MDM3MTRjMGEpLCBUT0JOKDB4YTIzYzQyMmUsIDB4MGEyM2U5
ZWUpfSwKKyAgICAgICAgICB7VE9CTigweGRkNWY2YjJkLCAweDU0MGY4M2FmKSwgVE9CTigweGMy
YzJjMjdlLCAweDU1ZWE0NmE3KSwKKyAgICAgICAgICAgVE9CTigweGViNmI0MjQ2LCAweDY3MmEx
MjA4KSwgVE9CTigweGQxMzU5OWY3LCAweGFlNjM0ZjdhKX19LAorICAgICAgICAge3tUT0JOKDB4
Y2Y5MTRiNWMsIDB4ZDdiMzJjNmUpLCBUT0JOKDB4NjFhNWE2NDAsIDB4ZWFmNjE4MTQpLAorICAg
ICAgICAgICBUT0JOKDB4OGRjM2RmOGIsIDB4MjA4YTFiYmIpLCBUT0JOKDB4ZWY2MjdmZDYsIDB4
YjZkNzlhYTUpfSwKKyAgICAgICAgICB7VE9CTigweDQ0MjMyZmZjLCAweGM0Yzg2YmM4KSwgVE9C
TigweGU2ZjkyMzFiLCAweDA2MTUzOWZlKSwKKyAgICAgICAgICAgVE9CTigweDFkMDRmMjVhLCAw
eDk1OGI5NTMzKSwgVE9CTigweDE4MGNmOTM0LCAweDQ5ZThjODg1KX19LAorICAgICAgICAge3tU
T0JOKDB4ODk2ODk1OTUsIDB4OTg4NGFhZjcpLCBUT0JOKDB4YjE5NTliZTMsIDB4MDdiMzQ4YTYp
LAorICAgICAgICAgICBUT0JOKDB4OTYyNTBlNTcsIDB4M2MxNDdjODcpLCBUT0JOKDB4YWUwZWZi
M2EsIDB4ZGQwYzYxZjgpfSwKKyAgICAgICAgICB7VE9CTigweGVkMDA3NDVlLCAweGNhOGMzMjVl
KSwgVE9CTigweDNjOTExNjk2LCAweGVjZmYzZjcwKSwKKyAgICAgICAgICAgVE9CTigweDczYWNi
YzY1LCAweDMxOWFkNDFkKSwgVE9CTigweDdiMDFhMDIwLCAweGYwYjFjN2VmKX19LAorICAgICAg
ICAge3tUT0JOKDB4ZWEzMmIyOTMsIDB4NjNhMTQ4M2YpLCBUT0JOKDB4ODllYWJlNzEsIDB4N2Ey
NDhmOTYpLAorICAgICAgICAgICBUT0JOKDB4OWM2MjMxZDMsIDB4MzQzMTU3ZTUpLCBUT0JOKDB4
OTNhMzc1ZTUsIDB4ZGYzYzU0NmQpfSwKKyAgICAgICAgICB7VE9CTigweGU3NmU5MzQzLCAweDZh
MmFmZTY5KSwgVE9CTigweGM0Zjg5MTAwLCAweGUxNjZjODhlKSwKKyAgICAgICAgICAgVE9CTigw
eDI0OGVmZDBkLCAweDRmODcyMDkzKSwgVE9CTigweGFlMGViM2VhLCAweDhmZTBlYTYxKX19LAor
ICAgICAgICAge3tUT0JOKDB4YWY4OTc5MGQsIDB4OWQ3OTA0NmUpLCBUT0JOKDB4NGQ2NTBmMmQs
IDB4NmNlZTA5NzYpLAorICAgICAgICAgICBUT0JOKDB4YTM5MzVkOWEsIDB4NDMwNzFlY2EpLCBU
T0JOKDB4NjZmY2QyYzksIDB4MjgzYjBiZmUpfSwKKyAgICAgICAgICB7VE9CTigweDBlNjY1ZWI1
LCAweDY5NjYwNWYxKSwgVE9CTigweGU3N2U1ZDA3LCAweGE1NGNkMzhkKSwKKyAgICAgICAgICAg
VE9CTigweDkwZWUwNTBhLCAweDQzZDk1MGNmKSwgVE9CTigweDg2ZGRlYmRhLCAweGQzMmU2OWI1
KX19LAorICAgICAgICAge3tUT0JOKDB4NmFkOTRhM2QsIDB4ZmRkZjc0MTUpLCBUT0JOKDB4Zjdm
YTEzMDksIDB4M2Y2ZThkNWEpLAorICAgICAgICAgICBUT0JOKDB4YzQ4MzFkMWQsIDB4ZTk5NTdm
NzUpLCBUT0JOKDB4N2RlMjg1MDEsIDB4ZDU4MTc0NDcpfSwKKyAgICAgICAgICB7VE9CTigweDZm
MWQ3MDc4LCAweDllMmFlYjZiKSwgVE9CTigweGJhMmI5ZmY0LCAweGY2N2E1M2MyKSwKKyAgICAg
ICAgICAgVE9CTigweDM2OTYzNzY3LCAweGRmOWRlZmMzKSwgVE9CTigweDQ3OWRlZWQzLCAweDBk
MzgwMjJjKX19LAorICAgICAgICAge3tUT0JOKDB4ZDJlZGI4OWIsIDB4M2E4NjMxZTgpLCBUT0JO
KDB4OGRlODU1ZGUsIDB4N2EyMTM3NDYpLAorICAgICAgICAgICBUT0JOKDB4YjIwNTZjYjcsIDB4
YjAwYzVmMTEpLCBUT0JOKDB4ZGVhZWZiZDAsIDB4MmM5Yjg1ZTQpfSwKKyAgICAgICAgICB7VE9C
TigweDAzZjM5YThkLCAweGQxNTA4OTJkKSwgVE9CTigweDM3Yjg0Njg2LCAweDIxOGI3OTg1KSwK
KyAgICAgICAgICAgVE9CTigweDM2Mjk2ZGQ4LCAweGI3Mzc1ZjFhKSwgVE9CTigweDQ3MmNkNGIx
LCAweGI3OGU4OThlKX19LAorICAgICAgICAge3tUT0JOKDB4MTVkZmY2NTEsIDB4ZTlmMDVkZTkp
LCBUT0JOKDB4ZDQwNDUwNjksIDB4MmNlOThiYTkpLAorICAgICAgICAgICBUT0JOKDB4ODQ2NmE3
YWUsIDB4OWIzODAyNGMpLCBUT0JOKDB4YjkxMGU3MDAsIDB4ZTVhNmI1ZWYpfSwKKyAgICAgICAg
ICB7VE9CTigweGFlMWM1NmVhLCAweGIzYWE4ZjBkKSwgVE9CTigweGJhYjJhNTA3LCAweDdlZWU3
NGE2KSwKKyAgICAgICAgICAgVE9CTigweDBkY2ExMWUyLCAweDRiNGM0NjIwKSwgVE9CTigweGZk
ODk2ZTJlLCAweDRjNDdkMWY0KX19LAorICAgICAgICAge3tUT0JOKDB4ZWI0NWFlNTMsIDB4MzA4
ZmJkOTMpLCBUT0JOKDB4NDZjZDVhMmUsIDB4MDJjMzZmZGEpLAorICAgICAgICAgICBUT0JOKDB4
NmEzZDRlOTAsIDB4YmFhNDgzODUpLCBUT0JOKDB4ZGQ1NWU2MmUsIDB4OWRiZTk5NjApfSwKKyAg
ICAgICAgICB7VE9CTigweGExNDA2YWEwLCAweDJhODFlZGU3KSwgVE9CTigweDY4NjBkZDE0LCAw
eGY5Mjc0ZWE3KSwKKyAgICAgICAgICAgVE9CTigweGNmZGNiMGMyLCAweDgwNDE0Zjg2KSwgVE9C
TigweGZmNDEwYjEwLCAweDIyZjk0MzI3KX19LAorICAgICAgICAge3tUT0JOKDB4NWEzM2NjMzgs
IDB4NDlhZDQ2N2IpLCBUT0JOKDB4ZWZiNDhiNmMsIDB4MGE3MzM1ZjEpLAorICAgICAgICAgICBU
T0JOKDB4MTRmYjU0YTQsIDB4YjE1M2EzNjApLCBUT0JOKDB4NjA0YWE5ZDIsIDB4YjUyNDY5Y2Mp
fSwKKyAgICAgICAgICB7VE9CTigweDVlOWRjNDg2LCAweDc1NGU0OGU5KSwgVE9CTigweDY5M2Ni
NDU1LCAweDM3NDcxZThlKSwKKyAgICAgICAgICAgVE9CTigweGZiMmZkN2NkLCAweDhkM2IzN2I2
KSwgVE9CTigweDYzMzQ1ZTE2LCAweGNmMDlmZjA3KX19LAorICAgICAgICAge3tUT0JOKDB4OTkx
MGJhNmIsIDB4MjNhNWQ4OTYpLCBUT0JOKDB4MWZlMTllMzUsIDB4N2ZlNDM2NGUpLAorICAgICAg
ICAgICBUT0JOKDB4NmUxZGE4YzMsIDB4OWEzM2M2NzcpLCBUT0JOKDB4MTViNDQ4OGIsIDB4Mjlm
ZDlmZDApfSwKKyAgICAgICAgICB7VE9CTigweDFmNDM5MjU0LCAweDFhMWYyMmJmKSwgVE9CTigw
eDkyMGE4YTcwLCAweGFiODE2M2U4KSwKKyAgICAgICAgICAgVE9CTigweDNmZDFiMjQ5LCAweDA3
ZTU2NThlKSwgVE9CTigweGYyYzRmNzljLCAweGI2ZWM4MzliKX19LAorICAgICAgICAge3tUT0JO
KDB4MWFiYmMzZDAsIDB4NGFhMzhkMWIpLCBUT0JOKDB4M2IwZGIzNWMsIDB4YjVkOTUxMGUpLAor
ICAgICAgICAgICBUT0JOKDB4MTc1NGFjNzgsIDB4M2U2MGRlYzApLCBUT0JOKDB4NTMyNzJmZDcs
IDB4ZWEwOTliMzMpfSwKKyAgICAgICAgICB7VE9CTigweDVmYjA0OTRmLCAweDA3YThlMTA3KSwg
VE9CTigweDRhODllMTM3LCAweDZhODE5MWZhKSwKKyAgICAgICAgICAgVE9CTigweGExMTNiN2Y2
LCAweDNjNGFkNTQ0KSwgVE9CTigweDg4YTJlOTA5LCAweDZjYjk4OTdiKX19LAorICAgICAgICAg
e3tUT0JOKDB4MTdkNTVkZTMsIDB4YjQ0YTNmODQpLCBUT0JOKDB4YWNiMmYzNDQsIDB4MTdjNmM2
OTApLAorICAgICAgICAgICBUT0JOKDB4MzIwODgxNjgsIDB4MTAyMzIzOTApLCBUT0JOKDB4ZjJl
OGE2MWYsIDB4NmM3MzNiZjcpfSwKKyAgICAgICAgICB7VE9CTigweGE3NzRhYWI2LCAweDljMmQ3
NjUyKSwgVE9CTigweGZiNTMwN2UzLCAweGVkOTVjNWJjKSwKKyAgICAgICAgICAgVE9CTigweGEw
NWM3M2MyLCAweDQ5ODFmMTEwKSwgVE9CTigweDFiYWFlMzFjLCAweGEzOTQ1OGM5KX19LAorICAg
ICAgICAge3tUT0JOKDB4MWRlZjE4NWIsIDB4Y2JlYTYyZTcpLCBUT0JOKDB4ZThhYzllYWUsIDB4
ZWFmNjMwNTkpLAorICAgICAgICAgICBUT0JOKDB4MDk4YThjZmQsIDB4OTkyMTg1MWMpLCBUT0JO
KDB4ZDk1OWMzZjEsIDB4M2FiZTJmNWIpfSwKKyAgICAgICAgICB7VE9CTigweGE0ZjE5NTI1LCAw
eDIwZTQwYWU1KSwgVE9CTigweDMyMDc4OWUzLCAweDA3YTI0YWExKSwKKyAgICAgICAgICAgVE9C
TigweDI1OWU2OTI3LCAweDczOTJiMmJjKSwgVE9CTigweDU4ZjZjNjY3LCAweDE5MTg2NjhiKX19
LAorICAgICAgICAge3tUT0JOKDB4Y2UxZGIyYmIsIDB4YzU1ZDJkOGIpLCBUT0JOKDB4NDFkNThi
YjcsIDB4ZjRmNmNhNTYpLAorICAgICAgICAgICBUT0JOKDB4NzY1MGI2ODAsIDB4OGY4Nzc2MTQp
LCBUT0JOKDB4OTA1ZTE2YmEsIDB4ZjRjMzQ5ZWQpfSwKKyAgICAgICAgICB7VE9CTigweGVkNDE1
MTQwLCAweGY2NjFhY2FjKSwgVE9CTigweDNiODc4NGYwLCAweGNiMjI3MGFmKSwKKyAgICAgICAg
ICAgVE9CTigweDNiYzI4MGFjLCAweDhhNDAyY2JhKSwgVE9CTigweGQ1M2Y3MTQ2LCAweDA5Mzc5
MjFhKX19LAorICAgICAgICAge3tUT0JOKDB4YzAzYzhlZTUsIDB4ZTU2ODFlODMpLCBUT0JOKDB4
NjIxMjYxMDUsIDB4ZjZhYzllNGEpLAorICAgICAgICAgICBUT0JOKDB4OTUwM2E1M2YsIDB4OTM2
YjFhMzgpLCBUT0JOKDB4M2Q0NWUyZDQsIDB4NzgyZmVjYmQpfSwKKyAgICAgICAgICB7VE9CTigw
eDY5YTVjNDM5LCAweDc2ZThhZTk4KSwgVE9CTigweGI1M2IyZWViLCAweGJmYjRiMDBlKSwKKyAg
ICAgICAgICAgVE9CTigweGYxNjc0NzEyLCAweDcyMzg2Yzg5KSwgVE9CTigweDMwY2EzNGEyLCAw
eDQyNjhiY2U0KX19LAorICAgICAgICAge3tUT0JOKDB4N2YxZWQ4NmMsIDB4NzgzNDE3MzApLCBU
T0JOKDB4OGVmNWJlYjgsIDB4YjUyNWUyNDgpLAorICAgICAgICAgICBUT0JOKDB4YmJjNDg5ZmQs
IDB4Yjc0ZmJmMzgpLCBUT0JOKDB4MzhhOTJhMGUsIDB4OTFhMGIzODIpfSwKKyAgICAgICAgICB7
VE9CTigweDdhNzdiYTNmLCAweDIyNDMzY2NmKSwgVE9CTigweGRlODM2MmQ2LCAweGEyOWYwNWE5
KSwKKyAgICAgICAgICAgVE9CTigweDdmNmEzMGVhLCAweDYxMTg5YWZjKSwgVE9CTigweDY5M2I1
NTA1LCAweDU5ZWYxMTRmKX19LAorICAgICAgICAge3tUT0JOKDB4NTAyNjZiYzAsIDB4Y2QxNzk3
YTEpLCBUT0JOKDB4ZWExN2I0N2UsIDB4ZjRiN2FmMmQpLAorICAgICAgICAgICBUT0JOKDB4ZDZj
NDAyNWMsIDB4M2RmOTQ4M2UpLCBUT0JOKDB4OGNiYjlkOWYsIDB4YTM3YjE4YzkpfSwKKyAgICAg
ICAgICB7VE9CTigweDkxY2JmZDljLCAweDRkODQyNGNmKSwgVE9CTigweGRiNzA0OGYxLCAweGFi
MWMzNTA2KSwKKyAgICAgICAgICAgVE9CTigweDllYWY2NDFmLCAweDAyODIwNmEzKSwgVE9CTigw
eGY5ODZmM2Y5LCAweDI1YmRmNmNlKX19LAorICAgICAgICAge3tUT0JOKDB4MjYyMTQzYjUsIDB4
MjI0YzA4ZGMpLCBUT0JOKDB4MmJiYjA5YjQsIDB4ODFiNTBjOTEpLAorICAgICAgICAgICBUT0JO
KDB4YzE2ZWQ3MDksIDB4YWNhOGM4NGYpLCBUT0JOKDB4YTYyMTBkOWQsIDB4YjI4NTBjYTgpfSwK
KyAgICAgICAgICB7VE9CTigweDZkOGRmNjdhLCAweDA5Y2I1NGQ2KSwgVE9CTigweDkxZWVmNmUw
LCAweDUwMDkxOWE0KSwKKyAgICAgICAgICAgVE9CTigweDkwZjYxMzgxLCAweDBmMTMyODU3KSwg
VE9CTigweDlhY2VkZTQ3LCAweGY4ZDUwMjhiKX19LAorICAgICAgICAge3tUT0JOKDB4ODQ0ZDFi
NzEsIDB4OTBiNzcxYzMpLCBUT0JOKDB4NTYzYjcxZTQsIDB4YmE2NDI2YmUpLAorICAgICAgICAg
ICBUT0JOKDB4MmVmYTJlODMsIDB4YmRiODAyZmYpLCBUT0JOKDB4MzQxMGNiYWIsIDB4YWI1YjRh
NDEpfSwKKyAgICAgICAgICB7VE9CTigweDU1NWIyZDI2LCAweDMwZGE4NGRkKSwgVE9CTigweGQw
NzExYWU5LCAweGVlMWNjMjlhKSwKKyAgICAgICAgICAgVE9CTigweGNmM2U4YzYwLCAweDJmNTQ3
NzkyKSwgVE9CTigweDAzZDdkNWRlLCAweGRjNjc4YjM1KX19LAorICAgICAgICAge3tUT0JOKDB4
MDcxYTJmYTgsIDB4Y2VkODA2YjgpLCBUT0JOKDB4MjIyZTYxMzQsIDB4Njk3ZjE0NzgpLAorICAg
ICAgICAgICBUT0JOKDB4ZGMxNmZkNWQsIDB4YWJmY2RiYmYpLCBUT0JOKDB4NDQ5MTJlYmYsIDB4
MTIxYjUzYjgpfSwKKyAgICAgICAgICB7VE9CTigweGFjOTQzNjc0LCAweDI0OTZjMjdjKSwgVE9C
TigweDhlYTMxNzZjLCAweDFmZmMyNmIwKSwKKyAgICAgICAgICAgVE9CTigweGI2ZTIyNGFjLCAw
eDEzZGViZjJjKSwgVE9CTigweDUyNGNjMjM1LCAweGYzNzJhODMyKX19LAorICAgICAgICAge3tU
T0JOKDB4ZDcwNmUxZDgsIDB4OWY2ZjFiMTgpLCBUT0JOKDB4MjU1MmYwMDUsIDB4NDRjY2UzNWIp
LAorICAgICAgICAgICBUT0JOKDB4OGM4MzI2YzIsIDB4YTg4ZTMxZmMpLCBUT0JOKDB4YjU0Njhi
MmMsIDB4Zjk1NTIwNDcpfSwKKyAgICAgICAgICB7VE9CTigweGNlNjgzZTg4LCAweDNmZjkwZjJi
KSwgVE9CTigweDc3OTQ3YmRmLCAweDJmMGE1NDIzKSwKKyAgICAgICAgICAgVE9CTigweGQwYTFi
MjhiLCAweGVkNTZlMzI4KSwgVE9CTigweGFlZTM1MjUzLCAweGMyMDEzNGFjKX19LAorICAgICAg
ICAge3tUT0JOKDB4N2U5ODM2N2QsIDB4MzU2Nzk2MmYpLCBUT0JOKDB4Mzc5ZWQ2MWYsIDB4ODE4
OGJmZmIpLAorICAgICAgICAgICBUT0JOKDB4NzNiYmEzNDgsIDB4ZmFmMTMwYTEpLCBUT0JOKDB4
NmMxZjc1ZTEsIDB4OTA0ZWQ3MzQpfSwKKyAgICAgICAgICB7VE9CTigweDE4OTU2NjQyLCAweDNi
NGE3OWZjKSwgVE9CTigweGYyMGJjODNkLCAweDU0ZWY0NDkzKSwKKyAgICAgICAgICAgVE9CTigw
eDgzNmQ0MjVkLCAweDkxMTFlY2ExKSwgVE9CTigweGU1YjVjMzE4LCAweDAwOWE4ZGNmKX19LAor
ICAgICAgICAge3tUT0JOKDB4MzM2MGIyNWQsIDB4MTMyMjFiYzUpLCBUT0JOKDB4NzA3YmFhZDIs
IDB4NmIzZWVhZjcpLAorICAgICAgICAgICBUT0JOKDB4ZDcyNzllZDgsIDB4NzQzYTk1YTEpLCBU
T0JOKDB4NzQ1MGE4NzUsIDB4OTY5ZTgwOWYpfSwKKyAgICAgICAgICB7VE9CTigweDMyYjZiZDUz
LCAweGU1ZDAzMzhmKSwgVE9CTigweDFlNzdmN2FmLCAweDJiODgzYmJjKSwKKyAgICAgICAgICAg
VE9CTigweDkwZGExMmNjLCAweDEwNjNlY2QwKSwgVE9CTigweGUyNjk3YjU4LCAweGMzMTViZTQ3
KX19LAorICAgICAgICAge3tUT0JOKDB4Mjc3MWE1YmQsIDB4ZGE4NWQ1MzQpLCBUT0JOKDB4NTNl
NzhjMWYsIDB4ZmY5ODBlZWEpLAorICAgICAgICAgICBUT0JOKDB4YWRmMWNmODQsIDB4OTAwMzg1
ZTcpLCBUT0JOKDB4N2QzYjE0ZjYsIDB4YzkzODdiNjIpfSwKKyAgICAgICAgICB7VE9CTigweDE3
MGU3NGIwLCAweGNiOGYyYmQyKSwgVE9CTigweDJkNTBiNDg2LCAweDgyN2ZhOTkzKSwKKyAgICAg
ICAgICAgVE9CTigweGNkYmU4YzlhLCAweGY2ZjMyYmFiKSwgVE9CTigweDU1ZTkwNmIwLCAweGMz
YjkzYWI4KX19LAorICAgICAgICAge3tUT0JOKDB4NzQ3ZjIyZmMsIDB4OGZlMjgwZDEpLCBUT0JO
KDB4Y2Q4ZTBkZTUsIDB4YjJlMTE0YWIpLAorICAgICAgICAgICBUT0JOKDB4NWFiN2RiZWIsIDB4
ZTEwYjY4YjApLCBUT0JOKDB4OWRjNjNhOWMsIDB4YTQ4MGQ0YjIpfSwKKyAgICAgICAgICB7VE9C
TigweDc4ZDRiYzNiLCAweDRiZTE0OTVmKSwgVE9CTigweDI1ZWIzZGI4LCAweDkzNTkxMjJkKSwK
KyAgICAgICAgICAgVE9CTigweDNmOGFjMDViLCAweDA4MDljYmRjKSwgVE9CTigweGJmNDE4N2Ji
LCAweGQzN2M3MDJmKX19LAorICAgICAgICAge3tUT0JOKDB4ODRjZWEwNjksIDB4MTQxNmE2YTUp
LCBUT0JOKDB4OGY4NjBjNzksIDB4NDNlZjg4MWMpLAorICAgICAgICAgICBUT0JOKDB4NDEzMTFm
OGEsIDB4MzgwMzhhNWQpLCBUT0JOKDB4ZTc4YzJlYzAsIDB4ZmM2MTIwNjcpfSwKKyAgICAgICAg
ICB7VE9CTigweDQ5NGQyZTgxLCAweDVhZDczNTgxKSwgVE9CTigweGI0Y2M5ZTAwLCAweDU5NjA0
MDk3KSwKKyAgICAgICAgICAgVE9CTigweGZmNTU4YWVjLCAweGYzNjEyY2JhKSwgVE9CTigweDM1
YmVlZjdhLCAweDllMzZjMzllKX19LAorICAgICAgICAge3tUT0JOKDB4MTg0NWM3Y2YsIDB4ZGJj
ZjQxYjkpLCBUT0JOKDB4NTcwMzY2MmEsIDB4YWVhOTk3YzApLAorICAgICAgICAgICBUT0JOKDB4
OGI5MjVhZmUsIDB4ZTQwMmY2ZDgpLCBUT0JOKDB4ZDBhMWIxYWUsIDB4NGRkNzIxNjIpfSwKKyAg
ICAgICAgICB7VE9CTigweDlmNDdiMzc1LCAweDAzYzQxYzRiKSwgVE9CTigweGEwMjM4MjliLCAw
eDAzOTFkMDQyKSwKKyAgICAgICAgICAgVE9CTigweDVmNTA0NWMzLCAweDUwM2I4YjBhKSwgVE9C
TigweDEyM2MyNjg4LCAweDk4YzAxMGU1KX19LAorICAgICAgICAge3tUT0JOKDB4MzI0ZWMwY2Ms
IDB4MzZiYTA2ZWUpLCBUT0JOKDB4ZmFjZTMxMTUsIDB4M2RkMmNjMGMpLAorICAgICAgICAgICBU
T0JOKDB4YjM2NGYzYmUsIDB4ZjMzM2U5MWYpLCBUT0JOKDB4ZWY4YWZmNzMsIDB4MjhlODMyYjAp
fSwKKyAgICAgICAgICB7VE9CTigweDFlOWJhZDA0LCAweDJkMDU4NDFiKSwgVE9CTigweDQyZjBl
M2RmLCAweDM1NmEyMWUyKSwKKyAgICAgICAgICAgVE9CTigweGEzMjcwYmNiLCAweDRhZGQ2Mjdl
KSwgVE9CTigweGIwOWE4MTU4LCAweGQzMjJlNzExKX19LAorICAgICAgICAge3tUT0JOKDB4ODZl
MzI2YTEsIDB4MGZlZTEwNGEpLCBUT0JOKDB4YWQ3Nzg4ZjgsIDB4MzcwM2Y2NWQpLAorICAgICAg
ICAgICBUT0JOKDB4N2U3NjU0MzAsIDB4NDdiYzQ4MzMpLCBUT0JOKDB4NmNlZTU4MmIsIDB4MmI5
Yjg5M2EpfSwKKyAgICAgICAgICB7VE9CTigweDljZDJhMTY3LCAweGU4ZjU1YTdiKSwgVE9CTigw
eGVmYmVlM2M2LCAweGQ5ZTQxOTBkKSwKKyAgICAgICAgICAgVE9CTigweDMzZWU3MTg1LCAweGQ0
MGMyZTlkKSwgVE9CTigweDg0NGNjOWM1LCAweGEzODBiNTQ4KX19LAorICAgICAgICAge3tUT0JO
KDB4MzIzZjhlY2QsIDB4NjY5MjZlMDQpLCBUT0JOKDB4MDAwMWUzOGYsIDB4ODExMGMxYmEpLAor
ICAgICAgICAgICBUT0JOKDB4OGRiY2FjMTIsIDB4ZmM2YTdmMDcpLCBUT0JOKDB4ZDY1ZTFkNTgs
IDB4MGNlYzA4MjcpfSwKKyAgICAgICAgICB7VE9CTigweGQyY2Q0MTQxLCAweGJlNzZjYTJkKSwg
VE9CTigweDc4OTVjZjVjLCAweGU4OTJmMzNhKSwKKyAgICAgICAgICAgVE9CTigweDk1NmQyMzBk
LCAweDM2NzEzOWQyKSwgVE9CTigweGE5MWFiZDNlLCAweGQwMTJjNGMxKX19LAorICAgICAgICAg
e3tUT0JOKDB4MzRmYTQ4ODMsIDB4ODdlYjM2YmYpLCBUT0JOKDB4YzVmMDcxMDIsIDB4OTE0Yjhm
YjQpLAorICAgICAgICAgICBUT0JOKDB4OTBmMGU1NzksIDB4YWRiOWM5NWYpLCBUT0JOKDB4ZmU2
ZWE4Y2IsIDB4Mjg4ODgxOTUpfSwKKyAgICAgICAgICB7VE9CTigweDdiOWI1MDY1LCAweGVkZmE5
Mjg0KSwgVE9CTigweDZjNTEwYmQyLCAweDJiOGM4ZDY1KSwKKyAgICAgICAgICAgVE9CTigweGQ3
YjhlYmVmLCAweGNiZThhYWZkKSwgVE9CTigweGVkYjNhZjk4LCAweDk2YjFkYTA3KX19LAorICAg
ICAgICAge3tUT0JOKDB4MjhmZjc3OWQsIDB4NjI5NWQ0MjYpLCBUT0JOKDB4MGM0ZjZhYzcsIDB4
M2ZhM2FkN2IpLAorICAgICAgICAgICBUT0JOKDB4ZWM0NGQwNTQsIDB4OGI4ZTI2MDQpLCBUT0JO
KDB4OWIzMmE2NmQsIDB4OGIwMDUwZTEpfSwKKyAgICAgICAgICB7VE9CTigweDFmOTQzMzY2LCAw
eGYwNDc2Y2UyKSwgVE9CTigweDc1NTRkOTUzLCAweGE2MDJjN2I0KSwKKyAgICAgICAgICAgVE9C
TigweGJlMzVhY2E2LCAweDUyNGYyODA5KSwgVE9CTigweGI2ODgxMjI5LCAweGZkNGVkYmVhKX19
LAorICAgICAgICAge3tUT0JOKDB4ZThjZDBjOGYsIDB4NTA4ZWZiNjMpLCBUT0JOKDB4OWViNWI1
YzgsIDB4NmFiY2VmYzcpLAorICAgICAgICAgICBUT0JOKDB4ZjU2MjFmNWYsIDB4YjQ0MWFiNGYp
LCBUT0JOKDB4NzllNmMwNDYsIDB4Yjc2YTJiMjIpfSwKKyAgICAgICAgICB7VE9CTigweDc0YTQ3
OTJjLCAweGUzN2ExZjY5KSwgVE9CTigweGNiZDI1MmNiLCAweDAzNTQyYjYwKSwKKyAgICAgICAg
ICAgVE9CTigweDc4NWY2NWQ1LCAweGIzYzIwYmQzKSwgVE9CTigweDhkZWE2MTQzLCAweDRmYWJj
NjBjKX19LAorICAgICAgICAge3tUT0JOKDB4NDVlMjE0NDYsIDB4ZGU2NzM2MjkpLCBUT0JOKDB4
NTdmN2FhMWUsIDB4NzAzYzJkMjEpLAorICAgICAgICAgICBUT0JOKDB4YTBlOTliN2YsIDB4OThj
ODY4YzcpLCBUT0JOKDB4NGU0MmY2NmQsIDB4OGI2NDE2NzYpfSwKKyAgICAgICAgICB7VE9CTigw
eDYwMjg4NGRjLCAweDkxMDc3ODk2KSwgVE9CTigweGEwZDY5MGNmLCAweGMyYzk4ODViKSwKKyAg
ICAgICAgICAgVE9CTigweGZlYjRkYTMzLCAweDNiOWE1MTg3KSwgVE9CTigweDVmNzg5NTk4LCAw
eDE1M2M4N2VlKX19LAorICAgICAgICAge3tUT0JOKDB4MjE5MmRkNDcsIDB4NTJiMTZkYmEpLCBU
T0JOKDB4ZGVlZmMwZTYsIDB4MzUyNGMxYjEpLAorICAgICAgICAgICBUT0JOKDB4NDY1ZWE3NmUs
IDB4ZTQzODM2OTMpLCBUT0JOKDB4Nzk0MDE3MTEsIDB4MzYxYjhkOTgpfSwKKyAgICAgICAgICB7
VE9CTigweGE1ZjlhY2U5LCAweGYyMWExNWNiKSwgVE9CTigweDczZDI2MTYzLCAweGVmZWU5YWVi
KSwKKyAgICAgICAgICAgVE9CTigweGNjYTg0NGIzLCAweGU2NzcwMTZjKSwgVE9CTigweDZjMTIy
YjA3LCAweDU3ZWFlZTA2KX19LAorICAgICAgICAge3tUT0JOKDB4Yjc4MmRjZTcsIDB4MTVmMDk2
OTApLCBUT0JOKDB4NTA4YjliMTIsIDB4MmRmYzBmYzkpLAorICAgICAgICAgICBUT0JOKDB4OTAx
NWFiNGIsIDB4NjVkODlmYzYpLCBUT0JOKDB4NWU3OWRhYjcsIDB4ZDZkNWJiMGYpfSwKKyAgICAg
ICAgICB7VE9CTigweDY0ZjAyMWYwLCAweDZjNzc1YWEyKSwgVE9CTigweGRmMDlkOGNjLCAweDM3
YzdlY2ExKSwKKyAgICAgICAgICAgVE9CTigweDlhNzYxMzY3LCAweGVmMmZhNTA2KSwgVE9CTigw
eGVkNGNhNDc2LCAweDViODFlZWM2KX19LAorICAgICAgICAge3tUT0JOKDB4MjYyZWRlMzYsIDB4
MTBiYmI4YjUpLCBUT0JOKDB4MDczN2NlODMsIDB4MDY0MWFkYTMpLAorICAgICAgICAgICBUT0JO
KDB4NGM5NDI4OGEsIDB4ZTk4MzFjY2MpLCBUT0JOKDB4NDg3ZmMxY2UsIDB4ODA2NWU2MzUpfSwK
KyAgICAgICAgICB7VE9CTigweGIxM2Q3YWIzLCAweGI4YmIzNjU5KSwgVE9CTigweGRlYTVkZjNl
LCAweDg1NWU0MTIwKSwKKyAgICAgICAgICAgVE9CTigweGI5YTE4NTczLCAweDg1ZWIwMjQ0KSwg
VE9CTigweDFhMWI4ZWEzLCAweGE3Y2ZlMGEzKX19LAorICAgICAgICAge3tUT0JOKDB4M2I4Mzcx
MTksIDB4NjdiMDg2N2MpLCBUT0JOKDB4OGQ1ZTBkMDgsIDB4OWQzNjQ1MjApLAorICAgICAgICAg
ICBUT0JOKDB4NTJkY2NjMWUsIDB4ZDkzMGYwZTMpLCBUT0JOKDB4ZWZiYmNlYzcsIDB4YmYyMGJi
YWYpfSwKKyAgICAgICAgICB7VE9CTigweDk5Y2ZmY2FiLCAweDAyNjNhZDEwKSwgVE9CTigweGQ4
MTk5ZTZkLCAweGZjZDE4ZjhhKSwKKyAgICAgICAgICAgVE9CTigweDY0ZTI3NzNmLCAweGU5ZjEw
NjE3KSwgVE9CTigweDAwNzllOGUxLCAweDA4NzA0ODQ4KX19LAorICAgICAgICAge3tUT0JOKDB4
MTE2OTk4OWYsIDB4OGEzNDIyODMpLCBUT0JOKDB4ODA5Nzc5OWMsIDB4YTgzMDEyZTYpLAorICAg
ICAgICAgICBUT0JOKDB4ZWNlOTY2Y2IsIDB4OGE2YTkwMDEpLCBUT0JOKDB4OTNiM2FmZWYsIDB4
MDcyYWM3ZmMpfSwKKyAgICAgICAgICB7VE9CTigweGU2ODkzYTJhLCAweDJkYjNkNWJhKSwgVE9C
TigweDI2M2RjNDYyLCAweDg5YmY0ZmRjKSwKKyAgICAgICAgICAgVE9CTigweDg4NTJkZmM5LCAw
eGUwMzk2NjczKSwgVE9CTigweDdhYzcwODk1LCAweDNhZjM2MmI2KX19LAorICAgICAgICAge3tU
T0JOKDB4YmI5Y2NlNGQsIDB4NWMyZjM0MmIpLCBUT0JOKDB4YmY4MDkwN2EsIDB4YjUyZDdhYWUp
LAorICAgICAgICAgICBUT0JOKDB4OTdmM2QzY2QsIDB4MjE2MWJjZDApLCBUT0JOKDB4YjI1YjA4
MzQsIDB4MDk2Mjc0NGQpfSwKKyAgICAgICAgICB7VE9CTigweGM1YjE4ZWE1LCAweDZjM2ExZGRh
KSwgVE9CTigweGZlNGVjN2ViLCAweDA2YzkyMzE3KSwKKyAgICAgICAgICAgVE9CTigweGI3ODdi
ODkwLCAweGFkMWM0YWZlKSwgVE9CTigweGRjY2Q5YTkyLCAweDBlZGU4MDFhKX19LAorICAgICAg
ICAge3tUT0JOKDB4OWFjNmRkZGEsIDB4ZGI1OGRhMWYpLCBUT0JOKDB4MjJiYmMxMmYsIDB4Yjhj
YWU2ZWUpLAorICAgICAgICAgICBUT0JOKDB4YzZmOGJjZWQsIDB4ODE1YzRhNDMpLCBUT0JOKDB4
ODEwNWE5MmMsIDB4Zjk2NDgwYzcpfSwKKyAgICAgICAgICB7VE9CTigweDBkYzNkYmYzLCAweDdh
ODU5ZDUxKSwgVE9CTigweGUzZWM3Y2U2LCAweDMwNDExOTZiKSwKKyAgICAgICAgICAgVE9CTigw
eGQ5ZjY0YjI1LCAweDBkMTA2N2M5KSwgVE9CTigweGYyMzIxMzIxLCAweDNkMWY4ZGQ4KX19LAor
ICAgICAgICAge3tUT0JOKDB4OGI1YzYxOWMsIDB4NzY0OTdlZTgpLCBUT0JOKDB4NWQyYjBhYzYs
IDB4YzcxNzM3MGUpLAorICAgICAgICAgICBUT0JOKDB4OTgyMDRjYjYsIDB4NGZjZjY4ZTEpLCBU
T0JOKDB4MGJkZWMyMTEsIDB4NjJiYzY3OTIpfSwKKyAgICAgICAgICB7VE9CTigweDY5NzNjY2Vm
LCAweGE2M2IxMDExKSwgVE9CTigweGY5ZTNmYTk3LCAweGUwZGUxYWM1KSwKKyAgICAgICAgICAg
VE9CTigweDVlZmI2OTNlLCAweDNkMGUwYzhiKSwgVE9CTigweDAzNzI0OGU5LCAweGQyZDRmY2I0
KX19fSwKKyAgICAgICAge3t7VE9CTigweDgwODAyZGM5LCAweDFlYzM0ZjllKSwgVE9CTigweGQ4
NzcyZDM1LCAweDMzODEwNjAzKSwKKyAgICAgICAgICAgVE9CTigweDNmMDZkNjZjLCAweDUzMGNi
NGYzKSwgVE9CTigweDdiZTVlZDBkLCAweGM0NzVjMTI5KX0sCisgICAgICAgICAge1RPQk4oMHhj
YjllM2MxOSwgMHgzMWU4MmIxMCksIFRPQk4oMHhjNjNkMjg1NywgMHhjOWZmNmI0YyksCisgICAg
ICAgICAgIFRPQk4oMHhiOTIxMThjNiwgMHg5MmExYjQ1ZSksIFRPQk4oMHgwYWVjNDQxNCwgMHg3
Mjg1YmJjYSl9fSwKKyAgICAgICAgIHt7VE9CTigweGZjMTg5YWU3LCAweDFlMjlhM2VmKSwgVE9C
TigweGNiZTkwNmYwLCAweDRjOTMzMDJlKSwKKyAgICAgICAgICAgVE9CTigweGQwMTA3OTE0LCAw
eGNlYWFlMTBlKSwgVE9CTigweGI3YTIzZjM0LCAweGI2OGUxOWY4KX0sCisgICAgICAgICAge1RP
Qk4oMHhlOWQ4NzVjMiwgMHhlZmQyMTE5ZCksIFRPQk4oMHgwMzE5OGM2ZSwgMHhmY2FkYzljOCks
CisgICAgICAgICAgIFRPQk4oMHg2NTU5MWJmNiwgMHg0ZGExNzExMyksIFRPQk4oMHgzY2YwYmJm
OCwgMHgzZDQ0MzAzOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGFlNDg1YmI3LCAweDJiNzI0NzU5
KSwgVE9CTigweDk0NTM1M2UxLCAweGIyZDRjNjNhKSwKKyAgICAgICAgICAgVE9CTigweDgyMTU5
ZDA3LCAweGRlN2Q2ZjJjKSwgVE9CTigweDM4OWNhZWYzLCAweDRlYzViMTA5KX0sCisgICAgICAg
ICAge1RPQk4oMHg0YThlYmI1MywgMHhkYjY1ZWYxNCksIFRPQk4oMHgyZGMyY2I3ZSwgMHhkZDk5
ZGU0MyksCisgICAgICAgICAgIFRPQk4oMHg4MTZmYTNlZCwgMHg4M2YyNDA1ZiksIFRPQk4oMHg3
MzQyOWJiOSwgMHhjMTQyMDhhMyl9fSwKKyAgICAgICAgIHt7VE9CTigweGI2MThkNTkwLCAweGIw
MWU2ZTI3KSwgVE9CTigweDA0N2UyY2NkLCAweGUxODBiMmRjKSwKKyAgICAgICAgICAgVE9CTigw
eGQxYjI5OWI1LCAweDA0YWVhNGE5KSwgVE9CTigweDQxMmM5ZTFlLCAweDlmYTQwM2E0KX0sCisg
ICAgICAgICAge1RPQk4oMHg4OGQyOGEzNiwgMHg3OTQwNzU1MiksIFRPQk4oMHg0OWM1MDEzNiwg
MHhmMzMyYjhlMyksCisgICAgICAgICAgIFRPQk4oMHgzYTFiNmZjYywgMHhlNjY4ZGUxOSksIFRP
Qk4oMHgxNzg4NTFiYywgMHg3NTEyMmI5Nyl9fSwKKyAgICAgICAgIHt7VE9CTigweGIxZTEzNzUy
LCAweGZiODVmYTRjKSwgVE9CTigweGQ2MTI1N2NlLCAweDM4M2M4Y2U5KSwKKyAgICAgICAgICAg
VE9CTigweGQ0M2RhNjcwLCAweGQyZjc0ZGFlKSwgVE9CTigweGEzNWFhMjNmLCAweGJmODQ2YmJi
KX0sCisgICAgICAgICAge1RPQk4oMHg1ZTc0MjM1ZCwgMHg0NDIxZmM4MyksIFRPQk4oMHhmNmRm
OGVlMCwgMHhjMzYzNDczYiksCisgICAgICAgICAgIFRPQk4oMHgzNGQ3ZjUyYSwgMHgzYzRhYTE1
OCksIFRPQk4oMHg1MGQwNWFhYiwgMHg5YmM2ZDIyZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDhj
NTZlNzM1LCAweGE2NDc4NWY0KSwgVE9CTigweGJjNTY2MzdiLCAweDVmMjljZDA3KSwKKyAgICAg
ICAgICAgVE9CTigweDUzYjJiYjgwLCAweDNlZTM1MDY3KSwgVE9CTigweDUwMjM1YTBmLCAweGRj
OTE5MjcwKX0sCisgICAgICAgICAge1RPQk4oMHgxOTFhYjZkOCwgMHhmMmM0YWE2NSksIFRPQk4o
MHhjMzQ3NTgzMSwgMHg4Mzk2MDIzYiksCisgICAgICAgICAgIFRPQk4oMHg4MDQwMGJhNSwgMHhm
MGY4MDViYSksIFRPQk4oMHg4ODgxMDY1YiwgMHg1ZWMwZjgwZil9fSwKKyAgICAgICAgIHt7VE9C
TigweGMzNzBlNTIyLCAweGNjMWI1ZTgzKSwgVE9CTigweGRlMmQ0YWQxLCAweDg2MGI4YmZiKSwK
KyAgICAgICAgICAgVE9CTigweGFkMzY0ZGYwLCAweDY3YjI1NmRmKSwgVE9CTigweDhmMTI1MDJl
LCAweGUwMTM4OTk3KX0sCisgICAgICAgICAge1RPQk4oMHg1MDNmYTBkYywgMHg3NzgzOTIwYSks
IFRPQk4oMHhlODAwMTRhZCwgMHhjMGJjODY2YSksCisgICAgICAgICAgIFRPQk4oMHgzZjg5Yjc0
NCwgMHhkMzA2NGJhNiksIFRPQk4oMHgwMzUxMWRjZCwgMHhjYmE1ZGJhNSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDE5N2RkNDZkLCAweDk1YTdiMWEyKSwgVE9CTigweDljNGU3YWQ2LCAweDNjNjM0
MWZiKSwKKyAgICAgICAgICAgVE9CTigweDQyNmVjYTI5LCAweDQ4NGMyZWNlKSwgVE9CTigweDky
MTFlNDg5LCAweGRlN2Y0ZjhhKX0sCisgICAgICAgICAge1RPQk4oMHgxNDk5N2Y2ZSwgMHhjNzhl
ZjFmNCksIFRPQk4oMHgyYjJjMDkxMCwgMHgwNjU3NDU4NiksCisgICAgICAgICAgIFRPQk4oMHgx
NzI4NmE2ZSwgMHgxYzNlZWRlOCksIFRPQk4oMHgyNWY5MmU0NywgMHgwZjYwZTAxOCl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDgwNWM1NjQ2LCAweDMxODkwYTM2KSwgVE9CTigweDcwM2VmNjAwLCAw
eDU3ZmVlYTViKSwKKyAgICAgICAgICAgVE9CTigweDM4OWY3NDdjLCAweGFmM2MzMDMwKSwgVE9C
TigweGUwZTVkYWViLCAweDU0ZGQzNzM5KX0sCisgICAgICAgICAge1RPQk4oMHhmZTI0YTRjMywg
MHhjOWM5ZjE1NSksIFRPQk4oMHg3ZTRiZjE3NiwgMHhiNTM5Mzk2MiksCisgICAgICAgICAgIFRP
Qk4oMHgzNzE4M2RlMiwgMHhhZjIwYmYyOSksIFRPQk4oMHg0YTFiZDdiNSwgMHhmOTVhOGMzYil9
fSwKKyAgICAgICAgIHt7VE9CTigweGE4M2I5Njk5LCAweDQ2MTkxZDNkKSwgVE9CTigweDI4MWZj
OGRkLCAweDdiODdmMjU3KSwKKyAgICAgICAgICAgVE9CTigweGIxOGUyYzEzLCAweDU0MTA3NTg4
KSwgVE9CTigweDYzNzJkZWY3LCAweDliMmJhZmU4KX0sCisgICAgICAgICAge1RPQk4oMHhkYWY0
YmI0OCwgMHgwZDg5NzJjYSksIFRPQk4oMHgzZjJkZDRiNywgMHg1NjE2N2EzZiksCisgICAgICAg
ICAgIFRPQk4oMHgxZWFjZTMyZCwgMHg4NDMxMGNmNCksIFRPQk4oMHhlM2JjZWZhZiwgMHhlNDI3
MDBhYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDVmZTU2OTFlLCAweGQ3ODVlNzNkKSwgVE9CTigw
eGE1ZGI1YWI2LCAweDJlYTYwNDY3KSwKKyAgICAgICAgICAgVE9CTigweDAyZTIzZDQxLCAweGRm
YzY1MTRhKSwgVE9CTigweDM1ZTgwNDhlLCAweGUwM2MzNjY1KX0sCisgICAgICAgICAge1RPQk4o
MHgzZjhiMTE4ZiwgMHgxYWRhYTBmOCksIFRPQk4oMHgyOGVjM2I0NSwgMHg4NGNlMWE1YSksCisg
ICAgICAgICAgIFRPQk4oMHhlOGNhY2M2ZSwgMHgyYzY2NDZiOCksIFRPQk4oMHgxMzQzZDE4NSwg
MHhkYmQwZTQwZil9fSwKKyAgICAgICAgIHt7VE9CTigweGU1ZDdmODQ0LCAweGNhYWEzNThjKSwg
VE9CTigweDFhMWRiN2U0LCAweDk5MjQxODJhKSwKKyAgICAgICAgICAgVE9CTigweGQ2NGNkNDJk
LCAweDljODc1ZDlhKSwgVE9CTigweGIzN2I1MTVmLCAweDA0MmVlZWM4KX0sCisgICAgICAgICAg
e1RPQk4oMHg0ZDRkZDQwOSwgMHg3YjE2NWZiZSksIFRPQk4oMHhmYzMyMmVkOSwgMHhlMjA2ZWZm
MyksCisgICAgICAgICAgIFRPQk4oMHg3ZGVlNDEwMiwgMHg1OWI3ZTE3ZSksIFRPQk4oMHg1NWE0
ODFjMCwgMHg4MjM2Y2EwMCl9fSwKKyAgICAgICAgIHt7VE9CTigweDhjODg1MzEyLCAweGMyM2Zj
OTc1KSwgVE9CTigweDE1NzE1ODA2LCAweDA1ZDYyOTdiKSwKKyAgICAgICAgICAgVE9CTigweGEw
Nzg4NjhlLCAweGY3OGVkZDM5KSwgVE9CTigweDk1NmIzMWUwLCAweDAzYzQ1ZTUyKX0sCisgICAg
ICAgICAge1RPQk4oMHg0NzAyNzVkNSwgMHhmZjdiMzNhNiksIFRPQk4oMHhjOGQ1ZGMzYSwgMHgw
YzdlNjczZiksCisgICAgICAgICAgIFRPQk4oMHg0MTkyMjdiNCwgMHg3ZTJmMjU5OCksIFRPQk4o
MHg4YjM3YjYzNCwgMHg0YzE0YTk3NSl9fSwKKyAgICAgICAgIHt7VE9CTigweGQwNjY3ZWQ2LCAw
eDhiMTE4ODhjKSwgVE9CTigweDVlMGU4YzNlLCAweDgwM2UyNWRjKSwKKyAgICAgICAgICAgVE9C
TigweDM0ZTVkMGRjLCAweGI5ODdhMjRhKSwgVE9CTigweDlmNDBhYzNiLCAweGFlOTIwMzIzKX0s
CisgICAgICAgICAge1RPQk4oMHg1NDYzZGU5NSwgMHgzNGUwZjYzYSksIFRPQk4oMHhhMTI4YmY5
MiwgMHg2YjYzMjhmOSksCisgICAgICAgICAgIFRPQk4oMHg0OTFjY2Q3YywgMHhkYTY0ZjFiNyks
IFRPQk4oMHg3ZWYxZWMyNywgMHhjNDdiZGUzNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGE4NTcy
NDBmLCAweGEzNmEyNzM3KSwgVE9CTigweDM1ZGMxMzY2LCAweDYzNjIxYmMxKSwKKyAgICAgICAg
ICAgVE9CTigweDdhM2E2NDUzLCAweGQ0ZmI2ODk3KSwgVE9CTigweDgwZjFhNDM5LCAweGM5Mjkz
MTlkKX0sCisgICAgICAgICAge1RPQk4oMHhmYzE4Mjc0YiwgMHhmOGNiMGJhMCksIFRPQk4oMHhi
MGI1Mzc2NiwgMHg4MDc4YzVlYiksCisgICAgICAgICAgIFRPQk4oMHhmYjBkNDkyNCwgMHgxZTAx
ZDBlZiksIFRPQk4oMHg1MGQ3YzY3ZCwgMHgzNzJhYjA5Yyl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGI0ZTM3MGFmLCAweDNhZWFjOTY4KSwgVE9CTigweGU0ZjdmZWU5LCAweGM0YjYzMjY2KSwKKyAg
ICAgICAgICAgVE9CTigweGI0YWNkNGMyLCAweGUzYWM1NjY0KSwgVE9CTigweGY4OTEwYmQyLCAw
eGNlYjM4Y2JmKX0sCisgICAgICAgICAge1RPQk4oMHgxYzNhZTUwYywgMHhjOWMwNzI2ZSksIFRP
Qk4oMHgxNTMwOTU2OSwgMHhkOTdiNDBiZiksCisgICAgICAgICAgIFRPQk4oMHg3MDg4NGI3Ziwg
MHhmZDVhNWExYiksIFRPQk4oMHgzODkwODk2YSwgMHhlZjgzMTRjZCl9fSwKKyAgICAgICAgIHt7
VE9CTigweDU4ZTE1MTVjLCAweGE1NjE4YzkzKSwgVE9CTigweGU2NjU0MzJiLCAweDc3ZDk0MmQx
KSwKKyAgICAgICAgICAgVE9CTigweGIzMjE4MWJmLCAweGI2Zjc2N2E4KSwgVE9CTigweDc1Mzc5
NGU4LCAweDNhNjA0MTEwKX0sCisgICAgICAgICAge1RPQk4oMHgwOWFmZWI3YywgMHhlOGMwZGJj
YyksIFRPQk4oMHgzMWUwMjYxMywgMHg1OTg2NzNhMyksCisgICAgICAgICAgIFRPQk4oMHg1ZDk4
ZTU1NywgMHg3ZDQ2ZGIwMCksIFRPQk4oMHhmYzIxZmI4YywgMHg5ZDk4NWIyOCl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGM5MDQwMTE2LCAweGIwODQzZTBiKSwgVE9CTigweDUzYjFiM2E4LCAweDY5
YjA0NTMxKSwKKyAgICAgICAgICAgVE9CTigweGRkMTY0OWYwLCAweDg1ZDdkODMwKSwgVE9CTigw
eGJiM2JjYzg3LCAweGNiNzQyN2U4KX0sCisgICAgICAgICAge1RPQk4oMHg3NzI2MTEwMCwgMHhj
OTNkY2U4MyksIFRPQk4oMHg3ZTc5ZGE2MSwgMHhhMTkyMmEyYSksCisgICAgICAgICAgIFRPQk4o
MHg1ODdhMmIwMiwgMHhmMzE0OWNlOCksIFRPQk4oMHgxNDdlMTM4NCwgMHhkZTkyZWM4Myl9fSwK
KyAgICAgICAgIHt7VE9CTigweDQ4NGM4M2QzLCAweGFmMDc3ZjMwKSwgVE9CTigweGVhNzhmODQ0
LCAweDA2NThiNTNhKSwKKyAgICAgICAgICAgVE9CTigweDkxMjA3NmMyLCAweDAyN2FlYzUzKSwg
VE9CTigweGYzNDcxNGUzLCAweDkzYzgxNzdkKX0sCisgICAgICAgICAge1RPQk4oMHgzN2VmNWQx
NSwgMHhjMjM3NmM4NCksIFRPQk4oMHg4MzE1YjY1OSwgMHgzZDFhYTc4MyksCisgICAgICAgICAg
IFRPQk4oMHgzYTc1YzQ4NCwgMHhlZjg1MmE5MCksIFRPQk4oMHgwYmEwYzU4YSwgMHgxNjA4NmJk
NCl9fSwKKyAgICAgICAgIHt7VE9CTigweDI5Njg4ZDdhLCAweDUyOWE2ZDQ4KSwgVE9CTigweDlj
N2YyNTBkLCAweGMyZjE5MjAzKSwKKyAgICAgICAgICAgVE9CTigweDEyMzA0MmZiLCAweDY4MmUy
ZGY5KSwgVE9CTigweDJiNzU4N2U3LCAweGFkODEyMWJjKX0sCisgICAgICAgICAge1RPQk4oMHgz
MGZjMDIzMywgMHhlMDE4MmE2NSksIFRPQk4oMHhiODJlY2Y4NywgMHhlM2UxMTI4YSksCisgICAg
ICAgICAgIFRPQk4oMHg3MTY4Mjg2MSwgMHg5M2ZiMDk4ZiksIFRPQk4oMHgwNDNlMjFhZSwgMHg4
NWU5ZTZhNyl9fSwKKyAgICAgICAgIHt7VE9CTigweGFiNWI0OWQ2LCAweDY2YzgzNGVhKSwgVE9C
TigweDNiZTQzZTE4LCAweDQ3NDE0Mjg3KSwKKyAgICAgICAgICAgVE9CTigweGY0MGZiODU5LCAw
eDIxOWEyYTQ3KSwgVE9CTigweDBlNjU1OWU5LCAweGNjNThkZjNjKX0sCisgICAgICAgICAge1RP
Qk4oMHhmZTFkZmU4ZSwgMHgwYzY2MTViNCksIFRPQk4oMHgxNGFiYzhmZCwgMHg1NjQ1OWQ3MCks
CisgICAgICAgICAgIFRPQk4oMHg3YmUwZmE4ZSwgMHgwNWRlMDM4NiksIFRPQk4oMHg4ZTYzZWY2
OCwgMHhlOTAzNWM3Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDExNjQwMWI0LCAweDUzYjMxZTkx
KSwgVE9CTigweDBjYmE3YWQ0LCAweDQ0MzZiNGQ4KSwKKyAgICAgICAgICAgVE9CTigweDkxNTFm
OWEwLCAweDEwN2FmZDY2KSwgVE9CTigweGFmYWNhOGQwLCAweDFmMGVlNGM0KX0sCisgICAgICAg
ICAge1RPQk4oMHg3NWZlNWMxZCwgMHg5ZWU5NzYxYyksIFRPQk4oMHgzNDk3YTE2YiwgMHhmMGMw
NTg4ZiksCisgICAgICAgICAgIFRPQk4oMHgzZWUyYmViZCwgMHgwMzA0ODA0YyksIFRPQk4oMHhh
OGZiOWE2MCwgMHhjMmM5OTBiOSl9fSwKKyAgICAgICAgIHt7VE9CTigweGQxNGQzMmZlLCAweDM5
MjUxMTE0KSwgVE9CTigweDM2YmYyNWJjLCAweGNhYzczMzY2KSwKKyAgICAgICAgICAgVE9CTigw
eGM5NTYyYzY2LCAweGRiYTc0OTVjKSwgVE9CTigweDMyNGQzMDFiLCAweDQ2YWQzNDhiKX0sCisg
ICAgICAgICAge1RPQk4oMHg5ZjQ2NjIwYywgMHhkNjcwNDA3ZSksIFRPQk4oMHgwZWE4ZDRmMSwg
MHhlMzczM2EwMSksCisgICAgICAgICAgIFRPQk4oMHhkMzk2ZDUzMiwgMHhiMGMzMjRlMCksIFRP
Qk4oMHg1YjIxMWEwZSwgMHgwM2MzMTdjZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDA5MGQ3ZDIw
LCAweDVmZmU3YjM3KSwgVE9CTigweDNiN2YzZWZiLCAweDE3NDdkMmRhKSwKKyAgICAgICAgICAg
VE9CTigweGEyY2I1MjVmLCAweGI1NGZjNTE5KSwgVE9CTigweDZlMjIwOTMyLCAweGY2NmE5NzFl
KX0sCisgICAgICAgICAge1RPQk4oMHhkZGMxNjBkZiwgMHhiNDg2ZDQ0MCksIFRPQk4oMHg3ZmNm
ZWM0NiwgMHgzZmUxMzQ2NSksCisgICAgICAgICAgIFRPQk4oMHg4M2RhN2U0ZSwgMHg3NmU0YzE1
MSksIFRPQk4oMHhkNmZhNDhhMSwgMHhkOGQzMDJiNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGM2
MzA0ZjI2LCAweDU4NzJjZDg4KSwgVE9CTigweDgwNmMxZDNjLCAweDI3OGI5MGExKSwKKyAgICAg
ICAgICAgVE9CTigweDM1NTNlNzI1LCAweGNhZjBiYzFjKSwgVE9CTigweGZmNTllNjAzLCAweGJi
OWQ4ZDVjKX0sCisgICAgICAgICAge1RPQk4oMHhhNDU1MGYzMiwgMHg3YTBiODVkZCksIFRPQk4o
MHhkZWM1NzIwYSwgMHg5M2VjYzIxNyksCisgICAgICAgICAgIFRPQk4oMHgwYjg4Yjc0MSwgMHg2
OWQ2MjIxMyksIFRPQk4oMHg3MjEyZjI0NSwgMHg1YjM2NTk1NSl9fSwKKyAgICAgICAgIHt7VE9C
TigweDIwNzY0MTExLCAweGI1Y2FlNzg3KSwgVE9CTigweDEzY2I3ZjU4LCAweDFkZmQzMTI0KSwK
KyAgICAgICAgICAgVE9CTigweDJkY2E3N2RhLCAweDExNzVhZWZiKSwgVE9CTigweGViNzU0NjZi
LCAweGZmYWFlNzc1KX0sCisgICAgICAgICAge1RPQk4oMHg3NGQ3NmYzYiwgMHhkYjZjZmYzMiks
IFRPQk4oMHg3NDQwZjM3YSwgMHg2MWZjZGE5YSksCisgICAgICAgICAgIFRPQk4oMHgxYmIzYWM5
MiwgMHhiNTI1MDI4YiksIFRPQk4oMHgyMGZiZjhmNywgMHhhMTk3NWYyOSl9fSwKKyAgICAgICAg
IHt7VE9CTigweDk4MjY5MmUxLCAweGRmODMwOTdmKSwgVE9CTigweDI4NzM4ZjZjLCAweDU1NGIw
ODAwKSwKKyAgICAgICAgICAgVE9CTigweGRjNzAzNzE3LCAweGEyY2UyZjJmKSwgVE9CTigweDc5
MTNiOTNjLCAweDQwODE0MTk0KX0sCisgICAgICAgICAge1RPQk4oMHgwNDkyNDU5MywgMHgxZmU4
OTYzNiksIFRPQk4oMHg3Yjk4NDQzZiwgMHhmNzg4MzRhNiksCisgICAgICAgICAgIFRPQk4oMHgx
MWM2YWIwMSwgMHg1MTE0YTVhMSksIFRPQk4oMHg2MGRlYjM4MywgMHhmZmJhNWY0Yyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweDRjYWE1NGM2LCAweDAxYTk4MmU2KSwgVE9CTigweDFkZDM1ZTExLCAw
eDM0OTFjZDI2KSwKKyAgICAgICAgICAgVE9CTigweDk3M2MzMTVmLCAweDdjYmQ2YjA1KSwgVE9C
TigweGNhYjAwNzc1LCAweDUyNDk0NzI0KX0sCisgICAgICAgICAge1RPQk4oMHgwNDY1OWIxZiwg
MHg2NTY1ZTE1YSksIFRPQk4oMHhiZjMwZjUyOSwgMHg4YzhmYjAyNiksCisgICAgICAgICAgIFRP
Qk4oMHhmYzIxNjQxYiwgMHhhOGEwZGUzNyksIFRPQk4oMHhlOWM3YTM2NiwgMHhmYTVlNTExNCl9
fSwKKyAgICAgICAgIHt7VE9CTigweGRiODQ5Y2E1LCAweDUyZjAzYWQ4KSwgVE9CTigweGM3ZThk
YmU5LCAweDAyNGUzNWMwKSwKKyAgICAgICAgICAgVE9CTigweGExYTJiYmFjLCAweGNmYzNjNzg5
KSwgVE9CTigweGJmNzMzZTdkLCAweDljMjZmMjYyKX0sCisgICAgICAgICAge1RPQk4oMHg4ODJm
ZmJmNSwgMHhiODQ0NDgyMyksIFRPQk4oMHhiNzIyNGU4OCwgMHg2YmY4NDgzYiksCisgICAgICAg
ICAgIFRPQk4oMHg1MzAyM2I4YiwgMHg2NWJlZjY0MCksIFRPQk4oMHhhYWJmZWM5MSwgMHhkNGQ1
ZjhjZCl9fSwKKyAgICAgICAgIHt7VE9CTigweGE0MGUxNTEwLCAweDA3OWVhMWJkKSwgVE9CTigw
eDFhZDlhZGRjLCAweGQwNWQ1ZDI2KSwKKyAgICAgICAgICAgVE9CTigweGRiM2YyZWFiLCAweDEz
ZTY4ZDRmKSwgVE9CTigweDFjZmYxYWUyLCAweDY0MGY4MDNmKX0sCisgICAgICAgICAge1RPQk4o
MHhlMGU3Yjc0OSwgMHhkNGNlZTExNyksIFRPQk4oMHg4ZTlmMjc1YiwgMHg0MDM2ZDkwOSksCisg
ICAgICAgICAgIFRPQk4oMHhjZTM0ZTMxZCwgMHg4ZjRkNGMzOCksIFRPQk4oMHgyMmIzN2Y2OSwg
MHhkNzUxMzBmYyl9fSwKKyAgICAgICAgIHt7VE9CTigweDgzZTBmMWZkLCAweGI0MDE0NjA0KSwg
VE9CTigweGE4Y2U5OTE5LCAweDg5NDE1MDc4KSwKKyAgICAgICAgICAgVE9CTigweDgyMzc1Yjc1
LCAweDQxNzkyZWZlKSwgVE9CTigweDRmNTliZjVjLCAweDk3ZDQ1MTViKX0sCisgICAgICAgICAg
e1RPQk4oMHhhYzRmMzI0ZiwgMHg5MjNhMjc3ZCksIFRPQk4oMHhkOWJjOWI3ZCwgMHg2NTBmMzQw
NiksCisgICAgICAgICAgIFRPQk4oMHhjNmZhODdkMSwgMHg4YTM5YmM1MSksIFRPQk4oMHg4MjU4
ODUzMCwgMHg1Y2NjMTA4Zil9fSwKKyAgICAgICAgIHt7VE9CTigweDVjZWQzYzlmLCAweDgyZTRj
NjM0KSwgVE9CTigweDhlZmI4MzE0LCAweDNhNDQ2NGY4KSwKKyAgICAgICAgICAgVE9CTigweGU3
MDYzODFiLCAweDdhMWRjYTI1KSwgVE9CTigweDZjZDE1YTNjLCAweDVhMmE0MTJiKX0sCisgICAg
ICAgICAge1RPQk4oMHg5MzQ3YThmZCwgMHhiZmNkOGZiNSksIFRPQk4oMHgzMWRiMmVlZiwgMHg2
ZTU0Y2QyMiksCisgICAgICAgICAgIFRPQk4oMHhjNGFlYjExZSwgMHhmOGQ4OTMyZiksIFRPQk4o
MHgxMWU3YzFlZCwgMHgzNDQ0MTFhZil9fSwKKyAgICAgICAgIHt7VE9CTigweDI2NTMwNTBjLCAw
eGRjOWExNTFlKSwgVE9CTigweDllZGJmYzA4LCAweDNiYjBhODU5KSwKKyAgICAgICAgICAgVE9C
TigweDkyNmM4MWM3LCAweGZkNTY5MWU3KSwgVE9CTigweDljMWIyMzQyLCAweDZmMzkwMTlhKX0s
CisgICAgICAgICAge1RPQk4oMHg2NGE4MWM4YiwgMHg3Zjg0NzRiOSksIFRPQk4oMHg5MDY1N2Mw
NywgMHgwMTc2MTgxOSksCisgICAgICAgICAgIFRPQk4oMHgzOTBiMzMzMSwgMHg1NWUwMzc1YSks
IFRPQk4oMHhjNjc2YzYyNiwgMHhiNmViYzQ3ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDUxNjIz
MjQ3LCAweGI3ZDZkZWU4KSwgVE9CTigweDA5NDhkOTI3LCAweDc5NjU5MzEzKSwKKyAgICAgICAg
ICAgVE9CTigweDk5NzAwMTYxLCAweGU5YWIzNWVkKSwgVE9CTigweDA2Y2MzMmI0LCAweDhkZGRl
NDA4KX0sCisgICAgICAgICAge1RPQk4oMHg2ZjJmZDY2NCwgMHgwNjFlZjMzOCksIFRPQk4oMHgx
NjA2ZmEwMiwgMHhjMjAyZTllZCksCisgICAgICAgICAgIFRPQk4oMHg1NTM4OGJjMSwgMHg5Mjli
YTk5YiksIFRPQk4oMHhjNDQyOGM1ZSwgMHgxZTgxZGY2OSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGNlMjAyOGFlLCAweGY5MWIwYjJhKSwgVE9CTigweGNlODcwYTIzLCAweGYwM2RmZDNmKSwKKyAg
ICAgICAgICAgVE9CTigweDY2ZWMyYzg3LCAweDBhZmZlOGVkKSwgVE9CTigweGIyMDVmYjQ2LCAw
eDI4NGQwYzAwKX0sCisgICAgICAgICAge1RPQk4oMHhiZjVkZmZlNywgMHg0NGNlZmE0OCksIFRP
Qk4oMHhiNmZjMzdhOCwgMHhhMTk4NzZkNyksCisgICAgICAgICAgIFRPQk4oMHhiZWNmYTg0Yywg
MHgwOGI3Mjg2MyksIFRPQk4oMHhkNzIwNWZmNSwgMHgyNTc2Mzc0Zil9fSwKKyAgICAgICAgIHt7
VE9CTigweDgwMzMwZDMyLCAweDg4ODdkZTQxKSwgVE9CTigweDVkZTBkZjBjLCAweDg2OWVhNTM0
KSwKKyAgICAgICAgICAgVE9CTigweDEzZjQyNzUzLCAweDNjNTZlYTE3KSwgVE9CTigweGViMWY2
MDY5LCAweDQ1MmIxYTc4KX0sCisgICAgICAgICAge1RPQk4oMHg1MDQ3NDM5NiwgMHhlMzBlYTE1
YyksIFRPQk4oMHg1NzU4MTZhMSwgMHhjMTQ5NDEyNSksCisgICAgICAgICAgIFRPQk4oMHhiZTFj
ZTU1YiwgMHhmZTZiYjM4ZiksIFRPQk4oMHhiOTAxYTk0OCwgMHg5NmFlMzBmNyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGU1YWYwZjA4LCAweGQ4ZmMzNTQ4KSwgVE9CTigweDUwMTBiNWQwLCAweGQ3
M2JmZDA4KSwKKyAgICAgICAgICAgVE9CTigweDk5M2QyODgwLCAweDUzZmU2NTVhKSwgVE9CTigw
eDk5ZjI2MzBiLCAweDFjMTMwOWZkKX0sCisgICAgICAgICAge1RPQk4oMHhkODY3N2JhZiwgMHhi
NGUzYjc2ZiksIFRPQk4oMHgxNGU1MWRkYywgMHhiODQwNzg0YiksCisgICAgICAgICAgIFRPQk4o
MHgzMjZjNzUwYywgMHhiZjAwOTJjZSksIFRPQk4oMHhjODNkMzA2YiwgMHhmNTI4MzIwZil9fSwK
KyAgICAgICAgIHt7VE9CTigweGM0NDU2NzE1LCAweDc3ZDQ3MTVjKSwgVE9CTigweGQzMDAxOWY5
LCAweDZiNzAzMjM1KSwKKyAgICAgICAgICAgVE9CTigweDIwN2NjYjJlLCAweGQ2NjllOTg2KSwg
VE9CTigweDU3YzgyNGFmLCAweGY2ZGJmYzI4KX0sCisgICAgICAgICAge1RPQk4oMHhmMGViNTMy
ZiwgMHhkOGY5MmEyMyksIFRPQk4oMHg0YTU1N2ZkNCwgMHg5YmI5OGZkMiksCisgICAgICAgICAg
IFRPQk4oMHhhNTdhY2VhNywgMHhjMWU2MTk5YSksIFRPQk4oMHgwYzY2MzgyMCwgMHg4Yjk0YjFl
ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDliNDJiZThmLCAweGY4M2E5MjY2KSwgVE9CTigweGM3
NzQxYzk3LCAweDAxMDFiZDQ1KSwKKyAgICAgICAgICAgVE9CTigweDk1NzcwYzExLCAweDA3YmQ5
Y2ViKSwgVE9CTigweDFmNTAyNTBhLCAweDhiMmUwNzQ0KX0sCisgICAgICAgICAge1RPQk4oMHhm
NzYyZWVjOCwgMHgxNDc3YjY1NCksIFRPQk4oMHhjNjViOTAwZSwgMHgxNWVmZTU5YSksCisgICAg
ICAgICAgIFRPQk4oMHg4OGM5NjE0OCwgMHg5NTQ2YTg5NyksIFRPQk4oMHg3ZTgwMjViMywgMHhj
MzBiNGQ3Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweGFlNDA2NWVmLCAweDEyMDQ1Y2Y5KSwgVE9C
TigweDZmY2IyY2FmLCAweDljY2NlOGJkKSwKKyAgICAgICAgICAgVE9CTigweDFmYTBiYTRlLCAw
eGYyY2Y2NTI1KSwgVE9CTigweGY2ODMxMjVkLCAweGNiNzJjMzEyKX0sCisgICAgICAgICAge1RP
Qk4oMHhhMDFkYTRlYSwgMHhlMzEyNDEwZSksIFRPQk4oMHg2N2UyODY3NywgMHg2Y2Q4ZTgzMCks
CisgICAgICAgICAgIFRPQk4oMHhhYmQ5NTc1MiwgMHg5OGZiM2YwNyksIFRPQk4oMHgwNWYxMWUx
MSwgMHhlZWY2NDlhNSl9fSwKKyAgICAgICAgIHt7VE9CTigweGJhNDdmYWVmLCAweDlkMzQ3MmMy
KSwgVE9CTigweDNhZGZmNjk3LCAweGM3N2QxMzQ1KSwKKyAgICAgICAgICAgVE9CTigweDQ3NjFm
YTA0LCAweGRkMTVhZmVlKSwgVE9CTigweDY0ZjFmNjFhLCAweGI5ZTY5NDYyKX0sCisgICAgICAg
ICAge1RPQk4oMHhmYTY5MWZhYiwgMHg5YmZiOTA5MyksIFRPQk4oMHgzZGY4YWU4ZiwgMHhhMTEz
M2RmZSksCisgICAgICAgICAgIFRPQk4oMHhjZDVmODk2NywgMHg1OGNjNzEwZCksIFRPQk4oMHhm
YmI4OGQ1MCwgMHgxNmM3ZmU3OSl9fSwKKyAgICAgICAgIHt7VE9CTigweDhlMDExYjRjLCAweGU4
OGM1MGQxKSwgVE9CTigweDc1MzJlODA3LCAweGE4NzcxYzRmKSwKKyAgICAgICAgICAgVE9CTigw
eDY0Yzc4YTQ4LCAweGUyMjc4ZWU0KSwgVE9CTigweDBiMjgzZTgzLCAweDM4NDUwNzJhKX0sCisg
ICAgICAgICAge1RPQk4oMHg5OGE2ZjI5MSwgMHg0OWU2OTI3NCksIFRPQk4oMHhiOTZlOTY2OCwg
MHgxODY4YjIxYyksCisgICAgICAgICAgIFRPQk4oMHgzOGYwYWRjMiwgMHhiMWE4OTA4ZSksIFRP
Qk4oMHg5MGFmY2ZmNywgMHgxZmViODI5ZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDk5MTVhMzgz
LCAweDIxMGIwODU2KSwgVE9CTigweGE1YTgwNjAyLCAweGRlZjA0ODg5KSwKKyAgICAgICAgICAg
VE9CTigweDgwMGU5YWY5LCAweDdjNjRkNTA5KSwgVE9CTigweDgxMzgyZDBiLCAweGI4OTk2ZjZm
KX0sCisgICAgICAgICAge1RPQk4oMHg0OTBlYmE1MywgMHg4MTkyN2UyNyksIFRPQk4oMHg0NmM2
M2IzMiwgMHg0YWY1MDE4MiksCisgICAgICAgICAgIFRPQk4oMHg3ODRjNWZkOSwgMHhkM2FkNjJj
ZSksIFRPQk4oMHhlNGZhMTg3MCwgMHhmOGFlODczNil9fSwKKyAgICAgICAgIHt7VE9CTigweDRl
YzlkMGJjLCAweGQ3NDY2YjI1KSwgVE9CTigweDg0ZGRiZTFhLCAweGRiMjM1YzY1KSwKKyAgICAg
ICAgICAgVE9CTigweDVlMjY0NWVlLCAweDE2M2MxNjg4KSwgVE9CTigweDU3MGJkMDBlLCAweDAw
ZWJhNzQ3KX0sCisgICAgICAgICAge1RPQk4oMHhmYTUxYjYyOSwgMHgxMjhiZmEwZiksIFRPQk4o
MHg5MmZjZTFiZCwgMHg2YzFkM2I2OCksCisgICAgICAgICAgIFRPQk4oMHgzZTczNjFkYywgMHhi
NjY3NzhiMSksIFRPQk4oMHg5YzdkMjQ5ZCwgMHg1NTYxZDJiYil9fSwKKyAgICAgICAgIHt7VE9C
TigweGE0MGIyOGJmLCAweDBiYmM2MjI5KSwgVE9CTigweDFjODNjMDVlLCAweGRmZDkxNDk3KSwK
KyAgICAgICAgICAgVE9CTigweDVmOWY1MTU0LCAweGYwODNkZjA1KSwgVE9CTigweGJhYzM4YjNj
LCAweGVlZTY2YzlkKX0sCisgICAgICAgICAge1RPQk4oMHhmNzFkYjdlMywgMHhlYzBkZmNmZCks
IFRPQk4oMHhmMmVjZGE4ZSwgMHg4YjBhODQxNiksCisgICAgICAgICAgIFRPQk4oMHg1MmZkZGQ4
NiwgMHg3ODEyYWE2NiksIFRPQk4oMHgyODk2ZWYxMCwgMHg0ZTZmNDI3Mil9fSwKKyAgICAgICAg
IHt7VE9CTigweGZmMjcxODZhLCAweDBmZTlhNzQ1KSwgVE9CTigweDA4MjQ5ZmNkLCAweDQ5Y2E3
MGRiKSwKKyAgICAgICAgICAgVE9CTigweDc0MjVhMmU2LCAweDQ0MWNhYzQ5KSwgVE9CTigweGY0
YTA4ODVhLCAweGVjZTVmZjU3KX0sCisgICAgICAgICAge1RPQk4oMHg2ZTJjYjczMSwgMHg3ZDdl
YWQ1OCksIFRPQk4oMHhmOTZjZjdkNiwgMHgxODk4ZDEwNCksCisgICAgICAgICAgIFRPQk4oMHhh
ZmU2N2M5ZCwgMHg0ZjJjOWE4OSksIFRPQk4oMHg4OTg5NWE1MCwgMHgxYzdiZjViYyl9fSwKKyAg
ICAgICAgIHt7VE9CTigweGRjN2NiOGU1LCAweDU3M2NlY2ZhKSwgVE9CTigweDY2NDk3ZWFlLCAw
eGQxNWYwM2U2KSwKKyAgICAgICAgICAgVE9CTigweDZiYzBkZTY5LCAweDNmMDg0NDIwKSwgVE9C
TigweDMyM2I5YjM2LCAweGFjZDUzMmIwKX0sCisgICAgICAgICAge1RPQk4oMHhjZmVkMzkwYSwg
MHgwMTE1YTNjMSksIFRPQk4oMHg5NDE0YzQwYiwgMHgyZDY1Y2EwZSksCisgICAgICAgICAgIFRP
Qk4oMHg2NDE0MDZiZCwgMHgyZjUzMGM3OCksIFRPQk4oMHgyOTM2OWE0NCwgMHg4MzM0MzhmMil9
fSwKKyAgICAgICAgIHt7VE9CTigweDk5Njg4NGY1LCAweDkwM2ZhMjcxKSwgVE9CTigweGU2ZGEw
ZmQyLCAweGI5ZGE5MjFlKSwKKyAgICAgICAgICAgVE9CTigweGE2ZjJmMjY5LCAweDVkYjAxZTU0
KSwgVE9CTigweDFlZTNlOWJkLCAweDY4NzYyMTRlKX0sCisgICAgICAgICAge1RPQk4oMHhhMjZl
MTgxYywgMHhlMjdhOTQ5NyksIFRPQk4oMHgzNmQyNTRlNCwgMHg4ZTIxNWUwNCksCisgICAgICAg
ICAgIFRPQk4oMHg0MmYzMmE2YywgMHgyNTJjYWJjYSksIFRPQk4oMHg5OTQ4MTQ4NywgMHg4MGI1
NzYxNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDRjNGRmZTY5LCAweDQwZDljYWUxKSwgVE9CTigw
eDA1ODY5NTgwLCAweDExYTEwZjA5KSwKKyAgICAgICAgICAgVE9CTigweGNhMjg3YjU3LCAweDM0
OTFiNjRiKSwgVE9CTigweDc3ODYyZDVkLCAweDNmZDRhNTNiKX0sCisgICAgICAgICAge1RPQk4o
MHhiZjk0ODU2ZSwgMHg1MDM0OTEyNiksIFRPQk4oMHgyYmUzMGJkMSwgMHg3MWM1MjY4ZiksCisg
ICAgICAgICAgIFRPQk4oMHgxMDM5M2YxOSwgMHhjYmI2NTBhNiksIFRPQk4oMHg2Mzk1MzFmZSwg
MHg3NzhjZjlmZCl9fSwKKyAgICAgICAgIHt7VE9CTigweDAyNTU2YTExLCAweGIyOTM1MzU5KSwg
VE9CTigweGRhMzhhYTk2LCAweGFmOGMxMjZlKSwKKyAgICAgICAgICAgVE9CTigweDQ3ZGJlNmMy
LCAweDA5NjAxNjdmKSwgVE9CTigweDM3YmJhYmI2LCAweDUwMTkwMWNkKX0sCisgICAgICAgICAg
e1RPQk4oMHhiNmU5NzllMCwgMHgyYzk0Nzc3OCksIFRPQk4oMHhkNjlhNTE3NSwgMHg3YTFhMWRj
NiksCisgICAgICAgICAgIFRPQk4oMHhjM2VkNTA5NSwgMHg5ZDlmYWYwYyksIFRPQk4oMHg0ZGQ5
YzA5NiwgMHgxZDVmYTVmMCl9fSwKKyAgICAgICAgIHt7VE9CTigweGEwYzQzMDRkLCAweDY0ZjE2
ZWE4KSwgVE9CTigweDhiMWNhYzE2LCAweDdlNzE4NjIzKSwKKyAgICAgICAgICAgVE9CTigweDBi
NTc2NTQ2LCAweDdjNjdmMDNlKSwgVE9CTigweDU1OWNmNWFkLCAweGNiZDg4YzAxKX0sCisgICAg
ICAgICAge1RPQk4oMHgwNzQ4NzdiYiwgMHgwZTJhZjE5YSksIFRPQk4oMHgxZjcxN2VjMSwgMHhh
MTIyOGM5MiksCisgICAgICAgICAgIFRPQk4oMHg3MGJjYjgwMCwgMHgzMjZlODkyMCksIFRPQk4o
MHhlYzZlMmM1YywgMHg0ZjMxMjgwNCl9fSwKKyAgICAgICAgIHt7VE9CTigweDQyNmFlYTdkLCAw
eDNmY2E0NzUyKSwgVE9CTigweGYxMmMwOTQ5LCAweDIyMTFmNjJhKSwKKyAgICAgICAgICAgVE9C
TigweDI0YmVlY2Q4LCAweDdiZTdiNmI1KSwgVE9CTigweGI3N2VhZjRjLCAweDM2ZDdhMjdkKX0s
CisgICAgICAgICAge1RPQk4oMHgxNTRjMjc4MSwgMHhmZGE3OGZkMyksIFRPQk4oMHg4NDhhODNi
MCwgMHgyNjRlZWFiZSksCisgICAgICAgICAgIFRPQk4oMHg4MTI4N2VmMCwgMHg0ZmZlMmJjNCks
IFRPQk4oMHg3YjZkODhjNiwgMHhiNmI2ZmMyYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDgwNWZi
OTQ3LCAweGNlNDE3ZDk5KSwgVE9CTigweDRiOTNkY2MzLCAweDhiOTE2Y2M0KSwKKyAgICAgICAg
ICAgVE9CTigweDcyZTY1YmIzLCAweDIxMjczMzIzKSwgVE9CTigweGJjYzFiYWRkLCAweDZlYTk4
ODZlKX0sCisgICAgICAgICAge1RPQk4oMHgwZTIyMzAxMSwgMHg0YmM1ZWU4NSksIFRPQk4oMHhh
NTYxYmU3NCwgMHhjMThlZTFlNCksCisgICAgICAgICAgIFRPQk4oMHg3NjJmZDJkNCwgMHhhNmJj
ZjFmMSksIFRPQk4oMHg1MGU2YTVhNCwgMHg5NTIzMTQ4OSl9fSwKKyAgICAgICAgIHt7VE9CTigw
eGNhOTYwMDFmLCAweGEwMGI1MDBiKSwgVE9CTigweDVjMDk4Y2ZjLCAweDVkN2RjZGY1KSwKKyAg
ICAgICAgICAgVE9CTigweGE2NGUyZDJlLCAweDhjNDQ2YTg1KSwgVE9CTigweGJhZTliY2YxLCAw
eDk3MWYzYzYyKX0sCisgICAgICAgICAge1RPQk4oMHg0ZWMyMjY4MywgMHg4NDM1YTJjNSksIFRP
Qk4oMHg4Y2VhZWQ2YywgMHg0YmFkNDY0MyksCisgICAgICAgICAgIFRPQk4oMHhlOWY4ZmI0Nywg
MHhjY2NjZjRlMyksIFRPQk4oMHhiZDRmM2ZhNCwgMHgxY2UzYjIxZSl9fSwKKyAgICAgICAgIHt7
VE9CTigweGQ3OWZiMTEwLCAweGEzZGIzMjkyKSwgVE9CTigweGUyOGEzN2RhLCAweGI1MzZjNjZh
KSwKKyAgICAgICAgICAgVE9CTigweDI3OWNlODdiLCAweDhlNDllNmE5KSwgVE9CTigweDcwY2Nm
ZThkLCAweGZkY2VjOGUzKX0sCisgICAgICAgICAge1RPQk4oMHgyMTkzZTRlMCwgMHgzYmE0NjRi
MiksIFRPQk4oMHgwZjM5ZDYwZSwgMHhhY2E5YTM5OCksCisgICAgICAgICAgIFRPQk4oMHg3ZDc5
MzJhZiwgMHhmODJjMTJhYiksIFRPQk4oMHhkOGZmNTBlZCwgMHg5MWU3ZTBmNyl9fSwKKyAgICAg
ICAgIHt7VE9CTigweGVhOTYxMDU4LCAweGZhMjhhN2UwKSwgVE9CTigweGM3MjZjZjI1LCAweDBi
ZjVlYzc0KSwKKyAgICAgICAgICAgVE9CTigweGU3NGQ1NWM4LCAweGRiMjI5NjY2KSwgVE9CTigw
eDBiZDlhYmJmLCAweGE1N2Y1Nzk5KX0sCisgICAgICAgICAge1RPQk4oMHg3NDc5ZWYwNywgMHg0
ZGZjNDdiMyksIFRPQk4oMHhkOWM2NWZjMywgMHgwYzUyZjkxZCksCisgICAgICAgICAgIFRPQk4o
MHg4ZTAyODNmZSwgMHgzNmE4YmRlMiksIFRPQk4oMHhhMzJhOGI1ZSwgMHg3ZDRiNzI4MCl9fSwK
KyAgICAgICAgIHt7VE9CTigweDZhNjc3YzYxLCAweDEyZTgzMjMzKSwgVE9CTigweDBmYmIzNTEy
LCAweGRjYzliZjI4KSwKKyAgICAgICAgICAgVE9CTigweDU2MmU4ZWE1LCAweDBkNzgwZjYxKSwg
VE9CTigweDBkYjhiMjJiLCAweDFkYzRlODljKX0sCisgICAgICAgICAge1RPQk4oMHgwYTZmZDFm
YiwgMHg4OWJlMDE0NCksIFRPQk4oMHg4Yzc3ZDI0NiwgMHhjYTU3MTEzYiksCisgICAgICAgICAg
IFRPQk4oMHg0NjM5MDc1ZCwgMHhmZjA5YzkxYyksIFRPQk4oMHg1YjQ3YjE3ZiwgMHg1MDYwODI0
Yyl9fSwKKyAgICAgICAgIHt7VE9CTigweDU4YWVhMmIwLCAweDE2Mjg3YjUyKSwgVE9CTigweGEx
MzQzNTIwLCAweGQwY2Q4ZWIwKSwKKyAgICAgICAgICAgVE9CTigweDYxNDhiNGQwLCAweGM1ZDU4
NTczKSwgVE9CTigweGRkMmI2MTcwLCAweDI5MWM2OGFlKX0sCisgICAgICAgICAge1RPQk4oMHhh
NjFiMzkyOSwgMHgxZGEzYjNiNyksIFRPQk4oMHg1Zjk0NmQ3OSwgMHgwOGM0YWMxMCksCisgICAg
ICAgICAgIFRPQk4oMHg0MTA1ZDRhNSwgMHg3MjE3ZDU4MyksIFRPQk4oMHg1MDYxZGEzZCwgMHgy
NWU2ZGU1ZSl9fSwKKyAgICAgICAgIHt7VE9CTigweDMxMTM5NDBkLCAweGVjMWI0OTkxKSwgVE9C
TigweGYxMjE5NWUxLCAweDM2ZjQ4NWFlKSwKKyAgICAgICAgICAgVE9CTigweGE3NTA3ZmIyLCAw
eDczMWEyZWUwKSwgVE9CTigweDk1MDU3YThlLCAweDZlOWUxOTZlKX0sCisgICAgICAgICAge1RP
Qk4oMHhhM2MyYzkxMSwgMHgyZTEzMDEzNiksIFRPQk4oMHg5N2RmYmIzNiwgMHgzM2M2MGQxNSks
CisgICAgICAgICAgIFRPQk4oMHhjYWYzYzU4MSwgMHhiMzAwZWUyYiksIFRPQk4oMHg3N2YyNWQ5
MCwgMHhmNGJhYzhiOCl9fSwKKyAgICAgICAgIHt7VE9CTigweGRiMWM0Zjk4LCAweDZkODQwY2Q2
KSwgVE9CTigweDQ3MWQ2MmMwLCAweGU2MzQyODhjKSwKKyAgICAgICAgICAgVE9CTigweDhlYzJm
ODVlLCAweGNlYzhhMTYxKSwgVE9CTigweDQxZjM3Y2JjLCAweGZhNmY0YWUyKX0sCisgICAgICAg
ICAge1RPQk4oMHg2NzkzYTIwZiwgMHg0YjcwOTk4NSksIFRPQk4oMHg3YTdiZDMzYiwgMHhlZmE4
OTg1YiksCisgICAgICAgICAgIFRPQk4oMHgyYzZhM2ZiZCwgMHg5MzhlNjQ0NiksIFRPQk4oMHgx
OTA0MjYxOSwgMHgyYThkNDdjMSl9fSwKKyAgICAgICAgIHt7VE9CTigweDE2ODQ4NjY3LCAweGNj
MzY5NzVmKSwgVE9CTigweDAyYWNmMTY4LCAweDlkNWYxZGZiKSwKKyAgICAgICAgICAgVE9CTigw
eDYyZDQxYWQ0LCAweDYxM2JhYTk0KSwgVE9CTigweGI1NmZiYjkyLCAweDlmNjg0NjcwKX0sCisg
ICAgICAgICAge1RPQk4oMHhjZTYxMGQwZCwgMHhlOWU0MDU2OSksIFRPQk4oMHg3Yjk5YzY1Ziwg
MHgzNTQ4OWZlZiksCisgICAgICAgICAgIFRPQk4oMHgwYzg4YWQxYiwgMHgzZGYxOGI5NyksIFRP
Qk4oMHg4MWI3ZDliZSwgMHg1ZDBlOWVkYil9fSwKKyAgICAgICAgIHt7VE9CTigweGQ4NTIxOGMw
LCAweGM3MTZjYzBhKSwgVE9CTigweGY0YjVmZjkwLCAweDg1NjkxYzQ5KSwKKyAgICAgICAgICAg
VE9CTigweGE0ZmQ2NjZiLCAweGNlMzU2YWM2KSwgVE9CTigweDE3YzcyODk1LCAweDRiMzI3YTdh
KX0sCisgICAgICAgICAge1RPQk4oMHhmOTNkNTA4NSwgMHhkYTZiZTdkZSksIFRPQk4oMHhmZjcx
NTMwZSwgMHgzMzAxZDM0ZSksCisgICAgICAgICAgIFRPQk4oMHg0Y2Q5NjQ0MiwgMHhkOGY0NDhl
OCksIFRPQk4oMHg5MjgzZDMzMSwgMHgyZWQxOGZmYSl9fSwKKyAgICAgICAgIHt7VE9CTigweDRk
MzNkZDk5LCAweDJhODQ5ODcwKSwgVE9CTigweGE3MTY5NjRiLCAweDQxNTc2MzM1KSwKKyAgICAg
ICAgICAgVE9CTigweGZmNWUzYTliLCAweDE3OWJlMGU1KSwgVE9CTigweDViOWQ2YjFiLCAweDgz
YjEzNjMyKX0sCisgICAgICAgICAge1RPQk4oMHgzYjhiZDdkNCwgMHhhNTJmMzEzYiksIFRPQk4o
MHhjOWRkOTVhMCwgMHg2MzdhNDY2MCksCisgICAgICAgICAgIFRPQk4oMHgzMDAzNTk2MiwgMHgw
YjNlMjE4ZiksIFRPQk4oMHhjZTE0ODFhMywgMHhjN2IyOGEzYyl9fSwKKyAgICAgICAgIHt7VE9C
TigweGFiNDFiNDNhLCAweDQzMjI4ZDgzKSwgVE9CTigweDI0YWUxYzMwLCAweDRhZDYzZjk5KSwK
KyAgICAgICAgICAgVE9CTigweDhlNTI1ZjFhLCAweDQ2YTUxMjI5KSwgVE9CTigweDE0YWY4NjBm
LCAweGNkMjZkMmI0KX0sCisgICAgICAgICAge1RPQk4oMHhkNmJhZWY2MSwgMHgzZjcxNGFhMSks
IFRPQk4oMHhmNTE4NjVhZCwgMHhlYjc4Nzk1ZSksCisgICAgICAgICAgIFRPQk4oMHhkM2UyMWZj
ZSwgMHhlNmE5ZDY5NCksIFRPQk4oMHg4MmNlYjFkZCwgMHg4YTM3YjUyNyl9fX19OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYteDg2XzY0LmMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjQuYwppbmRleCBiMzQyMjE0OWI4ZDllYWQ2NmE1Y2Nk
MGE1ZTAyODM3Y2UwNjZhMzAxLi5iNGFmNTQ0NjU3NmU4NzZjODVkYTcxYTQ5YTVkNjI0MTFiNGFl
NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjQuYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjQuYwpAQCAtNDgsNyArNDgs
OCBAQCBzdGF0aWMgY29uc3QgQk5fVUxPTkcgT05FW1AyNTZfTElNQlNdID0gewogLy8gUHJlY29t
cHV0ZWQgdGFibGVzIGZvciB0aGUgZGVmYXVsdCBnZW5lcmF0b3IKICNpbmNsdWRlICJwMjU2LXg4
Nl82NC10YWJsZS5oIgogCi0vLyBSZWNvZGUgd2luZG93IHRvIGEgc2lnbmVkIGRpZ2l0LCBzZWUg
dXRpbC02NC5jIGZvciBkZXRhaWxzCisvLyBSZWNvZGUgd2luZG93IHRvIGEgc2lnbmVkIGRpZ2l0
LCBzZWUgfGVjX0dGcF9uaXN0cF9yZWNvZGVfc2NhbGFyX2JpdHN8IGluCisvLyB1dGlsLmMgZm9y
IGRldGFpbHMKIHN0YXRpYyB1bnNpZ25lZCBib290aF9yZWNvZGVfdzUodW5zaWduZWQgaW4pIHsK
ICAgdW5zaWduZWQgcywgZDsKIApAQCAtMzE2LDczICszMTcsNTcgQEAgc3RhdGljIHVuc2lnbmVk
IGNhbGNfd3ZhbHVlKHVuc2lnbmVkICppbmRleCwgY29uc3QgdWludDhfdCBwX3N0clszM10pIHsK
ICAgcmV0dXJuIGJvb3RoX3JlY29kZV93Nyh3dmFsdWUpOwogfQogCi1zdGF0aWMgdm9pZCBtdWxf
cF9hZGRfYW5kX3N0b3JlKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfUkFXX1BPSU5UICpyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19TQ0FMQVIgKmdfc2NhbGFy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19SQVdfUE9JTlQgKnBf
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19TQ0FMQVIgKnBfc2Nh
bGFyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMjU2X3BvaW50X3VuaW9uX3Qg
KnQsIHAyNTZfcG9pbnRfdW5pb25fdCAqcCkgewotICBjb25zdCBpbnQgcF9pc19pbmZpbml0eSA9
IGdfc2NhbGFyID09IE5VTEw7Ci0gIGlmIChwX3NjYWxhciAhPSBOVUxMKSB7Ci0gICAgUDI1Nl9Q
T0lOVCAqb3V0ID0gJnQtPnA7Ci0gICAgaWYgKHBfaXNfaW5maW5pdHkpIHsKLSAgICAgIG91dCA9
ICZwLT5wOwotICAgIH0KLQotICAgIGVjcF9uaXN0ejI1Nl93aW5kb3dlZF9tdWwoZ3JvdXAsIG91
dCwgcF8sIHBfc2NhbGFyKTsKLSAgICBpZiAoIXBfaXNfaW5maW5pdHkpIHsKLSAgICAgIGVjcF9u
aXN0ejI1Nl9wb2ludF9hZGQoJnAtPnAsICZwLT5wLCBvdXQpOwotICAgIH0KLSAgfQorc3RhdGlj
IHZvaWQgZWNwX25pc3R6MjU2X3BvaW50X211bChjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1JB
V19QT0lOVCAqciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRUNf
UkFXX1BPSU5UICpwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBF
Q19TQ0FMQVIgKnNjYWxhcikgeworICBhbGlnbmFzKDMyKSBQMjU2X1BPSU5UIG91dDsKKyAgZWNw
X25pc3R6MjU2X3dpbmRvd2VkX211bChncm91cCwgJm91dCwgcCwgc2NhbGFyKTsKIAogICBhc3Nl
cnQoZ3JvdXAtPmZpZWxkLndpZHRoID09IFAyNTZfTElNQlMpOwotICBPUEVOU1NMX21lbWNweShy
LT5YLndvcmRzLCBwLT5wLlgsIFAyNTZfTElNQlMgKiBzaXplb2YoQk5fVUxPTkcpKTsKLSAgT1BF
TlNTTF9tZW1jcHkoci0+WS53b3JkcywgcC0+cC5ZLCBQMjU2X0xJTUJTICogc2l6ZW9mKEJOX1VM
T05HKSk7Ci0gIE9QRU5TU0xfbWVtY3B5KHItPloud29yZHMsIHAtPnAuWiwgUDI1Nl9MSU1CUyAq
IHNpemVvZihCTl9VTE9ORykpOworICBPUEVOU1NMX21lbWNweShyLT5YLndvcmRzLCBvdXQuWCwg
UDI1Nl9MSU1CUyAqIHNpemVvZihCTl9VTE9ORykpOworICBPUEVOU1NMX21lbWNweShyLT5ZLndv
cmRzLCBvdXQuWSwgUDI1Nl9MSU1CUyAqIHNpemVvZihCTl9VTE9ORykpOworICBPUEVOU1NMX21l
bWNweShyLT5aLndvcmRzLCBvdXQuWiwgUDI1Nl9MSU1CUyAqIHNpemVvZihCTl9VTE9ORykpOwog
fQogCi1zdGF0aWMgdm9pZCBlY3BfbmlzdHoyNTZfcG9pbnRzX211bChjb25zdCBFQ19HUk9VUCAq
Z3JvdXAsIEVDX1JBV19QT0lOVCAqciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEVDX1NDQUxBUiAqZ19zY2FsYXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBFQ19SQVdfUE9JTlQgKnBfLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgRUNfU0NBTEFSICpwX3NjYWxhcikgewotICBhc3NlcnQoKHBf
ICE9IE5VTEwpID09IChwX3NjYWxhciAhPSBOVUxMKSk7Ci0KK3N0YXRpYyB2b2lkIGVjcF9uaXN0
ejI1Nl9wb2ludF9tdWxfYmFzZShjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1JBV19QT0lOVCAq
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19TQ0FM
QVIgKnNjYWxhcikgewogICBhbGlnbmFzKDMyKSBwMjU2X3BvaW50X3VuaW9uX3QgdCwgcDsKIAot
ICBpZiAoZ19zY2FsYXIgIT0gTlVMTCkgewotICAgIHVpbnQ4X3QgcF9zdHJbMzNdOwotICAgIE9Q
RU5TU0xfbWVtY3B5KHBfc3RyLCBnX3NjYWxhci0+Ynl0ZXMsIDMyKTsKLSAgICBwX3N0clszMl0g
PSAwOwotCi0gICAgLy8gRmlyc3Qgd2luZG93Ci0gICAgdW5zaWduZWQgaW5kZXggPSAwOwotICAg
IHVuc2lnbmVkIHd2YWx1ZSA9IGNhbGNfZmlyc3Rfd3ZhbHVlKCZpbmRleCwgcF9zdHIpOworICB1
aW50OF90IHBfc3RyWzMzXTsKKyAgT1BFTlNTTF9tZW1jcHkocF9zdHIsIHNjYWxhci0+Ynl0ZXMs
IDMyKTsKKyAgcF9zdHJbMzJdID0gMDsKIAotICAgIGNvbnN0IFBSRUNPTVAyNTZfUk9XICpjb25z
dCBwcmVjb21wdXRlZF90YWJsZSA9Ci0gICAgICAgIChjb25zdCBQUkVDT01QMjU2X1JPVyAqKWVj
cF9uaXN0ejI1Nl9wcmVjb21wdXRlZDsKLSAgICBlY3BfbmlzdHoyNTZfc2VsZWN0X3c3KCZwLmEs
IHByZWNvbXB1dGVkX3RhYmxlWzBdLCB3dmFsdWUgPj4gMSk7CisgIC8vIEZpcnN0IHdpbmRvdwor
ICB1bnNpZ25lZCBpbmRleCA9IDA7CisgIHVuc2lnbmVkIHd2YWx1ZSA9IGNhbGNfZmlyc3Rfd3Zh
bHVlKCZpbmRleCwgcF9zdHIpOwogCi0gICAgZWNwX25pc3R6MjU2X25lZyhwLnAuWiwgcC5wLlkp
OwotICAgIGNvcHlfY29uZGl0aW9uYWwocC5wLlksIHAucC5aLCB3dmFsdWUgJiAxKTsKKyAgZWNw
X25pc3R6MjU2X3NlbGVjdF93NygmcC5hLCBlY3BfbmlzdHoyNTZfcHJlY29tcHV0ZWRbMF0sIHd2
YWx1ZSA+PiAxKTsKKyAgZWNwX25pc3R6MjU2X25lZyhwLnAuWiwgcC5wLlkpOworICBjb3B5X2Nv
bmRpdGlvbmFsKHAucC5ZLCBwLnAuWiwgd3ZhbHVlICYgMSk7CiAKLSAgICAvLyBDb252ZXJ0IHxw
fCBmcm9tIGFmZmluZSB0byBKYWNvYmlhbiBjb29yZGluYXRlcy4gV2Ugc2V0IFogdG8gemVybyBp
ZiB8cHwKLSAgICAvLyBpcyBpbmZpbml0eSBhbmQgfE9ORXwgb3RoZXJ3aXNlLiB8cHwgd2FzIGNv
bXB1dGVkIGZyb20gdGhlIHRhYmxlLCBzbyBpdAotICAgIC8vIGlzIGluZmluaXR5IGlmZiB8d3Zh
bHVlID4+IDF8IGlzIHplcm8uCi0gICAgT1BFTlNTTF9tZW1zZXQocC5wLlosIDAsIHNpemVvZihw
LnAuWikpOwotICAgIGNvcHlfY29uZGl0aW9uYWwocC5wLlosIE9ORSwgaXNfbm90X3plcm8od3Zh
bHVlID4+IDEpKTsKKyAgLy8gQ29udmVydCB8cHwgZnJvbSBhZmZpbmUgdG8gSmFjb2JpYW4gY29v
cmRpbmF0ZXMuIFdlIHNldCBaIHRvIHplcm8gaWYgfHB8CisgIC8vIGlzIGluZmluaXR5IGFuZCB8
T05FfCBvdGhlcndpc2UuIHxwfCB3YXMgY29tcHV0ZWQgZnJvbSB0aGUgdGFibGUsIHNvIGl0Cisg
IC8vIGlzIGluZmluaXR5IGlmZiB8d3ZhbHVlID4+IDF8IGlzIHplcm8uCisgIE9QRU5TU0xfbWVt
c2V0KHAucC5aLCAwLCBzaXplb2YocC5wLlopKTsKKyAgY29weV9jb25kaXRpb25hbChwLnAuWiwg
T05FLCBpc19ub3RfemVybyh3dmFsdWUgPj4gMSkpOwogCi0gICAgZm9yIChpbnQgaSA9IDE7IGkg
PCAzNzsgaSsrKSB7Ci0gICAgICB3dmFsdWUgPSBjYWxjX3d2YWx1ZSgmaW5kZXgsIHBfc3RyKTsK
KyAgZm9yIChpbnQgaSA9IDE7IGkgPCAzNzsgaSsrKSB7CisgICAgd3ZhbHVlID0gY2FsY193dmFs
dWUoJmluZGV4LCBwX3N0cik7CiAKLSAgICAgIGVjcF9uaXN0ejI1Nl9zZWxlY3RfdzcoJnQuYSwg
cHJlY29tcHV0ZWRfdGFibGVbaV0sIHd2YWx1ZSA+PiAxKTsKKyAgICBlY3BfbmlzdHoyNTZfc2Vs
ZWN0X3c3KCZ0LmEsIGVjcF9uaXN0ejI1Nl9wcmVjb21wdXRlZFtpXSwgd3ZhbHVlID4+IDEpOwog
Ci0gICAgICBlY3BfbmlzdHoyNTZfbmVnKHQucC5aLCB0LmEuWSk7Ci0gICAgICBjb3B5X2NvbmRp
dGlvbmFsKHQuYS5ZLCB0LnAuWiwgd3ZhbHVlICYgMSk7CisgICAgZWNwX25pc3R6MjU2X25lZyh0
LnAuWiwgdC5hLlkpOworICAgIGNvcHlfY29uZGl0aW9uYWwodC5hLlksIHQucC5aLCB3dmFsdWUg
JiAxKTsKIAotICAgICAgZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmUoJnAucCwgJnAucCwg
JnQuYSk7Ci0gICAgfQorICAgIC8vIE5vdGUgfGVjcF9uaXN0ejI1Nl9wb2ludF9hZGRfYWZmaW5l
fCBkb2VzIG5vdCB3b3JrIGlmIHxwLnB8IGFuZCB8dC5hfAorICAgIC8vIGFyZSB0aGUgc2FtZSBu
b24taW5maW5pdHkgcG9pbnQuCisgICAgZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmUoJnAu
cCwgJnAucCwgJnQuYSk7CiAgIH0KIAotICBtdWxfcF9hZGRfYW5kX3N0b3JlKGdyb3VwLCByLCBn
X3NjYWxhciwgcF8sIHBfc2NhbGFyLCAmdCwgJnApOworICBhc3NlcnQoZ3JvdXAtPmZpZWxkLndp
ZHRoID09IFAyNTZfTElNQlMpOworICBPUEVOU1NMX21lbWNweShyLT5YLndvcmRzLCBwLnAuWCwg
UDI1Nl9MSU1CUyAqIHNpemVvZihCTl9VTE9ORykpOworICBPUEVOU1NMX21lbWNweShyLT5ZLndv
cmRzLCBwLnAuWSwgUDI1Nl9MSU1CUyAqIHNpemVvZihCTl9VTE9ORykpOworICBPUEVOU1NMX21l
bWNweShyLT5aLndvcmRzLCBwLnAuWiwgUDI1Nl9MSU1CUyAqIHNpemVvZihCTl9VTE9ORykpOwog
fQogCiBzdGF0aWMgdm9pZCBlY3BfbmlzdHoyNTZfcG9pbnRzX211bF9wdWJsaWMoY29uc3QgRUNf
R1JPVVAgKmdyb3VwLApAQCAtNDAxLDE0ICszODYsMTIgQEAgc3RhdGljIHZvaWQgZWNwX25pc3R6
MjU2X3BvaW50c19tdWxfcHVibGljKGNvbnN0IEVDX0dST1VQICpncm91cCwKICAgdW5zaWduZWQg
aW5kZXggPSAwOwogICB1bnNpZ25lZCB3dmFsdWUgPSBjYWxjX2ZpcnN0X3d2YWx1ZSgmaW5kZXgs
IHBfc3RyKTsKIAotICBjb25zdCBQUkVDT01QMjU2X1JPVyAqY29uc3QgcHJlY29tcHV0ZWRfdGFi
bGUgPQotICAgICAgKGNvbnN0IFBSRUNPTVAyNTZfUk9XICopZWNwX25pc3R6MjU2X3ByZWNvbXB1
dGVkOwotCiAgIC8vIENvbnZlcnQgfHB8IGZyb20gYWZmaW5lIHRvIEphY29iaWFuIGNvb3JkaW5h
dGVzLiBXZSBzZXQgWiB0byB6ZXJvIGlmIHxwfAogICAvLyBpcyBpbmZpbml0eSBhbmQgfE9ORXwg
b3RoZXJ3aXNlLiB8cHwgd2FzIGNvbXB1dGVkIGZyb20gdGhlIHRhYmxlLCBzbyBpdAogICAvLyBp
cyBpbmZpbml0eSBpZmYgfHd2YWx1ZSA+PiAxfCBpcyB6ZXJvLgogICBpZiAoKHd2YWx1ZSA+PiAx
KSAhPSAwKSB7Ci0gICAgT1BFTlNTTF9tZW1jcHkoJnAuYSwgJnByZWNvbXB1dGVkX3RhYmxlWzBd
Wyh3dmFsdWUgPj4gMSkgLSAxXSwgc2l6ZW9mKHAuYSkpOworICAgIE9QRU5TU0xfbWVtY3B5KCZw
LmEsICZlY3BfbmlzdHoyNTZfcHJlY29tcHV0ZWRbMF1bKHd2YWx1ZSA+PiAxKSAtIDFdLAorICAg
ICAgICAgICAgICAgICAgIHNpemVvZihwLmEpKTsKICAgICBPUEVOU1NMX21lbWNweSgmcC5wLlos
IE9ORSwgc2l6ZW9mKHAucC5aKSk7CiAgIH0gZWxzZSB7CiAgICAgT1BFTlNTTF9tZW1zZXQoJnAu
YSwgMCwgc2l6ZW9mKHAuYSkpOwpAQCAtNDI2LDE2ICs0MDksMjYgQEAgc3RhdGljIHZvaWQgZWNw
X25pc3R6MjU2X3BvaW50c19tdWxfcHVibGljKGNvbnN0IEVDX0dST1VQICpncm91cCwKICAgICAg
IGNvbnRpbnVlOwogICAgIH0KIAotICAgIE9QRU5TU0xfbWVtY3B5KCZ0LmEsICZwcmVjb21wdXRl
ZF90YWJsZVtpXVsod3ZhbHVlID4+IDEpIC0gMV0sIHNpemVvZihwLmEpKTsKKyAgICBPUEVOU1NM
X21lbWNweSgmdC5hLCAmZWNwX25pc3R6MjU2X3ByZWNvbXB1dGVkW2ldWyh3dmFsdWUgPj4gMSkg
LSAxXSwKKyAgICAgICAgICAgICAgICAgICBzaXplb2YocC5hKSk7CiAKICAgICBpZiAoKHd2YWx1
ZSAmIDEpID09IDEpIHsKICAgICAgIGVjcF9uaXN0ejI1Nl9uZWcodC5hLlksIHQuYS5ZKTsKICAg
ICB9CiAKKyAgICAvLyBOb3RlIHxlY3BfbmlzdHoyNTZfcG9pbnRfYWRkX2FmZmluZXwgZG9lcyBu
b3Qgd29yayBpZiB8cC5wfCBhbmQgfHQuYXwKKyAgICAvLyBhcmUgdGhlIHNhbWUgbm9uLWluZmlu
aXR5IHBvaW50LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBjb21wdXRlIHRoZQorICAgIC8v
IHxnX3NjYWxhcnwgdGVybSBiZWZvcmUgdGhlIHxwX3NjYWxhcnwgdGVybS4KICAgICBlY3Bfbmlz
dHoyNTZfcG9pbnRfYWRkX2FmZmluZSgmcC5wLCAmcC5wLCAmdC5hKTsKICAgfQogCi0gIG11bF9w
X2FkZF9hbmRfc3RvcmUoZ3JvdXAsIHIsIGdfc2NhbGFyLCBwXywgcF9zY2FsYXIsICZ0LCAmcCk7
CisgIGVjcF9uaXN0ejI1Nl93aW5kb3dlZF9tdWwoZ3JvdXAsICZ0LnAsIHBfLCBwX3NjYWxhcik7
CisgIGVjcF9uaXN0ejI1Nl9wb2ludF9hZGQoJnAucCwgJnAucCwgJnQucCk7CisKKyAgYXNzZXJ0
KGdyb3VwLT5maWVsZC53aWR0aCA9PSBQMjU2X0xJTUJTKTsKKyAgT1BFTlNTTF9tZW1jcHkoci0+
WC53b3JkcywgcC5wLlgsIFAyNTZfTElNQlMgKiBzaXplb2YoQk5fVUxPTkcpKTsKKyAgT1BFTlNT
TF9tZW1jcHkoci0+WS53b3JkcywgcC5wLlksIFAyNTZfTElNQlMgKiBzaXplb2YoQk5fVUxPTkcp
KTsKKyAgT1BFTlNTTF9tZW1jcHkoci0+Wi53b3JkcywgcC5wLlosIFAyNTZfTElNQlMgKiBzaXpl
b2YoQk5fVUxPTkcpKTsKIH0KIAogc3RhdGljIGludCBlY3BfbmlzdHoyNTZfZ2V0X2FmZmluZShj
b25zdCBFQ19HUk9VUCAqZ3JvdXAsCkBAIC01ODEsNyArNTc0LDcgQEAgc3RhdGljIHZvaWQgZWNw
X25pc3R6MjU2X2ludl9tb2Rfb3JkKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfU0NBTEFSICpv
dXQsCiBzdGF0aWMgaW50IGVjcF9uaXN0ejI1Nl9tb250X2ludl9tb2Rfb3JkX3ZhcnRpbWUoY29u
c3QgRUNfR1JPVVAgKmdyb3VwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVDX1NDQUxBUiAqb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqaW4pIHsKLSAgaWYgKChPUEVO
U1NMX2lhMzJjYXBfUFsxXSAmICgxIDw8IDI4KSkgPT0gMCkgeworICBpZiAoKE9QRU5TU0xfaWEz
MmNhcF9nZXQoKVsxXSAmICgxIDw8IDI4KSkgPT0gMCkgewogICAgIC8vIE5vIEFWWCBzdXBwb3J0
OyBmYWxsYmFjayB0byBnZW5lcmljIGNvZGUuCiAgICAgcmV0dXJuIGVjX0dGcF9zaW1wbGVfbW9u
dF9pbnZfbW9kX29yZF92YXJ0aW1lKGdyb3VwLCBvdXQsIGluKTsKICAgfQpAQCAtNjQyLDcgKzYz
NSw4IEBAIERFRklORV9NRVRIT0RfRlVOQ1RJT04oRUNfTUVUSE9ELCBFQ19HRnBfbmlzdHoyNTZf
bWV0aG9kKSB7CiAgIG91dC0+cG9pbnRfZ2V0X2FmZmluZV9jb29yZGluYXRlcyA9IGVjcF9uaXN0
ejI1Nl9nZXRfYWZmaW5lOwogICBvdXQtPmFkZCA9IGVjcF9uaXN0ejI1Nl9hZGQ7CiAgIG91dC0+
ZGJsID0gZWNwX25pc3R6MjU2X2RibDsKLSAgb3V0LT5tdWwgPSBlY3BfbmlzdHoyNTZfcG9pbnRz
X211bDsKKyAgb3V0LT5tdWwgPSBlY3BfbmlzdHoyNTZfcG9pbnRfbXVsOworICBvdXQtPm11bF9i
YXNlID0gZWNwX25pc3R6MjU2X3BvaW50X211bF9iYXNlOwogICBvdXQtPm11bF9wdWJsaWMgPSBl
Y3BfbmlzdHoyNTZfcG9pbnRzX211bF9wdWJsaWM7CiAgIG91dC0+ZmVsZW1fbXVsID0gZWNfR0Zw
X21vbnRfZmVsZW1fbXVsOwogICBvdXQtPmZlbGVtX3NxciA9IGVjX0dGcF9tb250X2ZlbGVtX3Nx
cjsKQEAgLTY1MSw3ICs2NDUsNyBAQCBERUZJTkVfTUVUSE9EX0ZVTkNUSU9OKEVDX01FVEhPRCwg
RUNfR0ZwX25pc3R6MjU2X21ldGhvZCkgewogICBvdXQtPnNjYWxhcl9pbnZfbW9udGdvbWVyeSA9
IGVjcF9uaXN0ejI1Nl9pbnZfbW9kX29yZDsKICAgb3V0LT5zY2FsYXJfaW52X21vbnRnb21lcnlf
dmFydGltZSA9IGVjcF9uaXN0ejI1Nl9tb250X2ludl9tb2Rfb3JkX3ZhcnRpbWU7CiAgIG91dC0+
Y21wX3hfY29vcmRpbmF0ZSA9IGVjcF9uaXN0ejI1Nl9jbXBfeF9jb29yZGluYXRlOwotfTsKK30K
IAogI2VuZGlmIC8qICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiBkZWZpbmVkKE9QRU5TU0xf
WDg2XzY0KSAmJiBcCiAgICAgICAgICAgIWRlZmluZWQoT1BFTlNTTF9TTUFMTCkgKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9wMjU2LXg4Nl82NC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL2VjL3AyNTYteDg2XzY0LmgKaW5kZXggOWRlMzI0MDZlMDEwMjMyYmJjZWZi
OTY5NjA5ZTY0M2NmMmU4ZmE2NC4uNWRlYjgxYTNmZWM5NGUyZTlhZDE3NThjNTdkMmNhYTlmOTkz
NTllOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYteDg2XzY0LmgK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYteDg2XzY0LmgKQEAgLTIzLDYgKzIz
LDggQEAKIAogI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KIAorI2luY2x1ZGUgIi4uL2JuL2ludGVy
bmFsLmgiCisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogZXh0ZXJuICJDIiB7CiAjZW5kaWYK
QEAgLTg3LDcgKzg5LDcgQEAgdm9pZCBlY3BfbmlzdHoyNTZfb3JkX211bF9tb250KEJOX1VMT05H
IHJlc1tQMjU2X0xJTUJTXSwKIC8vIG91dHB1dHMgYXJlIGluIE1vbnRnb21lcnkgZm9ybS4gVGhh
dCBpcywgfHJlc3wgaXMKIC8vICh8YXwgKiAyXi0yNTYpXigyKnxyZXB8KSAqIDJeMjU2IG1vZCBO
Lgogdm9pZCBlY3BfbmlzdHoyNTZfb3JkX3Nxcl9tb250KEJOX1VMT05HIHJlc1tQMjU2X0xJTUJT
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCTl9VTE9ORyBhW1AyNTZf
TElNQlNdLCBpbnQgcmVwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBC
Tl9VTE9ORyBhW1AyNTZfTElNQlNdLCBCTl9VTE9ORyByZXApOwogCiAvLyBiZWV1X21vZF9pbnZl
cnNlX3ZhcnRpbWUgc2V0cyBvdXQgPSBhXi0xIG1vZCBwIHVzaW5nIGEgRXVjbGlkZWFuIGFsZ29y
aXRobS4KIC8vIEFzc3VtcHRpb246IDAgPCBhIDwgcCA8IDJeKDI1NikgYW5kIHAgaXMgb2RkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYteDg2XzY0X3Rlc3QuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjRfdGVzdC5jYwppbmRleCA3ZDZk
NjE2NTI1NzZkMGYzNjQ2NGNiYzgzNmEwM2Q0ODEyMjM2NzIyLi5mNjk5ZmM4MDdkNmEyM2VlYThk
M2Q2NDNjNWMwZmJmMmNhZWY0ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUv
ZWMvcDI1Ni14ODZfNjRfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1
Ni14ODZfNjRfdGVzdC5jYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgImludGVybmFsLmgi
CiAjaW5jbHVkZSAiLi4vYm4vaW50ZXJuYWwuaCIKICNpbmNsdWRlICIuLi8uLi9pbnRlcm5hbC5o
IgorI2luY2x1ZGUgIi4uLy4uL3Rlc3QvYWJpX3Rlc3QuaCIKICNpbmNsdWRlICIuLi8uLi90ZXN0
L2ZpbGVfdGVzdC5oIgogI2luY2x1ZGUgIi4uLy4uL3Rlc3QvdGVzdF91dGlsLmgiCiAjaW5jbHVk
ZSAicDI1Ni14ODZfNjQuaCIKQEAgLTYxLDYgKzYyLDExIEBAIFRFU1QoUDI1Nl9YODZfNjRUZXN0
LCBTZWxlY3RXNSkgewogICAgIEVYUEVDVF9FUShCeXRlcyhyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIgKj4oJmV4cGVjdGVkKSwgc2l6ZW9mKGV4cGVjdGVkKSksCiAgICAgICAgICAgICAgIEJ5
dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciAqPigmdmFsKSwgc2l6ZW9mKHZhbCkpKTsK
ICAgfQorCisgIC8vIFRoaXMgaXMgYSBjb25zdGFudC10aW1lIGZ1bmN0aW9uLCBzbyBpdCBpcyBv
bmx5IG5lY2Vzc2FyeSB0byBpbnN0cnVtZW50IG9uZQorICAvLyBpbmRleCBmb3IgQUJJIGNoZWNr
aW5nLgorICBQMjU2X1BPSU5UIHZhbDsKKyAgQ0hFQ0tfQUJJKGVjcF9uaXN0ejI1Nl9zZWxlY3Rf
dzUsICZ2YWwsIHRhYmxlLCA3KTsKIH0KIAogVEVTVChQMjU2X1g4Nl82NFRlc3QsIFNlbGVjdFc3
KSB7CkBAIC04NSw2ICs5MSwxMSBAQCBURVNUKFAyNTZfWDg2XzY0VGVzdCwgU2VsZWN0VzcpIHsK
ICAgICBFWFBFQ1RfRVEoQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyICo+KCZleHBl
Y3RlZCksIHNpemVvZihleHBlY3RlZCkpLAogICAgICAgICAgICAgICBCeXRlcyhyZWludGVycHJl
dF9jYXN0PGNvbnN0IGNoYXIgKj4oJnZhbCksIHNpemVvZih2YWwpKSk7CiAgIH0KKworICAvLyBU
aGlzIGlzIGEgY29uc3RhbnQtdGltZSBmdW5jdGlvbiwgc28gaXQgaXMgb25seSBuZWNlc3Nhcnkg
dG8gaW5zdHJ1bWVudCBvbmUKKyAgLy8gaW5kZXggZm9yIEFCSSBjaGVja2luZy4KKyAgUDI1Nl9Q
T0lOVF9BRkZJTkUgdmFsOworICBDSEVDS19BQkkoZWNwX25pc3R6MjU2X3NlbGVjdF93NywgJnZh
bCwgdGFibGUsIDQyKTsKIH0KIAogVEVTVChQMjU2X1g4Nl82NFRlc3QsIEJFRVUpIHsKQEAgLTEw
NywxMSArMTE4LDE2IEBAIFRFU1QoUDI1Nl9YODZfNjRUZXN0LCBCRUVVKSB7CiAKICAgLy8gVHJ5
aW5nIHRvIGZpbmQgdGhlIGludmVyc2Ugb2YgemVybyBzaG91bGQgZmFpbC4KICAgQVNTRVJUX0ZB
TFNFKGJlZXVfbW9kX2ludmVyc2VfdmFydGltZShvdXQsIGluLCBvcmRlcl93b3JkcykpOworICAv
LyBUaGlzIGlzIG5vdCBhIGNvbnN0YW50LXRpbWUgZnVuY3Rpb24sIHNvIGluc3RydW1lbnQgYm90
aCB6ZXJvIGFuZCBhIGZldworICAvLyBpbnB1dHMgYmVsb3cuCisgIEFTU0VSVF9GQUxTRShDSEVD
S19BQkkoYmVldV9tb2RfaW52ZXJzZV92YXJ0aW1lLCBvdXQsIGluLCBvcmRlcl93b3JkcykpOwog
CiAgIC8vIGtPbmVNb250IGlzIDEsIGluIE1vbnRnb21lcnkgZm9ybS4KICAgc3RhdGljIGNvbnN0
IEJOX1VMT05HIGtPbmVNb250W1AyNTZfTElNQlNdID0gewotICAgICAgVE9CTigweGM0NjM1M2Qs
IDB4MDM5Y2RhYWYpLCBUT0JOKDB4NDMxOTA1NTIsIDB4NThlODYxN2IpLAotICAgICAgMCwgMHhm
ZmZmZmZmZiwKKyAgICAgIFRPQk4oMHhjNDYzNTNkLCAweDAzOWNkYWFmKSwKKyAgICAgIFRPQk4o
MHg0MzE5MDU1MiwgMHg1OGU4NjE3YiksCisgICAgICAwLAorICAgICAgMHhmZmZmZmZmZiwKICAg
fTsKIAogICBmb3IgKEJOX1VMT05HIGkgPSAxOyBpIDwgMjAwMDsgaSsrKSB7CkBAIC0xNDIsNiAr
MTU4LDEwIEBAIFRFU1QoUDI1Nl9YODZfNjRUZXN0LCBCRUVVKSB7CiAgICAgLy8gSW52ZXJ0IHRo
ZSByZXN1bHQgYW5kIGV4cGVjdCB0byBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgdmFsdWUuCiAg
ICAgQVNTRVJUX1RSVUUoYmVldV9tb2RfaW52ZXJzZV92YXJ0aW1lKG91dCwgb3V0LCBvcmRlcl93
b3JkcykpOwogICAgIEVYUEVDVF9FUSgwLCBPUEVOU1NMX21lbWNtcChpbiwgb3V0LCBzaXplb2Yo
aW4pKSk7CisKKyAgICBpZiAoaSA8IDUpIHsKKyAgICAgIEVYUEVDVF9UUlVFKENIRUNLX0FCSShi
ZWV1X21vZF9pbnZlcnNlX3ZhcnRpbWUsIG91dCwgaW4sIG9yZGVyX3dvcmRzKSk7CisgICAgfQog
ICB9CiB9CiAKQEAgLTQ4Myw0ICs1MDMsNzUgQEAgVEVTVChQMjU2X1g4Nl82NFRlc3QsIFRlc3RW
ZWN0b3JzKSB7CiAgIH0pOwogfQogCisvLyBJbnN0cnVtZW50IHRoZSBmdW5jdGlvbnMgY292ZXJl
ZCBpbiBUZXN0VmVjdG9ycyBmb3IgQUJJIGNoZWNraW5nLgorVEVTVChQMjU2X1g4Nl82NFRlc3Qs
IEFCSSkgeworICBCTl9VTE9ORyBhW1AyNTZfTElNQlNdLCBiW1AyNTZfTElNQlNdLCBjW1AyNTZf
TElNQlNdOworICBPUEVOU1NMX21lbXNldChhLCAweDAxLCBzaXplb2YoYSkpOworICAvLyBUaGVz
ZSBmdW5jdGlvbnMgYXJlIGFsbCBjb25zdGFudC10aW1lLCBzbyBpdCBpcyBvbmx5IG5lY2Vzc2Fy
eSB0bworICAvLyBpbnN0cnVtZW50IG9uZSBjYWxsIGVhY2ggZm9yIEFCSSBjaGVja2luZy4KKyAg
Q0hFQ0tfQUJJKGVjcF9uaXN0ejI1Nl9uZWcsIGIsIGEpOworICBDSEVDS19BQkkoZWNwX25pc3R6
MjU2X211bF9tb250LCBjLCBhLCBiKTsKKyAgQ0hFQ0tfQUJJKGVjcF9uaXN0ejI1Nl9zcXJfbW9u
dCwgYywgYSk7CisgIENIRUNLX0FCSShlY3BfbmlzdHoyNTZfZnJvbV9tb250LCBjLCBhKTsKKyAg
Q0hFQ0tfQUJJKGVjcF9uaXN0ejI1Nl9vcmRfbXVsX21vbnQsIGMsIGEsIGIpOworCisgIC8vIENo
ZWNrIGEgZmV3IGRpZmZlcmVudCBsb29wIGNvdW50cy4KKyAgQ0hFQ0tfQUJJKGVjcF9uaXN0ejI1
Nl9vcmRfc3FyX21vbnQsIGIsIGEsIDEpOworICBDSEVDS19BQkkoZWNwX25pc3R6MjU2X29yZF9z
cXJfbW9udCwgYiwgYSwgMyk7CisKKyAgLy8gUG9pbnQgYWRkaXRpb24gaGFzIHNvbWUgc3BlY2lh
bCBjYXNlcyBhcm91bmQgaW5maW5pdHkgYW5kIGRvdWJsaW5nLiBUZXN0IGEKKyAgLy8gZmV3IGRp
ZmZlcmVudCBzY2VuYXJpb3MuCisgIHN0YXRpYyBjb25zdCBQMjU2X1BPSU5UIGtBID0geworICAg
ICAge1RPQk4oMHg2MDU1OWFjNywgMHhjOGQwZDg5ZCksIFRPQk4oMHg2Y2RhMzQwMCwgMHg1NDVm
N2UyYyksCisgICAgICAgVE9CTigweDliNTE1OWUwLCAweDMyM2U2MDQ4KSwgVE9CTigweGNiOGRl
YTMzLCAweDI3MDU3ZmU2KX0sCisgICAgICB7VE9CTigweDgxYTJkM2JjLCAweGM5M2EyZDUzKSwg
VE9CTigweDgxZjQwNzYyLCAweGE0ZjMzY2NmKSwKKyAgICAgICBUT0JOKDB4YzNjMzMwMGEsIDB4
YThhZDUwZWEpLCBUT0JOKDB4NTUzZGU4OWIsIDB4MzE3MTk4MzApfSwKKyAgICAgIHtUT0JOKDB4
M2ZkOTQ3MGYsIDB4YjI3N2QxODEpLCBUT0JOKDB4YzE5MWI4ZDUsIDB4NjM3NmYyMDYpLAorICAg
ICAgIFRPQk4oMHhiMjU3MmMxZiwgMHg0NWVkYTI2ZiksIFRPQk4oMHg0NTg5ZTQwZCwgMHhmMmVm
YzU0Nil9LAorICB9OworICBzdGF0aWMgY29uc3QgUDI1Nl9QT0lOVCBrQiA9IHsKKyAgICAgIHtU
T0JOKDB4M2NmMGIwYWEsIDB4OTIwNTQzNDEpLCBUT0JOKDB4Yjk0OWJiODAsIDB4ZGFiNTc4MDcp
LAorICAgICAgIFRPQk4oMHg5OWRlNjgxNCwgMHhlZmQyMWIzZSksIFRPQk4oMHgzMmFkNTY0OSwg
MHg3YzZjNmU4Myl9LAorICAgICAge1RPQk4oMHgwNmFmYWEwMiwgMHg2ODgzOTllMCksIFRPQk4o
MHg3NWYyZDA5NiwgMHgyYTNjZTY1YyksCisgICAgICAgVE9CTigweGY2YTMxZWI3LCAweGNhMDI0
NGIzKSwgVE9CTigweDU3YjMzYjdhLCAweGNmZWVlNzVlKX0sCisgICAgICB7VE9CTigweDc2MTdk
MmUwLCAweGI0ZjFkMzVmKSwgVE9CTigweGE5MjJjYjEwLCAweDdmNTkyYjY1KSwKKyAgICAgICBU
T0JOKDB4MTJmZDZjN2EsIDB4NTFhMmY0NzQpLCBUT0JOKDB4MzM3ZDVlMWUsIDB4YzJmYzcxMWIp
fSwKKyAgfTsKKyAgLy8gVGhpcyBmaWxlIHJlcHJlc2VudHMgSmFjb2JpYW4gaW5maW5pdHkgYXMg
KCosICosIDApLgorICBzdGF0aWMgY29uc3QgUDI1Nl9QT0lOVCBrSW5maW5pdHkgPSB7CisgICAg
ICB7VE9CTigwLCAwKSwgVE9CTigwLCAwKSwgVE9CTigwLCAwKSwgVE9CTigwLCAwKX0sCisgICAg
ICB7VE9CTigwLCAwKSwgVE9CTigwLCAwKSwgVE9CTigwLCAwKSwgVE9CTigwLCAwKX0sCisgICAg
ICB7VE9CTigwLCAwKSwgVE9CTigwLCAwKSwgVE9CTigwLCAwKSwgVE9CTigwLCAwKX0sCisgIH07
CisKKyAgUDI1Nl9QT0lOVCBwOworICBDSEVDS19BQkkoZWNwX25pc3R6MjU2X3BvaW50X2FkZCwg
JnAsICZrQSwgJmtCKTsKKyAgQ0hFQ0tfQUJJKGVjcF9uaXN0ejI1Nl9wb2ludF9hZGQsICZwLCAm
a0EsICZrQSk7CisgIE9QRU5TU0xfbWVtY3B5KCZwLCAma0EsIHNpemVvZihQMjU2X1BPSU5UKSk7
CisgIGVjcF9uaXN0ejI1Nl9uZWcocC5ZLCBwLlkpOworICBDSEVDS19BQkkoZWNwX25pc3R6MjU2
X3BvaW50X2FkZCwgJnAsICZrQSwgJnApOyAgLy8gQSArIC1BCisgIENIRUNLX0FCSShlY3Bfbmlz
dHoyNTZfcG9pbnRfYWRkLCAmcCwgJmtBLCAma0luZmluaXR5KTsKKyAgQ0hFQ0tfQUJJKGVjcF9u
aXN0ejI1Nl9wb2ludF9hZGQsICZwLCAma0luZmluaXR5LCAma0EpOworICBDSEVDS19BQkkoZWNw
X25pc3R6MjU2X3BvaW50X2FkZCwgJnAsICZrSW5maW5pdHksICZrSW5maW5pdHkpOworICBDSEVD
S19BQkkoZWNwX25pc3R6MjU2X3BvaW50X2RvdWJsZSwgJnAsICZrQSk7CisgIENIRUNLX0FCSShl
Y3BfbmlzdHoyNTZfcG9pbnRfZG91YmxlLCAmcCwgJmtJbmZpbml0eSk7CisKKyAgc3RhdGljIGNv
bnN0IFAyNTZfUE9JTlRfQUZGSU5FIGtDID0geworICAgICAge1RPQk4oMHg3ZTNhZDMzOSwgMHhm
YjNmYTVmMCksIFRPQk4oMHg1NTlkNjY5ZCwgMHhlM2EwNDdiMiksCisgICAgICAgVE9CTigweDg4
ODNiMjk4LCAweDcwNDJlNTk1KSwgVE9CTigweGZhYmFkYTY1LCAweDdlNDc3ZjA4KX0sCisgICAg
ICB7VE9CTigweGQ5Y2ZjZWI4LCAweGRhMWMzZTg1KSwgVE9CTigweDgwODYzNzYxLCAweDBjZTZk
NmJjKSwKKyAgICAgICBUT0JOKDB4YTg0MDlkODQsIDB4NjYwMzRmMDIpLCBUT0JOKDB4MDU1MTk5
MjUsIDB4MzFhNjhkNTUpfSwKKyAgfTsKKyAgLy8gVGhpcyBmaWxlIHJlcHJlc2VudHMgYWZmaW5l
IGluZmluaXR5IGFzICgwLCAwKS4KKyAgc3RhdGljIGNvbnN0IFAyNTZfUE9JTlRfQUZGSU5FIGtJ
bmZpbml0eUFmZmluZSA9IHsKKyAgICB7VE9CTigwLCAwKSwgVE9CTigwLCAwKSwgVE9CTigwLCAw
KSwgVE9CTigwLCAwKX0sCisgICAge1RPQk4oMCwgMCksIFRPQk4oMCwgMCksIFRPQk4oMCwgMCks
IFRPQk4oMCwgMCl9LAorICB9OworCisgIENIRUNLX0FCSShlY3BfbmlzdHoyNTZfcG9pbnRfYWRk
X2FmZmluZSwgJnAsICZrQSwgJmtDKTsKKyAgQ0hFQ0tfQUJJKGVjcF9uaXN0ejI1Nl9wb2ludF9h
ZGRfYWZmaW5lLCAmcCwgJmtBLCAma0luZmluaXR5QWZmaW5lKTsKKyAgQ0hFQ0tfQUJJKGVjcF9u
aXN0ejI1Nl9wb2ludF9hZGRfYWZmaW5lLCAmcCwgJmtJbmZpbml0eSwgJmtJbmZpbml0eUFmZmlu
ZSk7CisgIENIRUNLX0FCSShlY3BfbmlzdHoyNTZfcG9pbnRfYWRkX2FmZmluZSwgJnAsICZrSW5m
aW5pdHksICZrQyk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL2VjL3AyNTYteDg2XzY0X3Rlc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9w
MjU2LXg4Nl82NF90ZXN0cy50eHQKaW5kZXggZDFmZGFkMGMyZWUwZmVjYzc0ZGIxMGE0MjliNWFj
Nzg2MTk4MzMwNC4uOGJjMzAxZTg3Njc4N2M1NTVkNjI5MTFiZDZlOWUxN2U1NWZjMzY2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYteDg2XzY0X3Rlc3RzLnR4dAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvcDI1Ni14ODZfNjRfdGVzdHMudHh0CkBAIC0x
MTg2LDggKzExODYsOSBAQCBSZXN1bHQgPSA4ZmE5NWQ1N2FhZTJmZmY3OTA0NTY1NDUwMTQ3OGY3
YTM5NGIyN2I4YjU0MTEzYTI1YWM3NDY2MjYwNmY3NjdjCiAKICMgUG9pbnQgYWRkaW5nIHRlc3Rz
LgogIwotIyBUaGUgZm9sbG93aW5nIHRlc3RzIHNhdGlzZnkgUmVzdWx0ID0gQSArIEIsIHdoZXJl
IFJlc3VsdCBpcyBpbiBhZmZpbmUKLSMgY29vcmRpbmF0ZXMgYW5kIEEgYW5kIEIgYXJlIGluIEph
Y29iaWFuIGNvb3JkaW5hdGVzIGluIHRoZSBNb250Z29tZXJ5IGRvbWFpbi4KKyMgVGhlIGZvbGxv
d2luZyB0ZXN0cyBzYXRpc2Z5IFJlc3VsdCA9IEEgKyBCLiBSZXN1bHQgaXMgaW4gYWZmaW5lIGNv
b3JkaW5hdGVzLAorIyB3aXRoIGluZmluaXR5IHJlcHJlc2VudGVkIGFzICgwLCAwKS4gQSBhbmQg
QiBhcmUgaW4gSmFjb2JpYW4gY29vcmRpbmF0ZXMuIEFsbAorIyBmaWVsZCBlbGVtZW50cyBhcmUg
ZnVsbHkgcmVkdWNlZCBhbmQgaW4gdGhlIE1vbnRnb21lcnkgZG9tYWluLgogCiAjIOKIniArIOKI
niA9IOKIni4KIFRlc3QgPSBQb2ludEFkZApAQCAtMTIwMiwxMSArMTIwMywxMSBAQCBSZXN1bHQu
WSA9IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKIAogIyDiiJ4gKyDiiJ4gPSDiiJ4sIHdpdGggYW4gYWx0ZXJuYXRlIHJlcHJl
c2VudGF0aW9uIG9mIOKIni4KIFRlc3QgPSBQb2ludEFkZAotQS5YID0gMmIxMWNiOTQ1YzhjZjE1
MmZmYTRjOWMyYjFjOTY1YjAxOWIzNWQwYjc2MjY5MTllZjBhZTZjYjlkMjMyZjhhZgotQS5ZID0g
NmQzMzNkYTQyZTMwZjcwMTEyNDViNjI4MTAxNWRlZDE0ZTBmMTAwOTY4ZTc1OGExYjZjM2MwODNh
ZmMxNGVhMAorQS5YID0gMzNjMGQ2MjI0OTU3YjQwNDAzMzY2YmNmNjM4ZjI5OTI4YzJiOWJjYzc0
YTBiYWM1ODgwOGIwMjA0MDc4MTQyMAorQS5ZID0gZjk2OThkNDg4ZmQ1MTczMDZhNjZhMzk3ZTky
NTQyZDQzNWE3ZWU1NGU5NzhjMmI0NzgyZGEzOGZjZjYxM2M2ZQogQS5aID0gMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotQi5Y
ID0gMmIxMWNiOTQ1YzhjZjE1MmZmYTRjOWMyYjFjOTY1YjAxOWIzNWQwYjc2MjY5MTllZjBhZTZj
YjlkMjMyZjhhZgotQi5ZID0gNmQzMzNkYTQyZTMwZjcwMTEyNDViNjI4MTAxNWRlZDE0ZTBmMTAw
OTY4ZTc1OGExYjZjM2MwODNhZmMxNGVhMAorQi5YID0gNWRkMDhlMzIwNmE2NTFjZjIzMjBkYzk4
YTNhMTczYmFlZjA3ZmJkMDRiZGM2ZWVlMmQ3OWRkYjEzYzYzYWMyZQorQi5ZID0gMjI3MGZkMWQ1
ZGRlNTJlYzhmMWU1MzgxNmMyYTBmY2M5ODM2ZDk5MDg5NDEwNjg5NGQ4Zjk5ZTg5ZWRiYzMzNQog
Qi5aID0gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAogUmVzdWx0LlggPSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiBSZXN1bHQuWSA9IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKQEAg
LTEyMjcsOCArMTIyOCw4IEBAIFRlc3QgPSBQb2ludEFkZAogQS5YID0gMTg5MDVmNzZhNTM3NTVj
Njc5ZmI3MzJiNzc2MjI1MTA3NWJhOTVmYzVmZWRiNjAxNzllNzMwZDQxOGE5MTQzYwogQS5ZID0g
ODU3MWZmMTgyNTg4NWQ4NWQyZTg4Njg4ZGQyMWYzMjU4YjRhYjhlNGJhMTllNDVjZGRmMjUzNTdj
ZTk1NTYwYQogQS5aID0gMDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMQotQi5YID0gMmIxMWNiOTQ1YzhjZjE1MmZmYTRjOWMyYjFj
OTY1YjAxOWIzNWQwYjc2MjY5MTllZjBhZTZjYjlkMjMyZjhhZgotQi5ZID0gNmQzMzNkYTQyZTMw
ZjcwMTEyNDViNjI4MTAxNWRlZDE0ZTBmMTAwOTY4ZTc1OGExYjZjM2MwODNhZmMxNGVhMAorQi5Y
ID0gZWRjMjE3MTNjYzNiNTFiOTYzMmIzNzkyNWI1MzY5YTEzYWEzZWFiOTg5ZjJkOWE3MjAxNTRj
MTc4NmVjYTA3NgorQi5ZID0gOGRhNDM1MjVlYjlkZTJhNTZjNWEzZmQ3NDQ3MjU4ZDk2Y2NiNjAz
MzdlNDc0YjgzMGQxZmEzN2MwZGExZGE4ZgogQi5aID0gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogUmVzdWx0LlggPSAxODkw
NWY3NmE1Mzc1NWM2NzlmYjczMmI3NzYyMjUxMDc1YmE5NWZjNWZlZGI2MDE3OWU3MzBkNDE4YTkx
NDNjCiBSZXN1bHQuWSA9IDg1NzFmZjE4MjU4ODVkODVkMmU4ODY4OGRkMjFmMzI1OGI0YWI4ZTRi
YTE5ZTQ1Y2RkZjI1MzU3Y2U5NTU2MGEKQEAgLTEyNDQsMTY1ICsxMjQ1LDE2OSBAQCBCLlogPSAw
MDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAxCiBSZXN1bHQuWCA9IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKIFJlc3VsdC5ZID0gMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogCisjIFRlc3Qg
c29tZSByYW5kb20gSmFjb2JpYW4gc3Vtcy4KIFRlc3QgPSBQb2ludEFkZAotQS5YID0gYmNiYTNl
ZWJmMmIwYWYxMTc0YTRiODc0YjE1NWI0ZGM3NGJkNWZiNTdjNzAyMTQ1NjFhYWFiYjEwNTYzNTU4
MAotQS5ZID0gMWRjMzNjZTc0ZjY1MTMwNWRkODkyNjNjMWQzMTRlZGQyNzczZWY2ZGQwNDM3NDJh
NmY0N2YyOTU0MmI5ZWIwNwotQS5aID0gMDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQotQi5YID0gZjllMGI5OGIxYTg3YjZjNDlj
NGNjNWZjNDdlZmQxNTdlNWYxMmNmNTU0M2Q3MWNmYTM4MTg3YTM3OTNkNjc5MQotQi5ZID0gM2Iy
ZGU5NGRmNDM4NTU0MzgxMDM3YzlmOWQyYzIxOTkxYzY5NzVkODNjMGFjZDQyZWYxYTg0MTlhMDQw
NDM2ZgotQi5aID0gMDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMQotUmVzdWx0LlggPSA2YmQ3YjRlMDZkNzg2MmY3NDk5MDFhMzk4
NDE3ZTk0MTYxOGMxMWM0OGRmZmNjZTcxOWU0MDI2MjIwYjc3NDc3Ci1SZXN1bHQuWSA9IDFlMmZm
ZDcxZThjMjA2YWNjMTkwMzJkMjZhNTNlYTI3NWZlZmVhNTFhMmM5MGU0ZGQzYzhiN2M2YWNjNTFh
YjYKK0EuWCA9IGNiOGRlYTMzMjcwNTdmZTY5YjUxNTllMDMyM2U2MDQ4NmNkYTM0MDA1NDVmN2Uy
YzYwNTU5YWM3YzhkMGQ4OWQKK0EuWSA9IDU1M2RlODliMzE3MTk4MzBjM2MzMzAwYWE4YWQ1MGVh
ODFmNDA3NjJhNGYzM2NjZjgxYTJkM2JjYzkzYTJkNTMKK0EuWiA9IDQ1ODllNDBkZjJlZmM1NDZi
MjU3MmMxZjQ1ZWRhMjZmYzE5MWI4ZDU2Mzc2ZjIwNjNmZDk0NzBmYjI3N2QxODEKK0IuWCA9IDMy
YWQ1NjQ5N2M2YzZlODM5OWRlNjgxNGVmZDIxYjNlYjk0OWJiODBkYWI1NzgwNzNjZjBiMGFhOTIw
NTQzNDEKK0IuWSA9IDU3YjMzYjdhY2ZlZWU3NWVmNmEzMWViN2NhMDI0NGIzNzVmMmQwOTYyYTNj
ZTY1YzA2YWZhYTAyNjg4Mzk5ZTAKK0IuWiA9IDMzN2Q1ZTFlYzJmYzcxMWIxMmZkNmM3YTUxYTJm
NDc0YTkyMmNiMTA3ZjU5MmI2NTc2MTdkMmUwYjRmMWQzNWYKK1Jlc3VsdC5YID0gMTIwYzZkZGQ2
ZjhlYmM3OThjNTc0MDAwNWJhZDVhMjU4NjU3NTIwMmRmOWNjM2RkMDc0MDFmZTg0ZDhjZmRkNAor
UmVzdWx0LlkgPSA5NjZiYzg5MTI2MzQ5Y2U0MTczOGJlNjkxZjMyYzFhMDY4ZTU0YTY1NGFiMmNi
MGVhYzM5ZWYxNWVlMTdmMGRmCiAKIFRlc3QgPSBQb2ludEFkZAotQS5YID0gZDcxYzZkYTEyOWY2
ZTg2N2JmNTI1NTYzZTFkOGJkYmQyZjkwYTliYWM3ZGU4NjdhNmVhMjMxN2E1ZDZjYjUwNwotQS5Z
ID0gMTI1ZTBjYzFiYTBjOTNjYWExOWVkYjQxOWE3NjRmODhkOTU1Mjg5YzRjNmU3N2QwMmQ5MGU0
ZTMxZDQ3YzlhMgotQS5aID0gMDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm
ZjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQotQi5YID0gMzM0YzIyMDBlYzA4ODk2ODA4YWIxMmE3
NjgyMGZmNjc0ZmNkY2NmZjZkODVhZmEyZTU4NmIzMWZjOTQ0ZGUzMwotQi5ZID0gYjVlZThjZmEy
NTg5NmQ0MDc1NTg4YzYwOTI2YTI1ODJhMDk5YzdhNWFjYmNmZWM3OGZiYTQ1N2M0ODg2MzAxYwot
Qi5aID0gMDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMQotUmVzdWx0LlggPSA5M2U5ZDRlNmY3NzM2ZjgwZGExYjAwZDIyMTAyNGNj
ZmQxN2YyOTI3ZDZiNTA1YTViY2VmZTA4MDFmZTZmMGE5Ci1SZXN1bHQuWSA9IDQ4MjRlZWIyZDVk
YTI3ZDU3ZTFkNTBjMmRhZTAwMGFjZGNkZGNiYWY1MzRkOGI3ZTdkOTc4NTRlZDNkYzkzOWUKK0Eu
WCA9IGE4NThiNTI0OTAyNmNjYzRkMjVmYmQ4NWRiMTc4MjZhZmEzYzU5NjNjMjY4MTVjYmY4NTEx
ZDg0ZGNlNjJhMjUKK0EuWSA9IGJkNzUzZTEyNTU3OTM4OGRhOTY4MDM2ZDUwMDY3ZmUwZThlY2Ni
NTMxYzRkNmYxYTY5YzYxYmM4MjU5YzZkNzYKK0EuWiA9IDgyZjljZGQ5YWJmOTkxYWMyN2YwY2Fh
NDk0YjdiN2IyODUxY2M2NTkxYzYzNjJlZjAyZDFiZDJjMzNmZDExNmMKK0IuWCA9IDNlNTc5MGZk
N2ZmMjhhMzc2NTg2YzhlZjU2MjViOTA2ZjJkNWQ3ZTY2NTYxOTFmNWE1MzAxNTRlZWNkNGM5ODgK
K0IuWSA9IDZlNmM5MTAxMWNjNTk5NmE3ZGI0ZTU1MzllZWU2MzVjZTg0NzgwYTg1YTE3Nzc4ZGEw
NjM1MzA0OGZkZjZiZDMKK0IuWiA9IGE5ZWYzNDAyZTlmMTVlN2E5MWFlZjRhNTM0MzFiMmIyMDY4
OTE0ZTRhMDllYmRhZmM4YWE2NTQzNTFmMzIzMzEKK1Jlc3VsdC5YID0gZGU5ZDZiYjRkZmRlZTY0
MTkzZDNlYWViYjkyMDhhODZlNzY0YjgwZTE0NTlmZDEwYTJlMDFjMjAyZTMzYzVlMgorUmVzdWx0
LlkgPSAzNzBlNjdkYmI3Y2ZhNmI3OWFkYWVlYzQ4YjE1MzVmMGMzMjk4NTY0MDExMDJkNTQ2YzY5
NWQwZGZlMWQwZGI1CiAKIFRlc3QgPSBQb2ludEFkZAotQS5YID0gMGRhYmE0MWJlMmI0MThlN2Qx
NjBhMzYzZTZjYmRjYmZmNWQ0MzNmOTZiMGQ1YmUzODEyYzBhN2FkZmFiOGVkNAotQS5ZID0gM2Fl
NGRkOTdjNGQyOTg3YTYzZGYxNmM1ZmI4YzQ5NDE2NGUxNGI5M2VlZWJkNTU4NWQ3NGJkMjZlMjIw
MTQ5OQotQS5aID0gMDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMQotQi5YID0gODcxMzVmYjA2MzgzZWM4YjI4MmZkYzAyOGViMzhm
ZDQ0N2FjMWVjYzc2OTIyZTM3ZjBjYzQ1NGZlYmIxMWFlZQotQi5ZID0gOThhYjk2NjA4NzUzMWVi
M2VlYTFlNWUzNjE4OTI3MWEwMmY3ZWU4ZTM4MWY5Yzc4ZDZmMzQ2YTMwMWY5NmY4MQotQi5aID0g
MDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMQotUmVzdWx0LlggPSAyZTA5NmMyZmFiZjA2YTViODM4YzdlMDdmZGE0MzZkMDY4ZGQx
YzRlM2ZmNGY1NzA0Zjg5YWI5ZGY2YjRiZTViCi1SZXN1bHQuWSA9IDU5Y2E2MzA0MzIxYWUxZTQx
YmZhMzBmNTJlN2VmMjdmY2VlYWRlODUwN2YyMDgzNzY1NDM4M2Q3MGU4YTQxZGYKK0EuWCA9IGEy
ZDg1ZTIxYmY1MjA2OTFiMzk3YWM5ZTBjMTM2MDIxOGNlZjk2YThhNmY0YzJiMjRkMjE3OTEzNjBj
ZTRkOWUKK0EuWSA9IDBjYzFjNTQ5M2VkZjU4NmNkMjRmN2E5ZjQwMTg1YzFjZWVmYTcyNzM2OWVk
MTU5YTlmYzA5YjcwMGJhNjRmNzgKK0EuWiA9IGFkMzA4M2E1YmQyM2VlMWZkYmQzYTI1YWJkZWU4
MTUwNTIyMDliYjFhOGIyMmQzZjdkODYwMDQ0MmI3NjBhNjEKK0IuWCA9IDdkODg1MGRhZmUyYzQ4
ZDg2YjZjM2YzZjQ0NDUzNjcwYWE3MTY5NzEyMjM4ZDAyNGRiZDA4Y2I0ZTk1YjljYzEKK0IuWSA9
IDZhMjY5OGMxNDM2MDkzMDZmZTJjNDAyYWNkZjI2ZTNiNDI4NzRmNWFlM2VhMmU5NTg5OGMzMDVl
NzkxOTg0YjgKK0IuWiA9IGM4MWJjODk4OGM2ZWRhYmY0YTAzZmNjNDU2Y2UwYzQ0NWUyMjVjMzNi
NzZhNzk1NTJhZjBiODE4MzUwYWQ2YjAKK1Jlc3VsdC5YID0gNjdjNWY4YWYwNjliNWE1NjM2NjQ3
ZWVlNTBkYTg0N2RmZjhmNWY2ZWY3MTc4MGE1ZDEzMzA0NTNkYjVjOGEwNAorUmVzdWx0LlkgPSBj
ZWM5MjAwZmE1NDFiNjAyZDk0YzY5NGYxMjg5ZDFkMDczZTY0ZjQ3MDU0YmFhNDBhOTkyMWMyMGNh
MDkwNjQzCiAKIFRlc3QgPSBQb2ludEFkZAotQS5YID0gMzU2ZGI5OGMyMWMyMTY5ODk5YjliMjk2
ZWRjYWNiN2Q1MzE1MjRmMjU3MjkxM2I3NWVkYjdiNzMxOTZmNTY4MgotQS5ZID0gNDdhMjZjNTJi
MWIyZjIyOTEwOWU4YWNhN2Y1YjRhZjc2OGJhZjA1M2ExNWZmOGY1ODA1MWM3ZTRlMWI3ZjgxOAot
QS5aID0gMDAwMDAwMDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMQotQi5YID0gNTY5NTZmNmQzYmJiZDRhZWNlMjk5ZjI5YmI0YzUzNzM1NWYz
MTJmMzkxYzIwN2M2ZWM2ZWZlNjQ2MzYyYjI4OAotQi5ZID0gYTY5ZmM3M2MwNjM2Yzk5Mjg3NjRj
YzlkNmUxNDgyNTc3YjZjYTA2ZjI3N2MwOThmNTcxMTA4MzU2YTg1OGNhYgotQi5aID0gMDAwMDAw
MDBmZmZmZmZmZWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MQotUmVzdWx0LlggPSBjYTBkZGQ5OTVhNzcxNzNhMTQzODQ3M2JmODI3MzRjYjNhMDlmYWZlNzA1
MGJkYTliZDU5MmExY2YwNzhmYTM4Ci1SZXN1bHQuWSA9IDM3OWRhODc5NTJkMzZjNTM5NmI5MzRh
MmNlOGIwMDNlZThmYzQxNTViM2I0ODhmMmY1NTA3MzRlMmE4MmNlN2QKLQorQS5YID0gNGY5YTAz
NWZmZWRkY2MzNjg0NjkwNmNhY2M4MTJmZmFlN2YzMTEwZmU0NmJmN2RhMTJkMGIxOWVjNTRjMzg3
MworQS5ZID0gNzM1MzllZDYyMDkzODU0M2Y5NGMzNThkYmE4NzMxOWRjYTQwYWU0ZDEzZDBhODg4
NTI3ZjAwN2QyNmQ3M2Q3NAorQS5aID0gOTIyZTk3MDU2ZmJmMTJkODk5ODQzNDYzNjgwODczNzU1
NjA5OTBjM2ZiMmYzMzdkOWY0NjQyOWYyMDIyZDYzNAorQi5YID0gZGU2ZmEzMzM4MDRiMWRhOWYw
NDY4OTY2MzRlNDk4ZDVmNDU2Mjg4ZjhmMDNjYzQxZmM3YmE0YjFlOTc4NDI5YQorQi5ZID0gZmQ0
NWYxZDVlOTA1YzQ0OGI5NDdmZDY1YmMyODk3OTI4ZDYwMTQ0MjVjOGM1MDJhMWIyODM4YmE4ODJm
NTgxMworQi5aID0gNTBiYjRjOThiY2UzNmI4YWFkNTY2MmI4ZGIzNTQyOGJiNWMxZjI5OGUxNzM0
N2NhYTVkNGY1NDJmMjc4YTFkOQorUmVzdWx0LlggPSA1YzNjYjA1YjUyZWM1OWYzY2JiNjY2YjAw
NTkxNjNhZmFlODg1Njc2Y2Y4MWQ2NGNhZGM5NDNhMWMwYmIzYTg2CitSZXN1bHQuWSA9IDI4NzFk
MDg4MjcxZmFhOTI1OGU2MGZmMjgxMTVmNzIyOTRiOTM4ZWYzZDdiOTI3ZTU5MTc3ZjliNDFkNTc0
N2UKKworIyBUZXN0IHNvbWUgcmFuZG9tIEphY29iaWFuIGRvdWJsaW5ncy4KIFRlc3QgPSBQb2lu
dEFkZAotQS5YID0gMTM3NjRjY2NhYjRhZGRmNWNmNGVmNWZiNGFmNjBhOTNlMDhmYTNhMGE3MjY1
M2FiZjAxM2UzNDI3YWJiZjgyYwotQS5ZID0gYzNkYzUyNDc0NTM2OGEwZGM0OTQ4Zjg5NzQwMmY0
YjVhMjgwYWNiZjc0ZjVlYTkxODBkMDM4YTQ4M2Q0MDkwYQotQS5aID0gMjkwM2EwNGQ2NjE1ZWMy
M2NkNjNiYTQ2Mjg3YmUyZTdhOGVlZWUwMzBiZWQ0OWU3YTk0NzY5Mzg2YTQ2ZjIwOQotQi5YID0g
YTVjNTkyMWY5YThjNTY5ZjY2MTY5M2JmYWUxYjE2NzkzNzk4N2MyZmU5NTE5NTZlZjBlMzRjNDI2
OTY1YzY0OAotQi5ZID0gZjhhMjk5NjA1ZTY5MGE3OGU1ODMzNzFlNTljZjJiODQ4ZDQ3NWFmYzM1
YmIxNDQ4OTgxYzUzYWQ4YzBhNjU4MQotQi5aID0gOWMzZmRlNzNmMTg5OWE3NmViNDBmMDU1ZmNl
MDJhYjljMWIxY2U3ZDQzYjU0YzU0ZjkzZmZlNTY4MzBlM2Y4MwotUmVzdWx0LlggPSA0MDczMzE4
ZTg1YmMyZDc2MzdmZDAxMjlmYThlYjg2YjZjYTIwMzM0NTQyNzk1ZjNiYjFkZTU0YjkwYTE2YjY5
Ci1SZXN1bHQuWSA9IDlhMWIxZTc0MzVkOTgyODdiMjQ0ZDIzMzdmOGJmMGU5Yzg3YjQwNjc3YmYx
ZWEyYTlkZWRiZDA3YzUyNDFlZTAKK0EuWCA9IDc1ZGE2MmY3NmQxODg3ZTE4YTA2NDgzYmI2YjUz
YzNlYzQyODc5ZWQ3M2I3ODUxZWQ0NzQ4ZTMwNzY1MzcxNGMKK0EuWSA9IGE2ZjBkMGQzYmI0OTJi
ZjQ4OGQ5OWQ1NDlhZmYzZjBjM2E0OGYwYzM1YTU5MzE1NzhmZTY5N2I4YzVmNDg2ZjcKK0EuWiA9
IDZkNmE1MDIyOTE2NDg2OWYyNDg2NTE0OGExOWEyNGQ1N2Q5NGViZDA5ZGMwNmI1ZTRmYzM5NDZh
OTVmOTEyNGYKK0IuWCA9IDNiMjI1YWY4YzdiNjE1NWQ2NjA2MWM3NWEwM2QyM2Q5NGUwMWEyMTY3
ZmE3ZjQ0YzViZDFlOWQ5YzQ4Yzc0MjEKK0IuWSA9IGFmNThiMGUzODUzMWQxZTA4MTg3YzYxYTM2
YjMzNjkzZWY1MzRlY2FlMjNkY2E0NTQyNjY3ZDkzZjE4NDRkNzUKK0IuWiA9IDg2ZWQyYmU4NTlj
NGFmMWQ1Y2Y5OTA0MTg0MGYzYmNiN2M5YjhlODk4NjgxMTM5M2M5NmU4YmY1N2ZjYWQ4NzIKK1Jl
c3VsdC5YID0gYWIwZjkzMWZiODZhNjIxMTAyZTY3MzM2ZWFkY2YwMWFmZTMxMjdhZWFmNWI0Zjg5
ZThmMzQ2MjhjOGUxYWZkOQorUmVzdWx0LlkgPSA1MmM1MGUyNzgzZDY5ZGRlMjlkNmJjNzVmYTM1
OWZmZTcyZTcxMTVjMmZjODlhOTY5OWE0OTljYWMyNWUzMzgzCiAKIFRlc3QgPSBQb2ludEFkZAot
QS5YID0gZjcyNzA2YjgxZmNhMmIxNTMwMjM4YmRjMmMwYzQ1NGI1MTE2ZWU1NGZkZjE1NmJjNjJi
ZmZlYTczZjA2NDVhZgotQS5ZID0gYzZlNjZkOWFlOGZjNWUxNjRlNmE5ODVmODY2YWFlNDFmM2M0
ZTQyODFhMGVlYTkxNzNlNGU3N2NiMjllNGJjNwotQS5aID0gNmE4NGY5YzM3NjM0YjhhZWZkYWU0
NzdlOWVmZWM2NmYyMGQyZjYxNTk1NzVmNDBjN2IyMWExZTA3MzJlOGM0OQotQi5YID0gYmNmMjFi
MDIwY2I4ZmI0YjJlZjdmNjM5MjQwZDIyMWRkOTZmYzA4ZDdmYTU3NWMyZTcwMzdmYzg0ZDhmMDNi
MgotQi5ZID0gYWJjNTAwZjgyZjA2ZjBkNjlhOTIwYzhkODBlZWY5ZGQyMzEwY2QwOWUwZDg5ZDgw
ZmM3Mzk3YWE0ZTM2MWRkMQotQi5aID0gNTAzMWM0NmJlMTVmOWQ0ZmE5YTM0N2JlOTk4YzA3Zjlj
YzdmNzU0OTk5ZmUwZjljM2M4YjM4ZTBkODVkZGE5ZgotUmVzdWx0LlggPSA0MDFiMDEwZGY0ZGQy
MWVkOTZmN2M4YmFiYjQwMWRiNzRiM2I2ZWU3ZjU1YzQ5ODgwMzIwMzg1NWI1OTExZGU5Ci1SZXN1
bHQuWSA9IDA1ZTU4NWNjYTU2OWJjMjI4NTVmN2RmMzJiMjBhNGE0NTMxNWExY2E1ZDk4ZDJiOTQ3
OTJlYjc0OGVjODc0NGIKK0EuWCA9IGYwZDQ5OWYyZTM3NzVkZTg4ZWQ5OTdmZWViNDU4OTUwNmYw
NjFmOTM3NjZhYmIwYzEyNTFkMjU2MzBjNGMyNGQKK0EuWSA9IGU4ZGUyN2MzMzY5YmE3MThhZGJh
YjU1OTdmYmFhZDk1ODFmNWI1OWFlM2I3NThlN2Q2NjRiYWU4MWQ4OTViZTQKK0EuWiA9IGM2MmRj
ODIwYTU5N2Y3NTUxODczNGYxMmIyZDNjMDc2ZTViODcyMzAzZTM3YjM2NjM2MzY5MTJhZGU3OWMw
NTgKK0IuWCA9IGMyODQ1YjNmYWFhOTk1ZWI4OGUxM2E0NGIwOGQ4YTZmZGIzNzEwM2Y3YmJjYzU4
NTMwMmM5ZDA5MGJlM2ZjNWIKK0IuWSA9IDczM2U1ZWYxYjAzMTQ3NTRiNzBiNWI5OGRhNjNjYmI3
NDc1OTE4ZGRiODVhNzE1ZTIxYWFkZTBjMmYyZTU2MTEKK0IuWiA9IGI4NTA1ZTRhMDU3ZDEwOGI0
OWY1ZDBiMjA4ODQ2NzRiZTE4YmJhNDhiYmMzN2Y3NjVjMmMzMmM1Y2M0YWJhNWQKK1Jlc3VsdC5Y
ID0gMjY2ZjI5NjFiOTM1MmI0NGU2MTkwMmEyMzViMzNmNzY2ZjgyZjgxOTljMTc2OTIwZGFlMjVh
ZDJjYmFkNWNjOQorUmVzdWx0LlkgPSA4NTYwZTYyMDQ3OTA4YjEzYzQyNDdiN2U0ZDI2NTdmMmJk
ZWNhYjQxZTczYzg0NmJhMTg1MjNlNWYyOTE4YTliCiAKIFRlc3QgPSBQb2ludEFkZAotQS5YID0g
N2I0NGI1MmU5ZmIxYmM1OGM4MWEyYWRjOWJmZWRjYzQyYmJhM2NiMzRlYzY2NmU1MWNiYTgwNTBk
NDhmZGIzNwotQS5ZID0gMmI3ZTYyOWZlZjdiNGUxNzVmNWViMzBjNDIxZTYwZjI2ZmVmZGY1Zjlm
ZWQ3NDNjYWQ0YThlNjM4YzE4Njk2YQotQS5aID0gNjhmMzFhY2Q5MmJlZDU2YTQ1NTZlOTU0YjBj
NTFmOWY4ZjNiNzk3YmM4NTNkMWIyYjAxYjIyODY1N2JkMzE3ZgotQi5YID0gM2QyOTNjMzZmZDA2
NWQxZjA1NGViMjE4OTMyZDYwZmViMDBkMWJkNGJlZTAyMzZjYjk3ODhkOTcyM2RmOTU3MQotQi5Z
ID0gYzhiODkzYjhlOWZmOTM1ZjJlMDYwMjI3MzM0ZTMyYmExNDRmNDA0NmIxYmQ0OTYxZjQ0Nzlh
ZDNmZWYxYzdkMgotQi5aID0gOWMwNzJkZWFjZmU1YzAyNWM3NjNlZmViYjRmZWFiNzllOTU0YzQ3
ZDNlODZlZjRhYmZiZDE5MDFmNTBkODQ5NQotUmVzdWx0LlggPSAyNDU1ODJkMzI0MTVjNzdhMmUz
YWJiZjg0NGNmMWE0MGMzMTQ2NmMxNDE4Y2QyNzk3NDdlNTM5NDc0NDUwOWJlCi1SZXN1bHQuWSA9
IDVjMmY4MGY5NDdkMmRmN2ZiMWY4MjlkMDVjNjE3NWY2ZmNlN2NkMmQ3Zjc5ZmQ3YWE4NjVmOTMw
ZTkxMGU5ZmQKK0EuWCA9IGYwY2EwNzI5NzczOGQ4Njg3YmZmY2QzZjE0MzM5NjYyNDFmNDM3ZmEx
YzMzODFjZjJkMTNmMGZjNzE0YmM4M2EKK0EuWSA9IDExODFiOWQ2MWM2OTgyZTc0M2YxYzMyZGU1
ZDE0ZGE3NDUyOTBlY2FmMjcyOTdjMzZmZjNlZjIwYTc1MjZhNTUKK0EuWiA9IDkzMTU5NjE4Y2E1
YTlmOTI0MGRmNzAxNmRkYzk4M2UwNDYxMjZkMTI5MGUxNDQ3OGRmY2M2YTRiYWU5MDkwYmQKK0Iu
WCA9IDNhMmQ3NTgwM2NjYWQ2NjVmNmI3ODVjODI4ZWFhOTY4MjFjYjBlODE5Nzk2NDFiOWU1OWI1
ZmQ0ODhmY2M3NTUKK0IuWSA9IDk5ZTdmODIwYWJkYmNkZGEyM2Q5MGE4ODc4OGUzMGQ2NzMwM2Rh
Yzg2OTg3ODE2ZGJiZWQ0NDc0MzFlMzNmM2YKK0IuWiA9IGE4NzAxODZjODEzN2NkYmQyNDdkMTZm
M2FhMTg3ODJkZTFlNGM1ODQ4ZjQ5ZGEzNDM3MjIzZWIxM2Q3YTlhZTIKK1Jlc3VsdC5YID0gMzZh
MTA0MzY4ZDM5MjE0ZDVhM2ExYTM0OGExZGUxMzg5ZDFhYTIzMDA5YWVlMzc0NjRiNWIzMjU2ZWQ0
YjI4YworUmVzdWx0LlkgPSBkYTViMTRkYmQ3NWY2YzMzMzkyOWJkZmY4OGU1M2FmNzI1M2MyN2Ux
NjZlMTVlYWQ2ZDc3ODYzMTAzNmI3ZDM4CiAKIFRlc3QgPSBQb2ludEFkZAotQS5YID0gNzVhYjkx
YjhhNDZhNWExYWJmODI3Y2IyMDkzNzNiMjhjYmI4ZjgzYTA2YWRmNmE5YjEwYWM3NmUyMjQ5M2Vj
YwotQS5ZID0gYWJkOTg5YTc4ZDFiY2VlN2U2MzkyMGQ3ZTYzN2Y5NzYzOTAxZGE0MDhhOWQ4Yzcz
MWU0ZTY1YTZmYzUyZTFhMQotQS5aID0gMTg4YTI0MTQ1MjQzY2EwNjZjMzU4NzBlNWE4ODM1NTMy
YWQ1MTJmYmRjZjVmNWFlNDAzM2IyNjJmYTlhYTZiOAotQi5YID0gNWQ2ZTg4NWVjMTkwNjliMmFh
NTFhMjcyM2M5OGRhMWYwM2U4ZGJjMzQ0ZmUxZGUwYmRiNDI5MTBiYThiZmU5NgotQi5ZID0gYTFm
ODZlNjZlYWNjMzhkYjdlNDcxNTRhMzI0YTE2MDMxNzA1YjQ4MDNhZGRmMDc0MDM3ZDMzMjBiNTBk
YmVmOAotQi5aID0gNWNmZjkwMGE3ODM2ODcwNDlhN2Q0OTdiMWY4Y2Q4MzdjNDc5YTYxZjNmZWY0
YjdjZWQxODBlYTgyNzcwYmM3NQotUmVzdWx0LlggPSBhNDAyOTMzM2I5YjlkYjQzNGVlYTAwMmJk
NmQ0ZTBkOWYzZTUzMTdjNjg1NTExYTMwZWNhZTM1MWZjNjBkMTY0Ci1SZXN1bHQuWSA9IDhlOTMw
MmM3N2JjNmY1NjBjOWJlYzQ3M2VmMWZmYjc2YjM1N2MwZDQ3OTQxOTI2OTZiZGE4ZTk5NjUxNzk4
ZWUKLQorQS5YID0gYTYyNTY1MDg5MjZjYWNhNTZhMzE0MTRhYmEyZDVmNWIwNGRjYWJkYjA2NTM1
MmE1NzJlMjE1YjA0M2RmNmUwMQorQS5ZID0gZTY1NjdkMzMwZmZiMTFhODZlYzI5YjQwNmI4ZTNk
NWNjZThjYTQ2ZjU1ZjM4NTE1ZDg0MmRkODU2ZDY4NTJkZAorQS5aID0gZWMxNzI2MThjOGNkYmZj
MGY0ZmQ2ZGZmYjc3ODU4YmIyOTJmMjI5ZTZkMTBiNWM3MGQwZDliYTc1ZmEzYWI0NAorQi5YID0g
MDI1MWY2NzE1ZGJiYTAyZTYwNzJjMTJhYjFmODlhNTYyZDM1ZWQwZmY2OGUwMjFiM2I1Mjc2Yjlm
YWY1N2M1MgorQi5ZID0gZDJkNzRmZjQ3NDBhZDk2OGZhN2U4MTZiYzIxNzg0NThlZmVlNzk3NjY5
YmVmMmU2MzRlMjg1N2RlMTY1OGU2MgorQi5aID0gYWJiZWNlYTYzM2QzMWY1NjkyOTdhNGE5ZWMy
OGY3MDhjN2EwOTdjYjI0MjNlYmFjYTY2YWMwZTQyYjFjOGVlNAorUmVzdWx0LlggPSBkMmEwNzFk
NGRkNzJhZDdlNjM4MzRiNThiMjNjNGEwMzRlZDc5NTBmNWM4MGZhZDUxYmY5Njk1OWI1MzVkNTVi
CitSZXN1bHQuWSA9IDNjYjhkY2JlMjVmNDkwOTliOWQ4ZGQxYTljYjYwNzMzNjhiZjY1NTYxMzBm
MmFhMDI2MzdkZmNmZjQzMGU4NjkKKworIyBUZXN0IHNvbWUgcmFuZG9tIGFmZmluZSBzdW1zLgog
VGVzdCA9IFBvaW50QWRkCi1BLlggPSA4ZDE4NjdmODkwYWJhYTI2YjYzNGQ1ZDVjZGViMGY0YWJj
N2ViZDE2ZDgwNzQ3OWY4MzdmY2VjZTU5MmRjMGViCi1BLlkgPSBmYzY4YzgwMTk5OWMxMjA3MGVk
ZGViMzE2OTIxOWM0OTFmOWU4ZmUyOWNkYzRlM2NiNjk4ZWU4NDcxOTM0MDc2CitBLlggPSBmYWJh
ZGE2NTdlNDc3ZjA4ODg4M2IyOTg3MDQyZTU5NTU1OWQ2NjlkZTNhMDQ3YjI3ZTNhZDMzOWZiM2Zh
NWYwCitBLlkgPSAwNTUxOTkyNTMxYTY4ZDU1YTg0MDlkODQ2NjAzNGYwMjgwODYzNzYxMGNlNmQ2
YmNkOWNmY2ViOGRhMWMzZTg1CiBBLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCi1CLlggPSA4ZDE4NjdmODkwYWJhYTI2
YjYzNGQ1ZDVjZGViMGY0YWJjN2ViZDE2ZDgwNzQ3OWY4MzdmY2VjZTU5MmRjMGViCi1CLlkgPSBm
YzY4YzgwMTk5OWMxMjA3MGVkZGViMzE2OTIxOWM0OTFmOWU4ZmUyOWNkYzRlM2NiNjk4ZWU4NDcx
OTM0MDc2CitCLlggPSAzYTgzMWNmMmIzMTZjZTM3MTk5NGE1NjIyZTMxNzQ5NDA3ZmRmNTk2NjBk
Yzg4MzIyZDE0YzM3ZWJiMmQ2OGQyCitCLlkgPSA4NDljNTExOTA4YWJkZmEyYmNhZGM0M2Y5YmVh
ZTg4MDUyZmRiMDA1NzNjNzgzZmJiMWIzNGI5OTY4N2I5YTZiCiBCLlogPSAwMDAwMDAwMGZmZmZm
ZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCi1SZXN1
bHQuWCA9IDhkYTUzZGM1NDBjMTQ1MGM3MzA4MmFkM2I3OTlkMGQxOGE2OWE3NDdmY2Q4MWY4NDdl
OWU2MDQ4NGRjZjU3OWEKLVJlc3VsdC5ZID0gYzIwYzM5OGU5OWUwNTEzYTQ1MmI1ZTliNjMzMTg2
M2QxYWMzZWVlNmZjZjczMDIxZjUwNWEwYjYyZGFmNmY4MAorUmVzdWx0LlggPSBkNWRjOTI0MWI0
NTdkMzNiOWJkYTg0OWZiN2FiYThiYWFmZjhiNmVlYTkyOTc0YThhZGY0Yjk1ZmJmYTg0OWYwCitS
ZXN1bHQuWSA9IDA4OWE2Njc4MDgxMWE4Y2U0NTVjMTM5YzRiZWE2YzVjMTYyMzRjMDk1YTQxYjll
MzFjNjE3Njg5YmRjNmJkMGYKIAogVGVzdCA9IFBvaW50QWRkCi1BLlggPSAzMjhiOTgzZjY0OTAz
MTJlMzdlOGVlYjIxMjFjZDYyMmNmODVkYmNmNzhhZjkzZGY3NGZiY2E5NjFjZTNiZmEyCi1BLlkg
PSAxYzhhMGFlYTJmMmU1NDA3NzA2NDRmNDhjNDE4MTBiZjdmOWUxYTc4MmIyZjYzOTc3MTJiMTdj
ODgxMDlmYmNlCitBLlggPSA5ZGZlNjI5OWU2MjQ1M2JiOTQzMzU2YjZmN2Q5MGM4YjZjNjQ2NzI4
YmEzNTUwYmI3YzE1NDhmMmJhNTkyMGNiCitBLlkgPSA2MGE0ZTM0MmE4OTgzN2MwZTdkNjFjMGUz
ZTg4YTk0MzYzMzAyOGY1MjYwZWZmNmFmNWFlOGE2MDYzZjdhNWRhCiBBLlogPSAwMDAwMDAwMGZm
ZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCi1C
LlggPSAzMjhiOTgzZjY0OTAzMTJlMzdlOGVlYjIxMjFjZDYyMmNmODVkYmNmNzhhZjkzZGY3NGZi
Y2E5NjFjZTNiZmEyCi1CLlkgPSAxYzhhMGFlYTJmMmU1NDA3NzA2NDRmNDhjNDE4MTBiZjdmOWUx
YTc4MmIyZjYzOTc3MTJiMTdjODgxMDlmYmNlCitCLlggPSA5MjRkNzMwNWY4NjdhZmVjZDNjYzU1
MGY0YzA1YzgzYTJiNGM5ODFiYTBlN2ZmMjBmZDIwMzVmYWJlMmNjYzkyCitCLlkgPSA3MzkzNDYy
MDc0NmMyM2JlMDNhNDBlZGIwNjYyYzA5ZWYxNzc2NTA2YmQ1MGQ2Mzk3YzI2NTRkMzQwNjI5YmY1
CiBCLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAxCi1SZXN1bHQuWCA9IGI2ZjNjNTQ4OTQ0ODYyZGZkZWEyMzE0Y2E2ZDZh
ODg3ODBiMDhkYTQxYmVjZjU4Mzg0YWY4MDU0NGFjYTQ5NjYKLVJlc3VsdC5ZID0gOTVhZmVjYjRh
ZDMxOTU0ODVhMmFhZDNjZDE0MDA4YzlhN2MxZTBjMDI2NTZjM2MyYjdjZDVmMmU3ZjNhNDQ3NAor
UmVzdWx0LlggPSA3Mzg0ZjY1OGNjYmUwOGFmY2Y2YjQyM2JmZGQwOTJhOGE5NWIwM2Q4MTI1NGE1
MTliMzE1MTdiOWI5NjcwMTU1CitSZXN1bHQuWSA9IGU5MjJhNTYxNDZiOTQ3NzZmODA1YTBmYmRl
ZTkwODRkZDg3YmUxZGY1NGY3NjE0NWJmODNlMDdjZDMxYTA4M2EKIAogVGVzdCA9IFBvaW50QWRk
Ci1BLlggPSAzYWU2YjI0Y2FkZDZhMTQ2MTJkMjRhMWMwOTRhMzVjNmJlNTZkYjhmNTNhNmQ1MjZl
MGVkZTAzOTIzOTE4NDQzCi1BLlkgPSBkZThhMjMxMDVjNWY1Yzg4Yjc3ZGJkZTc0ZTMwYTU2Zjg4
NjVkNzhhNWNlOTA2MGNmZjlmMjkyN2RiZDE5NmI2CitBLlggPSA5YjY2NDJiNjYxZjA2YzViM2Vm
MmEwOTUwYjNjMDNkMzVmNDJkM2QwZGNiZTEwNWE4OTVmNDAxMzJjNDBiZDllCitBLlkgPSA5MGNi
ZTBlZDQwZTQ3OTIzMjU3ZjA2NDg4NmYxZTMwOWEzMTBjYjgyZmMyMTI4MmY4ZThmYTRmNmM5NzVh
ZWQ2CiBBLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAxCi1CLlggPSAzYWU2YjI0Y2FkZDZhMTQ2MTJkMjRhMWMwOTRhMzVj
NmJlNTZkYjhmNTNhNmQ1MjZlMGVkZTAzOTIzOTE4NDQzCi1CLlkgPSBkZThhMjMxMDVjNWY1Yzg4
Yjc3ZGJkZTc0ZTMwYTU2Zjg4NjVkNzhhNWNlOTA2MGNmZjlmMjkyN2RiZDE5NmI2CitCLlggPSA1
ODdmNmI0YzRiYjNhYjNkNTliYThkMzE0NTc2MTViM2RmOWY5Zjk0NjZkZjM1NjNmNDQxOWRiNzMx
ZjQ5NGVhCitCLlkgPSAzODEzNWIzMTQ1NzIzNDY0MzljOGQ0NTM1Yjg5MmEyNmU1ZGE2NTBhZTFk
YzlhYzJkNWFlYjg1YWRlMjQxNzRmCiBCLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCi1SZXN1bHQuWCA9IDZmMTI1YjUx
MmMzYzczNmYzOTc4MWZjZDg5YWRiNjUzZTUxNWI0Y2UxZTEyMDQ1MDVmMDhkMGE4NDgwMDUyZWYK
LVJlc3VsdC5ZID0gZTFhY2ZjY2YxYjk5NTAwNjdhZGYwZjA2ZTBkOTcwM2E4YjFhYzFiYmRiYjM1
YjA4ZGYyOGNkNTZjMjRhZTVhMAorUmVzdWx0LlggPSA5N2U5NGI2ZDQ4NWY4ZGU2Nzc5ZTRhZDE5
Y2M3YmVkZTZkNzBmZjQ4NTNhNTZlYjZkNWZkNGU1Y2FhYzYwODU4CitSZXN1bHQuWSA9IDMwM2Jm
NGQ2MmNmNTY5MzcwYWU1MzkzZmFjNDZiNjRlZmU5OGVlODIyMmI5OTgyYmMzZGM2MWI4ZTMyNDEx
YzUKIAogVGVzdCA9IFBvaW50QWRkCi1BLlggPSBmMzE3YzZjMDJkOWE2ZmYwNzk5YjNiNGEyMmY4
M2M5NTMyNDgzMWJhYWQzMzZlY2QwYzYzMWVhMDRhNWUxMWM4Ci1BLlkgPSBiNjI0ZTgwNTdkNDEx
MDMxZjQxYjMwY2QwMmY1NmMyNGU4OTI2MmU4ODUwMDdiN2ExZWQxODYxZmViN2ZmY2RhCitBLlgg
PSBkYTQ5NjU4YjZjNjRmYzdhNzQ0MWIxNzc5ODdhYmJiZGJmY2ZjM2MyYzU2OWVkOTc2OTZkNzA2
ZjdhZjkxY2EwCitBLlkgPSA5YTY2OTA2YTZlMzEzNjAzZTlkNzhmOTlmYmJkYTgzN2U1MjFlNzVi
YmJhZDk0NTVmZmQ0M2Y1MWY1ZTMwZWU1CiBBLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCi1CLlggPSBmMzE3YzZjMDJk
OWE2ZmYwNzk5YjNiNGEyMmY4M2M5NTMyNDgzMWJhYWQzMzZlY2QwYzYzMWVhMDRhNWUxMWM4Ci1C
LlkgPSBiNjI0ZTgwNTdkNDExMDMxZjQxYjMwY2QwMmY1NmMyNGU4OTI2MmU4ODUwMDdiN2ExZWQx
ODYxZmViN2ZmY2RhCitCLlggPSBmZTMyZTU4ODVkMDAwNWZhMTk2MjE2NjE0MmQyYWVhMjAxYWY5
YzRjYTQxY2RkZGM1NDQ2ZGMyNDcyZjcxZjQyCitCLlkgPSBhMmY5YjRkMzVlYTE5MzAzYTEwMTAz
NGU5Njg3MGE3Y2FlZDM3MWE5ODA5NjViZjg2MjkxYjAzYjVjODVhZjYwCiBCLlogPSAwMDAwMDAw
MGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAx
Ci1SZXN1bHQuWCA9IGU4MDUyMDhjNzQ2MDJlNTQ0ODJkMTEzZjE2ZmNmNmU0NjAwNDM2ZjhhZjQ5
NzA1Y2RkMDVlY2ZiMGU2ZDQ1ZmQKLVJlc3VsdC5ZID0gYmFkZWQ4OThiZmVhZDFiNGViM2FiM2Ji
ZDAxMjk4MzdlZmM4NTgyM2RhYmU4MjcxOGE5NzViZDYwM2Y5NmQ5ZQorUmVzdWx0LlggPSA1Mzc1
YzVlYTNlMzNjMTg2MmNhNWYwOTMyMmNlMjAxMmMyYjRmYmVlOWEyOTliNjZlNDg4MmUwMTY5MDhj
YzJhCitSZXN1bHQuWSA9IDkzNmU0ZjEyZWQxNDRjZjZmY2QwYWIwODVhNDkyOWU1ZTNlN2MyODY0
MTY5MmIxZmMyYWQ5YTNiM2Q0NDdiMzEKIAorIyBUZXN0IHNvbWUgcmFuZG9tIGFmZmluZSBkb3Vi
bGluZ3MuCiBUZXN0ID0gUG9pbnRBZGQKLUEuWCA9IDNhNjgwMmFlYWViYzY3MDQ2YTFlNzUxNTI4
MjJmYThiYWIwNGMxMWFlMmI4MTZmNDJjMDczZGFlZTNmMTMyNzQKLUEuWSA9IGQ2NTIyYzg4MmQx
OGUzMmJjNWVhMWZhNTllZmJjZThjZTIzNjlmMjE1NGRjYzAwZTZmYjE3NTAwZjUwZjhlYmYKLUEu
WiA9IGJlYTc0N2Q1YmIxYzZlZTg2NTI0OWQ3YTIyMzc4ZjNjNzYwOTE2ZTE2MzQ5N2Y0YjZlZjRk
YThhZGNiNWRmYWIKLUIuWCA9IDNhNjgwMmFlYWViYzY3MDQ2YTFlNzUxNTI4MjJmYThiYWIwNGMx
MWFlMmI4MTZmNDJjMDczZGFlZTNmMTMyNzQKLUIuWSA9IGQ2NTIyYzg4MmQxOGUzMmJjNWVhMWZh
NTllZmJjZThjZTIzNjlmMjE1NGRjYzAwZTZmYjE3NTAwZjUwZjhlYmYKLUIuWiA9IGJlYTc0N2Q1
YmIxYzZlZTg2NTI0OWQ3YTIyMzc4ZjNjNzYwOTE2ZTE2MzQ5N2Y0YjZlZjRkYThhZGNiNWRmYWIK
LVJlc3VsdC5YID0gNWEyODkxZGNhNzQ2ODg5ZDQxM2Q4ZGMxYTY5YjcxNTk1NGJhZjY5MjY4OWZj
MzJkOWFhMTBiNzQzMWE1YzE0OQotUmVzdWx0LlkgPSA5MWRiNzI4ODUzNmI0ZjZkNzhlNWE3ODdl
Y2JiNTA5NGY2ODM0NTE1MDM4Y2IwNzBhN2ZhNDg3MGFmODA0NWYwCitBLlggPSBiMTQ4Y2FkMTA5
ZDRiMjQzNDJlYjNhMDNjY2FhMTBkZmQ2MTAxZWRmOTU0OGIxZDE0NDJiNjE5ODJhNGUzMzJjCitB
LlkgPSA3ZGFhYzI5MzE2MmE4ZWUyNTkyNTI5NjMwZjViZDFlYWU5NjY1OWQyN2MwNDU4OThkMzM4
MzM5OTljZDA3NmJhCitBLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZm
ZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCitCLlggPSBiMTQ4Y2FkMTA5ZDRiMjQzNDJlYjNh
MDNjY2FhMTBkZmQ2MTAxZWRmOTU0OGIxZDE0NDJiNjE5ODJhNGUzMzJjCitCLlkgPSA3ZGFhYzI5
MzE2MmE4ZWUyNTkyNTI5NjMwZjViZDFlYWU5NjY1OWQyN2MwNDU4OThkMzM4MzM5OTljZDA3NmJh
CitCLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAxCitSZXN1bHQuWCA9IGFkMDBmYWU2YWIwODk4ZjdkNWVlZWZmZThjOTRi
MzAyMDYwZmJhMmIxOTFhMmQzNDJhOGEzMDI5OThlYmU1NjYKK1Jlc3VsdC5ZID0gOWVlNDZiYTg2
NDkwMWNhZDc1MTY5Y2RlYTAyM2Q3ZTY0ZGEzOTMxNWUyZmVjMTcwM2ZhZDZiNjEzZWIyNDAwNgog
CiBUZXN0ID0gUG9pbnRBZGQKLUEuWCA9IGM3NmRkYmNiMTViYzYzZjgyODA3ODA0NTM2YTBkMjVm
ZDdhNjM5YzcxYWRmOTUzYWQ2Y2M4ZjY4ZDkxNWY0ODUKLUEuWSA9IGUzYTRmODMwODA5ZjVlOTFi
Njg2OTljMDVmYTlmYWE3YzNkMWY5ZDFiMWM5ODJjMjgyNTA4ZmExOGQ2OTU1MzcKLUEuWiA9IGVi
MzcyZjE5YzdiOTQ2NmExMTYzNjNhZDkxMTRhODlhZDI4NzUyM2RhMzE4ZDkxNWY1OWVkNWU1NThi
ZDgyNGUKLUIuWCA9IGM3NmRkYmNiMTViYzYzZjgyODA3ODA0NTM2YTBkMjVmZDdhNjM5YzcxYWRm
OTUzYWQ2Y2M4ZjY4ZDkxNWY0ODUKLUIuWSA9IGUzYTRmODMwODA5ZjVlOTFiNjg2OTljMDVmYTlm
YWE3YzNkMWY5ZDFiMWM5ODJjMjgyNTA4ZmExOGQ2OTU1MzcKLUIuWiA9IGViMzcyZjE5YzdiOTQ2
NmExMTYzNjNhZDkxMTRhODlhZDI4NzUyM2RhMzE4ZDkxNWY1OWVkNWU1NThiZDgyNGUKLVJlc3Vs
dC5YID0gYzU0ODVhMzUwOWY1NWM3Y2MzM2QwOThmYjBiZmUxYjE5OGE5ZjI2Y2UwZWJjMjliZWM1
YmFhMjllZjZmNzRhMgotUmVzdWx0LlkgPSA2MGU5NDlhNTUxYWE5NGFmYzlhM2VmZTQxMWEzYzYz
ZWNiODUxZWYxNzM4ZWQyNGM4OGY4NmNmODVlYzAxMDIwCitBLlggPSBmMjEzMTg2MTgyMDVmNDk2
N2M0ZjQ3YzliYzNjZWE0MWUxNDRkYzAxODMwZDA4NzQxNGRhOGRjYjE2ZDM3Y2IzCitBLlkgPSA3
NmNlYmY4MWVjYzY5NjAyNGZlOTQ5MTkxZGM0OWIyNDVlZjhjYzBkNTVhZGE4OGFiZjQ4MWRkYWQ5
ZWI2MTI5CitBLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAxCitCLlggPSBmMjEzMTg2MTgyMDVmNDk2N2M0ZjQ3YzliYzNj
ZWE0MWUxNDRkYzAxODMwZDA4NzQxNGRhOGRjYjE2ZDM3Y2IzCitCLlkgPSA3NmNlYmY4MWVjYzY5
NjAyNGZlOTQ5MTkxZGM0OWIyNDVlZjhjYzBkNTVhZGE4OGFiZjQ4MWRkYWQ5ZWI2MTI5CitCLlog
PSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAxCitSZXN1bHQuWCA9IGFkOGUxM2I3MjFiY2JmYzBmZTYyOTQ2NWNkYTVmZWUzNDk0
Nzg1ZDUxZGJlNjVmMWUxMzQyOWY1MmM4M2YwM2UKK1Jlc3VsdC5ZID0gODU3MjJlMTY4ZDg5NTQz
ZGNlMjkzNDI4ZTc1ZDUyNzY1ZDA5MzViZGUyZWY1YzQ1YTA4ODIyMmRiMGRiYmViNQogCiBUZXN0
ID0gUG9pbnRBZGQKLUEuWCA9IGNhNzI5MzY1MDk2MzFmMDlkMmEzYWMxNGZiNzg2ZGFhYmIxNTUy
MGVmMDFkZTQyOThjN2ZkNzE2NTNlODkxOTQKLUEuWSA9IDAyYWViNmI2ZjA0Y2Q4MTI1ODg3YmFh
MThlNmU3OWJhMmIwYWNmYTlhMjQ0M2U5ZWVhMzZjYTc3MTVlYjhlYjMKLUEuWiA9IDhiNGVmMWE1
MmZhNDJjNzExNDQ1ZTA0NjMwMDNmMmVkMzhhY2U2NTgzYmYwODE5OGU5YTBiOTM4YjQ1ODk0NzkK
LUIuWCA9IGNhNzI5MzY1MDk2MzFmMDlkMmEzYWMxNGZiNzg2ZGFhYmIxNTUyMGVmMDFkZTQyOThj
N2ZkNzE2NTNlODkxOTQKLUIuWSA9IDAyYWViNmI2ZjA0Y2Q4MTI1ODg3YmFhMThlNmU3OWJhMmIw
YWNmYTlhMjQ0M2U5ZWVhMzZjYTc3MTVlYjhlYjMKLUIuWiA9IDhiNGVmMWE1MmZhNDJjNzExNDQ1
ZTA0NjMwMDNmMmVkMzhhY2U2NTgzYmYwODE5OGU5YTBiOTM4YjQ1ODk0NzkKLVJlc3VsdC5YID0g
OGQzYjM1YzU2NjFmYWFmYTgzNTEwYWI5YjNmMTY0MmJiMTIxZTc2ODZlZDRhZTYxMzIzZGRlZTJj
NzI0N2Y5MwotUmVzdWx0LlkgPSAxYTIyZWY1ZGYxNTZjYTgwMjM1ZmUzY2QxY2EzMTUyZTIxYTNl
MTdiMmEzNGRkOTNiMjAwM2UzMjc0YThhMmZiCitBLlggPSA4Nzk3ZmY5NTMzNGIyMzhkYWRmMGNi
M2Q0ZGM5MzUwNjc4ZjRjN2ZjNTIwMDg5ZWNiNzBhYjQxOTUxMGYyMzMxCitBLlkgPSAzMjZjNzU4
M2Q1NGRkZTM3N2ZhOTE5M2M4NTg4OTEyYzRkYjIyMTllMWJiMzgzYWIxMzkwMjE4N2U1ZWY3NmNl
CitBLlogPSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAxCitCLlggPSA4Nzk3ZmY5NTMzNGIyMzhkYWRmMGNiM2Q0ZGM5MzUwNjc4
ZjRjN2ZjNTIwMDg5ZWNiNzBhYjQxOTUxMGYyMzMxCitCLlkgPSAzMjZjNzU4M2Q1NGRkZTM3N2Zh
OTE5M2M4NTg4OTEyYzRkYjIyMTllMWJiMzgzYWIxMzkwMjE4N2U1ZWY3NmNlCitCLlogPSAwMDAw
MDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAxCitSZXN1bHQuWCA9IGU5MWM4ZWM5NjExZGU4ZTQ0ZTBkODgyZGY1OWY0ZmFlOGQxNWUzODY3
ODU4ZmIxNTUyNTZhNGEyZjE1NGJiYzQKK1Jlc3VsdC5ZID0gYzEyYmUyMTAzM2M2ZGNlYTdlN2Q3
MjYyYzQ3ODc2ZDA5OWFlYWQ3NWQ4YjAyNWU0NWNlNzk4NjE5M2ZjNmY4YQogCiBUZXN0ID0gUG9p
bnRBZGQKLUEuWCA9IGRiN2IwMjNmYmUwNTY4MTkwMjdmYTA5YzVhMmEwZDc3N2E1M2ZiNzhjMDBi
ZjRmMzFmNDZiNjNhNzQ5NGJiZmUKLUEuWSA9IDU5YWZmY2JmNDYyOGQ1NzJlZTU2Yjk1MDg3ZDMw
ZTc2NWJiNTE4YjEyM2U4NzliMjVkZjk5NjBkYWI3MDZhMzIKLUEuWiA9IDFmN2M3MjI2ZDc4ZTUx
NDc4YzY4M2JiYjZhZmUwMWFiYzIyMjVkYmZjNzczZDA4MDZkMzBmZjVmODI3Yjc2YzgKLUIuWCA9
IGRiN2IwMjNmYmUwNTY4MTkwMjdmYTA5YzVhMmEwZDc3N2E1M2ZiNzhjMDBiZjRmMzFmNDZiNjNh
NzQ5NGJiZmUKLUIuWSA9IDU5YWZmY2JmNDYyOGQ1NzJlZTU2Yjk1MDg3ZDMwZTc2NWJiNTE4YjEy
M2U4NzliMjVkZjk5NjBkYWI3MDZhMzIKLUIuWiA9IDFmN2M3MjI2ZDc4ZTUxNDc4YzY4M2JiYjZh
ZmUwMWFiYzIyMjVkYmZjNzczZDA4MDZkMzBmZjVmODI3Yjc2YzgKLVJlc3VsdC5YID0gZmJhNDAw
YWU2NTZlYzMxMDNjNWM1ZjUzMWQyYTBmNzM2ODAzMWUwMWE0OGE5MWYxYTRmMzEzOGQyOTRiMTNi
ZQotUmVzdWx0LlkgPSAxNjBlMzU4YWQxZjA1OWViNjI3MjJkZjAxYTc0NDAwNDhhMWRiMjFlY2Fl
YTg2OThlZmE5Njc3ZGI2ZTlmZjk3CitBLlggPSAyZjRjYmE5NTQzYzk1MzdlMzkzZjEyNmUzMWJl
ZGI1MjFkYzBhNzRhOTQwZTczMTgwMGU1ZTM5Y2RlY2UzNTVkCitBLlkgPSAxYTA5NTc4OThiNzQ2
YjdkYmM5MjQ1YWNkMGM2ZGY5ZTZhZGNhNGQ4NTM3NDU0YzlmMzE4YThjZTdjMzg3NWM0CitBLlog
PSAwMDAwMDAwMGZmZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAxCitCLlggPSAyZjRjYmE5NTQzYzk1MzdlMzkzZjEyNmUzMWJlZGI1MjFkYzBhNzRh
OTQwZTczMTgwMGU1ZTM5Y2RlY2UzNTVkCitCLlkgPSAxYTA5NTc4OThiNzQ2YjdkYmM5MjQ1YWNk
MGM2ZGY5ZTZhZGNhNGQ4NTM3NDU0YzlmMzE4YThjZTdjMzg3NWM0CitCLlogPSAwMDAwMDAwMGZm
ZmZmZmZlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCitS
ZXN1bHQuWCA9IDVjZGM0MDgwODEyMGI2OGUzMTMxYmQ2ZWQ3MGE1Y2U2NjE4Zjk2MGU0ZDU0MGJh
YTU4MmFmYzcxYmU5N2M2NWQKK1Jlc3VsdC5ZID0gMTkyNmEyYzlmNWIyZDNkMWRmZjc4NDYyM2Zl
NmVmZTJhYzYyOTM5NTEwMWQzOGRiMGVmZjVlNTQwYmZlYWNiMAogCiAKICMgU2NhbGFyIG1vbnRn
b21lcnkgbXVsdGlwbGljYXRpb24gdGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvZWMvc2ltcGxlX211bC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3NpbXBsZV9t
dWwuYwppbmRleCBlMDVmNDkxYTJmZDlhYmM3NTA4Nzc4NjY3YjlkMjI4YjA2MDk1NTgwLi40ZWQ2
YzQ4YzU5MGJkNDIzZTM4NTgyY2I3OTU5ZjAwZDBjOWJlYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL2ZpcHNtb2R1bGUvZWMvc2ltcGxlX211bC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVs
ZS9lYy9zaW1wbGVfbXVsLmMKQEAgLTIxLDkgKzIxLDggQEAKICNpbmNsdWRlICIuLi8uLi9pbnRl
cm5hbC5oIgogCiAKLXN0YXRpYyB2b2lkIGVjX0dGcF9tb250X211bF9zaW5nbGUoY29uc3QgRUNf
R1JPVVAgKmdyb3VwLCBFQ19SQVdfUE9JTlQgKnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEVDX1JBV19QT0lOVCAqcCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgRUNfU0NBTEFSICpzY2FsYXIpIHsKK3ZvaWQgZWNfR0ZwX21vbnRf
bXVsKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfUkFXX1BPSU5UICpyLAorICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgRUNfUkFXX1BPSU5UICpwLCBjb25zdCBFQ19TQ0FMQVIgKnNjYWxhcikg
ewogICAvLyBUaGlzIGlzIGEgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiBmb3IgdW5jb21tb24gY3Vy
dmVzIHRoYXQgbm90IGRvIG5vdAogICAvLyB3YXJyYW50IGEgdHVuZWQgb25lLiBJdCB1c2VzIHVu
c2lnbmVkIGRpZ2l0cyBzbyB0aGF0IHRoZSBkb3VibGluZyBjYXNlIGluCiAgIC8vIHxlY19HRnBf
bW9udF9hZGR8IGlzIGFsd2F5cyB1bnJlYWNoYWJsZSwgZXJyaW5nIG9uIHNhZmV0eSBhbmQgc2lt
cGxpY2l0eS4KQEAgLTc5LDIxICs3OCw3IEBAIHN0YXRpYyB2b2lkIGVjX0dGcF9tb250X211bF9z
aW5nbGUoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19SQVdfUE9JTlQgKnIsCiAgIH0KIH0KIAot
dm9pZCBlY19HRnBfbW9udF9tdWwoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19SQVdfUE9JTlQg
KnIsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19TQ0FMQVIgKmdfc2NhbGFyLCBjb25z
dCBFQ19SQVdfUE9JTlQgKnAsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBFQ19TQ0FMQVIg
KnBfc2NhbGFyKSB7Ci0gIGFzc2VydChnX3NjYWxhciAhPSBOVUxMIHx8IHBfc2NhbGFyICE9IE5V
TEwpOwotICBpZiAocF9zY2FsYXIgPT0gTlVMTCkgewotICAgIGVjX0dGcF9tb250X211bF9zaW5n
bGUoZ3JvdXAsIHIsICZncm91cC0+Z2VuZXJhdG9yLT5yYXcsIGdfc2NhbGFyKTsKLSAgfSBlbHNl
IGlmIChnX3NjYWxhciA9PSBOVUxMKSB7Ci0gICAgZWNfR0ZwX21vbnRfbXVsX3NpbmdsZShncm91
cCwgciwgcCwgcF9zY2FsYXIpOwotICB9IGVsc2UgewotICAgIC8vIFN1cHBvcnQgY29uc3RhbnQt
dGltZSB0d28tcG9pbnQgbXVsdGlwbGljYXRpb24gZm9yIGNvbXBhdGliaWxpdHkuICBUaGlzCi0g
ICAgLy8gZG9lcyBub3QgYWN0dWFsbHkgY29tZSB1cCBpbiBrZXlnZW4sIEVDREgsIG9yIEVDRFNB
LCBzbyB3ZSBpbXBsZW1lbnQgaXQKLSAgICAvLyB0aGUgbmFpdmUgd2F5LgotICAgIGVjX0dGcF9t
b250X211bF9zaW5nbGUoZ3JvdXAsIHIsICZncm91cC0+Z2VuZXJhdG9yLT5yYXcsIGdfc2NhbGFy
KTsKLSAgICBFQ19SQVdfUE9JTlQgdG1wOwotICAgIGVjX0dGcF9tb250X211bF9zaW5nbGUoZ3Jv
dXAsICZ0bXAsIHAsIHBfc2NhbGFyKTsKLSAgICBlY19HRnBfbW9udF9hZGQoZ3JvdXAsIHIsIHIs
ICZ0bXApOwotICB9Cit2b2lkIGVjX0dGcF9tb250X211bF9iYXNlKGNvbnN0IEVDX0dST1VQICpn
cm91cCwgRUNfUkFXX1BPSU5UICpyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBF
Q19TQ0FMQVIgKnNjYWxhcikgeworICBlY19HRnBfbW9udF9tdWwoZ3JvdXAsIHIsICZncm91cC0+
Z2VuZXJhdG9yLT5yYXcsIHNjYWxhcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvZWMvdXRpbC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3V0aWwuYwppbmRleCA3
MzAzYTE1MTU4MzU2MjQ3YWY5NmI2Y2Q2MGRhZGU4NzJiMTViYTE2Li40ZjM5ZjE4YmY0NWM1ZTRm
ZGI4OTUwMjBlYzFlMjE3MDk1OGFiZTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvZWMvdXRpbC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy91dGlsLmMKQEAgLTE4
LDYgKzE4LDcgQEAKIAogI2luY2x1ZGUgImludGVybmFsLmgiCiAKKwogLy8gVGhpcyBmdW5jdGlv
biBsb29rcyBhdCA1KzEgc2NhbGFyIGJpdHMgKDUgY3VycmVudCwgMSBhZGphY2VudCBsZXNzCiAv
LyBzaWduaWZpY2FudCBiaXQpLCBhbmQgcmVjb2RlcyB0aGVtIGludG8gYSBzaWduZWQgZGlnaXQg
Zm9yIHVzZSBpbiBmYXN0IHBvaW50CiAvLyBtdWx0aXBsaWNhdGlvbjogdGhlIHVzZSBvZiBzaWdu
ZWQgcmF0aGVyIHRoYW4gdW5zaWduZWQgZGlnaXRzIG1lYW5zIHRoYXQKQEAgLTQzLDEzICs0NCwx
MyBAQAogLy8gICAgIG9mIGEgbm9ubmVnYXRpdmUgaW50ZWdlciAoYl9rIGluIHswLCAxfSksIHJl
d3JpdGUgaXQgaW4gZGlnaXRzIDAsIDEsIC0xCiAvLyAgICAgYnkgdXNpbmcgYml0LXdpc2Ugc3Vi
dHJhY3Rpb24gYXMgZm9sbG93czoKIC8vCi0vLyAgICAgICAgYl9rIGJfKGstMSkgIC4uLiAgYl8y
ICBiXzEgIGJfMAotLy8gICAgICAtICAgICBiX2sgICAgICAuLi4gIGJfMyAgYl8yICBiXzEgIGJf
MAotLy8gICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gICAg
ICAgIHNfayBiXyhrLTEpICAuLi4gIHNfMyAgc18yICBzXzEgIHNfMAorLy8gICAgICAgIGJfayAg
ICAgYl8oay0xKSAgLi4uICBiXzIgIGJfMSAgYl8wCisvLyAgICAgIC0gICAgICAgICBiX2sgICAg
ICAuLi4gIGJfMyAgYl8yICBiXzEgIGJfMAorLy8gICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICAgICBzXyhrKzEpIHNfayAgICAgIC4uLiAgc18z
ICBzXzIgIHNfMSAgc18wCiAvLwogLy8gICAgIEEgbGVmdC1zaGlmdCBmb2xsb3dlZCBieSBzdWJ0
cmFjdGlvbiBvZiB0aGUgb3JpZ2luYWwgdmFsdWUgeWllbGRzIGEgbmV3Ci0vLyAgICAgcmVwcmVz
ZW50YXRpb24gb2YgdGhlIHNhbWUgdmFsdWUsIHVzaW5nIHNpZ25lZCBiaXRzIHNfaSA9IGJfKGkr
MSkgLSBiX2kuCisvLyAgICAgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNhbWUgdmFsdWUsIHVzaW5n
IHNpZ25lZCBiaXRzIHNfaSA9IGJfKGktMSkgLSBiX2kuCiAvLyAgICAgVGhpcyByZXByZXNlbnRh
dGlvbiBmcm9tIEJvb3RoJ3MgcGFwZXIgaGFzIHNpbmNlIGFwcGVhcmVkIGluIHRoZQogLy8gICAg
IGxpdGVyYXR1cmUgdW5kZXIgYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBuYW1lcyBpbmNsdWRpbmcg
InJldmVyc2VkIGJpbmFyeQogLy8gICAgIGZvcm0iLCAiYWx0ZXJuYXRpbmcgZ3JlZWR5IGV4cGFu
c2lvbiIsICJtdXR1YWwgb3Bwb3NpdGUgZm9ybSIsIGFuZApAQCAtNzMsNyArNzQsNyBAQAogLy8g
KDE5NjEpLCBwcC4gNjctOTEpLCBpbiBhIHJhZGl4LTJeNSBzZXR0aW5nLiAgVGhhdCBpcywgd2Ug
YWx3YXlzIGNvbWJpbmUgZml2ZQogLy8gc2lnbmVkIGJpdHMgaW50byBhIHNpZ25lZCBkaWdpdDoK
IC8vCi0vLyAgICAgICBzXyg0aiArIDQpIHNfKDRqICsgMykgc18oNGogKyAyKSBzXyg0aiArIDEp
IHNfKDRqKQorLy8gICAgICAgc18oNWogKyA0KSBzXyg1aiArIDMpIHNfKDVqICsgMikgc18oNWog
KyAxKSBzXyg1aikKIC8vCiAvLyBUaGUgc2lnbi1hbHRlcm5hdGluZyBwcm9wZXJ0eSBpbXBsaWVz
IHRoYXQgdGhlIHJlc3VsdGluZyBkaWdpdCB2YWx1ZXMgYXJlCiAvLyBpbnRlZ2VycyBmcm9tIC0x
NiB0byAxNi4KQEAgLTgxLDE0ICs4MiwxNjQgQEAKIC8vIE9mIGNvdXJzZSwgd2UgZG9uJ3QgYWN0
dWFsbHkgbmVlZCB0byBjb21wdXRlIHRoZSBzaWduZWQgZGlnaXRzIHNfaSBhcyBhbgogLy8gaW50
ZXJtZWRpYXRlIHN0ZXAgKHRoYXQncyBqdXN0IGEgbmljZSB3YXkgdG8gc2VlIGhvdyB0aGlzIHNj
aGVtZSByZWxhdGVzCiAvLyB0byB0aGUgd05BRik6IGEgZGlyZWN0IGNvbXB1dGF0aW9uIG9idGFp
bnMgdGhlIHJlY29kZWQgZGlnaXQgZnJvbSB0aGUKLS8vIHNpeCBiaXRzIGJfKDRqICsgNCkgLi4u
IGJfKDRqIC0gMSkuCisvLyBzaXggYml0cyBiXyg1aiArIDQpIC4uLiBiXyg1aiAtIDEpLgogLy8K
LS8vIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhvc2UgZml2ZSBiaXRzIGFzIGFuIGludGVnZXIgKDAg
Li4gNjMpLCB3cml0aW5nIHRoZQorLy8gVGhpcyBmdW5jdGlvbiB0YWtlcyB0aG9zZSBzaXggYml0
cyBhcyBhbiBpbnRlZ2VyICgwIC4uIDYzKSwgd3JpdGluZyB0aGUKIC8vIHJlY29kZWQgZGlnaXQg
dG8gKnNpZ24gKDAgZm9yIHBvc2l0aXZlLCAxIGZvciBuZWdhdGl2ZSkgYW5kICpkaWdpdCAoYWJz
b2x1dGUKLS8vIHZhbHVlLCBpbiB0aGUgcmFuZ2UgMCAuLiA4KS4gIE5vdGUgdGhhdCB0aGlzIGlu
dGVnZXIgZXNzZW50aWFsbHkgcHJvdmlkZXMgdGhlCi0vLyBpbnB1dCBiaXRzICJzaGlmdGVkIHRv
IHRoZSBsZWZ0IiBieSBvbmUgcG9zaXRpb246IGZvciBleGFtcGxlLCB0aGUgaW5wdXQgdG8KLS8v
IGNvbXB1dGUgdGhlIGxlYXN0IHNpZ25pZmljYW50IHJlY29kZWQgZGlnaXQsIGdpdmVuIHRoYXQg
dGhlcmUncyBubyBiaXQgYl8tMSwKLS8vIGhhcyB0byBiZSBiXzQgYl8zIGJfMiBiXzEgYl8wIDAu
CisvLyB2YWx1ZSwgaW4gdGhlIHJhbmdlIDAgLi4gMTYpLiAgTm90ZSB0aGF0IHRoaXMgaW50ZWdl
ciBlc3NlbnRpYWxseSBwcm92aWRlcworLy8gdGhlIGlucHV0IGJpdHMgInNoaWZ0ZWQgdG8gdGhl
IGxlZnQiIGJ5IG9uZSBwb3NpdGlvbjogZm9yIGV4YW1wbGUsIHRoZSBpbnB1dAorLy8gdG8gY29t
cHV0ZSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgcmVjb2RlZCBkaWdpdCwgZ2l2ZW4gdGhhdCB0aGVy
ZSdzIG5vIGJpdAorLy8gYl8tMSwgaGFzIHRvIGJlIGJfNCBiXzMgYl8yIGJfMSBiXzAgMC4KKy8v
CisvLyBET1VCTElORyBDQVNFOgorLy8KKy8vIFBvaW50IGFkZGl0aW9uIGZvcm11bGFzIGZvciBz
aG9ydCBXZWllcnN0cmFzcyBjdXJ2ZXMgYXJlIG9mdGVuIGluY29tcGxldGUuCisvLyBFZGdlIGNh
c2VzIHN1Y2ggYXMgUCArIFAgb3IgUCArIOKIniBtdXN0IGJlIGhhbmRsZWQgc2VwYXJhdGVseS4g
VGhpcworLy8gY29tcGxpY2F0ZXMgY29uc3RhbnQtdGltZSByZXF1aXJlbWVudHMuIFAgKyDiiJ4g
Y2Fubm90IGJlIGF2b2lkZWQgKGFueSB3aW5kb3cKKy8vIG1heSBiZSB6ZXJvKSBhbmQgaXMgaGFu
ZGxlZCB3aXRoIGNvbnN0YW50LXRpbWUgc2VsZWN0cy4gUCArIFAgKHdoZXJlIFAgaXMgbm90Cisv
LyDiiJ4pIHVzdWFsbHkgaXMgbm90LiBJbnN0ZWFkLCB3aW5kb3dpbmcgc3RyYXRlZ2llcyBhcmUg
Y2hvc2VuIHRvIGF2b2lkIHRoaXMKKy8vIGNhc2UuIFdoZXRoZXIgdGhpcyBoYXBwZW5zIGRlcGVu
ZHMgb24gdGhlIGdyb3VwIG9yZGVyLgorLy8KKy8vIExldCB3IGJlIHRoZSB3aW5kb3cgd2lkdGgg
KGluIHRoaXMgZnVuY3Rpb24sIHcgPSA1KS4gVGhlIG5vbi10cml2aWFsIGRvdWJsaW5nCisvLyBj
YXNlIGluIHNpbmdsZS1wb2ludCBzY2FsYXIgbXVsdGlwbGljYXRpb24gbWF5IG9jY3VyIGlmIGFu
ZCBvbmx5IGlmIHRoZQorLy8gMl4ody0xKSBiaXQgb2YgdGhlIGdyb3VwIG9yZGVyIGlzIHplcm8u
CisvLworLy8gTm90ZSB0aGUgYWJvdmUgb25seSBob2xkcyBpZiB0aGUgc2NhbGFyIGlzIGZ1bGx5
IHJlZHVjZWQgYW5kIHRoZSBncm91cCBvcmRlcgorLy8gaXMgYSBwcmltZSB0aGF0IGlzIG11Y2gg
bGFyZ2VyIHRoYW4gMl53LiBJdCBhbHNvIG9ubHkgaG9sZHMgd2hlbiB3aW5kb3dzCisvLyBhcmUg
YXBwbGllZCBmcm9tIG1vc3Qgc2lnbmlmaWNhbnQgdG8gbGVhc3Qgc2lnbmlmaWNhbnQsIGRvdWJs
aW5nIGJldHdlZW4gZWFjaAorLy8gd2luZG93LiBJdCBkb2VzIG5vdCBhcHBseSB0byBtb3JlIGNv
bXBsZXggdGFibGUgc3RyYXRlZ2llcyBzdWNoIGFzCisvLyB8RUNfR0ZwX25pc3R6MjU2X21ldGhv
ZHwuCisvLworLy8gUFJPT0Y6CisvLworLy8gTGV0IG4gYmUgdGhlIGdyb3VwIG9yZGVyLiBMZXQg
bCBiZSB0aGUgbnVtYmVyIG9mIGJpdHMgbmVlZGVkIHRvIHJlcHJlc2VudCBuLgorLy8gQXNzdW1l
IHRoZXJlIGV4aXN0cyBzb21lIDAgPD0gayA8IG4gc3VjaCB0aGF0IHNpZ25lZCB3LWJpdCB3aW5k
b3dlZAorLy8gbXVsdGlwbGljYXRpb24gaGl0cyB0aGUgZG91YmxpbmcgY2FzZS4KKy8vCisvLyBX
aW5kb3dlZCBtdWx0aXBsaWNhdGlvbiBjb25zaXN0cyBvZiBpdGVyYXRpbmcgb3ZlciBncm91cHMg
b2Ygc19pIChkZWZpbmVkCisvLyBhYm92ZSBiYXNlZCBvbiBrJ3MgYmluYXJ5IHJlcHJlc2VudGF0
aW9uKSBmcm9tIG1vc3QgdG8gbGVhc3Qgc2lnbmlmaWNhbnQuIEF0CisvLyBpdGVyYXRpb24gaSAo
Zm9yIGkgPSAuLi4sIDN3LCAydywgdywgMCwgc3RhcnRpbmcgZnJvbSB0aGUgbW9zdCBzaWduaWZp
Y2FudAorLy8gd2luZG93KSwgd2U6CisvLworLy8gIDEuIERvdWJsZSB0aGUgYWNjdW11bGF0b3Ig
QSwgdyB0aW1lcy4gTGV0IEFfaSBiZSB0aGUgdmFsdWUgb2YgQSBhdCB0aGlzCisvLyAgICAgcG9p
bnQuCisvLworLy8gIDIuIFNldCBBIHRvIFRfaSArIEFfaSwgd2hlcmUgVF9pIGlzIGEgcHJlY29t
cHV0ZWQgbXVsdGlwbGUgb2YgUAorLy8gICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHdpbmRvdyBz
XyhpK3ctMSkgLi4uIHNfaS4KKy8vCisvLyBMZXQgaiBiZSB0aGUgaW5kZXggc3VjaCB0aGF0IEFf
aiA9IFRfaiDiiaAg4oieLiBMb29raW5nIGF0IEFfaSBhbmQgVF9pIGFzCisvLyBtdWx0aXBsZXMg
b2YgUCwgZGVmaW5lIGFfaSBhbmQgdF9pIHRvIGJlIHNjYWxhciBjb2VmZmljaWVudHMgb2YgQV9p
IGFuZCBUX2kuCisvLyBUaHVzIGFfaiA9IHRfaiDiiaAgMCAobW9kIG4pLiBOb3RlIGFfaSBhbmQg
dF9pIG1heSBub3QgYmUgcmVkdWNlZCBtb2Qgbi4gdF9pIGlzCisvLyB0aGUgdmFsdWUgb2YgdGhl
IHcgc2lnbmVkIGJpdHMgc18oaSt3LTEpIC4uLiBzX2kuIGFfaSBpcyBjb21wdXRlZCBhcyBhX2kg
PQorLy8gMl53ICogKGFfKGkrdykgKyB0XyhpK3cpKS4KKy8vCisvLyB0X2kgaXMgYm91bmRlZCBi
eSAtMl4ody0xKSA8PSB0X2kgPD0gMl4ody0xKS4gQWRkaXRpb25hbGx5LCB3ZSBtYXkgd3JpdGUg
aXQKKy8vIGluIHRlcm1zIG9mIHVuc2lnbmVkIGJpdHMgYl9pLiB0X2kgY29uc2lzdHMgb2Ygc2ln
bmVkIGJpdHMgc18oaSt3LTEpIC4uLiBzX2kuCisvLyBUaGlzIGlzIGNvbXB1dGVkIGFzOgorLy8K
Ky8vICAgICAgICAgYl8oaSt3LTIpIGJfKGkrdy0zKSAgLi4uICBiX2kgICAgICBiXyhpLTEpCisv
LyAgICAgIC0gIGJfKGkrdy0xKSBiXyhpK3ctMikgIC4uLiAgYl8oaSsxKSAgYl9pCisvLyAgICAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICB0X2kg
PSBzXyhpK3ctMSkgc18oaSt3LTIpICAuLi4gIHNfKGkrMSkgIHNfaQorLy8KKy8vIE9ic2VydmUg
dGhhdCBiXyhpK3ctMikgdGhyb3VnaCBiX2kgb2NjdXIgaW4gYm90aCB0ZXJtcy4gTGV0IHggYmUg
dGhlIGludGVnZXIKKy8vIHJlcHJlc2VudGVkIGJ5IHRoYXQgYml0IHN0cmluZywgaS5lLiAyXih3
LTIpKmJfKGkrdy0yKSArIC4uLiArIGJfaS4KKy8vCisvLyAgIHRfaSA9ICgyKnggKyBiXyhpLTEp
KSAtICgyXih3LTEpKmJfKGkrdy0xKSArIHgpCisvLyAgICAgICA9IHggLSAyXih3LTEpKmJfKGkr
dy0xKSArIGJfKGktMSkKKy8vCisvLyBPciwgdXNpbmcgQyBub3RhdGlvbiBmb3IgYml0IG9wZXJh
dGlvbnM6CisvLworLy8gICB0X2kgPSAoaz4+aSkgJiAoKDE8PCh3LTEpKSAtIDEpIC0gKGs+Pmkp
ICYgKDE8PCh3LTEpKSArIChrPj4oaS0xKSkgJiAxCisvLworLy8gTm90ZSBiXyhpLTEpIGlzIGFk
ZGVkIGluIGxlZnQtc2hpZnRlZCBieSBvbmUgKG9yIGRvdWJsZWQpIGZyb20gaXRzIHBsYWNlLgor
Ly8gVGhpcyBpcyBjb21wZW5zYXRlZCBieSB0XyhpLXcpJ3Mgc3VidHJhY3Rpb24gdGVybS4gVGh1
cywgYV9pIG1heSBiZSBjb21wdXRlZAorLy8gYnkgYWRkaW5nIGJfbCBiXyhsLTEpIC4uLiBiXyhp
KzEpIGJfaSBhbmQgYW4gZXh0cmEgY29weSBvZiBiXyhpLTEpLiBJbiBDCisvLyBub3RhdGlvbiwg
dGhpcyBpczoKKy8vCisvLyAgIGFfaSA9IChrPj4oaSt3KSkgPDwgdyArICgoaz4+KGkrdy0xKSkg
JiAxKSA8PCB3CisvLworLy8gT2JzZXJ2ZSB0aGF0LCB3aGlsZSB0X2kgbWF5IGJlIHBvc2l0aXZl
IG9yIG5lZ2F0aXZlLCBhX2kgaXMgYm91bmRlZCBieQorLy8gMCA8PSBhX2kgPCBuICsgMl53LiBB
ZGRpdGlvbmFsbHksIGFfaSBjYW4gb25seSBiZSB6ZXJvIGlmIGJfKGkrdy0xKSBhbmQgdXAKKy8v
IGFyZSBhbGwgemVyby4gKE5vdGUgdGhpcyBpbXBsaWVzIGEgbm9uLXRyaXZpYWwgUCArICgtUCkg
aXMgdW5yZWFjaGFibGUgZm9yCisvLyBhbGwgZ3JvdXBzLiBUaGF0IHdvdWxkIGltcGx5IHRoZSBz
dWJzZXF1ZW50IGFfaSBpcyB6ZXJvLCB3aGljaCBtZWFucyBhbGwKKy8vIHRlcm1zIHRodXMgZmFy
IHdlcmUgemVyby4pCisvLworLy8gUmV0dXJuaW5nIHRvIG91ciBkb3VibGluZyBwb3NpdGlvbiwg
d2UgaGF2ZSBhX2ogPSB0X2ogKG1vZCBuKS4gV2Ugbm93CisvLyBkZXRlcm1pbmUgdGhlIHZhbHVl
IG9mIGFfaiAtIHRfaiwgd2hpY2ggbXVzdCBiZSBkaXZpc2libGUgYnkgbi4gT3VyIGJvdW5kcyBv
bgorLy8gYV9qIGFuZCB0X2ogaW1wbHkgYV9qIC0gdF9qIGlzIDAgb3Igbi4gSWYgaXQgaXMgMCwg
YV9qID0gdF9qLiBIb3dldmVyLCAyXncKKy8vIGRpdmlkZXMgYV9qIGFuZCAtMl4ody0xKSA8PSB0
X2ogPD0gMl4ody0xKSwgc28gdGhpcyBjYW4gb25seSBoYXBwZW4gaWYKKy8vIGFfaiA9IHRfaiA9
IDAsIHdoaWNoIGlzIGEgdHJpdmlhbCBkb3VibGluZy4gVGhlcmVmb3JlLCBhX2ogLSB0X2ogPSBu
LgorLy8KKy8vIE5vdyB3ZSBkZXRlcm1pbmUgai4gU3VwcG9zZSBqID4gMC4gdyBkaXZpZGVzIGos
IHNvIGogPj0gdy4gVGhlbiwKKy8vCisvLyAgIG4gPSBhX2ogLSB0X2ogPSAoaz4+KGordykpIDw8
IHcgKyAoKGs+PihqK3ctMSkpICYgMSkgPDwgdyAtIHRfagorLy8gICAgICAgICAgICAgICAgPD0g
ay8yXmogKyAyXncgLSB0X2oKKy8vICAgICAgICAgICAgICAgICA8IG4vMl53ICsgMl53ICsgMl4o
dy0xKQorLy8KKy8vIG4gaXMgbXVjaCBsYXJnZXIgdGhhbiAyXncsIHNvIHRoaXMgaXMgaW1wb3Nz
aWJsZS4gVGh1cywgaiA9IDA6IG9ubHkgdGhlIGZpbmFsCisvLyBhZGRpdGlvbiBtYXkgaGl0IHRo
ZSBkb3VibGluZyBjYXNlLgorLy8KKy8vIEZpbmFsbHksIHdlIGNvbnNpZGVyIGJpdCBwYXR0ZXJu
cyBmb3IgbiBhbmQgay4gRGl2aWRlIGsgaW50byBrX0ggKyBrX00gKyBrX0wKKy8vIHN1Y2ggdGhh
dCBrX0ggaXMgdGhlIGNvbnRyaWJ1dGlvbiBmcm9tIGJfKGwtMSkgLi4gYl93LCBrX00gaXMgdGhl
CisvLyBjb250cmlidXRpb24gZnJvbSBiXyh3LTEpLCBhbmQga19MIGlzIHRoZSBjb250cmlidXRp
b24gZnJvbSBiXyh3LTIpIC4uLiBiXzAuCisvLyBUaGF0IGlzOgorLy8KKy8vIC0gMl53IGRpdmlk
ZXMga19ICisvLyAtIGtfTSBpcyAwIG9yIDJeKHctMSkKKy8vIC0gMCA8PSBrX0wgPCAyXih3LTEp
CisvLworLy8gRGl2aWRlIG4gaW50byBuX0ggKyBuX00gKyBuX0wgc2ltaWxhcmx5LiBXZSB0aHVz
IGhhdmU6CisvLworLy8gICB0XzAgPSAoaz4+MCkgJiAoKDE8PCh3LTEpKSAtIDEpIC0gKGs+PjAp
ICYgKDE8PCh3LTEpKSArIChrPj4oMC0xKSkgJiAxCisvLyAgICAgICA9IGsgJiAoKDE8PCh3LTEp
KSAtIDEpIC0gayAmICgxPDwody0xKSkKKy8vICAgICAgID0ga19MIC0ga19NCisvLworLy8gICBh
XzAgPSAoaz4+KDArdykpIDw8IHcgKyAoKGs+PigwK3ctMSkpICYgMSkgPDwgdworLy8gICAgICAg
PSAoaz4+dykgPDwgdyArICgoaz4+KHctMSkpICYgMSkgPDwgdworLy8gICAgICAgPSBrX0ggKyAy
KmtfTQorLy8KKy8vICAgICAgICAgICAgICAgICBuID0gYV8wIC0gdF8wCisvLyAgIG5fSCArIG5f
TSArIG5fTCA9IChrX0ggKyAyKmtfTSkgLSAoa19MIC0ga19NKQorLy8gICAgICAgICAgICAgICAg
ICAgPSBrX0ggKyAzKmtfTSAtIGtfTAorLy8KKy8vIGtfSCAtIGtfTCA8IGsgYW5kIGsgPCBuLCBz
byBrX0ggLSBrX0wg4omgIG4uIFRoZXJlZm9yZSBrX00gaXMgbm90IDAgYW5kIG11c3QgYmUKKy8v
IDJeKHctMSkuIE5vdyB3ZSBjb25zaWRlciBrX0ggYW5kIG5fSC4gV2Uga25vdyBrX0ggPD0gbl9I
LiBTdXBwb3NlIGtfSCA9IG5fSC4KKy8vIFRoZW4sCisvLworLy8gICBuX00gKyBuX0wgPSAzKigy
Xih3LTEpKSAtIGtfTAorLy8gICAgICAgICAgICAgPiAzKigyXih3LTEpKSAtIDJeKHctMSkKKy8v
ICAgICAgICAgICAgID0gMl53CisvLworLy8gQ29udHJhZGljdGlvbiAobl9NICsgbl9MIGlzIHRo
ZSBib3R0b20gdyBiaXRzIG9mIG4pLiBUaHVzIGtfSCA8IG5fSC4gU3VwcG9zZQorLy8ga19IIDwg
bl9IIC0gMioyXncuIFRoZW4sCisvLworLy8gICBuX0ggKyBuX00gKyBuX0wgPSBrX0ggKyAzKigy
Xih3LTEpKSAtIGtfTAorLy8gICAgICAgICAgICAgICAgICAgPCBuX0ggLSAyKjJedyArIDMqKDJe
KHctMSkpIC0ga19MCisvLyAgICAgICAgIG5fTSArIG5fTCA8IC0yXih3LTEpIC0ga19MCisvLwor
Ly8gQ29udHJhZGljdGlvbi4gVGh1cywga19IID0gbl9IIC0gMl53LiAoTm90ZSAyXncgZGl2aWRl
cyBuX0ggYW5kIGtfSC4pIFRodXMsCisvLworLy8gICBuX0ggKyBuX00gKyBuX0wgPSBrX0ggKyAz
KigyXih3LTEpKSAtIGtfTAorLy8gICAgICAgICAgICAgICAgICAgPSBuX0ggLSAyXncgKyAzKigy
Xih3LTEpKSAtIGtfTAorLy8gICAgICAgICBuX00gKyBuX0wgPSAyXih3LTEpIC0ga19MCisvLyAg
ICAgICAgICAgICAgICAgIDw9IDJeKHctMSkKKy8vCisvLyBFcXVhbGl0eSB3b3VsZCBtZWFuIDJe
KHctMSkgZGl2aWRlcyBuLCB3aGljaCBpcyBpbXBvc3NpYmxlIGlmIG4gaXMgcHJpbWUuCisvLyBU
aHVzIG5fTSArIG5fTCA8IDJeKHctMSksIHNvIG5fTSBpcyB6ZXJvLCBwcm92aW5nIG91ciBjb25k
aXRpb24uCisvLworLy8gVGhpcyBwcm9vZiBjb25zdHJ1Y3RzIGssIHNvLCB0byBzaG93IHRoZSBj
b252ZXJzZSwgbGV0IGtfSCA9IG5fSCAtIDJedywKKy8vIGtfTSA9IDJeKHctMSksIGtfTCA9IDJe
KHctMSkgLSBuX0wuIFRoaXMgd2lsbCByZXN1bHQgaW4gYSBub24tdHJpdmlhbCBwb2ludAorLy8g
ZG91YmxpbmcgaW4gdGhlIGZpbmFsIGFkZGl0aW9uIGFuZCBpcyB0aGUgb25seSBzdWNoIHNjYWxh
ci4KKy8vCisvLyBDT01NT04gQ1VSVkVTOgorLy8KKy8vIFRoZSBncm91cCBvcmRlcnMgZm9yIGNv
bW1vbiBjdXJ2ZXMgZW5kIGluIHRoZSBmb2xsb3dpbmcgYml0IHBhdHRlcm5zOgorLy8KKy8vICAg
UC01MjE6IC4uLjAwMDAxMDAxOyB3ID0gNCBpcyBva2F5CisvLyAgIFAtMzg0OiAuLi4wMTExMDAx
MTsgdyA9IDIsIDUsIDYsIDcgYXJlIG9rYXkKKy8vICAgUC0yNTY6IC4uLjAxMDEwMDAxOyB3ID0g
NSwgNyBhcmUgb2theQorLy8gICBQLTIyNDogLi4uMDAxMTExMDE7IHcgPSAzLCA0LCA1LCA2IGFy
ZSBva2F5CiB2b2lkIGVjX0dGcF9uaXN0cF9yZWNvZGVfc2NhbGFyX2JpdHModWludDhfdCAqc2ln
biwgdWludDhfdCAqZGlnaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dWludDhfdCBpbikgewogICB1aW50OF90IHMsIGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Zp
cHNtb2R1bGUvZWNkaC9lY2RoLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWNkaC9lY2RoLmMK
aW5kZXggYjlkYzIzNzRmODZjODkwZDk0MzU0MTE2MThmNWIzYzc5ZWFjMjIzNS4uYTdiMmYwOGI0
Mjc3MDNkNTYzYzQxYTMwNjQ1ZjVmMmVlMTNiNzVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL2VjZGgvZWNkaC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lY2RoL2Vj
ZGguYwpAQCAtOTMsNyArOTMsNyBAQCBpbnQgRUNESF9jb21wdXRlX2tleV9maXBzKHVpbnQ4X3Qg
Km91dCwgc2l6ZV90IG91dF9sZW4sIGNvbnN0IEVDX1BPSU5UICpwdWJfa2V5LAogICBFQ19SQVdf
UE9JTlQgc2hhcmVkX3BvaW50OwogICB1aW50OF90IGJ1ZltFQ19NQVhfQllURVNdOwogICBzaXpl
X3QgYnVmbGVuOwotICBpZiAoIWVjX3BvaW50X211bF9zY2FsYXIoZ3JvdXAsICZzaGFyZWRfcG9p
bnQsIE5VTEwsICZwdWJfa2V5LT5yYXcsIHByaXYpIHx8CisgIGlmICghZWNfcG9pbnRfbXVsX3Nj
YWxhcihncm91cCwgJnNoYXJlZF9wb2ludCwgJnB1Yl9rZXktPnJhdywgcHJpdikgfHwKICAgICAg
ICFlY19wb2ludF9nZXRfYWZmaW5lX2Nvb3JkaW5hdGVfYnl0ZXMoZ3JvdXAsIGJ1ZiwgTlVMTCwg
JmJ1ZmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZW9mKGJ1ZiksICZzaGFyZWRfcG9pbnQpKSB7CiAgICAgT1BFTlNTTF9QVVRfRVJST1IoRUNESCwg
RUNESF9SX1BPSU5UX0FSSVRITUVUSUNfRkFJTFVSRSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvZWNkc2EvZWNkc2EuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lY2RzYS9l
Y2RzYS5jCmluZGV4IDAxMGVlMDIzNTRkNTc4NDhlMDAzZDgzZTM1ZGE4MWM1YWEwOGZiZmMuLjM4
NzcxZDU4ZTY1ODRjNTgyNDBmNjMxMmM3ZjUzMjEzMWI4ZDU1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9lY2RzYS9lY2RzYS5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVs
ZS9lY2RzYS9lY2RzYS5jCkBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIGludCBlY2RzYV9zaWdu
X3NldHVwKGNvbnN0IEVDX0tFWSAqZWNrZXksIEVDX1NDQUxBUiAqb3V0X2tpbnZfbW9udCwKICAg
ICBlY19zY2FsYXJfZnJvbV9tb250Z29tZXJ5KGdyb3VwLCBvdXRfa2ludl9tb250LCBvdXRfa2lu
dl9tb250KTsKIAogICAgIC8vIENvbXB1dGUgciwgdGhlIHgtY29vcmRpbmF0ZSBvZiBnZW5lcmF0
b3IgKiBrLgotICAgIGlmICghZWNfcG9pbnRfbXVsX3NjYWxhcihncm91cCwgJnRtcF9wb2ludCwg
JmssIE5VTEwsIE5VTEwpIHx8CisgICAgaWYgKCFlY19wb2ludF9tdWxfc2NhbGFyX2Jhc2UoZ3Jv
dXAsICZ0bXBfcG9pbnQsICZrKSB8fAogICAgICAgICAhZWNfZ2V0X3hfY29vcmRpbmF0ZV9hc19z
Y2FsYXIoZ3JvdXAsIG91dF9yLCAmdG1wX3BvaW50KSkgewogICAgICAgZ290byBlcnI7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2ZpcHNfc2hhcmVkLmxkcyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vZmlwc21vZHVsZS9maXBzX3NoYXJlZC5sZHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ0NGFiYzRj
ZjYyMGU0MzUyYmYyNDNkOGM3OGU5NzM2YmI0Y2M5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9maXBzX3NoYXJlZC5sZHMKQEAgLTAsMCArMSwxOSBAQAorU0VDVElP
TlMKK3sKKyAgLnRleHQgOiB7CisgICAgQk9SSU5HU1NMX2JjbV90ZXh0X3N0YXJ0ID0gLjsKKyAg
ICAqKC50ZXh0KQorICAgIEJPUklOR1NTTF9iY21fdGV4dF9lbmQgPSAuOworICB9CisgIC5yb2Rh
dGEgOiB7CisgICAgQk9SSU5HU1NMX2JjbV9yb2RhdGFfc3RhcnQgPSAuOworICAgICooLnJvZGF0
YSkKKyAgICBCT1JJTkdTU0xfYmNtX3JvZGF0YV9lbmQgPSAuOworICB9CisKKyAgL0RJU0NBUkQv
IDogeworICAgICooLnJlbGEuZHluKQorICAgICooLmRhdGEpCisgICAgKigucmVsLnJvKQorICB9
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZmlwc19zaGFyZWRfc3VwcG9y
dC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2ZpcHNfc2hhcmVkX3N1cHBvcnQuYwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYTY2YTFmMDY0NDljMGQzNDZlNmFlZTQ1MWY1ZTIwMWViOWQxZTE4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2ZpcHNfc2hhcmVkX3N1cHBvcnQuYwpAQCAt
MCwwICsxLDMyIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTksIEdvb2dsZSBJbmMuCisgKgorICog
UGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBz
b2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5
IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRI
RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBB
TEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcg
QUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVD
SUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERB
TUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1Ig
UFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNF
IE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5F
Q1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisK
KyNpbmNsdWRlIDxzdGRpbnQuaD4KKworCisjaWYgZGVmaW5lZChCT1JJTkdTU0xfRklQUykgJiYg
ZGVmaW5lZChCT1JJTkdTU0xfU0hBUkVEX0xJQlJBUlkpCisvLyBCT1JJTkdTU0xfYmNtX3RleHRf
aGFzaCBpcyBpcyBkZWZhdWx0IGhhc2ggdmFsdWUgZm9yIHRoZSBGSVBTIGludGVncml0eSBjaGVj
aworLy8gdGhhdCBtdXN0IGJlIHJlcGxhY2VkIHdpdGggdGhlIHJlYWwgdmFsdWUgZHVyaW5nIHRo
ZSBidWlsZCBwcm9jZXNzLiBUaGlzCisvLyB2YWx1ZSBuZWVkIG9ubHkgYmUgZGlzdGluY3QsIGku
ZS4gc28gdGhhdCB3ZSBjYW4gc2FmZWx5IHNlYXJjaC1hbmQtcmVwbGFjZSBpdAorLy8gaW4gYW4g
b2JqZWN0IGZpbGUuCitjb25zdCB1aW50OF90IEJPUklOR1NTTF9iY21fdGV4dF9oYXNoWzY0XTsK
K2NvbnN0IHVpbnQ4X3QgQk9SSU5HU1NMX2JjbV90ZXh0X2hhc2hbNjRdID0geworICAgIDB4YWUs
IDB4MmMsIDB4ZWEsIDB4MmEsIDB4YmQsIDB4YTYsIDB4ZjMsIDB4ZWMsIDB4OTcsIDB4N2YsIDB4
OWIsCisgICAgMHhmNiwgMHg5NCwgMHg5YSwgMHhmYywgMHg4MywgMHg2OCwgMHgyNywgMHhjYiwg
MHhhMCwgMHhhMCwgMHg5ZiwKKyAgICAweDZiLCAweDZmLCAweGRlLCAweDUyLCAweGNkLCAweGUy
LCAweGNkLCAweGZmLCAweDMxLCAweDgwLCAweGEyLAorICAgIDB4ZDQsIDB4YzMsIDB4NjYsIDB4
MGYsIDB4YzIsIDB4NmEsIDB4N2IsIDB4ZjQsIDB4YmUsIDB4MzksIDB4YTIsCisgICAgMHhkNywg
MHgyNSwgMHhkYiwgMHgyMSwgMHg5OCwgMHhlOSwgMHhkNSwgMHg1MywgMHhiZiwgMHg1YywgMHgz
MiwKKyAgICAweDA2LCAweDgzLCAweDM0LCAweDBjLCAweDY1LCAweDg5LCAweDUyLCAweGJkLCAw
eDFmLAorfTsKKyNlbmRpZiAgLy8gRklQUyAmJiBTSEFSRURfTElCUkFSWQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL21kNC9tZDQuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9t
ZDQvbWQ0LmMKaW5kZXggZjBjMWRjZGYxYWVkMmZhYjEyMWRjZjgxNTkxYjRlNzgyZmQwY2U2YS4u
Y2MyYTYzMTRmMjY1NWQzNjhjNTlmNWQ4NGMwYTkxYzkxNzhhY2MzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9maXBzbW9kdWxlL21kNC9tZDQuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUv
bWQ0L21kNC5jCkBAIC02Miw3ICs2Miw3IEBACiAjaW5jbHVkZSAiLi4vLi4vaW50ZXJuYWwuaCIK
IAogCi11aW50OF90ICpNRDQoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbiwgdWludDhf
dCAqb3V0KSB7Cit1aW50OF90ICpNRDQoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbiwg
dWludDhfdCBvdXRbTUQ0X0RJR0VTVF9MRU5HVEhdKSB7CiAgIE1ENF9DVFggY3R4OwogICBNRDRf
SW5pdCgmY3R4KTsKICAgTUQ0X1VwZGF0ZSgmY3R4LCBkYXRhLCBsZW4pOwpAQCAtODgsNiArODgs
NyBAQCB2b2lkIG1kNF9ibG9ja19kYXRhX29yZGVyKHVpbnQzMl90ICpzdGF0ZSwgY29uc3QgdWlu
dDhfdCAqZGF0YSwgc2l6ZV90IG51bSk7CiAKICNkZWZpbmUgSEFTSF9DVFggTUQ0X0NUWAogI2Rl
ZmluZSBIQVNIX0NCTE9DSyA2NAorI2RlZmluZSBIQVNIX0RJR0VTVF9MRU5HVEggMTYKICNkZWZp
bmUgSEFTSF9VUERBVEUgTUQ0X1VwZGF0ZQogI2RlZmluZSBIQVNIX1RSQU5TRk9STSBNRDRfVHJh
bnNmb3JtCiAjZGVmaW5lIEhBU0hfRklOQUwgTUQ0X0ZpbmFsCkBAIC0yMzgsNiArMjM5LDcgQEAg
dm9pZCBtZDRfYmxvY2tfZGF0YV9vcmRlcih1aW50MzJfdCAqc3RhdGUsIGNvbnN0IHVpbnQ4X3Qg
KmRhdGEsIHNpemVfdCBudW0pIHsKICN1bmRlZiBEQVRBX09SREVSX0lTX0xJVFRMRV9FTkRJQU4K
ICN1bmRlZiBIQVNIX0NUWAogI3VuZGVmIEhBU0hfQ0JMT0NLCisjdW5kZWYgSEFTSF9ESUdFU1Rf
TEVOR1RICiAjdW5kZWYgSEFTSF9VUERBVEUKICN1bmRlZiBIQVNIX1RSQU5TRk9STQogI3VuZGVm
IEhBU0hfRklOQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tZDUvYXNtL21k
NS01ODYucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1L2FzbS9tZDUtNTg2LnBsCmluZGV4
IGRlZDk0NDI1ZDVkMGJmYmM4ZDVkZTliOTQ3ODc2YTk4MTgwMTQzOTcuLjIwYzIyNmJjMjEyNGUw
YTk0NTM5MmNiOTQ3MjA3Y2FhNzk1MGNlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21v
ZHVsZS9tZDUvYXNtL21kNS01ODYucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21kNS9h
c20vbWQ1LTU4Ni5wbApAQCAtMzYsNyArMzYsNyBAQCAkWD0iZXNpIjsKICZtZDVfYmxvY2soIm1k
NV9ibG9ja19hc21fZGF0YV9vcmRlciIpOwogJmFzbV9maW5pc2goKTsKIAotY2xvc2UgU1RET1VU
OworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwogCiBzdWIgTnAK
IAl7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1L2FzbS9tZDUteDg2XzY0
LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21kNS9hc20vbWQ1LXg4Nl82NC5wbAppbmRleCA1
NjhmNGY1ZDkyNGZkZWE0NWE3ODQwYmZmNDkwZGVjZGI5MTk0NTM1Li41MDliY2RlYWQ2MGZlZmYx
OTU3N2E4MjQzMWE0ZWQzOTA0ZGZhYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvbWQ1L2FzbS9tZDUteDg2XzY0LnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tZDUv
YXNtL21kNS14ODZfNjQucGwKQEAgLTEzMCwxMSArMTMwLDE3IEBAICRjb2RlIC49IDw8RU9GOwog
Lmdsb2JsIG1kNV9ibG9ja19hc21fZGF0YV9vcmRlcgogLnR5cGUgbWQ1X2Jsb2NrX2FzbV9kYXRh
X29yZGVyLFxAZnVuY3Rpb24sMwogbWQ1X2Jsb2NrX2FzbV9kYXRhX29yZGVyOgorLmNmaV9zdGFy
dHByb2MKIAlwdXNoCSVyYnAKKy5jZmlfcHVzaAlyYnAKIAlwdXNoCSVyYngKKy5jZmlfcHVzaAly
YngKIAlwdXNoCSVyMTIKKy5jZmlfcHVzaAlyMTIKIAlwdXNoCSVyMTQKKy5jZmlfcHVzaAlyMTQK
IAlwdXNoCSVyMTUKKy5jZmlfcHVzaAlyMTUKIC5McHJvbG9ndWU6CiAKIAkjIHJkaSA9IGFyZyAj
MSAoY3R4LCBNRDVfQ1RYIHBvaW50ZXIpCkBAIC0yNTEsMTMgKzI1NywyMCBAQCAkY29kZSAuPSA8
PEVPRjsKIAltb3YJJWVkeCwJCTMqNCglcmJwKQkjIGN0eC0+RCA9IEQKIAogCW1vdgkoJXJzcCks
JXIxNQorLmNmaV9yZXN0b3JlIHIxNQogCW1vdgk4KCVyc3ApLCVyMTQKKy5jZmlfcmVzdG9yZSBy
MTQKIAltb3YJMTYoJXJzcCksJXIxMgorLmNmaV9yZXN0b3JlIHIxMgogCW1vdgkyNCglcnNwKSwl
cmJ4CisuY2ZpX3Jlc3RvcmUgcmJ4CiAJbW92CTMyKCVyc3ApLCVyYnAKKy5jZmlfcmVzdG9yZSBy
YnAKIAlhZGQJXCQ0MCwlcnNwCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CS00MAogLkxlcGlsb2d1
ZToKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUgbWQ1X2Jsb2NrX2FzbV9kYXRhX29yZGVyLC4t
bWQ1X2Jsb2NrX2FzbV9kYXRhX29yZGVyCiBFT0YKIApAQCAtMzY3LDQgKzM4MCw0IEBAIF9fXwog
CiBwcmludCAkY29kZTsKIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJy
b3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21k
NS9pbnRlcm5hbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21kNS9pbnRlcm5hbC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjllZTlmMTNhMGVkNWI2YzE0ZjFiMjA5YThkNGZkYTJmNjU0MTgyYTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1L2ludGVybmFsLmgKQEAgLTAsMCAr
MSwzNyBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE4LCBHb29nbGUgSW5jLgorICoKKyAqIFBlcm1p
c3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdh
cmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFu
dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdB
UlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorICogU1BFQ0lBTCwg
RElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VT
CisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJ
VFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBP
VEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9O
IFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLworCisjaWZu
ZGVmIE9QRU5TU0xfSEVBREVSX01ENV9JTlRFUk5BTF9ICisjZGVmaW5lIE9QRU5TU0xfSEVBREVS
X01ENV9JTlRFUk5BTF9ICisKKyNpbmNsdWRlIDxvcGVuc3NsL2Jhc2UuaD4KKworI2lmIGRlZmlu
ZWQoX19jcGx1c3BsdXMpCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKyNpZiAhZGVmaW5lZChP
UEVOU1NMX05PX0FTTSkgJiYgXAorICAgIChkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSB8fCBkZWZp
bmVkKE9QRU5TU0xfWDg2KSkKKyNkZWZpbmUgTUQ1X0FTTQorZXh0ZXJuIHZvaWQgbWQ1X2Jsb2Nr
X2FzbV9kYXRhX29yZGVyKHVpbnQzMl90ICpzdGF0ZSwgY29uc3QgdWludDhfdCAqZGF0YSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtKTsKKyNlbmRpZgor
CisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorfSAgLy8gZXh0ZXJuICJDIgorI2VuZGlmCisK
KyNlbmRpZiAgLy8gT1BFTlNTTF9IRUFERVJfTUQ1X0lOVEVSTkFMX0gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vZmlwc21vZHVsZS9tZDUvbWQ1LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1
L21kNS5jCmluZGV4IDM3MGI0MmEzYWZkZTY1NjM4YmIyZmZhNDUzYjI0OGVkZjhlZTc5MjMuLmE0
OGQ3MDQzMTVjZjFlMGQ2NDFlZmUxNWYxNDUxNmEzMzk1M2VjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9tZDUvbWQ1LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21k
NS9tZDUuYwpAQCAtNjAsMTAgKzYwLDExIEBACiAKICNpbmNsdWRlIDxvcGVuc3NsL21lbS5oPgog
CisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlICIuLi8uLi9pbnRlcm5hbC5oIgogCiAK
LXVpbnQ4X3QgKk1ENShjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuLCB1aW50OF90ICpv
dXQpIHsKK3VpbnQ4X3QgKk1ENShjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuLCB1aW50
OF90IG91dFtNRDVfRElHRVNUX0xFTkdUSF0pIHsKICAgTUQ1X0NUWCBjdHg7CiAgIE1ENV9Jbml0
KCZjdHgpOwogICBNRDVfVXBkYXRlKCZjdHgsIGRhdGEsIGxlbik7CkBAIC04MSwxMiArODIsOCBA
QCBpbnQgTUQ1X0luaXQoTUQ1X0NUWCAqbWQ1KSB7CiAgIHJldHVybiAxOwogfQogCi0jaWYgIWRl
ZmluZWQoT1BFTlNTTF9OT19BU00pICYmIFwKLSAgICAoZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkg
fHwgZGVmaW5lZChPUEVOU1NMX1g4NikpCi0jZGVmaW5lIE1ENV9BU00KKyNpZiBkZWZpbmVkKE1E
NV9BU00pCiAjZGVmaW5lIG1kNV9ibG9ja19kYXRhX29yZGVyIG1kNV9ibG9ja19hc21fZGF0YV9v
cmRlcgotZXh0ZXJuIHZvaWQgbWQ1X2Jsb2NrX2RhdGFfb3JkZXIodWludDMyX3QgKnN0YXRlLCBj
b25zdCB1aW50OF90ICpkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IG51bSk7CiAjZWxzZQogc3RhdGljIHZvaWQgbWQ1X2Jsb2NrX2RhdGFfb3JkZXIodWludDMy
X3QgKnN0YXRlLCBjb25zdCB1aW50OF90ICpkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IG51bSk7CkBAIC05Nyw2ICs5NCw3IEBAIHN0YXRpYyB2b2lkIG1kNV9i
bG9ja19kYXRhX29yZGVyKHVpbnQzMl90ICpzdGF0ZSwgY29uc3QgdWludDhfdCAqZGF0YSwKIAog
I2RlZmluZSBIQVNIX0NUWCBNRDVfQ1RYCiAjZGVmaW5lIEhBU0hfQ0JMT0NLIDY0CisjZGVmaW5l
IEhBU0hfRElHRVNUX0xFTkdUSCAxNgogI2RlZmluZSBIQVNIX1VQREFURSBNRDVfVXBkYXRlCiAj
ZGVmaW5lIEhBU0hfVFJBTlNGT1JNIE1ENV9UcmFuc2Zvcm0KICNkZWZpbmUgSEFTSF9GSU5BTCBN
RDVfRmluYWwKQEAgLTI4NCw2ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBtZDVfYmxvY2tfZGF0YV9v
cmRlcih1aW50MzJfdCAqc3RhdGUsIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCiAjdW5kZWYgREFUQV9P
UkRFUl9JU19MSVRUTEVfRU5ESUFOCiAjdW5kZWYgSEFTSF9DVFgKICN1bmRlZiBIQVNIX0NCTE9D
SworI3VuZGVmIEhBU0hfRElHRVNUX0xFTkdUSAogI3VuZGVmIEhBU0hfVVBEQVRFCiAjdW5kZWYg
SEFTSF9UUkFOU0ZPUk0KICN1bmRlZiBIQVNIX0ZJTkFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvbWQ1L21kNV90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21kNS9t
ZDVfdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGY1YmIyNTk1OThmYzVkNjg5MGEzZDMxZjg1MmQ1MDJm
MTJmZmNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21kNS9tZDVf
dGVzdC5jYwpAQCAtMCwwICsxLDM0IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTgsIEdvb2dsZSBJ
bmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3Ry
aWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBm
ZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVz
LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9S
IERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FS
RSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBV
U0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNU
LCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1Ig
SU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09G
VFdBUkUuICovCisKKyNpbmNsdWRlIDxvcGVuc3NsL21kNS5oPgorCisjaW5jbHVkZSA8Z3Rlc3Qv
Z3Rlc3QuaD4KKworI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAiLi4vLi4vdGVzdC9h
YmlfdGVzdC5oIgorCisKKyNpZiBkZWZpbmVkKE1ENV9BU00pICYmIGRlZmluZWQoU1VQUE9SVFNf
QUJJX1RFU1QpCitURVNUKE1ENVRlc3QsIEFCSSkgeworICBNRDVfQ1RYIGN0eDsKKyAgTUQ1X0lu
aXQoJmN0eCk7CisKKyAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0J1ZltNRDVfQ0JMT0NLICogOF0g
PSB7MH07CisgIENIRUNLX0FCSShtZDVfYmxvY2tfYXNtX2RhdGFfb3JkZXIsIGN0eC5oLCBrQnVm
LCAxKTsKKyAgQ0hFQ0tfQUJJKG1kNV9ibG9ja19hc21fZGF0YV9vcmRlciwgY3R4LmgsIGtCdWYs
IDIpOworICBDSEVDS19BQkkobWQ1X2Jsb2NrX2FzbV9kYXRhX29yZGVyLCBjdHguaCwga0J1Ziwg
NCk7CisgIENIRUNLX0FCSShtZDVfYmxvY2tfYXNtX2RhdGFfb3JkZXIsIGN0eC5oLCBrQnVmLCA4
KTsKK30KKyNlbmRpZiAgLy8gTUQ1X0FTTSAmJiBTVVBQT1JUU19BQklfVEVTVApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9hZXNuaS1nY20teDg2XzY0LnBsIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9hZXNuaS1nY20teDg2XzY0LnBsCmluZGV4
IDNkMDYwMGZiZGZkNjFmNDZkNDFiOTEzMTc4ZDU0OTgyNzVhZTA5OGMuLmQzZTM3NjM2YmU5Y2Ni
MWRhYmUzNzVlOTFkODkzODk3MmU0YTMxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21v
ZHVsZS9tb2Rlcy9hc20vYWVzbmktZ2NtLXg4Nl82NC5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvbW9kZXMvYXNtL2Flc25pLWdjbS14ODZfNjQucGwKQEAgLTY2NCw2ICs2NjQsMTIgQEAg
X2Flc25pX2N0cjMyXzZ4OgogLmFsaWduCTMyCiBhZXNuaV9nY21fZW5jcnlwdDoKIC5jZmlfc3Rh
cnRwcm9jCisjaWZuZGVmIE5ERUJVRworI2lmbmRlZiBCT1JJTkdTU0xfRklQUworLmV4dGVybglC
T1JJTkdTU0xfZnVuY3Rpb25faGl0CisJbW92YiBcJDEsQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCsy
KCVyaXApCisjZW5kaWYKKyNlbmRpZgogCXhvcgkkcmV0LCRyZXQKIAogCSMgV2UgY2FsbCB8X2Fl
c25pX2N0cjMyXzZ4fCB0d2ljZSwgZWFjaCBjYWxsIGNvbnN1bWluZyA5NiBieXRlcyBvZgpAQCAt
MTEzNyw0ICsxMTQzLDQgQEAgJGNvZGUgPX4gcy9cYChbXlxgXSopXGAvZXZhbCgkMSkvZ2VtOwog
CiBwcmludCAkY29kZTsKIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJy
b3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21v
ZGVzL2FzbS9naGFzaC1hcm12NC5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9hc20v
Z2hhc2gtYXJtdjQucGwKaW5kZXggZTkzZTViMzg0MzYzNTI0OWNkYjE3MmJkYjdmNTM4ZTk3YWUw
YzVhOC4uNTRjODBmNzVmYmZlMzI3MmY2NGY0ZmQ5MmI0ZThkNjlmOWY1MjM1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9naGFzaC1hcm12NC5wbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvYXNtL2doYXNoLWFybXY0LnBsCkBAIC0xLDUgKzEs
NSBAQAogIyEgL3Vzci9iaW4vZW52IHBlcmwKLSMgQ29weXJpZ2h0IDIwMTAtMjAxNiBUaGUgT3Bl
blNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjIENvcHlyaWdodCAy
MDEwLTIwMTggVGhlIE9wZW5TU0wgUHJvamVjdCBBdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgogIwogIyBMaWNlbnNlZCB1bmRlciB0aGUgT3BlblNTTCBsaWNlbnNlICh0aGUgIkxpY2Vuc2Ui
KS4gIFlvdSBtYXkgbm90IHVzZQogIyB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0
aCB0aGUgTGljZW5zZS4gIFlvdSBjYW4gb2J0YWluIGEgY29weQpAQCAtMTUwLDYgKzE1MCw4IEBA
ICRjb2RlPTw8X19fOwogLnRleHQKICNpZiBkZWZpbmVkKF9fdGh1bWIyX18pIHx8IGRlZmluZWQo
X19jbGFuZ19fKQogLnN5bnRheAl1bmlmaWVkCisjZGVmaW5lIGxkcnBsYiAgbGRyYnBsCisjZGVm
aW5lIGxkcm5lYiAgbGRyYm5lCiAjZW5kaWYKICNpZiBkZWZpbmVkKF9fdGh1bWIyX18pCiAudGh1
bWIKQEAgLTE1NywxMSArMTU5LDYgQEAgJGNvZGU9PDxfX187CiAuY29kZQkzMgogI2VuZGlmCiAK
LSNpZmRlZiAgX19jbGFuZ19fCi0jZGVmaW5lIGxkcnBsYiAgbGRyYnBsCi0jZGVmaW5lIGxkcm5l
YiAgbGRyYm5lCi0jZW5kaWYKLQogLnR5cGUJcmVtXzRiaXQsJW9iamVjdAogLmFsaWduCTUKIHJl
bV80Yml0OgpAQCAtNTU2LDQgKzU1Myw0IEBAIGZvcmVhY2ggKHNwbGl0KCJcbiIsJGNvZGUpKSB7
CiAKIAlwcmludCAkXywiXG4iOwogfQotY2xvc2UgU1RET1VUOyAjIGVuZm9yY2UgZmx1c2gKK2Ns
b3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsgIyBlbmZvcmNlIGZsdXNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvYXNtL2doYXNoLW5lb24t
YXJtdjgucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvYXNtL2doYXNoLW5lb24tYXJt
djgucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjU3MDE3ZDA1NDdjOTUyMmY0Yjg1ZjhhMjNkM2Y0MzU3MDdjMGI5
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9hc20vZ2hh
c2gtbmVvbi1hcm12OC5wbApAQCAtMCwwICsxLDI4NyBAQAorIyEgL3Vzci9iaW4vZW52IHBlcmwK
KyMgQ29weXJpZ2h0IDIwMTAtMjAxNiBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBPcGVuU1NMIGxpY2Vuc2Ug
KHRoZSAiTGljZW5zZSIpLiAgWW91IG1heSBub3QgdXNlCisjIHRoaXMgZmlsZSBleGNlcHQgaW4g
Y29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IGNhbiBvYnRhaW4gYSBjb3B5CisjIGlu
IHRoZSBmaWxlIExJQ0VOU0UgaW4gdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gb3IgYXQKKyMgaHR0
cHM6Ly93d3cub3BlbnNzbC5vcmcvc291cmNlL2xpY2Vuc2UuaHRtbAorCisjID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisjIFdyaXR0ZW4gYnkgQW5keSBQb2x5YWtvdiA8YXBwcm9Ab3BlbnNzbC5vcmc+IGZvciB0aGUg
T3BlblNTTAorIyBwcm9qZWN0LiBUaGUgbW9kdWxlIGlzLCBob3dldmVyLCBkdWFsIGxpY2Vuc2Vk
IHVuZGVyIE9wZW5TU0wgYW5kCisjIENSWVBUT0dBTVMgbGljZW5zZXMgZGVwZW5kaW5nIG9uIHdo
ZXJlIHlvdSBvYnRhaW4gaXQuIEZvciBmdXJ0aGVyCisjIGRldGFpbHMgc2VlIGh0dHA6Ly93d3cu
b3BlbnNzbC5vcmcvfmFwcHJvL2NyeXB0b2dhbXMvLgorIyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFRoaXMg
ZmlsZSB3YXMgYWRhcHRlZCB0byBBQXJjaDY0IGZyb20gdGhlIDMyLWJpdCB2ZXJzaW9uIGluIGdo
YXNoLWFybXY0LnBsLiBJdAorIyBpbXBsZW1lbnRzIHRoZSBtdWx0aXBsaWNhdGlvbiBhbGdvcml0
aG0gZGVzY3JpYmVkIGluOgorIworIyBDw6JtYXJhLCBELjsgR291dsOqYSwgQy4gUC4gTC47IEzD
s3BleiwgSi4gJiBEYWhhYiwgUi46IEZhc3QgU29mdHdhcmUKKyMgUG9seW5vbWlhbCBNdWx0aXBs
aWNhdGlvbiBvbiBBUk0gUHJvY2Vzc29ycyB1c2luZyB0aGUgTkVPTiBFbmdpbmUuCisjCisjIGh0
dHA6Ly9jb25yYWRvcGxnLmNyeXB0b2xhbmQubmV0L2ZpbGVzLzIwMTAvMTIvbW9jcnlzZW4xMy5w
ZGYKKyMKKyMgVGhlIG1haW4gZGlzdGluY3Rpb24gdG8ga2VlcCBpbiBtaW5kIGJldHdlZW4gMzIt
Yml0IE5FT04gYW5kIEFBcmNoNjQgU0lNRCBpcworIyBBQXJjaDY0IGNhbm5vdCBjb21wdXRlIG92
ZXIgdGhlIHVwcGVyIGhhbHZlcyBvZiBTSU1EIHJlZ2lzdGVycy4gSW4gMzItYml0CisjIE5FT04s
IHRoZSBsb3cgYW5kIGhpZ2ggaGFsdmVzIG9mIHRoZSAxMjgtYml0IHJlZ2lzdGVyIHEwIGFyZSBh
Y2Nlc3NpYmxlIGFzCisjIDY0LWJpdCByZWdpc3RlcnMgZDAgYW5kIGQxLCByZXNwZWN0aXZlbHku
IEluIEFBcmNoNjQsIGROIGlzIHRoZSBsb3dlciBoYWxmIG9mCisjIHZOLiBXaGVyZSB0aGUgMzIt
Yml0IHZlcnNpb24gd291bGQgdXNlIHRoZSB1cHBlciBoYWxmLCB0aGlzIGZpbGUgbXVzdCBrZWVw
CisjIGhhbHZlcyBpbiBzZXBhcmF0ZSByZWdpc3RlcnMuCisjCisjIFRoZSBvdGhlciBkaXN0aW5j
dGlvbiBpcyBpbiBzeW50YXguIDMyLWJpdCBORU9OIGVtYmVkcyBsYW5lIGluZm9ybWF0aW9uIGlu
IHRoZQorIyBpbnN0cnVjdGlvbiBuYW1lLCB3aGlsZSBBQXJjaDY0IHVzZXMgc3VmZml4ZXMgb24g
dGhlIHJlZ2lzdGVycy4gRm9yIGluc3RhbmNlLAorIyBsZWZ0LXNoaWZ0aW5nIDY0LWJpdCBsYW5l
cyBvZiBhIFNJTUQgcmVnaXN0ZXIgaW4gMzItYml0IHdvdWxkIGJlIHdyaXR0ZW46CisjCisjICAg
ICB2c2hsLmk2NCBxMCwgcTAsICMxCisjCisjIGluIDY0LWJpdCwgaXQgd291bGQgYmUgd3JpdHRl
bjoKKyMKKyMgICAgIHNobCB2MC4yZCwgdjAuMmQsICMxCisjCisjIFNlZSBQcm9ncmFtbWVyJ3Mg
R3VpZGUgZm9yIEFSTXY4LUEsIHNlY3Rpb24gNyBmb3IgZGV0YWlscy4KKyMgaHR0cDovL2luZm9j
ZW50ZXIuYXJtLmNvbS9oZWxwL3RvcGljL2NvbS5hcm0uZG9jLmRlbjAwMjRhL0RFTjAwMjRBX3Y4
X2FyY2hpdGVjdHVyZV9QRy5wZGYKKyMKKyMgRmluYWxseSwgbm90ZSB0aGUgOC1iaXQgYW5kIDY0
LWJpdCBwb2x5bm9taWFsIG11bHRpcGxpZXJzIGluIEFBcmNoNjQgZGlmZmVyCisjIG9ubHkgYnkg
c3VmZml4LiBwbXVsbCB2Ui44aCwgdkEuOGIsIHZCLjhiIG11bHRpcGxpZXMgZWlnaHQgOC1iaXQg
cG9seW5vbWlhbHMKKyMgYW5kIGlzIGFsd2F5cyBhdmFpbGFibGUuIHBtdWxsIHZSLjFxLCB2QS4x
ZCwgdkIuMWQgbXVsdGlwbGllcyBhIDY0LWJpdAorIyBwb2x5bm9taWFsIGFuZCBpcyBjb25kaXRp
b25lZCBvbiB0aGUgUE1VTEwgZXh0ZW5zaW9uLiBUaGlzIGZpbGUgZW11bGF0ZXMgdGhlCisjIGxh
dHRlciB3aXRoIHRoZSBmb3JtZXIuCisKK3VzZSBzdHJpY3Q7CisKK215ICRmbGF2b3VyID0gc2hp
ZnQ7CitteSAkb3V0cHV0OworaWYgKCRmbGF2b3VyPX4vXHdbXHdcLV0qXC5cdyskLykgeyAkb3V0
cHV0PSRmbGF2b3VyOyB1bmRlZiAkZmxhdm91cjsgfQorZWxzZSB7IHdoaWxlICgoJG91dHB1dD1z
aGlmdCkgJiYgKCRvdXRwdXQhfi9cd1tcd1wtXSpcLlx3KyQvKSkge30gfQorCitpZiAoJGZsYXZv
dXIgJiYgJGZsYXZvdXIgbmUgInZvaWQiKSB7CisgICAgJDAgPX4gbS8oLipbXC9cXF0pW15cL1xc
XSskLzsKKyAgICBteSAkZGlyID0gJDE7CisgICAgbXkgJHhsYXRlOworICAgICggJHhsYXRlPSIk
e2Rpcn1hcm0teGxhdGUucGwiIGFuZCAtZiAkeGxhdGUgKSBvcgorICAgICggJHhsYXRlPSIke2Rp
cn0uLi8uLi8uLi9wZXJsYXNtL2FybS14bGF0ZS5wbCIgYW5kIC1mICR4bGF0ZSkgb3IKKyAgICBk
aWUgImNhbid0IGxvY2F0ZSBhcm0teGxhdGUucGwiOworCisgICAgb3BlbiBTVERPVVQsInwgXCIk
XlhcIiAkeGxhdGUgJGZsYXZvdXIgJG91dHB1dCI7Cit9IGVsc2UgeworICAgIG9wZW4gU1RET1VU
LCI+JG91dHB1dCI7Cit9CisKK215ICgkWGksICRIdGJsLCAkaW5wLCAkbGVuKSA9IG1hcCgieCRf
IiwgKDAuLjMpKTsJIyBhcmd1bWVudCBibG9jaworbXkgKCRYbCwgJFhtLCAkWGgsICRJTmxvLCAk
SU5oaSkgPSBtYXAoInYkXyIsICgwLi40KSk7CitteSAoJEhsbywgJEhoaSwgJEhobCkgPSBtYXAo
InYkXyIsICg1Li43KSk7CisjIGQ4LWQxNSBhcmUgY2FsbGVlLXNhdmVkLCBzbyBhdm9pZCB2OC12
MTUuIEFBcmNoNjQgU0lNRCBoYXMgcGxlbnR5IG9mIHJlZ2lzdGVycworIyB0byBzcGFyZS4KK215
ICgkdDAsICR0MSwgJHQyLCAkdDMpID0gbWFwKCJ2JF8iLCAoMTYuLjE5KSk7CitteSAoJHQwbF90
MWwsICR0MGhfdDFoLCAkdDJsX3QzbCwgJHQyaF90M2gpID0gbWFwKCJ2JF8iLCAoMjAuLjIzKSk7
CitteSAoJGs0OF9rMzIsICRrMTZfazApID0gbWFwKCJ2JF8iLCAoMjQuLjI1KSk7CisKK215ICRj
b2RlID0gIiI7CisKKyMgY2xtdWw2NHg2NCBlbWl0cyBjb2RlIHdoaWNoIGVtdWxhdGVzIHBtdWxs
ICRyLjFxLCAkYS4xZCwgJGIuMWQuICRyLCAkYSwgYW5kICRiCisjIG11c3QgYmUgZGlzdGluY3Qg
ZnJvbSAkdCogYW5kICRrKi4gJHQqIGFyZSBjbG9iYmVyZWQgYnkgdGhlIGVtaXR0ZWQgY29kZS4K
K3N1YiBjbG11bDY0eDY0IHsKK215ICgkciwgJGEsICRiKSA9IEBfOworJGNvZGUgLj0gPDxfX187
CisJZXh0CSR0MC44YiwgJGEuOGIsICRhLjhiLCAjMQkvLyBBMQorCXBtdWxsCSR0MC44aCwgJHQw
LjhiLCAkYi44YgkJLy8gRiA9IEExKkIKKwlleHQJJHIuOGIsICRiLjhiLCAkYi44YiwgIzEJCS8v
IEIxCisJcG11bGwJJHIuOGgsICRhLjhiLCAkci44YgkJLy8gRSA9IEEqQjEKKwlleHQJJHQxLjhi
LCAkYS44YiwgJGEuOGIsICMyCS8vIEEyCisJcG11bGwJJHQxLjhoLCAkdDEuOGIsICRiLjhiCQkv
LyBIID0gQTIqQgorCWV4dAkkdDMuOGIsICRiLjhiLCAkYi44YiwgIzIJLy8gQjIKKwlwbXVsbAkk
dDMuOGgsICRhLjhiLCAkdDMuOGIJCS8vIEcgPSBBKkIyCisJZXh0CSR0Mi44YiwgJGEuOGIsICRh
LjhiLCAjMwkvLyBBMworCWVvcgkkdDAuMTZiLCAkdDAuMTZiLCAkci4xNmIJLy8gTCA9IEUgKyBG
CisJcG11bGwJJHQyLjhoLCAkdDIuOGIsICRiLjhiCQkvLyBKID0gQTMqQgorCWV4dAkkci44Yiwg
JGIuOGIsICRiLjhiLCAjMwkJLy8gQjMKKwllb3IJJHQxLjE2YiwgJHQxLjE2YiwgJHQzLjE2Ygkv
LyBNID0gRyArIEgKKwlwbXVsbAkkci44aCwgJGEuOGIsICRyLjhiCQkvLyBJID0gQSpCMworCisJ
Ly8gSGVyZSB3ZSBkaXZlcmdlIGZyb20gdGhlIDMyLWJpdCB2ZXJzaW9uLiBJdCBjb21wdXRlcyB0
aGUgZm9sbG93aW5nCisJLy8gKGluc3RydWN0aW9ucyByZW9yZGVyZWQgZm9yIGNsYXJpdHkpOgor
CS8vCisJLy8gICAgIHZlb3IJXCR0MCNsbywgXCR0MCNsbywgXCR0MCNoaQlAIHQwID0gUDAgKyBQ
MSAoTCkKKwkvLyAgICAgdmFuZAlcJHQwI2hpLCBcJHQwI2hpLCBcJGs0OAorCS8vICAgICB2ZW9y
CVwkdDAjbG8sIFwkdDAjbG8sIFwkdDAjaGkKKwkvLworCS8vICAgICB2ZW9yCVwkdDEjbG8sIFwk
dDEjbG8sIFwkdDEjaGkJQCB0MSA9IFAyICsgUDMgKE0pCisJLy8gICAgIHZhbmQJXCR0MSNoaSwg
XCR0MSNoaSwgXCRrMzIKKwkvLyAgICAgdmVvcglcJHQxI2xvLCBcJHQxI2xvLCBcJHQxI2hpCisJ
Ly8KKwkvLyAgICAgdmVvcglcJHQyI2xvLCBcJHQyI2xvLCBcJHQyI2hpCUAgdDIgPSBQNCArIFA1
IChOKQorCS8vICAgICB2YW5kCVwkdDIjaGksIFwkdDIjaGksIFwkazE2CisJLy8gICAgIHZlb3IJ
XCR0MiNsbywgXCR0MiNsbywgXCR0MiNoaQorCS8vCisJLy8gICAgIHZlb3IJXCR0MyNsbywgXCR0
MyNsbywgXCR0MyNoaQlAIHQzID0gUDYgKyBQNyAoSykKKwkvLyAgICAgdm1vdi5pNjQJXCR0MyNo
aSwgIzAKKwkvLworCS8vIFwka04gaXMgYSBtYXNrIHdpdGggdGhlIGJvdHRvbSBOIGJpdHMgc2V0
LiBBQXJjaDY0IGNhbm5vdCBjb21wdXRlIG9uCisJLy8gdXBwZXIgaGFsdmVzIG9mIFNJTUQgcmVn
aXN0ZXJzLCBzbyB3ZSBtdXN0IHNwbGl0IGVhY2ggaGFsZiBpbnRvCisJLy8gc2VwYXJhdGUgcmVn
aXN0ZXJzLiBUbyBjb21wZW5zYXRlLCB3ZSBwYWlyIGNvbXB1dGF0aW9ucyB1cCBhbmQKKwkvLyBw
YXJhbGxlbGl6ZS4KKworCWV4dAkkdDMuOGIsICRiLjhiLCAkYi44YiwgIzQJLy8gQjQKKwllb3IJ
JHQyLjE2YiwgJHQyLjE2YiwgJHIuMTZiCS8vIE4gPSBJICsgSgorCXBtdWxsCSR0My44aCwgJGEu
OGIsICR0My44YgkJLy8gSyA9IEEqQjQKKworCS8vIFRoaXMgY2FuIHByb2JhYmx5IGJlIHNjaGVk
dWxlZCBtb3JlIGVmZmljaWVudGx5LiBGb3Igbm93LCB3ZSBqdXN0CisJLy8gcGFpciB1cCBpbmRl
cGVuZGVudCBpbnN0cnVjdGlvbnMuCisJemlwMQkkdDBsX3QxbC4yZCwgJHQwLjJkLCAkdDEuMmQK
Kwl6aXAxCSR0MmxfdDNsLjJkLCAkdDIuMmQsICR0My4yZAorCXppcDIJJHQwaF90MWguMmQsICR0
MC4yZCwgJHQxLjJkCisJemlwMgkkdDJoX3QzaC4yZCwgJHQyLjJkLCAkdDMuMmQKKwllb3IJJHQw
bF90MWwuMTZiLCAkdDBsX3QxbC4xNmIsICR0MGhfdDFoLjE2YgorCWVvcgkkdDJsX3QzbC4xNmIs
ICR0MmxfdDNsLjE2YiwgJHQyaF90M2guMTZiCisJYW5kCSR0MGhfdDFoLjE2YiwgJHQwaF90MWgu
MTZiLCAkazQ4X2szMi4xNmIKKwlhbmQJJHQyaF90M2guMTZiLCAkdDJoX3QzaC4xNmIsICRrMTZf
azAuMTZiCisJZW9yCSR0MGxfdDFsLjE2YiwgJHQwbF90MWwuMTZiLCAkdDBoX3QxaC4xNmIKKwll
b3IJJHQybF90M2wuMTZiLCAkdDJsX3QzbC4xNmIsICR0MmhfdDNoLjE2YgorCXppcDEJJHQwLjJk
LCAkdDBsX3QxbC4yZCwgJHQwaF90MWguMmQKKwl6aXAxCSR0Mi4yZCwgJHQybF90M2wuMmQsICR0
MmhfdDNoLjJkCisJemlwMgkkdDEuMmQsICR0MGxfdDFsLjJkLCAkdDBoX3QxaC4yZAorCXppcDIJ
JHQzLjJkLCAkdDJsX3QzbC4yZCwgJHQyaF90M2guMmQKKworCWV4dAkkdDAuMTZiLCAkdDAuMTZi
LCAkdDAuMTZiLCAjMTUJLy8gdDAgPSB0MCA8PCA4CisJZXh0CSR0MS4xNmIsICR0MS4xNmIsICR0
MS4xNmIsICMxNAkvLyB0MSA9IHQxIDw8IDE2CisJcG11bGwJJHIuOGgsICRhLjhiLCAkYi44YgkJ
Ly8gRCA9IEEqQgorCWV4dAkkdDMuMTZiLCAkdDMuMTZiLCAkdDMuMTZiLCAjMTIJLy8gdDMgPSB0
MyA8PCAzMgorCWV4dAkkdDIuMTZiLCAkdDIuMTZiLCAkdDIuMTZiLCAjMTMJLy8gdDIgPSB0MiA8
PCAyNAorCWVvcgkkdDAuMTZiLCAkdDAuMTZiLCAkdDEuMTZiCisJZW9yCSR0Mi4xNmIsICR0Mi4x
NmIsICR0My4xNmIKKwllb3IJJHIuMTZiLCAkci4xNmIsICR0MC4xNmIKKwllb3IJJHIuMTZiLCAk
ci4xNmIsICR0Mi4xNmIKK19fXworfQorCiskY29kZSAuPSA8PF9fXzsKKy50ZXh0CisKKy5nbG9i
YWwJZ2NtX2luaXRfbmVvbgorLnR5cGUJZ2NtX2luaXRfbmVvbiwlZnVuY3Rpb24KKy5hbGlnbgk0
CitnY21faW5pdF9uZW9uOgorCS8vIFRoaXMgZnVuY3Rpb24gaXMgYWRhcHRlZCBmcm9tIGdjbV9p
bml0X3Y4LiB4QzIgaXMgdDMuCisJbGQxCXskdDEuMmR9LCBbeDFdCQkJLy8gbG9hZCBICisJbW92
aQkkdDMuMTZiLCAjMHhlMQorCXNobAkkdDMuMmQsICR0My4yZCwgIzU3CQkvLyAweGMyLjAKKwll
eHQJJElObG8uMTZiLCAkdDEuMTZiLCAkdDEuMTZiLCAjOAorCXVzaHIJJHQyLjJkLCAkdDMuMmQs
ICM2MworCWR1cAkkdDEuNHMsICR0MS5zWzFdCisJZXh0CSR0MC4xNmIsICR0Mi4xNmIsICR0My4x
NmIsICM4CS8vIHQwPTB4YzIuLi4uMDEKKwl1c2hyCSR0Mi4yZCwgJElObG8uMmQsICM2MworCXNz
aHIJJHQxLjRzLCAkdDEuNHMsICMzMQkJLy8gYnJvYWRjYXN0IGNhcnJ5IGJpdAorCWFuZAkkdDIu
MTZiLCAkdDIuMTZiLCAkdDAuMTZiCisJc2hsCSRJTmxvLjJkLCAkSU5sby4yZCwgIzEKKwlleHQJ
JHQyLjE2YiwgJHQyLjE2YiwgJHQyLjE2YiwgIzgKKwlhbmQJJHQwLjE2YiwgJHQwLjE2YiwgJHQx
LjE2YgorCW9ycgkkSU5sby4xNmIsICRJTmxvLjE2YiwgJHQyLjE2YgkvLyBIPDw8PTEKKwllb3IJ
JEhsby4xNmIsICRJTmxvLjE2YiwgJHQwLjE2YgkvLyB0d2lzdGVkIEgKKwlzdDEJeyRIbG8uMmR9
LCBbeDBdCQkJLy8gc3RvcmUgSHRhYmxlWzBdCisJcmV0Cisuc2l6ZQlnY21faW5pdF9uZW9uLC4t
Z2NtX2luaXRfbmVvbgorCisuZ2xvYmFsCWdjbV9nbXVsdF9uZW9uCisudHlwZQlnY21fZ211bHRf
bmVvbiwlZnVuY3Rpb24KKy5hbGlnbgk0CitnY21fZ211bHRfbmVvbjoKKwlsZDEJeyRJTmxvLjE2
Yn0sIFskWGldCQkvLyBsb2FkIFhpCisJbGQxCXskSGxvLjFkfSwgWyRIdGJsXSwgIzgJCS8vIGxv
YWQgdHdpc3RlZCBICisJbGQxCXskSGhpLjFkfSwgWyRIdGJsXQorCWFkcnAJeDksIDpwZ19oaTIx
Oi5MbWFza3MJCS8vIGxvYWQgY29uc3RhbnRzCisJYWRkCXg5LCB4OSwgOmxvMTI6LkxtYXNrcwor
CWxkMQl7JGs0OF9rMzIuMmQsICRrMTZfazAuMmR9LCBbeDldCisJcmV2NjQJJElObG8uMTZiLCAk
SU5sby4xNmIJCS8vIGJ5dGVzd2FwIFhpCisJZXh0CSRJTmxvLjE2YiwgJElObG8uMTZiLCAkSU5s
by4xNmIsICM4CisJZW9yCSRIaGwuOGIsICRIbG8uOGIsICRIaGkuOGIJLy8gS2FyYXRzdWJhIHBy
ZS1wcm9jZXNzaW5nCisKKwltb3YJJGxlbiwgIzE2CisJYgkuTGdtdWx0X25lb24KKy5zaXplCWdj
bV9nbXVsdF9uZW9uLC4tZ2NtX2dtdWx0X25lb24KKworLmdsb2JhbAlnY21fZ2hhc2hfbmVvbgor
LnR5cGUJZ2NtX2doYXNoX25lb24sJWZ1bmN0aW9uCisuYWxpZ24JNAorZ2NtX2doYXNoX25lb246
CisJbGQxCXskWGwuMTZifSwgWyRYaV0JCS8vIGxvYWQgWGkKKwlsZDEJeyRIbG8uMWR9LCBbJEh0
YmxdLCAjOAkJLy8gbG9hZCB0d2lzdGVkIEgKKwlsZDEJeyRIaGkuMWR9LCBbJEh0YmxdCisJYWRy
cAl4OSwgOnBnX2hpMjE6LkxtYXNrcwkJLy8gbG9hZCBjb25zdGFudHMKKwlhZGQJeDksIHg5LCA6
bG8xMjouTG1hc2tzCisJbGQxCXskazQ4X2szMi4yZCwgJGsxNl9rMC4yZH0sIFt4OV0KKwlyZXY2
NAkkWGwuMTZiLCAkWGwuMTZiCQkvLyBieXRlc3dhcCBYaQorCWV4dAkkWGwuMTZiLCAkWGwuMTZi
LCAkWGwuMTZiLCAjOAorCWVvcgkkSGhsLjhiLCAkSGxvLjhiLCAkSGhpLjhiCS8vIEthcmF0c3Vi
YSBwcmUtcHJvY2Vzc2luZworCisuTG9vcF9uZW9uOgorCWxkMQl7JElObG8uMTZifSwgWyRpbnBd
LCAjMTYJLy8gbG9hZCBpbnAKKwlyZXY2NAkkSU5sby4xNmIsICRJTmxvLjE2YgkJLy8gYnl0ZXN3
YXAgaW5wCisJZXh0CSRJTmxvLjE2YiwgJElObG8uMTZiLCAkSU5sby4xNmIsICM4CisJZW9yCSRJ
TmxvLjE2YiwgJElObG8uMTZiLCAkWGwuMTZiCS8vIGlucCBePSBYaQorCisuTGdtdWx0X25lb246
CisJLy8gU3BsaXQgdGhlIGlucHV0IGludG8gJElObG8gYW5kICRJTmhpLiAoVGhlIHVwcGVyIGhh
bHZlcyBhcmUgdW51c2VkLAorCS8vIHNvIGl0IGlzIG9rYXkgdG8gbGVhdmUgdGhlbSBhbG9uZS4p
CisJaW5zCSRJTmhpLmRbMF0sICRJTmxvLmRbMV0KK19fXworJmNsbXVsNjR4NjQJKCRYbCwgJEhs
bywgJElObG8pOwkJIyBILmxvwrdYaS5sbworJGNvZGUgLj0gPDxfX187CisJZW9yCSRJTmxvLjhi
LCAkSU5sby44YiwgJElOaGkuOGIJLy8gS2FyYXRzdWJhIHByZS1wcm9jZXNzaW5nCitfX18KKyZj
bG11bDY0eDY0CSgkWG0sICRIaGwsICRJTmxvKTsJCSMgKEgubG8rSC5oaSnCtyhYaS5sbytYaS5o
aSkKKyZjbG11bDY0eDY0CSgkWGgsICRIaGksICRJTmhpKTsJCSMgSC5oacK3WGkuaGkKKyRjb2Rl
IC49IDw8X19fOworCWV4dAkkdDAuMTZiLCAkWGwuMTZiLCAkWGguMTZiLCAjOAorCWVvcgkkWG0u
MTZiLCAkWG0uMTZiLCAkWGwuMTZiCS8vIEthcmF0c3ViYSBwb3N0LXByb2Nlc3NpbmcKKwllb3IJ
JFhtLjE2YiwgJFhtLjE2YiwgJFhoLjE2YgorCWVvcgkkWG0uMTZiLCAkWG0uMTZiLCAkdDAuMTZi
CS8vIFhtIG92ZXJsYXBzIFhoLmxvIGFuZCBYbC5oaQorCWlucwkkWGwuZFsxXSwgJFhtLmRbMF0J
CS8vIFhofFhsIC0gMjU2LWJpdCByZXN1bHQKKwkvLyBUaGlzIGlzIGEgbm8tb3AgZHVlIHRvIHRo
ZSBpbnMgaW5zdHJ1Y3Rpb24gYmVsb3cuCisJLy8gaW5zCSRYaC5kWzBdLCAkWG0uZFsxXQorCisJ
Ly8gZXF1aXZhbGVudCBvZiByZWR1Y3Rpb25fYXZ4IGZyb20gZ2hhc2gteDg2XzY0LnBsCisJc2hs
CSR0MS4yZCwgJFhsLjJkLCAjNTcJCS8vIDFzdCBwaGFzZQorCXNobAkkdDIuMmQsICRYbC4yZCwg
IzYyCisJZW9yCSR0Mi4xNmIsICR0Mi4xNmIsICR0MS4xNmIJLy8KKwlzaGwJJHQxLjJkLCAkWGwu
MmQsICM2MworCWVvcgkkdDIuMTZiLCAkdDIuMTZiLCAkdDEuMTZiCS8vCisJLy8gTm90ZSBYbSBj
b250YWlucyB7WGwuZFsxXSwgWGguZFswXX0uCisJZW9yCSR0Mi4xNmIsICR0Mi4xNmIsICRYbS4x
NmIKKwlpbnMJJFhsLmRbMV0sICR0Mi5kWzBdCQkvLyBYbC5kWzFdIF49IHQyLmRbMF0KKwlpbnMJ
JFhoLmRbMF0sICR0Mi5kWzFdCQkvLyBYaC5kWzBdIF49IHQyLmRbMV0KKworCXVzaHIJJHQyLjJk
LCAkWGwuMmQsICMxCQkvLyAybmQgcGhhc2UKKwllb3IJJFhoLjE2YiwgJFhoLjE2YiwkWGwuMTZi
CisJZW9yCSRYbC4xNmIsICRYbC4xNmIsJHQyLjE2YgkvLworCXVzaHIJJHQyLjJkLCAkdDIuMmQs
ICM2CisJdXNocgkkWGwuMmQsICRYbC4yZCwgIzEJCS8vCisJZW9yCSRYbC4xNmIsICRYbC4xNmIs
ICRYaC4xNmIJLy8KKwllb3IJJFhsLjE2YiwgJFhsLjE2YiwgJHQyLjE2YgkvLworCisJc3Vicwkk
bGVuLCAkbGVuLCAjMTYKKwlibmUJLkxvb3BfbmVvbgorCisJcmV2NjQJJFhsLjE2YiwgJFhsLjE2
YgkJLy8gYnl0ZXN3YXAgWGkgYW5kIHdyaXRlCisJZXh0CSRYbC4xNmIsICRYbC4xNmIsICRYbC4x
NmIsICM4CisJc3QxCXskWGwuMTZifSwgWyRYaV0KKworCXJldAorLnNpemUJZ2NtX2doYXNoX25l
b24sLi1nY21fZ2hhc2hfbmVvbgorCisuc2VjdGlvbgkucm9kYXRhCisuYWxpZ24JNAorLkxtYXNr
czoKKy5xdWFkCTB4MDAwMGZmZmZmZmZmZmZmZgkvLyBrNDgKKy5xdWFkCTB4MDAwMDAwMDBmZmZm
ZmZmZgkvLyBrMzIKKy5xdWFkCTB4MDAwMDAwMDAwMDAwZmZmZgkvLyBrMTYKKy5xdWFkCTB4MDAw
MDAwMDAwMDAwMDAwMAkvLyBrMAorLmFzY2l6ICAiR0hBU0ggZm9yIEFSTXY4LCBkZXJpdmVkIGZy
b20gQVJNdjQgdmVyc2lvbiBieSA8YXBwcm9cQG9wZW5zc2wub3JnPiIKKy5hbGlnbiAgMgorX19f
CisKK2ZvcmVhY2ggKHNwbGl0KCJcbiIsJGNvZGUpKSB7CisJcy9cYChbXlxgXSopXGAvZXZhbCAk
MS9nZW87CisKKwlwcmludCAkXywiXG4iOworfQorY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3Ig
Y2xvc2luZyBTVERPVVQiOyAjIGVuZm9yY2UgZmx1c2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
Zmlwc21vZHVsZS9tb2Rlcy9hc20vZ2hhc2gtc3NzZTMteDg2LnBsIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL21vZGVzL2FzbS9naGFzaC1zc3NlMy14ODYucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVlMWVlMWM3
MjcxYjkzOWI1YzliODVhYzYyYWE5OWU5MDIzNzc5MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9hc20vZ2hhc2gtc3NzZTMteDg2LnBsCkBAIC0wLDAgKzEs
Mjg4IEBACisjIS91c3IvYmluL2VudiBwZXJsCisjIENvcHlyaWdodCAoYykgMjAxOSwgR29vZ2xl
IEluYy4KKyMKKyMgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3Ry
aWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisjIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZl
ZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4K
KyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElT
Q0xBSU1TIEFMTCBXQVJSQU5USUVTCisjIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5D
TFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyMgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisj
IFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBB
TlkgREFNQUdFUworIyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRB
IE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisjIE9GIENPTlRSQUNULCBORUdMSUdF
TkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyMgQ09O
TkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKwor
IyBnaGFzaC1zc3NlMy14ODYucGwgaXMgYSBjb25zdGFudC10aW1lIHZhcmlhbnQgb2YgdGhlIHRy
YWRpdGlvbmFsIDQtYml0CisjIHRhYmxlLWJhc2VkIEdIQVNIIGltcGxlbWVudGF0aW9uLiBJdCBy
ZXF1aXJlcyBTU1NFMyBpbnN0cnVjdGlvbnMuCisjCisjIEZvciBiYWNrZ3JvdW5kLCB0aGUgdGFi
bGUtYmFzZWQgc3RyYXRlZ3kgaXMgYSA0LWJpdCB3aW5kb3dlZCBtdWx0aXBsaWNhdGlvbi4KKyMg
SXQgcHJlY29tcHV0ZXMgYWxsIDQtYml0IG11bHRpcGxlcyBvZiBIICh0aGlzIGlzIDE2IDEyOC1i
aXQgcm93cyksIHRoZW4gbG9vcHMKKyMgb3ZlciA0LWJpdCB3aW5kb3dzIG9mIHRoZSBpbnB1dCBh
bmQgaW5kZXhlcyB0aGVtIHVwIGludG8gdGhlIHRhYmxlLiBWaXN1YWxseSwKKyMgaXQgbXVsdGlw
bGllcyBhcyBpbiB0aGUgc2Nob29sYm9vayBtdWx0aXBsaWNhdGlvbiBkaWFncmFtIGJlbG93LCBi
dXQgd2l0aAorIyBtb3JlIHRlcm1zLiAoRWFjaCB0ZXJtIGlzIDQgYml0cywgc28gdGhlcmUgYXJl
IDMyIHRlcm1zIGluIGVhY2ggcm93LikgRmlyc3QKKyMgaXQgaW5jb3Jwb3JhdGVzIHRoZSB0ZXJt
cyBsYWJlbGVkICcxJyBieSBpbmRleGluZyB0aGUgbW9zdCBzaWduaWZpY2FudCB0ZXJtCisjIG9m
IFggaW50byB0aGUgdGFibGUuIFRoZW4gaXQgc2hpZnRzIGFuZCByZXBlYXRzIGZvciAnMicgYW5k
IHNvIG9uLgorIworIyAgICAgICAgaGhoaGhoCisjICAqICAgICB4eHh4eHgKKyMgID09PT09PT09
PT09PQorIyAgICAgICAgNjY2NjY2CisjICAgICAgIDU1NTU1NQorIyAgICAgIDQ0NDQ0NAorIyAg
ICAgMzMzMzMzCisjICAgIDIyMjIyMgorIyAgIDExMTExMQorIworIyBUaGlzIGltcGxlbWVudGF0
aW9uIGNoYW5nZXMgdGhlIG9yZGVyLiBXZSB0cmVhdCB0aGUgdGFibGUgYXMgYSAxNsOXMTYgbWF0
cml4CisjIGFuZCB0cmFuc3Bvc2UgaXQuIFRoZSBmaXJzdCByb3cgaXMgdGhlbiB0aGUgZmlyc3Qg
Ynl0ZSBvZiBlYWNoIG11bHRpcGxlIG9mIEgsCisjIGFuZCBzbyBvbi4gV2UgdGhlbiByZW9yZGVy
IHRlcm1zIGFzIGJlbG93LiBPYnNlcnZlIHRoYXQgdGhlIHRlcm1zIGxhYmVsZWQgJzEnCisjIGFu
ZCAnMicgYXJlIGFsbCBsb29rdXBzIGludG8gdGhlIGZpcnN0IHJvdywgZXRjLiBUaGlzIG1hcHMg
d2VsbCB0byB0aGUgU1NTRTMKKyMgcHNodWZiIGluc3RydWN0aW9uLCB1c2luZyBhbHRlcm5hdGlu
ZyB0ZXJtcyBvZiBYIGluIHBhcmFsbGVsIGFzIGluZGljZXMuIFRoaXMKKyMgYWx0ZXJuYXRpb24g
aXMgbmVlZGVkIGJlY2F1c2UgcHNodWZiIG1hcHMgNCBiaXRzIHRvIDggYml0cy4gVGhlbiB3ZSBz
aGlmdCBhbmQKKyMgcmVwZWF0IGZvciBlYWNoIHJvdy4KKyMKKyMgICAgICAgIGhoaGhoaAorIyAg
KiAgICAgeHh4eHh4CisjICA9PT09PT09PT09PT0KKyMgICAgICAgIDIyNDQ2NgorIyAgICAgICAx
MTMzNTUKKyMgICAgICAyMjQ0NjYKKyMgICAgIDExMzM1NQorIyAgICAyMjQ0NjYKKyMgICAxMTMz
NTUKKyMKKyMgTmV4dCB3ZSBhY2NvdW50IGZvciBHQ00ncyBjb25mdXNpbmcgYml0IG9yZGVyLiBU
aGUgImZpcnN0IiBiaXQgaXMgdGhlIGxlYXN0CisjIHNpZ25pZmljYW50IGNvZWZmaWNpZW50LCBi
dXQgR0NNIHRyZWF0cyB0aGUgbW9zdCBzaWdpZmljYW50IGJpdCB3aXRoaW4gYSBieXRlCisjIGFz
IGZpcnN0LiBCeXRlcyBhcmUgbGl0dGxlLWVuZGlhbiwgYW5kIGJpdHMgYXJlIGJpZy1lbmRpYW4u
IFdlIHJldmVyc2UgdGhlCisjIGJ5dGVzIGluIFhNTSByZWdpc3RlcnMgZm9yIGEgY29uc2lzdGVu
dCBiaXQgYW5kIGJ5dGUgb3JkZXJpbmcsIGJ1dCB0aGlzIG1lYW5zCisjIHRoZSBsZWFzdCBzaWdu
aWZpY2FudCBiaXQgaXMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgY29lZmZpY2llbnQgYW5kIHZpY2Ug
dmVyc2EuCisjCisjIEZvciBjb25zaXN0ZW5jeSwgImxvdyIsICJoaWdoIiwgImxlZnQtc2hpZnQi
LCBhbmQgInJpZ2h0LXNoaWZ0IiByZWZlciB0byB0aGUKKyMgYml0IG9yZGVyaW5nIHdpdGhpbiB0
aGUgWE1NIHJlZ2lzdGVyLCByYXRoZXIgdGhhbiB0aGUgcmV2ZXJzZWQgY29lZmZpY2llbnQKKyMg
b3JkZXJpbmcuIExvdyBiaXRzIGFyZSBsZXNzIHNpZ25pZmljYW50IGJpdHMgYW5kIG1vcmUgc2ln
bmlmaWNhbnQKKyMgY29lZmZpY2llbnRzLiBSaWdodC1zaGlmdHMgbW92ZSBmcm9tIE1TQiB0byB0
aGUgTFNCIGFuZCBjb3JyZXNwb25kIHRvCisjIGluY3JlYXNpbmcgdGhlIHBvd2VyIG9mIGVhY2gg
Y29lZmZpY2llbnQuCisjCisjIE5vdGUgdGhpcyBiaXQgcmV2ZXJzYWwgZW50ZXJzIGludG8gdGhl
IHRhYmxlJ3MgY29sdW1uIGluZGljZXMuIEgqMSBpcyBzdG9yZWQKKyMgaW4gY29sdW1uIDBiMTAw
MCBhbmQgSCp4XjMgaXMgc3RvcmVkIGluIGNvbHVtbiAwYjAwMDEuIEl0IGFsc28gbWVhbnMgZWFy
bGllcgorIyB0YWJsZSByb3dzIGNvbnRhaW4gbW9yZSBzaWduaWZpY2FudCBjb2VmZmljaWVudHMs
IHNvIHdlIGl0ZXJhdGUgZm9yd2FyZHMuCisKKyQwID1+IG0vKC4qW1wvXFxdKVteXC9cXF0rJC87
ICRkaXI9JDE7CitwdXNoKEBJTkMsIiR7ZGlyfSIsIiR7ZGlyfS4uLy4uLy4uL3Blcmxhc20iKTsK
K3JlcXVpcmUgIng4NmFzbS5wbCI7CisKKyRvdXRwdXQgPSBwb3A7CitvcGVuIFNURE9VVCwgIj4k
b3V0cHV0IjsKKworJmFzbV9pbml0KCRBUkdWWzBdKTsKKworbXkgKCRYaSwgJEh0YWJsZSwgJGlu
LCAkbGVuKSA9ICgiZWRpIiwgImVzaSIsICJlZHgiLCAiZWN4Iik7Cismc3RhdGljX2xhYmVsKCJy
ZXZlcnNlX2J5dGVzIik7Cismc3RhdGljX2xhYmVsKCJsb3c0X21hc2siKTsKKworbXkgJGNhbGxf
Y291bnRlciA9IDA7CisjIHByb2Nlc3Nfcm93cyBlbWl0cyBhc3NlbWJseSBjb2RlIHRvIHByb2Nl
c3MgJHJvd3Mgcm93cyBvZiB0aGUgdGFibGUuIE9uCisjIGlucHV0LCAkSHRhYmxlIHN0b3JlcyB0
aGUgcG9pbnRlciB0byB0aGUgbmV4dCByb3cuIHhtbTAgYW5kIHhtbTEgc3RvcmUgdGhlCisjIGxv
dyBhbmQgaGlnaCBoYWx2ZXMgb2YgdGhlIGlucHV0LiBUaGUgcmVzdWx0IHNvIGZhciBpcyBwYXNz
ZWQgaW4geG1tMi4geG1tMworIyBtdXN0IGJlIHplcm8uIE9uIG91dHB1dCwgJEh0YWJsZSBpcyBh
ZHZhbmNlZCB0byB0aGUgbmV4dCByb3cgYW5kIHhtbTIgaXMKKyMgdXBkYXRlZC4geG1tMyByZW1h
aW5zIHplcm8uIEl0IGNsb2JiZXJzIGVheCwgeG1tNCwgeG1tNSwgYW5kIHhtbTYuCitzdWIgcHJv
Y2Vzc19yb3dzIHsKKwlteSAoJHJvd3MpID0gQF87CisJJGNhbGxfY291bnRlcisrOworCisJIyBT
aGlmdGluZyB3aG9sZSBYTU0gcmVnaXN0ZXJzIGJ5IGJpdHMgaXMgY29tcGxleC4gcHNybGRxIHNo
aWZ0cyBieQorCSMgYnl0ZXMsIGFuZCBwc3JscSBzaGlmdHMgdGhlIHR3byA2NC1iaXQgaGFsdmVz
IHNlcGFyYXRlbHkuIEVhY2ggcm93CisJIyBwcm9kdWNlcyA4IGJpdHMgb2YgY2FycnksIGFuZCB0
aGUgcmVkdWN0aW9uIG5lZWRzIGFuIGFkZGl0aW9uYWwgNy1iaXQKKwkjIHNoaWZ0LiBUaGlzIG11
c3QgZml0IGluIDY0IGJpdHMgc28gcmVkdWN0aW9uIGNhbiB1c2UgcHNybHEuIFRoaXMKKwkjIGFs
bG93cyB1cCB0byA3IHJvd3MgYXQgYSB0aW1lLgorCWRpZSAiQ2FycnkgcmVnaXN0ZXIgd291bGQg
b3ZlcmZsb3cgNjQgYml0cy4iIGlmICgkcm93cyo4ICsgNyA+IDY0KTsKKworCSZtb3YoImVheCIs
ICRyb3dzKTsKKyZzZXRfbGFiZWwoImxvb3Bfcm93XyRjYWxsX2NvdW50ZXIiKTsKKwkmbW92ZHFh
KCJ4bW00IiwgJlFXUCgwLCAkSHRhYmxlKSk7CisJJmxlYSgkSHRhYmxlLCAmRFdQKDE2LCAkSHRh
YmxlKSk7CisKKwkjIFJpZ2h0LXNoaWZ0IHhtbTIgYW5kIHhtbTMgYnkgOCBieXRlcy4KKwkmbW92
ZHFhKCJ4bW02IiwgInhtbTIiKTsKKwkmcGFsaWducigieG1tNiIsICJ4bW0zIiwgMSk7CisJJm1v
dmRxYSgieG1tMyIsICJ4bW02Iik7CisJJnBzcmxkcSgieG1tMiIsIDEpOworCisJIyBMb2FkIHRo
ZSBuZXh0IHRhYmxlIHJvdyBhbmQgaW5kZXggdGhlIGxvdyBhbmQgaGlnaCBiaXRzIG9mIHRoZSBp
bnB1dC4KKwkjIE5vdGUgdGhlIGxvdyAocmVzcGVjdGl2ZWx5LCBoaWdoKSBoYWxmIGNvcnJlc3Bv
bmRzIHRvIG1vcmUKKwkjIChyZXNwZWN0aXZlbHksIGxlc3MpIHNpZ25pZmljYW50IGNvZWZmaWNp
ZW50cy4KKwkmbW92ZHFhKCJ4bW01IiwgInhtbTQiKTsKKwkmcHNodWZiKCJ4bW00IiwgInhtbTAi
KTsKKwkmcHNodWZiKCJ4bW01IiwgInhtbTEiKTsKKworCSMgQWRkIHRoZSBoaWdoIGhhbGYgKHht
bTUpIHdpdGhvdXQgc2hpZnRpbmcuCisJJnB4b3IoInhtbTIiLCAieG1tNSIpOworCisJIyBBZGQg
dGhlIGxvdyBoYWxmICh4bW00KS4gVGhpcyBtdXN0IGJlIHJpZ2h0LXNoaWZ0ZWQgYnkgNCBiaXRz
LiBGaXJzdCwKKwkjIGFkZCBpbnRvIHRoZSBjYXJyeSByZWdpc3RlciAoeG1tMykuCisJJm1vdmRx
YSgieG1tNSIsICJ4bW00Iik7CisJJnBzbGxxKCJ4bW01IiwgNjApOworCSZtb3ZkcWEoInhtbTYi
LCAieG1tNSIpOworCSZwc2xsZHEoInhtbTYiLCA4KTsKKwkmcHhvcigieG1tMyIsICJ4bW02Iik7
CisKKwkjIE5leHQsIGFkZCBpbnRvIHhtbTIuCisJJnBzcmxkcSgieG1tNSIsIDgpOworCSZweG9y
KCJ4bW0yIiwgInhtbTUiKTsKKwkmcHNybHEoInhtbTQiLCA0KTsKKwkmcHhvcigieG1tMiIsICJ4
bW00Iik7CisKKwkmc3ViKCJlYXgiLCAxKTsKKwkmam56KCZsYWJlbCgibG9vcF9yb3dfJGNhbGxf
Y291bnRlciIpKTsKKworCSMgUmVkdWNlIHRoZSBjYXJyeSByZWdpc3Rlci4gVGhlIHJlZHVjdGlv
biBwb2x5bm9taWFsIGlzIDEgKyB4ICsgeF4yICsKKwkjIHheNywgc28gd2Ugc2hpZnQgYW5kIFhP
UiBmb3VyIHRpbWVzLgorCSZweG9yKCJ4bW0yIiwgInhtbTMiKTsJIyB4XjAgPSAwCisJJnBzcmxx
KCJ4bW0zIiwgMSk7CisJJnB4b3IoInhtbTIiLCAieG1tMyIpOwkjIHheMSA9IHgKKwkmcHNybHEo
InhtbTMiLCAxKTsKKwkmcHhvcigieG1tMiIsICJ4bW0zIik7CSMgeF4oMSsxKSA9IHheMgorCSZw
c3JscSgieG1tMyIsIDUpOworCSZweG9yKCJ4bW0yIiwgInhtbTMiKTsJIyB4XigxKzErNSkgPSB4
XjcKKwkmcHhvcigieG1tMyIsICJ4bW0zIik7CitfX19fCit9CisKKyMgZ2NtX2dtdWx0X3Nzc2Uz
IG11bHRpcGxpZXMgfFhpfCBieSB8SHRhYmxlfCBhbmQgd3JpdGVzIHRoZSByZXN1bHQgdG8gfFhp
fC4KKyMgfFhpfCBpcyByZXByZXNlbnRlZCBpbiBHSEFTSCdzIHNlcmlhbGl6ZWQgYnl0ZSByZXBy
ZXNlbnRhdGlvbi4gfEh0YWJsZXwgaXMKKyMgZm9ybWF0dGVkIGFzIGRlc2NyaWJlZCBhYm92ZS4K
KyMgdm9pZCBnY21fZ211bHRfc3NzZTModWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxl
WzE2XSk7CismZnVuY3Rpb25fYmVnaW4oImdjbV9nbXVsdF9zc3NlMyIpOworCSZtb3YoJFhpLCAm
d3BhcmFtKDApKTsKKwkmbW92KCRIdGFibGUsICZ3cGFyYW0oMSkpOworCisJJm1vdmRxdSgieG1t
MCIsICZRV1AoMCwgJFhpKSk7CisJJmNhbGwoJmxhYmVsKCJwaWNfcG9pbnQiKSk7Cismc2V0X2xh
YmVsKCJwaWNfcG9pbnQiKTsKKwkmYmxpbmRwb3AoImVheCIpOworCSZtb3ZkcWEoInhtbTciLCAm
UVdQKCZsYWJlbCgicmV2ZXJzZV9ieXRlcyIpLiItIi4mbGFiZWwoInBpY19wb2ludCIpLCAiZWF4
IikpOworCSZtb3ZkcWEoInhtbTIiLCAmUVdQKCZsYWJlbCgibG93NF9tYXNrIikuIi0iLiZsYWJl
bCgicGljX3BvaW50IiksICJlYXgiKSk7CisKKwkjIFJldmVyc2UgaW5wdXQgYnl0ZXMgdG8gZGVz
ZXJpYWxpemUuCisJJnBzaHVmYigieG1tMCIsICJ4bW03Iik7CisKKwkjIFNwbGl0IGVhY2ggYnl0
ZSBpbnRvIGxvdyAoeG1tMCkgYW5kIGhpZ2ggKHhtbTEpIGhhbHZlcy4KKwkmbW92ZHFhKCJ4bW0x
IiwgInhtbTIiKTsKKwkmcGFuZG4oInhtbTEiLCAieG1tMCIpOworCSZwc3JsZCgieG1tMSIsIDQp
OworCSZwYW5kKCJ4bW0wIiwgInhtbTIiKTsKKworCSMgTWFpbnRhaW4gdGhlIHJlc3VsdCBpbiB4
bW0yICh0aGUgdmFsdWUpIGFuZCB4bW0zIChjYXJyeSBiaXRzKS4gTm90ZQorCSMgdGhhdCwgZHVl
IHRvIGJpdCByZXZlcnNhbCwgeG1tMyBjb250YWlucyBiaXRzIHRoYXQgZmFsbCBvZmYgd2hlbgor
CSMgcmlnaHQtc2hpZnRpbmcsIG5vdCBsZWZ0LXNoaWZ0aW5nLgorCSZweG9yKCJ4bW0yIiwgInht
bTIiKTsKKwkmcHhvcigieG1tMyIsICJ4bW0zIik7CisKKwkjIFdlIG11c3QgcmVkdWNlIGF0IGxl
YXN0IG9uY2UgZXZlcnkgNyByb3dzLCBzbyBkaXZpZGUgaW50byB0aHJlZQorCSMgY2h1bmtzLgor
CSZwcm9jZXNzX3Jvd3MoNSk7CisJJnByb2Nlc3Nfcm93cyg1KTsKKwkmcHJvY2Vzc19yb3dzKDYp
OworCisJIyBTdG9yZSB0aGUgcmVzdWx0LiBSZXZlcnNlIGJ5dGVzIHRvIHNlcmlhbGl6ZS4KKwkm
cHNodWZiKCJ4bW0yIiwgInhtbTciKTsKKwkmbW92ZHF1KCZRV1AoMCwgJFhpKSwgInhtbTIiKTsK
KworCSMgWmVybyBhbnkgcmVnaXN0ZXJzIHdoaWNoIGNvbnRhaW4gc2VjcmV0cy4KKwkmcHhvcigi
eG1tMCIsICJ4bW0wIik7CisJJnB4b3IoInhtbTEiLCAieG1tMSIpOworCSZweG9yKCJ4bW0yIiwg
InhtbTIiKTsKKwkmcHhvcigieG1tMyIsICJ4bW0zIik7CisJJnB4b3IoInhtbTQiLCAieG1tNCIp
OworCSZweG9yKCJ4bW01IiwgInhtbTUiKTsKKwkmcHhvcigieG1tNiIsICJ4bW02Iik7CismZnVu
Y3Rpb25fZW5kKCJnY21fZ211bHRfc3NzZTMiKTsKKworIyBnY21fZ2hhc2hfc3NzZTMgaW5jb3Jw
b3JhdGVzIHxsZW58IGJ5dGVzIGZyb20gfGlufCB0byB8WGl8LCB1c2luZyB8SHRhYmxlfCBhcwor
IyB0aGUga2V5LiBJdCB3cml0ZXMgdGhlIHJlc3VsdCBiYWNrIHRvIHxYaXwuIHxYaXwgaXMgcmVw
cmVzZW50ZWQgaW4gR0hBU0gncworIyBzZXJpYWxpemVkIGJ5dGUgcmVwcmVzZW50YXRpb24uIHxI
dGFibGV8IGlzIGZvcm1hdHRlZCBhcyBkZXNjcmliZWQgYWJvdmUuCisjIHZvaWQgZ2NtX2doYXNo
X3Nzc2UzKHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ4
X3QgKmluLAorIyAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKTsKKyZmdW5jdGlvbl9i
ZWdpbigiZ2NtX2doYXNoX3Nzc2UzIik7CisJJm1vdigkWGksICZ3cGFyYW0oMCkpOworCSZtb3Yo
JEh0YWJsZSwgJndwYXJhbSgxKSk7CisJJm1vdigkaW4sICZ3cGFyYW0oMikpOworCSZtb3YoJGxl
biwgJndwYXJhbSgzKSk7CisKKwkmbW92ZHF1KCJ4bW0wIiwgJlFXUCgwLCAkWGkpKTsKKwkmY2Fs
bCgmbGFiZWwoInBpY19wb2ludCIpKTsKKyZzZXRfbGFiZWwoInBpY19wb2ludCIpOworCSZibGlu
ZHBvcCgiZWJ4Iik7CisJJm1vdmRxYSgieG1tNyIsICZRV1AoJmxhYmVsKCJyZXZlcnNlX2J5dGVz
IikuIi0iLiZsYWJlbCgicGljX3BvaW50IiksICJlYngiKSk7CisKKwkjIFRoaXMgZnVuY3Rpb24g
b25seSBwcm9jZXNzZXMgd2hvbGUgYmxvY2tzLgorCSZhbmQoJGxlbiwgLTE2KTsKKworCSMgUmV2
ZXJzZSBpbnB1dCBieXRlcyB0byBkZXNlcmlhbGl6ZS4gV2UgbWFpbnRhaW4gdGhlIHJ1bm5pbmcK
KwkjIHRvdGFsIGluIHhtbTAuCisJJnBzaHVmYigieG1tMCIsICJ4bW03Iik7CisKKwkjIEl0ZXJh
dGUgb3ZlciBlYWNoIGJsb2NrLiBPbiBlbnRyeSB0byBlYWNoIGl0ZXJhdGlvbiwgeG1tMyBpcyB6
ZXJvLgorCSZweG9yKCJ4bW0zIiwgInhtbTMiKTsKKyZzZXRfbGFiZWwoImxvb3BfZ2hhc2giKTsK
KwkmbW92ZHFhKCJ4bW0yIiwgJlFXUCgmbGFiZWwoImxvdzRfbWFzayIpLiItIi4mbGFiZWwoInBp
Y19wb2ludCIpLCAiZWJ4IikpOworCisJIyBJbmNvcnBvcmF0ZSB0aGUgbmV4dCBibG9jayBvZiBp
bnB1dC4KKwkmbW92ZHF1KCJ4bW0xIiwgJlFXUCgwLCAkaW4pKTsKKwkmcHNodWZiKCJ4bW0xIiwg
InhtbTciKTsJIyBSZXZlcnNlIGJ5dGVzLgorCSZweG9yKCJ4bW0wIiwgInhtbTEiKTsKKworCSMg
U3BsaXQgZWFjaCBieXRlIGludG8gbG93ICh4bW0wKSBhbmQgaGlnaCAoeG1tMSkgaGFsdmVzLgor
CSZtb3ZkcWEoInhtbTEiLCAieG1tMiIpOworCSZwYW5kbigieG1tMSIsICJ4bW0wIik7CisJJnBz
cmxkKCJ4bW0xIiwgNCk7CisJJnBhbmQoInhtbTAiLCAieG1tMiIpOworCisJIyBNYWludGFpbiB0
aGUgcmVzdWx0IGluIHhtbTIgKHRoZSB2YWx1ZSkgYW5kIHhtbTMgKGNhcnJ5IGJpdHMpLiBOb3Rl
CisJIyB0aGF0LCBkdWUgdG8gYml0IHJldmVyc2FsLCB4bW0zIGNvbnRhaW5zIGJpdHMgdGhhdCBm
YWxsIG9mZiB3aGVuCisJIyByaWdodC1zaGlmdGluZywgbm90IGxlZnQtc2hpZnRpbmcuCisJJnB4
b3IoInhtbTIiLCAieG1tMiIpOworCSMgeG1tMyBpcyBhbHJlYWR5IHplcm8gYXQgdGhpcyBwb2lu
dC4KKworCSMgV2UgbXVzdCByZWR1Y2UgYXQgbGVhc3Qgb25jZSBldmVyeSA3IHJvd3MsIHNvIGRp
dmlkZSBpbnRvIHRocmVlCisJIyBjaHVua3MuCisJJnByb2Nlc3Nfcm93cyg1KTsKKwkmcHJvY2Vz
c19yb3dzKDUpOworCSZwcm9jZXNzX3Jvd3MoNik7CisKKwkmbW92ZHFhKCJ4bW0wIiwgInhtbTIi
KTsKKworCSMgUmV3aW5kICRIdGFibGUgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbi4KKwkmbGVhKCRI
dGFibGUsICZEV1AoLTI1NiwgJEh0YWJsZSkpOworCisJIyBBZHZhbmNlIGlucHV0IGFuZCBjb250
aW51ZS4KKwkmbGVhKCRpbiwgJkRXUCgxNiwgJGluKSk7CisJJnN1YigkbGVuLCAxNik7CisJJmpu
eigmbGFiZWwoImxvb3BfZ2hhc2giKSk7CisKKwkjIFJldmVyc2UgYnl0ZXMgYW5kIHN0b3JlIHRo
ZSByZXN1bHQuCisJJnBzaHVmYigieG1tMCIsICJ4bW03Iik7CisJJm1vdmRxdSgmUVdQKDAsICRY
aSksICJ4bW0wIik7CisKKwkjIFplcm8gYW55IHJlZ2lzdGVycyB3aGljaCBjb250YWluIHNlY3Jl
dHMuCisJJnB4b3IoInhtbTAiLCAieG1tMCIpOworCSZweG9yKCJ4bW0xIiwgInhtbTEiKTsKKwkm
cHhvcigieG1tMiIsICJ4bW0yIik7CisJJnB4b3IoInhtbTMiLCAieG1tMyIpOworCSZweG9yKCJ4
bW00IiwgInhtbTQiKTsKKwkmcHhvcigieG1tNSIsICJ4bW01Iik7CisJJnB4b3IoInhtbTYiLCAi
eG1tNiIpOworJmZ1bmN0aW9uX2VuZCgiZ2NtX2doYXNoX3Nzc2UzIik7CisKKyMgcmV2ZXJzZV9i
eXRlcyBpcyBhIHBlcm11dGF0aW9uIHdoaWNoLCBpZiBhcHBsaWVkIHdpdGggcHNodWZiLCByZXZl
cnNlcyB0aGUKKyMgYnl0ZXMgaW4gYW4gWE1NIHJlZ2lzdGVyLgorJnNldF9sYWJlbCgicmV2ZXJz
ZV9ieXRlcyIsIDE2KTsKKyZkYXRhX2J5dGUoMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwg
NywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CisjIGxvdzRfbWFzayBpcyBhbiBYTU0gbWFzayB3aGlj
aCBzZWxlY3RzIHRoZSBsb3cgZm91ciBiaXRzIG9mIGVhY2ggYnl0ZS4KKyZzZXRfbGFiZWwoImxv
dzRfbWFzayIsIDE2KTsKKyZkYXRhX3dvcmQoMHgwZjBmMGYwZiwgMHgwZjBmMGYwZiwgMHgwZjBm
MGYwZiwgMHgwZjBmMGYwZik7CisKKyZhc21fZmluaXNoKCk7CisKK2Nsb3NlIFNURE9VVCBvciBk
aWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21v
ZHVsZS9tb2Rlcy9hc20vZ2hhc2gtc3NzZTMteDg2XzY0LnBsIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL21vZGVzL2FzbS9naGFzaC1zc3NlMy14ODZfNjQucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBlNTAxMDU1
OGRmNDE5MjU4MTE5OTUxZGUxMDk1ZjlkZjQzYThjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9hc20vZ2hhc2gtc3NzZTMteDg2XzY0LnBsCkBAIC0wLDAg
KzEsNDEzIEBACisjIS91c3IvYmluL2VudiBwZXJsCisjIENvcHlyaWdodCAoYykgMjAxOSwgR29v
Z2xlIEluYy4KKyMKKyMgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRp
c3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisjIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0
IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGll
cy4KKyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1Ig
RElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisjIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUg
SU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyMgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5Z
CisjIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBP
UiBBTlkgREFNQUdFUworIyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBE
QVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisjIE9GIENPTlRSQUNULCBORUdM
SUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyMg
Q09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4K
KworIyBnaGFzaC1zc3NlMy14ODZfNjQucGwgaXMgYSBjb25zdGFudC10aW1lIHZhcmlhbnQgb2Yg
dGhlIHRyYWRpdGlvbmFsIDQtYml0CisjIHRhYmxlLWJhc2VkIEdIQVNIIGltcGxlbWVudGF0aW9u
LiBJdCByZXF1aXJlcyBTU1NFMyBpbnN0cnVjdGlvbnMuCisjCisjIEZvciBiYWNrZ3JvdW5kLCB0
aGUgdGFibGUtYmFzZWQgc3RyYXRlZ3kgaXMgYSA0LWJpdCB3aW5kb3dlZCBtdWx0aXBsaWNhdGlv
bi4KKyMgSXQgcHJlY29tcHV0ZXMgYWxsIDQtYml0IG11bHRpcGxlcyBvZiBIICh0aGlzIGlzIDE2
IDEyOC1iaXQgcm93cyksIHRoZW4gbG9vcHMKKyMgb3ZlciA0LWJpdCB3aW5kb3dzIG9mIHRoZSBp
bnB1dCBhbmQgaW5kZXhlcyB0aGVtIHVwIGludG8gdGhlIHRhYmxlLiBWaXN1YWxseSwKKyMgaXQg
bXVsdGlwbGllcyBhcyBpbiB0aGUgc2Nob29sYm9vayBtdWx0aXBsaWNhdGlvbiBkaWFncmFtIGJl
bG93LCBidXQgd2l0aAorIyBtb3JlIHRlcm1zLiAoRWFjaCB0ZXJtIGlzIDQgYml0cywgc28gdGhl
cmUgYXJlIDMyIHRlcm1zIGluIGVhY2ggcm93LikgRmlyc3QKKyMgaXQgaW5jb3Jwb3JhdGVzIHRo
ZSB0ZXJtcyBsYWJlbGVkICcxJyBieSBpbmRleGluZyB0aGUgbW9zdCBzaWduaWZpY2FudCB0ZXJt
CisjIG9mIFggaW50byB0aGUgdGFibGUuIFRoZW4gaXQgc2hpZnRzIGFuZCByZXBlYXRzIGZvciAn
MicgYW5kIHNvIG9uLgorIworIyAgICAgICAgaGhoaGhoCisjICAqICAgICB4eHh4eHgKKyMgID09
PT09PT09PT09PQorIyAgICAgICAgNjY2NjY2CisjICAgICAgIDU1NTU1NQorIyAgICAgIDQ0NDQ0
NAorIyAgICAgMzMzMzMzCisjICAgIDIyMjIyMgorIyAgIDExMTExMQorIworIyBUaGlzIGltcGxl
bWVudGF0aW9uIGNoYW5nZXMgdGhlIG9yZGVyLiBXZSB0cmVhdCB0aGUgdGFibGUgYXMgYSAxNsOX
MTYgbWF0cml4CisjIGFuZCB0cmFuc3Bvc2UgaXQuIFRoZSBmaXJzdCByb3cgaXMgdGhlbiB0aGUg
Zmlyc3QgYnl0ZSBvZiBlYWNoIG11bHRpcGxlIG9mIEgsCisjIGFuZCBzbyBvbi4gV2UgdGhlbiBy
ZW9yZGVyIHRlcm1zIGFzIGJlbG93LiBPYnNlcnZlIHRoYXQgdGhlIHRlcm1zIGxhYmVsZWQgJzEn
CisjIGFuZCAnMicgYXJlIGFsbCBsb29rdXBzIGludG8gdGhlIGZpcnN0IHJvdywgZXRjLiBUaGlz
IG1hcHMgd2VsbCB0byB0aGUgU1NTRTMKKyMgcHNodWZiIGluc3RydWN0aW9uLCB1c2luZyBhbHRl
cm5hdGluZyB0ZXJtcyBvZiBYIGluIHBhcmFsbGVsIGFzIGluZGljZXMuIFRoaXMKKyMgYWx0ZXJu
YXRpb24gaXMgbmVlZGVkIGJlY2F1c2UgcHNodWZiIG1hcHMgNCBiaXRzIHRvIDggYml0cy4gVGhl
biB3ZSBzaGlmdCBhbmQKKyMgcmVwZWF0IGZvciBlYWNoIHJvdy4KKyMKKyMgICAgICAgIGhoaGho
aAorIyAgKiAgICAgeHh4eHh4CisjICA9PT09PT09PT09PT0KKyMgICAgICAgIDIyNDQ2NgorIyAg
ICAgICAxMTMzNTUKKyMgICAgICAyMjQ0NjYKKyMgICAgIDExMzM1NQorIyAgICAyMjQ0NjYKKyMg
ICAxMTMzNTUKKyMKKyMgTmV4dCB3ZSBhY2NvdW50IGZvciBHQ00ncyBjb25mdXNpbmcgYml0IG9y
ZGVyLiBUaGUgImZpcnN0IiBiaXQgaXMgdGhlIGxlYXN0CisjIHNpZ25pZmljYW50IGNvZWZmaWNp
ZW50LCBidXQgR0NNIHRyZWF0cyB0aGUgbW9zdCBzaWdpZmljYW50IGJpdCB3aXRoaW4gYSBieXRl
CisjIGFzIGZpcnN0LiBCeXRlcyBhcmUgbGl0dGxlLWVuZGlhbiwgYW5kIGJpdHMgYXJlIGJpZy1l
bmRpYW4uIFdlIHJldmVyc2UgdGhlCisjIGJ5dGVzIGluIFhNTSByZWdpc3RlcnMgZm9yIGEgY29u
c2lzdGVudCBiaXQgYW5kIGJ5dGUgb3JkZXJpbmcsIGJ1dCB0aGlzIG1lYW5zCisjIHRoZSBsZWFz
dCBzaWduaWZpY2FudCBiaXQgaXMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgY29lZmZpY2llbnQgYW5k
IHZpY2UgdmVyc2EuCisjCisjIEZvciBjb25zaXN0ZW5jeSwgImxvdyIsICJoaWdoIiwgImxlZnQt
c2hpZnQiLCBhbmQgInJpZ2h0LXNoaWZ0IiByZWZlciB0byB0aGUKKyMgYml0IG9yZGVyaW5nIHdp
dGhpbiB0aGUgWE1NIHJlZ2lzdGVyLCByYXRoZXIgdGhhbiB0aGUgcmV2ZXJzZWQgY29lZmZpY2ll
bnQKKyMgb3JkZXJpbmcuIExvdyBiaXRzIGFyZSBsZXNzIHNpZ25pZmljYW50IGJpdHMgYW5kIG1v
cmUgc2lnbmlmaWNhbnQKKyMgY29lZmZpY2llbnRzLiBSaWdodC1zaGlmdHMgbW92ZSBmcm9tIE1T
QiB0byB0aGUgTFNCIGFuZCBjb3JyZXNwb25kIHRvCisjIGluY3JlYXNpbmcgdGhlIHBvd2VyIG9m
IGVhY2ggY29lZmZpY2llbnQuCisjCisjIE5vdGUgdGhpcyBiaXQgcmV2ZXJzYWwgZW50ZXJzIGlu
dG8gdGhlIHRhYmxlJ3MgY29sdW1uIGluZGljZXMuIEgqMSBpcyBzdG9yZWQKKyMgaW4gY29sdW1u
IDBiMTAwMCBhbmQgSCp4XjMgaXMgc3RvcmVkIGluIGNvbHVtbiAwYjAwMDEuIEl0IGFsc28gbWVh
bnMgZWFybGllcgorIyB0YWJsZSByb3dzIGNvbnRhaW4gbW9yZSBzaWduaWZpY2FudCBjb2VmZmlj
aWVudHMsIHNvIHdlIGl0ZXJhdGUgZm9yd2FyZHMuCisKK3VzZSBzdHJpY3Q7CisKK215ICRmbGF2
b3VyID0gc2hpZnQ7CitteSAkb3V0cHV0ICA9IHNoaWZ0OworaWYgKCRmbGF2b3VyID1+IC9cLi8p
IHsgJG91dHB1dCA9ICRmbGF2b3VyOyB1bmRlZiAkZmxhdm91cjsgfQorCitteSAkd2luNjQgPSAw
OworJHdpbjY0ID0gMSBpZiAoJGZsYXZvdXIgPX4gL1tubV1hc218bWluZ3c2NC8gfHwgJG91dHB1
dCA9fiAvXC5hc20kLyk7CisKKyQwID1+IG0vKC4qW1wvXFxdKVteXC9cXF0rJC87CitteSAkZGly
ID0gJDE7CitteSAkeGxhdGU7CisoICR4bGF0ZT0iJHtkaXJ9eDg2XzY0LXhsYXRlLnBsIiBhbmQg
LWYgJHhsYXRlICkgb3IKKyggJHhsYXRlPSIke2Rpcn0uLi8uLi8uLi9wZXJsYXNtL3g4Nl82NC14
bGF0ZS5wbCIgYW5kIC1mICR4bGF0ZSkgb3IKK2RpZSAiY2FuJ3QgbG9jYXRlIHg4Nl82NC14bGF0
ZS5wbCI7CisKK29wZW4gT1VULCAifCBcIiReWFwiIFwiJHhsYXRlXCIgJGZsYXZvdXIgXCIkb3V0
cHV0XCIiOworKlNURE9VVCA9ICpPVVQ7CisKK215ICgkWGksICRIdGFibGUsICRpbiwgJGxlbikg
PSAkd2luNjQgPyAoIiVyY3giLCAiJXJkeCIsICIlcjgiLCAiJXI5IikgOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiJXJkaSIsICIlcnNpIiwgIiVyZHgiLCAiJXJj
eCIpOworCisKK215ICRjb2RlID0gPDxfX19fOworLnRleHQKKworIyBnY21fZ211bHRfc3NzZTMg
bXVsdGlwbGllcyB8WGl8IGJ5IHxIdGFibGV8IGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB8WGl8
LgorIyB8WGl8IGlzIHJlcHJlc2VudGVkIGluIEdIQVNIJ3Mgc2VyaWFsaXplZCBieXRlIHJlcHJl
c2VudGF0aW9uLiB8SHRhYmxlfCBpcworIyBmb3JtYXR0ZWQgYXMgZGVzY3JpYmVkIGFib3ZlLgor
IyB2b2lkIGdjbV9nbXVsdF9zc3NlMyh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVb
MTZdKTsKKy50eXBlCWdjbV9nbXVsdF9zc3NlMywgXEBhYmktb21uaXBvdGVudAorLmdsb2JsCWdj
bV9nbXVsdF9zc3NlMworLmFsaWduCTE2CitnY21fZ211bHRfc3NzZTM6CisuY2ZpX3N0YXJ0cHJv
YworLkxnbXVsdF9zZWhfYmVnaW46CitfX19fCiskY29kZSAuPSA8PF9fX18gaWYgKCR3aW42NCk7
CisJc3VicQlcJDQwLCAlcnNwCisuTGdtdWx0X3NlaF9hbGxvY3N0YWNrOgorCW1vdmRxYQkleG1t
NiwgKCVyc3ApCisuTGdtdWx0X3NlaF9zYXZlX3htbTY6CisJbW92ZHFhCSV4bW0xMCwgMTYoJXJz
cCkKKy5MZ211bHRfc2VoX3NhdmVfeG1tMTA6CisuTGdtdWx0X3NlaF9wcm9sb2dfZW5kOgorX19f
XworJGNvZGUgLj0gPDxfX19fOworCW1vdmRxdQkoJFhpKSwgJXhtbTAKKwltb3ZkcWEJLkxyZXZl
cnNlX2J5dGVzKCVyaXApLCAleG1tMTAKKwltb3ZkcWEJLkxsb3c0X21hc2soJXJpcCksICV4bW0y
CisKKwkjIFJldmVyc2UgaW5wdXQgYnl0ZXMgdG8gZGVzZXJpYWxpemUuCisJcHNodWZiCSV4bW0x
MCwgJXhtbTAKKworCSMgU3BsaXQgZWFjaCBieXRlIGludG8gbG93ICgleG1tMCkgYW5kIGhpZ2gg
KCV4bW0xKSBoYWx2ZXMuCisJbW92ZHFhCSV4bW0yLCAleG1tMQorCXBhbmRuCSV4bW0wLCAleG1t
MQorCXBzcmxkCVwkNCwgJXhtbTEKKwlwYW5kCSV4bW0yLCAleG1tMAorCisJIyBNYWludGFpbiB0
aGUgcmVzdWx0IGluICV4bW0yICh0aGUgdmFsdWUpIGFuZCAleG1tMyAoY2FycnkgYml0cykuIE5v
dGUKKwkjIHRoYXQsIGR1ZSB0byBiaXQgcmV2ZXJzYWwsICV4bW0zIGNvbnRhaW5zIGJpdHMgdGhh
dCBmYWxsIG9mZiB3aGVuCisJIyByaWdodC1zaGlmdGluZywgbm90IGxlZnQtc2hpZnRpbmcuCisJ
cHhvcgkleG1tMiwgJXhtbTIKKwlweG9yCSV4bW0zLCAleG1tMworX19fXworCitteSAkY2FsbF9j
b3VudGVyID0gMDsKKyMgcHJvY2Vzc19yb3dzIHJldHVybnMgYXNzZW1ibHkgY29kZSB0byBwcm9j
ZXNzICRyb3dzIHJvd3Mgb2YgdGhlIHRhYmxlLiBPbgorIyBpbnB1dCwgJEh0YWJsZSBzdG9yZXMg
dGhlIHBvaW50ZXIgdG8gdGhlIG5leHQgcm93LiAleG1tMCBhbmQgJXhtbTEgc3RvcmUgdGhlCisj
IGxvdyBhbmQgaGlnaCBoYWx2ZXMgb2YgdGhlIGlucHV0LiBUaGUgcmVzdWx0IHNvIGZhciBpcyBw
YXNzZWQgaW4gJXhtbTIuICV4bW0zCisjIG11c3QgYmUgemVyby4gT24gb3V0cHV0LCAkSHRhYmxl
IGlzIGFkdmFuY2VkIHRvIHRoZSBuZXh0IHJvdyBhbmQgJXhtbTIgaXMKKyMgdXBkYXRlZC4gJXht
bTMgcmVtYWlucyB6ZXJvLiBJdCBjbG9iYmVycyAlcmF4LCAleG1tNCwgJXhtbTUsIGFuZCAleG1t
Ni4KK3N1YiBwcm9jZXNzX3Jvd3MgeworICAgIG15ICgkcm93cykgPSBAXzsKKyAgICAkY2FsbF9j
b3VudGVyKys7CisKKyAgICAjIFNoaWZ0aW5nIHdob2xlIFhNTSByZWdpc3RlcnMgYnkgYml0cyBp
cyBjb21wbGV4LiBwc3JsZHEgc2hpZnRzIGJ5IGJ5dGVzLAorICAgICMgYW5kIHBzcmxxIHNoaWZ0
cyB0aGUgdHdvIDY0LWJpdCBoYWx2ZXMgc2VwYXJhdGVseS4gRWFjaCByb3cgcHJvZHVjZXMgOAor
ICAgICMgYml0cyBvZiBjYXJyeSwgYW5kIHRoZSByZWR1Y3Rpb24gbmVlZHMgYW4gYWRkaXRpb25h
bCA3LWJpdCBzaGlmdC4gVGhpcworICAgICMgbXVzdCBmaXQgaW4gNjQgYml0cyBzbyByZWR1Y3Rp
b24gY2FuIHVzZSBwc3JscS4gVGhpcyBhbGxvd3MgdXAgdG8gNyByb3dzCisgICAgIyBhdCBhIHRp
bWUuCisgICAgZGllICJDYXJyeSByZWdpc3RlciB3b3VsZCBvdmVyZmxvdyA2NCBiaXRzLiIgaWYg
KCRyb3dzKjggKyA3ID4gNjQpOworCisgICAgcmV0dXJuIDw8X19fXzsKKwltb3ZxCVwkJHJvd3Ms
ICVyYXgKKy5Mb29wX3Jvd18kY2FsbF9jb3VudGVyOgorCW1vdmRxYQkoJEh0YWJsZSksICV4bW00
CisJbGVhcQkxNigkSHRhYmxlKSwgJEh0YWJsZQorCisJIyBSaWdodC1zaGlmdCAleG1tMiBhbmQg
JXhtbTMgYnkgOCBieXRlcy4KKwltb3ZkcWEJJXhtbTIsICV4bW02CisJcGFsaWducglcJDEsICV4
bW0zLCAleG1tNgorCW1vdmRxYQkleG1tNiwgJXhtbTMKKwlwc3JsZHEJXCQxLCAleG1tMgorCisJ
IyBMb2FkIHRoZSBuZXh0IHRhYmxlIHJvdyBhbmQgaW5kZXggdGhlIGxvdyBhbmQgaGlnaCBiaXRz
IG9mIHRoZSBpbnB1dC4KKwkjIE5vdGUgdGhlIGxvdyAocmVzcGVjdGl2ZWx5LCBoaWdoKSBoYWxm
IGNvcnJlc3BvbmRzIHRvIG1vcmUKKwkjIChyZXNwZWN0aXZlbHksIGxlc3MpIHNpZ25pZmljYW50
IGNvZWZmaWNpZW50cy4KKwltb3ZkcWEJJXhtbTQsICV4bW01CisJcHNodWZiCSV4bW0wLCAleG1t
NAorCXBzaHVmYgkleG1tMSwgJXhtbTUKKworCSMgQWRkIHRoZSBoaWdoIGhhbGYgKCV4bW01KSB3
aXRob3V0IHNoaWZ0aW5nLgorCXB4b3IJJXhtbTUsICV4bW0yCisKKwkjIEFkZCB0aGUgbG93IGhh
bGYgKCV4bW00KS4gVGhpcyBtdXN0IGJlIHJpZ2h0LXNoaWZ0ZWQgYnkgNCBiaXRzLiBGaXJzdCwK
KwkjIGFkZCBpbnRvIHRoZSBjYXJyeSByZWdpc3RlciAoJXhtbTMpLgorCW1vdmRxYQkleG1tNCwg
JXhtbTUKKwlwc2xscQlcJDYwLCAleG1tNQorCW1vdmRxYQkleG1tNSwgJXhtbTYKKwlwc2xsZHEJ
XCQ4LCAleG1tNgorCXB4b3IJJXhtbTYsICV4bW0zCisKKwkjIE5leHQsIGFkZCBpbnRvICV4bW0y
LgorCXBzcmxkcQlcJDgsICV4bW01CisJcHhvcgkleG1tNSwgJXhtbTIKKwlwc3JscQlcJDQsICV4
bW00CisJcHhvcgkleG1tNCwgJXhtbTIKKworCXN1YnEJXCQxLCAlcmF4CisJam56CS5Mb29wX3Jv
d18kY2FsbF9jb3VudGVyCisKKwkjIFJlZHVjZSB0aGUgY2FycnkgcmVnaXN0ZXIuIFRoZSByZWR1
Y3Rpb24gcG9seW5vbWlhbCBpcyAxICsgeCArIHheMiArCisJIyB4XjcsIHNvIHdlIHNoaWZ0IGFu
ZCBYT1IgZm91ciB0aW1lcy4KKwlweG9yCSV4bW0zLCAleG1tMgkjIHheMCA9IDAKKwlwc3JscQlc
JDEsICV4bW0zCisJcHhvcgkleG1tMywgJXhtbTIJIyB4XjEgPSB4CisJcHNybHEJXCQxLCAleG1t
MworCXB4b3IJJXhtbTMsICV4bW0yCSMgeF4oMSsxKSA9IHheMgorCXBzcmxxCVwkNSwgJXhtbTMK
KwlweG9yCSV4bW0zLCAleG1tMgkjIHheKDErMSs1KSA9IHheNworCXB4b3IJJXhtbTMsICV4bW0z
CitfX19fCit9CisKKyMgV2UgbXVzdCByZWR1Y2UgYXQgbGVhc3Qgb25jZSBldmVyeSA3IHJvd3Ms
IHNvIGRpdmlkZSBpbnRvIHRocmVlIGNodW5rcy4KKyRjb2RlIC49IHByb2Nlc3Nfcm93cyg1KTsK
KyRjb2RlIC49IHByb2Nlc3Nfcm93cyg1KTsKKyRjb2RlIC49IHByb2Nlc3Nfcm93cyg2KTsKKwor
JGNvZGUgLj0gPDxfX19fOworCSMgU3RvcmUgdGhlIHJlc3VsdC4gUmV2ZXJzZSBieXRlcyB0byBz
ZXJpYWxpemUuCisJcHNodWZiCSV4bW0xMCwgJXhtbTIKKwltb3ZkcXUJJXhtbTIsICgkWGkpCisK
KwkjIFplcm8gYW55IHJlZ2lzdGVycyB3aGljaCBjb250YWluIHNlY3JldHMuCisJcHhvcgkleG1t
MCwgJXhtbTAKKwlweG9yCSV4bW0xLCAleG1tMQorCXB4b3IJJXhtbTIsICV4bW0yCisJcHhvcgkl
eG1tMywgJXhtbTMKKwlweG9yCSV4bW00LCAleG1tNAorCXB4b3IJJXhtbTUsICV4bW01CisJcHhv
cgkleG1tNiwgJXhtbTYKK19fX18KKyRjb2RlIC49IDw8X19fXyBpZiAoJHdpbjY0KTsKKwltb3Zk
cWEJKCVyc3ApLCAleG1tNgorCW1vdmRxYQkxNiglcnNwKSwgJXhtbTEwCisJYWRkcQlcJDQwLCAl
cnNwCitfX19fCiskY29kZSAuPSA8PF9fX187CisJcmV0CisuTGdtdWx0X3NlaF9lbmQ6CisuY2Zp
X2VuZHByb2MKKy5zaXplCWdjbV9nbXVsdF9zc3NlMywuLWdjbV9nbXVsdF9zc3NlMworX19fXwor
CiskY29kZSAuPSA8PF9fX187CisjIGdjbV9naGFzaF9zc3NlMyBpbmNvcnBvcmF0ZXMgfGxlbnwg
Ynl0ZXMgZnJvbSB8aW58IHRvIHxYaXwsIHVzaW5nIHxIdGFibGV8IGFzCisjIHRoZSBrZXkuIEl0
IHdyaXRlcyB0aGUgcmVzdWx0IGJhY2sgdG8gfFhpfC4gfFhpfCBpcyByZXByZXNlbnRlZCBpbiBH
SEFTSCdzCisjIHNlcmlhbGl6ZWQgYnl0ZSByZXByZXNlbnRhdGlvbi4gfEh0YWJsZXwgaXMgZm9y
bWF0dGVkIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyMgdm9pZCBnY21fZ2hhc2hfc3NzZTModWludDY0
X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSwgY29uc3QgdWludDhfdCAqaW4sCisjICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworLnR5cGUJZ2NtX2doYXNoX3Nzc2UzLCBc
QGFiaS1vbW5pcG90ZW50CisuZ2xvYmwJZ2NtX2doYXNoX3Nzc2UzCisuYWxpZ24JMTYKK2djbV9n
aGFzaF9zc3NlMzoKKy5MZ2hhc2hfc2VoX2JlZ2luOgorLmNmaV9zdGFydHByb2MKK19fX18KKyRj
b2RlIC49IDw8X19fXyBpZiAoJHdpbjY0KTsKKwlzdWJxCVwkNTYsICVyc3AKKy5MZ2hhc2hfc2Vo
X2FsbG9jc3RhY2s6CisJbW92ZHFhCSV4bW02LCAoJXJzcCkKKy5MZ2hhc2hfc2VoX3NhdmVfeG1t
NjoKKwltb3ZkcWEJJXhtbTEwLCAxNiglcnNwKQorLkxnaGFzaF9zZWhfc2F2ZV94bW0xMDoKKwlt
b3ZkcWEJJXhtbTExLCAzMiglcnNwKQorLkxnaGFzaF9zZWhfc2F2ZV94bW0xMToKKy5MZ2hhc2hf
c2VoX3Byb2xvZ19lbmQ6CitfX19fCiskY29kZSAuPSA8PF9fX187CisJbW92ZHF1CSgkWGkpLCAl
eG1tMAorCW1vdmRxYQkuTHJldmVyc2VfYnl0ZXMoJXJpcCksICV4bW0xMAorCW1vdmRxYQkuTGxv
dzRfbWFzayglcmlwKSwgJXhtbTExCisKKwkjIFRoaXMgZnVuY3Rpb24gb25seSBwcm9jZXNzZXMg
d2hvbGUgYmxvY2tzLgorCWFuZHEJXCQtMTYsICRsZW4KKworCSMgUmV2ZXJzZSBpbnB1dCBieXRl
cyB0byBkZXNlcmlhbGl6ZS4gV2UgbWFpbnRhaW4gdGhlIHJ1bm5pbmcKKwkjIHRvdGFsIGluICV4
bW0wLgorCXBzaHVmYgkleG1tMTAsICV4bW0wCisKKwkjIEl0ZXJhdGUgb3ZlciBlYWNoIGJsb2Nr
LiBPbiBlbnRyeSB0byBlYWNoIGl0ZXJhdGlvbiwgJXhtbTMgaXMgemVyby4KKwlweG9yCSV4bW0z
LCAleG1tMworLkxvb3BfZ2hhc2g6CisJIyBJbmNvcnBvcmF0ZSB0aGUgbmV4dCBibG9jayBvZiBp
bnB1dC4KKwltb3ZkcXUJKCRpbiksICV4bW0xCisJcHNodWZiCSV4bW0xMCwgJXhtbTEJIyBSZXZl
cnNlIGJ5dGVzLgorCXB4b3IJJXhtbTEsICV4bW0wCisKKwkjIFNwbGl0IGVhY2ggYnl0ZSBpbnRv
IGxvdyAoJXhtbTApIGFuZCBoaWdoICgleG1tMSkgaGFsdmVzLgorCW1vdmRxYQkleG1tMTEsICV4
bW0xCisJcGFuZG4JJXhtbTAsICV4bW0xCisJcHNybGQJXCQ0LCAleG1tMQorCXBhbmQJJXhtbTEx
LCAleG1tMAorCisJIyBNYWludGFpbiB0aGUgcmVzdWx0IGluICV4bW0yICh0aGUgdmFsdWUpIGFu
ZCAleG1tMyAoY2FycnkgYml0cykuIE5vdGUKKwkjIHRoYXQsIGR1ZSB0byBiaXQgcmV2ZXJzYWws
ICV4bW0zIGNvbnRhaW5zIGJpdHMgdGhhdCBmYWxsIG9mZiB3aGVuCisJIyByaWdodC1zaGlmdGlu
Zywgbm90IGxlZnQtc2hpZnRpbmcuCisJcHhvcgkleG1tMiwgJXhtbTIKKwkjICV4bW0zIGlzIGFs
cmVhZHkgemVybyBhdCB0aGlzIHBvaW50LgorX19fXworCisjIFdlIG11c3QgcmVkdWNlIGF0IGxl
YXN0IG9uY2UgZXZlcnkgNyByb3dzLCBzbyBkaXZpZGUgaW50byB0aHJlZSBjaHVua3MuCiskY29k
ZSAuPSBwcm9jZXNzX3Jvd3MoNSk7CiskY29kZSAuPSBwcm9jZXNzX3Jvd3MoNSk7CiskY29kZSAu
PSBwcm9jZXNzX3Jvd3MoNik7CisKKyRjb2RlIC49IDw8X19fXzsKKwltb3ZkcWEJJXhtbTIsICV4
bW0wCisKKwkjIFJld2luZCAkSHRhYmxlIGZvciB0aGUgbmV4dCBpdGVyYXRpb24uCisJbGVhcQkt
MjU2KCRIdGFibGUpLCAkSHRhYmxlCisKKwkjIEFkdmFuY2UgaW5wdXQgYW5kIGNvbnRpbnVlLgor
CWxlYXEJMTYoJGluKSwgJGluCisJc3VicQlcJDE2LCAkbGVuCisJam56CS5Mb29wX2doYXNoCisK
KwkjIFJldmVyc2UgYnl0ZXMgYW5kIHN0b3JlIHRoZSByZXN1bHQuCisJcHNodWZiCSV4bW0xMCwg
JXhtbTAKKwltb3ZkcXUJJXhtbTAsICgkWGkpCisKKwkjIFplcm8gYW55IHJlZ2lzdGVycyB3aGlj
aCBjb250YWluIHNlY3JldHMuCisJcHhvcgkleG1tMCwgJXhtbTAKKwlweG9yCSV4bW0xLCAleG1t
MQorCXB4b3IJJXhtbTIsICV4bW0yCisJcHhvcgkleG1tMywgJXhtbTMKKwlweG9yCSV4bW00LCAl
eG1tNAorCXB4b3IJJXhtbTUsICV4bW01CisJcHhvcgkleG1tNiwgJXhtbTYKK19fX18KKyRjb2Rl
IC49IDw8X19fXyBpZiAoJHdpbjY0KTsKKwltb3ZkcWEJKCVyc3ApLCAleG1tNgorCW1vdmRxYQkx
NiglcnNwKSwgJXhtbTEwCisJbW92ZHFhCTMyKCVyc3ApLCAleG1tMTEKKwlhZGRxCVwkNTYsICVy
c3AKK19fX18KKyRjb2RlIC49IDw8X19fXzsKKwlyZXQKKy5MZ2hhc2hfc2VoX2VuZDoKKy5jZmlf
ZW5kcHJvYworLnNpemUJZ2NtX2doYXNoX3Nzc2UzLC4tZ2NtX2doYXNoX3Nzc2UzCisKKy5hbGln
bgkxNgorIyAuTHJldmVyc2VfYnl0ZXMgaXMgYSBwZXJtdXRhdGlvbiB3aGljaCwgaWYgYXBwbGll
ZCB3aXRoIHBzaHVmYiwgcmV2ZXJzZXMgdGhlCisjIGJ5dGVzIGluIGFuIFhNTSByZWdpc3Rlci4K
Ky5McmV2ZXJzZV9ieXRlczoKKy5ieXRlCTE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcs
IDYsIDUsIDQsIDMsIDIsIDEsIDAKKyMgLkxsb3c0X21hc2sgaXMgYW4gWE1NIG1hc2sgd2hpY2gg
c2VsZWN0cyB0aGUgbG93IGZvdXIgYml0cyBvZiBlYWNoIGJ5dGUuCisuTGxvdzRfbWFzazoKKy5x
dWFkCTB4MGYwZjBmMGYwZjBmMGYwZiwgMHgwZjBmMGYwZjBmMGYwZjBmCitfX19fCisKK2lmICgk
d2luNjQpIHsKKyAgIyBBZGQgdW53aW5kIG1ldGFkYXRhIGZvciBTRUguCisgICMKKyAgIyBUT0RP
KGRhdmlkYmVuKTogVGhpcyBpcyBhbGwgbWFudWFsIHJpZ2h0IG5vdy4gT25jZSB3ZSd2ZSBhZGRl
ZCBTRUggdGVzdHMsCisgICMgYWRkIHN1cHBvcnQgZm9yIGVtaXR0aW5nIHRoZXNlIGluIHg4Nl82
NC14bGF0ZS5wbCwgcHJvYmFibHkgYmFzZWQgb24gTUFTTQorICAjIGFuZCBZYXNtJ3MgdW53aW5k
IGRpcmVjdGl2ZXMsIGFuZCB1bmlmeSB3aXRoIENGSS4gVGhlbiB1cHN0cmVhbSBpdCB0bworICAj
IHJlcGxhY2UgdGhlIGVycm9yLXByb25lIGFuZCBub24tc3RhbmRhcmQgY3VzdG9tIGhhbmRsZXJz
LgorCisgICMgU2VlIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2NwcC9idWlsZC9z
dHJ1Y3QtdW53aW5kLWNvZGU/dmlldz12cy0yMDE3CisgIG15ICRVV09QX0FMTE9DX1NNQUxMID0g
MjsKKyAgbXkgJFVXT1BfU0FWRV9YTU0xMjggPSA4OworCisgICRjb2RlIC49IDw8X19fXzsKKy5z
ZWN0aW9uCS5wZGF0YQorLmFsaWduCTQKKwkucnZhCS5MZ211bHRfc2VoX2JlZ2luCisJLnJ2YQku
TGdtdWx0X3NlaF9lbmQKKwkucnZhCS5MZ211bHRfc2VoX2luZm8KKworCS5ydmEJLkxnaGFzaF9z
ZWhfYmVnaW4KKwkucnZhCS5MZ2hhc2hfc2VoX2VuZAorCS5ydmEJLkxnaGFzaF9zZWhfaW5mbwor
Cisuc2VjdGlvbgkueGRhdGEKKy5hbGlnbgk4CisuTGdtdWx0X3NlaF9pbmZvOgorCS5ieXRlCTEJ
IyB2ZXJzaW9uIDEsIG5vIGZsYWdzCisJLmJ5dGUJLkxnbXVsdF9zZWhfcHJvbG9nX2VuZC0uTGdt
dWx0X3NlaF9iZWdpbgorCS5ieXRlCTUJIyBudW1fc2xvdHMgPSAxICsgMiArIDIKKwkuYnl0ZQkw
CSMgbm8gZnJhbWUgcmVnaXN0ZXIKKworCS5ieXRlCS5MZ211bHRfc2VoX3NhdmVfeG1tMTAtLkxn
bXVsdF9zZWhfYmVnaW4KKwkuYnl0ZQlAe1skVVdPUF9TQVZFX1hNTTEyOCB8ICgxMCA8PCA0KV19
CisJLnZhbHVlCTEKKworCS5ieXRlCS5MZ211bHRfc2VoX3NhdmVfeG1tNi0uTGdtdWx0X3NlaF9i
ZWdpbgorCS5ieXRlCUB7WyRVV09QX1NBVkVfWE1NMTI4IHwgKDYgPDwgNCldfQorCS52YWx1ZQkw
CisKKwkuYnl0ZQkuTGdtdWx0X3NlaF9hbGxvY3N0YWNrLS5MZ211bHRfc2VoX2JlZ2luCisJLmJ5
dGUJQHtbJFVXT1BfQUxMT0NfU01BTEwgfCAoKCg0MCAtIDgpIC8gOCkgPDwgNCldfQorCisuYWxp
Z24JOAorLkxnaGFzaF9zZWhfaW5mbzoKKwkuYnl0ZQkxCSMgdmVyc2lvbiAxLCBubyBmbGFncwor
CS5ieXRlCS5MZ2hhc2hfc2VoX3Byb2xvZ19lbmQtLkxnaGFzaF9zZWhfYmVnaW4KKwkuYnl0ZQk3
CSMgbnVtX3Nsb3RzID0gMSArIDIgKyAyICsgMgorCS5ieXRlCTAJIyBubyBmcmFtZSByZWdpc3Rl
cgorCisJLmJ5dGUJLkxnaGFzaF9zZWhfc2F2ZV94bW0xMS0uTGdoYXNoX3NlaF9iZWdpbgorCS5i
eXRlCUB7WyRVV09QX1NBVkVfWE1NMTI4IHwgKDExIDw8IDQpXX0KKwkudmFsdWUJMgorCisJLmJ5
dGUJLkxnaGFzaF9zZWhfc2F2ZV94bW0xMC0uTGdoYXNoX3NlaF9iZWdpbgorCS5ieXRlCUB7WyRV
V09QX1NBVkVfWE1NMTI4IHwgKDEwIDw8IDQpXX0KKwkudmFsdWUJMQorCisJLmJ5dGUJLkxnaGFz
aF9zZWhfc2F2ZV94bW02LS5MZ2hhc2hfc2VoX2JlZ2luCisJLmJ5dGUJQHtbJFVXT1BfU0FWRV9Y
TU0xMjggfCAoNiA8PCA0KV19CisJLnZhbHVlCTAKKworCS5ieXRlCS5MZ2hhc2hfc2VoX2FsbG9j
c3RhY2stLkxnaGFzaF9zZWhfYmVnaW4KKwkuYnl0ZQlAe1skVVdPUF9BTExPQ19TTUFMTCB8ICgo
KDU2IC0gOCkgLyA4KSA8PCA0KV19CitfX19fCit9CisKK3ByaW50ICRjb2RlOworY2xvc2UgU1RE
T1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL21vZGVzL2FzbS9naGFzaC14ODYucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvbW9kZXMvYXNtL2doYXNoLXg4Ni5wbAppbmRleCAwMmVkZjAzMzUwZjljODA2ODZkNjI5MjBh
MWM1ZTMwMGFhY2I2NDAxLi5hMmFiODU5YzY5NjczMDI3OGM1ZTA5N2MxOGEyMGM4ZTg1NDJlMTc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvYXNtL2doYXNoLXg4Ni5w
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvYXNtL2doYXNoLXg4Ni5wbApAQCAt
MTE1MCw3ICsxMTUwLDcgQEAgbXkgKCRYaGksJFhpKT1AXzsKICZhc2NpeigiR0hBU0ggZm9yIHg4
NiwgQ1JZUFRPR0FNUyBieSA8YXBwcm9cQG9wZW5zc2wub3JnPiIpOwogJmFzbV9maW5pc2goKTsK
IAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERP
VVQiOwogCiAjIEEgcXVlc3Rpb24gd2FzIHJpc2VuIGFib3V0IGNob2ljZSBvZiB2YW5pbGxhIE1N
WC4gT3IgcmF0aGVyIHdoeSB3YXNuJ3QKICMgU1NFMiBjaG9zZW4gaW5zdGVhZD8gSW4gYWRkaXRp
b24gdG8gdGhlIGZhY3QgdGhhdCBNTVggcnVucyBvbiBsZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9hc20vZ2hhc2gteDg2XzY0LnBsIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL21vZGVzL2FzbS9naGFzaC14ODZfNjQucGwKaW5kZXggZmM2MzFjNzcxMWY4YmE2
OGFjZGU5YzVjMTk4Mjk0N2UwYTM4ZGU2Zi4uNWM0MTIyZmU4MWVmNjFjMjkxYTgwMDllN2NlOGUx
YjE1NTQ3YmUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9n
aGFzaC14ODZfNjQucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9naGFz
aC14ODZfNjQucGwKQEAgLTUxOCw2ICs1MTgsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQlnY21f
aW5pdF9jbG11bCxcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMTYKIGdjbV9pbml0X2NsbXVsOgor
LmNmaV9zdGFydHByb2MKIC5MX2luaXRfY2xtdWw6CiBfX18KICRjb2RlLj08PF9fXyBpZiAoJHdp
bjY0KTsKQEAgLTU4Nyw2ICs1ODgsNyBAQCAkY29kZS49PDxfX18gaWYgKCR3aW42NCk7CiBfX18K
ICRjb2RlLj08PF9fXzsKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJZ2NtX2luaXRfY2xtdWws
Li1nY21faW5pdF9jbG11bAogX19fCiB9CkBAIC01OTgsNiArNjAwLDcgQEAgJGNvZGUuPTw8X19f
OwogLnR5cGUJZ2NtX2dtdWx0X2NsbXVsLFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkxNgogZ2Nt
X2dtdWx0X2NsbXVsOgorLmNmaV9zdGFydHByb2MKIC5MX2dtdWx0X2NsbXVsOgogCW1vdmRxdQkJ
KCRYaXApLCRYaQogCW1vdmRxYQkJLkxic3dhcF9tYXNrKCVyaXApLCRUMwpAQCAtNjM0LDYgKzYz
Nyw3IEBAICRjb2RlLj08PF9fXzsKIAlwc2h1ZmIJCSRUMywkWGkKIAltb3ZkcXUJCSRYaSwoJFhp
cCkKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNpemUJZ2NtX2dtdWx0X2NsbXVsLC4tZ2NtX2dtdWx0
X2NsbXVsCiBfX18KIH0KQEAgLTY0Nyw2ICs2NTEsNyBAQCAkY29kZS49PDxfX187CiAudHlwZQln
Y21fZ2hhc2hfY2xtdWwsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTMyCiBnY21fZ2hhc2hfY2xt
dWw6CisuY2ZpX3N0YXJ0cHJvYwogLkxfZ2hhc2hfY2xtdWw6CiBfX18KICRjb2RlLj08PF9fXyBp
ZiAoJHdpbjY0KTsKQEAgLTk5NSw2ICsxMDAwLDcgQEAgJGNvZGUuPTw8X19fIGlmICgkd2luNjQp
OwogX19fCiAkY29kZS49PDxfX187CiAJcmV0CisuY2ZpX2VuZHByb2MKIC5zaXplCWdjbV9naGFz
aF9jbG11bCwuLWdjbV9naGFzaF9jbG11bAogX19fCiB9CkBAIC0xMDA0LDYgKzEwMTAsNyBAQCAk
Y29kZS49PDxfX187CiAudHlwZQlnY21faW5pdF9hdngsXEBhYmktb21uaXBvdGVudAogLmFsaWdu
CTMyCiBnY21faW5pdF9hdng6CisuY2ZpX3N0YXJ0cHJvYwogX19fCiBpZiAoJGF2eCkgewogbXkg
KCRIdGJsLCRYaXApPUBfNGFyZ3M7CkBAIC0xMTMyLDYgKzExMzksNyBAQCAkY29kZS49PDxfX18g
aWYgKCR3aW42NCk7CiBfX18KICRjb2RlLj08PF9fXzsKIAlyZXQKKy5jZmlfZW5kcHJvYwogLnNp
emUJZ2NtX2luaXRfYXZ4LC4tZ2NtX2luaXRfYXZ4CiBfX18KIH0gZWxzZSB7CkBAIC0xMTQ2LDcg
KzExNTQsOSBAQCAkY29kZS49PDxfX187CiAudHlwZQlnY21fZ211bHRfYXZ4LFxAYWJpLW9tbmlw
b3RlbnQKIC5hbGlnbgkzMgogZ2NtX2dtdWx0X2F2eDoKKy5jZmlfc3RhcnRwcm9jCiAJam1wCS5M
X2dtdWx0X2NsbXVsCisuY2ZpX2VuZHByb2MKIC5zaXplCWdjbV9nbXVsdF9hdngsLi1nY21fZ211
bHRfYXZ4CiBfX18KIAwKQEAgLTExNTUsNiArMTE2NSw3IEBAICRjb2RlLj08PF9fXzsKIC50eXBl
CWdjbV9naGFzaF9hdngsXEBhYmktb21uaXBvdGVudAogLmFsaWduCTMyCiBnY21fZ2hhc2hfYXZ4
OgorLmNmaV9zdGFydHByb2MKIF9fXwogaWYgKCRhdngpIHsKIG15ICgkWGlwLCRIdGJsLCRpbnAs
JGxlbik9QF80YXJnczsKQEAgLTE1NjcsNiArMTU3OCw3IEBAICRjb2RlLj08PF9fXyBpZiAoJHdp
bjY0KTsKIF9fXwogJGNvZGUuPTw8X19fOwogCXJldAorLmNmaV9lbmRwcm9jCiAuc2l6ZQlnY21f
Z2hhc2hfYXZ4LC4tZ2NtX2doYXNoX2F2eAogX19fCiB9IGVsc2UgewpAQCAtMTc5MSw0ICsxODAz
LDQgQEAgJGNvZGUgPX4gcy9cYChbXlxgXSopXGAvZXZhbCgkMSkvZ2VtOwogCiBwcmludCAkY29k
ZTsKIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBT
VERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9naGFz
aHA4LXBwYy5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9hc20vZ2hhc2hwOC1wcGMu
cGwKaW5kZXggYzQ2Y2RiNWQ3ZTkyZTMwZGQ5YjdjMThhNWZmYzlhY2JhM2ZiZjFiYy4uN2ExMjU5
YmEwYzViZTZhOGZmZmQ2YjBkZjA3OWI1NjMzNzA4Zjg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9maXBzbW9kdWxlL21vZGVzL2FzbS9naGFzaHA4LXBwYy5wbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Zp
cHNtb2R1bGUvbW9kZXMvYXNtL2doYXNocDgtcHBjLnBsCkBAIC02NjcsNCArNjY3LDQgQEAgZm9y
ZWFjaCAoc3BsaXQoIlxuIiwkY29kZSkpIHsKIAlwcmludCAkXywiXG4iOwogfQogCi1jbG9zZSBT
VERPVVQ7ICMgZW5mb3JjZSBmbHVzaAorY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2lu
ZyBTVERPVVQiOyAjIGVuZm9yY2UgZmx1c2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21v
ZHVsZS9tb2Rlcy9hc20vZ2hhc2h2OC1hcm14LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21v
ZGVzL2FzbS9naGFzaHY4LWFybXgucGwKaW5kZXggMTQzNWRiNTA0YjdiNTQ5ZDI4YjBkNjVmNTkx
MTQzNDYyNjdkZGEzYS4uOTkxMjRhMmIzNTYzN2JlZjk1MGU0NjA0NDIxYjY4NTk5NzNkMmRjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9naGFzaHY4LWFybXgu
cGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2FzbS9naGFzaHY4LWFybXgucGwK
QEAgLTQyNSw0ICs0MjUsNCBAQCBpZiAoJGZsYXZvdXIgPX4gLzY0LykgewkJCSMjIyMjIyMjIDY0
LWJpdCBjb2RlCiAgICAgfQogfQogCi1jbG9zZSBTVERPVVQ7ICMgZW5mb3JjZSBmbHVzaAorY2xv
c2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOyAjIGVuZm9yY2UgZmx1c2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9jYmMuYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vZmlwc21vZHVsZS9tb2Rlcy9jYmMuYwppbmRleCA2NGVhNTA1NjM1MDQzZWM2NGIxODNjZmY0
MTJhMjZiYjVkYzAxZTdlLi4zZjFkNzc3NjZiOWZiMTJlNTEzNzFiZmI1NWQ5NWJhYTYxMGE0NmVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvY2JjLmMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2NiYy5jCkBAIC00OSw2ICs0OSw4IEBACiAjaW5jbHVk
ZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKKyNpbmNsdWRlIDxvcGVuc3NsL3R5
cGVfY2hlY2suaD4KKwogI2luY2x1ZGUgImludGVybmFsLmgiCiAKIApAQCAtNjEsMzAgKzYzLDE1
IEBAIHZvaWQgQ1JZUFRPX2NiYzEyOF9lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90
ICpvdXQsIHNpemVfdCBsZW4sCiAgIGFzc2VydChrZXkgIT0gTlVMTCAmJiBpdmVjICE9IE5VTEwp
OwogICBhc3NlcnQobGVuID09IDAgfHwgKGluICE9IE5VTEwgJiYgb3V0ICE9IE5VTEwpKTsKIAot
ICBpZiAoU1RSSUNUX0FMSUdOTUVOVCAmJgotICAgICAgKCh1aW50cHRyX3QpaW4gfCAodWludHB0
cl90KW91dCB8ICh1aW50cHRyX3QpaXZlYykgJSBzaXplb2Yoc2l6ZV90KSAhPQotICAgICAgICAg
IDApIHsKLSAgICB3aGlsZSAobGVuID49IDE2KSB7Ci0gICAgICBmb3IgKG4gPSAwOyBuIDwgMTY7
ICsrbikgewotICAgICAgICBvdXRbbl0gPSBpbltuXSBeIGl2W25dOwotICAgICAgfQotICAgICAg
KCpibG9jaykob3V0LCBvdXQsIGtleSk7Ci0gICAgICBpdiA9IG91dDsKLSAgICAgIGxlbiAtPSAx
NjsKLSAgICAgIGluICs9IDE2OwotICAgICAgb3V0ICs9IDE2OwotICAgIH0KLSAgfSBlbHNlIHsK
LSAgICB3aGlsZSAobGVuID49IDE2KSB7Ci0gICAgICBmb3IgKG4gPSAwOyBuIDwgMTY7IG4gKz0g
c2l6ZW9mKHNpemVfdCkpIHsKLSAgICAgICAgc3RvcmVfd29yZF9sZShvdXQgKyBuLCBsb2FkX3dv
cmRfbGUoaW4gKyBuKSBeIGxvYWRfd29yZF9sZShpdiArIG4pKTsKLSAgICAgIH0KLSAgICAgICgq
YmxvY2spKG91dCwgb3V0LCBrZXkpOwotICAgICAgaXYgPSBvdXQ7Ci0gICAgICBsZW4gLT0gMTY7
Ci0gICAgICBpbiArPSAxNjsKLSAgICAgIG91dCArPSAxNjsKKyAgd2hpbGUgKGxlbiA+PSAxNikg
eworICAgIGZvciAobiA9IDA7IG4gPCAxNjsgbiArPSBzaXplb2Yoc2l6ZV90KSkgeworICAgICAg
c3RvcmVfd29yZF9sZShvdXQgKyBuLCBsb2FkX3dvcmRfbGUoaW4gKyBuKSBeIGxvYWRfd29yZF9s
ZShpdiArIG4pKTsKICAgICB9CisgICAgKCpibG9jaykob3V0LCBvdXQsIGtleSk7CisgICAgaXYg
PSBvdXQ7CisgICAgbGVuIC09IDE2OworICAgIGluICs9IDE2OworICAgIG91dCArPSAxNjsKICAg
fQogCiAgIHdoaWxlIChsZW4pIHsKQEAgLTEyNyw2NiArMTE0LDM1IEBAIHZvaWQgQ1JZUFRPX2Ni
YzEyOF9kZWNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIHNpemVfdCBsZW4s
CiAgIGlmICgoaW5wdHIgPj0gMzIgJiYgb3V0cHRyIDw9IGlucHRyIC0gMzIpIHx8IGlucHRyIDwg
b3V0cHRyKSB7CiAgICAgLy8gSWYgfG91dHwgaXMgYXQgbGVhc3QgdHdvIGJsb2NrcyBiZWhpbmQg
fGlufCBvciBjb21wbGV0ZWx5IGRpc2pvaW50LCB0aGVyZQogICAgIC8vIGlzIG5vIG5lZWQgdG8g
ZGVjcnlwdCB0byBhIHRlbXBvcmFyeSBibG9jay4KKyAgICBPUEVOU1NMX1NUQVRJQ19BU1NFUlQo
MTYgJSBzaXplb2Yoc2l6ZV90KSA9PSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiYmxv
Y2sgY2Fubm90IGJlIGV2ZW5seSBkaXZpZGVkIGludG8gd29yZHMiKTsKICAgICBjb25zdCB1aW50
OF90ICppdiA9IGl2ZWM7Ci0KLSAgICBpZiAoU1RSSUNUX0FMSUdOTUVOVCAmJgotICAgICAgICAo
KHVpbnRwdHJfdClpbiB8ICh1aW50cHRyX3Qpb3V0IHwgKHVpbnRwdHJfdClpdmVjKSAlIHNpemVv
ZihzaXplX3QpICE9Ci0gICAgICAgICAgICAwKSB7Ci0gICAgICB3aGlsZSAobGVuID49IDE2KSB7
Ci0gICAgICAgICgqYmxvY2spKGluLCBvdXQsIGtleSk7Ci0gICAgICAgIGZvciAobiA9IDA7IG4g
PCAxNjsgKytuKSB7Ci0gICAgICAgICAgb3V0W25dIF49IGl2W25dOwotICAgICAgICB9Ci0gICAg
ICAgIGl2ID0gaW47Ci0gICAgICAgIGxlbiAtPSAxNjsKLSAgICAgICAgaW4gKz0gMTY7Ci0gICAg
ICAgIG91dCArPSAxNjsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKDE2ICUgc2l6ZW9mKHNpemVf
dCkgPT0gMCkgeyAgLy8gYWx3YXlzIHRydWUKLSAgICAgIHdoaWxlIChsZW4gPj0gMTYpIHsKLSAg
ICAgICAgKCpibG9jaykoaW4sIG91dCwga2V5KTsKLSAgICAgICAgZm9yIChuID0gMDsgbiA8IDE2
OyBuICs9IHNpemVvZihzaXplX3QpKSB7Ci0gICAgICAgICAgc3RvcmVfd29yZF9sZShvdXQgKyBu
LCBsb2FkX3dvcmRfbGUob3V0ICsgbikgXiBsb2FkX3dvcmRfbGUoaXYgKyBuKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgaXYgPSBpbjsKLSAgICAgICAgbGVuIC09IDE2OwotICAgICAgICBpbiArPSAx
NjsKLSAgICAgICAgb3V0ICs9IDE2OworICAgIHdoaWxlIChsZW4gPj0gMTYpIHsKKyAgICAgICgq
YmxvY2spKGluLCBvdXQsIGtleSk7CisgICAgICBmb3IgKG4gPSAwOyBuIDwgMTY7IG4gKz0gc2l6
ZW9mKHNpemVfdCkpIHsKKyAgICAgICAgc3RvcmVfd29yZF9sZShvdXQgKyBuLCBsb2FkX3dvcmRf
bGUob3V0ICsgbikgXiBsb2FkX3dvcmRfbGUoaXYgKyBuKSk7CiAgICAgICB9CisgICAgICBpdiA9
IGluOworICAgICAgbGVuIC09IDE2OworICAgICAgaW4gKz0gMTY7CisgICAgICBvdXQgKz0gMTY7
CiAgICAgfQogICAgIE9QRU5TU0xfbWVtY3B5KGl2ZWMsIGl2LCAxNik7CiAgIH0gZWxzZSB7Ci0g
ICAgLy8gfG91dHwgaXMgbGVzcyB0aGFuIHR3byBibG9ja3MgYmVoaW5kIHxpbnwuIERlY3J5cHRp
bmcgYW4gaW5wdXQgYmxvY2sKLSAgICAvLyBkaXJlY3RseSB0byB8b3V0fCB3b3VsZCBvdmVyd3Jp
dGUgYSBjaXBoZXJ0ZXh0IGJsb2NrIGJlZm9yZSBpdCBpcyB1c2VkIGFzCi0gICAgLy8gdGhlIG5l
eHQgYmxvY2sncyBJVi4gRGVjcnlwdCB0byBhIHRlbXBvcmFyeSBibG9jayBpbnN0ZWFkLgotICAg
IGlmIChTVFJJQ1RfQUxJR05NRU5UICYmCi0gICAgICAgICgodWludHB0cl90KWluIHwgKHVpbnRw
dHJfdClvdXQgfCAodWludHB0cl90KWl2ZWMpICUgc2l6ZW9mKHNpemVfdCkgIT0KLSAgICAgICAg
ICAgIDApIHsKLSAgICAgIHVpbnQ4X3QgYzsKLSAgICAgIHdoaWxlIChsZW4gPj0gMTYpIHsKLSAg
ICAgICAgKCpibG9jaykoaW4sIHRtcC5jLCBrZXkpOwotICAgICAgICBmb3IgKG4gPSAwOyBuIDwg
MTY7ICsrbikgewotICAgICAgICAgIGMgPSBpbltuXTsKLSAgICAgICAgICBvdXRbbl0gPSB0bXAu
Y1tuXSBeIGl2ZWNbbl07Ci0gICAgICAgICAgaXZlY1tuXSA9IGM7Ci0gICAgICAgIH0KLSAgICAg
ICAgbGVuIC09IDE2OwotICAgICAgICBpbiArPSAxNjsKLSAgICAgICAgb3V0ICs9IDE2OwotICAg
ICAgfQotICAgIH0gZWxzZSBpZiAoMTYgJSBzaXplb2Yoc2l6ZV90KSA9PSAwKSB7ICAvLyBhbHdh
eXMgdHJ1ZQotICAgICAgd2hpbGUgKGxlbiA+PSAxNikgewotICAgICAgICAoKmJsb2NrKShpbiwg
dG1wLmMsIGtleSk7Ci0gICAgICAgIGZvciAobiA9IDA7IG4gPCAxNjsgbiArPSBzaXplb2Yoc2l6
ZV90KSkgewotICAgICAgICAgIHNpemVfdCBjID0gbG9hZF93b3JkX2xlKGluICsgbik7Ci0gICAg
ICAgICAgc3RvcmVfd29yZF9sZShvdXQgKyBuLAotICAgICAgICAgICAgICAgICAgICAgICAgdG1w
LnRbbiAvIHNpemVvZihzaXplX3QpXSBeIGxvYWRfd29yZF9sZShpdmVjICsgbikpOwotICAgICAg
ICAgIHN0b3JlX3dvcmRfbGUoaXZlYyArIG4sIGMpOwotICAgICAgICB9Ci0gICAgICAgIGxlbiAt
PSAxNjsKLSAgICAgICAgaW4gKz0gMTY7Ci0gICAgICAgIG91dCArPSAxNjsKKyAgICBPUEVOU1NM
X1NUQVRJQ19BU1NFUlQoMTYgJSBzaXplb2Yoc2l6ZV90KSA9PSAwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYmxvY2sgY2Fubm90IGJlIGV2ZW5seSBkaXZpZGVkIGludG8gd29yZHMiKTsK
KworICAgIHdoaWxlIChsZW4gPj0gMTYpIHsKKyAgICAgICgqYmxvY2spKGluLCB0bXAuYywga2V5
KTsKKyAgICAgIGZvciAobiA9IDA7IG4gPCAxNjsgbiArPSBzaXplb2Yoc2l6ZV90KSkgeworICAg
ICAgICBzaXplX3QgYyA9IGxvYWRfd29yZF9sZShpbiArIG4pOworICAgICAgICBzdG9yZV93b3Jk
X2xlKG91dCArIG4sCisgICAgICAgICAgICAgICAgICAgICAgdG1wLnRbbiAvIHNpemVvZihzaXpl
X3QpXSBeIGxvYWRfd29yZF9sZShpdmVjICsgbikpOworICAgICAgICBzdG9yZV93b3JkX2xlKGl2
ZWMgKyBuLCBjKTsKICAgICAgIH0KKyAgICAgIGxlbiAtPSAxNjsKKyAgICAgIGluICs9IDE2Owor
ICAgICAgb3V0ICs9IDE2OwogICAgIH0KICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Zp
cHNtb2R1bGUvbW9kZXMvY2NtLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvY2NtLmMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhMTUzZjQxZTBmMzhmNjhhYmY3ODJlZmYx
OGFkNGRlZTZkMWFmNWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2NjbS5jCisrKyAvZGV2L251bGwKQEAg
LTEsMjU2ICswLDAgQEAKLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTEgVGhl
IE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCi0gKiAgICB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmli
dXRpb24uCi0gKgotICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZl
YXR1cmVzIG9yIHVzZSBvZiB0aGlzCi0gKiAgICBzb2Z0d2FyZSBtdXN0IGRpc3BsYXkgdGhlIGZv
bGxvd2luZyBhY2tub3dsZWRnbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29m
dHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKLSAqICAgIGZvciB1c2UgaW4g
dGhlIE9wZW5TU0wgVG9vbGtpdC4gKGh0dHA6Ly93d3cub3BlbnNzbC5vcmcvKSIKLSAqCi0gKiA0
LiBUaGUgbmFtZXMgIk9wZW5TU0wgVG9vbGtpdCIgYW5kICJPcGVuU1NMIFByb2plY3QiIG11c3Qg
bm90IGJlIHVzZWQgdG8KLSAqICAgIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0Ci0gKiAgICBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uIEZvciB3cml0dGVuIHBlcm1pc3Npb24sIHBsZWFzZSBjb250YWN0Ci0gKiAgICBvcGVuc3Ns
LWNvcmVAb3BlbnNzbC5vcmcuCi0gKgotICogNS4gUHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMg
c29mdHdhcmUgbWF5IG5vdCBiZSBjYWxsZWQgIk9wZW5TU0wiCi0gKiAgICBub3IgbWF5ICJPcGVu
U1NMIiBhcHBlYXIgaW4gdGhlaXIgbmFtZXMgd2l0aG91dCBwcmlvciB3cml0dGVuCi0gKiAgICBw
ZXJtaXNzaW9uIG9mIHRoZSBPcGVuU1NMIFByb2plY3QuCi0gKgotICogNi4gUmVkaXN0cmlidXRp
b25zIG9mIGFueSBmb3JtIHdoYXRzb2V2ZXIgbXVzdCByZXRhaW4gdGhlIGZvbGxvd2luZwotICog
ICAgYWNrbm93bGVkZ21lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJl
IGRldmVsb3BlZCBieSB0aGUgT3BlblNTTCBQcm9qZWN0Ci0gKiAgICBmb3IgdXNlIGluIHRoZSBP
cGVuU1NMIFRvb2xraXQgKGh0dHA6Ly93d3cub3BlbnNzbC5vcmcvKSIKLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBPcGVuU1NMIFBST0pFQ1QgYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1NFRCBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBPcGVuU1NMIFBST0pFQ1QgT1IKLSAqIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKQotICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULAotICogU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RAotICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LSAqLwotCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpbmNs
dWRlIDxvcGVuc3NsL2NwdS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvbWVtLmg+Ci0KLSNpbmNsdWRl
ICIuLi8uLi9pbnRlcm5hbC5oIgotI2luY2x1ZGUgImludGVybmFsLmgiCi0KLQotc3RydWN0IGNj
bTEyOF9zdGF0ZSB7Ci0gIHVuaW9uIHsKLSAgICB1aW50NjRfdCB1WzJdOwotICAgIHVpbnQ4X3Qg
Y1sxNl07Ci0gIH0gbm9uY2UsIGNtYWM7Ci19OwotCi1pbnQgQ1JZUFRPX2NjbTEyOF9pbml0KEND
TTEyOF9DT05URVhUICpjdHgsIGNvbnN0IEFFU19LRVkgKmtleSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgYmxvY2sxMjhfZiBibG9jaywgY3RyMTI4X2YgY3RyLCB1bnNpZ25lZCBNLCB1bnNpZ25l
ZCBMKSB7Ci0gIGlmIChNIDwgNCB8fCBNID4gMTYgfHwgKE0gJiAxKSAhPSAwIHx8IEwgPCAyIHx8
IEwgPiA4KSB7Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLSAgY3R4LT5ibG9jayA9IGJsb2NrOwotICBj
dHgtPmN0ciA9IGN0cjsKLSAgY3R4LT5NID0gTTsKLSAgY3R4LT5MID0gTDsKLSAgcmV0dXJuIDE7
Ci19Ci0KLXNpemVfdCBDUllQVE9fY2NtMTI4X21heF9pbnB1dChjb25zdCBDQ00xMjhfQ09OVEVY
VCAqY3R4KSB7Ci0gIHJldHVybiBjdHgtPkwgPj0gc2l6ZW9mKHNpemVfdCkgPyAoc2l6ZV90KS0x
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKChzaXplX3QpMSkgPDwgKGN0
eC0+TCAqIDgpKSAtIDE7Ci19Ci0KLXN0YXRpYyBpbnQgY2NtMTI4X2luaXRfc3RhdGUoY29uc3Qg
Q0NNMTI4X0NPTlRFWFQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0
IGNjbTEyOF9zdGF0ZSAqc3RhdGUsIGNvbnN0IEFFU19LRVkgKmtleSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbm9uY2UsIHNpemVfdCBub25jZV9sZW4sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmFhZCwgc2l6ZV90IGFh
ZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwbGFpbnRleHRfbGVu
KSB7Ci0gIGNvbnN0IGJsb2NrMTI4X2YgYmxvY2sgPSBjdHgtPmJsb2NrOwotICBjb25zdCB1bnNp
Z25lZCBNID0gY3R4LT5NOwotICBjb25zdCB1bnNpZ25lZCBMID0gY3R4LT5MOwotCi0gIC8vIHxM
fCBkZXRlcm1pbmVzIHRoZSBleHBlY3RlZCB8bm9uY2VfbGVufCBhbmQgdGhlIGxpbWl0IGZvciB8
cGxhaW50ZXh0X2xlbnwuCi0gIGlmIChwbGFpbnRleHRfbGVuID4gQ1JZUFRPX2NjbTEyOF9tYXhf
aW5wdXQoY3R4KSB8fAotICAgICAgbm9uY2VfbGVuICE9IDE1IC0gTCkgewotICAgIHJldHVybiAw
OwotICB9Ci0KLSAgLy8gQXNzZW1ibGUgdGhlIGZpcnN0IGJsb2NrIGZvciBjb21wdXRpbmcgdGhl
IE1BQy4KLSAgT1BFTlNTTF9tZW1zZXQoc3RhdGUsIDAsIHNpemVvZigqc3RhdGUpKTsKLSAgc3Rh
dGUtPm5vbmNlLmNbMF0gPSAodWludDhfdCkoKEwgLSAxKSB8ICgoTSAtIDIpIC8gMikgPDwgMyk7
Ci0gIGlmIChhYWRfbGVuICE9IDApIHsKLSAgICBzdGF0ZS0+bm9uY2UuY1swXSB8PSAweDQwOyAg
Ly8gU2V0IEFBRCBGbGFnCi0gIH0KLSAgT1BFTlNTTF9tZW1jcHkoJnN0YXRlLT5ub25jZS5jWzFd
LCBub25jZSwgbm9uY2VfbGVuKTsKLSAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEw7IGkrKykg
ewotICAgIHN0YXRlLT5ub25jZS5jWzE1IC0gaV0gPSAodWludDhfdCkocGxhaW50ZXh0X2xlbiA+
PiAoOCAqIGkpKTsKLSAgfQotCi0gICgqYmxvY2spKHN0YXRlLT5ub25jZS5jLCBzdGF0ZS0+Y21h
Yy5jLCBrZXkpOwotICBzaXplX3QgYmxvY2tzID0gMTsKLQotICBpZiAoYWFkX2xlbiAhPSAwKSB7
Ci0gICAgdW5zaWduZWQgaTsKLSAgICAvLyBDYXN0IHRvIHU2NCB0byBhdm9pZCB0aGUgY29tcGls
ZXIgY29tcGxhaW5pbmcgYWJvdXQgaW52YWxpZCBzaGlmdHMuCi0gICAgdWludDY0X3QgYWFkX2xl
bl91NjQgPSBhYWRfbGVuOwotICAgIGlmIChhYWRfbGVuX3U2NCA8IDB4MTAwMDAgLSAweDEwMCkg
ewotICAgICAgc3RhdGUtPmNtYWMuY1swXSBePSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gOCk7
Ci0gICAgICBzdGF0ZS0+Y21hYy5jWzFdIF49ICh1aW50OF90KWFhZF9sZW5fdTY0OwotICAgICAg
aSA9IDI7Ci0gICAgfSBlbHNlIGlmIChhYWRfbGVuX3U2NCA8PSAweGZmZmZmZmZmKSB7Ci0gICAg
ICBzdGF0ZS0+Y21hYy5jWzBdIF49IDB4ZmY7Ci0gICAgICBzdGF0ZS0+Y21hYy5jWzFdIF49IDB4
ZmU7Ci0gICAgICBzdGF0ZS0+Y21hYy5jWzJdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiAy
NCk7Ci0gICAgICBzdGF0ZS0+Y21hYy5jWzNdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiAx
Nik7Ci0gICAgICBzdGF0ZS0+Y21hYy5jWzRdIF49ICh1aW50OF90KShhYWRfbGVuX3U2NCA+PiA4
KTsKLSAgICAgIHN0YXRlLT5jbWFjLmNbNV0gXj0gKHVpbnQ4X3QpYWFkX2xlbl91NjQ7Ci0gICAg
ICBpID0gNjsKLSAgICB9IGVsc2UgewotICAgICAgc3RhdGUtPmNtYWMuY1swXSBePSAweGZmOwot
ICAgICAgc3RhdGUtPmNtYWMuY1sxXSBePSAweGZmOwotICAgICAgc3RhdGUtPmNtYWMuY1syXSBe
PSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gNTYpOwotICAgICAgc3RhdGUtPmNtYWMuY1szXSBe
PSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gNDgpOwotICAgICAgc3RhdGUtPmNtYWMuY1s0XSBe
PSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gNDApOwotICAgICAgc3RhdGUtPmNtYWMuY1s1XSBe
PSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gMzIpOwotICAgICAgc3RhdGUtPmNtYWMuY1s2XSBe
PSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gMjQpOwotICAgICAgc3RhdGUtPmNtYWMuY1s3XSBe
PSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gMTYpOwotICAgICAgc3RhdGUtPmNtYWMuY1s4XSBe
PSAodWludDhfdCkoYWFkX2xlbl91NjQgPj4gOCk7Ci0gICAgICBzdGF0ZS0+Y21hYy5jWzldIF49
ICh1aW50OF90KWFhZF9sZW5fdTY0OwotICAgICAgaSA9IDEwOwotICAgIH0KLQotICAgIGRvIHsK
LSAgICAgIGZvciAoOyBpIDwgMTYgJiYgYWFkX2xlbiAhPSAwOyBpKyspIHsKLSAgICAgICAgc3Rh
dGUtPmNtYWMuY1tpXSBePSAqYWFkOwotICAgICAgICBhYWQrKzsKLSAgICAgICAgYWFkX2xlbi0t
OwotICAgICAgfQotICAgICAgKCpibG9jaykoc3RhdGUtPmNtYWMuYywgc3RhdGUtPmNtYWMuYywg
a2V5KTsKLSAgICAgIGJsb2NrcysrOwotICAgICAgaSA9IDA7Ci0gICAgfSB3aGlsZSAoYWFkX2xl
biAhPSAwKTsKLSAgfQotCi0gIC8vIFBlciBSRkMgMzYxMCwgc2VjdGlvbiAyLjYsIHRoZSB0b3Rh
bCBudW1iZXIgb2YgYmxvY2sgY2lwaGVyIG9wZXJhdGlvbnMgZG9uZQotICAvLyBtdXN0IG5vdCBl
eGNlZWQgMl42MS4gVGhlcmUgYXJlIHR3byBibG9jayBjaXBoZXIgb3BlcmF0aW9ucyByZW1haW5p
bmcgcGVyCi0gIC8vIG1lc3NhZ2UgYmxvY2ssIHBsdXMgb25lIGJsb2NrIGF0IHRoZSBlbmQgdG8g
ZW5jcnlwdCB0aGUgTUFDLgotICBzaXplX3QgcmVtYWluaW5nX2Jsb2NrcyA9IDIgKiAoKHBsYWlu
dGV4dF9sZW4gKyAxNSkgLyAxNikgKyAxOwotICBpZiAocGxhaW50ZXh0X2xlbiArIDE1IDwgcGxh
aW50ZXh0X2xlbiB8fAotICAgICAgcmVtYWluaW5nX2Jsb2NrcyArIGJsb2NrcyA8IGJsb2NrcyB8
fAotICAgICAgKHVpbnQ2NF90KSByZW1haW5pbmdfYmxvY2tzICsgYmxvY2tzID4gVUlOVDY0X0Mo
MSkgPDwgNjEpIHsKLSAgICByZXR1cm4gMDsKLSAgfQotCi0gIC8vIEFzc2VtYmxlIHRoZSBmaXJz
dCBibG9jayBmb3IgZW5jcnlwdGluZyBhbmQgZGVjcnlwdGluZy4gVGhlIGJvdHRvbSB8THwKLSAg
Ly8gYnl0ZXMgYXJlIHJlcGxhY2VkIHdpdGggYSBjb3VudGVyIGFuZCBhbGwgYml0IHRoZSBlbmNv
ZGluZyBvZiB8THwgaXMKLSAgLy8gY2xlYXJlZCBpbiB0aGUgZmlyc3QgYnl0ZS4KLSAgc3RhdGUt
Pm5vbmNlLmNbMF0gJj0gNzsKLSAgcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBpbnQgY2NtMTI4X2Vu
Y3J5cHQoY29uc3QgQ0NNMTI4X0NPTlRFWFQgKmN0eCwgc3RydWN0IGNjbTEyOF9zdGF0ZSAqc3Rh
dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFFU19LRVkgKmtleSwgdWludDhf
dCAqb3V0LCBjb25zdCB1aW50OF90ICppbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGxlbikgewotICAvLyBUaGUgY291bnRlciBmb3IgZW5jcnlwdGlvbiBiZWdpbnMgYXQgb25l
LgotICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY3R4LT5MOyBpKyspIHsKLSAgICBzdGF0ZS0+
bm9uY2UuY1sxNSAtIGldID0gMDsKLSAgfQotICBzdGF0ZS0+bm9uY2UuY1sxNV0gPSAxOwotCi0g
IHVpbnQ4X3QgcGFydGlhbF9idWZbMTZdOwotICB1bnNpZ25lZCBudW0gPSAwOwotICBpZiAoY3R4
LT5jdHIgIT0gTlVMTCkgewotICAgIENSWVBUT19jdHIxMjhfZW5jcnlwdF9jdHIzMihpbiwgb3V0
LCBsZW4sIGtleSwgc3RhdGUtPm5vbmNlLmMsIHBhcnRpYWxfYnVmLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmbnVtLCBjdHgtPmN0cik7Ci0gIH0gZWxzZSB7Ci0gICAgQ1JZUFRP
X2N0cjEyOF9lbmNyeXB0KGluLCBvdXQsIGxlbiwga2V5LCBzdGF0ZS0+bm9uY2UuYywgcGFydGlh
bF9idWYsICZudW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+YmxvY2spOwotICB9
Ci0gIHJldHVybiAxOwotfQotCi1zdGF0aWMgaW50IGNjbTEyOF9jb21wdXRlX21hYyhjb25zdCBD
Q00xMjhfQ09OVEVYVCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0
IGNjbTEyOF9zdGF0ZSAqc3RhdGUsIGNvbnN0IEFFU19LRVkgKmtleSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dF90YWcsIHNpemVfdCB0YWdfbGVuLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBsZW4pIHsK
LSAgYmxvY2sxMjhfZiBibG9jayA9IGN0eC0+YmxvY2s7Ci0gIGlmICh0YWdfbGVuICE9IGN0eC0+
TSkgewotICAgIHJldHVybiAwOwotICB9Ci0KLSAgLy8gSW5jb3Jwb3JhdGUgfGlufCBpbnRvIHRo
ZSBNQUMuCi0gIHVuaW9uIHsKLSAgICB1aW50NjRfdCB1WzJdOwotICAgIHVpbnQ4X3QgY1sxNl07
Ci0gIH0gdG1wOwotICB3aGlsZSAobGVuID49IDE2KSB7Ci0gICAgT1BFTlNTTF9tZW1jcHkodG1w
LmMsIGluLCAxNik7Ci0gICAgc3RhdGUtPmNtYWMudVswXSBePSB0bXAudVswXTsKLSAgICBzdGF0
ZS0+Y21hYy51WzFdIF49IHRtcC51WzFdOwotICAgICgqYmxvY2spKHN0YXRlLT5jbWFjLmMsIHN0
YXRlLT5jbWFjLmMsIGtleSk7Ci0gICAgaW4gKz0gMTY7Ci0gICAgbGVuIC09IDE2OwotICB9Ci0g
IGlmIChsZW4gPiAwKSB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47IGkrKykgewot
ICAgICAgc3RhdGUtPmNtYWMuY1tpXSBePSBpbltpXTsKLSAgICB9Ci0gICAgKCpibG9jaykoc3Rh
dGUtPmNtYWMuYywgc3RhdGUtPmNtYWMuYywga2V5KTsKLSAgfQotCi0gIC8vIEVuY3J5cHQgdGhl
IE1BQyB3aXRoIGNvdW50ZXIgemVyby4KLSAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGN0eC0+
TDsgaSsrKSB7Ci0gICAgc3RhdGUtPm5vbmNlLmNbMTUgLSBpXSA9IDA7Ci0gIH0KLSAgKCpibG9j
aykoc3RhdGUtPm5vbmNlLmMsIHRtcC5jLCBrZXkpOwotICBzdGF0ZS0+Y21hYy51WzBdIF49IHRt
cC51WzBdOwotICBzdGF0ZS0+Y21hYy51WzFdIF49IHRtcC51WzFdOwotCi0gIE9QRU5TU0xfbWVt
Y3B5KG91dF90YWcsIHN0YXRlLT5jbWFjLmMsIHRhZ19sZW4pOwotICByZXR1cm4gMTsKLX0KLQot
aW50IENSWVBUT19jY20xMjhfZW5jcnlwdChjb25zdCBDQ00xMjhfQ09OVEVYVCAqY3R4LCBjb25z
dCBBRVNfS0VZICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dCwg
dWludDhfdCAqb3V0X3RhZywgc2l6ZV90IHRhZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHVpbnQ4X3QgKm5vbmNlLCBzaXplX3Qgbm9uY2VfbGVuLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGxlbiwgY29uc3QgdWludDhf
dCAqYWFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbikgewotICBz
dHJ1Y3QgY2NtMTI4X3N0YXRlIHN0YXRlOwotICByZXR1cm4gY2NtMTI4X2luaXRfc3RhdGUoY3R4
LCAmc3RhdGUsIGtleSwgbm9uY2UsIG5vbmNlX2xlbiwgYWFkLCBhYWRfbGVuLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGVuKSAmJgotICAgICAgICAgY2NtMTI4X2NvbXB1dGVfbWFjKGN0
eCwgJnN0YXRlLCBrZXksIG91dF90YWcsIHRhZ19sZW4sIGluLCBsZW4pICYmCi0gICAgICAgICBj
Y20xMjhfZW5jcnlwdChjdHgsICZzdGF0ZSwga2V5LCBvdXQsIGluLCBsZW4pOwotfQotCi1pbnQg
Q1JZUFRPX2NjbTEyOF9kZWNyeXB0KGNvbnN0IENDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IEFF
U19LRVkgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0LCB1aW50
OF90ICpvdXRfdGFnLCBzaXplX3QgdGFnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgdWludDhfdCAqbm9uY2UsIHNpemVfdCBub25jZV9sZW4sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmluLCBzaXplX3QgbGVuLCBjb25zdCB1aW50OF90ICph
YWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhYWRfbGVuKSB7Ci0gIHN0cnVj
dCBjY20xMjhfc3RhdGUgc3RhdGU7Ci0gIHJldHVybiBjY20xMjhfaW5pdF9zdGF0ZShjdHgsICZz
dGF0ZSwga2V5LCBub25jZSwgbm9uY2VfbGVuLCBhYWQsIGFhZF9sZW4sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZW4pICYmCi0gICAgICAgICBjY20xMjhfZW5jcnlwdChjdHgsICZzdGF0
ZSwga2V5LCBvdXQsIGluLCBsZW4pICYmCi0gICAgICAgICBjY20xMjhfY29tcHV0ZV9tYWMoY3R4
LCAmc3RhdGUsIGtleSwgb3V0X3RhZywgdGFnX2xlbiwgb3V0LCBsZW4pOwotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2NmYi5jIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL21vZGVzL2NmYi5jCmluZGV4IDBhODFmM2IyZjc0ZjNkMWNlODFmZDFjNTA5OGJkYjYyZmU2
ZTkzNzUuLjhjYTkwMDQxNjYzNmM3OWZiOGJkN2M5NDUwZjliNDJiNmFhMWJjM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9jZmIuYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Zp
cHNtb2R1bGUvbW9kZXMvY2ZiLmMKQEAgLTYwLDggKzYwLDYgQEAgT1BFTlNTTF9TVEFUSUNfQVNT
RVJUKDE2ICUgc2l6ZW9mKHNpemVfdCkgPT0gMCwKIHZvaWQgQ1JZUFRPX2NmYjEyOF9lbmNyeXB0
KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIHNpemVfdCBsZW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZICprZXksIHVpbnQ4X3QgaXZlY1sxNl0sIHVu
c2lnbmVkICpudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5jLCBibG9jazEy
OF9mIGJsb2NrKSB7Ci0gIHNpemVfdCBsID0gMDsKLQogICBhc3NlcnQoaW4gJiYgb3V0ICYmIGtl
eSAmJiBpdmVjICYmIG51bSk7CiAKICAgdW5zaWduZWQgbiA9ICpudW07CkBAIC03MiwyMSArNzAs
NiBAQCB2b2lkIENSWVBUT19jZmIxMjhfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhf
dCAqb3V0LCBzaXplX3QgbGVuLAogICAgICAgLS1sZW47CiAgICAgICBuID0gKG4gKyAxKSAlIDE2
OwogICAgIH0KLSNpZiBTVFJJQ1RfQUxJR05NRU5UCi0gICAgaWYgKCgodWludHB0cl90KWluIHwg
KHVpbnRwdHJfdClvdXQgfCAodWludHB0cl90KWl2ZWMpICUgc2l6ZW9mKHNpemVfdCkgIT0KLSAg
ICAgICAgMCkgewotICAgICAgd2hpbGUgKGwgPCBsZW4pIHsKLSAgICAgICAgaWYgKG4gPT0gMCkg
ewotICAgICAgICAgICgqYmxvY2spKGl2ZWMsIGl2ZWMsIGtleSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgb3V0W2xdID0gaXZlY1tuXSBePSBpbltsXTsKLSAgICAgICAgKytsOwotICAgICAgICBuID0g
KG4gKyAxKSAlIDE2OwotICAgICAgfQotICAgICAgKm51bSA9IG47Ci0gICAgICByZXR1cm47Ci0g
ICAgfQotI2VuZGlmCiAgICAgd2hpbGUgKGxlbiA+PSAxNikgewogICAgICAgKCpibG9jaykoaXZl
YywgaXZlYywga2V5KTsKICAgICAgIGZvciAoOyBuIDwgMTY7IG4gKz0gc2l6ZW9mKHNpemVfdCkp
IHsKQEAgLTExNiwyMiArOTksNiBAQCB2b2lkIENSWVBUT19jZmIxMjhfZW5jcnlwdChjb25zdCB1
aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBzaXplX3QgbGVuLAogICAgICAgLS1sZW47CiAgICAg
ICBuID0gKG4gKyAxKSAlIDE2OwogICAgIH0KLSAgICBpZiAoU1RSSUNUX0FMSUdOTUVOVCAmJgot
ICAgICAgICAoKHVpbnRwdHJfdClpbiB8ICh1aW50cHRyX3Qpb3V0IHwgKHVpbnRwdHJfdClpdmVj
KSAlIHNpemVvZihzaXplX3QpICE9Ci0gICAgICAgICAgICAwKSB7Ci0gICAgICB3aGlsZSAobCA8
IGxlbikgewotICAgICAgICB1aW50OF90IGM7Ci0gICAgICAgIGlmIChuID09IDApIHsKLSAgICAg
ICAgICAoKmJsb2NrKShpdmVjLCBpdmVjLCBrZXkpOwotICAgICAgICB9Ci0gICAgICAgIG91dFts
XSA9IGl2ZWNbbl0gXiAoYyA9IGluW2xdKTsKLSAgICAgICAgaXZlY1tuXSA9IGM7Ci0gICAgICAg
ICsrbDsKLSAgICAgICAgbiA9IChuICsgMSkgJSAxNjsKLSAgICAgIH0KLSAgICAgICpudW0gPSBu
OwotICAgICAgcmV0dXJuOwotICAgIH0KICAgICB3aGlsZSAobGVuID49IDE2KSB7CiAgICAgICAo
KmJsb2NrKShpdmVjLCBpdmVjLCBrZXkpOwogICAgICAgZm9yICg7IG4gPCAxNjsgbiArPSBzaXpl
b2Yoc2l6ZV90KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2N0
ci5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2N0ci5jCmluZGV4IGI4MDZiOWEzZTZl
ZDcxYzlhZDYxODY1ODcwNGJlMmY4ZDMyM2U3ZTcuLjhiMGUwNTk0NzQxZjk5M2EyNDM5NGQyMDkx
ZGJlNmZhMjAwZjIxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9j
dHIuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvY3RyLmMKQEAgLTk5LDI2ICs5
OSw2IEBAIHZvaWQgQ1JZUFRPX2N0cjEyOF9lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50
OF90ICpvdXQsIHNpemVfdCBsZW4sCiAgICAgLS1sZW47CiAgICAgbiA9IChuICsgMSkgJSAxNjsK
ICAgfQotCi0jaWYgU1RSSUNUX0FMSUdOTUVOVAotICBpZiAoKCh1aW50cHRyX3QpaW4gfCAodWlu
dHB0cl90KW91dCB8Ci0gICAgICAgICh1aW50cHRyX3QpZWNvdW50X2J1ZikgJSBzaXplb2Yoc2l6
ZV90KSAhPSAwKSB7Ci0gICAgc2l6ZV90IGwgPSAwOwotICAgIHdoaWxlIChsIDwgbGVuKSB7Ci0g
ICAgICBpZiAobiA9PSAwKSB7Ci0gICAgICAgICgqYmxvY2spKGl2ZWMsIGVjb3VudF9idWYsIGtl
eSk7Ci0gICAgICAgIGN0cjEyOF9pbmMoaXZlYyk7Ci0gICAgICB9Ci0gICAgICBvdXRbbF0gPSBp
bltsXSBeIGVjb3VudF9idWZbbl07Ci0gICAgICArK2w7Ci0gICAgICBuID0gKG4gKyAxKSAlIDE2
OwotICAgIH0KLQotICAgICpudW0gPSBuOwotICAgIHJldHVybjsKLSAgfQotI2VuZGlmCi0KICAg
d2hpbGUgKGxlbiA+PSAxNikgewogICAgICgqYmxvY2spKGl2ZWMsIGVjb3VudF9idWYsIGtleSk7
CiAgICAgY3RyMTI4X2luYyhpdmVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVs
ZS9tb2Rlcy9nY20uYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9nY20uYwppbmRleCA1
ZTU1NmRmMjcwODkxMWUxYzYzM2VkODMwY2I0ZGY0YmFkMDMxYTIyLi5jYTA3N2FjYzNjNzkxNzNl
YzdmMjE1M2U1YWU2Y2U2OWZhY2IyOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvbW9kZXMvZ2NtLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2djbS5jCkBA
IC01NywxMiArNTcsNiBAQAogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSAiLi4vLi4v
aW50ZXJuYWwuaCIKIAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgKGRlZmluZWQoT1BFTlNTTF9YODYpIHx8IGRlZmluZWQoT1BF
TlNTTF9YODZfNjQpIHx8IFwKLSAgICAgZGVmaW5lZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChP
UEVOU1NMX0FBUkNINjQpIHx8IFwKLSAgICAgZGVmaW5lZChPUEVOU1NMX1BQQzY0TEUpKQotI2Rl
ZmluZSBHSEFTSF9BU00KLSNlbmRpZgogCiAjZGVmaW5lIFBBQ0socykgKChzaXplX3QpKHMpIDw8
IChzaXplb2Yoc2l6ZV90KSAqIDggLSAxNikpCiAjZGVmaW5lIFJFRFVDRTFCSVQoVikgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtODIsNyArNzYs
NyBAQAogLy8gYml0cyBvZiBhIHxzaXplX3R8Lgogc3RhdGljIGNvbnN0IHNpemVfdCBrU2l6ZVRX
aXRob3V0TG93ZXI0Qml0cyA9IChzaXplX3QpIC0xNjsKIAotc3RhdGljIHZvaWQgZ2NtX2luaXRf
NGJpdCh1MTI4IEh0YWJsZVsxNl0sIHVpbnQ2NF90IEhbMl0pIHsKK3ZvaWQgZ2NtX2luaXRfNGJp
dCh1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ2NF90IEhbMl0pIHsKICAgdTEyOCBWOwogCiAg
IEh0YWJsZVswXS5oaSA9IDA7CkBAIC0xMjcsNyArMTIxLDcgQEAgc3RhdGljIGNvbnN0IHNpemVf
dCByZW1fNGJpdFsxNl0gPSB7CiAgICAgUEFDSygweEUxMDApLCBQQUNLKDB4RkQyMCksIFBBQ0so
MHhEOTQwKSwgUEFDSygweEM1NjApLAogICAgIFBBQ0soMHg5MTgwKSwgUEFDSygweDhEQTApLCBQ
QUNLKDB4QTlDMCksIFBBQ0soMHhCNUUwKX07CiAKLXN0YXRpYyB2b2lkIGdjbV9nbXVsdF80Yml0
KHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0pIHsKK3ZvaWQgZ2NtX2dtdWx0
XzRiaXQodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSkgewogICB1MTI4IFo7
CiAgIGludCBjbnQgPSAxNTsKICAgc2l6ZV90IHJlbSwgbmxvLCBuaGk7CkBAIC0xODIsOCArMTc2
LDggQEAgc3RhdGljIHZvaWQgZ2NtX2dtdWx0XzRiaXQodWludDY0X3QgWGlbMl0sIGNvbnN0IHUx
MjggSHRhYmxlWzE2XSkgewogLy8gcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQsIGF0IGxlYXN0IG5v
dCBvbiB4ODZbXzY0XS4gSXQncyBoZXJlCiAvLyBtb3N0bHkgYXMgcmVmZXJlbmNlIGFuZCBhIHBs
YWNlaG9sZGVyIGZvciBwb3NzaWJsZSBmdXR1cmUKIC8vIG5vbi10cml2aWFsIG9wdGltaXphdGlv
bltzXS4uLgotc3RhdGljIHZvaWQgZ2NtX2doYXNoXzRiaXQodWludDY0X3QgWGlbMl0sIGNvbnN0
IHUxMjggSHRhYmxlWzE2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4
X3QgKmlucCwgc2l6ZV90IGxlbikgewordm9pZCBnY21fZ2hhc2hfNGJpdCh1aW50NjRfdCBYaVsy
XSwgY29uc3QgdTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50OF90ICppbnAsCisgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBsZW4pIHsKICAgdTEyOCBaOwogICBpbnQgY250OwogICBzaXplX3Qg
cmVtLCBubG8sIG5oaTsKQEAgLTIzNywxMTkgKzIzMSw1NCBAQCBzdGF0aWMgdm9pZCBnY21fZ2hh
c2hfNGJpdCh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZdLAogICAgIFhpWzFd
ID0gQ1JZUFRPX2Jzd2FwOChaLmxvKTsKICAgfSB3aGlsZSAoaW5wICs9IDE2LCBsZW4gLT0gMTYp
OwogfQotI2Vsc2UgIC8vIEdIQVNIX0FTTQotdm9pZCBnY21fZ211bHRfNGJpdCh1aW50NjRfdCBY
aVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZdKTsKLXZvaWQgZ2NtX2doYXNoXzRiaXQodWludDY0
X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSwgY29uc3QgdWludDhfdCAqaW5wLAotICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKTsKLSNlbmRpZgorI2VuZGlmICAgLy8gIUdIQVNI
X0FTTSB8fCBBQVJDSDY0IHx8IFBQQzY0TEUKIAogI2RlZmluZSBHQ01fTVVMKGN0eCwgWGkpIGdj
bV9nbXVsdF80Yml0KChjdHgpLT5YaS51LCAoY3R4KS0+Z2NtX2tleS5IdGFibGUpCi0jaWYgZGVm
aW5lZChHSEFTSF9BU00pCiAjZGVmaW5lIEdIQVNIKGN0eCwgaW4sIGxlbikgXAogICBnY21fZ2hh
c2hfNGJpdCgoY3R4KS0+WGkudSwgKGN0eCktPmdjbV9rZXkuSHRhYmxlLCBpbiwgbGVuKQogLy8g
R0hBU0hfQ0hVTksgaXMgInN0cmlkZSBwYXJhbWV0ZXIiIG1pc3Npb25lZCB0byBtaXRpZ2F0ZSBj
YWNoZQogLy8gdHJhc2hpbmcgZWZmZWN0LiBJbiBvdGhlciB3b3JkcyBpZGVhIGlzIHRvIGhhc2gg
ZGF0YSB3aGlsZSBpdCdzCiAvLyBzdGlsbCBpbiBMMSBjYWNoZSBhZnRlciBlbmNyeXB0aW9uIHBh
c3MuLi4KICNkZWZpbmUgR0hBU0hfQ0hVTksgKDMgKiAxMDI0KQotI2VuZGlmCi0KLQotI2lmIGRl
ZmluZWQoR0hBU0hfQVNNKQogCi0jaWYgZGVmaW5lZChPUEVOU1NMX1g4NikgfHwgZGVmaW5lZChP
UEVOU1NMX1g4Nl82NCkKLSNkZWZpbmUgR0NNX0ZVTkNSRUZfNEJJVAotdm9pZCBnY21faW5pdF9j
bG11bCh1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ2NF90IFhpWzJdKTsKLXZvaWQgZ2NtX2dt
dWx0X2NsbXVsKHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0pOwotdm9pZCBn
Y21fZ2hhc2hfY2xtdWwodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSwgY29u
c3QgdWludDhfdCAqaW5wLAotICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbik7Ci0KLSNp
ZiBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KQotI2RlZmluZSBHSEFTSF9BU01fWDg2XzY0Ci12b2lk
IGdjbV9pbml0X2F2eCh1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ2NF90IFhpWzJdKTsKLXZv
aWQgZ2NtX2dtdWx0X2F2eCh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZdKTsK
LXZvaWQgZ2NtX2doYXNoX2F2eCh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZd
LCBjb25zdCB1aW50OF90ICppbiwKLSAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKTsKLSNk
ZWZpbmUgQUVTTklfR0NNCi1zaXplX3QgYWVzbmlfZ2NtX2VuY3J5cHQoY29uc3QgdWludDhfdCAq
aW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBBRVNfS0VZICprZXksIHVpbnQ4X3QgaXZlY1sxNl0sIHVpbnQ2NF90ICpYaSk7Ci1zaXpl
X3QgYWVzbmlfZ2NtX2RlY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6
ZV90IGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZICprZXksIHVp
bnQ4X3QgaXZlY1sxNl0sIHVpbnQ2NF90ICpYaSk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoT1BF
TlNTTF9YODYpCi0jZGVmaW5lIEdIQVNIX0FTTV9YODYKLXZvaWQgZ2NtX2dtdWx0XzRiaXRfbW14
KHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0pOwotdm9pZCBnY21fZ2hhc2hf
NGJpdF9tbXgodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSwgY29uc3QgdWlu
dDhfdCAqaW5wLAotICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbik7Ci0jZW5kaWYK
LQotI2VsaWYgZGVmaW5lZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQp
Ci0jaW5jbHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgotI2lmIF9fQVJNX0FSQ0hfXyA+PSA3Ci0j
ZGVmaW5lIEdIQVNIX0FTTV9BUk0KLSNkZWZpbmUgR0NNX0ZVTkNSRUZfNEJJVAotCi1zdGF0aWMg
aW50IHBtdWxsX2NhcGFibGUodm9pZCkgewotICByZXR1cm4gQ1JZUFRPX2lzX0FSTXY4X1BNVUxM
X2NhcGFibGUoKTsKLX0KKyNpZiBkZWZpbmVkKEdIQVNIX0FTTV9YODZfNjQpIHx8IGRlZmluZWQo
R0hBU0hfQVNNX1g4NikKK3ZvaWQgZ2NtX2luaXRfc3NzZTModTEyOCBIdGFibGVbMTZdLCBjb25z
dCB1aW50NjRfdCBYaVsyXSkgeworICAvLyBSdW4gdGhlIGV4aXN0aW5nIDQtYml0IHZlcnNpb24u
CisgIGdjbV9pbml0XzRiaXQoSHRhYmxlLCBYaSk7CiAKLXZvaWQgZ2NtX2luaXRfdjgodTEyOCBI
dGFibGVbMTZdLCBjb25zdCB1aW50NjRfdCBYaVsyXSk7Ci12b2lkIGdjbV9nbXVsdF92OCh1aW50
NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZdKTsKLXZvaWQgZ2NtX2doYXNoX3Y4KHVp
bnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ4X3QgKmlucCwK
LSAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOwotCi0jaWYgZGVmaW5lZChPUEVOU1NMX0FS
TSkKLS8vIDMyLWJpdCBBUk0gYWxzbyBoYXMgc3VwcG9ydCBmb3IgZG9pbmcgR0NNIHdpdGggTkVP
TiBpbnN0cnVjdGlvbnMuCi1zdGF0aWMgaW50IG5lb25fY2FwYWJsZSh2b2lkKSB7Ci0gIHJldHVy
biBDUllQVE9faXNfTkVPTl9jYXBhYmxlKCk7Ci19CisgIC8vIEZpcnN0LCBzd2FwIGhpIGFuZCBs
by4gVGhlICI0Yml0IiB2ZXJzaW9uIHBsYWNlcyBoaSBmaXJzdC4gSXQgdHJlYXRzIHRoZQorICAv
LyB0d28gZmllbGRzIHNlcGFyYXRlbHksIHNvIHRoZSBvcmRlciBkb2VzIG5vdCBtYXR0ZXIsIGJ1
dCBnaGFzaC1zc3NlMyByZWFkcworICAvLyB0aGUgZW50aXJlIHN0YXRlIGludG8gb25lIDEyOC1i
aXQgcmVnaXN0ZXIuCisgIGZvciAoaW50IGkgPSAwOyBpIDwgMTY7IGkrKykgeworICAgIHVpbnQ2
NF90IHRtcCA9IEh0YWJsZVtpXS5oaTsKKyAgICBIdGFibGVbaV0uaGkgPSBIdGFibGVbaV0ubG87
CisgICAgSHRhYmxlW2ldLmxvID0gdG1wOworICB9CiAKLXZvaWQgZ2NtX2luaXRfbmVvbih1MTI4
IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ2NF90IFhpWzJdKTsKLXZvaWQgZ2NtX2dtdWx0X25lb24o
dWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSk7Ci12b2lkIGdjbV9naGFzaF9u
ZW9uKHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ4X3Qg
KmlucCwKLSAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbik7Ci0jZWxzZQotLy8gQUFyY2g2
NCBvbmx5IGhhcyB0aGUgQVJNdjggdmVyc2lvbnMgb2YgZnVuY3Rpb25zLgotc3RhdGljIGludCBu
ZW9uX2NhcGFibGUodm9pZCkgewotICByZXR1cm4gMDsKLX0KLXN0YXRpYyB2b2lkIGdjbV9pbml0
X25lb24odTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50NjRfdCBYaVsyXSkgewotICBhYm9ydCgp
OwotfQotc3RhdGljIHZvaWQgZ2NtX2dtdWx0X25lb24odWludDY0X3QgWGlbMl0sIGNvbnN0IHUx
MjggSHRhYmxlWzE2XSkgewotICBhYm9ydCgpOwotfQotc3RhdGljIHZvaWQgZ2NtX2doYXNoX25l
b24odWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucCwgc2l6ZV90IGxlbikgewotICBhYm9ydCgp
OworICAvLyBUcmVhdCB8SHRhYmxlfCBhcyBhIDE2eDE2IGJ5dGUgdGFibGUgYW5kIHRyYW5zcG9z
ZSBpdC4gVGh1cywgSHRhYmxlW2ldCisgIC8vIGNvbnRhaW5zIHRoZSBpJ3RoIGJ5dGUgb2YgaipI
IGZvciBhbGwgai4KKyAgdWludDhfdCAqSGJ5dGVzID0gKHVpbnQ4X3QgKilIdGFibGU7CisgIGZv
ciAoaW50IGkgPSAwOyBpIDwgMTY7IGkrKykgeworICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsg
aisrKSB7CisgICAgICB1aW50OF90IHRtcCA9IEhieXRlc1sxNippICsgal07CisgICAgICBIYnl0
ZXNbMTYqaSArIGpdID0gSGJ5dGVzWzE2KmogKyBpXTsKKyAgICAgIEhieXRlc1sxNipqICsgaV0g
PSB0bXA7CisgICAgfQorICB9CiB9Ci0jZW5kaWYKLQotI2VuZGlmCi0jZWxpZiBkZWZpbmVkKE9Q
RU5TU0xfUFBDNjRMRSkKLSNkZWZpbmUgR0hBU0hfQVNNX1BQQzY0TEUKLSNkZWZpbmUgR0NNX0ZV
TkNSRUZfNEJJVAotdm9pZCBnY21faW5pdF9wOCh1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ2
NF90IFhpWzJdKTsKLXZvaWQgZ2NtX2dtdWx0X3A4KHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4
IEh0YWJsZVsxNl0pOwotdm9pZCBnY21fZ2hhc2hfcDgodWludDY0X3QgWGlbMl0sIGNvbnN0IHUx
MjggSHRhYmxlWzE2XSwgY29uc3QgdWludDhfdCAqaW5wLAotICAgICAgICAgICAgICAgICAgc2l6
ZV90IGxlbik7Ci0jZW5kaWYKLSNlbmRpZgorI2VuZGlmICAvLyBHSEFTSF9BU01fWDg2XzY0IHx8
IEdIQVNIX0FTTV9YODYKIAogI2lmZGVmIEdDTV9GVU5DUkVGXzRCSVQKICN1bmRlZiBHQ01fTVVM
CiAjZGVmaW5lIEdDTV9NVUwoY3R4LCBYaSkgKCpnY21fZ211bHRfcCkoKGN0eCktPlhpLnUsIChj
dHgpLT5nY21fa2V5Lkh0YWJsZSkKLSNpZmRlZiBHSEFTSAogI3VuZGVmIEdIQVNICiAjZGVmaW5l
IEdIQVNIKGN0eCwgaW4sIGxlbikgXAogICAoKmdjbV9naGFzaF9wKSgoY3R4KS0+WGkudSwgKGN0
eCktPmdjbV9rZXkuSHRhYmxlLCBpbiwgbGVuKQotI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAgLy8g
R0NNX0ZVTkNSRUZfNEJJVAogCiB2b2lkIENSWVBUT19naGFzaF9pbml0KGdtdWx0X2Z1bmMgKm91
dF9tdWx0LCBnaGFzaF9mdW5jICpvdXRfaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgdTEy
OCAqb3V0X2tleSwgdTEyOCBvdXRfdGFibGVbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICBp
bnQgKm91dF9pc19hdngsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmdj
bV9rZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgdTEyOCAqb3V0X2tleSwgdTEyOCBvdXRf
dGFibGVbMTZdLCBpbnQgKm91dF9pc19hdngsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQ4X3QgZ2NtX2tleVsxNl0pIHsKICAgKm91dF9pc19hdnggPSAwOwogCiAgIHVuaW9uIHsK
QEAgLTM3OSw2ICszMDgsMTIgQEAgdm9pZCBDUllQVE9fZ2hhc2hfaW5pdChnbXVsdF9mdW5jICpv
dXRfbXVsdCwgZ2hhc2hfZnVuYyAqb3V0X2hhc2gsCiAgICAgKm91dF9oYXNoID0gZ2NtX2doYXNo
X2NsbXVsOwogICAgIHJldHVybjsKICAgfQorICBpZiAoZ2NtX3Nzc2UzX2NhcGFibGUoKSkgewor
ICAgIGdjbV9pbml0X3Nzc2UzKG91dF90YWJsZSwgSC51KTsKKyAgICAqb3V0X211bHQgPSBnY21f
Z211bHRfc3NzZTM7CisgICAgKm91dF9oYXNoID0gZ2NtX2doYXNoX3Nzc2UzOworICAgIHJldHVy
bjsKKyAgfQogI2VsaWYgZGVmaW5lZChHSEFTSF9BU01fWDg2KQogICBpZiAoY3J5cHRvX2djbV9j
bG11bF9lbmFibGVkKCkpIHsKICAgICBnY21faW5pdF9jbG11bChvdXRfdGFibGUsIEgudSk7CkBA
IC0zODYsMTUgKzMyMSwyMSBAQCB2b2lkIENSWVBUT19naGFzaF9pbml0KGdtdWx0X2Z1bmMgKm91
dF9tdWx0LCBnaGFzaF9mdW5jICpvdXRfaGFzaCwKICAgICAqb3V0X2hhc2ggPSBnY21fZ2hhc2hf
Y2xtdWw7CiAgICAgcmV0dXJuOwogICB9CisgIGlmIChnY21fc3NzZTNfY2FwYWJsZSgpKSB7Cisg
ICAgZ2NtX2luaXRfc3NzZTMob3V0X3RhYmxlLCBILnUpOworICAgICpvdXRfbXVsdCA9IGdjbV9n
bXVsdF9zc3NlMzsKKyAgICAqb3V0X2hhc2ggPSBnY21fZ2hhc2hfc3NzZTM7CisgICAgcmV0dXJu
OworICB9CiAjZWxpZiBkZWZpbmVkKEdIQVNIX0FTTV9BUk0pCi0gIGlmIChwbXVsbF9jYXBhYmxl
KCkpIHsKKyAgaWYgKGdjbV9wbXVsbF9jYXBhYmxlKCkpIHsKICAgICBnY21faW5pdF92OChvdXRf
dGFibGUsIEgudSk7CiAgICAgKm91dF9tdWx0ID0gZ2NtX2dtdWx0X3Y4OwogICAgICpvdXRfaGFz
aCA9IGdjbV9naGFzaF92ODsKICAgICByZXR1cm47CiAgIH0KIAotICBpZiAobmVvbl9jYXBhYmxl
KCkpIHsKKyAgaWYgKGdjbV9uZW9uX2NhcGFibGUoKSkgewogICAgIGdjbV9pbml0X25lb24ob3V0
X3RhYmxlLCBILnUpOwogICAgICpvdXRfbXVsdCA9IGdjbV9nbXVsdF9uZW9uOwogICAgICpvdXRf
aGFzaCA9IGdjbV9naGFzaF9uZW9uOwpAQCAtNDM3LDcgKzM3OCw2IEBAIHZvaWQgQ1JZUFRPX2dj
bTEyOF9pbml0X2tleShHQ00xMjhfS0VZICpnY21fa2V5LCBjb25zdCBBRVNfS0VZICphZXNfa2V5
LAogCiB2b2lkIENSWVBUT19nY20xMjhfc2V0aXYoR0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3Qg
QUVTX0tFWSAqa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKml2
LCBzaXplX3QgbGVuKSB7Ci0gIHVuc2lnbmVkIGludCBjdHI7CiAjaWZkZWYgR0NNX0ZVTkNSRUZf
NEJJVAogICB2b2lkICgqZ2NtX2dtdWx0X3ApKHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0
YWJsZVsxNl0pID0KICAgICAgIGN0eC0+Z2NtX2tleS5nbXVsdDsKQEAgLTQ1Miw2ICszOTIsNyBA
QCB2b2lkIENSWVBUT19nY20xMjhfc2V0aXYoR0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgQUVT
X0tFWSAqa2V5LAogICBjdHgtPmFyZXMgPSAwOwogICBjdHgtPm1yZXMgPSAwOwogCisgIHVpbnQz
Ml90IGN0cjsKICAgaWYgKGxlbiA9PSAxMikgewogICAgIE9QRU5TU0xfbWVtY3B5KGN0eC0+WWku
YywgaXYsIDEyKTsKICAgICBjdHgtPllpLmNbMTVdID0gMTsKQEAgLTQ4Niw4ICs0MjcsNiBAQCB2
b2lkIENSWVBUT19nY20xMjhfc2V0aXYoR0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgQUVTX0tF
WSAqa2V5LAogfQogCiBpbnQgQ1JZUFRPX2djbTEyOF9hYWQoR0NNMTI4X0NPTlRFWFQgKmN0eCwg
Y29uc3QgdWludDhfdCAqYWFkLCBzaXplX3QgbGVuKSB7Ci0gIHVuc2lnbmVkIGludCBuOwotICB1
aW50NjRfdCBhbGVuID0gY3R4LT5sZW4udVswXTsKICNpZmRlZiBHQ01fRlVOQ1JFRl80QklUCiAg
IHZvaWQgKCpnY21fZ211bHRfcCkodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2
XSkgPQogICAgICAgY3R4LT5nY21fa2V5LmdtdWx0OwpAQCAtNTAxLDEzICs0NDAsMTMgQEAgaW50
IENSWVBUT19nY20xMjhfYWFkKEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IHVpbnQ4X3QgKmFh
ZCwgc2l6ZV90IGxlbikgewogICAgIHJldHVybiAwOwogICB9CiAKLSAgYWxlbiArPSBsZW47Cisg
IHVpbnQ2NF90IGFsZW4gPSBjdHgtPmxlbi51WzBdICsgbGVuOwogICBpZiAoYWxlbiA+IChVSU5U
NjRfQygxKSA8PCA2MSkgfHwgKHNpemVvZihsZW4pID09IDggJiYgYWxlbiA8IGxlbikpIHsKICAg
ICByZXR1cm4gMDsKICAgfQogICBjdHgtPmxlbi51WzBdID0gYWxlbjsKIAotICBuID0gY3R4LT5h
cmVzOworICB1bnNpZ25lZCBuID0gY3R4LT5hcmVzOwogICBpZiAobikgewogICAgIHdoaWxlIChu
ICYmIGxlbikgewogICAgICAgY3R4LT5YaS5jW25dIF49ICooYWFkKyspOwpAQCAtNTIzLDIzICs0
NjIsMTIgQEAgaW50IENSWVBUT19nY20xMjhfYWFkKEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0
IHVpbnQ4X3QgKmFhZCwgc2l6ZV90IGxlbikgewogICB9CiAKICAgLy8gUHJvY2VzcyBhIHdob2xl
IG51bWJlciBvZiBibG9ja3MuCi0jaWZkZWYgR0hBU0gKICAgc2l6ZV90IGxlbl9ibG9ja3MgPSBs
ZW4gJiBrU2l6ZVRXaXRob3V0TG93ZXI0Qml0czsKICAgaWYgKGxlbl9ibG9ja3MgIT0gMCkgewog
ICAgIEdIQVNIKGN0eCwgYWFkLCBsZW5fYmxvY2tzKTsKICAgICBhYWQgKz0gbGVuX2Jsb2NrczsK
ICAgICBsZW4gLT0gbGVuX2Jsb2NrczsKICAgfQotI2Vsc2UKLSAgd2hpbGUgKGxlbiA+PSAxNikg
ewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTY7ICsraSkgewotICAgICAgY3R4LT5YaS5j
W2ldIF49IGFhZFtpXTsKLSAgICB9Ci0gICAgR0NNX01VTChjdHgsIFhpKTsKLSAgICBhYWQgKz0g
MTY7Ci0gICAgbGVuIC09IDE2OwotICB9Ci0jZW5kaWYKIAogICAvLyBQcm9jZXNzIHRoZSByZW1h
aW5kZXIuCiAgIGlmIChsZW4gIT0gMCkgewpAQCAtNTU1LDE5ICs0ODMsMTUgQEAgaW50IENSWVBU
T19nY20xMjhfYWFkKEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IHVpbnQ4X3QgKmFhZCwgc2l6
ZV90IGxlbikgewogCiBpbnQgQ1JZUFRPX2djbTEyOF9lbmNyeXB0KEdDTTEyOF9DT05URVhUICpj
dHgsIGNvbnN0IEFFU19LRVkgKmtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
dWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbikgewotICB1bnNpZ25lZCBpbnQg
biwgY3RyOwotICB1aW50NjRfdCBtbGVuID0gY3R4LT5sZW4udVsxXTsKICAgYmxvY2sxMjhfZiBi
bG9jayA9IGN0eC0+Z2NtX2tleS5ibG9jazsKICNpZmRlZiBHQ01fRlVOQ1JFRl80QklUCiAgIHZv
aWQgKCpnY21fZ211bHRfcCkodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSkg
PQogICAgICAgY3R4LT5nY21fa2V5LmdtdWx0OwotI2lmZGVmIEdIQVNICiAgIHZvaWQgKCpnY21f
Z2hhc2hfcCkodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSwgY29uc3QgdWlu
dDhfdCAqaW5wLAogICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pID0gY3R4LT5nY21f
a2V5LmdoYXNoOwotI2VuZGlmCiAjZW5kaWYKIAotICBtbGVuICs9IGxlbjsKKyAgdWludDY0X3Qg
bWxlbiA9IGN0eC0+bGVuLnVbMV0gKyBsZW47CiAgIGlmIChtbGVuID4gKChVSU5UNjRfQygxKSA8
PCAzNikgLSAzMikgfHwKICAgICAgIChzaXplb2YobGVuKSA9PSA4ICYmIG1sZW4gPCBsZW4pKSB7
CiAgICAgcmV0dXJuIDA7CkBAIC01ODAsOSArNTA0LDcgQEAgaW50IENSWVBUT19nY20xMjhfZW5j
cnlwdChHQ00xMjhfQ09OVEVYVCAqY3R4LCBjb25zdCBBRVNfS0VZICprZXksCiAgICAgY3R4LT5h
cmVzID0gMDsKICAgfQogCi0gIGN0ciA9IENSWVBUT19ic3dhcDQoY3R4LT5ZaS5kWzNdKTsKLQot
ICBuID0gY3R4LT5tcmVzOworICB1bnNpZ25lZCBuID0gY3R4LT5tcmVzOwogICBpZiAobikgewog
ICAgIHdoaWxlIChuICYmIGxlbikgewogICAgICAgY3R4LT5YaS5jW25dIF49ICoob3V0KyspID0g
KihpbisrKSBeIGN0eC0+RUtpLmNbbl07CkBAIC01OTYsMjUgKzUxOCw4IEBAIGludCBDUllQVE9f
Z2NtMTI4X2VuY3J5cHQoR0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgQUVTX0tFWSAqa2V5LAog
ICAgICAgcmV0dXJuIDE7CiAgICAgfQogICB9Ci0gIGlmIChTVFJJQ1RfQUxJR05NRU5UICYmCi0g
ICAgICAoKHVpbnRwdHJfdClpbiB8ICh1aW50cHRyX3Qpb3V0KSAlIHNpemVvZihzaXplX3QpICE9
IDApIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICBpZiAo
biA9PSAwKSB7Ci0gICAgICAgICgqYmxvY2spKGN0eC0+WWkuYywgY3R4LT5FS2kuYywga2V5KTsK
LSAgICAgICAgKytjdHI7Ci0gICAgICAgIGN0eC0+WWkuZFszXSA9IENSWVBUT19ic3dhcDQoY3Ry
KTsKLSAgICAgIH0KLSAgICAgIGN0eC0+WGkuY1tuXSBePSBvdXRbaV0gPSBpbltpXSBeIGN0eC0+
RUtpLmNbbl07Ci0gICAgICBuID0gKG4gKyAxKSAlIDE2OwotICAgICAgaWYgKG4gPT0gMCkgewot
ICAgICAgICBHQ01fTVVMKGN0eCwgWGkpOwotICAgICAgfQotICAgIH0KIAotICAgIGN0eC0+bXJl
cyA9IG47Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLSNpZiBkZWZpbmVkKEdIQVNIKSAmJiBkZWZpbmVk
KEdIQVNIX0NIVU5LKQorICB1aW50MzJfdCBjdHIgPSBDUllQVE9fYnN3YXA0KGN0eC0+WWkuZFsz
XSk7CiAgIHdoaWxlIChsZW4gPj0gR0hBU0hfQ0hVTkspIHsKICAgICBzaXplX3QgaiA9IEdIQVNI
X0NIVU5LOwogCkBAIC02NDksMjIgKzU1NCw2IEBAIGludCBDUllQVE9fZ2NtMTI4X2VuY3J5cHQo
R0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgQUVTX0tFWSAqa2V5LAogICAgIH0KICAgICBHSEFT
SChjdHgsIG91dCAtIGxlbl9ibG9ja3MsIGxlbl9ibG9ja3MpOwogICB9Ci0jZWxzZQotICB3aGls
ZSAobGVuID49IDE2KSB7Ci0gICAgKCpibG9jaykoY3R4LT5ZaS5jLCBjdHgtPkVLaS5jLCBrZXkp
OwotICAgICsrY3RyOwotICAgIGN0eC0+WWkuZFszXSA9IENSWVBUT19ic3dhcDQoY3RyKTsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDE2OyBpICs9IHNpemVvZihzaXplX3QpKSB7Ci0gICAg
ICBzaXplX3QgdG1wID0gbG9hZF93b3JkX2xlKGluICsgaSkgXiBjdHgtPkVLaS50W2kgLyBzaXpl
b2Yoc2l6ZV90KV07Ci0gICAgICBzdG9yZV93b3JkX2xlKG91dCArIGksIHRtcCk7Ci0gICAgICBj
dHgtPlhpLnRbaSAvIHNpemVvZihzaXplX3QpXSBePSB0bXA7Ci0gICAgfQotICAgIEdDTV9NVUwo
Y3R4LCBYaSk7Ci0gICAgb3V0ICs9IDE2OwotICAgIGluICs9IDE2OwotICAgIGxlbiAtPSAxNjsK
LSAgfQotI2VuZGlmCiAgIGlmIChsZW4pIHsKICAgICAoKmJsb2NrKShjdHgtPllpLmMsIGN0eC0+
RUtpLmMsIGtleSk7CiAgICAgKytjdHI7CkBAIC02ODIsMTkgKzU3MSwxNSBAQCBpbnQgQ1JZUFRP
X2djbTEyOF9lbmNyeXB0KEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IEFFU19LRVkgKmtleSwK
IGludCBDUllQVE9fZ2NtMTI4X2RlY3J5cHQoR0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgQUVT
X0tFWSAqa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFy
ICppbiwgdW5zaWduZWQgY2hhciAqb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgbGVuKSB7Ci0gIHVuc2lnbmVkIGludCBuLCBjdHI7Ci0gIHVpbnQ2NF90IG1sZW4gPSBjdHgt
Pmxlbi51WzFdOwogICBibG9jazEyOF9mIGJsb2NrID0gY3R4LT5nY21fa2V5LmJsb2NrOwogI2lm
ZGVmIEdDTV9GVU5DUkVGXzRCSVQKICAgdm9pZCAoKmdjbV9nbXVsdF9wKSh1aW50NjRfdCBYaVsy
XSwgY29uc3QgdTEyOCBIdGFibGVbMTZdKSA9CiAgICAgICBjdHgtPmdjbV9rZXkuZ211bHQ7Ci0j
aWZkZWYgR0hBU0gKICAgdm9pZCAoKmdjbV9naGFzaF9wKSh1aW50NjRfdCBYaVsyXSwgY29uc3Qg
dTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50OF90ICppbnAsCiAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IGxlbikgPSBjdHgtPmdjbV9rZXkuZ2hhc2g7Ci0jZW5kaWYKICNlbmRpZgogCi0g
IG1sZW4gKz0gbGVuOworICB1aW50NjRfdCBtbGVuID0gY3R4LT5sZW4udVsxXSArIGxlbjsKICAg
aWYgKG1sZW4gPiAoKFVJTlQ2NF9DKDEpIDw8IDM2KSAtIDMyKSB8fAogICAgICAgKHNpemVvZihs
ZW4pID09IDggJiYgbWxlbiA8IGxlbikpIHsKICAgICByZXR1cm4gMDsKQEAgLTcwNyw5ICs1OTIs
NyBAQCBpbnQgQ1JZUFRPX2djbTEyOF9kZWNyeXB0KEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0
IEFFU19LRVkgKmtleSwKICAgICBjdHgtPmFyZXMgPSAwOwogICB9CiAKLSAgY3RyID0gQ1JZUFRP
X2Jzd2FwNChjdHgtPllpLmRbM10pOwotCi0gIG4gPSBjdHgtPm1yZXM7CisgIHVuc2lnbmVkIG4g
PSBjdHgtPm1yZXM7CiAgIGlmIChuKSB7CiAgICAgd2hpbGUgKG4gJiYgbGVuKSB7CiAgICAgICB1
aW50OF90IGMgPSAqKGluKyspOwpAQCAtNzI1LDI4ICs2MDgsOCBAQCBpbnQgQ1JZUFRPX2djbTEy
OF9kZWNyeXB0KEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IEFFU19LRVkgKmtleSwKICAgICAg
IHJldHVybiAxOwogICAgIH0KICAgfQotICBpZiAoU1RSSUNUX0FMSUdOTUVOVCAmJgotICAgICAg
KCh1aW50cHRyX3QpaW4gfCAodWludHB0cl90KW91dCkgJSBzaXplb2Yoc2l6ZV90KSAhPSAwKSB7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47ICsraSkgewotICAgICAgdWludDhfdCBj
OwotICAgICAgaWYgKG4gPT0gMCkgewotICAgICAgICAoKmJsb2NrKShjdHgtPllpLmMsIGN0eC0+
RUtpLmMsIGtleSk7Ci0gICAgICAgICsrY3RyOwotICAgICAgICBjdHgtPllpLmRbM10gPSBDUllQ
VE9fYnN3YXA0KGN0cik7Ci0gICAgICB9Ci0gICAgICBjID0gaW5baV07Ci0gICAgICBvdXRbaV0g
PSBjIF4gY3R4LT5FS2kuY1tuXTsKLSAgICAgIGN0eC0+WGkuY1tuXSBePSBjOwotICAgICAgbiA9
IChuICsgMSkgJSAxNjsKLSAgICAgIGlmIChuID09IDApIHsKLSAgICAgICAgR0NNX01VTChjdHgs
IFhpKTsKLSAgICAgIH0KLSAgICB9CiAKLSAgICBjdHgtPm1yZXMgPSBuOwotICAgIHJldHVybiAx
OwotICB9Ci0jaWYgZGVmaW5lZChHSEFTSCkgJiYgZGVmaW5lZChHSEFTSF9DSFVOSykKKyAgdWlu
dDMyX3QgY3RyID0gQ1JZUFRPX2Jzd2FwNChjdHgtPllpLmRbM10pOwogICB3aGlsZSAobGVuID49
IEdIQVNIX0NIVU5LKSB7CiAgICAgc2l6ZV90IGogPSBHSEFTSF9DSFVOSzsKIApAQCAtNzgxLDIy
ICs2NDQsNiBAQCBpbnQgQ1JZUFRPX2djbTEyOF9kZWNyeXB0KEdDTTEyOF9DT05URVhUICpjdHgs
IGNvbnN0IEFFU19LRVkgKmtleSwKICAgICAgIGxlbiAtPSAxNjsKICAgICB9CiAgIH0KLSNlbHNl
Ci0gIHdoaWxlIChsZW4gPj0gMTYpIHsKLSAgICAoKmJsb2NrKShjdHgtPllpLmMsIGN0eC0+RUtp
LmMsIGtleSk7Ci0gICAgKytjdHI7Ci0gICAgY3R4LT5ZaS5kWzNdID0gQ1JZUFRPX2Jzd2FwNChj
dHIpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTY7IGkgKz0gc2l6ZW9mKHNpemVfdCkp
IHsKLSAgICAgIHNpemVfdCBjID0gbG9hZF93b3JkX2xlKGluICsgaSk7Ci0gICAgICBzdG9yZV93
b3JkX2xlKG91dCArIGksIGMgXiBjdHgtPkVLaS50W2kgLyBzaXplb2Yoc2l6ZV90KV0pOwotICAg
ICAgY3R4LT5YaS50W2kgLyBzaXplb2Yoc2l6ZV90KV0gXj0gYzsKLSAgICB9Ci0gICAgR0NNX01V
TChjdHgsIFhpKTsKLSAgICBvdXQgKz0gMTY7Ci0gICAgaW4gKz0gMTY7Ci0gICAgbGVuIC09IDE2
OwotICB9Ci0jZW5kaWYKICAgaWYgKGxlbikgewogICAgICgqYmxvY2spKGN0eC0+WWkuYywgY3R4
LT5FS2kuYywga2V5KTsKICAgICArK2N0cjsKQEAgLTgxNiwxOCArNjYzLDE0IEBAIGludCBDUllQ
VE9fZ2NtMTI4X2RlY3J5cHQoR0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgQUVTX0tFWSAqa2V5
LAogaW50IENSWVBUT19nY20xMjhfZW5jcnlwdF9jdHIzMihHQ00xMjhfQ09OVEVYVCAqY3R4LCBj
b25zdCBBRVNfS0VZICprZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIHNpemVfdCBsZW4sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGN0cjEyOF9mIHN0cmVhbSkgewotICB1bnNpZ25lZCBpbnQgbiwgY3Ry
OwotICB1aW50NjRfdCBtbGVuID0gY3R4LT5sZW4udVsxXTsKICNpZmRlZiBHQ01fRlVOQ1JFRl80
QklUCiAgIHZvaWQgKCpnY21fZ211bHRfcCkodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRh
YmxlWzE2XSkgPQogICAgICAgY3R4LT5nY21fa2V5LmdtdWx0OwotI2lmZGVmIEdIQVNICiAgIHZv
aWQgKCpnY21fZ2hhc2hfcCkodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSwg
Y29uc3QgdWludDhfdCAqaW5wLAogICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pID0g
Y3R4LT5nY21fa2V5LmdoYXNoOwotI2VuZGlmCiAjZW5kaWYKIAotICBtbGVuICs9IGxlbjsKKyAg
dWludDY0X3QgbWxlbiA9IGN0eC0+bGVuLnVbMV0gKyBsZW47CiAgIGlmIChtbGVuID4gKChVSU5U
NjRfQygxKSA8PCAzNikgLSAzMikgfHwKICAgICAgIChzaXplb2YobGVuKSA9PSA4ICYmIG1sZW4g
PCBsZW4pKSB7CiAgICAgcmV0dXJuIDA7CkBAIC04NDAsNyArNjgzLDcgQEAgaW50IENSWVBUT19n
Y20xMjhfZW5jcnlwdF9jdHIzMihHQ00xMjhfQ09OVEVYVCAqY3R4LCBjb25zdCBBRVNfS0VZICpr
ZXksCiAgICAgY3R4LT5hcmVzID0gMDsKICAgfQogCi0gIG4gPSBjdHgtPm1yZXM7CisgIHVuc2ln
bmVkIG4gPSBjdHgtPm1yZXM7CiAgIGlmIChuKSB7CiAgICAgd2hpbGUgKG4gJiYgbGVuKSB7CiAg
ICAgICBjdHgtPlhpLmNbbl0gXj0gKihvdXQrKykgPSAqKGluKyspIF4gY3R4LT5FS2kuY1tuXTsK
QEAgLTg2Niw5ICs3MDksNyBAQCBpbnQgQ1JZUFRPX2djbTEyOF9lbmNyeXB0X2N0cjMyKEdDTTEy
OF9DT05URVhUICpjdHgsIGNvbnN0IEFFU19LRVkgKmtleSwKICAgfQogI2VuZGlmCiAKLSAgY3Ry
ID0gQ1JZUFRPX2Jzd2FwNChjdHgtPllpLmRbM10pOwotCi0jaWYgZGVmaW5lZChHSEFTSCkKKyAg
dWludDMyX3QgY3RyID0gQ1JZUFRPX2Jzd2FwNChjdHgtPllpLmRbM10pOwogICB3aGlsZSAobGVu
ID49IEdIQVNIX0NIVU5LKSB7CiAgICAgKCpzdHJlYW0pKGluLCBvdXQsIEdIQVNIX0NIVU5LIC8g
MTYsIGtleSwgY3R4LT5ZaS5jKTsKICAgICBjdHIgKz0gR0hBU0hfQ0hVTksgLyAxNjsKQEAgLTg3
OCwyOCArNzE5LDE3IEBAIGludCBDUllQVE9fZ2NtMTI4X2VuY3J5cHRfY3RyMzIoR0NNMTI4X0NP
TlRFWFQgKmN0eCwgY29uc3QgQUVTX0tFWSAqa2V5LAogICAgIGluICs9IEdIQVNIX0NIVU5LOwog
ICAgIGxlbiAtPSBHSEFTSF9DSFVOSzsKICAgfQotI2VuZGlmCi0gIHNpemVfdCBpID0gbGVuICYg
a1NpemVUV2l0aG91dExvd2VyNEJpdHM7Ci0gIGlmIChpICE9IDApIHsKLSAgICBzaXplX3QgaiA9
IGkgLyAxNjsKKyAgc2l6ZV90IGxlbl9ibG9ja3MgPSBsZW4gJiBrU2l6ZVRXaXRob3V0TG93ZXI0
Qml0czsKKyAgaWYgKGxlbl9ibG9ja3MgIT0gMCkgeworICAgIHNpemVfdCBqID0gbGVuX2Jsb2Nr
cyAvIDE2OwogCiAgICAgKCpzdHJlYW0pKGluLCBvdXQsIGosIGtleSwgY3R4LT5ZaS5jKTsKICAg
ICBjdHIgKz0gKHVuc2lnbmVkIGludClqOwogICAgIGN0eC0+WWkuZFszXSA9IENSWVBUT19ic3dh
cDQoY3RyKTsKLSAgICBpbiArPSBpOwotICAgIGxlbiAtPSBpOwotI2lmIGRlZmluZWQoR0hBU0gp
Ci0gICAgR0hBU0goY3R4LCBvdXQsIGkpOwotICAgIG91dCArPSBpOwotI2Vsc2UKLSAgICB3aGls
ZSAoai0tKSB7Ci0gICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7ICsraSkgewotICAgICAgICBjdHgt
PlhpLmNbaV0gXj0gb3V0W2ldOwotICAgICAgfQotICAgICAgR0NNX01VTChjdHgsIFhpKTsKLSAg
ICAgIG91dCArPSAxNjsKLSAgICB9Ci0jZW5kaWYKKyAgICBpbiArPSBsZW5fYmxvY2tzOworICAg
IGxlbiAtPSBsZW5fYmxvY2tzOworICAgIEdIQVNIKGN0eCwgb3V0LCBsZW5fYmxvY2tzKTsKKyAg
ICBvdXQgKz0gbGVuX2Jsb2NrczsKICAgfQogICBpZiAobGVuKSB7CiAgICAgKCpjdHgtPmdjbV9r
ZXkuYmxvY2spKGN0eC0+WWkuYywgY3R4LT5FS2kuYywga2V5KTsKQEAgLTkxOCwxOCArNzQ4LDE0
IEBAIGludCBDUllQVE9fZ2NtMTI4X2VuY3J5cHRfY3RyMzIoR0NNMTI4X0NPTlRFWFQgKmN0eCwg
Y29uc3QgQUVTX0tFWSAqa2V5LAogaW50IENSWVBUT19nY20xMjhfZGVjcnlwdF9jdHIzMihHQ00x
MjhfQ09OVEVYVCAqY3R4LCBjb25zdCBBRVNfS0VZICprZXksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIHNpemVfdCBsZW4s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0cjEyOF9mIHN0cmVhbSkgewotICB1
bnNpZ25lZCBpbnQgbiwgY3RyOwotICB1aW50NjRfdCBtbGVuID0gY3R4LT5sZW4udVsxXTsKICNp
ZmRlZiBHQ01fRlVOQ1JFRl80QklUCiAgIHZvaWQgKCpnY21fZ211bHRfcCkodWludDY0X3QgWGlb
Ml0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSkgPQogICAgICAgY3R4LT5nY21fa2V5LmdtdWx0Owot
I2lmZGVmIEdIQVNICiAgIHZvaWQgKCpnY21fZ2hhc2hfcCkodWludDY0X3QgWGlbMl0sIGNvbnN0
IHUxMjggSHRhYmxlWzE2XSwgY29uc3QgdWludDhfdCAqaW5wLAogICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBsZW4pID0gY3R4LT5nY21fa2V5LmdoYXNoOwotI2VuZGlmCiAjZW5kaWYKIAot
ICBtbGVuICs9IGxlbjsKKyAgdWludDY0X3QgbWxlbiA9IGN0eC0+bGVuLnVbMV0gKyBsZW47CiAg
IGlmIChtbGVuID4gKChVSU5UNjRfQygxKSA8PCAzNikgLSAzMikgfHwKICAgICAgIChzaXplb2Yo
bGVuKSA9PSA4ICYmIG1sZW4gPCBsZW4pKSB7CiAgICAgcmV0dXJuIDA7CkBAIC05NDIsNyArNzY4
LDcgQEAgaW50IENSWVBUT19nY20xMjhfZGVjcnlwdF9jdHIzMihHQ00xMjhfQ09OVEVYVCAqY3R4
LCBjb25zdCBBRVNfS0VZICprZXksCiAgICAgY3R4LT5hcmVzID0gMDsKICAgfQogCi0gIG4gPSBj
dHgtPm1yZXM7CisgIHVuc2lnbmVkIG4gPSBjdHgtPm1yZXM7CiAgIGlmIChuKSB7CiAgICAgd2hp
bGUgKG4gJiYgbGVuKSB7CiAgICAgICB1aW50OF90IGMgPSAqKGluKyspOwpAQCAtOTcwLDkgKzc5
Niw3IEBAIGludCBDUllQVE9fZ2NtMTI4X2RlY3J5cHRfY3RyMzIoR0NNMTI4X0NPTlRFWFQgKmN0
eCwgY29uc3QgQUVTX0tFWSAqa2V5LAogICB9CiAjZW5kaWYKIAotICBjdHIgPSBDUllQVE9fYnN3
YXA0KGN0eC0+WWkuZFszXSk7Ci0KLSNpZiBkZWZpbmVkKEdIQVNIKQorICB1aW50MzJfdCBjdHIg
PSBDUllQVE9fYnN3YXA0KGN0eC0+WWkuZFszXSk7CiAgIHdoaWxlIChsZW4gPj0gR0hBU0hfQ0hV
TkspIHsKICAgICBHSEFTSChjdHgsIGluLCBHSEFTSF9DSFVOSyk7CiAgICAgKCpzdHJlYW0pKGlu
LCBvdXQsIEdIQVNIX0NIVU5LIC8gMTYsIGtleSwgY3R4LT5ZaS5jKTsKQEAgLTk4MiwzMSArODA2
LDE3IEBAIGludCBDUllQVE9fZ2NtMTI4X2RlY3J5cHRfY3RyMzIoR0NNMTI4X0NPTlRFWFQgKmN0
eCwgY29uc3QgQUVTX0tFWSAqa2V5LAogICAgIGluICs9IEdIQVNIX0NIVU5LOwogICAgIGxlbiAt
PSBHSEFTSF9DSFVOSzsKICAgfQotI2VuZGlmCi0gIHNpemVfdCBpID0gbGVuICYga1NpemVUV2l0
aG91dExvd2VyNEJpdHM7Ci0gIGlmIChpICE9IDApIHsKLSAgICBzaXplX3QgaiA9IGkgLyAxNjsK
KyAgc2l6ZV90IGxlbl9ibG9ja3MgPSBsZW4gJiBrU2l6ZVRXaXRob3V0TG93ZXI0Qml0czsKKyAg
aWYgKGxlbl9ibG9ja3MgIT0gMCkgeworICAgIHNpemVfdCBqID0gbGVuX2Jsb2NrcyAvIDE2Owog
Ci0jaWYgZGVmaW5lZChHSEFTSCkKLSAgICBHSEFTSChjdHgsIGluLCBpKTsKLSNlbHNlCi0gICAg
d2hpbGUgKGotLSkgewotICAgICAgc2l6ZV90IGs7Ci0gICAgICBmb3IgKGsgPSAwOyBrIDwgMTY7
ICsraykgewotICAgICAgICBjdHgtPlhpLmNba10gXj0gaW5ba107Ci0gICAgICB9Ci0gICAgICBH
Q01fTVVMKGN0eCwgWGkpOwotICAgICAgaW4gKz0gMTY7Ci0gICAgfQotICAgIGogPSBpIC8gMTY7
Ci0gICAgaW4gLT0gaTsKLSNlbmRpZgorICAgIEdIQVNIKGN0eCwgaW4sIGxlbl9ibG9ja3MpOwog
ICAgICgqc3RyZWFtKShpbiwgb3V0LCBqLCBrZXksIGN0eC0+WWkuYyk7CiAgICAgY3RyICs9ICh1
bnNpZ25lZCBpbnQpajsKICAgICBjdHgtPllpLmRbM10gPSBDUllQVE9fYnN3YXA0KGN0cik7Ci0g
ICAgb3V0ICs9IGk7Ci0gICAgaW4gKz0gaTsKLSAgICBsZW4gLT0gaTsKKyAgICBvdXQgKz0gbGVu
X2Jsb2NrczsKKyAgICBpbiArPSBsZW5fYmxvY2tzOworICAgIGxlbiAtPSBsZW5fYmxvY2tzOwog
ICB9CiAgIGlmIChsZW4pIHsKICAgICAoKmN0eC0+Z2NtX2tleS5ibG9jaykoY3R4LT5ZaS5jLCBj
dHgtPkVLaS5jLCBrZXkpOwpAQCAtMTAyNSw4ICs4MzUsNiBAQCBpbnQgQ1JZUFRPX2djbTEyOF9k
ZWNyeXB0X2N0cjMyKEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IEFFU19LRVkgKmtleSwKIH0K
IAogaW50IENSWVBUT19nY20xMjhfZmluaXNoKEdDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IHVp
bnQ4X3QgKnRhZywgc2l6ZV90IGxlbikgewotICB1aW50NjRfdCBhbGVuID0gY3R4LT5sZW4udVsw
XSA8PCAzOwotICB1aW50NjRfdCBjbGVuID0gY3R4LT5sZW4udVsxXSA8PCAzOwogI2lmZGVmIEdD
TV9GVU5DUkVGXzRCSVQKICAgdm9pZCAoKmdjbV9nbXVsdF9wKSh1aW50NjRfdCBYaVsyXSwgY29u
c3QgdTEyOCBIdGFibGVbMTZdKSA9CiAgICAgICBjdHgtPmdjbV9rZXkuZ211bHQ7CkBAIC0xMDM2
LDExICs4NDQsOCBAQCBpbnQgQ1JZUFRPX2djbTEyOF9maW5pc2goR0NNMTI4X0NPTlRFWFQgKmN0
eCwgY29uc3QgdWludDhfdCAqdGFnLCBzaXplX3QgbGVuKSB7CiAgICAgR0NNX01VTChjdHgsIFhp
KTsKICAgfQogCi0gIGFsZW4gPSBDUllQVE9fYnN3YXA4KGFsZW4pOwotICBjbGVuID0gQ1JZUFRP
X2Jzd2FwOChjbGVuKTsKLQotICBjdHgtPlhpLnVbMF0gXj0gYWxlbjsKLSAgY3R4LT5YaS51WzFd
IF49IGNsZW47CisgIGN0eC0+WGkudVswXSBePSBDUllQVE9fYnN3YXA4KGN0eC0+bGVuLnVbMF0g
PDwgMyk7CisgIGN0eC0+WGkudVsxXSBePSBDUllQVE9fYnN3YXA4KGN0eC0+bGVuLnVbMV0gPDwg
Myk7CiAgIEdDTV9NVUwoY3R4LCBYaSk7CiAKICAgY3R4LT5YaS51WzBdIF49IGN0eC0+RUswLnVb
MF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvZ2NtX3Rlc3QuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvbW9kZXMvZ2NtX3Rlc3QuY2MKaW5kZXggYTZiN2ZjMDI5
YTNkNzU3Nzg1ODdhZjI2Mzk0ZjNmOTc3NTgzMmE3ZS4uYjJlODA1YzE5NGE3N2M1YWJmMGUzZmU0
MGM4OGNmYzM2MWRmZWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVz
L2djbV90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9nY21fdGVzdC5j
YwpAQCAtNTQsMTAgKzU0LDEzIEBACiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAogI2luY2x1
ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcHUuaD4KIAotI2luY2x1ZGUg
ImludGVybmFsLmgiCisjaW5jbHVkZSAiLi4vLi4vdGVzdC9hYmlfdGVzdC5oIgogI2luY2x1ZGUg
Ii4uLy4uL3Rlc3QvZmlsZV90ZXN0LmgiCiAjaW5jbHVkZSAiLi4vLi4vdGVzdC90ZXN0X3V0aWwu
aCIKKyNpbmNsdWRlICIuLi9hZXMvaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJpbnRlcm5hbC5oIgog
CiAKIFRFU1QoR0NNVGVzdCwgVGVzdFZlY3RvcnMpIHsKQEAgLTkwLDcgKzkzLDEwIEBAIFRFU1Qo
R0NNVGVzdCwgVGVzdFZlY3RvcnMpIHsKICAgICAgIENSWVBUT19nY20xMjhfZW5jcnlwdCgmY3R4
LCAmYWVzX2tleSwgcGxhaW50ZXh0LmRhdGEoKSwgb3V0LmRhdGEoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwbGFpbnRleHQuc2l6ZSgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1RSVUUo
Q1JZUFRPX2djbTEyOF9maW5pc2goJmN0eCwgdGFnLmRhdGEoKSwgdGFnLnNpemUoKSkpOworCisg
ICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gZ290X3RhZyh0YWcuc2l6ZSgpKTsKKyAgICBDUllQVE9f
Z2NtMTI4X3RhZygmY3R4LCBnb3RfdGFnLmRhdGEoKSwgZ290X3RhZy5zaXplKCkpOworICAgIEVY
UEVDVF9FUShCeXRlcyh0YWcpLCBCeXRlcyhnb3RfdGFnKSk7CiAgICAgRVhQRUNUX0VRKEJ5dGVz
KGNpcGhlcnRleHQpLCBCeXRlcyhvdXQpKTsKIAogICAgIENSWVBUT19nY20xMjhfc2V0aXYoJmN0
eCwgJmFlc19rZXksIG5vbmNlLmRhdGEoKSwgbm9uY2Uuc2l6ZSgpKTsKQEAgLTExMiwzICsxMTgs
MTA4IEBAIFRFU1QoR0NNVGVzdCwgQnl0ZVN3YXApIHsKICAgRVhQRUNUX0VRKFVJTlQ2NF9DKDB4
MDgwNzA2MDUwNDAzMDIwMSksCiAgICAgICAgICAgICBDUllQVE9fYnN3YXA4KFVJTlQ2NF9DKDB4
MDEwMjAzMDQwNTA2MDcwOCkpKTsKIH0KKworI2lmIGRlZmluZWQoU1VQUE9SVFNfQUJJX1RFU1Qp
ICYmIGRlZmluZWQoR0hBU0hfQVNNKQorVEVTVChHQ01UZXN0LCBBQkkpIHsKKyAgc3RhdGljIGNv
bnN0IHVpbnQ2NF90IGtIWzJdID0geworICAgICAgVUlOVDY0X0MoMHg2NmU5NGJkNGVmOGEyYzNi
KSwKKyAgICAgIFVJTlQ2NF9DKDB4ODg0Y2ZhNTljYTM0MmIyZSksCisgIH07CisgIHN0YXRpYyBj
b25zdCBzaXplX3Qga0Jsb2NrQ291bnRzW10gPSB7MSwgMiwgMywgNCwgNywgOCwgMTUsIDE2LCAz
MSwgMzJ9OworICB1aW50OF90IGJ1ZlsxNiAqIDMyXTsKKyAgT1BFTlNTTF9tZW1zZXQoYnVmLCA0
Miwgc2l6ZW9mKGJ1ZikpOworCisgIHVpbnQ2NF90IFhbMl0gPSB7CisgICAgICBVSU5UNjRfQygw
eDAzODhkYWNlNjBiNmEzOTIpLAorICAgICAgVUlOVDY0X0MoMHhmMzI4YzJiOTcxYjJmZTc4KSwK
KyAgfTsKKworICBhbGlnbmFzKDE2KSB1MTI4IEh0YWJsZVsxNl07CisgIENIRUNLX0FCSShnY21f
aW5pdF80Yml0LCBIdGFibGUsIGtIKTsKKyNpZiBkZWZpbmVkKEdIQVNIX0FTTV9YODYpCisgIENI
RUNLX0FCSShnY21fZ211bHRfNGJpdF9tbXgsIFgsIEh0YWJsZSk7CisgIGZvciAoc2l6ZV90IGJs
b2NrcyA6IGtCbG9ja0NvdW50cykgeworICAgIENIRUNLX0FCSShnY21fZ2hhc2hfNGJpdF9tbXgs
IFgsIEh0YWJsZSwgYnVmLCAxNiAqIGJsb2Nrcyk7CisgIH0KKyNlbHNlCisgIENIRUNLX0FCSShn
Y21fZ211bHRfNGJpdCwgWCwgSHRhYmxlKTsKKyAgZm9yIChzaXplX3QgYmxvY2tzIDoga0Jsb2Nr
Q291bnRzKSB7CisgICAgQ0hFQ0tfQUJJKGdjbV9naGFzaF80Yml0LCBYLCBIdGFibGUsIGJ1Ziwg
MTYgKiBibG9ja3MpOworICB9CisjZW5kaWYgIC8vIEdIQVNIX0FTTV9YODYKKworI2lmIGRlZmlu
ZWQoR0hBU0hfQVNNX1g4NikgfHwgZGVmaW5lZChHSEFTSF9BU01fWDg2XzY0KQorICBpZiAoZ2Nt
X3Nzc2UzX2NhcGFibGUoKSkgeworICAgIENIRUNLX0FCSV9TRUgoZ2NtX2luaXRfc3NzZTMsIEh0
YWJsZSwga0gpOworICAgIENIRUNLX0FCSV9TRUgoZ2NtX2dtdWx0X3Nzc2UzLCBYLCBIdGFibGUp
OworICAgIGZvciAoc2l6ZV90IGJsb2NrcyA6IGtCbG9ja0NvdW50cykgeworICAgICAgQ0hFQ0tf
QUJJX1NFSChnY21fZ2hhc2hfc3NzZTMsIFgsIEh0YWJsZSwgYnVmLCAxNiAqIGJsb2Nrcyk7Cisg
ICAgfQorICB9CisKKyAgaWYgKGNyeXB0b19nY21fY2xtdWxfZW5hYmxlZCgpKSB7CisgICAgQ0hF
Q0tfQUJJX1NFSChnY21faW5pdF9jbG11bCwgSHRhYmxlLCBrSCk7CisgICAgQ0hFQ0tfQUJJX1NF
SChnY21fZ211bHRfY2xtdWwsIFgsIEh0YWJsZSk7CisgICAgZm9yIChzaXplX3QgYmxvY2tzIDog
a0Jsb2NrQ291bnRzKSB7CisgICAgICBDSEVDS19BQklfU0VIKGdjbV9naGFzaF9jbG11bCwgWCwg
SHRhYmxlLCBidWYsIDE2ICogYmxvY2tzKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKEdIQVNIX0FT
TV9YODZfNjQpCisgICAgaWYgKCgoT1BFTlNTTF9pYTMyY2FwX2dldCgpWzFdID4+IDIyKSAmIDB4
NDEpID09IDB4NDEpIHsgIC8vIEFWWCtNT1ZCRQorICAgICAgQ0hFQ0tfQUJJX1NFSChnY21faW5p
dF9hdngsIEh0YWJsZSwga0gpOworICAgICAgQ0hFQ0tfQUJJX1NFSChnY21fZ211bHRfYXZ4LCBY
LCBIdGFibGUpOworICAgICAgZm9yIChzaXplX3QgYmxvY2tzIDoga0Jsb2NrQ291bnRzKSB7Cisg
ICAgICAgIENIRUNLX0FCSV9TRUgoZ2NtX2doYXNoX2F2eCwgWCwgSHRhYmxlLCBidWYsIDE2ICog
YmxvY2tzKTsKKyAgICAgIH0KKworICAgICAgaWYgKGh3YWVzX2NhcGFibGUoKSkgeworICAgICAg
ICBBRVNfS0VZIGFlc19rZXk7CisgICAgICAgIHN0YXRpYyBjb25zdCB1aW50OF90IGtLZXlbMTZd
ID0gezB9OworCisgICAgICAgIC8vIGFlc25pX2djbV8qIG1ha2VzIGFzc3VtcHRpb25zIGFib3V0
IHxHQ00xMjhfQ09OVEVYVHwncyBsYXlvdXQuCisgICAgICAgIEdDTTEyOF9DT05URVhUIGdjbTsK
KyAgICAgICAgbWVtc2V0KCZnY20sIDAsIHNpemVvZihnY20pKTsKKyAgICAgICAgbWVtY3B5KCZn
Y20uZ2NtX2tleS5ILCBrSCwgc2l6ZW9mKGtIKSk7CisgICAgICAgIG1lbWNweSgmZ2NtLmdjbV9r
ZXkuSHRhYmxlLCBIdGFibGUsIHNpemVvZihIdGFibGUpKTsKKyAgICAgICAgbWVtY3B5KCZnY20u
WGksIFgsIHNpemVvZihYKSk7CisgICAgICAgIHVpbnQ4X3QgaXZbMTZdID0gezB9OworCisgICAg
ICAgIGFlc19od19zZXRfZW5jcnlwdF9rZXkoa0tleSwgMTI4LCAmYWVzX2tleSk7CisgICAgICAg
IGZvciAoc2l6ZV90IGJsb2NrcyA6IGtCbG9ja0NvdW50cykgeworICAgICAgICAgIENIRUNLX0FC
SShhZXNuaV9nY21fZW5jcnlwdCwgYnVmLCBidWYsIGJsb2NrcyAqIDE2LCAmYWVzX2tleSwgaXYs
CisgICAgICAgICAgICAgICAgICAgIGdjbS5YaS51KTsKKyAgICAgICAgICBDSEVDS19BQkkoYWVz
bmlfZ2NtX2VuY3J5cHQsIGJ1ZiwgYnVmLCBibG9ja3MgKiAxNiArIDcsICZhZXNfa2V5LCBpdiwK
KyAgICAgICAgICAgICAgICAgICAgZ2NtLlhpLnUpOworICAgICAgICB9CisgICAgICAgIGFlc19o
d19zZXRfZGVjcnlwdF9rZXkoa0tleSwgMTI4LCAmYWVzX2tleSk7CisgICAgICAgIGZvciAoc2l6
ZV90IGJsb2NrcyA6IGtCbG9ja0NvdW50cykgeworICAgICAgICAgIENIRUNLX0FCSShhZXNuaV9n
Y21fZGVjcnlwdCwgYnVmLCBidWYsIGJsb2NrcyAqIDE2LCAmYWVzX2tleSwgaXYsCisgICAgICAg
ICAgICAgICAgICAgIGdjbS5YaS51KTsKKyAgICAgICAgICBDSEVDS19BQkkoYWVzbmlfZ2NtX2Rl
Y3J5cHQsIGJ1ZiwgYnVmLCBibG9ja3MgKiAxNiArIDcsICZhZXNfa2V5LCBpdiwKKyAgICAgICAg
ICAgICAgICAgICAgZ2NtLlhpLnUpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorI2VuZGlm
ICAvLyBHSEFTSF9BU01fWDg2XzY0CisgIH0KKyNlbmRpZiAgLy8gR0hBU0hfQVNNX1g4NiB8fCBH
SEFTSF9BU01fWDg2XzY0CisKKyNpZiBkZWZpbmVkKEdIQVNIX0FTTV9BUk0pCisgIGlmIChnY21f
bmVvbl9jYXBhYmxlKCkpIHsKKyAgICBDSEVDS19BQkkoZ2NtX2luaXRfbmVvbiwgSHRhYmxlLCBr
SCk7CisgICAgQ0hFQ0tfQUJJKGdjbV9nbXVsdF9uZW9uLCBYLCBIdGFibGUpOworICAgIGZvciAo
c2l6ZV90IGJsb2NrcyA6IGtCbG9ja0NvdW50cykgeworICAgICAgQ0hFQ0tfQUJJKGdjbV9naGFz
aF9uZW9uLCBYLCBIdGFibGUsIGJ1ZiwgMTYgKiBibG9ja3MpOworICAgIH0KKyAgfQorCisgIGlm
IChnY21fcG11bGxfY2FwYWJsZSgpKSB7CisgICAgQ0hFQ0tfQUJJKGdjbV9pbml0X3Y4LCBIdGFi
bGUsIGtIKTsKKyAgICBDSEVDS19BQkkoZ2NtX2dtdWx0X3Y4LCBYLCBIdGFibGUpOworICAgIGZv
ciAoc2l6ZV90IGJsb2NrcyA6IGtCbG9ja0NvdW50cykgeworICAgICAgQ0hFQ0tfQUJJKGdjbV9n
aGFzaF92OCwgWCwgSHRhYmxlLCBidWYsIDE2ICogYmxvY2tzKTsKKyAgICB9CisgIH0KKyNlbmRp
ZiAgLy8gR0hBU0hfQVNNX0FSTQorfQorI2VuZGlmICAvLyBTVVBQT1JUU19BQklfVEVTVCAmJiBH
SEFTSF9BU00KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9tb2Rlcy9pbnRlcm5h
bC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2ludGVybmFsLmgKaW5kZXggMjNhYWNh
MmM5YTY5ODRmZmNlOTZmNTdjOWNjZjQyMmE3OGEzMmEyOC4uMDk3MWE5MGVkMzUyODNlYjE1NDk5
MjMzYzYwOTJhOTBjMGFkMDZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21v
ZGVzL2ludGVybmFsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL21vZGVzL2ludGVybmFs
LmgKQEAgLTUwLDggKzUwLDExIEBACiAjZGVmaW5lIE9QRU5TU0xfSEVBREVSX01PREVTX0lOVEVS
TkFMX0gKIAogI2luY2x1ZGUgPG9wZW5zc2wvYmFzZS5oPgorCiAjaW5jbHVkZSA8b3BlbnNzbC9h
ZXMuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2NwdS5oPgogCisjaW5jbHVkZSA8c3RkbGliLmg+CiAj
aW5jbHVkZSA8c3RyaW5nLmg+CiAKICNpbmNsdWRlICIuLi8uLi9pbnRlcm5hbC5oIgpAQCAtNjEs
MTIgKzY0LDYgQEAgZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAogCi0jZGVmaW5lIFNUUklDVF9BTElH
Tk1FTlQgMQotI2lmIGRlZmluZWQoT1BFTlNTTF9YODZfNjQpIHx8IGRlZmluZWQoT1BFTlNTTF9Y
ODYpIHx8IGRlZmluZWQoT1BFTlNTTF9BQVJDSDY0KQotI3VuZGVmIFNUUklDVF9BTElHTk1FTlQK
LSNkZWZpbmUgU1RSSUNUX0FMSUdOTUVOVCAwCi0jZW5kaWYKLQogc3RhdGljIGlubGluZSB1aW50
MzJfdCBHRVRVMzIoY29uc3Qgdm9pZCAqaW4pIHsKICAgdWludDMyX3QgdjsKICAgT1BFTlNTTF9t
ZW1jcHkoJnYsIGluLCBzaXplb2YodikpOwpAQCAtMTI3LDEyICsxMjQsNiBAQCB2b2lkIENSWVBU
T19jdHIxMjhfZW5jcnlwdF9jdHIzMihjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LCBz
aXplX3QgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBlY291
bnRfYnVmWzE2XSwgdW5zaWduZWQgKm51bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGN0cjEyOF9mIGN0cik7CiAKLSNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkgJiYgXAot
ICAgIChkZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSkKLXZv
aWQgYWVzbmlfY3RyMzJfZW5jcnlwdF9ibG9ja3MoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3Qg
Km91dCwgc2l6ZV90IGJsb2NrcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgQUVTX0tFWSAqa2V5LCBjb25zdCB1aW50OF90ICppdmVjKTsKLSNlbmRpZgotCiAKIC8vIEdD
TS4KIC8vCkBAIC0xNTYsNyArMTQ3LDEwIEBAIHR5cGVkZWYgdm9pZCAoKmdoYXNoX2Z1bmMpKHVp
bnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0sCiAKIHR5cGVkZWYgc3RydWN0IGdj
bTEyOF9rZXlfc3QgewogICAvLyBOb3RlIHRoZSBNT1ZCRS1iYXNlZCwgeDg2LTY0LCBHSEFTSCBh
c3NlbWJseSByZXF1aXJlcyB8SHwgYW5kIHxIdGFibGV8IHRvCi0gIC8vIGJlIHRoZSBmaXJzdCB0
d28gZWxlbWVudHMgb2YgdGhpcyBzdHJ1Y3QuCisgIC8vIGJlIHRoZSBmaXJzdCB0d28gZWxlbWVu
dHMgb2YgdGhpcyBzdHJ1Y3QuIEFkZGl0aW9uYWxseSwgc29tZSBhc3NlbWJseQorICAvLyByb3V0
aW5lcyByZXF1aXJlIGEgMTYtYnl0ZS1hbGlnbmVkIHxIdGFibGV8IHdoZW4gaGFzaGluZyBkYXRh
LCBidXQgbm90CisgIC8vIGluaXRpYWxpemF0aW9uLiB8R0NNMTI4X0tFWXwgaXMgbm90IGl0c2Vs
ZiBhbGlnbmVkIHRvIHNpbXBsaWZ5IGVtYmVkZGluZyBpbgorICAvLyB8RVZQX0FFQURfQ1RYfCwg
YnV0IHxIdGFibGV8J3Mgb2Zmc2V0IG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi4KICAgdTEyOCBI
OwogICB1MTI4IEh0YWJsZVsxNl07CiAgIGdtdWx0X2Z1bmMgZ211bHQ7CkBAIC0xODEsOCArMTc1
LDEwIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgfSBZaSwgRUtpLCBFSzAsIGxlbiwgWGk7CiAKICAg
Ly8gTm90ZSB0aGF0IHRoZSBvcmRlciBvZiB8WGl8IGFuZCB8Z2NtX2tleXwgaXMgZml4ZWQgYnkg
dGhlIE1PVkJFLWJhc2VkLAotICAvLyB4ODYtNjQsIEdIQVNIIGFzc2VtYmx5LgotICBHQ00xMjhf
S0VZIGdjbV9rZXk7CisgIC8vIHg4Ni02NCwgR0hBU0ggYXNzZW1ibHkuIEFkZGl0aW9uYWxseSwg
c29tZSBhc3NlbWJseSByb3V0aW5lcyByZXF1aXJlCisgIC8vIHxnY21fa2V5fCB0byBiZSAxNi1i
eXRlIGFsaWduZWQuIHxHQ00xMjhfS0VZfCBpcyBub3QgaXRzZWxmIGFsaWduZWQgdG8KKyAgLy8g
c2ltcGxpZnkgZW1iZWRkaW5nIGluIHxFVlBfQUVBRF9DVFh8LgorICBhbGlnbmFzKDE2KSBHQ00x
MjhfS0VZIGdjbV9rZXk7CiAKICAgdW5zaWduZWQgbXJlcywgYXJlczsKIH0gR0NNMTI4X0NPTlRF
WFQ7CkBAIC0xOTksNyArMTk1LDcgQEAgaW50IGNyeXB0b19nY21fY2xtdWxfZW5hYmxlZCh2b2lk
KTsKIC8vIEFWWCBpbXBsZW1lbnRhdGlvbiB3YXMgdXNlZCB8Km91dF9pc19hdnh8IHdpbGwgYmUg
dHJ1ZS4KIHZvaWQgQ1JZUFRPX2doYXNoX2luaXQoZ211bHRfZnVuYyAqb3V0X211bHQsIGdoYXNo
X2Z1bmMgKm91dF9oYXNoLAogICAgICAgICAgICAgICAgICAgICAgICB1MTI4ICpvdXRfa2V5LCB1
MTI4IG91dF90YWJsZVsxNl0sIGludCAqb3V0X2lzX2F2eCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgdWludDhfdCAqZ2NtX2tleSk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQ4X3QgZ2NtX2tleVsxNl0pOwogCiAvLyBDUllQVE9fZ2NtMTI4X2luaXRfa2V5IGluaXRp
YWxpc2VzIHxnY21fa2V5fCB0byB1c2UgfGJsb2NrfCAodHlwaWNhbGx5IEFFUykKIC8vIHdpdGgg
dGhlIGdpdmVuIGtleS4gfGJsb2NrX2lzX2h3YWVzfCBpcyBvbmUgaWYgfGJsb2NrfCBpcyB8YWVz
X2h3X2VuY3J5cHR8LgpAQCAtMjYzLDQwICsyNTksOTAgQEAgT1BFTlNTTF9FWFBPUlQgdm9pZCBD
UllQVE9fZ2NtMTI4X3RhZyhHQ00xMjhfQ09OVEVYVCAqY3R4LCB1aW50OF90ICp0YWcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOwogCiAKLS8vIEND
TS4KKy8vIEdDTSBhc3NlbWJseS4KIAotdHlwZWRlZiBzdHJ1Y3QgY2NtMTI4X2NvbnRleHQgewot
ICBibG9jazEyOF9mIGJsb2NrOwotICBjdHIxMjhfZiBjdHI7Ci0gIHVuc2lnbmVkIE0sIEw7Ci19
IENDTTEyOF9DT05URVhUOwotCi0vLyBDUllQVE9fY2NtMTI4X2luaXQgaW5pdGlhbGlzZXMgfGN0
eHwgdG8gdXNlIHxibG9ja3wgKHR5cGljYWxseSBBRVMpIHdpdGggdGhlCi0vLyBzcGVjaWZpZWQg
fE18IGFuZCB8THwgcGFyYW1ldGVycy4gSXQgcmV0dXJucyBvbmUgb24gc3VjY2VzcyBhbmQgemVy
byBpZiB8TXwKLS8vIG9yIHxMfCBpcyBpbnZhbGlkLgotaW50IENSWVBUT19jY20xMjhfaW5pdChD
Q00xMjhfQ09OVEVYVCAqY3R4LCBjb25zdCBBRVNfS0VZICprZXksCi0gICAgICAgICAgICAgICAg
ICAgICAgIGJsb2NrMTI4X2YgYmxvY2ssIGN0cjEyOF9mIGN0ciwgdW5zaWduZWQgTSwgdW5zaWdu
ZWQgTCk7Ci0KLS8vIENSWVBUT19jY20xMjhfbWF4X2lucHV0IHJldHVybnMgdGhlIG1heGltdW0g
aW5wdXQgbGVuZ3RoIGFjY2VwdGVkIGJ5IHxjdHh8Lgotc2l6ZV90IENSWVBUT19jY20xMjhfbWF4
X2lucHV0KGNvbnN0IENDTTEyOF9DT05URVhUICpjdHgpOwotCi0vLyBDUllQVE9fY2NtMTI4X2Vu
Y3J5cHQgZW5jcnlwdHMgfGxlbnwgYnl0ZXMgZnJvbSB8aW58IHRvIHxvdXR8IHdyaXRpbmcgdGhl
IHRhZwotLy8gdG8gfG91dF90YWd8LiB8a2V5fCBtdXN0IGJlIHRoZSBzYW1lIGtleSB0aGF0IHdh
cyBwYXNzZWQgdG8KLS8vIHxDUllQVE9fY2NtMTI4X2luaXR8LiBJdCByZXR1cm5zIG9uZSBvbiBz
dWNjZXNzIGFuZCB6ZXJvIG90aGVyd2lzZS4KLWludCBDUllQVE9fY2NtMTI4X2VuY3J5cHQoY29u
c3QgQ0NNMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgQUVTX0tFWSAqa2V5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50OF90ICpvdXQsIHVpbnQ4X3QgKm91dF90YWcsIHNpemVfdCB0YWdf
bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpub25jZSwgc2l6
ZV90IG5vbmNlX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAq
aW4sIHNpemVfdCBsZW4sIGNvbnN0IHVpbnQ4X3QgKmFhZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IGFhZF9sZW4pOwotCi0vLyBDUllQVE9fY2NtMTI4X2RlY3J5cHQgZGVjcnlw
dHMgfGxlbnwgYnl0ZXMgZnJvbSB8aW58IHRvIHxvdXR8LCB3cml0aW5nIHRoZQotLy8gZXhwZWN0
ZWQgdGFnIHRvIHxvdXRfdGFnfC4gfGtleXwgbXVzdCBiZSB0aGUgc2FtZSBrZXkgdGhhdCB3YXMg
cGFzc2VkIHRvCi0vLyB8Q1JZUFRPX2NjbTEyOF9pbml0fC4gSXQgcmV0dXJucyBvbmUgb24gc3Vj
Y2VzcyBhbmQgemVybyBvdGhlcndpc2UuCi1pbnQgQ1JZUFRPX2NjbTEyOF9kZWNyeXB0KGNvbnN0
IENDTTEyOF9DT05URVhUICpjdHgsIGNvbnN0IEFFU19LRVkgKmtleSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDhfdCAqb3V0LCB1aW50OF90ICpvdXRfdGFnLCBzaXplX3QgdGFnX2xl
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbm9uY2UsIHNpemVf
dCBub25jZV9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlu
LCBzaXplX3QgbGVuLCBjb25zdCB1aW50OF90ICphYWQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBhYWRfbGVuKTsKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkgJiYgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIChkZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBkZWZp
bmVkKE9QRU5TU0xfWDg2XzY0KSB8fCBcCisgICAgIGRlZmluZWQoT1BFTlNTTF9BUk0pIHx8IGRl
ZmluZWQoT1BFTlNTTF9BQVJDSDY0KSB8fCBcCisgICAgIGRlZmluZWQoT1BFTlNTTF9QUEM2NExF
KSkKKyNkZWZpbmUgR0hBU0hfQVNNCisjZW5kaWYKKwordm9pZCBnY21faW5pdF80Yml0KHUxMjgg
SHRhYmxlWzE2XSwgY29uc3QgdWludDY0X3QgSFsyXSk7Cit2b2lkIGdjbV9nbXVsdF80Yml0KHVp
bnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0pOwordm9pZCBnY21fZ2hhc2hfNGJp
dCh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50OF90ICpp
bnAsCisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworCisjaWYgZGVmaW5lZChHSEFT
SF9BU00pCisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2
XzY0KQorI2RlZmluZSBHQ01fRlVOQ1JFRl80QklUCit2b2lkIGdjbV9pbml0X2NsbXVsKHUxMjgg
SHRhYmxlWzE2XSwgY29uc3QgdWludDY0X3QgWGlbMl0pOwordm9pZCBnY21fZ211bHRfY2xtdWwo
dWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSk7Cit2b2lkIGdjbV9naGFzaF9j
bG11bCh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50OF90
ICppbnAsCisgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKTsKKworT1BFTlNTTF9JTkxJ
TkUgY2hhciBnY21fc3NzZTNfY2FwYWJsZSh2b2lkKSB7CisgIHJldHVybiAoT1BFTlNTTF9pYTMy
Y2FwX2dldCgpWzFdICYgKDEgPDwgKDQxIC0gMzIpKSkgIT0gMDsKK30KKworLy8gfGdjbV9nbXVs
dF9zc3NlM3wgYW5kIHxnY21fZ2hhc2hfc3NzZTN8IHJlcXVpcmUgfEh0YWJsZXwgdG8gYmUKKy8v
IDE2LWJ5dGUtYWxpZ25lZCwgYnV0IHxnY21faW5pdF9zc3NlM3wgZG9lcyBub3QuCit2b2lkIGdj
bV9pbml0X3Nzc2UzKHUxMjggSHRhYmxlWzE2XSwgY29uc3QgdWludDY0X3QgWGlbMl0pOwordm9p
ZCBnY21fZ211bHRfc3NzZTModWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSk7
Cit2b2lkIGdjbV9naGFzaF9zc3NlMyh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBIdGFibGVb
MTZdLCBjb25zdCB1aW50OF90ICppbiwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4p
OworCisjaWYgZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkKKyNkZWZpbmUgR0hBU0hfQVNNX1g4Nl82
NAordm9pZCBnY21faW5pdF9hdngodTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50NjRfdCBYaVsy
XSk7Cit2b2lkIGdjbV9nbXVsdF9hdngodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxl
WzE2XSk7Cit2b2lkIGdjbV9naGFzaF9hdngodWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRh
YmxlWzE2XSwgY29uc3QgdWludDhfdCAqaW4sCisgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxl
bik7CisKKyNkZWZpbmUgQUVTTklfR0NNCitzaXplX3QgYWVzbmlfZ2NtX2VuY3J5cHQoY29uc3Qg
dWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBBRVNfS0VZICprZXksIHVpbnQ4X3QgaXZlY1sxNl0sIHVpbnQ2NF90ICpY
aSk7CitzaXplX3QgYWVzbmlfZ2NtX2RlY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3Qg
Km91dCwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBRVNfS0VZ
ICprZXksIHVpbnQ4X3QgaXZlY1sxNl0sIHVpbnQ2NF90ICpYaSk7CisjZW5kaWYgIC8vIE9QRU5T
U0xfWDg2XzY0CisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2KQorI2RlZmluZSBHSEFTSF9BU01f
WDg2Cit2b2lkIGdjbV9nbXVsdF80Yml0X21teCh1aW50NjRfdCBYaVsyXSwgY29uc3QgdTEyOCBI
dGFibGVbMTZdKTsKK3ZvaWQgZ2NtX2doYXNoXzRiaXRfbW14KHVpbnQ2NF90IFhpWzJdLCBjb25z
dCB1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ4X3QgKmlucCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBsZW4pOworI2VuZGlmICAvLyBPUEVOU1NMX1g4NgorCisjZWxpZiBkZWZp
bmVkKE9QRU5TU0xfQVJNKSB8fCBkZWZpbmVkKE9QRU5TU0xfQUFSQ0g2NCkKKyNkZWZpbmUgR0hB
U0hfQVNNX0FSTQorI2RlZmluZSBHQ01fRlVOQ1JFRl80QklUCisKK09QRU5TU0xfSU5MSU5FIGlu
dCBnY21fcG11bGxfY2FwYWJsZSh2b2lkKSB7CisgIHJldHVybiBDUllQVE9faXNfQVJNdjhfUE1V
TExfY2FwYWJsZSgpOworfQorCit2b2lkIGdjbV9pbml0X3Y4KHUxMjggSHRhYmxlWzE2XSwgY29u
c3QgdWludDY0X3QgWGlbMl0pOwordm9pZCBnY21fZ211bHRfdjgodWludDY0X3QgWGlbMl0sIGNv
bnN0IHUxMjggSHRhYmxlWzE2XSk7Cit2b2lkIGdjbV9naGFzaF92OCh1aW50NjRfdCBYaVsyXSwg
Y29uc3QgdTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50OF90ICppbnAsCisgICAgICAgICAgICAg
ICAgICBzaXplX3QgbGVuKTsKKworT1BFTlNTTF9JTkxJTkUgaW50IGdjbV9uZW9uX2NhcGFibGUo
dm9pZCkgeyByZXR1cm4gQ1JZUFRPX2lzX05FT05fY2FwYWJsZSgpOyB9CisKK3ZvaWQgZ2NtX2lu
aXRfbmVvbih1MTI4IEh0YWJsZVsxNl0sIGNvbnN0IHVpbnQ2NF90IFhpWzJdKTsKK3ZvaWQgZ2Nt
X2dtdWx0X25lb24odWludDY0X3QgWGlbMl0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSk7Cit2b2lk
IGdjbV9naGFzaF9uZW9uKHVpbnQ2NF90IFhpWzJdLCBjb25zdCB1MTI4IEh0YWJsZVsxNl0sIGNv
bnN0IHVpbnQ4X3QgKmlucCwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbik7CisKKyNl
bGlmIGRlZmluZWQoT1BFTlNTTF9QUEM2NExFKQorI2RlZmluZSBHSEFTSF9BU01fUFBDNjRMRQor
I2RlZmluZSBHQ01fRlVOQ1JFRl80QklUCit2b2lkIGdjbV9pbml0X3A4KHUxMjggSHRhYmxlWzE2
XSwgY29uc3QgdWludDY0X3QgWGlbMl0pOwordm9pZCBnY21fZ211bHRfcDgodWludDY0X3QgWGlb
Ml0sIGNvbnN0IHUxMjggSHRhYmxlWzE2XSk7Cit2b2lkIGdjbV9naGFzaF9wOCh1aW50NjRfdCBY
aVsyXSwgY29uc3QgdTEyOCBIdGFibGVbMTZdLCBjb25zdCB1aW50OF90ICppbnAsCisgICAgICAg
ICAgICAgICAgICBzaXplX3QgbGVuKTsKKyNlbmRpZgorI2VuZGlmICAvLyBHSEFTSF9BU00KIAog
CiAvLyBDQkMuCkBAIC0zNzYsMTAgKzQyMiwxMSBAQCB0eXBlZGVmIHVuaW9uIHsKIAogc3RydWN0
IHBvbHl2YWxfY3R4IHsKICAgLy8gTm90ZSB0aGF0IHRoZSBvcmRlciBvZiB8U3wsIHxIfCBhbmQg
fEh0YWJsZXwgaXMgZml4ZWQgYnkgdGhlIE1PVkJFLWJhc2VkLAotICAvLyB4ODYtNjQsIEdIQVNI
IGFzc2VtYmx5LgorICAvLyB4ODYtNjQsIEdIQVNIIGFzc2VtYmx5LiBBZGRpdGlvbmFsbHksIHNv
bWUgYXNzZW1ibHkgcm91dGluZXMgcmVxdWlyZQorICAvLyB8SHRhYmxlfCB0byBiZSAxNi1ieXRl
IGFsaWduZWQuCiAgIHBvbHl2YWxfYmxvY2sgUzsKICAgdTEyOCBIOwotICB1MTI4IEh0YWJsZVsx
Nl07CisgIGFsaWduYXMoMTYpIHUxMjggSHRhYmxlWzE2XTsKICAgZ211bHRfZnVuYyBnbXVsdDsK
ICAgZ2hhc2hfZnVuYyBnaGFzaDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvcmFuZC9hc20vcmRyYW5kLXg4Nl82NC5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yYW5k
L2FzbS9yZHJhbmQteDg2XzY0LnBsCmluZGV4IDA1NmRkNzQ4NzgzODkwMDliZmY0ODEzMmU5MWUw
ZGM1NmNlNzY0YmEuLmViMmE1OTI2MmU3ZjY4MDNkNjI4YmI1NmVjZWJjYjgwMmU5ZGVjYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yYW5kL2FzbS9yZHJhbmQteDg2XzY0LnBs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yYW5kL2FzbS9yZHJhbmQteDg2XzY0LnBsCkBA
IC0xNCwxNyArMTQsMjcgQEAKICMgT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9S
VElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgogIyBDT05ORUNUSU9OIFdJVEggVEhF
IFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLwogCi0kZmxhdm91ciA9IHNo
aWZ0OwotJG91dHB1dCAgPSBzaGlmdDsKK3VzZSBzdHJpY3Q7CisKK215ICRmbGF2b3VyID0gc2hp
ZnQ7CitteSAkb3V0cHV0ICA9IHNoaWZ0OwogaWYgKCRmbGF2b3VyID1+IC9cLi8pIHsgJG91dHB1
dCA9ICRmbGF2b3VyOyB1bmRlZiAkZmxhdm91cjsgfQogCi0kMCA9fiBtLyguKltcL1xcXSlbXlwv
XFxdKyQvOyAkZGlyPSQxOworbXkgJHdpbjY0ID0gMDsKKyR3aW42NCA9IDEgaWYgKCRmbGF2b3Vy
ID1+IC9bbm1dYXNtfG1pbmd3NjQvIHx8ICRvdXRwdXQgPX4gL1wuYXNtJC8pOworCiskMCA9fiBt
LyguKltcL1xcXSlbXlwvXFxdKyQvOworbXkgJGRpciA9ICQxOworbXkgJHhsYXRlOwogKCAkeGxh
dGU9IiR7ZGlyfS4uLy4uLy4uL3Blcmxhc20veDg2XzY0LXhsYXRlLnBsIiBhbmQgLWYgJHhsYXRl
KSBvcgogZGllICJjYW4ndCBsb2NhdGUgeDg2XzY0LXhsYXRlLnBsIjsKIAogb3BlbiBPVVQsInwg
XCIkXlhcIiAkeGxhdGUgJGZsYXZvdXIgJG91dHB1dCI7CiAqU1RET1VUPSpPVVQ7CiAKK215ICgk
b3V0LCAkbGVuLCAkdG1wMSwgJHRtcDIpID0gJHdpbjY0ID8gKCIlcmN4IiwgIiVyZHgiLCAiJXI4
IiwgIiVyOSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgiJXJk
aSIsICIlcnNpIiwgIiVyZHgiLCAiJXJjeCIpOworCiBwcmludDw8X19fOwogLnRleHQKIApAQCAt
MzIsNDAgKzQyLDM3IEBAIHByaW50PDxfX187CiAjIHxvdXR8LiBJdCByZXR1cm5zIG9uZSBvbiBz
dWNjZXNzIG9yIHplcm8gb24gaGFyZHdhcmUgZmFpbHVyZS4KICMgaW50IENSWVBUT19yZHJhbmQo
dWludDhfdCBvdXRbOF0pOwogLmdsb2JsCUNSWVBUT19yZHJhbmQKLS50eXBlCUNSWVBUT19yZHJh
bmQsXEBmdW5jdGlvbiwxCisudHlwZQlDUllQVE9fcmRyYW5kLFxAYWJpLW9tbmlwb3RlbnQKIC5h
bGlnbgkxNgogQ1JZUFRPX3JkcmFuZDoKIC5jZmlfc3RhcnRwcm9jCiAJeG9ycSAlcmF4LCAlcmF4
Ci0JIyBUaGlzIGlzIHJkcmFuZCAlcmN4LiBJdCBzZXRzIHJjeCB0byBhIHJhbmRvbSB2YWx1ZSBh
bmQgc2V0cyB0aGUgY2FycnkKLQkjIGZsYWcgb24gc3VjY2Vzcy4KLQkuYnl0ZSAweDQ4LCAweDBm
LCAweGM3LCAweGYxCisJcmRyYW5kICR0bXAxCiAJIyBBbiBhZGQtd2l0aC1jYXJyeSBvZiB6ZXJv
IGVmZmVjdGl2ZWx5IHNldHMgJXJheCB0byB0aGUgY2FycnkgZmxhZy4KIAlhZGNxICVyYXgsICVy
YXgKLQltb3ZxICVyY3gsIDAoJXJkaSkKKwltb3ZxICR0bXAxLCAwKCRvdXQpCiAJcmV0cQogLmNm
aV9lbmRwcm9jCisuc2l6ZSBDUllQVE9fcmRyYW5kLC4tQ1JZUFRPX3JkcmFuZAogCiAjIENSWVBU
T19yZHJhbmRfbXVsdGlwbGU4X2J1ZiBmaWxscyB8bGVufCBieXRlcyBhdCB8YnVmfCB3aXRoIHJh
bmRvbSBkYXRhIGZyb20KICMgdGhlIGhhcmR3YXJlIFJORy4gVGhlIHxsZW58IGFyZ3VtZW50IG11
c3QgYmUgYSBtdWx0aXBsZSBvZiBlaWdodC4gSXQgcmV0dXJucwogIyBvbmUgb24gc3VjY2VzcyBh
bmQgemVybyBvbiBoYXJkd2FyZSBmYWlsdXJlLgogIyBpbnQgQ1JZUFRPX3JkcmFuZF9tdWx0aXBs
ZThfYnVmKHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IGxlbik7CiAuZ2xvYmwgQ1JZUFRPX3JkcmFuZF9t
dWx0aXBsZThfYnVmCi0udHlwZSBDUllQVE9fcmRyYW5kX211bHRpcGxlOF9idWYsXEBmdW5jdGlv
biwyCisudHlwZSBDUllQVE9fcmRyYW5kX211bHRpcGxlOF9idWYsXEBhYmktb21uaXBvdGVudAog
LmFsaWduIDE2CiBDUllQVE9fcmRyYW5kX211bHRpcGxlOF9idWY6CiAuY2ZpX3N0YXJ0cHJvYwot
CXRlc3QgJXJzaSwgJXJzaQorCXRlc3QgJGxlbiwgJGxlbgogCWp6IC5Mb3V0Ci0JbW92cSBcJDgs
ICVyZHgKKwltb3ZxIFwkOCwgJHRtcDEKIC5MbG9vcDoKLQkjIFRoaXMgaXMgcmRyYW5kICVyY3gu
IEl0IHNldHMgcmN4IHRvIGEgcmFuZG9tIHZhbHVlIGFuZCBzZXRzIHRoZSBjYXJyeQotCSMgZmxh
ZyBvbiBzdWNjZXNzLgotCS5ieXRlIDB4NDgsIDB4MGYsIDB4YzcsIDB4ZjEKKwlyZHJhbmQgJHRt
cDIKIAlqbmMgLkxlcnIKLQltb3ZxICVyY3gsIDAoJXJkaSkKLQlhZGRxICVyZHgsICVyZGkKLQlz
dWJxICVyZHgsICVyc2kKKwltb3ZxICR0bXAyLCAwKCRvdXQpCisJYWRkcSAkdG1wMSwgJG91dAor
CXN1YnEgJHRtcDEsICRsZW4KIAlqbnogLkxsb29wCiAuTG91dDoKIAltb3ZxIFwkMSwgJXJheApA
QCAtNzQsNiArODEsNyBAQCBDUllQVE9fcmRyYW5kX211bHRpcGxlOF9idWY6CiAJeG9ycSAlcmF4
LCAlcmF4CiAJcmV0cQogLmNmaV9lbmRwcm9jCisuc2l6ZSBDUllQVE9fcmRyYW5kX211bHRpcGxl
OF9idWYsLi1DUllQVE9fcmRyYW5kX211bHRpcGxlOF9idWYKIF9fXwogCi1jbG9zZSBTVERPVVQ7
CSMgZmx1c2gKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsJIyBm
bHVzaApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JhbmQvaW50ZXJuYWwuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yYW5kL2ludGVybmFsLmgKaW5kZXggZjczZjRhMTc3M2Vk
ODc2NjE4YTc4MTg0MDZmN2NiYTE4MGQ2M2E1YS4uYWQ3NTgyM2Y1YzdhZWFlY2EyMzNmNmM4M2Iz
ODkxMGFlM2I5NjQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JhbmQvaW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvcmFuZC9pbnRlcm5hbC5oCkBAIC0x
Niw2ICsxNiw3IEBACiAjZGVmaW5lIE9QRU5TU0xfSEVBREVSX0NSWVBUT19SQU5EX0lOVEVSTkFM
X0gKIAogI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcHUuaD4K
IAogI2luY2x1ZGUgIi4uLy4uL2ludGVybmFsLmgiCiAjaW5jbHVkZSAiLi4vbW9kZXMvaW50ZXJu
YWwuaCIKQEAgLTg1LDYgKzg2LDIyIEBAIE9QRU5TU0xfRVhQT1JUIGludCBDVFJfRFJCR19nZW5l
cmF0ZShDVFJfRFJCR19TVEFURSAqZHJiZywgdWludDhfdCAqb3V0LAogT1BFTlNTTF9FWFBPUlQg
dm9pZCBDVFJfRFJCR19jbGVhcihDVFJfRFJCR19TVEFURSAqZHJiZyk7CiAKIAorI2lmIGRlZmlu
ZWQoT1BFTlNTTF9YODZfNjQpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKQorT1BFTlNTTF9J
TkxJTkUgaW50IGhhdmVfcmRyYW5kKHZvaWQpIHsKKyAgcmV0dXJuIChPUEVOU1NMX2lhMzJjYXBf
Z2V0KClbMV0gJiAoMXUgPDwgMzApKSAhPSAwOworfQorCisvLyBDUllQVE9fcmRyYW5kIHdyaXRl
cyBlaWdodCBieXRlcyBvZiByYW5kb20gZGF0YSBmcm9tIHRoZSBoYXJkd2FyZSBSTkcgdG8KKy8v
IHxvdXR8LiBJdCByZXR1cm5zIG9uZSBvbiBzdWNjZXNzIG9yIHplcm8gb24gaGFyZHdhcmUgZmFp
bHVyZS4KK2ludCBDUllQVE9fcmRyYW5kKHVpbnQ4X3Qgb3V0WzhdKTsKKworLy8gQ1JZUFRPX3Jk
cmFuZF9tdWx0aXBsZThfYnVmIGZpbGxzIHxsZW58IGJ5dGVzIGF0IHxidWZ8IHdpdGggcmFuZG9t
IGRhdGEgZnJvbQorLy8gdGhlIGhhcmR3YXJlIFJORy4gVGhlIHxsZW58IGFyZ3VtZW50IG11c3Qg
YmUgYSBtdWx0aXBsZSBvZiBlaWdodC4gSXQgcmV0dXJucworLy8gb25lIG9uIHN1Y2Nlc3MgYW5k
IHplcm8gb24gaGFyZHdhcmUgZmFpbHVyZS4KK2ludCBDUllQVE9fcmRyYW5kX211bHRpcGxlOF9i
dWYodWludDhfdCAqYnVmLCBzaXplX3QgbGVuKTsKKyNlbmRpZiAgLy8gT1BFTlNTTF9YODZfNjQg
JiYgIU9QRU5TU0xfTk9fQVNNCisKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9ICAvLyBl
eHRlcm4gQwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvcmFuZC9y
YW5kLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvcmFuZC9yYW5kLmMKaW5kZXggZTZiNGJiNDhj
ODIyZDE0MDU2ZGJiMzM5ZTdmNjM3MzNmNWE5ZGIyOS4uYThlZjQ1ODc1NWM1YzZhNGU3NTM4ODY2
NzA1ZTQ3MGU2Mzk0YzFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JhbmQv
cmFuZC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yYW5kL3JhbmQuYwpAQCAtNTQsMTcg
KzU0LDc3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrUmVzZWVkSW50ZXJ2YWwgPSA0MDk2Owog
Ly8gY29udGludW91cyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0ZXN0IGluIEZJUFMgMTQwLTIs
IHNlY3Rpb24gNC45LjIuCiAjZGVmaW5lIENSTkdUX0JMT0NLX1NJWkUgMTYKIAotI2lmIGRlZmlu
ZWQoT1BFTlNTTF9YODZfNjQpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiBcCi0gICAg
IWRlZmluZWQoQk9SSU5HU1NMX1VOU0FGRV9ERVRFUk1JTklTVElDX01PREUpCisvLyByYW5kX3Ro
cmVhZF9zdGF0ZSBjb250YWlucyB0aGUgcGVyLXRocmVhZCBzdGF0ZSBmb3IgdGhlIFJORy4KK3N0
cnVjdCByYW5kX3RocmVhZF9zdGF0ZSB7CisgIENUUl9EUkJHX1NUQVRFIGRyYmc7CisgIC8vIGNh
bGxzIGlzIHRoZSBudW1iZXIgb2YgZ2VuZXJhdGUgY2FsbHMgbWFkZSBvbiB8ZHJiZ3wgc2luY2Ug
aXQgd2FzIGxhc3QKKyAgLy8gKHJlKXNlZWRlZC4gVGhpcyBpcyBib3VuZCBieSB8a1Jlc2VlZElu
dGVydmFsfC4KKyAgdW5zaWduZWQgY2FsbHM7CisgIC8vIGxhc3RfYmxvY2tfdmFsaWQgaXMgbm9u
LXplcm8gaWZmIHxsYXN0X2Jsb2NrfCBjb250YWlucyBkYXRhIGZyb20KKyAgLy8gfENSWVBUT19z
eXNyYW5kfC4KKyAgaW50IGxhc3RfYmxvY2tfdmFsaWQ7CiAKLS8vIFRoZXNlIGZ1bmN0aW9ucyBh
cmUgZGVmaW5lZCBpbiBhc20vcmRyYW5kLXg4Nl82NC5wbAotZXh0ZXJuIGludCBDUllQVE9fcmRy
YW5kKHVpbnQ4X3Qgb3V0WzhdKTsKLWV4dGVybiBpbnQgQ1JZUFRPX3JkcmFuZF9tdWx0aXBsZThf
YnVmKHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IGxlbik7CisjaWYgZGVmaW5lZChCT1JJTkdTU0xfRklQ
UykKKyAgLy8gbGFzdF9ibG9jayBjb250YWlucyB0aGUgcHJldmlvdXMgYmxvY2sgZnJvbSB8Q1JZ
UFRPX3N5c3JhbmR8LgorICB1aW50OF90IGxhc3RfYmxvY2tbQ1JOR1RfQkxPQ0tfU0laRV07Cisg
IC8vIG5leHQgYW5kIHByZXYgZm9ybSBhIE5VTEwtdGVybWluYXRlZCwgZG91YmxlLWxpbmtlZCBs
aXN0IG9mIGFsbCBzdGF0ZXMgaW4KKyAgLy8gYSBwcm9jZXNzLgorICBzdHJ1Y3QgcmFuZF90aHJl
YWRfc3RhdGUgKm5leHQsICpwcmV2OworI2VuZGlmCit9OwogCi1zdGF0aWMgaW50IGhhdmVfcmRy
YW5kKHZvaWQpIHsKLSAgcmV0dXJuIChPUEVOU1NMX2lhMzJjYXBfZ2V0KClbMV0gJiAoMXUgPDwg
MzApKSAhPSAwOworI2lmIGRlZmluZWQoQk9SSU5HU1NMX0ZJUFMpCisvLyB0aHJlYWRfc3RhdGVz
X2xpc3QgaXMgdGhlIGhlYWQgb2YgYSBsaW5rZWQtbGlzdCBvZiBhbGwgfHJhbmRfdGhyZWFkX3N0
YXRlfAorLy8gb2JqZWN0cyBpbiB0aGUgcHJvY2Vzcywgb25lIHBlciB0aHJlYWQuIFRoaXMgaXMg
bmVlZGVkIGJlY2F1c2UgRklQUyByZXF1aXJlcworLy8gdGhhdCB0aGV5IGJlIHplcm9lZCBvbiBw
cm9jZXNzIGV4aXQsIGJ1dCB0aHJlYWQtbG9jYWwgZGVzdHJ1Y3RvcnMgYXJlbid0CisvLyBjYWxs
ZWQgd2hlbiB0aGUgd2hvbGUgcHJvY2VzcyBpcyBleGl0aW5nLgorREVGSU5FX0JTU19HRVQoc3Ry
dWN0IHJhbmRfdGhyZWFkX3N0YXRlICosIHRocmVhZF9zdGF0ZXNfbGlzdCk7CitERUZJTkVfU1RB
VElDX01VVEVYKHRocmVhZF9zdGF0ZXNfbGlzdF9sb2NrKTsKKworc3RhdGljIHZvaWQgcmFuZF90
aHJlYWRfc3RhdGVfY2xlYXJfYWxsKHZvaWQpIF9fYXR0cmlidXRlX18oKGRlc3RydWN0b3IpKTsK
K3N0YXRpYyB2b2lkIHJhbmRfdGhyZWFkX3N0YXRlX2NsZWFyX2FsbCh2b2lkKSB7CisgIENSWVBU
T19TVEFUSUNfTVVURVhfbG9ja193cml0ZSh0aHJlYWRfc3RhdGVzX2xpc3RfbG9ja19ic3NfZ2V0
KCkpOworICBmb3IgKHN0cnVjdCByYW5kX3RocmVhZF9zdGF0ZSAqY3VyID0gKnRocmVhZF9zdGF0
ZXNfbGlzdF9ic3NfZ2V0KCk7CisgICAgICAgY3VyICE9IE5VTEw7IGN1ciA9IGN1ci0+bmV4dCkg
eworICAgIENUUl9EUkJHX2NsZWFyKCZjdXItPmRyYmcpOworICB9CisgIC8vIHx0aHJlYWRfc3Rh
dGVzX2xpc3RfbG9jayBpcyBkZWxpYmVyYXRlbHkgbGVmdCBsb2NrZWQgc28gdGhhdCBhbnkgdGhy
ZWFkcworICAvLyB0aGF0IGFyZSBzdGlsbCBydW5uaW5nIHdpbGwgaGFuZyBpZiB0aGV5IHRyeSB0
byBjYWxsIHxSQU5EX2J5dGVzfC4KIH0KKyNlbmRpZgorCisvLyByYW5kX3RocmVhZF9zdGF0ZV9m
cmVlIGZyZWVzIGEgfHJhbmRfdGhyZWFkX3N0YXRlfC4gVGhpcyBpcyBjYWxsZWQgd2hlbiBhCisv
LyB0aHJlYWQgZXhpdHMuCitzdGF0aWMgdm9pZCByYW5kX3RocmVhZF9zdGF0ZV9mcmVlKHZvaWQg
KnN0YXRlX2luKSB7CisgIHN0cnVjdCByYW5kX3RocmVhZF9zdGF0ZSAqc3RhdGUgPSBzdGF0ZV9p
bjsKKworICBpZiAoc3RhdGVfaW4gPT0gTlVMTCkgeworICAgIHJldHVybjsKKyAgfQorCisjaWYg
ZGVmaW5lZChCT1JJTkdTU0xfRklQUykKKyAgQ1JZUFRPX1NUQVRJQ19NVVRFWF9sb2NrX3dyaXRl
KHRocmVhZF9zdGF0ZXNfbGlzdF9sb2NrX2Jzc19nZXQoKSk7CiAKKyAgaWYgKHN0YXRlLT5wcmV2
ICE9IE5VTEwpIHsKKyAgICBzdGF0ZS0+cHJldi0+bmV4dCA9IHN0YXRlLT5uZXh0OworICB9IGVs
c2UgeworICAgICp0aHJlYWRfc3RhdGVzX2xpc3RfYnNzX2dldCgpID0gc3RhdGUtPm5leHQ7Cisg
IH0KKworICBpZiAoc3RhdGUtPm5leHQgIT0gTlVMTCkgeworICAgIHN0YXRlLT5uZXh0LT5wcmV2
ID0gc3RhdGUtPnByZXY7CisgIH0KKworICBDUllQVE9fU1RBVElDX01VVEVYX3VubG9ja193cml0
ZSh0aHJlYWRfc3RhdGVzX2xpc3RfbG9ja19ic3NfZ2V0KCkpOworCisgIENUUl9EUkJHX2NsZWFy
KCZzdGF0ZS0+ZHJiZyk7CisjZW5kaWYKKworICBPUEVOU1NMX2ZyZWUoc3RhdGUpOworfQorCisj
aWYgZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYm
IFwKKyAgICAhZGVmaW5lZChCT1JJTkdTU0xfVU5TQUZFX0RFVEVSTUlOSVNUSUNfTU9ERSkKIHN0
YXRpYyBpbnQgaHdyYW5kKHVpbnQ4X3QgKmJ1ZiwgY29uc3Qgc2l6ZV90IGxlbikgewogICBpZiAo
IWhhdmVfcmRyYW5kKCkpIHsKICAgICByZXR1cm4gMDsKQEAgLTEwMywzMiArMTYzLDkgQEAgc3Rh
dGljIGludCBod3JhbmQodWludDhfdCAqYnVmLCBzaXplX3QgbGVuKSB7CiAKICNlbmRpZgogCi0v
LyByYW5kX3N0YXRlIGNvbnRhaW5zIGFuIFJORyBzdGF0ZS4KLXN0cnVjdCByYW5kX3N0YXRlIHsK
LSAgQ1RSX0RSQkdfU1RBVEUgZHJiZzsKLSAgLy8gbmV4dCBmb3JtcyBhIE5VTEwtdGVybWluYXRl
ZCBsaW5rZWQtbGlzdCBvZiBhbGwgZnJlZSB8cmFuZF9zdGF0ZXwgb2JqZWN0cy4KLSAgc3RydWN0
IHJhbmRfc3RhdGUgKm5leHQ7Ci0gIC8vIGNhbGxzIGlzIHRoZSBudW1iZXIgb2YgZ2VuZXJhdGUg
Y2FsbHMgbWFkZSBvbiB8ZHJiZ3wgc2luY2UgaXQgd2FzIGxhc3QKLSAgLy8gKHJlKXNlZWRlZC4g
VGhpcyBpcyBib3VuZCBieQotICAvLyB8a1Jlc2VlZEludGVydmFsIC0gMSArIFNJWkVfTUFYIC8g
Q1RSX0RSQkdfTUFYX0dFTkVSQVRFX0xFTkdUSHwuCi0gIHNpemVfdCBjYWxsczsKLQotI2lmIGRl
ZmluZWQoQk9SSU5HU1NMX0ZJUFMpCi0gIC8vIG5leHRfYWxsIGZvcm1zIGFub3RoZXIgTlVMTC10
ZXJtaW5hdGVkIGxpbmtlZC1saXN0LCB0aGlzIHRpbWUgb2YgYWxsCi0gIC8vIHxyYW5kX3N0YXRl
fCBvYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGFsbG9jYXRlZCBpbmNsdWRpbmcgdGhvc2UgdGhhdCBt
aWdodAotICAvLyBjdXJyZW50bHkgYmUgaW4gdXNlLgotICBzdHJ1Y3QgcmFuZF9zdGF0ZSAqbmV4
dF9hbGw7Ci0gIC8vIGxhc3RfYmxvY2sgY29udGFpbnMgdGhlIHByZXZpb3VzIGJsb2NrIGZyb20g
fENSWVBUT19zeXNyYW5kfC4KLSAgdWludDhfdCBsYXN0X2Jsb2NrW0NSTkdUX0JMT0NLX1NJWkVd
OwotICAvLyBsYXN0X2Jsb2NrX3ZhbGlkIGlzIG5vbi16ZXJvIGlmZiB8bGFzdF9ibG9ja3wgY29u
dGFpbnMgZGF0YSBmcm9tCi0gIC8vIHxDUllQVE9fc3lzcmFuZHwuCi0gIGludCBsYXN0X2Jsb2Nr
X3ZhbGlkOwotI2VuZGlmCi19OwotCiAjaWYgZGVmaW5lZChCT1JJTkdTU0xfRklQUykKIAotc3Rh
dGljIHZvaWQgcmFuZF9nZXRfc2VlZChzdHJ1Y3QgcmFuZF9zdGF0ZSAqc3RhdGUsCitzdGF0aWMg
dm9pZCByYW5kX2dldF9zZWVkKHN0cnVjdCByYW5kX3RocmVhZF9zdGF0ZSAqc3RhdGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc2VlZFtDVFJfRFJCR19FTlRST1BZX0xFTl0p
IHsKICAgaWYgKCFzdGF0ZS0+bGFzdF9ibG9ja192YWxpZCkgewogICAgIGlmICghaHdyYW5kKHN0
YXRlLT5sYXN0X2Jsb2NrLCBzaXplb2Yoc3RhdGUtPmxhc3RfYmxvY2spKSkgewpAQCAtMTc3LDcg
KzIxNCw3IEBAIHN0YXRpYyB2b2lkIHJhbmRfZ2V0X3NlZWQoc3RydWN0IHJhbmRfc3RhdGUgKnN0
YXRlLAogCiAjZWxzZQogCi1zdGF0aWMgdm9pZCByYW5kX2dldF9zZWVkKHN0cnVjdCByYW5kX3N0
YXRlICpzdGF0ZSwKK3N0YXRpYyB2b2lkIHJhbmRfZ2V0X3NlZWQoc3RydWN0IHJhbmRfdGhyZWFk
X3N0YXRlICpzdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBzZWVkW0NU
Ul9EUkJHX0VOVFJPUFlfTEVOXSkgewogICAvLyBJZiBub3QgaW4gRklQUyBtb2RlLCB3ZSBkb24n
dCBvdmVycmVhZCBmcm9tIHRoZSBzeXN0ZW0gZW50cm9weSBzb3VyY2UgYW5kCiAgIC8vIHdlIGRv
bid0IGRlcGVuZCBvbmx5IG9uIHRoZSBoYXJkd2FyZSBSRFJBTkQuCkBAIC0xODYsOTcgKzIyMyw2
IEBAIHN0YXRpYyB2b2lkIHJhbmRfZ2V0X3NlZWQoc3RydWN0IHJhbmRfc3RhdGUgKnN0YXRlLAog
CiAjZW5kaWYKIAotLy8gcmFuZF9zdGF0ZV9mcmVlX2xpc3QgaXMgYSBsaXN0IG9mIGN1cnJlbnRs
eSBmcmVlLCB8cmFuZF9zdGF0ZXwgc3RydWN0dXJlcy4KLS8vIFdoZW4gYSB0aHJlYWQgbmVlZHMg
YSB8cmFuZF9zdGF0ZXwgaXQgcGlja3MgdGhlIGhlYWQgZWxlbWVudCBvZiB0aGlzIGxpc3QgYW5k
Ci0vLyBhbGxvY3MgYSBuZXcgb25lIGlmIHRoZSBsaXN0IGlzIGVtcHR5LiBPbmNlIGl0J3MgZmlu
aXNoZWQsIGl0IHB1c2hlcyB0aGUKLS8vIHN0YXRlIGJhY2sgb250byB0aGUgZnJvbnQgb2YgdGhl
IGxpc3QuCi0vLwotLy8gUHJldmlvdXNseSB3ZSB1c2VkIGEgdGhyZWFkLWxvY2FsIHN0YXRlIGJ1
dCBmb3IgcHJvY2Vzc2VzIHdpdGggbGFyZ2UgbnVtYmVycwotLy8gb2YgdGhyZWFkcyB0aGlzIGNh
biByZXN1bHQgaW4gZXhjZXNzaXZlIG1lbW9yeSB1c2FnZS4gU2luY2Ugd2UgZG9uJ3QgZnJlZQot
Ly8gfHJhbmRfc3RhdGV8IG9iamVjdHMsIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyBpbiBtZW1vcnkg
d2lsbCBldmVudHVhbGx5IGVxdWFsCi0vLyB0aGUgbWF4aW11bSBjb25jdXJyZW5jeSBvZiB8UkFO
RF9ieXRlc3wuCi1ERUZJTkVfQlNTX0dFVChzdHJ1Y3QgcmFuZF9zdGF0ZSAqLCByYW5kX3N0YXRl
X2ZyZWVfbGlzdCk7Ci0KLS8vIHJhbmRfc3RhdGVfbG9jayBwcm90ZWN0cyB8cmFuZF9zdGF0ZV9m
cmVlX2xpc3R8IChhbmQgfHJhbmRfc3RhdGVfYWxsX2xpc3R8LAotLy8gaW4gRklQUyBtb2RlKS4K
LURFRklORV9TVEFUSUNfTVVURVgocmFuZF9zdGF0ZV9sb2NrKTsKLQotI2lmIGRlZmluZWQoQk9S
SU5HU1NMX0ZJUFMpCi0vLyByYW5kX3N0YXRlX2FsbF9saXN0IGlzIHRoZSBoZWFkIG9mIGEgbGlu
a2VkLWxpc3Qgb2YgYWxsIHxyYW5kX3N0YXRlfCBvYmplY3RzCi0vLyBpbiB0aGUgcHJvY2Vzcy4g
VGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBGSVBTIHJlcXVpcmVzIHRoYXQgdGhleSBiZSB6ZXJvZWQg
b24KLS8vIHByb2Nlc3MgZXhpdC4KLURFRklORV9CU1NfR0VUKHN0cnVjdCByYW5kX3N0YXRlICos
IHJhbmRfc3RhdGVfYWxsX2xpc3QpOwotCi0vLyByYW5kX2RyYmdfbG9jayBpcyB0YWtlbiBpbiB3
cml0ZSBtb2RlIGJ5IHxyYW5kX3N0YXRlX2NsZWFyX2FsbHwsIGFuZAotLy8gaW4gcmVhZCBtb2Rl
IGJ5IGFueSBvcGVyYXRpb24gb24gdGhlIHxkcmJnfCBtZW1iZXIgb2YgfHJhbmRfc3RhdGV8Lgot
Ly8gVGhpcyBlbnN1cmVzIHRoYXQsIGluIHRoZSBldmVudCB0aGF0IGEgdGhyZWFkIHJhY2VzIGRl
c3RydWN0b3IgZnVuY3Rpb25zLCB3ZQotLy8gbmV2ZXIgcmV0dXJuIGJvZ3VzIHJhbmRvbSBkYXRh
LiBBdCB3b3JzdCwgdGhlIHRocmVhZCB3aWxsIGRlYWRsb2NrLgotREVGSU5FX1NUQVRJQ19NVVRF
WChyYW5kX2RyYmdfbG9jayk7Ci0KLXN0YXRpYyB2b2lkIHJhbmRfc3RhdGVfY2xlYXJfYWxsKHZv
aWQpIF9fYXR0cmlidXRlX18oKGRlc3RydWN0b3IpKTsKLXN0YXRpYyB2b2lkIHJhbmRfc3RhdGVf
Y2xlYXJfYWxsKHZvaWQpIHsKLSAgQ1JZUFRPX1NUQVRJQ19NVVRFWF9sb2NrX3dyaXRlKHJhbmRf
ZHJiZ19sb2NrX2Jzc19nZXQoKSk7Ci0gIENSWVBUT19TVEFUSUNfTVVURVhfbG9ja193cml0ZShy
YW5kX3N0YXRlX2xvY2tfYnNzX2dldCgpKTsKLSAgZm9yIChzdHJ1Y3QgcmFuZF9zdGF0ZSAqY3Vy
ID0gKnJhbmRfc3RhdGVfYWxsX2xpc3RfYnNzX2dldCgpOwotICAgICAgIGN1ciAhPSBOVUxMOyBj
dXIgPSBjdXItPm5leHRfYWxsKSB7Ci0gICAgQ1RSX0RSQkdfY2xlYXIoJmN1ci0+ZHJiZyk7Ci0g
IH0KLSAgLy8gQm90aCBsb2NrcyBhcmUgZGVsaWJlcmF0ZWx5IGxlZnQgbG9ja2VkIHNvIHRoYXQg
YW55IHRocmVhZHMgdGhhdCBhcmUgc3RpbGwKLSAgLy8gcnVubmluZyB3aWxsIGhhbmcgaWYgdGhl
eSB0cnkgdG8gY2FsbCB8UkFORF9ieXRlc3wuCi19Ci0jZW5kaWYKLQotLy8gcmFuZF9zdGF0ZV9p
bml0IHNlZWRzIGEgfHJhbmRfc3RhdGV8Lgotc3RhdGljIHZvaWQgcmFuZF9zdGF0ZV9pbml0KHN0
cnVjdCByYW5kX3N0YXRlICpzdGF0ZSkgewotICBPUEVOU1NMX21lbXNldChzdGF0ZSwgMCwgc2l6
ZW9mKHN0cnVjdCByYW5kX3N0YXRlKSk7Ci0gIHVpbnQ4X3Qgc2VlZFtDVFJfRFJCR19FTlRST1BZ
X0xFTl07Ci0gIHJhbmRfZ2V0X3NlZWQoc3RhdGUsIHNlZWQpOwotICBpZiAoIUNUUl9EUkJHX2lu
aXQoJnN0YXRlLT5kcmJnLCBzZWVkLCBOVUxMLCAwKSkgewotICAgIGFib3J0KCk7Ci0gIH0KLX0K
LQotLy8gcmFuZF9zdGF0ZV9nZXQgcG9wcyBhIHxyYW5kX3N0YXRlfCBmcm9tIHRoZSBoZWFkIG9m
Ci0vLyB8cmFuZF9zdGF0ZV9mcmVlX2xpc3R8IGFuZCByZXR1cm5zIGl0LiBJZiB0aGUgbGlzdCBp
cyBlbXB0eSwgaXQKLS8vIGNyZWF0ZXMgYSBmcmVzaCB8cmFuZF9zdGF0ZXwgYW5kIHJldHVybnMg
dGhhdCBpbnN0ZWFkLgotc3RhdGljIHN0cnVjdCByYW5kX3N0YXRlICpyYW5kX3N0YXRlX2dldCh2
b2lkKSB7Ci0gIHN0cnVjdCByYW5kX3N0YXRlICpzdGF0ZSA9IE5VTEw7Ci0gIENSWVBUT19TVEFU
SUNfTVVURVhfbG9ja193cml0ZShyYW5kX3N0YXRlX2xvY2tfYnNzX2dldCgpKTsKLSAgc3RhdGUg
PSAqcmFuZF9zdGF0ZV9mcmVlX2xpc3RfYnNzX2dldCgpOwotICBpZiAoc3RhdGUgIT0gTlVMTCkg
ewotICAgICpyYW5kX3N0YXRlX2ZyZWVfbGlzdF9ic3NfZ2V0KCkgPSBzdGF0ZS0+bmV4dDsKLSAg
fQotICBDUllQVE9fU1RBVElDX01VVEVYX3VubG9ja193cml0ZShyYW5kX3N0YXRlX2xvY2tfYnNz
X2dldCgpKTsKLQotICBpZiAoc3RhdGUgIT0gTlVMTCkgewotICAgIHJldHVybiBzdGF0ZTsKLSAg
fQotCi0gIHN0YXRlID0gT1BFTlNTTF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCByYW5kX3N0YXRlKSk7
Ci0gIGlmIChzdGF0ZSA9PSBOVUxMKSB7Ci0gICAgcmV0dXJuIE5VTEw7Ci0gIH0KLQotICByYW5k
X3N0YXRlX2luaXQoc3RhdGUpOwotCi0jaWYgZGVmaW5lZChCT1JJTkdTU0xfRklQUykKLSAgQ1JZ
UFRPX1NUQVRJQ19NVVRFWF9sb2NrX3dyaXRlKHJhbmRfc3RhdGVfbG9ja19ic3NfZ2V0KCkpOwot
ICBzdGF0ZS0+bmV4dF9hbGwgPSAqcmFuZF9zdGF0ZV9hbGxfbGlzdF9ic3NfZ2V0KCk7Ci0gICpy
YW5kX3N0YXRlX2FsbF9saXN0X2Jzc19nZXQoKSA9IHN0YXRlOwotICBDUllQVE9fU1RBVElDX01V
VEVYX3VubG9ja193cml0ZShyYW5kX3N0YXRlX2xvY2tfYnNzX2dldCgpKTsKLSNlbmRpZgotCi0g
IHJldHVybiBzdGF0ZTsKLX0KLQotLy8gcmFuZF9zdGF0ZV9wdXQgcHVzaGVzIHxzdGF0ZXwgb250
byB8cmFuZF9zdGF0ZV9mcmVlX2xpc3R8Lgotc3RhdGljIHZvaWQgcmFuZF9zdGF0ZV9wdXQoc3Ry
dWN0IHJhbmRfc3RhdGUgKnN0YXRlKSB7Ci0gIENSWVBUT19TVEFUSUNfTVVURVhfbG9ja193cml0
ZShyYW5kX3N0YXRlX2xvY2tfYnNzX2dldCgpKTsKLSAgc3RhdGUtPm5leHQgPSAqcmFuZF9zdGF0
ZV9mcmVlX2xpc3RfYnNzX2dldCgpOwotICAqcmFuZF9zdGF0ZV9mcmVlX2xpc3RfYnNzX2dldCgp
ID0gc3RhdGU7Ci0gIENSWVBUT19TVEFUSUNfTVVURVhfdW5sb2NrX3dyaXRlKHJhbmRfc3RhdGVf
bG9ja19ic3NfZ2V0KCkpOwotfQotCiB2b2lkIFJBTkRfYnl0ZXNfd2l0aF9hZGRpdGlvbmFsX2Rh
dGEodWludDhfdCAqb3V0LCBzaXplX3Qgb3V0X2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCB1aW50OF90IHVzZXJfYWRkaXRpb25hbF9kYXRhWzMyXSkgewog
ICBpZiAob3V0X2xlbiA9PSAwKSB7CkBAIC0zMDQsMTQgKzI1MCw0MSBAQCB2b2lkIFJBTkRfYnl0
ZXNfd2l0aF9hZGRpdGlvbmFsX2RhdGEodWludDhfdCAqb3V0LCBzaXplX3Qgb3V0X2xlbiwKICAg
ICBhZGRpdGlvbmFsX2RhdGFbaV0gXj0gdXNlcl9hZGRpdGlvbmFsX2RhdGFbaV07CiAgIH0KIAot
ICBzdHJ1Y3QgcmFuZF9zdGF0ZSBzdGFja19zdGF0ZTsKLSAgc3RydWN0IHJhbmRfc3RhdGUgKnN0
YXRlID0gcmFuZF9zdGF0ZV9nZXQoKTsKKyAgc3RydWN0IHJhbmRfdGhyZWFkX3N0YXRlIHN0YWNr
X3N0YXRlOworICBzdHJ1Y3QgcmFuZF90aHJlYWRfc3RhdGUgKnN0YXRlID0KKyAgICAgIENSWVBU
T19nZXRfdGhyZWFkX2xvY2FsKE9QRU5TU0xfVEhSRUFEX0xPQ0FMX1JBTkQpOwogCiAgIGlmIChz
dGF0ZSA9PSBOVUxMKSB7Ci0gICAgLy8gSWYgdGhlIHN5c3RlbSBpcyBvdXQgb2YgbWVtb3J5LCB1
c2UgYW4gZXBoZW1lcmFsIHN0YXRlIG9uIHRoZQotICAgIC8vIHN0YWNrLgotICAgIHN0YXRlID0g
JnN0YWNrX3N0YXRlOwotICAgIHJhbmRfc3RhdGVfaW5pdChzdGF0ZSk7CisgICAgc3RhdGUgPSBP
UEVOU1NMX21hbGxvYyhzaXplb2Yoc3RydWN0IHJhbmRfdGhyZWFkX3N0YXRlKSk7CisgICAgaWYg
KHN0YXRlID09IE5VTEwgfHwKKyAgICAgICAgIUNSWVBUT19zZXRfdGhyZWFkX2xvY2FsKE9QRU5T
U0xfVEhSRUFEX0xPQ0FMX1JBTkQsIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmFuZF90aHJlYWRfc3RhdGVfZnJlZSkpIHsKKyAgICAgIC8vIElmIHRoZSBzeXN0ZW0g
aXMgb3V0IG9mIG1lbW9yeSwgdXNlIGFuIGVwaGVtZXJhbCBzdGF0ZSBvbiB0aGUKKyAgICAgIC8v
IHN0YWNrLgorICAgICAgc3RhdGUgPSAmc3RhY2tfc3RhdGU7CisgICAgfQorCisgICAgc3RhdGUt
Pmxhc3RfYmxvY2tfdmFsaWQgPSAwOworICAgIHVpbnQ4X3Qgc2VlZFtDVFJfRFJCR19FTlRST1BZ
X0xFTl07CisgICAgcmFuZF9nZXRfc2VlZChzdGF0ZSwgc2VlZCk7CisgICAgaWYgKCFDVFJfRFJC
R19pbml0KCZzdGF0ZS0+ZHJiZywgc2VlZCwgTlVMTCwgMCkpIHsKKyAgICAgIGFib3J0KCk7Cisg
ICAgfQorICAgIHN0YXRlLT5jYWxscyA9IDA7CisKKyNpZiBkZWZpbmVkKEJPUklOR1NTTF9GSVBT
KQorICAgIGlmIChzdGF0ZSAhPSAmc3RhY2tfc3RhdGUpIHsKKyAgICAgIENSWVBUT19TVEFUSUNf
TVVURVhfbG9ja193cml0ZSh0aHJlYWRfc3RhdGVzX2xpc3RfbG9ja19ic3NfZ2V0KCkpOworICAg
ICAgc3RydWN0IHJhbmRfdGhyZWFkX3N0YXRlICoqc3RhdGVzX2xpc3QgPSB0aHJlYWRfc3RhdGVz
X2xpc3RfYnNzX2dldCgpOworICAgICAgc3RhdGUtPm5leHQgPSAqc3RhdGVzX2xpc3Q7CisgICAg
ICBpZiAoc3RhdGUtPm5leHQgIT0gTlVMTCkgeworICAgICAgICBzdGF0ZS0+bmV4dC0+cHJldiA9
IHN0YXRlOworICAgICAgfQorICAgICAgc3RhdGUtPnByZXYgPSBOVUxMOworICAgICAgKnN0YXRl
c19saXN0ID0gc3RhdGU7CisgICAgICBDUllQVE9fU1RBVElDX01VVEVYX3VubG9ja193cml0ZSh0
aHJlYWRfc3RhdGVzX2xpc3RfbG9ja19ic3NfZ2V0KCkpOworICAgIH0KKyNlbmRpZgogICB9CiAK
ICAgaWYgKHN0YXRlLT5jYWxscyA+PSBrUmVzZWVkSW50ZXJ2YWwpIHsKQEAgLTMyMCwxMyArMjkz
LDEzIEBAIHZvaWQgUkFORF9ieXRlc193aXRoX2FkZGl0aW9uYWxfZGF0YSh1aW50OF90ICpvdXQs
IHNpemVfdCBvdXRfbGVuLAogI2lmIGRlZmluZWQoQk9SSU5HU1NMX0ZJUFMpCiAgICAgLy8gVGFr
ZSBhIHJlYWQgbG9jayBhcm91bmQgYWNjZXNzZXMgdG8gfHN0YXRlLT5kcmJnfC4gVGhpcyBpcyBu
ZWVkZWQgdG8KICAgICAvLyBhdm9pZCByZXR1cm5pbmcgYmFkIGVudHJvcHkgaWYgd2UgcmFjZSB3
aXRoCi0gICAgLy8gfHJhbmRfc3RhdGVfY2xlYXJfYWxsfC4KKyAgICAvLyB8cmFuZF90aHJlYWRf
c3RhdGVfY2xlYXJfYWxsfC4KICAgICAvLwogICAgIC8vIFRoaXMgbG9jayBtdXN0IGJlIHRha2Vu
IGFmdGVyIGFueSBjYWxscyB0byB8Q1JZUFRPX3N5c3JhbmR8IHRvIGF2b2lkIGEKICAgICAvLyBi
dWcgb24gcHBjNjRsZS4gZ2xpYmMgbWF5IGltcGxlbWVudCBwdGhyZWFkIGxvY2tzIGJ5IHdyYXBw
aW5nIHVzZXIgY29kZQogICAgIC8vIGluIGEgaGFyZHdhcmUgdHJhbnNhY3Rpb24sIGJ1dCwgb24g
c29tZSBvbGRlciB2ZXJzaW9ucyBvZiBnbGliYyBhbmQgdGhlCiAgICAgLy8ga2VybmVsLCBzeXNj
YWxscyBtYWRlIHdpdGggfHN5c2NhbGx8IGRpZCBub3QgYWJvcnQgdGhlIHRyYW5zYWN0aW9uLgot
ICAgIENSWVBUT19TVEFUSUNfTVVURVhfbG9ja19yZWFkKHJhbmRfZHJiZ19sb2NrX2Jzc19nZXQo
KSk7CisgICAgQ1JZUFRPX1NUQVRJQ19NVVRFWF9sb2NrX3JlYWQodGhyZWFkX3N0YXRlc19saXN0
X2xvY2tfYnNzX2dldCgpKTsKICNlbmRpZgogICAgIGlmICghQ1RSX0RSQkdfcmVzZWVkKCZzdGF0
ZS0+ZHJiZywgc2VlZCwgTlVMTCwgMCkpIHsKICAgICAgIGFib3J0KCk7CkBAIC0zMzQsNyArMzA3
LDcgQEAgdm9pZCBSQU5EX2J5dGVzX3dpdGhfYWRkaXRpb25hbF9kYXRhKHVpbnQ4X3QgKm91dCwg
c2l6ZV90IG91dF9sZW4sCiAgICAgc3RhdGUtPmNhbGxzID0gMDsKICAgfSBlbHNlIHsKICNpZiBk
ZWZpbmVkKEJPUklOR1NTTF9GSVBTKQotICAgIENSWVBUT19TVEFUSUNfTVVURVhfbG9ja19yZWFk
KHJhbmRfZHJiZ19sb2NrX2Jzc19nZXQoKSk7CisgICAgQ1JZUFRPX1NUQVRJQ19NVVRFWF9sb2Nr
X3JlYWQodGhyZWFkX3N0YXRlc19saXN0X2xvY2tfYnNzX2dldCgpKTsKICNlbmRpZgogICB9CiAK
QEAgLTM2MywxMiArMzM2LDggQEAgdm9pZCBSQU5EX2J5dGVzX3dpdGhfYWRkaXRpb25hbF9kYXRh
KHVpbnQ4X3QgKm91dCwgc2l6ZV90IG91dF9sZW4sCiAgIH0KIAogI2lmIGRlZmluZWQoQk9SSU5H
U1NMX0ZJUFMpCi0gIENSWVBUT19TVEFUSUNfTVVURVhfdW5sb2NrX3JlYWQocmFuZF9kcmJnX2xv
Y2tfYnNzX2dldCgpKTsKKyAgQ1JZUFRPX1NUQVRJQ19NVVRFWF91bmxvY2tfcmVhZCh0aHJlYWRf
c3RhdGVzX2xpc3RfbG9ja19ic3NfZ2V0KCkpOwogI2VuZGlmCi0KLSAgaWYgKHN0YXRlICE9ICZz
dGFja19zdGF0ZSkgewotICAgIHJhbmRfc3RhdGVfcHV0KHN0YXRlKTsKLSAgfQogfQogCiBpbnQg
UkFORF9ieXRlcyh1aW50OF90ICpvdXQsIHNpemVfdCBvdXRfbGVuKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvcmFuZC91cmFuZG9tLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvcmFuZC91cmFuZG9tLmMKaW5kZXggZDk2OTY3NWVlZDA4NGZiY2Y1NTg1Yjk0ZWVhODg0OThh
ZDIyNzFjNi4uZjYzODU3ZjgyNzJkM2VjOWRkOTZjZWEwNTQwNTUxOWZhMmQ5N2YwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JhbmQvdXJhbmRvbS5jCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vZmlwc21vZHVsZS9yYW5kL3VyYW5kb20uYwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBz
c2l6ZV90IGJvcmluZ3NzbF9nZXRyYW5kb20odm9pZCAqYnVmLCBzaXplX3QgYnVmX2xlbiwgdW5z
aWduZWQgZmxhZ3MpIHsKICNlbmRpZiAgLy8gT1BFTlNTTF9MSU5VWAogCiAvLyByYW5kX2xvY2sg
aXMgdXNlZCB0byBwcm90ZWN0IHRoZSB8Kl9yZXF1ZXN0ZWR8IHZhcmlhYmxlcy4KLURFRklORV9T
VEFUSUNfTVVURVgocmFuZF9sb2NrKTsKK0RFRklORV9TVEFUSUNfTVVURVgocmFuZF9sb2NrKQog
CiAvLyBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyBhcmUgbWFnaWMgdmFsdWVzIG9mIHx1cmFuZG9t
X2ZkfC4KIHN0YXRpYyBjb25zdCBpbnQga1Vuc2V0ID0gMDsKQEAgLTEyOCwxMiArMTI4LDEyIEBA
IHN0YXRpYyBjb25zdCBpbnQga0hhdmVHZXRyYW5kb20gPSAtMzsKIAogLy8gdXJhbmRvbV9mZF9y
ZXF1ZXN0ZWQgaXMgc2V0IGJ5IHxSQU5EX3NldF91cmFuZG9tX2ZkfC4gSXQncyBwcm90ZWN0ZWQg
YnkKIC8vIHxyYW5kX2xvY2t8LgotREVGSU5FX0JTU19HRVQoaW50LCB1cmFuZG9tX2ZkX3JlcXVl
c3RlZCk7CitERUZJTkVfQlNTX0dFVChpbnQsIHVyYW5kb21fZmRfcmVxdWVzdGVkKQogCiAvLyB1
cmFuZG9tX2ZkIGlzIGEgZmlsZSBkZXNjcmlwdG9yIHRvIC9kZXYvdXJhbmRvbS4gSXQncyBwcm90
ZWN0ZWQgYnkgfG9uY2V8LgotREVGSU5FX0JTU19HRVQoaW50LCB1cmFuZG9tX2ZkKTsKK0RFRklO
RV9CU1NfR0VUKGludCwgdXJhbmRvbV9mZCkKIAotREVGSU5FX1NUQVRJQ19PTkNFKHJhbmRfb25j
ZSk7CitERUZJTkVfU1RBVElDX09OQ0UocmFuZF9vbmNlKQogCiAvLyBpbml0X29uY2UgaW5pdGlh
bGl6ZXMgdGhlIHN0YXRlIG9mIHRoaXMgbW9kdWxlIHRvIHZhbHVlcyBwcmV2aW91c2x5CiAvLyBy
ZXF1ZXN0ZWQuIFRoaXMgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyB8dXJhbmRv
bV9mZHwgYW5kCkBAIC0xODMsNiArMTgzLDEyIEBAIHN0YXRpYyB2b2lkIGluaXRfb25jZSh2b2lk
KSB7CiAgIH0KICNlbmRpZiAgLy8gVVNFX05SX2dldHJhbmRvbQogCisgIC8vIEFuZHJvaWQgRklQ
UyBidWlsZHMgbXVzdCBzdXBwb3J0IGdldHJhbmRvbS4KKyNpZiBkZWZpbmVkKEJPUklOR1NTTF9G
SVBTKSAmJiBkZWZpbmVkKE9QRU5TU0xfQU5EUk9JRCkKKyAgcGVycm9yKCJnZXRyYW5kb20gbm90
IGZvdW5kIik7CisgIGFib3J0KCk7CisjZW5kaWYKKwogICBpZiAoZmQgPT0ga1Vuc2V0KSB7CiAg
ICAgZG8gewogICAgICAgZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvcnNhL3BhZGRpbmcuYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8v
Zmlwc21vZHVsZS9yc2EvcGFkZGluZy5jCmluZGV4IGI3OTk4ZmUzYzFkZDgxMGExNjc2ZThjN2M2
ZTUwNzRmNWYwNmIxYTMuLjI4ZjFiNDViNDZlNWYxMmIyYmEzNzc2NDEwYTE2YzlmNGE3NmM3YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcGFkZGluZy5jCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcGFkZGluZy5jCkBAIC0yMzMsNiArMjMzLDkgQEAgaW50
IFJTQV9wYWRkaW5nX2NoZWNrX1BLQ1MxX3R5cGVfMih1aW50OF90ICpvdXQsIHNpemVfdCAqb3V0
X2xlbiwKICAgLy8gaW1wb3NzaWJsZSB0byBjb21wbGV0ZWx5IGF2b2lkIEJsZWljaGVuYmFjaGVy
J3MgYXR0YWNrLiBDb25zdW1lcnMgc2hvdWxkCiAgIC8vIHVzZSB8UlNBX1BBRERJTkdfTk9ORXwg
YW5kIHBlcmZvcm0gdGhlIHBhZGRpbmcgY2hlY2sgaW4gY29uc3RhbnQtdGltZQogICAvLyBjb21i
aW5lZCB3aXRoIGEgc3dhcCB0byBhIHJhbmRvbSBzZXNzaW9uIGtleSBvciBvdGhlciBtaXRpZ2F0
aW9uLgorICBDT05TVFRJTUVfREVDTEFTU0lGWSgmdmFsaWRfaW5kZXgsIHNpemVvZih2YWxpZF9p
bmRleCkpOworICBDT05TVFRJTUVfREVDTEFTU0lGWSgmemVyb19pbmRleCwgc2l6ZW9mKHplcm9f
aW5kZXgpKTsKKwogICBpZiAoIXZhbGlkX2luZGV4KSB7CiAgICAgT1BFTlNTTF9QVVRfRVJST1Io
UlNBLCBSU0FfUl9QS0NTX0RFQ09ESU5HX0VSUk9SKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcnNhLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvcnNhL3JzYS5jCmluZGV4IGVmYjJmOWI2YWIzYTNmZTEyZTBiYTM1ZDhlNjVmMTQyNTkxNDAy
NmUuLjcyNGRlNjllZmRjYmM5ZDVmYTJkMDU3OWMwMzhlNjIxZDY3OTZmMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcnNhLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL3JzYS9yc2EuYwpAQCAtODAsNyArODAsNyBAQAogLy8gQ3J5cHRvZ3JhcGh5LmlvIGRlcGVu
ZHMgb24gdGhpcyBlcnJvciBjb2RlLgogT1BFTlNTTF9ERUNMQVJFX0VSUk9SX1JFQVNPTihSU0Es
IEJMT0NLX1RZUEVfSVNfTk9UXzAyKQogCi1ERUZJTkVfU1RBVElDX0VYX0RBVEFfQ0xBU1MoZ19y
c2FfZXhfZGF0YV9jbGFzcyk7CitERUZJTkVfU1RBVElDX0VYX0RBVEFfQ0xBU1MoZ19yc2FfZXhf
ZGF0YV9jbGFzcykKIAogUlNBICpSU0FfbmV3KHZvaWQpIHsgcmV0dXJuIFJTQV9uZXdfbWV0aG9k
KE5VTEwpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcnNhX2lt
cGwuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcnNhX2ltcGwuYwppbmRleCA4OTU0MDhk
ZmVjNTM5NDBlZGRiNmQ1MGQ3ODlhOTcwZjZmZjhkYzRmLi5hYjJhYmU5YmNhNTk5ZGU0M2E4NjA3
MDlhY2FmYzNhZTM5MWM5MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvcnNh
L3JzYV9pbXBsLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JzYS9yc2FfaW1wbC5jCkBA
IC0xMjAsNiArMTIwLDggQEAgc3RhdGljIGludCBlbnN1cmVfZml4ZWRfY29weShCSUdOVU0gKipv
dXQsIGNvbnN0IEJJR05VTSAqaW4sIGludCB3aWR0aCkgewogICAgIHJldHVybiAwOwogICB9CiAg
ICpvdXQgPSBjb3B5OworICBDT05TVFRJTUVfU0VDUkVUKGNvcHktPmQsIHNpemVvZihCTl9VTE9O
RykgKiB3aWR0aCk7CisKICAgcmV0dXJuIDE7CiB9CiAKQEAgLTE2Niw2ICsxNjgsMTEgQEAgc3Rh
dGljIGludCBmcmVlemVfcHJpdmF0ZV9rZXkoUlNBICpyc2EsIEJOX0NUWCAqY3R4KSB7CiAgIH0K
IAogICBpZiAocnNhLT5wICE9IE5VTEwgJiYgcnNhLT5xICE9IE5VTEwpIHsKKyAgICAvLyBUT0RP
OiBwIGFuZCBxIGFyZSBhbHNvIENPTlNUVElNRV9TRUNSRVQgYnV0IG5vdCB5ZXQgbWFya2VkIGFz
IHN1Y2gKKyAgICAvLyBiZWNhdXNlIHRoZSBNb250Z29tZXJ5IGNvZGUgZG9lcyB0aGluZ3MgbGlr
ZSB0ZXN0IHdoZXRoZXIgb3Igbm90IHZhbHVlcworICAgIC8vIGFyZSB6ZXJvLiBTbyB0aGUgc2Vj
cmV0IG1hcmtpbmcgcHJvYmFibHkgbmVlZHMgdG8gaGFwcGVuIGluc2lkZSB0aGF0CisgICAgLy8g
Y29kZS4KKwogICAgIGlmIChyc2EtPm1vbnRfcCA9PSBOVUxMKSB7CiAgICAgICByc2EtPm1vbnRf
cCA9IEJOX01PTlRfQ1RYX25ld19jb25zdHRpbWUocnNhLT5wLCBjdHgpOwogICAgICAgaWYgKHJz
YS0+bW9udF9wID09IE5VTEwpIHsKQEAgLTIyNCw2ICsyMzEsOSBAQCBzdGF0aWMgaW50IGZyZWV6
ZV9wcml2YXRlX2tleShSU0EgKnJzYSwgQk5fQ1RYICpjdHgpIHsKICAgICAgICAgICBnb3RvIGVy
cjsKICAgICAgICAgfQogICAgICAgICByc2EtPmludl9zbWFsbF9tb2RfbGFyZ2VfbW9udCA9IGlu
dl9zbWFsbF9tb2RfbGFyZ2VfbW9udDsKKyAgICAgICAgQ09OU1RUSU1FX1NFQ1JFVCgKKyAgICAg
ICAgICAgIHJzYS0+aW52X3NtYWxsX21vZF9sYXJnZV9tb250LT5kLAorICAgICAgICAgICAgc2l6
ZW9mKEJOX1VMT05HKSAqIHJzYS0+aW52X3NtYWxsX21vZF9sYXJnZV9tb250LT53aWR0aCk7CiAg
ICAgICB9CiAgICAgfQogICB9CkBAIC00ODAsNiArNDkwLDcgQEAgaW50IHJzYV9kZWZhdWx0X3Np
Z25fcmF3KFJTQSAqcnNhLCBzaXplX3QgKm91dF9sZW4sIHVpbnQ4X3QgKm91dCwKICAgICBnb3Rv
IGVycjsKICAgfQogCisgIENPTlNUVElNRV9ERUNMQVNTSUZZKG91dCwgcnNhX3NpemUpOwogICAq
b3V0X2xlbiA9IHJzYV9zaXplOwogICByZXQgPSAxOwogCkBAIC01MzksOCArNTUwLDExIEBAIGlu
dCByc2FfZGVmYXVsdF9kZWNyeXB0KFJTQSAqcnNhLCBzaXplX3QgKm91dF9sZW4sIHVpbnQ4X3Qg
Km91dCwgc2l6ZV90IG1heF9vdXQsCiAgICAgICBnb3RvIGVycjsKICAgfQogCisgIENPTlNUVElN
RV9ERUNMQVNTSUZZKCZyZXQsIHNpemVvZihyZXQpKTsKICAgaWYgKCFyZXQpIHsKICAgICBPUEVO
U1NMX1BVVF9FUlJPUihSU0EsIFJTQV9SX1BBRERJTkdfQ0hFQ0tfRkFJTEVEKTsKKyAgfSBlbHNl
IHsKKyAgICBDT05TVFRJTUVfREVDTEFTU0lGWShvdXQsICpvdXRfbGVuKTsKICAgfQogCiBlcnI6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2VsZl9jaGVjay9zZWxmX2NoZWNr
LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2VsZl9jaGVjay9zZWxmX2NoZWNrLmMKaW5kZXgg
MWJiZWZhOThkOGE5MTNjNDI2NThiMGExYmEzMTFmMzUyZWI1MDk0MS4uM2Q0N2U2OWVlOThkOTJj
NmJmZTdlMDBmNmRhMThlODgwN2E4Mzk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL3NlbGZfY2hlY2svc2VsZl9jaGVjay5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9z
ZWxmX2NoZWNrL3NlbGZfY2hlY2suYwpAQCAtMzUsNiArMzUsMTUgQEAKIC8vIGNvbXBpbGUgdGhp
cy4KICNpZiAhZGVmaW5lZChfTVNDX1ZFUikKIAorI2lmIGRlZmluZWQoQk9SSU5HU1NMX0ZJUFMp
ICYmIGRlZmluZWQoT1BFTlNTTF9BTkRST0lEKQorLy8gRklQUyBidWlsZHMgb24gQW5kcm9pZCB3
aWxsIGF0dGVtcHQgdG8gd3JpdGUgZmxhZyBmaWxlcyB0bworLy8gL2Rldi9ib3Jpbmdzc2wvc2Vs
ZnRlc3QvIG5hbWVkIGFmdGVyIHRoZSBtb2R1bGUgaGFzaC4gSWYgdGhlIGZsYWcgZmlsZQorLy8g
ZXhpc3RzLCBpdCdzIGFzc3VtZWQgdGhhdCBzZWxmLXRlc3RzIGhhdmUgYWxyZWFkeSBwYXNzZWQg
YW5kIHRodXMgZG8gbm90IG5lZWQKKy8vIHRvIGJlIHJlcGVhdGVkLgorI2RlZmluZSBCT1JJTkdT
U0xfRklQU19TRUxGX1RFU1RfRkxBR19GSUxFCitzdGF0aWMgY29uc3QgY2hhciBrRmxhZ1ByZWZp
eFtdID0gIi9kZXYvYm9yaW5nc3NsL3NlbGZ0ZXN0LyI7CisjZW5kaWYKKwogc3RhdGljIHZvaWQg
aGV4ZHVtcChjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGxlbikgewogICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgZnByaW50ZihzdGRlcnIsICIlMDJ4IiwgaW5baV0p
OwpAQCAtMjI3LDcgKzIzNiwzMCBAQCBzdGF0aWMgRUNfS0VZICpzZWxmX3Rlc3RfZWNkc2Ffa2V5
KHZvaWQpIHsKICAgcmV0dXJuIGVjX2tleTsKIH0KIAotaW50IEJPUklOR1NTTF9zZWxmX3Rlc3Qo
dm9pZCkgeworaW50IEJPUklOR1NTTF9zZWxmX3Rlc3QoCisgICAgY29uc3QgdWludDhfdCBtb2R1
bGVfc2hhNTEyX2hhc2hbU0hBNTEyX0RJR0VTVF9MRU5HVEhdKSB7CisjaWYgZGVmaW5lZChCT1JJ
TkdTU0xfRklQU19TRUxGX1RFU1RfRkxBR19GSUxFKQorICAvLyBUZXN0IHdoZXRoZXIgdGhlIGZs
YWcgZmlsZSBleGlzdHMuCisgIGNoYXIgZmxhZ19wYXRoW3NpemVvZihrRmxhZ1ByZWZpeCkgKyAy
KlNIQTUxMl9ESUdFU1RfTEVOR1RIXTsKKyAgbWVtY3B5KGZsYWdfcGF0aCwga0ZsYWdQcmVmaXgs
IHNpemVvZihrRmxhZ1ByZWZpeCkgLSAxKTsKKyAgc3RhdGljIGNvbnN0IGNoYXIga0hleFRhYmxl
WzE3XSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKKyAgdWludDhfdCBtb2R1bGVfaGFzaF9zdW0gPSAw
OworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFNIQTUxMl9ESUdFU1RfTEVOR1RIOyBpKyspIHsK
KyAgICBtb2R1bGVfaGFzaF9zdW0gfD0gbW9kdWxlX3NoYTUxMl9oYXNoW2ldOworICAgIGZsYWdf
cGF0aFtzaXplb2Yoa0ZsYWdQcmVmaXgpIC0gMSArIDIgKiBpXSA9CisgICAgICAgIGtIZXhUYWJs
ZVttb2R1bGVfc2hhNTEyX2hhc2hbaV0gPj4gNF07CisgICAgZmxhZ19wYXRoW3NpemVvZihrRmxh
Z1ByZWZpeCkgLSAxICsgMiAqIGkgKyAxXSA9CisgICAgICAgIGtIZXhUYWJsZVttb2R1bGVfc2hh
NTEyX2hhc2hbaV0gJiAxNV07CisgIH0KKyAgZmxhZ19wYXRoW3NpemVvZihmbGFnX3BhdGgpIC0g
MV0gPSAwOworCisgIGNvbnN0IGludCBmbGFnX3BhdGhfdmFsaWQgPSAobW9kdWxlX2hhc2hfc3Vt
ICE9IDApOworICBpZiAoZmxhZ19wYXRoX3ZhbGlkICYmIGFjY2VzcyhmbGFnX3BhdGgsIEZfT0sp
ID09IDApIHsKKyAgICAvLyBGbGFnIGZpbGUgZm91bmQuIFNraXAgc2VsZi10ZXN0cy4KKyAgICBy
ZXR1cm4gMTsKKyAgfQorI2VuZGlmIC8vIEJPUklOR1NTTF9GSVBTX1NFTEZfVEVTVF9GTEFHX0ZJ
TEUKKwogICBzdGF0aWMgY29uc3QgdWludDhfdCBrQUVTS2V5WzE2XSA9ICJCb3JpbmdDcnlwdG8g
S2V5IjsKICAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0FFU0lWWzE2XSA9IHswfTsKICAgc3RhdGlj
IGNvbnN0IHVpbnQ4X3Qga1BsYWludGV4dFs2NF0gPQpAQCAtNTc3LDYgKzYwOSwxNiBAQCBpbnQg
Qk9SSU5HU1NMX3NlbGZfdGVzdCh2b2lkKSB7CiAKICAgcmV0ID0gMTsKIAorI2lmIGRlZmluZWQo
Qk9SSU5HU1NMX0ZJUFNfU0VMRl9URVNUX0ZMQUdfRklMRSkKKyAgLy8gVGVzdHMgd2VyZSBzdWNj
ZXNzZnVsLiBXcml0ZSBmbGFnIGZpbGUgaWYgcmVxdWVzdGVkLgorICBpZiAoZmxhZ19wYXRoX3Zh
bGlkKSB7CisgICAgY29uc3QgaW50IGZkID0gb3BlbihmbGFnX3BhdGgsIE9fV1JPTkxZIHwgT19D
UkVBVCB8IE9fVFJVTkMsIDA2NDQpOworICAgIGlmIChmZCA+PSAwKSB7CisgICAgICBjbG9zZShm
ZCk7CisgICAgfQorICB9CisjZW5kaWYgIC8vIEJPUklOR1NTTF9GSVBTX1NFTEZfVEVTVF9GTEFH
X0ZJTEUKKwogZXJyOgogICBFVlBfQUVBRF9DVFhfY2xlYW51cCgmYWVhZF9jdHgpOwogICBSU0Ff
ZnJlZShyc2Ffa2V5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvYXNt
L3NoYTEtNTg2LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9hc20vc2hhMS01ODYucGwK
aW5kZXggODdmZDM2MWEzMjc5ZTEwNGIxODJhYmE4NTc0MmUxZmNlNjE4MGFhZC4uYmY0Mjk2MTQ2
ODQxMzRjY2FmMWI3NzcxYWQ5NTQyOTg3ODhiYTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL3NoYS9hc20vc2hhMS01ODYucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxl
L3NoYS9hc20vc2hhMS01ODYucGwKQEAgLTE0ODMsNCArMTQ4Myw0IEBAIHN1YiBYdGFpbF9hdngo
KQogCiAmYXNtX2ZpbmlzaCgpOwogCi1jbG9zZSBTVERPVVQ7CitjbG9zZSBTVERPVVQgb3IgZGll
ICJlcnJvciBjbG9zaW5nIFNURE9VVCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1
bGUvc2hhL2FzbS9zaGExLWFybXY0LWxhcmdlLnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3No
YS9hc20vc2hhMS1hcm12NC1sYXJnZS5wbAppbmRleCAyNzE4N2RkNjA1ZmU3ZmE2MTQzZWQ2NDAx
ZGJjNTYwMWUxNjk4ZDRjLi5jYTgyNTE0NmZhNmNiN2RkMTlhMmFkMmY2ODIzM2YxNDFkZTgwYmRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGExLWFybXY0LWxh
cmdlLnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvYXNtL3NoYTEtYXJtdjQtbGFy
Z2UucGwKQEAgLTc0MCw0ICs3NDAsNCBAQCBmb3JlYWNoIChzcGxpdCgkLywkY29kZSkpIHsKIAlw
cmludCAkXywkLzsKIH0KIAotY2xvc2UgU1RET1VUOyAjIGVuZm9yY2UgZmx1c2gKK2Nsb3NlIFNU
RE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsgIyBlbmZvcmNlIGZsdXNoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGExLWFybXY4LnBsIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9maXBzbW9kdWxlL3NoYS9hc20vc2hhMS1hcm12OC5wbAppbmRleCA3Yzg4ODBmYjJl
YTc1MjRhZDk0ZmFlMjYyNTY1NGI2ZmMxOTk1NGM1Li41OWQ1NWIzYzBjNGRmMmQ4OTY2ZGZhZmQ3
MDZkMmM0YjUwMTUwZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2Fz
bS9zaGExLWFybXY4LnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvYXNtL3NoYTEt
YXJtdjgucGwKQEAgLTE4MCw5ICsxODAsMTIgQEAgJGNvZGUuPTw8X19fOwogLnR5cGUJc2hhMV9i
bG9ja19kYXRhX29yZGVyLCVmdW5jdGlvbgogLmFsaWduCTYKIHNoYTFfYmxvY2tfZGF0YV9vcmRl
cjoKKyNpZiBfX2hhc19mZWF0dXJlKGh3YWRkcmVzc19zYW5pdGl6ZXIpICYmIF9fY2xhbmdfbWFq
b3JfXyA+PSAxMAorCWFkcnAJeDE2LDpwZ19oaTIxX25jOk9QRU5TU0xfYXJtY2FwX1AKKyNlbHNl
CiAJYWRycAl4MTYsOnBnX2hpMjE6T1BFTlNTTF9hcm1jYXBfUAotCWFkZAl4MTYseDE2LDpsbzEy
Ok9QRU5TU0xfYXJtY2FwX1AKLQlsZHIJdzE2LFt4MTZdCisjZW5kaWYKKwlsZHIJdzE2LFt4MTYs
OmxvMTI6T1BFTlNTTF9hcm1jYXBfUF0KIAl0c3QJdzE2LCNBUk1WOF9TSEExCiAJYi5uZQkuTHY4
X2VudHJ5CiAKQEAgLTM1Myw0ICszNTYsNCBAQCBmb3JlYWNoKHNwbGl0KCJcbiIsJGNvZGUpKSB7
CiAJcHJpbnQgJF8sIlxuIjsKIH0KIAotY2xvc2UgU1RET1VUOworY2xvc2UgU1RET1VUIG9yIGRp
ZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL3NoYS9hc20vc2hhMS14ODZfNjQucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2Fz
bS9zaGExLXg4Nl82NC5wbAppbmRleCBmZDRmZjJhYzQ2NGYzOTBlNmNlYTgwYjUzMjUzMjYyZDZj
MGJkNDYwLi5kZjdjYmMzMDk5Y2NhZmY5NTNjY2IxNTkyOTZmOGEwNmMwNzFkMTdjIDEwMDc1NQot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGExLXg4Nl82NC5wbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGExLXg4Nl82NC5wbApAQCAtMjEyMiw0ICsy
MTIyLDQgQEAgZm9yZWFjaCAoc3BsaXQoIlxuIiwkY29kZSkpIHsKIAogCXByaW50ICRfLCJcbiI7
CiB9Ci1jbG9zZSBTVERPVVQ7CitjbG9zZSBTVERPVVQgb3IgZGllICJlcnJvciBjbG9zaW5nIFNU
RE9VVCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGEyNTYt
NTg2LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9hc20vc2hhMjU2LTU4Ni5wbAppbmRl
eCAxMjlhOWY0MjJjNmU4MjVhODhmOTdkZjRmY2UyMTFhZGY1MDU4MjgyLi4yNDBhNjA0YTBiMmQ5
ZDRiZjcyNTU4ZDczYjQ3ZWZhMWNmODBmOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvc2hhL2FzbS9zaGEyNTYtNTg2LnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9z
aGEvYXNtL3NoYTI1Ni01ODYucGwKQEAgLTEyODcsNCArMTI4Nyw0IEBAIHN1YiBib2R5eF8wMF8x
NSAoKSB7CQkJIyArMTAlCiAKICZhc21fZmluaXNoKCk7CiAKLWNsb3NlIFNURE9VVDsKK2Nsb3Nl
IFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vZmlwc21vZHVsZS9zaGEvYXNtL3NoYTI1Ni1hcm12NC5wbCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlw
c21vZHVsZS9zaGEvYXNtL3NoYTI1Ni1hcm12NC5wbAppbmRleCBlNWVjZGZkMTY5MTIyNDE5ZTQ3
MGU0MWRlOGY2MTk2NTAwMWRkYWMwLi4xNWQ3OGRlNmRjYTFkMzQ3N2U3YTg3MzY3MGM3YTYzZDMz
Yzk5MzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGEyNTYt
YXJtdjQucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9hc20vc2hhMjU2LWFybXY0
LnBsCkBAIC03MzUsNCArNzM1LDQgQEAgZm9yZWFjaCAoc3BsaXQoJC8sJGNvZGUpKSB7CiAJcHJp
bnQgJF8sIlxuIjsKIH0KIAotY2xvc2UgU1RET1VUOyAjIGVuZm9yY2UgZmx1c2gKK2Nsb3NlIFNU
RE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsgIyBlbmZvcmNlIGZsdXNoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGE1MTItNTg2LnBsIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9maXBzbW9kdWxlL3NoYS9hc20vc2hhNTEyLTU4Ni5wbAppbmRleCAyNWE1ZjI1NWMz
MTcxZWVhMjM2MGU4YWFlYTI4MzUxNjY4YjE4ZThlLi4wMWFjZjY3OTlmNWQ1NGJlNDE1YzdiYjNm
MmZiZDZmYjJlNGNkM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2Fz
bS9zaGE1MTItNTg2LnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvYXNtL3NoYTUx
Mi01ODYucGwKQEAgLTkyMiw0ICs5MjIsNCBAQCBzdWIgQk9EWV8wMF8xNV9zc3NlMyB7CQkjICJw
aGFzZS1sZXNzIiBjb3B5IG9mIEJPRFlfMDBfMTVfc3NlMgogCiAmYXNtX2ZpbmlzaCgpOwogCi1j
bG9zZSBTVERPVVQ7CitjbG9zZSBTVERPVVQgb3IgZGllICJlcnJvciBjbG9zaW5nIFNURE9VVCI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGE1MTItYXJtdjQu
cGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGE1MTItYXJtdjQucGwKaW5kZXgg
Y2MyNDdhNDQ2MzI3ZjQ0MjNlY2M0ZTAyNTM5ZDA1OWFhNjZmYmYyNC4uYzhjNzE1ZTUxN2RmNTdh
MzFhMDM5Y2M2MzJiYmIwNzRkYjAyYTE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9k
dWxlL3NoYS9hc20vc2hhNTEyLWFybXY0LnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9z
aGEvYXNtL3NoYTUxMi1hcm12NC5wbApAQCAtNjcwLDQgKzY3MCw0IEBAIHdoaWxlKDxTRUxGPikg
ewogY2xvc2UgU0VMRjsKIAogcHJpbnQgJGNvZGU7Ci1jbG9zZSBTVERPVVQ7ICMgZW5mb3JjZSBm
bHVzaAorY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQiOyAjIGVuZm9y
Y2UgZmx1c2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvYXNtL3NoYTUx
Mi1hcm12OC5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvYXNtL3NoYTUxMi1hcm12OC5w
bAppbmRleCAzZjY5MDcxZjY2MjJmMTM4ZDkyNTQ5YmU1MTY0YzM2YjliYTdlZTJjLi4yMDViMDZk
Y2JhMjRiMWI5ODk5YzE0MmRjOGMyMmEzNjVjMDgwOTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGE1MTItYXJtdjgucGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL3NoYS9hc20vc2hhNTEyLWFybXY4LnBsCkBAIC0xODUsOSArMTg1LDEyIEBAICRmdW5j
OgogX19fCiAkY29kZS49PDxfX18JaWYgKCRTWj09NCk7CiAjaWZuZGVmCV9fS0VSTkVMX18KKyNp
ZiBfX2hhc19mZWF0dXJlKGh3YWRkcmVzc19zYW5pdGl6ZXIpICYmIF9fY2xhbmdfbWFqb3JfXyA+
PSAxMAorCWFkcnAJeDE2LDpwZ19oaTIxX25jOk9QRU5TU0xfYXJtY2FwX1AKKyNlbHNlCiAJYWRy
cAl4MTYsOnBnX2hpMjE6T1BFTlNTTF9hcm1jYXBfUAotCWFkZAl4MTYseDE2LDpsbzEyOk9QRU5T
U0xfYXJtY2FwX1AKLQlsZHIJdzE2LFt4MTZdCisjZW5kaWYKKwlsZHIJdzE2LFt4MTYsOmxvMTI6
T1BFTlNTTF9hcm1jYXBfUF0KIAl0c3QJdzE2LCNBUk1WOF9TSEEyNTYKIAliLm5lCS5MdjhfZW50
cnkKICNlbmRpZgpAQCAtNDU3LDQgKzQ2MCw0IEBAIGZvcmVhY2goc3BsaXQoIlxuIiwkY29kZSkp
IHsKIAlwcmludCAkXywiXG4iOwogfQogCi1jbG9zZSBTVERPVVQ7CitjbG9zZSBTVERPVVQgb3Ig
ZGllICJlcnJvciBjbG9zaW5nIFNURE9VVCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNt
b2R1bGUvc2hhL2FzbS9zaGE1MTIteDg2XzY0LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3No
YS9hc20vc2hhNTEyLXg4Nl82NC5wbAppbmRleCA5ZDUzZWM0NzViMjQ1YjIzNjQxZDc2ZGM2OTM5
OTU3OTc0MDA4MmY0Li44YzVhNWYzMzE5YmNhYTIwYWUyMmQ4NTdlNzljNTk5MTIwZmQzMTVlIDEw
MDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL2FzbS9zaGE1MTIteDg2XzY0LnBs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvYXNtL3NoYTUxMi14ODZfNjQucGwKQEAg
LTEwOCw2ICsxMDgsOCBAQAogIwlwYXJ0LCBib2R5XzAwXzE1OyByZWR1Y2luZyB0aGUgYW1vdW50
IG9mIFNJTUQgaW5zdHJ1Y3Rpb25zCiAjCWJlbG93IGNlcnRhaW4gbGltaXQgbWFrZXMgbm8gZGlm
ZmVyZW5jZS9zZW5zZTsgdG8gY29uc2VydmUKICMJc3BhY2UgU0hBMjU2IFhPUCBjb2RlIHBhdGgg
aXMgdGhlcmVmb3JlIG9taXR0ZWQ7CisjCisjIE1vZGlmaWVkIGZyb20gdXBzdHJlYW0gT3BlblNT
TCB0byByZW1vdmUgdGhlIFhPUCBjb2RlLgogCiAkZmxhdm91ciA9IHNoaWZ0OwogJG91dHB1dCAg
PSBzaGlmdDsKQEAgLTI3NSwxMCArMjc3LDcgQEAgJGNvZGUuPTw8X19fIGlmICgkU1o9PTQgJiYg
JHNoYWV4dCk7CiAJdGVzdAlcJGAxPDwyOWAsJXIxMWQJCSMgY2hlY2sgZm9yIFNIQQogCWpueglf
c2hhZXh0X3Nob3J0Y3V0CiBfX18KLSRjb2RlLj08PF9fXyBpZiAoJGF2eCAmJiAkU1o9PTgpOwot
CXRlc3QJXCRgMTw8MTFgLCVyMTBkCQkjIGNoZWNrIGZvciBYT1AKLQlqbnoJLkx4b3Bfc2hvcnRj
dXQKLV9fXworICAgICMgWE9QIGNvZGVwYXRoIHJlbW92ZWQuCiAkY29kZS49PDxfX18gaWYgKCRh
dng+MSk7CiAJYW5kCVwkYDE8PDh8MTw8NXwxPDwzYCwlcjExZAkjIGNoZWNrIGZvciBCTUkyK0FW
WDIrQk1JMQogCWNtcAlcJGAxPDw4fDE8PDV8MTw8M2AsJXIxMWQKQEAgLTExMjcsMzk5ICsxMTI2
LDYgQEAgX19fCiAKIGlmICgkYXZ4KSB7ewogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBYT1AgY29kZSBwYXRo
Ci0jCi1pZiAoJFNaPT04KSB7CSMgU0hBNTEyIG9ubHkKLSRjb2RlLj08PF9fXzsKLS50eXBlCSR7
ZnVuY31feG9wLFxAZnVuY3Rpb24sMwotLmFsaWduCTY0Ci0ke2Z1bmN9X3hvcDoKLS5jZmlfc3Rh
cnRwcm9jCi0uTHhvcF9zaG9ydGN1dDoKLQltb3YJJXJzcCwlcmF4CQkjIGNvcHkgJXJzcAotLmNm
aV9kZWZfY2ZhX3JlZ2lzdGVyCSVyYXgKLQlwdXNoCSVyYngKLS5jZmlfcHVzaAklcmJ4Ci0JcHVz
aAklcmJwCi0uY2ZpX3B1c2gJJXJicAotCXB1c2gJJXIxMgotLmNmaV9wdXNoCSVyMTIKLQlwdXNo
CSVyMTMKLS5jZmlfcHVzaAklcjEzCi0JcHVzaAklcjE0Ci0uY2ZpX3B1c2gJJXIxNAotCXB1c2gJ
JXIxNQotLmNmaV9wdXNoCSVyMTUKLQlzaGwJXCQ0LCVyZHgJCSMgbnVtKjE2Ci0Jc3ViCVwkYCRm
cmFtZXN6KyR3aW42NCoxNiooJFNaPT00PzQ6NilgLCVyc3AKLQlsZWEJKCRpbnAsJXJkeCwkU1op
LCVyZHgJIyBpbnArbnVtKjE2KiRTWgotCWFuZAlcJC02NCwlcnNwCQkjIGFsaWduIHN0YWNrIGZy
YW1lCi0JbW92CSRjdHgsJF9jdHgJCSMgc2F2ZSBjdHgsIDFzdCBhcmcKLQltb3YJJGlucCwkX2lu
cAkJIyBzYXZlIGlucCwgMm5kIGFyaAotCW1vdgklcmR4LCRfZW5kCQkjIHNhdmUgZW5kIHBvaW50
ZXIsICIzcmQiIGFyZwotCW1vdgklcmF4LCRfcnNwCQkjIHNhdmUgY29weSBvZiAlcnNwCi0uY2Zp
X2NmYV9leHByZXNzaW9uCSRfcnNwLGRlcmVmLCs4Ci1fX18KLSRjb2RlLj08PF9fXyBpZiAoJHdp
bjY0KTsKLQltb3ZhcHMJJXhtbTYsMTYqJFNaKzMyKCVyc3ApCi0JbW92YXBzCSV4bW03LDE2KiRT
Wis0OCglcnNwKQotCW1vdmFwcwkleG1tOCwxNiokU1orNjQoJXJzcCkKLQltb3ZhcHMJJXhtbTks
MTYqJFNaKzgwKCVyc3ApCi1fX18KLSRjb2RlLj08PF9fXyBpZiAoJHdpbjY0ICYmICRTWj40KTsK
LQltb3ZhcHMJJXhtbTEwLDE2KiRTWis5NiglcnNwKQotCW1vdmFwcwkleG1tMTEsMTYqJFNaKzEx
MiglcnNwKQotX19fCi0kY29kZS49PDxfX187Ci0uTHByb2xvZ3VlX3hvcDoKLQotCXZ6ZXJvdXBw
ZXIKLQltb3YJJFNaKjAoJGN0eCksJEEKLQltb3YJJFNaKjEoJGN0eCksJEIKLQltb3YJJFNaKjIo
JGN0eCksJEMKLQltb3YJJFNaKjMoJGN0eCksJEQKLQltb3YJJFNaKjQoJGN0eCksJEUKLQltb3YJ
JFNaKjUoJGN0eCksJEYKLQltb3YJJFNaKjYoJGN0eCksJEcKLQltb3YJJFNaKjcoJGN0eCksJEgK
LQlqbXAJLkxsb29wX3hvcAotX19fCi0JCQkJCWlmICgkU1o9PTQpIHsJIyBTSEEyNTYKLSAgICBt
eSBAWCA9IG1hcCgiJXhtbSRfIiwoMC4uMykpOwotICAgIG15ICgkdDAsJHQxLCR0MiwkdDMpID0g
bWFwKCIleG1tJF8iLCg0Li43KSk7Ci0KLSRjb2RlLj08PF9fXzsKLS5hbGlnbgkxNgotLkxsb29w
X3hvcDoKLQl2bW92ZHFhCSRUQUJMRStgJFNaKjIqJHJvdW5kc2AoJXJpcCksJHQzCi0Jdm1vdmRx
dQkweDAwKCRpbnApLEBYWzBdCi0Jdm1vdmRxdQkweDEwKCRpbnApLEBYWzFdCi0Jdm1vdmRxdQkw
eDIwKCRpbnApLEBYWzJdCi0Jdm1vdmRxdQkweDMwKCRpbnApLEBYWzNdCi0JdnBzaHVmYgkkdDMs
QFhbMF0sQFhbMF0KLQlsZWEJJFRBQkxFKCVyaXApLCRUYmwKLQl2cHNodWZiCSR0MyxAWFsxXSxA
WFsxXQotCXZwc2h1ZmIJJHQzLEBYWzJdLEBYWzJdCi0JdnBhZGRkCTB4MDAoJFRibCksQFhbMF0s
JHQwCi0JdnBzaHVmYgkkdDMsQFhbM10sQFhbM10KLQl2cGFkZGQJMHgyMCgkVGJsKSxAWFsxXSwk
dDEKLQl2cGFkZGQJMHg0MCgkVGJsKSxAWFsyXSwkdDIKLQl2cGFkZGQJMHg2MCgkVGJsKSxAWFsz
XSwkdDMKLQl2bW92ZHFhCSR0MCwweDAwKCVyc3ApCi0JbW92CSRBLCRhMQotCXZtb3ZkcWEJJHQx
LDB4MTAoJXJzcCkKLQltb3YJJEIsJGEzCi0Jdm1vdmRxYQkkdDIsMHgyMCglcnNwKQotCXhvcgkk
QywkYTMJCQkjIG1hZ2ljCi0Jdm1vdmRxYQkkdDMsMHgzMCglcnNwKQotCW1vdgkkRSwkYTAKLQlq
bXAJLkx4b3BfMDBfNDcKLQotLmFsaWduCTE2Ci0uTHhvcF8wMF80NzoKLQlzdWIJXCRgLTE2KjIq
JFNaYCwkVGJsCSMgc2l6ZSBvcHRpbWl6YXRpb24KLV9fXwotc3ViIFhPUF8yNTZfMDBfNDcgKCkg
ewotbXkgJGogPSBzaGlmdDsKLW15ICRib2R5ID0gc2hpZnQ7Ci1teSBAWCA9IEBfOwotbXkgQGlu
c25zID0gKCYkYm9keSwmJGJvZHksJiRib2R5LCYkYm9keSk7CSMgMTA0IGluc3RydWN0aW9ucwot
Ci0JJnZwYWxpZ25yCSgkdDAsQFhbMV0sQFhbMF0sJFNaKTsJIyBYWzEuLjRdCi0JICBldmFsKHNo
aWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgJnZwYWxpZ25yCSgkdDMs
QFhbM10sQFhbMl0sJFNaKTsJIyBYWzkuLjEyXQotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkg
IGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JJnZwcm90ZAkJKCR0MSwkdDAsOCokU1otJHNpZ21hMFsx
XSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkm
dnBzcmxkCQkoJHQwLCR0MCwkc2lnbWEwWzJdKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0J
ICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAmdnBhZGRkCShAWFswXSxAWFswXSwkdDMpOwkjIFhb
MC4uM10gKz0gWFs5Li4xMl0KLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0
KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25z
KSk7Ci0JJnZwcm90ZAkJKCR0MiwkdDEsJHNpZ21hMFsxXS0kc2lnbWEwWzBdKTsKLQkgIGV2YWwo
c2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSZ2cHhvcgkJKCR0MCwk
dDAsJHQxKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykp
OwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICZ2
cHJvdGQJKCR0MyxAWFszXSw4KiRTWi0kc2lnbWExWzFdKTsKLQkgIGV2YWwoc2hpZnQoQGluc25z
KSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSZ2cHhvcgkJKCR0MCwkdDAsJHQyKTsJCSMg
c2lnbWEwKFhbMS4uNF0pCi0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChA
aW5zbnMpKTsKLQkgJnZwc3JsZAkoJHQyLEBYWzNdLCRzaWdtYTFbMl0pOwotCSAgZXZhbChzaGlm
dChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JJnZwYWRkZAkJKEBYWzBdLEBY
WzBdLCR0MCk7CSMgWFswLi4zXSArPSBzaWdtYTAoWFsxLi40XSkKLQkgIGV2YWwoc2hpZnQoQGlu
c25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAmdnByb3RkCSgkdDEsJHQzLCRzaWdt
YTFbMV0tJHNpZ21hMVswXSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlm
dChAaW5zbnMpKTsKLQkgJnZweG9yCQkoJHQzLCR0MywkdDIpOwotCSAgZXZhbChzaGlmdChAaW5z
bnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwot
CSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgJnZweG9yCQkoJHQzLCR0MywkdDEpOwkJIyBzaWdt
YTEoWFsxNC4uMTVdKQotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGlu
c25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsK
LQkmdnBzcmxkcQkoJHQzLCR0Myw4KTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFs
KHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQo
QGluc25zKSk7Ci0JJnZwYWRkZAkJKEBYWzBdLEBYWzBdLCR0Myk7CSMgWFswLi4xXSArPSBzaWdt
YTEoWFsxNC4uMTVdKQotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGlu
c25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsK
LQkgJnZwcm90ZAkoJHQzLEBYWzBdLDgqJFNaLSRzaWdtYTFbMV0pOwotCSAgZXZhbChzaGlmdChA
aW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICZ2cHNybGQJKCR0MixAWFswXSwk
c2lnbWExWzJdKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNu
cykpOwotCSAmdnByb3RkCSgkdDEsJHQzLCRzaWdtYTFbMV0tJHNpZ21hMVswXSk7Ci0JICBldmFs
KHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgJnZweG9yCQkoJHQz
LCR0MywkdDIpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25z
KSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkg
JnZweG9yCQkoJHQzLCR0MywkdDEpOwkJIyBzaWdtYTEoWFsxNi4uMTddKQotCSAgZXZhbChzaGlm
dChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNu
cykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkmdnBzbGxkcQkoJHQzLCR0Myw4KTsJCSMg
MjIgaW5zdHJ1Y3Rpb25zCi0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChA
aW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykp
OwotCSZ2cGFkZGQJCShAWFswXSxAWFswXSwkdDMpOwkjIFhbMi4uM10gKz0gc2lnbWExKFhbMTYu
LjE3XSkKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwot
CSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JJnZwYWRk
ZAkJKCR0MixAWFswXSwxNioyKiRqLiIoJFRibCkiKTsKLQkgIGZvcmVhY2ggKEBpbnNucykgeyBl
dmFsOyB9CQkjIHJlbWFpbmluZyBpbnN0cnVjdGlvbnMKLQkmdm1vdmRxYQkoMTYqJGouIiglcnNw
KSIsJHQyKTsKLX0KLQotICAgIGZvciAoJGk9MCwkaj0wOyAkajw0OyAkaisrKSB7Ci0JJlhPUF8y
NTZfMDBfNDcoJGosXCZib2R5XzAwXzE1LEBYKTsKLQlwdXNoKEBYLHNoaWZ0KEBYKSk7CQkJIyBy
b3RhdGUoQFgpCi0gICAgfQotCSZjbXBiCSgkU1otMSsxNioyKiRTWi4iKCRUYmwpIiwwKTsKLQkm
am5lCSgiLkx4b3BfMDBfNDciKTsKLQotICAgIGZvciAoJGk9MDsgJGk8MTY7ICkgewotCWZvcmVh
Y2goYm9keV8wMF8xNSgpKSB7IGV2YWw7IH0KLSAgICB9Ci0KLQkJCQkJfSBlbHNlIHsJIyBTSEE1
MTIKLSAgICBteSBAWCA9IG1hcCgiJXhtbSRfIiwoMC4uNykpOwotICAgIG15ICgkdDAsJHQxLCR0
MiwkdDMpID0gbWFwKCIleG1tJF8iLCg4Li4xMSkpOwotCi0kY29kZS49PDxfX187Ci0uYWxpZ24J
MTYKLS5MbG9vcF94b3A6Ci0Jdm1vdmRxYQkkVEFCTEUrYCRTWioyKiRyb3VuZHNgKCVyaXApLCR0
MwotCXZtb3ZkcXUJMHgwMCgkaW5wKSxAWFswXQotCWxlYQkkVEFCTEUrMHg4MCglcmlwKSwkVGJs
CSMgc2l6ZSBvcHRpbWl6YXRpb24KLQl2bW92ZHF1CTB4MTAoJGlucCksQFhbMV0KLQl2bW92ZHF1
CTB4MjAoJGlucCksQFhbMl0KLQl2cHNodWZiCSR0MyxAWFswXSxAWFswXQotCXZtb3ZkcXUJMHgz
MCgkaW5wKSxAWFszXQotCXZwc2h1ZmIJJHQzLEBYWzFdLEBYWzFdCi0Jdm1vdmRxdQkweDQwKCRp
bnApLEBYWzRdCi0JdnBzaHVmYgkkdDMsQFhbMl0sQFhbMl0KLQl2bW92ZHF1CTB4NTAoJGlucCks
QFhbNV0KLQl2cHNodWZiCSR0MyxAWFszXSxAWFszXQotCXZtb3ZkcXUJMHg2MCgkaW5wKSxAWFs2
XQotCXZwc2h1ZmIJJHQzLEBYWzRdLEBYWzRdCi0Jdm1vdmRxdQkweDcwKCRpbnApLEBYWzddCi0J
dnBzaHVmYgkkdDMsQFhbNV0sQFhbNV0KLQl2cGFkZHEJLTB4ODAoJFRibCksQFhbMF0sJHQwCi0J
dnBzaHVmYgkkdDMsQFhbNl0sQFhbNl0KLQl2cGFkZHEJLTB4NjAoJFRibCksQFhbMV0sJHQxCi0J
dnBzaHVmYgkkdDMsQFhbN10sQFhbN10KLQl2cGFkZHEJLTB4NDAoJFRibCksQFhbMl0sJHQyCi0J
dnBhZGRxCS0weDIwKCRUYmwpLEBYWzNdLCR0MwotCXZtb3ZkcWEJJHQwLDB4MDAoJXJzcCkKLQl2
cGFkZHEJMHgwMCgkVGJsKSxAWFs0XSwkdDAKLQl2bW92ZHFhCSR0MSwweDEwKCVyc3ApCi0JdnBh
ZGRxCTB4MjAoJFRibCksQFhbNV0sJHQxCi0Jdm1vdmRxYQkkdDIsMHgyMCglcnNwKQotCXZwYWRk
cQkweDQwKCRUYmwpLEBYWzZdLCR0MgotCXZtb3ZkcWEJJHQzLDB4MzAoJXJzcCkKLQl2cGFkZHEJ
MHg2MCgkVGJsKSxAWFs3XSwkdDMKLQl2bW92ZHFhCSR0MCwweDQwKCVyc3ApCi0JbW92CSRBLCRh
MQotCXZtb3ZkcWEJJHQxLDB4NTAoJXJzcCkKLQltb3YJJEIsJGEzCi0Jdm1vdmRxYQkkdDIsMHg2
MCglcnNwKQotCXhvcgkkQywkYTMJCQkjIG1hZ2ljCi0Jdm1vdmRxYQkkdDMsMHg3MCglcnNwKQot
CW1vdgkkRSwkYTAKLQlqbXAJLkx4b3BfMDBfNDcKLQotLmFsaWduCTE2Ci0uTHhvcF8wMF80NzoK
LQlhZGQJXCRgMTYqMiokU1pgLCRUYmwKLV9fXwotc3ViIFhPUF81MTJfMDBfNDcgKCkgewotbXkg
JGogPSBzaGlmdDsKLW15ICRib2R5ID0gc2hpZnQ7Ci1teSBAWCA9IEBfOwotbXkgQGluc25zID0g
KCYkYm9keSwmJGJvZHkpOwkJCSMgNTIgaW5zdHJ1Y3Rpb25zCi0KLQkmdnBhbGlnbnIJKCR0MCxA
WFsxXSxAWFswXSwkU1opOwkjIFhbMS4uMl0KLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBl
dmFsKHNoaWZ0KEBpbnNucykpOwotCSAmdnBhbGlnbnIJKCR0MyxAWFs1XSxAWFs0XSwkU1opOwkj
IFhbOS4uMTBdCi0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMp
KTsKLQkmdnByb3RxCQkoJHQxLCR0MCw4KiRTWi0kc2lnbWEwWzFdKTsKLQkgIGV2YWwoc2hpZnQo
QGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSZ2cHNybHEJCSgkdDAsJHQwLCRz
aWdtYTBbMl0pOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25z
KSk7Ci0JICZ2cGFkZHEJKEBYWzBdLEBYWzBdLCR0Myk7CSMgWFswLi4xXSArPSBYWzkuLjEwXQot
CSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFs
KHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkmdnByb3RxCQkoJHQy
LCR0MSwkc2lnbWEwWzFdLSRzaWdtYTBbMF0pOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkg
IGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JJnZweG9yCQkoJHQwLCR0MCwkdDEpOwotCSAgZXZhbChz
aGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBp
bnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgJnZwcm90cQkoJHQzLEBYWzddLDgq
JFNaLSRzaWdtYTFbMV0pOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQo
QGluc25zKSk7Ci0JJnZweG9yCQkoJHQwLCR0MCwkdDIpOwkJIyBzaWdtYTAoWFsxLi4yXSkKLQkg
IGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAmdnBzcmxx
CSgkdDIsQFhbN10sJHNpZ21hMVsyXSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZh
bChzaGlmdChAaW5zbnMpKTsKLQkmdnBhZGRxCQkoQFhbMF0sQFhbMF0sJHQwKTsJIyBYWzAuLjFd
ICs9IHNpZ21hMChYWzEuLjJdKQotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hp
ZnQoQGluc25zKSk7Ci0JICZ2cHJvdHEJKCR0MSwkdDMsJHNpZ21hMVsxXS0kc2lnbWExWzBdKTsK
LQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAmdnB4
b3IJCSgkdDMsJHQzLCR0Mik7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlm
dChAaW5zbnMpKTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNu
cykpOwotCSAmdnB4b3IJCSgkdDMsJHQzLCR0MSk7CQkjIHNpZ21hMShYWzE0Li4xNV0pCi0JICBl
dmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMpKTsKLQkgIGV2YWwoc2hp
ZnQoQGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSZ2cGFkZHEJCShAWFswXSxA
WFswXSwkdDMpOwkjIFhbMC4uMV0gKz0gc2lnbWExKFhbMTQuLjE1XSkKLQkgIGV2YWwoc2hpZnQo
QGluc25zKSk7Ci0JICBldmFsKHNoaWZ0KEBpbnNucykpOwotCSAgZXZhbChzaGlmdChAaW5zbnMp
KTsKLQkgIGV2YWwoc2hpZnQoQGluc25zKSk7Ci0JJnZwYWRkcQkJKCR0MixAWFswXSwxNioyKiRq
LTB4ODAuIigkVGJsKSIpOwotCSAgZm9yZWFjaCAoQGluc25zKSB7IGV2YWw7IH0JCSMgcmVtYWlu
aW5nIGluc3RydWN0aW9ucwotCSZ2bW92ZHFhCSgxNiokai4iKCVyc3ApIiwkdDIpOwotfQotCi0g
ICAgZm9yICgkaT0wLCRqPTA7ICRqPDg7ICRqKyspIHsKLQkmWE9QXzUxMl8wMF80NygkaixcJmJv
ZHlfMDBfMTUsQFgpOwotCXB1c2goQFgsc2hpZnQoQFgpKTsJCQkjIHJvdGF0ZShAWCkKLSAgICB9
Ci0JJmNtcGIJKCRTWi0xKzE2KjIqJFNaLTB4ODAuIigkVGJsKSIsMCk7Ci0JJmpuZQkoIi5MeG9w
XzAwXzQ3Iik7Ci0KLSAgICBmb3IgKCRpPTA7ICRpPDE2OyApIHsKLQlmb3JlYWNoKGJvZHlfMDBf
MTUoKSkgeyBldmFsOyB9Ci0gICAgfQotfQotJGNvZGUuPTw8X19fOwotCW1vdgkkX2N0eCwkY3R4
Ci0JbW92CSRhMSwkQQotCi0JYWRkCSRTWiowKCRjdHgpLCRBCi0JbGVhCTE2KiRTWigkaW5wKSwk
aW5wCi0JYWRkCSRTWioxKCRjdHgpLCRCCi0JYWRkCSRTWioyKCRjdHgpLCRDCi0JYWRkCSRTWioz
KCRjdHgpLCRECi0JYWRkCSRTWio0KCRjdHgpLCRFCi0JYWRkCSRTWio1KCRjdHgpLCRGCi0JYWRk
CSRTWio2KCRjdHgpLCRHCi0JYWRkCSRTWio3KCRjdHgpLCRICi0KLQljbXAJJF9lbmQsJGlucAot
Ci0JbW92CSRBLCRTWiowKCRjdHgpCi0JbW92CSRCLCRTWioxKCRjdHgpCi0JbW92CSRDLCRTWioy
KCRjdHgpCi0JbW92CSRELCRTWiozKCRjdHgpCi0JbW92CSRFLCRTWio0KCRjdHgpCi0JbW92CSRG
LCRTWio1KCRjdHgpCi0JbW92CSRHLCRTWio2KCRjdHgpCi0JbW92CSRILCRTWio3KCRjdHgpCi0J
amIJLkxsb29wX3hvcAotCi0JbW92CSRfcnNwLCVyc2kKLS5jZmlfZGVmX2NmYQklcnNpLDgKLQl2
emVyb3VwcGVyCi1fX18KLSRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKLQltb3ZhcHMJMTYqJFNa
KzMyKCVyc3ApLCV4bW02Ci0JbW92YXBzCTE2KiRTWis0OCglcnNwKSwleG1tNwotCW1vdmFwcwkx
NiokU1orNjQoJXJzcCksJXhtbTgKLQltb3ZhcHMJMTYqJFNaKzgwKCVyc3ApLCV4bW05Ci1fX18K
LSRjb2RlLj08PF9fXyBpZiAoJHdpbjY0ICYmICRTWj40KTsKLQltb3ZhcHMJMTYqJFNaKzk2KCVy
c3ApLCV4bW0xMAotCW1vdmFwcwkxNiokU1orMTEyKCVyc3ApLCV4bW0xMQotX19fCi0kY29kZS49
PDxfX187Ci0JbW92CS00OCglcnNpKSwlcjE1Ci0uY2ZpX3Jlc3RvcmUJJXIxNQotCW1vdgktNDAo
JXJzaSksJXIxNAotLmNmaV9yZXN0b3JlCSVyMTQKLQltb3YJLTMyKCVyc2kpLCVyMTMKLS5jZmlf
cmVzdG9yZQklcjEzCi0JbW92CS0yNCglcnNpKSwlcjEyCi0uY2ZpX3Jlc3RvcmUJJXIxMgotCW1v
dgktMTYoJXJzaSksJXJicAotLmNmaV9yZXN0b3JlCSVyYnAKLQltb3YJLTgoJXJzaSksJXJieAot
LmNmaV9yZXN0b3JlCSVyYngKLQlsZWEJKCVyc2kpLCVyc3AKLS5jZmlfZGVmX2NmYV9yZWdpc3Rl
cgklcnNwCi0uTGVwaWxvZ3VlX3hvcDoKLQlyZXQKLS5jZmlfZW5kcHJvYwotLnNpemUJJHtmdW5j
fV94b3AsLi0ke2Z1bmN9X3hvcAotX19fCi19Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIEFWWCtzaHJkIGNv
ZGUgcGF0aAogIwogbG9jYWwgKnJvciA9IHN1YiB7ICZzaHJkKEBfWzBdLEBfKSB9OwpAQCAtMjQw
OSwxMSArMjAxNSw2IEBAICRjb2RlLj08PF9fXyBpZiAoJFNaPT00KTsKIAkucnZhCS5MU0VIX2Vu
ZF8ke2Z1bmN9X3Nzc2UzCiAJLnJ2YQkuTFNFSF9pbmZvXyR7ZnVuY31fc3NzZTMKIF9fXwotJGNv
ZGUuPTw8X19fIGlmICgkYXZ4ICYmICRTWj09OCk7Ci0JLnJ2YQkuTFNFSF9iZWdpbl8ke2Z1bmN9
X3hvcAotCS5ydmEJLkxTRUhfZW5kXyR7ZnVuY31feG9wCi0JLnJ2YQkuTFNFSF9pbmZvXyR7ZnVu
Y31feG9wCi1fX18KICRjb2RlLj08PF9fXyBpZiAoJGF2eCk7CiAJLnJ2YQkuTFNFSF9iZWdpbl8k
e2Z1bmN9X2F2eAogCS5ydmEJLkxTRUhfZW5kXyR7ZnVuY31fYXZ4CkBAIC0yNDQzLDEyICsyMDQ0
LDYgQEAgJGNvZGUuPTw8X19fIGlmICgkU1o9PTQpOwogCS5ydmEJc2VfaGFuZGxlcgogCS5ydmEJ
Lkxwcm9sb2d1ZV9zc3NlMywuTGVwaWxvZ3VlX3Nzc2UzCSMgSGFuZGxlckRhdGFbXQogX19fCi0k
Y29kZS49PDxfX18gaWYgKCRhdnggJiYgJFNaPT04KTsKLS5MU0VIX2luZm9fJHtmdW5jfV94b3A6
Ci0JLmJ5dGUJOSwwLDAsMAotCS5ydmEJc2VfaGFuZGxlcgotCS5ydmEJLkxwcm9sb2d1ZV94b3As
LkxlcGlsb2d1ZV94b3AJCSMgSGFuZGxlckRhdGFbXQotX19fCiAkY29kZS49PDxfX18gaWYgKCRh
dngpOwogLkxTRUhfaW5mb18ke2Z1bmN9X2F2eDoKIAkuYnl0ZQk5LDAsMCwwCkBAIC0yNDg3LDQg
KzIwODIsNCBAQCBmb3JlYWNoIChzcGxpdCgiXG4iLCRjb2RlKSkgewogCiAJcHJpbnQgJF8sIlxu
IjsKIH0KLWNsb3NlIFNURE9VVDsKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3Npbmcg
U1RET1VUIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvaW50ZXJuYWwu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvaW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzkw
OTE0OTU2YTZkZGQwNWM2YmU1OWFmNzg1ZGU5YjkxYjA1NjVhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9pbnRlcm5hbC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8q
IENvcHlyaWdodCAoYykgMjAxOCwgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkK
KyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlk
ZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBS
T1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisg
KiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJS
QU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJUkVDVCwgSU5E
SVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNP
RVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVS
IElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElP
VVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBV
U0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworI2lmbmRlZiBPUEVOU1NM
X0hFQURFUl9TSEFfSU5URVJOQUxfSAorI2RlZmluZSBPUEVOU1NMX0hFQURFUl9TSEFfSU5URVJO
QUxfSAorCisjaW5jbHVkZSA8b3BlbnNzbC9iYXNlLmg+CisKKyNpZiBkZWZpbmVkKF9fY3BsdXNw
bHVzKQorZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisjaWYgZGVmaW5lZChPUEVOU1NMX1BQQzY0
TEUpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKCFkZWZpbmVkKE9QRU5TU0xf
Tk9fQVNNKSAmJiAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIChkZWZpbmVkKE9QRU5T
U0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSB8fCBcCisgICAgICBkZWZpbmVkKE9Q
RU5TU0xfQVJNKSB8fCBkZWZpbmVkKE9QRU5TU0xfQUFSQ0g2NCkpKQorLy8gUE9XRVIgaGFzIGFu
IGludHJpbnNpY3MtYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgU0hBLTEgYW5kIHRodXMgdGhlIGZ1
bmN0aW9ucworLy8gbm9ybWFsbHkgZGVmaW5lZCBpbiBhc3NlbWJseSBhcmUgYXZhaWxhYmxlIGV2
ZW4gd2l0aCB8T1BFTlNTTF9OT19BU018IGluCisvLyB0aGlzIGNhc2UuCisjZGVmaW5lIFNIQTFf
QVNNCit2b2lkIHNoYTFfYmxvY2tfZGF0YV9vcmRlcih1aW50MzJfdCAqc3RhdGUsIGNvbnN0IHVp
bnQ4X3QgKmluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bV9ibG9ja3Mp
OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkgJiYgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIChkZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5T
U0xfWDg2XzY0KSB8fCBcCisgICAgIGRlZmluZWQoT1BFTlNTTF9BUk0pIHx8IGRlZmluZWQoT1BF
TlNTTF9BQVJDSDY0KSkKKyNkZWZpbmUgU0hBMjU2X0FTTQorI2RlZmluZSBTSEE1MTJfQVNNCit2
b2lkIHNoYTI1Nl9ibG9ja19kYXRhX29yZGVyKHVpbnQzMl90ICpzdGF0ZSwgY29uc3QgdWludDhf
dCAqaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fYmxvY2tzKTsK
K3ZvaWQgc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIodWludDY0X3QgKnN0YXRlLCBjb25zdCB1aW50
OF90ICppbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bV9ibG9ja3Mp
OworI2VuZGlmCisKKworI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCit9ICAvLyBleHRlcm4gIkMi
CisjZW5kaWYKKworI2VuZGlmICAvLyBPUEVOU1NMX0hFQURFUl9TSEFfSU5URVJOQUxfSApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9zaGExLmMgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2Zp
cHNtb2R1bGUvc2hhL3NoYTEuYwppbmRleCBlNWI0YmE2MjIzNjY4ZDQyNTYwYmQ4ZDJjNDUwMDJk
MGQyNzg4MGY2Li4zYjc2MTk0ODZmODdjMjQ2OTVmNDgzOTU5ZTFjNDBlYWExY2U2YzQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL3NoYTEuYworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ZpcHNtb2R1bGUvc2hhL3NoYTEuYwpAQCAtNjAsMTYgKzYwLDEwIEBACiAKICNpbmNsdWRlIDxv
cGVuc3NsL21lbS5oPgogCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlICIuLi8uLi9p
bnRlcm5hbC5oIgogCiAKLSNpZiAoIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgKGRlZmluZWQoT1BFTlNTTF9YODYpIHx8IGRlZmlu
ZWQoT1BFTlNTTF9YODZfNjQpIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoT1BFTlNTTF9BUk0pIHx8
IGRlZmluZWQoT1BFTlNTTF9BQVJDSDY0KSkpIHx8IFwKLSAgICBkZWZpbmVkKE9QRU5TU0xfUFBD
NjRMRSkKLSNkZWZpbmUgU0hBMV9BU00KLSNlbmRpZgotCiBpbnQgU0hBMV9Jbml0KFNIQV9DVFgg
KnNoYSkgewogICBPUEVOU1NMX21lbXNldChzaGEsIDAsIHNpemVvZihTSEFfQ1RYKSk7CiAgIHNo
YS0+aFswXSA9IDB4Njc0NTIzMDFVTDsKQEAgLTgwLDcgKzc0LDcgQEAgaW50IFNIQTFfSW5pdChT
SEFfQ1RYICpzaGEpIHsKICAgcmV0dXJuIDE7CiB9CiAKLXVpbnQ4X3QgKlNIQTEoY29uc3QgdWlu
dDhfdCAqZGF0YSwgc2l6ZV90IGxlbiwgdWludDhfdCAqb3V0KSB7Cit1aW50OF90ICpTSEExKGNv
bnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVpbnQ4X3Qgb3V0W1NIQV9ESUdFU1RfTEVO
R1RIXSkgewogICBTSEFfQ1RYIGN0eDsKICAgU0hBMV9Jbml0KCZjdHgpOwogICBTSEExX1VwZGF0
ZSgmY3R4LCBkYXRhLCBsZW4pOwpAQCAtOTMsNiArODcsNyBAQCB1aW50OF90ICpTSEExKGNvbnN0
IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVpbnQ4X3QgKm91dCkgewogCiAjZGVmaW5lIEhB
U0hfQ1RYICAgICAgICAgICAgICAgIFNIQV9DVFgKICNkZWZpbmUgSEFTSF9DQkxPQ0sgICAgICAg
ICAgICAgNjQKKyNkZWZpbmUgSEFTSF9ESUdFU1RfTEVOR1RIICAgICAgMjAKICNkZWZpbmUgSEFT
SF9NQUtFX1NUUklORyhjLCBzKSBcCiAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgIHVpbnQzMl90IGxsOyAgICAgICAgICAgICAgIFwKQEAgLTExOSwxMCArMTE0LDEwIEBAIHVp
bnQ4X3QgKlNIQTEoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbiwgdWludDhfdCAqb3V0
KSB7CiAgICAgKGl4KSA9IChhKSA9IFJPVEFURSgoYSksIDEpOyAgICAgICBcCiAgIH0gd2hpbGUg
KDApCiAKLSNpZm5kZWYgU0hBMV9BU00KLXN0YXRpYworI2lmICFkZWZpbmVkKFNIQTFfQVNNKQor
c3RhdGljIHZvaWQgc2hhMV9ibG9ja19kYXRhX29yZGVyKHVpbnQzMl90ICpzdGF0ZSwgY29uc3Qg
dWludDhfdCAqZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
bnVtKTsKICNlbmRpZgotdm9pZCBzaGExX2Jsb2NrX2RhdGFfb3JkZXIodWludDMyX3QgKnN0YXRl
LCBjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbnVtKTsKIAogI2luY2x1ZGUgIi4uL2RpZ2Vz
dC9tZDMyX2NvbW1vbi5oIgogCkBAIC0xOTIsOCArMTg3LDggQEAgdm9pZCBzaGExX2Jsb2NrX2Rh
dGFfb3JkZXIodWludDMyX3QgKnN0YXRlLCBjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbnVt
KTsKICogImZpbmQiIHRoaXMgZXhwZWN0YXRpb24gcmVhc29uYWJsZTotKCBPbiBvcmRlciB0byBt
YWtlIHN1Y2gKICogY29tcGlsZXJzIGdlbmVyYXRlIGJldHRlciBjb2RlIEkgcmVwbGFjZSBYW10g
d2l0aCBhIGJ1bmNoIG9mCiAqIFgwLCBYMSwgZXRjLiBTZWUgdGhlIGZ1bmN0aW9uIGJvZHkgYmVs
b3cuLi4KLSoJCQkJCTxhcHByb0BmeS5jaGFsbWVycy5zZT4gKi8KLSNkZWZpbmUgWChpKQlYWCMj
aQorKiAgICAgICAgIDxhcHByb0BmeS5jaGFsbWVycy5zZT4gKi8KKyNkZWZpbmUgWChpKSAgWFgj
I2kKIAogI2lmICFkZWZpbmVkKFNIQTFfQVNNKQogc3RhdGljIHZvaWQgc2hhMV9ibG9ja19kYXRh
X29yZGVyKHVpbnQzMl90ICpzdGF0ZSwgY29uc3QgdWludDhfdCAqZGF0YSwKQEAgLTM0OSw2ICsz
NDQsNyBAQCBzdGF0aWMgdm9pZCBzaGExX2Jsb2NrX2RhdGFfb3JkZXIodWludDMyX3QgKnN0YXRl
LCBjb25zdCB1aW50OF90ICpkYXRhLAogI3VuZGVmIERBVEFfT1JERVJfSVNfQklHX0VORElBTgog
I3VuZGVmIEhBU0hfQ1RYCiAjdW5kZWYgSEFTSF9DQkxPQ0sKKyN1bmRlZiBIQVNIX0RJR0VTVF9M
RU5HVEgKICN1bmRlZiBIQVNIX01BS0VfU1RSSU5HCiAjdW5kZWYgSEFTSF9VUERBVEUKICN1bmRl
ZiBIQVNIX1RSQU5TRk9STQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9z
aGEyNTYuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvc2hhMjU2LmMKaW5kZXggM2U5YmNi
YzFiN2U1NDYxNTNkMWViZTBlMzMwZWE3ODU4MTViYThkNC4uMGU0MjQ0NjExNjBkMDdlOTc2MGFi
MGUyOTIxOWJmNDc5ZjQyZWE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3No
YS9zaGEyNTYuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL3NoYTI1Ni5jCkBAIC02
MCwxNSArNjAsMTAgQEAKIAogI2luY2x1ZGUgPG9wZW5zc2wvbWVtLmg+CiAKKyNpbmNsdWRlICJp
bnRlcm5hbC5oIgogI2luY2x1ZGUgIi4uLy4uL2ludGVybmFsLmgiCiAKIAotI2lmICFkZWZpbmVk
KE9QRU5TU0xfTk9fQVNNKSAmJiAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKGRlZmlu
ZWQoT1BFTlNTTF9YODYpIHx8IGRlZmluZWQoT1BFTlNTTF9YODZfNjQpIHx8IFwKLSAgICAgZGVm
aW5lZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpKQotI2RlZmluZSBT
SEEyNTZfQVNNCi0jZW5kaWYKLQogaW50IFNIQTIyNF9Jbml0KFNIQTI1Nl9DVFggKnNoYSkgewog
ICBPUEVOU1NMX21lbXNldChzaGEsIDAsIHNpemVvZihTSEEyNTZfQ1RYKSk7CiAgIHNoYS0+aFsw
XSA9IDB4YzEwNTllZDhVTDsKQEAgLTk3LDcgKzkyLDggQEAgaW50IFNIQTI1Nl9Jbml0KFNIQTI1
Nl9DVFggKnNoYSkgewogICByZXR1cm4gMTsKIH0KIAotdWludDhfdCAqU0hBMjI0KGNvbnN0IHVp
bnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVpbnQ4X3QgKm91dCkgewordWludDhfdCAqU0hBMjI0
KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgdWludDhf
dCBvdXRbU0hBMjI0X0RJR0VTVF9MRU5HVEhdKSB7CiAgIFNIQTI1Nl9DVFggY3R4OwogICBTSEEy
MjRfSW5pdCgmY3R4KTsKICAgU0hBMjI0X1VwZGF0ZSgmY3R4LCBkYXRhLCBsZW4pOwpAQCAtMTA2
LDcgKzEwMiw4IEBAIHVpbnQ4X3QgKlNIQTIyNChjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3Qg
bGVuLCB1aW50OF90ICpvdXQpIHsKICAgcmV0dXJuIG91dDsKIH0KIAotdWludDhfdCAqU0hBMjU2
KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVpbnQ4X3QgKm91dCkgewordWludDhf
dCAqU0hBMjU2KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sCisgICAgICAgICAgICAg
ICAgdWludDhfdCBvdXRbU0hBMjU2X0RJR0VTVF9MRU5HVEhdKSB7CiAgIFNIQTI1Nl9DVFggY3R4
OwogICBTSEEyNTZfSW5pdCgmY3R4KTsKICAgU0hBMjU2X1VwZGF0ZSgmY3R4LCBkYXRhLCBsZW4p
OwpAQCAtMTE5LDE0ICsxMTYsMTcgQEAgaW50IFNIQTIyNF9VcGRhdGUoU0hBMjU2X0NUWCAqY3R4
LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKSB7CiAgIHJldHVybiBTSEEyNTZfVXBkYXRl
KGN0eCwgZGF0YSwgbGVuKTsKIH0KIAotaW50IFNIQTIyNF9GaW5hbCh1aW50OF90ICptZCwgU0hB
MjU2X0NUWCAqY3R4KSB7Ci0gIHJldHVybiBTSEEyNTZfRmluYWwobWQsIGN0eCk7CitpbnQgU0hB
MjI0X0ZpbmFsKHVpbnQ4X3Qgb3V0W1NIQTIyNF9ESUdFU1RfTEVOR1RIXSwgU0hBMjU2X0NUWCAq
Y3R4KSB7CisgIC8vIFNIQTIyNF9Jbml0IHNldHMgfGN0eC0+bWRfbGVufCB0byB8U0hBMjI0X0RJ
R0VTVF9MRU5HVEh8LCBzbyB0aGlzIGhhcyBhCisgIC8vIHNtYWxsZXIgb3V0cHV0LgorICByZXR1
cm4gU0hBMjU2X0ZpbmFsKG91dCwgY3R4KTsKIH0KIAogI2RlZmluZSBEQVRBX09SREVSX0lTX0JJ
R19FTkRJQU4KIAogI2RlZmluZSBIQVNIX0NUWCBTSEEyNTZfQ1RYCiAjZGVmaW5lIEhBU0hfQ0JM
T0NLIDY0CisjZGVmaW5lIEhBU0hfRElHRVNUX0xFTkdUSCAzMgogCiAvLyBOb3RlIHRoYXQgRklQ
UzE4MC0yIGRpc2N1c3NlcyAiVHJ1bmNhdGlvbiBvZiB0aGUgSGFzaCBGdW5jdGlvbiBPdXRwdXQu
IgogLy8gZGVmYXVsdDogY2FzZSBiZWxvdyBjb3ZlcnMgZm9yIGl0LiBJdCdzIG5vdCBjbGVhciBo
b3dldmVyIGlmIGl0J3MgcGVybWl0dGVkCkBAIC0xNzIsOSArMTcyLDkgQEAgaW50IFNIQTIyNF9G
aW5hbCh1aW50OF90ICptZCwgU0hBMjU2X0NUWCAqY3R4KSB7CiAjZGVmaW5lIEhBU0hfRklOQUwg
U0hBMjU2X0ZpbmFsCiAjZGVmaW5lIEhBU0hfQkxPQ0tfREFUQV9PUkRFUiBzaGEyNTZfYmxvY2tf
ZGF0YV9vcmRlcgogI2lmbmRlZiBTSEEyNTZfQVNNCi1zdGF0aWMKK3N0YXRpYyB2b2lkIHNoYTI1
Nl9ibG9ja19kYXRhX29yZGVyKHVpbnQzMl90ICpzdGF0ZSwgY29uc3QgdWludDhfdCAqaW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtKTsKICNlbmRpZgot
dm9pZCBzaGEyNTZfYmxvY2tfZGF0YV9vcmRlcih1aW50MzJfdCAqc3RhdGUsIGNvbnN0IHVpbnQ4
X3QgKmluLCBzaXplX3QgbnVtKTsKIAogI2luY2x1ZGUgIi4uL2RpZ2VzdC9tZDMyX2NvbW1vbi5o
IgogCkBAIC0zMjQsNiArMzI0LDcgQEAgdm9pZCBTSEEyNTZfVHJhbnNmb3JtQmxvY2tzKHVpbnQz
Ml90IHN0YXRlWzhdLCBjb25zdCB1aW50OF90ICpkYXRhLAogI3VuZGVmIERBVEFfT1JERVJfSVNf
QklHX0VORElBTgogI3VuZGVmIEhBU0hfQ1RYCiAjdW5kZWYgSEFTSF9DQkxPQ0sKKyN1bmRlZiBI
QVNIX0RJR0VTVF9MRU5HVEgKICN1bmRlZiBIQVNIX01BS0VfU1RSSU5HCiAjdW5kZWYgSEFTSF9V
UERBVEUKICN1bmRlZiBIQVNIX1RSQU5TRk9STQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBz
bW9kdWxlL3NoYS9zaGE1MTIuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9zaGEvc2hhNTEyLmMK
aW5kZXggMzkwMmY1MGU1NWRlNzFjYmIzZGUxYWRlMGUxYzU3MTQxMDQ2YzIzZS4uODQ4ZjNiNjIx
Y2M1NDRlOTYyMzJiMWE4MjQ5MjgwNzJkNGIwZWIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9m
aXBzbW9kdWxlL3NoYS9zaGE1MTIuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL3No
YTUxMi5jCkBAIC02MCwzMSArNjAsMTUgQEAKIAogI2luY2x1ZGUgPG9wZW5zc2wvbWVtLmg+CiAK
KyNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgIi4uLy4uL2ludGVybmFsLmgiCiAKIAot
Ly8gSU1QTEVNRU5UQVRJT04gTk9URVMuCi0vLwogLy8gVGhlIDMyLWJpdCBoYXNoIGFsZ29yaXRo
bXMgc2hhcmUgYSBjb21tb24gYnl0ZS1vcmRlciBuZXV0cmFsIGNvbGxlY3RvciBhbmQKIC8vIHBh
ZGRpbmcgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zIHRoYXQgb3BlcmF0ZSBvbiB1bmFsaWduZWQg
ZGF0YSwKLS8vIC4uL21kMzJfY29tbW9uLmguIFRoaXMgU0hBLTUxMiBpbXBsZW1lbnRhdGlvbiBk
b2VzIG5vdC4gUmVhc29ucwotLy8gW2luIHJldmVyc2Ugb3JkZXJdIGFyZToKLS8vCi0vLyAtIEl0
J3MgdGhlIG9ubHkgNjQtYml0IGhhc2ggYWxnb3JpdGhtIGZvciB0aGUgbW9tZW50IG9mIHRoaXMg
d3JpdGluZywKLS8vICAgdGhlcmUgaXMgbm8gbmVlZCBmb3IgY29tbW9uIGNvbGxlY3Rvci9wYWRk
aW5nIGltcGxlbWVudGF0aW9uIFt5ZXRdOwotLy8gLSBCeSBzdXBwb3J0aW5nIG9ubHkgYSB0cmFu
c2Zvcm0gZnVuY3Rpb24gdGhhdCBvcGVyYXRlcyBvbiAqYWxpZ25lZCogZGF0YQotLy8gICB0aGUg
Y29sbGVjdG9yL3BhZGRpbmcgZnVuY3Rpb24gaXMgc2ltcGxlciBhbmQgZWFzaWVyIHRvIG9wdGlt
aXplLgotCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAoZGVmaW5lZChPUEVOU1NMX1g4NikgfHwgZGVmaW5lZChPUEVOU1NMX1g4
Nl82NCkgfHwgXAotICAgICBkZWZpbmVkKE9QRU5TU0xfQVJNKSB8fCBkZWZpbmVkKE9QRU5TU0xf
QUFSQ0g2NCkpCi0jZGVmaW5lIFNIQTUxMl9BU00KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChPUEVO
U1NMX1g4NikgfHwgZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkgfHwgXAotICAgIGRlZmluZWQoX19B
Uk1fRkVBVFVSRV9VTkFMSUdORUQpCi0jZGVmaW5lIFNIQTUxMl9CTE9DS19DQU5fTUFOQUdFX1VO
QUxJR05FRF9EQVRBCi0jZW5kaWYKKy8vIC4uL2RpZ2VzdC9tZDMyX2NvbW1vbi5oLiBTSEEtNTEy
IGlzIHRoZSBvbmx5IDY0LWJpdCBoYXNoIGFsZ29yaXRobSwgYXMgb2YKKy8vIHRoaXMgd3JpdGlu
Zywgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBjb21tb24gY29sbGVjdG9yL3BhZGRpbmcKKy8v
IGltcGxlbWVudGF0aW9uIHlldC4KIAogaW50IFNIQTM4NF9Jbml0KFNIQTUxMl9DVFggKnNoYSkg
ewogICBzaGEtPmhbMF0gPSBVSU5UNjRfQygweGNiYmI5ZDVkYzEwNTllZDgpOwpAQCAtMTIxLDcg
KzEwNSw4IEBAIGludCBTSEE1MTJfSW5pdChTSEE1MTJfQ1RYICpzaGEpIHsKICAgcmV0dXJuIDE7
CiB9CiAKLXVpbnQ4X3QgKlNIQTM4NChjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuLCB1
aW50OF90ICpvdXQpIHsKK3VpbnQ4X3QgKlNIQTM4NChjb25zdCB1aW50OF90ICpkYXRhLCBzaXpl
X3QgbGVuLAorICAgICAgICAgICAgICAgIHVpbnQ4X3Qgb3V0W1NIQTM4NF9ESUdFU1RfTEVOR1RI
XSkgewogICBTSEE1MTJfQ1RYIGN0eDsKICAgU0hBMzg0X0luaXQoJmN0eCk7CiAgIFNIQTM4NF9V
cGRhdGUoJmN0eCwgZGF0YSwgbGVuKTsKQEAgLTEzMCw3ICsxMTUsOCBAQCB1aW50OF90ICpTSEEz
ODQoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbiwgdWludDhfdCAqb3V0KSB7CiAgIHJl
dHVybiBvdXQ7CiB9CiAKLXVpbnQ4X3QgKlNIQTUxMihjb25zdCB1aW50OF90ICpkYXRhLCBzaXpl
X3QgbGVuLCB1aW50OF90ICpvdXQpIHsKK3VpbnQ4X3QgKlNIQTUxMihjb25zdCB1aW50OF90ICpk
YXRhLCBzaXplX3QgbGVuLAorICAgICAgICAgICAgICAgIHVpbnQ4X3Qgb3V0W1NIQTUxMl9ESUdF
U1RfTEVOR1RIXSkgewogICBTSEE1MTJfQ1RYIGN0eDsKICAgU0hBNTEyX0luaXQoJmN0eCk7CiAg
IFNIQTUxMl9VcGRhdGUoJmN0eCwgZGF0YSwgbGVuKTsKQEAgLTE0MCwzMyArMTI2LDI5IEBAIHVp
bnQ4X3QgKlNIQTUxMihjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuLCB1aW50OF90ICpv
dXQpIHsKIH0KIAogI2lmICFkZWZpbmVkKFNIQTUxMl9BU00pCi1zdGF0aWMKK3N0YXRpYyB2b2lk
IHNoYTUxMl9ibG9ja19kYXRhX29yZGVyKHVpbnQ2NF90ICpzdGF0ZSwgY29uc3QgdWludDhfdCAq
aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtX2Jsb2Nr
cyk7CiAjZW5kaWYKLXZvaWQgc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIodWludDY0X3QgKnN0YXRl
LCBjb25zdCB1aW50NjRfdCAqVywgc2l6ZV90IG51bSk7CiAKIAotaW50IFNIQTM4NF9GaW5hbCh1
aW50OF90ICptZCwgU0hBNTEyX0NUWCAqc2hhKSB7Ci0gIHJldHVybiBTSEE1MTJfRmluYWwobWQs
IHNoYSk7CitpbnQgU0hBMzg0X0ZpbmFsKHVpbnQ4X3Qgb3V0W1NIQTM4NF9ESUdFU1RfTEVOR1RI
XSwgU0hBNTEyX0NUWCAqc2hhKSB7CisgIC8vIHxTSEEzODRfSW5pdHwgc2V0cyB8c2hhLT5tZF9s
ZW58IHRvIHxTSEEzODRfRElHRVNUX0xFTkdUSHwsIHNvIHRoaXMgaGFzIGEKKyAgLy8gfHNtYWxs
ZXIgb3V0cHV0LgorICByZXR1cm4gU0hBNTEyX0ZpbmFsKG91dCwgc2hhKTsKIH0KIAogaW50IFNI
QTM4NF9VcGRhdGUoU0hBNTEyX0NUWCAqc2hhLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVu
KSB7CiAgIHJldHVybiBTSEE1MTJfVXBkYXRlKHNoYSwgZGF0YSwgbGVuKTsKIH0KIAotdm9pZCBT
SEE1MTJfVHJhbnNmb3JtKFNIQTUxMl9DVFggKmMsIGNvbnN0IHVpbnQ4X3QgKmJsb2NrKSB7Ci0j
aWZuZGVmIFNIQTUxMl9CTE9DS19DQU5fTUFOQUdFX1VOQUxJR05FRF9EQVRBCi0gIGlmICgoc2l6
ZV90KWJsb2NrICUgc2l6ZW9mKGMtPnUuZFswXSkgIT0gMCkgewotICAgIE9QRU5TU0xfbWVtY3B5
KGMtPnUucCwgYmxvY2ssIHNpemVvZihjLT51LnApKTsKLSAgICBibG9jayA9IGMtPnUucDsKLSAg
fQotI2VuZGlmCi0gIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyKGMtPmgsICh1aW50NjRfdCAqKWJs
b2NrLCAxKTsKK3ZvaWQgU0hBNTEyX1RyYW5zZm9ybShTSEE1MTJfQ1RYICpjLCBjb25zdCB1aW50
OF90IGJsb2NrW1NIQTUxMl9DQkxPQ0tdKSB7CisgIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyKGMt
PmgsIGJsb2NrLCAxKTsKIH0KIAogaW50IFNIQTUxMl9VcGRhdGUoU0hBNTEyX0NUWCAqYywgY29u
c3Qgdm9pZCAqaW5fZGF0YSwgc2l6ZV90IGxlbikgewogICB1aW50NjRfdCBsOwotICB1aW50OF90
ICpwID0gYy0+dS5wOwotICBjb25zdCB1aW50OF90ICpkYXRhID0gKGNvbnN0IHVpbnQ4X3QgKilp
bl9kYXRhOworICB1aW50OF90ICpwID0gYy0+cDsKKyAgY29uc3QgdWludDhfdCAqZGF0YSA9IGlu
X2RhdGE7CiAKICAgaWYgKGxlbiA9PSAwKSB7CiAgICAgcmV0dXJuIDE7CkBAIC0xODIsNyArMTY0
LDcgQEAgaW50IFNIQTUxMl9VcGRhdGUoU0hBNTEyX0NUWCAqYywgY29uc3Qgdm9pZCAqaW5fZGF0
YSwgc2l6ZV90IGxlbikgewogICBjLT5ObCA9IGw7CiAKICAgaWYgKGMtPm51bSAhPSAwKSB7Ci0g
ICAgc2l6ZV90IG4gPSBzaXplb2YoYy0+dSkgLSBjLT5udW07CisgICAgc2l6ZV90IG4gPSBzaXpl
b2YoYy0+cCkgLSBjLT5udW07CiAKICAgICBpZiAobGVuIDwgbikgewogICAgICAgT1BFTlNTTF9t
ZW1jcHkocCArIGMtPm51bSwgZGF0YSwgbGVuKTsKQEAgLTE5MiwyNyArMTc0LDE1IEBAIGludCBT
SEE1MTJfVXBkYXRlKFNIQTUxMl9DVFggKmMsIGNvbnN0IHZvaWQgKmluX2RhdGEsIHNpemVfdCBs
ZW4pIHsKICAgICAgIE9QRU5TU0xfbWVtY3B5KHAgKyBjLT5udW0sIGRhdGEsIG4pLCBjLT5udW0g
PSAwOwogICAgICAgbGVuIC09IG47CiAgICAgICBkYXRhICs9IG47Ci0gICAgICBzaGE1MTJfYmxv
Y2tfZGF0YV9vcmRlcihjLT5oLCAodWludDY0X3QgKilwLCAxKTsKKyAgICAgIHNoYTUxMl9ibG9j
a19kYXRhX29yZGVyKGMtPmgsIHAsIDEpOwogICAgIH0KICAgfQogCi0gIGlmIChsZW4gPj0gc2l6
ZW9mKGMtPnUpKSB7Ci0jaWZuZGVmIFNIQTUxMl9CTE9DS19DQU5fTUFOQUdFX1VOQUxJR05FRF9E
QVRBCi0gICAgaWYgKChzaXplX3QpZGF0YSAlIHNpemVvZihjLT51LmRbMF0pICE9IDApIHsKLSAg
ICAgIHdoaWxlIChsZW4gPj0gc2l6ZW9mKGMtPnUpKSB7Ci0gICAgICAgIE9QRU5TU0xfbWVtY3B5
KHAsIGRhdGEsIHNpemVvZihjLT51KSk7Ci0gICAgICAgIHNoYTUxMl9ibG9ja19kYXRhX29yZGVy
KGMtPmgsICh1aW50NjRfdCAqKXAsIDEpOwotICAgICAgICBsZW4gLT0gc2l6ZW9mKGMtPnUpOwot
ICAgICAgICBkYXRhICs9IHNpemVvZihjLT51KTsKLSAgICAgIH0KLSAgICB9IGVsc2UKLSNlbmRp
ZgotICAgIHsKLSAgICAgIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyKGMtPmgsICh1aW50NjRfdCAq
KWRhdGEsIGxlbiAvIHNpemVvZihjLT51KSk7Ci0gICAgICBkYXRhICs9IGxlbjsKLSAgICAgIGxl
biAlPSBzaXplb2YoYy0+dSk7Ci0gICAgICBkYXRhIC09IGxlbjsKLSAgICB9CisgIGlmIChsZW4g
Pj0gc2l6ZW9mKGMtPnApKSB7CisgICAgc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIoYy0+aCwgZGF0
YSwgbGVuIC8gc2l6ZW9mKGMtPnApKTsKKyAgICBkYXRhICs9IGxlbjsKKyAgICBsZW4gJT0gc2l6
ZW9mKGMtPnApOworICAgIGRhdGEgLT0gbGVuOwogICB9CiAKICAgaWYgKGxlbiAhPSAwKSB7CkBA
IC0yMjMsMzkgKzE5MywzOSBAQCBpbnQgU0hBNTEyX1VwZGF0ZShTSEE1MTJfQ1RYICpjLCBjb25z
dCB2b2lkICppbl9kYXRhLCBzaXplX3QgbGVuKSB7CiAgIHJldHVybiAxOwogfQogCi1pbnQgU0hB
NTEyX0ZpbmFsKHVpbnQ4X3QgKm1kLCBTSEE1MTJfQ1RYICpzaGEpIHsKLSAgdWludDhfdCAqcCA9
ICh1aW50OF90ICopc2hhLT51LnA7CitpbnQgU0hBNTEyX0ZpbmFsKHVpbnQ4X3Qgb3V0W1NIQTUx
Ml9ESUdFU1RfTEVOR1RIXSwgU0hBNTEyX0NUWCAqc2hhKSB7CisgIHVpbnQ4X3QgKnAgPSBzaGEt
PnA7CiAgIHNpemVfdCBuID0gc2hhLT5udW07CiAKICAgcFtuXSA9IDB4ODA7ICAvLyBUaGVyZSBh
bHdheXMgaXMgYSByb29tIGZvciBvbmUKICAgbisrOwotICBpZiAobiA+IChzaXplb2Yoc2hhLT51
KSAtIDE2KSkgewotICAgIE9QRU5TU0xfbWVtc2V0KHAgKyBuLCAwLCBzaXplb2Yoc2hhLT51KSAt
IG4pOworICBpZiAobiA+IChzaXplb2Yoc2hhLT5wKSAtIDE2KSkgeworICAgIE9QRU5TU0xfbWVt
c2V0KHAgKyBuLCAwLCBzaXplb2Yoc2hhLT5wKSAtIG4pOwogICAgIG4gPSAwOwotICAgIHNoYTUx
Ml9ibG9ja19kYXRhX29yZGVyKHNoYS0+aCwgKHVpbnQ2NF90ICopcCwgMSk7CisgICAgc2hhNTEy
X2Jsb2NrX2RhdGFfb3JkZXIoc2hhLT5oLCBwLCAxKTsKICAgfQogCi0gIE9QRU5TU0xfbWVtc2V0
KHAgKyBuLCAwLCBzaXplb2Yoc2hhLT51KSAtIDE2IC0gbik7Ci0gIHBbc2l6ZW9mKHNoYS0+dSkg
LSAxXSA9ICh1aW50OF90KShzaGEtPk5sKTsKLSAgcFtzaXplb2Yoc2hhLT51KSAtIDJdID0gKHVp
bnQ4X3QpKHNoYS0+TmwgPj4gOCk7Ci0gIHBbc2l6ZW9mKHNoYS0+dSkgLSAzXSA9ICh1aW50OF90
KShzaGEtPk5sID4+IDE2KTsKLSAgcFtzaXplb2Yoc2hhLT51KSAtIDRdID0gKHVpbnQ4X3QpKHNo
YS0+TmwgPj4gMjQpOwotICBwW3NpemVvZihzaGEtPnUpIC0gNV0gPSAodWludDhfdCkoc2hhLT5O
bCA+PiAzMik7Ci0gIHBbc2l6ZW9mKHNoYS0+dSkgLSA2XSA9ICh1aW50OF90KShzaGEtPk5sID4+
IDQwKTsKLSAgcFtzaXplb2Yoc2hhLT51KSAtIDddID0gKHVpbnQ4X3QpKHNoYS0+TmwgPj4gNDgp
OwotICBwW3NpemVvZihzaGEtPnUpIC0gOF0gPSAodWludDhfdCkoc2hhLT5ObCA+PiA1Nik7Ci0g
IHBbc2l6ZW9mKHNoYS0+dSkgLSA5XSA9ICh1aW50OF90KShzaGEtPk5oKTsKLSAgcFtzaXplb2Yo
c2hhLT51KSAtIDEwXSA9ICh1aW50OF90KShzaGEtPk5oID4+IDgpOwotICBwW3NpemVvZihzaGEt
PnUpIC0gMTFdID0gKHVpbnQ4X3QpKHNoYS0+TmggPj4gMTYpOwotICBwW3NpemVvZihzaGEtPnUp
IC0gMTJdID0gKHVpbnQ4X3QpKHNoYS0+TmggPj4gMjQpOwotICBwW3NpemVvZihzaGEtPnUpIC0g
MTNdID0gKHVpbnQ4X3QpKHNoYS0+TmggPj4gMzIpOwotICBwW3NpemVvZihzaGEtPnUpIC0gMTRd
ID0gKHVpbnQ4X3QpKHNoYS0+TmggPj4gNDApOwotICBwW3NpemVvZihzaGEtPnUpIC0gMTVdID0g
KHVpbnQ4X3QpKHNoYS0+TmggPj4gNDgpOwotICBwW3NpemVvZihzaGEtPnUpIC0gMTZdID0gKHVp
bnQ4X3QpKHNoYS0+TmggPj4gNTYpOwotCi0gIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyKHNoYS0+
aCwgKHVpbnQ2NF90ICopcCwgMSk7Ci0KLSAgaWYgKG1kID09IE5VTEwpIHsKKyAgT1BFTlNTTF9t
ZW1zZXQocCArIG4sIDAsIHNpemVvZihzaGEtPnApIC0gMTYgLSBuKTsKKyAgcFtzaXplb2Yoc2hh
LT5wKSAtIDFdID0gKHVpbnQ4X3QpKHNoYS0+TmwpOworICBwW3NpemVvZihzaGEtPnApIC0gMl0g
PSAodWludDhfdCkoc2hhLT5ObCA+PiA4KTsKKyAgcFtzaXplb2Yoc2hhLT5wKSAtIDNdID0gKHVp
bnQ4X3QpKHNoYS0+TmwgPj4gMTYpOworICBwW3NpemVvZihzaGEtPnApIC0gNF0gPSAodWludDhf
dCkoc2hhLT5ObCA+PiAyNCk7CisgIHBbc2l6ZW9mKHNoYS0+cCkgLSA1XSA9ICh1aW50OF90KShz
aGEtPk5sID4+IDMyKTsKKyAgcFtzaXplb2Yoc2hhLT5wKSAtIDZdID0gKHVpbnQ4X3QpKHNoYS0+
TmwgPj4gNDApOworICBwW3NpemVvZihzaGEtPnApIC0gN10gPSAodWludDhfdCkoc2hhLT5ObCA+
PiA0OCk7CisgIHBbc2l6ZW9mKHNoYS0+cCkgLSA4XSA9ICh1aW50OF90KShzaGEtPk5sID4+IDU2
KTsKKyAgcFtzaXplb2Yoc2hhLT5wKSAtIDldID0gKHVpbnQ4X3QpKHNoYS0+TmgpOworICBwW3Np
emVvZihzaGEtPnApIC0gMTBdID0gKHVpbnQ4X3QpKHNoYS0+TmggPj4gOCk7CisgIHBbc2l6ZW9m
KHNoYS0+cCkgLSAxMV0gPSAodWludDhfdCkoc2hhLT5OaCA+PiAxNik7CisgIHBbc2l6ZW9mKHNo
YS0+cCkgLSAxMl0gPSAodWludDhfdCkoc2hhLT5OaCA+PiAyNCk7CisgIHBbc2l6ZW9mKHNoYS0+
cCkgLSAxM10gPSAodWludDhfdCkoc2hhLT5OaCA+PiAzMik7CisgIHBbc2l6ZW9mKHNoYS0+cCkg
LSAxNF0gPSAodWludDhfdCkoc2hhLT5OaCA+PiA0MCk7CisgIHBbc2l6ZW9mKHNoYS0+cCkgLSAx
NV0gPSAodWludDhfdCkoc2hhLT5OaCA+PiA0OCk7CisgIHBbc2l6ZW9mKHNoYS0+cCkgLSAxNl0g
PSAodWludDhfdCkoc2hhLT5OaCA+PiA1Nik7CisKKyAgc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIo
c2hhLT5oLCBwLCAxKTsKKworICBpZiAob3V0ID09IE5VTEwpIHsKICAgICAvLyBUT0RPKGRhdmlk
YmVuKTogVGhpcyBOVUxMIGNoZWNrIGlzIGFic2VudCBpbiBvdGhlciBsb3ctbGV2ZWwgaGFzaCAn
ZmluYWwnCiAgICAgLy8gZnVuY3Rpb25zIGFuZCBpcyBvbmUgb2YgdGhlIGZldyBwbGFjZXMgb25l
IGNhbiBmYWlsLgogICAgIHJldHVybiAwOwpAQCAtMjY3LDI4ICsyMzcsMjggQEAgaW50IFNIQTUx
Ml9GaW5hbCh1aW50OF90ICptZCwgU0hBNTEyX0NUWCAqc2hhKSB7CiAgICAgICBmb3IgKG4gPSAw
OyBuIDwgU0hBMzg0X0RJR0VTVF9MRU5HVEggLyA4OyBuKyspIHsKICAgICAgICAgdWludDY0X3Qg
dCA9IHNoYS0+aFtuXTsKIAotICAgICAgICAqKG1kKyspID0gKHVpbnQ4X3QpKHQgPj4gNTYpOwot
ICAgICAgICAqKG1kKyspID0gKHVpbnQ4X3QpKHQgPj4gNDgpOwotICAgICAgICAqKG1kKyspID0g
KHVpbnQ4X3QpKHQgPj4gNDApOwotICAgICAgICAqKG1kKyspID0gKHVpbnQ4X3QpKHQgPj4gMzIp
OwotICAgICAgICAqKG1kKyspID0gKHVpbnQ4X3QpKHQgPj4gMjQpOwotICAgICAgICAqKG1kKysp
ID0gKHVpbnQ4X3QpKHQgPj4gMTYpOwotICAgICAgICAqKG1kKyspID0gKHVpbnQ4X3QpKHQgPj4g
OCk7Ci0gICAgICAgICoobWQrKykgPSAodWludDhfdCkodCk7CisgICAgICAgICoob3V0KyspID0g
KHVpbnQ4X3QpKHQgPj4gNTYpOworICAgICAgICAqKG91dCsrKSA9ICh1aW50OF90KSh0ID4+IDQ4
KTsKKyAgICAgICAgKihvdXQrKykgPSAodWludDhfdCkodCA+PiA0MCk7CisgICAgICAgICoob3V0
KyspID0gKHVpbnQ4X3QpKHQgPj4gMzIpOworICAgICAgICAqKG91dCsrKSA9ICh1aW50OF90KSh0
ID4+IDI0KTsKKyAgICAgICAgKihvdXQrKykgPSAodWludDhfdCkodCA+PiAxNik7CisgICAgICAg
ICoob3V0KyspID0gKHVpbnQ4X3QpKHQgPj4gOCk7CisgICAgICAgICoob3V0KyspID0gKHVpbnQ4
X3QpKHQpOwogICAgICAgfQogICAgICAgYnJlYWs7CiAgICAgY2FzZSBTSEE1MTJfRElHRVNUX0xF
TkdUSDoKICAgICAgIGZvciAobiA9IDA7IG4gPCBTSEE1MTJfRElHRVNUX0xFTkdUSCAvIDg7IG4r
KykgewogICAgICAgICB1aW50NjRfdCB0ID0gc2hhLT5oW25dOwogCi0gICAgICAgICoobWQrKykg
PSAodWludDhfdCkodCA+PiA1Nik7Ci0gICAgICAgICoobWQrKykgPSAodWludDhfdCkodCA+PiA0
OCk7Ci0gICAgICAgICoobWQrKykgPSAodWludDhfdCkodCA+PiA0MCk7Ci0gICAgICAgICoobWQr
KykgPSAodWludDhfdCkodCA+PiAzMik7Ci0gICAgICAgICoobWQrKykgPSAodWludDhfdCkodCA+
PiAyNCk7Ci0gICAgICAgICoobWQrKykgPSAodWludDhfdCkodCA+PiAxNik7Ci0gICAgICAgICoo
bWQrKykgPSAodWludDhfdCkodCA+PiA4KTsKLSAgICAgICAgKihtZCsrKSA9ICh1aW50OF90KSh0
KTsKKyAgICAgICAgKihvdXQrKykgPSAodWludDhfdCkodCA+PiA1Nik7CisgICAgICAgICoob3V0
KyspID0gKHVpbnQ4X3QpKHQgPj4gNDgpOworICAgICAgICAqKG91dCsrKSA9ICh1aW50OF90KSh0
ID4+IDQwKTsKKyAgICAgICAgKihvdXQrKykgPSAodWludDhfdCkodCA+PiAzMik7CisgICAgICAg
ICoob3V0KyspID0gKHVpbnQ4X3QpKHQgPj4gMjQpOworICAgICAgICAqKG91dCsrKSA9ICh1aW50
OF90KSh0ID4+IDE2KTsKKyAgICAgICAgKihvdXQrKykgPSAodWludDhfdCkodCA+PiA4KTsKKyAg
ICAgICAgKihvdXQrKykgPSAodWludDhfdCkodCk7CiAgICAgICB9CiAgICAgICBicmVhazsKICAg
ICAvLyAuLi4gYXMgd2VsbCBhcyBtYWtlIHN1cmUgbWRfbGVuIGlzIG5vdCBhYnVzZWQuCkBAIC0z
NTMsMjAgKzMyMyw2IEBAIHN0YXRpYyBjb25zdCB1aW50NjRfdCBLNTEyWzgwXSA9IHsKICAgICBf
X2FzbV9fKCJyb3JxICUxLCAlMCIgOiAiPXIiKHJldCkgOiAiSiIobiksICIwIihhKSA6ICJjYyIp
OyBcCiAgICAgcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICB9KQotI2RlZmluZSBQVUxMNjQoeCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgdWludDY0X3QgcmV0ID0gKigoY29uc3QgdWludDY0X3QgKikoJih4KSkp
OyAgXAotICAgIF9fYXNtX18oImJzd2FwcSAlMCIgOiAiPXIiKHJldCkgOiAiMCIocmV0KSk7IFwK
LSAgICByZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIH0p
Ci0jZWxpZihkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX2kzODZfXykpCi0jZGVmaW5lIFBV
TEw2NCh4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgY29uc3QgdW5zaWduZWQg
aW50ICpwID0gKGNvbnN0IHVuc2lnbmVkIGludCAqKSgmKHgpKTsgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgdW5zaWduZWQgaW50IGhpID0gcFswXSwgbG8gPSBwWzFdOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgX19hc21fXygiYnN3YXBsICUwOyBic3dh
cGwgJTE7IiA6ICI9ciIobG8pLCAiPXIiKGhpKSA6ICIwIihsbyksICIxIihoaSkpOyBcCi0gICAg
KCh1aW50NjRfdCloaSkgPDwgMzIgfCBsbzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gIH0pCiAjZWxpZihkZWZpbmVkKF9BUkNIX1BQQykgJiYgZGVm
aW5lZChfXzY0QklUX18pKSB8fCBkZWZpbmVkKF9BUkNIX1BQQzY0KQogI2RlZmluZSBST1RSKGEs
IG4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAoeyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XApAQCAtMzgxLDQ3ICszMzcsMjIgQEAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IEs1MTJbODBdID0g
ewogICAgIF9fYXNtX18oInJvciAlMCwgJTEsICUyIiA6ICI9ciIocmV0KSA6ICJyIihhKSwgIkki
KG4pKTsgXAogICAgIHJldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICB9KQotI2lmIGRlZmluZWQoX19CWVRFX09SREVSX18pICYmIGRlZmlu
ZWQoX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pICYmIFwKLSAgICBfX0JZVEVfT1JERVJfXyA9PSBf
X09SREVSX0xJVFRMRV9FTkRJQU5fXwotI2RlZmluZSBQVUxMNjQoeCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICh7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICB1aW50NjRfdCByZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIF9fYXNtX18oInJldiAlMCwgJTEiIDogIj1y
IihyZXQpIDogInIiKCooKGNvbnN0IHVpbnQ2NF90ICopKCYoeCkpKSkpOyBcCi0gICAgcmV0OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgfSkKLSNlbmRpZgogI2VuZGlmCi0jZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQot
I2lmIGRlZmluZWQoX1dJTjY0KSAgLy8gYXBwbGllcyB0byBib3RoIElBLTY0IGFuZCBBTUQ2NAor
I2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVmaW5lZChfV0lONjQpCiAjcHJhZ21hIGludHJp
bnNpYyhfcm90cjY0KQogI2RlZmluZSBST1RSKGEsIG4pIF9yb3RyNjQoKGEpLCBuKQogI2VuZGlm
Ci0jaWYgZGVmaW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKLXN0YXRp
YyB1aW50NjRfdCBfX2Zhc3RjYWxsIF9fcHVsbDY0YmUoY29uc3Qgdm9pZCAqeCkgewotICBfYXNt
IG1vdiBlZHgsIFtlY3ggKyAwXQotICBfYXNtIG1vdiBlYXgsIFtlY3ggKyA0XQotICBfYXNtIGJz
d2FwIGVkeAotICBfYXNtIGJzd2FwIGVheAotfQotI2RlZmluZSBQVUxMNjQoeCkgX19wdWxsNjRi
ZSgmKHgpKQotI2lmIF9NU0NfVkVSIDw9IDEyMDAKLSNwcmFnbWEgaW5saW5lX2RlcHRoKDApCi0j
ZW5kaWYKLSNlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgUFVMTDY0Ci0jZGVmaW5lIEIoeCwgaikg
XAotICAoKCh1aW50NjRfdCkoKigoKGNvbnN0IHVpbnQ4X3QgKikoJngpKSArIGopKSkgPDwgKCg3
IC0gaikgKiA4KSkKLSNkZWZpbmUgUFVMTDY0KHgpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIChCKHgsIDApIHwgQih4LCAxKSB8IEIo
eCwgMikgfCBCKHgsIDMpIHwgQih4LCA0KSB8IEIoeCwgNSkgfCBCKHgsIDYpIHwgXAotICAgQih4
LCA3KSkKLSNlbmRpZgogCiAjaWZuZGVmIFJPVFIKICNkZWZpbmUgUk9UUih4LCBzKSAoKCh4KSA+
PiBzKSB8ICh4KSA8PCAoNjQgLSBzKSkKICNlbmRpZgogCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90
IGxvYWRfdTY0X2JlKGNvbnN0IHZvaWQgKnB0cikgeworICB1aW50NjRfdCByZXQ7CisgIE9QRU5T
U0xfbWVtY3B5KCZyZXQsIHB0ciwgc2l6ZW9mKHJldCkpOworICByZXR1cm4gQ1JZUFRPX2Jzd2Fw
OChyZXQpOworfQorCiAjZGVmaW5lIFNpZ21hMCh4KSAoUk9UUigoeCksIDI4KSBeIFJPVFIoKHgp
LCAzNCkgXiBST1RSKCh4KSwgMzkpKQogI2RlZmluZSBTaWdtYTEoeCkgKFJPVFIoKHgpLCAxNCkg
XiBST1RSKCh4KSwgMTgpIF4gUk9UUigoeCksIDQxKSkKICNkZWZpbmUgc2lnbWEwKHgpIChST1RS
KCh4KSwgMSkgXiBST1RSKCh4KSwgOCkgXiAoKHgpID4+IDcpKQpAQCAtNDM0LDcgKzM2NSw3IEBA
IHN0YXRpYyB1aW50NjRfdCBfX2Zhc3RjYWxsIF9fcHVsbDY0YmUoY29uc3Qgdm9pZCAqeCkgewog
I2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9NX0lY
ODYpCiAvLyBUaGlzIGNvZGUgc2hvdWxkIGdpdmUgYmV0dGVyIHJlc3VsdHMgb24gMzItYml0IENQ
VSB3aXRoIGxlc3MgdGhhbgogLy8gfjI0IHJlZ2lzdGVycywgYm90aCBzaXplIGFuZCBwZXJmb3Jt
YW5jZSB3aXNlLi4uCi1zdGF0aWMgdm9pZCBzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcih1aW50NjRf
dCAqc3RhdGUsIGNvbnN0IHVpbnQ2NF90ICpXLAorc3RhdGljIHZvaWQgc2hhNTEyX2Jsb2NrX2Rh
dGFfb3JkZXIodWludDY0X3QgKnN0YXRlLCBjb25zdCB1aW50OF90ICppbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW0pIHsKICAgdWludDY0X3QgQSwgRSwg
VDsKICAgdWludDY0X3QgWFs5ICsgODBdLCAqRjsKQEAgLTQ1Miw3ICszODMsNyBAQCBzdGF0aWMg
dm9pZCBzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcih1aW50NjRfdCAqc3RhdGUsIGNvbnN0IHVpbnQ2
NF90ICpXLAogICAgIEZbN10gPSBzdGF0ZVs3XTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCAxNjsg
aSsrLCBGLS0pIHsKLSAgICAgIFQgPSBQVUxMNjQoV1tpXSk7CisgICAgICBUID0gbG9hZF91NjRf
YmUoaW4gKyBpICogOCk7CiAgICAgICBGWzBdID0gQTsKICAgICAgIEZbNF0gPSBFOwogICAgICAg
Rls4XSA9IFQ7CkBAIC00ODMsNyArNDE0LDcgQEAgc3RhdGljIHZvaWQgc2hhNTEyX2Jsb2NrX2Rh
dGFfb3JkZXIodWludDY0X3QgKnN0YXRlLCBjb25zdCB1aW50NjRfdCAqVywKICAgICBzdGF0ZVs2
XSArPSBGWzZdOwogICAgIHN0YXRlWzddICs9IEZbN107CiAKLSAgICBXICs9IDE2OworICAgIGlu
ICs9IDE2ICogODsKICAgfQogfQogCkBAIC01MDcsNyArNDM4LDcgQEAgc3RhdGljIHZvaWQgc2hh
NTEyX2Jsb2NrX2RhdGFfb3JkZXIodWludDY0X3QgKnN0YXRlLCBjb25zdCB1aW50NjRfdCAqVywK
ICAgICBST1VORF8wMF8xNShpICsgaiwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCk7ICAgICAgICBc
CiAgIH0gd2hpbGUgKDApCiAKLXN0YXRpYyB2b2lkIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyKHVp
bnQ2NF90ICpzdGF0ZSwgY29uc3QgdWludDY0X3QgKlcsCitzdGF0aWMgdm9pZCBzaGE1MTJfYmxv
Y2tfZGF0YV9vcmRlcih1aW50NjRfdCAqc3RhdGUsIGNvbnN0IHVpbnQ4X3QgKmluLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bSkgewogICB1aW50NjRfdCBh
LCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBzMCwgczEsIFQxOwogICB1aW50NjRfdCBYWzE2XTsKQEAg
LTUyNCwzNyArNDU1LDM3IEBAIHN0YXRpYyB2b2lkIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyKHVp
bnQ2NF90ICpzdGF0ZSwgY29uc3QgdWludDY0X3QgKlcsCiAgICAgZyA9IHN0YXRlWzZdOwogICAg
IGggPSBzdGF0ZVs3XTsKIAotICAgIFQxID0gWFswXSA9IFBVTEw2NChXWzBdKTsKKyAgICBUMSA9
IFhbMF0gPSBsb2FkX3U2NF9iZShpbik7CiAgICAgUk9VTkRfMDBfMTUoMCwgYSwgYiwgYywgZCwg
ZSwgZiwgZywgaCk7Ci0gICAgVDEgPSBYWzFdID0gUFVMTDY0KFdbMV0pOworICAgIFQxID0gWFsx
XSA9IGxvYWRfdTY0X2JlKGluICsgOCk7CiAgICAgUk9VTkRfMDBfMTUoMSwgaCwgYSwgYiwgYywg
ZCwgZSwgZiwgZyk7Ci0gICAgVDEgPSBYWzJdID0gUFVMTDY0KFdbMl0pOworICAgIFQxID0gWFsy
XSA9IGxvYWRfdTY0X2JlKGluICsgMiAqIDgpOwogICAgIFJPVU5EXzAwXzE1KDIsIGcsIGgsIGEs
IGIsIGMsIGQsIGUsIGYpOwotICAgIFQxID0gWFszXSA9IFBVTEw2NChXWzNdKTsKKyAgICBUMSA9
IFhbM10gPSBsb2FkX3U2NF9iZShpbiArIDMgKiA4KTsKICAgICBST1VORF8wMF8xNSgzLCBmLCBn
LCBoLCBhLCBiLCBjLCBkLCBlKTsKLSAgICBUMSA9IFhbNF0gPSBQVUxMNjQoV1s0XSk7CisgICAg
VDEgPSBYWzRdID0gbG9hZF91NjRfYmUoaW4gKyA0ICogOCk7CiAgICAgUk9VTkRfMDBfMTUoNCwg
ZSwgZiwgZywgaCwgYSwgYiwgYywgZCk7Ci0gICAgVDEgPSBYWzVdID0gUFVMTDY0KFdbNV0pOwor
ICAgIFQxID0gWFs1XSA9IGxvYWRfdTY0X2JlKGluICsgNSAqIDgpOwogICAgIFJPVU5EXzAwXzE1
KDUsIGQsIGUsIGYsIGcsIGgsIGEsIGIsIGMpOwotICAgIFQxID0gWFs2XSA9IFBVTEw2NChXWzZd
KTsKKyAgICBUMSA9IFhbNl0gPSBsb2FkX3U2NF9iZShpbiArIDYgKiA4KTsKICAgICBST1VORF8w
MF8xNSg2LCBjLCBkLCBlLCBmLCBnLCBoLCBhLCBiKTsKLSAgICBUMSA9IFhbN10gPSBQVUxMNjQo
V1s3XSk7CisgICAgVDEgPSBYWzddID0gbG9hZF91NjRfYmUoaW4gKyA3ICogOCk7CiAgICAgUk9V
TkRfMDBfMTUoNywgYiwgYywgZCwgZSwgZiwgZywgaCwgYSk7Ci0gICAgVDEgPSBYWzhdID0gUFVM
TDY0KFdbOF0pOworICAgIFQxID0gWFs4XSA9IGxvYWRfdTY0X2JlKGluICsgOCAqIDgpOwogICAg
IFJPVU5EXzAwXzE1KDgsIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgpOwotICAgIFQxID0gWFs5XSA9
IFBVTEw2NChXWzldKTsKKyAgICBUMSA9IFhbOV0gPSBsb2FkX3U2NF9iZShpbiArIDkgKiA4KTsK
ICAgICBST1VORF8wMF8xNSg5LCBoLCBhLCBiLCBjLCBkLCBlLCBmLCBnKTsKLSAgICBUMSA9IFhb
MTBdID0gUFVMTDY0KFdbMTBdKTsKKyAgICBUMSA9IFhbMTBdID0gbG9hZF91NjRfYmUoaW4gKyAx
MCAqIDgpOwogICAgIFJPVU5EXzAwXzE1KDEwLCBnLCBoLCBhLCBiLCBjLCBkLCBlLCBmKTsKLSAg
ICBUMSA9IFhbMTFdID0gUFVMTDY0KFdbMTFdKTsKKyAgICBUMSA9IFhbMTFdID0gbG9hZF91NjRf
YmUoaW4gKyAxMSAqIDgpOwogICAgIFJPVU5EXzAwXzE1KDExLCBmLCBnLCBoLCBhLCBiLCBjLCBk
LCBlKTsKLSAgICBUMSA9IFhbMTJdID0gUFVMTDY0KFdbMTJdKTsKKyAgICBUMSA9IFhbMTJdID0g
bG9hZF91NjRfYmUoaW4gKyAxMiAqIDgpOwogICAgIFJPVU5EXzAwXzE1KDEyLCBlLCBmLCBnLCBo
LCBhLCBiLCBjLCBkKTsKLSAgICBUMSA9IFhbMTNdID0gUFVMTDY0KFdbMTNdKTsKKyAgICBUMSA9
IFhbMTNdID0gbG9hZF91NjRfYmUoaW4gKyAxMyAqIDgpOwogICAgIFJPVU5EXzAwXzE1KDEzLCBk
LCBlLCBmLCBnLCBoLCBhLCBiLCBjKTsKLSAgICBUMSA9IFhbMTRdID0gUFVMTDY0KFdbMTRdKTsK
KyAgICBUMSA9IFhbMTRdID0gbG9hZF91NjRfYmUoaW4gKyAxNCAqIDgpOwogICAgIFJPVU5EXzAw
XzE1KDE0LCBjLCBkLCBlLCBmLCBnLCBoLCBhLCBiKTsKLSAgICBUMSA9IFhbMTVdID0gUFVMTDY0
KFdbMTVdKTsKKyAgICBUMSA9IFhbMTVdID0gbG9hZF91NjRfYmUoaW4gKyAxNSAqIDgpOwogICAg
IFJPVU5EXzAwXzE1KDE1LCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBhKTsKIAogICAgIGZvciAoaSA9
IDE2OyBpIDwgODA7IGkgKz0gMTYpIHsKQEAgLTU4NSw3ICs1MTYsNyBAQCBzdGF0aWMgdm9pZCBz
aGE1MTJfYmxvY2tfZGF0YV9vcmRlcih1aW50NjRfdCAqc3RhdGUsIGNvbnN0IHVpbnQ2NF90ICpX
LAogICAgIHN0YXRlWzZdICs9IGc7CiAgICAgc3RhdGVbN10gKz0gaDsKIAotICAgIFcgKz0gMTY7
CisgICAgaW4gKz0gMTYgKiA4OwogICB9CiB9CiAKQEAgLTU5NCw4ICs1MjUsNiBAQCBzdGF0aWMg
dm9pZCBzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcih1aW50NjRfdCAqc3RhdGUsIGNvbnN0IHVpbnQ2
NF90ICpXLAogI2VuZGlmICAvLyAhU0hBNTEyX0FTTQogCiAjdW5kZWYgUk9UUgotI3VuZGVmIFBV
TEw2NAotI3VuZGVmIEIKICN1bmRlZiBTaWdtYTAKICN1bmRlZiBTaWdtYTEKICN1bmRlZiBzaWdt
YTAKQEAgLTYwNCw1ICs1MzMsMyBAQCBzdGF0aWMgdm9pZCBzaGE1MTJfYmxvY2tfZGF0YV9vcmRl
cih1aW50NjRfdCAqc3RhdGUsIGNvbnN0IHVpbnQ2NF90ICpXLAogI3VuZGVmIE1hagogI3VuZGVm
IFJPVU5EXzAwXzE1CiAjdW5kZWYgUk9VTkRfMTZfODAKLSN1bmRlZiBIT1NUX2MybAotI3VuZGVm
IEhPU1RfbDJjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhL3NoYV90ZXN0
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9zaGFfdGVzdC5jYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YjI0OGI0ZWE3MDY5MGRhMjVhMjNlNWNmNTNlYmM2MjVlN2Y4NzI3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3NoYS9zaGFfdGVzdC5jYwpAQCAtMCwwICsxLDYwIEBA
CisvKiBDb3B5cmlnaHQgKGMpIDIwMTgsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0
byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3Ig
YW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHBy
b3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElF
UworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQg
V0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1Qs
IElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdI
QVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hF
VEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRP
UlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBU
SEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKyNpbmNsdWRlIDxv
cGVuc3NsL3NoYS5oPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgImlu
dGVybmFsLmgiCisjaW5jbHVkZSAiLi4vLi4vdGVzdC9hYmlfdGVzdC5oIgorCisKKyNpZiBkZWZp
bmVkKFNIQTFfQVNNKSAmJiBkZWZpbmVkKFNVUFBPUlRTX0FCSV9URVNUKQorVEVTVChTSEFUZXN0
LCBTSEExQUJJKSB7CisgIFNIQV9DVFggY3R4OworICBTSEExX0luaXQoJmN0eCk7CisKKyAgc3Rh
dGljIGNvbnN0IHVpbnQ4X3Qga0J1ZltTSEFfQ0JMT0NLICogOF0gPSB7MH07CisgIENIRUNLX0FC
SShzaGExX2Jsb2NrX2RhdGFfb3JkZXIsIGN0eC5oLCBrQnVmLCAxKTsKKyAgQ0hFQ0tfQUJJKHNo
YTFfYmxvY2tfZGF0YV9vcmRlciwgY3R4LmgsIGtCdWYsIDIpOworICBDSEVDS19BQkkoc2hhMV9i
bG9ja19kYXRhX29yZGVyLCBjdHguaCwga0J1ZiwgNCk7CisgIENIRUNLX0FCSShzaGExX2Jsb2Nr
X2RhdGFfb3JkZXIsIGN0eC5oLCBrQnVmLCA4KTsKK30KKyNlbmRpZiAgLy8gU0hBMV9BU00gJiYg
U1VQUE9SVFNfQUJJX1RFU1QKKworI2lmIGRlZmluZWQoU0hBMjU2X0FTTSkgJiYgZGVmaW5lZChT
VVBQT1JUU19BQklfVEVTVCkKK1RFU1QoU0hBVGVzdCwgU0hBMjU2QUJJKSB7CisgIFNIQTI1Nl9D
VFggY3R4OworICBTSEEyNTZfSW5pdCgmY3R4KTsKKworICBzdGF0aWMgY29uc3QgdWludDhfdCBr
QnVmW1NIQTI1Nl9DQkxPQ0sgKiA4XSA9IHswfTsKKyAgQ0hFQ0tfQUJJKHNoYTI1Nl9ibG9ja19k
YXRhX29yZGVyLCBjdHguaCwga0J1ZiwgMSk7CisgIENIRUNLX0FCSShzaGEyNTZfYmxvY2tfZGF0
YV9vcmRlciwgY3R4LmgsIGtCdWYsIDIpOworICBDSEVDS19BQkkoc2hhMjU2X2Jsb2NrX2RhdGFf
b3JkZXIsIGN0eC5oLCBrQnVmLCA0KTsKKyAgQ0hFQ0tfQUJJKHNoYTI1Nl9ibG9ja19kYXRhX29y
ZGVyLCBjdHguaCwga0J1ZiwgOCk7Cit9CisjZW5kaWYgIC8vIFNIQTI1Nl9BU00gJiYgU1VQUE9S
VFNfQUJJX1RFU1QKKworI2lmIGRlZmluZWQoU0hBNTEyX0FTTSkgJiYgZGVmaW5lZChTVVBQT1JU
U19BQklfVEVTVCkKK1RFU1QoU0hBVGVzdCwgU0hBNTEyQUJJKSB7CisgIFNIQTUxMl9DVFggY3R4
OworICBTSEE1MTJfSW5pdCgmY3R4KTsKKworICBzdGF0aWMgY29uc3QgdWludDhfdCBrQnVmW1NI
QTUxMl9DQkxPQ0sgKiA0XSA9IHswfTsKKyAgQ0hFQ0tfQUJJKHNoYTUxMl9ibG9ja19kYXRhX29y
ZGVyLCBjdHguaCwga0J1ZiwgMSk7CisgIENIRUNLX0FCSShzaGE1MTJfYmxvY2tfZGF0YV9vcmRl
ciwgY3R4LmgsIGtCdWYsIDIpOworICBDSEVDS19BQkkoc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIs
IGN0eC5oLCBrQnVmLCAzKTsKKyAgQ0hFQ0tfQUJJKHNoYTUxMl9ibG9ja19kYXRhX29yZGVyLCBj
dHguaCwga0J1ZiwgNCk7Cit9CisjZW5kaWYgIC8vIFNIQTUxMl9BU00gJiYgU1VQUE9SVFNfQUJJ
X1RFU1QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vaHJzcy9hc20vcG9seV9ycV9tdWwuUyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vaHJzcy9hc20vcG9seV9ycV9tdWwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYmFhYmQzZGE3YTYy
MjVlMWE5N2I3YmQ3NjNmNDZmMmU5ZWE5ZDQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9ocnNzL2FzbS9wb2x5X3JxX211bC5TCkBAIC0wLDAgKzEsODQ2MyBAQAorLy8gQ29weXJpZ2h0
IChjKSAyMDE3LCB0aGUgSFJTUyBhdXRob3JzLgorLy8KKy8vIFBlcm1pc3Npb24gdG8gdXNlLCBj
b3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorLy8g
cHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0
aGF0IHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKy8vCisvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklE
RUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKy8vIFdJ
VEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YKKy8vIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorLy8gU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVD
VCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisvLyBXSEFUU09FVkVS
IFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4g
QU4gQUNUSU9OCisvLyBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBB
Q1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisvLyBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBP
UiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorCisjaWYgIWRlZmluZWQoT1BFTlNTTF9O
T19BU00pICYmICFkZWZpbmVkKE9QRU5TU0xfU01BTEwpICYmIGRlZmluZWQoX19saW51eF9fKQor
CisvLyBUaGlzIGlzIHRoZSBwb2x5bm9taWFsIG11bHRpcGxpY2F0aW9uIGZ1bmN0aW9uIGZyb20g
W0hSU1NdLCBwcm92aWRlZCBieSBraW5kCisvLyBwZXJtaXNzaW9uIG9mIHRoZSBhdXRob3JzLgor
Ly8KKy8vIEhSU1M6IGh0dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMTcvMTAwNQorCisjIFRoaXMg
ZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IHBvbHlfcnFfbXVsLnB5CisudGV4dAorLmFsaWduIDMyCitt
YXNrX2xvdzl3b3JkczoKKy53b3JkIDB4ZmZmZgorLndvcmQgMHhmZmZmCisud29yZCAweGZmZmYK
Ky53b3JkIDB4ZmZmZgorLndvcmQgMHhmZmZmCisud29yZCAweGZmZmYKKy53b3JkIDB4ZmZmZgor
LndvcmQgMHhmZmZmCisud29yZCAweGZmZmYKKy53b3JkIDB4MAorLndvcmQgMHgwCisud29yZCAw
eDAKKy53b3JkIDB4MAorLndvcmQgMHgwCisud29yZCAweDAKKy53b3JkIDB4MAorY29uc3QzOgor
LndvcmQgMworLndvcmQgMworLndvcmQgMworLndvcmQgMworLndvcmQgMworLndvcmQgMworLndv
cmQgMworLndvcmQgMworLndvcmQgMworLndvcmQgMworLndvcmQgMworLndvcmQgMworLndvcmQg
MworLndvcmQgMworLndvcmQgMworLndvcmQgMworY29uc3Q5OgorLndvcmQgOQorLndvcmQgOQor
LndvcmQgOQorLndvcmQgOQorLndvcmQgOQorLndvcmQgOQorLndvcmQgOQorLndvcmQgOQorLndv
cmQgOQorLndvcmQgOQorLndvcmQgOQorLndvcmQgOQorLndvcmQgOQorLndvcmQgOQorLndvcmQg
OQorLndvcmQgOQorY29uc3QwOgorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAor
LndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndv
cmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorY29uc3Q3
Mjk6Cisud29yZCA3MjkKKy53b3JkIDcyOQorLndvcmQgNzI5Cisud29yZCA3MjkKKy53b3JkIDcy
OQorLndvcmQgNzI5Cisud29yZCA3MjkKKy53b3JkIDcyOQorLndvcmQgNzI5Cisud29yZCA3MjkK
Ky53b3JkIDcyOQorLndvcmQgNzI5Cisud29yZCA3MjkKKy53b3JkIDcyOQorLndvcmQgNzI5Cisu
d29yZCA3MjkKK2NvbnN0M19pbnY6Cisud29yZCA0MzY5MQorLndvcmQgNDM2OTEKKy53b3JkIDQz
NjkxCisud29yZCA0MzY5MQorLndvcmQgNDM2OTEKKy53b3JkIDQzNjkxCisud29yZCA0MzY5MQor
LndvcmQgNDM2OTEKKy53b3JkIDQzNjkxCisud29yZCA0MzY5MQorLndvcmQgNDM2OTEKKy53b3Jk
IDQzNjkxCisud29yZCA0MzY5MQorLndvcmQgNDM2OTEKKy53b3JkIDQzNjkxCisud29yZCA0MzY5
MQorY29uc3Q1X2ludjoKKy53b3JkIDUyNDI5Cisud29yZCA1MjQyOQorLndvcmQgNTI0MjkKKy53
b3JkIDUyNDI5Cisud29yZCA1MjQyOQorLndvcmQgNTI0MjkKKy53b3JkIDUyNDI5Cisud29yZCA1
MjQyOQorLndvcmQgNTI0MjkKKy53b3JkIDUyNDI5Cisud29yZCA1MjQyOQorLndvcmQgNTI0MjkK
Ky53b3JkIDUyNDI5Cisud29yZCA1MjQyOQorLndvcmQgNTI0MjkKKy53b3JkIDUyNDI5CitzaHVm
NDhfMTY6CisuYnl0ZSAxMAorLmJ5dGUgMTEKKy5ieXRlIDEyCisuYnl0ZSAxMworLmJ5dGUgMTQK
Ky5ieXRlIDE1CisuYnl0ZSAwCisuYnl0ZSAxCisuYnl0ZSAyCisuYnl0ZSAzCisuYnl0ZSA0Cisu
Ynl0ZSA1CisuYnl0ZSA2CisuYnl0ZSA3CisuYnl0ZSA4CisuYnl0ZSA5CisuYnl0ZSAxMAorLmJ5
dGUgMTEKKy5ieXRlIDEyCisuYnl0ZSAxMworLmJ5dGUgMTQKKy5ieXRlIDE1CisuYnl0ZSAwCisu
Ynl0ZSAxCisuYnl0ZSAyCisuYnl0ZSAzCisuYnl0ZSA0CisuYnl0ZSA1CisuYnl0ZSA2CisuYnl0
ZSA3CisuYnl0ZSA4CisuYnl0ZSA5CitzaHVmbWluMV9tYXNrMzoKKy5ieXRlIDIKKy5ieXRlIDMK
Ky5ieXRlIDQKKy5ieXRlIDUKKy5ieXRlIDYKKy5ieXRlIDcKKy5ieXRlIDI1NQorLmJ5dGUgMjU1
CisuYnl0ZSAyNTUKKy5ieXRlIDI1NQorLmJ5dGUgMjU1CisuYnl0ZSAyNTUKKy5ieXRlIDI1NQor
LmJ5dGUgMjU1CisuYnl0ZSAyNTUKKy5ieXRlIDI1NQorLmJ5dGUgMjU1CisuYnl0ZSAyNTUKKy5i
eXRlIDI1NQorLmJ5dGUgMjU1CisuYnl0ZSAyNTUKKy5ieXRlIDI1NQorLmJ5dGUgMjU1CisuYnl0
ZSAyNTUKKy5ieXRlIDI1NQorLmJ5dGUgMjU1CisuYnl0ZSAyNTUKKy5ieXRlIDI1NQorLmJ5dGUg
MjU1CisuYnl0ZSAyNTUKKy5ieXRlIDI1NQorLmJ5dGUgMjU1CittYXNrMzJfdG9fMTY6Cisud29y
ZCAweGZmZmYKKy53b3JkIDB4MAorLndvcmQgMHhmZmZmCisud29yZCAweDAKKy53b3JkIDB4ZmZm
ZgorLndvcmQgMHgwCisud29yZCAweGZmZmYKKy53b3JkIDB4MAorLndvcmQgMHhmZmZmCisud29y
ZCAweDAKKy53b3JkIDB4ZmZmZgorLndvcmQgMHgwCisud29yZCAweGZmZmYKKy53b3JkIDB4MAor
LndvcmQgMHhmZmZmCisud29yZCAweDAKK21hc2s1XzNfNV8zOgorLndvcmQgMAorLndvcmQgMAor
LndvcmQgMAorLndvcmQgNjU1MzUKKy53b3JkIDY1NTM1Cisud29yZCA2NTUzNQorLndvcmQgNjU1
MzUKKy53b3JkIDY1NTM1Cisud29yZCAwCisud29yZCAwCisud29yZCAwCisud29yZCA2NTUzNQor
LndvcmQgNjU1MzUKKy53b3JkIDY1NTM1Cisud29yZCA2NTUzNQorLndvcmQgNjU1MzUKK21hc2sz
XzVfM181OgorLndvcmQgNjU1MzUKKy53b3JkIDY1NTM1Cisud29yZCA2NTUzNQorLndvcmQgMAor
LndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgNjU1MzUKKy53b3JkIDY1
NTM1Cisud29yZCA2NTUzNQorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndvcmQgMAorLndv
cmQgMAorbWFzazNfNV80XzNfMToKKy53b3JkIDY1NTM1Cisud29yZCA2NTUzNQorLndvcmQgNjU1
MzUKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAK
Ky53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDY1NTM1Cisud29yZCA2NTUzNQorLndv
cmQgNjU1MzUKKy53b3JkIDAKK21hc2tfa2VlcGhpZ2g6Cisud29yZCAwCisud29yZCAwCisud29y
ZCAwCisud29yZCAwCisud29yZCAwCisud29yZCAwCisud29yZCAwCisud29yZCAwCisud29yZCA2
NTUzNQorLndvcmQgNjU1MzUKKy53b3JkIDY1NTM1Cisud29yZCA2NTUzNQorLndvcmQgNjU1MzUK
Ky53b3JkIDY1NTM1Cisud29yZCA2NTUzNQorLndvcmQgNjU1MzUKK21hc2tfbW9kODE5MjoKKy53
b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEK
Ky53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgx
OTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3JkIDgxOTEKKy53b3Jk
IDgxOTEKKy53b3JkIDgxOTEKKy50ZXh0CisuZ2xvYmFsIHBvbHlfUnFfbXVsCisuaGlkZGVuIHBv
bHlfUnFfbXVsCisudHlwZSBwb2x5X1JxX211bCwgQGZ1bmN0aW9uCisuYXR0X3N5bnRheCBwcmVm
aXgKK3BvbHlfUnFfbXVsOgorLmNmaV9zdGFydHByb2MKK3B1c2ggJXJicAorLmNmaV9hZGp1c3Rf
Y2ZhX29mZnNldCA4CisuY2ZpX29mZnNldCByYnAsIC0xNgorbW92cSAlcnNwLCAlcmJwCisuY2Zp
X2RlZl9jZmFfcmVnaXN0ZXIgcmJwCitwdXNoICVyMTIKKy5jZmlfb2Zmc2V0IHIxMiwgLTI0Citt
b3YgJXJzcCwgJXI4CithbmRxICQtMzIsICVyc3AKK3N1YnEgJDYxNDQsICVyc3AKK21vdiAlcnNw
LCAlcmF4CitzdWJxICQ2MTQ0LCAlcnNwCittb3YgJXJzcCwgJXIxMQorc3VicSAkMTIyODgsICVy
c3AKK21vdiAlcnNwLCAlcjEyCitzdWJxICQ1MTIsICVyc3AKK3Ztb3ZkcWEgY29uc3QzKCVyaXAp
LCAleW1tMwordm1vdmRxdSAwKCVyc2kpLCAleW1tMAordm1vdmRxdSA4OCglcnNpKSwgJXltbTEK
K3Ztb3ZkcXUgMTc2KCVyc2kpLCAleW1tMgordm1vdmRxdSAyNjQoJXJzaSksICV5bW0xMgordm1v
dmRxdSAxMDU2KCVyc2kpLCAleW1tNAordm1vdmRxdSAxMTQ0KCVyc2kpLCAleW1tNQordm1vdmRx
dSAxMjMyKCVyc2kpLCAleW1tNgordm1vdmRxdSAxMzIwKCVyc2kpLCAleW1tNwordm1vdmRxdSAz
NTIoJXJzaSksICV5bW04Cit2bW92ZHF1IDQ0MCglcnNpKSwgJXltbTkKK3Ztb3ZkcXUgNTI4KCVy
c2kpLCAleW1tMTAKK3Ztb3ZkcXUgNjE2KCVyc2kpLCAleW1tMTEKK3Ztb3ZkcWEgJXltbTAsIDAo
JXJheCkKK3Ztb3ZkcWEgJXltbTEsIDk2KCVyYXgpCit2cGFkZHcgJXltbTAsICV5bW0xLCAleW1t
MTQKK3Ztb3ZkcWEgJXltbTE0LCAxOTIoJXJheCkKK3Ztb3ZkcWEgJXltbTIsIDI4OCglcmF4KQor
dm1vdmRxYSAleW1tMTIsIDM4NCglcmF4KQordnBhZGR3ICV5bW0yLCAleW1tMTIsICV5bW0xNAor
dm1vdmRxYSAleW1tMTQsIDQ4MCglcmF4KQordnBhZGR3ICV5bW0wLCAleW1tMiwgJXltbTE0Cit2
bW92ZHFhICV5bW0xNCwgNTc2KCVyYXgpCit2cGFkZHcgJXltbTEsICV5bW0xMiwgJXltbTE1Cit2
bW92ZHFhICV5bW0xNSwgNjcyKCVyYXgpCit2cGFkZHcgJXltbTE0LCAleW1tMTUsICV5bW0xNAor
dm1vdmRxYSAleW1tMTQsIDc2OCglcmF4KQordm1vdmRxYSAleW1tNCwgNTE4NCglcmF4KQordm1v
dmRxYSAleW1tNSwgNTI4MCglcmF4KQordnBhZGR3ICV5bW00LCAleW1tNSwgJXltbTE0Cit2bW92
ZHFhICV5bW0xNCwgNTM3NiglcmF4KQordm1vdmRxYSAleW1tNiwgNTQ3MiglcmF4KQordm1vdmRx
YSAleW1tNywgNTU2OCglcmF4KQordnBhZGR3ICV5bW02LCAleW1tNywgJXltbTE0Cit2bW92ZHFh
ICV5bW0xNCwgNTY2NCglcmF4KQordnBhZGR3ICV5bW00LCAleW1tNiwgJXltbTE0Cit2bW92ZHFh
ICV5bW0xNCwgNTc2MCglcmF4KQordnBhZGR3ICV5bW01LCAleW1tNywgJXltbTE1Cit2bW92ZHFh
ICV5bW0xNSwgNTg1NiglcmF4KQordnBhZGR3ICV5bW0xNCwgJXltbTE1LCAleW1tMTQKK3Ztb3Zk
cWEgJXltbTE0LCA1OTUyKCVyYXgpCit2bW92ZHFhICV5bW0wLCAwKCVyc3ApCit2bW92ZHFhICV5
bW0xLCAzMiglcnNwKQordm1vdmRxYSAleW1tMiwgNjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTEyLCA5
NiglcnNwKQordm1vdmRxYSAleW1tOCwgMTI4KCVyc3ApCit2bW92ZHFhICV5bW05LCAxNjAoJXJz
cCkKK3Ztb3ZkcWEgJXltbTEwLCAxOTIoJXJzcCkKK3Ztb3ZkcWEgJXltbTExLCAyMjQoJXJzcCkK
K3Ztb3ZkcXUgNzA0KCVyc2kpLCAleW1tMAordnBhZGR3IDAoJXJzcCksICV5bW0wLCAleW1tMQor
dnBhZGR3IDEyOCglcnNwKSwgJXltbTQsICV5bW0yCit2cGFkZHcgJXltbTIsICV5bW0xLCAleW1t
OAordnBzdWJ3ICV5bW0yLCAleW1tMSwgJXltbTEyCit2bW92ZHFhICV5bW0wLCAyNTYoJXJzcCkK
K3Ztb3ZkcXUgNzkyKCVyc2kpLCAleW1tMAordnBhZGR3IDMyKCVyc3ApLCAleW1tMCwgJXltbTEK
K3ZwYWRkdyAxNjAoJXJzcCksICV5bW01LCAleW1tMgordnBhZGR3ICV5bW0yLCAleW1tMSwgJXlt
bTkKK3Zwc3VidyAleW1tMiwgJXltbTEsICV5bW0xMwordm1vdmRxYSAleW1tMCwgMjg4KCVyc3Ap
Cit2bW92ZHF1IDg4MCglcnNpKSwgJXltbTAKK3ZwYWRkdyA2NCglcnNwKSwgJXltbTAsICV5bW0x
Cit2cGFkZHcgMTkyKCVyc3ApLCAleW1tNiwgJXltbTIKK3ZwYWRkdyAleW1tMiwgJXltbTEsICV5
bW0xMAordnBzdWJ3ICV5bW0yLCAleW1tMSwgJXltbTE0Cit2bW92ZHFhICV5bW0wLCAzMjAoJXJz
cCkKK3Ztb3ZkcXUgOTY4KCVyc2kpLCAleW1tMAordnBhZGR3IDk2KCVyc3ApLCAleW1tMCwgJXlt
bTEKK3ZwYWRkdyAyMjQoJXJzcCksICV5bW03LCAleW1tMgordnBhZGR3ICV5bW0yLCAleW1tMSwg
JXltbTExCit2cHN1YncgJXltbTIsICV5bW0xLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTAsIDM1Migl
cnNwKQordm1vdmRxYSAleW1tOCwgODY0KCVyYXgpCit2bW92ZHFhICV5bW05LCA5NjAoJXJheCkK
K3ZwYWRkdyAleW1tOCwgJXltbTksICV5bW0wCit2bW92ZHFhICV5bW0wLCAxMDU2KCVyYXgpCit2
bW92ZHFhICV5bW0xMCwgMTE1MiglcmF4KQordm1vdmRxYSAleW1tMTEsIDEyNDgoJXJheCkKK3Zw
YWRkdyAleW1tMTAsICV5bW0xMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDEzNDQoJXJheCkKK3Zw
YWRkdyAleW1tOCwgJXltbTEwLCAleW1tMAordm1vdmRxYSAleW1tMCwgMTQ0MCglcmF4KQordnBh
ZGR3ICV5bW05LCAleW1tMTEsICV5bW0xCit2bW92ZHFhICV5bW0xLCAxNTM2KCVyYXgpCit2cGFk
ZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgMTYzMiglcmF4KQordm1vdmRx
YSAleW1tMTIsIDE3MjgoJXJheCkKK3Ztb3ZkcWEgJXltbTEzLCAxODI0KCVyYXgpCit2cGFkZHcg
JXltbTEyLCAleW1tMTMsICV5bW0wCit2bW92ZHFhICV5bW0wLCAxOTIwKCVyYXgpCit2bW92ZHFh
ICV5bW0xNCwgMjAxNiglcmF4KQordm1vdmRxYSAleW1tMTUsIDIxMTIoJXJheCkKK3ZwYWRkdyAl
eW1tMTQsICV5bW0xNSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDIyMDgoJXJheCkKK3ZwYWRkdyAl
eW1tMTIsICV5bW0xNCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDIzMDQoJXJheCkKK3ZwYWRkdyAl
eW1tMTMsICV5bW0xNSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDI0MDAoJXJheCkKK3ZwYWRkdyAl
eW1tMCwgJXltbTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCAyNDk2KCVyYXgpCit2bW92ZHFhIDI1
NiglcnNwKSwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgMCglcnNwKSwg
JXltbTAsICV5bW0wCit2cHNsbHcgJDIsICV5bW00LCAleW1tMQordnBhZGR3IDEyOCglcnNwKSwg
JXltbTEsICV5bW0xCit2cHNsbHcgJDEsICV5bW0xLCAleW1tMQordnBhZGR3ICV5bW0xLCAleW1t
MCwgJXltbTgKK3Zwc3VidyAleW1tMSwgJXltbTAsICV5bW0xMgordm1vdmRxYSAyODgoJXJzcCks
ICV5bW0wCit2cHNsbHcgJDIsICV5bW0wLCAleW1tMAordnBhZGR3IDMyKCVyc3ApLCAleW1tMCwg
JXltbTAKK3Zwc2xsdyAkMiwgJXltbTUsICV5bW0xCit2cGFkZHcgMTYwKCVyc3ApLCAleW1tMSwg
JXltbTEKK3Zwc2xsdyAkMSwgJXltbTEsICV5bW0xCit2cGFkZHcgJXltbTEsICV5bW0wLCAleW1t
OQordnBzdWJ3ICV5bW0xLCAleW1tMCwgJXltbTEzCit2bW92ZHFhIDMyMCglcnNwKSwgJXltbTAK
K3Zwc2xsdyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgNjQoJXJzcCksICV5bW0wLCAleW1tMAor
dnBzbGx3ICQyLCAleW1tNiwgJXltbTEKK3ZwYWRkdyAxOTIoJXJzcCksICV5bW0xLCAleW1tMQor
dnBzbGx3ICQxLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAleW1tMSwgJXltbTAsICV5bW0xMAordnBz
dWJ3ICV5bW0xLCAleW1tMCwgJXltbTE0Cit2bW92ZHFhIDM1MiglcnNwKSwgJXltbTAKK3Zwc2xs
dyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgOTYoJXJzcCksICV5bW0wLCAleW1tMAordnBzbGx3
ICQyLCAleW1tNywgJXltbTEKK3ZwYWRkdyAyMjQoJXJzcCksICV5bW0xLCAleW1tMQordnBzbGx3
ICQxLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAleW1tMSwgJXltbTAsICV5bW0xMQordnBzdWJ3ICV5
bW0xLCAleW1tMCwgJXltbTE1Cit2bW92ZHFhICV5bW04LCAyNTkyKCVyYXgpCit2bW92ZHFhICV5
bW05LCAyNjg4KCVyYXgpCit2cGFkZHcgJXltbTgsICV5bW05LCAleW1tMAordm1vdmRxYSAleW1t
MCwgMjc4NCglcmF4KQordm1vdmRxYSAleW1tMTAsIDI4ODAoJXJheCkKK3Ztb3ZkcWEgJXltbTEx
LCAyOTc2KCVyYXgpCit2cGFkZHcgJXltbTEwLCAleW1tMTEsICV5bW0wCit2bW92ZHFhICV5bW0w
LCAzMDcyKCVyYXgpCit2cGFkZHcgJXltbTgsICV5bW0xMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDMxNjgoJXJheCkKK3ZwYWRkdyAleW1tOSwgJXltbTExLCAleW1tMQordm1vdmRxYSAleW1tMSwg
MzI2NCglcmF4KQordnBhZGR3ICV5bW0wLCAleW1tMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDMz
NjAoJXJheCkKK3Ztb3ZkcWEgJXltbTEyLCAzNDU2KCVyYXgpCit2bW92ZHFhICV5bW0xMywgMzU1
MiglcmF4KQordnBhZGR3ICV5bW0xMiwgJXltbTEzLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzY0
OCglcmF4KQordm1vdmRxYSAleW1tMTQsIDM3NDQoJXJheCkKK3Ztb3ZkcWEgJXltbTE1LCAzODQw
KCVyYXgpCit2cGFkZHcgJXltbTE0LCAleW1tMTUsICV5bW0wCit2bW92ZHFhICV5bW0wLCAzOTM2
KCVyYXgpCit2cGFkZHcgJXltbTEyLCAleW1tMTQsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0MDMy
KCVyYXgpCit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xCit2bW92ZHFhICV5bW0xLCA0MTI4
KCVyYXgpCit2cGFkZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgNDIyNCgl
cmF4KQordnBtdWxsdyAleW1tMywgJXltbTQsICV5bW0wCit2cGFkZHcgMjU2KCVyc3ApLCAleW1t
MCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDEyOCglcnNwKSwg
JXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAwKCVyc3Ap
LCAleW1tMCwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tNSwgJXltbTAKK3ZwYWRkdyAyODgo
JXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcg
MTYwKCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBh
ZGR3IDMyKCVyc3ApLCAleW1tMCwgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tNiwgJXltbTAK
K3ZwYWRkdyAzMjAoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5
bW0wCit2cGFkZHcgMTkyKCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0w
LCAleW1tMAordnBhZGR3IDY0KCVyc3ApLCAleW1tMCwgJXltbTE0Cit2cG11bGx3ICV5bW0zLCAl
eW1tNywgJXltbTAKK3ZwYWRkdyAzNTIoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1t
MywgJXltbTAsICV5bW0wCit2cGFkZHcgMjI0KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcg
JXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDk2KCVyc3ApLCAleW1tMCwgJXltbTE1Cit2bW92
ZHFhICV5bW0xMiwgNDMyMCglcmF4KQordm1vdmRxYSAleW1tMTMsIDQ0MTYoJXJheCkKK3ZwYWRk
dyAleW1tMTIsICV5bW0xMywgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDQ1MTIoJXJheCkKK3Ztb3Zk
cWEgJXltbTE0LCA0NjA4KCVyYXgpCit2bW92ZHFhICV5bW0xNSwgNDcwNCglcmF4KQordnBhZGR3
ICV5bW0xNCwgJXltbTE1LCAleW1tMAordm1vdmRxYSAleW1tMCwgNDgwMCglcmF4KQordnBhZGR3
ICV5bW0xMiwgJXltbTE0LCAleW1tMAordm1vdmRxYSAleW1tMCwgNDg5NiglcmF4KQordnBhZGR3
ICV5bW0xMywgJXltbTE1LCAleW1tMQordm1vdmRxYSAleW1tMSwgNDk5MiglcmF4KQordnBhZGR3
ICV5bW0wLCAleW1tMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDUwODgoJXJheCkKK3Ztb3ZkcXUg
MzIoJXJzaSksICV5bW0wCit2bW92ZHF1IDEyMCglcnNpKSwgJXltbTEKK3Ztb3ZkcXUgMjA4KCVy
c2kpLCAleW1tMgordm1vdmRxdSAyOTYoJXJzaSksICV5bW0xMgordm1vdmRxdSAxMDg4KCVyc2kp
LCAleW1tNAordm1vdmRxdSAxMTc2KCVyc2kpLCAleW1tNQordm1vdmRxdSAxMjY0KCVyc2kpLCAl
eW1tNgordm1vdmRxdSAxMzUyKCVyc2kpLCAleW1tNwordm1vdmRxdSAzODQoJXJzaSksICV5bW04
Cit2bW92ZHF1IDQ3MiglcnNpKSwgJXltbTkKK3Ztb3ZkcXUgNTYwKCVyc2kpLCAleW1tMTAKK3Zt
b3ZkcXUgNjQ4KCVyc2kpLCAleW1tMTEKK3Ztb3ZkcWEgJXltbTAsIDMyKCVyYXgpCit2bW92ZHFh
ICV5bW0xLCAxMjgoJXJheCkKK3ZwYWRkdyAleW1tMCwgJXltbTEsICV5bW0xNAordm1vdmRxYSAl
eW1tMTQsIDIyNCglcmF4KQordm1vdmRxYSAleW1tMiwgMzIwKCVyYXgpCit2bW92ZHFhICV5bW0x
MiwgNDE2KCVyYXgpCit2cGFkZHcgJXltbTIsICV5bW0xMiwgJXltbTE0Cit2bW92ZHFhICV5bW0x
NCwgNTEyKCVyYXgpCit2cGFkZHcgJXltbTAsICV5bW0yLCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0
LCA2MDgoJXJheCkKK3ZwYWRkdyAleW1tMSwgJXltbTEyLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1
LCA3MDQoJXJheCkKK3ZwYWRkdyAleW1tMTQsICV5bW0xNSwgJXltbTE0Cit2bW92ZHFhICV5bW0x
NCwgODAwKCVyYXgpCit2bW92ZHFhICV5bW00LCA1MjE2KCVyYXgpCit2bW92ZHFhICV5bW01LCA1
MzEyKCVyYXgpCit2cGFkZHcgJXltbTQsICV5bW01LCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA1
NDA4KCVyYXgpCit2bW92ZHFhICV5bW02LCA1NTA0KCVyYXgpCit2bW92ZHFhICV5bW03LCA1NjAw
KCVyYXgpCit2cGFkZHcgJXltbTYsICV5bW03LCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA1Njk2
KCVyYXgpCit2cGFkZHcgJXltbTQsICV5bW02LCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA1Nzky
KCVyYXgpCit2cGFkZHcgJXltbTUsICV5bW03LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA1ODg4
KCVyYXgpCit2cGFkZHcgJXltbTE0LCAleW1tMTUsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDU5
ODQoJXJheCkKK3Ztb3ZkcWEgJXltbTAsIDAoJXJzcCkKK3Ztb3ZkcWEgJXltbTEsIDMyKCVyc3Ap
Cit2bW92ZHFhICV5bW0yLCA2NCglcnNwKQordm1vdmRxYSAleW1tMTIsIDk2KCVyc3ApCit2bW92
ZHFhICV5bW04LCAxMjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTksIDE2MCglcnNwKQordm1vdmRxYSAl
eW1tMTAsIDE5MiglcnNwKQordm1vdmRxYSAleW1tMTEsIDIyNCglcnNwKQordm1vdmRxdSA3MzYo
JXJzaSksICV5bW0wCit2cGFkZHcgMCglcnNwKSwgJXltbTAsICV5bW0xCit2cGFkZHcgMTI4KCVy
c3ApLCAleW1tNCwgJXltbTIKK3ZwYWRkdyAleW1tMiwgJXltbTEsICV5bW04Cit2cHN1YncgJXlt
bTIsICV5bW0xLCAleW1tMTIKK3Ztb3ZkcWEgJXltbTAsIDI1NiglcnNwKQordm1vdmRxdSA4MjQo
JXJzaSksICV5bW0wCit2cGFkZHcgMzIoJXJzcCksICV5bW0wLCAleW1tMQordnBhZGR3IDE2MCgl
cnNwKSwgJXltbTUsICV5bW0yCit2cGFkZHcgJXltbTIsICV5bW0xLCAleW1tOQordnBzdWJ3ICV5
bW0yLCAleW1tMSwgJXltbTEzCit2bW92ZHFhICV5bW0wLCAyODgoJXJzcCkKK3Ztb3ZkcXUgOTEy
KCVyc2kpLCAleW1tMAordnBhZGR3IDY0KCVyc3ApLCAleW1tMCwgJXltbTEKK3ZwYWRkdyAxOTIo
JXJzcCksICV5bW02LCAleW1tMgordnBhZGR3ICV5bW0yLCAleW1tMSwgJXltbTEwCit2cHN1Yncg
JXltbTIsICV5bW0xLCAleW1tMTQKK3Ztb3ZkcWEgJXltbTAsIDMyMCglcnNwKQordm1vdmRxdSAx
MDAwKCVyc2kpLCAleW1tMAordnBhZGR3IDk2KCVyc3ApLCAleW1tMCwgJXltbTEKK3ZwYWRkdyAy
MjQoJXJzcCksICV5bW03LCAleW1tMgordnBhZGR3ICV5bW0yLCAleW1tMSwgJXltbTExCit2cHN1
YncgJXltbTIsICV5bW0xLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTAsIDM1MiglcnNwKQordm1vdmRx
YSAleW1tOCwgODk2KCVyYXgpCit2bW92ZHFhICV5bW05LCA5OTIoJXJheCkKK3ZwYWRkdyAleW1t
OCwgJXltbTksICV5bW0wCit2bW92ZHFhICV5bW0wLCAxMDg4KCVyYXgpCit2bW92ZHFhICV5bW0x
MCwgMTE4NCglcmF4KQordm1vdmRxYSAleW1tMTEsIDEyODAoJXJheCkKK3ZwYWRkdyAleW1tMTAs
ICV5bW0xMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDEzNzYoJXJheCkKK3ZwYWRkdyAleW1tOCwg
JXltbTEwLCAleW1tMAordm1vdmRxYSAleW1tMCwgMTQ3MiglcmF4KQordnBhZGR3ICV5bW05LCAl
eW1tMTEsICV5bW0xCit2bW92ZHFhICV5bW0xLCAxNTY4KCVyYXgpCit2cGFkZHcgJXltbTAsICV5
bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgMTY2NCglcmF4KQordm1vdmRxYSAleW1tMTIsIDE3
NjAoJXJheCkKK3Ztb3ZkcWEgJXltbTEzLCAxODU2KCVyYXgpCit2cGFkZHcgJXltbTEyLCAleW1t
MTMsICV5bW0wCit2bW92ZHFhICV5bW0wLCAxOTUyKCVyYXgpCit2bW92ZHFhICV5bW0xNCwgMjA0
OCglcmF4KQordm1vdmRxYSAleW1tMTUsIDIxNDQoJXJheCkKK3ZwYWRkdyAleW1tMTQsICV5bW0x
NSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDIyNDAoJXJheCkKK3ZwYWRkdyAleW1tMTIsICV5bW0x
NCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDIzMzYoJXJheCkKK3ZwYWRkdyAleW1tMTMsICV5bW0x
NSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDI0MzIoJXJheCkKK3ZwYWRkdyAleW1tMCwgJXltbTEs
ICV5bW0wCit2bW92ZHFhICV5bW0wLCAyNTI4KCVyYXgpCit2bW92ZHFhIDI1NiglcnNwKSwgJXlt
bTAKK3Zwc2xsdyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgMCglcnNwKSwgJXltbTAsICV5bW0w
Cit2cHNsbHcgJDIsICV5bW00LCAleW1tMQordnBhZGR3IDEyOCglcnNwKSwgJXltbTEsICV5bW0x
Cit2cHNsbHcgJDEsICV5bW0xLCAleW1tMQordnBhZGR3ICV5bW0xLCAleW1tMCwgJXltbTgKK3Zw
c3VidyAleW1tMSwgJXltbTAsICV5bW0xMgordm1vdmRxYSAyODgoJXJzcCksICV5bW0wCit2cHNs
bHcgJDIsICV5bW0wLCAleW1tMAordnBhZGR3IDMyKCVyc3ApLCAleW1tMCwgJXltbTAKK3Zwc2xs
dyAkMiwgJXltbTUsICV5bW0xCit2cGFkZHcgMTYwKCVyc3ApLCAleW1tMSwgJXltbTEKK3Zwc2xs
dyAkMSwgJXltbTEsICV5bW0xCit2cGFkZHcgJXltbTEsICV5bW0wLCAleW1tOQordnBzdWJ3ICV5
bW0xLCAleW1tMCwgJXltbTEzCit2bW92ZHFhIDMyMCglcnNwKSwgJXltbTAKK3Zwc2xsdyAkMiwg
JXltbTAsICV5bW0wCit2cGFkZHcgNjQoJXJzcCksICV5bW0wLCAleW1tMAordnBzbGx3ICQyLCAl
eW1tNiwgJXltbTEKK3ZwYWRkdyAxOTIoJXJzcCksICV5bW0xLCAleW1tMQordnBzbGx3ICQxLCAl
eW1tMSwgJXltbTEKK3ZwYWRkdyAleW1tMSwgJXltbTAsICV5bW0xMAordnBzdWJ3ICV5bW0xLCAl
eW1tMCwgJXltbTE0Cit2bW92ZHFhIDM1MiglcnNwKSwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTAs
ICV5bW0wCit2cGFkZHcgOTYoJXJzcCksICV5bW0wLCAleW1tMAordnBzbGx3ICQyLCAleW1tNywg
JXltbTEKK3ZwYWRkdyAyMjQoJXJzcCksICV5bW0xLCAleW1tMQordnBzbGx3ICQxLCAleW1tMSwg
JXltbTEKK3ZwYWRkdyAleW1tMSwgJXltbTAsICV5bW0xMQordnBzdWJ3ICV5bW0xLCAleW1tMCwg
JXltbTE1Cit2bW92ZHFhICV5bW04LCAyNjI0KCVyYXgpCit2bW92ZHFhICV5bW05LCAyNzIwKCVy
YXgpCit2cGFkZHcgJXltbTgsICV5bW05LCAleW1tMAordm1vdmRxYSAleW1tMCwgMjgxNiglcmF4
KQordm1vdmRxYSAleW1tMTAsIDI5MTIoJXJheCkKK3Ztb3ZkcWEgJXltbTExLCAzMDA4KCVyYXgp
Cit2cGFkZHcgJXltbTEwLCAleW1tMTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCAzMTA0KCVyYXgp
Cit2cGFkZHcgJXltbTgsICV5bW0xMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDMyMDAoJXJheCkK
K3ZwYWRkdyAleW1tOSwgJXltbTExLCAleW1tMQordm1vdmRxYSAleW1tMSwgMzI5NiglcmF4KQor
dnBhZGR3ICV5bW0wLCAleW1tMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDMzOTIoJXJheCkKK3Zt
b3ZkcWEgJXltbTEyLCAzNDg4KCVyYXgpCit2bW92ZHFhICV5bW0xMywgMzU4NCglcmF4KQordnBh
ZGR3ICV5bW0xMiwgJXltbTEzLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzY4MCglcmF4KQordm1v
dmRxYSAleW1tMTQsIDM3NzYoJXJheCkKK3Ztb3ZkcWEgJXltbTE1LCAzODcyKCVyYXgpCit2cGFk
ZHcgJXltbTE0LCAleW1tMTUsICV5bW0wCit2bW92ZHFhICV5bW0wLCAzOTY4KCVyYXgpCit2cGFk
ZHcgJXltbTEyLCAleW1tMTQsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0MDY0KCVyYXgpCit2cGFk
ZHcgJXltbTEzLCAleW1tMTUsICV5bW0xCit2bW92ZHFhICV5bW0xLCA0MTYwKCVyYXgpCit2cGFk
ZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgNDI1NiglcmF4KQordnBtdWxs
dyAleW1tMywgJXltbTQsICV5bW0wCit2cGFkZHcgMjU2KCVyc3ApLCAleW1tMCwgJXltbTAKK3Zw
bXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDEyOCglcnNwKSwgJXltbTAsICV5bW0w
Cit2cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAwKCVyc3ApLCAleW1tMCwgJXlt
bTEyCit2cG11bGx3ICV5bW0zLCAleW1tNSwgJXltbTAKK3ZwYWRkdyAyODgoJXJzcCksICV5bW0w
LCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcgMTYwKCVyc3ApLCAl
eW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDMyKCVyc3Ap
LCAleW1tMCwgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tNiwgJXltbTAKK3ZwYWRkdyAzMjAo
JXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcg
MTkyKCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBh
ZGR3IDY0KCVyc3ApLCAleW1tMCwgJXltbTE0Cit2cG11bGx3ICV5bW0zLCAleW1tNywgJXltbTAK
K3ZwYWRkdyAzNTIoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5
bW0wCit2cGFkZHcgMjI0KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0w
LCAleW1tMAordnBhZGR3IDk2KCVyc3ApLCAleW1tMCwgJXltbTE1Cit2bW92ZHFhICV5bW0xMiwg
NDM1MiglcmF4KQordm1vdmRxYSAleW1tMTMsIDQ0NDgoJXJheCkKK3ZwYWRkdyAleW1tMTIsICV5
bW0xMywgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDQ1NDQoJXJheCkKK3Ztb3ZkcWEgJXltbTE0LCA0
NjQwKCVyYXgpCit2bW92ZHFhICV5bW0xNSwgNDczNiglcmF4KQordnBhZGR3ICV5bW0xNCwgJXlt
bTE1LCAleW1tMAordm1vdmRxYSAleW1tMCwgNDgzMiglcmF4KQordnBhZGR3ICV5bW0xMiwgJXlt
bTE0LCAleW1tMAordm1vdmRxYSAleW1tMCwgNDkyOCglcmF4KQordnBhZGR3ICV5bW0xMywgJXlt
bTE1LCAleW1tMQordm1vdmRxYSAleW1tMSwgNTAyNCglcmF4KQordnBhZGR3ICV5bW0wLCAleW1t
MSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDUxMjAoJXJheCkKK3Ztb3ZkcXUgNjQoJXJzaSksICV5
bW0wCit2bW92ZHF1IDE1MiglcnNpKSwgJXltbTEKK3Ztb3ZkcXUgMjQwKCVyc2kpLCAleW1tMgor
dm1vdmRxdSAzMjgoJXJzaSksICV5bW0xMgordm1vdmRxdSAxMTIwKCVyc2kpLCAleW1tNAordm1v
dmRxdSAxMjA4KCVyc2kpLCAleW1tNQordm1vdmRxdSAxMjk2KCVyc2kpLCAleW1tNgordm1vdmRx
dSAxMzg0KCVyc2kpLCAleW1tNwordnBhbmQgbWFza19sb3c5d29yZHMoJXJpcCksICV5bW03LCAl
eW1tNwordm1vdmRxdSA0MTYoJXJzaSksICV5bW04Cit2bW92ZHF1IDUwNCglcnNpKSwgJXltbTkK
K3Ztb3ZkcXUgNTkyKCVyc2kpLCAleW1tMTAKK3Ztb3ZkcXUgNjgwKCVyc2kpLCAleW1tMTEKK3Zt
b3ZkcWEgJXltbTAsIDY0KCVyYXgpCit2bW92ZHFhICV5bW0xLCAxNjAoJXJheCkKK3ZwYWRkdyAl
eW1tMCwgJXltbTEsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDI1NiglcmF4KQordm1vdmRxYSAl
eW1tMiwgMzUyKCVyYXgpCit2bW92ZHFhICV5bW0xMiwgNDQ4KCVyYXgpCit2cGFkZHcgJXltbTIs
ICV5bW0xMiwgJXltbTE0Cit2bW92ZHFhICV5bW0xNCwgNTQ0KCVyYXgpCit2cGFkZHcgJXltbTAs
ICV5bW0yLCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA2NDAoJXJheCkKK3ZwYWRkdyAleW1tMSwg
JXltbTEyLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA3MzYoJXJheCkKK3ZwYWRkdyAleW1tMTQs
ICV5bW0xNSwgJXltbTE0Cit2bW92ZHFhICV5bW0xNCwgODMyKCVyYXgpCit2bW92ZHFhICV5bW00
LCA1MjQ4KCVyYXgpCit2bW92ZHFhICV5bW01LCA1MzQ0KCVyYXgpCit2cGFkZHcgJXltbTQsICV5
bW01LCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA1NDQwKCVyYXgpCit2bW92ZHFhICV5bW02LCA1
NTM2KCVyYXgpCit2bW92ZHFhICV5bW03LCA1NjMyKCVyYXgpCit2cGFkZHcgJXltbTYsICV5bW03
LCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA1NzI4KCVyYXgpCit2cGFkZHcgJXltbTQsICV5bW02
LCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA1ODI0KCVyYXgpCit2cGFkZHcgJXltbTUsICV5bW03
LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA1OTIwKCVyYXgpCit2cGFkZHcgJXltbTE0LCAleW1t
MTUsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDYwMTYoJXJheCkKK3Ztb3ZkcWEgJXltbTAsIDAo
JXJzcCkKK3Ztb3ZkcWEgJXltbTEsIDMyKCVyc3ApCit2bW92ZHFhICV5bW0yLCA2NCglcnNwKQor
dm1vdmRxYSAleW1tMTIsIDk2KCVyc3ApCit2bW92ZHFhICV5bW04LCAxMjgoJXJzcCkKK3Ztb3Zk
cWEgJXltbTksIDE2MCglcnNwKQordm1vdmRxYSAleW1tMTAsIDE5MiglcnNwKQordm1vdmRxYSAl
eW1tMTEsIDIyNCglcnNwKQordm1vdmRxdSA3NjgoJXJzaSksICV5bW0wCit2cGFkZHcgMCglcnNw
KSwgJXltbTAsICV5bW0xCit2cGFkZHcgMTI4KCVyc3ApLCAleW1tNCwgJXltbTIKK3ZwYWRkdyAl
eW1tMiwgJXltbTEsICV5bW04Cit2cHN1YncgJXltbTIsICV5bW0xLCAleW1tMTIKK3Ztb3ZkcWEg
JXltbTAsIDI1NiglcnNwKQordm1vdmRxdSA4NTYoJXJzaSksICV5bW0wCit2cGFkZHcgMzIoJXJz
cCksICV5bW0wLCAleW1tMQordnBhZGR3IDE2MCglcnNwKSwgJXltbTUsICV5bW0yCit2cGFkZHcg
JXltbTIsICV5bW0xLCAleW1tOQordnBzdWJ3ICV5bW0yLCAleW1tMSwgJXltbTEzCit2bW92ZHFh
ICV5bW0wLCAyODgoJXJzcCkKK3Ztb3ZkcXUgOTQ0KCVyc2kpLCAleW1tMAordnBhZGR3IDY0KCVy
c3ApLCAleW1tMCwgJXltbTEKK3ZwYWRkdyAxOTIoJXJzcCksICV5bW02LCAleW1tMgordnBhZGR3
ICV5bW0yLCAleW1tMSwgJXltbTEwCit2cHN1YncgJXltbTIsICV5bW0xLCAleW1tMTQKK3Ztb3Zk
cWEgJXltbTAsIDMyMCglcnNwKQordm1vdmRxdSAxMDMyKCVyc2kpLCAleW1tMAordnBhZGR3IDk2
KCVyc3ApLCAleW1tMCwgJXltbTEKK3ZwYWRkdyAyMjQoJXJzcCksICV5bW03LCAleW1tMgordnBh
ZGR3ICV5bW0yLCAleW1tMSwgJXltbTExCit2cHN1YncgJXltbTIsICV5bW0xLCAleW1tMTUKK3Zt
b3ZkcWEgJXltbTAsIDM1MiglcnNwKQordm1vdmRxYSAleW1tOCwgOTI4KCVyYXgpCit2bW92ZHFh
ICV5bW05LCAxMDI0KCVyYXgpCit2cGFkZHcgJXltbTgsICV5bW05LCAleW1tMAordm1vdmRxYSAl
eW1tMCwgMTEyMCglcmF4KQordm1vdmRxYSAleW1tMTAsIDEyMTYoJXJheCkKK3Ztb3ZkcWEgJXlt
bTExLCAxMzEyKCVyYXgpCit2cGFkZHcgJXltbTEwLCAleW1tMTEsICV5bW0wCit2bW92ZHFhICV5
bW0wLCAxNDA4KCVyYXgpCit2cGFkZHcgJXltbTgsICV5bW0xMCwgJXltbTAKK3Ztb3ZkcWEgJXlt
bTAsIDE1MDQoJXJheCkKK3ZwYWRkdyAleW1tOSwgJXltbTExLCAleW1tMQordm1vdmRxYSAleW1t
MSwgMTYwMCglcmF4KQordnBhZGR3ICV5bW0wLCAleW1tMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDE2OTYoJXJheCkKK3Ztb3ZkcWEgJXltbTEyLCAxNzkyKCVyYXgpCit2bW92ZHFhICV5bW0xMywg
MTg4OCglcmF4KQordnBhZGR3ICV5bW0xMiwgJXltbTEzLCAleW1tMAordm1vdmRxYSAleW1tMCwg
MTk4NCglcmF4KQordm1vdmRxYSAleW1tMTQsIDIwODAoJXJheCkKK3Ztb3ZkcWEgJXltbTE1LCAy
MTc2KCVyYXgpCit2cGFkZHcgJXltbTE0LCAleW1tMTUsICV5bW0wCit2bW92ZHFhICV5bW0wLCAy
MjcyKCVyYXgpCit2cGFkZHcgJXltbTEyLCAleW1tMTQsICV5bW0wCit2bW92ZHFhICV5bW0wLCAy
MzY4KCVyYXgpCit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xCit2bW92ZHFhICV5bW0xLCAy
NDY0KCVyYXgpCit2cGFkZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgMjU2
MCglcmF4KQordm1vdmRxYSAyNTYoJXJzcCksICV5bW0wCit2cHNsbHcgJDIsICV5bW0wLCAleW1t
MAordnBhZGR3IDAoJXJzcCksICV5bW0wLCAleW1tMAordnBzbGx3ICQyLCAleW1tNCwgJXltbTEK
K3ZwYWRkdyAxMjgoJXJzcCksICV5bW0xLCAleW1tMQordnBzbGx3ICQxLCAleW1tMSwgJXltbTEK
K3ZwYWRkdyAleW1tMSwgJXltbTAsICV5bW04Cit2cHN1YncgJXltbTEsICV5bW0wLCAleW1tMTIK
K3Ztb3ZkcWEgMjg4KCVyc3ApLCAleW1tMAordnBzbGx3ICQyLCAleW1tMCwgJXltbTAKK3ZwYWRk
dyAzMiglcnNwKSwgJXltbTAsICV5bW0wCit2cHNsbHcgJDIsICV5bW01LCAleW1tMQordnBhZGR3
IDE2MCglcnNwKSwgJXltbTEsICV5bW0xCit2cHNsbHcgJDEsICV5bW0xLCAleW1tMQordnBhZGR3
ICV5bW0xLCAleW1tMCwgJXltbTkKK3Zwc3VidyAleW1tMSwgJXltbTAsICV5bW0xMwordm1vdmRx
YSAzMjAoJXJzcCksICV5bW0wCit2cHNsbHcgJDIsICV5bW0wLCAleW1tMAordnBhZGR3IDY0KCVy
c3ApLCAleW1tMCwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTYsICV5bW0xCit2cGFkZHcgMTkyKCVy
c3ApLCAleW1tMSwgJXltbTEKK3Zwc2xsdyAkMSwgJXltbTEsICV5bW0xCit2cGFkZHcgJXltbTEs
ICV5bW0wLCAleW1tMTAKK3Zwc3VidyAleW1tMSwgJXltbTAsICV5bW0xNAordm1vdmRxYSAzNTIo
JXJzcCksICV5bW0wCit2cHNsbHcgJDIsICV5bW0wLCAleW1tMAordnBhZGR3IDk2KCVyc3ApLCAl
eW1tMCwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTcsICV5bW0xCit2cGFkZHcgMjI0KCVyc3ApLCAl
eW1tMSwgJXltbTEKK3Zwc2xsdyAkMSwgJXltbTEsICV5bW0xCit2cGFkZHcgJXltbTEsICV5bW0w
LCAleW1tMTEKK3Zwc3VidyAleW1tMSwgJXltbTAsICV5bW0xNQordm1vdmRxYSAleW1tOCwgMjY1
NiglcmF4KQordm1vdmRxYSAleW1tOSwgMjc1MiglcmF4KQordnBhZGR3ICV5bW04LCAleW1tOSwg
JXltbTAKK3Ztb3ZkcWEgJXltbTAsIDI4NDgoJXJheCkKK3Ztb3ZkcWEgJXltbTEwLCAyOTQ0KCVy
YXgpCit2bW92ZHFhICV5bW0xMSwgMzA0MCglcmF4KQordnBhZGR3ICV5bW0xMCwgJXltbTExLCAl
eW1tMAordm1vdmRxYSAleW1tMCwgMzEzNiglcmF4KQordnBhZGR3ICV5bW04LCAleW1tMTAsICV5
bW0wCit2bW92ZHFhICV5bW0wLCAzMjMyKCVyYXgpCit2cGFkZHcgJXltbTksICV5bW0xMSwgJXlt
bTEKK3Ztb3ZkcWEgJXltbTEsIDMzMjgoJXJheCkKK3ZwYWRkdyAleW1tMCwgJXltbTEsICV5bW0w
Cit2bW92ZHFhICV5bW0wLCAzNDI0KCVyYXgpCit2bW92ZHFhICV5bW0xMiwgMzUyMCglcmF4KQor
dm1vdmRxYSAleW1tMTMsIDM2MTYoJXJheCkKK3ZwYWRkdyAleW1tMTIsICV5bW0xMywgJXltbTAK
K3Ztb3ZkcWEgJXltbTAsIDM3MTIoJXJheCkKK3Ztb3ZkcWEgJXltbTE0LCAzODA4KCVyYXgpCit2
bW92ZHFhICV5bW0xNSwgMzkwNCglcmF4KQordnBhZGR3ICV5bW0xNCwgJXltbTE1LCAleW1tMAor
dm1vdmRxYSAleW1tMCwgNDAwMCglcmF4KQordnBhZGR3ICV5bW0xMiwgJXltbTE0LCAleW1tMAor
dm1vdmRxYSAleW1tMCwgNDA5NiglcmF4KQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMQor
dm1vdmRxYSAleW1tMSwgNDE5MiglcmF4KQordnBhZGR3ICV5bW0wLCAleW1tMSwgJXltbTAKK3Zt
b3ZkcWEgJXltbTAsIDQyODgoJXJheCkKK3ZwbXVsbHcgJXltbTMsICV5bW00LCAleW1tMAordnBh
ZGR3IDI1NiglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAK
K3ZwYWRkdyAxMjgoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5
bW0wCit2cGFkZHcgMCglcnNwKSwgJXltbTAsICV5bW0xMgordnBtdWxsdyAleW1tMywgJXltbTUs
ICV5bW0wCit2cGFkZHcgMjg4KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5
bW0wLCAleW1tMAordnBhZGR3IDE2MCglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0z
LCAleW1tMCwgJXltbTAKK3ZwYWRkdyAzMiglcnNwKSwgJXltbTAsICV5bW0xMwordnBtdWxsdyAl
eW1tMywgJXltbTYsICV5bW0wCit2cGFkZHcgMzIwKCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVs
bHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDE5MiglcnNwKSwgJXltbTAsICV5bW0wCit2
cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA2NCglcnNwKSwgJXltbTAsICV5bW0x
NAordnBtdWxsdyAleW1tMywgJXltbTcsICV5bW0wCit2cGFkZHcgMzUyKCVyc3ApLCAleW1tMCwg
JXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDIyNCglcnNwKSwgJXlt
bTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA5NiglcnNwKSwg
JXltbTAsICV5bW0xNQordm1vdmRxYSAleW1tMTIsIDQzODQoJXJheCkKK3Ztb3ZkcWEgJXltbTEz
LCA0NDgwKCVyYXgpCit2cGFkZHcgJXltbTEyLCAleW1tMTMsICV5bW0wCit2bW92ZHFhICV5bW0w
LCA0NTc2KCVyYXgpCit2bW92ZHFhICV5bW0xNCwgNDY3MiglcmF4KQordm1vdmRxYSAleW1tMTUs
IDQ3NjgoJXJheCkKK3ZwYWRkdyAleW1tMTQsICV5bW0xNSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDQ4NjQoJXJheCkKK3ZwYWRkdyAleW1tMTIsICV5bW0xNCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDQ5NjAoJXJheCkKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEs
IDUwNTYoJXJheCkKK3ZwYWRkdyAleW1tMCwgJXltbTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCA1
MTUyKCVyYXgpCit2bW92ZHF1IDAoJXJkeCksICV5bW0wCit2bW92ZHF1IDg4KCVyZHgpLCAleW1t
MQordm1vdmRxdSAxNzYoJXJkeCksICV5bW0yCit2bW92ZHF1IDI2NCglcmR4KSwgJXltbTEyCit2
bW92ZHF1IDEwNTYoJXJkeCksICV5bW00Cit2bW92ZHF1IDExNDQoJXJkeCksICV5bW01Cit2bW92
ZHF1IDEyMzIoJXJkeCksICV5bW02Cit2bW92ZHF1IDEzMjAoJXJkeCksICV5bW03Cit2bW92ZHF1
IDM1MiglcmR4KSwgJXltbTgKK3Ztb3ZkcXUgNDQwKCVyZHgpLCAleW1tOQordm1vdmRxdSA1Mjgo
JXJkeCksICV5bW0xMAordm1vdmRxdSA2MTYoJXJkeCksICV5bW0xMQordm1vdmRxYSAleW1tMCwg
MCglcjExKQordm1vdmRxYSAleW1tMSwgOTYoJXIxMSkKK3ZwYWRkdyAleW1tMCwgJXltbTEsICV5
bW0xNAordm1vdmRxYSAleW1tMTQsIDE5MiglcjExKQordm1vdmRxYSAleW1tMiwgMjg4KCVyMTEp
Cit2bW92ZHFhICV5bW0xMiwgMzg0KCVyMTEpCit2cGFkZHcgJXltbTIsICV5bW0xMiwgJXltbTE0
Cit2bW92ZHFhICV5bW0xNCwgNDgwKCVyMTEpCit2cGFkZHcgJXltbTAsICV5bW0yLCAleW1tMTQK
K3Ztb3ZkcWEgJXltbTE0LCA1NzYoJXIxMSkKK3ZwYWRkdyAleW1tMSwgJXltbTEyLCAleW1tMTUK
K3Ztb3ZkcWEgJXltbTE1LCA2NzIoJXIxMSkKK3ZwYWRkdyAleW1tMTQsICV5bW0xNSwgJXltbTE0
Cit2bW92ZHFhICV5bW0xNCwgNzY4KCVyMTEpCit2bW92ZHFhICV5bW00LCA1MTg0KCVyMTEpCit2
bW92ZHFhICV5bW01LCA1MjgwKCVyMTEpCit2cGFkZHcgJXltbTQsICV5bW01LCAleW1tMTQKK3Zt
b3ZkcWEgJXltbTE0LCA1Mzc2KCVyMTEpCit2bW92ZHFhICV5bW02LCA1NDcyKCVyMTEpCit2bW92
ZHFhICV5bW03LCA1NTY4KCVyMTEpCit2cGFkZHcgJXltbTYsICV5bW03LCAleW1tMTQKK3Ztb3Zk
cWEgJXltbTE0LCA1NjY0KCVyMTEpCit2cGFkZHcgJXltbTQsICV5bW02LCAleW1tMTQKK3Ztb3Zk
cWEgJXltbTE0LCA1NzYwKCVyMTEpCit2cGFkZHcgJXltbTUsICV5bW03LCAleW1tMTUKK3Ztb3Zk
cWEgJXltbTE1LCA1ODU2KCVyMTEpCit2cGFkZHcgJXltbTE0LCAleW1tMTUsICV5bW0xNAordm1v
dmRxYSAleW1tMTQsIDU5NTIoJXIxMSkKK3Ztb3ZkcWEgJXltbTAsIDAoJXJzcCkKK3Ztb3ZkcWEg
JXltbTEsIDMyKCVyc3ApCit2bW92ZHFhICV5bW0yLCA2NCglcnNwKQordm1vdmRxYSAleW1tMTIs
IDk2KCVyc3ApCit2bW92ZHFhICV5bW04LCAxMjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTksIDE2MCgl
cnNwKQordm1vdmRxYSAleW1tMTAsIDE5MiglcnNwKQordm1vdmRxYSAleW1tMTEsIDIyNCglcnNw
KQordm1vdmRxdSA3MDQoJXJkeCksICV5bW0wCit2cGFkZHcgMCglcnNwKSwgJXltbTAsICV5bW0x
Cit2cGFkZHcgMTI4KCVyc3ApLCAleW1tNCwgJXltbTIKK3ZwYWRkdyAleW1tMiwgJXltbTEsICV5
bW04Cit2cHN1YncgJXltbTIsICV5bW0xLCAleW1tMTIKK3Ztb3ZkcWEgJXltbTAsIDI1NiglcnNw
KQordm1vdmRxdSA3OTIoJXJkeCksICV5bW0wCit2cGFkZHcgMzIoJXJzcCksICV5bW0wLCAleW1t
MQordnBhZGR3IDE2MCglcnNwKSwgJXltbTUsICV5bW0yCit2cGFkZHcgJXltbTIsICV5bW0xLCAl
eW1tOQordnBzdWJ3ICV5bW0yLCAleW1tMSwgJXltbTEzCit2bW92ZHFhICV5bW0wLCAyODgoJXJz
cCkKK3Ztb3ZkcXUgODgwKCVyZHgpLCAleW1tMAordnBhZGR3IDY0KCVyc3ApLCAleW1tMCwgJXlt
bTEKK3ZwYWRkdyAxOTIoJXJzcCksICV5bW02LCAleW1tMgordnBhZGR3ICV5bW0yLCAleW1tMSwg
JXltbTEwCit2cHN1YncgJXltbTIsICV5bW0xLCAleW1tMTQKK3Ztb3ZkcWEgJXltbTAsIDMyMCgl
cnNwKQordm1vdmRxdSA5NjgoJXJkeCksICV5bW0wCit2cGFkZHcgOTYoJXJzcCksICV5bW0wLCAl
eW1tMQordnBhZGR3IDIyNCglcnNwKSwgJXltbTcsICV5bW0yCit2cGFkZHcgJXltbTIsICV5bW0x
LCAleW1tMTEKK3Zwc3VidyAleW1tMiwgJXltbTEsICV5bW0xNQordm1vdmRxYSAleW1tMCwgMzUy
KCVyc3ApCit2bW92ZHFhICV5bW04LCA4NjQoJXIxMSkKK3Ztb3ZkcWEgJXltbTksIDk2MCglcjEx
KQordnBhZGR3ICV5bW04LCAleW1tOSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDEwNTYoJXIxMSkK
K3Ztb3ZkcWEgJXltbTEwLCAxMTUyKCVyMTEpCit2bW92ZHFhICV5bW0xMSwgMTI0OCglcjExKQor
dnBhZGR3ICV5bW0xMCwgJXltbTExLCAleW1tMAordm1vdmRxYSAleW1tMCwgMTM0NCglcjExKQor
dnBhZGR3ICV5bW04LCAleW1tMTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCAxNDQwKCVyMTEpCit2
cGFkZHcgJXltbTksICV5bW0xMSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDE1MzYoJXIxMSkKK3Zw
YWRkdyAleW1tMCwgJXltbTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCAxNjMyKCVyMTEpCit2bW92
ZHFhICV5bW0xMiwgMTcyOCglcjExKQordm1vdmRxYSAleW1tMTMsIDE4MjQoJXIxMSkKK3ZwYWRk
dyAleW1tMTIsICV5bW0xMywgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDE5MjAoJXIxMSkKK3Ztb3Zk
cWEgJXltbTE0LCAyMDE2KCVyMTEpCit2bW92ZHFhICV5bW0xNSwgMjExMiglcjExKQordnBhZGR3
ICV5bW0xNCwgJXltbTE1LCAleW1tMAordm1vdmRxYSAleW1tMCwgMjIwOCglcjExKQordnBhZGR3
ICV5bW0xMiwgJXltbTE0LCAleW1tMAordm1vdmRxYSAleW1tMCwgMjMwNCglcjExKQordnBhZGR3
ICV5bW0xMywgJXltbTE1LCAleW1tMQordm1vdmRxYSAleW1tMSwgMjQwMCglcjExKQordnBhZGR3
ICV5bW0wLCAleW1tMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDI0OTYoJXIxMSkKK3Ztb3ZkcWEg
MjU2KCVyc3ApLCAleW1tMAordnBzbGx3ICQyLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAwKCVyc3Ap
LCAleW1tMCwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTQsICV5bW0xCit2cGFkZHcgMTI4KCVyc3Ap
LCAleW1tMSwgJXltbTEKK3Zwc2xsdyAkMSwgJXltbTEsICV5bW0xCit2cGFkZHcgJXltbTEsICV5
bW0wLCAleW1tOAordnBzdWJ3ICV5bW0xLCAleW1tMCwgJXltbTEyCit2bW92ZHFhIDI4OCglcnNw
KSwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgMzIoJXJzcCksICV5bW0w
LCAleW1tMAordnBzbGx3ICQyLCAleW1tNSwgJXltbTEKK3ZwYWRkdyAxNjAoJXJzcCksICV5bW0x
LCAleW1tMQordnBzbGx3ICQxLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAleW1tMSwgJXltbTAsICV5
bW05Cit2cHN1YncgJXltbTEsICV5bW0wLCAleW1tMTMKK3Ztb3ZkcWEgMzIwKCVyc3ApLCAleW1t
MAordnBzbGx3ICQyLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA2NCglcnNwKSwgJXltbTAsICV5bW0w
Cit2cHNsbHcgJDIsICV5bW02LCAleW1tMQordnBhZGR3IDE5MiglcnNwKSwgJXltbTEsICV5bW0x
Cit2cHNsbHcgJDEsICV5bW0xLCAleW1tMQordnBhZGR3ICV5bW0xLCAleW1tMCwgJXltbTEwCit2
cHN1YncgJXltbTEsICV5bW0wLCAleW1tMTQKK3Ztb3ZkcWEgMzUyKCVyc3ApLCAleW1tMAordnBz
bGx3ICQyLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA5NiglcnNwKSwgJXltbTAsICV5bW0wCit2cHNs
bHcgJDIsICV5bW03LCAleW1tMQordnBhZGR3IDIyNCglcnNwKSwgJXltbTEsICV5bW0xCit2cHNs
bHcgJDEsICV5bW0xLCAleW1tMQordnBhZGR3ICV5bW0xLCAleW1tMCwgJXltbTExCit2cHN1Yncg
JXltbTEsICV5bW0wLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTgsIDI1OTIoJXIxMSkKK3Ztb3ZkcWEg
JXltbTksIDI2ODgoJXIxMSkKK3ZwYWRkdyAleW1tOCwgJXltbTksICV5bW0wCit2bW92ZHFhICV5
bW0wLCAyNzg0KCVyMTEpCit2bW92ZHFhICV5bW0xMCwgMjg4MCglcjExKQordm1vdmRxYSAleW1t
MTEsIDI5NzYoJXIxMSkKK3ZwYWRkdyAleW1tMTAsICV5bW0xMSwgJXltbTAKK3Ztb3ZkcWEgJXlt
bTAsIDMwNzIoJXIxMSkKK3ZwYWRkdyAleW1tOCwgJXltbTEwLCAleW1tMAordm1vdmRxYSAleW1t
MCwgMzE2OCglcjExKQordnBhZGR3ICV5bW05LCAleW1tMTEsICV5bW0xCit2bW92ZHFhICV5bW0x
LCAzMjY0KCVyMTEpCit2cGFkZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwg
MzM2MCglcjExKQordm1vdmRxYSAleW1tMTIsIDM0NTYoJXIxMSkKK3Ztb3ZkcWEgJXltbTEzLCAz
NTUyKCVyMTEpCit2cGFkZHcgJXltbTEyLCAleW1tMTMsICV5bW0wCit2bW92ZHFhICV5bW0wLCAz
NjQ4KCVyMTEpCit2bW92ZHFhICV5bW0xNCwgMzc0NCglcjExKQordm1vdmRxYSAleW1tMTUsIDM4
NDAoJXIxMSkKK3ZwYWRkdyAleW1tMTQsICV5bW0xNSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM5
MzYoJXIxMSkKK3ZwYWRkdyAleW1tMTIsICV5bW0xNCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDQw
MzIoJXIxMSkKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDQx
MjgoJXIxMSkKK3ZwYWRkdyAleW1tMCwgJXltbTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0MjI0
KCVyMTEpCit2cG11bGx3ICV5bW0zLCAleW1tNCwgJXltbTAKK3ZwYWRkdyAyNTYoJXJzcCksICV5
bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcgMTI4KCVyc3Ap
LCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDAoJXJz
cCksICV5bW0wLCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW01LCAleW1tMAordnBhZGR3IDI4
OCglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRk
dyAxNjAoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2
cGFkZHcgMzIoJXJzcCksICV5bW0wLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW02LCAleW1t
MAordnBhZGR3IDMyMCglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwg
JXltbTAKK3ZwYWRkdyAxOTIoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXlt
bTAsICV5bW0wCit2cGFkZHcgNjQoJXJzcCksICV5bW0wLCAleW1tMTQKK3ZwbXVsbHcgJXltbTMs
ICV5bW03LCAleW1tMAordnBhZGR3IDM1MiglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5
bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAyMjQoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxs
dyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcgOTYoJXJzcCksICV5bW0wLCAleW1tMTUKK3Zt
b3ZkcWEgJXltbTEyLCA0MzIwKCVyMTEpCit2bW92ZHFhICV5bW0xMywgNDQxNiglcjExKQordnBh
ZGR3ICV5bW0xMiwgJXltbTEzLCAleW1tMAordm1vdmRxYSAleW1tMCwgNDUxMiglcjExKQordm1v
dmRxYSAleW1tMTQsIDQ2MDgoJXIxMSkKK3Ztb3ZkcWEgJXltbTE1LCA0NzA0KCVyMTEpCit2cGFk
ZHcgJXltbTE0LCAleW1tMTUsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0ODAwKCVyMTEpCit2cGFk
ZHcgJXltbTEyLCAleW1tMTQsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0ODk2KCVyMTEpCit2cGFk
ZHcgJXltbTEzLCAleW1tMTUsICV5bW0xCit2bW92ZHFhICV5bW0xLCA0OTkyKCVyMTEpCit2cGFk
ZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgNTA4OCglcjExKQordm1vdmRx
dSAzMiglcmR4KSwgJXltbTAKK3Ztb3ZkcXUgMTIwKCVyZHgpLCAleW1tMQordm1vdmRxdSAyMDgo
JXJkeCksICV5bW0yCit2bW92ZHF1IDI5NiglcmR4KSwgJXltbTEyCit2bW92ZHF1IDEwODgoJXJk
eCksICV5bW00Cit2bW92ZHF1IDExNzYoJXJkeCksICV5bW01Cit2bW92ZHF1IDEyNjQoJXJkeCks
ICV5bW02Cit2bW92ZHF1IDEzNTIoJXJkeCksICV5bW03Cit2bW92ZHF1IDM4NCglcmR4KSwgJXlt
bTgKK3Ztb3ZkcXUgNDcyKCVyZHgpLCAleW1tOQordm1vdmRxdSA1NjAoJXJkeCksICV5bW0xMAor
dm1vdmRxdSA2NDgoJXJkeCksICV5bW0xMQordm1vdmRxYSAleW1tMCwgMzIoJXIxMSkKK3Ztb3Zk
cWEgJXltbTEsIDEyOCglcjExKQordnBhZGR3ICV5bW0wLCAleW1tMSwgJXltbTE0Cit2bW92ZHFh
ICV5bW0xNCwgMjI0KCVyMTEpCit2bW92ZHFhICV5bW0yLCAzMjAoJXIxMSkKK3Ztb3ZkcWEgJXlt
bTEyLCA0MTYoJXIxMSkKK3ZwYWRkdyAleW1tMiwgJXltbTEyLCAleW1tMTQKK3Ztb3ZkcWEgJXlt
bTE0LCA1MTIoJXIxMSkKK3ZwYWRkdyAleW1tMCwgJXltbTIsICV5bW0xNAordm1vdmRxYSAleW1t
MTQsIDYwOCglcjExKQordnBhZGR3ICV5bW0xLCAleW1tMTIsICV5bW0xNQordm1vdmRxYSAleW1t
MTUsIDcwNCglcjExKQordnBhZGR3ICV5bW0xNCwgJXltbTE1LCAleW1tMTQKK3Ztb3ZkcWEgJXlt
bTE0LCA4MDAoJXIxMSkKK3Ztb3ZkcWEgJXltbTQsIDUyMTYoJXIxMSkKK3Ztb3ZkcWEgJXltbTUs
IDUzMTIoJXIxMSkKK3ZwYWRkdyAleW1tNCwgJXltbTUsICV5bW0xNAordm1vdmRxYSAleW1tMTQs
IDU0MDgoJXIxMSkKK3Ztb3ZkcWEgJXltbTYsIDU1MDQoJXIxMSkKK3Ztb3ZkcWEgJXltbTcsIDU2
MDAoJXIxMSkKK3ZwYWRkdyAleW1tNiwgJXltbTcsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDU2
OTYoJXIxMSkKK3ZwYWRkdyAleW1tNCwgJXltbTYsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDU3
OTIoJXIxMSkKK3ZwYWRkdyAleW1tNSwgJXltbTcsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDU4
ODgoJXIxMSkKK3ZwYWRkdyAleW1tMTQsICV5bW0xNSwgJXltbTE0Cit2bW92ZHFhICV5bW0xNCwg
NTk4NCglcjExKQordm1vdmRxYSAleW1tMCwgMCglcnNwKQordm1vdmRxYSAleW1tMSwgMzIoJXJz
cCkKK3Ztb3ZkcWEgJXltbTIsIDY0KCVyc3ApCit2bW92ZHFhICV5bW0xMiwgOTYoJXJzcCkKK3Zt
b3ZkcWEgJXltbTgsIDEyOCglcnNwKQordm1vdmRxYSAleW1tOSwgMTYwKCVyc3ApCit2bW92ZHFh
ICV5bW0xMCwgMTkyKCVyc3ApCit2bW92ZHFhICV5bW0xMSwgMjI0KCVyc3ApCit2bW92ZHF1IDcz
NiglcmR4KSwgJXltbTAKK3ZwYWRkdyAwKCVyc3ApLCAleW1tMCwgJXltbTEKK3ZwYWRkdyAxMjgo
JXJzcCksICV5bW00LCAleW1tMgordnBhZGR3ICV5bW0yLCAleW1tMSwgJXltbTgKK3Zwc3VidyAl
eW1tMiwgJXltbTEsICV5bW0xMgordm1vdmRxYSAleW1tMCwgMjU2KCVyc3ApCit2bW92ZHF1IDgy
NCglcmR4KSwgJXltbTAKK3ZwYWRkdyAzMiglcnNwKSwgJXltbTAsICV5bW0xCit2cGFkZHcgMTYw
KCVyc3ApLCAleW1tNSwgJXltbTIKK3ZwYWRkdyAleW1tMiwgJXltbTEsICV5bW05Cit2cHN1Yncg
JXltbTIsICV5bW0xLCAleW1tMTMKK3Ztb3ZkcWEgJXltbTAsIDI4OCglcnNwKQordm1vdmRxdSA5
MTIoJXJkeCksICV5bW0wCit2cGFkZHcgNjQoJXJzcCksICV5bW0wLCAleW1tMQordnBhZGR3IDE5
MiglcnNwKSwgJXltbTYsICV5bW0yCit2cGFkZHcgJXltbTIsICV5bW0xLCAleW1tMTAKK3Zwc3Vi
dyAleW1tMiwgJXltbTEsICV5bW0xNAordm1vdmRxYSAleW1tMCwgMzIwKCVyc3ApCit2bW92ZHF1
IDEwMDAoJXJkeCksICV5bW0wCit2cGFkZHcgOTYoJXJzcCksICV5bW0wLCAleW1tMQordnBhZGR3
IDIyNCglcnNwKSwgJXltbTcsICV5bW0yCit2cGFkZHcgJXltbTIsICV5bW0xLCAleW1tMTEKK3Zw
c3VidyAleW1tMiwgJXltbTEsICV5bW0xNQordm1vdmRxYSAleW1tMCwgMzUyKCVyc3ApCit2bW92
ZHFhICV5bW04LCA4OTYoJXIxMSkKK3Ztb3ZkcWEgJXltbTksIDk5MiglcjExKQordnBhZGR3ICV5
bW04LCAleW1tOSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDEwODgoJXIxMSkKK3Ztb3ZkcWEgJXlt
bTEwLCAxMTg0KCVyMTEpCit2bW92ZHFhICV5bW0xMSwgMTI4MCglcjExKQordnBhZGR3ICV5bW0x
MCwgJXltbTExLCAleW1tMAordm1vdmRxYSAleW1tMCwgMTM3NiglcjExKQordnBhZGR3ICV5bW04
LCAleW1tMTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCAxNDcyKCVyMTEpCit2cGFkZHcgJXltbTks
ICV5bW0xMSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDE1NjgoJXIxMSkKK3ZwYWRkdyAleW1tMCwg
JXltbTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCAxNjY0KCVyMTEpCit2bW92ZHFhICV5bW0xMiwg
MTc2MCglcjExKQordm1vdmRxYSAleW1tMTMsIDE4NTYoJXIxMSkKK3ZwYWRkdyAleW1tMTIsICV5
bW0xMywgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDE5NTIoJXIxMSkKK3Ztb3ZkcWEgJXltbTE0LCAy
MDQ4KCVyMTEpCit2bW92ZHFhICV5bW0xNSwgMjE0NCglcjExKQordnBhZGR3ICV5bW0xNCwgJXlt
bTE1LCAleW1tMAordm1vdmRxYSAleW1tMCwgMjI0MCglcjExKQordnBhZGR3ICV5bW0xMiwgJXlt
bTE0LCAleW1tMAordm1vdmRxYSAleW1tMCwgMjMzNiglcjExKQordnBhZGR3ICV5bW0xMywgJXlt
bTE1LCAleW1tMQordm1vdmRxYSAleW1tMSwgMjQzMiglcjExKQordnBhZGR3ICV5bW0wLCAleW1t
MSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDI1MjgoJXIxMSkKK3Ztb3ZkcWEgMjU2KCVyc3ApLCAl
eW1tMAordnBzbGx3ICQyLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAwKCVyc3ApLCAleW1tMCwgJXlt
bTAKK3Zwc2xsdyAkMiwgJXltbTQsICV5bW0xCit2cGFkZHcgMTI4KCVyc3ApLCAleW1tMSwgJXlt
bTEKK3Zwc2xsdyAkMSwgJXltbTEsICV5bW0xCit2cGFkZHcgJXltbTEsICV5bW0wLCAleW1tOAor
dnBzdWJ3ICV5bW0xLCAleW1tMCwgJXltbTEyCit2bW92ZHFhIDI4OCglcnNwKSwgJXltbTAKK3Zw
c2xsdyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgMzIoJXJzcCksICV5bW0wLCAleW1tMAordnBz
bGx3ICQyLCAleW1tNSwgJXltbTEKK3ZwYWRkdyAxNjAoJXJzcCksICV5bW0xLCAleW1tMQordnBz
bGx3ICQxLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAleW1tMSwgJXltbTAsICV5bW05Cit2cHN1Yncg
JXltbTEsICV5bW0wLCAleW1tMTMKK3Ztb3ZkcWEgMzIwKCVyc3ApLCAleW1tMAordnBzbGx3ICQy
LCAleW1tMCwgJXltbTAKK3ZwYWRkdyA2NCglcnNwKSwgJXltbTAsICV5bW0wCit2cHNsbHcgJDIs
ICV5bW02LCAleW1tMQordnBhZGR3IDE5MiglcnNwKSwgJXltbTEsICV5bW0xCit2cHNsbHcgJDEs
ICV5bW0xLCAleW1tMQordnBhZGR3ICV5bW0xLCAleW1tMCwgJXltbTEwCit2cHN1YncgJXltbTEs
ICV5bW0wLCAleW1tMTQKK3Ztb3ZkcWEgMzUyKCVyc3ApLCAleW1tMAordnBzbGx3ICQyLCAleW1t
MCwgJXltbTAKK3ZwYWRkdyA5NiglcnNwKSwgJXltbTAsICV5bW0wCit2cHNsbHcgJDIsICV5bW03
LCAleW1tMQordnBhZGR3IDIyNCglcnNwKSwgJXltbTEsICV5bW0xCit2cHNsbHcgJDEsICV5bW0x
LCAleW1tMQordnBhZGR3ICV5bW0xLCAleW1tMCwgJXltbTExCit2cHN1YncgJXltbTEsICV5bW0w
LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTgsIDI2MjQoJXIxMSkKK3Ztb3ZkcWEgJXltbTksIDI3MjAo
JXIxMSkKK3ZwYWRkdyAleW1tOCwgJXltbTksICV5bW0wCit2bW92ZHFhICV5bW0wLCAyODE2KCVy
MTEpCit2bW92ZHFhICV5bW0xMCwgMjkxMiglcjExKQordm1vdmRxYSAleW1tMTEsIDMwMDgoJXIx
MSkKK3ZwYWRkdyAleW1tMTAsICV5bW0xMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDMxMDQoJXIx
MSkKK3ZwYWRkdyAleW1tOCwgJXltbTEwLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzIwMCglcjEx
KQordnBhZGR3ICV5bW05LCAleW1tMTEsICV5bW0xCit2bW92ZHFhICV5bW0xLCAzMjk2KCVyMTEp
Cit2cGFkZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzM5MiglcjExKQor
dm1vdmRxYSAleW1tMTIsIDM0ODgoJXIxMSkKK3Ztb3ZkcWEgJXltbTEzLCAzNTg0KCVyMTEpCit2
cGFkZHcgJXltbTEyLCAleW1tMTMsICV5bW0wCit2bW92ZHFhICV5bW0wLCAzNjgwKCVyMTEpCit2
bW92ZHFhICV5bW0xNCwgMzc3NiglcjExKQordm1vdmRxYSAleW1tMTUsIDM4NzIoJXIxMSkKK3Zw
YWRkdyAleW1tMTQsICV5bW0xNSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM5NjgoJXIxMSkKK3Zw
YWRkdyAleW1tMTIsICV5bW0xNCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDQwNjQoJXIxMSkKK3Zw
YWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDQxNjAoJXIxMSkKK3Zw
YWRkdyAleW1tMCwgJXltbTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0MjU2KCVyMTEpCit2cG11
bGx3ICV5bW0zLCAleW1tNCwgJXltbTAKK3ZwYWRkdyAyNTYoJXJzcCksICV5bW0wLCAleW1tMAor
dnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcgMTI4KCVyc3ApLCAleW1tMCwgJXlt
bTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDAoJXJzcCksICV5bW0wLCAl
eW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW01LCAleW1tMAordnBhZGR3IDI4OCglcnNwKSwgJXlt
bTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAxNjAoJXJzcCks
ICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcgMzIoJXJz
cCksICV5bW0wLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW02LCAleW1tMAordnBhZGR3IDMy
MCglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwgJXltbTAKK3ZwYWRk
dyAxOTIoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2
cGFkZHcgNjQoJXJzcCksICV5bW0wLCAleW1tMTQKK3ZwbXVsbHcgJXltbTMsICV5bW03LCAleW1t
MAordnBhZGR3IDM1MiglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwg
JXltbTAKK3ZwYWRkdyAyMjQoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywgJXlt
bTAsICV5bW0wCit2cGFkZHcgOTYoJXJzcCksICV5bW0wLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTEy
LCA0MzUyKCVyMTEpCit2bW92ZHFhICV5bW0xMywgNDQ0OCglcjExKQordnBhZGR3ICV5bW0xMiwg
JXltbTEzLCAleW1tMAordm1vdmRxYSAleW1tMCwgNDU0NCglcjExKQordm1vdmRxYSAleW1tMTQs
IDQ2NDAoJXIxMSkKK3Ztb3ZkcWEgJXltbTE1LCA0NzM2KCVyMTEpCit2cGFkZHcgJXltbTE0LCAl
eW1tMTUsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0ODMyKCVyMTEpCit2cGFkZHcgJXltbTEyLCAl
eW1tMTQsICV5bW0wCit2bW92ZHFhICV5bW0wLCA0OTI4KCVyMTEpCit2cGFkZHcgJXltbTEzLCAl
eW1tMTUsICV5bW0xCit2bW92ZHFhICV5bW0xLCA1MDI0KCVyMTEpCit2cGFkZHcgJXltbTAsICV5
bW0xLCAleW1tMAordm1vdmRxYSAleW1tMCwgNTEyMCglcjExKQordm1vdmRxdSA2NCglcmR4KSwg
JXltbTAKK3Ztb3ZkcXUgMTUyKCVyZHgpLCAleW1tMQordm1vdmRxdSAyNDAoJXJkeCksICV5bW0y
Cit2bW92ZHF1IDMyOCglcmR4KSwgJXltbTEyCit2bW92ZHF1IDExMjAoJXJkeCksICV5bW00Cit2
bW92ZHF1IDEyMDgoJXJkeCksICV5bW01Cit2bW92ZHF1IDEyOTYoJXJkeCksICV5bW02Cit2bW92
ZHF1IDEzODQoJXJkeCksICV5bW03Cit2cGFuZCBtYXNrX2xvdzl3b3JkcyglcmlwKSwgJXltbTcs
ICV5bW03Cit2bW92ZHF1IDQxNiglcmR4KSwgJXltbTgKK3Ztb3ZkcXUgNTA0KCVyZHgpLCAleW1t
OQordm1vdmRxdSA1OTIoJXJkeCksICV5bW0xMAordm1vdmRxdSA2ODAoJXJkeCksICV5bW0xMQor
dm1vdmRxYSAleW1tMCwgNjQoJXIxMSkKK3Ztb3ZkcWEgJXltbTEsIDE2MCglcjExKQordnBhZGR3
ICV5bW0wLCAleW1tMSwgJXltbTE0Cit2bW92ZHFhICV5bW0xNCwgMjU2KCVyMTEpCit2bW92ZHFh
ICV5bW0yLCAzNTIoJXIxMSkKK3Ztb3ZkcWEgJXltbTEyLCA0NDgoJXIxMSkKK3ZwYWRkdyAleW1t
MiwgJXltbTEyLCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA1NDQoJXIxMSkKK3ZwYWRkdyAleW1t
MCwgJXltbTIsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDY0MCglcjExKQordnBhZGR3ICV5bW0x
LCAleW1tMTIsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDczNiglcjExKQordnBhZGR3ICV5bW0x
NCwgJXltbTE1LCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCA4MzIoJXIxMSkKK3Ztb3ZkcWEgJXlt
bTQsIDUyNDgoJXIxMSkKK3Ztb3ZkcWEgJXltbTUsIDUzNDQoJXIxMSkKK3ZwYWRkdyAleW1tNCwg
JXltbTUsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDU0NDAoJXIxMSkKK3Ztb3ZkcWEgJXltbTYs
IDU1MzYoJXIxMSkKK3Ztb3ZkcWEgJXltbTcsIDU2MzIoJXIxMSkKK3ZwYWRkdyAleW1tNiwgJXlt
bTcsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDU3MjgoJXIxMSkKK3ZwYWRkdyAleW1tNCwgJXlt
bTYsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDU4MjQoJXIxMSkKK3ZwYWRkdyAleW1tNSwgJXlt
bTcsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDU5MjAoJXIxMSkKK3ZwYWRkdyAleW1tMTQsICV5
bW0xNSwgJXltbTE0Cit2bW92ZHFhICV5bW0xNCwgNjAxNiglcjExKQordm1vdmRxYSAleW1tMCwg
MCglcnNwKQordm1vdmRxYSAleW1tMSwgMzIoJXJzcCkKK3Ztb3ZkcWEgJXltbTIsIDY0KCVyc3Ap
Cit2bW92ZHFhICV5bW0xMiwgOTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTgsIDEyOCglcnNwKQordm1v
dmRxYSAleW1tOSwgMTYwKCVyc3ApCit2bW92ZHFhICV5bW0xMCwgMTkyKCVyc3ApCit2bW92ZHFh
ICV5bW0xMSwgMjI0KCVyc3ApCit2bW92ZHF1IDc2OCglcmR4KSwgJXltbTAKK3ZwYWRkdyAwKCVy
c3ApLCAleW1tMCwgJXltbTEKK3ZwYWRkdyAxMjgoJXJzcCksICV5bW00LCAleW1tMgordnBhZGR3
ICV5bW0yLCAleW1tMSwgJXltbTgKK3Zwc3VidyAleW1tMiwgJXltbTEsICV5bW0xMgordm1vdmRx
YSAleW1tMCwgMjU2KCVyc3ApCit2bW92ZHF1IDg1NiglcmR4KSwgJXltbTAKK3ZwYWRkdyAzMigl
cnNwKSwgJXltbTAsICV5bW0xCit2cGFkZHcgMTYwKCVyc3ApLCAleW1tNSwgJXltbTIKK3ZwYWRk
dyAleW1tMiwgJXltbTEsICV5bW05Cit2cHN1YncgJXltbTIsICV5bW0xLCAleW1tMTMKK3Ztb3Zk
cWEgJXltbTAsIDI4OCglcnNwKQordm1vdmRxdSA5NDQoJXJkeCksICV5bW0wCit2cGFkZHcgNjQo
JXJzcCksICV5bW0wLCAleW1tMQordnBhZGR3IDE5MiglcnNwKSwgJXltbTYsICV5bW0yCit2cGFk
ZHcgJXltbTIsICV5bW0xLCAleW1tMTAKK3Zwc3VidyAleW1tMiwgJXltbTEsICV5bW0xNAordm1v
dmRxYSAleW1tMCwgMzIwKCVyc3ApCit2bW92ZHF1IDEwMzIoJXJkeCksICV5bW0wCit2cGFkZHcg
OTYoJXJzcCksICV5bW0wLCAleW1tMQordnBhZGR3IDIyNCglcnNwKSwgJXltbTcsICV5bW0yCit2
cGFkZHcgJXltbTIsICV5bW0xLCAleW1tMTEKK3Zwc3VidyAleW1tMiwgJXltbTEsICV5bW0xNQor
dm1vdmRxYSAleW1tMCwgMzUyKCVyc3ApCit2bW92ZHFhICV5bW04LCA5MjgoJXIxMSkKK3Ztb3Zk
cWEgJXltbTksIDEwMjQoJXIxMSkKK3ZwYWRkdyAleW1tOCwgJXltbTksICV5bW0wCit2bW92ZHFh
ICV5bW0wLCAxMTIwKCVyMTEpCit2bW92ZHFhICV5bW0xMCwgMTIxNiglcjExKQordm1vdmRxYSAl
eW1tMTEsIDEzMTIoJXIxMSkKK3ZwYWRkdyAleW1tMTAsICV5bW0xMSwgJXltbTAKK3Ztb3ZkcWEg
JXltbTAsIDE0MDgoJXIxMSkKK3ZwYWRkdyAleW1tOCwgJXltbTEwLCAleW1tMAordm1vdmRxYSAl
eW1tMCwgMTUwNCglcjExKQordnBhZGR3ICV5bW05LCAleW1tMTEsICV5bW0xCit2bW92ZHFhICV5
bW0xLCAxNjAwKCVyMTEpCit2cGFkZHcgJXltbTAsICV5bW0xLCAleW1tMAordm1vdmRxYSAleW1t
MCwgMTY5NiglcjExKQordm1vdmRxYSAleW1tMTIsIDE3OTIoJXIxMSkKK3Ztb3ZkcWEgJXltbTEz
LCAxODg4KCVyMTEpCit2cGFkZHcgJXltbTEyLCAleW1tMTMsICV5bW0wCit2bW92ZHFhICV5bW0w
LCAxOTg0KCVyMTEpCit2bW92ZHFhICV5bW0xNCwgMjA4MCglcjExKQordm1vdmRxYSAleW1tMTUs
IDIxNzYoJXIxMSkKK3ZwYWRkdyAleW1tMTQsICV5bW0xNSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDIyNzIoJXIxMSkKK3ZwYWRkdyAleW1tMTIsICV5bW0xNCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDIzNjgoJXIxMSkKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEs
IDI0NjQoJXIxMSkKK3ZwYWRkdyAleW1tMCwgJXltbTEsICV5bW0wCit2bW92ZHFhICV5bW0wLCAy
NTYwKCVyMTEpCit2bW92ZHFhIDI1NiglcnNwKSwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTAsICV5
bW0wCit2cGFkZHcgMCglcnNwKSwgJXltbTAsICV5bW0wCit2cHNsbHcgJDIsICV5bW00LCAleW1t
MQordnBhZGR3IDEyOCglcnNwKSwgJXltbTEsICV5bW0xCit2cHNsbHcgJDEsICV5bW0xLCAleW1t
MQordnBhZGR3ICV5bW0xLCAleW1tMCwgJXltbTgKK3Zwc3VidyAleW1tMSwgJXltbTAsICV5bW0x
Mgordm1vdmRxYSAyODgoJXJzcCksICV5bW0wCit2cHNsbHcgJDIsICV5bW0wLCAleW1tMAordnBh
ZGR3IDMyKCVyc3ApLCAleW1tMCwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTUsICV5bW0xCit2cGFk
ZHcgMTYwKCVyc3ApLCAleW1tMSwgJXltbTEKK3Zwc2xsdyAkMSwgJXltbTEsICV5bW0xCit2cGFk
ZHcgJXltbTEsICV5bW0wLCAleW1tOQordnBzdWJ3ICV5bW0xLCAleW1tMCwgJXltbTEzCit2bW92
ZHFhIDMyMCglcnNwKSwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgNjQo
JXJzcCksICV5bW0wLCAleW1tMAordnBzbGx3ICQyLCAleW1tNiwgJXltbTEKK3ZwYWRkdyAxOTIo
JXJzcCksICV5bW0xLCAleW1tMQordnBzbGx3ICQxLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAleW1t
MSwgJXltbTAsICV5bW0xMAordnBzdWJ3ICV5bW0xLCAleW1tMCwgJXltbTE0Cit2bW92ZHFhIDM1
MiglcnNwKSwgJXltbTAKK3Zwc2xsdyAkMiwgJXltbTAsICV5bW0wCit2cGFkZHcgOTYoJXJzcCks
ICV5bW0wLCAleW1tMAordnBzbGx3ICQyLCAleW1tNywgJXltbTEKK3ZwYWRkdyAyMjQoJXJzcCks
ICV5bW0xLCAleW1tMQordnBzbGx3ICQxLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAleW1tMSwgJXlt
bTAsICV5bW0xMQordnBzdWJ3ICV5bW0xLCAleW1tMCwgJXltbTE1Cit2bW92ZHFhICV5bW04LCAy
NjU2KCVyMTEpCit2bW92ZHFhICV5bW05LCAyNzUyKCVyMTEpCit2cGFkZHcgJXltbTgsICV5bW05
LCAleW1tMAordm1vdmRxYSAleW1tMCwgMjg0OCglcjExKQordm1vdmRxYSAleW1tMTAsIDI5NDQo
JXIxMSkKK3Ztb3ZkcWEgJXltbTExLCAzMDQwKCVyMTEpCit2cGFkZHcgJXltbTEwLCAleW1tMTEs
ICV5bW0wCit2bW92ZHFhICV5bW0wLCAzMTM2KCVyMTEpCit2cGFkZHcgJXltbTgsICV5bW0xMCwg
JXltbTAKK3Ztb3ZkcWEgJXltbTAsIDMyMzIoJXIxMSkKK3ZwYWRkdyAleW1tOSwgJXltbTExLCAl
eW1tMQordm1vdmRxYSAleW1tMSwgMzMyOCglcjExKQordnBhZGR3ICV5bW0wLCAleW1tMSwgJXlt
bTAKK3Ztb3ZkcWEgJXltbTAsIDM0MjQoJXIxMSkKK3Ztb3ZkcWEgJXltbTEyLCAzNTIwKCVyMTEp
Cit2bW92ZHFhICV5bW0xMywgMzYxNiglcjExKQordnBhZGR3ICV5bW0xMiwgJXltbTEzLCAleW1t
MAordm1vdmRxYSAleW1tMCwgMzcxMiglcjExKQordm1vdmRxYSAleW1tMTQsIDM4MDgoJXIxMSkK
K3Ztb3ZkcWEgJXltbTE1LCAzOTA0KCVyMTEpCit2cGFkZHcgJXltbTE0LCAleW1tMTUsICV5bW0w
Cit2bW92ZHFhICV5bW0wLCA0MDAwKCVyMTEpCit2cGFkZHcgJXltbTEyLCAleW1tMTQsICV5bW0w
Cit2bW92ZHFhICV5bW0wLCA0MDk2KCVyMTEpCit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0x
Cit2bW92ZHFhICV5bW0xLCA0MTkyKCVyMTEpCit2cGFkZHcgJXltbTAsICV5bW0xLCAleW1tMAor
dm1vdmRxYSAleW1tMCwgNDI4OCglcjExKQordnBtdWxsdyAleW1tMywgJXltbTQsICV5bW0wCit2
cGFkZHcgMjU2KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1t
MAordnBhZGR3IDEyOCglcnNwKSwgJXltbTAsICV5bW0wCit2cG11bGx3ICV5bW0zLCAleW1tMCwg
JXltbTAKK3ZwYWRkdyAwKCVyc3ApLCAleW1tMCwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1t
NSwgJXltbTAKK3ZwYWRkdyAyODgoJXJzcCksICV5bW0wLCAleW1tMAordnBtdWxsdyAleW1tMywg
JXltbTAsICV5bW0wCit2cGFkZHcgMTYwKCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwbXVsbHcgJXlt
bTMsICV5bW0wLCAleW1tMAordnBhZGR3IDMyKCVyc3ApLCAleW1tMCwgJXltbTEzCit2cG11bGx3
ICV5bW0zLCAleW1tNiwgJXltbTAKK3ZwYWRkdyAzMjAoJXJzcCksICV5bW0wLCAleW1tMAordnBt
dWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcgMTkyKCVyc3ApLCAleW1tMCwgJXltbTAK
K3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDY0KCVyc3ApLCAleW1tMCwgJXlt
bTE0Cit2cG11bGx3ICV5bW0zLCAleW1tNywgJXltbTAKK3ZwYWRkdyAzNTIoJXJzcCksICV5bW0w
LCAleW1tMAordnBtdWxsdyAleW1tMywgJXltbTAsICV5bW0wCit2cGFkZHcgMjI0KCVyc3ApLCAl
eW1tMCwgJXltbTAKK3ZwbXVsbHcgJXltbTMsICV5bW0wLCAleW1tMAordnBhZGR3IDk2KCVyc3Ap
LCAleW1tMCwgJXltbTE1Cit2bW92ZHFhICV5bW0xMiwgNDM4NCglcjExKQordm1vdmRxYSAleW1t
MTMsIDQ0ODAoJXIxMSkKK3ZwYWRkdyAleW1tMTIsICV5bW0xMywgJXltbTAKK3Ztb3ZkcWEgJXlt
bTAsIDQ1NzYoJXIxMSkKK3Ztb3ZkcWEgJXltbTE0LCA0NjcyKCVyMTEpCit2bW92ZHFhICV5bW0x
NSwgNDc2OCglcjExKQordnBhZGR3ICV5bW0xNCwgJXltbTE1LCAleW1tMAordm1vdmRxYSAleW1t
MCwgNDg2NCglcjExKQordnBhZGR3ICV5bW0xMiwgJXltbTE0LCAleW1tMAordm1vdmRxYSAleW1t
MCwgNDk2MCglcjExKQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMQordm1vdmRxYSAleW1t
MSwgNTA1NiglcjExKQordnBhZGR3ICV5bW0wLCAleW1tMSwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDUxNTIoJXIxMSkKK3N1YnEgJDk0MDgsICVyc3AKK21vdiAkNCwgJWVjeAora2FyYXRzdWJhX2xv
b3BfNGVjZWQ2M2YxNDRiZWZmY2IwMjQ3ZjljNmY2N2QxNjU6Cittb3YgJXJzcCwgJXI5Cittb3Yg
JXJzcCwgJXIxMAorc3VicSAkMzIsICVyc3AKK3Ztb3ZkcWEgMCglcmF4KSwgJXltbTAKK3Ztb3Zk
cWEgMTkyKCVyYXgpLCAleW1tMQordm1vdmRxYSAzODQoJXJheCksICV5bW0yCit2bW92ZHFhIDU3
NiglcmF4KSwgJXltbTMKK3ZwdW5wY2tsd2QgOTYoJXJheCksICV5bW0wLCAleW1tNAordnB1bnBj
a2h3ZCA5NiglcmF4KSwgJXltbTAsICV5bW01Cit2cHVucGNrbHdkIDI4OCglcmF4KSwgJXltbTEs
ICV5bW02Cit2cHVucGNraHdkIDI4OCglcmF4KSwgJXltbTEsICV5bW03Cit2cHVucGNrbHdkIDQ4
MCglcmF4KSwgJXltbTIsICV5bW04Cit2cHVucGNraHdkIDQ4MCglcmF4KSwgJXltbTIsICV5bW05
Cit2cHVucGNrbHdkIDY3MiglcmF4KSwgJXltbTMsICV5bW0xMAordnB1bnBja2h3ZCA2NzIoJXJh
eCksICV5bW0zLCAleW1tMTEKK3ZwdW5wY2tsZHEgJXltbTYsICV5bW00LCAleW1tMAordnB1bnBj
a2hkcSAleW1tNiwgJXltbTQsICV5bW0xCit2cHVucGNrbGRxICV5bW03LCAleW1tNSwgJXltbTIK
K3ZwdW5wY2toZHEgJXltbTcsICV5bW01LCAleW1tMwordnB1bnBja2xkcSAleW1tMTAsICV5bW04
LCAleW1tMTIKK3ZwdW5wY2toZHEgJXltbTEwLCAleW1tOCwgJXltbTEzCit2cHVucGNrbGRxICV5
bW0xMSwgJXltbTksICV5bW0xNAordnB1bnBja2hkcSAleW1tMTEsICV5bW05LCAleW1tMTUKK3Zw
dW5wY2tscWRxICV5bW0xMiwgJXltbTAsICV5bW00Cit2cHVucGNraHFkcSAleW1tMTIsICV5bW0w
LCAleW1tNQordnB1bnBja2xxZHEgJXltbTEzLCAleW1tMSwgJXltbTYKK3ZwdW5wY2tocWRxICV5
bW0xMywgJXltbTEsICV5bW03Cit2cHVucGNrbHFkcSAleW1tMTQsICV5bW0yLCAleW1tOAordnB1
bnBja2hxZHEgJXltbTE0LCAleW1tMiwgJXltbTkKK3ZwdW5wY2tscWRxICV5bW0xNSwgJXltbTMs
ICV5bW0xMAordnB1bnBja2hxZHEgJXltbTE1LCAleW1tMywgJXltbTExCit2bW92ZHFhIDc2OCgl
cmF4KSwgJXltbTAKK3Ztb3ZkcWEgOTYwKCVyYXgpLCAleW1tMQordm1vdmRxYSAxMTUyKCVyYXgp
LCAleW1tMgordm1vdmRxYSAxMzQ0KCVyYXgpLCAleW1tMwordnB1bnBja2x3ZCA4NjQoJXJheCks
ICV5bW0wLCAleW1tMTIKK3ZwdW5wY2tod2QgODY0KCVyYXgpLCAleW1tMCwgJXltbTEzCit2cHVu
cGNrbHdkIDEwNTYoJXJheCksICV5bW0xLCAleW1tMTQKK3ZwdW5wY2tod2QgMTA1NiglcmF4KSwg
JXltbTEsICV5bW0xNQordnB1bnBja2x3ZCAxMjQ4KCVyYXgpLCAleW1tMiwgJXltbTAKK3ZwdW5w
Y2tod2QgMTI0OCglcmF4KSwgJXltbTIsICV5bW0xCit2cHVucGNrbHdkIDE0NDAoJXJheCksICV5
bW0zLCAleW1tMgordnB1bnBja2h3ZCAxNDQwKCVyYXgpLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEg
JXltbTExLCAwKCVyc3ApCit2cHVucGNrbGRxICV5bW0xNCwgJXltbTEyLCAleW1tMTEKK3ZwdW5w
Y2toZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMgordnB1bnBja2xkcSAleW1tMTUsICV5bW0xMywg
JXltbTE0Cit2cHVucGNraGRxICV5bW0xNSwgJXltbTEzLCAleW1tMTUKK3ZwdW5wY2tsZHEgJXlt
bTIsICV5bW0wLCAleW1tMTMKK3ZwdW5wY2toZHEgJXltbTIsICV5bW0wLCAleW1tMAordnB1bnBj
a2xkcSAleW1tMywgJXltbTEsICV5bW0yCit2cHVucGNraGRxICV5bW0zLCAleW1tMSwgJXltbTEK
K3ZwdW5wY2tscWRxICV5bW0xMywgJXltbTExLCAleW1tMwordnB1bnBja2hxZHEgJXltbTEzLCAl
eW1tMTEsICV5bW0xMwordnB1bnBja2xxZHEgJXltbTAsICV5bW0xMiwgJXltbTExCit2cHVucGNr
aHFkcSAleW1tMCwgJXltbTEyLCAleW1tMAordnB1bnBja2xxZHEgJXltbTIsICV5bW0xNCwgJXlt
bTEyCit2cHVucGNraHFkcSAleW1tMiwgJXltbTE0LCAleW1tMgordnB1bnBja2xxZHEgJXltbTEs
ICV5bW0xNSwgJXltbTE0Cit2cHVucGNraHFkcSAleW1tMSwgJXltbTE1LCAleW1tMQordmluc2Vy
dGkxMjggJDEsICV4bW0zLCAleW1tNCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMCglcjkpCit2
aW5zZXJ0aTEyOCAkMSwgJXhtbTEzLCAleW1tNSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMzIo
JXI5KQordmluc2VydGkxMjggJDEsICV4bW0xMSwgJXltbTYsICV5bW0xNQordm1vdmRxYSAleW1t
MTUsIDY0KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQordm1vdmRx
YSAleW1tMTUsIDk2KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTIsICV5bW04LCAleW1tMTUK
K3Ztb3ZkcWEgJXltbTE1LCAxMjgoJXI5KQordmluc2VydGkxMjggJDEsICV4bW0yLCAleW1tOSwg
JXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTYwKCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTQs
ICV5bW0xMCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTkyKCVyOSkKK3ZwZXJtcSAkNzgsICV5
bW00LCAleW1tNAordnBlcm1xICQ3OCwgJXltbTUsICV5bW01Cit2cGVybXEgJDc4LCAleW1tNiwg
JXltbTYKK3ZwZXJtcSAkNzgsICV5bW03LCAleW1tNwordnBlcm1xICQ3OCwgJXltbTgsICV5bW04
Cit2cGVybXEgJDc4LCAleW1tOSwgJXltbTkKK3ZwZXJtcSAkNzgsICV5bW0xMCwgJXltbTEwCit2
aW5zZXJ0aTEyOCAkMCwgJXhtbTQsICV5bW0zLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyNTYo
JXI5KQordmluc2VydGkxMjggJDAsICV4bW01LCAleW1tMTMsICV5bW0xNQordm1vdmRxYSAleW1t
MTUsIDI4OCglcjkpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTYsICV5bW0xMSwgJXltbTE1Cit2bW92
ZHFhICV5bW0xNSwgMzIwKCVyOSkKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNywgJXltbTAsICV5bW0x
NQordm1vdmRxYSAleW1tMTUsIDM1MiglcjkpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTgsICV5bW0x
MiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMzg0KCVyOSkKK3ZpbnNlcnRpMTI4ICQwLCAleG1t
OSwgJXltbTIsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDQxNiglcjkpCit2aW5zZXJ0aTEyOCAk
MCwgJXhtbTEwLCAleW1tMTQsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDQ0OCglcjkpCit2bW92
ZHFhIDAoJXJzcCksICV5bW0xMQordmluc2VydGkxMjggJDEsICV4bW0xLCAleW1tMTEsICV5bW0x
NAordm1vdmRxYSAleW1tMTQsIDIyNCglcjkpCit2cGVybXEgJDc4LCAleW1tMTEsICV5bW0xMQor
dmluc2VydGkxMjggJDAsICV4bW0xMSwgJXltbTEsICV5bW0xCit2bW92ZHFhICV5bW0xLCA0ODAo
JXI5KQordm1vdmRxYSAzMiglcmF4KSwgJXltbTAKK3Ztb3ZkcWEgMjI0KCVyYXgpLCAleW1tMQor
dm1vdmRxYSA0MTYoJXJheCksICV5bW0yCit2bW92ZHFhIDYwOCglcmF4KSwgJXltbTMKK3ZwdW5w
Y2tsd2QgMTI4KCVyYXgpLCAleW1tMCwgJXltbTQKK3ZwdW5wY2tod2QgMTI4KCVyYXgpLCAleW1t
MCwgJXltbTUKK3ZwdW5wY2tsd2QgMzIwKCVyYXgpLCAleW1tMSwgJXltbTYKK3ZwdW5wY2tod2Qg
MzIwKCVyYXgpLCAleW1tMSwgJXltbTcKK3ZwdW5wY2tsd2QgNTEyKCVyYXgpLCAleW1tMiwgJXlt
bTgKK3ZwdW5wY2tod2QgNTEyKCVyYXgpLCAleW1tMiwgJXltbTkKK3ZwdW5wY2tsd2QgNzA0KCVy
YXgpLCAleW1tMywgJXltbTEwCit2cHVucGNraHdkIDcwNCglcmF4KSwgJXltbTMsICV5bW0xMQor
dnB1bnBja2xkcSAleW1tNiwgJXltbTQsICV5bW0wCit2cHVucGNraGRxICV5bW02LCAleW1tNCwg
JXltbTEKK3ZwdW5wY2tsZHEgJXltbTcsICV5bW01LCAleW1tMgordnB1bnBja2hkcSAleW1tNywg
JXltbTUsICV5bW0zCit2cHVucGNrbGRxICV5bW0xMCwgJXltbTgsICV5bW0xMgordnB1bnBja2hk
cSAleW1tMTAsICV5bW04LCAleW1tMTMKK3ZwdW5wY2tsZHEgJXltbTExLCAleW1tOSwgJXltbTE0
Cit2cHVucGNraGRxICV5bW0xMSwgJXltbTksICV5bW0xNQordnB1bnBja2xxZHEgJXltbTEyLCAl
eW1tMCwgJXltbTQKK3ZwdW5wY2tocWRxICV5bW0xMiwgJXltbTAsICV5bW01Cit2cHVucGNrbHFk
cSAleW1tMTMsICV5bW0xLCAleW1tNgordnB1bnBja2hxZHEgJXltbTEzLCAleW1tMSwgJXltbTcK
K3ZwdW5wY2tscWRxICV5bW0xNCwgJXltbTIsICV5bW04Cit2cHVucGNraHFkcSAleW1tMTQsICV5
bW0yLCAleW1tOQordnB1bnBja2xxZHEgJXltbTE1LCAleW1tMywgJXltbTEwCit2cHVucGNraHFk
cSAleW1tMTUsICV5bW0zLCAleW1tMTEKK3Ztb3ZkcWEgODAwKCVyYXgpLCAleW1tMAordm1vdmRx
YSA5OTIoJXJheCksICV5bW0xCit2bW92ZHFhIDExODQoJXJheCksICV5bW0yCit2bW92ZHFhIDEz
NzYoJXJheCksICV5bW0zCit2cHVucGNrbHdkIDg5NiglcmF4KSwgJXltbTAsICV5bW0xMgordnB1
bnBja2h3ZCA4OTYoJXJheCksICV5bW0wLCAleW1tMTMKK3ZwdW5wY2tsd2QgMTA4OCglcmF4KSwg
JXltbTEsICV5bW0xNAordnB1bnBja2h3ZCAxMDg4KCVyYXgpLCAleW1tMSwgJXltbTE1Cit2cHVu
cGNrbHdkIDEyODAoJXJheCksICV5bW0yLCAleW1tMAordnB1bnBja2h3ZCAxMjgwKCVyYXgpLCAl
eW1tMiwgJXltbTEKK3ZwdW5wY2tsd2QgMTQ3MiglcmF4KSwgJXltbTMsICV5bW0yCit2cHVucGNr
aHdkIDE0NzIoJXJheCksICV5bW0zLCAleW1tMwordm1vdmRxYSAleW1tMTEsIDAoJXJzcCkKK3Zw
dW5wY2tsZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMQordnB1bnBja2hkcSAleW1tMTQsICV5bW0x
MiwgJXltbTEyCit2cHVucGNrbGRxICV5bW0xNSwgJXltbTEzLCAleW1tMTQKK3ZwdW5wY2toZHEg
JXltbTE1LCAleW1tMTMsICV5bW0xNQordnB1bnBja2xkcSAleW1tMiwgJXltbTAsICV5bW0xMwor
dnB1bnBja2hkcSAleW1tMiwgJXltbTAsICV5bW0wCit2cHVucGNrbGRxICV5bW0zLCAleW1tMSwg
JXltbTIKK3ZwdW5wY2toZHEgJXltbTMsICV5bW0xLCAleW1tMQordnB1bnBja2xxZHEgJXltbTEz
LCAleW1tMTEsICV5bW0zCit2cHVucGNraHFkcSAleW1tMTMsICV5bW0xMSwgJXltbTEzCit2cHVu
cGNrbHFkcSAleW1tMCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2tocWRxICV5bW0wLCAleW1tMTIs
ICV5bW0wCit2cHVucGNrbHFkcSAleW1tMiwgJXltbTE0LCAleW1tMTIKK3ZwdW5wY2tocWRxICV5
bW0yLCAleW1tMTQsICV5bW0yCit2cHVucGNrbHFkcSAleW1tMSwgJXltbTE1LCAleW1tMTQKK3Zw
dW5wY2tocWRxICV5bW0xLCAleW1tMTUsICV5bW0xCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTMsICV5
bW00LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA1MTIoJXI5KQordmluc2VydGkxMjggJDEsICV4
bW0xMywgJXltbTUsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDU0NCglcjkpCit2aW5zZXJ0aTEy
OCAkMSwgJXhtbTExLCAleW1tNiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgNTc2KCVyOSkKK3Zp
bnNlcnRpMTI4ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDYwOCgl
cjkpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTEyLCAleW1tOCwgJXltbTE1Cit2bW92ZHFhICV5bW0x
NSwgNjQwKCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMiwgJXltbTksICV5bW0xNQordm1vdmRx
YSAleW1tMTUsIDY3MiglcjkpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTE0LCAleW1tMTAsICV5bW0x
NQordm1vdmRxYSAleW1tMTUsIDcwNCglcjkpCit2cGVybXEgJDc4LCAleW1tNCwgJXltbTQKK3Zw
ZXJtcSAkNzgsICV5bW01LCAleW1tNQordnBlcm1xICQ3OCwgJXltbTYsICV5bW02Cit2cGVybXEg
JDc4LCAleW1tNywgJXltbTcKK3ZwZXJtcSAkNzgsICV5bW04LCAleW1tOAordnBlcm1xICQ3OCwg
JXltbTksICV5bW05Cit2cGVybXEgJDc4LCAleW1tMTAsICV5bW0xMAordmluc2VydGkxMjggJDAs
ICV4bW00LCAleW1tMywgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgNzY4KCVyOSkKK3ZpbnNlcnRp
MTI4ICQwLCAleG1tNSwgJXltbTEzLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA4MDAoJXI5KQor
dmluc2VydGkxMjggJDAsICV4bW02LCAleW1tMTEsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDgz
MiglcjkpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTcsICV5bW0wLCAleW1tMTUKK3Ztb3ZkcWEgJXlt
bTE1LCA4NjQoJXI5KQordmluc2VydGkxMjggJDAsICV4bW04LCAleW1tMTIsICV5bW0xNQordm1v
dmRxYSAleW1tMTUsIDg5NiglcjkpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTksICV5bW0yLCAleW1t
MTUKK3Ztb3ZkcWEgJXltbTE1LCA5MjgoJXI5KQordmluc2VydGkxMjggJDAsICV4bW0xMCwgJXlt
bTE0LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA5NjAoJXI5KQordm1vdmRxYSAwKCVyc3ApLCAl
eW1tMTEKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMSwgJXltbTExLCAleW1tMTQKK3Ztb3ZkcWEgJXlt
bTE0LCA3MzYoJXI5KQordnBlcm1xICQ3OCwgJXltbTExLCAleW1tMTEKK3ZpbnNlcnRpMTI4ICQw
LCAleG1tMTEsICV5bW0xLCAleW1tMQordm1vdmRxYSAleW1tMSwgOTkyKCVyOSkKK3Ztb3ZkcWEg
NjQoJXJheCksICV5bW0wCit2bW92ZHFhIDI1NiglcmF4KSwgJXltbTEKK3Ztb3ZkcWEgNDQ4KCVy
YXgpLCAleW1tMgordm1vdmRxYSA2NDAoJXJheCksICV5bW0zCit2cHVucGNrbHdkIDE2MCglcmF4
KSwgJXltbTAsICV5bW00Cit2cHVucGNraHdkIDE2MCglcmF4KSwgJXltbTAsICV5bW01Cit2cHVu
cGNrbHdkIDM1MiglcmF4KSwgJXltbTEsICV5bW02Cit2cHVucGNraHdkIDM1MiglcmF4KSwgJXlt
bTEsICV5bW03Cit2cHVucGNrbHdkIDU0NCglcmF4KSwgJXltbTIsICV5bW04Cit2cHVucGNraHdk
IDU0NCglcmF4KSwgJXltbTIsICV5bW05Cit2cHVucGNrbHdkIDczNiglcmF4KSwgJXltbTMsICV5
bW0xMAordnB1bnBja2h3ZCA3MzYoJXJheCksICV5bW0zLCAleW1tMTEKK3ZwdW5wY2tsZHEgJXlt
bTYsICV5bW00LCAleW1tMAordnB1bnBja2hkcSAleW1tNiwgJXltbTQsICV5bW0xCit2cHVucGNr
bGRxICV5bW03LCAleW1tNSwgJXltbTIKK3ZwdW5wY2toZHEgJXltbTcsICV5bW01LCAleW1tMwor
dnB1bnBja2xkcSAleW1tMTAsICV5bW04LCAleW1tMTIKK3ZwdW5wY2toZHEgJXltbTEwLCAleW1t
OCwgJXltbTEzCit2cHVucGNrbGRxICV5bW0xMSwgJXltbTksICV5bW0xNAordnB1bnBja2hkcSAl
eW1tMTEsICV5bW05LCAleW1tMTUKK3ZwdW5wY2tscWRxICV5bW0xMiwgJXltbTAsICV5bW00Cit2
cHVucGNraHFkcSAleW1tMTIsICV5bW0wLCAleW1tNQordnB1bnBja2xxZHEgJXltbTEzLCAleW1t
MSwgJXltbTYKK3ZwdW5wY2tocWRxICV5bW0xMywgJXltbTEsICV5bW03Cit2cHVucGNrbHFkcSAl
eW1tMTQsICV5bW0yLCAleW1tOAordnB1bnBja2hxZHEgJXltbTE0LCAleW1tMiwgJXltbTkKK3Zw
dW5wY2tscWRxICV5bW0xNSwgJXltbTMsICV5bW0xMAordnB1bnBja2hxZHEgJXltbTE1LCAleW1t
MywgJXltbTExCit2bW92ZHFhIDgzMiglcmF4KSwgJXltbTAKK3Ztb3ZkcWEgMTAyNCglcmF4KSwg
JXltbTEKK3Ztb3ZkcWEgMTIxNiglcmF4KSwgJXltbTIKK3Ztb3ZkcWEgMTQwOCglcmF4KSwgJXlt
bTMKK3ZwdW5wY2tsd2QgOTI4KCVyYXgpLCAleW1tMCwgJXltbTEyCit2cHVucGNraHdkIDkyOCgl
cmF4KSwgJXltbTAsICV5bW0xMwordnB1bnBja2x3ZCAxMTIwKCVyYXgpLCAleW1tMSwgJXltbTE0
Cit2cHVucGNraHdkIDExMjAoJXJheCksICV5bW0xLCAleW1tMTUKK3ZwdW5wY2tsd2QgMTMxMigl
cmF4KSwgJXltbTIsICV5bW0wCit2cHVucGNraHdkIDEzMTIoJXJheCksICV5bW0yLCAleW1tMQor
dnB1bnBja2x3ZCAxNTA0KCVyYXgpLCAleW1tMywgJXltbTIKK3ZwdW5wY2tod2QgMTUwNCglcmF4
KSwgJXltbTMsICV5bW0zCit2bW92ZHFhICV5bW0xMSwgMCglcnNwKQordnB1bnBja2xkcSAleW1t
MTQsICV5bW0xMiwgJXltbTExCit2cHVucGNraGRxICV5bW0xNCwgJXltbTEyLCAleW1tMTIKK3Zw
dW5wY2tsZHEgJXltbTE1LCAleW1tMTMsICV5bW0xNAordnB1bnBja2hkcSAleW1tMTUsICV5bW0x
MywgJXltbTE1Cit2cHVucGNrbGRxICV5bW0yLCAleW1tMCwgJXltbTEzCit2cHVucGNraGRxICV5
bW0yLCAleW1tMCwgJXltbTAKK3ZwdW5wY2tsZHEgJXltbTMsICV5bW0xLCAleW1tMgordnB1bnBj
a2hkcSAleW1tMywgJXltbTEsICV5bW0xCit2cHVucGNrbHFkcSAleW1tMTMsICV5bW0xMSwgJXlt
bTMKK3ZwdW5wY2tocWRxICV5bW0xMywgJXltbTExLCAleW1tMTMKK3ZwdW5wY2tscWRxICV5bW0w
LCAleW1tMTIsICV5bW0xMQordnB1bnBja2hxZHEgJXltbTAsICV5bW0xMiwgJXltbTAKK3ZwdW5w
Y2tscWRxICV5bW0yLCAleW1tMTQsICV5bW0xMgordnB1bnBja2hxZHEgJXltbTIsICV5bW0xNCwg
JXltbTIKK3ZwdW5wY2tscWRxICV5bW0xLCAleW1tMTUsICV5bW0xNAordnB1bnBja2hxZHEgJXlt
bTEsICV5bW0xNSwgJXltbTEKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMywgJXltbTQsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDEwMjQoJXI5KQordmluc2VydGkxMjggJDEsICV4bW0xMywgJXltbTUs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDEwNTYoJXI5KQordmluc2VydGkxMjggJDEsICV4bW0x
MSwgJXltbTYsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDEwODgoJXI5KQordmluc2VydGkxMjgg
JDEsICV4bW0wLCAleW1tNywgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTEyMCglcjkpCit2aW5z
ZXJ0aTEyOCAkMSwgJXhtbTEyLCAleW1tOCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTE1Migl
cjkpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTIsICV5bW05LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1
LCAxMTg0KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTQsICV5bW0xMCwgJXltbTE1Cit2bW92
ZHFhICV5bW0xNSwgMTIxNiglcjkpCit2cGVybXEgJDc4LCAleW1tNCwgJXltbTQKK3ZwZXJtcSAk
NzgsICV5bW01LCAleW1tNQordnBlcm1xICQ3OCwgJXltbTYsICV5bW02Cit2cGVybXEgJDc4LCAl
eW1tNywgJXltbTcKK3ZwZXJtcSAkNzgsICV5bW04LCAleW1tOAordnBlcm1xICQ3OCwgJXltbTks
ICV5bW05Cit2cGVybXEgJDc4LCAleW1tMTAsICV5bW0xMAordmluc2VydGkxMjggJDAsICV4bW00
LCAleW1tMywgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTI4MCglcjkpCit2aW5zZXJ0aTEyOCAk
MCwgJXhtbTUsICV5bW0xMywgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTMxMiglcjkpCit2aW5z
ZXJ0aTEyOCAkMCwgJXhtbTYsICV5bW0xMSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTM0NCgl
cjkpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTcsICV5bW0wLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1
LCAxMzc2KCVyOSkKK3Ztb3ZkcWEgMCglcnNwKSwgJXltbTExCit2aW5zZXJ0aTEyOCAkMSwgJXht
bTEsICV5bW0xMSwgJXltbTE0Cit2bW92ZHFhICV5bW0xNCwgMTI0OCglcjkpCithZGRxICQzMiwg
JXJzcAorc3VicSAkMzIsICVyc3AKK3Ztb3ZkcWEgMCglcjExKSwgJXltbTAKK3Ztb3ZkcWEgMTky
KCVyMTEpLCAleW1tMQordm1vdmRxYSAzODQoJXIxMSksICV5bW0yCit2bW92ZHFhIDU3NiglcjEx
KSwgJXltbTMKK3ZwdW5wY2tsd2QgOTYoJXIxMSksICV5bW0wLCAleW1tNAordnB1bnBja2h3ZCA5
NiglcjExKSwgJXltbTAsICV5bW01Cit2cHVucGNrbHdkIDI4OCglcjExKSwgJXltbTEsICV5bW02
Cit2cHVucGNraHdkIDI4OCglcjExKSwgJXltbTEsICV5bW03Cit2cHVucGNrbHdkIDQ4MCglcjEx
KSwgJXltbTIsICV5bW04Cit2cHVucGNraHdkIDQ4MCglcjExKSwgJXltbTIsICV5bW05Cit2cHVu
cGNrbHdkIDY3MiglcjExKSwgJXltbTMsICV5bW0xMAordnB1bnBja2h3ZCA2NzIoJXIxMSksICV5
bW0zLCAleW1tMTEKK3ZwdW5wY2tsZHEgJXltbTYsICV5bW00LCAleW1tMAordnB1bnBja2hkcSAl
eW1tNiwgJXltbTQsICV5bW0xCit2cHVucGNrbGRxICV5bW03LCAleW1tNSwgJXltbTIKK3ZwdW5w
Y2toZHEgJXltbTcsICV5bW01LCAleW1tMwordnB1bnBja2xkcSAleW1tMTAsICV5bW04LCAleW1t
MTIKK3ZwdW5wY2toZHEgJXltbTEwLCAleW1tOCwgJXltbTEzCit2cHVucGNrbGRxICV5bW0xMSwg
JXltbTksICV5bW0xNAordnB1bnBja2hkcSAleW1tMTEsICV5bW05LCAleW1tMTUKK3ZwdW5wY2ts
cWRxICV5bW0xMiwgJXltbTAsICV5bW00Cit2cHVucGNraHFkcSAleW1tMTIsICV5bW0wLCAleW1t
NQordnB1bnBja2xxZHEgJXltbTEzLCAleW1tMSwgJXltbTYKK3ZwdW5wY2tocWRxICV5bW0xMywg
JXltbTEsICV5bW03Cit2cHVucGNrbHFkcSAleW1tMTQsICV5bW0yLCAleW1tOAordnB1bnBja2hx
ZHEgJXltbTE0LCAleW1tMiwgJXltbTkKK3ZwdW5wY2tscWRxICV5bW0xNSwgJXltbTMsICV5bW0x
MAordnB1bnBja2hxZHEgJXltbTE1LCAleW1tMywgJXltbTExCit2bW92ZHFhIDc2OCglcjExKSwg
JXltbTAKK3Ztb3ZkcWEgOTYwKCVyMTEpLCAleW1tMQordm1vdmRxYSAxMTUyKCVyMTEpLCAleW1t
Mgordm1vdmRxYSAxMzQ0KCVyMTEpLCAleW1tMwordnB1bnBja2x3ZCA4NjQoJXIxMSksICV5bW0w
LCAleW1tMTIKK3ZwdW5wY2tod2QgODY0KCVyMTEpLCAleW1tMCwgJXltbTEzCit2cHVucGNrbHdk
IDEwNTYoJXIxMSksICV5bW0xLCAleW1tMTQKK3ZwdW5wY2tod2QgMTA1NiglcjExKSwgJXltbTEs
ICV5bW0xNQordnB1bnBja2x3ZCAxMjQ4KCVyMTEpLCAleW1tMiwgJXltbTAKK3ZwdW5wY2tod2Qg
MTI0OCglcjExKSwgJXltbTIsICV5bW0xCit2cHVucGNrbHdkIDE0NDAoJXIxMSksICV5bW0zLCAl
eW1tMgordnB1bnBja2h3ZCAxNDQwKCVyMTEpLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEgJXltbTEx
LCAwKCVyc3ApCit2cHVucGNrbGRxICV5bW0xNCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2toZHEg
JXltbTE0LCAleW1tMTIsICV5bW0xMgordnB1bnBja2xkcSAleW1tMTUsICV5bW0xMywgJXltbTE0
Cit2cHVucGNraGRxICV5bW0xNSwgJXltbTEzLCAleW1tMTUKK3ZwdW5wY2tsZHEgJXltbTIsICV5
bW0wLCAleW1tMTMKK3ZwdW5wY2toZHEgJXltbTIsICV5bW0wLCAleW1tMAordnB1bnBja2xkcSAl
eW1tMywgJXltbTEsICV5bW0yCit2cHVucGNraGRxICV5bW0zLCAleW1tMSwgJXltbTEKK3ZwdW5w
Y2tscWRxICV5bW0xMywgJXltbTExLCAleW1tMwordnB1bnBja2hxZHEgJXltbTEzLCAleW1tMTEs
ICV5bW0xMwordnB1bnBja2xxZHEgJXltbTAsICV5bW0xMiwgJXltbTExCit2cHVucGNraHFkcSAl
eW1tMCwgJXltbTEyLCAleW1tMAordnB1bnBja2xxZHEgJXltbTIsICV5bW0xNCwgJXltbTEyCit2
cHVucGNraHFkcSAleW1tMiwgJXltbTE0LCAleW1tMgordnB1bnBja2xxZHEgJXltbTEsICV5bW0x
NSwgJXltbTE0Cit2cHVucGNraHFkcSAleW1tMSwgJXltbTE1LCAleW1tMQordmluc2VydGkxMjgg
JDEsICV4bW0zLCAleW1tNCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTQwOCglcjkpCit2aW5z
ZXJ0aTEyOCAkMSwgJXhtbTEzLCAleW1tNSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTQ0MCgl
cjkpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTExLCAleW1tNiwgJXltbTE1Cit2bW92ZHFhICV5bW0x
NSwgMTQ3MiglcjkpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTAsICV5bW03LCAleW1tMTUKK3Ztb3Zk
cWEgJXltbTE1LCAxNTA0KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTIsICV5bW04LCAleW1t
MTUKK3Ztb3ZkcWEgJXltbTE1LCAxNTM2KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMiwgJXlt
bTksICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE1NjgoJXI5KQordmluc2VydGkxMjggJDEsICV4
bW0xNCwgJXltbTEwLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxNjAwKCVyOSkKK3ZwZXJtcSAk
NzgsICV5bW00LCAleW1tNAordnBlcm1xICQ3OCwgJXltbTUsICV5bW01Cit2cGVybXEgJDc4LCAl
eW1tNiwgJXltbTYKK3ZwZXJtcSAkNzgsICV5bW03LCAleW1tNwordnBlcm1xICQ3OCwgJXltbTgs
ICV5bW04Cit2cGVybXEgJDc4LCAleW1tOSwgJXltbTkKK3ZwZXJtcSAkNzgsICV5bW0xMCwgJXlt
bTEwCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTQsICV5bW0zLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1
LCAxNjY0KCVyOSkKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNSwgJXltbTEzLCAleW1tMTUKK3Ztb3Zk
cWEgJXltbTE1LCAxNjk2KCVyOSkKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNiwgJXltbTExLCAleW1t
MTUKK3Ztb3ZkcWEgJXltbTE1LCAxNzI4KCVyOSkKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNywgJXlt
bTAsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE3NjAoJXI5KQordmluc2VydGkxMjggJDAsICV4
bW04LCAleW1tMTIsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE3OTIoJXI5KQordmluc2VydGkx
MjggJDAsICV4bW05LCAleW1tMiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTgyNCglcjkpCit2
aW5zZXJ0aTEyOCAkMCwgJXhtbTEwLCAleW1tMTQsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE4
NTYoJXI5KQordm1vdmRxYSAwKCVyc3ApLCAleW1tMTEKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMSwg
JXltbTExLCAleW1tMTQKK3Ztb3ZkcWEgJXltbTE0LCAxNjMyKCVyOSkKK3ZwZXJtcSAkNzgsICV5
bW0xMSwgJXltbTExCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTExLCAleW1tMSwgJXltbTEKK3Ztb3Zk
cWEgJXltbTEsIDE4ODgoJXI5KQordm1vdmRxYSAzMiglcjExKSwgJXltbTAKK3Ztb3ZkcWEgMjI0
KCVyMTEpLCAleW1tMQordm1vdmRxYSA0MTYoJXIxMSksICV5bW0yCit2bW92ZHFhIDYwOCglcjEx
KSwgJXltbTMKK3ZwdW5wY2tsd2QgMTI4KCVyMTEpLCAleW1tMCwgJXltbTQKK3ZwdW5wY2tod2Qg
MTI4KCVyMTEpLCAleW1tMCwgJXltbTUKK3ZwdW5wY2tsd2QgMzIwKCVyMTEpLCAleW1tMSwgJXlt
bTYKK3ZwdW5wY2tod2QgMzIwKCVyMTEpLCAleW1tMSwgJXltbTcKK3ZwdW5wY2tsd2QgNTEyKCVy
MTEpLCAleW1tMiwgJXltbTgKK3ZwdW5wY2tod2QgNTEyKCVyMTEpLCAleW1tMiwgJXltbTkKK3Zw
dW5wY2tsd2QgNzA0KCVyMTEpLCAleW1tMywgJXltbTEwCit2cHVucGNraHdkIDcwNCglcjExKSwg
JXltbTMsICV5bW0xMQordnB1bnBja2xkcSAleW1tNiwgJXltbTQsICV5bW0wCit2cHVucGNraGRx
ICV5bW02LCAleW1tNCwgJXltbTEKK3ZwdW5wY2tsZHEgJXltbTcsICV5bW01LCAleW1tMgordnB1
bnBja2hkcSAleW1tNywgJXltbTUsICV5bW0zCit2cHVucGNrbGRxICV5bW0xMCwgJXltbTgsICV5
bW0xMgordnB1bnBja2hkcSAleW1tMTAsICV5bW04LCAleW1tMTMKK3ZwdW5wY2tsZHEgJXltbTEx
LCAleW1tOSwgJXltbTE0Cit2cHVucGNraGRxICV5bW0xMSwgJXltbTksICV5bW0xNQordnB1bnBj
a2xxZHEgJXltbTEyLCAleW1tMCwgJXltbTQKK3ZwdW5wY2tocWRxICV5bW0xMiwgJXltbTAsICV5
bW01Cit2cHVucGNrbHFkcSAleW1tMTMsICV5bW0xLCAleW1tNgordnB1bnBja2hxZHEgJXltbTEz
LCAleW1tMSwgJXltbTcKK3ZwdW5wY2tscWRxICV5bW0xNCwgJXltbTIsICV5bW04Cit2cHVucGNr
aHFkcSAleW1tMTQsICV5bW0yLCAleW1tOQordnB1bnBja2xxZHEgJXltbTE1LCAleW1tMywgJXlt
bTEwCit2cHVucGNraHFkcSAleW1tMTUsICV5bW0zLCAleW1tMTEKK3Ztb3ZkcWEgODAwKCVyMTEp
LCAleW1tMAordm1vdmRxYSA5OTIoJXIxMSksICV5bW0xCit2bW92ZHFhIDExODQoJXIxMSksICV5
bW0yCit2bW92ZHFhIDEzNzYoJXIxMSksICV5bW0zCit2cHVucGNrbHdkIDg5NiglcjExKSwgJXlt
bTAsICV5bW0xMgordnB1bnBja2h3ZCA4OTYoJXIxMSksICV5bW0wLCAleW1tMTMKK3ZwdW5wY2ts
d2QgMTA4OCglcjExKSwgJXltbTEsICV5bW0xNAordnB1bnBja2h3ZCAxMDg4KCVyMTEpLCAleW1t
MSwgJXltbTE1Cit2cHVucGNrbHdkIDEyODAoJXIxMSksICV5bW0yLCAleW1tMAordnB1bnBja2h3
ZCAxMjgwKCVyMTEpLCAleW1tMiwgJXltbTEKK3ZwdW5wY2tsd2QgMTQ3MiglcjExKSwgJXltbTMs
ICV5bW0yCit2cHVucGNraHdkIDE0NzIoJXIxMSksICV5bW0zLCAleW1tMwordm1vdmRxYSAleW1t
MTEsIDAoJXJzcCkKK3ZwdW5wY2tsZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMQordnB1bnBja2hk
cSAleW1tMTQsICV5bW0xMiwgJXltbTEyCit2cHVucGNrbGRxICV5bW0xNSwgJXltbTEzLCAleW1t
MTQKK3ZwdW5wY2toZHEgJXltbTE1LCAleW1tMTMsICV5bW0xNQordnB1bnBja2xkcSAleW1tMiwg
JXltbTAsICV5bW0xMwordnB1bnBja2hkcSAleW1tMiwgJXltbTAsICV5bW0wCit2cHVucGNrbGRx
ICV5bW0zLCAleW1tMSwgJXltbTIKK3ZwdW5wY2toZHEgJXltbTMsICV5bW0xLCAleW1tMQordnB1
bnBja2xxZHEgJXltbTEzLCAleW1tMTEsICV5bW0zCit2cHVucGNraHFkcSAleW1tMTMsICV5bW0x
MSwgJXltbTEzCit2cHVucGNrbHFkcSAleW1tMCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2tocWRx
ICV5bW0wLCAleW1tMTIsICV5bW0wCit2cHVucGNrbHFkcSAleW1tMiwgJXltbTE0LCAleW1tMTIK
K3ZwdW5wY2tocWRxICV5bW0yLCAleW1tMTQsICV5bW0yCit2cHVucGNrbHFkcSAleW1tMSwgJXlt
bTE1LCAleW1tMTQKK3ZwdW5wY2tocWRxICV5bW0xLCAleW1tMTUsICV5bW0xCit2aW5zZXJ0aTEy
OCAkMSwgJXhtbTMsICV5bW00LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxOTIwKCVyOSkKK3Zp
bnNlcnRpMTI4ICQxLCAleG1tMTMsICV5bW01LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxOTUy
KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTEsICV5bW02LCAleW1tMTUKK3Ztb3ZkcWEgJXlt
bTE1LCAxOTg0KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQordm1v
dmRxYSAleW1tMTUsIDIwMTYoJXI5KQordmluc2VydGkxMjggJDEsICV4bW0xMiwgJXltbTgsICV5
bW0xNQordm1vdmRxYSAleW1tMTUsIDIwNDgoJXI5KQordmluc2VydGkxMjggJDEsICV4bW0yLCAl
eW1tOSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjA4MCglcjkpCit2aW5zZXJ0aTEyOCAkMSwg
JXhtbTE0LCAleW1tMTAsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDIxMTIoJXI5KQordnBlcm1x
ICQ3OCwgJXltbTQsICV5bW00Cit2cGVybXEgJDc4LCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkNzgs
ICV5bW02LCAleW1tNgordnBlcm1xICQ3OCwgJXltbTcsICV5bW03Cit2cGVybXEgJDc4LCAleW1t
OCwgJXltbTgKK3ZwZXJtcSAkNzgsICV5bW05LCAleW1tOQordnBlcm1xICQ3OCwgJXltbTEwLCAl
eW1tMTAKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNCwgJXltbTMsICV5bW0xNQordm1vdmRxYSAleW1t
MTUsIDIxNzYoJXI5KQordmluc2VydGkxMjggJDAsICV4bW01LCAleW1tMTMsICV5bW0xNQordm1v
dmRxYSAleW1tMTUsIDIyMDgoJXI5KQordmluc2VydGkxMjggJDAsICV4bW02LCAleW1tMTEsICV5
bW0xNQordm1vdmRxYSAleW1tMTUsIDIyNDAoJXI5KQordmluc2VydGkxMjggJDAsICV4bW03LCAl
eW1tMCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjI3MiglcjkpCit2aW5zZXJ0aTEyOCAkMCwg
JXhtbTgsICV5bW0xMiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjMwNCglcjkpCit2aW5zZXJ0
aTEyOCAkMCwgJXhtbTksICV5bW0yLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyMzM2KCVyOSkK
K3ZpbnNlcnRpMTI4ICQwLCAleG1tMTAsICV5bW0xNCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwg
MjM2OCglcjkpCit2bW92ZHFhIDAoJXJzcCksICV5bW0xMQordmluc2VydGkxMjggJDEsICV4bW0x
LCAleW1tMTEsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDIxNDQoJXI5KQordnBlcm1xICQ3OCwg
JXltbTExLCAleW1tMTEKK3ZpbnNlcnRpMTI4ICQwLCAleG1tMTEsICV5bW0xLCAleW1tMQordm1v
dmRxYSAleW1tMSwgMjQwMCglcjkpCit2bW92ZHFhIDY0KCVyMTEpLCAleW1tMAordm1vdmRxYSAy
NTYoJXIxMSksICV5bW0xCit2bW92ZHFhIDQ0OCglcjExKSwgJXltbTIKK3Ztb3ZkcWEgNjQwKCVy
MTEpLCAleW1tMwordnB1bnBja2x3ZCAxNjAoJXIxMSksICV5bW0wLCAleW1tNAordnB1bnBja2h3
ZCAxNjAoJXIxMSksICV5bW0wLCAleW1tNQordnB1bnBja2x3ZCAzNTIoJXIxMSksICV5bW0xLCAl
eW1tNgordnB1bnBja2h3ZCAzNTIoJXIxMSksICV5bW0xLCAleW1tNwordnB1bnBja2x3ZCA1NDQo
JXIxMSksICV5bW0yLCAleW1tOAordnB1bnBja2h3ZCA1NDQoJXIxMSksICV5bW0yLCAleW1tOQor
dnB1bnBja2x3ZCA3MzYoJXIxMSksICV5bW0zLCAleW1tMTAKK3ZwdW5wY2tod2QgNzM2KCVyMTEp
LCAleW1tMywgJXltbTExCit2cHVucGNrbGRxICV5bW02LCAleW1tNCwgJXltbTAKK3ZwdW5wY2to
ZHEgJXltbTYsICV5bW00LCAleW1tMQordnB1bnBja2xkcSAleW1tNywgJXltbTUsICV5bW0yCit2
cHVucGNraGRxICV5bW03LCAleW1tNSwgJXltbTMKK3ZwdW5wY2tsZHEgJXltbTEwLCAleW1tOCwg
JXltbTEyCit2cHVucGNraGRxICV5bW0xMCwgJXltbTgsICV5bW0xMwordnB1bnBja2xkcSAleW1t
MTEsICV5bW05LCAleW1tMTQKK3ZwdW5wY2toZHEgJXltbTExLCAleW1tOSwgJXltbTE1Cit2cHVu
cGNrbHFkcSAleW1tMTIsICV5bW0wLCAleW1tNAordnB1bnBja2hxZHEgJXltbTEyLCAleW1tMCwg
JXltbTUKK3ZwdW5wY2tscWRxICV5bW0xMywgJXltbTEsICV5bW02Cit2cHVucGNraHFkcSAleW1t
MTMsICV5bW0xLCAleW1tNwordnB1bnBja2xxZHEgJXltbTE0LCAleW1tMiwgJXltbTgKK3ZwdW5w
Y2tocWRxICV5bW0xNCwgJXltbTIsICV5bW05Cit2cHVucGNrbHFkcSAleW1tMTUsICV5bW0zLCAl
eW1tMTAKK3ZwdW5wY2tocWRxICV5bW0xNSwgJXltbTMsICV5bW0xMQordm1vdmRxYSA4MzIoJXIx
MSksICV5bW0wCit2bW92ZHFhIDEwMjQoJXIxMSksICV5bW0xCit2bW92ZHFhIDEyMTYoJXIxMSks
ICV5bW0yCit2bW92ZHFhIDE0MDgoJXIxMSksICV5bW0zCit2cHVucGNrbHdkIDkyOCglcjExKSwg
JXltbTAsICV5bW0xMgordnB1bnBja2h3ZCA5MjgoJXIxMSksICV5bW0wLCAleW1tMTMKK3ZwdW5w
Y2tsd2QgMTEyMCglcjExKSwgJXltbTEsICV5bW0xNAordnB1bnBja2h3ZCAxMTIwKCVyMTEpLCAl
eW1tMSwgJXltbTE1Cit2cHVucGNrbHdkIDEzMTIoJXIxMSksICV5bW0yLCAleW1tMAordnB1bnBj
a2h3ZCAxMzEyKCVyMTEpLCAleW1tMiwgJXltbTEKK3ZwdW5wY2tsd2QgMTUwNCglcjExKSwgJXlt
bTMsICV5bW0yCit2cHVucGNraHdkIDE1MDQoJXIxMSksICV5bW0zLCAleW1tMwordm1vdmRxYSAl
eW1tMTEsIDAoJXJzcCkKK3ZwdW5wY2tsZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMQordnB1bnBj
a2hkcSAleW1tMTQsICV5bW0xMiwgJXltbTEyCit2cHVucGNrbGRxICV5bW0xNSwgJXltbTEzLCAl
eW1tMTQKK3ZwdW5wY2toZHEgJXltbTE1LCAleW1tMTMsICV5bW0xNQordnB1bnBja2xkcSAleW1t
MiwgJXltbTAsICV5bW0xMwordnB1bnBja2hkcSAleW1tMiwgJXltbTAsICV5bW0wCit2cHVucGNr
bGRxICV5bW0zLCAleW1tMSwgJXltbTIKK3ZwdW5wY2toZHEgJXltbTMsICV5bW0xLCAleW1tMQor
dnB1bnBja2xxZHEgJXltbTEzLCAleW1tMTEsICV5bW0zCit2cHVucGNraHFkcSAleW1tMTMsICV5
bW0xMSwgJXltbTEzCit2cHVucGNrbHFkcSAleW1tMCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2to
cWRxICV5bW0wLCAleW1tMTIsICV5bW0wCit2cHVucGNrbHFkcSAleW1tMiwgJXltbTE0LCAleW1t
MTIKK3ZwdW5wY2tocWRxICV5bW0yLCAleW1tMTQsICV5bW0yCit2cHVucGNrbHFkcSAleW1tMSwg
JXltbTE1LCAleW1tMTQKK3ZwdW5wY2tocWRxICV5bW0xLCAleW1tMTUsICV5bW0xCit2aW5zZXJ0
aTEyOCAkMSwgJXhtbTMsICV5bW00LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyNDMyKCVyOSkK
K3ZpbnNlcnRpMTI4ICQxLCAleG1tMTMsICV5bW01LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAy
NDY0KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTEsICV5bW02LCAleW1tMTUKK3Ztb3ZkcWEg
JXltbTE1LCAyNDk2KCVyOSkKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDI1MjgoJXI5KQordmluc2VydGkxMjggJDEsICV4bW0xMiwgJXltbTgs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDI1NjAoJXI5KQordmluc2VydGkxMjggJDEsICV4bW0y
LCAleW1tOSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjU5MiglcjkpCit2aW5zZXJ0aTEyOCAk
MSwgJXhtbTE0LCAleW1tMTAsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDI2MjQoJXI5KQordnBl
cm1xICQ3OCwgJXltbTQsICV5bW00Cit2cGVybXEgJDc4LCAleW1tNSwgJXltbTUKK3ZwZXJtcSAk
NzgsICV5bW02LCAleW1tNgordnBlcm1xICQ3OCwgJXltbTcsICV5bW03Cit2cGVybXEgJDc4LCAl
eW1tOCwgJXltbTgKK3ZwZXJtcSAkNzgsICV5bW05LCAleW1tOQordnBlcm1xICQ3OCwgJXltbTEw
LCAleW1tMTAKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNCwgJXltbTMsICV5bW0xNQordm1vdmRxYSAl
eW1tMTUsIDI2ODgoJXI5KQordmluc2VydGkxMjggJDAsICV4bW01LCAleW1tMTMsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDI3MjAoJXI5KQordmluc2VydGkxMjggJDAsICV4bW02LCAleW1tMTEs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDI3NTIoJXI5KQordmluc2VydGkxMjggJDAsICV4bW03
LCAleW1tMCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjc4NCglcjkpCit2bW92ZHFhIDAoJXJz
cCksICV5bW0xMQordmluc2VydGkxMjggJDEsICV4bW0xLCAleW1tMTEsICV5bW0xNAordm1vdmRx
YSAleW1tMTQsIDI2NTYoJXI5KQorYWRkcSAkMzIsICVyc3AKK2lubmVybG9vcF80ZWNlZDYzZjE0
NGJlZmZjYjAyNDdmOWM2ZjY3ZDE2NToKK3Ztb3ZkcWEgMCglcjkpLCAleW1tMAordm1vdmRxYSAx
NDA4KCVyOSksICV5bW02Cit2bW92ZHFhIDMyKCVyOSksICV5bW0xCit2bW92ZHFhIDE0NDAoJXI5
KSwgJXltbTcKK3Ztb3ZkcWEgNjQoJXI5KSwgJXltbTIKK3Ztb3ZkcWEgMTQ3MiglcjkpLCAleW1t
OAordm1vdmRxYSA5NiglcjkpLCAleW1tMwordm1vdmRxYSAxNTA0KCVyOSksICV5bW05Cit2bW92
ZHFhIDEyOCglcjkpLCAleW1tNAordm1vdmRxYSAxNTM2KCVyOSksICV5bW0xMAordm1vdmRxYSAx
NjAoJXI5KSwgJXltbTUKK3Ztb3ZkcWEgMTU2OCglcjkpLCAleW1tMTEKK3ZwbXVsbHcgJXltbTAs
ICV5bW02LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCAyODE2KCVyMTApCit2cG11bGx3ICV5bW0w
LCAleW1tNywgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXlt
bTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDI4NDgoJXIxMCkKK3ZwbXVsbHcg
JXltbTAsICV5bW04LCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW03LCAleW1tMTUKK3ZwYWRk
dyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTE1Cit2
cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDI4ODAoJXIxMCkK
K3ZwbXVsbHcgJXltbTAsICV5bW05LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEsICV5bW04LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tNywg
JXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXlt
bTYsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEz
LCAyOTEyKCVyMTApCit2cG11bGx3ICV5bW0wLCAleW1tMTAsICV5bW0xMgordnBtdWxsdyAleW1t
MSwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcg
JXltbTIsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11
bGx3ICV5bW0zLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgor
dnBtdWxsdyAleW1tNCwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1t
MTIKK3Ztb3ZkcWEgJXltbTEyLCAyOTQ0KCVyMTApCit2cG11bGx3ICV5bW0wLCAleW1tMTEsICV5
bW0xMwordnBtdWxsdyAleW1tMSwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0x
NSwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAl
eW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0x
MywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAl
eW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tNiwgJXltbTE1Cit2cGFk
ZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDI5NzYoJXIxMCkKK3Zw
bXVsbHcgJXltbTEsICV5bW0xMSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tMTAsICV5bW0x
NQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW05LCAl
eW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1t
OCwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNSwg
JXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXlt
bTEyLCAzMDA4KCVyMTApCit2cG11bGx3ICV5bW0yLCAleW1tMTEsICV5bW0xMwordnBtdWxsdyAl
eW1tMywgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11
bGx3ICV5bW00LCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwor
dnBtdWxsdyAleW1tNSwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1t
MTMKK3Ztb3ZkcWEgJXltbTEzLCAzMDQwKCVyMTApCit2cG11bGx3ICV5bW0zLCAleW1tMTEsICV5
bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0x
NSwgJXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAl
eW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDMwNzIoJXIxMCkKK3ZwbXVsbHcgJXltbTQs
ICV5bW0xMSwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tMTAsICV5bW0xNQordnBhZGR3ICV5
bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCAzMTA0KCVyMTApCit2cG11bGx3
ICV5bW01LCAleW1tMTEsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDMxMzYoJXIxMCkKK3Ztb3Zk
cWEgMTkyKCVyOSksICV5bW0wCit2bW92ZHFhIDE2MDAoJXI5KSwgJXltbTYKK3Ztb3ZkcWEgMjI0
KCVyOSksICV5bW0xCit2bW92ZHFhIDE2MzIoJXI5KSwgJXltbTcKK3Ztb3ZkcWEgMjU2KCVyOSks
ICV5bW0yCit2bW92ZHFhIDE2NjQoJXI5KSwgJXltbTgKK3Ztb3ZkcWEgMjg4KCVyOSksICV5bW0z
Cit2bW92ZHFhIDE2OTYoJXI5KSwgJXltbTkKK3Ztb3ZkcWEgMzIwKCVyOSksICV5bW00Cit2bW92
ZHFhIDE3MjgoJXI5KSwgJXltbTEwCit2cG11bGx3ICV5bW0wLCAleW1tNiwgJXltbTEyCit2bW92
ZHFhICV5bW0xMiwgMzIwMCglcjEwKQordnBtdWxsdyAleW1tMCwgJXltbTcsICV5bW0xMwordnBt
dWxsdyAleW1tMSwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMK
K3Ztb3ZkcWEgJXltbTEzLCAzMjMyKCVyMTApCit2cG11bGx3ICV5bW0wLCAleW1tOCwgJXltbTEy
Cit2cG11bGx3ICV5bW0xLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5
bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1
LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCAzMjY0KCVyMTApCit2cG11bGx3ICV5bW0wLCAleW1t
OSwgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tOCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAl
eW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMiwgJXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0x
MywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW02LCAleW1tMTUKK3ZwYWRkdyAl
eW1tMTMsICV5bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywgMzI5NiglcjEwKQordnBtdWxs
dyAleW1tMCwgJXltbTEwLCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW05LCAleW1tMTUKK3Zw
YWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tOCwgJXltbTE1
Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tMywgJXltbTcsICV5
bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTQsICV5bW02
LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwg
MzMyOCglcjEwKQordnBtdWxsdyAleW1tMSwgJXltbTEwLCAleW1tMTMKK3ZwbXVsbHcgJXltbTIs
ICV5bW05LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5
bW0zLCAleW1tOCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxs
dyAleW1tNCwgJXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Zt
b3ZkcWEgJXltbTEzLCAzMzYwKCVyMTApCit2cG11bGx3ICV5bW0yLCAleW1tMTAsICV5bW0xMgor
dnBtdWxsdyAleW1tMywgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1t
MTIKK3ZwbXVsbHcgJXltbTQsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwg
JXltbTEyCit2bW92ZHFhICV5bW0xMiwgMzM5MiglcjEwKQordnBtdWxsdyAleW1tMywgJXltbTEw
LCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW05LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5
bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywgMzQyNCglcjEwKQordnBtdWxsdyAleW1tNCwg
JXltbTEwLCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCAzNDU2KCVyMTApCit2cGFkZHcgMCglcjkp
LCAleW1tMCwgJXltbTAKK3ZwYWRkdyAxNDA4KCVyOSksICV5bW02LCAleW1tNgordnBhZGR3IDMy
KCVyOSksICV5bW0xLCAleW1tMQordnBhZGR3IDE0NDAoJXI5KSwgJXltbTcsICV5bW03Cit2cGFk
ZHcgNjQoJXI5KSwgJXltbTIsICV5bW0yCit2cGFkZHcgMTQ3MiglcjkpLCAleW1tOCwgJXltbTgK
K3ZwYWRkdyA5NiglcjkpLCAleW1tMywgJXltbTMKK3ZwYWRkdyAxNTA0KCVyOSksICV5bW05LCAl
eW1tOQordnBhZGR3IDEyOCglcjkpLCAleW1tNCwgJXltbTQKK3ZwYWRkdyAxNTM2KCVyOSksICV5
bW0xMCwgJXltbTEwCit2cG11bGx3ICV5bW0wLCAleW1tMTEsICV5bW0xMgordnBtdWxsdyAleW1t
MSwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTUsICV5bW0xMiwgJXltbTEyCit2cG11bGx3
ICV5bW0yLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIsICV5bW0xMgordnBt
dWxsdyAleW1tMywgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xNSwgJXltbTEyLCAleW1tMTIK
K3ZwbXVsbHcgJXltbTQsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTUsICV5bW0xMiwgJXlt
bTEyCit2cG11bGx3ICV5bW01LCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIs
ICV5bW0xMgordnBzdWJ3IDI5NzYoJXIxMCksICV5bW0xMiwgJXltbTEyCit2cHN1YncgMzM2MCgl
cjEwKSwgJXltbTEyLCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCAzMTY4KCVyMTApCit2cG11bGx3
ICV5bW01LCAleW1tNywgJXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tOCwgJXltbTEzCit2cG11
bGx3ICV5bW01LCAleW1tOSwgJXltbTE0Cit2cG11bGx3ICV5bW01LCAleW1tMTAsICV5bW0xNQor
dnBtdWxsdyAleW1tMSwgJXltbTExLCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTIsICV5bW0x
MgordnBtdWxsdyAleW1tMiwgJXltbTEwLCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTIsICV5
bW0xMgordnBtdWxsdyAleW1tMywgJXltbTksICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMiwg
JXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tOCwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEy
LCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW0xMSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXlt
bTEzLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW0xMCwgJXltbTUKK3ZwYWRkdyAleW1tNSwg
JXltbTEzLCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW05LCAleW1tNQordnBhZGR3ICV5bW01
LCAleW1tMTMsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTExLCAleW1tNQordnBhZGR3ICV5
bW01LCAleW1tMTQsICV5bW0xNAordnBtdWxsdyAleW1tNCwgJXltbTEwLCAleW1tNQordnBhZGR3
ICV5bW01LCAleW1tMTQsICV5bW0xNAordnBtdWxsdyAleW1tNCwgJXltbTExLCAleW1tNQordnBh
ZGR3ICV5bW01LCAleW1tMTUsICV5bW0xNQordnBtdWxsdyAleW1tMCwgJXltbTEwLCAleW1tMTEK
K3ZwbXVsbHcgJXltbTEsICV5bW05LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTEsICV5bW0x
MQordnBtdWxsdyAleW1tMiwgJXltbTgsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMSwgJXlt
bTExCit2cG11bGx3ICV5bW0zLCAleW1tNywgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTExLCAl
eW1tMTEKK3ZwbXVsbHcgJXltbTQsICV5bW02LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTEs
ICV5bW0xMQordnBtdWxsdyAleW1tMCwgJXltbTksICV5bW0xMAordnBtdWxsdyAleW1tMSwgJXlt
bTgsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMCwgJXltbTEwCit2cG11bGx3ICV5bW0yLCAl
eW1tNywgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEwLCAleW1tMTAKK3ZwbXVsbHcgJXltbTMs
ICV5bW02LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTAsICV5bW0xMAordnBtdWxsdyAleW1t
MCwgJXltbTgsICV5bW05Cit2cG11bGx3ICV5bW0xLCAleW1tNywgJXltbTUKK3ZwYWRkdyAleW1t
NSwgJXltbTksICV5bW05Cit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1t
NSwgJXltbTksICV5bW05Cit2cG11bGx3ICV5bW0wLCAleW1tNywgJXltbTgKK3ZwbXVsbHcgJXlt
bTEsICV5bW02LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tOCwgJXltbTgKK3ZwbXVsbHcgJXlt
bTAsICV5bW02LCAleW1tNwordm1vdmRxYSAzMDA4KCVyMTApLCAleW1tMAordnBzdWJ3IDMyMDAo
JXIxMCksICV5bW0wLCAleW1tMAordnBzdWJ3ICV5bW0wLCAleW1tMTIsICV5bW02Cit2cHN1Yncg
MzM5MiglcjEwKSwgJXltbTYsICV5bW02Cit2bW92ZHFhICV5bW02LCAzMjAwKCVyMTApCit2cGFk
ZHcgJXltbTcsICV5bW0wLCAleW1tMAordnBzdWJ3IDI4MTYoJXIxMCksICV5bW0wLCAleW1tMAor
dm1vdmRxYSAleW1tMCwgMzAwOCglcjEwKQordm1vdmRxYSAzMDQwKCVyMTApLCAleW1tMQordnBz
dWJ3IDMyMzIoJXIxMCksICV5bW0xLCAleW1tMQordnBzdWJ3ICV5bW0xLCAleW1tMTMsICV5bW03
Cit2cHN1YncgMzQyNCglcjEwKSwgJXltbTcsICV5bW03Cit2bW92ZHFhICV5bW03LCAzMjMyKCVy
MTApCit2cGFkZHcgJXltbTgsICV5bW0xLCAleW1tMQordnBzdWJ3IDI4NDgoJXIxMCksICV5bW0x
LCAleW1tMQordm1vdmRxYSAleW1tMSwgMzA0MCglcjEwKQordm1vdmRxYSAzMDcyKCVyMTApLCAl
eW1tMgordnBzdWJ3IDMyNjQoJXIxMCksICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW0yLCAleW1t
MTQsICV5bW04Cit2cHN1YncgMzQ1NiglcjEwKSwgJXltbTgsICV5bW04Cit2bW92ZHFhICV5bW04
LCAzMjY0KCVyMTApCit2cGFkZHcgJXltbTksICV5bW0yLCAleW1tMgordnBzdWJ3IDI4ODAoJXIx
MCksICV5bW0yLCAleW1tMgordm1vdmRxYSAleW1tMiwgMzA3MiglcjEwKQordm1vdmRxYSAzMTA0
KCVyMTApLCAleW1tMwordnBzdWJ3IDMyOTYoJXIxMCksICV5bW0zLCAleW1tMwordnBzdWJ3ICV5
bW0zLCAleW1tMTUsICV5bW05Cit2bW92ZHFhICV5bW05LCAzMjk2KCVyMTApCit2cGFkZHcgJXlt
bTEwLCAleW1tMywgJXltbTMKK3Zwc3VidyAyOTEyKCVyMTApLCAleW1tMywgJXltbTMKK3Ztb3Zk
cWEgJXltbTMsIDMxMDQoJXIxMCkKK3Ztb3ZkcWEgMzEzNiglcjEwKSwgJXltbTQKK3Zwc3VidyAz
MzI4KCVyMTApLCAleW1tNCwgJXltbTQKK3ZwYWRkdyAleW1tMTEsICV5bW00LCAleW1tNAordnBz
dWJ3IDI5NDQoJXIxMCksICV5bW00LCAleW1tNAordm1vdmRxYSAleW1tNCwgMzEzNiglcjEwKQor
dm1vdmRxYSAzNTIoJXI5KSwgJXltbTAKK3Ztb3ZkcWEgMTc2MCglcjkpLCAleW1tNgordm1vdmRx
YSAzODQoJXI5KSwgJXltbTEKK3Ztb3ZkcWEgMTc5MiglcjkpLCAleW1tNwordm1vdmRxYSA0MTYo
JXI5KSwgJXltbTIKK3Ztb3ZkcWEgMTgyNCglcjkpLCAleW1tOAordm1vdmRxYSA0NDgoJXI5KSwg
JXltbTMKK3Ztb3ZkcWEgMTg1NiglcjkpLCAleW1tOQordm1vdmRxYSA0ODAoJXI5KSwgJXltbTQK
K3Ztb3ZkcWEgMTg4OCglcjkpLCAleW1tMTAKK3Ztb3ZkcWEgNTEyKCVyOSksICV5bW01Cit2bW92
ZHFhIDE5MjAoJXI5KSwgJXltbTExCit2cG11bGx3ICV5bW0wLCAleW1tNiwgJXltbTEyCit2bW92
ZHFhICV5bW0xMiwgMzUyMCglcjEwKQordnBtdWxsdyAleW1tMCwgJXltbTcsICV5bW0xMwordnBt
dWxsdyAleW1tMSwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMK
K3Ztb3ZkcWEgJXltbTEzLCAzNTUyKCVyMTApCit2cG11bGx3ICV5bW0wLCAleW1tOCwgJXltbTEy
Cit2cG11bGx3ICV5bW0xLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5
bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1
LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCAzNTg0KCVyMTApCit2cG11bGx3ICV5bW0wLCAleW1t
OSwgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tOCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAl
eW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMiwgJXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0x
MywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW02LCAleW1tMTUKK3ZwYWRkdyAl
eW1tMTMsICV5bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywgMzYxNiglcjEwKQordnBtdWxs
dyAleW1tMCwgJXltbTEwLCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW05LCAleW1tMTUKK3Zw
YWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tOCwgJXltbTE1
Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tMywgJXltbTcsICV5
bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTQsICV5bW02
LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwg
MzY0OCglcjEwKQordnBtdWxsdyAleW1tMCwgJXltbTExLCAleW1tMTMKK3ZwbXVsbHcgJXltbTEs
ICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAl
eW1tMiwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVs
bHcgJXltbTMsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2
cG11bGx3ICV5bW00LCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0x
MwordnBtdWxsdyAleW1tNSwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAl
eW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCAzNjgwKCVyMTApCit2cG11bGx3ICV5bW0xLCAleW1tMTEs
ICV5bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5
bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEy
LCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5
bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTUsICV5bW03LCAleW1tMTUKK3ZwYWRk
dyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwgMzcxMiglcjEwKQordnBt
dWxsdyAleW1tMiwgJXltbTExLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW0xMCwgJXltbTE1
Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tNCwgJXltbTksICV5
bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTUsICV5bW04
LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywg
Mzc0NCglcjEwKQordnBtdWxsdyAleW1tMywgJXltbTExLCAleW1tMTIKK3ZwbXVsbHcgJXltbTQs
ICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAl
eW1tNSwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3Zk
cWEgJXltbTEyLCAzNzc2KCVyMTApCit2cG11bGx3ICV5bW00LCAleW1tMTEsICV5bW0xMwordnBt
dWxsdyAleW1tNSwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEz
Cit2bW92ZHFhICV5bW0xMywgMzgwOCglcjEwKQordnBtdWxsdyAleW1tNSwgJXltbTExLCAleW1t
MTIKK3Ztb3ZkcWEgJXltbTEyLCAzODQwKCVyMTApCit2bW92ZHFhIDU0NCglcjkpLCAleW1tMAor
dm1vdmRxYSAxOTUyKCVyOSksICV5bW02Cit2bW92ZHFhIDU3NiglcjkpLCAleW1tMQordm1vdmRx
YSAxOTg0KCVyOSksICV5bW03Cit2bW92ZHFhIDYwOCglcjkpLCAleW1tMgordm1vdmRxYSAyMDE2
KCVyOSksICV5bW04Cit2bW92ZHFhIDY0MCglcjkpLCAleW1tMwordm1vdmRxYSAyMDQ4KCVyOSks
ICV5bW05Cit2bW92ZHFhIDY3MiglcjkpLCAleW1tNAordm1vdmRxYSAyMDgwKCVyOSksICV5bW0x
MAordnBtdWxsdyAleW1tMCwgJXltbTYsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDM5MDQoJXIx
MCkKK3ZwbXVsbHcgJXltbTAsICV5bW03LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEsICV5bW02LCAl
eW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywgMzkz
NiglcjEwKQordnBtdWxsdyAleW1tMCwgJXltbTgsICV5bW0xMgordnBtdWxsdyAleW1tMSwgJXlt
bTcsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTIs
ICV5bW02LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2bW92ZHFhICV5
bW0xMiwgMzk2OCglcjEwKQordnBtdWxsdyAleW1tMCwgJXltbTksICV5bW0xMwordnBtdWxsdyAl
eW1tMSwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVs
bHcgJXltbTIsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2
cG11bGx3ICV5bW0zLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0x
Mwordm1vdmRxYSAleW1tMTMsIDQwMDAoJXIxMCkKK3ZwbXVsbHcgJXltbTAsICV5bW0xMCwgJXlt
bTEyCit2cG11bGx3ICV5bW0xLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUs
ICV5bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXlt
bTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIs
ICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXlt
bTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDQwMzIoJXIxMCkKK3ZwbXVsbHcg
JXltbTEsICV5bW0xMCwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tOSwgJXltbTE1Cit2cGFk
ZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTgsICV5bW0xNQor
dnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW03LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywgNDA2NCgl
cjEwKQordnBtdWxsdyAleW1tMiwgJXltbTEwLCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW05
LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW00LCAl
eW1tOCwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1t
MTIsIDQwOTYoJXIxMCkKK3ZwbXVsbHcgJXltbTMsICV5bW0xMCwgJXltbTEzCit2cG11bGx3ICV5
bW00LCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRx
YSAleW1tMTMsIDQxMjgoJXIxMCkKK3ZwbXVsbHcgJXltbTQsICV5bW0xMCwgJXltbTEyCit2bW92
ZHFhICV5bW0xMiwgNDE2MCglcjEwKQordnBhZGR3IDM1MiglcjkpLCAleW1tMCwgJXltbTAKK3Zw
YWRkdyAxNzYwKCVyOSksICV5bW02LCAleW1tNgordnBhZGR3IDM4NCglcjkpLCAleW1tMSwgJXlt
bTEKK3ZwYWRkdyAxNzkyKCVyOSksICV5bW03LCAleW1tNwordnBhZGR3IDQxNiglcjkpLCAleW1t
MiwgJXltbTIKK3ZwYWRkdyAxODI0KCVyOSksICV5bW04LCAleW1tOAordnBhZGR3IDQ0OCglcjkp
LCAleW1tMywgJXltbTMKK3ZwYWRkdyAxODU2KCVyOSksICV5bW05LCAleW1tOQordnBhZGR3IDQ4
MCglcjkpLCAleW1tNCwgJXltbTQKK3ZwYWRkdyAxODg4KCVyOSksICV5bW0xMCwgJXltbTEwCit2
cG11bGx3ICV5bW0wLCAleW1tMTEsICV5bW0xMgordnBtdWxsdyAleW1tMSwgJXltbTEwLCAleW1t
MTUKK3ZwYWRkdyAleW1tMTUsICV5bW0xMiwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tOSwg
JXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1tMywgJXlt
bTgsICV5bW0xNQordnBhZGR3ICV5bW0xNSwgJXltbTEyLCAleW1tMTIKK3ZwbXVsbHcgJXltbTQs
ICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTUsICV5bW0xMiwgJXltbTEyCit2cG11bGx3ICV5
bW01LCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIsICV5bW0xMgordnBzdWJ3
IDM2ODAoJXIxMCksICV5bW0xMiwgJXltbTEyCit2cHN1YncgNDA2NCglcjEwKSwgJXltbTEyLCAl
eW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCAzODcyKCVyMTApCit2cG11bGx3ICV5bW01LCAleW1tNywg
JXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tOCwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1t
OSwgJXltbTE0Cit2cG11bGx3ICV5bW01LCAleW1tMTAsICV5bW0xNQordnBtdWxsdyAleW1tMSwg
JXltbTExLCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1t
MiwgJXltbTEwLCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTIsICV5bW0xMgordnBtdWxsdyAl
eW1tMywgJXltbTksICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMiwgJXltbTEyCit2cG11bGx3
ICV5bW00LCAleW1tOCwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEyLCAleW1tMTIKK3ZwbXVs
bHcgJXltbTIsICV5bW0xMSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEzLCAleW1tMTMKK3Zw
bXVsbHcgJXltbTMsICV5bW0xMCwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEzLCAleW1tMTMK
K3ZwbXVsbHcgJXltbTQsICV5bW05LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTMsICV5bW0x
MwordnBtdWxsdyAleW1tMywgJXltbTExLCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTQsICV5
bW0xNAordnBtdWxsdyAleW1tNCwgJXltbTEwLCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTQs
ICV5bW0xNAordnBtdWxsdyAleW1tNCwgJXltbTExLCAleW1tNQordnBhZGR3ICV5bW01LCAleW1t
MTUsICV5bW0xNQordnBtdWxsdyAleW1tMCwgJXltbTEwLCAleW1tMTEKK3ZwbXVsbHcgJXltbTEs
ICV5bW05LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTEsICV5bW0xMQordnBtdWxsdyAleW1t
MiwgJXltbTgsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMSwgJXltbTExCit2cG11bGx3ICV5
bW0zLCAleW1tNywgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTExLCAleW1tMTEKK3ZwbXVsbHcg
JXltbTQsICV5bW02LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTEsICV5bW0xMQordnBtdWxs
dyAleW1tMCwgJXltbTksICV5bW0xMAordnBtdWxsdyAleW1tMSwgJXltbTgsICV5bW01Cit2cGFk
ZHcgJXltbTUsICV5bW0xMCwgJXltbTEwCit2cG11bGx3ICV5bW0yLCAleW1tNywgJXltbTUKK3Zw
YWRkdyAleW1tNSwgJXltbTEwLCAleW1tMTAKK3ZwbXVsbHcgJXltbTMsICV5bW02LCAleW1tNQor
dnBhZGR3ICV5bW01LCAleW1tMTAsICV5bW0xMAordnBtdWxsdyAleW1tMCwgJXltbTgsICV5bW05
Cit2cG11bGx3ICV5bW0xLCAleW1tNywgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTksICV5bW05
Cit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTksICV5bW05
Cit2cG11bGx3ICV5bW0wLCAleW1tNywgJXltbTgKK3ZwbXVsbHcgJXltbTEsICV5bW02LCAleW1t
NQordnBhZGR3ICV5bW01LCAleW1tOCwgJXltbTgKK3ZwbXVsbHcgJXltbTAsICV5bW02LCAleW1t
Nwordm1vdmRxYSAzNzEyKCVyMTApLCAleW1tMAordnBzdWJ3IDM5MDQoJXIxMCksICV5bW0wLCAl
eW1tMAordnBzdWJ3ICV5bW0wLCAleW1tMTIsICV5bW02Cit2cHN1YncgNDA5NiglcjEwKSwgJXlt
bTYsICV5bW02Cit2bW92ZHFhICV5bW02LCAzOTA0KCVyMTApCit2cGFkZHcgJXltbTcsICV5bW0w
LCAleW1tMAordnBzdWJ3IDM1MjAoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwg
MzcxMiglcjEwKQordm1vdmRxYSAzNzQ0KCVyMTApLCAleW1tMQordnBzdWJ3IDM5MzYoJXIxMCks
ICV5bW0xLCAleW1tMQordnBzdWJ3ICV5bW0xLCAleW1tMTMsICV5bW03Cit2cHN1YncgNDEyOCgl
cjEwKSwgJXltbTcsICV5bW03Cit2bW92ZHFhICV5bW03LCAzOTM2KCVyMTApCit2cGFkZHcgJXlt
bTgsICV5bW0xLCAleW1tMQordnBzdWJ3IDM1NTIoJXIxMCksICV5bW0xLCAleW1tMQordm1vdmRx
YSAleW1tMSwgMzc0NCglcjEwKQordm1vdmRxYSAzNzc2KCVyMTApLCAleW1tMgordnBzdWJ3IDM5
NjgoJXIxMCksICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW0yLCAleW1tMTQsICV5bW04Cit2cHN1
YncgNDE2MCglcjEwKSwgJXltbTgsICV5bW04Cit2bW92ZHFhICV5bW04LCAzOTY4KCVyMTApCit2
cGFkZHcgJXltbTksICV5bW0yLCAleW1tMgordnBzdWJ3IDM1ODQoJXIxMCksICV5bW0yLCAleW1t
Mgordm1vdmRxYSAleW1tMiwgMzc3NiglcjEwKQordm1vdmRxYSAzODA4KCVyMTApLCAleW1tMwor
dnBzdWJ3IDQwMDAoJXIxMCksICV5bW0zLCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1tMTUsICV5
bW05Cit2bW92ZHFhICV5bW05LCA0MDAwKCVyMTApCit2cGFkZHcgJXltbTEwLCAleW1tMywgJXlt
bTMKK3Zwc3VidyAzNjE2KCVyMTApLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEgJXltbTMsIDM4MDgo
JXIxMCkKK3Ztb3ZkcWEgMzg0MCglcjEwKSwgJXltbTQKK3Zwc3VidyA0MDMyKCVyMTApLCAleW1t
NCwgJXltbTQKK3ZwYWRkdyAleW1tMTEsICV5bW00LCAleW1tNAordnBzdWJ3IDM2NDgoJXIxMCks
ICV5bW00LCAleW1tNAordm1vdmRxYSAleW1tNCwgMzg0MCglcjEwKQordm1vdmRxYSAwKCVyOSks
ICV5bW0wCit2bW92ZHFhIDE0MDgoJXI5KSwgJXltbTYKK3ZwYWRkdyAzNTIoJXI5KSwgJXltbTAs
ICV5bW0wCit2cGFkZHcgMTc2MCglcjkpLCAleW1tNiwgJXltbTYKK3Ztb3ZkcWEgMzIoJXI5KSwg
JXltbTEKK3Ztb3ZkcWEgMTQ0MCglcjkpLCAleW1tNwordnBhZGR3IDM4NCglcjkpLCAleW1tMSwg
JXltbTEKK3ZwYWRkdyAxNzkyKCVyOSksICV5bW03LCAleW1tNwordm1vdmRxYSA2NCglcjkpLCAl
eW1tMgordm1vdmRxYSAxNDcyKCVyOSksICV5bW04Cit2cGFkZHcgNDE2KCVyOSksICV5bW0yLCAl
eW1tMgordnBhZGR3IDE4MjQoJXI5KSwgJXltbTgsICV5bW04Cit2bW92ZHFhIDk2KCVyOSksICV5
bW0zCit2bW92ZHFhIDE1MDQoJXI5KSwgJXltbTkKK3ZwYWRkdyA0NDgoJXI5KSwgJXltbTMsICV5
bW0zCit2cGFkZHcgMTg1NiglcjkpLCAleW1tOSwgJXltbTkKK3Ztb3ZkcWEgMTI4KCVyOSksICV5
bW00Cit2bW92ZHFhIDE1MzYoJXI5KSwgJXltbTEwCit2cGFkZHcgNDgwKCVyOSksICV5bW00LCAl
eW1tNAordnBhZGR3IDE4ODgoJXI5KSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgMTYwKCVyOSks
ICV5bW01Cit2bW92ZHFhIDE1NjgoJXI5KSwgJXltbTExCit2cGFkZHcgNTEyKCVyOSksICV5bW01
LCAleW1tNQordnBhZGR3IDE5MjAoJXI5KSwgJXltbTExLCAleW1tMTEKK3ZwbXVsbHcgJXltbTAs
ICV5bW02LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA1ODg4KCVyc3ApCit2cG11bGx3ICV5bW0w
LCAleW1tNywgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXlt
bTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDU5MjAoJXJzcCkKK3ZwbXVsbHcg
JXltbTAsICV5bW04LCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW03LCAleW1tMTUKK3ZwYWRk
dyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTE1Cit2
cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDU5NTIoJXJzcCkK
K3ZwbXVsbHcgJXltbTAsICV5bW05LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEsICV5bW04LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tNywg
JXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXlt
bTYsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEz
LCA1OTg0KCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tMTAsICV5bW0xMgordnBtdWxsdyAleW1t
MSwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcg
JXltbTIsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11
bGx3ICV5bW0zLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgor
dnBtdWxsdyAleW1tNCwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1t
MTIKK3Ztb3ZkcWEgJXltbTEyLCA2MDE2KCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tMTEsICV5
bW0xMwordnBtdWxsdyAleW1tMSwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0x
NSwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAl
eW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0x
MywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAl
eW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tNiwgJXltbTE1Cit2cGFk
ZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDYwNDgoJXJzcCkKK3Zw
bXVsbHcgJXltbTEsICV5bW0xMSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tMTAsICV5bW0x
NQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW05LCAl
eW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1t
OCwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNSwg
JXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXlt
bTEyLCA2MDgwKCVyc3ApCit2cG11bGx3ICV5bW0yLCAleW1tMTEsICV5bW0xMwordnBtdWxsdyAl
eW1tMywgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11
bGx3ICV5bW00LCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwor
dnBtdWxsdyAleW1tNSwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1t
MTMKK3Ztb3ZkcWEgJXltbTEzLCA2MTEyKCVyc3ApCit2cG11bGx3ICV5bW0zLCAleW1tMTEsICV5
bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0x
NSwgJXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAl
eW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDYxNDQoJXJzcCkKK3ZwbXVsbHcgJXltbTQs
ICV5bW0xMSwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tMTAsICV5bW0xNQordnBhZGR3ICV5
bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCA2MTc2KCVyc3ApCit2cG11bGx3
ICV5bW01LCAleW1tMTEsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDYyMDgoJXJzcCkKK3Ztb3Zk
cWEgMTkyKCVyOSksICV5bW0wCit2bW92ZHFhIDE2MDAoJXI5KSwgJXltbTYKK3ZwYWRkdyA1NDQo
JXI5KSwgJXltbTAsICV5bW0wCit2cGFkZHcgMTk1MiglcjkpLCAleW1tNiwgJXltbTYKK3Ztb3Zk
cWEgMjI0KCVyOSksICV5bW0xCit2bW92ZHFhIDE2MzIoJXI5KSwgJXltbTcKK3ZwYWRkdyA1NzYo
JXI5KSwgJXltbTEsICV5bW0xCit2cGFkZHcgMTk4NCglcjkpLCAleW1tNywgJXltbTcKK3Ztb3Zk
cWEgMjU2KCVyOSksICV5bW0yCit2bW92ZHFhIDE2NjQoJXI5KSwgJXltbTgKK3ZwYWRkdyA2MDgo
JXI5KSwgJXltbTIsICV5bW0yCit2cGFkZHcgMjAxNiglcjkpLCAleW1tOCwgJXltbTgKK3Ztb3Zk
cWEgMjg4KCVyOSksICV5bW0zCit2bW92ZHFhIDE2OTYoJXI5KSwgJXltbTkKK3ZwYWRkdyA2NDAo
JXI5KSwgJXltbTMsICV5bW0zCit2cGFkZHcgMjA0OCglcjkpLCAleW1tOSwgJXltbTkKK3Ztb3Zk
cWEgMzIwKCVyOSksICV5bW00Cit2bW92ZHFhIDE3MjgoJXI5KSwgJXltbTEwCit2cGFkZHcgNjcy
KCVyOSksICV5bW00LCAleW1tNAordnBhZGR3IDIwODAoJXI5KSwgJXltbTEwLCAleW1tMTAKK3Zw
bXVsbHcgJXltbTAsICV5bW02LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA2MjcyKCVyc3ApCit2
cG11bGx3ICV5bW0wLCAleW1tNywgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tNiwgJXltbTE1
Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDYzMDQoJXJz
cCkKK3ZwbXVsbHcgJXltbTAsICV5bW04LCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW03LCAl
eW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1t
NiwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIs
IDYzMzYoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW05LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEs
ICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5
bW0yLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxs
dyAleW1tMywgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Zt
b3ZkcWEgJXltbTEzLCA2MzY4KCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tMTAsICV5bW0xMgor
dnBtdWxsdyAleW1tMSwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1t
MTIKK3ZwbXVsbHcgJXltbTIsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwg
JXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1t
MTUsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwg
JXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA2NDAwKCVyc3ApCit2cG11bGx3ICV5bW0x
LCAleW1tMTAsICV5bW0xMwordnBtdWxsdyAleW1tMiwgJXltbTksICV5bW0xNQordnBhZGR3ICV5
bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW04LCAleW1tMTUKK3ZwYWRk
dyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW00LCAleW1tNywgJXltbTE1Cit2
cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDY0MzIoJXJzcCkK
K3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tOSwgJXlt
bTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTgs
ICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA2
NDY0KCVyc3ApCit2cG11bGx3ICV5bW0zLCAleW1tMTAsICV5bW0xMwordnBtdWxsdyAleW1tNCwg
JXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXlt
bTEzLCA2NDk2KCVyc3ApCit2cG11bGx3ICV5bW00LCAleW1tMTAsICV5bW0xMgordm1vdmRxYSAl
eW1tMTIsIDY1MjgoJXJzcCkKK3ZwYWRkdyAwKCVyOSksICV5bW0wLCAleW1tMAordnBhZGR3IDE0
MDgoJXI5KSwgJXltbTYsICV5bW02Cit2cGFkZHcgMzUyKCVyOSksICV5bW0wLCAleW1tMAordnBh
ZGR3IDE3NjAoJXI5KSwgJXltbTYsICV5bW02Cit2cGFkZHcgMzIoJXI5KSwgJXltbTEsICV5bW0x
Cit2cGFkZHcgMTQ0MCglcjkpLCAleW1tNywgJXltbTcKK3ZwYWRkdyAzODQoJXI5KSwgJXltbTEs
ICV5bW0xCit2cGFkZHcgMTc5MiglcjkpLCAleW1tNywgJXltbTcKK3ZwYWRkdyA2NCglcjkpLCAl
eW1tMiwgJXltbTIKK3ZwYWRkdyAxNDcyKCVyOSksICV5bW04LCAleW1tOAordnBhZGR3IDQxNigl
cjkpLCAleW1tMiwgJXltbTIKK3ZwYWRkdyAxODI0KCVyOSksICV5bW04LCAleW1tOAordnBhZGR3
IDk2KCVyOSksICV5bW0zLCAleW1tMwordnBhZGR3IDE1MDQoJXI5KSwgJXltbTksICV5bW05Cit2
cGFkZHcgNDQ4KCVyOSksICV5bW0zLCAleW1tMwordnBhZGR3IDE4NTYoJXI5KSwgJXltbTksICV5
bW05Cit2cGFkZHcgMTI4KCVyOSksICV5bW00LCAleW1tNAordnBhZGR3IDE1MzYoJXI5KSwgJXlt
bTEwLCAleW1tMTAKK3ZwYWRkdyA0ODAoJXI5KSwgJXltbTQsICV5bW00Cit2cGFkZHcgMTg4OCgl
cjkpLCAleW1tMTAsICV5bW0xMAordnBtdWxsdyAleW1tMCwgJXltbTExLCAleW1tMTIKK3ZwbXVs
bHcgJXltbTEsICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIsICV5bW0xMgor
dnBtdWxsdyAleW1tMiwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xNSwgJXltbTEyLCAleW1t
MTIKK3ZwbXVsbHcgJXltbTMsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTUsICV5bW0xMiwg
JXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1t
MTIsICV5bW0xMgordnBtdWxsdyAleW1tNSwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xNSwg
JXltbTEyLCAleW1tMTIKK3Zwc3VidyA2MDQ4KCVyc3ApLCAleW1tMTIsICV5bW0xMgordnBzdWJ3
IDY0MzIoJXJzcCksICV5bW0xMiwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwgNjI0MCglcnNwKQor
dnBtdWxsdyAleW1tNSwgJXltbTcsICV5bW0xMgordnBtdWxsdyAleW1tNSwgJXltbTgsICV5bW0x
MwordnBtdWxsdyAleW1tNSwgJXltbTksICV5bW0xNAordnBtdWxsdyAleW1tNSwgJXltbTEwLCAl
eW1tMTUKK3ZwbXVsbHcgJXltbTEsICV5bW0xMSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEy
LCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXlt
bTEyLCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW05LCAleW1tNQordnBhZGR3ICV5bW01LCAl
eW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTgsICV5bW01Cit2cGFkZHcgJXltbTUs
ICV5bW0xMiwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tMTEsICV5bW01Cit2cGFkZHcgJXlt
bTUsICV5bW0xMywgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tMTAsICV5bW01Cit2cGFkZHcg
JXltbTUsICV5bW0xMywgJXltbTEzCit2cG11bGx3ICV5bW00LCAleW1tOSwgJXltbTUKK3ZwYWRk
dyAleW1tNSwgJXltbTEzLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW0xMSwgJXltbTUKK3Zw
YWRkdyAleW1tNSwgJXltbTE0LCAleW1tMTQKK3ZwbXVsbHcgJXltbTQsICV5bW0xMCwgJXltbTUK
K3ZwYWRkdyAleW1tNSwgJXltbTE0LCAleW1tMTQKK3ZwbXVsbHcgJXltbTQsICV5bW0xMSwgJXlt
bTUKK3ZwYWRkdyAleW1tNSwgJXltbTE1LCAleW1tMTUKK3ZwbXVsbHcgJXltbTAsICV5bW0xMCwg
JXltbTExCit2cG11bGx3ICV5bW0xLCAleW1tOSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEx
LCAleW1tMTEKK3ZwbXVsbHcgJXltbTIsICV5bW04LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1t
MTEsICV5bW0xMQordnBtdWxsdyAleW1tMywgJXltbTcsICV5bW01Cit2cGFkZHcgJXltbTUsICV5
bW0xMSwgJXltbTExCit2cG11bGx3ICV5bW00LCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwg
JXltbTExLCAleW1tMTEKK3ZwbXVsbHcgJXltbTAsICV5bW05LCAleW1tMTAKK3ZwbXVsbHcgJXlt
bTEsICV5bW04LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTAsICV5bW0xMAordnBtdWxsdyAl
eW1tMiwgJXltbTcsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMCwgJXltbTEwCit2cG11bGx3
ICV5bW0zLCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEwLCAleW1tMTAKK3ZwbXVs
bHcgJXltbTAsICV5bW04LCAleW1tOQordnBtdWxsdyAleW1tMSwgJXltbTcsICV5bW01Cit2cGFk
ZHcgJXltbTUsICV5bW05LCAleW1tOQordnBtdWxsdyAleW1tMiwgJXltbTYsICV5bW01Cit2cGFk
ZHcgJXltbTUsICV5bW05LCAleW1tOQordnBtdWxsdyAleW1tMCwgJXltbTcsICV5bW04Cit2cG11
bGx3ICV5bW0xLCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTgsICV5bW04Cit2cG11
bGx3ICV5bW0wLCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgNjA4MCglcnNwKSwgJXltbTAKK3Zwc3Vi
dyA2MjcyKCVyc3ApLCAleW1tMCwgJXltbTAKK3Zwc3VidyAleW1tMCwgJXltbTEyLCAleW1tNgor
dnBzdWJ3IDY0NjQoJXJzcCksICV5bW02LCAleW1tNgordm1vdmRxYSAleW1tNiwgNjI3MiglcnNw
KQordnBhZGR3ICV5bW03LCAleW1tMCwgJXltbTAKK3Zwc3VidyA1ODg4KCVyc3ApLCAleW1tMCwg
JXltbTAKK3Ztb3ZkcWEgJXltbTAsIDYwODAoJXJzcCkKK3Ztb3ZkcWEgNjExMiglcnNwKSwgJXlt
bTEKK3Zwc3VidyA2MzA0KCVyc3ApLCAleW1tMSwgJXltbTEKK3Zwc3VidyAleW1tMSwgJXltbTEz
LCAleW1tNwordnBzdWJ3IDY0OTYoJXJzcCksICV5bW03LCAleW1tNwordm1vdmRxYSAleW1tNywg
NjMwNCglcnNwKQordnBhZGR3ICV5bW04LCAleW1tMSwgJXltbTEKK3Zwc3VidyA1OTIwKCVyc3Ap
LCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDYxMTIoJXJzcCkKK3Ztb3ZkcWEgNjE0NCgl
cnNwKSwgJXltbTIKK3Zwc3VidyA2MzM2KCVyc3ApLCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1t
MiwgJXltbTE0LCAleW1tOAordnBzdWJ3IDY1MjgoJXJzcCksICV5bW04LCAleW1tOAordm1vdmRx
YSAleW1tOCwgNjMzNiglcnNwKQordnBhZGR3ICV5bW05LCAleW1tMiwgJXltbTIKK3Zwc3VidyA1
OTUyKCVyc3ApLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgJXltbTIsIDYxNDQoJXJzcCkKK3Ztb3Zk
cWEgNjE3NiglcnNwKSwgJXltbTMKK3Zwc3VidyA2MzY4KCVyc3ApLCAleW1tMywgJXltbTMKK3Zw
c3VidyAleW1tMywgJXltbTE1LCAleW1tOQordm1vdmRxYSAleW1tOSwgNjM2OCglcnNwKQordnBh
ZGR3ICV5bW0xMCwgJXltbTMsICV5bW0zCit2cHN1YncgNTk4NCglcnNwKSwgJXltbTMsICV5bW0z
Cit2bW92ZHFhICV5bW0zLCA2MTc2KCVyc3ApCit2bW92ZHFhIDYyMDgoJXJzcCksICV5bW00Cit2
cHN1YncgNjQwMCglcnNwKSwgJXltbTQsICV5bW00Cit2cGFkZHcgJXltbTExLCAleW1tNCwgJXlt
bTQKK3Zwc3VidyA2MDE2KCVyc3ApLCAleW1tNCwgJXltbTQKK3Ztb3ZkcWEgJXltbTQsIDYyMDgo
JXJzcCkKK3Ztb3ZkcWEgNjIwOCglcnNwKSwgJXltbTAKK3Zwc3VidyAzMTM2KCVyMTApLCAleW1t
MCwgJXltbTAKK3Zwc3VidyAzODQwKCVyMTApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDM0ODgoJXIxMCkKK3Ztb3ZkcWEgMzE2OCglcjEwKSwgJXltbTAKK3Zwc3VidyAzNTIwKCVyMTAp
LCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgNjI0MCglcnNwKSwgJXltbTEKK3Zwc3VidyAleW1tMCwg
JXltbTEsICV5bW0xCit2cHN1YncgMzg3MiglcjEwKSwgJXltbTEsICV5bW0xCit2cHN1YncgMjgx
NiglcjEwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNTg4OCglcnNwKSwgJXltbTAsICV5bW0wCit2
bW92ZHFhICV5bW0wLCAzMTY4KCVyMTApCit2bW92ZHFhICV5bW0xLCAzNTIwKCVyMTApCit2bW92
ZHFhIDMyMDAoJXIxMCksICV5bW0wCit2cHN1YncgMzU1MiglcjEwKSwgJXltbTAsICV5bW0wCit2
bW92ZHFhIDYyNzIoJXJzcCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQordnBz
dWJ3IDM5MDQoJXIxMCksICV5bW0xLCAleW1tMQordnBzdWJ3IDI4NDgoJXIxMCksICV5bW0wLCAl
eW1tMAordnBhZGR3IDU5MjAoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzIw
MCglcjEwKQordm1vdmRxYSAleW1tMSwgMzU1MiglcjEwKQordm1vdmRxYSAzMjMyKCVyMTApLCAl
eW1tMAordnBzdWJ3IDM1ODQoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRxYSA2MzA0KCVyc3Ap
LCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyAzOTM2KCVyMTApLCAl
eW1tMSwgJXltbTEKK3Zwc3VidyAyODgwKCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA1OTUy
KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDMyMzIoJXIxMCkKK3Ztb3ZkcWEg
JXltbTEsIDM1ODQoJXIxMCkKK3Ztb3ZkcWEgMzI2NCglcjEwKSwgJXltbTAKK3Zwc3VidyAzNjE2
KCVyMTApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgNjMzNiglcnNwKSwgJXltbTEKK3Zwc3VidyAl
eW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgMzk2OCglcjEwKSwgJXltbTEsICV5bW0xCit2cHN1
YncgMjkxMiglcjEwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNTk4NCglcnNwKSwgJXltbTAsICV5
bW0wCit2bW92ZHFhICV5bW0wLCAzMjY0KCVyMTApCit2bW92ZHFhICV5bW0xLCAzNjE2KCVyMTAp
Cit2bW92ZHFhIDMyOTYoJXIxMCksICV5bW0wCit2cHN1YncgMzY0OCglcjEwKSwgJXltbTAsICV5
bW0wCit2bW92ZHFhIDYzNjgoJXJzcCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1t
MQordnBzdWJ3IDQwMDAoJXIxMCksICV5bW0xLCAleW1tMQordnBzdWJ3IDI5NDQoJXIxMCksICV5
bW0wLCAleW1tMAordnBhZGR3IDYwMTYoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1t
MCwgMzI5NiglcjEwKQordm1vdmRxYSAleW1tMSwgMzY0OCglcjEwKQordm1vdmRxYSAzMzI4KCVy
MTApLCAleW1tMAordnBzdWJ3IDM2ODAoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRxYSA2NDAw
KCVyc3ApLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA0MDMyKCVy
MTApLCAleW1tMSwgJXltbTEKK3Zwc3VidyAyOTc2KCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRk
dyA2MDQ4KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDMzMjgoJXIxMCkKK3Zt
b3ZkcWEgJXltbTEsIDM2ODAoJXIxMCkKK3Ztb3ZkcWEgMzM2MCglcjEwKSwgJXltbTAKK3Zwc3Vi
dyAzNzEyKCVyMTApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgNjQzMiglcnNwKSwgJXltbTEKK3Zw
c3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgNDA2NCglcjEwKSwgJXltbTEsICV5bW0x
Cit2cHN1YncgMzAwOCglcjEwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNjA4MCglcnNwKSwgJXlt
bTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCAzMzYwKCVyMTApCit2bW92ZHFhICV5bW0xLCAzNzEy
KCVyMTApCit2bW92ZHFhIDMzOTIoJXIxMCksICV5bW0wCit2cHN1YncgMzc0NCglcjEwKSwgJXlt
bTAsICV5bW0wCit2bW92ZHFhIDY0NjQoJXJzcCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0x
LCAleW1tMQordnBzdWJ3IDQwOTYoJXIxMCksICV5bW0xLCAleW1tMQordnBzdWJ3IDMwNDAoJXIx
MCksICV5bW0wLCAleW1tMAordnBhZGR3IDYxMTIoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRx
YSAleW1tMCwgMzM5MiglcjEwKQordm1vdmRxYSAleW1tMSwgMzc0NCglcjEwKQordm1vdmRxYSAz
NDI0KCVyMTApLCAleW1tMAordnBzdWJ3IDM3NzYoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRx
YSA2NDk2KCVyc3ApLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA0
MTI4KCVyMTApLCAleW1tMSwgJXltbTEKK3Zwc3VidyAzMDcyKCVyMTApLCAleW1tMCwgJXltbTAK
K3ZwYWRkdyA2MTQ0KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM0MjQoJXIx
MCkKK3Ztb3ZkcWEgJXltbTEsIDM3NzYoJXIxMCkKK3Ztb3ZkcWEgMzQ1NiglcjEwKSwgJXltbTAK
K3Zwc3VidyAzODA4KCVyMTApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgNjUyOCglcnNwKSwgJXlt
bTEKK3Zwc3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgNDE2MCglcjEwKSwgJXltbTEs
ICV5bW0xCit2cHN1YncgMzEwNCglcjEwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNjE3NiglcnNw
KSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCAzNDU2KCVyMTApCit2bW92ZHFhICV5bW0x
LCAzODA4KCVyMTApCituZWcgJWVjeAoram5zIGRvbmVfNGVjZWQ2M2YxNDRiZWZmY2IwMjQ3Zjlj
NmY2N2QxNjUKK2FkZCAkNzA0LCAlcjkKK2FkZCAkMTQwOCwgJXIxMAoram1wIGlubmVybG9vcF80
ZWNlZDYzZjE0NGJlZmZjYjAyNDdmOWM2ZjY3ZDE2NQorZG9uZV80ZWNlZDYzZjE0NGJlZmZjYjAy
NDdmOWM2ZjY3ZDE2NToKK3N1YiAkNzA0LCAlcjkKK3N1YiAkMTQwOCwgJXIxMAordm1vdmRxYSAw
KCVyOSksICV5bW0wCit2cGFkZHcgNzA0KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1t
MCwgNjU5MiglcnNwKQordm1vdmRxYSAxNDA4KCVyOSksICV5bW0wCit2cGFkZHcgMjExMiglcjkp
LCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDcyOTYoJXJzcCkKK3Ztb3ZkcWEgMzIoJXI5
KSwgJXltbTAKK3ZwYWRkdyA3MzYoJXI5KSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCA2
NjI0KCVyc3ApCit2bW92ZHFhIDE0NDAoJXI5KSwgJXltbTAKK3ZwYWRkdyAyMTQ0KCVyOSksICV5
bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNzMyOCglcnNwKQordm1vdmRxYSA2NCglcjkpLCAl
eW1tMAordnBhZGR3IDc2OCglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDY2NTYo
JXJzcCkKK3Ztb3ZkcWEgMTQ3MiglcjkpLCAleW1tMAordnBhZGR3IDIxNzYoJXI5KSwgJXltbTAs
ICV5bW0wCit2bW92ZHFhICV5bW0wLCA3MzYwKCVyc3ApCit2bW92ZHFhIDk2KCVyOSksICV5bW0w
Cit2cGFkZHcgODAwKCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjY4OCglcnNw
KQordm1vdmRxYSAxNTA0KCVyOSksICV5bW0wCit2cGFkZHcgMjIwOCglcjkpLCAleW1tMCwgJXlt
bTAKK3Ztb3ZkcWEgJXltbTAsIDczOTIoJXJzcCkKK3Ztb3ZkcWEgMTI4KCVyOSksICV5bW0wCit2
cGFkZHcgODMyKCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjcyMCglcnNwKQor
dm1vdmRxYSAxNTM2KCVyOSksICV5bW0wCit2cGFkZHcgMjI0MCglcjkpLCAleW1tMCwgJXltbTAK
K3Ztb3ZkcWEgJXltbTAsIDc0MjQoJXJzcCkKK3Ztb3ZkcWEgMTYwKCVyOSksICV5bW0wCit2cGFk
ZHcgODY0KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjc1MiglcnNwKQordm1v
dmRxYSAxNTY4KCVyOSksICV5bW0wCit2cGFkZHcgMjI3MiglcjkpLCAleW1tMCwgJXltbTAKK3Zt
b3ZkcWEgJXltbTAsIDc0NTYoJXJzcCkKK3Ztb3ZkcWEgMTkyKCVyOSksICV5bW0wCit2cGFkZHcg
ODk2KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjc4NCglcnNwKQordm1vdmRx
YSAxNjAwKCVyOSksICV5bW0wCit2cGFkZHcgMjMwNCglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3Zk
cWEgJXltbTAsIDc0ODgoJXJzcCkKK3Ztb3ZkcWEgMjI0KCVyOSksICV5bW0wCit2cGFkZHcgOTI4
KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjgxNiglcnNwKQordm1vdmRxYSAx
NjMyKCVyOSksICV5bW0wCit2cGFkZHcgMjMzNiglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEg
JXltbTAsIDc1MjAoJXJzcCkKK3Ztb3ZkcWEgMjU2KCVyOSksICV5bW0wCit2cGFkZHcgOTYwKCVy
OSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjg0OCglcnNwKQordm1vdmRxYSAxNjY0
KCVyOSksICV5bW0wCit2cGFkZHcgMjM2OCglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXlt
bTAsIDc1NTIoJXJzcCkKK3Ztb3ZkcWEgMjg4KCVyOSksICV5bW0wCit2cGFkZHcgOTkyKCVyOSks
ICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjg4MCglcnNwKQordm1vdmRxYSAxNjk2KCVy
OSksICV5bW0wCit2cGFkZHcgMjQwMCglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDc1ODQoJXJzcCkKK3Ztb3ZkcWEgMzIwKCVyOSksICV5bW0wCit2cGFkZHcgMTAyNCglcjkpLCAl
eW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDY5MTIoJXJzcCkKK3Ztb3ZkcWEgMTcyOCglcjkp
LCAleW1tMAordnBhZGR3IDI0MzIoJXI5KSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCA3
NjE2KCVyc3ApCit2bW92ZHFhIDM1MiglcjkpLCAleW1tMAordnBhZGR3IDEwNTYoJXI5KSwgJXlt
bTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCA2OTQ0KCVyc3ApCit2bW92ZHFhIDE3NjAoJXI5KSwg
JXltbTAKK3ZwYWRkdyAyNDY0KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNzY0
OCglcnNwKQordm1vdmRxYSAzODQoJXI5KSwgJXltbTAKK3ZwYWRkdyAxMDg4KCVyOSksICV5bW0w
LCAleW1tMAordm1vdmRxYSAleW1tMCwgNjk3NiglcnNwKQordm1vdmRxYSAxNzkyKCVyOSksICV5
bW0wCit2cGFkZHcgMjQ5NiglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDc2ODAo
JXJzcCkKK3Ztb3ZkcWEgNDE2KCVyOSksICV5bW0wCit2cGFkZHcgMTEyMCglcjkpLCAleW1tMCwg
JXltbTAKK3Ztb3ZkcWEgJXltbTAsIDcwMDgoJXJzcCkKK3Ztb3ZkcWEgMTgyNCglcjkpLCAleW1t
MAordnBhZGR3IDI1MjgoJXI5KSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCA3NzEyKCVy
c3ApCit2bW92ZHFhIDQ0OCglcjkpLCAleW1tMAordnBhZGR3IDExNTIoJXI5KSwgJXltbTAsICV5
bW0wCit2bW92ZHFhICV5bW0wLCA3MDQwKCVyc3ApCit2bW92ZHFhIDE4NTYoJXI5KSwgJXltbTAK
K3ZwYWRkdyAyNTYwKCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNzc0NCglcnNw
KQordm1vdmRxYSA0ODAoJXI5KSwgJXltbTAKK3ZwYWRkdyAxMTg0KCVyOSksICV5bW0wLCAleW1t
MAordm1vdmRxYSAleW1tMCwgNzA3MiglcnNwKQordm1vdmRxYSAxODg4KCVyOSksICV5bW0wCit2
cGFkZHcgMjU5MiglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDc3NzYoJXJzcCkK
K3Ztb3ZkcWEgNTEyKCVyOSksICV5bW0wCit2cGFkZHcgMTIxNiglcjkpLCAleW1tMCwgJXltbTAK
K3Ztb3ZkcWEgJXltbTAsIDcxMDQoJXJzcCkKK3Ztb3ZkcWEgMTkyMCglcjkpLCAleW1tMAordnBh
ZGR3IDI2MjQoJXI5KSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCA3ODA4KCVyc3ApCit2
bW92ZHFhIDU0NCglcjkpLCAleW1tMAordnBhZGR3IDEyNDgoJXI5KSwgJXltbTAsICV5bW0wCit2
bW92ZHFhICV5bW0wLCA3MTM2KCVyc3ApCit2bW92ZHFhIDE5NTIoJXI5KSwgJXltbTAKK3ZwYWRk
dyAyNjU2KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNzg0MCglcnNwKQordm1v
dmRxYSA1NzYoJXI5KSwgJXltbTAKK3ZwYWRkdyAxMjgwKCVyOSksICV5bW0wLCAleW1tMAordm1v
dmRxYSAleW1tMCwgNzE2OCglcnNwKQordm1vdmRxYSAxOTg0KCVyOSksICV5bW0wCit2cGFkZHcg
MjY4OCglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDc4NzIoJXJzcCkKK3Ztb3Zk
cWEgNjA4KCVyOSksICV5bW0wCit2cGFkZHcgMTMxMiglcjkpLCAleW1tMCwgJXltbTAKK3Ztb3Zk
cWEgJXltbTAsIDcyMDAoJXJzcCkKK3Ztb3ZkcWEgMjAxNiglcjkpLCAleW1tMAordnBhZGR3IDI3
MjAoJXI5KSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCA3OTA0KCVyc3ApCit2bW92ZHFh
IDY0MCglcjkpLCAleW1tMAordnBhZGR3IDEzNDQoJXI5KSwgJXltbTAsICV5bW0wCit2bW92ZHFh
ICV5bW0wLCA3MjMyKCVyc3ApCit2bW92ZHFhIDIwNDgoJXI5KSwgJXltbTAKK3ZwYWRkdyAyNzUy
KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNzkzNiglcnNwKQordm1vdmRxYSA2
NzIoJXI5KSwgJXltbTAKK3ZwYWRkdyAxMzc2KCVyOSksICV5bW0wLCAleW1tMAordm1vdmRxYSAl
eW1tMCwgNzI2NCglcnNwKQordm1vdmRxYSAyMDgwKCVyOSksICV5bW0wCit2cGFkZHcgMjc4NCgl
cjkpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDc5NjgoJXJzcCkKK3Ztb3ZkcWEgNjU5
MiglcnNwKSwgJXltbTAKK3Ztb3ZkcWEgNzI5NiglcnNwKSwgJXltbTYKK3Ztb3ZkcWEgNjYyNCgl
cnNwKSwgJXltbTEKK3Ztb3ZkcWEgNzMyOCglcnNwKSwgJXltbTcKK3Ztb3ZkcWEgNjY1NiglcnNw
KSwgJXltbTIKK3Ztb3ZkcWEgNzM2MCglcnNwKSwgJXltbTgKK3Ztb3ZkcWEgNjY4OCglcnNwKSwg
JXltbTMKK3Ztb3ZkcWEgNzM5MiglcnNwKSwgJXltbTkKK3Ztb3ZkcWEgNjcyMCglcnNwKSwgJXlt
bTQKK3Ztb3ZkcWEgNzQyNCglcnNwKSwgJXltbTEwCit2bW92ZHFhIDY3NTIoJXJzcCksICV5bW01
Cit2bW92ZHFhIDc0NTYoJXJzcCksICV5bW0xMQordnBtdWxsdyAleW1tMCwgJXltbTYsICV5bW0x
Mgordm1vdmRxYSAleW1tMTIsIDgwMDAoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW03LCAleW1t
MTMKK3ZwbXVsbHcgJXltbTEsICV5bW02LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwg
JXltbTEzCit2bW92ZHFhICV5bW0xMywgODAzMiglcnNwKQordnBtdWxsdyAleW1tMCwgJXltbTgs
ICV5bW0xMgordnBtdWxsdyAleW1tMSwgJXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXlt
bTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW02LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIs
ICV5bW0xNSwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwgODA2NCglcnNwKQordnBtdWxsdyAleW1t
MCwgJXltbTksICV5bW0xMwordnBtdWxsdyAleW1tMSwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5
bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTIsICV5bW03LCAleW1tMTUKK3ZwYWRk
dyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tNiwgJXltbTE1Cit2
cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDgwOTYoJXJzcCkK
K3ZwbXVsbHcgJXltbTAsICV5bW0xMCwgJXltbTEyCit2cG11bGx3ICV5bW0xLCAleW1tOSwgJXlt
bTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTgs
ICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5
bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW00
LCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAl
eW1tMTIsIDgxMjgoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW0xMSwgJXltbTEzCit2cG11bGx3
ICV5bW0xLCAleW1tMTAsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Zw
bXVsbHcgJXltbTIsICV5bW05LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEz
Cit2cG11bGx3ICV5bW0zLCAleW1tOCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5
bW0xMwordnBtdWxsdyAleW1tNCwgJXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1
LCAleW1tMTMKK3ZwbXVsbHcgJXltbTUsICV5bW02LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5
bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywgODE2MCglcnNwKQordnBtdWxsdyAleW1tMSwg
JXltbTExLCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXlt
bTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tMywgJXltbTksICV5bW0xNQordnBhZGR3
ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTQsICV5bW04LCAleW1tMTUKK3Zw
YWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tNywgJXltbTE1
Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDgxOTIoJXJz
cCkKK3ZwbXVsbHcgJXltbTIsICV5bW0xMSwgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tMTAs
ICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5
bW05LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW01
LCAleW1tOCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAl
eW1tMTMsIDgyMjQoJXJzcCkKK3ZwbXVsbHcgJXltbTMsICV5bW0xMSwgJXltbTEyCit2cG11bGx3
ICV5bW00LCAleW1tMTAsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Zw
bXVsbHcgJXltbTUsICV5bW05LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEy
Cit2bW92ZHFhICV5bW0xMiwgODI1NiglcnNwKQordnBtdWxsdyAleW1tNCwgJXltbTExLCAleW1t
MTMKK3ZwbXVsbHcgJXltbTUsICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUs
ICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDgyODgoJXJzcCkKK3ZwbXVsbHcgJXltbTUsICV5bW0x
MSwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwgODMyMCglcnNwKQordm1vdmRxYSA2Nzg0KCVyc3Ap
LCAleW1tMAordm1vdmRxYSA3NDg4KCVyc3ApLCAleW1tNgordm1vdmRxYSA2ODE2KCVyc3ApLCAl
eW1tMQordm1vdmRxYSA3NTIwKCVyc3ApLCAleW1tNwordm1vdmRxYSA2ODQ4KCVyc3ApLCAleW1t
Mgordm1vdmRxYSA3NTUyKCVyc3ApLCAleW1tOAordm1vdmRxYSA2ODgwKCVyc3ApLCAleW1tMwor
dm1vdmRxYSA3NTg0KCVyc3ApLCAleW1tOQordm1vdmRxYSA2OTEyKCVyc3ApLCAleW1tNAordm1v
dmRxYSA3NjE2KCVyc3ApLCAleW1tMTAKK3ZwbXVsbHcgJXltbTAsICV5bW02LCAleW1tMTIKK3Zt
b3ZkcWEgJXltbTEyLCA4Mzg0KCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tNywgJXltbTEzCit2
cG11bGx3ICV5bW0xLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0x
Mwordm1vdmRxYSAleW1tMTMsIDg0MTYoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW04LCAleW1t
MTIKK3ZwbXVsbHcgJXltbTEsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwg
JXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1t
MTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDg0NDgoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5
bW05LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMs
ICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXlt
bTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTYsICV5bW0xNQordnBhZGR3
ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCA4NDgwKCVyc3ApCit2cG11
bGx3ICV5bW0wLCAleW1tMTAsICV5bW0xMgordnBtdWxsdyAleW1tMSwgJXltbTksICV5bW0xNQor
dnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW04LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tNywg
JXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXlt
bTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEy
LCA4NTEyKCVyc3ApCit2cG11bGx3ICV5bW0xLCAleW1tMTAsICV5bW0xMwordnBtdWxsdyAleW1t
MiwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcg
JXltbTMsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11
bGx3ICV5bW00LCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwor
dm1vdmRxYSAleW1tMTMsIDg1NDQoJXJzcCkKK3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTEy
Cit2cG11bGx3ICV5bW0zLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5
bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1
LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA4NTc2KCVyc3ApCit2cG11bGx3ICV5bW0zLCAleW1t
MTAsICV5bW0xMwordnBtdWxsdyAleW1tNCwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMywg
JXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCA4NjA4KCVyc3ApCit2cG11bGx3ICV5bW00
LCAleW1tMTAsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDg2NDAoJXJzcCkKK3ZwYWRkdyA2NTky
KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA3Mjk2KCVyc3ApLCAleW1tNiwgJXltbTYKK3Zw
YWRkdyA2NjI0KCVyc3ApLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA3MzI4KCVyc3ApLCAleW1tNywg
JXltbTcKK3ZwYWRkdyA2NjU2KCVyc3ApLCAleW1tMiwgJXltbTIKK3ZwYWRkdyA3MzYwKCVyc3Ap
LCAleW1tOCwgJXltbTgKK3ZwYWRkdyA2Njg4KCVyc3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyA3
MzkyKCVyc3ApLCAleW1tOSwgJXltbTkKK3ZwYWRkdyA2NzIwKCVyc3ApLCAleW1tNCwgJXltbTQK
K3ZwYWRkdyA3NDI0KCVyc3ApLCAleW1tMTAsICV5bW0xMAordnBtdWxsdyAleW1tMCwgJXltbTEx
LCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAl
eW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0x
NSwgJXltbTEyLCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAl
eW1tMTUsICV5bW0xMiwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tNywgJXltbTE1Cit2cGFk
ZHcgJXltbTE1LCAleW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1tNSwgJXltbTYsICV5bW0xNQor
dnBhZGR3ICV5bW0xNSwgJXltbTEyLCAleW1tMTIKK3Zwc3VidyA4MTYwKCVyc3ApLCAleW1tMTIs
ICV5bW0xMgordnBzdWJ3IDg1NDQoJXJzcCksICV5bW0xMiwgJXltbTEyCit2bW92ZHFhICV5bW0x
MiwgODM1MiglcnNwKQordnBtdWxsdyAleW1tNSwgJXltbTcsICV5bW0xMgordnBtdWxsdyAleW1t
NSwgJXltbTgsICV5bW0xMwordnBtdWxsdyAleW1tNSwgJXltbTksICV5bW0xNAordnBtdWxsdyAl
eW1tNSwgJXltbTEwLCAleW1tMTUKK3ZwbXVsbHcgJXltbTEsICV5bW0xMSwgJXltbTUKK3ZwYWRk
dyAleW1tNSwgJXltbTEyLCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTUKK3Zw
YWRkdyAleW1tNSwgJXltbTEyLCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW05LCAleW1tNQor
dnBhZGR3ICV5bW01LCAleW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTgsICV5bW01
Cit2cGFkZHcgJXltbTUsICV5bW0xMiwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tMTEsICV5
bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMywgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tMTAs
ICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMywgJXltbTEzCit2cG11bGx3ICV5bW00LCAleW1t
OSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEzLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5
bW0xMSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTE0LCAleW1tMTQKK3ZwbXVsbHcgJXltbTQs
ICV5bW0xMCwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTE0LCAleW1tMTQKK3ZwbXVsbHcgJXlt
bTQsICV5bW0xMSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTE1LCAleW1tMTUKK3ZwbXVsbHcg
JXltbTAsICV5bW0xMCwgJXltbTExCit2cG11bGx3ICV5bW0xLCAleW1tOSwgJXltbTUKK3ZwYWRk
dyAleW1tNSwgJXltbTExLCAleW1tMTEKK3ZwbXVsbHcgJXltbTIsICV5bW04LCAleW1tNQordnBh
ZGR3ICV5bW01LCAleW1tMTEsICV5bW0xMQordnBtdWxsdyAleW1tMywgJXltbTcsICV5bW01Cit2
cGFkZHcgJXltbTUsICV5bW0xMSwgJXltbTExCit2cG11bGx3ICV5bW00LCAleW1tNiwgJXltbTUK
K3ZwYWRkdyAleW1tNSwgJXltbTExLCAleW1tMTEKK3ZwbXVsbHcgJXltbTAsICV5bW05LCAleW1t
MTAKK3ZwbXVsbHcgJXltbTEsICV5bW04LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTAsICV5
bW0xMAordnBtdWxsdyAleW1tMiwgJXltbTcsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMCwg
JXltbTEwCit2cG11bGx3ICV5bW0zLCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEw
LCAleW1tMTAKK3ZwbXVsbHcgJXltbTAsICV5bW04LCAleW1tOQordnBtdWxsdyAleW1tMSwgJXlt
bTcsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW05LCAleW1tOQordnBtdWxsdyAleW1tMiwgJXlt
bTYsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW05LCAleW1tOQordnBtdWxsdyAleW1tMCwgJXlt
bTcsICV5bW04Cit2cG11bGx3ICV5bW0xLCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXlt
bTgsICV5bW04Cit2cG11bGx3ICV5bW0wLCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgODE5MiglcnNw
KSwgJXltbTAKK3Zwc3VidyA4Mzg0KCVyc3ApLCAleW1tMCwgJXltbTAKK3Zwc3VidyAleW1tMCwg
JXltbTEyLCAleW1tNgordnBzdWJ3IDg1NzYoJXJzcCksICV5bW02LCAleW1tNgordm1vdmRxYSAl
eW1tNiwgODM4NCglcnNwKQordnBhZGR3ICV5bW03LCAleW1tMCwgJXltbTAKK3Zwc3VidyA4MDAw
KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDgxOTIoJXJzcCkKK3Ztb3ZkcWEg
ODIyNCglcnNwKSwgJXltbTEKK3Zwc3VidyA4NDE2KCVyc3ApLCAleW1tMSwgJXltbTEKK3Zwc3Vi
dyAleW1tMSwgJXltbTEzLCAleW1tNwordnBzdWJ3IDg2MDgoJXJzcCksICV5bW03LCAleW1tNwor
dm1vdmRxYSAleW1tNywgODQxNiglcnNwKQordnBhZGR3ICV5bW04LCAleW1tMSwgJXltbTEKK3Zw
c3VidyA4MDMyKCVyc3ApLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDgyMjQoJXJzcCkK
K3Ztb3ZkcWEgODI1NiglcnNwKSwgJXltbTIKK3Zwc3VidyA4NDQ4KCVyc3ApLCAleW1tMiwgJXlt
bTIKK3Zwc3VidyAleW1tMiwgJXltbTE0LCAleW1tOAordnBzdWJ3IDg2NDAoJXJzcCksICV5bW04
LCAleW1tOAordm1vdmRxYSAleW1tOCwgODQ0OCglcnNwKQordnBhZGR3ICV5bW05LCAleW1tMiwg
JXltbTIKK3Zwc3VidyA4MDY0KCVyc3ApLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgJXltbTIsIDgy
NTYoJXJzcCkKK3Ztb3ZkcWEgODI4OCglcnNwKSwgJXltbTMKK3Zwc3VidyA4NDgwKCVyc3ApLCAl
eW1tMywgJXltbTMKK3Zwc3VidyAleW1tMywgJXltbTE1LCAleW1tOQordm1vdmRxYSAleW1tOSwg
ODQ4MCglcnNwKQordnBhZGR3ICV5bW0xMCwgJXltbTMsICV5bW0zCit2cHN1YncgODA5NiglcnNw
KSwgJXltbTMsICV5bW0zCit2bW92ZHFhICV5bW0zLCA4Mjg4KCVyc3ApCit2bW92ZHFhIDgzMjAo
JXJzcCksICV5bW00Cit2cHN1YncgODUxMiglcnNwKSwgJXltbTQsICV5bW00Cit2cGFkZHcgJXlt
bTExLCAleW1tNCwgJXltbTQKK3Zwc3VidyA4MTI4KCVyc3ApLCAleW1tNCwgJXltbTQKK3Ztb3Zk
cWEgJXltbTQsIDgzMjAoJXJzcCkKK3Ztb3ZkcWEgNjk0NCglcnNwKSwgJXltbTAKK3Ztb3ZkcWEg
NzY0OCglcnNwKSwgJXltbTYKK3Ztb3ZkcWEgNjk3NiglcnNwKSwgJXltbTEKK3Ztb3ZkcWEgNzY4
MCglcnNwKSwgJXltbTcKK3Ztb3ZkcWEgNzAwOCglcnNwKSwgJXltbTIKK3Ztb3ZkcWEgNzcxMigl
cnNwKSwgJXltbTgKK3Ztb3ZkcWEgNzA0MCglcnNwKSwgJXltbTMKK3Ztb3ZkcWEgNzc0NCglcnNw
KSwgJXltbTkKK3Ztb3ZkcWEgNzA3MiglcnNwKSwgJXltbTQKK3Ztb3ZkcWEgNzc3NiglcnNwKSwg
JXltbTEwCit2bW92ZHFhIDcxMDQoJXJzcCksICV5bW01Cit2bW92ZHFhIDc4MDgoJXJzcCksICV5
bW0xMQordnBtdWxsdyAleW1tMCwgJXltbTYsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDg3MDQo
JXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW03LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEsICV5bW02
LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2bW92ZHFhICV5bW0xMywg
ODczNiglcnNwKQordnBtdWxsdyAleW1tMCwgJXltbTgsICV5bW0xMgordnBtdWxsdyAleW1tMSwg
JXltbTcsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXlt
bTIsICV5bW02LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2bW92ZHFh
ICV5bW0xMiwgODc2OCglcnNwKQordnBtdWxsdyAleW1tMCwgJXltbTksICV5bW0xMwordnBtdWxs
dyAleW1tMSwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Zw
bXVsbHcgJXltbTIsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEz
Cit2cG11bGx3ICV5bW0zLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5
bW0xMwordm1vdmRxYSAleW1tMTMsIDg4MDAoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW0xMCwg
JXltbTEyCit2cG11bGx3ICV5bW0xLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1t
MTUsICV5bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMiwg
JXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1t
MTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tNiwgJXltbTE1Cit2cGFkZHcg
JXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDg4MzIoJXJzcCkKK3ZwbXVs
bHcgJXltbTAsICV5bW0xMSwgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tMTAsICV5bW0xNQor
dnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTIsICV5bW05LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tOCwg
JXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tNCwgJXlt
bTcsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTUs
ICV5bW02LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2bW92ZHFhICV5
bW0xMywgODg2NCglcnNwKQordnBtdWxsdyAleW1tMSwgJXltbTExLCAleW1tMTIKK3ZwbXVsbHcg
JXltbTIsICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBt
dWxsdyAleW1tMywgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIK
K3ZwbXVsbHcgJXltbTQsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXlt
bTEyCit2cG11bGx3ICV5bW01LCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUs
ICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDg4OTYoJXJzcCkKK3ZwbXVsbHcgJXltbTIsICV5bW0x
MSwgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tMTAsICV5bW0xNQordnBhZGR3ICV5bW0xMywg
JXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW05LCAleW1tMTUKK3ZwYWRkdyAleW1t
MTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tOCwgJXltbTE1Cit2cGFkZHcg
JXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDg5MjgoJXJzcCkKK3ZwbXVs
bHcgJXltbTMsICV5bW0xMSwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tMTAsICV5bW0xNQor
dnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTUsICV5bW05LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwgODk2MCgl
cnNwKQordnBtdWxsdyAleW1tNCwgJXltbTExLCAleW1tMTMKK3ZwbXVsbHcgJXltbTUsICV5bW0x
MCwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMs
IDg5OTIoJXJzcCkKK3ZwbXVsbHcgJXltbTUsICV5bW0xMSwgJXltbTEyCit2bW92ZHFhICV5bW0x
MiwgOTAyNCglcnNwKQordm1vdmRxYSA3MTM2KCVyc3ApLCAleW1tMAordm1vdmRxYSA3ODQwKCVy
c3ApLCAleW1tNgordm1vdmRxYSA3MTY4KCVyc3ApLCAleW1tMQordm1vdmRxYSA3ODcyKCVyc3Ap
LCAleW1tNwordm1vdmRxYSA3MjAwKCVyc3ApLCAleW1tMgordm1vdmRxYSA3OTA0KCVyc3ApLCAl
eW1tOAordm1vdmRxYSA3MjMyKCVyc3ApLCAleW1tMwordm1vdmRxYSA3OTM2KCVyc3ApLCAleW1t
OQordm1vdmRxYSA3MjY0KCVyc3ApLCAleW1tNAordm1vdmRxYSA3OTY4KCVyc3ApLCAleW1tMTAK
K3ZwbXVsbHcgJXltbTAsICV5bW02LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA5MDg4KCVyc3Ap
Cit2cG11bGx3ICV5bW0wLCAleW1tNywgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tNiwgJXlt
bTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDkxMjAo
JXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW04LCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW03
LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAl
eW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1t
MTIsIDkxNTIoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW05LCAleW1tMTMKK3ZwbXVsbHcgJXlt
bTEsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3
ICV5bW0yLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBt
dWxsdyAleW1tMywgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMK
K3Ztb3ZkcWEgJXltbTEzLCA5MTg0KCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tMTAsICV5bW0x
MgordnBtdWxsdyAleW1tMSwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAl
eW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0x
NSwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAl
eW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0x
MiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA5MjE2KCVyc3ApCit2cG11bGx3ICV5
bW0xLCAleW1tMTAsICV5bW0xMwordnBtdWxsdyAleW1tMiwgJXltbTksICV5bW0xNQordnBhZGR3
ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW04LCAleW1tMTUKK3Zw
YWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW00LCAleW1tNywgJXltbTE1
Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDkyNDgoJXJz
cCkKK3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tOSwg
JXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXlt
bTgsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEy
LCA5MjgwKCVyc3ApCit2cG11bGx3ICV5bW0zLCAleW1tMTAsICV5bW0xMwordnBtdWxsdyAleW1t
NCwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEg
JXltbTEzLCA5MzEyKCVyc3ApCit2cG11bGx3ICV5bW00LCAleW1tMTAsICV5bW0xMgordm1vdmRx
YSAleW1tMTIsIDkzNDQoJXJzcCkKK3ZwYWRkdyA2OTQ0KCVyc3ApLCAleW1tMCwgJXltbTAKK3Zw
YWRkdyA3NjQ4KCVyc3ApLCAleW1tNiwgJXltbTYKK3ZwYWRkdyA2OTc2KCVyc3ApLCAleW1tMSwg
JXltbTEKK3ZwYWRkdyA3NjgwKCVyc3ApLCAleW1tNywgJXltbTcKK3ZwYWRkdyA3MDA4KCVyc3Ap
LCAleW1tMiwgJXltbTIKK3ZwYWRkdyA3NzEyKCVyc3ApLCAleW1tOCwgJXltbTgKK3ZwYWRkdyA3
MDQwKCVyc3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyA3NzQ0KCVyc3ApLCAleW1tOSwgJXltbTkK
K3ZwYWRkdyA3MDcyKCVyc3ApLCAleW1tNCwgJXltbTQKK3ZwYWRkdyA3Nzc2KCVyc3ApLCAleW1t
MTAsICV5bW0xMAordnBtdWxsdyAleW1tMCwgJXltbTExLCAleW1tMTIKK3ZwbXVsbHcgJXltbTEs
ICV5bW0xMCwgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIsICV5bW0xMgordnBtdWxsdyAl
eW1tMiwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xNSwgJXltbTEyLCAleW1tMTIKK3ZwbXVs
bHcgJXltbTMsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTUsICV5bW0xMiwgJXltbTEyCit2
cG11bGx3ICV5bW00LCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIsICV5bW0x
MgordnBtdWxsdyAleW1tNSwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xNSwgJXltbTEyLCAl
eW1tMTIKK3Zwc3VidyA4ODY0KCVyc3ApLCAleW1tMTIsICV5bW0xMgordnBzdWJ3IDkyNDgoJXJz
cCksICV5bW0xMiwgJXltbTEyCit2bW92ZHFhICV5bW0xMiwgOTA1NiglcnNwKQordnBtdWxsdyAl
eW1tNSwgJXltbTcsICV5bW0xMgordnBtdWxsdyAleW1tNSwgJXltbTgsICV5bW0xMwordnBtdWxs
dyAleW1tNSwgJXltbTksICV5bW0xNAordnBtdWxsdyAleW1tNSwgJXltbTEwLCAleW1tMTUKK3Zw
bXVsbHcgJXltbTEsICV5bW0xMSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEyLCAleW1tMTIK
K3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEyLCAleW1t
MTIKK3ZwbXVsbHcgJXltbTMsICV5bW05LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTIsICV5
bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTgsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMiwg
JXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tMTEsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0x
MywgJXltbTEzCit2cG11bGx3ICV5bW0zLCAleW1tMTAsICV5bW01Cit2cGFkZHcgJXltbTUsICV5
bW0xMywgJXltbTEzCit2cG11bGx3ICV5bW00LCAleW1tOSwgJXltbTUKK3ZwYWRkdyAleW1tNSwg
JXltbTEzLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW0xMSwgJXltbTUKK3ZwYWRkdyAleW1t
NSwgJXltbTE0LCAleW1tMTQKK3ZwbXVsbHcgJXltbTQsICV5bW0xMCwgJXltbTUKK3ZwYWRkdyAl
eW1tNSwgJXltbTE0LCAleW1tMTQKK3ZwbXVsbHcgJXltbTQsICV5bW0xMSwgJXltbTUKK3ZwYWRk
dyAleW1tNSwgJXltbTE1LCAleW1tMTUKK3ZwbXVsbHcgJXltbTAsICV5bW0xMCwgJXltbTExCit2
cG11bGx3ICV5bW0xLCAleW1tOSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTExLCAleW1tMTEK
K3ZwbXVsbHcgJXltbTIsICV5bW04LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTEsICV5bW0x
MQordnBtdWxsdyAleW1tMywgJXltbTcsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMSwgJXlt
bTExCit2cG11bGx3ICV5bW00LCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTExLCAl
eW1tMTEKK3ZwbXVsbHcgJXltbTAsICV5bW05LCAleW1tMTAKK3ZwbXVsbHcgJXltbTEsICV5bW04
LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTAsICV5bW0xMAordnBtdWxsdyAleW1tMiwgJXlt
bTcsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMCwgJXltbTEwCit2cG11bGx3ICV5bW0zLCAl
eW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEwLCAleW1tMTAKK3ZwbXVsbHcgJXltbTAs
ICV5bW04LCAleW1tOQordnBtdWxsdyAleW1tMSwgJXltbTcsICV5bW01Cit2cGFkZHcgJXltbTUs
ICV5bW05LCAleW1tOQordnBtdWxsdyAleW1tMiwgJXltbTYsICV5bW01Cit2cGFkZHcgJXltbTUs
ICV5bW05LCAleW1tOQordnBtdWxsdyAleW1tMCwgJXltbTcsICV5bW04Cit2cG11bGx3ICV5bW0x
LCAleW1tNiwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTgsICV5bW04Cit2cG11bGx3ICV5bW0w
LCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgODg5NiglcnNwKSwgJXltbTAKK3Zwc3VidyA5MDg4KCVy
c3ApLCAleW1tMCwgJXltbTAKK3Zwc3VidyAleW1tMCwgJXltbTEyLCAleW1tNgordnBzdWJ3IDky
ODAoJXJzcCksICV5bW02LCAleW1tNgordm1vdmRxYSAleW1tNiwgOTA4OCglcnNwKQordnBhZGR3
ICV5bW03LCAleW1tMCwgJXltbTAKK3Zwc3VidyA4NzA0KCVyc3ApLCAleW1tMCwgJXltbTAKK3Zt
b3ZkcWEgJXltbTAsIDg4OTYoJXJzcCkKK3Ztb3ZkcWEgODkyOCglcnNwKSwgJXltbTEKK3Zwc3Vi
dyA5MTIwKCVyc3ApLCAleW1tMSwgJXltbTEKK3Zwc3VidyAleW1tMSwgJXltbTEzLCAleW1tNwor
dnBzdWJ3IDkzMTIoJXJzcCksICV5bW03LCAleW1tNwordm1vdmRxYSAleW1tNywgOTEyMCglcnNw
KQordnBhZGR3ICV5bW04LCAleW1tMSwgJXltbTEKK3Zwc3VidyA4NzM2KCVyc3ApLCAleW1tMSwg
JXltbTEKK3Ztb3ZkcWEgJXltbTEsIDg5MjgoJXJzcCkKK3Ztb3ZkcWEgODk2MCglcnNwKSwgJXlt
bTIKK3Zwc3VidyA5MTUyKCVyc3ApLCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tMiwgJXltbTE0
LCAleW1tOAordnBzdWJ3IDkzNDQoJXJzcCksICV5bW04LCAleW1tOAordm1vdmRxYSAleW1tOCwg
OTE1MiglcnNwKQordnBhZGR3ICV5bW05LCAleW1tMiwgJXltbTIKK3Zwc3VidyA4NzY4KCVyc3Ap
LCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgJXltbTIsIDg5NjAoJXJzcCkKK3Ztb3ZkcWEgODk5Migl
cnNwKSwgJXltbTMKK3Zwc3VidyA5MTg0KCVyc3ApLCAleW1tMywgJXltbTMKK3Zwc3VidyAleW1t
MywgJXltbTE1LCAleW1tOQordm1vdmRxYSAleW1tOSwgOTE4NCglcnNwKQordnBhZGR3ICV5bW0x
MCwgJXltbTMsICV5bW0zCit2cHN1YncgODgwMCglcnNwKSwgJXltbTMsICV5bW0zCit2bW92ZHFh
ICV5bW0zLCA4OTkyKCVyc3ApCit2bW92ZHFhIDkwMjQoJXJzcCksICV5bW00Cit2cHN1YncgOTIx
NiglcnNwKSwgJXltbTQsICV5bW00Cit2cGFkZHcgJXltbTExLCAleW1tNCwgJXltbTQKK3Zwc3Vi
dyA4ODMyKCVyc3ApLCAleW1tNCwgJXltbTQKK3Ztb3ZkcWEgJXltbTQsIDkwMjQoJXJzcCkKK3Zt
b3ZkcWEgNjU5MiglcnNwKSwgJXltbTAKK3Ztb3ZkcWEgNzI5NiglcnNwKSwgJXltbTYKK3ZwYWRk
dyA2OTQ0KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA3NjQ4KCVyc3ApLCAleW1tNiwgJXlt
bTYKK3Ztb3ZkcWEgNjYyNCglcnNwKSwgJXltbTEKK3Ztb3ZkcWEgNzMyOCglcnNwKSwgJXltbTcK
K3ZwYWRkdyA2OTc2KCVyc3ApLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA3NjgwKCVyc3ApLCAleW1t
NywgJXltbTcKK3Ztb3ZkcWEgNjY1NiglcnNwKSwgJXltbTIKK3Ztb3ZkcWEgNzM2MCglcnNwKSwg
JXltbTgKK3ZwYWRkdyA3MDA4KCVyc3ApLCAleW1tMiwgJXltbTIKK3ZwYWRkdyA3NzEyKCVyc3Ap
LCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgNjY4OCglcnNwKSwgJXltbTMKK3Ztb3ZkcWEgNzM5Migl
cnNwKSwgJXltbTkKK3ZwYWRkdyA3MDQwKCVyc3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyA3NzQ0
KCVyc3ApLCAleW1tOSwgJXltbTkKK3Ztb3ZkcWEgNjcyMCglcnNwKSwgJXltbTQKK3Ztb3ZkcWEg
NzQyNCglcnNwKSwgJXltbTEwCit2cGFkZHcgNzA3MiglcnNwKSwgJXltbTQsICV5bW00Cit2cGFk
ZHcgNzc3NiglcnNwKSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgNjc1MiglcnNwKSwgJXltbTUK
K3Ztb3ZkcWEgNzQ1NiglcnNwKSwgJXltbTExCit2cGFkZHcgNzEwNCglcnNwKSwgJXltbTUsICV5
bW01Cit2cGFkZHcgNzgwOCglcnNwKSwgJXltbTExLCAleW1tMTEKK3ZwbXVsbHcgJXltbTAsICV5
bW02LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA1ODg4KCVyc3ApCit2cG11bGx3ICV5bW0wLCAl
eW1tNywgJXltbTEzCit2cG11bGx3ICV5bW0xLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEz
LCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDU5MjAoJXJzcCkKK3ZwbXVsbHcgJXlt
bTAsICV5bW04LCAleW1tMTIKK3ZwbXVsbHcgJXltbTEsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAl
eW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTE1Cit2cGFk
ZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDU5NTIoJXJzcCkKK3Zw
bXVsbHcgJXltbTAsICV5bW05LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEsICV5bW04LCAleW1tMTUK
K3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tNywgJXlt
bTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTYs
ICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCA1
OTg0KCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tMTAsICV5bW0xMgordnBtdWxsdyAleW1tMSwg
JXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXlt
bTIsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3
ICV5bW0zLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBt
dWxsdyAleW1tNCwgJXltbTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIK
K3Ztb3ZkcWEgJXltbTEyLCA2MDE2KCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tMTEsICV5bW0x
MwordnBtdWxsdyAleW1tMSwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwg
JXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1t
MTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMywg
JXltbTE1LCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1t
MTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tNiwgJXltbTE1Cit2cGFkZHcg
JXltbTEzLCAleW1tMTUsICV5bW0xMwordm1vdmRxYSAleW1tMTMsIDYwNDgoJXJzcCkKK3ZwbXVs
bHcgJXltbTEsICV5bW0xMSwgJXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tMTAsICV5bW0xNQor
dnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTMsICV5bW05LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tOCwg
JXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNSwgJXlt
bTcsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEy
LCA2MDgwKCVyc3ApCit2cG11bGx3ICV5bW0yLCAleW1tMTEsICV5bW0xMwordnBtdWxsdyAleW1t
MywgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11bGx3
ICV5bW00LCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwordnBt
dWxsdyAleW1tNSwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMK
K3Ztb3ZkcWEgJXltbTEzLCA2MTEyKCVyc3ApCit2cG11bGx3ICV5bW0zLCAleW1tMTEsICV5bW0x
MgordnBtdWxsdyAleW1tNCwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwg
JXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1t
MTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDYxNDQoJXJzcCkKK3ZwbXVsbHcgJXltbTQsICV5
bW0xMSwgJXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tMTAsICV5bW0xNQordnBhZGR3ICV5bW0x
MywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCA2MTc2KCVyc3ApCit2cG11bGx3ICV5
bW01LCAleW1tMTEsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDYyMDgoJXJzcCkKK3Ztb3ZkcWEg
Njc4NCglcnNwKSwgJXltbTAKK3Ztb3ZkcWEgNzQ4OCglcnNwKSwgJXltbTYKK3ZwYWRkdyA3MTM2
KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA3ODQwKCVyc3ApLCAleW1tNiwgJXltbTYKK3Zt
b3ZkcWEgNjgxNiglcnNwKSwgJXltbTEKK3Ztb3ZkcWEgNzUyMCglcnNwKSwgJXltbTcKK3ZwYWRk
dyA3MTY4KCVyc3ApLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA3ODcyKCVyc3ApLCAleW1tNywgJXlt
bTcKK3Ztb3ZkcWEgNjg0OCglcnNwKSwgJXltbTIKK3Ztb3ZkcWEgNzU1MiglcnNwKSwgJXltbTgK
K3ZwYWRkdyA3MjAwKCVyc3ApLCAleW1tMiwgJXltbTIKK3ZwYWRkdyA3OTA0KCVyc3ApLCAleW1t
OCwgJXltbTgKK3Ztb3ZkcWEgNjg4MCglcnNwKSwgJXltbTMKK3Ztb3ZkcWEgNzU4NCglcnNwKSwg
JXltbTkKK3ZwYWRkdyA3MjMyKCVyc3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyA3OTM2KCVyc3Ap
LCAleW1tOSwgJXltbTkKK3Ztb3ZkcWEgNjkxMiglcnNwKSwgJXltbTQKK3Ztb3ZkcWEgNzYxNigl
cnNwKSwgJXltbTEwCit2cGFkZHcgNzI2NCglcnNwKSwgJXltbTQsICV5bW00Cit2cGFkZHcgNzk2
OCglcnNwKSwgJXltbTEwLCAleW1tMTAKK3ZwbXVsbHcgJXltbTAsICV5bW02LCAleW1tMTIKK3Zt
b3ZkcWEgJXltbTEyLCA2MjcyKCVyc3ApCit2cG11bGx3ICV5bW0wLCAleW1tNywgJXltbTEzCit2
cG11bGx3ICV5bW0xLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0x
Mwordm1vdmRxYSAleW1tMTMsIDYzMDQoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5bW04LCAleW1t
MTIKK3ZwbXVsbHcgJXltbTEsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwg
JXltbTEyCit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1t
MTUsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDYzMzYoJXJzcCkKK3ZwbXVsbHcgJXltbTAsICV5
bW05LCAleW1tMTMKK3ZwbXVsbHcgJXltbTEsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMs
ICV5bW0xNSwgJXltbTEzCit2cG11bGx3ICV5bW0yLCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXlt
bTEzLCAleW1tMTUsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTYsICV5bW0xNQordnBhZGR3
ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCA2MzY4KCVyc3ApCit2cG11
bGx3ICV5bW0wLCAleW1tMTAsICV5bW0xMgordnBtdWxsdyAleW1tMSwgJXltbTksICV5bW0xNQor
dnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW04LCAleW1t
MTUKK3ZwYWRkdyAleW1tMTIsICV5bW0xNSwgJXltbTEyCit2cG11bGx3ICV5bW0zLCAleW1tNywg
JXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5bW0xMgordnBtdWxsdyAleW1tNCwgJXlt
bTYsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEy
LCA2NDAwKCVyc3ApCit2cG11bGx3ICV5bW0xLCAleW1tMTAsICV5bW0xMwordnBtdWxsdyAleW1t
MiwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMywgJXltbTE1LCAleW1tMTMKK3ZwbXVsbHcg
JXltbTMsICV5bW04LCAleW1tMTUKK3ZwYWRkdyAleW1tMTMsICV5bW0xNSwgJXltbTEzCit2cG11
bGx3ICV5bW00LCAleW1tNywgJXltbTE1Cit2cGFkZHcgJXltbTEzLCAleW1tMTUsICV5bW0xMwor
dm1vdmRxYSAleW1tMTMsIDY0MzIoJXJzcCkKK3ZwbXVsbHcgJXltbTIsICV5bW0xMCwgJXltbTEy
Cit2cG11bGx3ICV5bW0zLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTEyLCAleW1tMTUsICV5
bW0xMgordnBtdWxsdyAleW1tNCwgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xMiwgJXltbTE1
LCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA2NDY0KCVyc3ApCit2cG11bGx3ICV5bW0zLCAleW1t
MTAsICV5bW0xMwordnBtdWxsdyAleW1tNCwgJXltbTksICV5bW0xNQordnBhZGR3ICV5bW0xMywg
JXltbTE1LCAleW1tMTMKK3Ztb3ZkcWEgJXltbTEzLCA2NDk2KCVyc3ApCit2cG11bGx3ICV5bW00
LCAleW1tMTAsICV5bW0xMgordm1vdmRxYSAleW1tMTIsIDY1MjgoJXJzcCkKK3ZwYWRkdyA2NTky
KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA3Mjk2KCVyc3ApLCAleW1tNiwgJXltbTYKK3Zw
YWRkdyA2OTQ0KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA3NjQ4KCVyc3ApLCAleW1tNiwg
JXltbTYKK3ZwYWRkdyA2NjI0KCVyc3ApLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA3MzI4KCVyc3Ap
LCAleW1tNywgJXltbTcKK3ZwYWRkdyA2OTc2KCVyc3ApLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA3
NjgwKCVyc3ApLCAleW1tNywgJXltbTcKK3ZwYWRkdyA2NjU2KCVyc3ApLCAleW1tMiwgJXltbTIK
K3ZwYWRkdyA3MzYwKCVyc3ApLCAleW1tOCwgJXltbTgKK3ZwYWRkdyA3MDA4KCVyc3ApLCAleW1t
MiwgJXltbTIKK3ZwYWRkdyA3NzEyKCVyc3ApLCAleW1tOCwgJXltbTgKK3ZwYWRkdyA2Njg4KCVy
c3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyA3MzkyKCVyc3ApLCAleW1tOSwgJXltbTkKK3ZwYWRk
dyA3MDQwKCVyc3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyA3NzQ0KCVyc3ApLCAleW1tOSwgJXlt
bTkKK3ZwYWRkdyA2NzIwKCVyc3ApLCAleW1tNCwgJXltbTQKK3ZwYWRkdyA3NDI0KCVyc3ApLCAl
eW1tMTAsICV5bW0xMAordnBhZGR3IDcwNzIoJXJzcCksICV5bW00LCAleW1tNAordnBhZGR3IDc3
NzYoJXJzcCksICV5bW0xMCwgJXltbTEwCit2cG11bGx3ICV5bW0wLCAleW1tMTEsICV5bW0xMgor
dnBtdWxsdyAleW1tMSwgJXltbTEwLCAleW1tMTUKK3ZwYWRkdyAleW1tMTUsICV5bW0xMiwgJXlt
bTEyCit2cG11bGx3ICV5bW0yLCAleW1tOSwgJXltbTE1Cit2cGFkZHcgJXltbTE1LCAleW1tMTIs
ICV5bW0xMgordnBtdWxsdyAleW1tMywgJXltbTgsICV5bW0xNQordnBhZGR3ICV5bW0xNSwgJXlt
bTEyLCAleW1tMTIKK3ZwbXVsbHcgJXltbTQsICV5bW03LCAleW1tMTUKK3ZwYWRkdyAleW1tMTUs
ICV5bW0xMiwgJXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tNiwgJXltbTE1Cit2cGFkZHcgJXlt
bTE1LCAleW1tMTIsICV5bW0xMgordnBzdWJ3IDYwNDgoJXJzcCksICV5bW0xMiwgJXltbTEyCit2
cHN1YncgNjQzMiglcnNwKSwgJXltbTEyLCAleW1tMTIKK3Ztb3ZkcWEgJXltbTEyLCA2MjQwKCVy
c3ApCit2cG11bGx3ICV5bW01LCAleW1tNywgJXltbTEyCit2cG11bGx3ICV5bW01LCAleW1tOCwg
JXltbTEzCit2cG11bGx3ICV5bW01LCAleW1tOSwgJXltbTE0Cit2cG11bGx3ICV5bW01LCAleW1t
MTAsICV5bW0xNQordnBtdWxsdyAleW1tMSwgJXltbTExLCAleW1tNQordnBhZGR3ICV5bW01LCAl
eW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1tMiwgJXltbTEwLCAleW1tNQordnBhZGR3ICV5bW01
LCAleW1tMTIsICV5bW0xMgordnBtdWxsdyAleW1tMywgJXltbTksICV5bW01Cit2cGFkZHcgJXlt
bTUsICV5bW0xMiwgJXltbTEyCit2cG11bGx3ICV5bW00LCAleW1tOCwgJXltbTUKK3ZwYWRkdyAl
eW1tNSwgJXltbTEyLCAleW1tMTIKK3ZwbXVsbHcgJXltbTIsICV5bW0xMSwgJXltbTUKK3ZwYWRk
dyAleW1tNSwgJXltbTEzLCAleW1tMTMKK3ZwbXVsbHcgJXltbTMsICV5bW0xMCwgJXltbTUKK3Zw
YWRkdyAleW1tNSwgJXltbTEzLCAleW1tMTMKK3ZwbXVsbHcgJXltbTQsICV5bW05LCAleW1tNQor
dnBhZGR3ICV5bW01LCAleW1tMTMsICV5bW0xMwordnBtdWxsdyAleW1tMywgJXltbTExLCAleW1t
NQordnBhZGR3ICV5bW01LCAleW1tMTQsICV5bW0xNAordnBtdWxsdyAleW1tNCwgJXltbTEwLCAl
eW1tNQordnBhZGR3ICV5bW01LCAleW1tMTQsICV5bW0xNAordnBtdWxsdyAleW1tNCwgJXltbTEx
LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTUsICV5bW0xNQordnBtdWxsdyAleW1tMCwgJXlt
bTEwLCAleW1tMTEKK3ZwbXVsbHcgJXltbTEsICV5bW05LCAleW1tNQordnBhZGR3ICV5bW01LCAl
eW1tMTEsICV5bW0xMQordnBtdWxsdyAleW1tMiwgJXltbTgsICV5bW01Cit2cGFkZHcgJXltbTUs
ICV5bW0xMSwgJXltbTExCit2cG11bGx3ICV5bW0zLCAleW1tNywgJXltbTUKK3ZwYWRkdyAleW1t
NSwgJXltbTExLCAleW1tMTEKK3ZwbXVsbHcgJXltbTQsICV5bW02LCAleW1tNQordnBhZGR3ICV5
bW01LCAleW1tMTEsICV5bW0xMQordnBtdWxsdyAleW1tMCwgJXltbTksICV5bW0xMAordnBtdWxs
dyAleW1tMSwgJXltbTgsICV5bW01Cit2cGFkZHcgJXltbTUsICV5bW0xMCwgJXltbTEwCit2cG11
bGx3ICV5bW0yLCAleW1tNywgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTEwLCAleW1tMTAKK3Zw
bXVsbHcgJXltbTMsICV5bW02LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tMTAsICV5bW0xMAor
dnBtdWxsdyAleW1tMCwgJXltbTgsICV5bW05Cit2cG11bGx3ICV5bW0xLCAleW1tNywgJXltbTUK
K3ZwYWRkdyAleW1tNSwgJXltbTksICV5bW05Cit2cG11bGx3ICV5bW0yLCAleW1tNiwgJXltbTUK
K3ZwYWRkdyAleW1tNSwgJXltbTksICV5bW05Cit2cG11bGx3ICV5bW0wLCAleW1tNywgJXltbTgK
K3ZwbXVsbHcgJXltbTEsICV5bW02LCAleW1tNQordnBhZGR3ICV5bW01LCAleW1tOCwgJXltbTgK
K3ZwbXVsbHcgJXltbTAsICV5bW02LCAleW1tNwordm1vdmRxYSA2MDgwKCVyc3ApLCAleW1tMAor
dnBzdWJ3IDYyNzIoJXJzcCksICV5bW0wLCAleW1tMAordnBzdWJ3ICV5bW0wLCAleW1tMTIsICV5
bW02Cit2cHN1YncgNjQ2NCglcnNwKSwgJXltbTYsICV5bW02Cit2bW92ZHFhICV5bW02LCA2Mjcy
KCVyc3ApCit2cGFkZHcgJXltbTcsICV5bW0wLCAleW1tMAordnBzdWJ3IDU4ODgoJXJzcCksICV5
bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNjA4MCglcnNwKQordm1vdmRxYSA2MTEyKCVyc3Ap
LCAleW1tMQordnBzdWJ3IDYzMDQoJXJzcCksICV5bW0xLCAleW1tMQordnBzdWJ3ICV5bW0xLCAl
eW1tMTMsICV5bW03Cit2cHN1YncgNjQ5NiglcnNwKSwgJXltbTcsICV5bW03Cit2bW92ZHFhICV5
bW03LCA2MzA0KCVyc3ApCit2cGFkZHcgJXltbTgsICV5bW0xLCAleW1tMQordnBzdWJ3IDU5MjAo
JXJzcCksICV5bW0xLCAleW1tMQordm1vdmRxYSAleW1tMSwgNjExMiglcnNwKQordm1vdmRxYSA2
MTQ0KCVyc3ApLCAleW1tMgordnBzdWJ3IDYzMzYoJXJzcCksICV5bW0yLCAleW1tMgordnBzdWJ3
ICV5bW0yLCAleW1tMTQsICV5bW04Cit2cHN1YncgNjUyOCglcnNwKSwgJXltbTgsICV5bW04Cit2
bW92ZHFhICV5bW04LCA2MzM2KCVyc3ApCit2cGFkZHcgJXltbTksICV5bW0yLCAleW1tMgordnBz
dWJ3IDU5NTIoJXJzcCksICV5bW0yLCAleW1tMgordm1vdmRxYSAleW1tMiwgNjE0NCglcnNwKQor
dm1vdmRxYSA2MTc2KCVyc3ApLCAleW1tMwordnBzdWJ3IDYzNjgoJXJzcCksICV5bW0zLCAleW1t
MwordnBzdWJ3ICV5bW0zLCAleW1tMTUsICV5bW05Cit2bW92ZHFhICV5bW05LCA2MzY4KCVyc3Ap
Cit2cGFkZHcgJXltbTEwLCAleW1tMywgJXltbTMKK3Zwc3VidyA1OTg0KCVyc3ApLCAleW1tMywg
JXltbTMKK3Ztb3ZkcWEgJXltbTMsIDYxNzYoJXJzcCkKK3Ztb3ZkcWEgNjIwOCglcnNwKSwgJXlt
bTQKK3Zwc3VidyA2NDAwKCVyc3ApLCAleW1tNCwgJXltbTQKK3ZwYWRkdyAleW1tMTEsICV5bW00
LCAleW1tNAordnBzdWJ3IDYwMTYoJXJzcCksICV5bW00LCAleW1tNAordm1vdmRxYSAleW1tNCwg
NjIwOCglcnNwKQordm1vdmRxYSA4MzUyKCVyc3ApLCAleW1tMAordnBzdWJ3IDg3MDQoJXJzcCks
ICV5bW0wLCAleW1tMAordm1vdmRxYSA2MjQwKCVyc3ApLCAleW1tMQordnBzdWJ3ICV5bW0wLCAl
eW1tMSwgJXltbTEKK3Zwc3VidyA5MDU2KCVyc3ApLCAleW1tMSwgJXltbTYKK3Zwc3VidyA4MDAw
KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA1ODg4KCVyc3ApLCAleW1tMCwgJXltbTAKK3Zt
b3ZkcWEgJXltbTAsIDgzNTIoJXJzcCkKK3Ztb3ZkcWEgODM4NCglcnNwKSwgJXltbTAKK3Zwc3Vi
dyA4NzM2KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgNjI3MiglcnNwKSwgJXltbTEKK3Zw
c3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgOTA4OCglcnNwKSwgJXltbTEsICV5bW03
Cit2cHN1YncgODAzMiglcnNwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNTkyMCglcnNwKSwgJXlt
bTAsICV5bW0wCit2bW92ZHFhICV5bW0wLCA4Mzg0KCVyc3ApCit2bW92ZHFhIDg0MTYoJXJzcCks
ICV5bW0wCit2cHN1YncgODc2OCglcnNwKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDYzMDQoJXJz
cCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDkxMjAoJXJzcCks
ICV5bW0xLCAleW1tOAordnBzdWJ3IDgwNjQoJXJzcCksICV5bW0wLCAleW1tMAordnBhZGR3IDU5
NTIoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgODQxNiglcnNwKQordm1vdmRx
YSA4NDQ4KCVyc3ApLCAleW1tMAordnBzdWJ3IDg4MDAoJXJzcCksICV5bW0wLCAleW1tMAordm1v
dmRxYSA2MzM2KCVyc3ApLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3Vi
dyA5MTUyKCVyc3ApLCAleW1tMSwgJXltbTkKK3Zwc3VidyA4MDk2KCVyc3ApLCAleW1tMCwgJXlt
bTAKK3ZwYWRkdyA1OTg0KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDg0NDgo
JXJzcCkKK3Ztb3ZkcWEgODQ4MCglcnNwKSwgJXltbTAKK3Zwc3VidyA4ODMyKCVyc3ApLCAleW1t
MCwgJXltbTAKK3Ztb3ZkcWEgNjM2OCglcnNwKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXltbTEs
ICV5bW0xCit2cHN1YncgOTE4NCglcnNwKSwgJXltbTEsICV5bW0xMAordnBzdWJ3IDgxMjgoJXJz
cCksICV5bW0wLCAleW1tMAordnBhZGR3IDYwMTYoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRx
YSAleW1tMCwgODQ4MCglcnNwKQordm1vdmRxYSA4NTEyKCVyc3ApLCAleW1tMAordnBzdWJ3IDg4
NjQoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSA2NDAwKCVyc3ApLCAleW1tMQordnBzdWJ3
ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA5MjE2KCVyc3ApLCAleW1tMSwgJXltbTExCit2
cHN1YncgODE2MCglcnNwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNjA0OCglcnNwKSwgJXltbTAs
ICV5bW0wCit2bW92ZHFhICV5bW0wLCA4NTEyKCVyc3ApCit2bW92ZHFhIDg1NDQoJXJzcCksICV5
bW0wCit2cHN1YncgODg5NiglcnNwKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDY0MzIoJXJzcCks
ICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDkyNDgoJXJzcCksICV5
bW0xLCAleW1tMTIKK3Zwc3VidyA4MTkyKCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA2MDgw
KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDg1NDQoJXJzcCkKK3Ztb3ZkcWEg
ODU3NiglcnNwKSwgJXltbTAKK3Zwc3VidyA4OTI4KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3Zk
cWEgNjQ2NCglcnNwKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1Yncg
OTI4MCglcnNwKSwgJXltbTEsICV5bW0xMwordnBzdWJ3IDgyMjQoJXJzcCksICV5bW0wLCAleW1t
MAordnBhZGR3IDYxMTIoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgODU3Nigl
cnNwKQordm1vdmRxYSA4NjA4KCVyc3ApLCAleW1tMAordnBzdWJ3IDg5NjAoJXJzcCksICV5bW0w
LCAleW1tMAordm1vdmRxYSA2NDk2KCVyc3ApLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwg
JXltbTEKK3Zwc3VidyA5MzEyKCVyc3ApLCAleW1tMSwgJXltbTE0Cit2cHN1YncgODI1NiglcnNw
KSwgJXltbTAsICV5bW0wCit2cGFkZHcgNjE0NCglcnNwKSwgJXltbTAsICV5bW0wCit2bW92ZHFh
ICV5bW0wLCA4NjA4KCVyc3ApCit2bW92ZHFhIDg2NDAoJXJzcCksICV5bW0wCit2cHN1YncgODk5
MiglcnNwKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDY1MjgoJXJzcCksICV5bW0xCit2cHN1Yncg
JXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDkzNDQoJXJzcCksICV5bW0xLCAleW1tMTUKK3Zw
c3VidyA4Mjg4KCVyc3ApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA2MTc2KCVyc3ApLCAleW1tMCwg
JXltbTAKK3Ztb3ZkcWEgJXltbTAsIDg2NDAoJXJzcCkKK3Ztb3ZkcWEgNjIwOCglcnNwKSwgJXlt
bTAKK3Zwc3VidyA4MzIwKCVyc3ApLCAleW1tMCwgJXltbTAKK3Zwc3VidyA5MDI0KCVyc3ApLCAl
eW1tMCwgJXltbTAKK3Zwc3VidyAzNDg4KCVyMTApLCAleW1tMCwgJXltbTAKK3Zwc3VidyA0ODk2
KCVyMTApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDQxOTIoJXIxMCkKK3Ztb3ZkcWEg
MzUyMCglcjEwKSwgJXltbTAKK3Zwc3VidyA0MjI0KCVyMTApLCAleW1tMCwgJXltbTAKK3Zwc3Vi
dyAleW1tMCwgJXltbTYsICV5bW02Cit2cHN1YncgNDkyOCglcjEwKSwgJXltbTYsICV5bW02Cit2
cHN1YncgMjgxNiglcjEwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgODAwMCglcnNwKSwgJXltbTAs
ICV5bW0wCit2bW92ZHFhICV5bW0wLCAzNTIwKCVyMTApCit2bW92ZHFhICV5bW02LCA0MjI0KCVy
MTApCit2bW92ZHFhIDM1NTIoJXIxMCksICV5bW0wCit2cHN1YncgNDI1NiglcjEwKSwgJXltbTAs
ICV5bW0wCit2cHN1YncgJXltbTAsICV5bW03LCAleW1tNwordnBzdWJ3IDQ5NjAoJXIxMCksICV5
bW03LCAleW1tNwordnBzdWJ3IDI4NDgoJXIxMCksICV5bW0wLCAleW1tMAordnBhZGR3IDgwMzIo
JXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzU1MiglcjEwKQordm1vdmRxYSAl
eW1tNywgNDI1NiglcjEwKQordm1vdmRxYSAzNTg0KCVyMTApLCAleW1tMAordnBzdWJ3IDQyODgo
JXIxMCksICV5bW0wLCAleW1tMAordnBzdWJ3ICV5bW0wLCAleW1tOCwgJXltbTgKK3Zwc3VidyA0
OTkyKCVyMTApLCAleW1tOCwgJXltbTgKK3Zwc3VidyAyODgwKCVyMTApLCAleW1tMCwgJXltbTAK
K3ZwYWRkdyA4MDY0KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM1ODQoJXIx
MCkKK3Ztb3ZkcWEgJXltbTgsIDQyODgoJXIxMCkKK3Ztb3ZkcWEgMzYxNiglcjEwKSwgJXltbTAK
K3Zwc3VidyA0MzIwKCVyMTApLCAleW1tMCwgJXltbTAKK3Zwc3VidyAleW1tMCwgJXltbTksICV5
bW05Cit2cHN1YncgNTAyNCglcjEwKSwgJXltbTksICV5bW05Cit2cHN1YncgMjkxMiglcjEwKSwg
JXltbTAsICV5bW0wCit2cGFkZHcgODA5NiglcnNwKSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5
bW0wLCAzNjE2KCVyMTApCit2bW92ZHFhICV5bW05LCA0MzIwKCVyMTApCit2bW92ZHFhIDM2NDgo
JXIxMCksICV5bW0wCit2cHN1YncgNDM1MiglcjEwKSwgJXltbTAsICV5bW0wCit2cHN1YncgJXlt
bTAsICV5bW0xMCwgJXltbTEwCit2cHN1YncgNTA1NiglcjEwKSwgJXltbTEwLCAleW1tMTAKK3Zw
c3VidyAyOTQ0KCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4MTI4KCVyc3ApLCAleW1tMCwg
JXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM2NDgoJXIxMCkKK3Ztb3ZkcWEgJXltbTEwLCA0MzUyKCVy
MTApCit2bW92ZHFhIDM2ODAoJXIxMCksICV5bW0wCit2cHN1YncgNDM4NCglcjEwKSwgJXltbTAs
ICV5bW0wCit2cHN1YncgJXltbTAsICV5bW0xMSwgJXltbTExCit2cHN1YncgNTA4OCglcjEwKSwg
JXltbTExLCAleW1tMTEKK3Zwc3VidyAyOTc2KCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4
MTYwKCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM2ODAoJXIxMCkKK3Ztb3Zk
cWEgJXltbTExLCA0Mzg0KCVyMTApCit2bW92ZHFhIDM3MTIoJXIxMCksICV5bW0wCit2cHN1Yncg
NDQxNiglcjEwKSwgJXltbTAsICV5bW0wCit2cHN1YncgJXltbTAsICV5bW0xMiwgJXltbTEyCit2
cHN1YncgNTEyMCglcjEwKSwgJXltbTEyLCAleW1tMTIKK3Zwc3VidyAzMDA4KCVyMTApLCAleW1t
MCwgJXltbTAKK3ZwYWRkdyA4MTkyKCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAs
IDM3MTIoJXIxMCkKK3Ztb3ZkcWEgJXltbTEyLCA0NDE2KCVyMTApCit2bW92ZHFhIDM3NDQoJXIx
MCksICV5bW0wCit2cHN1YncgNDQ0OCglcjEwKSwgJXltbTAsICV5bW0wCit2cHN1YncgJXltbTAs
ICV5bW0xMywgJXltbTEzCit2cHN1YncgNTE1MiglcjEwKSwgJXltbTEzLCAleW1tMTMKK3Zwc3Vi
dyAzMDQwKCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4MjI0KCVyc3ApLCAleW1tMCwgJXlt
bTAKK3Ztb3ZkcWEgJXltbTAsIDM3NDQoJXIxMCkKK3Ztb3ZkcWEgJXltbTEzLCA0NDQ4KCVyMTAp
Cit2bW92ZHFhIDM3NzYoJXIxMCksICV5bW0wCit2cHN1YncgNDQ4MCglcjEwKSwgJXltbTAsICV5
bW0wCit2cHN1YncgJXltbTAsICV5bW0xNCwgJXltbTE0Cit2cHN1YncgNTE4NCglcjEwKSwgJXlt
bTE0LCAleW1tMTQKK3Zwc3VidyAzMDcyKCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4MjU2
KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM3NzYoJXIxMCkKK3Ztb3ZkcWEg
JXltbTE0LCA0NDgwKCVyMTApCit2bW92ZHFhIDM4MDgoJXIxMCksICV5bW0wCit2cHN1YncgNDUx
MiglcjEwKSwgJXltbTAsICV5bW0wCit2cHN1YncgJXltbTAsICV5bW0xNSwgJXltbTE1Cit2cHN1
YncgNTIxNiglcjEwKSwgJXltbTE1LCAleW1tMTUKK3Zwc3VidyAzMTA0KCVyMTApLCAleW1tMCwg
JXltbTAKK3ZwYWRkdyA4Mjg4KCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM4
MDgoJXIxMCkKK3Ztb3ZkcWEgJXltbTE1LCA0NTEyKCVyMTApCit2bW92ZHFhIDM4NDAoJXIxMCks
ICV5bW0wCit2cHN1YncgNDU0NCglcjEwKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDkwMjQoJXJz
cCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDUyNDgoJXIxMCks
ICV5bW0xLCAleW1tMQordnBzdWJ3IDMxMzYoJXIxMCksICV5bW0wLCAleW1tMAordnBhZGR3IDgz
MjAoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzg0MCglcjEwKQordm1vdmRx
YSAleW1tMSwgNDU0NCglcjEwKQordm1vdmRxYSAzODcyKCVyMTApLCAleW1tMAordnBzdWJ3IDQ1
NzYoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRxYSA5MDU2KCVyc3ApLCAleW1tMQordnBzdWJ3
ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA1MjgwKCVyMTApLCAleW1tMSwgJXltbTEKK3Zw
c3VidyAzMTY4KCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4MzUyKCVyc3ApLCAleW1tMCwg
JXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM4NzIoJXIxMCkKK3Ztb3ZkcWEgJXltbTEsIDQ1NzYoJXIx
MCkKK3Ztb3ZkcWEgMzkwNCglcjEwKSwgJXltbTAKK3Zwc3VidyA0NjA4KCVyMTApLCAleW1tMCwg
JXltbTAKK3Ztb3ZkcWEgOTA4OCglcnNwKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXltbTEsICV5
bW0xCit2cHN1YncgNTMxMiglcjEwKSwgJXltbTEsICV5bW0xCit2cHN1YncgMzIwMCglcjEwKSwg
JXltbTAsICV5bW0wCit2cGFkZHcgODM4NCglcnNwKSwgJXltbTAsICV5bW0wCit2bW92ZHFhICV5
bW0wLCAzOTA0KCVyMTApCit2bW92ZHFhICV5bW0xLCA0NjA4KCVyMTApCit2bW92ZHFhIDM5MzYo
JXIxMCksICV5bW0wCit2cHN1YncgNDY0MCglcjEwKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDkx
MjAoJXJzcCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDUzNDQo
JXIxMCksICV5bW0xLCAleW1tMQordnBzdWJ3IDMyMzIoJXIxMCksICV5bW0wLCAleW1tMAordnBh
ZGR3IDg0MTYoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgMzkzNiglcjEwKQor
dm1vdmRxYSAleW1tMSwgNDY0MCglcjEwKQordm1vdmRxYSAzOTY4KCVyMTApLCAleW1tMAordnBz
dWJ3IDQ2NzIoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRxYSA5MTUyKCVyc3ApLCAleW1tMQor
dnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA1Mzc2KCVyMTApLCAleW1tMSwgJXlt
bTEKK3Zwc3VidyAzMjY0KCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4NDQ4KCVyc3ApLCAl
eW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDM5NjgoJXIxMCkKK3Ztb3ZkcWEgJXltbTEsIDQ2
NzIoJXIxMCkKK3Ztb3ZkcWEgNDAwMCglcjEwKSwgJXltbTAKK3Zwc3VidyA0NzA0KCVyMTApLCAl
eW1tMCwgJXltbTAKK3Ztb3ZkcWEgOTE4NCglcnNwKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXlt
bTEsICV5bW0xCit2cHN1YncgNTQwOCglcjEwKSwgJXltbTEsICV5bW0xCit2cHN1YncgMzI5Nigl
cjEwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgODQ4MCglcnNwKSwgJXltbTAsICV5bW0wCit2bW92
ZHFhICV5bW0wLCA0MDAwKCVyMTApCit2bW92ZHFhICV5bW0xLCA0NzA0KCVyMTApCit2bW92ZHFh
IDQwMzIoJXIxMCksICV5bW0wCit2cHN1YncgNDczNiglcjEwKSwgJXltbTAsICV5bW0wCit2bW92
ZHFhIDkyMTYoJXJzcCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3
IDU0NDAoJXIxMCksICV5bW0xLCAleW1tMQordnBzdWJ3IDMzMjgoJXIxMCksICV5bW0wLCAleW1t
MAordnBhZGR3IDg1MTIoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwgNDAzMigl
cjEwKQordm1vdmRxYSAleW1tMSwgNDczNiglcjEwKQordm1vdmRxYSA0MDY0KCVyMTApLCAleW1t
MAordnBzdWJ3IDQ3NjgoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRxYSA5MjQ4KCVyc3ApLCAl
eW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA1NDcyKCVyMTApLCAleW1t
MSwgJXltbTEKK3Zwc3VidyAzMzYwKCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4NTQ0KCVy
c3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDQwNjQoJXIxMCkKK3Ztb3ZkcWEgJXlt
bTEsIDQ3NjgoJXIxMCkKK3Ztb3ZkcWEgNDA5NiglcjEwKSwgJXltbTAKK3Zwc3VidyA0ODAwKCVy
MTApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgOTI4MCglcnNwKSwgJXltbTEKK3Zwc3VidyAleW1t
MCwgJXltbTEsICV5bW0xCit2cHN1YncgNTUwNCglcjEwKSwgJXltbTEsICV5bW0xCit2cHN1Yncg
MzM5MiglcjEwKSwgJXltbTAsICV5bW0wCit2cGFkZHcgODU3NiglcnNwKSwgJXltbTAsICV5bW0w
Cit2bW92ZHFhICV5bW0wLCA0MDk2KCVyMTApCit2bW92ZHFhICV5bW0xLCA0ODAwKCVyMTApCit2
bW92ZHFhIDQxMjgoJXIxMCksICV5bW0wCit2cHN1YncgNDgzMiglcjEwKSwgJXltbTAsICV5bW0w
Cit2bW92ZHFhIDkzMTIoJXJzcCksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQor
dnBzdWJ3IDU1MzYoJXIxMCksICV5bW0xLCAleW1tMQordnBzdWJ3IDM0MjQoJXIxMCksICV5bW0w
LCAleW1tMAordnBhZGR3IDg2MDgoJXJzcCksICV5bW0wLCAleW1tMAordm1vdmRxYSAleW1tMCwg
NDEyOCglcjEwKQordm1vdmRxYSAleW1tMSwgNDgzMiglcjEwKQordm1vdmRxYSA0MTYwKCVyMTAp
LCAleW1tMAordnBzdWJ3IDQ4NjQoJXIxMCksICV5bW0wLCAleW1tMAordm1vdmRxYSA5MzQ0KCVy
c3ApLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA1NTY4KCVyMTAp
LCAleW1tMSwgJXltbTEKK3Zwc3VidyAzNDU2KCVyMTApLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA4
NjQwKCVyc3ApLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDQxNjAoJXIxMCkKK3Ztb3Zk
cWEgJXltbTEsIDQ4NjQoJXIxMCkKK3ZweG9yICV5bW0xLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEg
JXltbTEsIDU2MDAoJXIxMCkKK3N1YnEgJDMyLCAlcnNwCit2bW92ZHFhIDI4MTYoJXIxMCksICV5
bW0wCit2bW92ZHFhIDI4ODAoJXIxMCksICV5bW0xCit2bW92ZHFhIDI5NDQoJXIxMCksICV5bW0y
Cit2bW92ZHFhIDMwMDgoJXIxMCksICV5bW0zCit2cHVucGNrbHdkIDI4NDgoJXIxMCksICV5bW0w
LCAleW1tNAordnB1bnBja2h3ZCAyODQ4KCVyMTApLCAleW1tMCwgJXltbTUKK3ZwdW5wY2tsd2Qg
MjkxMiglcjEwKSwgJXltbTEsICV5bW02Cit2cHVucGNraHdkIDI5MTIoJXIxMCksICV5bW0xLCAl
eW1tNwordnB1bnBja2x3ZCAyOTc2KCVyMTApLCAleW1tMiwgJXltbTgKK3ZwdW5wY2tod2QgMjk3
NiglcjEwKSwgJXltbTIsICV5bW05Cit2cHVucGNrbHdkIDMwNDAoJXIxMCksICV5bW0zLCAleW1t
MTAKK3ZwdW5wY2tod2QgMzA0MCglcjEwKSwgJXltbTMsICV5bW0xMQordnB1bnBja2xkcSAleW1t
NiwgJXltbTQsICV5bW0wCit2cHVucGNraGRxICV5bW02LCAleW1tNCwgJXltbTEKK3ZwdW5wY2ts
ZHEgJXltbTcsICV5bW01LCAleW1tMgordnB1bnBja2hkcSAleW1tNywgJXltbTUsICV5bW0zCit2
cHVucGNrbGRxICV5bW0xMCwgJXltbTgsICV5bW0xMgordnB1bnBja2hkcSAleW1tMTAsICV5bW04
LCAleW1tMTMKK3ZwdW5wY2tsZHEgJXltbTExLCAleW1tOSwgJXltbTE0Cit2cHVucGNraGRxICV5
bW0xMSwgJXltbTksICV5bW0xNQordnB1bnBja2xxZHEgJXltbTEyLCAleW1tMCwgJXltbTQKK3Zw
dW5wY2tocWRxICV5bW0xMiwgJXltbTAsICV5bW01Cit2cHVucGNrbHFkcSAleW1tMTMsICV5bW0x
LCAleW1tNgordnB1bnBja2hxZHEgJXltbTEzLCAleW1tMSwgJXltbTcKK3ZwdW5wY2tscWRxICV5
bW0xNCwgJXltbTIsICV5bW04Cit2cHVucGNraHFkcSAleW1tMTQsICV5bW0yLCAleW1tOQordnB1
bnBja2xxZHEgJXltbTE1LCAleW1tMywgJXltbTEwCit2cHVucGNraHFkcSAleW1tMTUsICV5bW0z
LCAleW1tMTEKK3Ztb3ZkcWEgMzA3MiglcjEwKSwgJXltbTAKK3Ztb3ZkcWEgMzEzNiglcjEwKSwg
JXltbTEKK3Ztb3ZkcWEgMzIwMCglcjEwKSwgJXltbTIKK3Ztb3ZkcWEgMzI2NCglcjEwKSwgJXlt
bTMKK3ZwdW5wY2tsd2QgMzEwNCglcjEwKSwgJXltbTAsICV5bW0xMgordnB1bnBja2h3ZCAzMTA0
KCVyMTApLCAleW1tMCwgJXltbTEzCit2cHVucGNrbHdkIDMxNjgoJXIxMCksICV5bW0xLCAleW1t
MTQKK3ZwdW5wY2tod2QgMzE2OCglcjEwKSwgJXltbTEsICV5bW0xNQordnB1bnBja2x3ZCAzMjMy
KCVyMTApLCAleW1tMiwgJXltbTAKK3ZwdW5wY2tod2QgMzIzMiglcjEwKSwgJXltbTIsICV5bW0x
Cit2cHVucGNrbHdkIDMyOTYoJXIxMCksICV5bW0zLCAleW1tMgordnB1bnBja2h3ZCAzMjk2KCVy
MTApLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEgJXltbTExLCAwKCVyc3ApCit2cHVucGNrbGRxICV5
bW0xNCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2toZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMgor
dnB1bnBja2xkcSAleW1tMTUsICV5bW0xMywgJXltbTE0Cit2cHVucGNraGRxICV5bW0xNSwgJXlt
bTEzLCAleW1tMTUKK3ZwdW5wY2tsZHEgJXltbTIsICV5bW0wLCAleW1tMTMKK3ZwdW5wY2toZHEg
JXltbTIsICV5bW0wLCAleW1tMAordnB1bnBja2xkcSAleW1tMywgJXltbTEsICV5bW0yCit2cHVu
cGNraGRxICV5bW0zLCAleW1tMSwgJXltbTEKK3ZwdW5wY2tscWRxICV5bW0xMywgJXltbTExLCAl
eW1tMwordnB1bnBja2hxZHEgJXltbTEzLCAleW1tMTEsICV5bW0xMwordnB1bnBja2xxZHEgJXlt
bTAsICV5bW0xMiwgJXltbTExCit2cHVucGNraHFkcSAleW1tMCwgJXltbTEyLCAleW1tMAordnB1
bnBja2xxZHEgJXltbTIsICV5bW0xNCwgJXltbTEyCit2cHVucGNraHFkcSAleW1tMiwgJXltbTE0
LCAleW1tMgordnB1bnBja2xxZHEgJXltbTEsICV5bW0xNSwgJXltbTE0Cit2cHVucGNraHFkcSAl
eW1tMSwgJXltbTE1LCAleW1tMQordmluc2VydGkxMjggJDEsICV4bW0zLCAleW1tNCwgJXltbTE1
Cit2bW92ZHFhICV5bW0xNSwgMCglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0xMywgJXltbTUs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE5MiglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0x
MSwgJXltbTYsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDM4NCglcjEyKQordmluc2VydGkxMjgg
JDEsICV4bW0wLCAleW1tNywgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgNTc2KCVyMTIpCit2aW5z
ZXJ0aTEyOCAkMSwgJXhtbTEyLCAleW1tOCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgNzY4KCVy
MTIpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTIsICV5bW05LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1
LCA5NjAoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTQsICV5bW0xMCwgJXltbTE1Cit2bW92
ZHFhICV5bW0xNSwgMTE1MiglcjEyKQordnBlcm1xICQ3OCwgJXltbTQsICV5bW00Cit2cGVybXEg
JDc4LCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkNzgsICV5bW02LCAleW1tNgordnBlcm1xICQ3OCwg
JXltbTcsICV5bW03Cit2cGVybXEgJDc4LCAleW1tOCwgJXltbTgKK3ZwZXJtcSAkNzgsICV5bW05
LCAleW1tOQordnBlcm1xICQ3OCwgJXltbTEwLCAleW1tMTAKK3ZpbnNlcnRpMTI4ICQwLCAleG1t
NCwgJXltbTMsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE1MzYoJXIxMikKK3ZpbnNlcnRpMTI4
ICQwLCAleG1tNSwgJXltbTEzLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxNzI4KCVyMTIpCit2
aW5zZXJ0aTEyOCAkMCwgJXhtbTYsICV5bW0xMSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTky
MCglcjEyKQordmluc2VydGkxMjggJDAsICV4bW03LCAleW1tMCwgJXltbTE1Cit2bW92ZHFhICV5
bW0xNSwgMjExMiglcjEyKQordmluc2VydGkxMjggJDAsICV4bW04LCAleW1tMTIsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDIzMDQoJXIxMikKK3ZpbnNlcnRpMTI4ICQwLCAleG1tOSwgJXltbTIs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDI0OTYoJXIxMikKK3ZpbnNlcnRpMTI4ICQwLCAleG1t
MTAsICV5bW0xNCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjY4OCglcjEyKQordm1vdmRxYSAw
KCVyc3ApLCAleW1tMTEKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMSwgJXltbTExLCAleW1tMTQKK3Zt
b3ZkcWEgJXltbTE0LCAxMzQ0KCVyMTIpCit2cGVybXEgJDc4LCAleW1tMTEsICV5bW0xMQordmlu
c2VydGkxMjggJDAsICV4bW0xMSwgJXltbTEsICV5bW0xCit2bW92ZHFhICV5bW0xLCAyODgwKCVy
MTIpCit2bW92ZHFhIDMzMjgoJXIxMCksICV5bW0wCit2bW92ZHFhIDMzOTIoJXIxMCksICV5bW0x
Cit2bW92ZHFhIDM0NTYoJXIxMCksICV5bW0yCit2bW92ZHFhIDM1MjAoJXIxMCksICV5bW0zCit2
cHVucGNrbHdkIDMzNjAoJXIxMCksICV5bW0wLCAleW1tNAordnB1bnBja2h3ZCAzMzYwKCVyMTAp
LCAleW1tMCwgJXltbTUKK3ZwdW5wY2tsd2QgMzQyNCglcjEwKSwgJXltbTEsICV5bW02Cit2cHVu
cGNraHdkIDM0MjQoJXIxMCksICV5bW0xLCAleW1tNwordnB1bnBja2x3ZCAzNDg4KCVyMTApLCAl
eW1tMiwgJXltbTgKK3ZwdW5wY2tod2QgMzQ4OCglcjEwKSwgJXltbTIsICV5bW05Cit2cHVucGNr
bHdkIDM1NTIoJXIxMCksICV5bW0zLCAleW1tMTAKK3ZwdW5wY2tod2QgMzU1MiglcjEwKSwgJXlt
bTMsICV5bW0xMQordnB1bnBja2xkcSAleW1tNiwgJXltbTQsICV5bW0wCit2cHVucGNraGRxICV5
bW02LCAleW1tNCwgJXltbTEKK3ZwdW5wY2tsZHEgJXltbTcsICV5bW01LCAleW1tMgordnB1bnBj
a2hkcSAleW1tNywgJXltbTUsICV5bW0zCit2cHVucGNrbGRxICV5bW0xMCwgJXltbTgsICV5bW0x
MgordnB1bnBja2hkcSAleW1tMTAsICV5bW04LCAleW1tMTMKK3ZwdW5wY2tsZHEgJXltbTExLCAl
eW1tOSwgJXltbTE0Cit2cHVucGNraGRxICV5bW0xMSwgJXltbTksICV5bW0xNQordnB1bnBja2xx
ZHEgJXltbTEyLCAleW1tMCwgJXltbTQKK3ZwdW5wY2tocWRxICV5bW0xMiwgJXltbTAsICV5bW01
Cit2cHVucGNrbHFkcSAleW1tMTMsICV5bW0xLCAleW1tNgordnB1bnBja2hxZHEgJXltbTEzLCAl
eW1tMSwgJXltbTcKK3ZwdW5wY2tscWRxICV5bW0xNCwgJXltbTIsICV5bW04Cit2cHVucGNraHFk
cSAleW1tMTQsICV5bW0yLCAleW1tOQordnB1bnBja2xxZHEgJXltbTE1LCAleW1tMywgJXltbTEw
Cit2cHVucGNraHFkcSAleW1tMTUsICV5bW0zLCAleW1tMTEKK3Ztb3ZkcWEgMzU4NCglcjEwKSwg
JXltbTAKK3Ztb3ZkcWEgMzY0OCglcjEwKSwgJXltbTEKK3Ztb3ZkcWEgMzcxMiglcjEwKSwgJXlt
bTIKK3Ztb3ZkcWEgMzc3NiglcjEwKSwgJXltbTMKK3ZwdW5wY2tsd2QgMzYxNiglcjEwKSwgJXlt
bTAsICV5bW0xMgordnB1bnBja2h3ZCAzNjE2KCVyMTApLCAleW1tMCwgJXltbTEzCit2cHVucGNr
bHdkIDM2ODAoJXIxMCksICV5bW0xLCAleW1tMTQKK3ZwdW5wY2tod2QgMzY4MCglcjEwKSwgJXlt
bTEsICV5bW0xNQordnB1bnBja2x3ZCAzNzQ0KCVyMTApLCAleW1tMiwgJXltbTAKK3ZwdW5wY2to
d2QgMzc0NCglcjEwKSwgJXltbTIsICV5bW0xCit2cHVucGNrbHdkIDM4MDgoJXIxMCksICV5bW0z
LCAleW1tMgordnB1bnBja2h3ZCAzODA4KCVyMTApLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEgJXlt
bTExLCAwKCVyc3ApCit2cHVucGNrbGRxICV5bW0xNCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2to
ZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMgordnB1bnBja2xkcSAleW1tMTUsICV5bW0xMywgJXlt
bTE0Cit2cHVucGNraGRxICV5bW0xNSwgJXltbTEzLCAleW1tMTUKK3ZwdW5wY2tsZHEgJXltbTIs
ICV5bW0wLCAleW1tMTMKK3ZwdW5wY2toZHEgJXltbTIsICV5bW0wLCAleW1tMAordnB1bnBja2xk
cSAleW1tMywgJXltbTEsICV5bW0yCit2cHVucGNraGRxICV5bW0zLCAleW1tMSwgJXltbTEKK3Zw
dW5wY2tscWRxICV5bW0xMywgJXltbTExLCAleW1tMwordnB1bnBja2hxZHEgJXltbTEzLCAleW1t
MTEsICV5bW0xMwordnB1bnBja2xxZHEgJXltbTAsICV5bW0xMiwgJXltbTExCit2cHVucGNraHFk
cSAleW1tMCwgJXltbTEyLCAleW1tMAordnB1bnBja2xxZHEgJXltbTIsICV5bW0xNCwgJXltbTEy
Cit2cHVucGNraHFkcSAleW1tMiwgJXltbTE0LCAleW1tMgordnB1bnBja2xxZHEgJXltbTEsICV5
bW0xNSwgJXltbTE0Cit2cHVucGNraHFkcSAleW1tMSwgJXltbTE1LCAleW1tMQordmluc2VydGkx
MjggJDEsICV4bW0zLCAleW1tNCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMzIoJXIxMikKK3Zp
bnNlcnRpMTI4ICQxLCAleG1tMTMsICV5bW01LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyMjQo
JXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTEsICV5bW02LCAleW1tMTUKK3Ztb3ZkcWEgJXlt
bTE1LCA0MTYoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQordm1v
dmRxYSAleW1tMTUsIDYwOCglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0xMiwgJXltbTgsICV5
bW0xNQordm1vdmRxYSAleW1tMTUsIDgwMCglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0yLCAl
eW1tOSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgOTkyKCVyMTIpCit2aW5zZXJ0aTEyOCAkMSwg
JXhtbTE0LCAleW1tMTAsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDExODQoJXIxMikKK3ZwZXJt
cSAkNzgsICV5bW00LCAleW1tNAordnBlcm1xICQ3OCwgJXltbTUsICV5bW01Cit2cGVybXEgJDc4
LCAleW1tNiwgJXltbTYKK3ZwZXJtcSAkNzgsICV5bW03LCAleW1tNwordnBlcm1xICQ3OCwgJXlt
bTgsICV5bW04Cit2cGVybXEgJDc4LCAleW1tOSwgJXltbTkKK3ZwZXJtcSAkNzgsICV5bW0xMCwg
JXltbTEwCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTQsICV5bW0zLCAleW1tMTUKK3Ztb3ZkcWEgJXlt
bTE1LCAxNTY4KCVyMTIpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTUsICV5bW0xMywgJXltbTE1Cit2
bW92ZHFhICV5bW0xNSwgMTc2MCglcjEyKQordmluc2VydGkxMjggJDAsICV4bW02LCAleW1tMTEs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE5NTIoJXIxMikKK3ZpbnNlcnRpMTI4ICQwLCAleG1t
NywgJXltbTAsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDIxNDQoJXIxMikKK3ZpbnNlcnRpMTI4
ICQwLCAleG1tOCwgJXltbTEyLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyMzM2KCVyMTIpCit2
aW5zZXJ0aTEyOCAkMCwgJXhtbTksICV5bW0yLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyNTI4
KCVyMTIpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTEwLCAleW1tMTQsICV5bW0xNQordm1vdmRxYSAl
eW1tMTUsIDI3MjAoJXIxMikKK3Ztb3ZkcWEgMCglcnNwKSwgJXltbTExCit2aW5zZXJ0aTEyOCAk
MSwgJXhtbTEsICV5bW0xMSwgJXltbTE0Cit2bW92ZHFhICV5bW0xNCwgMTM3NiglcjEyKQordnBl
cm1xICQ3OCwgJXltbTExLCAleW1tMTEKK3ZpbnNlcnRpMTI4ICQwLCAleG1tMTEsICV5bW0xLCAl
eW1tMQordm1vdmRxYSAleW1tMSwgMjkxMiglcjEyKQordm1vdmRxYSAzODQwKCVyMTApLCAleW1t
MAordm1vdmRxYSAzOTA0KCVyMTApLCAleW1tMQordm1vdmRxYSAzOTY4KCVyMTApLCAleW1tMgor
dm1vdmRxYSA0MDMyKCVyMTApLCAleW1tMwordnB1bnBja2x3ZCAzODcyKCVyMTApLCAleW1tMCwg
JXltbTQKK3ZwdW5wY2tod2QgMzg3MiglcjEwKSwgJXltbTAsICV5bW01Cit2cHVucGNrbHdkIDM5
MzYoJXIxMCksICV5bW0xLCAleW1tNgordnB1bnBja2h3ZCAzOTM2KCVyMTApLCAleW1tMSwgJXlt
bTcKK3ZwdW5wY2tsd2QgNDAwMCglcjEwKSwgJXltbTIsICV5bW04Cit2cHVucGNraHdkIDQwMDAo
JXIxMCksICV5bW0yLCAleW1tOQordnB1bnBja2x3ZCA0MDY0KCVyMTApLCAleW1tMywgJXltbTEw
Cit2cHVucGNraHdkIDQwNjQoJXIxMCksICV5bW0zLCAleW1tMTEKK3ZwdW5wY2tsZHEgJXltbTYs
ICV5bW00LCAleW1tMAordnB1bnBja2hkcSAleW1tNiwgJXltbTQsICV5bW0xCit2cHVucGNrbGRx
ICV5bW03LCAleW1tNSwgJXltbTIKK3ZwdW5wY2toZHEgJXltbTcsICV5bW01LCAleW1tMwordnB1
bnBja2xkcSAleW1tMTAsICV5bW04LCAleW1tMTIKK3ZwdW5wY2toZHEgJXltbTEwLCAleW1tOCwg
JXltbTEzCit2cHVucGNrbGRxICV5bW0xMSwgJXltbTksICV5bW0xNAordnB1bnBja2hkcSAleW1t
MTEsICV5bW05LCAleW1tMTUKK3ZwdW5wY2tscWRxICV5bW0xMiwgJXltbTAsICV5bW00Cit2cHVu
cGNraHFkcSAleW1tMTIsICV5bW0wLCAleW1tNQordnB1bnBja2xxZHEgJXltbTEzLCAleW1tMSwg
JXltbTYKK3ZwdW5wY2tocWRxICV5bW0xMywgJXltbTEsICV5bW03Cit2cHVucGNrbHFkcSAleW1t
MTQsICV5bW0yLCAleW1tOAordnB1bnBja2hxZHEgJXltbTE0LCAleW1tMiwgJXltbTkKK3ZwdW5w
Y2tscWRxICV5bW0xNSwgJXltbTMsICV5bW0xMAordnB1bnBja2hxZHEgJXltbTE1LCAleW1tMywg
JXltbTExCit2bW92ZHFhIDQwOTYoJXIxMCksICV5bW0wCit2bW92ZHFhIDQxNjAoJXIxMCksICV5
bW0xCit2bW92ZHFhIDQyMjQoJXIxMCksICV5bW0yCit2bW92ZHFhIDQyODgoJXIxMCksICV5bW0z
Cit2cHVucGNrbHdkIDQxMjgoJXIxMCksICV5bW0wLCAleW1tMTIKK3ZwdW5wY2tod2QgNDEyOCgl
cjEwKSwgJXltbTAsICV5bW0xMwordnB1bnBja2x3ZCA0MTkyKCVyMTApLCAleW1tMSwgJXltbTE0
Cit2cHVucGNraHdkIDQxOTIoJXIxMCksICV5bW0xLCAleW1tMTUKK3ZwdW5wY2tsd2QgNDI1Nigl
cjEwKSwgJXltbTIsICV5bW0wCit2cHVucGNraHdkIDQyNTYoJXIxMCksICV5bW0yLCAleW1tMQor
dnB1bnBja2x3ZCA0MzIwKCVyMTApLCAleW1tMywgJXltbTIKK3ZwdW5wY2tod2QgNDMyMCglcjEw
KSwgJXltbTMsICV5bW0zCit2bW92ZHFhICV5bW0xMSwgMCglcnNwKQordnB1bnBja2xkcSAleW1t
MTQsICV5bW0xMiwgJXltbTExCit2cHVucGNraGRxICV5bW0xNCwgJXltbTEyLCAleW1tMTIKK3Zw
dW5wY2tsZHEgJXltbTE1LCAleW1tMTMsICV5bW0xNAordnB1bnBja2hkcSAleW1tMTUsICV5bW0x
MywgJXltbTE1Cit2cHVucGNrbGRxICV5bW0yLCAleW1tMCwgJXltbTEzCit2cHVucGNraGRxICV5
bW0yLCAleW1tMCwgJXltbTAKK3ZwdW5wY2tsZHEgJXltbTMsICV5bW0xLCAleW1tMgordnB1bnBj
a2hkcSAleW1tMywgJXltbTEsICV5bW0xCit2cHVucGNrbHFkcSAleW1tMTMsICV5bW0xMSwgJXlt
bTMKK3ZwdW5wY2tocWRxICV5bW0xMywgJXltbTExLCAleW1tMTMKK3ZwdW5wY2tscWRxICV5bW0w
LCAleW1tMTIsICV5bW0xMQordnB1bnBja2hxZHEgJXltbTAsICV5bW0xMiwgJXltbTAKK3ZwdW5w
Y2tscWRxICV5bW0yLCAleW1tMTQsICV5bW0xMgordnB1bnBja2hxZHEgJXltbTIsICV5bW0xNCwg
JXltbTIKK3ZwdW5wY2tscWRxICV5bW0xLCAleW1tMTUsICV5bW0xNAordnB1bnBja2hxZHEgJXlt
bTEsICV5bW0xNSwgJXltbTEKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMywgJXltbTQsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDY0KCVyMTIpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTEzLCAleW1tNSwg
JXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjU2KCVyMTIpCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTEx
LCAleW1tNiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgNDQ4KCVyMTIpCit2aW5zZXJ0aTEyOCAk
MSwgJXhtbTAsICV5bW03LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA2NDAoJXIxMikKK3ZpbnNl
cnRpMTI4ICQxLCAleG1tMTIsICV5bW04LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA4MzIoJXIx
MikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMiwgJXltbTksICV5bW0xNQordm1vdmRxYSAleW1tMTUs
IDEwMjQoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTQsICV5bW0xMCwgJXltbTE1Cit2bW92
ZHFhICV5bW0xNSwgMTIxNiglcjEyKQordnBlcm1xICQ3OCwgJXltbTQsICV5bW00Cit2cGVybXEg
JDc4LCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkNzgsICV5bW02LCAleW1tNgordnBlcm1xICQ3OCwg
JXltbTcsICV5bW03Cit2cGVybXEgJDc4LCAleW1tOCwgJXltbTgKK3ZwZXJtcSAkNzgsICV5bW05
LCAleW1tOQordnBlcm1xICQ3OCwgJXltbTEwLCAleW1tMTAKK3ZpbnNlcnRpMTI4ICQwLCAleG1t
NCwgJXltbTMsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE2MDAoJXIxMikKK3ZpbnNlcnRpMTI4
ICQwLCAleG1tNSwgJXltbTEzLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxNzkyKCVyMTIpCit2
aW5zZXJ0aTEyOCAkMCwgJXhtbTYsICV5bW0xMSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTk4
NCglcjEyKQordmluc2VydGkxMjggJDAsICV4bW03LCAleW1tMCwgJXltbTE1Cit2bW92ZHFhICV5
bW0xNSwgMjE3NiglcjEyKQordmluc2VydGkxMjggJDAsICV4bW04LCAleW1tMTIsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDIzNjgoJXIxMikKK3ZpbnNlcnRpMTI4ICQwLCAleG1tOSwgJXltbTIs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDI1NjAoJXIxMikKK3ZpbnNlcnRpMTI4ICQwLCAleG1t
MTAsICV5bW0xNCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjc1MiglcjEyKQordm1vdmRxYSAw
KCVyc3ApLCAleW1tMTEKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMSwgJXltbTExLCAleW1tMTQKK3Zt
b3ZkcWEgJXltbTE0LCAxNDA4KCVyMTIpCit2cGVybXEgJDc4LCAleW1tMTEsICV5bW0xMQordmlu
c2VydGkxMjggJDAsICV4bW0xMSwgJXltbTEsICV5bW0xCit2bW92ZHFhICV5bW0xLCAyOTQ0KCVy
MTIpCit2bW92ZHFhIDQyMjQoJXIxMCksICV5bW0wCit2bW92ZHFhIDQyODgoJXIxMCksICV5bW0x
Cit2bW92ZHFhIDQzNTIoJXIxMCksICV5bW0yCit2bW92ZHFhIDQ0MTYoJXIxMCksICV5bW0zCit2
cHVucGNrbHdkIDQyNTYoJXIxMCksICV5bW0wLCAleW1tNAordnB1bnBja2h3ZCA0MjU2KCVyMTAp
LCAleW1tMCwgJXltbTUKK3ZwdW5wY2tsd2QgNDMyMCglcjEwKSwgJXltbTEsICV5bW02Cit2cHVu
cGNraHdkIDQzMjAoJXIxMCksICV5bW0xLCAleW1tNwordnB1bnBja2x3ZCA0Mzg0KCVyMTApLCAl
eW1tMiwgJXltbTgKK3ZwdW5wY2tod2QgNDM4NCglcjEwKSwgJXltbTIsICV5bW05Cit2cHVucGNr
bHdkIDQ0NDgoJXIxMCksICV5bW0zLCAleW1tMTAKK3ZwdW5wY2tod2QgNDQ0OCglcjEwKSwgJXlt
bTMsICV5bW0xMQordnB1bnBja2xkcSAleW1tNiwgJXltbTQsICV5bW0wCit2cHVucGNraGRxICV5
bW02LCAleW1tNCwgJXltbTEKK3ZwdW5wY2tsZHEgJXltbTcsICV5bW01LCAleW1tMgordnB1bnBj
a2hkcSAleW1tNywgJXltbTUsICV5bW0zCit2cHVucGNrbGRxICV5bW0xMCwgJXltbTgsICV5bW0x
MgordnB1bnBja2hkcSAleW1tMTAsICV5bW04LCAleW1tMTMKK3ZwdW5wY2tsZHEgJXltbTExLCAl
eW1tOSwgJXltbTE0Cit2cHVucGNraGRxICV5bW0xMSwgJXltbTksICV5bW0xNQordnB1bnBja2xx
ZHEgJXltbTEyLCAleW1tMCwgJXltbTQKK3ZwdW5wY2tocWRxICV5bW0xMiwgJXltbTAsICV5bW01
Cit2cHVucGNrbHFkcSAleW1tMTMsICV5bW0xLCAleW1tNgordnB1bnBja2hxZHEgJXltbTEzLCAl
eW1tMSwgJXltbTcKK3ZwdW5wY2tscWRxICV5bW0xNCwgJXltbTIsICV5bW04Cit2cHVucGNraHFk
cSAleW1tMTQsICV5bW0yLCAleW1tOQordnB1bnBja2xxZHEgJXltbTE1LCAleW1tMywgJXltbTEw
Cit2cHVucGNraHFkcSAleW1tMTUsICV5bW0zLCAleW1tMTEKK3Ztb3ZkcWEgNDQ4MCglcjEwKSwg
JXltbTAKK3Ztb3ZkcWEgNDU0NCglcjEwKSwgJXltbTEKK3Ztb3ZkcWEgNDYwOCglcjEwKSwgJXlt
bTIKK3Ztb3ZkcWEgNDY3MiglcjEwKSwgJXltbTMKK3ZwdW5wY2tsd2QgNDUxMiglcjEwKSwgJXlt
bTAsICV5bW0xMgordnB1bnBja2h3ZCA0NTEyKCVyMTApLCAleW1tMCwgJXltbTEzCit2cHVucGNr
bHdkIDQ1NzYoJXIxMCksICV5bW0xLCAleW1tMTQKK3ZwdW5wY2tod2QgNDU3NiglcjEwKSwgJXlt
bTEsICV5bW0xNQordnB1bnBja2x3ZCA0NjQwKCVyMTApLCAleW1tMiwgJXltbTAKK3ZwdW5wY2to
d2QgNDY0MCglcjEwKSwgJXltbTIsICV5bW0xCit2cHVucGNrbHdkIDQ3MDQoJXIxMCksICV5bW0z
LCAleW1tMgordnB1bnBja2h3ZCA0NzA0KCVyMTApLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEgJXlt
bTExLCAwKCVyc3ApCit2cHVucGNrbGRxICV5bW0xNCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2to
ZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMgordnB1bnBja2xkcSAleW1tMTUsICV5bW0xMywgJXlt
bTE0Cit2cHVucGNraGRxICV5bW0xNSwgJXltbTEzLCAleW1tMTUKK3ZwdW5wY2tsZHEgJXltbTIs
ICV5bW0wLCAleW1tMTMKK3ZwdW5wY2toZHEgJXltbTIsICV5bW0wLCAleW1tMAordnB1bnBja2xk
cSAleW1tMywgJXltbTEsICV5bW0yCit2cHVucGNraGRxICV5bW0zLCAleW1tMSwgJXltbTEKK3Zw
dW5wY2tscWRxICV5bW0xMywgJXltbTExLCAleW1tMwordnB1bnBja2hxZHEgJXltbTEzLCAleW1t
MTEsICV5bW0xMwordnB1bnBja2xxZHEgJXltbTAsICV5bW0xMiwgJXltbTExCit2cHVucGNraHFk
cSAleW1tMCwgJXltbTEyLCAleW1tMAordnB1bnBja2xxZHEgJXltbTIsICV5bW0xNCwgJXltbTEy
Cit2cHVucGNraHFkcSAleW1tMiwgJXltbTE0LCAleW1tMgordnB1bnBja2xxZHEgJXltbTEsICV5
bW0xNSwgJXltbTE0Cit2cHVucGNraHFkcSAleW1tMSwgJXltbTE1LCAleW1tMQordmluc2VydGkx
MjggJDEsICV4bW0zLCAleW1tNCwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgOTYoJXIxMikKK3Zp
bnNlcnRpMTI4ICQxLCAleG1tMTMsICV5bW01LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyODgo
JXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTEsICV5bW02LCAleW1tMTUKK3Ztb3ZkcWEgJXlt
bTE1LCA0ODAoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQordm1v
dmRxYSAleW1tMTUsIDY3MiglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0xMiwgJXltbTgsICV5
bW0xNQordm1vdmRxYSAleW1tMTUsIDg2NCglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0yLCAl
eW1tOSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTA1NiglcjEyKQordmluc2VydGkxMjggJDEs
ICV4bW0xNCwgJXltbTEwLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxMjQ4KCVyMTIpCit2cGVy
bXEgJDc4LCAleW1tNCwgJXltbTQKK3ZwZXJtcSAkNzgsICV5bW01LCAleW1tNQordnBlcm1xICQ3
OCwgJXltbTYsICV5bW02Cit2cGVybXEgJDc4LCAleW1tNywgJXltbTcKK3ZwZXJtcSAkNzgsICV5
bW04LCAleW1tOAordnBlcm1xICQ3OCwgJXltbTksICV5bW05Cit2cGVybXEgJDc4LCAleW1tMTAs
ICV5bW0xMAordmluc2VydGkxMjggJDAsICV4bW00LCAleW1tMywgJXltbTE1Cit2bW92ZHFhICV5
bW0xNSwgMTYzMiglcjEyKQordmluc2VydGkxMjggJDAsICV4bW01LCAleW1tMTMsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDE4MjQoJXIxMikKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNiwgJXltbTEx
LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyMDE2KCVyMTIpCit2aW5zZXJ0aTEyOCAkMCwgJXht
bTcsICV5bW0wLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyMjA4KCVyMTIpCit2aW5zZXJ0aTEy
OCAkMCwgJXhtbTgsICV5bW0xMiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjQwMCglcjEyKQor
dmluc2VydGkxMjggJDAsICV4bW05LCAleW1tMiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjU5
MiglcjEyKQordmluc2VydGkxMjggJDAsICV4bW0xMCwgJXltbTE0LCAleW1tMTUKK3Ztb3ZkcWEg
JXltbTE1LCAyNzg0KCVyMTIpCit2bW92ZHFhIDAoJXJzcCksICV5bW0xMQordmluc2VydGkxMjgg
JDEsICV4bW0xLCAleW1tMTEsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDE0NDAoJXIxMikKK3Zw
ZXJtcSAkNzgsICV5bW0xMSwgJXltbTExCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTExLCAleW1tMSwg
JXltbTEKK3Ztb3ZkcWEgJXltbTEsIDI5NzYoJXIxMikKK3Ztb3ZkcWEgNDczNiglcjEwKSwgJXlt
bTAKK3Ztb3ZkcWEgNDgwMCglcjEwKSwgJXltbTEKK3Ztb3ZkcWEgNDg2NCglcjEwKSwgJXltbTIK
K3Ztb3ZkcWEgNDkyOCglcjEwKSwgJXltbTMKK3ZwdW5wY2tsd2QgNDc2OCglcjEwKSwgJXltbTAs
ICV5bW00Cit2cHVucGNraHdkIDQ3NjgoJXIxMCksICV5bW0wLCAleW1tNQordnB1bnBja2x3ZCA0
ODMyKCVyMTApLCAleW1tMSwgJXltbTYKK3ZwdW5wY2tod2QgNDgzMiglcjEwKSwgJXltbTEsICV5
bW03Cit2cHVucGNrbHdkIDQ4OTYoJXIxMCksICV5bW0yLCAleW1tOAordnB1bnBja2h3ZCA0ODk2
KCVyMTApLCAleW1tMiwgJXltbTkKK3ZwdW5wY2tsd2QgNDk2MCglcjEwKSwgJXltbTMsICV5bW0x
MAordnB1bnBja2h3ZCA0OTYwKCVyMTApLCAleW1tMywgJXltbTExCit2cHVucGNrbGRxICV5bW02
LCAleW1tNCwgJXltbTAKK3ZwdW5wY2toZHEgJXltbTYsICV5bW00LCAleW1tMQordnB1bnBja2xk
cSAleW1tNywgJXltbTUsICV5bW0yCit2cHVucGNraGRxICV5bW03LCAleW1tNSwgJXltbTMKK3Zw
dW5wY2tsZHEgJXltbTEwLCAleW1tOCwgJXltbTEyCit2cHVucGNraGRxICV5bW0xMCwgJXltbTgs
ICV5bW0xMwordnB1bnBja2xkcSAleW1tMTEsICV5bW05LCAleW1tMTQKK3ZwdW5wY2toZHEgJXlt
bTExLCAleW1tOSwgJXltbTE1Cit2cHVucGNrbHFkcSAleW1tMTIsICV5bW0wLCAleW1tNAordnB1
bnBja2hxZHEgJXltbTEyLCAleW1tMCwgJXltbTUKK3ZwdW5wY2tscWRxICV5bW0xMywgJXltbTEs
ICV5bW02Cit2cHVucGNraHFkcSAleW1tMTMsICV5bW0xLCAleW1tNwordnB1bnBja2xxZHEgJXlt
bTE0LCAleW1tMiwgJXltbTgKK3ZwdW5wY2tocWRxICV5bW0xNCwgJXltbTIsICV5bW05Cit2cHVu
cGNrbHFkcSAleW1tMTUsICV5bW0zLCAleW1tMTAKK3ZwdW5wY2tocWRxICV5bW0xNSwgJXltbTMs
ICV5bW0xMQordm1vdmRxYSA0OTkyKCVyMTApLCAleW1tMAordm1vdmRxYSA1MDU2KCVyMTApLCAl
eW1tMQordm1vdmRxYSA1MTIwKCVyMTApLCAleW1tMgordm1vdmRxYSA1MTg0KCVyMTApLCAleW1t
MwordnB1bnBja2x3ZCA1MDI0KCVyMTApLCAleW1tMCwgJXltbTEyCit2cHVucGNraHdkIDUwMjQo
JXIxMCksICV5bW0wLCAleW1tMTMKK3ZwdW5wY2tsd2QgNTA4OCglcjEwKSwgJXltbTEsICV5bW0x
NAordnB1bnBja2h3ZCA1MDg4KCVyMTApLCAleW1tMSwgJXltbTE1Cit2cHVucGNrbHdkIDUxNTIo
JXIxMCksICV5bW0yLCAleW1tMAordnB1bnBja2h3ZCA1MTUyKCVyMTApLCAleW1tMiwgJXltbTEK
K3ZwdW5wY2tsd2QgNTIxNiglcjEwKSwgJXltbTMsICV5bW0yCit2cHVucGNraHdkIDUyMTYoJXIx
MCksICV5bW0zLCAleW1tMwordm1vdmRxYSAleW1tMTEsIDAoJXJzcCkKK3ZwdW5wY2tsZHEgJXlt
bTE0LCAleW1tMTIsICV5bW0xMQordnB1bnBja2hkcSAleW1tMTQsICV5bW0xMiwgJXltbTEyCit2
cHVucGNrbGRxICV5bW0xNSwgJXltbTEzLCAleW1tMTQKK3ZwdW5wY2toZHEgJXltbTE1LCAleW1t
MTMsICV5bW0xNQordnB1bnBja2xkcSAleW1tMiwgJXltbTAsICV5bW0xMwordnB1bnBja2hkcSAl
eW1tMiwgJXltbTAsICV5bW0wCit2cHVucGNrbGRxICV5bW0zLCAleW1tMSwgJXltbTIKK3ZwdW5w
Y2toZHEgJXltbTMsICV5bW0xLCAleW1tMQordnB1bnBja2xxZHEgJXltbTEzLCAleW1tMTEsICV5
bW0zCit2cHVucGNraHFkcSAleW1tMTMsICV5bW0xMSwgJXltbTEzCit2cHVucGNrbHFkcSAleW1t
MCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2tocWRxICV5bW0wLCAleW1tMTIsICV5bW0wCit2cHVu
cGNrbHFkcSAleW1tMiwgJXltbTE0LCAleW1tMTIKK3ZwdW5wY2tocWRxICV5bW0yLCAleW1tMTQs
ICV5bW0yCit2cHVucGNrbHFkcSAleW1tMSwgJXltbTE1LCAleW1tMTQKK3ZwdW5wY2tocWRxICV5
bW0xLCAleW1tMTUsICV5bW0xCit2aW5zZXJ0aTEyOCAkMSwgJXhtbTMsICV5bW00LCAleW1tMTUK
K3Ztb3ZkcWEgJXltbTE1LCAxMjgoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTMsICV5bW01
LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAzMjAoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1t
MTEsICV5bW02LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCA1MTIoJXIxMikKK3ZpbnNlcnRpMTI4
ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDcwNCglcjEyKQordmlu
c2VydGkxMjggJDEsICV4bW0xMiwgJXltbTgsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDg5Nigl
cjEyKQordmluc2VydGkxMjggJDEsICV4bW0yLCAleW1tOSwgJXltbTE1Cit2bW92ZHFhICV5bW0x
NSwgMTA4OCglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0xNCwgJXltbTEwLCAleW1tMTUKK3Zt
b3ZkcWEgJXltbTE1LCAxMjgwKCVyMTIpCit2cGVybXEgJDc4LCAleW1tNCwgJXltbTQKK3ZwZXJt
cSAkNzgsICV5bW01LCAleW1tNQordnBlcm1xICQ3OCwgJXltbTYsICV5bW02Cit2cGVybXEgJDc4
LCAleW1tNywgJXltbTcKK3ZwZXJtcSAkNzgsICV5bW04LCAleW1tOAordnBlcm1xICQ3OCwgJXlt
bTksICV5bW05Cit2cGVybXEgJDc4LCAleW1tMTAsICV5bW0xMAordmluc2VydGkxMjggJDAsICV4
bW00LCAleW1tMywgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTY2NCglcjEyKQordmluc2VydGkx
MjggJDAsICV4bW01LCAleW1tMTMsICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDE4NTYoJXIxMikK
K3ZpbnNlcnRpMTI4ICQwLCAleG1tNiwgJXltbTExLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAy
MDQ4KCVyMTIpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTcsICV5bW0wLCAleW1tMTUKK3Ztb3ZkcWEg
JXltbTE1LCAyMjQwKCVyMTIpCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTgsICV5bW0xMiwgJXltbTE1
Cit2bW92ZHFhICV5bW0xNSwgMjQzMiglcjEyKQordmluc2VydGkxMjggJDAsICV4bW05LCAleW1t
MiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjYyNCglcjEyKQordmluc2VydGkxMjggJDAsICV4
bW0xMCwgJXltbTE0LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyODE2KCVyMTIpCit2bW92ZHFh
IDAoJXJzcCksICV5bW0xMQordmluc2VydGkxMjggJDEsICV4bW0xLCAleW1tMTEsICV5bW0xNAor
dm1vdmRxYSAleW1tMTQsIDE0NzIoJXIxMikKK3ZwZXJtcSAkNzgsICV5bW0xMSwgJXltbTExCit2
aW5zZXJ0aTEyOCAkMCwgJXhtbTExLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDMwMDgo
JXIxMikKK3Ztb3ZkcWEgNTI0OCglcjEwKSwgJXltbTAKK3Ztb3ZkcWEgNTMxMiglcjEwKSwgJXlt
bTEKK3Ztb3ZkcWEgNTM3NiglcjEwKSwgJXltbTIKK3Ztb3ZkcWEgNTQ0MCglcjEwKSwgJXltbTMK
K3ZwdW5wY2tsd2QgNTI4MCglcjEwKSwgJXltbTAsICV5bW00Cit2cHVucGNraHdkIDUyODAoJXIx
MCksICV5bW0wLCAleW1tNQordnB1bnBja2x3ZCA1MzQ0KCVyMTApLCAleW1tMSwgJXltbTYKK3Zw
dW5wY2tod2QgNTM0NCglcjEwKSwgJXltbTEsICV5bW03Cit2cHVucGNrbHdkIDU0MDgoJXIxMCks
ICV5bW0yLCAleW1tOAordnB1bnBja2h3ZCA1NDA4KCVyMTApLCAleW1tMiwgJXltbTkKK3ZwdW5w
Y2tsd2QgNTQ3MiglcjEwKSwgJXltbTMsICV5bW0xMAordnB1bnBja2h3ZCA1NDcyKCVyMTApLCAl
eW1tMywgJXltbTExCit2cHVucGNrbGRxICV5bW02LCAleW1tNCwgJXltbTAKK3ZwdW5wY2toZHEg
JXltbTYsICV5bW00LCAleW1tMQordnB1bnBja2xkcSAleW1tNywgJXltbTUsICV5bW0yCit2cHVu
cGNraGRxICV5bW03LCAleW1tNSwgJXltbTMKK3ZwdW5wY2tsZHEgJXltbTEwLCAleW1tOCwgJXlt
bTEyCit2cHVucGNraGRxICV5bW0xMCwgJXltbTgsICV5bW0xMwordnB1bnBja2xkcSAleW1tMTEs
ICV5bW05LCAleW1tMTQKK3ZwdW5wY2toZHEgJXltbTExLCAleW1tOSwgJXltbTE1Cit2cHVucGNr
bHFkcSAleW1tMTIsICV5bW0wLCAleW1tNAordnB1bnBja2hxZHEgJXltbTEyLCAleW1tMCwgJXlt
bTUKK3ZwdW5wY2tscWRxICV5bW0xMywgJXltbTEsICV5bW02Cit2cHVucGNraHFkcSAleW1tMTMs
ICV5bW0xLCAleW1tNwordnB1bnBja2xxZHEgJXltbTE0LCAleW1tMiwgJXltbTgKK3ZwdW5wY2to
cWRxICV5bW0xNCwgJXltbTIsICV5bW05Cit2cHVucGNrbHFkcSAleW1tMTUsICV5bW0zLCAleW1t
MTAKK3ZwdW5wY2tocWRxICV5bW0xNSwgJXltbTMsICV5bW0xMQordm1vdmRxYSA1NTA0KCVyMTAp
LCAleW1tMAordm1vdmRxYSA1NTY4KCVyMTApLCAleW1tMQordm1vdmRxYSA1NjMyKCVyMTApLCAl
eW1tMgordm1vdmRxYSA1Njk2KCVyMTApLCAleW1tMwordnB1bnBja2x3ZCA1NTM2KCVyMTApLCAl
eW1tMCwgJXltbTEyCit2cHVucGNraHdkIDU1MzYoJXIxMCksICV5bW0wLCAleW1tMTMKK3ZwdW5w
Y2tsd2QgNTYwMCglcjEwKSwgJXltbTEsICV5bW0xNAordnB1bnBja2h3ZCA1NjAwKCVyMTApLCAl
eW1tMSwgJXltbTE1Cit2cHVucGNrbHdkIDU2NjQoJXIxMCksICV5bW0yLCAleW1tMAordnB1bnBj
a2h3ZCA1NjY0KCVyMTApLCAleW1tMiwgJXltbTEKK3ZwdW5wY2tsd2QgNTcyOCglcjEwKSwgJXlt
bTMsICV5bW0yCit2cHVucGNraHdkIDU3MjgoJXIxMCksICV5bW0zLCAleW1tMwordm1vdmRxYSAl
eW1tMTEsIDAoJXJzcCkKK3ZwdW5wY2tsZHEgJXltbTE0LCAleW1tMTIsICV5bW0xMQordnB1bnBj
a2hkcSAleW1tMTQsICV5bW0xMiwgJXltbTEyCit2cHVucGNrbGRxICV5bW0xNSwgJXltbTEzLCAl
eW1tMTQKK3ZwdW5wY2toZHEgJXltbTE1LCAleW1tMTMsICV5bW0xNQordnB1bnBja2xkcSAleW1t
MiwgJXltbTAsICV5bW0xMwordnB1bnBja2hkcSAleW1tMiwgJXltbTAsICV5bW0wCit2cHVucGNr
bGRxICV5bW0zLCAleW1tMSwgJXltbTIKK3ZwdW5wY2toZHEgJXltbTMsICV5bW0xLCAleW1tMQor
dnB1bnBja2xxZHEgJXltbTEzLCAleW1tMTEsICV5bW0zCit2cHVucGNraHFkcSAleW1tMTMsICV5
bW0xMSwgJXltbTEzCit2cHVucGNrbHFkcSAleW1tMCwgJXltbTEyLCAleW1tMTEKK3ZwdW5wY2to
cWRxICV5bW0wLCAleW1tMTIsICV5bW0wCit2cHVucGNrbHFkcSAleW1tMiwgJXltbTE0LCAleW1t
MTIKK3ZwdW5wY2tocWRxICV5bW0yLCAleW1tMTQsICV5bW0yCit2cHVucGNrbHFkcSAleW1tMSwg
JXltbTE1LCAleW1tMTQKK3ZwdW5wY2tocWRxICV5bW0xLCAleW1tMTUsICV5bW0xCit2aW5zZXJ0
aTEyOCAkMSwgJXhtbTMsICV5bW00LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxNjAoJXIxMikK
K3ZpbnNlcnRpMTI4ICQxLCAleG1tMTMsICV5bW01LCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAz
NTIoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMTEsICV5bW02LCAleW1tMTUKK3Ztb3ZkcWEg
JXltbTE1LCA1NDQoJXIxMikKK3ZpbnNlcnRpMTI4ICQxLCAleG1tMCwgJXltbTcsICV5bW0xNQor
dm1vdmRxYSAleW1tMTUsIDczNiglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0xMiwgJXltbTgs
ICV5bW0xNQordm1vdmRxYSAleW1tMTUsIDkyOCglcjEyKQordmluc2VydGkxMjggJDEsICV4bW0y
LCAleW1tOSwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMTEyMCglcjEyKQordmluc2VydGkxMjgg
JDEsICV4bW0xNCwgJXltbTEwLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAxMzEyKCVyMTIpCit2
cGVybXEgJDc4LCAleW1tNCwgJXltbTQKK3ZwZXJtcSAkNzgsICV5bW01LCAleW1tNQordnBlcm1x
ICQ3OCwgJXltbTYsICV5bW02Cit2cGVybXEgJDc4LCAleW1tNywgJXltbTcKK3ZwZXJtcSAkNzgs
ICV5bW04LCAleW1tOAordnBlcm1xICQ3OCwgJXltbTksICV5bW05Cit2cGVybXEgJDc4LCAleW1t
MTAsICV5bW0xMAordmluc2VydGkxMjggJDAsICV4bW00LCAleW1tMywgJXltbTE1Cit2bW92ZHFh
ICV5bW0xNSwgMTY5NiglcjEyKQordmluc2VydGkxMjggJDAsICV4bW01LCAleW1tMTMsICV5bW0x
NQordm1vdmRxYSAleW1tMTUsIDE4ODgoJXIxMikKK3ZpbnNlcnRpMTI4ICQwLCAleG1tNiwgJXlt
bTExLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyMDgwKCVyMTIpCit2aW5zZXJ0aTEyOCAkMCwg
JXhtbTcsICV5bW0wLCAleW1tMTUKK3Ztb3ZkcWEgJXltbTE1LCAyMjcyKCVyMTIpCit2aW5zZXJ0
aTEyOCAkMCwgJXhtbTgsICV5bW0xMiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwgMjQ2NCglcjEy
KQordmluc2VydGkxMjggJDAsICV4bW05LCAleW1tMiwgJXltbTE1Cit2bW92ZHFhICV5bW0xNSwg
MjY1NiglcjEyKQordmluc2VydGkxMjggJDAsICV4bW0xMCwgJXltbTE0LCAleW1tMTUKK3Ztb3Zk
cWEgJXltbTE1LCAyODQ4KCVyMTIpCit2bW92ZHFhIDAoJXJzcCksICV5bW0xMQordmluc2VydGkx
MjggJDEsICV4bW0xLCAleW1tMTEsICV5bW0xNAordm1vdmRxYSAleW1tMTQsIDE1MDQoJXIxMikK
K3ZwZXJtcSAkNzgsICV5bW0xMSwgJXltbTExCit2aW5zZXJ0aTEyOCAkMCwgJXhtbTExLCAleW1t
MSwgJXltbTEKK3Ztb3ZkcWEgJXltbTEsIDMwNDAoJXIxMikKK2FkZHEgJDMyLCAlcnNwCithZGQg
JDE1MzYsICVyYXgKK2FkZCAkMTUzNiwgJXIxMQorYWRkICQzMDcyLCAlcjEyCitkZWMgJWVjeAor
am56IGthcmF0c3ViYV9sb29wXzRlY2VkNjNmMTQ0YmVmZmNiMDI0N2Y5YzZmNjdkMTY1CitzdWIg
JDEyMjg4LCAlcjEyCithZGQgJDk0MDgsICVyc3AKK3N1YnEgJDI0MDAsICVyc3AKK3ZweG9yICV5
bW0wLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgJXltbTAsIDE3OTIoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTAsIDE4MjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDE4NTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTAs
IDE4ODgoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDE5MjAoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDE5
NTIoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDE5ODQoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDIwMTYo
JXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDIwNDgoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDIwODAoJXJz
cCkKK3Ztb3ZkcWEgJXltbTAsIDIxMTIoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDIxNDQoJXJzcCkK
K3Ztb3ZkcWEgJXltbTAsIDIxNzYoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDIyMDgoJXJzcCkKK3Zt
b3ZkcWEgJXltbTAsIDIyNDAoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDIyNzIoJXJzcCkKK3Ztb3Zk
cWEgJXltbTAsIDIzMDQoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDIzMzYoJXJzcCkKK3Ztb3ZkcWEg
JXltbTAsIDIzNjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI0MDAoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTAsIDI0MzIoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI0NjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTAs
IDI0OTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI1MjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI1
NjAoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI1OTIoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI2MjQo
JXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI2NTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI2ODgoJXJz
cCkKK3Ztb3ZkcWEgJXltbTAsIDI3MjAoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDI3NTIoJXJzcCkK
K3Ztb3ZkcWEgJXltbTAsIDI3ODQoJXJzcCkKK3Ztb3ZkcWEgY29uc3Q3MjkoJXJpcCksICV5bW0x
NQordm1vdmRxYSBjb25zdDNfaW52KCVyaXApLCAleW1tMTQKK3Ztb3ZkcWEgY29uc3Q1X2ludigl
cmlwKSwgJXltbTEzCit2bW92ZHFhIGNvbnN0OSglcmlwKSwgJXltbTEyCit2bW92ZHFhIDk2KCVy
MTIpLCAleW1tMAordnBzdWJ3IDE5MiglcjEyKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDQ4MCgl
cjEyKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgMjg4KCVyMTIp
LCAleW1tMSwgJXltbTEKK3Zwc3VidyAwKCVyMTIpLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAzODQo
JXIxMiksICV5bW0wLCAleW1tMAordm1vdmRxYSA2NzIoJXIxMiksICV5bW0yCit2cHN1YncgNzY4
KCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgMTA1NiglcjEyKSwgJXltbTMKK3Zwc3VidyAl
eW1tMiwgJXltbTMsICV5bW0zCit2cHN1YncgODY0KCVyMTIpLCAleW1tMywgJXltbTMKK3Zwc3Vi
dyA1NzYoJXIxMiksICV5bW0yLCAleW1tMgordnBhZGR3IDk2MCglcjEyKSwgJXltbTIsICV5bW0y
Cit2bW92ZHFhIDEyNDgoJXIxMiksICV5bW00Cit2cHN1YncgMTM0NCglcjEyKSwgJXltbTQsICV5
bW00Cit2bW92ZHFhIDE2MzIoJXIxMiksICV5bW01Cit2cHN1YncgJXltbTQsICV5bW01LCAleW1t
NQordnBzdWJ3IDE0NDAoJXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDExNTIoJXIxMiksICV5
bW00LCAleW1tNAordnBhZGR3IDE1MzYoJXIxMiksICV5bW00LCAleW1tNAordnBzdWJ3IDU3Nigl
cjEyKSwgJXltbTEsICV5bW0xCit2cHN1YncgJXltbTEsICV5bW01LCAleW1tNQordnBzdWJ3ICV5
bW0zLCAleW1tNSwgJXltbTUKK3Zwc3VidyAwKCVyMTIpLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAx
MTUyKCVyMTIpLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgMjg4KCVyMTIpLCAleW1tNgordnBzdWJ3
ICV5bW0yLCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgMTQ0MCglcjEyKSwgJXltbTIKK3Zwc3VidyAl
eW1tNywgJXltbTIsICV5bW0yCit2cHN1YncgODY0KCVyMTIpLCAleW1tMiwgJXltbTIKK3Zwc3Vi
dyAleW1tMCwgJXltbTcsICV5bW03Cit2cGFkZHcgJXltbTQsICV5bW03LCAleW1tNwordm1vdmRx
YSAwKCVyMTIpLCAleW1tOAordm1vdmRxYSA4NjQoJXIxMiksICV5bW05Cit2bW92ZHFhICV5bW04
LCAwKCVyc3ApCit2bW92ZHFhICV5bW0wLCAzMiglcnNwKQordm1vdmRxYSAleW1tMSwgNjQoJXJz
cCkKK3Ztb3ZkcWEgJXltbTcsIDk2KCVyc3ApCit2bW92ZHFhICV5bW01LCAxMjgoJXJzcCkKK3Zt
b3ZkcWEgJXltbTIsIDE2MCglcnNwKQordm1vdmRxYSAleW1tMywgMTkyKCVyc3ApCit2bW92ZHFh
ICV5bW05LCAyMjQoJXJzcCkKK3Ztb3ZkcWEgMTgyNCglcjEyKSwgJXltbTAKK3Zwc3VidyAxOTIw
KCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgMjIwOCglcjEyKSwgJXltbTEKK3Zwc3VidyAl
eW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgMjAxNiglcjEyKSwgJXltbTEsICV5bW0xCit2cHN1
YncgMTcyOCglcjEyKSwgJXltbTAsICV5bW0wCit2cGFkZHcgMjExMiglcjEyKSwgJXltbTAsICV5
bW0wCit2bW92ZHFhIDI0MDAoJXIxMiksICV5bW0yCit2cHN1YncgMjQ5NiglcjEyKSwgJXltbTIs
ICV5bW0yCit2bW92ZHFhIDI3ODQoJXIxMiksICV5bW0zCit2cHN1YncgJXltbTIsICV5bW0zLCAl
eW1tMwordnBzdWJ3IDI1OTIoJXIxMiksICV5bW0zLCAleW1tMwordnBzdWJ3IDIzMDQoJXIxMiks
ICV5bW0yLCAleW1tMgordnBhZGR3IDI2ODgoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRxYSAy
OTc2KCVyMTIpLCAleW1tNAordnBzdWJ3IDMwNzIoJXIxMiksICV5bW00LCAleW1tNAordm1vdmRx
YSAzMzYwKCVyMTIpLCAleW1tNQordnBzdWJ3ICV5bW00LCAleW1tNSwgJXltbTUKK3Zwc3VidyAz
MTY4KCVyMTIpLCAleW1tNSwgJXltbTUKK3Zwc3VidyAyODgwKCVyMTIpLCAleW1tNCwgJXltbTQK
K3ZwYWRkdyAzMjY0KCVyMTIpLCAleW1tNCwgJXltbTQKK3Zwc3VidyAyMzA0KCVyMTIpLCAleW1t
MSwgJXltbTEKK3Zwc3VidyAleW1tMSwgJXltbTUsICV5bW01Cit2cHN1YncgJXltbTMsICV5bW01
LCAleW1tNQordnBzdWJ3IDE3MjgoJXIxMiksICV5bW0xLCAleW1tMQordnBhZGR3IDI4ODAoJXIx
MiksICV5bW0xLCAleW1tMQordm1vdmRxYSAyMDE2KCVyMTIpLCAleW1tNgordnBzdWJ3ICV5bW0y
LCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgMzE2OCglcjEyKSwgJXltbTIKK3Zwc3VidyAleW1tNywg
JXltbTIsICV5bW0yCit2cHN1YncgMjU5MiglcjEyKSwgJXltbTIsICV5bW0yCit2cHN1YncgJXlt
bTAsICV5bW03LCAleW1tNwordnBhZGR3ICV5bW00LCAleW1tNywgJXltbTcKK3Ztb3ZkcWEgMTcy
OCglcjEyKSwgJXltbTgKK3Ztb3ZkcWEgMjU5MiglcjEyKSwgJXltbTkKK3Ztb3ZkcWEgJXltbTgs
IDI1NiglcnNwKQordm1vdmRxYSAleW1tMCwgMjg4KCVyc3ApCit2bW92ZHFhICV5bW0xLCAzMjAo
JXJzcCkKK3Ztb3ZkcWEgJXltbTcsIDM1MiglcnNwKQordm1vdmRxYSAleW1tNSwgMzg0KCVyc3Ap
Cit2bW92ZHFhICV5bW0yLCA0MTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTMsIDQ0OCglcnNwKQordm1v
dmRxYSAleW1tOSwgNDgwKCVyc3ApCit2bW92ZHFhIDM1NTIoJXIxMiksICV5bW0wCit2cHN1Yncg
MzY0OCglcjEyKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDM5MzYoJXIxMiksICV5bW0xCit2cHN1
YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDM3NDQoJXIxMiksICV5bW0xLCAleW1tMQor
dnBzdWJ3IDM0NTYoJXIxMiksICV5bW0wLCAleW1tMAordnBhZGR3IDM4NDAoJXIxMiksICV5bW0w
LCAleW1tMAordm1vdmRxYSA0MTI4KCVyMTIpLCAleW1tMgordnBzdWJ3IDQyMjQoJXIxMiksICV5
bW0yLCAleW1tMgordm1vdmRxYSA0NTEyKCVyMTIpLCAleW1tMwordnBzdWJ3ICV5bW0yLCAleW1t
MywgJXltbTMKK3Zwc3VidyA0MzIwKCVyMTIpLCAleW1tMywgJXltbTMKK3Zwc3VidyA0MDMyKCVy
MTIpLCAleW1tMiwgJXltbTIKK3ZwYWRkdyA0NDE2KCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3Zk
cWEgNDcwNCglcjEyKSwgJXltbTQKK3Zwc3VidyA0ODAwKCVyMTIpLCAleW1tNCwgJXltbTQKK3Zt
b3ZkcWEgNTA4OCglcjEyKSwgJXltbTUKK3Zwc3VidyAleW1tNCwgJXltbTUsICV5bW01Cit2cHN1
YncgNDg5NiglcjEyKSwgJXltbTUsICV5bW01Cit2cHN1YncgNDYwOCglcjEyKSwgJXltbTQsICV5
bW00Cit2cGFkZHcgNDk5MiglcjEyKSwgJXltbTQsICV5bW00Cit2cHN1YncgNDAzMiglcjEyKSwg
JXltbTEsICV5bW0xCit2cHN1YncgJXltbTEsICV5bW01LCAleW1tNQordnBzdWJ3ICV5bW0zLCAl
eW1tNSwgJXltbTUKK3Zwc3VidyAzNDU2KCVyMTIpLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA0NjA4
KCVyMTIpLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgMzc0NCglcjEyKSwgJXltbTYKK3Zwc3VidyAl
eW1tMiwgJXltbTYsICV5bW03Cit2bW92ZHFhIDQ4OTYoJXIxMiksICV5bW0yCit2cHN1YncgJXlt
bTcsICV5bW0yLCAleW1tMgordnBzdWJ3IDQzMjAoJXIxMiksICV5bW0yLCAleW1tMgordnBzdWJ3
ICV5bW0wLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1tNCwgJXltbTcsICV5bW03Cit2bW92ZHFh
IDM0NTYoJXIxMiksICV5bW04Cit2bW92ZHFhIDQzMjAoJXIxMiksICV5bW05Cit2bW92ZHFhICV5
bW04LCA1MTIoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDU0NCglcnNwKQordm1vdmRxYSAleW1tMSwg
NTc2KCVyc3ApCit2bW92ZHFhICV5bW03LCA2MDgoJXJzcCkKK3Ztb3ZkcWEgJXltbTUsIDY0MCgl
cnNwKQordm1vdmRxYSAleW1tMiwgNjcyKCVyc3ApCit2bW92ZHFhICV5bW0zLCA3MDQoJXJzcCkK
K3Ztb3ZkcWEgJXltbTksIDczNiglcnNwKQordm1vdmRxYSA1MjgwKCVyMTIpLCAleW1tMAordnBz
dWJ3IDUzNzYoJXIxMiksICV5bW0wLCAleW1tMAordm1vdmRxYSA1NjY0KCVyMTIpLCAleW1tMQor
dnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA1NDcyKCVyMTIpLCAleW1tMSwgJXlt
bTEKK3Zwc3VidyA1MTg0KCVyMTIpLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA1NTY4KCVyMTIpLCAl
eW1tMCwgJXltbTAKK3Ztb3ZkcWEgNTg1NiglcjEyKSwgJXltbTIKK3Zwc3VidyA1OTUyKCVyMTIp
LCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgNjI0MCglcjEyKSwgJXltbTMKK3Zwc3VidyAleW1tMiwg
JXltbTMsICV5bW0zCit2cHN1YncgNjA0OCglcjEyKSwgJXltbTMsICV5bW0zCit2cHN1YncgNTc2
MCglcjEyKSwgJXltbTIsICV5bW0yCit2cGFkZHcgNjE0NCglcjEyKSwgJXltbTIsICV5bW0yCit2
bW92ZHFhIDY0MzIoJXIxMiksICV5bW00Cit2cHN1YncgNjUyOCglcjEyKSwgJXltbTQsICV5bW00
Cit2bW92ZHFhIDY4MTYoJXIxMiksICV5bW01Cit2cHN1YncgJXltbTQsICV5bW01LCAleW1tNQor
dnBzdWJ3IDY2MjQoJXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDYzMzYoJXIxMiksICV5bW00
LCAleW1tNAordnBhZGR3IDY3MjAoJXIxMiksICV5bW00LCAleW1tNAordnBzdWJ3IDU3NjAoJXIx
MiksICV5bW0xLCAleW1tMQordnBzdWJ3ICV5bW0xLCAleW1tNSwgJXltbTUKK3Zwc3VidyAleW1t
MywgJXltbTUsICV5bW01Cit2cHN1YncgNTE4NCglcjEyKSwgJXltbTEsICV5bW0xCit2cGFkZHcg
NjMzNiglcjEyKSwgJXltbTEsICV5bW0xCit2bW92ZHFhIDU0NzIoJXIxMiksICV5bW02Cit2cHN1
YncgJXltbTIsICV5bW02LCAleW1tNwordm1vdmRxYSA2NjI0KCVyMTIpLCAleW1tMgordnBzdWJ3
ICV5bW03LCAleW1tMiwgJXltbTIKK3Zwc3VidyA2MDQ4KCVyMTIpLCAleW1tMiwgJXltbTIKK3Zw
c3VidyAleW1tMCwgJXltbTcsICV5bW03Cit2cGFkZHcgJXltbTQsICV5bW03LCAleW1tNwordm1v
dmRxYSA1MTg0KCVyMTIpLCAleW1tOAordm1vdmRxYSA2MDQ4KCVyMTIpLCAleW1tOQordm1vdmRx
YSAleW1tOCwgNzY4KCVyc3ApCit2bW92ZHFhICV5bW0wLCA4MDAoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTEsIDgzMiglcnNwKQordm1vdmRxYSAleW1tNywgODY0KCVyc3ApCit2bW92ZHFhICV5bW01LCA4
OTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTIsIDkyOCglcnNwKQordm1vdmRxYSAleW1tMywgOTYwKCVy
c3ApCit2bW92ZHFhICV5bW05LCA5OTIoJXJzcCkKK3Ztb3ZkcWEgNzAwOCglcjEyKSwgJXltbTAK
K3Zwc3VidyA3MTA0KCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgNzM5MiglcjEyKSwgJXlt
bTEKK3Zwc3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgNzIwMCglcjEyKSwgJXltbTEs
ICV5bW0xCit2cHN1YncgNjkxMiglcjEyKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNzI5NiglcjEy
KSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDc1ODQoJXIxMiksICV5bW0yCit2cHN1YncgNzY4MCgl
cjEyKSwgJXltbTIsICV5bW0yCit2bW92ZHFhIDc5NjgoJXIxMiksICV5bW0zCit2cHN1YncgJXlt
bTIsICV5bW0zLCAleW1tMwordnBzdWJ3IDc3NzYoJXIxMiksICV5bW0zLCAleW1tMwordnBzdWJ3
IDc0ODgoJXIxMiksICV5bW0yLCAleW1tMgordnBhZGR3IDc4NzIoJXIxMiksICV5bW0yLCAleW1t
Mgordm1vdmRxYSA4MTYwKCVyMTIpLCAleW1tNAordnBzdWJ3IDgyNTYoJXIxMiksICV5bW00LCAl
eW1tNAordm1vdmRxYSA4NTQ0KCVyMTIpLCAleW1tNQordnBzdWJ3ICV5bW00LCAleW1tNSwgJXlt
bTUKK3Zwc3VidyA4MzUyKCVyMTIpLCAleW1tNSwgJXltbTUKK3Zwc3VidyA4MDY0KCVyMTIpLCAl
eW1tNCwgJXltbTQKK3ZwYWRkdyA4NDQ4KCVyMTIpLCAleW1tNCwgJXltbTQKK3Zwc3VidyA3NDg4
KCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAleW1tMSwgJXltbTUsICV5bW01Cit2cHN1Yncg
JXltbTMsICV5bW01LCAleW1tNQordnBzdWJ3IDY5MTIoJXIxMiksICV5bW0xLCAleW1tMQordnBh
ZGR3IDgwNjQoJXIxMiksICV5bW0xLCAleW1tMQordm1vdmRxYSA3MjAwKCVyMTIpLCAleW1tNgor
dnBzdWJ3ICV5bW0yLCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgODM1MiglcjEyKSwgJXltbTIKK3Zw
c3VidyAleW1tNywgJXltbTIsICV5bW0yCit2cHN1YncgNzc3NiglcjEyKSwgJXltbTIsICV5bW0y
Cit2cHN1YncgJXltbTAsICV5bW03LCAleW1tNwordnBhZGR3ICV5bW00LCAleW1tNywgJXltbTcK
K3Ztb3ZkcWEgNjkxMiglcjEyKSwgJXltbTgKK3Ztb3ZkcWEgNzc3NiglcjEyKSwgJXltbTkKK3Zt
b3ZkcWEgJXltbTgsIDEwMjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDEwNTYoJXJzcCkKK3Ztb3Zk
cWEgJXltbTEsIDEwODgoJXJzcCkKK3Ztb3ZkcWEgJXltbTcsIDExMjAoJXJzcCkKK3Ztb3ZkcWEg
JXltbTUsIDExNTIoJXJzcCkKK3Ztb3ZkcWEgJXltbTIsIDExODQoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTMsIDEyMTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTksIDEyNDgoJXJzcCkKK3Ztb3ZkcWEgODczNigl
cjEyKSwgJXltbTAKK3Zwc3VidyA4ODMyKCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgOTEy
MCglcjEyKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgODkyOCgl
cjEyKSwgJXltbTEsICV5bW0xCit2cHN1YncgODY0MCglcjEyKSwgJXltbTAsICV5bW0wCit2cGFk
ZHcgOTAyNCglcjEyKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDkzMTIoJXIxMiksICV5bW0yCit2
cHN1YncgOTQwOCglcjEyKSwgJXltbTIsICV5bW0yCit2bW92ZHFhIDk2OTYoJXIxMiksICV5bW0z
Cit2cHN1YncgJXltbTIsICV5bW0zLCAleW1tMwordnBzdWJ3IDk1MDQoJXIxMiksICV5bW0zLCAl
eW1tMwordnBzdWJ3IDkyMTYoJXIxMiksICV5bW0yLCAleW1tMgordnBhZGR3IDk2MDAoJXIxMiks
ICV5bW0yLCAleW1tMgordm1vdmRxYSA5ODg4KCVyMTIpLCAleW1tNAordnBzdWJ3IDk5ODQoJXIx
MiksICV5bW00LCAleW1tNAordm1vdmRxYSAxMDI3MiglcjEyKSwgJXltbTUKK3Zwc3VidyAleW1t
NCwgJXltbTUsICV5bW01Cit2cHN1YncgMTAwODAoJXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3
IDk3OTIoJXIxMiksICV5bW00LCAleW1tNAordnBhZGR3IDEwMTc2KCVyMTIpLCAleW1tNCwgJXlt
bTQKK3Zwc3VidyA5MjE2KCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAleW1tMSwgJXltbTUs
ICV5bW01Cit2cHN1YncgJXltbTMsICV5bW01LCAleW1tNQordnBzdWJ3IDg2NDAoJXIxMiksICV5
bW0xLCAleW1tMQordnBhZGR3IDk3OTIoJXIxMiksICV5bW0xLCAleW1tMQordm1vdmRxYSA4OTI4
KCVyMTIpLCAleW1tNgordnBzdWJ3ICV5bW0yLCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgMTAwODAo
JXIxMiksICV5bW0yCit2cHN1YncgJXltbTcsICV5bW0yLCAleW1tMgordnBzdWJ3IDk1MDQoJXIx
MiksICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW0wLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1t
NCwgJXltbTcsICV5bW03Cit2bW92ZHFhIDg2NDAoJXIxMiksICV5bW04Cit2bW92ZHFhIDk1MDQo
JXIxMiksICV5bW05Cit2bW92ZHFhICV5bW04LCAxMjgwKCVyc3ApCit2bW92ZHFhICV5bW0wLCAx
MzEyKCVyc3ApCit2bW92ZHFhICV5bW0xLCAxMzQ0KCVyc3ApCit2bW92ZHFhICV5bW03LCAxMzc2
KCVyc3ApCit2bW92ZHFhICV5bW01LCAxNDA4KCVyc3ApCit2bW92ZHFhICV5bW0yLCAxNDQwKCVy
c3ApCit2bW92ZHFhICV5bW0zLCAxNDcyKCVyc3ApCit2bW92ZHFhICV5bW05LCAxNTA0KCVyc3Ap
Cit2bW92ZHFhIDEwNDY0KCVyMTIpLCAleW1tMAordnBzdWJ3IDEwNTYwKCVyMTIpLCAleW1tMCwg
JXltbTAKK3Ztb3ZkcWEgMTA4NDgoJXIxMiksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAl
eW1tMQordnBzdWJ3IDEwNjU2KCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAxMDM2OCglcjEy
KSwgJXltbTAsICV5bW0wCit2cGFkZHcgMTA3NTIoJXIxMiksICV5bW0wLCAleW1tMAordm1vdmRx
YSAxMTA0MCglcjEyKSwgJXltbTIKK3Zwc3VidyAxMTEzNiglcjEyKSwgJXltbTIsICV5bW0yCit2
bW92ZHFhIDExNDI0KCVyMTIpLCAleW1tMwordnBzdWJ3ICV5bW0yLCAleW1tMywgJXltbTMKK3Zw
c3VidyAxMTIzMiglcjEyKSwgJXltbTMsICV5bW0zCit2cHN1YncgMTA5NDQoJXIxMiksICV5bW0y
LCAleW1tMgordnBhZGR3IDExMzI4KCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgMTE2MTYo
JXIxMiksICV5bW00Cit2cHN1YncgMTE3MTIoJXIxMiksICV5bW00LCAleW1tNAordm1vdmRxYSAx
MjAwMCglcjEyKSwgJXltbTUKK3Zwc3VidyAleW1tNCwgJXltbTUsICV5bW01Cit2cHN1YncgMTE4
MDgoJXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDExNTIwKCVyMTIpLCAleW1tNCwgJXltbTQK
K3ZwYWRkdyAxMTkwNCglcjEyKSwgJXltbTQsICV5bW00Cit2cHN1YncgMTA5NDQoJXIxMiksICV5
bW0xLCAleW1tMQordnBzdWJ3ICV5bW0xLCAleW1tNSwgJXltbTUKK3Zwc3VidyAleW1tMywgJXlt
bTUsICV5bW01Cit2cHN1YncgMTAzNjgoJXIxMiksICV5bW0xLCAleW1tMQordnBhZGR3IDExNTIw
KCVyMTIpLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgMTA2NTYoJXIxMiksICV5bW02Cit2cHN1Yncg
JXltbTIsICV5bW02LCAleW1tNwordm1vdmRxYSAxMTgwOCglcjEyKSwgJXltbTIKK3Zwc3VidyAl
eW1tNywgJXltbTIsICV5bW0yCit2cHN1YncgMTEyMzIoJXIxMiksICV5bW0yLCAleW1tMgordnBz
dWJ3ICV5bW0wLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1tNCwgJXltbTcsICV5bW03Cit2bW92
ZHFhIDEwMzY4KCVyMTIpLCAleW1tOAordm1vdmRxYSAxMTIzMiglcjEyKSwgJXltbTkKK3Ztb3Zk
cWEgJXltbTgsIDE1MzYoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDE1NjgoJXJzcCkKK3Ztb3ZkcWEg
JXltbTEsIDE2MDAoJXJzcCkKK3Ztb3ZkcWEgJXltbTcsIDE2MzIoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTUsIDE2NjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTIsIDE2OTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTMs
IDE3MjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTksIDE3NjAoJXJzcCkKK3Ztb3ZkcWEgMCglcnNwKSwg
JXltbTExCit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tMTAKK3ZwdW5wY2to
d2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW05Cit2cHNsbGQgJDEsICV5bW0xMCwgJXltbTEw
Cit2cHNsbGQgJDEsICV5bW05LCAleW1tOQordm1vdmRxYSAyNTYoJXJzcCksICV5bW04Cit2cHVu
cGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTgsICV5bW03Cit2cHVucGNraHdkIGNvbnN0MCglcmlw
KSwgJXltbTgsICV5bW04Cit2bW92ZHFhIDUxMiglcnNwKSwgJXltbTYKK3ZwdW5wY2tsd2QgY29u
c3QwKCVyaXApLCAleW1tNiwgJXltbTUKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNiwg
JXltbTYKK3ZwYWRkZCAleW1tNSwgJXltbTcsICV5bW00Cit2cGFkZGQgJXltbTYsICV5bW04LCAl
eW1tMwordnBzdWJkICV5bW0xMCwgJXltbTQsICV5bW00Cit2cHN1YmQgJXltbTksICV5bW0zLCAl
eW1tMwordnBzdWJkICV5bW01LCAleW1tNywgJXltbTUKK3Zwc3ViZCAleW1tNiwgJXltbTgsICV5
bW02Cit2cHNybGQgJDEsICV5bW01LCAleW1tNQordnBzcmxkICQxLCAleW1tNiwgJXltbTYKK3Zw
YW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTUsICV5bW01Cit2cGFuZCBtYXNrMzJfdG9fMTYo
JXJpcCksICV5bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02LCAleW1tNSwgJXltbTYKK3Ztb3Zk
cWEgMTUzNiglcnNwKSwgJXltbTUKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tNSwgJXlt
bTgKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNSwgJXltbTcKK3Zwc2xsZCAkMSwgJXlt
bTgsICV5bW04Cit2cHNsbGQgJDEsICV5bW03LCAleW1tNwordnBzdWJkICV5bW04LCAleW1tNCwg
JXltbTQKK3Zwc3ViZCAleW1tNywgJXltbTMsICV5bW0zCit2cHNybGQgJDEsICV5bW00LCAleW1t
NAordnBzcmxkICQxLCAleW1tMywgJXltbTMKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXlt
bTQsICV5bW00Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW0zLCAleW1tMwordnBhY2t1
c2R3ICV5bW0zLCAleW1tNCwgJXltbTMKK3Ztb3ZkcWEgNzY4KCVyc3ApLCAleW1tNAordnBhZGR3
IDEwMjQoJXJzcCksICV5bW00LCAleW1tNwordnBzdWJ3IDEwMjQoJXJzcCksICV5bW00LCAleW1t
NAordnBzcmx3ICQyLCAleW1tNCwgJXltbTQKK3Zwc3VidyAleW1tNiwgJXltbTQsICV5bW00Cit2
cG11bGx3ICV5bW0xNCwgJXltbTQsICV5bW00Cit2cHNsbHcgJDEsICV5bW0xMSwgJXltbTgKK3Zw
c3VidyAleW1tOCwgJXltbTcsICV5bW04Cit2cHNsbHcgJDcsICV5bW01LCAleW1tNwordnBzdWJ3
ICV5bW03LCAleW1tOCwgJXltbTcKK3Zwc3JsdyAkMywgJXltbTcsICV5bW03Cit2cHN1YncgJXlt
bTMsICV5bW03LCAleW1tNwordm1vdmRxYSAxMjgwKCVyc3ApLCAleW1tOAordnBzdWJ3ICV5bW0x
MSwgJXltbTgsICV5bW04Cit2cG11bGx3ICV5bW0xNSwgJXltbTUsICV5bW05Cit2cHN1YncgJXlt
bTksICV5bW04LCAleW1tOQordnBtdWxsdyAleW1tMTQsICV5bW03LCAleW1tNwordnBzdWJ3ICV5
bW03LCAleW1tMywgJXltbTMKK3ZwbXVsbHcgJXltbTEyLCAleW1tNywgJXltbTgKK3ZwYWRkdyAl
eW1tOCwgJXltbTMsICV5bW04Cit2cG11bGx3ICV5bW0xMiwgJXltbTgsICV5bW04Cit2cHN1Yncg
JXltbTgsICV5bW05LCAleW1tOAordnBtdWxsdyAleW1tMTQsICV5bW04LCAleW1tOAordnBzdWJ3
ICV5bW02LCAleW1tOCwgJXltbTgKK3Zwc3JsdyAkMywgJXltbTgsICV5bW04Cit2cHN1YncgJXlt
bTQsICV5bW04LCAleW1tOAordnBzdWJ3ICV5bW04LCAleW1tNCwgJXltbTQKK3Zwc3VidyAleW1t
NCwgJXltbTYsICV5bW02Cit2cG11bGx3ICV5bW0xMywgJXltbTgsICV5bW04Cit2cHN1YncgJXlt
bTgsICV5bW02LCAleW1tNgordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW03LCAleW1tNwor
dnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW03LCAleW1tOQordnBhbmQgbWFzazVfM181XzMo
JXJpcCksICV5bW03LCAleW1tNwordnBlcm1xICQyMDYsICV5bW05LCAleW1tOQordnBhbmQgbWFz
a19rZWVwaGlnaCglcmlwKSwgJXltbTksICV5bW0xMAordnBvciAleW1tMTAsICV5bW03LCAleW1t
NwordnBhZGR3ICV5bW03LCAleW1tMTEsICV5bW0xMQordm1vdmRxYSAleG1tOSwgMjA0OCglcnNw
KQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW04LCAleW1tOAordnBhbmQgbWFzazNfNV8z
XzUoJXJpcCksICV5bW04LCAleW1tOQordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW04LCAl
eW1tOAordnBlcm1xICQyMDYsICV5bW05LCAleW1tOQordnBhbmQgbWFza19rZWVwaGlnaCglcmlw
KSwgJXltbTksICV5bW0xMAordnBvciAleW1tMTAsICV5bW04LCAleW1tOAordnBhZGR3ICV5bW04
LCAleW1tNiwgJXltbTYKK3Ztb3ZkcWEgJXhtbTksIDIzMDQoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4
XzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNSwg
JXltbTkKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkMjA2
LCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW05LCAleW1tMTAK
K3Zwb3IgJXltbTEwLCAleW1tNSwgJXltbTUKK3ZwYWRkdyAleW1tNSwgJXltbTMsICV5bW0zCit2
bW92ZHFhICV4bW05LCAyNTYwKCVyc3ApCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0x
MSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgMCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVy
aXApLCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXltbTYsIDM1MiglcmRpKQordnBhbmQgbWFza19t
b2Q4MTkyKCVyaXApLCAleW1tMywgJXltbTMKK3Ztb3ZkcXUgJXltbTMsIDcwNCglcmRpKQordnBh
bmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNCwgJXltbTQKK3Ztb3ZkcXUgJXltbTQsIDEwNTYo
JXJkaSkKK3Ztb3ZkcWEgMzIoJXJzcCksICV5bW01Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwg
JXltbTUsICV5bW04Cit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW03Cit2cHNs
bGQgJDEsICV5bW04LCAleW1tOAordnBzbGxkICQxLCAleW1tNywgJXltbTcKK3Ztb3ZkcWEgMjg4
KCVyc3ApLCAleW1tNAordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW00LCAleW1tMwordnB1
bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW00LCAleW1tNAordm1vdmRxYSA1NDQoJXJzcCksICV5
bW02Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTYsICV5bW0xMQordnB1bnBja2h3ZCBj
b25zdDAoJXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5bW0xMSwgJXltbTMsICV5bW05Cit2
cGFkZGQgJXltbTYsICV5bW00LCAleW1tMTAKK3Zwc3ViZCAleW1tOCwgJXltbTksICV5bW05Cit2
cHN1YmQgJXltbTcsICV5bW0xMCwgJXltbTEwCit2cHN1YmQgJXltbTExLCAleW1tMywgJXltbTEx
Cit2cHN1YmQgJXltbTYsICV5bW00LCAleW1tNgordnBzcmxkICQxLCAleW1tMTEsICV5bW0xMQor
dnBzcmxkICQxLCAleW1tNiwgJXltbTYKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTEx
LCAleW1tMTEKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTYsICV5bW02Cit2cGFja3Vz
ZHcgJXltbTYsICV5bW0xMSwgJXltbTYKK3Ztb3ZkcWEgMTU2OCglcnNwKSwgJXltbTExCit2cHVu
cGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tNAordnB1bnBja2h3ZCBjb25zdDAoJXJp
cCksICV5bW0xMSwgJXltbTMKK3Zwc2xsZCAkMSwgJXltbTQsICV5bW00Cit2cHNsbGQgJDEsICV5
bW0zLCAleW1tMwordnBzdWJkICV5bW00LCAleW1tOSwgJXltbTkKK3Zwc3ViZCAleW1tMywgJXlt
bTEwLCAleW1tMTAKK3Zwc3JsZCAkMSwgJXltbTksICV5bW05Cit2cHNybGQgJDEsICV5bW0xMCwg
JXltbTEwCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW05LCAleW1tOQordnBhbmQgbWFz
azMyX3RvXzE2KCVyaXApLCAleW1tMTAsICV5bW0xMAordnBhY2t1c2R3ICV5bW0xMCwgJXltbTks
ICV5bW0xMAordm1vdmRxYSA4MDAoJXJzcCksICV5bW05Cit2cGFkZHcgMTA1NiglcnNwKSwgJXlt
bTksICV5bW0zCit2cHN1YncgMTA1NiglcnNwKSwgJXltbTksICV5bW05Cit2cHNybHcgJDIsICV5
bW05LCAleW1tOQordnBzdWJ3ICV5bW02LCAleW1tOSwgJXltbTkKK3ZwbXVsbHcgJXltbTE0LCAl
eW1tOSwgJXltbTkKK3Zwc2xsdyAkMSwgJXltbTUsICV5bW00Cit2cHN1YncgJXltbTQsICV5bW0z
LCAleW1tNAordnBzbGx3ICQ3LCAleW1tMTEsICV5bW0zCit2cHN1YncgJXltbTMsICV5bW00LCAl
eW1tMwordnBzcmx3ICQzLCAleW1tMywgJXltbTMKK3Zwc3VidyAleW1tMTAsICV5bW0zLCAleW1t
Mwordm1vdmRxYSAxMzEyKCVyc3ApLCAleW1tNAordnBzdWJ3ICV5bW01LCAleW1tNCwgJXltbTQK
K3ZwbXVsbHcgJXltbTE1LCAleW1tMTEsICV5bW03Cit2cHN1YncgJXltbTcsICV5bW00LCAleW1t
NwordnBtdWxsdyAleW1tMTQsICV5bW0zLCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1tMTAsICV5
bW0xMAordnBtdWxsdyAleW1tMTIsICV5bW0zLCAleW1tNAordnBhZGR3ICV5bW00LCAleW1tMTAs
ICV5bW00Cit2cG11bGx3ICV5bW0xMiwgJXltbTQsICV5bW00Cit2cHN1YncgJXltbTQsICV5bW03
LCAleW1tNAordnBtdWxsdyAleW1tMTQsICV5bW00LCAleW1tNAordnBzdWJ3ICV5bW02LCAleW1t
NCwgJXltbTQKK3Zwc3JsdyAkMywgJXltbTQsICV5bW00Cit2cHN1YncgJXltbTksICV5bW00LCAl
eW1tNAordnBzdWJ3ICV5bW00LCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTYsICV5
bW02Cit2cG11bGx3ICV5bW0xMywgJXltbTQsICV5bW00Cit2cHN1YncgJXltbTQsICV5bW02LCAl
eW1tNgordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW0zLCAleW1tMwordnBhbmQgbWFzazNf
NV8zXzUoJXJpcCksICV5bW0zLCAleW1tNwordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW0z
LCAleW1tMwordnBlcm1xICQyMDYsICV5bW03LCAleW1tNwordnBhbmQgbWFza19rZWVwaGlnaCgl
cmlwKSwgJXltbTcsICV5bW04Cit2cG9yICV5bW04LCAleW1tMywgJXltbTMKK3ZwYWRkdyAleW1t
MywgJXltbTUsICV5bW01Cit2bW92ZHFhICV4bW03LCAyMDgwKCVyc3ApCit2cHNodWZiIHNodWY0
OF8xNiglcmlwKSwgJXltbTQsICV5bW00Cit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXltbTQs
ICV5bW03Cit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTQsICV5bW00Cit2cGVybXEgJDIw
NiwgJXltbTcsICV5bW03Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tNywgJXltbTgK
K3Zwb3IgJXltbTgsICV5bW00LCAleW1tNAordnBhZGR3ICV5bW00LCAleW1tNiwgJXltbTYKK3Zt
b3ZkcWEgJXhtbTcsIDIzMzYoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tMTEs
ICV5bW0xMQordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW0xMSwgJXltbTcKK3ZwYW5kIG1h
c2s1XzNfNV8zKCVyaXApLCAleW1tMTEsICV5bW0xMQordnBlcm1xICQyMDYsICV5bW03LCAleW1t
NwordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTcsICV5bW04Cit2cG9yICV5bW04LCAl
eW1tMTEsICV5bW0xMQordnBhZGR3ICV5bW0xMSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgJXht
bTcsIDI1OTIoJXJzcCkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTUsICV5bW01Cit2
bW92ZHF1ICV5bW01LCA4OCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwg
JXltbTYKK3Ztb3ZkcXUgJXltbTYsIDQ0MCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXAp
LCAleW1tMTAsICV5bW0xMAordm1vdmRxdSAleW1tMTAsIDc5MiglcmRpKQordnBhbmQgbWFza19t
b2Q4MTkyKCVyaXApLCAleW1tOSwgJXltbTkKK3Ztb3ZkcXUgJXltbTksIDExNDQoJXJkaSkKK3Zt
b3ZkcWEgNjQoJXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwg
JXltbTQKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW0zCit2cHNsbGQgJDEs
ICV5bW00LCAleW1tNAordnBzbGxkICQxLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEgMzIwKCVyc3Ap
LCAleW1tOQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW05LCAleW1tMTAKK3ZwdW5wY2to
d2QgY29uc3QwKCVyaXApLCAleW1tOSwgJXltbTkKK3Ztb3ZkcWEgNTc2KCVyc3ApLCAleW1tNgor
dnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNQordnB1bnBja2h3ZCBjb25zdDAo
JXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5bW01LCAleW1tMTAsICV5bW03Cit2cGFkZGQg
JXltbTYsICV5bW05LCAleW1tOAordnBzdWJkICV5bW00LCAleW1tNywgJXltbTcKK3Zwc3ViZCAl
eW1tMywgJXltbTgsICV5bW04Cit2cHN1YmQgJXltbTUsICV5bW0xMCwgJXltbTUKK3Zwc3ViZCAl
eW1tNiwgJXltbTksICV5bW02Cit2cHNybGQgJDEsICV5bW01LCAleW1tNQordnBzcmxkICQxLCAl
eW1tNiwgJXltbTYKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTUsICV5bW01Cit2cGFu
ZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02LCAleW1t
NSwgJXltbTYKK3Ztb3ZkcWEgMTYwMCglcnNwKSwgJXltbTUKK3ZwdW5wY2tsd2QgY29uc3QwKCVy
aXApLCAleW1tNSwgJXltbTkKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNSwgJXltbTEw
Cit2cHNsbGQgJDEsICV5bW05LCAleW1tOQordnBzbGxkICQxLCAleW1tMTAsICV5bW0xMAordnBz
dWJkICV5bW05LCAleW1tNywgJXltbTcKK3Zwc3ViZCAleW1tMTAsICV5bW04LCAleW1tOAordnBz
cmxkICQxLCAleW1tNywgJXltbTcKK3Zwc3JsZCAkMSwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNr
MzJfdG9fMTYoJXJpcCksICV5bW03LCAleW1tNwordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAl
eW1tOCwgJXltbTgKK3ZwYWNrdXNkdyAleW1tOCwgJXltbTcsICV5bW04Cit2bW92ZHFhIDgzMigl
cnNwKSwgJXltbTcKK3ZwYWRkdyAxMDg4KCVyc3ApLCAleW1tNywgJXltbTEwCit2cHN1YncgMTA4
OCglcnNwKSwgJXltbTcsICV5bW03Cit2cHNybHcgJDIsICV5bW03LCAleW1tNwordnBzdWJ3ICV5
bW02LCAleW1tNywgJXltbTcKK3ZwbXVsbHcgJXltbTE0LCAleW1tNywgJXltbTcKK3Zwc2xsdyAk
MSwgJXltbTExLCAleW1tOQordnBzdWJ3ICV5bW05LCAleW1tMTAsICV5bW05Cit2cHNsbHcgJDcs
ICV5bW01LCAleW1tMTAKK3Zwc3VidyAleW1tMTAsICV5bW05LCAleW1tMTAKK3Zwc3JsdyAkMywg
JXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tOCwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgMTM0
NCglcnNwKSwgJXltbTkKK3Zwc3VidyAleW1tMTEsICV5bW05LCAleW1tOQordnBtdWxsdyAleW1t
MTUsICV5bW01LCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1tOSwgJXltbTMKK3ZwbXVsbHcgJXlt
bTE0LCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5bW0xMCwgJXltbTgsICV5bW04Cit2cG11bGx3
ICV5bW0xMiwgJXltbTEwLCAleW1tOQordnBhZGR3ICV5bW05LCAleW1tOCwgJXltbTkKK3ZwbXVs
bHcgJXltbTEyLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTMsICV5bW05Cit2cG11
bGx3ICV5bW0xNCwgJXltbTksICV5bW05Cit2cHN1YncgJXltbTYsICV5bW05LCAleW1tOQordnBz
cmx3ICQzLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tNywgJXltbTksICV5bW05Cit2cHN1Yncg
JXltbTksICV5bW03LCAleW1tNwordnBzdWJ3ICV5bW03LCAleW1tNiwgJXltbTYKK3ZwbXVsbHcg
JXltbTEzLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTYsICV5bW02Cit2cHNodWZi
IHNodWY0OF8xNiglcmlwKSwgJXltbTEwLCAleW1tMTAKK3ZwYW5kIG1hc2szXzVfM181KCVyaXAp
LCAleW1tMTAsICV5bW0zCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTEwLCAleW1tMTAK
K3ZwZXJtcSAkMjA2LCAleW1tMywgJXltbTMKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5
bW0zLCAleW1tNAordnBvciAleW1tNCwgJXltbTEwLCAleW1tMTAKK3ZwYWRkdyAleW1tMTAsICV5
bW0xMSwgJXltbTExCit2bW92ZHFhICV4bW0zLCAyMTEyKCVyc3ApCit2cHNodWZiIHNodWY0OF8x
NiglcmlwKSwgJXltbTksICV5bW05Cit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXltbTksICV5
bW0zCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTksICV5bW05Cit2cGVybXEgJDIwNiwg
JXltbTMsICV5bW0zCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tMywgJXltbTQKK3Zw
b3IgJXltbTQsICV5bW05LCAleW1tOQordnBhZGR3ICV5bW05LCAleW1tNiwgJXltbTYKK3Ztb3Zk
cWEgJXhtbTMsIDIzNjgoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNSwgJXlt
bTUKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNSwgJXltbTMKK3ZwYW5kIG1hc2s1XzNf
NV8zKCVyaXApLCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkMjA2LCAleW1tMywgJXltbTMKK3ZwYW5k
IG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0zLCAleW1tNAordnBvciAleW1tNCwgJXltbTUsICV5
bW01Cit2cGFkZHcgJXltbTUsICV5bW04LCAleW1tOAordm1vdmRxYSAleG1tMywgMjYyNCglcnNw
KQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0xMQordm1vdmRxdSAleW1t
MTEsIDE3NiglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwgJXltbTYKK3Zt
b3ZkcXUgJXltbTYsIDUyOCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tOCwg
JXltbTgKK3Ztb3ZkcXUgJXltbTgsIDg4MCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXAp
LCAleW1tNywgJXltbTcKK3Ztb3ZkcXUgJXltbTcsIDEyMzIoJXJkaSkKK3Ztb3ZkcWEgOTYoJXJz
cCksICV5bW01Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW05Cit2cHVucGNr
aHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW0xMAordnBzbGxkICQxLCAleW1tOSwgJXltbTkK
K3Zwc2xsZCAkMSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgMzUyKCVyc3ApLCAleW1tNwordnB1
bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW03LCAleW1tOAordnB1bnBja2h3ZCBjb25zdDAoJXJp
cCksICV5bW03LCAleW1tNwordm1vdmRxYSA2MDgoJXJzcCksICV5bW02Cit2cHVucGNrbHdkIGNv
bnN0MCglcmlwKSwgJXltbTYsICV5bW0xMQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW02
LCAleW1tNgordnBhZGRkICV5bW0xMSwgJXltbTgsICV5bW0zCit2cGFkZGQgJXltbTYsICV5bW03
LCAleW1tNAordnBzdWJkICV5bW05LCAleW1tMywgJXltbTMKK3Zwc3ViZCAleW1tMTAsICV5bW00
LCAleW1tNAordnBzdWJkICV5bW0xMSwgJXltbTgsICV5bW0xMQordnBzdWJkICV5bW02LCAleW1t
NywgJXltbTYKK3Zwc3JsZCAkMSwgJXltbTExLCAleW1tMTEKK3Zwc3JsZCAkMSwgJXltbTYsICV5
bW02Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNr
MzJfdG9fMTYoJXJpcCksICV5bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02LCAleW1tMTEsICV5
bW02Cit2bW92ZHFhIDE2MzIoJXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCks
ICV5bW0xMSwgJXltbTcKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW04Cit2
cHNsbGQgJDEsICV5bW03LCAleW1tNwordnBzbGxkICQxLCAleW1tOCwgJXltbTgKK3Zwc3ViZCAl
eW1tNywgJXltbTMsICV5bW0zCit2cHN1YmQgJXltbTgsICV5bW00LCAleW1tNAordnBzcmxkICQx
LCAleW1tMywgJXltbTMKK3Zwc3JsZCAkMSwgJXltbTQsICV5bW00Cit2cGFuZCBtYXNrMzJfdG9f
MTYoJXJpcCksICV5bW0zLCAleW1tMwordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNCwg
JXltbTQKK3ZwYWNrdXNkdyAleW1tNCwgJXltbTMsICV5bW00Cit2bW92ZHFhIDg2NCglcnNwKSwg
JXltbTMKK3ZwYWRkdyAxMTIwKCVyc3ApLCAleW1tMywgJXltbTgKK3Zwc3VidyAxMTIwKCVyc3Ap
LCAleW1tMywgJXltbTMKK3Zwc3JsdyAkMiwgJXltbTMsICV5bW0zCit2cHN1YncgJXltbTYsICV5
bW0zLCAleW1tMwordnBtdWxsdyAleW1tMTQsICV5bW0zLCAleW1tMwordnBzbGx3ICQxLCAleW1t
NSwgJXltbTcKK3Zwc3VidyAleW1tNywgJXltbTgsICV5bW03Cit2cHNsbHcgJDcsICV5bW0xMSwg
JXltbTgKK3Zwc3VidyAleW1tOCwgJXltbTcsICV5bW04Cit2cHNybHcgJDMsICV5bW04LCAleW1t
OAordnBzdWJ3ICV5bW00LCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgMTM3NiglcnNwKSwgJXltbTcK
K3Zwc3VidyAleW1tNSwgJXltbTcsICV5bW03Cit2cG11bGx3ICV5bW0xNSwgJXltbTExLCAleW1t
MTAKK3Zwc3VidyAleW1tMTAsICV5bW03LCAleW1tMTAKK3ZwbXVsbHcgJXltbTE0LCAleW1tOCwg
JXltbTgKK3Zwc3VidyAleW1tOCwgJXltbTQsICV5bW00Cit2cG11bGx3ICV5bW0xMiwgJXltbTgs
ICV5bW03Cit2cGFkZHcgJXltbTcsICV5bW00LCAleW1tNwordnBtdWxsdyAleW1tMTIsICV5bW03
LCAleW1tNwordnBzdWJ3ICV5bW03LCAleW1tMTAsICV5bW03Cit2cG11bGx3ICV5bW0xNCwgJXlt
bTcsICV5bW03Cit2cHN1YncgJXltbTYsICV5bW03LCAleW1tNwordnBzcmx3ICQzLCAleW1tNywg
JXltbTcKK3Zwc3VidyAleW1tMywgJXltbTcsICV5bW03Cit2cHN1YncgJXltbTcsICV5bW0zLCAl
eW1tMwordnBzdWJ3ICV5bW0zLCAleW1tNiwgJXltbTYKK3ZwbXVsbHcgJXltbTEzLCAleW1tNywg
JXltbTcKK3Zwc3VidyAleW1tNywgJXltbTYsICV5bW02Cit2cHNodWZiIHNodWY0OF8xNiglcmlw
KSwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXltbTgsICV5bW0xMAor
dnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW04LCAleW1tOAordnBlcm1xICQyMDYsICV5bW0x
MCwgJXltbTEwCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tMTAsICV5bW05Cit2cG9y
ICV5bW05LCAleW1tOCwgJXltbTgKK3ZwYWRkdyAleW1tOCwgJXltbTUsICV5bW01Cit2bW92ZHFh
ICV4bW0xMCwgMjE0NCglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW03LCAleW1t
NwordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW03LCAleW1tMTAKK3ZwYW5kIG1hc2s1XzNf
NV8zKCVyaXApLCAleW1tNywgJXltbTcKK3ZwZXJtcSAkMjA2LCAleW1tMTAsICV5bW0xMAordnBh
bmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTEwLCAleW1tOQordnBvciAleW1tOSwgJXltbTcs
ICV5bW03Cit2cGFkZHcgJXltbTcsICV5bW02LCAleW1tNgordm1vdmRxYSAleG1tMTAsIDI0MDAo
JXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tMTEsICV5bW0xMQordnBhbmQgbWFz
azNfNV8zXzUoJXJpcCksICV5bW0xMSwgJXltbTEwCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwg
JXltbTExLCAleW1tMTEKK3ZwZXJtcSAkMjA2LCAleW1tMTAsICV5bW0xMAordnBhbmQgbWFza19r
ZWVwaGlnaCglcmlwKSwgJXltbTEwLCAleW1tOQordnBvciAleW1tOSwgJXltbTExLCAleW1tMTEK
K3ZwYWRkdyAleW1tMTEsICV5bW00LCAleW1tNAordm1vdmRxYSAleG1tMTAsIDI2NTYoJXJzcCkK
K3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTUsICV5bW01Cit2bW92ZHF1ICV5bW01LCAy
NjQoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTYsICV5bW02Cit2bW92ZHF1
ICV5bW02LCA2MTYoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTQsICV5bW00
Cit2bW92ZHF1ICV5bW00LCA5NjgoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXlt
bTMsICV5bW0zCit2bW92ZHF1ICV5bW0zLCAxMzIwKCVyZGkpCit2bW92ZHFhIDEyOCglcnNwKSwg
JXltbTExCit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tNwordnB1bnBja2h3
ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTgKK3Zwc2xsZCAkMSwgJXltbTcsICV5bW03Cit2
cHNsbGQgJDEsICV5bW04LCAleW1tOAordm1vdmRxYSAzODQoJXJzcCksICV5bW0zCit2cHVucGNr
bHdkIGNvbnN0MCglcmlwKSwgJXltbTMsICV5bW00Cit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwg
JXltbTMsICV5bW0zCit2bW92ZHFhIDY0MCglcnNwKSwgJXltbTYKK3ZwdW5wY2tsd2QgY29uc3Qw
KCVyaXApLCAleW1tNiwgJXltbTUKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNiwgJXlt
bTYKK3ZwYWRkZCAleW1tNSwgJXltbTQsICV5bW0xMAordnBhZGRkICV5bW02LCAleW1tMywgJXlt
bTkKK3Zwc3ViZCAleW1tNywgJXltbTEwLCAleW1tMTAKK3Zwc3ViZCAleW1tOCwgJXltbTksICV5
bW05Cit2cHN1YmQgJXltbTUsICV5bW00LCAleW1tNQordnBzdWJkICV5bW02LCAleW1tMywgJXlt
bTYKK3Zwc3JsZCAkMSwgJXltbTUsICV5bW01Cit2cHNybGQgJDEsICV5bW02LCAleW1tNgordnBh
bmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szMl90b18xNigl
cmlwKSwgJXltbTYsICV5bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW01LCAleW1tNgordm1vdmRx
YSAxNjY0KCVyc3ApLCAleW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1t
MwordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tNAordnBzbGxkICQxLCAleW1t
MywgJXltbTMKK3Zwc2xsZCAkMSwgJXltbTQsICV5bW00Cit2cHN1YmQgJXltbTMsICV5bW0xMCwg
JXltbTEwCit2cHN1YmQgJXltbTQsICV5bW05LCAleW1tOQordnBzcmxkICQxLCAleW1tMTAsICV5
bW0xMAordnBzcmxkICQxLCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwg
JXltbTEwLCAleW1tMTAKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTksICV5bW05Cit2
cGFja3VzZHcgJXltbTksICV5bW0xMCwgJXltbTkKK3Ztb3ZkcWEgODk2KCVyc3ApLCAleW1tMTAK
K3ZwYWRkdyAxMTUyKCVyc3ApLCAleW1tMTAsICV5bW00Cit2cHN1YncgMTE1MiglcnNwKSwgJXlt
bTEwLCAleW1tMTAKK3Zwc3JsdyAkMiwgJXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tNiwgJXlt
bTEwLCAleW1tMTAKK3ZwbXVsbHcgJXltbTE0LCAleW1tMTAsICV5bW0xMAordnBzbGx3ICQxLCAl
eW1tMTEsICV5bW0zCit2cHN1YncgJXltbTMsICV5bW00LCAleW1tMwordnBzbGx3ICQ3LCAleW1t
NSwgJXltbTQKK3Zwc3VidyAleW1tNCwgJXltbTMsICV5bW00Cit2cHNybHcgJDMsICV5bW00LCAl
eW1tNAordnBzdWJ3ICV5bW05LCAleW1tNCwgJXltbTQKK3Ztb3ZkcWEgMTQwOCglcnNwKSwgJXlt
bTMKK3Zwc3VidyAleW1tMTEsICV5bW0zLCAleW1tMwordnBtdWxsdyAleW1tMTUsICV5bW01LCAl
eW1tOAordnBzdWJ3ICV5bW04LCAleW1tMywgJXltbTgKK3ZwbXVsbHcgJXltbTE0LCAleW1tNCwg
JXltbTQKK3Zwc3VidyAleW1tNCwgJXltbTksICV5bW05Cit2cG11bGx3ICV5bW0xMiwgJXltbTQs
ICV5bW0zCit2cGFkZHcgJXltbTMsICV5bW05LCAleW1tMwordnBtdWxsdyAleW1tMTIsICV5bW0z
LCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1tOCwgJXltbTMKK3ZwbXVsbHcgJXltbTE0LCAleW1t
MywgJXltbTMKK3Zwc3VidyAleW1tNiwgJXltbTMsICV5bW0zCit2cHNybHcgJDMsICV5bW0zLCAl
eW1tMwordnBzdWJ3ICV5bW0xMCwgJXltbTMsICV5bW0zCit2cHN1YncgJXltbTMsICV5bW0xMCwg
JXltbTEwCit2cHN1YncgJXltbTEwLCAleW1tNiwgJXltbTYKK3ZwbXVsbHcgJXltbTEzLCAleW1t
MywgJXltbTMKK3Zwc3VidyAleW1tMywgJXltbTYsICV5bW02Cit2bW92ZHF1IDM1MiglcmRpKSwg
JXltbTgKK3Ztb3ZkcXUgNzA0KCVyZGkpLCAleW1tNwordm1vdmRxdSAxMDU2KCVyZGkpLCAleW1t
MgordnBhZGR3ICV5bW0xMSwgJXltbTgsICV5bW0xMQordnBhZGR3ICV5bW02LCAleW1tNywgJXlt
bTYKK3ZwYWRkdyAleW1tOSwgJXltbTIsICV5bW05Cit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwg
JXltbTEwLCAleW1tMTAKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tMTAsICV5bW0yCit2
cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTEwLCAleW1tMTAKK3ZwZXJtcSAkMjA2LCAleW1t
MiwgJXltbTIKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0yLCAleW1tNwordnBvciAl
eW1tNywgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcXUgMCglcmRpKSwgJXltbTcKK3ZwYWRkdyAleW1t
MTAsICV5bW03LCAleW1tNwordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNywgJXltbTcK
K3Ztb3ZkcXUgJXltbTcsIDAoJXJkaSkKK3Ztb3ZkcWEgJXhtbTIsIDE5MjAoJXJzcCkKK3Zwc2h1
ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNCwgJXltbTQKK3ZwYW5kIG1hc2szXzVfM181KCVyaXAp
LCAleW1tNCwgJXltbTIKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNCwgJXltbTQKK3Zw
ZXJtcSAkMjA2LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0y
LCAleW1tNwordnBvciAleW1tNywgJXltbTQsICV5bW00Cit2cGFkZHcgJXltbTQsICV5bW0xMSwg
JXltbTExCit2bW92ZHFhICV4bW0yLCAyMTc2KCVyc3ApCit2cHNodWZiIHNodWY0OF8xNiglcmlw
KSwgJXltbTMsICV5bW0zCit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXltbTMsICV5bW0yCit2
cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTMsICV5bW0zCit2cGVybXEgJDIwNiwgJXltbTIs
ICV5bW0yCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tMiwgJXltbTcKK3Zwb3IgJXlt
bTcsICV5bW0zLCAleW1tMwordnBhZGR3ICV5bW0zLCAleW1tNiwgJXltbTYKK3Ztb3ZkcWEgJXht
bTIsIDI0MzIoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3Zw
YW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNSwgJXltbTIKK3ZwYW5kIG1hc2s1XzNfNV8zKCVy
aXApLCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkMjA2LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2tf
a2VlcGhpZ2goJXJpcCksICV5bW0yLCAleW1tNwordnBvciAleW1tNywgJXltbTUsICV5bW01Cit2
cGFkZHcgJXltbTUsICV5bW05LCAleW1tOQordm1vdmRxYSAleG1tMiwgMjY4OCglcnNwKQordnBh
bmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0xMQordm1vdmRxdSAleW1tMTEsIDM1
MiglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUg
JXltbTYsIDcwNCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tOSwgJXltbTkK
K3Ztb3ZkcXUgJXltbTksIDEwNTYoJXJkaSkKK3Ztb3ZkcWEgMTYwKCVyc3ApLCAleW1tNQordnB1
bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tMwordnB1bnBja2h3ZCBjb25zdDAoJXJp
cCksICV5bW01LCAleW1tNAordnBzbGxkICQxLCAleW1tMywgJXltbTMKK3Zwc2xsZCAkMSwgJXlt
bTQsICV5bW00Cit2bW92ZHFhIDQxNiglcnNwKSwgJXltbTEwCit2cHVucGNrbHdkIGNvbnN0MCgl
cmlwKSwgJXltbTEwLCAleW1tOQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW0xMCwgJXlt
bTEwCit2bW92ZHFhIDY3MiglcnNwKSwgJXltbTYKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAl
eW1tNiwgJXltbTExCit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTYsICV5bW02Cit2cGFk
ZGQgJXltbTExLCAleW1tOSwgJXltbTIKK3ZwYWRkZCAleW1tNiwgJXltbTEwLCAleW1tNwordnBz
dWJkICV5bW0zLCAleW1tMiwgJXltbTIKK3Zwc3ViZCAleW1tNCwgJXltbTcsICV5bW03Cit2cHN1
YmQgJXltbTExLCAleW1tOSwgJXltbTExCit2cHN1YmQgJXltbTYsICV5bW0xMCwgJXltbTYKK3Zw
c3JsZCAkMSwgJXltbTExLCAleW1tMTEKK3Zwc3JsZCAkMSwgJXltbTYsICV5bW02Cit2cGFuZCBt
YXNrMzJfdG9fMTYoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJp
cCksICV5bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02LCAleW1tMTEsICV5bW02Cit2bW92ZHFh
IDE2OTYoJXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXlt
bTEwCit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tOQordnBzbGxkICQxLCAl
eW1tMTAsICV5bW0xMAordnBzbGxkICQxLCAleW1tOSwgJXltbTkKK3Zwc3ViZCAleW1tMTAsICV5
bW0yLCAleW1tMgordnBzdWJkICV5bW05LCAleW1tNywgJXltbTcKK3Zwc3JsZCAkMSwgJXltbTIs
ICV5bW0yCit2cHNybGQgJDEsICV5bW03LCAleW1tNwordnBhbmQgbWFzazMyX3RvXzE2KCVyaXAp
LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTcsICV5bW03Cit2
cGFja3VzZHcgJXltbTcsICV5bW0yLCAleW1tNwordm1vdmRxYSA5MjgoJXJzcCksICV5bW0yCit2
cGFkZHcgMTE4NCglcnNwKSwgJXltbTIsICV5bW05Cit2cHN1YncgMTE4NCglcnNwKSwgJXltbTIs
ICV5bW0yCit2cHNybHcgJDIsICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW02LCAleW1tMiwgJXlt
bTIKK3ZwbXVsbHcgJXltbTE0LCAleW1tMiwgJXltbTIKK3Zwc2xsdyAkMSwgJXltbTUsICV5bW0x
MAordnBzdWJ3ICV5bW0xMCwgJXltbTksICV5bW0xMAordnBzbGx3ICQ3LCAleW1tMTEsICV5bW05
Cit2cHN1YncgJXltbTksICV5bW0xMCwgJXltbTkKK3Zwc3JsdyAkMywgJXltbTksICV5bW05Cit2
cHN1YncgJXltbTcsICV5bW05LCAleW1tOQordm1vdmRxYSAxNDQwKCVyc3ApLCAleW1tMTAKK3Zw
c3VidyAleW1tNSwgJXltbTEwLCAleW1tMTAKK3ZwbXVsbHcgJXltbTE1LCAleW1tMTEsICV5bW00
Cit2cHN1YncgJXltbTQsICV5bW0xMCwgJXltbTQKK3ZwbXVsbHcgJXltbTE0LCAleW1tOSwgJXlt
bTkKK3Zwc3VidyAleW1tOSwgJXltbTcsICV5bW03Cit2cG11bGx3ICV5bW0xMiwgJXltbTksICV5
bW0xMAordnBhZGR3ICV5bW0xMCwgJXltbTcsICV5bW0xMAordnBtdWxsdyAleW1tMTIsICV5bW0x
MCwgJXltbTEwCit2cHN1YncgJXltbTEwLCAleW1tNCwgJXltbTEwCit2cG11bGx3ICV5bW0xNCwg
JXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tNiwgJXltbTEwLCAleW1tMTAKK3Zwc3JsdyAkMywg
JXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tMiwgJXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1t
MTAsICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW0yLCAleW1tNiwgJXltbTYKK3ZwbXVsbHcgJXlt
bTEzLCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5bW0xMCwgJXltbTYsICV5bW02Cit2bW92ZHF1
IDQ0MCglcmRpKSwgJXltbTQKK3Ztb3ZkcXUgNzkyKCVyZGkpLCAleW1tMwordm1vdmRxdSAxMTQ0
KCVyZGkpLCAleW1tOAordnBhZGR3ICV5bW01LCAleW1tNCwgJXltbTUKK3ZwYWRkdyAleW1tNiwg
JXltbTMsICV5bW02Cit2cGFkZHcgJXltbTcsICV5bW04LCAleW1tNwordnBzaHVmYiBzaHVmNDhf
MTYoJXJpcCksICV5bW0yLCAleW1tMgordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW0yLCAl
eW1tOAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW0yLCAleW1tMgordnBlcm1xICQyMDYs
ICV5bW04LCAleW1tOAordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTgsICV5bW0zCit2
cG9yICV5bW0zLCAleW1tMiwgJXltbTIKK3Ztb3ZkcXUgODgoJXJkaSksICV5bW0zCit2cGFkZHcg
JXltbTIsICV5bW0zLCAleW1tMwordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMywgJXlt
bTMKK3Ztb3ZkcXUgJXltbTMsIDg4KCVyZGkpCit2bW92ZHFhICV4bW04LCAxOTUyKCVyc3ApCit2
cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTksICV5bW05Cit2cGFuZCBtYXNrM181XzNfNSgl
cmlwKSwgJXltbTksICV5bW04Cit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTksICV5bW05
Cit2cGVybXEgJDIwNiwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAl
eW1tOCwgJXltbTMKK3Zwb3IgJXltbTMsICV5bW05LCAleW1tOQordnBhZGR3ICV5bW05LCAleW1t
NSwgJXltbTUKK3Ztb3ZkcWEgJXhtbTgsIDIyMDgoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVy
aXApLCAleW1tMTAsICV5bW0xMAordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW0xMCwgJXlt
bTgKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tMTAsICV5bW0xMAordnBlcm1xICQyMDYs
ICV5bW04LCAleW1tOAordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTgsICV5bW0zCit2
cG9yICV5bW0zLCAleW1tMTAsICV5bW0xMAordnBhZGR3ICV5bW0xMCwgJXltbTYsICV5bW02Cit2
bW92ZHFhICV4bW04LCAyNDY0KCVyc3ApCit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTEx
LCAleW1tMTEKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tMTEsICV5bW04Cit2cGFuZCBt
YXNrNV8zXzVfMyglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwZXJtcSAkMjA2LCAleW1tOCwgJXlt
bTgKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW04LCAleW1tMwordnBvciAleW1tMywg
JXltbTExLCAleW1tMTEKK3ZwYWRkdyAleW1tMTEsICV5bW03LCAleW1tNwordm1vdmRxYSAleG1t
OCwgMjcyMCglcnNwKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNSwgJXltbTUKK3Zt
b3ZkcXUgJXltbTUsIDQ0MCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwg
JXltbTYKK3Ztb3ZkcXUgJXltbTYsIDc5MiglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXAp
LCAleW1tNywgJXltbTcKK3Ztb3ZkcXUgJXltbTcsIDExNDQoJXJkaSkKK3Ztb3ZkcWEgMTkyKCVy
c3ApLCAleW1tMTEKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW0xMAordnB1
bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTkKK3Zwc2xsZCAkMSwgJXltbTEwLCAl
eW1tMTAKK3Zwc2xsZCAkMSwgJXltbTksICV5bW05Cit2bW92ZHFhIDQ0OCglcnNwKSwgJXltbTIK
K3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tMiwgJXltbTcKK3ZwdW5wY2tod2QgY29uc3Qw
KCVyaXApLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgNzA0KCVyc3ApLCAleW1tNgordnB1bnBja2x3
ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5
bW02LCAleW1tNgordnBhZGRkICV5bW01LCAleW1tNywgJXltbTgKK3ZwYWRkZCAleW1tNiwgJXlt
bTIsICV5bW0zCit2cHN1YmQgJXltbTEwLCAleW1tOCwgJXltbTgKK3Zwc3ViZCAleW1tOSwgJXlt
bTMsICV5bW0zCit2cHN1YmQgJXltbTUsICV5bW03LCAleW1tNQordnBzdWJkICV5bW02LCAleW1t
MiwgJXltbTYKK3Zwc3JsZCAkMSwgJXltbTUsICV5bW01Cit2cHNybGQgJDEsICV5bW02LCAleW1t
NgordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szMl90
b18xNiglcmlwKSwgJXltbTYsICV5bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW01LCAleW1tNgor
dm1vdmRxYSAxNzI4KCVyc3ApLCAleW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01
LCAleW1tMgordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tNwordnBzbGxkICQx
LCAleW1tMiwgJXltbTIKK3Zwc2xsZCAkMSwgJXltbTcsICV5bW03Cit2cHN1YmQgJXltbTIsICV5
bW04LCAleW1tOAordnBzdWJkICV5bW03LCAleW1tMywgJXltbTMKK3Zwc3JsZCAkMSwgJXltbTgs
ICV5bW04Cit2cHNybGQgJDEsICV5bW0zLCAleW1tMwordnBhbmQgbWFzazMyX3RvXzE2KCVyaXAp
LCAleW1tOCwgJXltbTgKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTMsICV5bW0zCit2
cGFja3VzZHcgJXltbTMsICV5bW04LCAleW1tMwordm1vdmRxYSA5NjAoJXJzcCksICV5bW04Cit2
cGFkZHcgMTIxNiglcnNwKSwgJXltbTgsICV5bW03Cit2cHN1YncgMTIxNiglcnNwKSwgJXltbTgs
ICV5bW04Cit2cHNybHcgJDIsICV5bW04LCAleW1tOAordnBzdWJ3ICV5bW02LCAleW1tOCwgJXlt
bTgKK3ZwbXVsbHcgJXltbTE0LCAleW1tOCwgJXltbTgKK3Zwc2xsdyAkMSwgJXltbTExLCAleW1t
MgordnBzdWJ3ICV5bW0yLCAleW1tNywgJXltbTIKK3Zwc2xsdyAkNywgJXltbTUsICV5bW03Cit2
cHN1YncgJXltbTcsICV5bW0yLCAleW1tNwordnBzcmx3ICQzLCAleW1tNywgJXltbTcKK3Zwc3Vi
dyAleW1tMywgJXltbTcsICV5bW03Cit2bW92ZHFhIDE0NzIoJXJzcCksICV5bW0yCit2cHN1Yncg
JXltbTExLCAleW1tMiwgJXltbTIKK3ZwbXVsbHcgJXltbTE1LCAleW1tNSwgJXltbTkKK3Zwc3Vi
dyAleW1tOSwgJXltbTIsICV5bW05Cit2cG11bGx3ICV5bW0xNCwgJXltbTcsICV5bW03Cit2cHN1
YncgJXltbTcsICV5bW0zLCAleW1tMwordnBtdWxsdyAleW1tMTIsICV5bW03LCAleW1tMgordnBh
ZGR3ICV5bW0yLCAleW1tMywgJXltbTIKK3ZwbXVsbHcgJXltbTEyLCAleW1tMiwgJXltbTIKK3Zw
c3VidyAleW1tMiwgJXltbTksICV5bW0yCit2cG11bGx3ICV5bW0xNCwgJXltbTIsICV5bW0yCit2
cHN1YncgJXltbTYsICV5bW0yLCAleW1tMgordnBzcmx3ICQzLCAleW1tMiwgJXltbTIKK3Zwc3Vi
dyAleW1tOCwgJXltbTIsICV5bW0yCit2cHN1YncgJXltbTIsICV5bW04LCAleW1tOAordnBzdWJ3
ICV5bW04LCAleW1tNiwgJXltbTYKK3ZwbXVsbHcgJXltbTEzLCAleW1tMiwgJXltbTIKK3Zwc3Vi
dyAleW1tMiwgJXltbTYsICV5bW02Cit2bW92ZHF1IDUyOCglcmRpKSwgJXltbTkKK3Ztb3ZkcXUg
ODgwKCVyZGkpLCAleW1tMTAKK3Ztb3ZkcXUgMTIzMiglcmRpKSwgJXltbTQKK3ZwYWRkdyAleW1t
MTEsICV5bW05LCAleW1tMTEKK3ZwYWRkdyAleW1tNiwgJXltbTEwLCAleW1tNgordnBhZGR3ICV5
bW0zLCAleW1tNCwgJXltbTMKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tOCwgJXltbTgK
K3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tOCwgJXltbTQKK3ZwYW5kIG1hc2s1XzNfNV8z
KCVyaXApLCAleW1tOCwgJXltbTgKK3ZwZXJtcSAkMjA2LCAleW1tNCwgJXltbTQKK3ZwYW5kIG1h
c2tfa2VlcGhpZ2goJXJpcCksICV5bW00LCAleW1tMTAKK3Zwb3IgJXltbTEwLCAleW1tOCwgJXlt
bTgKK3Ztb3ZkcXUgMTc2KCVyZGkpLCAleW1tMTAKK3ZwYWRkdyAleW1tOCwgJXltbTEwLCAleW1t
MTAKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcXUgJXlt
bTEwLCAxNzYoJXJkaSkKK3Ztb3ZkcWEgJXhtbTQsIDE5ODQoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4
XzE2KCVyaXApLCAleW1tNywgJXltbTcKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNywg
JXltbTQKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNywgJXltbTcKK3ZwZXJtcSAkMjA2
LCAleW1tNCwgJXltbTQKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW00LCAleW1tMTAK
K3Zwb3IgJXltbTEwLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1tNywgJXltbTExLCAleW1tMTEK
K3Ztb3ZkcWEgJXhtbTQsIDIyNDAoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1t
MiwgJXltbTIKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tMiwgJXltbTQKK3ZwYW5kIG1h
c2s1XzNfNV8zKCVyaXApLCAleW1tMiwgJXltbTIKK3ZwZXJtcSAkMjA2LCAleW1tNCwgJXltbTQK
K3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW00LCAleW1tMTAKK3Zwb3IgJXltbTEwLCAl
eW1tMiwgJXltbTIKK3ZwYWRkdyAleW1tMiwgJXltbTYsICV5bW02Cit2bW92ZHFhICV4bW00LCAy
NDk2KCVyc3ApCit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTUsICV5bW01Cit2cGFuZCBt
YXNrM181XzNfNSglcmlwKSwgJXltbTUsICV5bW00Cit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwg
JXltbTUsICV5bW01Cit2cGVybXEgJDIwNiwgJXltbTQsICV5bW00Cit2cGFuZCBtYXNrX2tlZXBo
aWdoKCVyaXApLCAleW1tNCwgJXltbTEwCit2cG9yICV5bW0xMCwgJXltbTUsICV5bW01Cit2cGFk
ZHcgJXltbTUsICV5bW0zLCAleW1tMwordm1vdmRxYSAleG1tNCwgMjc1MiglcnNwKQordnBhbmQg
bWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0xMQordm1vdmRxdSAleW1tMTEsIDUyOCgl
cmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXlt
bTYsIDg4MCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMywgJXltbTMKK3Zt
b3ZkcXUgJXltbTMsIDEyMzIoJXJkaSkKK3Ztb3ZkcWEgMjI0KCVyc3ApLCAleW1tNQordnB1bnBj
a2x3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tMgordnB1bnBja2h3ZCBjb25zdDAoJXJpcCks
ICV5bW01LCAleW1tNwordnBzbGxkICQxLCAleW1tMiwgJXltbTIKK3Zwc2xsZCAkMSwgJXltbTcs
ICV5bW03Cit2bW92ZHFhIDQ4MCglcnNwKSwgJXltbTgKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXAp
LCAleW1tOCwgJXltbTMKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tOCwgJXltbTgKK3Zt
b3ZkcWEgNzM2KCVyc3ApLCAleW1tNgordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAl
eW1tMTEKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNiwgJXltbTYKK3ZwYWRkZCAleW1t
MTEsICV5bW0zLCAleW1tNAordnBhZGRkICV5bW02LCAleW1tOCwgJXltbTEwCit2cHN1YmQgJXlt
bTIsICV5bW00LCAleW1tNAordnBzdWJkICV5bW03LCAleW1tMTAsICV5bW0xMAordnBzdWJkICV5
bW0xMSwgJXltbTMsICV5bW0xMQordnBzdWJkICV5bW02LCAleW1tOCwgJXltbTYKK3Zwc3JsZCAk
MSwgJXltbTExLCAleW1tMTEKK3Zwc3JsZCAkMSwgJXltbTYsICV5bW02Cit2cGFuZCBtYXNrMzJf
dG9fMTYoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5
bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02LCAleW1tMTEsICV5bW02Cit2bW92ZHFhIDE3NjAo
JXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTgKK3Zw
dW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW0zCit2cHNsbGQgJDEsICV5bW04LCAl
eW1tOAordnBzbGxkICQxLCAleW1tMywgJXltbTMKK3Zwc3ViZCAleW1tOCwgJXltbTQsICV5bW00
Cit2cHN1YmQgJXltbTMsICV5bW0xMCwgJXltbTEwCit2cHNybGQgJDEsICV5bW00LCAleW1tNAor
dnBzcmxkICQxLCAleW1tMTAsICV5bW0xMAordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1t
NCwgJXltbTQKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTEwLCAleW1tMTAKK3ZwYWNr
dXNkdyAleW1tMTAsICV5bW00LCAleW1tMTAKK3Ztb3ZkcWEgOTkyKCVyc3ApLCAleW1tNAordnBh
ZGR3IDEyNDgoJXJzcCksICV5bW00LCAleW1tMwordnBzdWJ3IDEyNDgoJXJzcCksICV5bW00LCAl
eW1tNAordnBzcmx3ICQyLCAleW1tNCwgJXltbTQKK3Zwc3VidyAleW1tNiwgJXltbTQsICV5bW00
Cit2cG11bGx3ICV5bW0xNCwgJXltbTQsICV5bW00Cit2cHNsbHcgJDEsICV5bW01LCAleW1tOAor
dnBzdWJ3ICV5bW04LCAleW1tMywgJXltbTgKK3Zwc2xsdyAkNywgJXltbTExLCAleW1tMwordnBz
dWJ3ICV5bW0zLCAleW1tOCwgJXltbTMKK3Zwc3JsdyAkMywgJXltbTMsICV5bW0zCit2cHN1Yncg
JXltbTEwLCAleW1tMywgJXltbTMKK3Ztb3ZkcWEgMTUwNCglcnNwKSwgJXltbTgKK3Zwc3VidyAl
eW1tNSwgJXltbTgsICV5bW04Cit2cG11bGx3ICV5bW0xNSwgJXltbTExLCAleW1tNwordnBzdWJ3
ICV5bW03LCAleW1tOCwgJXltbTcKK3ZwbXVsbHcgJXltbTE0LCAleW1tMywgJXltbTMKK3Zwc3Vi
dyAleW1tMywgJXltbTEwLCAleW1tMTAKK3ZwbXVsbHcgJXltbTEyLCAleW1tMywgJXltbTgKK3Zw
YWRkdyAleW1tOCwgJXltbTEwLCAleW1tOAordnBtdWxsdyAleW1tMTIsICV5bW04LCAleW1tOAor
dnBzdWJ3ICV5bW04LCAleW1tNywgJXltbTgKK3ZwbXVsbHcgJXltbTE0LCAleW1tOCwgJXltbTgK
K3Zwc3VidyAleW1tNiwgJXltbTgsICV5bW04Cit2cHNybHcgJDMsICV5bW04LCAleW1tOAordnBz
dWJ3ICV5bW00LCAleW1tOCwgJXltbTgKK3Zwc3VidyAleW1tOCwgJXltbTQsICV5bW00Cit2cHN1
YncgJXltbTQsICV5bW02LCAleW1tNgordnBtdWxsdyAleW1tMTMsICV5bW04LCAleW1tOAordnBz
dWJ3ICV5bW04LCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgNjE2KCVyZGkpLCAleW1tNwordm1vdmRx
dSA5NjgoJXJkaSksICV5bW0yCit2bW92ZHF1IDEzMjAoJXJkaSksICV5bW05Cit2cGFkZHcgJXlt
bTUsICV5bW03LCAleW1tNQordnBhZGR3ICV5bW02LCAleW1tMiwgJXltbTYKK3ZwYWRkdyAleW1t
MTAsICV5bW05LCAleW1tMTAKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNCwgJXltbTQK
K3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNCwgJXltbTkKK3ZwYW5kIG1hc2s1XzNfNV8z
KCVyaXApLCAleW1tNCwgJXltbTQKK3ZwZXJtcSAkMjA2LCAleW1tOSwgJXltbTkKK3ZwYW5kIG1h
c2tfa2VlcGhpZ2goJXJpcCksICV5bW05LCAleW1tMgordnBvciAleW1tMiwgJXltbTQsICV5bW00
Cit2bW92ZHF1IDI2NCglcmRpKSwgJXltbTIKK3ZwYWRkdyAleW1tNCwgJXltbTIsICV5bW0yCit2
cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0yLCAleW1tMgordm1vdmRxdSAleW1tMiwgMjY0
KCVyZGkpCit2bW92ZHFhICV4bW05LCAyMDE2KCVyc3ApCit2cHNodWZiIHNodWY0OF8xNiglcmlw
KSwgJXltbTMsICV5bW0zCit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXltbTMsICV5bW05Cit2
cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTMsICV5bW0zCit2cGVybXEgJDIwNiwgJXltbTks
ICV5bW05Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tOSwgJXltbTIKK3Zwb3IgJXlt
bTIsICV5bW0zLCAleW1tMwordnBhZGR3ICV5bW0zLCAleW1tNSwgJXltbTUKK3Ztb3ZkcWEgJXht
bTksIDIyNzIoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tOCwgJXltbTgKK3Zw
YW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tOCwgJXltbTkKK3ZwYW5kIG1hc2s1XzNfNV8zKCVy
aXApLCAleW1tOCwgJXltbTgKK3ZwZXJtcSAkMjA2LCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2tf
a2VlcGhpZ2goJXJpcCksICV5bW05LCAleW1tMgordnBvciAleW1tMiwgJXltbTgsICV5bW04Cit2
cGFkZHcgJXltbTgsICV5bW02LCAleW1tNgordm1vdmRxYSAleG1tOSwgMjUyOCglcnNwKQordnBz
aHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrM181XzNfNSgl
cmlwKSwgJXltbTExLCAleW1tOQordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW0xMSwgJXlt
bTExCit2cGVybXEgJDIwNiwgJXltbTksICV5bW05Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXAp
LCAleW1tOSwgJXltbTIKK3Zwb3IgJXltbTIsICV5bW0xMSwgJXltbTExCit2cGFkZHcgJXltbTEx
LCAleW1tMTAsICV5bW0xMAordm1vdmRxYSAleG1tOSwgMjc4NCglcnNwKQordnBhbmQgbWFza19t
b2Q4MTkyKCVyaXApLCAleW1tNSwgJXltbTUKK3Ztb3ZkcXUgJXltbTUsIDYxNiglcmRpKQordnBh
bmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXltbTYsIDk2OCgl
cmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTAsICV5bW0xMAordm1vdmRxdSAl
eW1tMTAsIDEzMjAoJXJkaSkKK3Ztb3ZkcWEgMTI4KCVyMTIpLCAleW1tMAordnBzdWJ3IDIyNCgl
cjEyKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDUxMiglcjEyKSwgJXltbTEKK3Zwc3VidyAleW1t
MCwgJXltbTEsICV5bW0xCit2cHN1YncgMzIwKCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAz
MiglcjEyKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNDE2KCVyMTIpLCAleW1tMCwgJXltbTAKK3Zt
b3ZkcWEgNzA0KCVyMTIpLCAleW1tMgordnBzdWJ3IDgwMCglcjEyKSwgJXltbTIsICV5bW0yCit2
bW92ZHFhIDEwODgoJXIxMiksICV5bW0zCit2cHN1YncgJXltbTIsICV5bW0zLCAleW1tMwordnBz
dWJ3IDg5NiglcjEyKSwgJXltbTMsICV5bW0zCit2cHN1YncgNjA4KCVyMTIpLCAleW1tMiwgJXlt
bTIKK3ZwYWRkdyA5OTIoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRxYSAxMjgwKCVyMTIpLCAl
eW1tNAordnBzdWJ3IDEzNzYoJXIxMiksICV5bW00LCAleW1tNAordm1vdmRxYSAxNjY0KCVyMTIp
LCAleW1tNQordnBzdWJ3ICV5bW00LCAleW1tNSwgJXltbTUKK3Zwc3VidyAxNDcyKCVyMTIpLCAl
eW1tNSwgJXltbTUKK3Zwc3VidyAxMTg0KCVyMTIpLCAleW1tNCwgJXltbTQKK3ZwYWRkdyAxNTY4
KCVyMTIpLCAleW1tNCwgJXltbTQKK3Zwc3VidyA2MDgoJXIxMiksICV5bW0xLCAleW1tMQordnBz
dWJ3ICV5bW0xLCAleW1tNSwgJXltbTUKK3Zwc3VidyAleW1tMywgJXltbTUsICV5bW01Cit2cHN1
YncgMzIoJXIxMiksICV5bW0xLCAleW1tMQordnBhZGR3IDExODQoJXIxMiksICV5bW0xLCAleW1t
MQordm1vdmRxYSAzMjAoJXIxMiksICV5bW02Cit2cHN1YncgJXltbTIsICV5bW02LCAleW1tNwor
dm1vdmRxYSAxNDcyKCVyMTIpLCAleW1tMgordnBzdWJ3ICV5bW03LCAleW1tMiwgJXltbTIKK3Zw
c3VidyA4OTYoJXIxMiksICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW0wLCAleW1tNywgJXltbTcK
K3ZwYWRkdyAleW1tNCwgJXltbTcsICV5bW03Cit2bW92ZHFhIDMyKCVyMTIpLCAleW1tOAordm1v
dmRxYSA4OTYoJXIxMiksICV5bW05Cit2bW92ZHFhICV5bW04LCAwKCVyc3ApCit2bW92ZHFhICV5
bW0wLCAzMiglcnNwKQordm1vdmRxYSAleW1tMSwgNjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTcsIDk2
KCVyc3ApCit2bW92ZHFhICV5bW01LCAxMjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTIsIDE2MCglcnNw
KQordm1vdmRxYSAleW1tMywgMTkyKCVyc3ApCit2bW92ZHFhICV5bW05LCAyMjQoJXJzcCkKK3Zt
b3ZkcWEgMTg1NiglcjEyKSwgJXltbTAKK3Zwc3VidyAxOTUyKCVyMTIpLCAleW1tMCwgJXltbTAK
K3Ztb3ZkcWEgMjI0MCglcjEyKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXltbTEsICV5bW0xCit2
cHN1YncgMjA0OCglcjEyKSwgJXltbTEsICV5bW0xCit2cHN1YncgMTc2MCglcjEyKSwgJXltbTAs
ICV5bW0wCit2cGFkZHcgMjE0NCglcjEyKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDI0MzIoJXIx
MiksICV5bW0yCit2cHN1YncgMjUyOCglcjEyKSwgJXltbTIsICV5bW0yCit2bW92ZHFhIDI4MTYo
JXIxMiksICV5bW0zCit2cHN1YncgJXltbTIsICV5bW0zLCAleW1tMwordnBzdWJ3IDI2MjQoJXIx
MiksICV5bW0zLCAleW1tMwordnBzdWJ3IDIzMzYoJXIxMiksICV5bW0yLCAleW1tMgordnBhZGR3
IDI3MjAoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRxYSAzMDA4KCVyMTIpLCAleW1tNAordnBz
dWJ3IDMxMDQoJXIxMiksICV5bW00LCAleW1tNAordm1vdmRxYSAzMzkyKCVyMTIpLCAleW1tNQor
dnBzdWJ3ICV5bW00LCAleW1tNSwgJXltbTUKK3Zwc3VidyAzMjAwKCVyMTIpLCAleW1tNSwgJXlt
bTUKK3Zwc3VidyAyOTEyKCVyMTIpLCAleW1tNCwgJXltbTQKK3ZwYWRkdyAzMjk2KCVyMTIpLCAl
eW1tNCwgJXltbTQKK3Zwc3VidyAyMzM2KCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAleW1t
MSwgJXltbTUsICV5bW01Cit2cHN1YncgJXltbTMsICV5bW01LCAleW1tNQordnBzdWJ3IDE3NjAo
JXIxMiksICV5bW0xLCAleW1tMQordnBhZGR3IDI5MTIoJXIxMiksICV5bW0xLCAleW1tMQordm1v
dmRxYSAyMDQ4KCVyMTIpLCAleW1tNgordnBzdWJ3ICV5bW0yLCAleW1tNiwgJXltbTcKK3Ztb3Zk
cWEgMzIwMCglcjEyKSwgJXltbTIKK3Zwc3VidyAleW1tNywgJXltbTIsICV5bW0yCit2cHN1Yncg
MjYyNCglcjEyKSwgJXltbTIsICV5bW0yCit2cHN1YncgJXltbTAsICV5bW03LCAleW1tNwordnBh
ZGR3ICV5bW00LCAleW1tNywgJXltbTcKK3Ztb3ZkcWEgMTc2MCglcjEyKSwgJXltbTgKK3Ztb3Zk
cWEgMjYyNCglcjEyKSwgJXltbTkKK3Ztb3ZkcWEgJXltbTgsIDI1NiglcnNwKQordm1vdmRxYSAl
eW1tMCwgMjg4KCVyc3ApCit2bW92ZHFhICV5bW0xLCAzMjAoJXJzcCkKK3Ztb3ZkcWEgJXltbTcs
IDM1MiglcnNwKQordm1vdmRxYSAleW1tNSwgMzg0KCVyc3ApCit2bW92ZHFhICV5bW0yLCA0MTYo
JXJzcCkKK3Ztb3ZkcWEgJXltbTMsIDQ0OCglcnNwKQordm1vdmRxYSAleW1tOSwgNDgwKCVyc3Ap
Cit2bW92ZHFhIDM1ODQoJXIxMiksICV5bW0wCit2cHN1YncgMzY4MCglcjEyKSwgJXltbTAsICV5
bW0wCit2bW92ZHFhIDM5NjgoJXIxMiksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1t
MQordnBzdWJ3IDM3NzYoJXIxMiksICV5bW0xLCAleW1tMQordnBzdWJ3IDM0ODgoJXIxMiksICV5
bW0wLCAleW1tMAordnBhZGR3IDM4NzIoJXIxMiksICV5bW0wLCAleW1tMAordm1vdmRxYSA0MTYw
KCVyMTIpLCAleW1tMgordnBzdWJ3IDQyNTYoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRxYSA0
NTQ0KCVyMTIpLCAleW1tMwordnBzdWJ3ICV5bW0yLCAleW1tMywgJXltbTMKK3Zwc3VidyA0MzUy
KCVyMTIpLCAleW1tMywgJXltbTMKK3Zwc3VidyA0MDY0KCVyMTIpLCAleW1tMiwgJXltbTIKK3Zw
YWRkdyA0NDQ4KCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgNDczNiglcjEyKSwgJXltbTQK
K3Zwc3VidyA0ODMyKCVyMTIpLCAleW1tNCwgJXltbTQKK3Ztb3ZkcWEgNTEyMCglcjEyKSwgJXlt
bTUKK3Zwc3VidyAleW1tNCwgJXltbTUsICV5bW01Cit2cHN1YncgNDkyOCglcjEyKSwgJXltbTUs
ICV5bW01Cit2cHN1YncgNDY0MCglcjEyKSwgJXltbTQsICV5bW00Cit2cGFkZHcgNTAyNCglcjEy
KSwgJXltbTQsICV5bW00Cit2cHN1YncgNDA2NCglcjEyKSwgJXltbTEsICV5bW0xCit2cHN1Yncg
JXltbTEsICV5bW01LCAleW1tNQordnBzdWJ3ICV5bW0zLCAleW1tNSwgJXltbTUKK3Zwc3VidyAz
NDg4KCVyMTIpLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA0NjQwKCVyMTIpLCAleW1tMSwgJXltbTEK
K3Ztb3ZkcWEgMzc3NiglcjEyKSwgJXltbTYKK3Zwc3VidyAleW1tMiwgJXltbTYsICV5bW03Cit2
bW92ZHFhIDQ5MjgoJXIxMiksICV5bW0yCit2cHN1YncgJXltbTcsICV5bW0yLCAleW1tMgordnBz
dWJ3IDQzNTIoJXIxMiksICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW0wLCAleW1tNywgJXltbTcK
K3ZwYWRkdyAleW1tNCwgJXltbTcsICV5bW03Cit2bW92ZHFhIDM0ODgoJXIxMiksICV5bW04Cit2
bW92ZHFhIDQzNTIoJXIxMiksICV5bW05Cit2bW92ZHFhICV5bW04LCA1MTIoJXJzcCkKK3Ztb3Zk
cWEgJXltbTAsIDU0NCglcnNwKQordm1vdmRxYSAleW1tMSwgNTc2KCVyc3ApCit2bW92ZHFhICV5
bW03LCA2MDgoJXJzcCkKK3Ztb3ZkcWEgJXltbTUsIDY0MCglcnNwKQordm1vdmRxYSAleW1tMiwg
NjcyKCVyc3ApCit2bW92ZHFhICV5bW0zLCA3MDQoJXJzcCkKK3Ztb3ZkcWEgJXltbTksIDczNigl
cnNwKQordm1vdmRxYSA1MzEyKCVyMTIpLCAleW1tMAordnBzdWJ3IDU0MDgoJXIxMiksICV5bW0w
LCAleW1tMAordm1vdmRxYSA1Njk2KCVyMTIpLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwg
JXltbTEKK3Zwc3VidyA1NTA0KCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyA1MjE2KCVyMTIp
LCAleW1tMCwgJXltbTAKK3ZwYWRkdyA1NjAwKCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEg
NTg4OCglcjEyKSwgJXltbTIKK3Zwc3VidyA1OTg0KCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3Zk
cWEgNjI3MiglcjEyKSwgJXltbTMKK3Zwc3VidyAleW1tMiwgJXltbTMsICV5bW0zCit2cHN1Yncg
NjA4MCglcjEyKSwgJXltbTMsICV5bW0zCit2cHN1YncgNTc5MiglcjEyKSwgJXltbTIsICV5bW0y
Cit2cGFkZHcgNjE3NiglcjEyKSwgJXltbTIsICV5bW0yCit2bW92ZHFhIDY0NjQoJXIxMiksICV5
bW00Cit2cHN1YncgNjU2MCglcjEyKSwgJXltbTQsICV5bW00Cit2bW92ZHFhIDY4NDgoJXIxMiks
ICV5bW01Cit2cHN1YncgJXltbTQsICV5bW01LCAleW1tNQordnBzdWJ3IDY2NTYoJXIxMiksICV5
bW01LCAleW1tNQordnBzdWJ3IDYzNjgoJXIxMiksICV5bW00LCAleW1tNAordnBhZGR3IDY3NTIo
JXIxMiksICV5bW00LCAleW1tNAordnBzdWJ3IDU3OTIoJXIxMiksICV5bW0xLCAleW1tMQordnBz
dWJ3ICV5bW0xLCAleW1tNSwgJXltbTUKK3Zwc3VidyAleW1tMywgJXltbTUsICV5bW01Cit2cHN1
YncgNTIxNiglcjEyKSwgJXltbTEsICV5bW0xCit2cGFkZHcgNjM2OCglcjEyKSwgJXltbTEsICV5
bW0xCit2bW92ZHFhIDU1MDQoJXIxMiksICV5bW02Cit2cHN1YncgJXltbTIsICV5bW02LCAleW1t
Nwordm1vdmRxYSA2NjU2KCVyMTIpLCAleW1tMgordnBzdWJ3ICV5bW03LCAleW1tMiwgJXltbTIK
K3Zwc3VidyA2MDgwKCVyMTIpLCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tMCwgJXltbTcsICV5
bW03Cit2cGFkZHcgJXltbTQsICV5bW03LCAleW1tNwordm1vdmRxYSA1MjE2KCVyMTIpLCAleW1t
OAordm1vdmRxYSA2MDgwKCVyMTIpLCAleW1tOQordm1vdmRxYSAleW1tOCwgNzY4KCVyc3ApCit2
bW92ZHFhICV5bW0wLCA4MDAoJXJzcCkKK3Ztb3ZkcWEgJXltbTEsIDgzMiglcnNwKQordm1vdmRx
YSAleW1tNywgODY0KCVyc3ApCit2bW92ZHFhICV5bW01LCA4OTYoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTIsIDkyOCglcnNwKQordm1vdmRxYSAleW1tMywgOTYwKCVyc3ApCit2bW92ZHFhICV5bW05LCA5
OTIoJXJzcCkKK3Ztb3ZkcWEgNzA0MCglcjEyKSwgJXltbTAKK3Zwc3VidyA3MTM2KCVyMTIpLCAl
eW1tMCwgJXltbTAKK3Ztb3ZkcWEgNzQyNCglcjEyKSwgJXltbTEKK3Zwc3VidyAleW1tMCwgJXlt
bTEsICV5bW0xCit2cHN1YncgNzIzMiglcjEyKSwgJXltbTEsICV5bW0xCit2cHN1YncgNjk0NCgl
cjEyKSwgJXltbTAsICV5bW0wCit2cGFkZHcgNzMyOCglcjEyKSwgJXltbTAsICV5bW0wCit2bW92
ZHFhIDc2MTYoJXIxMiksICV5bW0yCit2cHN1YncgNzcxMiglcjEyKSwgJXltbTIsICV5bW0yCit2
bW92ZHFhIDgwMDAoJXIxMiksICV5bW0zCit2cHN1YncgJXltbTIsICV5bW0zLCAleW1tMwordnBz
dWJ3IDc4MDgoJXIxMiksICV5bW0zLCAleW1tMwordnBzdWJ3IDc1MjAoJXIxMiksICV5bW0yLCAl
eW1tMgordnBhZGR3IDc5MDQoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRxYSA4MTkyKCVyMTIp
LCAleW1tNAordnBzdWJ3IDgyODgoJXIxMiksICV5bW00LCAleW1tNAordm1vdmRxYSA4NTc2KCVy
MTIpLCAleW1tNQordnBzdWJ3ICV5bW00LCAleW1tNSwgJXltbTUKK3Zwc3VidyA4Mzg0KCVyMTIp
LCAleW1tNSwgJXltbTUKK3Zwc3VidyA4MDk2KCVyMTIpLCAleW1tNCwgJXltbTQKK3ZwYWRkdyA4
NDgwKCVyMTIpLCAleW1tNCwgJXltbTQKK3Zwc3VidyA3NTIwKCVyMTIpLCAleW1tMSwgJXltbTEK
K3Zwc3VidyAleW1tMSwgJXltbTUsICV5bW01Cit2cHN1YncgJXltbTMsICV5bW01LCAleW1tNQor
dnBzdWJ3IDY5NDQoJXIxMiksICV5bW0xLCAleW1tMQordnBhZGR3IDgwOTYoJXIxMiksICV5bW0x
LCAleW1tMQordm1vdmRxYSA3MjMyKCVyMTIpLCAleW1tNgordnBzdWJ3ICV5bW0yLCAleW1tNiwg
JXltbTcKK3Ztb3ZkcWEgODM4NCglcjEyKSwgJXltbTIKK3Zwc3VidyAleW1tNywgJXltbTIsICV5
bW0yCit2cHN1YncgNzgwOCglcjEyKSwgJXltbTIsICV5bW0yCit2cHN1YncgJXltbTAsICV5bW03
LCAleW1tNwordnBhZGR3ICV5bW00LCAleW1tNywgJXltbTcKK3Ztb3ZkcWEgNjk0NCglcjEyKSwg
JXltbTgKK3Ztb3ZkcWEgNzgwOCglcjEyKSwgJXltbTkKK3Ztb3ZkcWEgJXltbTgsIDEwMjQoJXJz
cCkKK3Ztb3ZkcWEgJXltbTAsIDEwNTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTEsIDEwODgoJXJzcCkK
K3Ztb3ZkcWEgJXltbTcsIDExMjAoJXJzcCkKK3Ztb3ZkcWEgJXltbTUsIDExNTIoJXJzcCkKK3Zt
b3ZkcWEgJXltbTIsIDExODQoJXJzcCkKK3Ztb3ZkcWEgJXltbTMsIDEyMTYoJXJzcCkKK3Ztb3Zk
cWEgJXltbTksIDEyNDgoJXJzcCkKK3Ztb3ZkcWEgODc2OCglcjEyKSwgJXltbTAKK3Zwc3VidyA4
ODY0KCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgOTE1MiglcjEyKSwgJXltbTEKK3Zwc3Vi
dyAleW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgODk2MCglcjEyKSwgJXltbTEsICV5bW0xCit2
cHN1YncgODY3MiglcjEyKSwgJXltbTAsICV5bW0wCit2cGFkZHcgOTA1NiglcjEyKSwgJXltbTAs
ICV5bW0wCit2bW92ZHFhIDkzNDQoJXIxMiksICV5bW0yCit2cHN1YncgOTQ0MCglcjEyKSwgJXlt
bTIsICV5bW0yCit2bW92ZHFhIDk3MjgoJXIxMiksICV5bW0zCit2cHN1YncgJXltbTIsICV5bW0z
LCAleW1tMwordnBzdWJ3IDk1MzYoJXIxMiksICV5bW0zLCAleW1tMwordnBzdWJ3IDkyNDgoJXIx
MiksICV5bW0yLCAleW1tMgordnBhZGR3IDk2MzIoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRx
YSA5OTIwKCVyMTIpLCAleW1tNAordnBzdWJ3IDEwMDE2KCVyMTIpLCAleW1tNCwgJXltbTQKK3Zt
b3ZkcWEgMTAzMDQoJXIxMiksICV5bW01Cit2cHN1YncgJXltbTQsICV5bW01LCAleW1tNQordnBz
dWJ3IDEwMTEyKCVyMTIpLCAleW1tNSwgJXltbTUKK3Zwc3VidyA5ODI0KCVyMTIpLCAleW1tNCwg
JXltbTQKK3ZwYWRkdyAxMDIwOCglcjEyKSwgJXltbTQsICV5bW00Cit2cHN1YncgOTI0OCglcjEy
KSwgJXltbTEsICV5bW0xCit2cHN1YncgJXltbTEsICV5bW01LCAleW1tNQordnBzdWJ3ICV5bW0z
LCAleW1tNSwgJXltbTUKK3Zwc3VidyA4NjcyKCVyMTIpLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA5
ODI0KCVyMTIpLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgODk2MCglcjEyKSwgJXltbTYKK3Zwc3Vi
dyAleW1tMiwgJXltbTYsICV5bW03Cit2bW92ZHFhIDEwMTEyKCVyMTIpLCAleW1tMgordnBzdWJ3
ICV5bW03LCAleW1tMiwgJXltbTIKK3Zwc3VidyA5NTM2KCVyMTIpLCAleW1tMiwgJXltbTIKK3Zw
c3VidyAleW1tMCwgJXltbTcsICV5bW03Cit2cGFkZHcgJXltbTQsICV5bW03LCAleW1tNwordm1v
dmRxYSA4NjcyKCVyMTIpLCAleW1tOAordm1vdmRxYSA5NTM2KCVyMTIpLCAleW1tOQordm1vdmRx
YSAleW1tOCwgMTI4MCglcnNwKQordm1vdmRxYSAleW1tMCwgMTMxMiglcnNwKQordm1vdmRxYSAl
eW1tMSwgMTM0NCglcnNwKQordm1vdmRxYSAleW1tNywgMTM3NiglcnNwKQordm1vdmRxYSAleW1t
NSwgMTQwOCglcnNwKQordm1vdmRxYSAleW1tMiwgMTQ0MCglcnNwKQordm1vdmRxYSAleW1tMywg
MTQ3MiglcnNwKQordm1vdmRxYSAleW1tOSwgMTUwNCglcnNwKQordm1vdmRxYSAxMDQ5NiglcjEy
KSwgJXltbTAKK3Zwc3VidyAxMDU5MiglcjEyKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDEwODgw
KCVyMTIpLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyAxMDY4OCgl
cjEyKSwgJXltbTEsICV5bW0xCit2cHN1YncgMTA0MDAoJXIxMiksICV5bW0wLCAleW1tMAordnBh
ZGR3IDEwNzg0KCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgMTEwNzIoJXIxMiksICV5bW0y
Cit2cHN1YncgMTExNjgoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRxYSAxMTQ1NiglcjEyKSwg
JXltbTMKK3Zwc3VidyAleW1tMiwgJXltbTMsICV5bW0zCit2cHN1YncgMTEyNjQoJXIxMiksICV5
bW0zLCAleW1tMwordnBzdWJ3IDEwOTc2KCVyMTIpLCAleW1tMiwgJXltbTIKK3ZwYWRkdyAxMTM2
MCglcjEyKSwgJXltbTIsICV5bW0yCit2bW92ZHFhIDExNjQ4KCVyMTIpLCAleW1tNAordnBzdWJ3
IDExNzQ0KCVyMTIpLCAleW1tNCwgJXltbTQKK3Ztb3ZkcWEgMTIwMzIoJXIxMiksICV5bW01Cit2
cHN1YncgJXltbTQsICV5bW01LCAleW1tNQordnBzdWJ3IDExODQwKCVyMTIpLCAleW1tNSwgJXlt
bTUKK3Zwc3VidyAxMTU1MiglcjEyKSwgJXltbTQsICV5bW00Cit2cGFkZHcgMTE5MzYoJXIxMiks
ICV5bW00LCAleW1tNAordnBzdWJ3IDEwOTc2KCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAl
eW1tMSwgJXltbTUsICV5bW01Cit2cHN1YncgJXltbTMsICV5bW01LCAleW1tNQordnBzdWJ3IDEw
NDAwKCVyMTIpLCAleW1tMSwgJXltbTEKK3ZwYWRkdyAxMTU1MiglcjEyKSwgJXltbTEsICV5bW0x
Cit2bW92ZHFhIDEwNjg4KCVyMTIpLCAleW1tNgordnBzdWJ3ICV5bW0yLCAleW1tNiwgJXltbTcK
K3Ztb3ZkcWEgMTE4NDAoJXIxMiksICV5bW0yCit2cHN1YncgJXltbTcsICV5bW0yLCAleW1tMgor
dnBzdWJ3IDExMjY0KCVyMTIpLCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tMCwgJXltbTcsICV5
bW03Cit2cGFkZHcgJXltbTQsICV5bW03LCAleW1tNwordm1vdmRxYSAxMDQwMCglcjEyKSwgJXlt
bTgKK3Ztb3ZkcWEgMTEyNjQoJXIxMiksICV5bW05Cit2bW92ZHFhICV5bW04LCAxNTM2KCVyc3Ap
Cit2bW92ZHFhICV5bW0wLCAxNTY4KCVyc3ApCit2bW92ZHFhICV5bW0xLCAxNjAwKCVyc3ApCit2
bW92ZHFhICV5bW03LCAxNjMyKCVyc3ApCit2bW92ZHFhICV5bW01LCAxNjY0KCVyc3ApCit2bW92
ZHFhICV5bW0yLCAxNjk2KCVyc3ApCit2bW92ZHFhICV5bW0zLCAxNzI4KCVyc3ApCit2bW92ZHFh
ICV5bW05LCAxNzYwKCVyc3ApCit2bW92ZHFhIDAoJXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBj
b25zdDAoJXJpcCksICV5bW0xMSwgJXltbTgKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1t
MTEsICV5bW0zCit2cHNsbGQgJDEsICV5bW04LCAleW1tOAordnBzbGxkICQxLCAleW1tMywgJXlt
bTMKK3Ztb3ZkcWEgMjU2KCVyc3ApLCAleW1tNAordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5
bW00LCAleW1tMTAKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNCwgJXltbTQKK3Ztb3Zk
cWEgNTEyKCVyc3ApLCAleW1tNgordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1t
NQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5bW01LCAl
eW1tMTAsICV5bW05Cit2cGFkZGQgJXltbTYsICV5bW00LCAleW1tMgordnBzdWJkICV5bW04LCAl
eW1tOSwgJXltbTkKK3Zwc3ViZCAleW1tMywgJXltbTIsICV5bW0yCit2cHN1YmQgJXltbTUsICV5
bW0xMCwgJXltbTUKK3Zwc3ViZCAleW1tNiwgJXltbTQsICV5bW02Cit2cHNybGQgJDEsICV5bW01
LCAleW1tNQordnBzcmxkICQxLCAleW1tNiwgJXltbTYKK3ZwYW5kIG1hc2szMl90b18xNiglcmlw
KSwgJXltbTUsICV5bW01Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW02LCAleW1tNgor
dnBhY2t1c2R3ICV5bW02LCAleW1tNSwgJXltbTYKK3Ztb3ZkcWEgMTUzNiglcnNwKSwgJXltbTUK
K3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tNSwgJXltbTQKK3ZwdW5wY2tod2QgY29uc3Qw
KCVyaXApLCAleW1tNSwgJXltbTEwCit2cHNsbGQgJDEsICV5bW00LCAleW1tNAordnBzbGxkICQx
LCAleW1tMTAsICV5bW0xMAordnBzdWJkICV5bW00LCAleW1tOSwgJXltbTkKK3Zwc3ViZCAleW1t
MTAsICV5bW0yLCAleW1tMgordnBzcmxkICQxLCAleW1tOSwgJXltbTkKK3Zwc3JsZCAkMSwgJXlt
bTIsICV5bW0yCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW05LCAleW1tOQordnBhbmQg
bWFzazMyX3RvXzE2KCVyaXApLCAleW1tMiwgJXltbTIKK3ZwYWNrdXNkdyAleW1tMiwgJXltbTks
ICV5bW0yCit2bW92ZHFhIDc2OCglcnNwKSwgJXltbTkKK3ZwYWRkdyAxMDI0KCVyc3ApLCAleW1t
OSwgJXltbTEwCit2cHN1YncgMTAyNCglcnNwKSwgJXltbTksICV5bW05Cit2cHNybHcgJDIsICV5
bW05LCAleW1tOQordnBzdWJ3ICV5bW02LCAleW1tOSwgJXltbTkKK3ZwbXVsbHcgJXltbTE0LCAl
eW1tOSwgJXltbTkKK3Zwc2xsdyAkMSwgJXltbTExLCAleW1tNAordnBzdWJ3ICV5bW00LCAleW1t
MTAsICV5bW00Cit2cHNsbHcgJDcsICV5bW01LCAleW1tMTAKK3Zwc3VidyAleW1tMTAsICV5bW00
LCAleW1tMTAKK3Zwc3JsdyAkMywgJXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tMiwgJXltbTEw
LCAleW1tMTAKK3Ztb3ZkcWEgMTI4MCglcnNwKSwgJXltbTQKK3Zwc3VidyAleW1tMTEsICV5bW00
LCAleW1tNAordnBtdWxsdyAleW1tMTUsICV5bW01LCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1t
NCwgJXltbTMKK3ZwbXVsbHcgJXltbTE0LCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5bW0xMCwg
JXltbTIsICV5bW0yCit2cG11bGx3ICV5bW0xMiwgJXltbTEwLCAleW1tNAordnBhZGR3ICV5bW00
LCAleW1tMiwgJXltbTQKK3ZwbXVsbHcgJXltbTEyLCAleW1tNCwgJXltbTQKK3Zwc3VidyAleW1t
NCwgJXltbTMsICV5bW00Cit2cG11bGx3ICV5bW0xNCwgJXltbTQsICV5bW00Cit2cHN1YncgJXlt
bTYsICV5bW00LCAleW1tNAordnBzcmx3ICQzLCAleW1tNCwgJXltbTQKK3Zwc3VidyAleW1tOSwg
JXltbTQsICV5bW00Cit2cHN1YncgJXltbTQsICV5bW05LCAleW1tOQordnBzdWJ3ICV5bW05LCAl
eW1tNiwgJXltbTYKK3ZwbXVsbHcgJXltbTEzLCAleW1tNCwgJXltbTQKK3Zwc3VidyAleW1tNCwg
JXltbTYsICV5bW02Cit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTEwLCAleW1tMTAKK3Zw
YW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tMTAsICV5bW0zCit2cGFuZCBtYXNrNV8zXzVfMygl
cmlwKSwgJXltbTEwLCAleW1tMTAKK3ZwZXJtcSAkMjA2LCAleW1tMywgJXltbTMKK3ZwYW5kIG1h
c2tfa2VlcGhpZ2goJXJpcCksICV5bW0zLCAleW1tOAordnBvciAleW1tOCwgJXltbTEwLCAleW1t
MTAKK3ZwYWRkdyAyMDQ4KCVyc3ApLCAleW1tMTEsICV5bW0xMQordnBhZGR3ICV5bW0xMCwgJXlt
bTExLCAleW1tMTEKK3Ztb3ZkcWEgJXhtbTMsIDIwNDgoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2
KCVyaXApLCAleW1tNCwgJXltbTQKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNCwgJXlt
bTMKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNCwgJXltbTQKK3ZwZXJtcSAkMjA2LCAl
eW1tMywgJXltbTMKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0zLCAleW1tOAordnBv
ciAleW1tOCwgJXltbTQsICV5bW00Cit2cGFkZHcgMjMwNCglcnNwKSwgJXltbTYsICV5bW02Cit2
cGFkZHcgJXltbTQsICV5bW02LCAleW1tNgordm1vdmRxYSAleG1tMywgMjMwNCglcnNwKQordnBz
aHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW01LCAleW1tNQordnBhbmQgbWFzazNfNV8zXzUoJXJp
cCksICV5bW01LCAleW1tMwordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW01LCAleW1tNQor
dnBlcm1xICQyMDYsICV5bW0zLCAleW1tMwordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXlt
bTMsICV5bW04Cit2cG9yICV5bW04LCAleW1tNSwgJXltbTUKK3ZwYWRkdyAyNTYwKCVyc3ApLCAl
eW1tMiwgJXltbTIKK3ZwYWRkdyAleW1tNSwgJXltbTIsICV5bW0yCit2bW92ZHFhICV4bW0zLCAy
NTYwKCVyc3ApCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92
ZHF1ICV5bW0xMSwgMzIoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTYsICV5
bW02Cit2bW92ZHF1ICV5bW02LCAzODQoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwg
JXltbTIsICV5bW0yCit2bW92ZHF1ICV5bW0yLCA3MzYoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5
MiglcmlwKSwgJXltbTksICV5bW05Cit2bW92ZHF1ICV5bW05LCAxMDg4KCVyZGkpCit2bW92ZHFh
IDMyKCVyc3ApLCAleW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tNAor
dnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tMTAKK3Zwc2xsZCAkMSwgJXltbTQs
ICV5bW00Cit2cHNsbGQgJDEsICV5bW0xMCwgJXltbTEwCit2bW92ZHFhIDI4OCglcnNwKSwgJXlt
bTkKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tOSwgJXltbTIKK3ZwdW5wY2tod2QgY29u
c3QwKCVyaXApLCAleW1tOSwgJXltbTkKK3Ztb3ZkcWEgNTQ0KCVyc3ApLCAleW1tNgordnB1bnBj
a2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tMTEKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXAp
LCAleW1tNiwgJXltbTYKK3ZwYWRkZCAleW1tMTEsICV5bW0yLCAleW1tMwordnBhZGRkICV5bW02
LCAleW1tOSwgJXltbTgKK3Zwc3ViZCAleW1tNCwgJXltbTMsICV5bW0zCit2cHN1YmQgJXltbTEw
LCAleW1tOCwgJXltbTgKK3Zwc3ViZCAleW1tMTEsICV5bW0yLCAleW1tMTEKK3Zwc3ViZCAleW1t
NiwgJXltbTksICV5bW02Cit2cHNybGQgJDEsICV5bW0xMSwgJXltbTExCit2cHNybGQgJDEsICV5
bW02LCAleW1tNgordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tMTEsICV5bW0xMQordnBh
bmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNiwgJXltbTYKK3ZwYWNrdXNkdyAleW1tNiwgJXlt
bTExLCAleW1tNgordm1vdmRxYSAxNTY4KCVyc3ApLCAleW1tMTEKK3ZwdW5wY2tsd2QgY29uc3Qw
KCVyaXApLCAleW1tMTEsICV5bW05Cit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAl
eW1tMgordnBzbGxkICQxLCAleW1tOSwgJXltbTkKK3Zwc2xsZCAkMSwgJXltbTIsICV5bW0yCit2
cHN1YmQgJXltbTksICV5bW0zLCAleW1tMwordnBzdWJkICV5bW0yLCAleW1tOCwgJXltbTgKK3Zw
c3JsZCAkMSwgJXltbTMsICV5bW0zCit2cHNybGQgJDEsICV5bW04LCAleW1tOAordnBhbmQgbWFz
azMyX3RvXzE2KCVyaXApLCAleW1tMywgJXltbTMKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwg
JXltbTgsICV5bW04Cit2cGFja3VzZHcgJXltbTgsICV5bW0zLCAleW1tOAordm1vdmRxYSA4MDAo
JXJzcCksICV5bW0zCit2cGFkZHcgMTA1NiglcnNwKSwgJXltbTMsICV5bW0yCit2cHN1YncgMTA1
NiglcnNwKSwgJXltbTMsICV5bW0zCit2cHNybHcgJDIsICV5bW0zLCAleW1tMwordnBzdWJ3ICV5
bW02LCAleW1tMywgJXltbTMKK3ZwbXVsbHcgJXltbTE0LCAleW1tMywgJXltbTMKK3Zwc2xsdyAk
MSwgJXltbTUsICV5bW05Cit2cHN1YncgJXltbTksICV5bW0yLCAleW1tOQordnBzbGx3ICQ3LCAl
eW1tMTEsICV5bW0yCit2cHN1YncgJXltbTIsICV5bW05LCAleW1tMgordnBzcmx3ICQzLCAleW1t
MiwgJXltbTIKK3Zwc3VidyAleW1tOCwgJXltbTIsICV5bW0yCit2bW92ZHFhIDEzMTIoJXJzcCks
ICV5bW05Cit2cHN1YncgJXltbTUsICV5bW05LCAleW1tOQordnBtdWxsdyAleW1tMTUsICV5bW0x
MSwgJXltbTEwCit2cHN1YncgJXltbTEwLCAleW1tOSwgJXltbTEwCit2cG11bGx3ICV5bW0xNCwg
JXltbTIsICV5bW0yCit2cHN1YncgJXltbTIsICV5bW04LCAleW1tOAordnBtdWxsdyAleW1tMTIs
ICV5bW0yLCAleW1tOQordnBhZGR3ICV5bW05LCAleW1tOCwgJXltbTkKK3ZwbXVsbHcgJXltbTEy
LCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTEwLCAleW1tOQordnBtdWxsdyAleW1t
MTQsICV5bW05LCAleW1tOQordnBzdWJ3ICV5bW02LCAleW1tOSwgJXltbTkKK3Zwc3JsdyAkMywg
JXltbTksICV5bW05Cit2cHN1YncgJXltbTMsICV5bW05LCAleW1tOQordnBzdWJ3ICV5bW05LCAl
eW1tMywgJXltbTMKK3Zwc3VidyAleW1tMywgJXltbTYsICV5bW02Cit2cG11bGx3ICV5bW0xMywg
JXltbTksICV5bW05Cit2cHN1YncgJXltbTksICV5bW02LCAleW1tNgordnBzaHVmYiBzaHVmNDhf
MTYoJXJpcCksICV5bW0yLCAleW1tMgordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW0yLCAl
eW1tMTAKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tMiwgJXltbTIKK3ZwZXJtcSAkMjA2
LCAleW1tMTAsICV5bW0xMAordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTEwLCAleW1t
NAordnBvciAleW1tNCwgJXltbTIsICV5bW0yCit2cGFkZHcgMjA4MCglcnNwKSwgJXltbTUsICV5
bW01Cit2cGFkZHcgJXltbTIsICV5bW01LCAleW1tNQordm1vdmRxYSAleG1tMTAsIDIwODAoJXJz
cCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2szXzVf
M181KCVyaXApLCAleW1tOSwgJXltbTEwCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTks
ICV5bW05Cit2cGVybXEgJDIwNiwgJXltbTEwLCAleW1tMTAKK3ZwYW5kIG1hc2tfa2VlcGhpZ2go
JXJpcCksICV5bW0xMCwgJXltbTQKK3Zwb3IgJXltbTQsICV5bW05LCAleW1tOQordnBhZGR3IDIz
MzYoJXJzcCksICV5bW02LCAleW1tNgordnBhZGR3ICV5bW05LCAleW1tNiwgJXltbTYKK3Ztb3Zk
cWEgJXhtbTEwLCAyMzM2KCVyc3ApCit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTExLCAl
eW1tMTEKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tMTEsICV5bW0xMAordnBhbmQgbWFz
azVfM181XzMoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGVybXEgJDIwNiwgJXltbTEwLCAleW1t
MTAKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0xMCwgJXltbTQKK3Zwb3IgJXltbTQs
ICV5bW0xMSwgJXltbTExCit2cGFkZHcgMjU5MiglcnNwKSwgJXltbTgsICV5bW04Cit2cGFkZHcg
JXltbTExLCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgJXhtbTEwLCAyNTkyKCVyc3ApCit2cGFuZCBt
YXNrX21vZDgxOTIoJXJpcCksICV5bW01LCAleW1tNQordm1vdmRxdSAleW1tNSwgMTIwKCVyZGkp
Cit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW02LCAleW1tNgordm1vdmRxdSAleW1tNiwg
NDcyKCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW04LCAleW1tOAordm1vdmRx
dSAleW1tOCwgODI0KCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0zLCAleW1t
Mwordm1vdmRxdSAleW1tMywgMTE3NiglcmRpKQordm1vdmRxYSA2NCglcnNwKSwgJXltbTExCit2
cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tOQordnB1bnBja2h3ZCBjb25zdDAo
JXJpcCksICV5bW0xMSwgJXltbTIKK3Zwc2xsZCAkMSwgJXltbTksICV5bW05Cit2cHNsbGQgJDEs
ICV5bW0yLCAleW1tMgordm1vdmRxYSAzMjAoJXJzcCksICV5bW0zCit2cHVucGNrbHdkIGNvbnN0
MCglcmlwKSwgJXltbTMsICV5bW04Cit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTMsICV5
bW0zCit2bW92ZHFhIDU3NiglcnNwKSwgJXltbTYKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAl
eW1tNiwgJXltbTUKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNiwgJXltbTYKK3ZwYWRk
ZCAleW1tNSwgJXltbTgsICV5bW0xMAordnBhZGRkICV5bW02LCAleW1tMywgJXltbTQKK3Zwc3Vi
ZCAleW1tOSwgJXltbTEwLCAleW1tMTAKK3Zwc3ViZCAleW1tMiwgJXltbTQsICV5bW00Cit2cHN1
YmQgJXltbTUsICV5bW04LCAleW1tNQordnBzdWJkICV5bW02LCAleW1tMywgJXltbTYKK3Zwc3Js
ZCAkMSwgJXltbTUsICV5bW01Cit2cHNybGQgJDEsICV5bW02LCAleW1tNgordnBhbmQgbWFzazMy
X3RvXzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXlt
bTYsICV5bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW01LCAleW1tNgordm1vdmRxYSAxNjAwKCVy
c3ApLCAleW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tMwordnB1bnBj
a2h3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tOAordnBzbGxkICQxLCAleW1tMywgJXltbTMK
K3Zwc2xsZCAkMSwgJXltbTgsICV5bW04Cit2cHN1YmQgJXltbTMsICV5bW0xMCwgJXltbTEwCit2
cHN1YmQgJXltbTgsICV5bW00LCAleW1tNAordnBzcmxkICQxLCAleW1tMTAsICV5bW0xMAordnBz
cmxkICQxLCAleW1tNCwgJXltbTQKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTEwLCAl
eW1tMTAKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTQsICV5bW00Cit2cGFja3VzZHcg
JXltbTQsICV5bW0xMCwgJXltbTQKK3Ztb3ZkcWEgODMyKCVyc3ApLCAleW1tMTAKK3ZwYWRkdyAx
MDg4KCVyc3ApLCAleW1tMTAsICV5bW04Cit2cHN1YncgMTA4OCglcnNwKSwgJXltbTEwLCAleW1t
MTAKK3Zwc3JsdyAkMiwgJXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tNiwgJXltbTEwLCAleW1t
MTAKK3ZwbXVsbHcgJXltbTE0LCAleW1tMTAsICV5bW0xMAordnBzbGx3ICQxLCAleW1tMTEsICV5
bW0zCit2cHN1YncgJXltbTMsICV5bW04LCAleW1tMwordnBzbGx3ICQ3LCAleW1tNSwgJXltbTgK
K3Zwc3VidyAleW1tOCwgJXltbTMsICV5bW04Cit2cHNybHcgJDMsICV5bW04LCAleW1tOAordnBz
dWJ3ICV5bW00LCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgMTM0NCglcnNwKSwgJXltbTMKK3Zwc3Vi
dyAleW1tMTEsICV5bW0zLCAleW1tMwordnBtdWxsdyAleW1tMTUsICV5bW01LCAleW1tMgordnBz
dWJ3ICV5bW0yLCAleW1tMywgJXltbTIKK3ZwbXVsbHcgJXltbTE0LCAleW1tOCwgJXltbTgKK3Zw
c3VidyAleW1tOCwgJXltbTQsICV5bW00Cit2cG11bGx3ICV5bW0xMiwgJXltbTgsICV5bW0zCit2
cGFkZHcgJXltbTMsICV5bW00LCAleW1tMwordnBtdWxsdyAleW1tMTIsICV5bW0zLCAleW1tMwor
dnBzdWJ3ICV5bW0zLCAleW1tMiwgJXltbTMKK3ZwbXVsbHcgJXltbTE0LCAleW1tMywgJXltbTMK
K3Zwc3VidyAleW1tNiwgJXltbTMsICV5bW0zCit2cHNybHcgJDMsICV5bW0zLCAleW1tMwordnBz
dWJ3ICV5bW0xMCwgJXltbTMsICV5bW0zCit2cHN1YncgJXltbTMsICV5bW0xMCwgJXltbTEwCit2
cHN1YncgJXltbTEwLCAleW1tNiwgJXltbTYKK3ZwbXVsbHcgJXltbTEzLCAleW1tMywgJXltbTMK
K3Zwc3VidyAleW1tMywgJXltbTYsICV5bW02Cit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXlt
bTgsICV5bW04Cit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXltbTgsICV5bW0yCit2cGFuZCBt
YXNrNV8zXzVfMyglcmlwKSwgJXltbTgsICV5bW04Cit2cGVybXEgJDIwNiwgJXltbTIsICV5bW0y
Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tMiwgJXltbTkKK3Zwb3IgJXltbTksICV5
bW04LCAleW1tOAordnBhZGR3IDIxMTIoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFkZHcgJXlt
bTgsICV5bW0xMSwgJXltbTExCit2bW92ZHFhICV4bW0yLCAyMTEyKCVyc3ApCit2cHNodWZiIHNo
dWY0OF8xNiglcmlwKSwgJXltbTMsICV5bW0zCit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXlt
bTMsICV5bW0yCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTMsICV5bW0zCit2cGVybXEg
JDIwNiwgJXltbTIsICV5bW0yCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tMiwgJXlt
bTkKK3Zwb3IgJXltbTksICV5bW0zLCAleW1tMwordnBhZGR3IDIzNjgoJXJzcCksICV5bW02LCAl
eW1tNgordnBhZGR3ICV5bW0zLCAleW1tNiwgJXltbTYKK3Ztb3ZkcWEgJXhtbTIsIDIzNjgoJXJz
cCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szXzVf
M181KCVyaXApLCAleW1tNSwgJXltbTIKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNSwg
JXltbTUKK3ZwZXJtcSAkMjA2LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJp
cCksICV5bW0yLCAleW1tOQordnBvciAleW1tOSwgJXltbTUsICV5bW01Cit2cGFkZHcgMjYyNCgl
cnNwKSwgJXltbTQsICV5bW00Cit2cGFkZHcgJXltbTUsICV5bW00LCAleW1tNAordm1vdmRxYSAl
eG1tMiwgMjYyNCglcnNwKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0x
MQordm1vdmRxdSAleW1tMTEsIDIwOCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAl
eW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXltbTYsIDU2MCglcmRpKQordnBhbmQgbWFza19tb2Q4MTky
KCVyaXApLCAleW1tNCwgJXltbTQKK3Ztb3ZkcXUgJXltbTQsIDkxMiglcmRpKQordnBhbmQgbWFz
a19tb2Q4MTkyKCVyaXApLCAleW1tMTAsICV5bW0xMAordm1vdmRxdSAleW1tMTAsIDEyNjQoJXJk
aSkKK3Ztb3ZkcWEgOTYoJXJzcCksICV5bW01Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXlt
bTUsICV5bW0zCit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW04Cit2cHNsbGQg
JDEsICV5bW0zLCAleW1tMwordnBzbGxkICQxLCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgMzUyKCVy
c3ApLCAleW1tMTAKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tMTAsICV5bW00Cit2cHVu
cGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgNjA4KCVyc3ApLCAl
eW1tNgordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tMTEKK3ZwdW5wY2tod2Qg
Y29uc3QwKCVyaXApLCAleW1tNiwgJXltbTYKK3ZwYWRkZCAleW1tMTEsICV5bW00LCAleW1tMgor
dnBhZGRkICV5bW02LCAleW1tMTAsICV5bW05Cit2cHN1YmQgJXltbTMsICV5bW0yLCAleW1tMgor
dnBzdWJkICV5bW04LCAleW1tOSwgJXltbTkKK3Zwc3ViZCAleW1tMTEsICV5bW00LCAleW1tMTEK
K3Zwc3ViZCAleW1tNiwgJXltbTEwLCAleW1tNgordnBzcmxkICQxLCAleW1tMTEsICV5bW0xMQor
dnBzcmxkICQxLCAleW1tNiwgJXltbTYKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTEx
LCAleW1tMTEKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTYsICV5bW02Cit2cGFja3Vz
ZHcgJXltbTYsICV5bW0xMSwgJXltbTYKK3Ztb3ZkcWEgMTYzMiglcnNwKSwgJXltbTExCit2cHVu
cGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tMTAKK3ZwdW5wY2tod2QgY29uc3QwKCVy
aXApLCAleW1tMTEsICV5bW00Cit2cHNsbGQgJDEsICV5bW0xMCwgJXltbTEwCit2cHNsbGQgJDEs
ICV5bW00LCAleW1tNAordnBzdWJkICV5bW0xMCwgJXltbTIsICV5bW0yCit2cHN1YmQgJXltbTQs
ICV5bW05LCAleW1tOQordnBzcmxkICQxLCAleW1tMiwgJXltbTIKK3Zwc3JsZCAkMSwgJXltbTks
ICV5bW05Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW0yLCAleW1tMgordnBhbmQgbWFz
azMyX3RvXzE2KCVyaXApLCAleW1tOSwgJXltbTkKK3ZwYWNrdXNkdyAleW1tOSwgJXltbTIsICV5
bW05Cit2bW92ZHFhIDg2NCglcnNwKSwgJXltbTIKK3ZwYWRkdyAxMTIwKCVyc3ApLCAleW1tMiwg
JXltbTQKK3Zwc3VidyAxMTIwKCVyc3ApLCAleW1tMiwgJXltbTIKK3Zwc3JsdyAkMiwgJXltbTIs
ICV5bW0yCit2cHN1YncgJXltbTYsICV5bW0yLCAleW1tMgordnBtdWxsdyAleW1tMTQsICV5bW0y
LCAleW1tMgordnBzbGx3ICQxLCAleW1tNSwgJXltbTEwCit2cHN1YncgJXltbTEwLCAleW1tNCwg
JXltbTEwCit2cHNsbHcgJDcsICV5bW0xMSwgJXltbTQKK3Zwc3VidyAleW1tNCwgJXltbTEwLCAl
eW1tNAordnBzcmx3ICQzLCAleW1tNCwgJXltbTQKK3Zwc3VidyAleW1tOSwgJXltbTQsICV5bW00
Cit2bW92ZHFhIDEzNzYoJXJzcCksICV5bW0xMAordnBzdWJ3ICV5bW01LCAleW1tMTAsICV5bW0x
MAordnBtdWxsdyAleW1tMTUsICV5bW0xMSwgJXltbTgKK3Zwc3VidyAleW1tOCwgJXltbTEwLCAl
eW1tOAordnBtdWxsdyAleW1tMTQsICV5bW00LCAleW1tNAordnBzdWJ3ICV5bW00LCAleW1tOSwg
JXltbTkKK3ZwbXVsbHcgJXltbTEyLCAleW1tNCwgJXltbTEwCit2cGFkZHcgJXltbTEwLCAleW1t
OSwgJXltbTEwCit2cG11bGx3ICV5bW0xMiwgJXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tMTAs
ICV5bW04LCAleW1tMTAKK3ZwbXVsbHcgJXltbTE0LCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5
bW02LCAleW1tMTAsICV5bW0xMAordnBzcmx3ICQzLCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5
bW0yLCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5bW0xMCwgJXltbTIsICV5bW0yCit2cHN1Yncg
JXltbTIsICV5bW02LCAleW1tNgordnBtdWxsdyAleW1tMTMsICV5bW0xMCwgJXltbTEwCit2cHN1
YncgJXltbTEwLCAleW1tNiwgJXltbTYKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNCwg
JXltbTQKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNCwgJXltbTgKK3ZwYW5kIG1hc2s1
XzNfNV8zKCVyaXApLCAleW1tNCwgJXltbTQKK3ZwZXJtcSAkMjA2LCAleW1tOCwgJXltbTgKK3Zw
YW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW04LCAleW1tMwordnBvciAleW1tMywgJXltbTQs
ICV5bW00Cit2cGFkZHcgMjE0NCglcnNwKSwgJXltbTUsICV5bW01Cit2cGFkZHcgJXltbTQsICV5
bW01LCAleW1tNQordm1vdmRxYSAleG1tOCwgMjE0NCglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYo
JXJpcCksICV5bW0xMCwgJXltbTEwCit2cGFuZCBtYXNrM181XzNfNSglcmlwKSwgJXltbTEwLCAl
eW1tOAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW0xMCwgJXltbTEwCit2cGVybXEgJDIw
NiwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tOCwgJXltbTMK
K3Zwb3IgJXltbTMsICV5bW0xMCwgJXltbTEwCit2cGFkZHcgMjQwMCglcnNwKSwgJXltbTYsICV5
bW02Cit2cGFkZHcgJXltbTEwLCAleW1tNiwgJXltbTYKK3Ztb3ZkcWEgJXhtbTgsIDI0MDAoJXJz
cCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tMTEsICV5bW0xMQordnBhbmQgbWFzazNf
NV8zXzUoJXJpcCksICV5bW0xMSwgJXltbTgKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1t
MTEsICV5bW0xMQordnBlcm1xICQyMDYsICV5bW04LCAleW1tOAordnBhbmQgbWFza19rZWVwaGln
aCglcmlwKSwgJXltbTgsICV5bW0zCit2cG9yICV5bW0zLCAleW1tMTEsICV5bW0xMQordnBhZGR3
IDI2NTYoJXJzcCksICV5bW05LCAleW1tOQordnBhZGR3ICV5bW0xMSwgJXltbTksICV5bW05Cit2
bW92ZHFhICV4bW04LCAyNjU2KCVyc3ApCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW01
LCAleW1tNQordm1vdmRxdSAleW1tNSwgMjk2KCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJp
cCksICV5bW02LCAleW1tNgordm1vdmRxdSAleW1tNiwgNjQ4KCVyZGkpCit2cGFuZCBtYXNrX21v
ZDgxOTIoJXJpcCksICV5bW05LCAleW1tOQordm1vdmRxdSAleW1tOSwgMTAwMCglcmRpKQordnBh
bmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMiwgJXltbTIKK3Ztb3ZkcXUgJXltbTIsIDEzNTIo
JXJkaSkKK3Ztb3ZkcWEgMTI4KCVyc3ApLCAleW1tMTEKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXAp
LCAleW1tMTEsICV5bW0xMAordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTQK
K3Zwc2xsZCAkMSwgJXltbTEwLCAleW1tMTAKK3Zwc2xsZCAkMSwgJXltbTQsICV5bW00Cit2bW92
ZHFhIDM4NCglcnNwKSwgJXltbTIKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tMiwgJXlt
bTkKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgNjQwKCVy
c3ApLCAleW1tNgordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNQordnB1bnBj
a2h3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5bW01LCAleW1tOSwgJXlt
bTgKK3ZwYWRkZCAleW1tNiwgJXltbTIsICV5bW0zCit2cHN1YmQgJXltbTEwLCAleW1tOCwgJXlt
bTgKK3Zwc3ViZCAleW1tNCwgJXltbTMsICV5bW0zCit2cHN1YmQgJXltbTUsICV5bW05LCAleW1t
NQordnBzdWJkICV5bW02LCAleW1tMiwgJXltbTYKK3Zwc3JsZCAkMSwgJXltbTUsICV5bW01Cit2
cHNybGQgJDEsICV5bW02LCAleW1tNgordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNSwg
JXltbTUKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTYsICV5bW02Cit2cGFja3VzZHcg
JXltbTYsICV5bW01LCAleW1tNgordm1vdmRxYSAxNjY0KCVyc3ApLCAleW1tNQordnB1bnBja2x3
ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tMgordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5
bW01LCAleW1tOQordnBzbGxkICQxLCAleW1tMiwgJXltbTIKK3Zwc2xsZCAkMSwgJXltbTksICV5
bW05Cit2cHN1YmQgJXltbTIsICV5bW04LCAleW1tOAordnBzdWJkICV5bW05LCAleW1tMywgJXlt
bTMKK3Zwc3JsZCAkMSwgJXltbTgsICV5bW04Cit2cHNybGQgJDEsICV5bW0zLCAleW1tMwordnBh
bmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tOCwgJXltbTgKK3ZwYW5kIG1hc2szMl90b18xNigl
cmlwKSwgJXltbTMsICV5bW0zCit2cGFja3VzZHcgJXltbTMsICV5bW04LCAleW1tMwordm1vdmRx
YSA4OTYoJXJzcCksICV5bW04Cit2cGFkZHcgMTE1MiglcnNwKSwgJXltbTgsICV5bW05Cit2cHN1
YncgMTE1MiglcnNwKSwgJXltbTgsICV5bW04Cit2cHNybHcgJDIsICV5bW04LCAleW1tOAordnBz
dWJ3ICV5bW02LCAleW1tOCwgJXltbTgKK3ZwbXVsbHcgJXltbTE0LCAleW1tOCwgJXltbTgKK3Zw
c2xsdyAkMSwgJXltbTExLCAleW1tMgordnBzdWJ3ICV5bW0yLCAleW1tOSwgJXltbTIKK3Zwc2xs
dyAkNywgJXltbTUsICV5bW05Cit2cHN1YncgJXltbTksICV5bW0yLCAleW1tOQordnBzcmx3ICQz
LCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tMywgJXltbTksICV5bW05Cit2bW92ZHFhIDE0MDgo
JXJzcCksICV5bW0yCit2cHN1YncgJXltbTExLCAleW1tMiwgJXltbTIKK3ZwbXVsbHcgJXltbTE1
LCAleW1tNSwgJXltbTQKK3Zwc3VidyAleW1tNCwgJXltbTIsICV5bW00Cit2cG11bGx3ICV5bW0x
NCwgJXltbTksICV5bW05Cit2cHN1YncgJXltbTksICV5bW0zLCAleW1tMwordnBtdWxsdyAleW1t
MTIsICV5bW05LCAleW1tMgordnBhZGR3ICV5bW0yLCAleW1tMywgJXltbTIKK3ZwbXVsbHcgJXlt
bTEyLCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tMiwgJXltbTQsICV5bW0yCit2cG11bGx3ICV5
bW0xNCwgJXltbTIsICV5bW0yCit2cHN1YncgJXltbTYsICV5bW0yLCAleW1tMgordnBzcmx3ICQz
LCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tOCwgJXltbTIsICV5bW0yCit2cHN1YncgJXltbTIs
ICV5bW04LCAleW1tOAordnBzdWJ3ICV5bW04LCAleW1tNiwgJXltbTYKK3ZwbXVsbHcgJXltbTEz
LCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tMiwgJXltbTYsICV5bW02Cit2bW92ZHF1IDM4NCgl
cmRpKSwgJXltbTQKK3Ztb3ZkcXUgNzM2KCVyZGkpLCAleW1tMTAKK3Ztb3ZkcXUgMTA4OCglcmRp
KSwgJXltbTcKK3ZwYWRkdyAleW1tMTEsICV5bW00LCAleW1tMTEKK3ZwYWRkdyAleW1tNiwgJXlt
bTEwLCAleW1tNgordnBhZGR3ICV5bW0zLCAleW1tNywgJXltbTMKK3Zwc2h1ZmIgc2h1ZjQ4XzE2
KCVyaXApLCAleW1tOCwgJXltbTgKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tOCwgJXlt
bTcKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tOCwgJXltbTgKK3ZwZXJtcSAkMjA2LCAl
eW1tNywgJXltbTcKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW03LCAleW1tMTAKK3Zw
b3IgJXltbTEwLCAleW1tOCwgJXltbTgKK3Ztb3ZkcXUgMzIoJXJkaSksICV5bW0xMAordnBhZGR3
IDE5MjAoJXJzcCksICV5bW0xMCwgJXltbTEwCit2cGFkZHcgJXltbTgsICV5bW0xMCwgJXltbTEw
Cit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMCwgJXltbTEwCit2bW92ZHF1ICV5bW0x
MCwgMzIoJXJkaSkKK3Ztb3ZkcWEgJXhtbTcsIDE5MjAoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2
KCVyaXApLCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tOSwgJXlt
bTcKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tOSwgJXltbTkKK3ZwZXJtcSAkMjA2LCAl
eW1tNywgJXltbTcKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW03LCAleW1tMTAKK3Zw
b3IgJXltbTEwLCAleW1tOSwgJXltbTkKK3ZwYWRkdyAyMTc2KCVyc3ApLCAleW1tMTEsICV5bW0x
MQordnBhZGR3ICV5bW05LCAleW1tMTEsICV5bW0xMQordm1vdmRxYSAleG1tNywgMjE3NiglcnNw
KQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW0yLCAleW1tMgordnBhbmQgbWFzazNfNV8z
XzUoJXJpcCksICV5bW0yLCAleW1tNwordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW0yLCAl
eW1tMgordnBlcm1xICQyMDYsICV5bW03LCAleW1tNwordnBhbmQgbWFza19rZWVwaGlnaCglcmlw
KSwgJXltbTcsICV5bW0xMAordnBvciAleW1tMTAsICV5bW0yLCAleW1tMgordnBhZGR3IDI0MzIo
JXJzcCksICV5bW02LCAleW1tNgordnBhZGR3ICV5bW0yLCAleW1tNiwgJXltbTYKK3Ztb3ZkcWEg
JXhtbTcsIDI0MzIoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNSwgJXltbTUK
K3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNSwgJXltbTcKK3ZwYW5kIG1hc2s1XzNfNV8z
KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkMjA2LCAleW1tNywgJXltbTcKK3ZwYW5kIG1h
c2tfa2VlcGhpZ2goJXJpcCksICV5bW03LCAleW1tMTAKK3Zwb3IgJXltbTEwLCAleW1tNSwgJXlt
bTUKK3ZwYWRkdyAyNjg4KCVyc3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyAleW1tNSwgJXltbTMs
ICV5bW0zCit2bW92ZHFhICV4bW03LCAyNjg4KCVyc3ApCit2cGFuZCBtYXNrX21vZDgxOTIoJXJp
cCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgMzg0KCVyZGkpCit2cGFuZCBtYXNr
X21vZDgxOTIoJXJpcCksICV5bW02LCAleW1tNgordm1vdmRxdSAleW1tNiwgNzM2KCVyZGkpCit2
cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0zLCAleW1tMwordm1vdmRxdSAleW1tMywgMTA4
OCglcmRpKQordm1vdmRxYSAxNjAoJXJzcCksICV5bW01Cit2cHVucGNrbHdkIGNvbnN0MCglcmlw
KSwgJXltbTUsICV5bW0yCit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW05Cit2
cHNsbGQgJDEsICV5bW0yLCAleW1tMgordnBzbGxkICQxLCAleW1tOSwgJXltbTkKK3Ztb3ZkcWEg
NDE2KCVyc3ApLCAleW1tOAordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW04LCAleW1tMwor
dnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW04LCAleW1tOAordm1vdmRxYSA2NzIoJXJzcCks
ICV5bW02Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTYsICV5bW0xMQordnB1bnBja2h3
ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5bW0xMSwgJXltbTMsICV5bW03
Cit2cGFkZGQgJXltbTYsICV5bW04LCAleW1tMTAKK3Zwc3ViZCAleW1tMiwgJXltbTcsICV5bW03
Cit2cHN1YmQgJXltbTksICV5bW0xMCwgJXltbTEwCit2cHN1YmQgJXltbTExLCAleW1tMywgJXlt
bTExCit2cHN1YmQgJXltbTYsICV5bW04LCAleW1tNgordnBzcmxkICQxLCAleW1tMTEsICV5bW0x
MQordnBzcmxkICQxLCAleW1tNiwgJXltbTYKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXlt
bTExLCAleW1tMTEKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTYsICV5bW02Cit2cGFj
a3VzZHcgJXltbTYsICV5bW0xMSwgJXltbTYKK3Ztb3ZkcWEgMTY5NiglcnNwKSwgJXltbTExCit2
cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tOAordnB1bnBja2h3ZCBjb25zdDAo
JXJpcCksICV5bW0xMSwgJXltbTMKK3Zwc2xsZCAkMSwgJXltbTgsICV5bW04Cit2cHNsbGQgJDEs
ICV5bW0zLCAleW1tMwordnBzdWJkICV5bW04LCAleW1tNywgJXltbTcKK3Zwc3ViZCAleW1tMywg
JXltbTEwLCAleW1tMTAKK3Zwc3JsZCAkMSwgJXltbTcsICV5bW03Cit2cHNybGQgJDEsICV5bW0x
MCwgJXltbTEwCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW03LCAleW1tNwordnBhbmQg
bWFzazMyX3RvXzE2KCVyaXApLCAleW1tMTAsICV5bW0xMAordnBhY2t1c2R3ICV5bW0xMCwgJXlt
bTcsICV5bW0xMAordm1vdmRxYSA5MjgoJXJzcCksICV5bW03Cit2cGFkZHcgMTE4NCglcnNwKSwg
JXltbTcsICV5bW0zCit2cHN1YncgMTE4NCglcnNwKSwgJXltbTcsICV5bW03Cit2cHNybHcgJDIs
ICV5bW03LCAleW1tNwordnBzdWJ3ICV5bW02LCAleW1tNywgJXltbTcKK3ZwbXVsbHcgJXltbTE0
LCAleW1tNywgJXltbTcKK3Zwc2xsdyAkMSwgJXltbTUsICV5bW04Cit2cHN1YncgJXltbTgsICV5
bW0zLCAleW1tOAordnBzbGx3ICQ3LCAleW1tMTEsICV5bW0zCit2cHN1YncgJXltbTMsICV5bW04
LCAleW1tMwordnBzcmx3ICQzLCAleW1tMywgJXltbTMKK3Zwc3VidyAleW1tMTAsICV5bW0zLCAl
eW1tMwordm1vdmRxYSAxNDQwKCVyc3ApLCAleW1tOAordnBzdWJ3ICV5bW01LCAleW1tOCwgJXlt
bTgKK3ZwbXVsbHcgJXltbTE1LCAleW1tMTEsICV5bW05Cit2cHN1YncgJXltbTksICV5bW04LCAl
eW1tOQordnBtdWxsdyAleW1tMTQsICV5bW0zLCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1tMTAs
ICV5bW0xMAordnBtdWxsdyAleW1tMTIsICV5bW0zLCAleW1tOAordnBhZGR3ICV5bW04LCAleW1t
MTAsICV5bW04Cit2cG11bGx3ICV5bW0xMiwgJXltbTgsICV5bW04Cit2cHN1YncgJXltbTgsICV5
bW05LCAleW1tOAordnBtdWxsdyAleW1tMTQsICV5bW04LCAleW1tOAordnBzdWJ3ICV5bW02LCAl
eW1tOCwgJXltbTgKK3Zwc3JsdyAkMywgJXltbTgsICV5bW04Cit2cHN1YncgJXltbTcsICV5bW04
LCAleW1tOAordnBzdWJ3ICV5bW04LCAleW1tNywgJXltbTcKK3Zwc3VidyAleW1tNywgJXltbTYs
ICV5bW02Cit2cG11bGx3ICV5bW0xMywgJXltbTgsICV5bW04Cit2cHN1YncgJXltbTgsICV5bW02
LCAleW1tNgordm1vdmRxdSA0NzIoJXJkaSksICV5bW05Cit2bW92ZHF1IDgyNCglcmRpKSwgJXlt
bTIKK3Ztb3ZkcXUgMTE3NiglcmRpKSwgJXltbTQKK3ZwYWRkdyAleW1tNSwgJXltbTksICV5bW01
Cit2cGFkZHcgJXltbTYsICV5bW0yLCAleW1tNgordnBhZGR3ICV5bW0xMCwgJXltbTQsICV5bW0x
MAordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW03LCAleW1tNwordnBhbmQgbWFzazNfNV8z
XzUoJXJpcCksICV5bW03LCAleW1tNAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW03LCAl
eW1tNwordnBlcm1xICQyMDYsICV5bW00LCAleW1tNAordnBhbmQgbWFza19rZWVwaGlnaCglcmlw
KSwgJXltbTQsICV5bW0yCit2cG9yICV5bW0yLCAleW1tNywgJXltbTcKK3Ztb3ZkcXUgMTIwKCVy
ZGkpLCAleW1tMgordnBhZGR3IDE5NTIoJXJzcCksICV5bW0yLCAleW1tMgordnBhZGR3ICV5bW03
LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTIsICV5bW0yCit2
bW92ZHF1ICV5bW0yLCAxMjAoJXJkaSkKK3Ztb3ZkcWEgJXhtbTQsIDE5NTIoJXJzcCkKK3Zwc2h1
ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tMywgJXltbTMKK3ZwYW5kIG1hc2szXzVfM181KCVyaXAp
LCAleW1tMywgJXltbTQKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tMywgJXltbTMKK3Zw
ZXJtcSAkMjA2LCAleW1tNCwgJXltbTQKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW00
LCAleW1tMgordnBvciAleW1tMiwgJXltbTMsICV5bW0zCit2cGFkZHcgMjIwOCglcnNwKSwgJXlt
bTUsICV5bW01Cit2cGFkZHcgJXltbTMsICV5bW01LCAleW1tNQordm1vdmRxYSAleG1tNCwgMjIw
OCglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW04LCAleW1tOAordnBhbmQgbWFz
azNfNV8zXzUoJXJpcCksICV5bW04LCAleW1tNAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5
bW04LCAleW1tOAordnBlcm1xICQyMDYsICV5bW00LCAleW1tNAordnBhbmQgbWFza19rZWVwaGln
aCglcmlwKSwgJXltbTQsICV5bW0yCit2cG9yICV5bW0yLCAleW1tOCwgJXltbTgKK3ZwYWRkdyAy
NDY0KCVyc3ApLCAleW1tNiwgJXltbTYKK3ZwYWRkdyAleW1tOCwgJXltbTYsICV5bW02Cit2bW92
ZHFhICV4bW00LCAyNDY0KCVyc3ApCit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTExLCAl
eW1tMTEKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tMTEsICV5bW00Cit2cGFuZCBtYXNr
NV8zXzVfMyglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwZXJtcSAkMjA2LCAleW1tNCwgJXltbTQK
K3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW00LCAleW1tMgordnBvciAleW1tMiwgJXlt
bTExLCAleW1tMTEKK3ZwYWRkdyAyNzIwKCVyc3ApLCAleW1tMTAsICV5bW0xMAordnBhZGR3ICV5
bW0xMSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgJXhtbTQsIDI3MjAoJXJzcCkKK3ZwYW5kIG1h
c2tfbW9kODE5MiglcmlwKSwgJXltbTUsICV5bW01Cit2bW92ZHF1ICV5bW01LCA0NzIoJXJkaSkK
K3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTYsICV5bW02Cit2bW92ZHF1ICV5bW02LCA4
MjQoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTEwLCAleW1tMTAKK3Ztb3Zk
cXUgJXltbTEwLCAxMTc2KCVyZGkpCit2bW92ZHFhIDE5MiglcnNwKSwgJXltbTExCit2cHVucGNr
bHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tOAordnB1bnBja2h3ZCBjb25zdDAoJXJpcCks
ICV5bW0xMSwgJXltbTMKK3Zwc2xsZCAkMSwgJXltbTgsICV5bW04Cit2cHNsbGQgJDEsICV5bW0z
LCAleW1tMwordm1vdmRxYSA0NDgoJXJzcCksICV5bW03Cit2cHVucGNrbHdkIGNvbnN0MCglcmlw
KSwgJXltbTcsICV5bW0xMAordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW03LCAleW1tNwor
dm1vdmRxYSA3MDQoJXJzcCksICV5bW02Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTYs
ICV5bW01Cit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTYsICV5bW02Cit2cGFkZGQgJXlt
bTUsICV5bW0xMCwgJXltbTQKK3ZwYWRkZCAleW1tNiwgJXltbTcsICV5bW0yCit2cHN1YmQgJXlt
bTgsICV5bW00LCAleW1tNAordnBzdWJkICV5bW0zLCAleW1tMiwgJXltbTIKK3Zwc3ViZCAleW1t
NSwgJXltbTEwLCAleW1tNQordnBzdWJkICV5bW02LCAleW1tNywgJXltbTYKK3Zwc3JsZCAkMSwg
JXltbTUsICV5bW01Cit2cHNybGQgJDEsICV5bW02LCAleW1tNgordnBhbmQgbWFzazMyX3RvXzE2
KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTYsICV5
bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW01LCAleW1tNgordm1vdmRxYSAxNzI4KCVyc3ApLCAl
eW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tNwordnB1bnBja2h3ZCBj
b25zdDAoJXJpcCksICV5bW01LCAleW1tMTAKK3Zwc2xsZCAkMSwgJXltbTcsICV5bW03Cit2cHNs
bGQgJDEsICV5bW0xMCwgJXltbTEwCit2cHN1YmQgJXltbTcsICV5bW00LCAleW1tNAordnBzdWJk
ICV5bW0xMCwgJXltbTIsICV5bW0yCit2cHNybGQgJDEsICV5bW00LCAleW1tNAordnBzcmxkICQx
LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTQsICV5bW00Cit2
cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW0yLCAleW1tMgordnBhY2t1c2R3ICV5bW0yLCAl
eW1tNCwgJXltbTIKK3Ztb3ZkcWEgOTYwKCVyc3ApLCAleW1tNAordnBhZGR3IDEyMTYoJXJzcCks
ICV5bW00LCAleW1tMTAKK3Zwc3VidyAxMjE2KCVyc3ApLCAleW1tNCwgJXltbTQKK3Zwc3JsdyAk
MiwgJXltbTQsICV5bW00Cit2cHN1YncgJXltbTYsICV5bW00LCAleW1tNAordnBtdWxsdyAleW1t
MTQsICV5bW00LCAleW1tNAordnBzbGx3ICQxLCAleW1tMTEsICV5bW03Cit2cHN1YncgJXltbTcs
ICV5bW0xMCwgJXltbTcKK3Zwc2xsdyAkNywgJXltbTUsICV5bW0xMAordnBzdWJ3ICV5bW0xMCwg
JXltbTcsICV5bW0xMAordnBzcmx3ICQzLCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5bW0yLCAl
eW1tMTAsICV5bW0xMAordm1vdmRxYSAxNDcyKCVyc3ApLCAleW1tNwordnBzdWJ3ICV5bW0xMSwg
JXltbTcsICV5bW03Cit2cG11bGx3ICV5bW0xNSwgJXltbTUsICV5bW0zCit2cHN1YncgJXltbTMs
ICV5bW03LCAleW1tMwordnBtdWxsdyAleW1tMTQsICV5bW0xMCwgJXltbTEwCit2cHN1YncgJXlt
bTEwLCAleW1tMiwgJXltbTIKK3ZwbXVsbHcgJXltbTEyLCAleW1tMTAsICV5bW03Cit2cGFkZHcg
JXltbTcsICV5bW0yLCAleW1tNwordnBtdWxsdyAleW1tMTIsICV5bW03LCAleW1tNwordnBzdWJ3
ICV5bW03LCAleW1tMywgJXltbTcKK3ZwbXVsbHcgJXltbTE0LCAleW1tNywgJXltbTcKK3Zwc3Vi
dyAleW1tNiwgJXltbTcsICV5bW03Cit2cHNybHcgJDMsICV5bW03LCAleW1tNwordnBzdWJ3ICV5
bW00LCAleW1tNywgJXltbTcKK3Zwc3VidyAleW1tNywgJXltbTQsICV5bW00Cit2cHN1YncgJXlt
bTQsICV5bW02LCAleW1tNgordnBtdWxsdyAleW1tMTMsICV5bW03LCAleW1tNwordnBzdWJ3ICV5
bW03LCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgNTYwKCVyZGkpLCAleW1tMwordm1vdmRxdSA5MTIo
JXJkaSksICV5bW04Cit2bW92ZHF1IDEyNjQoJXJkaSksICV5bW05Cit2cGFkZHcgJXltbTExLCAl
eW1tMywgJXltbTExCit2cGFkZHcgJXltbTYsICV5bW04LCAleW1tNgordnBhZGR3ICV5bW0yLCAl
eW1tOSwgJXltbTIKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNCwgJXltbTQKK3ZwYW5k
IG1hc2szXzVfM181KCVyaXApLCAleW1tNCwgJXltbTkKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXAp
LCAleW1tNCwgJXltbTQKK3ZwZXJtcSAkMjA2LCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2tfa2Vl
cGhpZ2goJXJpcCksICV5bW05LCAleW1tOAordnBvciAleW1tOCwgJXltbTQsICV5bW00Cit2bW92
ZHF1IDIwOCglcmRpKSwgJXltbTgKK3ZwYWRkdyAxOTg0KCVyc3ApLCAleW1tOCwgJXltbTgKK3Zw
YWRkdyAleW1tNCwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW04
LCAleW1tOAordm1vdmRxdSAleW1tOCwgMjA4KCVyZGkpCit2bW92ZHFhICV4bW05LCAxOTg0KCVy
c3ApCit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTEwLCAleW1tMTAKK3ZwYW5kIG1hc2sz
XzVfM181KCVyaXApLCAleW1tMTAsICV5bW05Cit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXlt
bTEwLCAleW1tMTAKK3ZwZXJtcSAkMjA2LCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2tfa2VlcGhp
Z2goJXJpcCksICV5bW05LCAleW1tOAordnBvciAleW1tOCwgJXltbTEwLCAleW1tMTAKK3ZwYWRk
dyAyMjQwKCVyc3ApLCAleW1tMTEsICV5bW0xMQordnBhZGR3ICV5bW0xMCwgJXltbTExLCAleW1t
MTEKK3Ztb3ZkcWEgJXhtbTksIDIyNDAoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAl
eW1tNywgJXltbTcKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tNywgJXltbTkKK3ZwYW5k
IG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNywgJXltbTcKK3ZwZXJtcSAkMjA2LCAleW1tOSwgJXlt
bTkKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW05LCAleW1tOAordnBvciAleW1tOCwg
JXltbTcsICV5bW03Cit2cGFkZHcgMjQ5NiglcnNwKSwgJXltbTYsICV5bW02Cit2cGFkZHcgJXlt
bTcsICV5bW02LCAleW1tNgordm1vdmRxYSAleG1tOSwgMjQ5NiglcnNwKQordnBzaHVmYiBzaHVm
NDhfMTYoJXJpcCksICV5bW01LCAleW1tNQordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW01
LCAleW1tOQordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW01LCAleW1tNQordnBlcm1xICQy
MDYsICV5bW05LCAleW1tOQordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTksICV5bW04
Cit2cG9yICV5bW04LCAleW1tNSwgJXltbTUKK3ZwYWRkdyAyNzUyKCVyc3ApLCAleW1tMiwgJXlt
bTIKK3ZwYWRkdyAleW1tNSwgJXltbTIsICV5bW0yCit2bW92ZHFhICV4bW05LCAyNzUyKCVyc3Ap
Cit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0x
MSwgNTYwKCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW02LCAleW1tNgordm1v
dmRxdSAleW1tNiwgOTEyKCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0yLCAl
eW1tMgordm1vdmRxdSAleW1tMiwgMTI2NCglcmRpKQordm1vdmRxYSAyMjQoJXJzcCksICV5bW01
Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW03Cit2cHVucGNraHdkIGNvbnN0
MCglcmlwKSwgJXltbTUsICV5bW0xMAordnBzbGxkICQxLCAleW1tNywgJXltbTcKK3Zwc2xsZCAk
MSwgJXltbTEwLCAleW1tMTAKK3Ztb3ZkcWEgNDgwKCVyc3ApLCAleW1tNAordnB1bnBja2x3ZCBj
b25zdDAoJXJpcCksICV5bW00LCAleW1tMgordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW00
LCAleW1tNAordm1vdmRxYSA3MzYoJXJzcCksICV5bW02Cit2cHVucGNrbHdkIGNvbnN0MCglcmlw
KSwgJXltbTYsICV5bW0xMQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNgor
dnBhZGRkICV5bW0xMSwgJXltbTIsICV5bW05Cit2cGFkZGQgJXltbTYsICV5bW00LCAleW1tOAor
dnBzdWJkICV5bW03LCAleW1tOSwgJXltbTkKK3Zwc3ViZCAleW1tMTAsICV5bW04LCAleW1tOAor
dnBzdWJkICV5bW0xMSwgJXltbTIsICV5bW0xMQordnBzdWJkICV5bW02LCAleW1tNCwgJXltbTYK
K3Zwc3JsZCAkMSwgJXltbTExLCAleW1tMTEKK3Zwc3JsZCAkMSwgJXltbTYsICV5bW02Cit2cGFu
ZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrMzJfdG9fMTYo
JXJpcCksICV5bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02LCAleW1tMTEsICV5bW02Cit2bW92
ZHFhIDE3NjAoJXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwg
JXltbTQKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW0yCit2cHNsbGQgJDEs
ICV5bW00LCAleW1tNAordnBzbGxkICQxLCAleW1tMiwgJXltbTIKK3Zwc3ViZCAleW1tNCwgJXlt
bTksICV5bW05Cit2cHN1YmQgJXltbTIsICV5bW04LCAleW1tOAordnBzcmxkICQxLCAleW1tOSwg
JXltbTkKK3Zwc3JsZCAkMSwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCks
ICV5bW05LCAleW1tOQordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tOCwgJXltbTgKK3Zw
YWNrdXNkdyAleW1tOCwgJXltbTksICV5bW04Cit2bW92ZHFhIDk5MiglcnNwKSwgJXltbTkKK3Zw
YWRkdyAxMjQ4KCVyc3ApLCAleW1tOSwgJXltbTIKK3Zwc3VidyAxMjQ4KCVyc3ApLCAleW1tOSwg
JXltbTkKK3Zwc3JsdyAkMiwgJXltbTksICV5bW05Cit2cHN1YncgJXltbTYsICV5bW05LCAleW1t
OQordnBtdWxsdyAleW1tMTQsICV5bW05LCAleW1tOQordnBzbGx3ICQxLCAleW1tNSwgJXltbTQK
K3Zwc3VidyAleW1tNCwgJXltbTIsICV5bW00Cit2cHNsbHcgJDcsICV5bW0xMSwgJXltbTIKK3Zw
c3VidyAleW1tMiwgJXltbTQsICV5bW0yCit2cHNybHcgJDMsICV5bW0yLCAleW1tMgordnBzdWJ3
ICV5bW04LCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgMTUwNCglcnNwKSwgJXltbTQKK3Zwc3VidyAl
eW1tNSwgJXltbTQsICV5bW00Cit2cG11bGx3ICV5bW0xNSwgJXltbTExLCAleW1tMTAKK3Zwc3Vi
dyAleW1tMTAsICV5bW00LCAleW1tMTAKK3ZwbXVsbHcgJXltbTE0LCAleW1tMiwgJXltbTIKK3Zw
c3VidyAleW1tMiwgJXltbTgsICV5bW04Cit2cG11bGx3ICV5bW0xMiwgJXltbTIsICV5bW00Cit2
cGFkZHcgJXltbTQsICV5bW04LCAleW1tNAordnBtdWxsdyAleW1tMTIsICV5bW00LCAleW1tNAor
dnBzdWJ3ICV5bW00LCAleW1tMTAsICV5bW00Cit2cG11bGx3ICV5bW0xNCwgJXltbTQsICV5bW00
Cit2cHN1YncgJXltbTYsICV5bW00LCAleW1tNAordnBzcmx3ICQzLCAleW1tNCwgJXltbTQKK3Zw
c3VidyAleW1tOSwgJXltbTQsICV5bW00Cit2cHN1YncgJXltbTQsICV5bW05LCAleW1tOQordnBz
dWJ3ICV5bW05LCAleW1tNiwgJXltbTYKK3ZwbXVsbHcgJXltbTEzLCAleW1tNCwgJXltbTQKK3Zw
c3VidyAleW1tNCwgJXltbTYsICV5bW02Cit2bW92ZHF1IDY0OCglcmRpKSwgJXltbTEwCit2bW92
ZHF1IDEwMDAoJXJkaSksICV5bW03Cit2bW92ZHF1IDEzNTIoJXJkaSksICV5bW0zCit2cGFkZHcg
JXltbTUsICV5bW0xMCwgJXltbTUKK3ZwYWRkdyAleW1tNiwgJXltbTcsICV5bW02Cit2cGFkZHcg
JXltbTgsICV5bW0zLCAleW1tOAordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW05LCAleW1t
OQordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW05LCAleW1tMwordnBhbmQgbWFzazVfM181
XzMoJXJpcCksICV5bW05LCAleW1tOQordnBlcm1xICQyMDYsICV5bW0zLCAleW1tMwordnBhbmQg
bWFza19rZWVwaGlnaCglcmlwKSwgJXltbTMsICV5bW03Cit2cG9yICV5bW03LCAleW1tOSwgJXlt
bTkKK3Ztb3ZkcXUgMjk2KCVyZGkpLCAleW1tNwordnBhZGR3IDIwMTYoJXJzcCksICV5bW03LCAl
eW1tNwordnBhZGR3ICV5bW05LCAleW1tNywgJXltbTcKK3ZwYW5kIG1hc2tfbW9kODE5Miglcmlw
KSwgJXltbTcsICV5bW03Cit2bW92ZHF1ICV5bW03LCAyOTYoJXJkaSkKK3Ztb3ZkcWEgJXhtbTMs
IDIwMTYoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tMiwgJXltbTIKK3ZwYW5k
IG1hc2szXzVfM181KCVyaXApLCAleW1tMiwgJXltbTMKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXAp
LCAleW1tMiwgJXltbTIKK3ZwZXJtcSAkMjA2LCAleW1tMywgJXltbTMKK3ZwYW5kIG1hc2tfa2Vl
cGhpZ2goJXJpcCksICV5bW0zLCAleW1tNwordnBvciAleW1tNywgJXltbTIsICV5bW0yCit2cGFk
ZHcgMjI3MiglcnNwKSwgJXltbTUsICV5bW01Cit2cGFkZHcgJXltbTIsICV5bW01LCAleW1tNQor
dm1vdmRxYSAleG1tMywgMjI3MiglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW00
LCAleW1tNAordnBhbmQgbWFzazNfNV8zXzUoJXJpcCksICV5bW00LCAleW1tMwordnBhbmQgbWFz
azVfM181XzMoJXJpcCksICV5bW00LCAleW1tNAordnBlcm1xICQyMDYsICV5bW0zLCAleW1tMwor
dnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTMsICV5bW03Cit2cG9yICV5bW03LCAleW1t
NCwgJXltbTQKK3ZwYWRkdyAyNTI4KCVyc3ApLCAleW1tNiwgJXltbTYKK3ZwYWRkdyAleW1tNCwg
JXltbTYsICV5bW02Cit2bW92ZHFhICV4bW0zLCAyNTI4KCVyc3ApCit2cHNodWZiIHNodWY0OF8x
NiglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwYW5kIG1hc2szXzVfM181KCVyaXApLCAleW1tMTEs
ICV5bW0zCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwZXJtcSAk
MjA2LCAleW1tMywgJXltbTMKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0zLCAleW1t
NwordnBvciAleW1tNywgJXltbTExLCAleW1tMTEKK3ZwYWRkdyAyNzg0KCVyc3ApLCAleW1tOCwg
JXltbTgKK3ZwYWRkdyAleW1tMTEsICV5bW04LCAleW1tOAordm1vdmRxYSAleG1tMywgMjc4NCgl
cnNwKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNSwgJXltbTUKK3Ztb3ZkcXUgJXlt
bTUsIDY0OCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwgJXltbTYKK3Zt
b3ZkcXUgJXltbTYsIDEwMDAoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTgs
ICV5bW04Cit2bW92ZHF1ICV5bW04LCAxMzUyKCVyZGkpCit2bW92ZHFhIDE2MCglcjEyKSwgJXlt
bTAKK3Zwc3VidyAyNTYoJXIxMiksICV5bW0wLCAleW1tMAordm1vdmRxYSA1NDQoJXIxMiksICV5
bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDM1MiglcjEyKSwgJXltbTEs
ICV5bW0xCit2cHN1YncgNjQoJXIxMiksICV5bW0wLCAleW1tMAordnBhZGR3IDQ0OCglcjEyKSwg
JXltbTAsICV5bW0wCit2bW92ZHFhIDczNiglcjEyKSwgJXltbTIKK3Zwc3VidyA4MzIoJXIxMiks
ICV5bW0yLCAleW1tMgordm1vdmRxYSAxMTIwKCVyMTIpLCAleW1tMwordnBzdWJ3ICV5bW0yLCAl
eW1tMywgJXltbTMKK3Zwc3VidyA5MjgoJXIxMiksICV5bW0zLCAleW1tMwordnBzdWJ3IDY0MCgl
cjEyKSwgJXltbTIsICV5bW0yCit2cGFkZHcgMTAyNCglcjEyKSwgJXltbTIsICV5bW0yCit2bW92
ZHFhIDEzMTIoJXIxMiksICV5bW00Cit2cHN1YncgMTQwOCglcjEyKSwgJXltbTQsICV5bW00Cit2
bW92ZHFhIDE2OTYoJXIxMiksICV5bW01Cit2cHN1YncgJXltbTQsICV5bW01LCAleW1tNQordnBz
dWJ3IDE1MDQoJXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDEyMTYoJXIxMiksICV5bW00LCAl
eW1tNAordnBhZGR3IDE2MDAoJXIxMiksICV5bW00LCAleW1tNAordnBzdWJ3IDY0MCglcjEyKSwg
JXltbTEsICV5bW0xCit2cHN1YncgJXltbTEsICV5bW01LCAleW1tNQordnBzdWJ3ICV5bW0zLCAl
eW1tNSwgJXltbTUKK3Zwc3VidyA2NCglcjEyKSwgJXltbTEsICV5bW0xCit2cGFkZHcgMTIxNigl
cjEyKSwgJXltbTEsICV5bW0xCit2bW92ZHFhIDM1MiglcjEyKSwgJXltbTYKK3Zwc3VidyAleW1t
MiwgJXltbTYsICV5bW03Cit2bW92ZHFhIDE1MDQoJXIxMiksICV5bW0yCit2cHN1YncgJXltbTcs
ICV5bW0yLCAleW1tMgordnBzdWJ3IDkyOCglcjEyKSwgJXltbTIsICV5bW0yCit2cHN1YncgJXlt
bTAsICV5bW03LCAleW1tNwordnBhZGR3ICV5bW00LCAleW1tNywgJXltbTcKK3Ztb3ZkcWEgNjQo
JXIxMiksICV5bW04Cit2bW92ZHFhIDkyOCglcjEyKSwgJXltbTkKK3Ztb3ZkcWEgJXltbTgsIDAo
JXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDMyKCVyc3ApCit2bW92ZHFhICV5bW0xLCA2NCglcnNwKQor
dm1vdmRxYSAleW1tNywgOTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTUsIDEyOCglcnNwKQordm1vdmRx
YSAleW1tMiwgMTYwKCVyc3ApCit2bW92ZHFhICV5bW0zLCAxOTIoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTksIDIyNCglcnNwKQordm1vdmRxYSAxODg4KCVyMTIpLCAleW1tMAordnBzdWJ3IDE5ODQoJXIx
MiksICV5bW0wLCAleW1tMAordm1vdmRxYSAyMjcyKCVyMTIpLCAleW1tMQordnBzdWJ3ICV5bW0w
LCAleW1tMSwgJXltbTEKK3Zwc3VidyAyMDgwKCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAx
NzkyKCVyMTIpLCAleW1tMCwgJXltbTAKK3ZwYWRkdyAyMTc2KCVyMTIpLCAleW1tMCwgJXltbTAK
K3Ztb3ZkcWEgMjQ2NCglcjEyKSwgJXltbTIKK3Zwc3VidyAyNTYwKCVyMTIpLCAleW1tMiwgJXlt
bTIKK3Ztb3ZkcWEgMjg0OCglcjEyKSwgJXltbTMKK3Zwc3VidyAleW1tMiwgJXltbTMsICV5bW0z
Cit2cHN1YncgMjY1NiglcjEyKSwgJXltbTMsICV5bW0zCit2cHN1YncgMjM2OCglcjEyKSwgJXlt
bTIsICV5bW0yCit2cGFkZHcgMjc1MiglcjEyKSwgJXltbTIsICV5bW0yCit2bW92ZHFhIDMwNDAo
JXIxMiksICV5bW00Cit2cHN1YncgMzEzNiglcjEyKSwgJXltbTQsICV5bW00Cit2bW92ZHFhIDM0
MjQoJXIxMiksICV5bW01Cit2cHN1YncgJXltbTQsICV5bW01LCAleW1tNQordnBzdWJ3IDMyMzIo
JXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDI5NDQoJXIxMiksICV5bW00LCAleW1tNAordnBh
ZGR3IDMzMjgoJXIxMiksICV5bW00LCAleW1tNAordnBzdWJ3IDIzNjgoJXIxMiksICV5bW0xLCAl
eW1tMQordnBzdWJ3ICV5bW0xLCAleW1tNSwgJXltbTUKK3Zwc3VidyAleW1tMywgJXltbTUsICV5
bW01Cit2cHN1YncgMTc5MiglcjEyKSwgJXltbTEsICV5bW0xCit2cGFkZHcgMjk0NCglcjEyKSwg
JXltbTEsICV5bW0xCit2bW92ZHFhIDIwODAoJXIxMiksICV5bW02Cit2cHN1YncgJXltbTIsICV5
bW02LCAleW1tNwordm1vdmRxYSAzMjMyKCVyMTIpLCAleW1tMgordnBzdWJ3ICV5bW03LCAleW1t
MiwgJXltbTIKK3Zwc3VidyAyNjU2KCVyMTIpLCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tMCwg
JXltbTcsICV5bW03Cit2cGFkZHcgJXltbTQsICV5bW03LCAleW1tNwordm1vdmRxYSAxNzkyKCVy
MTIpLCAleW1tOAordm1vdmRxYSAyNjU2KCVyMTIpLCAleW1tOQordm1vdmRxYSAleW1tOCwgMjU2
KCVyc3ApCit2bW92ZHFhICV5bW0wLCAyODgoJXJzcCkKK3Ztb3ZkcWEgJXltbTEsIDMyMCglcnNw
KQordm1vdmRxYSAleW1tNywgMzUyKCVyc3ApCit2bW92ZHFhICV5bW01LCAzODQoJXJzcCkKK3Zt
b3ZkcWEgJXltbTIsIDQxNiglcnNwKQordm1vdmRxYSAleW1tMywgNDQ4KCVyc3ApCit2bW92ZHFh
ICV5bW05LCA0ODAoJXJzcCkKK3Ztb3ZkcWEgMzYxNiglcjEyKSwgJXltbTAKK3Zwc3VidyAzNzEy
KCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgNDAwMCglcjEyKSwgJXltbTEKK3Zwc3VidyAl
eW1tMCwgJXltbTEsICV5bW0xCit2cHN1YncgMzgwOCglcjEyKSwgJXltbTEsICV5bW0xCit2cHN1
YncgMzUyMCglcjEyKSwgJXltbTAsICV5bW0wCit2cGFkZHcgMzkwNCglcjEyKSwgJXltbTAsICV5
bW0wCit2bW92ZHFhIDQxOTIoJXIxMiksICV5bW0yCit2cHN1YncgNDI4OCglcjEyKSwgJXltbTIs
ICV5bW0yCit2bW92ZHFhIDQ1NzYoJXIxMiksICV5bW0zCit2cHN1YncgJXltbTIsICV5bW0zLCAl
eW1tMwordnBzdWJ3IDQzODQoJXIxMiksICV5bW0zLCAleW1tMwordnBzdWJ3IDQwOTYoJXIxMiks
ICV5bW0yLCAleW1tMgordnBhZGR3IDQ0ODAoJXIxMiksICV5bW0yLCAleW1tMgordm1vdmRxYSA0
NzY4KCVyMTIpLCAleW1tNAordnBzdWJ3IDQ4NjQoJXIxMiksICV5bW00LCAleW1tNAordm1vdmRx
YSA1MTUyKCVyMTIpLCAleW1tNQordnBzdWJ3ICV5bW00LCAleW1tNSwgJXltbTUKK3Zwc3VidyA0
OTYwKCVyMTIpLCAleW1tNSwgJXltbTUKK3Zwc3VidyA0NjcyKCVyMTIpLCAleW1tNCwgJXltbTQK
K3ZwYWRkdyA1MDU2KCVyMTIpLCAleW1tNCwgJXltbTQKK3Zwc3VidyA0MDk2KCVyMTIpLCAleW1t
MSwgJXltbTEKK3Zwc3VidyAleW1tMSwgJXltbTUsICV5bW01Cit2cHN1YncgJXltbTMsICV5bW01
LCAleW1tNQordnBzdWJ3IDM1MjAoJXIxMiksICV5bW0xLCAleW1tMQordnBhZGR3IDQ2NzIoJXIx
MiksICV5bW0xLCAleW1tMQordm1vdmRxYSAzODA4KCVyMTIpLCAleW1tNgordnBzdWJ3ICV5bW0y
LCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgNDk2MCglcjEyKSwgJXltbTIKK3Zwc3VidyAleW1tNywg
JXltbTIsICV5bW0yCit2cHN1YncgNDM4NCglcjEyKSwgJXltbTIsICV5bW0yCit2cHN1YncgJXlt
bTAsICV5bW03LCAleW1tNwordnBhZGR3ICV5bW00LCAleW1tNywgJXltbTcKK3Ztb3ZkcWEgMzUy
MCglcjEyKSwgJXltbTgKK3Ztb3ZkcWEgNDM4NCglcjEyKSwgJXltbTkKK3Ztb3ZkcWEgJXltbTgs
IDUxMiglcnNwKQordm1vdmRxYSAleW1tMCwgNTQ0KCVyc3ApCit2bW92ZHFhICV5bW0xLCA1NzYo
JXJzcCkKK3Ztb3ZkcWEgJXltbTcsIDYwOCglcnNwKQordm1vdmRxYSAleW1tNSwgNjQwKCVyc3Ap
Cit2bW92ZHFhICV5bW0yLCA2NzIoJXJzcCkKK3Ztb3ZkcWEgJXltbTMsIDcwNCglcnNwKQordm1v
dmRxYSAleW1tOSwgNzM2KCVyc3ApCit2bW92ZHFhIDUzNDQoJXIxMiksICV5bW0wCit2cHN1Yncg
NTQ0MCglcjEyKSwgJXltbTAsICV5bW0wCit2bW92ZHFhIDU3MjgoJXIxMiksICV5bW0xCit2cHN1
YncgJXltbTAsICV5bW0xLCAleW1tMQordnBzdWJ3IDU1MzYoJXIxMiksICV5bW0xLCAleW1tMQor
dnBzdWJ3IDUyNDgoJXIxMiksICV5bW0wLCAleW1tMAordnBhZGR3IDU2MzIoJXIxMiksICV5bW0w
LCAleW1tMAordm1vdmRxYSA1OTIwKCVyMTIpLCAleW1tMgordnBzdWJ3IDYwMTYoJXIxMiksICV5
bW0yLCAleW1tMgordm1vdmRxYSA2MzA0KCVyMTIpLCAleW1tMwordnBzdWJ3ICV5bW0yLCAleW1t
MywgJXltbTMKK3Zwc3VidyA2MTEyKCVyMTIpLCAleW1tMywgJXltbTMKK3Zwc3VidyA1ODI0KCVy
MTIpLCAleW1tMiwgJXltbTIKK3ZwYWRkdyA2MjA4KCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3Zk
cWEgNjQ5NiglcjEyKSwgJXltbTQKK3Zwc3VidyA2NTkyKCVyMTIpLCAleW1tNCwgJXltbTQKK3Zt
b3ZkcWEgNjg4MCglcjEyKSwgJXltbTUKK3Zwc3VidyAleW1tNCwgJXltbTUsICV5bW01Cit2cHN1
YncgNjY4OCglcjEyKSwgJXltbTUsICV5bW01Cit2cHN1YncgNjQwMCglcjEyKSwgJXltbTQsICV5
bW00Cit2cGFkZHcgNjc4NCglcjEyKSwgJXltbTQsICV5bW00Cit2cHN1YncgNTgyNCglcjEyKSwg
JXltbTEsICV5bW0xCit2cHN1YncgJXltbTEsICV5bW01LCAleW1tNQordnBzdWJ3ICV5bW0zLCAl
eW1tNSwgJXltbTUKK3Zwc3VidyA1MjQ4KCVyMTIpLCAleW1tMSwgJXltbTEKK3ZwYWRkdyA2NDAw
KCVyMTIpLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgNTUzNiglcjEyKSwgJXltbTYKK3Zwc3VidyAl
eW1tMiwgJXltbTYsICV5bW03Cit2bW92ZHFhIDY2ODgoJXIxMiksICV5bW0yCit2cHN1YncgJXlt
bTcsICV5bW0yLCAleW1tMgordnBzdWJ3IDYxMTIoJXIxMiksICV5bW0yLCAleW1tMgordnBzdWJ3
ICV5bW0wLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1tNCwgJXltbTcsICV5bW03Cit2bW92ZHFh
IDUyNDgoJXIxMiksICV5bW04Cit2bW92ZHFhIDYxMTIoJXIxMiksICV5bW05Cit2bW92ZHFhICV5
bW04LCA3NjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDgwMCglcnNwKQordm1vdmRxYSAleW1tMSwg
ODMyKCVyc3ApCit2bW92ZHFhICV5bW03LCA4NjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTUsIDg5Nigl
cnNwKQordm1vdmRxYSAleW1tMiwgOTI4KCVyc3ApCit2bW92ZHFhICV5bW0zLCA5NjAoJXJzcCkK
K3Ztb3ZkcWEgJXltbTksIDk5MiglcnNwKQordm1vdmRxYSA3MDcyKCVyMTIpLCAleW1tMAordnBz
dWJ3IDcxNjgoJXIxMiksICV5bW0wLCAleW1tMAordm1vdmRxYSA3NDU2KCVyMTIpLCAleW1tMQor
dnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA3MjY0KCVyMTIpLCAleW1tMSwgJXlt
bTEKK3Zwc3VidyA2OTc2KCVyMTIpLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA3MzYwKCVyMTIpLCAl
eW1tMCwgJXltbTAKK3Ztb3ZkcWEgNzY0OCglcjEyKSwgJXltbTIKK3Zwc3VidyA3NzQ0KCVyMTIp
LCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgODAzMiglcjEyKSwgJXltbTMKK3Zwc3VidyAleW1tMiwg
JXltbTMsICV5bW0zCit2cHN1YncgNzg0MCglcjEyKSwgJXltbTMsICV5bW0zCit2cHN1YncgNzU1
MiglcjEyKSwgJXltbTIsICV5bW0yCit2cGFkZHcgNzkzNiglcjEyKSwgJXltbTIsICV5bW0yCit2
bW92ZHFhIDgyMjQoJXIxMiksICV5bW00Cit2cHN1YncgODMyMCglcjEyKSwgJXltbTQsICV5bW00
Cit2bW92ZHFhIDg2MDgoJXIxMiksICV5bW01Cit2cHN1YncgJXltbTQsICV5bW01LCAleW1tNQor
dnBzdWJ3IDg0MTYoJXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDgxMjgoJXIxMiksICV5bW00
LCAleW1tNAordnBhZGR3IDg1MTIoJXIxMiksICV5bW00LCAleW1tNAordnBzdWJ3IDc1NTIoJXIx
MiksICV5bW0xLCAleW1tMQordnBzdWJ3ICV5bW0xLCAleW1tNSwgJXltbTUKK3Zwc3VidyAleW1t
MywgJXltbTUsICV5bW01Cit2cHN1YncgNjk3NiglcjEyKSwgJXltbTEsICV5bW0xCit2cGFkZHcg
ODEyOCglcjEyKSwgJXltbTEsICV5bW0xCit2bW92ZHFhIDcyNjQoJXIxMiksICV5bW02Cit2cHN1
YncgJXltbTIsICV5bW02LCAleW1tNwordm1vdmRxYSA4NDE2KCVyMTIpLCAleW1tMgordnBzdWJ3
ICV5bW03LCAleW1tMiwgJXltbTIKK3Zwc3VidyA3ODQwKCVyMTIpLCAleW1tMiwgJXltbTIKK3Zw
c3VidyAleW1tMCwgJXltbTcsICV5bW03Cit2cGFkZHcgJXltbTQsICV5bW03LCAleW1tNwordm1v
dmRxYSA2OTc2KCVyMTIpLCAleW1tOAordm1vdmRxYSA3ODQwKCVyMTIpLCAleW1tOQordm1vdmRx
YSAleW1tOCwgMTAyNCglcnNwKQordm1vdmRxYSAleW1tMCwgMTA1NiglcnNwKQordm1vdmRxYSAl
eW1tMSwgMTA4OCglcnNwKQordm1vdmRxYSAleW1tNywgMTEyMCglcnNwKQordm1vdmRxYSAleW1t
NSwgMTE1MiglcnNwKQordm1vdmRxYSAleW1tMiwgMTE4NCglcnNwKQordm1vdmRxYSAleW1tMywg
MTIxNiglcnNwKQordm1vdmRxYSAleW1tOSwgMTI0OCglcnNwKQordm1vdmRxYSA4ODAwKCVyMTIp
LCAleW1tMAordnBzdWJ3IDg4OTYoJXIxMiksICV5bW0wLCAleW1tMAordm1vdmRxYSA5MTg0KCVy
MTIpLCAleW1tMQordnBzdWJ3ICV5bW0wLCAleW1tMSwgJXltbTEKK3Zwc3VidyA4OTkyKCVyMTIp
LCAleW1tMSwgJXltbTEKK3Zwc3VidyA4NzA0KCVyMTIpLCAleW1tMCwgJXltbTAKK3ZwYWRkdyA5
MDg4KCVyMTIpLCAleW1tMCwgJXltbTAKK3Ztb3ZkcWEgOTM3NiglcjEyKSwgJXltbTIKK3Zwc3Vi
dyA5NDcyKCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgOTc2MCglcjEyKSwgJXltbTMKK3Zw
c3VidyAleW1tMiwgJXltbTMsICV5bW0zCit2cHN1YncgOTU2OCglcjEyKSwgJXltbTMsICV5bW0z
Cit2cHN1YncgOTI4MCglcjEyKSwgJXltbTIsICV5bW0yCit2cGFkZHcgOTY2NCglcjEyKSwgJXlt
bTIsICV5bW0yCit2bW92ZHFhIDk5NTIoJXIxMiksICV5bW00Cit2cHN1YncgMTAwNDgoJXIxMiks
ICV5bW00LCAleW1tNAordm1vdmRxYSAxMDMzNiglcjEyKSwgJXltbTUKK3Zwc3VidyAleW1tNCwg
JXltbTUsICV5bW01Cit2cHN1YncgMTAxNDQoJXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDk4
NTYoJXIxMiksICV5bW00LCAleW1tNAordnBhZGR3IDEwMjQwKCVyMTIpLCAleW1tNCwgJXltbTQK
K3Zwc3VidyA5MjgwKCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAleW1tMSwgJXltbTUsICV5
bW01Cit2cHN1YncgJXltbTMsICV5bW01LCAleW1tNQordnBzdWJ3IDg3MDQoJXIxMiksICV5bW0x
LCAleW1tMQordnBhZGR3IDk4NTYoJXIxMiksICV5bW0xLCAleW1tMQordm1vdmRxYSA4OTkyKCVy
MTIpLCAleW1tNgordnBzdWJ3ICV5bW0yLCAleW1tNiwgJXltbTcKK3Ztb3ZkcWEgMTAxNDQoJXIx
MiksICV5bW0yCit2cHN1YncgJXltbTcsICV5bW0yLCAleW1tMgordnBzdWJ3IDk1NjgoJXIxMiks
ICV5bW0yLCAleW1tMgordnBzdWJ3ICV5bW0wLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1tNCwg
JXltbTcsICV5bW03Cit2bW92ZHFhIDg3MDQoJXIxMiksICV5bW04Cit2bW92ZHFhIDk1NjgoJXIx
MiksICV5bW05Cit2bW92ZHFhICV5bW04LCAxMjgwKCVyc3ApCit2bW92ZHFhICV5bW0wLCAxMzEy
KCVyc3ApCit2bW92ZHFhICV5bW0xLCAxMzQ0KCVyc3ApCit2bW92ZHFhICV5bW03LCAxMzc2KCVy
c3ApCit2bW92ZHFhICV5bW01LCAxNDA4KCVyc3ApCit2bW92ZHFhICV5bW0yLCAxNDQwKCVyc3Ap
Cit2bW92ZHFhICV5bW0zLCAxNDcyKCVyc3ApCit2bW92ZHFhICV5bW05LCAxNTA0KCVyc3ApCit2
bW92ZHFhIDEwNTI4KCVyMTIpLCAleW1tMAordnBzdWJ3IDEwNjI0KCVyMTIpLCAleW1tMCwgJXlt
bTAKK3Ztb3ZkcWEgMTA5MTIoJXIxMiksICV5bW0xCit2cHN1YncgJXltbTAsICV5bW0xLCAleW1t
MQordnBzdWJ3IDEwNzIwKCVyMTIpLCAleW1tMSwgJXltbTEKK3Zwc3VidyAxMDQzMiglcjEyKSwg
JXltbTAsICV5bW0wCit2cGFkZHcgMTA4MTYoJXIxMiksICV5bW0wLCAleW1tMAordm1vdmRxYSAx
MTEwNCglcjEyKSwgJXltbTIKK3Zwc3VidyAxMTIwMCglcjEyKSwgJXltbTIsICV5bW0yCit2bW92
ZHFhIDExNDg4KCVyMTIpLCAleW1tMwordnBzdWJ3ICV5bW0yLCAleW1tMywgJXltbTMKK3Zwc3Vi
dyAxMTI5NiglcjEyKSwgJXltbTMsICV5bW0zCit2cHN1YncgMTEwMDgoJXIxMiksICV5bW0yLCAl
eW1tMgordnBhZGR3IDExMzkyKCVyMTIpLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgMTE2ODAoJXIx
MiksICV5bW00Cit2cHN1YncgMTE3NzYoJXIxMiksICV5bW00LCAleW1tNAordm1vdmRxYSAxMjA2
NCglcjEyKSwgJXltbTUKK3Zwc3VidyAleW1tNCwgJXltbTUsICV5bW01Cit2cHN1YncgMTE4NzIo
JXIxMiksICV5bW01LCAleW1tNQordnBzdWJ3IDExNTg0KCVyMTIpLCAleW1tNCwgJXltbTQKK3Zw
YWRkdyAxMTk2OCglcjEyKSwgJXltbTQsICV5bW00Cit2cHN1YncgMTEwMDgoJXIxMiksICV5bW0x
LCAleW1tMQordnBzdWJ3ICV5bW0xLCAleW1tNSwgJXltbTUKK3Zwc3VidyAleW1tMywgJXltbTUs
ICV5bW01Cit2cHN1YncgMTA0MzIoJXIxMiksICV5bW0xLCAleW1tMQordnBhZGR3IDExNTg0KCVy
MTIpLCAleW1tMSwgJXltbTEKK3Ztb3ZkcWEgMTA3MjAoJXIxMiksICV5bW02Cit2cHN1YncgJXlt
bTIsICV5bW02LCAleW1tNwordm1vdmRxYSAxMTg3MiglcjEyKSwgJXltbTIKK3Zwc3VidyAleW1t
NywgJXltbTIsICV5bW0yCit2cHN1YncgMTEyOTYoJXIxMiksICV5bW0yLCAleW1tMgordnBzdWJ3
ICV5bW0wLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1tNCwgJXltbTcsICV5bW03Cit2bW92ZHFh
IDEwNDMyKCVyMTIpLCAleW1tOAordm1vdmRxYSAxMTI5NiglcjEyKSwgJXltbTkKK3Ztb3ZkcWEg
JXltbTgsIDE1MzYoJXJzcCkKK3Ztb3ZkcWEgJXltbTAsIDE1NjgoJXJzcCkKK3Ztb3ZkcWEgJXlt
bTEsIDE2MDAoJXJzcCkKK3Ztb3ZkcWEgJXltbTcsIDE2MzIoJXJzcCkKK3Ztb3ZkcWEgJXltbTUs
IDE2NjQoJXJzcCkKK3Ztb3ZkcWEgJXltbTIsIDE2OTYoJXJzcCkKK3Ztb3ZkcWEgJXltbTMsIDE3
MjgoJXJzcCkKK3Ztb3ZkcWEgJXltbTksIDE3NjAoJXJzcCkKK3Ztb3ZkcWEgMCglcnNwKSwgJXlt
bTExCit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tNAordnB1bnBja2h3ZCBj
b25zdDAoJXJpcCksICV5bW0xMSwgJXltbTIKK3Zwc2xsZCAkMSwgJXltbTQsICV5bW00Cit2cHNs
bGQgJDEsICV5bW0yLCAleW1tMgordm1vdmRxYSAyNTYoJXJzcCksICV5bW05Cit2cHVucGNrbHdk
IGNvbnN0MCglcmlwKSwgJXltbTksICV5bW04Cit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXlt
bTksICV5bW05Cit2bW92ZHFhIDUxMiglcnNwKSwgJXltbTYKK3ZwdW5wY2tsd2QgY29uc3QwKCVy
aXApLCAleW1tNiwgJXltbTUKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNiwgJXltbTYK
K3ZwYWRkZCAleW1tNSwgJXltbTgsICV5bW0zCit2cGFkZGQgJXltbTYsICV5bW05LCAleW1tNwor
dnBzdWJkICV5bW00LCAleW1tMywgJXltbTMKK3Zwc3ViZCAleW1tMiwgJXltbTcsICV5bW03Cit2
cHN1YmQgJXltbTUsICV5bW04LCAleW1tNQordnBzdWJkICV5bW02LCAleW1tOSwgJXltbTYKK3Zw
c3JsZCAkMSwgJXltbTUsICV5bW01Cit2cHNybGQgJDEsICV5bW02LCAleW1tNgordnBhbmQgbWFz
azMyX3RvXzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwg
JXltbTYsICV5bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW01LCAleW1tNgordm1vdmRxYSAxNTM2
KCVyc3ApLCAleW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tOQordnB1
bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tOAordnBzbGxkICQxLCAleW1tOSwgJXlt
bTkKK3Zwc2xsZCAkMSwgJXltbTgsICV5bW04Cit2cHN1YmQgJXltbTksICV5bW0zLCAleW1tMwor
dnBzdWJkICV5bW04LCAleW1tNywgJXltbTcKK3Zwc3JsZCAkMSwgJXltbTMsICV5bW0zCit2cHNy
bGQgJDEsICV5bW03LCAleW1tNwordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tMywgJXlt
bTMKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTcsICV5bW03Cit2cGFja3VzZHcgJXlt
bTcsICV5bW0zLCAleW1tNwordm1vdmRxYSA3NjgoJXJzcCksICV5bW0zCit2cGFkZHcgMTAyNCgl
cnNwKSwgJXltbTMsICV5bW04Cit2cHN1YncgMTAyNCglcnNwKSwgJXltbTMsICV5bW0zCit2cHNy
bHcgJDIsICV5bW0zLCAleW1tMwordnBzdWJ3ICV5bW02LCAleW1tMywgJXltbTMKK3ZwbXVsbHcg
JXltbTE0LCAleW1tMywgJXltbTMKK3Zwc2xsdyAkMSwgJXltbTExLCAleW1tOQordnBzdWJ3ICV5
bW05LCAleW1tOCwgJXltbTkKK3Zwc2xsdyAkNywgJXltbTUsICV5bW04Cit2cHN1YncgJXltbTgs
ICV5bW05LCAleW1tOAordnBzcmx3ICQzLCAleW1tOCwgJXltbTgKK3Zwc3VidyAleW1tNywgJXlt
bTgsICV5bW04Cit2bW92ZHFhIDEyODAoJXJzcCksICV5bW05Cit2cHN1YncgJXltbTExLCAleW1t
OSwgJXltbTkKK3ZwbXVsbHcgJXltbTE1LCAleW1tNSwgJXltbTIKK3Zwc3VidyAleW1tMiwgJXlt
bTksICV5bW0yCit2cG11bGx3ICV5bW0xNCwgJXltbTgsICV5bW04Cit2cHN1YncgJXltbTgsICV5
bW03LCAleW1tNwordnBtdWxsdyAleW1tMTIsICV5bW04LCAleW1tOQordnBhZGR3ICV5bW05LCAl
eW1tNywgJXltbTkKK3ZwbXVsbHcgJXltbTEyLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwg
JXltbTIsICV5bW05Cit2cG11bGx3ICV5bW0xNCwgJXltbTksICV5bW05Cit2cHN1YncgJXltbTYs
ICV5bW05LCAleW1tOQordnBzcmx3ICQzLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tMywgJXlt
bTksICV5bW05Cit2cHN1YncgJXltbTksICV5bW0zLCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1t
NiwgJXltbTYKK3ZwbXVsbHcgJXltbTEzLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXlt
bTYsICV5bW02Cit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTgsICV5bW04Cit2cGFuZCBt
YXNrM181XzRfM18xKCVyaXApLCAleW1tOCwgJXltbTIKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXAp
LCAleW1tOCwgJXltbTgKK3ZwZXJtcSAkMTM5LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2tfa2Vl
cGhpZ2goJXJpcCksICV5bW0yLCAleW1tNAordnBvciAleW1tNCwgJXltbTgsICV5bW04Cit2cGFk
ZHcgMjA0OCglcnNwKSwgJXltbTExLCAleW1tMTEKK3ZwYWRkdyAleW1tOCwgJXltbTExLCAleW1t
MTEKK3Ztb3ZkcWEgJXhtbTIsIDIwNDgoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAl
eW1tOSwgJXltbTkKK3ZwYW5kIG1hc2szXzVfNF8zXzEoJXJpcCksICV5bW05LCAleW1tMgordnBh
bmQgbWFzazVfM181XzMoJXJpcCksICV5bW05LCAleW1tOQordnBlcm1xICQxMzksICV5bW0yLCAl
eW1tMgordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTIsICV5bW00Cit2cG9yICV5bW00
LCAleW1tOSwgJXltbTkKK3ZwYWRkdyAyMzA0KCVyc3ApLCAleW1tNiwgJXltbTYKK3ZwYWRkdyAl
eW1tOSwgJXltbTYsICV5bW02Cit2bW92ZHFhICV4bW0yLCAyMzA0KCVyc3ApCit2cHNodWZiIHNo
dWY0OF8xNiglcmlwKSwgJXltbTUsICV5bW01Cit2cGFuZCBtYXNrM181XzRfM18xKCVyaXApLCAl
eW1tNSwgJXltbTIKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNSwgJXltbTUKK3ZwZXJt
cSAkMTM5LCAleW1tMiwgJXltbTIKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0yLCAl
eW1tNAordnBvciAleW1tNCwgJXltbTUsICV5bW01Cit2cGFkZHcgMjU2MCglcnNwKSwgJXltbTcs
ICV5bW03Cit2cGFkZHcgJXltbTUsICV5bW03LCAleW1tNwordm1vdmRxYSAleG1tMiwgMjU2MCgl
cnNwKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0xMQordm1vdmRxdSAl
eG1tMTEsIDY0KCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW0xMSwgJXhtbTExCit2bW92cSAl
eG1tMTEsIDgwKCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW02LCAleW1tNgor
dm1vdmRxdSAleG1tNiwgNDE2KCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW02LCAleG1tNgor
dm1vdnEgJXhtbTYsIDQzMiglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNywg
JXltbTcKK3Ztb3ZkcXUgJXhtbTcsIDc2OCglcmRpKQordmV4dHJhY3RpMTI4ICQxLCAleW1tNywg
JXhtbTcKK3Ztb3ZxICV4bW03LCA3ODQoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwg
JXltbTMsICV5bW0zCit2bW92ZHF1ICV4bW0zLCAxMTIwKCVyZGkpCit2ZXh0cmFjdGkxMjggJDEs
ICV5bW0zLCAleG1tMwordm1vdnEgJXhtbTMsIDExMzYoJXJkaSkKK3Ztb3ZkcWEgMzIoJXJzcCks
ICV5bW01Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW05Cit2cHVucGNraHdk
IGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW04Cit2cHNsbGQgJDEsICV5bW05LCAleW1tOQordnBz
bGxkICQxLCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgMjg4KCVyc3ApLCAleW1tMwordnB1bnBja2x3
ZCBjb25zdDAoJXJpcCksICV5bW0zLCAleW1tNwordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5
bW0zLCAleW1tMwordm1vdmRxYSA1NDQoJXJzcCksICV5bW02Cit2cHVucGNrbHdkIGNvbnN0MCgl
cmlwKSwgJXltbTYsICV5bW0xMQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1t
NgordnBhZGRkICV5bW0xMSwgJXltbTcsICV5bW0yCit2cGFkZGQgJXltbTYsICV5bW0zLCAleW1t
NAordnBzdWJkICV5bW05LCAleW1tMiwgJXltbTIKK3Zwc3ViZCAleW1tOCwgJXltbTQsICV5bW00
Cit2cHN1YmQgJXltbTExLCAleW1tNywgJXltbTExCit2cHN1YmQgJXltbTYsICV5bW0zLCAleW1t
NgordnBzcmxkICQxLCAleW1tMTEsICV5bW0xMQordnBzcmxkICQxLCAleW1tNiwgJXltbTYKK3Zw
YW5kIG1hc2szMl90b18xNiglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwYW5kIG1hc2szMl90b18x
NiglcmlwKSwgJXltbTYsICV5bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW0xMSwgJXltbTYKK3Zt
b3ZkcWEgMTU2OCglcnNwKSwgJXltbTExCit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTEx
LCAleW1tMwordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTcKK3Zwc2xsZCAk
MSwgJXltbTMsICV5bW0zCit2cHNsbGQgJDEsICV5bW03LCAleW1tNwordnBzdWJkICV5bW0zLCAl
eW1tMiwgJXltbTIKK3Zwc3ViZCAleW1tNywgJXltbTQsICV5bW00Cit2cHNybGQgJDEsICV5bW0y
LCAleW1tMgordnBzcmxkICQxLCAleW1tNCwgJXltbTQKK3ZwYW5kIG1hc2szMl90b18xNiglcmlw
KSwgJXltbTIsICV5bW0yCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW00LCAleW1tNAor
dnBhY2t1c2R3ICV5bW00LCAleW1tMiwgJXltbTQKK3Ztb3ZkcWEgODAwKCVyc3ApLCAleW1tMgor
dnBhZGR3IDEwNTYoJXJzcCksICV5bW0yLCAleW1tNwordnBzdWJ3IDEwNTYoJXJzcCksICV5bW0y
LCAleW1tMgordnBzcmx3ICQyLCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tNiwgJXltbTIsICV5
bW0yCit2cG11bGx3ICV5bW0xNCwgJXltbTIsICV5bW0yCit2cHNsbHcgJDEsICV5bW01LCAleW1t
MwordnBzdWJ3ICV5bW0zLCAleW1tNywgJXltbTMKK3Zwc2xsdyAkNywgJXltbTExLCAleW1tNwor
dnBzdWJ3ICV5bW03LCAleW1tMywgJXltbTcKK3Zwc3JsdyAkMywgJXltbTcsICV5bW03Cit2cHN1
YncgJXltbTQsICV5bW03LCAleW1tNwordm1vdmRxYSAxMzEyKCVyc3ApLCAleW1tMwordnBzdWJ3
ICV5bW01LCAleW1tMywgJXltbTMKK3ZwbXVsbHcgJXltbTE1LCAleW1tMTEsICV5bW04Cit2cHN1
YncgJXltbTgsICV5bW0zLCAleW1tOAordnBtdWxsdyAleW1tMTQsICV5bW03LCAleW1tNwordnBz
dWJ3ICV5bW03LCAleW1tNCwgJXltbTQKK3ZwbXVsbHcgJXltbTEyLCAleW1tNywgJXltbTMKK3Zw
YWRkdyAleW1tMywgJXltbTQsICV5bW0zCit2cG11bGx3ICV5bW0xMiwgJXltbTMsICV5bW0zCit2
cHN1YncgJXltbTMsICV5bW04LCAleW1tMwordnBtdWxsdyAleW1tMTQsICV5bW0zLCAleW1tMwor
dnBzdWJ3ICV5bW02LCAleW1tMywgJXltbTMKK3Zwc3JsdyAkMywgJXltbTMsICV5bW0zCit2cHN1
YncgJXltbTIsICV5bW0zLCAleW1tMwordnBzdWJ3ICV5bW0zLCAleW1tMiwgJXltbTIKK3Zwc3Vi
dyAleW1tMiwgJXltbTYsICV5bW02Cit2cG11bGx3ICV5bW0xMywgJXltbTMsICV5bW0zCit2cHN1
YncgJXltbTMsICV5bW02LCAleW1tNgordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW03LCAl
eW1tNwordnBhbmQgbWFzazNfNV80XzNfMSglcmlwKSwgJXltbTcsICV5bW04Cit2cGFuZCBtYXNr
NV8zXzVfMyglcmlwKSwgJXltbTcsICV5bW03Cit2cGVybXEgJDEzOSwgJXltbTgsICV5bW04Cit2
cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tOCwgJXltbTkKK3Zwb3IgJXltbTksICV5bW03
LCAleW1tNwordnBhZGR3IDIwODAoJXJzcCksICV5bW01LCAleW1tNQordnBhZGR3ICV5bW03LCAl
eW1tNSwgJXltbTUKK3Ztb3ZkcWEgJXhtbTgsIDIwODAoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2
KCVyaXApLCAleW1tMywgJXltbTMKK3ZwYW5kIG1hc2szXzVfNF8zXzEoJXJpcCksICV5bW0zLCAl
eW1tOAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW0zLCAleW1tMwordnBlcm1xICQxMzks
ICV5bW04LCAleW1tOAordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTgsICV5bW05Cit2
cG9yICV5bW05LCAleW1tMywgJXltbTMKK3ZwYWRkdyAyMzM2KCVyc3ApLCAleW1tNiwgJXltbTYK
K3ZwYWRkdyAleW1tMywgJXltbTYsICV5bW02Cit2bW92ZHFhICV4bW04LCAyMzM2KCVyc3ApCit2
cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwYW5kIG1hc2szXzVfNF8z
XzEoJXJpcCksICV5bW0xMSwgJXltbTgKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tMTEs
ICV5bW0xMQordnBlcm1xICQxMzksICV5bW04LCAleW1tOAordnBhbmQgbWFza19rZWVwaGlnaCgl
cmlwKSwgJXltbTgsICV5bW05Cit2cG9yICV5bW05LCAleW1tMTEsICV5bW0xMQordnBhZGR3IDI1
OTIoJXJzcCksICV5bW00LCAleW1tNAordnBhZGR3ICV5bW0xMSwgJXltbTQsICV5bW00Cit2bW92
ZHFhICV4bW04LCAyNTkyKCVyc3ApCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW01LCAl
eW1tNQordm1vdmRxdSAleG1tNSwgMTUyKCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW01LCAl
eG1tNQordm1vdnEgJXhtbTUsIDE2OCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAl
eW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXhtbTYsIDUwNCglcmRpKQordmV4dHJhY3RpMTI4ICQxLCAl
eW1tNiwgJXhtbTYKK3Ztb3ZxICV4bW02LCA1MjAoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5Migl
cmlwKSwgJXltbTQsICV5bW00Cit2bW92ZHF1ICV4bW00LCA4NTYoJXJkaSkKK3ZleHRyYWN0aTEy
OCAkMSwgJXltbTQsICV4bW00Cit2bW92cSAleG1tNCwgODcyKCVyZGkpCit2cGFuZCBtYXNrX21v
ZDgxOTIoJXJpcCksICV5bW0yLCAleW1tMgordm1vdmRxdSAleG1tMiwgMTIwOCglcmRpKQordmV4
dHJhY3RpMTI4ICQxLCAleW1tMiwgJXhtbTIKK3Ztb3ZxICV4bW0yLCAxMjI0KCVyZGkpCit2bW92
ZHFhIDY0KCVyc3ApLCAleW1tMTEKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5
bW0zCit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tNwordnBzbGxkICQxLCAl
eW1tMywgJXltbTMKK3Zwc2xsZCAkMSwgJXltbTcsICV5bW03Cit2bW92ZHFhIDMyMCglcnNwKSwg
JXltbTIKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tMiwgJXltbTQKK3ZwdW5wY2tod2Qg
Y29uc3QwKCVyaXApLCAleW1tMiwgJXltbTIKK3Ztb3ZkcWEgNTc2KCVyc3ApLCAleW1tNgordnB1
bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNQordnB1bnBja2h3ZCBjb25zdDAoJXJp
cCksICV5bW02LCAleW1tNgordnBhZGRkICV5bW01LCAleW1tNCwgJXltbTgKK3ZwYWRkZCAleW1t
NiwgJXltbTIsICV5bW05Cit2cHN1YmQgJXltbTMsICV5bW04LCAleW1tOAordnBzdWJkICV5bW03
LCAleW1tOSwgJXltbTkKK3Zwc3ViZCAleW1tNSwgJXltbTQsICV5bW01Cit2cHN1YmQgJXltbTYs
ICV5bW0yLCAleW1tNgordnBzcmxkICQxLCAleW1tNSwgJXltbTUKK3Zwc3JsZCAkMSwgJXltbTYs
ICV5bW02Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW01LCAleW1tNQordnBhbmQgbWFz
azMyX3RvXzE2KCVyaXApLCAleW1tNiwgJXltbTYKK3ZwYWNrdXNkdyAleW1tNiwgJXltbTUsICV5
bW02Cit2bW92ZHFhIDE2MDAoJXJzcCksICV5bW01Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwg
JXltbTUsICV5bW0yCit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW00Cit2cHNs
bGQgJDEsICV5bW0yLCAleW1tMgordnBzbGxkICQxLCAleW1tNCwgJXltbTQKK3Zwc3ViZCAleW1t
MiwgJXltbTgsICV5bW04Cit2cHN1YmQgJXltbTQsICV5bW05LCAleW1tOQordnBzcmxkICQxLCAl
eW1tOCwgJXltbTgKK3Zwc3JsZCAkMSwgJXltbTksICV5bW05Cit2cGFuZCBtYXNrMzJfdG9fMTYo
JXJpcCksICV5bW04LCAleW1tOAordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tOSwgJXlt
bTkKK3ZwYWNrdXNkdyAleW1tOSwgJXltbTgsICV5bW05Cit2bW92ZHFhIDgzMiglcnNwKSwgJXlt
bTgKK3ZwYWRkdyAxMDg4KCVyc3ApLCAleW1tOCwgJXltbTQKK3Zwc3VidyAxMDg4KCVyc3ApLCAl
eW1tOCwgJXltbTgKK3Zwc3JsdyAkMiwgJXltbTgsICV5bW04Cit2cHN1YncgJXltbTYsICV5bW04
LCAleW1tOAordnBtdWxsdyAleW1tMTQsICV5bW04LCAleW1tOAordnBzbGx3ICQxLCAleW1tMTEs
ICV5bW0yCit2cHN1YncgJXltbTIsICV5bW00LCAleW1tMgordnBzbGx3ICQ3LCAleW1tNSwgJXlt
bTQKK3Zwc3VidyAleW1tNCwgJXltbTIsICV5bW00Cit2cHNybHcgJDMsICV5bW00LCAleW1tNAor
dnBzdWJ3ICV5bW05LCAleW1tNCwgJXltbTQKK3Ztb3ZkcWEgMTM0NCglcnNwKSwgJXltbTIKK3Zw
c3VidyAleW1tMTEsICV5bW0yLCAleW1tMgordnBtdWxsdyAleW1tMTUsICV5bW01LCAleW1tNwor
dnBzdWJ3ICV5bW03LCAleW1tMiwgJXltbTcKK3ZwbXVsbHcgJXltbTE0LCAleW1tNCwgJXltbTQK
K3Zwc3VidyAleW1tNCwgJXltbTksICV5bW05Cit2cG11bGx3ICV5bW0xMiwgJXltbTQsICV5bW0y
Cit2cGFkZHcgJXltbTIsICV5bW05LCAleW1tMgordnBtdWxsdyAleW1tMTIsICV5bW0yLCAleW1t
MgordnBzdWJ3ICV5bW0yLCAleW1tNywgJXltbTIKK3ZwbXVsbHcgJXltbTE0LCAleW1tMiwgJXlt
bTIKK3Zwc3VidyAleW1tNiwgJXltbTIsICV5bW0yCit2cHNybHcgJDMsICV5bW0yLCAleW1tMgor
dnBzdWJ3ICV5bW04LCAleW1tMiwgJXltbTIKK3Zwc3VidyAleW1tMiwgJXltbTgsICV5bW04Cit2
cHN1YncgJXltbTgsICV5bW02LCAleW1tNgordnBtdWxsdyAleW1tMTMsICV5bW0yLCAleW1tMgor
dnBzdWJ3ICV5bW0yLCAleW1tNiwgJXltbTYKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1t
NCwgJXltbTQKK3ZwYW5kIG1hc2szXzVfNF8zXzEoJXJpcCksICV5bW00LCAleW1tNwordnBhbmQg
bWFzazVfM181XzMoJXJpcCksICV5bW00LCAleW1tNAordnBlcm1xICQxMzksICV5bW03LCAleW1t
NwordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTcsICV5bW0zCit2cG9yICV5bW0zLCAl
eW1tNCwgJXltbTQKK3ZwYWRkdyAyMTEyKCVyc3ApLCAleW1tMTEsICV5bW0xMQordnBhZGR3ICV5
bW00LCAleW1tMTEsICV5bW0xMQordm1vdmRxYSAleG1tNywgMjExMiglcnNwKQordnBzaHVmYiBz
aHVmNDhfMTYoJXJpcCksICV5bW0yLCAleW1tMgordnBhbmQgbWFzazNfNV80XzNfMSglcmlwKSwg
JXltbTIsICV5bW03Cit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTIsICV5bW0yCit2cGVy
bXEgJDEzOSwgJXltbTcsICV5bW03Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tNywg
JXltbTMKK3Zwb3IgJXltbTMsICV5bW0yLCAleW1tMgordnBhZGR3IDIzNjgoJXJzcCksICV5bW02
LCAleW1tNgordnBhZGR3ICV5bW0yLCAleW1tNiwgJXltbTYKK3Ztb3ZkcWEgJXhtbTcsIDIzNjgo
JXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2sz
XzVfNF8zXzEoJXJpcCksICV5bW01LCAleW1tNwordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5
bW01LCAleW1tNQordnBlcm1xICQxMzksICV5bW03LCAleW1tNwordnBhbmQgbWFza19rZWVwaGln
aCglcmlwKSwgJXltbTcsICV5bW0zCit2cG9yICV5bW0zLCAleW1tNSwgJXltbTUKK3ZwYWRkdyAy
NjI0KCVyc3ApLCAleW1tOSwgJXltbTkKK3ZwYWRkdyAleW1tNSwgJXltbTksICV5bW05Cit2bW92
ZHFhICV4bW03LCAyNjI0KCVyc3ApCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwg
JXltbTExCit2bW92ZHF1ICV4bW0xMSwgMjQwKCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW0x
MSwgJXhtbTExCit2bW92cSAleG1tMTEsIDI1NiglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVy
aXApLCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXhtbTYsIDU5MiglcmRpKQordmV4dHJhY3RpMTI4
ICQxLCAleW1tNiwgJXhtbTYKK3Ztb3ZxICV4bW02LCA2MDgoJXJkaSkKK3ZwYW5kIG1hc2tfbW9k
ODE5MiglcmlwKSwgJXltbTksICV5bW05Cit2bW92ZHF1ICV4bW05LCA5NDQoJXJkaSkKK3ZleHRy
YWN0aTEyOCAkMSwgJXltbTksICV4bW05Cit2bW92cSAleG1tOSwgOTYwKCVyZGkpCit2cGFuZCBt
YXNrX21vZDgxOTIoJXJpcCksICV5bW04LCAleW1tOAordm1vdmRxdSAleG1tOCwgMTI5NiglcmRp
KQordmV4dHJhY3RpMTI4ICQxLCAleW1tOCwgJXhtbTgKK3Ztb3ZxICV4bW04LCAxMzEyKCVyZGkp
Cit2bW92ZHFhIDk2KCVyc3ApLCAleW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW01
LCAleW1tMgordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW01LCAleW1tNAordnBzbGxkICQx
LCAleW1tMiwgJXltbTIKK3Zwc2xsZCAkMSwgJXltbTQsICV5bW00Cit2bW92ZHFhIDM1MiglcnNw
KSwgJXltbTgKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXApLCAleW1tOCwgJXltbTkKK3ZwdW5wY2to
d2QgY29uc3QwKCVyaXApLCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgNjA4KCVyc3ApLCAleW1tNgor
dnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tMTEKK3ZwdW5wY2tod2QgY29uc3Qw
KCVyaXApLCAleW1tNiwgJXltbTYKK3ZwYWRkZCAleW1tMTEsICV5bW05LCAleW1tNwordnBhZGRk
ICV5bW02LCAleW1tOCwgJXltbTMKK3Zwc3ViZCAleW1tMiwgJXltbTcsICV5bW03Cit2cHN1YmQg
JXltbTQsICV5bW0zLCAleW1tMwordnBzdWJkICV5bW0xMSwgJXltbTksICV5bW0xMQordnBzdWJk
ICV5bW02LCAleW1tOCwgJXltbTYKK3Zwc3JsZCAkMSwgJXltbTExLCAleW1tMTEKK3Zwc3JsZCAk
MSwgJXltbTYsICV5bW02Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW0xMSwgJXltbTEx
Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02
LCAleW1tMTEsICV5bW02Cit2bW92ZHFhIDE2MzIoJXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBj
b25zdDAoJXJpcCksICV5bW0xMSwgJXltbTgKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1t
MTEsICV5bW05Cit2cHNsbGQgJDEsICV5bW04LCAleW1tOAordnBzbGxkICQxLCAleW1tOSwgJXlt
bTkKK3Zwc3ViZCAleW1tOCwgJXltbTcsICV5bW03Cit2cHN1YmQgJXltbTksICV5bW0zLCAleW1t
MwordnBzcmxkICQxLCAleW1tNywgJXltbTcKK3Zwc3JsZCAkMSwgJXltbTMsICV5bW0zCit2cGFu
ZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW03LCAleW1tNwordnBhbmQgbWFzazMyX3RvXzE2KCVy
aXApLCAleW1tMywgJXltbTMKK3ZwYWNrdXNkdyAleW1tMywgJXltbTcsICV5bW0zCit2bW92ZHFh
IDg2NCglcnNwKSwgJXltbTcKK3ZwYWRkdyAxMTIwKCVyc3ApLCAleW1tNywgJXltbTkKK3Zwc3Vi
dyAxMTIwKCVyc3ApLCAleW1tNywgJXltbTcKK3Zwc3JsdyAkMiwgJXltbTcsICV5bW03Cit2cHN1
YncgJXltbTYsICV5bW03LCAleW1tNwordnBtdWxsdyAleW1tMTQsICV5bW03LCAleW1tNwordnBz
bGx3ICQxLCAleW1tNSwgJXltbTgKK3Zwc3VidyAleW1tOCwgJXltbTksICV5bW04Cit2cHNsbHcg
JDcsICV5bW0xMSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTgsICV5bW05Cit2cHNybHcgJDMs
ICV5bW05LCAleW1tOQordnBzdWJ3ICV5bW0zLCAleW1tOSwgJXltbTkKK3Ztb3ZkcWEgMTM3Nigl
cnNwKSwgJXltbTgKK3Zwc3VidyAleW1tNSwgJXltbTgsICV5bW04Cit2cG11bGx3ICV5bW0xNSwg
JXltbTExLCAleW1tNAordnBzdWJ3ICV5bW00LCAleW1tOCwgJXltbTQKK3ZwbXVsbHcgJXltbTE0
LCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTMsICV5bW0zCit2cG11bGx3ICV5bW0x
MiwgJXltbTksICV5bW04Cit2cGFkZHcgJXltbTgsICV5bW0zLCAleW1tOAordnBtdWxsdyAleW1t
MTIsICV5bW04LCAleW1tOAordnBzdWJ3ICV5bW04LCAleW1tNCwgJXltbTgKK3ZwbXVsbHcgJXlt
bTE0LCAleW1tOCwgJXltbTgKK3Zwc3VidyAleW1tNiwgJXltbTgsICV5bW04Cit2cHNybHcgJDMs
ICV5bW04LCAleW1tOAordnBzdWJ3ICV5bW03LCAleW1tOCwgJXltbTgKK3Zwc3VidyAleW1tOCwg
JXltbTcsICV5bW03Cit2cHN1YncgJXltbTcsICV5bW02LCAleW1tNgordnBtdWxsdyAleW1tMTMs
ICV5bW04LCAleW1tOAordnBzdWJ3ICV5bW04LCAleW1tNiwgJXltbTYKK3Zwc2h1ZmIgc2h1ZjQ4
XzE2KCVyaXApLCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2szXzVfNF8zXzEoJXJpcCksICV5bW05
LCAleW1tNAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW05LCAleW1tOQordnBlcm1xICQx
MzksICV5bW00LCAleW1tNAordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTQsICV5bW0y
Cit2cG9yICV5bW0yLCAleW1tOSwgJXltbTkKK3ZwYWRkdyAyMTQ0KCVyc3ApLCAleW1tNSwgJXlt
bTUKK3ZwYWRkdyAleW1tOSwgJXltbTUsICV5bW01Cit2bW92ZHFhICV4bW00LCAyMTQ0KCVyc3Ap
Cit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNrM181XzRf
M18xKCVyaXApLCAleW1tOCwgJXltbTQKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tOCwg
JXltbTgKK3ZwZXJtcSAkMTM5LCAleW1tNCwgJXltbTQKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJp
cCksICV5bW00LCAleW1tMgordnBvciAleW1tMiwgJXltbTgsICV5bW04Cit2cGFkZHcgMjQwMCgl
cnNwKSwgJXltbTYsICV5bW02Cit2cGFkZHcgJXltbTgsICV5bW02LCAleW1tNgordm1vdmRxYSAl
eG1tNCwgMjQwMCglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW0xMSwgJXltbTEx
Cit2cGFuZCBtYXNrM181XzRfM18xKCVyaXApLCAleW1tMTEsICV5bW00Cit2cGFuZCBtYXNrNV8z
XzVfMyglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwZXJtcSAkMTM5LCAleW1tNCwgJXltbTQKK3Zw
YW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW00LCAleW1tMgordnBvciAleW1tMiwgJXltbTEx
LCAleW1tMTEKK3ZwYWRkdyAyNjU2KCVyc3ApLCAleW1tMywgJXltbTMKK3ZwYWRkdyAleW1tMTEs
ICV5bW0zLCAleW1tMwordm1vdmRxYSAleG1tNCwgMjY1NiglcnNwKQordnBhbmQgbWFza19tb2Q4
MTkyKCVyaXApLCAleW1tNSwgJXltbTUKK3Ztb3ZkcXUgJXhtbTUsIDMyOCglcmRpKQordmV4dHJh
Y3RpMTI4ICQxLCAleW1tNSwgJXhtbTUKK3Ztb3ZxICV4bW01LCAzNDQoJXJkaSkKK3Zwc2h1ZmIg
c2h1Zm1pbjFfbWFzazMoJXJpcCksICV5bW01LCAleW1tNQordm1vdmRxYSAleG1tNSwgMTc5Migl
cnNwKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXht
bTYsIDY4MCglcmRpKQordmV4dHJhY3RpMTI4ICQxLCAleW1tNiwgJXhtbTYKK3Ztb3ZxICV4bW02
LCA2OTYoJXJkaSkKK3Zwc2h1ZmIgc2h1Zm1pbjFfbWFzazMoJXJpcCksICV5bW02LCAleW1tNgor
dm1vdmRxYSAleG1tNiwgMTgyNCglcnNwKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1t
MywgJXltbTMKK3Ztb3ZkcXUgJXhtbTMsIDEwMzIoJXJkaSkKK3ZleHRyYWN0aTEyOCAkMSwgJXlt
bTMsICV4bW0zCit2bW92cSAleG1tMywgMTA0OCglcmRpKQordnBzaHVmYiBzaHVmbWluMV9tYXNr
MyglcmlwKSwgJXltbTMsICV5bW0zCit2bW92ZHFhICV4bW0zLCAxODU2KCVyc3ApCit2cGFuZCBt
YXNrX21vZDgxOTIoJXJpcCksICV5bW03LCAleW1tNwordm1vdmRxdSAleG1tNywgMTM4NCglcmRp
KQordmV4dHJhY3RpMTI4ICQxLCAleW1tNywgJXhtbTcKK3ZwZXh0cncgJDAsICV4bW03LCAxNDAw
KCVyZGkpCit2cHNodWZiIHNodWZtaW4xX21hc2szKCVyaXApLCAleW1tNywgJXltbTcKK3Ztb3Zk
cWEgJXhtbTcsIDE4ODgoJXJzcCkKK3Ztb3ZkcWEgMTI4KCVyc3ApLCAleW1tMTEKK3ZwdW5wY2ts
d2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW04Cit2cHVucGNraHdkIGNvbnN0MCglcmlwKSwg
JXltbTExLCAleW1tOQordnBzbGxkICQxLCAleW1tOCwgJXltbTgKK3Zwc2xsZCAkMSwgJXltbTks
ICV5bW05Cit2bW92ZHFhIDM4NCglcnNwKSwgJXltbTcKK3ZwdW5wY2tsd2QgY29uc3QwKCVyaXAp
LCAleW1tNywgJXltbTMKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNywgJXltbTcKK3Zt
b3ZkcWEgNjQwKCVyc3ApLCAleW1tNgordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW02LCAl
eW1tNQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5bW01
LCAleW1tMywgJXltbTQKK3ZwYWRkZCAleW1tNiwgJXltbTcsICV5bW0yCit2cHN1YmQgJXltbTgs
ICV5bW00LCAleW1tNAordnBzdWJkICV5bW05LCAleW1tMiwgJXltbTIKK3Zwc3ViZCAleW1tNSwg
JXltbTMsICV5bW01Cit2cHN1YmQgJXltbTYsICV5bW03LCAleW1tNgordnBzcmxkICQxLCAleW1t
NSwgJXltbTUKK3Zwc3JsZCAkMSwgJXltbTYsICV5bW02Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJp
cCksICV5bW01LCAleW1tNQordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNiwgJXltbTYK
K3ZwYWNrdXNkdyAleW1tNiwgJXltbTUsICV5bW02Cit2bW92ZHFhIDE2NjQoJXJzcCksICV5bW01
Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW03Cit2cHVucGNraHdkIGNvbnN0
MCglcmlwKSwgJXltbTUsICV5bW0zCit2cHNsbGQgJDEsICV5bW03LCAleW1tNwordnBzbGxkICQx
LCAleW1tMywgJXltbTMKK3Zwc3ViZCAleW1tNywgJXltbTQsICV5bW00Cit2cHN1YmQgJXltbTMs
ICV5bW0yLCAleW1tMgordnBzcmxkICQxLCAleW1tNCwgJXltbTQKK3Zwc3JsZCAkMSwgJXltbTIs
ICV5bW0yCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW00LCAleW1tNAordnBhbmQgbWFz
azMyX3RvXzE2KCVyaXApLCAleW1tMiwgJXltbTIKK3ZwYWNrdXNkdyAleW1tMiwgJXltbTQsICV5
bW0yCit2bW92ZHFhIDg5NiglcnNwKSwgJXltbTQKK3ZwYWRkdyAxMTUyKCVyc3ApLCAleW1tNCwg
JXltbTMKK3Zwc3VidyAxMTUyKCVyc3ApLCAleW1tNCwgJXltbTQKK3Zwc3JsdyAkMiwgJXltbTQs
ICV5bW00Cit2cHN1YncgJXltbTYsICV5bW00LCAleW1tNAordnBtdWxsdyAleW1tMTQsICV5bW00
LCAleW1tNAordnBzbGx3ICQxLCAleW1tMTEsICV5bW03Cit2cHN1YncgJXltbTcsICV5bW0zLCAl
eW1tNwordnBzbGx3ICQ3LCAleW1tNSwgJXltbTMKK3Zwc3VidyAleW1tMywgJXltbTcsICV5bW0z
Cit2cHNybHcgJDMsICV5bW0zLCAleW1tMwordnBzdWJ3ICV5bW0yLCAleW1tMywgJXltbTMKK3Zt
b3ZkcWEgMTQwOCglcnNwKSwgJXltbTcKK3Zwc3VidyAleW1tMTEsICV5bW03LCAleW1tNwordnBt
dWxsdyAleW1tMTUsICV5bW01LCAleW1tOQordnBzdWJ3ICV5bW05LCAleW1tNywgJXltbTkKK3Zw
bXVsbHcgJXltbTE0LCAleW1tMywgJXltbTMKK3Zwc3VidyAleW1tMywgJXltbTIsICV5bW0yCit2
cG11bGx3ICV5bW0xMiwgJXltbTMsICV5bW03Cit2cGFkZHcgJXltbTcsICV5bW0yLCAleW1tNwor
dnBtdWxsdyAleW1tMTIsICV5bW03LCAleW1tNwordnBzdWJ3ICV5bW03LCAleW1tOSwgJXltbTcK
K3ZwbXVsbHcgJXltbTE0LCAleW1tNywgJXltbTcKK3Zwc3VidyAleW1tNiwgJXltbTcsICV5bW03
Cit2cHNybHcgJDMsICV5bW03LCAleW1tNwordnBzdWJ3ICV5bW00LCAleW1tNywgJXltbTcKK3Zw
c3VidyAleW1tNywgJXltbTQsICV5bW00Cit2cHN1YncgJXltbTQsICV5bW02LCAleW1tNgordnBt
dWxsdyAleW1tMTMsICV5bW03LCAleW1tNwordnBzdWJ3ICV5bW03LCAleW1tNiwgJXltbTYKK3Zt
b3ZkcXUgNDE2KCVyZGkpLCAleW1tOQordm1vdmRxdSA3NjgoJXJkaSksICV5bW04Cit2bW92ZHF1
IDExMjAoJXJkaSksICV5bW0xMAordnBhZGR3ICV5bW0xMSwgJXltbTksICV5bW0xMQordnBhZGR3
ICV5bW02LCAleW1tOCwgJXltbTYKK3ZwYWRkdyAleW1tMiwgJXltbTEwLCAleW1tMgordnBzaHVm
YiBzaHVmNDhfMTYoJXJpcCksICV5bW00LCAleW1tNAordnBhbmQgbWFzazNfNV80XzNfMSglcmlw
KSwgJXltbTQsICV5bW0xMAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW00LCAleW1tNAor
dnBlcm1xICQxMzksICV5bW0xMCwgJXltbTEwCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAl
eW1tMTAsICV5bW04Cit2cG9yICV5bW04LCAleW1tNCwgJXltbTQKK3Ztb3ZkcXUgNjQoJXJkaSks
ICV5bW04Cit2cGFkZHcgMTkyMCglcnNwKSwgJXltbTgsICV5bW04Cit2cGFkZHcgJXltbTQsICV5
bW04LCAleW1tOAordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tOCwgJXltbTgKK3Ztb3Zk
cXUgJXhtbTgsIDY0KCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW04LCAleG1tOAordm1vdnEg
JXhtbTgsIDgwKCVyZGkpCit2bW92ZHFhICV4bW0xMCwgMTkyMCglcnNwKQordnBzaHVmYiBzaHVm
NDhfMTYoJXJpcCksICV5bW0zLCAleW1tMwordnBhbmQgbWFzazNfNV80XzNfMSglcmlwKSwgJXlt
bTMsICV5bW0xMAordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW0zLCAleW1tMwordnBlcm1x
ICQxMzksICV5bW0xMCwgJXltbTEwCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tMTAs
ICV5bW04Cit2cG9yICV5bW04LCAleW1tMywgJXltbTMKK3ZwYWRkdyAyMTc2KCVyc3ApLCAleW1t
MTEsICV5bW0xMQordnBhZGR3ICV5bW0zLCAleW1tMTEsICV5bW0xMQordm1vdmRxYSAleG1tMTAs
IDIxNzYoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1tNywgJXltbTcKK3ZwYW5k
IG1hc2szXzVfNF8zXzEoJXJpcCksICV5bW03LCAleW1tMTAKK3ZwYW5kIG1hc2s1XzNfNV8zKCVy
aXApLCAleW1tNywgJXltbTcKK3ZwZXJtcSAkMTM5LCAleW1tMTAsICV5bW0xMAordnBhbmQgbWFz
a19rZWVwaGlnaCglcmlwKSwgJXltbTEwLCAleW1tOAordnBvciAleW1tOCwgJXltbTcsICV5bW03
Cit2cGFkZHcgMjQzMiglcnNwKSwgJXltbTYsICV5bW02Cit2cGFkZHcgJXltbTcsICV5bW02LCAl
eW1tNgordm1vdmRxYSAleG1tMTAsIDI0MzIoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXAp
LCAleW1tNSwgJXltbTUKK3ZwYW5kIG1hc2szXzVfNF8zXzEoJXJpcCksICV5bW01LCAleW1tMTAK
K3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNSwgJXltbTUKK3ZwZXJtcSAkMTM5LCAleW1t
MTAsICV5bW0xMAordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTEwLCAleW1tOAordnBv
ciAleW1tOCwgJXltbTUsICV5bW01Cit2cGFkZHcgMjY4OCglcnNwKSwgJXltbTIsICV5bW0yCit2
cGFkZHcgJXltbTUsICV5bW0yLCAleW1tMgordm1vdmRxYSAleG1tMTAsIDI2ODgoJXJzcCkKK3Zw
YW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3ZkcXUgJXhtbTExLCA0
MTYoJXJkaSkKK3ZleHRyYWN0aTEyOCAkMSwgJXltbTExLCAleG1tMTEKK3Ztb3ZxICV4bW0xMSwg
NDMyKCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW02LCAleW1tNgordm1vdmRx
dSAleG1tNiwgNzY4KCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW02LCAleG1tNgordm1vdnEg
JXhtbTYsIDc4NCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMiwgJXltbTIK
K3Ztb3ZkcXUgJXhtbTIsIDExMjAoJXJkaSkKK3ZleHRyYWN0aTEyOCAkMSwgJXltbTIsICV4bW0y
Cit2bW92cSAleG1tMiwgMTEzNiglcmRpKQordm1vdmRxYSAxNjAoJXJzcCksICV5bW01Cit2cHVu
cGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW03Cit2cHVucGNraHdkIGNvbnN0MCglcmlw
KSwgJXltbTUsICV5bW0zCit2cHNsbGQgJDEsICV5bW03LCAleW1tNwordnBzbGxkICQxLCAleW1t
MywgJXltbTMKK3Ztb3ZkcWEgNDE2KCVyc3ApLCAleW1tNAordnB1bnBja2x3ZCBjb25zdDAoJXJp
cCksICV5bW00LCAleW1tMgordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW00LCAleW1tNAor
dm1vdmRxYSA2NzIoJXJzcCksICV5bW02Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTYs
ICV5bW0xMQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5
bW0xMSwgJXltbTIsICV5bW0xMAordnBhZGRkICV5bW02LCAleW1tNCwgJXltbTgKK3Zwc3ViZCAl
eW1tNywgJXltbTEwLCAleW1tMTAKK3Zwc3ViZCAleW1tMywgJXltbTgsICV5bW04Cit2cHN1YmQg
JXltbTExLCAleW1tMiwgJXltbTExCit2cHN1YmQgJXltbTYsICV5bW00LCAleW1tNgordnBzcmxk
ICQxLCAleW1tMTEsICV5bW0xMQordnBzcmxkICQxLCAleW1tNiwgJXltbTYKK3ZwYW5kIG1hc2sz
Ml90b18xNiglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwYW5kIG1hc2szMl90b18xNiglcmlwKSwg
JXltbTYsICV5bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW0xMSwgJXltbTYKK3Ztb3ZkcWEgMTY5
NiglcnNwKSwgJXltbTExCit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1tNAor
dnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTIKK3Zwc2xsZCAkMSwgJXltbTQs
ICV5bW00Cit2cHNsbGQgJDEsICV5bW0yLCAleW1tMgordnBzdWJkICV5bW00LCAleW1tMTAsICV5
bW0xMAordnBzdWJkICV5bW0yLCAleW1tOCwgJXltbTgKK3Zwc3JsZCAkMSwgJXltbTEwLCAleW1t
MTAKK3Zwc3JsZCAkMSwgJXltbTgsICV5bW04Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5
bW0xMCwgJXltbTEwCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW04LCAleW1tOAordnBh
Y2t1c2R3ICV5bW04LCAleW1tMTAsICV5bW04Cit2bW92ZHFhIDkyOCglcnNwKSwgJXltbTEwCit2
cGFkZHcgMTE4NCglcnNwKSwgJXltbTEwLCAleW1tMgordnBzdWJ3IDExODQoJXJzcCksICV5bW0x
MCwgJXltbTEwCit2cHNybHcgJDIsICV5bW0xMCwgJXltbTEwCit2cHN1YncgJXltbTYsICV5bW0x
MCwgJXltbTEwCit2cG11bGx3ICV5bW0xNCwgJXltbTEwLCAleW1tMTAKK3Zwc2xsdyAkMSwgJXlt
bTUsICV5bW00Cit2cHN1YncgJXltbTQsICV5bW0yLCAleW1tNAordnBzbGx3ICQ3LCAleW1tMTEs
ICV5bW0yCit2cHN1YncgJXltbTIsICV5bW00LCAleW1tMgordnBzcmx3ICQzLCAleW1tMiwgJXlt
bTIKK3Zwc3VidyAleW1tOCwgJXltbTIsICV5bW0yCit2bW92ZHFhIDE0NDAoJXJzcCksICV5bW00
Cit2cHN1YncgJXltbTUsICV5bW00LCAleW1tNAordnBtdWxsdyAleW1tMTUsICV5bW0xMSwgJXlt
bTMKK3Zwc3VidyAleW1tMywgJXltbTQsICV5bW0zCit2cG11bGx3ICV5bW0xNCwgJXltbTIsICV5
bW0yCit2cHN1YncgJXltbTIsICV5bW04LCAleW1tOAordnBtdWxsdyAleW1tMTIsICV5bW0yLCAl
eW1tNAordnBhZGR3ICV5bW00LCAleW1tOCwgJXltbTQKK3ZwbXVsbHcgJXltbTEyLCAleW1tNCwg
JXltbTQKK3Zwc3VidyAleW1tNCwgJXltbTMsICV5bW00Cit2cG11bGx3ICV5bW0xNCwgJXltbTQs
ICV5bW00Cit2cHN1YncgJXltbTYsICV5bW00LCAleW1tNAordnBzcmx3ICQzLCAleW1tNCwgJXlt
bTQKK3Zwc3VidyAleW1tMTAsICV5bW00LCAleW1tNAordnBzdWJ3ICV5bW00LCAleW1tMTAsICV5
bW0xMAordnBzdWJ3ICV5bW0xMCwgJXltbTYsICV5bW02Cit2cG11bGx3ICV5bW0xMywgJXltbTQs
ICV5bW00Cit2cHN1YncgJXltbTQsICV5bW02LCAleW1tNgordm1vdmRxdSA1MDQoJXJkaSksICV5
bW0zCit2bW92ZHF1IDg1NiglcmRpKSwgJXltbTcKK3Ztb3ZkcXUgMTIwOCglcmRpKSwgJXltbTkK
K3ZwYWRkdyAleW1tNSwgJXltbTMsICV5bW01Cit2cGFkZHcgJXltbTYsICV5bW03LCAleW1tNgor
dnBhZGR3ICV5bW04LCAleW1tOSwgJXltbTgKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1t
MTAsICV5bW0xMAordnBhbmQgbWFzazNfNV80XzNfMSglcmlwKSwgJXltbTEwLCAleW1tOQordnBh
bmQgbWFzazVfM181XzMoJXJpcCksICV5bW0xMCwgJXltbTEwCit2cGVybXEgJDEzOSwgJXltbTks
ICV5bW05Cit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tOSwgJXltbTcKK3Zwb3IgJXlt
bTcsICV5bW0xMCwgJXltbTEwCit2bW92ZHF1IDE1MiglcmRpKSwgJXltbTcKK3ZwYWRkdyAxOTUy
KCVyc3ApLCAleW1tNywgJXltbTcKK3ZwYWRkdyAleW1tMTAsICV5bW03LCAleW1tNwordnBhbmQg
bWFza19tb2Q4MTkyKCVyaXApLCAleW1tNywgJXltbTcKK3Ztb3ZkcXUgJXhtbTcsIDE1MiglcmRp
KQordmV4dHJhY3RpMTI4ICQxLCAleW1tNywgJXhtbTcKK3Ztb3ZxICV4bW03LCAxNjgoJXJkaSkK
K3Ztb3ZkcWEgJXhtbTksIDE5NTIoJXJzcCkKK3Zwc2h1ZmIgc2h1ZjQ4XzE2KCVyaXApLCAleW1t
MiwgJXltbTIKK3ZwYW5kIG1hc2szXzVfNF8zXzEoJXJpcCksICV5bW0yLCAleW1tOQordnBhbmQg
bWFzazVfM181XzMoJXJpcCksICV5bW0yLCAleW1tMgordnBlcm1xICQxMzksICV5bW05LCAleW1t
OQordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTksICV5bW03Cit2cG9yICV5bW03LCAl
eW1tMiwgJXltbTIKK3ZwYWRkdyAyMjA4KCVyc3ApLCAleW1tNSwgJXltbTUKK3ZwYWRkdyAleW1t
MiwgJXltbTUsICV5bW01Cit2bW92ZHFhICV4bW05LCAyMjA4KCVyc3ApCit2cHNodWZiIHNodWY0
OF8xNiglcmlwKSwgJXltbTQsICV5bW00Cit2cGFuZCBtYXNrM181XzRfM18xKCVyaXApLCAleW1t
NCwgJXltbTkKK3ZwYW5kIG1hc2s1XzNfNV8zKCVyaXApLCAleW1tNCwgJXltbTQKK3ZwZXJtcSAk
MTM5LCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW05LCAleW1t
NwordnBvciAleW1tNywgJXltbTQsICV5bW00Cit2cGFkZHcgMjQ2NCglcnNwKSwgJXltbTYsICV5
bW02Cit2cGFkZHcgJXltbTQsICV5bW02LCAleW1tNgordm1vdmRxYSAleG1tOSwgMjQ2NCglcnNw
KQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrM181
XzRfM18xKCVyaXApLCAleW1tMTEsICV5bW05Cit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXlt
bTExLCAleW1tMTEKK3ZwZXJtcSAkMTM5LCAleW1tOSwgJXltbTkKK3ZwYW5kIG1hc2tfa2VlcGhp
Z2goJXJpcCksICV5bW05LCAleW1tNwordnBvciAleW1tNywgJXltbTExLCAleW1tMTEKK3ZwYWRk
dyAyNzIwKCVyc3ApLCAleW1tOCwgJXltbTgKK3ZwYWRkdyAleW1tMTEsICV5bW04LCAleW1tOAor
dm1vdmRxYSAleG1tOSwgMjcyMCglcnNwKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1t
NSwgJXltbTUKK3Ztb3ZkcXUgJXhtbTUsIDUwNCglcmRpKQordmV4dHJhY3RpMTI4ICQxLCAleW1t
NSwgJXhtbTUKK3Ztb3ZxICV4bW01LCA1MjAoJXJkaSkKK3ZwYW5kIG1hc2tfbW9kODE5Miglcmlw
KSwgJXltbTYsICV5bW02Cit2bW92ZHF1ICV4bW02LCA4NTYoJXJkaSkKK3ZleHRyYWN0aTEyOCAk
MSwgJXltbTYsICV4bW02Cit2bW92cSAleG1tNiwgODcyKCVyZGkpCit2cGFuZCBtYXNrX21vZDgx
OTIoJXJpcCksICV5bW04LCAleW1tOAordm1vdmRxdSAleG1tOCwgMTIwOCglcmRpKQordmV4dHJh
Y3RpMTI4ICQxLCAleW1tOCwgJXhtbTgKK3Ztb3ZxICV4bW04LCAxMjI0KCVyZGkpCit2bW92ZHFh
IDE5MiglcnNwKSwgJXltbTExCit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTExLCAleW1t
NAordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTIKK3Zwc2xsZCAkMSwgJXlt
bTQsICV5bW00Cit2cHNsbGQgJDEsICV5bW0yLCAleW1tMgordm1vdmRxYSA0NDgoJXJzcCksICV5
bW0xMAordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW0xMCwgJXltbTgKK3ZwdW5wY2tod2Qg
Y29uc3QwKCVyaXApLCAleW1tMTAsICV5bW0xMAordm1vdmRxYSA3MDQoJXJzcCksICV5bW02Cit2
cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTYsICV5bW01Cit2cHVucGNraHdkIGNvbnN0MCgl
cmlwKSwgJXltbTYsICV5bW02Cit2cGFkZGQgJXltbTUsICV5bW04LCAleW1tOQordnBhZGRkICV5
bW02LCAleW1tMTAsICV5bW03Cit2cHN1YmQgJXltbTQsICV5bW05LCAleW1tOQordnBzdWJkICV5
bW0yLCAleW1tNywgJXltbTcKK3Zwc3ViZCAleW1tNSwgJXltbTgsICV5bW01Cit2cHN1YmQgJXlt
bTYsICV5bW0xMCwgJXltbTYKK3Zwc3JsZCAkMSwgJXltbTUsICV5bW01Cit2cHNybGQgJDEsICV5
bW02LCAleW1tNgordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNSwgJXltbTUKK3ZwYW5k
IG1hc2szMl90b18xNiglcmlwKSwgJXltbTYsICV5bW02Cit2cGFja3VzZHcgJXltbTYsICV5bW01
LCAleW1tNgordm1vdmRxYSAxNzI4KCVyc3ApLCAleW1tNQordnB1bnBja2x3ZCBjb25zdDAoJXJp
cCksICV5bW01LCAleW1tMTAKK3ZwdW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tNSwgJXltbTgK
K3Zwc2xsZCAkMSwgJXltbTEwLCAleW1tMTAKK3Zwc2xsZCAkMSwgJXltbTgsICV5bW04Cit2cHN1
YmQgJXltbTEwLCAleW1tOSwgJXltbTkKK3Zwc3ViZCAleW1tOCwgJXltbTcsICV5bW03Cit2cHNy
bGQgJDEsICV5bW05LCAleW1tOQordnBzcmxkICQxLCAleW1tNywgJXltbTcKK3ZwYW5kIG1hc2sz
Ml90b18xNiglcmlwKSwgJXltbTksICV5bW05Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5
bW03LCAleW1tNwordnBhY2t1c2R3ICV5bW03LCAleW1tOSwgJXltbTcKK3Ztb3ZkcWEgOTYwKCVy
c3ApLCAleW1tOQordnBhZGR3IDEyMTYoJXJzcCksICV5bW05LCAleW1tOAordnBzdWJ3IDEyMTYo
JXJzcCksICV5bW05LCAleW1tOQordnBzcmx3ICQyLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1t
NiwgJXltbTksICV5bW05Cit2cG11bGx3ICV5bW0xNCwgJXltbTksICV5bW05Cit2cHNsbHcgJDEs
ICV5bW0xMSwgJXltbTEwCit2cHN1YncgJXltbTEwLCAleW1tOCwgJXltbTEwCit2cHNsbHcgJDcs
ICV5bW01LCAleW1tOAordnBzdWJ3ICV5bW04LCAleW1tMTAsICV5bW04Cit2cHNybHcgJDMsICV5
bW04LCAleW1tOAordnBzdWJ3ICV5bW03LCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgMTQ3MiglcnNw
KSwgJXltbTEwCit2cHN1YncgJXltbTExLCAleW1tMTAsICV5bW0xMAordnBtdWxsdyAleW1tMTUs
ICV5bW01LCAleW1tMgordnBzdWJ3ICV5bW0yLCAleW1tMTAsICV5bW0yCit2cG11bGx3ICV5bW0x
NCwgJXltbTgsICV5bW04Cit2cHN1YncgJXltbTgsICV5bW03LCAleW1tNwordnBtdWxsdyAleW1t
MTIsICV5bW04LCAleW1tMTAKK3ZwYWRkdyAleW1tMTAsICV5bW03LCAleW1tMTAKK3ZwbXVsbHcg
JXltbTEyLCAleW1tMTAsICV5bW0xMAordnBzdWJ3ICV5bW0xMCwgJXltbTIsICV5bW0xMAordnBt
dWxsdyAleW1tMTQsICV5bW0xMCwgJXltbTEwCit2cHN1YncgJXltbTYsICV5bW0xMCwgJXltbTEw
Cit2cHNybHcgJDMsICV5bW0xMCwgJXltbTEwCit2cHN1YncgJXltbTksICV5bW0xMCwgJXltbTEw
Cit2cHN1YncgJXltbTEwLCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTYsICV5bW02
Cit2cG11bGx3ICV5bW0xMywgJXltbTEwLCAleW1tMTAKK3Zwc3VidyAleW1tMTAsICV5bW02LCAl
eW1tNgordm1vdmRxdSA1OTIoJXJkaSksICV5bW0yCit2bW92ZHF1IDk0NCglcmRpKSwgJXltbTQK
K3Ztb3ZkcXUgMTI5NiglcmRpKSwgJXltbTMKK3ZwYWRkdyAleW1tMTEsICV5bW0yLCAleW1tMTEK
K3ZwYWRkdyAleW1tNiwgJXltbTQsICV5bW02Cit2cGFkZHcgJXltbTcsICV5bW0zLCAleW1tNwor
dnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW05LCAleW1tOQordnBhbmQgbWFzazNfNV80XzNf
MSglcmlwKSwgJXltbTksICV5bW0zCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTksICV5
bW05Cit2cGVybXEgJDEzOSwgJXltbTMsICV5bW0zCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXAp
LCAleW1tMywgJXltbTQKK3Zwb3IgJXltbTQsICV5bW05LCAleW1tOQordm1vdmRxdSAyNDAoJXJk
aSksICV5bW00Cit2cGFkZHcgMTk4NCglcnNwKSwgJXltbTQsICV5bW00Cit2cGFkZHcgJXltbTks
ICV5bW00LCAleW1tNAordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNCwgJXltbTQKK3Zt
b3ZkcXUgJXhtbTQsIDI0MCglcmRpKQordmV4dHJhY3RpMTI4ICQxLCAleW1tNCwgJXhtbTQKK3Zt
b3ZxICV4bW00LCAyNTYoJXJkaSkKK3Ztb3ZkcWEgJXhtbTMsIDE5ODQoJXJzcCkKK3Zwc2h1ZmIg
c2h1ZjQ4XzE2KCVyaXApLCAleW1tOCwgJXltbTgKK3ZwYW5kIG1hc2szXzVfNF8zXzEoJXJpcCks
ICV5bW04LCAleW1tMwordnBhbmQgbWFzazVfM181XzMoJXJpcCksICV5bW04LCAleW1tOAordnBl
cm1xICQxMzksICV5bW0zLCAleW1tMwordnBhbmQgbWFza19rZWVwaGlnaCglcmlwKSwgJXltbTMs
ICV5bW00Cit2cG9yICV5bW00LCAleW1tOCwgJXltbTgKK3ZwYWRkdyAyMjQwKCVyc3ApLCAleW1t
MTEsICV5bW0xMQordnBhZGR3ICV5bW04LCAleW1tMTEsICV5bW0xMQordm1vdmRxYSAleG1tMywg
MjI0MCglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW0xMCwgJXltbTEwCit2cGFu
ZCBtYXNrM181XzRfM18xKCVyaXApLCAleW1tMTAsICV5bW0zCit2cGFuZCBtYXNrNV8zXzVfMygl
cmlwKSwgJXltbTEwLCAleW1tMTAKK3ZwZXJtcSAkMTM5LCAleW1tMywgJXltbTMKK3ZwYW5kIG1h
c2tfa2VlcGhpZ2goJXJpcCksICV5bW0zLCAleW1tNAordnBvciAleW1tNCwgJXltbTEwLCAleW1t
MTAKK3ZwYWRkdyAyNDk2KCVyc3ApLCAleW1tNiwgJXltbTYKK3ZwYWRkdyAleW1tMTAsICV5bW02
LCAleW1tNgordm1vdmRxYSAleG1tMywgMjQ5NiglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJp
cCksICV5bW01LCAleW1tNQordnBhbmQgbWFzazNfNV80XzNfMSglcmlwKSwgJXltbTUsICV5bW0z
Cit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTUsICV5bW01Cit2cGVybXEgJDEzOSwgJXlt
bTMsICV5bW0zCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1tMywgJXltbTQKK3Zwb3Ig
JXltbTQsICV5bW01LCAleW1tNQordnBhZGR3IDI3NTIoJXJzcCksICV5bW03LCAleW1tNwordnBh
ZGR3ICV5bW01LCAleW1tNywgJXltbTcKK3Ztb3ZkcWEgJXhtbTMsIDI3NTIoJXJzcCkKK3ZwYW5k
IG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3ZkcXUgJXhtbTExLCA1OTIo
JXJkaSkKK3ZleHRyYWN0aTEyOCAkMSwgJXltbTExLCAleG1tMTEKK3Ztb3ZxICV4bW0xMSwgNjA4
KCVyZGkpCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW02LCAleW1tNgordm1vdmRxdSAl
eG1tNiwgOTQ0KCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW02LCAleG1tNgordm1vdnEgJXht
bTYsIDk2MCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNywgJXltbTcKK3Zt
b3ZkcXUgJXhtbTcsIDEyOTYoJXJkaSkKK3ZleHRyYWN0aTEyOCAkMSwgJXltbTcsICV4bW03Cit2
bW92cSAleG1tNywgMTMxMiglcmRpKQordm1vdmRxYSAyMjQoJXJzcCksICV5bW01Cit2cHVucGNr
bHdkIGNvbnN0MCglcmlwKSwgJXltbTUsICV5bW0xMAordnB1bnBja2h3ZCBjb25zdDAoJXJpcCks
ICV5bW01LCAleW1tOAordnBzbGxkICQxLCAleW1tMTAsICV5bW0xMAordnBzbGxkICQxLCAleW1t
OCwgJXltbTgKK3Ztb3ZkcWEgNDgwKCVyc3ApLCAleW1tOQordnB1bnBja2x3ZCBjb25zdDAoJXJp
cCksICV5bW05LCAleW1tNwordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW05LCAleW1tOQor
dm1vdmRxYSA3MzYoJXJzcCksICV5bW02Cit2cHVucGNrbHdkIGNvbnN0MCglcmlwKSwgJXltbTYs
ICV5bW0xMQordnB1bnBja2h3ZCBjb25zdDAoJXJpcCksICV5bW02LCAleW1tNgordnBhZGRkICV5
bW0xMSwgJXltbTcsICV5bW0zCit2cGFkZGQgJXltbTYsICV5bW05LCAleW1tNAordnBzdWJkICV5
bW0xMCwgJXltbTMsICV5bW0zCit2cHN1YmQgJXltbTgsICV5bW00LCAleW1tNAordnBzdWJkICV5
bW0xMSwgJXltbTcsICV5bW0xMQordnBzdWJkICV5bW02LCAleW1tOSwgJXltbTYKK3Zwc3JsZCAk
MSwgJXltbTExLCAleW1tMTEKK3Zwc3JsZCAkMSwgJXltbTYsICV5bW02Cit2cGFuZCBtYXNrMzJf
dG9fMTYoJXJpcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5
bW02LCAleW1tNgordnBhY2t1c2R3ICV5bW02LCAleW1tMTEsICV5bW02Cit2bW92ZHFhIDE3NjAo
JXJzcCksICV5bW0xMQordnB1bnBja2x3ZCBjb25zdDAoJXJpcCksICV5bW0xMSwgJXltbTkKK3Zw
dW5wY2tod2QgY29uc3QwKCVyaXApLCAleW1tMTEsICV5bW03Cit2cHNsbGQgJDEsICV5bW05LCAl
eW1tOQordnBzbGxkICQxLCAleW1tNywgJXltbTcKK3Zwc3ViZCAleW1tOSwgJXltbTMsICV5bW0z
Cit2cHN1YmQgJXltbTcsICV5bW00LCAleW1tNAordnBzcmxkICQxLCAleW1tMywgJXltbTMKK3Zw
c3JsZCAkMSwgJXltbTQsICV5bW00Cit2cGFuZCBtYXNrMzJfdG9fMTYoJXJpcCksICV5bW0zLCAl
eW1tMwordnBhbmQgbWFzazMyX3RvXzE2KCVyaXApLCAleW1tNCwgJXltbTQKK3ZwYWNrdXNkdyAl
eW1tNCwgJXltbTMsICV5bW00Cit2bW92ZHFhIDk5MiglcnNwKSwgJXltbTMKK3ZwYWRkdyAxMjQ4
KCVyc3ApLCAleW1tMywgJXltbTcKK3Zwc3VidyAxMjQ4KCVyc3ApLCAleW1tMywgJXltbTMKK3Zw
c3JsdyAkMiwgJXltbTMsICV5bW0zCit2cHN1YncgJXltbTYsICV5bW0zLCAleW1tMwordnBtdWxs
dyAleW1tMTQsICV5bW0zLCAleW1tMwordnBzbGx3ICQxLCAleW1tNSwgJXltbTkKK3Zwc3VidyAl
eW1tOSwgJXltbTcsICV5bW05Cit2cHNsbHcgJDcsICV5bW0xMSwgJXltbTcKK3Zwc3VidyAleW1t
NywgJXltbTksICV5bW03Cit2cHNybHcgJDMsICV5bW03LCAleW1tNwordnBzdWJ3ICV5bW00LCAl
eW1tNywgJXltbTcKK3Ztb3ZkcWEgMTUwNCglcnNwKSwgJXltbTkKK3Zwc3VidyAleW1tNSwgJXlt
bTksICV5bW05Cit2cG11bGx3ICV5bW0xNSwgJXltbTExLCAleW1tOAordnBzdWJ3ICV5bW04LCAl
eW1tOSwgJXltbTgKK3ZwbXVsbHcgJXltbTE0LCAleW1tNywgJXltbTcKK3Zwc3VidyAleW1tNywg
JXltbTQsICV5bW00Cit2cG11bGx3ICV5bW0xMiwgJXltbTcsICV5bW05Cit2cGFkZHcgJXltbTks
ICV5bW00LCAleW1tOQordnBtdWxsdyAleW1tMTIsICV5bW05LCAleW1tOQordnBzdWJ3ICV5bW05
LCAleW1tOCwgJXltbTkKK3ZwbXVsbHcgJXltbTE0LCAleW1tOSwgJXltbTkKK3Zwc3VidyAleW1t
NiwgJXltbTksICV5bW05Cit2cHNybHcgJDMsICV5bW05LCAleW1tOQordnBzdWJ3ICV5bW0zLCAl
eW1tOSwgJXltbTkKK3Zwc3VidyAleW1tOSwgJXltbTMsICV5bW0zCit2cHN1YncgJXltbTMsICV5
bW02LCAleW1tNgordnBtdWxsdyAleW1tMTMsICV5bW05LCAleW1tOQordnBzdWJ3ICV5bW05LCAl
eW1tNiwgJXltbTYKK3ZleHRyYWN0aTEyOCAkMSwgJXltbTQsICV4bW04Cit2cHNodWZiIHNodWZt
aW4xX21hc2szKCVyaXApLCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgJXltbTgsIDI4MTYoJXJzcCkK
K3ZleHRyYWN0aTEyOCAkMSwgJXltbTMsICV4bW04Cit2cHNodWZiIHNodWZtaW4xX21hc2szKCVy
aXApLCAleW1tOCwgJXltbTgKK3Ztb3ZkcWEgJXltbTgsIDI4NDgoJXJzcCkKK3ZleHRyYWN0aTEy
OCAkMSwgJXltbTcsICV4bW04Cit2cHNodWZiIHNodWZtaW4xX21hc2szKCVyaXApLCAleW1tOCwg
JXltbTgKK3Ztb3ZkcWEgJXltbTgsIDI4ODAoJXJzcCkKK3Ztb3ZkcXUgNjgwKCVyZGkpLCAleW1t
OAordm1vdmRxdSAxMDMyKCVyZGkpLCAleW1tMTAKK3Ztb3ZkcXUgMTM4NCglcmRpKSwgJXltbTIK
K3ZwYWRkdyAleW1tNSwgJXltbTgsICV5bW01Cit2cGFkZHcgJXltbTYsICV5bW0xMCwgJXltbTYK
K3ZwYWRkdyAleW1tNCwgJXltbTIsICV5bW00Cit2cHNodWZiIHNodWY0OF8xNiglcmlwKSwgJXlt
bTMsICV5bW0zCit2cGFuZCBtYXNrM181XzRfM18xKCVyaXApLCAleW1tMywgJXltbTIKK3ZwYW5k
IG1hc2s1XzNfNV8zKCVyaXApLCAleW1tMywgJXltbTMKK3ZwZXJtcSAkMTM5LCAleW1tMiwgJXlt
bTIKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0yLCAleW1tMTAKK3Zwb3IgJXltbTEw
LCAleW1tMywgJXltbTMKK3Ztb3ZkcXUgMzI4KCVyZGkpLCAleW1tMTAKK3ZwYWRkdyAyMDE2KCVy
c3ApLCAleW1tMTAsICV5bW0xMAordnBhZGR3ICV5bW0zLCAleW1tMTAsICV5bW0xMAordnBhbmQg
bWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTAsICV5bW0xMAordm1vdmRxdSAleG1tMTAsIDMyOCgl
cmRpKQordmV4dHJhY3RpMTI4ICQxLCAleW1tMTAsICV4bW0xMAordm1vdnEgJXhtbTEwLCAzNDQo
JXJkaSkKK3Zwc2h1ZmIgc2h1Zm1pbjFfbWFzazMoJXJpcCksICV5bW0xMCwgJXltbTEwCit2bW92
ZHFhICV4bW0xMCwgMTc5MiglcnNwKQordm1vdmRxYSAleG1tMiwgMjAxNiglcnNwKQordnBzaHVm
YiBzaHVmNDhfMTYoJXJpcCksICV5bW03LCAleW1tNwordnBhbmQgbWFzazNfNV80XzNfMSglcmlw
KSwgJXltbTcsICV5bW0yCit2cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTcsICV5bW03Cit2
cGVybXEgJDEzOSwgJXltbTIsICV5bW0yCit2cGFuZCBtYXNrX2tlZXBoaWdoKCVyaXApLCAleW1t
MiwgJXltbTEwCit2cG9yICV5bW0xMCwgJXltbTcsICV5bW03Cit2cGFkZHcgMjI3MiglcnNwKSwg
JXltbTUsICV5bW01Cit2cGFkZHcgJXltbTcsICV5bW01LCAleW1tNQordm1vdmRxYSAleG1tMiwg
MjI3MiglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5bW05LCAleW1tOQordnBhbmQg
bWFzazNfNV80XzNfMSglcmlwKSwgJXltbTksICV5bW0yCit2cGFuZCBtYXNrNV8zXzVfMyglcmlw
KSwgJXltbTksICV5bW05Cit2cGVybXEgJDEzOSwgJXltbTIsICV5bW0yCit2cGFuZCBtYXNrX2tl
ZXBoaWdoKCVyaXApLCAleW1tMiwgJXltbTEwCit2cG9yICV5bW0xMCwgJXltbTksICV5bW05Cit2
cGFkZHcgMjUyOCglcnNwKSwgJXltbTYsICV5bW02Cit2cGFkZHcgJXltbTksICV5bW02LCAleW1t
Ngordm1vdmRxYSAleG1tMiwgMjUyOCglcnNwKQordnBzaHVmYiBzaHVmNDhfMTYoJXJpcCksICV5
bW0xMSwgJXltbTExCit2cGFuZCBtYXNrM181XzRfM18xKCVyaXApLCAleW1tMTEsICV5bW0yCit2
cGFuZCBtYXNrNV8zXzVfMyglcmlwKSwgJXltbTExLCAleW1tMTEKK3ZwZXJtcSAkMTM5LCAleW1t
MiwgJXltbTIKK3ZwYW5kIG1hc2tfa2VlcGhpZ2goJXJpcCksICV5bW0yLCAleW1tMTAKK3Zwb3Ig
JXltbTEwLCAleW1tMTEsICV5bW0xMQordnBhZGR3IDI3ODQoJXJzcCksICV5bW00LCAleW1tNAor
dnBhZGR3ICV5bW0xMSwgJXltbTQsICV5bW00Cit2bW92ZHFhICV4bW0yLCAyNzg0KCVyc3ApCit2
cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW01LCAleW1tNQordm1vdmRxdSAleG1tNSwgNjgw
KCVyZGkpCit2ZXh0cmFjdGkxMjggJDEsICV5bW01LCAleG1tNQordm1vdnEgJXhtbTUsIDY5Nigl
cmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNiwgJXltbTYKK3Ztb3ZkcXUgJXht
bTYsIDEwMzIoJXJkaSkKK3ZleHRyYWN0aTEyOCAkMSwgJXltbTYsICV4bW02Cit2bW92cSAleG1t
NiwgMTA0OCglcmRpKQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tNCwgJXltbTQKK3Zt
b3ZkcXUgJXhtbTQsIDEzODQoJXJkaSkKK3ZleHRyYWN0aTEyOCAkMSwgJXltbTQsICV4bW00Cit2
cGV4dHJ3ICQwLCAleG1tNCwgMTQwMCglcmRpKQordm1vdmRxdSAwKCVyZGkpLCAleW1tMTEKK3Zw
YWRkdyAxODg4KCVyc3ApLCAleW1tMTEsICV5bW0xMQordnBhZGR3IDI4MTYoJXJzcCksICV5bW0x
MSwgJXltbTExCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92
ZHF1ICV5bW0xMSwgMCglcmRpKQordm1vdmRxdSAzNTIoJXJkaSksICV5bW0xMQordnBhZGR3IDI1
MjgoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFkZHcgMjg0OCglcnNwKSwgJXltbTExLCAleW1t
MTEKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3ZkcXUgJXlt
bTExLCAzNTIoJXJkaSkKK3Ztb3ZkcXUgNzA0KCVyZGkpLCAleW1tMTEKK3ZwYWRkdyAyNzg0KCVy
c3ApLCAleW1tMTEsICV5bW0xMQordnBhZGR3IDI4ODAoJXJzcCksICV5bW0xMSwgJXltbTExCit2
cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwg
NzA0KCVyZGkpCit2bW92ZHF1IDg4KCVyZGkpLCAleW1tMTEKK3ZwYWRkdyAyMDQ4KCVyc3ApLCAl
eW1tMTEsICV5bW0xMQordnBhZGR3IDE5MjAoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBt
YXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgODgoJXJk
aSkKK3Ztb3ZkcXUgNDQwKCVyZGkpLCAleW1tMTEKK3ZwYWRkdyAyMzA0KCVyc3ApLCAleW1tMTEs
ICV5bW0xMQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0xMQordm1vdmRx
dSAleW1tMTEsIDQ0MCglcmRpKQordm1vdmRxdSA3OTIoJXJkaSksICV5bW0xMQordnBhZGR3IDI1
NjAoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0x
MSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgNzkyKCVyZGkpCit2bW92ZHF1IDE3NiglcmRpKSwg
JXltbTExCit2cGFkZHcgMjA4MCglcnNwKSwgJXltbTExLCAleW1tMTEKK3ZwYWRkdyAxOTUyKCVy
c3ApLCAleW1tMTEsICV5bW0xMQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5
bW0xMQordm1vdmRxdSAleW1tMTEsIDE3NiglcmRpKQordm1vdmRxdSA1MjgoJXJkaSksICV5bW0x
MQordnBhZGR3IDIzMzYoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrX21vZDgxOTIo
JXJpcCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgNTI4KCVyZGkpCit2bW92ZHF1
IDg4MCglcmRpKSwgJXltbTExCit2cGFkZHcgMjU5MiglcnNwKSwgJXltbTExLCAleW1tMTEKK3Zw
YW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3ZkcXUgJXltbTExLCA4
ODAoJXJkaSkKK3Ztb3ZkcXUgMjY0KCVyZGkpLCAleW1tMTEKK3ZwYWRkdyAyMTEyKCVyc3ApLCAl
eW1tMTEsICV5bW0xMQordnBhZGR3IDE5ODQoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBt
YXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgMjY0KCVy
ZGkpCit2bW92ZHF1IDYxNiglcmRpKSwgJXltbTExCit2cGFkZHcgMjM2OCglcnNwKSwgJXltbTEx
LCAleW1tMTEKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3Zk
cXUgJXltbTExLCA2MTYoJXJkaSkKK3Ztb3ZkcXUgOTY4KCVyZGkpLCAleW1tMTEKK3ZwYWRkdyAy
NjI0KCVyc3ApLCAleW1tMTEsICV5bW0xMQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1t
MTEsICV5bW0xMQordm1vdmRxdSAleW1tMTEsIDk2OCglcmRpKQordm1vdmRxdSAzNTIoJXJkaSks
ICV5bW0xMQordnBhZGR3IDIxNDQoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrX21v
ZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgMzUyKCVyZGkpCit2
bW92ZHF1IDcwNCglcmRpKSwgJXltbTExCit2cGFkZHcgMjQwMCglcnNwKSwgJXltbTExLCAleW1t
MTEKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3ZkcXUgJXlt
bTExLCA3MDQoJXJkaSkKK3Ztb3ZkcXUgMTA1NiglcmRpKSwgJXltbTExCit2cGFkZHcgMjY1Nigl
cnNwKSwgJXltbTExLCAleW1tMTEKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAl
eW1tMTEKK3Ztb3ZkcXUgJXltbTExLCAxMDU2KCVyZGkpCit2bW92ZHF1IDQ0MCglcmRpKSwgJXlt
bTExCit2cGFkZHcgMjE3NiglcnNwKSwgJXltbTExLCAleW1tMTEKK3ZwYW5kIG1hc2tfbW9kODE5
MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3ZkcXUgJXltbTExLCA0NDAoJXJkaSkKK3Ztb3Zk
cXUgNzkyKCVyZGkpLCAleW1tMTEKK3ZwYWRkdyAyNDMyKCVyc3ApLCAleW1tMTEsICV5bW0xMQor
dnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0xMQordm1vdmRxdSAleW1tMTEs
IDc5MiglcmRpKQordm1vdmRxdSAxMTQ0KCVyZGkpLCAleW1tMTEKK3ZwYWRkdyAyNjg4KCVyc3Ap
LCAleW1tMTEsICV5bW0xMQordnBhbmQgbWFza19tb2Q4MTkyKCVyaXApLCAleW1tMTEsICV5bW0x
MQordm1vdmRxdSAleW1tMTEsIDExNDQoJXJkaSkKK3Ztb3ZkcXUgNTI4KCVyZGkpLCAleW1tMTEK
K3ZwYWRkdyAyMjA4KCVyc3ApLCAleW1tMTEsICV5bW0xMQordnBhbmQgbWFza19tb2Q4MTkyKCVy
aXApLCAleW1tMTEsICV5bW0xMQordm1vdmRxdSAleW1tMTEsIDUyOCglcmRpKQordm1vdmRxdSA4
ODAoJXJkaSksICV5bW0xMQordnBhZGR3IDI0NjQoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFu
ZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgODgw
KCVyZGkpCit2bW92ZHF1IDEyMzIoJXJkaSksICV5bW0xMQordnBhZGR3IDI3MjAoJXJzcCksICV5
bW0xMSwgJXltbTExCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCksICV5bW0xMSwgJXltbTExCit2
bW92ZHF1ICV5bW0xMSwgMTIzMiglcmRpKQordm1vdmRxdSA2MTYoJXJkaSksICV5bW0xMQordnBh
ZGR3IDIyNDAoJXJzcCksICV5bW0xMSwgJXltbTExCit2cGFuZCBtYXNrX21vZDgxOTIoJXJpcCks
ICV5bW0xMSwgJXltbTExCit2bW92ZHF1ICV5bW0xMSwgNjE2KCVyZGkpCit2bW92ZHF1IDk2OCgl
cmRpKSwgJXltbTExCit2cGFkZHcgMjQ5NiglcnNwKSwgJXltbTExLCAleW1tMTEKK3ZwYW5kIG1h
c2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3ZkcXUgJXltbTExLCA5NjgoJXJk
aSkKK3Ztb3ZkcXUgMTMyMCglcmRpKSwgJXltbTExCit2cGFkZHcgMjc1MiglcnNwKSwgJXltbTEx
LCAleW1tMTEKK3ZwYW5kIG1hc2tfbW9kODE5MiglcmlwKSwgJXltbTExLCAleW1tMTEKK3Ztb3Zk
cXUgJXltbTExLCAxMzIwKCVyZGkpCittb3YgJXI4LCAlcnNwCitwb3AgJXIxMgorLmNmaV9yZXN0
b3JlIHIxMgorcG9wICVyYnAKKy5jZmlfcmVzdG9yZSByYnAKKy5jZmlfZGVmX2NmYV9yZWdpc3Rl
ciByc3AKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgLTgKK3JldAorLmNmaV9lbmRwcm9jCisuc2l6
ZSBwb2x5X1JxX211bCwuLXBvbHlfUnFfbXVsCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9ocnNzL2hyc3MuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vaHJzcy9ocnNzLmMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDgx
YTQzZjYyYzEyYTE3ZjIxMzYwNjA5ODIxZjZiMjQwY2ZlNWM2NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vaHJzcy9ocnNzLmMKQEAgLTAsMCArMSwyMjAxIEBACisvKiBDb3B5cmlnaHQg
KGMpIDIwMTgsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3Nl
IHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFw
cGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdB
UkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgor
ICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxU
SU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwg
QVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZP
Uk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKyNpbmNsdWRlIDxvcGVuc3NsL2hyc3MuaD4K
KworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3Rk
bGliLmg+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcHUu
aD4KKyNpbmNsdWRlIDxvcGVuc3NsL2htYWMuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL21lbS5oPgor
I2luY2x1ZGUgPG9wZW5zc2wvc2hhLmg+CisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBk
ZWZpbmVkKE9QRU5TU0xfWDg2XzY0KQorI2luY2x1ZGUgPGVtbWludHJpbi5oPgorI2VuZGlmCisK
KyNpZiAoZGVmaW5lZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpKSAm
JiBcCisgICAgKGRlZmluZWQoX19BUk1fTkVPTl9fKSB8fCBkZWZpbmVkKF9fQVJNX05FT04pKQor
I2luY2x1ZGUgPGFybV9uZW9uLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisj
ZGVmaW5lIFJFU1RSSUNUCisjZWxzZQorI2RlZmluZSBSRVNUUklDVCByZXN0cmljdAorI2VuZGlm
CisKKyNpbmNsdWRlICIuLi9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisKKy8v
IFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgW0hSU1NdLCBidXQgd2l0aCBhIEtFTSB0cmFu
c2Zvcm1hdGlvbiBiYXNlZCBvbgorLy8gW1NYWV0uIFRoZSBwcmltYXJ5IHJlZmVyZW5jZXMgYXJl
OgorCisvLyBIUlNTOiBodHRwczovL2VwcmludC5pYWNyLm9yZy8yMDE3LzY2Ny5wZGYKKy8vIEhS
U1NOSVNUOgorLy8gaHR0cHM6Ly9jc3JjLm5pc3QuZ292L0NTUkMvbWVkaWEvUHJvamVjdHMvUG9z
dC1RdWFudHVtLUNyeXB0b2dyYXBoeS9kb2N1bWVudHMvcm91bmQtMS9zdWJtaXNzaW9ucy9OVFJV
X0hSU1NfS0VNLnppcAorLy8gU1hZOiBodHRwczovL2VwcmludC5pYWNyLm9yZy8yMDE3LzEwMDUu
cGRmCisvLyBOVFJVVE4xNDoKKy8vIGh0dHBzOi8vYXNzZXRzLm9uYm9hcmRzZWN1cml0eS5jb20v
c3RhdGljL2Rvd25sb2Fkcy9OVFJVL3Jlc291cmNlcy9OVFJVVGVjaDAxNC5wZGYKKy8vIE5UUlVD
T01QOgorLy8gaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAxOC8xMTc0CisKKworLy8gVmVjdG9y
IG9wZXJhdGlvbnMuCisvLworLy8gQSBjb3VwbGUgb2YgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBj
YW4gdXNlIHZlY3RvciBvcGVyYXRpb25zIHRvIG1lYW5pbmdmdWwKKy8vIGVmZmVjdC4gSWYgd2Un
cmUgYnVpbGRpbmcgZm9yIGEgdGFyZ2V0IHRoYXQgaGFzIGEgc3VwcG9ydGVkIHZlY3RvciB1bml0
LAorLy8gfEhSU1NfSEFWRV9WRUNUT1JfVU5JVHwgd2lsbCBiZSBkZWZpbmVkIGFuZCB8dmVjX3R8
IHdpbGwgYmUgdHlwZWRlZmVkIHRvIGEKKy8vIDEyOC1iaXQgdmVjdG9yLiBUaGUgZm9sbG93aW5n
IGZ1bmN0aW9ucyBhYnN0cmFjdCBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCisvLyBORU9O
IGFuZCBTU0UyIGZvciBpbXBsZW1lbnRpbmcgc29tZSB2ZWN0b3Igb3BlcmF0aW9ucy4KKworLy8g
VE9ETzogTVNWQyBjYW4gbGlrZWx5IGFsc28gYmUgbWFkZSB0byB3b3JrIHdpdGggdmVjdG9yIG9w
ZXJhdGlvbnMuCisjaWYgKChkZWZpbmVkKF9fU1NFX18pICYmIGRlZmluZWQoT1BFTlNTTF9YODYp
KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSkgJiYgXAorICAgIChkZWZpbmVkKF9fY2xhbmdf
XykgfHwgIWRlZmluZWQoX01TQ19WRVIpKQorCisjZGVmaW5lIEhSU1NfSEFWRV9WRUNUT1JfVU5J
VAordHlwZWRlZiBfX20xMjhpIHZlY190OworCisvLyB2ZWNfY2FwYWJsZSByZXR1cm5zIG9uZSBp
ZmYgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMgU1NFMi4KK3N0YXRpYyBpbnQgdmVjX2Nh
cGFibGUodm9pZCkgeworI2lmIGRlZmluZWQoX19TU0UyX18pCisgIHJldHVybiAxOworI2Vsc2UK
KyAgaW50IGhhc19zc2UyID0gKE9QRU5TU0xfaWEzMmNhcF9QWzBdICYgKDEgPDwgMjYpKSAhPSAw
OworICByZXR1cm4gaGFzX3NzZTI7CisjZW5kaWYKK30KKworLy8gdmVjX2FkZCBwZXJmb3JtcyBh
IHBhaXItd2lzZSBhZGRpdGlvbiBvZiBmb3VyIHVpbnQxNnMgZnJvbSB8YXwgYW5kIHxifC4KK3N0
YXRpYyBpbmxpbmUgdmVjX3QgdmVjX2FkZCh2ZWNfdCBhLCB2ZWNfdCBiKSB7IHJldHVybiBfbW1f
YWRkX2VwaTE2KGEsIGIpOyB9CisKKy8vIHZlY19zdWIgcGVyZm9ybXMgYSBwYWlyLXdpc2Ugc3Vi
dHJhY3Rpb24gb2YgZm91ciB1aW50MTZzIGZyb20gfGF8IGFuZCB8YnwuCitzdGF0aWMgaW5saW5l
IHZlY190IHZlY19zdWIodmVjX3QgYSwgdmVjX3QgYikgeyByZXR1cm4gX21tX3N1Yl9lcGkxNihh
LCBiKTsgfQorCisvLyB2ZWNfbXVsIG11bHRpcGxpZXMgZWFjaCB1aW50MTZfdCBpbiB8YXwgYnkg
fGJ8IGFuZCByZXR1cm5zIHRoZSByZXN1bHRpbmcKKy8vIHZlY3Rvci4KK3N0YXRpYyBpbmxpbmUg
dmVjX3QgdmVjX211bCh2ZWNfdCBhLCB1aW50MTZfdCBiKSB7CisgIHJldHVybiBfbW1fbXVsbG9f
ZXBpMTYoYSwgX21tX3NldDFfZXBpMTYoYikpOworfQorCisvLyB2ZWNfZm1hIG11bHRpcGxpZXMg
ZWFjaCB1aW50MTZfdCBpbiB8YnwgYnkgfGN8LCBhZGRzIHRoZSByZXN1bHQgdG8gfGF8LCBhbmQK
Ky8vIHJldHVybnMgdGhlIHJlc3VsdGluZyB2ZWN0b3IuCitzdGF0aWMgaW5saW5lIHZlY190IHZl
Y19mbWEodmVjX3QgYSwgdmVjX3QgYiwgdWludDE2X3QgYykgeworICByZXR1cm4gX21tX2FkZF9l
cGkxNihhLCBfbW1fbXVsbG9fZXBpMTYoYiwgX21tX3NldDFfZXBpMTYoYykpKTsKK30KKworLy8g
dmVjM19yc2hpZnRfd29yZCByaWdodC1zaGlmdHMgdGhlIDI0IHVpbnQxNl90J3MgaW4gfHZ8IGJ5
IG9uZSB1aW50MTYuCitzdGF0aWMgaW5saW5lIHZvaWQgdmVjM19yc2hpZnRfd29yZCh2ZWNfdCB2
WzNdKSB7CisgIC8vIEludGVsJ3MgbGVmdCBhbmQgcmlnaHQgc2hpZnRpbmcgaXMgYmFja3dhcmRz
IGNvbXBhcmVkIHRvIHRoZSBvcmRlciBpbgorICAvLyBtZW1vcnkgYmVjYXVzZSB0aGV5J3JlIGJh
c2VkIG9uIGxpdHRsZS1lbmRpYW4gb3JkZXIgb2Ygd29yZHMgKGFuZCBub3QganVzdAorICAvLyBi
eXRlcykuIFNvIHRoZSBzaGlmdHMgaW4gdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGJhY2t3YXJkcyBm
cm9tIHdoYXQgb25lCisgIC8vIG1pZ2h0IGV4cGVjdC4KKyAgY29uc3QgX19tMTI4aSBjYXJyeTAg
PSBfbW1fc3JsaV9zaTEyOCh2WzBdLCAxNCk7CisgIHZbMF0gPSBfbW1fc2xsaV9zaTEyOCh2WzBd
LCAyKTsKKworICBjb25zdCBfX20xMjhpIGNhcnJ5MSA9IF9tbV9zcmxpX3NpMTI4KHZbMV0sIDE0
KTsKKyAgdlsxXSA9IF9tbV9zbGxpX3NpMTI4KHZbMV0sIDIpOworICB2WzFdIHw9IGNhcnJ5MDsK
KworICB2WzJdID0gX21tX3NsbGlfc2kxMjgodlsyXSwgMik7CisgIHZbMl0gfD0gY2FycnkxOwor
fQorCisvLyB2ZWM0X3JzaGlmdF93b3JkIHJpZ2h0LXNoaWZ0cyB0aGUgMzIgdWludDE2X3QncyBp
biB8dnwgYnkgb25lIHVpbnQxNi4KK3N0YXRpYyBpbmxpbmUgdm9pZCB2ZWM0X3JzaGlmdF93b3Jk
KHZlY190IHZbNF0pIHsKKyAgLy8gSW50ZWwncyBsZWZ0IGFuZCByaWdodCBzaGlmdGluZyBpcyBi
YWNrd2FyZHMgY29tcGFyZWQgdG8gdGhlIG9yZGVyIGluCisgIC8vIG1lbW9yeSBiZWNhdXNlIHRo
ZXkncmUgYmFzZWQgb24gbGl0dGxlLWVuZGlhbiBvcmRlciBvZiB3b3JkcyAoYW5kIG5vdCBqdXN0
CisgIC8vIGJ5dGVzKS4gU28gdGhlIHNoaWZ0cyBpbiB0aGlzIGZ1bmN0aW9uIHdpbGwgYmUgYmFj
a3dhcmRzIGZyb20gd2hhdCBvbmUKKyAgLy8gbWlnaHQgZXhwZWN0LgorICBjb25zdCBfX20xMjhp
IGNhcnJ5MCA9IF9tbV9zcmxpX3NpMTI4KHZbMF0sIDE0KTsKKyAgdlswXSA9IF9tbV9zbGxpX3Np
MTI4KHZbMF0sIDIpOworCisgIGNvbnN0IF9fbTEyOGkgY2FycnkxID0gX21tX3NybGlfc2kxMjgo
dlsxXSwgMTQpOworICB2WzFdID0gX21tX3NsbGlfc2kxMjgodlsxXSwgMik7CisgIHZbMV0gfD0g
Y2FycnkwOworCisgIGNvbnN0IF9fbTEyOGkgY2FycnkyID0gX21tX3NybGlfc2kxMjgodlsyXSwg
MTQpOworICB2WzJdID0gX21tX3NsbGlfc2kxMjgodlsyXSwgMik7CisgIHZbMl0gfD0gY2Fycnkx
OworCisgIHZbM10gPSBfbW1fc2xsaV9zaTEyOCh2WzNdLCAyKTsKKyAgdlszXSB8PSBjYXJyeTI7
Cit9CisKKy8vIHZlY19tZXJnZV8zXzUgdGFrZXMgdGhlIGZpbmFsIHRocmVlIHVpbnQxNl90J3Mg
ZnJvbSB8bGVmdHwsIGFwcGVuZHMgdGhlIGZpcnN0CisvLyBmaXZlIGZyb20gfHJpZ2h0fCwgYW5k
IHJldHVybnMgdGhlIHJlc3VsdGluZyB2ZWN0b3IuCitzdGF0aWMgaW5saW5lIHZlY190IHZlY19t
ZXJnZV8zXzUodmVjX3QgbGVmdCwgdmVjX3QgcmlnaHQpIHsKKyAgcmV0dXJuIF9tbV9zcmxpX3Np
MTI4KGxlZnQsIDEwKSB8IF9tbV9zbGxpX3NpMTI4KHJpZ2h0LCA2KTsKK30KKworLy8gcG9seTNf
dmVjX2xzaGlmdDEgbGVmdC1zaGlmdHMgdGhlIDc2OCBiaXRzIGluIHxhX3N8LCBhbmQgaW4gfGFf
YXwsIGJ5IG9uZQorLy8gYml0Lgorc3RhdGljIGlubGluZSB2b2lkIHBvbHkzX3ZlY19sc2hpZnQx
KHZlY190IGFfc1s2XSwgdmVjX3QgYV9hWzZdKSB7CisgIHZlY190IGNhcnJ5X3MgPSB7MH07Cisg
IHZlY190IGNhcnJ5X2EgPSB7MH07CisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA2OyBpKyspIHsK
KyAgICB2ZWNfdCBuZXh0X2NhcnJ5X3MgPSBfbW1fc3JsaV9lcGk2NChhX3NbaV0sIDYzKTsKKyAg
ICBhX3NbaV0gPSBfbW1fc2xsaV9lcGk2NChhX3NbaV0sIDEpOworICAgIGFfc1tpXSB8PSBfbW1f
c2xsaV9zaTEyOChuZXh0X2NhcnJ5X3MsIDgpOworICAgIGFfc1tpXSB8PSBjYXJyeV9zOworICAg
IGNhcnJ5X3MgPSBfbW1fc3JsaV9zaTEyOChuZXh0X2NhcnJ5X3MsIDgpOworCisgICAgdmVjX3Qg
bmV4dF9jYXJyeV9hID0gX21tX3NybGlfZXBpNjQoYV9hW2ldLCA2Myk7CisgICAgYV9hW2ldID0g
X21tX3NsbGlfZXBpNjQoYV9hW2ldLCAxKTsKKyAgICBhX2FbaV0gfD0gX21tX3NsbGlfc2kxMjgo
bmV4dF9jYXJyeV9hLCA4KTsKKyAgICBhX2FbaV0gfD0gY2FycnlfYTsKKyAgICBjYXJyeV9hID0g
X21tX3NybGlfc2kxMjgobmV4dF9jYXJyeV9hLCA4KTsKKyAgfQorfQorCisvLyBwb2x5M192ZWNf
cnNoaWZ0MSByaWdodC1zaGlmdHMgdGhlIDc2OCBiaXRzIGluIHxhX3N8LCBhbmQgaW4gfGFfYXws
IGJ5IG9uZQorLy8gYml0Lgorc3RhdGljIGlubGluZSB2b2lkIHBvbHkzX3ZlY19yc2hpZnQxKHZl
Y190IGFfc1s2XSwgdmVjX3QgYV9hWzZdKSB7CisgIHZlY190IGNhcnJ5X3MgPSB7MH07CisgIHZl
Y190IGNhcnJ5X2EgPSB7MH07CisKKyAgZm9yIChpbnQgaSA9IDU7IGkgPj0gMDsgaS0tKSB7Cisg
ICAgY29uc3QgdmVjX3QgbmV4dF9jYXJyeV9zID0gX21tX3NsbGlfZXBpNjQoYV9zW2ldLCA2Myk7
CisgICAgYV9zW2ldID0gX21tX3NybGlfZXBpNjQoYV9zW2ldLCAxKTsKKyAgICBhX3NbaV0gfD0g
X21tX3NybGlfc2kxMjgobmV4dF9jYXJyeV9zLCA4KTsKKyAgICBhX3NbaV0gfD0gY2FycnlfczsK
KyAgICBjYXJyeV9zID0gX21tX3NsbGlfc2kxMjgobmV4dF9jYXJyeV9zLCA4KTsKKworICAgIGNv
bnN0IHZlY190IG5leHRfY2FycnlfYSA9IF9tbV9zbGxpX2VwaTY0KGFfYVtpXSwgNjMpOworICAg
IGFfYVtpXSA9IF9tbV9zcmxpX2VwaTY0KGFfYVtpXSwgMSk7CisgICAgYV9hW2ldIHw9IF9tbV9z
cmxpX3NpMTI4KG5leHRfY2FycnlfYSwgOCk7CisgICAgYV9hW2ldIHw9IGNhcnJ5X2E7CisgICAg
Y2FycnlfYSA9IF9tbV9zbGxpX3NpMTI4KG5leHRfY2FycnlfYSwgOCk7CisgIH0KK30KKworLy8g
dmVjX2Jyb2FkY2FzdF9iaXQgZHVwbGljYXRlcyB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQgYml0IGlu
IHxhfCB0byBhbGwgYml0cyBpbgorLy8gYSB2ZWN0b3IgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4K
K3N0YXRpYyBpbmxpbmUgdmVjX3QgdmVjX2Jyb2FkY2FzdF9iaXQodmVjX3QgYSkgeworICByZXR1
cm4gX21tX3NodWZmbGVfZXBpMzIoX21tX3NyYWlfZXBpMzIoX21tX3NsbGlfZXBpNjQoYSwgNjMp
LCAzMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwYjAxMDEwMTAxKTsKK30KKworLy8g
dmVjX2Jyb2FkY2FzdF9iaXQxNSBkdXBsaWNhdGVzIHRoZSBtb3N0LXNpZ25pZmljYW50IGJpdCBv
ZiB0aGUgZmlyc3Qgd29yZCBpbgorLy8gfGF8IHRvIGFsbCBiaXRzIGluIGEgdmVjdG9yIGFuZCBy
ZXR1cm5zIHRoZSByZXN1bHQuCitzdGF0aWMgaW5saW5lIHZlY190IHZlY19icm9hZGNhc3RfYml0
MTUodmVjX3QgYSkgeworICByZXR1cm4gX21tX3NodWZmbGVfZXBpMzIoX21tX3NyYWlfZXBpMzIo
X21tX3NsbGlfZXBpNjQoYSwgNjMgLSAxNSksIDMxKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDBiMDEwMTAxMDEpOworfQorCisvLyB2ZWNfZ2V0X3dvcmQgcmV0dXJucyB0aGUgfGl8dGgg
dWludDE2X3QgaW4gfHZ8LiAoVGhpcyBpcyBhIG1hY3JvIGJlY2F1c2UgdGhlCisvLyBjb21waWxl
ciByZXF1aXJlcyB0aGF0IHxpfCBiZSBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4pCisjZGVmaW5l
IHZlY19nZXRfd29yZCh2LCBpKSBfbW1fZXh0cmFjdF9lcGkxNih2LCBpKQorCisjZWxpZiAoZGVm
aW5lZChPUEVOU1NMX0FSTSkgfHwgZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpKSAmJiBcCisgICAg
KGRlZmluZWQoX19BUk1fTkVPTl9fKSB8fCBkZWZpbmVkKF9fQVJNX05FT04pKQorCisjZGVmaW5l
IEhSU1NfSEFWRV9WRUNUT1JfVU5JVAordHlwZWRlZiB1aW50MTZ4OF90IHZlY190OworCisvLyBU
aGVzZSBmdW5jdGlvbnMgcGVyZm9ybSB0aGUgc2FtZSBhY3Rpb25zIGFzIHRoZSBTU0UyIGZ1bmN0
aW9uIG9mIHRoZSBzYW1lCisvLyBuYW1lLCBhYm92ZS4KKworc3RhdGljIGludCB2ZWNfY2FwYWJs
ZSh2b2lkKSB7IHJldHVybiBDUllQVE9faXNfTkVPTl9jYXBhYmxlKCk7IH0KKworc3RhdGljIGlu
bGluZSB2ZWNfdCB2ZWNfYWRkKHZlY190IGEsIHZlY190IGIpIHsgcmV0dXJuIGEgKyBiOyB9CisK
K3N0YXRpYyBpbmxpbmUgdmVjX3QgdmVjX3N1Yih2ZWNfdCBhLCB2ZWNfdCBiKSB7IHJldHVybiBh
IC0gYjsgfQorCitzdGF0aWMgaW5saW5lIHZlY190IHZlY19tdWwodmVjX3QgYSwgdWludDE2X3Qg
YikgeyByZXR1cm4gdm11bHFfbl91MTYoYSwgYik7IH0KKworc3RhdGljIGlubGluZSB2ZWNfdCB2
ZWNfZm1hKHZlY190IGEsIHZlY190IGIsIHVpbnQxNl90IGMpIHsKKyAgcmV0dXJuIHZtbGFxX25f
dTE2KGEsIGIsIGMpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdmVjM19yc2hpZnRfd29yZCh2
ZWNfdCB2WzNdKSB7CisgIGNvbnN0IHVpbnQxNng4X3Qga1plcm8gPSB7MH07CisgIHZbMl0gPSB2
ZXh0cV91MTYodlsxXSwgdlsyXSwgNyk7CisgIHZbMV0gPSB2ZXh0cV91MTYodlswXSwgdlsxXSwg
Nyk7CisgIHZbMF0gPSB2ZXh0cV91MTYoa1plcm8sIHZbMF0sIDcpOworfQorCitzdGF0aWMgaW5s
aW5lIHZvaWQgdmVjNF9yc2hpZnRfd29yZCh2ZWNfdCB2WzRdKSB7CisgIGNvbnN0IHVpbnQxNng4
X3Qga1plcm8gPSB7MH07CisgIHZbM10gPSB2ZXh0cV91MTYodlsyXSwgdlszXSwgNyk7CisgIHZb
Ml0gPSB2ZXh0cV91MTYodlsxXSwgdlsyXSwgNyk7CisgIHZbMV0gPSB2ZXh0cV91MTYodlswXSwg
dlsxXSwgNyk7CisgIHZbMF0gPSB2ZXh0cV91MTYoa1plcm8sIHZbMF0sIDcpOworfQorCitzdGF0
aWMgaW5saW5lIHZlY190IHZlY19tZXJnZV8zXzUodmVjX3QgbGVmdCwgdmVjX3QgcmlnaHQpIHsK
KyAgcmV0dXJuIHZleHRxX3UxNihsZWZ0LCByaWdodCwgNSk7Cit9CisKK3N0YXRpYyBpbmxpbmUg
dWludDE2X3QgdmVjX2dldF93b3JkKHZlY190IHYsIHVuc2lnbmVkIGkpIHsKKyAgcmV0dXJuIHZb
aV07Cit9CisKKyNpZiAhZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpCisKK3N0YXRpYyBpbmxpbmUg
dmVjX3QgdmVjX2Jyb2FkY2FzdF9iaXQodmVjX3QgYSkgeworICBhID0gKHZlY190KXZzaHJxX25f
czE2KCgoaW50MTZ4OF90KWEpIDw8IDE1LCAxNSk7CisgIHJldHVybiB2ZHVwcV9sYW5lX3UxNih2
Z2V0X2xvd191MTYoYSksIDApOworfQorCitzdGF0aWMgaW5saW5lIHZlY190IHZlY19icm9hZGNh
c3RfYml0MTUodmVjX3QgYSkgeworICBhID0gKHZlY190KXZzaHJxX25fczE2KChpbnQxNng4X3Qp
YSwgMTUpOworICByZXR1cm4gdmR1cHFfbGFuZV91MTYodmdldF9sb3dfdTE2KGEpLCAwKTsKK30K
Kworc3RhdGljIGlubGluZSB2b2lkIHBvbHkzX3ZlY19sc2hpZnQxKHZlY190IGFfc1s2XSwgdmVj
X3QgYV9hWzZdKSB7CisgIHZlY190IGNhcnJ5X3MgPSB7MH07CisgIHZlY190IGNhcnJ5X2EgPSB7
MH07CisgIGNvbnN0IHZlY190IGtaZXJvID0gezB9OworCisgIGZvciAoaW50IGkgPSAwOyBpIDwg
NjsgaSsrKSB7CisgICAgdmVjX3QgbmV4dF9jYXJyeV9zID0gYV9zW2ldID4+IDE1OworICAgIGFf
c1tpXSA8PD0gMTsKKyAgICBhX3NbaV0gfD0gdmV4dHFfdTE2KGtaZXJvLCBuZXh0X2NhcnJ5X3Ms
IDcpOworICAgIGFfc1tpXSB8PSBjYXJyeV9zOworICAgIGNhcnJ5X3MgPSB2ZXh0cV91MTYobmV4
dF9jYXJyeV9zLCBrWmVybywgNyk7CisKKyAgICB2ZWNfdCBuZXh0X2NhcnJ5X2EgPSBhX2FbaV0g
Pj4gMTU7CisgICAgYV9hW2ldIDw8PSAxOworICAgIGFfYVtpXSB8PSB2ZXh0cV91MTYoa1plcm8s
IG5leHRfY2FycnlfYSwgNyk7CisgICAgYV9hW2ldIHw9IGNhcnJ5X2E7CisgICAgY2FycnlfYSA9
IHZleHRxX3UxNihuZXh0X2NhcnJ5X2EsIGtaZXJvLCA3KTsKKyAgfQorfQorCitzdGF0aWMgaW5s
aW5lIHZvaWQgcG9seTNfdmVjX3JzaGlmdDEodmVjX3QgYV9zWzZdLCB2ZWNfdCBhX2FbNl0pIHsK
KyAgdmVjX3QgY2FycnlfcyA9IHswfTsKKyAgdmVjX3QgY2FycnlfYSA9IHswfTsKKyAgY29uc3Qg
dmVjX3Qga1plcm8gPSB7MH07CisKKyAgZm9yIChpbnQgaSA9IDU7IGkgPj0gMDsgaS0tKSB7Cisg
ICAgdmVjX3QgbmV4dF9jYXJyeV9zID0gYV9zW2ldIDw8IDE1OworICAgIGFfc1tpXSA+Pj0gMTsK
KyAgICBhX3NbaV0gfD0gdmV4dHFfdTE2KG5leHRfY2Fycnlfcywga1plcm8sIDEpOworICAgIGFf
c1tpXSB8PSBjYXJyeV9zOworICAgIGNhcnJ5X3MgPSB2ZXh0cV91MTYoa1plcm8sIG5leHRfY2Fy
cnlfcywgMSk7CisKKyAgICB2ZWNfdCBuZXh0X2NhcnJ5X2EgPSBhX2FbaV0gPDwgMTU7CisgICAg
YV9hW2ldID4+PSAxOworICAgIGFfYVtpXSB8PSB2ZXh0cV91MTYobmV4dF9jYXJyeV9hLCBrWmVy
bywgMSk7CisgICAgYV9hW2ldIHw9IGNhcnJ5X2E7CisgICAgY2FycnlfYSA9IHZleHRxX3UxNihr
WmVybywgbmV4dF9jYXJyeV9hLCAxKTsKKyAgfQorfQorCisjZW5kaWYgIC8vICFPUEVOU1NMX0FB
UkNINjQKKworI2VuZGlmICAvLyAoQVJNIHx8IEFBUkNINjQpICYmIE5FT04KKworLy8gUG9seW5v
bWlhbHMgaW4gdGhpcyBzY2hlbWUgaGF2ZSBOIHRlcm1zLgorLy8gI2RlZmluZSBOIDcwMQorCisv
LyBVbmRlcmx5aW5nIGRhdGEgdHlwZXMgYW5kIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4KKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBCaW5h
cnkgcG9seW5vbWlhbHMuCisKKy8vIHBvbHkyIHJlcHJlc2VudHMgYSBkZWdyZWUtTiBwb2x5bm9t
aWFsIG92ZXIgR0YoMikuIFRoZSB3b3JkcyBhcmUgaW4gbGl0dGxlLQorLy8gZW5kaWFuIG9yZGVy
LCBpLmUuIHRoZSBjb2VmZmljaWVudCBvZiB4XjAgaXMgdGhlIExTQiBvZiB0aGUgZmlyc3Qgd29y
ZC4gVGhlCisvLyBmaW5hbCB3b3JkIGlzIG9ubHkgcGFydGlhbGx5IHVzZWQgc2luY2UgTiBpcyBu
b3QgYSBtdWx0aXBsZSBvZiB0aGUgd29yZCBzaXplLgorCisvLyBEZWZpbmVkIGluIGludGVybmFs
Lmg6CisvLyBzdHJ1Y3QgcG9seTIgeworLy8gIGNyeXB0b193b3JkX3QgdltXT1JEU19QRVJfUE9M
WV07CisvLyB9OworCitPUEVOU1NMX1VOVVNFRCBzdGF0aWMgdm9pZCBoZXhkdW1wKGNvbnN0IHZv
aWQgKnZvaWRfaW4sIHNpemVfdCBsZW4pIHsKKyAgY29uc3QgdWludDhfdCAqaW4gPSAoY29uc3Qg
dWludDhfdCAqKXZvaWRfaW47CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsK
KyAgICBwcmludGYoIiUwMngiLCBpbltpXSk7CisgIH0KKyAgcHJpbnRmKCJcbiIpOworfQorCitz
dGF0aWMgdm9pZCBwb2x5Ml96ZXJvKHN0cnVjdCBwb2x5MiAqcCkgeworICBPUEVOU1NMX21lbXNl
dCgmcC0+dlswXSwgMCwgc2l6ZW9mKGNyeXB0b193b3JkX3QpICogV09SRFNfUEVSX1BPTFkpOwor
fQorCisvLyBwb2x5Ml9jbW92IHNldHMgfG91dHwgdG8gfGlufCBpZmYgfG1vdnwgaXMgYWxsIG9u
ZXMuCitzdGF0aWMgdm9pZCBwb2x5Ml9jbW92KHN0cnVjdCBwb2x5MiAqb3V0LCBjb25zdCBzdHJ1
Y3QgcG9seTIgKmluLAorICAgICAgICAgICAgICAgICAgICAgICBjcnlwdG9fd29yZF90IG1vdikg
eworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdPUkRTX1BFUl9QT0xZOyBpKyspIHsKKyAgICBv
dXQtPnZbaV0gPSAob3V0LT52W2ldICYgfm1vdikgfCAoaW4tPnZbaV0gJiBtb3YpOworICB9Cit9
CisKKy8vIHBvbHkyX3JvdHJfd29yZHMgcGVyZm9ybXMgYSByaWdodC1yb3RhdGUgb24gfGlufCwg
d3JpdGluZyB0aGUgcmVzdWx0IHRvCisvLyB8b3V0fC4gVGhlIHNoaWZ0IGNvdW50LCB8Yml0c3ws
IG11c3QgYmUgYSBub24temVybyBtdWx0aXBsZSBvZiB0aGUgd29yZCBzaXplLgorc3RhdGljIHZv
aWQgcG9seTJfcm90cl93b3JkcyhzdHJ1Y3QgcG9seTIgKm91dCwgY29uc3Qgc3RydWN0IHBvbHky
ICppbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJpdHMpIHsKKyAgYXNz
ZXJ0KGJpdHMgPj0gQklUU19QRVJfV09SRCAmJiBiaXRzICUgQklUU19QRVJfV09SRCA9PSAwKTsK
KyAgYXNzZXJ0KG91dCAhPSBpbik7CisKKyAgY29uc3Qgc2l6ZV90IHN0YXJ0ID0gYml0cyAvIEJJ
VFNfUEVSX1dPUkQ7CisgIGNvbnN0IHNpemVfdCBuID0gKE4gLSBiaXRzKSAvIEJJVFNfUEVSX1dP
UkQ7CisKKyAgLy8gVGhlIHJvdGF0ZSBpcyBieSBhIHdob2xlIG51bWJlciBvZiB3b3JkcyBzbyB0
aGUgZmlyc3QgZmV3IHdvcmRzIGFyZSBlYXN5OgorICAvLyBqdXN0IG1vdmUgdGhlbSBkb3duLgor
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47IGkrKykgeworICAgIG91dC0+dltpXSA9IGluLT52
W3N0YXJ0ICsgaV07CisgIH0KKworICAvLyBTaW5jZSB0aGUgbGFzdCB3b3JkIGlzIG9ubHkgcGFy
dGlhbGx5IGZpbGxlZCwgaG93ZXZlciwgdGhlIHJlbWFpbmRlciBuZWVkcworICAvLyBzaGlmdGlu
ZyBhbmQgbWVyZ2luZyBvZiB3b3JkcyB0byB0YWtlIGNhcmUgb2YgdGhhdC4KKyAgY3J5cHRvX3dv
cmRfdCBjYXJyeSA9IGluLT52W1dPUkRTX1BFUl9QT0xZIC0gMV07CisKKyAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzdGFydDsgaSsrKSB7CisgICAgb3V0LT52W24gKyBpXSA9IGNhcnJ5IHwgaW4t
PnZbaV0gPDwgQklUU19JTl9MQVNUX1dPUkQ7CisgICAgY2FycnkgPSBpbi0+dltpXSA+PiAoQklU
U19QRVJfV09SRCAtIEJJVFNfSU5fTEFTVF9XT1JEKTsKKyAgfQorCisgIG91dC0+dltXT1JEU19Q
RVJfUE9MWSAtIDFdID0gY2Fycnk7Cit9CisKKy8vIHBvbHkyX3JvdHJfYml0cyBwZXJmb3JtcyBh
IHJpZ2h0LXJvdGF0ZSBvbiB8aW58LCB3cml0aW5nIHRoZSByZXN1bHQgdG8gfG91dHwuCisvLyBU
aGUgc2hpZnQgY291bnQsIHxiaXRzfCwgbXVzdCBiZSBhIHBvd2VyIG9mIHR3byB0aGF0IGlzIGxl
c3MgdGhhbgorLy8gfEJJVFNfUEVSX1dPUkR8Lgorc3RhdGljIHZvaWQgcG9seTJfcm90cl9iaXRz
KHN0cnVjdCBwb2x5MiAqb3V0LCBjb25zdCBzdHJ1Y3QgcG9seTIgKmluLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBiaXRzKSB7CisgIGFzc2VydChiaXRzIDw9IEJJVFNfUEVS
X1dPUkQgLyAyKTsKKyAgYXNzZXJ0KGJpdHMgIT0gMCk7CisgIGFzc2VydCgoYml0cyAmIChiaXRz
IC0gMSkpID09IDApOworICBhc3NlcnQob3V0ICE9IGluKTsKKworICAvLyBCSVRTX1BFUl9XT1JE
LzIgaXMgdGhlIGdyZWF0ZXN0IGxlZ2FsIHZhbHVlIG9mIHxiaXRzfC4gSWYKKyAgLy8gfEJJVFNf
SU5fTEFTVF9XT1JEfCBpcyBzbWFsbGVyIHRoYW4gdGhpcyB0aGVuIHRoZSBjb2RlIGJlbG93IGRv
ZXNuJ3Qgd29yaworICAvLyBiZWNhdXNlIG1vcmUgdGhhbiB0aGUgbGFzdCB3b3JkIG5lZWRzIHRv
IGNhcnJ5IGRvd24gaW4gdGhlIHByZXZpb3VzIG9uZSBhbmQKKyAgLy8gc28gb24uCisgIE9QRU5T
U0xfU1RBVElDX0FTU0VSVCgKKyAgICAgIEJJVFNfSU5fTEFTVF9XT1JEID49IEJJVFNfUEVSX1dP
UkQgLyAyLAorICAgICAgInRoZXJlIGFyZSBtb3JlIGNhcnJ5IGJpdHMgdGhhbiBmaXQgaW4gQklU
U19JTl9MQVNUX1dPUkQiKTsKKworICBjcnlwdG9fd29yZF90IGNhcnJ5ID0gaW4tPnZbV09SRFNf
UEVSX1BPTFkgLSAxXSA8PCAoQklUU19QRVJfV09SRCAtIGJpdHMpOworCisgIGZvciAoc2l6ZV90
IGkgPSBXT1JEU19QRVJfUE9MWSAtIDI7IGkgPCBXT1JEU19QRVJfUE9MWTsgaS0tKSB7CisgICAg
b3V0LT52W2ldID0gY2FycnkgfCBpbi0+dltpXSA+PiBiaXRzOworICAgIGNhcnJ5ID0gaW4tPnZb
aV0gPDwgKEJJVFNfUEVSX1dPUkQgLSBiaXRzKTsKKyAgfQorCisgIGNyeXB0b193b3JkX3QgbGFz
dF93b3JkID0gY2FycnkgPj4gKEJJVFNfUEVSX1dPUkQgLSBCSVRTX0lOX0xBU1RfV09SRCkgfAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluLT52W1dPUkRTX1BFUl9QT0xZIC0gMV0gPj4g
Yml0czsKKyAgbGFzdF93b3JkICY9IChVSU5UNjRfQygxKSA8PCBCSVRTX0lOX0xBU1RfV09SRCkg
LSAxOworICBvdXQtPnZbV09SRFNfUEVSX1BPTFkgLSAxXSA9IGxhc3Rfd29yZDsKK30KKworLy8g
SFJTU19wb2x5Ml9yb3RyX2NvbnN0dGltZSByaWdodC1yb3RhdGVzIHxwfCBieSB8Yml0c3wgaW4g
Y29uc3RhbnQtdGltZS4KK3ZvaWQgSFJTU19wb2x5Ml9yb3RyX2NvbnN0dGltZShzdHJ1Y3QgcG9s
eTIgKnAsIHNpemVfdCBiaXRzKSB7CisgIGFzc2VydChiaXRzIDw9IE4pOworICBhc3NlcnQocC0+
dltXT1JEU19QRVJfUE9MWS0xXSA+PiBCSVRTX0lOX0xBU1RfV09SRCA9PSAwKTsKKworICAvLyBD
b25zdGFudC10aW1lIHJvdGF0aW9uIGlzIGltcGxlbWVudGVkIGJ5IGNhbGN1bGF0aW5nIHRoZSBy
b3RhdGlvbnMgb2YKKyAgLy8gcG93ZXJzLW9mLXR3byBiaXRzIGFuZCB0aHJvd2luZyBhd2F5IHRo
ZSB1bm5lZWRlZCB2YWx1ZXMuIDJeOSAoaS5lLiA1MTIpIGlzCisgIC8vIHRoZSBsYXJnZXN0IHBv
d2VyLW9mLXR3byBzaGlmdCB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgYmVjYXVzZSAyXjEwID4g
Ti4KKyNkZWZpbmUgSFJTU19QT0xZMl9NQVhfU0hJRlQgOQorICBzaXplX3Qgc2hpZnQgPSBIUlNT
X1BPTFkyX01BWF9TSElGVDsKKyAgT1BFTlNTTF9TVEFUSUNfQVNTRVJUKCgxIDw8IChIUlNTX1BP
TFkyX01BWF9TSElGVCArIDEpKSA+IE4sCisgICAgICAgICAgICAgICAgICAgICAgICAibWF4aW11
bSBzaGlmdCBpcyB0b28gc21hbGwiKTsKKyAgT1BFTlNTTF9TVEFUSUNfQVNTRVJUKCgxIDw8IEhS
U1NfUE9MWTJfTUFYX1NISUZUKSA8PSBOLAorICAgICAgICAgICAgICAgICAgICAgICAgIm1heGlt
dW0gc2hpZnQgaXMgdG9vIGxhcmdlIik7CisgIHN0cnVjdCBwb2x5MiBzaGlmdGVkOworCisgIGZv
ciAoOyAoVUlOVDY0X0MoMSkgPDwgc2hpZnQpID49IEJJVFNfUEVSX1dPUkQ7IHNoaWZ0LS0pIHsK
KyAgICBwb2x5Ml9yb3RyX3dvcmRzKCZzaGlmdGVkLCBwLCBVSU5UNjRfQygxKSA8PCBzaGlmdCk7
CisgICAgcG9seTJfY21vdihwLCAmc2hpZnRlZCwgfigoMSAmIChiaXRzID4+IHNoaWZ0KSkgLSAx
KSk7CisgIH0KKworICBmb3IgKDsgc2hpZnQgPCBIUlNTX1BPTFkyX01BWF9TSElGVDsgc2hpZnQt
LSkgeworICAgIHBvbHkyX3JvdHJfYml0cygmc2hpZnRlZCwgcCwgVUlOVDY0X0MoMSkgPDwgc2hp
ZnQpOworICAgIHBvbHkyX2Ntb3YocCwgJnNoaWZ0ZWQsIH4oKDEgJiAoYml0cyA+PiBzaGlmdCkp
IC0gMSkpOworICB9CisjdW5kZWYgSFJTU19QT0xZMl9NQVhfU0hJRlQKK30KKworLy8gcG9seTJf
Y3N3YXAgZXhjaGFuZ2VzIHRoZSB2YWx1ZXMgb2YgfGF8IGFuZCB8YnwgaWYgfHN3YXB8IGlzIGFs
bCBvbmVzLgorc3RhdGljIHZvaWQgcG9seTJfY3N3YXAoc3RydWN0IHBvbHkyICphLCBzdHJ1Y3Qg
cG9seTIgKmIsIGNyeXB0b193b3JkX3Qgc3dhcCkgeworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IFdPUkRTX1BFUl9QT0xZOyBpKyspIHsKKyAgICBjb25zdCBjcnlwdG9fd29yZF90IHN1bSA9IHN3
YXAgJiAoYS0+dltpXSBeIGItPnZbaV0pOworICAgIGEtPnZbaV0gXj0gc3VtOworICAgIGItPnZb
aV0gXj0gc3VtOworICB9Cit9CisKKy8vIHBvbHkyX2ZtYWRkIHNldHMgfG91dHwgdG8gfG91dHwg
KyB8aW58ICogbSwgd2hlcmUgbSBpcyBlaXRoZXIKKy8vIHxDT05TVFRJTUVfVFJVRV9XfCBvciB8
Q09OU1RUSU1FX0ZBTFNFX1d8Lgorc3RhdGljIHZvaWQgcG9seTJfZm1hZGQoc3RydWN0IHBvbHky
ICpvdXQsIGNvbnN0IHN0cnVjdCBwb2x5MiAqaW4sCisgICAgICAgICAgICAgICAgICAgICAgICBj
cnlwdG9fd29yZF90IG0pIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXT1JEU19QRVJfUE9M
WTsgaSsrKSB7CisgICAgb3V0LT52W2ldIF49IGluLT52W2ldICYgbTsKKyAgfQorfQorCisvLyBw
b2x5Ml9sc2hpZnQxIGxlZnQtc2hpZnRzIHxwfCBieSBvbmUgYml0Lgorc3RhdGljIHZvaWQgcG9s
eTJfbHNoaWZ0MShzdHJ1Y3QgcG9seTIgKnApIHsKKyAgY3J5cHRvX3dvcmRfdCBjYXJyeSA9IDA7
CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV09SRFNfUEVSX1BPTFk7IGkrKykgeworICAgIGNv
bnN0IGNyeXB0b193b3JkX3QgbmV4dF9jYXJyeSA9IHAtPnZbaV0gPj4gKEJJVFNfUEVSX1dPUkQg
LSAxKTsKKyAgICBwLT52W2ldIDw8PSAxOworICAgIHAtPnZbaV0gfD0gY2Fycnk7CisgICAgY2Fy
cnkgPSBuZXh0X2NhcnJ5OworICB9Cit9CisKKy8vIHBvbHkyX3JzaGlmdDEgcmlnaHQtc2hpZnRz
IHxwfCBieSBvbmUgYml0Lgorc3RhdGljIHZvaWQgcG9seTJfcnNoaWZ0MShzdHJ1Y3QgcG9seTIg
KnApIHsKKyAgY3J5cHRvX3dvcmRfdCBjYXJyeSA9IDA7CisgIGZvciAoc2l6ZV90IGkgPSBXT1JE
U19QRVJfUE9MWSAtIDE7IGkgPCBXT1JEU19QRVJfUE9MWTsgaS0tKSB7CisgICAgY29uc3QgY3J5
cHRvX3dvcmRfdCBuZXh0X2NhcnJ5ID0gcC0+dltpXSAmIDE7CisgICAgcC0+dltpXSA+Pj0gMTsK
KyAgICBwLT52W2ldIHw9IGNhcnJ5IDw8IChCSVRTX1BFUl9XT1JEIC0gMSk7CisgICAgY2Fycnkg
PSBuZXh0X2NhcnJ5OworICB9Cit9CisKKy8vIHBvbHkyX2NsZWFyX3RvcF9iaXRzIGNsZWFycyB0
aGUgYml0cyBpbiB0aGUgZmluYWwgd29yZCB0aGF0IGFyZSBvbmx5IGZvcgorLy8gYWxpZ25tZW50
Lgorc3RhdGljIHZvaWQgcG9seTJfY2xlYXJfdG9wX2JpdHMoc3RydWN0IHBvbHkyICpwKSB7Cisg
IHAtPnZbV09SRFNfUEVSX1BPTFkgLSAxXSAmPSAoVUlOVDY0X0MoMSkgPDwgQklUU19JTl9MQVNU
X1dPUkQpIC0gMTsKK30KKworLy8gcG9seTJfdG9wX2JpdHNfYXJlX2NsZWFyIHJldHVybnMgb25l
IGlmZiB0aGUgZXh0cmEgYml0cyBpbiB0aGUgZmluYWwgd29yZHMgb2YKKy8vIHxwfCBhcmUgemVy
by4KK3N0YXRpYyBpbnQgcG9seTJfdG9wX2JpdHNfYXJlX2NsZWFyKGNvbnN0IHN0cnVjdCBwb2x5
MiAqcCkgeworICByZXR1cm4gKHAtPnZbV09SRFNfUEVSX1BPTFkgLSAxXSAmCisgICAgICAgICAg
figoVUlOVDY0X0MoMSkgPDwgQklUU19JTl9MQVNUX1dPUkQpIC0gMSkpID09IDA7Cit9CisKKy8v
IFRlcm5hcnkgcG9seW5vbWlhbHMuCisKKy8vIHBvbHkzIHJlcHJlc2VudHMgYSBkZWdyZWUtTiBw
b2x5bm9taWFsIG92ZXIgR0YoMykuIEVhY2ggY29lZmZpY2llbnQgaXMKKy8vIGJpdHNsaWNlZCBh
Y3Jvc3MgdGhlIHxzfCBhbmQgfGF8IGFycmF5cywgbGlrZSB0aGlzOgorLy8KKy8vICAgcyAgfCAg
YSAgfCB2YWx1ZQorLy8gIC0tLS0tLS0tLS0tLS0tLS0tCisvLyAgIDAgIHwgIDAgIHwgMAorLy8g
ICAwICB8ICAxICB8IDEKKy8vICAgMSAgfCAgMSAgfCAtMSAoYWthIDIpCisvLyAgIDEgIHwgIDAg
IHwgPGludmFsaWQ+CisvLworLy8gKCdzJyBpcyBmb3Igc2lnbiwgYW5kICdhJyBpcyB0aGUgYWJz
b2x1dGUgdmFsdWUuKQorLy8KKy8vIE9uY2UgYml0c2xpY2VkIGFzIHN1Y2gsIHRoZSBmb2xsb3dp
bmcgY2lyY3VpdHMgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50CisvLyBhZGRpdGlvbiBhbmQgbXVs
dGlwbGljYXRpb24gbW9kIDM6CisvLworLy8gICAoczMsIGEzKSA9IChzMSwgYTEpIMOXIChzMiwg
YTIpCisvLyAgIGEzID0gYTEg4oinIGEyCisvLyAgIHMzID0gKHMxIOKKlSBzMikg4oinIGEzCisv
LworLy8gICAoczMsIGEzKSA9IChzMSwgYTEpICsgKHMyLCBhMikKKy8vICAgdCA9IHMxIOKKlSBh
MgorLy8gICBzMyA9IHQg4oinIChzMiDiipUgYTEpCisvLyAgIGEzID0gKGExIOKKlSBhMikg4oio
ICh0IOKKlSBzMikKKy8vCisvLyAgIChzMywgYTMpID0gKHMxLCBhMSkgLSAoczIsIGEyKQorLy8g
ICB0ID0gYTEg4oqVIGEyCisvLyAgIHMzID0gKHMxIOKKlSBhMikg4oinICh0IOKKlSBzMikKKy8v
ICAgYTMgPSB0IOKIqCAoczEg4oqVIHMyKQorLy8KKy8vIE5lZ2F0aW5nIGEgdmFsdWUganVzdCBp
bnZvbHZlcyBYT1JpbmcgcyBieSBhLgorLy8KKy8vIHN0cnVjdCBwb2x5MyB7CisvLyAgIHN0cnVj
dCBwb2x5MiBzLCBhOworLy8gfTsKKworT1BFTlNTTF9VTlVTRUQgc3RhdGljIHZvaWQgcG9seTNf
cHJpbnQoY29uc3Qgc3RydWN0IHBvbHkzICppbikgeworICBzdHJ1Y3QgcG9seTMgcDsKKyAgT1BF
TlNTTF9tZW1jcHkoJnAsIGluLCBzaXplb2YocCkpOworICBwLnMudltXT1JEU19QRVJfUE9MWSAt
IDFdICY9ICgoY3J5cHRvX3dvcmRfdCkxIDw8IEJJVFNfSU5fTEFTVF9XT1JEKSAtIDE7CisgIHAu
YS52W1dPUkRTX1BFUl9QT0xZIC0gMV0gJj0gKChjcnlwdG9fd29yZF90KTEgPDwgQklUU19JTl9M
QVNUX1dPUkQpIC0gMTsKKworICBwcmludGYoIntbIik7CisgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBXT1JEU19QRVJfUE9MWTsgaSsrKSB7CisgICAgaWYgKGkpIHsKKyAgICAgIHByaW50Zigi
ICIpOworICAgIH0KKyAgICBwcmludGYoQk5fSEVYX0ZNVDIsIHAucy52W2ldKTsKKyAgfQorICBw
cmludGYoIl0gWyIpOworICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV09SRFNfUEVSX1BPTFk7
IGkrKykgeworICAgIGlmIChpKSB7CisgICAgICBwcmludGYoIiAiKTsKKyAgICB9CisgICAgcHJp
bnRmKEJOX0hFWF9GTVQyLCBwLmEudltpXSk7CisgIH0KKyAgcHJpbnRmKCJdfVxuIik7Cit9CisK
K3N0YXRpYyB2b2lkIHBvbHkzX3plcm8oc3RydWN0IHBvbHkzICpwKSB7CisgIHBvbHkyX3plcm8o
JnAtPnMpOworICBwb2x5Ml96ZXJvKCZwLT5hKTsKK30KKworLy8gcG9seTNfd29yZF9tdWwgc2V0
cyAofG91dF9zfCwgfG91dF9hKSB0byAofHMxfCwgfGExfCkgw5cgKHxzMnwsIHxhMnwpLgorc3Rh
dGljIHZvaWQgcG9seTNfd29yZF9tdWwoY3J5cHRvX3dvcmRfdCAqb3V0X3MsIGNyeXB0b193b3Jk
X3QgKm91dF9hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvX3dvcmRf
dCBzMSwgY29uc3QgY3J5cHRvX3dvcmRfdCBhMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNyeXB0b193b3JkX3QgczIsIGNvbnN0IGNyeXB0b193b3JkX3QgYTIpIHsKKyAgKm91
dF9hID0gYTEgJiBhMjsKKyAgKm91dF9zID0gKHMxIF4gczIpICYgKm91dF9hOworfQorCisvLyBw
b2x5M193b3JkX2FkZCBzZXRzICh8b3V0X3N8LCB8b3V0X2F8KSB0byAofHMxfCwgfGExfCkgKyAo
fHMyfCwgfGEyfCkuCitzdGF0aWMgdm9pZCBwb2x5M193b3JkX2FkZChjcnlwdG9fd29yZF90ICpv
dXRfcywgY3J5cHRvX3dvcmRfdCAqb3V0X2EsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjcnlwdG9fd29yZF90IHMxLCBjb25zdCBjcnlwdG9fd29yZF90IGExLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvX3dvcmRfdCBzMiwgY29uc3QgY3J5cHRvX3dv
cmRfdCBhMikgeworICBjb25zdCBjcnlwdG9fd29yZF90IHQgPSBzMSBeIGEyOworICAqb3V0X3Mg
PSB0ICYgKHMyIF4gYTEpOworICAqb3V0X2EgPSAoYTEgXiBhMikgfCAodCBeIHMyKTsKK30KKwor
Ly8gcG9seTNfd29yZF9zdWIgc2V0cyAofG91dF9zfCwgfG91dF9hfCkgdG8gKHxzMXwsIHxhMXwp
IC0gKHxzMnwsIHxhMnwpLgorc3RhdGljIHZvaWQgcG9seTNfd29yZF9zdWIoY3J5cHRvX3dvcmRf
dCAqb3V0X3MsIGNyeXB0b193b3JkX3QgKm91dF9hLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY3J5cHRvX3dvcmRfdCBzMSwgY29uc3QgY3J5cHRvX3dvcmRfdCBhMSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0b193b3JkX3QgczIsIGNvbnN0IGNyeXB0
b193b3JkX3QgYTIpIHsKKyAgY29uc3QgY3J5cHRvX3dvcmRfdCB0ID0gYTEgXiBhMjsKKyAgKm91
dF9zID0gKHMxIF4gYTIpICYgKHQgXiBzMik7CisgICpvdXRfYSA9IHQgfCAoczEgXiBzMik7Cit9
CisKKy8vIGxzYl90b19hbGwgcmVwbGljYXRlcyB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQgYml0IG9m
IHx2fCB0byBhbGwgYml0cyBvZiB0aGUKKy8vIHdvcmQuIFRoaXMgaXMgdXNlZCBpbiBiaXQtc2xp
Y2luZyBvcGVyYXRpb25zIHRvIG1ha2UgYSB2ZWN0b3IgZnJvbSBhIGZpeGVkCisvLyB2YWx1ZS4K
K3N0YXRpYyBjcnlwdG9fd29yZF90IGxzYl90b19hbGwoY3J5cHRvX3dvcmRfdCB2KSB7IHJldHVy
biAwdSAtICh2ICYgMSk7IH0KKworLy8gcG9seTNfbXVsX2NvbnN0IHNldHMgfHB8IHRvIHxwfMOX
bSwgd2hlcmUgbSA9IChtcywgbWEpLgorc3RhdGljIHZvaWQgcG9seTNfbXVsX2NvbnN0KHN0cnVj
dCBwb2x5MyAqcCwgY3J5cHRvX3dvcmRfdCBtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcnlwdG9fd29yZF90IG1hKSB7CisgIG1zID0gbHNiX3RvX2FsbChtcyk7CisgIG1hID0gbHNi
X3RvX2FsbChtYSk7CisKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXT1JEU19QRVJfUE9MWTsg
aSsrKSB7CisgICAgcG9seTNfd29yZF9tdWwoJnAtPnMudltpXSwgJnAtPmEudltpXSwgcC0+cy52
W2ldLCBwLT5hLnZbaV0sIG1zLCBtYSk7CisgIH0KK30KKworLy8gcG9seTNfcm90cl9jb25zdHRp
bWUgcmlnaHQtcm90YXRlcyB8cHwgYnkgfGJpdHN8IGluIGNvbnN0YW50LXRpbWUuCitzdGF0aWMg
dm9pZCBwb2x5M19yb3RyX2NvbnN0dGltZShzdHJ1Y3QgcG9seTMgKnAsIHNpemVfdCBiaXRzKSB7
CisgIGFzc2VydChiaXRzIDw9IE4pOworICBIUlNTX3BvbHkyX3JvdHJfY29uc3R0aW1lKCZwLT5z
LCBiaXRzKTsKKyAgSFJTU19wb2x5Ml9yb3RyX2NvbnN0dGltZSgmcC0+YSwgYml0cyk7Cit9CisK
Ky8vIHBvbHkzX2ZtYWRkIHNldHMgfG91dHwgdG8gfG91dHwgLSB8aW58w5dtLCB3aGVyZSBtIGlz
IChtcywgbWEpLgorc3RhdGljIHZvaWQgcG9seTNfZm1zdWIoc3RydWN0IHBvbHkzICpSRVNUUklD
VCBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcG9seTMgKlJFU1RS
SUNUIGluLCBjcnlwdG9fd29yZF90IG1zLAorICAgICAgICAgICAgICAgICAgICAgICAgY3J5cHRv
X3dvcmRfdCBtYSkgeworICBjcnlwdG9fd29yZF90IHByb2R1Y3RfcywgcHJvZHVjdF9hOworICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IFdPUkRTX1BFUl9QT0xZOyBpKyspIHsKKyAgICBwb2x5M193
b3JkX211bCgmcHJvZHVjdF9zLCAmcHJvZHVjdF9hLCBpbi0+cy52W2ldLCBpbi0+YS52W2ldLCBt
cywgbWEpOworICAgIHBvbHkzX3dvcmRfc3ViKCZvdXQtPnMudltpXSwgJm91dC0+YS52W2ldLCBv
dXQtPnMudltpXSwgb3V0LT5hLnZbaV0sCisgICAgICAgICAgICAgICAgICAgcHJvZHVjdF9zLCBw
cm9kdWN0X2EpOworICB9Cit9CisKKy8vIGZpbmFsX2JpdF90b19hbGwgcmVwbGljYXRlcyB0aGUg
Yml0IGluIHRoZSBmaW5hbCBwb3NpdGlvbiBvZiB0aGUgbGFzdCB3b3JkIHRvCisvLyBhbGwgdGhl
IGJpdHMgaW4gdGhlIHdvcmQuCitzdGF0aWMgY3J5cHRvX3dvcmRfdCBmaW5hbF9iaXRfdG9fYWxs
KGNyeXB0b193b3JkX3QgdikgeworICByZXR1cm4gbHNiX3RvX2FsbCh2ID4+IChCSVRTX0lOX0xB
U1RfV09SRCAtIDEpKTsKK30KKworLy8gcG9seTNfdG9wX2JpdHNfYXJlX2NsZWFyIHJldHVybnMg
b25lIGlmZiB0aGUgZXh0cmEgYml0cyBpbiB0aGUgZmluYWwgd29yZHMgb2YKKy8vIHxwfCBhcmUg
emVyby4KK09QRU5TU0xfVU5VU0VEIHN0YXRpYyBpbnQgcG9seTNfdG9wX2JpdHNfYXJlX2NsZWFy
KGNvbnN0IHN0cnVjdCBwb2x5MyAqcCkgeworICByZXR1cm4gcG9seTJfdG9wX2JpdHNfYXJlX2Ns
ZWFyKCZwLT5zKSAmJiBwb2x5Ml90b3BfYml0c19hcmVfY2xlYXIoJnAtPmEpOworfQorCisvLyBw
b2x5M19tb2RfcGhpTiByZWR1Y2VzIHxwfCBieSDOpihOKS4KK3N0YXRpYyB2b2lkIHBvbHkzX21v
ZF9waGlOKHN0cnVjdCBwb2x5MyAqcCkgeworICAvLyBJbiBvcmRlciB0byByZWR1Y2UgYnkgzqYo
Tikgd2Ugc3VidHJhY3QgYnkgdGhlIHZhbHVlIG9mIHRoZSBncmVhdGVzdAorICAvLyBjb2VmZmlj
aWVudC4KKyAgY29uc3QgY3J5cHRvX3dvcmRfdCBmYWN0b3JfcyA9IGZpbmFsX2JpdF90b19hbGwo
cC0+cy52W1dPUkRTX1BFUl9QT0xZIC0gMV0pOworICBjb25zdCBjcnlwdG9fd29yZF90IGZhY3Rv
cl9hID0gZmluYWxfYml0X3RvX2FsbChwLT5hLnZbV09SRFNfUEVSX1BPTFkgLSAxXSk7CisKKyAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBXT1JEU19QRVJfUE9MWTsgaSsrKSB7CisgICAgcG9seTNf
d29yZF9zdWIoJnAtPnMudltpXSwgJnAtPmEudltpXSwgcC0+cy52W2ldLCBwLT5hLnZbaV0sIGZh
Y3Rvcl9zLAorICAgICAgICAgICAgICAgICAgIGZhY3Rvcl9hKTsKKyAgfQorCisgIHBvbHkyX2Ns
ZWFyX3RvcF9iaXRzKCZwLT5zKTsKKyAgcG9seTJfY2xlYXJfdG9wX2JpdHMoJnAtPmEpOworfQor
CitzdGF0aWMgdm9pZCBwb2x5M19jc3dhcChzdHJ1Y3QgcG9seTMgKmEsIHN0cnVjdCBwb2x5MyAq
YiwgY3J5cHRvX3dvcmRfdCBzd2FwKSB7CisgIHBvbHkyX2Nzd2FwKCZhLT5zLCAmYi0+cywgc3dh
cCk7CisgIHBvbHkyX2Nzd2FwKCZhLT5hLCAmYi0+YSwgc3dhcCk7Cit9CisKK3N0YXRpYyB2b2lk
IHBvbHkzX2xzaGlmdDEoc3RydWN0IHBvbHkzICpwKSB7CisgIHBvbHkyX2xzaGlmdDEoJnAtPnMp
OworICBwb2x5Ml9sc2hpZnQxKCZwLT5hKTsKK30KKworc3RhdGljIHZvaWQgcG9seTNfcnNoaWZ0
MShzdHJ1Y3QgcG9seTMgKnApIHsKKyAgcG9seTJfcnNoaWZ0MSgmcC0+cyk7CisgIHBvbHkyX3Jz
aGlmdDEoJnAtPmEpOworfQorCisvLyBwb2x5M19zcGFuIHJlcHJlc2VudHMgYSBwb2ludGVyIGlu
dG8gYSBwb2x5My4KK3N0cnVjdCBwb2x5M19zcGFuIHsKKyAgY3J5cHRvX3dvcmRfdCAqczsKKyAg
Y3J5cHRvX3dvcmRfdCAqYTsKK307CisKKy8vIHBvbHkzX3NwYW5fYWRkIGFkZHMgfG58IHdvcmRz
IG9mIHZhbHVlcyBmcm9tIHxhfCBhbmQgfGJ8IGFuZCB3cml0ZXMgdGhlCisvLyByZXN1bHQgdG8g
fG91dHwuCitzdGF0aWMgdm9pZCBwb2x5M19zcGFuX2FkZChjb25zdCBzdHJ1Y3QgcG9seTNfc3Bh
biAqb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBvbHkzX3Nw
YW4gKmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcG9seTNfc3Bh
biAqYiwgc2l6ZV90IG4pIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAg
ICBwb2x5M193b3JkX2FkZCgmb3V0LT5zW2ldLCAmb3V0LT5hW2ldLCBhLT5zW2ldLCBhLT5hW2ld
LCBiLT5zW2ldLCBiLT5hW2ldKTsKKyAgfQorfQorCisvLyBwb2x5M19zcGFuX3N1YiBzdWJ0cmFj
dHMgfG58IHdvcmRzIG9mIHxifCBmcm9tIHxufCB3b3JkcyBvZiB8YXwuCitzdGF0aWMgdm9pZCBw
b2x5M19zcGFuX3N1Yihjb25zdCBzdHJ1Y3QgcG9seTNfc3BhbiAqYSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwb2x5M19zcGFuICpiLCBzaXplX3QgbikgeworICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG47IGkrKykgeworICAgIHBvbHkzX3dvcmRfc3ViKCZhLT5z
W2ldLCAmYS0+YVtpXSwgYS0+c1tpXSwgYS0+YVtpXSwgYi0+c1tpXSwgYi0+YVtpXSk7CisgIH0K
K30KKworLy8gcG9seTNfbXVsX2F1eCBpcyBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IG11bHRp
cGxpZXMgfG58IHdvcmRzIGZyb20gfGF8IGFuZAorLy8gfGJ8IGFuZCB3cml0ZXMgMsOXfG58IHdv
cmRzIHRvIHxvdXR8LiBFYWNoIGNhbGwgdXNlcyAyKmNlaWwobi8yKSBlbGVtZW50cyBvZgorLy8g
fHNjcmF0Y2h8IGFuZCB0aGUgZnVuY3Rpb24gcmVjdXJzZXMsIGV4Y2VwdCBpZiB8bnwgPT0gMSwg
d2hlbiB8c2NyYXRjaHwgaXNuJ3QKKy8vIHVzZWQgYW5kIHRoZSByZWN1cnNpb24gc3RvcHMuIEZv
ciB8bnwgaW4gezExLCAyMn0sIHRoZSB0cmFuc2l0aXZlIHRvdGFsCisvLyBhbW91bnQgb2YgfHNj
cmF0Y2h8IG5lZWRlZCBoYXBwZW5zIHRvIGJlIDJuKzIuCitzdGF0aWMgdm9pZCBwb2x5M19tdWxf
YXV4KGNvbnN0IHN0cnVjdCBwb2x5M19zcGFuICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCBwb2x5M19zcGFuICpzY3JhdGNoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgcG9seTNfc3BhbiAqYSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgc3RydWN0IHBvbHkzX3NwYW4gKmIsIHNpemVfdCBuKSB7CisgIGlmIChuID09
IDEpIHsKKyAgICBjcnlwdG9fd29yZF90IHJfc19sb3cgPSAwLCByX3NfaGlnaCA9IDAsIHJfYV9s
b3cgPSAwLCByX2FfaGlnaCA9IDA7CisgICAgY3J5cHRvX3dvcmRfdCBiX3MgPSBiLT5zWzBdLCBi
X2EgPSBiLT5hWzBdOworICAgIGNvbnN0IGNyeXB0b193b3JkX3QgYV9zID0gYS0+c1swXSwgYV9h
ID0gYS0+YVswXTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQklUU19QRVJfV09SRDsg
aSsrKSB7CisgICAgICAvLyBNdWx0aXBseSAocywgYSkgYnkgdGhlIG5leHQgdmFsdWUgZnJvbSAo
Yl9zLCBiX2EpLgorICAgICAgY3J5cHRvX3dvcmRfdCBtX3MsIG1fYTsKKyAgICAgIHBvbHkzX3dv
cmRfbXVsKCZtX3MsICZtX2EsIGFfcywgYV9hLCBsc2JfdG9fYWxsKGJfcyksIGxzYl90b19hbGwo
Yl9hKSk7CisgICAgICBiX3MgPj49IDE7CisgICAgICBiX2EgPj49IDE7CisKKyAgICAgIGlmIChp
ID09IDApIHsKKyAgICAgICAgLy8gU3BlY2lhbCBjYXNlIG90aGVyd2lzZSB0aGUgY29kZSB0cmll
cyB0byBzaGlmdCBieSBCSVRTX1BFUl9XT1JECisgICAgICAgIC8vIGJlbG93LCB3aGljaCBpcyB1
bmRlZmluZWQuCisgICAgICAgIHJfc19sb3cgPSBtX3M7CisgICAgICAgIHJfYV9sb3cgPSBtX2E7
CisgICAgICAgIGNvbnRpbnVlOworICAgICAgfQorCisgICAgICAvLyBTaGlmdCB0aGUgbXVsdGlw
bGljYXRpb24gcmVzdWx0IHRvIHRoZSBjb3JyZWN0IHBvc2l0aW9uLgorICAgICAgY29uc3QgY3J5
cHRvX3dvcmRfdCBtX3NfbG93ID0gbV9zIDw8IGk7CisgICAgICBjb25zdCBjcnlwdG9fd29yZF90
IG1fc19oaWdoID0gbV9zID4+IChCSVRTX1BFUl9XT1JEIC0gaSk7CisgICAgICBjb25zdCBjcnlw
dG9fd29yZF90IG1fYV9sb3cgPSBtX2EgPDwgaTsKKyAgICAgIGNvbnN0IGNyeXB0b193b3JkX3Qg
bV9hX2hpZ2ggPSBtX2EgPj4gKEJJVFNfUEVSX1dPUkQgLSBpKTsKKworICAgICAgLy8gQWRkIGlu
dG8gdGhlIHJlc3VsdC4KKyAgICAgIHBvbHkzX3dvcmRfYWRkKCZyX3NfbG93LCAmcl9hX2xvdywg
cl9zX2xvdywgcl9hX2xvdywgbV9zX2xvdywgbV9hX2xvdyk7CisgICAgICBwb2x5M193b3JkX2Fk
ZCgmcl9zX2hpZ2gsICZyX2FfaGlnaCwgcl9zX2hpZ2gsIHJfYV9oaWdoLCBtX3NfaGlnaCwKKyAg
ICAgICAgICAgICAgICAgICAgIG1fYV9oaWdoKTsKKyAgICB9CisKKyAgICBvdXQtPnNbMF0gPSBy
X3NfbG93OworICAgIG91dC0+c1sxXSA9IHJfc19oaWdoOworICAgIG91dC0+YVswXSA9IHJfYV9s
b3c7CisgICAgb3V0LT5hWzFdID0gcl9hX2hpZ2g7CisgICAgcmV0dXJuOworICB9CisKKyAgLy8g
S2FyYXRzdWJhIG11bHRpcGxpY2F0aW9uLgorICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcv
d2lraS9LYXJhdHN1YmFfYWxnb3JpdGhtCisKKyAgLy8gV2hlbiB8bnwgaXMgb2RkLCB0aGUgdHdv
ICJoYWx2ZXMiIHdpbGwgaGF2ZSBkaWZmZXJlbnQgbGVuZ3Rocy4gVGhlIGZpcnN0CisgIC8vIGlz
IGFsd2F5cyB0aGUgc21hbGxlci4KKyAgY29uc3Qgc2l6ZV90IGxvd19sZW4gPSBuIC8gMjsKKyAg
Y29uc3Qgc2l6ZV90IGhpZ2hfbGVuID0gbiAtIGxvd19sZW47CisgIGNvbnN0IHN0cnVjdCBwb2x5
M19zcGFuIGFfaGlnaCA9IHsmYS0+c1tsb3dfbGVuXSwgJmEtPmFbbG93X2xlbl19OworICBjb25z
dCBzdHJ1Y3QgcG9seTNfc3BhbiBiX2hpZ2ggPSB7JmItPnNbbG93X2xlbl0sICZiLT5hW2xvd19s
ZW5dfTsKKworICAvLyBTdG9yZSBhXzEgKyBhXzAgaW4gdGhlIGZpcnN0IGhhbGYgb2YgfG91dHwg
YW5kIGJfMSArIGJfMCBpbiB0aGUgc2Vjb25kCisgIC8vIGhhbGYuCisgIGNvbnN0IHN0cnVjdCBw
b2x5M19zcGFuIGFfY3Jvc3Nfc3VtID0gKm91dDsKKyAgY29uc3Qgc3RydWN0IHBvbHkzX3NwYW4g
Yl9jcm9zc19zdW0gPSB7Jm91dC0+c1toaWdoX2xlbl0sICZvdXQtPmFbaGlnaF9sZW5dfTsKKyAg
cG9seTNfc3Bhbl9hZGQoJmFfY3Jvc3Nfc3VtLCBhLCAmYV9oaWdoLCBsb3dfbGVuKTsKKyAgcG9s
eTNfc3Bhbl9hZGQoJmJfY3Jvc3Nfc3VtLCBiLCAmYl9oaWdoLCBsb3dfbGVuKTsKKyAgaWYgKGhp
Z2hfbGVuICE9IGxvd19sZW4pIHsKKyAgICBhX2Nyb3NzX3N1bS5zW2xvd19sZW5dID0gYV9oaWdo
LnNbbG93X2xlbl07CisgICAgYV9jcm9zc19zdW0uYVtsb3dfbGVuXSA9IGFfaGlnaC5hW2xvd19s
ZW5dOworICAgIGJfY3Jvc3Nfc3VtLnNbbG93X2xlbl0gPSBiX2hpZ2guc1tsb3dfbGVuXTsKKyAg
ICBiX2Nyb3NzX3N1bS5hW2xvd19sZW5dID0gYl9oaWdoLmFbbG93X2xlbl07CisgIH0KKworICBj
b25zdCBzdHJ1Y3QgcG9seTNfc3BhbiBjaGlsZF9zY3JhdGNoID0geyZzY3JhdGNoLT5zWzIgKiBo
aWdoX2xlbl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNj
cmF0Y2gtPmFbMiAqIGhpZ2hfbGVuXX07CisgIGNvbnN0IHN0cnVjdCBwb2x5M19zcGFuIG91dF9t
aWQgPSB7Jm91dC0+c1tsb3dfbGVuXSwgJm91dC0+YVtsb3dfbGVuXX07CisgIGNvbnN0IHN0cnVj
dCBwb2x5M19zcGFuIG91dF9oaWdoID0geyZvdXQtPnNbMiAqIGxvd19sZW5dLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0LT5hWzIgKiBsb3dfbGVuXX07CisKKyAg
Ly8gQ2FsY3VsYXRlIChhXzEgKyBhXzApIMOXIChiXzEgKyBiXzApIGFuZCB3cml0ZSB0byBzY3Jh
dGNoIGJ1ZmZlci4KKyAgcG9seTNfbXVsX2F1eChzY3JhdGNoLCAmY2hpbGRfc2NyYXRjaCwgJmFf
Y3Jvc3Nfc3VtLCAmYl9jcm9zc19zdW0sIGhpZ2hfbGVuKTsKKyAgLy8gQ2FsY3VsYXRlIGFfMSDD
lyBiXzEuCisgIHBvbHkzX211bF9hdXgoJm91dF9oaWdoLCAmY2hpbGRfc2NyYXRjaCwgJmFfaGln
aCwgJmJfaGlnaCwgaGlnaF9sZW4pOworICAvLyBDYWxjdWxhdGUgYV8wIMOXIGJfMC4KKyAgcG9s
eTNfbXVsX2F1eChvdXQsICZjaGlsZF9zY3JhdGNoLCBhLCBiLCBsb3dfbGVuKTsKKworICAvLyBT
dWJ0cmFjdCB0aG9zZSBsYXN0IHR3byBwcm9kdWN0cyBmcm9tIHRoZSBmaXJzdC4KKyAgcG9seTNf
c3Bhbl9zdWIoc2NyYXRjaCwgb3V0LCBsb3dfbGVuICogMik7CisgIHBvbHkzX3NwYW5fc3ViKHNj
cmF0Y2gsICZvdXRfaGlnaCwgaGlnaF9sZW4gKiAyKTsKKworICAvLyBBZGQgdGhlIG1pZGRsZSBw
cm9kdWN0IGludG8gdGhlIG91dHB1dC4KKyAgcG9seTNfc3Bhbl9hZGQoJm91dF9taWQsICZvdXRf
bWlkLCBzY3JhdGNoLCBoaWdoX2xlbiAqIDIpOworfQorCisvLyBIUlNTX3BvbHkzX211bCBzZXRz
IHwqb3V0fCB0byB8eHzDl3x5fCBtb2QgzqYoTikuCit2b2lkIEhSU1NfcG9seTNfbXVsKHN0cnVj
dCBwb2x5MyAqb3V0LCBjb25zdCBzdHJ1Y3QgcG9seTMgKngsCisgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHN0cnVjdCBwb2x5MyAqeSkgeworICBjcnlwdG9fd29yZF90IHByb2Rfc1tXT1JEU19Q
RVJfUE9MWSAqIDJdOworICBjcnlwdG9fd29yZF90IHByb2RfYVtXT1JEU19QRVJfUE9MWSAqIDJd
OworICBjcnlwdG9fd29yZF90IHNjcmF0Y2hfc1tXT1JEU19QRVJfUE9MWSAqIDIgKyAyXTsKKyAg
Y3J5cHRvX3dvcmRfdCBzY3JhdGNoX2FbV09SRFNfUEVSX1BPTFkgKiAyICsgMl07CisgIGNvbnN0
IHN0cnVjdCBwb2x5M19zcGFuIHByb2Rfc3BhbiA9IHtwcm9kX3MsIHByb2RfYX07CisgIGNvbnN0
IHN0cnVjdCBwb2x5M19zcGFuIHNjcmF0Y2hfc3BhbiA9IHtzY3JhdGNoX3MsIHNjcmF0Y2hfYX07
CisgIGNvbnN0IHN0cnVjdCBwb2x5M19zcGFuIHhfc3BhbiA9IHsoY3J5cHRvX3dvcmRfdCAqKXgt
PnMudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcnlwdG9fd29yZF90
ICopeC0+YS52fTsKKyAgY29uc3Qgc3RydWN0IHBvbHkzX3NwYW4geV9zcGFuID0geyhjcnlwdG9f
d29yZF90ICopeS0+cy52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNy
eXB0b193b3JkX3QgKil5LT5hLnZ9OworCisgIHBvbHkzX211bF9hdXgoJnByb2Rfc3BhbiwgJnNj
cmF0Y2hfc3BhbiwgJnhfc3BhbiwgJnlfc3BhbiwgV09SRFNfUEVSX1BPTFkpOworCisgIC8vIHxw
cm9kfCBuZWVkcyB0byBiZSByZWR1Y2VkIG1vZCAo8J2RpV5uIC0gMSksIHdoaWNoIGp1c3QgaW52
b2x2ZXMgYWRkaW5nIHRoZQorICAvLyB1cHBlci1oYWxmIHRvIHRoZSBsb3dlci1oYWxmLiBIb3dl
dmVyLCBOIGlzIDcwMSwgd2hpY2ggaXNuJ3QgYSBtdWx0aXBsZSBvZgorICAvLyBCSVRTX1BFUl9X
T1JELCBzbyB0aGUgdXBwZXItaGFsZiB2ZWN0b3JzIGFsbCBoYXZlIHRvIGJlIHNoaWZ0ZWQgYmVm
b3JlCisgIC8vIGJlaW5nIGFkZGVkIHRvIHRoZSBsb3dlci1oYWxmLgorICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IFdPUkRTX1BFUl9QT0xZOyBpKyspIHsKKyAgICBjcnlwdG9fd29yZF90IHZfcyA9
IHByb2Rfc1tXT1JEU19QRVJfUE9MWSArIGkgLSAxXSA+PiBCSVRTX0lOX0xBU1RfV09SRDsKKyAg
ICB2X3MgfD0gcHJvZF9zW1dPUkRTX1BFUl9QT0xZICsgaV0gPDwgKEJJVFNfUEVSX1dPUkQgLSBC
SVRTX0lOX0xBU1RfV09SRCk7CisgICAgY3J5cHRvX3dvcmRfdCB2X2EgPSBwcm9kX2FbV09SRFNf
UEVSX1BPTFkgKyBpIC0gMV0gPj4gQklUU19JTl9MQVNUX1dPUkQ7CisgICAgdl9hIHw9IHByb2Rf
YVtXT1JEU19QRVJfUE9MWSArIGldIDw8IChCSVRTX1BFUl9XT1JEIC0gQklUU19JTl9MQVNUX1dP
UkQpOworCisgICAgcG9seTNfd29yZF9hZGQoJm91dC0+cy52W2ldLCAmb3V0LT5hLnZbaV0sIHBy
b2Rfc1tpXSwgcHJvZF9hW2ldLCB2X3MsIHZfYSk7CisgIH0KKworICBwb2x5M19tb2RfcGhpTihv
dXQpOworfQorCisjaWYgZGVmaW5lZChIUlNTX0hBVkVfVkVDVE9SX1VOSVQpICYmICFkZWZpbmVk
KE9QRU5TU0xfQUFSQ0g2NCkKKworLy8gcG9seTNfdmVjX2Nzd2FwIHN3YXBzICh8YV9zfCwgfGFf
YXwpIGFuZCAofGJfc3wsIHxiX2F8KSBpZiB8c3dhcHwgaXMKKy8vIHwweGZmLi5mZnwuIE90aGVy
d2lzZSwgfHN3YXB8IG11c3QgYmUgemVyby4KK3N0YXRpYyBpbmxpbmUgdm9pZCBwb2x5M192ZWNf
Y3N3YXAodmVjX3QgYV9zWzZdLCB2ZWNfdCBhX2FbNl0sIHZlY190IGJfc1s2XSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX3QgYl9hWzZdLCBjb25zdCB2ZWNfdCBzd2Fw
KSB7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgNjsgaSsrKSB7CisgICAgY29uc3QgdmVjX3Qgc3Vt
X3MgPSBzd2FwICYgKGFfc1tpXSBeIGJfc1tpXSk7CisgICAgYV9zW2ldIF49IHN1bV9zOworICAg
IGJfc1tpXSBePSBzdW1fczsKKworICAgIGNvbnN0IHZlY190IHN1bV9hID0gc3dhcCAmIChhX2Fb
aV0gXiBiX2FbaV0pOworICAgIGFfYVtpXSBePSBzdW1fYTsKKyAgICBiX2FbaV0gXj0gc3VtX2E7
CisgIH0KK30KKworLy8gcG9seTNfdmVjX2Ztc3ViIHN1YnRyYWN0cyAofG1zfCwgfG1hfCkgw5cg
KHxiX3N8LCB8Yl9hfCkgZnJvbSAofGFfc3wsIHxhX2F8KS4KK3N0YXRpYyBpbmxpbmUgdm9pZCBw
b2x5M192ZWNfZm1zdWIodmVjX3QgYV9zWzZdLCB2ZWNfdCBhX2FbNl0sIHZlY190IGJfc1s2XSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX3QgYl9hWzZdLCBjb25zdCB2
ZWNfdCBtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjX3Qg
bWEpIHsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA2OyBpKyspIHsKKyAgICAvLyBTZWUgdGhlIGJp
dHNsaWNlIGZvcm11bGEsIGFib3ZlLgorICAgIGNvbnN0IHZlY190IHMgPSBiX3NbaV07CisgICAg
Y29uc3QgdmVjX3QgYSA9IGJfYVtpXTsKKyAgICBjb25zdCB2ZWNfdCBwcm9kdWN0X2EgPSBhICYg
bWE7CisgICAgY29uc3QgdmVjX3QgcHJvZHVjdF9zID0gKHMgXiBtcykgJiBwcm9kdWN0X2E7CisK
KyAgICBjb25zdCB2ZWNfdCBvdXRfcyA9IGFfc1tpXTsKKyAgICBjb25zdCB2ZWNfdCBvdXRfYSA9
IGFfYVtpXTsKKyAgICBjb25zdCB2ZWNfdCB0ID0gb3V0X2EgXiBwcm9kdWN0X2E7CisgICAgYV9z
W2ldID0gKG91dF9zIF4gcHJvZHVjdF9hKSAmICh0IF4gcHJvZHVjdF9zKTsKKyAgICBhX2FbaV0g
PSB0IHwgKG91dF9zIF4gcHJvZHVjdF9zKTsKKyAgfQorfQorCisvLyBwb2x5M19pbnZlcnRfdmVj
IHNldHMgfCpvdXR8IHRvIHxpbnxeLTEsIGkuZS4gc3VjaCB0aGF0IHxvdXR8w5d8aW58ID09IDEg
bW9kCisvLyDOpihOKS4KK3N0YXRpYyB2b2lkIHBvbHkzX2ludmVydF92ZWMoc3RydWN0IHBvbHkz
ICpvdXQsIGNvbnN0IHN0cnVjdCBwb2x5MyAqaW4pIHsKKyAgLy8gU2VlIHRoZSBjb21tZW50IGlu
IHxIUlNTX3BvbHkzX2ludmVydHwgYWJvdXQgdGhpcyBhbGdvcml0aG0uIEluIGFkZGl0aW9uIHRv
CisgIC8vIHRoZSBjaGFuZ2VzIGRlc2NyaWJlZCB0aGVyZSwgdGhpcyBpbXBsZW1lbnRhdGlvbiBh
dHRlbXB0cyB0byB1c2UgdmVjdG9yCisgIC8vIHJlZ2lzdGVycyB0byBzcGVlZCB1cCB0aGUgY29t
cHV0YXRpb24uIEV2ZW4gbm9uLXBvbHkzIHZhcmlhYmxlcyBhcmUgaGVsZCBpbgorICAvLyB2ZWN0
b3JzIHdoZXJlIHBvc3NpYmxlIHRvIG1pbmltaXNlIHRoZSBhbW91bnQgb2YgZGF0YSBtb3ZlbWVu
dCBiZXR3ZWVuCisgIC8vIHRoZSB2ZWN0b3IgYW5kIGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMu
CisKKyAgdmVjX3QgYl9zWzZdLCBiX2FbNl0sIGNfc1s2XSwgY19hWzZdLCBmX3NbNl0sIGZfYVs2
XSwgZ19zWzZdLCBnX2FbNl07CisgIGNvbnN0IHZlY190IGtaZXJvID0gezB9OworICBjb25zdCB2
ZWNfdCBrT25lID0gezF9OworICBzdGF0aWMgY29uc3QgdWludDhfdCBrT25lQnl0ZXNbc2l6ZW9m
KHZlY190KV0gPSB7MX07CisgIHN0YXRpYyBjb25zdCB1aW50OF90IGtCb3R0b21TaXh0eU9uZVtz
aXplb2YodmVjX3QpXSA9IHsKKyAgICAgIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4
ZmYsIDB4ZmYsIDB4MWZ9OworCisgIG1lbXNldChiX3MsIDAsIHNpemVvZihiX3MpKTsKKyAgbWVt
Y3B5KGJfYSwga09uZUJ5dGVzLCBzaXplb2Yoa09uZUJ5dGVzKSk7CisgIG1lbXNldCgmYl9hWzFd
LCAwLCA1ICogc2l6ZW9mKHZlY190KSk7CisKKyAgbWVtc2V0KGNfcywgMCwgc2l6ZW9mKGNfcykp
OworICBtZW1zZXQoY19hLCAwLCBzaXplb2YoY19hKSk7CisKKyAgZl9zWzVdID0ga1plcm87Cisg
IG1lbWNweShmX3MsIGluLT5zLnYsIFdPUkRTX1BFUl9QT0xZICogc2l6ZW9mKGNyeXB0b193b3Jk
X3QpKTsKKyAgZl9hWzVdID0ga1plcm87CisgIG1lbWNweShmX2EsIGluLT5hLnYsIFdPUkRTX1BF
Ul9QT0xZICogc2l6ZW9mKGNyeXB0b193b3JkX3QpKTsKKworICAvLyBTZXQgZyB0byBhbGwgb25l
cy4KKyAgbWVtc2V0KGdfcywgMCwgc2l6ZW9mKGdfcykpOworICBtZW1zZXQoZ19hLCAweGZmLCA1
ICogc2l6ZW9mKHZlY190KSk7CisgIG1lbWNweSgmZ19hWzVdLCBrQm90dG9tU2l4dHlPbmUsIHNp
emVvZihrQm90dG9tU2l4dHlPbmUpKTsKKworICB2ZWNfdCBkZWdfZiA9IHtOIC0gMX0sIGRlZ19n
ID0ge04gLSAxfSwgcm90YXRpb24gPSBrWmVybzsKKyAgdmVjX3QgayA9IGtPbmU7CisgIHZlY190
IGYwcyA9IHswfSwgZjBhID0gezB9OworICB2ZWNfdCBzdGlsbF9nb2luZzsKKyAgbWVtc2V0KCZz
dGlsbF9nb2luZywgMHhmZiwgc2l6ZW9mKHN0aWxsX2dvaW5nKSk7CisKKyAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IDIgKiAoTiAtIDEpIC0gMTsgaSsrKSB7CisgICAgY29uc3QgdmVjX3Qgc19h
ID0gdmVjX2Jyb2FkY2FzdF9iaXQoc3RpbGxfZ29pbmcgJiAoZl9hWzBdICYgZ19hWzBdKSk7Cisg
ICAgY29uc3QgdmVjX3Qgc19zID0KKyAgICAgICAgdmVjX2Jyb2FkY2FzdF9iaXQoc3RpbGxfZ29p
bmcgJiAoKGZfc1swXSBeIGdfc1swXSkgJiBzX2EpKTsKKyAgICBjb25zdCB2ZWNfdCBzaG91bGRf
c3dhcCA9CisgICAgICAgIChzX3MgfCBzX2EpICYgdmVjX2Jyb2FkY2FzdF9iaXQxNShkZWdfZiAt
IGRlZ19nKTsKKworICAgIHBvbHkzX3ZlY19jc3dhcChmX3MsIGZfYSwgZ19zLCBnX2EsIHNob3Vs
ZF9zd2FwKTsKKyAgICBwb2x5M192ZWNfZm1zdWIoZl9zLCBmX2EsIGdfcywgZ19hLCBzX3MsIHNf
YSk7CisgICAgcG9seTNfdmVjX3JzaGlmdDEoZl9zLCBmX2EpOworCisgICAgcG9seTNfdmVjX2Nz
d2FwKGJfcywgYl9hLCBjX3MsIGNfYSwgc2hvdWxkX3N3YXApOworICAgIHBvbHkzX3ZlY19mbXN1
YihiX3MsIGJfYSwgY19zLCBjX2EsIHNfcywgc19hKTsKKyAgICBwb2x5M192ZWNfbHNoaWZ0MShj
X3MsIGNfYSk7CisKKyAgICBjb25zdCB2ZWNfdCBkZWdfc3VtID0gc2hvdWxkX3N3YXAgJiAoZGVn
X2YgXiBkZWdfZyk7CisgICAgZGVnX2YgXj0gZGVnX3N1bTsKKyAgICBkZWdfZyBePSBkZWdfc3Vt
OworCisgICAgZGVnX2YgLT0ga09uZTsKKyAgICBzdGlsbF9nb2luZyAmPSB+dmVjX2Jyb2FkY2Fz
dF9iaXQxNShkZWdfZiAtIGtPbmUpOworCisgICAgY29uc3QgdmVjX3QgZjBfaXNfbm9uemVybyA9
IHZlY19icm9hZGNhc3RfYml0KGZfc1swXSB8IGZfYVswXSk7CisgICAgLy8gfGYwX2lzX25vbnpl
cm98IGltcGxpZXMgfHN0aWxsX2dvaW5nfC4KKyAgICByb3RhdGlvbiBePSBmMF9pc19ub256ZXJv
ICYgKGsgXiByb3RhdGlvbik7CisgICAgayArPSBrT25lOworCisgICAgY29uc3QgdmVjX3QgZjBz
X3N1bSA9IGYwX2lzX25vbnplcm8gJiAoZl9zWzBdIF4gZjBzKTsKKyAgICBmMHMgXj0gZjBzX3N1
bTsKKyAgICBjb25zdCB2ZWNfdCBmMGFfc3VtID0gZjBfaXNfbm9uemVybyAmIChmX2FbMF0gXiBm
MGEpOworICAgIGYwYSBePSBmMGFfc3VtOworICB9CisKKyAgY3J5cHRvX3dvcmRfdCByb3RhdGlv
bl93b3JkID0gdmVjX2dldF93b3JkKHJvdGF0aW9uLCAwKTsKKyAgcm90YXRpb25fd29yZCAtPSBO
ICYgY29uc3RhbnRfdGltZV9sdF93KE4sIHJvdGF0aW9uX3dvcmQpOworICBtZW1jcHkob3V0LT5z
LnYsIGJfcywgV09SRFNfUEVSX1BPTFkgKiBzaXplb2YoY3J5cHRvX3dvcmRfdCkpOworICBtZW1j
cHkob3V0LT5hLnYsIGJfYSwgV09SRFNfUEVSX1BPTFkgKiBzaXplb2YoY3J5cHRvX3dvcmRfdCkp
OworICBhc3NlcnQocG9seTNfdG9wX2JpdHNfYXJlX2NsZWFyKG91dCkpOworICBwb2x5M19yb3Ry
X2NvbnN0dGltZShvdXQsIHJvdGF0aW9uX3dvcmQpOworICBwb2x5M19tdWxfY29uc3Qob3V0LCB2
ZWNfZ2V0X3dvcmQoZjBzLCAwKSwgdmVjX2dldF93b3JkKGYwYSwgMCkpOworICBwb2x5M19tb2Rf
cGhpTihvdXQpOworfQorCisjZW5kaWYgIC8vIEhSU1NfSEFWRV9WRUNUT1JfVU5JVAorCisvLyBI
UlNTX3BvbHkzX2ludmVydCBzZXRzIHwqb3V0fCB0byB8aW58Xi0xLCBpLmUuIHN1Y2ggdGhhdCB8
b3V0fMOXfGlufCA9PSAxIG1vZAorLy8gzqYoTikuCit2b2lkIEhSU1NfcG9seTNfaW52ZXJ0KHN0
cnVjdCBwb2x5MyAqb3V0LCBjb25zdCBzdHJ1Y3QgcG9seTMgKmluKSB7CisgIC8vIFRoZSB2ZWN0
b3IgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIHNlZW1zIHNsaWdodGx5IHNsb3dlciBvbiBBQXJj
aDY0LCBidXQKKyAgLy8gaXMgdXNlZnVsIG9uIEFSTXY3IGFuZCB4ODYtNjQuCisjaWYgZGVmaW5l
ZChIUlNTX0hBVkVfVkVDVE9SX1VOSVQpICYmICFkZWZpbmVkKE9QRU5TU0xfQUFSQ0g2NCkKKyAg
aWYgKHZlY19jYXBhYmxlKCkpIHsKKyAgICBwb2x5M19pbnZlcnRfdmVjKG91dCwgaW4pOworICAg
IHJldHVybjsKKyAgfQorI2VuZGlmCisKKyAgLy8gVGhpcyBhbGdvcml0aG0gbW9zdGx5IGZvbGxv
d3MgYWxnb3JpdGhtIDEwIGluIHRoZSBwYXBlci4gU29tZSBjaGFuZ2VzOgorICAvLyAgIDEpIGsg
c2hvdWxkIHN0YXJ0IGF0IHplcm8sIG5vdCBvbmUuIEluIHRoZSBjb2RlIGJlbG93IGsgaXMgb21p
dHRlZCBhbmQKKyAgLy8gICAgICB0aGUgbG9vcCBjb3VudGVyLCB8aXwsIGlzIHVzZWQgaW5zdGVh
ZC4KKyAgLy8gICAyKSBUaGUgcm90YXRpb24gY291bnQgaXMgY29uZGl0aW9uYWxseSB1cGRhdGVk
IHRvIGhhbmRsZSB0cmFpbGluZyB6ZXJvCisgIC8vICAgICAgY29lZmZpY2llbnRzLgorICAvLyBU
aGUgYmVzdCBleHBsYW5hdGlvbiBmb3Igd2h5IGl0IHdvcmtzIGlzIGluIHRoZSAiV2h5IGl0IHdv
cmtzIiBzZWN0aW9uIG9mCisgIC8vIFtOVFJVVE4xNF0uCisKKyAgc3RydWN0IHBvbHkzIGMsIGYs
IGc7CisgIE9QRU5TU0xfbWVtY3B5KCZmLCBpbiwgc2l6ZW9mKGYpKTsKKworICAvLyBTZXQgZyB0
byBhbGwgb25lcy4KKyAgT1BFTlNTTF9tZW1zZXQoJmcucywgMCwgc2l6ZW9mKHN0cnVjdCBwb2x5
MikpOworICBPUEVOU1NMX21lbXNldCgmZy5hLCAweGZmLCBzaXplb2Yoc3RydWN0IHBvbHkyKSk7
CisgIGcuYS52W1dPUkRTX1BFUl9QT0xZIC0gMV0gPj49IEJJVFNfUEVSX1dPUkQgLSBCSVRTX0lO
X0xBU1RfV09SRDsKKworICBzdHJ1Y3QgcG9seTMgKmIgPSBvdXQ7CisgIHBvbHkzX3plcm8oYik7
CisgIHBvbHkzX3plcm8oJmMpOworICAvLyBTZXQgYiB0byBvbmUuCisgIGItPmEudlswXSA9IDE7
CisKKyAgY3J5cHRvX3dvcmRfdCBkZWdfZiA9IE4gLSAxLCBkZWdfZyA9IE4gLSAxLCByb3RhdGlv
biA9IDA7CisgIGNyeXB0b193b3JkX3QgZjBzID0gMCwgZjBhID0gMDsKKyAgY3J5cHRvX3dvcmRf
dCBzdGlsbF9nb2luZyA9IENPTlNUVElNRV9UUlVFX1c7CisKKyAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IDIgKiAoTiAtIDEpIC0gMTsgaSsrKSB7CisgICAgY29uc3QgY3J5cHRvX3dvcmRfdCBz
X2EgPSBsc2JfdG9fYWxsKAorICAgICAgICBzdGlsbF9nb2luZyAmIChmLmEudlswXSAmIGcuYS52
WzBdKSk7CisgICAgY29uc3QgY3J5cHRvX3dvcmRfdCBzX3MgPSBsc2JfdG9fYWxsKAorICAgICAg
ICBzdGlsbF9nb2luZyAmICgoZi5zLnZbMF0gXiBnLnMudlswXSkgJiBzX2EpKTsKKyAgICBjb25z
dCBjcnlwdG9fd29yZF90IHNob3VsZF9zd2FwID0KKyAgICAgICAgKHNfcyB8IHNfYSkgJiBjb25z
dGFudF90aW1lX2x0X3coZGVnX2YsIGRlZ19nKTsKKworICAgIHBvbHkzX2Nzd2FwKCZmLCAmZywg
c2hvdWxkX3N3YXApOworICAgIHBvbHkzX2Nzd2FwKGIsICZjLCBzaG91bGRfc3dhcCk7CisKKyAg
ICBjb25zdCBjcnlwdG9fd29yZF90IGRlZ19zdW0gPSBzaG91bGRfc3dhcCAmIChkZWdfZiBeIGRl
Z19nKTsKKyAgICBkZWdfZiBePSBkZWdfc3VtOworICAgIGRlZ19nIF49IGRlZ19zdW07CisgICAg
YXNzZXJ0KGRlZ19nID49IDEpOworCisgICAgcG9seTNfZm1zdWIoJmYsICZnLCBzX3MsIHNfYSk7
CisgICAgcG9seTNfZm1zdWIoYiwgJmMsIHNfcywgc19hKTsKKyAgICBwb2x5M19yc2hpZnQxKCZm
KTsKKyAgICBwb2x5M19sc2hpZnQxKCZjKTsKKworICAgIGRlZ19mLS07CisgICAgY29uc3QgY3J5
cHRvX3dvcmRfdCBmMF9pc19ub256ZXJvID0KKyAgICAgICAgbHNiX3RvX2FsbChmLnMudlswXSkg
fCBsc2JfdG9fYWxsKGYuYS52WzBdKTsKKyAgICAvLyB8ZjBfaXNfbm9uemVyb3wgaW1wbGllcyB8
c3RpbGxfZ29pbmd8LgorICAgIGFzc2VydCghKGYwX2lzX25vbnplcm8gJiYgIXN0aWxsX2dvaW5n
KSk7CisgICAgc3RpbGxfZ29pbmcgJj0gfmNvbnN0YW50X3RpbWVfaXNfemVyb193KGRlZ19mKTsK
KworICAgIHJvdGF0aW9uID0gY29uc3RhbnRfdGltZV9zZWxlY3RfdyhmMF9pc19ub256ZXJvLCBp
LCByb3RhdGlvbik7CisgICAgZjBzID0gY29uc3RhbnRfdGltZV9zZWxlY3RfdyhmMF9pc19ub256
ZXJvLCBmLnMudlswXSwgZjBzKTsKKyAgICBmMGEgPSBjb25zdGFudF90aW1lX3NlbGVjdF93KGYw
X2lzX25vbnplcm8sIGYuYS52WzBdLCBmMGEpOworICB9CisKKyAgcm90YXRpb24rKzsKKyAgcm90
YXRpb24gLT0gTiAmIGNvbnN0YW50X3RpbWVfbHRfdyhOLCByb3RhdGlvbik7CisgIGFzc2VydChw
b2x5M190b3BfYml0c19hcmVfY2xlYXIob3V0KSk7CisgIHBvbHkzX3JvdHJfY29uc3R0aW1lKG91
dCwgcm90YXRpb24pOworICBwb2x5M19tdWxfY29uc3Qob3V0LCBmMHMsIGYwYSk7CisgIHBvbHkz
X21vZF9waGlOKG91dCk7Cit9CisKKy8vIFBvbHlub21pYWxzIGluIFEuCisKKy8vIENvZWZmaWNp
ZW50cyBhcmUgcmVkdWNlZCBtb2QgUS4gKFEgaXMgY2xlYXJseSBub3QgcHJpbWUsIHRoZXJlZm9y
ZSB0aGUKKy8vIGNvZWZmaWNpZW50cyBkbyBub3QgZm9ybSBhIGZpZWxkLikKKyNkZWZpbmUgUSA4
MTkyCisKKy8vIFZFQ1NfUEVSX1BPTFkgaXMgdGhlIG51bWJlciBvZiAxMjgtYml0IHZlY3RvcnMg
bmVlZGVkIHRvIHJlcHJlc2VudCBhCisvLyBwb2x5bm9taWFsLgorI2RlZmluZSBDT0VGRklDSUVO
VFNfUEVSX1ZFQyAoc2l6ZW9mKHZlY190KSAvIHNpemVvZih1aW50MTZfdCkpCisjZGVmaW5lIFZF
Q1NfUEVSX1BPTFkgKChOICsgQ09FRkZJQ0lFTlRTX1BFUl9WRUMgLSAxKSAvIENPRUZGSUNJRU5U
U19QRVJfVkVDKQorCisvLyBwb2x5IHJlcHJlc2VudHMgYSBwb2x5bm9taWFsIHdpdGggY29lZmZp
Y2llbnRzIG1vZCBRLiBOb3RlIHRoYXQsIHdoaWxlIFEgaXMgYQorLy8gcG93ZXIgb2YgdHdvLCB0
aGlzIGRvZXMgbm90IG9wZXJhdGUgaW4gR0YoUSkuIFRoYXQgd291bGQgYmUgYSBiaW5hcnkgZmll
bGQKKy8vIGJ1dCB0aGlzIGlzIHNpbXBseSBtb2QgUS4gVGh1cyB0aGUgY29lZmZpY2llbnRzIGFy
ZSBub3QgYSBmaWVsZC4KKy8vCisvLyBDb2VmZmljaWVudHMgYXJlIG9yZGVyZWQgbGl0dGxlLWVu
ZGlhbiwgdGh1cyB0aGUgY29lZmZpY2llbnQgb2YgeF4wIGlzIHRoZQorLy8gZmlyc3QgZWxlbWVu
dCBvZiB0aGUgYXJyYXkuCitzdHJ1Y3QgcG9seSB7CisjaWYgZGVmaW5lZChIUlNTX0hBVkVfVkVD
VE9SX1VOSVQpCisgIHVuaW9uIHsKKyAgICAvLyBOICsgMyA9IDcwNCwgd2hpY2ggaXMgYSBtdWx0
aXBsZSBvZiA2NCBhbmQgdGh1cyBhbGlnbnMgdGhpbmdzLCBlc3AgZm9yCisgICAgLy8gdGhlIHZl
Y3RvciBjb2RlLgorICAgIHVpbnQxNl90IHZbTiArIDNdOworICAgIHZlY190IHZlY3RvcnNbVkVD
U19QRVJfUE9MWV07CisgIH07CisjZWxzZQorICAvLyBFdmVuIGlmICFIUlNTX0hBVkVfVkVDVE9S
X1VOSVQsIGV4dGVybmFsIGFzc2VtYmx5IG1heSBiZSBjYWxsZWQgdGhhdAorICAvLyByZXF1aXJl
cyBhbGlnbm1lbnQuCisgIGFsaWduYXMoMTYpIHVpbnQxNl90IHZbTiArIDNdOworI2VuZGlmCit9
OworCitPUEVOU1NMX1VOVVNFRCBzdGF0aWMgdm9pZCBwb2x5X3ByaW50KGNvbnN0IHN0cnVjdCBw
b2x5ICpwKSB7CisgIHByaW50ZigiWyIpOworICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgTjsg
aSsrKSB7CisgICAgaWYgKGkpIHsKKyAgICAgIHByaW50ZigiICIpOworICAgIH0KKyAgICBwcmlu
dGYoIiVkIiwgcC0+dltpXSk7CisgIH0KKyAgcHJpbnRmKCJdXG4iKTsKK30KKworI2lmIGRlZmlu
ZWQoSFJTU19IQVZFX1ZFQ1RPUl9VTklUKQorCisvLyBwb2x5X211bF92ZWNfYXV4IGlzIGEgcmVj
dXJzaXZlIGZ1bmN0aW9uIHRoYXQgbXVsdGlwbGllcyB8bnwgd29yZHMgZnJvbSB8YXwKKy8vIGFu
ZCB8YnwgYW5kIHdyaXRlcyAyw5d8bnwgd29yZHMgdG8gfG91dHwuIEVhY2ggY2FsbCB1c2VzIDIq
Y2VpbChuLzIpIGVsZW1lbnRzCisvLyBvZiB8c2NyYXRjaHwgYW5kIHRoZSBmdW5jdGlvbiByZWN1
cnNlcywgZXhjZXB0IGlmIHxufCA8IDMsIHdoZW4gfHNjcmF0Y2h8CisvLyBpc24ndCB1c2VkIGFu
ZCB0aGUgcmVjdXJzaW9uIHN0b3BzLiBJZiB8bnwgPT0gfFZFQ1NfUEVSX1BPTFl8IHRoZW4gfHNj
cmF0Y2h8CisvLyBuZWVkcyAxNzIgZWxlbWVudHMuCitzdGF0aWMgdm9pZCBwb2x5X211bF92ZWNf
YXV4KHZlY190ICpyZXN0cmljdCBvdXQsIHZlY190ICpyZXN0cmljdCBzY3JhdGNoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWNfdCAqcmVzdHJpY3QgYSwgY29uc3QgdmVj
X3QgKnJlc3RyaWN0IGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVf
dCBuKSB7CisgIC8vIEluIFtIUlNTXSwgdGhlIHRlY2huaXF1ZSB0aGV5IHVzZWQgZm9yIHBvbHlu
b21pYWwgbXVsdGlwbGljYXRpb24gaXMKKyAgLy8gZGVzY3JpYmVkOiB0aGV5IHN0YXJ0IHdpdGgg
VG9vbS00IGF0IHRoZSB0b3AgbGV2ZWwgYW5kIHRoZW4gdHdvIGxheWVycyBvZgorICAvLyBLYXJh
dHN1YmEuIEthcmF0c3ViYSBpcyBhIHNwZWNpZmljIGluc3RhbmNlIG9mIHRoZSBnZW5lcmFsIFRv
b23igJNDb29rCisgIC8vIGRlY29tcG9zaXRpb24sIHdoaWNoIHNwbGl0cyBhbiBpbnB1dCBuLXdh
eXMgYW5kIHByb2R1Y2VzIDJuLTEKKyAgLy8gbXVsdGlwbGljYXRpb25zIG9mIHRob3NlIHBhcnRz
LiBTbywgc3RhcnRpbmcgd2l0aCA3MDQgY29lZmZpY2llbnRzIChyb3VuZGVkCisgIC8vIHVwIGZy
b20gNzAxIHRvIGhhdmUgbW9yZSBmYWN0b3JzIG9mIHR3byksIFRvb20tNCBnaXZlcyBzZXZlbgor
ICAvLyBtdWx0aXBsaWNhdGlvbnMgb2YgZGVncmVlLTE3NCBwb2x5bm9taWFscy4gRWFjaCByb3Vu
ZCBvZiBLYXJhdHN1YmEgKHdoaWNoCisgIC8vIGlzIFRvb20tMikgaW5jcmVhc2VzIHRoZSBudW1i
ZXIgb2YgbXVsdGlwbGljYXRpb25zIGJ5IGEgZmFjdG9yIG9mIHRocmVlCisgIC8vIHdoaWxlIGhh
bHZpbmcgdGhlIHNpemUgb2YgdGhlIHZhbHVlcyBiZWluZyBtdWx0aXBsaWVkLiBTbyB0d28gcm91
bmRzIGdpdmVzCisgIC8vIDYzIG11bHRpcGxpY2F0aW9ucyBvZiBkZWdyZWUtNDQgcG9seW5vbWlh
bHMuIFRoZW4gdGhleSAoSSB0aGluaykgZm9ybQorICAvLyB2ZWN0b3JzIGJ5IGdhdGhlcmluZyBh
bGwgNjMgY29lZmZpY2llbnRzIG9mIGVhY2ggcG93ZXIgdG9nZXRoZXIsIGZvciBlYWNoCisgIC8v
IGlucHV0LCBhbmQgZG9pbmcgbW9yZSByb3VuZHMgb2YgS2FyYXRzdWJhIG9uIHRoZSB2ZWN0b3Jz
IHVudGlsIHRoZXkgYm90dG9tLQorICAvLyBvdXQgc29tZXdoZXJlIHdpdGggc2Nob29sYm9vayBt
dWx0aXBsaWNhdGlvbi4KKyAgLy8KKyAgLy8gSSB0cmllZCBzb21ldGhpbmcgbGlrZSB0aGF0IGZv
ciBORU9OLiBORU9OIHZlY3RvcnMgYXJlIDEyOCBiaXRzIHNvIGhvbGQKKyAgLy8gZWlnaHQgY29l
ZmZpY2llbnRzLiBJIHdyb3RlIGEgZnVuY3Rpb24gdGhhdCBkaWQgS2FyYXRzdWJhIG9uIGVpZ2h0
CisgIC8vIG11bHRpcGxpY2F0aW9ucyBhdCB0aGUgc2FtZSB0aW1lLCB1c2luZyBzdWNoIHZlY3Rv
cnMsIGFuZCBhIEdvIHNjcmlwdCB0aGF0CisgIC8vIGRlY29tcG9zZWQgZnJvbSBkZWdyZWUtNzA0
LCB3aXRoIEthcmF0c3ViYSBpbiBub24tdHJhbnNwb3NlZCBmb3JtLCB1bnRpbCBpdAorICAvLyBy
ZWFjaGVkIG11bHRpcGxpY2F0aW9ucyBvZiBkZWdyZWUtNDQuIEl0IGJhdGNoZWQgdXAgdGhvc2Ug
ODEKKyAgLy8gbXVsdGlwbGljYXRpb25zIGludG8gbG90cyBvZiBlaWdodCB3aXRoIGEgc2luZ2xl
IG9uZSBsZWZ0IG92ZXIgKHdoaWNoIHdhcworICAvLyBoYW5kbGVkIGRpcmVjdGx5KS4KKyAgLy8K
KyAgLy8gSXQgd29ya2VkLCBidXQgaXQgd2FzIHNpZ25pZmljYW50bHkgc2xvd2VyIHRoYW4gdGhl
IGR1bWIgYWxnb3JpdGhtIHVzZWQKKyAgLy8gYmVsb3cuIFBvdGVudGlhbGx5IHRoYXQgd2FzIGJl
Y2F1c2UgSSBtaXN1bmRlcnN0b29kIGhvdyBbSFJTU10gZGlkIGl0LCBvcgorICAvLyBiZWNhdXNl
IENsYW5nIGlzIGJhZCBhdCBnZW5lcmF0aW5nIGdvb2QgY29kZSBmcm9tIE5FT04gaW50cmluc2lj
cyBvbiBBUk12Ny4KKyAgLy8gKFdoaWNoIGlzIHRydWU6IHRoZSBjb2RlIGdlbmVyYXRlZCBieSBD
bGFuZyBmb3IgdGhlIGJlbG93IGlzIHByZXR0eSBjcmFwLikKKyAgLy8KKyAgLy8gVGhpcyBhbGdv
cml0aG0gaXMgbXVjaCBzaW1wbGVyLiBJdCBqdXN0IGRvZXMgS2FyYXRzdWJhIGRlY29tcG9zaXRp
b24gYWxsCisgIC8vIHRoZSB3YXkgZG93biBhbmQgbmV2ZXIgdHJhbnNwb3Nlcy4gV2hlbiBpdCBn
ZXRzIGRvd24gdG8gZGVncmVlLTE2IG9yCisgIC8vIGRlZ3JlZS0yNCB2YWx1ZXMsIHRoZXkgYXJl
IG11bHRpcGxpZWQgdXNpbmcgc2Nob29sYm9vayBtdWx0aXBsaWNhdGlvbiBhbmQKKyAgLy8gdmVj
dG9yIGludHJpbnNpY3MuIFRoZSB2ZWN0b3Igb3BlcmF0aW9ucyBmb3JtIGVhY2ggb2YgdGhlIGVp
Z2h0IHBoYXNlLQorICAvLyBzaGlmdHMgb2Ygb25lIG9mIHRoZSBpbnB1dHMsIHBvaW50LXdpc2Ug
bXVsdGlwbHksIGFuZCB0aGVuIGFkZCBpbnRvIHRoZQorICAvLyByZXN1bHQgYXQgdGhlIGNvcnJl
Y3QgcGxhY2UuIFRoaXMgbWVhbnMgdGhhdCAzMyUgKGRlZ3JlZS0xNikgb3IgMjUlCisgIC8vIChk
ZWdyZWUtMjQpIG9mIHRoZSBtdWx0aXBsaWVzIGFuZCBhZGRzIGFyZSB3YXN0ZWQsIGJ1dCBpdCBk
b2VzIG9rLgorICBpZiAobiA9PSAyKSB7CisgICAgdmVjX3QgcmVzdWx0WzRdOworICAgIHZlY190
IHZlY19hWzNdOworICAgIHN0YXRpYyBjb25zdCB2ZWNfdCBrWmVybyA9IHswfTsKKyAgICB2ZWNf
YVswXSA9IGFbMF07CisgICAgdmVjX2FbMV0gPSBhWzFdOworICAgIHZlY19hWzJdID0ga1plcm87
CisKKyAgICByZXN1bHRbMF0gPSB2ZWNfbXVsKHZlY19hWzBdLCB2ZWNfZ2V0X3dvcmQoYlswXSwg
MCkpOworICAgIHJlc3VsdFsxXSA9IHZlY19tdWwodmVjX2FbMV0sIHZlY19nZXRfd29yZChiWzBd
LCAwKSk7CisKKyAgICByZXN1bHRbMV0gPSB2ZWNfZm1hKHJlc3VsdFsxXSwgdmVjX2FbMF0sIHZl
Y19nZXRfd29yZChiWzFdLCAwKSk7CisgICAgcmVzdWx0WzJdID0gdmVjX211bCh2ZWNfYVsxXSwg
dmVjX2dldF93b3JkKGJbMV0sIDApKTsKKyAgICByZXN1bHRbM10gPSBrWmVybzsKKworICAgIHZl
YzNfcnNoaWZ0X3dvcmQodmVjX2EpOworCisjZGVmaW5lIEJMT0NLKHgsIHkpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBkbyB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICByZXN1bHRbeCArIDBdID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHZlY19mbWEocmVzdWx0W3ggKyAwXSwg
dmVjX2FbMF0sIHZlY19nZXRfd29yZChiW3kgLyA4XSwgeSAlIDgpKTsgXAorICAgIHJlc3VsdFt4
ICsgMV0gPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgdmVjX2ZtYShyZXN1bHRbeCArIDFdLCB2ZWNfYVsxXSwgdmVjX2dldF93
b3JkKGJbeSAvIDhdLCB5ICUgOCkpOyBcCisgICAgcmVzdWx0W3ggKyAyXSA9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB2ZWNf
Zm1hKHJlc3VsdFt4ICsgMl0sIHZlY19hWzJdLCB2ZWNfZ2V0X3dvcmQoYlt5IC8gOF0sIHkgJSA4
KSk7IFwKKyAgfSB3aGlsZSAoMCkKKworICAgIEJMT0NLKDAsIDEpOworICAgIEJMT0NLKDEsIDkp
OworCisgICAgdmVjM19yc2hpZnRfd29yZCh2ZWNfYSk7CisKKyAgICBCTE9DSygwLCAyKTsKKyAg
ICBCTE9DSygxLCAxMCk7CisKKyAgICB2ZWMzX3JzaGlmdF93b3JkKHZlY19hKTsKKworICAgIEJM
T0NLKDAsIDMpOworICAgIEJMT0NLKDEsIDExKTsKKworICAgIHZlYzNfcnNoaWZ0X3dvcmQodmVj
X2EpOworCisgICAgQkxPQ0soMCwgNCk7CisgICAgQkxPQ0soMSwgMTIpOworCisgICAgdmVjM19y
c2hpZnRfd29yZCh2ZWNfYSk7CisKKyAgICBCTE9DSygwLCA1KTsKKyAgICBCTE9DSygxLCAxMyk7
CisKKyAgICB2ZWMzX3JzaGlmdF93b3JkKHZlY19hKTsKKworICAgIEJMT0NLKDAsIDYpOworICAg
IEJMT0NLKDEsIDE0KTsKKworICAgIHZlYzNfcnNoaWZ0X3dvcmQodmVjX2EpOworCisgICAgQkxP
Q0soMCwgNyk7CisgICAgQkxPQ0soMSwgMTUpOworCisjdW5kZWYgQkxPQ0sKKworICAgIG1lbWNw
eShvdXQsIHJlc3VsdCwgc2l6ZW9mKHJlc3VsdCkpOworICAgIHJldHVybjsKKyAgfQorCisgIGlm
IChuID09IDMpIHsKKyAgICB2ZWNfdCByZXN1bHRbNl07CisgICAgdmVjX3QgdmVjX2FbNF07Cisg
ICAgc3RhdGljIGNvbnN0IHZlY190IGtaZXJvID0gezB9OworICAgIHZlY19hWzBdID0gYVswXTsK
KyAgICB2ZWNfYVsxXSA9IGFbMV07CisgICAgdmVjX2FbMl0gPSBhWzJdOworICAgIHZlY19hWzNd
ID0ga1plcm87CisKKyAgICByZXN1bHRbMF0gPSB2ZWNfbXVsKGFbMF0sIHZlY19nZXRfd29yZChi
WzBdLCAwKSk7CisgICAgcmVzdWx0WzFdID0gdmVjX211bChhWzFdLCB2ZWNfZ2V0X3dvcmQoYlsw
XSwgMCkpOworICAgIHJlc3VsdFsyXSA9IHZlY19tdWwoYVsyXSwgdmVjX2dldF93b3JkKGJbMF0s
IDApKTsKKworI2RlZmluZSBCTE9DS19QUkUoeCwgeSkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgZG8geyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmVzdWx0
W3ggKyAwXSA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICB2ZWNfZm1hKHJlc3VsdFt4ICsgMF0sIHZlY19hWzBdLCB2ZWNfZ2V0
X3dvcmQoYlt5IC8gOF0sIHkgJSA4KSk7IFwKKyAgICByZXN1bHRbeCArIDFdID0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHZl
Y19mbWEocmVzdWx0W3ggKyAxXSwgdmVjX2FbMV0sIHZlY19nZXRfd29yZChiW3kgLyA4XSwgeSAl
IDgpKTsgXAorICAgIHJlc3VsdFt4ICsgMl0gPSB2ZWNfbXVsKHZlY19hWzJdLCB2ZWNfZ2V0X3dv
cmQoYlt5IC8gOF0sIHkgJSA4KSk7ICAgIFwKKyAgfSB3aGlsZSAoMCkKKworICAgIEJMT0NLX1BS
RSgxLCA4KTsKKyAgICBCTE9DS19QUkUoMiwgMTYpOworCisgICAgcmVzdWx0WzVdID0ga1plcm87
CisKKyAgICB2ZWM0X3JzaGlmdF93b3JkKHZlY19hKTsKKworI2RlZmluZSBCTE9DSyh4LCB5KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgcmVzdWx0W3ggKyAwXSA9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB2ZWNfZm1hKHJlc3Vs
dFt4ICsgMF0sIHZlY19hWzBdLCB2ZWNfZ2V0X3dvcmQoYlt5IC8gOF0sIHkgJSA4KSk7IFwKKyAg
ICByZXN1bHRbeCArIDFdID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIHZlY19mbWEocmVzdWx0W3ggKyAxXSwgdmVjX2FbMV0s
IHZlY19nZXRfd29yZChiW3kgLyA4XSwgeSAlIDgpKTsgXAorICAgIHJlc3VsdFt4ICsgMl0gPSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgdmVjX2ZtYShyZXN1bHRbeCArIDJdLCB2ZWNfYVsyXSwgdmVjX2dldF93b3JkKGJbeSAv
IDhdLCB5ICUgOCkpOyBcCisgICAgcmVzdWx0W3ggKyAzXSA9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB2ZWNfZm1hKHJlc3Vs
dFt4ICsgM10sIHZlY19hWzNdLCB2ZWNfZ2V0X3dvcmQoYlt5IC8gOF0sIHkgJSA4KSk7IFwKKyAg
fSB3aGlsZSAoMCkKKworICAgIEJMT0NLKDAsIDEpOworICAgIEJMT0NLKDEsIDkpOworICAgIEJM
T0NLKDIsIDE3KTsKKworICAgIHZlYzRfcnNoaWZ0X3dvcmQodmVjX2EpOworCisgICAgQkxPQ0so
MCwgMik7CisgICAgQkxPQ0soMSwgMTApOworICAgIEJMT0NLKDIsIDE4KTsKKworICAgIHZlYzRf
cnNoaWZ0X3dvcmQodmVjX2EpOworCisgICAgQkxPQ0soMCwgMyk7CisgICAgQkxPQ0soMSwgMTEp
OworICAgIEJMT0NLKDIsIDE5KTsKKworICAgIHZlYzRfcnNoaWZ0X3dvcmQodmVjX2EpOworCisg
ICAgQkxPQ0soMCwgNCk7CisgICAgQkxPQ0soMSwgMTIpOworICAgIEJMT0NLKDIsIDIwKTsKKwor
ICAgIHZlYzRfcnNoaWZ0X3dvcmQodmVjX2EpOworCisgICAgQkxPQ0soMCwgNSk7CisgICAgQkxP
Q0soMSwgMTMpOworICAgIEJMT0NLKDIsIDIxKTsKKworICAgIHZlYzRfcnNoaWZ0X3dvcmQodmVj
X2EpOworCisgICAgQkxPQ0soMCwgNik7CisgICAgQkxPQ0soMSwgMTQpOworICAgIEJMT0NLKDIs
IDIyKTsKKworICAgIHZlYzRfcnNoaWZ0X3dvcmQodmVjX2EpOworCisgICAgQkxPQ0soMCwgNyk7
CisgICAgQkxPQ0soMSwgMTUpOworICAgIEJMT0NLKDIsIDIzKTsKKworI3VuZGVmIEJMT0NLCisj
dW5kZWYgQkxPQ0tfUFJFCisKKyAgICBtZW1jcHkob3V0LCByZXN1bHQsIHNpemVvZihyZXN1bHQp
KTsKKworICAgIHJldHVybjsKKyAgfQorCisgIC8vIEthcmF0c3ViYSBtdWx0aXBsaWNhdGlvbi4K
KyAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvS2FyYXRzdWJhX2FsZ29yaXRobQor
CisgIC8vIFdoZW4gfG58IGlzIG9kZCwgdGhlIHR3byAiaGFsdmVzIiB3aWxsIGhhdmUgZGlmZmVy
ZW50IGxlbmd0aHMuIFRoZSBmaXJzdCBpcworICAvLyBhbHdheXMgdGhlIHNtYWxsZXIuCisgIGNv
bnN0IHNpemVfdCBsb3dfbGVuID0gbiAvIDI7CisgIGNvbnN0IHNpemVfdCBoaWdoX2xlbiA9IG4g
LSBsb3dfbGVuOworICBjb25zdCB2ZWNfdCAqYV9oaWdoID0gJmFbbG93X2xlbl07CisgIGNvbnN0
IHZlY190ICpiX2hpZ2ggPSAmYltsb3dfbGVuXTsKKworICAvLyBTdG9yZSBhXzEgKyBhXzAgaW4g
dGhlIGZpcnN0IGhhbGYgb2YgfG91dHwgYW5kIGJfMSArIGJfMCBpbiB0aGUgc2Vjb25kCisgIC8v
IGhhbGYuCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG93X2xlbjsgaSsrKSB7CisgICAgb3V0
W2ldID0gdmVjX2FkZChhX2hpZ2hbaV0sIGFbaV0pOworICAgIG91dFtoaWdoX2xlbiArIGldID0g
dmVjX2FkZChiX2hpZ2hbaV0sIGJbaV0pOworICB9CisgIGlmIChoaWdoX2xlbiAhPSBsb3dfbGVu
KSB7CisgICAgb3V0W2xvd19sZW5dID0gYV9oaWdoW2xvd19sZW5dOworICAgIG91dFtoaWdoX2xl
biArIGxvd19sZW5dID0gYl9oaWdoW2xvd19sZW5dOworICB9CisKKyAgdmVjX3QgKmNvbnN0IGNo
aWxkX3NjcmF0Y2ggPSAmc2NyYXRjaFsyICogaGlnaF9sZW5dOworICAvLyBDYWxjdWxhdGUgKGFf
MSArIGFfMCkgw5cgKGJfMSArIGJfMCkgYW5kIHdyaXRlIHRvIHNjcmF0Y2ggYnVmZmVyLgorICBw
b2x5X211bF92ZWNfYXV4KHNjcmF0Y2gsIGNoaWxkX3NjcmF0Y2gsIG91dCwgJm91dFtoaWdoX2xl
bl0sIGhpZ2hfbGVuKTsKKyAgLy8gQ2FsY3VsYXRlIGFfMSDDlyBiXzEuCisgIHBvbHlfbXVsX3Zl
Y19hdXgoJm91dFtsb3dfbGVuICogMl0sIGNoaWxkX3NjcmF0Y2gsIGFfaGlnaCwgYl9oaWdoLCBo
aWdoX2xlbik7CisgIC8vIENhbGN1bGF0ZSBhXzAgw5cgYl8wLgorICBwb2x5X211bF92ZWNfYXV4
KG91dCwgY2hpbGRfc2NyYXRjaCwgYSwgYiwgbG93X2xlbik7CisKKyAgLy8gU3VidHJhY3QgdGhv
c2UgbGFzdCB0d28gcHJvZHVjdHMgZnJvbSB0aGUgZmlyc3QuCisgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbG93X2xlbiAqIDI7IGkrKykgeworICAgIHNjcmF0Y2hbaV0gPSB2ZWNfc3ViKHNjcmF0
Y2hbaV0sIHZlY19hZGQob3V0W2ldLCBvdXRbbG93X2xlbiAqIDIgKyBpXSkpOworICB9CisgIGlm
IChsb3dfbGVuICE9IGhpZ2hfbGVuKSB7CisgICAgc2NyYXRjaFtsb3dfbGVuICogMl0gPSB2ZWNf
c3ViKHNjcmF0Y2hbbG93X2xlbiAqIDJdLCBvdXRbbG93X2xlbiAqIDRdKTsKKyAgICBzY3JhdGNo
W2xvd19sZW4gKiAyICsgMV0gPQorICAgICAgICB2ZWNfc3ViKHNjcmF0Y2hbbG93X2xlbiAqIDIg
KyAxXSwgb3V0W2xvd19sZW4gKiA0ICsgMV0pOworICB9CisKKyAgLy8gQWRkIHRoZSBtaWRkbGUg
cHJvZHVjdCBpbnRvIHRoZSBvdXRwdXQuCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGlnaF9s
ZW4gKiAyOyBpKyspIHsKKyAgICBvdXRbbG93X2xlbiArIGldID0gdmVjX2FkZChvdXRbbG93X2xl
biArIGldLCBzY3JhdGNoW2ldKTsKKyAgfQorfQorCisvLyBwb2x5X211bF92ZWMgc2V0cyB8Km91
dHwgdG8gfHh8w5d8eXwgbW9kICjwnZGlXm4gLSAxKS4KK3N0YXRpYyB2b2lkIHBvbHlfbXVsX3Zl
YyhzdHJ1Y3QgcG9seSAqb3V0LCBjb25zdCBzdHJ1Y3QgcG9seSAqeCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcG9seSAqeSkgeworICBPUEVOU1NMX21lbXNldCgodWlu
dDE2X3QgKikmeC0+dltOXSwgMCwgMyAqIHNpemVvZih1aW50MTZfdCkpOworICBPUEVOU1NMX21l
bXNldCgodWludDE2X3QgKikmeS0+dltOXSwgMCwgMyAqIHNpemVvZih1aW50MTZfdCkpOworCisg
IE9QRU5TU0xfU1RBVElDX0FTU0VSVChzaXplb2Yob3V0LT52KSA9PSBzaXplb2YodmVjX3QpICog
VkVDU19QRVJfUE9MWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzdHJ1Y3QgcG9seSBpcyB0
aGUgd3Jvbmcgc2l6ZSIpOworICBPUEVOU1NMX1NUQVRJQ19BU1NFUlQoYWxpZ25vZihzdHJ1Y3Qg
cG9seSkgPT0gYWxpZ25vZih2ZWNfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAic3RydWN0
IHBvbHkgaGFzIGluY29ycmVjdCBhbGlnbm1lbnQiKTsKKworICB2ZWNfdCBwcm9kW1ZFQ1NfUEVS
X1BPTFkgKiAyXTsKKyAgdmVjX3Qgc2NyYXRjaFsxNzJdOworICBwb2x5X211bF92ZWNfYXV4KHBy
b2QsIHNjcmF0Y2gsIHgtPnZlY3RvcnMsIHktPnZlY3RvcnMsIFZFQ1NfUEVSX1BPTFkpOworCisg
IC8vIHxwcm9kfCBuZWVkcyB0byBiZSByZWR1Y2VkIG1vZCAo8J2RpV5uIC0gMSksIHdoaWNoIGp1
c3QgaW52b2x2ZXMgYWRkaW5nIHRoZQorICAvLyB1cHBlci1oYWxmIHRvIHRoZSBsb3dlci1oYWxm
LiBIb3dldmVyLCBOIGlzIDcwMSwgd2hpY2ggaXNuJ3QgYSBtdWx0aXBsZSBvZgorICAvLyB0aGUg
dmVjdG9yIHNpemUsIHNvIHRoZSB1cHBlci1oYWxmIHZlY3RvcnMgYWxsIGhhdmUgdG8gYmUgc2hp
ZnRlZCBiZWZvcmUKKyAgLy8gYmVpbmcgYWRkZWQgdG8gdGhlIGxvd2VyLWhhbGYuCisgIHZlY190
ICpvdXRfdmVjcyA9ICh2ZWNfdCAqKW91dC0+djsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IFZFQ1NfUEVSX1BPTFk7IGkrKykgeworICAgIGNvbnN0IHZlY190IHByZXYgPSBwcm9kW1ZFQ1Nf
UEVSX1BPTFkgLSAxICsgaV07CisgICAgY29uc3QgdmVjX3QgdGhpcyA9IHByb2RbVkVDU19QRVJf
UE9MWSArIGldOworICAgIG91dF92ZWNzW2ldID0gdmVjX2FkZChwcm9kW2ldLCB2ZWNfbWVyZ2Vf
M181KHByZXYsIHRoaXMpKTsKKyAgfQorCisgIE9QRU5TU0xfbWVtc2V0KCZvdXQtPnZbTl0sIDAs
IDMgKiBzaXplb2YodWludDE2X3QpKTsKK30KKworI2VuZGlmICAvLyBIUlNTX0hBVkVfVkVDVE9S
X1VOSVQKKworLy8gcG9seV9tdWxfbm92ZWNfYXV4IHdyaXRlcyB0aGUgcHJvZHVjdCBvZiB8YXwg
YW5kIHxifCB0byB8b3V0fCwgdXNpbmcKKy8vIHxzY3JhdGNofCBhcyBzY3JhdGNoIHNwYWNlLiBJ
dCdsbCB1c2UgS2FyYXRzdWJhIGlmIHRoZSBpbnB1dHMgYXJlIGxhcmdlCisvLyBlbm91Z2ggdG8g
d2FycmFudCBpdC4gRWFjaCBjYWxsIHVzZXMgMipjZWlsKG4vMikgZWxlbWVudHMgb2YgfHNjcmF0
Y2h8IGFuZAorLy8gdGhlIGZ1bmN0aW9uIHJlY3Vyc2VzLCBleGNlcHQgaWYgfG58IDwgNjQsIHdo
ZW4gfHNjcmF0Y2h8IGlzbid0IHVzZWQgYW5kIHRoZQorLy8gcmVjdXJzaW9uIHN0b3BzLiBJZiB8
bnwgPT0gfE58IHRoZW4gfHNjcmF0Y2h8IG5lZWRzIDEzMTggZWxlbWVudHMuCitzdGF0aWMgdm9p
ZCBwb2x5X211bF9ub3ZlY19hdXgodWludDE2X3QgKm91dCwgdWludDE2X3QgKnNjcmF0Y2gsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QgKmEsIGNvbnN0IHVp
bnQxNl90ICpiLCBzaXplX3QgbikgeworICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtTY2hvb2xib29r
TGltaXQgPSA2NDsKKyAgaWYgKG4gPCBrU2Nob29sYm9va0xpbWl0KSB7CisgICAgT1BFTlNTTF9t
ZW1zZXQob3V0LCAwLCBzaXplb2YodWludDE2X3QpICogbiAqIDIpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IG47IGor
KykgeworICAgICAgICBvdXRbaSArIGpdICs9ICh1bnNpZ25lZCkgYVtpXSAqIGJbal07CisgICAg
ICB9CisgICAgfQorCisgICAgcmV0dXJuOworICB9CisKKyAgLy8gS2FyYXRzdWJhIG11bHRpcGxp
Y2F0aW9uLgorICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9LYXJhdHN1YmFfYWxn
b3JpdGhtCisKKyAgLy8gV2hlbiB8bnwgaXMgb2RkLCB0aGUgdHdvICJoYWx2ZXMiIHdpbGwgaGF2
ZSBkaWZmZXJlbnQgbGVuZ3Rocy4gVGhlCisgIC8vIGZpcnN0IGlzIGFsd2F5cyB0aGUgc21hbGxl
ci4KKyAgY29uc3Qgc2l6ZV90IGxvd19sZW4gPSBuIC8gMjsKKyAgY29uc3Qgc2l6ZV90IGhpZ2hf
bGVuID0gbiAtIGxvd19sZW47CisgIGNvbnN0IHVpbnQxNl90ICpjb25zdCBhX2hpZ2ggPSAmYVts
b3dfbGVuXTsKKyAgY29uc3QgdWludDE2X3QgKmNvbnN0IGJfaGlnaCA9ICZiW2xvd19sZW5dOwor
CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG93X2xlbjsgaSsrKSB7CisgICAgb3V0W2ldID0g
YV9oaWdoW2ldICsgYVtpXTsKKyAgICBvdXRbaGlnaF9sZW4gKyBpXSA9IGJfaGlnaFtpXSArIGJb
aV07CisgIH0KKyAgaWYgKGhpZ2hfbGVuICE9IGxvd19sZW4pIHsKKyAgICBvdXRbbG93X2xlbl0g
PSBhX2hpZ2hbbG93X2xlbl07CisgICAgb3V0W2hpZ2hfbGVuICsgbG93X2xlbl0gPSBiX2hpZ2hb
bG93X2xlbl07CisgIH0KKworICB1aW50MTZfdCAqY29uc3QgY2hpbGRfc2NyYXRjaCA9ICZzY3Jh
dGNoWzIgKiBoaWdoX2xlbl07CisgIHBvbHlfbXVsX25vdmVjX2F1eChzY3JhdGNoLCBjaGlsZF9z
Y3JhdGNoLCBvdXQsICZvdXRbaGlnaF9sZW5dLCBoaWdoX2xlbik7CisgIHBvbHlfbXVsX25vdmVj
X2F1eCgmb3V0W2xvd19sZW4gKiAyXSwgY2hpbGRfc2NyYXRjaCwgYV9oaWdoLCBiX2hpZ2gsCisg
ICAgICAgICAgICAgICAgICAgICBoaWdoX2xlbik7CisgIHBvbHlfbXVsX25vdmVjX2F1eChvdXQs
IGNoaWxkX3NjcmF0Y2gsIGEsIGIsIGxvd19sZW4pOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbG93X2xlbiAqIDI7IGkrKykgeworICAgIHNjcmF0Y2hbaV0gLT0gb3V0W2ldICsgb3V0W2xv
d19sZW4gKiAyICsgaV07CisgIH0KKyAgaWYgKGxvd19sZW4gIT0gaGlnaF9sZW4pIHsKKyAgICBz
Y3JhdGNoW2xvd19sZW4gKiAyXSAtPSBvdXRbbG93X2xlbiAqIDRdOworICAgIGFzc2VydChvdXRb
bG93X2xlbiAqIDQgKyAxXSA9PSAwKTsKKyAgfQorCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
aGlnaF9sZW4gKiAyOyBpKyspIHsKKyAgICBvdXRbbG93X2xlbiArIGldICs9IHNjcmF0Y2hbaV07
CisgIH0KK30KKworLy8gcG9seV9tdWxfbm92ZWMgc2V0cyB8Km91dHwgdG8gfHh8w5d8eXwgbW9k
ICjwnZGlXm4gLSAxKS4KK3N0YXRpYyB2b2lkIHBvbHlfbXVsX25vdmVjKHN0cnVjdCBwb2x5ICpv
dXQsIGNvbnN0IHN0cnVjdCBwb2x5ICp4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RydWN0IHBvbHkgKnkpIHsKKyAgdWludDE2X3QgcHJvZFsyICogTl07CisgIHVpbnQxNl90
IHNjcmF0Y2hbMTMxOF07CisgIHBvbHlfbXVsX25vdmVjX2F1eChwcm9kLCBzY3JhdGNoLCB4LT52
LCB5LT52LCBOKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIG91
dC0+dltpXSA9IHByb2RbaV0gKyBwcm9kW2kgKyBOXTsKKyAgfQorICBPUEVOU1NMX21lbXNldCgm
b3V0LT52W05dLCAwLCAzICogc2l6ZW9mKHVpbnQxNl90KSk7Cit9CisKK3N0YXRpYyB2b2lkIHBv
bHlfbXVsKHN0cnVjdCBwb2x5ICpyLCBjb25zdCBzdHJ1Y3QgcG9seSAqYSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0cnVjdCBwb2x5ICpiKSB7CisjaWYgZGVmaW5lZChQT0xZX1JRX01V
TF9BU00pCisgIGNvbnN0IGludCBoYXNfYXZ4MiA9IChPUEVOU1NMX2lhMzJjYXBfUFsyXSAmICgx
IDw8IDUpKSAhPSAwOworICBpZiAoaGFzX2F2eDIpIHsKKyAgICBwb2x5X1JxX211bChyLT52LCBh
LT52LCBiLT52KTsKKyAgICByZXR1cm47CisgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChIUlNT
X0hBVkVfVkVDVE9SX1VOSVQpCisgIGlmICh2ZWNfY2FwYWJsZSgpKSB7CisgICAgcG9seV9tdWxf
dmVjKHIsIGEsIGIpOworICAgIHJldHVybjsKKyAgfQorI2VuZGlmCisKKyAgLy8gRmFsbGJhY2ss
IG5vbi12ZWN0b3IgY2FzZS4KKyAgcG9seV9tdWxfbm92ZWMociwgYSwgYik7Cit9CisKKy8vIHBv
bHlfbXVsX3hfbWludXNfMSBzZXRzIHxwfCB0byB8cHzDlyjwnZGlIC0gMSkgbW9kICjwnZGlXm4g
LSAxKS4KK3N0YXRpYyB2b2lkIHBvbHlfbXVsX3hfbWludXNfMShzdHJ1Y3QgcG9seSAqcCkgewor
ICAvLyBNdWx0aXBseWluZyBieSAo8J2RpSAtIDEpIG1lYW5zIG5lZ2F0aW5nIGVhY2ggY29lZmZp
Y2llbnQgYW5kIGFkZGluZyBpbgorICAvLyB0aGUgdmFsdWUgb2YgdGhlIHByZXZpb3VzIG9uZS4K
KyAgY29uc3QgdWludDE2X3Qgb3JpZ19maW5hbF9jb2VmZmljaWVudCA9IHAtPnZbTiAtIDFdOwor
CisgIGZvciAoc2l6ZV90IGkgPSBOIC0gMTsgaSA+IDA7IGktLSkgeworICAgIHAtPnZbaV0gPSBw
LT52W2kgLSAxXSAtIHAtPnZbaV07CisgIH0KKyAgcC0+dlswXSA9IG9yaWdfZmluYWxfY29lZmZp
Y2llbnQgLSBwLT52WzBdOworfQorCisvLyBwb2x5X21vZF9waGlOIHNldHMgfHB8IHRvIHxwfCBt
b2QgzqYoTikuCitzdGF0aWMgdm9pZCBwb2x5X21vZF9waGlOKHN0cnVjdCBwb2x5ICpwKSB7Cisg
IGNvbnN0IHVpbnQxNl90IGNvZWZmNzAwID0gcC0+dltOIC0gMV07CisKKyAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIHAtPnZbaV0gLT0gY29lZmY3MDA7CisgIH0KK30K
KworLy8gcG9seV9jbGFtcCByZWR1Y2VzIGVhY2ggY29lZmZpY2llbnQgbW9kIFEuCitzdGF0aWMg
dm9pZCBwb2x5X2NsYW1wKHN0cnVjdCBwb2x5ICpwKSB7CisgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBOOyBpKyspIHsKKyAgICBwLT52W2ldICY9IFEgLSAxOworICB9Cit9CisKKworLy8gQ29u
dmVyc2lvbiBmdW5jdGlvbnMKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIHBvbHkyX2Zy
b21fcG9seSBzZXRzIHwqb3V0fCB0byB8aW58IG1vZCAyLgorc3RhdGljIHZvaWQgcG9seTJfZnJv
bV9wb2x5KHN0cnVjdCBwb2x5MiAqb3V0LCBjb25zdCBzdHJ1Y3QgcG9seSAqaW4pIHsKKyAgY3J5
cHRvX3dvcmRfdCAqd29yZHMgPSBvdXQtPnY7CisgIHVuc2lnbmVkIHNoaWZ0ID0gMDsKKyAgY3J5
cHRvX3dvcmRfdCB3b3JkID0gMDsKKworICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgTjsgaSsr
KSB7CisgICAgd29yZCA+Pj0gMTsKKyAgICB3b3JkIHw9IChjcnlwdG9fd29yZF90KShpbi0+dltp
XSAmIDEpIDw8IChCSVRTX1BFUl9XT1JEIC0gMSk7CisgICAgc2hpZnQrKzsKKworICAgIGlmIChz
aGlmdCA9PSBCSVRTX1BFUl9XT1JEKSB7CisgICAgICAqd29yZHMgPSB3b3JkOworICAgICAgd29y
ZHMrKzsKKyAgICAgIHdvcmQgPSAwOworICAgICAgc2hpZnQgPSAwOworICAgIH0KKyAgfQorCisg
IHdvcmQgPj49IEJJVFNfUEVSX1dPUkQgLSBzaGlmdDsKKyAgKndvcmRzID0gd29yZDsKK30KKwor
Ly8gbW9kMyB0cmVhdHMgfGF8IGFzIGEgc2lnbmVkIG51bWJlciBhbmQgcmV0dXJucyB8YXwgbW9k
IDMuCitzdGF0aWMgdWludDE2X3QgbW9kMyhpbnQxNl90IGEpIHsKKyAgY29uc3QgaW50MTZfdCBx
ID0gKChpbnQzMl90KWEgKiAyMTg0NSkgPj4gMTY7CisgIGludDE2X3QgcmV0ID0gYSAtIDMgKiBx
OworICAvLyBBdCB0aGlzIHBvaW50LCB8cmV0fCBpcyBpbiB7MCwgMSwgMiwgM30gYW5kIHRoYXQg
bmVlZHMgdG8gYmUgbWFwcGVkIHRvIHswLAorICAvLyAxLCAyLCAwfS4KKyAgcmV0dXJuIHJldCAm
ICgocmV0ICYgKHJldCA+PiAxKSkgLSAxKTsKK30KKworLy8gcG9seTNfZnJvbV9wb2x5IHNldHMg
fCpvdXR8IHRvIHxpbnwuCitzdGF0aWMgdm9pZCBwb2x5M19mcm9tX3BvbHkoc3RydWN0IHBvbHkz
ICpvdXQsIGNvbnN0IHN0cnVjdCBwb2x5ICppbikgeworICBjcnlwdG9fd29yZF90ICp3b3Jkc19z
ID0gb3V0LT5zLnY7CisgIGNyeXB0b193b3JkX3QgKndvcmRzX2EgPSBvdXQtPmEudjsKKyAgY3J5
cHRvX3dvcmRfdCBzID0gMDsKKyAgY3J5cHRvX3dvcmRfdCBhID0gMDsKKyAgdW5zaWduZWQgc2hp
ZnQgPSAwOworCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOOyBpKyspIHsKKyAgICAvLyBU
aGlzIGR1cGxpY2F0ZXMgdGhlIDEzdGggYml0IHVwd2FyZHMgdG8gdGhlIHRvcCBvZiB0aGUgdWlu
dDE2LAorICAgIC8vIGVzc2VudGlhbGx5IHRyZWF0aW5nIGl0IGFzIGEgc2lnbiBiaXQgYW5kIGNv
bnZlcnRpbmcgaW50byBhIHNpZ25lZCBpbnQxNi4KKyAgICAvLyBUaGUgc2lnbmVkIHZhbHVlIGlz
IHJlZHVjZWQgbW9kIDMsIHlpZWxkaW5nIHswLCAxLCAyfS4KKyAgICBjb25zdCB1aW50MTZfdCB2
ID0gbW9kMygoaW50MTZfdCkoaW4tPnZbaV0gPDwgMykgPj4gMyk7CisgICAgcyA+Pj0gMTsKKyAg
ICBjb25zdCBjcnlwdG9fd29yZF90IHNfYml0ID0gKGNyeXB0b193b3JkX3QpKHYgJiAyKSA8PCAo
QklUU19QRVJfV09SRCAtIDIpOworICAgIHMgfD0gc19iaXQ7CisgICAgYSA+Pj0gMTsKKyAgICBh
IHw9IHNfYml0IHwgKGNyeXB0b193b3JkX3QpKHYgJiAxKSA8PCAoQklUU19QRVJfV09SRCAtIDEp
OworICAgIHNoaWZ0Kys7CisKKyAgICBpZiAoc2hpZnQgPT0gQklUU19QRVJfV09SRCkgeworICAg
ICAgKndvcmRzX3MgPSBzOworICAgICAgd29yZHNfcysrOworICAgICAgKndvcmRzX2EgPSBhOwor
ICAgICAgd29yZHNfYSsrOworICAgICAgcyA9IGEgPSAwOworICAgICAgc2hpZnQgPSAwOworICAg
IH0KKyAgfQorCisgIHMgPj49IEJJVFNfUEVSX1dPUkQgLSBzaGlmdDsKKyAgYSA+Pj0gQklUU19Q
RVJfV09SRCAtIHNoaWZ0OworICAqd29yZHNfcyA9IHM7CisgICp3b3Jkc19hID0gYTsKK30KKwor
Ly8gcG9seTNfZnJvbV9wb2x5X2NoZWNrZWQgc2V0cyB8Km91dHwgdG8gfGlufCwgd2hpY2ggaGFz
IGNvZWZmaWNpZW50cyBpbiB7MCwgMSwKKy8vIFEtMX0uIEl0IHJldHVybnMgYSBtYXNrIGluZGlj
YXRpbmcgd2hldGhlciBhbGwgY29lZmZpY2llbnRzIHdlcmUgZm91bmQgdG8gYmUKKy8vIGluIHRo
YXQgc2V0Lgorc3RhdGljIGNyeXB0b193b3JkX3QgcG9seTNfZnJvbV9wb2x5X2NoZWNrZWQoc3Ry
dWN0IHBvbHkzICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdHJ1Y3QgcG9seSAqaW4pIHsKKyAgY3J5cHRvX3dvcmRfdCAqd29yZHNfcyA9
IG91dC0+cy52OworICBjcnlwdG9fd29yZF90ICp3b3Jkc19hID0gb3V0LT5hLnY7CisgIGNyeXB0
b193b3JkX3QgcyA9IDA7CisgIGNyeXB0b193b3JkX3QgYSA9IDA7CisgIHVuc2lnbmVkIHNoaWZ0
ID0gMDsKKyAgY3J5cHRvX3dvcmRfdCBvayA9IENPTlNUVElNRV9UUlVFX1c7CisKKyAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIGNvbnN0IHVpbnQxNl90IHYgPSBpbi0+
dltpXTsKKyAgICAvLyBNYXBzIHswLCAxLCBRLTF9IHRvIHswLCAxLCAyfS4KKyAgICB1aW50MTZf
dCBtb2QzID0gdiAmIDM7CisgICAgbW9kMyBePSBtb2QzID4+IDE7CisgICAgY29uc3QgdWludDE2
X3QgZXhwZWN0ZWQgPSAodWludDE2X3QpKCh+KChtb2QzID4+IDEpIC0gMSkpIHwgbW9kMykgJSBR
OworICAgIG9rICY9IGNvbnN0YW50X3RpbWVfZXFfdyh2LCBleHBlY3RlZCk7CisKKyAgICBzID4+
PSAxOworICAgIGNvbnN0IGNyeXB0b193b3JkX3Qgc19iaXQgPSAoY3J5cHRvX3dvcmRfdCkobW9k
MyAmIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IChCSVRTX1BFUl9XT1JE
IC0gMik7CisgICAgcyB8PSBzX2JpdDsKKyAgICBhID4+PSAxOworICAgIGEgfD0gc19iaXQgfCAo
Y3J5cHRvX3dvcmRfdCkobW9kMyAmIDEpIDw8IChCSVRTX1BFUl9XT1JEIC0gMSk7CisgICAgc2hp
ZnQrKzsKKworICAgIGlmIChzaGlmdCA9PSBCSVRTX1BFUl9XT1JEKSB7CisgICAgICAqd29yZHNf
cyA9IHM7CisgICAgICB3b3Jkc19zKys7CisgICAgICAqd29yZHNfYSA9IGE7CisgICAgICB3b3Jk
c19hKys7CisgICAgICBzID0gYSA9IDA7CisgICAgICBzaGlmdCA9IDA7CisgICAgfQorICB9CisK
KyAgcyA+Pj0gQklUU19QRVJfV09SRCAtIHNoaWZ0OworICBhID4+PSBCSVRTX1BFUl9XT1JEIC0g
c2hpZnQ7CisgICp3b3Jkc19zID0gczsKKyAgKndvcmRzX2EgPSBhOworCisgIHJldHVybiBvazsK
K30KKworc3RhdGljIHZvaWQgcG9seV9mcm9tX3BvbHkyKHN0cnVjdCBwb2x5ICpvdXQsIGNvbnN0
IHN0cnVjdCBwb2x5MiAqaW4pIHsKKyAgY29uc3QgY3J5cHRvX3dvcmRfdCAqd29yZHMgPSBpbi0+
djsKKyAgdW5zaWduZWQgc2hpZnQgPSAwOworICBjcnlwdG9fd29yZF90IHdvcmQgPSAqd29yZHM7
CisKKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIG91dC0+dltpXSA9
IHdvcmQgJiAxOworICAgIHdvcmQgPj49IDE7CisgICAgc2hpZnQrKzsKKworICAgIGlmIChzaGlm
dCA9PSBCSVRTX1BFUl9XT1JEKSB7CisgICAgICB3b3JkcysrOworICAgICAgd29yZCA9ICp3b3Jk
czsKKyAgICAgIHNoaWZ0ID0gMDsKKyAgICB9CisgIH0KK30KKworc3RhdGljIHZvaWQgcG9seV9m
cm9tX3BvbHkzKHN0cnVjdCBwb2x5ICpvdXQsIGNvbnN0IHN0cnVjdCBwb2x5MyAqaW4pIHsKKyAg
Y29uc3QgY3J5cHRvX3dvcmRfdCAqd29yZHNfcyA9IGluLT5zLnY7CisgIGNvbnN0IGNyeXB0b193
b3JkX3QgKndvcmRzX2EgPSBpbi0+YS52OworICBjcnlwdG9fd29yZF90IHdvcmRfcyA9IH4oKndv
cmRzX3MpOworICBjcnlwdG9fd29yZF90IHdvcmRfYSA9ICp3b3Jkc19hOworICB1bnNpZ25lZCBz
aGlmdCA9IDA7CisKKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIG91
dC0+dltpXSA9ICh1aW50MTZfdCkod29yZF9zICYgMSkgLSAxOworICAgIG91dC0+dltpXSB8PSB3
b3JkX2EgJiAxOworICAgIHdvcmRfcyA+Pj0gMTsKKyAgICB3b3JkX2EgPj49IDE7CisgICAgc2hp
ZnQrKzsKKworICAgIGlmIChzaGlmdCA9PSBCSVRTX1BFUl9XT1JEKSB7CisgICAgICB3b3Jkc19z
Kys7CisgICAgICB3b3Jkc19hKys7CisgICAgICB3b3JkX3MgPSB+KCp3b3Jkc19zKTsKKyAgICAg
IHdvcmRfYSA9ICp3b3Jkc19hOworICAgICAgc2hpZnQgPSAwOworICAgIH0KKyAgfQorfQorCisv
LyBQb2x5bm9taWFsIGludmVyc2lvbgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gcG9s
eV9pbnZlcnRfbW9kMiBzZXRzIHwqb3V0fCB0byB8aW5eLTF8IChpLmUuIHN1Y2ggdGhhdCB8Km91
dHzDl3xpbnwgPSAxIG1vZAorLy8gzqYoTikpLCBhbGwgbW9kIDIuIFRoaXMgaXNuJ3QgdXNlZnVs
IGluIGl0c2VsZiwgYnV0IGlzIHBhcnQgb2YgZG9pbmcgaW52ZXJzaW9uCisvLyBtb2QgUS4KK3N0
YXRpYyB2b2lkIHBvbHlfaW52ZXJ0X21vZDIoc3RydWN0IHBvbHkgKm91dCwgY29uc3Qgc3RydWN0
IHBvbHkgKmluKSB7CisgIC8vIFRoaXMgYWxnb3JpdGhtIGZvbGxvd3MgYWxnb3JpdGhtIDEwIGlu
IHRoZSBwYXBlci4gKEFsdGhvdWdoLCBpbiBjb250cmFzdCB0bworICAvLyB0aGUgcGFwZXIsIGsg
c2hvdWxkIHN0YXJ0IGF0IHplcm8sIG5vdCBvbmUsIGFuZCB0aGUgcm90YXRpb24gY291bnQgaXMg
bmVlZHMKKyAgLy8gdG8gaGFuZGxlIHRyYWlsaW5nIHplcm8gY29lZmZpY2llbnRzLikgVGhlIGJl
c3QgZXhwbGFuYXRpb24gZm9yIHdoeSBpdAorICAvLyB3b3JrcyBpcyBpbiB0aGUgIldoeSBpdCB3
b3JrcyIgc2VjdGlvbiBvZiBbTlRSVVROMTRdLgorCisgIHN0cnVjdCBwb2x5MiBiLCBjLCBmLCBn
OworICBwb2x5Ml9mcm9tX3BvbHkoJmYsIGluKTsKKyAgT1BFTlNTTF9tZW1zZXQoJmIsIDAsIHNp
emVvZihiKSk7CisgIGIudlswXSA9IDE7CisgIE9QRU5TU0xfbWVtc2V0KCZjLCAwLCBzaXplb2Yo
YykpOworCisgIC8vIFNldCBnIHRvIGFsbCBvbmVzLgorICBPUEVOU1NMX21lbXNldCgmZywgMHhm
Ziwgc2l6ZW9mKHN0cnVjdCBwb2x5MikpOworICBnLnZbV09SRFNfUEVSX1BPTFkgLSAxXSA+Pj0g
QklUU19QRVJfV09SRCAtIEJJVFNfSU5fTEFTVF9XT1JEOworCisgIGNyeXB0b193b3JkX3QgZGVn
X2YgPSBOIC0gMSwgZGVnX2cgPSBOIC0gMSwgcm90YXRpb24gPSAwOworICBjcnlwdG9fd29yZF90
IHN0aWxsX2dvaW5nID0gQ09OU1RUSU1FX1RSVUVfVzsKKworICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgMiAqIChOIC0gMSkgLSAxOyBpKyspIHsKKyAgICBjb25zdCBjcnlwdG9fd29yZF90IHMg
PSBzdGlsbF9nb2luZyAmIGxzYl90b19hbGwoZi52WzBdKTsKKyAgICBjb25zdCBjcnlwdG9fd29y
ZF90IHNob3VsZF9zd2FwID0gcyAmIGNvbnN0YW50X3RpbWVfbHRfdyhkZWdfZiwgZGVnX2cpOwor
ICAgIHBvbHkyX2Nzd2FwKCZmLCAmZywgc2hvdWxkX3N3YXApOworICAgIHBvbHkyX2Nzd2FwKCZi
LCAmYywgc2hvdWxkX3N3YXApOworICAgIGNvbnN0IGNyeXB0b193b3JkX3QgZGVnX3N1bSA9IHNo
b3VsZF9zd2FwICYgKGRlZ19mIF4gZGVnX2cpOworICAgIGRlZ19mIF49IGRlZ19zdW07CisgICAg
ZGVnX2cgXj0gZGVnX3N1bTsKKyAgICBhc3NlcnQoZGVnX2cgPj0gMSk7CisgICAgcG9seTJfZm1h
ZGQoJmYsICZnLCBzKTsKKyAgICBwb2x5Ml9mbWFkZCgmYiwgJmMsIHMpOworCisgICAgcG9seTJf
cnNoaWZ0MSgmZik7CisgICAgcG9seTJfbHNoaWZ0MSgmYyk7CisKKyAgICBkZWdfZi0tOworICAg
IGNvbnN0IGNyeXB0b193b3JkX3QgZjBfaXNfbm9uemVybyA9IGxzYl90b19hbGwoZi52WzBdKTsK
KyAgICAvLyB8ZjBfaXNfbm9uemVyb3wgaW1wbGllcyB8c3RpbGxfZ29pbmd8LgorICAgIGFzc2Vy
dCghKGYwX2lzX25vbnplcm8gJiYgIXN0aWxsX2dvaW5nKSk7CisgICAgcm90YXRpb24gPSBjb25z
dGFudF90aW1lX3NlbGVjdF93KGYwX2lzX25vbnplcm8sIGksIHJvdGF0aW9uKTsKKyAgICBzdGls
bF9nb2luZyAmPSB+Y29uc3RhbnRfdGltZV9pc196ZXJvX3coZGVnX2YpOworICB9CisKKyAgcm90
YXRpb24rKzsKKyAgcm90YXRpb24gLT0gTiAmIGNvbnN0YW50X3RpbWVfbHRfdyhOLCByb3RhdGlv
bik7CisgIGFzc2VydChwb2x5Ml90b3BfYml0c19hcmVfY2xlYXIoJmIpKTsKKyAgSFJTU19wb2x5
Ml9yb3RyX2NvbnN0dGltZSgmYiwgcm90YXRpb24pOworICBwb2x5X2Zyb21fcG9seTIob3V0LCAm
Yik7Cit9CisKKy8vIHBvbHlfaW52ZXJ0IHNldHMgfCpvdXR8IHRvIHxpbl4tMXwgKGkuZS4gc3Vj
aCB0aGF0IHwqb3V0fMOXfGlufCA9IDEgbW9kIM6mKE4pKS4KK3N0YXRpYyB2b2lkIHBvbHlfaW52
ZXJ0KHN0cnVjdCBwb2x5ICpvdXQsIGNvbnN0IHN0cnVjdCBwb2x5ICppbikgeworICAvLyBJbnZl
cnNpb24gbW9kIFEsIHdoaWNoIGlzIGRvbmUgYmFzZWQgb24gdGhlIHJlc3VsdCBvZiBpbnZlcnRp
bmcgbW9kCisgIC8vIDIuIFNlZSBbTlRSVVROMTRdIHBhcGVyLCBib3R0b20gb2YgcGFnZSB0d28u
CisgIHN0cnVjdCBwb2x5IGEsICpiLCB0bXA7CisKKyAgLy8gYSA9IC1pbi4KKyAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIGEudltpXSA9IC1pbi0+dltpXTsKKyAgfQor
CisgIC8vIGIgPSBpbl4tMSBtb2QgMi4KKyAgYiA9IG91dDsKKyAgcG9seV9pbnZlcnRfbW9kMihi
LCBpbik7CisKKyAgLy8gV2UgYXJlIHdvcmtpbmcgbW9kIFE9MioqMTMgYW5kIHdlIG5lZWQgdG8g
aXRlcmF0ZSBjZWlsKGxvZ18yKDEzKSkKKyAgLy8gdGltZXMsIHdoaWNoIGlzIGZvdXIuCisgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICBwb2x5X211bCgmdG1wLCAmYSwg
Yik7CisgICAgdG1wLnZbMF0gKz0gMjsKKyAgICBwb2x5X211bChiLCBiLCAmdG1wKTsKKyAgfQor
fQorCisvLyBNYXJzaGFsIGFuZCB1bm1hcnNoYWwgZnVuY3Rpb25zIGZvciB2YXJpb3VzIGJhc2lj
IHR5cGVzLgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworI2RlZmluZSBQT0xZX0JZVEVTIDExMzgKKworLy8gcG9seV9tYXJzaGFs
IHNlcmlhbGlzZXMgYWxsIGJ1dCB0aGUgZmluYWwgY29lZmZpY2llbnQgb2YgfGlufCB0byB8b3V0
fC4KK3N0YXRpYyB2b2lkIHBvbHlfbWFyc2hhbCh1aW50OF90IG91dFtQT0xZX0JZVEVTXSwgY29u
c3Qgc3RydWN0IHBvbHkgKmluKSB7CisgIGNvbnN0IHVpbnQxNl90ICpwID0gaW4tPnY7CisKKyAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBOIC8gODsgaSsrKSB7CisgICAgb3V0WzBdID0gcFswXTsK
KyAgICBvdXRbMV0gPSAoMHgxZiAmIChwWzBdID4+IDgpKSB8ICgocFsxXSAmIDB4MDcpIDw8IDUp
OworICAgIG91dFsyXSA9IHBbMV0gPj4gMzsKKyAgICBvdXRbM10gPSAoMyAmIChwWzFdID4+IDEx
KSkgfCAoKHBbMl0gJiAweDNmKSA8PCAyKTsKKyAgICBvdXRbNF0gPSAoMHg3ZiAmIChwWzJdID4+
IDYpKSB8ICgocFszXSAmIDB4MDEpIDw8IDcpOworICAgIG91dFs1XSA9IHBbM10gPj4gMTsKKyAg
ICBvdXRbNl0gPSAoMHhmICYgKHBbM10gPj4gOSkpIHwgKChwWzRdICYgMHgwZikgPDwgNCk7Cisg
ICAgb3V0WzddID0gcFs0XSA+PiA0OworICAgIG91dFs4XSA9ICgxICYgKHBbNF0gPj4gMTIpKSB8
ICgocFs1XSAmIDB4N2YpIDw8IDEpOworICAgIG91dFs5XSA9ICgweDNmICYgKHBbNV0gPj4gNykp
IHwgKChwWzZdICYgMHgwMykgPDwgNik7CisgICAgb3V0WzEwXSA9IHBbNl0gPj4gMjsKKyAgICBv
dXRbMTFdID0gKDcgJiAocFs2XSA+PiAxMCkpIHwgKChwWzddICYgMHgxZikgPDwgMyk7CisgICAg
b3V0WzEyXSA9IHBbN10gPj4gNTsKKworICAgIHAgKz0gODsKKyAgICBvdXQgKz0gMTM7CisgIH0K
KworICAvLyBUaGVyZSBhcmUgZm91ciByZW1haW5pbmcgdmFsdWVzLgorICBvdXRbMF0gPSBwWzBd
OworICBvdXRbMV0gPSAoMHgxZiAmIChwWzBdID4+IDgpKSB8ICgocFsxXSAmIDB4MDcpIDw8IDUp
OworICBvdXRbMl0gPSBwWzFdID4+IDM7CisgIG91dFszXSA9ICgzICYgKHBbMV0gPj4gMTEpKSB8
ICgocFsyXSAmIDB4M2YpIDw8IDIpOworICBvdXRbNF0gPSAoMHg3ZiAmIChwWzJdID4+IDYpKSB8
ICgocFszXSAmIDB4MDEpIDw8IDcpOworICBvdXRbNV0gPSBwWzNdID4+IDE7CisgIG91dFs2XSA9
IDB4ZiAmIChwWzNdID4+IDkpOworfQorCisvLyBwb2x5X3VubWFyc2hhbCBwYXJzZXMgdGhlIG91
dHB1dCBvZiB8cG9seV9tYXJzaGFsfCBhbmQgc2V0cyB8b3V0fCBzdWNoIHRoYXQKKy8vIGFsbCBi
dXQgdGhlIGZpbmFsIGNvZWZmaWNpZW50cyBtYXRjaCwgYW5kIHRoZSBmaW5hbCBjb2VmZmljaWVu
dCBpcyBjYWxjdWxhdGVkCisvLyBzdWNoIHRoYXQgZXZhbHVhdGluZyB8b3V0fCBhdCBvbmUgcmVz
dWx0cyBpbiB6ZXJvLiBJdCByZXR1cm5zIG9uZSBvbiBzdWNjZXNzCisvLyBvciB6ZXJvIGlmIHxp
bnwgaXMgYW4gaW52YWxpZCBlbmNvZGluZy4KK3N0YXRpYyBpbnQgcG9seV91bm1hcnNoYWwoc3Ry
dWN0IHBvbHkgKm91dCwgY29uc3QgdWludDhfdCBpbltQT0xZX0JZVEVTXSkgeworICB1aW50MTZf
dCAqcCA9IG91dC0+djsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE4gLyA4OyBpKyspIHsK
KyAgICBwWzBdID0gKHVpbnQxNl90KShpblswXSkgfCAodWludDE2X3QpKGluWzFdICYgMHgxZikg
PDwgODsKKyAgICBwWzFdID0gKHVpbnQxNl90KShpblsxXSA+PiA1KSB8ICh1aW50MTZfdCkoaW5b
Ml0pIDw8IDMgfAorICAgICAgICAgICAodWludDE2X3QpKGluWzNdICYgMykgPDwgMTE7CisgICAg
cFsyXSA9ICh1aW50MTZfdCkoaW5bM10gPj4gMikgfCAodWludDE2X3QpKGluWzRdICYgMHg3Zikg
PDwgNjsKKyAgICBwWzNdID0gKHVpbnQxNl90KShpbls0XSA+PiA3KSB8ICh1aW50MTZfdCkoaW5b
NV0pIDw8IDEgfAorICAgICAgICAgICAodWludDE2X3QpKGluWzZdICYgMHhmKSA8PCA5OworICAg
IHBbNF0gPSAodWludDE2X3QpKGluWzZdID4+IDQpIHwgKHVpbnQxNl90KShpbls3XSkgPDwgNCB8
CisgICAgICAgICAgICh1aW50MTZfdCkoaW5bOF0gJiAxKSA8PCAxMjsKKyAgICBwWzVdID0gKHVp
bnQxNl90KShpbls4XSA+PiAxKSB8ICh1aW50MTZfdCkoaW5bOV0gJiAweDNmKSA8PCA3OworICAg
IHBbNl0gPSAodWludDE2X3QpKGluWzldID4+IDYpIHwgKHVpbnQxNl90KShpblsxMF0pIDw8IDIg
fAorICAgICAgICAgICAodWludDE2X3QpKGluWzExXSAmIDcpIDw8IDEwOworICAgIHBbN10gPSAo
dWludDE2X3QpKGluWzExXSA+PiAzKSB8ICh1aW50MTZfdCkoaW5bMTJdKSA8PCA1OworCisgICAg
cCArPSA4OworICAgIGluICs9IDEzOworICB9CisKKyAgLy8gVGhlcmUgYXJlIGZvdXIgY29lZmZp
Y2llbnRzIHJlbWFpbmluZy4KKyAgcFswXSA9ICh1aW50MTZfdCkoaW5bMF0pIHwgKHVpbnQxNl90
KShpblsxXSAmIDB4MWYpIDw8IDg7CisgIHBbMV0gPSAodWludDE2X3QpKGluWzFdID4+IDUpIHwg
KHVpbnQxNl90KShpblsyXSkgPDwgMyB8CisgICAgICAgICAodWludDE2X3QpKGluWzNdICYgMykg
PDwgMTE7CisgIHBbMl0gPSAodWludDE2X3QpKGluWzNdID4+IDIpIHwgKHVpbnQxNl90KShpbls0
XSAmIDB4N2YpIDw8IDY7CisgIHBbM10gPSAodWludDE2X3QpKGluWzRdID4+IDcpIHwgKHVpbnQx
Nl90KShpbls1XSkgPDwgMSB8CisgICAgICAgICAodWludDE2X3QpKGluWzZdICYgMHhmKSA8PCA5
OworCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOIC0gMTsgaSsrKSB7CisgICAgb3V0LT52
W2ldID0gKGludDE2X3QpKG91dC0+dltpXSA8PCAzKSA+PiAzOworICB9CisKKyAgLy8gVGhlcmUg
YXJlIGZvdXIgdW51c2VkIGJpdHMgaW4gdGhlIGxhc3QgYnl0ZS4gV2UgcmVxdWlyZSB0aGVtIHRv
IGJlIHplcm8uCisgIGlmICgoaW5bNl0gJiAweGYwKSAhPSAwKSB7CisgICAgcmV0dXJuIDA7Cisg
IH0KKworICAvLyBTZXQgdGhlIGZpbmFsIGNvZWZmaWNpZW50IGFzIHNwZWNpZmVkIGluIFtIUlNT
TklTVF0gMS45LjIgc3RlcCA2LgorICB1aW50MzJfdCBzdW0gPSAwOworICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IE4gLSAxOyBpKyspIHsKKyAgICBzdW0gKz0gb3V0LT52W2ldOworICB9CisKKyAg
b3V0LT52W04gLSAxXSA9ICh1aW50MTZfdCkoMHUgLSBzdW0pOworCisgIHJldHVybiAxOworfQor
CisvLyBtb2QzX2Zyb21fbW9kUSBtYXBzIHswLCAxLCBRLTEsIDY1NTM1fSAtPiB7MCwgMSwgMiwg
Mn0uIE5vdGUgdGhhdCB8dnwgbWF5CisvLyBoYXZlIGFuIGludmFsaWQgdmFsdWUgd2hlbiBwcm9j
ZXNzaW5nIGF0dGFja2VyLWNvbnRyb2xsZWQgaW5wdXRzLgorc3RhdGljIHVpbnQxNl90IG1vZDNf
ZnJvbV9tb2RRKHVpbnQxNl90IHYpIHsKKyAgdiAmPSAzOworICByZXR1cm4gdiBeICh2ID4+IDEp
OworfQorCisvLyBwb2x5X21hcnNoYWxfbW9kMyBtYXJzaGFscyB8aW58IHRvIHxvdXR8IHdoZXJl
IHRoZSBjb2VmZmljaWVudHMgb2YgfGlufCBhcmUKKy8vIGFsbCBpbiB7MCwgMSwgUS0xLCA2NTUz
NX0gYW5kIHxpbnwgaXMgbW9kIM6mKE4pLiAoTm90ZSB0aGF0IGNvZWZmaWNpZW50cyBtYXkKKy8v
IGhhdmUgaW52YWxpZCB2YWx1ZXMgd2hlbiBwcm9jZXNzaW5nIGF0dGFja2VyLWNvbnRyb2xsZWQg
aW5wdXRzLikKK3N0YXRpYyB2b2lkIHBvbHlfbWFyc2hhbF9tb2QzKHVpbnQ4X3Qgb3V0W0hSU1Nf
UE9MWTNfQllURVNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0
IHBvbHkgKmluKSB7CisgIGNvbnN0IHVpbnQxNl90ICpjb2VmZnMgPSBpbi0+djsKKworICAvLyBP
bmx5IDcwMCBjb2VmZmljaWVudHMgYXJlIG1hcnNoYWxlZCBiZWNhdXNlIGluWzcwMF0gbXVzdCBi
ZSB6ZXJvLgorICBhc3NlcnQoY29lZmZzW04tMV0gPT0gMCk7CisKKyAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBIUlNTX1BPTFkzX0JZVEVTOyBpKyspIHsKKyAgICBjb25zdCB1aW50MTZfdCBjb2Vm
ZnMwID0gbW9kM19mcm9tX21vZFEoY29lZmZzWzBdKTsKKyAgICBjb25zdCB1aW50MTZfdCBjb2Vm
ZnMxID0gbW9kM19mcm9tX21vZFEoY29lZmZzWzFdKTsKKyAgICBjb25zdCB1aW50MTZfdCBjb2Vm
ZnMyID0gbW9kM19mcm9tX21vZFEoY29lZmZzWzJdKTsKKyAgICBjb25zdCB1aW50MTZfdCBjb2Vm
ZnMzID0gbW9kM19mcm9tX21vZFEoY29lZmZzWzNdKTsKKyAgICBjb25zdCB1aW50MTZfdCBjb2Vm
ZnM0ID0gbW9kM19mcm9tX21vZFEoY29lZmZzWzRdKTsKKyAgICBvdXRbaV0gPSBjb2VmZnMwICsg
Y29lZmZzMSAqIDMgKyBjb2VmZnMyICogOSArIGNvZWZmczMgKiAyNyArIGNvZWZmczQgKiA4MTsK
KyAgICBjb2VmZnMgKz0gNTsKKyAgfQorfQorCisvLyBIUlNTLXNwZWNpZmljIGZ1bmN0aW9ucwor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gcG9seV9zaG9ydF9zYW1wbGUgc2FtcGxl
cyBhIHZlY3RvciBvZiB2YWx1ZXMgaW4gezB4ZmZmZiAoaS5lLiAtMSksIDAsIDF9LgorLy8gVGhp
cyBpcyB0aGUgc2FtZSBhY3Rpb24gYXMgdGhlIGFsZ29yaXRobSBpbiBbSFJTU05JU1RdIHNlY3Rp
b24gMS44LjEsIGJ1dAorLy8gd2l0aCBIUlNTLVNYWSB0aGUgc2FtcGxpbmcgYWxnb3JpdGhtIGlz
IG5vdyBhIHByaXZhdGUgZGV0YWlsIG9mIHRoZQorLy8gaW1wbGVtZW50YXRpb24gKHByZXZpb3Vz
bHkgaXQgaGFkIHRvIG1hdGNoIGJldHdlZW4gdHdvIHBhcnRpZXMpLiBUaGlzCisvLyBmdW5jdGlv
biB1c2VzIHRoYXQgZnJlZWRvbSB0byBpbXBsZW1lbnQgYSBmbGF0dGVyIGRpc3RyaWJ1dGlvbiBv
ZiB2YWx1ZXMuCitzdGF0aWMgdm9pZCBwb2x5X3Nob3J0X3NhbXBsZShzdHJ1Y3QgcG9seSAqb3V0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBpbltIUlNTX1NB
TVBMRV9CWVRFU10pIHsKKyAgT1BFTlNTTF9TVEFUSUNfQVNTRVJUKEhSU1NfU0FNUExFX0JZVEVT
ID09IE4gLSAxLAorICAgICAgICAgICAgICAgICAgICAgICAgIkhSU1NfU0FNUExFX0JZVEVTIGlu
Y29ycmVjdCIpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE4gLSAxOyBpKyspIHsKKyAgICB1
aW50MTZfdCB2ID0gbW9kMyhpbltpXSk7CisgICAgLy8gTWFwIHswLCAxLCAyfSAtPiB7MCwgMSwg
MHhmZmZmfQorICAgIHYgfD0gKCh2ID4+IDEpIF4gMSkgLSAxOworICAgIG91dC0+dltpXSA9IHY7
CisgIH0KKyAgb3V0LT52W04gLSAxXSA9IDA7Cit9CisKKy8vIHBvbHlfc2hvcnRfc2FtcGxlX3Bs
dXMgcGVyZm9ybXMgdGhlIFQrIHNhbXBsZSBhcyBkZWZpbmVkIGluIFtIUlNTTklTVF0sCisvLyBz
ZWN0aW9uIDEuOC4yLgorc3RhdGljIHZvaWQgcG9seV9zaG9ydF9zYW1wbGVfcGx1cyhzdHJ1Y3Qg
cG9seSAqb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50
OF90IGluW0hSU1NfU0FNUExFX0JZVEVTXSkgeworICBwb2x5X3Nob3J0X3NhbXBsZShvdXQsIGlu
KTsKKworICAvLyBzdW0gKGFuZCB0aGUgcHJvZHVjdCBpbiB0aGUgZm9yIGxvb3ApIHdpbGwgb3Zl
cmZsb3cuIEJ1dCB0aGF0J3MgZmluZQorICAvLyBiZWNhdXNlIHxzdW18IGlzIGJvdW5kIGJ5ICsv
LSAoTi0yKSwgYW5kIE4gPCAyXjE1IHNvIGl0IHdvcmtzIG91dC4KKyAgdWludDE2X3Qgc3VtID0g
MDsKKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE4gLSAyOyBpKyspIHsKKyAgICBzdW0gKz0g
KHVuc2lnbmVkKSBvdXQtPnZbaV0gKiBvdXQtPnZbaSArIDFdOworICB9CisKKyAgLy8gSWYgdGhl
IHN1bSBpcyBuZWdhdGl2ZSwgZmxpcCB0aGUgc2lnbiBvZiBldmVuLXBvc2l0aW9uZWQgY29lZmZp
Y2llbnRzLiAoU2VlCisgIC8vIHBhZ2UgOCBvZiBbSFJTU10uKQorICBzdW0gPSAoKGludDE2X3Qp
IHN1bSkgPj4gMTU7CisgIGNvbnN0IHVpbnQxNl90IHNjYWxlID0gc3VtIHwgKH5zdW0gJiAxKTsK
KyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE47IGkgKz0gMikgeworICAgIG91dC0+dltpXSA9
ICh1bnNpZ25lZCkgb3V0LT52W2ldICogc2NhbGU7CisgIH0KK30KKworLy8gcG9seV9saWZ0IGNv
bXB1dGVzIHRoZSBmdW5jdGlvbiBkaXNjdXNzZWQgaW4gW0hSU1NdLCBhcHBlbmRpeCBCLgorc3Rh
dGljIHZvaWQgcG9seV9saWZ0KHN0cnVjdCBwb2x5ICpvdXQsIGNvbnN0IHN0cnVjdCBwb2x5ICph
KSB7CisgIC8vIFdlIHdpc2ggdG8gY2FsY3VsYXRlIGEvKPCdkaUtMSkgbW9kIM6mKE4pIG92ZXIg
R0YoMyksIHdoZXJlIM6mKE4pIGlzIHRoZQorICAvLyBOdGggY3ljbG90b21pYyBwb2x5bm9taWFs
LCBpLmUuIDEgKyDwnZGlICsg4oCmICsg8J2RpV43MDAgKHNpbmNlIE4gaXMgcHJpbWUpLgorCisg
IC8vIDEvKPCdkaUtMSkgaGFzIGEgZmFpcmx5IGJhc2ljIHN0cnVjdHVyZSB0aGF0IHdlIGNhbiBl
eHBsb2l0IHRvIHNwZWVkIHRoaXMgdXA6CisgIC8vCisgIC8vIFIuPHg+ID0gUG9seW5vbWlhbFJp
bmcoR0YoMynigKYpCisgIC8vIGludiA9IFIuY3ljbG90b21pY19wb2x5bm9taWFsKDEpLmludmVy
c2VfbW9kKFIuY3ljbG90b21pY19wb2x5bm9taWFsKG4pKQorICAvLyBsaXN0KGludilbOjE1XQor
ICAvLyAgIFsxLCAwLCAyLCAxLCAwLCAyLCAxLCAwLCAyLCAxLCAwLCAyLCAxLCAwLCAyXQorICAv
LworICAvLyBUaGlzIHRocmVlLWVsZW1lbnQgcGF0dGVybiBvZiBjb2VmZmljaWVudHMgcmVwZWF0
cyBmb3IgdGhlIHdob2xlCisgIC8vIHBvbHlub21pYWwuCisgIC8vCisgIC8vIE5leHQgZGVmaW5l
IHRoZSBvdmVyYmFyIG9wZXJhdG9yIHN1Y2ggdGhhdCB6zIUgPSB6WzBdICsKKyAgLy8gcmV2ZXJz
ZSh6WzE6XSkuIChJbmRleCB6ZXJvIG9mIGEgcG9seW5vbWlhbCBoZXJlIGlzIHRoZSBjb2VmZmlj
aWVudAorICAvLyBvZiB0aGUgY29uc3RhbnQgdGVybS4gU28gaW5kZXggb25lIGlzIHRoZSBjb2Vm
ZmljaWVudCBvZiDwnZGlIGFuZCBzbworICAvLyBvbi4pCisgIC8vCisgIC8vIEEgbGVzcyBvZGQg
d2F5IHRvIGRlZmluZSB0aGlzIGlzIHRvIHNlZSB0aGF0IHrMhSBuZWdhdGVzIHRoZSBpbmRleGVz
LAorICAvLyBzbyB6zIVbMF0gPSB6Wy0wXSwgesyFWzFdID0gelstMV0gYW5kIHNvIG9uLgorICAv
LworICAvLyBUaGUgdXNlIG9mIHrMhSBpcyB0aGF0LCB3aGVuIHdvcmtpbmcgbW9kICjwnZGlXjcw
MSAtIDEpLCB2elswXSA9IDx2LAorICAvLyB6zIU+LCB2elsxXSA9IDx2LCDwnZGlesyFPiwg4oCm
LiAoV2hlcmUgPGEsIGI+IGlzIHRoZSBpbm5lciBwcm9kdWN0OiB0aGUgc3VtCisgIC8vIG9mIHRo
ZSBwb2ludC13aXNlIHByb2R1Y3RzLikgQWx0aG91Z2ggd2UgY2FsY3VsYXRlZCB0aGUgaW52ZXJz
ZSBtb2QKKyAgLy8gzqYoTiksIHdlIGNhbiB3b3JrIG1vZCAo8J2RpV5OIC0gMSkgYW5kIHJlZHVj
ZSBtb2QgzqYoTikgYXQgdGhlIGVuZC4KKyAgLy8gKFRoYXQncyBiZWNhdXNlICjwnZGlXk4gLSAx
KSBpcyBhIG11bHRpcGxlIG9mIM6mKE4pLikKKyAgLy8KKyAgLy8gV2hlbiB3b3JraW5nIG1vZCAo
8J2RpV5OIC0gMSksIG11bHRpcGxpY2F0aW9uIGJ5IPCdkaUgaXMgYSByaWdodC1yb3RhdGlvbgor
ICAvLyBvZiB0aGUgbGlzdCBvZiBjb2VmZmljaWVudHMuCisgIC8vCisgIC8vIFRodXMgd2UgY2Fu
IGNvbnNpZGVyIHdoYXQgdGhlIHBhdHRlcm4gb2YgesyFLCDwnZGlesyFLCDwnZGlXjJ6zIUsIOKA
piBsb29rcyBsaWtlOgorICAvLworICAvLyBkZWYgcmV2ZXJzZSh4cyk6CisgIC8vICAgc3VmZml4
ID0gbGlzdCh4c1sxOl0pCisgIC8vICAgc3VmZml4LnJldmVyc2UoKQorICAvLyAgIHJldHVybiBb
eHNbMF1dICsgc3VmZml4CisgIC8vCisgIC8vIGRlZiByb3RhdGUoeHMpOgorICAvLyAgIHJldHVy
biBbeHNbLTFdXSArIHhzWzotMV0KKyAgLy8KKyAgLy8gem92ZXJiYXIgPSByZXZlcnNlKGxpc3Qo
aW52KSArIFswXSkKKyAgLy8geHpvdmVyYmFyID0gcm90YXRlKHJldmVyc2UobGlzdChpbnYpICsg
WzBdKSkKKyAgLy8geDJ6b3ZlcmJhciA9IHJvdGF0ZShyb3RhdGUocmV2ZXJzZShsaXN0KGludikg
KyBbMF0pKSkKKyAgLy8KKyAgLy8gem92ZXJiYXJbOjE1XQorICAvLyAgIFsxLCAwLCAxLCAyLCAw
LCAxLCAyLCAwLCAxLCAyLCAwLCAxLCAyLCAwLCAxXQorICAvLyB4em92ZXJiYXJbOjE1XQorICAv
LyAgIFswLCAxLCAwLCAxLCAyLCAwLCAxLCAyLCAwLCAxLCAyLCAwLCAxLCAyLCAwXQorICAvLyB4
MnpvdmVyYmFyWzoxNV0KKyAgLy8gICBbMiwgMCwgMSwgMCwgMSwgMiwgMCwgMSwgMiwgMCwgMSwg
MiwgMCwgMSwgMl0KKyAgLy8KKyAgLy8gKEZvciBhIGZvcm11bGEgZm9yIHrMhSwgc2VlIGxlbW1h
IHR3byBvZiBhcHBlbmRpeCBCLikKKyAgLy8KKyAgLy8gQWZ0ZXIgdGhlIGZpcnN0IHRocmVlIGVs
ZW1lbnRzIGhhdmUgYmVlbiB0YWtlbiBjYXJlIG9mLCBhbGwgdGhlbiBoYXZlCisgIC8vIGEgcmVw
ZWF0aW5nIHRocmVlLWVsZW1lbnQgY3ljbGUuIFRoZSBuZXh0IHZhbHVlICjwnZGlXjN6zIUpIGlu
dm9sdmVzCisgIC8vIHRocmVlIHJvdGF0aW9ucyBvZiB0aGUgZmlyc3QgcGF0dGVybiwgdGh1cyB0
aGUgdGhyZWUtZWxlbWVudCBjeWNsZQorICAvLyBsaW5lcyB1cC4gSG93ZXZlciwgdGhlIGRpc2Nv
bnRpbnVpdHkgaW4gdGhlIGZpcnN0IHRocmVlIGVsZW1lbnRzCisgIC8vIG9idmlvdXNseSBtb3Zl
cyB0byBhIGRpZmZlcmVudCBwb3NpdGlvbi4gQ29uc2lkZXIgdGhlIGRpZmZlcmVuY2UKKyAgLy8g
YmV0d2VlbiDwnZGlXjN6zIUgYW5kIHrMhToKKyAgLy8KKyAgLy8gW3gteSBmb3IgKHgseSkgaW4g
emlwKHpvdmVyYmFyLCB4M3pvdmVyYmFyKV1bOjE1XQorICAvLyAgICBbMCwgMSwgMSwgMSwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0KKyAgLy8KKyAgLy8gVGhpcyBwYXR0ZXJuIG9m
IGRpZmZlcmVuY2VzIGlzIHRoZSBzYW1lIGZvciBhbGwgZWxlbWVudHMsIGFsdGhvdWdoIGl0Cisg
IC8vIG9idmlvdXNseSBtb3ZlcyByaWdodCB3aXRoIHRoZSByb3RhdGlvbnMuCisgIC8vCisgIC8v
IEZyb20gdGhpcywgd2UgcmVhY2ggYWxnb3JpdGhtIGVpZ2h0IG9mIGFwcGVuZGl4IEIuCisKKyAg
Ly8gSGFuZGxlIHRoZSBmaXJzdCB0aHJlZSBlbGVtZW50cyBvZiB0aGUgaW5uZXIgcHJvZHVjdHMu
CisgIG91dC0+dlswXSA9IGEtPnZbMF0gKyBhLT52WzJdOworICBvdXQtPnZbMV0gPSBhLT52WzFd
OworICBvdXQtPnZbMl0gPSAtYS0+dlswXSArIGEtPnZbMl07CisKKyAgLy8gczAsIHMxLCBzMiBh
cmUgYWRkZWQgaW50byBvdXQtPnZbMF0sIG91dC0+dlsxXSwgYW5kIG91dC0+dlsyXSwKKyAgLy8g
cmVzcGVjdGl2ZWx5LiBXZSBkbyBub3QgY29tcHV0ZSBzMSBiZWNhdXNlIGl0J3MganVzdCAtKHMw
ICsgczEpLgorICB1aW50MTZfdCBzMCA9IDAsIHMyID0gMDsKKyAgZm9yIChzaXplX3QgaSA9IDM7
IGkgPCA2OTk7IGkgKz0gMykgeworICAgIHMwICs9IC1hLT52W2ldICsgYS0+dltpICsgMl07Cisg
ICAgLy8gczEgKz0gYS0+dltpXSAtIGEtPnZbaSArIDFdOworICAgIHMyICs9IGEtPnZbaSArIDFd
IC0gYS0+dltpICsgMl07CisgIH0KKworICAvLyBIYW5kbGUgdGhlIGZhY3QgdGhhdCB0aGUgdGhy
ZWUtZWxlbWVudCBwYXR0ZXJuIGRvZXNuJ3QgZmlsbCB0aGUKKyAgLy8gcG9seW5vbWlhbCBleGFj
dGx5IChzaW5jZSA3MDEgaXNuJ3QgYSBtdWx0aXBsZSBvZiB0aHJlZSkuCisgIHMwIC09IGEtPnZb
Njk5XTsKKyAgLy8gczEgKz0gYS0+dls2OTldIC0gYS0+dls3MDBdOworICBzMiArPSBhLT52Wzcw
MF07CisKKyAgLy8gTm90ZSB0aGF0IHMwICsgczEgKyBzMiA9IDAuCisgIG91dC0+dlswXSArPSBz
MDsKKyAgb3V0LT52WzFdIC09IChzMCArIHMyKTsgLy8gPSBzMQorICBvdXQtPnZbMl0gKz0gczI7
CisKKyAgLy8gQ2FsY3VsYXRlIHRoZSByZW1haW5pbmcgaW5uZXIgcHJvZHVjdHMgYnkgdGFraW5n
IGFkdmFudGFnZSBvZiB0aGUKKyAgLy8gZmFjdCB0aGF0IHRoZSBwYXR0ZXJuIHJlcGVhdHMgZXZl
cnkgdGhyZWUgY3ljbGVzIGFuZCB0aGUgcGF0dGVybiBvZgorICAvLyBkaWZmZXJlbmNlcyBtb3Zl
cyB3aXRoIHRoZSByb3RhdGlvbi4KKyAgZm9yIChzaXplX3QgaSA9IDM7IGkgPCBOOyBpKyspIHsK
KyAgICBvdXQtPnZbaV0gPSAob3V0LT52W2kgLSAzXSAtIChhLT52W2kgLSAyXSArIGEtPnZbaSAt
IDFdICsgYS0+dltpXSkpOworICB9CisKKyAgLy8gUmVkdWNlIG1vZCDOpihOKSBieSBzdWJ0cmFj
dGluZyBhIG11bHRpcGxlIG9mIG91dFs3MDBdIGZyb20gZXZlcnkKKyAgLy8gZWxlbWVudCBhbmQg
Y29udmVydCB0byBtb2QgUS4gKFNlZSBhYm92ZSBhYm91dCBhZGRpbmcgdHdpY2UgYXMKKyAgLy8g
c3VidHJhY3Rpb24uKQorICBjb25zdCBjcnlwdG9fd29yZF90IHYgPSBvdXQtPnZbNzAwXTsKKyAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIGNvbnN0IHVpbnQxNl90IHZp
X21vZDMgPSBtb2QzKG91dC0+dltpXSAtIHYpOworICAgIC8vIE1hcCB7MCwgMSwgMn0gdG8gezAs
IDEsIDB4ZmZmZn0uCisgICAgb3V0LT52W2ldID0gKH4oKHZpX21vZDMgPj4gMSkgLSAxKSkgfCB2
aV9tb2QzOworICB9CisKKyAgcG9seV9tdWxfeF9taW51c18xKG91dCk7Cit9CisKK3N0cnVjdCBw
dWJsaWNfa2V5IHsKKyAgc3RydWN0IHBvbHkgcGg7Cit9OworCitzdHJ1Y3QgcHJpdmF0ZV9rZXkg
eworICBzdHJ1Y3QgcG9seTMgZiwgZl9pbnZlcnNlOworICBzdHJ1Y3QgcG9seSBwaF9pbnZlcnNl
OworICB1aW50OF90IGhtYWNfa2V5WzMyXTsKK307CisKKy8vIHB1YmxpY19rZXlfZnJvbV9leHRl
cm5hbCBjb252ZXJ0cyBhbiBleHRlcm5hbCBwdWJsaWMga2V5IHBvaW50ZXIgaW50byBhbgorLy8g
aW50ZXJuYWwgb25lLiBFeHRlcm5hbGx5IHRoZSBhbGlnbm1lbnQgaXMgb25seSBzcGVjaWZpZWQg
dG8gYmUgZWlnaHQgYnl0ZXMKKy8vIGJ1dCB3ZSBuZWVkIDE2LWJ5dGUgYWxpZ25tZW50LiBXZSBj
b3VsZCBhbm5vdGF0ZSB0aGUgZXh0ZXJuYWwgc3RydWN0IHdpdGgKKy8vIHRoYXQgYWxpZ25tZW50
IGJ1dCB3ZSBjYW4gb25seSBhc3N1bWUgdGhhdCBtYWxsb2NlZCBwb2ludGVycyBhcmUgOC1ieXRl
CisvLyBhbGlnbmVkIGluIGFueSBjYXNlLiAoRXZlbiBpZiB0aGUgdW5kZXJseWluZyBtYWxsb2Mg
cmV0dXJucyB2YWx1ZXMgd2l0aAorLy8gMTYtYnl0ZSBhbGlnbm1lbnQsIHxPUEVOU1NMX21hbGxv
Y3wgd2lsbCBzdG9yZSBhbiA4LWJ5dGUgc2l6ZSBwcmVmaXggYW5kIG1lc3MKKy8vIHRoYXQgdXAu
KQorc3RhdGljIHN0cnVjdCBwdWJsaWNfa2V5ICpwdWJsaWNfa2V5X2Zyb21fZXh0ZXJuYWwoCisg
ICAgc3RydWN0IEhSU1NfcHVibGljX2tleSAqZXh0KSB7CisgIE9QRU5TU0xfU1RBVElDX0FTU0VS
VCgKKyAgICAgIHNpemVvZihzdHJ1Y3QgSFJTU19wdWJsaWNfa2V5KSA+PSBzaXplb2Yoc3RydWN0
IHB1YmxpY19rZXkpICsgMTUsCisgICAgICAiSFJTUyBwdWJsaWMga2V5IHRvbyBzbWFsbCIpOwor
CisgIHVpbnRwdHJfdCBwID0gKHVpbnRwdHJfdClleHQ7CisgIHAgPSAocCArIDE1KSAmIH4xNTsK
KyAgcmV0dXJuIChzdHJ1Y3QgcHVibGljX2tleSAqKXA7Cit9CisKKy8vIHByaXZhdGVfa2V5X2Zy
b21fZXh0ZXJuYWwgZG9lcyB0aGUgc2FtZSB0aGluZyBhcyB8cHVibGljX2tleV9mcm9tX2V4dGVy
bmFsfCwKKy8vIGJ1dCBmb3IgcHJpdmF0ZSBrZXlzLiBTZWUgdGhlIGNvbW1lbnQgb24gdGhhdCBm
dW5jdGlvbiBhYm91dCBhbGlnbm1lbnQKKy8vIGlzc3Vlcy4KK3N0YXRpYyBzdHJ1Y3QgcHJpdmF0
ZV9rZXkgKnByaXZhdGVfa2V5X2Zyb21fZXh0ZXJuYWwoCisgICAgc3RydWN0IEhSU1NfcHJpdmF0
ZV9rZXkgKmV4dCkgeworICBPUEVOU1NMX1NUQVRJQ19BU1NFUlQoCisgICAgICBzaXplb2Yoc3Ry
dWN0IEhSU1NfcHJpdmF0ZV9rZXkpID49IHNpemVvZihzdHJ1Y3QgcHJpdmF0ZV9rZXkpICsgMTUs
CisgICAgICAiSFJTUyBwcml2YXRlIGtleSB0b28gc21hbGwiKTsKKworICB1aW50cHRyX3QgcCA9
ICh1aW50cHRyX3QpZXh0OworICBwID0gKHAgKyAxNSkgJiB+MTU7CisgIHJldHVybiAoc3RydWN0
IHByaXZhdGVfa2V5ICopcDsKK30KKwordm9pZCBIUlNTX2dlbmVyYXRlX2tleSgKKyAgICBzdHJ1
Y3QgSFJTU19wdWJsaWNfa2V5ICpvdXRfcHViLCBzdHJ1Y3QgSFJTU19wcml2YXRlX2tleSAqb3V0
X3ByaXYsCisgICAgY29uc3QgdWludDhfdCBpbltIUlNTX1NBTVBMRV9CWVRFUyArIEhSU1NfU0FN
UExFX0JZVEVTICsgMzJdKSB7CisgIHN0cnVjdCBwdWJsaWNfa2V5ICpwdWIgPSBwdWJsaWNfa2V5
X2Zyb21fZXh0ZXJuYWwob3V0X3B1Yik7CisgIHN0cnVjdCBwcml2YXRlX2tleSAqcHJpdiA9IHBy
aXZhdGVfa2V5X2Zyb21fZXh0ZXJuYWwob3V0X3ByaXYpOworCisgIE9QRU5TU0xfbWVtY3B5KHBy
aXYtPmhtYWNfa2V5LCBpbiArIDIgKiBIUlNTX1NBTVBMRV9CWVRFUywKKyAgICAgICAgICAgICAg
ICAgc2l6ZW9mKHByaXYtPmhtYWNfa2V5KSk7CisKKyAgc3RydWN0IHBvbHkgZjsKKyAgcG9seV9z
aG9ydF9zYW1wbGVfcGx1cygmZiwgaW4pOworICBwb2x5M19mcm9tX3BvbHkoJnByaXYtPmYsICZm
KTsKKyAgSFJTU19wb2x5M19pbnZlcnQoJnByaXYtPmZfaW52ZXJzZSwgJnByaXYtPmYpOworCisg
IC8vIHBnX3BoaTEgaXMgcCAoaS5lLiAzKSDDlyBnIMOXIM6mKDEpIChpLmUuIPCdkaUtMSkuCisg
IHN0cnVjdCBwb2x5IHBnX3BoaTE7CisgIHBvbHlfc2hvcnRfc2FtcGxlX3BsdXMoJnBnX3BoaTEs
IGluICsgSFJTU19TQU1QTEVfQllURVMpOworICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgTjsg
aSsrKSB7CisgICAgcGdfcGhpMS52W2ldICo9IDM7CisgIH0KKyAgcG9seV9tdWxfeF9taW51c18x
KCZwZ19waGkxKTsKKworICBzdHJ1Y3QgcG9seSBwZmdfcGhpMTsKKyAgcG9seV9tdWwoJnBmZ19w
aGkxLCAmZiwgJnBnX3BoaTEpOworCisgIHN0cnVjdCBwb2x5IHBmZ19waGkxX2ludmVyc2U7Cisg
IHBvbHlfaW52ZXJ0KCZwZmdfcGhpMV9pbnZlcnNlLCAmcGZnX3BoaTEpOworCisgIHBvbHlfbXVs
KCZwdWItPnBoLCAmcGZnX3BoaTFfaW52ZXJzZSwgJnBnX3BoaTEpOworICBwb2x5X211bCgmcHVi
LT5waCwgJnB1Yi0+cGgsICZwZ19waGkxKTsKKyAgcG9seV9jbGFtcCgmcHViLT5waCk7CisKKyAg
cG9seV9tdWwoJnByaXYtPnBoX2ludmVyc2UsICZwZmdfcGhpMV9pbnZlcnNlLCAmZik7CisgIHBv
bHlfbXVsKCZwcml2LT5waF9pbnZlcnNlLCAmcHJpdi0+cGhfaW52ZXJzZSwgJmYpOworICBwb2x5
X2NsYW1wKCZwcml2LT5waF9pbnZlcnNlKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIga1NoYXJl
ZEtleVtdID0gInNoYXJlZCBrZXkiOworCit2b2lkIEhSU1NfZW5jYXAodWludDhfdCBvdXRfY2lw
aGVydGV4dFtQT0xZX0JZVEVTXSwKKyAgICAgICAgICAgICAgICB1aW50OF90IG91dF9zaGFyZWRf
a2V5WzMyXSwKKyAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgSFJTU19wdWJsaWNfa2V5ICpp
bl9wdWIsCisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBpbltIUlNTX1NBTVBMRV9CWVRF
UyArIEhSU1NfU0FNUExFX0JZVEVTXSkgeworICBjb25zdCBzdHJ1Y3QgcHVibGljX2tleSAqcHVi
ID0KKyAgICAgIHB1YmxpY19rZXlfZnJvbV9leHRlcm5hbCgoc3RydWN0IEhSU1NfcHVibGljX2tl
eSAqKWluX3B1Yik7CisgIHN0cnVjdCBwb2x5IG0sIHIsIG1fbGlmdGVkOworICBwb2x5X3Nob3J0
X3NhbXBsZSgmbSwgaW4pOworICBwb2x5X3Nob3J0X3NhbXBsZSgmciwgaW4gKyBIUlNTX1NBTVBM
RV9CWVRFUyk7CisgIHBvbHlfbGlmdCgmbV9saWZ0ZWQsICZtKTsKKworICBzdHJ1Y3QgcG9seSBw
cmhfcGx1c19tOworICBwb2x5X211bCgmcHJoX3BsdXNfbSwgJnIsICZwdWItPnBoKTsKKyAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIHByaF9wbHVzX20udltpXSArPSBt
X2xpZnRlZC52W2ldOworICB9CisKKyAgcG9seV9tYXJzaGFsKG91dF9jaXBoZXJ0ZXh0LCAmcHJo
X3BsdXNfbSk7CisKKyAgdWludDhfdCBtX2J5dGVzW0hSU1NfUE9MWTNfQllURVNdLCByX2J5dGVz
W0hSU1NfUE9MWTNfQllURVNdOworICBwb2x5X21hcnNoYWxfbW9kMyhtX2J5dGVzLCAmbSk7Cisg
IHBvbHlfbWFyc2hhbF9tb2QzKHJfYnl0ZXMsICZyKTsKKworICBTSEEyNTZfQ1RYIGhhc2hfY3R4
OworICBTSEEyNTZfSW5pdCgmaGFzaF9jdHgpOworICBTSEEyNTZfVXBkYXRlKCZoYXNoX2N0eCwg
a1NoYXJlZEtleSwgc2l6ZW9mKGtTaGFyZWRLZXkpKTsKKyAgU0hBMjU2X1VwZGF0ZSgmaGFzaF9j
dHgsIG1fYnl0ZXMsIHNpemVvZihtX2J5dGVzKSk7CisgIFNIQTI1Nl9VcGRhdGUoJmhhc2hfY3R4
LCByX2J5dGVzLCBzaXplb2Yocl9ieXRlcykpOworICBTSEEyNTZfVXBkYXRlKCZoYXNoX2N0eCwg
b3V0X2NpcGhlcnRleHQsIFBPTFlfQllURVMpOworICBTSEEyNTZfRmluYWwob3V0X3NoYXJlZF9r
ZXksICZoYXNoX2N0eCk7Cit9CisKK3ZvaWQgSFJTU19kZWNhcCh1aW50OF90IG91dF9zaGFyZWRf
a2V5W0hSU1NfS0VZX0JZVEVTXSwKKyAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgSFJTU19w
cml2YXRlX2tleSAqaW5fcHJpdiwKKyAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpjaXBo
ZXJ0ZXh0LCBzaXplX3QgY2lwaGVydGV4dF9sZW4pIHsKKyAgY29uc3Qgc3RydWN0IHByaXZhdGVf
a2V5ICpwcml2ID0KKyAgICAgIHByaXZhdGVfa2V5X2Zyb21fZXh0ZXJuYWwoKHN0cnVjdCBIUlNT
X3ByaXZhdGVfa2V5ICopaW5fcHJpdik7CisKKyAgLy8gVGhpcyBpcyBITUFDLCBleHBhbmRlZCBp
bmxpbmUgcmF0aGVyIHRoYW4gdXNpbmcgdGhlIHxITUFDfCBmdW5jdGlvbiBzbyB0aGF0CisgIC8v
IHdlIGNhbiBhdm9pZCBkZWFsaW5nIHdpdGggcG9zc2libGUgYWxsb2NhdGlvbiBmYWlsdXJlcyBh
bmQgc28ga2VlcCB0aGlzCisgIC8vIGZ1bmN0aW9uIGluZmFsbGlibGUuCisgIHVpbnQ4X3QgbWFz
a2VkX2tleVtTSEEyNTZfQ0JMT0NLXTsKKyAgT1BFTlNTTF9TVEFUSUNfQVNTRVJUKHNpemVvZihw
cml2LT5obWFjX2tleSkgPD0gc2l6ZW9mKG1hc2tlZF9rZXkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIkhSU1MgSE1BQyBrZXkgbGFyZ2VyIHRoYW4gU0hBLTI1NiBibG9jayBzaXplIik7Cisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHByaXYtPmhtYWNfa2V5KTsgaSsrKSB7Cisg
ICAgbWFza2VkX2tleVtpXSA9IHByaXYtPmhtYWNfa2V5W2ldIF4gMHgzNjsKKyAgfQorICBPUEVO
U1NMX21lbXNldChtYXNrZWRfa2V5ICsgc2l6ZW9mKHByaXYtPmhtYWNfa2V5KSwgMHgzNiwKKyAg
ICAgICAgICAgICAgICAgc2l6ZW9mKG1hc2tlZF9rZXkpIC0gc2l6ZW9mKHByaXYtPmhtYWNfa2V5
KSk7CisKKyAgU0hBMjU2X0NUWCBoYXNoX2N0eDsKKyAgU0hBMjU2X0luaXQoJmhhc2hfY3R4KTsK
KyAgU0hBMjU2X1VwZGF0ZSgmaGFzaF9jdHgsIG1hc2tlZF9rZXksIHNpemVvZihtYXNrZWRfa2V5
KSk7CisgIFNIQTI1Nl9VcGRhdGUoJmhhc2hfY3R4LCBjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X2xl
bik7CisgIHVpbnQ4X3QgaW5uZXJfZGlnZXN0W1NIQTI1Nl9ESUdFU1RfTEVOR1RIXTsKKyAgU0hB
MjU2X0ZpbmFsKGlubmVyX2RpZ2VzdCwgJmhhc2hfY3R4KTsKKworICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemVvZihwcml2LT5obWFjX2tleSk7IGkrKykgeworICAgIG1hc2tlZF9rZXlbaV0g
Xj0gKDB4NWMgXiAweDM2KTsKKyAgfQorICBPUEVOU1NMX21lbXNldChtYXNrZWRfa2V5ICsgc2l6
ZW9mKHByaXYtPmhtYWNfa2V5KSwgMHg1YywKKyAgICAgICAgICAgICAgICAgc2l6ZW9mKG1hc2tl
ZF9rZXkpIC0gc2l6ZW9mKHByaXYtPmhtYWNfa2V5KSk7CisKKyAgU0hBMjU2X0luaXQoJmhhc2hf
Y3R4KTsKKyAgU0hBMjU2X1VwZGF0ZSgmaGFzaF9jdHgsIG1hc2tlZF9rZXksIHNpemVvZihtYXNr
ZWRfa2V5KSk7CisgIFNIQTI1Nl9VcGRhdGUoJmhhc2hfY3R4LCBpbm5lcl9kaWdlc3QsIHNpemVv
Zihpbm5lcl9kaWdlc3QpKTsKKyAgT1BFTlNTTF9TVEFUSUNfQVNTRVJUKEhSU1NfS0VZX0JZVEVT
ID09IFNIQTI1Nl9ESUdFU1RfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICAgICAgIkhSU1Mg
c2hhcmVkIGtleSBsZW5ndGggaW5jb3JyZWN0Iik7CisgIFNIQTI1Nl9GaW5hbChvdXRfc2hhcmVk
X2tleSwgJmhhc2hfY3R4KTsKKworICBzdHJ1Y3QgcG9seSBjOworICAvLyBJZiB0aGUgY2lwaGVy
dGV4dCBpcyBwdWJsaWNseSBpbnZhbGlkIHRoZW4gYSByYW5kb20gc2hhcmVkIGtleSBpcyBzdGls
bAorICAvLyByZXR1cm5lZCB0byBzaW1wbHkgdGhlIGxvZ2ljIG9mIHRoZSBjYWxsZXIsIGJ1dCB0
aGlzIHBhdGggaXMgbm90IGNvbnN0YW50CisgIC8vIHRpbWUuCisgIGlmIChjaXBoZXJ0ZXh0X2xl
biAhPSBIUlNTX0NJUEhFUlRFWFRfQllURVMgfHwKKyAgICAgICFwb2x5X3VubWFyc2hhbCgmYywg
Y2lwaGVydGV4dCkpIHsKKyAgICByZXR1cm47CisgIH0KKworICBzdHJ1Y3QgcG9seSBmLCBjZjsK
KyAgc3RydWN0IHBvbHkzIGNmMywgbTM7CisgIHBvbHlfZnJvbV9wb2x5MygmZiwgJnByaXYtPmYp
OworICBwb2x5X211bCgmY2YsICZjLCAmZik7CisgIHBvbHkzX2Zyb21fcG9seSgmY2YzLCAmY2Yp
OworICAvLyBOb3RlIHRoYXQgY2YzIGlzIG5vdCByZWR1Y2VkIG1vZCDOpihOKS4gVGhhdCByZWR1
Y3Rpb24gaXMgZGVmZXJyZWQuCisgIEhSU1NfcG9seTNfbXVsKCZtMywgJmNmMywgJnByaXYtPmZf
aW52ZXJzZSk7CisKKyAgc3RydWN0IHBvbHkgbSwgbV9saWZ0ZWQ7CisgIHBvbHlfZnJvbV9wb2x5
MygmbSwgJm0zKTsKKyAgcG9seV9saWZ0KCZtX2xpZnRlZCwgJm0pOworCisgIHN0cnVjdCBwb2x5
IHI7CisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOOyBpKyspIHsKKyAgICByLnZbaV0gPSBj
LnZbaV0gLSBtX2xpZnRlZC52W2ldOworICB9CisgIHBvbHlfbXVsKCZyLCAmciwgJnByaXYtPnBo
X2ludmVyc2UpOworICBwb2x5X21vZF9waGlOKCZyKTsKKyAgcG9seV9jbGFtcCgmcik7CisKKyAg
c3RydWN0IHBvbHkzIHIzOworICBjcnlwdG9fd29yZF90IG9rID0gcG9seTNfZnJvbV9wb2x5X2No
ZWNrZWQoJnIzLCAmcik7CisKKyAgLy8gW05UUlVDT01QXSBzZWN0aW9uIDUuMSBpbmNsdWRlcyBS
ZUVuYzIgYW5kIGEgcHJvb2YgdGhhdCBpdCdzIHZhbGlkLiBSYXRoZXIKKyAgLy8gdGhhbiBkbyBh
biBleHBlbnNpdmUgfHBvbHlfbXVsfCwgaXQgcmVidWlsZHMgfGMnfCBmcm9tIHxjIC0gbGlmdCht
KXwKKyAgLy8gKGNhbGxlZCB8YnwpIHdpdGg6CisgIC8vICAgdCA9ICjiiJJiKDEpL04pIG1vZCBR
CisgIC8vICAgYycgPSBiICsgdM6mKE4pICsgbGlmdChtKSBtb2QgUQorICAvLworICAvLyBXaGVu
IHBvbHlub21pYWxzIGFyZSB0cmFuc21pdHRlZCwgdGhlIGZpbmFsIGNvZWZmaWNpZW50IGlzIG9t
aXR0ZWQgYW5kCisgIC8vIHxwb2x5X3VubWFyc2hhbHwgc2V0cyBpdCBzdWNoIHRoYXQgZigxKSA9
PSAwLiBUaHVzIGMoMSkgPT0gMC4gQWxzbywKKyAgLy8gfHBvbHlfbGlmdHwgbXVsdGlwbGllcyB0
aGUgcmVzdWx0IGJ5ICh4LTEpIGFuZCB0aGVyZWZvcmUgZXZhbHVhdGluZyBhCisgIC8vIGxpZnRl
ZCBwb2x5bm9taWFsIGF0IDEgaXMgYWxzbyB6ZXJvLiBUaHVzIGxpZnQobSkoMSkgPT0gMCBhbmQg
c28KKyAgLy8gKGMgLSBsaWZ0KG0pKSgxKSA9PSAwLgorICAvLworICAvLyBBbHRob3VnaCB3ZSBk
ZWZlciB0aGUgcmVkdWN0aW9uIGFib3ZlLCB8YnwgaXMgY29uY2VwdHVhbGx5IHJlZHVjZWQgbW9k
CisgIC8vIM6mKE4pLiBJbiBvcmRlciB0byBkbyB0aGF0IHJlZHVjdGlvbiBvbmUgc3VidHJhY3Rz
IHxjW04tMV18IGZyb20gZXZlcnkKKyAgLy8gY29lZmZpY2llbnQuIFRoZXJlZm9yZSBiKDEpID0g
LWNbTi0xXcOXTi4gVGhlIHZhbHVlIG9mIHx0fCwgYWJvdmUsIHRoZW4gaXMKKyAgLy8ganVzdCBy
ZWNvdmVyaW5nIHxjW04tMV18LCBhbmQgYWRkaW5nIHTOpihOKSBpcyBzaW1wbHkgdW5kb2luZyB0
aGUgcmVkdWN0aW9uLgorICAvLyBUaGVyZWZvcmUgYiArIHTOpihOKSArIGxpZnQobSkgPSBjIGJ5
IGNvbnN0cnVjdGlvbiBhbmQgd2UgZG9uJ3QgbmVlZCB0bworICAvLyByZWNvdmVyIHxjfCBhdCBh
bGwgc28gbG9uZyBhcyB3ZSBkbyB0aGUgY2hlY2tzIGluCisgIC8vIHxwb2x5M19mcm9tX3BvbHlf
Y2hlY2tlZHwuCisgIC8vCisgIC8vIFRoZSB8cG9seV9tYXJzaGFsfCBoZXJlIHRoZW4gaXMganVz
dCBjb25maXJtaW5nIHRoYXQgfHBvbHlfdW5tYXJzaGFsfCBpcworICAvLyBzdHJpY3QgYW5kIGNv
dWxkIGJlIG9taXR0ZWQuCisKKyAgdWludDhfdCBleHBlY3RlZF9jaXBoZXJ0ZXh0W0hSU1NfQ0lQ
SEVSVEVYVF9CWVRFU107CisgIE9QRU5TU0xfU1RBVElDX0FTU0VSVChIUlNTX0NJUEhFUlRFWFRf
QllURVMgPT0gUE9MWV9CWVRFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICJjaXBoZXJ0ZXh0
IGlzIHRoZSB3cm9uZyBzaXplIik7CisgIGFzc2VydChjaXBoZXJ0ZXh0X2xlbiA9PSBzaXplb2Yo
ZXhwZWN0ZWRfY2lwaGVydGV4dCkpOworICBwb2x5X21hcnNoYWwoZXhwZWN0ZWRfY2lwaGVydGV4
dCwgJmMpOworCisgIHVpbnQ4X3QgbV9ieXRlc1tIUlNTX1BPTFkzX0JZVEVTXTsKKyAgdWludDhf
dCByX2J5dGVzW0hSU1NfUE9MWTNfQllURVNdOworICBwb2x5X21hcnNoYWxfbW9kMyhtX2J5dGVz
LCAmbSk7CisgIHBvbHlfbWFyc2hhbF9tb2QzKHJfYnl0ZXMsICZyKTsKKworICBvayAmPSBjb25z
dGFudF90aW1lX2lzX3plcm9fdyhDUllQVE9fbWVtY21wKGNpcGhlcnRleHQsIGV4cGVjdGVkX2Np
cGhlcnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZW9mKGV4cGVjdGVkX2NpcGhlcnRleHQpKSk7CisKKyAgdWludDhfdCBzaGFyZWRfa2V5WzMy
XTsKKyAgU0hBMjU2X0luaXQoJmhhc2hfY3R4KTsKKyAgU0hBMjU2X1VwZGF0ZSgmaGFzaF9jdHgs
IGtTaGFyZWRLZXksIHNpemVvZihrU2hhcmVkS2V5KSk7CisgIFNIQTI1Nl9VcGRhdGUoJmhhc2hf
Y3R4LCBtX2J5dGVzLCBzaXplb2YobV9ieXRlcykpOworICBTSEEyNTZfVXBkYXRlKCZoYXNoX2N0
eCwgcl9ieXRlcywgc2l6ZW9mKHJfYnl0ZXMpKTsKKyAgU0hBMjU2X1VwZGF0ZSgmaGFzaF9jdHgs
IGV4cGVjdGVkX2NpcGhlcnRleHQsIHNpemVvZihleHBlY3RlZF9jaXBoZXJ0ZXh0KSk7CisgIFNI
QTI1Nl9GaW5hbChzaGFyZWRfa2V5LCAmaGFzaF9jdHgpOworCisgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzaXplb2Yoc2hhcmVkX2tleSk7IGkrKykgeworICAgIG91dF9zaGFyZWRfa2V5W2ld
ID0KKyAgICAgICAgY29uc3RhbnRfdGltZV9zZWxlY3RfOChvaywgc2hhcmVkX2tleVtpXSwgb3V0
X3NoYXJlZF9rZXlbaV0pOworICB9Cit9CisKK3ZvaWQgSFJTU19tYXJzaGFsX3B1YmxpY19rZXko
dWludDhfdCBvdXRbSFJTU19QVUJMSUNfS0VZX0JZVEVTXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgc3RydWN0IEhSU1NfcHVibGljX2tleSAqaW5fcHViKSB7CisgIGNvbnN0
IHN0cnVjdCBwdWJsaWNfa2V5ICpwdWIgPQorICAgICAgcHVibGljX2tleV9mcm9tX2V4dGVybmFs
KChzdHJ1Y3QgSFJTU19wdWJsaWNfa2V5ICopaW5fcHViKTsKKyAgcG9seV9tYXJzaGFsKG91dCwg
JnB1Yi0+cGgpOworfQorCitpbnQgSFJTU19wYXJzZV9wdWJsaWNfa2V5KHN0cnVjdCBIUlNTX3B1
YmxpY19rZXkgKm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBp
bltIUlNTX1BVQkxJQ19LRVlfQllURVNdKSB7CisgIHN0cnVjdCBwdWJsaWNfa2V5ICpwdWIgPSBw
dWJsaWNfa2V5X2Zyb21fZXh0ZXJuYWwob3V0KTsKKyAgaWYgKCFwb2x5X3VubWFyc2hhbCgmcHVi
LT5waCwgaW4pKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgT1BFTlNTTF9tZW1zZXQoJnB1Yi0+
cGgudltOXSwgMCwgMyAqIHNpemVvZih1aW50MTZfdCkpOworICByZXR1cm4gMTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vaHJzcy9ocnNzX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2hyc3MvaHJz
c190ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MzI1NWQ5OGE0NWE3NDY2MjkxZmM4OTRhOTkzYTM4MDli
OWMyMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2hyc3MvaHJzc190ZXN0LmNjCkBA
IC0wLDAgKzEsNDk2IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTgsIEdvb2dsZSBJbmMuCisgKgor
ICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhp
cyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVy
ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlN
UyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJ
TkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBT
UEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5Z
IERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEg
T1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdF
TkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENP
Tk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICov
CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSA8b3BlbnNzbC9jcHUuaD4K
KyNpbmNsdWRlIDxvcGVuc3NsL2hyc3MuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KKwor
I2luY2x1ZGUgIi4uL3Rlc3QvYWJpX3Rlc3QuaCIKKyNpbmNsdWRlICIuLi90ZXN0L3Rlc3RfdXRp
bC5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisKKy8vIHBvbHkyX2Zyb21fYml0cyB0YWtlcyB0
aGUgbGVhc3Qtc2lnbmlmaWNhbnQgYml0IGZyb20gZWFjaCBieXRlIG9mIHxpbnwgYW5kCisvLyBz
ZXRzIHRoZSBiaXRzIG9mIHwqb3V0fCB0byBtYXRjaC4KK3N0YXRpYyB2b2lkIHBvbHkyX2Zyb21f
Yml0cyhzdHJ1Y3QgcG9seTIgKm91dCwgY29uc3QgdWludDhfdCBpbltOXSkgeworICBjcnlwdG9f
d29yZF90ICp3b3JkcyA9IG91dC0+djsKKyAgdW5zaWduZWQgc2hpZnQgPSAwOworICBjcnlwdG9f
d29yZF90IHdvcmQgPSAwOworCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOOyBpKyspIHsK
KyAgICB3b3JkID4+PSAxOworICAgIHdvcmQgfD0gKGNyeXB0b193b3JkX3QpKGluW2ldICYgMSkg
PDwgKEJJVFNfUEVSX1dPUkQgLSAxKTsKKyAgICBzaGlmdCsrOworCisgICAgaWYgKHNoaWZ0ID09
IEJJVFNfUEVSX1dPUkQpIHsKKyAgICAgICp3b3JkcyA9IHdvcmQ7CisgICAgICB3b3JkcysrOwor
ICAgICAgd29yZCA9IDA7CisgICAgICBzaGlmdCA9IDA7CisgICAgfQorICB9CisKKyAgd29yZCA+
Pj0gQklUU19QRVJfV09SRCAtIHNoaWZ0OworICAqd29yZHMgPSB3b3JkOworfQorCitURVNUKEhS
U1MsIFBvbHkyUm90YXRlUmlnaHQpIHsKKyAgdWludDhfdCBiaXRzW05dOworICBSQU5EX2J5dGVz
KGJpdHMsIHNpemVvZihiaXRzKSk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTjsgaSsrKSB7
CisgICAgYml0c1tpXSAmPSAxOworICB9OworCisgIHN0cnVjdCBwb2x5MiBwLCBvcmlnLCBzaGlm
dGVkOworICBwb2x5Ml9mcm9tX2JpdHMoJnAsIGJpdHMpOworICBPUEVOU1NMX21lbWNweSgmb3Jp
ZywgJnAsIHNpemVvZihvcmlnKSk7CisKKyAgLy8gVGVzdCB8SFJTU19wb2x5Ml9yb3RyX2NvbnN0
dGltZXwgYnkgbWFudWFsbHkgcm90YXRpbmcgfGJpdHN8IHN0ZXAtYnktc3RlcAorICAvLyBhbmQg
dGVzdGluZyBldmVyeSBwb3NzaWJsZSBzaGlmdCB0byBlbnN1cmUgdGhhdCBpdCBwcm9kdWNlcyB0
aGUgY29ycmVjdAorICAvLyBhbnN3ZXIuCisgIGZvciAoc2l6ZV90IHNoaWZ0ID0gMDsgc2hpZnQg
PD0gTjsgc2hpZnQrKykgeworICAgIFNDT1BFRF9UUkFDRShzaGlmdCk7CisKKyAgICBPUEVOU1NM
X21lbWNweSgmcCwgJm9yaWcsIHNpemVvZihvcmlnKSk7CisgICAgSFJTU19wb2x5Ml9yb3RyX2Nv
bnN0dGltZSgmcCwgc2hpZnQpOworICAgIHBvbHkyX2Zyb21fYml0cygmc2hpZnRlZCwgYml0cyk7
CisgICAgQVNTRVJUX0VRKAorICAgICAgICBCeXRlcyhyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QgKj4oJnNoaWZ0ZWQpLCBzaXplb2Yoc2hpZnRlZCkpLAorICAgICAgICBCeXRlcyhyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oJnApLCBzaXplb2YocCkpKTsKKworICAgIGNv
bnN0IHVpbnQ4X3QgbGVhc3Rfc2lnbmlmaWNhbnRfYml0ID0gYml0c1swXTsKKyAgICBPUEVOU1NM
X21lbW1vdmUoYml0cywgJmJpdHNbMV0sIE4tMSk7CisgICAgYml0c1tOLTFdID0gbGVhc3Rfc2ln
bmlmaWNhbnRfYml0OworICB9Cit9CisKKy8vIHBvbHkzX3JhbmQgc2V0cyB8cnwgdG8gYSByYW5k
b20gdmFsdWUgKGFsYmVpdCB3aXRoIGJpYXMpLgorc3RhdGljIHZvaWQgcG9seTNfcmFuZChwb2x5
MyAqcCkgeworICBSQU5EX2J5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCAqPihwKSwgc2l6
ZW9mKHBvbHkzKSk7CisgIHAtPnMudltXT1JEU19QRVJfUE9MWSAtIDFdICY9IChVSU5UNjRfQygx
KSA8PCBCSVRTX0lOX0xBU1RfV09SRCkgLSAxOworICBwLT5hLnZbV09SRFNfUEVSX1BPTFkgLSAx
XSAmPSAoVUlOVDY0X0MoMSkgPDwgQklUU19JTl9MQVNUX1dPUkQpIC0gMTsKKyAgLy8gKHMsIGEp
ID0gKDEsIDApIGlzIGludmFsaWQuIE1hcCB0aG9zZSB0byAtMS4KKyAgZm9yIChzaXplX3QgaiA9
IDA7IGogPCBXT1JEU19QRVJfUE9MWTsgaisrKSB7CisgICAgcC0+YS52W2pdIHw9IHAtPnMudltq
XTsKKyAgfQorfQorCisvLyBwb2x5M193b3JkX2FkZCBzZXRzICh8czF8LCB8YTF8KSArPSAofHMy
fCwgfGEyfCkuCitzdGF0aWMgdm9pZCBwb2x5M193b3JkX2FkZChjcnlwdG9fd29yZF90ICpzMSwg
Y3J5cHRvX3dvcmRfdCAqYTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjcnlw
dG9fd29yZF90IHMyLCBjb25zdCBjcnlwdG9fd29yZF90IGEyKSB7CisgIGNvbnN0IGNyeXB0b193
b3JkX3QgdCA9ICpzMSBeIGEyOworICAqczEgPSB0ICYgKHMyIF4gKmExKTsKKyAgKmExID0gKCph
MSBeIGEyKSB8ICh0IF4gczIpOworfQorCitURVNUKEhSU1MsIFBvbHkzSW52ZXJ0KSB7CisgIHBv
bHkzIHAsIGludmVyc2UsIHJlc3VsdDsKKyAgbWVtc2V0KCZwLCAwLCBzaXplb2YocCkpOworICBt
ZW1zZXQoJmludmVyc2UsIDAsIHNpemVvZihpbnZlcnNlKSk7CisgIG1lbXNldCgmcmVzdWx0LCAw
LCBzaXplb2YocmVzdWx0KSk7CisKKyAgLy8gVGhlIGludmVyc2Ugb2YgLTEgaXMgLTEuCisgIHAu
cy52WzBdID0gMTsKKyAgcC5hLnZbMF0gPSAxOworICBIUlNTX3BvbHkzX2ludmVydCgmaW52ZXJz
ZSwgJnApOworICBFWFBFQ1RfRVEoQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4oJnApLCBzaXplb2YocCkpLAorICAgICAgICAgICAgQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oJmludmVyc2UpLCBzaXplb2YoaW52ZXJzZSkpKTsKKworICAvLyBUaGUg
aW52ZXJzZSBvZiAxIGlzIDEuCisgIHAucy52WzBdID0gMDsKKyAgcC5hLnZbMF0gPSAxOworICBI
UlNTX3BvbHkzX2ludmVydCgmaW52ZXJzZSwgJnApOworICBFWFBFQ1RfRVEoQnl0ZXMocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJnApLCBzaXplb2YocCkpLAorICAgICAgICAgICAg
Qnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJmludmVyc2UpLCBzaXplb2Yo
aW52ZXJzZSkpKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDUwMDsgaSsrKSB7CisgICAg
cG9seTMgcjsKKyAgICBwb2x5M19yYW5kKCZyKTsKKyAgICBIUlNTX3BvbHkzX2ludmVydCgmaW52
ZXJzZSwgJnIpOworICAgIEhSU1NfcG9seTNfbXVsKCZyZXN1bHQsICZpbnZlcnNlLCAmcik7Cisg
ICAgLy8gcsOXcuKBu8K5ID0gMSwgYW5kIHxwfCBjb250YWlucyAxLgorICAgIEVYUEVDVF9FUSgK
KyAgICAgICAgQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCZwKSwgc2l6
ZW9mKHApKSwKKyAgICAgICAgQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+
KCZyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpOworICB9Cit9CisKK1RFU1QoSFJTUywgUG9seTNV
bnJlZHVjZWRJbnB1dCkgeworICAvLyBDaGVjayB0aGF0IHxwb2x5M19tdWx8IHdvcmtzIGNvcnJl
Y3RseSB3aXRoIGlucHV0cyB0aGF0IGFyZW4ndCByZWR1Y2VkIG1vZAorICAvLyDOpihOKS4KKyAg
cG9seTMgciwgaW52ZXJzZSwgcmVzdWx0LCBvbmU7CisgIHBvbHkzX3JhbmQoJnIpOworICBIUlNT
X3BvbHkzX2ludmVydCgmaW52ZXJzZSwgJnIpOworICBIUlNTX3BvbHkzX211bCgmcmVzdWx0LCAm
aW52ZXJzZSwgJnIpOworCisgIG1lbXNldCgmb25lLCAwLCBzaXplb2Yob25lKSk7CisgIG9uZS5h
LnZbMF0gPSAxOworICBFWFBFQ1RfRVEoQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90ICo+KCZvbmUpLCBzaXplb2Yob25lKSksCisgICAgICAgICAgICBCeXRlcyhyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oJnJlc3VsdCksIHNpemVvZihyZXN1bHQpKSk7CisKKyAg
Ly8gfHJ8IGlzIHByb2JhYmx5IGFscmVhZHkgbm90IHJlZHVjZWQgbW9kIM6mKE4pLCBidXQgYWRk
IHheNzAxIC0gMSBhbmQKKyAgLy8gcmVjb21wdXRlIHRvIGVuc3VyZSB0aGF0IHdlIGdldCB0aGUg
c2FtZSBhbnN3ZXIuIChTaW5jZSAoeF43MDEgLSAxKSDiiaEgMCBtb2QKKyAgLy8gzqYoTikuKQor
ICBwb2x5M193b3JkX2FkZCgmci5zLnZbMF0sICZyLmEudlswXSwgMSwgMSk7CisgIHBvbHkzX3dv
cmRfYWRkKCZyLnMudltXT1JEU19QRVJfUE9MWSAtIDFdLCAmci5hLnZbV09SRFNfUEVSX1BPTFkg
LSAxXSwgMCwKKyAgICAgICAgICAgICAgICAgVUlOVDY0X0MoMSkgPDwgQklUU19JTl9MQVNUX1dP
UkQpOworCisgIEhSU1NfcG9seTNfbXVsKCZyZXN1bHQsICZpbnZlcnNlLCAmcik7CisgIEVYUEVD
VF9FUShCeXRlcyhyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oJm9uZSksIHNpemVv
ZihvbmUpKSwKKyAgICAgICAgICAgIEJ5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCAqPigmcmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKTsKKworICAvLyBDaGVjayB0aGF0IHheNzAw
IMOXIDEgZ2l2ZXMgLXheNjk5IC0geF42OTgg4oCmIC0xLgorICBwb2x5MyB4NzAwOworICBtZW1z
ZXQoJng3MDAsIDAsIHNpemVvZih4NzAwKSk7CisgIHg3MDAuYS52W1dPUkRTX1BFUl9QT0xZLTFd
ID0gVUlOVDY0X0MoMSkgPDwgKEJJVFNfSU5fTEFTVF9XT1JEIC0gMSk7CisgIEhSU1NfcG9seTNf
bXVsKCZyZXN1bHQsICZvbmUsICZ4NzAwKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdP
UkRTX1BFUl9QT0xZLTE7IGkrKykgeworICAgIEVYUEVDVF9FUShDT05TVFRJTUVfVFJVRV9XLCBy
ZXN1bHQucy52W2ldKTsKKyAgICBFWFBFQ1RfRVEoQ09OU1RUSU1FX1RSVUVfVywgcmVzdWx0LmEu
dltpXSk7CisgIH0KKyAgRVhQRUNUX0VRKChVSU5UNjRfQygxKSA8PCAoQklUU19JTl9MQVNUX1dP
UkQgLSAxKSkgLSAxLAorICAgICAgICAgICAgcmVzdWx0LnMudltXT1JEU19QRVJfUE9MWSAtIDFd
KTsKKyAgRVhQRUNUX0VRKHJlc3VsdC5zLnZbV09SRFNfUEVSX1BPTFkgLSAxXSwgcmVzdWx0LmEu
dltXT1JEU19QRVJfUE9MWSAtIDFdKTsKK30KKworVEVTVChIUlNTLCBCYXNpYykgeworICB1aW50
OF90IGdlbmVyYXRlX2tleV9lbnRyb3B5W0hSU1NfR0VORVJBVEVfS0VZX0JZVEVTXTsKKyAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihnZW5lcmF0ZV9rZXlfZW50cm9weSk7IGkrKykg
eworICAgIGdlbmVyYXRlX2tleV9lbnRyb3B5W2ldID0gaTsKKyAgfQorCisgIEhSU1NfcHVibGlj
X2tleSBwdWI7CisgIEhSU1NfcHJpdmF0ZV9rZXkgcHJpdjsKKyAgSFJTU19nZW5lcmF0ZV9rZXko
JnB1YiwgJnByaXYsIGdlbmVyYXRlX2tleV9lbnRyb3B5KTsKKworICB1aW50OF90IGVuY2FwX2Vu
dHJvcHlbSFJTU19FTkNBUF9CWVRFU107CisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXpl
b2YoZW5jYXBfZW50cm9weSk7IGkrKykgeworICAgIGVuY2FwX2VudHJvcHlbaV0gPSBpOworICB9
CisKKyAgSFJTU19wdWJsaWNfa2V5IHB1YjI7CisgIHVpbnQ4X3QgcHViX2J5dGVzW0hSU1NfUFVC
TElDX0tFWV9CWVRFU107CisgIEhSU1NfbWFyc2hhbF9wdWJsaWNfa2V5KHB1Yl9ieXRlcywgJnB1
Yik7CisgIEFTU0VSVF9UUlVFKEhSU1NfcGFyc2VfcHVibGljX2tleSgmcHViMiwgcHViX2J5dGVz
KSk7CisKKyAgdWludDhfdCBjaXBoZXJ0ZXh0W0hSU1NfQ0lQSEVSVEVYVF9CWVRFU107CisgIHVp
bnQ4X3Qgc2hhcmVkX2tleVtIUlNTX0tFWV9CWVRFU107CisgIEhSU1NfZW5jYXAoY2lwaGVydGV4
dCwgc2hhcmVkX2tleSwgJnB1YjIsIGVuY2FwX2VudHJvcHkpOworCisgIHVpbnQ4X3Qgc2hhcmVk
X2tleTJbSFJTU19LRVlfQllURVNdOworICBIUlNTX2RlY2FwKHNoYXJlZF9rZXkyLCAmcHJpdiwg
Y2lwaGVydGV4dCwgc2l6ZW9mKGNpcGhlcnRleHQpKTsKKworICBFWFBFQ1RfRVEoQnl0ZXMoc2hh
cmVkX2tleSksIEJ5dGVzKHNoYXJlZF9rZXkyKSk7Cit9CisKK1RFU1QoSFJTUywgUmFuZG9tKSB7
CisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgdWludDhfdCBnZW5l
cmF0ZV9rZXlfZW50cm9weVtIUlNTX0dFTkVSQVRFX0tFWV9CWVRFU107CisgICAgUkFORF9ieXRl
cyhnZW5lcmF0ZV9rZXlfZW50cm9weSwgc2l6ZW9mKGdlbmVyYXRlX2tleV9lbnRyb3B5KSk7Cisg
ICAgU0NPUEVEX1RSQUNFKEJ5dGVzKGdlbmVyYXRlX2tleV9lbnRyb3B5KSk7CisKKyAgICBIUlNT
X3B1YmxpY19rZXkgcHViOworICAgIEhSU1NfcHJpdmF0ZV9rZXkgcHJpdjsKKyAgICBIUlNTX2dl
bmVyYXRlX2tleSgmcHViLCAmcHJpdiwgZ2VuZXJhdGVfa2V5X2VudHJvcHkpOworCisgICAgZm9y
ICh1bnNpZ25lZCBqID0gMDsgaiA8IDEwOyBqKyspIHsKKyAgICAgIHVpbnQ4X3QgZW5jYXBfZW50
cm9weVtIUlNTX0VOQ0FQX0JZVEVTXTsKKyAgICAgIFJBTkRfYnl0ZXMoZW5jYXBfZW50cm9weSwg
c2l6ZW9mKGVuY2FwX2VudHJvcHkpKTsKKyAgICAgIFNDT1BFRF9UUkFDRShCeXRlcyhlbmNhcF9l
bnRyb3B5KSk7CisKKyAgICAgIHVpbnQ4X3QgY2lwaGVydGV4dFtIUlNTX0NJUEhFUlRFWFRfQllU
RVNdOworICAgICAgdWludDhfdCBzaGFyZWRfa2V5W0hSU1NfS0VZX0JZVEVTXTsKKyAgICAgIEhS
U1NfZW5jYXAoY2lwaGVydGV4dCwgc2hhcmVkX2tleSwgJnB1YiwgZW5jYXBfZW50cm9weSk7CisK
KyAgICAgIHVpbnQ4X3Qgc2hhcmVkX2tleTJbSFJTU19LRVlfQllURVNdOworICAgICAgSFJTU19k
ZWNhcChzaGFyZWRfa2V5MiwgJnByaXYsIGNpcGhlcnRleHQsIHNpemVvZihjaXBoZXJ0ZXh0KSk7
CisgICAgICBFWFBFQ1RfRVEoQnl0ZXMoc2hhcmVkX2tleSksIEJ5dGVzKHNoYXJlZF9rZXkyKSk7
CisKKyAgICAgIHVpbnQzMl90IG9mZnNldDsKKyAgICAgIFJBTkRfYnl0ZXMoKHVpbnQ4X3QqKSAm
b2Zmc2V0LCBzaXplb2Yob2Zmc2V0KSk7CisgICAgICB1aW50OF90IGJpdDsKKyAgICAgIFJBTkRf
Ynl0ZXMoJmJpdCwgc2l6ZW9mKGJpdCkpOworICAgICAgY2lwaGVydGV4dFtvZmZzZXQgJSBzaXpl
b2YoY2lwaGVydGV4dCldIF49ICgxIDw8IChiaXQgJiA3KSk7CisgICAgICBIUlNTX2RlY2FwKHNo
YXJlZF9rZXkyLCAmcHJpdiwgY2lwaGVydGV4dCwgc2l6ZW9mKGNpcGhlcnRleHQpKTsKKyAgICAg
IEVYUEVDVF9ORShCeXRlcyhzaGFyZWRfa2V5KSwgQnl0ZXMoc2hhcmVkX2tleTIpKTsKKyAgICB9
CisgIH0KK30KKworVEVTVChIUlNTLCBHb2xkZW4pIHsKKyAgdWludDhfdCBnZW5lcmF0ZV9rZXlf
ZW50cm9weVtIUlNTX0dFTkVSQVRFX0tFWV9CWVRFU107CisgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBIUlNTX1NBTVBMRV9CWVRFUzsgaSsrKSB7CisgICAgZ2VuZXJhdGVfa2V5X2VudHJvcHlb
aV0gPSBpOworICB9CisgIGZvciAodW5zaWduZWQgaSA9IEhSU1NfU0FNUExFX0JZVEVTOyBpIDwg
MiAqIEhSU1NfU0FNUExFX0JZVEVTOyBpKyspIHsKKyAgICBnZW5lcmF0ZV9rZXlfZW50cm9weVtp
XSA9IDIgKyBpOworICB9CisgIGZvciAodW5zaWduZWQgaSA9IDIgKiBIUlNTX1NBTVBMRV9CWVRF
UzsgaSA8IHNpemVvZihnZW5lcmF0ZV9rZXlfZW50cm9weSk7CisgICAgICAgaSsrKSB7CisgICAg
Z2VuZXJhdGVfa2V5X2VudHJvcHlbaV0gPSA0ICsgaTsKKyAgfQorCisgIEhSU1NfcHVibGljX2tl
eSBwdWI7CisgIEhSU1NfcHJpdmF0ZV9rZXkgcHJpdjsKKyAgT1BFTlNTTF9tZW1zZXQoJnB1Yiwg
MCwgc2l6ZW9mKHB1YikpOworICBPUEVOU1NMX21lbXNldCgmcHJpdiwgMCwgc2l6ZW9mKHByaXYp
KTsKKyAgSFJTU19nZW5lcmF0ZV9rZXkoJnB1YiwgJnByaXYsIGdlbmVyYXRlX2tleV9lbnRyb3B5
KTsKKworICBzdGF0aWMgY29uc3QgdWludDhfdCBrRXhwZWN0ZWRQdWJbSFJTU19QVUJMSUNfS0VZ
X0JZVEVTXSA9IHsKKyAgICAgIDB4NGEsIDB4MjEsIDB4MzksIDB4N2MsIDB4YjQsIDB4YTYsIDB4
NTgsIDB4MTUsIDB4MzUsIDB4NzcsIDB4ZTQsIDB4MmEsCisgICAgICAweDAyLCAweDc5LCAweGMw
LCAweDAyLCAweGUyLCAweDIxLCAweDI3LCAweDVmLCAweDQ5LCAweGM3LCAweDJjLCAweDE0LAor
ICAgICAgMHhiNiwgMHhlMCwgMHg2NywgMHhjMiwgMHhjNywgMHgwOSwgMHg2MiwgMHgwYywgMHhl
NSwgMHgyMywgMHg5YywgMHg0MCwKKyAgICAgIDB4ZDcsIDB4N2UsIDB4ZjUsIDB4NTUsIDB4NWEs
IDB4YTIsIDB4ZDAsIDB4OWYsIDB4ZDMsIDB4OGMsIDB4NjcsIDB4N2IsCisgICAgICAweDQ4LCAw
eGE0LCAweDUzLCAweDhkLCAweDM5LCAweGIxLCAweGNjLCAweDk5LCAweDI5LCAweGY3LCAweDgz
LCAweGJmLAorICAgICAgMHg2ZiwgMHg5YiwgMHgxNiwgMHg3MywgMHgyMywgMHhjYywgMHhjMywg
MHg4NiwgMHg5OCwgMHhiMSwgMHg3YywgMHg1MywKKyAgICAgIDB4YjEsIDB4ZjUsIDB4ZjQsIDB4
ZGQsIDB4YzgsIDB4OTcsIDB4NWUsIDB4ZDMsIDB4NmQsIDB4NjMsIDB4Y2UsIDB4ZjMsCisgICAg
ICAweGEyLCAweGY2LCAweGVmLCAweDk0LCAweGVkLCAweDRhLCAweDNlLCAweGU2LCAweDRiLCAw
eGEyLCAweGZiLCAweDg3LAorICAgICAgMHhhMywgMHhiYywgMHg2NSwgMHgxYywgMHgxNywgMHg2
NCwgMHgyNSwgMHhhNywgMHhiNCwgMHhhMSwgMHhlNiwgMHg4NCwKKyAgICAgIDB4MDYsIDB4NzIs
IDB4MGMsIDB4MjgsIDB4ZTgsIDB4ZmMsIDB4YWEsIDB4Y2EsIDB4ZjgsIDB4MjAsIDB4NzksIDB4
ODksCisgICAgICAweGE5LCAweGYwLCAweDYwLCAweGRmLCAweGQ2LCAweGQ0LCAweGUwLCAweGFm
LCAweDk5LCAweDU0LCAweDIxLCAweGFmLAorICAgICAgMHg3NiwgMHhkNSwgMHg5YSwgMHgzMSwg
MHg4MCwgMHhlYSwgMHg3ZiwgMHgwMywgMHg2YywgMHgxNCwgMHg3NCwgMHgwNiwKKyAgICAgIDB4
OWMsIDB4OTMsIDB4ZTMsIDB4OTMsIDB4Y2MsIDB4NDYsIDB4NGQsIDB4ODIsIDB4ZGEsIDB4ZGYs
IDB4NjcsIDB4ZTksCisgICAgICAweDZkLCAweDU4LCAweDJiLCAweDQ5LCAweGYzLCAweDEwLCAw
eDcxLCAweGEwLCAweGM1LCAweGVjLCAweGEwLCAweDI5LAorICAgICAgMHhkNywgMHg3YywgMHg0
MywgMHhkNSwgMHgwNSwgMHg3ZSwgMHgxNCwgMHg4YywgMHgzOSwgMHgyOCwgMHhmOSwgMHg0NiwK
KyAgICAgIDB4M2QsIDB4YzEsIDB4MTAsIDB4NmMsIDB4MmYsIDB4YWEsIDB4Y2EsIDB4MTEsIDB4
ODcsIDB4NmEsIDB4ZTIsIDB4YjEsCisgICAgICAweGY2LCAweDMxLCAweDc2LCAweGIwLCAweGRj
LCAweDMwLCAweDhhLCAweDk3LCAweDdkLCAweGRjLCAweGU0LCAweGQxLAorICAgICAgMHgxOCwg
MHhlOSwgMHgwMywgMHg5MSwgMHhmNSwgMHhkMiwgMHg5NCwgMHg0ZCwgMHg3MSwgMHhmNywgMHgz
NSwgMHhjOCwKKyAgICAgIDB4M2UsIDB4NDYsIDB4YWYsIDB4YTMsIDB4ZWIsIDB4MzUsIDB4MDcs
IDB4MDEsIDB4NzcsIDB4YzUsIDB4NTgsIDB4Y2EsCisgICAgICAweDgyLCAweDY3LCAweDNlLCAw
eDRmLCAweDAxLCAweDg4LCAweGE0LCAweGEwLCAweGVhLCAweDBhLCAweGI3LCAweDEzLAorICAg
ICAgMHgwNiwgMHhiZSwgMHhiNiwgMHg2MSwgMHhhNCwgMHhhMiwgMHgyOCwgMHhlMiwgMHgzMiwg
MHhjZiwgMHgyNSwgMHg0NiwKKyAgICAgIDB4Y2YsIDB4Y2UsIDB4ZjUsIDB4NTcsIDB4OWIsIDB4
NzQsIDB4OGYsIDB4ZmQsIDB4YmMsIDB4ZmEsIDB4M2EsIDB4YTIsCisgICAgICAweDE4LCAweDIy
LCAweGYxLCAweGIxLCAweDQzLCAweDEyLCAweGU4LCAweGUyLCAweGUzLCAweDA2LCAweGU2LCAw
eDFjLAorICAgICAgMHhhNywgMHg3NiwgMHgyZCwgMHgwZCwgMHhlNSwgMHg1ZiwgMHhiZCwgMHg4
ZiwgMHhhMCwgMHg5NSwgMHhjZCwgMHhlOSwKKyAgICAgIDB4MjgsIDB4ZGIsIDB4Y2MsIDB4ZTUs
IDB4NjYsIDB4MzMsIDB4ZDQsIDB4NGIsIDB4ZjksIDB4MGMsIDB4NDIsIDB4OWIsCisgICAgICAw
eDI3LCAweGVlLCAweDExLCAweGQwLCAweGUzLCAweDBiLCAweDlkLCAweGNlLCAweDJjLCAweDkx
LCAweDdhLCAweDBlLAorICAgICAgMHhiOCwgMHhkZSwgMHgzMSwgMHg3MywgMHg4NiwgMHg4ZSwg
MHgzNCwgMHg1OSwgMHg5MywgMHgyZSwgMHgzNywgMHg5ZCwKKyAgICAgIDB4YzIsIDB4M2UsIDB4
ODksIDB4MGIsIDB4NDcsIDB4ZmYsIDB4YTYsIDB4NTUsIDB4MjEsIDB4ZTYsIDB4NGYsIDB4NzIs
CisgICAgICAweDdjLCAweGNjLCAweGU1LCAweGI4LCAweDE4LCAweDJjLCAweDEwLCAweGNiLCAw
eGNlLCAweDQ4LCAweGE1LCAweGM1LAorICAgICAgMHgyNiwgMHhiNiwgMHgxOSwgMHg3NiwgMHhj
NSwgMHgzOCwgMHhmMCwgMHgzOCwgMHg3MiwgMHhlYywgMHgyMiwgMHhmOSwKKyAgICAgIDB4MjUs
IDB4ZGUsIDB4MWMsIDB4MGMsIDB4MWIsIDB4M2UsIDB4NDMsIDB4YzUsIDB4NWMsIDB4OGMsIDB4
ZGIsIDB4ZjEsCisgICAgICAweDQyLCAweDY2LCAweGJjLCAweGRmLCAweGEwLCAweDgyLCAweDRi
LCAweGVjLCAweGUxLCAweDUwLCAweDQyLCAweDU3LAorICAgICAgMHg4NCwgMHg2MCwgMHhmZCwg
MHg4OSwgMHgxMiwgMHgxYiwgMHhmNiwgMHhmOSwgMHg0ZCwgMHgwZCwgMHgxNiwgMHhlOCwKKyAg
ICAgIDB4YTQsIDB4ZTIsIDB4NjcsIDB4MmMsIDB4OGYsIDB4MjIsIDB4ZWEsIDB4YmEsIDB4NDYs
IDB4MzQsIDB4Y2UsIDB4OTcsCisgICAgICAweDhiLCAweDRjLCAweDM4LCAweDBlLCAweDE2LCAw
eDgyLCAweGI2LCAweGYzLCAweDM0LCAweDM4LCAweDA3LCAweDg3LAorICAgICAgMHg3MywgMHgy
YSwgMHgzZCwgMHg4MCwgMHg1NiwgMHg0YiwgMHg4NSwgMHg2NywgMHhjYSwgMHgyYSwgMHgxOSwg
MHhiNiwKKyAgICAgIDB4YjYsIDB4MmMsIDB4ZmUsIDB4ZDgsIDB4MDIsIDB4ZTUsIDB4YWQsIDB4
ZDAsIDB4NjEsIDB4NzksIDB4NzMsIDB4YWIsCisgICAgICAweGRhLCAweDNiLCAweGE0LCAweDUx
LCAweGIzLCAweGY3LCAweDg1LCAweDk5LCAweGIyLCAweGQwLCAweDY0LCAweDk3LAorICAgICAg
MHhiNywgMHgzYywgMHgwZSwgMHg1OCwgMHhkZiwgMHhkMiwgMHg5OCwgMHg5OCwgMHgxOCwgMHgx
YSwgMHhmNSwgMHg1OSwKKyAgICAgIDB4Y2QsIDB4YzUsIDB4NDgsIDB4MTcsIDB4MTAsIDB4OWYs
IDB4ZDgsIDB4MTksIDB4YmQsIDB4ZDAsIDB4NDIsIDB4NzEsCisgICAgICAweDFjLCAweDMwLCAw
eGM2LCAweDc2LCAweGU5LCAweGIwLCAweGVlLCAweGY1LCAweDM4LCAweDA1LCAweGJlLCAweDli
LAorICAgICAgMHg2YywgMHgwZCwgMHhiMCwgMHhkMCwgMHhkYSwgMHgxYywgMHg4OSwgMHhiZCwg
MHg0MCwgMHg1ZCwgMHhjMiwgMHg1YSwKKyAgICAgIDB4YmUsIDB4ODMsIDB4YTYsIDB4YjUsIDB4
NDcsIDB4YTcsIDB4ZjgsIDB4YjksIDB4YmYsIDB4YTIsIDB4NjUsIDB4MTcsCisgICAgICAweDFl
LCAweGQ4LCAweDI4LCAweDQyLCAweGJlLCAweGIwLCAweDM1LCAweGY2LCAweDdiLCAweDg4LCAw
eDM4LCAweGJlLAorICAgICAgMHhmNSwgMHhiNSwgMHgxYiwgMHg2MywgMHg3YSwgMHg4MywgMHg5
MiwgMHgwZCwgMHg2NCwgMHhhZCwgMHg5MiwgMHg1OSwKKyAgICAgIDB4OTcsIDB4NTUsIDB4NWMs
IDB4NjAsIDB4YWIsIDB4NDgsIDB4OGUsIDB4MjMsIDB4MjcsIDB4MjIsIDB4NzUsIDB4M2IsCisg
ICAgICAweDdjLCAweDljLCAweDY5LCAweDEzLCAweDUyLCAweDZiLCAweGFlLCAweGZkLCAweDM4
LCAweGU1LCAweDRiLCAweDM2LAorICAgICAgMHg3OCwgMHg1NSwgMHg5MiwgMHhiNSwgMHg4Ziwg
MHgyNSwgMHhkZSwgMHgwZSwgMHg5MywgMHhlMywgMHgxZCwgMHg4MywKKyAgICAgIDB4NjIsIDB4
MDUsIDB4NmEsIDB4NWEsIDB4ZmYsIDB4N2YsIDB4NzcsIDB4ZjcsIDB4MWIsIDB4ZmMsIDB4MjEs
IDB4NDUsCisgICAgICAweGY3LCAweGI4LCAweGZhLCAweGNiLCAweDAwLCAweDVlLCAweDg1LCAw
eGY5LCAweDJmLCAweDE1LCAweDJmLCAweGNmLAorICAgICAgMHgxNywgMHg5ZSwgMHg4NCwgMHhm
NiwgMHhmNSwgMHgxNSwgMHg2ZSwgMHhkZCwgMHhiNCwgMHg3MywgMHg0NCwgMHhjMiwKKyAgICAg
IDB4MmMsIDB4NzQsIDB4YWUsIDB4MjcsIDB4NWYsIDB4MTksIDB4ZTcsIDB4NTEsIDB4NjEsIDB4
YzEsIDB4ODIsIDB4Y2UsCisgICAgICAweGYxLCAweDViLCAweGEwLCAweDZmLCAweDBiLCAweDEz
LCAweDEwLCAweDY4LCAweGI3LCAweGVlLCAweGZiLCAweDhhLAorICAgICAgMHg4NSwgMHhlMiwg
MHhkNiwgMHgxNywgMHg1NSwgMHgyNiwgMHhhNSwgMHhjNSwgMHhiMywgMHg5NCwgMHg0NSwgMHhk
ZiwKKyAgICAgIDB4NDksIDB4ZTYsIDB4NTAsIDB4ZjgsIDB4OTksIDB4ZDgsIDB4M2MsIDB4Y2Is
IDB4OTQsIDB4ODAsIDB4NjcsIDB4M2IsCisgICAgICAweDczLCAweGFjLCAweGY2LCAweDQ2LCAw
eDMxLCAweDYzLCAweGIzLCAweDFiLCAweDQ3LCAweGNlLCAweDQwLCAweDNmLAorICAgICAgMHg4
YywgMHhkMCwgMHg4MiwgMHhjNCwgMHg3OSwgMHgzYSwgMHg3YywgMHg0OCwgMHgxMCwgMHhlMywg
MHg5NywgMHg5OCwKKyAgICAgIDB4ZGMsIDB4MGIsIDB4NjIsIDB4NDIsIDB4ZmEsIDB4MjYsIDB4
MDUsIDB4ZjYsIDB4OGMsIDB4MzIsIDB4YTksIDB4YjYsCisgICAgICAweDJjLCAweDRmLCAweDg1
LCAweGQyLCAweDliLCAweGYzLCAweDg5LCAweDFmLCAweDkxLCAweGNhLCAweDEyLCAweDNkLAor
ICAgICAgMHhlMiwgMHhhOCwgMHgwYiwgMHhjYSwgMHg2NCwgMHgyOCwgMHgwZSwgMHhhNywgMHhm
ZCwgMHhkOCwgMHhhMywgMHhjYiwKKyAgICAgIDB4MGEsIDB4ZDksIDB4OTcsIDB4MmQsIDB4YzMs
IDB4ZjIsIDB4MzksIDB4NzQsIDB4ZGIsIDB4ZTMsIDB4OWEsIDB4ODcsCisgICAgICAweDFhLCAw
eGUwLCAweDMzLCAweGUzLCAweDkyLCAweGU4LCAweGRlLCAweGI1LCAweDA4LCAweDI4LCAweGNi
LCAweGQ3LAorICAgICAgMHhiNiwgMHg3OSwgMHhlYywgMHg3MSwgMHhjYywgMHhlNSwgMHhkMSwg
MHg0YiwgMHg4OSwgMHg5NiwgMHg1ZiwgMHhmYSwKKyAgICAgIDB4ZmQsIDB4NGIsIDB4ZDAsIDB4
YTgsIDB4NjYsIDB4MGQsIDB4YjQsIDB4YTcsIDB4NTEsIDB4NTYsIDB4YmMsIDB4YTcsCisgICAg
ICAweDc0LCAweDA3LCAweDdmLCAweGFlLCAweDBlLCAweGY2LCAweDljLCAweDEzLCAweGQ5LCAw
eGYyLCAweGVkLCAweDEyLAorICAgICAgMHhhOSwgMHg4NywgMHgzZSwgMHhiNywgMHg5ZCwgMHg1
MywgMHg4YSwgMHg4MiwgMHgyZCwgMHgwMywgMHgyZiwgMHhhYywKKyAgICAgIDB4OTQsIDB4ODQs
IDB4OTUsIDB4MDAsIDB4MjksIDB4MDksIDB4MDEsIDB4MzgsIDB4NjIsIDB4ZmYsIDB4YWYsIDB4
ZmQsCisgICAgICAweDEwLCAweDJiLCAweDMxLCAweDAzLCAweGIyLCAweDRmLCAweDUxLCAweGZi
LCAweDc2LCAweDI3LCAweDFlLCAweDI1LAorICAgICAgMHg4MiwgMHg3OSwgMHg2NSwgMHg2OSwg
MHhmYSwgMHgyNCwgMHhhZiwgMHhjYiwgMHhlOCwgMHg0MCwgMHg4ZCwgMHg3ZCwKKyAgICAgIDB4
ZDIsIDB4OWEsIDB4MTIsIDB4NjksIDB4MmYsIDB4ZTQsIDB4Y2UsIDB4OTksIDB4OTgsIDB4NGYs
IDB4NmMsIDB4NDYsCisgICAgICAweGZkLCAweDYzLCAweDQwLCAweDUwLCAweGVmLCAweDIyLCAw
eDAyLCAweDY4LCAweDJlLCAweDUzLCAweGJiLCAweDAwLAorICAgICAgMHhhMywgMHg2NSwgMHg2
MSwgMHgzZSwgMHg5NywgMHhkNCwgMHg1ZiwgMHhhMiwgMHhjMSwgMHg2NiwgMHhjZCwgMHgwNCwK
KyAgICAgIDB4ZGMsIDB4ZGEsIDB4NTUsIDB4MTAsIDB4MjgsIDB4MGQsIDB4NDAsIDB4MTEsIDB4
ZTYsIDB4NjgsIDB4ZWQsIDB4NjgsCisgICAgICAweDM4LCAweDdkLCAweDIwLCAweGMzLCAweDk3
LCAweDlkLCAweGNiLCAweDZlLCAweDMwLCAweGZjLCAweGJlLCAweDYzLAorICAgICAgMHhlNywg
MHg3MiwgMHg0NywgMHgwNSwgMHhmNSwgMHgwYiwgMHg3ZSwgMHg2NiwgMHgzYiwgMHhjNSwgMHgz
YSwgMHg4NSwKKyAgICAgIDB4NWEsIDB4YTMsIDB4YzUsIDB4NzIsIDB4OWQsIDB4YjksIDB4YzEs
IDB4YjQsIDB4ODAsIDB4OTgsIDB4NmUsIDB4NDAsCisgICAgICAweDg2LCAweGM5LCAweGNiLCAw
eGEzLCAweGFiLCAweDc3LCAweGMyLCAweDU2LCAweGZjLCAweGNiLCAweDZlLCAweDEyLAorICAg
ICAgMHhmNSwgMHg2MywgMHg2MiwgMHhmOCwgMHhmZiwgMHg5MSwgMHgxNSwgMHhhNywgMHhhMSwg
MHg1ZSwgMHhiNiwgMHhlZSwKKyAgICAgIDB4NjksIDB4NGQsIDB4NWIsIDB4NWYsIDB4NGUsIDB4
ZmEsIDB4ZDMsIDB4NjEsIDB4Y2EsIDB4ZWMsIDB4MTQsIDB4ZmQsCisgICAgICAweGQ5LCAweDEw
LCAweGY1LCAweDRhLCAweDA1LCAweDVmLCAweDI5LCAweGNiLCAweDc3LCAweDJjLCAweDJkLCAw
eGUyLAorICAgICAgMHg5MCwgMHg2NywgMHg2MiwgMHg3OCwgMHg3NSwgMHhhOSwgMHg0ZSwgMHgy
MCwgMHgwMCwgMHgwYywgMHg5MSwgMHg4NCwKKyAgICAgIDB4YmEsIDB4ZWQsIDB4MWMsIDB4Y2Us
IDB4YmQsIDB4NTcsIDB4NGYsIDB4YTUsIDB4MmYsIDB4NTksIDB4NmMsIDB4NGMsCisgICAgICAw
eGRmLCAweDVmLCAweGFhLCAweDMyLCAweGYwLCAweDg2LCAweDA5LCAweDE1LCAweDM2LCAweGM2
LCAweGU2LCAweDZhLAorICAgICAgMHgyNCwgMHhiNCwgMHhiMywgMHgwOSwgMHhkZCwgMHgzMiwg
MHhjNSwgMHg5NSwgMHhhYywgMHg2MCwgMHhiNSwgMHgwOSwKKyAgICAgIDB4OTcsIDB4MzYsIDB4
YTEsIDB4M2MsIDB4OGYsIDB4MGUsIDB4OTAsIDB4OGUsIDB4Y2QsIDB4ZDAsIDB4NDksIDB4NzUs
CisgICAgICAweGY3LCAweGYzLCAweDgwLCAweDgwLCAweGNiLCAweDFmLCAweGVlLCAweGYyLCAw
eDZhLCAweDJmLCAweDE5LCAweDhjLAorICAgICAgMHhiYSwgMHgxMCwgMHgwMCwgMHhkYSwgMHgx
MywgMHhlZiwgMHgxMCwgMHgyYiwgMHhiNywgMHhlZiwgMHhmZCwgMHhkMSwKKyAgICAgIDB4ZTAs
IDB4N2MsIDB4ZjgsIDB4NDYsIDB4MDEsIDB4NjksIDB4OWIsIDB4OTksIDB4ODAsIDB4NTEsIDB4
MWYsIDB4NzQsCisgICAgICAweDNiLCAweDY3LCAweDkzLCAweDE4LCAweDVlLCAweGQ0LCAweDM0
LCAweDZjLCAweDgxLCAweDc2LCAweDAyLCAweGVmLAorICAgICAgMHg5MSwgMHhhNCwgMHgyMiwg
MHgyYSwgMHgyMywgMHgxYiwgMHg1OCwgMHg0MywgMHg3NSwgMHg2NSwgMHgxMywgMHg4NywKKyAg
ICAgIDB4OTgsIDB4NjAsIDB4MTQsIDB4MjUsIDB4MjgsIDB4NjcsIDB4YTMsIDB4MzQsIDB4OGMs
IDB4ZTAsIDB4ZDUsIDB4ZDMsCisgICAgICAweDUxLCAweDMzLCAweDY4LCAweGZmLCAweDY1LCAw
eDU5LCAweDVhLCAweGE3LCAweGIyLCAweDZiLCAweDAxLCAweGFkLAorICAgICAgMHg3MCwgMHgw
NiwgMHg3MywgMHgwMSwgMHg1MSwgMHgxYiwgMHhlMSwgMHhlYywgMHgyOCwgMHgyZiwgMHg4YSwg
MHg4NSwKKyAgICAgIDB4NWEsIDB4MTAsIDB4ZDAsIDB4MGUsIDB4NmIsIDB4MzUsIDB4NDUsIDB4
MmUsIDB4NjEsIDB4ZGQsIDB4NzcsIDB4MjAsCisgICAgICAweGIxLCAweDM1LCAweDNiLCAweGE4
LCAweGRkLCAweDhhLCAweGUyLCAweDE1LCAweDc5LCAweDA3LAorICB9OworICB1aW50OF90IHB1
Yl9ieXRlc1tIUlNTX1BVQkxJQ19LRVlfQllURVNdOworICBIUlNTX21hcnNoYWxfcHVibGljX2tl
eShwdWJfYnl0ZXMsICZwdWIpOworICBFWFBFQ1RfRVEoQnl0ZXMocHViX2J5dGVzKSwgQnl0ZXMo
a0V4cGVjdGVkUHViKSk7CisKKyAgdWludDhfdCBlbmNhcF9lbnRyb3B5W0hSU1NfRU5DQVBfQllU
RVNdOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihlbmNhcF9lbnRyb3B5KTsgaSsr
KSB7CisgICAgZW5jYXBfZW50cm9weVtpXSA9IDMxICsgaTsKKyAgfQorICB1aW50OF90IGNpcGhl
cnRleHRbSFJTU19DSVBIRVJURVhUX0JZVEVTXTsKKyAgdWludDhfdCBzaGFyZWRfa2V5W0hSU1Nf
S0VZX0JZVEVTXTsKKyAgSFJTU19lbmNhcChjaXBoZXJ0ZXh0LCBzaGFyZWRfa2V5LCAmcHViLCBl
bmNhcF9lbnRyb3B5KTsKKworICBzdGF0aWMgY29uc3QgdWludDhfdCBrRXhwZWN0ZWRDaXBoZXJ0
ZXh0W0hSU1NfQ0lQSEVSVEVYVF9CWVRFU10gPSB7CisgICAgICAweGUwLCAweGMwLCAweDc3LCAw
eGViLCAweDdhLCAweDQ4LCAweDdkLCAweDc0LCAweDRlLCAweDRmLCAweDZkLCAweGI5LAorICAg
ICAgMHg1YywgMHgxOCwgMHhlOSwgMHg1YiwgMHg0NywgMHg2YywgMHg3OCwgMHg5ZCwgMHg5OCwg
MHgwMiwgMHg4NCwgMHg5ZiwKKyAgICAgIDB4ZjIsIDB4NDUsIDB4NDMsIDB4ODYsIDB4MGUsIDB4
YzYsIDB4OTMsIDB4NDgsIDB4ZDgsIDB4MjAsIDB4ZmYsIDB4ODIsCisgICAgICAweDM4LCAweDll
LCAweDc4LCAweGI0LCAweDJjLCAweGIzLCAweDQyLCAweGU0LCAweGIzLCAweGFiLCAweGRmLCAw
eGVkLAorICAgICAgMHg2NSwgMHgyNCwgMHgwYywgMHhhNSwgMHg5NSwgMHgyYywgMHhiZiwgMHg0
YywgMHgyOCwgMHhmYywgMHhiOCwgMHhlNywKKyAgICAgIDB4YzYsIDB4YmMsIDB4NzYsIDB4YTAs
IDB4ZjUsIDB4M2YsIDB4MjksIDB4NzMsIDB4MjMsIDB4ZjEsIDB4NmMsIDB4MTAsCisgICAgICAw
eDdjLCAweDA4LCAweDhlLCAweDE2LCAweDNhLCAweGRhLCAweDE3LCAweGEzLCAweDBkLCAweDQ2
LCAweDQ0LCAweGVlLAorICAgICAgMHg2ZiwgMHg3MCwgMHhmMSwgMHg4OCwgMHg1MSwgMHgzNSwg
MHgzMywgMHg5MSwgMHg3NiwgMHhlYiwgMHg5OCwgMHhjMSwKKyAgICAgIDB4MDQsIDB4ZGIsIDB4
OTcsIDB4YWIsIDB4ODgsIDB4YjksIDB4MDQsIDB4ODcsIDB4ZDksIDB4YjgsIDB4MzQsIDB4ZDMs
CisgICAgICAweDM4LCAweGU3LCAweDkwLCAweDA1LCAweDJlLCAweDQ1LCAweGUwLCAweGFjLCAw
eDM2LCAweDBjLCAweDU5LCAweDU4LAorICAgICAgMHhiMSwgMHhmNSwgMHg2NSwgMHg2ZCwgMHgy
OCwgMHgxYSwgMHgzOSwgMHhkOSwgMHhkMiwgMHg4MywgMHgxNywgMHhlZSwKKyAgICAgIDB4ZWIs
IDB4NmYsIDB4N2QsIDB4MjksIDB4M2MsIDB4NzksIDB4Y2YsIDB4NDgsIDB4ZjEsIDB4NmQsIDB4
MzUsIDB4YzIsCisgICAgICAweDhjLCAweGU4LCAweDY3LCAweDE4LCAweGNjLCAweDlkLCAweDli
LCAweDhkLCAweDA3LCAweDdhLCAweDRlLCAweDU2LAorICAgICAgMHhhOCwgMHgwMCwgMHgyZSwg
MHg2NywgMHg2NywgMHhiYiwgMHhjMSwgMHhkYSwgMHg0YSwgMHg3YiwgMHg5ZiwgMHhhNiwKKyAg
ICAgIDB4NGEsIDB4NWMsIDB4NDAsIDB4Y2MsIDB4ZTQsIDB4ZGQsIDB4ZjUsIDB4YzAsIDB4NDQs
IDB4ZmUsIDB4YTUsIDB4YTIsCisgICAgICAweDFjLCAweGRjLCAweGYyLCAweDMxLCAweGY0LCAw
eDAxLCAweDFmLCAweDY5LCAweDE1LCAweDdlLCAweDhjLCAweDU0LAorICAgICAgMHhiNiwgMHg0
NywgMHgwYywgMHgxZCwgMHg5ZiwgMHgxYSwgMHhmYSwgMHhmNywgMHg0NiwgMHhhMywgMHhjYiwg
MHgzNCwKKyAgICAgIDB4MmMsIDB4MTgsIDB4NDUsIDB4NjUsIDB4YzQsIDB4ZjIsIDB4MGUsIDB4
ZjgsIDB4YzcsIDB4OTYsIDB4MWQsIDB4MjksCisgICAgICAweDVjLCAweDkwLCAweGQzLCAweGRm
LCAweGIyLCAweDhlLCAweDIxLCAweGY5LCAweDE1LCAweDQwLCAweDdlLCAweGQzLAorICAgICAg
MHg4NCwgMHg1MiwgMHgxZCwgMHhkOSwgMHhlZSwgMHhlZCwgMHhlOCwgMHg3MSwgMHgxYywgMHhk
YiwgMHg0OCwgMHhmNSwKKyAgICAgIDB4MjAsIDB4ODIsIDB4YzQsIDB4NjEsIDB4ZmQsIDB4NmQs
IDB4NzEsIDB4OWYsIDB4ZDgsIDB4MDMsIDB4OTAsIDB4OGUsCisgICAgICAweGZjLCAweGVkLCAw
eDRkLCAweGFiLCAweDZlLCAweGIyLCAweGU5LCAweDY2LCAweGZkLCAweGNjLCAweDNhLCAweGEz
LAorICAgICAgMHg5OSwgMHg1MywgMHgzNSwgMHg3NiwgMHhlYSwgMHgwOCwgMHg4OCwgMHhiYSwg
MHhmMCwgMHhiNywgMHg1MywgMHhmMywKKyAgICAgIDB4NGMsIDB4MWEsIDB4OGYsIDB4N2YsIDB4
ZTQsIDB4MWIsIDB4OGIsIDB4ZmMsIDB4OTksIDB4M2UsIDB4NGMsIDB4YTksCisgICAgICAweGQ5
LCAweDE3LCAweDEwLCAweDY0LCAweDYwLCAweGZkLCAweDgxLCAweDc2LCAweGU2LCAweDM3LCAw
eGIwLCAweGUzLAorICAgICAgMHgzZSwgMHhjMCwgMHhmNywgMHgwNiwgMHg3ZSwgMHgzNCwgMHhh
NSwgMHhmNCwgMHhiOSwgMHg1ZiwgMHg2NiwgMHhlNiwKKyAgICAgIDB4ODEsIDB4YzgsIDB4NWUs
IDB4YjIsIDB4MjYsIDB4NmIsIDB4OGMsIDB4YWQsIDB4ZDAsIDB4OTQsIDB4MDEsIDB4MjIsCisg
ICAgICAweGY2LCAweGJlLCAweDFhLCAweDBiLCAweDM0LCAweGZjLCAweDMzLCAweGMwLCAweDg0
LCAweGE1LCAweGUwLCAweDEyLAorICAgICAgMHg4YSwgMHgwOCwgMHhhZSwgMHg4YSwgMHhhZiwg
MHg1NSwgMHgwYywgMHgzNCwgMHg0YiwgMHgyYiwgMHhkZCwgMHhhMywKKyAgICAgIDB4N2MsIDB4
YzAsIDB4ZWQsIDB4ZTgsIDB4OGQsIDB4OTgsIDB4NDcsIDB4N2MsIDB4ODEsIDB4MjUsIDB4MWIs
IDB4OWYsCisgICAgICAweDA4LCAweDI2LCAweDlkLCAweGZjLCAweDE5LCAweDhlLCAweDM5LCAw
eGM0LCAweDFhLCAweDNjLCAweDQyLCAweDcwLAorICAgICAgMHg0OSwgMHgzNywgMHg1NywgMHg4
NywgMHgwZiwgMHg3NiwgMHhiMSwgMHhjNCwgMHhiZSwgMHgyNSwgMHg1ZSwgMHgxYywKKyAgICAg
IDB4MDYsIDB4NTcsIDB4YzYsIDB4ODgsIDB4MzQsIDB4MjgsIDB4ZGYsIDB4NjAsIDB4MzMsIDB4
MDksIDB4YzUsIDB4Y2MsCisgICAgICAweGY0LCAweGM0LCAweDMzLCAweDg1LCAweDhiLCAweDQ4
LCAweGU4LCAweDI3LCAweGI3LCAweDcyLCAweDIyLCAweDQ0LAorICAgICAgMHhmZiwgMHhlNywg
MHg4OSwgMHhmOSwgMHg3MSwgMHg5OSwgMHhlZCwgMHg2MiwgMHg0NywgMHhiMCwgMHgyMiwgMHg5
ZSwKKyAgICAgIDB4YTYsIDB4N2MsIDB4YWYsIDB4YTksIDB4OTgsIDB4MmIsIDB4NWMsIDB4OGEs
IDB4NDIsIDB4MzQsIDB4NzcsIDB4YTMsCisgICAgICAweGM4LCAweDEzLCAweDFlLCAweGNmLCAw
eDMyLCAweGE3LCAweDcwLCAweGE4LCAweGFkLCAweGMxLCAweDY2LCAweDVjLAorICAgICAgMHg4
ZiwgMHhhZiwgMHgxNCwgMHg2ZCwgMHhjNCwgMHg0NSwgMHgwNSwgMHhjZCwgMHhjYiwgMHg4MCwg
MHhmYSwgMHgwZSwKKyAgICAgIDB4YTYsIDB4Y2EsIDB4NzIsIDB4ODYsIDB4ZDIsIDB4YjcsIDB4
MzksIDB4MjYsIDB4NzcsIDB4ZjgsIDB4MTQsIDB4ZDAsCisgICAgICAweGNkLCAweGRkLCAweGY3
LCAweGRjLCAweGRhLCAweDI1LCAweDhlLCAweDNjLCAweDIxLCAweGZkLCAweGVmLCAweDkyLAor
ICAgICAgMHhlZSwgMHg1MiwgMHhmNywgMHhjMywgMHhjNywgMHhlMiwgMHgyZCwgMHgxYywgMHg1
NywgMHg1YSwgMHhiYSwgMHhkOCwKKyAgICAgIDB4YWEsIDB4MGQsIDB4MDksIDB4YTcsIDB4YjMs
IDB4Y2MsIDB4YTEsIDB4NWQsIDB4ZGIsIDB4MDQsIDB4MjEsIDB4ODIsCisgICAgICAweGVmLCAw
eGJhLCAweGMyLCAweGM4LCAweDU0LCAweGIxLCAweGJlLCAweGQ3LCAweDJhLCAweDkxLCAweGQ4
LCAweGViLAorICAgICAgMHg3MiwgMHg1NCwgMHhjMSwgMHg3NCwgMHgyNCwgMHgyNCwgMHg1YSwg
MHgwMywgMHhmNywgMHhjZCwgMHhhYiwgMHg5MSwKKyAgICAgIDB4ZDEsIDB4NjMsIDB4ZjEsIDB4
NjAsIDB4OWYsIDB4MjIsIDB4MDcsIDB4YWQsIDB4MTAsIDB4MmIsIDB4OTcsIDB4MWMsCisgICAg
ICAweDZmLCAweGNlLCAweGMwLCAweDI5LCAweGMyLCAweGIyLCAweGI4LCAweDFiLCAweGJkLCAw
eDE0LCAweGM4LCAweGI5LAorICAgICAgMHg4MCwgMHg2NiwgMHhjMSwgMHg4NiwgMHhmYywgMHg5
MywgMHg1ZiwgMHg2ZSwgMHgwYiwgMHg3YSwgMHg3YiwgMHg4ZSwKKyAgICAgIDB4NDIsIDB4OGMs
IDB4MDgsIDB4ZDEsIDB4NjAsIDB4YjksIDB4ZjgsIDB4NjYsIDB4MjQsIDB4N2QsIDB4ODgsIDB4
NTgsCisgICAgICAweDJmLCAweGQyLCAweDUyLCAweDc1LCAweDNhLCAweDhhLCAweDFjLCAweGZh
LCAweDFlLCAweGExLCAweDFjLCAweDkxLAorICAgICAgMHg0NiwgMHg3OSwgMHg5YSwgMHhlNSwg
MHg4YSwgMHhkZCwgMHhjMiwgMHg3NSwgMHhlZCwgMHgwZCwgMHhiOCwgMHgyYiwKKyAgICAgIDB4
NGYsIDB4OGYsIDB4OTUsIDB4Y2EsIDB4Y2UsIDB4MjEsIDB4YTQsIDB4N2EsIDB4MGQsIDB4MTQs
IDB4N2YsIDB4MmQsCisgICAgICAweDk4LCAweGYwLCAweDg4LCAweGMzLCAweDZmLCAweGFkLCAw
eGI1LCAweDA0LCAweDI0LCAweDkxLCAweDQxLCAweDY1LAorICAgICAgMHhkMywgMHhhNSwgMHg3
ZSwgMHhmYiwgMHg1MywgMHgxYywgMHhjYywgMHhkMCwgMHhmNywgMHg3YywgMHg5MSwgMHgwOCwK
KyAgICAgIDB4MGUsIDB4ZGQsIDB4ZDQsIDB4NmMsIDB4NzMsIDB4YWEsIDB4YTUsIDB4N2EsIDB4
ZDIsIDB4MjQsIDB4YzksIDB4M2IsCisgICAgICAweDZmLCAweGRhLCAweDA2LCAweDhhLCAweGRi
LCAweDJlLCAweGE4LCAweGU5LCAweGUxLCAweDNlLCAweDA4LCAweGVlLAorICAgICAgMHhiZSwg
MHg5NiwgMHg2NSwgMHg3MiwgMHg2OCwgMHg2ZiwgMHhmNywgMHg1MCwgMHhlNywgMHhhNywgMHgx
OCwgMHhkYSwKKyAgICAgIDB4YzIsIDB4OTQsIDB4ZGEsIDB4ZTMsIDB4YmMsIDB4Y2EsIDB4MDMs
IDB4ZDgsIDB4ZjcsIDB4N2EsIDB4Y2MsIDB4NDQsCisgICAgICAweGExLCAweDYwLCAweGE4LCAw
eDdmLCAweGRjLCAweGVmLCAweDgwLCAweGY0LCAweDYyLCAweGM2LCAweDA2LCAweDRlLAorICAg
ICAgMHhiNiwgMHhhYywgMHg3NywgMHgxNywgMHhiNywgMHhiMywgMHgzZSwgMHhmOCwgMHg2ZCwg
MHg4YSwgMHg2MSwgMHg4MywKKyAgICAgIDB4M2EsIDB4ZmQsIDB4YmIsIDB4OTMsIDB4NWIsIDB4
MWEsIDB4MzMsIDB4ZjgsIDB4ZWUsIDB4N2QsIDB4OWUsIDB4NWMsCisgICAgICAweGY4LCAweGM5
LCAweGQ1LCAweDNlLCAweDNkLCAweDQyLCAweDliLCAweGU1LCAweDBkLCAweGVjLCAweGM5LCAw
eDBmLAorICAgICAgMHg2ZiwgMHgwMywgMHhiMCwgMHg0MSwgMHg4NSwgMHhiOSwgMHhmZSwgMHhm
OSwgMHhiMSwgMHhiNCwgMHhjMywgMHhkOSwKKyAgICAgIDB4MTMsIDB4MDMsIDB4ZmEsIDB4MGQs
IDB4ZTcsIDB4ZDEsIDB4YjQsIDB4YzgsIDB4ZjYsIDB4YjUsIDB4MTEsIDB4N2EsCisgICAgICAw
eDkyLCAweDA5LCAweDIxLCAweDdiLCAweGE5LCAweDg5LCAweDRjLCAweDE5LCAweDkwLCAweDBk
LCAweDk2LCAweDMyLAorICAgICAgMHg0ZiwgMHg3NywgMHhmYywgMHg3ZiwgMHg4YywgMHhhMywg
MHgzOSwgMHgyYSwgMHg1NiwgMHhlNiwgMHg1YywgMHhkMSwKKyAgICAgIDB4ODYsIDB4MGEsIDB4
NzIsIDB4ZjQsIDB4YTMsIDB4MWIsIDB4YTUsIDB4MzAsIDB4MDQsIDB4M2MsIDB4MTUsIDB4MjAs
CisgICAgICAweDRiLCAweGU0LCAweDJkLCAweDFhLCAweGYxLCAweDQ0LCAweDQ4LCAweGZjLCAw
eGRhLCAweGMxLCAweDQxLCAweGRiLAorICAgICAgMHg3MSwgMHhmZCwgMHg5MiwgMHgwMCwgMHg1
MywgMHhlNCwgMHg3MCwgMHhkMCwgMHhiYSwgMHhmNiwgMHhlZiwgMHgxNywKKyAgICAgIDB4NzIs
IDB4YjgsIDB4ZWEsIDB4NmQsIDB4NDEsIDB4MTYsIDB4NGQsIDB4MWYsIDB4NTksIDB4MTgsIDB4
YmQsIDB4MWYsCisgICAgICAweGM1LCAweDZiLCAweDZhLCAweDZjLCAweDJlLCAweGE2LCAweDFh
LCAweDMzLCAweDc0LCAweDhiLCAweGM1LCAweDlmLAorICAgICAgMHgxNiwgMHgwMSwgMHg3Nywg
MHg3ZSwgMHgzNywgMHhlNywgMHg2MywgMHhlMSwgMHhhMywgMHg4YywgMHgxZiwgMHg3MSwKKyAg
ICAgIDB4ZTksIDB4NGYsIDB4YWQsIDB4MTUsIDB4OGIsIDB4ZjMsIDB4YzksIDB4YWMsIDB4ZGMs
IDB4MTksIDB4YWQsIDB4OTIsCisgICAgICAweDE4LCAweDAwLCAweGY2LCAweGExLCAweGQ1LCAw
eDk3LCAweGEzLCAweDNkLCAweDllLCAweDc4LCAweDAyLCAweGMzLAorICAgICAgMHg4ZiwgMHg3
NSwgMHhkOCwgMHhhZCwgMHgyMiwgMHhiZiwgMHhlZiwgMHgxOSwgMHg1ZCwgMHgxNSwgMHgzNCwg
MHgxYSwKKyAgICAgIDB4N2MsIDB4OWIsIDB4YWYsIDB4ZDQsIDB4ZjIsIDB4ZjksIDB4NWYsIDB4
NzIsIDB4ODgsIDB4OWMsIDB4ZTQsIDB4NTgsCisgICAgICAweGRhLCAweDQ2LCAweDhmLCAweDc5
LCAweDMwLCAweDJiLCAweGQ5LCAweDNiLCAweGJjLCAweGFiLCAweDI4LCAweDc3LAorICAgICAg
MHg3NSwgMHgwZSwgMHgyYywgMHgyMywgMHg0NywgMHg5NSwgMHgxNCwgMHhlYiwgMHhmMCwgMHg0
YSwgMHgzZSwgMHg1MywKKyAgICAgIDB4OTMsIDB4YTcsIDB4ZjQsIDB4ODIsIDB4OWMsIDB4MzQs
IDB4OGIsIDB4ODAsIDB4NDIsIDB4YjIsIDB4YTcsIDB4YjAsCisgICAgICAweDdjLCAweDZjLCAw
eGUxLCAweDA3LCAweGY0LCAweDM0LCAweDNlLCAweGVkLCAweDMzLCAweDljLCAweGIzLCAweGRl
LAorICAgICAgMHhhNSwgMHg5MSwgMHg2MSwgMHgyNSwgMHg4ZSwgMHg4YywgMHg1NCwgMHg1Niwg
MHhiZSwgMHgxYSwgMHhhYywgMHgxNywKKyAgICAgIDB4ZDIsIDB4N2EsIDB4YTQsIDB4MTIsIDB4
NTQsIDB4MmEsIDB4NTEsIDB4ZDAsIDB4MGUsIDB4ZDEsIDB4YzEsIDB4NDQsCisgICAgICAweDUw
LCAweDA1LCAweDM5LCAweGE3LCAweGI2LCAweDE0LCAweDQ1LCAweGNhLCAweGY4LCAweDVmLCAw
eDA2LCAweDZiLAorICAgICAgMHg1ZCwgMHg1ZSwgMHhjNywgMHhlOSwgMHgyNywgMHg2ZiwgMHgz
OCwgMHhlMCwgMHgzMSwgMHhjZiwgMHhmOCwgMHhjYywKKyAgICAgIDB4MmUsIDB4YjksIDB4NGEs
IDB4MTAsIDB4MWIsIDB4YjQsIDB4MzQsIDB4NGIsIDB4OTAsIDB4YmIsIDB4ZjIsIDB4ZTAsCisg
ICAgICAweDNjLCAweDc5LCAweDdmLCAweDM5LCAweDU5LCAweDBjLCAweDAxLCAweDRjLCAweDBk
LCAweDJkLCAweDcxLCAweGYxLAorICAgICAgMHhiZCwgMHhkYSwgMHgxYSwgMHg3OCwgMHhjZiwg
MHgyNiwgMHg2ZiwgMHhiNSwgMHhhOSwgMHgwNywgMHgyMCwgMHhlNiwKKyAgICAgIDB4OGMsIDB4
ZDAsIDB4YWQsIDB4ZDQsIDB4Y2EsIDB4MjQsIDB4NmMsIDB4YzUsIDB4MjgsIDB4MWQsIDB4ZmIs
IDB4Y2MsCisgICAgICAweGU3LCAweDkzLCAweDcyLCAweDk5LCAweDYxLCAweDYzLCAweDYwLCAw
eDRjLCAweDVjLCAweGE5LCAweGI2LCAweDE1LAorICAgICAgMHgzMiwgMHhhNCwgMHhiYywgMHgx
ZiwgMHhmNiwgMHg2MywgMHg2MSwgMHgyYywgMHgyNiwgMHhhNywgMHgwZSwgMHg1ZiwKKyAgICAg
IDB4MWIsIDB4MjUsIDB4Y2UsIDB4M2YsIDB4NjQsIDB4ZGYsIDB4NmQsIDB4YjAsIDB4OGYsIDB4
ZDIsIDB4ZTksIDB4M2IsCisgICAgICAweDM1LCAweGQwLCAweDU5LCAweDgxLCAweDIyLCAweGYx
LCAweDY1LCAweDg2LCAweDE1LCAweDEwLCAweGU4LCAweGE3LAorICAgICAgMHhhMSwgMHg2Ziwg
MHhiNCwgMHgzNCwgMHgxYywgMHg3OSwgMHhkNSwgMHg5ZSwgMHg4ZCwgMHhjOCwgMHhhNSwgMHhi
YiwKKyAgICAgIDB4ODIsIDB4NzEsIDB4ODEsIDB4MDAsIDB4MzQsIDB4NTUsIDB4NmIsIDB4OTYs
IDB4NTYsIDB4MTMsIDB4MGUsIDB4ZTcsCisgICAgICAweDM5LCAweGEyLCAweDZmLCAweGJlLCAw
eDU0LCAweDJhLCAweDEzLCAweDAzLCAweDEzLCAweGQyLCAweDFkLCAweDcxLAorICAgICAgMHg5
YSwgMHhiZSwgMHgwOSwgMHgwMCwgMHhlMSwgMHg4ZCwgMHg1OSwgMHhiNSwgMHg0NCwgMHgwMiwK
KyAgfTsKKyAgRVhQRUNUX0VRKEJ5dGVzKGNpcGhlcnRleHQpLCBCeXRlcyhrRXhwZWN0ZWRDaXBo
ZXJ0ZXh0KSk7CisKKyAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0V4cGVjdGVkU2hhcmVkS2V5W0hS
U1NfS0VZX0JZVEVTXSA9IHsKKyAgICAgIDB4NTcsIDB4ZjIsIDB4NzcsIDB4YjIsIDB4ZjMsIDB4
N2YsIDB4ZDAsIDB4NzEsIDB4YjYsIDB4N2UsIDB4NjQsCisgICAgICAweDBmLCAweDg1LCAweDFm
LCAweDZkLCAweDNiLCAweGQxLCAweDdhLCAweDZlLCAweDAxLCAweDA0LCAweGRlLAorICAgICAg
MHgwZiwgMHg5ZSwgMHgwMywgMHg5NSwgMHg1NSwgMHg2MCwgMHhjZSwgMHhkYSwgMHgzMiwgMHg3
MSwKKyAgfTsKKyAgRVhQRUNUX0VRKEJ5dGVzKHNoYXJlZF9rZXkpLCBCeXRlcyhrRXhwZWN0ZWRT
aGFyZWRLZXkpKTsKKworICBIUlNTX2RlY2FwKHNoYXJlZF9rZXksICZwcml2LCBjaXBoZXJ0ZXh0
LCBzaXplb2YoY2lwaGVydGV4dCkpOworICBFWFBFQ1RfRVEoQnl0ZXMoc2hhcmVkX2tleSwgc2l6
ZW9mKHNoYXJlZF9rZXkpKSwKKyAgICAgICAgICAgIEJ5dGVzKGtFeHBlY3RlZFNoYXJlZEtleSwg
c2l6ZW9mKGtFeHBlY3RlZFNoYXJlZEtleSkpKTsKKworICAvLyBDb3JydXB0IHRoZSBjaXBoZXJ0
ZXh0IGFuZCBlbnN1cmUgdGhhdCB0aGUgZmFpbHVyZSBrZXkgaXMgY29uc3RhbnQuCisgIGNpcGhl
cnRleHRbNTBdIF49IDQ7CisgIEhSU1NfZGVjYXAoc2hhcmVkX2tleSwgJnByaXYsIGNpcGhlcnRl
eHQsIHNpemVvZihjaXBoZXJ0ZXh0KSk7CisKKyAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0V4cGVj
dGVkRmFpbHVyZUtleVtIUlNTX0tFWV9CWVRFU10gPSB7CisgICAgICAweDEzLCAweGY3LCAweGVk
LCAweDUxLCAweDAwLCAweGJjLCAweGNhLCAweDI5LCAweGRmLCAweGIwLCAweGQwLAorICAgICAg
MHg1ZSwgMHhhMSwgMHg5ZCwgMHgxNSwgMHhiMiwgMHhmNiwgMHgyMywgMHg5NCwgMHhmZCwgMHg5
MywgMHg3NCwKKyAgICAgIDB4MTQsIDB4NDYsIDB4ODUsIDB4NjEsIDB4OGIsIDB4ODcsIDB4MzAs
IDB4ZDMsIDB4OGQsIDB4YWQsCisgIH07CisgIEVYUEVDVF9FUShCeXRlcyhzaGFyZWRfa2V5KSwg
Qnl0ZXMoa0V4cGVjdGVkRmFpbHVyZUtleSkpOworfQorCisjaWYgZGVmaW5lZChQT0xZX1JRX01V
TF9BU00pICYmIGRlZmluZWQoU1VQUE9SVFNfQUJJX1RFU1QpCitURVNUKEhSU1MsIEFCSSkgewor
ICBjb25zdCBib29sIGhhc19hdngyID0gKE9QRU5TU0xfaWEzMmNhcF9QWzJdICYgKDEgPDwgNSkp
ICE9IDA7CisgIGlmICghaGFzX2F2eDIpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlNraXBwaW5n
IEFCSSB0ZXN0IGR1ZSB0byBsYWNrIG9mIEFWWDIgc3VwcG9ydC5cbiIpOworICAgIHJldHVybjsK
KyAgfQorCisgIGFsaWduYXMoMTYpIHVpbnQxNl90IHJbTiArIDNdOworICBhbGlnbmFzKDE2KSB1
aW50MTZfdCBhW04gKyAzXSA9IHswfTsKKyAgYWxpZ25hcygxNikgdWludDE2X3QgYltOICsgM10g
PSB7MH07CisgIENIRUNLX0FCSShwb2x5X1JxX211bCwgciwgYSwgYik7Cit9CisjZW5kaWYgIC8v
IFBPTFlfUlFfTVVMX0FTTSAmJiBTVVBQT1JUU19BQklfVEVTVApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9ocnNzL2ludGVybmFsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2hyc3MvaW50ZXJuYWwuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43Y2ZlMDEwOGVlNzU1MzU4NTllYTM1N2ViNTBhMDgzYWZlMzMzYmEzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9ocnNzL2ludGVybmFsLmgKQEAgLTAsMCArMSw2MiBAQAorLyog
Q29weXJpZ2h0IChjKSAyMDE4LCBHb29nbGUgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNl
LCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQor
ICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRl
ZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP
VklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAq
IFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorICogU1BFQ0lBTCwgRElSRUNULCBJTkRJ
UkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09F
VkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIg
SU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9V
UyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFVT
RSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLworCisjaWZuZGVmIE9QRU5TU0xf
SEVBREVSX0hSU1NfSU5URVJOQUxfSAorI2RlZmluZSBPUEVOU1NMX0hFQURFUl9IUlNTX0lOVEVS
TkFMX0gKKworI2luY2x1ZGUgPG9wZW5zc2wvYmFzZS5oPgorI2luY2x1ZGUgIi4uL2ludGVybmFs
LmgiCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
CisjZGVmaW5lIE4gNzAxCisjZGVmaW5lIEJJVFNfUEVSX1dPUkQgKHNpemVvZihjcnlwdG9fd29y
ZF90KSAqIDgpCisjZGVmaW5lIFdPUkRTX1BFUl9QT0xZICgoTiArIEJJVFNfUEVSX1dPUkQgLSAx
KSAvIEJJVFNfUEVSX1dPUkQpCisjZGVmaW5lIEJJVFNfSU5fTEFTVF9XT1JEIChOICUgQklUU19Q
RVJfV09SRCkKKworc3RydWN0IHBvbHkyIHsKKyAgY3J5cHRvX3dvcmRfdCB2W1dPUkRTX1BFUl9Q
T0xZXTsKK307CisKK3N0cnVjdCBwb2x5MyB7CisgIHN0cnVjdCBwb2x5MiBzLCBhOworfTsKKwor
T1BFTlNTTF9FWFBPUlQgdm9pZCBIUlNTX3BvbHkyX3JvdHJfY29uc3R0aW1lKHN0cnVjdCBwb2x5
MiAqcCwgc2l6ZV90IGJpdHMpOworT1BFTlNTTF9FWFBPUlQgdm9pZCBIUlNTX3BvbHkzX211bChz
dHJ1Y3QgcG9seTMgKm91dCwgY29uc3Qgc3RydWN0IHBvbHkzICp4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcG9seTMgKnkpOworT1BFTlNTTF9FWFBP
UlQgdm9pZCBIUlNTX3BvbHkzX2ludmVydChzdHJ1Y3QgcG9seTMgKm91dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBvbHkzICppbik7CisKKy8v
IE9uIHg4Ni02NCwgd2UgY2FuIHVzZSB0aGUgQVZYMiBjb2RlIGZyb20gW0hSU1NdLiAoVGhlIGF1
dGhvcnMgaGF2ZSBnaXZlbgorLy8gZXhwbGljaXQgcGVybWlzc2lvbiBmb3IgdGhpcyBhbmQgc2ln
bmVkIGEgQ0xBLikgSG93ZXZlciBpdCdzIDU3S0Igb2Ygb2JqZWN0CisvLyBjb2RlLCBzbyBpdCdz
IG5vdCB1c2VkIGlmIHxPUEVOU1NMX1NNQUxMfCBpcyBkZWZpbmVkLgorI2lmICFkZWZpbmVkKE9Q
RU5TU0xfTk9fQVNNKSAmJiAhZGVmaW5lZChPUEVOU1NMX1NNQUxMKSAmJiBcCisgICAgZGVmaW5l
ZChPUEVOU1NMX1g4Nl82NCkgJiYgZGVmaW5lZChPUEVOU1NMX0xJTlVYKQorI2RlZmluZSBQT0xZ
X1JRX01VTF9BU00KKy8vIHBvbHlfUnFfbXVsIGlzIGRlZmluZWQgaW4gYXNzZW1ibHkuIElucHV0
cyBhbmQgb3V0cHV0cyBtdXN0IGJlIDE2LWJ5dGUtCisvLyBhbGlnbmVkLgorZXh0ZXJuIHZvaWQg
cG9seV9ScV9tdWwodWludDE2X3QgcltOICsgM10sIGNvbnN0IHVpbnQxNl90IGFbTiArIDNdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QgYltOICsgM10pOworI2VuZGlm
CisKKworI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCit9ICAvLyBleHRlcm4gIkMiCisjZW5kaWYK
KworI2VuZGlmICAvLyAhT1BFTlNTTF9IRUFERVJfSFJTU19JTlRFUk5BTF9ICmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL2ltcGxfZGlzcGF0Y2hfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vaW1wbF9kaXNw
YXRjaF90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZWU3MDRjMzBmNjMyMjU0YmE1NTZjNGI5MGNkZmJk
OTkzN2FkZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ltcGxfZGlzcGF0Y2hfdGVz
dC5jYwpAQCAtMCwwICsxLDE1MSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE4LCBHb29nbGUgSW5j
LgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmli
dXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVl
IGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4K
KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBE
SVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUg
SU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFO
WQorICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNF
LCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwg
TkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElO
CisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRX
QVJFLiAqLworCisjaW5jbHVkZSA8b3BlbnNzbC9iYXNlLmg+CisKKyNpZiAhZGVmaW5lZChOREVC
VUcpICYmICFkZWZpbmVkKEJPUklOR1NTTF9GSVBTKSAmJiBcCisgICAgIWRlZmluZWQoQk9SSU5H
U1NMX1NIQVJFRF9MSUJSQVJZKQorCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx1
dGlsaXR5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPG9wZW5zc2wvYWVhZC5oPgor
I2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcHUuaD4KKyNpbmNs
dWRlIDxvcGVuc3NsL21lbS5oPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1
ZGUgImludGVybmFsLmgiCisKKworY2xhc3MgSW1wbERpc3BhdGNoVGVzdCA6IHB1YmxpYyA6OnRl
c3Rpbmc6OlRlc3QgeworIHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyNpZiBk
ZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KQorICAgIGFlc25p
XyA9IE9QRU5TU0xfaWEzMmNhcF9QWzFdICYgKDEgPDwgKDU3IC0gMzIpKTsKKyAgICBhdnhfbW92
YmVfID0gKChPUEVOU1NMX2lhMzJjYXBfUFsxXSA+PiAyMikgJiAweDQxKSA9PSAweDQxOworICAg
IHNzc2UzXyA9IE9QRU5TU0xfaWEzMmNhcF9QWzFdICYgKDEgPDwgKDQxIC0gMzIpKTsKKyAgICBp
c194ODZfNjRfID0KKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KQorICAgICAgICB0cnVlOwor
I2Vsc2UKKyAgICAgICAgZmFsc2U7CisjZW5kaWYKKyNlbmRpZiAgLy8gWDg2IHx8IFg4Nl82NAor
ICB9CisKKyBwcm90ZWN0ZWQ6CisgIC8vIEFzc2VydEZ1bmN0aW9uc0hpdCB0YWtlcyBhIGxpc3Qg
b2YgcGFpcnMgKGZsYWcgaW5kZXgsIGJvb2xlYW4pLCBhbmQgYQorICAvLyBmdW5jdGlvbiB0byB0
ZXN0LiBJdCBydW5zIHRoZSBnaXZlbiBmdW5jdGlvbiBhbmQgYXNzZXJ0cywgZm9yIGVhY2ggZmxh
ZworICAvLyBpbmRleCwgdGhhdCB0aGUgYm9vbGVhbiByZWZsZWN0cyB3aGV0aGVyIHRoYXQgZmxh
ZyBpbmRleCB3YXMgd3JpdHRlbiBvcgorICAvLyBub3QsIGFuZCB0aGF0IG5vIG90aGVyIGZsYWdn
ZWQgZnVuY3Rpb25zIHdlcmUgdHJpZ2dlcmVkLgorICB2b2lkIEFzc2VydEZ1bmN0aW9uc0hpdChz
dGQ6OnZlY3RvcjxzdGQ6OnBhaXI8c2l6ZV90LCBib29sPj4gZmxhZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmKSB7CisgICAgT1BFTlNTTF9tZW1z
ZXQoQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCwgMCwgc2l6ZW9mKEJPUklOR1NTTF9mdW5jdGlvbl9o
aXQpKTsKKworICAgIGYoKTsKKworICAgIGZvciAoY29uc3QgYXV0byBmbGFnIDogZmxhZ3MpIHsK
KyAgICAgIFNDT1BFRF9UUkFDRShmbGFnLmZpcnN0KTsKKworICAgICAgQVNTRVJUX0xUKGZsYWcu
Zmlyc3QsIHNpemVvZihCT1JJTkdTU0xfZnVuY3Rpb25faGl0KSk7CisgICAgICBFWFBFQ1RfRVEo
ZmxhZy5zZWNvbmQsIEJPUklOR1NTTF9mdW5jdGlvbl9oaXRbZmxhZy5maXJzdF0gPT0gMSk7Cisg
ICAgICBCT1JJTkdTU0xfZnVuY3Rpb25faGl0W2ZsYWcuZmlyc3RdID0gMDsKKyAgICB9CisKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihCT1JJTkdTU0xfZnVuY3Rpb25faGl0KTsg
aSsrKSB7CisgICAgICBFWFBFQ1RfRVEoMHUsIEJPUklOR1NTTF9mdW5jdGlvbl9oaXRbaV0pCisg
ICAgICAgICAgPDwgIkZsYWcgIiA8PCBpIDw8ICIgdW5leHBlY3RlZGx5IGhpdCI7CisgICAgfQor
ICB9CisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0
KQorICBib29sIGFlc25pXyA9IGZhbHNlOworICBib29sIGF2eF9tb3ZiZV8gPSBmYWxzZTsKKyAg
Ym9vbCBzc3NlM18gPSBmYWxzZTsKKyAgYm9vbCBpc194ODZfNjRfID0gZmFsc2U7CisjZW5kaWYK
K307CisKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkgJiYgXAorICAgIChkZWZpbmVkKE9Q
RU5TU0xfWDg2KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSkKKworY29uc3RleHByIHNpemVf
dCBrRmxhZ19hZXNfaHdfY3RyMzJfZW5jcnlwdF9ibG9ja3MgPSAwOworY29uc3RleHByIHNpemVf
dCBrRmxhZ19hZXNfaHdfZW5jcnlwdCA9IDE7Citjb25zdGV4cHIgc2l6ZV90IGtGbGFnX2Flc25p
X2djbV9lbmNyeXB0ID0gMjsKK2NvbnN0ZXhwciBzaXplX3Qga0ZsYWdfYWVzX2h3X3NldF9lbmNy
eXB0X2tleSA9IDM7Citjb25zdGV4cHIgc2l6ZV90IGtGbGFnX3ZwYWVzX2VuY3J5cHQgPSA0Owor
Y29uc3RleHByIHNpemVfdCBrRmxhZ192cGFlc19zZXRfZW5jcnlwdF9rZXkgPSA1OworCitURVNU
X0YoSW1wbERpc3BhdGNoVGVzdCwgQUVBRF9BRVNfR0NNKSB7CisgIEFzc2VydEZ1bmN0aW9uc0hp
dCgKKyAgICAgIHsKKyAgICAgICAgICB7a0ZsYWdfYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tz
LCBhZXNuaV99LAorICAgICAgICAgIHtrRmxhZ19hZXNfaHdfZW5jcnlwdCwgYWVzbmlffSwKKyAg
ICAgICAgICB7a0ZsYWdfYWVzX2h3X3NldF9lbmNyeXB0X2tleSwgYWVzbmlffSwKKyAgICAgICAg
ICB7a0ZsYWdfYWVzbmlfZ2NtX2VuY3J5cHQsIGlzX3g4Nl82NF8gJiYgYWVzbmlfICYmIGF2eF9t
b3ZiZV99LAorICAgICAgICAgIHtrRmxhZ192cGFlc19lbmNyeXB0LCBzc3NlM18gJiYgIWFlc25p
X30sCisgICAgICAgICAge2tGbGFnX3ZwYWVzX3NldF9lbmNyeXB0X2tleSwgc3NzZTNfICYmICFh
ZXNuaV99LAorICAgICAgfSwKKyAgICAgIFtdIHsKKyAgICAgICAgY29uc3QgdWludDhfdCBrWmVy
b3NbMTZdID0gezB9OworICAgICAgICBjb25zdCB1aW50OF90IGtQbGFpbnRleHRbNDBdID0gezEs
IDIsIDMsIDQsIDB9OworICAgICAgICB1aW50OF90IGNpcGhlcnRleHRbc2l6ZW9mKGtQbGFpbnRl
eHQpICsgMTZdOworICAgICAgICBzaXplX3QgY2lwaGVydGV4dF9sZW47CisgICAgICAgIEVWUF9B
RUFEX0NUWCBjdHg7CisgICAgICAgIEFTU0VSVF9UUlVFKEVWUF9BRUFEX0NUWF9pbml0KCZjdHgs
IEVWUF9hZWFkX2Flc18xMjhfZ2NtKCksIGtaZXJvcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZW9mKGtaZXJvcyksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVWUF9BRUFEX0RFRkFVTFRfVEFHX0xFTkdUSCwgbnVsbHB0cikpOworICAg
ICAgICBBU1NFUlRfVFJVRShFVlBfQUVBRF9DVFhfc2VhbCgKKyAgICAgICAgICAgICZjdHgsIGNp
cGhlcnRleHQsICZjaXBoZXJ0ZXh0X2xlbiwgc2l6ZW9mKGNpcGhlcnRleHQpLCBrWmVyb3MsCisg
ICAgICAgICAgICBFVlBfQUVBRF9ub25jZV9sZW5ndGgoRVZQX2FlYWRfYWVzXzEyOF9nY20oKSks
IGtQbGFpbnRleHQsCisgICAgICAgICAgICBzaXplb2Yoa1BsYWludGV4dCksIG51bGxwdHIsIDAp
KTsKKyAgICAgIH0pOworfQorCitURVNUX0YoSW1wbERpc3BhdGNoVGVzdCwgQUVTX3NldF9lbmNy
eXB0X2tleSkgeworICBBc3NlcnRGdW5jdGlvbnNIaXQoCisgICAgICB7CisgICAgICAgICAge2tG
bGFnX2Flc19od19zZXRfZW5jcnlwdF9rZXksIGFlc25pX30sCisgICAgICAgICAge2tGbGFnX3Zw
YWVzX3NldF9lbmNyeXB0X2tleSwgc3NzZTNfICYmICFhZXNuaV99LAorICAgICAgfSwKKyAgICAg
IFtdIHsKKyAgICAgICAgQUVTX0tFWSBrZXk7CisgICAgICAgIHN0YXRpYyBjb25zdCB1aW50OF90
IGtaZXJvc1sxNl0gPSB7MH07CisgICAgICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoa1plcm9zLCBz
aXplb2Yoa1plcm9zKSAqIDgsICZrZXkpOworICAgICAgfSk7Cit9CisKK1RFU1RfRihJbXBsRGlz
cGF0Y2hUZXN0LCBBRVNfc2luZ2xlX2Jsb2NrKSB7CisgIEFFU19LRVkga2V5OworICBzdGF0aWMg
Y29uc3QgdWludDhfdCBrWmVyb3NbMTZdID0gezB9OworICBBRVNfc2V0X2VuY3J5cHRfa2V5KGta
ZXJvcywgc2l6ZW9mKGtaZXJvcykgKiA4LCAma2V5KTsKKworICBBc3NlcnRGdW5jdGlvbnNIaXQo
CisgICAgICB7CisgICAgICAgICAge2tGbGFnX2Flc19od19lbmNyeXB0LCBhZXNuaV99LAorICAg
ICAgICAgIHtrRmxhZ192cGFlc19lbmNyeXB0LCBzc3NlM18gJiYgIWFlc25pX30sCisgICAgICB9
LAorICAgICAgWyZrZXldIHsKKyAgICAgICAgdWludDhfdCBpbltBRVNfQkxPQ0tfU0laRV0gPSB7
MH07CisgICAgICAgIHVpbnQ4X3Qgb3V0W0FFU19CTE9DS19TSVpFXTsKKyAgICAgICAgQUVTX2Vu
Y3J5cHQoaW4sIG91dCwgJmtleSk7CisgICAgICB9KTsKK30KKworI2VuZGlmICAvLyBYODYgfHwg
WDg2XzY0CisKKyNlbmRpZiAgLy8gIU5ERUJVRyAmJiAhRklQUyAmJiAhU0hBUkVEX0xJQlJBUlkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vaW50ZXJuYWwu
aAppbmRleCBiOThiNTU2YzRhZWUzMWZhNzBmMzI2MzFmMzI0NTBkYTQ2NWRjOTE5Li4zYzY4MmU4
OThmOGE4MGZjOTZjN2JiMjM5MWIzYTU1NDU1ZTJkYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L2ludGVybmFsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9pbnRlcm5hbC5oCkBAIC0xMTYsNiArMTE2LDEw
IEBACiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKKyNpZiBkZWZp
bmVkKEJPUklOR1NTTF9DT05TVEFOVF9USU1FX1ZBTElEQVRJT04pCisjaW5jbHVkZSA8dmFsZ3Jp
bmQvbWVtY2hlY2suaD4KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpCiAjaWYg
ZGVmaW5lZChfTVNDX1ZFUikKICNkZWZpbmUgYWxpZ25hcyh4KSBfX2RlY2xzcGVjKGFsaWduKHgp
KQpAQCAtMTgzLDYgKzE4NywxMiBAQCB0eXBlZGVmIF9fdWludDEyOF90IHVpbnQxMjhfdDsKICNk
ZWZpbmUgT1BFTlNTTF9GQUxMVEhST1VHSCBbW2dudTo6ZmFsbHRocm91Z2hdXQogI2VsaWYgZGVm
aW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18gPj0gNyAvLyBnY2MgNwogI2RlZmluZSBPUEVOU1NM
X0ZBTExUSFJPVUdIIF9fYXR0cmlidXRlX18gKChmYWxsdGhyb3VnaCkpCisjZWxpZiBkZWZpbmVk
KF9fY2xhbmdfXykKKyNpZiBfX2hhc19hdHRyaWJ1dGUoZmFsbHRocm91Z2gpCisjZGVmaW5lIE9Q
RU5TU0xfRkFMTFRIUk9VR0ggX19hdHRyaWJ1dGVfXyAoKGZhbGx0aHJvdWdoKSkKKyNlbHNlIC8v
IGNsYW5nIHZlcnNpb25zIHRoYXQgZG8gbm90IHN1cHBvcnQgZmFsbHRocm91Z2guCisjZGVmaW5l
IE9QRU5TU0xfRkFMTFRIUk9VR0gKKyNlbmRpZgogI2Vsc2UgLy8gQysrMTEgb24gZ2NjIDYsIGFu
ZCBhbGwgb3RoZXIgY2FzZXMKICNkZWZpbmUgT1BFTlNTTF9GQUxMVEhST1VHSAogI2VuZGlmCkBA
IC0yMzYsNiArMjQ2LDM2IEBAIHR5cGVkZWYgdWludDMyX3QgY3J5cHRvX3dvcmRfdDsKICNkZWZp
bmUgQ09OU1RUSU1FX1RSVUVfOCAoKHVpbnQ4X3QpMHhmZikKICNkZWZpbmUgQ09OU1RUSU1FX0ZB
TFNFXzggKCh1aW50OF90KTApCiAKKy8vIHZhbHVlX2JhcnJpZXJfdyByZXR1cm5zIHxhfCwgYnV0
IHByZXZlbnRzIEdDQyBhbmQgQ2xhbmcgZnJvbSByZWFzb25pbmcgYWJvdXQKKy8vIHRoZSByZXR1
cm5lZCB2YWx1ZS4gVGhpcyBpcyB1c2VkIHRvIG1pdGlnYXRlIGNvbXBpbGVycyB1bmRvaW5nIGNv
bnN0YW50LXRpbWUKKy8vIGNvZGUsIHVudGlsIHdlIGNhbiBleHByZXNzIG91ciByZXF1aXJlbWVu
dHMgZGlyZWN0bHkgaW4gdGhlIGxhbmd1YWdlLgorLy8KKy8vIE5vdGUgdGhlIGNvbXBpbGVyIGlz
IGF3YXJlIHRoYXQgfHZhbHVlX2JhcnJpZXJfd3wgaGFzIG5vIHNpZGUgZWZmZWN0cyBhbmQKKy8v
IGFsd2F5cyBoYXMgdGhlIHNhbWUgb3V0cHV0IGZvciBhIGdpdmVuIGlucHV0LiBUaGlzIGFsbG93
cyBpdCB0byBlbGltaW5hdGUKKy8vIGRlYWQgY29kZSwgbW92ZSBjb21wdXRhdGlvbnMgYWNyb3Nz
IGxvb3BzLCBhbmQgdmVjdG9yaXplLgorc3RhdGljIGlubGluZSBjcnlwdG9fd29yZF90IHZhbHVl
X2JhcnJpZXJfdyhjcnlwdG9fd29yZF90IGEpIHsKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX0FT
TSkgJiYgKGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19jbGFuZ19fKSkKKyAgX19hc21f
XygiIiA6ICIrciIoYSkgOiAvKiBubyBpbnB1dHMgKi8pOworI2VuZGlmCisgIHJldHVybiBhOwor
fQorCisvLyB2YWx1ZV9iYXJyaWVyX3UzMiBiZWhhdmVzIGxpa2UgfHZhbHVlX2JhcnJpZXJfd3wg
YnV0IHRha2VzIGEgfHVpbnQzMl90fC4KK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgdmFsdWVfYmFy
cmllcl91MzIodWludDMyX3QgYSkgeworI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSAmJiAo
ZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX2NsYW5nX18pKQorICBfX2FzbV9fKCIiIDog
IityIihhKSA6IC8qIG5vIGlucHV0cyAqLyk7CisjZW5kaWYKKyAgcmV0dXJuIGE7Cit9CisKKy8v
IHZhbHVlX2JhcnJpZXJfdTY0IGJlaGF2ZXMgbGlrZSB8dmFsdWVfYmFycmllcl93fCBidXQgdGFr
ZXMgYSB8dWludDY0X3R8Lgorc3RhdGljIGlubGluZSB1aW50NjRfdCB2YWx1ZV9iYXJyaWVyX3U2
NCh1aW50NjRfdCBhKSB7CisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19BU00pICYmIChkZWZpbmVk
KF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fY2xhbmdfXykpCisgIF9fYXNtX18oIiIgOiAiK3IiKGEp
IDogLyogbm8gaW5wdXRzICovKTsKKyNlbmRpZgorICByZXR1cm4gYTsKK30KKwogLy8gY29uc3Rh
bnRfdGltZV9tc2JfdyByZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZSB3aXRoIHRoZSBNU0IgY29waWVk
IHRvIGFsbCB0aGUKIC8vIG90aGVyIGJpdHMuCiBzdGF0aWMgaW5saW5lIGNyeXB0b193b3JkX3Qg
Y29uc3RhbnRfdGltZV9tc2JfdyhjcnlwdG9fd29yZF90IGEpIHsKQEAgLTM0OCw3ICszODgsMTMg
QEAgc3RhdGljIGlubGluZSB1aW50OF90IGNvbnN0YW50X3RpbWVfZXFfaW50XzgoaW50IGEsIGlu
dCBiKSB7CiBzdGF0aWMgaW5saW5lIGNyeXB0b193b3JkX3QgY29uc3RhbnRfdGltZV9zZWxlY3Rf
dyhjcnlwdG9fd29yZF90IG1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcnlwdG9fd29yZF90IGEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcnlwdG9fd29yZF90IGIpIHsKLSAgcmV0dXJu
IChtYXNrICYgYSkgfCAofm1hc2sgJiBiKTsKKyAgLy8gQ2xhbmcgcmVjb2duaXplcyB0aGlzIHBh
dHRlcm4gYXMgYSBzZWxlY3QuIFdoaWxlIGl0IHVzdWFsbHkgdHJhbnNmb3JtcyBpdAorICAvLyB0
byBhIGNtb3YsIGl0IHNvbWV0aW1lcyBmdXJ0aGVyIHRyYW5zZm9ybXMgaXQgaW50byBhIGJyYW5j
aCwgd2hpY2ggd2UgZG8KKyAgLy8gbm90IHdhbnQuCisgIC8vCisgIC8vIEFkZGluZyBiYXJyaWVy
cyB0byBib3RoIHxtYXNrfCBhbmQgfH5tYXNrfCBicmVha3MgdGhlIHJlbGF0aW9uc2hpcCBiZXR3
ZWVuCisgIC8vIHRoZSB0d28sIHdoaWNoIG1ha2VzIHRoZSBjb21waWxlciBzdGljayB3aXRoIGJp
dG1hc2tzLgorICByZXR1cm4gKHZhbHVlX2JhcnJpZXJfdyhtYXNrKSAmIGEpIHwgKHZhbHVlX2Jh
cnJpZXJfdyh+bWFzaykgJiBiKTsKIH0KIAogLy8gY29uc3RhbnRfdGltZV9zZWxlY3RfOCBhY3Rz
IGxpa2UgfGNvbnN0YW50X3RpbWVfc2VsZWN0fCBidXQgb3BlcmF0ZXMgb24KQEAgLTM2NSw2ICs0
MTEsMjYgQEAgc3RhdGljIGlubGluZSBpbnQgY29uc3RhbnRfdGltZV9zZWxlY3RfaW50KGNyeXB0
b193b3JkX3QgbWFzaywgaW50IGEsIGludCBiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChjcnlwdG9fd29yZF90KShiKSkpOwogfQogCisjaWYgZGVmaW5lZChCT1JJ
TkdTU0xfQ09OU1RBTlRfVElNRV9WQUxJREFUSU9OKQorCisvLyBDT05TVFRJTUVfU0VDUkVUIHRh
a2VzIGEgcG9pbnRlciBhbmQgYSBudW1iZXIgb2YgYnl0ZXMgYW5kIG1hcmtzIHRoYXQgcmVnaW9u
CisvLyBvZiBtZW1vcnkgYXMgc2VjcmV0LiBTZWNyZXQgZGF0YSBpcyB0cmFja2VkIGFzIGl0IGZs
b3dzIHRvIHJlZ2lzdGVycyBhbmQKKy8vIG90aGVyIHBhcnRzIG9mIGEgbWVtb3J5LiBJZiBzZWNy
ZXQgZGF0YSBpcyB1c2VkIGFzIGEgY29uZGl0aW9uIGZvciBhIGJyYW5jaCwKKy8vIG9yIGFzIGEg
bWVtb3J5IGluZGV4LCBpdCB3aWxsIHRyaWdnZXIgd2FybmluZ3MgaW4gdmFsZ3JpbmQuCisjZGVm
aW5lIENPTlNUVElNRV9TRUNSRVQoeCwgeSkgVkFMR1JJTkRfTUFLRV9NRU1fVU5ERUZJTkVEKHgs
IHkpCisKKy8vIENPTlNUVElNRV9ERUNMQVNTSUZZIHRha2VzIGEgcG9pbnRlciBhbmQgYSBudW1i
ZXIgb2YgYnl0ZXMgYW5kIG1hcmtzIHRoYXQKKy8vIHJlZ2lvbiBvZiBtZW1vcnkgYXMgcHVibGlj
LiBQdWJsaWMgZGF0YSBpcyBub3Qgc3ViamVjdCB0byBjb25zdGFudC10aW1lCisvLyBydWxlcy4K
KyNkZWZpbmUgQ09OU1RUSU1FX0RFQ0xBU1NJRlkoeCwgeSkgVkFMR1JJTkRfTUFLRV9NRU1fREVG
SU5FRCh4LCB5KQorCisjZWxzZQorCisjZGVmaW5lIENPTlNUVElNRV9TRUNSRVQoeCwgeSkKKyNk
ZWZpbmUgQ09OU1RUSU1FX0RFQ0xBU1NJRlkoeCwgeSkKKworI2VuZGlmICAvLyBCT1JJTkdTU0xf
Q09OU1RBTlRfVElNRV9WQUxJREFUSU9OCisKIAogLy8gVGhyZWFkLXNhZmUgaW5pdGlhbGlzYXRp
b24uCiAKQEAgLTUyOSw2ICs1OTUsNyBAQCBCU1NMX05BTUVTUEFDRV9FTkQKIC8vIHN0b3JlZC4K
IHR5cGVkZWYgZW51bSB7CiAgIE9QRU5TU0xfVEhSRUFEX0xPQ0FMX0VSUiA9IDAsCisgIE9QRU5T
U0xfVEhSRUFEX0xPQ0FMX1JBTkQsCiAgIE9QRU5TU0xfVEhSRUFEX0xPQ0FMX1RFU1QsCiAgIE5V
TV9PUEVOU1NMX1RIUkVBRF9MT0NBTFMsCiB9IHRocmVhZF9sb2NhbF9kYXRhX3Q7CkBAIC02MjAs
NyArNjg3LDcgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCBDUllQVE9fYnN3YXA4KHVpbnQ2NF90
IHgpIHsKIH0KICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCiBPUEVOU1NMX01TVkNfUFJBR01BKHdh
cm5pbmcocHVzaCwgMykpCi0jaW5jbHVkZSA8aW50cmluLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+
CiBPUEVOU1NMX01TVkNfUFJBR01BKHdhcm5pbmcocG9wKSkKICNwcmFnbWEgaW50cmluc2ljKF9i
eXRlc3dhcF91aW50NjQsIF9ieXRlc3dhcF91bG9uZykKIHN0YXRpYyBpbmxpbmUgdWludDMyX3Qg
Q1JZUFRPX2Jzd2FwNCh1aW50MzJfdCB4KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL21lbS5j
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9tZW0uYwppbmRleCBhMDYwNjFiNDlhMDc1M2FhZDRjNTY3ZTk0YmIxNTg3
ZTJjNmQ0OWVhLi4wY2EwZTg0ZjM2MjllNjY0NWZiNWQxZGFhNDJmYmUxNTkxMWRhNWZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL21lbS5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vbWVtLmMKQEAgLTcxLDcg
KzcxLDE4IEBAIE9QRU5TU0xfTVNWQ19QUkFHTUEod2FybmluZyhwb3ApKQogCiAjZGVmaW5lIE9Q
RU5TU0xfTUFMTE9DX1BSRUZJWCA4CiAKLSNpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVk
KF9fY2xhbmdfXykKKyNpZiBkZWZpbmVkKE9QRU5TU0xfQVNBTikKK3ZvaWQgX19hc2FuX3BvaXNv
bl9tZW1vcnlfcmVnaW9uKGNvbnN0IHZvbGF0aWxlIHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKTsK
K3ZvaWQgX19hc2FuX3VucG9pc29uX21lbW9yeV9yZWdpb24oY29uc3Qgdm9sYXRpbGUgdm9pZCAq
YWRkciwgc2l6ZV90IHNpemUpOworI2Vsc2UKK3N0YXRpYyB2b2lkIF9fYXNhbl9wb2lzb25fbWVt
b3J5X3JlZ2lvbihjb25zdCB2b2lkICphZGRyLCBzaXplX3Qgc2l6ZSkge30KK3N0YXRpYyB2b2lk
IF9fYXNhbl91bnBvaXNvbl9tZW1vcnlfcmVnaW9uKGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBz
aXplKSB7fQorI2VuZGlmCisKKy8vIFdpbmRvd3MgZG9lc24ndCByZWFsbHkgc3VwcG9ydCB3ZWFr
IHN5bWJvbHMgYXMgb2YgTWF5IDIwMTksIGFuZCBDbGFuZyBvbgorLy8gV2luZG93cyB3aWxsIGVt
aXQgc3Ryb25nIHN5bWJvbHMgaW5zdGVhZC4gU2VlCisvLyBodHRwczovL2J1Z3MubGx2bS5vcmcv
c2hvd19idWcuY2dpP2lkPTM3NTk4CisjaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgKGRlZmluZWQo
X19jbGFuZ19fKSAmJiAhZGVmaW5lZChfTVNDX1ZFUikpCiAvLyBzZGFsbG9jeCBpcyBhIHNpemVk
IHxmcmVlfCBmdW5jdGlvbi4gQnkgcGFzc2luZyB0aGUgc2l6ZSAod2hpY2ggd2UgaGFwcGVuIHRv
CiAvLyBhbHdheXMga25vdyBpbiBCb3JpbmdTU0wpLCB0aGUgbWFsbG9jIGltcGxlbWVudGF0aW9u
IGNhbiBzYXZlIHdvcmsuIFdlIGNhbm5vdAogLy8gZGVwZW5kIG9uIHxzZGFsbG9jeHwgYmVpbmcg
YXZhaWxhYmxlIHNvIHdlIGRlY2xhcmUgYSB3cmFwcGVyIHRoYXQgZmFsbHMgYmFjawpAQCAtOTks
NiArMTEwLDcgQEAgdm9pZCAqT1BFTlNTTF9tYWxsb2Moc2l6ZV90IHNpemUpIHsKIAogICAqKHNp
emVfdCAqKXB0ciA9IHNpemU7CiAKKyAgX19hc2FuX3BvaXNvbl9tZW1vcnlfcmVnaW9uKHB0ciwg
T1BFTlNTTF9NQUxMT0NfUFJFRklYKTsKICAgcmV0dXJuICgodWludDhfdCAqKXB0cikgKyBPUEVO
U1NMX01BTExPQ19QUkVGSVg7CiB9CiAKQEAgLTEwOCw2ICsxMjAsNyBAQCB2b2lkIE9QRU5TU0xf
ZnJlZSh2b2lkICpvcmlnX3B0cikgewogICB9CiAKICAgdm9pZCAqcHRyID0gKCh1aW50OF90ICop
b3JpZ19wdHIpIC0gT1BFTlNTTF9NQUxMT0NfUFJFRklYOworICBfX2FzYW5fdW5wb2lzb25fbWVt
b3J5X3JlZ2lvbihwdHIsIE9QRU5TU0xfTUFMTE9DX1BSRUZJWCk7CiAKICAgc2l6ZV90IHNpemUg
PSAqKHNpemVfdCAqKXB0cjsKICAgT1BFTlNTTF9jbGVhbnNlKHB0ciwgc2l6ZSArIE9QRU5TU0xf
TUFMTE9DX1BSRUZJWCk7CkBAIC0xMjAsNyArMTMzLDkgQEAgdm9pZCAqT1BFTlNTTF9yZWFsbG9j
KHZvaWQgKm9yaWdfcHRyLCBzaXplX3QgbmV3X3NpemUpIHsKICAgfQogCiAgIHZvaWQgKnB0ciA9
ICgodWludDhfdCAqKW9yaWdfcHRyKSAtIE9QRU5TU0xfTUFMTE9DX1BSRUZJWDsKKyAgX19hc2Fu
X3VucG9pc29uX21lbW9yeV9yZWdpb24ocHRyLCBPUEVOU1NMX01BTExPQ19QUkVGSVgpOwogICBz
aXplX3Qgb2xkX3NpemUgPSAqKHNpemVfdCAqKXB0cjsKKyAgX19hc2FuX3BvaXNvbl9tZW1vcnlf
cmVnaW9uKHB0ciwgT1BFTlNTTF9NQUxMT0NfUFJFRklYKTsKIAogICB2b2lkICpyZXQgPSBPUEVO
U1NMX21hbGxvYyhuZXdfc2l6ZSk7CiAgIGlmIChyZXQgPT0gTlVMTCkgewpAQCAtMTUzLDYgKzE2
OCwxMCBAQCB2b2lkIE9QRU5TU0xfY2xlYW5zZSh2b2lkICpwdHIsIHNpemVfdCBsZW4pIHsKICNl
bmRpZiAgLy8gIU9QRU5TU0xfTk9fQVNNCiB9CiAKK3ZvaWQgT1BFTlNTTF9jbGVhcl9mcmVlKHZv
aWQgKnB0ciwgc2l6ZV90IHVudXNlZCkgeworICBPUEVOU1NMX2ZyZWUocHRyKTsKK30KKwogaW50
IENSWVBUT19tZW1jbXAoY29uc3Qgdm9pZCAqaW5fYSwgY29uc3Qgdm9pZCAqaW5fYiwgc2l6ZV90
IGxlbikgewogICBjb25zdCB1aW50OF90ICphID0gaW5fYTsKICAgY29uc3QgdWludDhfdCAqYiA9
IGluX2I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL29iai9vYmpfZGF0LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L29iai9vYmpfZGF0LmgKaW5kZXggMGY1YTNmYTA4YTQ3NDAxMjBiNjUxM2YxYzBlYTJjZThiNGZl
MDE5ZS4uMWE5YmYxNTg5MGNjZjM0YzI0MTJmNzQ5ODRhNDdlZDc2M2JiOGUzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9vYmovb2JqX2RhdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vb2JqL29ial9kYXQu
aApAQCAtNTcsNyArNTcsNyBAQAogLyogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBjcnlwdG8v
b2JqL29iamVjdHMuZ28uICovCiAKIAotI2RlZmluZSBOVU1fTklEIDk1OQorI2RlZmluZSBOVU1f
TklEIDk2MQogCiBzdGF0aWMgY29uc3QgdWludDhfdCBrT2JqZWN0RGF0YVtdID0gewogICAgIC8q
IE5JRF9yc2Fkc2kgKi8KQEAgLTg3NTUsNiArODc1NSw4IEBAIHN0YXRpYyBjb25zdCBBU04xX09C
SkVDVCBrT2JqZWN0c1tOVU1fTklEXSA9IHsKICAgICB7IkF1dGhQU0siLCAiYXV0aC1wc2siLCBO
SURfYXV0aF9wc2ssIDAsIE5VTEwsIDB9LAogICAgIHsiS3hBTlkiLCAia3gtYW55IiwgTklEX2t4
X2FueSwgMCwgTlVMTCwgMH0sCiAgICAgeyJBdXRoQU5ZIiwgImF1dGgtYW55IiwgTklEX2F1dGhf
YW55LCAwLCBOVUxMLCAwfSwKKyAgICB7IkNFQ1BRMiIsICJDRUNQUTIiLCBOSURfQ0VDUFEyLCAw
LCBOVUxMLCAwfSwKKyAgICB7IkNFQ1BRMmIiLCAiQ0VDUFEyYiIsIE5JRF9DRUNQUTJiLCAwLCBO
VUxMLCAwfSwKIH07CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrTklEc0luU2hvcnROYW1lT3Jk
ZXJbXSA9IHsKQEAgLTg4MTYsNiArODgxOCw4IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrTklE
c0luU2hvcnROYW1lT3JkZXJbXSA9IHsKICAgICAxMTAgLyogQ0FTVDUtQ0ZCICovLAogICAgIDEw
OSAvKiBDQVNUNS1FQ0IgKi8sCiAgICAgMTExIC8qIENBU1Q1LU9GQiAqLywKKyAgICA5NTkgLyog
Q0VDUFEyICovLAorICAgIDk2MCAvKiBDRUNQUTJiICovLAogICAgIDg5NCAvKiBDTUFDICovLAog
ICAgIDEzIC8qIENOICovLAogICAgIDE0MSAvKiBDUkxSZWFzb24gKi8sCkBAIC05NzIwLDYgKzk3
MjQsOCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQga05JRHNJbkxvbmdOYW1lT3JkZXJbXSA9IHsK
ICAgICAyODUgLyogQmlvbWV0cmljIEluZm8gKi8sCiAgICAgMTc5IC8qIENBIElzc3VlcnMgKi8s
CiAgICAgNzg1IC8qIENBIFJlcG9zaXRvcnkgKi8sCisgICAgOTU5IC8qIENFQ1BRMiAqLywKKyAg
ICA5NjAgLyogQ0VDUFEyYiAqLywKICAgICAxMzEgLyogQ29kZSBTaWduaW5nICovLAogICAgIDc4
MyAvKiBEaWZmaWUtSGVsbG1hbiBiYXNlZCBNQUMgKi8sCiAgICAgMzgyIC8qIERpcmVjdG9yeSAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vb2JqL29ial9tYWMubnVtIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9v
Ymovb2JqX21hYy5udW0KaW5kZXggNmRiYzBmMTMxMzg0Yzc3ZWJiZTc4YzZmZTRlN2UwMWQ2ZTUz
N2VkOS4uZjJkNGU4Y2FlMzEwMDA2YzA2NWUwOGRlZTkyNjVlOTg1NzA5OTZjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9vYmovb2JqX21hYy5udW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9vYmovb2JqX21h
Yy5udW0KQEAgLTk0NywzICs5NDcsNSBAQCBhdXRoX2VjZHNhCQk5NTUKIGF1dGhfcHNrCQk5NTYK
IGt4X2FueQkJOTU3CiBhdXRoX2FueQkJOTU4CitDRUNQUTIJCTk1OQorQ0VDUFEyYgkJOTYwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL29iai9vYmplY3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vb2JqL29i
amVjdHMudHh0CmluZGV4IDBjNDhlM2MwOTFjNmMwNzg5NTM0YTRjOWFkYmQwMTU3OWM1NGU3ZjMu
LjZlN2VjZjA3NjQ3MjdiNTRhZjQ0ZWQzYWUxNGZkMDM2NWFiZTNmZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vb2JqL29iamVjdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vb2JqL29iamVjdHMudHh0
CkBAIC01NTksNyArNTU5LDcgQEAgaWQtY21jIDE5CQk6IGlkLWNtYy1yZXNwb25zZUluZm8KIGlk
LWNtYyAyMQkJOiBpZC1jbWMtcXVlcnlQZW5kaW5nCiBpZC1jbWMgMjIJCTogaWQtY21jLXBvcExp
bmtSYW5kb20KIGlkLWNtYyAyMwkJOiBpZC1jbWMtcG9wTGlua1dpdG5lc3MKLWlkLWNtYyAyNAkJ
OiBpZC1jbWMtY29uZmlybUNlcnRBY2NlcHRhbmNlIAoraWQtY21jIDI0CQk6IGlkLWNtYy1jb25m
aXJtQ2VydEFjY2VwdGFuY2UKIAogIyBvdGhlciBuYW1lcwogaWQtb24gMQkJCTogaWQtb24tcGVy
c29uYWxEYXRhCkBAIC0xMjM5LDcgKzEyMzksNyBAQCBjcnlwdG9jb20gMSA4IDEJCTogaWQtR29z
dFIzNDEwLTIwMDEtUGFyYW1TZXQtY2MgOiBHT1NUIFIgMzQxMC0yMDAxIFBhcmFtZXRlciBTZQog
IyBEZWZpbml0aW9ucyBmb3IgQ2FtZWxsaWEgY2lwaGVyIC0gRUNCLCBDRkIsIE9GQiBNT0RFCiAK
ICFBbGlhcyBudHQtZHMgMCAzIDQ0MDEgNQotIUFsaWFzIGNhbWVsbGlhIG50dC1kcyAzIDEgOSAK
KyFBbGlhcyBjYW1lbGxpYSBudHQtZHMgMyAxIDkKIAogY2FtZWxsaWEgMQkJOiBDQU1FTExJQS0x
MjgtRUNCCQk6IGNhbWVsbGlhLTEyOC1lY2IKICFDbmFtZSBjYW1lbGxpYS0xMjgtb2ZiMTI4CkBA
IC0xMzEwLDcgKzEzMTAsNyBAQCBJU08tVVMgMTAwNDYgMiAxCTogZGhwdWJsaWNudW1iZXIJCTog
WDkuNDIgREgKIDEgMyAzNiAzIDMgMiA4IDEgMSAxMSA6IGJyYWlucG9vbFAzODRyMQogMSAzIDM2
IDMgMyAyIDggMSAxIDEyIDogYnJhaW5wb29sUDM4NHQxCiAxIDMgMzYgMyAzIDIgOCAxIDEgMTMg
OiBicmFpbnBvb2xQNTEycjEKLTEgMyAzNiAzIDMgMiA4IDEgMSAxNCA6IGJyYWlucG9vbFA1MTJ0
MSAgICAgICAgICAgIAorMSAzIDM2IDMgMyAyIDggMSAxIDE0IDogYnJhaW5wb29sUDUxMnQxCiAK
ICMgRUNESCBzY2hlbWVzIGZyb20gUkZDNTc1MwogIUFsaWFzIHg5LTYzLXNjaGVtZSAxIDMgMTMz
IDE2IDg0MCA2MyAwCkBAIC0xMzM0LDYgKzEzMzQsMTIgQEAgc2VjZy1zY2hlbWUgMTQgMyA6IGRo
U2luZ2xlUGFzcy1jb2ZhY3RvckRILXNoYTUxMmtkZi1zY2hlbWUKICMgTklEIGZvciBYMjU1MTkg
KG5vIGNvcnJlc3BvbmRpbmcgT0lEKS4KICA6IFgyNTUxOQogCisjIE5JRCBmb3IgQ0VDUFEyIChu
byBjb3JyZXNwb25kaW5nIE9JRCkuCisgOiBDRUNQUTIKKworIyBOSUQgZm9yIENFQ1BRMiAobm8g
Y29ycmVzcG9uZGluZyBPSUQpLgorIDogQ0VDUFEyYgorCiAjIFNlZSBSRkMgODQxMC4KIDEgMyAx
MDEgMTEyIDogRUQyNTUxOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20vYXJtLXhs
YXRlLnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2NyeXB0by9wZXJsYXNtL2FybS14bGF0ZS5wbAppbmRleCBlYjhlYTU5YjBl
ZTdmNjc5MWYyMzVhNWJkNjQ5NjVlYjJmYTdjY2Q3Li40ZGVjMjc2MGIyZjljNjU3ZThlZWRmNzZi
MzU4YmVlMzI2ODBmOTczIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20vYXJtLXhsYXRl
LnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vcGVybGFzbS9hcm0teGxhdGUucGwKQEAgLTE0NCwxMSArMTQ0
LDEyIEBAIHByaW50IDw8X19fOwogLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIGEgc2lt
aWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdTU0wKIC8vIHNvdXJjZSB0cmVl
LiBEbyBub3QgZWRpdCBieSBoYW5kLgogCi0jaWYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQorI2lm
ICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjZGVmaW5lIF9faGFzX2ZlYXR1cmUoeCkgMAorI2Vu
ZGlmCiAjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKSAmJiAhZGVmaW5lZChPUEVO
U1NMX05PX0FTTSkKICNkZWZpbmUgT1BFTlNTTF9OT19BU00KICNlbmRpZgotI2VuZGlmCiAKICNp
ZiAhZGVmaW5lZChPUEVOU1NMX05PX0FTTSkKIF9fXwpAQCAtMTY4LDYgKzE2OSwxNSBAQCB3aGls
ZShteSAkbGluZT08PikgewogICAgICRsaW5lID1+IHN8XlxzK3x8OwkJIyAuLi4gYW5kIHNraXAg
d2hpdGUgc3BhY2VzIGluIGJlZ2lubmluZy4uLgogICAgICRsaW5lID1+IHN8XHMrJHx8OwkJIyAu
Li4gYW5kIGF0IHRoZSBlbmQKIAorICAgIGlmICgkZmxhdm91ciA9fiAvNjQvKSB7CisJbXkgJGNv
cHkgPSAkbGluZTsKKwkjIEFsc28gcmVtb3ZlIGxpbmUgY29tbWVudHMuCisJJGNvcHkgPX4gc3wv
Ly4qfHw7CisJaWYgKCRjb3B5ID1+IC9cYlt3eF0xOFxiLykgeworCSAgICBkaWUgInIxOCBpcyBy
ZXNlcnZlZCBieSB0aGUgcGxhdGZvcm0gYW5kIG1heSBub3QgYmUgdXNlZC4iOworCX0KKyAgICB9
CisKICAgICB7CiAJJGxpbmUgPX4gc3xbXGJcLl1MKFx3ezIsfSl8TCQxfGc7CSMgY29tbW9uIGRl
bm9taW5hdG9yIGZvciBMb2NhbGxhYmVsCiAJJGxpbmUgPX4gc3xcYkwoXHd7Mix9KXxcLkwkMXxn
CWlmICgkZG90aW5sb2NhbGxhYmVscyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20v
eDg2XzY0LXhsYXRlLnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wZXJsYXNtL3g4Nl82NC14bGF0ZS5wbAppbmRl
eCA0OTU1MWM4MTdmZDk1Yjk0OTdkYTIzMTllYzNlZGM3NDg4ZjYyZDEwLi5mOTI4NDExNTcxZWRj
NWQ5N2U5Mzg4YzQzN2MxZTAwZmRlMTk5ZWVmIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxh
c20veDg2XzY0LXhsYXRlLnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGVybGFzbS94ODZfNjQteGxhdGUu
cGwKQEAgLTEyNCw2ICsxMjQsOSBAQCBteSAlZ2xvYmFsczsKIAkJJHNlbGYtPntzen0gPSAiIjsK
IAkgICAgfSBlbHNpZiAoJHNlbGYtPntvcH0gPX4gL21vdltkcV0vICYmICQkbGluZSA9fiAvJXht
bS8pIHsKIAkJJHNlbGYtPntzen0gPSAiIjsKKwkgICAgfSBlbHNpZiAoJHNlbGYtPntvcH0gPX4g
L15vcihbcWx3Yl0pJC8pIHsKKwkJJHNlbGYtPntvcH0gPSAib3IiOworCQkkc2VsZi0+e3N6fSA9
ICQxOwogCSAgICB9IGVsc2lmICgkc2VsZi0+e29wfSA9fiAvKFthLXpdezMsfSkoW3Fsd2JdKSQv
KSB7CiAJCSRzZWxmLT57b3B9ID0gJDE7CiAJCSRzZWxmLT57c3p9ID0gJDI7CkBAIC01MzYsNiAr
NTM5LDcgQEAgbXkgJWdsb2JhbHM7CiAJKTsKIAogICAgIG15ICgkY2ZhX3JlZywgJGNmYV9yc3Ap
OworICAgIG15IEBjZmFfc3RhY2s7CiAKICAgICAjIFt1c11sZWIxMjggZm9ybWF0IGlzIHZhcmlh
YmxlLWxlbmd0aCBpbnRlZ2VyIHJlcHJlc2VudGF0aW9uIGJhc2UKICAgICAjIDJeMTI4LCB3aXRo
IG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggYnl0ZSBiZWluZyAwIGRlbm90aW5nCkBAIC02
ODMsNiArNjg3LDE0IEBAIG15ICVnbG9iYWxzOwogCQkJCQkJICAgICAgY2ZhX2V4cHJlc3Npb24o
JCRsaW5lKSkpOwogCQkJCWxhc3Q7CiAJCQkgICAgICB9OworCSAgICAvcmVtZW1iZXJfc3RhdGUv
CisJCQkmJiBkbyB7CXB1c2ggQGNmYV9zdGFjaywgWyRjZmFfcmVnLCAkY2ZhX3JzcF07CisJCQkJ
bGFzdDsKKwkJCSAgICAgIH07CisJICAgIC9yZXN0b3JlX3N0YXRlLworCQkJJiYgZG8gewkoJGNm
YV9yZWcsICRjZmFfcnNwKSA9IEB7cG9wIEBjZmFfc3RhY2t9OworCQkJCWxhc3Q7CisJCQkgICAg
ICB9OwogCSAgICB9CiAKIAkgICAgJHNlbGYtPnt2YWx1ZX0gPSAiLmNmaV8kZGlyXHQkJGxpbmUi
IGlmICgkZGlyKTsKQEAgLTcyMCw3ICs3MzIsNyBAQCBteSAlZ2xvYmFsczsKIAkJCQkgICAgJCRs
aW5lID0gJGdsb2JhbHN7JCRsaW5lfSBpZiAoJHByZWZpeCk7CiAJCQkJICAgIGxhc3Q7CiAJCQkJ
ICB9OwotCQkvXC50eXBlLyAgICAmJiBkbyB7IG15ICgkc3ltLCR0eXBlLCRuYXJnKSA9IHNwbGl0
KCcsJywkJGxpbmUpOworCQkvXC50eXBlLyAgICAmJiBkbyB7IG15ICgkc3ltLCR0eXBlLCRuYXJn
KSA9IHNwbGl0KC9ccyosXHMqLywkJGxpbmUpOwogCQkJCSAgICBpZiAoJHR5cGUgZXEgIlxAZnVu
Y3Rpb24iKSB7CiAJCQkJCXVuZGVmICRjdXJyZW50X2Z1bmN0aW9uOwogCQkJCQkkY3VycmVudF9m
dW5jdGlvbi0+e25hbWV9ID0gJHN5bTsKQEAgLTc0Miw3ICs3NTQsNyBAQCBteSAlZ2xvYmFsczsK
IAkJCQkgICAgfQogCQkJCSAgICBsYXN0OwogCQkJCSAgfTsKLQkJL1wucnZhfFwubG9uZ3xcLnF1
YWQvCisJCS9cLnJ2YXxcLmxvbmd8XC5xdWFkfFwuYnl0ZS8KIAkJCSAgICAmJiBkbyB7ICQkbGlu
ZSA9fiBzLyhbX2Etel1bX2EtejAtOV0qKS8kZ2xvYmFsc3skMX0gb3IgJDEvZ2VpOwogCQkJCSAg
ICAkJGxpbmUgPX4gcy9cLkwvJGRlY29yL2c7CiAJCQkJICAgIGxhc3Q7CkBAIC04ODIsNyArODk0
LDcgQEAgbXkgJWdsb2JhbHM7CiAJCQkJCQkJJHZhcj1+cy9eKDBiWzAtMV0rKS9vY3QoJDEpL2Vp
ZzsKIAkJCQkJCQkkdmFyPX5zL14weChbMC05YS1mXSspLzAkMWgvaWcgaWYgKCRtYXNtKTsKIAkJ
CQkJCQlpZiAoJHN6IGVxICJEIiAmJiAoJGN1cnJlbnRfc2VnbWVudD1+Ly5bcHhdZGF0YS8gfHwg
JGRpciBlcSAiLnJ2YSIpKQotCQkJCQkJCXsgJHZhcj1+cy8oW19hLXpcJFxAXVtfYS16MC05XCRc
QF0qKS8kbmFzbT8iJDEgd3J0IC4uaW1hZ2ViYXNlIjoiaW1hZ2VyZWwgJDEiL2VnaTsgfQorCQkJ
CQkJCXsgJHZhcj1+cy9eKFtfYS16XCRcQF1bX2EtejAtOVwkXEBdKikvJG5hc20/IiQxIHdydCAu
LmltYWdlYmFzZSI6ImltYWdlcmVsICQxIi9lZ2k7IH0KIAkJCQkJCQkkdmFyOwogCQkJCQkJICAg
IH07CiAKQEAgLTExNjksNyArMTE4MSwyMCBAQCB3aGlsZShkZWZpbmVkKG15ICRsaW5lPTw+KSkg
ewogCiAgICAgJGxpbmUgPX4gc3xcUiR8fDsgICAgICAgICAgICMgQmV0dGVyIGNob21wCiAKLSAg
ICAkbGluZSA9fiBzfFsjIV0uKiR8fDsJIyBnZXQgcmlkIG9mIGFzbS1zdHlsZSBjb21tZW50cy4u
LgorICAgIGlmICgkbmFzbSkgeworCSRsaW5lID1+IHN8XiNpZmRlZiB8JWlmZGVmIHw7CisJJGxp
bmUgPX4gc3xeI2lmbmRlZiB8JWlmbmRlZiB8OworCSRsaW5lID1+IHN8XiNlbmRpZnwlZW5kaWZ8
OworCSRsaW5lID1+IHN8WyMhXS4qJHx8OwkjIGdldCByaWQgb2YgYXNtLXN0eWxlIGNvbW1lbnRz
Li4uCisgICAgfSBlbHNlIHsKKwkjIEdldCByaWQgb2YgYXNtLXN0eWxlIGNvbW1lbnRzIGJ1dCBu
b3QgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMuIFRoZQorCSMgZm9ybWVyIGFyZSBpZGVudGlmaWVk
IGJ5IGhhdmluZyBhIGxldHRlciBhZnRlciB0aGUgJyMnIGFuZCBzdGFydGluZyBpbgorCSMgdGhl
IGZpcnN0IGNvbHVtbi4KKwkkbGluZSA9fiBzfCEuKiR8fDsKKwkkbGluZSA9fiBzfCg/PD0uKSMu
KiR8fDsKKwkkbGluZSA9fiBzfF4jKFteYS16XS4qKT8kfHw7CisgICAgfQorCiAgICAgJGxpbmUg
PX4gc3wvXCouKlwqL3x8OwkjIC4uLiBhbmQgQy1zdHlsZSBjb21tZW50cy4uLgogICAgICRsaW5l
ID1+IHN8XlxzK3x8OwkJIyAuLi4gYW5kIHNraXAgd2hpdGUgc3BhY2VzIGluIGJlZ2lubmluZwog
ICAgICRsaW5lID1+IHN8XHMrJHx8OwkJIyAuLi4gYW5kIGF0IHRoZSBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vcGVybGFzbS94ODZhc20ucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20veDg2YXNt
LnBsCmluZGV4IDNkMjk0M2JjYjI5ZDkyYjRjZDc1YTkxMDViZTE5NGY1NjE2NzRhMGIuLjMyNzgx
ODhhYzg3ZGM5NTgzMDRiZTQ1Mzk2ODgyNGM3MDQ2MTQ1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vcGVybGFzbS94ODZhc20ucGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wZXJsYXNtL3g4NmFzbS5wbApA
QCAtMzMsNiArMzMsMjYgQEAgc3ViIDo6QVVUT0xPQUQKICAgICAmZ2VuZXJpYygkb3Bjb2RlLEBf
KSBvciBkaWUgInVuZGVmaW5lZCBzdWJyb3V0aW5lIFwmJEFVVE9MT0FEIjsKIH0KIAorIyByZWNv
cmRfZnVuY3Rpb25faGl0KGludCkgd3JpdGVzIGEgYnl0ZSB3aXRoIHZhbHVlIG9uZSB0byB0aGUg
Z2l2ZW4gb2Zmc2V0IG9mCisjIHxCT1JJTkdTU0xfZnVuY3Rpb25faGl0fCwgYnV0IG9ubHkgaWYg
TkRFQlVHIGlzIG5vdCBkZWZpbmVkLiBUaGlzIGlzIHVzZWQgaW4KKyMgaW1wbF9kaXNwYXRjaF90
ZXN0LmNjIHRvIHRlc3Qgd2hldGhlciB0aGUgZXhwZWN0ZWQgYXNzZW1ibHkgZnVuY3Rpb25zIGFy
ZQorIyB0cmlnZ2VyZWQgYnkgaGlnaC1sZXZlbCBBUEkgY2FsbHMuCitzdWIgOjpyZWNvcmRfZnVu
Y3Rpb25faGl0Cit7IG15KCRpbmRleCk9QF87CisgICAgJnByZXByb2Nlc3Nvcl9pZm5kZWYoIk5E
RUJVRyIpOworICAgICZwdXNoKCJlYngiKTsKKyAgICAmcHVzaCgiZWR4Iik7CisgICAgJmNhbGwo
JmxhYmVsKCJwaWMiKSk7CisgICAgJnNldF9sYWJlbCgicGljIik7CisgICAgJmJsaW5kcG9wKCJl
YngiKTsKKyAgICAmbGVhKCJlYngiLCZEV1AoIkJPUklOR1NTTF9mdW5jdGlvbl9oaXQrJGluZGV4
Ii4iLSIuJmxhYmVsKCJwaWMiKSwiZWJ4IikpOworICAgICZtb3YoImVkeCIsIDEpOworICAgICZt
b3ZiKCZCUCgwLCAiZWJ4IiksICJkbCIpOworICAgICZwb3AoImVkeCIpOworICAgICZwb3AoImVi
eCIpOworICAgICZwcmVwcm9jZXNzb3JfZW5kaWYoKTsKK30KKwogc3ViIDo6ZW1pdAogeyBteSAk
b3Bjb2RlPXNoaWZ0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20veDg2Z2FzLnBs
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by9wZXJsYXNtL3g4Nmdhcy5wbAppbmRleCAwYzk4OWExNGI0ODFkMTc4OTUy
ZDdjZjk3NWI1ZGI0M2EyYWY2N2YxLi40ZTE5YTg5OWQ3NWFmNGNkMTM3MDc2MGJmZTJiNmQ3ZGRl
MGRiY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20veDg2Z2FzLnBsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vcGVybGFzbS94ODZnYXMucGwKQEAgLTI2NSw2ICsyNjUsMTQgQEAgX19fCiBzdWIg
OjpkYXRhc2VnCiB7ICAgcHVzaChAb3V0LCIuZGF0YVxuIik7ICAgfQogCitzdWIgOjpwcmVwcm9j
ZXNzb3JfaWZuZGVmCit7IG15KCRkZWZpbmUpPUBfOworICAgIHB1c2goQG91dCwiI2lmbmRlZiAk
e2RlZmluZX1cbiIpOworfQorCitzdWIgOjpwcmVwcm9jZXNzb3JfZW5kaWYKK3sgcHVzaChAb3V0
LCIjZW5kaWZcbiIpOyAgICB9CisKICo6OmhpZGRlbiA9IHN1YiB7IHB1c2goQG91dCwiLmhpZGRl
blx0JG5tZGVjb3IkX1swXVxuIik7IH0gaWYgKCQ6OmVsZik7CiAKIDE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL3Blcmxhc20veDg2bWFzbS5wbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGVybGFzbS94ODZtYXNt
LnBsCmluZGV4IGRmZmVlNzYyMTE1ZjhlZGMyZDg3OWJjOGFiMmI2ZTk1YzYwMTZhMDYuLjAxYmZi
ZjM0M2EwODY4YTY1MWQ4YzQ2ZjlkOTVmNjg3NzJjYzViOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vcGVybGFzbS94ODZtYXNtLnBsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGVybGFzbS94ODZtYXNtLnBs
CkBAIC0yMDMsNCArMjAzLDEyIEBAIHN1YiA6OnNhZmVzZWgKICAgICBwdXNoKEBvdXQsIkVORElG
XG4iKTsKIH0KIAorc3ViIDo6cHJlcHJvY2Vzc29yX2lmbmRlZgoreyBteSgkZGVmaW5lKT1AXzsK
KyAgICBwdXNoKEBvdXQsIiVpZm5kZWYgJHtkZWZpbmV9XG4iKTsKK30KKworc3ViIDo6cHJlcHJv
Y2Vzc29yX2VuZGlmCit7IHB1c2goQG91dCwiJWVuZGlmXG4iKTsgICAgfQorCiAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by9wZXJsYXNtL3g4Nm5hc20ucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20v
eDg2bmFzbS5wbAppbmRleCBkMzc3M2I2OGY0ZDljZDg4YmRlZTQyM2IxYjBhYTVhMTNlOWU4M2Qy
Li5hM2UwYWI3Mjk5YjhjZWQyZjRlMzkwNWIwZTA5ZWQ5YTQ5ODc2YzIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL3Blcmxhc20veDg2bmFzbS5wbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Blcmxhc20veDg2
bmFzbS5wbApAQCAtMTkxLDQgKzE5MSwxMiBAQCBzdWIgOjpzYWZlc2VoCiAgICAgcHVzaChAb3V0
LCIlZW5kaWZcbiIpOwogfQogCitzdWIgOjpwcmVwcm9jZXNzb3JfaWZuZGVmCit7IG15KCRkZWZp
bmUpPUBfOworICAgIHB1c2goQG91dCwiJWlmbmRlZiAke2RlZmluZX1cbiIpOworfQorCitzdWIg
OjpwcmVwcm9jZXNzb3JfZW5kaWYKK3sgcHVzaChAb3V0LCIlZW5kaWZcbiIpOyAgICB9CisKIDE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3BrY3M3L3BrY3M3LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3BrY3M3
L3BrY3M3LmMKaW5kZXggYzA0YmZmZGU1N2UxNzcyYzgxNjdiYjBjYWNkYjI2ZDliM2RjZWFjYS4u
MWQwYjEzOTAyOTE4M2U0NzVlYjE5NGY0ODBjYTQzNmRjZjNmMmYyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9wa2NzNy9wa2NzNy5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGtjczcvcGtjczcuYwpAQCAt
MTM0LDcgKzEzNCw3IEBAIGVycjoKIGludCBwa2NzN19idW5kbGUoQ0JCICpvdXQsIGludCAoKmNi
KShDQkIgKm91dCwgY29uc3Qgdm9pZCAqYXJnKSwKICAgICAgICAgICAgICAgICAgY29uc3Qgdm9p
ZCAqYXJnKSB7CiAgIENCQiBvdXRlcl9zZXEsIG9pZCwgd3JhcHBlZF9zZXEsIHNlcSwgdmVyc2lv
bl9ieXRlcywgZGlnZXN0X2FsZ29zX3NldCwKLSAgICAgIGNvbnRlbnRfaW5mbzsKKyAgICAgIGNv
bnRlbnRfaW5mbywgc2lnbmVyX2luZm9zOwogCiAgIC8vIFNlZSBodHRwczovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvcmZjMjMxNSNzZWN0aW9uLTcKICAgaWYgKCFDQkJfYWRkX2FzbjEob3V0LCAmb3V0
ZXJfc2VxLCBDQlNfQVNOMV9TRVFVRU5DRSkgfHwKQEAgLTE1MCw3ICsxNTAsOCBAQCBpbnQgcGtj
czdfYnVuZGxlKENCQiAqb3V0LCBpbnQgKCpjYikoQ0JCICpvdXQsIGNvbnN0IHZvaWQgKmFyZyks
CiAgICAgICAhQ0JCX2FkZF9hc24xKCZzZXEsICZjb250ZW50X2luZm8sIENCU19BU04xX1NFUVVF
TkNFKSB8fAogICAgICAgIUNCQl9hZGRfYXNuMSgmY29udGVudF9pbmZvLCAmb2lkLCBDQlNfQVNO
MV9PQkpFQ1QpIHx8CiAgICAgICAhQ0JCX2FkZF9ieXRlcygmb2lkLCBrUEtDUzdEYXRhLCBzaXpl
b2Yoa1BLQ1M3RGF0YSkpIHx8Ci0gICAgICAhY2IoJnNlcSwgYXJnKSkgeworICAgICAgIWNiKCZz
ZXEsIGFyZykgfHwKKyAgICAgICFDQkJfYWRkX2FzbjEoJnNlcSwgJnNpZ25lcl9pbmZvcywgQ0JT
X0FTTjFfU0VUKSkgewogICAgIHJldHVybiAwOwogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vcGtjczcvcGtjczdfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGtjczcvcGtjczdfdGVzdC5jYwpp
bmRleCAxYWM5YWYyYjliOGFiYzczODE3ZTU4OGM2ZTBiMjBlYzJjNGY2OGEzLi45NDhiNDRmOTA3
ZTQ1OWRlNDYwMjUwZjk5MzhkMjQ2MDE2YzBmNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Br
Y3M3L3BrY3M3X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2NzNy9wa2NzN190ZXN0LmNjCkBA
IC00NjksNyArNDY5LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIga1BFTUNSTFtdID0KICAgICAiZk5R
TVFvSTlTbzRWZHk4OEtvdzZCQkJWM0x1NnNaSHVlK2NqeFhFVHJtc2hOZE5rOEFCVU1RQT1cbiIK
ICAgICAiLS0tLS1FTkQgUEtDUzctLS0tLVxuIjsKIAotc3RhdGljIHZvaWQgVGVzdENlcnRSZXBh
c2UoY29uc3QgdWludDhfdCAqZGVyX2J5dGVzLCBzaXplX3QgZGVyX2xlbikgeworc3RhdGljIHZv
aWQgVGVzdENlcnRSZXBhcnNlKGNvbnN0IHVpbnQ4X3QgKmRlcl9ieXRlcywgc2l6ZV90IGRlcl9s
ZW4pIHsKICAgYnNzbDo6VW5pcXVlUHRyPFNUQUNLX09GKFg1MDkpPiBjZXJ0cyhza19YNTA5X25l
d19udWxsKCkpOwogICBBU1NFUlRfVFJVRShjZXJ0cyk7CiAgIGJzc2w6OlVuaXF1ZVB0cjxTVEFD
S19PRihYNTA5KT4gY2VydHMyKHNrX1g1MDlfbmV3X251bGwoKSk7CkBAIC02MzgsMTEgKzYzOCwx
MSBAQCBzdGF0aWMgdm9pZCBUZXN0UEVNQ1JMcyhjb25zdCBjaGFyICpwZW0pIHsKIH0KIAogVEVT
VChQS0NTN1Rlc3QsIENlcnRSZXBhcnNlTlNTKSB7Ci0gIFRlc3RDZXJ0UmVwYXNlKGtQS0NTN05T
Uywgc2l6ZW9mKGtQS0NTN05TUykpOworICBUZXN0Q2VydFJlcGFyc2Uoa1BLQ1M3TlNTLCBzaXpl
b2Yoa1BLQ1M3TlNTKSk7CiB9CiAKIFRFU1QoUEtDUzdUZXN0LCBDZXJ0UmVwYXJzZVdpbmRvd3Mp
IHsKLSAgVGVzdENlcnRSZXBhc2Uoa1BLQ1M3V2luZG93cywgc2l6ZW9mKGtQS0NTN1dpbmRvd3Mp
KTsKKyAgVGVzdENlcnRSZXBhcnNlKGtQS0NTN1dpbmRvd3MsIHNpemVvZihrUEtDUzdXaW5kb3dz
KSk7CiB9CiAKIFRFU1QoUEtDUzdUZXN0LCBDcmxSZXBhcnNlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL3BrY3M4L3A1X3BiZXYyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3BrY3M4L3A1X3BiZXYyLmMKaW5k
ZXggNzQ5N2IwMDBmYzA3ODI5YWQzNDgwM2U1NjE0NmU2ZjMzYWVjYmM0Mi4uZTU4Y2Y0NDRkYWJh
MzhiZGI5Yjg5NTZmMDZiNDRkZWI5NDhhOWYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2Nz
OC9wNV9wYmV2Mi5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGtjczgvcDVfcGJldjIuYwpAQCAtODEsNiAr
ODEsMTAgQEAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga1BCRVMyW10gPSB7MHgyYSwgMHg4NiwgMHg0
OCwgMHg4NiwgMHhmNywKIHN0YXRpYyBjb25zdCB1aW50OF90IGtITUFDV2l0aFNIQTFbXSA9IHsw
eDJhLCAweDg2LCAweDQ4LCAweDg2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4ZjcsIDB4MGQsIDB4MDIsIDB4MDd9OwogCisvLyAxLjIuODQwLjExMzU0OS4yLjkK
K3N0YXRpYyBjb25zdCB1aW50OF90IGtITUFDV2l0aFNIQTI1NltdID0gezB4MmEsIDB4ODYsIDB4
NDgsIDB4ODYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGY3
LCAweDBkLCAweDAyLCAweDA5fTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgIHVpbnQ4X3Qg
b2lkWzldOwogICB1aW50OF90IG9pZF9sZW47CkBAIC0xNDAsMTggKzE0NCwxOCBAQCBzdGF0aWMg
aW50IGFkZF9jaXBoZXJfb2lkKENCQiAqb3V0LCBpbnQgbmlkKSB7CiB9CiAKIHN0YXRpYyBpbnQg
cGtjczVfcGJlMl9jaXBoZXJfaW5pdChFVlBfQ0lQSEVSX0NUWCAqY3R4LCBjb25zdCBFVlBfQ0lQ
SEVSICpjaXBoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aXRlcmF0aW9ucywgY29uc3QgY2hhciAqcGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgcGFzc19sZW4sIGNvbnN0IHVpbnQ4X3QgKnNhbHQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNhbHRfbGVuLCBjb25zdCB1aW50OF90ICpp
diwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaXZfbGVuLCBpbnQg
ZW5jKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRVZQX01EICpw
YmtkZjJfbWQsIHVuc2lnbmVkIGl0ZXJhdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAqcGFzcywgc2l6ZV90IHBhc3NfbGVuLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNhbHQsIHNpemVfdCBzYWx0X2xl
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppdiwg
c2l6ZV90IGl2X2xlbiwgaW50IGVuYykgewogICBpZiAoaXZfbGVuICE9IEVWUF9DSVBIRVJfaXZf
bGVuZ3RoKGNpcGhlcikpIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihQS0NTOCwgUEtDUzhfUl9F
UlJPUl9TRVRUSU5HX0NJUEhFUl9QQVJBTVMpOwogICAgIHJldHVybiAwOwogICB9CiAKICAgdWlu
dDhfdCBrZXlbRVZQX01BWF9LRVlfTEVOR1RIXTsKLSAgaW50IHJldCA9IFBLQ1M1X1BCS0RGMl9I
TUFDX1NIQTEocGFzcywgcGFzc19sZW4sIHNhbHQsIHNhbHRfbGVuLCBpdGVyYXRpb25zLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlBfQ0lQSEVSX2tleV9sZW5ndGgoY2lw
aGVyKSwga2V5KSAmJgorICBpbnQgcmV0ID0gUEtDUzVfUEJLREYyX0hNQUMocGFzcywgcGFzc19s
ZW4sIHNhbHQsIHNhbHRfbGVuLCBpdGVyYXRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGJrZGYyX21kLCBFVlBfQ0lQSEVSX2tleV9sZW5ndGgoY2lwaGVyKSwga2V5KSAmJgog
ICAgICAgICAgICAgRVZQX0NpcGhlckluaXRfZXgoY3R4LCBjaXBoZXIsIE5VTEwgLyogZW5naW5l
ICovLCBrZXksIGl2LCBlbmMpOwogICBPUEVOU1NMX2NsZWFuc2Uoa2V5LCBFVlBfTUFYX0tFWV9M
RU5HVEgpOwogICByZXR1cm4gcmV0OwpAQCAtMjAxLDkgKzIwNSw5IEBAIGludCBQS0NTNV9wYmUy
X2VuY3J5cHRfaW5pdChDQkIgKm91dCwgRVZQX0NJUEhFUl9DVFggKmN0eCwKICAgICByZXR1cm4g
MDsKICAgfQogCi0gIHJldHVybiBwa2NzNV9wYmUyX2NpcGhlcl9pbml0KGN0eCwgY2lwaGVyLCBp
dGVyYXRpb25zLCBwYXNzLCBwYXNzX2xlbiwgc2FsdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2FsdF9sZW4sIGl2LCBFVlBfQ0lQSEVSX2l2X2xlbmd0aChjaXBoZXIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIC8qIGVuY3J5cHQgKi8pOworICByZXR1cm4g
cGtjczVfcGJlMl9jaXBoZXJfaW5pdChjdHgsIGNpcGhlciwgRVZQX3NoYTEoKSwgaXRlcmF0aW9u
cywgcGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc19sZW4sIHNhbHQs
IHNhbHRfbGVuLCBpdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhF
Ul9pdl9sZW5ndGgoY2lwaGVyKSwgMSAvKiBlbmNyeXB0ICovKTsKIH0KIAogaW50IFBLQ1M1X3Bi
ZTJfZGVjcnlwdF9pbml0KGNvbnN0IHN0cnVjdCBwYmVfc3VpdGUgKnN1aXRlLCBFVlBfQ0lQSEVS
X0NUWCAqY3R4LApAQCAtMjY0LDYgKzI2OCw3IEBAIGludCBQS0NTNV9wYmUyX2RlY3J5cHRfaW5p
dChjb25zdCBzdHJ1Y3QgcGJlX3N1aXRlICpzdWl0ZSwgRVZQX0NJUEhFUl9DVFggKmN0eCwKICAg
ICB9CiAgIH0KIAorICBjb25zdCBFVlBfTUQgKm1kID0gRVZQX3NoYTEoKTsKICAgaWYgKENCU19s
ZW4oJnBia2RmMl9wYXJhbXMpICE9IDApIHsKICAgICBDQlMgYWxnX2lkLCBwcmY7CiAgICAgaWYg
KCFDQlNfZ2V0X2FzbjEoJnBia2RmMl9wYXJhbXMsICZhbGdfaWQsIENCU19BU04xX1NFUVVFTkNF
KSB8fApAQCAtMjczLDE0ICsyNzgsMTggQEAgaW50IFBLQ1M1X3BiZTJfZGVjcnlwdF9pbml0KGNv
bnN0IHN0cnVjdCBwYmVfc3VpdGUgKnN1aXRlLCBFVlBfQ0lQSEVSX0NUWCAqY3R4LAogICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCi0gICAgLy8gV2Ugb25seSBzdXBwb3J0IGhtYWNXaXRoU0hBMS4g
SXQgaXMgdGhlIERFRkFVTFQsIHNvIERFUiByZXF1aXJlcyBpdCBiZQotICAgIC8vIG9taXR0ZWQs
IGJ1dCB3ZSBtYXRjaCBPcGVuU1NMIGluIHRvbGVyYXRpbmcgaXQgYmVpbmcgcHJlc2VudC4KLSAg
ICBpZiAoIUNCU19tZW1fZXF1YWwoJnByZiwga0hNQUNXaXRoU0hBMSwgc2l6ZW9mKGtITUFDV2l0
aFNIQTEpKSkgeworICAgIGlmIChDQlNfbWVtX2VxdWFsKCZwcmYsIGtITUFDV2l0aFNIQTEsIHNp
emVvZihrSE1BQ1dpdGhTSEExKSkpIHsKKyAgICAgIC8vIGhtYWNXaXRoU0hBMSBpcyB0aGUgREVG
QVVMVCwgc28gREVSIHJlcXVpcmVzIGl0IGJlIG9taXR0ZWQsIGJ1dCB3ZQorICAgICAgLy8gbWF0
Y2ggT3BlblNTTCBpbiB0b2xlcmF0aW5nIGl0IGJlaW5nIHByZXNlbnQuCisgICAgICBtZCA9IEVW
UF9zaGExKCk7CisgICAgfSBlbHNlIGlmIChDQlNfbWVtX2VxdWFsKCZwcmYsIGtITUFDV2l0aFNI
QTI1Niwgc2l6ZW9mKGtITUFDV2l0aFNIQTI1NikpKSB7CisgICAgICBtZCA9IEVWUF9zaGEyNTYo
KTsKKyAgICB9IGVsc2UgewogICAgICAgT1BFTlNTTF9QVVRfRVJST1IoUEtDUzgsIFBLQ1M4X1Jf
VU5TVVBQT1JURURfUFJGKTsKICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIC8vIGhtYWNX
aXRoU0hBMSBoYXMgYSBOVUxMIHBhcmFtZXRlci4KKyAgICAvLyBBbGwgc3VwcG9ydGVkIFBSRnMg
dXNlIGEgTlVMTCBwYXJhbWV0ZXIuCiAgICAgQ0JTIG51bGw7CiAgICAgaWYgKCFDQlNfZ2V0X2Fz
bjEoJmFsZ19pZCwgJm51bGwsIENCU19BU04xX05VTEwpIHx8CiAgICAgICAgIENCU19sZW4oJm51
bGwpICE9IDAgfHwKQEAgLTMwMSw3ICszMTAsNyBAQCBpbnQgUEtDUzVfcGJlMl9kZWNyeXB0X2lu
aXQoY29uc3Qgc3RydWN0IHBiZV9zdWl0ZSAqc3VpdGUsIEVWUF9DSVBIRVJfQ1RYICpjdHgsCiAg
ICAgcmV0dXJuIDA7CiAgIH0KIAotICByZXR1cm4gcGtjczVfcGJlMl9jaXBoZXJfaW5pdChjdHgs
IGNpcGhlciwgKHVuc2lnbmVkKWl0ZXJhdGlvbnMsIHBhc3MsCisgIHJldHVybiBwa2NzNV9wYmUy
X2NpcGhlcl9pbml0KGN0eCwgY2lwaGVyLCBtZCwgKHVuc2lnbmVkKWl0ZXJhdGlvbnMsIHBhc3Ms
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NfbGVuLCBDQlNfZGF0YSgmc2Fs
dCksIENCU19sZW4oJnNhbHQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQlNf
ZGF0YSgmaXYpLCBDQlNfbGVuKCZpdiksIDAgLyogZGVjcnlwdCAqLyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL3BrY3M4L3BrY3MxMl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2NzOC9wa2Nz
MTJfdGVzdC5jYwppbmRleCBlNmMwZTU2YmNkMTI0NzI5NjRkZTY2Mjk2NTM0NGZlYzkzYzExMDAy
Li5kMzQ1MDA2ZWJmODU3OTA4MmE4ZTNhMzk3YjNhNGQ1NjRjZTExYWVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL3BrY3M4L3BrY3MxMl90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGtjczgvcGtj
czEyX3Rlc3QuY2MKQEAgLTY4Myw5ICs2ODMsMTIgQEAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga1dp
bmRvd3NbXSA9IHsKICAgICAweGZlLCAweDNhLCAweDY2LCAweDQ3LCAweDQwLCAweDQ5LCAweDAy
LCAweDAyLCAweDA3LCAweGQwLAogfTsKIAotLy8ga1BCRVMyIGlzIGEgUEtDUyMxMiBmaWxlIHVz
aW5nIFBCRVMyIGNyZWF0ZWQgd2l0aDoKKy8vIGtQQkVTMldpdGhTSEExIGlzIGEgUEtDUyMxMiBm
aWxlIHVzaW5nIFBCRVMyIGFuZCBITUFDLVNIQS0xIGNyZWF0ZWQgd2l0aDoKIC8vIG9wZW5zc2wg
cGtjczEyIC1leHBvcnQgLWlua2V5IGtleS5wZW0gLWluIGNlcnQucGVtIC1rZXlwYmUgQUVTLTEy
OC1DQkMgLWNlcnRwYmUgQUVTLTEyOC1DQkMKLXN0YXRpYyBjb25zdCB1aW50OF90IGtQQkVTMltd
ID0geworLy8KKy8vIFRoaXMgd2FzIGdlbmVyYXRlZCB3aXRoIGFuIG9sZGVyIE9wZW5TU0wsIHdo
aWNoIHVzZWQgaG1hY1dpdGhTSEExIGFzIHRoZSBQUkYuCisvLyAoVGhlcmUgaXMgY3VycmVudGx5
IG5vIHdheSB0byBzcGVjaWZ5IHRoZSBQUkYgaW4gdGhlIHBrY3MxMiBjb21tYW5kLikKK3N0YXRp
YyBjb25zdCB1aW50OF90IGtQQkVTMldpdGhTSEExW10gPSB7CiAgIDB4MzAsIDB4ODIsIDB4MGEs
IDB4MDMsIDB4MDIsIDB4MDEsIDB4MDMsIDB4MzAsIDB4ODIsIDB4MDksIDB4YzksIDB4MDYsCiAg
IDB4MDksIDB4MmEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsIDB4MDEsIDB4MDcsIDB4
MDEsIDB4YTAsIDB4ODIsCiAgIDB4MDksIDB4YmEsIDB4MDQsIDB4ODIsIDB4MDksIDB4YjYsIDB4
MzAsIDB4ODIsIDB4MDksIDB4YjIsIDB4MzAsIDB4ODIsCkBAIC05MDEsNiArOTA0LDMxOCBAQCBz
dGF0aWMgY29uc3QgdWludDhfdCBrUEJFUzJbXSA9IHsKICAgMHhjMywgMHg4YywgMHhjNiwgMHg2
OSwgMHhkYywgMHhjNiwgMHg3ZiwgMHg1NCwgMHhlZiwgMHgwNCwgMHgwOCwgMHhmOCwKICAgMHg5
YywgMHg4YiwgMHgxMiwgMHgyNywgMHhlOCwgMHhlYywgMHg2NSwgMHgwMiwgMHgwMiwgMHgwOCwg
MHgwMH07CiAKKy8vIGtQQkVTMldpdGhTSEEyNTYgaXMgYSBQS0NTIzEyIGZpbGUgdXNpbmcgUEJF
UzIgYW5kIEhNQUMtU0hBLTI1Ni4gSXQgd2FzCisvLyBnZW5lcmF0ZWQgaW4gdGhlIHNhbWUgd2F5
IGFzIHxrUEJFUzJXaXRoU0hBMXwsIGJ1dCB1c2luZyBPcGVuU1NMIDEuMS4xYiwKKy8vIHdoaWNo
IHVzZXMgaG1hY1dpdGhTSEEyNTYgYXMgdGhlIFBSRi4KK3N0YXRpYyBjb25zdCB1aW50OF90IGtQ
QkVTMldpdGhTSEEyNTZbXSA9IHsKKyAgICAweDMwLCAweDgyLCAweDBhLCAweDdmLCAweDAyLCAw
eDAxLCAweDAzLCAweDMwLCAweDgyLCAweDBhLCAweDQ1LCAweDA2LAorICAgIDB4MDksIDB4MmEs
IDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsIDB4MDEsIDB4MDcsIDB4MDEsIDB4YTAsIDB4
ODIsCisgICAgMHgwYSwgMHgzNiwgMHgwNCwgMHg4MiwgMHgwYSwgMHgzMiwgMHgzMCwgMHg4Miwg
MHgwYSwgMHgyZSwgMHgzMCwgMHg4MiwKKyAgICAweDA0LCAweGEyLCAweDA2LCAweDA5LCAweDJh
LCAweDg2LCAweDQ4LCAweDg2LCAweGY3LCAweDBkLCAweDAxLCAweDA3LAorICAgIDB4MDYsIDB4
YTAsIDB4ODIsIDB4MDQsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDQsIDB4OGYsIDB4MDIsIDB4MDEs
IDB4MDAsCisgICAgMHgzMCwgMHg4MiwgMHgwNCwgMHg4OCwgMHgwNiwgMHgwOSwgMHgyYSwgMHg4
NiwgMHg0OCwgMHg4NiwgMHhmNywgMHgwZCwKKyAgICAweDAxLCAweDA3LCAweDAxLCAweDMwLCAw
eDU3LCAweDA2LCAweDA5LCAweDJhLCAweDg2LCAweDQ4LCAweDg2LCAweGY3LAorICAgIDB4MGQs
IDB4MDEsIDB4MDUsIDB4MGQsIDB4MzAsIDB4NGEsIDB4MzAsIDB4MjksIDB4MDYsIDB4MDksIDB4
MmEsIDB4ODYsCisgICAgMHg0OCwgMHg4NiwgMHhmNywgMHgwZCwgMHgwMSwgMHgwNSwgMHgwYywg
MHgzMCwgMHgxYywgMHgwNCwgMHgwOCwgMHhiMiwKKyAgICAweDVlLCAweDBkLCAweDZkLCAweGRh
LCAweGFhLCAweDJmLCAweGJlLCAweDAyLCAweDAyLCAweDA4LCAweDAwLCAweDMwLAorICAgIDB4
MGMsIDB4MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsIDB4MDIs
IDB4MDksIDB4MDUsCisgICAgMHgwMCwgMHgzMCwgMHgxZCwgMHgwNiwgMHgwOSwgMHg2MCwgMHg4
NiwgMHg0OCwgMHgwMSwgMHg2NSwgMHgwMywgMHgwNCwKKyAgICAweDAxLCAweDAyLCAweDA0LCAw
eDEwLCAweDNjLCAweDA0LCAweDc4LCAweDM3LCAweGIzLCAweGIyLCAweDI0LCAweGQzLAorICAg
IDB4YjUsIDB4NDYsIDB4MjAsIDB4YjcsIDB4ZDIsIDB4ZGQsIDB4NWQsIDB4MmUsIDB4ODAsIDB4
ODIsIDB4MDQsIDB4MjAsCisgICAgMHgzYSwgMHgwMSwgMHhlNCwgMHhmNCwgMHg1NywgMHhkMywg
MHhlZCwgMHgxNCwgMHhkMCwgMHg0MiwgMHgzZiwgMHhkMywKKyAgICAweDYxLCAweGVlLCAweDg0
LCAweGNkLCAweDJiLCAweDA4LCAweDYwLCAweDMwLCAweGJkLCAweDcyLCAweGE3LCAweGQ1LAor
ICAgIDB4YTQsIDB4ZjIsIDB4MTMsIDB4ZTksIDB4ZjAsIDB4NDQsIDB4NjYsIDB4MjYsIDB4MzQs
IDB4ZTcsIDB4MmMsIDB4NWQsCisgICAgMHhjOSwgMHhiMCwgMHg0YiwgMHhhYiwgMHg0NywgMHgx
NiwgMHhhYiwgMHhlNiwgMHgwNiwgMHhhNiwgMHgzYiwgMHg3OSwKKyAgICAweDQxLCAweDBjLCAw
eDc5LCAweGQ1LCAweDliLCAweDAyLCAweDY3LCAweGQ4LCAweDdmLCAweGM4LCAweDM2LCAweDM3
LAorICAgIDB4MjcsIDB4YjQsIDB4NDQsIDB4YTIsIDB4NWUsIDB4MGQsIDB4MzgsIDB4YjgsIDB4
NDEsIDB4OGUsIDB4M2EsIDB4ZjEsCisgICAgMHhlOSwgMHhhYiwgMHhlMCwgMHgxOSwgMHhkMCwg
MHhlMSwgMHhjNywgMHg5MiwgMHhkNCwgMHg1YiwgMHgzNSwgMHhmMywKKyAgICAweDc5LCAweDQ4
LCAweDNiLCAweGZjLCAweDI1LCAweGZjLCAweGM2LCAweDlmLCAweGVkLCAweDM1LCAweDI4LCAw
eDViLAorICAgIDB4ZmEsIDB4ZWUsIDB4NTAsIDB4NDIsIDB4YTMsIDB4YzMsIDB4OTYsIDB4ZWUs
IDB4ZTAsIDB4ODcsIDB4MzMsIDB4NWUsCisgICAgMHhhNywgMHhjNywgMHgwYSwgMHhmZSwgMHhk
YSwgMHhlNSwgMHhkNSwgMHgyOSwgMHg2YSwgMHg1NywgMHgwOCwgMHg3ZiwKKyAgICAweDU2LCAw
eDM3LCAweDJhLCAweDFhLCAweGEwLCAweDZkLCAweGU5LCAweDg0LCAweGFjLCAweGVkLCAweDBl
LCAweGQ4LAorICAgIDB4YzAsIDB4ZDgsIDB4YzYsIDB4NzcsIDB4YjEsIDB4ZGQsIDB4MWIsIDB4
YTEsIDB4ZWQsIDB4YTcsIDB4NzksIDB4MTMsCisgICAgMHgyZSwgMHg1YiwgMHg5YiwgMHg4MCwg
MHg0NCwgMHg5ZSwgMHhmZiwgMHgwYSwgMHg2ZSwgMHg5OSwgMHgzMywgMHhjZiwKKyAgICAweGYx
LCAweDQ3LCAweDI0LCAweGFhLCAweDQ4LCAweGU3LCAweDJjLCAweGIzLCAweGU2LCAweGRjLCAw
eGQ0LCAweDFlLAorICAgIDB4ZTQsIDB4YjgsIDB4NWUsIDB4NzIsIDB4YWYsIDB4M2YsIDB4ZDMs
IDB4MjUsIDB4NGEsIDB4YWMsIDB4N2IsIDB4MzUsCisgICAgMHhiMSwgMHg4MiwgMHhhNSwgMHhk
OSwgMHhmOCwgMHgwMSwgMHgxMiwgMHg5MiwgMHg0OSwgMHg0YywgMHgxNywgMHgwNywKKyAgICAw
eGIyLCAweGIxLCAweDNlLCAweGNiLCAweGZkLCAweGQxLCAweDE3LCAweGI1LCAweDY1LCAweDNk
LCAweDBjLCAweDJiLAorICAgIDB4MmIsIDB4YzAsIDB4MzcsIDB4OWMsIDB4ZTcsIDB4MDQsIDB4
OWIsIDB4NzEsIDB4NWEsIDB4MTAsIDB4YzAsIDB4YmEsCisgICAgMHgzYiwgMHgzMSwgMHhkZSwg
MHgwZCwgMHg2NiwgMHg2YywgMHgwZCwgMHg0YywgMHg5OSwgMHgyMiwgMHg3NiwgMHgyYSwKKyAg
ICAweDc1LCAweDdmLCAweDg0LCAweGQxLCAweDA3LCAweDFmLCAweDU3LCAweGYwLCAweDBiLCAw
eDcxLCAweDQxLCAweGVhLAorICAgIDB4MzgsIDB4ZTIsIDB4ZTcsIDB4YmUsIDB4MTEsIDB4M2Ms
IDB4OTIsIDB4OGMsIDB4N2IsIDB4MGUsIDB4YjQsIDB4N2UsCisgICAgMHg3NiwgMHhjNCwgMHg4
MCwgMHg0MSwgMHhhZSwgMHg0YywgMHhlMiwgMHgzOCwgMHgzNiwgMHhjYiwgMHg4MiwgMHgzOSwK
KyAgICAweDM4LCAweDNhLCAweDU1LCAweGI0LCAweGUyLCAweDM1LCAweDk0LCAweGMzLCAweGFl
LCAweDNkLCAweGQxLCAweDAzLAorICAgIDB4ZjMsIDB4ZGIsIDB4MDAsIDB4ZDksIDB4ZmEsIDB4
OTYsIDB4NjIsIDB4MjUsIDB4OTcsIDB4NTEsIDB4YzUsIDB4Y2YsCisgICAgMHg4NCwgMHhlOCwg
MHhmNywgMHg4YiwgMHgyZiwgMHgzMSwgMHhlYiwgMHhhNywgMHgwYSwgMHgyMiwgMHg2ZiwgMHhh
ZCwKKyAgICAweGY1LCAweDI4LCAweDI1LCAweGFhLCAweDk5LCAweDBlLCAweGIxLCAweDgzLCAw
eDlmLCAweDcwLCAweDc5LCAweGFmLAorICAgIDB4MTAsIDB4N2MsIDB4MmMsIDB4NTUsIDB4ZmUs
IDB4MjQsIDB4N2QsIDB4ZWEsIDB4ODUsIDB4NDgsIDB4OGUsIDB4N2EsCisgICAgMHhmNywgMHg0
NywgMHhkOCwgMHgwYywgMHg2NCwgMHg5NywgMHhlMCwgMHg4ZiwgMHg2MiwgMHg1ZSwgMHhkMCwg
MHg0ZiwKKyAgICAweDIxLCAweGE0LCAweDQ2LCAweDhlLCAweDI4LCAweGIwLCAweGIxLCAweDkw
LCAweGVjLCAweDAxLCAweDdkLCAweGM0LAorICAgIDB4YzgsIDB4NmYsIDB4ZjIsIDB4ZTIsIDB4
YjcsIDB4YzQsIDB4MzUsIDB4NmMsIDB4YTksIDB4ZjYsIDB4YWYsIDB4YzIsCisgICAgMHhiNiwg
MHhhOSwgMHgwMiwgMHg2ZCwgMHhiMiwgMHg4YiwgMHg0MywgMHg2YiwgMHg0MSwgMHg4MCwgMHg5
ZCwgMHg1ZSwKKyAgICAweDUxLCAweGE3LCAweDMxLCAweDAwLCAweDFiLCAweGI1LCAweDI0LCAw
eGVkLCAweDQwLCAweDk5LCAweDMzLCAweGRlLAorICAgIDB4ODcsIDB4ZDEsIDB4NGIsIDB4NzYs
IDB4NzgsIDB4NTcsIDB4NGMsIDB4MzMsIDB4NzksIDB4ODksIDB4ZDMsIDB4ZmEsCisgICAgMHg3
MCwgMHgwZiwgMHgyZiwgMHgzMSwgMHg0MiwgMHg4YywgMHhjZSwgMHhlOSwgMHhjMCwgMHg1OCwg
MHhlMSwgMHgzMCwKKyAgICAweDMwLCAweGYxLCAweGU5LCAweGFiLCAweGM4LCAweDYwLCAweDdj
LCAweGUwLCAweDZhLCAweDk5LCAweGU3LCAweGQzLAorICAgIDB4MjEsIDB4MWEsIDB4Y2MsIDB4
OTgsIDB4NjAsIDB4NDQsIDB4YWEsIDB4ZmYsIDB4ZWUsIDB4ZWMsIDB4MzQsIDB4MjAsCisgICAg
MHgxOSwgMHhiYSwgMHgwMywgMHgzYiwgMHg2NywgMHg2ZiwgMHhlZSwgMHhkNSwgMHhiMywgMHhh
NywgMHgyMSwgMHg1NywKKyAgICAweGQ2LCAweDQ5LCAweGFmLCAweDkxLCAweDhmLCAweGVjLCAw
eDcwLCAweGQwLCAweDU5LCAweDFhLCAweDc5LCAweGUyLAorICAgIDB4ZDIsIDB4OTQsIDB4ODIs
IDB4NTMsIDB4ZmIsIDB4ZWEsIDB4ZDYsIDB4ODMsIDB4NDksIDB4NGEsIDB4NmYsIDB4ZDYsCisg
ICAgMHhlZCwgMHgxNSwgMHhjMywgMHg3MSwgMHgwOCwgMHgzYSwgMHhiZiwgMHhkZSwgMHhhOCwg
MHgyZCwgMHg1NCwgMHhhZiwKKyAgICAweDRhLCAweDQwLCAweGJjLCAweGU1LCAweDUzLCAweGFl
LCAweDRiLCAweDNkLCAweDcwLCAweGZlLCAweDFjLCAweDAzLAorICAgIDB4MWUsIDB4YjIsIDB4
OWQsIDB4MWMsIDB4MzUsIDB4YmQsIDB4OWEsIDB4ZjgsIDB4YzUsIDB4ZDEsIDB4YTUsIDB4NGEs
CisgICAgMHg2MywgMHgxOCwgMHgwMiwgMHhkNCwgMHhmZiwgMHhkZCwgMHhjZCwgMHhiMywgMHg2
YywgMHgzOCwgMHhkMSwgMHg5YSwKKyAgICAweGFkLCAweDE2LCAweDcxLCAweGYxLCAweGM2LCAw
eDFkLCAweDhmLCAweDZjLCAweDMwLCAweGZhLCAweDJlLCAweDEzLAorICAgIDB4OWQsIDB4MGIs
IDB4NGUsIDB4ZTYsIDB4ZDMsIDB4MzcsIDB4ODAsIDB4NTgsIDB4MjYsIDB4MGQsIDB4MDQsIDB4
OTcsCisgICAgMHhlNiwgMHg4ZCwgMHhjYywgMHg2MywgMHgzYywgMHgzOSwgMHgzOCwgMHgyZiwg
MHg3YSwgMHg3MywgMHgwMSwgMHgwZiwKKyAgICAweDIyLCAweDY5LCAweDQ3LCAweDU0LCAweDll
LCAweDQyLCAweGM4LCAweDU5LCAweGI1LCAweDM1LCAweDQzLCAweGI0LAorICAgIDB4MzcsIDB4
NDUsIDB4NTksIDB4ODUsIDB4ZjIsIDB4NDcsIDB4YzMsIDB4ZmIsIDB4MjMsIDB4MTMsIDB4MTgs
IDB4ZWYsCisgICAgMHhkOCwgMHgxMSwgMHg3MCwgMHg3NCwgMHhjZSwgMHg5NywgMHhjZiwgMHhi
ZiwgMHhkNSwgMHgyZCwgMHg5OSwgMHgwMCwKKyAgICAweDg2LCAweDU2LCAweDliLCAweGRmLCAw
eDA1LCAweDY3LCAweGY0LCAweDQ5LCAweDFlLCAweGI1LCAweDEyLCAweDIzLAorICAgIDB4NDYs
IDB4MDQsIDB4ODMsIDB4ZjMsIDB4YzEsIDB4NTksIDB4YzcsIDB4N2IsIDB4YzMsIDB4MjIsIDB4
MGMsIDB4MmMsCisgICAgMHgxYiwgMHg3ZCwgMHgxOCwgMHhiNiwgMHhkMiwgMHhmYSwgMHgyOCwg
MHgzNiwgMHg4YiwgMHg1MSwgMHg2ZCwgMHg1OCwKKyAgICAweGY0LCAweGQ2LCAweGRmLCAweDM4
LCAweDk0LCAweGNmLCAweDZjLCAweDUwLCAweDRmLCAweDBhLCAweGYzLCAweGMzLAorICAgIDB4
OTEsIDB4MzksIDB4YTUsIDB4YzksIDB4YmMsIDB4YTgsIDB4ZWIsIDB4MjQsIDB4MWEsIDB4ZGQs
IDB4NTgsIDB4OWUsCisgICAgMHhkYywgMHhiMiwgMHhlZSwgMHhlMSwgMHhhNSwgMHgxNiwgMHg2
OCwgMHhjMiwgMHg2MywgMHg4YywgMHhjOSwgMHhhNywKKyAgICAweGJlLCAweDFlLCAweDMwLCAw
eDg0LCAweGE2LCAweDI4LCAweGViLCAweDUwLCAweGQ5LCAweGRkLCAweDE1LCAweGVhLAorICAg
IDB4NjQsIDB4MzQsIDB4ZjAsIDB4N2EsIDB4NTYsIDB4NmEsIDB4ZGQsIDB4YjIsIDB4NzAsIDB4
MmUsIDB4ZWEsIDB4NzIsCisgICAgMHg2NiwgMHgzOSwgMHg1NCwgMHhhYSwgMHgzNiwgMHhmYSwg
MHg2OCwgMHhhYSwgMHgwNiwgMHg1ZCwgMHg0OCwgMHhjYSwKKyAgICAweGFkLCAweDRlLCAweGZl
LCAweDRiLCAweDQwLCAweGRmLCAweDQzLCAweDQ2LCAweGQ2LCAweGRmLCAweDNmLCAweGExLAor
ICAgIDB4OWUsIDB4NGMsIDB4ZGMsIDB4ZmUsIDB4NGMsIDB4MDEsIDB4MDksIDB4N2YsIDB4ZDgs
IDB4MDAsIDB4ODQsIDB4OTQsCisgICAgMHgyOSwgMHgxNywgMHg2NywgMHgwMCwgMHhkMywgMHg0
NiwgMHhkMiwgMHhiYSwgMHhiOSwgMHg2MiwgMHg2NiwgMHg1MCwKKyAgICAweGNkLCAweDdjLCAw
eDdhLCAweDcwLCAweDQ2LCAweDRhLCAweDMyLCAweDYyLCAweGMyLCAweDZlLCAweGU3LCAweDVl
LAorICAgIDB4MDQsIDB4MjQsIDB4YzUsIDB4ZmQsIDB4OWQsIDB4ZjQsIDB4OWIsIDB4YzgsIDB4
ZTksIDB4ZWIsIDB4NzMsIDB4ZjksCisgICAgMHhhYSwgMHhhNCwgMHhjYywgMHg2MywgMHhhMywg
MHhkYywgMHg2MywgMHhlMCwgMHgzMCwgMHhlYywgMHg3MCwgMHg0MCwKKyAgICAweDllLCAweDdj
LCAweDYzLCAweDc5LCAweGFlLCAweGJhLCAweGZkLCAweDk1LCAweDRjLCAweDQ2LCAweGYxLCAw
eGM0LAorICAgIDB4YWUsIDB4YjksIDB4MDMsIDB4ZTgsIDB4ZDQsIDB4ZTQsIDB4OTAsIDB4Mjks
IDB4M2EsIDB4YmIsIDB4ZGIsIDB4ZDgsCisgICAgMHg4ZiwgMHg0MCwgMHhjMywgMHgzOSwgMHg5
YSwgMHg0YywgMHg3MCwgMHg1NCwgMHg5ZiwgMHhjOSwgMHgwYSwgMHgwNCwKKyAgICAweDIzLCAw
eDk4LCAweDZiLCAweDljLCAweGMyLCAweGUwLCAweGFkLCAweGFlLCAweDMwLCAweGVmLCAweGZm
LCAweDQ0LAorICAgIDB4NWIsIDB4NzMsIDB4MmUsIDB4OGYsIDB4ZDcsIDB4MmIsIDB4MTIsIDB4
ZjAsIDB4MzEsIDB4MDgsIDB4ZmIsIDB4YjksCisgICAgMHg1NSwgMHhmMCwgMHhjMywgMHg2Miwg
MHhiYiwgMHg1ZiwgMHg2ZCwgMHhhNywgMHgxZCwgMHg2MSwgMHhjMiwgMHgyNiwKKyAgICAweGNl
LCAweGFiLCAweGI2LCAweDg4LCAweDI1LCAweGNlLCAweDhiLCAweDAyLCAweGI2LCAweGM1LCAw
eGEyLCAweGNjLAorICAgIDB4ZDQsIDB4YTMsIDB4NzQsIDB4NWIsIDB4NzYsIDB4ZjcsIDB4YjQs
IDB4ZDksIDB4OWMsIDB4OTMsIDB4ODYsIDB4N2UsCisgICAgMHhhYywgMHg4MiwgMHhlMCwgMHgw
ZCwgMHg4MywgMHhlMSwgMHhjOSwgMHg3ZiwgMHgyYSwgMHg4NiwgMHhiYiwgMHhhYSwKKyAgICAw
eGZlLCAweGRjLCAweDE3LCAweDljLCAweDI4LCAweDc3LCAweGUxLCAweDU4LCAweDE4LCAweDE1
LCAweDA5LCAweGUzLAorICAgIDB4ZGEsIDB4ZGIsIDB4OGQsIDB4ZWUsIDB4NTUsIDB4ZjYsIDB4
ZGEsIDB4YWQsIDB4ZTUsIDB4NTIsIDB4ODQsIDB4YjQsCisgICAgMHhmMCwgMHgyNCwgMHhjZSwg
MHhhMSwgMHg1NCwgMHg0YiwgMHg5ZiwgMHhlYSwgMHg1ZCwgMHg0ZCwgMHg3ZiwgMHg1MywKKyAg
ICAweDBiLCAweDc5LCAweDFkLCAweDg3LCAweGNiLCAweDBiLCAweGE4LCAweGVmLCAweDAzLCAw
eGZhLCAweDU4LCAweDU3LAorICAgIDB4ZjYsIDB4MDIsIDB4NzAsIDB4ZGIsIDB4N2EsIDB4NjQs
IDB4ODksIDB4MWYsIDB4YzcsIDB4Y2EsIDB4ODcsIDB4MDIsCisgICAgMHgyNywgMHgzMywgMHhj
NSwgMHg1YiwgMHgyYSwgMHg1MCwgMHhjNSwgMHhiNSwgMHg3YiwgMHgyZCwgMHgzZCwgMHhhOSwK
KyAgICAweGJjLCAweDIxLCAweDdiLCAweGYyLCAweGJlLCAweDljLCAweDU2LCAweDM1LCAweDgz
LCAweGJhLCAweGNlLCAweDM0LAorICAgIDB4OGQsIDB4ZWMsIDB4N2IsIDB4YWEsIDB4ZTQsIDB4
Y2IsIDB4ZDEsIDB4NGYsIDB4NGEsIDB4MzEsIDB4MDAsIDB4ZDEsCisgICAgMHhiOCwgMHgzMCwg
MHgzOCwgMHhhZiwgMHhlOCwgMHhlMywgMHhkNywgMHhjMiwgMHg4YywgMHhlMywgMHhiNCwgMHgy
MywKKyAgICAweGIzLCAweDI3LCAweDA3LCAweGM2LCAweDg4LCAweGVjLCAweDU4LCAweGU5LCAw
eDU5LCAweGZiLCAweGE5LCAweDExLAorICAgIDB4YTIsIDB4YzgsIDB4NzcsIDB4MjIsIDB4NmEs
IDB4NWIsIDB4ODYsIDB4ZGUsIDB4ZGMsIDB4ZWQsIDB4NzYsIDB4NmUsCisgICAgMHg3MywgMHg3
OSwgMHg1YywgMHhiNCwgMHhjZiwgMHgxOSwgMHg3NiwgMHg1YywgMHg2YiwgMHgxYywgMHg0Yiwg
MHgwMywKKyAgICAweGNiLCAweDM1LCAweDA4LCAweDk0LCAweDM3LCAweDAxLCAweDk4LCAweDUy
LCAweGQ4LCAweDMxLCAweDQyLCAweDNkLAorICAgIDB4N2YsIDB4YTEsIDB4MTEsIDB4MDYsIDB4
MDcsIDB4ODgsIDB4YjgsIDB4MzEsIDB4MzUsIDB4YjIsIDB4NDksIDB4MjgsCisgICAgMHhjNiwg
MHgyYywgMHg0NCwgMHg0MywgMHhiNiwgMHhiYywgMHg1OCwgMHg3NiwgMHg2YywgMHg0ZiwgMHhj
OCwgMHhiNiwKKyAgICAweDMwLCAweDgyLCAweDA1LCAweDg0LCAweDA2LCAweDA5LCAweDJhLCAw
eDg2LCAweDQ4LCAweDg2LCAweGY3LCAweDBkLAorICAgIDB4MDEsIDB4MDcsIDB4MDEsIDB4YTAs
IDB4ODIsIDB4MDUsIDB4NzUsIDB4MDQsIDB4ODIsIDB4MDUsIDB4NzEsIDB4MzAsCisgICAgMHg4
MiwgMHgwNSwgMHg2ZCwgMHgzMCwgMHg4MiwgMHgwNSwgMHg2OSwgMHgwNiwgMHgwYiwgMHgyYSwg
MHg4NiwgMHg0OCwKKyAgICAweDg2LCAweGY3LCAweDBkLCAweDAxLCAweDBjLCAweDBhLCAweDAx
LCAweDAyLCAweGEwLCAweDgyLCAweDA1LCAweDMxLAorICAgIDB4MzAsIDB4ODIsIDB4MDUsIDB4
MmQsIDB4MzAsIDB4NTcsIDB4MDYsIDB4MDksIDB4MmEsIDB4ODYsIDB4NDgsIDB4ODYsCisgICAg
MHhmNywgMHgwZCwgMHgwMSwgMHgwNSwgMHgwZCwgMHgzMCwgMHg0YSwgMHgzMCwgMHgyOSwgMHgw
NiwgMHgwOSwgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweDg2LCAweGY3LCAweDBkLCAweDAxLCAw
eDA1LCAweDBjLCAweDMwLCAweDFjLCAweDA0LCAweDA4LAorICAgIDB4NzksIDB4MzEsIDB4Zjks
IDB4ZTIsIDB4NDIsIDB4MzMsIDB4ZjEsIDB4YWEsIDB4MDIsIDB4MDIsIDB4MDgsIDB4MDAsCisg
ICAgMHgzMCwgMHgwYywgMHgwNiwgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHg4NiwgMHhmNywg
MHgwZCwgMHgwMiwgMHgwOSwKKyAgICAweDA1LCAweDAwLCAweDMwLCAweDFkLCAweDA2LCAweDA5
LCAweDYwLCAweDg2LCAweDQ4LCAweDAxLCAweDY1LCAweDAzLAorICAgIDB4MDQsIDB4MDEsIDB4
MDIsIDB4MDQsIDB4MTAsIDB4YzksIDB4ZGEsIDB4NWYsIDB4OTYsIDB4YzgsIDB4MmMsIDB4ODUs
CisgICAgMHg1ZCwgMHhhMCwgMHgzMCwgMHg4MiwgMHgxNiwgMHg2YiwgMHhmNCwgMHhmZCwgMHg5
MSwgMHgwNCwgMHg4MiwgMHgwNCwKKyAgICAweGQwLCAweGMzLCAweDg5LCAweDZhLCAweDU2LCAw
eDZhLCAweDg0LCAweDU4LCAweDc2LCAweGQ3LCAweDIzLCAweGQ1LAorICAgIDB4YTgsIDB4YzEs
IDB4MmYsIDB4NDMsIDB4MzgsIDB4OTksIDB4ZjgsIDB4NjQsIDB4OTcsIDB4ZTcsIDB4ZTgsIDB4
ZDIsCisgICAgMHhjZiwgMHgzNiwgMHg5YiwgMHg3ZSwgMHgwNCwgMHhlNSwgMHg4NywgMHg4MCwg
MHhmZiwgMHhkNSwgMHg1OCwgMHg1MCwKKyAgICAweDVhLCAweGIzLCAweGMwLCAweDE1LCAweGM5
LCAweGQ1LCAweDYxLCAweGQ2LCAweDNiLCAweDdmLCAweDJmLCAweDNiLAorICAgIDB4OTgsIDB4
NTAsIDB4NTUsIDB4MDksIDB4Y2YsIDB4YzMsIDB4ZGQsIDB4YmQsIDB4OGIsIDB4Y2QsIDB4ZGYs
IDB4MjAsCisgICAgMHg5MCwgMHhlMSwgMHhkMiwgMHhjZCwgMHgyMiwgMHg5ZiwgMHhhNywgMHgz
ZSwgMHgxMCwgMHhkMywgMHhiNywgMHgyNiwKKyAgICAweDU0LCAweDY1LCAweGZiLCAweDE4LCAw
eDEyLCAweDU4LCAweDgxLCAweGQ4LCAweGU2LCAweDk3LCAweGRmLCAweDMyLAorICAgIDB4ZDEs
IDB4MDQsIDB4NGEsIDB4ZGIsIDB4MDUsIDB4YjQsIDB4MTMsIDB4YTksIDB4ODYsIDB4NjIsIDB4
MjAsIDB4OTQsCisgICAgMHhkYywgMHhhZiwgMHg5OCwgMHg1MywgMHgxNiwgMHhjNywgMHhiMiwg
MHg5YywgMHg0NCwgMHgzMCwgMHhjNSwgMHhhYSwKKyAgICAweDE0LCAweDdhLCAweDJkLCAweDkz
LCAweDIwLCAweGZmLCAweDZkLCAweDhkLCAweDQ3LCAweDY5LCAweDZmLCAweDM5LAorICAgIDB4
ZDQsIDB4MTUsIDB4ODEsIDB4NmIsIDB4ODUsIDB4MzYsIDB4ZjksIDB4NTksIDB4YTUsIDB4OGUs
IDB4NWMsIDB4NDAsCisgICAgMHg2MiwgMHhmOCwgMHhmZSwgMHhmNywgMHhlNiwgMHg3NSwgMHhm
NywgMHgzNywgMHhmZSwgMHg1ZCwgMHg1MywgMHhhNiwKKyAgICAweDY2LCAweGU1LCAweDBlLCAw
eDRhLCAweDIzLCAweGE5LCAweDgwLCAweDRiLCAweDA0LCAweDExLCAweDBlLCAweDUwLAorICAg
IDB4ZWYsIDB4OWUsIDB4ODgsIDB4ZWQsIDB4MzksIDB4ZDEsIDB4NWYsIDB4ZmEsIDB4OTAsIDB4
MjIsIDB4YTMsIDB4NzAsCisgICAgMHgwYywgMHg4YiwgMHgyMCwgMHg5YywgMHg4MCwgMHgyYywg
MHg5MCwgMHgyZSwgMHgyYywgMHhlMCwgMHhlNiwgMHgyNiwKKyAgICAweDg0LCAweGQ4LCAweDZh
LCAweGU0LCAweDIwLCAweDFlLCAweGJjLCAweDk2LCAweGJhLCAweDA3LCAweDlkLCAweDFkLAor
ICAgIDB4M2QsIDB4NmMsIDB4ZDEsIDB4MDQsIDB4YzgsIDB4ZDEsIDB4NzksIDB4MmMsIDB4OTYs
IDB4MGYsIDB4ZTgsIDB4YTUsCisgICAgMHg2YiwgMHgwMywgMHgwNiwgMHg1MSwgMHhmZCwgMHg3
YiwgMHg0NCwgMHhhYiwgMHg2NiwgMHg0YSwgMHg0MSwgMHgwNCwKKyAgICAweDAyLCAweDY0LCAw
eDVhLCAweDQwLCAweDdkLCAweDZiLCAweDFhLCAweGJjLCAweDZlLCAweGVlLCAweDY4LCAweDcw
LAorICAgIDB4M2MsIDB4MTAsIDB4MzIsIDB4NzMsIDB4NzYsIDB4MjgsIDB4NDgsIDB4ZDksIDB4
YTQsIDB4ZTEsIDB4MjEsIDB4ZjYsCisgICAgMHhlNCwgMHgwMywgMHg5NCwgMHgxMCwgMHhlZiwg
MHg4MiwgMHhlMCwgMHg3NiwgMHg3YywgMHg5OSwgMHgzMCwgMHgyNiwKKyAgICAweDlhLCAweDk1
LCAweGEyLCAweGM1LCAweGI5LCAweGE3LCAweGFlLCAweDlmLCAweDg1LCAweGNiLCAweGYxLCAw
eDgyLAorICAgIDB4Y2QsIDB4M2QsIDB4MDYsIDB4ZWMsIDB4YWYsIDB4NzIsIDB4YzEsIDB4MzMs
IDB4MDksIDB4ZjksIDB4NTEsIDB4OTQsCisgICAgMHg0MiwgMHhmMCwgMHg2OSwgMHhiOSwgMHhj
NiwgMHgwNCwgMHhlNiwgMHg3YSwgMHhmYiwgMHgxYywgMHhlZSwgMHhhYywKKyAgICAweDk1LCAw
eDliLCAweDg4LCAweDY3LCAweDE5LCAweGE4LCAweDc5LCAweDY3LCAweGM3LCAweDFiLCAweGNj
LCAweDcyLAorICAgIDB4ZTksIDB4MTgsIDB4ZDIsIDB4OTYsIDB4Y2YsIDB4M2QsIDB4ZjgsIDB4
OTgsIDB4MjAsIDB4NTMsIDB4YzksIDB4MzcsCisgICAgMHgwZiwgMHg5MiwgMHhiMSwgMHhiYywg
MHhhZiwgMHhjNiwgMHhlYywgMHg0ZiwgMHgyNSwgMHhkYSwgMHg5NSwgMHgxNCwKKyAgICAweGVk
LCAweGI4LCAweDNlLCAweGFmLCAweGQxLCAweDUyLCAweDRjLCAweDI4LCAweDNiLCAweDg0LCAw
eDhjLCAweDQ5LAorICAgIDB4MzQsIDB4NjMsIDB4MmIsIDB4ZDQsIDB4ZjQsIDB4NzgsIDB4YjEs
IDB4OGYsIDB4YjAsIDB4MzUsIDB4N2IsIDB4ZDUsCisgICAgMHg0NCwgMHhjMywgMHg5OCwgMHg5
ZSwgMHg4NSwgMHg4NiwgMHhhZSwgMHhlZSwgMHgwNSwgMHhkZCwgMHhhMSwgMHg2ZiwKKyAgICAw
eDUzLCAweGU0LCAweGRjLCAweDZmLCAweGY1LCAweDdjLCAweDdlLCAweGQ4LCAweDdhLCAweDli
LCAweDE4LCAweDQzLAorICAgIDB4M2YsIDB4N2IsIDB4MmEsIDB4ZjMsIDB4YjUsIDB4MzksIDB4
NWEsIDB4MWMsIDB4NzIsIDB4M2IsIDB4ZGQsIDB4MDEsCisgICAgMHg3OSwgMHg5NywgMHhmZiwg
MHhkYiwgMHg1OCwgMHhlNSwgMHg0ZCwgMHg2MSwgMHhkZSwgMHhjZiwgMHgyZiwgMHgxMywKKyAg
ICAweDdiLCAweGFmLCAweDZiLCAweGE0LCAweGYyLCAweDU5LCAweDBhLCAweDEzLCAweDU2LCAw
eDFjLCAweDA1LCAweDAwLAorICAgIDB4MGYsIDB4MTgsIDB4NjYsIDB4MzMsIDB4NzIsIDB4YmQs
IDB4NjIsIDB4OGQsIDB4MTEsIDB4ZjcsIDB4MjAsIDB4NTIsCisgICAgMHgyOSwgMHg0MiwgMHg4
MywgMHgzMywgMHhjMSwgMHgwZiwgMHgwNywgMHg4MCwgMHhkNCwgMHg1OCwgMHhlMiwgMHgyMiwK
KyAgICAweDk0LCAweGFkLCAweGVjLCAweGJmLCAweDAxLCAweGI2LCAweDcxLCAweDdkLCAweDky
LCAweGIxLCAweDc1LCAweDE0LAorICAgIDB4ZjIsIDB4ZmIsIDB4NzcsIDB4MzksIDB4MGQsIDB4
ODIsIDB4YjUsIDB4NTEsIDB4YmEsIDB4MWYsIDB4NjUsIDB4NTcsCisgICAgMHhhYSwgMHg2OCwg
MHg2YSwgMHgxNywgMHg0MSwgMHgxMywgMHgzOCwgMHhjMCwgMHhlNSwgMHhlYiwgMHhjYywgMHg4
YywKKyAgICAweGRkLCAweGI3LCAweDAwLCAweDRlLCAweDAxLCAweDA2LCAweDI1LCAweGFiLCAw
eDg3LCAweDFjLCAweDMwLCAweDY5LAorICAgIDB4YzQsIDB4MTUsIDB4MGUsIDB4ZjgsIDB4ZjAs
IDB4NzIsIDB4YjYsIDB4MWQsIDB4OTIsIDB4N2UsIDB4ZTIsIDB4ZTYsCisgICAgMHg3NywgMHhl
ZCwgMHhiOCwgMHgzZiwgMHhjZiwgMHg1NywgMHg4ZCwgMHg5MCwgMHhlNCwgMHhhMywgMHg3OSwg
MHg0OSwKKyAgICAweDlhLCAweGUwLCAweDFmLCAweDRhLCAweGRlLCAweGU5LCAweDQ0LCAweDhk
LCAweGQ1LCAweDIzLCAweDNiLCAweDA3LAorICAgIDB4NjMsIDB4OTIsIDB4OWYsIDB4ZGUsIDB4
YmEsIDB4N2UsIDB4NjcsIDB4YjAsIDB4ODIsIDB4NDEsIDB4MmEsIDB4Y2QsCisgICAgMHhlMSwg
MHhiYiwgMHg0MCwgMHhmMSwgMHg4YSwgMHg2NiwgMHg3MCwgMHg3NCwgMHhmMSwgMHg5OSwgMHg3
ZCwgMHhiMCwKKyAgICAweDBiLCAweDZhLCAweGEyLCAweDVlLCAweDdlLCAweGMwLCAweDhjLCAw
eGIyLCAweDcxLCAweGRhLCAweGNmLCAweGJjLAorICAgIDB4ZmIsIDB4OWMsIDB4MDMsIDB4MGUs
IDB4MzMsIDB4NWUsIDB4MTMsIDB4YjIsIDB4MzQsIDB4MzgsIDB4YzEsIDB4ODMsCisgICAgMHg5
NSwgMHhkZiwgMHg0NiwgMHhmYywgMHhlMCwgMHhlMCwgMHhhZiwgMHg5MywgMHhlMCwgMHg3MCwg
MHhkNSwgMHgxNSwKKyAgICAweDhjLCAweDJmLCAweGFlLCAweDRiLCAweGE2LCAweGViLCAweDEz
LCAweDhmLCAweGFmLCAweDFiLCAweGY1LCAweDcxLAorICAgIDB4YzQsIDB4NjIsIDB4NzEsIDB4
MDgsIDB4OTcsIDB4MTAsIDB4NTIsIDB4ZmUsIDB4YmQsIDB4NjAsIDB4ZDcsIDB4OWYsCisgICAg
MHhkZiwgMHgzZCwgMHhjNSwgMHhkZCwgMHhjZCwgMHhlNywgMHg4ZSwgMHg4NSwgMHg2MCwgMHhk
ZiwgMHg2MSwgMHg3OSwKKyAgICAweDViLCAweDkwLCAweGQ5LCAweGFhLCAweDU2LCAweDMwLCAw
eDZkLCAweDBmLCAweGZiLCAweDI3LCAweDg0LCAweGRkLAorICAgIDB4M2QsIDB4MDQsIDB4NmEs
IDB4ZTAsIDB4NzAsIDB4N2UsIDB4YmIsIDB4NTksIDB4ZjQsIDB4ZWIsIDB4ZTgsIDB4YzAsCisg
ICAgMHg2MiwgMHhhYSwgMHhmNiwgMHhlZCwgMHhjYSwgMHhhZSwgMHhiMiwgMHgyYiwgMHgwZiwg
MHhjMSwgMHg1NiwgMHg0NSwKKyAgICAweGU3LCAweDI0LCAweDZiLCAweGFmLCAweGViLCAweDE1
LCAweDI2LCAweGIyLCAweGNkLCAweGFlLCAweDFmLCAweGU3LAorICAgIDB4MTEsIDB4YzAsIDB4
MWMsIDB4MTksIDB4NGEsIDB4YzcsIDB4NTEsIDB4MmEsIDB4MjksIDB4ZGYsIDB4MTQsIDB4ODIs
CisgICAgMHg0MywgMHhmZSwgMHg1MiwgMHgzOSwgMHhiYSwgMHhlNiwgMHg2YywgMHhhNSwgMHg3
NiwgMHg4YiwgMHhiMSwgMHgyMSwKKyAgICAweDljLCAweDIwLCAweGIwLCAweDEwLCAweDBjLCAw
eDQ0LCAweGYyLCAweGQ0LCAweDZlLCAweDQxLCAweDFiLCAweDhmLAorICAgIDB4OTAsIDB4MjMs
IDB4ZTMsIDB4ODcsIDB4ZmMsIDB4ZjEsIDB4NDYsIDB4YzYsIDB4NWIsIDB4YWUsIDB4ZDAsIDB4
MmEsCisgICAgMHgyYiwgMHg3OCwgMHhmNSwgMHgyYiwgMHhiOSwgMHg5ZiwgMHg0NiwgMHg0Yiwg
MHgzMCwgMHhmOCwgMHg0OSwgMHg1NywKKyAgICAweDdlLCAweGI0LCAweGZmLCAweGNhLCAweGFk
LCAweDRkLCAweGYzLCAweGMxLCAweDdiLCAweDQyLCAweGUwLCAweGE0LAorICAgIDB4MzcsIDB4
MmYsIDB4ZTIsIDB4YjIsIDB4NjAsIDB4ZTgsIDB4YWYsIDB4ZDcsIDB4MzksIDB4MjMsIDB4NGMs
IDB4NjcsCisgICAgMHg0NCwgMHhlNSwgMHg2ZCwgMHhiMywgMHgyNSwgMHgxMSwgMHg5ZiwgMHgy
YiwgMHhlYSwgMHgyMywgMHhmYiwgMHgxZSwKKyAgICAweGNlLCAweGJmLCAweGE0LCAweDJmLCAw
eDg4LCAweGVjLCAweDE4LCAweDQwLCAweDE2LCAweDQzLCAweDlmLCAweDcxLAorICAgIDB4OWMs
IDB4OGQsIDB4YmQsIDB4NWQsIDB4NTUsIDB4M2IsIDB4OTIsIDB4NGUsIDB4MjMsIDB4M2MsIDB4
ODcsIDB4ZWQsCisgICAgMHg1ZiwgMHgyZSwgMHg4ZiwgMHhkZSwgMHg4MywgMHhhZCwgMHgzMCwg
MHg0MiwgMHg3ZSwgMHgxYSwgMHg1ZSwgMHhmNSwKKyAgICAweGM1LCAweDc1LCAweGJiLCAweDk5
LCAweDZlLCAweGYxLCAweDg3LCAweGUwLCAweGYzLCAweDUxLCAweDFlLCAweDdkLAorICAgIDB4
ZTgsIDB4ZmMsIDB4YzYsIDB4ODgsIDB4ZjIsIDB4MzksIDB4NmQsIDB4YWUsIDB4NzMsIDB4OWYs
IDB4YWQsIDB4OWIsCisgICAgMHg3YiwgMHg2NywgMHg5OSwgMHhkYiwgMHg5MCwgMHgwZSwgMHhh
MCwgMHhmYywgMHhhZiwgMHhjYywgMHhkYiwgMHg4YiwKKyAgICAweGFhLCAweGMyLCAweDU0LCAw
eGQ1LCAweDJkLCAweGIzLCAweDVmLCAweGEzLCAweDBhLCAweDNlLCAweGQ2LCAweDhkLAorICAg
IDB4NDAsIDB4NGQsIDB4M2IsIDB4ZTUsIDB4MmQsIDB4MzEsIDB4ZDgsIDB4YjIsIDB4MTIsIDB4
MDcsIDB4Y2EsIDB4MzYsCisgICAgMHg1NiwgMHhkOSwgMHgyZiwgMHg1NSwgMHg4MiwgMHhkYywg
MHg4ZSwgMHg5MiwgMHhhOSwgMHg2YywgMHg5MSwgMHg5ZSwKKyAgICAweDIyLCAweGU0LCAweGM2
LCAweDI3LCAweDhiLCAweDFhLCAweGEyLCAweDc4LCAweDU2LCAweDJjLCAweDVhLCAweDE5LAor
ICAgIDB4ZGYsIDB4NDAsIDB4ZjksIDB4ZmIsIDB4NDQsIDB4MjEsIDB4NWIsIDB4ZGYsIDB4MmYs
IDB4OTksIDB4ODQsIDB4NDksCisgICAgMHhjZiwgMHgxYSwgMHgxNSwgMHhhNSwgMHg1OSwgMHgz
YSwgMHg2NiwgMHgwOSwgMHg0ZCwgMHhjMSwgMHhmMiwgMHhiMSwKKyAgICAweDI0LCAweDMzLCAw
eGJkLCAweDg2LCAweDQxLCAweGRjLCAweDMzLCAweDliLCAweDAzLCAweGMwLCAweGE4LCAweGY4
LAorICAgIDB4OTQsIDB4NzgsIDB4MmUsIDB4MTYsIDB4OTcsIDB4ZWYsIDB4MjMsIDB4ZWUsIDB4
YTQsIDB4YWMsIDB4M2EsIDB4OTAsCisgICAgMHhiNiwgMHhkOSwgMHhjMCwgMHhkYSwgMHg1ZSwg
MHgyNiwgMHgzNCwgMHgyNiwgMHhjZSwgMHhjOSwgMHhmOCwgMHg0NSwKKyAgICAweDM3LCAweDgz
LCAweDdjLCAweGJkLCAweDljLCAweDYwLCAweDQwLCAweDYxLCAweDI4LCAweGNkLCAweDljLCAw
eGI0LAorICAgIDB4ZTQsIDB4ZTYsIDB4NWMsIDB4NGYsIDB4ZDEsIDB4NzksIDB4NDIsIDB4MTMs
IDB4YTksIDB4NmYsIDB4MjYsIDB4MjMsCisgICAgMHhjMiwgMHg2YywgMHg4ZSwgMHg4ZCwgMHg3
ZSwgMHgzZiwgMHhlZSwgMHgyYiwgMHg0ZCwgMHhkMiwgMHg1YiwgMHg4MCwKKyAgICAweGRjLCAw
eDc0LCAweGRhLCAweDFmLCAweGJjLCAweDI2LCAweDU0LCAweGM1LCAweGZlLCAweGVlLCAweGE5
LCAweDRmLAorICAgIDB4Y2UsIDB4NDYsIDB4YWYsIDB4OTAsIDB4YjAsIDB4MTIsIDB4OWEsIDB4
MTgsIDB4MGUsIDB4MDYsIDB4MDUsIDB4YzcsCisgICAgMHg5OCwgMHhlZiwgMHhjYywgMHg2ZCwg
MHhhMywgMHg0NiwgMHg5MSwgMHhhNSwgMHgwZSwgMHhlNywgMHgzNSwgMHgxYSwKKyAgICAweDdm
LCAweDlkLCAweGFlLCAweGEwLCAweGI0LCAweDBhLCAweDMyLCAweDNiLCAweGU0LCAweGNkLCAw
eDRiLCAweDNlLAorICAgIDB4ODksIDB4NzMsIDB4YzksIDB4OTcsIDB4MzgsIDB4ZTUsIDB4ODYs
IDB4NGYsIDB4MjQsIDB4ZWQsIDB4NGEsIDB4NDMsCisgICAgMHgwNCwgMHgwMiwgMHhjMSwgMHgy
OSwgMHg4ZCwgMHg4NSwgMHhhMiwgMHhkZCwgMHhiMiwgMHg2MSwgMHgzYywgMHhjZSwKKyAgICAw
eDhiLCAweDQ3LCAweDJlLCAweGVkLCAweDRiLCAweDI0LCAweDk0LCAweGI3LCAweGJmLCAweDlk
LCAweDU1LCAweDQyLAorICAgIDB4OTUsIDB4YzIsIDB4MjcsIDB4ZTUsIDB4MDksIDB4ZDQsIDB4
MjAsIDB4MDMsIDB4MjAsIDB4MjEsIDB4M2EsIDB4ZDgsCisgICAgMHhkMiwgMHhhMiwgMHhiMywg
MHg0NywgMHg5MywgMHg0ZiwgMHg1YSwgMHgzOSwgMHhjYSwgMHhkOCwgMHg3NCwgMHhhOSwKKyAg
ICAweDE5LCAweGE2LCAweDlhLCAweDIzLCAweGIxLCAweDIxLCAweGEzLCAweGIzLCAweDE0LCAw
eGNjLCAweGUyLCAweDEyLAorICAgIDB4OTEsIDB4MzAsIDB4ZGIsIDB4NTAsIDB4ZjgsIDB4NDQs
IDB4NzQsIDB4ZDYsIDB4NzAsIDB4ZGQsIDB4N2QsIDB4MjYsCisgICAgMHg3ZiwgMHhiZiwgMHgz
MiwgMHg5MywgMHgxZiwgMHgzZCwgMHg0MCwgMHhiZiwgMHgyZSwgMHhlYywgMHgyOCwgMHhmNSwK
KyAgICAweGIxLCAweGFmLCAweDExLCAweGM3LCAweDRlLCAweDY0LCAweDEzLCAweDNjLCAweGJm
LCAweDJlLCAweDE5LCAweDgxLAorICAgIDB4ZmUsIDB4MzUsIDB4YmEsIDB4ZWMsIDB4NmUsIDB4
YjYsIDB4YTksIDB4ZmUsIDB4YzYsIDB4ODUsIDB4MzMsIDB4NDEsCisgICAgMHg1OCwgMHhhYiwg
MHgwNiwgMHhhZSwgMHgyYiwgMHg5NiwgMHg2MiwgMHgxZiwgMHgyYywgMHg2YywgMHhhZCwgMHhl
YywKKyAgICAweDFhLCAweDU5LCAweDU1LCAweDVhLCAweDZmLCAweGUwLCAweGViLCAweDcxLCAw
eDhkLCAweGI1LCAweDBjLCAweDgxLAorICAgIDB4MmEsIDB4MzksIDB4YmQsIDB4NjcsIDB4Mzks
IDB4NDgsIDB4ZmIsIDB4OTEsIDB4NjQsIDB4YWQsIDB4MDEsIDB4NGMsCisgICAgMHg0YSwgMHgw
ZiwgMHgzMCwgMHgyOSwgMHhhMCwgMHhjZiwgMHgzMCwgMHg5NiwgMHg0MywgMHhlOSwgMHhmYywg
MHgyMiwKKyAgICAweDRiLCAweGYzLCAweDRmLCAweGFiLCAweGVjLCAweGJjLCAweDVhLCAweGZi
LCAweDdmLCAweDIwLCAweGQ5LCAweGQ1LAorICAgIDB4YzcsIDB4Y2UsIDB4OTMsIDB4YTMsIDB4
MmUsIDB4ODIsIDB4ZDEsIDB4YTAsIDB4YzYsIDB4MTYsIDB4ZDUsIDB4NjQsCisgICAgMHgyZCwg
MHgzZiwgMHg2OSwgMHgxNSwgMHhmZCwgMHhmMywgMHgyOCwgMHgzZCwgMHg0ZSwgMHg2MSwgMHgw
MSwgMHgyYywKKyAgICAweGQ0LCAweDJiLCAweDQwLCAweDUxLCAweDZlLCAweDk1LCAweDAwLCAw
eGE0LCAweDM0LCAweDMxLCAweDI1LCAweDMwLAorICAgIDB4MjMsIDB4MDYsIDB4MDksIDB4MmEs
IDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsIDB4MDEsIDB4MDksIDB4MTUsCisgICAgMHgz
MSwgMHgxNiwgMHgwNCwgMHgxNCwgMHg0NywgMHhmNCwgMHgxOCwgMHhhNSwgMHg0YiwgMHg4NSwg
MHhiNywgMHgwMiwKKyAgICAweGMxLCAweDk3LCAweGZmLCAweDU3LCAweGI2LCAweDZmLCAweDIx
LCAweDQ1LCAweDM0LCAweDNkLCAweDkyLCAweDIyLAorICAgIDB4MzAsIDB4MzEsIDB4MzAsIDB4
MjEsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDUsIDB4MmIsIDB4MGUsIDB4MDMsIDB4MDIsCisgICAg
MHgxYSwgMHgwNSwgMHgwMCwgMHgwNCwgMHgxNCwgMHgxNywgMHg0NSwgMHgwYywgMHhkZiwgMHg1
MywgMHg3NiwgMHg5YiwKKyAgICAweGNlLCAweDNiLCAweDEyLCAweGRkLCAweDQ3LCAweDA1LCAw
eDZkLCAweDE2LCAweDkwLCAweDlkLCAweDI5LCAweDliLAorICAgIDB4ZTEsIDB4MDQsIDB4MDgs
IDB4YTEsIDB4ZjIsIDB4ODIsIDB4MWMsIDB4ZDEsIDB4ZDEsIDB4N2IsIDB4NWMsIDB4MDIsCisg
ICAgMHgwMiwgMHgwOCwgMHgwMCwKK307CisKKy8vIGtOb0VuY3J5cHRpb24gaXMgYSBQS0NTIzEy
IGZpbGUgd2l0aCBuZWl0aGVyIHRoZSBrZXkgb3IgY2VydGlmaWNhdGUgaXMKKy8vIGVuY3J5cHRl
ZC4gSXQgd2FzIGdlbmVyYXRlZCB3aXRoOgorLy8KKy8vICAgb3BlbnNzbCBwa2NzMTIgLWV4cG9y
dCAtaW5rZXkgZWNkc2FfcDI1Nl9rZXkucGVtIC1pbiBlY2RzYV9wMjU2X2NlcnQucGVtIC1rZXlw
YmUgTk9ORSAtY2VydHBiZSBOT05FIC1wYXNzd29yZCBwYXNzOmZvbworc3RhdGljIGNvbnN0IHVp
bnQ4X3Qga05vRW5jcnlwdGlvbltdID0geworICAgIDB4MzAsIDB4ODIsIDB4MDMsIDB4NmUsIDB4
MDIsIDB4MDEsIDB4MDMsIDB4MzAsIDB4ODIsIDB4MDMsIDB4MzQsIDB4MDYsCisgICAgMHgwOSwg
MHgyYSwgMHg4NiwgMHg0OCwgMHg4NiwgMHhmNywgMHgwZCwgMHgwMSwgMHgwNywgMHgwMSwgMHhh
MCwgMHg4MiwKKyAgICAweDAzLCAweDI1LCAweDA0LCAweDgyLCAweDAzLCAweDIxLCAweDMwLCAw
eDgyLCAweDAzLCAweDFkLCAweDMwLCAweDgyLAorICAgIDB4MDIsIDB4M2UsIDB4MDYsIDB4MDks
IDB4MmEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsIDB4MDEsIDB4MDcsCisgICAgMHgw
MSwgMHhhMCwgMHg4MiwgMHgwMiwgMHgyZiwgMHgwNCwgMHg4MiwgMHgwMiwgMHgyYiwgMHgzMCwg
MHg4MiwgMHgwMiwKKyAgICAweDI3LCAweDMwLCAweDgyLCAweDAyLCAweDIzLCAweDA2LCAweDBi
LCAweDJhLCAweDg2LCAweDQ4LCAweDg2LCAweGY3LAorICAgIDB4MGQsIDB4MDEsIDB4MGMsIDB4
MGEsIDB4MDEsIDB4MDMsIDB4YTAsIDB4ODIsIDB4MDEsIDB4ZWIsIDB4MzAsIDB4ODIsCisgICAg
MHgwMSwgMHhlNywgMHgwNiwgMHgwYSwgMHgyYSwgMHg4NiwgMHg0OCwgMHg4NiwgMHhmNywgMHgw
ZCwgMHgwMSwgMHgwOSwKKyAgICAweDE2LCAweDAxLCAweGEwLCAweDgyLCAweDAxLCAweGQ3LCAw
eDA0LCAweDgyLCAweDAxLCAweGQzLCAweDMwLCAweDgyLAorICAgIDB4MDEsIDB4Y2YsIDB4MzAs
IDB4ODIsIDB4MDEsIDB4NzYsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MDIsIDB4MDIsCisg
ICAgMHgwOSwgMHgwMCwgMHhkOSwgMHg0YywgMHgwNCwgMHhkYSwgMHg0OSwgMHg3ZCwgMHhiZiwg
MHhlYiwgMHgzMCwgMHgwOSwKKyAgICAweDA2LCAweDA3LCAweDJhLCAweDg2LCAweDQ4LCAweGNl
LCAweDNkLCAweDA0LCAweDAxLCAweDMwLCAweDQ1LCAweDMxLAorICAgIDB4MGIsIDB4MzAsIDB4
MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NDEsIDB4NTUs
CisgICAgMHgzMSwgMHgxMywgMHgzMCwgMHgxMSwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgw
OCwgMHgwYywgMHgwYSwgMHg1MywKKyAgICAweDZmLCAweDZkLCAweDY1LCAweDJkLCAweDUzLCAw
eDc0LCAweDYxLCAweDc0LCAweDY1LCAweDMxLCAweDIxLCAweDMwLAorICAgIDB4MWYsIDB4MDYs
IDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMsIDB4MTgsIDB4NDksIDB4NmUsIDB4NzQsIDB4
NjUsCisgICAgMHg3MiwgMHg2ZSwgMHg2NSwgMHg3NCwgMHgyMCwgMHg1NywgMHg2OSwgMHg2NCwg
MHg2NywgMHg2OSwgMHg3NCwgMHg3MywKKyAgICAweDIwLCAweDUwLCAweDc0LCAweDc5LCAweDIw
LCAweDRjLCAweDc0LCAweDY0LCAweDMwLCAweDFlLCAweDE3LCAweDBkLAorICAgIDB4MzEsIDB4
MzQsIDB4MzAsIDB4MzQsIDB4MzIsIDB4MzMsIDB4MzIsIDB4MzMsIDB4MzIsIDB4MzEsIDB4MzUs
IDB4MzcsCisgICAgMHg1YSwgMHgxNywgMHgwZCwgMHgzMSwgMHgzNCwgMHgzMCwgMHgzNSwgMHgz
MiwgMHgzMywgMHgzMiwgMHgzMywgMHgzMiwKKyAgICAweDMxLCAweDM1LCAweDM3LCAweDVhLCAw
eDMwLCAweDQ1LCAweDMxLCAweDBiLCAweDMwLCAweDA5LCAweDA2LCAweDAzLAorICAgIDB4NTUs
IDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NDEsIDB4NTUsIDB4MzEsIDB4MTMsIDB4MzAsIDB4
MTEsIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgwNCwgMHgwOCwgMHgwYywgMHgwYSwgMHg1Mywg
MHg2ZiwgMHg2ZCwgMHg2NSwgMHgyZCwgMHg1MywKKyAgICAweDc0LCAweDYxLCAweDc0LCAweDY1
LCAweDMxLCAweDIxLCAweDMwLCAweDFmLCAweDA2LCAweDAzLCAweDU1LCAweDA0LAorICAgIDB4
MGEsIDB4MGMsIDB4MTgsIDB4NDksIDB4NmUsIDB4NzQsIDB4NjUsIDB4NzIsIDB4NmUsIDB4NjUs
IDB4NzQsIDB4MjAsCisgICAgMHg1NywgMHg2OSwgMHg2NCwgMHg2NywgMHg2OSwgMHg3NCwgMHg3
MywgMHgyMCwgMHg1MCwgMHg3NCwgMHg3OSwgMHgyMCwKKyAgICAweDRjLCAweDc0LCAweDY0LCAw
eDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2LCAweDA3LCAweDJhLCAweDg2LCAweDQ4LAorICAg
IDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4
Y2UsIDB4M2QsIDB4MDMsCisgICAgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwgMHgwNCwg
MHhlNiwgMHgyYiwgMHg2OSwgMHhlMiwgMHhiZiwgMHg2NSwKKyAgICAweDlmLCAweDk3LCAweGJl
LCAweDJmLCAweDFlLCAweDBkLCAweDk0LCAweDhhLCAweDRjLCAweGQ1LCAweDk3LCAweDZiLAor
ICAgIDB4YjcsIDB4YTksIDB4MWUsIDB4MGQsIDB4NDYsIDB4ZmIsIDB4ZGQsIDB4YTksIDB4YTks
IDB4MWUsIDB4OWQsIDB4ZGMsCisgICAgMHhiYSwgMHg1YSwgMHgwMSwgMHhlNywgMHhkNiwgMHg5
NywgMHhhOCwgMHgwYSwgMHgxOCwgMHhmOSwgMHhjMywgMHhjNCwKKyAgICAweGEzLCAweDFlLCAw
eDU2LCAweGUyLCAweDdjLCAweDgzLCAweDQ4LCAweGRiLCAweDE2LCAweDFhLCAweDFjLCAweGY1
LAorICAgIDB4MWQsIDB4N2UsIDB4ZjEsIDB4OTQsIDB4MmQsIDB4NGIsIDB4Y2YsIDB4NzIsIDB4
MjIsIDB4YzEsIDB4YTMsIDB4NTAsCisgICAgMHgzMCwgMHg0ZSwgMHgzMCwgMHgxZCwgMHgwNiwg
MHgwMywgMHg1NSwgMHgxZCwgMHgwZSwgMHgwNCwgMHgxNiwgMHgwNCwKKyAgICAweDE0LCAweGFi
LCAweDg0LCAweGQyLCAweGFjLCAweGFiLCAweDk1LCAweGYwLCAweDgyLCAweDRlLCAweDE2LCAw
eDc4LAorICAgIDB4MDcsIDB4NTUsIDB4NTcsIDB4NWYsIDB4ZTQsIDB4MjYsIDB4OGQsIDB4ODIs
IDB4ZDEsIDB4MzAsIDB4MWYsIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgxZCwgMHgyMywgMHgw
NCwgMHgxOCwgMHgzMCwgMHgxNiwgMHg4MCwgMHgxNCwgMHhhYiwgMHg4NCwKKyAgICAweGQyLCAw
eGFjLCAweGFiLCAweDk1LCAweGYwLCAweDgyLCAweDRlLCAweDE2LCAweDc4LCAweDA3LCAweDU1
LCAweDU3LAorICAgIDB4NWYsIDB4ZTQsIDB4MjYsIDB4OGQsIDB4ODIsIDB4ZDEsIDB4MzAsIDB4
MGMsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MWQsCisgICAgMHgxMywgMHgwNCwgMHgwNSwgMHgzMCwg
MHgwMywgMHgwMSwgMHgwMSwgMHhmZiwgMHgzMCwgMHgwOSwgMHgwNiwgMHgwNywKKyAgICAweDJh
LCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAxLCAweDAzLCAweDQ4LCAweDAwLCAw
eDMwLCAweDQ1LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZjIsIDB4YTAsIDB4MzUsIDB4NWUs
IDB4NTEsIDB4M2EsIDB4MzYsIDB4YzMsIDB4ODIsCisgICAgMHg3OSwgMHg5YiwgMHhlZSwgMHgy
NywgMHg1MCwgMHg4NSwgMHg4ZSwgMHg3MCwgMHgwNiwgMHg3NCwgMHg5NSwgMHg1NywKKyAgICAw
eGQyLCAweDI5LCAweDc0LCAweDAwLCAweGY0LCAweGJlLCAweDE1LCAweDg3LCAweDVkLCAweGM0
LCAweDA3LCAweDAyLAorICAgIDB4MjAsIDB4N2MsIDB4MWUsIDB4NzksIDB4MTQsIDB4NmEsIDB4
MjEsIDB4ODMsIDB4ZjAsIDB4N2EsIDB4NzQsIDB4NjgsCisgICAgMHg3OSwgMHg1ZiwgMHgxNCwg
MHg5OSwgMHg5YSwgMHg2OCwgMHhiNCwgMHhmMSwgMHhjYiwgMHg5ZSwgMHgxNSwgMHg1ZSwKKyAg
ICAweGU2LCAweDFmLCAweDMyLCAweDUyLCAweDYxLCAweDVlLCAweDc1LCAweGM5LCAweDE0LCAw
eDMxLCAweDI1LCAweDMwLAorICAgIDB4MjMsIDB4MDYsIDB4MDksIDB4MmEsIDB4ODYsIDB4NDgs
IDB4ODYsIDB4ZjcsIDB4MGQsIDB4MDEsIDB4MDksIDB4MTUsCisgICAgMHgzMSwgMHgxNiwgMHgw
NCwgMHgxNCwgMHgzZiwgMHgzMSwgMHgzOCwgMHhlYywgMHhiOSwgMHhmMSwgMHg0NSwgMHhlMSwK
KyAgICAweDNlLCAweDkwLCAweDcxLCAweDBkLCAweGMxLCAweDI4LCAweGJhLCAweDRlLCAweDZm
LCAweGEwLCAweDljLCAweGVkLAorICAgIDB4MzAsIDB4ODEsIDB4ZDgsIDB4MDYsIDB4MDksIDB4
MmEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsIDB4MDEsCisgICAgMHgwNywgMHgwMSwg
MHhhMCwgMHg4MSwgMHhjYSwgMHgwNCwgMHg4MSwgMHhjNywgMHgzMCwgMHg4MSwgMHhjNCwgMHgz
MCwKKyAgICAweDgxLCAweGMxLCAweDA2LCAweDBiLCAweDJhLCAweDg2LCAweDQ4LCAweDg2LCAw
eGY3LCAweDBkLCAweDAxLCAweDBjLAorICAgIDB4MGEsIDB4MDEsIDB4MDEsIDB4YTAsIDB4ODEs
IDB4OGEsIDB4MzAsIDB4ODEsIDB4ODcsIDB4MDIsIDB4MDEsIDB4MDAsCisgICAgMHgzMCwgMHgx
MywgMHgwNiwgMHgwNywgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwMiwgMHgwMSwg
MHgwNiwKKyAgICAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDAzLCAweDAx
LCAweDA3LCAweDA0LCAweDZkLCAweDMwLAorICAgIDB4NmIsIDB4MDIsIDB4MDEsIDB4MDEsIDB4
MDQsIDB4MjAsIDB4MDcsIDB4MGYsIDB4MDgsIDB4NzIsIDB4N2EsIDB4ZDQsCisgICAgMHhhMCwg
MHg0YSwgMHg5YywgMHhkZCwgMHg1OSwgMHhjOSwgMHg0ZCwgMHg4OSwgMHg2OCwgMHg3NywgMHgw
OCwgMHhiNSwKKyAgICAweDZmLCAweGM5LCAweDVkLCAweDMwLCAweDc3LCAweDBlLCAweGU4LCAw
eGQxLCAweGM5LCAweGNlLCAweDBhLCAweDhiLAorICAgIDB4YjQsIDB4NmEsIDB4YTEsIDB4NDQs
IDB4MDMsIDB4NDIsIDB4MDAsIDB4MDQsIDB4ZTYsIDB4MmIsIDB4NjksIDB4ZTIsCisgICAgMHhi
ZiwgMHg2NSwgMHg5ZiwgMHg5NywgMHhiZSwgMHgyZiwgMHgxZSwgMHgwZCwgMHg5NCwgMHg4YSwg
MHg0YywgMHhkNSwKKyAgICAweDk3LCAweDZiLCAweGI3LCAweGE5LCAweDFlLCAweDBkLCAweDQ2
LCAweGZiLCAweGRkLCAweGE5LCAweGE5LCAweDFlLAorICAgIDB4OWQsIDB4ZGMsIDB4YmEsIDB4
NWEsIDB4MDEsIDB4ZTcsIDB4ZDYsIDB4OTcsIDB4YTgsIDB4MGEsIDB4MTgsIDB4ZjksCisgICAg
MHhjMywgMHhjNCwgMHhhMywgMHgxZSwgMHg1NiwgMHhlMiwgMHg3YywgMHg4MywgMHg0OCwgMHhk
YiwgMHgxNiwgMHgxYSwKKyAgICAweDFjLCAweGY1LCAweDFkLCAweDdlLCAweGYxLCAweDk0LCAw
eDJkLCAweDRiLCAweGNmLCAweDcyLCAweDIyLCAweGMxLAorICAgIDB4MzEsIDB4MjUsIDB4MzAs
IDB4MjMsIDB4MDYsIDB4MDksIDB4MmEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsCisg
ICAgMHgwMSwgMHgwOSwgMHgxNSwgMHgzMSwgMHgxNiwgMHgwNCwgMHgxNCwgMHgzZiwgMHgzMSwg
MHgzOCwgMHhlYywgMHhiOSwKKyAgICAweGYxLCAweDQ1LCAweGUxLCAweDNlLCAweDkwLCAweDcx
LCAweDBkLCAweGMxLCAweDI4LCAweGJhLCAweDRlLCAweDZmLAorICAgIDB4YTAsIDB4OWMsIDB4
ZWQsIDB4MzAsIDB4MzEsIDB4MzAsIDB4MjEsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDUsIDB4MmIs
CisgICAgMHgwZSwgMHgwMywgMHgwMiwgMHgxYSwgMHgwNSwgMHgwMCwgMHgwNCwgMHgxNCwgMHhk
MCwgMHhiNCwgMHgxNywgMHgxYSwKKyAgICAweGRiLCAweGEzLCAweDI3LCAweGQ4LCAweDllLCAw
eGQzLCAweGYyLCAweGIzLCAweDNlLCAweDk2LCAweDA3LCAweDNhLAorICAgIDB4ZjIsIDB4NmEs
IDB4YzIsIDB4MWMsIDB4MDQsIDB4MDgsIDB4YjUsIDB4YTgsIDB4YjksIDB4ZGIsIDB4MmYsIDB4
ZjEsCisgICAgMHhhNCwgMHhjZCwgMHgwMiwgMHgwMiwgMHgwOCwgMHgwMCwKK307CisKIHN0YXRp
YyBjb25zdCBjaGFyIGtQYXNzd29yZFtdID0gImZvbyI7CiAKIC8vIEdlbmVyYXRlZCB3aXRoCkBA
IC0xMjMwLDcgKzE1NDUsMTIgQEAgVEVTVChQS0NTMTJUZXN0LCBUZXN0V2luZG93cykgewogfQog
CiBURVNUKFBLQ1MxMlRlc3QsIFRlc3RQQkVTMikgewotICBUZXN0SW1wbCgiUEJFUzIiLCBrUEJF
UzIsIGtQYXNzd29yZCwgbnVsbHB0cik7CisgIFRlc3RJbXBsKCJrUEJFUzJXaXRoU0hBMSIsIGtQ
QkVTMldpdGhTSEExLCBrUGFzc3dvcmQsIG51bGxwdHIpOworICBUZXN0SW1wbCgia1BCRVMyV2l0
aFNIQTI1NiIsIGtQQkVTMldpdGhTSEEyNTYsIGtQYXNzd29yZCwgbnVsbHB0cik7Cit9CisKK1RF
U1QoUEtDUzEyVGVzdCwgVGVzdE5vRW5jcnlwdGlvbikgeworICBUZXN0SW1wbCgia05vRW5jcnlw
dGlvbiIsIGtOb0VuY3J5cHRpb24sIGtQYXNzd29yZCwgbnVsbHB0cik7CiB9CiAKIFRFU1QoUEtD
UzEyVGVzdCwgVGVzdEVtcHR5UGFzc3dvcmQpIHsKQEAgLTE1MDYsMyArMTgyNiwxNTIgQEAgVEVT
VChQS0NTMTJUZXN0LCBSb3VuZFRyaXApIHsKICAgICAgICAgICAgICAgICBOSURfcGJlX1dpdGhT
SEExQW5kM19LZXlfVHJpcGxlREVTX0NCQywKICAgICAgICAgICAgICAgICBOSURfcGJlX1dpdGhT
SEExQW5kM19LZXlfVHJpcGxlREVTX0NCQywgMTAwLCAxMDApOwogfQorCitzdGF0aWMgYnNzbDo6
VW5pcXVlUHRyPEVWUF9QS0VZPiBNYWtlVGVzdEtleSgpIHsKKyAgYnNzbDo6VW5pcXVlUHRyPEVD
X0tFWT4gZWNfa2V5KAorICAgICAgRUNfS0VZX25ld19ieV9jdXJ2ZV9uYW1lKE5JRF9YOV82Ml9w
cmltZTI1NnYxKSk7CisgIGlmICghZWNfa2V5IHx8CisgICAgICAhRUNfS0VZX2dlbmVyYXRlX2tl
eShlY19rZXkuZ2V0KCkpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgYnNzbDo6VW5p
cXVlUHRyPEVWUF9QS0VZPiBldnBfcGtleShFVlBfUEtFWV9uZXcoKSk7CisgIGlmICghZXZwX3Br
ZXkgfHwKKyAgICAgICFFVlBfUEtFWV9hc3NpZ25fRUNfS0VZKGV2cF9wa2V5LmdldCgpLCBlY19r
ZXkucmVsZWFzZSgpKSkgeworICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiBldnBf
cGtleTsKK30KKworc3RhdGljIGJzc2w6OlVuaXF1ZVB0cjxYNTA5PiBNYWtlVGVzdENlcnQoRVZQ
X1BLRVkgKmtleSkgeworICBic3NsOjpVbmlxdWVQdHI8WDUwOT4geDUwOShYNTA5X25ldygpKTsK
KyAgaWYgKCF4NTA5KSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgWDUwOV9OQU1FKiBz
dWJqZWN0ID0gWDUwOV9nZXRfc3ViamVjdF9uYW1lKHg1MDkuZ2V0KCkpOworICBpZiAoIVg1MDlf
Z210aW1lX2FkaihYNTA5X2dldF9ub3RCZWZvcmUoeDUwOS5nZXQoKSksIDApIHx8CisgICAgICAh
WDUwOV9nbXRpbWVfYWRqKFg1MDlfZ2V0X25vdEFmdGVyKHg1MDkuZ2V0KCkpLCA2MCAqIDYwICog
MjQpIHx8CisgICAgICAhWDUwOV9OQU1FX2FkZF9lbnRyeV9ieV90eHQoc3ViamVjdCwgIkNOIiwg
TUJTVFJJTkdfQVNDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPigiVGVzdCIpLCAtMSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAtMSwgMCkgfHwKKyAgICAgICFYNTA5X3NldF9pc3N1ZXJfbmFtZSh4
NTA5LmdldCgpLCBzdWJqZWN0KSB8fAorICAgICAgIVg1MDlfc2V0X3B1YmtleSh4NTA5LmdldCgp
LCBrZXkpIHx8CisgICAgICAhWDUwOV9zaWduKHg1MDkuZ2V0KCksIGtleSwgRVZQX3NoYTI1Nigp
KSkgeworICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiB4NTA5OworfQorCitzdGF0
aWMgYm9vbCBQS0NTMTJDcmVhdGVWZWN0b3Ioc3RkOjp2ZWN0b3I8dWludDhfdD4gKm91dCwgRVZQ
X1BLRVkgKnBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2
ZWN0b3I8WDUwOSAqPiAmY2VydHMpIHsKKyAgYnNzbDo6VW5pcXVlUHRyPFNUQUNLX09GKFg1MDkp
PiBjaGFpbihza19YNTA5X25ld19udWxsKCkpOworICBpZiAoIWNoYWluKSB7CisgICAgcmV0dXJu
IGZhbHNlOworICB9CisKKyAgZm9yIChYNTA5ICpjZXJ0IDogY2VydHMpIHsKKyAgICBpZiAoIWJz
c2w6OlB1c2hUb1N0YWNrKGNoYWluLmdldCgpLCBic3NsOjpVcFJlZihjZXJ0KSkpIHsKKyAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKworICBic3NsOjpVbmlxdWVQdHI8UEtDUzEyPiBw
MTIoUEtDUzEyX2NyZWF0ZShrUGFzc3dvcmQsIG51bGxwdHIgLyogbmFtZSAqLywgcGtleSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciAvKiBjZXJ0
ICovLCBjaGFpbi5nZXQoKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCwgMCwgMCwgMCkpOworICBpZiAoIXAxMikgeworICAgIHJldHVybiBmYWxzZTsK
KyAgfQorCisgIGludCBsZW4gPSBpMmRfUEtDUzEyKHAxMi5nZXQoKSwgbnVsbHB0cik7CisgIGlm
IChsZW4gPCAwKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIG91dC0+cmVzaXplKHN0YXRp
Y19jYXN0PHNpemVfdD4obGVuKSk7CisgIHVpbnQ4X3QgKnB0ciA9IG91dC0+ZGF0YSgpOworICBy
ZXR1cm4gaTJkX1BLQ1MxMihwMTIuZ2V0KCksICZwdHIpID09IGxlbjsKK30KKworc3RhdGljIHZv
aWQgRXhwZWN0UEtDUzEyUGFyc2UoYnNzbDo6U3Bhbjxjb25zdCB1aW50OF90PiBpbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUF9QS0VZICpleHBlY3Rfa2V5LCBYNTA5ICpleHBl
Y3RfY2VydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9y
PFg1MDkgKj4gJmV4cGVjdF9jYV9jZXJ0cykgeworICBic3NsOjpVbmlxdWVQdHI8QklPPiBiaW8o
QklPX25ld19tZW1fYnVmKGluLmRhdGEoKSwgaW4uc2l6ZSgpKSk7CisgIEFTU0VSVF9UUlVFKGJp
byk7CisKKyAgYnNzbDo6VW5pcXVlUHRyPFBLQ1MxMj4gcDEyKGQyaV9QS0NTMTJfYmlvKGJpby5n
ZXQoKSwgbnVsbHB0cikpOworICBBU1NFUlRfVFJVRShwMTIpOworCisgIEVWUF9QS0VZICprZXkg
PSBudWxscHRyOworICBYNTA5ICpjZXJ0ID0gbnVsbHB0cjsKKyAgU1RBQ0tfT0YoWDUwOSkgKmNh
X2NlcnRzID0gbnVsbHB0cjsKKyAgQVNTRVJUX1RSVUUoUEtDUzEyX3BhcnNlKHAxMi5nZXQoKSwg
a1Bhc3N3b3JkLCAma2V5LCAmY2VydCwgJmNhX2NlcnRzKSk7CisKKyAgYnNzbDo6VW5pcXVlUHRy
PEVWUF9QS0VZPiBkZWxldGVfa2V5KGtleSk7CisgIGJzc2w6OlVuaXF1ZVB0cjxYNTA5PiBkZWxl
dGVfY2VydChjZXJ0KTsKKyAgYnNzbDo6VW5pcXVlUHRyPFNUQUNLX09GKFg1MDkpPiBkZWxldGVf
Y2FfY2VydHMoY2FfY2VydHMpOworCisgIGlmIChleHBlY3Rfa2V5ID09IG51bGxwdHIpIHsKKyAg
ICBFWFBFQ1RfRkFMU0Uoa2V5KTsKKyAgfSBlbHNlIHsKKyAgICBBU1NFUlRfVFJVRShrZXkpOwor
ICAgIEVYUEVDVF9FUSgxLCBFVlBfUEtFWV9jbXAoa2V5LCBleHBlY3Rfa2V5KSk7CisgIH0KKwor
ICBpZiAoZXhwZWN0X2NlcnQgPT0gbnVsbHB0cikgeworICAgIEVYUEVDVF9GQUxTRShjZXJ0KTsK
KyAgfSBlbHNlIHsKKyAgICBBU1NFUlRfVFJVRShjZXJ0KTsKKyAgICBFWFBFQ1RfRVEoMCwgWDUw
OV9jbXAoY2VydCwgZXhwZWN0X2NlcnQpKTsKKyAgfQorCisgIEFTU0VSVF9FUShleHBlY3RfY2Ff
Y2VydHMuc2l6ZSgpLCBza19YNTA5X251bShjYV9jZXJ0cykpOworICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGV4cGVjdF9jYV9jZXJ0cy5zaXplKCk7IGkrKykgeworICAgIEVYUEVDVF9FUSgwLCBY
NTA5X2NtcChleHBlY3RfY2FfY2VydHNbaV0sIHNrX1g1MDlfdmFsdWUoY2FfY2VydHMsIGkpKSk7
CisgIH0KK30KKworLy8gVGVzdCB0aGF0IHxQS0NTMTJfcGFyc2V8IHJldHVybnMgdmFsdWVzIGlu
IHRoZSBleHBlY3RlZCBvcmRlci4KK1RFU1QoUEtDUzEyVGVzdCwgT3JkZXIpIHsKKyAgYnNzbDo6
VW5pcXVlUHRyPEVWUF9QS0VZPiBrZXkxID0gTWFrZVRlc3RLZXkoKTsKKyAgQVNTRVJUX1RSVUUo
a2V5MSk7CisgIGJzc2w6OlVuaXF1ZVB0cjxYNTA5PiBjZXJ0MSA9IE1ha2VUZXN0Q2VydChrZXkx
LmdldCgpKTsKKyAgQVNTRVJUX1RSVUUoY2VydDEpOworICBic3NsOjpVbmlxdWVQdHI8WDUwOT4g
Y2VydDFiID0gTWFrZVRlc3RDZXJ0KGtleTEuZ2V0KCkpOworICBBU1NFUlRfVFJVRShjZXJ0MWIp
OworICBic3NsOjpVbmlxdWVQdHI8RVZQX1BLRVk+IGtleTIgPSBNYWtlVGVzdEtleSgpOworICBB
U1NFUlRfVFJVRShrZXkyKTsKKyAgYnNzbDo6VW5pcXVlUHRyPFg1MDk+IGNlcnQyID0gTWFrZVRl
c3RDZXJ0KGtleTIuZ2V0KCkpOworICBBU1NFUlRfVFJVRShjZXJ0Mik7CisgIGJzc2w6OlVuaXF1
ZVB0cjxFVlBfUEtFWT4ga2V5MyA9IE1ha2VUZXN0S2V5KCk7CisgIEFTU0VSVF9UUlVFKGtleTMp
OworICBic3NsOjpVbmlxdWVQdHI8WDUwOT4gY2VydDMgPSBNYWtlVGVzdENlcnQoa2V5My5nZXQo
KSk7CisgIEFTU0VSVF9UUlVFKGNlcnQzKTsKKworICAvLyBQS0NTMTJfcGFyc2UgdXNlcyB0aGUg
a2V5IHRvIHNlbGVjdCB0aGUgbWFpbiBjZXJ0aWZpY2F0ZS4KKyAgc3RkOjp2ZWN0b3I8dWludDhf
dD4gcDEyOworICBBU1NFUlRfVFJVRShQS0NTMTJDcmVhdGVWZWN0b3IoJnAxMiwga2V5MS5nZXQo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjZXJ0MS5nZXQoKSwgY2VydDIu
Z2V0KCksIGNlcnQzLmdldCgpfSkpOworICBFeHBlY3RQS0NTMTJQYXJzZShwMTIsIGtleTEuZ2V0
KCksIGNlcnQxLmdldCgpLCB7Y2VydDIuZ2V0KCksIGNlcnQzLmdldCgpfSk7CisKKyAgQVNTRVJU
X1RSVUUoUEtDUzEyQ3JlYXRlVmVjdG9yKCZwMTIsIGtleTEuZ2V0KCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7Y2VydDMuZ2V0KCksIGNlcnQxLmdldCgpLCBjZXJ0Mi5nZXQo
KX0pKTsKKyAgRXhwZWN0UEtDUzEyUGFyc2UocDEyLCBrZXkxLmdldCgpLCBjZXJ0MS5nZXQoKSwg
e2NlcnQzLmdldCgpLCBjZXJ0Mi5nZXQoKX0pOworCisgIEFTU0VSVF9UUlVFKFBLQ1MxMkNyZWF0
ZVZlY3RvcigmcDEyLCBrZXkxLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAge2NlcnQyLmdldCgpLCBjZXJ0My5nZXQoKSwgY2VydDEuZ2V0KCl9KSk7CisgIEV4cGVjdFBL
Q1MxMlBhcnNlKHAxMiwga2V5MS5nZXQoKSwgY2VydDEuZ2V0KCksIHtjZXJ0Mi5nZXQoKSwgY2Vy
dDMuZ2V0KCl9KTsKKworICAvLyBJbiBjYXNlIG9mIGR1cGxpY2F0ZXMsIHRoZSBsYXN0IG9uZSBp
cyBzZWxlY3RlZC4gKEl0IGlzIHVubGlrZWx5IGFueXRoaW5nCisgIC8vIGRlcGVuZHMgb24gd2hp
Y2ggaXMgc2VsZWN0ZWQsIGJ1dCB3ZSBtYXRjaCBPcGVuU1NMLikKKyAgQVNTRVJUX1RSVUUoCisg
ICAgICBQS0NTMTJDcmVhdGVWZWN0b3IoJnAxMiwga2V5MS5nZXQoKSwge2NlcnQxLmdldCgpLCBj
ZXJ0MWIuZ2V0KCl9KSk7CisgIEV4cGVjdFBLQ1MxMlBhcnNlKHAxMiwga2V5MS5nZXQoKSwgY2Vy
dDFiLmdldCgpLCB7Y2VydDEuZ2V0KCl9KTsKKworICAvLyBJZiB0aGVyZSBpcyBubyBrZXksIGFs
bCBjZXJ0aWZpY2F0ZXMgYXJlIHJldHVybmVkIGFzICJDQSIgY2VydGlmaWNhdGVzLgorICBBU1NF
UlRfVFJVRShQS0NTMTJDcmVhdGVWZWN0b3IoJnAxMiwgbnVsbHB0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHtjZXJ0MS5nZXQoKSwgY2VydDIuZ2V0KCksIGNlcnQzLmdldCgp
fSkpOworICBFeHBlY3RQS0NTMTJQYXJzZShwMTIsIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAg
ICAgICAgICAgICAgIHtjZXJ0MS5nZXQoKSwgY2VydDIuZ2V0KCksIGNlcnQzLmdldCgpfSk7CisK
KyAgLy8gVGhlIHNhbWUgaGFwcGVucyBpZiB0aGVyZSBpcyBhIGtleSwgYnV0IGl0IGRvZXMgbm90
IG1hdGNoIGFueSBjZXJ0aWZpY2F0ZS4KKyAgQVNTRVJUX1RSVUUoUEtDUzEyQ3JlYXRlVmVjdG9y
KCZwMTIsIGtleTEuZ2V0KCksIHtjZXJ0Mi5nZXQoKSwgY2VydDMuZ2V0KCl9KSk7CisgIEV4cGVj
dFBLQ1MxMlBhcnNlKHAxMiwga2V5MS5nZXQoKSwgbnVsbHB0ciwge2NlcnQyLmdldCgpLCBjZXJ0
My5nZXQoKX0pOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2NzOC9wa2NzOC5jIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9wa2NzOC9wa2NzOC5jCmluZGV4IGVlMjVlZTI5ZjdhYWIzNDlmMmVjY2I1NDQyYTE2
YzQ2Nzk1MzY2NDMuLmExOWI0YTNkOGU3ZmViYmZiNmZlMjMyYjc5YjJkN2ZkNTEyMTAyYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vcGtjczgvcGtjczguYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3BrY3M4
L3BrY3M4LmMKQEAgLTQ4Niw2ICs0ODYsMTAgQEAgaW50IFBLQ1M4X21hcnNoYWxfZW5jcnlwdGVk
X3ByaXZhdGVfa2V5KENCQiAqb3V0LCBpbnQgcGJlX25pZCwKICAgICBnb3RvIGVycjsKICAgfQog
CisgIC8vIFRPRE8oZGF2aWRiZW4pOiBPcGVuU1NMIGhhcyBzaW5jZSBleHRlbmRlZCB8cGJlX25p
ZHwgdG8gY29udHJvbCBlaXRoZXIgdGhlCisgIC8vIFBCRVMxIHNjaGVtZSBvciB0aGUgUEJFUzIg
UFJGLiBFLmcuIHBhc3NpbmcgfE5JRF9obWFjV2l0aFNIQTI1Nnwgd2lsbAorICAvLyBzZWxlY3Qg
UEJFUzIgd2l0aCBITUFDLVNIQTI1NiBhcyB0aGUgUFJGLiBJbXBsZW1lbnQgdGhpcyBpZiBhbnl0
aGluZyB1c2VzCisgIC8vIGl0LiBTZWUgNTY5M2EzMDgxM2EwMzFkMzkyMWEwMTZhODcwNDIwZTdl
YjkzZWM5MCBpbiBPcGVuU1NMLgogICBpbnQgYWxnX29rOwogICBpZiAocGJlX25pZCA9PSAtMSkg
ewogICAgIGFsZ19vayA9IFBLQ1M1X3BiZTJfZW5jcnlwdF9pbml0KCZlcGtpLCAmY3R4LCBjaXBo
ZXIsICh1bnNpZ25lZClpdGVyYXRpb25zLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2NzOC9w
a2NzOF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2NzOC9wa2NzOF90ZXN0LmNjCmluZGV4IGRmMjc1
ZmI4YzVjYzBiYWY5ZjFlM2U3ZDQ4NzVmNWRmMDNiMWU4ZmMuLmJlYjUzMmY0ZWI4NDM5OTA4MTFl
YmIyOTk5NGE2MGFmYmMzNmEzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcGtjczgvcGtjczhf
dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3BrY3M4L3BrY3M4X3Rlc3QuY2MKQEAgLTIyLDE0ICsy
MiwxNSBAQAogI2luY2x1ZGUgIi4uL2ludGVybmFsLmgiCiAKIAotLy8ga0RFUiBpcyBhIFBLQ1Mj
OCBlbmNyeXB0ZWQgcHJpdmF0ZSBrZXkuIEl0IHdhcyBnZW5lcmF0ZWQgd2l0aDoKKy8vIGtFbmNy
eXB0ZWRQQkVTMldpdGhERVNBbmRTSEExIGlzIGEgUEtDUyM4IGVuY3J5cHRlZCBwcml2YXRlIGtl
eSB1c2luZyBQQkVTMgorLy8gd2l0aCBERVMtRURFMy1DQkMgYW5kIEhNQUMtU0hBLTEuIEl0IHdh
cyBnZW5lcmF0ZWQgd2l0aDoKIC8vCiAvLyBvcGVuc3NsIGdlbnJzYSA1MTIgPiB0ZXN0LmtleQot
Ly8gb3BlbnNzbCBwa2NzOCAtdG9wazggLWluIHRlc3Qua2V5IC1vdXQgdGVzdC5rZXkuZW5jcnlw
dGVkIC12MiBkZXMzIC1vdXRmb3JtIGRlcgorLy8gb3BlbnNzbCBwa2NzOCAtdG9wazggLWluIHRl
c3Qua2V5IC1vdXQgdGVzdC5rZXkuZW5jcnlwdGVkIC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNI
QTEgLW91dGZvcm0gZGVyCiAvLyBoZXhkdW1wIC1DdiB0ZXN0LmtleS5lbmNyeXB0ZWQKIC8vCiAv
LyBUaGUgcGFzc3dvcmQgaXMgInRlc3RpbmciLgotc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0RFUltd
ID0geworc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0VuY3J5cHRlZFBCRVMyV2l0aERFU0FuZFNIQTFb
XSA9IHsKICAgMHgzMCwgMHg4MiwgMHgwMSwgMHg5ZSwgMHgzMCwgMHg0MCwgMHgwNiwgMHgwOSwg
MHgyYSwgMHg4NiwgMHg0OCwgMHg4NiwgMHhmNywgMHgwZCwgMHgwMSwgMHgwNSwKICAgMHgwZCwg
MHgzMCwgMHgzMywgMHgzMCwgMHgxYiwgMHgwNiwgMHgwOSwgMHgyYSwgMHg4NiwgMHg0OCwgMHg4
NiwgMHhmNywgMHgwZCwgMHgwMSwgMHgwNSwgMHgwYywKICAgMHgzMCwgMHgwZSwgMHgwNCwgMHgw
OCwgMHgwNiwgMHhhNSwgMHg0YiwgMHgwYywgMHgwYywgMHg1MCwgMHg4YywgMHgxOSwgMHgwMiwg
MHgwMiwgMHgwOCwgMHgwMCwKQEAgLTU5LDYgKzYwLDU1IEBAIHN0YXRpYyBjb25zdCB1aW50OF90
IGtERVJbXSA9IHsKICAgMHhkNiwgMHgyZCwKIH07CiAKKy8vIGtFbmNyeXB0ZWRQQkVTMldpdGhB
RVNBbmRTSEEyNTYgaXMgYSBQS0NTIzggZW5jcnlwdGVkIHByaXZhdGUga2V5IHVzaW5nIFBCRVMy
CisvLyB3aXRoIEFFUy0xMjgtQ0JDIGFuZCBITUFDLVNIQS0yNTYuIEl0IHdhcyBnZW5lcmF0ZWQg
d2l0aDoKKy8vCisvLyBvcGVuc3NsIGdlbnJzYSA1MTIgPiB0ZXN0LmtleQorLy8gb3BlbnNzbCBw
a2NzOCAtdG9wazggLWluIHRlc3Qua2V5IC1vdXQgdGVzdC5rZXkuZW5jcnlwdGVkIC12MiBhZXMt
MTI4LWNiYyAtdjJwcmYgaG1hY1dpdGhTSEEyNTYgLW91dGZvcm0gZGVyCisvLyBoZXhkdW1wIC1D
diB0ZXN0LmtleS5lbmNyeXB0ZWQKKy8vCisvLyBUaGUgcGFzc3dvcmQgaXMgInRlc3RpbmciLgor
c3RhdGljIGNvbnN0IHVpbnQ4X3Qga0VuY3J5cHRlZFBCRVMyV2l0aEFFU0FuZFNIQTI1NltdID0g
eworICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4YmQsIDB4MzAsIDB4NTcsIDB4MDYsIDB4MDksIDB4
MmEsIDB4ODYsIDB4NDgsIDB4ODYsCisgICAgMHhmNywgMHgwZCwgMHgwMSwgMHgwNSwgMHgwZCwg
MHgzMCwgMHg0YSwgMHgzMCwgMHgyOSwgMHgwNiwgMHgwOSwgMHgyYSwKKyAgICAweDg2LCAweDQ4
LCAweDg2LCAweGY3LCAweDBkLCAweDAxLCAweDA1LCAweDBjLCAweDMwLCAweDFjLCAweDA0LCAw
eDA4LAorICAgIDB4ZDAsIDB4MzksIDB4YjcsIDB4NmQsIDB4ZDAsIDB4ZmYsIDB4ODUsIDB4YTgs
IDB4MDIsIDB4MDIsIDB4MDgsIDB4MDAsCisgICAgMHgzMCwgMHgwYywgMHgwNiwgMHgwOCwgMHgy
YSwgMHg4NiwgMHg0OCwgMHg4NiwgMHhmNywgMHgwZCwgMHgwMiwgMHgwOSwKKyAgICAweDA1LCAw
eDAwLCAweDMwLCAweDFkLCAweDA2LCAweDA5LCAweDYwLCAweDg2LCAweDQ4LCAweDAxLCAweDY1
LCAweDAzLAorICAgIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MTAsIDB4OTUsIDB4YzYsIDB4
NDksIDB4YzEsIDB4NjEsIDB4NzAsIDB4NzQsCisgICAgMHgzNiwgMHhmZSwgMHhjMCwgMHg5OCwg
MHgxOSwgMHgyNiwgMHgzMiwgMHg5ZSwgMHgxYSwgMHgwNCwgMHg4MiwgMHgwMSwKKyAgICAweDYw
LCAweDg3LCAweGUzLCAweDRkLCAweGZmLCAweDMzLCAweDJiLCAweDI1LCAweDA3LCAweDVmLCAw
eDk5LCAweDI0LAorICAgIDB4NzAsIDB4NDAsIDB4MjksIDB4YjQsIDB4YWEsIDB4Y2UsIDB4ZGQs
IDB4OTMsIDB4NjAsIDB4NWMsIDB4NjUsIDB4ZWMsCisgICAgMHhiYSwgMHhlZSwgMHhmOCwgMHg1
ZSwgMHhjNywgMHg4ZiwgMHgzZSwgMHg0OSwgMHgwMCwgMHhkZiwgMHhhNywgMHhiMiwKKyAgICAw
eGJiLCAweGE3LCAweGY3LCAweDc0LCAweDU2LCAweGUwLCAweGViLCAweDMzLCAweGUyLCAweDMw
LCAweDYwLCAweDNiLAorICAgIDB4ZDMsIDB4MzQsIDB4N2IsIDB4YjAsIDB4NzYsIDB4YzAsIDB4
ZWQsIDB4YTIsIDB4N2QsIDB4NTEsIDB4OTksIDB4NGQsCisgICAgMHg1MiwgMHgxYywgMHg5ZSwg
MHhkNywgMHgyOCwgMHg1OCwgMHgzMiwgMHhjZiwgMHg1NSwgMHhmMCwgMHgxOSwgMHg4NywKKyAg
ICAweDVlLCAweDY2LCAweDY5LCAweDAwLCAweDc1LCAweGQ3LCAweDY4LCAweDk4LCAweDY0LCAw
eDZhLCAweDFlLCAweDhjLAorICAgIDB4ZWYsIDB4N2IsIDB4YmMsIDB4OWUsIDB4ZWQsIDB4YWYs
IDB4NjcsIDB4Y2YsIDB4YzQsIDB4NmMsIDB4NDAsIDB4OGEsCisgICAgMHgyMywgMHg3MywgMHhl
NiwgMHg3OSwgMHg1ZiwgMHg3YSwgMHgxNSwgMHg1MywgMHgyYywgMHg3MCwgMHgzYiwgMHg2OSwK
KyAgICAweGJhLCAweDNkLCAweGZiLCAweDZlLCAweGI5LCAweDI3LCAweDc4LCAweDliLCAweGMz
LCAweDRiLCAweGI4LCAweGUzLAorICAgIDB4ZTcsIDB4MzEsIDB4ODIsIDB4NDMsIDB4ZWUsIDB4
ODEsIDB4NWIsIDB4MDEsIDB4M2IsIDB4N2UsIDB4MjMsIDB4YjEsCisgICAgMHhjYywgMHgyMCwg
MHhjOSwgMHhlMCwgMHhjYSwgMHg5ZCwgMHhhYSwgMHg5YywgMHhlOSwgMHg0NywgMHg5NiwgMHgw
ZCwKKyAgICAweGM0LCAweDFlLCAweDFiLCAweDFmLCAweGIxLCAweGVlLCAweDJiLCAweDk5LCAw
eGFmLCAweDJhLCAweGI0LCAweDlmLAorICAgIDB4MjksIDB4YjUsIDB4OWIsIDB4ODMsIDB4NWUs
IDB4ZTUsIDB4N2UsIDB4ZjcsIDB4ZjcsIDB4NTgsIDB4MzEsIDB4NTQsCisgICAgMHhmNiwgMHgy
OSwgMHg2YiwgMHhmYywgMHg4NSwgMHgxZCwgMHg4YSwgMHg1ZiwgMHgyMiwgMHgwMywgMHhlZCwg
MHhjZSwKKyAgICAweDA2LCAweDViLCAweDkzLCAweDU3LCAweDIzLCAweDRlLCAweDBlLCAweDVi
LCAweGY4LCAweDI5LCAweDI5LCAweDdjLAorICAgIDB4MmQsIDB4NGEsIDB4YzYsIDB4OWEsIDB4
OTcsIDB4NjQsIDB4NGMsIDB4MTUsIDB4NzIsIDB4ZWUsIDB4YWEsIDB4ZDksCisgICAgMHhlZCwg
MHhmZCwgMHg4ZiwgMHhhMiwgMHgzNiwgMHhmNSwgMHhmOCwgMHhlNywgMHhmNywgMHhmZSwgMHg2
NywgMHg0YiwKKyAgICAweGJlLCAweDg1LCAweGUzLCAweGRhLCAweDNhLCAweGNjLCAweDVmLCAw
eDE3LCAweGJlLCAweGE2LCAweDFhLCAweDM4LAorICAgIDB4ZWQsIDB4ODUsIDB4NGEsIDB4ZDYs
IDB4MDUsIDB4NGIsIDB4NWYsIDB4NTQsIDB4MGUsIDB4ZmQsIDB4ZGMsIDB4MzIsCisgICAgMHg5
YSwgMHgwZCwgMHhjYSwgMHhlYywgMHgwMiwgMHgzZiwgMHg3OCwgMHgyMywgMHg2ZSwgMHg2YSwg
MHhmYSwgMHgyYywKKyAgICAweDA0LCAweDg2LCAweGM4LCAweDc0LCAweGE2LCAweGY3LCAweDJm
LCAweDFhLCAweGYxLCAweDFhLCAweDUxLCAweDA5LAorICAgIDB4MmIsIDB4MDQsIDB4ZGMsIDB4
NTMsIDB4YWYsIDB4MzksIDB4ODUsIDB4MzUsIDB4ODEsIDB4YzMsIDB4MTEsIDB4ZjAsCisgICAg
MHg3ZCwgMHhiNywgMHhiMywgMHg3NywgMHgwZSwgMHg4ZSwgMHgyMiwgMHhkYSwgMHgxZiwgMHhi
MCwgMHgzZCwgMHg1OSwKKyAgICAweGNhLCAweGE5LCAweDcwLCAweGMzLCAweDMzLCAweDY2LCAw
eGNiLCAweDgxLCAweGZjLCAweDg1LCAweDJhLCAweGYwLAorICAgIDB4YmMsIDB4ZDAsIDB4MzAs
IDB4ODUsIDB4MWIsIDB4ZTYsIDB4OWIsIDB4NzYsIDB4ODgsIDB4Y2EsIDB4ZjEsIDB4ZjUsCisg
ICAgMHhjOCwgMHgxOSwgMHg4YSwgMHg2MiwgMHgxNiwgMHg3YiwgMHgwMSwgMHhjMSwgMHgxZCwg
MHg4MCwgMHhjMCwgMHhmNywKKyAgICAweGMyLCAweDBiLCAweGUzLCAweGJmLCAweDgzLCAweDlh
LCAweDNjLCAweGMwLCAweDBmLCAweDVlLCAweGVhLCAweGY3LAorICAgIDB4YjIsIDB4NGMsIDB4
Y2QsIDB4NWUsIDB4ZjAsIDB4YWQsIDB4YTUsIDB4OTgsIDB4MjUsIDB4NjIsIDB4NjksIDB4YmEs
CisgICAgMHhkNywgMHhhYiwgMHg3OCwgMHg1OSwgMHhkMCwKK307CisKIC8vIGtOdWxsUGFzc3dv
cmQgaXMgYSBQS0NTIzggZW5jcnlwdGVkIHByaXZhdGUga2V5IHVzaW5nIHRoZSBudWxsIHBhc3N3
b3JkLgogc3RhdGljIGNvbnN0IHVpbnQ4X3Qga051bGxQYXNzd29yZFtdID0gewogICAgIDB4MzAs
IDB4ODEsIDB4YjAsIDB4MzAsIDB4MWIsIDB4MDYsIDB4MGEsIDB4MmEsIDB4ODYsIDB4NDgsIDB4
ODYsIDB4ZjcsCkBAIC0yMTgsNyArMjY4LDEwIEBAIHN0YXRpYyB2b2lkIFRlc3RSb3VuZFRyaXAo
aW50IHBiZV9uaWQsIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlciwKIH0KIAogVEVTVChQS0NTOFRl
c3QsIERlY3J5cHRTdHJpbmcpIHsKLSAgVGVzdERlY3J5cHQoa0RFUiwgc2l6ZW9mKGtERVIpLCAi
dGVzdGluZyIpOworICBUZXN0RGVjcnlwdChrRW5jcnlwdGVkUEJFUzJXaXRoREVTQW5kU0hBMSwK
KyAgICAgICAgICAgICAgc2l6ZW9mKGtFbmNyeXB0ZWRQQkVTMldpdGhERVNBbmRTSEExKSwgInRl
c3RpbmciKTsKKyAgVGVzdERlY3J5cHQoa0VuY3J5cHRlZFBCRVMyV2l0aEFFU0FuZFNIQTI1NiwK
KyAgICAgICAgICAgICAgc2l6ZW9mKGtFbmNyeXB0ZWRQQkVTMldpdGhBRVNBbmRTSEEyNTYpLCAi
dGVzdGluZyIpOwogfQogCiBURVNUKFBLQ1M4VGVzdCwgRGVjcnlwdE51bGwpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vcGtjczgvcGtjczhfeDUwOS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2NzOC9wa2Nz
OF94NTA5LmMKaW5kZXggMmM3ODQxZWUwNWFjMmYyY2UwMjIzMDM3YWM4YzFmZjE1YWY0N2IzZi4u
NDQ1OGI1NmZiYmEzZjliOGI1ZDJlNGU5ODYzNTZhMDJmMDFkYmRlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9wa2NzOC9wa2NzOF94NTA5LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9wa2NzOC9wa2NzOF94
NTA5LmMKQEAgLTI5Myw2ICsyOTMsMTAgQEAgZXJyOgogICByZXR1cm4gcmV0OwogfQogCisvLyAx
LjIuODQwLjExMzU0OS4xLjEyLjEwLjEuMQorc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0tleUJhZ1td
ID0gezB4MmEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMSwgMHgwYywgMHgwYSwgMHgwMSwgMHgwMX07CisKIC8vIDEu
Mi44NDAuMTEzNTQ5LjEuMTIuMTAuMS4yCiBzdGF0aWMgY29uc3QgdWludDhfdCBrUEtDUzhTaHJv
dWRlZEtleUJhZ1tdID0gewogICAgIDB4MmEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4ZjcsIDB4MGQs
IDB4MDEsIDB4MGMsIDB4MGEsIDB4MDEsIDB4MDJ9OwpAQCAtMzkyLDE2ICszOTYsMjAgQEAgc3Rh
dGljIGludCBQS0NTMTJfaGFuZGxlX3NhZmVfYmFnKENCUyAqc2FmZV9iYWcsIHN0cnVjdCBwa2Nz
MTJfY29udGV4dCAqY3R4KSB7CiAgICAgcmV0dXJuIDA7CiAgIH0KIAotICBpZiAoQ0JTX21lbV9l
cXVhbCgmYmFnX2lkLCBrUEtDUzhTaHJvdWRlZEtleUJhZywKLSAgICAgICAgICAgICAgICAgICAg
c2l6ZW9mKGtQS0NTOFNocm91ZGVkS2V5QmFnKSkpIHsKLSAgICAvLyBTZWUgUkZDIDcyOTIsIHNl
Y3Rpb24gNC4yLjIuCisgIGNvbnN0IGludCBpc19rZXlfYmFnID0gQ0JTX21lbV9lcXVhbCgmYmFn
X2lkLCBrS2V5QmFnLCBzaXplb2Yoa0tleUJhZykpOworICBjb25zdCBpbnQgaXNfc2hyb3VkZWRf
a2V5X2JhZyA9IENCU19tZW1fZXF1YWwoJmJhZ19pZCwga1BLQ1M4U2hyb3VkZWRLZXlCYWcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa1BL
Q1M4U2hyb3VkZWRLZXlCYWcpKTsKKyAgaWYgKGlzX2tleV9iYWcgfHwgaXNfc2hyb3VkZWRfa2V5
X2JhZykgeworICAgIC8vIFNlZSBSRkMgNzI5Miwgc2VjdGlvbiA0LjIuMSBhbmQgNC4yLjIuCiAg
ICAgaWYgKCpjdHgtPm91dF9rZXkpIHsKICAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFBLQ1M4LCBQ
S0NTOF9SX01VTFRJUExFX1BSSVZBVEVfS0VZU19JTl9QS0NTMTIpOwogICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCi0gICAgRVZQX1BLRVkgKnBrZXkgPSBQS0NTOF9wYXJzZV9lbmNyeXB0ZWRfcHJp
dmF0ZV9rZXkoCi0gICAgICAgICZ3cmFwcGVkX3ZhbHVlLCBjdHgtPnBhc3N3b3JkLCBjdHgtPnBh
c3N3b3JkX2xlbik7CisgICAgRVZQX1BLRVkgKnBrZXkgPQorICAgICAgICBpc19rZXlfYmFnID8g
RVZQX3BhcnNlX3ByaXZhdGVfa2V5KCZ3cmFwcGVkX3ZhbHVlKQorICAgICAgICAgICAgICAgICAg
IDogUEtDUzhfcGFyc2VfZW5jcnlwdGVkX3ByaXZhdGVfa2V5KAorICAgICAgICAgICAgICAgICAg
ICAgICAgICZ3cmFwcGVkX3ZhbHVlLCBjdHgtPnBhc3N3b3JkLCBjdHgtPnBhc3N3b3JkX2xlbik7
CiAgICAgaWYgKHBrZXkgPT0gTlVMTCkgewogICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtOTAy
LDkgKzkxMCwyNSBAQCBpbnQgUEtDUzEyX3BhcnNlKGNvbnN0IFBLQ1MxMiAqcDEyLCBjb25zdCBj
aGFyICpwYXNzd29yZCwgRVZQX1BLRVkgKipvdXRfcGtleSwKICAgICByZXR1cm4gMDsKICAgfQog
CisgIC8vIE9wZW5TU0wgc2VsZWN0cyB0aGUgbGFzdCBjZXJ0aWZpY2F0ZSB3aGljaCBtYXRjaGVz
IHRoZSBwcml2YXRlIGtleSBhcworICAvLyB8b3V0X2NlcnR8LgorICAvLworICAvLyBUT0RPKGRh
dmlkYmVuKTogT3BlblNTTCBhZGRpdGlvbmFsbHkgcmV2ZXJzZXMgdGhlIG9yZGVyIG9mIHRoZQor
ICAvLyBjZXJ0aWZpY2F0ZXMsIHdoaWNoIHdhcyBsaWtlbHkgb3JpZ2luYWxseSBhIGJ1ZywgYnV0
IG1heSBiZSBhIGZlYXR1cmUgYnkKKyAgLy8gbm93LiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vYm9y
aW5nc3NsLzI1MCBhbmQKKyAgLy8gaHR0cHM6Ly9naXRodWIuY29tL29wZW5zc2wvb3BlbnNzbC9p
c3N1ZXMvNjY5OC4KICAgKm91dF9jZXJ0ID0gTlVMTDsKLSAgaWYgKHNrX1g1MDlfbnVtKGNhX2Nl
cnRzKSA+IDApIHsKLSAgICAqb3V0X2NlcnQgPSBza19YNTA5X3NoaWZ0KGNhX2NlcnRzKTsKKyAg
c2l6ZV90IG51bV9jZXJ0cyA9IHNrX1g1MDlfbnVtKGNhX2NlcnRzKTsKKyAgaWYgKCpvdXRfcGtl
eSAhPSBOVUxMICYmIG51bV9jZXJ0cyA+IDApIHsKKyAgICBmb3IgKHNpemVfdCBpID0gbnVtX2Nl
cnRzIC0gMTsgaSA8IG51bV9jZXJ0czsgaS0tKSB7CisgICAgICBYNTA5ICpjZXJ0ID0gc2tfWDUw
OV92YWx1ZShjYV9jZXJ0cywgaSk7CisgICAgICBpZiAoWDUwOV9jaGVja19wcml2YXRlX2tleShj
ZXJ0LCAqb3V0X3BrZXkpKSB7CisgICAgICAgICpvdXRfY2VydCA9IGNlcnQ7CisgICAgICAgIHNr
X1g1MDlfZGVsZXRlKGNhX2NlcnRzLCBpKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAg
ICBFUlJfY2xlYXJfZXJyb3IoKTsKKyAgICB9CiAgIH0KIAogICBpZiAob3V0X2NhX2NlcnRzKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Bvb2wvaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcG9v
bC9pbnRlcm5hbC5oCmluZGV4IDViMjg4ZWJiZDE4OGZiZjZiN2UzZjI4ZWU2ZDFjMDRhM2ViZDE0
N2UuLmVkOTFkZTYxMzM4OTZjZGU0ZDA2ZGNkY2RiZDIxZjEwMjUwOGI0ZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vcG9vbC9pbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcG9vbC9pbnRlcm5h
bC5oCkBAIC0yMyw3ICsyMyw3IEBAIGV4dGVybiAiQyIgewogI2VuZGlmCiAKIAotREVDTEFSRV9M
SEFTSF9PRihDUllQVE9fQlVGRkVSKTsKK0RFQ0xBUkVfTEhBU0hfT0YoQ1JZUFRPX0JVRkZFUikK
IAogc3RydWN0IGNyeXB0b19idWZmZXJfc3QgewogICBDUllQVE9fQlVGRkVSX1BPT0wgKnBvb2w7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3JhbmRfZXh0cmEvcmFuZF90ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9yYW5kX2V4dHJhL3JhbmRfdGVzdC5jYwppbmRleCA5ZWUzZjI2MDFmZTljNTFjMjU5ZTYy
NzI2NjFlMDE4MjkyYzliMzk5Li45YzY5YjhmNjM4NjNkNGUwODY0ZGUzOTg0Y2FjY2FlMGM3N2Rh
Mzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3JhbmRfZXh0cmEvcmFuZF90ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vcmFuZF9leHRyYS9yYW5kX3Rlc3QuY2MKQEAgLTE0LDEwICsxNCwxNSBAQAog
CiAjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+CiAKKyNpbmNsdWRlIDxzdGRpby5oPgorCiAjaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAorI2luY2x1ZGUgPG9wZW5zc2wvY3B1Lmg+CiAjaW5jbHVk
ZSA8b3BlbnNzbC9zcGFuLmg+CiAKKyNpbmNsdWRlICIuLi9maXBzbW9kdWxlL3JhbmQvaW50ZXJu
YWwuaCIKKyNpbmNsdWRlICIuLi90ZXN0L2FiaV90ZXN0LmgiCiAjaW5jbHVkZSAiLi4vdGVzdC90
ZXN0X3V0aWwuaCIKIAogI2lmIGRlZmluZWQoT1BFTlNTTF9USFJFQURTKQpAQCAtMjgsNyArMzMs
NiBAQAogCiAjaWYgIWRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQogI2luY2x1ZGUgPGVycm5vLmg+
Ci0jaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxz
eXMvd2FpdC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgpAQCAtMTgzLDQgKzE4NywyMSBAQCBURVNU
KFJhbmRUZXN0LCBUaHJlYWRzKSB7CiAgIC8vIERyYXcgZW50cm9weSBpbiBwYXJhbGxlbCB3aXRo
IGxvd2VyIGNvbmN1cnJlbmN5IHRoYW4gdGhlIHByZXZpb3VzIG1heGltdW0uCiAgIFJ1bkNvbmN1
cnJlbnRSYW5kcyhrRmV3ZXJUaHJlYWRzKTsKIH0KLSNlbmRpZgorI2VuZGlmICAvLyBPUEVOU1NM
X1RIUkVBRFMKKworI2lmIGRlZmluZWQoT1BFTlNTTF9YODZfNjQpICYmIGRlZmluZWQoU1VQUE9S
VFNfQUJJX1RFU1QpCitURVNUKFJhbmRUZXN0LCBSZHJhbmRBQkkpIHsKKyAgaWYgKCFoYXZlX3Jk
cmFuZCgpKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJyZHJhbmQgbm90IHN1cHBvcnRlZC4gU2tp
cHBpbmcuXG4iKTsKKyAgICByZXR1cm47CisgIH0KKworICB1aW50OF90IGJ1ZlszMl07CisgIENI
RUNLX0FCSV9TRUgoQ1JZUFRPX3JkcmFuZCwgYnVmKTsKKyAgQ0hFQ0tfQUJJX1NFSChDUllQVE9f
cmRyYW5kX211bHRpcGxlOF9idWYsIG51bGxwdHIsIDApOworICBDSEVDS19BQklfU0VIKENSWVBU
T19yZHJhbmRfbXVsdGlwbGU4X2J1ZiwgYnVmLCA4KTsKKyAgQ0hFQ0tfQUJJX1NFSChDUllQVE9f
cmRyYW5kX211bHRpcGxlOF9idWYsIGJ1ZiwgMTYpOworICBDSEVDS19BQklfU0VIKENSWVBUT19y
ZHJhbmRfbXVsdGlwbGU4X2J1ZiwgYnVmLCAyNCk7CisgIENIRUNLX0FCSV9TRUgoQ1JZUFRPX3Jk
cmFuZF9tdWx0aXBsZThfYnVmLCBidWYsIDMyKTsKK30KKyNlbmRpZiAgLy8gT1BFTlNTTF9YODZf
NjQgJiYgU1VQUE9SVFNfQUJJX1RFU1QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vcnNhX2V4dHJh
L3JzYV90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9yc2FfZXh0cmEvcnNhX3Rlc3QuY2MKaW5kZXggOWJk
NDdiMWI1ZmRmYzI4OGU2YzA2NjQ5NDMwOTA3ODg3ODhjZDViYi4uZWQxNjMwZDliZjNkYWYxNTY5
MmMwMzYxMDU0NDMxNWZmNTY0YjY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9yc2FfZXh0cmEv
cnNhX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9yc2FfZXh0cmEvcnNhX3Rlc3QuY2MKQEAgLTQ2
MSw3ICs0NjEsOCBAQCBURVNUX1AoUlNBRW5jcnlwdFRlc3QsIFRlc3RLZXkpIHsKICAgfQogfQog
Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUCgsIFJTQUVuY3J5cHRUZXN0LCB0ZXN0aW5nOjpWYWx1
ZXNJbihrUlNBRW5jcnlwdFBhcmFtcykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKCwgUlNB
RW5jcnlwdFRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzSW4o
a1JTQUVuY3J5cHRQYXJhbXMpKTsKIAogVEVTVChSU0FUZXN0LCBUZXN0RGVjcnlwdCkgewogICBi
c3NsOjpVbmlxdWVQdHI8UlNBPiByc2EoCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3NlbGZfdGVz
dC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8vc2VsZl90ZXN0LmNjCmluZGV4IGMyMGI1ZGVmNzMwMDUyYWVlOGZl
OTlkMzExNTZhNjdlNDk0MmM0YmUuLmIwYzc2OWQ0YzEzNTk2MTdjNDFiYTE0MmYwYzU4ZTQwZjE0
Y2NlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vc2VsZl90ZXN0LmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlw
dG8vc2VsZl90ZXN0LmNjCkBAIC0xOSw2ICsxOSw3IEBACiAKIFRFU1QoU2VsZlRlc3RzLCBLQVQp
IHsKICNpZiAhZGVmaW5lZChfTVNDX1ZFUikKLSAgRVhQRUNUX1RSVUUoQk9SSU5HU1NMX3NlbGZf
dGVzdCgpKTsKKyAgY29uc3QgdWludDhfdCB6ZXJvX2hhc2hbU0hBNTEyX0RJR0VTVF9MRU5HVEhd
ID0gezB9OworICBFWFBFQ1RfVFJVRShCT1JJTkdTU0xfc2VsZl90ZXN0KHplcm9faGFzaCkpOwog
I2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3NpcGhhc2gvc2lwaGFzaC5jIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by9zaXBoYXNoL3NpcGhhc2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTRlOWM1MjRkOTUyYWRjZTY2
MjNjNmQ3MWQyODgyODUyNTc4NGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9zaXBo
YXNoL3NpcGhhc2guYwpAQCAtMCwwICsxLDgwIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTksIEdv
b2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29y
IGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0
aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwg
Y29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUg
QVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBT
T0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9T
UyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENP
TlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQg
T0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRI
SVMgU09GVFdBUkUuICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdHJpbmcu
aD4KKworI2luY2x1ZGUgPG9wZW5zc2wvc2lwaGFzaC5oPgorCisKK3N0YXRpYyB2b2lkIHNpcGhh
c2hfcm91bmQodWludDY0X3Qgdls0XSkgeworICB2WzBdICs9IHZbMV07CisgIHZbMl0gKz0gdlsz
XTsKKyAgdlsxXSA9ICh2WzFdIDw8IDEzKSB8ICh2WzFdID4+ICg2NCAtIDEzKSk7CisgIHZbM10g
PSAodlszXSA8PCAxNikgfCAodlszXSA+PiAoNjQgLSAxNikpOworICB2WzFdIF49IHZbMF07Cisg
IHZbM10gXj0gdlsyXTsKKyAgdlswXSA9ICh2WzBdIDw8IDMyKSB8ICh2WzBdID4+IDMyKTsKKyAg
dlsyXSArPSB2WzFdOworICB2WzBdICs9IHZbM107CisgIHZbMV0gPSAodlsxXSA8PCAxNykgfCAo
dlsxXSA+PiAoNjQgLSAxNykpOworICB2WzNdID0gKHZbM10gPDwgMjEpIHwgKHZbM10gPj4gKDY0
IC0gMjEpKTsKKyAgdlsxXSBePSB2WzJdOworICB2WzNdIF49IHZbMF07CisgIHZbMl0gPSAodlsy
XSA8PCAzMikgfCAodlsyXSA+PiAzMik7Cit9CisKK3VpbnQ2NF90IFNJUEhBU0hfMjQoY29uc3Qg
dWludDY0X3Qga2V5WzJdLCBjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IGlucHV0X2xlbikgeworICBjb25zdCBzaXplX3Qgb3JpZ19pbnB1dF9sZW4gPSBp
bnB1dF9sZW47CisKKyAgdWludDY0X3Qgdls0XTsKKyAgdlswXSA9IGtleVswXSBeIFVJTlQ2NF9D
KDB4NzM2ZjZkNjU3MDczNjU3NSk7CisgIHZbMV0gPSBrZXlbMV0gXiBVSU5UNjRfQygweDY0NmY3
MjYxNmU2NDZmNmQpOworICB2WzJdID0ga2V5WzBdIF4gVUlOVDY0X0MoMHg2Yzc5Njc2NTZlNjU3
MjYxKTsKKyAgdlszXSA9IGtleVsxXSBeIFVJTlQ2NF9DKDB4NzQ2NTY0NjI3OTc0NjU3Myk7CisK
KyAgd2hpbGUgKGlucHV0X2xlbiA+PSBzaXplb2YodWludDY0X3QpKSB7CisgICAgdWludDY0X3Qg
bTsKKyAgICBtZW1jcHkoJm0sIGlucHV0LCBzaXplb2YobSkpOworICAgIHZbM10gXj0gbTsKKyAg
ICBzaXBoYXNoX3JvdW5kKHYpOworICAgIHNpcGhhc2hfcm91bmQodik7CisgICAgdlswXSBePSBt
OworCisgICAgaW5wdXQgKz0gc2l6ZW9mKHVpbnQ2NF90KTsKKyAgICBpbnB1dF9sZW4gLT0gc2l6
ZW9mKHVpbnQ2NF90KTsKKyAgfQorCisgIHVuaW9uIHsKKyAgICB1aW50OF90IGJ5dGVzWzhdOwor
ICAgIHVpbnQ2NF90IHdvcmQ7CisgIH0gbGFzdF9ibG9jazsKKyAgbGFzdF9ibG9jay53b3JkID0g
MDsKKyAgbWVtY3B5KGxhc3RfYmxvY2suYnl0ZXMsIGlucHV0LCBpbnB1dF9sZW4pOworICBsYXN0
X2Jsb2NrLmJ5dGVzWzddID0gb3JpZ19pbnB1dF9sZW4gJiAweGZmOworCisgIHZbM10gXj0gbGFz
dF9ibG9jay53b3JkOworICBzaXBoYXNoX3JvdW5kKHYpOworICBzaXBoYXNoX3JvdW5kKHYpOwor
ICB2WzBdIF49IGxhc3RfYmxvY2sud29yZDsKKworICB2WzJdIF49IDB4ZmY7CisgIHNpcGhhc2hf
cm91bmQodik7CisgIHNpcGhhc2hfcm91bmQodik7CisgIHNpcGhhc2hfcm91bmQodik7CisgIHNp
cGhhc2hfcm91bmQodik7CisKKyAgcmV0dXJuIHZbMF0gXiB2WzFdIF4gdlsyXSBeIHZbM107Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3NpcGhhc2gvc2lwaGFzaF90ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by9zaXBoYXNoL3NpcGhhc2hfdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDhmOWU3YTVhM2FjNjI4
ZDJhOGE3YWRjNDRmYmMwYjViYTYyM2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by9z
aXBoYXNoL3NpcGhhc2hfdGVzdC5jYwpAQCAtMCwwICsxLDU5IEBACisvKiBDb3B5cmlnaHQgKGMp
IDIwMTksIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlm
eSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdp
dGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVh
ciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi
IEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQg
VE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICog
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5H
IEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04K
KyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJ
U0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1B
TkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1
ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlIDxvcGVuc3NsL3NpcGhhc2guaD4KKworI2lu
Y2x1ZGUgIi4uL3Rlc3QvZmlsZV90ZXN0LmgiCisjaW5jbHVkZSAiLi4vdGVzdC90ZXN0X3V0aWwu
aCIKKworVEVTVChTaXBIYXNoLCBCYXNpYykgeworICAvLyBUaGlzIGlzIHRoZSBleGFtcGxlIGZy
b20gYXBwZW5kaXggQSBvZiB0aGUgU2lwSGFzaCBwYXBlci4KKyAgdW5pb24geworICAgIHVpbnQ4
X3QgYnl0ZXNbMTZdOworICAgIHVpbnQ2NF90IHdvcmRzWzJdOworICB9IGtleTsKKworICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgMTY7IGkrKykgeworICAgIGtleS5ieXRlc1tpXSA9IGk7Cisg
IH0KKworICB1aW50OF90IGlucHV0WzE1XTsKKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNp
emVvZihpbnB1dCk7IGkrKykgeworICAgIGlucHV0W2ldID0gaTsKKyAgfQorCisgIEVYUEVDVF9F
UShVSU5UNjRfQygweGExMjljYTYxNDliZTQ1ZTUpLAorICAgICAgICAgICAgU0lQSEFTSF8yNChr
ZXkud29yZHMsIGlucHV0LCBzaXplb2YoaW5wdXQpKSk7Cit9CisKK1RFU1QoU2lwSGFzaCwgVmVj
dG9ycykgeworICBGaWxlVGVzdEdUZXN0KCJjcnlwdG8vc2lwaGFzaC9zaXBoYXNoX3Rlc3RzLnR4
dCIsIFtdKEZpbGVUZXN0ICp0KSB7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4ga2V5LCBtc2cs
IGhhc2g7CisgICAgQVNTRVJUX1RSVUUodC0+R2V0Qnl0ZXMoJmtleSwgIktFWSIpKTsKKyAgICBB
U1NFUlRfVFJVRSh0LT5HZXRCeXRlcygmbXNnLCAiSU4iKSk7CisgICAgQVNTRVJUX1RSVUUodC0+
R2V0Qnl0ZXMoJmhhc2gsICJIQVNIIikpOworICAgIEFTU0VSVF9FUSgxNnUsIGtleS5zaXplKCkp
OworICAgIEFTU0VSVF9FUSg4dSwgaGFzaC5zaXplKCkpOworCisgICAgdWludDY0X3Qga2V5X3dv
cmRzWzJdOworICAgIG1lbWNweShrZXlfd29yZHMsIGtleS5kYXRhKCksIGtleS5zaXplKCkpOwor
ICAgIHVpbnQ2NF90IHJlc3VsdCA9IFNJUEhBU0hfMjQoa2V5X3dvcmRzLCBtc2cuZGF0YSgpLCBt
c2cuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoQnl0ZXMocmVpbnRlcnByZXRfY2FzdDx1aW50OF90
ICo+KCZyZXN1bHQpLCBzaXplb2YocmVzdWx0KSksCisgICAgICAgICAgICAgIEJ5dGVzKGhhc2gp
KTsKKyAgfSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3NpcGhhc2gvc2lwaGFzaF90ZXN0
cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL3NpcGhhc2gvc2lwaGFzaF90ZXN0cy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2U0NWMzMDIxNmZjOGQxM2FiN2E2YzQxZTk2OWU1ODI3MzhkOGRkNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9jcnlwdG8vc2lwaGFzaC9zaXBoYXNoX3Rlc3RzLnR4dApAQCAtMCwwICsxLDEwODEg
QEAKKyMgUmFuZG9tIHRlc3QgdmVjdG9ycyBnZW5lcmF0ZWQgZnJvbSBhbm90aGVyIGltcGxlbWVu
dGF0aW9uIG9mIFNpcEhhc2gtMi00LgorCitLRVk6IDVhMTc0YzIyYzQ4N2QwYzVjMTE2MWU1NzBk
MTBkMTQ1CitJTjoKK0hBU0g6IDlmMDZhNzZkOGFlN2ZmMDUKKworS0VZOiBkNTY3NDU0NjlhZTQy
NzM0YzJhZDg3ZTdjMTNlYTEwMQorSU46IDNjCitIQVNIOiA5Njk4Y2Q4ZTI2MjAzNjJmCisKK0tF
WTogY2M3Yzc4YWUyNGNhMTA2YzVkNzcxNzQyYjUzMGNiY2UKK0lOOiA2Y2ZiCitIQVNIOiBhOTRj
OGYzNTlhNjAzNGQwCisKK0tFWTogYzhkZTZkMTIwNDYyNzM5YjI5YjI1OTEzZjc1ZjhiZTQKK0lO
OiA4YmZmMTAKK0hBU0g6IDVmMTIzMjk4NjdkZWI1MzAKKworS0VZOiBjNDM1ZDk1YzA2MDg1ZGMy
NjA2MGU0ODhmMDY5MTAxMworSU46IGY1NzU3OTFiCitIQVNIOiAzODgyNGZhMTkzNTgzZTFjCisK
K0tFWTogNWQ1ODUzNjc1YmJlMzdiMDAzNGUwMTljODcwM2JiZWEKK0lOOiAyMGJlNTRkNTgzCitI
QVNIOiA1NTg2ZjVlZDBhNTJkNTYwCisKK0tFWTogNzdmZGMyNDY3Y2I1Y2ZhZGJhNGRjYjAyZjA4
ZDVkZTAKK0lOOiA1OGZmOWQyYWY3MWUKK0hBU0g6IGFjYzJiZjhlYjUzMDhiNWIKKworS0VZOiAz
ZjFhYmM4YTc0NDcwZTY5N2FhZGU3YmI0MDlkOGMzNgorSU46IDJhMGQxMmQ5OWI4YzEwCitIQVNI
OiAyMzQ5OTkyY2JiNjAxZTczCisKK0tFWTogYWQ5Nzc2NDBiNjkwMmRiNWZiMDVjMzViZGU4NWUy
MjEKK0lOOiAzMzZkZGJiYTI1ZmMxNWZkCitIQVNIOiBjN2E2MTBjMDc0M2I3ZjhjCisKK0tFWTog
OWVlYjVmMGNlMTU0NTU5N2M5M2ZjZDIzNmUwMjJkZjkKK0lOOiAxMjM1NjlkMGE1M2Q1Mzk5Y2YK
K0hBU0g6IDdmMjU3MzZmOTYyOTc0Y2UKKworS0VZOiA1NmQ5ZWNkYTYzNDUxMjdhZGJmNzllNGVj
MDg3MTExNgorSU46IGI0NzJmNTY1YzEzNzBhNjIwYzY2CitIQVNIOiAzZjNhY2Y3MmJlODBjYjIw
CisKK0tFWTogNGI1YTY3ZmFkMGI0YzZkZDQxNjU2ZTc5ZTQ3ZTRjY2MKK0lOOiAzMTdlN2VmNjRj
MzljZjExMTIxMmNkCitIQVNIOiA0YzhlZTMzN2M3MTAzYzBiCisKK0tFWTogZTBlMDQzMjJmYjU3
Y2Y0M2ZiNjgwOWEzM2QzOTI1NjUKK0lOOiBhNzgzYWNhNTczY2IwN2U4MjgyOWViNDcKK0hBU0g6
IDNkNWNhMDkwYzY4ZDNhOTQKKworS0VZOiAyODk1YzM4Nzg4ZTA2NDU0MTU4NGYyMjI5MDBhNDVm
YgorSU46IDYzODE4OTRiNzk0N2YzY2RiNmVjYTFlOGM1CitIQVNIOiA4ZWU3NjgyMzIzYmJmMDZi
CisKK0tFWTogYzNhMGI0ZWE3MWQ0ZTgyNDQ1OWFjYWMwYWEyY2FhOWQKK0lOOiA2YTkyNTcwNjVm
OTkxZjM2YmExNzVlYzE3N2I4CitIQVNIOiAwNzhiNzZhYzNkYzg0MGUyCisKK0tFWTogNTZlN2M1
ZGM3YmE5YzM3MDk1MTE3ZDNiNzhiNmJlMGMKK0lOOiBkOWE4NDAyYmM5MzAzYjVhNjdjM2FhMGYx
OTc1YWMKK0hBU0g6IGY1ZmMzMmM1NTkxNWU5ZmYKKworS0VZOiBmZmNkMGNhMzFkYmI0YzBhNjRi
Y2U4M2Q0YTg3NmUyZgorSU46IDRjNTBmY2E2ODhkY2MzNGE2MmJmNzc1NTRhZjIyZmNhCitIQVNI
OiA5ZTI2NmVmZGMyYjU1ZWZhCisKK0tFWTogYTM1OGFjYjQ3NWZlM2E1NDVhYmExNzJlNmEyZTYw
NmIKK0lOOiBlMmU2MDA3YWRhYzk3NjczNmEyMjJhZDJhNjA3ZDRkMTVkCitIQVNIOiBjNGJiNzMx
MmE3ZDM5NDg2CisKK0tFWTogY2M2MTFkMDQzMDY3YTk5Y2I1NTcyYmIwMTIxYmVhYzgKK0lOOiA3
NDI4Y2ZjNWZkNzZmMGZmYzU5YTIxNmIxNDI1NzZkOWVlNWQKK0hBU0g6IDY3ZGM0YWE4YTUyMDY5
ZGYKKworS0VZOiAxOWM0NDEyOGU2MWM5OTJlNjI1YTExODcwMzY1NjZiNQorSU46IGY2YjhmOTQy
MmY2ZWRhNWM3MDk5OTczNzU3MzE0MmJkMGQ1MDNmCitIQVNIOiAzNWQ2MTk5YmI4YjI2NjI3CisK
K0tFWTogY2M2OTBkNjRjYmJkNjc2NmFmMjhkNWU4ODA5ODA0ZTIKK0lOOiA4MGI5ZTE1NzY2ZWNm
MGZkOTg4NjU4NzAxMzI4YTI2NjIyMDUyOGY5CitIQVNIOiA4ZGE0N2Y3ZDJjOGEyNGI5CisKK0tF
WTogZDA5N2MzMjcwN2QxMTEzNThhOGY2NDcwYzRiYmQzYmIKK0lOOiA0YTE3NGVkZjA4NmE1NDA2
ZjM2YWEyMGYxZGM1Zjg1NGRmMjY0ZWMxNTkKK0hBU0g6IDhkYWIwMjcwOTk3OGI2NDcKKworS0VZ
OiA3OWEwNDcwNzFlZGQ3NmNjNjM0Zjk1MTBkZDAxMTNjNworSU46IDI0N2JhNzI0NTViOWE5N2Rh
YmFiNjkwNWIwYTEyMjc2MzVmNzlmM2U1MzBlCitIQVNIOiAxMzY0YzgwNDNmYjliYWFjCisKK0tF
WTogYjMwOTJhY2RkNjAyMzIxNTcwMWFhOWM5OWFlNGUyMTgKK0lOOiBjZTM2Yjc1NTMwMDI3M2My
MjgwNWVlYmRmZTdkYWRiNTlmZmYwYmY4MTY3ZmJhCitIQVNIOiBjOGU1MGYzOWMwNjA1ZWNiCisK
K0tFWTogZGI2YzdjZTc0NmEwNDMxZjgyNjk0MDdmOGMzNWE0Y2QKK0lOOiA0MGRiZWRjMGY0YzM1
MWE2ZmZjMDU4YTJmZjYzNzk0NDE5YjFjMmVjYjQ3NTlmNmQKK0hBU0g6IDlmNDZiZDhmNTNhMDMy
MTcKKworS0VZOiAxMTAzMDEwNzFmNjY3NmZjMmFlNDFhNWNlYTgzYjEwZgorSU46IDc5NDdjN2U1
NWM1ZmUwZmQ1ODRhZGU1YTMwZjhhZjY5Y2ZiY2M0ODI1Y2E0ZTQ1ZmQ4CitIQVNIOiA3MzA1ZTc3
YjBlM2RkOGJiCisKK0tFWTogOTc2YzJlZTQ3NzgzNzY2ZWE4MjM1MDAxZjY1ZDI1NmIKK0lOOiA5
MTJiZTBlZjhlMGU3YmVjZmExNzZlZDQwMDZlZThmMmU3NzEwN2YwMjJlNDIzNTFjYzIwCitIQVNI
OiAyZjA1ZGRjYTUyMWFkY2YxCisKK0tFWTogNThiMWRlNmUzM2ZmZWEyMjhlMTQ0YjRmMjVlNTc2
MmUKK0lOOiAwMmU4Yjg5MzEyNDc5ZjFiMGE2ZGEwZjdmMzVlNmNjYjUwYWRlMzIyZTcwYmEyZjVi
MGEzNTQKK0hBU0g6IGRkMDU0N2U4MGU4NTA1ZTEKKworS0VZOiBiYzU3ZjI4YzhmNDYxZDk3MTRi
NDhjMDg3MTY0YTY5NQorSU46IDk5MGNlYjY0NjI4YmJhZmEzYzBjNGJkYWJmNDY1YTE5ZDA3NWZi
NjY5MThkZDI0MGViZWYxNzZmCitIQVNIOiA3Y2U0OTI4NTNmYzIyZWI4CisKK0tFWTogMTZjMmZm
YzRlMDNkNWYxNzA2NGYyMmZlMDUxMmVlYmMKK0lOOiA0MmU3OGYwMjllYWFhMTQ3NDI2OGQ1MzRk
MTU0MmU2MDE5YWY3YzMxMWI3MGEzYjgwZDg5ZmM4Mzk0CitIQVNIOiA1ODMwYmRiM2Y2Y2RiZjgw
CisKK0tFWTogNTQ2Y2VjNGVjMWNjZGQxZGVjMTZmZmQ2ODRmYmExNjAKK0lOOiAzNmZhOTdlMmQy
MGY5MWE1NjM4OWM4NGQzYzI2NzBjMjVhZmQyZDU1MWRlODkzMGM3MzVmMzBkYzBmOGUKK0hBU0g6
IGNjMjlhZTZhNDAwNTFmYTkKKworS0VZOiBkYzA0MjU1YzEyMTQwNzdjNjBlZDU3YzAwNzE5YzRh
ZQorSU46IGY2ZWRkYjYyMjI1Yzc1ZTQ3NjM2NTg3ZDk5MmFiYjMxZmIxNDI5Y2YwZTRiZGY3Y2E3
NjEwODMzYzZjMTQ1CitIQVNIOiA4OTU5YzgxN2Q4OTA1N2IxCisKK0tFWTogNjZmYTdiNzRjNWQx
MTIwNDRlNmUyNmE4ZjA1NjY3MmUKK0lOOiA5YzMwM2M1MDk3MzU4YjQ2NzFmMmIyODJkMjI4NmNj
Yjk5MjVlMjI3MTdmM2UxYmIxNmEyYTdmMDg4Yzg5ZWZiCitIQVNIOiBlZjQ0ZWIwN2IzZGFiZjIw
CisKK0tFWTogZTY4YzBiOGIwZmMxOTQ0MDJhMDc0MDY5ZmE3OWJjYzkKK0lOOiA2ODc0MGRkMzJi
NTRhYjU3MzEzYjdhYmE3MjEyZWVhZWVkY2QwMGZjMzRiNWEyOTVjMzc0MjM2MWFjYjQ1MGMzMzEK
K0hBU0g6IDMxYzM4ZDg1NTA2Zjk1ZTIKKworS0VZOiA1YTliZGEwNzVjMmMzNzU2YmIwMzYzN2I4
MzNhMmM3YworSU46IDBhMjBhZTA1MDc3YTI3NzVhY2NmM2U5MzE5N2MyY2JlNThlYzBjOGNiMmQ2
NjZhNmQxYzVhYjhmNmE4ODkyMWIzM2E2CitIQVNIOiA4M2FjNzQxN2VmMmY3OGNjCisKK0tFWTog
YmRkYjUyOWJlYjJjODllZTVmM2U2YjkxYzc4NmY3YmUKK0lOOiBhOTYzYjdlOGE2YWI5ZWJjZTkx
M2QzOWFmMDM1NTQwZDExNzI0ODhjMjliODUyMTdlZGYwMjE0M2MyMzE4M2RhNTJhM2JhCitIQVNI
OiA4N2JmYWNmMzg0NGFhMjM5CisKK0tFWTogNjViZjZkZWNhMTgyZDU1ZTk0ZWJiZjhmZTBkZjFl
MDEKK0lOOiA3Yzk1YTcwMmZmZWMxMWIxOWRkYWZjYjUzZmViMjU3MTIxNGIwNjIxOWZlYWU5Yjhh
MDU4NTA5ZmRlNGI1NGUxZjE2Y2I4OWIKK0hBU0g6IDE3MGI2YjU3NGU0ODA4NTkKKworS0VZOiA3
ZWYwYWEwNzE4MzY4N2MxM2Y4MDBmMjY4YTAwZWE4NgorSU46IDhjMmI1MTNhNWZhY2VjNmY1YTM0
ZjQ5ZWVkY2RjZGE3YmNjZjk5ZmQ5ZGUwNTI2Y2VmZjdjODFlZTExNzk3ZDQ1MWQ2MmNiNjg5CitI
QVNIOiA1ZDBmNTIxYmM0YjFjMWUxCisKK0tFWTogNDkwY2M4M2Q4NGEwMTAyY2Q4M2MxMWY4MTIz
NzMzZDIKK0lOOiAxZjczMTIxMDBmZTY1ZjA4MmFiZWNjMDhmMjc2ZmY4MTE2NGIyMWFkN2VhODNk
NzcyOWRmZDFlZjYyMmI1YzM5Yzg4NGIzZjgyZTQ5CitIQVNIOiAyYjcyYmI0MWFmOWYwMDJhCisK
K0tFWTogODFlMTk4MWM4MWU1YzMwMTBjYTRiMDQ4ZWVhMWNjNzIKK0lOOiAwMTIyNzM4NTRiODlm
YjNjNjZlNDQyN2Q0NjBlODQ5MzkyN2Q3MWY0NGJhN2VkN2RjMmIzY2QzMTc4ZmFlYjZmMDQ3MWJj
MzE0MzZhODUKK0hBU0g6IDZkNjc0ODVlYmUxZTE1YWQKKworS0VZOiBiNDdmNTIyZmEzNDE0M2Ri
Y2NmZmMzYjFmNDA5M2IwOQorSU46IGJhMjM1Y2UxYWQ3OGYyNTY2Zjc4MjcwMDIxZmU5ZjMxNDE3
YzNmNjVmMTUzM2M0M2VmNzFkNmQyODFkMTc3MjJhZTRiYzhlYjg3NjM2YzJjCitIQVNIOiAzOTBl
M2ZlNTAxMTljYWMzCisKK0tFWTogOWEzZmVkYjA2ZDFlNTUwZGJiYjRjNGM2YzQyYzdiNTgKK0lO
OiA5NWY2NDFkNjZlODg0MTRlZTQ5MDYwZDFiN2JiYjJkNjJmMzI2ZWFmNmNjM2M3N2EzNTllYTJk
YmNiMDUyNmY3MzdiNGExNzk3ZTcwMjZkODEzCitIQVNIOiBhNThiNmYzZjFkZjIxMmZiCisKK0tF
WTogOTExMWFiYjA3OGYzOGM3N2VlZDlmZjk2ZTI1ZWM1ZWEKK0lOOiBlMTQ3NmNjZWJjOGZkN2E1
ZjVkMWI5NDRiZDQ4OGJhZmEwOGNhYTcxMzc5NWY4N2UwMzY0MjI3YjQ3M2IxY2Q1ZDgzZDBjNzJj
ZTRlYmFiM2UxODcKK0hBU0g6IDMwNTI3ZDU0ZWY2Njc1NjMKKworS0VZOiA0MjgwOGI3MDBmY2E5
Zjg1ZmRkZmI1ZDU5MDgwN2YwYQorSU46IDVmODFiZDI3NTMyMGQ5NzQxNmU1ZTUwZDVkMTg1ZDU1
NDJhMTU3Nzc4YjJkMDU1MjFmMjc4MDViOTI1ZTRmMTg3ZDA2ODI5YTJlZmQ0MDdiYTExNjkxCitI
QVNIOiBlNTg2MTdjZWFmZWFiNjJmCisKK0tFWTogYjYwOTA3NTk4OTUwMGYwNmFiZWQyYmZjNDVj
ODNkMTMKK0lOOiBkZmVkZmM0MWQ4YTk4YzYxN2FkYWI0M2Y5NGI4ZDU1YTRmYjFjMDJiZDljNDkz
OWY4NTE3ZTcyMDdkM2I4MjI3ZDJiYjhhZjA4NmRjMzdlMmFjMjRmNDM3CitIQVNIOiAwMDM3NTg4
YWUxMjliOWU0CisKK0tFWTogYzlhZmI3NTA4NWUxNzU5ZGMyYmI2NzkwYWUyOWZmMWQKK0lOOiAw
MWEwNmFlNTUwMjE1MzMxYWQzNGZjODdjMmU5NTk3ZDJhMzY5NzUzMDA5YzVhNWZhMjA0NDQ4MWM2
MTI2YmJiZWFiMWE5ZjNkNDlmNjE5ODU2NWZjNmRiOWIKK0hBU0g6IDIzNjc2MzIwNGU3Y2U2YmUK
KworS0VZOiBjYTRhOWY4NGVmNjNlOGI2MjUxNGQzNGYyZDc0YjRiNgorSU46IDVmNjcwZTllMTk5
YzU5MDcwMGI3YTdmZDZiNzc3ZjMyNWNlYjkwZjA1YjYxMWFiNzdhOTcwZGRhNjdkYjg2MzZiYTgy
YmZjODc3MGY3NDJhMjJlNjZkMzlhNTljCitIQVNIOiBiYjNiZDkzY2Y0NzE4MDNhCisKK0tFWTog
YmJiMzQ1MmEwYTU3YTc1NDYwYTc3ZjIzOGJkZGUwNDgKK0lOOiA2Mjc5YzJlZTgwZjgzY2ZjMzA3
NGYyNGU1MDI2YTNmZGJiYzI5ZTk1ZjQ2YTRlMjg2MmFmMmRkYThlMGM0OWI4OTZmODE4NmUwYTNh
YTUyN2RjNGZhZDAyYTdjMjFiCitIQVNIOiA4MjM5MzFmNDAyYzlkM2FlCisKK0tFWTogYzFmMjI2
OGE1MDE2NTNjMDhjZTY0YTM0YjFlZGExODYKK0lOOiAyYjU1YTg1NGVkOTEyNWMxNDhlOTdlZDBm
ZDEyOGFiN2E0OGJkMGFiZjE1MGFhODZmNjAyOTJmZWIzY2IwMmRhMTU5Njk4YTAxYWRjNDhiZWEx
YmQzOGE4ZjAzMzk0OTYKK0hBU0g6IDA1MGFmYjQ3MDY3YzczZDQKKworS0VZOiBiNGExMjA3NGNl
MDk2OWFlNWRlMWNiZDI1ZTRmNmY1ZAorSU46IGExNTQzMDk4ZGM4ZTg1YzczMTkyNjljNTkwNTEz
ZWFmYWU4YmM1YmVjMjkyYjc3MThlYTQ5MDE4ZTNhMGNlODA4NDNjZTFhYTY0NDczMmViMDgzY2Zk
YjQxODU4MmE0YTdmCitIQVNIOiA3YzBmYjU1ZDNmNWU4MzYzCisKK0tFWTogNTk4MjMzZWI5NTI4
MDA5OGM5MDllM2RkM2Y5M2RjYzcKK0lOOiBhZjZlNTdlMzlkYmZlMDliOTFlNTdjMjEyOTc3Yjli
NWVmNDhkMzBiZjhiYzg3NjRlMzc5NmI1YWE4MjY4MGZiNTkwZDdlYzczZjRlZjIzNTdjMzRhYWYy
ZTEyYjQ1ZGQxZjQ3CitIQVNIOiA3OGFiNDIxMTI5NzQ0NDhjCisKK0tFWTogYTkxYTM5Y2ZiZmQz
YTAxYmExNjMyOTRkOTZkOTk0NzcKK0lOOiAwOTJjNjgzODE3Yzc0ODQ5OTZiMzJlNmMxZmI0NmYz
NzU0YjgyOWIxYjQ2MTIwYmZlMWJiOTEyM2QxMzlkNDZmNTU2NWM4ZGJjMTFhNjAyNzNiZjZiOGUx
YmMzOGJjOWE2ZjE5OTUKK0hBU0g6IDdmYTc0Yzk1NjQyZjk2NDQKKworS0VZOiAwYjU2NGVkMmVl
ZTllMzY0OWNjZjUzZmU1MGQ4YjFjNgorSU46IDA1ZjQyYmQ3Y2M4OWM4MGZiNmViOGQwOWQ0ZjQ5
NjhmYzQ3YWFiYzBkYjZlYmRiZGY3MGE0MTY4MTU2MjJkNmU5MmRlNjljYzY3NTY3MWRiMjRkMDIx
YmUwYjZjNzU0NWFhYjBiZWNkCitIQVNIOiA3MDhiZWJjNzlkZTA3ZGM2CisKK0tFWTogYmFlN2M0
OGVjYjA0ODM0YTU3N2FkMjZjODcwMjJjZDMKK0lOOiA5ZjVhZjhjNjY5ODM5MzhiMTZmZTNhMmRl
NGQ1OWZhZWY0MjVjYTc2OWQzYTMxYzYyMzMwYWFmYTFhYmE1N2U1M2JmYzNkNjEzNTdiNjE4ZjFh
ZTAxYmJhM2VmZWNjNjVhNzBlZGNjOGI4CitIQVNIOiBlOWQ0M2Q5OGY3OTBmMWU5CisKK0tFWTog
YWM4NjM5NGNmOWU4NjY4OTAwZmMzZTczMWU1NTczZDIKK0lOOiBiODMyZjZjNjEwYzZmM2JjNWFl
NTBiNjU2NzA5ZjI2Nzc3YTljZmE2MjY2ZmFhODBkNzg4Mzc2ZDdhNGIwYWYzYzg0ZTJmMTRhNGI1
MzhiY2RlMjNlNDVmMDU1NGU3YTMzM2E5NTIyNGI0NzQKK0hBU0g6IDY4OWRlNjQxNjc1ZTZiM2MK
KworS0VZOiBkZDYwZTZlYzM0NTIyNDI4ZmU1MTc3NjdmZDk0YTVjZgorSU46IDNlZDY3MzU3NDQ5
YzNiMjRiNmQ4YTM4MWQ5MmE0NDNkMzMzNTMyYWFmZDFjOTA0MTFhMjliODBmZmI2NTY2Y2IxMzc2
MmM1YzhjOGVmODc3NDEwMjNmZmFmZThjYTQ3M2Y3NzkzNGFjYmQyNWM2CitIQVNIOiAzMGZmODNi
ZWI2YTRlYjMwCisKK0tFWTogOWY1YzQ4YzEwNTUxODA4ODU0ZjJjNTk2NWYyYjg0MDIKK0lOOiA5
YjE2MGYxNzE2MmE3MWE5YWViYmNhM2EzMjkzOWNmMDllYTRhYWFlYjk4Yzc1YWE1ZmUwYzE1YThh
OTRjZGJmYjc3MTZlYTM3YjdmMGFhYTllMDU4ZDkzZWY1ODAwZTllYzg2M2E1ZGY4NWQ1MWZmCitI
QVNIOiA5ODdiNGIxNjU0Njc2NWJjCisKK0tFWTogZGY5NTVlYzFlODQ0MzJmZWM1ODFiYzQ0NmIx
MGJhOGEKK0lOOiA0NGFlODIxZjlkZGIxZTFiZmJlYzIyNTlmYWQyMDQyNTU4ZmIyMTZkZWU3YzU2
YWYwNzRkMjRiOTRhNjEwNzRmMzdhMDExYTQ2ZmM3NTQyOTA3YWYzYTVjMDNhZDY0YjM0ZjE5NDAy
MTllM2MxMjliOGYKK0hBU0g6IGVkM2U5NTcwMDViZjQ5OGEKKworS0VZOiA1YTkwMWVjZTY2MzI5
YTk0ODhiZDE3YWQzZjM1MGVjOQorSU46IDNlNDA0MTQ1OTkzYmYwYzI5NmM5NzcyOWY5ZjJlNmVi
M2JmMjIwMTBmZTY0MjMxMmM4MTM2YzBkYTE3NmVkNGMzMTRlYWVlODc4MDQ3Y2ZlMDcwNWE4MzVh
OGEyMmU3ZDJiMjljOTMyODM3MDAzMmQ0ODI0CitIQVNIOiBiNWU0NzkyNDNkMDM2ZWFkCisKK0tF
WTogNjgzNWE0MzljMzMxY2U2MzBlZjc3MWY4NjZmMDQ1YTUKK0lOOiA1ZjJkOTVmODk4NDA2ZmNl
MDViMzZkMWNmZTIxYzU3NTQxYmNiYmI5MjkzYzNkZDU2ZTZmYTg1MTllMWVlNzZiNDBjMmRiODA5
N2VkMDA4ZTg0ZGQ0N2I4YWFhZTNjMmIzMzAzN2Y5ZjdhZjM4ZjNmNDFjOWM0CitIQVNIOiA3Y2U1
NmVmOGRhYWM2Njc2CisKK0tFWTogODRiMjI0YzkyMDE4YTM0OGRiYTMwMGQ0ZTE3Y2QxMzkKK0lO
OiA5YzUyMGIxMTFiYjAwODA4NmM1ODE1ZjQ1MGE2YjdiNmRhZWMwOTI1YzRiMGM4Y2Y5OWY5Zjlk
ZGI2MTk4MDAwYTM3OWZjYjYyNTI3ZDdjMzYxY2NiZGEyNTk3ZGVlY2RkMDU1ODUwYWJjNmExNzI1
MWMwODU3N2IKK0hBU0g6IDNlNWFiMzM5ZDFmOTBlNzIKKworS0VZOiBiM2FmMTBlZjE1ZDNlNzI4
YjM2MTcxY2Q3ZTBiZmM1NAorSU46IGIwYzMwOTkwZmE3ZDg0NTE0MDNjODRjN2NiZDY1MDg0N2Rh
YjNlMDg3ZmRmMjk4NWVkYTc5YzQ4ZGVkYTU4M2JjOWM0OTU3ZTI0YjA1MDJhYjYwMDRhODViYmFh
YmE3NGVmZTliZGYyMzc3MDQzZDAwOGFlMTRlMTY5CitIQVNIOiAwODIxZDFmOWUyNDFjYTFkCisK
K0tFWTogM2YwZGZlNzEzMDU0YWYwNjFhYjA1ZGVjOTExYjg4OTUKK0lOOiAwZDNlZThmY2QxMzRl
OTgxNDY0MWZkZmYyMGIyMmRkZjE3ZmZjZjNmMjNhZjczMjdlMjAzY2YxOTcxMzI5ZjkyZTk5NjIy
ZDFiODMyOWY5YThmOTI0NGM1ZWZiZDRjZTNlMDdmMWI5Nzc5ZjFkODQ5MjdlOGZiMTZjMDMwCitI
QVNIOiAwYTVmZTg4OWY5NDc1ZDhlCisKK0tFWTogNjI2NjNlNjU1YWUzYTEyMmI4NjliMTExODJm
MTZhMTEKK0lOOiA4MjY5NjE4N2Q5MTA3OTJhYzkyZDUwOTAwNjc3YTFhMDIzOGQ5MWNlZTNjZDcy
YWQ5NDliNTBjNTNhMDYxM2FkZDNiZjBhYjAyYzc4ZTg3Zjk2ODQ3ZDViZGEyYmIzMWU0ZTE5ZDky
YzkzM2IxNjM3YWEwMGJlMThlZWM2OTYKK0hBU0g6IGEyYzA1MzUzY2I2ODkyNDAKKworS0VZOiAx
ZDNmMTk3N2ZjMWFhYTI3ZjQ1OWNiNGRlMjJhNzM2ZQorSU46IDkzNWUxY2Q5YTA4YjFkMGI1N2Ri
YmM2NDA5MTVjNmRlM2VlYzYyZjQ4MWNjNjRhMjdjZGE2YTA4ZGI5ZTdkZmE1OGQxM2RlZGFkMWNl
MmFiZmE5NjdmMDU5MTg1YjQxZjJiNzIxMTRhNGJhNTFhOWE1ZDI3OWYwNjdlZDlmYmE2CitIQVNI
OiBmNjRhMGZlODZiN2RmZmExCisKK0tFWTogOTZiZjkwMzRmMDI3NzJhNTE1MGIwZjJkZmRkNDlj
ODgKK0lOOiAyMzE1ZTI0MjIwNTI4N2QzZTlkYzVjYmUzMTdkZGYzZjI4NmFkMDJmYzQzODVjODJi
ZmRiZDQzZmY2ZDVmNDI1MzQ3ZTIyOWZhZjA1MjFhY2Y5YmJmM2ViNmYzYWJjMjAyOWM3YWYyNTA2
OTcyNDQ0NDI1ZTFiOTJhYTFkNjYwMWVhCitIQVNIOiAyY2ViM2VkZWQyNzU0ODI5CisKK0tFWTog
NWUyZDBiNzdiMzQ3OGIxZDA0MWI5YjY3ODRiZDRlMGMKK0lOOiBmMTBiOTU2NTMyZGVlYTE4Mzhi
ZWJjYjE5MmNmMjU2ODE3NTI1Y2I5NTI0MmU1Mjk1ODMwZGI4Y2VlNTg2ZTVjZjNmZGQwZDlhNTI3
N2Q1YTUwYThkYzZlNDg3OGQyY2M2YTU0OWViNTJiZGM1YmVlYjg5Y2U4NzBlNjVhODc3MDJlZWUK
K0hBU0g6IDhmYzc4YTJjYTFiYTFmN2YKKworS0VZOiBiMmMzNDI3M2ZmOTExMjNmYWNiMmUzZjRh
YzAzOTUyZAorSU46IGE0M2U1ODFkMzVjYWY1NGVjZTViNjY4ZGYyZjRhNzdlMjliZWUzZTFmZTI2
YWRkMDI3YjA3ZTgxNDk5MWJjNTM4ZGExNmYxNjQ5ODg2ZTQyYmUwYTViZThiMjIxYWQxNTVlYjc0
ODllODEzMzBlZTkxYjE5NDkwNDA4NmY5MWU5ZTcxYTc4CitIQVNIOiAzNmVhNGFjY2MzMTgxMDc1
CisKK0tFWTogODI4MjM4MjU3MzgwMTg2MjM5YWFkNTZmZGEzNzkwNjAKK0lOOiA0NmY3ZmNlMzBk
MDNmMDRiZWU2NTU5YWNlMDIwZTZjZTcyMzc5MDAxYzIwZTVmYjMwYmM3YTUwMGNlOTEyNjJlMGQ3
YWY3MGQ4YmUzMGM2MWZlZTYyM2U2N2E1ZTQ2ZGI1NWQxZGVjNjRiZDRiZTZhZjQ1YmZmZjY1MDUw
ODAwMTk0YmExNzVjCitIQVNIOiA3YTFhMzZjZmRkNzc4YjEyCisKK0tFWTogYWE3NTE4MzljZjVh
NDM2MTNhM2I2ODZiYjIyZjllMDIKK0lOOiBlMDg0OGE4MzUxNDI4NzFjNDg5Yzc3MmQwMWNhMDEx
NWYyMjZkMzlmOTRlZmRlOTIxNzhhMzhmODdmYmIzNzFkNDc5MWYxMzk1NGZlYjRmNDkzYmMwNzA3
YzRkY2E3MzJlMjQ2NDJjYzZlZmZhMjZkYTUyN2VlNzQ3MmMxYzM0YzRiMGI0ODM0YTIKK0hBU0g6
IGUxNDRkMTA4NTFhN2UwZGEKKworS0VZOiBlM2QwMjdmY2ZjNjI5Y2M3MzVmZGI3MDkxMjc5OTM2
MworSU46IDA4YTUxMTgzZmIwMzk2YTE2MzNiZjdhMmM2Y2U0YWJkMWU0NGQ5MTUzZDdiYzJhMjY5
ZjQ3ODI2OTE4MWRmNWZmMjkzNDYzNjZjZWE2ODlhODMwMWVmY2E5NDk2OTNlMTgzNmQyN2Q5Y2Zm
MTgxMDk5ZTg3OGIyYmQ1M2RhNzU4NjZmNGFiZTBiNjRmCitIQVNIOiA0YTkzNWEwOTFmMzgwZmJl
CisKK0tFWTogYzk4NTJhOWNkZDE4NWNiMTZmZDg4ZWY3OTNiZGY1OTgKK0lOOiA0OWNiNWFiMWJi
YjQ1YWZiMzI4NzhiMDU5Njg1YTQwMDE2ZjNhZGQ1MzYyM2UyMzg1OWM5Mzg0NjQxYzUzN2UxM2Fm
ZjYzMWQ4MTRkZWVkNjA3YmI2YWJjMzc1Yzg1NWY5ODc0NGU0NTVlOTM3ZWUxYzllNDc4YzQ4Nzg4
NTQxNjZjMzBkMGI2ODYzMjhiCitIQVNIOiBmMmRmM2E0OTYyMWE0MGFkCisKK0tFWTogYTcxM2Jk
NTc1MmUzOTJkOTk5NDdhMGEwZmVmOThkYTkKK0lOOiAxNTA2NGJhMDEyYWEzNjg4NzI1N2YzZjg0
MjYxYWM2NjEzNGMzNmRjMDJkNGQ4Njg4ZTJmYjEwZWEzNjk3NGM0ZmQzOTYzMTQ0ZjhmZjAxZTMx
MzJkMmM2OWU1YjU3Y2RiYTgyZjk4NDUzMjM4YTUxNjUzZmFjYzcxODQ2N2NhNzgxZTczMDQ0YWEz
Njg4NzkKK0hBU0g6IGYxODdiYWNhYmU5MTQ2MDMKKworS0VZOiA1MjkyZWQ3YzczMTdjMmFhNzE4
MzFkMDNiOTA1ZDBjMgorSU46IGUzZWVhMjcwMTQwZTUyZWUyMDRjNzhiOWE0ZDg2YzBiZTljNzQx
MjdhY2I0ZjM5NTdiMWZkMzgwNDE3ZGJkNTdmOTFmZTY5NTA5MTI2ZTUzMWE2MjE0NGNmN2VjMTQ3
YjM2YWVlNzkzMWI4ODNhMDI4ZjkzOTkzYmI4MDY4NTUyZTFhYzk3MzY3NzUwMzhjOGNmCitIQVNI
OiBhOWE4YzBiYzUwMTA0ZThkCisKK0tFWTogYzMxMTdhMTllZDc4ODE5OWFkZDg3NGIxMGY2MjE5
MGMKK0lOOiAxMTJhOTFkYWQ2MzE1MDJlYzZkOWE1NjlkMTRjYzAwOTc3OWJjZjJmZmE0ODllYTRk
Zjg1YzI3NWVjMzcxNDhiMjVhMTMzZGNiNmQ0YzNkYmVhOGVkNDM3NWU3Y2YyNjg4NWI5OTFmOTZh
ZDk4NDg4MGJmZjc2YTYyNTY4ZmMxMTVkMzc2MmRjY2I0NTIyZjFhMjdjCitIQVNIOiA0ZmMyYTg3
YjE2ODQ3N2E4CisKK0tFWTogNDU4NjJlYWJjMjRlMmI2MmFjZmQ4ODMzNTk1YjMyOWMKK0lOOiA5
MjFhN2QyMzM3MjA5OTJiNWQ3NjdiNjFmODZiNGQ2ODU3Y2FhOTlkMzllMTg2NTZkZThjNTU3MWYy
YTcyOTVhZjdlMGQ3MDM0NjdlNGMwYjgzZjZmNzA3OWM2M2I1NTY1Nzc3NmQzMDIwNDI0NDQzNzU2
Mzg4ZWEyMTdjMjQwNzI4NGZjODY1N2QzOTM1YTliMzQ1NzMKK0hBU0g6IGMxY2M2ZGE0ODQ0NDY4
NTcKKworS0VZOiBkMTg1MjYyZTE5NDcxN2QyN2JlMDZjMTI5N2I4ZjI3YgorSU46IDc4MDRmMDMw
YTZkNjc4NDdmNTNjYzkzMDUyOTUzNTE2ZjY2YzkxNWFmZmJhNzM1ZGY3OWRmN2RhNmQ3MGJkNTEx
ZTRlZGIzM2ZkNzEyYjU4YmZkZmY0N2Q5OGI4YWNmYWZmMDY0YmQ0ZTFmNjQ4MjhkNjFhODJhNWU3
MmFkOTc1NzNmNDYzMWZjZWMwZWJmY2JkMTZlNjdlCitIQVNIOiBmOWQzN2NhNWE3NzUwNTg0CisK
K0tFWTogNTNlYTMwYmY3YjFhZWJhODRhZThlMGI0MzRhODY1N2UKK0lOOiA2NWZmZTBhMDg3Y2U5
NTVhNjE3MDQ2MjcxMWRkNTNmYzA1N2FlZWU5ZmI1ZTdhOGNkODY2NTI3ZmRjZTcwYWE0YjhhY2M2
NWVlNGEzNjZjZGFlNjQ5Y2I1MzQyMTIwY2Q3Y2JiOWQ1MzZiMTY5N2NjNDUzMjZhNDQ0OTRhZWRl
ZmI0ZjdkOTZmYTVkMGRkZDEwNGJkYzZhODRjCitIQVNIOiA5NjViYTk4MzBhYmRkZWU1CisKK0tF
WTogNzliYWQ4ZDdmZjUxOTIyZWYxZDU0MGI3ZDhkNzY2M2QKK0lOOiBlZDUzNmQwMmQyMTA0OWJm
ZTZjMTQyOGViYjZhOGZhYTQ4MTMyMWE0OTc3YTY4NTQwOWIwZmIyY2EzOWQ3MmM5MmQzZGIwYWM0
MDZkNTZlMmYxNWQ2YjZiNjJjNzMyNDY4MDcyMTViYWU2MTNkMjgzYjhhMzU2NzhkZjI2M2ZkYmI2
ZDMxNzJjMTY5MDlkZWI4ZTk3ZDc4Njk0ZjMKK0hBU0g6IDQ4NDFiOWRkNTUwMmY2MDUKKworS0VZ
OiAxMDQxMDRlNzZlNjQ1ZTgzYzdiNDBjNjY3NDkwNmQ1NQorSU46IGE3NTQ2Y2I0ZTZiMWIxYzEx
MmFhMjg1NjMwMjhlOTEwOTE1YzZiNDRiNjY4YmI1N2JkNjYyM2I5NDFhZjRjM2UyMmM3Y2Y2ZWZm
MmY2YzQ3NDY1N2ZjNWVlMjkzZGI2MGE4NDk0NGJhZmVkMmFjYWJkYmU2YTZlN2YwODA0ZWJlZDYx
Nzg2YzJjZjI5Y2RmYjBjNjJlOGQ0MWRmODFiCitIQVNIOiBkMjFkYjg0NTQyZGViMzgzCisKK0tF
WTogOGQzYzE3NGEyOTVhOWQ4NTllMDA5ZjczZTExMzQwM2UKK0lOOiAxNmVkMDVjMmI3YjBjNTRk
ZjI3NGJiNjc4MDRjNWQ3NjcxYjkxNWQ4OTllMTViMmUxNjZjM2YxZTRkOWU5OTBhYjViZTU5YzVl
OWZkNzBlMTk2N2E4MDIxNzk3ZWQ4YjJlNDAxODJmODYwZGFiMmQwMjA4ZGNjN2M5ZmRiN2JkY2Fh
YmJjODFmNWI5Yjg3NTFjNTU4YzU0MThkZDY1NGIyCitIQVNIOiAwYzRkMDlmODgyN2MwYzM3CisK
K0tFWTogNTViYzE5ZGEzZDVlNjBhMzMwODM3OWQ1OTAwMTY1ZDkKK0lOOiBkMThlY2U3MmNkMmY1
ZmFmZTUyZmQ1NWRlZjJlNmFmMDM3MGU0MjBkN2FmZjc5NjhmOWNiNWVmYzQ0ZWJiMTYxYTZiZGQy
MjEzMmFhZDBhYTk2ODVlOTE2OGViYjk1NzgyMDllNTE4NjU2MjVhNGNjODZjOGY3ODk4YWQ2Mjli
NjRlNDAwYTdkNDY4N2E1YzNjMDAwYWQ3MjRhMjgxNDQwZjIKK0hBU0g6IDdjNDczNjlhNmQ4Mzg3
ZmYKKworS0VZOiA1OGEzMTY1MzA4ZWYzYzVlMmE3YzA1MDcwMDg1NDU1ZQorSU46IGQ5MzgyNTU0
ZDViNjMzYWZhMTYwNjVlNmRiYzBkNDcyZWUyNjYyOWU2MjE3YTI5M2I2M2FmNzNjYmQ0YTVkYzNj
ZjYxZWY3ZWJkNWI2OTAwYTM0YmY0YWRlODMzYzBkYWI5YWZlOWQyZDk3MzY5YmYyODE0ZDAzMzQ5
ZDZlOTE3YWRiNWUwZTEzODg3NzJmYWQxYTRiYWY2NGQ3ODM2ZmUzZmZjCitIQVNIOiAyYmEzZTMw
ODJiZGQzMTJiCisKK0tFWTogYjYzNjI5MGU0OTFiMGFjMjI0NzZjOTFjOTU4YWIzMTMKK0lOOiAz
ZDI3ZjVjMjBkYjYyZTNhYmUxMDY4YzAxOGZlOGUwOWU0ODIzYjhjMTIwOWI3NGE1MGRiYzE5MzAy
ZTE5MDM1MGRiYTFjNWFkNjE2MDA3YzcyYmUwNGJjMjFkN2VmMGE4MjgwNGYyNjZiYTk1ZmIzMDQ3
YTZhMDVkZTNmMGQ3Y2EzY2M3YzQ2MzNhMDJkZGE0ZjM2NzA1MTY4NTUzNWQ4ZTFhMTU1CitIQVNI
OiBkMTRkYTdhMmRjM2IwMTVjCisKK0tFWTogNjY3MDk0YzA2MzU0MzM3MTc4ZTY0NmUyM2U0NTM0
MDMKK0lOOiAyMTVmODU2YzQzMzM2Mjk1YjVlNGQ2MjVkOGNmNWIzN2M0YTViMDdhMzllZmYyYjQy
NDI3ZDVkZjY4Mzk4MmFlNzhlYzg1YmEwODU3NDBhMjg0NDZjNzkyOGJjZTI0YmUxYjY2YTA4Nzg5
ODYzNGEzZjYyNjBhMzkyNmM5YThmOTUzZTIzNWU0NjljNGRlMjNmZDMyZGRlMTgxMTY4NTI1Yjcx
NmEyY2IKK0hBU0g6IDJmN2NiNjljNWU0Zjk0MmQKKworS0VZOiA1MmVlYmY1MTcwYzYwMzk4NTk4
MjEyMmJkOGVlYjFkNgorSU46IGRhMWFjOGNjYjRjNjY5Nzk2MzMwOTI1MjRlNDJjYTA1ZGY2Njdl
Y2MzOTIxODQ5YTI0YzhmYmY2YWVlNzBhMDE1MDRlZTJhODBhMDAwZmZiYzdiNzYyOTg0M2YxNTI3
MDk4MmE1OWZmOWYzZjA4MTk2M2ExMDlhZThlZWUwYTFkNTliYWFjNTIwN2Y0NDA3MWU1MWM2NDUz
NWI2OTIwYmMwN2JiYzkwNDhiCitIQVNIOiBkM2E1ZmU0YWM2NTZiZWYxCisKK0tFWTogMWMxNTE1
Y2FlM2ViYThjYzllZDk0YzEwZjhhMWMyMTEKK0lOOiA0MzQ4ZDM4NzAzOWY3ZmU1OWExZDk0YTll
NmQ4OTQyNDFkNjJlYjNlZTkxYzE5ZWJiMDkwNjQ3OTJhYmIxMjY3MTBhNjE5MDczZmQyOTNiNTlm
ZWNhZTdkOTA2NTVkNjUxZTU0MmJlNTZhMDFhZTVkNDE5ZjE0YjFjZWUwNmNkOTBlZTY4ZTAxMDZj
ZDQ4MTMwZGQ2ZTBkNzNkYjhmZWRiYWQzYjAwYWRhODdlCitIQVNIOiA1N2E0ZGFhNmFiZmI1YTJk
CisKK0tFWTogOGE4NjgwMTIyYmE5NmFkODk5OTI3NDFhODgwMmY3OWUKK0lOOiA2YWUxMGRmYTMx
ZTVkMDZhZWVkM2JmNjQwNTkxYjk4MTAyNDVjY2MxNzVhOGZmOWYzNjg5M2FkNmUxMGM2ZGQ5MzQ3
ZDAwMWYzN2M0MTEyM2U0ZWExNmI4NmIwOGFhMzQ5OGM3NWJmNWI4NzAyMjI4ZmI2NTQ1OTVmYjkz
MGNlYTJiYjllYzk3ZmZlMWZiYTEwZmRiYjdlOGIxNmEyNDk1ZGYzMGFiZGZlMWZjNGYKK0hBU0g6
IGZjMzUzY2NmNTRiOGMyOTQKKworS0VZOiA0MGQzZTQ5NDEwNTZiMjU4NWUxZWQzYmJkMzE5NmIy
NAorSU46IGUxNzY0YzExMGIwMjRlMmM0MDZhMThkNmE2Y2IxYjJkOGRjMDVmOGNiZjYzNWQ5YzZi
NTlmOGM1NGY3Y2ZhMWM5MDIyZjcxOWQyODk3OWRmZDc1ZjZhMjIxNjg3NjkwYTA0NjQwNGZiMTIw
NGNiMjdhYjY1MDJmNmYyNGFjNmQ5YzI3Mjg1MmFjZmNjYjJkNTE5NDhkZGI0Mjc5NTBjOTVhZTQw
NDU2OTllYzAwMmMxCitIQVNIOiA0NzEwOGE1ZjNmNjY0Yjk4CisKK0tFWTogYWEzNzdiNzJjZjJj
MjgyOTQ2ZmI4N2U2ZjNmMTZmYmUKK0lOOiA0YmY3ODMzZWIxZTgyOGRmNmZjMTkwZWNiNTY4ZTNl
MTc1MzA3NDA4YzRmODUxNTMyYWZlNzMxOTg2ZDA1YzJlMGE2ZDIxYzQwYjAyMjhhZjY5YTBjZjRm
MzAyOTNiYTExOTQ2MmYzZjk1MjAwMzg2YzcwYTRjNDlhZDcyNTFiYzc5N2JlMGI1MDRlZmQ1MGM5
OGMzMDk5YjExMTk3NzJkZWI3NjRiYTc5OWJlZDI4ZDM1CitIQVNIOiA2YWZkZmY4MGQwNzRiNTg1
CisKK0tFWTogMzA0YjdhOGQyODI1YWIwYjRjNzhhODJiMjAyYjE5NDIKK0lOOiA0MzA5NDQxOGYy
ZjY1Yjg1YWNhY2Y1YjMxOTA3MTEzMzJmZDNmYTdjMWU0NzFhNDlhN2Q1MTM0YWI3ZjIyZGVmNmZh
OTczY2IxMzVhMGFkZDQ2ZmE0ODJlN2UyOTk3NmFiZmY3NGMzYmMzM2FmNzk3YjQ2NTQwYzg1ZWVj
Y2E0NWI4NDhiNTVkM2U0MTI5NzBjODkzN2ZiOTdkMmI2MWFmNjhmZjNmMjg3NmJmOGNiNzJkYzMK
K0hBU0g6IDhmODljOWI5YTNiOWJmNjIKKworS0VZOiAxYjU0YWU1M2ZiZWEzNTY3YTk2NzgzNTBh
ZTkzNDMwMworSU46IDhkMDJiMDI4MDBkOTYwNTIyN2ZhNzNjYzkyMDk2MjMzOTY0NWM3MmI1NjBi
YThjMjY2YjBiOWU5NGViOGJlMGM5NzQ4NzE4YmE5Y2M0OGYxYWZkMTJlOGI0NThkNzQ1NTk2Yjc2
M2M3ZTY1Y2I4YTBmY2MzZDkzN2M1NmUwNGE2ODczY2VlZWZkM2E3N2YzYzU0NWViOTU3YTlhN2Jm
YmVmYWJkNDdkY2E4NjdlYTkyMjAzYzlhCitIQVNIOiA4NmYwOWIxZWRiNWY3OTM0CisKK0tFWTog
YWRhOTUyNjM5OGMwZmZlNjRiMjAwZWMxODIzYTBkMTYKK0lOOiBmNmZjZGY3MmMxM2FjYWUzODg2
ZGJmNmE4NDI4MDZmYzlhZDAyMWQwMzI5ZTU5NTc0OGE4Y2Y4MmYzNzVmZDM1N2UxY2MzN2E3ZDk5
NWQ4NjkzNzNjYWQxZGQ4ZWNiOGRiZjBlNTMzMzc2NzQ3MDM3OGZkN2U1YjBkMWZlZmVkYzE4ZmNm
MDQ1Y2ZhYzdkODgzZTY3YThhMzJlZmJjY2MxYTg3YThlMDg5ZjM0MTg2ZjdlYTRhYzQxCitIQVNI
OiA2NGUwOThhZTA0ZjllMDZiCisKK0tFWTogMzBmMDhhNDMyMmE4YzcxZTFlMWE2MzUzYjM3MWZk
NGQKK0lOOiA4MGRmMTRjNmJiNTE4NDY2MjFjZDk1YjU3YzAyZTM0YWZlNmE5NmVlYmE4YmMyOTAw
MmIyNTE0ZjI2YzNjZTUzZGM4MTMzMGViZGZlOGJjZTMyZDRlNzg5ZjViYzM1NGIwM2I0ZDEwYTY0
YTEwMjQ4ZGQxNjI2NzI2ZmY2MDc1MjkzODZmN2JlY2Y5ZDcxNjY2NGJlZDY1NjU2NjI5Y2VmN2Zj
NzQ4MmU5MDQ2YWYwOWFhN2VkNjAwNzIKK0hBU0g6IDc0NmIxMGIwMGFhZmFmMmMKKworS0VZOiA5
YmZhMjdhNTg5ZjQyNWRkNzAzOTBjNmNhMWUxNzYwYgorSU46IDc5ZmM3Y2FlYTRjZjc4MDAxYThk
NjAxZGUzNDM4NTg0NTE3OTcyZTgxZDU1YzhlMDBiNWM4ZmZkMWUxYWE1ODk2MDU4YTU2ZTYzNmE0
ZTY2ODQyZDMxZjUyODdlMDE1ODc2MDFhOWY3OTQ4OGRiNmYyOGYwYTU2NDRiMzRkZTE2MzgzMWNm
NDYyNDkzZWM1NzllZTBjNzYzMWFkZGEwOWY1ZTEzNWNkNzBlNmE0NTA0ZTUyODIzYzFjYmM1CitI
QVNIOiAxODk5OTk4NzY2MzA1Y2NiCisKK0tFWTogZmFiMzNiNTZjMmI5N2Y5ODk5NDM4ZDhjNDQ0
OGE3MjEKK0lOOiBmYjdlNjI1MDcyYzZkZWRjZjMxZDBmYmRhYWFjODE1ODU0NjVmNjIyN2QxYTM3
ZDYwYmVmZWI5NjYyODIzZDJiZmI3MGYwZGNhNjdhZjRjMWM2MGY3MmE1MjRmZWYwYzI0M2E3NThm
OGIyODgzZjE3ZjJiMTEzMjc3ZmQ3MWQyODM3OGMwMjdjYzlhYThjNzlkNWRhZGNkNjVjMmZmMjc1
ZjI5YTQyODQzN2Y0MjRhYjIxNzFjMzNmODE5ZGY0CitIQVNIOiAyMDhiZTU0ODJlNmViYmEyCisK
K0tFWTogNmVkZTBlODk5YTBkYWNmZmE4YzhhZTNjZjc1NTIzMTAKK0lOOiA5ODY1ZTY1NzdiODgx
MWM5Mzc0NDcxOTRjYWYzMGNhOWRiMzE4ZjM5NDlhMGEwOTVhMTQ4ZmEwZmUwZmU3YTBlZjRlZmQ3
YzA0YzdmMGFjMTMyMDY4NDFhYjhiMzBiNmIxYTU1YjE1NTVkYTM3YTQwZDVhYmYxNTQzZDU5ZjEz
MzEzMDljMWNlNWYyYWRiMzkyNTljMTUyNjI4ZGZiZTEwYzBjNWU4MWFiMTcyYzAyNWY5Yjg0YWJj
MmQ5OTY4MzQKK0hBU0g6IGU0NjgzOGQyY2JmZTZjMzMKKworS0VZOiAyZjBiODcxNGE4ZjA0NTRm
NjJkYjhkYzRmYTUwNmE2YgorSU46IDZjNDVlYjhlODhiZjllNjNkYjlkMTU1OGUzODFmNGE2Zjgz
MTcyN2Q4NjZkYWFmZjlkNDAyYmExYzNlYzY5MTFhYTRjNjJkZmYxYmZhYzJmYjAwYTUwYmUyYzJk
OTQ1YjRjMWNkMTBkMWFiMGQ5NmQyMDFhNWUzOGQ4MGE1YWMyY2JlZTZiMjk0NTA5MWU5MWFhNDBj
Y2ZmNmYzNzY1NjM5Mjc1OGJiYjdkYTVjZTJlZjNjOTMzYjFiZjgzZjgyMjAxCitIQVNIOiA0MzM2
NTdjNTNlNWZhMDgxCisKK0tFWTogODVjZjliN2U0YmQ5YWY4N2Y4ZmZmOWQ4NTRmYjg5NGEKK0lO
OiAwZTgwODU3MGY5YmZhN2ZkZTQ4OGUzZmVkZmQ2MTkwNWIyMzJhMmU2YzUxMmZmNDY1OWI2YjAz
NzIyZDRkMWE4YWIwYjc1N2RlMGViMTE0YzUyNjIwMDU0MzY0ZDUxZDYwODc0MTdmMmVjYzczYmZj
NzhjYWE4ZGM1YzMwNjM3MjJiOGM3Mzg3ZjVjZjFlZWE3MzY5YmFmMTA4MDkyYjE3MzZmMzRmM2M4
NWExYTY0Y2FhZjE4ODc1M2NjMzQ4YWMwOTM0CitIQVNIOiAyNTI3Mjc4MDU5M2MzNThhCisKK0tF
WTogOTAzNzY0ZjBiOWJjYWIyM2EwZDFlN2IwZDgyNDg3MTEKK0lOOiBlNjNiMjY0ZWRmN2EzYWIx
OWU4ZjM4YWUyMmZiOWUwMGVkN2M4MGQyNWUzYTlkNzZkZWYzYzNjYzc5NzVlZDVhMTlhZWI1NTJh
NTU5ZGExY2M2ZDZmNGQ3YWQ1YWRlNDRiZDdiYjU3YWQxOTEwYTQ2OWZjNzA4MjI2N2NlOTY0NGU5
ZDRlMjRmMWNlNWFmZTZjYjM4ODYxNzI0ODVkZjc3YjNlNDdkY2UzNmU1NDljNjIxMjk3ODg2NDhj
MzczOGY4MzZjYWYKK0hBU0g6IGU5OTU4MjRiOTYwZjMwMTIKKworS0VZOiA5MDJkZWEzMzliMjlh
NWE0YzU0YzcxYWMzNDg2YjUwOQorSU46IGUzMzkxMGQzNzJkZWRiOWExNTRjZDhiMWZmZDRkOThj
NThjNGI4YzkzYjVkN2ZmNTlhODdhNDA3MzA1NDdmZmIxNDVhODIwYWVhNTZiY2E0ZjdjMDQzYzQw
YWEyZjVlMDA5OWI5YTkxNjgzZDJkMjkyN2ZlYmNhNTNjNzI3ZWNmZDhkY2E3NzgzMDAxMmMwZDMz
MTM1YTJkMWE1NjY1YzAxM2M0MTI2YWNlYzkwNzNjZWU4NGY0MjljMmExZDU3YWJmZjY0M2FhCitI
QVNIOiA3YTZkNTMzZjFkMTNmNTk4CisKK0tFWTogZDc2MDM3MmQ1YTIyMjRiZGQwOTZjYTljMzE3
YjMxNWQKK0lOOiA4NjgyNTc0MjJlNTg5OGM3ZGUyNjE2ODJhMDg4YmY5N2ExOWJkZGJhODc2NTBl
YWVmOTY3ZTQwODVkNTE0NTc4N2RkOGEyMjM2ODU5YzY3YjFkOTZlNjRhODE5MzQyMTBiNjNlZTQ0
YWRlYjVjZWRhZTAzY2YzNTk4NDk2ZjdiNzdjYWE3ZjJhMmYxMjM3NzhlMzcyMDIyOWVlN2VlZWY4
NzgzN2EwZDVkZTdjZWQzYmFmNDAxMTRkNjYzYmMwZTU3NmNlNmNlYzcwCitIQVNIOiAwNWVlZWQ2
MTlmMzM1YjBiCisKK0tFWTogZDQ0M2RiNTA2N2FmNTY4MWY4YjYxYTQ4OTQwMGQzYjMKK0lOOiAy
ZjY5YmEzNmRlOWQ3ZjI0ODlhZDA5MjI2M2YwNmUwNGI4NzE3OWRiYmRjMzcyNWE4NDc4YWJmNjkz
MGYxOWViZmQxYTIzODIzZDQxZjg1MTYxOGY2ZDUzM2NhNTYyNzNlNjAyOTE4YzI3OTI2Y2Q3N2U3
MzgwZGU1YWYzMjJiZmEyNzA0ZWM2NjllZjQwMjk3MWJmNjA2ZGE3OTliODVjOGQ1MWVhOGUyZjhi
OGRmM2U5ZTRlY2Q5Y2IwM2Y5YzFiYzM4N2ZiNjlhMDIKK0hBU0g6IDNiNTRkZmVmMDUzN2Y2NWEK
KworS0VZOiBmZjg1YzMwOWRkOTUzNzEwYzRjNDUwMDE1YTkyZGI3ZAorSU46IDNiNGNjMDhmYjk5
OGE4M2MwYmNmZGExMTI5NTc2NDZlNzA4YTVlN2Y0NTdjMzNhNGUzMWZjZmViYTlmYjViYzM3YmU1
MjFiZjM1MWViNWFjMWJmMTExNDRjM2ZkNDgzN2NmOWQ5NzI4YjAyYjc1YzUxZmVmMDM0MjE0MGUz
YTBkMTk5ZmUwYTY3NzEwYTNhNzEzMWM2ZDNjMzNlMGNhMDAyNTljYWIxYjdjZDFkNmRlN2VmODFl
OTdkZWU3ZWNhYmE5ZTIwNzNjMDgwOTZmCitIQVNIOiAwODgwZDUzZmNkNDA1MjVkCisKK0tFWTog
NTA3MDNmZGIxZTA1NWEwZjcyMzUzYTEzZGUyNDM3NDEKK0lOOiBlOTQwNDdmNDI3NmFiYzg5OGZh
MWUyNjhiNTNiYTVlZmZlY2FkNzQ0YTMxNWQ5M2YxMjE4YTQ3NzI1YWM2NTEyYmJmMGU0MTg2ODFj
YjE1ZTZhOThjM2E4MmJiM2ZmZjlmNjQ1ODNiYTM5MjY4YTcwYTQ1ZDkxZjQzMmJhYWJmM2YzODMz
NWIxZTlmNTJhNDE0MWJmYWExYzU1NTcwYWIwZWNkZmNjZDVkN2NlZTViYmY2OTIyNzc4NDk4OTE2
MjVkZWI2NGE4ODUwYTQ3N2JjCitIQVNIOiA3NThjMWYyZjkyYjY4ZTQ5CisKK0tFWTogMmIwMjJm
ZGY0YmIxMzE0NmJhMDE0ZTFmMmFiZDczZDMKK0lOOiBhZjcyM2I3NzgwN2M0NWI0YWFlYTQzZTlk
NzlhOTE0OWZjZDFmZGM1OTg0OWIxYmZmYTg4YWJmMjdjNmE3NzlmZDgxNzJmMzI1OTA5YWU0M2U0
OWMyYTQ0ZDM5OTEzNTBhMzc3ZDU4NjQzZTVmNmNhOWQ4NzQzYzc4NDJkNThjYjg3MDY4MTRkNzgz
ZTJjNzg1NWI4ZDYzZTU1MTY0Y2JjMWZkN2ExM2JiOTYzZDZjNWJmNGJlNzM3YTAxNTljMTM0N2E3
MmI4OGMwYzUxMTVhNGYKK0hBU0g6IDIyNzVhNzYyMzk2ZTY5NDIKKworS0VZOiBkNmMyMzA0NTdi
MzQ5NGUzNzNjMTEzYzRmYmZjOGZlZgorSU46IDc4MjBlMWI1Zjc1NzgwYWU3ZTYzNjBjNjcwOGVj
OGJiNWY4MmY5NDhlNjU2ZGViMjE0YTI5ZDc4ODcxNjJjNjdhYTFkYzU0N2I5YjFiODc4Zjg3MGNi
NDRiMjJjNjFmODA0YzZhOWJmZWZkMzg1ODgyNTMzNjA1MzJhNTU4YzQxNzZjOThiNjM4NzJkZjM3
NDFhNzE4ZDg0ODdlOWJmMTdkNWRhM2NhOTE0NWNiNzZhOWFjZTgzN2ZjOWIxZjMwNjViOGE3Nzdl
MTBmYTk1ZGNmYmIzCitIQVNIOiA1M2I4ZjZlNjlmNWE4OWQ3CisKK0tFWTogMTdmNzcxNmQ3ZDQ5
ZmJhYmRmMTU4MzI4N2RkYTc4MDIKK0lOOiA5NmFiNDdlMTk3OWUzMGI0MThiOThmOGIwZjg2ZWU1
ZjVhNzczYjNhYjFkMDYyMjc0YTQzMzVmMmY4Y2VjNmEwNTg2YWVhYWU3ZGM0ZDBkYTgyZTUyYzNi
NGI2NzBiMGNjZDcyNGIwMTAwYWY1OGRkYzc0ODk5OTk1YmYwMDBmYzYyNjQ5MGIxOWI4YmJmNGY2
MzUyODc5YTA1MzBlOTdmOWJkMjQxODEwNGExYTI3ZTcyNTJkZjNhNmI5OTZiMjdmNTQ1MDNlZjhh
NzE4YTgxMjNkNTgwCitIQVNIOiA4YWVkZjRmYzUxMGE4ZmU3CisKK0tFWTogYjEyMTY4ZTJlNDYz
MTk4NjNiYzU5NWFhNDIxY2I0YmEKK0lOOiAwY2UwYTE3MDMxOTE5MmQ1NjQ4NGZjODQ3YTgyODVh
YmUyOGIzYmEzZjhhZWY1ODcwMmRmNWJmNTBlNGQwYWQyMzIwOTQ2ZDgyNTZkYmYyMzM4YzhjMGE2
YTFkYTQ4NDk2YWRmOTk0MWE0ZDM4ZDc0ZTBjOGFhNTJkYmI1Yzc1N2UyOGZlMzc1NjQyMTk2NGEz
ZTRlZWI5ZmRlY2YyNTI5ZDcwMjE2YjAwNTE1ZDU4NjkwODdiNjExZWQwY2ExNjA3YTY1MGVkNmEz
NzA3ZWM2YmRmYTRkNWIKK0hBU0g6IDRkODVlNjY2ZjgzNmVkY2QKKworS0VZOiBiMDViZDc1MzY1
NmVhZTM2N2Q4ZjM3YjQ5MDdlNGZhNworSU46IGZhMmE1MmY3NzU1NDUwNmQyNWU4ODQ3YmZlNjEz
MTM5NTY1Y2VkYmNlMDcxMTBhN2E1YWY1M2QwMjQyMDRhZjllMGJiMDhjODI2NjYxNmRmYzFlMjFi
ZDVjNjUxZGU2MjZlMTMwM2IwOGMwYzkwYWI3MDk2MTNjYWYyNzEzODQ4ZmYxYmEzMzEwODUyYTU3
NWQwN2UxMmM3NjkxY2IwODExNTcxNDdhNDEzZTgwZDUzYTU1MjQ4MjQwZWI1ZGM1NjZiOGRkNjdk
NjE2YzVkNGRkODE5OWQ1ZDY5CitIQVNIOiA4ODUxMTZkZWY2MzE2YzIwCisKK0tFWTogMGJiMzY4
YTI1MTY5MjE3NTA0Y2UxYmJjZTU4MjAzOTQKK0lOOiAzNGI0ZGY5ZWM5MDA3MmU5MTU0OGZiNDBh
MzUxMjgzNDk5ODZiN2U1MGU0MjVkODk0NjY0YTI3MGY5MTk0NTZhYmMwMzEyODRiMjliNmJlYmQ3
MzRlNTNkNTI0MTkxOWE4ZGNjYjA1YzM4YzYzM2ZjYmFkNTM5NzlkOTJlYjdjZmUxMTE1ODQxNTVh
NGMzNTJmMDZjMjkyNDIxNzhlZDRkOTA0ZWQ3MzlhMDRkNGViZWRkMjdiNzA0M2Q3OWFmYTliNzQw
ZGY0YWQ1OGM1NjQwZGE2N2ViMTIxOTk3CitIQVNIOiBmZDk2NWVjOWMxZWY0NDQ5CisKK0tFWTog
ZmRhZWM1NjMzZjhkNTQ4NTk1NzQ3OTJiY2RhODc0NjgKK0lOOiBlZDk2YjljZDU2N2Y1NWQxZDll
MDg3YmQ2M2FiY2NkMDdiYWFhY2NhOGE2ZDM3NWQyNTc2ZjAwYjFlMDliNWQ5MjAyMDBhNzRjYjEy
ZTg3MjFlNTUwYzgwYjhjNjFhYzdhOGU3MzNlMWExNGFkMDMxMWMzMGFmYzgzZjVhYTdhOGNkOWZj
YTQ3YWFmYTg0YmFiYmVmNWY5M2E4NmVhY2I1ZDUwZjY5NmI3YTYwZjBhYzQ4ZjliNTdkY2FiMjE2
OGNlMjZmNjM5MGNlM2MwOTFhOTQ3Mzk3ZGIwNTBjZTUKK0hBU0g6IGU5MjYxNTM0MGYyMzJiMTIK
KworS0VZOiBkNTI5Y2UwNTZjYjA1NDU4MGI1MzhjODE3NTJkNjNiNQorSU46IDc1Njc3NzU3YWE4
ZWVjOGU0NDQxMWQyMzhhYWM3N2ZiZjExNThjMWM5YzMxNzRiNzhlYWI0YTcwMDM0YzMyNWU1MmNk
MWEyNzVmYzBhMjRjNDMyZjgyYTEwYjU5MjBhOTIyOTgxZGFjNDM1NzE1MDAyNjNjMGJiZmI5NWQw
OGJmMjBhY2I1MjZiYzZhMTgwZTY1MTk0OTljZDU3MTQxNGY3YmY2OWQ3MDRiNDc2ZDYyMDgzZDUz
MDQ5Njc0YzQ2ZmI2MTZiMDI4YmQyNjllMWI4MjJkYWFlNDBhZTRlYzMxCitIQVNIOiA5ZDZlZTcy
MmQ5YWYwYWMxCisKK0tFWTogMjhiNDEzMjE4MzM1YmNjMmY5MDMxZGMzNTU0YjA1ODUKK0lOOiBl
NGFjMDVkMDg2MGQyOGY0NWI3ZGRlMzUwMjhkZmE2N2MyNWM4MzY0NTQ1YmYyN2EwMTYyMjhjNGYx
YjVjYmRhY2M0MTg4MDZkMjI5ZDFmZDJkMzA1NzBmZGIxMzA0ZTM4Yzc0NDNjMDJkMmU1NWRkZDIw
NzE4ZGQwOWQwYjNhNjY3ZGY3MWMyMDQwZjA3OWM5Nzk4YTdmNWNhN2IwOTE4NmRmNmM0NGVkZjQ3
NDA0MzNlYzE3ODczMTgwMDM4ZjdjNWUwZDQyMjBkMzc1NWUyNjRiMDU0M2FkNWE1YzFkNTM3CitI
QVNIOiA3ZDZkOGJlNDAyNmFiZDE5CisKK0tFWTogYWIzMWM4ODIwZDJkMDJmNjNkYzNhYzVhY2Fj
MzgyOGIKK0lOOiBkYWU5OTMxMjMzNzg3ZDQ3NmI0NzJjYjhlN2NhNGY4NmMyZjhiOWNkYzM4ZjQ5
YTUwODU3Zjk5ZTRlNjRiODlkNDUxZTFiYzhlNWFmYWNhZTM2NTc5ZDUxYjhiZjY3YTRiZTM2YTY1
ZjliNDY0YTE1MGMxZmMwMTJjMTE1YmVjMDhlNDViZWEyMTRiODBhZDM5ZTFhNzA1Y2I5YjBiNzU5
OTAxMTMzZDY2MTk4MTJkZWQ4YWJmNzg0OGE2Nzc1OGY0ODNhYWNkMTEyOTczMTVkYzE5MDc0NmE0
NGU5ZWQ1NjcwOGIKK0hBU0g6IGM5Y2Q1NGFkYTAxMzk3NTgKKworS0VZOiAxNDVkMzI4MTM0MWQy
NmM3NWNiZmZiYWFiMDZkNzgzYQorSU46IDk4NTllYjgzNmM0OWNiNDFiZWIyOWViNDkzOTg4YjQ1
OWY1ZDBiMjJhNGRhYzllNjRjMzRmOTNhNzFhNzAwNjEyY2Q1NjhmNzZiODRjZjcxOTY2ZWRmZWJh
ZjZiMjdlZjUyNTI0MjA4ZTQ5MDViODNmOGQ1MmU4Nzk2MTgxODAxMDFjMWVhMGUzMjZhNDRiYjRk
NTk1MzlmNzc5YTAxNTdhZjgzNWM1YmQ3MDA5ODgyZjE2YmIyYWEyYzg3ZDQ5YjZkYjQ5ZTk5NjM5
MGEzYWNlNTc4Nzk0YzRkMGYxODAyZGMwYTgyCitIQVNIOiAyMTliMGRmZTZjMjFmZjJhCisKK0tF
WTogZGIyMTQwOWFjYTUzYzA2ZTM0NzUyZWFmNjUxYWU3ZWMKK0lOOiA5NjJlYzVkYmU2MTk3NmQ5
MWVjYTU4MGI1MGQzYjIxYzQ3OGJiODEzOWRhOTRiZTBhOTBlNjhmODliMjZiOGIyOGQzNDg0Y2I5
Mzg3OTFjZjcyOWEyNjljNTRhZjQ3MGU1MjhhNzJhYzkxMjJlYTEwYzA4ZTgzNmY4ZjMyZjFjMWJi
Y2YxMDcxNmVmMjQzZDJhYmJlMzFiYmY1MmRmZDZjNjg4NGI4MWQ2YzQ4ZjE4ZjA4Nzg0MmIwNTU0
MzJlNWY2N2RlOTc4YTJlN2JkY2Q2NDVkZWM0M2ZlYjMzZjJiZTdmYzhiYjVkCitIQVNIOiBiMzFm
YWFhMTJjODBkMmIzCisKK0tFWTogMGE5MmE2ZGNlNjQxOGY1M2NkMzgyM2I5YTQwYzUxODMKK0lO
OiBkMWY0ZDUzYmQwNDA5YTMxMjdlZjE5NDgyZDQ3OTY0MTk3YmMwNjFiYzc3OWIzMmNhNWNhNmY1
NDZjMTgxODBkZmFiZDMyYjVhODUxOWY4NjhhYzNhYjY3Y2Q3MmMzYmZlYTNhZDk2ZjVlNDBmYzA5
YTY0MDQ2ZmY4MTg5MjhlZjg3ZWQwNDNkMGEwOTk0YzFhZGI4YjBiZGY0NDYxODhiOThiMjBkYzY1
YWRhNjg5NjU0YzVmY2Y4ZmUyNmQ2NmJhYmE4YzAyZDhiMzllZTJiZTkyMTdjMDlhNjJhNGZjZTgy
MzZlZGE2ZjcKK0hBU0g6IDNlOWJlNGIyNGNkM2Y0N2YKKworS0VZOiA4NjhkZmU3YzgxZmYwMmJk
ZWQ3YzQyYTI0MmQ0YzFiZAorSU46IGRlYTQ0YTc0NjZhNDkxMGI4OWZlNmFiY2Q4MjRlNjU2MDNh
MTdhYzQzNjg5MGZlY2JmNGY2YmM2ODA5YmU4YjEzYzBhNmQ1OTM4NDBkNDhhYzU5ZGUwNTk3ODdk
YWIxYzFjYTA5YTY4MzQxMTRjYmY3ZmYyNjg2YTcxZWMxMjkyMWFmZjVlMTNlOWNkODBjNzdiYTdh
ZGJkMzYxZTcyNDI5YzJiNDZlY2NiZTI3YjI1MDY4Y2Y0NTdmODY1YmQwMTQ5ZGExNDM4MzMxN2Jj
ZjhmYmY5NDllMzZlYWJjN2Y4ZGRlMDhjNTQ4M2E0CitIQVNIOiBhMGIzYWZiY2I5NDEyYWQwCisK
K0tFWTogYmM2NjJhMjg3MGI4YmFmNzRhMTE1M2U1ZDI0YjQ4MzIKK0lOOiA1MDM0MDFlODIxMTMz
ZTJlYzY5OTQyZDI4NTAzOTkzZTAzMzdhYzQzNTAyNDY2Zjc4OGZkZTQ4MjFlNWJiMmJlNmIwYWE4
MGE2ODg2ZWIxMGRjZWVjMzIyNTc2MmExMzU3OTkyYjc0MGQ1YWRhNmY2YWNiMjY3NjFjNTc1MzI1
OTljNjZjOWI1NTgxMmNlZDYxYmMwMjkzNzgxZjYwMGZhMWIyZDIxMWE3NTU2NzAyZjQxMjAzYjc4
MjQ2NTQyMDc4OTRmZWI5ZTJmNzQ0ZTAzZjVkNzk2ODJiYTQ1NzA3NTYwNTBlNDJlZWNiM2UwCitI
QVNIOiAyODVhZmZhODgzZDE1OTdlCisKK0tFWTogYTUxMjE3ZTMyM2FhYTEzZGMwZGViYWEyZDI2
YTcxNDEKK0lOOiA1MmM0MGQ2YjhkZmQ1ZmM5OTE1ODQ4MWRkODg5NjQzNDUyYzUzMzY0MzUzNDI5
ODM4MmQyZjNkMTU5YTdjMGYwMTljYjYxNGQ4NzczMjk5NDUxZmY4NzUyMGQ5NjgwZTVmMjgzZTll
OWEyZmU5YThhN2I1ZTRiZGE2Yjk0ZTU3OGI5Nzk0OGViOWJkODY4YWMzYzMzYmE3OWRmMzI1YzE0
MWViODNhZDZiZTdjMWI1YzkwMDFkNTlmODhhNGJiMjIwOGFjNjJkYWNlNTkyMmI2ZGYxNmYwOTA5
MmI0OGQ0MzJiY2RkNzliNGViNDg0Y2MKK0hBU0g6IDVhYWU2NGE3ZmNhZjMwNzIKKworS0VZOiA4
OWM4Yjg1NDFiZTQ4Mjc4ZWU0Y2FmZWQ2NjE2YTU4MQorSU46IDg2YTdjNzUyZDkxM2UzNzk0Mjk3
MjRmZjAzNTg5OTRmYjhjY2M2NjA1NTczNDM3ZWQ1NzQyZmQxYjI5MzRjNjk0MzI1OWMyZWVmYzUw
MDBmNTI5MjkwMWExNTRlODU2ZGYzYzhiN2ZkZjM3MGJjNzJmZmFlNTk1N2YxMDRmYjNiMDdlZDQ0
OGRlZjU3NTY4MGJjNjM3ZTM4MDRjZTljY2E5Y2UxZDg1ZmI3OWIzM2U4ZTRjNDVmMWY5NzRkMDYx
M2Q0MGM2MzczNGI5YzkyN2ZkMGU2ZTE2YmI0ZDI4ODIwNGJiNzU5YjE5OTI2OWZhN2NmCitIQVNI
OiAzMzliMDg0M2IwNWYyNjUyCisKK0tFWTogZThiNjY0Y2UzMmQzNWYwNjBlNWEwMTVjYWEyODdi
N2YKK0lOOiBjOWQ0OTZmMmUxYzIxNDExNTRiZmViMGM0YTQzNDdmYTdmYTAwMmFiMjU3M2M2MzRi
MmMyYTM3NmZkMjcwYzdkNDVkMmZkNjA3OGU0ZDk5N2FlZDM0YmQ0ZGJmYjMwOGUyYzFhMTRkMDdm
NThlMTM2M2MzZmM0YmYzMmFkZjRhZjRhNmQxYmNiNzllNGM1YzNkYjJlZDJjNjhmZDIyMjliNmI1
ZmM4MzFkN2EyY2NlOTg5ZDJlZjhkY2UxM2Y5ZTA3NmFlYWJiNWEzMGM3YWU3MmY0ZTk4ODc0Zjg4
NWNkYjUyNTE4ZTcxYTAyMGUwYmZiN2M5CitIQVNIOiAyNTRhNzgyNTRhYTUzMWY3CisKK0tFWTog
MWNlMDZiNmQ3ZjBjMTU3MzQ0NDhlNTNhNGZhNTJmYjMKK0lOOiBmZGE2NDlhY2UzN2I5ZmU0ZjRk
NTcyZDhiMWI3NGUyOGJhMTNkYjQ2ZjZiMGY0MmJhOWFjOTQwZDM3OWQ2ZDUwNjIzZmMxZWY3NTQ1
NzYzNjUxODE4MzQ3Y2UzOGEzZDg2ODI4MTQ4YjE0ZWYwOTBkZWE2MjZjNWMzZDEzNzkzNDE3MDRm
NzE5ZmZiYjIzNGU0MjNiMDAyNGVlNjM1Y2NkMmVlNTBjNTAxZDg2ODlmODRjOTI5ZDY4OTc0NWEw
NWJiYTU0Zjk5YTIzZmIyNDgzNjZhYjA1ZTMxYmZiYzE4YmU4NzExMGQ0MTlhYzQzODM0NDc2ZjIK
K0hBU0g6IGU1ZDJmN2Y5MzE1OTQ1ZDkKKworS0VZOiA4NGMyZjcxZGRmYTE0NTMzMmRhYmU3MzQ2
MGM3ZTAzZAorSU46IGE4YTE2MmE4YjM5OTc1YTk5ODU2OGVkZTA4ZGFjMmM5OGE3ZGE3MDIxNzEx
ZTE1OTM1NmMxM2NkMzlmNTA4MGZiZmU3ZjlmMmZmZDc1MTc0ZWQ2YmNkODJmZTBjYjE1OGE4M2Qx
MGJkNjQ2MzlmMGM2YTEwMzM1NjM1YzRhYWIzNGJjMDk4NmI4OThiOWI0ZGJjMDEzZmE0NTZhMzQz
NzRhZWUxYTBkNDM3ZjFkZTY5N2Y1ZmQyYjg3YzlhZDM5MDE3NDM0ZDY2NzYxYzBmMjZlODFlOWM5
OWE5ZGQ1N2YzOTBmMjQ4OGViYmZlN2QxNjY2Y2ZkYTY1CitIQVNIOiA3YzQxNmMzYmI4ODlmZjhi
CisKK0tFWTogNjNhYjE2M2NkZWRhNTQ5YmEyNjg4OTZiOWE2NzdkODkKK0lOOiA2NGJlOWNiMGFh
ZGI2NTQ0ZDQ0MDFiYTQ1YTNkMmI3ZDc2NmQ3ZDY3ZTA5YmIyZjE0MWU3NDNmYTcyYjhkZDE0ZDc0
MjdmYTJlYzM3Y2E2ZGM1YzMyODYxOTYyYzc3NDRiMWFmZWVhOGYyOGY4Nzg0MjBjZjY3MjY4Mjgx
YWI5YWQ2ZGNmMGFhY2RiYjUyYTY5ODNjYjkxZWJmYWZkMjk0YWVmY2U5MGM2ZjM2MjgzNzZkN2Fm
YWY0ZmQ1ODE4NjAyMzI4ZTIxNWNmMWFhM2M5NTEwY2U1M2Y0MmRjMDQyODhhY2NkZTk4NWU5MDIy
NDI2MGUzMThkNTg5CitIQVNIOiAyMWNiMTg5NDAxNzUwNDJiCisKK0tFWTogMmY4MDU3ZTdhMThm
MzU2ZDE4N2FjOThlNDMxMjc1MTUKK0lOOiBmNWM3NmY3YjZkNmNmMzAzNDJjMWY0NjczYWMwNjMw
OTFjOWMwMjg2MjIzODU0OTI1NWJmYzI1MzBmNzQzYzY5Y2Y0OTQzYTlkNDAzNWZhMTkxMjgyNjY3
M2IzYzk4OTJhNDg5ZTBhZmMwMTFhYmM0NWJiNWEyNTFmMmM4MGVjOTc5NjJmMzY2Mzc2ODQxOTM5
ZTk5OTc2MzdlZTFhMmRjMDY1NWU5ZThhMWQyNjJiMDQ2Y2M0YzBlY2NiOTgxZmZiNDZkNDk0ZDU1
MzdjZGIyMDJiODQwNjAxMzgwMjEyZjY3ZTcyOGNmOWMzODY3Y2JjNTNjMGE4MjVmNjEKK0hBU0g6
IDg0Mzc0N2ExMjM5NzFiMmMKKworS0VZOiAyZTc2NDQ5NWE5ZTlkOGNlN2RjZTJhNjM0YTM3NDQy
MworSU46IDdjN2IwOTYzMWQzZTA0MTIzZWVkOWVmYzhmZmEzNGYzMTgyZTQwZWY3MDBmMmYwOTg5
NjI3ZDY2NzcxOWE3MDA0YTRmMGJlNGZkOTg3NDAwZWUxMjIxNmRkN2NlNGI1N2I4ODliOGQ1NzQ3
ZTVjMGMwMGRmZDRlYjkwMTFiY2Q4NDgwNzBhZDBkNmRlZTQzMWM1MGNhZjYxMzEyNWY5MTY1YWQw
NWM2OWI0ODU5ZjdlZjU1ODY5ODkyMzg1Y2YyZmU0MGRkM2M0MDUxYTA1Njk4MDgwNWU4MTZlODZl
Mjg0OTNmN2JmZDE2MjE4ZTUyM2IyYzcyYWU0NzhkMGI4CitIQVNIOiA2NWZiNDNiNThjMDI5NDZk
CisKK0tFWTogMWYyYWFiYWY4ZTlmOGE4YTQyOGE1NjQwMjBkNDRiNDYKK0lOOiBhMmFmOTgxOGNh
ZDQ3OGQ2Mzg0ZjU0MWNkMWVkOWRmYjc2NGY2OTUzYzY0MWE2Y2U0MGJhMmFkY2RjYTA0N2ViYTAy
MWY1NTkzYjQ4ZDE4YmNiZDY1ODFmNzc2NjE0ZGZkM2M2NzY1ZmQyMmZjNmU3NmJhZjY0NjRkMzc3
YjFiNjYwN2RjMzMyOTQ3NWM5OTlmOGY2NjgzYjIyYWI3ZjBiYTFjOGQwODY3NjU2YTBjYjM4NDBj
YzgwYzU0M2FjYzU5OGE1ZGYzZjE0ZGQzZDdkZTI1NTRjODM3ZmJjYmRlYWU4NDUyOTE3MGU1OTI3
YzVhNzM3YzExYjkyZDM2NDcwCitIQVNIOiAyNTZhZmI0YTNjNWMxMWJjCisKK0tFWTogNjYxMzA0
ODI0MmEzNTNiN2E5MDhjM2MxZDEzN2EyODkKK0lOOiBjYjI0ZDRjMTFkYmMxYWRjNGY0YjY1YTA0
YjFlOWFkMzdiNTI1N2QzMTRjMDkxYjJlZjg3MDU1NmNmZGViYjRhYzJlNGMxMzQ4YWI1YmEyMDQ3
ZmY5ZDYyZTliNzhkNmI4YTI5ODU4ZGQxMDU1NDlkOTQzZDJmYmU0Yzk2Yzc4YzA3Yjg2NDc1NmE5
NDQ1YTAyMzVjZGVjMzBjMTkxZTg2OTEyZDgzZWUwYmQxZmEwOTQ0MzFmZTdjY2EyYWU3M2UyYjYx
MWIxMWY2Nzg4MzgxMjkxNDUyNGY1ODcyMDExZDUyNTE0YjM0MGM2ZmYxMDdhZTJiZDY1YTE3OTJj
ZDk4NzUKK0hBU0g6IDZiYzU4ZGM0NDhjOGJmZWMKKworS0VZOiBhODQ5NmNlZmZhOTYyZTY4NDU0
MTc5MGVhNmE0M2I2YgorSU46IDk2YzA4ZDM4NWMyZWI1OWI4MDZiOWNlOTliODJmMjhhYmJlM2Vl
M2RjZDQ4MTA3M2NlMTczMDEwMjk0NTRjN2RkYzMwM2Y4NGEwMTljOTliYTQ1YjMzOWU0ZjdhMjU4
NTI1MDhjMzY0ZmQ2ZDZmZDUwN2Q5ZTFkNzdhN2U5ZjcxZjRkZjcyZWNmOWQxOTdhMzFkNDBiMzc5
YzU3NmEwZGNlODRjNzEyMWMzNjhjZjhkYTA1Mjc4MjA1OWFkODBmNDdiMGI4Y2RjNmU2Yzk4NmFi
YTc4YjZmZTgxNzFkODMwZGQ0NTQwYWE5NWU4YjEyMjk2MWQ5MTkxMTgyZmY1NzQ1M2E3CitIQVNI
OiA1Njc3MWU5ZGVjNzdiYThhCisKK0tFWTogYzk3YzViY2Y2MTJhYWQxYjcxNTI4YjZhZjhmNWEx
NjAKK0lOOiA4NzYxZTNkOGY3OGVkM2Y2NmRkZjk3MzNkYzhkYjg0ZTdjMWEwYzI2OGU5MWI2YzA3
MWQ0NTcwMjcyZDliZjZkNDBjNzY3NTJhNzQ1YjMwNGFlMDk1MDZhOGI3NTFiNzY2NjNkYzg1ZTQ4
ZmM1MmRmOGRmOGFhOTc4ZDA4MmVmMWE1MjdkNTVkM2NhYmQyMDA3ZWRhNzUxZGQyNTg5YmM0ZDg2
YjY5Y2U4ZWM5ZDBlNzkwZWE0ODYxNjhhMGZiNjIxODYxYzljOWQ0YWE3NmZkNjcyMTdhOWMxZmM5
ZWIzMjkxNjAyMDg2MTZkNWY0OTFjNDZmYjUxNTlhNjhiZjM3NmRmMmUxCitIQVNIOiAzZTNkMTkx
ZTkwMmZmYmZlCisKK0tFWTogMDMwMGI5ZDc2NDA0OWQ3OTc2ZjJjNTRhYzJiMGRkZjgKK0lOOiBh
OTUyNjViMzA0OTMzMmM0ZGU0NTRmMDhjMGFkM2MyZWRkYzYyYjAxYjZhYTExMWEyOTAwZWJiNGFi
MTI2YTY3MzkxNTdkODQ4OTVlOTYyMTRjYjUzNTM2NTNmODgwYmNkMDRhNjQxMDI3Nzk5MWJhZjQy
ZmUzNGFhZjEzMWMzYzg0YTgzYjZjMjk4OTkxODBiMWY2N2I3NmQ3YjMyN2ExODE2YzQyMzZlZTlk
NjMwNmZiOTg2YmVkZDIxNTcwZWJmOWVmYThlNjc2Y2I3MjNmOTFlZTE0ODU3YzE4NmM4MDcyNWYz
NWQ5YWQwZGE3M2IxZTA3YTFiOTM1YzI5ZmUwOGU2YWYwY2MKK0hBU0g6IGJmOGZkZjQ3ZjgxYmJi
NjYKKworS0VZOiBmOTNjYWExNWUzN2M4Nzg1ZjFmNGQwNmE3YTMxOGY2ZgorSU46IDA2YzFmZmNl
ZWY3MTI1NTljY2YyMmZmNzRlYjMzZGYyZGMwMzIzMDg4NmIzYjc2ZjU0YzhkYWQ0YTYxMjllNTQ3
MmU0ZTk0OTFkMmNhNWZkYWE5YmUyYzVmY2FmZTgwZjk1N2I5OWQzZTk4NTM3ZTY3YmI2NzQyOTAx
ZmQ0NDJlMDZmYTRjZmM5MDZmNDZkY2EyMDE4MmYwN2ZhNmY5MmFjNzVlZjUzNTYyNDY4Mjg4ZWJh
MzdkNmU0NDkwMjZjMjZmMDhjZjQ5MzMzZTcwNTZmOWViMjk2OTRiYjY4YjRjZDIzNzVlNDA5Yzhi
NDcwYTc3ZWE5ZTIwN2MxMDU3OGNiYjEwNjlkYTg4CitIQVNIOiBkOGVmN2VhNGY1OGEwZGM3CisK
K0tFWTogMTI3YmMzZDM4Mjg0ODJmZDYyZGMzNmVjOWE1NThlZGQKK0lOOiA5ODU3OGVmZGU1YTkz
YWViNDcwNTAzYjM0MDBjMjhjNTEzNTMwYzdjZWY5MDFkN2MzMzViMzBlZGVhYWI0MGI2Y2ZlNDI5
ZDZkZGJmNGIzMjcwMWJiNTkyNGM4MmZkOGM2ODNkNzdiYjQxZmYwNTZlM2YzMjVjMTA3NDkzYjAw
YjRjZjUyODhkMmIzNjQwMjc3MTNhYTRmMGJmNjdiNzczNTZjYTM2YjVhNzdmMWRkY2UxZWYwNGI4
Yjc1NjllYTgxNjY0Nzg0OWU2ZWRhMWQ1MTA3M2EwNzZhOWM3ZWI1YjIxYTNmMzkyYjM1ZDE5MzBk
MGE5MGRlMGEyOGU1ZTE0ZDRiOTBmMDU0ZTE2CitIQVNIOiAyZmQ1MWM4MDYyNGZmYTI2CisKK0tF
WTogOTM4ZGJkY2E1YjA0Y2U3MDVmY2ZhMTRmMjgyOTQzMGIKK0lOOiA3N2I3ZTg3NjI0MDJlNGZl
YjdiYmI1YzY4YjQ0MDAzZWJlZmFkMDI1Yzg0NGY2MmZlZWJkZDgyYjBmMjIxZTFlZmI5MmJmODMx
ZTZkMGJhYzgwYzk3MjM0YTRmNTk1OTNiZjIwOWYyMTY5YTQxMDkzNWM1MjIxNTkyOGM1NmQ2ZWJi
NmNkMmVhNzhiM2U0OTdmZWNhMmY5MGY5MDUzNjA3NjI2ZmQ4NTcyZjA4MTU4YTI1OTYyNDczMzBl
ZTU3ZjU4ZjU3ZWFjZWQ1MTY4Mjg0OGY3YTk3OWNmOTVjNjViODRlOWI4ZDBkYWY4YWEwOTg3YzUx
ZWFmNWI4ODczMzljNzBmMDAwOTllNjVlYWIKK0hBU0g6IGZhZWNmNmM4ZmViZGEzNTAKKworS0VZ
OiA4YWExMTJhOTQwYTg4NTVmYmFhMzg0NjIzYjk0OWEyMgorSU46IDc3YmU3OGRhYjg2MWEzNmU3
Zjc1MTFkMGIxMDg2NmI5YjA0ZGExMmM0ZDRmZmI2MTI2MDgxZThlYzI2ZGRiZjQxYmI3MmY4ODNh
MTEzNmJjMGFkZWM3ZDZiODQ4NDcyYTAwMzczMTY1MTVhNzBjZTg5OWUzNjM2Y2ZjYmI1NDg3OTkz
NzFhNTJkYzY4NTUxYzQ2MzZmOWFhZjM1OGYyOTRhYTFlYWQwOGVmNzhjMjFhZmEyZjViOTNmYmVl
OGQ5MmNhMjgyOWVmMWZhMTM5NmNkNmNhYjAzZWQxOGQ4NWE2MjUwZmFiZmM3Y2Q1MzhhZmFmMmEw
MTRmZmVmODJhNjM2NDZhMGUyMDI1ZGI5Yzg5CitIQVNIOiBmYWRmYjA4Zjk5ZDU3M2VkCisKK0tF
WTogMzIxOWEwNDIxYTczNjlmMDU1YzlkNWY3NzY2ZWIxYzIKK0lOOiBkYjQ3Zjk3ZjVkNGQ0OWFl
ZTRlNTE0NTE3MjgxODczNjE1ODY3NmJjMWJmN2JjMDc1YmY3NmFhOTdhZjY4MGVmODFkMmUyYTFm
YWI1ZmE4M2JmNGNkZjg4YmQ3YWE3NjEwNDgzMTUwZWY3MDQ2NDE0NzcyMTU3OTIxZDBkMDFhNDk1
ZjM1YzFmMjYyZjQ2Nzk5OTBhMWRmYjQ4MzljMzA4NWNmNzE2ZmUwNDAyMTZmZWJiYjk3NGFlNDk2
NTBmYzdlOWI3YzMwZTM1NGJkZTg1Njg4OGJlYjRiY2FmOGQ0YjE0YWE0YmNlMDhlYmRkNzQyZjMw
NzRhYWE2ZTc0MmM0ODY0ZDQ4Yzk0ZTVlNjU3NGUwCitIQVNIOiAwMDM0Yzc0NjMyM2NmNzExCisK
K0tFWTogNzE5N2E0MTRhNDhiMmNlODNhOTkyMzUxOTY1YmQ2YzUKK0lOOiAxYmU3Y2JiNjI3NGUy
YjFlNmI1ODhjNmQ3MGZkMWVmOTI5YmQ5YWIwNjQ5MDAzYTY5ZmQ3Y2FkZDJiOWI5OTE3Y2JjODlh
MDY5ZWM5OTQ0NDU1ZTk0NGI0YzFiYjUyMGJkYjk3NzQwZDkxNzRlNmY5ZWVkNGZjYTI0YTcyNTNl
YmJmOGNmYjE1ZTU2YTM1MmVmZjhmZGE0YjA4MjNhNmI1MmVhMjhmMjE0YWYwY2FmNTY4Yzc1MGNi
NDNjMmYzOTIxOWE1N2I5MzBjZjhmNTE1MTU0MzE5NGIwZjhlNjhjNzhhZDdhNTBiMDhiNjQyMzMz
YjZmM2I2NzRjNGFlNDg3OWM4ZDNlZDVjOWJhN2RjMTY0NTUKK0hBU0g6IDg5ZGFlZjM4ZDJkMGI5
MmIKKworS0VZOiA1N2U3ODBjNTIzYWVlODE0YmJmOThmNjM1OWEyM2NhYQorSU46IDQ0OTA4YmRm
YTBkNWZkMWY1YmExYmYyNTNiMjBjMTZjM2UyYzU4MzRkYThlOGZjN2VlYWRkMjE4MzVlZmNmNDVh
YjZkNDI0NDdiZWUyNTMwZGIzMDNiZDY4MjFmMWIxZjEwMTBhZmIxOTJmZTgxODU3NGUyOTJhYzQz
MGVkNWI2ZDcxMmI5YmNjYmQyMzVjY2VmNGRjNjE4ZGM3MTkyZjRiODBkZTVjZTUwODhlYzNhZWQ5
NDBiODBjODRlZmQ0YzZmMzFhYjkwNTNkYTBmODRlMzlkYzk3MTg0MDFjMDIzMWY5ZTEzZWNmZTRm
NGI3MzFjOGIyNGM2YThmOWE5YmZkYTllY2VjYzJlZWMyMDBmZjc0MmQwCitIQVNIOiA1YWU5Zjlk
YzM5MjBjMjA2CisKK0tFWTogYjBkNTFkM2FkZTM1NjQxNjg4ZjI1OGFkZWE3NGU5ZDEKK0lOOiBh
NTIyYTU3MWJkYjg5MDQ5MjhmMWM0ZTc5YWEwMGU3OTFjYWIwMGU0MjZkOTRkMGJmYWM1YTlhZjQ4
ZjM0MDUzMWZjMGMyNTZhYTc5OTI0MGJlZmJjZTc1N2YzMTRmZjlhMzhhZDFlOTk0NDMxZTExYjc3
MTY4N2MwNmUwYTM0NTA4NWE1YmMzZjk1YTc2YWY2NjAwZjIxN2NiNjZmZjg1ZjYwYjM5YzEyMGE4
NmJhMDEyZTg2ZDQzODExMzQ3ZmYzN2I2MTkwOGU2NTU0MmExMDI3NDdkYWNhNWQzNTU4MTE4ZDNj
ZTJjYTJkYWQxYzM4MTMxZGYyN2U0MmZjY2JjZmVlNzhlZWQyZjg3ZjJiYjI1MDE1OWU1CitIQVNI
OiA0YmM2ODhiYjQyNDI1MTUxCisKK0tFWTogNDk5ODBlYjI5NWJiNjk5NzU1NWEwNTA0YmE0NzU0
ZjUKK0lOOiAzMWU5YjJhYzA0YTFjYmFmOWY3YzAzY2YyZDcwZjkwZjY4M2JiYzBlYjJkZGNkZGVk
ZWE5MTdkMTQ0MTRmN2U5MGZhMDliZTY0YWMxODQ5MmUyZDkwZDY5Nzc2NzU5NzZjZDVhYmYwZTA1
NTYyODRhNWVkZDc3M2Q2ZTRhZjI5YjMyNmNkMmJlNGUxNmM3MjkzYWIwYWYwOWZjY2I5ZDE2NzAx
ZTZkYjVhODFkNDJlYTA1NzU1MzFjNTFjYjVlYTA3NmI3Yzk1N2E5NDQwMWRhNzhkNDMwNzY1MTUz
NDNkYjA4MTZmYTIwYzM4ZWM1ZDM1NDEzOTI0YzcwZmEwMTU3YjI4MGIwMmRiZjk4MjYxNDk4NDQy
N2Q5NTAKK0hBU0g6IDFkNzAwMzYzNjlkYTQxNDcKKworS0VZOiA2N2E1OTBmNGI4YzkwMjg2NWEy
NWUzODBhODFjZDYzMAorSU46IDM1NDIzZjk4YjU1NDY3YWRmOTBlMzcyZjUxNjQ4M2ZjM2VmMWQ3
MmEwMDFlMTkwYzdhMjk1NDVjOWM5OTMyNjdiZTA3NTdmY2E0NWJhMTQ5NWY2NTIxODcwMmE1ZjYx
N2VjODIzNzcxMGFhZjAzMGRjOTI2NGFmYTljN2RhOGNjYzE2ZjJjNjc3NWJhMWM2NWExYTkxZjRl
YWE0ZmYwMzU1MDhmY2Q0Y2FlOWZhZjMyMjNlOTdmM2Q4NGZmMDg5NzAyNWEyNWM2ODdkNThiMjg3
NjM5NTY0N2Q3NDg5ZDFmZDcxNDY4OGY2NGZmNDdmOTc3MjBmNGVjNWIwYmVjZWRlY2IzZGEzNTk0
OWI0MGQ5YmZlZGMzNWRiYTdhCitIQVNIOiA5MmI4ZjgxMzViNjFjMjRlCisKK0tFWTogNTU0MmM0
NjM2ZTdjMzA2N2RmOGExNWM4NzNiYmNlNzcKK0lOOiBiZTI0ZmVhNzM2M2I1ZjBhNzJhODUwYzc5
ZDcwOWUzYTk5MGI0MTYwODJjNGMzM2ZiYjBiMDljOTc2NDlmYTFjNTZkMTVhYmFmMTRjYzNjMmMz
NGQyYTljZmEzMGU2Nzk4OGI2OTdiN2QzMzYyY2IwN2M0NjA1NTVlYmYxZjVlMWMwM2ViOTA1Yzhk
MDI2Mjg4MGFlYmFjYTUyNGJiN2VkYWY3OWJkM2FhZjg4OGJlNmQxMWU1MTFkN2JmNmRiNWI4OWIw
YTJkMmMxZTQyYmFlY2U1NzM0NTA1NWI2ZGU5ZWI2N2MyYmVmZThjZWQ1YjRlMjE4NGQ0NjM0MmYz
ZjJmZjI0YmIzODg5OWFiOTc0ZDcxZDI1NDhmNTBkMjFkCitIQVNIOiA1MjM2YTg4MjMyZWI1YWIx
CisKK0tFWTogMjE0N2ZiMjNjZmIyZjgyZmI5M2NmZTQwNWNjODlmMjIKK0lOOiBhNjVjZjViNGRj
MmViMTk3MzAwOTgzOGJiMzgxNTc0OWY0ZjM2NDRhNDMwNTdkZGZkNjFlZGQ5NDJjNDE5MmVkZTg1
Nzg3MTkzYmY3MDdkNmJhZDg5MGFjZTAyYzk0YjRlZTIzNDhhMTU5ZTYxMTcyMzA1ZWNjZjUwZTdj
Zjg1NTljZmY0MmZiYWY3YTEwMGMyMzRkZjg1NDIyZDZkOWMwYjg2OTlmMjViNThlOTkxYTFiZTY0
ZDUzNzU2NmM2MDJmYmU1NDk4MDM5OGMyMzhhMmU4NzQyNWViN2M3NGFkYzZkMmY3NjE2MjQxMmIz
NTg5NzhjZWQ1MTJiZjI2ZTc1MDdkNjcxYzM5MzcyOWE5YWMzYTA3Yzc0MzZkYzljYmEKK0hBU0g6
IDJkYTNiN2JlZWQyODIxZjQKKworS0VZOiBkNDI5OTcxYWYxZDFmM2RkYzA0M2RkNTZiZWE0M2Vj
YworSU46IDNhMjhlMDFiYjI0NWNiNjQzNTAyNWJlZjUwMGRkZjA4NTkzZDdiM2M3YThiZTAxNjUx
YmU2MzYzZGNlMWU3YTNhNTlmNDljMGY5NDAzYjA3MjY2NDcwMGU3NGY0NTk5YjkyZjIxZDU3ODg2
ZDk3MDEzYTI0ZDFjNmE0OWRiN2RlODQxNzZiZThlZGEzM2EzNzNmMzQ3ZWE4NjY0YWFiNzg2YjMz
N2FjMWQ4ODE0OGJkYjRkYzQ1NmE5MmIyYTM2NjIxZGFiZjcxMDdlMzllNGI0OTllOTMxYmRjZDIx
YTE5NDlmMGU5ZWVkYjcxNmZhOTQ3NTJkMmE1NjU1OTI1MjM5NjA3MDAxODdhZWQzNWU0OTBmNDVk
YTJkN2JhMzgyMjU4CitIQVNIOiA4MzhkNjhkOTJkNmFmNDdlCisKK0tFWTogZmVkNjBhYjEyMzNj
OTA5NDEzYTdmOGRlOWE2NDFjOGUKK0lOOiBkNDZjNDU1NmI1MDMxNDc5ZTAxZDQwY2RlYWUzYWRj
ZDE0ZmM2ZWE2ZTE1MTVjZTdjOTc2YWQ2ZTYyYTk3ZGYwM2I3ODZmZjBlN2E2NjYwNGRlNWQ5MzUy
NTZlNTUwODUzNjA5YWE2NDk4YWYzODBkMmFjNjA5NzIzZjk0OWYwMTY2MjI0MGMzOTI1ZWVmZmQx
Njc5M2MxYjU4OWUyNWNiZTZiYTAwYmY0MzdlNGFjNmM1NmQ5NmRiMzNiMTdiZjU0NTMwNDgwNTg4
YWRjYjE0ZDhiOGVlYmYxZTZhNWRjNzk2OTA3MjM5YmNhN2ZhMmY0M2UxYzUxY2VmZmJkZTIyYTYx
ZWVkNDVhY2E5ZWM0OGY3YWUxMWVhNzk4YzE2YjkwM2NlCitIQVNIOiA0Y2JjM2M2NjNlZjUyYzUw
CisKK0tFWTogMmQyMjMxYWI2MTM3MmQ0YjkzNDIxZGRkYjM1MTQ2N2EKK0lOOiBjZjlkMmIxMmYw
ZDYxYTllZDA4MWIzMDhmYmFjMGVkNjM5Mjg1Y2UzNzlkNmMzN2FhNGFjYjk3YTY3NWExM2JkMmEw
YWNhYjBjYTRmMDZlNTU3YWE2NzBmN2NmMjIwOGNkNWUzNzk4MWY0YzA5ZGQzN2VkNDY3N2NmOGQy
MjA2ZjBiMDlhYTYxODVkMTUyMjYzYjg2MzZhYjFmNDM5YzM5ZDMzZmYyZTZmZjQzM2UzZDE5MjMx
ZjA3ODUzZGMyYjc2MmY1MjdiZTllYjM2NDBhZjk2MDc0M2YyNTAwNzMxYjdmNDU5M2JjNGM2YTMy
MjQzNGRjY2JlODA4YWFiN2YwOTM2YTFmZGUwYzEwZDhhYTBjODU2ZDc4MmZmZWFjYzNlMmU3NjgK
K0hBU0g6IDgzMmQ2ZGJlNGQyZWMxN2UKKworS0VZOiBiYjEzMTBlNjhkMzI0YzY1ZDhkMTI2OWQ2
MGFjZDM5ZAorSU46IDhhODA5MWRhNTk0MGJmNmJhMTZlZWYyZWEzY2M1ZDQ3MjgxMjhlMDY4NGZk
NDUzZjY1MjdkMzMwYWJjMmNhODM3NDAwNGYxZjEwYTU0YmZhNGJlOGIzOWQ0Zjc3YjZjODlkNDgx
ZTBmZWUyNjA0ZDQwMmMxNTkzZGZiOTMwZTdkYTRkMzE0YzcwZDQzMTJkYzIwNTFjZDA1ZjE2Njgw
YjVhNTc0OGY4MWExYTQ0OGZlNGU1MWI5MTg0ZTY1MTVmM2RjNjFhMmVkNmQzODY2ZDhhZWYxZGY1
NjEwYzQxYTM1MTU0MjBjNmQ1ZmZhOWE4OWY5YjY0YThhNzNmMDI3NWFjNjNkNWMwOWU2MGUzNDQ2
ZWU4ODg4NjllNDJhOGJhM2I4NDlkZmI2CitIQVNIOiAzNDJiYzRjNTEyYzAyYjMwCisKK0tFWTog
MjBkNThlMGRhODg1MTAzNzc2ZjUxNDdiMTliYjk0OGMKK0lOOiAwMmIyYjc1ZjgxNTg5Zjg5NDg0
NzFjZjQ3N2YyMjc2NTcyOWE3Yjc1MzY4ZTM5NTU2NjJjYzM5MzhlMDVmMGM1YTMzZWY5ZTk5ODc3
YTViZGYyYWQ3NTgxNjVkNWJhOWIzZTY2NDZlYjBlNTNhMDdhYWU1YWJhZjczNjU0NzQ3YTkxNjMw
MzhhYjM1YzEzMDNlMjgzMjBkMjZlZjhhYTU2ZGY4ZjNkODNjMTA4NjNjNTM2NGFjYmI4ZDRhMTFi
OGE4ODE1MjQ4NzZlN2VlZGZlMDg3YTc2ZDE5Y2NiNGFmMTRlYWQ4MzkwMzI3YjViODc4ZjkzNzU4
YTY2NWZkMzMwZDc5MjNjOWUyZDU2YTIwZmM4ODk2YmZlNWEzNTMzZGY2MTNlYTk1NzE3CitIQVNI
OiAyZmUyMmMxYmEzNjc2MDA1CisKK0tFWTogMmVjMjE2YzE1NWY1ZTI1OWE5NmZkY2RiMzdmNDAw
MjgKK0lOOiBmZThkNDZiZGNmZGI2NzFhMmVhZWRmZmVhOGM5YTQ1NGE1NTU2YzQxYjBjYzI1ZDY4
OGVmMTAxMTE3NzA3YzE0ZjlkMWMxNDEwYzE1ZTg5NWJiZDkwMTcwZDNhMmI5MTBhZjA3NGI0MGQ4
ZWI0MjZjNTg4YTIxMjFkYzJkOTUyYTIwMGMzNjRhMzFkZDkxOWQ3NzkyNjQ1YWMzZTE1MzRjYTVj
YmNlYWM3YTk1ZWVjYTA0YjVjZmZiYWM5YjlmM2I1OGU2YTYwZDlkMWYxYmM3YTk2MTk3NWI4ZjUy
NTMyZmE3ZWMwYTljNzI1MGNjMzgzZjZiNzcyYmUzMWJmZTg2YWNjYjZkMmNjOWEzMmFlNDJiODBk
ZmQ3MjNhNDAxZWE2Njg3NzRkNDEwODYKK0hBU0g6IGMwYzFjMWRkOWIzOWNhODQKKworS0VZOiBj
NDNkMjZmNDY1NGUyMWVmNDFmYTcyZTk0YmQ2ZDg4NworSU46IDg0MjUzODIyNTJkYWNkYmE4ZWMz
OThjYzI0NzIzMmYzZmFlMDZjMmVmZTViMTk0MDFjNDY3MWYyNjY0YmI0YTk3ZTU5ODdlMzFhZTMy
ZWUwMDA0ZWM0YzhkMGFiZjEwYzM1YmZmOWU2MDUyZDQ5MGYxNTc4MDU0Y2VlZTg3ZjllYjdkMTRl
MDUxMWNjNjViZmYwNWJmZjU5ODkzNzgxYjhhODFkNThhZDA3MmQ4ZTg0ZmI4Mjk1MjEwZTBhYjE5
Y2I0YjJhY2FmNjNlNmZiZTc5Yjc0YmNkZjU2OWUzNWFhMTRjNjY4OTdkOThhOWI1NDhlNjVkZGJm
NWU1MGYzMzYwNjY2YmYzMDk5YjhiZmYxZDdmZmI5YTE0YmY2ZWNkMTIyMjdjNTA0ZmQwYjY4CitI
QVNIOiAyMzMzYmFjZjVjZmUxODY1CisKK0tFWTogOWI1NjRmODJiYWEwODE3YjdkMjljODA5Zjcy
NGY3NzYKK0lOOiAxZDNiMWE3OWFlMDFjYTM3N2FmZmViMDY0YjExYmNjODc0OTljOWIxZDFlZDli
OTUzYzgwZmQ1NGVlNzAzMTE3NzA1ZTY3M2VkMDk5ZDQ1NzhjYjQ2ZjcxN2JjYTQzODQ3YzZlOThj
Mzc4NGRkNjlhNTI5OGI0ZTkzNzM5ZDVlOGYyYzIxNmNmMGFkZGVkNDlkNGEwZDlmZmEzOGJmYTk1
NThhNzFiNWM0M2VkZjY4NjhiMjk1Y2MwMjBjYTBiY2FjY2FiZTBhYzNmNGQ5ZDFjNmFmNDRlMjZk
OGZkYTc3NjY2NWQyZmUyNmVmMWYzYjQ1ZmUyNWI0ZmEyYmI2YjE0NjMyNjczNjk0Zjc2YmM4M2Zh
YTIwNjM2ZjExYmU3ZjIwZmEzNDkwMDZmNWQ2ZTRjCitIQVNIOiA5MTE5MjRhYWNkNTUxYjZiCisK
K0tFWTogYTUyYTM2OGJmMmY5NjlhMWEzN2Q3OTNlZDkyOTExMWMKK0lOOiBhZjE1ZDY3NTI5OWE2
YjNhNTA4OGJhNjBkMzY0OTRhNTQ0NWQ4ZDNlZWNmMjIyNTI5MGNmYmVmOGU4NmIxZmIzMzNkYjEw
NWQyNGYxMGVlYjliMTMyYTJiYjlmNWFhNzU0ZDU5M2ExYmY5Njk5NWEzZTVhZDkwMGQ5YjZiMmUy
MDJlZDg3Nzc3MjM4ZWM2YTcxN2ZmMjMyM2M5ZGYzMjg0NWJiZTBlODlhMWY3MWUyMmExYjYwMzky
OTc4MmUzZjcwZTA5ZGU1ZTE4ZDQ3ZjA3ZmY0ODFmOGVmMDRiMGU2ZTJjNGZlNmYzZDc2ZjI0MTIz
MDgzYjI1ZTE1ZmNhNjMyZDgzYzY2ZmI0NzRkNjQ5ODE1ZDc1MTM5ZGVlMTQxYzk2OTQyYjRiOTk0
MGQxMGUzZmIKK0hBU0g6IGEzZjUwNmZlNDJkYmRlZWEKKworS0VZOiA2YTdmMWM2NzZjYWJhOTgy
Y2RkNjU5ZjUzMWIyMGMwNworSU46IGQzYTM3YjNmMDFkZTNhMDQ5N2NmMTY1MzFmNDg4N2MyZTYy
YWZlODdiODA4NTkzMjljMjRmNzZlYmQzY2JiMWY0ZGRkMWQ5OTYwYjE5MzA4ZGRlNzJlYTFjNmJi
NWI1ODg0YTlhY2Q5M2M1MDQxOTg2ZmQ3YmE4ZTg3MTdjNjZmNjc1MTQxZGIyODA5ODUyM2UxYWY1
MWQ2YjMxZWEzNzJjOGE3ZWVjZDlhOWJkNzU5N2VjN2MyNzBmZjVkYzA0ODUxZGFkZTc2YTY0Mzlh
YTdiNWExYTQyNTc0MTNmNjk5NmNlMmY0MDkzY2M3MGFhMjZiMDQxODc0OTgwOGYxMTQ2MGYwMmNh
NzYwNzZlNTU4NjY0MTE1ZmQ2MjdlZWZmNDUyNDFlMTE4NDJmNDA2YTU2ZjhmCitIQVNIOiA4ZWE1
NzI1NTdiN2ZjNWVlCisKK0tFWTogMDQ1NzQ1Y2FmODE3OTAyMjFmZjlmOGFjYjRiYmE4ZjAKK0lO
OiAyNjBkN2M5NGEyN2FhMzc4ZGI4ZDZhMmE5ZGE5ZDQ3N2Q0ODgwNjMxZDViMTc0MTgxMGY4YjU2
ZGIzMWFhMWFkMTZkN2M2Zjk1NmY0NDYwYTJiMWQ5OTQwNWMxZmQ1MWZiNjc0OWRkODdjYmQwZGYx
OGFjNGI2ZGFlYjQ2NTcyZTI2YTViY2Q1ZTVkYjFiOGU4YjU5Y2NjNzg4ODNjYTczNDMyMGIwODM1
Mjc1ZmQ5YThiZmEzNWY3ZWNjYTEzMDI1YjYwMzM2OWU0NDllMmMxZjM1YTUwNmY3MmIyNGIwMjFh
ZmY2ZmZlZDI5YWJkMDc0NzhiNWFmMjIyMjNhODg5MDE3ZWM0ZGI3NjhmMWFjNjVkNmJkMDYxOGJi
NWI1YWY0NzIxY2U3OTc2MjZlMTJlMGI2MDBhCitIQVNIOiA4MzJlYzBkY2VjZTBiNTU1CisKK0tF
WTogNzJiZjEyMzg4NjAyYTMyNmM3Y2MxYzk5Mzk0OTU4NDcKK0lOOiBkM2ZiMjdiMGQ3YTA2ZDQ5
YzVmZTU0ZjA4NWJlZGQ5NDhiY2E1ODMxNDg1NGRhZTk0MWJkZmVjYTJmZjM0ZDE3ZDhkZjM4ZmFl
YTQ5NDU3OTVlNzUyN2JjYTk1NzU4NWUwZjQ2MWU2ZjA4ZWQ4NTc1NjkzNDkwZjA0N2VkYzIyZDA0
ZTRhM2M3N2E5NDQ3MTc5YjI4ODVkZmMyMmY2MDJkYTlmYTBmMTdlZDE3ZjgzZWU0MjJiYjZkZDcy
YTdlYmEzMmE4NTAxN2EyNzVkZWMxMTc0ZGVlMGZiODgyNjRhNjU3NjFhODEyZDc0YWQ5Mzc1YzQx
NWQ4NDNhOWFjMDBiN2M1NWQ4YWZhMzI0YWM5ZjI5Y2RlNWMzY2ZiNzMxNzRkOTU2NzFlNzc0Mjkx
N2JjZjFhNDAzMTgKK0hBU0g6IGI0ZjFlYjMwZjIxM2QwN2EKKworS0VZOiBiMDFjNmE4YTVjNDkz
ODBlMDBiYzIwYzZjNTA2YWQwMAorSU46IDEyN2Q0Y2FhODEzNzM0ZjAyM2NiMzAyODYxZmVjZTRm
Nzc2YTQ2YTE3MzJmYjBjOTEzMWMzMTFmZjk3NzkzNTQ1MWNiNWVmYTIzMmM0YmRiN2NmNzcyM2Y0
YjlhZWQxNzIzMTQ0NDEzMWNmOTdjOTdkZDBjYTc3ZjRmN2NhODg2NjNkMTdlZDYwZDA5MzdmYzAz
NjEzODNjM2Q3ZWU5ZmNhYzE4ODExZDM2YjdlNDliMmVhNmU2YzM2YmFiOTA2YTExYTI1ZWY3M2I0
YTQ0MTdmNzE2OTQ1ZGFkM2I2ZjE4ZTI1YWU2MjUxMWQ1ZDJlYzc2MGQzZGViNzdiN2I2YTliMWI1
Y2JjODU1ODQxYzg4M2M1OThkYmI0MDdhNTQ2Yjk5OWZjMzFjMjZjZTZlOTRmOGE5YTE2YzQ3CitI
QVNIOiAwOTMxYzhhYWIyZGI2NTQ1CisKK0tFWTogYzQ5NWFlNjgwZmNiYzljZDc3NTllM2UxNGZm
MTQzYTMKK0lOOiAwYzFjZTlkZjVhODU4MTFjYmMzMjZjMDc0NmZkNmZmMGQxZjUwMTc0NmZlMGMy
YzJmMTgzMTJjOGM4NjI1ZGY3YjU3ZTAzMzM5NzJmZDA5ODhiZmI1ZGM4MjdhNzIzMjEzOTFmNmM0
Y2FlODIwMDdiMDQwMmRmZTRkNDdlNDJmODY3N2QyZjEzNDA0NGE0ZTEyMzc1ZTE4NWQwMjAwOGU0
ZmU4MWM2NTU4YWZlYzVkZTg4NDRlN2M0ZWI2NDkyMmIyZmY5NjhjYzNmNThkMGE5MDY2NmU0Zjg0
MDE4NWVjNzJmMGI1MjUxNGNhZDdhYzJmODA4NzU1MWYwNWE5NzUzYjlhNTJkOGM4YmFjODJkNTk4
ZTE0NTMxM2VhZmNkNDQ1NzBhMTcwY2NhZDMwNmIwYzE0NjI5NmI4Y2ViCitIQVNIOiAyYTkzZWYw
MDU5ZjVjODBjCisKK0tFWTogOTI2YmY2M2U3MzM0M2JlZTM0OTM2ZGEyNDAxNDk5ZmQKK0lOOiA4
MTk0YzUzYzk5ODI2NmQ5ZDBjMTU4YmJhNDZmNDg0OWIzOTllNzJiNzg2MTMxY2VjMjE3ZDJkYTUw
M2JkOGQzNWE1NjI1Y2ZlOTI3NTIwNjlkNWU0ZjczODY2OWJmMWMyNjAyOTM5ODM5NzYwOWJkMmQ1
YTg1ZWU2YmJkM2EyNDQ2MzBiYjVlZTY5ODY2ODAyOTZkYjFhYTY0ZDFkN2I5ZDM1NjI5ZDIzOWJm
MzFiZGMzYTRhMzk4NGI0ZTA5MDRiMDM0Yzc0NmM4ZTRkNmQyYTQ5Y2M2NTk3YWEwMzU3ZGY4NDVh
MDBhMzdjOTI0ZGViNjJiNzdmM2ExNTM4OWMzMTg4ZGUwYmRhMzYyMzE2ODYwN2IzZWE4MjdkNjJi
NTM0NTNkZjRkNTRlYTNmMmE0YjZmMDE3YTQ5NTk5MDEKK0hBU0g6IDk4YmUyOThjYTQ0MTVmZDgK
KworS0VZOiBkZTVjN2E2NTU4ODJkMjdjMzdjYTI3OTYxNmRlMGIzMworSU46IGU5MzU3MGVmNmJm
MTRmNDY2NjliYmI2ZmJjYWNmNzA0NjJiN2E3MWFlYjc3Nzk2NmE1NzIyYjNkYzE0MzIzNjJmODRi
OTUyNjI3YTBmMzJkNmZhNmJlMmUxZGFiODBlYWNkZjVkZmFkZjU1ZGI1NGMyZThjOTNhMzg5OTFm
ZDdkNzI4ZjM0MjdiNmRlNzc4ZTEyYWM2M2UxYTkxNGY2OGU3ODQxYjAxYzMyMmNlMmYxNmVkZDAw
Yzc0YjgyOGVlZWRhNGEyY2Y3MzY3ZTY2ODUwMWZhYzFmMzMwOGUzZDJiNTE1NTVjNjI2MjIyNzVj
NDhmMGFjYTkzZDhjYzg3NTZlZDliZjkzNmNhMTdiNjgyMWE5OGE4ZWYyMTkzNGE3OTQ0YmFlOTkz
NjJkMGZjYTdmMGMyZjgzZTBhZmNkNTU0CitIQVNIOiA1NjJkNDYxOTViMjc3MzE1CisKK0tFWTog
ZDY2NmY3MDY2MGM3NmQxYWEzY2JmMWEwOTU2ZmJmNGEKK0lOOiBkYjI1YzkzYmEwYjQxMDExMjNi
YTU2OWJiZDAyYjcyMjcxZjljZDUzZTFjZTBhMjc4MTk2ZTI1NzczNzNlZjRkOGE2MTAxNjIwZTgw
MDU5MTc4YzI0NjU0OWEwYmEwNDRkZTMwODg5MmY1N2YxMDM2NDgzM2ZiZTQyMTdkMzA3NWI4YzFj
YWU1NDAxMThmY2YxYmE4ZmVmY2I4ZWE2MjY0NDQ2MWI5ZTU5ZWQxMmFmZjBlMDk3NjE0ZTExMTIy
NmU0MjYxNWVhM2JjZjVmODBiMWYxZWViNTMzNWQxNTZiZWIwZGFiNzg3N2E2NDYxOTljNTVhMzZk
YzUzYmM0YjQ0Mjc2YjVlNjk4ZGYyMTA3NWQ0YjQ5ZGRkNTBkMGRlYjEyZDk1M2I1ZjkwNDMyZDVh
ZmFhZDI1ODMzYmFmOTc4OTQ3CitIQVNIOiBjMzRiMzk4NDlkOWM1ODlkCisKK0tFWTogN2E1ZmEz
MmUyN2UxZjI4ZDMwNjg0NGZiNzM0ZmM3NTUKK0lOOiAxMGVjYzhmZGJmNzJlODBmNTJkYzQ5ZTky
N2E5MzAzYzg5MGMwYjMxMTczYTk2YmExMGUzYWZjYWViZjI1MTY3YTI1MWZjODI0Yjg2OTlkNjY1
ZGRkYzgyMzBiOTYwZWQ2NDMxZWYxMzc3OGQ0ZTVmOTQwZGIxNDE4ZDc5NGUwMTJjNmI5YjM1MWQw
NDY5NDhmYWVkMDE5OGUyYzE2MDNkMzJmMzNjZmI0M2Y2NzU5OWE4NTBiYzc1NzlmZWE4M2NkYTMx
MGE3M2U0NDgxNzhjODA4OTJiNjZlMTNmYTEzNmQwYzk5YmQyZjE5MGRlZTc1YThlMWNiNGM4MmVl
NzUxNTk5MzUxOWJkZDRmZjMwNTBjNTMyNWZhMGQ0YzgwNTM0ZjkzYTQzMmU3ZGMzY2UwNGMzMmVi
NjBmOWVjM2VjY2M4NWQKK0hBU0g6IGNjNGY5ZjY0NjA0NmIxNTIKKworS0VZOiBlMDY4OWI1MzQw
MTgzZmI4ODk5Mjc5MTIwNjhmYTRmYworSU46IDA4MjQyNDBhYjdmYmZmNGZjZmZmY2YyMDBkOWJm
ZmQzNGQ3YzQ4MjYxYmU1M2M3YTMxZGI2OWJhNzIzNDgwOGZlM2RiN2JiNmVlZGIzMDUxOTMzNmNk
MDhjOGJiMjk3MWExYmU4ZTYwOTI0MTQ2ZWIzOTljMzExNjZjMGZmZTMwMzNkZjljNTJlY2RiNGQw
M2M3M2UzY2ZmZWFkNjgxNTlmNDEwNzg1NTc3MTZhNWFlYzQ0MTE5M2ZmZGI3MDA1MTJjYTYwZTg0
YjdlMzY2NDM4ZDU1NDU2ZGJiY2JlN2QzZWUzYzU3OWEzZTc2ZTY0ODkwOTc2ZjkyODgzZTA1MGI1
NGRiY2YzZDNiYWYwNjRhNGU4MjgyYzNlYmFkMTJmYWMzNjIyMGM4YTEzMjk5NDU3MjEyMWJjMDU4
MWNiYTY5YTcyN2VhCitIQVNIOiAwODExYzFmZDIwNDdhZGE1CisKK0tFWTogOGRhNDZlMzYzODk0
ZmQ3NzcxOGE1ZmZlNjhjNmQ4NTcKK0lOOiAzYjk1NmYyMDQyZDJiNzkwY2EzMTE5Mjg2MDk5ZWY3
ODc3ODI0OGVlZGIyZDEyZjcwYTNlMjYzODFkNzM4YTgzNjlhNDgyOGI4ZTM2MWU1YjRkZWVmMjhl
N2FjZWJjZDRiZmEyMzE1NDhiMGQ5NGNiOTEwZWJmODE5YzYwNWVmMzdkOTNkZTc0NjU2NzJkYWZm
YjJjZDkyM2EyZTgxMmIyMGEzNDU2OWFlZTIwZWQyMGNlYTVmNWY1YzMyYjljYzlmMDlmYWZkNThj
MThhMDVlOTgyMmViZmUyMWQ0NjFiYzI5YjIwMTdhMTk5ZmYwZGRkZjA2ODgwZTM4NWZhYzY1MDVm
OTExMTdkYjIzNmVkY2IwODZiMzgxZjYxYzMzZDVhZjZkMmZmYjljYzUzODJhN2NjNzdhNzU3OWE2
ZDg0NTZmYmNmN2ViCitIQVNIOiAyMzI2M2E0ZmNhNGRjMWNiCisKK0tFWTogM2EwYWI4YzJjNGRl
MTIyOWQ1YmZkNDFkNzU5NzgwNTIKK0lOOiA3ZDNjZTFmMWViNWZlNjUwZDgxNTEyNGEwZjNhMmQw
NzIyMGFjOWJkNDg3MzY3YzZlODM2YjY2OTcwOWM5OTA4YWMwZGUyY2FhN2IyZTc5M2FlMzJlZWNl
MGU0MTNmMmY3ZGZlYzRjYTdlZGZlN2FmOTc1YmM3NmZhODRhNGM5ZmYyMWRhNjczZGU0ZDFmM2Mw
YzBiNTk0ZWMwYjg4YWQ4MGQ3Zjg1ZTZhYWZmMmI3MTZlMjM2YTU1MWUyNmNiMjBmMzI3MmVmNGE2
MGQ0NjgyN2NlZDFlNWMxYTRmZWZjZDMxNWMzNGQ3NjExZDk4NWYyZjYxMjdhYjBjNjk0OTllMTdk
ZTdhOTlmZDk3ODhjMDI1YTk5OTFjNmExZDc5Mzc3ZWNmY2ExOGY3Mjg1MzE5MmRkNDA3YTIzNDRh
NTE4OTNjZmNiYzQyYjcKK0hBU0g6IDgyMjFiZjBkYTZjOWQwZDMKKworS0VZOiAzOGVmYTM5NDAx
ZDRkNDkyMjViNjdiZDE0ZjEwM2ViZAorSU46IDRjMTZkYjE0MDM3ODA3YjdhYjRkNDZjMDU3MjM0
ZDA1YmU4OTcwY2UwOTRiNWJlMjdhMjM0NjM5NGU3N2U3NzdiNjZlNjIzNjMzZGZjZTNkZmQ5NDFm
OGVmZmI5NTVlNDFmY2JlMTVjOGM5MzRhNjg0ZjJmZGVkYzI3MDUxNjk1MGRjZmIxNmE5OTIwODMz
NWZkYzY5ZDkxM2UxODliMDRlNGM2MGY3MWNjNzE0Zjc5YTk1MjM4NDBmOTQ5OGJmNDE5ODYyMTA4
YzIyODU2ODhkYjkzNDYwNTkyMWQyYzNiMDRhOGRiMTdjZWU0MTdiOGVhOGQ0Y2ZjMmJkNjczODBh
NDE1YmZkYzJjYWMwYzA3MTg0NWQ3ZTZlNGI5NjcyNzVmYjRlOWVhMzE1NmFiMjNkYjgwOWNjOTg2
YTBjZGNlNWIwOWMxMmQ4MjdiCitIQVNIOiA0ZjFlNzRhYmZkYjY5N2RhCisKK0tFWTogZmNmZWEw
MWI4M2U2N2VkZjJhYzlkZWFiZjdiMzBjZGQKK0lOOiAxMDVlNTYwYWRkNGY3YmY0MTc1NzMxNGQz
MjBhMDc0MWNmNTY1OWU0NTQyNmZkNzNhZjkzMjdiNzQwOGVjMjJmZWZhNWFlYTU5ZjQzZmJlMGVj
NGEyZmQwMDI5ZDk3NzlhMTliZWFhMTAxOTgwODRhYTZjMWMzOTJhM2QyNTUxOGU5Zjc3ZjgzYzdj
NzgwYTEyOWQ4N2YwNjM1OGRjOTA2MDFmOTZmZDI1YWFjZWZlM2YwODYxMmE5ODQ1NWU1ZWY5ZGVm
Mjg4YWE4NDBhNTNkMDYyZDllMzJkNjcyOTQwNGZiY2M0OGFjZjU0Nzg0YTcxNWMxMzE4MTgwNGVl
OGVlNTViNjhlMGQ1YTQzZGFmOTBmYmJjMzZiMjJlNzg2ZDg5NWQ2Y2E1YjBhMTI0MWJlZjQyNDA1
MmZhMjlhMDYwYjg2MWMzNDRlNjhjMjM0CitIQVNIOiA0NTdmYjRlODM1YThmZDk0CisKK0tFWTog
ZDhkMzg1ZmIwNzA1MmRmNzUxMWQwYWMzN2Q3NjBhNjQKK0lOOiA4ODQ1OGJiYzNkOTZjMjA5ZTk4
MWUzYjNlNzg0NWI1MjlmMzczYjgwZmVjZjhkNGYzYTVlNmRiM2VlMmZiYTkyMDA2NzczMzkzOTU5
ODQ1NDU0ODE4M2JiNDI1NTIzYmJmNGNmOWFiYjM5NDJhYjA5YTc1NGY3NjBiMzgxYjcxMDVkMmEz
MWFhNzYyMTA3MTVmM2U2YmM2Yzc5ZjYyZTc1NGRmZWZjYjBkYjUxMmNhMDIzOTdjMmYwMGExNjk3
MDZhNWU2MDJlZDY0YTYyZTMwN2VmNTA2ZTI0OWIyNmFmYTJiZjQ5ZmI0YWY2Y2Q4YjgyMWEwMzQ2
OWIwZGRjNGUwNTRjNmQ1MzY4YmQyZDY5NTQ1ZGNiN2IxZGY3ZmFiZGEzZWRhYThjOGMyYmE5Y2Zh
OWQxMjZiY2EyZGVmZmZjNjdiMjNjOTEwMDAzZTA1YmIKK0hBU0g6IDJiMjM4MzBlOTA3ODVkZTMK
KworS0VZOiAyNzhjODk2MjcxMWYwYWRlZDhhMjUzZTRiOGVlNmMwYQorSU46IGQxMGNiZmJiZDg5
ZjExYzEyMTgzNzk5MzQwYWYyZWE1OWM2ZjgzNDY1ZTg2NDczNmRiYWJmZTgzZDUzZmFkNzI3ZDBi
NDMyMTcyY2Y2OGZlYTM1MWY2OTI2MWQ2M2NkZTU3NTNmOGNlMTVhZmNiNzI4ZTYwZjJkNmY4NWUw
MmU4MDg5YTVmNmUyMzA1OTVmMDY2NGRjMTQ3MmJjY2U1M2FiZGQwNTY1NzQ0YjZjNThmM2M4NzQz
NjVhNzZlZmViMDQzODA0ZGYzMDJkY2JhMmQ3NTUwODM0YTQ0MzI3OTg4OTY3M2YxZjFiMzA1YTI3
ZGEyNDNkZGFjYmIzZTZmYjYwNDUxMTIxYTdmZjE3MzAxZDY2ZWU0MDgxYjA5YmNkNTBkOTRlYWEx
YTA4NzkwNTA4NWZiODRlZTZkZjEwMjI0Zjk1M2YyMzU2ZTcyOWU1M2JmCitIQVNIOiAyZTZmOGQ1
NmJjNGZmYTcwCisKK0tFWTogMTJhMWRjODY4ZDYyMjFkYzAxY2UwYjkxYTllMzI5MmIKK0lOOiA0
OWVmMWU5ZjcyYzcwOTk1ODkyMzMwMjJmNmY4OGRkZmQzM2ViOWIwNzg5ODdkOTI1NjRiMDE0MzEy
NjEzYmUwODNlMTA4ZWRkZmFjNGEyMDI5MDQwNTZlNmVjY2NlMjI1Y2YyNTljMzViZDJlMDdiMjNl
NjgyNDBiMzc1MDNjNWM5M2UxYmM0OTc2ODVjYzgyOTg2ZmVkMDZjOGVkNDc0Y2Q0ZmNjNTk2MzBh
YzFjNWRhYjNiZDUwOTYyNjQ0Njg5MTBmNzQxNjIyZWU2YTQyYzc1YjViZjg5OWU2NGEwYmVhZDFl
NjhkNDRmNTViNjMzYmZmOTM1YmVhMGVkN2Y5YzM5ZDQ2YzEyOTZlYTljNjkwZjM0MWIzMGE0ODJi
YzA0Yzg3NTIwYTY0YjZjZjJjNTUxMTBlOWQwMTgyODhiYjE2MjYxMmVmMGE1NWY4YmNlNzhjCitI
QVNIOiBjMTVmNDM1YzczNzJkZmRhCisKK0tFWTogMDRjZjg5YWUwZGY3ZTMyMGU5YWRhYTczZGY1
OWExNDEKK0lOOiBhZTVkNmNlMGRhMzk5ZjViOWZkMmJhM2VmMmViZmI4ZjAzOWU0MWNmNzIzZWFj
M2U1MmZjNTk5YjA3ZTk1MmZjYzlkYmJiYTEyZmZkMjJjNmFjNmM3MTM1YTgwYWMwODEyZjZiMDk0
NTc4MDZjYzVjMDJmYTYyNTBjZmQ2NWRiZjc5ODdlZjU2YzE4MGVjNWMyZjYzMTJmOThlOWE3MjM2
OTE1NjMyOWFiZDQ2MTg0NWU5YjAyYTA1NTc1ZjA3YTA4ZmEzZjQ2MmRkMGNiNjE4Zjc1MmE0ZjA5
NzdlY2E3NmRhNGY0NmNiMjI5ODdjMmU2ODU0Yzk4MjhhZDdjZDAzODYzYjBlMzAyMGVjNjczN2Zi
YjQ4YzM1NGEwYmI4MjE0ZGY4ZDExNzJmNDI3NDRkNWQzODc4YTI3YWNiNjNkYzZhMDA0YTFlZWMy
NTA3NDE0OTQyNGUKK0hBU0g6IDUxMWRjODFlYzYyNDI0ZGMKKworS0VZOiAxNmVjYjQ4Nzk4Zjk3
YTJjNGE4ZWJlNWZlOWIxYjM3NQorSU46IGE0YTU5ZDMxMGNkZjJjMWI0YWNhY2ZiOWU2M2QyZTFm
MTI0NGM0Y2I0OGM2NjVkNzJjNzljZDcwNDUzNjgwZjk4ZjI3NTNiMWM1YTVhMzMyM2IxZDMzNTY2
ZWYwZWJkYjgwZDBkZjNlNTEyMGM2MTUyYmJmNGFiZDM1NzJhODBkOThlNTgzYTU1Y2Q3ODYzNGI1
NTU4ODYyMzQ3NzZlMzI4NDdmOGQzOWUzOTgxOWQyZGJjOWI3YzRlMzAxY2ViZDAyYjEyNTU5MTky
ZGFkMmUwNmE1Y2QwYTc5ODIzZTQ2ZWY4MGY4ZTY0NWUxYjRmOWIzODAzY2RiNmJhOGY4ZTA5YzRh
YTk2NzI5MzFiZmYxNGM1NThhNzhmMTMwOWEwMDZkMmY2NGNiYTY4NTM3ZTRhZWUzMDAyZDVhOWNl
NmE4YTIzNTAzMTc0ZDk4ZTUwODc3MzgyNmM0CitIQVNIOiAwODBiYmFhZGRjMmYzYWNhCisKK0tF
WTogYTliM2ViMWM5ZmVkNzEyNzRhNWNjMTVlMTE3NWU2OGUKK0lOOiBmMWJlYzI0NWYxOTUxNmNm
YWQ5OGQ3MjYyZDFhM2I0NzhmYzgyZDc4ZGYwNTczOWNmNjVmNWU2ZDliYTdjOTg2ZjNlZmMzYjA0
Yzk0N2VkMmYwZmJhYzA5ZDI1MThkYmNlNjE1MjZlOWUxNzAxZTA0Mzc5MjQ1ZDE3ODgxOWIxZGEw
Mzc2ZDJkMDhmMzhjNjY2NDM0YTA3YWNiNzkxODY5NmViOGJkODE2MDZjODExNGQzNDhhZGQwNmYz
ODVjMTY2NWE3ODNhYTBiMzNkNDQzZTFkNzI3N2ZkYTE5NzE2NWRhNGE5MDVhZDllMWI1NDY4Y2Ew
M2ZkODE4ZjBkZTc0MTRhNWEzNmU5NmFiMjQ0ZjYxZWFlNTNhZTljMTE3NTVkOWJmNzUxY2YyZTc4
YzkwMjM3NzI3MDM1NGIyM2RkNjI0MWZjNTYxMjhkMDU4Mzc0YjIwOTA3MDdjCitIQVNIOiA0Y2Nk
YzI1YWVjNGJhMjViCisKK0tFWTogY2FkZWNlNTVhZGU4MGU1YWYzOTc4YmE0N2E2N2RjYzUKK0lO
OiAxZmU5ZTU3MTBkM2MwYzc3M2Q2Yjg4NTkxNzdlODY3YmYwODE3MGU2NjgyOTM5Zjk4MTdhNTVh
ZDUzNTE5NjI3YTU5ZDVhOWFjYjlmZTIxMTFkYjkxMmNiMDY5N2Y2NDUyYjMzZDQ3ODcwMmY2YmYw
M2JjOTI0NjVkN2YxZWYxYzNhNzUxN2Y3OTFjOWI4MGFmYTc2Y2RlYjViMzVkYzdjNWEyODFlZTc1
YTEwZTliMjdhMzUwYmZhN2E0OGZlZjMwMzNmYTFiYmUzZjI2MDFhM2I5ZGEzNzJkZjkyMzNhMGVh
MDU0MTVkMmE1Mjg5MzQ1YTE3NzBhYTcxZjZhZmVhYzJiODQ4ZDE2NGY2M2U0YWI2NDM3NjY5NjE1
ZTQ2ZDI3MTAyZDg1MjhkNzBmYzc2ZDYxYzJlOWNkZDI0NjgzMTFlNGNmMzJlZmYwODdhYTc5MjUy
YzQzZGVmZmQKK0hBU0g6IGYxZTI1NTQxZWViZDVhYjgKKworS0VZOiA4NGEyN2E1OGMzYjI5NWQ5
MzhhYjMxOWVhZWE4MzhlOQorSU46IDJmMTYwYzlkZjJjZmI3OGU0OGU0MDA5NzY3MWQ1OGY1ZDcw
OTFiNzg5NzU0ZGEwMWZkZDg2ZTNkZmVhZTEzODE1MWE2MTgxOTdlN2MxNzFmMjkxNzNlNTI5YTA3
NTBkYmJhZTEzMzFlZDQ4MGQxMTYxOTA0NTNiMWVhOGZkMWZlMTAwYTYzMzM4NjVhZGJhNGIyYmMx
YTU0ZjFmYzc0ZTFkMDQ1M2U3ZGUxMjU0ODAyZGIxNWJjMGMzM2ZhZjAwYWVlZmIzMjhmM2IyOGJi
ZTgwYjIxYjcxYzk5ODJhOTA3NDU2M2UzYTRjMjMwODIxMjhmMzg1MjMwMTgzM2NiNjg5NDZiNTFh
YjVkMjdiOGE3YzkyZTRlNGQ3OTkzOGUxYTkyMjUzZWZjNDExZTA3NDRhNGZkMWQ0ZThjYjhkMTcx
YTE1NDc1M2ExYTEwYmVkY2QzMTBmMDExNWJmYTQyCitIQVNIOiA5YzMyOTgzOTExZDY4MDE4CisK
K0tFWTogNjZiYWJiOTYyMDA1ZjE3NTk0MTlhNTRjMzg1OGY5ODMKK0lOOiBlMjgwZWY0Njk1Yzhi
YTk5Y2I2NDVjMDYyNWRiZTA5MjIyZjNjMDEwYWEyOTU2OWI1NGRlZmY1NjFlZjEzZTU5YzNlOWE4
ZjVmNzZlOTMxNDZjMWJhNmI5OWFjNTQxNTIwZGVhNWFkYjg0YTIzMzk1YzI4MWE2YjMxYzE4ZmE5
MDE5MjQ1ZjAyNDA1NGFiOWY2YzA0OTYyMjgxODY2NDhjZjcyYmE2YjAxMjQ5MDI4MDkyYjJhZTY1
NWM4MGFiY2U1MDFjOTZiMjI3NGQ3MDY0OGNlMmVhZTUzZWUwOGQ2MGY1Y2Y3MTlmZjk2YWQzMzc5
NjU0Yzg1NzU5NzhmMTRiMzgxYzJjOGRhODhhMmZhZDMyMzcyYmJjNDY5OTA5Y2QzOTBiYjNkZmY2
Mjg4MjJhYWVlNjFkMTdmZjA0ZjE2ZTgxOWUxMGIyZmNmNWJlZTYwMjlkNmIxZGEwM2Y2ZDY2CitI
QVNIOiBjYzU0YmViMjBmMmQ4MGIyCisKK0tFWTogZGMzNmJmZWRhZGYyZTY5N2Y3Nzk4NGUwZTli
MTc1ODgKK0lOOiA5Nzc0M2UxNzUwYWVkOTBmMDM3Y2I3ODNhODg0ZGUzODI2Yjc4OWNhNTQ0Y2Zj
ZDhjNWI3NmUzNWY4OTVkNzVmMzdmOWMxNWM0Yjk5YWU2NTZjYzhhYmU2MDE5Mzc5Zjc2MDAyMzU5
NzI2ZTNiMTQ0ZTI0YmZmMDk2NjVlNmMyNGNlYzM4MTEyNDdhMmJhNmRhZDEwZDBmYTJmN2FlMGE2
Mzg2M2VmMjBlNzczZWRlNjVmNTQ4MzQ2MDk0NTY5NmQ0NTk0YWY1MDkwNDk5ZTQ0NTAzZTc0Y2Jh
ODM2OTcwZjJiYmEyNDA3YjZkYTYyOGRhODE1MzMzNGEzMjBmMjcyZWI5OTUwOTVhNGJjNzFkYjI5
ZjVjNTk3ZmNjNzM0MWMzNzc4NDMzMzM3MGY4OGQxNmMzN2U4YzZlNGMwNmU2NDFmZTEwM2IxZDEw
M2M2MzM2MDBkNzg0YTlkZGUwYTYyODMKK0hBU0g6IGZkNDY4ZTBmNDBmMzI4OTQKKworS0VZOiBk
MjRmOTVhNWI5MWUyMzUwZjNjZWZkMDU1NGJkZGQ3NAorSU46IGNkMTE5ZGY0NDBhNTllZjZiMDBm
YzQ4ODIxYTQ5OWM2MWI4MDc1YTNiMjJmY2M2ODhjN2UxZjY5MmU3ZTNmNGJmMzJkMzg4ZDMzMjI2
MGExZDhkMTlmZDA4Yjc1YWNlNDdmOGQ3MjNjZmFhNGJhMDkzMzhiZTg0MWE0NWQ5YTllNjcxMGE3
MmMzZGY0MmQ2NTEwNjIwNjJjOTk1NjFmNjRlZGI5YjdlZWRkZDRmMTZmYzI3NTQ4MzMzZDA4ZWY3
ZTUzZTcwMjc4Y2UxMGY5NmMwMDc3ODZhM2RhZWM3YTUxMDJhY2RjYmI5ZTVlNjBmNDhjZTVhMzcw
N2U0YjMwMjMxNWExOTE4NTJhNzBkNjBhZjdlY2Y4MDhhNDhlYmI3MzZiMGQ1MDU3OWY4NDZmYjJj
YzgzNmVlMDMyNmQzN2M5ZTFhMjNhYjRjMDg0ZTY4MjM0OWMxM2ZjZDljODZhMjYzMmJhCitIQVNI
OiA4Mjg1MTg3NTg0OTQ3NDU1CisKK0tFWTogMTcwNGVmMTNlZjI4MTExYzlmYmYxZDhhOTBlZDNk
ZjAKK0lOOiAwYTc4NDdjZmZlYjE1ZDA4NWFmOTgzMDFlY2RmZjk2YTY1ZWQ5YmQ4YjRmOWJhYjc4
ODQzMzUyYjQ0OWZiY2Q3NzBhNDA1ODU1OGQ0MDM1YmRjMGUyNzkyYTM3M2M2NjM4MjRjNDM1Yzhl
OGIxODY1NDU2MGMzNzc3YTRiOTBiMzkzMDljN2FlYTg0M2VkNDUwZWNhOGMzMWE1ZGMwMTg2NzQ1
YWI0NDVhMDMzMjU0YzNkN2U1ZTZhYTE1YTE4NTYyNmE1YzM4MTVlNTU3MWNiMWFmMmQ5YWVmNGQz
ZDUyYWE2YWE4NDVjZThkMDg4MGQxY2Q0YmM5MGNiOTIxYmI1MmQxNzE4YzA5MmRhZjg2MWZhMTlj
YmY5YzBmYTgzMGIwZDcyMjQ3NjRkMDEyNTlmYjIzODg2OTI2YjUwYTdhZTFjNTgwMDQ0MGIyZGRh
MTdmYWEzNjAwMTE2MTE3MTZkOTFmOTI2CitIQVNIOiBhOWExODAyOGNjNDlkNWIzCisKK0tFWTog
NzljYTU5MjEzNjJhNThkMDQ1Yjg4ZTBhMjk1ZmY1ZjMKK0lOOiAyMzg1MTJhZGEwMWNjNDE1Zjc3
ZDEyZGQ3NTViMTk3NzM1NmNlNDdhZGRhNWZkMWEyMTU4NWZmM2U1OGRhNjRkZmMwYmJlOTA4YmYx
MmNmNjVkZGU5OTk3ZDc1ZGY0OWY3MzA1OGMxM2Q1YWE4ZmI0MzYwODUxN2UyY2ViOWZmYzcyMzI2
MGE3ZmFlMzFlNjQyYzk4N2NjMTMxZGI5ZDQyM2Y3NjIyOTY2MDhkMWFjZGQxMGE0N2ZlODA0MmYy
Njk1MmMyNmI5MmU3MDA4ZTNkMzU2Yzg4ODhhZDhkZTEyMTM5NjE0NWNlYTBiNWJjNGFkMzhlYWYy
YTlkMjcyMDJkNjM5MzE5YmEwOTJiMjM2ZDRmODM3ZDhiMjIyMGY5N2YyZDI3NDU3ODc0ODU4M2Zm
NmQ5NDQxYjUyZmVkMTk0Yzc4MWYwNWRlYzIxZDIyNjQ1OWJhMmNjYTllNTgyMmVhY2Q5YTBkYmQK
K0hBU0g6IGVjMTZhNTg3NDUzMmQ5MTMKKworS0VZOiA0NjM4YWE5YzMwYjdmMmMzY2IyZWMwYTkx
Y2YyNTA1MQorSU46IDM4ZDZlMTY4Zjg4YWRkMDYwNTkzYzk1MTExM2Y4ZGUyNGE1MmY2MzA4ZmQ1
NDc2NTNmNTBmNTFlMzY2NTQ3YWE5N2MxYjM1MjBiZjNkMTA5ZmQ1YWI5MGMyNzE1NGZkOTRhZDI1
MTZiYmE2YjI0OGIwZWUyODk3ODFiZjc2Yjg4YzAwYjI4ODk4YWZmYzNhYzlmYTU5ZGQzODZiOWRk
OTdiOTUwNGNjZjdhMWIyZjIzM2M0Y2ZlMDkxZWFhZDc4OTMwNzExYmQzYzdiZTQxYmNiYWUwMWVk
YTQxZjFlZWIzNGIxYjYwZDAwNTM2ODkwZmEzYjFiMjZkZWZlZTVjZTk2NGQ5YjZhMzBmYzc2NDVl
NWYwYmRkNGZhNmIzN2FkMDBhYzA5ZDViMWZiNDk0ZjYyMjQ1YzFmM2E3YjgyOTEzMmRjYmQ0Mjkw
ZDk4ZDc3Y2MzNDkzZGMxNWExNTcwMzk5NGM4NmVjNmRhCitIQVNIOiA5OWY3Nzg2MzUwMDEyNzM5
CisKK0tFWTogYjUzNGVjNmMzMWUyMjIxNDM0OWFlYmQ3YmJlMTc1MmIKK0lOOiAwZjRjZTUxMDQ5
N2M4NzUxOTY3NzI0ZGExNzg2N2VjMmZhOTQyMTNkN2E4ODU2ZmQ0N2YwNDNkYmM5OGQ4OGIyOWU2
MjUwOTgxZTlhZWU0NjIyYjE4YTdlYzM0NWIzMGRiNzJlYmRhNDdjYjBkNTFiNjAyYWQxMzBlODgw
Y2I0ZmU5YWRkZWQ2YzY1YmI4MTMzNDJiNDM0YmQ1YTE0Y2U3N2M5NDJjMzExZGRmMjAzNWZlNTdm
MDJlYzE0M2VhOTlhZDg4YzcyMTIwNjk3YWRkM2M0ZWM2MTIwODRmNTdjMDA0ZmNlMmNkM2MyMWUy
YmU4ZTA0NDVkNWFhODA4YTI0NDhmNTgwYjhhNzJkZDA1ZDdlY2VhM2QwZmI3YTYzMmM3YTc0YWNi
ODZkNzU5ZjE2NTIzZDRlNTM5ZmY2MTIyZDEwYjgzMDAxMWIwYjY0YzVhOGNhZmI4OGY4YmViZTcz
ZjVjNzIxOGZiNzUzCitIQVNIOiAyYjU3OTVkYzI2NDIzZDgyCisKK0tFWTogOWYxMTMwMjliOTNm
YzE2NGNkZmRkMTJlYTdlMGZmZGEKK0lOOiA1MGUyYTJkMjA0Zjg2NDdlMzM5NjA4ZWEzNTc3YTEy
MTc4NDZjOWE0ZDgyNzVjNzNhZmJiYjg2N2MxZThkZmJkZWI2ZTJlNDI5YjZmZTZiOTlmZGE1ZTc5
MGRiY2U4Yjk0M2JhZDdmOTRjZjNkNzI1MDczZjU1YzY0MDkzYWM1OTdmZmU0YjA1Y2VlNzgyMDk2
Nzk0Y2EzNjc5ZGQyNjFlOTM1ZDgzYjYyNmY1NjEwNGY1YmQ2NDJkYTQyM2VlMzIyOGU5YTE1ZmM1
OTAzNGZhZmZjNTE2MTYxYzlkY2JiNTVjNGU4ODFkNmZmNTFjNmI5YWVjOWYyYzgzNmM3MzBjMTUy
YzQyMzQ2MDAxNjQ4ZmJlYzY3NjU2NGIyMDRlZjdlNmM2MWRkOGUyMGU4ZDdkYTBjYTIxNjI1OTY0
Zjk4Mzk2ODM5ZjEwNjViMGEzYzExZjgyMzRmZGYxMzMxNDdhMTNiMjZmZDMzNzllYjkKK0hBU0g6
IDllYzVhOTUxMWEyM2FiMDQKKworS0VZOiA3N2Q3YjEwYjE2NmY1YTg3YWYyOTBhYWZhMmY4OTY4
NQorSU46IGI3NzAwNjg0M2Q1N2ZjMTIwMmUwZTllOGUwNThmYjRjYjc3YmExOTlkMmUwOGFkYzMx
NjU0NjNkMzZhMjk3NmYyZTBhOGEyMGFlOTVkMjhkMGI5N2ZlYmNhZGY4NjFhZjQ2Y2M4OGVmZWUz
ZDgwMTFiN2Q0YzYzZTI2NzliZjRhNzI1MzlmOWRiZmU5Y2UyZGI0MDQzNDVkNmQyYmQ3NjdlMWM1
YTU5OTE5ZWZlZjkwMzdhNWI2Mjg1ZTc2NmFkOWFjOTJlMTVlM2U2OGY4MzFjOThlZDE2MDY0NmYz
OWMwNDA1MzkxNDFlYTkxZTkwZTdlODg1MzY1MjA4OGJiYmY4NDlhN2VkZDliZGRiZjU4ODkyNzVk
MDJmYzdjZjdjZGQzNWI2NjA3ZmQ0NTk3ZGJmZTZiNjE1YTRjODA5N2MzNDVkMDg2NzMwZmY2ZjI3
NDM1NTI3ZjdiOWM1Yjc4OTI4ZTM5MGQ1ODI4ZTk1NmUyCitIQVNIOiBjYjdkYmE4YWI1NWUwZDgy
CisKK0tFWTogMTE3MTgwMGViZWExYjFmZjRkMjYxMzUxYjA1YjMyNjQKK0lOOiBjMGQ2MWU1OGNj
ZTRmYWNmYjgzY2MxY2I5MjBmMjBmMmUyOTRmZjhhY2RjNTEzOGJiMGY2MWU5MTQzZGQ3NTNmMGI2
ZDFmN2U1OGYyZjI1NTg1ZmQzNTMyMjAwNjFhYjBlYzBhMDFiOWQyZjg1YWM2MmY3ZmE5YmRmMGFk
MTMyYzk2NTQzYjNkZDk5YWEwNmJjMzc5YzVmMjU2M2QxNThkZDQ4MjJiNGQ0ZWM2ZGU4ODZiNDUz
MzdkMjlkNWRiMWY0NjgzOGQ3ZjY5YzQzZWQ0MjVhZmJjZWM2N2JiNmQ2MWY3NjI0OGQ4M2I4OTc5
NTU2NDAzYmQyMTNiN2I1YWYxYmU1ZDk4ZjdjMjIxZTkxYTk2ZTA3YmZmYmRiZWJlOTA1ZGQyYjIz
Yzc3MjhlNmE4MjI5Y2VkNzBkYTIyZDdmMjE3NTQ1OGM1N2QwMGQ5ZWVlNmQ2ZmFhY2M2YThkMzc2
YmNhZDI5ODM5YjFiNTk4YjUxCitIQVNIOiA2YThhNjc5Nzg1NDQwMzA3CisKK0tFWTogNGI2Y2Nj
YzY3YjY2ZjhmMTQ2ZTJmOTQ4MjA1MzEwMzcKK0lOOiA0ZTM2NzZhNjhmYjVhNGIwY2UzZWQ1Yzgy
NzEwYTZlOGY1MzZjZDgxMGM2MTk1NjczNTJhNjVhYWE3ZmViNzk4MWFkYjkwNzJlODg1MTkwOGNi
YmU0ZjljZWM4MjliYmEyYjFmZjU0MmI2MTcyZmRhNGM4MjA0YmUwZTlmNzkzMzcwODczOTg3OWY0
OGExNTgwNmQ5YzFlMDNjZGU1ODkyZDQ1MzYzMWU5ZDM2ZjlkMWJlMDU1ZjIwNWYyNDJmMjYxYjc0
OTljYzRmZGYyZmMyY2Y3N2E0Nzc2MzExMTI2NDM2NDBkNGJjMzk0Y2FlOGU1MzA3NDFhMjk2ZjFk
YzgxNGE1ZTM4ODI3MzExMTdkMjEzNDk5ZTI3YmY0YmFjNGUzNThiOTc0MGYxNGY5M2IzYWE3ZTE4
ZThiY2RkYzc4YzEzZjBhNGVkNjEzNWNiMmZkNzBmYzhhZmZhNDM0ZGYzZDAyNjQxN2Y3ZmQ4ZDBl
M2E0NGIKK0hBU0g6IDI3OTg0MTI4YzI4MzNlYTgKKworS0VZOiBhZjNiN2I5M2IwNGNjYjI0MmQ2
ZTVmNzEyZWEzNmVlZQorSU46IGY0MzJiYTJkM2Y2MjIzYWFmNWM5MTgzMjQwOGQyZTQ5NjNlYTM0
YTc5NTBkZWNlNmIwNjI1NWRlZDY3ZTNhOTg1N2MzNmNkOGQxY2I3NDVlZTZkMjRlYTQ5OGUxYTZl
ZDkzYjU0MTIwNzE5YzFjZTViODAxYjc3ZGE2NjI3NzRlY2M0NTA5NDZmMTJkNWU2NDA4ZjY1ODRh
N2M2NjVmODVjYWY1OWEwODFjNzk5NGM3YzM0ZjYzYjEwNTA0NDNhNTkyMzJjOWY0YTQ5OGQwOTM5
YjE4MWNmZTUxMjUxZjgwOTI3MDYwZDE0NDJkYjJiOGMwN2RjZGY0ZDY4ODA5NGQ1YjEyZWVlMWNi
NTQyMTZhY2M4YjVmNzVhNTkwMTQ5NmQyM2JkOWQxMTE1MDI1OTgyZWUwNGQ4Mjg1YTQwNDYzN2Qz
NDM4MDAxMDQzYmNmOGY4N2ZhYjQ0NWJkYTYxNmRjZGJhYWE2NDJhMThjMGJmN2M2MTM1CitIQVNI
OiA4MGI3MzIzMjQ2MDlmY2EwCisKK0tFWTogNTAxNDFlODZmOGY5NjcxZTk1ZmFjNjJmMDgyZTM5
MjQKK0lOOiBlMTRhZTRlOGJjOWUwMmY1YWUxMTI0ZWM1YzdkYjBmNWY2MjZlN2NjNjdlMWY1Yjhl
ZWQxYTUxNDY4ZDMzMmRkMGE1NzA0YjE4NDE2NmU3ZmJiZjQwNjA4ZGQzNzMzODQ1ZjVkMDQ0NWI0
MTNhZTU2YWFmNTFiMDA0OWIzNjNmNTRlMmI0NGYwNzVkYTc0Yzg2ZTkwZmRmOGI4ZGQ0MjkxNGZk
NDZlNTYxMTM4NTBhNWIwMzgxNjVhMmUwZGZjNTMxNzkxY2UyMWVmMTVkODAwNTAzMTYzYzRkMzE0
ZGZhNWJhN2RhMTlkODBmN2I2M2NmOTAzZjQwZDAzMGZmZDc4MzNkOThkMzlhMjA2ZDQ0ZDJkM2Y5
MDFkZjRjYjc4NzIyODU2NDRlODNiODRiMzAwYTE4YThhZjJlNzcxNGI4NTYyYTk4NGI4ZjA5MWMx
NjFjZjYzZmYyYTI3YmNkMWMwZmE3NGFiMmM5YjQ2NTljNmQ4NjVlODNkCitIQVNIOiAxMWNlZmI5
MjFmNGUyYTU0CisKK0tFWTogM2FiMWQzZDg1M2ZlYTRjOGM0MGRhMmQ2NGFiOGMzNGUKK0lOOiAz
ZTE0ZWJhZGNhZDA5ZmY5NTUwZmE5YTE0YTBmZjI0YmVmMWI5YWNmZDk3OWFlNzY3Y2U3YzdmMzE2
ZWQ1NmEwZDc3ZWY2ZDIwNWJhMzE1YjhhOGE4ZTkzMWYzNjU3NTNjNjczODQyZjc1ZDQ0NDlkOGRk
YWYwMTBmYTZiMWUyY2Q3YjdiN2M0OWNjODUyMzFhODI3YzE1NDk4MzZkY2FlMzVlOGVhN2VkOTE0
NzYwODU4ZDUyZTllYzMxZWY0NDM1NDg1YmE5OGE5OGUwNjVhZTEzNjQ4NTQ3ODEzYmNmZjkwNTJm
YzVlYzgwNDhiYzE3YjA2ZGQwNTA0NzIzNWVjOGVmOWVhZjI1NzBlZmVjMjU5MzM4NzdmNDRmMDZm
M2QyZjRmZDhhZGY5MTAzYmFiYjdjZjUyOGFiYWQyMTQzMWZmMThiZGYwYWZmOTEyZTJiNGU2ODUw
ZjgxOWYzNDlkYTYxNzYyNmEyMDRiNmNjYjI4Y2RiYzI1NGIKK0hBU0g6IDg1MTEwOGUzY2ZmZWFh
NDcKKworS0VZOiBjMzliMzMzZDdkNGE2MWEzNzEyMmUxYTM5OTAyMGIwYQorSU46IDQyODM1Mjcx
MWNhODJmMGU0ZjEwYTUzYWRiYjdjYmEzZWVhNzcwNjVkYjhmN2M0Mzc1Yzc1MzMzMzA2ODI3NjFi
MDk1ZmFmMjc0NGIxN2YwNTdhNjA4NTViNmE0MzJmZjE4ZjQ2YmU5ZDlhNmZmOTI4YjRhMWRhYzQx
MDNjZjlmZjZkOGEyNGY4NGMzNzA5YmU1YTYwMTQxNTVmZGI2NjE0OGQ0YzEyODZhZGYxOGFiMzI1
ZjQ0ODYyMTBiOTQxZTQ4ZWIyOWNjZWFlMDMwMWI3ODZiNzJjYmU3YWJjYjRkYTBjYWExNTFkMDEw
YTY0ZGJkNmQxYjM2YTFkYWI1NTU1NTJkZmZiMGFjYWUwN2U0YjllYzVhM2EzZTA5MDlkYjQwNDky
OTNmZWFlNDM1MWFjZTlhZThmNDkzNzA5MTBlMjBjODRmNmJhNmI2ZTQ0MDQzOWNlYmMwNzM2NTE2
Y2I4ZWZhNGVjNTk0ZWIwNmZlMzM1ZTcyYzA4ZjhiCitIQVNIOiA0YWQzMGI3YWYzN2VlNWQxCisK
K0tFWTogZGYxZjE3NDg4OTg1ZTdmZTA5N2Q3ZWU1OGUwODdhNzMKK0lOOiAyY2ViOGI4Njk0YTky
YWI2MGEzMWM2YjhmMWNhNzYyMmVjOWVjNWIzYzc1NDg1NDBmZWIwZmE2Mzg0NmVmNWRhZTdhMWQw
NTY2Y2FlOGJiNjkzNmM2NThkZDAwNGEyYWUxN2M1MGUzOTJjMzdjOGRhZWYyZDEwNDk0ZGRjN2Y1
NzYyMjRlMTczYTQyYjU0OWVlZjRhNTNhZmU5YzBkZTdjMzZkM2IzZjRiZDM0ZGFmNmQxNDNhM2Fi
ZTA4NzI5YWE2ZjljN2UzNzM4NjVlZjhlZmY0YTBkMTFjNGQ2MzJlMTQ4MDFjNjU4MWM3YmM4N2Yw
ZGIzZDg3ZTgyYjlkZDdiY2M5OWIxZmY4ODM3NzE3NzBiMTJjNzU1Y2RjNWZkMmI5Njk3YzFhNDll
MTdiZDNiZWFjMGYxZDA5NGVjOTk1ZmNhODc2NmZiNDFmMDc4MGNjMGM2ODM3YjYyMGJiZjFjMmJl
ODNhNDBjNTk5MDcyYTBmY2Y2NjBkMzllNjAzCitIQVNIOiA3ZDE4OTlkNzFmYzllZDE0CisKK0tF
WTogY2E3NGUzZDE3MWZmNjE1N2QxNmRkMzRkZWVlMzQwNTUKK0lOOiAyNzk5ZDc4NjQzYTM5ZjU1
ODBkY2QzNTI1OGJjYjI4Y2I3MGUxMWVkODE5NmE0NjNiYzYwNzdlZTg4NTQ1YjY4ZWM0M2NjZDBm
YzZiNmU4ZTRkMDc4OGU4ODM2NTU0YzZmMDcxMTk5ZGRhYWMwMmU4MTQ5NjAxNzcwMzgwMGU3ZjMw
Yzc5ZDQyMGUyZWNkYzAyZWUxYWY2NDkxYmUwMDJkMTk3OTNmNTBiYzEwNzBjYjJjNGEyNmM2M2I0
N2M5ZmFkMmMzYjVlOWJmMDkxOGFjN2YwMjBkZDNkODg5OTRiMzc1MDY0NGViMTUxODlkNWM2MTBj
MTA2OGNiNTcxNzRkNjQ1YmRiMWE4Y2I4NDg5NDBkMGNmZTlhYTE0MmMxNDg4OTBlNDc4MTc1M2Fi
NWNlMzBiNWJmODAzN2Y5Yzc4YTRiZDgwMjNiZWVmZGJiMDBkZjI4OTlhNTYxZmVmMWQ4MGQzM2Q4
ZWJiYmI4NzAwNmJlY2Y3ZjAxMjBmMzc0OTUKK0hBU0g6IDFjMmJlMmExNGUxNWQxZjYKKworS0VZ
OiAzMTEzNWJhZGQxZGM2Y2EzODdkMDBjZTcwNTc5ZWM0MgorSU46IGJhMjhlYTliMjAwMmE5NDFh
ODg2MTE1MTA1ODIyOTFhNjhiMDliNjEzMDFjYjRhYmQwYjcwNjQ3YzcxMTg0MzFhYTQzNTcxMDY3
OWY0NjI1NTZkYWY5MWI1ODdjZmY2OTEzNDRiOGE4ZTVmZjkzMTRlYzMzYjliZjI0MGNjMDM5OTVk
OTY4YTUyZDM1Y2UzNTlhMzRkMmY1YTQ5YzRiYTYxNjU4YWE2NWMzY2RlNThhYjM2ZjQ2MTMxZjA1
MTNlMjFhOWUxOTllMDBhODYyNjc0MWE2NDFiNTNmYzkxMGU2NjY3YmI5OWVjMjY1Njg2NmE5MDU1
OGNlMjA1NmJlZjc1MjRiOGM5MGM1MzFmMTcwMDM3MTcyNTcyMzBlYzlkM2U1NmE2MDE2MWRiMzcw
YjM5NThiMmJkOTE3MjNmMWFiZGUyMGNkNjlmZjI0ODE5ZGRjNTBkZjYzOTk1Y2ZiZTFmYjc1NjBk
MjQ5MTZjMmUzMjg1Njg4OTViMWVlN2JhMGIyCitIQVNIOiAzYzBmMTg2M2Q3YTJkNGU5CisKK0tF
WTogMDM5YmYwM2FkZTg0ZWNhNDY4NzIwYzM2YjQwMmQ0Y2MKK0lOOiAyYmQ4ODEzMjVjMDU4NTZh
MTczNGU3MTFlYTA1ZDZlNTQxNjE2YmRmMjBiZGQxNWVmYjY4NGQ4ZTU5YjU3YWI4YzA4MjFlODc3
MjgzMjEwZWUzZWIwY2Y2NzMwY2E0NDE4NTBhNjMyMGE0MGVmZjI2MmRmN2JjYzAwOTc4ZmY1M2E2
MDI3YmExMzc4OGMwZWUzOGMzMTM0M2QwZjlhYTJjZGEwMzc2NmM2ZTc3NTQxZmIxNzE2MzQ1ZWI1
YzY1ZDEzZjAxNDBmZWVhNTNhOThlMzBhMmMzYzhjN2QxYzQ3ZDk5NDIzYjRmNGJkNjg4ZjdkOTdj
ZDk1OTVkY2I2NTZhYmZiMWFlNmJkNTA2OTE0M2QwOTYyNzRjNGNiMDZiZTM5OTRiNzUzM2Y1ZGMz
Yjk0MjM0OTAzNGJhYjgzNjRjMjUyYjE2ZTJiMzFiYjQ4MTViNmEwZjBhOTQ4Nzg2NWQwOTNjMjJm
ZjBiNjhlMjNkOTU3ZWRkNGE1MzY0ZjRjOGZmYzk4CitIQVNIOiAyZmI2MmIxODZlNzMxNjYzCisK
K0tFWTogZjg1NmQ1Yjk3MjhkY2VhNDRlMTVkODBkZGIzYjZiMzMKK0lOOiA0ODc0NDYyYzNlNDMw
MmI2YWQ2MjdjOGFkZTg0ZDExMTdmMzM1OTljNTY4MzFiN2ExMzM4MTE0MTdlNjk5Mzc0MjYzN2Q4
NDUzNTUxOTMxNDU2NDEzYzYzODJmNzU2M2I3N2M5M2JiZDliMGQxOTcwNGNiZWI1ZWE1ZjFkZDZl
ZTdjZTQxYjNmNDUxMWY4YzllNDg3OTA3MjE2OGVhMGViOWEwMTAwMzJkMWMyMTlhZjZiOTUzOTEy
NGQyZGY4ZjNhYjc2ZDEyYTQzNjMyNmMyMTBlZjY5MjljMTM4ZWM0ZTAxOWU0MzYyYzBlM2FkMjAw
OGFkOTBhMjJmOGYzOGFmY2JmMmMwNTZjMjJjZWJmOTc1ZWJiMWZjMWRlMjg3Njk0NjZjZGIwOGFk
MDMzYTk4YTk5ODhkYzhmZTg4N2I3YWI4Nzk2MTRmYTNmYTJjMzI5Njc5ODNiMjY4Mjk5MjUyYWEz
ODBkYzE4YzE0ZTg4OTkxZmRkNjkwNDBlODY4YmNjMDVjZDQKK0hBU0g6IGE4YTE4YWQyMmFkOThl
ZjkKKworS0VZOiA3NWMyNDM1YmNiNDNkNzYzY2RkMjdlMjExYWZjM2YwYgorSU46IDUzMzgzYzhi
YWQ3YzBkMmI5ZjUwYjljMjQxYzkwYjRkMzVkYjVhOTNlOTFmM2IwMDM3NGI4M2MzNGM4OGYzOTE0
Y2IyYWU5YWYzZDdmODI4MDIyZTZjMDk2ZDIyNTI3NjE0ODMwMDEwZTQ5NWY2MDliODYwZjY4Zjdl
NDJiYjk1ZmE3Njg2MmE3MzA5YjRiZmYzMTAzNzUwMGM3MzIyMGZmOTY0OWJiNGUyYjBhODBjYjU3
Y2Q4OGQ4NWY4OGZiZTc5ZjM0MzUwZThhMjhjNGY5ZDk5YmFkZjFhYzFkODY5ZjhjMTA2MzQ5N2M3
ZWE3ZTUxYTVmZTk2MzQxYmY3ZDQ0OGQ4NjVlZjNhMTk5ZmM2ODMwOGMyMmQ0YzNiNDFlZjU3YmZh
MTg1YTUwYzM1YzFmM2M3OWJmYjc3Mzk1ZWI5Y2RlZjA1NWIyNmEwYmFkNmJiZDBjMDM4MzAwZjEy
N2U3NGRiZGQ5MmM5ODY4MTgzMjBmNDgxMmQ5Yzg1YWMyYjA2Y2U5NTA4CitIQVNIOiBjODViZGYx
M2MxZGEyNjVmCisKK0tFWTogYWFhNmNmOTQ3NDE0ZTRjMTIwYzZlZmRiYTlmNDc0ZGMKK0lOOiA1
ZjJlZWExYjQyZjA5ODRhNzA4OGQ2ZmE5YjljODc3MDJiNTQ2OWE1NTM3MmZlZDU2ODlkMzA2M2Fl
MzM4YThlYzkwMjMwMWZkZTVlMjVmM2VjMGI1MzM0MjdiODQ0M2E2NmYwZGFhMzY4ODEwNGNmMWI1
NjkxZTEzMzZiYzFmZTQ4N2Y2MmRjMmU3OGFjODc5ZjVlNDg4YmUyZjZlMWRmYzJkOTE0NGY2YmI2
ODhlZTc2ZjU0NWRkZTA4YjkxYTY0NzBlZjRjMjJhMzkxZDdhNjY1OTc4ZDM4Y2I0NjIzNWJhYjFk
OGI4YjBlNzk0NDI4MDM5OGNkYzBjYzY0M2E1OGZjMWM2YzY0NmFiMTc2NmMxY2M2MTZmZjRlYzJi
NmYyZWQwNjYyYTkzODI0MzQyOTVmMTIyYzg3NzczNmMzYmE5NjYzMmM0NzYzYzg5ZGVkNDU0MWE5
NWE4MDY2YzViNmUzMGVkOWMwMjViMDc4ODdiNTk5NjQzOWMzZTEzZTM1N2E0OWNhMGEwCitIQVNI
OiAwZmMwZGQ3MDJmNTRiZjM0CisKK0tFWTogMjk5NjQ2MDgyZWUyOTNkMTEyNmU1MTRhMzBkNzVk
YTgKK0lOOiA5MTQyMjk0MWJhN2QxNDk5MjhkZGI0NGRmMjBjZjU1ZDcxZTIwNTZlZDU5YTU2OWJl
NTNiZGZlNDAzNDlmMDY2Y2ZmYTI0YzFkNTUxNTdhZjU4NGFmNjM1NThlODY0MTNlNmRjMzYxN2Qw
OTBhODMyOGJhZGVmMDU1OTBhNmQyMzM2ZmY3MzAwNzM0MmQzMzkyOTU5ODFjYjVjNGI2Y2VkYjA4
MDhmNWU0OGRhMzdiNmFmMmJhZjAwZjllNDkxZmUyZTFlYzA3OGE3MDQ2YTE1NjIxYjkyMWQxYTE4
ZTE2NzFkYjgyZTU2YWQxNDE3MjVlYTM3YmI3ZTczNmM4Y2U5OGNhMWRmNzdkMTYzNWRlZWY5MzNh
YzYzNWUxYmYxNzhlZjQxMDJiNmJjMmI4ZDhmOTNkNDJmMWRmMWJkN2Q0MzRmN2I0NTFiMzNhNjk0
NzQ5YmNiNWUyM2Q2MmEyNTRjYmVkNzNhMjI3M2EzYzE2MWE3NzM0Y2M4NDY2YTAyNWE0MmVhNzEy
MjM3YjYKK0hBU0g6IGVhMWI3ZTUxNTZmMDkxNjMKKworS0VZOiBlZTA4ZGJmMzBmYzIyMjc5NWE1
YWQ3NWJiNmMzNzE0ZQorSU46IDA4MmJhMGQ3NGRkNWRmYjQ3YTQ5Y2E4NTEzMjJhY2FiNDI4YTlm
ZDg0MTQ4ZTY2ZmQ1Nzg2NjM5ZDc5MTQ0NDM1NmJjNzlhZDlkOGI5ZWUxYTJhMDJkM2ZjYTkyMjU2
ZWEwNGI3NjY2NzA4NzIzZTIwNzVmZmFmM2RhYjdmZjFhYzM5NzM5MzE1M2U0MjBlOGI2MjM2MzRl
MzdlMDUxZmJhZjVjMGQ0OGViYTA2NTM0NWNiMWQ3ZDYyMzA0YTg4NjcxMDQzYTFmMTYzNjhjMzEx
Y2E1MDExNDNmMTA5ZTg1MGEwZjI5NDNhMTc0OTRiZTk3ZDgzOWJlZGQzNTI4NWM0YjdmYzM4YjU5
MjgwNTk1ZGI1M2FjZGUyM2Q3ODcyNWEzNzZiMTdjYmNiMDYzMjVlNGI2YWI1YjBmOGQwZGE0ZjE5
MGM1YTI4OGY0Y2NiYjAyYjU5YjFkMjBiNDBmZDgyMjYwNTFjZDI5Y2U5NDhiYmJhOTdiNTI2ODE5
ZGQ5M2I4NTk0M2FlNmQ0MmJiCitIQVNIOiBkNDVjM2YyMTY0YzUwMzRlCisKK0tFWTogZTVmYTBh
NGJiNTMxM2QxYjQ4MWM1YTAxOGZlNzg5NTIKK0lOOiA4OWVmZmIxNWZhNDAwMjBhNTU0ZmVhOTli
ZTY4NTcyYzAzZjAyMTM3ZmQ5ZjJhNDFiOGZhZGJkZjZkZWEwZTU4YjAzNzhjZTcyYzdlOWVhNGMy
MjIyYjc0OGFhZWVhMzk3ZGZmZWQxMzM3YTgwZTIzYmVhZWZmMWRiZDlhMTY2MDNlYmZkNTM0OTkx
MTY5ODc2NjBjODk3Mzc1MmQxYzk4MjYzNzAxODViZTMzMmJiMWFjNDgyYmFjYTAxY2M1NjZkYjcz
MmRhMmE4MDZjZDZiN2QyMzQzODc5ZDEzNzcwNDQxNGZmNGRkYTRkODJhYmQ4MmNjOWM1YTZlNWM0
YjZiZmZmYTA5OTVmZmU4YjAzMzEyOTQ0OTBmZDA1YzY3NWZjZTQ4YmNmMTQ4MGQ0ZmQwZjI3YmJl
NWJlOTRiOGI5ZGMxNDA1YTZhZDc1N2FmOWY0ZWI0YjFkOWEyZTcwMmJlZGUyOGU3YzdlZDQ3ODFk
MjQ0YzI2MDRjMWU4Y2U4YWQ1MzE2NzI2YTNjMzUxYmM2CitIQVNIOiBjYWIwMTQ1NWFiYWZmOGM0
CisKK0tFWTogMWNjMDM5MTMzYTlmY2NmMzk2NWZlMjAyOTJhOWE2YjAKK0lOOiAwNTg5NjJlNWIz
MzI4Y2MzOTA1MzcxNDY3YWJlODEyM2ZhY2RkYjYyYTU5YWI1ZjMyMWY2YjNjYzhjNDNmNTgxNjhh
ZDg1OTZhNWI4YWU0N2ExOGYzMjdhODliMDkxNmU3YjVkZjIzZGVhNWY3OTE3NzczZjRiYzI1NjBh
ZTdiNjVlYzU3YTRkZTBmMDM3MDhlOGFlN2UyMDllNTEzNmYxOTZlNmE3MzFmMzk2NTBjYTVmY2Qz
NTM1NWM1ZTc3YThjM2M1YjMxYWQ3YWQxMzY0ZTZlYzExYTg2ZDI2YTlhYWJmMGE0ZDFkMWNmMmYz
YzZkZGIzOTlmYzQ5NTlmMjY2MmMwZGM1NjY1N2M1NWU0NTFlZTBlN2JhZjU4MWYyZWE3M2ZmODQz
ZDQyZTc1OTc1ZTA2OTM3YWI0MjM5YzBkNmVlNjdiNGZmMTAxY2Y2MzUwZTBmOGM3M2FiNjNhNTkw
NzY5ZWQyODJkMTFiOTc2YTkyZWNjYzQ2MmE1ODA1MDUxNGVjMmM0MmYxMWY1NDY4NjEKK0hBU0g6
IDU3YjRjMjViNmNkOTE3ZWQKKworS0VZOiBjYjQ3MDc2ZTM5MWNjYzE3OTk4YmJlOThiYjkyZTc5
MAorSU46IDAyYTJmMzVkZTEzYzA2ZDNmMjAzMjJjYzQyN2U4ZGZmZWY0ZTk5NjU2YWNkOGM5YTZh
YjI4ZjNlYjlmNjVkNDFlYjU0YjJiNWM3ZmY4Zjc3YmE0MmE4OGMxZGJlMDIxOTU2ODRjMzE0OWMx
ODc1ZGZiMzYxMTkxMDI0NWM3MzQ0Nzk5MzZhOTRhYWU4ZTMzNzk1NjY4N2EwNjJkODI2NTRhYzFm
Njg4MTcxZGE1MTMzMWJlZjFhMTgwOTc1ZTRmN2I0NzExZDU4NzAzM2U2Yjc3MDVmYjQ0ZmNkNGQ3
NDZlMDcxYzM0YTJjODhmYWUyYWYwOWYxZjczMzVkZWY1NTVmODA5YmE4Yzg1YWJlMWFmMjFhYzRl
NjdiYzMwZDlkZDgxY2M4YTQ1MzA2MzI4NmZjMDkwYzZhMDhjMjI2OWZjYzQ4NTMxODUzMzM3ZGM5
NzA3ODExZWNhNTRlZDQ2NmY4ZDc5OTZjNDZiNTk5YjZhMWU4MmIxYTM5ZDMxODVmOThjNzMzM2M4
N2ZkNGFmNTEyMWI5CitIQVNIOiAzYjIyOTQ1NThiMWUwMzUzCisKK0tFWTogM2ZhODJkYzFlZDUy
ZTQ3MTFjYmVjMzMwNTM0NmRmZGQKK0lOOiBkNzliYWE2NjFhZThhZDI4MzJhZGZmMzYwYjM4YTE3
NzliNTgwZjYzNTdlZGE2YjM3OTExYzQxOTc4NTRiNWFhN2U2MzE0OTM1NmU0NTFjNTc0ODBlMWUx
NDllMjYyN2E2MjdlNjBjM2U0OWI2MGViMWExZTVjNjkwZGFlNzZjMGQ2YTcxMTJlM2QxOWYwZTgw
NDEyNTRkMDdmZmU0YzIxZDhkOTMxZTg4OWIwZmY2NzEwYzVhNzQ2MjAyN2NjN2U2NzI2NmEzMzJk
NTk2ZGZlNmI4NTRmYzAwODg4OTU2ZTU4ZjdiYWJiYmQzZjhmYTI1YzIwMjQzNzZmMDEzMmM3OGZh
ZjZjOTU1OWIxOGYzMmNjMTRlOTdiOTI1MDgwMDcwZTNlYmZkYWIwZjgxYTdiMDVkOWQ1OTczMjk3
NzBmNzc4NjU3ZmFjYmYxNzMyZjEyZmRiMDgwZTIyMDk2MGI3ODM1NzE3ZWY5ZmE1OGYxYTdiNTM1
ZGIzNmRiOWYyYjk0NGRiMmE2YjYzZTQ0OTJjNzNiMzM1CitIQVNIOiBlODY3YmViZGMwZTE4NWY3
CisKK0tFWTogNDk5N2U3ZmY5MWQ2MzhkZTI5ZjIyNjg3Yzk3Zjk4MzUKK0lOOiA1NjgyODNlYWI2
ZjQwZjE1OGU1YzY3NDJkYTYzMzhkNDAyZjRkMDVjZWE1MGQ2ZTE4ZGE3ZTNiMDU1NmVkZjFjYTUx
MjFhNThmNDRkOWM4NjA2NmI5MTdiNTdjYmU3ZjE3ZjQ5Nzc3MmJlNTQwMjJiYzQ5M2RlNjcyMDFl
NjAyNjhhMjNkM2YwZTgwMjRkYjU4ZWIzYjZjNDgwNWMzMjYzNzQyMTgzNzRjNTkyN2Q2MDA2OWM2
MWUzNzc3N2JmNzZjNTlmMTY2MDc5Y2ZlY2Q2NWM0NDc5ZTk4ODU5YzUxNDc4MGMwN2Q3MjU5ZDJi
MjU1NzVmNTZlY2M5MzY5NzY1MzQ1Mzc5MDhkZTZlNGQyOTY1ZWYxNmNhOGFmMzVlZTIxYjkzN2Vl
MTdhOGExMjVmYWIxMWEwZjU5YzQ1MGY0YjhjM2I1ZDFjNTAzNWVhNzNjNWQ3MWNlMmZmYWExNjg5
ODcwMTcwYjQ0MTRiZmIxN2ZhZWQ4YmFhYjIzOWE1MDQwMjdhNzc3MDc4MmM4ZTZjMjVlMDIxNjIK
K0hBU0g6IDZmOWNlNDIxZDE1ZmFjMzgKKworS0VZOiAwMmMxOTk0YWI3NWExZGQzYjZjNDY3OTEy
NzJmODI2NQorSU46IGQ1YTdlNTg2ODY2ZmQwYmQ1ODZlNzZlMTVmY2VlNDUzMjNjYjQwYWIwYTdj
OTIwMzBjMDdkOWNlYWYzMTVjOGU4ZTEwYzIwNjIwZWYyMGIzNjVmNjkzYzViNzEwMTFlMDVhZmNj
YTdlNzRmMmRkOTIzODVhNmZhOWJhZmQ2YWU2ZTk3YTNhNDE5NWFhNTBlNzVhMjIzNTczZjVjZmFi
MGVjZTMxODNmNWRkZDk1ODA2MDczMjNiYjE2ZmM4MTliM2NmNzZlMGQ0MTQ3ODMwY2ZiN2M5NzEx
NTc3NzA3YmVkOGEyMjRjODA2Y2UwNjI3NDhhMjBjOGYzODY2MDlkYTI4OTgyN2JlNTA5MDRlOTYw
ODA5ZTBjZTc2ZmY0NDE2YTNkOWNmODJiNGI1ZTNjOTZmZmIxMWZmZmY2ZDg0NjQ4MWYyMDM1MDI5
ZDNjMWFkZDliZTMyMzIxMjFkMzc5NGVjYjFiZWE2MDU4YTI5OWYwOTkxMThjMjBiZTRhZDViYWE0
ZTY3Nzg0ZjkyZmVhYWFkZDU0MjYyMzgzCitIQVNIOiBiZTc4ZTg4MjkyYmRiNDY1CisKK0tFWTog
YWMwNjAyNmZiNzI3YWUzYTEyMTFkMzY5MTk3NzA2ZDcKK0lOOiBlZTIwM2EwZTllYmY2ODk4YmRk
NjQ1MDU3ZjhhZmIyN2RlZDdkN2U5YzE2NjBmM2ZkMjdmNDQ4OWNkZjMyODZhNzliOTExMmYxZGVk
MWE4NzhkYjYzMzYxNDRiMzdhNTkxZWEwNzRkNmFjMzU4ZGE4ZjA4Yjk4MGY0NzM5ZmFjY2U2MGUw
Njg1Y2NjM2Q5MzkyNTUwNDQ5OTZlMDYwYjA4MmU5MDU1YzY2YTgxNzI0YTNlMmUwMGFhMGQ0Nzc5
YmRkNTQxN2YyM2E4Y2IxZTgzNjRjMDQwNDIyNTcwMGRmNGEwNjM0MmRiNDdjYmUxODU2MjlhOGI0
ZTE0ZjE0YzI0YThjNjc4NGY5MTY4ZWFmNGYwZWYzMTJlYmIxOGQ2NDcyZDYzZTc0OGQwYmMyYjY0
ZjhkMzEwMzViYWIzYWViOTczNmEyMmUyYjNiNDJkZWI1ZDk3YTNjNDA1YmVhNzQwNDkwODZhYjQ2
MjE2NThhZGY0MjI5MzgyMGJjNzM1YmQ0YTc0ODY3N2Y3MTE1ODhjNWNiNzk4NmM2YzIwCitIQVNI
OiBkZTNhNDhkMjY2NTMzZDVlCisKK0tFWTogOTNkYjcxNDk5ZjBmZTFiYjcwMzVkN2E0ZWFjOWNm
ZTcKK0lOOiAxODI3MDkyMDc0MTBkZTM3NTdkMzUyNTBjZTQ0ODMwMTdlNmYxZThiZWQ2MTlkZDM2
N2I5ZTI3NjFlZmRjMWI1MzgwMDY3MzBmYzY3ZjU3OTE5YmI0N2Y5MDIyZWNiZDg4ZGIyNjlhZWE0
MzY5M2FjMjIyMDZjNDIyMzE3OTY3MTE1NWI3NzI2ZTVjODdkN2JhNWFiZGYzOGIxZDEzODBiYWM1
YTlhNTJiZTcxOGEzNzg5OWQyZDM1Y2ExZGEyMjc2YTQyZDQxMWE3YzU0YTJmZmIxYWQ5OGY3YzI0
N2IzZmM0OGIzMGM1NGEzNDJiMDNlZDQ3NGQ3Y2NmMThlM2M3MmM4ZWQzYjAwY2Q1NjgwZWE4YTBi
OGJlZjRkZjUwZjEyYmI2ZGYzMzUyYjhjN2IxMGQwZTZhNGEyYTkzMTdjOGYyNWI5YTEzNDAzNTYw
NDEyMDhkN2JkNTAzYmI2YTY2ZGUxMGNkZjg3NzViNTZiMTk4MjYwYmY5NjQ3MjA4MTE5MzNkY2U5
NWQzOTIwNWZmODY3NWM4OWEzMjE1NDUKK0hBU0g6IGRiYmZjNWQ2MDAyMjllNjQKKworS0VZOiBl
OGQzNTcxZjY5ZDg3MjE3NjQyMDU2ZDNjNTNiNWYxYQorSU46IDNhMDBkNTg5MzY2YTRkMjQ1OTgw
NTkyMDY4YjM2ZTFjNGI5MTI1Y2I5M2M4ZGI1ZjQyNjkxNjdlYjk5ZGFiOTI0YmEzYjk1Y2QwYTc2
ODhiYWU2ZDNhNTJlMTJjNDYzZTkwNGE0NTI1NDY3ZmM0NmMzMWUzMmExNjgxYzBiMGEwOGMxNzM4
Y2FmN2JlYjk0NGM2NzY0MDZmZTNlZWY1MjJhODczMjMwMTE3Yjk0MDY0MmM2NTFhOTQ3ZTBlZGVm
ZGE0YTkyMzA3NjJhMTJjZmJiNDg5NTI5M2M0MjkwYjhiZTNkMDRjYTE0MzA3YWU4ODVmMzQ4YTI1
YjhmNjFhZGRiNWI4Y2JjOTQyZjkyYWJiODcyNzY5ZDRjOWU4ZTg1MzgyMjQyNzFiZWQzNWQ3Njdi
Yjc3ZTE3MjNmYjA5MjA4NDEyZTYwNGUxZmEyM2I2Y2M0M2MxMzc1NTFlYjlhOTYzZTBiOGM3YjYy
MmY0NTRhNDM2MDIzNTIzYWIyN2FlY2Y1NDU3NjhhYjUwZmIzNGM2ZWE0Yjg4YWQ3MDRkYjliCitI
QVNIOiBlNWQwOGVkZjE3ZWFiNTc3CisKK0tFWTogNzQ5ZmNlZWQ0MjRlYTJjNzRlYzQ0MThhYTVh
ZDQ3YzEKK0lOOiBlOGI1OTRmNDZlNjBmNzdmNDU5NmUyYzhhOTBlYTJmMDQyNzkxZmUxOWMzZGRi
OWE2OTc0MGYzNmNmMjU0Njk2MDVhMGYxNjA2NWYwY2YyMjNkZjJlYWFjY2NlMzI5YzI1YzkxMTA4
ZGY4N2VkMWY1MTM0YzUzMDM3ZDk4MGIzZWFlYmY5NDgwMTM4OTgwMmMzMmUwODY2ZTJmNDk5Yzgz
MjM1OGMzOTkyNzg2YmRlMDU3NzlmOGViOGM5ZmYxYzgxZmYzMWU2MjZmOWM5MWU2MTU0MTBkNWE4
NjI1ZjRmMzc1MzYwNTlkZjYzNjNkNzA4N2QyZjQ3YmE5YzU5OTUyOGE3MTE1Y2U0MTlmYzI5MWIw
MDZlM2RjYWQ3YzYxODQwZjU5MDBjYjQ2ODdkOGY5MjA2NzAwYjI1MWM1YTY0MjBmYTY5M2FmZTA1
MDcwNTM3ZmE4NzkyNWQxMGQ1ZmVlNDdkMjQ2ZDVlZGU0MzJmNDMyOTllODIzZmY4MzhiOGE2NDg1
Y2RkZmI1YmZmZjE0OTgyM2MzMjY4OGEwMzllZTg3CitIQVNIOiA2YmI4MmI1YmM1NmI4NDUxCisK
K0tFWTogMWE1ZWEzNTM3ZWU3YTdhMmFlMGEyMjAwMWRhY2E5NGUKK0lOOiA3NmI4YmM4MWJjOTc4
M2Y2ZjhhN2U4NTE1MWJhZWI4YTYyZjhlYTliNmE3YTZhYWE1MWJhZDk5NWFmNGUwMzY5ZjhmNjFi
NmU2NDc1ZGEzNGZiMDBmYzE5NDBmMzJmMmRjMGIxYWIwZDBhMmE2ZjA0YWU5NDgwZjM2OGU0NTVl
NjQzN2QyZmJjYTA5YTU0NTgwOTViYjg5ZjZjZjM2YTQ0YjVhZDNhZTg4YjM0MTkxYWM0MjQ2OWEz
YzI4ZTlkOGQyOWVhNjAzOTdkMDFkZGYxMWJhODBkY2E1NzFiNzA5NWJkZDA4NzM3ZGYwNWM5ODJi
M2ExMTViZDNhODdhN2VkZDY1ZDk4OGRkZDA5MjE3ZjNmMzEzODY2NzZkNmNhNjU5MmFlNzA3ZTUx
ZjE2ODQ5NDQ0YmJkZjNjMjY4Njc2M2U0YTdhZDJmNDRmYTU5NTlkNGVmMTU3OWY1YWQ5MzdkYmE2
YzM5ZTRjYWMwZjI3ODQ2NjM1MGJkZTljZTgxYTkyOTZjMmU0MjJmNzlhZGQ2NTM0M2Q4YTY3ZDk3
MzJkNzJlMTAKK0hBU0g6IDUxYTMzYzIyMmVkY2I5NzkKKworS0VZOiBhYmVmZGU2MTY2YWQ4MTVk
NzM2NGI2NWU5MTE1ODVjOAorSU46IDBhN2MwZTM2ZDlmYWIwM2I0YTUzYTYyN2QyNTI2MjM3OWMx
N2NlNjQ1ZDZkZWU4ZGY0ZjMzM2Q1MTJlMzdiZmJjZGQ2ZWQ3NzIwOWZmZjA4OTcyNDJmZTQzZjU3
Njc3YjI0NmM0YjE5Nzg2ZjllYTllMDAxOTFlYzI1MjY4YjRhMWVlNzE1MTgzMzU4NTcwZDZiNDVh
OTNkYmUyZGVmZThmMjBiZjAxNDJjMmExMDkwNjUyYzE0ZTJiZWY2YmNkNTA2N2RhYjNkZmE3MDEx
OTlmNmQ1YTE0YjM2MzQ5MmIwYTBmZmI2NTE2YzdlYjE3OTUzNzAxY2I2OWI3OGIyOTBiZTQwOGYy
M2I5YWU3OWVhOWI3MmQ2Nzk1ZDMzYjg1MTE5Y2E1YzZmYWU5ZjFhMjgzMTFlODBhM2NjNjUyZjk0
MWIwYTk0MTcyYmFiNWIyZTVmOTVlMjM1NzYyMzRiYTNkYWRiMzIwZjY5NzUyZjhiZDYxODc5MzRj
MTAyMzg4MTdjMTE3MjRhNzA0MGY2ZGQwMmMyYjY5YmQ0OGViMWRjZmZmYzZiCitIQVNIOiAwOWU5
MzNiNzg5ZTdlY2MzCisKK0tFWTogMjU2M2QyZWIyMWU3YTc1N2NlMzEzM2I2ZTg1MDg2ZWEKK0lO
OiA1NjhjNDc4MWFiYTk5MjU5NzlkMjAzYWZjYjZjOTk1MDg3ODIxNDg2NjA5ZDNmZTA3Mjk2ZjU0
MWM0OTdhYzQzY2IwMGU0NDYxMGFkODQxZjllMzQ0ZDFlY2ZiODZjMmIyNzA1OTEyMGE2OGUxMjQ5
ZTAwZjhjZGIwZDA0NjEyYThkNGVlOWEwYzU5YTAzZmRiNTk1ZTU2NzEwOGQ2ZGFhM2FmY2FlOGMy
MTkwZTZjMmMyOWVhOTE3MzYxYjlkNjhlNDk2MDE2YWEyMjY2NTIzZmM1ODJmMDgwZjE2ZmJjOGM4
NzZiYTU3NGZlMWM3NjYyOTFlMzc4ZTNkMGI3OTcwNWQzMmE1NGNhNDIxZmI0NWI5ZTI3ZmJhNGUy
NTAyZjgyYzQyMmRjMDg2MmMwMGNmZjVmMzA5ZWI0NWM2MzVmMWFiODkzNDVlZDRiODE3YTBjYmMz
MmRlM2UxOWYzZGQ1ZDY5YzIwOTg3M2ZkMDAxZjA5MWMwNDA4MDY2OWE4YmFmNWY2OTQ0ZTAwYzZh
MDQ1NWRkOGVlYTBiNzNjMzg4ZmZmNjRiNDNjCitIQVNIOiAxOWFjODQ5YjJmZGYzZjY5CisKK0tF
WTogNDEyOTM0MWE1MWZkZGY0Y2FjMDM2NDE0MmI5MTYxNTAKK0lOOiBiZjAyZDAxODkyYzRhMmYx
ZDNmN2QwOTk0NWJiOGI4ZGQyYjBhMzYzZmViNjQ1NjVhZDRhYzQwMDBiYzU0ZDNkNTY0ZTczZTQy
OWU5YzVhZTk0MTQ3Yjg1ZmJmNTMyZDI1M2FmNmZhODY3YzE1NTQ2NzU5MWQzOWEzNWUwYjY4ZGU1
Nzc1ZjUzZjg3NWViYjllMzYzZWRiYTkxNmMxMDkyOTA5YzE1Yzc0NWYzNGFjZDZkNmFjMDllMGQ4
ODIwNzAzYWE5YWM3Y2RmMTQxYmY0MGE4N2M5ZDE1NjNjNWQ4ZDE3YWM2Y2Y3Y2MzZGU2ZmJiNGNj
YTU5NDg5ODljZjI5MmE1ODJhODM2YjZkMjkzNjc3YjUxZTAxNWNhZGUwNDkxMTM0OTI0MzMxYmY5
NGUzOTI2YzgxZTg0ODE3ZWZmNzg3N2Q1NDMyYmU5NWZjZGZiN2VlYjE3ZjQwZWExNTFlYTM2MGNm
Y2RiZDIwZTY5YjQzODI3OTM2ZWJmNWNlOGY5MDY1MDkxNTg0ZDc5ZGNiNTU2MmE5ZGE3YmMzMzc4
NzMxZTM2MTliZTQKK0hBU0g6IDM4OGI3MDE3MjRhNTJlMDEKKworS0VZOiBkYmI4MTkxNmRiOTkw
OTA5MGU2NGZjMGUyM2NhZTdlNgorSU46IGZjZjc4YTM4NjdmN2E5YzZkNTg1MzU5ZTE4ZTY3YmI1
MzVjNTkyNWM4YjJjNmNkZjlkMDhkMTA0M2QwNzg1YTU1YzM2ZGJkZDZjOGI4ZDMzMzYyZTg0ZTgx
NTZhMWFkNGRmYzYzZjE4ZjAwM2EwNzE5YTUxZTgzOTI4ZTc5YjcwM2IwMzI0YzI2ODk3YzZjYjY1
YjQzYzI1ZDM5NjI4OGQyMzU3NjAzMmM3NTcwZjU0MTIxZDU1YmM1OGJmMDUxYWUxYzQ0N2Q5NDg2
MGI3OTZjMjU5ZTI0Y2NiM2YyZmRkYjgwNjk1Mzc0MTVhMTczNDg2ZTA5MTQ0ODM3YmUxYWMzMThm
MDQzZGU2NmFjNzJjYjY2M2NjNWJlNDJmNmJmMGUyNDMxNzA0NDFhY2I3YmVmZjZjMzA3MGI1NGNh
YzU3MTJkNGQ5NWIzMzBjZTE1M2ViNDk3ODExMmRhYTExNjI5ZTIxNGFhZjljZTRkNjVjYWM3ZTVh
Zjk1MDhhZWVhZDc2NWUwYjMwNWVlYzI1ZDdjYWNjZTUyOTU2Y2ZiMzI1OGYyNDZhMTAxOWM3CitI
QVNIOiA1NGU1MmZmZTBjYzc1OTMwCisKK0tFWTogMWM0ZDI0NmQ4MDFiZWE0ZWRlOGNhYTA4MzU5
YTMwNTIKK0lOOiAwNmMxYjRmZDc5ZWZjMDE3Y2EyZTc5NTFkMmM1YjAzNTFlNjYyMDNiMzhiMzMx
YTE0NzBmODIwZTg5OWY1YmI3NDA0MjVjOGJlYjNhYWVmOWU1YTNhZWRhZmYwNTYxYjljZDE4Zjcy
MzczMGVmYTQ0YjU1YTRmMjNhYTNjOWRlZWQxNDEwNzUxN2UyODQ5YjAxNDk3ODcxNmQ5YmE5ZmUy
YjA0NzgyMTM5ZGRhZjdlNzExNjk1NDQzYzJiYmIxOGM0MjQyYWY1ZjkyY2Y4ZjJkZGFlNDAwN2Y2
YzdmN2MwNzJjNWFlMWJmYzAxMGUzZWI4NDMzOTJkMTM5NjYwY2RmMzFiMzM2N2UyNGZkZDVkYTQ1
MjIxMWZiYTIzOThhNTJjM2RiYjYzYzhjZjczNjdlYjdmNWZhNTQwMTEyOWY1YWQ3MDdkN2QwYmRj
OGQ2YTU1MTE1MjA1MDg4NWVhMTdmNThmMTk5ZTdkYjlmY2FhMTc4NGJhMGU3MTI0OTMxY2NhOWJk
NjBmYTQ1ZGYyMGJlYWFjNzk1MjlhN2JjMTZmYmIwZGEzODg2YWI2N2VlCitIQVNIOiAxM2I1MzU2
NzVjMzY3MWM3CisKK0tFWTogODk1OTNkYjc2NGMzNTk1OWIzODRhMTA3MGVlNzdhODIKK0lOOiAw
MzZkZDJlMzU2MjViNDUzN2ViOTM4ZDc0OWE3MzI0NzFhNjg0NjQ5NmY5OGM4ZDkyNjQ5ODk0ZWEz
OWRmMmQ2ZDQ4MGFjMzZhMzQ4MGIzYjk3MjVhNWRiOTYxMGE0ODY5NmU4NDNmZDM1ZjI4MTZiNzU0
NGQzOGViNzExM2YwZDY3NDA1ODY3YjdlOTZhNTE1OWU3YzI4MTVjM2U1ZjJlZjllOTY0ZWMyODhh
NzFkMGE4NTY3Njg3N2RiMTBlMTM3ZTZlYWE5MjYxYmUyODk3MmY0NWM0MWJkOWFiYTg5NmZkOGFl
ZDRmZGRjNDE2YmQ5MDMzNWJiZTUyNTRkZjIyYTZkODRmMWY3MDQzYTlhNTdmNjAzYzQ3MjAwN2U1
OGZhNTI4NzI2NmVjMmVhNDE3MzA2NGJkMDM1NWYyY2JmNzA1YTM3MDAwZTcxZTc5MDY3MGI2YTZm
MjFlODY3NmZmYzY0NDk5ODBiOTQ3NjNmYTZjN2YyNjdjYWE2YzY3NGY5ZWE3YzJhN2Y3MmI5YWJj
NzRhYzgzZDE5OWQ3N2VmOWQ5ZDEyOTM0OGYwZjY0MDgKK0hBU0g6IDllZGJmZDlhMTUwOWUwYWYK
KworS0VZOiBjMjZiNjQyNDhjZDgxNGE1Y2JlNTU4MmNlMDg3N2YxMgorSU46IGIyZDRkMzdjNDlh
MGE5YmE4MjdkNjVmNDc0NjNlNDM2NDE1ZTZlMDMwM2E3MDNlOTU5NmM1MDNlY2MwNGUwNzFmYWQz
MmY4YWIzOWIxYTg2MzU0Y2M4YjAzMjczMzMxNTBjYTIxYThiNzk4MWY1OGZhOTQzMzZmYjMxNGNm
NzY1NDFmMGE5YTFmYjg4YjUxMjZjMDg4YzFjMjExOTNlZDdiNjAxOTAwZGNhODEzODg2MTk2OGJm
ZmNkNTkyNTc5NWNhMzFkY2UzNmI4NTBlNDVhODYwODVjZjkyMThmMjEzMDM1NWE4NmRhMjFkNjYy
ZjM3OTM2ZjAzODA1ZDhmN2E2OGE2YmE4ZTFjMTMxNjA5MTlkY2Y2NmQxNzY3MjVlYTNhODNhNzI4
NGRiOWY1NzlkNzkyZjg1NWIyMWNiMjU2OTY5MGQ3YzI5MDgwMmRlZGFkMzE4OTVhOWZiMTk2YjE3
YzY4MWRkYTgzNTE0OTYyOWMwYjZmOTIwZDM5MzY5MzgzNzU2Y2U0Y2YzYTFlMGFiZWYyYzA3MWEw
ODk0Zjk1Mjg0YWNhNDUzZGJlN2VmZDNmCitIQVNIOiBjOGY5OWE0NzEyMDJhNDdlCisKK0tFWTog
ZDg0M2EwMjk5OWRhNDIyNGEzMGEwYWRiMzRhODAyNjgKK0lOOiBhM2EzZDE1ZDQxM2ZhMmYzMzEw
OTk4ZWE1NTBhZmQyZGJjYWJiYTYwODUxMzA5MWRjNGU4NDM0MjE5NjBhMjk2OTg3MzFhYWJmZWE4
ODlhZjgxMGRmNjFjZTQ2OGU4MjYxOTdiNWZhMjc1YWIyM2Y2OTA4MDU3ZDhlYjJhY2MwZjhjODFl
ZmM5Njg1MjMxYTE5OGEyMDkwZDMwNzc1ZmNiZWVkNTY0Y2RlODRmODRlNGM3ZTUyNGYxNmZkYzZh
OTg3ODE0MzY5ZTZhYWZkMjA2ZTc0MjgxODYzMzlkOTU5ZjA4NDQxMGU0MWMzYmNlZDA4OWU5NDhk
ZDJhMDE1OGI1OTMxYzc3ZDk1ZGRmYzcxOTdhZGE3ZDNiMjEyYTU2NmI3ZGQ4NDgzMjE0YTdkZTky
OTRmYmFmNzhmZDAwNDY2NjUwZDFhMjQ0ZGMwYzUwNzEwMWYwNWNlNmQwOTUwYWYxNWM1MWQyMWM5
YWUwNGE5M2NiYWIwMTMwN2UzMzI0ZDRiODM0MjUyYzI3OWMyOGY1MDcwMDY2NDZhYmY3MDFiYzlj
YzQwM2VlOTM4MGRjOGU5ZTJjCitIQVNIOiBhMGY4MmUzZTIwMTM0MWYzCisKK0tFWTogNTM1OTg4
MGQ5MGIzMDU2OTBjNjRiYjY0OTA4NmZjMmEKK0lOOiAxNmVlY2YyNzQ4NDE5OTk1ZTY0ZjI0MWVl
ZDRkNTM4ZGI3NmUwNmYyZTRmODMxMGE5ODI3MTIwMjBjMDI3NjUyNzRiODYwMjZjNjQ3OGU4ODdh
N2Y1NTdlNTZhZjVlNTZkNDNiYTQxNjYwM2Q3NzZjOTM0MjI0NDQyNWEwNTIzMGQ1ZWJjYzUwMWY0
YWU4ZmU1YmI4NmY4ZTk5MmFiNGFhMDgyZGI4NzIzOTVlMzIwODI2ZTY3YzYwNmJkOTMzZDgwM2Fm
ZGIyMmNlM2JjNGRhMGQxOWM1YTUzOTI3OGYwZjUxZGRkM2NjZmY0OTVlOTU3YzNhZDBlMDhlYThh
NzBmMzA4M2Y0MGI5ZGRlOTU0NWNiYzQ3ZTczZDVjYjg5YWU4ZjgzNTFlYTBhYzQ2ZTlhYTdmYzQ3
MTJhZGY1NzIyYTdiMjY4ODZiNmI1YjU5NGZiMDU3MjU0NTZjNmQ5NDhlNTgzMDJjZWE3MGVkM2Yy
YWU3MDQyMTUyMTY5NjZkMDg3YTM2NjcyM2I3YzYwMDk3N2NiYzk3NGMwMjdhZDJkOTQwOWM5NGZk
OTk4OGQ4MTk3MzU2NzUKK0hBU0g6IGQ2YjE0ZGYzY2Y0YzdmNDkKKworS0VZOiAwZjBlYzEzMTg0
ZGJjYThmNjA5OTYxYjZiOWZjZTc2NworSU46IDIwNDE3NGE4ZTAyM2RlN2UyNzFhYzVkYjVmYzdh
ZDU0MzI5M2I0ZjE3ZTFlNjQ4YWE2MDU2MTdjZWM1NWFiYjllNTM3OTZkNzQ3ZmIxM2RlZGRlNDQx
NjMyMTQ0MmZiZWI5NGUwYWZiNWRiMDI0ZGMzNTU1YjdkN2Q2MmNlZjA5YjNmYmIzZjdmM2JhM2Vh
NTM2OTk4NDgxOGY2MmNkMzc5MjRjMjA4OWIwM2RmNmI3MzM3M2U2YjQ1ZGI2MjAyZjdlYTA0OTMx
MTg3ZmM4YjZiYzM5NWRkZGYxYTkxNTZlOTEwNzNiYjAyNGVlN2I4MTUwNjQ2YjY5OTk1ZWJiNDdj
OGY1MTNlMDg0MGZmMmE0ZGEzY2RmYmU1ZWFkN2RlYmY5MzBiZTVmZDA4YWQ2YThjODM5Njc3YTky
YmI2ZDJjN2FkZTNiYjE1YTA3ZWQxYjkzNTExM2RhZGRlNzQ3MWZiMzY2YWFjNmIzZDU3YzQyNWVk
ZjAxMTc5MTRmNzZjNTFiOGI1OTBlMTY2NDAxNzlmODgxZjc4NGI5MDlhZmNmNzk3NDRhODY5MzY4
YjczMThkNDdhZTkyCitIQVNIOiAyZWFmODVjYTI5NmU3MWY2CisKK0tFWTogMjZmOTUyMzIyMTI5
YWQ5NmRlYjE3NDJjNGNmMDJkYjYKK0lOOiA2ZjEwNGYxYTdkY2U5M2U5Mzg3YjllOGM1ZmJjODE5
ZDE3Yjg5MTJkODZlNzRhZTk4YjQ5OWVmOWVhMTk1ZTRhN2JlZjNlYTk5MjBiN2YyNTBjNjliNzdl
YWMwZjljOWI2NDk2MzM4Yjk3OGY2ZDllZGZmZTM2MTk0YTQ1MDkyMDQzNWQ2MDg2OTZlMzhkY2Nm
YzZhOTVhZWI0OGQxODRkN2JjOThjNWU5NGEwYjYwZWRkMTEyNWRiY2ZjMzQ4NDYzODQ1OTgzMjRl
YjIwYjAzN2YzMzk0MjE1ZWM2N2I4ZjI0YmM3Y2VjNzIyMDdlZDM2ZWEzNDk5NjExYTY3YTE2NzNl
NjJmZjZiMjY5Njg5NjI2ODE3ZjdhMjI4M2U1NzU2MTM0MTg5ZDlhYTc0ZWJkZDI1MjdhMjhjYzlk
NWZlNDFiN2M0M2JmMjVkYzY5MWNmZjA1MTU4OGFkY2FjNTU5OTIzODQ3YzQ1YWViNGUyYjNkMTkz
NDkwZWE0YmI2OWJhZWY5ZDRlOWRmOGVkMTFjZTJhZDFlNTliYjA3ODhkMWM0ZmZjNGYxNTc4MjE4
MzczYTZkMjhlZjczCitIQVNIOiBmMWNmZGE3YTRmN2U3MWVhCisKK0tFWTogN2IwZmZjZjlkZjNh
YzJiODkyMTQ4OWQwNjYzYTZhNDEKK0lOOiBhMTFiYTQ5NjlmMWU1NDJiNGZiZjc4NWIxZDYyNmEw
MmE5ODI0NGE2ZGMzY2JiNGI0NDNkYmRjNzAwNzgxYWJkNzRmMjdiNjFhZjE2ZjJiYmJmNzQzOTQ1
NGJhMTFiMzE3ZTkxMzQ4MTk1Yjc1YmM3MmJkODRiNjg1NTU1MmJlZmI4YmZlMmMwMjkxN2EzYTgz
OTJkNjg5ZTEzNjgzNWVkYjI0YTMyYjk3M2FiYzFmMmNlMmExMmUwOWQzY2JiNDJiZjA2YTczZDkx
ZGY5Mjg4OTQ3NjgxMTEyNjEyNjQ0NzBiNThkNzA1M2VjNDFhMGRjZTFiNzUyYThiZjRlM2Y1ODZh
NDFmZWY3OGU3NWRjMzRlMDg0MmRiMTQ2NmE3ODA5YjQxNDkyYjZmNjVhZTFlMjA0ZjQ0ODYxZmIw
ZTljYThkMzE1YjA3MzFhNDc2ZWFiMWE2ODI0MjgwODYyMzE0YzQ1NjUzZGE3YTlmNWQ0YjIzNDk2
YWE3ZDBkNzgxNjJiNjZkOGViMDM1MGUxZjE2MzIxMGM5OWYwZTFiNjM0MDFlZGRjNTc2YThkY2M2
YTk5YjIwNGYyMWMxNjEKK0hBU0g6IDBjNmQzMmQ4Mzg0ZDY2YWQKKworS0VZOiAxMjdlMGI5NjUy
N2Q0Zjc4YmJiYjU2MWVlMmY5NDIxNgorSU46IDg4M2I0N2YwNDc4OWVmYTlkY2I0NjY0NTRjNDAy
MzNlNGY0ZDFkZGFlZjc0NjA2OTExMGE5OGYwMjMzMTRiZDI0ZjVhODNjMzg0Y2EwMDFmZTRlMzI0
MzBmN2ZkMTZkNjBhYTY3NGJjZWQxZjc4MmM5ZDNmMmI5YmU3YWUyN2ViYTE1MjMxNjYxOWZkZmQ5
MzQ0MTI3ZjNlOTVlNjVjZTA0OTRjYTlhOWFhZjg2YTVjMjNiZTUwZjJjZDMzZmQzNjQzMWI0NGUx
Yjg2NzA2YWRiODkyOTMwYmU4YTU5OTkyOTVjZGNiNGFjNGE3YTI5OGY4M2ViNjBmMjM5ZjdhZWJi
MmMyYmJhMGNkMGNiYTNhNzg0MzEyMDlkMTY1MTdkOWM4NTZjZGFiZGQwOGMwNjIzNTQ4YTU0MDQ2
ZTQ4MjMzMmU3YmM5ODBkZTZjYWJmZjIwMWIwYTM3OTViMjlmMTc4OTY1MDA5ZmRmMjk3ZGJmNjgy
NmU0Y2ZiOGU4ZGI0NGZlN2M4MjVmMmUyMjgzNmJhZDhmNWNjNmZlYjQxNGQ5ODNkMzdhNGU4ZWE5
YWZhYmFhNjM2MTgxYjBmMmE5CitIQVNIOiA1ZGYzNDM1MTk5ZDNhY2Y5CisKK0tFWTogZTI0NWEz
OWU1Zjc5MDAzNTFmYjY4YjY1OGRlZGQ4YWIKK0lOOiBhZTg0ZWE3OTVkZDMwODYwNGE3MmMzZGFk
NDI5ZWQzODE2NjRjODFmNWFjNzc5NTQ4ZTNhMWU1YjA2ZTkzYTcwNGE1M2ZlYWMzN2U2MjcyMDgw
MGJkMTJmYmViYWVjMmU0YmI5YWVkNmY1NDU1ZjdhOTYyNTQyOGE5ODY1OGEyNDRkMDVlMjQzNjVm
MzhlOTg0YjA4ZjFkOGJmNzk1NmQ5MmM4ZGQzODRlYjM1OWQ4ODA0YTQxMTdlM2RkM2ViOWU3N2Rl
YTcyNTU3OGFmNzBlOTlmYzA0MDA1NzkyYjJlNDQ0NmY1ODAwMzMwYTgyZWI3YmE2YzJmNzNmODUz
OGE1ZGViNTBjMDdmNjNhY2U5NGY5MjRkZTQ5YWVmNjhhZTgxZGJkODAzMWY2NzYzZDY4NjQ4YTQ1
NzkwNDg5NDRhMTU0YjJjNDgwMGUwMmQzY2IyODM2NzhmYjI4ZDhiMmEwY2JiZjdmNjc3MzUyNjNm
ODJiMTM5ZTBjOTFkMzMzYTljMmVmZTM1MzU5MDBiN2ZmYTM5MTZkYzczN2E3OWY2YTdjZGJkOTNj
OTI4YzBjMWYzYzZhNzFiYjZiMWMwZmFmCitIQVNIOiAwMDk2MDQ3MzEwMDFiZTg1CisKK0tFWTog
ZmY4NDhjZjQ5NjJjODVlZmE1ODczZDYzZTBiMDY3NmEKK0lOOiBjOTc4M2U5YjY1NTQ1OGE1NDY2
NWNlNTk2ZjJmNTA3ZWU1MzcxMWU3MjRiMmZjZGJiNmEwMDU1NWU3ODJiMjg3NGY3MjNlYjliNDJj
OWYwNWY4MWRmMmU0MDAzOTRjMThmOTUyMDI2NmRlYjBiMzliM2Q3MDgwZDI2MDlkNDk4ZWIxNGMy
ZDU0OWZkNTU3MWFiZWE0MDk2NzkwMWNlNzhhMjQ1MTBkOTcyNTgxMmEwOTk2MDliZDIzZThmNmUx
ZjljODA2NWEzNmFmM2E0N2FhNmIwZTMxZjRhNTFhMTNkZmY4YTBiMDE1YzU1NmMxOTg5MTU2OThj
Y2NhNjIwOTM1NzBlOWEwMGZmZmJiOTA2MjQxMTY4OWFlZjJlMjNjN2NhMmEwMDYzN2VhNDEzZGVj
NjZjZmFhNTNmNmVkMGVhYTFmN2NmZDA0N2ViNjIyOTE0MThmMDk5MmI0MDIwYjkyNTc0Y2MxYmIx
NmM4ZTFlMDAwN2U4NGY5M2YzNDhkNTk2MTIzYzBmNzYyZGM4OGVhZWUzZTVhY2ZmMDcwYzNhZDc2
NTE5NGM2NWRmNWUxYTA5YTI5ZjE3NTI4ODg2NDMzYmYKK0hBU0g6IGVhYTUyYzlkOTM3MDU4YmMK
KworS0VZOiAwZWRkNjI5MGU1M2UyNDQ5MTkzMDNlNGNhZjViNmE4NQorSU46IDAwNWNkNjA4NzI0
MmQ3MWI1YzI4MjQwMTY1MzRjMjg0NGY4YWJhM2FhYWRjMjc1NGI1MjQ4ZDJlY2IxOWI1NTg5NGVi
ZWQ4MzFmMjg4MjQ4NWFmOTY3NjEyOGQ3OTE4YjgzNjBhYzUwMTFmZGU5ODRhNzEyZDRhMjk2Njg0
NGZlZjdjZDEwNmM2NGY1NWFiNzQyMGY4NWI2MWI2YmU0YTI5YWJjODU4OGY4YTg4OTgwYTYxZmJh
ZGI4NTAxYWJkNGI4NzEzYWQ5MDY0Y2FkODA4OTc1NWVlZGY5ZWQzYzYwYTkyMGIwNzU1YTFkYTg5
MTA0Yzk1Mzk2MzcyNDY4ZWE5ZjU4NDUwZTgyZjhhZjExMjlkZTcwNjQ3YjcyZmQzZjVmOGMwZGQz
ODU0NmUxNDBmZjJjNjBiMzY0YmJjMzQ0YmVkNzZmZmM3NjExYjY5YWM5NThiNzViNjI2YjNiMWJh
MzMzNGFkZTA3YTFiNjUxYjRjMTY4NzdkOWUzZmQwMzg3MmQ5ZWUzOWQzNTUzYzkyOTY4N2IzMTYz
NmRkYjA5ZWNhMTBkZDRiNzgwYmI3NDU0YWFkNzdiMDhjZjI2MWFlZTU4CitIQVNIOiBhZWIyMzFl
M2Q4ZGM3OTI5CisKK0tFWTogZWZmOTRjZGUxOGUzZmIzYWUwODc4MmQ3NDE3YmI2NTgKK0lOOiA0
Y2Y4ZWY5YjBmOTkyYWNmOWNjMjYxNmViM2EzN2E0OTQ3YThiYTMzMzMyZmUzZTUyYzNkNTc0YzYw
ZjI1N2YyMjE3M2MwM2YwOWQ3YzVkZWU1MzZjOTEyNTUxNmI4MzQ4NzczNDJkMzNmZjM1MWRkMDM2
NzI2Y2JiNjJjYjlhYTcxMWE0NjAyM2M4OGY5MTJmM2I5ZWRjYTRkMDA2MjMzN2M1NGI4MTFlMjM1
YWZjMWY1M2MzYjJhZDc1YWY4ZmY2ODBlMTdmYWM4ZWRkOWFmNWFjODllZDI3ZDZhMmExNGQwM2Uy
Y2JiNWUzYjljNjAwZDM4MjViYTJiMWE3MzYzZmI4NDBhYTI5MTM1YTA3Zjc4NGRkMjhlZGNjN2Yy
OTk5ZDAwYzdiMTkyZjFkZmNlMTViMjUzZTNjZGNjYjM2OTEwZjAwNzQ1MThiNDZkMDNiMjJjMDI2
NDU2ODdlYjE5ZWQwZjM1YzIzZjIxYjljOGVmNTA0ZDFmMTRjYjJlZDZlODAyMGY1NmJjMThhMGIz
MDFkZmZlODBiOGYxMGI4ZGZjNWNlMmNlNjg5MWJjNzMwOTgxZjJkZWNjODQ2MmI3MjM4ZDRhCitI
QVNIOiBhMjUyZDA1YTU3YmUwMzBhCisKK0tFWTogYTk4YzFhMGEzZDA2NmRhMTBlYTRkZDI1MzFi
NGVhZDIKK0lOOiA5OGFiNTA1ZTNhYTE1NTFhOTRhMGNmOTcxZDMyNjNhYjhiNjUxMzZhY2RmNzZm
ZjUwMzYzYmVjMGM0NGNlN2UwY2M3Y2RmYTE1N2JhZjE2Nzk4Mjk3Y2I1ZTZiOGRhMWJkZWVlZDY3
ZjE3ZjhhYzVmMjUzOTlhZWFkODMyM2NiNDBmNzhmM2U4YWE1N2FmOGZlNDJhMGE1YzU0YmM0MDI2
Mzc1MGEyMDE3MWI0ODVmOTUyOGM2OTA4YzA4MWJjMDZmZmMzNzAyOTNjMjg2YzEwNWZiMDFiNGRj
M2E3NDhlM2FiMGJmZGUzZGVlYWU2NDYyNTc3YTU2MTcwZDczNWFhZjkxYmJjNDdkZjQ3OGY3NDIy
YTE1MTI2NjNiNWNmYTYwNTc0YzAwNWQ0ZjQyYTk0NGM1YTkwMzQ1NTNiYTI1M2Q0YTllYzkxYTRj
MTNhZmJiNmZjMmEzMzgyMDQ2NmIzNTY2ZTQ4MjQyY2RhNDYwNjUxY2YwNWQyYmJkZmE2ZjI0NzAw
OTcxZGM4NDIzZTY5N2FhNTBiZDc0ZjZiODUxN2UzNmJlODc2Y2RmZmY3ODVmMjhmYzQwNTdmNzU0
NDI2Y2I2M2YwNmMKK0hBU0g6IGQyYzIwZDBlNTA3OWM2MDkKKworS0VZOiBmYzRmOTgwZWU4NmFl
YzczNTU3OWRjNjBmZTM0Y2UwOAorSU46IGIwNGJlMGViMDBmNjU4NTdlNzIxODJiNmM3MmU0NDFi
YjBmY2U5MTFiMTQ3YTE4ZTkyMGUzMmZlNGY2OGIzNGM0MDFlZTE1NTNjZDAzYmNkOWVjNWUwNDAz
MGU2MWM5ZTY1MmQxY2EwMjhiYmUzZTU4YjFiNjczNzQ4YjhiZTAxYzEzNWEyMTA4ODhmMmIxNzI5
ZGNmNDMwZDM3NjI2MzRlODgyODJlZDM4M2EyYzcyZGYxMTIzNGYzZDZmMWM2NjRiZWNlMjc4OTAx
NjAyMDY5NWY2NGIzMjUxMjlmZGI0MWFhZDcyNDExNTQ2MjE5NzA4OTY3NTIzY2U2MTJjMjNmY2Ri
YjViZDk2ZDc1ZGZkYTgzMzEwMzNjNGRiYzZiNGE2ZWVlZWZlMzk4MTkxMzM2MzQyMGJhNGUxY2Jl
Y2FiZWNjYjFjYWFmNzM3Y2NhYTNmYzIzYjdiZWQyZDE5ZTllZmYzMjliNWU1ZDdjMDIyOTUxZWNl
ZDUwZmRiNDU4MWI2OWRlZGZiYjczZGZkN2VmMGYxYTJlMjBmYWM0Y2Q5NDVhNjI0NTliYzA5NDk5
NTU3NjUxMjE1NTg0YTIyMDY1NDFhODc0ZDA4CitIQVNIOiBlOWJiMGJlM2Q4YzcxY2RjCisKK0tF
WTogZmZiYTY3Y2U3YWYyNTdlY2U2OTA0Y2VmOTZkMzBjM2EKK0lOOiA1OWRiOWQ5NDQ3ODViZmJm
YWI5N2Q5OTcwN2JlNWEyYmQ2YjczZmQ1YjU2NmQwMzBlNmQ1MDA2NmQ0MWViMzk5OWNmNDQwM2Y0
MWE1Y2U1ZmY0M2UyMjJjNzJiNWY1NWQ5ZDk3ZTRlNzg0MWVkNDYzMGFkMTFlYWZhYzQ5MjM3OTc4
YmJlZGE0M2QxNmE3MTM0NDNmMjE3NDdhZDMwNGFmNjgwZDE4OGZhZTQyMDQwNzMzMjNjNDFiOWEy
ZWQ2ZWE0MzY0OWY5MTU1ZjRkYTM0YWMyNmRiYmFjMTk4MjNjZmVjMjkxNmY1MTA5M2NiNjBlNDIy
OTQ5YzEwNWIwNTFlMTM0NGVjMWNhZGZiZWM2MGIxNmRhNmVjNGUxNzA0NzAyZjYyYmQzMTJiNjFl
NTcyNDYzYzk5NzFmOGY0ZTU3YTgzNWUyZTEzYzkzODI4MWQ1YWMyNTZlY2Y1MjU3NDVlYTZhOWEz
MWI0ZTMwNTdiYmNkZmRlMTMyNzQ1OTc2ZTZmMzdkODQ2MTY5MTcwOTFiZWM2YzU1OTY3MDVlODdm
OTMxZTFmZmFjYzgxZmRiMTZlZjVkMGNmMjM5NWYwMWQ4MTMyYTJhNzI2ODUzCitIQVNIOiA5YjQx
OTM1ODYwZTA1YTJhCisKK0tFWTogZTdiOGZiMDI1ODVlYWMwNjQ3ODlmMWJjZjEzNmVjM2EKK0lO
OiBhYjc3MjEyNzhmODY2OTYzNjE0ZGUzMDU0NGNjYWI0OTIwOTVjNDY0NzczMzYyODgzYWFmYWQ3
YzZiMzE0MDkxZWRiYmYzYjAzMWVkNzdjMGJhZTAyODBiYzBiZTJjYWE5OTMwMTAyZGQ0MmI4OTgx
MjYxNzIzNGZlZDExMDM5Nzg0NDFiNzJjNTU0YzgxNTJhZjExY2YwY2Y2MTBjZDkzMGJhZWE0N2M1
MGFkMjhkYzQ2NjUwZmI1NWY1ZDgyMjU3ZDZmZDA3MGY3MDU1ZjQ4ODkxNWQ1ZDM5ZTJkMGVlNWZh
OTQzM2VmOTQyMTcyZDA0NGYyY2FmOWEyZGZkYThkNGRiNDJmZDgwOTlmZDk0Mjc5OTJkYjUxNTcw
MDc4OTQzYmE1MDMzZTJkMzZmOGY1Y2Y2ZjhkNTA0NDE0NGMyM2JmZWQ5MGY4Zjc1YmRhMDI1OTMx
ZTkyZjc1YWQwZDJjZjAxNzgzNWJmMzZmYjc3ZGViODg4ZjkyMTg2N2ExZTNhM2UzOWFkNmQwMTY2
ZGFlNDk4NTg3MWIwMDAxYmVjNDlmYTYyZDc0NGQyMGE4NzczNWM3MzdiMTg2MGQ1ZmJlMDY4ZTdl
MWZmMzE3ODcKK0hBU0g6IDY1OTEzZmI4ZTRmMWVmNmIKKworS0VZOiA3ZDAzOWFjYmE1YmY2NThm
MmE4ZGU3MWZlMWYyODA4YworSU46IGRhNmRhNWM4NDE5NjVlMTgyNDM0Mjc5MTM4YWQ1MjUzNTBk
ZmU5N2FhYmRkMmE2YmQwZTliM2I1NThlZTM2NmY2YjRlYmY5OTNlOGI4ODgzYjJkZWM5NDlhYjJk
Y2JiNWFmYzk4N2U4NmU2ZjU3ZWQxYzdmODdjZTRmNjcyYjdjNTk5Yzc4MDFkY2UzZmIzYjU1NGYy
YmFmNzAyNjk5MTZlODI0NDRjOTNlZDNiZGYzMmI0NzM3NTc0Nzk0YjRkZWYzN2EyODk3MDdiYmI0
YmQwYjJkOWQ5YzAzNTBjZTZjYTllOGMxZWNjNjBlZmY5MWUyZGNkYzZhY2QyMDU5NTA4OWU5OTcx
ZWFhNGE0ODZiZjQ3YzMxOTQ0Yzk4ZmVjZGMzMjBkZWQ2NzE5Mjc2YzI5ZjFiNzg1MjM1ZWI5MGMx
ZDg1NDhkZmNiZmExZWZmNTBmMGVhZjY3YjYwZjMwMTc5MzMzNGZlYjAyZWE0YjdiYTI3NmI4NzBl
YjMwOWY2N2EwYzFkZjk0YTQ2OTVmYWFmZjUwYTM0ODAyYzBlMjY5N2RmMjc3N2U0YjU2MzU1ZTAy
ZmIyMGIwMDU1ZjQ3N2E0YzhiNjdlYTkyY2RjMDcyCitIQVNIOiBiMTk5ODIyZjE4MTFlYzk2CisK
K0tFWTogYzU0NTA4YjAxNjJhMWU4YjBmNzkzOTRkZDUxZDNjYmIKK0lOOiBjNzJiNGQ1NzUyNmM5
YTYyYzIyNWFhZjRiMjAwY2ZkNThmZmI2YmI0M2YwODE1ODJiYzJiN2QxOGM3MjJmODNkYjU0NzE4
NTA5ZjIyZTNmNTYxMDM5ZDZlYTY3MDg3YmU4ZGEwZGVkM2VkZmRlNzkyZTRhYTRlNmIyOGUzZjVi
OTI2MzRlM2ZhMDY1NWM5ZmNiOGZkYjY0NjNhN2I5NDk1MmM4ZWMyNmQxYjM2MzYzMDIyYWUyOWQz
YmVmYmM3NDY3NWM2NWFkODQxMDVlZTIyYWVjYjI5MWNlMjM5YmZkOTllNjQ3MjY2MmI2YmQyMTE2
NjcwNzkwNTBlNDc5NWE1MmE2NmE2OTBlMDU1MmM0NjQ5ZGYyYTg3MmVjYTQ3YTlkOWRmNWVhYzU5
M2QzZGI2MzZjMGViOWEzODJkOWU1M2EyM2EyMjMzZmFkMWJmZjIyN2FiYjM1ZWYwMDgxZTJkOTk4
YjczNjlhM2M4MmIxOTA2Y2Q2ZjA4OTQwNDYyNGZmOThiZWMyZDMwODZkYzc4NDM5OWJjMzFlOTFh
OGM2ZTFkMWI5ZDUzNjJkNTUyMjA0ZmQ0MjIwZmU5NTBlZmM0MzQ3ZTkyZjk3YTA3YmM1MTY5CitI
QVNIOiBlOTc0YTI5ZTYzNjI0YmZkCisKK0tFWTogYzdlOTBlM2JkZGUyY2VhNTM0MzBmZmE0ZDI0
Yjg2NGEKK0lOOiAwMjRjNmIyYTdlMWM3M2UzNDM0ODRlZTI4ZjE4NmU0ZGY1MjA5YzFhMWRkYjYz
ODJiMzJmNmFmOTRhN2I5MmYxMmQxZDRhZmUxYTA0NmNjNDdmYWJmZjExOGI4Y2Y0ZDM0NTViOGE5
YmMzNTg1MWExMmUwZDhmNjRiN2IyYWFjODRmOWQzMTI2NDk1NWMwMDk4YWZlMmI0MWE0NjFjNWMw
NTc1OGNkZjMyYjRhMmJkN2Q5YWVkNjE3YzQ0M2FmY2MwMjdlNDQ2Mzk1MDQ3MDZkYzJkZWExNDM3
NzcyZGRlODMwODg1ZDZiOWY4MDI3ZWNlNGE5YjlmYzk0ZTYzNmI2YWQyZDU0MzQ1YmFmYTk4OWEy
MjEwMjE1ZGNhNjBjZTFmZmViN2Q5OTkwMDFiZDFhYzk0N2I0NmU4OGJjMDI0MDI1MjQxZTEyNzVh
NjhmMDQwNDZmYjJjNjc4NTBmZTczYjNkOTY4YzU2ZTZmM2UxMDg0NmEzM2YwODhjZjU1NzZjODgx
OWQ5ODNjNWMxZDg0ZTllMGVhZWVhNDgwMWQ0ODAwZGYwZDU3NWY0YmNlOWE0YjYzOGNjNDZmNTQ2
YzdiMThlNWM2NDU0ZjY3NmZiZDM0MjUKK0hBU0g6IDE3MzAyMmMyNWM0N2JiY2MKKworS0VZOiA2
ZTJkMTQ2MGJjZjhiYzM5ODQ4MWEwZjE0ZTgwN2NlMworSU46IGMzOTI4YTA1NDdlN2UxMTU3ZTc5
NGYwYzAxYmU0MDg0MTIwMTE3OTQ2ODhmYjhlMGJjNDA1MDg4MzRlOTJmNjU5MzBlOTFjM2JlM2Jm
MTZjNGYxOTgwYWE5MjYxYmEzMzJlMWM4NTgzOTdmM2JkZjBhZTdiNTY4NzMwZDZlMjk0ZTM1MTY1
NmYwYTNlMjY2ZmYxMTllZjZkZGU0OWY2YjRlNzk0MjhiZjAwZDdmZDNhOTg0ZjdiMGU1ODI3MjYx
NGU1ZDQ0ZDhmMWJhYmVmZjZlNjE1MjY1NGFjMjY0YmQ1ZGU0ZDM5ZjMzNjU2NjA0ZjMyNTc2Yjdm
OThhNDEyYjgyMjI5MmE4MzhlNmEwMjhjYjZlYmJlNzZjMzkzZjQxM2M1YWI2MzVkOWZmYTU2OGUz
NzExNjlkMzhlOWZhZTQxNjEwNTVkODdlMjMzN2ZkYmZlYTVmNjM1NTMxMjJkOTVkNzRhY2Y5MDU5
YTIzYmY0YzVjYjIxMTg5ZmFjZjYxZTMwN2FkZmNhYjJmZmU5YTAwYWNiZDdjOGM0NDdhMzAxMDA2
ODYzNDgxY2FkZWQzYjBlYzViNTk2YWUxYTM5NGJlOThkYzEyNDU0ZjYyMzhmZGVkMGM5CitIQVNI
OiBlOTFmMTQ3Yzg5NjdiZmZmCisKK0tFWTogOTIxNTRiODYzZTk1YzRiMDQ5MTcwYWRmOTU5NzU4
ZjQKK0lOOiBhMjQ5NTJjZGMwMmVmNmFiNzBlNTg4YWMzNGRjMTBjZTcxYjc5NDQxZTExYzYwMWU4
ODE0NjMxZGEyYzhlMGM1M2I3NTdkOWQ4NjQyMTM5NjQzYmRjOWEyNjZkOTU3ZDgyMTc0YjE2MGQ1
NjkxM2FiYjcyZDE0YzljM2FiOWFmOTIzMmRiY2VlMmIyODk0OTkwNmRmOWM1OGQzMWFlZTM5MjBm
YWY3ZmIxNWYxYjUwNDdkODhjZDc4ZDNkNGYzMzdhODVkZDdhYWZhNzQ1Y2ZjZDM2N2FkZTg4MWVl
ODhiOWFmMTgzNWRiYzhiYTJkMmM5ZWMwNzQ0OTM3ZWIyODdmOWQ4MTk1OWFkY2M1MTNkMTgwZGMw
YjEwNTAzYThmY2VhYzA4YzUxZTBiNDc5ZDQyMjc5ZDc0Mzg4N2Y1MWM3ZDY2ZjRhNTc5NTNmNTEy
Mzk0MDgxOGNlZWU2MzExYjg4NDI4ZTYyNmYxZmZkNDExZmI5NTY2ODNlMDJmZGUxZTFiZmY3MTJl
ZjYxY2MwMTgxZmNhN2EyOTYzMGRlNzk1NDM2MDAzN2JhN2Q5ZDNlZTIxMjlhZTY1NzIzMjE4OTc3
MzRiMTA4MmNhOGQ0NDc4MDUyYTVhMWRmCitIQVNIOiA2ZTY1MWNkZjk2MDdkMWIyCisKK0tFWTog
NWU4NWUxMWUzYWEzYjkwYTE4NGUyMDI0ZmI3OGEyYzIKK0lOOiBjM2VjMWJjNTFkNDBkMDUzMDRk
ZGYwYmY4YmM3YjY1NTM3Y2MwMDM4OTcxZmIxODc4NjE4OGM3ZjYyMWNhYmI2MzZkMjdjZWVmZTE4
OTQ4M2Q2YWIwZTVlYzg4OTY1ZWQ1OGQzMmFiZjM0NDQ3OGQ2N2MyYzE5NGRjODc0OGVkNWNmZWNj
M2M0N2Q3ZjE5NzExOWM5MjcyNDQ4MGU1ZmFkNDIwYTVjODA1MjZlNTE3OGYyNTI5OGNhMTY3NmYw
MWU0NWNiNzI1NDRkNGY4NzE1ZjNlNDk1MzEyZmVmMWE2YjdhYzNkYmM1NzAzZTU4MGUxNTkzNTVj
NjA4Y2U2ZTZmNWVhNTE2ZDVjMGI2MjMyNWJlNDUzM2ZjNTk1NzkzYzM3ZWUyMTJkZDkyMWIxYTk4
MjQ3Y2M3NjFmZTNjMGQ5YjhlOWIwMzFkMjk1ZGUwYTkxMDEyMGY2ZTZjODhhZDAxYWUyYzZjMTRk
M2EyNGIwMWRhMGM3Y2UwYWQ5OGU5NDQyMDgyN2I0ZjA1YTUyMjI3MzMwZDU2MTJmOGFmMTI4M2Iy
MGNjODlmM2ExZGQ2NjA3OWI0ZDVhNDI0NjNjOTRiNDcyYTk2YjJmNTM4MGM4YWQ3M2FhMmM4OTcK
K0hBU0g6IDc5Y2FmYzRjMWYzNmQ5MjEKKworS0VZOiAzZTlkOGM2ODFiM2RiNTRiNzZlN2U3ODhl
M2Y5ZmM3NworSU46IDhmNzZlYjU2ODlmMjY1MWE0OTNlOWIzODQ0OTE1ZTc5MzU2YWNlMzIzZGNk
YTA5NzFkMWI3Mzc0OWQxZmNjMWRlMzVmYjYxMDc5MGE0N2QyYzY5NGM4NzcyYWE2NmFhMWY5NjAy
MzVhOGZhMWZmZGEyYmUzYTIxOGEwZTk1MTU4ZjA4MzNhZmMwOTYzMDFlMmE0NzFmOTQ5YTM1YTAx
MWI3ZmFkOTZlNGRmMDk3NTA3YThiNGYyNjUzNDk3MWFiMWM3MDAzZmNkNDlhZTJiNDUzZjg1Yjgz
YjQ5Mzg3NzQxMmY2ZTcyOTZjYTFiNDE2ODRhMDU0MzJmOWJkMTI3YzE1OGJiYTllMTk2MWMwMjdj
MGU3MThjY2QxMzAxNzZkYTBkODQ2ZmVjMTM4YWFiNGJlMmYyYTM1MzMwNGUyMGUxZTczMzgwMmIw
YTc4YmRjMTIwZDVlNjdkZDc1ZjFhNTkyNDQxOTA3ZDVhZDQzMDFjZWE3M2RhMDljODVlMDA5ODY0
OGZkMDIwODEyZGMwYjcxMjNiNTdiZGQ4ZjQzZWIzMzBjYjc5NzRlM2ZhMzA0MjYxYjZjYWQ0NWZk
OGMxOGY3NzFlNDYxNTBhMzdhOTdmZDQ1OWQ5YTM2NDI1CitIQVNIOiBmNmE2NDMwN2M5ODIxNTU3
CisKK0tFWTogNjg5MGEzM2JhOTNiMzZmOTczNWIxNGRhMDcwNjI5YmIKK0lOOiA4Yjk5OWFkNjI5
MTgxYjlkOGZkODA4Zjc1NzNhMDE1YjYyMTI0M2Q0OGM4OTRhYzMwODNjM2YwMWViZDc5M2E5ZDUy
NDc3YzYwNDA0NmVmMzQ2NTE2MGE1M2UxODQyYTRhMGFkNTk2MDhkNzI2NDlhODhiZTBmYzc5OGVk
NjQ5OGZhYzI5Mjc4NTdkZDM1NjEyY2EzYzNjNDU3YTZiMDUxOTM4ZDMwYTg4Y2RjNmY0ZGYwMTNl
MDM4NjgxNjEwYjZjNDE4Y2RlNTg2NWM1OWM1ODVmMGY4NTIzNDAxMWZiMWNkOTdiNGQ4NDViMzNm
NDJjY2E0MzYzYWE0OWQ0YTcyYjQ4MTk4NDAxODAwMGQ5MmQxNWM5ZjFkMzdkNDc0ZGFkY2ZhN2Rl
NWM2Y2QyMWE2OGVhM2E4YzQ5NGQwYTYxYzE0MTVkYzJlODMxZjIyN2YwNzc4MDg4ZTcwYjU3Y2I4
ZTJlZTdkNDExMWY5ZjJkZDUxMzBlZjk2NDg5NGRlN2RjYmM0YmZlNGNkYmRlNWNiNWFlOTcwMDZi
YzdmMTI0MTBkMTYxMGNkNTU3NmY0ZTQxNzlmOWJlZDdmN2M4Y2RiYjQ2OTBkMmFlMzUxYjg4ZWQw
NDdhZTM4ODIyNTEyCitIQVNIOiA3NjFiYTg4NGRlYzRhYzAzCisKK0tFWTogZTc4Yzc0NTM2NWI2
MTY1MWViYWZmZThjNDJkNDZmNmYKK0lOOiBmYWMyMDM5ZmIwN2VlYTA1NWZlMTc4OGY5MDAyZWJk
Mjc4ZGVjYjY1ZmNiNjQyOTc3MTA5YWIxMWQ5Njc1NDQxMThjMjBjMjhjMGYyMjFjZjk3NTg4ZTcw
OWIwYzE5NzI3NzBhMWQ5ZGQ5MGUyYzgzMjdiODI3MzY5YzdkZjkyYWUxNzFmZjVhZTY3YzNhNDcz
ZjQxNDlkODg2ZmE4NmQzMDYwMzk3NDNiMzcwOWFjNGJjMDNiYjNkNGFhNmNjZGE3NGI1ZWVkM2Ix
ZTYyMDZlMjZmMTEzNDU4YTQ0MmEyNTgyZDQzNzc2Y2U0NzkyZDcxODgyZmQwMzQ5N2ViMWRjNDM2
OGRmNTYzYTBlODFjZDJlYzRmYTBiMDdjN2RiODQ2YWYwZGZiYWM5MGYzNmIzNjZjYzVjNmFmY2Qz
NDdkZjkyNjdjNTBkM2Q3YjY5YmM1YjJlYzY4NmZlZWUyYWRiYzJhYWRlOGNmMmI3ZGVkZjcwZGNm
ZjYyNTM1Y2QzN2M5Y2EyMzI3OTdmNTE1Y2Y4ZjJlMThiYzFkMDYxZWQzMTMzYmFiMzI2OTg4ZmNk
MDA5MDNlYjMzODJjNTE4ODI1NzgyM2NlNmIxOWI1MDMwNTMyYzc0NGVjMjlmYzRjNmYKK0hBU0g6
IDMwMjc1MTU0OWNjMjQxNWUKKworS0VZOiAwY2U3YWEzNWI2YTE2M2YyNTQ0NGYzODdhMjM1OGU5
MworSU46IDRmM2M4MzgyNGU3NjU5MTU2NWY0ZDc2ZTIxNDRmYmY1OThlYTQwZTdkMGYzNWFiOGRh
YzA4OTU0ODE3OWM1NjQ3MzJhOGU5YjA0N2JjNzEwY2VlYjUxNGMyOWM4ZjBiYmRmMjliMDMyMDMw
NThhYWRlYTgyN2U4MDViNWIwNmIxNWQ0ZmExYmUwZDI5MTE3OTNjZmVmYTViNzc2MzE3MDQwODFj
OGUwNDczMDYwODE5ZDZjMGE4Y2ZmNTU4OTliYTg3MTU3NjFjY2MwMWI2NzcxYjY5Y2NmNDFlNTY1
ZDE0ZjE4NTdhMTdiNTdkYTIwZTU0MzdhN2Y4NTRkNzk1MGQ2NTk0NzZlZTU1MzY4YzM3NWEzNmUx
NzgwOTdkM2MzNmQzNDUzZGYzODI5NjMzMDFlMDc1OWM2MWI0NzBkMTRhYTU3NDRlNmNjOTJiYzE5
Njg1MTdlYWQ1OTA4MTg4NWJhYTkyMTE3NzM3YTcyNGEyYTVjNjRiMzNjYzQyZjQ2ZGQ3ZGY4MDAx
NDhiMTA0ZDgyZTM0N2E5ODcyYThiNDJmN2Y4YTI0YzAxNzk2MDU2OWQxNjNhMjFkMWQ5OTMwNmMx
OWIwOGQxYzc0NDdiNTZmMGIxMzI2YTU5ODNlMjFiNTFhCitIQVNIOiAyNTgzODI3YzUzYmRmMDcw
CisKK0tFWTogMGUxYTZkMTViZTFmNjU2YjdhMjFhMzQ0ZjJlMGQzMTQKK0lOOiA3NTE0NzM2MTQ1
ZjMwMDM0NGQ0NzNiYmUwM2YxMTkwYmQ2NWJmYjg3NTZjYTM1OGUyYjkwMDQzMjBiMWI3ODg4YjM3
ZTY5OWMwYjMxZDMwNzkzZTEwNDEyNTAxNjVjZTM5ZDFmYzRkODhhNGZmZDMxYjhiMDY3NDM2ZjY1
OWI3NjJiNDgwMDhkMTUwOGU2OTlkZDY1MmM3M2RhNDU1N2RhZTAyZDIxOTllYzhjZjQ4OWUyNjIy
NjIyY2ZmYzM2NDYyZmM2NjM5OTU1MzBkNTE4NGJlMmIyZjJiZDEwN2RhODU0Y2VlYzRiYWZhMmM2
ODU1YzRiNjQyYjM2Y2RhN2RkNzFlMTU1NzU3NzMwYjNmYWZhZGYwYzk3NGNmZjdkZDk2NTEyNzM0
OWQ3ZmEyODcwOTE0ODBlNzc0ZTQ0MmU4ODVjYmFmMzM2ZmM1ZDY3MTMzNzFjOGJjZTU1NzU3ZWZk
ZTUyMzIxZGFkNjA1YjFkZDBiODc2MDEyM2Q3NTY0ODdiMmMwNjFlYzMzZTMzOWM1NTc5NmVkOTEy
MWU5ZDUwOTAwNDEwNjVhM2E0YWRhZWViOGRhM2FmM2YxMWNlYmU4MWEyMTZmMjMzMmI5ZjllMWMx
ZDljYjhhMjg4YzU0YzZhZTAxCitIQVNIOiAwMjNmNDAzZDQwZGRjNGQzCisKK0tFWTogYTc5ZjJk
NjE2ODkxMjY3NWEwNTU3NjZiODU3MDA3NWUKK0lOOiA4Yjg3MmYyZDljZjVmZTlmN2I5ODQ0ZTgx
N2ZkMzk3NjZlMmE4NmJmNmE0NjNlMTUxOThlMjMxNmJmNTRmZTZkOWRhYzI1ZjY0MmQwZmQ4Mjhh
YTBmZjgzNmM4NjMwODIxNjVjZDQ0Yjk1YzQwMTM5ZTg2MTY1MjgxY2EyNjQzMzNiNDcwZmQzZGI3
ODg3ZGI0NDgwNTZlY2RlZTAwNTQyM2FjMmYxNDQ0NjgzNDU2MDY0YjM3MDA3ZGUyMTQzZGNjNWI3
NTYzN2Y0MDQzZjE4NDFhZDgzMjRiMGZiZTFmYjhhZjJkNjk3NzY5ODZiMDU3Zjk3ZDlhY2JjNDRl
MWIxMWVlNzY0YjAzYzNmNWQ2ZjFjY2RhNDRjZWYwY2FjMmU5MGNhNGM1YzkzODEyMGYwNTMzZWUw
NjliOWE2ZmQ2OThhY2RmN2FiY2EzODQ5NDg1MzhlOTAyOGI0NjFlYTllOGY2MzM2OWIwNzA2MDJk
MzE0NTliNjlkZDdlNzA0NzNiNTMwNmE5OTYwOWM5NTc1Y2M0MzhlNGI5NWJmZjcwMTFjZGQ4YTE0
YmZjY2MyYWMzMjE2N2UyZTJjODdlMjU3MWU0NjgwZWE3MTg4OTE5N2MzZTE0YjYxYmY0NmRkZWNl
ZGI2YTIKK0hBU0g6IDJkYTIzNDYzOWI0ZjViNTEKKworS0VZOiBjMGVkN2VmZDdjM2E1MzBiMzNj
MGE4YzlmNzVlZjNiMworSU46IGYzMzQ4NTE4ZjljYzVjYjQ3ODlhYTE3Y2MzNzZlOWYwZjBhODEz
ZTA3NTllYzQxYzczYjkyYWFjOWJiNjFkYzBkYzI1N2I0OTgwODk1ZTUyNDgzNDUzZGNlZTY3ODBk
YjFjODFjM2VkNzk3YzlhMDM0YzZmYzJlZjliOWU4Nzc0NmQyNTI2YzA0OTRkM2Y2OGE4OWI5Mjc0
NWNiZDdhMWY2Y2Q3Y2JhMDhjNzU3MmQyMGNkMzI1OTM0OTk3ZjU2OGI3YmU4ZjQ4N2YyZDlmYjFm
Mzc3YWUxMmRiMjBjNDE3NWJhN2E3MjE3ZDY3NjNhNDBlZTZmZDFlZTg1OTNiNDlmMjJiMTZlNzM3
YTIwNjE3ZmEzZDM2OTk3MWYyNmM2NjllNGE3MTk0MGM4YmU0NGVkYTkwYzIzMjZmODM0NjY5NDg1
NjQzYWU4MjBlZWRmMDUzODU0NTFhYjRkNWEzN2YxNzU5OTZlNWYxOWJlYmJjNDVkMzA1MmY1ZmJj
YTdmZGM0MTM3NjJjMGNhYmVjYTU2NjAxMzFiZGUxMTVjNGIyMzZjMGU0YmExMzdmOWZjMGM2MmRh
ZGM3Y2Q0MGE0YjFlODFmNDE1MDhiYTFmZjg2ZGQwYzU0MzcyMDdiNDFjMTg2OWExZmZiCitIQVNI
OiA1MjVjOGMzNTAzNzM3YTQyCisKK0tFWTogYzkzMjJlN2EwZmEzZDNjYjYzNDQ4YzBjZjkxYTcx
MGUKK0lOOiA0NmM3ZWFhYjkzMWI2NWI0Zjc3MzQ0NDBhN2RhOTRiYmI2YjdiYmVkM2M4NzVlZGJm
MDg2ZDUzMzhlOWZiODljOTU4NmVhZjgzNGE5ZWMxNTIyZGUxNmJmZWUwMmVjZjUyNWJmOWJhOTRi
YTM3MjNhZjk3MGI5NThlMzIyMTJkZGJlOWVmMWEyODAwNTA5M2NiNzI1Zjk1ZmZmZThmM2FkZDJk
NDY4ZDAyMjQzNDVkNzVhY2M0ZTFlM2RiMDBjMGY0YTIxOTkwNGMzOTkzMWE3ZDZmY2VmNWFlZWQx
MmQ2N2M2YTJjMDVhNDE5MzRhMDRjNjhjOWE1ZWM0YmIyYjczMjhhMTY1MGMxODQxZmMxNGZiYWNl
ZTBiNTcwZTNjNmQ4ZjYzODNjNmIzN2FlMzViMWQ3MTE4ZjQ1ZDQzZDU1YTNiNDUzZDM2OThhY2Q4
NGU5NDA0YjU0ZTJmYThiMDYzZWU3NWQxZmRjMTNmOTg0YTc5YTliNTU1ZDE5MGYxMDhhMDExOGQ4
OWY5NTI4NWY5MmQxZGFjMTdlMDRkYmQ1MWFlYmJjNDA2ODNhY2FiYTM1NTUyYTU2OWNlZjgyOWI1
YTNhNmM0MTgzMmM2M2FhMTM2YTliNzA3ZTNiMDM3YzgwMzc2MTc1Yzc3CitIQVNIOiBlZTU0ZTM5
MDlhMGIzNzFjCisKK0tFWTogNDlhMjZhMGEwNmEzZDlhZWY0ZmM2ZWExYTk4MDVjMTcKK0lOOiBi
ZmFhOTM1OThjZDBlNjdkNDAwOTAzMDVmZmU4ZjIwZDUyYjFhZTdmODdlMmJhOGVmMTVjZmZlYjgw
OTgwODk4MDUxNjExNTk4MDc1NjJmZDlkNDdjNzVhMmQxZTAwOTk0NzA3Zjk4MTcwMDkwMzkxZWQ3
MjE2M2Y4MzExZTFlNTc4Y2VlZTAzNjAxZWQxMGVhNjI1NzY2ODMzMDgxMGI3OTU2NGQzMGQ4N2Nl
M2U1Mzk4YWY3OTMwYWUyNGQ2ZDk5ODhkYzE4YjE0OTRlODNiNjA1MDBjNzI4ZTA5MGE0NjYxMTZl
NjY4NWFmNjcyNjdkODNmMjAyZjY3YWMzMWU4NjY5ZjZkYzI3YWZiY2Y0YWVmM2MwMTVmNjNiZDAx
MDZjYzJmZjFjYmI5OGU5Nzk5NjQyZmY3NDRiNDllNmRjMzRhZWQzMWRmMzQ1ZDA2ZGU1NjE0NzBh
ZmU4MmUyMzM3MzliZTJhYmU2NDhhM2IwMmNjNWYyODM3MmI1YjhkY2VmMTMxNjI2OTljMDhmZjQ2
YjJiYzIzNmY2M2EzMmY3YTViMzYwMGZiMDlhN2E3N2Y5ZTNmZmRmOWIwZTFhMzU4MTk5ZmUzZWY1
YTc5MGNiYjZlYTAyMmFhN2YxNzQ0MzZhNjg2ZDU3MTgzZDMKK0hBU0g6IGY4MDMzNzFmMmY0ZDMy
NzcKKworS0VZOiAzMDNjNDg0ZmI0OTIwNGU3MjVlMmQyOTUxYmJkOTg5NgorSU46IGE2M2JhNWEw
MzM5MTJkMWRkNWM2NzNjMmNjZDUzYzVlNmFiNWYyYmMzOWJjN2ZmNGY1YzM1YzBiNWQyYzRlMGJk
ZGNlNDIyOWZlODM2YWZjYmEzNjBiZWM1NDFhYTUyNTNmOWQyYzU0ZTg4NGVkMDdlYWI5ZmI0NTRm
ZTUyNDNkZDE2MjM5YjhjNTBiNTgwMTYwMGM2NTM0ZDJkY2ExZWI2MWRhOTU0MjY4MzdhYmNjZTIx
MjQ1NGViZjc5ZDFmYmU0NTZkNmVlMTJlZWRjNGYxYTQ4YTdlNGFmNWQ5MzA4YWRjNGY1Y2Y0YzU0
Mzg2YjBmYWFiNzg5MWJjMDBlMTc3YWJhMzA0NDU1ZWVjOGI2Y2U2NDQ0NWUxYmQ3ZjcxZjU4NmY2
Y2ZjMjAwZWI1NmE1NzllODY0OWI4ZWFkMTA3ODY1ODhiZWNiNzc1NGQ3NmRlOTIwZTFmYjU3ODgy
NjQ5ZTE0NDNlNzdjYWM3N2EyMjdlMTgzYzc3NTY1NTdlM2IzNmUxMDI4ZjQ5NzFmZTQ3ZTRkYzE4
ZmZhMWQzZDI0ZWRmZDZiYzRiZGQ2ZTZlOTE4MDI5YjQwNzA5ODBjNmYzZjdiMmFhOTZhN2ZmZjNj
YWRlNzhlODAzMGVmNTc2NDkxZDcxMTRjNmMyOGFkCitIQVNIOiA3ZTliY2UzNjZkMjBiZWE4CisK
K0tFWTogYzM3YWFhYmM2ZDBkYjRiNDIzNmQzMGRkZjYwY2EzNDcKK0lOOiA1YTA1NjdmNzNhYzRm
MGE5MTMwNTFiZjA1NmVmMmVhMzcyMmYxNzM2YTgxMmU3ODUyNDg4NGRhODQwZGMzYjViMjUzZjg4
YTYzZDFmZWRhMWI0YjA5Y2E4ZTZkNjNmY2Y3YjU0N2Y2ZDE4MWRjMWI2ZGI3ZWZjNDZiYjVlMjk3
MmFhNTZlYzNhMDgzODVlOWI5ODYzNjkyZGIxMWM2MTViM2YyZjcyZDI5NGNmNTc5NDMxOTdhNTI0
OGQ4OGVmZGIyYTRjMDBjYWJjNWVhYjFhNjE1ZjYxYmVkNTE1YWIwZDZlZDY1MmZkYjQxZWFlZTY4
NTY2MDgxZTg5MDUyYmE3ZjRjYzFiMTY4Njc2NjA5ZGQxYzU0ODIxZDgyNDYxY2UzNmU2NjBiZmYz
ZTlmNTI2MjU5NzczZWU4MTFlMTI5MmI2ZmUxZDdjYjJhMTU1YzNhNjM4YmZhN2IxYjcwNDBhZTFh
YjhiZjMxYWUyYWZjZWE2YTNkNTAyZTg5ZGEyZmRhZGY3NGJkNmE5NzA1YmE2ZjJhNmNhODc4NGQ4
YjZhMjVmM2VkODc0MzcxODQyMjQ0MTk4ZTU5NmQwZGNkYTk4MjNkZDkxOGViMzY3N2IyM2VlNmNh
ZTA4YTBmMWM5MjNjYTk1ODA4MzNiNzBkZDAyCitIQVNIOiAwM2I1NWJlNGU1ZjQ0OGFkCisKK0tF
WTogZTNjNjYzN2VkYjI0MzFjM2Q3ZTE5ZDc4OWI5Yjc5NWYKK0lOOiBkYTQ5NGRhNDgwN2JiZjhh
ODUyODA5YjIyNDY3YThkMzg2YzU1ZTkyMzMxMjVjYjczYzE5MTVmZDhiMGViOTRmNjgzMDg1NDcy
ODI1MDQxY2NiYTJlYTE0Y2Y2MDBmNGYwMzU1NWQ3M2M4YjIzOWM5YmZhZTBkMmNjMWU3NjQxYjQz
ZTkzNTI0YTU4ZmU2NzMwY2ZhZjdlNjIzMTEyNTBmNDkzNDA3N2UzODgzMjA1YzdmNTNiNTcxOWJl
MmMyMzgyNjU5YWNjYmM5ZTdhNzk4MzljMTE1NmM0MzE0MTEwODg5ZjcxMjNmMzg3NmZlOGFhMmZh
MzhmYzVhMGMzOWZlMGIxZThlNTY1MjExMWYwYjQyMGMzYmJhZjA4MmY1MDQ1NGFiZWNjNmY4YWQy
YmMzN2Y2NTU5NjVhOTcyY2ZkOGVjNzI2ZDAxNjlmOTE2ODQ3YTUwNjUzMjFkODE3ZDY3YzI0MzY3
NzM0NmI5NmM2YmRiYzliYThlN2VkYTE2YjJiYTU2Y2ZjMGRjODMzNmIzMWViMmJmOGIxNDAzM2Zh
YjhkY2FjYjYxMmU1NTY3NDNiMjhhOWMyNGRkYmU1OGIyN2NhMzAzYmQ1MDRiYTJiZTU0N2MzYjY4
OTNiOWVhYzhlMjFjNWM3NWU4NWZhMDUzMGUKK0hBU0g6IDEzNWYxMmVkMTc3YTQ4NmYKKworS0VZ
OiBjMjcyMzMxOGM3ZmNlZTgzNTFmZmJmYzIyM2Q1NjU0YQorSU46IDRiYzFmOGUzZTVhNjM2OTQ3
MzgyOWI2MzRhMTcxOTg4YzAwOWRjYzRiMjIwNjAzNmViZjQxOWY2YTcyMjcxMGNkZGVjMjk5MDFj
NjJlODkyZjJlYzUxOWNhYTZiZTc3NzFmMDkwNjVjZWIyMTMzMmUzMGE4ZWQ2NjJiYTYyYWYwYjJk
NmRkY2QzMzA5NWRkMjgwZjBiYTIyMTIyZTdmM2JiZmU4ODA5YTZlY2NkOTgzMTc2NzQ5YTdkOWYw
ODZkZjZmZDg5NTQ5NGQzYmQyMjVjZDA1NTI4ODRjOTBjZDY5MTVmNTcxODVhZjU3ZGRlNmI0MWI3
NDQ5YTg5OTE4NTkyYzZiOWI5OTQ0YWUyYzc4ZDNhNjVkNzRmYTkxNzRkMzk1ZmU1ZTMzNDUyOTk3
Mjg2ZDhlNTI4NTMxOTdhMDFlMTU5MTcyYzY2M2UyZmI4ODkxOWEwM2M3MTBjOTk2N2MyZGUwMGQ1
NTYyMmI4NTRkNDJkNzJlYjk5YmRjNGIzMzI0YjFlMDIyYjZjMzgzYjI2NjIxZmU4MTA3MWZmYjVl
OTQxOTNlZTk4NDdiNzZiOTgzMjViNDI1NDhjZDE3MjhiNzdkYmE0Mzg0Mjg0ODgxYjY5OTM0NzU5
NDIxZjdhMjU5YThlNTRkYzg5Zjc5Mzg2ODdhCitIQVNIOiBlZTJkMjhjM2VhMGI3Y2U1CisKK0tF
WTogMzkwZmMyNjZmZDYzMzlkNzY5ZWVkYTA2N2FjYzVjYzUKK0lOOiA1M2ZjZWYyMTk0NDk2MjJm
MjBlNTk3OGFmZDI3YzQ1NjhlMTMwZDBjMWRiMjNiNGQ5NGMxMTAwNjkzNTNhYTQwOTMyZDVmMGIx
ZmI2ZWRmNWY1NGZmYjIxNzUxNmEwOTRmMGYxMWZlZjY5MmFjNjY0MjBmN2MxOTJjMWZlZTEzODky
OTcxY2VjZGFmOTIzODI0YzU1Njc5YTM3OTE4NWNiN2I3NGFmMzRhOTIwZTY0YTFmY2ZmYWFiZjY5
OWMxZWUwNTdmZDdmNjRlNzNhZTQ1NTk3ZDRkY2VkNzRmNTk5MjZmOWI3YTk4OWE5NjNlY2MxMmYw
ZTMxMTQzZmQ4OWY1NzI3MGIyNzJjYmI4YTE5ZjEwNmU4M2ExMzRmMWU3ZjYzYTY3MTRiYTM2YjFm
YWQzY2I3MDk0ZDQyZDM2YmY0MmYwZTY2Njk2OTcyZWEwYmM3MTY3YmY3MThlNGVkNTdjZTA3MzVk
ZTExNDA3ZTdmMDZhMTcxZjdjN2VlNWEyOTgyY2ZlMzRkYjk0YWFjOTIyN2FkNzU5YmY2NmM0NWU3
OTFiNGNiYzlkYzBlYjQ0NTk2NTIwMDA4YjQzNWFiNzg3NzhlMDU3OTYwYWVjYzY2OTY0NWQ1MTMy
NmE0NTMzNzYwZWVkNjgyZGNmMjFkMzhiMGE3Zjg1CitIQVNIOiBiNWZjZGVjYWU0ZDlmMjJmCisK
K0tFWTogNGI3Zjk4ZTI0YTkxNzUyZjcxY2IyYTFjZjQxMzNiN2EKK0lOOiBjYzIxYWViZDAwYjk2
MGYzMDJkMjUwZjY0MjQxZDQyOGMyNzc0YmQ3MDI3NTI0OGIzOTYxOWEzYzQyODgxOWM3MDYxZGU2
M2I0NGMyZDliODY1Y2UwZjIzNDhkZTczY2U3ZDE4NzVmZGYzNGJiM2I3NDY5MGJmMDNkYWU0MGI0
ZjhmZGQzNDgxOTZmYjVlMjY1NTE4YzY3ZDY0Mzk4NGIzMDQ2ZjVkYmExYWEyYTMzMDhiMDMwMDll
N2ZhNjcyNjNiY2RjYjRjMWJhNjcyMWJkZDA0NzVhOWYzYTIwMjQ5MmYyNGU4YzQwMjE2YWI0YTQ3
ZWZjNGZiMTU2Y2IwZDNlODQ5MTEyOGU1MDIxNGRhOTBhZGU2NjA2NWY3NWJkMzA4Nzk1N2I1NDdk
NTQyMWE5ZjQ1MDJkYTM4NTQ4MmI0Yjc1MDAzYTA1ZTZmMzVkYzJjY2ZmNzgzNTc4MmM3OWExNDU2
NDE3YzE2OWU3NmY3ZGU4ODk0ZmZlMDczMTViN2QzNzg3YzkyMDllNzNhMzc0N2U2NGRjMGUyNjcy
ZjNkNGYxOTEyYWViMWU4ZmE4NjFhNGRlNDE4NTJhODQ1NmY2MTljMzM1NTY4YWVkNjkxN2M4Yzkz
YzkxZTI5MzNkZDhkOGM1MTIyOWI2YmVhMjhmMjQ0NWRkODUKK0hBU0g6IGIxOGU1YmM3MzQ3MmIx
NDkKKworS0VZOiAzYTBjYWFlOGUxYWZhNGJjOTE1ZjgzMjYwYzRiNjlhNAorSU46IDU0MWFmMTZj
ODMxNGFkYmRlYzU1ZWQzZWIwNjgyMGIxNzg4ODNjZTI2YWFlNWRkMWZmYWMxNTQ0YjYxNTQyNmU1
YWYwZDU4NWQ3ZTJmOTIyYTIyOGQ5ODEyZmNjZWYzZTBjOWYwYTc4Yjk4ZDVkZThjNjgzYmZiMDEx
YzU0N2FmNzQ0ZWViYWMzZDI4NzljZDFiYTJkMDFmMzllYzhlZmQxMTYzMDljYmE0OGE3YzI4MGEw
NjU2YTUzYTY4ZDlhOTA5NDcxMjQ4Mjk4NTJjMDc2ZDRhYjg1YWQyZjFhNzMxMjFmMGRiMWY4ZGU2
NTIwYzUzYjNhMDEwYTFlOWZlYmIzN2RjMjc5MDZlNDM1OGUwMGI2MWUzZjdiZTgzZDA3MDczMWMx
YzU2YzU5ZjFhYTkzMTg1YWUxYzZlOTQ0ZGI3MjFiM2UzODlmMGQ3N2YyNTQ2ZDhhYTMyYjU0ZWE4
ZjlmNmQ2ZDJmMmMzYmVhM2I3ZTQwNDQ2MjM3NDVjMDZmMWM5OWQ0YmE3MWI3ZTA1MjExMmYzMDgy
M2IyMTBlMDljZWRjNjJlZDFhOGEzODcxNmYyNjNlZDBmNWNmY2EwYmY3NjBjNTAwNWI2YmY1NDc5
Yzc1ODVmYWZlYjM0ZmQ5NzQyYTkwOTQxNGJlZTdmY2QwYjcyNTZmOTYxCitIQVNIOiAzM2U3MDhl
Y2RiMjlhYjM1CisKK0tFWTogNzBlOGIzMDVhZDNkMzQzNDZiN2YyMWE4NGU5OWE5YjAKK0lOOiBk
OGY3ZDY1NDg0Nzc4MjZiYmQwYTJhNWFhODk5Mzg2OTA1N2EwMzJlNzYzMWFhNDg3MGUzYTJkYmM4
MGUzYzU3MWU1MTY1MTk3ODBmMGNhNWI2Mzk2OTE3MWI1YmYyZjQ4ZmYxNWU5MjJkZThlNDM4ZmU1
NjE1MmQyMTRlODI4Zjg2OWYzMDlkNzExYmYwMGY0MWI1MmE5MTgxOTg0YWZlMDljNTI2ZmI3YmY5
YWY3YTAyYzUyZjc3YTQxOWYwN2IxM2EyYzA2YWY1YTE1ODlkNjliNTY0NDBhN2JhZDUyOTBlY2Iz
ZWJjMTYzMTRlMDE2NjAzYzVmOTZmMjQ4MDA1NGNhZWE0OGFkY2Q4ZWI3ZDNjNzliY2Y3MTE3MDcz
ZWFhYzgwMjI0M2M4NzhhMjAyZWM1YTFjMjAzNjBjM2ZjOTdjNjg4ZDM1ZWJhNmM4OTRhMTgzMzc3
YTliODM2ZmQ0NDJkYTQyZmJiMGZhOGZlNjhlODI0YTAwYzUwOWVhYmNmYzY4ZTYxZmFhNzMxNTU0
ZjliOWQyY2QxYmY4NWMzYzU5ZThlYjY0YTYwNDBmMzQ1Njg1ZWE1YzgyMDI2OTBlZDYyZWI5Mzky
ZjkzMmFmOTEwN2U1NGRkYmQ1OWYxNTBkMjUyYTVjMzQ2N2JhNDRlMTU0NGQ4ODllN2IwCitIQVNI
OiAwYWYyZGM2NzM5YjkwZWIyCisKK0tFWTogYTk2ZWMzN2M3NzNkOTA4YjVjYzczMmVhYmI4Nzdi
MjQKK0lOOiA2YmFmOGY0YTIwZjQ1YmYwODZjMDAwM2MwYzZlMzgzN2NiZGJlZTZmODYxZDI3NDE3
NTQ3ZDA2ZTIxZmViNTM3MDNmYTBmODk2ZGRlNzNjYjk3NjcxZTRhZjdiMjdmYjE3NWQ4MDJiZjNk
OTQxZTEzMTcyZWYxNThhYTZmMTllMjdhNTA0ZTQ2YzFmMWIxZGFjNzQxYmMzY2U2NmI3M2Y0Njk0
MTgyMTU2MWJlMjQ0NDhlMzdhNjRhZjU0YzliZWIxNmRhOTFlZTg3MDVkMTNiMjg4MmI5YzgwZmRi
ZTI0OWUxZDNiNmU1YzY3MWVlNTI0ZDc2ZjU0M2RhYzQ3M2JmODNjZGRjZDk1YzA3ZTgyZDcwZWQ0
ZjBkODY2MTVlNmQzNzc2ZTZkYjdmNzQwZmY3ZGI1NWE5NDkxOTM3MzRiMmI5Y2FhNDhkZmFmZDhi
YjQwYmQ4Y2YyZWFjN2JiNjQ2MmU5MmYyYTBmYzEwMWM3YjFmZWY0OTFmNmExNmMxYzU1NWRmOWE1
N2ExZjdhOGU3MGVlY2VlZTE0YmM2ZTgxODgyYThmZWNjNDhmZjliMTcxYjllODkxNTg4MmYyODE5
MjUyODJhNDc5YjgyMzliZmI0OGQ4Y2RjYzU2YzIyMjk0MjEwYTQ4NDcwMmM1YThlNGQ0ZmRlZTJm
NjIyM2UKK0hBU0g6IGQxMGRiNTc4ZTliNDRmYzMKKworS0VZOiBkNWYwNzQwMTdkYjU4ZjZlNjhk
MjEwYjU4ZTA5MWQ3YgorSU46IDMxOWExMTAwYWQ0ZTI2OGRjYzdmM2NlNzFmYWM4NDczMzZmYmVk
YjkwNDZjMWIxYjQzM2MzNzMzODUzMjZmY2RlNjgyNGIzYjFmZjM0Zjg2YTBhMjdiOTIxNmFmZTMx
NDU5NDVlYjVmN2FhMzc4NzVmYWMwOGNjNjJhYmYwMWUyNTkxZjhkODEwOWYxMDIyMTQ0NTcxOTM0
MTJjNThhMzkzYzQ4MTk4MTJlYzlmYzIwNzlkZjA0MmEzZjU3ZDE3MmQ3NmE4ZjI3MDliOTQyZTc5
YjNlZjgzOWYyZjUxZGFiOTNkMjI1ZTZlYWVmMzBiMmE2NzMyNDQ4MWQ2MGE5YzVhMjE1YWRhNDRl
Y2EwNTQ3MDMzNzM3OWRkMDFlYjBkZWEyY2QxNGJjZmQwOTkxZDBiYjExYTZiMGZjZTk3YjRlNTE0
OTJmYTY2NWVlN2UyOWNiYmE1MGE1Y2UwZDUwYzY2M2IxNmVjODI2MGVkY2UxN2Q1NDhjNmQ4NTY2
Y2M3NmVhNzI3MGU0MDZmOWM4ODg4NDlkMTUxOTdiMzdkMzBjNjRlYWM0ZWI5MGYzMTAxZWY2NWIz
YzE0OTMzNzBmODc1OGU3ZDk1NGI0MWE1NDNlNTIwMzk0ZjJkYTUyMjllZmQ2ZjA2Y2E5NDdiZmZm
NzFiMTE0MjVhNjcyMjkxMjBmCitIQVNIOiAxYjQ2MGI5Njg4NjdlNDJkCisKK0tFWTogMzM4OTYy
NDQ0ZmY0NmQ4ZDFjNGVmMmQxNDg0OTIwMmMKK0lOOiBiZGZjMjI5MGZiNzFhNTBhYTYzNTk1YzNm
MTFmZmM0MjY1Mzk2Nzg2MDFiMzFiYWUzMGIxNzcxNDM1ZTMxOTk2Njg5ODBhZGI2MjdjNzM4ZWEy
OGJhNDU4YzAxNzllNDhhODAyZDgxYWZlMGIyZDA5YjVjM2VmYjA2ODA4YTIyZDczMTczMDQ5Nzgx
YzA4MjJkNzgwZTM2MGU0NDI2MTlkZDgyY2ZjYTIxMjkxZWIwYjc5M2VhZWY0NDIwMmI3YTVlNmMz
MDUwNWNlNGUwMjZiYmY3MjRjZTc2YTA1ZTgyN2M1MjZlYTk5YmVmNTUyNDYwYWJmZjgwNTgxNDJl
MTFlMWMyMjNhYTBjYzMxYmZhMmU1ZjkxODRkOWEwZmI5NTMzZmFjYWRmYTA4YjVkYTBhN2I2NWVh
MTc1ODY3NWJiZWIxY2UyZmFhMTFjZTIwYWRlNzBhZDVmY2Y4OGZkMjUzYzc1ZTVhMmQwZWM3OWYz
NDY4ZTUwNTYzMDliNGQ0NmUxZTk2ZWM4MTFhMTRjZjZlNjRmZGI5MWEwNDQ5NzlhODZiNTcxYTlk
NzAxYjY2NjNkOGYyNGFkNzdjNGE1MTQ1NzZmYTk0MmY0NTk3MDk5M2RjNzAzZGJjNjhhMDZlYjY4
OGI5ZjdlODdmYmFlMDQwMTlkNTQzMjBhMjZhNWI3Yjg0CitIQVNIOiAyNTI5Y2ViYzdhNjAwMmQy
CisKK0tFWTogOTRmODBkYjBiYjkyZDlmODQ0YzhmY2M0M2NlMGQ5NGIKK0lOOiAzZDA5ZDVmYWRk
MWU3OWU2NDhlZDE1NWRkZTU2NDZkMmI5YjkwYzkxMDNkNGQ3YjRkNTNkNWZmMTg0MDMzZmIxN2Ri
NjM1MTZiNzBkNDQwN2FhZjNiZTMyNWQ2NmQ3MTk2ZDA4ZTMxMDg1MWM3YTlmNmVjYjZkM2E3M2I3
ZWJjOWJkNjA0ZGI3YmY5Mzg3OWUxN2MyZTFkNzY1NDI0NzI5NWVhMDJiOTdhNjBhM2I4NTI2MTEx
OWQwMjFlZDFmMDQwZjI3ZTQ1NmYwMTFjYjQ2ZGFkMzEyYjY1YzE5Mjc3NjVjYWQyYzU2MjI3ZDZh
ZWQyYTVkNzc1NGE1N2RlNThjMTFmMTg1YWVlODhlMzhhZTVjOGZkYmZlNjI0MmViM2RmYzc5ODE1
OTI1NTZjZGFmMjEzNTE2NDhhYmM2NDY2Nzk5OGM0MDAzY2ZiODM3NjQxN2ZmOThiNTA2YzBmYTUx
ZGQyYTE1MmQwMGYzNGY2YWI1OGM4ODMzNjJiMDhjOTg2MDQxNzI0ZDM2MGY2OGI5NGQ4ZDA3MWUz
MjdmZjUzNjAyM2M5ODMxM2YwOWRmNGVjZGYxMWUxNmVjZmFmMzk3MGFkNjgyMDg2ZmZjN2U0M2Q1
NzFhOTZiNzEwM2U5ZWI4MGFjZGI2ZmI4Zjc4MTA3YTgwNDJiMmM4ODkzYjFkMmYxOWYKK0hBU0g6
IGM0NzQ2YjJkMTk5NDFlNTYKKworS0VZOiA5OTU4ODJiOTlmNTFjNGE2N2Y1YjU1ZjkwZTJhOWFh
MgorSU46IGY2NDBlNTFkYTQ4M2FhZGZhODg4MTJkNTg1MWVhM2EwZDllNjA1YjE0NDAxM2ZmYjdm
NzRkZjI2Y2FlOTMxN2ZkOTAyMzNlMjg5MzU3NWQ1ZTQ3MGRmMmQ4MGEyZTlmNGU4ZjZmNWU1Zjg4
NTQ5OGJkYWQzN2QxNDg5YWI4MjNkYWI5NjgzMmQ0OGM3NjE3YjI1NWQ0MDcxNmQ1NGRjNDVlOWJi
M2Q4OGY5MDhkNTczMTcyNDg2ZDg4YzY5ODQ5NmZhZjc5MjY5NmFjMWY0NDY0MTlmNjQ1OTg2NmNk
NGNjZmFjNTM1OWFkOWZjOGE3YmY4NWY3NTVkMDhmYTVlNDRmNGIwZGVmNjg1MTNhMzlkZGI5NzY5
ODE4MDU5MmJhYTAzZTM3MjIwZWI5NTVjNjM2YmFlZjAwMzA0MGQ3NTNkNWIyYzMwN2VkZDFiN2Ey
NGJhMWRmMTNiOWJjZGQ3MmNmYmVhN2IxN2FlZWE1OWM2MDRlNTA5ZjUxMTg1NWUzNzg0MzI4NDc5
ZGU0NjQ1N2QxY2U3MDZjZDJmOWU5MzdkNzExOTJmZjIxNTczM2M2MmEyMDVhNmYwOGI5MDFlMjUy
MWUxOTM1ZWUzM2Q1MjRjM2QxMGM3M2MwYTU5M2FjY2VkODhmNzNiZjY2MjRiMTVkZTEzODA3NjU2
OTk0NWNmMmI2YjExCitIQVNIOiBiMjRmMzQwY2MwZmIxZDJkCisKK0tFWTogOGRhMTQ2MTQzODNi
Zjg1NWNkYzI4MWI1MjI1NTE1Y2UKK0lOOiBlMTdjOTczZjE5ZWI3OTZiZmJjNTdkZGI5NjAxODA2
OTk4YTVlOTdmMThhM2VjYTZhMWQyMGMzY2RjZDEwOTgxNWNkOGVlMTM5ODE4NTgzMjRhYjg5ZThi
MzAyMTRlMzI1MWU2ZjMwODY0ODU1MjAzNDU0NWY3ZDI0Y2E3NGFhNmRlNWJjMTUxM2MyMGQ4Njlh
MzEwYWQxYTQ0ZTQ2MjY2NmQyODE3YzBjYzIyNWEyOGVmYTc4YjE0MzVjODBhZGNhMWUwNzY4M2Ux
NzkyMTUyMjY3NjQ5YWViN2VlMTllZmFkZTAyZGJjNjMxYjFmYzU4YWM1OTY3MWVhNTk4MjIzNGRh
OTBkYWQ0MjQzMGZiZDg1ZmU2NTI3OTkxY2NlYTExYmI4MDU4MTVmZGQwYzhhOTIwZGM5ZTgxOGE1
ZmNmOGZiZjY4MGEwNjk5OWM0MmMzM2M3Y2M3MTJkYWM4YmFkZjgyMDU5ZDE0MmM2YzNmODBhOGQw
OWM4ODExODJjZjMzNmNjZTJlMGUwODhkMGFmMzlmY2RmNmRjMjljMWVmNDk2OTY4NDU1ZTJmYTE0
OWE2NWNjNTdkZjA2ZmU2ODMwODk1ZTJkYWYzNTJlOTIyYmZmOGNjM2ZjNzU3MTYxZjNjNjFiMmVj
OWU3ZDc4N2UxYWQ5NzY1OTVkMjdmMGY1ZmM1YTA0ZGE1CitIQVNIOiAzNmJkMmNjZTZlZDIxMTIy
CisKK0tFWTogNzBlMTFiOGNkYTJhYjRhMGFiY2I3MzY2MjUxNDVkOTAKK0lOOiA3ZjRmYThmYzQx
ZjcyYzhmZGNjZTk5Njk0OWI3NDU2MGVhOWZjN2EzYzU3ZTUwMjYyODQ4NzE0NDQ3MmJlZTQzMDA2
NzFjYzE2MTdmYTdjNzY4NTBkZjQwOGI5MjAyMGU3ZjVkMzc3ZjRjOGY0MTAyODhmZjYwYWNhOTA1
MTZkMGYxZDEzOTY5YzllNWFmN2UzNDhlYTdmOGY5YTM2YjhjNjlkMDY0NTQzMjEwM2Y1YjkzYWI1
NjBmMzExM2UyZDg2YjM1ZmQ2ZTcwNDExNmFlNWU3YmZkZjFjMjliNmQ1YTQ1NzBlMmIxMDgyYTNl
NjAyM2YxNGU2NjZhNzZhZjg2ZTQ2NjFlMTQwZWI4MzZmMjYyZGJkNWQzODhjMTY2MjE1YWM0ZjM5
ZGQ5ZmNjYmUzYTNhOGM1OGEyMjM2MzA0ZThmYzBmYTFmYzUzNWU4NjBlODg4YTBkNjQwMjc3NDI2
ZTJlMmEwNWQ4NTVjNWZmZDA4NzZlZTAzMDZjYzBjMzk0ZDA2NGZjNDVlOTc0ZDFjMTkwOTRhMWU4
M2Q1OTA1N2JmMjY5ZjU4MTYzN2YzNDNhOWZhYzM3NmVkNDFmNGQxOTNhYTVlM2MzMDE0MWQzMTM5
MWMwMjM5MGFmZDgxYmQzMmI2ODY1ZGRkODk3NGE0NDcyNDIxN2VhYWRkN2VmMzE2ZTBiNGMyYTUK
K0hBU0g6IGY2NjI0ZDRkMTM4MzM2OTkKKworS0VZOiBlOTc0YzIyNDcwOTNjNzVlZjZlZDcwNjMy
ZjE2OTI0ZQorSU46IDcxZjJlMDUwOGQ3ZDM2YjM3M2U4ZWUwZmFiZjQ5ZGZkNjk2MzhjNWE2Yzc5
YmU5Yzg5YmJkMDA0M2IzYmM2NmFiYjM2MThjNjcyOTljMGFmYzRlMjRhZjg0NDAxODVjZThkN2Q4
YjFkNDU3MzJmMTIzYWE4MjQzYTlhMGEwYmIyN2IzZDZiZjU5YjM5ZTM4OWMxNTIxMWI5MmM5M2Jj
NWFhODU4MmM5OGZiMTUyMzQyN2M4NDk2OWE2NWU5OTc3NWU5ZDk3ZjM4MmI5YWI0N2NjZmRhZGRh
YzNlNzIwMWY5MTdiYjY0ODQzZjJiODA0ODAxYTAxOGM3MWJiNmY2MzJmNDUyMWMxYTRlOWEzNzVk
N2JiYzhhNDJlNTYxODQzZGQ2NWFlM2U3ZWMwZGExZGI4NzUxOTYwYTY1Njg3Njk4Mzk4NmJiMmJl
MmRhZGNhNWJiMzEyY2IwMDRlYjEwZjFjNjA4YWY0YWZhNTk5ZDk0NmJkZjhiZDUyMTAyYzI1Nzg3
MTgxMGY1YzhhODk5NTgwMjg3MDc0Njg2NzM4YTU4MjNmMzNlOTZkM2MyYTdjNzdiNjhlNGEyMWE1
YWM1MGUwNjY2NDk0NGQwY2Q2YmQ0MGFlOTVhMmUyMTIzNmU2NzFiZGFlZjc5ZjA4ZGE1MmUyYTZm
NjUxMzFhMmU4MGM2MjYzZGRiZWI5NzU5CitIQVNIOiAwMGFiNDk2ODkxNTkzNTg0CisKK0tFWTog
YzZmMWVlMGFhZGEwYzA3NmNiMjBjYWQ4ODNiYmNmNTIKK0lOOiA5MTJmNWIyNzBmZTRmNDQ1MTM0
ZDFjYWFkM2NkMDRjZWJjOWMzNzdmZDAzZDNlMjZiODJkNDQ0OWQ0Y2UxOTE0ZWE3MThhNmZhOGMx
NzlkY2RjZTFkMTE3ZTk5ZjRlOGNhZDJjYzBmMGMwNTlmZDk0Y2Q4YjMxNDlhMzhhNmIyNzFjN2Zl
MWM5MDk0M2M3YThkNDA3NzQ4MTdjMjcyYTkxMzlhMDVlMWMwYWE3NGNmYjVhN2MzYzkzYWVkOTMw
M2I5NTc5MjAwMDIyNTI3YTA5MTE5MDg4NzVlMjNiMWQ4YmFjZDQyYTEyM2ZhYzIzNDI3MjNhNzc5
NDI1MjNiNGFhODU4ZmYyODQ4MjFlMWVjZGI4MmFiMjg1ODU4MDIyN2JkYjJlMjk3YmEzNjgwYTFm
MWNiMGQzMWNiOGU2ZjZjNDUyMzVkYzY0ZjRjM2Y5ODZjMjRmOWFlM2E2Y2I5ZDM3MTBkNTgxMjVm
MjBkOGU4YzRjZjRmODlhZGMwOTE2NDliZDdhMzNlY2I1OGNkMTYzYmFlZDk4ZTdlNGY0ZGMxNjk1
NWY3ZjA5YmVlMWE1MWUwZjc2ZTk1NzVjYmMyNzMzYmY1OGJiNGJlNGE0ZTJhMmIxMjg1YzFiOTI4
YWFlNmQ4ZDliZWNkYmMzNzIzYjQwOGZjMDFhY2NjYjk1ODYxZDIzYTM5NDBkZjc5OWJkCitIQVNI
OiA3OTJmZjEyMTg1ZmMzMzI2CisKK0tFWTogNWNhZDIxYzhjMzgwNWY2MjI0OGIxZTE3NThjOWMz
OTIKK0lOOiBlYzk0M2Y2YTNkMzY4MWNkNzE4ZjUzMmJlYTBlNWUyODM5Yzk0MjVkMDM4MWRjNTgw
OGNiZmIyNzNmNjczMGVmZDUyNDk2YjAzMzFhNzExZmNlMjMyOTkxZGQwODQ3YjViNmZkNTgzMzBm
NTRjMTlmNTcxMzQ2ZDFlMTAwZTIzMDRlYmY1ZmZmMWIxMDQ3ZGRiYmJjNGRhZTAyZmZhM2EyMWY4
NjU1Yjg5NzJmNjgzYTMzNjc2MzUyOTA4ZTAwN2FlM2QxMmNlNjJlNzdhY2IyY2E4Mjc4MTYxZDdj
Njk2NGQ2Yjk3MzMyYzE5YzFkMWQ3Mjg4NTQyZWVjNDc0MzczMTE0NGEwZThhMGFiZDU4ZDBkZjA2
NjRlZWFjZDVlOTdlMjcyZDY3MmUxMTA3MzRjODRjMDc1YjljYTVlY2MyNzkwMTBmMjIyMzYwNjNh
OGVkMWE3ZWYzMWJkODQ2Mzc4MzJjZTM3NTk0NGViNjcyYjUxZWRkN2I0YjI0OGRjYTEwNjI5NWQ4
M2YxNGYxNjBiNjNmODRhNDljYjZhMGFiMTQzNDk0Y2NkZjU0NDRjNDY0ZWRlM2VlNzkzNmY4MjE4
NTdjYjJmM2NkN2QyOWRhNDE0YzEwYWI3ZGIwNWU0ZDA4MTdjMTU1NjgwNGIxZDNkOWM3NzFhZGFm
YWU0ODU0MWY5MzA0NjQ1NDljZDI2MzUKK0hBU0g6IGU0MjhjMGZhM2NmNGYxY2YKKworS0VZOiBm
NmY0OWFjODFjYmFmZGE2NTc5YjgxYzlkMzRkZTYwMgorSU46IGI1ZTNlMjFjMmIyMTA0YzUwYmRk
OWE5NjY2N2Q0NjBjM2E0YzBhNTk3NWRmNjAzNjllYmZjMGY2YWNlNTg1ZDcyNzI5MmYxZDM3MTA3
ZWYwYmRkN2VmMTZmZTg3NDBlMDQ1MzUwMTQwNWMyYTg2MzI4OTc3M2E0ZDEyMWIzN2YwMWUxNjcy
YjAzMzlmNTdmYjQ0NWYxMzIyNjJmNjMzN2Y2NGU5ZGY0ZWQ3ZmE3OWVkMWM3MjIxNzFjZjM1MGYx
YzFkNzhlNzQyNzkwNGZmM2I5MGJmZmExZWVhNjQxODFjNGU2OTQ0MGFmNzEyZTM3YjdkZWE5NTk1
M2ViZDRlZjVlZmE3YmIzYjE0ZjNmNDUyZTIwNGY5YTI2ZmNmYTEwNGI4MGRlYjU2ZTE2ZTE2YWY4
OGZjNzEwZjY4ZGYzZGE3ZjE2MmUzZGUzYWE5ZjMxYTI0ODUxNjk0MTFkNjAwOTAxNDU3OGNhY2Uw
OWFhY2ViZGEyZTk2NWNkOGM0ODQxZGY3ZTMxNzA0NTg0YWFmYzQ1OWUwMmFmYzk3OGI4MTJmOGJh
MjJlMjg4NzcyODI0MzY1OGI0YWRjYzQ2YTQ3MWFhMzU3NTY3NTA1YjE3ZmE1MWZkYmM0YzVkZGM2
NzgyN2NjODZmNjZjZTNhNTUyNTdkMDA2ODNlZDJiNjdlYTE5Y2UxYmEwZWFhZWQ4YzRjMWE3CitI
QVNIOiAxYjQ0ZGU0OWM0NWU5YmMzCisKK0tFWTogMDVmNWE1OTRjODA1NTc1ZWNhNTgxZmQ2ZThi
MTYwNTEKK0lOOiBhZWZlZjg4MTdjYTFlYzJjZTg2ZDA0MTg0ZWU5ZjVkYTAyMDQ5N2QzMjk2Mzk1
Y2VjZWMxMGFmMjI2OTZkZWI2NWRjZjNjZmE0YTNiODA4ZWIxODI2ZmY0MjFkZTc5YWVlYmZjYTc5
NjMwNmViM2IzOTE2NWFkMTFkODczM2NlZTg5ZjMwMjI5Zjc1YzA2ZGVhOTM1MDQ1NDM5ZDVhNjlh
YzExOGM1Y2EyNmJmNTlhOWNhZGUyZTZiODBiMGZjZmY5MTFlYWY3ZjQwOTdmODc3NTE1NzAzNjJk
YzVhYTQyYTM3OWM1YWQzMTNmYjQwM2IxNWM5YzZjNTE3YmU0ZWMyOGEyMjAzOWJhZmQ2MTgyODRi
MTZlMTJiYzM4YzM5ZTg1MjViOTMwZjVhNjMwZDRkNTk1OTgwYmVjYWU0MjUyMjliZWU0YzYzNzA2
ZmMxNzJmNWY5YmE2Y2Q1ZmQzNmFiNDc0MTEyMTY5YzJlZjUyYjJiZDcyYjJlZjNiY2ViOGE4MmNh
NTNhNDJhYmNiMDQ0YjcxMmNjMWE2YjM3YThjYTg4OTRiOTkwNDA3NjQ1MmRkYWFlNjQxZjkxMzdh
NzI5ODdmZTkyOGMyMGI2N2MyY2NhZjlmZDYwMWZhMTBjNWU0Yzk2ODcyNzM1N2M0NTQ3ZmM2OGIw
ZTExYjM1ZjRmY2JkY2MzNzg0YzI3MjJlZWViZWZiCitIQVNIOiBjZDQ1ZDcwNzBlNWVjYjU1CisK
K0tFWTogMDU0NmVhZjk2YmMxOTdlMzcyMTM5ZGFjNTljOWNhMWYKK0lOOiAxZTA2MjJlMmQxNjBm
ZTUzMmNjNzg5Yjc2ZTk5YTVmYzdlOTAwNzhkZmEwZDNkOTM0MmNhOGM2MjUxOTJhZmVhY2Y2OTM1
ZTkzMGJjYTNlN2JiMmQ3YTRkYjIzMzcxYjZlZTNlNjQ1YjljNjkzOWJjM2Q0MTRkZGJmZjM2M2Q0
ZWNiMjk2Nzk2MmJiYjFkM2I4NmE0NzZiZWRkNTgyMGQxN2I4Njc0N2M4ODZlZmIzNDY5MmI4N2Ri
ODQzNTg4ZDBkYjUzYzNkOTFmMmMzMDVlNWQ1OGNiN2FiOThkNjM4N2FjNDU0MDBkMmFkMWYyNDM1
YmRiMGM0YTc2YzZmZDQ5MWMzZjJiYzA0OWZlNzA0MjY3NjdjYWRiMGZhODk3ZTI5Y2ZkYTFiY2Y0
ZjE4ZDBiMTU3OTVkZTM5Y2EwNWZkMjMxOGRjYzhiOWFmYjdhMjc4ZTk4NjUyMWFkOTcxYTIzNjc0
NWJiNjJhNjgwYjQ3NzA3YTdkZDFmZmViOThlOGU2MWVkYWEwMzhlN2MyYTU2OGM0YTAwNjBjMzg3
NTJlYWU5MTVlNGY5OWM5MWQ2ZGUxMTU3NGIzZGVlNWY4NTIwOWFjYjhhMzhhMDJkMGY1OWY1MTky
YTMxNTFiYTgwNzM2ODJkMTkxZGRkMjZiMDE5MTNlOThiNDAzYTRjZTc3MWU1ZTAyMGZmZWQwODBk
MmRjYjcwODIKK0hBU0g6IDA3OWE2MmE5MmM2MWQ3YWQKKworS0VZOiBiYjE3ODBjMjVlMmFmYjhj
OWJjNThhM2RiZWM4ODY3YQorSU46IGVkNTI4N2RmNmRiMzQ0NDlkYjk1NTI4ZDU1ZTY0ZmY0ODZm
MTc4ZDY4MTM1ZGNjOTk2NTkzNTkyYTQwNjU1Yzg4ZGZiZWY0MWZlY2JiYzA5MDY2YWRjYTNiM2Nl
Y2EyYzlmN2JlNDhiYTYxNTg3YWMzYzY5YmI1NTg5ZmIyNTdiYjk2YzAwMGFiNWU1ODQzZTllNzI1
NzA5NWFlMDg3ZDA4NGFhN2U2MmU5ZTNmNzQwNzlkMWM0YzEwNDQzYzlkOWJjYmNhZTQ3Yzc0ZTcy
YzAyNGU1Y2QxMzI4MGYwNThhNzcyYWZjMzc5ZDJkZWUwZTM5ZWMwY2ZjMjE5Y2JiMmFmNzY5ODE2
MmEzYjg0YmU1MmM5MDYxNzc2MGU4NGQzNzQzOTA5YmRkNWNmMjFiZDNlYTNlM2UzN2MzNzM0ZGRh
NTdhMDZkYjI1YWI4MWZmMDI4MjNmNmQzOWNmOWUwNjg2OThlMWY1OTc0NThkMDhhMjlhZWZlZjIx
OGI0MGUxOTFkYzNkMDVmMDg5ZjEzM2Y1ZjMzN2Q5OGQxYzAxNjFmNDkwODQ5NzgyMjQ4ZTkxNWVi
Y2Y3MDBkODA2NjdiMmQwYmEzZmRhMDIyZmFlZWIyM2NhODdhZGQ3NjY0NjY2ZjQ2Mzc1NzE5NjRk
NjEzYmY3NmEyMjA2MWM5Zjc0NmY5ZmIwMGZmMGY1YzJkOTBmNjQ4NzE3ZTFmCitIQVNIOiBmY2Rh
ODBkYjM3ODEwMmI0CisKK0tFWTogZWE3MjQ3YjZhZGRjZWQ0MmM1MWM4MjdkYmIyY2I2NmMKK0lO
OiAwZWM1NTQ5NDhkM2FmN2NiYzIzMDZkMjQ5ODYxZjYyOTFkNDRhYjJiZTZiYjI2YWI2MjkzNDdh
YzBlODkyY2M5MDJiM2M1YmY5Njg4ZTM5ZDgyNmUzMjYwOTgzNGIzNDY0NGE4YjM5YzlhOTFmNDdh
MGYyNGU3M2ExM2VkZWVjOWUyMjQ3NTZmNmNmZjc3ZTFkMDdmYWMwM2MxZDgwMzY0OTI3OWUzM2Iy
ZjE2ZGQyZDEwMGJkODJlOTgwNmFmYWRiMDIyNzAwZDU1ZjVmYzk2ODgxOTNkYTAyZGNjOWRjZTk3
NGI2MGNjYzJjYWFkMDY0YWNhYTBmMWI5ZTRmMjRlOTA3NGFjNzg3N2I5MWIxOWM3YWJiZTViYjdm
ODg5Nzc1Y2Q3MmFiOTMzNDQ3NWRkZGJhMTlkMDA4ZmRiMDFhYjljYmZiMTAzOGE0ODZjNzZmM2M1
NDJiYWM3MDRjZjc5NWJlNjI4Y2I4M2E1ZDlkMTI4YzJiNDAxY2YyM2NlNDk0NTg0Y2ZlNWI0ZWQ1
OGQ5YzkwNmRlZDIyMDkwZmZlZDQ4OTQyMzhjNmQwMjgzNWU2MTgwY2U2NjJiMjRlYTE4ZmQ4NGQ1
ZmNiZWQ0OTc5MDMyMjI2MGZjZjNmMTkzMDgxY2NkYjYwZDhmNzY4YjZkYmZhNjE4NjdiZjkwZmJi
MWYyN2UxYTZjYjgzZGFhZDYyNDMwNzk5MDRhCitIQVNIOiBmODE4MTY0MGEwOGYxMzQzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL3N0YWNrL3N0YWNrLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3N0YWNrL3N0YWNr
LmMKaW5kZXggOTNiOWQxYjAyZmFlOGM2NDQ2NzMwYWU0NDNlMThiYmJhYThkYTRjZS4uNTk5YmQ3
YjFiZWIzZmMyNjE4MDFmMTM1N2I4MzQyMzZkYjQ3NzJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0
by9zdGFjay9zdGFjay5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vc3RhY2svc3RhY2suYwpAQCAtNTYsNiAr
NTYsNyBAQAogCiAjaW5jbHVkZSA8b3BlbnNzbC9zdGFjay5oPgogCisjaW5jbHVkZSA8YXNzZXJ0
Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKICNpbmNsdWRlIDxvcGVuc3NsL21lbS5oPgpAQCAt
MjcyLDM2ICsyNzMsMzkgQEAgaW50IHNrX2ZpbmQoY29uc3QgX1NUQUNLICpzaywgc2l6ZV90ICpv
dXRfaW5kZXgsIGNvbnN0IHZvaWQgKnAsCiAgICAgcmV0dXJuIDA7CiAgIH0KIAotICAvLyBzay0+
Y29tcCBpcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgcG9pbnRlcnMgdG8gcG9pbnRlcnMgdG8gZWxl
bWVudHMsIGJ1dAotICAvLyBxc29ydCBhbmQgYnNlYXJjaCB0YWtlIGEgY29tcGFyaXNvbiBmdW5j
dGlvbiB0aGF0IGp1c3QgdGFrZXMgcG9pbnRlcnMgdG8KLSAgLy8gZWxlbWVudHMuIEhvd2V2ZXIs
IHNpbmNlIHdlJ3JlIHBhc3NpbmcgYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8KLSAgLy8gcXNvcnQv
YnNlYXJjaCwgd2UgY2FuIGp1c3QgY2FzdCB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbiBhbmQgZXZl
cnl0aGluZwotICAvLyB3b3Jrcy4KKyAgLy8gVGhlIHN0YWNrIGlzIHNvcnRlZCwgc28gYmluYXJ5
IHNlYXJjaCB0byBmaW5kIHRoZSBlbGVtZW50LgogICAvLwotICAvLyBUT0RPKGRhdmlkYmVuKTog
VGhpcyBpcyB1bmRlZmluZWQgYmVoYXZpb3IsIGJ1dCB0aGUgY2FsbCBpcyBpbiBsaWJjIHNvLAot
ICAvLyBlLmcuLCBDRkkgZG9lcyBub3Qgbm90aWNlLiBVbmZvcnR1bmF0ZWx5LCB8YnNlYXJjaHwg
aXMgbWlzc2luZyBhIHZvaWQqCi0gIC8vIHBhcmFtZXRlciBpbiBpdHMgY2FsbGJhY2sgYW5kIHxi
c2VhcmNoX3N8IGlzIGEgbWVzcyBvZiBpbmNvbXBhdGliaWxpdHkuCi0gIGNvbnN0IHZvaWQgKmNv
bnN0ICpyID0gYnNlYXJjaCgmcCwgc2stPmRhdGEsIHNrLT5udW0sIHNpemVvZih2b2lkICopLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCAoKikoY29uc3Qgdm9pZCAqLCBj
b25zdCB2b2lkICopKXNrLT5jb21wKTsKLSAgaWYgKHIgPT0gTlVMTCkgewotICAgIHJldHVybiAw
OwotICB9Ci0gIHNpemVfdCBpZHggPSAoKHZvaWQgKiopcikgLSBzay0+ZGF0YTsKLSAgLy8gVGhp
cyBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyB0aGUgZmlyc3QgcmVzdWx0LiBOb3RlIHRoaXMgbG9n
aWMgaXMsIGluIHRoZQotICAvLyB3b3JzdCBjYXNlLCBPKE4pIHJhdGhlciB0aGFuIE8obG9nKE4p
KS4gSWYgdGhpcyBldmVyIGJlY29tZXMgYSBwcm9ibGVtLAotICAvLyByZXN0b3JlIGh0dHBzOi8v
Ym9yaW5nc3NsLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvYm9yaW5nc3NsLysvMzIxMTUvCi0g
IC8vIHdoaWNoIGludGVncmF0ZXMgdGhlIHByZWZlcmVuY2UgaW50byB0aGUgYmluYXJ5IHNlYXJj
aC4KLSAgd2hpbGUgKGlkeCA+IDApIHsKLSAgICBjb25zdCB2b2lkICplbGVtID0gc2stPmRhdGFb
aWR4IC0gMV07Ci0gICAgaWYgKGNhbGxfY21wX2Z1bmMoc2stPmNvbXAsICZwLCAmZWxlbSkgIT0g
MCkgewotICAgICAgYnJlYWs7CisgIC8vIHxsb3wgYW5kIHxoaXwgbWFpbnRhaW4gYSBoYWxmLW9w
ZW4gaW50ZXJ2YWwgb2Ygd2hlcmUgdGhlIGFuc3dlciBtYXkgYmUuIEFsbAorICAvLyBpbmRpY2Vz
IHN1Y2ggdGhhdCB8bG8gPD0gaWR4IDwgaGl8IGFyZSBjYW5kaWRhdGVzLgorICBzaXplX3QgbG8g
PSAwLCBoaSA9IHNrLT5udW07CisgIHdoaWxlIChsbyA8IGhpKSB7CisgICAgLy8gQmlhcyB8bWlk
fCB0b3dhcmRzIHxsb3wuIFNlZSB0aGUgfHIgPT0gMHwgY2FzZSBiZWxvdy4KKyAgICBzaXplX3Qg
bWlkID0gbG8gKyAoaGkgLSBsbyAtIDEpIC8gMjsKKyAgICBhc3NlcnQobG8gPD0gbWlkICYmIG1p
ZCA8IGhpKTsKKyAgICBjb25zdCB2b2lkICplbGVtID0gc2stPmRhdGFbbWlkXTsKKyAgICBpbnQg
ciA9IGNhbGxfY21wX2Z1bmMoc2stPmNvbXAsICZwLCAmZWxlbSk7CisgICAgaWYgKHIgPiAwKSB7
CisgICAgICBsbyA9IG1pZCArIDE7ICAvLyB8bWlkfCBpcyB0b28gbG93LgorICAgIH0gZWxzZSBp
ZiAociA8IDApIHsKKyAgICAgIGhpID0gbWlkOyAgLy8gfG1pZHwgaXMgdG9vIGhpZ2guCisgICAg
fSBlbHNlIHsKKyAgICAgIC8vIHxtaWR8IG1hdGNoZXMuIEhvd2V2ZXIsIHRoaXMgZnVuY3Rpb24g
cmV0dXJucyB0aGUgZWFybGllc3QgbWF0Y2gsIHNvIHdlCisgICAgICAvLyBjYW4gb25seSByZXR1
cm4gaWYgdGhlIHJhbmdlIGhhcyBzaXplIG9uZS4KKyAgICAgIGlmIChoaSAtIGxvID09IDEpIHsK
KyAgICAgICAgaWYgKG91dF9pbmRleCAhPSBOVUxMKSB7CisgICAgICAgICAgKm91dF9pbmRleCA9
IG1pZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICAgIH0KKyAgICAgIC8vIFRo
ZSBzYW1wbGUgaXMgYmlhc2VkIHRvd2FyZHMgfGxvfC4gfG1pZHwgY2FuIG9ubHkgYmUgfGhpIC0g
MXwgaWYKKyAgICAgIC8vIHxoaSAtIGxvfCB3YXMgb25lLCBzbyB0aGlzIG1ha2VzIGZvcndhcmQg
cHJvZ3Jlc3MuCisgICAgICBhc3NlcnQobWlkICsgMSA8IGhpKTsKKyAgICAgIGhpID0gbWlkICsg
MTsKICAgICB9Ci0gICAgaWR4LS07Ci0gIH0KLSAgaWYgKG91dF9pbmRleCkgewotICAgICpvdXRf
aW5kZXggPSBpZHg7CiAgIH0KLSAgcmV0dXJuIDE7CisKKyAgYXNzZXJ0KGxvID09IGhpKTsKKyAg
cmV0dXJuIDA7ICAvLyBOb3QgZm91bmQuCiB9CiAKIHZvaWQgKnNrX3NoaWZ0KF9TVEFDSyAqc2sp
IHsKQEAgLTM1OCwyMCArMzYyLDI0IEBAIGVycjoKIH0KIAogdm9pZCBza19zb3J0KF9TVEFDSyAq
c2spIHsKLSAgaW50ICgqY29tcF9mdW5jKShjb25zdCB2b2lkICosY29uc3Qgdm9pZCAqKTsKLQog
ICBpZiAoc2sgPT0gTlVMTCB8fCBzay0+Y29tcCA9PSBOVUxMIHx8IHNrLT5zb3J0ZWQpIHsKICAg
ICByZXR1cm47CiAgIH0KIAotICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gc2tfZmluZCBhYm91dCB0
aGlzIGNhc3QuCisgIC8vIHNrLT5jb21wIGlzIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBwb2ludGVy
cyB0byBwb2ludGVycyB0byBlbGVtZW50cywgYnV0CisgIC8vIHFzb3J0IHRha2UgYSBjb21wYXJp
c29uIGZ1bmN0aW9uIHRoYXQganVzdCB0YWtlcyBwb2ludGVycyB0byBlbGVtZW50cy4KKyAgLy8g
SG93ZXZlciwgc2luY2Ugd2UncmUgcGFzc2luZyBhbiBhcnJheSBvZiBwb2ludGVycyB0byBxc29y
dCwgd2UgY2FuIGp1c3QKKyAgLy8gY2FzdCB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbiBhbmQgZXZl
cnl0aGluZyB3b3Jrcy4KICAgLy8KICAgLy8gVE9ETyhkYXZpZGJlbik6IFRoaXMgaXMgdW5kZWZp
bmVkIGJlaGF2aW9yLCBidXQgdGhlIGNhbGwgaXMgaW4gbGliYyBzbywKICAgLy8gZS5nLiwgQ0ZJ
IGRvZXMgbm90IG5vdGljZS4gVW5mb3J0dW5hdGVseSwgfHFzb3J0fCBpcyBtaXNzaW5nIGEgdm9p
ZCoKICAgLy8gcGFyYW1ldGVyIGluIGl0cyBjYWxsYmFjayBhbmQgfHFzb3J0X3N8IC8gfHFzb3J0
X3J8IGFyZSBhIG1lc3Mgb2YKICAgLy8gaW5jb21wYXRpYmlsaXR5LgotICBjb21wX2Z1bmMgPSAo
aW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKikpKHNrLT5jb21wKTsKLSAgcXNvcnQo
c2stPmRhdGEsIHNrLT5udW0sIHNpemVvZih2b2lkICopLCBjb21wX2Z1bmMpOworICBpZiAoc2st
Pm51bSA+PSAyKSB7CisgICAgaW50ICgqY29tcF9mdW5jKShjb25zdCB2b2lkICosIGNvbnN0IHZv
aWQgKikgPQorICAgICAgICAoaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKikpKHNr
LT5jb21wKTsKKyAgICBxc29ydChzay0+ZGF0YSwgc2stPm51bSwgc2l6ZW9mKHZvaWQgKiksIGNv
bXBfZnVuYyk7CisgIH0KICAgc2stPnNvcnRlZCA9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vdGVzdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vdGVzdC9DTWFrZUxpc3RzLnR4
dAppbmRleCAzZTAyYzNjNzU0ZDZhNjk1Nzc2MTg2N2U0Zjg4ODAyOGQ2NjU2MGJlLi5iOTY4ZmQ3
OGMzYjI4NDk2NmVhNmU2YjNjNGMxODY2YzcyZDk4MzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L3Rlc3QvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0L0NNYWtlTGlzdHMudHh0
CkBAIC0xLDE1ICsxLDI0IEBACiBhZGRfbGlicmFyeSgKLSAgdGVzdF9zdXBwb3J0CisgIHRlc3Rf
c3VwcG9ydF9saWIKIAotICBPQkpFQ1QKKyAgU1RBVElDCiAKKyAgYWJpX3Rlc3QuY2MKICAgZmls
ZV90ZXN0LmNjCiAgIG1hbGxvYy5jYwogICB0ZXN0X3V0aWwuY2MKICAgd3ljaGVwcm9vZl91dGls
LmNjCiApCiAKLWFkZF9kZXBlbmRlbmNpZXModGVzdF9zdXBwb3J0IGdsb2JhbF90YXJnZXQpCitp
ZiAoTElCVU5XSU5EX0ZPVU5EKQorICB0YXJnZXRfY29tcGlsZV9vcHRpb25zKHRlc3Rfc3VwcG9y
dF9saWIgUFJJVkFURSAke0xJQlVOV0lORF9DRkxBR1NfT1RIRVJ9KQorICB0YXJnZXRfaW5jbHVk
ZV9kaXJlY3Rvcmllcyh0ZXN0X3N1cHBvcnRfbGliIFBSSVZBVEUgJHtMSUJVTldJTkRfSU5DTFVE
RV9ESVJTfSkKKyAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHRlc3Rfc3VwcG9ydF9saWIgJHtMSUJV
TldJTkRfTERGTEFHU30pCitlbmRpZigpCitpZihXSU4zMikKKyAgdGFyZ2V0X2xpbmtfbGlicmFy
aWVzKHRlc3Rfc3VwcG9ydF9saWIgZGJnaGVscCkKK2VuZGlmKCkKK2FkZF9kZXBlbmRlbmNpZXMo
dGVzdF9zdXBwb3J0X2xpYiBnbG9iYWxfdGFyZ2V0KQogCiBhZGRfbGlicmFyeSgKICAgYm9yaW5n
c3NsX2d0ZXN0X21haW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vdGVzdC9hYmlfdGVzdC5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9jcnlwdG8vdGVzdC9hYmlfdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODQ0YzczYzllMWIwOTVj
ZjMxOWEzMWYzZGVkMTAzZTBiZDZlZjBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90
ZXN0L2FiaV90ZXN0LmNjCkBAIC0wLDAgKzEsNzg2IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTgs
IEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5k
L29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Ig
d2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBh
bGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBU
SEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJ
UyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00g
TE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9G
IENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBP
VVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9G
IFRISVMgU09GVFdBUkUuICovCisKKyNpbmNsdWRlICJhYmlfdGVzdC5oIgorCisjaW5jbHVkZSA8
c3RkYXJnLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNp
bmNsdWRlIDxhcnJheT4KKworI2luY2x1ZGUgPG9wZW5zc2wvYnVmLmg+CisjaW5jbHVkZSA8b3Bl
bnNzbC9tZW0uaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KKyNpbmNsdWRlIDxvcGVuc3Ns
L3NwYW4uaD4KKworI2lmIGRlZmluZWQoT1BFTlNTTF9YODZfNjQpICYmIGRlZmluZWQoU1VQUE9S
VFNfQUJJX1RFU1QpCisjaWYgZGVmaW5lZChPUEVOU1NMX0xJTlVYKSAmJiBkZWZpbmVkKEJPUklO
R1NTTF9IQVZFX0xJQlVOV0lORCkKKyNkZWZpbmUgU1VQUE9SVFNfVU5XSU5EX1RFU1QKKyNkZWZp
bmUgVU5XX0xPQ0FMX09OTFkKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+
CisjaW5jbHVkZSA8bGlidW53aW5kLmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUg
PHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu
Y2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8dW5p
c3RkLmg+CisjZWxpZiBkZWZpbmVkKE9QRU5TU0xfV0lORE9XUykKKyNkZWZpbmUgU1VQUE9SVFNf
VU5XSU5EX1RFU1QKK09QRU5TU0xfTVNWQ19QUkFHTUEod2FybmluZyhwdXNoLCAzKSkKKyNpbmNs
dWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8ZGJnaGVscC5oPgorT1BFTlNTTF9NU1ZDX1BSQUdN
QSh3YXJuaW5nKHBvcCkpCisjZW5kaWYKKyNlbmRpZiAgLy8gWDg2XzY0ICYmIFNVUFBPUlRTX0FC
SV9URVNUCisKKworbmFtZXNwYWNlIGFiaV90ZXN0IHsKKworbmFtZXNwYWNlIGludGVybmFsIHsK
Kworc3RhdGljIGJvb2wgZ191bndpbmRfdGVzdHNfZW5hYmxlZCA9IGZhbHNlOworCitzdGQ6OnN0
cmluZyBGaXhWQUFyZ3NTdHJpbmcoY29uc3QgY2hhciAqc3RyKSB7CisgIHN0ZDo6c3RyaW5nIHJl
dCA9IHN0cjsKKyAgc2l6ZV90IGlkeCA9IHJldC5maW5kKCcsJyk7CisgIGlmIChpZHggPT0gc3Rk
OjpzdHJpbmc6Om5wb3MpIHsKKyAgICByZXR1cm4gcmV0ICsgIigpIjsKKyAgfQorICBzaXplX3Qg
aWR4MiA9IGlkeCArIDE7CisgIHdoaWxlIChpZHgyIDwgcmV0LnNpemUoKSAmJiByZXRbaWR4Ml0g
PT0gJyAnKSB7CisgICAgaWR4MisrOworICB9CisgIHdoaWxlIChpZHggPiAwICYmIHJldFtpZHgg
LSAxXSA9PSAnICcpIHsKKyAgICBpZHgtLTsKKyAgfQorICByZXR1cm4gcmV0LnN1YnN0cigwLCBp
ZHgpICsgIigiICsgcmV0LnN1YnN0cihpZHgyKSArICIpIjsKK30KKworI2lmIGRlZmluZWQoU1VQ
UE9SVFNfQUJJX1RFU1QpCisvLyBGb3JFYWNoTWlzbWF0Y2ggY2FsbHMgfGZ1bmN8IGZvciBlYWNo
IHJlZ2lzdGVyIHdoZXJlIHxhfCBhbmQgfGJ8IGRpZmZlci4KK3RlbXBsYXRlIDx0eXBlbmFtZSBG
dW5jPgorc3RhdGljIHZvaWQgRm9yRWFjaE1pc21hdGNoKGNvbnN0IENhbGxlclN0YXRlICZhLCBj
b25zdCBDYWxsZXJTdGF0ZSAmYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBG
dW5jICZmdW5jKSB7CisjZGVmaW5lIENBTExFUl9TVEFURV9SRUdJU1RFUih0eXBlLCBuYW1lKSBc
CisgIGlmIChhLm5hbWUgIT0gYi5uYW1lKSB7ICAgICAgICAgICAgICAgICBcCisgICAgZnVuYygj
bmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKyAgTE9PUF9DQUxMRVJfU1RB
VEVfUkVHSVNURVJTKCkKKyN1bmRlZiBDQUxMRVJfU1RBVEVfUkVHSVNURVIKK30KKworLy8gUmVh
ZFVud2luZFJlc3VsdCBhZGRzIHRoZSByZXN1bHRzIG9mIHRoZSBtb3N0IHJlY2VudCB1bndpbmQg
dGVzdCB0byB8b3V0fC4KK3N0YXRpYyB2b2lkIFJlYWRVbndpbmRSZXN1bHQoUmVzdWx0ICpvdXQp
OworCitjcnlwdG9fd29yZF90IFJ1blRyYW1wb2xpbmUoUmVzdWx0ICpvdXQsIGNyeXB0b193b3Jk
X3QgZnVuYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG9fd29yZF90
ICphcmd2LCBzaXplX3QgYXJnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHVu
d2luZCkgeworICBDYWxsZXJTdGF0ZSBzdGF0ZTsKKyAgUkFORF9ieXRlcyhyZWludGVycHJldF9j
YXN0PHVpbnQ4X3QgKj4oJnN0YXRlKSwgc2l6ZW9mKHN0YXRlKSk7CisKKyAgdW53aW5kICY9IGdf
dW53aW5kX3Rlc3RzX2VuYWJsZWQ7CisgIENhbGxlclN0YXRlIHN0YXRlMiA9IHN0YXRlOworICBj
cnlwdG9fd29yZF90IHJldCA9IGFiaV90ZXN0X3RyYW1wb2xpbmUoZnVuYywgJnN0YXRlMiwgYXJn
diwgYXJnYywgdW53aW5kKTsKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSB8fCBkZWZpbmVk
KE9QRU5TU0xfWDg2KQorICAvLyBRdWVyeSBhbmQgY2xlYXIgdGhlIGRpcmVjdGlvbiBmbGFnIGVh
cmx5LCBzbyBuZWdhdGl2ZSB0ZXN0cyBkbyBub3QKKyAgLy8gaW50ZXJmZXJlIHdpdGggfG1hbGxv
Y3wuCisgIGJvb2wgZGlyZWN0aW9uX2ZsYWcgPSBhYmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVj
dGlvbl9mbGFnKCk7CisjZW5kaWYgIC8vIE9QRU5TU0xfWDg2XzY0IHx8IE9QRU5TU0xfWDg2CisK
KyAgKm91dCA9IFJlc3VsdCgpOworICBGb3JFYWNoTWlzbWF0Y2goc3RhdGUsIHN0YXRlMiwgWyZd
KGNvbnN0IGNoYXIgKnJlZykgeworICAgIG91dC0+ZXJyb3JzLnB1c2hfYmFjayhzdGQ6OnN0cmlu
ZyhyZWcpICsgIiB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJldHVybiIpOworICB9KTsKKyNpZiBk
ZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSB8fCBkZWZpbmVkKE9QRU5TU0xfWDg2KQorICAvLyBMaW51
eCBhbmQgV2luZG93cyBBQklzIGZvciB4ODYgcmVxdWlyZSB0aGUgZGlyZWN0aW9uIGZsYWcgYmUg
Y2xlYXJlZCBvbgorICAvLyByZXR1cm4uIChTb21lIE9wZW5TU0wgYXNzZW1ibHkgcHJlc2VydmVz
IGl0LCB3aGljaCBpcyBzdHJvbmdlciwgYnV0IHdlIG9ubHkKKyAgLy8gcmVxdWlyZSB3aGF0IGlz
IHNwZWNpZmllZCBieSB0aGUgQUJJIHNvIHxDSEVDS19BQkl8IHdvcmtzIHdpdGggQyBjb21waWxl
cgorICAvLyBvdXRwdXQuKQorICBpZiAoZGlyZWN0aW9uX2ZsYWcpIHsKKyAgICBvdXQtPmVycm9y
cy5lbXBsYWNlX2JhY2soIkRpcmVjdGlvbiBmbGFnIHNldCBhZnRlciByZXR1cm4iKTsKKyAgfQor
I2VuZGlmICAvLyBPUEVOU1NMX1g4Nl82NCB8fCBPUEVOU1NMX1g4NgorICBpZiAodW53aW5kKSB7
CisgICAgUmVhZFVud2luZFJlc3VsdChvdXQpOworICB9CisgIHJldHVybiByZXQ7Cit9CisjZW5k
aWYgIC8vIFNVUFBPUlRTX0FCSV9URVNUCisKKyNpZiBkZWZpbmVkKFNVUFBPUlRTX1VOV0lORF9U
RVNUKQorLy8gV2UgdGVzdCB1bndpbmQgbWV0YWRhdGEgYnkgcnVubmluZyB0aGUgZnVuY3Rpb24g
dW5kZXIgdGVzdCB3aXRoIHRoZSB0cmFwIGZsYWcKKy8vIHNldC4gVGhpcyByZXN1bHRzIGluIHxT
SUdUUkFQfCBhbmQgfEVYQ0VQVElPTl9TSU5HTEVfU1RFUHwgb24gTGludXggYW5kCisvLyBXaW5k
b3dzLCByZXNwZWN0aXZlbHkuIFdlIGhhbmRlIHRoZXNlIGFuZCB2ZXJpZnkgbGlidW53aW5kIG9y
IHRoZSBXaW5kb3dzCisvLyB1bndpbmQgQVBJcyB1bndpbmQgc3VjY2Vzc2Z1bGx5LgorCisvLyBJ
c0FuY2VzdG9yU3RhY2tGcmFtZSByZXR1cm5zIHRydWUgaWYgfGFfc3B8IGlzIGFuIGFuY2VzdG9y
IHN0YWNrIGZyYW1lIG9mCisvLyB8Yl9zcHwuCitzdGF0aWMgYm9vbCBJc0FuY2VzdG9yU3RhY2tG
cmFtZShjcnlwdG9fd29yZF90IGFfc3AsIGNyeXB0b193b3JkX3QgYl9zcCkgeworI2lmIGRlZmlu
ZWQoT1BFTlNTTF9YODZfNjQpCisgIC8vIFRoZSBzdGFjayBncm93cyBkb3duLCBzbyBhbmNlc3Rv
ciBzdGFjayBmcmFtZXMgaGF2ZSBoaWdoZXIgYWRkcmVzc2VzLgorICByZXR1cm4gYV9zcCA+IGJf
c3A7CisjZWxzZQorI2Vycm9yICJ1bmtub3duIGFyY2hpdGVjdHVyZSIKKyNlbmRpZgorfQorCisv
LyBJbXBsZW1lbnQgc29tZSBzdHJpbmcgZm9ybWF0dGluZyB1dGlsdGllcy4gSWRlYWxseSB3ZSB3
b3VsZCB1c2UgfHNucHJpbnRmfCwKKy8vIGJ1dCB0aGlzIGlzIGNhbGxlZCBpbiBhIHNpZ25hbCBo
YW5kbGVyIGFuZCB8c25wcmludGZ8IGlzIG5vdCBhc3luYy1zaWduYWwtCisvLyBzYWZlLgorCisj
aWYgIWRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQorc3RhdGljIHN0ZDo6YXJyYXk8Y2hhciwgREVD
SU1BTF9TSVpFKGNyeXB0b193b3JkX3QpICsgMT4gV29yZFRvRGVjaW1hbCgKKyAgICBjcnlwdG9f
d29yZF90IHYpIHsKKyAgc3RkOjphcnJheTxjaGFyLCBERUNJTUFMX1NJWkUoY3J5cHRvX3dvcmRf
dCkgKyAxPiByZXQ7CisgIHNpemVfdCBsZW4gPSAwOworICBkbyB7CisgICAgcmV0W2xlbisrXSA9
ICcwJyArIHYgJSAxMDsKKyAgICB2IC89IDEwOworICB9IHdoaWxlICh2ICE9IDApOworICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxlbiAvIDI7IGkrKykgeworICAgIHN0ZDo6c3dhcChyZXRbaV0s
IHJldFtsZW4gLSAxIC0gaV0pOworICB9CisgIHJldFtsZW5dID0gJ1wwJzsKKyAgcmV0dXJuIHJl
dDsKK30KKyNlbmRpZiAgLy8gIU9QRU5TU0xfV0lORE9XUworCitzdGF0aWMgc3RkOjphcnJheTxj
aGFyLCBzaXplb2YoY3J5cHRvX3dvcmRfdCkgKiAyICsgMT4gV29yZFRvSGV4KAorICAgIGNyeXB0
b193b3JkX3QgdikgeworICBzdGF0aWMgY29uc3QgY2hhciBrSGV4W10gPSAiMDEyMzQ1Njc4OWFi
Y2RlZiI7CisgIHN0ZDo6YXJyYXk8Y2hhciwgc2l6ZW9mKGNyeXB0b193b3JkX3QpICogMiArIDE+
IHJldDsKKyAgZm9yIChzaXplX3QgaSA9IHNpemVvZihjcnlwdG9fd29yZF90KSAtIDE7IGkgPCBz
aXplb2YoY3J5cHRvX3dvcmRfdCk7IGktLSkgeworICAgIHVpbnQ4X3QgYiA9IHYgJiAweGZmOwor
ICAgIHYgPj49IDg7CisgICAgcmV0W2kgKiAyXSA9IGtIZXhbYiA+PiA0XTsKKyAgICByZXRbaSAq
IDIgKyAxXSA9IGtIZXhbYiAmIDB4Zl07CisgIH0KKyAgcmV0W3NpemVvZihjcnlwdG9fd29yZF90
KSAqIDJdID0gJ1wwJzsKKyAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgU3RyQ2F0U2ln
bmFsU2FmZUltcGwoYnNzbDo6U3BhbjxjaGFyPiBvdXQpIHt9CisKK3RlbXBsYXRlIDx0eXBlbmFt
ZS4uLiBBcmdzPgorc3RhdGljIHZvaWQgU3RyQ2F0U2lnbmFsU2FmZUltcGwoYnNzbDo6U3Bhbjxj
aGFyPiBvdXQsIGNvbnN0IGNoYXIgKnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFyZ3MuLi4gYXJncykgeworICBCVUZfc3RybGNhdChvdXQuZGF0YSgpLCBzdHIsIG91dC5z
aXplKCkpOworICBTdHJDYXRTaWduYWxTYWZlSW1wbChvdXQsIGFyZ3MuLi4pOworfQorCit0ZW1w
bGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4KK3N0YXRpYyB2b2lkIFN0ckNhdFNpZ25hbFNhZmUoYnNz
bDo6U3BhbjxjaGFyPiBvdXQsIEFyZ3MuLi4gYXJncykgeworICBpZiAob3V0LmVtcHR5KCkpIHsK
KyAgICByZXR1cm47CisgIH0KKyAgb3V0WzBdID0gJ1wwJzsKKyAgU3RyQ2F0U2lnbmFsU2FmZUlt
cGwob3V0LCBhcmdzLi4uKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIEFyZ3M+CitbW25v
cmV0dXJuXV0gc3RhdGljIHZvaWQgRmF0YWxFcnJvcihBcmdzLi4uIGFyZ3MpIHsKKyAgLy8gV2Ug
Y2Fubm90IHVzZSB8c25wcmludGZ8IGhlcmUgYmVjYXVzZSBpdCBpcyBub3QgYXN5bmMtc2lnbmFs
LXNhZmUuCisgIGNoYXIgYnVmWzUxMl07CisgIFN0ckNhdFNpZ25hbFNhZmUoYnVmLCBhcmdzLi4u
LCAiXG4iKTsKKyNpZiBkZWZpbmVkKE9QRU5TU0xfV0lORE9XUykKKyAgSEFORExFIHN0ZGVycl9o
YW5kbGUgPSBHZXRTdGRIYW5kbGUoU1REX0VSUk9SX0hBTkRMRSk7CisgIGlmIChzdGRlcnJfaGFu
ZGxlICE9IElOVkFMSURfSEFORExFX1ZBTFVFKSB7CisgICAgRFdPUkQgdW51c2VkOworICAgIFdy
aXRlRmlsZShzdGRlcnJfaGFuZGxlLCBidWYsIHN0cmxlbihidWYpLCAmdW51c2VkLCBudWxscHRy
KTsKKyAgfQorI2Vsc2UKKyAgd3JpdGUoU1RERVJSX0ZJTEVOTywgYnVmLCBzdHJsZW4oYnVmKSk7
CisjZW5kaWYKKyAgYWJvcnQoKTsKK30KKworY2xhc3MgVW53aW5kU3RhdHVzIHsKKyBwdWJsaWM6
CisgIFVud2luZFN0YXR1cygpIDogZXJyXyhudWxscHRyKSB7fQorICBleHBsaWNpdCBVbndpbmRT
dGF0dXMoY29uc3QgY2hhciAqZXJyKSA6IGVycl8oZXJyKSB7fQorCisgIGJvb2wgb2soKSBjb25z
dCB7IHJldHVybiBlcnJfID09IG51bGxwdHI7IH0KKyAgY29uc3QgY2hhciAqRXJyb3IoKSBjb25z
dCB7IHJldHVybiBlcnJfOyB9CisKKyBwcml2YXRlOgorICBjb25zdCBjaGFyICplcnJfOworfTsK
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIFVud2luZFN0YXR1c09yIHsKKyBwdWJsaWM6
CisgIFVud2luZFN0YXR1c09yKFVud2luZFN0YXR1cyBzdGF0dXMpIDogc3RhdHVzXyhzdGF0dXMp
IHsKKyAgICBhc3NlcnQoIXN0YXR1c18ub2soKSk7CisgIH0KKworICBVbndpbmRTdGF0dXNPcihj
b25zdCBUICZ2YWx1ZSkgOiBzdGF0dXNfKFVud2luZFN0YXR1cygpKSwgdmFsdWVfKHZhbHVlKSB7
fQorCisgIGJvb2wgb2soKSBjb25zdCB7IHJldHVybiBzdGF0dXNfLm9rKCk7IH0KKyAgY29uc3Qg
Y2hhciAqRXJyb3IoKSBjb25zdCB7IHJldHVybiBzdGF0dXNfLkVycm9yKCk7IH0KKworICBjb25z
dCBUICZWYWx1ZU9yRGllKGNvbnN0IGNoYXIgKm1zZyA9ICJVbmV4cGVjdGVkIGVycm9yIikgY29u
c3QgeworICAgIGlmICghb2soKSkgeworICAgICAgRmF0YWxFcnJvcihtc2csICI6ICIsIEVycm9y
KCkpOworICAgIH0KKyAgICByZXR1cm4gdmFsdWVfOworICB9CisKKyBwcml2YXRlOgorICBVbndp
bmRTdGF0dXMgc3RhdHVzXzsKKyAgVCB2YWx1ZV87Cit9OworCisvLyBVbndpbmRDdXJzb3IgYWJz
dHJhY3RzIGJldHdlZW4gbGlidW53aW5kIGFuZCBXaW5kb3dzIHVud2luZCBBUElzLiBJdCBpcwor
Ly8gYXN5bmMtc2lnbmFsLXNhZmUuCisjaWYgZGVmaW5lZChPUEVOU1NMX1dJTkRPV1MpCitjbGFz
cyBVbndpbmRDdXJzb3IgeworIHB1YmxpYzoKKyAgZXhwbGljaXQgVW53aW5kQ3Vyc29yKGNvbnN0
IENPTlRFWFQgJmN0eCkgOiBjdHhfKGN0eCkgeworICAgIHN0YXJ0aW5nX2lwXyA9IGN0eF8uUmlw
OworICB9CisKKyAgY3J5cHRvX3dvcmRfdCBzdGFydGluZ19pcCgpIGNvbnN0IHsgcmV0dXJuIHN0
YXJ0aW5nX2lwXzsgfQorCisgIC8vIFN0ZXAgdW53aW5kcyB0aGUgY3Vyc29yIGJ5IG9uZSBmcmFt
ZS4gT24gc3VjY2VzcywgaXQgcmV0dXJucyB3aGV0aGVyIHRoZXJlCisgIC8vIHdlcmUgbW9yZSBm
cmFtZXMgdG8gdW53aW5kLgorICBVbndpbmRTdGF0dXNPcjxib29sPiBTdGVwKCkgeworICAgIGJv
b2wgaXNfdG9wID0gaXNfdG9wXzsKKyAgICBpc190b3BfID0gZmFsc2U7CisKKyAgICBEV09SRDY0
IGltYWdlX2Jhc2U7CisgICAgUlVOVElNRV9GVU5DVElPTiAqZW50cnkgPQorICAgICAgICBSdGxM
b29rdXBGdW5jdGlvbkVudHJ5KGN0eF8uUmlwLCAmaW1hZ2VfYmFzZSwgbnVsbHB0cik7CisgICAg
aWYgKGVudHJ5ID09IG51bGxwdHIpIHsKKyAgICAgIC8vIFRoaXMgaXMgYSBsZWFmIGZ1bmN0aW9u
LiBMZWFmIGZ1bmN0aW9ucyBkbyBub3QgdG91Y2ggc3RhY2sgb3IKKyAgICAgIC8vIGNhbGxlZS1z
YXZlZCByZWdpc3RlcnMsIHNvIHRoZXkgbWF5IGJlIHVud291bmQgYnkgc2ltdWxhdGluZyBhIHJl
dC4KKyAgICAgIGlmICghaXNfdG9wKSB7CisgICAgICAgIHJldHVybiBVbndpbmRTdGF0dXMoImxl
YWYgZnVuY3Rpb24gZm91bmQgYmVsb3cgdGhlIHRvcCBmcmFtZSIpOworICAgICAgfQorICAgICAg
bWVtY3B5KCZjdHhfLlJpcCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkICo+KGN0eF8uUnNw
KSwKKyAgICAgICAgICAgICBzaXplb2YoY3R4Xy5SaXApKTsKKyAgICAgIGN0eF8uUnNwICs9IDg7
CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBUaGlzIGlzIGEgZnJhbWUgZnVu
Y3Rpb24uIENhbGwgaW50byB0aGUgV2luZG93cyB1bndpbmRlci4KKyAgICB2b2lkICpoYW5kbGVy
X2RhdGE7CisgICAgRFdPUkQ2NCBlc3RhYmxpc2hlcl9mcmFtZTsKKyAgICBSdGxWaXJ0dWFsVW53
aW5kKFVOV19GTEFHX05IQU5ETEVSLCBpbWFnZV9iYXNlLCBjdHhfLlJpcCwgZW50cnksICZjdHhf
LAorICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZXJfZGF0YSwgJmVzdGFibGlzaGVyX2ZyYW1l
LCBudWxscHRyKTsKKyAgICByZXR1cm4gY3R4Xy5SaXAgIT0gMDsKKyAgfQorCisgIC8vIEdldElQ
IHJldHVybnMgdGhlIGluc3RydWN0aW9uIHBvaW50ZXIgYXQgdGhlIGN1cnJlbnQgZnJhbWUuCisg
IFVud2luZFN0YXR1c09yPGNyeXB0b193b3JkX3Q+IEdldElQKCkgeyByZXR1cm4gY3R4Xy5SaXA7
IH0KKworICAvLyBHZXRTUCByZXR1cm5zIHRoZSBzdGFjayBwb2ludGVyIGF0IHRoZSBjdXJyZW50
IGZyYW1lLgorICBVbndpbmRTdGF0dXNPcjxjcnlwdG9fd29yZF90PiBHZXRTUCgpIHsgcmV0dXJu
IGN0eF8uUnNwOyB9CisKKyAgLy8gR2V0Q2FsbGVyU3RhdGUgcmV0dXJucyB0aGUgY2FsbGVlLXNh
dmVkIHJlZ2lzdGVycyBhdCB0aGUgY3VycmVudCBmcmFtZS4KKyAgVW53aW5kU3RhdHVzT3I8Q2Fs
bGVyU3RhdGU+IEdldENhbGxlclN0YXRlKCkgeworICAgIENhbGxlclN0YXRlIHN0YXRlOworICAg
IHN0YXRlLnJieCA9IGN0eF8uUmJ4OworICAgIHN0YXRlLnJicCA9IGN0eF8uUmJwOworICAgIHN0
YXRlLnJkaSA9IGN0eF8uUmRpOworICAgIHN0YXRlLnJzaSA9IGN0eF8uUnNpOworICAgIHN0YXRl
LnIxMiA9IGN0eF8uUjEyOworICAgIHN0YXRlLnIxMyA9IGN0eF8uUjEzOworICAgIHN0YXRlLnIx
NCA9IGN0eF8uUjE0OworICAgIHN0YXRlLnIxNSA9IGN0eF8uUjE1OworICAgIG1lbWNweSgmc3Rh
dGUueG1tNiwgJmN0eF8uWG1tNiwgc2l6ZW9mKFJlZzEyOCkpOworICAgIG1lbWNweSgmc3RhdGUu
eG1tNywgJmN0eF8uWG1tNywgc2l6ZW9mKFJlZzEyOCkpOworICAgIG1lbWNweSgmc3RhdGUueG1t
OCwgJmN0eF8uWG1tOCwgc2l6ZW9mKFJlZzEyOCkpOworICAgIG1lbWNweSgmc3RhdGUueG1tOSwg
JmN0eF8uWG1tOSwgc2l6ZW9mKFJlZzEyOCkpOworICAgIG1lbWNweSgmc3RhdGUueG1tMTAsICZj
dHhfLlhtbTEwLCBzaXplb2YoUmVnMTI4KSk7CisgICAgbWVtY3B5KCZzdGF0ZS54bW0xMSwgJmN0
eF8uWG1tMTEsIHNpemVvZihSZWcxMjgpKTsKKyAgICBtZW1jcHkoJnN0YXRlLnhtbTEyLCAmY3R4
Xy5YbW0xMiwgc2l6ZW9mKFJlZzEyOCkpOworICAgIG1lbWNweSgmc3RhdGUueG1tMTMsICZjdHhf
LlhtbTEzLCBzaXplb2YoUmVnMTI4KSk7CisgICAgbWVtY3B5KCZzdGF0ZS54bW0xNCwgJmN0eF8u
WG1tMTQsIHNpemVvZihSZWcxMjgpKTsKKyAgICBtZW1jcHkoJnN0YXRlLnhtbTE1LCAmY3R4Xy5Y
bW0xNSwgc2l6ZW9mKFJlZzEyOCkpOworICAgIHJldHVybiBzdGF0ZTsKKyAgfQorCisgIC8vIFRv
U3RyaW5nIHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWRk
cmVzcyB0aGUgY3Vyc29yCisgIC8vIHN0YXJ0ZWQgYXQuCisgIGNvbnN0IGNoYXIgKlRvU3RyaW5n
KCkgeworICAgIFN0ckNhdFNpZ25hbFNhZmUoc3RhcnRpbmdfaXBfYnVmXywgIjB4IiwgV29yZFRv
SGV4KHN0YXJ0aW5nX2lwXykuZGF0YSgpKTsKKyAgICByZXR1cm4gc3RhcnRpbmdfaXBfYnVmXzsK
KyAgfQorCisgcHJpdmF0ZToKKyAgQ09OVEVYVCBjdHhfOworICBjcnlwdG9fd29yZF90IHN0YXJ0
aW5nX2lwXzsKKyAgY2hhciBzdGFydGluZ19pcF9idWZfWzY0XTsKKyAgYm9vbCBpc190b3BfID0g
dHJ1ZTsKK307CisjZWxzZSAgLy8gIU9QRU5TU0xfV0lORE9XUworY2xhc3MgVW53aW5kQ3Vyc29y
IHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IFVud2luZEN1cnNvcih1bndfY29udGV4dF90ICpjdHgp
IDogY3R4XyhjdHgpIHsKKyAgICBpbnQgcmV0ID0gSW5pdEF0U2lnbmFsRnJhbWUoJmN1cnNvcl8p
OworICAgIGlmIChyZXQgPCAwKSB7CisgICAgICBGYXRhbEVycm9yKCJFcnJvciBnZXR0aW5nIHVu
d2luZCBjb250ZXh0OiAiLCB1bndfc3RyZXJyb3IocmV0KSk7CisgICAgfQorICAgIHN0YXJ0aW5n
X2lwXyA9IEdldElQKCkuVmFsdWVPckRpZSgiRXJyb3IgZ2V0dGluZyBpbnN0cnVjdGlvbiBwb2lu
dGVyIik7CisgIH0KKworICAvLyBTdGVwIHVud2luZHMgdGhlIGN1cnNvciBieSBvbmUgZnJhbWUu
IE9uIHN1Y2Nlc3MsIGl0IHJldHVybnMgd2hldGhlciB0aGVyZQorICAvLyB3ZXJlIG1vcmUgZnJh
bWVzIHRvIHVud2luZC4KKyAgVW53aW5kU3RhdHVzT3I8Ym9vbD4gU3RlcCgpIHsKKyAgICBpbnQg
cmV0ID0gdW53X3N0ZXAoJmN1cnNvcl8pOworICAgIGlmIChyZXQgPCAwKSB7CisgICAgICByZXR1
cm4gVU5XRXJyb3IocmV0KTsKKyAgICB9CisgICAgcmV0dXJuIHJldCAhPSAwOworICB9CisKKyAg
Ly8gR2V0SVAgcmV0dXJucyB0aGUgaW5zdHJ1Y3Rpb24gcG9pbnRlciBhdCB0aGUgY3VycmVudCBm
cmFtZS4KKyAgVW53aW5kU3RhdHVzT3I8Y3J5cHRvX3dvcmRfdD4gR2V0SVAoKSB7CisgICAgY3J5
cHRvX3dvcmRfdCBpcDsKKyAgICBpbnQgcmV0ID0gR2V0UmVnKCZpcCwgVU5XX1JFR19JUCk7Cisg
ICAgaWYgKHJldCA8IDApIHsKKyAgICAgIHJldHVybiBVTldFcnJvcihyZXQpOworICAgIH0KKyAg
ICByZXR1cm4gaXA7CisgIH0KKworICAvLyBHZXRTUCByZXR1cm5zIHRoZSBzdGFjayBwb2ludGVy
IGF0IHRoZSBjdXJyZW50IGZyYW1lLgorICBVbndpbmRTdGF0dXNPcjxjcnlwdG9fd29yZF90PiBH
ZXRTUCgpIHsKKyAgICBjcnlwdG9fd29yZF90IHNwOworICAgIGludCByZXQgPSBHZXRSZWcoJnNw
LCBVTldfUkVHX1NQKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgcmV0dXJuIFVOV0Vycm9y
KHJldCk7CisgICAgfQorICAgIHJldHVybiBzcDsKKyAgfQorCisgIC8vIEdldENhbGxlclN0YXRl
IHJldHVybnMgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgYXQgdGhlIGN1cnJlbnQgZnJhbWUu
CisgIFVud2luZFN0YXR1c09yPENhbGxlclN0YXRlPiBHZXRDYWxsZXJTdGF0ZSgpIHsKKyAgICBD
YWxsZXJTdGF0ZSBzdGF0ZTsKKyAgICBpbnQgcmV0ID0gMDsKKyNpZiBkZWZpbmVkKE9QRU5TU0xf
WDg2XzY0KQorICAgIHJldCA9IHJldCA8IDAgPyByZXQgOiBHZXRSZWcoJnN0YXRlLnJieCwgVU5X
X1g4Nl82NF9SQlgpOworICAgIHJldCA9IHJldCA8IDAgPyByZXQgOiBHZXRSZWcoJnN0YXRlLnJi
cCwgVU5XX1g4Nl82NF9SQlApOworICAgIHJldCA9IHJldCA8IDAgPyByZXQgOiBHZXRSZWcoJnN0
YXRlLnIxMiwgVU5XX1g4Nl82NF9SMTIpOworICAgIHJldCA9IHJldCA8IDAgPyByZXQgOiBHZXRS
ZWcoJnN0YXRlLnIxMywgVU5XX1g4Nl82NF9SMTMpOworICAgIHJldCA9IHJldCA8IDAgPyByZXQg
OiBHZXRSZWcoJnN0YXRlLnIxNCwgVU5XX1g4Nl82NF9SMTQpOworICAgIHJldCA9IHJldCA8IDAg
PyByZXQgOiBHZXRSZWcoJnN0YXRlLnIxNSwgVU5XX1g4Nl82NF9SMTUpOworI2Vsc2UKKyNlcnJv
ciAidW5rbm93biBhcmNoaXRlY3R1cmUiCisjZW5kaWYKKyAgICBpZiAocmV0IDwgMCkgeworICAg
ICAgcmV0dXJuIFVOV0Vycm9yKHJldCk7CisgICAgfQorICAgIHJldHVybiBzdGF0ZTsKKyAgfQor
CisgIC8vIFRvU3RyaW5nIHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSByZXByZXNlbnRhdGlvbiBv
ZiB0aGUgYWRkcmVzcyB0aGUgY3Vyc29yCisgIC8vIHN0YXJ0ZWQgYXQsIHVzaW5nIGRlYnVnIGlu
Zm9ybWF0aW9uIGlmIGF2YWlsYWJsZS4KKyAgY29uc3QgY2hhciAqVG9TdHJpbmcoKSB7CisgICAg
Ly8gVXNlIGEgbmV3IGN1cnNvci4gfGN1cnNvcl98IGhhcyBhbHJlYWR5IGJlZW4gdW53b3VuZCwg
YW5kCisgICAgLy8gfHVud19nZXRfcHJvY19uYW1lfCBpcyBzbG93IHNvIHdlIGRvIG5vdCBzYW1w
bGUgaXQgdW5jb25kaXRpb25hbGx5IGluIHRoZQorICAgIC8vIGNvbnN0cnVjdG9yLgorICAgIHVu
d19jdXJzb3JfdCBjdXJzb3I7CisgICAgdW53X3dvcmRfdCBvZmY7CisgICAgaWYgKEluaXRBdFNp
Z25hbEZyYW1lKCZjdXJzb3IpICE9IDAgfHwKKyAgICAgICAgdW53X2dldF9wcm9jX25hbWUoJmN1
cnNvciwgc3RhcnRpbmdfaXBfYnVmXywgc2l6ZW9mKHN0YXJ0aW5nX2lwX2J1Zl8pLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAmb2ZmKSAhPSAwKSB7CisgICAgICBTdHJDYXRTaWduYWxTYWZl
KHN0YXJ0aW5nX2lwX2J1Zl8sICIweCIsIFdvcmRUb0hleChzdGFydGluZ19pcF8pLmRhdGEoKSk7
CisgICAgICByZXR1cm4gc3RhcnRpbmdfaXBfYnVmXzsKKyAgICB9CisgICAgc2l6ZV90IGxlbiA9
IHN0cmxlbihzdGFydGluZ19pcF9idWZfKTsKKyAgICAvLyBQcmludCB0aGUgb2Zmc2V0IGluIGRl
Y2ltYWwsIHRvIG1hdGNoIGdkYidzIGRpc2Fzc2VtYmx5IG91dHB1dCBhbmQgZWFzZQorICAgIC8v
IGRlYnVnZ2luZy4KKyAgICBTdHJDYXRTaWduYWxTYWZlKGJzc2w6OlNwYW48Y2hhcj4oc3RhcnRp
bmdfaXBfYnVmXykuc3Vic3BhbihsZW4pLCAiKyIsCisgICAgICAgICAgICAgICAgICAgICBXb3Jk
VG9EZWNpbWFsKG9mZikuZGF0YSgpLCAiICgweCIsCisgICAgICAgICAgICAgICAgICAgICBXb3Jk
VG9IZXgoc3RhcnRpbmdfaXBfKS5kYXRhKCksICIpIik7CisgICAgcmV0dXJuIHN0YXJ0aW5nX2lw
X2J1Zl87CisgIH0KKworIHByaXZhdGU6CisgIHN0YXRpYyBVbndpbmRTdGF0dXMgVU5XRXJyb3Io
aW50IHJldCkgeworICAgIGFzc2VydChyZXQgPCAwKTsKKyAgICBjb25zdCBjaGFyICptc2cgPSB1
bndfc3RyZXJyb3IocmV0KTsKKyAgICByZXR1cm4gVW53aW5kU3RhdHVzKG1zZyA9PSBudWxscHRy
ID8gInVua25vd24gZXJyb3IiIDogbXNnKTsKKyAgfQorCisgIGludCBJbml0QXRTaWduYWxGcmFt
ZSh1bndfY3Vyc29yX3QgKmN1cnNvcikgeworICAgIC8vIFdvcmsgYXJvdW5kIGEgYnVnIGluIGxp
YnVud2luZCB3aGljaCBicmVha3MgcmF4IGFuZCByZHggcmVjb3ZlcnkuIFRoaXMKKyAgICAvLyBi
cmVha3MgZnVuY3Rpb25zIHdoaWNoIHRlbXBvcmFyaWx5IHVzZSByYXggYXMgdGhlIENGQSByZWdp
c3Rlci4gU2VlCisgICAgLy8gaHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9
bGlidW53aW5kLmdpdDthPWNvbW1pdDtoPTgxOWJmNTFiYmQyZGE0NjJjMmVjMzQwMWU4YWM5MTUz
YjZlNzI1ZTMKKyAgICBPUEVOU1NMX21lbXNldChjdXJzb3IsIDAsIHNpemVvZigqY3Vyc29yKSk7
CisgICAgaW50IHJldCA9IHVud19pbml0X2xvY2FsKGN1cnNvciwgY3R4Xyk7CisgICAgaWYgKHJl
dCA8IDApIHsKKyAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIGZvciAoOzspIHsKKyAgICAg
IHJldCA9IHVud19pc19zaWduYWxfZnJhbWUoY3Vyc29yKTsKKyAgICAgIGlmIChyZXQgPCAwKSB7
CisgICAgICAgIHJldHVybiByZXQ7CisgICAgICB9CisgICAgICBpZiAocmV0ICE9IDApIHsKKyAg
ICAgICAgcmV0dXJuIDA7ICAvLyBGb3VuZCB0aGUgc2lnbmFsIGZyYW1lLgorICAgICAgfQorICAg
ICAgcmV0ID0gdW53X3N0ZXAoY3Vyc29yKTsKKyAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAg
IHJldHVybiByZXQ7CisgICAgICB9CisgICAgfQorICB9CisKKyAgaW50IEdldFJlZyhjcnlwdG9f
d29yZF90ICpvdXQsIHVud19yZWdudW1fdCByZWcpIHsKKyAgICB1bndfd29yZF90IHZhbDsKKyAg
ICBpbnQgcmV0ID0gdW53X2dldF9yZWcoJmN1cnNvcl8sIHJlZywgJnZhbCk7CisgICAgaWYgKHJl
dCA+PSAwKSB7CisgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihjcnlwdG9fd29yZF90KSA9PSBz
aXplb2YodW53X3dvcmRfdCksCisgICAgICAgICAgICAgICAgICAgICJjcnlwdG9fd29yZF90IGFu
ZCB1bndfd29yZF90IGFyZSBpbmNvbnNpc3RlbnQiKTsKKyAgICAgICpvdXQgPSB2YWw7CisgICAg
fQorICAgIHJldHVybiByZXQ7CisgIH0KKworICB1bndfY29udGV4dF90ICpjdHhfOworICB1bndf
Y3Vyc29yX3QgY3Vyc29yXzsKKyAgY3J5cHRvX3dvcmRfdCBzdGFydGluZ19pcF87CisgIGNoYXIg
c3RhcnRpbmdfaXBfYnVmX1s2NF07Cit9OworI2VuZGlmICAvLyBPUEVOU1NMX1dJTkRPV1MKKwor
Ly8gZ19pbl90cmFtcG9saW5lIGlzIHRydWUgaWYgd2UgYXJlIGluIGFuIGluc3RydW1lbnRlZCB8
YWJpX3Rlc3RfdHJhbXBvbGluZXwKKy8vIGNhbGwsIGluIHRoZSByZWdpb24gdGhhdCB0cmlnZ2Vy
cyB8U0lHVFJBUHwuCitzdGF0aWMgYm9vbCBnX2luX3RyYW1wb2xpbmUgPSBmYWxzZTsKKy8vIGdf
dW53aW5kX2Z1bmN0aW9uX2RvbmUsIGlmIHxnX2luX3RyYW1wb2xpbmV8IGlzIHRydWUsIGlzIHdo
ZXRoZXIgdGhlIGZ1bmN0aW9uCisvLyB1bmRlciB0ZXN0IGhhcyByZXR1cm5lZC4gSXQgaXMgdW5k
ZWZpbmVkIG90aGVyd2lzZS4KK3N0YXRpYyBib29sIGdfdW53aW5kX2Z1bmN0aW9uX2RvbmU7Cisv
LyBnX3RyYW1wb2xpbmVfc3RhdGUsIGlmIHxnX2luX3RyYW1wb2xpbmV8IGlzIHRydWUsIGlzIHRo
ZSBzdGF0ZSB0aGUgZnVuY3Rpb24KKy8vIHVuZGVyIHRlc3QgbXVzdCBwcmVzZXJ2ZS4gSXQgaXMg
dW5kZWZpbmVkIG90aGVyd2lzZS4KK3N0YXRpYyBDYWxsZXJTdGF0ZSBnX3RyYW1wb2xpbmVfc3Rh
dGU7CisvLyBnX3RyYW1wb2xpbmVfc3AsIGlmIHxnX2luX3RyYW1wb2xpbmV8IGlzIHRydWUsIGlz
IHRoZSBzdGFjayBwb2ludGVyIG9mIHRoZQorLy8gdHJhbXBvbGluZSBmcmFtZS4gSXQgaXMgdW5k
ZWZpbmVkIG90aGVyd2lzZS4KK3N0YXRpYyBjcnlwdG9fd29yZF90IGdfdHJhbXBvbGluZV9zcDsK
KworLy8ga01heFVud2luZEVycm9ycyBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdW53aW5kIGVy
cm9ycyByZXBvcnRlZCBwZXIKKy8vIGZ1bmN0aW9uLiBJZiBhIGZ1bmN0aW9uJ3MgdW53aW5kIHRh
YmxlcyBhcmUgd3JvbmcsIHdlIGFyZSBvdGhlcndpc2UgbGlrZWx5IHRvCisvLyByZXBlYXQgdGhl
IHNhbWUgZXJyb3IgYXQgbXVsdGlwbGUgYWRkcmVzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3Qga01heFVud2luZEVycm9ycyA9IDEwOworCisvLyBFcnJvcnMgYXJlIHNhdmVkIGluIGEgc2ln
bmFsIGhhbmRsZXIuIFdlIHVzZSBhIHN0YXRpYyBidWZmZXIgdG8gYXZvaWQKKy8vIGFsbG9jYXRp
b24uCitzdGF0aWMgc2l6ZV90IGdfbnVtX3Vud2luZF9lcnJvcnMgPSAwOworCitzdHJ1Y3QgVW53
aW5kRXJyb3IgeworI2lmIGRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQorICBjcnlwdG9fd29yZF90
IGlwOworI2VuZGlmCisgIGNoYXIgc3RyWzUxMl07Cit9OworCitzdGF0aWMgVW53aW5kRXJyb3Ig
Z191bndpbmRfZXJyb3JzW2tNYXhVbndpbmRFcnJvcnNdOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUu
Li4gQXJncz4KK3N0YXRpYyB2b2lkIEFkZFVud2luZEVycm9yKFVud2luZEN1cnNvciAqY3Vyc29y
LCBBcmdzLi4uIGFyZ3MpIHsKKyAgaWYgKGdfbnVtX3Vud2luZF9lcnJvcnMgPj0ga01heFVud2lu
ZEVycm9ycykgeworICAgIHJldHVybjsKKyAgfQorI2lmIGRlZmluZWQoT1BFTlNTTF9XSU5ET1dT
KQorICAvLyBXaW5kb3dzIHN5bWJvbCBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2hl
biBoYW5kbGluZyBhbgorICAvLyBleGNlcHRpb24uIFN0YXNoIHRoZSBpbnN0cnVjdGlvbiBwb2lu
dGVyLCB0byBiZSBzeW1ib2xpemVkIGxhdGVyLgorICBnX3Vud2luZF9lcnJvcnNbZ19udW1fdW53
aW5kX2Vycm9yc10uaXAgPSBjdXJzb3ItPnN0YXJ0aW5nX2lwKCk7CisgIFN0ckNhdFNpZ25hbFNh
ZmUoZ191bndpbmRfZXJyb3JzW2dfbnVtX3Vud2luZF9lcnJvcnNdLnN0ciwgYXJncy4uLik7Cisj
ZWxzZQorICBTdHJDYXRTaWduYWxTYWZlKGdfdW53aW5kX2Vycm9yc1tnX251bV91bndpbmRfZXJy
b3JzXS5zdHIsCisgICAgICAgICAgICAgICAgICAgInVud2luZGluZyBhdCAiLCBjdXJzb3ItPlRv
U3RyaW5nKCksICI6ICIsIGFyZ3MuLi4pOworI2VuZGlmCisgIGdfbnVtX3Vud2luZF9lcnJvcnMr
KzsKK30KKworc3RhdGljIHZvaWQgQ2hlY2tVbndpbmQoVW53aW5kQ3Vyc29yICpjdXJzb3IpIHsK
KyAgY29uc3QgY3J5cHRvX3dvcmRfdCBrU3RhcnRBZGRyZXNzID0KKyAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8Y3J5cHRvX3dvcmRfdD4oJmFiaV90ZXN0X3Vud2luZF9zdGFydCk7CisgIGNvbnN0IGNy
eXB0b193b3JkX3Qga1JldHVybkFkZHJlc3MgPQorICAgICAgcmVpbnRlcnByZXRfY2FzdDxjcnlw
dG9fd29yZF90PigmYWJpX3Rlc3RfdW53aW5kX3JldHVybik7CisgIGNvbnN0IGNyeXB0b193b3Jk
X3Qga1N0b3BBZGRyZXNzID0KKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y3J5cHRvX3dvcmRfdD4o
JmFiaV90ZXN0X3Vud2luZF9zdG9wKTsKKworICBjcnlwdG9fd29yZF90IHNwID0gY3Vyc29yLT5H
ZXRTUCgpLlZhbHVlT3JEaWUoIkVycm9yIGdldHRpbmcgc3RhY2sgcG9pbnRlciIpOworICBjcnlw
dG9fd29yZF90IGlwID0KKyAgICAgIGN1cnNvci0+R2V0SVAoKS5WYWx1ZU9yRGllKCJFcnJvciBn
ZXR0aW5nIGluc3RydWN0aW9uIHBvaW50ZXIiKTsKKyAgaWYgKCFnX2luX3RyYW1wb2xpbmUpIHsK
KyAgICBpZiAoaXAgIT0ga1N0YXJ0QWRkcmVzcykgeworICAgICAgRmF0YWxFcnJvcigiVW5leHBl
Y3RlZCBTSUdUUkFQIGF0ICIsIGN1cnNvci0+VG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLy8g
U2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBhbmQgYmVnaW4uCisgICAgZ19pbl90cmFtcG9saW5lID0g
dHJ1ZTsKKyAgICBnX3Vud2luZF9mdW5jdGlvbl9kb25lID0gZmFsc2U7CisgICAgZ190cmFtcG9s
aW5lX3NwID0gc3A7CisgICAgZ190cmFtcG9saW5lX3N0YXRlID0gY3Vyc29yLT5HZXRDYWxsZXJT
dGF0ZSgpLlZhbHVlT3JEaWUoCisgICAgICAgICJFcnJvciBnZXR0aW5nIGluaXRpYWwgY2FsbGVy
IHN0YXRlIik7CisgIH0gZWxzZSB7CisgICAgaWYgKHNwID09IGdfdHJhbXBvbGluZV9zcCB8fCBn
X3Vud2luZF9mdW5jdGlvbl9kb25lKSB7CisgICAgICAvLyB8Z191bndpbmRfZnVuY3Rpb25fZG9u
ZXwgc2hvdWxkIGltcGx5IHxzcHwgaXMgfGdfdHJhbXBvbGluZV9zcHwsIGJ1dAorICAgICAgLy8g
Y2xlYXJpbmcgdGhlIHRyYXAgZmxhZyBpbiB4ODYgYnJpZWZseSBkaXNwbGFjZXMgdGhlIHN0YWNr
IHBvaW50ZXIuCisgICAgICAvLworICAgICAgLy8gQWxzbyBub3RlIHdlIGNoZWNrIGJvdGggfGlw
fCBhbmQgfHNwfCBiZWxvdywgaW4gY2FzZSB0aGUgZnVuY3Rpb24gdW5kZXIKKyAgICAgIC8vIHRl
c3QgaXMgYWxzbyB8YWJpX3Rlc3RfdHJhbXBvbGluZXwuCisgICAgICBpZiAoaXAgPT0ga1JldHVy
bkFkZHJlc3MgJiYgc3AgPT0gZ190cmFtcG9saW5lX3NwKSB7CisgICAgICAgIGdfdW53aW5kX2Z1
bmN0aW9uX2RvbmUgPSB0cnVlOworICAgICAgfQorICAgICAgaWYgKGlwID09IGtTdG9wQWRkcmVz
cyAmJiBzcCA9PSBnX3RyYW1wb2xpbmVfc3ApIHsKKyAgICAgICAgLy8gfFNJR1RSQVB8IGlzIGZh
dGFsIGFnYWluLgorICAgICAgICBnX2luX3RyYW1wb2xpbmUgPSBmYWxzZTsKKyAgICAgIH0KKyAg
ICB9IGVsc2UgaWYgKElzQW5jZXN0b3JTdGFja0ZyYW1lKHNwLCBnX3RyYW1wb2xpbmVfc3ApKSB7
CisgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uIFdlIHdlbnQgcGFzdCB8Z190cmFt
cG9saW5lX3NwfCB3aXRob3V0CisgICAgICAvLyBzdG9wcGluZyBhdCB8a1N0b3BBZGRyZXNzfC4K
KyAgICAgIEFkZFVud2luZEVycm9yKGN1cnNvciwgInN0YWNrIGZyYW1lIGlzIGJlZm9yZSBjYWxs
ZXIiKTsKKyAgICAgIGdfaW5fdHJhbXBvbGluZSA9IGZhbHNlOworICAgIH0gZWxzZSBpZiAoZ19u
dW1fdW53aW5kX2Vycm9ycyA8IGtNYXhVbndpbmRFcnJvcnMpIHsKKyAgICAgIGZvciAoOzspIHsK
KyAgICAgICAgVW53aW5kU3RhdHVzT3I8Ym9vbD4gc3RlcF9yZXQgPSBjdXJzb3ItPlN0ZXAoKTsK
KyAgICAgICAgaWYgKCFzdGVwX3JldC5vaygpKSB7CisgICAgICAgICAgQWRkVW53aW5kRXJyb3Io
Y3Vyc29yLCAiZXJyb3IgdW53aW5kaW5nOiAiLCBzdGVwX3JldC5FcnJvcigpKTsKKyAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvLyB8U3RlcHwgcmV0dXJucyB3aGV0aGVyIHRo
ZXJlIHdhcyBhIGZyYW1lIHRvIHVud2luZC4KKyAgICAgICAgaWYgKCFzdGVwX3JldC5WYWx1ZU9y
RGllKCkpIHsKKyAgICAgICAgICBBZGRVbndpbmRFcnJvcihjdXJzb3IsICJjb3VsZCBub3QgdW53
aW5kIHRvIHN0YXJ0aW5nIGZyYW1lIik7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBVbndpbmRTdGF0dXNPcjxjcnlwdG9fd29yZF90PiBjdXJfc3AgPSBjdXJzb3ItPkdl
dFNQKCk7CisgICAgICAgIGlmICghY3VyX3NwLm9rKCkpIHsKKyAgICAgICAgICBBZGRVbndpbmRF
cnJvcihjdXJzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgImVycm9yIHJlY292ZXJpbmcg
c3RhY2sgcG9pbnRlcjogIiwgY3VyX3NwLkVycm9yKCkpOworICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGlmIChJc0FuY2VzdG9yU3RhY2tGcmFtZShjdXJfc3AuVmFsdWVPckRp
ZSgpLCBnX3RyYW1wb2xpbmVfc3ApKSB7CisgICAgICAgICAgQWRkVW53aW5kRXJyb3IoY3Vyc29y
LCAidW53b3VuZCBwYXN0IHN0YXJ0aW5nIGZyYW1lIik7CisgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGN1cl9zcC5WYWx1ZU9yRGllKCkgPT0gZ190cmFtcG9saW5lX3Nw
KSB7CisgICAgICAgICAgLy8gV2UgZm91bmQgdGhlIHBhcmVudCBmcmFtZS4gQ2hlY2sgdGhlIHJl
dHVybiBhZGRyZXNzLgorICAgICAgICAgIFVud2luZFN0YXR1c09yPGNyeXB0b193b3JkX3Q+IGN1
cl9pcCA9IGN1cnNvci0+R2V0SVAoKTsKKyAgICAgICAgICBpZiAoIWN1cl9pcC5vaygpKSB7Cisg
ICAgICAgICAgICBBZGRVbndpbmRFcnJvcihjdXJzb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZXJyb3IgcmVjb3ZlcmluZyByZXR1cm4gYWRkcmVzczogIiwgY3VyX2lwLkVycm9yKCkp
OworICAgICAgICAgIH0gZWxzZSBpZiAoY3VyX2lwLlZhbHVlT3JEaWUoKSAhPSBrUmV0dXJuQWRk
cmVzcykgeworICAgICAgICAgICAgQWRkVW53aW5kRXJyb3IoY3Vyc29yLCAid3JvbmcgcmV0dXJu
IGFkZHJlc3MiKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBDaGVjayB0aGUgcmVtYWlu
aW5nIHJlZ2lzdGVycy4KKyAgICAgICAgICBVbndpbmRTdGF0dXNPcjxDYWxsZXJTdGF0ZT4gc3Rh
dGUgPSBjdXJzb3ItPkdldENhbGxlclN0YXRlKCk7CisgICAgICAgICAgaWYgKCFzdGF0ZS5vaygp
KSB7CisgICAgICAgICAgICBBZGRVbndpbmRFcnJvcihjdXJzb3IsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZXJyb3IgcmVjb3ZlcmluZyByZWdpc3RlcnM6ICIsIHN0YXRlLkVycm9yKCkp
OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBGb3JFYWNoTWlzbWF0Y2goc3RhdGUu
VmFsdWVPckRpZSgpLCBnX3RyYW1wb2xpbmVfc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyZdKGNvbnN0IGNoYXIgKnJlZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWRkVW53aW5kRXJyb3IoY3Vyc29yLCByZWcsICIgd2FzIG5vdCByZWNvdmVyZWQiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9CisgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KK30KKworc3RhdGljIHZvaWQgUmVh
ZFVud2luZFJlc3VsdChSZXN1bHQgKm91dCkgeworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGdf
bnVtX3Vud2luZF9lcnJvcnM7IGkrKykgeworI2lmIGRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQor
ICAgIGNvbnN0IGNyeXB0b193b3JkX3QgaXAgPSBnX3Vud2luZF9lcnJvcnNbaV0uaXA7CisgICAg
Y2hhciBidWZbMjU2XTsKKyAgICBEV09SRDY0IGRpc3BsYWNlbWVudDsKKyAgICBzdHJ1Y3Qgewor
ICAgICAgU1lNQk9MX0lORk8gaW5mbzsKKyAgICAgIGNoYXIgbmFtZV9idWZbMTI4XTsKKyAgICB9
IHN5bWJvbDsKKyAgICBtZW1zZXQoJnN5bWJvbCwgMCwgc2l6ZW9mKHN5bWJvbCkpOworICAgIHN5
bWJvbC5pbmZvLlNpemVPZlN0cnVjdCA9IHNpemVvZihzeW1ib2wuaW5mbyk7CisgICAgc3ltYm9s
LmluZm8uTWF4TmFtZUxlbiA9IHNpemVvZihzeW1ib2wubmFtZV9idWYpOworICAgIGlmIChTeW1G
cm9tQWRkcihHZXRDdXJyZW50UHJvY2VzcygpLCBpcCwgJmRpc3BsYWNlbWVudCwgJnN5bWJvbC5p
bmZvKSkgeworICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgInVud2luZGluZyBhdCAl
cyslbGx1ICgweCVzKTogJXMiLAorICAgICAgICAgICAgICAgc3ltYm9sLmluZm8uTmFtZSwgZGlz
cGxhY2VtZW50LCBXb3JkVG9IZXgoaXApLmRhdGEoKSwKKyAgICAgICAgICAgICAgIGdfdW53aW5k
X2Vycm9yc1tpXS5zdHIpOworICAgIH0gZWxzZSB7CisgICAgICBzbnByaW50ZihidWYsIHNpemVv
ZihidWYpLCAidW53aW5kaW5nIGF0IDB4JXM6ICVzIiwKKyAgICAgICAgICAgICAgIFdvcmRUb0hl
eChpcCkuZGF0YSgpLCBnX3Vud2luZF9lcnJvcnNbaV0uc3RyKTsKKyAgICB9CisgICAgb3V0LT5l
cnJvcnMuZW1wbGFjZV9iYWNrKGJ1Zik7CisjZWxzZQorICAgIG91dC0+ZXJyb3JzLmVtcGxhY2Vf
YmFjayhnX3Vud2luZF9lcnJvcnNbaV0uc3RyKTsKKyNlbmRpZgorICB9CisgIGlmIChnX251bV91
bndpbmRfZXJyb3JzID09IGtNYXhVbndpbmRFcnJvcnMpIHsKKyAgICBvdXQtPmVycm9ycy5lbXBs
YWNlX2JhY2soIihhZGRpdGlvbmFsIGVycm9ycyBvbWl0dGVkKSIpOworICB9CisgIGdfbnVtX3Vu
d2luZF9lcnJvcnMgPSAwOworfQorCisjaWYgZGVmaW5lZChPUEVOU1NMX1dJTkRPV1MpCitzdGF0
aWMgRFdPUkQgZ19tYWluX3RocmVhZDsKKworc3RhdGljIGxvbmcgRXhjZXB0aW9uSGFuZGxlcihF
WENFUFRJT05fUE9JTlRFUlMgKmluZm8pIHsKKyAgaWYgKGluZm8tPkV4Y2VwdGlvblJlY29yZC0+
RXhjZXB0aW9uQ29kZSAhPSBFWENFUFRJT05fU0lOR0xFX1NURVAgfHwKKyAgICAgIEdldEN1cnJl
bnRUaHJlYWRJZCgpICE9IGdfbWFpbl90aHJlYWQpIHsKKyAgICByZXR1cm4gRVhDRVBUSU9OX0NP
TlRJTlVFX1NFQVJDSDsKKyAgfQorCisgIFVud2luZEN1cnNvciBjdXJzb3IoKmluZm8tPkNvbnRl
eHRSZWNvcmQpOworICBDaGVja1Vud2luZCgmY3Vyc29yKTsKKyAgaWYgKGdfaW5fdHJhbXBvbGlu
ZSkgeworICAgIC8vIFdpbmRvd3MgY2xlYXJzIHRoZSB0cmFwIGZsYWcsIHNvIHdlIG11c3QgcmVz
dG9yZSBpdC4KKyAgICBpbmZvLT5Db250ZXh0UmVjb3JkLT5FRmxhZ3MgfD0gMHgxMDA7CisgIH0K
KyAgcmV0dXJuIEVYQ0VQVElPTl9DT05USU5VRV9FWEVDVVRJT047Cit9CisKK3N0YXRpYyB2b2lk
IEVuYWJsZVVud2luZFRlc3RzSW1wbCgpIHsKKyAgaWYgKElzRGVidWdnZXJQcmVzZW50KCkpIHsK
KyAgICAvLyBVbndpbmQgdGVzdHMgZHJpdmUgbG9naWMgdmlhIHxFWENFUFRJT05fU0lOR0xFX1NU
RVB8LCB3aGljaCBjb25mbGljdHMgd2l0aAorICAgIC8vIGRlYnVnZ2Vycy4KKyAgICBmcHJpbnRm
KHN0ZGVyciwgIkRlYnVnZ2VyIGRldGVjdGVkLiBEaXNhYmxpbmcgdW53aW5kIHRlc3RzLlxuIik7
CisgICAgcmV0dXJuOworICB9CisKKyAgZ19tYWluX3RocmVhZCA9IEdldEN1cnJlbnRUaHJlYWRJ
ZCgpOworCisgIFN5bVNldE9wdGlvbnMoU1lNT1BUX0RFRkVSUkVEX0xPQURTKTsKKyAgaWYgKCFT
eW1Jbml0aWFsaXplKEdldEN1cnJlbnRQcm9jZXNzKCksIG51bGxwdHIsIFRSVUUpKSB7CisgICAg
ZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgaW5pdGlhbGl6ZSBzeW1ib2xzLlxuIik7CisgIH0K
KworICBpZiAoQWRkVmVjdG9yZWRFeGNlcHRpb25IYW5kbGVyKDAsIEV4Y2VwdGlvbkhhbmRsZXIp
ID09IG51bGxwdHIpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIGluc3RhbGxpbmcgZXhj
ZXB0aW9uIGhhbmRsZXIuXG4iKTsKKyAgICBhYm9ydCgpOworICB9CisKKyAgZ191bndpbmRfdGVz
dHNfZW5hYmxlZCA9IHRydWU7Cit9CisjZWxzZSAgLy8gIU9QRU5TU0xfV0lORE9XUworLy8gSGFu
ZGxlRUlOVFIgcnVucyB8ZnVuY3wgYW5kIHJldHVybnMgdGhlIHJlc3VsdCwgcmV0cnlpbmcgdGhl
IG9wZXJhdGlvbiBvbgorLy8gfEVJTlRSfC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBGdW5jPgorc3Rh
dGljIGF1dG8gSGFuZGxlRUlOVFIoY29uc3QgRnVuYyAmZnVuYykgLT4gZGVjbHR5cGUoZnVuYygp
KSB7CisgIGRlY2x0eXBlKGZ1bmMoKSkgcmV0OworICBkbyB7CisgICAgcmV0ID0gZnVuYygpOwor
ICB9IHdoaWxlIChyZXQgPCAwICYmIGVycm5vID09IEVJTlRSKTsKKyAgcmV0dXJuIHJldDsKK30K
Kworc3RhdGljIGJvb2wgUmVhZEZpbGVUb1N0cmluZyhzdGQ6OnN0cmluZyAqb3V0LCBjb25zdCBj
aGFyICpwYXRoKSB7CisgIG91dC0+Y2xlYXIoKTsKKworICBpbnQgZmQgPSBIYW5kbGVFSU5UUihb
Jl0geyByZXR1cm4gb3BlbihwYXRoLCBPX1JET05MWSk7IH0pOworICBpZiAoZmQgPCAwKSB7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgZm9yICg7OykgeworICAgIGNoYXIgYnVmWzEwMjRd
OworICAgIHNzaXplX3QgcmV0ID0gSGFuZGxlRUlOVFIoWyZdIHsgcmV0dXJuIHJlYWQoZmQsIGJ1
Ziwgc2l6ZW9mKGJ1ZikpOyB9KTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgY2xvc2UoZmQp
OworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAg
IGNsb3NlKGZkKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBvdXQtPmFwcGVuZChi
dWYsIHN0YXRpY19jYXN0PHNpemVfdD4ocmV0KSk7CisgIH0KK30KKworc3RhdGljIGJvb2wgSXNC
ZWluZ0RlYnVnZ2VkKCkgeworICBzdGQ6OnN0cmluZyBzdGF0dXM7CisgIGlmICghUmVhZEZpbGVU
b1N0cmluZygmc3RhdHVzLCAiL3Byb2Mvc2VsZi9zdGF0dXMiKSkgeworICAgIHBlcnJvcigiZXJy
b3IgcmVhZGluZyAvcHJvYy9zZWxmL3N0YXR1cyIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQor
ICBzdGQ6OnN0cmluZyBrZXkgPSAiXG5UcmFjZXJQaWQ6XHQiOworICBzaXplX3QgaWR4ID0gc3Rh
dHVzLmZpbmQoa2V5KTsKKyAgaWYgKGlkeCA9PSBzdGQ6OnN0cmluZzo6bnBvcykgeworICAgIHJl
dHVybiBmYWxzZTsKKyAgfQorICBpZHggKz0ga2V5LnNpemUoKTsKKyAgcmV0dXJuIGlkeCA8IHN0
YXR1cy5zaXplKCkgJiYgc3RhdHVzW2lkeF0gIT0gJzAnOworfQorCitzdGF0aWMgcHRocmVhZF90
IGdfbWFpbl90aHJlYWQ7CisKK3N0YXRpYyB2b2lkIFRyYXBIYW5kbGVyKGludCBzaWcpIHsKKyAg
Ly8gTm90ZSB0aGlzIGlzIGEgc2lnbmFsIGhhbmRsZXIsIHNvIG9ubHkgYXN5bmMtc2lnbmFsLXNh
ZmUgZnVuY3Rpb25zIG1heSBiZQorICAvLyB1c2VkIGhlcmUuIFNlZSBzaWduYWwtc2FmZXR5KDcp
LiBsaWJ1bndpbmQgcHJvbWlzZXMgbG9jYWwgdW53aW5kIGlzCisgIC8vIGFzeW5jLXNpZ25hbC1z
YWZlLgorCisgIC8vIHxwdGhyZWFkX2VxdWFsfCBpcyBub3QgbGlzdGVkIGFzIGFzeW5jLXNpZ25h
bC1zYWZlLCBidXQgdGhpcyBpcyBjbGVhcmx5IGFuCisgIC8vIG92ZXJzaWdodC4KKyAgaWYgKCFw
dGhyZWFkX2VxdWFsKGdfbWFpbl90aHJlYWQsIHB0aHJlYWRfc2VsZigpKSkgeworICAgIEZhdGFs
RXJyb3IoIlNJR1RSQVAgb24gYmFja2dyb3VuZCB0aHJlYWQiKTsKKyAgfQorCisgIHVud19jb250
ZXh0X3QgY3R4OworICBpbnQgcmV0ID0gdW53X2dldGNvbnRleHQoJmN0eCk7CisgIGlmIChyZXQg
PCAwKSB7CisgICAgRmF0YWxFcnJvcigiRXJyb3IgZ2V0dGluZyB1bndpbmQgY29udGV4dDogIiwg
dW53X3N0cmVycm9yKHJldCkpOworICB9CisKKyAgVW53aW5kQ3Vyc29yIGN1cnNvcigmY3R4KTsK
KyAgQ2hlY2tVbndpbmQoJmN1cnNvcik7Cit9CisKK3N0YXRpYyB2b2lkIEVuYWJsZVVud2luZFRl
c3RzSW1wbCgpIHsKKyAgaWYgKElzQmVpbmdEZWJ1Z2dlZCgpKSB7CisgICAgLy8gVW53aW5kIHRl
c3RzIGRyaXZlIGxvZ2ljIHZpYSB8U0lHVFJBUHwsIHdoaWNoIGNvbmZsaWN0cyB3aXRoIGRlYnVn
Z2Vycy4KKyAgICBmcHJpbnRmKHN0ZGVyciwgIkRlYnVnZ2VyIGRldGVjdGVkLiBEaXNhYmxpbmcg
dW53aW5kIHRlc3RzLlxuIik7CisgICAgcmV0dXJuOworICB9CisKKyAgZ19tYWluX3RocmVhZCA9
IHB0aHJlYWRfc2VsZigpOworCisgIHN0cnVjdCBzaWdhY3Rpb24gdHJhcF9hY3Rpb247CisgIE9Q
RU5TU0xfbWVtc2V0KCZ0cmFwX2FjdGlvbiwgMCwgc2l6ZW9mKHRyYXBfYWN0aW9uKSk7CisgIHNp
Z2VtcHR5c2V0KCZ0cmFwX2FjdGlvbi5zYV9tYXNrKTsKKyAgdHJhcF9hY3Rpb24uc2FfaGFuZGxl
ciA9IFRyYXBIYW5kbGVyOworICBpZiAoc2lnYWN0aW9uKFNJR1RSQVAsICZ0cmFwX2FjdGlvbiwg
TlVMTCkgIT0gMCkgeworICAgIHBlcnJvcigic2lnYWN0aW9uIik7CisgICAgYWJvcnQoKTsKKyAg
fQorCisgIGdfdW53aW5kX3Rlc3RzX2VuYWJsZWQgPSB0cnVlOworfQorI2VuZGlmICAvLyBPUEVO
U1NMX1dJTkRPV1MKKworI2Vsc2UgIC8vICFTVVBQT1JUU19VTldJTkRfVEVTVAorCisjaWYgZGVm
aW5lZChTVVBQT1JUU19BQklfVEVTVCkKK3N0YXRpYyB2b2lkIFJlYWRVbndpbmRSZXN1bHQoUmVz
dWx0ICopIHt9CisjZW5kaWYKK3N0YXRpYyB2b2lkIEVuYWJsZVVud2luZFRlc3RzSW1wbCgpIHt9
CisKKyNlbmRpZiAgLy8gU1VQUE9SVFNfVU5XSU5EX1RFU1QKKworfSAgLy8gbmFtZXNwYWNlIGlu
dGVybmFsCisKK3ZvaWQgRW5hYmxlVW53aW5kVGVzdHMoKSB7IGludGVybmFsOjpFbmFibGVVbndp
bmRUZXN0c0ltcGwoKTsgfQorCitib29sIFVud2luZFRlc3RzRW5hYmxlZCgpIHsgcmV0dXJuIGlu
dGVybmFsOjpnX3Vud2luZF90ZXN0c19lbmFibGVkOyB9CisKK30gIC8vIG5hbWVzcGFjZSBhYmlf
dGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0L2FiaV90ZXN0LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L3Rlc3QvYWJpX3Rlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2M0YmI4NzJjNjc5MzI1ZjQ1OTAwZThmMmJh
YmRmNWZmNDQ0NmIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0L2FiaV90ZXN0
LmgKQEAgLTAsMCArMSw0NzUgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxOCwgR29vZ2xlIEluYy4K
KyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0
ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBp
cyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisg
KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElT
Q0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElO
Q0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBP
UiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwg
REFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5F
R0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgor
ICogQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FS
RS4gKi8KKworI2lmbmRlZiBPUEVOU1NMX0hFQURFUl9BQklfVEVTVF9ICisjZGVmaW5lIE9QRU5T
U0xfSEVBREVSX0FCSV9URVNUX0gKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNs
dWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisjaW5jbHVkZSA8dmVjdG9yPgor
CisjaW5jbHVkZSA8b3BlbnNzbC9iYXNlLmg+CisKKyNpbmNsdWRlICIuLi9pbnRlcm5hbC5oIgor
CisKKy8vIGFiaV90ZXN0IHByb3ZpZGVzIHJvdXRpbmVzIGZvciB2ZXJpZnlpbmcgdGhhdCBmdW5j
dGlvbnMgc2F0aXNmeSBwbGF0Zm9ybSBBQkkKKy8vIHJlcXVpcmVtZW50cy4KK25hbWVzcGFjZSBh
YmlfdGVzdCB7CisKKy8vIFJlc3VsdCBzdG9yZXMgdGhlIHJlc3VsdCBvZiBhbiBBQkkgdGVzdC4K
K3N0cnVjdCBSZXN1bHQgeworICBib29sIG9rKCkgY29uc3QgeyByZXR1cm4gZXJyb3JzLmVtcHR5
KCk7IH0KKworICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZXJyb3JzOworfTsKKworbmFtZXNw
YWNlIGludGVybmFsIHsKKworLy8gRGVkdWN0aW9uR3VhcmQgd3JhcHMgfFR8IGluIGEgdGVtcGxh
dGUsIHNvIHRoYXQgdGVtcGxhdGUgYXJndW1lbnQgZGVkdWN0aW9uCisvLyBkb2VzIG5vdCBhcHBs
eSB0byBpdC4gVGhpcyBtYXkgYmUgdXNlZCB0byBmb3JjZSBDKysgdG8gZGVkdWNlIHRlbXBsYXRl
CisvLyBhcmd1bWVudHMgZnJvbSBhbm90aGVyIHBhcmFtZXRlci4KK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUPgorc3RydWN0IERlZHVjdGlvbkd1YXJkIHsKKyAgdXNpbmcgVHlwZSA9IFQ7Cit9OworCisv
LyBSZWcxMjggY29udGFpbnMgc3RvcmFnZSBzcGFjZSBmb3IgYSAxMjgtYml0IHJlZ2lzdGVyLgor
c3RydWN0IGFsaWduYXMoMTYpIFJlZzEyOCB7CisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWcx
MjggJngpIGNvbnN0IHsgcmV0dXJuIHgubG8gPT0gbG8gJiYgeC5oaSA9PSBoaTsgfQorICBib29s
IG9wZXJhdG9yIT0oY29uc3QgUmVnMTI4ICZ4KSBjb25zdCB7IHJldHVybiAhKCgqdGhpcykgPT0g
eCk7IH0KKyAgdWludDY0X3QgbG8sIGhpOworfTsKKworLy8gTE9PUF9DQUxMRVJfU1RBVEVfUkVH
SVNURVJTIGlzIGEgbWFjcm8gdGhhdCBpdGVyYXRlcyBvdmVyIGFsbCByZWdpc3RlcnMgdGhlCisv
LyBjYWxsZWUgaXMgZXhwZWN0ZWQgdG8gc2F2ZSBmb3IgdGhlIGNhbGxlciwgd2l0aCB0aGUgZXhj
ZXB0aW9uIG9mIHRoZSBzdGFjaworLy8gcG9pbnRlci4gVGhlIHN0YWNrIHBvaW50ZXIgaXMgdGVz
dGVkIGltcGxpY2l0bHkgYnkgdGhlIGZ1bmN0aW9uIHN1Y2Nlc3NmdWxseQorLy8gcmV0dXJuaW5n
IGF0IGFsbC4KKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KQorCisvLyBSZWZlcmVuY2VzOgor
Ly8gU3lzVjY0OiBodHRwczovL2dpdGh1Yi5jb20vaGpsLXRvb2xzL3g4Ni1wc0FCSS93aWtpL3g4
Ni02NC1wc0FCSS0xLjAucGRmCisvLyBXaW42NDogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20v
ZW4tdXMvY3BwL2J1aWxkL3g2NC1zb2Z0d2FyZS1jb252ZW50aW9ucz92aWV3PXZzLTIwMTcjcmVn
aXN0ZXItdXNhZ2UKKyNpZiBkZWZpbmVkKE9QRU5TU0xfV0lORE9XUykKKyNkZWZpbmUgTE9PUF9D
QUxMRVJfU1RBVEVfUkVHSVNURVJTKCkgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2
NF90LCByYngpIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCByYnApIFwKKyAg
Q0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCByZGkpIFwKKyAgQ0FMTEVSX1NUQVRFX1JF
R0lTVEVSKHVpbnQ2NF90LCByc2kpIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90
LCByMTIpIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCByMTMpIFwKKyAgQ0FM
TEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCByMTQpIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lT
VEVSKHVpbnQ2NF90LCByMTUpIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1t
NikgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1tNykgIFwKKyAgQ0FMTEVS
X1NUQVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1tOCkgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVS
KFJlZzEyOCwgeG1tOSkgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1tMTAp
IFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1tMTEpIFwKKyAgQ0FMTEVSX1NU
QVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1tMTIpIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKFJl
ZzEyOCwgeG1tMTMpIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1tMTQpIFwK
KyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKFJlZzEyOCwgeG1tMTUpCisjZWxzZQorI2RlZmluZSBM
T09QX0NBTExFUl9TVEFURV9SRUdJU1RFUlMoKSAgXAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIo
dWludDY0X3QsIHJieCkgXAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIodWludDY0X3QsIHJicCkg
XAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIodWludDY0X3QsIHIxMikgXAorICBDQUxMRVJfU1RB
VEVfUkVHSVNURVIodWludDY0X3QsIHIxMykgXAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIodWlu
dDY0X3QsIHIxNCkgXAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIodWludDY0X3QsIHIxNSkKKyNl
bmRpZiAgLy8gT1BFTlNTTF9XSU5ET1dTCisKKyNlbGlmIGRlZmluZWQoT1BFTlNTTF9YODYpCisK
Ky8vIFJlZmVyZW5jZXM6CisvLyBTeXNWMzI6IGh0dHBzOi8vdWNsaWJjLm9yZy9kb2NzL3BzQUJJ
LWkzODYucGRmIGFuZAorLy8gV2luMzI6IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVz
L2NwcC9jcHAvYXJndW1lbnQtcGFzc2luZy1hbmQtbmFtaW5nLWNvbnZlbnRpb25zP3ZpZXc9dnMt
MjAxNworI2RlZmluZSBMT09QX0NBTExFUl9TVEFURV9SRUdJU1RFUlMoKSAgXAorICBDQUxMRVJf
U1RBVEVfUkVHSVNURVIodWludDMyX3QsIGVzaSkgXAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIo
dWludDMyX3QsIGVkaSkgXAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIodWludDMyX3QsIGVieCkg
XAorICBDQUxMRVJfU1RBVEVfUkVHSVNURVIodWludDMyX3QsIGVicCkKKworI2VsaWYgZGVmaW5l
ZChPUEVOU1NMX0FSTSkKKworLy8gUmVmZXJlbmNlczoKKy8vIEFBUENTOiBodHRwOi8vaW5mb2Nl
bnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuaWhpMDA0MmYvSUhJMDA0MkZfYWFw
Y3MucGRmCisvLyBpT1MzMjogaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvYXJj
aGl2ZS9kb2N1bWVudGF0aW9uL1hjb2RlL0NvbmNlcHR1YWwvaVBob25lT1NBQklSZWZlcmVuY2Uv
QXJ0aWNsZXMvQVJNdjZGdW5jdGlvbkNhbGxpbmdDb252ZW50aW9ucy5odG1sCisvLyBMaW51eDog
aHR0cDovL3NvdXJjZXJ5Lm1lbnRvci5jb20vc2dwcC9saXRlL2FybS9wb3J0YWwva2JhdHRhY2gx
NDIvYXJtX2dudV9saW51eF8lMjBhYmkucGRmCisvLworLy8gQVJNIHNwZWNpZmllcyBhIGNvbW1v
biBjYWxsaW5nIGNvbnZlbnRpb24sIGV4Y2VwdCByOSBpcyBsZWZ0IHRvIHRoZSBwbGF0Zm9ybS4K
Ky8vIExpbnV4IHRyZWF0cyByOSBhcyBjYWxsZWUtc2F2ZWQsIHdoaWxlIGlPUyAzKyB0cmVhdHMg
aXQgYXMgY2FsbGVyLXNhdmVkLiBNb3N0CisvLyBvZiBvdXIgYXNzZW1ibHkgdHJlYXRzIGl0IGFz
IGNhbGxlZS1zYXZlZCB0byBiZSB1bmlmb3JtLCBidXQgd2UgbWF0Y2ggdGhlCisvLyBwbGF0Zm9y
bSB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMgd2hlbiB0ZXN0aW5nIGNvbXBpbGVyLWdlbmVyYXRl
ZCBvdXRwdXQuCisjZGVmaW5lIExPT1BfQ0FMTEVSX1NUQVRFX1JFR0lTVEVSU19QUkVfUjkoKSBc
CisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1aW50NjRfdCwgZDgpICAgICAgICBcCisgIENBTExF
Ul9TVEFURV9SRUdJU1RFUih1aW50NjRfdCwgZDkpICAgICAgICBcCisgIENBTExFUl9TVEFURV9S
RUdJU1RFUih1aW50NjRfdCwgZDEwKSAgICAgICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1
aW50NjRfdCwgZDExKSAgICAgICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1aW50NjRfdCwg
ZDEyKSAgICAgICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1aW50NjRfdCwgZDEzKSAgICAg
ICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1aW50NjRfdCwgZDE0KSAgICAgICBcCisgIENB
TExFUl9TVEFURV9SRUdJU1RFUih1aW50NjRfdCwgZDE1KSAgICAgICBcCisgIENBTExFUl9TVEFU
RV9SRUdJU1RFUih1aW50MzJfdCwgcjQpICAgICAgICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RF
Uih1aW50MzJfdCwgcjUpICAgICAgICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1aW50MzJf
dCwgcjYpICAgICAgICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1aW50MzJfdCwgcjcpICAg
ICAgICBcCisgIENBTExFUl9TVEFURV9SRUdJU1RFUih1aW50MzJfdCwgcjgpCisjZGVmaW5lIExP
T1BfQ0FMTEVSX1NUQVRFX1JFR0lTVEVSU19QT1NUX1I5KCkgXAorICBDQUxMRVJfU1RBVEVfUkVH
SVNURVIodWludDMyX3QsIHIxMCkgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVp
bnQzMl90LCByMTEpCisjaWYgZGVmaW5lZChPUEVOU1NMX0FQUExFKQorI2RlZmluZSBMT09QX0NB
TExFUl9TVEFURV9SRUdJU1RFUlMoKSAgXAorICBMT09QX0NBTExFUl9TVEFURV9SRUdJU1RFUlNf
UFJFX1I5KCkgXAorICBMT09QX0NBTExFUl9TVEFURV9SRUdJU1RFUlNfUE9TVF9SOSgpCisjZWxz
ZSAgLy8gIU9QRU5TU0xfQVBQTEUKKyNkZWZpbmUgTE9PUF9DQUxMRVJfU1RBVEVfUkVHSVNURVJT
KCkgIFwKKyAgTE9PUF9DQUxMRVJfU1RBVEVfUkVHSVNURVJTX1BSRV9SOSgpIFwKKyAgQ0FMTEVS
X1NUQVRFX1JFR0lTVEVSKHVpbnQzMl90LCByOSkgIFwKKyAgTE9PUF9DQUxMRVJfU1RBVEVfUkVH
SVNURVJTX1BPU1RfUjkoKQorI2VuZGlmICAvLyBPUEVOU1NMX0FQUExFCisKKyNlbGlmIGRlZmlu
ZWQoT1BFTlNTTF9BQVJDSDY0KQorCisvLyBSZWZlcmVuY2VzOgorLy8gQUFQQ1M2NDogaHR0cDov
L2luZm9jZW50ZXIuYXJtLmNvbS9oZWxwL3RvcGljL2NvbS5hcm0uZG9jLmloaTAwNTViL0lISTAw
NTVCX2FhcGNzNjQucGRmCisvLyBpT1M2NDogaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xp
YnJhcnkvYXJjaGl2ZS9kb2N1bWVudGF0aW9uL1hjb2RlL0NvbmNlcHR1YWwvaVBob25lT1NBQklS
ZWZlcmVuY2UvQXJ0aWNsZXMvQVJNNjRGdW5jdGlvbkNhbGxpbmdDb252ZW50aW9ucy5odG1sCisv
LworLy8gSW4gYWFyY2g2NCwgcjE4IChhY2Nlc3NlZCBhcyB3MTggb3IgeDE4IGluIGEgNjQtYml0
IGNvbnRleHQpIGlzIHRoZSBwbGF0Zm9ybQorLy8gcmVnaXN0ZXIuIGlPUyBzYXlzIHVzZXIgY29k
ZSBtYXkgbm90IHRvdWNoIGl0LiBXZSBmb3VuZCBubyBjbGVhciByZWZlcmVuY2UKKy8vIGZvciBM
aW51eC4gVGhlIGlPUyBiZWhhdmlvciBpbXBsaWVzIHBvcnRhYmxlIGFzc2VtYmx5IGNhbm5vdCB1
c2UgaXQsIGFuZAorLy8gYWFyY2g2NCBoYXMgbWFueSByZWdpc3RlcnMuIFRodXMgdGhpcyBmcmFt
ZXdvcmsgaWdub3JlcyByZWdpc3RlcidzIGV4aXN0ZW5jZS4KKy8vIFdlIHRlc3QgcjE4IHZpb2xh
dGlvbnMgaW4gYXJtLXhsYXRlLnBsLgorI2RlZmluZSBMT09QX0NBTExFUl9TVEFURV9SRUdJU1RF
UlMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAvKiBQZXIgQUFQQ1M2NCwg
c2VjdGlvbiA1LjEuMiwgb25seSB0aGUgYm90dG9tIDY0IGJpdHMgb2YgdjgtdjE1ICovIFwKKyAg
LyogYXJlIHByZXNlcnZlZC4gVGhlc2UgYXJlIGFjY2Vzc2VkIGFzIGROLiAqLyAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCBkOCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2
NF90LCBkOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRF
X1JFR0lTVEVSKHVpbnQ2NF90LCBkMTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCBkMTEpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCBkMTIpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVp
bnQ2NF90LCBkMTMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NU
QVRFX1JFR0lTVEVSKHVpbnQ2NF90LCBkMTQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCBkMTUpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgLyogRm9yIGNvbnNpc3RlbmN5IHdpdGggZE4sIHVzZSB0aGUg
NjQtYml0IG5hbWUgeE4sIHJhdGhlciB0aGFuICovIFwKKyAgLyogdGhlIGdlbmVyaWMgck4uICov
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVS
X1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCB4MTkpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCB4MjApICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCB4
MjEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lT
VEVSKHVpbnQ2NF90LCB4MjIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FM
TEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCB4MjMpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCB4MjQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90
LCB4MjUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JF
R0lTVEVSKHVpbnQ2NF90LCB4MjYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
Q0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCB4MjcpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2NF90LCB4MjgpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQ0FMTEVSX1NUQVRFX1JFR0lTVEVSKHVpbnQ2
NF90LCB4MjkpCisKKyNlbmRpZiAgLy8gWDg2XzY0IHx8IFg4NiB8fCBBUk0gfHwgQUFSQ0g2NAor
CisvLyBFbmFibGUgQUJJIHRlc3RpbmcgaWYgYWxsIG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWUu
CisvLworLy8gLSBXZSBoYXZlIENhbGxlclN0YXRlIGFuZCB0cmFtcG9saW5lIHN1cHBvcnQgZm9y
IHRoZSBhcmNoaXRlY3R1cmUuCisvLworLy8gLSBBc3NlbWJseSBpcyBlbmFibGVkLgorLy8KKy8v
IC0gVGhpcyBpcyBub3QgYSBzaGFyZWQgbGlicmFyeSBidWlsZC4gQXNzZW1ibHkgZnVuY3Rpb25z
IGFyZSBub3QgcmVhY2hhYmxlCisvLyAgIGZyb20gdGVzdHMgaW4gc2hhcmVkIGxpYnJhcnkgYnVp
bGRzLgorI2lmIGRlZmluZWQoTE9PUF9DQUxMRVJfU1RBVEVfUkVHSVNURVJTKSAmJiAhZGVmaW5l
ZChPUEVOU1NMX05PX0FTTSkgJiYgXAorICAgICFkZWZpbmVkKEJPUklOR1NTTF9TSEFSRURfTElC
UkFSWSkKKyNkZWZpbmUgU1VQUE9SVFNfQUJJX1RFU1QKKworLy8gQ2FsbGVyU3RhdGUgY29udGFp
bnMgYWxsIGNhbGxlciBzdGF0ZSB0aGF0IHRoZSBjYWxsZWUgaXMgZXhwZWN0ZWQgdG8KKy8vIHBy
ZXNlcnZlLgorc3RydWN0IENhbGxlclN0YXRlIHsKKyNkZWZpbmUgQ0FMTEVSX1NUQVRFX1JFR0lT
VEVSKHR5cGUsIG5hbWUpIHR5cGUgbmFtZTsKKyAgTE9PUF9DQUxMRVJfU1RBVEVfUkVHSVNURVJT
KCkKKyN1bmRlZiBDQUxMRVJfU1RBVEVfUkVHSVNURVIKK307CisKKy8vIFJ1blRyYW1wb2xpbmUg
cnVucyB8ZnVuY3wgb24gfGFyZ3Z8LCByZWNvcmRpbmcgQUJJIGVycm9ycyBpbiB8b3V0fC4gSXQg
ZG9lcworLy8gbm90IHBlcmZvcm0gYW55IHR5cGUtY2hlY2tpbmcuIElmIHx1bndpbmR8IGlzIHRy
dWUgYW5kIHVud2luZCB0ZXN0cyBoYXZlIGJlZW4KKy8vIGVuYWJsZWQsIHxmdW5jfCBpcyBzaW5n
bGUtc3RlcHBlZCB1bmRlciBhbiB1bndpbmQgdGVzdC4KK2NyeXB0b193b3JkX3QgUnVuVHJhbXBv
bGluZShSZXN1bHQgKm91dCwgY3J5cHRvX3dvcmRfdCBmdW5jLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNyeXB0b193b3JkX3QgKmFyZ3YsIHNpemVfdCBhcmdjLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdW53aW5kKTsKKwordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CitpbmxpbmUgY3J5cHRvX3dvcmRfdCBUb1dvcmQoVCB0KSB7CisjaWYgIWRlZmluZWQoT1BF
TlNTTF9YODYpICYmICFkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSAmJiBcCisgICAgIWRlZmluZWQo
T1BFTlNTTF9BUk0pICYmICFkZWZpbmVkKE9QRU5TU0xfQUFSQ0g2NCkKKyNlcnJvciAiVW5rbm93
biBhcmNoaXRlY3R1cmUiCisjZW5kaWYKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPD0gc2l6
ZW9mKGNyeXB0b193b3JkX3QpLAorICAgICAgICAgICAgICAgICJUIGlzIGxhcmdlciB0aGFuIGNy
eXB0b193b3JkX3QiKTsKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPj0gNCwgInR5cGVzIHVu
ZGVyIGZvdXIgYnl0ZXMgYXJlIGNvbXBsaWNhdGVkIik7CisKKyAgLy8gQUJJcyBhcmUgY29tcGxl
eCBhcm91bmQgYXJndW1lbnRzIHRoYXQgYXJlIHNtYWxsZXIgdGhhbiBuYXRpdmUgd29yZHMuIEZv
cgorICAvLyAzMi1iaXQgYXJjaGl0ZWN0dXJlcywgdGhlIHJ1bGVzIGFib3ZlIGltcGx5IHdlIG9u
bHkgaGF2ZSB3b3JkLXNpemVkCisgIC8vIGFyZ3VtZW50cy4gRm9yIDY0LWJpdCBhcmNoaXRlY3R1
cmVzLCB3ZSBzdGlsbCBoYXZlIGFzc2VtYmx5IGZ1bmN0aW9ucyB3aGljaAorICAvLyB0YWtlIHxp
bnR8LgorICAvLworICAvLyBGb3IgYWFyY2g2NCwgQUFQQ1M2NCwgc2VjdGlvbiA1LjQuMiwgY2xh
dXNlcyBDLjcgYW5kIEMuMTQgc2F5cyBhbnkKKyAgLy8gcmVtYWluaW5nIGJpdHMgYXJlIHVuc3Bl
Y2lmaWVkLiBpT1M2NCBjb250cmFkaWN0cyB0aGlzIGFuZCBzYXlzIHRoZSBjYWxsZWUKKyAgLy8g
ZXh0ZW5kcyBhcmd1bWVudHMgdXAgdG8gMzIgYml0cywgYW5kIG9ubHkgdGhlIHVwcGVyIDMyIGJp
dHMgYXJlCisgIC8vIHVuc3BlY2lmaWVkLiBSZWplY3RpbmcgcGFyYW1ldGVycyBzbWFsbGVyIHRo
YW4gMzIgYml0cyBhdm9pZHMgdGhlCisgIC8vIGRpdmVyZ2VuY2UuCisgIC8vCisgIC8vIFRPRE8o
ZGF2aWRiZW4pOiBGaW5kIGF1dGhvcml0YXRpdmUgY2l0YXRpb25zIGZvciB4ODZfNjQuIEZvciB4
ODZfNjQsIEkKKyAgLy8gb2JzZXJ2ZWQgdGhlIGJlaGF2aW9yIG9mIENsYW5nLCBHQ0MsIGFuZCBN
U1ZDLiBBQkkgcnVsZXMgaGVyZSBtYXkgYmUKKyAgLy8gaW5mZXJyZWQgZnJvbSB0d28ga2luZHMg
b2YgZXhwZXJpbWVudHM6CisgIC8vCisgIC8vIDEuIFdoZW4gcGFzc2luZyBhIHZhbHVlIHRvIGEg
c21hbGwtYXJndW1lbnQtdGFraW5nIGZ1bmN0aW9uLCBkb2VzIHRoZQorICAvLyAgICBjb21waWxl
ciBlbnN1cmUgdW51c2VkIGJpdHMgYXJlIGNsZWFyZWQsIHNpZ24tZXh0ZW5kZWQsIGV0Yy4/IFRl
c3RzIGZvcgorICAvLyAgICByZWdpc3RlciBwYXJhbWV0ZXJzIGFyZSBjb25mb3VuZGVkIGJ5IHg4
Nl82NCdzIGltcGxpY2l0IGNsZWFyaW5nIG9mCisgIC8vICAgIHJlZ2lzdGVycycgdXBwZXIgaGFs
dmVzLCBidXQgcGFzc2luZyBzb21lX3U2NCA+PiAxIHVzdWFsbHkgY2xlYXJzIHRoaXMuCisgIC8v
CisgIC8vIDIuIFdoZW4gY29tcGlsaW5nIGEgc21hbGwtYXJndW1lbnQtdGFraW5nIGZ1bmN0aW9u
LCBkb2VzIHRoZSBjb21waWxlciBtYWtlCisgIC8vICAgIGFzc3VtcHRpb25zIGFib3V0IHVudXNl
ZCBiaXRzIG9mIGFyZ3VtZW50cz8KKyAgLy8KKyAgLy8gTVNWQyBmb3IgeDg2XzY0IGlzIHN0cmFp
Z2h0Zm9yd2FyZC4gSXQgYXBwZWFycyB0byB0b2xlcmF0ZSBhbmQgcHJvZHVjZQorICAvLyBhcmJp
dHJhcnkgdmFsdWVzIGZvciB1bnVzZWQgYml0cywgbGlrZSBBQVBDUzY0LgorICAvLworICAvLyBH
Q0MgYW5kIENsYW5nIGZvciB4ODZfNjQgYXJlIG1vcmUgY29tcGxleC4gVGhleSBtYXRjaCBNU1ZD
IGZvciBzdGFjaworICAvLyBwYXJhbWV0ZXJzLiBIb3dldmVyLCBmb3IgcmVnaXN0ZXIgcGFyYW1l
dGVycywgdGhleSBiZWhhdmUgbGlrZSBpT1M2NCBhbmQsCisgIC8vIGFzIGNhbGxlcnMsIGV4dGVu
ZCB1cCB0byAzMiBiaXRzLCBsZWF2aW5nIHRoZSByZW1haW5kZXIgYXJiaXRyYXJ5LiBXaGVuCisg
IC8vIGNvbXBpbGluZyBhIGNhbGxlZSwgQ2xhbmcgdGFrZXMgYWR2YW50YWdlIG9mIHRoaXMgY29u
dmVyc2lvbiwgYnV0IEkgd2FzCisgIC8vIHVuYWJsZSB0byBtYWtlIEdDQyBkbyBzby4KKyAgLy8K
KyAgLy8gTm90ZSB0aGF0LCBhbHRob3VnaCB0aGUgV2luNjQgcnVsZXMgYXJlIHN1ZmZpY2llbnQg
dG8gcmVxdWlyZSBvdXIgYXNzZW1ibHkKKyAgLy8gYmUgY29uc2VydmF0aXZlLCB3ZSB3aXNoIGZv
ciB8Q0hFQ0tfQUJJfCB0byBzdXBwb3J0IEMtY29tcGlsZWQgZnVuY3Rpb25zLAorICAvLyBzbyBp
dCBtdXN0IGVuZm9yY2UgdGhlIGNvcnJlY3QgcnVsZXMgZm9yIGVhY2ggcGxhdGZvcm0uCisgIC8v
CisgIC8vIEZvcnR1bmF0ZWx5LCB0aGUgfHN0YXRpY19hc3NlcnR8cyBhYm92ZSBjYXVzZSBhbGwg
c3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMKKyAgLy8gdG8gYmVoYXZlIHRoZSBzYW1lLgorICBjcnlw
dG9fd29yZF90IHJldDsKKyAgLy8gRmlsbGluZyBleHRyYSBiaXRzIHdpdGggMHhhYSB3aWxsIGJl
IHZhc3RseSBvdXQgb2YgYm91bmRzIGZvciBjb2RlCisgIC8vIGV4cGVjdGluZyBlaXRoZXIgc2ln
bi0gb3IgemVyby1leHRlbnNpb24uICgweGFhIGlzIDBiMTAxMDEwMTAuKQorICBPUEVOU1NMX21l
bXNldCgmcmV0LCAweGFhLCBzaXplb2YocmV0KSk7CisgIE9QRU5TU0xfbWVtY3B5KCZyZXQsICZ0
LCBzaXplb2YodCkpOworICByZXR1cm4gcmV0OworfQorCisvLyBDaGVja0ltcGwgcnVucyB8ZnVu
Y3wgb24gfGFyZ3N8LCByZWNvcmRpbmcgQUJJIGVycm9ycyBpbiB8b3V0fC4gSWYgfHVud2luZHwK
Ky8vIGlzIHRydWUgYW5kIHVud2luZCB0ZXN0cyBoYXZlIGJlZW4gZW5hYmxlZCwgfGZ1bmN8IGlz
IHNpbmdsZS1zdGVwcGVkIHVuZGVyIGFuCisvLyB1bndpbmQgdGVzdC4KKy8vCisvLyBJdCByZXR1
cm5zIHRoZSB2YWx1ZSBhcyBhIHxjcnlwdG9fd29yZF90fCB0byB3b3JrIGFyb3VuZCBwcm9ibGVt
cyB3aGVuIHxSfCBpcworLy8gdm9pZC4gfGFyZ3N8IGlzIHdyYXBwZWQgaW4gYSB8RGVkdWN0aW9u
R3VhcmR8IHNvIHxmdW5jfCBkZXRlcm1pbmVzIHRoZQorLy8gdGVtcGxhdGUgYXJndW1lbnRzLiBP
dGhlcndpc2UsIHxhcmdzfCBtYXkgZGVkdWNlIHxBcmdzfCBpbmNvcnJlY3RseS4gRm9yCisvLyBp
bnN0YW5jZSwgaWYgfGZ1bmN8IHRha2VzIGNvbnN0IGludCAqLCBhbmQgdGhlIGNhbGxlciBwYXNz
ZXMgYW4gaW50ICosIHRoZQorLy8gY29tcGlsZXIgd2lsbCBjb21wbGFpbiB0aGUgZGVkdWNlZCB0
eXBlcyBkbyBub3QgbWF0Y2guCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgdHlwZW5hbWUuLi4gQXJn
cz4KK2lubGluZSBjcnlwdG9fd29yZF90IENoZWNrSW1wbChSZXN1bHQgKm91dCwgYm9vbCB1bndp
bmQsIFIgKCpmdW5jKShBcmdzLi4uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
eXBlbmFtZSBEZWR1Y3Rpb25HdWFyZDxBcmdzPjo6VHlwZS4uLiBhcmdzKSB7CisgIC8vIFdlIG9u
bHkgc3VwcG9ydCB1cCB0byA4IGFyZ3VtZW50cy4gVGhpcyBlbnN1cmVzIGFsbCBhcmd1bWVudHMg
b24gYWFyY2g2NAorICAvLyBhcmUgcGFzc2VkIGluIHJlZ2lzdGVycyBhbmQgYXZvaWRzIHRoZSBp
T1MgZGVzY3JlcGFuY3kgYXJvdW5kIHBhY2tpbmcgc21hbGwKKyAgLy8gYXJndW1lbnRzIG9uIHRo
ZSBzdGFjay4KKyAgLy8KKyAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkv
YXJjaGl2ZS9kb2N1bWVudGF0aW9uL1hjb2RlL0NvbmNlcHR1YWwvaVBob25lT1NBQklSZWZlcmVu
Y2UvQXJ0aWNsZXMvQVJNNjRGdW5jdGlvbkNhbGxpbmdDb252ZW50aW9ucy5odG1sCisgIHN0YXRp
Y19hc3NlcnQoc2l6ZW9mLi4uKGFyZ3MpIDw9IDgsCisgICAgICAgICAgICAgICAgInRvbyBtYW55
IGFyZ3VtZW50cyBmb3IgYWJpX3Rlc3RfdHJhbXBvbGluZSIpOworCisgIC8vIEFsbG9jYXRlIG9u
ZSBleHRyYSBlbnRyeSBzbyBNU1ZDIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IHplcm8tc2l6ZSBh
cnJheXMuCisgIGNyeXB0b193b3JkX3QgYXJndltzaXplb2YuLi4oYXJncykgKyAxXSA9IHsKKyAg
ICAgIFRvV29yZChhcmdzKS4uLiwKKyAgfTsKKyAgcmV0dXJuIFJ1blRyYW1wb2xpbmUob3V0LCBy
ZWludGVycHJldF9jYXN0PGNyeXB0b193b3JkX3Q+KGZ1bmMpLCBhcmd2LAorICAgICAgICAgICAg
ICAgICAgICAgICBzaXplb2YuLi4oYXJncyksIHVud2luZCk7Cit9CisjZWxzZQorLy8gVG8gc2lt
cGxpZnkgY2FsbGVycyB3aGVuIEFCSSB0ZXN0aW5nIHN1cHBvcnQgaXMgdW5hdm9pZGFibGUsIHBy
b3ZpZGUgYSBiYWNrdXAKKy8vIENoZWNrSW1wbCBpbXBsZW1lbnRhdGlvbi4gSXQgbXVzdCBiZSBz
cGVjaWFsaXplZCBmb3Igdm9pZCByZXR1cm5zIGJlY2F1c2Ugd2UKKy8vIGNhbGwgfGZ1bmN8IGRp
cmVjdGx5LgordGVtcGxhdGUgPHR5cGVuYW1lIFIsIHR5cGVuYW1lLi4uIEFyZ3M+CitpbmxpbmUg
dHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfdm9pZDxSPjo6dmFsdWUsIGNyeXB0b193
b3JkX3Q+Ojp0eXBlCitDaGVja0ltcGwoUmVzdWx0ICpvdXQsIGJvb2wgLyogdW53aW5kICovLCBS
ICgqZnVuYykoQXJncy4uLiksCisgICAgICAgICAgdHlwZW5hbWUgRGVkdWN0aW9uR3VhcmQ8QXJn
cz46OlR5cGUuLi4gYXJncykgeworICAqb3V0ID0gUmVzdWx0KCk7CisgIHJldHVybiBmdW5jKGFy
Z3MuLi4pOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4KK2lubGluZSBjcnlwdG9f
d29yZF90IENoZWNrSW1wbChSZXN1bHQgKm91dCwgYm9vbCAvKiB1bndpbmQgKi8sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmZ1bmMpKEFyZ3MuLi4pLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIERlZHVjdGlvbkd1YXJkPEFyZ3M+OjpUeXBl
Li4uIGFyZ3MpIHsKKyAgKm91dCA9IFJlc3VsdCgpOworICBmdW5jKGFyZ3MuLi4pOworICByZXR1
cm4gMDsKK30KKyNlbmRpZiAgLy8gU1VQUE9SVFNfQUJJX1RFU1QKKworLy8gRml4VkFBcmdzU3Ry
aW5nIHRha2VzIGEgc3RyaW5nIGxpa2UgImYsIDEsIDIiIGFuZCByZXR1cm5zIGEgc3RyaW5nIGxp
a2UKKy8vICJmKDEsIDIpIi4KKy8vCisvLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSB8Q0hF
Q0tfQUJJfCBtYWNybyBiZWxvdyBjYW5ub3QgYmUgZGVmaW5lZCBhcworLy8gQ0hFQ0tfQUJJKGZ1
bmMsIC4uLikuIFRoZSBDIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgdGhhdCB2YXJpYWRpYyBtYWNy
b3MgYmluZAorLy8gYXQgbGVhc3Qgb25lIHZhcmlhZGljIGFyZ3VtZW50LiBDbGFuZywgR0NDLCBh
bmQgTVNWQyBhbGwgaWdub3JlIHRoaXMsIGJ1dAorLy8gdGhlcmUgYXJlIGlzc3VlcyB3aXRoIHRy
YWlsaW5nIGNvbW1hcyBhbmQgZGlmZmVyZW50IGJlaGF2aW9ycyBhY3Jvc3MKKy8vIGNvbXBpbGVy
cy4KK3N0ZDo6c3RyaW5nIEZpeFZBQXJnc1N0cmluZyhjb25zdCBjaGFyICpzdHIpOworCisvLyBD
aGVja0dUZXN0IGJlaGF2ZXMgbGlrZSB8Q2hlY2tJbXBsfCwgYnV0IGl0IHJldHVybnMgdGhlIGNv
cnJlY3QgdHlwZSBhbmQKKy8vIHJhaXNlcyBHVGVzdCBhc3NlcnRpb25zIG9uIGZhaWx1cmUuIElm
IHx1bndpbmR8IGlzIHRydWUgYW5kIHVud2luZCB0ZXN0cyBhcmUKKy8vIGVuYWJsZWQsIHxmdW5j
fCBpcyBzaW5nbGUtc3RlcHBlZCB1bmRlciBhbiB1bndpbmQgdGVzdC4KK3RlbXBsYXRlIDx0eXBl
bmFtZSBSLCB0eXBlbmFtZS4uLiBBcmdzPgoraW5saW5lIFIgQ2hlY2tHVGVzdChjb25zdCBjaGFy
ICp2YV9hcmdzX3N0ciwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCisgICAgICAgICAgICAg
ICAgICAgIGJvb2wgdW53aW5kLCBSICgqZnVuYykoQXJncy4uLiksCisgICAgICAgICAgICAgICAg
ICAgIHR5cGVuYW1lIERlZHVjdGlvbkd1YXJkPEFyZ3M+OjpUeXBlLi4uIGFyZ3MpIHsKKyAgUmVz
dWx0IHJlc3VsdDsKKyAgY3J5cHRvX3dvcmRfdCByZXQgPSBDaGVja0ltcGwoJnJlc3VsdCwgdW53
aW5kLCBmdW5jLCBhcmdzLi4uKTsKKyAgaWYgKCFyZXN1bHQub2soKSkgeworICAgIHRlc3Rpbmc6
Ok1lc3NhZ2UgbXNnOworICAgIG1zZyA8PCAiQUJJIGZhaWx1cmVzIGluICIgPDwgRml4VkFBcmdz
U3RyaW5nKHZhX2FyZ3Nfc3RyKSA8PCAiOlxuIjsKKyAgICBmb3IgKGNvbnN0IGF1dG8gJmVycm9y
IDogcmVzdWx0LmVycm9ycykgeworICAgICAgbXNnIDw8ICIgICAgIiA8PCBlcnJvciA8PCAiXG4i
OworICAgIH0KKyAgICBBRERfRkFJTFVSRV9BVChmaWxlLCBsaW5lKSA8PCBtc2c7CisgIH0KKyAg
cmV0dXJuIChSKXJldDsKK30KKworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisKKy8vIENoZWNr
IHJ1bnMgfGZ1bmN8IG9uIHxhcmdzfCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LiBJZiBBQkktdGVz
dGluZyBpcworLy8gc3VwcG9ydGVkIGluIHRoaXMgYnVpbGQgY29uZmlndXJhdGlvbiwgaXQgd3Jp
dGVzIGFueSBBQkkgZmFpbHVyZXMgdG8gfG91dHwuCisvLyBPdGhlcndpc2UsIGl0IHJ1bnMgdGhl
IGZ1bmN0aW9uIHRyYW5zcGFyZW50bHkuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgdHlwZW5hbWUu
Li4gQXJncz4KK2lubGluZSBSIENoZWNrKFJlc3VsdCAqb3V0LCBSICgqZnVuYykoQXJncy4uLiks
CisgICAgICAgICAgICAgICB0eXBlbmFtZSBpbnRlcm5hbDo6RGVkdWN0aW9uR3VhcmQ8QXJncz46
OlR5cGUuLi4gYXJncykgeworICByZXR1cm4gKFIpaW50ZXJuYWw6OkNoZWNrSW1wbChvdXQsIGZh
bHNlLCBmdW5jLCBhcmdzLi4uKTsKK30KKworLy8gRW5hYmxlVW53aW5kVGVzdHMgZW5hYmxlcyB1
bndpbmQgdGVzdHMsIGlmIHN1cHBvcnRlZC4gSWYgbm90IHN1cHBvcnRlZCwgaXQKKy8vIGRvZXMg
bm90aGluZy4KK3ZvaWQgRW5hYmxlVW53aW5kVGVzdHMoKTsKKworLy8gVW53aW5kVGVzdHNFbmFi
bGVkIHJldHVybnMgdHJ1ZSBpZiB1bndpbmQgdGVzdHMgYXJlIGVuYWJsZWQgYW5kIGZhbHNlCisv
LyBvdGhlcndpc2UuCitib29sIFVud2luZFRlc3RzRW5hYmxlZCgpOworCit9ICAvLyBuYW1lc3Bh
Y2UgYWJpX3Rlc3QKKworLy8gQ0hFQ0tfQUJJIGNhbGxzIHRoZSBmaXJzdCBhcmd1bWVudCBvbiB0
aGUgcmVtYWluaW5nIGFyZ3VtZW50cyBhbmQgcmV0dXJucyB0aGUKKy8vIHJlc3VsdC4gSWYgQUJJ
LXRlc3RpbmcgaXMgc3VwcG9ydGVkIGluIHRoaXMgYnVpbGQgY29uZmlndXJhdGlvbiwgaXQgYWRk
cyBhCisvLyBub24tZmF0YWwgR1Rlc3QgZmFpbHVyZSBpZiB0aGUgY2FsbCBkaWQgbm90IHNhdGlz
ZnkgQUJJIHJlcXVpcmVtZW50cy4KKy8vCisvLyB8Q0hFQ0tfQUJJfCBkb2VzIHJldHVybiB0aGUg
dmFsdWUgYW5kIHRodXMgbWF5IHJlcGxhY2UgYW55IGZ1bmN0aW9uIGNhbGwsCisvLyBwcm92aWRl
ZCBpdCB0YWtlcyBvbmx5IHNpbXBsZSBwYXJhbWV0ZXJzLiBIb3dldmVyLCBpdCBpcyByZWNvbW1l
bmRlZCB0byB0ZXN0CisvLyBBQkkgc2VwYXJhdGVseSBmcm9tIGZ1bmN0aW9uYWwgdGVzdHMgb2Yg
YXNzZW1ibHkuIEZ1bGx5IGluc3RydW1lbnRpbmcgYQorLy8gZnVuY3Rpb24gZm9yIEFCSSBjaGVj
a2luZyByZXF1aXJlcyBzaW5nbGUtc3RlcHBpbmcgdGhlIGZ1bmN0aW9uLCB3aGljaCBpcworLy8g
aW5lZmZpY2llbnQuCisvLworLy8gRnVuY3Rpb25hbCB0ZXN0aW5nIHJlcXVpcmVzIGNvdmVyYWdl
IG9mIGlucHV0IHZhbHVlcywgd2hpbGUgQUJJIHRlc3Rpbmcgb25seQorLy8gcmVxdWlyZXMgYnJh
bmNoIGNvdmVyYWdlLiBNb3N0IG9mIG91ciBhc3NlbWJseSBpcyBjb25zdGFudC10aW1lLCBzbyB1
c3VhbGx5CisvLyBvbmx5IGEgZmV3IGluc3RydW1lbnRlZCBjYWxscyBhcmUgbmVjZXNzYXJ5Lgor
Ly8KKy8vIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vYm9yaW5nc3NsLzI1OSk6IE1vc3Qgb2YgV2lu
ZG93cyBhc3NlbWJseSBjdXJyZW50bHkKKy8vIGZhaWxzIFNFSCB0ZXN0aW5nLiBGb3Igbm93LCB8
Q0hFQ0tfQUJJfCBiZWhhdmVzIGxpa2UgfENIRUNLX0FCSV9OT19VTldJTkR8CisvLyBvbiBXaW5k
b3dzLiBGdW5jdGlvbnMgd2hpY2ggd29yayB3aXRoIHVud2luZCB0ZXN0aW5nIG9uIFdpbmRvd3Mg
c2hvdWxkIHVzZQorLy8gfENIRUNLX0FCSV9TRUh8LgorI2lmIGRlZmluZWQoT1BFTlNTTF9XSU5E
T1dTKQorI2RlZmluZSBDSEVDS19BQkkoLi4uKSBDSEVDS19BQklfTk9fVU5XSU5EKF9fVkFfQVJH
U19fKQorI2Vsc2UKKyNkZWZpbmUgQ0hFQ0tfQUJJKC4uLikgQ0hFQ0tfQUJJX1NFSChfX1ZBX0FS
R1NfXykKKyNlbmRpZgorCisvLyBDSEVDS19BQklfU0VIIGJlaGF2ZXMgbGlrZSB8Q0hFQ0tfQUJJ
fCBidXQgZW5hYmxlcyB1bndpbmQgdGVzdGluZyBvbiBXaW5kb3dzLgorI2RlZmluZSBDSEVDS19B
QklfU0VIKC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgYWJpX3Rlc3Q6OmludGVybmFsOjpDaGVja0dUZXN0KCNfX1ZBX0FSR1NfXywgX19GSUxF
X18sIF9fTElORV9fLCB0cnVlLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
X1ZBX0FSR1NfXykKKworLy8gQ0hFQ0tfQUJJX05PX1VOV0lORCBiZWhhdmVzIGxpa2UgfENIRUNL
X0FCSXwgYnV0IGRpc2FibGVzIHVud2luZCB0ZXN0aW5nLgorI2RlZmluZSBDSEVDS19BQklfTk9f
VU5XSU5EKC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
IGFiaV90ZXN0OjppbnRlcm5hbDo6Q2hlY2tHVGVzdCgjX19WQV9BUkdTX18sIF9fRklMRV9fLCBf
X0xJTkVfXywgZmFsc2UsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkFf
QVJHU19fKQorCisKKy8vIEludGVybmFsIGZ1bmN0aW9ucy4KKworI2lmIGRlZmluZWQoU1VQUE9S
VFNfQUJJX1RFU1QpCitzdHJ1Y3QgVW5jYWxsYWJsZSB7CisgIFVuY2FsbGFibGUoKSA9IGRlbGV0
ZTsKK307CisKK2V4dGVybiAiQyIgeworCisvLyBhYmlfdGVzdF90cmFtcG9saW5lIGxvYWRzIGNh
bGxlZS1zYXZlZCByZWdpc3RlcnMgZnJvbSB8c3RhdGV8LCBjYWxscyB8ZnVuY3wKKy8vIHdpdGgg
fGFyZ3Z8LCB0aGVuIHNhdmVzIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGludG8gfHN0YXRl
fC4gSXQgcmV0dXJucworLy8gdGhlIHJlc3VsdCBvZiB8ZnVuY3wuIElmIHx1bndpbmR8IGlzIG5v
bi16ZXJvLCB0aGlzIGZ1bmN0aW9uIHRyaWdnZXJzIHVud2luZAorLy8gaW5zdHJ1bWVudGF0aW9u
LgorLy8KKy8vIFdlIGdpdmUgfGZ1bmN8IHR5cGUgfGNyeXB0b193b3JkX3R8IHRvIGF2b2lkIHRy
aXBwaW5nIE1TVkMncyB3YXJuaW5nIDQxOTEuCitjcnlwdG9fd29yZF90IGFiaV90ZXN0X3RyYW1w
b2xpbmUoY3J5cHRvX3dvcmRfdCBmdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFiaV90ZXN0OjppbnRlcm5hbDo6Q2FsbGVyU3RhdGUgKnN0YXRlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0b193b3JkX3QgKmFyZ3YsIHNpemVfdCBh
cmdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyeXB0b193b3JkX3QgdW53
aW5kKTsKKworI2lmIGRlZmluZWQoT1BFTlNTTF9YODZfNjQpCisvLyBhYmlfdGVzdF91bndpbmRf
c3RhcnQgcG9pbnRzIGF0IHRoZSBpbnN0cnVjdGlvbiB0aGF0IHN0YXJ0cyB1bndpbmQgdGVzdGlu
ZyBpbgorLy8gfGFiaV90ZXN0X3RyYW1wb2xpbmV8LiBUaGlzIGlzIHRoZSB2YWx1ZSBvZiB0aGUg
aW5zdHJ1Y3Rpb24gcG9pbnRlciBhdCB0aGUKKy8vIGZpcnN0IHxTSUdUUkFQfCBkdXJpbmcgdW53
aW5kIHRlc3RpbmcuCisvLworLy8gVGhpcyBzeW1ib2wgaXMgbm90IGEgZnVuY3Rpb24gYW5kIHNo
b3VsZCBub3QgYmUgY2FsbGVkLgordm9pZCBhYmlfdGVzdF91bndpbmRfc3RhcnQoVW5jYWxsYWJs
ZSk7CisKKy8vIGFiaV90ZXN0X3Vud2luZF9yZXR1cm4gcG9pbnRzIGF0IHRoZSBpbnN0cnVjdGlv
biBpbW1lZGlhdGVseSBhZnRlciB0aGUgY2FsbCBpbgorLy8gfGFiaV90ZXN0X3RyYW1wb2xpbmV8
LiBXaGVuIHVud2luZGluZyB0aGUgZnVuY3Rpb24gdW5kZXIgdGVzdCwgdGhpcyBpcyB0aGUKKy8v
IGV4cGVjdGVkIGFkZHJlc3MgaW4gdGhlIHxhYmlfdGVzdF90cmFtcG9saW5lfCBmcmFtZS4gQWZ0
ZXIgdGhpcyBhZGRyZXNzLCB0aGUKKy8vIHVud2luZCB0ZXN0ZXIgc2hvdWxkIGlnbm9yZSB8U0lH
VFJBUHwgdW50aWwgfGFiaV90ZXN0X3Vud2luZF9zdG9wfC4KKy8vCisvLyBUaGlzIHN5bWJvbCBp
cyBub3QgYSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQuCit2b2lkIGFiaV90ZXN0
X3Vud2luZF9yZXR1cm4oVW5jYWxsYWJsZSk7CisKKy8vIGFiaV90ZXN0X3Vud2luZF9zdG9wIGlz
IHRoZSB2YWx1ZSBvZiB0aGUgaW5zdHJ1Y3Rpb24gcG9pbnRlciBhdCB0aGUgZmluYWwKKy8vIHxT
SUdUUkFQfCBkdXJpbmcgdW53aW5kIHRlc3RpbmcuCisvLworLy8gVGhpcyBzeW1ib2wgaXMgbm90
IGEgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkLgordm9pZCBhYmlfdGVzdF91bndp
bmRfc3RvcChVbmNhbGxhYmxlKTsKKworLy8gYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdp
c3RlciBwcmVzZXJ2ZXMgdGhlIEFCSSwgYnV0IGFubm90YXRlcyB0aGUgd3JvbmcKKy8vIHJlZ2lz
dGVyIGluIHVud2luZCBtZXRhZGF0YS4KK3ZvaWQgYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19y
ZWdpc3Rlcih2b2lkKTsKKworLy8gYWJpX3Rlc3RfYmFkX3Vud2luZF90ZW1wb3JhcnkgcHJlc2Vy
dmVzIHRoZSBBQkksIGJ1dCB0ZW1wb3JhcmlseSBjb3JydXB0cyB0aGUKKy8vIHN0b3JhZ2Ugc3Bh
Y2UgZm9yIGEgc2F2ZWQgcmVnaXN0ZXIsIGJyZWFraW5nIHVud2luZC4KK3ZvaWQgYWJpX3Rlc3Rf
YmFkX3Vud2luZF90ZW1wb3Jhcnkodm9pZCk7CisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfV0lORE9X
UykKKy8vIGFiaV90ZXN0X2JhZF91bndpbmRfZXBpbG9nIHByZXNlcnZlcyB0aGUgQUJJLCBhbmQg
Y29ycmVjdGx5IGFubm90YXRlcyB0aGUKKy8vIHByb2xvZywgYnV0IHRoZSBlcGlsb2cgZG9lcyBu
b3QgbWF0Y2ggV2luNjQncyBydWxlcywgYnJlYWtpbmcgdW53aW5kIGR1cmluZworLy8gdGhlIGVw
aWxvZy4KK3ZvaWQgYWJpX3Rlc3RfYmFkX3Vud2luZF9lcGlsb2codm9pZCk7CisjZW5kaWYKKyNl
bmRpZiAgLy8gT1BFTlNTTF9YODZfNjQKKworI2lmIGRlZmluZWQoT1BFTlNTTF9YODZfNjQpIHx8
IGRlZmluZWQoT1BFTlNTTF9YODYpCisvLyBhYmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVjdGlv
bl9mbGFnIGNsZWFycyB0aGUgZGlyZWN0aW9uIGZsYWcuIElmIHRoZSBmbGFnCisvLyB3YXMgcHJl
dmlvdXNseSBzZXQsIGl0IHJldHVybnMgb25lLiBPdGhlcndpc2UsIGl0IHJldHVybnMgemVyby4K
K2ludCBhYmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVjdGlvbl9mbGFnKHZvaWQpOworCisvLyBh
YmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWcgc2V0cyB0aGUgZGlyZWN0aW9uIGZsYWcuIFRoaXMg
ZG9lcyBub3QgY29uZm9ybSB0bworLy8gQUJJIHJlcXVpcmVtZW50cyBhbmQgbXVzdCBvbmx5IGJl
IGNhbGxlZCB3aXRoaW4gYSB8Q0hFQ0tfQUJJfCBndWFyZCB0byBhdm9pZAorLy8gZXJyb3JzIGxh
dGVyIGluIHRoZSBwcm9ncmFtLgoraW50IGFiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxhZyh2b2lk
KTsKKyNlbmRpZiAgLy8gT1BFTlNTTF9YODZfNjQgfHwgT1BFTlNTTF9YODYKKworfSAgLy8gZXh0
ZXJuICJDIgorI2VuZGlmICAvLyBTVVBQT1JUU19BQklfVEVTVAorCisKKyNlbmRpZiAgLy8gT1BF
TlNTTF9IRUFERVJfQUJJX1RFU1RfSApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0L2FzbS90
cmFtcG9saW5lLWFybXY0LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0L2FzbS90cmFtcG9saW5lLWFybXY0
LnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYxMThkZDdiN2I0ODNjZTYzYTBjNWRiMTg0ZTQ3OGI5MjNiNjUxNTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Rlc3QvYXNtL3RyYW1wb2xpbmUtYXJtdjQu
cGwKQEAgLTAsMCArMSwxODIgQEAKKyMhL3Vzci9iaW4vZW52IHBlcmwKKyMgQ29weXJpZ2h0IChj
KSAyMDE5LCBHb29nbGUgSW5jLgorIworIyBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyMgcHVycG9zZSB3aXRo
IG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBp
biBhbGwgY29waWVzLgorIworIyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQg
VEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyMgV0lUSCBSRUdBUkQgVE8gVEhJ
UyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorIyBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElB
QkxFIEZPUiBBTlkKKyMgU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisjIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9T
UyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyMgT0YgQ09O
VFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBP
RiBPUiBJTgorIyBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElT
IFNPRlRXQVJFLgorCisjIFRoaXMgZmlsZSBkZWZpbmVzIGhlbHBlciBmdW5jdGlvbnMgZm9yIGNy
eXB0by90ZXN0L2FiaV90ZXN0Lmggb24gMzItYml0CisjIEFSTS4gU2VlIHRoYXQgaGVhZGVyIGZv
ciBkZXRhaWxzIG9uIGhvdyB0byB1c2UgdGhpcy4KKyMKKyMgRm9yIGNvbnZlbmllbmNlLCB0aGlz
IGZpbGUgaXMgbGlua2VkIGludG8gbGliY3J5cHRvLCB3aGVyZSBjb25zdW1pbmcgYnVpbGRzCisj
IGFscmVhZHkgc3VwcG9ydCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgc291cmNlcy4gVGhlIHN0YXRp
YyBsaW5rZXIgc2hvdWxkIGRyb3AKKyMgdGhpcyBjb2RlIGluIG5vbi10ZXN0IGJpbmFyaWVzLiBU
aGlzIGluY2x1ZGVzIGEgc2hhcmVkIGxpYnJhcnkgYnVpbGQgb2YKKyMgbGliY3J5cHRvLCBwcm92
aWRlZCAtLWdjLXNlY3Rpb25zIChFTEYpLCAtZGVhZF9zdHJpcCAoaU9TKSwgb3IgZXF1aXZhbGVu
dCBpcworIyB1c2VkLgorIworIyBSZWZlcmVuY2VzOgorIworIyBBQVBDUzogaHR0cDovL2luZm9j
ZW50ZXIuYXJtLmNvbS9oZWxwL3RvcGljL2NvbS5hcm0uZG9jLmloaTAwNDJmL0lISTAwNDJGX2Fh
cGNzLnBkZgorIyBpT1MgQVJNdjY6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5
L2FyY2hpdmUvZG9jdW1lbnRhdGlvbi9YY29kZS9Db25jZXB0dWFsL2lQaG9uZU9TQUJJUmVmZXJl
bmNlL0FydGljbGVzL0FSTXY2RnVuY3Rpb25DYWxsaW5nQ29udmVudGlvbnMuaHRtbAorIyBpT1Mg
QVJNdjc6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2FyY2hpdmUvZG9jdW1l
bnRhdGlvbi9YY29kZS9Db25jZXB0dWFsL2lQaG9uZU9TQUJJUmVmZXJlbmNlL0FydGljbGVzL0FS
TXY3RnVuY3Rpb25DYWxsaW5nQ29udmVudGlvbnMuaHRtbAorIyBMaW51eDogaHR0cDovL3NvdXJj
ZXJ5Lm1lbnRvci5jb20vc2dwcC9saXRlL2FybS9wb3J0YWwva2JhdHRhY2gxNDIvYXJtX2dudV9s
aW51eF8lMjBhYmkucGRmCisKK3VzZSBzdHJpY3Q7CisKK215ICRmbGF2b3VyID0gc2hpZnQ7Citt
eSAkb3V0cHV0ICA9IHNoaWZ0OworaWYgKCRmbGF2b3VyID1+IC9cLi8pIHsgJG91dHB1dCA9ICRm
bGF2b3VyOyB1bmRlZiAkZmxhdm91cjsgfQorCiskMCA9fiBtLyguKltcL1xcXSlbXlwvXFxdKyQv
OworbXkgJGRpciA9ICQxOworbXkgJHhsYXRlOworKCAkeGxhdGU9IiR7ZGlyfWFybS14bGF0ZS5w
bCIgYW5kIC1mICR4bGF0ZSApIG9yCisoICR4bGF0ZT0iJHtkaXJ9Li4vLi4vcGVybGFzbS9hcm0t
eGxhdGUucGwiIGFuZCAtZiAkeGxhdGUpIG9yCitkaWUgImNhbid0IGxvY2F0ZSBhcm0teGxhdGUu
cGwiOworCitvcGVuIE9VVCwgInwgXCIkXlhcIiBcIiR4bGF0ZVwiICRmbGF2b3VyIFwiJG91dHB1
dFwiIjsKKypTVERPVVQgPSAqT1VUOworCitteSAoJGZ1bmMsICRzdGF0ZSwgJGFyZ3YsICRhcmdj
KSA9ICgicjAiLCAicjEiLCAicjIiLCAicjMiKTsKK215ICRjb2RlID0gPDxfX19fOworLnN5bnRh
eAl1bmlmaWVkCisKKy5hcmNoCWFybXY3LWEKKy5mcHUJdmZwCisKKy50ZXh0CisKK0AgYWJpX3Rl
c3RfdHJhbXBvbGluZSBsb2FkcyBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGZyb20gfHN0YXRlfCwg
Y2FsbHMgfGZ1bmN8CitAIHdpdGggfGFyZ3Z8LCB0aGVuIHNhdmVzIHRoZSBjYWxsZWUtc2F2ZWQg
cmVnaXN0ZXJzIGludG8gfHN0YXRlfC4gSXQgcmV0dXJucworQCB0aGUgcmVzdWx0IG9mIHxmdW5j
fC4gVGhlIHx1bndpbmR8IGFyZ3VtZW50IGlzIHVudXNlZC4KK0AgdWludDMyX3QgYWJpX3Rlc3Rf
dHJhbXBvbGluZSh2b2lkICgqZnVuYykoLi4uKSwgQ2FsbGVyU3RhdGUgKnN0YXRlLAorQCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICphcmd2LCBzaXplX3QgYXJn
YywKK0AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdW53aW5kKTsKKy50eXBlCWFi
aV90ZXN0X3RyYW1wb2xpbmUsICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X3RyYW1wb2xpbmUK
Ky5hbGlnbgk0CithYmlfdGVzdF90cmFtcG9saW5lOgorLkxhYmlfdGVzdF90cmFtcG9saW5lX2Jl
Z2luOgorCUAgU2F2ZSBwYXJhbWV0ZXJzIGFuZCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4g
Rm9yIGNvbnZlbmllbmNlLCB3ZQorCUAgc2F2ZSByOSBvbiBpT1MgZXZlbiB0aG91Z2ggaXQncyB2
b2xhdGlsZS4KKwl2c3RtZGIJc3AhLCB7ZDgtZDE1fQorCXN0bWRiCXNwISwge3IwLXIxMSxscn0K
KworCUAgUmVzZXJ2ZSBzdGFjayBzcGFjZSBmb3Igc2l4ICgxMC00KSBzdGFjayBwYXJhbWV0ZXJz
LCBwbHVzIGFuIGV4dHJhIDQKKwlAIGJ5dGVzIHRvIGtlZXAgaXQgOC1ieXRlLWFsaWduZWQgKHNl
ZSBBQVBDUywgc2VjdGlvbiA1LjMpLgorCXN1YiAgICAgc3AsIHNwLCAjMjgKKworCUAgRXZlcnkg
cmVnaXN0ZXIgaW4gQUFQQ1MgaXMgZWl0aGVyIG5vbi12b2xhdGlsZSBvciBhIHBhcmFtZXRlciAo
ZXhjZXB0CisJQCByOSBvbiBpT1MpLCBzbyB0aGlzIGNvZGUsIGJ5IHRoZSBhY3R1YWwgY2FsbCwg
bG9zZXMgYWxsIGl0cyBzY3JhdGNoCisJQCByZWdpc3RlcnMuIEZpcnN0IGZpbGwgaW4gc3RhY2sg
cGFyYW1ldGVycyB3aGlsZSB0aGVyZSBhcmUgcmVnaXN0ZXJzCisJQCB0byBzcGFyZS4KKwljbXAJ
JGFyZ2MsICM0CisJYmxzCS5Mc3RhY2tfYXJnc19kb25lCisJbW92CXI0LCBzcAkJCQlAIHI0IGlz
IHRoZSBvdXRwdXQgcG9pbnRlci4KKwlhZGQJcjUsICRhcmd2LCAkYXJnYywgbHNsICMyCUAgU2V0
IHI1IHRvIHRoZSBlbmQgb2YgYXJndi4KKwlhZGQJJGFyZ3YsICRhcmd2LCAjMTYJCUAgU2tpcCBm
b3VyIGFyZ3VtZW50cy4KKy5Mc3RhY2tfYXJnc19sb29wOgorCWxkcglyNiwgWyRhcmd2XSwgIzQK
KwljbXAJJGFyZ3YsIHI1CisJc3RyCXI2LCBbcjRdLCAjNAorCWJuZQkuTHN0YWNrX2FyZ3NfbG9v
cAorCisuTHN0YWNrX2FyZ3NfZG9uZToKKwlAIExvYWQgcmVnaXN0ZXJzIGZyb20gfCRzdGF0ZXwu
CisJdmxkbWlhCSRzdGF0ZSEsIHtkOC1kMTV9CisjaWYgZGVmaW5lZChfX0FQUExFX18pCisJQCBy
OSBpcyBub3Qgdm9sYXRpbGUgb24gaU9TLgorCWxkbWlhCSRzdGF0ZSEsIHtyNC1yOCxyMTAtcjEx
fQorI2Vsc2UKKwlsZG1pYQkkc3RhdGUhLCB7cjQtcjExfQorI2VuZGlmCisKKwlAIExvYWQgcmVn
aXN0ZXIgcGFyYW1ldGVycy4gVGhpcyB1c2VzIHVwIG91ciByZW1haW5pbmcgcmVnaXN0ZXJzLCBz
byB3ZQorCUAgcmVwdXJwb3NlIGxyIGFzIHNjcmF0Y2ggc3BhY2UuCisJbGRyCSRhcmdjLCBbc3As
ICM0MF0JQCBSZWxvYWQgYXJnYy4KKwlsZHIJbHIsIFtzcCwgIzM2XQkJQCBMb2FkIGFyZ3YgaW50
byBsci4KKwljbXAJJGFyZ2MsICMzCisJYmhpCS5MYXJnX3IzCisJYmVxCS5MYXJnX3IyCisJY21w
CSRhcmdjLCAjMQorCWJoaQkuTGFyZ19yMQorCWJlcQkuTGFyZ19yMAorCWIJLkxhcmdzX2RvbmUK
KworLkxhcmdfcjM6CisJbGRyCXIzLCBbbHIsICMxMl0JQCBhcmd2WzNdCisuTGFyZ19yMjoKKwls
ZHIJcjIsIFtsciwgIzhdCUAgYXJndlsyXQorLkxhcmdfcjE6CisJbGRyCXIxLCBbbHIsICM0XQlA
IGFyZ3ZbMV0KKy5MYXJnX3IwOgorCWxkcglyMCwgW2xyXQlAIGFyZ3ZbMF0KKy5MYXJnc19kb25l
OgorCisJQCBXaXRoIGV2ZXJ5IG90aGVyIHJlZ2lzdGVyIGluIHVzZSwgbG9hZCB0aGUgZnVuY3Rp
b24gcG9pbnRlciBpbnRvIGxyCisJQCBhbmQgY2FsbCB0aGUgZnVuY3Rpb24uCisJbGRyCWxyLCBb
c3AsICMyOF0KKwlibHgJbHIKKworCUAgcjEtcjMgYXJlIGZyZWUgZm9yIHVzZSBhZ2Fpbi4gVGhl
IHRyYW1wb2xpbmUgb25seSBzdXBwb3J0cworCUAgc2luZ2xlLXJldHVybiBmdW5jdGlvbnMuIFBh
c3MgcjQtcjExIHRvIHRoZSBjYWxsZXIuCisJbGRyCSRzdGF0ZSwgW3NwLCAjMzJdCisJdnN0bWlh
CSRzdGF0ZSEsIHtkOC1kMTV9CisjaWYgZGVmaW5lZChfX0FQUExFX18pCisJQCByOSBpcyBub3Qg
dm9sYXRpbGUgb24gaU9TLgorCXN0bWlhCSRzdGF0ZSEsIHtyNC1yOCxyMTAtcjExfQorI2Vsc2UK
KwlzdG1pYQkkc3RhdGUhLCB7cjQtcjExfQorI2VuZGlmCisKKwlAIFVud2luZCB0aGUgc3RhY2sg
YW5kIHJlc3RvcmUgcmVnaXN0ZXJzLgorCWFkZAlzcCwgc3AsICM0NAkJQCA0NCA9IDI4KzE2CisJ
bGRtaWEJc3AhLCB7cjQtcjExLGxyfQlAIFNraXAgcjAtcjMgKHNlZSArMTYgYWJvdmUpLgorCXZs
ZG1pYQlzcCEsIHtkOC1kMTV9CisKKwlieAlscgorLnNpemUJYWJpX3Rlc3RfdHJhbXBvbGluZSwu
LWFiaV90ZXN0X3RyYW1wb2xpbmUKK19fX18KKworIyBhYmlfdGVzdF9jbG9iYmVyXyogemVyb3Mg
dGhlIGNvcnJlc3BvbmRpbmcgcmVnaXN0ZXIuIFRoZXNlIGFyZSB1c2VkIHRvIHRlc3QKKyMgdGhl
IEFCSS10ZXN0aW5nIGZyYW1ld29yay4KK2ZvcmVhY2ggKDAuLjEyKSB7CisgICMgVGhpcyBsb29w
IHNraXBzIHIxMyAoc3ApLCByMTQgKGxyLCBpbXBsaWNpdGx5IGNsb2JiZXJlZCBieSBldmVyeSBj
YWxsKSwgYW5kCisgICMgcjE1IChwYykuCisgICRjb2RlIC49IDw8X19fXzsKKy50eXBlCWFiaV90
ZXN0X2Nsb2JiZXJfciRfLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9iYmVyX3IkXwor
LmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfciRfOgorCW1vdglyJF8sICMwCisJYngJbHIKKy5z
aXplCWFiaV90ZXN0X2Nsb2JiZXJfciRfLC4tYWJpX3Rlc3RfY2xvYmJlcl9yJF8KK19fX18KK30K
KworZm9yZWFjaCAoMC4uMTUpIHsKKyAgbXkgJGxvID0gInMiLigyKiRfKTsKKyAgbXkgJGhpID0g
InMiLigyKiRfKzEpOworICAkY29kZSAuPSA8PF9fX187CisudHlwZQlhYmlfdGVzdF9jbG9iYmVy
X2QkXywgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl9kJF8KKy5hbGlnbgk0Cith
YmlfdGVzdF9jbG9iYmVyX2QkXzoKKwltb3YJcjAsICMwCisJdm1vdgkkbG8sIHIwCisJdm1vdgkk
aGksIHIwCisJYngJbHIKKy5zaXplCWFiaV90ZXN0X2Nsb2JiZXJfZCRfLC4tYWJpX3Rlc3RfY2xv
YmJlcl9kJF8KK19fX18KK30KKworcHJpbnQgJGNvZGU7CitjbG9zZSBTVERPVVQgb3IgZGllICJl
cnJvciBjbG9zaW5nIFNURE9VVCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Rlc3QvYXNtL3Ry
YW1wb2xpbmUtYXJtdjgucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3Rlc3QvYXNtL3RyYW1wb2xpbmUtYXJtdjgu
cGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDEwYjU5ZWY1M2VjY2ZhNmEzYTk5MGExYmM4YTg0NDFlMWViMDYzMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vdGVzdC9hc20vdHJhbXBvbGluZS1hcm12OC5w
bApAQCAtMCwwICsxLDIwOSBAQAorIyEvdXNyL2Jpbi9lbnYgcGVybAorIyBDb3B5cmlnaHQgKGMp
IDIwMTksIEdvb2dsZSBJbmMuCisjCisjIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnks
IGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorIyBwdXJwb3NlIHdpdGgg
b3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3Zl
CisjIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGlu
IGFsbCBjb3BpZXMuCisjCisjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBU
SEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworIyBXSVRIIFJFR0FSRCBUTyBUSElT
IFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisjIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFC
TEUgRk9SIEFOWQorIyBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NT
IE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgorIyBPRiBDT05U
UkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9G
IE9SIElOCisjIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMg
U09GVFdBUkUuCisKKyMgVGhpcyBmaWxlIGRlZmluZXMgaGVscGVyIGZ1bmN0aW9ucyBmb3IgY3J5
cHRvL3Rlc3QvYWJpX3Rlc3QuaCBvbiBhYXJjaDY0LiBTZWUKKyMgdGhhdCBoZWFkZXIgZm9yIGRl
dGFpbHMgb24gaG93IHRvIHVzZSB0aGlzLgorIworIyBGb3IgY29udmVuaWVuY2UsIHRoaXMgZmls
ZSBpcyBsaW5rZWQgaW50byBsaWJjcnlwdG8sIHdoZXJlIGNvbnN1bWluZyBidWlsZHMKKyMgYWxy
ZWFkeSBzdXBwb3J0IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBzb3VyY2VzLiBUaGUgc3RhdGljIGxp
bmtlciBzaG91bGQgZHJvcAorIyB0aGlzIGNvZGUgaW4gbm9uLXRlc3QgYmluYXJpZXMuIFRoaXMg
aW5jbHVkZXMgYSBzaGFyZWQgbGlicmFyeSBidWlsZCBvZgorIyBsaWJjcnlwdG8sIHByb3ZpZGVk
IC0tZ2Mtc2VjdGlvbnMgKEVMRiksIC1kZWFkX3N0cmlwIChpT1MpLCBvciBlcXVpdmFsZW50IGlz
CisjIHVzZWQuCisjCisjIFJlZmVyZW5jZXM6CisjCisjIEFBUENTNjQ6IGh0dHA6Ly9pbmZvY2Vu
dGVyLmFybS5jb20vaGVscC90b3BpYy9jb20uYXJtLmRvYy5paGkwMDU1Yi9JSEkwMDU1Ql9hYXBj
czY0LnBkZgorIyBpT1MgQVJNNjQ6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5
L2FyY2hpdmUvZG9jdW1lbnRhdGlvbi9YY29kZS9Db25jZXB0dWFsL2lQaG9uZU9TQUJJUmVmZXJl
bmNlL0FydGljbGVzL0FSTTY0RnVuY3Rpb25DYWxsaW5nQ29udmVudGlvbnMuaHRtbAorCit1c2Ug
c3RyaWN0OworCitteSAkZmxhdm91ciA9IHNoaWZ0OworbXkgJG91dHB1dCAgPSBzaGlmdDsKK2lm
ICgkZmxhdm91ciA9fiAvXC4vKSB7ICRvdXRwdXQgPSAkZmxhdm91cjsgdW5kZWYgJGZsYXZvdXI7
IH0KKworJDAgPX4gbS8oLipbXC9cXF0pW15cL1xcXSskLzsKK215ICRkaXIgPSAkMTsKK215ICR4
bGF0ZTsKKyggJHhsYXRlPSIke2Rpcn1hcm0teGxhdGUucGwiIGFuZCAtZiAkeGxhdGUgKSBvcgor
KCAkeGxhdGU9IiR7ZGlyfS4uLy4uL3Blcmxhc20vYXJtLXhsYXRlLnBsIiBhbmQgLWYgJHhsYXRl
KSBvcgorZGllICJjYW4ndCBsb2NhdGUgYXJtLXhsYXRlLnBsIjsKKworb3BlbiBPVVQsICJ8IFwi
JF5YXCIgXCIkeGxhdGVcIiAkZmxhdm91ciBcIiRvdXRwdXRcIiI7CisqU1RET1VUID0gKk9VVDsK
KworbXkgKCRmdW5jLCAkc3RhdGUsICRhcmd2LCAkYXJnYykgPSAoIngwIiwgIngxIiwgIngyIiwg
IngzIik7CitteSAkY29kZSA9IDw8X19fXzsKKy50ZXh0CisKKy8vIGFiaV90ZXN0X3RyYW1wb2xp
bmUgbG9hZHMgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBmcm9tIHxzdGF0ZXwsIGNhbGxzIHxmdW5j
fAorLy8gd2l0aCB8YXJndnwsIHRoZW4gc2F2ZXMgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMg
aW50byB8c3RhdGV8LiBJdCByZXR1cm5zCisvLyB0aGUgcmVzdWx0IG9mIHxmdW5jfC4gVGhlIHx1
bndpbmR8IGFyZ3VtZW50IGlzIHVudXNlZC4KKy8vIHVpbnQ2NF90IGFiaV90ZXN0X3RyYW1wb2xp
bmUodm9pZCAoKmZ1bmMpKC4uLiksIENhbGxlclN0YXRlICpzdGF0ZSwKKy8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDY0X3QgKmFyZ3YsIHNpemVfdCBhcmdjLAorLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB1bndpbmQpOworLnR5cGUJYWJp
X3Rlc3RfdHJhbXBvbGluZSwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rlc3RfdHJhbXBvbGluZQor
LmFsaWduCTQKK2FiaV90ZXN0X3RyYW1wb2xpbmU6CisuTGFiaV90ZXN0X3RyYW1wb2xpbmVfYmVn
aW46CisJLy8gU3RhY2sgbGF5b3V0IChsb3cgdG8gaGlnaCBhZGRyZXNzZXMpCisJLy8gICB4Mjks
eDMwICgxNiBieXRlcykKKwkvLyAgICBkOC1kMTUgKDY0IGJ5dGVzKQorCS8vICAgeDE5LXgyOCAo
ODAgYnl0ZXMpCisJLy8gICAgJHN0YXRlICg4IGJ5dGVzKQorCS8vICAgcGFkZGluZyAoOCBieXRl
cykKKwlzdHAJeDI5LCB4MzAsIFtzcCwgIy0xNzZdIQorCW1vdgl4MjksIHNwCisKKwkvLyBTYXZl
ZCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGFuZCB8c3RhdGV8LgorCXN0cAlkOCwgZDksIFtzcCwg
IzE2XQorCXN0cAlkMTAsIGQxMSwgW3NwLCAjMzJdCisJc3RwCWQxMiwgZDEzLCBbc3AsICM0OF0K
KwlzdHAJZDE0LCBkMTUsIFtzcCwgIzY0XQorCXN0cAl4MTksIHgyMCwgW3NwLCAjODBdCisJc3Rw
CXgyMSwgeDIyLCBbc3AsICM5Nl0KKwlzdHAJeDIzLCB4MjQsIFtzcCwgIzExMl0KKwlzdHAJeDI1
LCB4MjYsIFtzcCwgIzEyOF0KKwlzdHAJeDI3LCB4MjgsIFtzcCwgIzE0NF0KKwlzdHIJJHN0YXRl
LCBbc3AsICMxNjBdCisKKwkvLyBMb2FkIHJlZ2lzdGVycyBmcm9tIHxzdGF0ZXwsIHdpdGggdGhl
IGV4Y2VwdGlvbiBvZiB4MjkuIHgyOSBpcyB0aGUKKwkvLyBmcmFtZSBwb2ludGVyIGFuZCBhbHNv
IGNhbGxlZS1zYXZlZCwgYnV0IEFBUENTNjQgYWxsb3dzIHBsYXRmb3JtcyB0bworCS8vIG1hbmRh
dGUgdGhhdCB4MjkgYWx3YXlzIHBvaW50IHRvIGEgZnJhbWUuIGlPUzY0IGRvZXMgc28sIHdoaWNo
IG1lYW5zCisJLy8gd2UgY2Fubm90IGZpbGwgeDI5IHdpdGggZW50cm9weSB3aXRob3V0IHZpb2xh
dGluZyBBQkkgcnVsZXMKKwkvLyBvdXJzZWx2ZXMuIHgyOSBpcyB0ZXN0ZWQgc2VwYXJhdGVseSBi
ZWxvdy4KKwlsZHAJZDgsIGQ5LCBbJHN0YXRlXSwgIzE2CisJbGRwCWQxMCwgZDExLCBbJHN0YXRl
XSwgIzE2CisJbGRwCWQxMiwgZDEzLCBbJHN0YXRlXSwgIzE2CisJbGRwCWQxNCwgZDE1LCBbJHN0
YXRlXSwgIzE2CisJbGRwCXgxOSwgeDIwLCBbJHN0YXRlXSwgIzE2CisJbGRwCXgyMSwgeDIyLCBb
JHN0YXRlXSwgIzE2CisJbGRwCXgyMywgeDI0LCBbJHN0YXRlXSwgIzE2CisJbGRwCXgyNSwgeDI2
LCBbJHN0YXRlXSwgIzE2CisJbGRwCXgyNywgeDI4LCBbJHN0YXRlXSwgIzE2CisKKwkvLyBNb3Zl
IHBhcmFtZXRlcnMgaW50byB0ZW1wb3JhcnkgcmVnaXN0ZXJzLgorCW1vdgl4OSwgJGZ1bmMKKwlt
b3YJeDEwLCAkYXJndgorCW1vdgl4MTEsICRhcmdjCisKKwkvLyBMb2FkIHBhcmFtZXRlcnMgaW50
byByZWdpc3RlcnMuCisJY2J6CXgxMSwgLkxhcmdzX2RvbmUKKwlsZHIJeDAsIFt4MTBdLCAjOAor
CXN1YnMJeDExLCB4MTEsICMxCisJYi5lcQkuTGFyZ3NfZG9uZQorCWxkcgl4MSwgW3gxMF0sICM4
CisJc3Vicwl4MTEsIHgxMSwgIzEKKwliLmVxCS5MYXJnc19kb25lCisJbGRyCXgyLCBbeDEwXSwg
IzgKKwlzdWJzCXgxMSwgeDExLCAjMQorCWIuZXEJLkxhcmdzX2RvbmUKKwlsZHIJeDMsIFt4MTBd
LCAjOAorCXN1YnMJeDExLCB4MTEsICMxCisJYi5lcQkuTGFyZ3NfZG9uZQorCWxkcgl4NCwgW3gx
MF0sICM4CisJc3Vicwl4MTEsIHgxMSwgIzEKKwliLmVxCS5MYXJnc19kb25lCisJbGRyCXg1LCBb
eDEwXSwgIzgKKwlzdWJzCXgxMSwgeDExLCAjMQorCWIuZXEJLkxhcmdzX2RvbmUKKwlsZHIJeDYs
IFt4MTBdLCAjOAorCXN1YnMJeDExLCB4MTEsICMxCisJYi5lcQkuTGFyZ3NfZG9uZQorCWxkcgl4
NywgW3gxMF0sICM4CisKKy5MYXJnc19kb25lOgorCWJscgl4OQorCisJLy8gUmVsb2FkIHxzdGF0
ZXwgYW5kIHN0b3JlIHJlZ2lzdGVycy4KKwlsZHIJJHN0YXRlLCBbc3AsICMxNjBdCisJc3RwCWQ4
LCBkOSwgWyRzdGF0ZV0sICMxNgorCXN0cAlkMTAsIGQxMSwgWyRzdGF0ZV0sICMxNgorCXN0cAlk
MTIsIGQxMywgWyRzdGF0ZV0sICMxNgorCXN0cAlkMTQsIGQxNSwgWyRzdGF0ZV0sICMxNgorCXN0
cAl4MTksIHgyMCwgWyRzdGF0ZV0sICMxNgorCXN0cAl4MjEsIHgyMiwgWyRzdGF0ZV0sICMxNgor
CXN0cAl4MjMsIHgyNCwgWyRzdGF0ZV0sICMxNgorCXN0cAl4MjUsIHgyNiwgWyRzdGF0ZV0sICMx
NgorCXN0cAl4MjcsIHgyOCwgWyRzdGF0ZV0sICMxNgorCisJLy8gfGZ1bmN8IGlzIHJlcXVpcmVk
IHRvIHByZXNlcnZlIHgyOSwgdGhlIGZyYW1lIHBvaW50ZXIuIFdlIGNhbm5vdCBsb2FkCisJLy8g
cmFuZG9tIHZhbHVlcyBpbnRvIHgyOSAoc2VlIGNvbW1lbnQgYWJvdmUpLCBzbyBjb21wYXJlIGl0
IGFnYWluc3QgdGhlCisJLy8gZXhwZWN0ZWQgdmFsdWUgYW5kIHplcm8gdGhlIGZpZWxkIG9mIHxz
dGF0ZXwgaWYgY29ycnVwdGVkLgorCW1vdgl4OSwgc3AKKwljbXAJeDI5LCB4OQorCWIuZXEJLkx4
Mjlfb2sKKwlzdHIJeHpyLCBbJHN0YXRlXQorCisuTHgyOV9vazoKKwkvLyBSZXN0b3JlIGNhbGxl
ZS1zYXZlZCByZWdpc3RlcnMuCisJbGRwCWQ4LCBkOSwgW3NwLCAjMTZdCisJbGRwCWQxMCwgZDEx
LCBbc3AsICMzMl0KKwlsZHAJZDEyLCBkMTMsIFtzcCwgIzQ4XQorCWxkcAlkMTQsIGQxNSwgW3Nw
LCAjNjRdCisJbGRwCXgxOSwgeDIwLCBbc3AsICM4MF0KKwlsZHAJeDIxLCB4MjIsIFtzcCwgIzk2
XQorCWxkcAl4MjMsIHgyNCwgW3NwLCAjMTEyXQorCWxkcAl4MjUsIHgyNiwgW3NwLCAjMTI4XQor
CWxkcAl4MjcsIHgyOCwgW3NwLCAjMTQ0XQorCisJbGRwCXgyOSwgeDMwLCBbc3BdLCAjMTc2CisJ
cmV0Cisuc2l6ZQlhYmlfdGVzdF90cmFtcG9saW5lLC4tYWJpX3Rlc3RfdHJhbXBvbGluZQorX19f
XworCisjIGFiaV90ZXN0X2Nsb2JiZXJfKiB6ZXJvcyB0aGUgY29ycmVzcG9uZGluZyByZWdpc3Rl
ci4gVGhlc2UgYXJlIHVzZWQgdG8gdGVzdAorIyB0aGUgQUJJLXRlc3RpbmcgZnJhbWV3b3JrLgor
Zm9yZWFjaCAoMC4uMjkpIHsKKyAgIyB4MTggaXMgdGhlIHBsYXRmb3JtIHJlZ2lzdGVyIGFuZCBv
ZmYgbGltaXRzLgorICBuZXh0IGlmICgkXyA9PSAxOCk7CisgICRjb2RlIC49IDw8X19fXzsKKy50
eXBlCWFiaV90ZXN0X2Nsb2JiZXJfeCRfLCAlZnVuY3Rpb24KKy5nbG9ibAlhYmlfdGVzdF9jbG9i
YmVyX3gkXworLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfeCRfOgorCW1vdgl4JF8sIHh6cgor
CXJldAorLnNpemUJYWJpX3Rlc3RfY2xvYmJlcl94JF8sLi1hYmlfdGVzdF9jbG9iYmVyX3gkXwor
X19fXworfQorZm9yZWFjaCAoMC4uMzEpIHsKKyAgJGNvZGUgLj0gPDxfX19fOworLnR5cGUJYWJp
X3Rlc3RfY2xvYmJlcl9kJF8sICVmdW5jdGlvbgorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfZCRf
CisuYWxpZ24JNAorYWJpX3Rlc3RfY2xvYmJlcl9kJF86CisJZm1vdglkJF8sIHh6cgorCXJldAor
LnNpemUJYWJpX3Rlc3RfY2xvYmJlcl9kJF8sLi1hYmlfdGVzdF9jbG9iYmVyX2QkXworX19fXwor
fQorCisjIGFiaV90ZXN0X2Nsb2JiZXJfdipfdXBwZXIgY2xvYmJlcnMgb25seSB0aGUgdXBwZXIg
aGFsZiBvZiB2Ki4gQUFQQ1M2NCBvbmx5CisjIHJlcXVpcmVzIHRoZSBsb3dlciBoYWxmIChkKikg
YmUgcHJlc2VydmVkLgorZm9yZWFjaCAoOC4uMTUpIHsKKyAgJGNvZGUgLj0gPDxfX19fOworLnR5
cGUJYWJpX3Rlc3RfY2xvYmJlcl92JHtffV91cHBlciwgJWZ1bmN0aW9uCisuZ2xvYmwJYWJpX3Rl
c3RfY2xvYmJlcl92JHtffV91cHBlcgorLmFsaWduCTQKK2FiaV90ZXN0X2Nsb2JiZXJfdiR7X31f
dXBwZXI6CisJZm1vdgl2JHtffS5kWzFdLCB4enIKKwlyZXQKKy5zaXplCWFiaV90ZXN0X2Nsb2Ji
ZXJfdiR7X31fdXBwZXIsLi1hYmlfdGVzdF9jbG9iYmVyX3Yke199X3VwcGVyCitfX19fCit9CisK
K3ByaW50ICRjb2RlOworY2xvc2UgU1RET1VUIG9yIGRpZSAiZXJyb3IgY2xvc2luZyBTVERPVVQi
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0L2FzbS90cmFtcG9saW5lLXg4Ni5wbCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8vdGVzdC9hc20vdHJhbXBvbGluZS14ODYucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI0NGFjMmFh
MzQ5ZmIxOWViNDM3OWY4NmExNTU0NDY0YmEyODIwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9j
cnlwdG8vdGVzdC9hc20vdHJhbXBvbGluZS14ODYucGwKQEAgLTAsMCArMSwxMjMgQEAKKyMhL3Vz
ci9iaW4vZW52IHBlcmwKKyMgQ29weXJpZ2h0IChjKSAyMDE4LCBHb29nbGUgSW5jLgorIworIyBQ
ZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNv
ZnR3YXJlIGZvciBhbnkKKyMgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBn
cmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorIworIyBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdB
UlJBTlRJRVMKKyMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElN
UExJRUQgV0FSUkFOVElFUyBPRgorIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyMgU1BFQ0lBTCwgRElS
RUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisj
IFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywg
V0hFVEhFUiBJTiBBTiBBQ1RJT04KKyMgT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIg
VE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorIyBDT05ORUNUSU9OIFdJVEgg
VEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorCisjIFRoaXMgZmlsZSBk
ZWZpbmVzIGhlbHBlciBmdW5jdGlvbnMgZm9yIGNyeXB0by90ZXN0L2FiaV90ZXN0Lmggb24geDg2
LiBTZWUKKyMgdGhhdCBoZWFkZXIgZm9yIGRldGFpbHMgb24gaG93IHRvIHVzZSB0aGlzLgorIwor
IyBGb3IgY29udmVuaWVuY2UsIHRoaXMgZmlsZSBpcyBsaW5rZWQgaW50byBsaWJjcnlwdG8sIHdo
ZXJlIGNvbnN1bWluZyBidWlsZHMKKyMgYWxyZWFkeSBzdXBwb3J0IGFyY2hpdGVjdHVyZS1zcGVj
aWZpYyBzb3VyY2VzLiBUaGUgc3RhdGljIGxpbmtlciBzaG91bGQgZHJvcAorIyB0aGlzIGNvZGUg
aW4gbm9uLXRlc3QgYmluYXJpZXMuIFRoaXMgaW5jbHVkZXMgYSBzaGFyZWQgbGlicmFyeSBidWls
ZCBvZgorIyBsaWJjcnlwdG8sIHByb3ZpZGVkIC0tZ2Mtc2VjdGlvbnMgKEVMRiksIC1kZWFkX3N0
cmlwIChNYWMpLCBvciBlcXVpdmFsZW50IGlzCisjIHVzZWQuCisjCisjIFJlZmVyZW5jZXM6Cisj
CisjIFN5c1YgQUJJOiBodHRwczovL3VjbGliYy5vcmcvZG9jcy9wc0FCSS1pMzg2LnBkZgorIyBX
aW4zMiBBQkk6IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2NwcC9jcHAvYXJndW1l
bnQtcGFzc2luZy1hbmQtbmFtaW5nLWNvbnZlbnRpb25zP3ZpZXc9dnMtMjAxNworCit1c2Ugc3Ry
aWN0OworCiskMCA9fiBtLyguKltcL1xcXSlbXlwvXFxdKyQvOworbXkgJGRpciA9ICQxOworcHVz
aChASU5DLCAiJHtkaXJ9IiwgIiR7ZGlyfS4uLy4uL3Blcmxhc20iKTsKK3JlcXVpcmUgIng4NmFz
bS5wbCI7CisKK215ICRvdXRwdXQgPSBwb3A7CitvcGVuIFNURE9VVCwgIj4kb3V0cHV0IjsKKwor
JmFzbV9pbml0KCRBUkdWWzBdKTsKKworIyBhYmlfdGVzdF90cmFtcG9saW5lIGxvYWRzIGNhbGxl
ZS1zYXZlZCByZWdpc3RlcnMgZnJvbSB8c3RhdGV8LCBjYWxscyB8ZnVuY3wKKyMgd2l0aCB8YXJn
dnwsIHRoZW4gc2F2ZXMgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgaW50byB8c3RhdGV8LiBJ
dCByZXR1cm5zCisjIHRoZSByZXN1bHQgb2YgfGZ1bmN8LiB8dW53aW5kfCBpcyBpZ25vcmVkLgor
IyB1aW50MzJfdCBhYmlfdGVzdF90cmFtcG9saW5lKHZvaWQgKCpmdW5jKSguLi4pLCBDYWxsZXJT
dGF0ZSAqc3RhdGUsCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMy
X3QgKmFyZ3YsIHNpemVfdCBhcmdjLAorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCB1bndpbmQpOworJmZ1bmN0aW9uX2JlZ2luKCJhYmlfdGVzdF90cmFtcG9saW5lIikKKwkjIExv
YWQgcmVnaXN0ZXJzIGZyb20gfHN0YXRlfC4gTm90ZSB8ZnVuY3Rpb25fYmVnaW58IChhcyBvcHBv
c2VkIHRvCisJIyB8ZnVuY3Rpb25fYmVnaW5fQnwpIGF1dG9tYXRpY2FsbHkgc2F2ZXMgYWxsIGNh
bGxlZS1zYXZlZCByZWdpc3RlcnMsIHNvIHdlCisJIyBtYXkgZnJlZWx5IGNsb2JiZXIgdGhlbS4K
KwkmbW92KCJlY3giLCAmd3BhcmFtKDEpKTsKKwkmbW92KCJlc2kiLCAmRFdQKDQqMCwgImVjeCIp
KTsKKwkmbW92KCJlZGkiLCAmRFdQKDQqMSwgImVjeCIpKTsKKwkmbW92KCJlYngiLCAmRFdQKDQq
MiwgImVjeCIpKTsKKwkmbW92KCJlYnAiLCAmRFdQKDQqMywgImVjeCIpKTsKKworCSMgVXNlIGEg
Zml4ZWQgc3RhY2sgYWxsb2NhdGlvbiBzbyB8d3BhcmFtfCBjb250aW51ZXMgdG8gd29yay4gYWJp
X3Rlc3QuaAorCSMgc3VwcG9ydHMgYXQgbW9zdCAxMCBhcmd1bWVudHMuIFRoZSBTeXNWIEFCSSBy
ZXF1aXJlcyBhIDE2LWJ5dGUtYWxpZ25lZAorCSMgc3RhY2sgb24gcHJvY2VzcyBlbnRyeSwgc28g
cm91bmQgdXAgdG8gMyAobW9kIDQpLgorCSZzdGFja19wdXNoKDExKTsKKworCSMgQ29weSBwYXJh
bWV0ZXJzIHRvIHN0YWNrLgorCSZtb3YoImVheCIsICZ3cGFyYW0oMikpOworCSZ4b3IoImVjeCIs
ICJlY3giKTsKKyZzZXRfbGFiZWwoImxvb3AiKTsKKwkmY21wKCJlY3giLCAmd3BhcmFtKDMpKTsK
KwkmamFlKCZsYWJlbCgibG9vcF9kb25lIikpOworCSZtb3YoImVkeCIsICZEV1AoMCwgImVheCIs
ICJlY3giLCA0KSk7CisJJm1vdigmRFdQKDAsICJlc3AiLCAiZWN4IiwgNCksICJlZHgiKTsKKwkm
YWRkKCJlY3giLCAxKTsKKwkmam1wKCZsYWJlbCgibG9vcCIpKTsKKworJnNldF9sYWJlbCgibG9v
cF9kb25lIik7CisJJmNhbGxfcHRyKCZ3cGFyYW0oMCkpOworCisJJnN0YWNrX3BvcCgxMSk7CisK
KwkjIFNhdmUgcmVnaXN0ZXJzIGJhY2sgaW50byB8c3RhdGV8LgorCSZtb3YoImVjeCIsICZ3cGFy
YW0oMSkpOworCSZtb3YoJkRXUCg0KjAsICJlY3giKSwgImVzaSIpOworCSZtb3YoJkRXUCg0KjEs
ICJlY3giKSwgImVkaSIpOworCSZtb3YoJkRXUCg0KjIsICJlY3giKSwgImVieCIpOworCSZtb3Yo
JkRXUCg0KjMsICJlY3giKSwgImVicCIpOworJmZ1bmN0aW9uX2VuZCgiYWJpX3Rlc3RfdHJhbXBv
bGluZSIpCisKKyMgYWJpX3Rlc3RfZ2V0X2FuZF9jbGVhcl9kaXJlY3Rpb25fZmxhZyBjbGVhcnMg
dGhlIGRpcmVjdGlvbiBmbGFnLiBJZiB0aGUgZmxhZworIyB3YXMgcHJldmlvdXNseSBzZXQsIGl0
IHJldHVybnMgb25lLiBPdGhlcndpc2UsIGl0IHJldHVybnMgemVyby4KKyMgaW50IGFiaV90ZXN0
X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2ZsYWcodm9pZCk7CismZnVuY3Rpb25fYmVnaW5fQigi
YWJpX3Rlc3RfZ2V0X2FuZF9jbGVhcl9kaXJlY3Rpb25fZmxhZyIpOworCSZwdXNoZigpOworCSZw
b3AoImVheCIpOworCSZhbmQoImVheCIsIDB4NDAwKTsKKwkmc2hyKCJlYXgiLCAxMCk7CisJJmNs
ZCgpOworCSZyZXQoKTsKKyZmdW5jdGlvbl9lbmRfQigiYWJpX3Rlc3RfZ2V0X2FuZF9jbGVhcl9k
aXJlY3Rpb25fZmxhZyIpOworCisjIGFiaV90ZXN0X3NldF9kaXJlY3Rpb25fZmxhZyBzZXRzIHRo
ZSBkaXJlY3Rpb24gZmxhZy4KKyMgdm9pZCBhYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWcodm9p
ZCk7CismZnVuY3Rpb25fYmVnaW5fQigiYWJpX3Rlc3Rfc2V0X2RpcmVjdGlvbl9mbGFnIik7CisJ
JnN0ZCgpOworCSZyZXQoKTsKKyZmdW5jdGlvbl9lbmRfQigiYWJpX3Rlc3Rfc2V0X2RpcmVjdGlv
bl9mbGFnIik7CisKKyMgYWJpX3Rlc3RfY2xvYmJlcl8qIHplcm9zIHRoZSBjb3JyZXNwb25kaW5n
IHJlZ2lzdGVyLiBUaGVzZSBhcmUgdXNlZCB0byB0ZXN0CisjIHRoZSBBQkktdGVzdGluZyBmcmFt
ZXdvcmsuCitmb3JlYWNoICgiZWF4IiwgImVieCIsICJlY3giLCAiZWR4IiwgImVkaSIsICJlc2ki
LCAiZWJwIikgeworJmZ1bmN0aW9uX2JlZ2luX0IoImFiaV90ZXN0X2Nsb2JiZXJfJF8iKTsKKwkm
eG9yKCRfLCAkXyk7CisJJnJldCgpOworJmZ1bmN0aW9uX2VuZF9CKCJhYmlfdGVzdF9jbG9iYmVy
XyRfIik7Cit9Citmb3JlYWNoICgwLi43KSB7CismZnVuY3Rpb25fYmVnaW5fQigiYWJpX3Rlc3Rf
Y2xvYmJlcl94bW0kXyIpOworCSZweG9yKCJ4bW0kXyIsICJ4bW0kXyIpOworCSZyZXQoKTsKKyZm
dW5jdGlvbl9lbmRfQigiYWJpX3Rlc3RfY2xvYmJlcl94bW0kXyIpOworfQorCismYXNtX2Zpbmlz
aCgpOworCitjbG9zZSBTVERPVVQgb3IgZGllICJlcnJvciBjbG9zaW5nIFNURE9VVCI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL3Rlc3QvYXNtL3RyYW1wb2xpbmUteDg2XzY0LnBsIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by90ZXN0L2FzbS90cmFtcG9saW5lLXg4Nl82NC5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTk2MTQxYzg3
ZDA5N2I4MGU3M2I3MjA5ZjNkZDZlNjdmY2ExYTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Ny
eXB0by90ZXN0L2FzbS90cmFtcG9saW5lLXg4Nl82NC5wbApAQCAtMCwwICsxLDU1OSBAQAorIyEv
dXNyL2Jpbi9lbnYgcGVybAorIyBDb3B5cmlnaHQgKGMpIDIwMTgsIEdvb2dsZSBJbmMuCisjCisj
IFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMg
c29mdHdhcmUgZm9yIGFueQorIyBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5
IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisjCisjIFRIRSBT
T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwg
V0FSUkFOVElFUworIyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwg
SU1QTElFRCBXQVJSQU5USUVTIE9GCisjIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorIyBTUEVDSUFMLCBE
SVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMK
KyMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRT
LCBXSEVUSEVSIElOIEFOIEFDVElPTgorIyBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhF
UiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisjIENPTk5FQ1RJT04gV0lU
SCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCisKKyMgVGhpcyBmaWxl
IGRlZmluZXMgaGVscGVyIGZ1bmN0aW9ucyBmb3IgY3J5cHRvL3Rlc3QvYWJpX3Rlc3QuaCBvbiB4
ODZfNjQuIFNlZQorIyB0aGF0IGhlYWRlciBmb3IgZGV0YWlscyBvbiBob3cgdG8gdXNlIHRoaXMu
CisjCisjIEZvciBjb252ZW5pZW5jZSwgdGhpcyBmaWxlIGlzIGxpbmtlZCBpbnRvIGxpYmNyeXB0
bywgd2hlcmUgY29uc3VtaW5nIGJ1aWxkcworIyBhbHJlYWR5IHN1cHBvcnQgYXJjaGl0ZWN0dXJl
LXNwZWNpZmljIHNvdXJjZXMuIFRoZSBzdGF0aWMgbGlua2VyIHNob3VsZCBkcm9wCisjIHRoaXMg
Y29kZSBpbiBub24tdGVzdCBiaW5hcmllcy4gVGhpcyBpbmNsdWRlcyBhIHNoYXJlZCBsaWJyYXJ5
IGJ1aWxkIG9mCisjIGxpYmNyeXB0bywgcHJvdmlkZWQgLS1nYy1zZWN0aW9ucyAoRUxGKSwgLWRl
YWRfc3RyaXAgKE1hYyksIG9yIGVxdWl2YWxlbnQgaXMKKyMgdXNlZC4KKyMKKyMgUmVmZXJlbmNl
czoKKyMKKyMgU3lzViBBQkk6IGh0dHBzOi8vZ2l0aHViLmNvbS9oamwtdG9vbHMveDg2LXBzQUJJ
L3dpa2kveDg2LTY0LXBzQUJJLTEuMC5wZGYKKyMgV2luNjQgQUJJOiBodHRwczovL2RvY3MubWlj
cm9zb2Z0LmNvbS9lbi11cy9jcHAvYnVpbGQveDY0LXNvZnR3YXJlLWNvbnZlbnRpb25zP3ZpZXc9
dnMtMjAxNworCit1c2Ugc3RyaWN0OworCitteSAkZmxhdm91ciA9IHNoaWZ0OworbXkgJG91dHB1
dCAgPSBzaGlmdDsKK2lmICgkZmxhdm91ciA9fiAvXC4vKSB7ICRvdXRwdXQgPSAkZmxhdm91cjsg
dW5kZWYgJGZsYXZvdXI7IH0KKworbXkgJHdpbjY0ID0gMDsKKyR3aW42NCA9IDEgaWYgKCRmbGF2
b3VyID1+IC9bbm1dYXNtfG1pbmd3NjQvIHx8ICRvdXRwdXQgPX4gL1wuYXNtJC8pOworCiskMCA9
fiBtLyguKltcL1xcXSlbXlwvXFxdKyQvOworbXkgJGRpciA9ICQxOworbXkgJHhsYXRlOworKCAk
eGxhdGU9IiR7ZGlyfXg4Nl82NC14bGF0ZS5wbCIgYW5kIC1mICR4bGF0ZSApIG9yCisoICR4bGF0
ZT0iJHtkaXJ9Li4vLi4vcGVybGFzbS94ODZfNjQteGxhdGUucGwiIGFuZCAtZiAkeGxhdGUpIG9y
CitkaWUgImNhbid0IGxvY2F0ZSB4ODZfNjQteGxhdGUucGwiOworCitvcGVuIE9VVCwgInwgXCIk
XlhcIiBcIiR4bGF0ZVwiICRmbGF2b3VyIFwiJG91dHB1dFwiIjsKKypTVERPVVQgPSAqT1VUOwor
CisjIEBpbnAgaXMgdGhlIHJlZ2lzdGVycyB1c2VkIGZvciBmdW5jdGlvbiBpbnB1dHMsIGluIG9y
ZGVyLgorbXkgQGlucCA9ICR3aW42NCA/ICgiJXJjeCIsICIlcmR4IiwgIiVyOCIsICIlcjkiKSA6
CisgICAgICAgICAgICAgICAgICAgKCIlcmRpIiwgIiVyc2kiLCAiJXJkeCIsICIlcmN4IiwgIiVy
OCIsICIlcjkiKTsKKworIyBAY2FsbGVyX3N0YXRlIGlzIHRoZSBsaXN0IG9mIHJlZ2lzdGVycyB0
aGF0IHRoZSBjYWxsZWUgbXVzdCBwcmVzZXJ2ZSBmb3IgdGhlCisjIGNhbGxlci4gVGhpcyBtdXN0
IG1hdGNoIHRoZSBkZWZpbml0aW9uIG9mIENhbGxlclN0YXRlIGluIGFiaV90ZXN0LmguCitteSBA
Y2FsbGVyX3N0YXRlID0gKCIlcmJ4IiwgIiVyYnAiLCAiJXIxMiIsICIlcjEzIiwgIiVyMTQiLCAi
JXIxNSIpOworaWYgKCR3aW42NCkgeworICBAY2FsbGVyX3N0YXRlID0gKCIlcmJ4IiwgIiVyYnAi
LCAiJXJkaSIsICIlcnNpIiwgIiVyMTIiLCAiJXIxMyIsICIlcjE0IiwKKyAgICAgICAgICAgICAg
ICAgICAiJXIxNSIsICIleG1tNiIsICIleG1tNyIsICIleG1tOCIsICIleG1tOSIsICIleG1tMTAi
LAorICAgICAgICAgICAgICAgICAgICIleG1tMTEiLCAiJXhtbTEyIiwgIiV4bW0xMyIsICIleG1t
MTQiLCAiJXhtbTE1Iik7Cit9CisKKyMgJGNhbGxlcl9zdGF0ZV9zaXplIGlzIHRoZSBzaXplIG9m
IENhbGxlclN0YXRlLCBpbiBieXRlcy4KK215ICRjYWxsZXJfc3RhdGVfc2l6ZSA9IDA7Citmb3Jl
YWNoIChAY2FsbGVyX3N0YXRlKSB7CisgIGlmICgvXiVyLykgeworICAgICRjYWxsZXJfc3RhdGVf
c2l6ZSArPSA4OworICB9IGVsc2lmICgvXiV4bW0vKSB7CisgICAgJGNhbGxlcl9zdGF0ZV9zaXpl
ICs9IDE2OworICB9IGVsc2UgeworICAgIGRpZSAidW5rbm93biByZWdpc3RlciAkXyI7CisgIH0K
K30KKworIyBsb2FkX2NhbGxlcl9zdGF0ZSByZXR1cm5zIGNvZGUgd2hpY2ggbG9hZHMgYSBDYWxs
ZXJTdGF0ZSBzdHJ1Y3R1cmUgYXQKKyMgJG9mZigkcmVnKSBpbnRvIHRoZSByZXNwZWN0aXZlIHJl
Z2lzdGVycy4gTm8gb3RoZXIgcmVnaXN0ZXJzIGFyZSB0b3VjaGVkLCBidXQKKyMgJHJlZyBtYXkg
bm90IGJlIGEgcmVnaXN0ZXIgaW4gQ2FsbGVyU3RhdGUuICRjYiBpcyBhbiBvcHRpb25hbCBjYWxs
YmFjayB0bworIyBhZGQgZXh0cmEgbGluZXMgYWZ0ZXIgZWFjaCBtb3ZxIG9yIG1vdmRxYS4gJGNi
IGlzIHBhc3NlZCB0aGUgb2Zmc2V0LCByZWxhdGl2ZQorIyB0byAkcmVnLCBhbmQgbmFtZSBvZiBl
YWNoIHJlZ2lzdGVyLgorc3ViIGxvYWRfY2FsbGVyX3N0YXRlIHsKKyAgbXkgKCRvZmYsICRyZWcs
ICRjYikgPSBAXzsKKyAgbXkgJHJldCA9ICIiOworICBmb3JlYWNoIChAY2FsbGVyX3N0YXRlKSB7
CisgICAgbXkgJG9sZF9vZmYgPSAkb2ZmOworICAgIGlmICgvXiVyLykgeworICAgICAgJHJldCAu
PSAiXHRtb3ZxXHQkb2ZmKCRyZWcpLCAkX1xuIjsKKyAgICAgICRvZmYgKz0gODsKKyAgICB9IGVs
c2lmICgvXiV4bW0vKSB7CisgICAgICAkcmV0IC49ICJcdG1vdmRxYVx0JG9mZigkcmVnKSwgJF9c
biI7CisgICAgICAkb2ZmICs9IDE2OworICAgIH0gZWxzZSB7CisgICAgICBkaWUgInVua25vd24g
cmVnaXN0ZXIgJF8iOworICAgIH0KKyAgICAkcmV0IC49ICRjYi0+KCRvbGRfb2ZmLCAkXykgaWYg
KGRlZmluZWQoJGNiKSk7CisgIH0KKyAgcmV0dXJuICRyZXQ7Cit9CisKKyMgc3RvcmVfY2FsbGVy
X3N0YXRlIGJlaGF2ZXMgbGlrZSBsb2FkX2NhbGxlcl9zdGF0ZSwgZXhjZXB0IHRoYXQgaXQgd3Jp
dGVzIHRoZQorIyBjdXJyZW50IHZhbHVlcyBvZiB0aGUgcmVnaXN0ZXJzIGludG8gJG9mZigkcmVn
KS4KK3N1YiBzdG9yZV9jYWxsZXJfc3RhdGUgeworICBteSAoJG9mZiwgJHJlZywgJGNiKSA9IEBf
OworICBteSAkcmV0ID0gIiI7CisgIGZvcmVhY2ggKEBjYWxsZXJfc3RhdGUpIHsKKyAgICBteSAk
b2xkX29mZiA9ICRvZmY7CisgICAgaWYgKC9eJXIvKSB7CisgICAgICAkcmV0IC49ICJcdG1vdnFc
dCRfLCAkb2ZmKCRyZWcpXG4iOworICAgICAgJG9mZiArPSA4OworICAgIH0gZWxzaWYgKC9eJXht
bS8pIHsKKyAgICAgICRyZXQgLj0gIlx0bW92ZHFhXHQkXywgJG9mZigkcmVnKVxuIjsKKyAgICAg
ICRvZmYgKz0gMTY7CisgICAgfSBlbHNlIHsKKyAgICAgIGRpZSAidW5rbm93biByZWdpc3RlciAk
XyI7CisgICAgfQorICAgICRyZXQgLj0gJGNiLT4oJG9sZF9vZmYsICRfKSBpZiAoZGVmaW5lZCgk
Y2IpKTsKKyAgfQorICByZXR1cm4gJHJldDsKK30KKworIyAkbWF4X3BhcmFtcyBpcyB0aGUgbWF4
aW11bSBudW1iZXIgb2YgcGFyYW1ldGVycyBhYmlfdGVzdF90cmFtcG9saW5lIHN1cHBvcnRzLgor
bXkgJG1heF9wYXJhbXMgPSAxMDsKKworIyBXaW5kb3dzIHJlc2VydmVzIHN0YWNrIHNwYWNlIGZv
ciB0aGUgcmVnaXN0ZXItYmFzZWQgcGFyYW1ldGVycywgd2hpbGUgU3lzVgorIyBvbmx5IHJlc2Vy
dmVzIHNwYWNlIGZvciB0aGUgb3ZlcmZsb3cgb25lcy4KK215ICRzdGFja19wYXJhbXNfc2tpcCA9
ICR3aW42NCA/IHNjYWxhcihAaW5wKSA6IDA7CitteSAkbnVtX3N0YWNrX3BhcmFtcyA9ICR3aW42
NCA/ICRtYXhfcGFyYW1zIDogJG1heF9wYXJhbXMgLSBzY2FsYXIoQGlucCk7CisKK215ICgkZnVu
YywgJHN0YXRlLCAkYXJndiwgJGFyZ2MsICR1bndpbmQpID0gQGlucDsKK215ICRjb2RlID0gPDxf
X19fOworLnRleHQKKworIyBhYmlfdGVzdF90cmFtcG9saW5lIGxvYWRzIGNhbGxlZS1zYXZlZCBy
ZWdpc3RlcnMgZnJvbSB8c3RhdGV8LCBjYWxscyB8ZnVuY3wKKyMgd2l0aCB8YXJndnwsIHRoZW4g
c2F2ZXMgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgaW50byB8c3RhdGV8LiBJdCByZXR1cm5z
CisjIHRoZSByZXN1bHQgb2YgfGZ1bmN8LiBJZiB8dW53aW5kfCBpcyBub24temVybywgdGhpcyBm
dW5jdGlvbiB0cmlnZ2VycyB1bndpbmQKKyMgaW5zdHJ1bWVudGF0aW9uLgorIyB1aW50NjRfdCBh
YmlfdGVzdF90cmFtcG9saW5lKHZvaWQgKCpmdW5jKSguLi4pLCBDYWxsZXJTdGF0ZSAqc3RhdGUs
CisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDY0X3QgKmFyZ3YsIHNp
emVfdCBhcmdjLAorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB1bndpbmQpOwor
LnR5cGUJYWJpX3Rlc3RfdHJhbXBvbGluZSwgXEBhYmktb21uaXBvdGVudAorLmdsb2JsCWFiaV90
ZXN0X3RyYW1wb2xpbmUKKy5hbGlnbgkxNgorYWJpX3Rlc3RfdHJhbXBvbGluZToKKy5MYWJpX3Rl
c3RfdHJhbXBvbGluZV9zZWhfYmVnaW46CisuY2ZpX3N0YXJ0cHJvYworCSMgU3RhY2sgbGF5b3V0
OgorCSMgICA4IGJ5dGVzIC0gYWxpZ24KKwkjICAgJGNhbGxlcl9zdGF0ZV9zaXplIGJ5dGVzIC0g
c2F2ZWQgY2FsbGVyIHJlZ2lzdGVycworCSMgICA4IGJ5dGVzIC0gc2NyYXRjaCBzcGFjZQorCSMg
ICA4IGJ5dGVzIC0gc2F2ZWQgY29weSBvZiBcJHVud2luZCAoU3lzVi1vbmx5KQorCSMgICA4IGJ5
dGVzIC0gc2F2ZWQgY29weSBvZiBcJHN0YXRlCisJIyAgIDggYnl0ZXMgLSBzYXZlZCBjb3B5IG9m
IFwkZnVuYworCSMgICA4IGJ5dGVzIC0gaWYgbmVlZGVkIGZvciBzdGFjayBhbGlnbm1lbnQKKwkj
ICAgOCokbnVtX3N0YWNrX3BhcmFtcyBieXRlcyAtIHBhcmFtZXRlcnMgZm9yIFwkZnVuYworX19f
XworbXkgJHN0YWNrX2FsbG9jX3NpemUgPSA4ICsgJGNhbGxlcl9zdGF0ZV9zaXplICsgOCozICsg
OCokbnVtX3N0YWNrX3BhcmFtczsKK2lmICghJHdpbjY0KSB7CisgICRzdGFja19hbGxvY19zaXpl
ICs9IDg7Cit9CisjIFN5c1YgYW5kIFdpbmRvd3MgYm90aCByZXF1aXJlIHRoZSBzdGFjayB0byBi
ZSAxNi1ieXRlLWFsaWduZWQuIFRoZSBjYWxsCisjIGluc3RydWN0aW9uIG9mZnNldHMgaXQgYnkg
OCwgc28gc3RhY2sgYWxsb2NhdGlvbnMgbXVzdCBiZSA4IG1vZCAxNi4KK2lmICgkc3RhY2tfYWxs
b2Nfc2l6ZSAlIDE2ICE9IDgpIHsKKyAgJG51bV9zdGFja19wYXJhbXMrKzsKKyAgJHN0YWNrX2Fs
bG9jX3NpemUgKz0gODsKK30KK215ICRzdGFja19wYXJhbXNfb2Zmc2V0ID0gOCAqICRzdGFja19w
YXJhbXNfc2tpcDsKK215ICRmdW5jX29mZnNldCA9IDggKiAkbnVtX3N0YWNrX3BhcmFtczsKK215
ICRzdGF0ZV9vZmZzZXQgPSAkZnVuY19vZmZzZXQgKyA4OworIyBPbiBXaW42NCwgdW53aW5kIGlz
IGFscmVhZHkgcGFzc2VkIGluIG1lbW9yeS4gT24gU3lzViwgaXQgaXMgcGFzc2VkIGluIGFzCisj
IHJlZ2lzdGVyIGFuZCB3ZSBtdXN0IHJlc2VydmUgc3RhY2sgc3BhY2UgZm9yIGl0LgorbXkgKCR1
bndpbmRfb2Zmc2V0LCAkc2NyYXRjaF9vZmZzZXQpOworaWYgKCR3aW42NCkgeworICAkdW53aW5k
X29mZnNldCA9ICRzdGFja19hbGxvY19zaXplICsgNSo4OworICAkc2NyYXRjaF9vZmZzZXQgPSAk
c3RhdGVfb2Zmc2V0ICsgODsKK30gZWxzZSB7CisgICR1bndpbmRfb2Zmc2V0ID0gJHN0YXRlX29m
ZnNldCArIDg7CisgICRzY3JhdGNoX29mZnNldCA9ICR1bndpbmRfb2Zmc2V0ICsgODsKK30KK215
ICRjYWxsZXJfc3RhdGVfb2Zmc2V0ID0gJHNjcmF0Y2hfb2Zmc2V0ICsgODsKKyRjb2RlIC49IDw8
X19fXzsKKwlzdWJxCVwkJHN0YWNrX2FsbG9jX3NpemUsICVyc3AKKy5jZmlfYWRqdXN0X2NmYV9v
ZmZzZXQJJHN0YWNrX2FsbG9jX3NpemUKKy5MYWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfcHJvbG9n
X2FsbG9jOgorX19fXworJGNvZGUgLj0gPDxfX19fIGlmICghJHdpbjY0KTsKKwltb3ZxCSR1bndp
bmQsICR1bndpbmRfb2Zmc2V0KCVyc3ApCitfX19fCisjIFN0b3JlIG91ciBjYWxsZXIncyBzdGF0
ZS4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB3ZSBtb2RpZnkgaXQgb3Vyc2VsdmVzLCBhbmQKKyMg
YWxzbyB0byBpc29sYXRlIHRoZSB0ZXN0IGluZnJhc3RydWN0aW9uIGZyb20gdGhlIGZ1bmN0aW9u
IHVuZGVyIHRlc3QgZmFpbGluZworIyB0byBzYXZlIHNvbWUgcmVnaXN0ZXIuCitteSAlcmVnX29m
ZnNldHM7CiskY29kZSAuPSBzdG9yZV9jYWxsZXJfc3RhdGUoJGNhbGxlcl9zdGF0ZV9vZmZzZXQs
ICIlcnNwIiwgc3ViIHsKKyAgbXkgKCRvZmYsICRyZWcpID0gQF87CisgICRyZWcgPSBzdWJzdHIo
JHJlZywgMSk7CisgICRyZWdfb2Zmc2V0c3skcmVnfSA9ICRvZmY7CisgICRvZmYgLT0gJHN0YWNr
X2FsbG9jX3NpemUgKyA4OworICByZXR1cm4gPDxfX19fOworLmNmaV9vZmZzZXQJJHJlZywgJG9m
ZgorLkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9wcm9sb2dfJHJlZzoKK19fX18KK30pOworJGNv
ZGUgLj0gPDxfX19fOworLkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9wcm9sb2dfZW5kOgorX19f
XworCiskY29kZSAuPSBsb2FkX2NhbGxlcl9zdGF0ZSgwLCAkc3RhdGUpOworJGNvZGUgLj0gPDxf
X19fOworCSMgU3Rhc2ggXCRmdW5jIGFuZCBcJHN0YXRlLCBzbyB0aGV5IGFyZSBhdmFpbGFibGUg
YWZ0ZXIgdGhlIGNhbGwgcmV0dXJucy4KKwltb3ZxCSRmdW5jLCAkZnVuY19vZmZzZXQoJXJzcCkK
Kwltb3ZxCSRzdGF0ZSwgJHN0YXRlX29mZnNldCglcnNwKQorCisJIyBMb2FkIHBhcmFtZXRlcnMu
IE5vdGUgdGhpcyB3aWxsIGNsb2JiZXIgXCRhcmd2IGFuZCBcJGFyZ2MsIHNvIHdlIGNhbgorCSMg
b25seSB1c2Ugbm9uLXBhcmFtZXRlciB2b2xhdGlsZSByZWdpc3RlcnMuIFRoZXJlIGFyZSB0aHJl
ZSwgYW5kIHRoZXkKKwkjIGFyZSB0aGUgc2FtZSBiZXR3ZWVuIFN5c1YgYW5kIFdpbjY0OiAlcmF4
LCAlcjEwLCBhbmQgJXIxMS4KKwltb3ZxCSRhcmd2LCAlcjEwCisJbW92cQkkYXJnYywgJXIxMQor
X19fXworZm9yZWFjaCAoQGlucCkgeworICAkY29kZSAuPSA8PF9fX187CisJZGVjCSVyMTEKKwlq
cwkuTGFyZ3NfZG9uZQorCW1vdnEJKCVyMTApLCAkXworCWFkZHEJXCQ4LCAlcjEwCitfX19fCit9
CiskY29kZSAuPSA8PF9fX187CisJbGVhcQkkc3RhY2tfcGFyYW1zX29mZnNldCglcnNwKSwgJXJh
eAorLkxhcmdzX2xvb3A6CisJZGVjCSVyMTEKKwlqcwkuTGFyZ3NfZG9uZQorCisJIyBUaGlzIGJs
b2NrIHNob3VsZCBiZToKKwkjICAgIG1vdnEgKCVyMTApLCAlcnRtcAorCSMgICAgbW92cSAlcnRt
cCwgKCVyYXgpCisJIyBUaGVyZSBhcmUgbm8gc3BhcmUgcmVnaXN0ZXJzIGF2YWlsYWJsZSwgc28g
d2Ugc3BpbGwgaW50byB0aGUgc2NyYXRjaAorCSMgc3BhY2UuCisJbW92cQklcjExLCAkc2NyYXRj
aF9vZmZzZXQoJXJzcCkKKwltb3ZxCSglcjEwKSwgJXIxMQorCW1vdnEJJXIxMSwgKCVyYXgpCisJ
bW92cQkkc2NyYXRjaF9vZmZzZXQoJXJzcCksICVyMTEKKworCWFkZHEJXCQ4LCAlcjEwCisJYWRk
cQlcJDgsICVyYXgKKwlqbXAJLkxhcmdzX2xvb3AKKworLkxhcmdzX2RvbmU6CisJbW92cQkkZnVu
Y19vZmZzZXQoJXJzcCksICVyYXgKKwltb3ZxCSR1bndpbmRfb2Zmc2V0KCVyc3ApLCAlcjEwCisJ
dGVzdHEJJXIxMCwgJXIxMAorCWp6CS5Mbm9fdW53aW5kCisKKwkjIFNldCB0aGUgdHJhcCBmbGFn
LgorCXB1c2hmcQorCW9ycQlcJDB4MTAwLCAwKCVyc3ApCisJcG9wZnEKKworCSMgUnVuIGFuIGlu
c3RydWN0aW9uIHRvIHRyaWdnZXIgYSBicmVha3BvaW50IGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUK
KwkjIGNhbGwuCisJbm9wCisuZ2xvYmwJYWJpX3Rlc3RfdW53aW5kX3N0YXJ0CithYmlfdGVzdF91
bndpbmRfc3RhcnQ6CisKKwljYWxsCSolcmF4CisuZ2xvYmwJYWJpX3Rlc3RfdW53aW5kX3JldHVy
bgorYWJpX3Rlc3RfdW53aW5kX3JldHVybjoKKworCSMgQ2xlYXIgdGhlIHRyYXAgZmxhZy4gTm90
ZSB0aGlzIGFzc3VtZXMgdGhlIHRyYXAgZmxhZyB3YXMgY2xlYXIgb24KKwkjIGVudHJ5LiBXZSBk
byBub3Qgc3VwcG9ydCBpbnN0cnVtZW50aW5nIGFuIHVud2luZC1pbnN0cnVtZW50ZWQKKwkjIHxh
YmlfdGVzdF90cmFtcG9saW5lfC4KKwlwdXNoZnEKKwlhbmRxCVwkLTB4MTAxLCAwKCVyc3ApCSMg
LTB4MTAxIGlzIH4weDEwMAorCXBvcGZxCisuZ2xvYmwJYWJpX3Rlc3RfdW53aW5kX3N0b3AKK2Fi
aV90ZXN0X3Vud2luZF9zdG9wOgorCisJam1wCS5MY2FsbF9kb25lCisKKy5Mbm9fdW53aW5kOgor
CWNhbGwJKiVyYXgKKworLkxjYWxsX2RvbmU6CisJIyBTdG9yZSB3aGF0IFwkZnVuYyBkaWQgb3Vy
IHN0YXRlLCBzbyBvdXIgY2FsbGVyIGNhbiBjaGVjay4KKwltb3ZxICAkc3RhdGVfb2Zmc2V0KCVy
c3ApLCAkc3RhdGUKK19fX18KKyRjb2RlIC49IHN0b3JlX2NhbGxlcl9zdGF0ZSgwLCAkc3RhdGUp
OworCisjIFJlc3RvcmUgb3VyIGNhbGxlcidzIHN0YXRlLgorJGNvZGUgLj0gbG9hZF9jYWxsZXJf
c3RhdGUoJGNhbGxlcl9zdGF0ZV9vZmZzZXQsICIlcnNwIiwgc3ViIHsKKyAgbXkgKCRvZmYsICRy
ZWcpID0gQF87CisgICRyZWcgPSBzdWJzdHIoJHJlZywgMSk7CisgIHJldHVybiAiLmNmaV9yZXN0
b3JlXHQkcmVnXG4iOworfSk7CiskY29kZSAuPSA8PF9fX187CisJYWRkcQlcJCRzdGFja19hbGxv
Y19zaXplLCAlcnNwCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CS0kc3RhY2tfYWxsb2Nfc2l6ZQor
CisJIyAlcmF4IGFscmVhZHkgY29udGFpbnMgXCRmdW5jJ3MgcmV0dXJuIHZhbHVlLCB1bm1vZGlm
aWVkLgorCXJldAorLmNmaV9lbmRwcm9jCisuTGFiaV90ZXN0X3RyYW1wb2xpbmVfc2VoX2VuZDoK
Ky5zaXplCWFiaV90ZXN0X3RyYW1wb2xpbmUsLi1hYmlfdGVzdF90cmFtcG9saW5lCitfX19fCisK
KyMgYWJpX3Rlc3RfY2xvYmJlcl8qIHplcm9zIHRoZSBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyLiBU
aGVzZSBhcmUgdXNlZCB0byB0ZXN0CisjIHRoZSBBQkktdGVzdGluZyBmcmFtZXdvcmsuCitmb3Jl
YWNoICgiYXgiLCAiYngiLCAiY3giLCAiZHgiLCAiZGkiLCAic2kiLCAiYnAiLCA4Li4xNSkgewor
ICAkY29kZSAuPSA8PF9fX187CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3IkXywgXEBhYmktb21u
aXBvdGVudAorLmdsb2JsCWFiaV90ZXN0X2Nsb2JiZXJfciRfCisuYWxpZ24JMTYKK2FiaV90ZXN0
X2Nsb2JiZXJfciRfOgorCXhvcnEJJXIkXywgJXIkXworCXJldAorLnNpemUJYWJpX3Rlc3RfY2xv
YmJlcl9yJF8sLi1hYmlfdGVzdF9jbG9iYmVyX3IkXworX19fXworfQorCitmb3JlYWNoICgwLi4x
NSkgeworICAkY29kZSAuPSA8PF9fX187CisudHlwZQlhYmlfdGVzdF9jbG9iYmVyX3htbSRfLCBc
QGFiaS1vbW5pcG90ZW50CisuZ2xvYmwJYWJpX3Rlc3RfY2xvYmJlcl94bW0kXworLmFsaWduCTE2
CithYmlfdGVzdF9jbG9iYmVyX3htbSRfOgorCXB4b3IJJXhtbSRfLCAleG1tJF8KKwlyZXQKKy5z
aXplCWFiaV90ZXN0X2Nsb2JiZXJfeG1tJF8sLi1hYmlfdGVzdF9jbG9iYmVyX3htbSRfCitfX19f
Cit9CisKKyRjb2RlIC49IDw8X19fXzsKKyMgYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdp
c3RlciBwcmVzZXJ2ZXMgdGhlIEFCSSwgYnV0IGFubm90YXRlcyB0aGUgd3JvbmcKKyMgcmVnaXN0
ZXIgaW4gdW53aW5kIG1ldGFkYXRhLgorIyB2b2lkIGFiaV90ZXN0X2JhZF91bndpbmRfd3Jvbmdf
cmVnaXN0ZXIodm9pZCk7CisudHlwZQlhYmlfdGVzdF9iYWRfdW53aW5kX3dyb25nX3JlZ2lzdGVy
LCBcQGFiaS1vbW5pcG90ZW50CisuZ2xvYmwJYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdp
c3RlcgorLmFsaWduCTE2CithYmlfdGVzdF9iYWRfdW53aW5kX3dyb25nX3JlZ2lzdGVyOgorLmNm
aV9zdGFydHByb2MKKy5MYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdpc3Rlcl9zZWhfYmVn
aW46CisJcHVzaHEJJXIxMgorLmNmaV9wdXNoCSVyMTMJIyBUaGlzIHNob3VsZCBiZSAlcjEyCisu
TGFiaV90ZXN0X2JhZF91bndpbmRfd3JvbmdfcmVnaXN0ZXJfc2VoX3B1c2hfcjEzOgorCSMgV2lu
ZG93cyBldmFsdWF0ZXMgZXBpbG9ncyBkaXJlY3RseSBpbiB0aGUgdW53aW5kZXIsIHJhdGhlciB0
aGFuIHVzaW5nCisJIyB1bndpbmQgY29kZXMuIEFkZCBhIG5vcCBzbyB0aGVyZSBpcyBvbmUgbm9u
LWVwaWxvZyBwb2ludCAoaW1tZWRpYXRlbHkKKwkjIGJlZm9yZSB0aGUgbm9wKSB3aGVyZSB0aGUg
dW53aW5kZXIgY2FuIG9ic2VydmUgdGhlIG1pc3Rha2UuCisJbm9wCisJcG9wcQklcjEyCisuY2Zp
X3BvcAklcjEyCisJcmV0CisuTGFiaV90ZXN0X2JhZF91bndpbmRfd3JvbmdfcmVnaXN0ZXJfc2Vo
X2VuZDoKKy5jZmlfZW5kcHJvYworLnNpemUJYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdp
c3RlciwuLWFiaV90ZXN0X2JhZF91bndpbmRfd3JvbmdfcmVnaXN0ZXIKKworIyBhYmlfdGVzdF9i
YWRfdW53aW5kX3RlbXBvcmFyeSBwcmVzZXJ2ZXMgdGhlIEFCSSwgYnV0IHRlbXBvcmFyaWx5IGNv
cnJ1cHRzIHRoZQorIyBzdG9yYWdlIHNwYWNlIGZvciBhIHNhdmVkIHJlZ2lzdGVyLCBicmVha2lu
ZyB1bndpbmQuCisjIHZvaWQgYWJpX3Rlc3RfYmFkX3Vud2luZF90ZW1wb3Jhcnkodm9pZCk7Cisu
dHlwZQlhYmlfdGVzdF9iYWRfdW53aW5kX3RlbXBvcmFyeSwgXEBhYmktb21uaXBvdGVudAorLmds
b2JsCWFiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5CisuYWxpZ24JMTYKK2FiaV90ZXN0X2Jh
ZF91bndpbmRfdGVtcG9yYXJ5OgorLmNmaV9zdGFydHByb2MKKy5MYWJpX3Rlc3RfYmFkX3Vud2lu
ZF90ZW1wb3Jhcnlfc2VoX2JlZ2luOgorCXB1c2hxCSVyMTIKKy5jZmlfcHVzaAklcjEyCisuTGFi
aV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5X3NlaF9wdXNoX3IxMjoKKworCW1vdnEJJXIxMiwg
JXJheAorCWluYwklcmF4CisJbW92cQklcmF4LCAoJXJzcCkKKwkjIFVud2luZGluZyBmcm9tIGhl
cmUgaXMgaW5jb3JyZWN0LiBBbHRob3VnaCAlcjEyIGl0c2VsZiBoYXMgbm90IGJlZW4KKwkjIGNo
YW5nZWQsIHRoZSB1bndpbmQgY29kZXMgc2F5IHRvIGxvb2sgaW4gKCVyc3ApIGluc3RlYWQuCisK
Kwltb3ZxCSVyMTIsICglcnNwKQorCSMgVW53aW5kaW5nIGlzIG5vdyBmaXhlZC4KKworCXBvcHEJ
JXIxMgorLmNmaV9wb3AJJXIxMgorCXJldAorLkxhYmlfdGVzdF9iYWRfdW53aW5kX3RlbXBvcmFy
eV9zZWhfZW5kOgorLmNmaV9lbmRwcm9jCisuc2l6ZQlhYmlfdGVzdF9iYWRfdW53aW5kX3RlbXBv
cmFyeSwuLWFiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5CisKKyMgYWJpX3Rlc3RfZ2V0X2Fu
ZF9jbGVhcl9kaXJlY3Rpb25fZmxhZyBjbGVhcnMgdGhlIGRpcmVjdGlvbiBmbGFnLiBJZiB0aGUg
ZmxhZworIyB3YXMgcHJldmlvdXNseSBzZXQsIGl0IHJldHVybnMgb25lLiBPdGhlcndpc2UsIGl0
IHJldHVybnMgemVyby4KKyMgaW50IGFiaV90ZXN0X2dldF9hbmRfY2xlYXJfZGlyZWN0aW9uX2Zs
YWcodm9pZCk7CisudHlwZQlhYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWcsIFxAYWJpLW9tbmlw
b3RlbnQKKy5nbG9ibAlhYmlfdGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVjdGlvbl9mbGFnCithYmlf
dGVzdF9nZXRfYW5kX2NsZWFyX2RpcmVjdGlvbl9mbGFnOgorCXB1c2hmcQorCXBvcHEJJXJheAor
CWFuZHEJXCQweDQwMCwgJXJheAorCXNocnEJXCQxMCwgJXJheAorCWNsZAorCXJldAorLnNpemUg
YWJpX3Rlc3RfZ2V0X2FuZF9jbGVhcl9kaXJlY3Rpb25fZmxhZywuLWFiaV90ZXN0X2dldF9hbmRf
Y2xlYXJfZGlyZWN0aW9uX2ZsYWcKKworIyBhYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWcgc2V0
cyB0aGUgZGlyZWN0aW9uIGZsYWcuCisjIHZvaWQgYWJpX3Rlc3Rfc2V0X2RpcmVjdGlvbl9mbGFn
KHZvaWQpOworLnR5cGUJYWJpX3Rlc3Rfc2V0X2RpcmVjdGlvbl9mbGFnLCBcQGFiaS1vbW5pcG90
ZW50CisuZ2xvYmwJYWJpX3Rlc3Rfc2V0X2RpcmVjdGlvbl9mbGFnCithYmlfdGVzdF9zZXRfZGly
ZWN0aW9uX2ZsYWc6CisJc3RkCisJcmV0Cisuc2l6ZSBhYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2Zs
YWcsLi1hYmlfdGVzdF9zZXRfZGlyZWN0aW9uX2ZsYWcKK19fX18KKworaWYgKCR3aW42NCkgewor
ICAkY29kZSAuPSA8PF9fX187CisjIGFiaV90ZXN0X2JhZF91bndpbmRfZXBpbG9nIHByZXNlcnZl
cyB0aGUgQUJJLCBhbmQgY29ycmVjdGx5IGFubm90YXRlcyB0aGUKKyMgcHJvbG9nLCBidXQgdGhl
IGVwaWxvZyBkb2VzIG5vdCBtYXRjaCBXaW42NCdzIHJ1bGVzLCBicmVha2luZyB1bndpbmQgZHVy
aW5nCisjIHRoZSBlcGlsb2cuCisjIHZvaWQgYWJpX3Rlc3RfYmFkX3Vud2luZF9lcGlsb2codm9p
ZCk7CisudHlwZQlhYmlfdGVzdF9iYWRfdW53aW5kX2VwaWxvZywgXEBhYmktb21uaXBvdGVudAor
Lmdsb2JsCWFiaV90ZXN0X2JhZF91bndpbmRfZXBpbG9nCisuYWxpZ24JMTYKK2FiaV90ZXN0X2Jh
ZF91bndpbmRfZXBpbG9nOgorLkxhYmlfdGVzdF9iYWRfdW53aW5kX2VwaWxvZ19zZWhfYmVnaW46
CisJcHVzaHEJJXIxMgorLkxhYmlfdGVzdF9iYWRfdW53aW5kX2VwaWxvZ19zZWhfcHVzaF9yMTI6
CisKKwlub3AKKworCSMgVGhlIGVwaWxvZyBzaG91bGQgYmVnaW4gaGVyZSwgYnV0IHRoZSBub3Ag
bWFrZXMgaXQgaW52YWxpZC4KKwlwb3BxCSVyMTIKKwlub3AKKwlyZXQKKy5MYWJpX3Rlc3RfYmFk
X3Vud2luZF9lcGlsb2dfc2VoX2VuZDoKKy5zaXplCWFiaV90ZXN0X2JhZF91bndpbmRfZXBpbG9n
LC4tYWJpX3Rlc3RfYmFkX3Vud2luZF9lcGlsb2cKK19fX18KKworICAjIEFkZCB1bndpbmQgbWV0
YWRhdGEgZm9yIFNFSC4KKyAgIworICAjIFRPRE8oZGF2aWRiZW4pOiBUaGlzIGlzIGFsbCBtYW51
YWwgcmlnaHQgbm93LiBPbmNlIHdlJ3ZlIGFkZGVkIFNFSCB0ZXN0cywKKyAgIyBhZGQgc3VwcG9y
dCBmb3IgZW1pdHRpbmcgdGhlc2UgaW4geDg2XzY0LXhsYXRlLnBsLCBwcm9iYWJseSBiYXNlZCBv
biBNQVNNCisgICMgYW5kIFlhc20ncyB1bndpbmQgZGlyZWN0aXZlcywgYW5kIHVuaWZ5IHdpdGgg
Q0ZJLiAoU2FkbHksIE5BU00gZG9lcyBub3QKKyAgIyBzdXBwb3J0IHRoZXNlIGRpcmVjdGl2ZXMu
KSBUaGVuIHB1c2ggdGhhdCB1cHN0cmVhbSB0byByZXBsYWNlIHRoZQorICAjIGVycm9yLXByb25l
IGFuZCBub24tc3RhbmRhcmQgY3VzdG9tIGhhbmRsZXJzLgorCisgICMgU2VlIGh0dHBzOi8vZG9j
cy5taWNyb3NvZnQuY29tL2VuLXVzL2NwcC9idWlsZC9zdHJ1Y3QtdW53aW5kLWNvZGU/dmlldz12
cy0yMDE3CisgIG15ICRVV09QX1BVU0hfTk9OVk9MID0gMDsKKyAgbXkgJFVXT1BfQUxMT0NfTEFS
R0UgPSAxOworICBteSAkVVdPUF9BTExPQ19TTUFMTCA9IDI7CisgIG15ICRVV09QX1NBVkVfTk9O
Vk9MID0gNDsKKyAgbXkgJFVXT1BfU0FWRV9YTU0xMjggPSA4OworCisgIG15ICVVV09QX1JFR19O
VU1CRVIgPSAocmF4ID0+IDAsIHJjeCA9PiAxLCByZHggPT4gMiwgcmJ4ID0+IDMsIHJzcCA9PiA0
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJicCA9PiA1LCByc2kgPT4gNiwgcmRpID0+IDcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgiciRfIiA9PiAkXyksICg4Li4xNSkpKTsK
KworICBteSAkdW53aW5kX2NvZGVzID0gIiI7CisgIG15ICRudW1fc2xvdHMgPSAwOworICBmb3Jl
YWNoIG15ICRyZWcgKHJldmVyc2UgQGNhbGxlcl9zdGF0ZSkgeworICAgICRyZWcgPSBzdWJzdHIo
JHJlZywgMSk7CisgICAgZGllICJ1bmtub3duIHJlZ2lzdGVyICRyZWciIHVubGVzcyBleGlzdHMo
JHJlZ19vZmZzZXRzeyRyZWd9KTsKKyAgICBpZiAoJHJlZyA9fiAvXnIvKSB7CisgICAgICBkaWUg
InVua25vd24gcmVnaXN0ZXIgJHJlZyIgdW5sZXNzIGV4aXN0cygkVVdPUF9SRUdfTlVNQkVSeyRy
ZWd9KTsKKyAgICAgIG15ICRpbmZvID0gJFVXT1BfU0FWRV9OT05WT0wgfCAoJFVXT1BfUkVHX05V
TUJFUnskcmVnfSA8PCA0KTsKKyAgICAgIG15ICR2YWx1ZSA9ICRyZWdfb2Zmc2V0c3skcmVnfSAv
IDg7CisgICAgICAkdW53aW5kX2NvZGVzIC49IDw8X19fXzsKKwkuYnl0ZQkuTGFiaV90ZXN0X3Ry
YW1wb2xpbmVfc2VoX3Byb2xvZ18kcmVnLS5MYWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfYmVnaW4K
KwkuYnl0ZQkkaW5mbworCS52YWx1ZQkkdmFsdWUKK19fX18KKyAgICAgICRudW1fc2xvdHMgKz0g
MjsKKyAgICB9IGVsc2lmICgkcmVnID1+IC9eeG1tLykgeworICAgICAgbXkgJGluZm8gPSAkVVdP
UF9TQVZFX1hNTTEyOCB8IChzdWJzdHIoJHJlZywgMykgPDwgNCk7CisgICAgICBteSAkdmFsdWUg
PSAkcmVnX29mZnNldHN7JHJlZ30gLyAxNjsKKyAgICAgICR1bndpbmRfY29kZXMgLj0gPDxfX19f
OworCS5ieXRlCS5MYWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfcHJvbG9nXyRyZWctLkxhYmlfdGVz
dF90cmFtcG9saW5lX3NlaF9iZWdpbgorCS5ieXRlCSRpbmZvCisJLnZhbHVlCSR2YWx1ZQorX19f
XworICAgICAgJG51bV9zbG90cyArPSAyOworICAgIH0gZWxzZSB7CisgICAgICBkaWUgInVua25v
d24gcmVnaXN0ZXIgJHJlZyI7CisgICAgfQorICB9CisKKyAgaWYgKCRzdGFja19hbGxvY19zaXpl
IDw9IDEyOCkgeworICAgIG15ICRpbmZvID0gJFVXT1BfQUxMT0NfU01BTEwgfCAoKCgkc3RhY2tf
YWxsb2Nfc2l6ZSAtIDgpIC8gOCkgPDwgNCk7CisgICAgJHVud2luZF9jb2RlcyAuPSA8PF9fX187
CisJLmJ5dGUJLkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9wcm9sb2dfYWxsb2MtLkxhYmlfdGVz
dF90cmFtcG9saW5lX3NlaF9iZWdpbgorCS5ieXRlCSRpbmZvCitfX19fCisgICAgJG51bV9zbG90
cysrOworICB9IGVsc2UgeworICAgIGRpZSAic3RhY2sgYWxsb2NhdGlvbiBuZWVkcyB0aHJlZSB1
bndpbmQgc2xvdHMiIGlmICgkc3RhY2tfYWxsb2Nfc2l6ZSA+IDUxMiAqIDEwMjQgKyA4KTsKKyAg
ICBteSAkaW5mbyA9ICRVV09QX0FMTE9DX0xBUkdFOworICAgIG15ICR2YWx1ZSA9ICRzdGFja19h
bGxvY19zaXplIC8gODsKKyAgICAkdW53aW5kX2NvZGVzIC49IDw8X19fXzsKKwkuYnl0ZQkuTGFi
aV90ZXN0X3RyYW1wb2xpbmVfc2VoX3Byb2xvZ19hbGxvYy0uTGFiaV90ZXN0X3RyYW1wb2xpbmVf
c2VoX2JlZ2luCisJLmJ5dGUJJGluZm8KKwkudmFsdWUJJHZhbHVlCitfX19fCisgICAgJG51bV9z
bG90cyArPSAyOworICB9CisKKyAgJGNvZGUgLj0gPDxfX19fOworLnNlY3Rpb24JLnBkYXRhCisu
YWxpZ24JNAorCSMgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvY3BwL2J1aWxkL3N0
cnVjdC1ydW50aW1lLWZ1bmN0aW9uP3ZpZXc9dnMtMjAxNworCS5ydmEJLkxhYmlfdGVzdF90cmFt
cG9saW5lX3NlaF9iZWdpbgorCS5ydmEJLkxhYmlfdGVzdF90cmFtcG9saW5lX3NlaF9lbmQKKwku
cnZhCS5MYWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfaW5mbworCisJLnJ2YQkuTGFiaV90ZXN0X2Jh
ZF91bndpbmRfd3JvbmdfcmVnaXN0ZXJfc2VoX2JlZ2luCisJLnJ2YQkuTGFiaV90ZXN0X2JhZF91
bndpbmRfd3JvbmdfcmVnaXN0ZXJfc2VoX2VuZAorCS5ydmEJLkxhYmlfdGVzdF9iYWRfdW53aW5k
X3dyb25nX3JlZ2lzdGVyX3NlaF9pbmZvCisKKwkucnZhCS5MYWJpX3Rlc3RfYmFkX3Vud2luZF90
ZW1wb3Jhcnlfc2VoX2JlZ2luCisJLnJ2YQkuTGFiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5
X3NlaF9lbmQKKwkucnZhCS5MYWJpX3Rlc3RfYmFkX3Vud2luZF90ZW1wb3Jhcnlfc2VoX2luZm8K
KworCS5ydmEJLkxhYmlfdGVzdF9iYWRfdW53aW5kX2VwaWxvZ19zZWhfYmVnaW4KKwkucnZhCS5M
YWJpX3Rlc3RfYmFkX3Vud2luZF9lcGlsb2dfc2VoX2VuZAorCS5ydmEJLkxhYmlfdGVzdF9iYWRf
dW53aW5kX2VwaWxvZ19zZWhfaW5mbworCisuc2VjdGlvbgkueGRhdGEKKy5hbGlnbgk4CisuTGFi
aV90ZXN0X3RyYW1wb2xpbmVfc2VoX2luZm86CisJIyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNv
bS9lbi11cy9jcHAvYnVpbGQvc3RydWN0LXVud2luZC1pbmZvP3ZpZXc9dnMtMjAxNworCS5ieXRl
CTEJIyB2ZXJzaW9uIDEsIG5vIGZsYWdzCisJLmJ5dGUJLkxhYmlfdGVzdF90cmFtcG9saW5lX3Nl
aF9wcm9sb2dfZW5kLS5MYWJpX3Rlc3RfdHJhbXBvbGluZV9zZWhfYmVnaW4KKwkuYnl0ZQkkbnVt
X3Nsb3RzCisJLmJ5dGUJMAkjIG5vIGZyYW1lIHJlZ2lzdGVyCiskdW53aW5kX2NvZGVzCisKKy5h
bGlnbgk4CisuTGFiaV90ZXN0X2JhZF91bndpbmRfd3JvbmdfcmVnaXN0ZXJfc2VoX2luZm86CisJ
LmJ5dGUJMQkjIHZlcnNpb24gMSwgbm8gZmxhZ3MKKwkuYnl0ZQkuTGFiaV90ZXN0X2JhZF91bndp
bmRfd3JvbmdfcmVnaXN0ZXJfc2VoX3B1c2hfcjEzLS5MYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9u
Z19yZWdpc3Rlcl9zZWhfYmVnaW4KKwkuYnl0ZQkxCSMgb25lIHNsb3QKKwkuYnl0ZQkwCSMgbm8g
ZnJhbWUgcmVnaXN0ZXIKKworCS5ieXRlCS5MYWJpX3Rlc3RfYmFkX3Vud2luZF93cm9uZ19yZWdp
c3Rlcl9zZWhfcHVzaF9yMTMtLkxhYmlfdGVzdF9iYWRfdW53aW5kX3dyb25nX3JlZ2lzdGVyX3Nl
aF9iZWdpbgorCS5ieXRlCUB7WyRVV09QX1BVU0hfTk9OVk9MIHwgKCRVV09QX1JFR19OVU1CRVJ7
cjEzfSA8PCA0KV19CisKKy5hbGlnbgk4CisuTGFiaV90ZXN0X2JhZF91bndpbmRfdGVtcG9yYXJ5
X3NlaF9pbmZvOgorCS5ieXRlCTEJIyB2ZXJzaW9uIDEsIG5vIGZsYWdzCisJLmJ5dGUJLkxhYmlf
dGVzdF9iYWRfdW53aW5kX3RlbXBvcmFyeV9zZWhfcHVzaF9yMTItLkxhYmlfdGVzdF9iYWRfdW53
aW5kX3RlbXBvcmFyeV9zZWhfYmVnaW4KKwkuYnl0ZQkxCSMgb25lIHNsb3QKKwkuYnl0ZQkwCSMg
bm8gZnJhbWUgcmVnaXN0ZXIKKworCS5ieXRlCS5MYWJpX3Rlc3RfYmFkX3Vud2luZF90ZW1wb3Jh
cnlfc2VoX3B1c2hfcjEyLS5MYWJpX3Rlc3RfYmFkX3Vud2luZF90ZW1wb3Jhcnlfc2VoX2JlZ2lu
CisJLmJ5dGUJQHtbJFVXT1BfUFVTSF9OT05WT0wgfCAoJFVXT1BfUkVHX05VTUJFUntyMTJ9IDw8
IDQpXX0KKworLmFsaWduCTgKKy5MYWJpX3Rlc3RfYmFkX3Vud2luZF9lcGlsb2dfc2VoX2luZm86
CisJLmJ5dGUJMQkjIHZlcnNpb24gMSwgbm8gZmxhZ3MKKwkuYnl0ZQkuTGFiaV90ZXN0X2JhZF91
bndpbmRfZXBpbG9nX3NlaF9wdXNoX3IxMi0uTGFiaV90ZXN0X2JhZF91bndpbmRfZXBpbG9nX3Nl
aF9iZWdpbgorCS5ieXRlCTEJIyBvbmUgc2xvdAorCS5ieXRlCTAJIyBubyBmcmFtZSByZWdpc3Rl
cgorCisJLmJ5dGUJLkxhYmlfdGVzdF9iYWRfdW53aW5kX2VwaWxvZ19zZWhfcHVzaF9yMTItLkxh
YmlfdGVzdF9iYWRfdW53aW5kX2VwaWxvZ19zZWhfYmVnaW4KKwkuYnl0ZQlAe1skVVdPUF9QVVNI
X05PTlZPTCB8ICgkVVdPUF9SRUdfTlVNQkVSe3IxMn0gPDwgNCldfQorX19fXworfQorCitwcmlu
dCAkY29kZTsKK2Nsb3NlIFNURE9VVCBvciBkaWUgImVycm9yIGNsb3NpbmcgU1RET1VUIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9jcnlwdG8vdGVzdC9ndGVzdF9tYWluLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0
L2d0ZXN0X21haW4uY2MKaW5kZXggYTU1NzE2ODQyOWUwNWE5YmIyMzc3YmYxYWYyNjVjOGNlOTJk
NzYyYi4uYWVlYzBmNWVlZWFkYWQ4NTQ3NjE2NzI4NmZkODgzMWUzZWNjOWMxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2NyeXB0by90ZXN0L2d0ZXN0X21haW4uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90ZXN0L2d0
ZXN0X21haW4uY2MKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxvcGVuc3NsL2NwdS5oPgog
I2luY2x1ZGUgPG9wZW5zc2wvcmFuZC5oPgogCisjaW5jbHVkZSAiYWJpX3Rlc3QuaCIKICNpbmNs
dWRlICJndGVzdF9tYWluLmgiCiAjaW5jbHVkZSAiLi4vaW50ZXJuYWwuaCIKIApAQCAtMzQsMTYg
KzM1LDE1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICB0ZXN0aW5nOjpJ
bml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CiAgIGJzc2w6OlNldHVwR29vZ2xlVGVzdCgpOwog
Ci0jaWYgIWRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQorICBib29sIHVud2luZF90ZXN0cyA9IHRy
dWU7CiAgIGZvciAoaW50IGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7CisjaWYgIWRlZmluZWQoT1BF
TlNTTF9XSU5ET1dTKQogICAgIGlmIChzdHJjbXAoYXJndltpXSwgIi0tZm9ya191bnNhZmVfYnVm
ZmVyaW5nIikgPT0gMCkgewogICAgICAgUkFORF9lbmFibGVfZm9ya191bnNhZmVfYnVmZmVyaW5n
KC0xKTsKICAgICB9Ci0gIH0KICNlbmRpZgogCiAjaWYgZGVmaW5lZChURVNUX0FSTV9DUFVTKQot
ICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7IGkrKykgewogICAgIGlmIChzdHJuY21wKGFyZ3Zb
aV0sICItLWNwdT0iLCA2KSA9PSAwKSB7CiAgICAgICBjb25zdCBjaGFyICpjcHUgPSBhcmd2W2ld
ICsgNjsKICAgICAgIHVpbnQzMl90IGFybWNhcDsKQEAgLTY4LDggKzY4LDI4IEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAgICAgcHJpbnRmKCJTaW11bGF0aW5nIENQVSAn
JXMnXG4iLCBjcHUpOwogICAgICAgKmFybWNhcF9wdHIgPSBhcm1jYXA7CiAgICAgfQotICB9CiAj
ZW5kaWYgIC8vIFRFU1RfQVJNX0NQVVMKIAotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworICAg
IGlmIChzdHJjbXAoYXJndltpXSwgIi0tbm9fdW53aW5kX3Rlc3RzIikgPT0gMCkgeworICAgICAg
dW53aW5kX3Rlc3RzID0gZmFsc2U7CisgICAgfQorICB9CisKKyAgaWYgKHVud2luZF90ZXN0cykg
eworICAgIGFiaV90ZXN0OjpFbmFibGVVbndpbmRUZXN0cygpOworICB9CisKKyAgLy8gUnVuIHRo
ZSBlbnRpcmUgdGVzdCBzdWl0ZSB1bmRlciBhbiBBQkkgY2hlY2suIFRoaXMgaXMgbGVzcyBlZmZl
Y3RpdmUgdGhhbgorICAvLyB0ZXN0aW5nIHRoZSBpbmRpdmlkdWFsIGFzc2VtYmx5IGZ1bmN0aW9u
cywgYnV0IHdpbGwgY2F0Y2ggaXNzdWVzIHdpdGgKKyAgLy8gcmFyZWx5LXVzZWQgcmVnaXN0ZXJz
LgorICBhYmlfdGVzdDo6UmVzdWx0IGFiaTsKKyAgaW50IHJldCA9IGFiaV90ZXN0OjpDaGVjaygm
YWJpLCBSVU5fQUxMX1RFU1RTKTsKKyAgaWYgKCFhYmkub2soKSkgeworICAgIGZwcmludGYoc3Rk
ZXJyLCAiQUJJIGZhaWx1cmUgaW4gdGVzdCBzdWl0ZTpcbiIpOworICAgIGZvciAoY29uc3QgYXV0
byAmZXJyb3IgOiBhYmkuZXJyb3JzKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICAlc1xu
IiwgZXJyb3IuY19zdHIoKSk7CisgICAgfQorICAgIGV4aXQoMSk7CisgIH0KKyAgcmV0dXJuIHJl
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8vdGhyZWFkX3dpbi5jIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90
aHJlYWRfd2luLmMKaW5kZXggNDUwMTE2NTBlMGUzNDEwOWNiYTE2NGI5YzE5N2U3MGY4MzVmOGRh
MS4uYzhlMTlmNTFmYjgyYmE1ZmE1YjUyNWRiMzljMTI0ZmNkMjkwNTgyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2NyeXB0by90aHJlYWRfd2luLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by90aHJlYWRfd2luLmMKQEAg
LTgyLDcgKzgyLDcgQEAgdm9pZCBDUllQVE9fU1RBVElDX01VVEVYX3VubG9ja193cml0ZShzdHJ1
Y3QgQ1JZUFRPX1NUQVRJQ19NVVRFWCAqbG9jaykgewogICBSZWxlYXNlU1JXTG9ja0V4Y2x1c2l2
ZSgmbG9jay0+bG9jayk7CiB9CiAKLXN0YXRpYyBDUklUSUNBTF9TRUNUSU9OIGdfZGVzdHJ1Y3Rv
cnNfbG9jazsKK3N0YXRpYyBTUldMT0NLIGdfZGVzdHJ1Y3RvcnNfbG9jayA9IFNSV0xPQ0tfSU5J
VDsKIHN0YXRpYyB0aHJlYWRfbG9jYWxfZGVzdHJ1Y3Rvcl90IGdfZGVzdHJ1Y3RvcnNbTlVNX09Q
RU5TU0xfVEhSRUFEX0xPQ0FMU107CiAKIHN0YXRpYyBDUllQVE9fb25jZV90IGdfdGhyZWFkX2xv
Y2FsX2luaXRfb25jZSA9IENSWVBUT19PTkNFX0lOSVQ7CkBAIC05MCwxMCArOTAsNiBAQCBzdGF0
aWMgRFdPUkQgZ190aHJlYWRfbG9jYWxfa2V5Owogc3RhdGljIGludCBnX3RocmVhZF9sb2NhbF9m
YWlsZWQ7CiAKIHN0YXRpYyB2b2lkIHRocmVhZF9sb2NhbF9pbml0KHZvaWQpIHsKLSAgaWYgKCFJ
bml0aWFsaXplQ3JpdGljYWxTZWN0aW9uQW5kU3BpbkNvdW50KCZnX2Rlc3RydWN0b3JzX2xvY2ss
IDB4NDAwKSkgewotICAgIGdfdGhyZWFkX2xvY2FsX2ZhaWxlZCA9IDE7Ci0gICAgcmV0dXJuOwot
ICB9CiAgIGdfdGhyZWFkX2xvY2FsX2tleSA9IFRsc0FsbG9jKCk7CiAgIGdfdGhyZWFkX2xvY2Fs
X2ZhaWxlZCA9IChnX3RocmVhZF9sb2NhbF9rZXkgPT0gVExTX09VVF9PRl9JTkRFWEVTKTsKIH0K
QEAgLTEyMSwxMiArMTE3LDExIEBAIHN0YXRpYyB2b2lkIE5UQVBJIHRocmVhZF9sb2NhbF9kZXN0
cnVjdG9yKFBWT0lEIG1vZHVsZSwgRFdPUkQgcmVhc29uLAogCiAgIHRocmVhZF9sb2NhbF9kZXN0
cnVjdG9yX3QgZGVzdHJ1Y3RvcnNbTlVNX09QRU5TU0xfVEhSRUFEX0xPQ0FMU107CiAKLSAgRW50
ZXJDcml0aWNhbFNlY3Rpb24oJmdfZGVzdHJ1Y3RvcnNfbG9jayk7CisgIEFjcXVpcmVTUldMb2Nr
RXhjbHVzaXZlKCZnX2Rlc3RydWN0b3JzX2xvY2spOwogICBPUEVOU1NMX21lbWNweShkZXN0cnVj
dG9ycywgZ19kZXN0cnVjdG9ycywgc2l6ZW9mKGRlc3RydWN0b3JzKSk7Ci0gIExlYXZlQ3JpdGlj
YWxTZWN0aW9uKCZnX2Rlc3RydWN0b3JzX2xvY2spOworICBSZWxlYXNlU1JXTG9ja0V4Y2x1c2l2
ZSgmZ19kZXN0cnVjdG9yc19sb2NrKTsKIAotICB1bnNpZ25lZCBpOwotICBmb3IgKGkgPSAwOyBp
IDwgTlVNX09QRU5TU0xfVEhSRUFEX0xPQ0FMUzsgaSsrKSB7CisgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBOVU1fT1BFTlNTTF9USFJFQURfTE9DQUxTOyBpKyspIHsKICAgICBpZiAoZGVzdHJ1
Y3RvcnNbaV0gIT0gTlVMTCkgewogICAgICAgZGVzdHJ1Y3RvcnNbaV0ocG9pbnRlcnNbaV0pOwog
ICAgIH0KQEAgLTI1MCw5ICsyNDUsOSBAQCBpbnQgQ1JZUFRPX3NldF90aHJlYWRfbG9jYWwodGhy
ZWFkX2xvY2FsX2RhdGFfdCBpbmRleCwgdm9pZCAqdmFsdWUsCiAgICAgfQogICB9CiAKLSAgRW50
ZXJDcml0aWNhbFNlY3Rpb24oJmdfZGVzdHJ1Y3RvcnNfbG9jayk7CisgIEFjcXVpcmVTUldMb2Nr
RXhjbHVzaXZlKCZnX2Rlc3RydWN0b3JzX2xvY2spOwogICBnX2Rlc3RydWN0b3JzW2luZGV4XSA9
IGRlc3RydWN0b3I7Ci0gIExlYXZlQ3JpdGljYWxTZWN0aW9uKCZnX2Rlc3RydWN0b3JzX2xvY2sp
OworICBSZWxlYXNlU1JXTG9ja0V4Y2x1c2l2ZSgmZ19kZXN0cnVjdG9yc19sb2NrKTsKIAogICBw
b2ludGVyc1tpbmRleF0gPSB2YWx1ZTsKICAgcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL3g1MDkvbWFrZV9tYW55X2NvbnN0cmFpbnRzLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5L21ha2Vf
bWFueV9jb25zdHJhaW50cy5nbwppbmRleCBlNTA3NDAzNzdkMTBlZjc4MzZjOTI4ZDgwY2Q5Y2Fh
ODY4ZDBmZGZhLi41Nzg2MThkZmJmYzViMjRlN2JkZDg1MmMxYTZhY2FkZTFjOTUzMzYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL3g1MDkvbWFrZV9tYW55X2NvbnN0cmFpbnRzLmdvCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9jcnlwdG8veDUwOS9tYWtlX21hbnlfY29uc3RyYWludHMuZ28KQEAgLTEzNywxMCArMTM3LDEw
IEBAIGZ1bmMgbWFpbigpIHsKIAl9ewogCQl7Im1hbnlfbmFtZXMxLnBlbSIsIDUxMywgNTEzfSwK
IAkJeyJtYW55X25hbWVzMi5wZW0iLCAxMDI1LCAwfSwKLQkJeyJtYW55X25hbWVzMy5wZW0iLCAw
LCAxMDI1fSwKKwkJeyJtYW55X25hbWVzMy5wZW0iLCAxLCAxMDI1fSwKIAkJeyJzb21lX25hbWVz
MS5wZW0iLCAyNTYsIDI1Nn0sCiAJCXsic29tZV9uYW1lczIucGVtIiwgNTEzLCAwfSwKLQkJeyJz
b21lX25hbWVzMy5wZW0iLCAwLCA1MTN9LAorCQl7InNvbWVfbmFtZXMzLnBlbSIsIDEsIDUxM30s
CiAJfQogCWZvciBpLCBsZWFmIDo9IHJhbmdlIGxlYXZlcyB7CiAJCWxlYWZUZW1wbGF0ZSA6PSB4
NTA5LkNlcnRpZmljYXRlewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5L21hbnlfbmFtZXMz
LnBlbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9jcnlwdG8veDUwOS9tYW55X25hbWVzMy5wZW0KaW5kZXggZGJmYTA0MjgxOTQ1
MjE1ZjcxYmRiYzhmOTFmYzlhNmNmYzA2ODQ5Ni4uZjE1NjM4ZjllMGVlZjUzYTIyZTNkMTdmOGEz
YjMzODc4NDExZmIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5L21hbnlfbmFtZXMzLnBl
bQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL3g1MDkvbWFueV9uYW1lczMucGVtCkBAIC0xLDUgKzEsNSBAQAog
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUpxbURDQ2FZQ2dBd0lCQWdJQkJEQU5CZ2tx
aGtpRzl3MEJBUXNGQURBTk1Rc3dDUVlEVlFRREV3SkRRVEFnCitNSUpxckRDQ2FaU2dBd0lCQWdJ
QkJEQU5CZ2txaGtpRzl3MEJBUXNGQURBTk1Rc3dDUVlEVlFRREV3SkRRVEFnCiBGdzB3TURBeE1E
RXdNREF3TURCYUdBOHlNVEF3TURFd01UQXdNREF3TUZvd2dtZlhNUkF3RGdZRFZRUURFd2QwCiBN
QzUwWlhOME1SWXdGQVlKS29aSWh2Y05BUWtCRmdkME1FQjBaWE4wTVJZd0ZBWUpLb1pJaHZjTkFR
a0JGZ2QwCiBNVUIwWlhOME1SWXdGQVlKS29aSWh2Y05BUWtCRmdkME1rQjBaWE4wTVJZd0ZBWUpL
b1pJaHZjTkFRa0JGZ2QwCkBAIC01NjAsMTIgKzU2MCwxMiBAQCBBUThBTUlJQkNnS0NBUUVBdWd2
YWhCa1NBVUYxZkM0OXZiMWJ2bFByY2w4MGtvcDFpTHBpdVlvejRRcHR3eTU3CiBvaVhDemVwQnJo
dHA1VVFTakhENEQ0aEt0Z2RNZ1Z4WCtMUnR3Z1czbW51L3ZCdTdyenByL0RTOGlvOTlwM2xxCiBa
MUFreSthTmxjTWo2TVl5OFUrWUZFZXZiL1YwbFJZOW9xd21XN0JIblhpa20vdmk2c2pJUzM1MFU4
emIvbVJ6CiBZZUlzMlI2NUxVZHVUTDUwK1VNZ2F0OW9jZXdJMmR2OGFPOURwaCs4TmRHdGc4TEZZ
eVRUSGNVeEpvTXIxUFRPCi1nbm1FVDE5V0pINFByRndrN1pFMVFKUVExTDRpS21QZVFpc3R1UUlE
QVFBQm96VXdNekFPQmdOVkhROEJBZjhFCi1CQU1DQmFBd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFV
SEF3RXdEQVlEVlIwVEFRSC9CQUl3QURBTkJna3Foa2lHCi05dzBCQVFzRkFBT0NBUUVBdE1JcG5H
ek9Ca0pYRUJtQ3NSVmJUcmc5UWdZUmxHUEc0OCtjWFQyUWJJdXRBbWJqCi1taUYrT1lnL2JSc1F0
dXFjS2puSllvZyt4NlVDVTNkMzRqYU1FZkVYZkhTd0Y3eFBRcnFKbTQ1TVhoRzNzbzRFCi0rZWw1
R01BUytTS0ZRSzN3OE5Qb0doR3duODJzejRYVjZITUcrQU5VeE1sQ3JPY3gyamg1VVcrN0lUamRS
d0pkCi1SZUovSmFNcG5lSmR3R0ZTVTlWbit0N1BGYjUxL3BPWXFPL1B1RUFOenBob3ZqTVZjRlo2
bXRBUXdZRGtRWkJKCi1WeTEvN2JQb05tYktEMEdBUzZIcFMreGFKL0RuampENkthbDJUN0dNeXZS
TW9najVCZVovdUVrWENFaHZvYUJUCi1vczFnYXFxbkdwWjZKU0VEY3R6amdwQ3RFUFI0MHlpejF3
djFDQT09Citnbm1FVDE5V0pINFByRndrN1pFMVFKUVExTDRpS21QZVFpc3R1UUlEQVFBQm8wa3dS
ekFPQmdOVkhROEJBZjhFCitCQU1DQmFBd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3RXdEQVlE
VlIwVEFRSC9CQUl3QURBU0JnTlZIUkVFCitDekFKZ2dkME1DNTBaWE4wTUEwR0NTcUdTSWIzRFFF
QkN3VUFBNElCQVFBaTdMSU15WDVFYzUxNGh2alJPWjhiCis3aTRVUjN4ZDVJYm5pVlNlaitQS1po
RzJpbk42YVg5YmtzZGRhMGRkWVplUlNIQWtOSnVvYWJlYW5rUUoveDV4CitzeEJudFdTVkxDeHo2
UzhOUnJMQVBLS1BCdkZiL1c1bnM1N0xQOVNyTElpajlsL05TZCtLL0NRTlRsZmNkb3JnCis0bHRQ
Vk53U01wL1hYakg2clFZSlNibzlNaERveGVxUHB2NzNlNGpZMERmR24xYTh1d3lDWGFsTGpoNEVr
VXlTCitZZTBON01vVUtWMEl1Y3JYS2RnajJzSGdCRnFOS0ovR1ZRNDIyeFpSYllxc3lJSjBiUEQ2
RmM4VmNxZlZydllnCitsQ1lKZnU3WGlqNW4zbWpRYVNZY2JWeEg3MVg4ZlloaE5xMXRrK1d0UU9Y
aXJ6MkVrU3VoMXJOR1UvTFQ4UTZyCiAtLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvY3J5cHRvL3g1MDkvc29tZV9uYW1lczMucGVtIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5L3Nv
bWVfbmFtZXMzLnBlbQppbmRleCBhNmQzZWU3OTBkZmM5MGJlMzIwMmM2MWFkNzdkMjVjNzY1ODUx
MWQ1Li43YjM4YmYzY2U1NmVhZjBhOWM4MTVjMjNmYzMyYjkzZmEyMTZlZWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvY3J5cHRvL3g1MDkvc29tZV9uYW1lczMucGVtCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8veDUwOS9z
b21lX25hbWVzMy5wZW0KQEAgLTEsNSArMSw1IEBACiAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0t
LS0KLU1JSTJmekNDTldlZ0F3SUJBZ0lCQnpBTkJna3Foa2lHOXcwQkFRc0ZBREFOTVFzd0NRWURW
UVFERXdKRFFUQWcKK01JSTJrekNDTlh1Z0F3SUJBZ0lCQnpBTkJna3Foa2lHOXcwQkFRc0ZBREFO
TVFzd0NRWURWUVFERXdKRFFUQWcKIEZ3MHdNREF4TURFd01EQXdNREJhR0E4eU1UQXdNREV3TVRB
d01EQXdNRm93Z2pPK01SQXdEZ1lEVlFRREV3ZDAKIE1DNTBaWE4wTVJZd0ZBWUpLb1pJaHZjTkFR
a0JGZ2QwTUVCMFpYTjBNUll3RkFZSktvWklodmNOQVFrQkZnZDAKIE1VQjBaWE4wTVJZd0ZBWUpL
b1pJaHZjTkFRa0JGZ2QwTWtCMFpYTjBNUll3RkFZSktvWklodmNOQVFrQkZnZDAKQEAgLTI4Miwx
MiArMjgyLDEzIEBAIE0rRUtiY011ZS9oRnJMR1FYQjZhMmVRWkZuK2ozaG1leGVRRjlUOGlXeGgy
UzZyekFyMVlqK3FYZURCYU1mNG8KIEJFaUVoQnhJc2FJbHdzM3FRYTRiYWVWRUVveHcrQStJU3JZ
SFRJRmNWL2kwYmNJRnQ1cDd2N3didTY4NmEvdzAKIHZJcVBmYWQ1YW1kUUpNdm1qWlhESStqR012
RlBtQlJIcjIvMWRKVVdQYUtzSmx1d1I1MTRwSnY3NHVySXlFdCsKIGRGUE0yLzVrYzJIaUxOa2V1
UzFIYmt5K2RQbERJR3JmYUhIc0NObmIvR2p2UTZZZnZEWFJyWVBDeFdNazB4M0YKLU1TYURLOVQw
em9KNWhFOWZWaVIrRDZ4Y0pPMlJOVUNVRU5TK0lpcGoza0lyTGJrQ0F3RUFBYU0xTURNd0RnWUQK
K01TYURLOVQwem9KNWhFOWZWaVIrRDZ4Y0pPMlJOVUNVRU5TK0lpcGoza0lyTGJrQ0F3RUFBYU5K
TUVjd0RnWUQKIFZSMFBBUUgvQkFRREFnV2dNQk1HQTFVZEpRUU1NQW9HQ0NzR0FRVUZCd01CTUF3
R0ExVWRFd0VCL3dRQ01BQXcKLURRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFINmFkMmtGRTBxR0Rl
M0VyTWR3VEdqYkJ6M1QxMmREdkFVVmhHSFEKLXVaU2hPZFBzWE1IRDJtVXFGZ0xFMGlKRmVYQjdq
T1NBS3R6bUtITm14WjRXMFVaN2VNUFBvZ2tnSWJHM2QzeVIKLTh6Qk8yMUNVeU9RV0NoeXdwS2NB
b3U5amkzS3E2cGI0K21xcTBhNVRHSVl5R0pLU1VUdjA5S0kraUhnd3RlQ1gKLURIenpodVRzOEFo
b2RtTk81Sy9GOVlGV0pXdlExTnJ3eVVtT0ZFdzgvVWNsanlLeEZyUDJWRW92MGZXZWlUUkIKLVBz
NlZhRkJXN1NFRWk4ZkFNOVc1a2ZzbCtpV1J2d0ZjRmRYR1F0MUhiZXl3Q3U1OERMSTR1Y2VIQ0Zi
KzNNTU8KLVh2N3dKNVVoUU9EdXp3dXE3Q3Vadmx4UjJ0aUZvUFArczVmUEgwTDhNQlA1ejZ3PQor
RWdZRFZSMFJCQXN3Q1lJSGREQXVkR1Z6ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVFBLzB2
dlkxZ0xBMgorMGpyUGtCVld0ZTdPSHpXVmt3cTdtcWdRUFI0TDlxTEx1N1ZoZWxwNGRXOG45NXMx
d0NiY2E1ajVTSkVHdjRVdgorMGZJMU9PSzdYUWVZZE5sSEJtdk1WVzQ3R29CU282dHVZTlBJL3k0
eG5NNnlwRVppUEtrZGo5QXI5cU5nVVJmVgorejNzMWN6aXA5MTVkeVRXZ3dCeTdDVHhPbEc4Tlcw
dWlGZ0VjOWlpRERmUXNQd1ZYaVZ0eE9QdGpoUGVJM0YwSgoramgzd2N0RnhCbkF2TFY5U3NEeHBX
dWpNMWRkLzFTU1EyNWpLUWhiS050aURBQzh2K1EwNDNyOFpHSGpSZHhlOAorVzJ0VldIL2l6OWMr
emUwUDBhbzdMS3Y4ZUd6b0lzckJxSUNTODZYNFp2NWxHZVRHYUQyb3NGMW9Odm1tb1NsaAorNTM2
eUZhNDE1Zz09CiAtLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL3g1MDkveDUwOV90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5L3g1MDlfdGVzdC5jYwppbmRl
eCBjNDJhN2M4MjZhM2ZlZWNiZjdkYjQ1ZjBkMWVmODc2ZjQxZWQxODg3Li4xZjY2NGI5YjRlODI2
YWJmNmIwMjA4Y2M3ODI3ZjQ3ZTg0MWRlODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3g1MDkv
eDUwOV90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8veDUwOS94NTA5X3Rlc3QuY2MKQEAgLTEyLDYg
KzEyLDcgQEAKICAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFD
VElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9S
IFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCiAKKyNpbmNsdWRlIDxhbGdvcml0aG0+
CiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8dmVj
dG9yPgpAQCAtMzEsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiLi4vaW50ZXJuYWwuaCIKICNpbmNs
dWRlICIuLi90ZXN0L3Rlc3RfdXRpbC5oIgorI2luY2x1ZGUgIi4uL3g1MDl2My9pbnRlcm5hbC5o
IgogCiAKIHN0ZDo6c3RyaW5nIEdldFRlc3REYXRhKGNvbnN0IGNoYXIgKnBhdGgpOwpAQCAtNjU5
LDYgKzY2MSwxNjIgQEAgc3RhdGljIGNvbnN0IGNoYXIga1NlbGZTaWduZWRNaXNtYXRjaEFsZ29y
aXRobXNbXSA9CiAgICAgIktTdFlxN1g5UEtzZU4rUHZtZmVvZmZJS2M1Ui9IYTM5b2k3Y0dNVkhD
cjhhaUVoc2Y5ND1cbiIKICAgICAiLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLVxuIjsKIAorLy8g
a0NvbW1vbk5hbWVXaXRoU0FOcyBpcyBhIGxlYWYgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IGtTQU5U
eXBlc1Jvb3QsIHdpdGgKKy8vICouaG9zdDEudGVzdCBhcyB0aGUgY29tbW9uIG5hbWUgYW5kIGEg
U0FOIGxpc3Qgb2YgKi5ob3N0Mi50ZXN0IGFuZAorLy8gZm9vLmhvc3QzLnRlc3QuCitzdGF0aWMg
Y29uc3QgY2hhciBrQ29tbW9uTmFtZVdpdGhTQU5zW10gPQorICAgICItLS0tLUJFR0lOIENFUlRJ
RklDQVRFLS0tLS1cbiIKKyAgICAiTUlJQjJ6Q0NBVVNnQXdJQkFnSUJBekFOQmdrcWhraUc5dzBC
QVFzRkFEQXJNUmN3RlFZRFZRUUtFdzVDYjNKcFxuIgorICAgICJibWRUVTB3Z1ZHVnpkREVRTUE0
R0ExVUVBeE1IVW05dmRDQkRRVEFnRncwd01EQXhNREV3TURBd01EQmFHQTh5XG4iCisgICAgIk1E
azVNREV3TVRBd01EQXdNRm93TnpFZU1Cd0dBMVVFQ2hNVlEyOXRiVzl1SUc1aGJXVWdkMmwwYUNC
VFFVNXpcbiIKKyAgICAiTVJVd0V3WURWUVFEREF3cUxtaHZjM1F4TG5SbGMzUXdXVEFUQmdjcWhr
ak9QUUlCQmdncWhrak9QUU1CQndOQ1xuIgorICAgICJBQVNnV3pmbkZucFFyb2tTTElDK0xoQ0tK
RFVBWS8ydXNmSURwT25hZllvWUNhc2JZZXRrbU9zbGd5WTRObjA3XG4iCisgICAgInpqdmpOUk9w
ckEvMGJkVUxYQWtkTDliTm8wZ3dSakFiQmdOVkhTTUVGREFTZ0JCQU45Y0IrMEF2dUJ4K1ZBUW5c
biIKKyAgICAiakZrQk1DY0dBMVVkRVFRZ01CNkNEQ291YUc5emRESXVkR1Z6ZElJT1ptOXZMbWh2
YzNRekxuUmxjM1F3RFFZSlxuIgorICAgICJLb1pJaHZjTkFRRUxCUUFEZ1lFQXR2MmUzaEJoc3Ns
WEIxSFR4Z3Vzam9zY2hXT1Z0dkdaVWFZbGhrS3pLVENMXG4iCisgICAgIjRZcERuNTBCY2NudWNC
VS9iOXBoWXZhRVp0eXpPdjRaWGh4VEd5TG5McklWQjl4NWlrZkNjZmwrTE5ZTmpEd01cbiIKKyAg
ICAiZW5tL2gxek9mSjd3WEx5c2NENGtVMjlXYy96eEJkNzB0aElnTFluMTZDQzFTOU50WEtzWFhE
WHY1VlZIL2JnPVxuIgorICAgICItLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4iOworCisvLyBr
Q29tbW9uTmFtZVdpdGhTQU5zIGlzIGEgbGVhZiBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkga1NBTlR5
cGVzUm9vdCwgd2l0aAorLy8gKi5ob3N0MS50ZXN0IGFzIHRoZSBjb21tb24gbmFtZSBhbmQgbm8g
U0FOIGxpc3QuCitzdGF0aWMgY29uc3QgY2hhciBrQ29tbW9uTmFtZVdpdGhvdXRTQU5zW10gPQor
ICAgICItLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbiIKKyAgICAiTUlJQnRUQ0NBUjZnQXdJ
QkFnSUJBekFOQmdrcWhraUc5dzBCQVFzRkFEQXJNUmN3RlFZRFZRUUtFdzVDYjNKcFxuIgorICAg
ICJibWRUVTB3Z1ZHVnpkREVRTUE0R0ExVUVBeE1IVW05dmRDQkRRVEFnRncwd01EQXhNREV3TURB
d01EQmFHQTh5XG4iCisgICAgIk1EazVNREV3TVRBd01EQXdNRm93T2pFaE1COEdBMVVFQ2hNWVEy
OXRiVzl1SUc1aGJXVWdkMmwwYUc5MWRDQlRcbiIKKyAgICAiUVU1ek1SVXdFd1lEVlFRRERBd3FM
bWh2YzNReExuUmxjM1F3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQlxuIgorICAgICJCd05D
QUFSdDJ2amxJclBFK2tyMTFWUzFyUlAvQVlRdTRmdmYxYk53L0s5cndZbFZCaG1MTVBZYXNFbXBD
dEtFXG4iCisgICAgIjBiRElGeWR0RFlDM3daRHBTUytZaWFHNDBzZEFveDh3SFRBYkJnTlZIU01F
RkRBU2dCQkFOOWNCKzBBdnVCeCtcbiIKKyAgICAiVkFRbmpGa0JNQTBHQ1NxR1NJYjNEUUVCQ3dV
QUE0R0JBSFJiSWVhQ0V5dE9wSnB3OU8yZGxCNjU2QUhlMSt0NVxuIgorICAgICI0SmlTNW12dHpv
Vk9MbjdmRms1RUZRdFpTN3NHMVVjMlhqbFN3K2l5dkZvVEZFcWZLeVUvbUlkYzJ2QnVQd0EyXG4i
CisgICAgIitZWFQ4YUU0UytVWjlvejVqMGdEcGlrR25rU0NXMGN5SEQ4TDhmbnROamFRUlNhTTQ4
MkpwbXRkbXV4Q2xtV09cbiIKKyAgICAicEZGWEkyQjV1c2dJXG4iCisgICAgIi0tLS0tRU5EIENF
UlRJRklDQVRFLS0tLS1cbiI7CisKKy8vIGtDb21tb25OYW1lV2l0aEVtYWlsU0FOIGlzIGEgbGVh
ZiBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkga1NBTlR5cGVzUm9vdCwgd2l0aAorLy8gKi5ob3N0MS50
ZXN0IGFzIHRoZSBjb21tb24gbmFtZSBhbmQgdGhlIGVtYWlsIGFkZHJlc3MgdGVzdEBob3N0Mi50
ZXN0IGluIHRoZQorLy8gU0FOIGxpc3QuCitzdGF0aWMgY29uc3QgY2hhciBrQ29tbW9uTmFtZVdp
dGhFbWFpbFNBTltdID0KKyAgICAiLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG4iCisgICAg
Ik1JSUJ2RENDQVNXZ0F3SUJBZ0lCQWpBTkJna3Foa2lHOXcwQkFRc0ZBREFyTVJjd0ZRWURWUVFL
RXc1Q2IzSnBcbiIKKyAgICAiYm1kVFUwd2dWR1Z6ZERFUU1BNEdBMVVFQXhNSFVtOXZkQ0JEUVRB
Z0Z3MHdNREF4TURFd01EQXdNREJhR0E4eVxuIgorICAgICJNRGs1TURFd01UQXdNREF3TUZvd0Z6
RVZNQk1HQTFVRUF3d01LaTVvYjNOME1TNTBaWE4wTUZrd0V3WUhLb1pJXG4iCisgICAgInpqMENB
UVlJS29aSXpqMERBUWNEUWdBRXRldk94Y1RqcFB6bE5Hb1VNRmZaeXIxazAzL0hpdWgrRXNudVNj
RHNcbiIKKyAgICAiOFhMS2k2ZkRrdlNhRENsSTk5eWNhYlFaUlBJcnZ5VCtkZ2xEQzZ1Z1FkK0NZ
cU5KTUVjd0RBWURWUjBUQVFIL1xuIgorICAgICJCQUl3QURBYkJnTlZIU01FRkRBU2dCQkFOOWNC
KzBBdnVCeCtWQVFuakZrQk1Cb0dBMVVkRVFRVE1CR0JEM1JsXG4iCisgICAgImMzUkFhRzl6ZERJ
dWRHVnpkREFOQmdrcWhraUc5dzBCQVFzRkFBT0JnUUNHYnFiNzhPV0pXbDR6YitxdzBEejJcbiIK
KyAgICAiSEpnWlpKdDYvK25ORy9YSktkYVllUzRlb2ZzYndzSkk0ZnV1T0Y2WnZZQ0p4Vk50R3Fk
ZlpEZ3ljdkZBOWhqdlxuIgorICAgICJOR29zQkYxL3NwUDE3Y216VGFoTGp4czcxakR2SFYvRVFK
YktHbC9acHRhMUVtMVZyelNyd29PRmFiUFh6WlRKXG4iCisgICAgImFldC9tRVIyMVovOVpzVFVv
SlFQSnc9PVxuIgorICAgICItLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4iOworCisvLyBrQ29t
bW9uTmFtZVdpdGhJUFNBTiBpcyBhIGxlYWYgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IGtTQU5UeXBl
c1Jvb3QsIHdpdGgKKy8vICouaG9zdDEudGVzdCBhcyB0aGUgY29tbW9uIG5hbWUgYW5kIHRoZSBJ
UCBhZGRyZXNzIDEyNy4wLjAuMSBpbiB0aGUKKy8vIFNBTiBsaXN0Lgorc3RhdGljIGNvbnN0IGNo
YXIga0NvbW1vbk5hbWVXaXRoSVBTQU5bXSA9CisgICAgIi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUt
LS0tLVxuIgorICAgICJNSUlCc1RDQ0FScWdBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURB
ck1SY3dGUVlEVlFRS0V3NUNiM0pwXG4iCisgICAgImJtZFRVMHdnVkdWemRERVFNQTRHQTFVRUF4
TUhVbTl2ZENCRFFUQWdGdzB3TURBeE1ERXdNREF3TURCYUdBOHlcbiIKKyAgICAiTURrNU1ERXdN
VEF3TURBd01Gb3dGekVWTUJNR0ExVUVBd3dNS2k1b2IzTjBNUzUwWlhOME1Ga3dFd1lIS29aSVxu
IgorICAgICJ6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVGS3Jna3htOFB5c1hid25IUWVURDNwOFlZ
MCtzWTRzc25aZ21qOHdYXG4iCisgICAgIktUeW44OTNmZEJIV2x6NzFHTzZ0ODJ3TVRGNWQrWll3
STJYVTUycGZsNFNCMmFNK01Ed3dEQVlEVlIwVEFRSC9cbiIKKyAgICAiQkFJd0FEQWJCZ05WSFNN
RUZEQVNnQkJBTjljQiswQXZ1QngrVkFRbmpGa0JNQThHQTFVZEVRUUlNQWFIQkg4QVxuIgorICAg
ICJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnWUVBUVdaOE9qMDU5WmpTMTA5Vi9pak1ZVDI4eHVB
TjVuNkhIeENPXG4iCisgICAgIkRvcFRQNTZadTkrZ21lNXdURVRXRWZvY3NwWnZnZWNvVU9jZWRU
Rm9LU1E3SmFmTzA5TmNWTEErRDZkZFlwanVcbiIKKyAgICAibWdmdWlMeTlkRGhxdlgvTkhhTEJN
eE9CV1diT0x3V0UraWJ5WCtwT3pqV1JDdzFMN2VVWE9yNlBoWkFPUXNtVVxuIgorICAgICJEMCtP
NktJPVxuIgorICAgICItLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4iOworCisvLyBrQ29uc3Ry
YWluZWRJbnRlcm1lZGlhdGUgaXMgYW4gaW50ZXJtZWRpYXRlIHNpZ25lZCBieSBrU0FOVHlwZXNS
b290LCB3aXRoCisvLyBwZXJtaXR0ZWQgRE5TIG5hbWVzIG9mIHBlcm1pdHRlZDEudGVzdCBhbmQg
Zm9vLnBlcm1pdHRlZDIudGVzdCBhbmQgYW4KKy8vIGV4Y2x1ZGVkIEROUyBuYW1lIG9mIGV4Y2x1
ZGVkLnBlcm1pdHRlZDEudGVzdC4gSXRzIHByaXZhdGUga2V5IGlzOgorLy8KKy8vIC0tLS0tQkVH
SU4gUFJJVkFURSBLRVktLS0tLQorLy8gTUlHSEFnRUFNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlB
d0VIQkcwd2F3SUJBUVFnVFhVTTR0SldNN096QVR0eQorLy8gSmhOT2ZJdi9kOGhlV0ZCZUtPZk1S
K1JmYVJPaFJBTkNBQVNiYmJXWWlONm1uK0JDcGc0WE5waWJPSDBEL0RONAorLy8ga1o1Qy9NbDJZ
Vm9tQzlUODNPS2syQ3pCOGZQQWFiUGI0UDRWditmSWFicEVmaldTNW56S0xZMXkKKy8vIC0tLS0t
RU5EIFBSSVZBVEUgS0VZLS0tLS0KK3N0YXRpYyBjb25zdCBjaGFyIGtDb25zdHJhaW5lZEludGVy
bWVkaWF0ZVtdID0KKyAgICAiLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG4iCisgICAgIk1J
SUNEakNDQVhlZ0F3SUJBZ0lCQWpBTkJna3Foa2lHOXcwQkFRc0ZBREFyTVJjd0ZRWURWUVFLRXc1
Q2IzSnBcbiIKKyAgICAiYm1kVFUwd2dWR1Z6ZERFUU1BNEdBMVVFQXhNSFVtOXZkQ0JEUVRBZ0Z3
MHdNREF4TURFd01EQXdNREJhR0E4eVxuIgorICAgICJNRGs1TURFd01UQXdNREF3TUZvd0tERW1N
Q1FHQTFVRUF4TWRUbUZ0WlNCRGIyNXpkSEpoYVc1MGN5QkpiblJsXG4iCisgICAgImNtMWxaR2xo
ZEdVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTYmJiV1lpTjZtbitCQ3BnNFhc
biIKKyAgICAiTnBpYk9IMEQvRE40a1o1Qy9NbDJZVm9tQzlUODNPS2syQ3pCOGZQQWFiUGI0UDRW
ditmSWFicEVmaldTNW56S1xuIgorICAgICJMWTF5bzRHSk1JR0dNQThHQTFVZEV3RUIvd1FGTUFN
QkFmOHdHd1lEVlIwakJCUXdFb0FRUURmWEFmdEFMN2djXG4iCisgICAgImZsUUVKNHhaQVRCV0Jn
TlZIUjRCQWY4RVREQktvQ293RVlJUGNHVnliV2wwZEdWa01TNTBaWE4wTUJXQ0UyWnZcbiIKKyAg
ICAiYnk1d1pYSnRhWFIwWldReUxuUmxjM1NoSERBYWdoaGxlR05zZFdSbFpDNXdaWEp0YVhSMFpX
UXhMblJsYzNRd1xuIgorICAgICJEUVlKS29aSWh2Y05BUUVMQlFBRGdZRUFGcTFLYTA1aGlLUkV3
UnBTY2VRUHpJSUg0QjVhNUlWQmc1L0V2bVFJXG4iCisgICAgIjlWMGZYeUFFMUdtYWhQdDcwc0lC
eElnek5URWFZOFAvSW9PdUNkbFpXZTBtc215RU8zUzZZU0F6T1dSNVZhbjZcbiIKKyAgICAiY1ht
Rk0xdU1kOTVUbGt4VU1SZFYraktKVHZHNlIvQk0yemx0YVY3WHQ2NjJrNUh0elQ1U3Z3MHJabEZh
Z2daelxuIgorICAgICJVeU09XG4iCisgICAgIi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS1cbiI7
CisKKy8vIGtDb21tb25OYW1lUGVybWl0dGVkTGVhZiBpcyBhIGxlYWYgY2VydGlmaWNhdGUgc2ln
bmVkIGJ5CisvLyBrQ29uc3RyYWluZWRJbnRlcm1lZGlhdGUuIEl0cyBjb21tb24gbmFtZSBpcyBw
ZXJtaXR0ZWQgYnkgdGhlIG5hbWUKKy8vIGNvbnN0cmFpbnRzLgorc3RhdGljIGNvbnN0IGNoYXIg
a0NvbW1vbk5hbWVQZXJtaXR0ZWRMZWFmW10gPQorICAgICItLS0tLUJFR0lOIENFUlRJRklDQVRF
LS0tLS1cbiIKKyAgICAiTUlJQmFEQ0NBUTJnQXdJQkFnSUJBekFLQmdncWhrak9QUVFEQWpBb01T
WXdKQVlEVlFRREV4MU9ZVzFsSUVOdlxuIgorICAgICJibk4wY21GcGJuUnpJRWx1ZEdWeWJXVmth
V0YwWlRBZ0Z3MHdNREF4TURFd01EQXdNREJhR0E4eU1EazVNREV3XG4iCisgICAgIk1UQXdNREF3
TUZvd1BqRWVNQndHQTFVRUNoTVZRMjl0Ylc5dUlHNWhiV1VnY0dWeWJXbDBkR1ZrTVJ3d0dnWURc
biIKKyAgICAiVlFRREV4Tm1iMjh1Y0dWeWJXbDBkR1ZrTVM1MFpYTjBNRmt3RXdZSEtvWkl6ajBD
QVFZSUtvWkl6ajBEQVFjRFxuIgorICAgICJRZ0FFTlg1WWNzOHE4TVJ6UFlVejZEcUxIaEpSM3dj
bW5pRlJna2lFYTdNeEUvbVJlMDB5MFZHd0g3eGk3QW9jXG4iCisgICAgImVtWFBydEQ0SndONWJz
c2JjeFdHQUtZWXphTVFNQTR3REFZRFZSMFRBUUgvQkFJd0FEQUtCZ2dxaGtqT1BRUURcbiIKKyAg
ICAiQWdOSkFEQkdBaUVBdHNuV3VSUVh0dzJ4YmllQzc4WThTVkV0VGpjWlV4OHVaeVFlMUdQTGZH
SUNJUURSNGZOWVxuIgorICAgICJ5ZzNQQzk0eWRQTlFaVnNGeEFuZTMyQ2JvbldXc29rYWxURnBV
UT09XG4iCisgICAgIi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS1cbiI7CitzdGF0aWMgY29uc3Qg
Y2hhciBrQ29tbW9uTmFtZVBlcm1pdHRlZFtdID0gImZvby5wZXJtaXR0ZWQxLnRlc3QiOworCisv
LyBrQ29tbW9uTmFtZU5vdFBlcm1pdHRlZExlYWYgaXMgYSBsZWFmIGNlcnRpZmljYXRlIHNpZ25l
ZCBieQorLy8ga0NvbnN0cmFpbmVkSW50ZXJtZWRpYXRlLiBJdHMgY29tbW9uIG5hbWUgaXMgbm90
IHBlcm1pdHRlZCBieSB0aGUgbmFtZQorLy8gY29uc3RyYWludHMuCitzdGF0aWMgY29uc3QgY2hh
ciBrQ29tbW9uTmFtZU5vdFBlcm1pdHRlZExlYWZbXSA9CisgICAgIi0tLS0tQkVHSU4gQ0VSVElG
SUNBVEUtLS0tLVxuIgorICAgICJNSUlCYXpDQ0FSQ2dBd0lCQWdJQkJEQUtCZ2dxaGtqT1BRUURB
akFvTVNZd0pBWURWUVFERXgxT1lXMWxJRU52XG4iCisgICAgImJuTjBjbUZwYm5SeklFbHVkR1Z5
YldWa2FXRjBaVEFnRncwd01EQXhNREV3TURBd01EQmFHQTh5TURrNU1ERXdcbiIKKyAgICAiTVRB
d01EQXdNRm93UVRFaU1DQUdBMVVFQ2hNWlEyOXRiVzl1SUc1aGJXVWdibTkwSUhCbGNtMXBkSFJs
WkRFYlxuIgorICAgICJNQmtHQTFVRUF4TVNibTkwTFhCbGNtMXBkSFJsWkM1MFpYTjBNRmt3RXdZ
SEtvWkl6ajBDQVFZSUtvWkl6ajBEXG4iCisgICAgIkFRY0RRZ0FFemZnaEt1V2YwSm9YYjBEcnAw
OUMzeVhNU1FRMWJ5dCtBVWF5bXZzSE9Xc3hROXYxUSt2a0YvSU1cbiIKKyAgICAiSFJxR1RrMlR5
eHJCMmlDbFZFbi9VdStZdFlveDFLTVFNQTR3REFZRFZSMFRBUUgvQkFJd0FEQUtCZ2dxaGtqT1xu
IgorICAgICJQUVFEQWdOSkFEQkdBaUVBeGFVc2x4bW9XTDF0SXZuRHo3Z0RrdG8vSGNtZFUwakhW
dVVRTFhjQ0c4d0NJUUNOXG4iCisgICAgIjV4WmppdGxDUVU4VUI1cVN1OXdINEIrMEpjVk8zU3M0
QXo3NkhFSldNdz09XG4iCisgICAgIi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS1cbiI7CitzdGF0
aWMgY29uc3QgY2hhciBrQ29tbW9uTmFtZU5vdFBlcm1pdHRlZFtdID0gIm5vdC1wZXJtaXR0ZWQu
dGVzdCI7CisKKy8vIGtDb21tb25OYW1lTm90UGVybWl0dGVkV2l0aFNBTnNMZWFmIGlzIGEgbGVh
ZiBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkKKy8vIGtDb25zdHJhaW5lZEludGVybWVkaWF0ZS4gSXRz
IGNvbW1vbiBuYW1lIGlzIG5vdCBwZXJtaXR0ZWQgYnkgdGhlIG5hbWUKKy8vIGNvbnN0cmFpbnRz
IGJ1dCBpdCBoYXMgYSBTQU4gbGlzdC4KK3N0YXRpYyBjb25zdCBjaGFyIGtDb21tb25OYW1lTm90
UGVybWl0dGVkV2l0aFNBTnNMZWFmW10gPQorICAgICItLS0tLUJFR0lOIENFUlRJRklDQVRFLS0t
LS1cbiIKKyAgICAiTUlJQnFUQ0NBVStnQXdJQkFnSUJCakFLQmdncWhrak9QUVFEQWpBb01TWXdK
QVlEVlFRREV4MU9ZVzFsSUVOdlxuIgorICAgICJibk4wY21GcGJuUnpJRWx1ZEdWeWJXVmthV0Yw
WlRBZ0Z3MHdNREF4TURFd01EQXdNREJhR0E4eU1EazVNREV3XG4iCisgICAgIk1UQXdNREF3TUZv
d1N6RXNNQ29HQTFVRUNoTWpRMjl0Ylc5dUlHNWhiV1VnYm05MElIQmxjbTFwZEhSbFpDQjNcbiIK
KyAgICAiYVhSb0lGTkJUbE14R3pBWkJnTlZCQU1URW01dmRDMXdaWEp0YVhSMFpXUXVkR1Z6ZERC
Wk1CTUdCeXFHU000OVxuIgorICAgICJBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJLc245d09BcFhGSHJx
aExkUWdiRlNlYVNvQUlieGdPMHpWU1JaVWI1bmFSXG4iCisgICAgIjkzem9MM01GT3ZaRUY4eGlF
cWg3bGUrbDNYdVVpZzBmd3FwY3NaelJOSmFqUlRCRE1Bd0dBMVVkRXdFQi93UUNcbiIKKyAgICAi
TUFBd013WURWUjBSQkN3d0tvSVRabTl2TG5CbGNtMXBkSFJsWkRFdWRHVnpkSUlUWm05dkxuQmxj
bTFwZEhSbFxuIgorICAgICJaREl1ZEdWemREQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpQUNrKzFm
MTg0S2tLQVh1bnRtcnorWWdjcThNaVpsXG4iCisgICAgIjRkZWx4NDRGdGNOYWVnSWhBSUE1bllm
enhOY1RYeERvM1UreDF2U0xINlk3ZmFMdkhpRnlTcDdPLy9xK1xuIgorICAgICItLS0tLUVORCBD
RVJUSUZJQ0FURS0tLS0tXG4iOworc3RhdGljIGNvbnN0IGNoYXIga0NvbW1vbk5hbWVOb3RQZXJt
aXR0ZWRXaXRoU0FOc1tdID0gIm5vdC1wZXJtaXR0ZWQudGVzdCI7CisKKy8vIGtDb21tb25OYW1l
Tm90RE5TTGVhZiBpcyBhIGxlYWYgY2VydGlmaWNhdGUgc2lnbmVkIGJ5CisvLyBrQ29uc3RyYWlu
ZWRJbnRlcm1lZGlhdGUuIEl0cyBjb21tb24gbmFtZSBpcyBub3QgYSBETlMgbmFtZS4KK3N0YXRp
YyBjb25zdCBjaGFyIGtDb21tb25OYW1lTm90RE5TTGVhZltdID0KKyAgICAiLS0tLS1CRUdJTiBD
RVJUSUZJQ0FURS0tLS0tXG4iCisgICAgIk1JSUJZVENDQVFhZ0F3SUJBZ0lCQ0RBS0JnZ3Foa2pP
UFFRREFqQW9NU1l3SkFZRFZRUURFeDFPWVcxbElFTnZcbiIKKyAgICAiYm5OMGNtRnBiblJ6SUVs
dWRHVnliV1ZrYVdGMFpUQWdGdzB3TURBeE1ERXdNREF3TURCYUdBOHlNRGs1TURFd1xuIgorICAg
ICJNVEF3TURBd01Gb3dOekVjTUJvR0ExVUVDaE1UUTI5dGJXOXVJRzVoYldVZ2JtOTBJRVJPVXpF
WE1CVUdBMVVFXG4iCisgICAgIkF4TU9UbTkwSUdFZ1JFNVRJRzVoYldVd1dUQVRCZ2NxaGtqT1BR
SUJCZ2dxaGtqT1BRTUJCd05DQUFTbnVleWNcbiIKKyAgICAiWnh0bnc1a2UySjJUMC9Md0FLMzdh
dVFQL1JTRmQ5bWVtK0JKVmJndmlhd3RBbGlnbkptYWZwN1p3NC9HZFlFSlxuIgorICAgICJWbThx
bHJpT0p0bHV2WEdjb3hBd0RqQU1CZ05WSFJNQkFmOEVBakFBTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FN
RVlDXG4iCisgICAgIklRQ2hVQW1WTkkzOVZIZTB6ZW1SRTA5VkRjU0VnT3hyMW5UdmpMY2cvUThw
VlFJaEFKWVpuSkkwWVpBaTA1UUhcbiIKKyAgICAiUkhObEFrVEsyVG5VYVZuM2ZHU3lsYUxpRlMx
clxuIgorICAgICItLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4iOworc3RhdGljIGNvbnN0IGNo
YXIga0NvbW1vbk5hbWVOb3RETlNbXSA9ICJOb3QgYSBETlMgbmFtZSI7CisKIC8vIENlcnRGcm9t
UEVNIHBhcnNlcyB0aGUgZ2l2ZW4sIE5VTC10ZXJtaW5hdGVkIHBlbSBibG9jayBhbmQgcmV0dXJu
cyBhbgogLy8gfFg1MDkqfC4KIHN0YXRpYyBic3NsOjpVbmlxdWVQdHI8WDUwOT4gQ2VydEZyb21Q
RU0oY29uc3QgY2hhciAqcGVtKSB7CkBAIC03MjIsNyArODgwLDggQEAgc3RhdGljIGludCBWZXJp
ZnkoWDUwOSAqbGVhZiwgY29uc3Qgc3RkOjp2ZWN0b3I8WDUwOSAqPiAmcm9vdHMsCiAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxYNTA5ICo+ICZpbnRlcm1lZGlhdGVzLAogICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8WDUwOV9DUkwgKj4gJmNybHMsIHVuc2ln
bmVkIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICBib29sIHVzZV9hZGRpdGlvbmFsX3Vu
dHJ1c3RlZCwKLSAgICAgICAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChYNTA5X1ZFUklG
WV9QQVJBTSAqKT4gY29uZmlndXJlX2NhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgICBzdGQ6
OmZ1bmN0aW9uPHZvaWQoWDUwOV9WRVJJRllfUEFSQU0gKik+IGNvbmZpZ3VyZV9jYWxsYmFjaywK
KyAgICAgICAgICAgICAgICAgIGludCAoKnZlcmlmeV9jYWxsYmFjaykoaW50LCBYNTA5X1NUT1JF
X0NUWCAqKSA9IG51bGxwdHIpIHsKICAgYnNzbDo6VW5pcXVlUHRyPFNUQUNLX09GKFg1MDkpPiBy
b290c19zdGFjayhDZXJ0c1RvU3RhY2socm9vdHMpKTsKICAgYnNzbDo6VW5pcXVlUHRyPFNUQUNL
X09GKFg1MDkpPiBpbnRlcm1lZGlhdGVzX3N0YWNrKAogICAgICAgQ2VydHNUb1N0YWNrKGludGVy
bWVkaWF0ZXMpKTsKQEAgLTExNjgsOSArMTMyNywxMSBAQCBURVNUKFg1MDlUZXN0LCBFZDI1NTE5
U2lnbikgewogICB1aW50OF90IHB1Yl9ieXRlc1szMl0sIHByaXZfYnl0ZXNbNjRdOwogICBFRDI1
NTE5X2tleXBhaXIocHViX2J5dGVzLCBwcml2X2J5dGVzKTsKIAotICBic3NsOjpVbmlxdWVQdHI8
RVZQX1BLRVk+IHB1YihFVlBfUEtFWV9uZXdfZWQyNTUxOV9wdWJsaWMocHViX2J5dGVzKSk7Cisg
IGJzc2w6OlVuaXF1ZVB0cjxFVlBfUEtFWT4gcHViKAorICAgICAgRVZQX1BLRVlfbmV3X3Jhd19w
dWJsaWNfa2V5KEVWUF9QS0VZX0VEMjU1MTksIG51bGxwdHIsIHB1Yl9ieXRlcywgMzIpKTsKICAg
QVNTRVJUX1RSVUUocHViKTsKLSAgYnNzbDo6VW5pcXVlUHRyPEVWUF9QS0VZPiBwcml2KEVWUF9Q
S0VZX25ld19lZDI1NTE5X3ByaXZhdGUocHJpdl9ieXRlcykpOworICBic3NsOjpVbmlxdWVQdHI8
RVZQX1BLRVk+IHByaXYoCisgICAgICBFVlBfUEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5KEVWUF9Q
S0VZX0VEMjU1MTksIG51bGxwdHIsIHByaXZfYnl0ZXMsIDMyKSk7CiAgIEFTU0VSVF9UUlVFKHBy
aXYpOwogCiAgIGJzc2w6OlNjb3BlZEVWUF9NRF9DVFggbWRfY3R4OwpAQCAtMTY4NCwzICsxODQ1
LDIzMSBAQCBURVNUKFg1MDlUZXN0LCBSZWFkQklPRW1wdHkpIHsKICAgRVhQRUNUX0VRKEVSUl9M
SUJfQVNOMSwgRVJSX0dFVF9MSUIoZXJyKSk7CiAgIEVYUEVDVF9FUShBU04xX1JfSEVBREVSX1RP
T19MT05HLCBFUlJfR0VUX1JFQVNPTihlcnIpKTsKIH0KKworVEVTVChYNTA5VGVzdCwgUmVhZEJJ
T09uZUJ5dGUpIHsKKyAgYnNzbDo6VW5pcXVlUHRyPEJJTz4gYmlvKEJJT19uZXdfbWVtX2J1Zigi
XHgzMCIsIDEpKTsKKyAgQVNTRVJUX1RSVUUoYmlvKTsKKworICAvLyBDUHl0aG9uIGV4cGVjdHMg
fEFTTjFfUl9IRUFERVJfVE9PX0xPTkd8IG9uIEVPRiwgdG8gdGVybWluYXRlIGEgc2VyaWVzIG9m
CisgIC8vIGNlcnRpZmljYXRlcy4gVGhpcyBFT0YgYXBwZWFyZWQgYWZ0ZXIgc29tZSBkYXRhLCBo
b3dldmVyLCBzbyB3ZSBkbyBub3Qgd2lzaAorICAvLyB0byBzaWduYWwgRU9GLgorICBic3NsOjpV
bmlxdWVQdHI8WDUwOT4geDUwOShkMmlfWDUwOV9iaW8oYmlvLmdldCgpLCBudWxscHRyKSk7Cisg
IEVYUEVDVF9GQUxTRSh4NTA5KTsKKyAgdWludDMyX3QgZXJyID0gRVJSX2dldF9lcnJvcigpOwor
ICBFWFBFQ1RfRVEoRVJSX0xJQl9BU04xLCBFUlJfR0VUX0xJQihlcnIpKTsKKyAgRVhQRUNUX0VR
KEFTTjFfUl9OT1RfRU5PVUdIX0RBVEEsIEVSUl9HRVRfUkVBU09OKGVycikpOworfQorCitURVNU
KFg1MDlUZXN0LCBQYXJ0aWFsQklPUmV0dXJuKSB7CisgIC8vIENyZWF0ZSBhIGZpbHRlciBCSU8g
dGhhdCBvbmx5IHJlYWRzIGFuZCB3cml0ZXMgb25lIGJ5dGUgYXQgYSB0aW1lLgorICBic3NsOjpV
bmlxdWVQdHI8QklPX01FVEhPRD4gbWV0aG9kKEJJT19tZXRoX25ldygwLCBudWxscHRyKSk7Cisg
IEFTU0VSVF9UUlVFKG1ldGhvZCk7CisgIEFTU0VSVF9UUlVFKEJJT19tZXRoX3NldF9jcmVhdGUo
bWV0aG9kLmdldCgpLCBbXShCSU8gKmIpIC0+IGludCB7CisgICAgQklPX3NldF9pbml0KGIsIDEp
OworICAgIHJldHVybiAxOworICB9KSk7CisgIEFTU0VSVF9UUlVFKAorICAgICAgQklPX21ldGhf
c2V0X3JlYWQobWV0aG9kLmdldCgpLCBbXShCSU8gKmIsIGNoYXIgKm91dCwgaW50IGxlbikgLT4g
aW50IHsKKyAgICAgICAgcmV0dXJuIEJJT19yZWFkKEJJT19uZXh0KGIpLCBvdXQsIHN0ZDo6bWlu
KGxlbiwgMSkpOworICAgICAgfSkpOworICBBU1NFUlRfVFJVRShCSU9fbWV0aF9zZXRfd3JpdGUo
CisgICAgICBtZXRob2QuZ2V0KCksIFtdKEJJTyAqYiwgY29uc3QgY2hhciAqaW4sIGludCBsZW4p
IC0+IGludCB7CisgICAgICAgIHJldHVybiBCSU9fd3JpdGUoQklPX25leHQoYiksIGluLCBzdGQ6
Om1pbihsZW4sIDEpKTsKKyAgICAgIH0pKTsKKworICBic3NsOjpVbmlxdWVQdHI8QklPPiBiaW8o
QklPX25ldyhtZXRob2QuZ2V0KCkpKTsKKyAgQVNTRVJUX1RSVUUoYmlvKTsKKyAgQklPICptZW1f
YmlvID0gQklPX25ldyhCSU9fc19tZW0oKSk7CisgIEFTU0VSVF9UUlVFKG1lbV9iaW8pOworICBC
SU9fcHVzaChiaW8uZ2V0KCksIG1lbV9iaW8pOyAgLy8gQklPX3B1c2ggdGFrZXMgb3duZXJzaGlw
LgorCisgIGJzc2w6OlVuaXF1ZVB0cjxYNTA5PiBjZXJ0KENlcnRGcm9tUEVNKGtMZWFmUEVNKSk7
CisgIEFTU0VSVF9UUlVFKGNlcnQpOworICB1aW50OF90ICpkZXIgPSBudWxscHRyOworICBpbnQg
ZGVyX2xlbiA9IGkyZF9YNTA5KGNlcnQuZ2V0KCksICZkZXIpOworICBBU1NFUlRfR1QoZGVyX2xl
biwgMCk7CisgIGJzc2w6OlVuaXF1ZVB0cjx1aW50OF90PiBmcmVlX2RlcihkZXIpOworCisgIC8v
IFdyaXRlIHRoZSBjZXJ0aWZpY2F0ZSBpbnRvIHRoZSBCSU8uIFRob3VnaCB3ZSBvbmx5IHdyaXRl
IG9uZSBieXRlIGF0IGEKKyAgLy8gdGltZSwgdGhlIHdyaXRlIHNob3VsZCBzdWNjZWVkLgorICBB
U1NFUlRfRVEoMSwgaTJkX1g1MDlfYmlvKGJpby5nZXQoKSwgY2VydC5nZXQoKSkpOworICBjb25z
dCB1aW50OF90ICpkZXIyOworICBzaXplX3QgZGVyMl9sZW47CisgIEFTU0VSVF9UUlVFKEJJT19t
ZW1fY29udGVudHMobWVtX2JpbywgJmRlcjIsICZkZXIyX2xlbikpOworICBFWFBFQ1RfRVEoQnl0
ZXMoZGVyLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGRlcl9sZW4pKSwgQnl0ZXMoZGVyMiwgZGVyMl9s
ZW4pKTsKKworICAvLyBSZWFkIHRoZSBjZXJ0aWZpY2F0ZSBiYWNrIG91dCBvZiB0aGUgQklPLiBU
aG91Z2ggd2Ugb25seSByZWFkIG9uZSBieXRlIGF0IGEKKyAgLy8gdGltZSwgdGhlIHJlYWQgc2hv
dWxkIHN1Y2NlZWQuCisgIGJzc2w6OlVuaXF1ZVB0cjxYNTA5PiBjZXJ0MihkMmlfWDUwOV9iaW8o
YmlvLmdldCgpLCBudWxscHRyKSk7CisgIEFTU0VSVF9UUlVFKGNlcnQyKTsKKyAgRVhQRUNUX0VR
KDAsIFg1MDlfY21wKGNlcnQuZ2V0KCksIGNlcnQyLmdldCgpKSk7Cit9CisKK1RFU1QoWDUwOVRl
c3QsIENvbW1vbk5hbWVGYWxsYmFjaykgeworICBic3NsOjpVbmlxdWVQdHI8WDUwOT4gcm9vdCA9
IENlcnRGcm9tUEVNKGtTQU5UeXBlc1Jvb3QpOworICBBU1NFUlRfVFJVRShyb290KTsKKyAgYnNz
bDo6VW5pcXVlUHRyPFg1MDk+IHdpdGhfc2FucyA9IENlcnRGcm9tUEVNKGtDb21tb25OYW1lV2l0
aFNBTnMpOworICBBU1NFUlRfVFJVRSh3aXRoX3NhbnMpOworICBic3NsOjpVbmlxdWVQdHI8WDUw
OT4gd2l0aG91dF9zYW5zID0gQ2VydEZyb21QRU0oa0NvbW1vbk5hbWVXaXRob3V0U0FOcyk7Cisg
IEFTU0VSVF9UUlVFKHdpdGhvdXRfc2Fucyk7CisgIGJzc2w6OlVuaXF1ZVB0cjxYNTA5PiB3aXRo
X2VtYWlsID0gQ2VydEZyb21QRU0oa0NvbW1vbk5hbWVXaXRoRW1haWxTQU4pOworICBBU1NFUlRf
VFJVRSh3aXRoX2VtYWlsKTsKKyAgYnNzbDo6VW5pcXVlUHRyPFg1MDk+IHdpdGhfaXAgPSBDZXJ0
RnJvbVBFTShrQ29tbW9uTmFtZVdpdGhJUFNBTik7CisgIEFTU0VSVF9UUlVFKHdpdGhfaXApOwor
CisgIGF1dG8gdmVyaWZ5X2NlcnQgPSBbJl0oWDUwOSAqbGVhZiwgdW5zaWduZWQgZmxhZ3MsIGNv
bnN0IGNoYXIgKmhvc3QpIHsKKyAgICByZXR1cm4gVmVyaWZ5KAorICAgICAgICBsZWFmLCB7cm9v
dC5nZXQoKX0sIHt9LCB7fSwgMCwgZmFsc2UsIFsmXShYNTA5X1ZFUklGWV9QQVJBTSAqcGFyYW0p
IHsKKyAgICAgICAgICBBU1NFUlRfVFJVRShYNTA5X1ZFUklGWV9QQVJBTV9zZXQxX2hvc3QocGFy
YW0sIGhvc3QsIHN0cmxlbihob3N0KSkpOworICAgICAgICAgIFg1MDlfVkVSSUZZX1BBUkFNX3Nl
dF9ob3N0ZmxhZ3MocGFyYW0sIGZsYWdzKTsKKyAgICAgICAgfSk7CisgIH07CisKKyAgLy8gQnkg
ZGVmYXVsdCwgdGhlIGNvbW1vbiBuYW1lIGlzIGlnbm9yZWQgaWYgdGhlIFNBTiBsaXN0IGlzIHBy
ZXNlbnQgYnV0CisgIC8vIG90aGVyd2lzZSBpcyBjaGVja2VkLgorICBFWFBFQ1RfRVEoWDUwOV9W
X0VSUl9IT1NUTkFNRV9NSVNNQVRDSCwKKyAgICAgICAgICAgIHZlcmlmeV9jZXJ0KHdpdGhfc2Fu
cy5nZXQoKSwgMCAvKiBubyBmbGFncyAqLywgImZvby5ob3N0MS50ZXN0IikpOworICBFWFBFQ1Rf
RVEoWDUwOV9WX09LLAorICAgICAgICAgICAgdmVyaWZ5X2NlcnQod2l0aF9zYW5zLmdldCgpLCAw
IC8qIG5vIGZsYWdzICovLCAiZm9vLmhvc3QyLnRlc3QiKSk7CisgIEVYUEVDVF9FUShYNTA5X1Zf
T0ssCisgICAgICAgICAgICB2ZXJpZnlfY2VydCh3aXRoX3NhbnMuZ2V0KCksIDAgLyogbm8gZmxh
Z3MgKi8sICJmb28uaG9zdDMudGVzdCIpKTsKKyAgRVhQRUNUX0VRKFg1MDlfVl9PSywgdmVyaWZ5
X2NlcnQod2l0aG91dF9zYW5zLmdldCgpLCAwIC8qIG5vIGZsYWdzICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZm9vLmhvc3QxLnRlc3QiKSk7CisgIEVYUEVDVF9FUShY
NTA5X1ZfRVJSX0hPU1ROQU1FX01JU01BVENILAorICAgICAgICAgICAgdmVyaWZ5X2NlcnQod2l0
aF9lbWFpbC5nZXQoKSwgMCAvKiBubyBmbGFncyAqLywgImZvby5ob3N0MS50ZXN0IikpOworICBF
WFBFQ1RfRVEoWDUwOV9WX0VSUl9IT1NUTkFNRV9NSVNNQVRDSCwKKyAgICAgICAgICAgIHZlcmlm
eV9jZXJ0KHdpdGhfaXAuZ2V0KCksIDAgLyogbm8gZmxhZ3MgKi8sICJmb28uaG9zdDEudGVzdCIp
KTsKKworICAvLyBYNTA5X0NIRUNLX0ZMQUdfQUxXQVlTX0NIRUNLX1NVQkpFQ1QgaXMgaWdub3Jl
ZC4KKyAgRVhQRUNUX0VRKFg1MDlfVl9FUlJfSE9TVE5BTUVfTUlTTUFUQ0gsCisgICAgICAgICAg
ICB2ZXJpZnlfY2VydCh3aXRoX3NhbnMuZ2V0KCksIFg1MDlfQ0hFQ0tfRkxBR19BTFdBWVNfQ0hF
Q0tfU1VCSkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJmb28uaG9zdDEudGVzdCIpKTsK
KyAgRVhQRUNUX0VRKFg1MDlfVl9PSywKKyAgICAgICAgICAgIHZlcmlmeV9jZXJ0KHdpdGhfc2Fu
cy5nZXQoKSwgWDUwOV9DSEVDS19GTEFHX0FMV0FZU19DSEVDS19TVUJKRUNULAorICAgICAgICAg
ICAgICAgICAgICAgICAgImZvby5ob3N0Mi50ZXN0IikpOworICBFWFBFQ1RfRVEoWDUwOV9WX09L
LAorICAgICAgICAgICAgdmVyaWZ5X2NlcnQod2l0aF9zYW5zLmdldCgpLCBYNTA5X0NIRUNLX0ZM
QUdfQUxXQVlTX0NIRUNLX1NVQkpFQ1QsCisgICAgICAgICAgICAgICAgICAgICAgICAiZm9vLmhv
c3QzLnRlc3QiKSk7CisgIEVYUEVDVF9FUShYNTA5X1ZfT0ssIHZlcmlmeV9jZXJ0KHdpdGhvdXRf
c2Fucy5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWDUwOV9DSEVD
S19GTEFHX0FMV0FZU19DSEVDS19TVUJKRUNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZm9vLmhvc3QxLnRlc3QiKSk7CisgIEVYUEVDVF9FUShYNTA5X1ZfRVJSX0hPU1RO
QU1FX01JU01BVENILAorICAgICAgICAgICAgdmVyaWZ5X2NlcnQod2l0aF9lbWFpbC5nZXQoKSwg
WDUwOV9DSEVDS19GTEFHX0FMV0FZU19DSEVDS19TVUJKRUNULAorICAgICAgICAgICAgICAgICAg
ICAgICAgImZvby5ob3N0MS50ZXN0IikpOworICBFWFBFQ1RfRVEoWDUwOV9WX0VSUl9IT1NUTkFN
RV9NSVNNQVRDSCwKKyAgICAgICAgICAgIHZlcmlmeV9jZXJ0KHdpdGhfaXAuZ2V0KCksIFg1MDlf
Q0hFQ0tfRkxBR19BTFdBWVNfQ0hFQ0tfU1VCSkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJmb28uaG9zdDEudGVzdCIpKTsKKworICAvLyBYNTA5X0NIRUNLX0ZMQUdfTkVWRVJfQ0hFQ0tf
U1VCSkVDVCBpbXBsZW1lbnRzIHRoZSBjb3JyZWN0IGJlaGF2aW9yOiB0aGUKKyAgLy8gY29tbW9u
IG5hbWUgaXMgbmV2ZXIgY2hlY2tlZC4KKyAgRVhQRUNUX0VRKFg1MDlfVl9FUlJfSE9TVE5BTUVf
TUlTTUFUQ0gsCisgICAgICAgICAgICB2ZXJpZnlfY2VydCh3aXRoX3NhbnMuZ2V0KCksIFg1MDlf
Q0hFQ0tfRkxBR19ORVZFUl9DSEVDS19TVUJKRUNULAorICAgICAgICAgICAgICAgICAgICAgICAg
ImZvby5ob3N0MS50ZXN0IikpOworICBFWFBFQ1RfRVEoWDUwOV9WX09LLAorICAgICAgICAgICAg
dmVyaWZ5X2NlcnQod2l0aF9zYW5zLmdldCgpLCBYNTA5X0NIRUNLX0ZMQUdfTkVWRVJfQ0hFQ0tf
U1VCSkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJmb28uaG9zdDIudGVzdCIpKTsKKyAg
RVhQRUNUX0VRKFg1MDlfVl9PSywKKyAgICAgICAgICAgIHZlcmlmeV9jZXJ0KHdpdGhfc2Fucy5n
ZXQoKSwgWDUwOV9DSEVDS19GTEFHX05FVkVSX0NIRUNLX1NVQkpFQ1QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAiZm9vLmhvc3QzLnRlc3QiKSk7CisgIEVYUEVDVF9FUShYNTA5X1ZfRVJSX0hP
U1ROQU1FX01JU01BVENILAorICAgICAgICAgICAgdmVyaWZ5X2NlcnQod2l0aG91dF9zYW5zLmdl
dCgpLCBYNTA5X0NIRUNLX0ZMQUdfTkVWRVJfQ0hFQ0tfU1VCSkVDVCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJmb28uaG9zdDEudGVzdCIpKTsKKyAgRVhQRUNUX0VRKFg1MDlfVl9FUlJfSE9T
VE5BTUVfTUlTTUFUQ0gsCisgICAgICAgICAgICB2ZXJpZnlfY2VydCh3aXRoX2VtYWlsLmdldCgp
LCBYNTA5X0NIRUNLX0ZMQUdfTkVWRVJfQ0hFQ0tfU1VCSkVDVCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJmb28uaG9zdDEudGVzdCIpKTsKKyAgRVhQRUNUX0VRKFg1MDlfVl9FUlJfSE9TVE5B
TUVfTUlTTUFUQ0gsCisgICAgICAgICAgICB2ZXJpZnlfY2VydCh3aXRoX2lwLmdldCgpLCBYNTA5
X0NIRUNLX0ZMQUdfTkVWRVJfQ0hFQ0tfU1VCSkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJmb28uaG9zdDEudGVzdCIpKTsKK30KKworVEVTVChYNTA5VGVzdCwgTG9va3NMaWtlRE5TTmFt
ZSkgeworICAgIHN0YXRpYyBjb25zdCBjaGFyICprVmFsaWRbXSA9IHsKKyAgICAgICAgImV4YW1w
bGUuY29tIiwKKyAgICAgICAgImVYYW1wbGUxMjMtLmNvbSIsCisgICAgICAgICIqLmV4YW1wbGUu
Y29tIiwKKyAgICAgICAgImV4YV9tcGxlLmNvbSIsCisgICAgICAgICJleGFtcGxlLmNvbS4iLAor
ICAgICAgICAicHJvamVjdC1kZXY6dXMtY2VudHJhbDE6bWFpbiIsCisgICAgfTsKKyAgICBzdGF0
aWMgY29uc3QgY2hhciAqa0ludmFsaWRbXSA9IHsKKyAgICAgICAgIi1lWGFtcGxlMTIzLS5jb20i
LAorICAgICAgICAiIiwKKyAgICAgICAgIi4iLAorICAgICAgICAiKiIsCisgICAgICAgICIqLiIs
CisgICAgICAgICJleGFtcGxlLi5jb20iLAorICAgICAgICAiLmV4YW1wbGUuY29tIiwKKyAgICAg
ICAgImV4YW1wbGUuY29tLi4iLAorICAgICAgICAiKmZvby5leGFtcGxlLmNvbSIsCisgICAgICAg
ICJmb28uKi5leGFtcGxlLmNvbSIsCisgICAgICAgICJmb28sYmFyIiwKKyAgICB9OworCisgICAg
Zm9yIChjb25zdCBjaGFyICpzdHIgOiBrVmFsaWQpIHsKKyAgICAgIFNDT1BFRF9UUkFDRShzdHIp
OworICAgICAgRVhQRUNUX1RSVUUoeDUwOXYzX2xvb2tzX2xpa2VfZG5zX25hbWUoCisgICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KHN0ciksIHN0cmxlbihzdHIpKSk7
CisgICAgfQorICAgIGZvciAoY29uc3QgY2hhciAqc3RyIDoga0ludmFsaWQpIHsKKyAgICAgIFND
T1BFRF9UUkFDRShzdHIpOworICAgICAgRVhQRUNUX0ZBTFNFKHg1MDl2M19sb29rc19saWtlX2Ru
c19uYW1lKAorICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihzdHIp
LCBzdHJsZW4oc3RyKSkpOworICAgIH0KK30KKworVEVTVChYNTA5VGVzdCwgQ29tbW9uTmFtZUFu
ZE5hbWVDb25zdHJhaW50cykgeworICBic3NsOjpVbmlxdWVQdHI8WDUwOT4gcm9vdCA9IENlcnRG
cm9tUEVNKGtTQU5UeXBlc1Jvb3QpOworICBBU1NFUlRfVFJVRShyb290KTsKKyAgYnNzbDo6VW5p
cXVlUHRyPFg1MDk+IGludGVybWVkaWF0ZSA9IENlcnRGcm9tUEVNKGtDb25zdHJhaW5lZEludGVy
bWVkaWF0ZSk7CisgIEFTU0VSVF9UUlVFKGludGVybWVkaWF0ZSk7CisgIGJzc2w6OlVuaXF1ZVB0
cjxYNTA5PiBwZXJtaXR0ZWQgPSBDZXJ0RnJvbVBFTShrQ29tbW9uTmFtZVBlcm1pdHRlZExlYWYp
OworICBBU1NFUlRfVFJVRShwZXJtaXR0ZWQpOworICBic3NsOjpVbmlxdWVQdHI8WDUwOT4gbm90
X3Blcm1pdHRlZCA9CisgICAgICBDZXJ0RnJvbVBFTShrQ29tbW9uTmFtZU5vdFBlcm1pdHRlZExl
YWYpOworICBBU1NFUlRfVFJVRShub3RfcGVybWl0dGVkKTsKKyAgYnNzbDo6VW5pcXVlUHRyPFg1
MDk+IG5vdF9wZXJtaXR0ZWRfd2l0aF9zYW5zID0KKyAgICAgIENlcnRGcm9tUEVNKGtDb21tb25O
YW1lTm90UGVybWl0dGVkV2l0aFNBTnNMZWFmKTsKKyAgQVNTRVJUX1RSVUUobm90X3Blcm1pdHRl
ZF93aXRoX3NhbnMpOworICBic3NsOjpVbmlxdWVQdHI8WDUwOT4gbm90X2RucyA9IENlcnRGcm9t
UEVNKGtDb21tb25OYW1lTm90RE5TTGVhZik7CisgIEFTU0VSVF9UUlVFKG5vdF9kbnMpOworCisg
IGF1dG8gdmVyaWZ5X2NlcnQgPSBbJl0oWDUwOSAqbGVhZiwgdW5zaWduZWQgZmxhZ3MsIGNvbnN0
IGNoYXIgKmhvc3QpIHsKKyAgICByZXR1cm4gVmVyaWZ5KAorICAgICAgICBsZWFmLCB7cm9vdC5n
ZXQoKX0sIHtpbnRlcm1lZGlhdGUuZ2V0KCl9LCB7fSwgMCwgZmFsc2UsCisgICAgICAgIFsmXShY
NTA5X1ZFUklGWV9QQVJBTSAqcGFyYW0pIHsKKyAgICAgICAgICBBU1NFUlRfVFJVRShYNTA5X1ZF
UklGWV9QQVJBTV9zZXQxX2hvc3QocGFyYW0sIGhvc3QsIHN0cmxlbihob3N0KSkpOworICAgICAg
ICAgIFg1MDlfVkVSSUZZX1BBUkFNX3NldF9ob3N0ZmxhZ3MocGFyYW0sIGZsYWdzKTsKKyAgICAg
ICAgfSk7CisgIH07CisKKyAgLy8gQ2VydGlmaWNhdGVzIHdoaWNoIHdvdWxkIG90aGVyd2lzZSB0
cmlnZ2VyIHRoZSBjb21tb24gbmFtZSBmYWxsYmFjayBhcmUKKyAgLy8gcmVqZWN0ZWQgd2hlbmV2
ZXIgdGhlcmUgYXJlIG5hbWUgY29uc3RyYWludHMuIFdlIGRvIHRoaXMgd2hldGhlciBvciBub3QK
KyAgLy8gdGhlIGNvbW1vbiBuYW1lIG1hdGNoZXMgdGhlIGNvbnN0cmFpbnRzLgorICBFWFBFQ1Rf
RVEoCisgICAgICBYNTA5X1ZfRVJSX05BTUVfQ09OU1RSQUlOVFNfV0lUSE9VVF9TQU5TLAorICAg
ICAgdmVyaWZ5X2NlcnQocGVybWl0dGVkLmdldCgpLCAwIC8qIG5vIGZsYWdzICovLCBrQ29tbW9u
TmFtZVBlcm1pdHRlZCkpOworICBFWFBFQ1RfRVEoWDUwOV9WX0VSUl9OQU1FX0NPTlNUUkFJTlRT
X1dJVEhPVVRfU0FOUywKKyAgICAgICAgICAgIHZlcmlmeV9jZXJ0KG5vdF9wZXJtaXR0ZWQuZ2V0
KCksIDAgLyogbm8gZmxhZ3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICBrQ29tbW9uTmFt
ZU5vdFBlcm1pdHRlZCkpOworCisgIC8vIFRoaXMgb2NjdXJzIGV2ZW4gaWYgdGhlIGJ1aWx0LWlu
IG5hbWUgY2hlY2tzIGFyZW4ndCB1c2VkLiBUaGUgY2FsbGVyIG1heQorICAvLyBzZXBhcmF0ZWx5
IGNhbGwgfFg1MDlfY2hlY2tfaG9zdHwuCisgIEVYUEVDVF9FUShYNTA5X1ZfRVJSX05BTUVfQ09O
U1RSQUlOVFNfV0lUSE9VVF9TQU5TLAorICAgICAgICAgICAgVmVyaWZ5KG5vdF9wZXJtaXR0ZWQu
Z2V0KCksIHtyb290LmdldCgpfSwge2ludGVybWVkaWF0ZS5nZXQoKX0sIHt9LAorICAgICAgICAg
ICAgICAgICAgIDAgLyogbm8gZmxhZ3MgKi8sIGZhbHNlLCBudWxscHRyKSk7CisKKyAgLy8gSWYg
dGhlIGxlYWYgY2VydGlmaWNhdGUgaGFzIFNBTnMsIHRoZSBjb21tb24gbmFtZSBmYWxsYmFjayBp
cyBhbHdheXMKKyAgLy8gZGlzYWJsZWQsIHNvIHRoZSBuYW1lIGNvbnN0cmFpbnRzIGRvIG5vdCBh
cHBseS4KKyAgRVhQRUNUX0VRKFg1MDlfVl9PSywgVmVyaWZ5KG5vdF9wZXJtaXR0ZWRfd2l0aF9z
YW5zLmdldCgpLCB7cm9vdC5nZXQoKX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
aW50ZXJtZWRpYXRlLmdldCgpfSwge30sIDAsIGZhbHNlLCBudWxscHRyKSk7CisgIEVYUEVDVF9F
UShYNTA5X1ZfRVJSX0hPU1ROQU1FX01JU01BVENILAorICAgICAgICAgICAgdmVyaWZ5X2NlcnQo
bm90X3Blcm1pdHRlZF93aXRoX3NhbnMuZ2V0KCksIDAgLyogbm8gZmxhZ3MgKi8sCisgICAgICAg
ICAgICAgICAgICAgICAgICBrQ29tbW9uTmFtZU5vdFBlcm1pdHRlZFdpdGhTQU5zKSk7CisKKyAg
Ly8gSWYgdGhlIGNvbW1vbiBuYW1lIGRvZXMgbm90IGxvb2sgbGlrZSBhIEROUyBuYW1lLCB3ZSBh
cHBseSBuZWl0aGVyIG5hbWUKKyAgLy8gY29uc3RyYWludHMgbm9yIGNvbW1vbiBuYW1lIGZhbGxi
YWNrLgorICBFWFBFQ1RfRVEoWDUwOV9WX09LLCBWZXJpZnkobm90X2Rucy5nZXQoKSwge3Jvb3Qu
Z2V0KCl9LCB7aW50ZXJtZWRpYXRlLmdldCgpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHt9LCAwLCBmYWxzZSwgbnVsbHB0cikpOworICBFWFBFQ1RfRVEoWDUwOV9WX0VSUl9IT1NU
TkFNRV9NSVNNQVRDSCwKKyAgICAgICAgICAgIHZlcmlmeV9jZXJ0KG5vdF9kbnMuZ2V0KCksIDAg
Lyogbm8gZmxhZ3MgKi8sIGtDb21tb25OYW1lTm90RE5TKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Y3J5cHRvL3g1MDkveDUwOV90eHQuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8veDUwOS94NTA5X3R4dC5jCmluZGV4
IDc1M2U3MjAyN2E1YWE3ZWQyZDI4NzYwYmQ0OWUyMjAxN2IzOTc5OGYuLjhlNmFjMjdkNGNmMGQ5
OTZkNDk5N2U2NWU2YmE3ZjQ0YmVhNDkwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8veDUwOS94
NTA5X3R4dC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8veDUwOS94NTA5X3R4dC5jCkBAIC01NCwxMyArNTQs
MTAgQEAKICAqIGNvcGllZCBhbmQgcHV0IHVuZGVyIGFub3RoZXIgZGlzdHJpYnV0aW9uIGxpY2Vu
Y2UKICAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dICovCiAKLSNpbmNsdWRl
IDxvcGVuc3NsL21lbS5oPgogI2luY2x1ZGUgPG9wZW5zc2wveDUwOS5oPgogCiBjb25zdCBjaGFy
ICpYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhsb25nIG4pCiB7Ci0gICAgc3RhdGljIGNo
YXIgYnVmWzEwMF07Ci0KICAgICBzd2l0Y2ggKChpbnQpbikgewogICAgIGNhc2UgWDUwOV9WX09L
OgogICAgICAgICByZXR1cm4gKCJvayIpOwpAQCAtMTk4LDggKzE5NSwxMCBAQCBjb25zdCBjaGFy
ICpYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhsb25nIG4pCiAgICAgY2FzZSBYNTA5X1Zf
RVJSX1NUT1JFX0xPT0tVUDoKICAgICAgICAgcmV0dXJuICgiSXNzdWVyIGNlcnRpZmljYXRlIGxv
b2t1cCBlcnJvciIpOwogCisgICAgY2FzZSBYNTA5X1ZfRVJSX05BTUVfQ09OU1RSQUlOVFNfV0lU
SE9VVF9TQU5TOgorICAgICAgICByZXR1cm4gIklzc3VlciBoYXMgbmFtZSBjb25zdHJhaW50cyBi
dXQgbGVhZiBoYXMgbm8gU0FOcyI7CisKICAgICBkZWZhdWx0OgotICAgICAgICBCSU9fc25wcmlu
dGYoYnVmLCBzaXplb2YgYnVmLCAiZXJyb3IgbnVtYmVyICVsZCIsIG4pOwotICAgICAgICByZXR1
cm4gKGJ1Zik7CisgICAgICAgIHJldHVybiAidW5rbm93biBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRp
b24gZXJyb3IiOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8veDUwOS94NTA5X3Zm
eS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2NyeXB0by94NTA5L3g1MDlfdmZ5LmMKaW5kZXggNWFmM2ZiMzIzYWI0NzZjZjdj
YzgwMDlmM2M1MGQzZDQ4YjI4MmYzYS4uZmZmOTdmYWM5OTNlMGIyYTRhZjJmNDk2NWY2NTIwNmZj
NjU1NmZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5L3g1MDlfdmZ5LmMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2NyeXB0by94NTA5L3g1MDlfdmZ5LmMKQEAgLTcwLDYgKzcwLDcgQEAKIAogI2luY2x1ZGUgInZw
bV9pbnQuaCIKICNpbmNsdWRlICIuLi9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIi4uL3g1MDl2My9p
bnRlcm5hbC5oIgogCiBzdGF0aWMgQ1JZUFRPX0VYX0RBVEFfQ0xBU1MgZ19leF9kYXRhX2NsYXNz
ID0KICAgICBDUllQVE9fRVhfREFUQV9DTEFTU19JTklUX1dJVEhfQVBQX0RBVEE7CkBAIC03MTAs
MTMgKzcxMSw0MCBAQCBzdGF0aWMgaW50IGNoZWNrX2NoYWluX2V4dGVuc2lvbnMoWDUwOV9TVE9S
RV9DVFggKmN0eCkKICAgICByZXR1cm4gb2s7CiB9CiAKK3N0YXRpYyBpbnQgcmVqZWN0X2Ruc19u
YW1lX2luX2NvbW1vbl9uYW1lKFg1MDkgKng1MDkpCit7CisgICAgWDUwOV9OQU1FICpuYW1lID0g
WDUwOV9nZXRfc3ViamVjdF9uYW1lKHg1MDkpOworICAgIGludCBpID0gLTE7CisgICAgZm9yICg7
OykgeworICAgICAgICBpID0gWDUwOV9OQU1FX2dldF9pbmRleF9ieV9OSUQobmFtZSwgTklEX2Nv
bW1vbk5hbWUsIGkpOworICAgICAgICBpZiAoaSA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJu
IFg1MDlfVl9PSzsKKyAgICAgICAgfQorCisgICAgICAgIFg1MDlfTkFNRV9FTlRSWSAqZW50cnkg
PSBYNTA5X05BTUVfZ2V0X2VudHJ5KG5hbWUsIGkpOworICAgICAgICBBU04xX1NUUklORyAqY29t
bW9uX25hbWUgPSBYNTA5X05BTUVfRU5UUllfZ2V0X2RhdGEoZW50cnkpOworICAgICAgICB1bnNp
Z25lZCBjaGFyICppZHZhbDsKKyAgICAgICAgaW50IGlkbGVuID0gQVNOMV9TVFJJTkdfdG9fVVRG
OCgmaWR2YWwsIGNvbW1vbl9uYW1lKTsKKyAgICAgICAgaWYgKGlkbGVuIDwgMCkgeworICAgICAg
ICAgICAgcmV0dXJuIFg1MDlfVl9FUlJfT1VUX09GX01FTTsKKyAgICAgICAgfQorICAgICAgICAv
KiBPbmx5IHByb2Nlc3MgYXR0cmlidXRlcyB0aGF0IGxvb2sgbGlrZSBob3N0IG5hbWVzLiBOb3Rl
IGl0IGlzCisgICAgICAgICAqIGltcG9ydGFudCB0aGF0IHRoaXMgY2hlY2sgYmUgbWlycm9yZWQg
aW4gfFg1MDlfY2hlY2tfaG9zdHwuICovCisgICAgICAgIGludCBsb29rc19saWtlX2RucyA9IHg1
MDl2M19sb29rc19saWtlX2Ruc19uYW1lKGlkdmFsLCAoc2l6ZV90KWlkbGVuKTsKKyAgICAgICAg
T1BFTlNTTF9mcmVlKGlkdmFsKTsKKyAgICAgICAgaWYgKGxvb2tzX2xpa2VfZG5zKSB7CisgICAg
ICAgICAgICByZXR1cm4gWDUwOV9WX0VSUl9OQU1FX0NPTlNUUkFJTlRTX1dJVEhPVVRfU0FOUzsK
KyAgICAgICAgfQorICAgIH0KK30KKwogc3RhdGljIGludCBjaGVja19uYW1lX2NvbnN0cmFpbnRz
KFg1MDlfU1RPUkVfQ1RYICpjdHgpCiB7Ci0gICAgWDUwOSAqeDsKICAgICBpbnQgaSwgaiwgcnY7
CisgICAgaW50IGhhc19uYW1lX2NvbnN0cmFpbnRzID0gMDsKICAgICAvKiBDaGVjayBuYW1lIGNv
bnN0cmFpbnRzIGZvciBhbGwgY2VydGlmaWNhdGVzICovCiAgICAgZm9yIChpID0gc2tfWDUwOV9u
dW0oY3R4LT5jaGFpbikgLSAxOyBpID49IDA7IGktLSkgewotICAgICAgICB4ID0gc2tfWDUwOV92
YWx1ZShjdHgtPmNoYWluLCBpKTsKKyAgICAgICAgWDUwOSAqeCA9IHNrX1g1MDlfdmFsdWUoY3R4
LT5jaGFpbiwgaSk7CiAgICAgICAgIC8qIElnbm9yZSBzZWxmIGlzc3VlZCBjZXJ0cyB1bmxlc3Mg
bGFzdCBpbiBjaGFpbiAqLwogICAgICAgICBpZiAoaSAmJiAoeC0+ZXhfZmxhZ3MgJiBFWEZMQUdf
U0kpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC03MjksNiArNzU3LDcgQEAgc3RhdGljIGlu
dCBjaGVja19uYW1lX2NvbnN0cmFpbnRzKFg1MDlfU1RPUkVfQ1RYICpjdHgpCiAgICAgICAgIGZv
ciAoaiA9IHNrX1g1MDlfbnVtKGN0eC0+Y2hhaW4pIC0gMTsgaiA+IGk7IGotLSkgewogICAgICAg
ICAgICAgTkFNRV9DT05TVFJBSU5UUyAqbmMgPSBza19YNTA5X3ZhbHVlKGN0eC0+Y2hhaW4sIGop
LT5uYzsKICAgICAgICAgICAgIGlmIChuYykgeworICAgICAgICAgICAgICAgIGhhc19uYW1lX2Nv
bnN0cmFpbnRzID0gMTsKICAgICAgICAgICAgICAgICBydiA9IE5BTUVfQ09OU1RSQUlOVFNfY2hl
Y2soeCwgbmMpOwogICAgICAgICAgICAgICAgIHN3aXRjaCAocnYpIHsKICAgICAgICAgICAgICAg
ICBjYXNlIFg1MDlfVl9PSzoKQEAgLTc0Nyw2ICs3NzYsMzYgQEAgc3RhdGljIGludCBjaGVja19u
YW1lX2NvbnN0cmFpbnRzKFg1MDlfU1RPUkVfQ1RYICpjdHgpCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CisKKyAgICAvKiBOYW1lIGNvbnN0cmFpbnRzIGRvIG5vdCBtYXRjaCBhZ2Fp
bnN0IHRoZSBjb21tb24gbmFtZSwgYnV0CisgICAgICogfFg1MDlfY2hlY2tfaG9zdHwgc3RpbGwg
aW1wbGVtZW50cyB0aGUgbGVnYWN5IGJlaGF2aW9yIHdoZXJlLCBvbgorICAgICAqIGNlcnRpZmlj
YXRlcyBsYWNraW5nIGEgU0FOIGxpc3QsIEROUy1saWtlIG5hbWVzIGluIHRoZSBjb21tb24gbmFt
ZSBhcmUKKyAgICAgKiBjaGVja2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBXaGlsZSB3ZSBj
b3VsZCBhcHBseSB0aGUgbmFtZSBjb25zdHJhaW50cyB0byB0aGUgY29tbW9uIG5hbWUsIG5hbWUK
KyAgICAgKiBjb25zdHJhaW50cyBhcmUgcmFyZSBlbm91Z2ggdGhhdCBjYW4gaG9sZCBzdWNoIGNl
cnRpZmljYXRlcyB0byBhIGhpZ2hlcgorICAgICAqIHN0YW5kYXJkLiBOb3RlIHRoaXMgZG9lcyBu
b3QgbWFrZSAiRE5TLWxpa2UiIGhldXJpc3RpYyBmYWlsdXJlcyBhbnkKKyAgICAgKiB3b3JzZS4g
QSBkZWNvcmF0aXZlIGNvbW1vbi1uYW1lIG1pc2lkZW50aWZpZWQgYXMgYSBETlMgbmFtZSB3b3Vs
ZCBmYWlsCisgICAgICogdGhlIG5hbWUgY29uc3RyYWludCBhbnl3YXkuICovCisgICAgWDUwOSAq
bGVhZiA9IHNrX1g1MDlfdmFsdWUoY3R4LT5jaGFpbiwgMCk7CisgICAgaWYgKGhhc19uYW1lX2Nv
bnN0cmFpbnRzICYmIGxlYWYtPmFsdG5hbWUgPT0gTlVMTCkgeworICAgICAgICBydiA9IHJlamVj
dF9kbnNfbmFtZV9pbl9jb21tb25fbmFtZShsZWFmKTsKKyAgICAgICAgc3dpdGNoIChydikgewor
ICAgICAgICBjYXNlIFg1MDlfVl9PSzoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFg1MDlfVl9FUlJfT1VUX09GX01FTToKKyAgICAgICAgICAgIGN0eC0+ZXJyb3IgPSBydjsKKyAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgY3R4LT5l
cnJvciA9IHJ2OworICAgICAgICAgICAgY3R4LT5lcnJvcl9kZXB0aCA9IGk7CisgICAgICAgICAg
ICBjdHgtPmN1cnJlbnRfY2VydCA9IGxlYWY7CisgICAgICAgICAgICBpZiAoIWN0eC0+dmVyaWZ5
X2NiKDAsIGN0eCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHJldHVybiAxOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL3g1MDl2My9pbnRlcm5hbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5djMvaW50ZXJuYWwu
aAppbmRleCBlNmJlNjg0MWQ4NzFkYmQ2MTI5NDkzMThmZTcyNWRkNjM4ODU0OTQ1Li5jMTQzZDcz
NWQ3ODc2NWI5MGUzOGRlOTJjZWNhYTYzMWZjNGIzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L3g1MDl2My9pbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9jcnlwdG8veDUwOXYzL2ludGVybmFsLmgKQEAg
LTQzLDYgKzQzLDExIEBAIHVuc2lnbmVkIGNoYXIgKng1MDl2M19oZXhfdG9fYnl0ZXMoY29uc3Qg
Y2hhciAqc3RyLCBsb25nICpsZW4pOwogLy8gZm9sbG93ZWQgYnkgJy4nLiBPdGhlcndpc2UsIGl0
IHJldHVybnMgYSBub24temVybyBudW1iZXIuCiBpbnQgeDUwOXYzX25hbWVfY21wKGNvbnN0IGNo
YXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNtcCk7CiAKKy8vIHg1MDl2M19sb29rc19saWtlX2Ruc19u
YW1lIHJldHVybnMgb25lIGlmIHxpbnwgbG9va3MgbGlrZSBhIEROUyBuYW1lIGFuZCB6ZXJvCisv
LyBvdGhlcndpc2UuCitPUEVOU1NMX0VYUE9SVCBpbnQgeDUwOXYzX2xvb2tzX2xpa2VfZG5zX25h
bWUoY29uc3QgdW5zaWduZWQgY2hhciAqaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbik7CisKIAogI2lmIGRlZmluZWQoX19jcGx1c3Bs
dXMpCiB9ICAvKiBleHRlcm4gQyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5djMvdjNf
dXRsLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvY3J5cHRvL3g1MDl2My92M191dGwuYwppbmRleCAyYTI5M2RjOGExZmQyODJj
NmM0YjhlMjIyZDBiMGVhZjFmYTFiNThkLi44NmM0OTQwM2I4NmU3ZTEyYWNjOWE4ZDcxNjUyZjg5
MmY0YTI3YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3g1MDl2My92M191dGwuYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvY3J5cHRvL3g1MDl2My92M191dGwuYwpAQCAtOTA5LDYgKzkwOSw1MyBAQCBzdGF0aWMgaW50
IGVxdWFsX3dpbGRjYXJkKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBhdHRlcm4sIHNpemVfdCBwYXR0
ZXJuX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdCwgc3ViamVjdF9sZW4s
IGZsYWdzKTsKIH0KIAoraW50IHg1MDl2M19sb29rc19saWtlX2Ruc19uYW1lKGNvbnN0IHVuc2ln
bmVkIGNoYXIgKmluLCBzaXplX3QgbGVuKSB7CisgICAgLyogVGhpcyBmdW5jdGlvbiBpcyB1c2Vk
IGFzIGEgaGV1cmlzdGljIGZvciB3aGV0aGVyIGEgY29tbW9uIG5hbWUgaXMgYQorICAgICAqIGhv
c3RuYW1lIHRvIGJlIG1hdGNoZWQsIG9yIG1lcmVseSBhIGRlY29yYXRpdmUgbmFtZSB0byBkZXNj
cmliZSB0aGUKKyAgICAgKiBzdWJqZWN0LiBUaGlzIGhldXJpc3RpYyBtdXN0IGJlIGFwcGxpZWQg
dG8gYm90aCBuYW1lIGNvbnN0cmFpbnRzIGFuZCB0aGUKKyAgICAgKiBjb21tb24gbmFtZSBmYWxs
YmFjaywgc28gaXQgbXVzdCBiZSBsb29zZSBlbm91Z2ggdG8gYWNjZXB0IGhvc3RuYW1lCisgICAg
ICogY29tbW9uIG5hbWVzLCBhbmQgdGlnaHQgZW5vdWdoIHRvIHJlamVjdCBkZWNvcmF0aXZlIGNv
bW1vbiBuYW1lcy4gKi8KKworICAgIGlmIChsZW4gPiAwICYmIGluW2xlbiAtIDFdID09ICcuJykg
eworICAgICAgICBsZW4tLTsKKyAgICB9CisKKyAgICAvKiBXaWxkY2FyZHMgYXJlIGFsbG93ZWQg
aW4gZnJvbnQuICovCisgICAgaWYgKGxlbiA+PSAyICYmIGluWzBdID09ICcqJyAmJiBpblsxXSA9
PSAnLicpIHsKKyAgICAgICAgaW4gKz0gMjsKKyAgICAgICAgbGVuIC09IDI7CisgICAgfQorCisg
ICAgaWYgKGxlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNpemVf
dCBsYWJlbF9zdGFydCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47IGkrKykg
eworICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBpbltpXTsKKyAgICAgICAgaWYgKChjID49ICdh
JyAmJiBjIDw9ICd6JykgfHwKKyAgICAgICAgICAgIChjID49ICcwJyAmJiBjIDw9ICc5JykgfHwK
KyAgICAgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHwKKyAgICAgICAgICAgIChjID09
ICctJyAmJiBpID4gbGFiZWxfc3RhcnQpIHx8CisgICAgICAgICAgICAvKiBUaGVzZSBhcmUgbm90
IHZhbGlkIGNoYXJhY3RlcnMgaW4gaG9zdG5hbWVzLCBidXQgY29tbW9ubHkgZm91bmQKKyAgICAg
ICAgICAgICAqIGluIGRlcGxveW1lbnRzIG91dHNpZGUgdGhlIFdlYiBQS0kuICovCisgICAgICAg
ICAgICBjID09ICdfJyB8fAorICAgICAgICAgICAgYyA9PSAnOicpIHsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLyogTGFiZWxzIG11c3Qgbm90IGJlIGVtcHR5
LiAqLworICAgICAgICBpZiAoYyA9PSAnLicgJiYgaSA+IGxhYmVsX3N0YXJ0ICYmIGkgPCBsZW4g
LSAxKSB7CisgICAgICAgICAgICBsYWJlbF9zdGFydCA9IGkgKyAxOworICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1
cm4gMTsKK30KKwogLyoKICAqIENvbXBhcmUgYW4gQVNOMV9TVFJJTkcgdG8gYSBzdXBwbGllZCBz
dHJpbmcuIElmIHRoZXkgbWF0Y2ggcmV0dXJuIDEuIElmCiAgKiBjbXBfdHlwZSA+IDAgb25seSBj
b21wYXJlIGlmIHN0cmluZyBtYXRjaGVzIHRoZSB0eXBlLCBvdGhlcndpc2UgY29udmVydCBpdApA
QCAtOTE2LDggKzk2Myw4IEBAIHN0YXRpYyBpbnQgZXF1YWxfd2lsZGNhcmQoY29uc3QgdW5zaWdu
ZWQgY2hhciAqcGF0dGVybiwgc2l6ZV90IHBhdHRlcm5fbGVuLAogICovCiAKIHN0YXRpYyBpbnQg
ZG9fY2hlY2tfc3RyaW5nKEFTTjFfU1RSSU5HICphLCBpbnQgY21wX3R5cGUsIGVxdWFsX2ZuIGVx
dWFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLCBjb25z
dCBjaGFyICpiLCBzaXplX3QgYmxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIg
KipwZWVybmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFn
cywgaW50IGNoZWNrX3R5cGUsIGNvbnN0IGNoYXIgKmIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgYmxlbiwgY2hhciAqKnBlZXJuYW1lKQogewogICAgIGludCBydiA9IDA7CiAK
QEAgLTkzOCw3ICs5ODUsMTcgQEAgc3RhdGljIGludCBkb19jaGVja19zdHJpbmcoQVNOMV9TVFJJ
TkcgKmEsIGludCBjbXBfdHlwZSwgZXF1YWxfZm4gZXF1YWwsCiAgICAgICAgIGFzdHJsZW4gPSBB
U04xX1NUUklOR190b19VVEY4KCZhc3RyLCBhKTsKICAgICAgICAgaWYgKGFzdHJsZW4gPCAwKQog
ICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBydiA9IGVxdWFsKGFzdHIsIGFzdHJsZW4s
ICh1bnNpZ25lZCBjaGFyICopYiwgYmxlbiwgZmxhZ3MpOworICAgICAgICAvKgorICAgICAgICAg
KiBXZSBjaGVjayB0aGUgY29tbW9uIG5hbWUgYWdhaW5zdCBETlMgbmFtZSBjb25zdHJhaW50cyBp
ZiBpdCBwYXNzZXMKKyAgICAgICAgICogfHg1MDl2M19sb29rc19saWtlX2Ruc19uYW1lfC4gVGh1
cyB3ZSBtdXN0IG5vdCBjb25zaWRlciBjb21tb24gbmFtZXMKKyAgICAgICAgICogZm9yIEROUyBm
YWxsYmFja3MgaWYgdGhleSBmYWlsIHRoaXMgY2hlY2suCisgICAgICAgICAqLworICAgICAgICBp
ZiAoY2hlY2tfdHlwZSA9PSBHRU5fRE5TICYmCisgICAgICAgICAgICAheDUwOXYzX2xvb2tzX2xp
a2VfZG5zX25hbWUoYXN0ciwgYXN0cmxlbikpIHsKKyAgICAgICAgICAgIHJ2ID0gMDsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJ2ID0gZXF1YWwoYXN0ciwgYXN0cmxlbiwgKHVuc2ln
bmVkIGNoYXIgKiliLCBibGVuLCBmbGFncyk7CisgICAgICAgIH0KICAgICAgICAgaWYgKHJ2ID4g
MCAmJiBwZWVybmFtZSkKICAgICAgICAgICAgICpwZWVybmFtZSA9IEJVRl9zdHJuZHVwKChjaGFy
ICopYXN0ciwgYXN0cmxlbik7CiAgICAgICAgIE9QRU5TU0xfZnJlZShhc3RyKTsKQEAgLTk1NSw3
ICsxMDEyLDYgQEAgc3RhdGljIGludCBkb194NTA5X2NoZWNrKFg1MDkgKngsIGNvbnN0IGNoYXIg
KmNoaywgc2l6ZV90IGNoa2xlbiwKICAgICBpbnQgajsKICAgICBpbnQgY25pZCA9IE5JRF91bmRl
ZjsKICAgICBpbnQgYWx0X3R5cGU7Ci0gICAgaW50IHNhbl9wcmVzZW50ID0gMDsKICAgICBpbnQg
cnYgPSAwOwogICAgIGVxdWFsX2ZuIGVxdWFsOwogCkBAIC05ODgsNyArMTA0NCw2IEBAIHN0YXRp
YyBpbnQgZG9feDUwOV9jaGVjayhYNTA5ICp4LCBjb25zdCBjaGFyICpjaGssIHNpemVfdCBjaGts
ZW4sCiAgICAgICAgICAgICBnZW4gPSBza19HRU5FUkFMX05BTUVfdmFsdWUoZ2VucywgaSk7CiAg
ICAgICAgICAgICBpZiAoZ2VuLT50eXBlICE9IGNoZWNrX3R5cGUpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBzYW5fcHJlc2VudCA9IDE7CiAgICAgICAgICAgICBpZiAo
Y2hlY2tfdHlwZSA9PSBHRU5fRU1BSUwpCiAgICAgICAgICAgICAgICAgY3N0ciA9IGdlbi0+ZC5y
ZmM4MjJOYW1lOwogICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2tfdHlwZSA9PSBHRU5fRE5TKQpA
QCAtOTk2LDIxICsxMDUxLDE2IEBAIHN0YXRpYyBpbnQgZG9feDUwOV9jaGVjayhYNTA5ICp4LCBj
b25zdCBjaGFyICpjaGssIHNpemVfdCBjaGtsZW4sCiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgY3N0ciA9IGdlbi0+ZC5pUEFkZHJlc3M7CiAgICAgICAgICAgICAvKiBQb3NpdGl2
ZSBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBvbiBlcnJvciEgKi8KLSAgICAgICAgICAgIGlmICgocnYg
PSBkb19jaGVja19zdHJpbmcoY3N0ciwgYWx0X3R5cGUsIGVxdWFsLCBmbGFncywKKyAgICAgICAg
ICAgIGlmICgocnYgPSBkb19jaGVja19zdHJpbmcoY3N0ciwgYWx0X3R5cGUsIGVxdWFsLCBmbGFn
cywgY2hlY2tfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hr
LCBjaGtsZW4sIHBlZXJuYW1lKSkgIT0gMCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBHRU5FUkFMX05BTUVTX2ZyZWUoZ2Vucyk7Ci0gICAgICAgIGlmIChydiAh
PSAwKQotICAgICAgICAgICAgcmV0dXJuIHJ2OwotICAgICAgICBpZiAoY25pZCA9PSBOSURfdW5k
ZWYKLSAgICAgICAgICAgIHx8IChzYW5fcHJlc2VudAotICAgICAgICAgICAgICAgICYmICEoZmxh
Z3MgJiBYNTA5X0NIRUNLX0ZMQUdfQUxXQVlTX0NIRUNLX1NVQkpFQ1QpKSkKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gcnY7CiAgICAgfQogCiAgICAgLyogV2UncmUgZG9u
ZSBpZiBDTi1JRCBpcyBub3QgcGVydGluZW50ICovCi0gICAgaWYgKGNuaWQgPT0gTklEX3VuZGVm
KQorICAgIGlmIChjbmlkID09IE5JRF91bmRlZiB8fCAoZmxhZ3MgJiBYNTA5X0NIRUNLX0ZMQUdf
TkVWRVJfQ0hFQ0tfU1VCSkVDVCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaiA9IC0xOwpA
QCAtMTAyMSw3ICsxMDcxLDcgQEAgc3RhdGljIGludCBkb194NTA5X2NoZWNrKFg1MDkgKngsIGNv
bnN0IGNoYXIgKmNoaywgc2l6ZV90IGNoa2xlbiwKICAgICAgICAgbmUgPSBYNTA5X05BTUVfZ2V0
X2VudHJ5KG5hbWUsIGopOwogICAgICAgICBzdHIgPSBYNTA5X05BTUVfRU5UUllfZ2V0X2RhdGEo
bmUpOwogICAgICAgICAvKiBQb3NpdGl2ZSBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBvbiBlcnJvciEg
Ki8KLSAgICAgICAgaWYgKChydiA9IGRvX2NoZWNrX3N0cmluZyhzdHIsIC0xLCBlcXVhbCwgZmxh
Z3MsCisgICAgICAgIGlmICgocnYgPSBkb19jaGVja19zdHJpbmcoc3RyLCAtMSwgZXF1YWwsIGZs
YWdzLCBjaGVja190eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaywg
Y2hrbGVuLCBwZWVybmFtZSkpICE9IDApCiAgICAgICAgICAgICByZXR1cm4gcnY7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2NyeXB0by94NTA5djMvdjNuYW1lX3Rlc3QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5cHRv
L3g1MDl2My92M25hbWVfdGVzdC5jYwppbmRleCAwNzM2MTIwZmM3NWQzNDE0ZmVhMTliYjBjZGI5
NGRhN2FmMGEyMzM1Li4yZGNkZDg3YzRiZWZkM2JlMDhjY2YxMTI3ZDE1MTM3MGM1MTMwY2RlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvY3J5cHRvL3g1MDl2My92M25hbWVfdGVzdC5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvY3J5
cHRvL3g1MDl2My92M25hbWVfdGVzdC5jYwpAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgPG9w
ZW5zc2wveDUwOXYzLmg+CiAKICNpbmNsdWRlICIuLi9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImlu
dGVybmFsLmgiCiAKIAogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7CkBAIC0z
NDQsNyArMzQ1LDcgQEAgc3RhdGljIHZvaWQgcnVuX2NlcnQoWDUwOSAqY3J0LCBjb25zdCBjaGFy
ICpuYW1laW5jZXJ0LAogICAgICAgICByZXQgPSBYNTA5X2NoZWNrX2hvc3QoY3J0LCBuYW1lLCBu
YW1lbGVuLCAwLCBOVUxMKTsKICAgICAgICAgbWF0Y2ggPSAtMTsKICAgICAgICAgaWYgKHJldCA8
IDApIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiaW50ZXJuYWwgZXJyb3IgaW4gWDUw
OV9jaGVja19ob3N0Iik7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImludGVybmFsIGVy
cm9yIGluIFg1MDlfY2hlY2tfaG9zdFxuIik7CiAgICAgICAgICAgICArK2Vycm9yczsKICAgICAg
ICAgfSBlbHNlIGlmIChmbi0+aG9zdCkgewogICAgICAgICAgICAgaWYgKHJldCA9PSAxICYmICFz
YW1lbmFtZSkKQEAgLTM1OSw3ICszNjAsNyBAQCBzdGF0aWMgdm9pZCBydW5fY2VydChYNTA5ICpj
cnQsIGNvbnN0IGNoYXIgKm5hbWVpbmNlcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBYNTA5X0NIRUNLX0ZMQUdfTk9fV0lMRENBUkRTLCBOVUxMKTsKICAgICAgICAgbWF0Y2ggPSAt
MTsKICAgICAgICAgaWYgKHJldCA8IDApIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
aW50ZXJuYWwgZXJyb3IgaW4gWDUwOV9jaGVja19ob3N0Iik7CisgICAgICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgImludGVybmFsIGVycm9yIGluIFg1MDlfY2hlY2tfaG9zdFxuIik7CiAgICAgICAg
ICAgICArK2Vycm9yczsKICAgICAgICAgfSBlbHNlIGlmIChmbi0+aG9zdCkgewogICAgICAgICAg
ICAgaWYgKHJldCA9PSAxICYmICFzYW1lbmFtZSkKQEAgLTM4NSwxMiArMzg2LDIxIEBAIHN0YXRp
YyB2b2lkIHJ1bl9jZXJ0KFg1MDkgKmNydCwgY29uc3QgY2hhciAqbmFtZWluY2VydCwKICAgICB9
CiB9CiAKLS8vIFRPT0QoZGF2aWRiZW4pOiBDb252ZXJ0IHRoaXMgdGVzdCB0byBHVGVzdCBtb3Jl
IHRob3JvdWdobHkuCisvLyBUT0RPKGRhdmlkYmVuKTogQ29udmVydCB0aGlzIHRlc3QgdG8gR1Rl
c3QgbW9yZSB0aG9yb3VnaGx5LgogVEVTVChYNTA5VjNUZXN0LCBOYW1lVGVzdCkgewogICAgIGNv
bnN0IHN0cnVjdCBzZXRfbmFtZV9mbiAqcGZuID0gbmFtZV9mbnM7CiAgICAgd2hpbGUgKHBmbi0+
bmFtZSkgewogICAgICAgICBjb25zdCBjaGFyICpjb25zdCAqcG5hbWUgPSBuYW1lczsKICAgICAg
ICAgd2hpbGUgKCpwbmFtZSkgeworICAgICAgICAgICAgLy8gVGhlIGNvbW1vbiBuYW1lIGZhbGxi
YWNrIHJlcXVpcmVzIHRoZSBuYW1lIGxvb2sgc3VmZmljaWVudGx5CisgICAgICAgICAgICAvLyBE
TlMtbGlrZS4KKyAgICAgICAgICAgIGlmIChzdHJjbXAocGZuLT5uYW1lLCAic2V0IENOIikgPT0g
MCAmJgorICAgICAgICAgICAgICAgICF4NTA5djNfbG9va3NfbGlrZV9kbnNfbmFtZSgKKyAgICAg
ICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oKnBu
YW1lKSwKKyAgICAgICAgICAgICAgICAgICAgc3RybGVuKCpwbmFtZSkpKSB7CisgICAgICAgICAg
ICAgICAgKytwbmFtZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJzc2w6OlVuaXF1ZVB0cjxYNTA5PiBjcnQobWFrZV9jZXJ0KCkpOwogICAg
ICAgICAgICAgQVNTRVJUX1RSVUUoY3J0KTsKICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHBmbi0+
Zm4oY3J0LmdldCgpLCAqcG5hbWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9kZWNyZXBpdC9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9kZWNyZXBpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAxY2I1ZTExZjdhNmNl
NDNmNWUyOTRiMjU2ZDZlOGMxZmEyZTA4M2EzLi4wODI5OTI2ZjBlOGY5OWE1MzVmYzNkYjkyZmNk
ZWNiM2I0M2NhZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZGVjcmVwaXQvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2RlY3JlcGl0L0NNYWtlTGlzdHMudHh0CkBAIC0yOSwxNiArMjksMTggQEAgdGFyZ2V0
X2xpbmtfbGlicmFyaWVzKGRlY3JlcGl0IGNyeXB0byBzc2wpCiBhZGRfZXhlY3V0YWJsZSgKICAg
ZGVjcmVwaXRfdGVzdAogCi0gIHJpcGVtZC9yaXBlbWRfdGVzdC5jYworICBibG93ZmlzaC9ibG93
ZmlzaF90ZXN0LmNjCisgIGNhc3QvY2FzdF90ZXN0LmNjCiAgIGNmYi9jZmJfdGVzdC5jYworICBy
aXBlbWQvcmlwZW1kX3Rlc3QuY2MKIAogICAkPFRBUkdFVF9PQkpFQ1RTOmJvcmluZ3NzbF9ndGVz
dF9tYWluPgotICAkPFRBUkdFVF9PQkpFQ1RTOnRlc3Rfc3VwcG9ydD4KICkKIAogYWRkX2RlcGVu
ZGVuY2llcyhkZWNyZXBpdF90ZXN0IGdsb2JhbF90YXJnZXQpCiAKLXRhcmdldF9saW5rX2xpYnJh
cmllcyhkZWNyZXBpdF90ZXN0IGNyeXB0byBkZWNyZXBpdCBib3Jpbmdzc2xfZ3Rlc3QpCit0YXJn
ZXRfbGlua19saWJyYXJpZXMoZGVjcmVwaXRfdGVzdCB0ZXN0X3N1cHBvcnRfbGliIGJvcmluZ3Nz
bF9ndGVzdCBkZWNyZXBpdAorICAgICAgICAgICAgICAgICAgICAgIGNyeXB0bykKIGlmKFdJTjMy
KQogICB0YXJnZXRfbGlua19saWJyYXJpZXMoZGVjcmVwaXRfdGVzdCB3czJfMzIpCiBlbmRpZigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvZGVjcmVwaXQvYmxvd2Zpc2gvYmxvd2Zpc2guYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9kZWNy
ZXBpdC9ibG93ZmlzaC9ibG93ZmlzaC5jCmluZGV4IDA0YjczNjhmNWY2MGYwZDIyYzg1ZDRlYzE5
M2E3ZTRkOTI5MzIwNDguLmFhODcyYmM2MGQ4YmYzODBlZjlhOGMzY2Y0NDRkYWY5Njc5ZGI0YWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9kZWNyZXBpdC9ibG93ZmlzaC9ibG93ZmlzaC5jCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9k
ZWNyZXBpdC9ibG93ZmlzaC9ibG93ZmlzaC5jCkBAIC01NSw3ICs1NSwxMCBAQAogICogW2luY2x1
ZGluZyB0aGUgR05VIFB1YmxpYyBMaWNlbmNlLl0gKi8KIAogI2luY2x1ZGUgPG9wZW5zc2wvYmxv
d2Zpc2guaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2NpcGhlci5oPgorI2luY2x1ZGUgPG9wZW5zc2wv
b2JqLmg+CiAKKyNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2lu
Y2x1ZGUgIi4uLy4uL2NyeXB0by9pbnRlcm5hbC5oIgpAQCAtMTQ5LDE4ICsxNTIsMTggQEAgdm9p
ZCBCRl9lY2JfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAqb3V0LAogICBsMm4o
ZFsxXSwgb3V0KTsKIH0KIAotdm9pZCBCRl9jYmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwg
dWludDhfdCAqb3V0LCBsb25nIGxlbmd0aCwKK3ZvaWQgQkZfY2JjX2VuY3J5cHQoY29uc3QgdWlu
dDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgQkZfS0VZICpzY2hlZHVsZSwgdWludDhfdCAqaXZlYywgaW50IGVuY3J5cHQpIHsK
ICAgdWludDMyX3QgdGluMCwgdGluMTsKICAgdWludDMyX3QgdG91dDAsIHRvdXQxLCB4b3IwLCB4
b3IxOwotICBsb25nIGwgPSBsZW5ndGg7CisgIHNpemVfdCBsID0gbGVuZ3RoOwogICB1aW50MzJf
dCB0aW5bMl07CiAKICAgaWYgKGVuY3J5cHQpIHsKICAgICBuMmwoaXZlYywgdG91dDApOwogICAg
IG4ybChpdmVjLCB0b3V0MSk7CiAgICAgaXZlYyAtPSA4OwotICAgIGZvciAobCAtPSA4OyBsID49
IDA7IGwgLT0gOCkgeworICAgIHdoaWxlIChsID49IDgpIHsKICAgICAgIG4ybChpbiwgdGluMCk7
CiAgICAgICBuMmwoaW4sIHRpbjEpOwogICAgICAgdGluMCBePSB0b3V0MDsKQEAgLTE3Miw5ICsx
NzUsMTAgQEAgdm9pZCBCRl9jYmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhfdCAq
b3V0LCBsb25nIGxlbmd0aCwKICAgICAgIHRvdXQxID0gdGluWzFdOwogICAgICAgbDJuKHRvdXQw
LCBvdXQpOwogICAgICAgbDJuKHRvdXQxLCBvdXQpOworICAgICAgbCAtPSA4OwogICAgIH0KLSAg
ICBpZiAobCAhPSAtOCkgewotICAgICAgbjJsbihpbiwgdGluMCwgdGluMSwgbCArIDgpOworICAg
IGlmIChsICE9IDApIHsKKyAgICAgIG4ybG4oaW4sIHRpbjAsIHRpbjEsIGwpOwogICAgICAgdGlu
MCBePSB0b3V0MDsKICAgICAgIHRpbjEgXj0gdG91dDE7CiAgICAgICB0aW5bMF0gPSB0aW4wOwpA
QCAtMTkxLDcgKzE5NSw3IEBAIHZvaWQgQkZfY2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4s
IHVpbnQ4X3QgKm91dCwgbG9uZyBsZW5ndGgsCiAgICAgbjJsKGl2ZWMsIHhvcjApOwogICAgIG4y
bChpdmVjLCB4b3IxKTsKICAgICBpdmVjIC09IDg7Ci0gICAgZm9yIChsIC09IDg7IGwgPj0gMDsg
bCAtPSA4KSB7CisgICAgd2hpbGUgKGwgPj0gOCkgewogICAgICAgbjJsKGluLCB0aW4wKTsKICAg
ICAgIG4ybChpbiwgdGluMSk7CiAgICAgICB0aW5bMF0gPSB0aW4wOwpAQCAtMjAzLDggKzIwNyw5
IEBAIHZvaWQgQkZfY2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwg
bG9uZyBsZW5ndGgsCiAgICAgICBsMm4odG91dDEsIG91dCk7CiAgICAgICB4b3IwID0gdGluMDsK
ICAgICAgIHhvcjEgPSB0aW4xOworICAgICAgbCAtPSA4OwogICAgIH0KLSAgICBpZiAobCAhPSAt
OCkgeworICAgIGlmIChsICE9IDApIHsKICAgICAgIG4ybChpbiwgdGluMCk7CiAgICAgICBuMmwo
aW4sIHRpbjEpOwogICAgICAgdGluWzBdID0gdGluMDsKQEAgLTIxMiw3ICsyMTcsNyBAQCB2b2lk
IEJGX2NiY19lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIGxvbmcgbGVu
Z3RoLAogICAgICAgQkZfZGVjcnlwdCh0aW4sIHNjaGVkdWxlKTsKICAgICAgIHRvdXQwID0gdGlu
WzBdIF4geG9yMDsKICAgICAgIHRvdXQxID0gdGluWzFdIF4geG9yMTsKLSAgICAgIGwybm4odG91
dDAsIHRvdXQxLCBvdXQsIGwgKyA4KTsKKyAgICAgIGwybm4odG91dDAsIHRvdXQxLCBvdXQsIGwp
OwogICAgICAgeG9yMCA9IHRpbjA7CiAgICAgICB4b3IxID0gdGluMTsKICAgICB9CkBAIC00OTIs
MyArNDk3LDEzMCBAQCB2b2lkIEJGX3NldF9rZXkoQkZfS0VZICprZXksIHNpemVfdCBsZW4sIGNv
bnN0IHVpbnQ4X3QgKmRhdGEpIHsKICAgICBwW2kgKyAxXSA9IGluWzFdOwogICB9CiB9CisKK3N0
YXRpYyB2b2lkIEJGX2NmYjY0X2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91
dCwgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkZf
S0VZICpzY2hlZHVsZSwgdWludDhfdCAqaXZlYywgaW50ICpudW0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBlbmNyeXB0KSB7CisgIHVpbnQzMl90IHYwLCB2MSwgdDsKKyAgaW50
IG4gPSAqbnVtOworICBzaXplX3QgbCA9IGxlbmd0aDsKKyAgdWludDMyX3QgdGlbMl07CisgIHVp
bnQ4X3QgYywgY2M7CisKKyAgdWludDhfdCAqaXYgPSBpdmVjOworICBpZiAoZW5jcnlwdCkgewor
ICAgIHdoaWxlIChsLS0pIHsKKyAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgbjJsKGl2LCB2
MCk7CisgICAgICAgIHRpWzBdID0gdjA7CisgICAgICAgIG4ybChpdiwgdjEpOworICAgICAgICB0
aVsxXSA9IHYxOworICAgICAgICBCRl9lbmNyeXB0KHRpLCBzY2hlZHVsZSk7CisgICAgICAgIGl2
ID0gaXZlYzsKKyAgICAgICAgdCA9IHRpWzBdOworICAgICAgICBsMm4odCwgaXYpOworICAgICAg
ICB0ID0gdGlbMV07CisgICAgICAgIGwybih0LCBpdik7CisgICAgICAgIGl2ID0gaXZlYzsKKyAg
ICAgIH0KKyAgICAgIGMgPSAqKGluKyspIF4gaXZbbl07CisgICAgICAqKG91dCsrKSA9IGM7Cisg
ICAgICBpdltuXSA9IGM7CisgICAgICBuID0gKG4gKyAxKSAmIDB4MDc7CisgICAgfQorICB9IGVs
c2UgeworICAgIHdoaWxlIChsLS0pIHsKKyAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgbjJs
KGl2LCB2MCk7CisgICAgICAgIHRpWzBdID0gdjA7CisgICAgICAgIG4ybChpdiwgdjEpOworICAg
ICAgICB0aVsxXSA9IHYxOworICAgICAgICBCRl9lbmNyeXB0KHRpLCBzY2hlZHVsZSk7CisgICAg
ICAgIGl2ID0gaXZlYzsKKyAgICAgICAgdCA9IHRpWzBdOworICAgICAgICBsMm4odCwgaXYpOwor
ICAgICAgICB0ID0gdGlbMV07CisgICAgICAgIGwybih0LCBpdik7CisgICAgICAgIGl2ID0gaXZl
YzsKKyAgICAgIH0KKyAgICAgIGNjID0gKihpbisrKTsKKyAgICAgIGMgPSBpdltuXTsKKyAgICAg
IGl2W25dID0gY2M7CisgICAgICAqKG91dCsrKSA9IGMgXiBjYzsKKyAgICAgIG4gPSAobiArIDEp
ICYgMHgwNzsKKyAgICB9CisgIH0KKworICAqbnVtID0gbjsKK30KKworc3RhdGljIGludCBiZl9p
bml0X2tleShFVlBfQ0lQSEVSX0NUWCAqY3R4LCBjb25zdCB1aW50OF90ICprZXksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaXYsIGludCBlbmMpIHsKKyAgQkZf
S0VZICpiZl9rZXkgPSBjdHgtPmNpcGhlcl9kYXRhOworICBCRl9zZXRfa2V5KGJmX2tleSwgY3R4
LT5rZXlfbGVuLCBrZXkpOworICByZXR1cm4gMTsKK30KKworc3RhdGljIGludCBiZl9lY2JfY2lw
aGVyKEVWUF9DSVBIRVJfQ1RYICpjdHgsIHVpbnQ4X3QgKm91dCwgY29uc3QgdWludDhfdCAqaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbikgeworICBCRl9LRVkgKmJmX2tl
eSA9IGN0eC0+Y2lwaGVyX2RhdGE7CisKKyAgd2hpbGUgKGxlbiA+PSBCRl9CTE9DSykgeworICAg
IEJGX2VjYl9lbmNyeXB0KGluLCBvdXQsIGJmX2tleSwgY3R4LT5lbmNyeXB0KTsKKyAgICBpbiAr
PSBCRl9CTE9DSzsKKyAgICBvdXQgKz0gQkZfQkxPQ0s7CisgICAgbGVuIC09IEJGX0JMT0NLOwor
ICB9CisgIGFzc2VydChsZW4gPT0gMCk7CisKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQg
YmZfY2JjX2NpcGhlcihFVlBfQ0lQSEVSX0NUWCAqY3R4LCB1aW50OF90ICpvdXQsIGNvbnN0IHVp
bnQ4X3QgKmluLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pIHsKKyAgQkZf
S0VZICpiZl9rZXkgPSBjdHgtPmNpcGhlcl9kYXRhOworICBCRl9jYmNfZW5jcnlwdChpbiwgb3V0
LCBsZW4sIGJmX2tleSwgY3R4LT5pdiwgY3R4LT5lbmNyeXB0KTsKKyAgcmV0dXJuIDE7Cit9CisK
K3N0YXRpYyBpbnQgYmZfY2ZiX2NpcGhlcihFVlBfQ0lQSEVSX0NUWCAqY3R4LCB1aW50OF90ICpv
dXQsIGNvbnN0IHVpbnQ4X3QgKmluLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBs
ZW4pIHsKKyAgQkZfS0VZICpiZl9rZXkgPSBjdHgtPmNpcGhlcl9kYXRhOworICBpbnQgbnVtID0g
Y3R4LT5udW07CisgIEJGX2NmYjY0X2VuY3J5cHQoaW4sIG91dCwgbGVuLCBiZl9rZXksIGN0eC0+
aXYsICZudW0sIGN0eC0+ZW5jcnlwdCk7CisgIGN0eC0+bnVtID0gbnVtOworICByZXR1cm4gMTsK
K30KKworc3RhdGljIGNvbnN0IEVWUF9DSVBIRVIgYmZfZWNiID0geworICAgIE5JRF9iZl9lY2Is
ICAgICAgICAgIEJGX0JMT0NLIC8qIGJsb2NrX3NpemUgKi8sCisgICAgMTYgLyoga2V5X3NpemUg
Ki8sICAgQkZfQkxPQ0sgLyogaXZfbGVuICovLAorICAgIHNpemVvZihCRl9LRVkpLCAgICAgIEVW
UF9DSVBIX0VDQl9NT0RFIHwgRVZQX0NJUEhfVkFSSUFCTEVfTEVOR1RILAorICAgIE5VTEwgLyog
YXBwX2RhdGEgKi8sIGJmX2luaXRfa2V5LAorICAgIGJmX2VjYl9jaXBoZXIsICAgICAgIE5VTEwg
LyogY2xlYW51cCAqLywKKyAgICBOVUxMIC8qIGN0cmwgKi8sCit9OworCitzdGF0aWMgY29uc3Qg
RVZQX0NJUEhFUiBiZl9jYmMgPSB7CisgICAgTklEX2JmX2NiYywgICAgICAgICAgQkZfQkxPQ0sg
LyogYmxvY2tfc2l6ZSAqLywKKyAgICAxNiAvKiBrZXlfc2l6ZSAqLywgICBCRl9CTE9DSyAvKiBp
dl9sZW4gKi8sCisgICAgc2l6ZW9mKEJGX0tFWSksICAgICAgRVZQX0NJUEhfQ0JDX01PREUgfCBF
VlBfQ0lQSF9WQVJJQUJMRV9MRU5HVEgsCisgICAgTlVMTCAvKiBhcHBfZGF0YSAqLywgYmZfaW5p
dF9rZXksCisgICAgYmZfY2JjX2NpcGhlciwgICAgICAgTlVMTCAvKiBjbGVhbnVwICovLAorICAg
IE5VTEwgLyogY3RybCAqLywKK307CisKK3N0YXRpYyBjb25zdCBFVlBfQ0lQSEVSIGJmX2NmYiA9
IHsKKyAgICBOSURfYmZfY2ZiNjQsICAgICAgICAxIC8qIGJsb2NrX3NpemUgKi8sCisgICAgMTYg
Lyoga2V5X3NpemUgKi8sICAgQkZfQkxPQ0sgLyogaXZfbGVuICovLAorICAgIHNpemVvZihCRl9L
RVkpLCAgICAgIEVWUF9DSVBIX0NGQl9NT0RFIHwgRVZQX0NJUEhfVkFSSUFCTEVfTEVOR1RILAor
ICAgIE5VTEwgLyogYXBwX2RhdGEgKi8sIGJmX2luaXRfa2V5LAorICAgIGJmX2NmYl9jaXBoZXIs
ICAgICAgIE5VTEwgLyogY2xlYW51cCAqLywKKyAgICBOVUxMIC8qIGN0cmwgKi8sCit9OworCitj
b25zdCBFVlBfQ0lQSEVSICpFVlBfYmZfZWNiKHZvaWQpIHsgcmV0dXJuICZiZl9lY2I7IH0KKwor
Y29uc3QgRVZQX0NJUEhFUiAqRVZQX2JmX2NiYyh2b2lkKSB7IHJldHVybiAmYmZfY2JjOyB9CisK
K2NvbnN0IEVWUF9DSVBIRVIgKkVWUF9iZl9jZmIodm9pZCkgeyByZXR1cm4gJmJmX2NmYjsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2RlY3JlcGl0L2Jsb3dmaXNoL2Jsb3dmaXNoX3Rlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
ZGVjcmVwaXQvYmxvd2Zpc2gvYmxvd2Zpc2hfdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjA4ZmU0YmZh
YWU4OGRiYjQwNWFhZWQwZjUwZGRkNmUyZWJmMzMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Rl
Y3JlcGl0L2Jsb3dmaXNoL2Jsb3dmaXNoX3Rlc3QuY2MKQEAgLTAsMCArMSwxNjMgQEAKKy8vIENv
cHlyaWdodCAoYykgMjAxOSwgR29vZ2xlIEluYy4KKy8vCisvLyBQZXJtaXNzaW9uIHRvIHVzZSwg
Y29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKy8v
IHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQg
dGhhdCB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisvLworLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJ
REVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisvLyBX
SVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5U
SUVTIE9GCisvLyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKy8vIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJF
Q1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworLy8gV0hBVFNPRVZF
UiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElO
IEFOIEFDVElPTgorLy8gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMg
QUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorLy8gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0Ug
T1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKworI2luY2x1ZGUgPG9wZW5zc2wvY2lw
aGVyLmg+CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSAiLi4vLi4vY3J5
cHRvL2ludGVybmFsLmgiCisjaW5jbHVkZSAiLi4vLi4vY3J5cHRvL3Rlc3QvdGVzdF91dGlsLmgi
CisKK3N0cnVjdCBCbG93ZmlzaFRlc3RDYXNlIHsKKyAgdWludDhfdCBrZXlbMTZdOworICB1aW50
OF90IHBsYWludGV4dFsxNl07CisgIHVpbnQ4X3QgaXZbOF07CisgIHVpbnQ4X3QgZWNiX2NpcGhl
cnRleHRbMTZdOworICB1aW50OF90IGNiY19jaXBoZXJ0ZXh0WzI0XTsKKyAgdWludDhfdCBjZmJf
Y2lwaGVydGV4dFsxNl07Cit9OworCitzdGF0aWMgY29uc3QgQmxvd2Zpc2hUZXN0Q2FzZSBrVGVz
dHNbXSA9IHsKKyAgICAvLyBSYW5kb21seSBnZW5lcmF0ZWQgdGVzdCBjYXNlcy4gQ2hlY2tlZCBh
Z2FpbnN0IHZhbmlsbGEgT3BlblNTTC4KKyAgICB7CisgICAgICAgIHsweGJiLCAweDU2LCAweGIx
LCAweDI3LCAweDdjLCAweDRjLCAweGRkLCAweDVhLCAweDk5LCAweDkwLCAweDFlLCAweDZmLAor
ICAgICAgICAgMHhlYiwgMHgzNiwgMHg2YywgMHhmM30sCisgICAgICAgIHsweGE2LCAweDViLCAw
eGUwLCAweDk5LCAweGFkLCAweDVkLCAweDkxLCAweDk4LCAweDM3LCAweGMxLCAweGE0LCAweDdm
LAorICAgICAgICAgMHgwMSwgMHgyNCwgMHg5YSwgMHg2Yn0sCisgICAgICAgIHsweGQ1LCAweDhh
LCAweDVjLCAweDI5LCAweGViLCAweGVlLCAweGVkLCAweDc2fSwKKyAgICAgICAgezB4ZGEsIDB4
NmUsIDB4MTgsIDB4OWMsIDB4MDMsIDB4NTksIDB4MTIsIDB4NjEsIDB4ZmEsIDB4MjAsIDB4ZDks
IDB4Y2UsCisgICAgICAgICAweGVlLCAweDQzLCAweDlkLCAweDA1fSwKKyAgICAgICAgezB4NGYs
IDB4OGIsIDB4M2UsIDB4MTcsIDB4YTUsIDB4MzUsIDB4OWIsIDB4Y2IsCisgICAgICAgICAweGRm
LCAweDNjLCAweDUyLCAweGZiLCAweGU1LCAweDIwLCAweGRkLCAweDUzLAorICAgICAgICAgMHhk
NSwgMHhmOCwgMHgxYSwgMHg2YywgMHhmMCwgMHg5OSwgMHgzNCwgMHg5NH0sCisgICAgICAgIHsw
eGZkLCAweDY1LCAweGM1LCAweGE2LCAweDA3LCAweDA3LCAweGI1LCAweGYzLCAweDJlLCAweGZi
LCAweDEyLCAweGMzLAorICAgICAgICAgMHg3ZiwgMHg0NSwgMHgzNywgMHg1NH0sCisgICAgfSwK
KyAgICB7CisgICAgICAgIHsweDVkLCAweDk4LCAweGE5LCAweGQyLCAweDI3LCAweDVkLCAweGM4
LCAweDhjLCAweDhjLCAweGVlLCAweDIzLCAweDdmLAorICAgICAgICAgMHg4ZSwgMHgyYiwgMHhk
NCwgMHg4ZH0sCisgICAgICAgIHsweDYwLCAweGVjLCAweDMxLCAweGRhLCAweDI1LCAweDA3LCAw
eDAyLCAweDE0LCAweDg0LCAweDQ0LCAweDk2LCAweGE2LAorICAgICAgICAgMHgwNCwgMHg4MSwg
MHhjYSwgMHg0ZX0sCisgICAgICAgIHsweDk2LCAweDRjLCAweGE0LCAweDA3LCAweGVlLCAweDFj
LCAweGQxLCAweGZifSwKKyAgICAgICAgezB4ODMsIDB4OGEsIDB4ZWYsIDB4MTgsIDB4NTMsIDB4
OTYsIDB4ZWMsIDB4ZjMsIDB4ZjQsIDB4ZDksIDB4ZTgsIDB4NGIsCisgICAgICAgICAweDJjLCAw
eDNmLCAweGU3LCAweDI3fSwKKyAgICAgICAgezB4YWQsIDB4NzgsIDB4NzAsIDB4MDYsIDB4MmUs
IDB4NWUsIDB4YTUsIDB4MjEsCisgICAgICAgICAweGRkLCAweGU4LCAweGEwLCAweGI5LCAweGRi
LCAweDBjLCAweDgxLCAweDFkLAorICAgICAgICAgMHgwYSwgMHhkMywgMHhhOSwgMHg2MywgMHg3
OCwgMHhhYywgMHg4MiwgMHg2NH0sCisgICAgICAgIHsweDQzLCAweDJmLCAweGYzLCAweDIzLCAw
eGY0LCAweDVjLCAweGJmLCAweDA1LCAweDUzLCAweDNjLCAweDllLCAweGQ2LAorICAgICAgICAg
MHhkMywgMHhkMiwgMHhjMCwgMHhmMH0sCisgICAgfSwKK307CisKK1RFU1QoQmxvd2Zpc2gsIEVD
QikgeworICB1bnNpZ25lZCB0ZXN0X251bSA9IDA7CisgIGZvciAoY29uc3QgYXV0byAmdGVzdCA6
IGtUZXN0cykgeworICAgIHRlc3RfbnVtKys7CisgICAgU0NPUEVEX1RSQUNFKHRlc3RfbnVtKTsK
KworICAgIHVpbnQ4X3Qgb3V0W3NpemVvZih0ZXN0LmVjYl9jaXBoZXJ0ZXh0KV07CisgICAgaW50
IG91dF9ieXRlcywgZmluYWxfYnl0ZXM7CisKKyAgICBic3NsOjpTY29wZWRFVlBfQ0lQSEVSX0NU
WCBjdHg7CisgICAgQVNTRVJUX1RSVUUoRVZQX0VuY3J5cHRJbml0X2V4KGN0eC5nZXQoKSwgRVZQ
X2JmX2VjYigpLCBudWxscHRyLCB0ZXN0LmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbnVsbHB0cikpOworICAgIEFTU0VSVF9UUlVFKEVWUF9DSVBIRVJfQ1RYX3NldF9w
YWRkaW5nKGN0eC5nZXQoKSwgMCAvKiBubyBwYWRkaW5nICovKSk7CisgICAgQVNTRVJUX1RSVUUo
RVZQX0VuY3J5cHRVcGRhdGUoY3R4LmdldCgpLCBvdXQsICZvdXRfYnl0ZXMsIHRlc3QucGxhaW50
ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih0ZXN0LnBsYWlu
dGV4dCkpKTsKKyAgICBBU1NFUlRfVFJVRShFVlBfRW5jcnlwdEZpbmFsX2V4KGN0eC5nZXQoKSwg
b3V0ICsgb3V0X2J5dGVzLCAmZmluYWxfYnl0ZXMpKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nh
c3Q8c2l6ZV90PihvdXRfYnl0ZXMgKyBmaW5hbF9ieXRlcyksCisgICAgICAgICAgICAgIHNpemVv
Zih0ZXN0LnBsYWludGV4dCkpOworICAgIEVYUEVDVF9FUShCeXRlcyh0ZXN0LmVjYl9jaXBoZXJ0
ZXh0KSwgQnl0ZXMob3V0KSk7CisKKyAgICBic3NsOjpTY29wZWRFVlBfQ0lQSEVSX0NUWCBkZWNy
eXB0X2N0eDsKKyAgICBBU1NFUlRfVFJVRShFVlBfRGVjcnlwdEluaXRfZXgoZGVjcnlwdF9jdHgu
Z2V0KCksIEVWUF9iZl9lY2IoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdC5rZXksIG51bGxwdHIpKTsKKyAgICBBU1NFUlRfVFJVRSgKKyAgICAgICAg
RVZQX0NJUEhFUl9DVFhfc2V0X3BhZGRpbmcoZGVjcnlwdF9jdHguZ2V0KCksIDAgLyogbm8gcGFk
ZGluZyAqLykpOworICAgIEFTU0VSVF9UUlVFKEVWUF9EZWNyeXB0VXBkYXRlKGRlY3J5cHRfY3R4
LmdldCgpLCBvdXQsICZvdXRfYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdC5lY2JfY2lwaGVydGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplb2YodGVzdC5lY2JfY2lwaGVydGV4dCkpKTsKKyAgICBBU1NFUlRfVFJVRSgKKyAgICAg
ICAgRVZQX0RlY3J5cHRGaW5hbF9leChkZWNyeXB0X2N0eC5nZXQoKSwgb3V0ICsgb3V0X2J5dGVz
LCAmZmluYWxfYnl0ZXMpKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihvdXRf
Ynl0ZXMgKyBmaW5hbF9ieXRlcyksCisgICAgICAgICAgICAgIHNpemVvZih0ZXN0LnBsYWludGV4
dCkpOworICAgIEVYUEVDVF9FUShCeXRlcyh0ZXN0LnBsYWludGV4dCksIEJ5dGVzKG91dCkpOwor
ICB9Cit9CisKK1RFU1QoQmxvd2Zpc2gsIENCQykgeworICB1bnNpZ25lZCB0ZXN0X251bSA9IDA7
CisgIGZvciAoY29uc3QgYXV0byAmdGVzdCA6IGtUZXN0cykgeworICAgIHRlc3RfbnVtKys7Cisg
ICAgU0NPUEVEX1RSQUNFKHRlc3RfbnVtKTsKKworICAgIHVpbnQ4X3Qgb3V0W3NpemVvZih0ZXN0
LmNiY19jaXBoZXJ0ZXh0KV07CisgICAgaW50IG91dF9ieXRlcywgZmluYWxfYnl0ZXM7CisKKyAg
ICBic3NsOjpTY29wZWRFVlBfQ0lQSEVSX0NUWCBjdHg7CisgICAgQVNTRVJUX1RSVUUoRVZQX0Vu
Y3J5cHRJbml0X2V4KGN0eC5nZXQoKSwgRVZQX2JmX2NiYygpLCBudWxscHRyLCB0ZXN0LmtleSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5pdikpOworICAgIEFTU0VS
VF9UUlVFKEVWUF9FbmNyeXB0VXBkYXRlKGN0eC5nZXQoKSwgb3V0LCAmb3V0X2J5dGVzLCB0ZXN0
LnBsYWludGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodGVz
dC5wbGFpbnRleHQpKSk7CisgICAgRVhQRUNUX1RSVUUoRVZQX0VuY3J5cHRGaW5hbF9leChjdHgu
Z2V0KCksIG91dCArIG91dF9ieXRlcywgJmZpbmFsX2J5dGVzKSk7CisgICAgRVhQRUNUX0VRKHN0
YXRpY19jYXN0PHNpemVfdD4ob3V0X2J5dGVzICsgZmluYWxfYnl0ZXMpLAorICAgICAgICAgICAg
ICBzaXplb2YodGVzdC5jYmNfY2lwaGVydGV4dCkpOworICAgIEVYUEVDVF9FUShCeXRlcyh0ZXN0
LmNiY19jaXBoZXJ0ZXh0KSwgQnl0ZXMob3V0KSk7CisKKyAgICBic3NsOjpTY29wZWRFVlBfQ0lQ
SEVSX0NUWCBkZWNyeXB0X2N0eDsKKyAgICBBU1NFUlRfVFJVRShFVlBfRGVjcnlwdEluaXRfZXgo
ZGVjcnlwdF9jdHguZ2V0KCksIEVWUF9iZl9jYmMoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdC5rZXksIHRlc3QuaXYpKTsKKyAgICBBU1NFUlRfVFJV
RShFVlBfRGVjcnlwdFVwZGF0ZShkZWNyeXB0X2N0eC5nZXQoKSwgb3V0LCAmb3V0X2J5dGVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QuY2JjX2NpcGhlcnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHRlc3QuY2JjX2NpcGhlcnRl
eHQpKSk7CisgICAgRVhQRUNUX1RSVUUoCisgICAgICAgIEVWUF9EZWNyeXB0RmluYWxfZXgoZGVj
cnlwdF9jdHguZ2V0KCksIG91dCArIG91dF9ieXRlcywgJmZpbmFsX2J5dGVzKSk7CisgICAgRVhQ
RUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4ob3V0X2J5dGVzICsgZmluYWxfYnl0ZXMpLAorICAg
ICAgICAgICAgICBzaXplb2YodGVzdC5wbGFpbnRleHQpKTsKKyAgICBFWFBFQ1RfRVEoQnl0ZXMo
dGVzdC5wbGFpbnRleHQpLCBCeXRlcyhvdXQsIG91dF9ieXRlcyArIGZpbmFsX2J5dGVzKSk7Cisg
IH0KK30KKworVEVTVChCbG93ZmlzaCwgQ0ZCKSB7CisgIHVuc2lnbmVkIHRlc3RfbnVtID0gMDsK
KyAgZm9yIChjb25zdCBhdXRvICZ0ZXN0IDoga1Rlc3RzKSB7CisgICAgdGVzdF9udW0rKzsKKyAg
ICBTQ09QRURfVFJBQ0UodGVzdF9udW0pOworCisgICAgdWludDhfdCBvdXRbc2l6ZW9mKHRlc3Qu
Y2ZiX2NpcGhlcnRleHQpXTsKKyAgICBpbnQgb3V0X2J5dGVzLCBmaW5hbF9ieXRlczsKKworICAg
IGJzc2w6OlNjb3BlZEVWUF9DSVBIRVJfQ1RYIGN0eDsKKyAgICBBU1NFUlRfVFJVRShFVlBfRW5j
cnlwdEluaXRfZXgoY3R4LmdldCgpLCBFVlBfYmZfY2ZiKCksIG51bGxwdHIsIHRlc3Qua2V5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Lml2KSk7CisgICAgQVNTRVJU
X1RSVUUoRVZQX0VuY3J5cHRVcGRhdGUoY3R4LmdldCgpLCBvdXQsICZvdXRfYnl0ZXMsIHRlc3Qu
cGxhaW50ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih0ZXN0
LnBsYWludGV4dCkpKTsKKyAgICBBU1NFUlRfVFJVRShFVlBfRW5jcnlwdEZpbmFsX2V4KGN0eC5n
ZXQoKSwgb3V0ICsgb3V0X2J5dGVzLCAmZmluYWxfYnl0ZXMpKTsKKyAgICBFWFBFQ1RfRVEoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihvdXRfYnl0ZXMgKyBmaW5hbF9ieXRlcyksCisgICAgICAgICAgICAg
IHNpemVvZih0ZXN0LnBsYWludGV4dCkpOworICAgIEVYUEVDVF9FUShCeXRlcyh0ZXN0LmNmYl9j
aXBoZXJ0ZXh0KSwgQnl0ZXMob3V0KSk7CisKKyAgICBic3NsOjpTY29wZWRFVlBfQ0lQSEVSX0NU
WCBkZWNyeXB0X2N0eDsKKyAgICBBU1NFUlRfVFJVRShFVlBfRGVjcnlwdEluaXRfZXgoZGVjcnlw
dF9jdHguZ2V0KCksIEVWUF9iZl9jZmIoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdC5rZXksIHRlc3QuaXYpKTsKKyAgICBBU1NFUlRfVFJVRShFVlBf
RGVjcnlwdFVwZGF0ZShkZWNyeXB0X2N0eC5nZXQoKSwgb3V0LCAmb3V0X2J5dGVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QuY2ZiX2NpcGhlcnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHRlc3QuY2ZiX2NpcGhlcnRleHQpKSk7
CisgICAgQVNTRVJUX1RSVUUoCisgICAgICAgIEVWUF9EZWNyeXB0RmluYWxfZXgoZGVjcnlwdF9j
dHguZ2V0KCksIG91dCArIG91dF9ieXRlcywgJmZpbmFsX2J5dGVzKSk7CisgICAgRVhQRUNUX0VR
KHN0YXRpY19jYXN0PHNpemVfdD4ob3V0X2J5dGVzICsgZmluYWxfYnl0ZXMpLAorICAgICAgICAg
ICAgICBzaXplb2YodGVzdC5wbGFpbnRleHQpKTsKKyAgICBFWFBFQ1RfRVEoQnl0ZXModGVzdC5w
bGFpbnRleHQpLCBCeXRlcyhvdXQpKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2RlY3JlcGl0
L2Nhc3QvY2FzdC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2RlY3JlcGl0L2Nhc3QvY2FzdC5jCmluZGV4IDhkODBhYmE4NzQz
M2NkNTAxMzZkNWMxMTdmZWUwYzYzYmU1MjMyYTEuLjhmZDRlM2FiMDJjZjJkZTA0MWY4OTQ5ZjYw
YmVkMThhZDFkMmRhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9kZWNyZXBpdC9jYXN0L2Nhc3QuYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvZGVjcmVwaXQvY2FzdC9jYXN0LmMKQEAgLTU1LDYgKzU1LDggQEAKICAqIFtpbmNsdWRp
bmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dLiAqLwogCiAjaW5jbHVkZSA8b3BlbnNzbC9jYXN0
Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jaXBoZXIuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL29iai5o
PgogCiAjaWYgZGVmaW5lZChPUEVOU1NMX1dJTkRPV1MpCiBPUEVOU1NMX01TVkNfUFJBR01BKHdh
cm5pbmcocHVzaCwgMykpCkBAIC02Miw2ICs2NCw3IEBAIE9QRU5TU0xfTVNWQ19QUkFHTUEod2Fy
bmluZyhwdXNoLCAzKSkKIE9QRU5TU0xfTVNWQ19QUkFHTUEod2FybmluZyhwb3ApKQogI2VuZGlm
CiAKKyNpbmNsdWRlICIuLi8uLi9jcnlwdG8vaW50ZXJuYWwuaCIKICNpbmNsdWRlICJpbnRlcm5h
bC5oIgogI2luY2x1ZGUgIi4uL21hY3Jvcy5oIgogCkBAIC0xNjMsMTggKzE2NiwxOCBAQCB2b2lk
IENBU1RfZGVjcnlwdCh1aW50MzJfdCAqZGF0YSwgY29uc3QgQ0FTVF9LRVkgKmtleSkgewogICBk
YXRhWzBdID0gciAmIDB4ZmZmZmZmZmZMOwogfQogCi12b2lkIENBU1RfY2JjX2VuY3J5cHQoY29u
c3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgbG9uZyBsZW5ndGgsCit2b2lkIENBU1RfY2Jj
X2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90IGxlbmd0aCwK
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDQVNUX0tFWSAqa3MsIHVpbnQ4X3QgKml2LCBp
bnQgZW5jKSB7CiAgIHVpbnQzMl90IHRpbjAsIHRpbjE7CiAgIHVpbnQzMl90IHRvdXQwLCB0b3V0
MSwgeG9yMCwgeG9yMTsKLSAgbG9uZyBsID0gbGVuZ3RoOworICBzaXplX3QgbCA9IGxlbmd0aDsK
ICAgdWludDMyX3QgdGluWzJdOwogCiAgIGlmIChlbmMpIHsKICAgICBuMmwoaXYsIHRvdXQwKTsK
ICAgICBuMmwoaXYsIHRvdXQxKTsKICAgICBpdiAtPSA4OwotICAgIGZvciAobCAtPSA4OyBsID49
IDA7IGwgLT0gOCkgeworICAgIHdoaWxlIChsID49IDgpIHsKICAgICAgIG4ybChpbiwgdGluMCk7
CiAgICAgICBuMmwoaW4sIHRpbjEpOwogICAgICAgdGluMCBePSB0b3V0MDsKQEAgLTE4Niw5ICsx
ODksMTAgQEAgdm9pZCBDQVNUX2NiY19lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90
ICpvdXQsIGxvbmcgbGVuZ3RoLAogICAgICAgdG91dDEgPSB0aW5bMV07CiAgICAgICBsMm4odG91
dDAsIG91dCk7CiAgICAgICBsMm4odG91dDEsIG91dCk7CisgICAgICBsIC09IDg7CiAgICAgfQot
ICAgIGlmIChsICE9IC04KSB7Ci0gICAgICBuMmxuKGluLCB0aW4wLCB0aW4xLCBsICsgOCk7Cisg
ICAgaWYgKGwgIT0gMCkgeworICAgICAgbjJsbihpbiwgdGluMCwgdGluMSwgbCk7CiAgICAgICB0
aW4wIF49IHRvdXQwOwogICAgICAgdGluMSBePSB0b3V0MTsKICAgICAgIHRpblswXSA9IHRpbjA7
CkBAIC0yMDUsNyArMjA5LDcgQEAgdm9pZCBDQVNUX2NiY19lbmNyeXB0KGNvbnN0IHVpbnQ4X3Qg
KmluLCB1aW50OF90ICpvdXQsIGxvbmcgbGVuZ3RoLAogICAgIG4ybChpdiwgeG9yMCk7CiAgICAg
bjJsKGl2LCB4b3IxKTsKICAgICBpdiAtPSA4OwotICAgIGZvciAobCAtPSA4OyBsID49IDA7IGwg
LT0gOCkgeworICAgIHdoaWxlIChsID49IDgpIHsKICAgICAgIG4ybChpbiwgdGluMCk7CiAgICAg
ICBuMmwoaW4sIHRpbjEpOwogICAgICAgdGluWzBdID0gdGluMDsKQEAgLTIxNyw4ICsyMjEsOSBA
QCB2b2lkIENBU1RfY2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwg
bG9uZyBsZW5ndGgsCiAgICAgICBsMm4odG91dDEsIG91dCk7CiAgICAgICB4b3IwID0gdGluMDsK
ICAgICAgIHhvcjEgPSB0aW4xOworICAgICAgbCAtPSA4OwogICAgIH0KLSAgICBpZiAobCAhPSAt
OCkgeworICAgIGlmIChsICE9IDApIHsKICAgICAgIG4ybChpbiwgdGluMCk7CiAgICAgICBuMmwo
aW4sIHRpbjEpOwogICAgICAgdGluWzBdID0gdGluMDsKQEAgLTIyNiw3ICsyMzEsNyBAQCB2b2lk
IENBU1RfY2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgbG9uZyBs
ZW5ndGgsCiAgICAgICBDQVNUX2RlY3J5cHQodGluLCBrcyk7CiAgICAgICB0b3V0MCA9IHRpblsw
XSBeIHhvcjA7CiAgICAgICB0b3V0MSA9IHRpblsxXSBeIHhvcjE7Ci0gICAgICBsMm5uKHRvdXQw
LCB0b3V0MSwgb3V0LCBsICsgOCk7CisgICAgICBsMm5uKHRvdXQwLCB0b3V0MSwgb3V0LCBsKTsK
ICAgICAgIHhvcjAgPSB0aW4wOwogICAgICAgeG9yMSA9IHRpbjE7CiAgICAgfQpAQCAtMzUxLDEy
ICszNTYsMTIgQEAgdm9pZCBDQVNUX3NldF9rZXkoQ0FTVF9LRVkgKmtleSwgc2l6ZV90IGxlbiwg
Y29uc3QgdWludDhfdCAqZGF0YSkgewogLy8gVGhlIGlucHV0IGFuZCBvdXRwdXQgZW5jcnlwdGVk
IGFzIHRob3VnaCA2NGJpdCBjZmIgbW9kZSBpcyBiZWluZyB1c2VkLiBUaGUKIC8vIGV4dHJhIHN0
YXRlIGluZm9ybWF0aW9uIHRvIHJlY29yZCBob3cgbXVjaCBvZiB0aGUgNjRiaXQgYmxvY2sgd2Ug
aGF2ZSB1c2VkCiAvLyBpcyBjb250YWluZWQgaW4gKm51bS4KLXZvaWQgQ0FTVF9jZmI2NF9lbmNy
eXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIGxvbmcgbGVuZ3RoLAordm9pZCBD
QVNUX2NmYjY0X2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgc2l6ZV90
IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENBU1RfS0VZICpzY2hlZHVs
ZSwgdWludDhfdCAqaXZlYywgaW50ICpudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
ZW5jKSB7CiAgIHVpbnQzMl90IHYwLCB2MSwgdDsKICAgaW50IG4gPSAqbnVtOwotICBsb25nIGwg
PSBsZW5ndGg7CisgIHNpemVfdCBsID0gbGVuZ3RoOwogICB1aW50MzJfdCB0aVsyXTsKICAgdWlu
dDhfdCAqaXYsIGMsIGNjOwogCkBAIC00MDYsMyArNDExLDU0IEBAIHZvaWQgQ0FTVF9jZmI2NF9l
bmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsIGxvbmcgbGVuZ3RoLAogICB2
MCA9IHYxID0gdGlbMF0gPSB0aVsxXSA9IHQgPSBjID0gY2MgPSAwOwogICAqbnVtID0gbjsKIH0K
Kworc3RhdGljIGludCBjYXN0X2luaXRfa2V5KEVWUF9DSVBIRVJfQ1RYICpjdHgsIGNvbnN0IHVp
bnQ4X3QgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppdiwg
aW50IGVuYykgeworICBDQVNUX0tFWSAqY2FzdF9rZXkgPSBjdHgtPmNpcGhlcl9kYXRhOworICBD
QVNUX3NldF9rZXkoY2FzdF9rZXksIGN0eC0+a2V5X2xlbiwga2V5KTsKKyAgcmV0dXJuIDE7Cit9
CisKK3N0YXRpYyBpbnQgY2FzdF9lY2JfY2lwaGVyKEVWUF9DSVBIRVJfQ1RYICpjdHgsIHVpbnQ4
X3QgKm91dCwgY29uc3QgdWludDhfdCAqaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgbGVuKSB7CisgIENBU1RfS0VZICpjYXN0X2tleSA9IGN0eC0+Y2lwaGVyX2RhdGE7CisK
KyAgd2hpbGUgKGxlbiA+PSBDQVNUX0JMT0NLKSB7CisgICAgQ0FTVF9lY2JfZW5jcnlwdChpbiwg
b3V0LCBjYXN0X2tleSwgY3R4LT5lbmNyeXB0KTsKKyAgICBpbiArPSBDQVNUX0JMT0NLOworICAg
IG91dCArPSBDQVNUX0JMT0NLOworICAgIGxlbiAtPSBDQVNUX0JMT0NLOworICB9CisgIGFzc2Vy
dChsZW4gPT0gMCk7CisKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgY2FzdF9jYmNfY2lw
aGVyKEVWUF9DSVBIRVJfQ1RYICpjdHgsIHVpbnQ4X3QgKm91dCwgY29uc3QgdWludDhfdCAqaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKSB7CisgIENBU1RfS0VZICpj
YXN0X2tleSA9IGN0eC0+Y2lwaGVyX2RhdGE7CisgIENBU1RfY2JjX2VuY3J5cHQoaW4sIG91dCwg
bGVuLCBjYXN0X2tleSwgY3R4LT5pdiwgY3R4LT5lbmNyeXB0KTsKKyAgcmV0dXJuIDE7Cit9CisK
K3N0YXRpYyBjb25zdCBFVlBfQ0lQSEVSIGNhc3Q1X2VjYiA9IHsKKyAgICBOSURfY2FzdDVfZWNi
LCAgICAgICBDQVNUX0JMT0NLLAorICAgIENBU1RfS0VZX0xFTkdUSCwgICAgIENBU1RfQkxPQ0sg
LyogaXZfbGVuICovLAorICAgIHNpemVvZihDQVNUX0tFWSksICAgIEVWUF9DSVBIX0VDQl9NT0RF
IHwgRVZQX0NJUEhfVkFSSUFCTEVfTEVOR1RILAorICAgIE5VTEwgLyogYXBwX2RhdGEgKi8sIGNh
c3RfaW5pdF9rZXksCisgICAgY2FzdF9lY2JfY2lwaGVyLCAgICAgTlVMTCAvKiBjbGVhbnVwICov
LAorICAgIE5VTEwgLyogY3RybCAqLywKK307CisKK3N0YXRpYyBjb25zdCBFVlBfQ0lQSEVSIGNh
c3Q1X2NiYyA9IHsKKyAgICBOSURfY2FzdDVfY2JjLCAgICAgICBDQVNUX0JMT0NLLAorICAgIENB
U1RfS0VZX0xFTkdUSCwgICAgIENBU1RfQkxPQ0sgLyogaXZfbGVuICovLAorICAgIHNpemVvZihD
QVNUX0tFWSksICAgIEVWUF9DSVBIX0NCQ19NT0RFIHwgRVZQX0NJUEhfVkFSSUFCTEVfTEVOR1RI
LAorICAgIE5VTEwgLyogYXBwX2RhdGEgKi8sIGNhc3RfaW5pdF9rZXksCisgICAgY2FzdF9jYmNf
Y2lwaGVyLCAgICAgTlVMTCAvKiBjbGVhbnVwICovLAorICAgIE5VTEwgLyogY3RybCAqLywKK307
CisKK2NvbnN0IEVWUF9DSVBIRVIgKkVWUF9jYXN0NV9lY2Iodm9pZCkgeyByZXR1cm4gJmNhc3Q1
X2VjYjsgfQorCitjb25zdCBFVlBfQ0lQSEVSICpFVlBfY2FzdDVfY2JjKHZvaWQpIHsgcmV0dXJu
ICZjYXN0NV9jYmM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9kZWNyZXBpdC9jYXN0L2Nhc3RfdGVzdC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9kZWNyZXBpdC9jYXN0L2Nhc3RfdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDVmMmE5ODlk
MmVmMjg1ZWZjMWYyOTI2M2MxZWQ0MWM4YzE5OTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Rl
Y3JlcGl0L2Nhc3QvY2FzdF90ZXN0LmNjCkBAIC0wLDAgKzEsMTI1IEBACisvLyBDb3B5cmlnaHQg
KGMpIDIwMTksIEdvb2dsZSBJbmMuCisvLworLy8gUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisvLyBwdXJwb3Nl
IHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhl
IGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFw
cGVhciBpbiBhbGwgY29waWVzLgorLy8KKy8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworLy8gV0lUSCBSRUdB
UkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgor
Ly8gTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SIEJFIExJQUJMRSBGT1IgQU5ZCisvLyBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKy8vIFdIQVRTT0VWRVIgUkVTVUxU
SU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04KKy8vIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwg
QVJJU0lORyBPVVQgT0YgT1IgSU4KKy8vIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZP
Uk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCisKKyNpbmNsdWRlIDxvcGVuc3NsL2NpcGhlci5oPgor
CisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgIi4uLy4uL2NyeXB0by9pbnRl
cm5hbC5oIgorI2luY2x1ZGUgIi4uLy4uL2NyeXB0by90ZXN0L3Rlc3RfdXRpbC5oIgorCitzdHJ1
Y3QgQ2FzdFRlc3RDYXNlIHsKKyAgdWludDhfdCBrZXlbMTZdOworICB1aW50OF90IHBsYWludGV4
dFsxNl07CisgIHVpbnQ4X3QgaXZbOF07CisgIHVpbnQ4X3QgZWNiX2NpcGhlcnRleHRbMTZdOwor
ICB1aW50OF90IGNiY19jaXBoZXJ0ZXh0WzI0XTsKK307CisKK3N0YXRpYyBjb25zdCBDYXN0VGVz
dENhc2Uga1Rlc3RzW10gPSB7CisgICAgLy8gUmFuZG9tbHkgZ2VuZXJhdGVkIHRlc3QgY2FzZXMu
IENoZWNrZWQgYWdhaW5zdCB2YW5pbGxhIE9wZW5TU0wuCisgICAgeworICAgICAgICB7MHhiYiwg
MHg1NiwgMHhiMSwgMHgyNywgMHg3YywgMHg0YywgMHhkZCwgMHg1YSwgMHg5OSwgMHg5MCwgMHgx
ZSwgMHg2ZiwKKyAgICAgICAgIDB4ZWIsIDB4MzYsIDB4NmMsIDB4ZjN9LAorICAgICAgICB7MHhh
NiwgMHg1YiwgMHhlMCwgMHg5OSwgMHhhZCwgMHg1ZCwgMHg5MSwgMHg5OCwgMHgzNywgMHhjMSwg
MHhhNCwgMHg3ZiwKKyAgICAgICAgIDB4MDEsIDB4MjQsIDB4OWEsIDB4NmJ9LAorICAgICAgICB7
MHhkNSwgMHg4YSwgMHg1YywgMHgyOSwgMHhlYiwgMHhlZSwgMHhlZCwgMHg3Nn0sCisgICAgICAg
IHsweDAxLCAweDhkLCAweDFiLCAweDQyLCAweGI4LCAweDc3LCAweGM4LCAweDg0LCAweDI1LCAw
eDdkLCAweGQ0LCAweDg5LAorICAgICAgICAgMHg4ZCwgMHhjMSwgMHhiYywgMHgyYX0sCisgICAg
ICAgIHsweGMxLCAweDA1LCAweGExLCAweDlhLCAweGI0LCAweGM0LCAweGQwLCAweDE1LAorICAg
ICAgICAgMHg5ZCwgMHhmZCwgMHhlYSwgMHhkMCwgMHhjMywgMHg1NCwgMHhlNSwgMHgzMywKKyAg
ICAgICAgIDB4MjYsIDB4YWMsIDB4MjUsIDB4ZjMsIDB4NDgsIDB4YmMsIDB4ZjYsIDB4YTJ9LAor
ICAgIH0sCisgICAgeworICAgICAgICB7MHg1ZCwgMHg5OCwgMHhhOSwgMHhkMiwgMHgyNywgMHg1
ZCwgMHhjOCwgMHg4YywgMHg4YywgMHhlZSwgMHgyMywgMHg3ZiwKKyAgICAgICAgIDB4OGUsIDB4
MmIsIDB4ZDQsIDB4OGR9LAorICAgICAgICB7MHg2MCwgMHhlYywgMHgzMSwgMHhkYSwgMHgyNSwg
MHgwNywgMHgwMiwgMHgxNCwgMHg4NCwgMHg0NCwgMHg5NiwgMHhhNiwKKyAgICAgICAgIDB4MDQs
IDB4ODEsIDB4Y2EsIDB4NGV9LAorICAgICAgICB7MHg5NiwgMHg0YywgMHhhNCwgMHgwNywgMHhl
ZSwgMHgxYywgMHhkMSwgMHhmYn0sCisgICAgICAgIHsweDU4LCAweDYyLCAweDI5LCAweDYyLCAw
eDIzLCAweDY5LCAweDllLCAweGU4LCAweDI3LCAweGMyLCAweGNkLCAweDViLAorICAgICAgICAg
MHgzNSwgMHhmMSwgMHhkZiwgMHhhNH0sCisgICAgICAgIHsweDFjLCAweGQwLCAweDI5LCAweGU1
LCAweGYzLCAweGRiLCAweDY1LCAweDYwLAorICAgICAgICAgMHgwNSwgMHhkZSwgMHgwMSwgMHgy
YiwgMHgxMCwgMHgwOSwgMHg0NCwgMHg1NiwKKyAgICAgICAgIDB4NTksIDB4NDQsIDB4MDAsIDB4
MjYsIDB4ZGIsIDB4YjMsIDB4MmQsIDB4OTh9LAorICAgIH0sCit9OworCitURVNUKENBU1QsIEVD
QikgeworICB1bnNpZ25lZCB0ZXN0X251bSA9IDA7CisgIGZvciAoY29uc3QgYXV0byAmdGVzdCA6
IGtUZXN0cykgeworICAgIHRlc3RfbnVtKys7CisgICAgU0NPUEVEX1RSQUNFKHRlc3RfbnVtKTsK
KworICAgIHVpbnQ4X3Qgb3V0W3NpemVvZih0ZXN0LmVjYl9jaXBoZXJ0ZXh0KV07CisgICAgaW50
IG91dF9ieXRlcywgZmluYWxfYnl0ZXM7CisKKyAgICBic3NsOjpTY29wZWRFVlBfQ0lQSEVSX0NU
WCBjdHg7CisgICAgQVNTRVJUX1RSVUUoRVZQX0VuY3J5cHRJbml0X2V4KGN0eC5nZXQoKSwgRVZQ
X2Nhc3Q1X2VjYigpLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0LmtleSwgbnVsbHB0cikpOworICAgIEFTU0VSVF9UUlVFKEVWUF9DSVBIRVJfQ1RYX3Nl
dF9wYWRkaW5nKGN0eC5nZXQoKSwgMCAvKiBubyBwYWRkaW5nICovKSk7CisgICAgQVNTRVJUX1RS
VUUoRVZQX0VuY3J5cHRVcGRhdGUoY3R4LmdldCgpLCBvdXQsICZvdXRfYnl0ZXMsIHRlc3QucGxh
aW50ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih0ZXN0LnBs
YWludGV4dCkpKTsKKyAgICBBU1NFUlRfVFJVRShFVlBfRW5jcnlwdEZpbmFsX2V4KGN0eC5nZXQo
KSwgb3V0ICsgb3V0X2J5dGVzLCAmZmluYWxfYnl0ZXMpKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihvdXRfYnl0ZXMgKyBmaW5hbF9ieXRlcyksCisgICAgICAgICAgICAgIHNp
emVvZih0ZXN0LnBsYWludGV4dCkpOworICAgIEVYUEVDVF9FUShCeXRlcyh0ZXN0LmVjYl9jaXBo
ZXJ0ZXh0KSwgQnl0ZXMob3V0KSk7CisKKyAgICBic3NsOjpTY29wZWRFVlBfQ0lQSEVSX0NUWCBk
ZWNyeXB0X2N0eDsKKyAgICBBU1NFUlRfVFJVRShFVlBfRGVjcnlwdEluaXRfZXgoZGVjcnlwdF9j
dHguZ2V0KCksIEVWUF9jYXN0NV9lY2IoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdC5rZXksIG51bGxwdHIpKTsKKyAgICBBU1NFUlRfVFJVRSgKKyAg
ICAgICAgRVZQX0NJUEhFUl9DVFhfc2V0X3BhZGRpbmcoZGVjcnlwdF9jdHguZ2V0KCksIDAgLyog
bm8gcGFkZGluZyAqLykpOworICAgIEFTU0VSVF9UUlVFKEVWUF9EZWNyeXB0VXBkYXRlKGRlY3J5
cHRfY3R4LmdldCgpLCBvdXQsICZvdXRfYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdC5lY2JfY2lwaGVydGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2YodGVzdC5lY2JfY2lwaGVydGV4dCkpKTsKKyAgICBBU1NFUlRfVFJVRSgK
KyAgICAgICAgRVZQX0RlY3J5cHRGaW5hbF9leChkZWNyeXB0X2N0eC5nZXQoKSwgb3V0ICsgb3V0
X2J5dGVzLCAmZmluYWxfYnl0ZXMpKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90
PihvdXRfYnl0ZXMgKyBmaW5hbF9ieXRlcyksCisgICAgICAgICAgICAgIHNpemVvZih0ZXN0LnBs
YWludGV4dCkpOworICAgIEVYUEVDVF9FUShCeXRlcyh0ZXN0LnBsYWludGV4dCksIEJ5dGVzKG91
dCkpOworICB9Cit9CisKK1RFU1QoQ0FTVCwgQ0JDKSB7CisgIHVuc2lnbmVkIHRlc3RfbnVtID0g
MDsKKyAgZm9yIChjb25zdCBhdXRvICZ0ZXN0IDoga1Rlc3RzKSB7CisgICAgdGVzdF9udW0rKzsK
KyAgICBTQ09QRURfVFJBQ0UodGVzdF9udW0pOworCisgICAgdWludDhfdCBvdXRbc2l6ZW9mKHRl
c3QuY2JjX2NpcGhlcnRleHQpXTsKKyAgICBpbnQgb3V0X2J5dGVzLCBmaW5hbF9ieXRlczsKKwor
ICAgIGJzc2w6OlNjb3BlZEVWUF9DSVBIRVJfQ1RYIGN0eDsKKyAgICBBU1NFUlRfVFJVRShFVlBf
RW5jcnlwdEluaXRfZXgoY3R4LmdldCgpLCBFVlBfY2FzdDVfY2JjKCksIG51bGxwdHIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Qua2V5LCB0ZXN0Lml2KSk7CisgICAg
QVNTRVJUX1RSVUUoRVZQX0VuY3J5cHRVcGRhdGUoY3R4LmdldCgpLCBvdXQsICZvdXRfYnl0ZXMs
IHRlc3QucGxhaW50ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv
Zih0ZXN0LnBsYWludGV4dCkpKTsKKyAgICBFWFBFQ1RfVFJVRShFVlBfRW5jcnlwdEZpbmFsX2V4
KGN0eC5nZXQoKSwgb3V0ICsgb3V0X2J5dGVzLCAmZmluYWxfYnl0ZXMpKTsKKyAgICBFWFBFQ1Rf
RVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihvdXRfYnl0ZXMgKyBmaW5hbF9ieXRlcyksCisgICAgICAg
ICAgICAgIHNpemVvZih0ZXN0LmNiY19jaXBoZXJ0ZXh0KSk7CisgICAgRVhQRUNUX0VRKEJ5dGVz
KHRlc3QuY2JjX2NpcGhlcnRleHQpLCBCeXRlcyhvdXQpKTsKKworICAgIGJzc2w6OlNjb3BlZEVW
UF9DSVBIRVJfQ1RYIGRlY3J5cHRfY3R4OworICAgIEFTU0VSVF9UUlVFKEVWUF9EZWNyeXB0SW5p
dF9leChkZWNyeXB0X2N0eC5nZXQoKSwgRVZQX2Nhc3Q1X2NiYygpLCBudWxscHRyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmtleSwgdGVzdC5pdikpOworICAgIEFT
U0VSVF9UUlVFKEVWUF9EZWNyeXB0VXBkYXRlKGRlY3J5cHRfY3R4LmdldCgpLCBvdXQsICZvdXRf
Ynl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5jYmNfY2lwaGVy
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodGVzdC5jYmNf
Y2lwaGVydGV4dCkpKTsKKyAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgRVZQX0RlY3J5cHRGaW5h
bF9leChkZWNyeXB0X2N0eC5nZXQoKSwgb3V0ICsgb3V0X2J5dGVzLCAmZmluYWxfYnl0ZXMpKTsK
KyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihvdXRfYnl0ZXMgKyBmaW5hbF9ieXRl
cyksCisgICAgICAgICAgICAgIHNpemVvZih0ZXN0LnBsYWludGV4dCkpOworICAgIEVYUEVDVF9F
UShCeXRlcyh0ZXN0LnBsYWludGV4dCksIEJ5dGVzKG91dCwgb3V0X2J5dGVzICsgZmluYWxfYnl0
ZXMpKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2RlY3JlcGl0L2V2cC9ldnBfZG9fYWxsLmMg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvZGVjcmVwaXQvZXZwL2V2cF9kb19hbGwuYwppbmRleCAzOGI4ZjlmNzhmNzYwNTAxNzQw
OTY3NDA1OTZhYzU5YTBmZTE4NzU3Li5kNTQwMTQ0YjI5MzI5Nzc5MWMwODdlMGI5NjhhNDdkMzY4
YTczNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZGVjcmVwaXQvZXZwL2V2cF9kb19hbGwuYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvZGVjcmVwaXQvZXZwL2V2cF9kb19hbGwuYwpAQCAtMjAsMTQgKzIwLDIwIEBAIHZvaWQgRVZQ
X0NJUEhFUl9kb19hbGxfc29ydGVkKHZvaWQgKCpjYWxsYmFjaykoY29uc3QgRVZQX0NJUEhFUiAq
Y2lwaGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICp1bnVzZWQsIHZvaWQgKmFyZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2b2lkICphcmcpIHsKICAgY2FsbGJhY2soRVZQX2Flc18xMjhfY2JjKCksICJBRVMtMTI4
LUNCQyIsIE5VTEwsIGFyZyk7Ci0gIGNhbGxiYWNrKEVWUF9hZXNfMTI4X2N0cigpLCAiQUVTLTEy
OC1DVFIiLCBOVUxMLCBhcmcpOwotICBjYWxsYmFjayhFVlBfYWVzXzEyOF9lY2IoKSwgIkFFUy0x
MjgtRUNCIiwgTlVMTCwgYXJnKTsKLSAgY2FsbGJhY2soRVZQX2Flc18xMjhfb2ZiKCksICJBRVMt
MTI4LU9GQiIsIE5VTEwsIGFyZyk7CisgIGNhbGxiYWNrKEVWUF9hZXNfMTkyX2NiYygpLCAiQUVT
LTE5Mi1DQkMiLCBOVUxMLCBhcmcpOwogICBjYWxsYmFjayhFVlBfYWVzXzI1Nl9jYmMoKSwgIkFF
Uy0yNTYtQ0JDIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xMjhfY3RyKCksICJB
RVMtMTI4LUNUUiIsIE5VTEwsIGFyZyk7CisgIGNhbGxiYWNrKEVWUF9hZXNfMTkyX2N0cigpLCAi
QUVTLTE5Mi1DVFIiLCBOVUxMLCBhcmcpOwogICBjYWxsYmFjayhFVlBfYWVzXzI1Nl9jdHIoKSwg
IkFFUy0yNTYtQ1RSIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xMjhfZWNiKCks
ICJBRVMtMTI4LUVDQiIsIE5VTEwsIGFyZyk7CisgIGNhbGxiYWNrKEVWUF9hZXNfMTkyX2VjYigp
LCAiQUVTLTE5Mi1FQ0IiLCBOVUxMLCBhcmcpOwogICBjYWxsYmFjayhFVlBfYWVzXzI1Nl9lY2Io
KSwgIkFFUy0yNTYtRUNCIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xMjhfb2Zi
KCksICJBRVMtMTI4LU9GQiIsIE5VTEwsIGFyZyk7CisgIGNhbGxiYWNrKEVWUF9hZXNfMTkyX29m
YigpLCAiQUVTLTE5Mi1PRkIiLCBOVUxMLCBhcmcpOwogICBjYWxsYmFjayhFVlBfYWVzXzI1Nl9v
ZmIoKSwgIkFFUy0yNTYtT0ZCIiwgTlVMTCwgYXJnKTsKLSAgY2FsbGJhY2soRVZQX2Flc18yNTZf
eHRzKCksICJBRVMtMjU2LVhUUyIsIE5VTEwsIGFyZyk7CisgIGNhbGxiYWNrKEVWUF9hZXNfMTI4
X2djbSgpLCAiQUVTLTEyOC1HQ00iLCBOVUxMLCBhcmcpOworICBjYWxsYmFjayhFVlBfYWVzXzE5
Ml9nY20oKSwgIkFFUy0xOTItR0NNIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18y
NTZfZ2NtKCksICJBRVMtMjU2LUdDTSIsIE5VTEwsIGFyZyk7CiAgIGNhbGxiYWNrKEVWUF9kZXNf
Y2JjKCksICJERVMtQ0JDIiwgTlVMTCwgYXJnKTsKICAgY2FsbGJhY2soRVZQX2Rlc19lY2IoKSwg
IkRFUy1FQ0IiLCBOVUxMLCBhcmcpOwogICBjYWxsYmFjayhFVlBfZGVzX2VkZSgpLCAiREVTLUVE
RSIsIE5VTEwsIGFyZyk7CkBAIC0zOCwxNCArNDQsMjAgQEAgdm9pZCBFVlBfQ0lQSEVSX2RvX2Fs
bF9zb3J0ZWQodm9pZCAoKmNhbGxiYWNrKShjb25zdCBFVlBfQ0lQSEVSICpjaXBoZXIsCiAKICAg
Ly8gT3BlblNTTCByZXR1cm5zIGV2ZXJ5dGhpbmcgdHdpY2UsIHRoZSBzZWNvbmQgdGltZSBpbiBs
b3dlciBjYXNlLgogICBjYWxsYmFjayhFVlBfYWVzXzEyOF9jYmMoKSwgImFlcy0xMjgtY2JjIiwg
TlVMTCwgYXJnKTsKLSAgY2FsbGJhY2soRVZQX2Flc18xMjhfY3RyKCksICJhZXMtMTI4LWN0ciIs
IE5VTEwsIGFyZyk7Ci0gIGNhbGxiYWNrKEVWUF9hZXNfMTI4X2VjYigpLCAiYWVzLTEyOC1lY2Ii
LCBOVUxMLCBhcmcpOwotICBjYWxsYmFjayhFVlBfYWVzXzEyOF9vZmIoKSwgImFlcy0xMjgtb2Zi
IiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xOTJfY2JjKCksICJhZXMtMTkyLWNi
YyIsIE5VTEwsIGFyZyk7CiAgIGNhbGxiYWNrKEVWUF9hZXNfMjU2X2NiYygpLCAiYWVzLTI1Ni1j
YmMiLCBOVUxMLCBhcmcpOworICBjYWxsYmFjayhFVlBfYWVzXzEyOF9jdHIoKSwgImFlcy0xMjgt
Y3RyIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xOTJfY3RyKCksICJhZXMtMTky
LWN0ciIsIE5VTEwsIGFyZyk7CiAgIGNhbGxiYWNrKEVWUF9hZXNfMjU2X2N0cigpLCAiYWVzLTI1
Ni1jdHIiLCBOVUxMLCBhcmcpOworICBjYWxsYmFjayhFVlBfYWVzXzEyOF9lY2IoKSwgImFlcy0x
MjgtZWNiIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xOTJfZWNiKCksICJhZXMt
MTkyLWVjYiIsIE5VTEwsIGFyZyk7CiAgIGNhbGxiYWNrKEVWUF9hZXNfMjU2X2VjYigpLCAiYWVz
LTI1Ni1lY2IiLCBOVUxMLCBhcmcpOworICBjYWxsYmFjayhFVlBfYWVzXzEyOF9vZmIoKSwgImFl
cy0xMjgtb2ZiIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xOTJfb2ZiKCksICJh
ZXMtMTkyLW9mYiIsIE5VTEwsIGFyZyk7CiAgIGNhbGxiYWNrKEVWUF9hZXNfMjU2X29mYigpLCAi
YWVzLTI1Ni1vZmIiLCBOVUxMLCBhcmcpOwotICBjYWxsYmFjayhFVlBfYWVzXzI1Nl94dHMoKSwg
ImFlcy0yNTYteHRzIiwgTlVMTCwgYXJnKTsKKyAgY2FsbGJhY2soRVZQX2Flc18xMjhfZ2NtKCks
ICJhZXMtMTI4LWdjbSIsIE5VTEwsIGFyZyk7CisgIGNhbGxiYWNrKEVWUF9hZXNfMTkyX2djbSgp
LCAiYWVzLTE5Mi1nY20iLCBOVUxMLCBhcmcpOworICBjYWxsYmFjayhFVlBfYWVzXzI1Nl9nY20o
KSwgImFlcy0yNTYtZ2NtIiwgTlVMTCwgYXJnKTsKICAgY2FsbGJhY2soRVZQX2Rlc19jYmMoKSwg
ImRlcy1jYmMiLCBOVUxMLCBhcmcpOwogICBjYWxsYmFjayhFVlBfZGVzX2VjYigpLCAiZGVzLWVj
YiIsIE5VTEwsIGFyZyk7CiAgIGNhbGxiYWNrKEVWUF9kZXNfZWRlKCksICJkZXMtZWRlIiwgTlVM
TCwgYXJnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9kZWNyZXBpdC9yaXBlbWQvaW50ZXJuYWwuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9kZWNyZXBpdC9yaXBlbWQvaW50ZXJuYWwuaAppbmRleCBmZTE3MmNhZmFhODkyMmM5ZGY2OTA0
ODk4ZTZlMjhiZDQ0NTA3NWRiLi4wODliZTE1MDk2MWU0MmRiODgwOWRlMTUxNDRiYzVkOWU0NmI1
ZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvZGVjcmVwaXQvcmlwZW1kL2ludGVybmFsLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2RlY3JlcGl0L3JpcGVtZC9pbnRlcm5hbC5oCkBAIC01NCw4ICs1NCw4IEBACiAgKiBjb3BpZWQg
YW5kIHB1dCB1bmRlciBhbm90aGVyIGRpc3RyaWJ1dGlvbiBsaWNlbmNlCiAgKiBbaW5jbHVkaW5n
IHRoZSBHTlUgUHVibGljIExpY2VuY2UuXSAqLwogCi0jaWZuZGVmIE9QRU5TU0xfSEVBREVSX0JO
X0lOVEVSTkFMX0gKLSNkZWZpbmUgT1BFTlNTTF9IRUFERVJfQk5fSU5URVJOQUxfSAorI2lmbmRl
ZiBPUEVOU1NMX0hFQURFUl9SSVBFTURfSU5URVJOQUxfSAorI2RlZmluZSBPUEVOU1NMX0hFQURF
Ul9SSVBFTURfSU5URVJOQUxfSAogCiAjaW5jbHVkZSA8b3BlbnNzbC9iYXNlLmg+CiAKQEAgLTcy
LDYgKzcyLDcgQEAgc3RhdGljIHZvaWQgcmlwZW1kMTYwX2Jsb2NrX2RhdGFfb3JkZXIodWludDMy
X3QgaFs1XSwgY29uc3QgdWludDhfdCAqZGF0YSwKICNkZWZpbmUgSEFTSF9MT05HIHVpbnQzMl90
CiAjZGVmaW5lIEhBU0hfQ1RYIFJJUEVNRDE2MF9DVFgKICNkZWZpbmUgSEFTSF9DQkxPQ0sgUklQ
RU1EMTYwX0NCTE9DSworI2RlZmluZSBIQVNIX0RJR0VTVF9MRU5HVEggUklQRU1EMTYwX0RJR0VT
VF9MRU5HVEgKICNkZWZpbmUgSEFTSF9VUERBVEUgUklQRU1EMTYwX1VwZGF0ZQogI2RlZmluZSBI
QVNIX1RSQU5TRk9STSBSSVBFTUQxNjBfVHJhbnNmb3JtCiAjZGVmaW5lIEhBU0hfRklOQUwgUklQ
RU1EMTYwX0ZpbmFsCkBAIC00OTAsNCArNDkxLDQgQEAgc3RhdGljIHZvaWQgcmlwZW1kMTYwX2Js
b2NrX2RhdGFfb3JkZXIodWludDMyX3QgaFs1XSwgY29uc3QgdWludDhfdCAqZGF0YSwKIH0gIC8v
IGV4dGVybiBDCiAjZW5kaWYKIAotI2VuZGlmICAvLyBPUEVOU1NMX0hFQURFUl9CTl9JTlRFUk5B
TF9ICisjZW5kaWYgIC8vIE9QRU5TU0xfSEVBREVSX1JJUEVNRF9JTlRFUk5BTF9ICmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvZGVjcmVwaXQvcmlwZW1kL3JpcGVtZC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2RlY3JlcGl0L3JpcGVtZC9y
aXBlbWQuYwppbmRleCAyNzVkNDM5NzY4YjdkNzUyMTlmY2U4NjM5MmFjMjhjM2ZhMzc0N2ZkLi4x
N2IzZmRmYzJhYTViOWRkYTAxODg3YzA4ZjgzZDk0Yjc3NDE4MGI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
ZGVjcmVwaXQvcmlwZW1kL3JpcGVtZC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9kZWNyZXBpdC9yaXBlbWQvcmlwZW1k
LmMKQEAgLTMxMSw3ICszMTEsOCBAQCBzdGF0aWMgdm9pZCByaXBlbWQxNjBfYmxvY2tfZGF0YV9v
cmRlcih1aW50MzJfdCBoWzVdLCBjb25zdCB1aW50OF90ICpkYXRhLAogI3VuZGVmIFgKIH0KIAot
dWludDhfdCAqUklQRU1EMTYwKGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVuc2ln
bmVkIGNoYXIgKm91dCkgewordWludDhfdCAqUklQRU1EMTYwKGNvbnN0IHVpbnQ4X3QgKmRhdGEs
IHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgICAgdWludDhfdCBvdXRbUklQRU1EMTYwX0RJ
R0VTVF9MRU5HVEhdKSB7CiAgIFJJUEVNRDE2MF9DVFggY3R4OwogCiAgIGlmICghUklQRU1EMTYw
X0luaXQoJmN0eCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9kZWNyZXBpdC94dHMveHRzLmMgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
ZGVjcmVwaXQveHRzL3h0cy5jCmluZGV4IGJjMmExYjIzYjg0MTAzZDY0MjNlOWJjNTY4Y2NhNGU0
ZDg2OWIxN2UuLmE0MzNjM2JlYjljYmIxNDg2NDNmY2JlM2IyNTdkY2UwODAzMDM0ODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9kZWNyZXBpdC94dHMveHRzLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2RlY3JlcGl0L3h0cy94dHMu
YwpAQCAtODAsMjMgKzgwLDEzIEBAIHN0YXRpYyBzaXplX3QgQ1JZUFRPX3h0czEyOF9lbmNyeXB0
KGNvbnN0IFhUUzEyOF9DT05URVhUICpjdHgsCiAgIGlmICghZW5jICYmIChsZW4gJSAxNikpIGxl
biAtPSAxNjsKIAogICB3aGlsZSAobGVuID49IDE2KSB7Ci0jaWYgU1RSSUNUX0FMSUdOTUVOVAog
ICAgIE9QRU5TU0xfbWVtY3B5KHNjcmF0Y2guYywgaW5wLCAxNik7CiAgICAgc2NyYXRjaC51WzBd
IF49IHR3ZWFrLnVbMF07CiAgICAgc2NyYXRjaC51WzFdIF49IHR3ZWFrLnVbMV07Ci0jZWxzZQot
ICAgIHNjcmF0Y2gudVswXSA9ICgodWludDY0X3QgKilpbnApWzBdIF4gdHdlYWsudVswXTsKLSAg
ICBzY3JhdGNoLnVbMV0gPSAoKHVpbnQ2NF90ICopaW5wKVsxXSBeIHR3ZWFrLnVbMV07Ci0jZW5k
aWYKICAgICAoKmN0eC0+YmxvY2sxKShzY3JhdGNoLmMsIHNjcmF0Y2guYywgY3R4LT5rZXkxKTsK
LSNpZiBTVFJJQ1RfQUxJR05NRU5UCiAgICAgc2NyYXRjaC51WzBdIF49IHR3ZWFrLnVbMF07CiAg
ICAgc2NyYXRjaC51WzFdIF49IHR3ZWFrLnVbMV07CiAgICAgT1BFTlNTTF9tZW1jcHkob3V0LCBz
Y3JhdGNoLmMsIDE2KTsKLSNlbHNlCi0gICAgKCh1aW50NjRfdCAqKW91dClbMF0gPSBzY3JhdGNo
LnVbMF0gXj0gdHdlYWsudVswXTsKLSAgICAoKHVpbnQ2NF90ICopb3V0KVsxXSA9IHNjcmF0Y2gu
dVsxXSBePSB0d2Vhay51WzFdOwotI2VuZGlmCiAgICAgaW5wICs9IDE2OwogICAgIG91dCArPSAx
NjsKICAgICBsZW4gLT0gMTY7CkBAIC0xMzQsMTQgKzEyNCw5IEBAIHN0YXRpYyBzaXplX3QgQ1JZ
UFRPX3h0czEyOF9lbmNyeXB0KGNvbnN0IFhUUzEyOF9DT05URVhUICpjdHgsCiAgICAgY2Fycnkg
PSAodW5zaWduZWQgaW50KSh0d2Vhay51WzBdID4+IDYzKTsKICAgICB0d2VhazEudVswXSA9ICh0
d2Vhay51WzBdIDw8IDEpIF4gcmVzOwogICAgIHR3ZWFrMS51WzFdID0gKHR3ZWFrLnVbMV0gPDwg
MSkgfCBjYXJyeTsKLSNpZiBTVFJJQ1RfQUxJR05NRU5UCiAgICAgT1BFTlNTTF9tZW1jcHkoc2Ny
YXRjaC5jLCBpbnAsIDE2KTsKICAgICBzY3JhdGNoLnVbMF0gXj0gdHdlYWsxLnVbMF07CiAgICAg
c2NyYXRjaC51WzFdIF49IHR3ZWFrMS51WzFdOwotI2Vsc2UKLSAgICBzY3JhdGNoLnVbMF0gPSAo
KHVpbnQ2NF90ICopaW5wKVswXSBeIHR3ZWFrMS51WzBdOwotICAgIHNjcmF0Y2gudVsxXSA9ICgo
dWludDY0X3QgKilpbnApWzFdIF4gdHdlYWsxLnVbMV07Ci0jZW5kaWYKICAgICAoKmN0eC0+Ymxv
Y2sxKShzY3JhdGNoLmMsIHNjcmF0Y2guYywgY3R4LT5rZXkxKTsKICAgICBzY3JhdGNoLnVbMF0g
Xj0gdHdlYWsxLnVbMF07CiAgICAgc2NyYXRjaC51WzFdIF49IHR3ZWFrMS51WzFdOwpAQCAtMTU0
LDE0ICsxMzksOSBAQCBzdGF0aWMgc2l6ZV90IENSWVBUT194dHMxMjhfZW5jcnlwdChjb25zdCBY
VFMxMjhfQ09OVEVYVCAqY3R4LAogICAgIHNjcmF0Y2gudVswXSBePSB0d2Vhay51WzBdOwogICAg
IHNjcmF0Y2gudVsxXSBePSB0d2Vhay51WzFdOwogICAgICgqY3R4LT5ibG9jazEpKHNjcmF0Y2gu
Yywgc2NyYXRjaC5jLCBjdHgtPmtleTEpOwotI2lmIFNUUklDVF9BTElHTk1FTlQKICAgICBzY3Jh
dGNoLnVbMF0gXj0gdHdlYWsudVswXTsKICAgICBzY3JhdGNoLnVbMV0gXj0gdHdlYWsudVsxXTsK
ICAgICBPUEVOU1NMX21lbWNweShvdXQsIHNjcmF0Y2guYywgMTYpOwotI2Vsc2UKLSAgICAoKHVp
bnQ2NF90ICopb3V0KVswXSA9IHNjcmF0Y2gudVswXSBeIHR3ZWFrLnVbMF07Ci0gICAgKCh1aW50
NjRfdCAqKW91dClbMV0gPSBzY3JhdGNoLnVbMV0gXiB0d2Vhay51WzFdOwotI2VuZGlmCiAgIH0K
IAogICByZXR1cm4gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvZmlwc3Rvb2xzL0NNYWtlTGlzdHMudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NzlmY2QxYTg1NmI2OGFhMTcyZWY0NDRhM2I5OWUzYjliZTNiYzhjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvQ01ha2VM
aXN0cy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1pbmNsdWRlX2RpcmVjdG9y
aWVzKC4uL2luY2x1ZGUpCi0KLWlmKEZJUFMpCi0gIGFkZF9leGVjdXRhYmxlKAotICAgIGNhdnAK
LQotICAgIGNhdnBfbWFpbi5jYwotCi0gICAgY2F2cF9hZXNfZ2NtX3Rlc3QuY2MKLSAgICBjYXZw
X2Flc190ZXN0LmNjCi0gICAgY2F2cF9jdHJfZHJiZ190ZXN0LmNjCi0gICAgY2F2cF9lY2RzYTJf
a2V5cGFpcl90ZXN0LmNjCi0gICAgY2F2cF9lY2RzYTJfcGt2X3Rlc3QuY2MKLSAgICBjYXZwX2Vj
ZHNhMl9zaWdnZW5fdGVzdC5jYwotICAgIGNhdnBfZWNkc2EyX3NpZ3Zlcl90ZXN0LmNjCi0gICAg
Y2F2cF9obWFjX3Rlc3QuY2MKLSAgICBjYXZwX2thc190ZXN0LmNjCi0gICAgY2F2cF9rZXl3cmFw
X3Rlc3QuY2MKLSAgICBjYXZwX3JzYTJfa2V5Z2VuX3Rlc3QuY2MKLSAgICBjYXZwX3JzYTJfc2ln
Z2VuX3Rlc3QuY2MKLSAgICBjYXZwX3JzYTJfc2lndmVyX3Rlc3QuY2MKLSAgICBjYXZwX3NoYV9t
b250ZV90ZXN0LmNjCi0gICAgY2F2cF9zaGFfdGVzdC5jYwotICAgIGNhdnBfdGRlc190ZXN0LmNj
Ci0gICAgY2F2cF90bHNrZGZfdGVzdC5jYwotCi0gICAgY2F2cF90ZXN0X3V0aWwuY2MKLQotICAg
ICQ8VEFSR0VUX09CSkVDVFM6dGVzdF9zdXBwb3J0PgotICApCi0KLSAgYWRkX2RlcGVuZGVuY2ll
cyhjYXZwIGdsb2JhbF90YXJnZXQpCi0KLSAgYWRkX2V4ZWN1dGFibGUoCi0gICAgdGVzdF9maXBz
Ci0KLSAgICB0ZXN0X2ZpcHMuYwotICAgICQ8VEFSR0VUX09CSkVDVFM6dGVzdF9zdXBwb3J0Pgot
ICApCi0KLSAgYWRkX2RlcGVuZGVuY2llcyh0ZXN0X2ZpcHMgZ2xvYmFsX3RhcmdldCkKLQotICB0
YXJnZXRfbGlua19saWJyYXJpZXMoY2F2cCBjcnlwdG8pCi0gIHRhcmdldF9saW5rX2xpYnJhcmll
cyh0ZXN0X2ZpcHMgY3J5cHRvKQotZW5kaWYoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9j
YXZwX2Flc19nY21fdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9hZXNfZ2NtX3Rlc3QuY2MK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNzhjZWFmODhiYzliMWVhOTBjYmIwMGJm
YmJlM2NjYzJmZDk4MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX2Flc19nY21fdGVzdC5jYworKysgL2Rldi9udWxsCkBA
IC0xLDE2MyArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgot
ICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhp
cyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVy
ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlN
UyBBTEwgV0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJ
TkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBT
UEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5Z
IERBTUFHRVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEg
T1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdF
TkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENP
Tk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICov
Ci0KLS8vIGNhdnBfYWVzX2djbV90ZXN0IHByb2Nlc3NlcyBhIE5JU1QgQ0FWUCBBRVMgR0NNIHRl
c3QgdmVjdG9yIHJlcXVlc3QgZmlsZSBhbmQKLS8vIGVtaXRzIHRoZSBjb3JyZXNwb25kaW5nIHJl
c3BvbnNlLgotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLSNpbmNsdWRlIDxvcGVuc3NsL2FlYWQu
aD4KLSNpbmNsdWRlIDxvcGVuc3NsL2NpcGhlci5oPgotI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRv
Lmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KLQotI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0
L2ZpbGVfdGVzdC5oIgotI2luY2x1ZGUgImNhdnBfdGVzdF91dGlsLmgiCi0KLQotbmFtZXNwYWNl
IHsKLQotc3RydWN0IFRlc3RDdHggewotICBjb25zdCBFVlBfQUVBRCAqYWVhZDsKLX07Ci0KLX0K
LQotc3RhdGljIGNvbnN0IEVWUF9BRUFEICpHZXRBRUFEKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1l
LCBjb25zdCBib29sIGVuYykgewotICBpZiAobmFtZSA9PSAiYWVzLTEyOC1nY20iKSB7Ci0gICAg
cmV0dXJuIEVWUF9hZWFkX2Flc18xMjhfZ2NtKCk7Ci0gIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVz
LTI1Ni1nY20iKSB7Ci0gICAgcmV0dXJuIEVWUF9hZWFkX2Flc18yNTZfZ2NtKCk7Ci0gIH0KLSAg
cmV0dXJuIG51bGxwdHI7Ci19Ci0KLXN0YXRpYyBib29sIFRlc3RBRUFERW5jcnlwdChGaWxlVGVz
dCAqdCwgdm9pZCAqYXJnKSB7Ci0gIFRlc3RDdHggKmN0eCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VGVz
dEN0eCAqPihhcmcpOwotCi0gIHN0ZDo6c3RyaW5nIGtleV9sZW5fc3RyLCBpdl9sZW5fc3RyLCBw
dF9sZW5fc3RyLCBhYWRfbGVuX3N0ciwgdGFnX2xlbl9zdHI7Ci0gIGlmICghdC0+R2V0SW5zdHJ1
Y3Rpb24oJmtleV9sZW5fc3RyLCAiS2V5bGVuIikgfHwKLSAgICAgICF0LT5HZXRJbnN0cnVjdGlv
bigmaXZfbGVuX3N0ciwgIklWbGVuIikgfHwKLSAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmcHRf
bGVuX3N0ciwgIlBUbGVuIikgfHwKLSAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmYWFkX2xlbl9z
dHIsICJBQURsZW4iKSB8fAotICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZ0YWdfbGVuX3N0ciwg
IlRhZ2xlbiIpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgc3RkOjpzdHJpbmcgY291
bnQ7Ci0gIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleSwgaXYsIHB0LCBhYWQsIHRhZywgY3Q7Ci0g
IGlmICghdC0+R2V0QXR0cmlidXRlKCZjb3VudCwgIkNvdW50IikgfHwKLSAgICAgICF0LT5HZXRC
eXRlcygma2V5LCAiS2V5IikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygmaXYsICJJViIpIHx8Ci0g
ICAgICAhdC0+R2V0Qnl0ZXMoJnB0LCAiUFQiKSB8fAotICAgICAgIXQtPkdldEJ5dGVzKCZhYWQs
ICJBQUQiKSB8fAotICAgICAga2V5LnNpemUoKSAqIDggIT0gc3RydG91bChrZXlfbGVuX3N0ci5j
X3N0cigpLCBudWxscHRyLCAwKSB8fAotICAgICAgaXYuc2l6ZSgpICogOCAhPSBzdHJ0b3VsKGl2
X2xlbl9zdHIuY19zdHIoKSwgbnVsbHB0ciwgMCkgfHwKLSAgICAgIHB0LnNpemUoKSAqIDggIT0g
c3RydG91bChwdF9sZW5fc3RyLmNfc3RyKCksIG51bGxwdHIsIDApIHx8Ci0gICAgICBhYWQuc2l6
ZSgpICogOCAhPSBzdHJ0b3VsKGFhZF9sZW5fc3RyLmNfc3RyKCksIG51bGxwdHIsIDApIHx8Ci0g
ICAgICBpdi5zaXplKCkgIT0gMTIpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBjb25z
dCBzaXplX3QgdGFnX2xlbiA9IHN0cnRvdWwodGFnX2xlbl9zdHIuY19zdHIoKSwgbnVsbHB0ciwg
MCkgLyA4OwotICBpZiAoIUFFQURFbmNyeXB0KGN0eC0+YWVhZCwgJmN0LCAmdGFnLCB0YWdfbGVu
LCBrZXksIHB0LCBhYWQsIGl2KSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBwcmludGYo
IiVzIiwgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCkpOwotICBwcmludGYoIkNUID0g
JXNcclxuIiwgRW5jb2RlSGV4KGN0LmRhdGEoKSwgY3Quc2l6ZSgpKS5jX3N0cigpKTsKLSAgcHJp
bnRmKCJUYWcgPSAlc1xyXG5cclxuIiwgRW5jb2RlSGV4KHRhZy5kYXRhKCksIHRhZy5zaXplKCkp
LmNfc3RyKCkpOwotCi0gIHJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBUZXN0QUVBRERl
Y3J5cHQoRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICBUZXN0Q3R4ICpjdHggPSByZWludGVy
cHJldF9jYXN0PFRlc3RDdHggKj4oYXJnKTsKLQotICBzdGQ6OnN0cmluZyBrZXlfbGVuLCBpdl9s
ZW4sIHB0X2xlbl9zdHIsIGFhZF9sZW5fc3RyLCB0YWdfbGVuOwotICBpZiAoIXQtPkdldEluc3Ry
dWN0aW9uKCZrZXlfbGVuLCAiS2V5bGVuIikgfHwKLSAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigm
aXZfbGVuLCAiSVZsZW4iKSB8fAotICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZwdF9sZW5fc3Ry
LCAiUFRsZW4iKSB8fAotICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZhYWRfbGVuX3N0ciwgIkFB
RGxlbiIpIHx8Ci0gICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJnRhZ19sZW4sICJUYWdsZW4iKSkg
ewotICAgIHQtPlByaW50TGluZSgiSW52YWxpZCBpbnN0cnVjdGlvbiBibG9jay4iKTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0gIH0KLSAgc2l6ZV90IGFhZF9sZW4gPSBzdHJ0b3VsKGFhZF9sZW5fc3Ry
LmNfc3RyKCksIG51bGxwdHIsIDApIC8gODsKLSAgc2l6ZV90IHB0X2xlbiA9IHN0cnRvdWwocHRf
bGVuX3N0ci5jX3N0cigpLCBudWxscHRyLCAwKSAvIDg7Ci0KLSAgc3RkOjpzdHJpbmcgY291bnQ7
Ci0gIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleSwgaXYsIGN0LCBhYWQsIHRhZywgcHQ7Ci0gIGlm
ICghdC0+R2V0QXR0cmlidXRlKCZjb3VudCwgIkNvdW50IikgfHwKLSAgICAgICF0LT5HZXRCeXRl
cygma2V5LCAiS2V5IikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygmYWFkLCAiQUFEIikgfHwKLSAg
ICAgICF0LT5HZXRCeXRlcygmdGFnLCAiVGFnIikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygmaXYs
ICJJViIpIHx8Ci0gICAgICAhdC0+R2V0Qnl0ZXMoJmN0LCAiQ1QiKSB8fAotICAgICAga2V5LnNp
emUoKSAqIDggIT0gc3RydG91bChrZXlfbGVuLmNfc3RyKCksIG51bGxwdHIsIDApIHx8Ci0gICAg
ICBpdi5zaXplKCkgKiA4ICE9IHN0cnRvdWwoaXZfbGVuLmNfc3RyKCksIG51bGxwdHIsIDApIHx8
Ci0gICAgICBjdC5zaXplKCkgIT0gcHRfbGVuIHx8Ci0gICAgICBhYWQuc2l6ZSgpICE9IGFhZF9s
ZW4gfHwKLSAgICAgIHRhZy5zaXplKCkgKiA4ICE9IHN0cnRvdWwodGFnX2xlbi5jX3N0cigpLCBu
dWxscHRyLCAwKSkgewotICAgIHQtPlByaW50TGluZSgiSW52YWxpZCB0ZXN0IGNhc2UiKTsKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBwcmludGYoIiVzIiwgdC0+Q3VycmVudFRlc3RUb1N0
cmluZygpLmNfc3RyKCkpOwotICBib29sIGFlYWRfcmVzdWx0ID0KLSAgICAgIEFFQUREZWNyeXB0
KGN0eC0+YWVhZCwgJnB0LCBwdF9sZW4sIGtleSwgYWFkLCBjdCwgdGFnLCBpdik7Ci0gIGlmIChh
ZWFkX3Jlc3VsdCkgewotICAgIHByaW50ZigiUFQgPSAlc1xyXG5cclxuIiwgRW5jb2RlSGV4KHB0
LmRhdGEoKSwgcHQuc2l6ZSgpKS5jX3N0cigpKTsKLSAgfSBlbHNlIHsKLSAgICBwcmludGYoIkZB
SUxcclxuXHJcbiIpOwotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBpbnQgdXNh
Z2UoY2hhciAqYXJnKSB7Ci0gIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIChlbmN8ZGVjKSA8
Y2lwaGVyPiA8dGVzdCBmaWxlPlxuIiwgYXJnKTsKLSAgcmV0dXJuIDE7Ci19Ci0KLWludCBjYXZw
X2Flc19nY21fdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBpZiAoYXJnYyAh
PSA0KSB7Ci0gICAgcmV0dXJuIHVzYWdlKGFyZ3ZbMF0pOwotICB9Ci0KLSAgY29uc3Qgc3RkOjpz
dHJpbmcgbW9kZShhcmd2WzFdKTsKLSAgYm9vbCAoKnRlc3RfZm4pKEZpbGVUZXN0ICogdCwgdm9p
ZCAqYXJnKTsKLSAgaWYgKG1vZGUgPT0gImVuYyIpIHsKLSAgICB0ZXN0X2ZuID0gJlRlc3RBRUFE
RW5jcnlwdDsKLSAgfSBlbHNlIGlmIChtb2RlID09ICJkZWMiKSB7Ci0gICAgdGVzdF9mbiA9ICZU
ZXN0QUVBRERlY3J5cHQ7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIHVzYWdlKGFyZ3ZbMF0pOwot
ICB9Ci0KLSAgY29uc3QgRVZQX0FFQUQgKmFlYWQgPSBHZXRBRUFEKGFyZ3ZbMl0sIG1vZGUgPT0g
ImVuYyIpOwotICBpZiAoYWVhZCA9PSBudWxscHRyKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJp
bnZhbGlkIGFlYWQ6ICVzXG4iLCBhcmd2WzJdKTsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIFRl
c3RDdHggY3R4ID0ge2FlYWR9OwotCi0gIEZpbGVUZXN0OjpPcHRpb25zIG9wdHM7Ci0gIG9wdHMu
cGF0aCA9IGFyZ3ZbM107Ci0gIG9wdHMuY2FsbGJhY2sgPSB0ZXN0X2ZuOwotICBvcHRzLmFyZyA9
ICZjdHg7Ci0gIG9wdHMuc2lsZW50ID0gdHJ1ZTsKLSAgb3B0cy5jb21tZW50X2NhbGxiYWNrID0g
RWNob0NvbW1lbnQ7Ci0gIHJldHVybiBGaWxlVGVzdE1haW4ob3B0cyk7Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvZmlwc3Rvb2xzL2NhdnBfYWVzX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfYWVz
X3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjMGNmM2NmZDVlYWFmNzhl
Mjc2MmE5ZGE1ZTg5ODlkOGJiYmY4NDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX2Flc190ZXN0LmNjCisrKyAvZGV2L251
bGwKQEAgLTEsMjI3ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4K
LSAqCi0gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0
ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKLSAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBp
cyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCi0g
KgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElT
Q0xBSU1TIEFMTCBXQVJSQU5USUVTCi0gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElO
Q0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBP
UiBBTlkgREFNQUdFUwotICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwg
REFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgotICogT0YgQ09OVFJBQ1QsIE5F
R0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgot
ICogQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FS
RS4gKi8KLQotLy8gY2F2cF9hZXNfdGVzdCBwcm9jZXNzZXMgYSBOSVNUIENBVlAgQUVTIHRlc3Qg
dmVjdG9yIHJlcXVlc3QgZmlsZSBhbmQgZW1pdHMKLS8vIHRoZSBjb3JyZXNwb25kaW5nIHJlc3Bv
bnNlLgotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLSNpbmNsdWRlIDxvcGVuc3NsL2NpcGhlci5o
PgotI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4K
LQotI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgotI2luY2x1ZGUgImNhdnBf
dGVzdF91dGlsLmgiCi0KLQotbmFtZXNwYWNlIHsKLQotc3RydWN0IFRlc3RDdHggewotICBjb25z
dCBFVlBfQ0lQSEVSICpjaXBoZXI7Ci0gIGJvb2wgaGFzX2l2OwotICBlbnVtIE1vZGUgewotICAg
IGtLQVQsICAvLyBLbm93biBBbnN3ZXIgVGVzdAotICAgIGtNQ1QsICAvLyBNb250ZSBDYXJsbyBU
ZXN0Ci0gIH07Ci0gIE1vZGUgbW9kZTsKLX07Ci0KLX0KLQotc3RhdGljIGJvb2wgTW9udGVDYXJs
byhjb25zdCBUZXN0Q3R4ICpjdHgsIEZpbGVUZXN0ICp0LAotICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBFVlBfQ0lQSEVSICpjaXBoZXIsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICpvdXQsCi0g
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5jcnlwdCwgc3RkOjp2ZWN0b3I8dWludDhfdD4g
a2V5LAotICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBpdiwgc3Rk
Ojp2ZWN0b3I8dWludDhfdD4gaW4pIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgaW5fbGFiZWwgPSBl
bmNyeXB0ID8gIlBMQUlOVEVYVCIgOiAiQ0lQSEVSVEVYVCIsCi0gICAgICAgICAgICAgICAgICAg
IHJlc3VsdF9sYWJlbCA9IGVuY3J5cHQgPyAiQ0lQSEVSVEVYVCIgOiAiUExBSU5URVhUIjsKLSAg
c3RkOjp2ZWN0b3I8dWludDhfdD4gcHJldl9yZXN1bHQsIHJlc3VsdCwgcHJldl9pbjsKLSAgZm9y
IChpbnQgaSA9IDA7IGkgPCAxMDA7IGkrKykgewotICAgIHByaW50ZigiQ09VTlQgPSAlZFxyXG5L
RVkgPSAlc1xyXG4iLCBpLAotICAgICAgICAgICBFbmNvZGVIZXgoa2V5LmRhdGEoKSwga2V5LnNp
emUoKSkuY19zdHIoKSk7Ci0gICAgaWYgKGN0eC0+aGFzX2l2KSB7Ci0gICAgICBwcmludGYoIklW
ID0gJXNcclxuIiwgRW5jb2RlSGV4KGl2LmRhdGEoKSwgaXYuc2l6ZSgpKS5jX3N0cigpKTsKLSAg
ICB9Ci0gICAgcHJpbnRmKCIlcyA9ICVzXHJcbiIsIGluX2xhYmVsLmNfc3RyKCksCi0gICAgICAg
ICAgIEVuY29kZUhleChpbi5kYXRhKCksIGluLnNpemUoKSkuY19zdHIoKSk7Ci0KLSAgICBpZiAo
IWN0eC0+aGFzX2l2KSB7ICAvLyBFQ0IgbW9kZQotICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAx
MDAwOyBqKyspIHsKLSAgICAgICAgcHJldl9yZXN1bHQgPSByZXN1bHQ7Ci0gICAgICAgIGlmICgh
Q2lwaGVyT3BlcmF0aW9uKGNpcGhlciwgJnJlc3VsdCwgZW5jcnlwdCwga2V5LCBpdiwgaW4pKSB7
Ci0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGluID0gcmVzdWx0
OwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBmb3IgKGludCBqID0gMDsgaiA8IDEwMDA7
IGorKykgewotICAgICAgICBwcmV2X3Jlc3VsdCA9IHJlc3VsdDsKLSAgICAgICAgaWYgKGogPiAw
KSB7Ci0gICAgICAgICAgaWYgKGVuY3J5cHQpIHsKLSAgICAgICAgICAgIGl2ID0gcmVzdWx0Owot
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpdiA9IHByZXZfaW47Ci0gICAgICAgICAg
fQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFDaXBoZXJPcGVyYXRpb24oY2lwaGVyLCAmcmVz
dWx0LCBlbmNyeXB0LCBrZXksIGl2LCBpbikpIHsKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLQotICAgICAgICBwcmV2X2luID0gaW47Ci0KLSAgICAgICAgaWYgKGogPT0gMCkg
ewotICAgICAgICAgIGluID0gaXY7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaW4gPSBw
cmV2X3Jlc3VsdDsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLQotICAgIHByaW50ZigiJXMg
PSAlc1xyXG5cclxuIiwgcmVzdWx0X2xhYmVsLmNfc3RyKCksCi0gICAgICAgICAgIEVuY29kZUhl
eChyZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKS5jX3N0cigpKTsKLQotICAgIGNvbnN0IHNp
emVfdCBrZXlfbGVuID0ga2V5LnNpemUoKSAqIDg7Ci0gICAgaWYgKGtleV9sZW4gPT0gMTI4KSB7
Ci0gICAgICBmb3IgKHNpemVfdCBrID0gMDsgayA8IGtleS5zaXplKCk7IGsrKykgewotICAgICAg
ICBrZXlba10gXj0gcmVzdWx0W2tdOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAoa2V5X2xlbiA9
PSAxOTIpIHsKLSAgICAgIGZvciAoc2l6ZV90IGsgPSAwOyBrIDwga2V5LnNpemUoKTsgaysrKSB7
Ci0gICAgICAgIC8vIEtleVtpKzFdID0gS2V5W2ldIHhvciAobGFzdCA2NC1iaXRzIG9mIENUW2ot
MV0gfHwgQ1Rbal0pCi0gICAgICAgIGlmIChrIDwgOCkgewotICAgICAgICAgIGtleVtrXSBePSBw
cmV2X3Jlc3VsdFtwcmV2X3Jlc3VsdC5zaXplKCkgLSA4ICsga107Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAga2V5W2tdIF49IHJlc3VsdFtrIC0gOF07Ci0gICAgICAgIH0KLSAgICAgIH0K
LSAgICB9IGVsc2UgeyAgLy8ga2V5X2xlbiA9PSAyNTYKLSAgICAgIGZvciAoc2l6ZV90IGsgPSAw
OyBrIDwga2V5LnNpemUoKTsgaysrKSB7Ci0gICAgICAgIC8vIEtleVtpKzFdID0gS2V5W2ldIHhv
ciAoQ1Rbai0xXSB8fCBDVFtqXSkKLSAgICAgICAgaWYgKGsgPCAxNikgewotICAgICAgICAgIGtl
eVtrXSBePSBwcmV2X3Jlc3VsdFtrXTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBrZXlb
a10gXj0gcmVzdWx0W2sgLSAxNl07Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0KLSAgICBp
ZiAoY3R4LT5oYXNfaXYpIHsKLSAgICAgIGl2ID0gcmVzdWx0OwotICAgICAgaW4gPSBwcmV2X3Jl
c3VsdDsKLSAgICB9IGVsc2UgewotICAgICAgaW4gPSByZXN1bHQ7Ci0gICAgfQotICB9Ci0KLSAg
cmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29sIFRlc3RDaXBoZXIoRmlsZVRlc3QgKnQsIHZv
aWQgKmFyZykgewotICBUZXN0Q3R4ICpjdHggPSByZWludGVycHJldF9jYXN0PFRlc3RDdHggKj4o
YXJnKTsKLQotICBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIkVOQ1JZUFQiKSA9PSB0LT5IYXNJbnN0
cnVjdGlvbigiREVDUllQVCIpKSB7Ci0gICAgdC0+UHJpbnRMaW5lKCJXYW50IGVpdGhlciBFTkNS
WVBUIG9yIERFQ1JZUFQiKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgZW51bSB7Ci0gICAg
a0VuY3J5cHQsCi0gICAga0RlY3J5cHQsCi0gIH0gb3BlcmF0aW9uID0gdC0+SGFzSW5zdHJ1Y3Rp
b24oIkVOQ1JZUFQiKSA/IGtFbmNyeXB0IDoga0RlY3J5cHQ7Ci0KLSAgc3RkOjpzdHJpbmcgY291
bnQ7Ci0gIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleSwgaXYsIGluLCByZXN1bHQ7Ci0gIGlmICgh
dC0+R2V0QXR0cmlidXRlKCZjb3VudCwgIkNPVU5UIikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygm
a2V5LCAiS0VZIikgfHwKLSAgICAgIChjdHgtPmhhc19pdiAmJiAhdC0+R2V0Qnl0ZXMoJml2LCAi
SVYiKSkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBjb25zdCBFVlBfQ0lQSEVSICpj
aXBoZXIgPSBjdHgtPmNpcGhlcjsKLSAgaWYgKG9wZXJhdGlvbiA9PSBrRW5jcnlwdCkgewotICAg
IGlmICghdC0+R2V0Qnl0ZXMoJmluLCAiUExBSU5URVhUIikpIHsKLSAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gIH0gZWxzZSB7ICAvLyBvcGVyYXRpb24gPT0ga0RlY3J5cHQKLSAgICBpZiAo
IXQtPkdldEJ5dGVzKCZpbiwgIkNJUEhFUlRFWFQiKSkgewotICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgfQotCi0gIGlmIChjdHgtPm1vZGUgPT0gVGVzdEN0eDo6a0tBVCkgewotICAgIGlm
ICghQ2lwaGVyT3BlcmF0aW9uKGNpcGhlciwgJnJlc3VsdCwgb3BlcmF0aW9uID09IGtFbmNyeXB0
LCBrZXksIGl2LCBpbikpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgY29uc3Qg
c3RkOjpzdHJpbmcgbGFiZWwgPQotICAgICAgICBvcGVyYXRpb24gPT0ga0VuY3J5cHQgPyAiQ0lQ
SEVSVEVYVCIgOiAiUExBSU5URVhUIjsKLSAgICBwcmludGYoIiVzJXMgPSAlc1xyXG5cclxuIiwg
dC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCksIGxhYmVsLmNfc3RyKCksCi0gICAgICAg
ICAgIEVuY29kZUhleChyZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKS5jX3N0cigpKTsKLSAg
fSBlbHNlIHsgIC8vIGN0eC0+bW9kZSA9PSBrTUNUCi0gICAgY29uc3Qgc3RkOjpzdHJpbmcgb3Bf
bGFiZWwgPQotICAgICAgICBvcGVyYXRpb24gPT0ga0VuY3J5cHQgPyAiW0VOQ1JZUFRdIiA6ICJb
REVDUllQVF0iOwotICAgIHByaW50ZigiJXNcclxuXHJcbiIsIG9wX2xhYmVsLmNfc3RyKCkpOwot
ICAgIGlmICghTW9udGVDYXJsbyhjdHgsIHQsIGNpcGhlciwgJnJlc3VsdCwgb3BlcmF0aW9uID09
IGtFbmNyeXB0LCBrZXksIGl2LAotICAgICAgICAgICAgICAgICAgICBpbikpIHsKLSAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKG9wZXJhdGlvbiA9PSBrRW5jcnlwdCkgewotICAg
ICAgLy8gTUNUIHRlc3RzIGNvbnRhaW4gYSBzdHJheSBibGFuayBsaW5lIGFmdGVyIHRoZSBFTkNS
WVBUIHNlY3Rpb24uCi0gICAgICBwcmludGYoIlxyXG4iKTsKLSAgICB9Ci0gIH0KLQotICByZXR1
cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGludCB1c2FnZShjaGFyICphcmcpIHsKLSAgZnByaW50Zihz
dGRlcnIsICJ1c2FnZTogJXMgKGthdHxtY3QpIDxjaXBoZXI+IDx0ZXN0IGZpbGU+XG4iLCBhcmcp
OwotICByZXR1cm4gMTsKLX0KLQotaW50IGNhdnBfYWVzX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hh
ciAqKmFyZ3YpIHsKLSAgaWYgKGFyZ2MgIT0gNCkgewotICAgIHJldHVybiB1c2FnZShhcmd2WzBd
KTsKLSAgfQotCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIHRtKGFyZ3ZbMV0pOwotICBlbnVtIFRlc3RD
dHg6Ok1vZGUgdGVzdF9tb2RlOwotICBpZiAodG0gPT0gImthdCIpIHsKLSAgICB0ZXN0X21vZGUg
PSBUZXN0Q3R4OjprS0FUOwotICB9IGVsc2UgaWYgKHRtID09ICJtY3QiKSB7Ci0gICAgdGVzdF9t
b2RlID0gVGVzdEN0eDo6a01DVDsKLSAgfSBlbHNlIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImlu
dmFsaWQgdGVzdF9tb2RlOiAlc1xuIiwgdG0uY19zdHIoKSk7Ci0gICAgcmV0dXJuIHVzYWdlKGFy
Z3ZbMF0pOwotICB9Ci0KLSAgY29uc3Qgc3RkOjpzdHJpbmcgY2lwaGVyX25hbWUoYXJndlsyXSk7
Ci0gIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlciA9IEdldENpcGhlcihhcmd2WzJdKTsKLSAgaWYg
KGNpcGhlciA9PSBudWxscHRyKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIGNpcGhl
cjogJXNcbiIsIGFyZ3ZbMl0pOwotICAgIHJldHVybiAxOwotICB9Ci0gIGNvbnN0IGJvb2wgaGFz
X2l2ID0KLSAgICAgIChjaXBoZXJfbmFtZSAhPSAiYWVzLTEyOC1lY2IiICYmCi0gICAgICAgY2lw
aGVyX25hbWUgIT0gImFlcy0xOTItZWNiIiAmJgotICAgICAgIGNpcGhlcl9uYW1lICE9ICJhZXMt
MjU2LWVjYiIpOwotCi0gIFRlc3RDdHggY3R4ID0ge2NpcGhlciwgaGFzX2l2LCB0ZXN0X21vZGV9
OwotCi0gIEZpbGVUZXN0OjpPcHRpb25zIG9wdHM7Ci0gIG9wdHMucGF0aCA9IGFyZ3ZbM107Ci0g
IG9wdHMuY2FsbGJhY2sgPSBUZXN0Q2lwaGVyOwotICBvcHRzLmFyZyA9ICZjdHg7Ci0gIG9wdHMu
c2lsZW50ID0gdHJ1ZTsKLSAgb3B0cy5jb21tZW50X2NhbGxiYWNrID0gRWNob0NvbW1lbnQ7Ci0g
IHJldHVybiBGaWxlVGVzdE1haW4ob3B0cyk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xz
L2NhdnBfY3RyX2RyYmdfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9jdHJfZHJiZ190ZXN0
LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMGExYTE1NjFkNTY0ZWFhMzUwM2E0
NzhlZDJlODJmM2YwZjMzMDYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9jdHJfZHJiZ190ZXN0LmNjCisrKyAvZGV2L251
bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4K
LSAqCi0gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0
ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKLSAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBp
cyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCi0g
KgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElT
Q0xBSU1TIEFMTCBXQVJSQU5USUVTCi0gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElO
Q0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBP
UiBBTlkgREFNQUdFUwotICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwg
REFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgotICogT0YgQ09OVFJBQ1QsIE5F
R0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgot
ICogQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FS
RS4gKi8KLQotLy8gY2F2cF9jdHJfZHJiZ190ZXN0IHByb2Nlc3NlcyBhIE5JU1QgQ0FWUCBEUkJH
ODAwLTkwQSB0ZXN0IHZlY3RvciByZXF1ZXN0Ci0vLyBmaWxlIGFuZCBlbWl0cyB0aGUgY29ycmVz
cG9uZGluZyByZXNwb25zZS4KLQotI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+Ci0KLSNpbmNs
dWRlIDxzdGRsaWIuaD4KLQotI2luY2x1ZGUgImNhdnBfdGVzdF91dGlsLmgiCi0jaW5jbHVkZSAi
Li4vY3J5cHRvL2ZpcHNtb2R1bGUvcmFuZC9pbnRlcm5hbC5oIgotI2luY2x1ZGUgIi4uL2NyeXB0
by90ZXN0L2ZpbGVfdGVzdC5oIgotCi0KLXN0YXRpYyBib29sIFRlc3RDVFJEUkJHKEZpbGVUZXN0
ICp0LCB2b2lkICphcmcpIHsKLSAgc3RkOjpzdHJpbmcgdGVzdF90eXBlLCBwcmVkaWN0aW9uX3Jl
c2lzdGFuY2UsIGVudHJvcHlfaW5wdXRfbGVuLCBub25jZV9sZW4sCi0gICAgICBwZXJzb25hbGl6
YXRpb25fc3RyX2xlbiwgYWRkaXRpb25hbF9pbnB1dF9sZW4sIHJldHVybmVkX2JpdHNfbGVuOwot
ICBpZiAoIXQtPkdldEluc3RydWN0aW9uKCZ0ZXN0X3R5cGUsICJBRVMtMjU2IG5vIGRmIikgfHwK
LSAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmcHJlZGljdGlvbl9yZXNpc3RhbmNlLCAiUHJlZGlj
dGlvblJlc2lzdGFuY2UiKSB8fAotICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZlbnRyb3B5X2lu
cHV0X2xlbiwgIkVudHJvcHlJbnB1dExlbiIpIHx8Ci0gICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24o
Jm5vbmNlX2xlbiwgIk5vbmNlTGVuIikgfHwKLSAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmcGVy
c29uYWxpemF0aW9uX3N0cl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIlBlcnNvbmFs
aXphdGlvblN0cmluZ0xlbiIpIHx8Ci0gICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJmFkZGl0aW9u
YWxfaW5wdXRfbGVuLCAiQWRkaXRpb25hbElucHV0TGVuIikgfHwKLSAgICAgICF0LT5HZXRJbnN0
cnVjdGlvbigmcmV0dXJuZWRfYml0c19sZW4sICJSZXR1cm5lZEJpdHNMZW4iKSB8fAotICAgICAg
IXRlc3RfdHlwZS5lbXB0eSgpIHx8Ci0gICAgICBwcmVkaWN0aW9uX3Jlc2lzdGFuY2UgIT0gIkZh
bHNlIiB8fAotICAgICAgc3RydG91bChlbnRyb3B5X2lucHV0X2xlbi5jX3N0cigpLCBudWxscHRy
LCAwKSAhPQotICAgICAgICAgIENUUl9EUkJHX0VOVFJPUFlfTEVOICogOCB8fAotICAgICAgbm9u
Y2VfbGVuICE9ICIwIikgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIHN0ZDo6c3RyaW5n
IGNvdW50OwotICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBlbnRyb3B5LCBub25jZSwgcGVyc29uYWxp
emF0aW9uX3N0ciwgYWkxLCBhaTI7Ci0gIGlmICghdC0+R2V0QXR0cmlidXRlKCZjb3VudCwgIkNP
VU5UIikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygmZW50cm9weSwgIkVudHJvcHlJbnB1dCIpIHx8
Ci0gICAgICAhdC0+R2V0Qnl0ZXMoJm5vbmNlLCAiTm9uY2UiKSB8fAotICAgICAgIXQtPkdldEJ5
dGVzKCZwZXJzb25hbGl6YXRpb25fc3RyLCAiUGVyc29uYWxpemF0aW9uU3RyaW5nIikgfHwKLSAg
ICAgICF0LT5HZXRCeXRlcygmYWkxLCAiQWRkaXRpb25hbElucHV0IikgfHwKLSAgICAgICF0LT5H
ZXRCeXRlcygmYWkyLCAiQWRkaXRpb25hbElucHV0LzIiKSB8fAotICAgICAgZW50cm9weS5zaXpl
KCkgKiA4ICE9IHN0cnRvdWwoZW50cm9weV9pbnB1dF9sZW4uY19zdHIoKSwgbnVsbHB0ciwgMCkg
fHwKLSAgICAgIG5vbmNlLnNpemUoKSAhPSAwIHx8Ci0gICAgICBwZXJzb25hbGl6YXRpb25fc3Ry
LnNpemUoKSAqIDggIT0KLSAgICAgICAgICBzdHJ0b3VsKHBlcnNvbmFsaXphdGlvbl9zdHJfbGVu
LmNfc3RyKCksIG51bGxwdHIsIDApIHx8Ci0gICAgICBhaTEuc2l6ZSgpICE9IGFpMi5zaXplKCkg
fHwKLSAgICAgIGFpMS5zaXplKCkgKiA4ICE9IHN0cnRvdWwoYWRkaXRpb25hbF9pbnB1dF9sZW4u
Y19zdHIoKSwgbnVsbHB0ciwgMCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBDVFJf
RFJCR19TVEFURSBkcmJnOwotICBDVFJfRFJCR19pbml0KCZkcmJnLCBlbnRyb3B5LmRhdGEoKSwK
LSAgICAgICAgICAgICAgICBwZXJzb25hbGl6YXRpb25fc3RyLnNpemUoKSA+IDAgPyBwZXJzb25h
bGl6YXRpb25fc3RyLmRhdGEoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA6IG51bGxwdHIsCi0gICAgICAgICAgICAgICAgcGVyc29uYWxpemF0aW9uX3N0
ci5zaXplKCkpOwotCi0gIHVpbnQ2NF90IG91dF9sZW4gPSBzdHJ0b3VsKHJldHVybmVkX2JpdHNf
bGVuLmNfc3RyKCksIG51bGxwdHIsIDApOwotICBpZiAob3V0X2xlbiA9PSAwIHx8IChvdXRfbGVu
ICYgNykgIT0gMCkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBvdXRfbGVuIC89IDg7Ci0K
LSAgc3RkOjp2ZWN0b3I8dWludDhfdD4gb3V0OwotICBvdXQucmVzaXplKG91dF9sZW4pOwotCi0g
IENUUl9EUkJHX2dlbmVyYXRlKCZkcmJnLCBvdXQuZGF0YSgpLCBvdXQuc2l6ZSgpLAotICAgICAg
ICAgICAgICAgICAgICBhaTEuc2l6ZSgpID4gMCA/IGFpMS5kYXRhKCkgOiBudWxscHRyLCBhaTEu
c2l6ZSgpKTsKLSAgQ1RSX0RSQkdfZ2VuZXJhdGUoJmRyYmcsIG91dC5kYXRhKCksIG91dC5zaXpl
KCksCi0gICAgICAgICAgICAgICAgICAgIGFpMi5zaXplKCkgPiAwID8gYWkyLmRhdGEoKSA6IG51
bGxwdHIsIGFpMi5zaXplKCkpOwotCi0gIHByaW50ZigiJXMiLCB0LT5DdXJyZW50VGVzdFRvU3Ry
aW5nKCkuY19zdHIoKSk7Ci0gIHByaW50ZigiUmV0dXJuZWRCaXRzID0gJXNcclxuXHJcbiIsCi0g
ICAgICAgICBFbmNvZGVIZXgob3V0LmRhdGEoKSwgb3V0LnNpemUoKSkuY19zdHIoKSk7Ci0KLSAg
cmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJnKSB7Ci0gIGZwcmlu
dGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0ZXN0IGZpbGU+XG4iLCBhcmcpOwotICByZXR1cm4gMTsK
LX0KLQotaW50IGNhdnBfY3RyX2RyYmdfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikg
ewotICBpZiAoYXJnYyAhPSAyKSB7Ci0gICAgcmV0dXJuIHVzYWdlKGFyZ3ZbMF0pOwotICB9Ci0K
LSAgRmlsZVRlc3Q6Ok9wdGlvbnMgb3B0czsKLSAgb3B0cy5wYXRoID0gYXJndlsxXTsKLSAgb3B0
cy5jYWxsYmFjayA9IFRlc3RDVFJEUkJHOwotICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9wdHMu
Y29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50OwotICByZXR1cm4gRmlsZVRlc3RNYWluKG9w
dHMpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX2VjZHNhMl9rZXlwYWlyX3Rl
c3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfZWNkc2EyX2tleXBhaXJfdGVzdC5jYwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFmY2VhZGU5YTZmMDk1MDczNDEyMzZhZjdlMzg1NWU1
OGQyYTNiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvZmlwc3Rvb2xzL2NhdnBfZWNkc2EyX2tleXBhaXJfdGVzdC5jYworKysgL2Rldi9udWxsCkBA
IC0xLDkzICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KLSAqCi0g
KiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlz
IHNvZnR3YXJlIGZvciBhbnkKLSAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJl
YnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCi0gKgotICog
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1T
IEFMTCBXQVJSQU5USUVTCi0gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElO
RyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKLSAqIFNQ
RUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkg
REFNQUdFUwotICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBP
UiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgotICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VO
Q0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgotICogQ09O
TkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8K
LQotLy8gY2F2cF9lY2RzYTJfa2V5cGFpcl90ZXN0IHByb2Nlc3NlcyBhIE5JU1QgQ0FWUCBFQ0RT
QTIgS2V5UGFpciB0ZXN0IHZlY3RvcgotLy8gcmVxdWVzdCBmaWxlIGFuZCBlbWl0cyB0aGUgY29y
cmVzcG9uZGluZyByZXNwb25zZS4KLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0jaW5jbHVkZSA8
dmVjdG9yPgotCi0jaW5jbHVkZSA8b3BlbnNzbC9ibi5oPgotI2luY2x1ZGUgPG9wZW5zc2wvY3J5
cHRvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9lY19rZXkuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Vy
ci5oPgotI2luY2x1ZGUgPG9wZW5zc2wvbmlkLmg+Ci0KLSNpbmNsdWRlICIuLi9jcnlwdG8vdGVz
dC9maWxlX3Rlc3QuaCIKLSNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi0KLXN0YXRpYyBi
b29sIFRlc3RFQ0RTQTJLZXlQYWlyKEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsKLSAgc3RkOjpz
dHJpbmcgbl9zdHI7Ci0gIGNvbnN0IGNoYXIgKmdyb3VwX3N0cjsKLSAgaW50IG5pZCA9IEdldEVD
R3JvdXBOSURGcm9tSW5zdHJ1Y3Rpb24odCwgJmdyb3VwX3N0cik7Ci0gIGlmIChuaWQgPT0gTklE
X3VuZGVmIHx8Ci0gICAgICAhdC0+R2V0QXR0cmlidXRlKCZuX3N0ciwgIk4iKSkgewotICAgIHJl
dHVybiBmYWxzZTsKLSAgfQotCi0gIC8vIERvbid0IHVzZSBDdXJyZW50VGVzdFRvU3RyaW5nIHRv
IGF2b2lkIHByaW50aW5nIHRoZSBOLgotICBwcmludGYoCi0gICAgICAiWyVzXVxyXG5cclxuW0Iu
NC4yIEtleSBQYWlyIEdlbmVyYXRpb24gYnkgVGVzdGluZyBDYW5kaWRhdGVzXVxyXG5cclxuIiwK
LSAgICAgIGdyb3VwX3N0cik7Ci0KLSAgdW5zaWduZWQgbG9uZyBuID0gc3RydG91bChuX3N0ci5j
X3N0cigpLCBudWxscHRyLCAxMCk7Ci0gIGZvciAodW5zaWduZWQgbG9uZyBpID0gMDsgaSA8IG47
IGkrKykgewotICAgIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHF4KEJOX25ldygpKSwgcXkoQk5f
bmV3KCkpOwotICAgIGJzc2w6OlVuaXF1ZVB0cjxFQ19LRVk+IGtleShFQ19LRVlfbmV3X2J5X2N1
cnZlX25hbWUobmlkKSk7Ci0gICAgaWYgKCFrZXkgfHwKLSAgICAgICAgIUVDX0tFWV9nZW5lcmF0
ZV9rZXlfZmlwcyhrZXkuZ2V0KCkpIHx8Ci0gICAgICAgICFFQ19QT0lOVF9nZXRfYWZmaW5lX2Nv
b3JkaW5hdGVzX0dGcChFQ19LRVlfZ2V0MF9ncm91cChrZXkuZ2V0KCkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNfS0VZX2dldDBfcHVibGljX2tleShr
ZXkuZ2V0KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cXguZ2V0KCksIHF5LmdldCgpLCBudWxscHRyKSkgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLQotICAgIHNpemVfdCBkZWdyZWVfbGVuID0KLSAgICAgICAgKEVDX0dST1VQX2dldF9kZWdy
ZWUoRUNfS0VZX2dldDBfZ3JvdXAoa2V5LmdldCgpKSkgKyA3KSAvIDg7Ci0gICAgc2l6ZV90IG9y
ZGVyX2xlbiA9Ci0gICAgICAgIEJOX251bV9ieXRlcyhFQ19HUk9VUF9nZXQwX29yZGVyKEVDX0tF
WV9nZXQwX2dyb3VwKGtleS5nZXQoKSkpKTsKLSAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBxeF9i
eXRlcyhkZWdyZWVfbGVuKSwgcXlfYnl0ZXMoZGVncmVlX2xlbik7Ci0gICAgc3RkOjp2ZWN0b3I8
dWludDhfdD4gZF9ieXRlcyhvcmRlcl9sZW4pOwotICAgIGlmICghQk5fYm4yYmluX3BhZGRlZChx
eF9ieXRlcy5kYXRhKCksIHF4X2J5dGVzLnNpemUoKSwgcXguZ2V0KCkpIHx8Ci0gICAgICAgICFC
Tl9ibjJiaW5fcGFkZGVkKHF5X2J5dGVzLmRhdGEoKSwgcXlfYnl0ZXMuc2l6ZSgpLCBxeS5nZXQo
KSkgfHwKLSAgICAgICAgIUJOX2JuMmJpbl9wYWRkZWQoZF9ieXRlcy5kYXRhKCksIGRfYnl0ZXMu
c2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBFQ19LRVlfZ2V0MF9wcml2YXRlX2tl
eShrZXkuZ2V0KCkpKSkgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHByaW50
ZigiZCA9ICVzXHJcblF4ID0gJXNcclxuUXkgPSAlc1xyXG5cclxuIiwKLSAgICAgICAgICAgRW5j
b2RlSGV4KGRfYnl0ZXMuZGF0YSgpLCBkX2J5dGVzLnNpemUoKSkuY19zdHIoKSwKLSAgICAgICAg
ICAgRW5jb2RlSGV4KHF4X2J5dGVzLmRhdGEoKSwgcXhfYnl0ZXMuc2l6ZSgpKS5jX3N0cigpLAot
ICAgICAgICAgICBFbmNvZGVIZXgocXlfYnl0ZXMuZGF0YSgpLCBxeV9ieXRlcy5zaXplKCkpLmNf
c3RyKCkpOwotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWludCBjYXZwX2VjZHNhMl9rZXlw
YWlyX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgaWYgKGFyZ2MgIT0gMikg
ewotICAgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0ZXN0IGZpbGU+XG4iLAotICAgICAg
ICAgICAgYXJndlswXSk7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICBGaWxlVGVzdDo6T3B0aW9u
cyBvcHRzOwotICBvcHRzLnBhdGggPSBhcmd2WzFdOwotICBvcHRzLmNhbGxiYWNrID0gVGVzdEVD
RFNBMktleVBhaXI7Ci0gIG9wdHMuc2lsZW50ID0gdHJ1ZTsKLSAgb3B0cy5jb21tZW50X2NhbGxi
YWNrID0gRWNob0NvbW1lbnQ7Ci0gIHJldHVybiBGaWxlVGVzdE1haW4ob3B0cyk7Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfZWNkc2EyX3Brdl90ZXN0LmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0
b29scy9jYXZwX2VjZHNhMl9wa3ZfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDgyM2U3YWY2Mzk3MjIyNmI2OGEwY2RlN2ZmMTg0OGFiMWE4MDQxMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfZWNk
c2EyX3Brdl90ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyogQ29weXJp
Z2h0IChjKSAyMDE3LCBHb29nbGUgSW5jLgotICoKLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5
LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQotICogcHVy
cG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg
IkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKLSAqIFdJVEgg
UkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQotICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCi0gKiBXSEFUU09FVkVSIFJF
U1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4g
QUNUSU9OCi0gKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJ
T04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCi0gKiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQ
RVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLwotCi0vLyBjYXZwX2VjZHNhMl9wa3ZfdGVz
dCBwcm9jZXNzZXMgYSBOSVNUIENBVlAgRUNEU0EyIFBLViB0ZXN0IHZlY3RvciByZXF1ZXN0IGZp
bGUKLS8vIGFuZCBlbWl0cyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZS4KLQotI2luY2x1ZGUg
PHZlY3Rvcj4KLQotI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Ny
eXB0by5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZWNfa2V5Lmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9l
cnIuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL25pZC5oPgotCi0jaW5jbHVkZSAiLi4vY3J5cHRvL3Rl
c3QvZmlsZV90ZXN0LmgiCi0jaW5jbHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKLQotCi1zdGF0aWMg
Ym9vbCBUZXN0RUNEU0EyUEtWKEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsKLSAgaW50IG5pZCA9
IEdldEVDR3JvdXBOSURGcm9tSW5zdHJ1Y3Rpb24odCk7Ci0gIGlmIChuaWQgPT0gTklEX3VuZGVm
KSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIGJzc2w6OlVuaXF1ZVB0cjxFQ19LRVk+IGtl
eShFQ19LRVlfbmV3X2J5X2N1cnZlX25hbWUobmlkKSk7Ci0gIGJzc2w6OlVuaXF1ZVB0cjxCSUdO
VU0+IHF4ID0gR2V0QklHTlVNKHQsICJReCIpOwotICBic3NsOjpVbmlxdWVQdHI8QklHTlVNPiBx
eSA9IEdldEJJR05VTSh0LCAiUXkiKTsKLSAgaWYgKCFrZXkgfHwgIXF4IHx8ICFxeSkgewotICAg
IHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGlmIChFQ19LRVlfc2V0X3B1YmxpY19rZXlfYWZmaW5l
X2Nvb3JkaW5hdGVzKGtleS5nZXQoKSwgcXguZ2V0KCksIHF5LmdldCgpKSkgewotICAgIHByaW50
ZigiJXNSZXN1bHQgPSBQXHJcblxyXG4iLCB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIo
KSk7Ci0gIH0gZWxzZSB7Ci0gICAgY2hhciBidWZbMjU2XTsKLSAgICBFUlJfZXJyb3Jfc3RyaW5n
X24oRVJSX2dldF9lcnJvcigpLCBidWYsIHNpemVvZihidWYpKTsKLSAgICBwcmludGYoIiVzUmVz
dWx0ID0gRiAoJXMpXHJcblxyXG4iLCB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIoKSwg
YnVmKTsKLSAgfQotICBFUlJfY2xlYXJfZXJyb3IoKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWlu
dCBjYXZwX2VjZHNhMl9wa3ZfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBp
ZiAoYXJnYyAhPSAyKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgPHRlc3QgZmls
ZT5cbiIsCi0gICAgICAgICAgICBhcmd2WzBdKTsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIEZp
bGVUZXN0OjpPcHRpb25zIG9wdHM7Ci0gIG9wdHMucGF0aCA9IGFyZ3ZbMV07Ci0gIG9wdHMuY2Fs
bGJhY2sgPSBUZXN0RUNEU0EyUEtWOwotICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9wdHMuY29t
bWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50OwotICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMp
OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX2VjZHNhMl9zaWdnZW5fdGVzdC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9maXBzdG9vbHMvY2F2cF9lY2RzYTJfc2lnZ2VuX3Rlc3QuY2MKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDYwYzFjODdkMDRlNWI0M2ViOGQ0ZTZjYWMyMzBmMmFmNTU1YTJk
MzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Zp
cHN0b29scy9jYXZwX2VjZHNhMl9zaWdnZW5fdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDEy
NCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgotICogUGVy
bWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0
d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdy
YW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBT
T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwg
V0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxM
IElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFM
LCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFH
RVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJP
RklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9S
IE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJ
T04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCi0KLS8v
IGNhdnBfZWNkc2EyX3NpZ2dlbl90ZXN0IHByb2Nlc3NlcyBOSVNUIENBVlAgRUNEU0EyIFNpZ0dl
biBhbmQKLS8vIFNpZ0dlbkNvbXBvbmVudCB0ZXN0IHZlY3RvciByZXF1ZXN0IGZpbGVzIGFuZCBl
bWl0cyB0aGUgY29ycmVzcG9uZGluZwotLy8gcmVzcG9uc2UuCi0KLSNpbmNsdWRlIDx2ZWN0b3I+
Ci0KLSNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4K
LSNpbmNsdWRlIDxvcGVuc3NsL2RpZ2VzdC5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZWNfa2V5Lmg+
Ci0jaW5jbHVkZSA8b3BlbnNzbC9lY2RzYS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+Ci0j
aW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KLQotI2luY2x1ZGUgIi4uL2NyeXB0by9pbnRlcm5hbC5o
IgotI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgotI2luY2x1ZGUgImNhdnBf
dGVzdF91dGlsLmgiCi0KLQotc3RhdGljIGJvb2wgVGVzdEVDRFNBMlNpZ0dlbkltcGwoRmlsZVRl
c3QgKnQsIGJvb2wgaXNfY29tcG9uZW50KSB7Ci0gIGludCBuaWQgPSBHZXRFQ0dyb3VwTklERnJv
bUluc3RydWN0aW9uKHQpOwotICBjb25zdCBFVlBfTUQgKm1kID0gR2V0RGlnZXN0RnJvbUluc3Ry
dWN0aW9uKHQpOwotICBpZiAobmlkID09IE5JRF91bmRlZiB8fCBtZCA9PSBudWxscHRyKSB7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHF4KEJOX25l
dygpKSwgcXkoQk5fbmV3KCkpOwotICBic3NsOjpVbmlxdWVQdHI8RUNfS0VZPiBrZXkoRUNfS0VZ
X25ld19ieV9jdXJ2ZV9uYW1lKG5pZCkpOwotICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2c7Ci0g
IGlmICghcXggfHwgIXF5IHx8ICFrZXkgfHwKLSAgICAgICFFQ19LRVlfZ2VuZXJhdGVfa2V5X2Zp
cHMoa2V5LmdldCgpKSB8fAotICAgICAgIUVDX1BPSU5UX2dldF9hZmZpbmVfY29vcmRpbmF0ZXNf
R0ZwKEVDX0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRUNfS0VZX2dldDBfcHVibGljX2tleShrZXkuZ2V0KCkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF4LmdldCgpLCBxeS5n
ZXQoKSwgbnVsbHB0cikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygmbXNnLCAiTXNnIikpIHsKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICB1aW50OF90IGRpZ2VzdFtFVlBfTUFYX01EX1NJWkVd
OwotICB1bnNpZ25lZCBkaWdlc3RfbGVuOwotICBpZiAoaXNfY29tcG9uZW50KSB7Ci0gICAgaWYg
KG1zZy5zaXplKCkgIT0gRVZQX01EX3NpemUobWQpKSB7Ci0gICAgICB0LT5QcmludExpbmUoIkJh
ZCBpbnB1dCBsZW5ndGguIik7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGRpZ2Vz
dF9sZW4gPSBFVlBfTURfc2l6ZShtZCk7Ci0gICAgT1BFTlNTTF9tZW1jcHkoZGlnZXN0LCBtc2cu
ZGF0YSgpLCBtc2cuc2l6ZSgpKTsKLSAgfSBlbHNlIGlmICghRVZQX0RpZ2VzdChtc2cuZGF0YSgp
LCBtc2cuc2l6ZSgpLCBkaWdlc3QsICZkaWdlc3RfbGVuLCBtZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBudWxscHRyKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGJzc2w6OlVu
aXF1ZVB0cjxFQ0RTQV9TSUc+IHNpZyhFQ0RTQV9kb19zaWduKGRpZ2VzdCwgZGlnZXN0X2xlbiwg
a2V5LmdldCgpKSk7Ci0gIGlmICghc2lnKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAg
c2l6ZV90IGRlZ3JlZV9sZW4gPQotICAgICAgKEVDX0dST1VQX2dldF9kZWdyZWUoRUNfS0VZX2dl
dDBfZ3JvdXAoa2V5LmdldCgpKSkgKyA3KSAvIDg7Ci0gIHNpemVfdCBvcmRlcl9sZW4gPQotICAg
ICAgQk5fbnVtX2J5dGVzKEVDX0dST1VQX2dldDBfb3JkZXIoRUNfS0VZX2dldDBfZ3JvdXAoa2V5
LmdldCgpKSkpOwotICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBxeF9ieXRlcyhkZWdyZWVfbGVuKSwg
cXlfYnl0ZXMoZGVncmVlX2xlbik7Ci0gIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHJfYnl0ZXMob3Jk
ZXJfbGVuKSwgc19ieXRlcyhvcmRlcl9sZW4pOwotICBpZiAoIUJOX2JuMmJpbl9wYWRkZWQocXhf
Ynl0ZXMuZGF0YSgpLCBxeF9ieXRlcy5zaXplKCksIHF4LmdldCgpKSB8fAotICAgICAgIUJOX2Ju
MmJpbl9wYWRkZWQocXlfYnl0ZXMuZGF0YSgpLCBxeV9ieXRlcy5zaXplKCksIHF5LmdldCgpKSB8
fAotICAgICAgIUJOX2JuMmJpbl9wYWRkZWQocl9ieXRlcy5kYXRhKCksIHJfYnl0ZXMuc2l6ZSgp
LCBzaWctPnIpIHx8Ci0gICAgICAhQk5fYm4yYmluX3BhZGRlZChzX2J5dGVzLmRhdGEoKSwgc19i
eXRlcy5zaXplKCksIHNpZy0+cykpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBwcmlu
dGYoIiVzUXggPSAlc1xyXG5ReSA9ICVzXHJcblIgPSAlc1xyXG5TID0gJXNcclxuXHJcbiIsCi0g
ICAgICAgICB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIoKSwKLSAgICAgICAgIEVuY29k
ZUhleChxeF9ieXRlcy5kYXRhKCksIHF4X2J5dGVzLnNpemUoKSkuY19zdHIoKSwKLSAgICAgICAg
IEVuY29kZUhleChxeV9ieXRlcy5kYXRhKCksIHF5X2J5dGVzLnNpemUoKSkuY19zdHIoKSwKLSAg
ICAgICAgIEVuY29kZUhleChyX2J5dGVzLmRhdGEoKSwgcl9ieXRlcy5zaXplKCkpLmNfc3RyKCks
Ci0gICAgICAgICBFbmNvZGVIZXgoc19ieXRlcy5kYXRhKCksIHNfYnl0ZXMuc2l6ZSgpKS5jX3N0
cigpKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29sIFRlc3RFQ0RTQTJTaWdHZW4o
RmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICByZXR1cm4gVGVzdEVDRFNBMlNpZ0dlbkltcGwo
dCwgZmFsc2UpOwotfQotCi1zdGF0aWMgYm9vbCBUZXN0RUNEU0EyU2lnR2VuQ29tcG9uZW50KEZp
bGVUZXN0ICp0LCB2b2lkICphcmcpIHsKLSAgcmV0dXJuIFRlc3RFQ0RTQTJTaWdHZW5JbXBsKHQs
IHRydWUpOwotfQotCi1pbnQgY2F2cF9lY2RzYTJfc2lnZ2VuX3Rlc3RfbWFpbihpbnQgYXJnYywg
Y2hhciAqKmFyZ3YpIHsKLSAgaWYgKGFyZ2MgIT0gMykgewotICAgIGZwcmludGYoc3RkZXJyLCAi
dXNhZ2U6ICVzIChTaWdHZW58U2lnR2VuQ29tcG9uZW50KSA8dGVzdCBmaWxlPlxuIiwKLSAgICAg
ICAgICAgIGFyZ3ZbMF0pOwotICAgIHJldHVybiAxOwotICB9Ci0KLSAgc3RhdGljIGJvb2wgKCp0
ZXN0X2Z1bmMpKEZpbGVUZXN0ICosIHZvaWQgKik7Ci0gIGlmIChzdHJjbXAoYXJndlsxXSwgIlNp
Z0dlbiIpID09IDApIHsKLSAgICB0ZXN0X2Z1bmMgPSBUZXN0RUNEU0EyU2lnR2VuOwotICB9IGVs
c2UgaWYgKHN0cmNtcChhcmd2WzFdLCAiU2lnR2VuQ29tcG9uZW50IikgPT0gMCkgewotICAgIHRl
c3RfZnVuYyA9IFRlc3RFQ0RTQTJTaWdHZW5Db21wb25lbnQ7Ci0gIH0gZWxzZSB7Ci0gICAgZnBy
aW50ZihzdGRlcnIsICJVbmtub3duIHRlc3QgdHlwZTogJXNcbiIsIGFyZ3ZbMV0pOwotICAgIHJl
dHVybiAxOwotICB9Ci0KLSAgRmlsZVRlc3Q6Ok9wdGlvbnMgb3B0czsKLSAgb3B0cy5wYXRoID0g
YXJndlsyXTsKLSAgb3B0cy5jYWxsYmFjayA9IHRlc3RfZnVuYzsKLSAgb3B0cy5zaWxlbnQgPSB0
cnVlOwotICBvcHRzLmNvbW1lbnRfY2FsbGJhY2sgPSBFY2hvQ29tbWVudDsKLSAgcmV0dXJuIEZp
bGVUZXN0TWFpbihvcHRzKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9lY2Rz
YTJfc2lndmVyX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfZWNkc2EyX3NpZ3Zlcl90ZXN0
LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmM2ZkNGIxZWFmMjhiZWE4MTQzYTY0
N2Q2ODQxODg4YTRlZjgzMTYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9lY2RzYTJfc2lndmVyX3Rlc3QuY2MKKysrIC9k
ZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJ
bmMuCi0gKgotICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3Ry
aWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBm
ZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVz
LgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9S
IERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FS
RSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgT1IgQU5ZIERBTUFHRVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBV
U0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNU
LCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1Ig
SU4KLSAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09G
VFdBUkUuICovCi0KLS8vIGNhdnBfZWNkc2EyX3NpZ3Zlcl90ZXN0IHByb2Nlc3NlcyBhIE5JU1Qg
Q0FWUCBFQ0RTQTIgU2lnVmVyIHRlc3QgdmVjdG9yCi0vLyByZXF1ZXN0IGZpbGUgYW5kIGVtaXRz
IHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlLgotCi0jaW5jbHVkZSA8dmVjdG9yPgotCi0jaW5j
bHVkZSA8b3BlbnNzbC9ibi5oPgotI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+Ci0jaW5jbHVk
ZSA8b3BlbnNzbC9kaWdlc3QuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2VjX2tleS5oPgotI2luY2x1
ZGUgPG9wZW5zc2wvZWNkc2EuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotI2luY2x1ZGUg
PG9wZW5zc2wvbmlkLmg+Ci0KLSNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuaCIK
LSNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi0KLXN0YXRpYyBib29sIFRlc3RFQ0RTQTJT
aWdWZXIoRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICBpbnQgbmlkID0gR2V0RUNHcm91cE5J
REZyb21JbnN0cnVjdGlvbih0KTsKLSAgY29uc3QgRVZQX01EICptZCA9IEdldERpZ2VzdEZyb21J
bnN0cnVjdGlvbih0KTsKLSAgaWYgKG5pZCA9PSBOSURfdW5kZWYgfHwgbWQgPT0gbnVsbHB0cikg
ewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBic3NsOjpVbmlxdWVQdHI8RUNEU0FfU0lHPiBz
aWcoRUNEU0FfU0lHX25ldygpKTsKLSAgYnNzbDo6VW5pcXVlUHRyPEVDX0tFWT4ga2V5KEVDX0tF
WV9uZXdfYnlfY3VydmVfbmFtZShuaWQpKTsKLSAgYnNzbDo6VW5pcXVlUHRyPEJJR05VTT4gcXgg
PSBHZXRCSUdOVU0odCwgIlF4Iik7Ci0gIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHF5ID0gR2V0
QklHTlVNKHQsICJReSIpOwotICBic3NsOjpVbmlxdWVQdHI8QklHTlVNPiByID0gR2V0QklHTlVN
KHQsICJSIik7Ci0gIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHMgPSBHZXRCSUdOVU0odCwgIlMi
KTsKLSAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnOwotICB1aW50OF90IGRpZ2VzdFtFVlBfTUFY
X01EX1NJWkVdOwotICB1bnNpZ25lZCBkaWdlc3RfbGVuOwotICBpZiAoIXNpZyB8fCAha2V5IHx8
ICFxeCB8fCAhcXkgfHwgIXIgfHwgIXMgfHwKLSAgICAgICFFQ19LRVlfc2V0X3B1YmxpY19rZXlf
YWZmaW5lX2Nvb3JkaW5hdGVzKGtleS5nZXQoKSwgcXguZ2V0KCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxeS5nZXQoKSkgfHwKLSAgICAgICF0LT5H
ZXRCeXRlcygmbXNnLCAiTXNnIikgfHwKLSAgICAgICFFVlBfRGlnZXN0KG1zZy5kYXRhKCksIG1z
Zy5zaXplKCksIGRpZ2VzdCwgJmRpZ2VzdF9sZW4sIG1kLCBudWxscHRyKSkgewotICAgIHJldHVy
biBmYWxzZTsKLSAgfQotCi0gIEJOX2ZyZWUoc2lnLT5yKTsKLSAgc2lnLT5yID0gci5yZWxlYXNl
KCk7Ci0gIEJOX2ZyZWUoc2lnLT5zKTsKLSAgc2lnLT5zID0gcy5yZWxlYXNlKCk7Ci0KLSAgaWYg
KEVDRFNBX2RvX3ZlcmlmeShkaWdlc3QsIGRpZ2VzdF9sZW4sIHNpZy5nZXQoKSwga2V5LmdldCgp
KSkgewotICAgIHByaW50ZigiJXNSZXN1bHQgPSBQXHJcblxyXG4iLCB0LT5DdXJyZW50VGVzdFRv
U3RyaW5nKCkuY19zdHIoKSk7Ci0gIH0gZWxzZSB7Ci0gICAgY2hhciBidWZbMjU2XTsKLSAgICBF
UlJfZXJyb3Jfc3RyaW5nX24oRVJSX2dldF9lcnJvcigpLCBidWYsIHNpemVvZihidWYpKTsKLSAg
ICBwcmludGYoIiVzUmVzdWx0ID0gRiAoJXMpXHJcblxyXG4iLCB0LT5DdXJyZW50VGVzdFRvU3Ry
aW5nKCkuY19zdHIoKSwgYnVmKTsKLSAgfQotICBFUlJfY2xlYXJfZXJyb3IoKTsKLSAgcmV0dXJu
IHRydWU7Ci19Ci0KLWludCBjYXZwX2VjZHNhMl9zaWd2ZXJfdGVzdF9tYWluKGludCBhcmdjLCBj
aGFyICoqYXJndikgewotICBpZiAoYXJnYyAhPSAyKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJ1
c2FnZTogJXMgPHRlc3QgZmlsZT5cbiIsCi0gICAgICAgICAgICBhcmd2WzBdKTsKLSAgICByZXR1
cm4gMTsKLSAgfQotCi0gIEZpbGVUZXN0OjpPcHRpb25zIG9wdHM7Ci0gIG9wdHMucGF0aCA9IGFy
Z3ZbMV07Ci0gIG9wdHMuY2FsbGJhY2sgPSBUZXN0RUNEU0EyU2lnVmVyOwotICBvcHRzLnNpbGVu
dCA9IHRydWU7Ci0gIG9wdHMuY29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50OwotICByZXR1
cm4gRmlsZVRlc3RNYWluKG9wdHMpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZw
X2htYWNfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9obWFjX3Rlc3QuY2MKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5YzdlMTAzNThmNWE4YTBmNzEzOGJhNmI2ZmVmZTBjMWUy
YzQ4NDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2ZpcHN0b29scy9jYXZwX2htYWNfdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCww
IEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgotICogUGVybWlzc2lv
biB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBm
b3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQs
IHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBTT0ZUV0FS
RSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFO
VElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJ
RUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFMLCBESVJF
Q1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKLSAq
IFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywg
V0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVS
IFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJT04gV0lU
SCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCi0KLS8vIGNhdnBf
aG1hY190ZXN0IHByb2Nlc3NlcyBhIE5JU1QgQ0FWUCBITUFDIHRlc3QgdmVjdG9yIHJlcXVlc3Qg
ZmlsZSBhbmQgZW1pdHMKLS8vIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlLgotCi0jaW5jbHVk
ZSA8c3RkbGliLmg+Ci0KLSNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgotI2luY2x1ZGUgPG9w
ZW5zc2wvaG1hYy5oPgotCi0jaW5jbHVkZSAiLi4vY3J5cHRvL3Rlc3QvZmlsZV90ZXN0LmgiCi0j
aW5jbHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKLQotCi1zdGF0aWMgYm9vbCBUZXN0SE1BQyhGaWxl
VGVzdCAqdCwgdm9pZCAqYXJnKSB7Ci0gIHN0ZDo6c3RyaW5nIG1kX2xlbl9zdHI7Ci0gIGlmICgh
dC0+R2V0SW5zdHJ1Y3Rpb24oJm1kX2xlbl9zdHIsICJMIikpIHsKLSAgICByZXR1cm4gZmFsc2U7
Ci0gIH0KLSAgY29uc3Qgc2l6ZV90IG1kX2xlbiA9IHN0cnRvdWwobWRfbGVuX3N0ci5jX3N0cigp
LCBudWxscHRyLCAwKTsKLQotICBjb25zdCBFVlBfTUQgKm1kOwotICBzd2l0Y2ggKG1kX2xlbikg
ewotICAgIGNhc2UgMjA6Ci0gICAgICBtZCA9IEVWUF9zaGExKCk7Ci0gICAgICBicmVhazsKLSAg
ICBjYXNlIDI4OgotICAgICAgbWQgPSBFVlBfc2hhMjI0KCk7Ci0gICAgICBicmVhazsKLSAgICBj
YXNlIDMyOgotICAgICAgbWQgPSBFVlBfc2hhMjU2KCk7Ci0gICAgICBicmVhazsKLSAgICBjYXNl
IDQ4OgotICAgICAgbWQgPSBFVlBfc2hhMzg0KCk7Ci0gICAgICBicmVhazsKLSAgICBjYXNlIDY0
OgotICAgICAgbWQgPSBFVlBfc2hhNTEyKCk7Ci0gICAgICBicmVhazsKLSAgICBkZWZhdWx0Ogot
ICAgICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgc3RkOjpzdHJpbmcgY291bnRfc3RyLCBrX2xl
bl9zdHIsIHRfbGVuX3N0cjsKLSAgc3RkOjp2ZWN0b3I8dWludDhfdD4ga2V5LCBtc2c7Ci0gIGlm
ICghdC0+R2V0QXR0cmlidXRlKCZjb3VudF9zdHIsICJDb3VudCIpIHx8Ci0gICAgICAhdC0+R2V0
QXR0cmlidXRlKCZrX2xlbl9zdHIsICJLbGVuIikgfHwKLSAgICAgICF0LT5HZXRBdHRyaWJ1dGUo
JnRfbGVuX3N0ciwgIlRsZW4iKSB8fAotICAgICAgIXQtPkdldEJ5dGVzKCZrZXksICJLZXkiKSB8
fAotICAgICAgIXQtPkdldEJ5dGVzKCZtc2csICJNc2ciKSkgewotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotCi0gIHNpemVfdCBrX2xlbiA9IHN0cnRvdWwoa19sZW5fc3RyLmNfc3RyKCksIG51bGxw
dHIsIDApOwotICBzaXplX3QgdF9sZW4gPSBzdHJ0b3VsKHRfbGVuX3N0ci5jX3N0cigpLCBudWxs
cHRyLCAwKTsKLSAgaWYgKGtleS5zaXplKCkgPCBrX2xlbikgewotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotICB1bnNpZ25lZCBvdXRfbGVuOwotICB1aW50OF90IG91dFtFVlBfTUFYX01EX1NJWkVd
OwotICBpZiAoSE1BQyhtZCwga2V5LmRhdGEoKSwga19sZW4sIG1zZy5kYXRhKCksIG1zZy5zaXpl
KCksIG91dCwgJm91dF9sZW4pID09Ci0gICAgICBOVUxMKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwot
ICB9Ci0KLSAgaWYgKG91dF9sZW4gPCB0X2xlbikgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQot
Ci0gIHByaW50ZigiJXMiLCB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIoKSk7Ci0gIHBy
aW50ZigiTWFjID0gJXNcclxuXHJcbiIsIEVuY29kZUhleChvdXQsIHRfbGVuKS5jX3N0cigpKTsK
LQotICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGludCB1c2FnZShjaGFyICphcmcpIHsKLSAg
ZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgPHRlc3QgZmlsZT5cbiIsIGFyZyk7Ci0gIHJldHVy
biAxOwotfQotCi1pbnQgY2F2cF9obWFjX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
IHsKLSAgaWYgKGFyZ2MgIT0gMikgewotICAgIHJldHVybiB1c2FnZShhcmd2WzBdKTsKLSAgfQot
Ci0gIEZpbGVUZXN0OjpPcHRpb25zIG9wdHM7Ci0gIG9wdHMucGF0aCA9IGFyZ3ZbMV07Ci0gIG9w
dHMuY2FsbGJhY2sgPSBUZXN0SE1BQzsKLSAgb3B0cy5zaWxlbnQgPSB0cnVlOwotICBvcHRzLmNv
bW1lbnRfY2FsbGJhY2sgPSBFY2hvQ29tbWVudDsKLSAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRz
KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9rYXNfdGVzdC5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9m
aXBzdG9vbHMvY2F2cF9rYXNfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Zjg5YmM5NzMxMDA2MzhmZWJlMzZmMWQwNjYzNWMyM2E1NmJjOTQyMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfa2FzX3Rl
c3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwxNTMgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAy
MDE4LCBHb29nbGUgSW5jLgotICoKLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnks
IGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQotICogcHVycG9zZSB3aXRo
IG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIg
aW4gYWxsIGNvcGllcy4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBB
TkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKLSAqIFdJVEggUkVHQVJEIFRP
IFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSAqIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBC
RSBMSUFCTEUgRk9SIEFOWQotICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCi0gKiBXSEFUU09FVkVSIFJFU1VMVElORyBG
Uk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCi0g
KiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJ
TkcgT1VUIE9GIE9SIElOCi0gKiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5D
RSBPRiBUSElTIFNPRlRXQVJFLiAqLwotCi0vLyBjYXZwX2thc190ZXN0IHByb2Nlc3NlcyBOSVNU
IENBVlAgRUNDIEtBUyB0ZXN0IHZlY3RvciByZXF1ZXN0IGZpbGVzIGFuZAotLy8gZW1pdHMgdGhl
IGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCi0KLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KLSNpbmNsdWRl
IDxvcGVuc3NsL2JuLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KLSNpbmNsdWRlIDxv
cGVuc3NsL2RpZ2VzdC5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZWNkaC5oPgotI2luY2x1ZGUgPG9w
ZW5zc2wvZWNkc2EuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2VjX2tleS5oPgotI2luY2x1ZGUgPG9w
ZW5zc2wvZXJyLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KLSNpbmNsdWRlIDxvcGVuc3Ns
L3NoYS5oPgotCi0jaW5jbHVkZSAiLi4vY3J5cHRvL2ludGVybmFsLmgiCi0jaW5jbHVkZSAiLi4v
Y3J5cHRvL3Rlc3QvZmlsZV90ZXN0LmgiCi0jaW5jbHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKLQot
Ci1zdGF0aWMgYm9vbCBUZXN0S0FTKEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsKLSAgY29uc3Qg
Ym9vbCB2YWxpZGF0ZSA9ICpyZWludGVycHJldF9jYXN0PGJvb2wgKj4oYXJnKTsKLQotICBpbnQg
bmlkID0gTklEX3VuZGVmOwotICBzaXplX3QgZGlnZXN0X2xlbiA9IDA7Ci0KLSAgaWYgKHQtPkhh
c0luc3RydWN0aW9uKCJFQiAtIFNIQTIyNCIpKSB7Ci0gICAgbmlkID0gTklEX3NlY3AyMjRyMTsK
LSAgICBkaWdlc3RfbGVuID0gU0hBMjI0X0RJR0VTVF9MRU5HVEg7Ci0gIH0gZWxzZSBpZiAodC0+
SGFzSW5zdHJ1Y3Rpb24oIkVDIC0gU0hBMjU2IikpIHsKLSAgICBuaWQgPSBOSURfWDlfNjJfcHJp
bWUyNTZ2MTsKLSAgICBkaWdlc3RfbGVuID0gU0hBMjU2X0RJR0VTVF9MRU5HVEg7Ci0gIH0gZWxz
ZSBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIkVEIC0gU0hBMzg0IikpIHsKLSAgICBuaWQgPSBOSURf
c2VjcDM4NHIxOwotICAgIGRpZ2VzdF9sZW4gPSBTSEEzODRfRElHRVNUX0xFTkdUSDsKLSAgfSBl
bHNlIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiRUUgLSBTSEE1MTIiKSkgewotICAgIG5pZCA9IE5J
RF9zZWNwNTIxcjE7Ci0gICAgZGlnZXN0X2xlbiA9IFNIQTUxMl9ESUdFU1RfTEVOR1RIOwotICB9
IGVsc2UgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGlmICghdC0+SGFzQXR0cmlidXRl
KCJDT1VOVCIpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgYnNzbDo6VW5pcXVlUHRy
PEJJR05VTT4gdGhlaXJfeChHZXRCSUdOVU0odCwgIlFlQ0FWU3giKSk7Ci0gIGJzc2w6OlVuaXF1
ZVB0cjxCSUdOVU0+IHRoZWlyX3koR2V0QklHTlVNKHQsICJRZUNBVlN5IikpOwotICBic3NsOjpV
bmlxdWVQdHI8RUNfS0VZPiBlY19rZXkoRUNfS0VZX25ld19ieV9jdXJ2ZV9uYW1lKG5pZCkpOwot
ICBic3NsOjpVbmlxdWVQdHI8Qk5fQ1RYPiBjdHgoQk5fQ1RYX25ldygpKTsKLSAgaWYgKCF0aGVp
cl94IHx8ICF0aGVpcl95IHx8ICFlY19rZXkgfHwgIWN0eCkgewotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotCi0gIGNvbnN0IEVDX0dST1VQICpjb25zdCBncm91cCA9IEVDX0tFWV9nZXQwX2dyb3Vw
KGVjX2tleS5nZXQoKSk7Ci0gIGJzc2w6OlVuaXF1ZVB0cjxFQ19QT0lOVD4gdGhlaXJfcG9pbnQo
RUNfUE9JTlRfbmV3KGdyb3VwKSk7Ci0gIGlmICghdGhlaXJfcG9pbnQgfHwKLSAgICAgICFFQ19Q
T0lOVF9zZXRfYWZmaW5lX2Nvb3JkaW5hdGVzX0dGcCgKLSAgICAgICAgICBncm91cCwgdGhlaXJf
cG9pbnQuZ2V0KCksIHRoZWlyX3guZ2V0KCksIHRoZWlyX3kuZ2V0KCksIGN0eC5nZXQoKSkpIHsK
LSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBpZiAodmFsaWRhdGUpIHsKLSAgICBic3NsOjpV
bmlxdWVQdHI8QklHTlVNPiBvdXJfayhHZXRCSUdOVU0odCwgImRlSVVUIikpOwotICAgIGlmICgh
b3VyX2sgfHwKLSAgICAgICAgIUVDX0tFWV9zZXRfcHJpdmF0ZV9rZXkoZWNfa2V5LmdldCgpLCBv
dXJfay5nZXQoKSkgfHwKLSAgICAgICAgLy8gVGhlc2UgYXR0cmlidXRlcyBhcmUgaWdub3JlZC4K
LSAgICAgICAgIXQtPkhhc0F0dHJpYnV0ZSgiUWVJVVR4IikgfHwKLSAgICAgICAgIXQtPkhhc0F0
dHJpYnV0ZSgiUWVJVVR5IikpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0gZWxz
ZSBpZiAoIUVDX0tFWV9nZW5lcmF0ZV9rZXkoZWNfa2V5LmdldCgpKSkgewotICAgIHJldHVybiBm
YWxzZTsKLSAgfQotCi0gIHVpbnQ4X3QgZGlnZXN0W0VWUF9NQVhfTURfU0laRV07Ci0gIGlmICgh
RUNESF9jb21wdXRlX2tleV9maXBzKGRpZ2VzdCwgZGlnZXN0X2xlbiwgdGhlaXJfcG9pbnQuZ2V0
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjX2tleS5nZXQoKSkpIHsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBpZiAodmFsaWRhdGUpIHsKLSAgICBzdGQ6OnZlY3Rvcjx1
aW50OF90PiBleHBlY3RlZF9zaGFyZWRfYnl0ZXM7Ci0gICAgaWYgKCF0LT5HZXRCeXRlcygmZXhw
ZWN0ZWRfc2hhcmVkX2J5dGVzLCAiQ0FWU0hhc2haWiIpKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotICAgIGNvbnN0IGJvb2wgb2sgPQotICAgICAgICBkaWdlc3RfbGVuID09IGV4cGVj
dGVkX3NoYXJlZF9ieXRlcy5zaXplKCkgJiYKLSAgICAgICAgT1BFTlNTTF9tZW1jbXAoZGlnZXN0
LCBleHBlY3RlZF9zaGFyZWRfYnl0ZXMuZGF0YSgpLCBkaWdlc3RfbGVuKSA9PSAwOwotCi0gICAg
cHJpbnRmKCIlc0lVVEhhc2haWiA9ICVzXHJcblJlc3VsdCA9ICVjXHJcblxyXG5cclxuIiwKLSAg
ICAgICAgICAgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCksCi0gICAgICAgICAgIEVu
Y29kZUhleChkaWdlc3QsIGRpZ2VzdF9sZW4pLmNfc3RyKCksIG9rID8gJ1AnIDogJ0YnKTsKLSAg
fSBlbHNlIHsKLSAgICBjb25zdCBFQ19QT0lOVCAqcHViID0gRUNfS0VZX2dldDBfcHVibGljX2tl
eShlY19rZXkuZ2V0KCkpOwotICAgIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHgoQk5fbmV3KCkp
OwotICAgIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHkoQk5fbmV3KCkpOwotICAgIGlmICgheCB8
fCAheSB8fAotICAgICAgICAhRUNfUE9JTlRfZ2V0X2FmZmluZV9jb29yZGluYXRlc19HRnAoZ3Jv
dXAsIHB1YiwgeC5nZXQoKSwgeS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGN0eC5nZXQoKSkpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0gICAgYnNzbDo6VW5pcXVlUHRyPGNoYXI+IHhfaGV4KEJOX2JuMmhleCh4LmdldCgpKSk7Ci0g
ICAgYnNzbDo6VW5pcXVlUHRyPGNoYXI+IHlfaGV4KEJOX2JuMmhleCh5LmdldCgpKSk7Ci0KLSAg
ICBwcmludGYoIiVzUWVJVVR4ID0gJXNcclxuUWVJVVR5ID0gJXNcclxuSGFzaFpaID0gJXNcclxu
IiwKLSAgICAgICAgICAgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCksIHhfaGV4Lmdl
dCgpLCB5X2hleC5nZXQoKSwKLSAgICAgICAgICAgRW5jb2RlSGV4KGRpZ2VzdCwgZGlnZXN0X2xl
bikuY19zdHIoKSk7Ci0gIH0KLQotICByZXR1cm4gdHJ1ZTsKLX0KLQotaW50IGNhdnBfa2FzX3Rl
c3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgaWYgKGFyZ2MgIT0gMykgewotICAg
IGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzICh2YWxpZGl0eXxmdW5jdGlvbikgPHRlc3QgZmls
ZT5cbiIsCi0gICAgICAgICAgICBhcmd2WzBdKTsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIGJv
b2wgdmFsaWRpdHk7Ci0gIGlmIChzdHJjbXAoYXJndlsxXSwgInZhbGlkaXR5IikgPT0gMCkgewot
ICAgIHZhbGlkaXR5ID0gdHJ1ZTsKLSAgfSBlbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgImZ1bmN0
aW9uIikgPT0gMCkgewotICAgIHZhbGlkaXR5ID0gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgZnBy
aW50ZihzdGRlcnIsICJVbmtub3duIHRlc3QgdHlwZTogJXNcbiIsIGFyZ3ZbMV0pOwotICAgIHJl
dHVybiAxOwotICB9Ci0KLSAgRmlsZVRlc3Q6Ok9wdGlvbnMgb3B0czsKLSAgb3B0cy5wYXRoID0g
YXJndlsyXTsKLSAgb3B0cy5hcmcgPSAmdmFsaWRpdHk7Ci0gIG9wdHMuY2FsbGJhY2sgPSBUZXN0
S0FTOwotICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9wdHMuY29tbWVudF9jYWxsYmFjayA9IEVj
aG9Db21tZW50OwotICBvcHRzLmlzX2thc190ZXN0ID0gdHJ1ZTsKLSAgcmV0dXJuIEZpbGVUZXN0
TWFpbihvcHRzKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9rZXl3cmFwX3Rl
c3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfa2V5d3JhcF90ZXN0LmNjCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjNzI3MGRmMzUxNjRhYTYzNGEwYzU4ZmRlMDMwMmI1ODgwODNhYTJm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBz
dG9vbHMvY2F2cF9rZXl3cmFwX3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUgKzAsMCBA
QAotLyogQ29weXJpZ2h0IChjKSAyMDE3LCBHb29nbGUgSW5jLgotICoKLSAqIFBlcm1pc3Npb24g
dG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9y
IGFueQotICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBw
cm92aWRlZCB0aGF0IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KLSAqCi0gKiBUSEUgU09GVFdBUkUg
SVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJ
RVMKLSAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQotICogU1BFQ0lBTCwgRElSRUNU
LCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCi0gKiBX
SEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdI
RVRIRVIgSU4gQU4gQUNUSU9OCi0gKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBU
T1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCi0gKiBDT05ORUNUSU9OIFdJVEgg
VEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLwotCi0vLyBjYXZwX2tl
eXdyYXBfdGVzdCBwcm9jZXNzZXMgYSBOSVNUIENBVlAgQUVTIHRlc3QgdmVjdG9yIHJlcXVlc3Qg
ZmlsZSBhbmQKLS8vIGVtaXRzIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlLgotCi0jaW5jbHVk
ZSA8c3RkbGliLmg+Ci0KLSNpbmNsdWRlIDxvcGVuc3NsL2Flcy5oPgotI2luY2x1ZGUgPG9wZW5z
c2wvY3J5cHRvLmg+Ci0KLSNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuaCIKLSNp
bmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi0KLW5hbWVzcGFjZSB7Ci0KLXN0cnVjdCBUZXN0
Q3R4IHsKLSAgYm9vbCBlbmNyeXB0OwotfTsKLQotfQotCi1zdGF0aWMgYm9vbCBBRVNLZXlXcmFw
KHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICpvdXQsIGJvb2wgZW5jcnlwdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJmtleSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJmluKSB7Ci0gIHNpemVfdCBrZXlf
Yml0cyA9IGtleS5zaXplKCkgKiA4OwotICBpZiAoa2V5X2JpdHMgIT0gMTI4ICYmIGtleV9iaXRz
ICE9IDI1NikgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBBRVNfS0VZIGFlc19rZXk7Ci0K
LSAgaWYgKGVuY3J5cHQpIHsKLSAgICBvdXQtPnJlc2l6ZShpbi5zaXplKCkgKyA4KTsKLSAgICBp
ZiAoQUVTX3NldF9lbmNyeXB0X2tleShrZXkuZGF0YSgpLCBrZXlfYml0cywgJmFlc19rZXkpIHx8
Ci0gICAgICAgIEFFU193cmFwX2tleSgmYWVzX2tleSwgbnVsbHB0ciwgb3V0LT5kYXRhKCksIGlu
LmRhdGEoKSwgaW4uc2l6ZSgpKSA9PQotICAgICAgICAgICAgLTEpIHsKLSAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gIH0gZWxzZSB7Ci0gICAgb3V0LT5yZXNpemUoaW4uc2l6ZSgpIC0gOCk7
Ci0gICAgaWYgKEFFU19zZXRfZGVjcnlwdF9rZXkoa2V5LmRhdGEoKSwga2V5X2JpdHMsICZhZXNf
a2V5KSB8fAotICAgICAgICBBRVNfdW53cmFwX2tleSgmYWVzX2tleSwgbnVsbHB0ciwgb3V0LT5k
YXRhKCksIGluLmRhdGEoKSwgaW4uc2l6ZSgpKSA9PQotICAgICAgICAgICAgLTEpIHsKLSAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGlj
IGJvb2wgVGVzdENpcGhlcihGaWxlVGVzdCAqdCwgdm9pZCAqYXJnKSB7Ci0gIFRlc3RDdHggKmN0
eCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdEN0eCAqPihhcmcpOwotCi0gIHN0ZDo6c3RyaW5nIGNv
dW50LCB1bnVzZWQsIGluX2xhYmVsID0gY3R4LT5lbmNyeXB0ID8gIlAiIDogIkMiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfbGFiZWwgPSBjdHgtPmVuY3J5cHQgPyAiQyIg
OiAiUCI7Ci0gIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleSwgaW4sIHJlc3VsdDsKLSAgLy8gY2xh
bmctZm9ybWF0IG9mZgotICBpZiAoIXQtPkdldEluc3RydWN0aW9uKCZ1bnVzZWQsICJQTEFJTlRF
WFQgTEVOR1RIIikgfHwKLSAgICAgICF0LT5HZXRBdHRyaWJ1dGUoJmNvdW50LCAiQ09VTlQiKSB8
fAotICAgICAgIXQtPkdldEJ5dGVzKCZrZXksICJLIikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygm
aW4sIGluX2xhYmVsKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICAvLyBjbGFuZy1mb3Jt
YXQgb24KLQotICBwcmludGYoIiVzIiwgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCkp
OwotICBpZiAoIUFFU0tleVdyYXAoJnJlc3VsdCwgY3R4LT5lbmNyeXB0LCBrZXksIGluKSkgewot
ICAgIGlmIChjdHgtPmVuY3J5cHQpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGVsc2Ug
ewotICAgICAgcHJpbnRmKCJGQUlMXHJcblxyXG4iKTsKLSAgICB9Ci0gIH0gZWxzZSB7Ci0gICAg
cHJpbnRmKCIlcyA9ICVzXHJcblxyXG4iLCByZXN1bHRfbGFiZWwuY19zdHIoKSwKLSAgICAgICAg
ICAgRW5jb2RlSGV4KHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpLmNfc3RyKCkpOwotICB9
Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJnKSB7Ci0g
IGZwcmludGYoCi0gICAgICBzdGRlcnIsCi0gICAgICAidXNhZ2U6ICVzIChlbmN8ZGVjKSAoMTI4
fDI1NikgPHRlc3QgZmlsZT5cbiIsCi0gICAgICBhcmcpOwotICByZXR1cm4gMTsKLX0KLQotaW50
IGNhdnBfa2V5d3JhcF90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIGlmIChh
cmdjICE9IDQpIHsKLSAgICByZXR1cm4gdXNhZ2UoYXJndlswXSk7Ci0gIH0KLQotICBjb25zdCBz
dGQ6OnN0cmluZyBvcChhcmd2WzFdKTsKLSAgYm9vbCBlbmNyeXB0OwotICBpZiAob3AgPT0gImVu
YyIpIHsKLSAgICBlbmNyeXB0ID0gdHJ1ZTsKLSAgfSBlbHNlIGlmIChvcCA9PSAiZGVjIikgewot
ICAgIGVuY3J5cHQgPSBmYWxzZTsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gdXNhZ2UoYXJndlsw
XSk7Ci0gIH0KLQotICBUZXN0Q3R4IGN0eCA9IHtlbmNyeXB0fTsKLQotICBGaWxlVGVzdDo6T3B0
aW9ucyBvcHRzOwotICBvcHRzLnBhdGggPSBhcmd2WzNdOwotICBvcHRzLmNhbGxiYWNrID0gVGVz
dENpcGhlcjsKLSAgb3B0cy5hcmcgPSAmY3R4OwotICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9w
dHMuY29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50OwotICByZXR1cm4gRmlsZVRlc3RNYWlu
KG9wdHMpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX21haW4uY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
Zmlwc3Rvb2xzL2NhdnBfbWFpbi5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRk
YmQ2OWQ0YTNmZjI1MDYwZDIyMGY4Yzc3OWRhODdiZTExMDI2NC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfbWFpbi5jYwor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxNywgR29v
Z2xlIEluYy4KLSAqCi0gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3Ig
ZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKLSAqIHB1cnBvc2Ugd2l0aCBvciB3aXRo
b3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBj
b3BpZXMuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBB
VVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCi0gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNP
RlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyBPUiBBTlkgREFNQUdFUwotICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NT
IE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgotICogT0YgQ09O
VFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBP
RiBPUiBJTgotICogQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJ
UyBTT0ZUV0FSRS4gKi8KLQotLy8gY2F2cF9tYWluIGlzIGEgd3JhcHBlciB0aGF0IGludm9rZXMg
dGhlIG1haW4gZW50cnkgZnVuY3Rpb24gb2Ygb25lIG9mIHRoZQotLy8gQ0FWUCB2YWxpZGF0aW9u
IHN1aXRlIGJpbmFyaWVzLgotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8Y3N0ZGlv
PgotI2luY2x1ZGUgPHN0cmluZz4KLQotI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+Ci0KLSNp
bmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi0KLXN0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJn
KSB7Ci0gIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx2YWxpZGF0aW9uIHN1aXRlPiA8YXJn
cyAuLi4+XG4iLCBhcmcpOwotICByZXR1cm4gMTsKLX0KLQotc3RydWN0IFRlc3RTdWl0ZSB7Ci0g
IHN0ZDo6c3RyaW5nIG5hbWU7Ci0gIGludCAoKm1haW5fZnVuYykoaW50IGFyZ2MsIGNoYXIgKiph
cmd2KTsKLX07Ci0KLXN0YXRpYyBUZXN0U3VpdGUgYWxsX3Rlc3Rfc3VpdGVzW10gPSB7Ci0gICAg
eyJhZXMiLCAmY2F2cF9hZXNfdGVzdF9tYWlufSwKLSAgICB7ImFlc19nY20iLCAmY2F2cF9hZXNf
Z2NtX3Rlc3RfbWFpbn0sCi0gICAgeyJjdHJfZHJiZyIsICZjYXZwX2N0cl9kcmJnX3Rlc3RfbWFp
bn0sCi0gICAgeyJlY2RzYTJfa2V5cGFpciIsICZjYXZwX2VjZHNhMl9rZXlwYWlyX3Rlc3RfbWFp
bn0sCi0gICAgeyJlY2RzYTJfcGt2IiwgJmNhdnBfZWNkc2EyX3Brdl90ZXN0X21haW59LAotICAg
IHsiZWNkc2EyX3NpZ2dlbiIsICZjYXZwX2VjZHNhMl9zaWdnZW5fdGVzdF9tYWlufSwKLSAgICB7
ImVjZHNhMl9zaWd2ZXIiLCAmY2F2cF9lY2RzYTJfc2lndmVyX3Rlc3RfbWFpbn0sCi0gICAgeyJo
bWFjIiwgJmNhdnBfaG1hY190ZXN0X21haW59LAotICAgIHsia2FzIiwgJmNhdnBfa2FzX3Rlc3Rf
bWFpbn0sCi0gICAgeyJrZXl3cmFwIiwgJmNhdnBfa2V5d3JhcF90ZXN0X21haW59LAotICAgIHsi
cnNhMl9rZXlnZW4iLCAmY2F2cF9yc2EyX2tleWdlbl90ZXN0X21haW59LAotICAgIHsicnNhMl9z
aWdnZW4iLCAmY2F2cF9yc2EyX3NpZ2dlbl90ZXN0X21haW59LAotICAgIHsicnNhMl9zaWd2ZXIi
LCAmY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0X21haW59LAotICAgIHsidGxza2RmIiwgJmNhdnBfdGxz
a2RmX3Rlc3RfbWFpbn0sCi0gICAgeyJzaGEiLCAmY2F2cF9zaGFfdGVzdF9tYWlufSwKLSAgICB7
InNoYV9tb250ZSIsICZjYXZwX3NoYV9tb250ZV90ZXN0X21haW59LAotICAgIHsidGRlcyIsICZj
YXZwX3RkZXNfdGVzdF9tYWlufQotfTsKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2
KSB7Ci0gIENSWVBUT19saWJyYXJ5X2luaXQoKTsKLQotICBpZiAoYXJnYyA8IDMpIHsKLSAgICBy
ZXR1cm4gdXNhZ2UoYXJndlswXSk7Ci0gIH0KLQotICBjb25zdCBzdGQ6OnN0cmluZyBzdWl0ZShh
cmd2WzFdKTsKLSAgZm9yIChjb25zdCBUZXN0U3VpdGUgJnMgOiBhbGxfdGVzdF9zdWl0ZXMpIHsK
LSAgICBpZiAocy5uYW1lID09IHN1aXRlKSB7Ci0gICAgICByZXR1cm4gcy5tYWluX2Z1bmMoYXJn
YyAtIDEsICZhcmd2WzFdKTsKLSAgICB9Ci0gIH0KLQotICBmcHJpbnRmKHN0ZGVyciwgImludmFs
aWQgdGVzdCBzdWl0ZTogJXNcblxuIiwgYXJndlsxXSk7Ci0gIHJldHVybiB1c2FnZShhcmd2WzBd
KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9yc2EyX2tleWdlbl90ZXN0LmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2ZpcHN0b29scy9jYXZwX3JzYTJfa2V5Z2VuX3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZhOGQ2NThmOGI4MWRiMjM1ZjAxMTVlMDIxNTk5NTFmZGU1NGUwNGEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0
b29scy9jYXZwX3JzYTJfa2V5Z2VuX3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCww
IEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgotICogUGVybWlzc2lv
biB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBm
b3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQs
IHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBTT0ZUV0FS
RSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFO
VElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJ
RUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFMLCBESVJF
Q1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKLSAq
IFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywg
V0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVS
IFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJT04gV0lU
SCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCi0KLS8vIGNhdnBf
cnNhMl9rZXlnZW5fdGVzdCBwcm9jZXNzZXMgTklTVCBDQVZQIFJTQTIgS2V5R2VuIHRlc3QgdmVj
dG9yIHJlcXVlc3QKLS8vIGZpbGVzIGFuZCBlbWl0cyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25z
ZS4KLQotI2luY2x1ZGUgPHZlY3Rvcj4KLQotI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KLSNpbmNs
dWRlIDxvcGVuc3NsL2NyeXB0by5oPgotI2luY2x1ZGUgPG9wZW5zc2wvcnNhLmg+Ci0KLSNpbmNs
dWRlICIuLi9jcnlwdG8vaW50ZXJuYWwuaCIKLSNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9maWxl
X3Rlc3QuaCIKLSNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi0KLXN0YXRpYyBib29sIFRl
c3RSU0EyS2V5R2VuKEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsKLSAgc3RkOjpzdHJpbmcgbW9k
X3N0ciwgdGFibGUsIGNvdW50X3N0cjsKLSAgaWYgKCF0LT5HZXRJbnN0cnVjdGlvbigmbW9kX3N0
ciwgIm1vZCIpIHx8Ci0gICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJnRhYmxlLCAiVGFibGUgZm9y
IE0tUiBUZXN0IikgfHwKLSAgICAgIHRhYmxlICE9ICJDLjIiIHx8Ci0gICAgICAhdC0+R2V0QXR0
cmlidXRlKCZjb3VudF9zdHIsICJOIikpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBw
cmludGYoIlttb2QgPSAlc11cclxuIiwgbW9kX3N0ci5jX3N0cigpKTsKLSAgcHJpbnRmKCJbVGFi
bGUgZm9yIE0tUiBUZXN0ID0gJXNdXHJcblxyXG4iLCB0YWJsZS5jX3N0cigpKTsKLQotICBzaXpl
X3QgYml0cyA9IHN0cnRvdWwobW9kX3N0ci5jX3N0cigpLCBudWxscHRyLCAwKTsKLSAgc2l6ZV90
IGNvdW50ID0gc3RydG91bChjb3VudF9zdHIuY19zdHIoKSwgbnVsbHB0ciwgMCk7Ci0gIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgIGJzc2w6OlVuaXF1ZVB0cjxSU0E+
IGtleShSU0FfbmV3KCkpOwotICAgIGlmIChrZXkgPT0gbnVsbHB0ciB8fAotICAgICAgICBiaXRz
ID09IDAgfHwKLSAgICAgICAgIVJTQV9nZW5lcmF0ZV9rZXlfZmlwcyhrZXkuZ2V0KCksIGJpdHMs
IG51bGxwdHIpKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBjb25zdCBCSUdOVU0g
Km4sICplLCAqZCwgKnAsICpxOwotICAgIFJTQV9nZXQwX2tleShrZXkuZ2V0KCksICZuLCAmZSwg
JmQpOwotICAgIFJTQV9nZXQwX2ZhY3RvcnMoa2V5LmdldCgpLCAmcCwgJnEpOwotICAgIHN0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IG5fYnl0ZXMoQk5fbnVtX2J5dGVzKG4pKSwgZV9ieXRlcyhCTl9udW1f
Ynl0ZXMoZSkpLAotICAgICAgICBkX2J5dGVzKChiaXRzICsgNykgLyA4KSwgcF9ieXRlcyhCTl9u
dW1fYnl0ZXMocCkpLAotICAgICAgICBxX2J5dGVzKEJOX251bV9ieXRlcyhxKSk7Ci0gICAgaWYg
KG4gPT0gTlVMTCB8fAotICAgICAgICBCTl9ibjJiaW4obiwgbl9ieXRlcy5kYXRhKCkpICE9IG5f
Ynl0ZXMuc2l6ZSgpIHx8Ci0gICAgICAgIGUgPT0gTlVMTCB8fAotICAgICAgICBCTl9ibjJiaW4o
ZSwgZV9ieXRlcy5kYXRhKCkpICE9IGVfYnl0ZXMuc2l6ZSgpIHx8Ci0gICAgICAgIGQgPT0gTlVM
TCB8fAotICAgICAgICAhQk5fYm4yYmluX3BhZGRlZChkX2J5dGVzLmRhdGEoKSwgZF9ieXRlcy5z
aXplKCksIGQpIHx8Ci0gICAgICAgIHAgPT0gTlVMTCB8fAotICAgICAgICBCTl9ibjJiaW4ocCwg
cF9ieXRlcy5kYXRhKCkpICE9IHBfYnl0ZXMuc2l6ZSgpIHx8Ci0gICAgICAgIHEgPT0gTlVMTCB8
fAotICAgICAgICBCTl9ibjJiaW4ocSwgcV9ieXRlcy5kYXRhKCkpICE9IHFfYnl0ZXMuc2l6ZSgp
KSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHJpbnRmKCJlID0gJXNcclxu
cCA9ICVzXHJcbnEgPSAlc1xyXG5uID0gJXNcclxuZCA9ICVzXHJcblxyXG4iLAotICAgICAgICAg
ICBFbmNvZGVIZXgoZV9ieXRlcy5kYXRhKCksIGVfYnl0ZXMuc2l6ZSgpKS5jX3N0cigpLAotICAg
ICAgICAgICBFbmNvZGVIZXgocF9ieXRlcy5kYXRhKCksIHBfYnl0ZXMuc2l6ZSgpKS5jX3N0cigp
LAotICAgICAgICAgICBFbmNvZGVIZXgocV9ieXRlcy5kYXRhKCksIHFfYnl0ZXMuc2l6ZSgpKS5j
X3N0cigpLAotICAgICAgICAgICBFbmNvZGVIZXgobl9ieXRlcy5kYXRhKCksIG5fYnl0ZXMuc2l6
ZSgpKS5jX3N0cigpLAotICAgICAgICAgICBFbmNvZGVIZXgoZF9ieXRlcy5kYXRhKCksIGRfYnl0
ZXMuc2l6ZSgpKS5jX3N0cigpKTsKLSAgfQotCi0gIHJldHVybiB0cnVlOwotfQotCi1pbnQgY2F2
cF9yc2EyX2tleWdlbl90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIGlmIChh
cmdjICE9IDIpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyA8dGVzdCBmaWxlPlxu
IiwKLSAgICAgICAgICAgIGFyZ3ZbMF0pOwotICAgIHJldHVybiAxOwotICB9Ci0KLSAgRmlsZVRl
c3Q6Ok9wdGlvbnMgb3B0czsKLSAgb3B0cy5wYXRoID0gYXJndlsxXTsKLSAgb3B0cy5jYWxsYmFj
ayA9IFRlc3RSU0EyS2V5R2VuOwotICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9wdHMuY29tbWVu
dF9jYWxsYmFjayA9IEVjaG9Db21tZW50OwotICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOwot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX3JzYTJfc2lnZ2VuX3Rlc3QuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvZmlwc3Rvb2xzL2NhdnBfcnNhMl9zaWdnZW5fdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDYzYjg5ZDg2M2VlYTJlZTk0MTE2NzkyNDMxNWE4YWRiZjkxNDRkMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xz
L2NhdnBfcnNhMl9zaWdnZW5fdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDEyOSArMCwwIEBA
Ci0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgotICogUGVybWlzc2lvbiB0
byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3Ig
YW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHBy
b3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElF
UwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQg
V0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFMLCBESVJFQ1Qs
IElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKLSAqIFdI
QVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hF
VEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRP
UlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJT04gV0lUSCBU
SEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCi0KLS8vIGNhdnBfcnNh
Ml9zaWdnZW5fdGVzdCBwcm9jZXNzZXMgTklTVCBDQVZQIFJTQTIgU2lnR2VuIHRlc3QgdmVjdG9y
IHJlcXVlc3QKLS8vIGZpbGVzIGFuZCBlbWl0cyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZS4K
LQotI2luY2x1ZGUgPHZlY3Rvcj4KLQotI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KLSNpbmNsdWRl
IDxvcGVuc3NsL2NyeXB0by5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZGlnZXN0Lmg+Ci0jaW5jbHVk
ZSA8b3BlbnNzbC9yc2EuaD4KLQotI2luY2x1ZGUgIi4uL2NyeXB0by9pbnRlcm5hbC5oIgotI2lu
Y2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgotI2luY2x1ZGUgImNhdnBfdGVzdF91
dGlsLmgiCi0KLW5hbWVzcGFjZSB7Ci0KLXN0cnVjdCBUZXN0Q3R4IHsKLSAgYnNzbDo6VW5pcXVl
UHRyPFJTQT4ga2V5OwotICBib29sIGlzX3BzczsKLX07Ci0KLX0KLQotc3RhdGljIGJvb2wgVGVz
dFJTQTJTaWdHZW4oRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICBUZXN0Q3R4ICpjdHggPSBy
ZWludGVycHJldF9jYXN0PFRlc3RDdHggKj4oYXJnKTsKLQotICBzdGQ6OnN0cmluZyBtb2Rfc3Ry
LCBoYXNoOwotICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2c7Ci0gIGlmICghdC0+R2V0SW5zdHJ1
Y3Rpb24oJm1vZF9zdHIsICJtb2QiKSB8fAotICAgICAgIXQtPkdldEF0dHJpYnV0ZSgmaGFzaCwg
IlNIQUFsZyIpIHx8Ci0gICAgICAhdC0+R2V0Qnl0ZXMoJm1zZywgIk1zZyIpKSB7Ci0gICAgcmV0
dXJuIGZhbHNlOwotICB9Ci0KLSAgc3RkOjpzdHJpbmcgdGVzdCA9IHQtPkN1cnJlbnRUZXN0VG9T
dHJpbmcoKTsKLSAgaWYgKHQtPklzQXROZXdJbnN0cnVjdGlvbkJsb2NrKCkpIHsKLSAgICBpbnQg
bW9kX2JpdHMgPSBzdHJ0b3VsKG1vZF9zdHIuY19zdHIoKSwgbnVsbHB0ciwgMCk7Ci0gICAgY3R4
LT5rZXkgPSBic3NsOjpVbmlxdWVQdHI8UlNBPihSU0FfbmV3KCkpOwotICAgIGlmIChjdHgtPmtl
eSA9PSBudWxscHRyIHx8Ci0gICAgICAgIG1vZF9iaXRzID09IDAgfHwKLSAgICAgICAgIVJTQV9n
ZW5lcmF0ZV9rZXlfZmlwcyhjdHgtPmtleS5nZXQoKSwgbW9kX2JpdHMsIG51bGxwdHIpKSB7Ci0g
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgY29uc3QgQklHTlVNICpuLCAqZTsKLSAg
ICBSU0FfZ2V0MF9rZXkoY3R4LT5rZXkuZ2V0KCksICZuLCAmZSwgbnVsbHB0cik7Ci0KLSAgICBz
dGQ6OnZlY3Rvcjx1aW50OF90PiBuX2J5dGVzKEJOX251bV9ieXRlcyhuKSk7Ci0gICAgc3RkOjp2
ZWN0b3I8dWludDhfdD4gZV9ieXRlcyhCTl9udW1fYnl0ZXMoZSkpOwotICAgIGlmICghQk5fYm4y
YmluX3BhZGRlZChuX2J5dGVzLmRhdGEoKSwgbl9ieXRlcy5zaXplKCksIG4pIHx8Ci0gICAgICAg
ICFCTl9ibjJiaW5fcGFkZGVkKGVfYnl0ZXMuZGF0YSgpLCBlX2J5dGVzLnNpemUoKSwgZSkpIHsK
LSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBwcmludGYoIlttb2QgPSAlc11cclxu
XHJcbm4gPSAlc1xyXG5cclxuZSA9ICVzIiwKLSAgICAgICAgICAgbW9kX3N0ci5jX3N0cigpLAot
ICAgICAgICAgICBFbmNvZGVIZXgobl9ieXRlcy5kYXRhKCksIG5fYnl0ZXMuc2l6ZSgpKS5jX3N0
cigpLAotICAgICAgICAgICBFbmNvZGVIZXgoZV9ieXRlcy5kYXRhKCksIGVfYnl0ZXMuc2l6ZSgp
KS5jX3N0cigpKTsKLSAgICB0ZXN0ID0gdGVzdC5zdWJzdHIodGVzdC5maW5kKCJdIikgKyAzKTsK
LSAgfQotCi0gIGNvbnN0IEVWUF9NRCAqbWQgPSBFVlBfZ2V0X2RpZ2VzdGJ5bmFtZShoYXNoLmNf
c3RyKCkpOwotICB1aW50OF90IGRpZ2VzdF9idWZbRVZQX01BWF9NRF9TSVpFXTsKLSAgc3RkOjp2
ZWN0b3I8dWludDhfdD4gc2lnKFJTQV9zaXplKGN0eC0+a2V5LmdldCgpKSk7Ci0gIHVuc2lnbmVk
IGRpZ2VzdF9sZW47Ci0gIHNpemVfdCBzaWdfbGVuOwotICBpZiAobWQgPT0gTlVMTCB8fAotICAg
ICAgIUVWUF9EaWdlc3QobXNnLmRhdGEoKSwgbXNnLnNpemUoKSwgZGlnZXN0X2J1ZiwgJmRpZ2Vz
dF9sZW4sIG1kLCBOVUxMKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGlmIChjdHgt
PmlzX3BzcykgewotICAgIGlmICghUlNBX3NpZ25fcHNzX21nZjEoY3R4LT5rZXkuZ2V0KCksICZz
aWdfbGVuLCBzaWcuZGF0YSgpLCBzaWcuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlnZXN0X2J1ZiwgZGlnZXN0X2xlbiwgbWQsIG1kLCAtMSkpIHsKLSAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gIH0gZWxzZSB7Ci0gICAgdW5zaWduZWQgc2lnX2xlbl91OwotICAgIGlm
ICghUlNBX3NpZ24oRVZQX01EX3R5cGUobWQpLCBkaWdlc3RfYnVmLCBkaWdlc3RfbGVuLCBzaWcu
ZGF0YSgpLAotICAgICAgICAgICAgICAgICAgJnNpZ19sZW5fdSwgY3R4LT5rZXkuZ2V0KCkpKSB7
Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHNpZ19sZW4gPSBzaWdfbGVuX3U7Ci0g
IH0KLQotICBwcmludGYoIiVzUyA9ICVzXHJcblxyXG4iLCB0ZXN0LmNfc3RyKCksCi0gICAgICAg
ICBFbmNvZGVIZXgoc2lnLmRhdGEoKSwgc2lnX2xlbikuY19zdHIoKSk7Ci0gIHJldHVybiB0cnVl
OwotfQotCi1pbnQgY2F2cF9yc2EyX3NpZ2dlbl90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiph
cmd2KSB7Ci0gIGlmIChhcmdjICE9IDMpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiAl
cyAocGtjczE1fHBzcykgPHRlc3QgZmlsZT5cbiIsCi0gICAgICAgICAgICBhcmd2WzBdKTsKLSAg
ICByZXR1cm4gMTsKLSAgfQotCi0gIFRlc3RDdHggY3R4OwotICBpZiAoc3RyY21wKGFyZ3ZbMV0s
ICJwa2NzMTUiKSA9PSAwKSB7Ci0gICAgY3R4ID0ge251bGxwdHIsIGZhbHNlfTsKLSAgfSBlbHNl
IGlmIChzdHJjbXAoYXJndlsxXSwgInBzcyIpID09IDApIHsKLSAgICBjdHggPSB7bnVsbHB0ciwg
dHJ1ZX07Ci0gIH0gZWxzZSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJVbmtub3duIHRlc3QgdHlw
ZTogJXNcbiIsIGFyZ3ZbMV0pOwotICAgIHJldHVybiAxOwotICB9Ci0KLSAgRmlsZVRlc3Q6Ok9w
dGlvbnMgb3B0czsKLSAgb3B0cy5wYXRoID0gYXJndlsyXTsKLSAgb3B0cy5jYWxsYmFjayA9IFRl
c3RSU0EyU2lnR2VuOwotICBvcHRzLmFyZyA9ICZjdHg7Ci0gIG9wdHMuc2lsZW50ID0gdHJ1ZTsK
LSAgb3B0cy5jb21tZW50X2NhbGxiYWNrID0gRWNob0NvbW1lbnQ7Ci0gIHJldHVybiBGaWxlVGVz
dE1haW4ob3B0cyk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfcnNhMl9zaWd2
ZXJfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0LmNjCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmNmYzFmY2I2N2EzMDJjMGMyYTU1OTlkZjAzMTAw
ZGVlYTI0YTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9maXBzdG9vbHMvY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0LmNjCisrKyAvZGV2L251bGwKQEAg
LTEsMTI1ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KLSAqCi0g
KiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlz
IHNvZnR3YXJlIGZvciBhbnkKLSAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJl
YnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCi0gKgotICog
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1T
IEFMTCBXQVJSQU5USUVTCi0gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElO
RyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKLSAqIFNQ
RUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkg
REFNQUdFUwotICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBP
UiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgotICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VO
Q0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgotICogQ09O
TkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8K
LQotLy8gY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0IHByb2Nlc3NlcyBOSVNUIENBVlAgUlNBMiBTaWdW
ZXIgdGVzdCB2ZWN0b3IgcmVxdWVzdAotLy8gZmlsZXMgYW5kIGVtaXRzIHRoZSBjb3JyZXNwb25k
aW5nIHJlc3BvbnNlLgotCi0jaW5jbHVkZSA8dmVjdG9yPgotCi0jaW5jbHVkZSA8b3BlbnNzbC9i
bi5oPgotI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9kaWdl
c3QuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotI2luY2x1ZGUgPG9wZW5zc2wvcnNhLmg+
Ci0KLSNpbmNsdWRlICIuLi9jcnlwdG8vaW50ZXJuYWwuaCIKLSNpbmNsdWRlICIuLi9jcnlwdG8v
dGVzdC9maWxlX3Rlc3QuaCIKLSNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi0KLW5hbWVz
cGFjZSB7Ci0KLXN0cnVjdCBUZXN0Q3R4IHsKLSAgc3RkOjp2ZWN0b3I8dWludDhfdD4gTjsKLSAg
Ym9vbCBpc19wc3M7Ci19OwotCi19Ci0KLXN0YXRpYyBib29sIFRlc3RSU0EyU2lnVmVyKEZpbGVU
ZXN0ICp0LCB2b2lkICphcmcpIHsKLSAgVGVzdEN0eCAqY3R4ID0gcmVpbnRlcnByZXRfY2FzdDxU
ZXN0Q3R4ICo+KGFyZyk7Ci0KLSAgc3RkOjpzdHJpbmcgbW9kX3N0cjsKLSAgaWYgKCF0LT5HZXRJ
bnN0cnVjdGlvbigmbW9kX3N0ciwgIm1vZCIpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0K
LSAgcHJpbnRmKCIlcyIsIHQtPkN1cnJlbnRUZXN0VG9TdHJpbmcoKS5jX3N0cigpKTsKLQotICBp
ZiAodC0+SGFzQXR0cmlidXRlKCJuIikpIHsKLSAgICBwcmludGYoIlxyXG4iKTsKLSAgICByZXR1
cm4gdC0+R2V0Qnl0ZXMoJmN0eC0+TiwgIm4iKTsKLSAgfQotCi0gIHN0ZDo6c3RyaW5nIGhhc2g7
Ci0gIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGVfYnl0ZXMsIG1zZywgc2lnOwotICBpZiAoIXQtPkdl
dEF0dHJpYnV0ZSgmaGFzaCwgIlNIQUFsZyIpIHx8Ci0gICAgICAhdC0+R2V0Qnl0ZXMoJmVfYnl0
ZXMsICJlIikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygmbXNnLCAiTXNnIikgfHwKLSAgICAgICF0
LT5HZXRCeXRlcygmc2lnLCAiUyIpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgYnNz
bDo6VW5pcXVlUHRyPFJTQT4ga2V5KFJTQV9uZXcoKSk7Ci0gIGtleS0+biA9IEJOX25ldygpOwot
ICBrZXktPmUgPSBCTl9uZXcoKTsKLSAgaWYgKGtleSA9PSBudWxscHRyIHx8Ci0gICAgICAhQk5f
YmluMmJuKGN0eC0+Ti5kYXRhKCksIGN0eC0+Ti5zaXplKCksIGtleS0+bikgfHwKLSAgICAgICFC
Tl9iaW4yYm4oZV9ieXRlcy5kYXRhKCksIGVfYnl0ZXMuc2l6ZSgpLCBrZXktPmUpKSB7Ci0gICAg
cmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgY29uc3QgRVZQX01EICptZCA9IEVWUF9nZXRfZGlnZXN0
YnluYW1lKGhhc2guY19zdHIoKSk7Ci0gIHVpbnQ4X3QgZGlnZXN0X2J1ZltFVlBfTUFYX01EX1NJ
WkVdOwotICB1bnNpZ25lZCBkaWdlc3RfbGVuOwotICBpZiAobWQgPT0gTlVMTCB8fAotICAgICAg
IUVWUF9EaWdlc3QobXNnLmRhdGEoKSwgbXNnLnNpemUoKSwgZGlnZXN0X2J1ZiwgJmRpZ2VzdF9s
ZW4sIG1kLCBOVUxMKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGludCBvazsKLSAg
aWYgKGN0eC0+aXNfcHNzKSB7Ci0gICAgb2sgPSBSU0FfdmVyaWZ5X3Bzc19tZ2YxKGtleS5nZXQo
KSwgZGlnZXN0X2J1ZiwgZGlnZXN0X2xlbiwgbWQsIG1kLCAtMSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2lnLmRhdGEoKSwgc2lnLnNpemUoKSk7Ci0gIH0gZWxzZSB7Ci0gICAgb2sg
PSBSU0FfdmVyaWZ5KEVWUF9NRF90eXBlKG1kKSwgZGlnZXN0X2J1ZiwgZGlnZXN0X2xlbiwgc2ln
LmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgc2lnLnNpemUoKSwga2V5LmdldCgpKTsKLSAg
fQotCi0gIGlmIChvaykgewotICAgIHByaW50ZigiUmVzdWx0ID0gUFxyXG5cclxuIik7Ci0gIH0g
ZWxzZSB7Ci0gICAgY2hhciBidWZbMjU2XTsKLSAgICBFUlJfZXJyb3Jfc3RyaW5nX24oRVJSX2dl
dF9lcnJvcigpLCBidWYsIHNpemVvZihidWYpKTsKLSAgICBwcmludGYoIlJlc3VsdCA9IEYgKCVz
KVxyXG5cclxuIiwgYnVmKTsKLSAgfQotICBFUlJfY2xlYXJfZXJyb3IoKTsKLSAgcmV0dXJuIHRy
dWU7Ci19Ci0KLWludCBjYXZwX3JzYTJfc2lndmVyX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAq
KmFyZ3YpIHsKLSAgaWYgKGFyZ2MgIT0gMykgewotICAgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6
ICVzIChwa2NzMTV8cHNzKSA8dGVzdCBmaWxlPlxuIiwKLSAgICAgICAgICAgIGFyZ3ZbMF0pOwot
ICAgIHJldHVybiAxOwotICB9Ci0KLSAgVGVzdEN0eCBjdHg7Ci0gIGlmIChzdHJjbXAoYXJndlsx
XSwgInBrY3MxNSIpID09IDApIHsKLSAgICBjdHggPSB7c3RkOjp2ZWN0b3I8dWludDhfdD4oKSwg
ZmFsc2V9OwotICB9IGVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAicHNzIikgPT0gMCkgewotICAg
IGN0eCA9IHtzdGQ6OnZlY3Rvcjx1aW50OF90PigpLCB0cnVlfTsKLSAgfSBlbHNlIHsKLSAgICBm
cHJpbnRmKHN0ZGVyciwgIlVua25vd24gdGVzdCB0eXBlOiAlc1xuIiwgYXJndlsxXSk7Ci0gICAg
cmV0dXJuIDE7Ci0gIH0KLQotICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRzOwotICBvcHRzLnBhdGgg
PSBhcmd2WzJdOwotICBvcHRzLmNhbGxiYWNrID0gVGVzdFJTQTJTaWdWZXI7Ci0gIG9wdHMuYXJn
ID0gJmN0eDsKLSAgb3B0cy5zaWxlbnQgPSB0cnVlOwotICBvcHRzLmNvbW1lbnRfY2FsbGJhY2sg
PSBFY2hvQ29tbWVudDsKLSAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRzKTsKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9maXBzdG9vbHMvY2F2cF9zaGFfbW9udGVfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMv
Y2F2cF9zaGFfbW9udGVfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDZm
MmZiMDk1NjZmY2I0NzBjMDRmODE5ZWY4ZGYzNWVkNmIzNGY5YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfc2hhX21vbnRl
X3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyogQ29weXJpZ2h0IChj
KSAyMDE3LCBHb29nbGUgSW5jLgotICoKLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQotICogcHVycG9zZSB3
aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBl
YXIgaW4gYWxsIGNvcGllcy4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT
IiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKLSAqIFdJVEggUkVHQVJE
IFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSAq
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UiBCRSBMSUFCTEUgRk9SIEFOWQotICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCi0gKiBXSEFUU09FVkVSIFJFU1VMVElO
RyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9O
Ci0gKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFS
SVNJTkcgT1VUIE9GIE9SIElOCi0gKiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JN
QU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLwotCi0vLyBjYXZwX3NoYV9tb250ZV90ZXN0IHByb2Nl
c3NlcyBhIE5JU1QgQ0FWUCBTSEEtTW9udGUgdGVzdCB2ZWN0b3IgcmVxdWVzdCBmaWxlCi0vLyBh
bmQgZW1pdHMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCi0KLSNpbmNsdWRlIDxzdGRsaWIu
aD4KLQotI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9kaWdl
c3QuaD4KLQotI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgotI2luY2x1ZGUg
ImNhdnBfdGVzdF91dGlsLmgiCi0KLQotbmFtZXNwYWNlIHsKLQotc3RydWN0IFRlc3RDdHggewot
ICBzdGQ6OnN0cmluZyBoYXNoOwotfTsKLQotfQotCi1zdGF0aWMgYm9vbCBUZXN0U0hBTW9udGUo
RmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICBUZXN0Q3R4ICpjdHggPSByZWludGVycHJldF9j
YXN0PFRlc3RDdHggKj4oYXJnKTsKLQotICBjb25zdCBFVlBfTUQgKm1kID0gRVZQX2dldF9kaWdl
c3RieW5hbWUoY3R4LT5oYXNoLmNfc3RyKCkpOwotICBpZiAobWQgPT0gbnVsbHB0cikgewotICAg
IHJldHVybiBmYWxzZTsKLSAgfQotICBjb25zdCBzaXplX3QgbWRfbGVuID0gRVZQX01EX3NpemUo
bWQpOwotCi0gIHN0ZDo6c3RyaW5nIG91dF9sZW47Ci0gIGlmICghdC0+R2V0SW5zdHJ1Y3Rpb24o
Jm91dF9sZW4sICJMIikgfHwKLSAgICAgIG1kX2xlbiAhPSBzdHJ0b3VsKG91dF9sZW4uY19zdHIo
KSwgbnVsbHB0ciwgMCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBzdGQ6OnZlY3Rv
cjx1aW50OF90PiBzZWVkOwotICBpZiAoIXQtPkdldEJ5dGVzKCZzZWVkLCAiU2VlZCIpIHx8Ci0g
ICAgICBzZWVkLnNpemUoKSAhPSBtZF9sZW4pIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQot
ICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBvdXQgPSBzZWVkOwotCi0gIHByaW50ZigiJXNcclxuIiwg
dC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCkpOwotCi0gIGZvciAoaW50IGNvdW50ID0g
MDsgY291bnQgPCAxMDA7IGNvdW50KyspIHsKLSAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2c7
Ci0gICAgbXNnLmluc2VydChtc2cuZW5kKCksIG91dC5iZWdpbigpLCBvdXQuZW5kKCkpOwotICAg
IG1zZy5pbnNlcnQobXNnLmVuZCgpLCBvdXQuYmVnaW4oKSwgb3V0LmVuZCgpKTsKLSAgICBtc2cu
aW5zZXJ0KG1zZy5lbmQoKSwgb3V0LmJlZ2luKCksIG91dC5lbmQoKSk7Ci0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKLSAgICAgIHVuc2lnbmVkIGRpZ2VzdF9sZW47Ci0gICAg
ICBpZiAoIUVWUF9EaWdlc3QobXNnLmRhdGEoKSwgbXNnLnNpemUoKSwgb3V0LmRhdGEoKSwgJmRp
Z2VzdF9sZW4sIG1kLAotICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIpIHx8Ci0gICAgICAg
ICAgZGlnZXN0X2xlbiAhPSBvdXQuc2l6ZSgpKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgIH0KLQotICAgICAgbXNnLmVyYXNlKG1zZy5iZWdpbigpLCBtc2cuYmVnaW4oKSArIG91dC5z
aXplKCkpOwotICAgICAgbXNnLmluc2VydChtc2cuZW5kKCksIG91dC5iZWdpbigpLCBvdXQuZW5k
KCkpOwotICAgIH0KLSAgICBwcmludGYoIkNPVU5UID0gJWRcclxuIiwgY291bnQpOwotICAgIHBy
aW50ZigiTUQgPSAlc1xyXG5cclxuIiwgRW5jb2RlSGV4KG91dC5kYXRhKCksIG91dC5zaXplKCkp
LmNfc3RyKCkpOwotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBpbnQgdXNhZ2Uo
Y2hhciAqYXJnKSB7Ci0gIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDxoYXNoPiA8dGVzdCBm
aWxlPlxuIiwgYXJnKTsKLSAgcmV0dXJuIDE7Ci19Ci0KLWludCBjYXZwX3NoYV9tb250ZV90ZXN0
X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIGlmIChhcmdjICE9IDMpIHsKLSAgICBy
ZXR1cm4gdXNhZ2UoYXJndlswXSk7Ci0gIH0KLQotICBUZXN0Q3R4IGN0eCA9IHtzdGQ6OnN0cmlu
Zyhhcmd2WzFdKX07Ci0KLSAgRmlsZVRlc3Q6Ok9wdGlvbnMgb3B0czsKLSAgb3B0cy5wYXRoID0g
YXJndlsyXTsKLSAgb3B0cy5jYWxsYmFjayA9IFRlc3RTSEFNb250ZTsKLSAgb3B0cy5hcmcgPSAm
Y3R4OwotICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9wdHMuY29tbWVudF9jYWxsYmFjayA9IEVj
aG9Db21tZW50OwotICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2ZpcHN0b29scy9jYXZwX3NoYV90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX3NoYV90
ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWUyNWMxY2JjMjM1YTMxNWI3
NmQ2MjIyM2FlNjg3MGM4YmU4ZDk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF9zaGFfdGVzdC5jYworKysgL2Rldi9udWxs
CkBAIC0xLDk2ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KLSAq
Ci0gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0
aGlzIHNvZnR3YXJlIGZvciBhbnkKLSAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBo
ZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCi0gKgot
ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xB
SU1TIEFMTCBXQVJSQU5USUVTCi0gKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xV
RElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBB
TlkgREFNQUdFUwotICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFU
QSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgotICogT0YgQ09OVFJBQ1QsIE5FR0xJ
R0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgotICog
Q09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4g
Ki8KLQotLy8gY2F2cF9zaGFfdGVzdCBwcm9jZXNzZXMgYSBOSVNUIENBVlAgU0hBIHRlc3QgdmVj
dG9yIHJlcXVlc3QgZmlsZSBhbmQgZW1pdHMKLS8vIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNl
LgotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLSNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgot
I2luY2x1ZGUgPG9wZW5zc2wvZGlnZXN0Lmg+Ci0KLSNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9m
aWxlX3Rlc3QuaCIKLSNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi1uYW1lc3BhY2Ugewot
Ci1zdHJ1Y3QgVGVzdEN0eCB7Ci0gIHN0ZDo6c3RyaW5nIGhhc2g7Ci19OwotCi19Ci0KLXN0YXRp
YyBib29sIFRlc3RTSEEoRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICBUZXN0Q3R4ICpjdHgg
PSByZWludGVycHJldF9jYXN0PFRlc3RDdHggKj4oYXJnKTsKLQotICBjb25zdCBFVlBfTUQgKm1k
ID0gRVZQX2dldF9kaWdlc3RieW5hbWUoY3R4LT5oYXNoLmNfc3RyKCkpOwotICBpZiAobWQgPT0g
bnVsbHB0cikgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBjb25zdCBzaXplX3QgbWRfbGVu
ID0gRVZQX01EX3NpemUobWQpOwotCi0gIHN0ZDo6c3RyaW5nIG91dF9sZW47Ci0gIGlmICghdC0+
R2V0SW5zdHJ1Y3Rpb24oJm91dF9sZW4sICJMIikgfHwKLSAgICAgIG1kX2xlbiAhPSBzdHJ0b3Vs
KG91dF9sZW4uY19zdHIoKSwgbnVsbHB0ciwgMCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0K
LQotICBzdGQ6OnN0cmluZyBtc2dfbGVuX3N0cjsKLSAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNn
OwotICBpZiAoIXQtPkdldEF0dHJpYnV0ZSgmbXNnX2xlbl9zdHIsICJMZW4iKSB8fAotICAgICAg
IXQtPkdldEJ5dGVzKCZtc2csICJNc2ciKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0g
IHNpemVfdCBtc2dfbGVuID0gc3RydG91bChtc2dfbGVuX3N0ci5jX3N0cigpLCBudWxscHRyLCAw
KTsKLSAgaWYgKG1zZ19sZW4gJSA4ICE9IDAgfHwKLSAgICAgIG1zZ19sZW4gLyA4ID4gbXNnLnNp
emUoKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBtc2dfbGVuIC89IDg7Ci0KLSAgc3Rk
Ojp2ZWN0b3I8dWludDhfdD4gb3V0OwotICBvdXQucmVzaXplKG1kX2xlbik7Ci0gIHVuc2lnbmVk
IGRpZ2VzdF9sZW47Ci0gIGlmICghRVZQX0RpZ2VzdChtc2cuZGF0YSgpLCBtc2dfbGVuLCBvdXQu
ZGF0YSgpLCAmZGlnZXN0X2xlbiwgbWQsIG51bGxwdHIpIHx8Ci0gICAgICBkaWdlc3RfbGVuICE9
IG91dC5zaXplKCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBwcmludGYoIiVzIiwg
dC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCkpOwotICBwcmludGYoIk1EID0gJXNcclxu
XHJcbiIsIEVuY29kZUhleChvdXQuZGF0YSgpLCBvdXQuc2l6ZSgpKS5jX3N0cigpKTsKLQotICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGludCB1c2FnZShjaGFyICphcmcpIHsKLSAgZnByaW50
ZihzdGRlcnIsICJ1c2FnZTogJXMgPGhhc2g+IDx0ZXN0IGZpbGU+XG4iLCBhcmcpOwotICByZXR1
cm4gMTsKLX0KLQotaW50IGNhdnBfc2hhX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
IHsKLSAgaWYgKGFyZ2MgIT0gMykgewotICAgIHJldHVybiB1c2FnZShhcmd2WzBdKTsKLSAgfQot
Ci0gIFRlc3RDdHggY3R4ID0ge3N0ZDo6c3RyaW5nKGFyZ3ZbMV0pfTsKLQotICBGaWxlVGVzdDo6
T3B0aW9ucyBvcHRzOwotICBvcHRzLnBhdGggPSBhcmd2WzJdOwotICBvcHRzLmNhbGxiYWNrID0g
VGVzdFNIQTsKLSAgb3B0cy5hcmcgPSAmY3R4OwotICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9w
dHMuY29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50OwotICByZXR1cm4gRmlsZVRlc3RNYWlu
KG9wdHMpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX3RkZXNfdGVzdC5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9maXBzdG9vbHMvY2F2cF90ZGVzX3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQxYzEwZmY5MDRkOTg5YjJlN2M5YjM2YWQxZTFmOGNjNjljZGMwOWUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZw
X3RkZXNfdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDM0MiArMCwwIEBACi0vKiBDb3B5cmln
aHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgotICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHks
IG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJw
b3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQg
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi
QVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwotICogV0lUSCBS
RUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBP
RgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKLSAqIFdIQVRTT0VWRVIgUkVT
VUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBB
Q1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElP
TiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBF
UkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCi0KLS8vIGNhdnBfdGRlc190ZXN0IHByb2Nl
c3NlcyBhIE5JU1QgVE1PVlMgdGVzdCB2ZWN0b3IgcmVxdWVzdCBmaWxlIGFuZCBlbWl0cyB0aGUK
LS8vIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCi0KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLQotI2lu
Y2x1ZGUgPG9wZW5zc2wvY2lwaGVyLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KLSNp
bmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotCi0jaW5jbHVkZSAiLi4vY3J5cHRvL3Rlc3QvZmlsZV90
ZXN0LmgiCi0jaW5jbHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKLQotCi1uYW1lc3BhY2UgewotCi1z
dHJ1Y3QgVGVzdEN0eCB7Ci0gIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKLSAgZW51bSBNb2Rl
IHsKLSAgICBrS0FULCAgLy8gS25vd24gQW5zd2VyIFRlc3QKLSAgICBrTUNULCAgLy8gTW9udGUg
Q2FybG8gVGVzdAotICB9OwotICBib29sIGhhc19pdjsKLSAgTW9kZSBtb2RlOwotfTsKLQotfQot
Ci1zdGF0aWMgYm9vbCBUZXN0S0FUKEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsKLSAgVGVzdEN0
eCAqY3R4ID0gcmVpbnRlcnByZXRfY2FzdDxUZXN0Q3R4ICo+KGFyZyk7Ci0KLSAgaWYgKHQtPkhh
c0luc3RydWN0aW9uKCJFTkNSWVBUIikgPT0gdC0+SGFzSW5zdHJ1Y3Rpb24oIkRFQ1JZUFQiKSkg
ewotICAgIHQtPlByaW50TGluZSgiV2FudCBlaXRoZXIgRU5DUllQVCBvciBERUNSWVBUIik7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIGVudW0gewotICAgIGtFbmNyeXB0LAotICAgIGtEZWNy
eXB0LAotICB9IG9wZXJhdGlvbiA9IHQtPkhhc0luc3RydWN0aW9uKCJFTkNSWVBUIikgPyBrRW5j
cnlwdCA6IGtEZWNyeXB0OwotCi0gIGlmICh0LT5IYXNBdHRyaWJ1dGUoIk51bUtleXMiKSkgewot
ICAgIC8vIEFub3RoZXIgZmlsZSBmb3JtYXQgcXVpcms6IE51bUtleXMgaXMgYSBzaW5nbGUgYXR0
cmlidXRlIGxpbmUgaW1tZWRpYXRlbHkKLSAgICAvLyBmb2xsb3dpbmcgYW4gaW5zdHJ1Y3Rpb24g
YW5kIHNob3VsZCBwcm9iYWJseSBoYXZlIGJlZW4gYW4gaW5zdHJ1Y3Rpb24KLSAgICAvLyBpbnN0
ZWFkLiBJZiBpdCBpcyBwcmVzZW50LCB0aGUgZmlsZSBoYXMgc2VwYXJhdGUgYXR0cmlidXRlcyAi
S0VZezEsMiwzfSIuCi0gICAgLy8gSWYgaXQgaXMgbm90LCB0aGUga2V5cyBhcmUgY29uY2F0ZW5h
dGVkIGluIGEgc2luZ2xlIGF0dHJpYnV0ZSAiS0VZcyIuCi0gICAgc3RkOjpzdHJpbmcgbnVtX2tl
eXM7Ci0gICAgdC0+R2V0QXR0cmlidXRlKCZudW1fa2V5cywgIk51bUtleXMiKTsKLSAgICB0LT5J
bmplY3RJbnN0cnVjdGlvbigiTnVtS2V5cyIsIG51bV9rZXlzKTsKLQotICAgIHN0ZDo6c3RyaW5n
IGhlYWRlciA9IG9wZXJhdGlvbiA9PSBrRW5jcnlwdCA/ICJbRU5DUllQVF0iIDogIltERUNSWVBU
XSI7Ci0gICAgcHJpbnRmKCIlc1xyXG5cclxuIiwgaGVhZGVyLmNfc3RyKCkpOwotCi0gICAgcmV0
dXJuIHRydWU7Ci0gIH0KLQotICBlbnVtIHsKLSAgICBrTm90UHJlc2VudCwKLSAgICBrVHdvLAot
ICAgIGtUaHJlZSwKLSAgfSBudW1fa2V5cyA9IGtOb3RQcmVzZW50OwotICBpZiAodC0+SGFzSW5z
dHJ1Y3Rpb24oIk51bUtleXMiKSkgewotICAgIHN0ZDo6c3RyaW5nIG51bV9rZXlzX3N0cjsKLSAg
ICB0LT5HZXRJbnN0cnVjdGlvbigmbnVtX2tleXNfc3RyLCAiTnVtS2V5cyIpOwotICAgIGNvbnN0
IGludCBuID0gc3RydG91bChudW1fa2V5c19zdHIuY19zdHIoKSwgbnVsbHB0ciwgMCk7Ci0gICAg
aWYgKG4gPT0gMikgewotICAgICAgbnVtX2tleXMgPSBrVHdvOwotICAgIH0gZWxzZSBpZiAobiA9
PSAzKSB7Ci0gICAgICBudW1fa2V5cyA9IGtUaHJlZTsKLSAgICB9IGVsc2UgewotICAgICAgdC0+
UHJpbnRMaW5lKCJpbnZhbGlkIE51bUtleXMgdmFsdWUiKTsKLSAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0gIH0KLQotICBzdGQ6OnN0cmluZyBjb3VudDsKLSAgc3RkOjp2ZWN0b3I8dWludDhf
dD4ga2V5cywga2V5MSwga2V5Miwga2V5MywgaXYsIGluLCByZXN1bHQ7Ci0gIGNvbnN0IHN0ZDo6
c3RyaW5nIGluX2xhYmVsID0KLSAgICAgIG9wZXJhdGlvbiA9PSBrRW5jcnlwdCA/ICJQTEFJTlRF
WFQiIDogIkNJUEhFUlRFWFQiOwotICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0gIGlmICghdC0+R2V0
QXR0cmlidXRlKCZjb3VudCwgIkNPVU5UIikgfHwKLSAgICAgIChudW1fa2V5cyA9PSAwICYmICF0
LT5HZXRCeXRlcygma2V5cywgIktFWXMiKSkgfHwKLSAgICAgIChudW1fa2V5cyA+IDAgJiYKLSAg
ICAgICAoIXQtPkdldEJ5dGVzKCZrZXkxLCAiS0VZMSIpIHx8Ci0gICAgICAgICF0LT5HZXRCeXRl
cygma2V5MiwgIktFWTIiKSB8fAotICAgICAgICAhdC0+R2V0Qnl0ZXMoJmtleTMsICJLRVkzIikp
KSB8fAotICAgICAgKGN0eC0+aGFzX2l2ICYmICF0LT5HZXRCeXRlcygmaXYsICJJViIpKSB8fAot
ICAgICAgIXQtPkdldEJ5dGVzKCZpbiwgaW5fbGFiZWwpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwot
ICB9Ci0gIC8vIGNsYW5nLWZvcm1hdCBvbgotICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBrZXk7Ci0g
IGlmIChudW1fa2V5cyAhPSBrTm90UHJlc2VudCkgewotICAgIGtleS5pbnNlcnQoa2V5LmVuZCgp
LCBrZXkxLmJlZ2luKCksIGtleTEuZW5kKCkpOwotICAgIGtleS5pbnNlcnQoa2V5LmVuZCgpLCBr
ZXkyLmJlZ2luKCksIGtleTIuZW5kKCkpOwotICAgIGlmIChudW1fa2V5cyA9PSBrVGhyZWUpIHsK
LSAgICAgIGtleS5pbnNlcnQoa2V5LmVuZCgpLCBrZXkzLmJlZ2luKCksIGtleTMuZW5kKCkpOwot
ICAgIH0KLSAgfSBlbHNlIHsKLSAgICBrZXkuaW5zZXJ0KGtleS5lbmQoKSwga2V5cy5iZWdpbigp
LCBrZXlzLmVuZCgpKTsKLSAgICBrZXkuaW5zZXJ0KGtleS5lbmQoKSwga2V5cy5iZWdpbigpLCBr
ZXlzLmVuZCgpKTsKLSAgICBrZXkuaW5zZXJ0KGtleS5lbmQoKSwga2V5cy5iZWdpbigpLCBrZXlz
LmVuZCgpKTsKLSAgfQotCi0gIGlmICghQ2lwaGVyT3BlcmF0aW9uKGN0eC0+Y2lwaGVyLCAmcmVz
dWx0LCBvcGVyYXRpb24gPT0ga0VuY3J5cHQsIGtleSwgaXYsCi0gICAgICAgICAgICAgICAgICAg
ICAgIGluKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIC8vIFRERVMgZmF4IGZpbGVz
IG91dHB1dCBmb3JtYXQgZGlmZmVycyBmcm9tIGZpbGUgdG8gZmlsZSwgYW5kIHRoZSBpbnB1dAot
ICAvLyBmb3JtYXQgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIG91dHB1dCwgc28gd2UgY29uc3Ry
dWN0IHRoZSBvdXRwdXQgbWFudWFsbHkKLSAgLy8gcmF0aGVyIHRoYW4gcHJpbnRpbmcgQ3VycmVu
dFRlc3RUb1N0cmluZygpLgotICBpZiAodC0+SXNBdE5ld0luc3RydWN0aW9uQmxvY2soKSAmJiBu
dW1fa2V5cyA9PSBrTm90UHJlc2VudCkgewotICAgIC8vIElmIE51bUtleXMgaXMgcHJlc2VudCwg
aGVhZGVyIGlzIHByaW50ZWQgd2hlbiBwYXJzaW5nIE51bUtleXMuCi0gICAgc3RkOjpzdHJpbmcg
aGVhZGVyID0gb3BlcmF0aW9uID09IGtFbmNyeXB0ID8gIltFTkNSWVBUXSIgOiAiW0RFQ1JZUFRd
IjsKLSAgICBwcmludGYoIiVzXHJcbiIsIGhlYWRlci5jX3N0cigpKTsKLSAgfQotICBjb25zdCBz
dGQ6OnN0cmluZyByZXN1bHRfbGFiZWwgPQotICAgICAgb3BlcmF0aW9uID09IGtFbmNyeXB0ID8g
IkNJUEhFUlRFWFQiIDogIlBMQUlOVEVYVCI7Ci0gIHByaW50ZigiQ09VTlQgPSAlc1xyXG4iLCBj
b3VudC5jX3N0cigpKTsKLSAgaWYgKG51bV9rZXlzID09IGtOb3RQcmVzZW50KSB7Ci0gICAgcHJp
bnRmKCJLRVlzID0gJXNcclxuIiwgRW5jb2RlSGV4KGtleXMuZGF0YSgpLCBrZXlzLnNpemUoKSku
Y19zdHIoKSk7Ci0gIH0gZWxzZSB7Ci0gICAgcHJpbnRmKCJLRVkxID0gJXNcclxuS0VZMiA9ICVz
XHJcbktFWTMgPSAlc1xyXG4iLAotICAgICAgICAgICBFbmNvZGVIZXgoa2V5MS5kYXRhKCksIGtl
eTEuc2l6ZSgpKS5jX3N0cigpLAotICAgICAgICAgICBFbmNvZGVIZXgoa2V5Mi5kYXRhKCksIGtl
eTIuc2l6ZSgpKS5jX3N0cigpLAotICAgICAgICAgICBFbmNvZGVIZXgoa2V5My5kYXRhKCksIGtl
eTMuc2l6ZSgpKS5jX3N0cigpKTsKLSAgfQotICBpZiAoY3R4LT5oYXNfaXYpIHsKLSAgICBwcmlu
dGYoIklWID0gJXNcclxuIiwgRW5jb2RlSGV4KGl2LmRhdGEoKSwgaXYuc2l6ZSgpKS5jX3N0cigp
KTsKLSAgfQotICBwcmludGYoIiVzID0gJXNcclxuIiwgaW5fbGFiZWwuY19zdHIoKSwKLSAgICAg
ICAgIEVuY29kZUhleChpbi5kYXRhKCksIGluLnNpemUoKSkuY19zdHIoKSk7Ci0gIHByaW50Zigi
JXMgPSAlc1xyXG5cclxuIiwgcmVzdWx0X2xhYmVsLmNfc3RyKCksCi0gICAgICAgICBFbmNvZGVI
ZXgocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSkuY19zdHIoKSk7Ci0KLSAgcmV0dXJuIHRy
dWU7Ci19Ci0KLS8vIFhPUktleVdpdGhPZGRQYXJpdHlMU0Igc2V0cyB8KmtleXwgdG8gfGtleXwg
WE9SIHx2YWx1ZXwgYW5kIHRoZW4gd3JpdGVzCi0vLyB0aGUgTFNCIG9mIGVhY2ggYnl0ZSB0byBl
c3RhYmxpc2ggb2RkIHBhcml0eSBmb3IgdGhhdCBieXRlLiBUaGlzIHBhcml0eS1iYXNlZAotLy8g
ZW1iZWRkZWQgb2YgYSBERVMga2V5IGludG8gNjQgYml0cyBpcyBhbiBvbGQgdHJhZGl0aW9uIGFu
ZCBzb21ldGhpbmcgdGhhdAotLy8gTklTVCdzIHRlc3RzIHJlcXVpcmUuCi1zdGF0aWMgdm9pZCBY
T1JLZXlXaXRoT2RkUGFyaXR5TFNCKHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICprZXksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhf
dD4gJnZhbHVlKSB7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5LT5zaXplKCk7IGkrKykg
ewotICAgIHVpbnQ4X3QgdiA9ICgqa2V5KVtpXSBeIHZhbHVlW2ldOwotCi0gICAgLy8gVXNlIExT
QiB0byBlc3RhYmxpc2ggb2RkIHBhcml0eS4KLSAgICB2IHw9IDB4MDE7Ci0gICAgZm9yICh1aW50
OF90IGogPSAxOyBqIDwgODsgaisrKSB7Ci0gICAgICB2IF49ICgodiA+PiBqKSAmIDB4MDEpOwot
ICAgIH0KLSAgICAoKmtleSlbaV0gPSB2OwotICB9Ci19Ci0KLXN0YXRpYyBib29sIFRlc3RNQ1Qo
RmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICBUZXN0Q3R4ICpjdHggPSByZWludGVycHJldF9j
YXN0PFRlc3RDdHggKj4oYXJnKTsKLQotICBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIkVOQ1JZUFQi
KSA9PSB0LT5IYXNJbnN0cnVjdGlvbigiREVDUllQVCIpKSB7Ci0gICAgdC0+UHJpbnRMaW5lKCJX
YW50IGVpdGhlciBFTkNSWVBUIG9yIERFQ1JZUFQiKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0K
LSAgZW51bSB7Ci0gICAga0VuY3J5cHQsCi0gICAga0RlY3J5cHQsCi0gIH0gb3BlcmF0aW9uID0g
dC0+SGFzSW5zdHJ1Y3Rpb24oIkVOQ1JZUFQiKSA/IGtFbmNyeXB0IDoga0RlY3J5cHQ7Ci0KLSAg
aWYgKHQtPkhhc0F0dHJpYnV0ZSgiTnVtS2V5cyIpKSB7Ci0gICAgLy8gQW5vdGhlciBmaWxlIGZv
cm1hdCBxdWlyazogTnVtS2V5cyBpcyBhIHNpbmdsZSBhdHRyaWJ1dGUgbGluZSBpbW1lZGlhdGVs
eQotICAgIC8vIGZvbGxvd2luZyBhbiBpbnN0cnVjdGlvbiBhbmQgc2hvdWxkIHByb2JhYmx5IGhh
dmUgYmVlbiBhbiBpbnN0cnVjdGlvbgotICAgIC8vIGluc3RlYWQuCi0gICAgc3RkOjpzdHJpbmcg
bnVtX2tleXM7Ci0gICAgdC0+R2V0QXR0cmlidXRlKCZudW1fa2V5cywgIk51bUtleXMiKTsKLSAg
ICB0LT5JbmplY3RJbnN0cnVjdGlvbigiTnVtS2V5cyIsIG51bV9rZXlzKTsKLSAgICByZXR1cm4g
dHJ1ZTsKLSAgfQotCi0gIGVudW0gewotICAgIGtUd28sCi0gICAga1RocmVlLAotICB9IG51bV9r
ZXlzOwotICBzdGQ6OnN0cmluZyBudW1fa2V5c19zdHI7Ci0gIGlmICghdC0+R2V0SW5zdHJ1Y3Rp
b24oJm51bV9rZXlzX3N0ciwgIk51bUtleXMiKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfSBl
bHNlIHsKLSAgICBjb25zdCBpbnQgbiA9IHN0cnRvdWwobnVtX2tleXNfc3RyLmNfc3RyKCksIG51
bGxwdHIsIDApOwotICAgIGlmIChuID09IDIpIHsKLSAgICAgIG51bV9rZXlzID0ga1R3bzsKLSAg
ICB9IGVsc2UgaWYgKG4gPT0gMykgewotICAgICAgbnVtX2tleXMgPSBrVGhyZWU7Ci0gICAgfSBl
bHNlIHsKLSAgICAgIHQtPlByaW50TGluZSgiaW52YWxpZCBOdW1LZXlzIHZhbHVlIik7Ci0gICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICB9Ci0KLSAgc3RkOjpzdHJpbmcgY291bnQ7Ci0gIHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleTEsIGtleTIsIGtleTMsIGl2LCBpbiwgcmVzdWx0OwotICBj
b25zdCBzdGQ6OnN0cmluZyBpbl9sYWJlbCA9Ci0gICAgICBvcGVyYXRpb24gPT0ga0VuY3J5cHQg
PyAiUExBSU5URVhUIiA6ICJDSVBIRVJURVhUIjsKLSAgLy8gY2xhbmctZm9ybWF0IG9mZgotICBp
ZiAoIXQtPkdldEJ5dGVzKCZrZXkxLCAiS0VZMSIpIHx8Ci0gICAgICAhdC0+R2V0Qnl0ZXMoJmtl
eTIsICJLRVkyIikgfHwKLSAgICAgICF0LT5HZXRCeXRlcygma2V5MywgIktFWTMiKSB8fAotICAg
ICAgKGN0eC0+aGFzX2l2ICYmICF0LT5HZXRCeXRlcygmaXYsICJJViIpKSB8fAotICAgICAgIXQt
PkdldEJ5dGVzKCZpbiwgaW5fbGFiZWwpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIC8v
IGNsYW5nLWZvcm1hdCBvbgotCi0gIGZvciAoaW50IGkgPSAwOyBpIDwgNDAwOyBpKyspIHsKLSAg
ICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBjdXJyZW50X2l2ID0gaXYsIGN1cnJlbnRfaW4gPSBpbiwg
cHJldl9yZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9wcmV2X3Jlc3VsdDsK
LQotICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleShrZXkxKTsKLSAgICBrZXkuaW5zZXJ0KGtl
eS5lbmQoKSwga2V5Mi5iZWdpbigpLCBrZXkyLmVuZCgpKTsKLSAgICBrZXkuaW5zZXJ0KGtleS5l
bmQoKSwga2V5My5iZWdpbigpLCBrZXkzLmVuZCgpKTsKLQotICAgIGZvciAoaW50IGogPSAwOyBq
IDwgMTAwMDA7IGorKykgewotICAgICAgcHJldl9wcmV2X3Jlc3VsdCA9IHByZXZfcmVzdWx0Owot
ICAgICAgcHJldl9yZXN1bHQgPSByZXN1bHQ7Ci0gICAgICBjb25zdCBFVlBfQ0lQSEVSICpjaXBo
ZXIgPSBjdHgtPmNpcGhlcjsKLSAgICAgIGlmICghQ2lwaGVyT3BlcmF0aW9uKGNpcGhlciwgJnJl
c3VsdCwgb3BlcmF0aW9uID09IGtFbmNyeXB0LCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50X2l2LCBjdXJyZW50X2luKSkgewotICAgICAgICB0LT5QcmludExpbmUoIkNp
cGhlck9wZXJhdGlvbiBmYWlsZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgfQot
ICAgICAgaWYgKGN0eC0+aGFzX2l2KSB7Ci0gICAgICAgIGlmIChvcGVyYXRpb24gPT0ga0VuY3J5
cHQpIHsKLSAgICAgICAgICBpZiAoaiA9PSAwKSB7Ci0gICAgICAgICAgICBjdXJyZW50X2luID0g
Y3VycmVudF9pdjsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY3VycmVudF9pbiA9
IHByZXZfcmVzdWx0OwotICAgICAgICAgIH0KLSAgICAgICAgICBjdXJyZW50X2l2ID0gcmVzdWx0
OwotICAgICAgICB9IGVsc2UgeyAgLy8gb3BlcmF0aW9uID09IGtEZWNyeXB0Ci0gICAgICAgICAg
Y3VycmVudF9pdiA9IGN1cnJlbnRfaW47Ci0gICAgICAgICAgY3VycmVudF9pbiA9IHJlc3VsdDsK
LSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgY3VycmVudF9pbiA9IHJlc3VsdDsK
LSAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBPdXRwdXQgcmVzdWx0IGZvciBDT1VOVCA9IGkuCi0g
ICAgY29uc3Qgc3RkOjpzdHJpbmcgcmVzdWx0X2xhYmVsID0KLSAgICAgICAgb3BlcmF0aW9uID09
IGtFbmNyeXB0ID8gIkNJUEhFUlRFWFQiIDogIlBMQUlOVEVYVCI7Ci0gICAgaWYgKGkgPT0gMCkg
ewotICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgb3BfbGFiZWwgPQotICAgICAgICAgIG9wZXJhdGlv
biA9PSBrRW5jcnlwdCA/ICJFTkNSWVBUIiA6ICJERUNSWVBUIjsKLSAgICAgIHByaW50ZigiWyVz
XVxuXG4iLCBvcF9sYWJlbC5jX3N0cigpKTsKLSAgICB9Ci0gICAgcHJpbnRmKCJDT1VOVCA9ICVk
XHJcbktFWTEgPSAlc1xyXG5LRVkyID0gJXNcclxuS0VZMyA9ICVzXHJcbiIsIGksCi0gICAgICAg
ICAgIEVuY29kZUhleChrZXkxLmRhdGEoKSwga2V5MS5zaXplKCkpLmNfc3RyKCksCi0gICAgICAg
ICAgIEVuY29kZUhleChrZXkyLmRhdGEoKSwga2V5Mi5zaXplKCkpLmNfc3RyKCksCi0gICAgICAg
ICAgIEVuY29kZUhleChrZXkzLmRhdGEoKSwga2V5My5zaXplKCkpLmNfc3RyKCkpOwotICAgIGlm
IChjdHgtPmhhc19pdikgewotICAgICAgcHJpbnRmKCJJViA9ICVzXHJcbiIsIEVuY29kZUhleChp
di5kYXRhKCksIGl2LnNpemUoKSkuY19zdHIoKSk7Ci0gICAgfQotICAgIHByaW50ZigiJXMgPSAl
c1xyXG4iLCBpbl9sYWJlbC5jX3N0cigpLAotICAgICAgICAgICBFbmNvZGVIZXgoaW4uZGF0YSgp
LCBpbi5zaXplKCkpLmNfc3RyKCkpOwotICAgIHByaW50ZigiJXMgPSAlc1xyXG5cclxuIiwgcmVz
dWx0X2xhYmVsLmNfc3RyKCksCi0gICAgICAgICAgIEVuY29kZUhleChyZXN1bHQuZGF0YSgpLCBy
ZXN1bHQuc2l6ZSgpKS5jX3N0cigpKTsKLQotCi0gICAgWE9SS2V5V2l0aE9kZFBhcml0eUxTQigm
a2V5MSwgcmVzdWx0KTsKLSAgICBYT1JLZXlXaXRoT2RkUGFyaXR5TFNCKCZrZXkyLCBwcmV2X3Jl
c3VsdCk7Ci0gICAgaWYgKG51bV9rZXlzID09IGtUaHJlZSkgewotICAgICAgWE9SS2V5V2l0aE9k
ZFBhcml0eUxTQigma2V5MywgcHJldl9wcmV2X3Jlc3VsdCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
IFhPUktleVdpdGhPZGRQYXJpdHlMU0IoJmtleTMsIHJlc3VsdCk7Ci0gICAgfQotCi0gICAgaWYg
KGN0eC0+aGFzX2l2KSB7Ci0gICAgICBpZiAob3BlcmF0aW9uID09IGtFbmNyeXB0KSB7Ci0gICAg
ICAgIGluID0gcHJldl9yZXN1bHQ7Ci0gICAgICAgIGl2ID0gcmVzdWx0OwotICAgICAgfSBlbHNl
IHsKLSAgICAgICAgaXYgPSBjdXJyZW50X2l2OwotICAgICAgICBpbiA9IGN1cnJlbnRfaW47Ci0g
ICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGluID0gcmVzdWx0OwotICAgIH0KLSAgfQotCi0g
IHJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgaW50IHVzYWdlKGNoYXIgKmFyZykgewotICBmcHJp
bnRmKHN0ZGVyciwgInVzYWdlOiAlcyAoa2F0fG1jdCkgPGNpcGhlcj4gPHRlc3QgZmlsZT5cbiIs
IGFyZyk7Ci0gIHJldHVybiAxOwotfQotCi1pbnQgY2F2cF90ZGVzX3Rlc3RfbWFpbihpbnQgYXJn
YywgY2hhciAqKmFyZ3YpIHsKLSAgaWYgKGFyZ2MgIT0gNCkgewotICAgIHJldHVybiB1c2FnZShh
cmd2WzBdKTsKLSAgfQotCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIHRtKGFyZ3ZbMV0pOwotICBlbnVt
IFRlc3RDdHg6Ok1vZGUgdGVzdF9tb2RlOwotICBpZiAodG0gPT0gImthdCIpIHsKLSAgICB0ZXN0
X21vZGUgPSBUZXN0Q3R4OjprS0FUOwotICB9IGVsc2UgaWYgKHRtID09ICJtY3QiKSB7Ci0gICAg
dGVzdF9tb2RlID0gVGVzdEN0eDo6a01DVDsKLSAgfSBlbHNlIHsKLSAgICBmcHJpbnRmKHN0ZGVy
ciwgImludmFsaWQgdGVzdF9tb2RlOiAlc1xuIiwgdG0uY19zdHIoKSk7Ci0gICAgcmV0dXJuIHVz
YWdlKGFyZ3ZbMF0pOwotICB9Ci0KLSAgY29uc3Qgc3RkOjpzdHJpbmcgY2lwaGVyX25hbWUoYXJn
dlsyXSk7Ci0gIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlciA9IEdldENpcGhlcihhcmd2WzJdKTsK
LSAgaWYgKGNpcGhlciA9PSBudWxscHRyKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJpbnZhbGlk
IGNpcGhlcjogJXNcbiIsIGFyZ3ZbMl0pOwotICAgIHJldHVybiAxOwotICB9Ci0gIGJvb2wgaGFz
X2l2ID0gY2lwaGVyX25hbWUgIT0gImRlcy1lZGUiICYmIGNpcGhlcl9uYW1lICE9ICJkZXMtZWRl
MyI7Ci0gIFRlc3RDdHggY3R4ID0ge2NpcGhlciwgaGFzX2l2LCB0ZXN0X21vZGV9OwotCi0gIEZp
bGVUZXN0RnVuYyB0ZXN0X2ZuID0gdGVzdF9tb2RlID09IFRlc3RDdHg6OmtLQVQgPyAmVGVzdEtB
VCA6ICZUZXN0TUNUOwotICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRzOwotICBvcHRzLnBhdGggPSBh
cmd2WzNdOwotICBvcHRzLmNhbGxiYWNrID0gdGVzdF9mbjsKLSAgb3B0cy5hcmcgPSAmY3R4Owot
ICBvcHRzLnNpbGVudCA9IHRydWU7Ci0gIG9wdHMuY29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21t
ZW50OwotICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2Zp
cHN0b29scy9jYXZwX3Rlc3RfdXRpbC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF90ZXN0X3V0aWwu
Y2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3YTNiOTIxYTg2YjdiMjA1ZGZjMTUw
MjYwNjY2MzJlOTZjOWFmNzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX3Rlc3RfdXRpbC5jYworKysgL2Rldi9udWxsCkBA
IC0xLDIzMSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgot
ICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhp
cyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVy
ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlN
UyBBTEwgV0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJ
TkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBT
UEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5Z
IERBTUFHRVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEg
T1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdF
TkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENP
Tk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICov
Ci0KLSNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgotCi0jaW5jbHVkZSA8b3BlbnNzbC9ibi5o
PgotI2luY2x1ZGUgPG9wZW5zc2wvZGlnZXN0Lmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9lYy5oPgot
I2luY2x1ZGUgPG9wZW5zc2wvbmlkLmg+Ci0KLQotc3RkOjpzdHJpbmcgRW5jb2RlSGV4KGNvbnN0
IHVpbnQ4X3QgKmluLCBzaXplX3QgaW5fbGVuKSB7Ci0gIHN0YXRpYyBjb25zdCBjaGFyIGtIZXhE
aWdpdHNbXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKLSAgc3RkOjpzdHJpbmcgcmV0OwotICByZXQu
cmVzZXJ2ZShpbl9sZW4gKiAyKTsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbl9sZW47IGkr
KykgewotICAgIHJldCArPSBrSGV4RGlnaXRzW2luW2ldID4+IDRdOwotICAgIHJldCArPSBrSGV4
RGlnaXRzW2luW2ldICYgMHhmXTsKLSAgfQotICByZXR1cm4gcmV0OwotfQotCi1jb25zdCBFVlBf
Q0lQSEVSICpHZXRDaXBoZXIoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUpIHsKLSAgaWYgKG5hbWUg
PT0gImRlcy1jYmMiKSB7Ci0gICAgcmV0dXJuIEVWUF9kZXNfY2JjKCk7Ci0gIH0gZWxzZSBpZiAo
bmFtZSA9PSAiZGVzLWVjYiIpIHsKLSAgICByZXR1cm4gRVZQX2Rlc19lY2IoKTsKLSAgfSBlbHNl
IGlmIChuYW1lID09ICJkZXMtZWRlIikgewotICAgIHJldHVybiBFVlBfZGVzX2VkZSgpOwotICB9
IGVsc2UgaWYgKG5hbWUgPT0gImRlcy1lZGUzIikgewotICAgIHJldHVybiBFVlBfZGVzX2VkZTMo
KTsKLSAgfSBlbHNlIGlmIChuYW1lID09ICJkZXMtZWRlLWNiYyIpIHsKLSAgICByZXR1cm4gRVZQ
X2Rlc19lZGVfY2JjKCk7Ci0gIH0gZWxzZSBpZiAobmFtZSA9PSAiZGVzLWVkZTMtY2JjIikgewot
ICAgIHJldHVybiBFVlBfZGVzX2VkZTNfY2JjKCk7Ci0gIH0gZWxzZSBpZiAobmFtZSA9PSAicmM0
IikgewotICAgIHJldHVybiBFVlBfcmM0KCk7Ci0gIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVzLTEy
OC1lY2IiKSB7Ci0gICAgcmV0dXJuIEVWUF9hZXNfMTI4X2VjYigpOwotICB9IGVsc2UgaWYgKG5h
bWUgPT0gImFlcy0yNTYtZWNiIikgewotICAgIHJldHVybiBFVlBfYWVzXzI1Nl9lY2IoKTsKLSAg
fSBlbHNlIGlmIChuYW1lID09ICJhZXMtMTI4LWNiYyIpIHsKLSAgICByZXR1cm4gRVZQX2Flc18x
MjhfY2JjKCk7Ci0gIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVzLTEyOC1nY20iKSB7Ci0gICAgcmV0
dXJuIEVWUF9hZXNfMTI4X2djbSgpOwotICB9IGVsc2UgaWYgKG5hbWUgPT0gImFlcy0xMjgtb2Zi
IikgewotICAgIHJldHVybiBFVlBfYWVzXzEyOF9vZmIoKTsKLSAgfSBlbHNlIGlmIChuYW1lID09
ICJhZXMtMTkyLWNiYyIpIHsKLSAgICByZXR1cm4gRVZQX2Flc18xOTJfY2JjKCk7Ci0gIH0gZWxz
ZSBpZiAobmFtZSA9PSAiYWVzLTE5Mi1jdHIiKSB7Ci0gICAgcmV0dXJuIEVWUF9hZXNfMTkyX2N0
cigpOwotICB9IGVsc2UgaWYgKG5hbWUgPT0gImFlcy0xOTItZWNiIikgewotICAgIHJldHVybiBF
VlBfYWVzXzE5Ml9lY2IoKTsKLSAgfSBlbHNlIGlmIChuYW1lID09ICJhZXMtMjU2LWNiYyIpIHsK
LSAgICByZXR1cm4gRVZQX2Flc18yNTZfY2JjKCk7Ci0gIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVz
LTEyOC1jdHIiKSB7Ci0gICAgcmV0dXJuIEVWUF9hZXNfMTI4X2N0cigpOwotICB9IGVsc2UgaWYg
KG5hbWUgPT0gImFlcy0yNTYtY3RyIikgewotICAgIHJldHVybiBFVlBfYWVzXzI1Nl9jdHIoKTsK
LSAgfSBlbHNlIGlmIChuYW1lID09ICJhZXMtMjU2LWdjbSIpIHsKLSAgICByZXR1cm4gRVZQX2Fl
c18yNTZfZ2NtKCk7Ci0gIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVzLTI1Ni1vZmIiKSB7Ci0gICAg
cmV0dXJuIEVWUF9hZXNfMjU2X29mYigpOwotICB9Ci0gIHJldHVybiBudWxscHRyOwotfQotCi1i
b29sIENpcGhlck9wZXJhdGlvbihjb25zdCBFVlBfQ0lQSEVSICpjaXBoZXIsIHN0ZDo6dmVjdG9y
PHVpbnQ4X3Q+ICpvdXQsCi0gICAgICAgICAgICAgICAgICAgICBib29sIGVuY3J5cHQsIGNvbnN0
IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZrZXksCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBz
dGQ6OnZlY3Rvcjx1aW50OF90PiAmaXYsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6
OnZlY3Rvcjx1aW50OF90PiAmaW4pIHsKLSAgYnNzbDo6U2NvcGVkRVZQX0NJUEhFUl9DVFggY3R4
OwotICBpZiAoIUVWUF9DaXBoZXJJbml0X2V4KGN0eC5nZXQoKSwgY2lwaGVyLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgIGVuY3J5cHQgPyAxIDog
MCkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgaWYgKCFpdi5lbXB0eSgpICYmIGl2LnNp
emUoKSAhPSBFVlBfQ0lQSEVSX0NUWF9pdl9sZW5ndGgoY3R4LmdldCgpKSkgewotICAgIHJldHVy
biBmYWxzZTsKLSAgfQotCi0gIGludCByZXN1bHRfbGVuMSA9IDAsIHJlc3VsdF9sZW4yOwotICAq
b3V0ID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oaW4uc2l6ZSgpKTsKLSAgaWYgKCFFVlBfQ0lQSEVS
X0NUWF9zZXRfa2V5X2xlbmd0aChjdHguZ2V0KCksIGtleS5zaXplKCkpIHx8Ci0gICAgICAhRVZQ
X0NpcGhlckluaXRfZXgoY3R4LmdldCgpLCBudWxscHRyLCBudWxscHRyLCBrZXkuZGF0YSgpLCBp
di5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgLTEpIHx8Ci0gICAgICAhRVZQX0NJ
UEhFUl9DVFhfc2V0X3BhZGRpbmcoY3R4LmdldCgpLCAwKSB8fAotICAgICAgIUVWUF9DaXBoZXJV
cGRhdGUoY3R4LmdldCgpLCBvdXQtPmRhdGEoKSwgJnJlc3VsdF9sZW4xLCBpbi5kYXRhKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBpbi5zaXplKCkpIHx8Ci0gICAgICAhRVZQX0NpcGhlckZp
bmFsX2V4KGN0eC5nZXQoKSwgb3V0LT5kYXRhKCkgKyByZXN1bHRfbGVuMSwgJnJlc3VsdF9sZW4y
KSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBvdXQtPnJlc2l6ZShyZXN1bHRfbGVuMSAr
IHJlc3VsdF9sZW4yKTsKLQotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBRUFERW5jcnlwdChj
b25zdCBFVlBfQUVBRCAqYWVhZCwgc3RkOjp2ZWN0b3I8dWludDhfdD4gKmN0LAotICAgICAgICAg
ICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiAqdGFnLCBzaXplX3QgdGFnX2xlbiwKLSAgICAg
ICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJmtleSwKLSAgICAgICAgICAg
ICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJnB0LAotICAgICAgICAgICAgICAgICBj
b25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAmYWFkLAotICAgICAgICAgICAgICAgICBjb25zdCBz
dGQ6OnZlY3Rvcjx1aW50OF90PiAmaXYpIHsKLSAgYnNzbDo6U2NvcGVkRVZQX0FFQURfQ1RYIGN0
eDsKLSAgaWYgKCFFVlBfQUVBRF9DVFhfaW5pdChjdHguZ2V0KCksIGFlYWQsIGtleS5kYXRhKCks
IGtleS5zaXplKCksIHRhZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0cikp
IHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBvdXQ7
Ci0gIG91dC5yZXNpemUocHQuc2l6ZSgpICsgRVZQX0FFQURfbWF4X292ZXJoZWFkKGFlYWQpKTsK
LSAgc2l6ZV90IG91dF9sZW47Ci0gIGlmICghRVZQX0FFQURfQ1RYX3NlYWwoY3R4LmdldCgpLCBv
dXQuZGF0YSgpLCAmb3V0X2xlbiwgb3V0LnNpemUoKSwgaXYuZGF0YSgpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGl2LnNpemUoKSwgcHQuZGF0YSgpLCBwdC5zaXplKCksIGFhZC5kYXRhKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYWFkLnNpemUoKSkpIHsKLSAgICByZXR1cm4gZmFs
c2U7Ci0gIH0KLSAgb3V0LnJlc2l6ZShvdXRfbGVuKTsKLQotICBjdC0+YXNzaWduKG91dC5iZWdp
bigpLCBvdXQuZW5kKCkgLSB0YWdfbGVuKTsKLSAgdGFnLT5hc3NpZ24ob3V0LmVuZCgpIC0gdGFn
X2xlbiwgb3V0LmVuZCgpKTsKLQotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBRUFERGVjcnlw
dChjb25zdCBFVlBfQUVBRCAqYWVhZCwgc3RkOjp2ZWN0b3I8dWludDhfdD4gKnB0LCBzaXplX3Qg
cHRfbGVuLAotICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAma2V5
LAotICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAmYWFkLAotICAg
ICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAmY3QsCi0gICAgICAgICAg
ICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZ0YWcsCi0gICAgICAgICAgICAgICAg
IGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZpdikgewotICBic3NsOjpTY29wZWRFVlBfQUVB
RF9DVFggY3R4OwotICBpZiAoIUVWUF9BRUFEX0NUWF9pbml0X3dpdGhfZGlyZWN0aW9uKGN0eC5n
ZXQoKSwgYWVhZCwga2V5LmRhdGEoKSwga2V5LnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YWcuc2l6ZSgpLCBldnBfYWVhZF9vcGVuKSkgewotICAgIHJl
dHVybiBmYWxzZTsKLSAgfQotICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBpbiA9IGN0OwotICBpbi5y
ZXNlcnZlKGN0LnNpemUoKSArIHRhZy5zaXplKCkpOwotICBpbi5pbnNlcnQoaW4uZW5kKCksIHRh
Zy5iZWdpbigpLCB0YWcuZW5kKCkpOwotCi0gIHB0LT5yZXNpemUocHRfbGVuKTsKLSAgc2l6ZV90
IG91dF9wdF9sZW47Ci0gIGlmICghRVZQX0FFQURfQ1RYX29wZW4oY3R4LmdldCgpLCBwdC0+ZGF0
YSgpLCAmb3V0X3B0X2xlbiwgcHQtPnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBp
di5kYXRhKCksIGl2LnNpemUoKSwgaW4uZGF0YSgpLCBpbi5zaXplKCksIGFhZC5kYXRhKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgYWFkLnNpemUoKSkgfHwKLSAgICAgIG91dF9wdF9sZW4g
IT0gcHRfbGVuKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQot
Ci1zdGF0aWMgaW50IEhleFRvQklHTlVNKGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+ICpvdXQsIGNv
bnN0IGNoYXIgKmluKSB7Ci0gIEJJR05VTSAqcmF3ID0gTlVMTDsKLSAgaW50IHJldCA9IEJOX2hl
eDJibigmcmF3LCBpbik7Ci0gIG91dC0+cmVzZXQocmF3KTsKLSAgcmV0dXJuIHJldDsKLX0KLQot
YnNzbDo6VW5pcXVlUHRyPEJJR05VTT4gR2V0QklHTlVNKEZpbGVUZXN0ICp0LCBjb25zdCBjaGFy
ICphdHRyaWJ1dGUpIHsKLSAgc3RkOjpzdHJpbmcgaGV4OwotICBpZiAoIXQtPkdldEF0dHJpYnV0
ZSgmaGV4LCBhdHRyaWJ1dGUpKSB7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci0gIH0KLQotICBic3Ns
OjpVbmlxdWVQdHI8QklHTlVNPiByZXQ7Ci0gIGlmIChIZXhUb0JJR05VTSgmcmV0LCBoZXguY19z
dHIoKSkgIT0gc3RhdGljX2Nhc3Q8aW50PihoZXguc2l6ZSgpKSkgewotICAgIHQtPlByaW50TGlu
ZSgiQ291bGQgbm90IGRlY29kZSAnJXMnLiIsIGhleC5jX3N0cigpKTsKLSAgICByZXR1cm4gbnVs
bHB0cjsKLSAgfQotICByZXR1cm4gcmV0OwotfQotCi1pbnQgR2V0RUNHcm91cE5JREZyb21JbnN0
cnVjdGlvbihGaWxlVGVzdCAqdCwgY29uc3QgY2hhciAqKm91dF9zdHIpIHsKLSAgY29uc3QgY2hh
ciAqZHVtbXk7Ci0gIGlmIChvdXRfc3RyID09IG51bGxwdHIpIHsKLSAgICBvdXRfc3RyID0gJmR1
bW15OwotICB9Ci0KLSAgaWYgKHQtPkhhc0luc3RydWN0aW9uKCJQLTIyNCIpKSB7Ci0gICAgKm91
dF9zdHIgPSAiUC0yMjQiOwotICAgIHJldHVybiBOSURfc2VjcDIyNHIxOwotICB9Ci0gIGlmICh0
LT5IYXNJbnN0cnVjdGlvbigiUC0yNTYiKSkgewotICAgICpvdXRfc3RyID0gIlAtMjU2IjsKLSAg
ICByZXR1cm4gTklEX1g5XzYyX3ByaW1lMjU2djE7Ci0gIH0KLSAgaWYgKHQtPkhhc0luc3RydWN0
aW9uKCJQLTM4NCIpKSB7Ci0gICAgKm91dF9zdHIgPSAiUC0zODQiOwotICAgIHJldHVybiBOSURf
c2VjcDM4NHIxOwotICB9Ci0gIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiUC01MjEiKSkgewotICAg
ICpvdXRfc3RyID0gIlAtNTIxIjsKLSAgICByZXR1cm4gTklEX3NlY3A1MjFyMTsKLSAgfQotICB0
LT5QcmludExpbmUoIk5vIHN1cHBvcnRlZCBncm91cCBzcGVjaWZpZWQuIik7Ci0gIHJldHVybiBO
SURfdW5kZWY7Ci19Ci0KLWNvbnN0IEVWUF9NRCAqR2V0RGlnZXN0RnJvbUluc3RydWN0aW9uKEZp
bGVUZXN0ICp0KSB7Ci0gIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiU0hBLTEiKSkgewotICAgIHJl
dHVybiBFVlBfc2hhMSgpOwotICB9Ci0gIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiU0hBLTIyNCIp
KSB7Ci0gICAgcmV0dXJuIEVWUF9zaGEyMjQoKTsKLSAgfQotICBpZiAodC0+SGFzSW5zdHJ1Y3Rp
b24oIlNIQS0yNTYiKSkgewotICAgIHJldHVybiBFVlBfc2hhMjU2KCk7Ci0gIH0KLSAgaWYgKHQt
Pkhhc0luc3RydWN0aW9uKCJTSEEtMzg0IikpIHsKLSAgICByZXR1cm4gRVZQX3NoYTM4NCgpOwot
ICB9Ci0gIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiU0hBLTUxMiIpKSB7Ci0gICAgcmV0dXJuIEVW
UF9zaGE1MTIoKTsKLSAgfQotICB0LT5QcmludExpbmUoIk5vIHN1cHBvcnRlZCBkaWdlc3QgZnVu
Y3Rpb24gc3BlY2lmaWVkLiIpOwotICByZXR1cm4gbnVsbHB0cjsKLX0KLQotdm9pZCBFY2hvQ29t
bWVudChjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCkgewotICBmd3JpdGUoY29tbWVudC5jX3N0
cigpLCBjb21tZW50LnNpemUoKSwgMSwgc3Rkb3V0KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBz
dG9vbHMvY2F2cF90ZXN0X3V0aWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF90ZXN0X3V0aWwuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E5ZTc5MGNiNzc3MWE3ZDM5YTI2MmYyZmI1
YmY4MzM5ZWFjZTFiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvZmlwc3Rvb2xzL2NhdnBfdGVzdF91dGlsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3
OCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgotICogUGVy
bWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0
d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdy
YW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBT
T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwg
V0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxM
IElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFM
LCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFH
RVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJP
RklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9S
IE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJ
T04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCi0KLSNp
Zm5kZWYgT1BFTlNTTF9IRUFERVJfQ1JZUFRPX0ZJUFNNT0RVTEVfQ0FWUF9URVNUX1VUSUxfSAot
I2RlZmluZSBPUEVOU1NMX0hFQURFUl9DUllQVE9fRklQU01PRFVMRV9DQVZQX1RFU1RfVVRJTF9I
Ci0KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0jaW5jbHVkZSA8dmVj
dG9yPgotCi0jaW5jbHVkZSA8b3BlbnNzbC9hZWFkLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9jaXBo
ZXIuaD4KLQotI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgotCi0KLXN0ZDo6
c3RyaW5nIEVuY29kZUhleChjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGluX2xlbik7Ci0KLWNv
bnN0IEVWUF9DSVBIRVIgKkdldENpcGhlcihjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSk7Ci0KLWJv
b2wgQ2lwaGVyT3BlcmF0aW9uKGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlciwgc3RkOjp2ZWN0b3I8
dWludDhfdD4gKm91dCwKLSAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5jcnlwdCwgY29uc3Qg
c3RkOjp2ZWN0b3I8dWludDhfdD4gJmtleSwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZpdiwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6
dmVjdG9yPHVpbnQ4X3Q+ICZpbik7Ci0KLWJvb2wgQUVBREVuY3J5cHQoY29uc3QgRVZQX0FFQUQg
KmFlYWQsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICpjdCwKLSAgICAgICAgICAgICAgICAgc3RkOjp2
ZWN0b3I8dWludDhfdD4gKnRhZywgc2l6ZV90IHRhZ19sZW4sCi0gICAgICAgICAgICAgICAgIGNv
bnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZrZXksCi0gICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZwdCwKLSAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0
b3I8dWludDhfdD4gJmFhZCwKLSAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gJml2KTsKLQotYm9vbCBBRUFERGVjcnlwdChjb25zdCBFVlBfQUVBRCAqYWVhZCwgc3Rk
Ojp2ZWN0b3I8dWludDhfdD4gKnB0LCBzaXplX3QgcHRfbGVuLAotICAgICAgICAgICAgICAgICBj
b25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAma2V5LAotICAgICAgICAgICAgICAgICBjb25zdCBz
dGQ6OnZlY3Rvcjx1aW50OF90PiAmYWFkLAotICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZl
Y3Rvcjx1aW50OF90PiAmY3QsCi0gICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVp
bnQ4X3Q+ICZ0YWcsCi0gICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+
ICZpdik7Ci0KLWJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IEdldEJJR05VTShGaWxlVGVzdCAqdCwg
Y29uc3QgY2hhciAqYXR0cmlidXRlKTsKLQotaW50IEdldEVDR3JvdXBOSURGcm9tSW5zdHJ1Y3Rp
b24oRmlsZVRlc3QgKnQsIGNvbnN0IGNoYXIgKipvdXRfc3RyID0gbnVsbHB0cik7Ci0KLWNvbnN0
IEVWUF9NRCAqR2V0RGlnZXN0RnJvbUluc3RydWN0aW9uKEZpbGVUZXN0ICp0KTsKLQotdm9pZCBF
Y2hvQ29tbWVudChjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCk7Ci0KLWludCBjYXZwX2Flc19n
Y21fdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7Ci1pbnQgY2F2cF9hZXNfdGVzdF9t
YWluKGludCBhcmdjLCBjaGFyICoqYXJndik7Ci1pbnQgY2F2cF9jdHJfZHJiZ190ZXN0X21haW4o
aW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKLWludCBjYXZwX2VjZHNhMl9rZXlwYWlyX3Rlc3RfbWFp
bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwotaW50IGNhdnBfZWNkc2EyX3Brdl90ZXN0X21haW4o
aW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKLWludCBjYXZwX2VjZHNhMl9zaWdnZW5fdGVzdF9tYWlu
KGludCBhcmdjLCBjaGFyICoqYXJndik7Ci1pbnQgY2F2cF9lY2RzYTJfc2lndmVyX3Rlc3RfbWFp
bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwotaW50IGNhdnBfaG1hY190ZXN0X21haW4oaW50IGFy
Z2MsIGNoYXIgKiphcmd2KTsKLWludCBjYXZwX2thc190ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIg
Kiphcmd2KTsKLWludCBjYXZwX2tleXdyYXBfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJn
dik7Ci1pbnQgY2F2cF9yc2EyX2tleWdlbl90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2
KTsKLWludCBjYXZwX3JzYTJfc2lnZ2VuX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
OwotaW50IGNhdnBfcnNhMl9zaWd2ZXJfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7
Ci1pbnQgY2F2cF9zaGFfbW9udGVfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7Ci1p
bnQgY2F2cF9zaGFfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7Ci1pbnQgY2F2cF90
ZGVzX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwotaW50IGNhdnBfdGxza2RmX3Rl
c3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwotCi0KLSNlbmRpZiAgLy8gT1BFTlNTTF9I
RUFERVJfQ1JZUFRPX0ZJUFNNT0RVTEVfQ0FWUF9URVNUX1VUSUxfSApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2ZpcHN0b29scy9jYXZwX3Rsc2tkZl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9jYXZwX3Rsc2tk
Zl90ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWYyZDQ3YzQ4MTAzOTY4
MGY3NDY4YTJlNzA4ZDRmNzk2MGM5ZDgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvY2F2cF90bHNrZGZfdGVzdC5jYworKysgL2Rl
di9udWxsCkBAIC0xLDExMyArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTgsIEdvb2dsZSBJ
bmMuCi0gKgotICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3Ry
aWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBm
ZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVz
LgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9S
IERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FS
RSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgT1IgQU5ZIERBTUFHRVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBV
U0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNU
LCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1Ig
SU4KLSAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09G
VFdBUkUuICovCi0KLS8vIGNhdnBfdGxza2RmX3Rlc3QgcHJvY2Vzc2VzIE5JU1QgVExTIEtERiB0
ZXN0IHZlY3RvcnMgYW5kIGVtaXRzIHRoZQotLy8gY29ycmVzcG9uZGluZyByZXNwb25zZS4KLS8v
IFNlZSBodHRwczovL2NzcmMubmlzdC5nb3YvQ1NSQy9tZWRpYS9Qcm9qZWN0cy9DcnlwdG9ncmFw
aGljLUFsZ29yaXRobS1WYWxpZGF0aW9uLVByb2dyYW0vZG9jdW1lbnRzL2NvbXBvbmVudHMvYXNr
ZGZ2cy5wZGYsIHNlY3Rpb24gNi40LgotCi0jaW5jbHVkZSA8dmVjdG9yPgotCi0jaW5jbHVkZSA8
ZXJybm8uaD4KLQotI2luY2x1ZGUgPG9wZW5zc2wvZGlnZXN0Lmg+Ci0KLSNpbmNsdWRlICJjYXZw
X3Rlc3RfdXRpbC5oIgotI2luY2x1ZGUgIi4uL2NyeXB0by9maXBzbW9kdWxlL3Rscy9pbnRlcm5h
bC5oIgotI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgotCi0KLXN0YXRpYyBi
b29sIFRlc3RUTFNLREYoRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgewotICBjb25zdCBFVlBfTUQg
Km1kID0gbnVsbHB0cjsKLQotICBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIlRMUyAxLjAvMS4xIikp
IHsKLSAgICBtZCA9IEVWUF9tZDVfc2hhMSgpOwotICB9IGVsc2UgaWYgKHQtPkhhc0luc3RydWN0
aW9uKCJUTFMgMS4yIikpIHsKLSAgICBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIlNIQS0yNTYiKSkg
ewotICAgICAgbWQgPSBFVlBfc2hhMjU2KCk7Ci0gICAgfSBlbHNlIGlmICh0LT5IYXNJbnN0cnVj
dGlvbigiU0hBLTM4NCIpKSB7Ci0gICAgICBtZCA9IEVWUF9zaGEzODQoKTsKLSAgICB9IGVsc2Ug
aWYgKHQtPkhhc0luc3RydWN0aW9uKCJTSEEtNTEyIikpIHsKLSAgICAgIG1kID0gRVZQX3NoYTUx
MigpOwotICAgIH0KLSAgfQotCi0gIGlmIChtZCA9PSBudWxscHRyKSB7Ci0gICAgcmV0dXJuIGZh
bHNlOwotICB9Ci0KLSAgc3RkOjpzdHJpbmcga2V5X2Jsb2NrX2xlbl9zdHI7Ci0gIHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+IHByZW1hc3Rlciwgc2VydmVyX3JhbmRvbSwgY2xpZW50X3JhbmRvbSwKLSAg
ICAgIGtleV9ibG9ja19zZXJ2ZXJfcmFuZG9tLCBrZXlfYmxvY2tfY2xpZW50X3JhbmRvbTsKLSAg
aWYgKCF0LT5HZXRCeXRlcygmcHJlbWFzdGVyLCAicHJlX21hc3Rlcl9zZWNyZXQiKSB8fAotICAg
ICAgIXQtPkdldEJ5dGVzKCZzZXJ2ZXJfcmFuZG9tLCAic2VydmVySGVsbG9fcmFuZG9tIikgfHwK
LSAgICAgICF0LT5HZXRCeXRlcygmY2xpZW50X3JhbmRvbSwgImNsaWVudEhlbGxvX3JhbmRvbSIp
IHx8Ci0gICAgICAvLyBUaGUgTklTVCB0ZXN0cyBzcGVjaWZ5IGRpZmZlcmVudCBjbGllbnQgYW5k
IHNlcnZlciByYW5kb21zIGZvciB0aGUKLSAgICAgIC8vIGV4cGFuc2lvbiBzdGVwIGZyb20gdGhl
IG1hc3Rlci1zZWNyZXQgc3RlcC4gVGhpcyBpcyBpbXBvc3NpYmxlIGluIFRMUy4KLSAgICAgICF0
LT5HZXRCeXRlcygma2V5X2Jsb2NrX3NlcnZlcl9yYW5kb20sICJzZXJ2ZXJfcmFuZG9tIikgfHwK
LSAgICAgICF0LT5HZXRCeXRlcygma2V5X2Jsb2NrX2NsaWVudF9yYW5kb20sICJjbGllbnRfcmFu
ZG9tIikgfHwKLSAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigma2V5X2Jsb2NrX2xlbl9zdHIsICJr
ZXkgYmxvY2sgbGVuZ3RoIikgfHwKLSAgICAgIC8vIFRoZXNlIGFyZSBpZ25vcmVkLgotICAgICAg
IXQtPkhhc0F0dHJpYnV0ZSgiQ09VTlQiKSB8fAotICAgICAgIXQtPkhhc0luc3RydWN0aW9uKCJw
cmUtbWFzdGVyIHNlY3JldCBsZW5ndGgiKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0g
IHVpbnQ4X3QgbWFzdGVyX3NlY3JldFs0OF07Ci0gIHN0YXRpYyBjb25zdCBjaGFyIGtNYXN0ZXJT
ZWNyZXRMYWJlbFtdID0gIm1hc3RlciBzZWNyZXQiOwotICBpZiAoIUNSWVBUT190bHMxX3ByZiht
ZCwgbWFzdGVyX3NlY3JldCwgc2l6ZW9mKG1hc3Rlcl9zZWNyZXQpLAotICAgICAgICAgICAgICAg
ICAgICAgICBwcmVtYXN0ZXIuZGF0YSgpLCBwcmVtYXN0ZXIuc2l6ZSgpLCBrTWFzdGVyU2VjcmV0
TGFiZWwsCi0gICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrTWFzdGVyU2VjcmV0TGFiZWwp
IC0gMSwgY2xpZW50X3JhbmRvbS5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dF9yYW5kb20uc2l6ZSgpLCBzZXJ2ZXJfcmFuZG9tLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgc2VydmVyX3JhbmRvbS5zaXplKCkpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0K
LSAgZXJybm8gPSAwOwotICBjb25zdCBsb25nIGludCBrZXlfYmxvY2tfYml0cyA9Ci0gICAgICBz
dHJ0b2woa2V5X2Jsb2NrX2xlbl9zdHIuY19zdHIoKSwgbnVsbHB0ciwgMTApOwotICBpZiAoZXJy
bm8gIT0gMCB8fCBrZXlfYmxvY2tfYml0cyA8PSAwIHx8IChrZXlfYmxvY2tfYml0cyAmIDcpICE9
IDApIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgY29uc3Qgc2l6ZV90IGtleV9ibG9ja19s
ZW4gPSBrZXlfYmxvY2tfYml0cyAvIDg7Ci0gIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleV9ibG9j
ayhrZXlfYmxvY2tfbGVuKTsKLSAgc3RhdGljIGNvbnN0IGNoYXIga0xhYmVsW10gPSAia2V5IGV4
cGFuc2lvbiI7Ci0gIGlmICghQ1JZUFRPX3RsczFfcHJmKAotICAgICAgICAgIG1kLCBrZXlfYmxv
Y2suZGF0YSgpLCBrZXlfYmxvY2suc2l6ZSgpLCBtYXN0ZXJfc2VjcmV0LAotICAgICAgICAgIHNp
emVvZihtYXN0ZXJfc2VjcmV0KSwga0xhYmVsLCBzaXplb2Yoa0xhYmVsKSAtIDEsCi0gICAgICAg
ICAga2V5X2Jsb2NrX3NlcnZlcl9yYW5kb20uZGF0YSgpLCBrZXlfYmxvY2tfc2VydmVyX3JhbmRv
bS5zaXplKCksCi0gICAgICAgICAga2V5X2Jsb2NrX2NsaWVudF9yYW5kb20uZGF0YSgpLCBrZXlf
YmxvY2tfY2xpZW50X3JhbmRvbS5zaXplKCkpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0K
LSAgcHJpbnRmKCIlc21hc3Rlcl9zZWNyZXQgPSAlc1xyXG5rZXlfYmxvY2sgPSAlc1xyXG5cclxu
IiwKLSAgICAgICAgIHQtPkN1cnJlbnRUZXN0VG9TdHJpbmcoKS5jX3N0cigpLAotICAgICAgICAg
RW5jb2RlSGV4KG1hc3Rlcl9zZWNyZXQsIHNpemVvZihtYXN0ZXJfc2VjcmV0KSkuY19zdHIoKSwK
LSAgICAgICAgIEVuY29kZUhleChrZXlfYmxvY2suZGF0YSgpLCBrZXlfYmxvY2suc2l6ZSgpKS5j
X3N0cigpKTsKLQotICByZXR1cm4gdHJ1ZTsKLX0KLQotaW50IGNhdnBfdGxza2RmX3Rlc3RfbWFp
bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgaWYgKGFyZ2MgIT0gMikgewotICAgIGZwcmlu
dGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0ZXN0IGZpbGU+XG4iLCBhcmd2WzBdKTsKLSAgICByZXR1
cm4gMTsKLSAgfQotCi0gIEZpbGVUZXN0OjpPcHRpb25zIG9wdHM7Ci0gIG9wdHMucGF0aCA9IGFy
Z3ZbMV07Ci0gIG9wdHMuY2FsbGJhY2sgPSBUZXN0VExTS0RGOwotICBvcHRzLnNpbGVudCA9IHRy
dWU7Ci0gIG9wdHMuY29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50OwotICByZXR1cm4gRmls
ZVRlc3RNYWluKG9wdHMpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9ydW5fY2F2cC5n
byBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9maXBzdG9vbHMvcnVuX2NhdnAuZ28KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQzOGJiNzg1NjY5ZTE3ZGQ3NTI5MzQyYjYyZTRiZTQ5ZGY1YzUxY2QuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2ZpcHN0b29scy9ydW5fY2F2
cC5nbworKysgL2Rldi9udWxsCkBAIC0xLDU4MiArMCwwIEBACi0vLyBydW5fY2F2cC5nbyBwcm9j
ZXNzZXMgQ0FWUCBpbnB1dCBmaWxlcyBhbmQgZ2VuZXJhdGVzIHN1aXRhYmxlIHJlc3BvbnNlCi0v
LyBmaWxlcywgb3B0aW9uYWxseSBjb21wYXJpbmcgdGhlIHJlc3VsdHMgYWdhaW5zdCB0aGUgcHJv
dmlkZWQgRkFYIGZpbGVzLgotcGFja2FnZSBtYWluCi0KLWltcG9ydCAoCi0JImJ1ZmlvIgotCSJl
cnJvcnMiCi0JImZsYWciCi0JImZtdCIKLQkib3MiCi0JIm9zL2V4ZWMiCi0JInBhdGgiCi0JInBh
dGgvZmlsZXBhdGgiCi0JInJ1bnRpbWUiCi0JInN0cmluZ3MiCi0JInN5bmMiCi0JInRpbWUiCi0p
Ci0KLXZhciAoCi0Jb3JhY2xlUGF0aCA9IGZsYWcuU3RyaW5nKCJvcmFjbGUtYmluIiwgIiIsICJQ
YXRoIHRvIHRoZSBvcmFjbGUgYmluYXJ5IikKLQlzdWl0ZURpciAgID0gZmxhZy5TdHJpbmcoInN1
aXRlLWRpciIsICIiLCAiQmFzZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgQ0FWUCB0ZXN0IHN1
aXRlIikKLQlub0ZBWCAgICAgID0gZmxhZy5Cb29sKCJuby1mYXgiLCBmYWxzZSwgIlNraXAgY29t
cGFyaW5nIGFnYWluc3QgRkFYIGZpbGVzIikKLQlhbmRyb2lkICAgID0gZmxhZy5Cb29sKCJhbmRy
b2lkIiwgZmFsc2UsICJSdW4gdGVzdHMgdmlhIEFEQiIpCi0pCi0KLWNvbnN0ICgKLQlhbmRyb2lk
VG1wUGF0aCAgICAgICA9ICIvZGF0YS9sb2NhbC90bXAvIgotCWFuZHJvaWRDQVZQUGF0aCAgICAg
ID0gYW5kcm9pZFRtcFBhdGggKyAiY2F2cCIKLQlhbmRyb2lkTGliQ3J5cHRvUGF0aCA9IGFuZHJv
aWRUbXBQYXRoICsgImxpYmNyeXB0by5zbyIKLSkKLQotLy8gdGVzdCBkZXNjcmliZXMgYSBzaW5n
bGUgcmVxdWVzdCBmaWxlLgotdHlwZSB0ZXN0IHN0cnVjdCB7Ci0JLy8gaW5GaWxlIGlzIHRoZSBi
YXNlIG9mIHRoZSBmaWxlbmFtZSB3aXRob3V0IGFuIGV4dGVuc2lvbiwgaS5lLgotCS8vIOKAnEVD
Qk1DVDEyOOKAnS4KLQlpbkZpbGUgc3RyaW5nCi0JLy8gYXJncyBhcmUgdGhlIGFyZ3VtZW50cyAo
bm90IGluY2x1ZGluZyB0aGUgaW5wdXQgZmlsZW5hbWUpIHRvIHRoZQotCS8vIG9yYWNsZSBiaW5h
cnkuCi0JYXJncyBbXXN0cmluZwotCS8vIG5vRkFYLCBpZiB0cnVlLCBpbmRpY2F0ZXMgdGhhdCB0
aGUgb3V0cHV0IGNhbm5vdCBiZSBjb21wYXJlZCBhZ2FpbnN0Ci0JLy8gdGhlIEZBWCBmaWxlLiAo
RS5nLiBiZWNhdXNlIHRoZSBwcmltaXRpdmUgaXMgbm9uLWRldGVybWluaXN0aWMuKQotCW5vRkFY
IGJvb2wKLX0KLQotLy8gbmV4dExpbmVTdGF0ZSBjYW4gYmUgdXNlZCBieSBGQVggbmV4dC1saW5l
IGZ1bmN0aW9uIHRvIHN0b3JlIHN0YXRlLgotdHlwZSBuZXh0TGluZVN0YXRlIHN0cnVjdCB7Ci0J
Ly8gU3RhdGUgdXNlZCBieSB0aGUgS0FTIHRlc3QuCi0JbmV4dElzSVVUSGFzaCBib29sCi19Ci0K
LS8vIHRlc3RTdWl0ZSBkZXNjcmliZXMgYSBzZXJpZXMgb2YgdGVzdHMgdGhhdCBhcmUgaGFuZGxl
ZCBieSBhIHNpbmdsZSBvcmFjbGUKLS8vIGJpbmFyeS4KLXR5cGUgdGVzdFN1aXRlIHN0cnVjdCB7
Ci0JLy8gZGlyZWN0b3J5IGlzIHRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgaW4gdGhlIENBVlAg
aW5wdXQsIGkuZS4g4oCcQUVT4oCdLgotCWRpcmVjdG9yeSBzdHJpbmcKLQkvLyBzdWl0ZSBuYW1l
cyB0aGUgdGVzdCBzdWl0ZSB0byBwYXNzIGFzIHRoZSBmaXJzdCBjb21tYW5kLWxpbmUgYXJndW1l
bnQuCi0Jc3VpdGUgc3RyaW5nCi0JLy8gbmV4dExpbmVGdW5jLCBpZiBub3QgbmlsLCBpcyB0aGUg
ZnVuY3Rpb24gdXNlZCB0byByZWFkIHRoZSBuZXh0IGxpbmUKLQkvLyBmcm9tIHRoZSBGQVggZmls
ZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBza2lwIGxpbmVzIGFuZC9vciBtdXRhdGUgdGhlbQotCS8v
IGFzIG5lZWRlZC4gVGhlIHNlY29uZCBhcmd1bWVudCBjYW4gYmUgdXNlZCBieSB0aGUgc2Nhbm5l
ciB0byBzdG9yZQotCS8vIHN0YXRlLCBpZiBuZWVkZWQuIElmIGlzV2lsZGNhcmQgaXMgdHJ1ZSBv
biByZXR1cm4gdGhlbiBsaW5lIGlzIG5vdAotCS8vIG1lYW5pbmdmdWwgYW5kIGFueSBsaW5lIGZy
b20gdGhlIHJlc3BvbnNlIGZpbGUgc2hvdWxkIGJlIGFjY2VwdGVkLgotCW5leHRMaW5lRnVuYyBm
dW5jKCpidWZpby5TY2FubmVyLCAqbmV4dExpbmVTdGF0ZSkgKGxpbmUgc3RyaW5nLCBpc1dpbGRj
YXJkLCBvayBib29sKQotCXRlc3RzICAgICAgICBbXXRlc3QKLX0KLQotZnVuYyAodCAqdGVzdFN1
aXRlKSBnZXREaXJlY3RvcnkoKSBzdHJpbmcgewotCXJldHVybiBmaWxlcGF0aC5Kb2luKCpzdWl0
ZURpciwgdC5kaXJlY3RvcnkpCi19Ci0KLXZhciBhZXNHQ01UZXN0cyA9IHRlc3RTdWl0ZXsKLQki
QUVTX0dDTSIsCi0JImFlc19nY20iLAotCW5pbCwKLQlbXXRlc3R7Ci0JCXsiZ2NtRGVjcnlwdDEy
OCIsIFtdc3RyaW5neyJkZWMiLCAiYWVzLTEyOC1nY20ifSwgZmFsc2V9LAotCQl7ImdjbURlY3J5
cHQyNTYiLCBbXXN0cmluZ3siZGVjIiwgImFlcy0yNTYtZ2NtIn0sIGZhbHNlfSwKLQkJeyJnY21F
bmNyeXB0RXh0SVYxMjgiLCBbXXN0cmluZ3siZW5jIiwgImFlcy0xMjgtZ2NtIn0sIGZhbHNlfSwK
LQkJeyJnY21FbmNyeXB0RXh0SVYyNTYiLCBbXXN0cmluZ3siZW5jIiwgImFlcy0yNTYtZ2NtIn0s
IGZhbHNlfSwKLQl9LAotfQotCi12YXIgYWVzVGVzdHMgPSB0ZXN0U3VpdGV7Ci0JIkFFUyIsCi0J
ImFlcyIsCi0JbmlsLAotCVtddGVzdHsKLQkJeyJDQkNHRlNib3gxMjgiLCBbXXN0cmluZ3sia2F0
IiwgImFlcy0xMjgtY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNHRlNib3gxOTIiLCBbXXN0cmluZ3si
a2F0IiwgImFlcy0xOTItY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNHRlNib3gyNTYiLCBbXXN0cmlu
Z3sia2F0IiwgImFlcy0yNTYtY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNLZXlTYm94MTI4IiwgW11z
dHJpbmd7ImthdCIsICJhZXMtMTI4LWNiYyJ9LCBmYWxzZX0sCi0JCXsiQ0JDS2V5U2JveDE5MiIs
IFtdc3RyaW5neyJrYXQiLCAiYWVzLTE5Mi1jYmMifSwgZmFsc2V9LAotCQl7IkNCQ0tleVNib3gy
NTYiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0yNTYtY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNNTVQx
MjgiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xMjgtY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNNTVQx
OTIiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xOTItY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNNTVQy
NTYiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0yNTYtY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNWYXJL
ZXkxMjgiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xMjgtY2JjIn0sIGZhbHNlfSwKLQkJeyJDQkNW
YXJLZXkxOTIiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xOTItY2JjIn0sIGZhbHNlfSwKLQkJeyJD
QkNWYXJLZXkyNTYiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0yNTYtY2JjIn0sIGZhbHNlfSwKLQkJ
eyJDQkNWYXJUeHQxMjgiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xMjgtY2JjIn0sIGZhbHNlfSwK
LQkJeyJDQkNWYXJUeHQxOTIiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xOTItY2JjIn0sIGZhbHNl
fSwKLQkJeyJDQkNWYXJUeHQyNTYiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0yNTYtY2JjIn0sIGZh
bHNlfSwKLQkJeyJFQ0JHRlNib3gxMjgiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xMjgtZWNiIn0s
IGZhbHNlfSwKLQkJeyJFQ0JHRlNib3gxOTIiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0xOTItZWNi
In0sIGZhbHNlfSwKLQkJeyJFQ0JHRlNib3gyNTYiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0yNTYt
ZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JLZXlTYm94MTI4IiwgW11zdHJpbmd7ImthdCIsICJhZXMt
MTI4LWVjYiJ9LCBmYWxzZX0sCi0JCXsiRUNCS2V5U2JveDE5MiIsIFtdc3RyaW5neyJrYXQiLCAi
YWVzLTE5Mi1lY2IifSwgZmFsc2V9LAotCQl7IkVDQktleVNib3gyNTYiLCBbXXN0cmluZ3sia2F0
IiwgImFlcy0yNTYtZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JNTVQxMjgiLCBbXXN0cmluZ3sia2F0
IiwgImFlcy0xMjgtZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JNTVQxOTIiLCBbXXN0cmluZ3sia2F0
IiwgImFlcy0xOTItZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JNTVQyNTYiLCBbXXN0cmluZ3sia2F0
IiwgImFlcy0yNTYtZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JWYXJLZXkxMjgiLCBbXXN0cmluZ3si
a2F0IiwgImFlcy0xMjgtZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JWYXJLZXkxOTIiLCBbXXN0cmlu
Z3sia2F0IiwgImFlcy0xOTItZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JWYXJLZXkyNTYiLCBbXXN0
cmluZ3sia2F0IiwgImFlcy0yNTYtZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JWYXJUeHQxMjgiLCBb
XXN0cmluZ3sia2F0IiwgImFlcy0xMjgtZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JWYXJUeHQxOTIi
LCBbXXN0cmluZ3sia2F0IiwgImFlcy0xOTItZWNiIn0sIGZhbHNlfSwKLQkJeyJFQ0JWYXJUeHQy
NTYiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0yNTYtZWNiIn0sIGZhbHNlfSwKLQkJLy8gQUVTIE1v
bnRlLUNhcmxvIHRlc3RzCi0JCXsiRUNCTUNUMTI4IiwgW11zdHJpbmd7Im1jdCIsICJhZXMtMTI4
LWVjYiJ9LCBmYWxzZX0sCi0JCXsiRUNCTUNUMTkyIiwgW11zdHJpbmd7Im1jdCIsICJhZXMtMTky
LWVjYiJ9LCBmYWxzZX0sCi0JCXsiRUNCTUNUMjU2IiwgW11zdHJpbmd7Im1jdCIsICJhZXMtMjU2
LWVjYiJ9LCBmYWxzZX0sCi0JCXsiQ0JDTUNUMTI4IiwgW11zdHJpbmd7Im1jdCIsICJhZXMtMTI4
LWNiYyJ9LCBmYWxzZX0sCi0JCXsiQ0JDTUNUMTkyIiwgW11zdHJpbmd7Im1jdCIsICJhZXMtMTky
LWNiYyJ9LCBmYWxzZX0sCi0JCXsiQ0JDTUNUMjU2IiwgW11zdHJpbmd7Im1jdCIsICJhZXMtMjU2
LWNiYyJ9LCBmYWxzZX0sCi0JfSwKLX0KLQotdmFyIGVjZHNhMktleVBhaXJUZXN0cyA9IHRlc3RT
dWl0ZXsKLQkiRUNEU0EyIiwKLQkiZWNkc2EyX2tleXBhaXIiLAotCW5pbCwKLQlbXXRlc3R7eyJL
ZXlQYWlyIiwgbmlsLCB0cnVlfX0sCi19Ci0KLXZhciBlY2RzYTJQS1ZUZXN0cyA9IHRlc3RTdWl0
ZXsKLQkiRUNEU0EyIiwKLQkiZWNkc2EyX3BrdiIsCi0JbmlsLAotCVtddGVzdHt7IlBLViIsIG5p
bCwgZmFsc2V9fSwKLX0KLQotdmFyIGVjZHNhMlNpZ0dlblRlc3RzID0gdGVzdFN1aXRlewotCSJF
Q0RTQTIiLAotCSJlY2RzYTJfc2lnZ2VuIiwKLQluaWwsCi0JW110ZXN0ewotCQl7IlNpZ0dlbiIs
IFtdc3RyaW5neyJTaWdHZW4ifSwgdHJ1ZX0sCi0JCXsiU2lnR2VuQ29tcG9uZW50IiwgW11zdHJp
bmd7IlNpZ0dlbkNvbXBvbmVudCJ9LCB0cnVlfSwKLQl9LAotfQotCi12YXIgZWNkc2EyU2lnVmVy
VGVzdHMgPSB0ZXN0U3VpdGV7Ci0JIkVDRFNBMiIsCi0JImVjZHNhMl9zaWd2ZXIiLAotCW5pbCwK
LQlbXXRlc3R7eyJTaWdWZXIiLCBuaWwsIGZhbHNlfX0sCi19Ci0KLXZhciByc2EyS2V5R2VuVGVz
dHMgPSB0ZXN0U3VpdGV7Ci0JIlJTQTIiLAotCSJyc2EyX2tleWdlbiIsCi0JbmlsLAotCVtddGVz
dHsKLQkJeyJLZXlHZW5fUmFuZG9tUHJvYmFibHlQcmltZTNfMyIsIG5pbCwgdHJ1ZX0sCi0JfSwK
LX0KLQotdmFyIHJzYTJTaWdHZW5UZXN0cyA9IHRlc3RTdWl0ZXsKLQkiUlNBMiIsCi0JInJzYTJf
c2lnZ2VuIiwKLQluaWwsCi0JW110ZXN0ewotCQl7IlNpZ0dlbjE1XzE4Ni0zIiwgW11zdHJpbmd7
InBrY3MxNSJ9LCB0cnVlfSwKLQkJeyJTaWdHZW5QU1NfMTg2LTMiLCBbXXN0cmluZ3sicHNzIn0s
IHRydWV9LAotCX0sCi19Ci0KLXZhciByc2EyU2lnVmVyVGVzdHMgPSB0ZXN0U3VpdGV7Ci0JIlJT
QTIiLAotCSJyc2EyX3NpZ3ZlciIsCi0JZnVuYyhzICpidWZpby5TY2FubmVyLCBzdGF0ZSAqbmV4
dExpbmVTdGF0ZSkgKHN0cmluZywgYm9vbCwgYm9vbCkgewotCQlmb3IgewotCQkJaWYgIXMuU2Nh
bigpIHsKLQkJCQlyZXR1cm4gIiIsIGZhbHNlLCBmYWxzZQotCQkJfQotCi0JCQlsaW5lIDo9IHMu
VGV4dCgpCi0JCQlpZiBzdHJpbmdzLkhhc1ByZWZpeChsaW5lLCAicCA9ICIpIHx8IHN0cmluZ3Mu
SGFzUHJlZml4KGxpbmUsICJkID0gIikgfHwgc3RyaW5ncy5IYXNQcmVmaXgobGluZSwgIlNhbHRW
YWwgPSAiKSB8fCBzdHJpbmdzLkhhc1ByZWZpeChsaW5lLCAiRU0gd2l0aCAiKSB7Ci0JCQkJY29u
dGludWUKLQkJCX0KLQkJCWlmIHN0cmluZ3MuSGFzUHJlZml4KGxpbmUsICJxID0gIikgewotCQkJ
CS8vIFNraXAgdGhlICJxID0gIiBsaW5lIGFuZCBhbiBhZGRpdGlvbmFsIGJsYW5rIGxpbmUuCi0J
CQkJaWYgIXMuU2NhbigpIHx8Ci0JCQkJCWxlbihzdHJpbmdzLlRyaW1TcGFjZShzLlRleHQoKSkp
ID4gMCB7Ci0JCQkJCXJldHVybiAiIiwgZmFsc2UsIGZhbHNlCi0JCQkJfQotCQkJCWNvbnRpbnVl
Ci0JCQl9Ci0JCQlyZXR1cm4gbGluZSwgZmFsc2UsIHRydWUKLQkJfQotCX0sCi0JW110ZXN0ewot
CQl7IlNpZ1ZlcjE1XzE4Ni0zIiwgW11zdHJpbmd7InBrY3MxNSJ9LCBmYWxzZX0sCi0JCXsiU2ln
VmVyUFNTXzE4Ni0zIiwgW11zdHJpbmd7InBzcyJ9LCBmYWxzZX0sCi0JfSwKLX0KLQotdmFyIGht
YWNUZXN0cyA9IHRlc3RTdWl0ZXsKLQkiSE1BQyIsCi0JImhtYWMiLAotCW5pbCwKLQlbXXRlc3R7
eyJITUFDIiwgbmlsLCBmYWxzZX19LAotfQotCi12YXIgc2hhVGVzdHMgPSB0ZXN0U3VpdGV7Ci0J
IlNIQSIsCi0JInNoYSIsCi0JbmlsLAotCVtddGVzdHsKLQkJeyJTSEExTG9uZ01zZyIsIFtdc3Ry
aW5neyJTSEExIn0sIGZhbHNlfSwKLQkJeyJTSEExU2hvcnRNc2ciLCBbXXN0cmluZ3siU0hBMSJ9
LCBmYWxzZX0sCi0JCXsiU0hBMjI0TG9uZ01zZyIsIFtdc3RyaW5neyJTSEEyMjQifSwgZmFsc2V9
LAotCQl7IlNIQTIyNFNob3J0TXNnIiwgW11zdHJpbmd7IlNIQTIyNCJ9LCBmYWxzZX0sCi0JCXsi
U0hBMjU2TG9uZ01zZyIsIFtdc3RyaW5neyJTSEEyNTYifSwgZmFsc2V9LAotCQl7IlNIQTI1NlNo
b3J0TXNnIiwgW11zdHJpbmd7IlNIQTI1NiJ9LCBmYWxzZX0sCi0JCXsiU0hBMzg0TG9uZ01zZyIs
IFtdc3RyaW5neyJTSEEzODQifSwgZmFsc2V9LAotCQl7IlNIQTM4NFNob3J0TXNnIiwgW11zdHJp
bmd7IlNIQTM4NCJ9LCBmYWxzZX0sCi0JCXsiU0hBNTEyTG9uZ01zZyIsIFtdc3RyaW5neyJTSEE1
MTIifSwgZmFsc2V9LAotCQl7IlNIQTUxMlNob3J0TXNnIiwgW11zdHJpbmd7IlNIQTUxMiJ9LCBm
YWxzZX0sCi0JfSwKLX0KLQotdmFyIHNoYU1vbnRlVGVzdHMgPSB0ZXN0U3VpdGV7Ci0JIlNIQSIs
Ci0JInNoYV9tb250ZSIsCi0JbmlsLAotCVtddGVzdHsKLQkJeyJTSEExTW9udGUiLCBbXXN0cmlu
Z3siU0hBMSJ9LCBmYWxzZX0sCi0JCXsiU0hBMjI0TW9udGUiLCBbXXN0cmluZ3siU0hBMjI0In0s
IGZhbHNlfSwKLQkJeyJTSEEyNTZNb250ZSIsIFtdc3RyaW5neyJTSEEyNTYifSwgZmFsc2V9LAot
CQl7IlNIQTM4NE1vbnRlIiwgW11zdHJpbmd7IlNIQTM4NCJ9LCBmYWxzZX0sCi0JCXsiU0hBNTEy
TW9udGUiLCBbXXN0cmluZ3siU0hBNTEyIn0sIGZhbHNlfSwKLQl9LAotfQotCi12YXIgY3RyRFJC
R1Rlc3RzID0gdGVzdFN1aXRlewotCSJEUkJHODAwLTkwQSIsCi0JImN0cl9kcmJnIiwKLQluaWws
Ci0JW110ZXN0e3siQ1RSX0RSQkciLCBuaWwsIGZhbHNlfX0sCi19Ci0KLXZhciB0ZGVzVGVzdHMg
PSB0ZXN0U3VpdGV7Ci0JIlRERVMiLAotCSJ0ZGVzIiwKLQluaWwsCi0JW110ZXN0ewotCQl7IlRD
QkNNTVQyIiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlLWNiYyJ9LCBmYWxzZX0sCi0JCXsiVENC
Q01NVDMiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzLWNiYyJ9LCBmYWxzZX0sCi0JCXsiVENC
Q01vbnRlMiIsIFtdc3RyaW5neyJtY3QiLCAiZGVzLWVkZTMtY2JjIn0sIGZhbHNlfSwKLQkJeyJU
Q0JDTW9udGUzIiwgW11zdHJpbmd7Im1jdCIsICJkZXMtZWRlMy1jYmMifSwgZmFsc2V9LAotCQl7
IlRDQkNpbnZwZXJtIiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMy1jYmMifSwgZmFsc2V9LAot
CQl7IlRDQkNwZXJtb3AiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzLWNiYyJ9LCBmYWxzZX0s
Ci0JCXsiVENCQ3N1YnRhYiIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMtY2JjIn0sIGZhbHNl
fSwKLQkJeyJUQ0JDdmFya2V5IiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMy1jYmMifSwgZmFs
c2V9LAotCQl7IlRDQkN2YXJ0ZXh0IiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMy1jYmMifSwg
ZmFsc2V9LAotCQl7IlRFQ0JNTVQyIiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlIn0sIGZhbHNl
fSwKLQkJeyJURUNCTU1UMyIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMifSwgZmFsc2V9LAot
CQl7IlRFQ0JNb250ZTIiLCBbXXN0cmluZ3sibWN0IiwgImRlcy1lZGUzIn0sIGZhbHNlfSwKLQkJ
eyJURUNCTW9udGUzIiwgW11zdHJpbmd7Im1jdCIsICJkZXMtZWRlMyJ9LCBmYWxzZX0sCi0JCXsi
VEVDQmludnBlcm0iLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzIn0sIGZhbHNlfSwKLQkJeyJU
RUNCcGVybW9wIiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMyJ9LCBmYWxzZX0sCi0JCXsiVEVD
QnN1YnRhYiIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMifSwgZmFsc2V9LAotCQl7IlRFQ0J2
YXJrZXkiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzIn0sIGZhbHNlfSwKLQkJeyJURUNCdmFy
dGV4dCIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMifSwgZmFsc2V9LAotCX0sCi19Ci0KLXZh
ciBrZXlXcmFwVGVzdHMgPSB0ZXN0U3VpdGV7Ci0JIktleVdyYXAzOEYiLAotCSJrZXl3cmFwIiwK
LQluaWwsCi0JW110ZXN0ewotCQl7IktXX0FEXzEyOCIsIFtdc3RyaW5neyJkZWMiLCAiMTI4In0s
IGZhbHNlfSwKLQkJeyJLV19BRF8yNTYiLCBbXXN0cmluZ3siZGVjIiwgIjI1NiJ9LCBmYWxzZX0s
Ci0JCXsiS1dfQUVfMTI4IiwgW11zdHJpbmd7ImVuYyIsICIxMjgifSwgZmFsc2V9LAotCQl7IktX
X0FFXzI1NiIsIFtdc3RyaW5neyJlbmMiLCAiMjU2In0sIGZhbHNlfSwKLQl9LAotfQotCi12YXIg
a2FzVGVzdHMgPSB0ZXN0U3VpdGV7Ci0JIktBUyIsCi0JImthcyIsCi0JZnVuYyhzICpidWZpby5T
Y2FubmVyLCBzdGF0ZSAqbmV4dExpbmVTdGF0ZSkgKGxpbmUgc3RyaW5nLCBpc1dpbGRjYXJkLCBv
ayBib29sKSB7Ci0JCWZvciB7Ci0JCQkvLyBJZiB0aGUgcmVzcG9uc2UgZmlsZSB3aWxsIGluY2x1
ZGUgdGhlIElVVCBoYXNoIG5leHQsCi0JCQkvLyByZXR1cm4gYSB3aWxkY2FyZCBzaWduYWwgYmVj
YXVzZSB0aGlzIGNhbm5vdCBiZQotCQkJLy8gbWF0Y2hlZCBhZ2FpbnN0IHRoZSBGQVggZmlsZS4K
LQkJCWlmIHN0YXRlLm5leHRJc0lVVEhhc2ggewotCQkJCXN0YXRlLm5leHRJc0lVVEhhc2ggPSBm
YWxzZQotCQkJCXJldHVybiAiIiwgdHJ1ZSwgdHJ1ZQotCQkJfQotCi0JCQlpZiAhcy5TY2FuKCkg
ewotCQkJCXJldHVybiAiIiwgZmFsc2UsIGZhbHNlCi0JCQl9Ci0KLQkJCWxpbmUgOj0gcy5UZXh0
KCkKLQkJCWlmIHN0cmluZ3MuSGFzUHJlZml4KGxpbmUsICJkZUNBVlMgPSAiKSB8fCBzdHJpbmdz
Lkhhc1ByZWZpeChsaW5lLCAiWiA9ICIpIHsKLQkJCQljb250aW51ZQotCQkJfQotCQkJaWYgc3Ry
aW5ncy5IYXNQcmVmaXgobGluZSwgIkNBVlNIYXNoWlogPSAiKSB7Ci0JCQkJc3RhdGUubmV4dElz
SVVUSGFzaCA9IHRydWUKLQkJCX0KLQkJCXJldHVybiBsaW5lLCBmYWxzZSwgdHJ1ZQotCQl9Ci0J
fSwKLQlbXXRlc3R7Ci0JCXsiS0FTRnVuY3Rpb25UZXN0X0VDQ0VwaGVtZXJhbFVuaWZpZWRfTk9L
Q19aWk9ubHlfaW5pdCIsIFtdc3RyaW5neyJmdW5jdGlvbiJ9LCB0cnVlfSwKLQkJeyJLQVNGdW5j
dGlvblRlc3RfRUNDRXBoZW1lcmFsVW5pZmllZF9OT0tDX1paT25seV9yZXNwIiwgW11zdHJpbmd7
ImZ1bmN0aW9uIn0sIHRydWV9LAotCQl7IktBU1ZhbGlkaXR5VGVzdF9FQ0NFcGhlbWVyYWxVbmlm
aWVkX05PS0NfWlpPbmx5X2luaXQiLCBbXXN0cmluZ3sidmFsaWRpdHkifSwgZmFsc2V9LAotCQl7
IktBU1ZhbGlkaXR5VGVzdF9FQ0NFcGhlbWVyYWxVbmlmaWVkX05PS0NfWlpPbmx5X3Jlc3AiLCBb
XXN0cmluZ3sidmFsaWRpdHkifSwgZmFsc2V9LAotCX0sCi19Ci0KLXZhciB0bHNLREZUZXN0cyA9
IHRlc3RTdWl0ZXsKLQkiS0RGMTM1IiwKLQkidGxza2RmIiwKLQluaWwsCi0JW110ZXN0ewotCQl7
InRscyIsIG5pbCwgZmFsc2V9LAotCX0sCi19Ci0KLXZhciB0ZXN0U3VpdGVzID0gW10qdGVzdFN1
aXRlewotCSZhZXNHQ01UZXN0cywKLQkmYWVzVGVzdHMsCi0JJmN0ckRSQkdUZXN0cywKLQkmZWNk
c2EyS2V5UGFpclRlc3RzLAotCSZlY2RzYTJQS1ZUZXN0cywKLQkmZWNkc2EyU2lnR2VuVGVzdHMs
Ci0JJmVjZHNhMlNpZ1ZlclRlc3RzLAotCSZobWFjVGVzdHMsCi0JJmtleVdyYXBUZXN0cywKLQkm
cnNhMktleUdlblRlc3RzLAotCSZyc2EyU2lnR2VuVGVzdHMsCi0JJnJzYTJTaWdWZXJUZXN0cywK
LQkmc2hhVGVzdHMsCi0JJnNoYU1vbnRlVGVzdHMsCi0JJnRkZXNUZXN0cywKLQkma2FzVGVzdHMs
Ci0JJnRsc0tERlRlc3RzLAotfQotCi0vLyB0ZXN0SW5zdGFuY2UgcmVwcmVzZW50cyBhIHNwZWNp
ZmljIHRlc3QgaW4gYSB0ZXN0U3VpdGUuCi10eXBlIHRlc3RJbnN0YW5jZSBzdHJ1Y3QgewotCXN1
aXRlICAgICAqdGVzdFN1aXRlCi0JdGVzdEluZGV4IGludAotfQotCi1mdW5jIHdvcmtlcih3ZyAq
c3luYy5XYWl0R3JvdXAsIHdvcmsgPC1jaGFuIHRlc3RJbnN0YW5jZSkgewotCWRlZmVyIHdnLkRv
bmUoKQotCi0JZm9yIHRpIDo9IHJhbmdlIHdvcmsgewotCQl0ZXN0IDo9IHRpLnN1aXRlLnRlc3Rz
W3RpLnRlc3RJbmRleF0KLQotCQlpZiBlcnIgOj0gZG9UZXN0KHRpLnN1aXRlLCB0ZXN0KTsgZXJy
ICE9IG5pbCB7Ci0JCQlmbXQuRnByaW50Zihvcy5TdGRlcnIsICIlc1xuIiwgZXJyKQotCQkJb3Mu
RXhpdCgyKQotCQl9Ci0KLQkJaWYgISpub0ZBWCAmJiAhdGVzdC5ub0ZBWCB7Ci0JCQlpZiBlcnIg
Oj0gY29tcGFyZUZBWCh0aS5zdWl0ZSwgdGVzdCk7IGVyciAhPSBuaWwgewotCQkJCWZtdC5GcHJp
bnRmKG9zLlN0ZGVyciwgIiVzXG4iLCBlcnIpCi0JCQkJb3MuRXhpdCgzKQotCQkJfQotCQl9Ci0J
fQotfQotCi1mdW5jIGNoZWNrQW5kcm9pZFByZXJlcXMoKSBlcnJvciB7Ci0JLy8gVGhlIGNhdnAg
YmluYXJ5LCBhbmQgYSBtYXRjaGluZyBsaWJjcnlwdG8uc28sIGFyZSByZXF1aXJlZCB0byBiZSBw
bGFjZWQKLQkvLyBpbiAvZGF0YS9sb2NhbC90bXAgYmVmb3JlIHJ1bm5pbmcgdGhpcyBzY3JpcHQu
Ci0JaWYgZXJyIDo9IGV4ZWMuQ29tbWFuZCgiYWRiIiwgInNoZWxsIiwgImxzIiwgYW5kcm9pZENB
VlBQYXRoKS5SdW4oKTsgZXJyICE9IG5pbCB7Ci0JCXJldHVybiBlcnJvcnMuTmV3KCJmYWlsZWQg
dG8gbGlzdCBjYXZwIGJpbmFyeTsgZW5zdXJlIHRoYXQgYWRiIHdvcmtzIGFuZCBjYXZwIGJpbmFy
eSBpcyBpbiBwbGFjZTogIiArIGVyci5FcnJvcigpKQotCX0KLQlpZiBlcnIgOj0gZXhlYy5Db21t
YW5kKCJhZGIiLCAic2hlbGwiLCAibHMiLCBhbmRyb2lkTGliQ3J5cHRvUGF0aCkuUnVuKCk7IGVy
ciAhPSBuaWwgewotCQlyZXR1cm4gZXJyb3JzLk5ldygiZmFpbGVkIHRvIGxpc3QgbGliY3J5cHRv
LnNvOyBlbnN1cmUgdGhhdCBsaWJyYXJ5IGlzIGluIHBsYWNlOiAiICsgZXJyLkVycm9yKCkpCi0J
fQotCXJldHVybiBuaWwKLX0KLQotZnVuYyBtYWluKCkgewotCWZsYWcuUGFyc2UoKQotCi0JaWYg
KmFuZHJvaWQgewotCQlpZiBlcnIgOj0gY2hlY2tBbmRyb2lkUHJlcmVxcygpOyBlcnIgIT0gbmls
IHsKLQkJCWZtdC5GcHJpbnRmKG9zLlN0ZGVyciwgIiVzXG4iLCBlcnIpCi0JCQlvcy5FeGl0KDEp
Ci0JCX0KLQl9IGVsc2UgaWYgbGVuKCpvcmFjbGVQYXRoKSA9PSAwIHsKLQkJZm10LkZwcmludGYo
b3MuU3RkZXJyLCAiTXVzdCBnaXZlIC1vcmFjbGUtYmluXG4iKQotCQlvcy5FeGl0KDEpCi0JfQot
Ci0Jd29yayA6PSBtYWtlKGNoYW4gdGVzdEluc3RhbmNlKQotCXZhciB3ZyBzeW5jLldhaXRHcm91
cAotCi0JbnVtV29ya2VycyA6PSBydW50aW1lLk51bUNQVSgpCi0JaWYgKmFuZHJvaWQgewotCQlu
dW1Xb3JrZXJzID0gMQotCX0KLQotCWZvciBpIDo9IDA7IGkgPCBudW1Xb3JrZXJzOyBpKysgewot
CQl3Zy5BZGQoMSkKLQkJZ28gd29ya2VyKCZ3Zywgd29yaykKLQl9Ci0KLQlmb3IgXywgc3VpdGUg
Oj0gcmFuZ2UgdGVzdFN1aXRlcyB7Ci0JCWZvciBpIDo9IHJhbmdlIHN1aXRlLnRlc3RzIHsKLQkJ
CXdvcmsgPC0gdGVzdEluc3RhbmNle3N1aXRlLCBpfQotCQl9Ci0JfQotCi0JY2xvc2Uod29yaykK
LQl3Zy5XYWl0KCkKLX0KLQotZnVuYyBkb1Rlc3Qoc3VpdGUgKnRlc3RTdWl0ZSwgdGVzdCB0ZXN0
KSBlcnJvciB7Ci0JYmluIDo9ICpvcmFjbGVQYXRoCi0JdmFyIGFyZ3MgW11zdHJpbmcKLQotCWlm
ICphbmRyb2lkIHsKLQkJYmluID0gImFkYiIKLQkJYXJncyA9IFtdc3RyaW5neyJzaGVsbCIsICJM
RF9MSUJSQVJZX1BBVEg9IiArIGFuZHJvaWRUbXBQYXRoLCBhbmRyb2lkQ0FWUFBhdGh9Ci0JfQot
Ci0JYXJncyA9IGFwcGVuZChhcmdzLCBzdWl0ZS5zdWl0ZSkKLQlhcmdzID0gYXBwZW5kKGFyZ3Ms
IHRlc3QuYXJncy4uLikKLQlyZXFQYXRoIDo9IGZpbGVwYXRoLkpvaW4oc3VpdGUuZ2V0RGlyZWN0
b3J5KCksICJyZXEiLCB0ZXN0LmluRmlsZSsiLnJlcSIpCi0JdmFyIHJlcVBhdGhPbkRldmljZSBz
dHJpbmcKLQotCWlmICphbmRyb2lkIHsKLQkJcmVxUGF0aE9uRGV2aWNlID0gcGF0aC5Kb2luKGFu
ZHJvaWRUbXBQYXRoLCB0ZXN0LmluRmlsZSsiLnJlcSIpCi0JCWlmIGVyciA6PSBleGVjLkNvbW1h
bmQoImFkYiIsICJwdXNoIiwgcmVxUGF0aCwgcmVxUGF0aE9uRGV2aWNlKS5SdW4oKTsgZXJyICE9
IG5pbCB7Ci0JCQlyZXR1cm4gZXJyb3JzLk5ldygiZmFpbGVkIHRvIHB1c2ggcmVxdWVzdCBmaWxl
OiAiICsgZXJyLkVycm9yKCkpCi0JCX0KLQkJYXJncyA9IGFwcGVuZChhcmdzLCByZXFQYXRoT25E
ZXZpY2UpCi0JfSBlbHNlIHsKLQkJYXJncyA9IGFwcGVuZChhcmdzLCByZXFQYXRoKQotCX0KLQot
CXJlc3BEaXIgOj0gZmlsZXBhdGguSm9pbihzdWl0ZS5nZXREaXJlY3RvcnkoKSwgInJlc3AiKQot
CWlmIGVyciA6PSBvcy5Na2RpcihyZXNwRGlyLCAwNzU1KTsgZXJyICE9IG5pbCAmJiAhb3MuSXNF
eGlzdChlcnIpIHsKLQkJcmV0dXJuIGZtdC5FcnJvcmYoImNhbm5vdCBjcmVhdGUgcmVzcCBkaXJl
Y3Rvcnk6ICVzIiwgZXJyKQotCX0KLQlvdXRQYXRoIDo9IGZpbGVwYXRoLkpvaW4ocmVzcERpciwg
dGVzdC5pbkZpbGUrIi5yc3AiKQotCW91dEZpbGUsIGVyciA6PSBvcy5PcGVuRmlsZShvdXRQYXRo
LCBvcy5PX0NSRUFURXxvcy5PX1RSVU5DfG9zLk9fV1JPTkxZLCAwNjQ0KQotCWlmIGVyciAhPSBu
aWwgewotCQlyZXR1cm4gZm10LkVycm9yZigiY2Fubm90IG9wZW4gb3V0cHV0IGZpbGUgZm9yICVx
ICVxOiAlcyIsIHN1aXRlLmdldERpcmVjdG9yeSgpLCB0ZXN0LmluRmlsZSwgZXJyKQotCX0KLQlk
ZWZlciBvdXRGaWxlLkNsb3NlKCkKLQotCWNtZCA6PSBleGVjLkNvbW1hbmQoYmluLCBhcmdzLi4u
KQotCWNtZC5TdGRvdXQgPSBvdXRGaWxlCi0JY21kLlN0ZGVyciA9IG9zLlN0ZGVycgotCi0JY21k
TGluZSA6PSBzdHJpbmdzLkpvaW4oYXBwZW5kKFtdc3RyaW5ne2Jpbn0sIGFyZ3MuLi4pLCAiICIp
Ci0Jc3RhcnRUaW1lIDo9IHRpbWUuTm93KCkKLQlpZiBlcnIgOj0gY21kLlJ1bigpOyBlcnIgIT0g
bmlsIHsKLQkJcmV0dXJuIGZtdC5FcnJvcmYoImNhbm5vdCBydW4gY29tbWFuZCBmb3IgJXEgJXEg
KCVzKTogJXMiLCBzdWl0ZS5nZXREaXJlY3RvcnkoKSwgdGVzdC5pbkZpbGUsIGNtZExpbmUsIGVy
cikKLQl9Ci0KLQlmbXQuUHJpbnRmKCIlcyAoJWRzKVxuIiwgY21kTGluZSwgaW50KHRpbWUuU2lu
Y2Uoc3RhcnRUaW1lKS5TZWNvbmRzKCkpKQotCi0JaWYgKmFuZHJvaWQgewotCQlleGVjLkNvbW1h
bmQoImFkYiIsICJzaGVsbCIsICJybSIsIHJlcVBhdGhPbkRldmljZSkuUnVuKCkKLQl9Ci0KLQly
ZXR1cm4gbmlsCi19Ci0KLWZ1bmMgY2Fub25pY2FsaXplTGluZShpbiBzdHJpbmcpIHN0cmluZyB7
Ci0JaWYgc3RyaW5ncy5IYXNQcmVmaXgoaW4sICJSZXN1bHQgPSBQICgiKSB7Ci0JCXJldHVybiAi
UmVzdWx0ID0gUCIKLQl9Ci0JaWYgc3RyaW5ncy5IYXNQcmVmaXgoaW4sICJSZXN1bHQgPSBGICgi
KSB7Ci0JCXJldHVybiAiUmVzdWx0ID0gRiIKLQl9Ci0JcmV0dXJuIGluCi19Ci0KLWZ1bmMgY29t
cGFyZUZBWChzdWl0ZSAqdGVzdFN1aXRlLCB0ZXN0IHRlc3QpIGVycm9yIHsKLQluZXh0TGluZUZ1
bmMgOj0gc3VpdGUubmV4dExpbmVGdW5jCi0JaWYgbmV4dExpbmVGdW5jID09IG5pbCB7Ci0JCW5l
eHRMaW5lRnVuYyA9IGZ1bmMocyAqYnVmaW8uU2Nhbm5lciwgc3RhdGUgKm5leHRMaW5lU3RhdGUp
IChzdHJpbmcsIGJvb2wsIGJvb2wpIHsKLQkJCWlmICFzLlNjYW4oKSB7Ci0JCQkJcmV0dXJuICIi
LCBmYWxzZSwgZmFsc2UKLQkJCX0KLQkJCXJldHVybiBzLlRleHQoKSwgZmFsc2UsIHRydWUKLQkJ
fQotCX0KLQotCXJlc3BQYXRoIDo9IGZpbGVwYXRoLkpvaW4oc3VpdGUuZ2V0RGlyZWN0b3J5KCks
ICJyZXNwIiwgdGVzdC5pbkZpbGUrIi5yc3AiKQotCXJlc3BGaWxlLCBlcnIgOj0gb3MuT3Blbihy
ZXNwUGF0aCkKLQlpZiBlcnIgIT0gbmlsIHsKLQkJcmV0dXJuIGZtdC5FcnJvcmYoImNhbm5vdCBy
ZWFkIG91dHB1dCBvZiAlcSAlcTogJXMiLCBzdWl0ZS5nZXREaXJlY3RvcnkoKSwgdGVzdC5pbkZp
bGUsIGVycikKLQl9Ci0JZGVmZXIgcmVzcEZpbGUuQ2xvc2UoKQotCi0JZmF4UGF0aCA6PSBmaWxl
cGF0aC5Kb2luKHN1aXRlLmdldERpcmVjdG9yeSgpLCAiZmF4IiwgdGVzdC5pbkZpbGUrIi5mYXgi
KQotCWZheEZpbGUsIGVyciA6PSBvcy5PcGVuKGZheFBhdGgpCi0JaWYgZXJyICE9IG5pbCB7Ci0J
CXJldHVybiBmbXQuRXJyb3JmKCJjYW5ub3Qgb3BlbiBmYXggZmlsZSBmb3IgJXEgJXE6ICVzIiwg
c3VpdGUuZ2V0RGlyZWN0b3J5KCksIHRlc3QuaW5GaWxlLCBlcnIpCi0JfQotCWRlZmVyIGZheEZp
bGUuQ2xvc2UoKQotCi0JcmVzcFNjYW5uZXIgOj0gYnVmaW8uTmV3U2Nhbm5lcihyZXNwRmlsZSkK
LQlmYXhTY2FubmVyIDo9IGJ1ZmlvLk5ld1NjYW5uZXIoZmF4RmlsZSkKLQl2YXIgbmV4dExpbmVT
dGF0ZSBuZXh0TGluZVN0YXRlCi0KLQlsaW5lTm8gOj0gMAotCWluSGVhZGVyIDo9IHRydWUKLQot
CWZvciByZXNwU2Nhbm5lci5TY2FuKCkgewotCQlsaW5lTm8rKwotCQlyZXNwTGluZSA6PSByZXNw
U2Nhbm5lci5UZXh0KCkKLQkJdmFyIGZheExpbmUgc3RyaW5nCi0JCXZhciBpc1dpbGRjYXJkLCBv
ayBib29sCi0KLQkJaWYgaW5IZWFkZXIgJiYgKGxlbihyZXNwTGluZSkgPT0gMCB8fCByZXNwTGlu
ZVswXSA9PSAnIycpIHsKLQkJCWNvbnRpbnVlCi0JCX0KLQotCQlmb3IgewotCQkJaGF2ZUZheExp
bmUgOj0gZmFsc2UKLQotCQkJaWYgaW5IZWFkZXIgewotCQkJCWZvciB7Ci0JCQkJCWlmIGZheExp
bmUsIGlzV2lsZGNhcmQsIG9rID0gbmV4dExpbmVGdW5jKGZheFNjYW5uZXIsICZuZXh0TGluZVN0
YXRlKTsgIW9rIHsKLQkJCQkJCWJyZWFrCi0JCQkJCX0KLQkJCQkJaWYgbGVuKGZheExpbmUpICE9
IDAgJiYgZmF4TGluZVswXSAhPSAnIycgewotCQkJCQkJaGF2ZUZheExpbmUgPSB0cnVlCi0JCQkJ
CQlicmVhawotCQkJCQl9Ci0JCQkJfQotCi0JCQkJaW5IZWFkZXIgPSBmYWxzZQotCQkJfSBlbHNl
IHsKLQkJCQlmYXhMaW5lLCBpc1dpbGRjYXJkLCBoYXZlRmF4TGluZSA9IG5leHRMaW5lRnVuYyhm
YXhTY2FubmVyLCAmbmV4dExpbmVTdGF0ZSkKLQkJCX0KLQotCQkJaWYgIWhhdmVGYXhMaW5lIHsK
LQkJCQkvLyBJZ25vcmUgYmxhbmsgbGluZXMgYXQgdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGZp
bGUuCi0JCQkJaWYgbGVuKHJlc3BMaW5lKSA9PSAwIHsKLQkJCQkJYnJlYWsKLQkJCQl9Ci0JCQkJ
cmV0dXJuIGZtdC5FcnJvcmYoInJlc3AgZmlsZSBpcyBsb25nZXIgdGhhbiBmYXggZm9yICVxICVx
Iiwgc3VpdGUuZ2V0RGlyZWN0b3J5KCksIHRlc3QuaW5GaWxlKQotCQkJfQotCi0JCQlpZiBzdHJp
bmdzLkhhc1ByZWZpeChmYXhMaW5lLCAiIChSZWFzb246ICIpIHsKLQkJCQljb250aW51ZQotCQkJ
fQotCi0JCQlicmVhawotCQl9Ci0KLQkJaWYgaXNXaWxkY2FyZCB8fCBjYW5vbmljYWxpemVMaW5l
KGZheExpbmUpID09IGNhbm9uaWNhbGl6ZUxpbmUocmVzcExpbmUpIHsKLQkJCWNvbnRpbnVlCi0J
CX0KLQotCQlyZXR1cm4gZm10LkVycm9yZigicmVzcCBhbmQgZmF4IGRpZmZlciBhdCBsaW5lICVk
IGZvciAlcSAlcTogJXEgdnMgJXEiLCBsaW5lTm8sIHN1aXRlLmdldERpcmVjdG9yeSgpLCB0ZXN0
LmluRmlsZSwgcmVzcExpbmUsIGZheExpbmUpCi0JfQotCi0JaWYgXywgXywgb2sgOj0gbmV4dExp
bmVGdW5jKGZheFNjYW5uZXIsICZuZXh0TGluZVN0YXRlKTsgb2sgewotCQlyZXR1cm4gZm10LkVy
cm9yZigiZmF4IGZpbGUgaXMgbG9uZ2VyIHRoYW4gcmVzcCBmb3IgJXEgJXEiLCBzdWl0ZS5nZXRE
aXJlY3RvcnkoKSwgdGVzdC5pbkZpbGUpCi0JfQotCi0JcmV0dXJuIG5pbAotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2ZpcHN0b29scy90ZXN0X2ZpcHMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9maXBzdG9vbHMvdGVzdF9maXBzLmMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2MzU5YzVjODdjNGYzYzU5NGNiODAyZjI5
M2M3N2QwMGZhMjhhYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL2ZpcHN0b29scy90ZXN0X2ZpcHMuYworKysgL2Rldi9udWxsCkBAIC0xLDI1OSAr
MCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCi0gKgotICogUGVybWlz
c2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2Fy
ZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50
ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FS
UkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElN
UExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBTUEVDSUFMLCBE
SVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMK
LSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklU
UywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLSAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9U
SEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KLSAqIENPTk5FQ1RJT04g
V0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCi0KLS8qIHRl
c3RfZmlwcyBleGVyY2lzZXMgdmFyaW91cyBjcnlwdG9ncmFwaGljIHByaW1pdGl2ZXMgZm9yIGRl
bW9uc3RyYXRpb24KLSAqIHB1cnBvc2VzIGluIHRoZSB2YWxpZGF0aW9uIHByb2Nlc3Mgb25seS4g
Ki8KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLSNpbmNsdWRlIDxvcGVuc3NsL2FlYWQuaD4KLSNp
bmNsdWRlIDxvcGVuc3NsL2Flcy5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KLSNpbmNsdWRl
IDxvcGVuc3NsL2NyeXB0by5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZGVzLmg+Ci0jaW5jbHVkZSA8
b3BlbnNzbC9lY2RzYS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZWNfa2V5Lmg+Ci0jaW5jbHVkZSA8
b3BlbnNzbC9obWFjLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KLSNpbmNsdWRlIDxvcGVu
c3NsL3JzYS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvc2hhLmg+Ci0KLSNpbmNsdWRlICIuLi9jcnlw
dG8vZmlwc21vZHVsZS9yYW5kL2ludGVybmFsLmgiCi0jaW5jbHVkZSAiLi4vY3J5cHRvL2ludGVy
bmFsLmgiCi0KLQotc3RhdGljIHZvaWQgaGV4ZHVtcChjb25zdCB2b2lkICphLCBzaXplX3QgbGVu
KSB7Ci0gIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilh
OwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgcHJpbnRmKCIlMDJ4
IiwgaW5baV0pOwotICB9Ci0KLSAgcHJpbnRmKCJcbiIpOwotfQotCi1pbnQgbWFpbihpbnQgYXJn
YywgY2hhciAqKmFyZ3YpIHsKLSAgQ1JZUFRPX2xpYnJhcnlfaW5pdCgpOwotCi0gIHN0YXRpYyBj
b25zdCB1aW50OF90IGtBRVNLZXlbMTZdID0gIkJvcmluZ0NyeXB0byBLZXkiOwotICBzdGF0aWMg
Y29uc3QgdWludDhfdCBrUGxhaW50ZXh0WzY0XSA9Ci0gICAgICAiQm9yaW5nQ3J5cHRvTW9kdWxl
IEZJUFMgS0FUIEVuY3J5cHRpb24gYW5kIERlY3J5cHRpb24gUGxhaW50ZXh0ISI7Ci0gIHN0YXRp
YyBjb25zdCBERVNfY2Jsb2NrIGtERVNLZXkxID0geyJCQ01ERVNLMSJ9OwotICBzdGF0aWMgY29u
c3QgREVTX2NibG9jayBrREVTS2V5MiA9IHsiQkNNREVTSzIifTsKLSAgc3RhdGljIGNvbnN0IERF
U19jYmxvY2sga0RFU0tleTMgPSB7IkJDTURFU0szIn07Ci0gIHN0YXRpYyBjb25zdCBERVNfY2Js
b2NrIGtERVNJViA9IHsiQkNNREVTSVYifTsKLSAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga1BsYWlu
dGV4dFNIQTI1NlszMl0gPSB7Ci0gICAgICAweDM3LCAweGJkLCAweDcwLCAweDUzLCAweDcyLCAw
eGZjLCAweGQ0LCAweDAzLCAweDc5LCAweDcwLCAweGZiLAotICAgICAgMHgwNiwgMHg5NSwgMHhi
MSwgMHgyYSwgMHg4MiwgMHg0OCwgMHhlMSwgMHgzZSwgMHhmMiwgMHgzMywgMHhmYiwKLSAgICAg
IDB4ZWYsIDB4MjksIDB4ODEsIDB4MjIsIDB4NDUsIDB4NDAsIDB4NDMsIDB4NzAsIDB4Y2UsIDB4
MGZ9OwotICBjb25zdCB1aW50OF90IGtEUkJHRW50cm9weVs0OF0gPQotICAgICAgIkRCUkcgSW5p
dGlhbCBFbnRyb3B5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7Ci0gIGNvbnN0IHVpbnQ4
X3Qga0RSQkdQZXJzb25hbGl6YXRpb25bMThdID0gIkJDTVBlcnNvbmFsaXphdGlvbiI7Ci0gIGNv
bnN0IHVpbnQ4X3Qga0RSQkdBRFsxNl0gPSAiQkNNIERSQkcgQUQgICAgICI7Ci0gIGNvbnN0IHVp
bnQ4X3Qga0RSQkdFbnRyb3B5Mls0OF0gPQotICAgICAgIkRCUkcgUmVzZWVkIEVudHJvcHkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI7Ci0KLSAgQUVTX0tFWSBhZXNfa2V5OwotICB1aW50
OF90IGFlc19pdlsxNl07Ci0gIHVpbnQ4X3Qgb3V0cHV0WzI1Nl07Ci0KLSAgLyogQUVTLUNCQyBF
bmNyeXB0aW9uICovCi0gIG1lbXNldChhZXNfaXYsIDAsIHNpemVvZihhZXNfaXYpKTsKLSAgaWYg
KEFFU19zZXRfZW5jcnlwdF9rZXkoa0FFU0tleSwgOCAqIHNpemVvZihrQUVTS2V5KSwgJmFlc19r
ZXkpICE9IDApIHsKLSAgICBwcmludGYoIkFFU19zZXRfZW5jcnlwdF9rZXkgZmFpbGVkXG4iKTsK
LSAgICBnb3RvIGVycjsKLSAgfQotCi0gIHByaW50ZigiQWJvdXQgdG8gQUVTLUNCQyBlbmNyeXB0
ICIpOwotICBoZXhkdW1wKGtQbGFpbnRleHQsIHNpemVvZihrUGxhaW50ZXh0KSk7Ci0gIEFFU19j
YmNfZW5jcnlwdChrUGxhaW50ZXh0LCBvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSwgJmFlc19r
ZXksIGFlc19pdiwKLSAgICAgICAgICAgICAgICAgIEFFU19FTkNSWVBUKTsKLSAgcHJpbnRmKCIg
IGdvdCAiKTsKLSAgaGV4ZHVtcChvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSk7Ci0KLSAgLyog
QUVTLUNCQyBEZWNyeXB0aW9uICovCi0gIG1lbXNldChhZXNfaXYsIDAsIHNpemVvZihhZXNfaXYp
KTsKLSAgaWYgKEFFU19zZXRfZGVjcnlwdF9rZXkoa0FFU0tleSwgOCAqIHNpemVvZihrQUVTS2V5
KSwgJmFlc19rZXkpICE9IDApIHsKLSAgICBwcmludGYoIkFFUyBkZWNyeXB0IGZhaWxlZFxuIik7
Ci0gICAgZ290byBlcnI7Ci0gIH0KLSAgcHJpbnRmKCJBYm91dCB0byBBRVMtQ0JDIGRlY3J5cHQg
Iik7Ci0gIGhleGR1bXAob3V0cHV0LCBzaXplb2Yoa1BsYWludGV4dCkpOwotICBBRVNfY2JjX2Vu
Y3J5cHQob3V0cHV0LCBvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSwgJmFlc19rZXksIGFlc19p
diwKLSAgICAgICAgICAgICAgICAgIEFFU19ERUNSWVBUKTsKLSAgcHJpbnRmKCIgIGdvdCAiKTsK
LSAgaGV4ZHVtcChvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSk7Ci0KLSAgc2l6ZV90IG91dF9s
ZW47Ci0gIHVpbnQ4X3Qgbm9uY2VbRVZQX0FFQURfTUFYX05PTkNFX0xFTkdUSF07Ci0gIE9QRU5T
U0xfbWVtc2V0KG5vbmNlLCAwLCBzaXplb2Yobm9uY2UpKTsKLSAgRVZQX0FFQURfQ1RYIGFlYWRf
Y3R4OwotICBpZiAoIUVWUF9BRUFEX0NUWF9pbml0KCZhZWFkX2N0eCwgRVZQX2FlYWRfYWVzXzEy
OF9nY20oKSwga0FFU0tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa0FFU0tl
eSksIDAsIE5VTEwpKSB7Ci0gICAgcHJpbnRmKCJFVlBfQUVBRF9DVFhfaW5pdCBmYWlsZWRcbiIp
OwotICAgIGdvdG8gZXJyOwotICB9Ci0KLSAgLyogQUVTLUdDTSBFbmNyeXB0aW9uICovCi0gIHBy
aW50ZigiQWJvdXQgdG8gQUVTLUdDTSBzZWFsICIpOwotICBoZXhkdW1wKG91dHB1dCwgc2l6ZW9m
KGtQbGFpbnRleHQpKTsKLSAgaWYgKCFFVlBfQUVBRF9DVFhfc2VhbCgmYWVhZF9jdHgsIG91dHB1
dCwgJm91dF9sZW4sIHNpemVvZihvdXRwdXQpLCBub25jZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBFVlBfQUVBRF9ub25jZV9sZW5ndGgoRVZQX2FlYWRfYWVzXzEyOF9nY20oKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAga1BsYWludGV4dCwgc2l6ZW9mKGtQbGFpbnRleHQpLCBOVUxM
LCAwKSkgewotICAgIHByaW50ZigiQUVTLUdDTSBlbmNyeXB0IGZhaWxlZFxuIik7Ci0gICAgZ290
byBlcnI7Ci0gIH0KLSAgcHJpbnRmKCIgIGdvdCAiKTsKLSAgaGV4ZHVtcChvdXRwdXQsIG91dF9s
ZW4pOwotCi0gIC8qIEFFUy1HQ00gRGVjcnlwdGlvbiAqLwotICBwcmludGYoIkFib3V0IHRvIEFF
Uy1HQ00gb3BlbiAiKTsKLSAgaGV4ZHVtcChvdXRwdXQsIG91dF9sZW4pOwotICBpZiAoIUVWUF9B
RUFEX0NUWF9vcGVuKCZhZWFkX2N0eCwgb3V0cHV0LCAmb3V0X2xlbiwgc2l6ZW9mKG91dHB1dCks
IG5vbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgIEVWUF9BRUFEX25vbmNlX2xlbmd0aChF
VlBfYWVhZF9hZXNfMTI4X2djbSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQs
IG91dF9sZW4sIE5VTEwsIDApKSB7Ci0gICAgcHJpbnRmKCJBRVMtR0NNIGRlY3J5cHQgZmFpbGVk
XG4iKTsKLSAgICBnb3RvIGVycjsKLSAgfQotICBwcmludGYoIiAgZ290ICIpOwotICBoZXhkdW1w
KG91dHB1dCwgb3V0X2xlbik7Ci0KLSAgRVZQX0FFQURfQ1RYX2NsZWFudXAoJmFlYWRfY3R4KTsK
LQotICBERVNfa2V5X3NjaGVkdWxlIGRlczEsIGRlczIsIGRlczM7Ci0gIERFU19jYmxvY2sgZGVz
X2l2OwotICBERVNfc2V0X2tleSgma0RFU0tleTEsICZkZXMxKTsKLSAgREVTX3NldF9rZXkoJmtE
RVNLZXkyLCAmZGVzMik7Ci0gIERFU19zZXRfa2V5KCZrREVTS2V5MywgJmRlczMpOwotCi0gIC8q
IDNERVMgRW5jcnlwdGlvbiAqLwotICBtZW1jcHkoJmRlc19pdiwgJmtERVNJViwgc2l6ZW9mKGRl
c19pdikpOwotICBwcmludGYoIkFib3V0IHRvIDNERVMtQ0JDIGVuY3J5cHQgIik7Ci0gIGhleGR1
bXAoa1BsYWludGV4dCwgc2l6ZW9mKGtQbGFpbnRleHQpKTsKLSAgREVTX2VkZTNfY2JjX2VuY3J5
cHQoa1BsYWludGV4dCwgb3V0cHV0LCBzaXplb2Yoa1BsYWludGV4dCksICZkZXMxLCAmZGVzMiwK
LSAgICAgICAgICAgICAgICAgICAgICAgJmRlczMsICZkZXNfaXYsIERFU19FTkNSWVBUKTsKLSAg
cHJpbnRmKCIgIGdvdCAiKTsKLSAgaGV4ZHVtcChvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSk7
Ci0KLSAgLyogM0RFUyBEZWNyeXB0aW9uICovCi0gIG1lbWNweSgmZGVzX2l2LCAma0RFU0lWLCBz
aXplb2YoZGVzX2l2KSk7Ci0gIHByaW50ZigiQWJvdXQgdG8gM0RFUy1DQkMgZGVjcnlwdCAiKTsK
LSAgaGV4ZHVtcChrUGxhaW50ZXh0LCBzaXplb2Yoa1BsYWludGV4dCkpOwotICBERVNfZWRlM19j
YmNfZW5jcnlwdChvdXRwdXQsIG91dHB1dCwgc2l6ZW9mKGtQbGFpbnRleHQpLCAmZGVzMSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgJmRlczIsICZkZXMzLCAmZGVzX2l2LCBERVNfREVDUllQVCk7
Ci0gIHByaW50ZigiICBnb3QgIik7Ci0gIGhleGR1bXAob3V0cHV0LCBzaXplb2Yoa1BsYWludGV4
dCkpOwotCi0gIC8qIFNIQS0xICovCi0gIHByaW50ZigiQWJvdXQgdG8gU0hBLTEgaGFzaCAiKTsK
LSAgaGV4ZHVtcChrUGxhaW50ZXh0LCBzaXplb2Yoa1BsYWludGV4dCkpOwotICBTSEExKGtQbGFp
bnRleHQsIHNpemVvZihrUGxhaW50ZXh0KSwgb3V0cHV0KTsKLSAgcHJpbnRmKCIgIGdvdCAiKTsK
LSAgaGV4ZHVtcChvdXRwdXQsIFNIQV9ESUdFU1RfTEVOR1RIKTsKLQotICAvKiBTSEEtMjU2ICov
Ci0gIHByaW50ZigiQWJvdXQgdG8gU0hBLTI1NiBoYXNoICIpOwotICBoZXhkdW1wKGtQbGFpbnRl
eHQsIHNpemVvZihrUGxhaW50ZXh0KSk7Ci0gIFNIQTI1NihrUGxhaW50ZXh0LCBzaXplb2Yoa1Bs
YWludGV4dCksIG91dHB1dCk7Ci0gIHByaW50ZigiICBnb3QgIik7Ci0gIGhleGR1bXAob3V0cHV0
LCBTSEEyNTZfRElHRVNUX0xFTkdUSCk7Ci0KLSAgLyogU0hBLTUxMiAqLwotICBwcmludGYoIkFi
b3V0IHRvIFNIQS01MTIgaGFzaCAiKTsKLSAgaGV4ZHVtcChrUGxhaW50ZXh0LCBzaXplb2Yoa1Bs
YWludGV4dCkpOwotICBTSEE1MTIoa1BsYWludGV4dCwgc2l6ZW9mKGtQbGFpbnRleHQpLCBvdXRw
dXQpOwotICBwcmludGYoIiAgZ290ICIpOwotICBoZXhkdW1wKG91dHB1dCwgU0hBNTEyX0RJR0VT
VF9MRU5HVEgpOwotCi0gIFJTQSAqcnNhX2tleSA9IFJTQV9uZXcoKTsKLSAgcHJpbnRmKCJBYm91
dCB0byBnZW5lcmF0ZSBSU0Ega2V5XG4iKTsKLSAgaWYgKCFSU0FfZ2VuZXJhdGVfa2V5X2ZpcHMo
cnNhX2tleSwgMjA0OCwgTlVMTCkpIHsKLSAgICBwcmludGYoIlJTQV9nZW5lcmF0ZV9rZXlfZmlw
cyBmYWlsZWRcbiIpOwotICAgIGdvdG8gZXJyOwotICB9Ci0KLSAgLyogUlNBIFNpZ24gKi8KLSAg
dW5zaWduZWQgc2lnX2xlbjsKLSAgcHJpbnRmKCJBYm91dCB0byBSU0Egc2lnbiAiKTsKLSAgaGV4
ZHVtcChrUGxhaW50ZXh0U0hBMjU2LCBzaXplb2Yoa1BsYWludGV4dFNIQTI1NikpOwotICBpZiAo
IVJTQV9zaWduKE5JRF9zaGEyNTYsIGtQbGFpbnRleHRTSEEyNTYsIHNpemVvZihrUGxhaW50ZXh0
U0hBMjU2KSwgb3V0cHV0LAotICAgICAgICAgICAgICAgICZzaWdfbGVuLCByc2Ffa2V5KSkgewot
ICAgIHByaW50ZigiUlNBIFNpZ24gZmFpbGVkXG4iKTsKLSAgICBnb3RvIGVycjsKLSAgfQotICBw
cmludGYoIiAgZ290ICIpOwotICBoZXhkdW1wKG91dHB1dCwgc2lnX2xlbik7Ci0KLSAgLyogUlNB
IFZlcmlmeSAqLwotICBwcmludGYoIkFib3V0IHRvIFJTQSB2ZXJpZnkgIik7Ci0gIGhleGR1bXAo
b3V0cHV0LCBzaWdfbGVuKTsKLSAgaWYgKCFSU0FfdmVyaWZ5KE5JRF9zaGEyNTYsIGtQbGFpbnRl
eHRTSEEyNTYsIHNpemVvZihrUGxhaW50ZXh0U0hBMjU2KSwKLSAgICAgICAgICAgICAgICAgIG91
dHB1dCwgc2lnX2xlbiwgcnNhX2tleSkpIHsKLSAgICBwcmludGYoIlJTQSBWZXJpZnkgZmFpbGVk
LlxuIik7Ci0gICAgZ290byBlcnI7Ci0gIH0KLQotICBSU0FfZnJlZShyc2Ffa2V5KTsKLQotICBF
Q19LRVkgKmVjX2tleSA9IEVDX0tFWV9uZXdfYnlfY3VydmVfbmFtZShOSURfWDlfNjJfcHJpbWUy
NTZ2MSk7Ci0gIGlmIChlY19rZXkgPT0gTlVMTCkgewotICAgIHByaW50ZigiaW52YWxpZCBFQ0RT
QSBrZXlcbiIpOwotICAgIGdvdG8gZXJyOwotICB9Ci0KLSAgcHJpbnRmKCJBYm91dCB0byBnZW5l
cmF0ZSBQLTI1NiBrZXlcbiIpOwotICBpZiAoIUVDX0tFWV9nZW5lcmF0ZV9rZXlfZmlwcyhlY19r
ZXkpKSB7Ci0gICAgcHJpbnRmKCJFQ19LRVlfZ2VuZXJhdGVfa2V5X2ZpcHMgZmFpbGVkXG4iKTsK
LSAgICBnb3RvIGVycjsKLSAgfQotCi0gIC8qIEVDRFNBIFNpZ24vVmVyaWZ5IFBXQ1QgKi8KLSAg
cHJpbnRmKCJBYm91dCB0byBFQ0RTQSBzaWduICIpOwotICBoZXhkdW1wKGtQbGFpbnRleHRTSEEy
NTYsIHNpemVvZihrUGxhaW50ZXh0U0hBMjU2KSk7Ci0gIEVDRFNBX1NJRyAqc2lnID0KLSAgICAg
IEVDRFNBX2RvX3NpZ24oa1BsYWludGV4dFNIQTI1Niwgc2l6ZW9mKGtQbGFpbnRleHRTSEEyNTYp
LCBlY19rZXkpOwotICBpZiAoc2lnID09IE5VTEwgfHwKLSAgICAgICFFQ0RTQV9kb192ZXJpZnko
a1BsYWludGV4dFNIQTI1Niwgc2l6ZW9mKGtQbGFpbnRleHRTSEEyNTYpLCBzaWcsCi0gICAgICAg
ICAgICAgICAgICAgICAgIGVjX2tleSkpIHsKLSAgICBwcmludGYoIkVDRFNBIFNpZ24vVmVyaWZ5
IFBXQ1QgZmFpbGVkLlxuIik7Ci0gICAgZ290byBlcnI7Ci0gIH0KLQotICBFQ0RTQV9TSUdfZnJl
ZShzaWcpOwotICBFQ19LRVlfZnJlZShlY19rZXkpOwotCi0gIC8qIERCUkcgKi8KLSAgQ1RSX0RS
QkdfU1RBVEUgZHJiZzsKLSAgcHJpbnRmKCJBYm91dCB0byBzZWVkIENUUi1EUkJHIHdpdGggIik7
Ci0gIGhleGR1bXAoa0RSQkdFbnRyb3B5LCBzaXplb2Yoa0RSQkdFbnRyb3B5KSk7Ci0gIGlmICgh
Q1RSX0RSQkdfaW5pdCgmZHJiZywga0RSQkdFbnRyb3B5LCBrRFJCR1BlcnNvbmFsaXphdGlvbiwK
LSAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrRFJCR1BlcnNvbmFsaXphdGlvbikpIHx8Ci0g
ICAgICAhQ1RSX0RSQkdfZ2VuZXJhdGUoJmRyYmcsIG91dHB1dCwgc2l6ZW9mKG91dHB1dCksIGtE
UkJHQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtEUkJHQUQpKSB8fAotICAg
ICAgIUNUUl9EUkJHX3Jlc2VlZCgmZHJiZywga0RSQkdFbnRyb3B5Miwga0RSQkdBRCwgc2l6ZW9m
KGtEUkJHQUQpKSB8fAotICAgICAgIUNUUl9EUkJHX2dlbmVyYXRlKCZkcmJnLCBvdXRwdXQsIHNp
emVvZihvdXRwdXQpLCBrRFJCR0FELAotICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihr
RFJCR0FEKSkpIHsKLSAgICBwcmludGYoIkRSQkcgZmFpbGVkXG4iKTsKLSAgICBnb3RvIGVycjsK
LSAgfQotICBwcmludGYoIiAgZ2VuZXJhdGVkICIpOwotICBoZXhkdW1wKG91dHB1dCwgc2l6ZW9m
KG91dHB1dCkpOwotICBDVFJfRFJCR19jbGVhcigmZHJiZyk7Ci0KLSAgcHJpbnRmKCJQQVNTXG4i
KTsKLSAgcmV0dXJuIDA7Ci0KLWVycjoKLSAgcHJpbnRmKCJGQUlMXG4iKTsKLSAgYWJvcnQoKTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9nby5tb2QgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvZ28ubW9kCmluZGV4IDA5ZDM2ZmJmNjA0
M2JmZmY4NWE3NmQwNDBiNmY0MjZlNmE4NmQ5ZTcuLmViNWE2OGE1YTYyN2FmNmI5ZDFiM2VkNTUz
ODVhODdkODFmMjdlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9nby5tb2QKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2dvLm1vZApA
QCAtMSArMSwzIEBACiBtb2R1bGUgYm9yaW5nc3NsLmdvb2dsZXNvdXJjZS5jb20vYm9yaW5nc3Ns
CisKK2dvIDEuMTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvYWVzLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
aW5jbHVkZS9vcGVuc3NsL2Flcy5oCmluZGV4IDExNTY1ODU0MmY0MmZkY2Y3YWVhOGNmMWIwMTQw
MmQxMDU1MmEyZjYuLmU1NjA2MjUzNWZlMzdjNjAzMDU4OWMwZDhkMzI1YWZiOWE0M2I4Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvYWVzLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3Bl
bnNzbC9hZXMuaApAQCAtNiw3ICs2LDcgQEAKICAqIGFyZSBtZXQ6CiAgKgogICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4gCisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgKgogICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
bgpAQCAtNzYsMTggKzc2LDE4IEBAIHN0cnVjdCBhZXNfa2V5X3N0IHsKIHR5cGVkZWYgc3RydWN0
IGFlc19rZXlfc3QgQUVTX0tFWTsKIAogLy8gQUVTX3NldF9lbmNyeXB0X2tleSBjb25maWd1cmVz
IHxhZXNrZXl8IHRvIGVuY3J5cHQgd2l0aCB0aGUgfGJpdHN8LWJpdCBrZXksCi0vLyB8a2V5fC4K
Ky8vIHxrZXl8LiB8a2V5fCBtdXN0IHBvaW50IHRvIHxiaXRzfC84IGJ5dGVzLiBJdCByZXR1cm5z
IHplcm8gb24gc3VjY2VzcyBhbmQgYQorLy8gbmVnYXRpdmUgbnVtYmVyIGlmIHxiaXRzfCBpcyBh
biBpbnZhbGlkIEFFUyBrZXkgc2l6ZS4KIC8vCi0vLyBXQVJOSU5HOiB1bmxpa2Ugb3RoZXIgT3Bl
blNTTCBmdW5jdGlvbnMsIHRoaXMgcmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIGEKLS8vIG5l
Z2F0aXZlIG51bWJlciBvbiBlcnJvci4KKy8vIFdBUk5JTkc6IHRoaXMgZnVuY3Rpb24gYnJlYWtz
IHRoZSB1c3VhbCByZXR1cm4gdmFsdWUgY29udmVudGlvbi4KIE9QRU5TU0xfRVhQT1JUIGludCBB
RVNfc2V0X2VuY3J5cHRfa2V5KGNvbnN0IHVpbnQ4X3QgKmtleSwgdW5zaWduZWQgYml0cywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFFU19LRVkgKmFlc2tleSk7CiAK
IC8vIEFFU19zZXRfZGVjcnlwdF9rZXkgY29uZmlndXJlcyB8YWVza2V5fCB0byBkZWNyeXB0IHdp
dGggdGhlIHxiaXRzfC1iaXQga2V5LAotLy8gfGtleXwuCisvLyB8a2V5fC4gfGtleXwgbXVzdCBw
b2ludCB0byB8Yml0c3wvOCBieXRlcy4gSXQgcmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIGEK
Ky8vIG5lZ2F0aXZlIG51bWJlciBpZiB8Yml0c3wgaXMgYW4gaW52YWxpZCBBRVMga2V5IHNpemUu
CiAvLwotLy8gV0FSTklORzogdW5saWtlIG90aGVyIE9wZW5TU0wgZnVuY3Rpb25zLCB0aGlzIHJl
dHVybnMgemVybyBvbiBzdWNjZXNzIGFuZCBhCi0vLyBuZWdhdGl2ZSBudW1iZXIgb24gZXJyb3Iu
CisvLyBXQVJOSU5HOiB0aGlzIGZ1bmN0aW9uIGJyZWFrcyB0aGUgdXN1YWwgcmV0dXJuIHZhbHVl
IGNvbnZlbnRpb24uCiBPUEVOU1NMX0VYUE9SVCBpbnQgQUVTX3NldF9kZWNyeXB0X2tleShjb25z
dCB1aW50OF90ICprZXksIHVuc2lnbmVkIGJpdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBRVNfS0VZICphZXNrZXkpOwogCkBAIC0xNjMsNiArMTYzLDMxIEBAIE9Q
RU5TU0xfRVhQT1JUIGludCBBRVNfdW53cmFwX2tleShjb25zdCBBRVNfS0VZICprZXksIGNvbnN0
IHVpbnQ4X3QgKml2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBp
bl9sZW4pOwogCiAKKy8vIEFFUyBrZXkgd3JhcCB3aXRoIHBhZGRpbmcuCisvLworLy8gVGhlc2Ug
ZnVuY3Rpb25zIGltcGxlbWVudCBBRVMgS2V5IFdyYXAgd2l0aCBQYWRkaW5nIG1vZGUsIGFzIGRl
ZmluZWQgaW4gUkZDCisvLyA1NjQ5LiBUaGV5IHNob3VsZCBuZXZlciBiZSB1c2VkIGV4Y2VwdCB0
byBpbnRlcm9wZXJhdGUgd2l0aCBleGlzdGluZyBzeXN0ZW1zCisvLyB0aGF0IHVzZSB0aGlzIG1v
ZGUuCisKKy8vIEFFU193cmFwX2tleV9wYWRkZWQgcGVyZm9ybXMgYSBwYWRkZWQgQUVTIGtleSB3
cmFwIG9uIHxpbnwgd2hpY2ggbXVzdCBiZQorLy8gYmV0d2VlbiAxIGFuZCAyXjMyLTEgYnl0ZXMu
IHxrZXl8IG11c3QgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQgZm9yIGVuY3J5cHRpb24uCisvLyBPbiBz
dWNjZXNzIGl0IHdyaXRlcyBhdCBtb3N0IHxtYXhfb3V0fCBieXRlcyBvZiBjaXBoZXJ0ZXh0IHRv
IHxvdXR8LCBzZXRzCisvLyB8Km91dF9sZW58IHRvIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRl
biwgYW5kIHJldHVybnMgb25lLiBPbiBmYWlsdXJlIGl0CisvLyByZXR1cm5zIHplcm8uIFRvIGVu
c3VyZSBzdWNjZXNzLCBzZXQgfG1heF9vdXR8IHRvIGF0IGxlYXN0IHxpbl9sZW58ICsgMTUuCitP
UEVOU1NMX0VYUE9SVCBpbnQgQUVTX3dyYXBfa2V5X3BhZGRlZChjb25zdCBBRVNfS0VZICprZXks
IHVpbnQ4X3QgKm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCAqb3V0X2xlbiwgc2l6ZV90IG1heF9vdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbiwgc2l6ZV90IGluX2xlbik7CisKKy8vIEFF
U191bndyYXBfa2V5X3BhZGRlZCBwZXJmb3JtcyBhIHBhZGRlZCBBRVMga2V5IHVud3JhcCBvbiB8
aW58IHdoaWNoIG11c3QgYmUKKy8vIGEgbXVsdGlwbGUgb2YgOCBieXRlcy4gfGtleXwgbXVzdCBo
YXZlIGJlZW4gY29uZmlndXJlZCBmb3IgZGVjcnlwdGlvbi4gT24KKy8vIHN1Y2Nlc3MgaXQgd3Jp
dGVzIGF0IG1vc3QgfG1heF9vdXR8IGJ5dGVzIHRvIHxvdXR8LCBzZXRzIHwqb3V0X2xlbnwgdG8g
dGhlCisvLyBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgYW5kIHJldHVybnMgb25lLiBPbiBmYWls
dXJlIGl0IHJldHVybnMgemVyby4gU2V0dGluZworLy8gfG1heF9vdXR8IHRvIHxpbl9sZW58IGlz
IGEgc2Vuc2libGUgZXN0aW1hdGUuCitPUEVOU1NMX0VYUE9SVCBpbnQgQUVTX3Vud3JhcF9rZXlf
cGFkZGVkKGNvbnN0IEFFU19LRVkgKmtleSwgdWludDhfdCAqb3V0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dF9sZW4sIHNpemVfdCBtYXhfb3V0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90
ICppbiwgc2l6ZV90IGluX2xlbik7CisKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9ICAv
LyBleHRlcm4gQwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2FzbjEu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvYXNuMS5oCmluZGV4IDhiNjFlYWEzMDBjODJkMmI3NmZj
OWE0NTBkNzNkMzkzODY5ZjI4ODYuLjZhZTgzMWI4MjFmYTc2Zjc5OGFmMzk5ZTE4ZWZhNjg4NzMy
ZTA5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvYXNuMS5oCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9p
bmNsdWRlL29wZW5zc2wvYXNuMS5oCkBAIC02NjYsNyArNjY2LDYgQEAgT1BFTlNTTF9FWFBPUlQg
aW50IAkJZDJpX0FTTjFfQk9PTEVBTihpbnQgKmEsY29uc3QgdW5zaWduZWQgY2hhciAqKnBwLGxv
bmcgbGVuZ3QKIERFQ0xBUkVfQVNOMV9GVU5DVElPTlMoQVNOMV9JTlRFR0VSKQogT1BFTlNTTF9F
WFBPUlQgaW50CQlpMmNfQVNOMV9JTlRFR0VSKEFTTjFfSU5URUdFUiAqYSx1bnNpZ25lZCBjaGFy
ICoqcHApOwogT1BFTlNTTF9FWFBPUlQgQVNOMV9JTlRFR0VSICpjMmlfQVNOMV9JTlRFR0VSKEFT
TjFfSU5URUdFUiAqKmEsY29uc3QgdW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCk7Ci1P
UEVOU1NMX0VYUE9SVCBBU04xX0lOVEVHRVIgKmQyaV9BU04xX1VJTlRFR0VSKEFTTjFfSU5URUdF
UiAqKmEsY29uc3QgdW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCk7CiBPUEVOU1NMX0VY
UE9SVCBBU04xX0lOVEVHRVIgKglBU04xX0lOVEVHRVJfZHVwKGNvbnN0IEFTTjFfSU5URUdFUiAq
eCk7CiBPUEVOU1NMX0VYUE9SVCBpbnQgQVNOMV9JTlRFR0VSX2NtcChjb25zdCBBU04xX0lOVEVH
RVIgKngsIGNvbnN0IEFTTjFfSU5URUdFUiAqeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRl
L29wZW5zc2wvYmFzZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9iYXNlLmgKaW5kZXggN2ZlMjMy
ZjNiNDg2MzQ3Zjk3YTI0OWNkMGYwODk2MzU2ZTUwZTBjMi4uY2IxYWZmYWNhY2NlMTNiZWFlNjFm
NGJlNGQ4NDhkZDI3OGQwZDMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9iYXNl
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9iYXNlLmgKQEAgLTI5MSw2ICsyOTEsMjQgQEAg
ZXh0ZXJuICJDIiB7CiAjZW5kaWYKICNlbmRpZiAgLy8gT1BFTlNTTF9BU01fSU5DT01QQVRJQkxF
CiAKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorLy8gZW51bXMgY2FuIGJlIHByZWRlY2xhcmVk
LCBidXQgb25seSBpbiBDKysgYW5kIG9ubHkgaWYgZ2l2ZW4gYW4gZXhwbGljaXQgdHlwZS4KKy8v
IEMgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgYW4gZXhwbGljaXQgdHlwZSBmb3IgZW51bXMgdGh1
cyBhICNkZWZpbmUgaXMgdXNlZAorLy8gdG8gZG8gdGhpcyBvbmx5IGZvciBDKysuIEhvd2V2ZXIs
IHRoZSBBQkkgdHlwZSBiZXR3ZWVuIEMgYW5kIEMrKyBuZWVkIHRvIGhhdmUKKy8vIGVxdWFsIHNp
emVzLCB3aGljaCBpcyBjb25maXJtZWQgaW4gYSB1bml0dGVzdC4KKyNkZWZpbmUgQk9SSU5HU1NM
X0VOVU1fSU5UIDogaW50CitlbnVtIHNzbF9lYXJseV9kYXRhX3JlYXNvbl90IEJPUklOR1NTTF9F
TlVNX0lOVDsKK2VudW0gc3NsX2VuY3J5cHRpb25fbGV2ZWxfdCBCT1JJTkdTU0xfRU5VTV9JTlQ7
CitlbnVtIHNzbF9wcml2YXRlX2tleV9yZXN1bHRfdCBCT1JJTkdTU0xfRU5VTV9JTlQ7CitlbnVt
IHNzbF9yZW5lZ290aWF0ZV9tb2RlX3QgQk9SSU5HU1NMX0VOVU1fSU5UOworZW51bSBzc2xfc2Vs
ZWN0X2NlcnRfcmVzdWx0X3QgQk9SSU5HU1NMX0VOVU1fSU5UOworZW51bSBzc2xfc2VsZWN0X2Nl
cnRfcmVzdWx0X3QgQk9SSU5HU1NMX0VOVU1fSU5UOworZW51bSBzc2xfdGlja2V0X2FlYWRfcmVz
dWx0X3QgQk9SSU5HU1NMX0VOVU1fSU5UOworZW51bSBzc2xfdmVyaWZ5X3Jlc3VsdF90IEJPUklO
R1NTTF9FTlVNX0lOVDsKKyNlbHNlCisjZGVmaW5lIEJPUklOR1NTTF9FTlVNX0lOVAorI2VuZGlm
CisKIC8vIENSWVBUT19USFJFQURJRCBpcyBhIGR1bW15IHZhbHVlLgogdHlwZWRlZiBpbnQgQ1JZ
UFRPX1RIUkVBRElEOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2Jpby5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2luY2x1ZGUvb3BlbnNzbC9iaW8uaAppbmRleCA4ZTJkYjY1ZjZkN2UzYWQ0MjUzNzFkMWU1
NzAxZDYwMTNiMGRlZThmLi5kYTBkY2RmZTY0MGEwNjIzNzUzZjAyNjZhZGIzYTVmZTg1YWI4NzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2Jpby5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRl
L29wZW5zc2wvYmlvLmgKQEAgLTkwNCw2ICs5MDQsNyBAQCBCU1NMX05BTUVTUEFDRV9CRUdJTgog
CiBCT1JJTkdTU0xfTUFLRV9ERUxFVEVSKEJJTywgQklPX2ZyZWUpCiBCT1JJTkdTU0xfTUFLRV9V
UF9SRUYoQklPLCBCSU9fdXBfcmVmKQorQk9SSU5HU1NMX01BS0VfREVMRVRFUihCSU9fTUVUSE9E
LCBCSU9fbWV0aF9mcmVlKQogCiBCU1NMX05BTUVTUEFDRV9FTkQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2luY2x1ZGUvb3BlbnNzbC9ibG93ZmlzaC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9ibG93Zmlz
aC5oCmluZGV4IGVjZjlkNDU2MWM2ZTk0ZWUzNzYwNzc3NTUxY2E2NGJmNzBjNGQ2ZmYuLjI5M2Ix
NzU1YmYzMTcwOGZiYjI1YTMwMTIwZDRmMTczMjY1MWI4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNs
dWRlL29wZW5zc2wvYmxvd2Zpc2guaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2Jsb3dmaXNo
LmgKQEAgLTgxLDkgKzgxLDkgQEAgT1BFTlNTTF9FWFBPUlQgdm9pZCBCRl9kZWNyeXB0KHVpbnQz
Ml90ICpkYXRhLCBjb25zdCBCRl9LRVkgKmtleSk7CiAKIE9QRU5TU0xfRVhQT1JUIHZvaWQgQkZf
ZWNiX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkZfS0VZICprZXksIGludCBlbmMpOwotT1BF
TlNTTF9FWFBPUlQgdm9pZCBCRl9jYmNfZW5jcnlwdChjb25zdCB1aW50OF90ICppbiwgdWludDhf
dCAqb3V0LCBsb25nIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgQkZfS0VZICpzY2hlZHVsZSwgdWludDhfdCAqaXZlYywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IGVuYyk7CitPUEVOU1NMX0VYUE9SVCB2b2lkIEJGX2NiY19l
bmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsIGNvbnN0IEJGX0tFWSAqc2NoZWR1bGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKml2ZWMsIGludCBl
bmMpOwogCiAKICNpZmRlZiAgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29w
ZW5zc2wvYm4uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvYm4uaAppbmRleCBjODk1Y2MxNGY0MTZi
OGExZWIyNzBhNDRiODc1Y2MxYTlmZGUwMjdhLi5iNmI3ZTlhYmZmOTc5ZWJiYTA0NjkxYTg4Y2Jj
Nzc4Y2M2MjYwOWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2JuLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2luY2x1ZGUvb3BlbnNzbC9ibi5oCkBAIC0xNjAsNyArMTYwLDcgQEAgZXh0ZXJuICJDIiB7
CiAjZGVmaW5lIEJOX0RFQ19GTVQxICIlIiBQUkl1MzIKICNkZWZpbmUgQk5fREVDX0ZNVDIgIiUw
OSIgUFJJdTMyCiAjZGVmaW5lIEJOX0hFWF9GTVQxICIlIiBQUkl4MzIKLSNkZWZpbmUgQk5fSEVY
X0ZNVDIgIiUwOCIgUFJJeDY0CisjZGVmaW5lIEJOX0hFWF9GTVQyICIlMDgiIFBSSXgzMgogI2Vs
c2UKICNlcnJvciAiTXVzdCBkZWZpbmUgZWl0aGVyIE9QRU5TU0xfMzJfQklUIG9yIE9QRU5TU0xf
NjRfQklUIgogI2VuZGlmCkBAIC05MzIsNiArOTMyLDEyIEBAIE9QRU5TU0xfRVhQT1JUIEJOX01P
TlRfQ1RYICpCTl9NT05UX0NUWF9uZXcodm9pZCk7CiBPUEVOU1NMX0VYUE9SVCBpbnQgQk5fTU9O
VF9DVFhfc2V0KEJOX01PTlRfQ1RYICptb250LCBjb25zdCBCSUdOVU0gKm1vZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQk5fQ1RYICpjdHgpOwogCisvLyBCTl9ibjJiaW5w
YWQgYmVoYXZlcyBsaWtlIHxCTl9ibjJiaW5fcGFkZGVkfCwgYnV0IGl0IHJldHVybnMgfGxlbnwg
b24gc3VjY2VzcworLy8gYW5kIC0xIG9uIGVycm9yLgorLy8KKy8vIFVzZSB8Qk5fYm4yYmluX3Bh
ZGRlZHwgaW5zdGVhZC4gSXQgaXMgfHNpemVfdHwtY2xlYW4uCitPUEVOU1NMX0VYUE9SVCBpbnQg
Qk5fYm4yYmlucGFkKGNvbnN0IEJJR05VTSAqaW4sIHVpbnQ4X3QgKm91dCwgaW50IGxlbik7CisK
IAogLy8gUHJpdmF0ZSBmdW5jdGlvbnMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNz
bC9ieXRlc3RyaW5nLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2J5dGVzdHJpbmcuaAppbmRleCA3
MDE0NjZlYTllODc2ZGZmMDdlYjc0Mjg2YTViYzY1Mzk2ZWY0ZmY4Li4wMjljMmJlMjdkMjMzMzlj
NDliY2I3ZjNkZmI1NWE1NzM3YjE4YTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3Ns
L2J5dGVzdHJpbmcuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2J5dGVzdHJpbmcuaApAQCAt
MTEwLDYgKzExMCwxMCBAQCBPUEVOU1NMX0VYUE9SVCBpbnQgQ0JTX2dldF91MjQoQ0JTICpjYnMs
IHVpbnQzMl90ICpvdXQpOwogLy8gYW5kIGFkdmFuY2VzIHxjYnN8LiBJdCByZXR1cm5zIG9uZSBv
biBzdWNjZXNzIGFuZCB6ZXJvIG9uIGVycm9yLgogT1BFTlNTTF9FWFBPUlQgaW50IENCU19nZXRf
dTMyKENCUyAqY2JzLCB1aW50MzJfdCAqb3V0KTsKIAorLy8gQ0JTX2dldF91NjQgc2V0cyB8Km91
dHwgdG8gdGhlIG5leHQsIGJpZy1lbmRpYW4gdWludDY0X3QgdmFsdWUgZnJvbSB8Y2JzfAorLy8g
YW5kIGFkdmFuY2VzIHxjYnN8LiBJdCByZXR1cm5zIG9uZSBvbiBzdWNjZXNzIGFuZCB6ZXJvIG9u
IGVycm9yLgorT1BFTlNTTF9FWFBPUlQgaW50IENCU19nZXRfdTY0KENCUyAqY2JzLCB1aW50NjRf
dCAqb3V0KTsKKwogLy8gQ0JTX2dldF9sYXN0X3U4IHNldHMgfCpvdXR8IHRvIHRoZSBsYXN0IHVp
bnQ4X3QgZnJvbSB8Y2JzfCBhbmQgc2hvcnRlbnMKIC8vIHxjYnN8LiBJdCByZXR1cm5zIG9uZSBv
biBzdWNjZXNzIGFuZCB6ZXJvIG9uIGVycm9yLgogT1BFTlNTTF9FWFBPUlQgaW50IENCU19nZXRf
bGFzdF91OChDQlMgKmNicywgdWludDhfdCAqb3V0KTsKQEAgLTM0MSw5ICszNDUsOSBAQCBzdHJ1
Y3QgY2JiX3N0IHsKICAgLy8gbGVuZ3RoLXByZWZpeCwgb3IgemVybyBpZiBubyBsZW5ndGgtcHJl
Zml4IGlzIHBlbmRpbmcuCiAgIHVpbnQ4X3QgcGVuZGluZ19sZW5fbGVuOwogICBjaGFyIHBlbmRp
bmdfaXNfYXNuMTsKLSAgLy8gaXNfdG9wX2xldmVsIGlzIHRydWUgaWZmIHRoaXMgaXMgYSB0b3At
bGV2ZWwgfENCQnwgKGFzIG9wcG9zZWQgdG8gYSBjaGlsZAorICAvLyBpc19jaGlsZCBpcyB0cnVl
IGlmZiB0aGlzIGlzIGEgY2hpbGQgfENCQnwgKGFzIG9wcG9zZWQgdG8gYSB0b3AtbGV2ZWwKICAg
Ly8gfENCQnwpLiBUb3AtbGV2ZWwgb2JqZWN0cyBhcmUgdmFsaWQgYXJndW1lbnRzIGZvciB8Q0JC
X2ZpbmlzaHwuCi0gIGNoYXIgaXNfdG9wX2xldmVsOworICBjaGFyIGlzX2NoaWxkOwogfTsKIAog
Ly8gQ0JCX3plcm8gc2V0cyBhbiB1bmluaXRpYWxpc2VkIHxjYmJ8IHRvIHRoZSB6ZXJvIHN0YXRl
LiBJdCBtdXN0IGJlCkBAIC00NTksNiArNDYzLDEwIEBAIE9QRU5TU0xfRVhQT1JUIGludCBDQkJf
YWRkX3UyNChDQkIgKmNiYiwgdWludDMyX3QgdmFsdWUpOwogLy8gcmV0dXJucyBvbmUgb24gc3Vj
Y2VzcyBhbmQgemVybyBvdGhlcndpc2UuCiBPUEVOU1NMX0VYUE9SVCBpbnQgQ0JCX2FkZF91MzIo
Q0JCICpjYmIsIHVpbnQzMl90IHZhbHVlKTsKIAorLy8gQ0JCX2FkZF91NjQgYXBwZW5kcyBhIDY0
LWJpdCwgYmlnLWVuZGlhbiBudW1iZXIgZnJvbSB8dmFsdWV8IHRvIHxjYmJ8LiBJdAorLy8gcmV0
dXJucyBvbmUgb24gc3VjY2VzcyBhbmQgemVybyBvdGhlcndpc2UuCitPUEVOU1NMX0VYUE9SVCBp
bnQgQ0JCX2FkZF91NjQoQ0JCICpjYmIsIHVpbnQ2NF90IHZhbHVlKTsKKwogLy8gQ0JCX2Rpc2Nh
cmRfY2hpbGQgZGlzY2FyZHMgdGhlIGN1cnJlbnQgdW5mbHVzaGVkIGNoaWxkIG9mIHxjYmJ8LiBO
ZWl0aGVyIHRoZQogLy8gY2hpbGQncyBjb250ZW50cyBub3IgdGhlIGxlbmd0aCBwcmVmaXggd2ls
bCBiZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgogT1BFTlNTTF9FWFBPUlQgdm9pZCBDQkJfZGlz
Y2FyZF9jaGlsZChDQkIgKmNiYik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2Nh
c3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvY2FzdC5oCmluZGV4IDI5NzhhNjdlOGM0MTEwODUx
ZWE3NzZkOWE4ZmRmYzQwMmNmZTRkMWIuLjFhMGY4MmRkZTJiZWRkOGEwYjhlYTEzYmE3ZGZkZWM4
YjEwYzM5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvY2FzdC5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9pbmNsdWRlL29wZW5zc2wvY2FzdC5oCkBAIC04MiwxMSArODIsMTEgQEAgT1BFTlNTTF9FWFBP
UlQgdm9pZCBDQVNUX2VjYl9lbmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQs
CiBPUEVOU1NMX0VYUE9SVCB2b2lkIENBU1RfZW5jcnlwdCh1aW50MzJfdCAqZGF0YSwgY29uc3Qg
Q0FTVF9LRVkgKmtleSk7CiBPUEVOU1NMX0VYUE9SVCB2b2lkIENBU1RfZGVjcnlwdCh1aW50MzJf
dCAqZGF0YSwgY29uc3QgQ0FTVF9LRVkgKmtleSk7CiBPUEVOU1NMX0VYUE9SVCB2b2lkIENBU1Rf
Y2JjX2VuY3J5cHQoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxlbmd0aCwgY29uc3QgQ0FTVF9LRVkgKmtz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsIGNv
bnN0IENBU1RfS0VZICprcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50OF90ICppdiwgaW50IGVuYyk7CiAKIE9QRU5TU0xfRVhQT1JUIHZvaWQgQ0FTVF9jZmI2NF9l
bmNyeXB0KGNvbnN0IHVpbnQ4X3QgKmluLCB1aW50OF90ICpvdXQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxlbmd0aCwgY29uc3QgQ0FTVF9LRVkgKnNjaGVk
dWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0
aCwgY29uc3QgQ0FTVF9LRVkgKnNjaGVkdWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDhfdCAqaXZlYywgaW50ICpudW0sIGludCBlbmMpOwogCiAjaWZkZWYg
IF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2NpcGhlci5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2luY2x1ZGUvb3BlbnNzbC9jaXBoZXIuaAppbmRleCBlOTU0NWM4MmNhN2U2NjNhZTI1ZDll
ODVkMjlhY2VhMmJlNTRkMzhmLi5lYTdhOTQwYWIzMDAzZjY5MTkzMjJlZjFjNGI3Y2FhYTlkZWE4
NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2NpcGhlci5oCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9p
bmNsdWRlL29wZW5zc2wvY2lwaGVyLmgKQEAgLTQxOSw5ICs0MTksMjcgQEAgT1BFTlNTTF9FWFBP
UlQgY29uc3QgRVZQX0NJUEhFUiAqRVZQX2Flc18xOTJfY3RyKHZvaWQpOwogT1BFTlNTTF9FWFBP
UlQgY29uc3QgRVZQX0NJUEhFUiAqRVZQX2Flc18xOTJfZ2NtKHZvaWQpOwogT1BFTlNTTF9FWFBP
UlQgY29uc3QgRVZQX0NJUEhFUiAqRVZQX2Flc18xOTJfb2ZiKHZvaWQpOwogCisvLyBFVlBfZGVz
X2VkZTNfZWNiIGlzIGFuIGFsaWFzIGZvciB8RVZQX2Rlc19lZGUzfC4gVXNlIHRoZSBmb3JtZXIg
aW5zdGVhZC4KK09QRU5TU0xfRVhQT1JUIGNvbnN0IEVWUF9DSVBIRVIgKkVWUF9kZXNfZWRlM19l
Y2Iodm9pZCk7CisKIC8vIEVWUF9hZXNfMTI4X2NmYjEyOCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBk
ZWNyZXBpdC4KIE9QRU5TU0xfRVhQT1JUIGNvbnN0IEVWUF9DSVBIRVIgKkVWUF9hZXNfMTI4X2Nm
YjEyOCh2b2lkKTsKIAorLy8gRVZQX2JmX2VjYiBpcyBCbG93ZmlzaCBpbiBFQ0IgbW9kZSBhbmQg
aXMgb25seSBhdmFpbGFibGUgaW4gZGVjcmVwaXQuCitPUEVOU1NMX0VYUE9SVCBjb25zdCBFVlBf
Q0lQSEVSICpFVlBfYmZfZWNiKHZvaWQpOworCisvLyBFVlBfYmZfY2JjIGlzIEJsb3dmaXNoIGlu
IENCQyBtb2RlIGFuZCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBkZWNyZXBpdC4KK09QRU5TU0xfRVhQ
T1JUIGNvbnN0IEVWUF9DSVBIRVIgKkVWUF9iZl9jYmModm9pZCk7CisKKy8vIEVWUF9iZl9jZmIg
aXMgQmxvd2Zpc2ggaW4gNjQtYml0IENGQiBtb2RlIGFuZCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBk
ZWNyZXBpdC4KK09QRU5TU0xfRVhQT1JUIGNvbnN0IEVWUF9DSVBIRVIgKkVWUF9iZl9jZmIodm9p
ZCk7CisKKy8vIEVWUF9jYXN0NV9lY2IgaXMgQ0FTVDUgaW4gRUNCIG1vZGUgYW5kIGlzIG9ubHkg
YXZhaWxhYmxlIGluIGRlY3JlcGl0LgorT1BFTlNTTF9FWFBPUlQgY29uc3QgRVZQX0NJUEhFUiAq
RVZQX2Nhc3Q1X2VjYih2b2lkKTsKKworLy8gRVZQX2Nhc3Q1X2NiYyBpcyBDQVNUNSBpbiBDQkMg
bW9kZSBhbmQgaXMgb25seSBhdmFpbGFibGUgaW4gZGVjcmVwaXQuCitPUEVOU1NMX0VYUE9SVCBj
b25zdCBFVlBfQ0lQSEVSICpFVlBfY2FzdDVfY2JjKHZvaWQpOworCiAvLyBUaGUgZm9sbG93aW5n
IGZsYWdzIGRvIG5vdGhpbmcgYW5kIGFyZSBpbmNsdWRlZCBvbmx5IHRvIG1ha2UgaXQgZWFzaWVy
IHRvCiAvLyBjb21waWxlIGNvZGUgd2l0aCBCb3JpbmdTU0wuCiAjZGVmaW5lIEVWUF9DSVBIX0ND
TV9NT0RFICgtMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvY3B1LmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
aW5jbHVkZS9vcGVuc3NsL2NwdS5oCmluZGV4IGVkYWM5OGVhMjRlNzgyMTZlN2FiOTRlMjAyYzRl
MjM2YWE1NmE4MjguLmViMzZhNTdlMDBhYTYyZDFjMGNlMTYxNWM4OTA3YThmNDZjZTdlZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvY3B1LmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3Bl
bnNzbC9jcHUuaApAQCAtOTMsNyArOTMsNyBAQCBleHRlcm4gIkMiIHsKIC8vIGJpdHMgaW4gWENS
MCwgc28gaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBjaGVjayB0aG9zZS4KIGV4dGVybiB1aW50MzJf
dCBPUEVOU1NMX2lhMzJjYXBfUFs0XTsKIAotI2lmIGRlZmluZWQoQk9SSU5HU1NMX0ZJUFMpCisj
aWYgZGVmaW5lZChCT1JJTkdTU0xfRklQUykgJiYgIWRlZmluZWQoQk9SSU5HU1NMX1NIQVJFRF9M
SUJSQVJZKQogY29uc3QgdWludDMyX3QgKk9QRU5TU0xfaWEzMmNhcF9nZXQodm9pZCk7CiAjZWxz
ZQogT1BFTlNTTF9JTkxJTkUgY29uc3QgdWludDMyX3QgKk9QRU5TU0xfaWEzMmNhcF9nZXQodm9p
ZCkgewpAQCAtMTkwLDYgKzE5MCwyMSBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBPUEVOU1NMX3Bw
YzY0bGVfaHdjYXAyOwogCiAjZW5kaWYgIC8vIE9QRU5TU0xfUFBDNjRMRQogCisjaWYgIWRlZmlu
ZWQoTkRFQlVHKSAmJiAhZGVmaW5lZChCT1JJTkdTU0xfRklQUykKKy8vIFJ1bnRpbWUgQ1BVIGRp
c3BhdGNoIHRlc3Rpbmcgc3VwcG9ydAorCisvLyBCT1JJTkdTU0xfZnVuY3Rpb25faGl0IGlzIGFu
IGFycmF5IG9mIGZsYWdzLiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB3aWxsCisvLyBzZXQgdGhl
c2UgZmxhZ3MgaW4gbm9uLUZJUFMgYnVpbGRzIGlmIE5ERUJVRyBpcyBub3QgZGVmaW5lZC4KKy8v
ICAgMDogYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxvY2tzCisvLyAgIDE6IGFlc19od19lbmNyeXB0
CisvLyAgIDI6IGFlc25pX2djbV9lbmNyeXB0CisvLyAgIDM6IGFlc19od19zZXRfZW5jcnlwdF9r
ZXkKKy8vICAgNDogdnBhZXNfZW5jcnlwdAorLy8gICA1OiB2cGFlc19zZXRfZW5jcnlwdF9rZXkK
Ky8vICAgNjogYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3MKK2V4dGVybiB1aW50OF90IEJPUklO
R1NTTF9mdW5jdGlvbl9oaXRbN107CisjZW5kaWYgIC8vICFOREVCVUcgJiYgIUZJUFMKKwogCiAj
aWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0gIC8vIGV4dGVybiBDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
aW5jbHVkZS9vcGVuc3NsL2NyeXB0by5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9jcnlwdG8uaApp
bmRleCBkMzVjZjcxYTgwZjg2YTg5YzUzNTQ0OTkxM2NkY2M1ZGRhNjAyZTcwLi5iOWQ4NDQ5Nzcx
NTNlZmZhNTk1YWQ2MjRiYTliYTBmNTU4MWJhZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9v
cGVuc3NsL2NyeXB0by5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvY3J5cHRvLmgKQEAgLTE2
LDYgKzE2LDcgQEAKICNkZWZpbmUgT1BFTlNTTF9IRUFERVJfQ1JZUFRPX0gKIAogI2luY2x1ZGUg
PG9wZW5zc2wvYmFzZS5oPgorI2luY2x1ZGUgPG9wZW5zc2wvc2hhLmg+CiAKIC8vIFVwc3RyZWFt
IE9wZW5TU0wgZGVmaW5lcyB8T1BFTlNTTF9tYWxsb2N8LCBldGMuLCBpbiBjcnlwdG8uaCByYXRo
ZXIgdGhhbgogLy8gbWVtLmguCkBAIC01OCw5ICs1OSwxMyBAQCBPUEVOU1NMX0VYUE9SVCBpbnQg
Q1JZUFRPX2hhc19hc20odm9pZCk7CiAvLyB3aGljaCBjYXNlIGl0IHJldHVybnMgb25lLgogT1BF
TlNTTF9FWFBPUlQgaW50IEZJUFNfbW9kZSh2b2lkKTsKIAotLy8gQk9SSU5HU1NMX3NlbGZfdGVz
dCB0cmlnZ2VycyB0aGUgRklQUyBLQVQtYmFzZWQgc2VsZiB0ZXN0cy4gSXQgcmV0dXJucyBvbmUK
LS8vIG9uIHN1Y2Nlc3MgYW5kIHplcm8gb24gZXJyb3IuCi1PUEVOU1NMX0VYUE9SVCBpbnQgQk9S
SU5HU1NMX3NlbGZfdGVzdCh2b2lkKTsKKy8vIEJPUklOR1NTTF9zZWxmX3Rlc3QgdHJpZ2dlcnMg
dGhlIEZJUFMgS0FULWJhc2VkIHNlbGYgdGVzdHMuIEl0IHJldHVybnMgb25lIG9uCisvLyBzdWNj
ZXNzIGFuZCB6ZXJvIG9uIGVycm9yLiBUaGUgYXJndW1lbnQgaXMgdGhlIGludGVncml0eSBoYXNo
IG9mIHRoZSBGSVBTCisvLyBtb2R1bGUgYW5kIG1heSBiZSB1c2VkIHRvIGNoZWNrIGFuZCB3cml0
ZSBmbGFnIGZpbGVzIHRvIHN1cHByZXNzIGR1cGxpY2F0ZQorLy8gc2VsZi10ZXN0cy4gSWYgaXQg
aXMgYWxsIHplcm9zLCBubyBmbGFnIGZpbGUgd2lsbCBiZSBjaGVja2VkIG5vciB3cml0dGVuIGFu
ZAorLy8gdGVzdHMgd2lsbCBhbHdheXMgYmUgcnVuLgorT1BFTlNTTF9FWFBPUlQgaW50IEJPUklO
R1NTTF9zZWxmX3Rlc3QoCisgICAgY29uc3QgdWludDhfdCBtb2R1bGVfc2hhNTEyX2hhc2hbU0hB
NTEyX0RJR0VTVF9MRU5HVEhdKTsKIAogCiAvLyBEZXByZWNhdGVkIGZ1bmN0aW9ucy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvZGlnZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3Ns
L2RpZ2VzdC5oCmluZGV4IDFhMWNhMjk3MzJhZmFlMzE3YzhlODc0MGM2MjllODkyMmZjODMwOTMu
LmM3YzY3OTc2MGEzMDMyOTMxMWI0YTZjMGRiNDc1YjIzNzU1MzcwMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9pbmNsdWRlL29wZW5zc2wvZGlnZXN0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9kaWdl
c3QuaApAQCAtMjY5LDYgKzI2OSwxMSBAQCBPUEVOU1NMX0VYUE9SVCBFVlBfTURfQ1RYICpFVlBf
TURfQ1RYX2NyZWF0ZSh2b2lkKTsKIC8vIEVWUF9NRF9DVFhfZGVzdHJveSBjYWxscyB8RVZQX01E
X0NUWF9mcmVlfC4KIE9QRU5TU0xfRVhQT1JUIHZvaWQgRVZQX01EX0NUWF9kZXN0cm95KEVWUF9N
RF9DVFggKmN0eCk7CiAKKy8vIEVWUF9EaWdlc3RGaW5hbFhPRiByZXR1cm5zIHplcm8gYW5kIGFk
ZHMgYW4gZXJyb3IgdG8gdGhlIGVycm9yIHF1ZXVlLgorLy8gQm9yaW5nU1NMIGRvZXMgbm90IHN1
cHBvcnQgYW55IFhPRiBkaWdlc3RzLgorT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9EaWdlc3RGaW5h
bFhPRihFVlBfTURfQ1RYICpjdHgsIHVpbnQ4X3QgKm91dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbik7CisKIAogc3RydWN0IGV2cF9tZF9wY3R4X29w
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9kc2EuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRl
L29wZW5zc2wvZHNhLmgKaW5kZXggYmVkOTNjNWQ1YjVlYzYwMjA4ZDVmY2JmMTA0OTZjZWViODcz
MGVmMy4uOGUzYjliM2MxZmVmNmNmMmM3M2RmZTM5YjczYTJiYmQ2OTk0MmQyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9kc2EuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2Rz
YS5oCkBAIC00MzYsNSArNDM2LDYgQEAgQlNTTF9OQU1FU1BBQ0VfRU5ECiAjZGVmaW5lIERTQV9S
X0JBRF9WRVJTSU9OIDEwNAogI2RlZmluZSBEU0FfUl9ERUNPREVfRVJST1IgMTA1CiAjZGVmaW5l
IERTQV9SX0VOQ09ERV9FUlJPUiAxMDYKKyNkZWZpbmUgRFNBX1JfSU5WQUxJRF9QQVJBTUVURVJT
IDEwNwogCiAjZW5kaWYgIC8vIE9QRU5TU0xfSEVBREVSX0RTQV9ICmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
aW5jbHVkZS9vcGVuc3NsL2VjLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2VjLmgKaW5kZXggOTY2
MzkzZWEzYjcyNjIxNGFhODRhNjA0YzhlNWExMzY1NGRjZGY3Ni4uZmNlY2I2MjI1MmE5N2FlNWVh
NzAzYWMxNjc2MDg2M2RlODcwMjMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9l
Yy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvZWMuaApAQCAtMTMzLDYgKzEzMyw5IEBAIE9Q
RU5TU0xfRVhQT1JUIGNvbnN0IEVDX1BPSU5UICpFQ19HUk9VUF9nZXQwX2dlbmVyYXRvcihjb25z
dCBFQ19HUk9VUCAqZ3JvdXApOwogLy8gfGdyb3VwfCB0aGF0IHNwZWNpZmllcyB0aGUgb3JkZXIg
b2YgdGhlIGdyb3VwLgogT1BFTlNTTF9FWFBPUlQgY29uc3QgQklHTlVNICpFQ19HUk9VUF9nZXQw
X29yZGVyKGNvbnN0IEVDX0dST1VQICpncm91cCk7CiAKKy8vIEVDX0dST1VQX29yZGVyX2JpdHMg
cmV0dXJucyB0aGUgbnVtYmVyIG9mIGJpdHMgb2YgdGhlIG9yZGVyIG9mIHxncm91cHwuCitPUEVO
U1NMX0VYUE9SVCBpbnQgRUNfR1JPVVBfb3JkZXJfYml0cyhjb25zdCBFQ19HUk9VUCAqZ3JvdXAp
OworCiAvLyBFQ19HUk9VUF9nZXRfY29mYWN0b3Igc2V0cyB8KmNvZmFjdG9yfCB0byB0aGUgY29m
YWN0b3Igb2YgfGdyb3VwfCB1c2luZwogLy8gfGN0eHwsIGlmIGl0J3Mgbm90IE5VTEwuIEl0IHJl
dHVybnMgb25lIG9uIHN1Y2Nlc3MgYW5kIHplcm8gb3RoZXJ3aXNlLgogT1BFTlNTTF9FWFBPUlQg
aW50IEVDX0dST1VQX2dldF9jb2ZhY3Rvcihjb25zdCBFQ19HUk9VUCAqZ3JvdXAsCkBAIC0xNTks
NiArMTYyLDExIEBAIE9QRU5TU0xfRVhQT1JUIHVuc2lnbmVkIEVDX0dST1VQX2dldF9kZWdyZWUo
Y29uc3QgRUNfR1JPVVAgKmdyb3VwKTsKIC8vIGZvciB8TklEX1g5XzYyX3ByaW1lMjU2djF8Lgog
T1BFTlNTTF9FWFBPUlQgY29uc3QgY2hhciAqRUNfY3VydmVfbmlkMm5pc3QoaW50IG5pZCk7CiAK
Ky8vIEVDX2N1cnZlX25pc3QybmlkIHJldHVybnMgdGhlIE5JRCBvZiB0aGUgZWxsaXB0aWMgY3Vy
dmUgc3BlY2lmaWVkIGJ5IHRoZSBOSVNUCisvLyBuYW1lIHxuYW1lfCwgb3IgfE5JRF91bmRlZnwg
aWYgfG5hbWV8IGlzIG5vdCBhIHJlY29nbml6ZWQgbmFtZS4gRm9yIGV4YW1wbGUsCisvLyBpdCBy
ZXR1cm5zIHxOSURfWDlfNjJfcHJpbWUyNTZ2MXwgZm9yICJQLTI1NiIuCitPUEVOU1NMX0VYUE9S
VCBpbnQgRUNfY3VydmVfbmlzdDJuaWQoY29uc3QgY2hhciAqbmFtZSk7CisKIAogLy8gUG9pbnRz
IG9uIGVsbGlwdGljIGN1cnZlcy4KIApAQCAtMzE3LDYgKzMyNSw3IEBAIE9QRU5TU0xfRVhQT1JU
IGludCBFQ19HUk9VUF9nZXRfb3JkZXIoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBCSUdOVU0gKm9y
ZGVyLAogT1BFTlNTTF9FWFBPUlQgdm9pZCBFQ19HUk9VUF9zZXRfYXNuMV9mbGFnKEVDX0dST1VQ
ICpncm91cCwgaW50IGZsYWcpOwogCiAjZGVmaW5lIE9QRU5TU0xfRUNfTkFNRURfQ1VSVkUgMAor
I2RlZmluZSBPUEVOU1NMX0VDX0VYUExJQ0lUX0NVUlZFIDEKIAogdHlwZWRlZiBzdHJ1Y3QgZWNf
bWV0aG9kX3N0IEVDX01FVEhPRDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9l
Y19rZXkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvZWNfa2V5LmgKaW5kZXggOWJjNzg4NzU4YjI2
YmI0ODgzNjI2YTgwZjNlMGI4YzhkNmViNzk3NC4uM2IxYTU2NjZmYTFmMjA3MTIxMjM5M2EzZjVj
OGQ1Mzk0YzMyZWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9lY19rZXkuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2VjX2tleS5oCkBAIC0xNzcsNiArMTc3LDEyIEBAIE9Q
RU5TU0xfRVhQT1JUIGludCBFQ19LRVlfc2V0X3B1YmxpY19rZXlfYWZmaW5lX2Nvb3JkaW5hdGVz
KEVDX0tFWSAqa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQklHTlVNICp4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklHTlVNICp5KTsKIAorLy8gRUNfS0VZ
X2tleTJidWYgZW5jb2RlcyB0aGUgcHVibGljIGtleSBpbiB8a2V5fCB0byBhbiBhbGxvY2F0ZWQg
b2N0ZXQgc3RyaW5nCisvLyBhbmQgc2V0cyB8Km91dF9idWZ8IHRvIHBvaW50IHRvIGl0LiBJdCBy
ZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGVuY29kZWQKKy8vIG9jdGV0IHN0cmluZyBvciB6ZXJv
IGlmIGFuIGVycm9yIG9jY3VycmVkLgorT1BFTlNTTF9FWFBPUlQgc2l6ZV90IEVDX0tFWV9rZXky
YnVmKEVDX0tFWSAqa2V5LCBwb2ludF9jb252ZXJzaW9uX2Zvcm1fdCBmb3JtLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipvdXRfYnVmLCBCTl9D
VFggKmN0eCk7CisKIAogLy8gS2V5IGdlbmVyYXRpb24uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNs
dWRlL29wZW5zc2wvZW5naW5lLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2VuZ2luZS5oCmluZGV4
IDlkNDU5NTI3NzJiZjljNTkxNTU1ZGY4NmYzZDk2MmM3ZTMwZDk4NzQuLmNlNjBkZTQ2ZWZlM2Zl
Y2Y3M2QwMGJjYzM2YjkxYjhmODI1NWYzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5z
c2wvZW5naW5lLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9lbmdpbmUuaApAQCAtNDAsOCAr
NDAsOCBAQCBleHRlcm4gIkMiIHsKIE9QRU5TU0xfRVhQT1JUIEVOR0lORSAqRU5HSU5FX25ldyh2
b2lkKTsKIAogLy8gRU5HSU5FX2ZyZWUgZGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50cyBm
b3IgYWxsIG1ldGhvZHMgbGlua2VkIGZyb20KLS8vIHxlbmdpbmV8IGFuZCBmcmVlcyB8ZW5naW5l
fCBpdHNlbGYuCi1PUEVOU1NMX0VYUE9SVCB2b2lkIEVOR0lORV9mcmVlKEVOR0lORSAqZW5naW5l
KTsKKy8vIHxlbmdpbmV8IGFuZCBmcmVlcyB8ZW5naW5lfCBpdHNlbGYuIEl0IHJldHVybnMgb25l
LgorT1BFTlNTTF9FWFBPUlQgaW50IEVOR0lORV9mcmVlKEVOR0lORSAqZW5naW5lKTsKIAogCiAv
LyBNZXRob2QgYWNjZXNzb3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9ldnAu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvZXZwLmgKaW5kZXggMWQ3MTkyZGFmNTQyY2UyMjcxMzVh
NzQ5MTQ4OTFiMGFlMzljOWJiMy4uOTk5ZTE5ZDgyNDFmMGJiOWJmMTA2NjgwYjNmNzFjNDY3ZDU0
MDEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9ldnAuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5j
bHVkZS9vcGVuc3NsL2V2cC5oCkBAIC0xNzAsMjIgKzE3MCwxMyBAQCBPUEVOU1NMX0VYUE9SVCBp
bnQgRVZQX1BLRVlfYXNzaWduX0VDX0tFWShFVlBfUEtFWSAqcGtleSwgRUNfS0VZICprZXkpOwog
T1BFTlNTTF9FWFBPUlQgRUNfS0VZICpFVlBfUEtFWV9nZXQwX0VDX0tFWShjb25zdCBFVlBfUEtF
WSAqcGtleSk7CiBPUEVOU1NMX0VYUE9SVCBFQ19LRVkgKkVWUF9QS0VZX2dldDFfRUNfS0VZKGNv
bnN0IEVWUF9QS0VZICpwa2V5KTsKIAotLy8gRVZQX1BLRVlfbmV3X2VkMjU1MTlfcHVibGljIHJl
dHVybnMgYSBuZXdseSBhbGxvY2F0ZWQgfEVWUF9QS0VZfCB3cmFwcGluZyBhbgotLy8gRWQyNTUx
OSBwdWJsaWMga2V5LCBvciBOVUxMIG9uIGFsbG9jYXRpb24gZXJyb3IuCi1PUEVOU1NMX0VYUE9S
VCBFVlBfUEtFWSAqRVZQX1BLRVlfbmV3X2VkMjU1MTlfcHVibGljKAotICAgIGNvbnN0IHVpbnQ4
X3QgcHVibGljX2tleVszMl0pOwotCi0vLyBFVlBfUEtFWV9uZXdfZWQyNTUxOV9wcml2YXRlIHJl
dHVybnMgYSBuZXdseSBhbGxvY2F0ZWQgfEVWUF9QS0VZfCB3cmFwcGluZyBhbgotLy8gRWQyNTUx
OSBwcml2YXRlIGtleSwgb3IgTlVMTCBvbiBhbGxvY2F0aW9uIGVycm9yLgotT1BFTlNTTF9FWFBP
UlQgRVZQX1BLRVkgKkVWUF9QS0VZX25ld19lZDI1NTE5X3ByaXZhdGUoCi0gICAgY29uc3QgdWlu
dDhfdCBwcml2YXRlX2tleVs2NF0pOwotCiAjZGVmaW5lIEVWUF9QS0VZX05PTkUgTklEX3VuZGVm
CiAjZGVmaW5lIEVWUF9QS0VZX1JTQSBOSURfcnNhRW5jcnlwdGlvbgogI2RlZmluZSBFVlBfUEtF
WV9SU0FfUFNTIE5JRF9yc2Fzc2FQc3MKICNkZWZpbmUgRVZQX1BLRVlfRFNBIE5JRF9kc2EKICNk
ZWZpbmUgRVZQX1BLRVlfRUMgTklEX1g5XzYyX2lkX2VjUHVibGljS2V5CiAjZGVmaW5lIEVWUF9Q
S0VZX0VEMjU1MTkgTklEX0VEMjU1MTkKKyNkZWZpbmUgRVZQX1BLRVlfWDI1NTE5IE5JRF9YMjU1
MTkKIAogLy8gRVZQX1BLRVlfYXNzaWduIHNldHMgdGhlIHVuZGVybHlpbmcga2V5IG9mIHxwa2V5
fCB0byB8a2V5fCwgd2hpY2ggbXVzdCBiZSBvZgogLy8gdGhlIGdpdmVuIHR5cGUuIEl0IHJldHVy
bnMgb25lIGlmIHN1Y2Nlc3NmdWwgb3IgemVybyBpZiB0aGUgfHR5cGV8IGFyZ3VtZW50CkBAIC0y
NDEsNiArMjMyLDQ4IEBAIE9QRU5TU0xfRVhQT1JUIEVWUF9QS0VZICpFVlBfcGFyc2VfcHJpdmF0
ZV9rZXkoQ0JTICpjYnMpOwogT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9tYXJzaGFsX3ByaXZhdGVf
a2V5KENCQiAqY2JiLCBjb25zdCBFVlBfUEtFWSAqa2V5KTsKIAogCisvLyBSYXcga2V5cworLy8K
Ky8vIFNvbWUga2V5cyB0eXBlcyBzdXBwb3J0IGEgInJhdyIgc2VyaWFsaXphdGlvbi4gQ3VycmVu
dGx5IHRoZSBvbmx5IHN1cHBvcnRlZAorLy8gcmF3IGZvcm1hdCBpcyBFZDI1NTE5LCB3aGVyZSB0
aGUgcHVibGljIGtleSBhbmQgcHJpdmF0ZSBrZXkgZm9ybWF0cyBhcmUgdGhvc2UKKy8vIHNwZWNp
ZmllZCBpbiBSRkMgODAzMi4gTm90ZSB0aGUgUkZDIDgwMzIgcHJpdmF0ZSBrZXkgZm9ybWF0IGlz
IHRoZSAzMi1ieXRlCisvLyBwcmVmaXggb2YgfEVEMjU1MTlfc2lnbnwncyA2NC1ieXRlIHByaXZh
dGUga2V5LgorCisvLyBFVlBfUEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5IHJldHVybnMgYSBuZXds
eSBhbGxvY2F0ZWQgfEVWUF9QS0VZfCB3cmFwcGluZyBhCisvLyBwcml2YXRlIGtleSBvZiB0aGUg
c3BlY2lmaWVkIHR5cGUuIEl0IHJldHVybnMgb25lIG9uIHN1Y2Nlc3MgYW5kIHplcm8gb24KKy8v
IGVycm9yLgorT1BFTlNTTF9FWFBPUlQgRVZQX1BLRVkgKkVWUF9QS0VZX25ld19yYXdfcHJpdmF0
ZV9rZXkoaW50IHR5cGUsIEVOR0lORSAqdW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVu
KTsKKworLy8gRVZQX1BLRVlfbmV3X3Jhd19wdWJsaWNfa2V5IHJldHVybnMgYSBuZXdseSBhbGxv
Y2F0ZWQgfEVWUF9QS0VZfCB3cmFwcGluZyBhCisvLyBwdWJsaWMga2V5IG9mIHRoZSBzcGVjaWZp
ZWQgdHlwZS4gSXQgcmV0dXJucyBvbmUgb24gc3VjY2VzcyBhbmQgemVybyBvbgorLy8gZXJyb3Iu
CitPUEVOU1NMX0VYUE9SVCBFVlBfUEtFWSAqRVZQX1BLRVlfbmV3X3Jhd19wdWJsaWNfa2V5KGlu
dCB0eXBlLCBFTkdJTkUgKnVudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworCisvLyBF
VlBfUEtFWV9nZXRfcmF3X3ByaXZhdGVfa2V5IG91dHB1dHMgdGhlIHByaXZhdGUga2V5IGZvciB8
cGtleXwgaW4gcmF3IGZvcm0uCisvLyBJZiB8b3V0fCBpcyBOVUxMLCBpdCBzZXRzIHwqb3V0X2xl
bnwgdG8gdGhlIHNpemUgb2YgdGhlIHJhdyBwcml2YXRlIGtleS4KKy8vIE90aGVyd2lzZSwgaXQg
d3JpdGVzIGF0IG1vc3QgfCpvdXRfbGVufCBieXRlcyB0byB8b3V0fCBhbmQgc2V0cyB8Km91dF9s
ZW58IHRvCisvLyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCisvLworLy8gSXQgcmV0dXJu
cyBvbmUgb24gc3VjY2VzcyBhbmQgemVybyBpZiB8cGtleXwgaGFzIG5vIHByaXZhdGUga2V5LCB0
aGUga2V5CisvLyB0eXBlIGRvZXMgbm90IHN1cHBvcnQgYSByYXcgZm9ybWF0LCBvciB0aGUgYnVm
ZmVyIGlzIHRvbyBzbWFsbC4KK09QRU5TU0xfRVhQT1JUIGludCBFVlBfUEtFWV9nZXRfcmF3X3By
aXZhdGVfa2V5KGNvbnN0IEVWUF9QS0VZICpwa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0LCBzaXplX3QgKm91dF9sZW4pOwor
CisvLyBFVlBfUEtFWV9nZXRfcmF3X3B1YmxpY19rZXkgb3V0cHV0cyB0aGUgcHVibGljIGtleSBm
b3IgfHBrZXl8IGluIHJhdyBmb3JtLgorLy8gSWYgfG91dHwgaXMgTlVMTCwgaXQgc2V0cyB8Km91
dF9sZW58IHRvIHRoZSBzaXplIG9mIHRoZSByYXcgcHVibGljIGtleS4KKy8vIE90aGVyd2lzZSwg
aXQgd3JpdGVzIGF0IG1vc3QgfCpvdXRfbGVufCBieXRlcyB0byB8b3V0fCBhbmQgc2V0cyB8Km91
dF9sZW58IHRvCisvLyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCisvLworLy8gSXQgcmV0
dXJucyBvbmUgb24gc3VjY2VzcyBhbmQgemVybyBpZiB8cGtleXwgaGFzIG5vIHB1YmxpYyBrZXks
IHRoZSBrZXkKKy8vIHR5cGUgZG9lcyBub3Qgc3VwcG9ydCBhIHJhdyBmb3JtYXQsIG9yIHRoZSBi
dWZmZXIgaXMgdG9vIHNtYWxsLgorT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9QS0VZX2dldF9yYXdf
cHVibGljX2tleShjb25zdCBFVlBfUEtFWSAqcGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0LCBzaXplX3QgKm91dF9sZW4pOwor
CisKIC8vIFNpZ25pbmcKIAogLy8gRVZQX0RpZ2VzdFNpZ25Jbml0IHNldHMgdXAgfGN0eHwgZm9y
IGEgc2lnbmluZyBvcGVyYXRpb24gd2l0aCB8dHlwZXwgYW5kCkBAIC02NDYsOSArNjc5LDIzIEBA
IE9QRU5TU0xfRVhQT1JUIGludCBFVlBfUEtFWV9kZXJpdmUoRVZQX1BLRVlfQ1RYICpjdHgsIHVp
bnQ4X3QgKmtleSwKIE9QRU5TU0xfRVhQT1JUIGludCBFVlBfUEtFWV9rZXlnZW5faW5pdChFVlBf
UEtFWV9DVFggKmN0eCk7CiAKIC8vIEVWUF9QS0VZX2tleWdlbiBwZXJmb3JtcyBhIGtleSBnZW5l
cmF0aW9uIG9wZXJhdGlvbiB1c2luZyB0aGUgdmFsdWVzIGZyb20KLS8vIHxjdHh8IGFuZCBzZXRz
IHwqcHBrZXl8IHRvIGEgZnJlc2ggfEVWUF9QS0VZfCBjb250YWluaW5nIHRoZSByZXN1bHRpbmcg
a2V5LgorLy8gfGN0eHwuIElmIHwqb3V0X3BrZXl8IGlzIG5vbi1OVUxMLCBpdCBvdmVyd3JpdGVz
IHwqb3V0X3BrZXl8IHdpdGggdGhlCisvLyByZXN1bHRpbmcga2V5LiBPdGhlcndpc2UsIGl0IHNl
dHMgfCpvdXRfcGtleXwgdG8gYSBuZXdseS1hbGxvY2F0ZWQgfEVWUF9QS0VZfAorLy8gY29udGFp
bmluZyB0aGUgcmVzdWx0LiBJdCByZXR1cm5zIG9uZSBvbiBzdWNjZXNzIG9yIHplcm8gb24gZXJy
b3IuCitPUEVOU1NMX0VYUE9SVCBpbnQgRVZQX1BLRVlfa2V5Z2VuKEVWUF9QS0VZX0NUWCAqY3R4
LCBFVlBfUEtFWSAqKm91dF9wa2V5KTsKKworLy8gRVZQX1BLRVlfcGFyYW1nZW5faW5pdCBpbml0
aWFsaXNlcyBhbiB8RVZQX1BLRVlfQ1RYfCBmb3IgYSBwYXJhbWV0ZXIKKy8vIGdlbmVyYXRpb24g
b3BlcmF0aW9uLiBJdCBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSB8RVZQX1BLRVlfcGFyYW1nZW58
LgorLy8KIC8vIEl0IHJldHVybnMgb25lIG9uIHN1Y2Nlc3Mgb3IgemVybyBvbiBlcnJvci4KLU9Q
RU5TU0xfRVhQT1JUIGludCBFVlBfUEtFWV9rZXlnZW4oRVZQX1BLRVlfQ1RYICpjdHgsIEVWUF9Q
S0VZICoqcHBrZXkpOworT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9QS0VZX3BhcmFtZ2VuX2luaXQo
RVZQX1BLRVlfQ1RYICpjdHgpOworCisvLyBFVlBfUEtFWV9wYXJhbWdlbiBwZXJmb3JtcyBhIHBh
cmFtZXRlciBnZW5lcmF0aW9uIHVzaW5nIHRoZSB2YWx1ZXMgZnJvbQorLy8gfGN0eHwuIElmIHwq
b3V0X3BrZXl8IGlzIG5vbi1OVUxMLCBpdCBvdmVyd3JpdGVzIHwqb3V0X3BrZXl8IHdpdGggdGhl
CisvLyByZXN1bHRpbmcgcGFyYW1ldGVycywgYnV0IG5vIGtleS4gT3RoZXJ3aXNlLCBpdCBzZXRz
IHwqb3V0X3BrZXl8IHRvIGEKKy8vIG5ld2x5LWFsbG9jYXRlZCB8RVZQX1BLRVl8IGNvbnRhaW5p
bmcgdGhlIHJlc3VsdC4gSXQgcmV0dXJucyBvbmUgb24gc3VjY2VzcworLy8gb3IgemVybyBvbiBl
cnJvci4KK09QRU5TU0xfRVhQT1JUIGludCBFVlBfUEtFWV9wYXJhbWdlbihFVlBfUEtFWV9DVFgg
KmN0eCwgRVZQX1BLRVkgKipvdXRfcGtleSk7CiAKIAogLy8gR2VuZXJpYyBjb250cm9sIGZ1bmN0
aW9ucy4KQEAgLTc0Niw2ICs3OTMsMTUgQEAgT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9QS0VZX0NU
WF9nZXQwX3JzYV9vYWVwX2xhYmVsKEVWUF9QS0VZX0NUWCAqY3R4LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKipvdXRf
bGFiZWwpOwogCiAKKy8vIEVDIHNwZWNpZmljIGNvbnRyb2wgZnVuY3Rpb25zLgorCisvLyBFVlBf
UEtFWV9DVFhfc2V0X2VjX3BhcmFtZ2VuX2N1cnZlX25pZCBzZXRzIHRoZSBjdXJ2ZSB1c2VkIGZv
cgorLy8gfEVWUF9QS0VZX2tleWdlbnwgb3IgfEVWUF9QS0VZX3BhcmFtZ2VufCBvcGVyYXRpb25z
IHRvIHxuaWR8LiBJdCByZXR1cm5zIG9uZQorLy8gb24gc3VjY2VzcyBhbmQgemVybyBvbiBlcnJv
ci4KK09QRU5TU0xfRVhQT1JUIGludCBFVlBfUEtFWV9DVFhfc2V0X2VjX3BhcmFtZ2VuX2N1cnZl
X25pZChFVlBfUEtFWV9DVFggKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmlkKTsKKworCiAvLyBEZXByZWNhdGVkIGZ1
bmN0aW9ucy4KIAogLy8gRVZQX1BLRVlfREggaXMgZGVmaW5lZCBmb3IgY29tcGF0aWJpbGl0eSwg
YnV0IGl0IGlzIGltcG9zc2libGUgdG8gY3JlYXRlIGFuCkBAIC04MjYsMTIgKzg4Miw1MSBAQCBP
UEVOU1NMX0VYUE9SVCBFVlBfUEtFWSAqZDJpX1ByaXZhdGVLZXkoaW50IHR5cGUsIEVWUF9QS0VZ
ICoqb3V0LAogT1BFTlNTTF9FWFBPUlQgRVZQX1BLRVkgKmQyaV9BdXRvUHJpdmF0ZUtleShFVlBf
UEtFWSAqKm91dCwgY29uc3QgdWludDhfdCAqKmlucCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9uZyBsZW4pOwogCisvLyBkMmlfUHVibGljS2V5IHBhcnNl
IGEgcHVibGljIGtleSBmcm9tIHxsZW58IGJ5dGVzIGF0IHwqaW5wfCBpbiBhIHR5cGUtCisvLyBz
cGVjaWZpYyBmb3JtYXQgc3BlY2lmaWVkIGJ5IHx0eXBlfC4gSWYgfG91dHwgaXMgbm90IE5VTEwg
dGhlbiwgb24gZXhpdCwgYQorLy8gcG9pbnRlciB0byB0aGUgcmVzdWx0IGlzIGluIHwqb3V0fC4g
Tm90ZSB0aGF0LCBldmVuIGlmIHwqb3V0fCBpcyBhbHJlYWR5IG5vbi0KKy8vIE5VTEwgb24gZW50
cnksIGl0IHdpbGwgbm90IGJlIHdyaXR0ZW4gdG8uIFJhdGhlciwgYSBmcmVzaCB8RVZQX1BLRVl8
IGlzCisvLyBhbGxvY2F0ZWQgYW5kIHRoZSBwcmV2aW91cyBvbmUgaXMgZnJlZWQuIE9uIHN1Y2Nl
c3NmdWwgZXhpdCwgfCppbnB8IGlzCisvLyBhZHZhbmNlZCBwYXN0IHRoZSBkZWNvZGVkIGtleS4g
SXQgcmV0dXJucyB0aGUgcmVzdWx0IG9yIE5VTEwgb24gZXJyb3IuCisvLworLy8gUlNBIGtleXMg
YXJlIHBhcnNlZCBhcyBhIERFUi1lbmNvZGVkIFJTQVB1YmxpY0tleSAoUkZDIDM0NDcpIHN0cnVj
dHVyZS4KKy8vIFBhcnNpbmcgRUMga2V5cyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgZnVuY3Rp
b24uCisvLworLy8gVXNlIHxSU0FfcGFyc2VfcHVibGljX2tleXwgaW5zdGVhZC4KK09QRU5TU0xf
RVhQT1JUIEVWUF9QS0VZICpkMmlfUHVibGljS2V5KGludCB0eXBlLCBFVlBfUEtFWSAqKm91dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKipp
bnAsIGxvbmcgbGVuKTsKKwogLy8gRVZQX1BLRVlfZ2V0MF9ESCByZXR1cm5zIE5VTEwuCiBPUEVO
U1NMX0VYUE9SVCBESCAqRVZQX1BLRVlfZ2V0MF9ESChjb25zdCBFVlBfUEtFWSAqcGtleSk7CiAK
IC8vIEVWUF9QS0VZX2dldDFfREggcmV0dXJucyBOVUxMLgogT1BFTlNTTF9FWFBPUlQgREggKkVW
UF9QS0VZX2dldDFfREgoY29uc3QgRVZQX1BLRVkgKnBrZXkpOwogCisvLyBFVlBfUEtFWV9DVFhf
c2V0X2VjX3BhcmFtX2VuYyByZXR1cm5zIG9uZSBpZiB8ZW5jb2Rpbmd8IGlzCisvLyB8T1BFTlNT
TF9FQ19OQU1FRF9DVVJWRXwgb3IgemVybyB3aXRoIGFuIGVycm9yIG90aGVyd2lzZS4KK09QRU5T
U0xfRVhQT1JUIGludCBFVlBfUEtFWV9DVFhfc2V0X2VjX3BhcmFtX2VuYyhFVlBfUEtFWV9DVFgg
KmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgZW5jb2RpbmcpOworCisvLyBFVlBfUEtFWV9zZXQxX3Rsc19lbmNvZGVkcG9pbnQgcmVwbGFj
ZXMgfHBrZXl8IHdpdGggYSBwdWJsaWMga2V5IGVuY29kZWQgYnkKKy8vIHxpbnwuIEl0IHJldHVy
bnMgb25lIG9uIHN1Y2Nlc3MgYW5kIHplcm8gb24gZXJyb3IuCisvLworLy8gVGhpcyBmdW5jdGlv
biBvbmx5IHdvcmtzIG9uIFgyNTUxOSBrZXlzLgorT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9QS0VZ
X3NldDFfdGxzX2VuY29kZWRwb2ludChFVlBfUEtFWSAqcGtleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW4sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4p
OworCisvLyBFVlBfUEtFWV9nZXQxX3Rsc19lbmNvZGVkcG9pbnQgc2V0cyB8Km91dF9wdHJ8IHRv
IGEgbmV3bHktYWxsb2NhdGVkIGJ1ZmZlcgorLy8gY29udGFpbmluZyB0aGUgcmF3IGVuY29kZWQg
cHVibGljIGtleSBmb3IgfHBrZXl8LiBUaGUgY2FsbGVyIG11c3QgY2FsbAorLy8gfE9QRU5TU0xf
ZnJlZXwgdG8gcmVsZWFzZSB0aGlzIGJ1ZmZlci4gVGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxl
bmd0aCBvZiB0aGUKKy8vIGJ1ZmZlciBvbiBzdWNjZXNzIGFuZCB6ZXJvIG9uIGVycm9yLgorLy8K
Ky8vIFRoaXMgZnVuY3Rpb24gb25seSB3b3JrcyBvbiBYMjU1MTkga2V5cy4KK09QRU5TU0xfRVhQ
T1JUIHNpemVfdCBFVlBfUEtFWV9nZXQxX3Rsc19lbmNvZGVkcG9pbnQoY29uc3QgRVZQX1BLRVkg
KnBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQ4X3QgKipvdXRfcHRyKTsKKworLy8gRVZQX1BLRVlfYmFzZV9pZCBjYWxscyB8RVZQ
X1BLRVlfaWR8LgorT1BFTlNTTF9FWFBPUlQgaW50IEVWUF9QS0VZX2Jhc2VfaWQoY29uc3QgRVZQ
X1BLRVkgKnBrZXkpOworCiAKIC8vIFByZXByb2Nlc3NvciBjb21wYXRpYmlsaXR5IHNlY3Rpb24g
KGhpZGRlbikuCiAvLwpAQCAtOTIwLDUgKzEwMTUsNiBAQCBCU1NMX05BTUVTUEFDRV9FTkQKICNk
ZWZpbmUgRVZQX1JfSU5WQUxJRF9TSUdOQVRVUkUgMTMxCiAjZGVmaW5lIEVWUF9SX01FTU9SWV9M
SU1JVF9FWENFRURFRCAxMzIKICNkZWZpbmUgRVZQX1JfSU5WQUxJRF9QQVJBTUVURVJTIDEzMwor
I2RlZmluZSBFVlBfUl9JTlZBTElEX1BFRVJfS0VZIDEzNAogCiAjZW5kaWYgIC8vIE9QRU5TU0xf
SEVBREVSX0VWUF9ICmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2hyc3MuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9pbmNsdWRlL29wZW5zc2wvaHJzcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzOTA2OTZmMWRlNzBhNjU1OWRl
Y2JhOTlkOTdhYTE3YTk1N2EyMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVu
c3NsL2hyc3MuaApAQCAtMCwwICsxLDEwMCBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE4LCBHb29n
bGUgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBk
aXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhv
dXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNv
cGllcy4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFV
VEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09G
VFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUg
Rk9SIEFOWQorICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1Mg
T0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05U
UkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9G
IE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElT
IFNPRlRXQVJFLiAqLworCisjaWZuZGVmIE9QRU5TU0xfSEVBREVSX0hSU1NfSAorI2RlZmluZSBP
UEVOU1NMX0hFQURFUl9IUlNTX0gKKworI2luY2x1ZGUgPG9wZW5zc2wvYmFzZS5oPgorCisjaWYg
ZGVmaW5lZChfX2NwbHVzcGx1cykKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8vIEhSU1MKKy8v
CisvLyBIUlNTIGlzIGEgc3RydWN0dXJlZC1sYXR0aWNlLWJhc2VkIHBvc3QtcXVhbnR1bSBrZXkg
ZW5jYXBzdWxhdGlvbiBtZWNoYW5pc20uCisvLyBUaGUgYmVzdCBleHBvc2l0aW9uIGlzIGh0dHBz
Oi8vZXByaW50LmlhY3Iub3JnLzIwMTcvNjY3LnBkZiBhbHRob3VnaCB0aGlzCisvLyBpbXBsZW1l
bnRhdGlvbiB1c2VzIGEgZGlmZmVyZW50IEtFTSBjb25zdHJ1Y3Rpb24gYmFzZWQgb24KKy8vIGh0
dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMTcvMTAwNS5wZGYuCisKK3N0cnVjdCBIUlNTX3ByaXZh
dGVfa2V5IHsKKyAgdWludDhfdCBvcGFxdWVbMTgwOF07Cit9OworCitzdHJ1Y3QgSFJTU19wdWJs
aWNfa2V5IHsKKyAgdWludDhfdCBvcGFxdWVbMTQyNF07Cit9OworCisvLyBIUlNTX1NBTVBMRV9C
WVRFUyBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIGVudHJvcHkgbmVlZGVkIHRvIGdlbmVyYXRl
IGEKKy8vIHNob3J0IHZlY3Rvci4gVGhlcmUgYXJlIDcwMSBjb2VmZmljaWVudHMsIGJ1dCB0aGUg
ZmluYWwgb25lIGlzIGFsd2F5cyBzZXQgdG8KKy8vIHplcm8gd2hlbiBzYW1wbGluZy4gT3RoZXJ3
aXNlLCB3ZSBuZWVkIG9uZSBieXRlIG9mIGlucHV0IHBlciBjb2VmZmljaWVudC4KKyNkZWZpbmUg
SFJTU19TQU1QTEVfQllURVMgKDcwMSAtIDEpCisvLyBIUlNTX0dFTkVSQVRFX0tFWV9CWVRFUyBp
cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIGVudHJvcHkgbmVlZGVkIHRvIGdlbmVyYXRlCisvLyBh
biBIUlNTIGtleSBwYWlyLgorI2RlZmluZSBIUlNTX0dFTkVSQVRFX0tFWV9CWVRFUyAoSFJTU19T
QU1QTEVfQllURVMgKyBIUlNTX1NBTVBMRV9CWVRFUyArIDMyKQorLy8gSFJTU19FTkNBUF9CWVRF
UyBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIGVudHJvcHkgbmVlZGVkIHRvIGVuY2Fwc3VsYXRl
IGEKKy8vIHNlc3Npb24ga2V5LgorI2RlZmluZSBIUlNTX0VOQ0FQX0JZVEVTIChIUlNTX1NBTVBM
RV9CWVRFUyArIEhSU1NfU0FNUExFX0JZVEVTKQorLy8gSFJTU19QVUJMSUNfS0VZX0JZVEVTIGlz
IHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gYSBwdWJsaWMga2V5LgorI2RlZmluZSBIUlNTX1BVQkxJ
Q19LRVlfQllURVMgMTEzOAorLy8gSFJTU19DSVBIRVJURVhUX0JZVEVTIGlzIHRoZSBudW1iZXIg
b2YgYnl0ZXMgaW4gYSBjaXBoZXJ0ZXh0LgorI2RlZmluZSBIUlNTX0NJUEhFUlRFWFRfQllURVMg
MTEzOAorLy8gSFJTU19LRVlfQllURVMgaXMgdGhlIG51bWJlciBvZiBieXRlcyBpbiBhIHNoYXJl
ZCBrZXkuCisjZGVmaW5lIEhSU1NfS0VZX0JZVEVTIDMyCisvLyBIUlNTX1BPTFkzX0JZVEVTIGlz
IHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVlZGVkIHRvIHNlcmlhbGlzZSBhIG1vZCAzCisvLyBwb2x5
bm9taWFsLgorI2RlZmluZSBIUlNTX1BPTFkzX0JZVEVTIDE0MAorI2RlZmluZSBIUlNTX1BSSVZB
VEVfS0VZX0JZVEVTIFwKKyAgKEhSU1NfUE9MWTNfQllURVMgKiAyICsgSFJTU19QVUJMSUNfS0VZ
X0JZVEVTICsgMiArIDMyKQorCisvLyBIUlNTX2dlbmVyYXRlX2tleSBpcyBhIGRldGVybWluaXN0
aWMgZnVuY3Rpb24gdGhhdCBvdXRwdXRzIGEgcHVibGljIGFuZAorLy8gcHJpdmF0ZSBrZXkgYmFz
ZWQgb24gdGhlIGdpdmVuIGVudHJvcHkuCitPUEVOU1NMX0VYUE9SVCB2b2lkIEhSU1NfZ2VuZXJh
dGVfa2V5KAorICAgIHN0cnVjdCBIUlNTX3B1YmxpY19rZXkgKm91dF9wdWIsIHN0cnVjdCBIUlNT
X3ByaXZhdGVfa2V5ICpvdXRfcHJpdiwKKyAgICBjb25zdCB1aW50OF90IGlucHV0W0hSU1NfR0VO
RVJBVEVfS0VZX0JZVEVTXSk7CisKKy8vIEhSU1NfZW5jYXAgaXMgYSBkZXRlcm1pbmlzdGljIGZ1
bmN0aW9uIHRoZSBnZW5lcmF0ZXMgYW5kIGVuY3J5cHRzIGEgcmFuZG9tCisvLyBzZXNzaW9uIGtl
eSBmcm9tIHRoZSBnaXZlbiBlbnRyb3B5LCB3cml0aW5nIHRob3NlIHZhbHVlcyB0byB8b3V0X3No
YXJlZF9rZXl8CisvLyBhbmQgfG91dF9jaXBoZXJ0ZXh0fCwgcmVzcGVjdGl2ZWx5LgorT1BFTlNT
TF9FWFBPUlQgdm9pZCBIUlNTX2VuY2FwKHVpbnQ4X3Qgb3V0X2NpcGhlcnRleHRbSFJTU19DSVBI
RVJURVhUX0JZVEVTXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG91
dF9zaGFyZWRfa2V5W0hSU1NfS0VZX0JZVEVTXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdHJ1Y3QgSFJTU19wdWJsaWNfa2V5ICppbl9wdWIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBpbltIUlNTX0VOQ0FQX0JZVEVTXSk7CisK
Ky8vIEhSU1NfZGVjYXAgZGVjcnlwdHMgYSBzZXNzaW9uIGtleSBmcm9tIHxjaXBoZXJ0ZXh0X2xl
bnwgYnl0ZXMgb2YKKy8vIHxjaXBoZXJ0ZXh0fC4gSWYgdGhlIGNpcGhlcnRleHQgaXMgdmFsaWQs
IHRoZSBkZWNyeXB0ZWQga2V5IGlzIHdyaXR0ZW4gdG8KKy8vIHxvdXRfc2hhcmVkX2tleXwuIE90
aGVyd2lzZSB0aGUgSE1BQyBvZiB8Y2lwaGVydGV4dHwgdW5kZXIgYSBzZWNyZXQga2V5IChrZXB0
CisvLyBpbiB8aW5fcHJpdnwpIGlzIHdyaXR0ZW4uIElmIHRoZSBjaXBoZXJ0ZXh0IGlzIHRoZSB3
cm9uZyBsZW5ndGggdGhlbiBpdCB3aWxsCisvLyBsZWFrIHdoaWNoIHdhcyBkb25lIHZpYSBzaWRl
LWNoYW5uZWxzLiBPdGhlcndpc2UgaXQgc2hvdWxkIHBlcmZvcm0gZWl0aGVyCisvLyBhY3Rpb24g
aW4gY29uc3RhbnQtdGltZS4KK09QRU5TU0xfRVhQT1JUIHZvaWQgSFJTU19kZWNhcCh1aW50OF90
IG91dF9zaGFyZWRfa2V5W0hSU1NfS0VZX0JZVEVTXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgSFJTU19wcml2YXRlX2tleSAqaW5fcHJpdiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpjaXBoZXJ0ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjaXBoZXJ0ZXh0X2xlbik7CisKKy8vIEhS
U1NfbWFyc2hhbF9wdWJsaWNfa2V5IHNlcmlhbGlzZXMgfGluX3B1YnwgdG8gfG91dHwuCitPUEVO
U1NMX0VYUE9SVCB2b2lkIEhSU1NfbWFyc2hhbF9wdWJsaWNfa2V5KAorICAgIHVpbnQ4X3Qgb3V0
W0hSU1NfUFVCTElDX0tFWV9CWVRFU10sIGNvbnN0IHN0cnVjdCBIUlNTX3B1YmxpY19rZXkgKmlu
X3B1Yik7CisKKy8vIEhSU1NfcGFyc2VfcHVibGljX2tleSBzZXRzIHwqb3V0fCB0byB0aGUgcHVi
bGljLWtleSBlbmNvZGVkIGluIHxpbnwuIEl0CisvLyByZXR1cm5zIHRydWUgb24gc3VjY2VzcyBh
bmQgemVybyBvbiBlcnJvci4KK09QRU5TU0xfRVhQT1JUIGludCBIUlNTX3BhcnNlX3B1YmxpY19r
ZXkoCisgICAgc3RydWN0IEhSU1NfcHVibGljX2tleSAqb3V0LCBjb25zdCB1aW50OF90IGluW0hS
U1NfUFVCTElDX0tFWV9CWVRFU10pOworCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorfSAg
Ly8gZXh0ZXJuIEMKKyNlbmRpZgorCisjZW5kaWYgIC8vIE9QRU5TU0xfSEVBREVSX0hSU1NfSApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9saGFzaC5oIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3Bl
bnNzbC9saGFzaC5oCmluZGV4IGM4MmJiOGU2ZDk1Zjc4NTNlZmIxYzU5ZTljZTQwMDQ4NjQwNmVk
ZjIuLjI5ZTA5YzgzOTRhM2NhNjI4NDViMzUwMDI4YWIzZDVkZjRlMDRhZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9pbmNsdWRlL29wZW5zc2wvbGhhc2guaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2xo
YXNoLmgKQEAgLTc3LDcgKzc3LDcgQEAgZXh0ZXJuICJDIiB7CiAvLyAgICAgaW50IGJhcjsKIC8v
ICAgfTsKIC8vCi0vLyAgIERFRklORV9MSEFTSF9PRihzdHJ1Y3QgZm9vKTsKKy8vICAgREVGSU5F
X0xIQVNIX09GKHN0cnVjdCBmb28pCiAvLwogLy8gQWx0aG91Z2ggbm90ZSB0aGF0IHRoZSBoYXNo
IHRhYmxlIHdpbGwgY29udGFpbiAvcG9pbnRlcnMvIHRvIHxmb298LgogLy8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9pbmNsdWRlL29wZW5zc2wvbWQ0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL21kNC5oCmlu
ZGV4IDUyYjg4Y2EzMTgzODA3MDY5MzA3NmNjOGY0MjlhNDg1MWI0NTY2MGQuLmIyMTNiYzYyNzA5
MTU1N2Y0NDY5NGYzZDVkMDkyNzc2NmY5MTA4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29w
ZW5zc2wvbWQ0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9tZDQuaApAQCAtNzksMTcgKzc5
LDE5IEBAIE9QRU5TU0xfRVhQT1JUIGludCBNRDRfSW5pdChNRDRfQ1RYICptZDQpOwogT1BFTlNT
TF9FWFBPUlQgaW50IE1ENF9VcGRhdGUoTUQ0X0NUWCAqbWQ0LCBjb25zdCB2b2lkICpkYXRhLCBz
aXplX3QgbGVuKTsKIAogLy8gTUQ0X0ZpbmFsIGFkZHMgdGhlIGZpbmFsIHBhZGRpbmcgdG8gfG1k
NHwgYW5kIHdyaXRlcyB0aGUgcmVzdWx0aW5nIGRpZ2VzdCB0bwotLy8gfG1kfCwgd2hpY2ggbXVz
dCBoYXZlIGF0IGxlYXN0IHxNRDRfRElHRVNUX0xFTkdUSHwgYnl0ZXMgb2Ygc3BhY2UuIEl0Cisv
LyB8b3V0fCwgd2hpY2ggbXVzdCBoYXZlIGF0IGxlYXN0IHxNRDRfRElHRVNUX0xFTkdUSHwgYnl0
ZXMgb2Ygc3BhY2UuIEl0CiAvLyByZXR1cm5zIG9uZS4KLU9QRU5TU0xfRVhQT1JUIGludCBNRDRf
RmluYWwodWludDhfdCAqbWQsIE1ENF9DVFggKm1kNCk7CitPUEVOU1NMX0VYUE9SVCBpbnQgTUQ0
X0ZpbmFsKHVpbnQ4X3Qgb3V0W01ENF9ESUdFU1RfTEVOR1RIXSwgTUQ0X0NUWCAqbWQ0KTsKIAog
Ly8gTUQ0IHdyaXRlcyB0aGUgZGlnZXN0IG9mIHxsZW58IGJ5dGVzIGZyb20gfGRhdGF8IHRvIHxv
dXR8IGFuZCByZXR1cm5zIHxvdXR8LgogLy8gVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCB8TUQ0X0RJ
R0VTVF9MRU5HVEh8IGJ5dGVzIG9mIHNwYWNlIGluIHxvdXR8LgotT1BFTlNTTF9FWFBPUlQgdWlu
dDhfdCAqTUQ0KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVpbnQ4X3QgKm91dCk7
CitPUEVOU1NMX0VYUE9SVCB1aW50OF90ICpNRDQoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90
IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG91dFtNRDRfRElHRVNU
X0xFTkdUSF0pOwogCiAvLyBNRDRfVHJhbnNmb3JtIGlzIGEgbG93LWxldmVsIGZ1bmN0aW9uIHRo
YXQgcGVyZm9ybXMgYSBzaW5nbGUsIE1ENCBibG9jawogLy8gdHJhbnNmb3JtYXRpb24gdXNpbmcg
dGhlIHN0YXRlIGZyb20gfG1kNHwgYW5kIDY0IGJ5dGVzIGZyb20gfGJsb2NrfC4KLU9QRU5TU0xf
RVhQT1JUIHZvaWQgTUQ0X1RyYW5zZm9ybShNRDRfQ1RYICptZDQsIGNvbnN0IHVpbnQ4X3QgKmJs
b2NrKTsKK09QRU5TU0xfRVhQT1JUIHZvaWQgTUQ0X1RyYW5zZm9ybShNRDRfQ1RYICptZDQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBibG9ja1tNRDRf
Q0JMT0NLXSk7CiAKIHN0cnVjdCBtZDRfc3RhdGVfc3QgewogICB1aW50MzJfdCBoWzRdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9tZDUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wv
bWQ1LmgKaW5kZXggZGU2MDI3ZjVjNWVlMjA2NTFlZmMxYTI0NWFmZjhjOWI1MWI2NDA2OC4uNTQ4
NjUxMjk4MGRkMjhjOTRjOWQyYmRiMGQ5NjExNzZkOTNjNDVkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2lu
Y2x1ZGUvb3BlbnNzbC9tZDUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL21kNS5oCkBAIC04
MCwxNyArODAsMTkgQEAgT1BFTlNTTF9FWFBPUlQgaW50IE1ENV9Jbml0KE1ENV9DVFggKm1kNSk7
CiBPUEVOU1NMX0VYUE9SVCBpbnQgTUQ1X1VwZGF0ZShNRDVfQ1RYICptZDUsIGNvbnN0IHZvaWQg
KmRhdGEsIHNpemVfdCBsZW4pOwogCiAvLyBNRDVfRmluYWwgYWRkcyB0aGUgZmluYWwgcGFkZGlu
ZyB0byB8bWQ1fCBhbmQgd3JpdGVzIHRoZSByZXN1bHRpbmcgZGlnZXN0IHRvCi0vLyB8bWR8LCB3
aGljaCBtdXN0IGhhdmUgYXQgbGVhc3QgfE1ENV9ESUdFU1RfTEVOR1RIfCBieXRlcyBvZiBzcGFj
ZS4gSXQKKy8vIHxvdXR8LCB3aGljaCBtdXN0IGhhdmUgYXQgbGVhc3QgfE1ENV9ESUdFU1RfTEVO
R1RIfCBieXRlcyBvZiBzcGFjZS4gSXQKIC8vIHJldHVybnMgb25lLgotT1BFTlNTTF9FWFBPUlQg
aW50IE1ENV9GaW5hbCh1aW50OF90ICptZCwgTUQ1X0NUWCAqbWQ1KTsKK09QRU5TU0xfRVhQT1JU
IGludCBNRDVfRmluYWwodWludDhfdCBvdXRbTUQ1X0RJR0VTVF9MRU5HVEhdLCBNRDVfQ1RYICpt
ZDUpOwogCiAvLyBNRDUgd3JpdGVzIHRoZSBkaWdlc3Qgb2YgfGxlbnwgYnl0ZXMgZnJvbSB8ZGF0
YXwgdG8gfG91dHwgYW5kIHJldHVybnMgfG91dHwuCiAvLyBUaGVyZSBtdXN0IGJlIGF0IGxlYXN0
IHxNRDVfRElHRVNUX0xFTkdUSHwgYnl0ZXMgb2Ygc3BhY2UgaW4gfG91dHwuCi1PUEVOU1NMX0VY
UE9SVCB1aW50OF90ICpNRDUoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbiwgdWludDhf
dCAqb3V0KTsKK09QRU5TU0xfRVhQT1JUIHVpbnQ4X3QgKk1ENShjb25zdCB1aW50OF90ICpkYXRh
LCBzaXplX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgb3V0W01E
NV9ESUdFU1RfTEVOR1RIXSk7CiAKIC8vIE1ENV9UcmFuc2Zvcm0gaXMgYSBsb3ctbGV2ZWwgZnVu
Y3Rpb24gdGhhdCBwZXJmb3JtcyBhIHNpbmdsZSwgTUQ1IGJsb2NrCiAvLyB0cmFuc2Zvcm1hdGlv
biB1c2luZyB0aGUgc3RhdGUgZnJvbSB8bWQ1fCBhbmQgNjQgYnl0ZXMgZnJvbSB8YmxvY2t8Lgot
T1BFTlNTTF9FWFBPUlQgdm9pZCBNRDVfVHJhbnNmb3JtKE1ENV9DVFggKm1kNSwgY29uc3QgdWlu
dDhfdCAqYmxvY2spOworT1BFTlNTTF9FWFBPUlQgdm9pZCBNRDVfVHJhbnNmb3JtKE1ENV9DVFgg
Km1kNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90IGJs
b2NrW01ENV9DQkxPQ0tdKTsKIAogc3RydWN0IG1kNV9zdGF0ZV9zdCB7CiAgIHVpbnQzMl90IGhb
NF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL21lbS5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUv
b3BlbnNzbC9tZW0uaAppbmRleCA5ZjljMDBkZDU0N2EzZjNiNTVjMmFmNWMxZDQwYTU2YzBmZWI4
M2JkLi4yZTI1ZjUyYTdmZGM0Yzk5NzNkYzlhYTQxMjhjYmRjNDdmMjdlM2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvaW5jbHVkZS9vcGVuc3NsL21lbS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvbWVt
LmgKQEAgLTEzNiw2ICsxMzYsMTAgQEAgT1BFTlNTTF9FWFBPUlQgaW50IEJJT192c25wcmludGYo
Y2hhciAqYnVmLCBzaXplX3QgbiwgY29uc3QgY2hhciAqZm9ybWF0LAogI2RlZmluZSBDUllQVE9f
cmVhbGxvYyBPUEVOU1NMX3JlYWxsb2MKICNkZWZpbmUgQ1JZUFRPX2ZyZWUgT1BFTlNTTF9mcmVl
CiAKKy8vIE9QRU5TU0xfY2xlYXJfZnJlZSBjYWxscyB8T1BFTlNTTF9mcmVlfC4gQm9yaW5nU1NM
IGF1dG9tYXRpY2FsbHkgY2xlYXJzIGFsbAorLy8gYWxsb2NhdGlvbnMgb24gZnJlZSwgYnV0IHdl
IGRlZmluZSB8T1BFTlNTTF9jbGVhcl9mcmVlfCBmb3IgY29tcGF0aWJpbGl0eS4KK09QRU5TU0xf
RVhQT1JUIHZvaWQgT1BFTlNTTF9jbGVhcl9mcmVlKHZvaWQgKnB0ciwgc2l6ZV90IGxlbik7CisK
IAogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9ICAvLyBleHRlcm4gQwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2luY2x1ZGUvb3BlbnNzbC9uaWQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvbmlkLmgKaW5k
ZXggYWZlYjJkZWE0ZTA0NjQwODJmYTcyZmQxNDA0ZjkzMjFlYjY1NmRlYy4uY2VhOTc1YTMxNDI1
NWVkZDI4YzE5OGM1ODFjNGQyN2Y0ZGI0ZmQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3Bl
bnNzbC9uaWQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL25pZC5oCkBAIC00MjM0LDYgKzQy
MzQsMTIgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIExOX2F1dGhfYW55ICJhdXRoLWFueSIKICNk
ZWZpbmUgTklEX2F1dGhfYW55IDk1OAogCisjZGVmaW5lIFNOX0NFQ1BRMiAiQ0VDUFEyIgorI2Rl
ZmluZSBOSURfQ0VDUFEyIDk1OQorCisjZGVmaW5lIFNOX0NFQ1BRMmIgIkNFQ1BRMmIiCisjZGVm
aW5lIE5JRF9DRUNQUTJiIDk2MAorCiAKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfSAvKiBl
eHRlcm4gQyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9wa2NzOC5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L2luY2x1ZGUvb3BlbnNzbC9wa2NzOC5oCmluZGV4IGVlNDhmMTk0MjZiNWQ3NzJhYjE0N2MyMzYx
M2IwZDI1MzJiOTI5NzMuLjM4NWI5OTUwNGI5NjA5ZTdiMjQzMGMyOTYyYzVhMDUwNWUyYjUzOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvcGtjczguaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVk
ZS9vcGVuc3NsL3BrY3M4LmgKQEAgLTE2OCwxMiArMTY4LDE4IEBAIE9QRU5TU0xfRVhQT1JUIGlu
dCBpMmRfUEtDUzEyX2ZwKEZJTEUgKmZwLCBjb25zdCBQS0NTMTIgKnAxMik7CiAKIC8vIFBLQ1Mx
Ml9wYXJzZSBjYWxscyB8UEtDUzEyX2dldF9rZXlfYW5kX2NlcnRzfCBvbiB0aGUgQVNOLjEgZGF0
YSBzdG9yZWQgaW4KIC8vIHxwMTJ8LiBUaGUgfG91dF9wa2V5fCBhbmQgfG91dF9jZXJ0fCBhcmd1
bWVudHMgbXVzdCBub3QgYmUgTlVMTCBhbmQsIG9uCi0vLyBzdWNjZXNzZnVsIGV4aXQsIHRoZSBw
cml2YXRlIGtleSBhbmQgZmlyc3QgY2VydGlmaWNhdGUgd2lsbCBiZSBzdG9yZWQgaW4KKy8vIHN1
Y2Nlc3NmdWwgZXhpdCwgdGhlIHByaXZhdGUga2V5IGFuZCBtYXRjaGluZyBjZXJ0aWZpY2F0ZSB3
aWxsIGJlIHN0b3JlZCBpbgogLy8gdGhlbS4gVGhlIHxvdXRfY2FfY2VydHN8IGFyZ3VtZW50IG1h
eSBiZSBOVUxMIGJ1dCwgaWYgbm90LCB0aGVuIGFueSBleHRyYQogLy8gY2VydGlmaWNhdGVzIHdp
bGwgYmUgYXBwZW5kZWQgdG8gfCpvdXRfY2FfY2VydHN8LiBJZiB8Km91dF9jYV9jZXJ0c3wgaXMg
TlVMTAogLy8gdGhlbiBpdCB3aWxsIGJlIHNldCB0byBhIGZyZXNobHkgYWxsb2NhdGVkIHN0YWNr
IGNvbnRhaW5pbmcgdGhlIGV4dHJhIGNlcnRzLgogLy8KKy8vIE5vdGUgaWYgfHAxMnwgZG9lcyBu
b3QgY29udGFpbiBhIHByaXZhdGUga2V5LCBib3RoIHwqb3V0X3BrZXl8IGFuZAorLy8gfCpvdXRf
Y2VydHwgd2lsbCBiZSBzZXQgdG8gTlVMTCBhbmQgYWxsIGNlcnRpZmljYXRlcyB3aWxsIGJlIHJl
dHVybmVkIHZpYQorLy8gfCpvdXRfY2FfY2VydHN8LgorLy8KIC8vIEl0IHJldHVybnMgb25lIG9u
IHN1Y2Nlc3MgYW5kIHplcm8gb24gZXJyb3IuCisvLworLy8gVXNlIHxQS0NTMTJfZ2V0X2tleV9h
bmRfY2VydHN8IGluc3RlYWQuCiBPUEVOU1NMX0VYUE9SVCBpbnQgUEtDUzEyX3BhcnNlKGNvbnN0
IFBLQ1MxMiAqcDEyLCBjb25zdCBjaGFyICpwYXNzd29yZCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRVZQX1BLRVkgKipvdXRfcGtleSwgWDUwOSAqKm91dF9jZXJ0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFDS19PRihYNTA5KSAqKm91dF9jYV9jZXJ0cyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3JpcGVtZC5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUv
b3BlbnNzbC9yaXBlbWQuaAppbmRleCBmYjBiNTBjMTJmNGNkMDlkNTUyYzYzOGM5NWQ4ZjI5YWIx
NDM1MGIyLi5kODU5YjFmZjE1YWFmOTBlYTQyZmI1OTg4MTFhYjY4YTA2NDI4OGE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3JpcGVtZC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5z
c2wvcmlwZW1kLmgKQEAgLTgzLDIxICs4MywyMiBAQCBPUEVOU1NMX0VYUE9SVCBpbnQgUklQRU1E
MTYwX1VwZGF0ZShSSVBFTUQxNjBfQ1RYICpjdHgsIGNvbnN0IHZvaWQgKmRhdGEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOwogCiAvLyBSSVBFTUQxNjBf
RmluYWwgYWRkcyB0aGUgZmluYWwgcGFkZGluZyB0byB8Y3R4fCBhbmQgd3JpdGVzIHRoZSByZXN1
bHRpbmcKLS8vIGRpZ2VzdCB0byB8bWR8LCB3aGljaCBtdXN0IGhhdmUgYXQgbGVhc3QgfFJJUEVN
RDE2MF9ESUdFU1RfTEVOR1RIfCBieXRlcyBvZgorLy8gZGlnZXN0IHRvIHxvdXR8LCB3aGljaCBt
dXN0IGhhdmUgYXQgbGVhc3QgfFJJUEVNRDE2MF9ESUdFU1RfTEVOR1RIfCBieXRlcyBvZgogLy8g
c3BhY2UuIEl0IHJldHVybnMgb25lLgotT1BFTlNTTF9FWFBPUlQgaW50IFJJUEVNRDE2MF9GaW5h
bCh1aW50OF90ICptZCwgUklQRU1EMTYwX0NUWCAqY3R4KTsKK09QRU5TU0xfRVhQT1JUIGludCBS
SVBFTUQxNjBfRmluYWwodWludDhfdCBvdXRbUklQRU1EMTYwX0RJR0VTVF9MRU5HVEhdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSVBFTUQxNjBfQ1RYICpjdHgpOwogCiAv
LyBSSVBFTUQxNjAgd3JpdGVzIHRoZSBkaWdlc3Qgb2YgfGxlbnwgYnl0ZXMgZnJvbSB8ZGF0YXwg
dG8gfG91dHwgYW5kIHJldHVybnMKIC8vIHxvdXR8LiBUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IHxS
SVBFTUQxNjBfRElHRVNUX0xFTkdUSHwgYnl0ZXMgb2Ygc3BhY2UgaW4KIC8vIHxvdXR8LgogT1BF
TlNTTF9FWFBPUlQgdWludDhfdCAqUklQRU1EMTYwKGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVf
dCBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG91dFtSSVBFTUQxNjBf
RElHRVNUX0xFTkdUSF0pOwogCiAvLyBSSVBFTUQxNjBfVHJhbnNmb3JtIGlzIGEgbG93LWxldmVs
IGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgYSBzaW5nbGUsCiAvLyBSSVBFTUQxNjAgYmxvY2sgdHJh
bnNmb3JtYXRpb24gdXNpbmcgdGhlIHN0YXRlIGZyb20gfGN0eHwgYW5kIDY0IGJ5dGVzIGZyb20K
IC8vIHxibG9ja3wuCiBPUEVOU1NMX0VYUE9SVCB2b2lkIFJJUEVNRDE2MF9UcmFuc2Zvcm0oUklQ
RU1EMTYwX0NUWCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHVpbnQ4X3QgKmJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCB1aW50OF90IGJsb2NrW1JJUEVNRDE2MF9DQkxPQ0tdKTsKIAogCiAjaWYg
ZGVmaW5lZChfX2NwbHVzcGx1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvc2hh
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3NoYS5oCmluZGV4IDJjMGRjYjczNWJjZjdmMTAwNmY4
MTdiMzZkMTQzNmQ1MTA1MDQ4ZmEuLmIxNjNlNmEzOGViMTQzMTU2ODZmYmY2MGFlZDkzOTg0ZTQx
ZjdlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvc2hhLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2lu
Y2x1ZGUvb3BlbnNzbC9zaGEuaApAQCAtNzksMjAgKzc5LDIyIEBAIE9QRU5TU0xfRVhQT1JUIGlu
dCBTSEExX0luaXQoU0hBX0NUWCAqc2hhKTsKIC8vIFNIQTFfVXBkYXRlIGFkZHMgfGxlbnwgYnl0
ZXMgZnJvbSB8ZGF0YXwgdG8gfHNoYXwgYW5kIHJldHVybnMgb25lLgogT1BFTlNTTF9FWFBPUlQg
aW50IFNIQTFfVXBkYXRlKFNIQV9DVFggKnNoYSwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxl
bik7CiAKLS8vIFNIQTFfRmluYWwgYWRkcyB0aGUgZmluYWwgcGFkZGluZyB0byB8c2hhfCBhbmQg
d3JpdGVzIHRoZSByZXN1bHRpbmcgZGlnZXN0Ci0vLyB0byB8bWR8LCB3aGljaCBtdXN0IGhhdmUg
YXQgbGVhc3QgfFNIQV9ESUdFU1RfTEVOR1RIfCBieXRlcyBvZiBzcGFjZS4gSXQKKy8vIFNIQTFf
RmluYWwgYWRkcyB0aGUgZmluYWwgcGFkZGluZyB0byB8c2hhfCBhbmQgd3JpdGVzIHRoZSByZXN1
bHRpbmcgZGlnZXN0IHRvCisvLyB8b3V0fCwgd2hpY2ggbXVzdCBoYXZlIGF0IGxlYXN0IHxTSEFf
RElHRVNUX0xFTkdUSHwgYnl0ZXMgb2Ygc3BhY2UuIEl0CiAvLyByZXR1cm5zIG9uZS4KLU9QRU5T
U0xfRVhQT1JUIGludCBTSEExX0ZpbmFsKHVpbnQ4X3QgKm1kLCBTSEFfQ1RYICpzaGEpOworT1BF
TlNTTF9FWFBPUlQgaW50IFNIQTFfRmluYWwodWludDhfdCBvdXRbU0hBX0RJR0VTVF9MRU5HVEhd
LCBTSEFfQ1RYICpzaGEpOwogCiAvLyBTSEExIHdyaXRlcyB0aGUgZGlnZXN0IG9mIHxsZW58IGJ5
dGVzIGZyb20gfGRhdGF8IHRvIHxvdXR8IGFuZCByZXR1cm5zCiAvLyB8b3V0fC4gVGhlcmUgbXVz
dCBiZSBhdCBsZWFzdCB8U0hBX0RJR0VTVF9MRU5HVEh8IGJ5dGVzIG9mIHNwYWNlIGluCiAvLyB8
b3V0fC4KLU9QRU5TU0xfRVhQT1JUIHVpbnQ4X3QgKlNIQTEoY29uc3QgdWludDhfdCAqZGF0YSwg
c2l6ZV90IGxlbiwgdWludDhfdCAqb3V0KTsKK09QRU5TU0xfRVhQT1JUIHVpbnQ4X3QgKlNIQTEo
Y29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDhfdCBvdXRbU0hBX0RJR0VTVF9MRU5HVEhdKTsKIAogLy8gU0hBMV9UcmFuc2Zv
cm0gaXMgYSBsb3ctbGV2ZWwgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHNpbmdsZSwgU0hBLTEg
YmxvY2sKIC8vIHRyYW5zZm9ybWF0aW9uIHVzaW5nIHRoZSBzdGF0ZSBmcm9tIHxzaGF8IGFuZCB8
U0hBX0NCTE9DS3wgYnl0ZXMgZnJvbQogLy8gfGJsb2NrfC4KLU9QRU5TU0xfRVhQT1JUIHZvaWQg
U0hBMV9UcmFuc2Zvcm0oU0hBX0NUWCAqc2hhLCBjb25zdCB1aW50OF90ICpibG9jayk7CitPUEVO
U1NMX0VYUE9SVCB2b2lkIFNIQTFfVHJhbnNmb3JtKFNIQV9DVFggKnNoYSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBibG9ja1tTSEFfQ0JMT0NLXSk7
CiAKIHN0cnVjdCBzaGFfc3RhdGVfc3QgewogI2lmIGRlZmluZWQoT1BFTlNTTF9XSU5ET1dTKQpA
QCAtMTMyLDE0ICsxMzQsMTYgQEAgT1BFTlNTTF9FWFBPUlQgaW50IFNIQTIyNF9Jbml0KFNIQTI1
Nl9DVFggKnNoYSk7CiBPUEVOU1NMX0VYUE9SVCBpbnQgU0hBMjI0X1VwZGF0ZShTSEEyNTZfQ1RY
ICpzaGEsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwogCiAvLyBTSEEyMjRfRmluYWwg
YWRkcyB0aGUgZmluYWwgcGFkZGluZyB0byB8c2hhfCBhbmQgd3JpdGVzIHRoZSByZXN1bHRpbmcg
ZGlnZXN0Ci0vLyB0byB8bWR8LCB3aGljaCBtdXN0IGhhdmUgYXQgbGVhc3QgfFNIQTIyNF9ESUdF
U1RfTEVOR1RIfCBieXRlcyBvZiBzcGFjZS4gSXQKKy8vIHRvIHxvdXR8LCB3aGljaCBtdXN0IGhh
dmUgYXQgbGVhc3QgfFNIQTIyNF9ESUdFU1RfTEVOR1RIfCBieXRlcyBvZiBzcGFjZS4gSXQKIC8v
IHJldHVybnMgb25lIG9uIHN1Y2Nlc3MgYW5kIHplcm8gb24gcHJvZ3JhbW1lciBlcnJvci4KLU9Q
RU5TU0xfRVhQT1JUIGludCBTSEEyMjRfRmluYWwodWludDhfdCAqbWQsIFNIQTI1Nl9DVFggKnNo
YSk7CitPUEVOU1NMX0VYUE9SVCBpbnQgU0hBMjI0X0ZpbmFsKHVpbnQ4X3Qgb3V0W1NIQTIyNF9E
SUdFU1RfTEVOR1RIXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBMjU2X0NU
WCAqc2hhKTsKIAogLy8gU0hBMjI0IHdyaXRlcyB0aGUgZGlnZXN0IG9mIHxsZW58IGJ5dGVzIGZy
b20gfGRhdGF8IHRvIHxvdXR8IGFuZCByZXR1cm5zCiAvLyB8b3V0fC4gVGhlcmUgbXVzdCBiZSBh
dCBsZWFzdCB8U0hBMjI0X0RJR0VTVF9MRU5HVEh8IGJ5dGVzIG9mIHNwYWNlIGluCiAvLyB8b3V0
fC4KLU9QRU5TU0xfRVhQT1JUIHVpbnQ4X3QgKlNIQTIyNChjb25zdCB1aW50OF90ICpkYXRhLCBz
aXplX3QgbGVuLCB1aW50OF90ICpvdXQpOworT1BFTlNTTF9FWFBPUlQgdWludDhfdCAqU0hBMjI0
KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludDhfdCBvdXRbU0hBMjI0X0RJR0VTVF9MRU5HVEhdKTsKIAogCiAvLyBTSEEt
MjU2LgpAQCAtMTU3LDE5ICsxNjEsMjIgQEAgT1BFTlNTTF9FWFBPUlQgaW50IFNIQTI1Nl9Jbml0
KFNIQTI1Nl9DVFggKnNoYSk7CiBPUEVOU1NMX0VYUE9SVCBpbnQgU0hBMjU2X1VwZGF0ZShTSEEy
NTZfQ1RYICpzaGEsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwogCiAvLyBTSEEyNTZf
RmluYWwgYWRkcyB0aGUgZmluYWwgcGFkZGluZyB0byB8c2hhfCBhbmQgd3JpdGVzIHRoZSByZXN1
bHRpbmcgZGlnZXN0Ci0vLyB0byB8bWR8LCB3aGljaCBtdXN0IGhhdmUgYXQgbGVhc3QgfFNIQTI1
Nl9ESUdFU1RfTEVOR1RIfCBieXRlcyBvZiBzcGFjZS4gSXQKKy8vIHRvIHxvdXR8LCB3aGljaCBt
dXN0IGhhdmUgYXQgbGVhc3QgfFNIQTI1Nl9ESUdFU1RfTEVOR1RIfCBieXRlcyBvZiBzcGFjZS4g
SXQKIC8vIHJldHVybnMgb25lIG9uIHN1Y2Nlc3MgYW5kIHplcm8gb24gcHJvZ3JhbW1lciBlcnJv
ci4KLU9QRU5TU0xfRVhQT1JUIGludCBTSEEyNTZfRmluYWwodWludDhfdCAqbWQsIFNIQTI1Nl9D
VFggKnNoYSk7CitPUEVOU1NMX0VYUE9SVCBpbnQgU0hBMjU2X0ZpbmFsKHVpbnQ4X3Qgb3V0W1NI
QTI1Nl9ESUdFU1RfTEVOR1RIXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hB
MjU2X0NUWCAqc2hhKTsKIAogLy8gU0hBMjU2IHdyaXRlcyB0aGUgZGlnZXN0IG9mIHxsZW58IGJ5
dGVzIGZyb20gfGRhdGF8IHRvIHxvdXR8IGFuZCByZXR1cm5zCiAvLyB8b3V0fC4gVGhlcmUgbXVz
dCBiZSBhdCBsZWFzdCB8U0hBMjU2X0RJR0VTVF9MRU5HVEh8IGJ5dGVzIG9mIHNwYWNlIGluCiAv
LyB8b3V0fC4KLU9QRU5TU0xfRVhQT1JUIHVpbnQ4X3QgKlNIQTI1Nihjb25zdCB1aW50OF90ICpk
YXRhLCBzaXplX3QgbGVuLCB1aW50OF90ICpvdXQpOworT1BFTlNTTF9FWFBPUlQgdWludDhfdCAq
U0hBMjU2KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdWludDhfdCBvdXRbU0hBMjU2X0RJR0VTVF9MRU5HVEhdKTsKIAogLy8g
U0hBMjU2X1RyYW5zZm9ybSBpcyBhIGxvdy1sZXZlbCBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEg
c2luZ2xlLCBTSEEtMjU2CiAvLyBibG9jayB0cmFuc2Zvcm1hdGlvbiB1c2luZyB0aGUgc3RhdGUg
ZnJvbSB8c2hhfCBhbmQgfFNIQTI1Nl9DQkxPQ0t8IGJ5dGVzCiAvLyBmcm9tIHxibG9ja3wuCi1P
UEVOU1NMX0VYUE9SVCB2b2lkIFNIQTI1Nl9UcmFuc2Zvcm0oU0hBMjU2X0NUWCAqc2hhLCBjb25z
dCB1aW50OF90ICpibG9jayk7CitPUEVOU1NMX0VYUE9SVCB2b2lkIFNIQTI1Nl9UcmFuc2Zvcm0o
U0hBMjU2X0NUWCAqc2hhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IHVpbnQ4X3QgYmxvY2tbU0hBMjU2X0NCTE9DS10pOwogCiAvLyBTSEEyNTZfVHJhbnNmb3Jt
QmxvY2tzIGlzIGEgbG93LWxldmVsIGZ1bmN0aW9uIHRoYXQgdGFrZXMgfG51bV9ibG9ja3N8ICoK
IC8vIHxTSEEyNTZfQ0JMT0NLfCBieXRlcyBvZiBkYXRhIGFuZCBwZXJmb3JtcyBTSEEtMjU2IHRy
YW5zZm9ybXMgb24gaXQgdG8gdXBkYXRlCkBAIC0yMDIsMTQgKzIwOSwxNiBAQCBPUEVOU1NMX0VY
UE9SVCBpbnQgU0hBMzg0X0luaXQoU0hBNTEyX0NUWCAqc2hhKTsKIE9QRU5TU0xfRVhQT1JUIGlu
dCBTSEEzODRfVXBkYXRlKFNIQTUxMl9DVFggKnNoYSwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90
IGxlbik7CiAKIC8vIFNIQTM4NF9GaW5hbCBhZGRzIHRoZSBmaW5hbCBwYWRkaW5nIHRvIHxzaGF8
IGFuZCB3cml0ZXMgdGhlIHJlc3VsdGluZyBkaWdlc3QKLS8vIHRvIHxtZHwsIHdoaWNoIG11c3Qg
aGF2ZSBhdCBsZWFzdCB8U0hBMzg0X0RJR0VTVF9MRU5HVEh8IGJ5dGVzIG9mIHNwYWNlLiBJdAor
Ly8gdG8gfG91dHwsIHdoaWNoIG11c3QgaGF2ZSBhdCBsZWFzdCB8U0hBMzg0X0RJR0VTVF9MRU5H
VEh8IGJ5dGVzIG9mIHNwYWNlLiBJdAogLy8gcmV0dXJucyBvbmUgb24gc3VjY2VzcyBhbmQgemVy
byBvbiBwcm9ncmFtbWVyIGVycm9yLgotT1BFTlNTTF9FWFBPUlQgaW50IFNIQTM4NF9GaW5hbCh1
aW50OF90ICptZCwgU0hBNTEyX0NUWCAqc2hhKTsKK09QRU5TU0xfRVhQT1JUIGludCBTSEEzODRf
RmluYWwodWludDhfdCBvdXRbU0hBMzg0X0RJR0VTVF9MRU5HVEhdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTSEE1MTJfQ1RYICpzaGEpOwogCiAvLyBTSEEzODQgd3JpdGVzIHRo
ZSBkaWdlc3Qgb2YgfGxlbnwgYnl0ZXMgZnJvbSB8ZGF0YXwgdG8gfG91dHwgYW5kIHJldHVybnMK
IC8vIHxvdXR8LiBUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IHxTSEEzODRfRElHRVNUX0xFTkdUSHwg
Ynl0ZXMgb2Ygc3BhY2UgaW4KIC8vIHxvdXR8LgotT1BFTlNTTF9FWFBPUlQgdWludDhfdCAqU0hB
Mzg0KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVpbnQ4X3QgKm91dCk7CitPUEVO
U1NMX0VYUE9SVCB1aW50OF90ICpTSEEzODQoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxl
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG91dFtTSEEzODRfRElH
RVNUX0xFTkdUSF0pOwogCiAKIC8vIFNIQS01MTIuCkBAIC0yMjcsMjcgKzIzNiwyNyBAQCBPUEVO
U1NMX0VYUE9SVCBpbnQgU0hBNTEyX0luaXQoU0hBNTEyX0NUWCAqc2hhKTsKIE9QRU5TU0xfRVhQ
T1JUIGludCBTSEE1MTJfVXBkYXRlKFNIQTUxMl9DVFggKnNoYSwgY29uc3Qgdm9pZCAqZGF0YSwg
c2l6ZV90IGxlbik7CiAKIC8vIFNIQTUxMl9GaW5hbCBhZGRzIHRoZSBmaW5hbCBwYWRkaW5nIHRv
IHxzaGF8IGFuZCB3cml0ZXMgdGhlIHJlc3VsdGluZyBkaWdlc3QKLS8vIHRvIHxtZHwsIHdoaWNo
IG11c3QgaGF2ZSBhdCBsZWFzdCB8U0hBNTEyX0RJR0VTVF9MRU5HVEh8IGJ5dGVzIG9mIHNwYWNl
LiBJdAorLy8gdG8gfG91dHwsIHdoaWNoIG11c3QgaGF2ZSBhdCBsZWFzdCB8U0hBNTEyX0RJR0VT
VF9MRU5HVEh8IGJ5dGVzIG9mIHNwYWNlLiBJdAogLy8gcmV0dXJucyBvbmUgb24gc3VjY2VzcyBh
bmQgemVybyBvbiBwcm9ncmFtbWVyIGVycm9yLgotT1BFTlNTTF9FWFBPUlQgaW50IFNIQTUxMl9G
aW5hbCh1aW50OF90ICptZCwgU0hBNTEyX0NUWCAqc2hhKTsKK09QRU5TU0xfRVhQT1JUIGludCBT
SEE1MTJfRmluYWwodWludDhfdCBvdXRbU0hBNTEyX0RJR0VTVF9MRU5HVEhdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTSEE1MTJfQ1RYICpzaGEpOwogCiAvLyBTSEE1MTIgd3Jp
dGVzIHRoZSBkaWdlc3Qgb2YgfGxlbnwgYnl0ZXMgZnJvbSB8ZGF0YXwgdG8gfG91dHwgYW5kIHJl
dHVybnMKIC8vIHxvdXR8LiBUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IHxTSEE1MTJfRElHRVNUX0xF
TkdUSHwgYnl0ZXMgb2Ygc3BhY2UgaW4KIC8vIHxvdXR8LgotT1BFTlNTTF9FWFBPUlQgdWludDhf
dCAqU0hBNTEyKGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4sIHVpbnQ4X3QgKm91dCk7
CitPUEVOU1NMX0VYUE9SVCB1aW50OF90ICpTSEE1MTIoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6
ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG91dFtTSEE1
MTJfRElHRVNUX0xFTkdUSF0pOwogCiAvLyBTSEE1MTJfVHJhbnNmb3JtIGlzIGEgbG93LWxldmVs
IGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgYSBzaW5nbGUsIFNIQS01MTIKIC8vIGJsb2NrIHRyYW5z
Zm9ybWF0aW9uIHVzaW5nIHRoZSBzdGF0ZSBmcm9tIHxzaGF8IGFuZCB8U0hBNTEyX0NCTE9DS3wg
Ynl0ZXMKIC8vIGZyb20gfGJsb2NrfC4KLU9QRU5TU0xfRVhQT1JUIHZvaWQgU0hBNTEyX1RyYW5z
Zm9ybShTSEE1MTJfQ1RYICpzaGEsIGNvbnN0IHVpbnQ4X3QgKmJsb2NrKTsKK09QRU5TU0xfRVhQ
T1JUIHZvaWQgU0hBNTEyX1RyYW5zZm9ybShTSEE1MTJfQ1RYICpzaGEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBibG9ja1tTSEE1MTJfQ0JMT0NL
XSk7CiAKIHN0cnVjdCBzaGE1MTJfc3RhdGVfc3QgewogICB1aW50NjRfdCBoWzhdOwogICB1aW50
NjRfdCBObCwgTmg7Ci0gIHVuaW9uIHsKLSAgICB1aW50NjRfdCBkWzE2XTsKLSAgICB1aW50OF90
IHBbMTI4XTsKLSAgfSB1OworICB1aW50OF90IHBbMTI4XTsKICAgdW5zaWduZWQgbnVtLCBtZF9s
ZW47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3NpcGhhc2guaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9pbmNsdWRlL29wZW5zc2wvc2lwaGFzaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMDhhYTcyYjRjOWI5ZTYy
NjYzZjEwZjJiYzM3NTU3ZGRhMDM3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9v
cGVuc3NsL3NpcGhhc2guaApAQCAtMCwwICsxLDM3IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTks
IEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5k
L29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Ig
d2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBh
bGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBU
SEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJ
UyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00g
TE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9G
IENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBP
VVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9G
IFRISVMgU09GVFdBUkUuICovCisKKyNpZm5kZWYgT1BFTlNTTF9IRUFERVJfU0lQSEFTSF9ICisj
ZGVmaW5lIE9QRU5TU0xfSEVBREVSX1NJUEhBU0hfSAorCisjaW5jbHVkZSA8b3BlbnNzbC9iYXNl
Lmg+CisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
CisvLyBTaXBIYXNoIGlzIGEgZmFzdCwgc2VjdXJlIFBSRiB0aGF0IGlzIG9mdGVuIHVzZWQgZm9y
IGhhc2ggdGFibGVzLgorCisKKy8vIFNJUEhBU0hfMjQgaW1wbGVtZW50cyBTaXBIYXNoLTItNC4g
U2VlIGh0dHBzOi8vMTMxMDAyLm5ldC9zaXBoYXNoL3NpcGhhc2gucGRmCitPUEVOU1NMX0VYUE9S
VCB1aW50NjRfdCBTSVBIQVNIXzI0KGNvbnN0IHVpbnQ2NF90IGtleVsyXSwgY29uc3QgdWludDhf
dCAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1
dF9sZW4pOworCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorfSAgLy8gZXh0ZXJuIEMKKyNl
bmRpZgorCisjZW5kaWYgIC8vIE9QRU5TU0xfSEVBREVSX1NJUEhBU0hfSApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2luY2x1ZGUvb3BlbnNzbC9zcGFuLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3NwYW4uaApp
bmRleCAyOThhNzIyMmNkOWIyMWM2YjMwNzgyODNiZGQ3ZjAxMDkwYzU1MWQwLi4xZDczMmViYjVm
ZWI1MDhkOWRmMWZhZDBlYzExZjRlMDM4NDM5NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9v
cGVuc3NsL3NwYW4uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3NwYW4uaApAQCAtMTMxLDgg
KzEzMSw4IEBAIGNsYXNzIFNwYW4gOiBwcml2YXRlIGludGVybmFsOjpTcGFuQmFzZTxjb25zdCBU
PiB7CiAKICAgVCAqYmVnaW4oKSBjb25zdCB7IHJldHVybiBkYXRhXzsgfQogICBjb25zdCBUICpj
YmVnaW4oKSBjb25zdCB7IHJldHVybiBkYXRhXzsgfQotICBUICplbmQoKSBjb25zdCB7IHJldHVy
biBkYXRhXyArIHNpemVfOyB9OwotICBjb25zdCBUICpjZW5kKCkgY29uc3QgeyByZXR1cm4gZW5k
KCk7IH07CisgIFQgKmVuZCgpIGNvbnN0IHsgcmV0dXJuIGRhdGFfICsgc2l6ZV87IH0KKyAgY29u
c3QgVCAqY2VuZCgpIGNvbnN0IHsgcmV0dXJuIGVuZCgpOyB9CiAKICAgVCAmZnJvbnQoKSBjb25z
dCB7CiAgICAgaWYgKHNpemVfID09IDApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5z
c2wvc3NsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3NzbC5oCmluZGV4IDE3YzU1OTI1OTJmNTM0
ZTAzY2YxMTM3MzdkMWJmN2I4MWQzMTFiMzIuLjFlZjlmODRiOTIwMDhjMjdmNDM5YzI0MTg2YmFh
NGZmYzJhMTZmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvc3NsLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL2luY2x1ZGUvb3BlbnNzbC9zc2wuaApAQCAtMzk0LDYgKzM5NCwyNiBAQCBPUEVOU1NMX0VY
UE9SVCBpbnQgU1NMX3BlbmRpbmcoY29uc3QgU1NMICpzc2wpOwogLy8gaHR0cHM6Ly9jcmJ1Zy5j
b20vNDY2MzAzLgogT1BFTlNTTF9FWFBPUlQgaW50IFNTTF93cml0ZShTU0wgKnNzbCwgY29uc3Qg
dm9pZCAqYnVmLCBpbnQgbnVtKTsKIAorLy8gU1NMX0tFWV9VUERBVEVfUkVRVUVTVEVEIGluZGlj
YXRlcyB0aGF0IHRoZSBwZWVyIHNob3VsZCByZXBseSB0byBhIEtleVVwZGF0ZQorLy8gbWVzc2Fn
ZSB3aXRoIGl0cyBvd24sIHRodXMgdXBkYXRpbmcgdHJhZmZpYyBzZWNyZXRzIGZvciBib3RoIGRp
cmVjdGlvbnMgb24KKy8vIHRoZSBjb25uZWN0aW9uLgorI2RlZmluZSBTU0xfS0VZX1VQREFURV9S
RVFVRVNURUQgMQorCisvLyBTU0xfS0VZX1VQREFURV9OT1RfUkVRVUVTVEVEIGluZGljYXRlcyB0
aGF0IHRoZSBwZWVyIHNob3VsZCBub3QgcmVwbHkgd2l0aAorLy8gaXQncyBvd24gS2V5VXBkYXRl
IG1lc3NhZ2UuCisjZGVmaW5lIFNTTF9LRVlfVVBEQVRFX05PVF9SRVFVRVNURUQgMAorCisvLyBT
U0xfa2V5X3VwZGF0ZSBxdWV1ZXMgYSBUTFMgMS4zIEtleVVwZGF0ZSBtZXNzYWdlIHRvIGJlIHNl
bnQgb24gfHNzbHwKKy8vIGlmIG9uZSBpcyBub3QgYWxyZWFkeSBxdWV1ZWQuIFRoZSB8cmVxdWVz
dF90eXBlfCBhcmd1bWVudCBtdXN0IG9uZSBvZiB0aGUKKy8vIHxTU0xfS0VZX1VQREFURV8qfCB2
YWx1ZXMuIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhhdCB8c3NsfCBoYXZlIGNvbXBsZXRlZCBh
CisvLyBUTFMgPj0gMS4zIGhhbmRzaGFrZS4gSXQgcmV0dXJucyBvbmUgb24gc3VjY2VzcyBvciB6
ZXJvIG9uIGVycm9yLgorLy8KKy8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IF9z
ZW5kXyB0aGUgbWVzc2FnZSBpdHNlbGYuIFRoZSBuZXh0IGNhbGwgdG8KKy8vIHxTU0xfd3JpdGV8
IHdpbGwgY2F1c2UgdGhlIG1lc3NhZ2UgdG8gYmUgc2VudC4gfFNTTF93cml0ZXwgbWF5IGJlIGNh
bGxlZCB3aXRoCisvLyBhIHplcm8gbGVuZ3RoIHRvIGZsdXNoIGEgS2V5VXBkYXRlIG1lc3NhZ2Ug
d2hlbiBubyBhcHBsaWNhdGlvbiBkYXRhIGlzCisvLyBwZW5kaW5nLgorT1BFTlNTTF9FWFBPUlQg
aW50IFNTTF9rZXlfdXBkYXRlKFNTTCAqc3NsLCBpbnQgcmVxdWVzdF90eXBlKTsKKwogLy8gU1NM
X3NodXRkb3duIHNodXRzIGRvd24gfHNzbHwuIEl0IHJ1bnMgaW4gdHdvIHN0YWdlcy4gRmlyc3Qs
IGl0IHNlbmRzCiAvLyBjbG9zZV9ub3RpZnkgYW5kIHJldHVybnMgemVybyBvciBvbmUgb24gc3Vj
Y2VzcyBvciAtMSBvbiBmYWlsdXJlLiBaZXJvCiAvLyBpbmRpY2F0ZXMgdGhhdCBjbG9zZV9ub3Rp
Znkgd2FzIHNlbnQsIGJ1dCBub3QgcmVjZWl2ZWQsIGFuZCBvbmUgYWRkaXRpb25hbGx5CkBAIC01
NDAsNiArNTYwLDExIEBAIE9QRU5TU0xfRVhQT1JUIGludCBTU0xfZ2V0X2Vycm9yKGNvbnN0IFNT
TCAqc3NsLCBpbnQgcmV0X2NvZGUpOwogI2RlZmluZSBTU0xfRVJST1JfSEFORE9GRiAxNwogI2Rl
ZmluZSBTU0xfRVJST1JfSEFOREJBQ0sgMTgKIAorLy8gU1NMX2Vycm9yX2Rlc2NyaXB0aW9uIHJl
dHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgfGVycnwsIHdoZXJlIHxlcnJ8CisvLyBp
cyBvbmUgb2YgdGhlIHxTU0xfRVJST1JfKnwgY29uc3RhbnRzIHJldHVybmVkIGJ5IHxTU0xfZ2V0
X2Vycm9yfCwgb3IgTlVMTAorLy8gaWYgdGhlIHZhbHVlIGlzIHVucmVjb2duaXplZC4KK09QRU5T
U0xfRVhQT1JUIGNvbnN0IGNoYXIgKlNTTF9lcnJvcl9kZXNjcmlwdGlvbihpbnQgZXJyKTsKKwog
Ly8gU1NMX3NldF9tdHUgc2V0cyB0aGUgfHNzbHwncyBNVFUgaW4gRFRMUyB0byB8bXR1fC4gSXQg
cmV0dXJucyBvbmUgb24gc3VjY2VzcwogLy8gYW5kIHplcm8gb24gZmFpbHVyZS4KIE9QRU5TU0xf
RVhQT1JUIGludCBTU0xfc2V0X210dShTU0wgKnNzbCwgdW5zaWduZWQgbXR1KTsKQEAgLTU5OSw5
ICs2MjQsNiBAQCBPUEVOU1NMX0VYUE9SVCBpbnQgRFRMU3YxX2hhbmRsZV90aW1lb3V0KFNTTCAq
c3NsKTsKICNkZWZpbmUgRFRMUzFfVkVSU0lPTiAweGZlZmYKICNkZWZpbmUgRFRMUzFfMl9WRVJT
SU9OIDB4ZmVmZAogCi0jZGVmaW5lIFRMUzFfM19EUkFGVDIzX1ZFUlNJT04gMHg3ZjE3Ci0jZGVm
aW5lIFRMUzFfM19EUkFGVDI4X1ZFUlNJT04gMHg3ZjFjCi0KIC8vIFNTTF9DVFhfc2V0X21pbl9w
cm90b192ZXJzaW9uIHNldHMgdGhlIG1pbmltdW0gcHJvdG9jb2wgdmVyc2lvbiBmb3IgfGN0eHwg
dG8KIC8vIHx2ZXJzaW9ufC4gSWYgfHZlcnNpb258IGlzIHplcm8sIHRoZSBkZWZhdWx0IG1pbmlt
dW0gdmVyc2lvbiBpcyB1c2VkLiBJdAogLy8gcmV0dXJucyBvbmUgb24gc3VjY2VzcyBhbmQgemVy
byBpZiB8dmVyc2lvbnwgaXMgaW52YWxpZC4KQEAgLTYxNCw2ICs2MzYsMTIgQEAgT1BFTlNTTF9F
WFBPUlQgaW50IFNTTF9DVFhfc2V0X21pbl9wcm90b192ZXJzaW9uKFNTTF9DVFggKmN0eCwKIE9Q
RU5TU0xfRVhQT1JUIGludCBTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbihTU0xfQ1RYICpj
dHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDE2X3QgdmVyc2lvbik7CiAKKy8vIFNTTF9DVFhfZ2V0X21pbl9wcm90b192ZXJzaW9uIHJldHVy
bnMgdGhlIG1pbmltdW0gcHJvdG9jb2wgdmVyc2lvbiBmb3IgfGN0eHwKK09QRU5TU0xfRVhQT1JU
IHVpbnQxNl90IFNTTF9DVFhfZ2V0X21pbl9wcm90b192ZXJzaW9uKFNTTF9DVFggKmN0eCk7CisK
Ky8vIFNTTF9DVFhfZ2V0X21heF9wcm90b192ZXJzaW9uIHJldHVybnMgdGhlIG1heGltdW0gcHJv
dG9jb2wgdmVyc2lvbiBmb3IgfGN0eHwKK09QRU5TU0xfRVhQT1JUIHVpbnQxNl90IFNTTF9DVFhf
Z2V0X21heF9wcm90b192ZXJzaW9uKFNTTF9DVFggKmN0eCk7CisKIC8vIFNTTF9zZXRfbWluX3By
b3RvX3ZlcnNpb24gc2V0cyB0aGUgbWluaW11bSBwcm90b2NvbCB2ZXJzaW9uIGZvciB8c3NsfCB0
bwogLy8gfHZlcnNpb258LiBJZiB8dmVyc2lvbnwgaXMgemVybywgdGhlIGRlZmF1bHQgbWluaW11
bSB2ZXJzaW9uIGlzIHVzZWQuIEl0CiAvLyByZXR1cm5zIG9uZSBvbiBzdWNjZXNzIGFuZCB6ZXJv
IGlmIHx2ZXJzaW9ufCBpcyBpbnZhbGlkLgpAQCAtODY0LDggKzg5Miw5IEBAIE9QRU5TU0xfRVhQ
T1JUIGludCBTU0xfY2xlYXJfY2hhaW5fY2VydHMoU1NMICpzc2wpOwogLy8gfFNTTF9nZXRfY2xp
ZW50X0NBX2xpc3R8IGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgc2VydmVyJ3MgY2VydGlmaWNhdGUK
IC8vIHJlcXVlc3QuCiAvLwotLy8gT24gdGhlIHNlcnZlciwgdGhlIGNhbGxiYWNrIHdpbGwgYmUg
Y2FsbGVkIG9uIG5vbi1yZXN1bXB0aW9uIGhhbmRzaGFrZXMsCi0vLyBhZnRlciBleHRlbnNpb25z
IGhhdmUgYmVlbiBwcm9jZXNzZWQuCisvLyBPbiB0aGUgc2VydmVyLCB0aGUgY2FsbGJhY2sgd2ls
bCBiZSBjYWxsZWQgYWZ0ZXIgZXh0ZW5zaW9ucyBoYXZlIGJlZW4KKy8vIHByb2Nlc3NlZCwgYnV0
IGJlZm9yZSB0aGUgcmVzdW1wdGlvbiBkZWNpc2lvbiBoYXMgYmVlbiBtYWRlLiBUaGlzIGRpZmZl
cnMKKy8vIGZyb20gT3BlblNTTCB3aGljaCBoYW5kbGVzIHJlc3VtcHRpb24gYmVmb3JlIHNlbGVj
dGluZyB0aGUgY2VydGlmaWNhdGUuCiBPUEVOU1NMX0VYUE9SVCB2b2lkIFNTTF9DVFhfc2V0X2Nl
cnRfY2IoU1NMX0NUWCAqY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCAoKmNiKShTU0wgKnNzbCwgdm9pZCAqYXJnKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2b2lkICphcmcpOwpAQCAtODc4LDYgKzkwNywxMCBAQCBPUEVO
U1NMX0VYUE9SVCB2b2lkIFNTTF9DVFhfc2V0X2NlcnRfY2IoU1NMX0NUWCAqY3R4LAogLy8gT24g
dGhlIGNsaWVudCwgdGhlIGNhbGxiYWNrIG1heSBjYWxsIHxTU0xfZ2V0MF9jZXJ0aWZpY2F0ZV90
eXBlc3wgYW5kCiAvLyB8U1NMX2dldF9jbGllbnRfQ0FfbGlzdHwgZm9yIGluZm9ybWF0aW9uIG9u
IHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZQogLy8gcmVxdWVzdC4KKy8vCisvLyBPbiB0aGUgc2Vy
dmVyLCB0aGUgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgZXh0ZW5zaW9ucyBoYXZlIGJl
ZW4KKy8vIHByb2Nlc3NlZCwgYnV0IGJlZm9yZSB0aGUgcmVzdW1wdGlvbiBkZWNpc2lvbiBoYXMg
YmVlbiBtYWRlLiBUaGlzIGRpZmZlcnMKKy8vIGZyb20gT3BlblNTTCB3aGljaCBoYW5kbGVzIHJl
c3VtcHRpb24gYmVmb3JlIHNlbGVjdGluZyB0aGUgY2VydGlmaWNhdGUuCiBPUEVOU1NMX0VYUE9S
VCB2b2lkIFNTTF9zZXRfY2VydF9jYihTU0wgKnNzbCwgaW50ICgqY2IpKFNTTCAqc3NsLCB2b2lk
ICphcmcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYXJnKTsK
IApAQCAtMTEzMiw3ICsxMTY1LDcgQEAgT1BFTlNTTF9FWFBPUlQgdm9pZCAqU1NMX0NUWF9nZXRf
ZGVmYXVsdF9wYXNzd2RfY2JfdXNlcmRhdGEoY29uc3QgU1NMX0NUWCAqY3R4KTsKIAogLy8gQ3Vz
dG9tIHByaXZhdGUga2V5cy4KIAotZW51bSBzc2xfcHJpdmF0ZV9rZXlfcmVzdWx0X3QgeworZW51
bSBzc2xfcHJpdmF0ZV9rZXlfcmVzdWx0X3QgQk9SSU5HU1NMX0VOVU1fSU5UIHsKICAgc3NsX3By
aXZhdGVfa2V5X3N1Y2Nlc3MsCiAgIHNzbF9wcml2YXRlX2tleV9yZXRyeSwKICAgc3NsX3ByaXZh
dGVfa2V5X2ZhaWx1cmUsCkBAIC0xMjY4LDcgKzEzMDEsOCBAQCBPUEVOU1NMX0VYUE9SVCB1aW50
MTZfdCBTU0xfQ0lQSEVSX2dldF9tYXhfdmVyc2lvbihjb25zdCBTU0xfQ0lQSEVSICpjaXBoZXIp
OwogT1BFTlNTTF9FWFBPUlQgY29uc3QgY2hhciAqU1NMX0NJUEhFUl9zdGFuZGFyZF9uYW1lKGNv
bnN0IFNTTF9DSVBIRVIgKmNpcGhlcik7CiAKIC8vIFNTTF9DSVBIRVJfZ2V0X25hbWUgcmV0dXJu
cyB0aGUgT3BlblNTTCBuYW1lIG9mIHxjaXBoZXJ8LiBGb3IgZXhhbXBsZSwKLS8vICJFQ0RIRS1S
U0EtQUVTMTI4LUdDTS1TSEEyNTYiLgorLy8gIkVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiIu
IENhbGxlcnMgYXJlIHJlY29tbWVuZGVkIHRvIHVzZQorLy8gfFNTTF9DSVBIRVJfc3RhbmRhcmRf
bmFtZXwgaW5zdGVhZC4KIE9QRU5TU0xfRVhQT1JUIGNvbnN0IGNoYXIgKlNTTF9DSVBIRVJfZ2V0
X25hbWUoY29uc3QgU1NMX0NJUEhFUiAqY2lwaGVyKTsKIAogLy8gU1NMX0NJUEhFUl9nZXRfa3hf
bmFtZSByZXR1cm5zIGEgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoZSBrZXktZXhjaGFuZ2UKQEAg
LTEzNzEsNyArMTQwNSw3IEBAIE9QRU5TU0xfRVhQT1JUIGludCBTU0xfQ0lQSEVSX2dldF9iaXRz
KGNvbnN0IFNTTF9DSVBIRVIgKmNpcGhlciwKIC8vIGJhc2VkIG9uIGNsaWVudCBwcmVmZXJlbmNl
cy4gQW4gZXF1YWwtcHJlZmVyZW5jZSBpcyBzcGVjaWZpZWQgd2l0aCBzcXVhcmUKIC8vIGJyYWNr
ZXRzLCBjb21iaW5pbmcgbXVsdGlwbGUgc2VsZWN0b3JzIHNlcGFyYXRlZCBieSB8LiBGb3IgZXhh
bXBsZToKIC8vCi0vLyAgIFtFQ0RIRS1FQ0RTQS1DSEFDSEEyMC1QT0xZMTMwNXxFQ0RIRS1FQ0RT
QS1BRVMxMjgtR0NNLVNIQTI1Nl0KKy8vICAgW1RMU19FQ0RIRV9FQ0RTQV9XSVRIX0NIQUNIQTIw
X1BPTFkxMzA1X1NIQTI1NnxUTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNfMTI4X0dDTV9TSEEyNTZd
CiAvLwogLy8gT25jZSBhbiBlcXVhbC1wcmVmZXJlbmNlIGdyb3VwIGlzIHVzZWQsIGZ1dHVyZSBk
aXJlY3RpdmVzIG11c3QgYmUKIC8vIG9wY29kZS1sZXNzLiBJbnNpZGUgYW4gZXF1YWwtcHJlZmVy
ZW5jZSBncm91cCwgc3BhY2VzIGFyZSBub3QgYWxsb3dlZC4KQEAgLTIwMTEsMTMgKzIwNDUsMTMg
QEAgT1BFTlNTTF9FWFBPUlQgU1NMX1NFU1NJT04gKlNTTF9tYWdpY19wZW5kaW5nX3Nlc3Npb25f
cHRyKHZvaWQpOwogLy8gT24gdGhlIGNsaWVudCwgdGlja2V0LWJhc2VkIHNlc3Npb25zIHVzZSB0
aGUgc2FtZSBBUElzIGFzIElELWJhc2VkIHRpY2tldHMuCiAvLyBDYWxsZXJzIGRvIG5vdCBuZWVk
IHRvIGhhbmRsZSB0aGVtIGRpZmZlcmVudGx5LgogLy8KLS8vIE9uIHRoZSBzZXJ2ZXIsIHRpY2tl
dHMgYXJlIGVuY3J5cHRlZCBhbmQgYXV0aGVudGljYXRlZCB3aXRoIGEgc2VjcmV0IGtleS4gQnkK
LS8vIGRlZmF1bHQsIGFuIHxTU0xfQ1RYfCBnZW5lcmF0ZXMgYSBrZXkgb24gY3JlYXRpb24gYW5k
IHVzZXMgaXQgZm9yIHRoZQotLy8gbGlmZXRpbWUgb2YgdGhlIHxTU0xfQ1RYfC4gVGlja2V0cyBh
cmUgbWludGVkIGFuZCBwcm9jZXNzZWQKLS8vIHRyYW5zcGFyZW50bHkuIFRoZSBmb2xsb3dpbmcg
ZnVuY3Rpb25zIG1heSBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBhIHBlcnNpc3RlbnQKLS8vIGtleSBv
ciBpbXBsZW1lbnQgbW9yZSBjdXN0b20gYmVoYXZpb3IsIGluY2x1ZGluZyBrZXkgcm90YXRpb24g
YW5kIHNoYXJpbmcKLS8vIGtleXMgYmV0d2VlbiBtdWx0aXBsZSBzZXJ2ZXJzIGluIGEgbGFyZ2Ug
ZGVwbG95bWVudC4gVGhlcmUgYXJlIHRocmVlIGxldmVscwotLy8gb2YgY3VzdG9taXNhdGlvbiBw
b3NzaWJsZToKKy8vIE9uIHRoZSBzZXJ2ZXIsIHRpY2tldHMgYXJlIGVuY3J5cHRlZCBhbmQgYXV0
aGVudGljYXRlZCB3aXRoIGEgc2VjcmV0IGtleS4KKy8vIEJ5IGRlZmF1bHQsIGFuIHxTU0xfQ1RY
fCB3aWxsIG1hbmFnZSBzZXNzaW9uIHRpY2tldCBlbmNyeXB0aW9uIGtleXMgYnkKKy8vIGdlbmVy
YXRpbmcgdGhlbSBpbnRlcm5hbGx5IGFuZCByb3RhdGluZyBldmVyeSA0OCBob3Vycy4gVGlja2V0
cyBhcmUgbWludGVkCisvLyBhbmQgcHJvY2Vzc2VkIHRyYW5zcGFyZW50bHkuIFRoZSBmb2xsb3dp
bmcgZnVuY3Rpb25zIG1heSBiZSB1c2VkIHRvIGNvbmZpZ3VyZQorLy8gYSBwZXJzaXN0ZW50IGtl
eSBvciBpbXBsZW1lbnQgbW9yZSBjdXN0b20gYmVoYXZpb3IsIGluY2x1ZGluZyBrZXkgcm90YXRp
b24KKy8vIGFuZCBzaGFyaW5nIGtleXMgYmV0d2VlbiBtdWx0aXBsZSBzZXJ2ZXJzIGluIGEgbGFy
Z2UgZGVwbG95bWVudC4gVGhlcmUgYXJlCisvLyB0aHJlZSBsZXZlbHMgb2YgY3VzdG9taXNhdGlv
biBwb3NzaWJsZToKIC8vCiAvLyAxKSBPbmUgY2FuIHNpbXBseSBzZXQgdGhlIGtleXMgd2l0aCB8
U1NMX0NUWF9zZXRfdGxzZXh0X3RpY2tldF9rZXlzfC4KIC8vIDIpIE9uZSBjYW4gY29uZmlndXJl
IGFuIHxFVlBfQ0lQSEVSX0NUWHwgYW5kIHxITUFDX0NUWHwgZGlyZWN0bHkgZm9yCkBAIC0yMDgz
LDcgKzIxMTcsNyBAQCBPUEVOU1NMX0VYUE9SVCBpbnQgU1NMX0NUWF9zZXRfdGxzZXh0X3RpY2tl
dF9rZXlfY2IoCiAKIC8vIHNzbF90aWNrZXRfYWVhZF9yZXN1bHRfdCBlbnVtZXJhdGVzIHRoZSBw
b3NzaWJsZSByZXN1bHRzIGZyb20gZGVjcnlwdGluZyBhCiAvLyB0aWNrZXQgd2l0aCBhbiB8U1NM
X1RJQ0tFVF9BRUFEX01FVEhPRHwuCi1lbnVtIHNzbF90aWNrZXRfYWVhZF9yZXN1bHRfdCB7Citl
bnVtIHNzbF90aWNrZXRfYWVhZF9yZXN1bHRfdCBCT1JJTkdTU0xfRU5VTV9JTlQgewogICAvLyBz
c2xfdGlja2V0X2FlYWRfc3VjY2VzcyBpbmRpY2F0ZXMgdGhhdCB0aGUgdGlja2V0IHdhcyBzdWNj
ZXNzZnVsbHkKICAgLy8gZGVjcnlwdGVkLgogICBzc2xfdGlja2V0X2FlYWRfc3VjY2VzcywKQEAg
LTIxNzcsNiArMjIxMSw4IEBAIE9QRU5TU0xfRVhQT1JUIGludCBTU0xfc2V0MV9jdXJ2ZXNfbGlz
dChTU0wgKnNzbCwgY29uc3QgY2hhciAqY3VydmVzKTsKICNkZWZpbmUgU1NMX0NVUlZFX1NFQ1Az
ODRSMSAyNAogI2RlZmluZSBTU0xfQ1VSVkVfU0VDUDUyMVIxIDI1CiAjZGVmaW5lIFNTTF9DVVJW
RV9YMjU1MTkgMjkKKyNkZWZpbmUgU1NMX0NVUlZFX0NFQ1BRMiAxNjY5NgorI2RlZmluZSBTU0xf
Q1VSVkVfQ0VDUFEyYiA2NTA3NAogCiAvLyBTU0xfZ2V0X2N1cnZlX2lkIHJldHVybnMgdGhlIElE
IG9mIHRoZSBjdXJ2ZSB1c2VkIGJ5IHxzc2x8J3MgbW9zdCByZWNlbnRseQogLy8gY29tcGxldGVk
IGhhbmRzaGFrZSBvciAwIGlmIG5vdCBhcHBsaWNhYmxlLgpAQCAtMjI1Niw3ICsyMjkyLDcgQEAg
T1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xfc2V0X3ZlcmlmeShTU0wgKnNzbCwgaW50IG1vZGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmNhbGxiYWNrKShpbnQgb2ss
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYNTA5
X1NUT1JFX0NUWCAqc3RvcmVfY3R4KSk7CiAKLWVudW0gc3NsX3ZlcmlmeV9yZXN1bHRfdCB7Citl
bnVtIHNzbF92ZXJpZnlfcmVzdWx0X3QgQk9SSU5HU1NMX0VOVU1fSU5UIHsKICAgc3NsX3Zlcmlm
eV9vaywKICAgc3NsX3ZlcmlmeV9pbnZhbGlkLAogICBzc2xfdmVyaWZ5X3JldHJ5LApAQCAtMzAw
NCw2ICszMDQwLDE5IEBAIE9QRU5TU0xfRVhQT1JUIGNvbnN0IGNoYXIgKlNTTF9nZXRfcHNrX2lk
ZW50aXR5X2hpbnQoY29uc3QgU1NMICpzc2wpOwogT1BFTlNTTF9FWFBPUlQgY29uc3QgY2hhciAq
U1NMX2dldF9wc2tfaWRlbnRpdHkoY29uc3QgU1NMICpzc2wpOwogCiAKKy8vIFBvc3QtcXVhbnR1
bSBleHBlcmltZW50IHNpZ25hbGluZyBleHRlbnNpb24uCisvLworLy8gKioqIEVYUEVSSU1FTlRB
TCAqKioKKy8vCisvLyBJbiBvcmRlciB0byBkZWZpbmUgYSBjb250cm9sIGdyb3VwIGluIGFuIGV4
cGVyaW1lbnQgb2YgcG9zdC1xdWFudHVtIGtleQorLy8gYWdyZWVtZW50cywgY2xpZW50cyBhbmQg
c2VydmVycyBtYXkgc2VuZCBhIG5vbi1JQU5BIGRlZmluZWQgZXh0ZW5zaW9uIGFzIGEKKy8vIHNp
Z25hbGluZyBiaXQuIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aG91dCBl
eHBsaWNpdCBwZXJtaXNzaW9uCisvLyBmcm9tIEJvcmluZ1NTTC10ZWFtLgorCitPUEVOU1NMX0VY
UE9SVCB2b2lkIFNTTF9DVFhfZW5hYmxlX3BxX2V4cGVyaW1lbnRfc2lnbmFsKFNTTF9DVFggKmN0
eCk7CitPUEVOU1NMX0VYUE9SVCBpbnQgU1NMX3BxX2V4cGVyaW1lbnRfc2lnbmFsX3NlZW4oY29u
c3QgU1NMICpzc2wpOworCisKIC8vIFFVSUMgdHJhbnNwb3J0IHBhcmFtZXRlcnMuCiAvLwogLy8g
ZHJhZnQtaWV0Zi1xdWljLXRscyBkZWZpbmVzIGEgbmV3IFRMUyBleHRlbnNpb24gcXVpY190cmFu
c3BvcnRfcGFyYW1ldGVycwpAQCAtMzAzNiw2ICszMDg1LDQ1IEBAIE9QRU5TU0xfRVhQT1JUIHZv
aWQgU1NMX2dldF9wZWVyX3F1aWNfdHJhbnNwb3J0X3BhcmFtcyhjb25zdCBTU0wgKnNzbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgKm91dF9wYXJhbXNfbGVuKTsKIAogCisvLyBEZWxlZ2F0ZWQgY3JlZGVudGlhbHMuCisvLwor
Ly8gKioqIEVYUEVSSU1FTlRBTCDigJQgUFJPTkUgVE8gQ0hBTkdFICoqKgorLy8KKy8vIGRyYWZ0
LWlldGYtdGxzLXN1YmNlcnRzIGlzIGEgcHJvcG9zZWQgZXh0ZW5zaW9uIGZvciBUTFMgMS4zIGFu
ZCBhYm92ZSB0aGF0CisvLyBhbGxvd3MgYW4gZW5kIHBvaW50IHRvIHVzZSBpdHMgY2VydGlmaWNh
dGUgdG8gZGVsZWdhdGUgY3JlZGVudGlhbHMgZm9yCisvLyBhdXRoZW50aWNhdGlvbi4gSWYgdGhl
IHBlZXIgaW5kaWNhdGVzIHN1cHBvcnQgZm9yIHRoaXMgZXh0ZW5zaW9uLCB0aGVuIHRoaXMKKy8v
IGhvc3QgbWF5IHVzZSBhIGRlbGVnYXRlZCBjcmVkZW50aWFsIHRvIHNpZ24gdGhlIGhhbmRzaGFr
ZS4gT25jZSBpc3N1ZWQsCisvLyBjcmVkZW50aWFscyBjYW4ndCBiZSByZXZva2VkLiBJbiBvcmRl
ciB0byBtaXRpZ2F0ZSB0aGUgZGFtYWdlIGluIGNhc2UgdGhlCisvLyBjcmVkZW50aWFsIHNlY3Jl
dCBrZXkgaXMgY29tcHJvbWlzZWQsIHRoZSBjcmVkZW50aWFsIGlzIG9ubHkgdmFsaWQgZm9yIGEK
Ky8vIHNob3J0IHRpbWUgKGRheXMsIGhvdXJzLCBvciBldmVuIG1pbnV0ZXMpLiBUaGlzIGxpYnJh
cnkgaW1wbGVtZW50cyBkcmFmdC0wMworLy8gb2YgdGhlIHByb3RvY29sIHNwZWMuCisvLworLy8g
VGhlIGV4dGVuc2lvbiBJRCBoYXMgbm90IGJlZW4gYXNzaWduZWQ7IHdlJ3JlIHVzaW5nIDB4ZmYw
MiBmb3IgdGhlIHRpbWUKKy8vIGJlaW5nLiBDdXJyZW50bHkgb25seSB0aGUgc2VydmVyIHNpZGUg
aXMgaW1wbGVtZW50ZWQuCisvLworLy8gU2VydmVycyBjb25maWd1cmUgYSBEQyBmb3IgdXNlIGlu
IHRoZSBoYW5kc2hha2UgdmlhCisvLyB8U1NMX3NldDFfZGVsZWdhdGVkX2NyZWRlbnRpYWx8LiBJ
dCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgaG9zdCdzIGVuZC1lbnRpdHkKKy8vIGNlcnRpZmljYXRl
IGFzIGRlZmluZWQgaW4gZHJhZnQtaWV0Zi10bHMtc3ViY2VydHMtMDMuCisKKy8vIFNTTF9zZXQx
X2RlbGVnYXRlZF9jcmVkZW50aWFsIGNvbmZpZ3VyZXMgdGhlIGRlbGVnYXRlZCBjcmVkZW50aWFs
IChEQykgdGhhdAorLy8gd2lsbCBiZSBzZW50IHRvIHRoZSBwZWVyIGZvciB0aGUgY3VycmVudCBj
b25uZWN0aW9uLiB8ZGN8IGlzIHRoZSBEQyBpbiB3aXJlCisvLyBmb3JtYXQsIGFuZCB8cGtleXwg
b3IgfGtleV9tZXRob2R8IGlzIHRoZSBjb3JyZXNwb25kaW5nIHByaXZhdGUga2V5LgorLy8gQ3Vy
cmVudGx5IChhcyBvZiBkcmFmdC0wMyksIG9ubHkgc2VydmVycyBtYXkgY29uZmlndXJlIGEgREMg
dG8gdXNlIGluIHRoZQorLy8gaGFuZHNoYWtlLgorLy8KKy8vIFRoZSBEQyB3aWxsIG9ubHkgYmUg
dXNlZCBpZiB0aGUgcHJvdG9jb2wgdmVyc2lvbiBpcyBjb3JyZWN0IGFuZCB0aGUgc2lnbmF0dXJl
CisvLyBzY2hlbWUgaXMgc3VwcG9ydGVkIGJ5IHRoZSBwZWVyLiBJZiBub3QsIHRoZSBEQyB3aWxs
IG5vdCBiZSBuZWdvdGlhdGVkIGFuZAorLy8gdGhlIGhhbmRzaGFrZSB3aWxsIHVzZSB0aGUgcHJp
dmF0ZSBrZXkgKG9yIHByaXZhdGUga2V5IG1ldGhvZCkgYXNzb2NpYXRlZAorLy8gd2l0aCB0aGUg
Y2VydGlmaWNhdGUuCitPUEVOU1NMX0VYUE9SVCBpbnQgU1NMX3NldDFfZGVsZWdhdGVkX2NyZWRl
bnRpYWwoCisgICAgU1NMICpzc2wsIENSWVBUT19CVUZGRVIgKmRjLCBFVlBfUEtFWSAqcGtleSwK
KyAgICBjb25zdCBTU0xfUFJJVkFURV9LRVlfTUVUSE9EICprZXlfbWV0aG9kKTsKKworLy8gU1NM
X2RlbGVnYXRlZF9jcmVkZW50aWFsX3VzZWQgcmV0dXJucyBvbmUgaWYgYSBkZWxlZ2F0ZWQgY3Jl
ZGVudGlhbCB3YXMgdXNlZAorLy8gYW5kIHplcm8gb3RoZXJ3aXNlLgorT1BFTlNTTF9FWFBPUlQg
aW50IFNTTF9kZWxlZ2F0ZWRfY3JlZGVudGlhbF91c2VkKGNvbnN0IFNTTCAqc3NsKTsKKworCiAv
LyBRVUlDIGludGVncmF0aW9uLgogLy8KIC8vIFFVSUMgYWN0cyBhcyBhbiB1bmRlcmx5aW5nIHRy
YW5zcG9ydCBmb3IgdGhlIFRMUyAxLjMgaGFuZHNoYWtlLiBUaGUgZm9sbG93aW5nCkBAIC0zMDcx
LDcgKzMxNTksNyBAQCBPUEVOU1NMX0VYUE9SVCB2b2lkIFNTTF9nZXRfcGVlcl9xdWljX3RyYW5z
cG9ydF9wYXJhbXMoY29uc3QgU1NMICpzc2wsCiAKIC8vIHNzbF9lbmNyeXB0aW9uX2xldmVsX3Qg
cmVwcmVzZW50cyBhIHNwZWNpZmljIFFVSUMgZW5jcnlwdGlvbiBsZXZlbCB1c2VkIHRvCiAvLyB0
cmFuc21pdCBoYW5kc2hha2UgbWVzc2FnZXMuCi1lbnVtIHNzbF9lbmNyeXB0aW9uX2xldmVsX3Qg
eworZW51bSBzc2xfZW5jcnlwdGlvbl9sZXZlbF90IEJPUklOR1NTTF9FTlVNX0lOVCB7CiAgIHNz
bF9lbmNyeXB0aW9uX2luaXRpYWwgPSAwLAogICBzc2xfZW5jcnlwdGlvbl9lYXJseV9kYXRhLAog
ICBzc2xfZW5jcnlwdGlvbl9oYW5kc2hha2UsCkBAIC0zMTUyLDYgKzMyNDAsMTIgQEAgT1BFTlNT
TF9FWFBPUlQgaW50IFNTTF9wcm9jZXNzX3F1aWNfcG9zdF9oYW5kc2hha2UoU1NMICpzc2wpOwog
T1BFTlNTTF9FWFBPUlQgaW50IFNTTF9DVFhfc2V0X3F1aWNfbWV0aG9kKFNTTF9DVFggKmN0eCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTU0xfUVVJ
Q19NRVRIT0QgKnF1aWNfbWV0aG9kKTsKIAorLy8gU1NMX3NldF9xdWljX21ldGhvZCBjb25maWd1
cmVzIHRoZSBRVUlDIGhvb2tzLiBUaGlzIHNob3VsZCBvbmx5IGJlCisvLyBjb25maWd1cmVkIHdp
dGggYSBtaW5pbXVtIHZlcnNpb24gb2YgVExTIDEuMy4gfHF1aWNfbWV0aG9kfCBtdXN0IHJlbWFp
biB2YWxpZAorLy8gZm9yIHRoZSBsaWZldGltZSBvZiB8c3NsfC4gSXQgcmV0dXJucyBvbmUgb24g
c3VjY2VzcyBhbmQgemVybyBvbiBlcnJvci4KK09QRU5TU0xfRVhQT1JUIGludCBTU0xfc2V0X3F1
aWNfbWV0aG9kKFNTTCAqc3NsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgU1NMX1FVSUNfTUVUSE9EICpxdWljX21ldGhvZCk7CisKIAogLy8gRWFybHkgZGF0
YS4KIC8vCkBAIC0zMjIxLDYgKzMzMTUsMTAgQEAgT1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xfc2V0
X2Vhcmx5X2RhdGFfZW5hYmxlZChTU0wgKnNzbCwgaW50IGVuYWJsZWQpOwogLy8gYW5kIHxTU0xf
d3JpdGV8IHRvIHNlbmQgaGFsZi1SVFQgZGF0YS4KIE9QRU5TU0xfRVhQT1JUIGludCBTU0xfaW5f
ZWFybHlfZGF0YShjb25zdCBTU0wgKnNzbCk7CiAKKy8vIFNTTF9TRVNTSU9OX2Vhcmx5X2RhdGFf
Y2FwYWJsZSByZXR1cm5zIHdoZXRoZXIgZWFybHkgZGF0YSB3b3VsZCBoYXZlIGJlZW4KKy8vIGF0
dGVtcHRlZCB3aXRoIHxzZXNzaW9ufCBpZiBlbmFibGVkLgorT1BFTlNTTF9FWFBPUlQgaW50IFNT
TF9TRVNTSU9OX2Vhcmx5X2RhdGFfY2FwYWJsZShjb25zdCBTU0xfU0VTU0lPTiAqc2Vzc2lvbik7
CisKIC8vIFNTTF9lYXJseV9kYXRhX2FjY2VwdGVkIHJldHVybnMgd2hldGhlciBlYXJseSBkYXRh
IHdhcyBhY2NlcHRlZCBvbiB0aGUKIC8vIGhhbmRzaGFrZSBwZXJmb3JtZWQgYnkgfHNzbHwuCiBP
UEVOU1NMX0VYUE9SVCBpbnQgU1NMX2Vhcmx5X2RhdGFfYWNjZXB0ZWQoY29uc3QgU1NMICpzc2wp
OwpAQCAtMzIzNCwxMiArMzMzMiw0NSBAQCBPUEVOU1NMX0VYUE9SVCBpbnQgU1NMX2Vhcmx5X2Rh
dGFfYWNjZXB0ZWQoY29uc3QgU1NMICpzc2wpOwogLy8gfFNTTF9FUlJPUl9FQVJMWV9EQVRBX1JF
SkVDVEVEfC4KIE9QRU5TU0xfRVhQT1JUIHZvaWQgU1NMX3Jlc2V0X2Vhcmx5X2RhdGFfcmVqZWN0
KFNTTCAqc3NsKTsKIAotLy8gU1NMX2V4cG9ydF9lYXJseV9rZXlpbmdfbWF0ZXJpYWwgYmVoYXZl
cyBsaWtlIHxTU0xfZXhwb3J0X2tleWluZ19tYXRlcmlhbHwsCi0vLyBidXQgaXQgdXNlcyB0aGUg
ZWFybHkgZXhwb3J0ZXIuIFRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGlmIHxzc2x8IGRpZCBub3QK
LS8vIG5lZ290aWF0ZSBUTFMgMS4zIG9yIDAtUlRULgotT1BFTlNTTF9FWFBPUlQgaW50IFNTTF9l
eHBvcnRfZWFybHlfa2V5aW5nX21hdGVyaWFsKAotICAgIFNTTCAqc3NsLCB1aW50OF90ICpvdXQs
IHNpemVfdCBvdXRfbGVuLCBjb25zdCBjaGFyICpsYWJlbCwgc2l6ZV90IGxhYmVsX2xlbiwKLSAg
ICBjb25zdCB1aW50OF90ICpjb250ZXh0LCBzaXplX3QgY29udGV4dF9sZW4pOworLy8gU1NMX2dl
dF90aWNrZXRfYWdlX3NrZXcgcmV0dXJucyB0aGUgZGlmZmVyZW5jZSwgaW4gc2Vjb25kcywgYmV0
d2VlbiB0aGUKKy8vIGNsaWVudC1zZW50IHRpY2tldCBhZ2UgYW5kIHRoZSBzZXJ2ZXItY29tcHV0
ZWQgdmFsdWUgaW4gVExTIDEuMyBzZXJ2ZXIKKy8vIGNvbm5lY3Rpb25zIHdoaWNoIHJlc3VtZWQg
YSBzZXNzaW9uLgorT1BFTlNTTF9FWFBPUlQgaW50MzJfdCBTU0xfZ2V0X3RpY2tldF9hZ2Vfc2tl
dyhjb25zdCBTU0wgKnNzbCk7CisKK2VudW0gc3NsX2Vhcmx5X2RhdGFfcmVhc29uX3QgQk9SSU5H
U1NMX0VOVU1fSU5UIHsKKyAgLy8gVGhlIGhhbmRzaGFrZSBoYXMgbm90IHByb2dyZXNzZWQgZmFy
IGVub3VnaCBmb3IgdGhlIDAtUlRUIHN0YXR1cyB0byBiZQorICAvLyBrbm93bi4KKyAgc3NsX2Vh
cmx5X2RhdGFfdW5rbm93biwKKyAgLy8gMC1SVFQgaXMgZGlzYWJsZWQgZm9yIHRoaXMgY29ubmVj
dGlvbi4KKyAgc3NsX2Vhcmx5X2RhdGFfZGlzYWJsZWQsCisgIC8vIDAtUlRUIHdhcyBhY2NlcHRl
ZC4KKyAgc3NsX2Vhcmx5X2RhdGFfYWNjZXB0ZWQsCisgIC8vIFRoZSBuZWdvdGlhdGVkIHByb3Rv
Y29sIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCAwLVJUVC4KKyAgc3NsX2Vhcmx5X2RhdGFfcHJv
dG9jb2xfdmVyc2lvbiwKKyAgLy8gVGhlIHBlZXIgZGVjbGluZWQgdG8gb2ZmZXIgb3IgYWNjZXB0
IDAtUlRUIGZvciBhbiB1bmtub3duIHJlYXNvbi4KKyAgc3NsX2Vhcmx5X2RhdGFfcGVlcl9kZWNs
aW5lZCwKKyAgLy8gVGhlIGNsaWVudCBkaWQgbm90IG9mZmVyIGEgc2Vzc2lvbi4KKyAgc3NsX2Vh
cmx5X2RhdGFfbm9fc2Vzc2lvbl9vZmZlcmVkLAorICAvLyBUaGUgc2VydmVyIGRlY2xpbmVkIHRv
IHJlc3VtZSB0aGUgc2Vzc2lvbi4KKyAgc3NsX2Vhcmx5X2RhdGFfc2Vzc2lvbl9ub3RfcmVzdW1l
ZCwKKyAgLy8gVGhlIHNlc3Npb24gZG9lcyBub3Qgc3VwcG9ydCAwLVJUVC4KKyAgc3NsX2Vhcmx5
X2RhdGFfdW5zdXBwb3J0ZWRfZm9yX3Nlc3Npb24sCisgIC8vIFRoZSBzZXJ2ZXIgc2VudCBhIEhl
bGxvUmV0cnlSZXF1ZXN0LgorICBzc2xfZWFybHlfZGF0YV9oZWxsb19yZXRyeV9yZXF1ZXN0LAor
ICAvLyBUaGUgbmVnb3RpYXRlZCBBTFBOIHByb3RvY29sIGRpZCBub3QgbWF0Y2ggdGhlIHNlc3Np
b24uCisgIHNzbF9lYXJseV9kYXRhX2FscG5fbWlzbWF0Y2gsCisgIC8vIFRoZSBjb25uZWN0aW9u
IG5lZ290aWF0ZWQgQ2hhbm5lbCBJRCwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggMC1SVFQu
CisgIHNzbF9lYXJseV9kYXRhX2NoYW5uZWxfaWQsCisgIC8vIFRoZSBjb25uZWN0aW9uIG5lZ290
aWF0ZWQgdG9rZW4gYmluZGluZywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggMC1SVFQuCisg
IHNzbF9lYXJseV9kYXRhX3Rva2VuX2JpbmRpbmcsCisgIC8vIFRoZSBjbGllbnQgYW5kIHNlcnZl
ciB0aWNrZXQgYWdlIHdlcmUgdG9vIGZhciBhcGFydC4KKyAgc3NsX2Vhcmx5X2RhdGFfdGlja2V0
X2FnZV9za2V3LAorfTsKKworLy8gU1NMX2dldF9lYXJseV9kYXRhX3JlYXNvbiByZXR1cm5zIGRl
dGFpbHMgd2h5IDAtUlRUIHdhcyBhY2NlcHRlZCBvciByZWplY3RlZAorLy8gb24gfHNzbHwuIFRo
aXMgaXMgcHJpbWFyaWx5IHVzZWZ1bCBvbiB0aGUgc2VydmVyLgorT1BFTlNTTF9FWFBPUlQgZW51
bSBzc2xfZWFybHlfZGF0YV9yZWFzb25fdCBTU0xfZ2V0X2Vhcmx5X2RhdGFfcmVhc29uKAorICAg
IGNvbnN0IFNTTCAqc3NsKTsKIAogCiAvLyBBbGVydHMuCkBAIC0zMzc2LDEzICszNTA3LDYgQEAg
T1BFTlNTTF9FWFBPUlQgdWludDY0X3QgU1NMX2dldF93cml0ZV9zZXF1ZW5jZShjb25zdCBTU0wg
KnNzbCk7CiAKIC8vIE9ic2N1cmUgZnVuY3Rpb25zLgogCi0vLyBTU0xfZ2V0X3N0cnVjdHVyZV9z
aXplcyByZXR1cm5zIHRoZSBzaXplcyBvZiB0aGUgU1NMLCBTU0xfQ1RYIGFuZAotLy8gU1NMX1NF
U1NJT04gc3RydWN0dXJlcyBzbyB0aGF0IGEgdGVzdCBjYW4gZW5zdXJlIHRoYXQgb3V0c2lkZSBj
b2RlIGFncmVlcyBvbgotLy8gdGhlc2UgdmFsdWVzLgotT1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xf
Z2V0X3N0cnVjdHVyZV9zaXplcyhzaXplX3QgKnNzbF9zaXplLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNzbF9jdHhfc2l6ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzc2xfc2Vzc2lvbl9z
aXplKTsKLQogLy8gU1NMX0NUWF9zZXRfbXNnX2NhbGxiYWNrIGluc3RhbGxzIHxjYnwgYXMgdGhl
IG1lc3NhZ2UgY2FsbGJhY2sgZm9yIHxjdHh8LgogLy8gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGNh
bGxlZCB3aGVuIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGxvdy1sZXZlbCByZWNvcmQKIC8vIGhlYWRl
cnMsIGNvbXBsZXRlIGhhbmRzaGFrZSBtZXNzYWdlcywgQ2hhbmdlQ2lwaGVyU3BlYywgYW5kIGFs
ZXJ0cy4KQEAgLTM0NTksNyArMzU4Myw3IEBAIE9QRU5TU0xfRVhQT1JUIHZvaWQgU1NMX0NUWF9z
ZXRfY3VycmVudF90aW1lX2NiKAogLy8gc3VjaCBhcyBIVFRQLzEuMSwgYW5kIG5vdCBvdGhlcnMs
IHN1Y2ggYXMgSFRUUC8yLgogT1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xfc2V0X3NoZWRfaGFuZHNo
YWtlX2NvbmZpZyhTU0wgKnNzbCwgaW50IGVuYWJsZSk7CiAKLWVudW0gc3NsX3JlbmVnb3RpYXRl
X21vZGVfdCB7CitlbnVtIHNzbF9yZW5lZ290aWF0ZV9tb2RlX3QgQk9SSU5HU1NMX0VOVU1fSU5U
IHsKICAgc3NsX3JlbmVnb3RpYXRlX25ldmVyID0gMCwKICAgc3NsX3JlbmVnb3RpYXRlX29uY2Us
CiAgIHNzbF9yZW5lZ290aWF0ZV9mcmVlbHksCkBAIC0zNDk3LDI4ICszNjIxLDYgQEAgT1BFTlNT
TF9FWFBPUlQgaW50IFNTTF9yZW5lZ290aWF0ZV9wZW5kaW5nKFNTTCAqc3NsKTsKIC8vIHBlcmZv
cm1lZCBieSB8c3NsfC4gVGhpcyBpbmNsdWRlcyB0aGUgcGVuZGluZyByZW5lZ290aWF0aW9uLCBp
ZiBhbnkuCiBPUEVOU1NMX0VYUE9SVCBpbnQgU1NMX3RvdGFsX3JlbmVnb3RpYXRpb25zKGNvbnN0
IFNTTCAqc3NsKTsKIAotLy8gdGxzMTNfdmFyaWFudF90IGRldGVybWluZXMgd2hhdCBUTFMgMS4z
IHZhcmlhbnQgdG8gbmVnb3RpYXRlLgotZW51bSB0bHMxM192YXJpYW50X3QgewotICB0bHMxM19y
ZmMgPSAwLAotICB0bHMxM19kcmFmdDIzLAotICB0bHMxM19kcmFmdDI4LAotICAvLyB0bHMxM19h
bGwgZW5hYmxlcyBhbGwgdmFyaWFudHMgb2YgVExTIDEuMywgdG8ga2VlcCB0aGUgdHJhbnNpdGlv
biBzbW9vdGggYXMKLSAgLy8gZWFybHkgYWRvcHRlcnMgbW92ZSB0byB0aGUgZmluYWwgdmVyc2lv
bi4KLSAgdGxzMTNfYWxsLAotfTsKLQotLy8gU1NMX0NUWF9zZXRfdGxzMTNfdmFyaWFudCBzZXRz
IHdoaWNoIHZhcmlhbnQgb2YgVExTIDEuMyB3ZSBuZWdvdGlhdGUuIE9uIHRoZQotLy8gc2VydmVy
LCBpZiB8dmFyaWFudHwgaXMgbm90IHx0bHMxM19kZWZhdWx0fCwgYWxsIHZhcmlhbnRzIGFyZSBl
bmFibGVkLiBPbiB0aGUKLS8vIGNsaWVudCwgb25seSB0aGUgY29uZmlndXJlZCB2YXJpYW50IGlz
IGVuYWJsZWQuCi1PUEVOU1NMX0VYUE9SVCB2b2lkIFNTTF9DVFhfc2V0X3RsczEzX3ZhcmlhbnQo
U1NMX0NUWCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVudW0gdGxzMTNfdmFyaWFudF90IHZhcmlhbnQpOwotCi0vLyBTU0xfc2V0X3RsczEzX3Zh
cmlhbnQgc2V0cyB3aGljaCB2YXJpYW50IG9mIFRMUyAxLjMgd2UgbmVnb3RpYXRlLiBPbiB0aGUK
LS8vIHNlcnZlciwgaWYgfHZhcmlhbnR8IGlzIG5vdCB8dGxzMTNfZGVmYXVsdHwsIGFsbCB2YXJp
YW50cyBhcmUgZW5hYmxlZC4gT24gdGhlCi0vLyBjbGllbnQsIG9ubHkgdGhlIGNvbmZpZ3VyZWQg
dmFyaWFudCBpcyBlbmFibGVkLgotT1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xfc2V0X3RsczEzX3Zh
cmlhbnQoU1NMICpzc2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbnVtIHRsczEzX3ZhcmlhbnRfdCB2YXJpYW50KTsKLQogLy8gU1NMX01BWF9DRVJUX0xJU1Rf
REVGQVVMVCBpcyB0aGUgZGVmYXVsdCBtYXhpbXVtIGxlbmd0aCwgaW4gYnl0ZXMsIG9mIGEgcGVl
cgogLy8gY2VydGlmaWNhdGUgY2hhaW4uCiAjZGVmaW5lIFNTTF9NQVhfQ0VSVF9MSVNUX0RFRkFV
TFQgKDEwMjQgKiAxMDApCkBAIC0zNTc5LDcgKzM2ODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBzc2xf
ZWFybHlfY2FsbGJhY2tfY3R4IHsKIAogLy8gc3NsX3NlbGVjdF9jZXJ0X3Jlc3VsdF90IGVudW1l
cmF0ZXMgdGhlIHBvc3NpYmxlIHJlc3VsdHMgZnJvbSBzZWxlY3RpbmcgYQogLy8gY2VydGlmaWNh
dGUgd2l0aCB8c2VsZWN0X2NlcnRpZmljYXRlX2NifC4KLWVudW0gc3NsX3NlbGVjdF9jZXJ0X3Jl
c3VsdF90IHsKK2VudW0gc3NsX3NlbGVjdF9jZXJ0X3Jlc3VsdF90IEJPUklOR1NTTF9FTlVNX0lO
VCB7CiAgIC8vIHNzbF9zZWxlY3RfY2VydF9zdWNjZXNzIGluZGljYXRlcyB0aGF0IHRoZSBjZXJ0
aWZpY2F0ZSBzZWxlY3Rpb24gd2FzCiAgIC8vIHN1Y2Nlc3NmdWwuCiAgIHNzbF9zZWxlY3RfY2Vy
dF9zdWNjZXNzID0gMSwKQEAgLTM2MTAsNiArMzcxMiw4IEBAIE9QRU5TU0xfRVhQT1JUIGludCBT
U0xfZWFybHlfY2FsbGJhY2tfY3R4X2V4dGVuc2lvbl9nZXQoCiAvLyBoaWdoLWxldmVsIG9wZXJh
dGlvbiBvbiB8c3NsfCB0byBiZSByZXRyaWVkIGF0IGEgbGF0ZXIgdGltZSwgd2hpY2ggd2lsbAog
Ly8gcmVzdWx0IGluIGFub3RoZXIgY2FsbCB0byB8Y2J8LgogLy8KKy8vIHxTU0xfZ2V0X3NlcnZl
cm5hbWV8IG1heSBiZSB1c2VkIGR1cmluZyB0aGlzIGNhbGxiYWNrLgorLy8KIC8vIE5vdGU6IFRo
ZSB8U1NMX0NMSUVOVF9IRUxMT3wgaXMgb25seSB2YWxpZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRo
ZSBjYWxsYmFjawogLy8gYW5kIGlzIG5vdCB2YWxpZCB3aGlsZSB0aGUgaGFuZHNoYWtlIGlzIHBh
dXNlZC4KIE9QRU5TU0xfRVhQT1JUIHZvaWQgU1NMX0NUWF9zZXRfc2VsZWN0X2NlcnRpZmljYXRl
X2NiKApAQCAtMzYyOSw2ICszNzMzLDEyIEBAIE9QRU5TU0xfRVhQT1JUIHZvaWQgU1NMX0NUWF9z
ZXRfZG9zX3Byb3RlY3Rpb25fY2IoCiAvLyByZXNwZWN0ZWQgb24gY2xpZW50cy4KIE9QRU5TU0xf
RVhQT1JUIHZvaWQgU1NMX0NUWF9zZXRfcmV2ZXJpZnlfb25fcmVzdW1lKFNTTF9DVFggKmN0eCwg
aW50IGVuYWJsZWQpOwogCisvLyBTU0xfc2V0X2VuZm9yY2VfcnNhX2tleV91c2FnZSBjb25maWd1
cmVzIHdoZXRoZXIgdGhlIGtleVVzYWdlIGV4dGVuc2lvbiBvZgorLy8gUlNBIGxlYWYgY2VydGlm
aWNhdGVzIHdpbGwgYmUgY2hlY2tlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgVExTCisvLyB1
c2FnZS4gVGhpcyBwYXJhbWV0ZXIgbWF5IGJlIHNldCBsYXRlOyBpdCB3aWxsIG5vdCBiZSByZWFk
IHVudGlsIGFmdGVyIHRoZQorLy8gY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIGNhbGxiYWNrLgor
T1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xfc2V0X2VuZm9yY2VfcnNhX2tleV91c2FnZShTU0wgKnNz
bCwgaW50IGVuYWJsZWQpOworCiAvLyBTU0xfU1RfKiBhcmUgcG9zc2libGUgdmFsdWVzIGZvciB8
U1NMX3N0YXRlfCwgdGhlIGJpdG1hc2tzIHRoYXQgbWFrZSB0aGVtIHVwLAogLy8gYW5kIHNvbWUg
aGlzdG9yaWNhbCB2YWx1ZXMgZm9yIGNvbXBhdGliaWxpdHkuIE9ubHkgfFNTTF9TVF9JTklUfCBh
bmQKIC8vIHxTU0xfU1RfT0t8IGFyZSBldmVyIHJldHVybmVkLgpAQCAtMzc2OCwxMSArMzg3OCw2
IEBAIE9QRU5TU0xfRVhQT1JUIHZvaWQgU1NMX0NUWF9zZXRfZ3JlYXNlX2VuYWJsZWQoU1NMX0NU
WCAqY3R4LCBpbnQgZW5hYmxlZCk7CiAvLyByZWNvcmQgd2l0aCB8c3NsfC4KIE9QRU5TU0xfRVhQ
T1JUIHNpemVfdCBTU0xfbWF4X3NlYWxfb3ZlcmhlYWQoY29uc3QgU1NMICpzc2wpOwogCi0vLyBT
U0xfZ2V0X3RpY2tldF9hZ2Vfc2tldyByZXR1cm5zIHRoZSBkaWZmZXJlbmNlLCBpbiBzZWNvbmRz
LCBiZXR3ZWVuIHRoZQotLy8gY2xpZW50LXNlbnQgdGlja2V0IGFnZSBhbmQgdGhlIHNlcnZlci1j
b21wdXRlZCB2YWx1ZSBpbiBUTFMgMS4zIHNlcnZlcgotLy8gY29ubmVjdGlvbnMgd2hpY2ggcmVz
dW1lZCBhIHNlc3Npb24uCi1PUEVOU1NMX0VYUE9SVCBpbnQzMl90IFNTTF9nZXRfdGlja2V0X2Fn
ZV9za2V3KGNvbnN0IFNTTCAqc3NsKTsKLQogLy8gU1NMX0NUWF9zZXRfZmFsc2Vfc3RhcnRfYWxs
b3dlZF93aXRob3V0X2FscG4gY29uZmlndXJlcyB3aGV0aGVyIGNvbm5lY3Rpb25zCiAvLyBvbiB8
Y3R4fCBtYXkgdXNlIEZhbHNlIFN0YXJ0IChpZiB8U1NMX01PREVfRU5BQkxFX0ZBTFNFX1NUQVJU
fCBpcyBlbmFibGVkKQogLy8gd2l0aG91dCBuZWdvdGlhdGluZyBBTFBOLgpAQCAtMzc5MiwxMiAr
Mzg5NywxMiBAQCBPUEVOU1NMX0VYUE9SVCB2b2lkIFNTTF9zZXRfaWdub3JlX3RsczEzX2Rvd25n
cmFkZShTU0wgKnNzbCwgaW50IGlnbm9yZSk7CiAvLyBtZWNoYW5pc20gd291bGQgaGF2ZSBhYm9y
dGVkIHxzc2x8J3MgaGFuZHNoYWtlIGFuZCB6ZXJvIG90aGVyd2lzZS4KIE9QRU5TU0xfRVhQT1JU
IGludCBTU0xfaXNfdGxzMTNfZG93bmdyYWRlKGNvbnN0IFNTTCAqc3NsKTsKIAotLy8gU1NMX3Nl
dF9qZGsxMV93b3JrYXJvdW5kIGNvbmZpZ3VyZXMgd2hldGhlciB0byB3b3JrYXJvdW5kIGEgYnVn
IGluIEpESyAxMSdzCi0vLyBUTFMgMS4zIGltcGxlbWVudGF0aW9uLiBQcmlvciB0byAxMS4wLjIs
IEpESyAxMSBmYWlscyB0byBzZW5kIFNOSSBpbgotLy8gY29ubmVjdGlvbnMgd2hpY2ggb2ZmZXIg
YSBUTFMgMS4zIHNlc3Npb24uIEVuYWJsaW5nIHRoaXMgd29ya2Fyb3VuZCB3aWxsCi0vLyBkaXNh
YmxlIFRMUyAxLjMgb24gc3VjaCBjbGllbnRzLgorLy8gU1NMX3NldF9qZGsxMV93b3JrYXJvdW5k
IGNvbmZpZ3VyZXMgd2hldGhlciB0byB3b3JrYXJvdW5kIHZhcmlvdXMgYnVncyBpbgorLy8gSkRL
IDExJ3MgVExTIDEuMyBpbXBsZW1lbnRhdGlvbiBieSBkaXNhYmxpbmcgVExTIDEuMyBmb3Igc3Vj
aCBjbGllbnRzLgogLy8KLS8vIFNlZSBhbHNvIGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0
L2Jyb3dzZS9KREstODIxMTgwNi4KKy8vIGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jy
b3dzZS9KREstODIxMTgwNgorLy8gaHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3Nl
L0pESy04MjEyODg1CisvLyBodHRwczovL2J1Z3Mub3Blbmpkay5qYXZhLm5ldC9icm93c2UvSkRL
LTgyMTMyMDIKIE9QRU5TU0xfRVhQT1JUIHZvaWQgU1NMX3NldF9qZGsxMV93b3JrYXJvdW5kKFNT
TCAqc3NsLCBpbnQgZW5hYmxlKTsKIAogCkBAIC00MTQ1LDYgKzQyNTAsNyBAQCBERUZJTkVfU1RB
Q0tfT0YoU1NMX0NPTVApCiAjZGVmaW5lIFNTTF9PUF9ORVRTQ0FQRV9ERU1PX0NJUEhFUl9DSEFO
R0VfQlVHIDAKICNkZWZpbmUgU1NMX09QX05FVFNDQVBFX1JFVVNFX0NJUEhFUl9DSEFOR0VfQlVH
IDAKICNkZWZpbmUgU1NMX09QX05PX0NPTVBSRVNTSU9OIDAKKyNkZWZpbmUgU1NMX09QX05PX1JF
TkVHT1RJQVRJT04gMCAgLy8gc3NsX3JlbmVnb3RpYXRlX25ldmVyIGlzIHRoZSBkZWZhdWx0CiAj
ZGVmaW5lIFNTTF9PUF9OT19TRVNTSU9OX1JFU1VNUFRJT05fT05fUkVORUdPVElBVElPTiAwCiAj
ZGVmaW5lIFNTTF9PUF9OT19TU0x2MiAwCiAjZGVmaW5lIFNTTF9PUF9OT19TU0x2MyAwCkBAIC00
MTkwLDE5ICs0Mjk2LDkgQEAgT1BFTlNTTF9FWFBPUlQgY29uc3QgY2hhciAqU1NMX2dldF9jaXBo
ZXJfbGlzdChjb25zdCBTU0wgKnNzbCwgaW50IG4pOwogT1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xf
Q1RYX3NldF9jbGllbnRfY2VydF9jYigKICAgICBTU0xfQ1RYICpjdHgsIGludCAoKmNiKShTU0wg
KnNzbCwgWDUwOSAqKm91dF94NTA5LCBFVlBfUEtFWSAqKm91dF9wa2V5KSk7CiAKLSNkZWZpbmUg
U1NMX05PVEhJTkcgMQotI2RlZmluZSBTU0xfV1JJVElORyAyCi0jZGVmaW5lIFNTTF9SRUFESU5H
IDMKLSNkZWZpbmUgU1NMX1g1MDlfTE9PS1VQIDQKLSNkZWZpbmUgU1NMX0NIQU5ORUxfSURfTE9P
S1VQIDUKLSNkZWZpbmUgU1NMX1BFTkRJTkdfU0VTU0lPTiA3Ci0jZGVmaW5lIFNTTF9DRVJUSUZJ
Q0FURV9TRUxFQ1RJT05fUEVORElORyA4Ci0jZGVmaW5lIFNTTF9QUklWQVRFX0tFWV9PUEVSQVRJ
T04gOQotI2RlZmluZSBTU0xfUEVORElOR19USUNLRVQgMTAKLSNkZWZpbmUgU1NMX0VBUkxZX0RB
VEFfUkVKRUNURUQgMTEKLSNkZWZpbmUgU1NMX0NFUlRJRklDQVRFX1ZFUklGWSAxMgotI2RlZmlu
ZSBTU0xfSEFORE9GRiAxMwotI2RlZmluZSBTU0xfSEFOREJBQ0sgMTQKKyNkZWZpbmUgU1NMX05P
VEhJTkcgU1NMX0VSUk9SX05PTkUKKyNkZWZpbmUgU1NMX1dSSVRJTkcgU1NMX0VSUk9SX1dBTlRf
V1JJVEUKKyNkZWZpbmUgU1NMX1JFQURJTkcgU1NMX0VSUk9SX1dBTlRfUkVBRAogCiAvLyBTU0xf
d2FudCByZXR1cm5zIG9uZSBvZiB0aGUgYWJvdmUgdmFsdWVzIHRvIGRldGVybWluZSB3aGF0IHRo
ZSBtb3N0IHJlY2VudAogLy8gb3BlcmF0aW9uIG9uIHxzc2x8IHdhcyBibG9ja2VkIG9uLiBVc2Ug
fFNTTF9nZXRfZXJyb3J8IGluc3RlYWQuCkBAIC00NzA5LDEyICs0ODA1LDIxIEBAIE9QRU5TU0xf
RVhQT1JUIGJvb2wgU2VhbFJlY29yZChTU0wgKnNzbCwgU3Bhbjx1aW50OF90PiBvdXRfcHJlZml4
LAogCiBPUEVOU1NMX0VYUE9SVCB2b2lkIFNTTF9DVFhfc2V0X2hhbmRvZmZfbW9kZShTU0xfQ1RY
ICpjdHgsIGJvb2wgb24pOwogT1BFTlNTTF9FWFBPUlQgdm9pZCBTU0xfc2V0X2hhbmRvZmZfbW9k
ZShTU0wgKlNTTCwgYm9vbCBvbik7Ci1PUEVOU1NMX0VYUE9SVCBib29sIFNTTF9zZXJpYWxpemVf
aGFuZG9mZihjb25zdCBTU0wgKnNzbCwgQ0JCICpvdXQpOworT1BFTlNTTF9FWFBPUlQgYm9vbCBT
U0xfc2VyaWFsaXplX2hhbmRvZmYoY29uc3QgU1NMICpzc2wsIENCQiAqb3V0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1NMX0NMSUVOVF9IRUxMTyAqb3V0X2hl
bGxvKTsKIE9QRU5TU0xfRVhQT1JUIGJvb2wgU1NMX2RlY2xpbmVfaGFuZG9mZihTU0wgKnNzbCk7
CiBPUEVOU1NMX0VYUE9SVCBib29sIFNTTF9hcHBseV9oYW5kb2ZmKFNTTCAqc3NsLCBTcGFuPGNv
bnN0IHVpbnQ4X3Q+IGhhbmRvZmYpOwogT1BFTlNTTF9FWFBPUlQgYm9vbCBTU0xfc2VyaWFsaXpl
X2hhbmRiYWNrKGNvbnN0IFNTTCAqc3NsLCBDQkIgKm91dCk7CiBPUEVOU1NMX0VYUE9SVCBib29s
IFNTTF9hcHBseV9oYW5kYmFjayhTU0wgKnNzbCwgU3Bhbjxjb25zdCB1aW50OF90PiBoYW5kYmFj
ayk7CiAKKy8vIFNTTF9nZXRfdHJhZmZpY19zZWNyZXRzIHNldHMgfCpvdXRfcmVhZF90cmFmZmlj
X3NlY3JldHwgYW5kCisvLyB8Km91dF93cml0ZV90cmFmZmljX3NlY3JldHwgdG8gcmVmZXJlbmNl
IHRoZSBUTFMgMS4zIHRyYWZmaWMgc2VjcmV0cyBmb3IKKy8vIHxzc2x8LiBUaGlzIGZ1bmN0aW9u
IGlzIG9ubHkgdmFsaWQgb24gVExTIDEuMyBjb25uZWN0aW9ucyB0aGF0IGhhdmUKKy8vIGNvbXBs
ZXRlZCB0aGUgaGFuZHNoYWtlLiBJdCByZXR1cm5zIHRydWUgb24gc3VjY2VzcyBhbmQgZmFsc2Ug
b24gZXJyb3IuCitPUEVOU1NMX0VYUE9SVCBib29sIFNTTF9nZXRfdHJhZmZpY19zZWNyZXRzKAor
ICAgIGNvbnN0IFNTTCAqc3NsLCBTcGFuPGNvbnN0IHVpbnQ4X3Q+ICpvdXRfcmVhZF90cmFmZmlj
X3NlY3JldCwKKyAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+ICpvdXRfd3JpdGVfdHJhZmZpY19zZWNy
ZXQpOworCiBCU1NMX05BTUVTUEFDRV9FTkQKIAogfSAgLy8gZXh0ZXJuIEMrKwpAQCAtNDkyMiw2
ICs1MDI3LDEwIEBAIEJTU0xfTkFNRVNQQUNFX0VORAogI2RlZmluZSBTU0xfUl9UTFMxM19ET1dO
R1JBREUgMjk3CiAjZGVmaW5lIFNTTF9SX1FVSUNfSU5URVJOQUxfRVJST1IgMjk4CiAjZGVmaW5l
IFNTTF9SX1dST05HX0VOQ1JZUFRJT05fTEVWRUxfUkVDRUlWRUQgMjk5CisjZGVmaW5lIFNTTF9S
X1RPT19NVUNIX1JFQURfRUFSTFlfREFUQSAzMDAKKyNkZWZpbmUgU1NMX1JfSU5WQUxJRF9ERUxF
R0FURURfQ1JFREVOVElBTCAzMDEKKyNkZWZpbmUgU1NMX1JfS0VZX1VTQUdFX0JJVF9JTkNPUlJF
Q1QgMzAyCisjZGVmaW5lIFNTTF9SX0lOQ09OU0lTVEVOVF9DTElFTlRfSEVMTE8gMzAzCiAjZGVm
aW5lIFNTTF9SX1NTTFYzX0FMRVJUX0NMT1NFX05PVElGWSAxMDAwCiAjZGVmaW5lIFNTTF9SX1NT
TFYzX0FMRVJUX1VORVhQRUNURURfTUVTU0FHRSAxMDEwCiAjZGVmaW5lIFNTTF9SX1NTTFYzX0FM
RVJUX0JBRF9SRUNPUkRfTUFDIDEwMjAKQEAgLTQ5NTQsNiArNTA2Myw1IEBAIEJTU0xfTkFNRVNQ
QUNFX0VORAogI2RlZmluZSBTU0xfUl9UTFNWMV9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRSAx
MTE0CiAjZGVmaW5lIFNTTF9SX1RMU1YxX1VOS05PV05fUFNLX0lERU5USVRZIDExMTUKICNkZWZp
bmUgU1NMX1JfVExTVjFfQ0VSVElGSUNBVEVfUkVRVUlSRUQgMTExNgotI2RlZmluZSBTU0xfUl9U
T09fTVVDSF9SRUFEX0VBUkxZX0RBVEEgMTExNwogCiAjZW5kaWYgIC8vIE9QRU5TU0xfSEVBREVS
X1NTTF9ICmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3N0YWNrLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5j
bHVkZS9vcGVuc3NsL3N0YWNrLmgKaW5kZXggOTI0MjI4YTViOTJkM2JmMTJiYmM2ZGRjYmY1NmI1
MzE5ZWU0YWFmNC4uMDRlOTQyY2I5OTZlYjhkMmU1M2I0ZTNhMzk4NDRhNmJlYmYxYTEwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9zdGFjay5oCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29w
ZW5zc2wvc3RhY2suaApAQCAtNzgsNyArNzgsNyBAQCBleHRlcm4gIkMiIHsKIC8vICAgICBpbnQg
YmFyOwogLy8gICB9IEZPTzsKIC8vCi0vLyAgIERFRklORV9TVEFDS19PRihGT08pOworLy8gICBE
RUZJTkVfU1RBQ0tfT0YoRk9PKQogLy8KIC8vIEFsdGhvdWdoIG5vdGUgdGhhdCB0aGUgc3RhY2sg
d2lsbCBjb250YWluIC9wb2ludGVycy8gdG8gfEZPT3wuCiAvLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2lu
Y2x1ZGUvb3BlbnNzbC90bHMxLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3RsczEuaAppbmRleCA5
MzdiZTZiMzk5YmY2ZWI3YjllMTYzZDRjY2UyM2VjNWYxMTRiYjUxLi5lMzIwOWI2ZmM4ZjJmYTBl
OWQ2ZmEyOTcyNWZiNDAzZTYyYTViOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3Ns
L3RsczEuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3RsczEuaApAQCAtMjMxLDYgKzIzMSwx
MCBAQCBleHRlcm4gIkMiIHsKIC8vIEV4dGVuc2lvblR5cGUgdmFsdWUgZnJvbSBSRkM1NzQ2CiAj
ZGVmaW5lIFRMU0VYVF9UWVBFX3JlbmVnb3RpYXRlIDB4ZmYwMQogCisvLyBFeHRlbnNpb25UeXBl
IHZhbHVlIGZyb20gZHJhZnQtaWV0Zi10bHMtc3ViY2VydHMuIFRoaXMgaXMgbm90IGFuIElBTkEg
ZGVmaW5lZAorLy8gZXh0ZW5zaW9uIG51bWJlci4KKyNkZWZpbmUgVExTRVhUX1RZUEVfZGVsZWdh
dGVkX2NyZWRlbnRpYWwgMHhmZjAyCisKIC8vIEV4dGVuc2lvblR5cGUgdmFsdWUgZnJvbSBSRkM2
OTYyCiAjZGVmaW5lIFRMU0VYVF9UWVBFX2NlcnRpZmljYXRlX3RpbWVzdGFtcCAxOAogCkBAIC0y
NDAsNiArMjQ0LDkgQEAgZXh0ZXJuICJDIiB7CiAvLyBUaGlzIGlzIG5vdCBhbiBJQU5BIGRlZmlu
ZWQgZXh0ZW5zaW9uIG51bWJlcgogI2RlZmluZSBUTFNFWFRfVFlQRV9jaGFubmVsX2lkIDMwMDMy
CiAKKy8vIFRoaXMgaXMgbm90IGFuIElBTkEgZGVmaW5lZCBleHRlbnNpb24gbnVtYmVyCisjZGVm
aW5lIFRMU0VYVF9UWVBFX3BxX2V4cGVyaW1lbnRfc2lnbmFsIDU0NTM4CisKIC8vIHN0YXR1cyBy
ZXF1ZXN0IHZhbHVlIGZyb20gUkZDIDM1NDYKICNkZWZpbmUgVExTRVhUX1NUQVRVU1RZUEVfbm90
aGluZyAoLTEpCiAjZGVmaW5lIFRMU0VYVF9TVEFUVVNUWVBFX29jc3AgMQpAQCAtNjA0LDkgKzYx
MSw5IEBAIGV4dGVybiAiQyIgewogICAiRUNESEUtUFNLLUNIQUNIQTIwLVBPTFkxMzA1IgogCiAv
LyBUTFMgMS4zIGNpcGhlcnN1aXRlcyBmcm9tIFJGQyA4NDQ2LgotI2RlZmluZSBUTFMxX1RYVF9B
RVNfMTI4X0dDTV9TSEEyNTYgIkFFQUQtQUVTMTI4LUdDTS1TSEEyNTYiCi0jZGVmaW5lIFRMUzFf
VFhUX0FFU18yNTZfR0NNX1NIQTM4NCAiQUVBRC1BRVMyNTYtR0NNLVNIQTM4NCIKLSNkZWZpbmUg
VExTMV9UWFRfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2ICJBRUFELUNIQUNIQTIwLVBPTFkxMzA1
LVNIQTI1NiIKKyNkZWZpbmUgVExTMV9UWFRfQUVTXzEyOF9HQ01fU0hBMjU2ICJUTFNfQUVTXzEy
OF9HQ01fU0hBMjU2IgorI2RlZmluZSBUTFMxX1RYVF9BRVNfMjU2X0dDTV9TSEEzODQgIlRMU19B
RVNfMjU2X0dDTV9TSEEzODQiCisjZGVmaW5lIFRMUzFfVFhUX0NIQUNIQTIwX1BPTFkxMzA1X1NI
QTI1NiAiVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiIKIAogCiAjZGVmaW5lIFRMU19DVF9S
U0FfU0lHTiAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3g1MDlfdmZ5LmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvaW5jbHVkZS9vcGVuc3NsL3g1MDlfdmZ5LmgKaW5kZXggODZhYTU0NjkyMzJhNmJhMGFhNDMy
ZTMzYzlkOTM2MDZiYjg3NWZmOC4uZjI2MjMzNDk3YjI1ZjE2NGIxYzRmODljNTMxNzFiMjMxNjVl
ZDdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC94NTA5X3ZmeS5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9pbmNsdWRlL29wZW5zc2wveDUwOV92ZnkuaApAQCAtMzcwLDYgKzM3MCw4IEBAIE9QRU5TU0xf
RVhQT1JUIHZvaWQgWDUwOV9TVE9SRV9DVFhfc2V0X2RlcHRoKFg1MDlfU1RPUkVfQ1RYICpjdHgs
IGludCBkZXB0aCk7CiAvKiBJc3N1ZXIgbG9va3VwIGVycm9yICovCiAjZGVmaW5lCQlYNTA5X1Zf
RVJSX1NUT1JFX0xPT0tVUAkJCQk2NgogCisjZGVmaW5lCQlYNTA5X1ZfRVJSX05BTUVfQ09OU1RS
QUlOVFNfV0lUSE9VVF9TQU5TCTY3CisKIC8qIENlcnRpZmljYXRlIHZlcmlmeSBmbGFncyAqLwog
CiAvKiBTZW5kIGlzc3VlcitzdWJqZWN0IGNoZWNrcyB0byB2ZXJpZnlfY2IgKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9pbmNsdWRlL29wZW5zc2wveDUwOXYzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3g1
MDl2My5oCmluZGV4IGQyZDM5ZjhlZTE2ODJhMWJjNmIzOGJjZjBiNWQ1OGExYTg1ZTFjYzguLmI1
ZGI3MTU3ZWU0ZDg3Zjg2YmExOWNlY2EyOTNhZTU0ZGE5N2EwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9p
bmNsdWRlL29wZW5zc2wveDUwOXYzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC94NTA5djMu
aApAQCAtNzAzLDggKzcwMyw4IEBAIE9QRU5TU0xfRVhQT1JUIHZvaWQgWDUwOV9lbWFpbF9mcmVl
KFNUQUNLX09GKE9QRU5TU0xfU1RSSU5HKSAqc2spOwogT1BFTlNTTF9FWFBPUlQgU1RBQ0tfT0Yo
T1BFTlNTTF9TVFJJTkcpICpYNTA5X2dldDFfb2NzcChYNTA5ICp4KTsKIC8qIEZsYWdzIGZvciBY
NTA5X2NoZWNrXyogZnVuY3Rpb25zICovCiAKLS8qIEFsd2F5cyBjaGVjayBzdWJqZWN0IG5hbWUg
Zm9yIGhvc3QgbWF0Y2ggZXZlbiBpZiBzdWJqZWN0IGFsdCBuYW1lcyBwcmVzZW50ICovCi0jZGVm
aW5lIFg1MDlfQ0hFQ0tfRkxBR19BTFdBWVNfQ0hFQ0tfU1VCSkVDVAkweDEKKy8qIERlcHJlY2F0
ZWQ6IHRoaXMgZmxhZyBkb2VzIG5vdGhpbmcgKi8KKyNkZWZpbmUgWDUwOV9DSEVDS19GTEFHX0FM
V0FZU19DSEVDS19TVUJKRUNUCTAKIC8qIERpc2FibGUgd2lsZGNhcmQgbWF0Y2hpbmcgZm9yIGRu
c05hbWUgZmllbGRzIGFuZCBjb21tb24gbmFtZS4gKi8KICNkZWZpbmUgWDUwOV9DSEVDS19GTEFH
X05PX1dJTERDQVJEUwkweDIKIC8qIFdpbGRjYXJkcyBtdXN0IG5vdCBtYXRjaCBhIHBhcnRpYWwg
bGFiZWwuICovCkBAIC03MTMsNiArNzEzLDggQEAgT1BFTlNTTF9FWFBPUlQgU1RBQ0tfT0YoT1BF
TlNTTF9TVFJJTkcpICpYNTA5X2dldDFfb2NzcChYNTA5ICp4KTsKICNkZWZpbmUgWDUwOV9DSEVD
S19GTEFHX01VTFRJX0xBQkVMX1dJTERDQVJEUyAweDgKIC8qIENvbnN0cmFpbnQgdmVyaWZpZXIg
c3ViZG9tYWluIHBhdHRlcm5zIHRvIG1hdGNoIGEgc2luZ2xlIGxhYmVscy4gKi8KICNkZWZpbmUg
WDUwOV9DSEVDS19GTEFHX1NJTkdMRV9MQUJFTF9TVUJET01BSU5TIDB4MTAKKy8qIFNraXAgdGhl
IHN1YmplY3QgY29tbW9uIG5hbWUgZmFsbGJhY2sgaWYgc3ViamVjdEFsdE5hbWVzIGlzIG1pc3Np
bmcuICovCisjZGVmaW5lIFg1MDlfQ0hFQ0tfRkxBR19ORVZFUl9DSEVDS19TVUJKRUNUIDB4MjAK
IC8qCiAgKiBNYXRjaCByZWZlcmVuY2UgaWRlbnRpZmllcnMgc3RhcnRpbmcgd2l0aCAiLiIgdG8g
YW55IHN1Yi1kb21haW4uCiAgKiBUaGlzIGlzIGEgbm9uLXB1YmxpYyBmbGFnLCB0dXJuZWQgb24g
aW1wbGljaXRseSB3aGVuIHRoZSBzdWJqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5mcmEvY29uZmln
L1JFQURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9pbmZyYS9jb25maWcvUkVBRE1FLm1kCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmYTBiYmM0NGE3ODZkMjhlNDI4ZjY5Nzg3OWZiZDg3ODgxYTViZTMwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmZyYS9j
b25maWcvUkVBRE1FLm1kCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1JbmZyYXN0cnVj
dHVyZSBsb2NhdGlvbi4KLQotVGhpcyBjb250YWlucyBDb21taXQgUXVldWUgY29uZmlnIGZvciBh
dXRvbWF0aWMgdGVzdGluZyBvZiBjaGFuZ2VzIGJlZm9yZSB0aGV5Ci1hcmUgY29tbWl0dGVkLgot
Ci1Jbml0aWFsIHNldCB1cCBidWc6IGh0dHA6Ly9jcmJ1Zy5jb20vNjE4NjQxLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL2luZnJhL2NvbmZpZy9jcS5jZmcgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5mcmEvY29uZmlnL2NxLmNmZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjRjYjE4MDZlMWNjZDJiNmIyZDk4ZWRkOWU2NDVl
MmZkZTc1ODI0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvaW5mcmEvY29uZmlnL2NxLmNmZworKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAK
LSMgU2VlIGh0dHA6Ly9sdWNpLWNvbmZpZy5hcHBzcG90LmNvbS9zY2hlbWFzL3Byb2plY3RzL3Jl
ZnM6Y3EuY2ZnIGZvciB0aGUKLSMgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIGZpbGUgZm9ybWF0Lgot
dmVyc2lvbjogMQotZ2l0X3JlcG9fdXJsOiAiaHR0cHM6Ly9ib3Jpbmdzc2wuZ29vZ2xlc291cmNl
LmNvbS9ib3Jpbmdzc2wiCi1jcV9zdGF0dXNfdXJsOiAiaHR0cHM6Ly9jaHJvbWl1bS1jcS1zdGF0
dXMuYXBwc3BvdC5jb20iCi1nZXJyaXQge30KLXZlcmlmaWVycyB7Ci0gIGdlcnJpdF9jcV9hYmls
aXR5IHsKLSAgICBjb21taXR0ZXJfbGlzdDogInByb2plY3QtYm9yaW5nc3NsLWNvbW1pdHRlcnMi
Ci0gICAgZHJ5X3J1bl9hY2Nlc3NfbGlzdDogInByb2plY3QtYm9yaW5nc3NsLXRyeWpvYi1hY2Nl
c3MiCi0gIH0KLSAgdHJ5X2pvYiB7Ci0gICAgYnVja2V0cyB7Ci0gICAgICBuYW1lOiAibHVjaS5i
b3Jpbmdzc2wudHJ5IgotCi0gICAgICBidWlsZGVycyB7Ci0gICAgICAgIG5hbWU6ICJhbmRyb2lk
X2FhcmNoNjQiCi0gICAgICAgIGV4cGVyaW1lbnRfcGVyY2VudGFnZTogMQotICAgICAgfQotICAg
ICAgYnVpbGRlcnMgewotICAgICAgICBuYW1lOiAiYW5kcm9pZF9hYXJjaDY0X3JlbCIKLSAgICAg
ICAgZXhwZXJpbWVudF9wZXJjZW50YWdlOiAxCi0gICAgICB9Ci0gICAgICBidWlsZGVycyB7Ci0g
ICAgICAgIG5hbWU6ICJhbmRyb2lkX2FybSIKLSAgICAgICAgZXhwZXJpbWVudF9wZXJjZW50YWdl
OiAxCi0gICAgICB9Ci0gICAgICBidWlsZGVycyB7Ci0gICAgICAgIG5hbWU6ICJhbmRyb2lkX2Fy
bV9yZWwiCi0gICAgICAgIGV4cGVyaW1lbnRfcGVyY2VudGFnZTogMQotICAgICAgfQotCi0gICAg
ICBidWlsZGVycyB7IG5hbWU6ICJsaW51eCIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1lOiAibGlu
dXgzMiIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1lOiAibGludXgzMl9yZWwiIH0KLSAgICAgIGJ1
aWxkZXJzIHsgbmFtZTogImxpbnV4X2NsYW5nX3JlbCIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1l
OiAibGludXhfZnV6eiIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1lOiAibGludXhfbm9hc21fYXNh
biIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1lOiAibGludXhfbm90aHJlYWRzIiB9Ci0gICAgICBi
dWlsZGVycyB7IG5hbWU6ICJsaW51eF9yZWwiIH0KLSAgICAgIGJ1aWxkZXJzIHsgbmFtZTogImxp
bnV4X3NoYXJlZCIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1lOiAibGludXhfc21hbGwiIH0KLQot
ICAgICAgYnVpbGRlcnMgeyBuYW1lOiAibWFjIiB9Ci0gICAgICBidWlsZGVycyB7IG5hbWU6ICJt
YWNfcmVsIiB9Ci0gICAgICBidWlsZGVycyB7IG5hbWU6ICJtYWNfc21hbGwiIH0KLQotICAgICAg
YnVpbGRlcnMgeyBuYW1lOiAid2luMzIiIH0KLSAgICAgIGJ1aWxkZXJzIHsgbmFtZTogIndpbjMy
X3JlbCIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1lOiAid2luMzJfc21hbGwiIH0KLSAgICAgIGJ1
aWxkZXJzIHsgbmFtZTogIndpbjY0IiB9Ci0gICAgICBidWlsZGVycyB7IG5hbWU6ICJ3aW42NF9y
ZWwiIH0KLSAgICAgIGJ1aWxkZXJzIHsgbmFtZTogIndpbjY0X3NtYWxsIiB9Ci0gICAgICBidWls
ZGVycyB7IG5hbWU6ICJ3aW4zMl92czIwMTdfY29tcGlsZSIgfQotICAgICAgYnVpbGRlcnMgeyBu
YW1lOiAid2luNjRfdnMyMDE3X2NvbXBpbGUiIH0KLSAgICAgIGJ1aWxkZXJzIHsgbmFtZTogIndp
bjMyX2NsYW5nX3ZzMjAxN19jb21waWxlIiB9Ci0gICAgICBidWlsZGVycyB7IG5hbWU6ICJ3aW42
NF9jbGFuZ192czIwMTdfY29tcGlsZSIgfQotCi0gICAgICBidWlsZGVycyB7IG5hbWU6ICJsaW51
eF9maXBzIiB9Ci0gICAgICBidWlsZGVycyB7IG5hbWU6ICJsaW51eF9maXBzX3JlbCIgfQotICAg
ICAgYnVpbGRlcnMgeyBuYW1lOiAibGludXhfZmlwc19jbGFuZyIgfQotICAgICAgYnVpbGRlcnMg
eyBuYW1lOiAibGludXhfZmlwc19jbGFuZ19yZWwiIH0KLSAgICAgIGJ1aWxkZXJzIHsgbmFtZTog
ImxpbnV4X2ZpcHNfbm9hc21fYXNhbiIgfQotCi0gICAgICBidWlsZGVycyB7IG5hbWU6ICJpb3Nf
Y29tcGlsZSIgfQotICAgICAgYnVpbGRlcnMgeyBuYW1lOiAiaW9zNjRfY29tcGlsZSIgfQotCi0g
ICAgICBidWlsZGVycyB7IG5hbWU6ICJhbmRyb2lkX2FybV9jb21waWxlIiB9Ci0gICAgICBidWls
ZGVycyB7IG5hbWU6ICJhbmRyb2lkX2FhcmNoNjRfY29tcGlsZSIgfQotCi0gICAgICBidWlsZGVy
cyB7IG5hbWU6ICJkb2NzIiB9Ci0gICAgfQotICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc291cmNl
cy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9zb3VyY2VzLmNtYWtlCmluZGV4IDYyMTM1MTJiOWI4NTI2MThhNmViZWM0
ZGM3YWFmYmMxMDEzM2ZhMDYuLjE1NjljZTllNTUyODdlYTIxNzliNmZkZjFjZDBjY2UyN2Q4YWM2
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9zb3VyY2VzLmNtYWtlCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zb3VyY2VzLmNtYWtl
CkBAIC01NCw2ICs1NCw3IEBAIHNldCgKICAgY3J5cHRvL2ZpcHNtb2R1bGUvcmFuZC9jdHJkcmJn
X3ZlY3RvcnMudHh0CiAgIGNyeXB0by9obWFjX2V4dHJhL2htYWNfdGVzdHMudHh0CiAgIGNyeXB0
by9wb2x5MTMwNS9wb2x5MTMwNV90ZXN0cy50eHQKKyAgY3J5cHRvL3NpcGhhc2gvc2lwaGFzaF90
ZXN0cy50eHQKICAgY3J5cHRvL3g1MDkvbWFueV9jb25zdHJhaW50cy5wZW0KICAgY3J5cHRvL3g1
MDkvbWFueV9uYW1lczEucGVtCiAgIGNyeXB0by94NTA5L21hbnlfbmFtZXMyLnBlbQpAQCAtODAs
NiArODEsNyBAQCBzZXQoCiAgIHRoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZlY3RvcnMvZWNk
c2Ffc2VjcDM4NHIxX3NoYTUxMl90ZXN0LnR4dAogICB0aGlyZF9wYXJ0eS93eWNoZXByb29mX3Rl
c3R2ZWN0b3JzL2VjZHNhX3NlY3A1MjFyMV9zaGE1MTJfdGVzdC50eHQKICAgdGhpcmRfcGFydHkv
d3ljaGVwcm9vZl90ZXN0dmVjdG9ycy9lZGRzYV90ZXN0LnR4dAorICB0aGlyZF9wYXJ0eS93eWNo
ZXByb29mX3Rlc3R2ZWN0b3JzL2t3cF90ZXN0LnR4dAogICB0aGlyZF9wYXJ0eS93eWNoZXByb29m
X3Rlc3R2ZWN0b3JzL2t3X3Rlc3QudHh0CiAgIHRoaXJkX3BhcnR5L3d5Y2hlcHJvb2ZfdGVzdHZl
Y3RvcnMvcnNhX3Bzc18yMDQ4X3NoYTFfbWdmMV8yMF90ZXN0LnR4dAogICB0aGlyZF9wYXJ0eS93
eWNoZXByb29mX3Rlc3R2ZWN0b3JzL3JzYV9wc3NfMjA0OF9zaGEyNTZfbWdmMV8wX3Rlc3QudHh0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvc3NsL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9DTWFrZUxpc3Rz
LnR4dAppbmRleCBkNmMxMjk0ZjEyMGUzMmRhYjI0ODEzNmRiZmVlZGE2OTEyYTMxN2RkLi4wZmI1
MzJlYWU2MTZmOTNmZmNiMTE3Y2NjMDFiODk1ZWZhMGZjNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3Ns
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvQ01ha2VMaXN0cy50eHQKQEAgLTUwLDE0ICs1
MCwxNCBAQCBhZGRfZXhlY3V0YWJsZSgKIAogICBzcGFuX3Rlc3QuY2MKICAgc3NsX3Rlc3QuY2MK
KyAgc3NsX2NfdGVzdC5jCiAKICAgJDxUQVJHRVRfT0JKRUNUUzpib3Jpbmdzc2xfZ3Rlc3RfbWFp
bj4KLSAgJDxUQVJHRVRfT0JKRUNUUzp0ZXN0X3N1cHBvcnQ+CiApCiAKIGFkZF9kZXBlbmRlbmNp
ZXMoc3NsX3Rlc3QgZ2xvYmFsX3RhcmdldCkKIAotdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHNzbF90
ZXN0IHNzbCBjcnlwdG8gYm9yaW5nc3NsX2d0ZXN0KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKHNz
bF90ZXN0IHRlc3Rfc3VwcG9ydF9saWIgYm9yaW5nc3NsX2d0ZXN0IHNzbCBjcnlwdG8pCiBpZihX
SU4zMikKICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHNzbF90ZXN0IHdzMl8zMikKIGVuZGlmKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9zc2wvZDFfYm90aC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvZDFfYm90aC5jYwppbmRl
eCBkODI4NTJkNzEwY2FhNDVhZjZlY2U3MDMwNWRlMDdkNTQxY2NjMTUwLi41YTI0ZmIyYmE4OWM3
NTliZDBhODVhYWJkMzdkMzI0ZmE5ZjRjOGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL2QxX2JvdGgu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3NzbC9kMV9ib3RoLmNjCkBAIC00MDUsNyArNDA1LDcgQEAgc3NsX29wZW5f
cmVjb3JkX3QgZHRsczFfb3Blbl9oYW5kc2hha2UoU1NMICpzc2wsIHNpemVfdCAqb3V0X2NvbnN1
bWVkLAogICByZXR1cm4gc3NsX29wZW5fcmVjb3JkX3N1Y2Nlc3M7CiB9CiAKLWJvb2wgZHRsczFf
Z2V0X21lc3NhZ2UoU1NMICpzc2wsIFNTTE1lc3NhZ2UgKm91dCkgeworYm9vbCBkdGxzMV9nZXRf
bWVzc2FnZShjb25zdCBTU0wgKnNzbCwgU1NMTWVzc2FnZSAqb3V0KSB7CiAgIGlmICghZHRsczFf
aXNfY3VycmVudF9tZXNzYWdlX2NvbXBsZXRlKHNzbCkpIHsKICAgICByZXR1cm4gZmFsc2U7CiAg
IH0KQEAgLTc5OSwxNCArNzk5LDE0IEBAIHN0YXRpYyBpbnQgc2VuZF9mbGlnaHQoU1NMICpzc2wp
IHsKICAgICAgIC8vIFJldHJ5IHRoaXMgcGFja2V0IHRoZSBuZXh0IHRpbWUgYXJvdW5kLgogICAg
ICAgc3NsLT5kMS0+b3V0Z29pbmdfd3JpdHRlbiA9IG9sZF93cml0dGVuOwogICAgICAgc3NsLT5k
MS0+b3V0Z29pbmdfb2Zmc2V0ID0gb2xkX29mZnNldDsKLSAgICAgIHNzbC0+czMtPnJ3c3RhdGUg
PSBTU0xfV1JJVElORzsKKyAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfRVJST1JfV0FOVF9X
UklURTsKICAgICAgIHJldCA9IGJpb19yZXQ7CiAgICAgICBnb3RvIGVycjsKICAgICB9CiAgIH0K
IAogICBpZiAoQklPX2ZsdXNoKHNzbC0+d2Jpby5nZXQoKSkgPD0gMCkgewotICAgIHNzbC0+czMt
PnJ3c3RhdGUgPSBTU0xfV1JJVElORzsKKyAgICBzc2wtPnMzLT5yd3N0YXRlID0gU1NMX0VSUk9S
X1dBTlRfV1JJVEU7CiAgICAgZ290byBlcnI7CiAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9k
MV9wa3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvc3NsL2QxX3BrdC5jYwppbmRleCBiZTU5NWIwN2FiMzJiZTQ1NDI3OTEy
Yjc3ZmFhMTAyZTliNjAyNDIwLi5kZmI4YTY3YWQwYzMzZjYwNDU4M2FiM2E0M2Q5MWNiY2IzYWI2
YzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL2QxX3BrdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL2QxX3BrdC5j
YwpAQCAtMjU2LDcgKzI1Niw3IEBAIGludCBkdGxzMV9kaXNwYXRjaF9hbGVydChTU0wgKnNzbCkg
ewogICBpZiAocmV0IDw9IDApIHsKICAgICByZXR1cm4gcmV0OwogICB9Ci0gIHNzbC0+czMtPmFs
ZXJ0X2Rpc3BhdGNoID0gMDsKKyAgc3NsLT5zMy0+YWxlcnRfZGlzcGF0Y2ggPSBmYWxzZTsKIAog
ICAvLyBJZiB0aGUgYWxlcnQgaXMgZmF0YWwsIGZsdXNoIHRoZSBCSU8gbm93LgogICBpZiAoc3Ns
LT5zMy0+c2VuZF9hbGVydFswXSA9PSBTU0wzX0FMX0ZBVEFMKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL2hhbmRvZmYuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL2hhbmRvZmYuY2MKaW5kZXggNGNjYTk4MTg1NDNhMTg1
M2VlZmNmMWUwNTMxYmU0ZGM3Y2M3MjM3MS4uYzQ4OTE4ZWQ5NGJjNTliMzYzMTQ2NzUxY2JjNDk4
YmE2NmY1OTBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9oYW5kb2ZmLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wv
aGFuZG9mZi5jYwpAQCAtNDksMTUgKzQ5LDE3IEBAIHN0YXRpYyBib29sIHNlcmlhbGl6ZV9mZWF0
dXJlcyhDQkIgKm91dCkgewogICByZXR1cm4gQ0JCX2ZsdXNoKG91dCk7CiB9CiAKLWJvb2wgU1NM
X3NlcmlhbGl6ZV9oYW5kb2ZmKGNvbnN0IFNTTCAqc3NsLCBDQkIgKm91dCkgeworYm9vbCBTU0xf
c2VyaWFsaXplX2hhbmRvZmYoY29uc3QgU1NMICpzc2wsIENCQiAqb3V0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU1NMX0NMSUVOVF9IRUxMTyAqb3V0X2hlbGxvKSB7CiAgIGNvbnN0IFNT
TDNfU1RBVEUgKmNvbnN0IHMzID0gc3NsLT5zMzsKICAgaWYgKCFzc2wtPnNlcnZlciB8fAogICAg
ICAgczMtPmhzID09IG51bGxwdHIgfHwKLSAgICAgIHMzLT5yd3N0YXRlICE9IFNTTF9IQU5ET0ZG
KSB7CisgICAgICBzMy0+cndzdGF0ZSAhPSBTU0xfRVJST1JfSEFORE9GRikgewogICAgIHJldHVy
biBmYWxzZTsKICAgfQogCiAgIENCQiBzZXE7CisgIFNTTE1lc3NhZ2UgbXNnOwogICBTcGFuPGNv
bnN0IHVpbnQ4X3Q+IHRyYW5zY3JpcHQgPSBzMy0+aHMtPnRyYW5zY3JpcHQuYnVmZmVyKCk7CiAg
IGlmICghQ0JCX2FkZF9hc24xKG91dCwgJnNlcSwgQ0JTX0FTTjFfU0VRVUVOQ0UpIHx8CiAgICAg
ICAhQ0JCX2FkZF9hc24xX3VpbnQ2NCgmc2VxLCBrSGFuZG9mZlZlcnNpb24pIHx8CkBAIC02Niw3
ICs2OCw5IEBAIGJvb2wgU1NMX3NlcmlhbGl6ZV9oYW5kb2ZmKGNvbnN0IFNTTCAqc3NsLCBDQkIg
Km91dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90ICo+KHMzLT5oc19idWYtPmRhdGEpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgczMtPmhzX2J1Zi0+bGVuZ3RoKSB8fAogICAgICAgIXNlcmlhbGl6ZV9mZWF0dXJl
cygmc2VxKSB8fAotICAgICAgIUNCQl9mbHVzaChvdXQpKSB7CisgICAgICAhQ0JCX2ZsdXNoKG91
dCkgfHwKKyAgICAgICFzc2wtPm1ldGhvZC0+Z2V0X21lc3NhZ2Uoc3NsLCAmbXNnKSB8fAorICAg
ICAgIXNzbF9jbGllbnRfaGVsbG9faW5pdChzc2wsIG91dF9oZWxsbywgbXNnKSkgewogICAgIHJl
dHVybiBmYWxzZTsKICAgfQogCkBAIC03Nyw3ICs4MSw3IEBAIGJvb2wgU1NMX2RlY2xpbmVfaGFu
ZG9mZihTU0wgKnNzbCkgewogICBjb25zdCBTU0wzX1NUQVRFICpjb25zdCBzMyA9IHNzbC0+czM7
CiAgIGlmICghc3NsLT5zZXJ2ZXIgfHwKICAgICAgIHMzLT5ocyA9PSBudWxscHRyIHx8Ci0gICAg
ICBzMy0+cndzdGF0ZSAhPSBTU0xfSEFORE9GRikgeworICAgICAgczMtPnJ3c3RhdGUgIT0gU1NM
X0VSUk9SX0hBTkRPRkYpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIApAQCAtMzA3LDcgKzMx
MSw3IEBAIGJvb2wgU1NMX3NlcmlhbGl6ZV9oYW5kYmFjayhjb25zdCBTU0wgKnNzbCwgQ0JCICpv
dXQpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KICAgaWYgKHR5cGUgPT0gaGFuZGJhY2tfYWZ0
ZXJfZWNkaGUgJiYKLSAgICAgICFzMy0+aHMtPmtleV9zaGFyZS0+U2VyaWFsaXplKCZrZXlfc2hh
cmUpKSB7CisgICAgICAhczMtPmhzLT5rZXlfc2hhcmVzWzBdLT5TZXJpYWxpemUoJmtleV9zaGFy
ZSkpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KICAgcmV0dXJuIENCQl9mbHVzaChvdXQpOwpA
QCAtNDQ2LDYgKzQ1MCwxMCBAQCBib29sIFNTTF9hcHBseV9oYW5kYmFjayhTU0wgKnNzbCwgU3Bh
bjxjb25zdCB1aW50OF90PiBoYW5kYmFjaykgewogICBzMy0+YWVhZF93cml0ZV9jdHgtPlNldFZl
cnNpb25JZk51bGxDaXBoZXIoc3NsLT52ZXJzaW9uKTsKICAgczMtPmhzLT5jZXJ0X3JlcXVlc3Qg
PSBjZXJ0X3JlcXVlc3Q7CiAKKyAgLy8gVE9ETyhkYXZpZGJlbik6IFdoZW4gaGFuZG9mZiBmb3Ig
VExTIDEuMyBpcyBhZGRlZCwgc2VyaWFsaXplCisgIC8vIHxlYXJseV9kYXRhX3JlYXNvbnwgYW5k
IHN0YWJpbGl6ZSB0aGUgY29uc3RhbnRzLgorICBzMy0+ZWFybHlfZGF0YV9yZWFzb24gPSBzc2xf
ZWFybHlfZGF0YV9wcm90b2NvbF92ZXJzaW9uOworCiAgIEFycmF5PHVpbnQ4X3Q+IGtleV9ibG9j
azsKICAgaWYgKCh0eXBlID09IGhhbmRiYWNrX2FmdGVyX3Nlc3Npb25fcmVzdW1wdGlvbiB8fAog
ICAgICAgIHR5cGUgPT0gaGFuZGJhY2tfYWZ0ZXJfaGFuZHNoYWtlKSAmJgpAQCAtNDcxLDcgKzQ3
OSw3IEBAIGJvb2wgU1NMX2FwcGx5X2hhbmRiYWNrKFNTTCAqc3NsLCBTcGFuPGNvbnN0IHVpbnQ4
X3Q+IGhhbmRiYWNrKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAgIGlmICh0eXBlID09IGhh
bmRiYWNrX2FmdGVyX2VjZGhlICYmCi0gICAgICAoczMtPmhzLT5rZXlfc2hhcmUgPSBTU0xLZXlT
aGFyZTo6Q3JlYXRlKCZrZXlfc2hhcmUpKSA9PSBudWxscHRyKSB7CisgICAgICAoczMtPmhzLT5r
ZXlfc2hhcmVzWzBdID0gU1NMS2V5U2hhcmU6OkNyZWF0ZSgma2V5X3NoYXJlKSkgPT0gbnVsbHB0
cikgewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL2hhbmRz
aGFrZS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9zc2wvaGFuZHNoYWtlLmNjCmluZGV4IDA1OGE3OTM1MDNjNTQyYzg5YzJj
MjhiMmI1ODY3ZWMzNzAwMzI0ODYuLjY3OTFkMmFjYmZmYTkwZTUzNDViZTQwYmQ5YmM0YjBlMzYz
Mzk2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvaGFuZHNoYWtlLmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvaGFu
ZHNoYWtlLmNjCkBAIC0xMzUsNiArMTM1LDcgQEAgU1NMX0hBTkRTSEFLRTo6U1NMX0hBTkRTSEFL
RShTU0wgKnNzbF9hcmcpCiAgICAgICBjZXJ0X3JlcXVlc3QoZmFsc2UpLAogICAgICAgY2VydGlm
aWNhdGVfc3RhdHVzX2V4cGVjdGVkKGZhbHNlKSwKICAgICAgIG9jc3Bfc3RhcGxpbmdfcmVxdWVz
dGVkKGZhbHNlKSwKKyAgICAgIGRlbGVnYXRlZF9jcmVkZW50aWFsX3JlcXVlc3RlZChmYWxzZSks
CiAgICAgICBzaG91bGRfYWNrX3NuaShmYWxzZSksCiAgICAgICBpbl9mYWxzZV9zdGFydChmYWxz
ZSksCiAgICAgICBpbl9lYXJseV9kYXRhKGZhbHNlKSwKQEAgLTE1Niw2ICsxNTcsMTMgQEAgU1NM
X0hBTkRTSEFLRTo6flNTTF9IQU5EU0hBS0UoKSB7CiAgIHNzbC0+Y3R4LT54NTA5X21ldGhvZC0+
aHNfZmx1c2hfY2FjaGVkX2NhX25hbWVzKHRoaXMpOwogfQogCit2b2lkIFNTTF9IQU5EU0hBS0U6
OlJlc2l6ZVNlY3JldHMoc2l6ZV90IGhhc2hfbGVuKSB7CisgIGlmIChoYXNoX2xlbiA+IFNTTF9N
QVhfTURfU0laRSkgeworICAgIGFib3J0KCk7CisgIH0KKyAgaGFzaF9sZW5fID0gaGFzaF9sZW47
Cit9CisKIFVuaXF1ZVB0cjxTU0xfSEFORFNIQUtFPiBzc2xfaGFuZHNoYWtlX25ldyhTU0wgKnNz
bCkgewogICBVbmlxdWVQdHI8U1NMX0hBTkRTSEFLRT4gaHMgPSBNYWtlVW5pcXVlPFNTTF9IQU5E
U0hBS0U+KHNzbCk7CiAgIGlmICghaHMgfHwgIWhzLT50cmFuc2NyaXB0LkluaXQoKSkgewpAQCAt
NDc4LDggKzQ4Niw5IEBAIGJvb2wgc3NsX3NlbmRfZmluaXNoZWQoU1NMX0hBTkRTSEFLRSAqaHMp
IHsKICAgfQogCiAgIC8vIExvZyB0aGUgbWFzdGVyIHNlY3JldCwgaWYgbG9nZ2luZyBpcyBlbmFi
bGVkLgotICBpZiAoIXNzbF9sb2dfc2VjcmV0KHNzbCwgIkNMSUVOVF9SQU5ET00iLCBzZXNzaW9u
LT5tYXN0ZXJfa2V5LAotICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPm1hc3Rlcl9rZXlf
bGVuZ3RoKSkgeworICBpZiAoIXNzbF9sb2dfc2VjcmV0KAorICAgICAgICAgIHNzbCwgIkNMSUVO
VF9SQU5ET00iLAorICAgICAgICAgIE1ha2VDb25zdFNwYW4oc2Vzc2lvbi0+bWFzdGVyX2tleSwg
c2Vzc2lvbi0+bWFzdGVyX2tleV9sZW5ndGgpKSkgewogICAgIHJldHVybiAwOwogICB9CiAKQEAg
LTU0NCwxMSArNTUzLDExIEBAIGludCBzc2xfcnVuX2hhbmRzaGFrZShTU0xfSEFORFNIQUtFICpo
cywgYm9vbCAqb3V0X2Vhcmx5X3JldHVybikgewogICAgICAgY2FzZSBzc2xfaHNfcmVhZF9zZXJ2
ZXJfaGVsbG86CiAgICAgICBjYXNlIHNzbF9oc19yZWFkX21lc3NhZ2U6CiAgICAgICBjYXNlIHNz
bF9oc19yZWFkX2NoYW5nZV9jaXBoZXJfc3BlYzogewotICAgICAgICBpZiAoc3NsLT5jdHgtPnF1
aWNfbWV0aG9kKSB7CisgICAgICAgIGlmIChzc2wtPnF1aWNfbWV0aG9kKSB7CiAgICAgICAgICAg
aHMtPndhaXQgPSBzc2xfaHNfb2s7CiAgICAgICAgICAgLy8gVGhlIGNoYW5nZSBjaXBoZXIgc3Bl
YyBpcyBvbWl0dGVkIGluIFFVSUMuCiAgICAgICAgICAgaWYgKGhzLT53YWl0ICE9IHNzbF9oc19y
ZWFkX2NoYW5nZV9jaXBoZXJfc3BlYykgewotICAgICAgICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9
IFNTTF9SRUFESU5HOworICAgICAgICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9FUlJPUl9X
QU5UX1JFQUQ7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgfQogICAgICAgICAg
IGJyZWFrOwpAQCAtNjAyLDUyICs2MTEsNTMgQEAgaW50IHNzbF9ydW5faGFuZHNoYWtlKFNTTF9I
QU5EU0hBS0UgKmhzLCBib29sICpvdXRfZWFybHlfcmV0dXJuKSB7CiAgICAgICB9CiAKICAgICAg
IGNhc2Ugc3NsX2hzX2NlcnRpZmljYXRlX3NlbGVjdGlvbl9wZW5kaW5nOgotICAgICAgICBzc2wt
PnMzLT5yd3N0YXRlID0gU1NMX0NFUlRJRklDQVRFX1NFTEVDVElPTl9QRU5ESU5HOworICAgICAg
ICBzc2wtPnMzLT5yd3N0YXRlID0gU1NMX0VSUk9SX1BFTkRJTkdfQ0VSVElGSUNBVEU7CiAgICAg
ICAgIGhzLT53YWl0ID0gc3NsX2hzX29rOwogICAgICAgICByZXR1cm4gLTE7CiAKICAgICAgIGNh
c2Ugc3NsX2hzX2hhbmRvZmY6Ci0gICAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfSEFORE9G
RjsKKyAgICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9FUlJPUl9IQU5ET0ZGOwogICAgICAg
ICBocy0+d2FpdCA9IHNzbF9oc19vazsKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgICBjYXNl
IHNzbF9oc19oYW5kYmFjazoKLSAgICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9IQU5EQkFD
SzsKKyAgICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9FUlJPUl9IQU5EQkFDSzsKICAgICAg
ICAgaHMtPndhaXQgPSBzc2xfaHNfaGFuZGJhY2s7CiAgICAgICAgIHJldHVybiAtMTsKIAogICAg
ICAgY2FzZSBzc2xfaHNfeDUwOV9sb29rdXA6Ci0gICAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBT
U0xfWDUwOV9MT09LVVA7CisgICAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfRVJST1JfV0FO
VF9YNTA5X0xPT0tVUDsKICAgICAgICAgaHMtPndhaXQgPSBzc2xfaHNfb2s7CiAgICAgICAgIHJl
dHVybiAtMTsKIAogICAgICAgY2FzZSBzc2xfaHNfY2hhbm5lbF9pZF9sb29rdXA6Ci0gICAgICAg
IHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfQ0hBTk5FTF9JRF9MT09LVVA7CisgICAgICAgIHNzbC0+
czMtPnJ3c3RhdGUgPSBTU0xfRVJST1JfV0FOVF9DSEFOTkVMX0lEX0xPT0tVUDsKICAgICAgICAg
aHMtPndhaXQgPSBzc2xfaHNfb2s7CiAgICAgICAgIHJldHVybiAtMTsKIAogICAgICAgY2FzZSBz
c2xfaHNfcHJpdmF0ZV9rZXlfb3BlcmF0aW9uOgotICAgICAgICBzc2wtPnMzLT5yd3N0YXRlID0g
U1NMX1BSSVZBVEVfS0VZX09QRVJBVElPTjsKKyAgICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNT
TF9FUlJPUl9XQU5UX1BSSVZBVEVfS0VZX09QRVJBVElPTjsKICAgICAgICAgaHMtPndhaXQgPSBz
c2xfaHNfb2s7CiAgICAgICAgIHJldHVybiAtMTsKIAogICAgICAgY2FzZSBzc2xfaHNfcGVuZGlu
Z19zZXNzaW9uOgotICAgICAgICBzc2wtPnMzLT5yd3N0YXRlID0gU1NMX1BFTkRJTkdfU0VTU0lP
TjsKKyAgICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9FUlJPUl9QRU5ESU5HX1NFU1NJT047
CiAgICAgICAgIGhzLT53YWl0ID0gc3NsX2hzX29rOwogICAgICAgICByZXR1cm4gLTE7CiAKICAg
ICAgIGNhc2Ugc3NsX2hzX3BlbmRpbmdfdGlja2V0OgotICAgICAgICBzc2wtPnMzLT5yd3N0YXRl
ID0gU1NMX1BFTkRJTkdfVElDS0VUOworICAgICAgICBzc2wtPnMzLT5yd3N0YXRlID0gU1NMX0VS
Uk9SX1BFTkRJTkdfVElDS0VUOwogICAgICAgICBocy0+d2FpdCA9IHNzbF9oc19vazsKICAgICAg
ICAgcmV0dXJuIC0xOwogCiAgICAgICBjYXNlIHNzbF9oc19jZXJ0aWZpY2F0ZV92ZXJpZnk6Ci0g
ICAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfQ0VSVElGSUNBVEVfVkVSSUZZOworICAgICAg
ICBzc2wtPnMzLT5yd3N0YXRlID0gU1NMX0VSUk9SX1dBTlRfQ0VSVElGSUNBVEVfVkVSSUZZOwog
ICAgICAgICBocy0+d2FpdCA9IHNzbF9oc19vazsKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAg
ICBjYXNlIHNzbF9oc19lYXJseV9kYXRhX3JlamVjdGVkOgotICAgICAgICBzc2wtPnMzLT5yd3N0
YXRlID0gU1NMX0VBUkxZX0RBVEFfUkVKRUNURUQ7CisgICAgICAgIGFzc2VydChzc2wtPnMzLT5l
YXJseV9kYXRhX3JlYXNvbiAhPSBzc2xfZWFybHlfZGF0YV91bmtub3duKTsKKyAgICAgICAgc3Ns
LT5zMy0+cndzdGF0ZSA9IFNTTF9FUlJPUl9FQVJMWV9EQVRBX1JFSkVDVEVEOwogICAgICAgICAv
LyBDYXVzZSB8U1NMX3dyaXRlfCB0byBzdGFydCBmYWlsaW5nIGltbWVkaWF0ZWx5LgogICAgICAg
ICBocy0+Y2FuX2Vhcmx5X3dyaXRlID0gZmFsc2U7CiAgICAgICAgIHJldHVybiAtMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9zc2wvaGFuZHNoYWtlX2NsaWVudC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvaGFuZHNoYWtlX2Ns
aWVudC5jYwppbmRleCBjMWQ1NGJkOGZjY2ViZGUzMWU1ZjZlYzk2M2EzNjNmZjEzZjJjNDEzLi40
ZThjYTZhYjVhNmZmMzVjYTU3ZGRjMTEzZDc3OTk1NTY2ZGVlOWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL2hhbmRzaGFrZV9jbGllbnQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9oYW5kc2hha2VfY2xpZW50LmNj
CkBAIC0zMjYsNyArMzI2LDcgQEAgYm9vbCBzc2xfd3JpdGVfY2xpZW50X2hlbGxvKFNTTF9IQU5E
U0hBS0UgKmhzKSB7CiAgIC8vIE5vdyB0aGF0IHRoZSBsZW5ndGggcHJlZml4ZXMgaGF2ZSBiZWVu
IGNvbXB1dGVkLCBmaWxsIGluIHRoZSBwbGFjZWhvbGRlcgogICAvLyBQU0sgYmluZGVyLgogICBp
ZiAoaHMtPm5lZWRzX3Bza19iaW5kZXIgJiYKLSAgICAgICF0bHMxM193cml0ZV9wc2tfYmluZGVy
KGhzLCBtc2cuZGF0YSgpLCBtc2cuc2l6ZSgpKSkgeworICAgICAgIXRsczEzX3dyaXRlX3Bza19i
aW5kZXIoaHMsIE1ha2VTcGFuKG1zZykpKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKQEAg
LTQxNiw4ICs0MTYsNiBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3N0YXJ0X2Nvbm5l
Y3QoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICB9CiAK
LSAgLy8gSW5pdGlhbGl6ZSBhIHJhbmRvbSBzZXNzaW9uIElEIGZvciB0aGUgZXhwZXJpbWVudGFs
IFRMUyAxLjMgdmFyaWFudAotICAvLyByZXF1aXJpbmcgYSBzZXNzaW9uIGlkLgogICBpZiAoc3Ns
LT5zZXNzaW9uICE9IG51bGxwdHIgJiYKICAgICAgICFzc2wtPnMzLT5pbml0aWFsX2hhbmRzaGFr
ZV9jb21wbGV0ZSAmJgogICAgICAgc3NsLT5zZXNzaW9uLT5zZXNzaW9uX2lkX2xlbmd0aCA+IDAp
IHsKQEAgLTQyNSw2ICs0MjMsNyBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3N0YXJ0
X2Nvbm5lY3QoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICBPUEVOU1NMX21lbWNweShocy0+c2Vz
c2lvbl9pZCwgc3NsLT5zZXNzaW9uLT5zZXNzaW9uX2lkLAogICAgICAgICAgICAgICAgICAgIGhz
LT5zZXNzaW9uX2lkX2xlbik7CiAgIH0gZWxzZSBpZiAoaHMtPm1heF92ZXJzaW9uID49IFRMUzFf
M19WRVJTSU9OKSB7CisgICAgLy8gSW5pdGlhbGl6ZSBhIHJhbmRvbSBzZXNzaW9uIElELgogICAg
IGhzLT5zZXNzaW9uX2lkX2xlbiA9IHNpemVvZihocy0+c2Vzc2lvbl9pZCk7CiAgICAgaWYgKCFS
QU5EX2J5dGVzKGhzLT5zZXNzaW9uX2lkLCBocy0+c2Vzc2lvbl9pZF9sZW4pKSB7CiAgICAgICBy
ZXR1cm4gc3NsX2hzX2Vycm9yOwpAQCAtNDU3LDExICs0NTYsMTIgQEAgc3RhdGljIGVudW0gc3Ns
X2hzX3dhaXRfdCBkb19lbnRlcl9lYXJseV9kYXRhKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgICAg
cmV0dXJuIHNzbF9oc19lcnJvcjsKICAgfQogCi0gIGlmICghdGxzMTNfaW5pdF9lYXJseV9rZXlf
c2NoZWR1bGUoaHMsIHNzbC0+c2Vzc2lvbi0+bWFzdGVyX2tleSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzc2wtPnNlc3Npb24tPm1hc3Rlcl9rZXlfbGVuZ3RoKSB8fAor
ICBpZiAoIXRsczEzX2luaXRfZWFybHlfa2V5X3NjaGVkdWxlKAorICAgICAgICAgIGhzLCBNYWtl
Q29uc3RTcGFuKHNzbC0+c2Vzc2lvbi0+bWFzdGVyX2tleSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzc2wtPnNlc3Npb24tPm1hc3Rlcl9rZXlfbGVuZ3RoKSkgfHwKICAgICAgICF0bHMx
M19kZXJpdmVfZWFybHlfc2VjcmV0cyhocykgfHwKICAgICAgICF0bHMxM19zZXRfdHJhZmZpY19r
ZXkoc3NsLCBzc2xfZW5jcnlwdGlvbl9lYXJseV9kYXRhLCBldnBfYWVhZF9zZWFsLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBocy0+ZWFybHlfdHJhZmZpY19zZWNyZXQsIGhzLT5oYXNo
X2xlbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHMtPmVhcmx5X3RyYWZmaWNf
c2VjcmV0KCkpKSB7CiAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgfQogCkBAIC01OTAsNyAr
NTkwLDggQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19yZWFkX3NlcnZlcl9oZWxsbyhT
U0xfSEFORFNIQUtFICpocykgewogICB9CiAKICAgLy8gQ2xlYXIgc29tZSBUTFMgMS4zIHN0YXRl
IHRoYXQgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIHJldGFpbmVkLgotICBocy0+a2V5X3NoYXJlLnJl
c2V0KCk7CisgIGhzLT5rZXlfc2hhcmVzWzBdLnJlc2V0KCk7CisgIGhzLT5rZXlfc2hhcmVzWzFd
LnJlc2V0KCk7CiAgIGhzLT5rZXlfc2hhcmVfYnl0ZXMuUmVzZXQoKTsKIAogICAvLyBBIFRMUyAx
LjIgc2VydmVyIHdvdWxkIG5vdCBrbm93IHRvIHNraXAgdGhlIGVhcmx5IGRhdGEgd2Ugb2ZmZXJl
ZC4gUmVwb3J0CkBAIC0xMDA2LDggKzEwMDcsOCBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90
IGRvX3JlYWRfc2VydmVyX2tleV9leGNoYW5nZShTU0xfSEFORFNIQUtFICpocykgewogICAgIH0K
IAogICAgIC8vIEluaXRpYWxpemUgRUNESCBhbmQgc2F2ZSB0aGUgcGVlciBwdWJsaWMga2V5IGZv
ciBsYXRlci4KLSAgICBocy0+a2V5X3NoYXJlID0gU1NMS2V5U2hhcmU6OkNyZWF0ZShncm91cF9p
ZCk7Ci0gICAgaWYgKCFocy0+a2V5X3NoYXJlIHx8CisgICAgaHMtPmtleV9zaGFyZXNbMF0gPSBT
U0xLZXlTaGFyZTo6Q3JlYXRlKGdyb3VwX2lkKTsKKyAgICBpZiAoIWhzLT5rZXlfc2hhcmVzWzBd
IHx8CiAgICAgICAgICFocy0+cGVlcl9rZXkuQ29weUZyb20ocG9pbnQpKSB7CiAgICAgICByZXR1
cm4gc3NsX2hzX2Vycm9yOwogICAgIH0KQEAgLTEwNzEsMTMgKzEwNzIsOCBAQCBzdGF0aWMgZW51
bSBzc2xfaHNfd2FpdF90IGRvX3JlYWRfc2VydmVyX2tleV9leGNoYW5nZShTU0xfSEFORFNIQUtF
ICpocykgewogICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICB9CiAKLSAgICBib29sIHNp
Z19vayA9IHNzbF9wdWJsaWNfa2V5X3ZlcmlmeShzc2wsIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2Fs
Z29yaXRobSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+cGVl
cl9wdWJrZXkuZ2V0KCksIHRyYW5zY3JpcHRfZGF0YSk7Ci0jaWYgZGVmaW5lZChCT1JJTkdTU0xf
VU5TQUZFX0ZVWlpFUl9NT0RFKQotICAgIHNpZ19vayA9IHRydWU7Ci0gICAgRVJSX2NsZWFyX2Vy
cm9yKCk7Ci0jZW5kaWYKLSAgICBpZiAoIXNpZ19vaykgeworICAgIGlmICghc3NsX3B1YmxpY19r
ZXlfdmVyaWZ5KHNzbCwgc2lnbmF0dXJlLCBzaWduYXR1cmVfYWxnb3JpdGhtLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhzLT5wZWVyX3B1YmtleS5nZXQoKSwgdHJhbnNjcmlwdF9k
YXRhKSkgewogICAgICAgLy8gYmFkIHNpZ25hdHVyZQogICAgICAgT1BFTlNTTF9QVVRfRVJST1Io
U1NMLCBTU0xfUl9CQURfU0lHTkFUVVJFKTsKICAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NM
M19BTF9GQVRBTCwgU1NMX0FEX0RFQ1JZUFRfRVJST1IpOwpAQCAtMTIxOCw3ICsxMjE0LDcgQEAg
c3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19zZW5kX2NsaWVudF9jZXJ0aWZpY2F0ZShTU0xf
SEFORFNIQUtFICpocykgewogICAgIH0KICAgfQogCi0gIGlmICghc3NsX2hhc19jZXJ0aWZpY2F0
ZShocy0+Y29uZmlnKSkgeworICBpZiAoIXNzbF9oYXNfY2VydGlmaWNhdGUoaHMpKSB7CiAgICAg
Ly8gV2l0aG91dCBhIGNsaWVudCBjZXJ0aWZpY2F0ZSwgdGhlIGhhbmRzaGFrZSBidWZmZXIgbWF5
IGJlIHJlbGVhc2VkLgogICAgIGhzLT50cmFuc2NyaXB0LkZyZWVCdWZmZXIoKTsKICAgfQpAQCAt
MTI0OCw2ICsxMjQ0LDI3IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9jbGll
bnRfa2V5X2V4Y2hhbmdlKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgIEFycmF5PHVpbnQ4X3Q+IHBt
czsKICAgdWludDMyX3QgYWxnX2sgPSBocy0+bmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXk7CiAg
IHVpbnQzMl90IGFsZ19hID0gaHMtPm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoOworICBpZiAo
c3NsX2NpcGhlcl91c2VzX2NlcnRpZmljYXRlX2F1dGgoaHMtPm5ld19jaXBoZXIpKSB7CisgICAg
Q1JZUFRPX0JVRkZFUiAqbGVhZiA9CisgICAgICAgIHNrX0NSWVBUT19CVUZGRVJfdmFsdWUoaHMt
Pm5ld19zZXNzaW9uLT5jZXJ0cy5nZXQoKSwgMCk7CisgICAgQ0JTIGxlYWZfY2JzOworICAgIENC
U19pbml0KCZsZWFmX2NicywgQ1JZUFRPX0JVRkZFUl9kYXRhKGxlYWYpLCBDUllQVE9fQlVGRkVS
X2xlbihsZWFmKSk7CisKKyAgICAvLyBDaGVjayB0aGUga2V5IHVzYWdlIG1hdGNoZXMgdGhlIGNp
cGhlciBzdWl0ZS4gV2UgZG8gdGhpcyB1bmNvbmRpdGlvbmFsbHkKKyAgICAvLyBmb3Igbm9uLVJT
QSBjZXJ0aWZpY2F0ZXMuIEluIHBhcnRpY3VsYXIsIGl0J3MgbmVlZGVkIHRvIGRpc3Rpbmd1aXNo
IEVDREgKKyAgICAvLyBjZXJ0aWZpY2F0ZXMsIHdoaWNoIHdlIGRvIG5vdCBzdXBwb3J0LCBmcm9t
IEVDRFNBIGNlcnRpZmljYXRlcy4KKyAgICAvLyBIaXN0b3JpY2FsbHksIHdlIGhhdmUgbm90IGNo
ZWNrZWQgUlNBIGtleSB1c2FnZXMsIHNvIGl0IGlzIGNvbnRyb2xsZWQgYnkKKyAgICAvLyBhIGZs
YWcgZm9yIG5vdy4gU2VlIGh0dHBzOi8vY3JidWcuY29tLzc5NTA4OS4KKyAgICBzc2xfa2V5X3Vz
YWdlX3QgaW50ZW5kZWRfdXNlID0gKGFsZ19rICYgU1NMX2tSU0EpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA/IGtleV91c2FnZV9lbmNpcGhlcm1lbnQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoga2V5X3VzYWdlX2RpZ2l0YWxfc2lnbmF0
dXJlOworICAgIGlmIChzc2wtPmNvbmZpZy0+ZW5mb3JjZV9yc2Ffa2V5X3VzYWdlIHx8CisgICAg
ICAgIEVWUF9QS0VZX2lkKGhzLT5wZWVyX3B1YmtleS5nZXQoKSkgIT0gRVZQX1BLRVlfUlNBKSB7
CisgICAgICBpZiAoIXNzbF9jZXJ0X2NoZWNrX2tleV91c2FnZSgmbGVhZl9jYnMsIGludGVuZGVk
X3VzZSkpIHsKKyAgICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKKyAgICAgIH0KKyAgICB9Cisg
IH0KIAogICAvLyBJZiB1c2luZyBhIFBTSyBrZXkgZXhjaGFuZ2UsIHByZXBhcmUgdGhlIHByZS1z
aGFyZWQga2V5LgogICB1bnNpZ25lZCBwc2tfbGVuID0gMDsKQEAgLTEzMjQsNyArMTM0MSw3IEBA
IHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNT
TF9IQU5EU0hBS0UgKmhzKSB7CiAKICAgICAvLyBDb21wdXRlIHRoZSBwcmVtYXN0ZXIuCiAgICAg
dWludDhfdCBhbGVydCA9IFNTTF9BRF9ERUNPREVfRVJST1I7Ci0gICAgaWYgKCFocy0+a2V5X3No
YXJlLT5BY2NlcHQoJmNoaWxkLCAmcG1zLCAmYWxlcnQsIGhzLT5wZWVyX2tleSkpIHsKKyAgICBp
ZiAoIWhzLT5rZXlfc2hhcmVzWzBdLT5BY2NlcHQoJmNoaWxkLCAmcG1zLCAmYWxlcnQsIGhzLT5w
ZWVyX2tleSkpIHsKICAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgYWxl
cnQpOwogICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICB9CkBAIC0xMzMzLDcgKzEzNTAs
OCBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3NlbmRfY2xpZW50X2tleV9leGNoYW5n
ZShTU0xfSEFORFNIQUtFICpocykgewogICAgIH0KIAogICAgIC8vIFRoZSBrZXkgZXhjaGFuZ2Ug
c3RhdGUgbWF5IG5vdyBiZSBkaXNjYXJkZWQuCi0gICAgaHMtPmtleV9zaGFyZS5yZXNldCgpOwor
ICAgIGhzLT5rZXlfc2hhcmVzWzBdLnJlc2V0KCk7CisgICAgaHMtPmtleV9zaGFyZXNbMV0ucmVz
ZXQoKTsKICAgICBocy0+cGVlcl9rZXkuUmVzZXQoKTsKICAgfSBlbHNlIGlmIChhbGdfayAmIFNT
TF9rUFNLKSB7CiAgICAgLy8gRm9yIHBsYWluIFBTSywgb3RoZXJfc2VjcmV0IGlzIGEgYmxvY2sg
b2YgMHMgd2l0aCB0aGUgc2FtZSBsZW5ndGggYXMKQEAgLTEzODQsMTIgKzE0MDIsMTIgQEAgc3Rh
dGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMX0hB
TkRTSEFLRSAqaHMpIHsKIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9jbGllbnRf
Y2VydGlmaWNhdGVfdmVyaWZ5KFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgIFNTTCAqY29uc3Qgc3Ns
ID0gaHMtPnNzbDsKIAotICBpZiAoIWhzLT5jZXJ0X3JlcXVlc3QgfHwgIXNzbF9oYXNfY2VydGlm
aWNhdGUoaHMtPmNvbmZpZykpIHsKKyAgaWYgKCFocy0+Y2VydF9yZXF1ZXN0IHx8ICFzc2xfaGFz
X2NlcnRpZmljYXRlKGhzKSkgewogICAgIGhzLT5zdGF0ZSA9IHN0YXRlX3NlbmRfY2xpZW50X2Zp
bmlzaGVkOwogICAgIHJldHVybiBzc2xfaHNfb2s7CiAgIH0KIAotICBhc3NlcnQoc3NsX2hhc19w
cml2YXRlX2tleShocy0+Y29uZmlnKSk7CisgIGFzc2VydChzc2xfaGFzX3ByaXZhdGVfa2V5KGhz
KSk7CiAgIFNjb3BlZENCQiBjYmI7CiAgIENCQiBib2R5LCBjaGlsZDsKICAgaWYgKCFzc2wtPm1l
dGhvZC0+aW5pdF9tZXNzYWdlKHNzbCwgY2JiLmdldCgpLCAmYm9keSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9zc2wvaGFuZHNoYWtlX3NlcnZlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvaGFuZHNoYWtlX3NlcnZlci5jYwpp
bmRleCBjNGYzYjc1ZTViZGZmZjUzYmY0YzE3NzJlYmNlNDc0MTI0NjQ2MjMxLi4zNmFhNTYwNjYx
NGNhNGE2YjU2MDQyOWVkMDMyNDgxNDM1ZDdlZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL2hhbmRz
aGFrZV9zZXJ2ZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9oYW5kc2hha2Vfc2VydmVyLmNjCkBAIC0zMDMs
NyArMzAzLDcgQEAgc3RhdGljIHZvaWQgc3NsX2dldF9jb21wYXRpYmxlX3NlcnZlcl9jaXBoZXJz
KFNTTF9IQU5EU0hBS0UgKmhzLAogICB1aW50MzJfdCBtYXNrX2sgPSAwOwogICB1aW50MzJfdCBt
YXNrX2EgPSAwOwogCi0gIGlmIChzc2xfaGFzX2NlcnRpZmljYXRlKGhzLT5jb25maWcpKSB7Cisg
IGlmIChzc2xfaGFzX2NlcnRpZmljYXRlKGhzKSkgewogICAgIG1hc2tfYSB8PSBzc2xfY2lwaGVy
X2F1dGhfbWFza19mb3Jfa2V5KGhzLT5sb2NhbF9wdWJrZXkuZ2V0KCkpOwogICAgIGlmIChFVlBf
UEtFWV9pZChocy0+bG9jYWxfcHVia2V5LmdldCgpKSA9PSBFVlBfUEtFWV9SU0EpIHsKICAgICAg
IG1hc2tfayB8PSBTU0xfa1JTQTsKQEAgLTQwMiw4ICs0MDIsNyBAQCBzdGF0aWMgZW51bSBzc2xf
aHNfd2FpdF90IGRvX3N0YXJ0X2FjY2VwdChTU0xfSEFORFNIQUtFICpocykgewogfQogCiAvLyBp
c19wcm9iYWJseV9qZGsxMV93aXRoX3RsczEzIHJldHVybnMgd2hldGhlciB8Y2xpZW50X2hlbGxv
fCB3YXMgcHJvYmFibHkgc2VudAotLy8gZnJvbSBhIEpESyAxMSBjbGllbnQgKDExLjAuMSBvciBl
YXJsaWVyKSB3aXRoIGJvdGggVExTIDEuMyBhbmQgYSBwcmlvcgotLy8gdmVyc2lvbiBlbmFibGVk
LgorLy8gZnJvbSBhIEpESyAxMSBjbGllbnQgd2l0aCBib3RoIFRMUyAxLjMgYW5kIGEgcHJpb3Ig
dmVyc2lvbiBlbmFibGVkLgogc3RhdGljIGJvb2wgaXNfcHJvYmFibHlfamRrMTFfd2l0aF90bHMx
Myhjb25zdCBTU0xfQ0xJRU5UX0hFTExPICpjbGllbnRfaGVsbG8pIHsKICAgLy8gSkRLIDExIENs
aWVudEhlbGxvcyBjb250YWluIGEgbnVtYmVyIG9mIHVudXN1YWwgcHJvcGVydGllcyB3aGljaCBz
aG91bGQKICAgLy8gbGltaXQgZmFsc2UgcG9zaXRpdmVzLgpAQCAtNTA0LDYgKzUwMyw1NCBAQCBz
dGF0aWMgYm9vbCBpc19wcm9iYWJseV9qZGsxMV93aXRoX3RsczEzKGNvbnN0IFNTTF9DTElFTlRf
SEVMTE8gKmNsaWVudF9oZWxsbykgewogICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wg
ZXh0cmFjdF9zbmkoU1NMX0hBTkRTSEFLRSAqaHMsIHVpbnQ4X3QgKm91dF9hbGVydCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFNTTF9DTElFTlRfSEVMTE8gKmNsaWVudF9oZWxsbykg
eworICBTU0wgKmNvbnN0IHNzbCA9IGhzLT5zc2w7CisgIENCUyBzbmk7CisgIGlmICghc3NsX2Ns
aWVudF9oZWxsb19nZXRfZXh0ZW5zaW9uKGNsaWVudF9oZWxsbywgJnNuaSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVExTRVhUX1RZUEVfc2VydmVyX25hbWUpKSB7Cisg
ICAgLy8gTm8gU05JIGV4dGVuc2lvbiB0byBwYXJzZS4KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQor
CisgIENCUyBzZXJ2ZXJfbmFtZV9saXN0LCBob3N0X25hbWU7CisgIHVpbnQ4X3QgbmFtZV90eXBl
OworICBpZiAoIUNCU19nZXRfdTE2X2xlbmd0aF9wcmVmaXhlZCgmc25pLCAmc2VydmVyX25hbWVf
bGlzdCkgfHwKKyAgICAgICFDQlNfZ2V0X3U4KCZzZXJ2ZXJfbmFtZV9saXN0LCAmbmFtZV90eXBl
KSB8fAorICAgICAgLy8gQWx0aG91Z2ggdGhlIHNlcnZlcl9uYW1lIGV4dGVuc2lvbiB3YXMgaW50
ZW5kZWQgdG8gYmUgZXh0ZW5zaWJsZSB0bworICAgICAgLy8gbmV3IG5hbWUgdHlwZXMgYW5kIG11
bHRpcGxlIG5hbWVzLCBPcGVuU1NMIDEuMC54IGhhZCBhIGJ1ZyB3aGljaCBtZWFudAorICAgICAg
Ly8gZGlmZmVyZW50IG5hbWUgdHlwZXMgd2lsbCBjYXVzZSBhbiBlcnJvci4gRnVydGhlciwgUkZD
IDQzNjYgb3JpZ2luYWxseQorICAgICAgLy8gZGVmaW5lZCBzeW50YXggaW5leHRlbnNpYmx5LiBS
RkMgNjA2NiBjb3JyZWN0ZWQgdGhpcyBtaXN0YWtlLCBidXQKKyAgICAgIC8vIGFkZGluZyBuZXcg
bmFtZSB0eXBlcyBpcyBubyBsb25nZXIgZmVhc2libGUuCisgICAgICAvLworICAgICAgLy8gQWN0
IGFzIGlmIHRoZSBleHRlbnNpYmlsaXR5IGRvZXMgbm90IGV4aXN0IHRvIHNpbXBsaWZ5IHBhcnNp
bmcuCisgICAgICAhQ0JTX2dldF91MTZfbGVuZ3RoX3ByZWZpeGVkKCZzZXJ2ZXJfbmFtZV9saXN0
LCAmaG9zdF9uYW1lKSB8fAorICAgICAgQ0JTX2xlbigmc2VydmVyX25hbWVfbGlzdCkgIT0gMCB8
fAorICAgICAgQ0JTX2xlbigmc25pKSAhPSAwKSB7CisgICAgKm91dF9hbGVydCA9IFNTTF9BRF9E
RUNPREVfRVJST1I7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgaWYgKG5hbWVfdHlwZSAh
PSBUTFNFWFRfTkFNRVRZUEVfaG9zdF9uYW1lIHx8CisgICAgICBDQlNfbGVuKCZob3N0X25hbWUp
ID09IDAgfHwKKyAgICAgIENCU19sZW4oJmhvc3RfbmFtZSkgPiBUTFNFWFRfTUFYTEVOX2hvc3Rf
bmFtZSB8fAorICAgICAgQ0JTX2NvbnRhaW5zX3plcm9fYnl0ZSgmaG9zdF9uYW1lKSkgeworICAg
ICpvdXRfYWxlcnQgPSBTU0xfQURfVU5SRUNPR05JWkVEX05BTUU7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisKKyAgLy8gQ29weSB0aGUgaG9zdG5hbWUgYXMgYSBzdHJpbmcuCisgIGNoYXIgKnJh
dyA9IG51bGxwdHI7CisgIGlmICghQ0JTX3N0cmR1cCgmaG9zdF9uYW1lLCAmcmF3KSkgeworICAg
ICpvdXRfYWxlcnQgPSBTU0xfQURfSU5URVJOQUxfRVJST1I7CisgICAgcmV0dXJuIGZhbHNlOwor
ICB9CisgIHNzbC0+czMtPmhvc3RuYW1lLnJlc2V0KHJhdyk7CisKKyAgaHMtPnNob3VsZF9hY2tf
c25pID0gdHJ1ZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0
X3QgZG9fcmVhZF9jbGllbnRfaGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgU1NMICpjb25z
dCBzc2wgPSBocy0+c3NsOwogCkBAIC01MTYsMTAgKzU2Myw2IEBAIHN0YXRpYyBlbnVtIHNzbF9o
c193YWl0X3QgZG9fcmVhZF9jbGllbnRfaGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICBy
ZXR1cm4gc3NsX2hzX2Vycm9yOwogICB9CiAKLSAgaWYgKGhzLT5jb25maWctPmhhbmRvZmYpIHsK
LSAgICByZXR1cm4gc3NsX2hzX2hhbmRvZmY7Ci0gIH0KLQogICBTU0xfQ0xJRU5UX0hFTExPIGNs
aWVudF9oZWxsbzsKICAgaWYgKCFzc2xfY2xpZW50X2hlbGxvX2luaXQoc3NsLCAmY2xpZW50X2hl
bGxvLCBtc2cpKSB7CiAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9ERUNPREVfRVJS
T1IpOwpAQCAtNTI3LDYgKzU3MCwxNiBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3Jl
YWRfY2xpZW50X2hlbGxvKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgICAgcmV0dXJuIHNzbF9oc19l
cnJvcjsKICAgfQogCisgIGlmIChocy0+Y29uZmlnLT5oYW5kb2ZmKSB7CisgICAgcmV0dXJuIHNz
bF9oc19oYW5kb2ZmOworICB9CisKKyAgdWludDhfdCBhbGVydCA9IFNTTF9BRF9ERUNPREVfRVJS
T1I7CisgIGlmICghZXh0cmFjdF9zbmkoaHMsICZhbGVydCwgJmNsaWVudF9oZWxsbykpIHsKKyAg
ICBzc2xfc2VuZF9hbGVydChzc2wsIFNTTDNfQUxfRkFUQUwsIGFsZXJ0KTsKKyAgICByZXR1cm4g
c3NsX2hzX2Vycm9yOworICB9CisKICAgLy8gUnVuIHRoZSBlYXJseSBjYWxsYmFjay4KICAgaWYg
KHNzbC0+Y3R4LT5zZWxlY3RfY2VydGlmaWNhdGVfY2IgIT0gTlVMTCkgewogICAgIHN3aXRjaCAo
c3NsLT5jdHgtPnNlbGVjdF9jZXJ0aWZpY2F0ZV9jYigmY2xpZW50X2hlbGxvKSkgewpAQCAtNTU0
LDcgKzYwNyw2IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fcmVhZF9jbGllbnRfaGVs
bG8oU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICBocy0+YXBwbHlfamRrMTFfd29ya2Fyb3VuZCA9
IHRydWU7CiAgIH0KIAotICB1aW50OF90IGFsZXJ0ID0gU1NMX0FEX0RFQ09ERV9FUlJPUjsKICAg
aWYgKCFuZWdvdGlhdGVfdmVyc2lvbihocywgJmFsZXJ0LCAmY2xpZW50X2hlbGxvKSkgewogICAg
IHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgYWxlcnQpOwogICAgIHJldHVybiBz
c2xfaHNfZXJyb3I7CkBAIC02MzYsNiArNjg4LDggQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRf
dCBkb19zZWxlY3RfY2VydGlmaWNhdGUoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICByZXR1cm4g
c3NsX2hzX29rOwogICB9CiAKKyAgc3NsLT5zMy0+ZWFybHlfZGF0YV9yZWFzb24gPSBzc2xfZWFy
bHlfZGF0YV9wcm90b2NvbF92ZXJzaW9uOworCiAgIFNTTF9DTElFTlRfSEVMTE8gY2xpZW50X2hl
bGxvOwogICBpZiAoIXNzbF9jbGllbnRfaGVsbG9faW5pdChzc2wsICZjbGllbnRfaGVsbG8sIG1z
ZykpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwpAQCAtODY4LDcgKzkyMiw3IEBAIHN0YXRp
YyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9zZXJ2ZXJfY2VydGlmaWNhdGUoU1NMX0hBTkRT
SEFLRSAqaHMpIHsKICAgU2NvcGVkQ0JCIGNiYjsKIAogICBpZiAoc3NsX2NpcGhlcl91c2VzX2Nl
cnRpZmljYXRlX2F1dGgoaHMtPm5ld19jaXBoZXIpKSB7Ci0gICAgaWYgKCFzc2xfaGFzX2NlcnRp
ZmljYXRlKGhzLT5jb25maWcpKSB7CisgICAgaWYgKCFzc2xfaGFzX2NlcnRpZmljYXRlKGhzKSkg
ewogICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9OT19DRVJUSUZJQ0FURV9TRVQp
OwogICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICB9CkBAIC05MzIsMTIgKzk4NiwxMiBA
QCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3NlbmRfc2VydmVyX2NlcnRpZmljYXRlKFNT
TF9IQU5EU0hBS0UgKmhzKSB7CiAgICAgICBocy0+bmV3X3Nlc3Npb24tPmdyb3VwX2lkID0gZ3Jv
dXBfaWQ7CiAKICAgICAgIC8vIFNldCB1cCBFQ0RILCBnZW5lcmF0ZSBhIGtleSwgYW5kIGVtaXQg
dGhlIHB1YmxpYyBoYWxmLgotICAgICAgaHMtPmtleV9zaGFyZSA9IFNTTEtleVNoYXJlOjpDcmVh
dGUoZ3JvdXBfaWQpOwotICAgICAgaWYgKCFocy0+a2V5X3NoYXJlIHx8CisgICAgICBocy0+a2V5
X3NoYXJlc1swXSA9IFNTTEtleVNoYXJlOjpDcmVhdGUoZ3JvdXBfaWQpOworICAgICAgaWYgKCFo
cy0+a2V5X3NoYXJlc1swXSB8fAogICAgICAgICAgICFDQkJfYWRkX3U4KGNiYi5nZXQoKSwgTkFN
RURfQ1VSVkVfVFlQRSkgfHwKICAgICAgICAgICAhQ0JCX2FkZF91MTYoY2JiLmdldCgpLCBncm91
cF9pZCkgfHwKICAgICAgICAgICAhQ0JCX2FkZF91OF9sZW5ndGhfcHJlZml4ZWQoY2JiLmdldCgp
LCAmY2hpbGQpIHx8Ci0gICAgICAgICAgIWhzLT5rZXlfc2hhcmUtPk9mZmVyKCZjaGlsZCkpIHsK
KyAgICAgICAgICAhaHMtPmtleV9zaGFyZXNbMF0tPk9mZmVyKCZjaGlsZCkpIHsKICAgICAgICAg
cmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICAgIH0KICAgICB9IGVsc2UgewpAQCAtOTc0LDcgKzEw
MjgsNyBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3NlbmRfc2VydmVyX2tleV9leGNo
YW5nZShTU0xfSEFORFNIQUtFICpocykgewogCiAgIC8vIEFkZCBhIHNpZ25hdHVyZS4KICAgaWYg
KHNzbF9jaXBoZXJfdXNlc19jZXJ0aWZpY2F0ZV9hdXRoKGhzLT5uZXdfY2lwaGVyKSkgewotICAg
IGlmICghc3NsX2hhc19wcml2YXRlX2tleShocy0+Y29uZmlnKSkgeworICAgIGlmICghc3NsX2hh
c19wcml2YXRlX2tleShocykpIHsKICAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9G
QVRBTCwgU1NMX0FEX0lOVEVSTkFMX0VSUk9SKTsKICAgICAgIHJldHVybiBzc2xfaHNfZXJyb3I7
CiAgICAgfQpAQCAtMTIyNiw2ICsxMjgwLDggQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBk
b19yZWFkX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICAgIHJl
dHVybiBzc2xfaHNfZXJyb3I7CiAgICAgfQogCisgICAgQ09OU1RUSU1FX1NFQ1JFVChkZWNyeXB0
X2J1Zi5kYXRhKCksIGRlY3J5cHRfbGVuKTsKKwogICAgIC8vIFByZXBhcmUgYSByYW5kb20gcHJl
bWFzdGVyLCB0byBiZSB1c2VkIG9uIGludmFsaWQgcGFkZGluZy4gU2VlIFJGQyA1MjQ2LAogICAg
IC8vIHNlY3Rpb24gNy40LjcuMS4KICAgICBpZiAoIXByZW1hc3Rlcl9zZWNyZXQuSW5pdChTU0xf
TUFYX01BU1RFUl9LRVlfTEVOR1RIKSB8fApAQCAtMTI3NSwxMyArMTMzMSwxNCBAQCBzdGF0aWMg
ZW51bSBzc2xfaHNfd2FpdF90IGRvX3JlYWRfY2xpZW50X2tleV9leGNoYW5nZShTU0xfSEFORFNI
QUtFICpocykgewogCiAgICAgLy8gQ29tcHV0ZSB0aGUgcHJlbWFzdGVyLgogICAgIHVpbnQ4X3Qg
YWxlcnQgPSBTU0xfQURfREVDT0RFX0VSUk9SOwotICAgIGlmICghaHMtPmtleV9zaGFyZS0+Rmlu
aXNoKCZwcmVtYXN0ZXJfc2VjcmV0LCAmYWxlcnQsIHBlZXJfa2V5KSkgeworICAgIGlmICghaHMt
PmtleV9zaGFyZXNbMF0tPkZpbmlzaCgmcHJlbWFzdGVyX3NlY3JldCwgJmFsZXJ0LCBwZWVyX2tl
eSkpIHsKICAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgYWxlcnQpOwog
ICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICB9CiAKICAgICAvLyBUaGUga2V5IGV4Y2hh
bmdlIHN0YXRlIG1heSBub3cgYmUgZGlzY2FyZGVkLgotICAgIGhzLT5rZXlfc2hhcmUucmVzZXQo
KTsKKyAgICBocy0+a2V5X3NoYXJlc1swXS5yZXNldCgpOworICAgIGhzLT5rZXlfc2hhcmVzWzFd
LnJlc2V0KCk7CiAgIH0gZWxzZSBpZiAoIShhbGdfayAmIFNTTF9rUFNLKSkgewogICAgIE9QRU5T
U0xfUFVUX0VSUk9SKFNTTCwgRVJSX1JfSU5URVJOQUxfRVJST1IpOwogICAgIHNzbF9zZW5kX2Fs
ZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgU1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFKTsKQEAgLTEz
NDcsNiArMTQwNCw4IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fcmVhZF9jbGllbnRf
a2V5X2V4Y2hhbmdlKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgICAgcmV0dXJuIHNzbF9oc19lcnJv
cjsKICAgfQogICBocy0+bmV3X3Nlc3Npb24tPmV4dGVuZGVkX21hc3Rlcl9zZWNyZXQgPSBocy0+
ZXh0ZW5kZWRfbWFzdGVyX3NlY3JldDsKKyAgQ09OU1RUSU1FX0RFQ0xBU1NJRlkoaHMtPm5ld19z
ZXNzaW9uLT5tYXN0ZXJfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICBocy0+bmV3X3Nlc3Np
b24tPm1hc3Rlcl9rZXlfbGVuZ3RoKTsKIAogICBzc2wtPm1ldGhvZC0+bmV4dF9tZXNzYWdlKHNz
bCk7CiAgIGhzLT5zdGF0ZSA9IHN0YXRlMTJfcmVhZF9jbGllbnRfY2VydGlmaWNhdGVfdmVyaWZ5
OwpAQCAtMTQwNCwxNCArMTQ2Myw4IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fcmVh
ZF9jbGllbnRfY2VydGlmaWNhdGVfdmVyaWZ5KFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgICAgcmV0
dXJuIHNzbF9oc19lcnJvcjsKICAgfQogCi0gIGJvb2wgc2lnX29rID0KLSAgICAgIHNzbF9wdWJs
aWNfa2V5X3ZlcmlmeShzc2wsIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2FsZ29yaXRobSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBocy0+cGVlcl9wdWJrZXkuZ2V0KCksIGhzLT50cmFuc2Ny
aXB0LmJ1ZmZlcigpKTsKLSNpZiBkZWZpbmVkKEJPUklOR1NTTF9VTlNBRkVfRlVaWkVSX01PREUp
Ci0gIHNpZ19vayA9IHRydWU7Ci0gIEVSUl9jbGVhcl9lcnJvcigpOwotI2VuZGlmCi0gIGlmICgh
c2lnX29rKSB7CisgIGlmICghc3NsX3B1YmxpY19rZXlfdmVyaWZ5KHNzbCwgc2lnbmF0dXJlLCBz
aWduYXR1cmVfYWxnb3JpdGhtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+cGVl
cl9wdWJrZXkuZ2V0KCksIGhzLT50cmFuc2NyaXB0LmJ1ZmZlcigpKSkgewogICAgIE9QRU5TU0xf
UFVUX0VSUk9SKFNTTCwgU1NMX1JfQkFEX1NJR05BVFVSRSk7CiAgICAgc3NsX3NlbmRfYWxlcnQo
c3NsLCBTU0wzX0FMX0ZBVEFMLCBTU0xfQURfREVDUllQVF9FUlJPUik7CiAgICAgcmV0dXJuIHNz
bF9oc19lcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvaW50
ZXJuYWwuaAppbmRleCBmOGEyZWE3MGE4YTUzZjRmNTg1ZWQ1YWM2YjQyM2IxMjA4NWNhYWMzLi5m
NTVlMDQ3MGEzYzA5OTIzYmE5YjJjYzIwNzE1NTVjNzc0MjI2NWJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL2ludGVybmFsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9pbnRlcm5hbC5oCkBAIC0zNTksOCArMzU5LDcg
QEAgT1BFTlNTTF9FWFBPUlQgYm9vbCBDQkJGaW5pc2hBcnJheShDQkIgKmNiYiwgQXJyYXk8dWlu
dDhfdD4gKm91dCk7CiAKIC8vIFByb3RvY29sIHZlcnNpb25zLgogLy8KLS8vIER1ZSB0byBEVExT
J3MgaGlzdG9yaWNhbCB3aXJlIHZlcnNpb24gZGlmZmVyZW5jZXMgYW5kIHRvIHN1cHBvcnQgbXVs
dGlwbGUKLS8vIHZhcmlhbnRzIG9mIHRoZSBzYW1lIHByb3RvY29sIGR1cmluZyBkZXZlbG9wbWVu
dCwgd2UgbWFpbnRhaW4gdHdvIG5vdGlvbnMgb2YKKy8vIER1ZSB0byBEVExTJ3MgaGlzdG9yaWNh
bCB3aXJlIHZlcnNpb24gZGlmZmVyZW5jZXMsIHdlIG1haW50YWluIHR3byBub3Rpb25zIG9mCiAv
LyB2ZXJzaW9uLgogLy8KIC8vIFRoZSAidmVyc2lvbiIgb3IgIndpcmUgdmVyc2lvbiIgaXMgdGhl
IGFjdHVhbCAxNi1iaXQgdmFsdWUgdGhhdCBhcHBlYXJzIG9uCkBAIC0zNjksOSArMzY4LDggQEAg
T1BFTlNTTF9FWFBPUlQgYm9vbCBDQkJGaW5pc2hBcnJheShDQkIgKmNiYiwgQXJyYXk8dWludDhf
dD4gKm91dCk7CiAvLyB2ZXJzaW9ucyBhcmUgb3BhcXVlIHZhbHVlcyBhbmQgbWF5IG5vdCBiZSBj
b21wYXJlZCBudW1lcmljYWxseS4KIC8vCiAvLyBUaGUgInByb3RvY29sIHZlcnNpb24iIGlkZW50
aWZpZXMgdGhlIGhpZ2gtbGV2ZWwgaGFuZHNoYWtlIHZhcmlhbnQgYmVpbmcKLS8vIHVzZWQuIERU
TFMgdmVyc2lvbnMgbWFwIHRvIHRoZSBjb3JyZXNwb25kaW5nIFRMUyB2ZXJzaW9ucy4gRHJhZnQg
VExTIDEuMwotLy8gdmFyaWFudHMgYWxsIG1hcCB0byBUTFMgMS4zLiBQcm90b2NvbCB2ZXJzaW9u
cyBhcmUgc2VxdWVudGlhbCBhbmQgbWF5IGJlCi0vLyBjb21wYXJlZCBudW1lcmljYWxseS4KKy8v
IHVzZWQuIERUTFMgdmVyc2lvbnMgbWFwIHRvIHRoZSBjb3JyZXNwb25kaW5nIFRMUyB2ZXJzaW9u
cy4gUHJvdG9jb2wgdmVyc2lvbnMKKy8vIGFyZSBzZXF1ZW50aWFsIGFuZCBtYXkgYmUgY29tcGFy
ZWQgbnVtZXJpY2FsbHkuCiAKIC8vIHNzbF9wcm90b2NvbF92ZXJzaW9uX2Zyb21fd2lyZSBzZXRz
IHwqb3V0fCB0byB0aGUgcHJvdG9jb2wgdmVyc2lvbgogLy8gY29ycmVzcG9uZGluZyB0byB3aXJl
IHZlcnNpb24gfHZlcnNpb258IGFuZCByZXR1cm5zIHRydWUuIElmIHx2ZXJzaW9ufCBpcyBub3QK
QEAgLTQwOCwxMCArNDA2LDYgQEAgYm9vbCBzc2xfbmVnb3RpYXRlX3ZlcnNpb24oU1NMX0hBTkRT
SEFLRSAqaHMsIHVpbnQ4X3QgKm91dF9hbGVydCwKIC8vIGNhbGwgdGhpcyBmdW5jdGlvbiBiZWZv
cmUgdGhlIHZlcnNpb24gaXMgZGV0ZXJtaW5lZC4KIHVpbnQxNl90IHNzbF9wcm90b2NvbF92ZXJz
aW9uKGNvbnN0IFNTTCAqc3NsKTsKIAotLy8gc3NsX2lzX2RyYWZ0MjggcmV0dXJucyB3aGV0aGVy
IHRoZSB2ZXJzaW9uIGNvcnJlc3BvbmRzIHRvIGEgZHJhZnQyOCBUTFMgMS4zCi0vLyB2YXJpYW50
LgotYm9vbCBzc2xfaXNfZHJhZnQyOCh1aW50MTZfdCB2ZXJzaW9uKTsKLQogLy8gQ2lwaGVyIHN1
aXRlcy4KIAogQlNTTF9OQU1FU1BBQ0VfRU5ECkBAIC00NzEsNiArNDY1LDkgQEAgQlNTTF9OQU1F
U1BBQ0VfQkVHSU4KICNkZWZpbmUgU1NMX0hBTkRTSEFLRV9NQUNfU0hBMjU2IDB4MgogI2RlZmlu
ZSBTU0xfSEFORFNIQUtFX01BQ19TSEEzODQgMHg0CiAKKy8vIFNTTF9NQVhfTURfU0laRSBpcyBz
aXplIG9mIHRoZSBsYXJnZXN0IGhhc2ggZnVuY3Rpb24gdXNlZCBpbiBUTFMsIFNIQS0zODQuCisj
ZGVmaW5lIFNTTF9NQVhfTURfU0laRSA0OAorCiAvLyBBbiBTU0xDaXBoZXJQcmVmZXJlbmNlTGlz
dCBjb250YWlucyBhIGxpc3Qgb2YgU1NMX0NJUEhFUnMgd2l0aCBlcXVhbC0KIC8vIHByZWZlcmVu
Y2UgZ3JvdXBzLiBGb3IgVExTIGNsaWVudHMsIHRoZSBncm91cHMgYXJlIG1vb3QgYmVjYXVzZSB0
aGUgc2VydmVyCiAvLyBwaWNrcyB0aGUgY2lwaGVyIGFuZCBncm91cHMgY2Fubm90IGJlIGV4cHJl
c3NlZCBvbiB0aGUgd2lyZS4gSG93ZXZlciwgZm9yCkBAIC01NjYsNiArNTYzLDEyIEBAIGJvb2wg
c3NsX2NpcGhlcl9yZXF1aXJlc19zZXJ2ZXJfa2V5X2V4Y2hhbmdlKGNvbnN0IFNTTF9DSVBIRVIg
KmNpcGhlcik7CiAvLyBpdCByZXR1cm5zIHplcm8uCiBzaXplX3Qgc3NsX2NpcGhlcl9nZXRfcmVj
b3JkX3NwbGl0X2xlbihjb25zdCBTU0xfQ0lQSEVSICpjaXBoZXIpOwogCisvLyBzc2xfY2hvb3Nl
X3RsczEzX2NpcGhlciByZXR1cm5zIGFuIHxTU0xfQ0lQSEVSfCBjb3JyZXNwb25kaW5nIHdpdGgg
dGhlIGJlc3QKKy8vIGF2YWlsYWJsZSBmcm9tIHxjaXBoZXJfc3VpdGVzfCBjb21wYXRpYmxlIHdp
dGggfHZlcnNpb258IGFuZCB8Z3JvdXBfaWR8LiBJdAorLy8gcmV0dXJucyBOVUxMIGlmIHRoZXJl
IGlzbid0IGEgY29tcGF0aWJsZSBjaXBoZXIuCitjb25zdCBTU0xfQ0lQSEVSICpzc2xfY2hvb3Nl
X3RsczEzX2NpcGhlcihDQlMgY2lwaGVyX3N1aXRlcywgdWludDE2X3QgdmVyc2lvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGdyb3VwX2lkKTsK
KwogCiAvLyBUcmFuc2NyaXB0IGxheWVyLgogCkBAIC01OTMsOSArNTk2LDExIEBAIGNsYXNzIFNT
TFRyYW5zY3JpcHQgewogICAvLyBpcyByZWxlYXNlZC4KICAgYm9vbCBVcGRhdGVGb3JIZWxsb1Jl
dHJ5UmVxdWVzdCgpOwogCi0gIC8vIENvcHlIYXNoQ29udGV4dCBjb3BpZXMgdGhlIGhhc2ggY29u
dGV4dCBpbnRvIHxjdHh8IGFuZCByZXR1cm5zIHRydWUgb24KLSAgLy8gc3VjY2Vzcy4KLSAgYm9v
bCBDb3B5SGFzaENvbnRleHQoRVZQX01EX0NUWCAqY3R4KTsKKyAgLy8gQ29weVRvSGFzaENvbnRl
eHQgaW5pdGlhbGl6ZXMgfGN0eHwgd2l0aCB8ZGlnZXN0fCBhbmQgdGhlIGRhdGEgdGh1cyBmYXIg
aW4KKyAgLy8gdGhlIHRyYW5zY3JpcHQuIEl0IHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzIGFuZCBm
YWxzZSBvbiBmYWlsdXJlLiBJZiB0aGUKKyAgLy8gaGFuZHNoYWtlIGJ1ZmZlciBpcyBzdGlsbCBw
cmVzZW50LCB8ZGlnZXN0fCBtYXkgYmUgYW55IHN1cHBvcnRlZCBkaWdlc3QuCisgIC8vIE90aGVy
d2lzZSwgfGRpZ2VzdHwgbXVzdCBtYXRjaCB0aGUgdHJhbnNjcmlwdCBoYXNoLgorICBib29sIENv
cHlUb0hhc2hDb250ZXh0KEVWUF9NRF9DVFggKmN0eCwgY29uc3QgRVZQX01EICpkaWdlc3QpOwog
CiAgIFNwYW48Y29uc3QgdWludDhfdD4gYnVmZmVyKCkgewogICAgIHJldHVybiBNYWtlQ29uc3RT
cGFuKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihidWZmZXJfLT5kYXRhKSwKQEAg
LTc4NSw4ICs3OTAsNiBAQCBjbGFzcyBTU0xBRUFEQ29udGV4dCB7CiAgIC8vIG9taXRfbGVuZ3Ro
X2luX2FkXyBpcyB0cnVlIGlmIHRoZSBsZW5ndGggc2hvdWxkIGJlIG9taXR0ZWQgaW4gdGhlCiAg
IC8vIEFFQUQncyBhZCBwYXJhbWV0ZXIuCiAgIGJvb2wgb21pdF9sZW5ndGhfaW5fYWRfIDogMTsK
LSAgLy8gb21pdF9hZF8gaXMgdHJ1ZSBpZiB0aGUgQUVBRCdzIGFkIHBhcmFtZXRlciBzaG91bGQg
YmUgb21pdHRlZC4KLSAgYm9vbCBvbWl0X2FkXyA6IDE7CiAgIC8vIGFkX2lzX2hlYWRlcl8gaXMg
dHJ1ZSBpZiB0aGUgQUVBRCdzIGFkIHBhcmFtZXRlciBpcyB0aGUgcmVjb3JkIGhlYWRlci4KICAg
Ym9vbCBhZF9pc19oZWFkZXJfIDogMTsKIH07CkBAIC05MTksOCArOTIyLDggQEAgZW51bSBzc2xf
b3Blbl9yZWNvcmRfdCBzc2xfcHJvY2Vzc19hbGVydChTU0wgKnNzbCwgdWludDhfdCAqb3V0X2Fs
ZXJ0LAogCiAvLyBQcml2YXRlIGtleSBvcGVyYXRpb25zLgogCi0vLyBzc2xfaGFzX3ByaXZhdGVf
a2V5IHJldHVybnMgd2hldGhlciB8Y2ZnfCBoYXMgYSBwcml2YXRlIGtleSBjb25maWd1cmVkLgot
Ym9vbCBzc2xfaGFzX3ByaXZhdGVfa2V5KGNvbnN0IFNTTF9DT05GSUcgKmNmZyk7CisvLyBzc2xf
aGFzX3ByaXZhdGVfa2V5IHJldHVybnMgd2hldGhlciB8aHN8IGhhcyBhIHByaXZhdGUga2V5IGNv
bmZpZ3VyZWQuCitib29sIHNzbF9oYXNfcHJpdmF0ZV9rZXkoY29uc3QgU1NMX0hBTkRTSEFLRSAq
aHMpOwogCiAvLyBzc2xfcHJpdmF0ZV9rZXlfKiBwZXJmb3JtIHRoZSBjb3JyZXNwb25kaW5nIG9w
ZXJhdGlvbiBvbgogLy8gfFNTTF9QUklWQVRFX0tFWV9NRVRIT0R8LiBJZiB0aGVyZSBpcyBhIGN1
c3RvbSBwcml2YXRlIGtleSBjb25maWd1cmVkLCB0aGV5CkBAIC05NzQsMTAgKzk3NywxMCBAQCBj
bGFzcyBTU0xLZXlTaGFyZSB7CiAgIC8vIHxvdXRfcHVibGljX2tleXwuIEl0IHJldHVybnMgdHJ1
ZSBvbiBzdWNjZXNzIGFuZCBmYWxzZSBvbiBlcnJvci4KICAgdmlydHVhbCBib29sIE9mZmVyKENC
QiAqb3V0X3B1YmxpY19rZXkpIFBVUkVfVklSVFVBTDsKIAotICAvLyBBY2NlcHQgcGVyZm9ybXMg
YSBrZXkgZXhjaGFuZ2UgYWdhaW5zdCB0aGUgfHBlZXJfa2V5fCBnZW5lcmF0ZWQgYnkgfG9mZmVy
fC4KKyAgLy8gQWNjZXB0IHBlcmZvcm1zIGEga2V5IGV4Y2hhbmdlIGFnYWluc3QgdGhlIHxwZWVy
X2tleXwgZ2VuZXJhdGVkIGJ5IHxPZmZlcnwuCiAgIC8vIE9uIHN1Y2Nlc3MsIGl0IHJldHVybnMg
dHJ1ZSwgd3JpdGVzIHRoZSBwdWJsaWMgdmFsdWUgdG8gfG91dF9wdWJsaWNfa2V5fCwKLSAgLy8g
YW5kIHNldHMgfCpvdXRfc2VjcmV0fCB0aGUgc2hhcmVkIHNlY3JldC4gT24gZmFpbHVyZSwgaXQg
cmV0dXJucyBmYWxzZSBhbmQKLSAgLy8gc2V0cyB8Km91dF9hbGVydHwgdG8gYW4gYWxlcnQgdG8g
c2VuZCB0byB0aGUgcGVlci4KKyAgLy8gYW5kIHNldHMgfCpvdXRfc2VjcmV0fCB0byB0aGUgc2hh
cmVkIHNlY3JldC4gT24gZmFpbHVyZSwgaXQgcmV0dXJucyBmYWxzZQorICAvLyBhbmQgc2V0cyB8
Km91dF9hbGVydHwgdG8gYW4gYWxlcnQgdG8gc2VuZCB0byB0aGUgcGVlci4KICAgLy8KICAgLy8g
VGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgfE9mZmVyfCBhbmQgdGhlbiB8RmluaXNo
fCwgYXNzdW1pbmcgYSBrZXkKICAgLy8gZXhjaGFuZ2UgcHJvdG9jb2wgd2hlcmUgdGhlIHBlZXJz
IGFyZSBzeW1tZXRyaWMuCkBAIC05ODYsNyArOTg5LDcgQEAgY2xhc3MgU1NMS2V5U2hhcmUgewog
CiAgIC8vIEZpbmlzaCBwZXJmb3JtcyBhIGtleSBleGNoYW5nZSBhZ2FpbnN0IHRoZSB8cGVlcl9r
ZXl8IGdlbmVyYXRlZCBieQogICAvLyB8QWNjZXB0fC4gT24gc3VjY2VzcywgaXQgcmV0dXJucyB0
cnVlIGFuZCBzZXRzIHwqb3V0X3NlY3JldHwgdG8gdGhlIHNoYXJlZAotICAvLyBzZWNyZXQuIE9u
IGZhaWx1cmUsIGl0IHJldHVybnMgemVybyBhbmQgc2V0cyB8Km91dF9hbGVydHwgdG8gYW4gYWxl
cnQgdG8KKyAgLy8gc2VjcmV0LiBPbiBmYWlsdXJlLCBpdCByZXR1cm5zIGZhbHNlIGFuZCBzZXRz
IHwqb3V0X2FsZXJ0fCB0byBhbiBhbGVydCB0bwogICAvLyBzZW5kIHRvIHRoZSBwZWVyLgogICB2
aXJ0dWFsIGJvb2wgRmluaXNoKEFycmF5PHVpbnQ4X3Q+ICpvdXRfc2VjcmV0LCB1aW50OF90ICpv
dXRfYWxlcnQsCiAgICAgICAgICAgICAgICAgICAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBwZWVy
X2tleSkgUFVSRV9WSVJUVUFMOwpAQCAtMTA4OSw3ICsxMDkyLDcgQEAgdm9pZCBkdGxzX2NsZWFy
X291dGdvaW5nX21lc3NhZ2VzKFNTTCAqc3NsKTsKIHZvaWQgc3NsX2RvX2luZm9fY2FsbGJhY2so
Y29uc3QgU1NMICpzc2wsIGludCB0eXBlLCBpbnQgdmFsdWUpOwogCiAvLyBzc2xfZG9fbXNnX2Nh
bGxiYWNrIGNhbGxzIHxzc2x8J3MgbWVzc2FnZSBjYWxsYmFjaywgaWYgc2V0Lgotdm9pZCBzc2xf
ZG9fbXNnX2NhbGxiYWNrKFNTTCAqc3NsLCBpbnQgaXNfd3JpdGUsIGludCBjb250ZW50X3R5cGUs
Cit2b2lkIHNzbF9kb19tc2dfY2FsbGJhY2soY29uc3QgU1NMICpzc2wsIGludCBpc193cml0ZSwg
aW50IGNvbnRlbnRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBTcGFuPGNvbnN0IHVp
bnQ4X3Q+IGluKTsKIAogCkBAIC0xMTczLDcgKzExNzYsNyBAQCBpbnQgc3NsX3dyaXRlX2J1ZmZl
cl9mbHVzaChTU0wgKnNzbCk7CiAKIC8vIHNzbF9oYXNfY2VydGlmaWNhdGUgcmV0dXJucyB3aGV0
aGVyIGEgY2VydGlmaWNhdGUgYW5kIHByaXZhdGUga2V5IGFyZQogLy8gY29uZmlndXJlZC4KLWJv
b2wgc3NsX2hhc19jZXJ0aWZpY2F0ZShjb25zdCBTU0xfQ09ORklHICpjZmcpOworYm9vbCBzc2xf
aGFzX2NlcnRpZmljYXRlKGNvbnN0IFNTTF9IQU5EU0hBS0UgKmhzKTsKIAogLy8gc3NsX3BhcnNl
X2NlcnRfY2hhaW4gcGFyc2VzIGEgY2VydGlmaWNhdGUgbGlzdCBmcm9tIHxjYnN8IGluIHRoZSBm
b3JtYXQgdXNlZAogLy8gYnkgYSBUTFMgQ2VydGlmaWNhdGUgbWVzc2FnZS4gT24gc3VjY2Vzcywg
aXQgYWR2YW5jZXMgfGNic3wgYW5kIHJldHVybnMKQEAgLTExOTcsMTEgKzEyMDAsMTUgQEAgYm9v
bCBzc2xfcGFyc2VfY2VydF9jaGFpbih1aW50OF90ICpvdXRfYWxlcnQsCiAvLyBhbiBlbXB0eSBj
ZXJ0aWZpY2F0ZSBsaXN0LiBJdCByZXR1cm5zIHRydWUgb24gc3VjY2VzcyBhbmQgZmFsc2Ugb24g
ZXJyb3IuCiBib29sIHNzbF9hZGRfY2VydF9jaGFpbihTU0xfSEFORFNIQUtFICpocywgQ0JCICpj
YmIpOwogCi0vLyBzc2xfY2VydF9jaGVja19kaWdpdGFsX3NpZ25hdHVyZV9rZXlfdXNhZ2UgcGFy
c2VzIHRoZSBERVItZW5jb2RlZCwgWC41MDkKLS8vIGNlcnRpZmljYXRlIGluIHxpbnwgYW5kIHJl
dHVybnMgdHJ1ZSBpZiBkb2Vzbid0IHNwZWNpZnkgYSBrZXkgdXNhZ2Ugb3IsIGlmIGl0Ci0vLyBk
b2VzLCBpZiBpdCBpbmNsdWRlcyBkaWdpdGFsU2lnbmF0dXJlLiBPdGhlcndpc2UgaXQgcHVzaGVz
IHRvIHRoZSBlcnJvciBxdWV1ZQotLy8gYW5kIHJldHVybnMgZmFsc2UuCi1ib29sIHNzbF9jZXJ0
X2NoZWNrX2RpZ2l0YWxfc2lnbmF0dXJlX2tleV91c2FnZShjb25zdCBDQlMgKmluKTsKK2VudW0g
c3NsX2tleV91c2FnZV90IHsKKyAga2V5X3VzYWdlX2RpZ2l0YWxfc2lnbmF0dXJlID0gMCwKKyAg
a2V5X3VzYWdlX2VuY2lwaGVybWVudCA9IDIsCit9OworCisvLyBzc2xfY2VydF9jaGVja19rZXlf
dXNhZ2UgcGFyc2VzIHRoZSBERVItZW5jb2RlZCwgWC41MDkgY2VydGlmaWNhdGUgaW4gfGlufAor
Ly8gYW5kIHJldHVybnMgdHJ1ZSBpZiBkb2Vzbid0IHNwZWNpZnkgYSBrZXkgdXNhZ2Ugb3IsIGlm
IGl0IGRvZXMsIGlmIGl0CisvLyBpbmNsdWRlcyB8Yml0fC4gT3RoZXJ3aXNlIGl0IHB1c2hlcyB0
byB0aGUgZXJyb3IgcXVldWUgYW5kIHJldHVybnMgZmFsc2UuCitib29sIHNzbF9jZXJ0X2NoZWNr
X2tleV91c2FnZShjb25zdCBDQlMgKmluLCBlbnVtIHNzbF9rZXlfdXNhZ2VfdCBiaXQpOwogCiAv
LyBzc2xfY2VydF9wYXJzZV9wdWJrZXkgZXh0cmFjdHMgdGhlIHB1YmxpYyBrZXkgZnJvbSB0aGUg
REVSLWVuY29kZWQsIFguNTA5CiAvLyBjZXJ0aWZpY2F0ZSBpbiB8aW58LiBJdCByZXR1cm5zIGFu
IGFsbG9jYXRlZCB8RVZQX1BLRVl8IG9yIGVsc2UgcmV0dXJucwpAQCAtMTI0MSwyNiArMTI0OCwy
MiBAQCBib29sIHNzbF9vbl9jZXJ0aWZpY2F0ZV9zZWxlY3RlZChTU0xfSEFORFNIQUtFICpocyk7
CiAvLyB0bHMxM19pbml0X2tleV9zY2hlZHVsZSBpbml0aWFsaXplcyB0aGUgaGFuZHNoYWtlIGhh
c2ggYW5kIGtleSBkZXJpdmF0aW9uCiAvLyBzdGF0ZSwgYW5kIGluY29ycG9yYXRlcyB0aGUgUFNL
LiBUaGUgY2lwaGVyIHN1aXRlIGFuZCBQUkYgaGFzaCBtdXN0IGhhdmUgYmVlbgogLy8gc2VsZWN0
ZWQgYXQgdGhpcyBwb2ludC4gSXQgcmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MgYW5kIGZhbHNlIG9u
IGVycm9yLgotYm9vbCB0bHMxM19pbml0X2tleV9zY2hlZHVsZShTU0xfSEFORFNIQUtFICpocywg
Y29uc3QgdWludDhfdCAqcHNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
cHNrX2xlbik7Citib29sIHRsczEzX2luaXRfa2V5X3NjaGVkdWxlKFNTTF9IQU5EU0hBS0UgKmhz
LCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHBzayk7CiAKIC8vIHRsczEzX2luaXRfZWFybHlfa2V5X3Nj
aGVkdWxlIGluaXRpYWxpemVzIHRoZSBoYW5kc2hha2UgaGFzaCBhbmQga2V5CiAvLyBkZXJpdmF0
aW9uIHN0YXRlIGZyb20gdGhlIHJlc3VtcHRpb24gc2VjcmV0IGFuZCBpbmNvcnBvcmF0ZXMgdGhl
IFBTSyB0bwogLy8gZGVyaXZlIHRoZSBlYXJseSBzZWNyZXRzLiBJdCByZXR1cm5zIG9uZSBvbiBz
dWNjZXNzIGFuZCB6ZXJvIG9uIGVycm9yLgotYm9vbCB0bHMxM19pbml0X2Vhcmx5X2tleV9zY2hl
ZHVsZShTU0xfSEFORFNIQUtFICpocywgY29uc3QgdWludDhfdCAqcHNrLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcHNrX2xlbik7Citib29sIHRsczEzX2luaXRf
ZWFybHlfa2V5X3NjaGVkdWxlKFNTTF9IQU5EU0hBS0UgKmhzLCBTcGFuPGNvbnN0IHVpbnQ4X3Q+
IHBzayk7CiAKIC8vIHRsczEzX2FkdmFuY2Vfa2V5X3NjaGVkdWxlIGluY29ycG9yYXRlcyB8aW58
IGludG8gdGhlIGtleSBzY2hlZHVsZSB3aXRoCiAvLyBIS0RGLUV4dHJhY3QuIEl0IHJldHVybnMg
dHJ1ZSBvbiBzdWNjZXNzIGFuZCBmYWxzZSBvbiBlcnJvci4KLWJvb2wgdGxzMTNfYWR2YW5jZV9r
ZXlfc2NoZWR1bGUoU1NMX0hBTkRTSEFLRSAqaHMsIGNvbnN0IHVpbnQ4X3QgKmluLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworYm9vbCB0bHMxM19hZHZhbmNl
X2tleV9zY2hlZHVsZShTU0xfSEFORFNIQUtFICpocywgU3Bhbjxjb25zdCB1aW50OF90PiBpbik7
CiAKIC8vIHRsczEzX3NldF90cmFmZmljX2tleSBzZXRzIHRoZSByZWFkIG9yIHdyaXRlIHRyYWZm
aWMga2V5cyB0bwogLy8gfHRyYWZmaWNfc2VjcmV0fC4gSXQgcmV0dXJucyB0cnVlIG9uIHN1Y2Nl
c3MgYW5kIGZhbHNlIG9uIGVycm9yLgogYm9vbCB0bHMxM19zZXRfdHJhZmZpY19rZXkoU1NMICpz
c2wsIGVudW0gc3NsX2VuY3J5cHRpb25fbGV2ZWxfdCBsZXZlbCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudW0gZXZwX2FlYWRfZGlyZWN0aW9uX3QgZGlyZWN0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqdHJhZmZpY19zZWNyZXQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3QgdHJhZmZpY19zZWNyZXRfbGVuKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNwYW48Y29uc3QgdWludDhfdD4gdHJhZmZpY19zZWNyZXQpOwog
CiAvLyB0bHMxM19kZXJpdmVfZWFybHlfc2VjcmV0cyBkZXJpdmVzIHRoZSBlYXJseSB0cmFmZmlj
IHNlY3JldC4gSXQgcmV0dXJucyB0cnVlCiAvLyBvbiBzdWNjZXNzIGFuZCBmYWxzZSBvbiBlcnJv
ci4KQEAgLTEyOTksMTMgKzEzMDIsMTIgQEAgYm9vbCB0bHMxM19maW5pc2hlZF9tYWMoU1NMX0hB
TkRTSEFLRSAqaHMsIHVpbnQ4X3QgKm91dCwgc2l6ZV90ICpvdXRfbGVuLAogLy8gdGxzMTNfZGVy
aXZlX3Nlc3Npb25fcHNrIGNhbGN1bGF0ZXMgdGhlIFBTSyBmb3IgdGhpcyBzZXNzaW9uIGJhc2Vk
IG9uIHRoZQogLy8gcmVzdW1wdGlvbiBtYXN0ZXIgc2VjcmV0IGFuZCB8bm9uY2V8LiBJdCByZXR1
cm5zIHRydWUgb24gc3VjY2VzcywgYW5kIGZhbHNlCiAvLyBvbiBmYWlsdXJlLgotYm9vbCB0bHMx
M19kZXJpdmVfc2Vzc2lvbl9wc2soU1NMX1NFU1NJT04gKnNlc3Npb24sIFNwYW48Y29uc3QgdWlu
dDhfdD4gbm9uY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHVzZV9xdWlj
KTsKK2Jvb2wgdGxzMTNfZGVyaXZlX3Nlc3Npb25fcHNrKFNTTF9TRVNTSU9OICpzZXNzaW9uLCBT
cGFuPGNvbnN0IHVpbnQ4X3Q+IG5vbmNlKTsKIAogLy8gdGxzMTNfd3JpdGVfcHNrX2JpbmRlciBj
YWxjdWxhdGVzIHRoZSBQU0sgYmluZGVyIHZhbHVlIGFuZCByZXBsYWNlcyB0aGUgbGFzdAogLy8g
Ynl0ZXMgb2YgfG1zZ3wgd2l0aCB0aGUgcmVzdWx0aW5nIHZhbHVlLiBJdCByZXR1cm5zIHRydWUg
b24gc3VjY2VzcywgYW5kCiAvLyBmYWxzZSBvbiBmYWlsdXJlLgotYm9vbCB0bHMxM193cml0ZV9w
c2tfYmluZGVyKFNTTF9IQU5EU0hBS0UgKmhzLCB1aW50OF90ICptc2csIHNpemVfdCBsZW4pOwor
Ym9vbCB0bHMxM193cml0ZV9wc2tfYmluZGVyKFNTTF9IQU5EU0hBS0UgKmhzLCBTcGFuPHVpbnQ4
X3Q+IG1zZyk7CiAKIC8vIHRsczEzX3ZlcmlmeV9wc2tfYmluZGVyIHZlcmlmaWVzIHRoYXQgdGhl
IGhhbmRzaGFrZSB0cmFuc2NyaXB0LCB0cnVuY2F0ZWQgdXAKIC8vIHRvIHRoZSBiaW5kZXJzIGhh
cyBhIHZhbGlkIHNpZ25hdHVyZSB1c2luZyB0aGUgdmFsdWUgb2YgfHNlc3Npb258J3MKQEAgLTEz
NzksNiArMTM4MSw0NiBAQCBlbnVtIGhhbmRiYWNrX3QgewogICBoYW5kYmFja19hZnRlcl9oYW5k
c2hha2UsCiB9OwogCisKKy8vIERlbGVnYXRlZCBjcmVkZW50aWFscy4KKworLy8gVGhpcyBzdHJ1
Y3R1cmUgc3RvcmVzIGEgZGVsZWdhdGVkIGNyZWRlbnRpYWwgKERDKSBhcyBkZWZpbmVkIGJ5Cisv
LyBkcmFmdC1pZXRmLXRscy1zdWJjZXJ0cy0wMy4KK3N0cnVjdCBEQyB7CisgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBrQWxsb3dVbmlxdWVQdHIgPSB0cnVlOworICB+REMoKTsKKworICAvLyBEdXAg
cmV0dXJucyBhIGNvcHkgb2YgdGhpcyBEQyBhbmQgdGFrZXMgcmVmZXJlbmNlcyB0byB8cmF3fCBh
bmQgfHBrZXl8LgorICBVbmlxdWVQdHI8REM+IER1cCgpOworCisgIC8vIFBhcnNlIHBhcnNlcyB0
aGUgZGVsZWdhdGVkIGNyZWRlbnRpYWwgc3RvcmVkIGluIHxpbnwuIElmIHN1Y2Nlc3NmdWwgaXQK
KyAgLy8gcmV0dXJucyB0aGUgcGFyc2VkIHN0cnVjdHVyZSwgb3RoZXJ3aXNlIGl0IHJldHVybnMg
fG51bGxwdHJ8IGFuZCBzZXRzCisgIC8vIHwqb3V0X2FsZXJ0fC4KKyAgc3RhdGljIFVuaXF1ZVB0
cjxEQz4gUGFyc2UoQ1JZUFRPX0JVRkZFUiAqaW4sIHVpbnQ4X3QgKm91dF9hbGVydCk7CisKKyAg
Ly8gcmF3IGlzIHRoZSBkZWxlZ2F0ZWQgY3JlZGVudGlhbCBlbmNvZGVkIGFzIHNwZWNpZmllZCBp
biBkcmFmdC1pZXRmLXRscy0KKyAgLy8gc3ViY2VydHMtMDMuCisgIFVuaXF1ZVB0cjxDUllQVE9f
QlVGRkVSPiByYXc7CisKKyAgLy8gZXhwZWN0ZWRfY2VydF92ZXJpZnlfYWxnb3JpdGhtIGlzIHRo
ZSBzaWduYXR1cmUgc2NoZW1lIG9mIHRoZSBEQyBwdWJsaWMKKyAgLy8ga2V5LgorICB1aW50MTZf
dCBleHBlY3RlZF9jZXJ0X3ZlcmlmeV9hbGdvcml0aG0gPSAwOworCisgIC8vIHBrZXkgaXMgdGhl
IHB1YmxpYyBrZXkgcGFyc2VkIGZyb20gfHB1YmxpY19rZXl8LgorICBVbmlxdWVQdHI8RVZQX1BL
RVk+IHBrZXk7CisKKyBwcml2YXRlOgorICBmcmllbmQgREMqIE5ldzxEQz4oKTsKKyAgREMoKTsK
K307CisKKy8vIHNzbF9zaWduaW5nX3dpdGhfZGMgcmV0dXJucyB0cnVlIGlmIHRoZSBwZWVyIGhh
cyBpbmRpY2F0ZWQgc3VwcG9ydCBmb3IKKy8vIGRlbGVnYXRlZCBjcmVkZW50aWFscyBhbmQgdGhp
cyBob3N0IGhhcyBzZW50IGEgZGVsZWdhdGVkIGNyZWRlbnRpYWwgaW4KKy8vIHJlc3BvbnNlLiBJ
ZiB0aGlzIGlzIHRydWUgdGhlbiB3ZSd2ZSBjb21taXR0ZWQgdG8gdXNpbmcgdGhlIERDIGluIHRo
ZQorLy8gaGFuZHNoYWtlLgorYm9vbCBzc2xfc2lnbmluZ193aXRoX2RjKGNvbnN0IFNTTF9IQU5E
U0hBS0UgKmhzKTsKKworCiBzdHJ1Y3QgU1NMX0hBTkRTSEFLRSB7CiAgIGV4cGxpY2l0IFNTTF9I
QU5EU0hBS0UoU1NMICpzc2wpOwogICB+U1NMX0hBTkRTSEFLRSgpOwpAQCAtMTQxMCwxNCArMTQ1
MiwzOCBAQCBzdHJ1Y3QgU1NMX0hBTkRTSEFLRSB7CiAgIC8vIHxTU0xfT1BfTk9fKnwgYW5kIHxT
U0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbnwgQVBJcy4KICAgdWludDE2X3QgbWF4X3ZlcnNp
b24gPSAwOwogCi0gIHNpemVfdCBoYXNoX2xlbiA9IDA7Ci0gIHVpbnQ4X3Qgc2VjcmV0W0VWUF9N
QVhfTURfU0laRV0gPSB7MH07Ci0gIHVpbnQ4X3QgZWFybHlfdHJhZmZpY19zZWNyZXRbRVZQX01B
WF9NRF9TSVpFXSA9IHswfTsKLSAgdWludDhfdCBjbGllbnRfaGFuZHNoYWtlX3NlY3JldFtFVlBf
TUFYX01EX1NJWkVdID0gezB9OwotICB1aW50OF90IHNlcnZlcl9oYW5kc2hha2Vfc2VjcmV0W0VW
UF9NQVhfTURfU0laRV0gPSB7MH07Ci0gIHVpbnQ4X3QgY2xpZW50X3RyYWZmaWNfc2VjcmV0XzBb
RVZQX01BWF9NRF9TSVpFXSA9IHswfTsKLSAgdWludDhfdCBzZXJ2ZXJfdHJhZmZpY19zZWNyZXRf
MFtFVlBfTUFYX01EX1NJWkVdID0gezB9OwotICB1aW50OF90IGV4cGVjdGVkX2NsaWVudF9maW5p
c2hlZFtFVlBfTUFYX01EX1NJWkVdID0gezB9OworIHByaXZhdGU6CisgIHNpemVfdCBoYXNoX2xl
bl8gPSAwOworICB1aW50OF90IHNlY3JldF9bU1NMX01BWF9NRF9TSVpFXSA9IHswfTsKKyAgdWlu
dDhfdCBlYXJseV90cmFmZmljX3NlY3JldF9bU1NMX01BWF9NRF9TSVpFXSA9IHswfTsKKyAgdWlu
dDhfdCBjbGllbnRfaGFuZHNoYWtlX3NlY3JldF9bU1NMX01BWF9NRF9TSVpFXSA9IHswfTsKKyAg
dWludDhfdCBzZXJ2ZXJfaGFuZHNoYWtlX3NlY3JldF9bU1NMX01BWF9NRF9TSVpFXSA9IHswfTsK
KyAgdWludDhfdCBjbGllbnRfdHJhZmZpY19zZWNyZXRfMF9bU1NMX01BWF9NRF9TSVpFXSA9IHsw
fTsKKyAgdWludDhfdCBzZXJ2ZXJfdHJhZmZpY19zZWNyZXRfMF9bU1NMX01BWF9NRF9TSVpFXSA9
IHswfTsKKyAgdWludDhfdCBleHBlY3RlZF9jbGllbnRfZmluaXNoZWRfW1NTTF9NQVhfTURfU0la
RV0gPSB7MH07CisKKyBwdWJsaWM6CisgIHZvaWQgUmVzaXplU2VjcmV0cyhzaXplX3QgaGFzaF9s
ZW4pOworCisgIFNwYW48dWludDhfdD4gc2VjcmV0KCkgeyByZXR1cm4gTWFrZVNwYW4oc2VjcmV0
XywgaGFzaF9sZW5fKTsgfQorICBTcGFuPHVpbnQ4X3Q+IGVhcmx5X3RyYWZmaWNfc2VjcmV0KCkg
eworICAgIHJldHVybiBNYWtlU3BhbihlYXJseV90cmFmZmljX3NlY3JldF8sIGhhc2hfbGVuXyk7
CisgIH0KKyAgU3Bhbjx1aW50OF90PiBjbGllbnRfaGFuZHNoYWtlX3NlY3JldCgpIHsKKyAgICBy
ZXR1cm4gTWFrZVNwYW4oY2xpZW50X2hhbmRzaGFrZV9zZWNyZXRfLCBoYXNoX2xlbl8pOworICB9
CisgIFNwYW48dWludDhfdD4gc2VydmVyX2hhbmRzaGFrZV9zZWNyZXQoKSB7CisgICAgcmV0dXJu
IE1ha2VTcGFuKHNlcnZlcl9oYW5kc2hha2Vfc2VjcmV0XywgaGFzaF9sZW5fKTsKKyAgfQorICBT
cGFuPHVpbnQ4X3Q+IGNsaWVudF90cmFmZmljX3NlY3JldF8wKCkgeworICAgIHJldHVybiBNYWtl
U3BhbihjbGllbnRfdHJhZmZpY19zZWNyZXRfMF8sIGhhc2hfbGVuXyk7CisgIH0KKyAgU3Bhbjx1
aW50OF90PiBzZXJ2ZXJfdHJhZmZpY19zZWNyZXRfMCgpIHsKKyAgICByZXR1cm4gTWFrZVNwYW4o
c2VydmVyX3RyYWZmaWNfc2VjcmV0XzBfLCBoYXNoX2xlbl8pOworICB9CisgIFNwYW48dWludDhf
dD4gZXhwZWN0ZWRfY2xpZW50X2ZpbmlzaGVkKCkgeworICAgIHJldHVybiBNYWtlU3BhbihleHBl
Y3RlZF9jbGllbnRfZmluaXNoZWRfLCBoYXNoX2xlbl8pOworICB9CiAKICAgdW5pb24gewogICAg
IC8vIHNlbnQgaXMgYSBiaXRzZXQgd2hlcmUgdGhlIGJpdHMgY29ycmVzcG9uZCB0byBlbGVtZW50
cyBvZiBrRXh0ZW5zaW9ucwpAQCAtMTQzNiw4ICsxNTAyLDEwIEBAIHN0cnVjdCBTU0xfSEFORFNI
QUtFIHsKICAgLy8gZXJyb3IsIGlmIHx3YWl0fCBpcyB8c3NsX2hzX2Vycm9yfCwgaXMgdGhlIGVy
cm9yIHRoZSBoYW5kc2hha2UgZmFpbGVkIG9uLgogICBVbmlxdWVQdHI8RVJSX1NBVkVfU1RBVEU+
IGVycm9yOwogCi0gIC8vIGtleV9zaGFyZSBpcyB0aGUgY3VycmVudCBrZXkgZXhjaGFuZ2UgaW5z
dGFuY2UuCi0gIFVuaXF1ZVB0cjxTU0xLZXlTaGFyZT4ga2V5X3NoYXJlOworICAvLyBrZXlfc2hh
cmVzIGFyZSB0aGUgY3VycmVudCBrZXkgZXhjaGFuZ2UgaW5zdGFuY2VzLiBUaGUgc2Vjb25kIGlz
IG9ubHkgdXNlZAorICAvLyBhcyBhIGNsaWVudCBpZiB3ZSBiZWxpZXZlIHRoYXQgd2Ugc2hvdWxk
IG9mZmVyIHR3byBrZXkgc2hhcmVzIGluIGEKKyAgLy8gQ2xpZW50SGVsbG8uCisgIFVuaXF1ZVB0
cjxTU0xLZXlTaGFyZT4ga2V5X3NoYXJlc1syXTsKIAogICAvLyB0cmFuc2NyaXB0IGlzIHRoZSBj
dXJyZW50IGhhbmRzaGFrZSB0cmFuc2NyaXB0LgogICBTU0xUcmFuc2NyaXB0IHRyYW5zY3JpcHQ7
CkBAIC0xNTQ4LDYgKzE2MTYsMTAgQEAgc3RydWN0IFNTTF9IQU5EU0hBS0UgewogICAvLyBvY3Nw
X3N0YXBsaW5nX3JlcXVlc3RlZCBpcyB0cnVlIGlmIGEgY2xpZW50IHJlcXVlc3RlZCBPQ1NQIHN0
YXBsaW5nLgogICBib29sIG9jc3Bfc3RhcGxpbmdfcmVxdWVzdGVkIDogMTsKIAorICAvLyBkZWxl
Z2F0ZWRfY3JlZGVudGlhbF9yZXF1ZXN0ZWQgaXMgdHJ1ZSBpZiB0aGUgcGVlciBpbmRpY2F0ZWQg
c3VwcG9ydCBmb3IKKyAgLy8gdGhlIGRlbGVnYXRlZCBjcmVkZW50aWFsIGV4dGVuc2lvbi4KKyAg
Ym9vbCBkZWxlZ2F0ZWRfY3JlZGVudGlhbF9yZXF1ZXN0ZWQgOiAxOworCiAgIC8vIHNob3VsZF9h
Y2tfc25pIGlzIHVzZWQgYnkgYSBzZXJ2ZXIgYW5kIGluZGljYXRlcyB0aGF0IHRoZSBTTkkgZXh0
ZW5zaW9uCiAgIC8vIHNob3VsZCBiZSBlY2hvZWQgaW4gdGhlIFNlcnZlckhlbGxvLgogICBib29s
IHNob3VsZF9hY2tfc25pIDogMTsKQEAgLTE1OTEsNyArMTY2Myw4IEBAIHN0cnVjdCBTU0xfSEFO
RFNIQUtFIHsKIAogICAvLyBoYW5kYmFjayBpbmRpY2F0ZXMgdGhhdCBhIHNlcnZlciBzaG91bGQg
cGF1c2UgdGhlIGhhbmRzaGFrZSBhZnRlcgogICAvLyBmaW5pc2hpbmcgb3BlcmF0aW9ucyB0aGF0
IHJlcXVpcmUgcHJpdmF0ZSBrZXkgbWF0ZXJpYWwsIGluIHN1Y2ggYSB3YXkgdGhhdAotICAvLyB8
U1NMX2dldF9lcnJvcnwgcmV0dXJucyB8U1NMX0hBTkRCQUNLfC4gIEl0IGlzIHNldCBieSB8U1NM
X2FwcGx5X2hhbmRvZmZ8LgorICAvLyB8U1NMX2dldF9lcnJvcnwgcmV0dXJucyB8U1NMX0VSUk9S
X0hBTkRCQUNLfC4gIEl0IGlzIHNldCBieQorICAvLyB8U1NMX2FwcGx5X2hhbmRvZmZ8LgogICBi
b29sIGhhbmRiYWNrIDogMTsKIAogICAvLyBjZXJ0X2NvbXByZXNzaW9uX25lZ290aWF0ZWQgaXMg
dHJ1ZSBpZmYgfGNlcnRfY29tcHJlc3Npb25fYWxnX2lkfCBpcyB2YWxpZC4KQEAgLTE2MTIsOCAr
MTY4NSw3IEBAIHN0cnVjdCBTU0xfSEFORFNIQUtFIHsKICAgLy8gcmVjb3JkIGxheWVyLgogICB1
aW50MTZfdCBlYXJseV9kYXRhX3dyaXR0ZW4gPSAwOwogCi0gIC8vIHNlc3Npb25faWQgaXMgdGhl
IHNlc3Npb24gSUQgaW4gdGhlIENsaWVudEhlbGxvLCB1c2VkIGZvciB0aGUgZXhwZXJpbWVudGFs
Ci0gIC8vIFRMUyAxLjMgdmFyaWFudC4KKyAgLy8gc2Vzc2lvbl9pZCBpcyB0aGUgc2Vzc2lvbiBJ
RCBpbiB0aGUgQ2xpZW50SGVsbG8uCiAgIHVpbnQ4X3Qgc2Vzc2lvbl9pZFtTU0xfTUFYX1NTTF9T
RVNTSU9OX0lEX0xFTkdUSF0gPSB7MH07CiAgIHVpbnQ4X3Qgc2Vzc2lvbl9pZF9sZW4gPSAwOwog
CkBAIC0xNjQ3LDYgKzE3MTksMTEgQEAgY29uc3QgY2hhciAqc3NsX3NlcnZlcl9oYW5kc2hha2Vf
c3RhdGUoU1NMX0hBTkRTSEFLRSAqaHMpOwogY29uc3QgY2hhciAqdGxzMTNfY2xpZW50X2hhbmRz
aGFrZV9zdGF0ZShTU0xfSEFORFNIQUtFICpocyk7CiBjb25zdCBjaGFyICp0bHMxM19zZXJ2ZXJf
aGFuZHNoYWtlX3N0YXRlKFNTTF9IQU5EU0hBS0UgKmhzKTsKIAorLy8gdGxzMTNfYWRkX2tleV91
cGRhdGUgcXVldWVzIGEgS2V5VXBkYXRlIG1lc3NhZ2Ugb24gfHNzbHwuIFRoZQorLy8gfHVwZGF0
ZV9yZXF1ZXN0ZWR8IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHxTU0xfS0VZX1VQREFURV9SRVFV
RVNURUR8IG9yCisvLyB8U1NMX0tFWV9VUERBVEVfTk9UX1JFUVVFU1RFRHwuCitib29sIHRsczEz
X2FkZF9rZXlfdXBkYXRlKFNTTCAqc3NsLCBpbnQgdXBkYXRlX3JlcXVlc3RlZCk7CisKIC8vIHRs
czEzX3Bvc3RfaGFuZHNoYWtlIHByb2Nlc3NlcyBhIHBvc3QtaGFuZHNoYWtlIG1lc3NhZ2UuIEl0
IHJldHVybnMgdHJ1ZSBvbgogLy8gc3VjY2VzcyBhbmQgZmFsc2Ugb24gZmFpbHVyZS4KIGJvb2wg
dGxzMTNfcG9zdF9oYW5kc2hha2UoU1NMICpzc2wsIGNvbnN0IFNTTE1lc3NhZ2UgJm1zZyk7CkBA
IC0xNjg0LDcgKzE3NjEsOCBAQCBib29sIHNzbF9leHRfcHJlX3NoYXJlZF9rZXlfcGFyc2Vfc2Vy
dmVyaGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ0JTICpjb250ZW50cyk7CiBib29sIHNzbF9leHRfcHJlX3NoYXJl
ZF9rZXlfcGFyc2VfY2xpZW50aGVsbG8oCiAgICAgU1NMX0hBTkRTSEFLRSAqaHMsIENCUyAqb3V0
X3RpY2tldCwgQ0JTICpvdXRfYmluZGVycywKLSAgICB1aW50MzJfdCAqb3V0X29iZnVzY2F0ZWRf
dGlja2V0X2FnZSwgdWludDhfdCAqb3V0X2FsZXJ0LCBDQlMgKmNvbnRlbnRzKTsKKyAgICB1aW50
MzJfdCAqb3V0X29iZnVzY2F0ZWRfdGlja2V0X2FnZSwgdWludDhfdCAqb3V0X2FsZXJ0LAorICAg
IGNvbnN0IFNTTF9DTElFTlRfSEVMTE8gKmNsaWVudF9oZWxsbywgQ0JTICpjb250ZW50cyk7CiBi
b29sIHNzbF9leHRfcHJlX3NoYXJlZF9rZXlfYWRkX3NlcnZlcmhlbGxvKFNTTF9IQU5EU0hBS0Ug
KmhzLCBDQkIgKm91dCk7CiAKIC8vIHNzbF9pc19zY3RfbGlzdF92YWxpZCBkb2VzIGEgc2hhbGxv
dyBwYXJzZSBvZiB0aGUgU0NUIGxpc3QgaW4gfGNvbnRlbnRzfCBhbmQKQEAgLTE3NDYsMTQgKzE4
MjQsMTQgQEAgYm9vbCBzc2xfb3V0cHV0X2NlcnRfY2hhaW4oU1NMX0hBTkRTSEFLRSAqaHMpOwog
Ly8gU1NMS0VZTE9HRklMRSBmdW5jdGlvbnMuCiAKIC8vIHNzbF9sb2dfc2VjcmV0IGxvZ3MgfHNl
Y3JldHwgd2l0aCBsYWJlbCB8bGFiZWx8LCBpZiBsb2dnaW5nIGlzIGVuYWJsZWQgZm9yCi0vLyB8
c3NsfC4gSXQgcmV0dXJucyBvbmUgb24gc3VjY2VzcyBhbmQgemVybyBvbiBmYWlsdXJlLgotaW50
IHNzbF9sb2dfc2VjcmV0KGNvbnN0IFNTTCAqc3NsLCBjb25zdCBjaGFyICpsYWJlbCwgY29uc3Qg
dWludDhfdCAqc2VjcmV0LAotICAgICAgICAgICAgICAgICAgIHNpemVfdCBzZWNyZXRfbGVuKTsK
Ky8vIHxzc2x8LiBJdCByZXR1cm5zIHRydWUgb24gc3VjY2VzcyBhbmQgZmFsc2Ugb24gZmFpbHVy
ZS4KK2Jvb2wgc3NsX2xvZ19zZWNyZXQoY29uc3QgU1NMICpzc2wsIGNvbnN0IGNoYXIgKmxhYmVs
LAorICAgICAgICAgICAgICAgICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNlY3JldCk7CiAKIAog
Ly8gQ2xpZW50SGVsbG8gZnVuY3Rpb25zLgogCi1ib29sIHNzbF9jbGllbnRfaGVsbG9faW5pdChT
U0wgKnNzbCwgU1NMX0NMSUVOVF9IRUxMTyAqb3V0LAorYm9vbCBzc2xfY2xpZW50X2hlbGxvX2lu
aXQoY29uc3QgU1NMICpzc2wsIFNTTF9DTElFTlRfSEVMTE8gKm91dCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFNTTE1lc3NhZ2UgJm1zZyk7CiAKIGJvb2wgc3NsX2NsaWVudF9o
ZWxsb19nZXRfZXh0ZW5zaW9uKGNvbnN0IFNTTF9DTElFTlRfSEVMTE8gKmNsaWVudF9oZWxsbywK
QEAgLTE3ODksNiArMTg2NywxNSBAQCBib29sIHRsczFfZ2V0X2xlZ2FjeV9zaWduYXR1cmVfYWxn
b3JpdGhtKHVpbnQxNl90ICpvdXQsIGNvbnN0IEVWUF9QS0VZICpwa2V5KTsKIC8vIHN1cHBvcnRl
ZC4gSXQgcmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MgYW5kIGZhbHNlIG9uIGVycm9yLgogYm9vbCB0
bHMxX2Nob29zZV9zaWduYXR1cmVfYWxnb3JpdGhtKFNTTF9IQU5EU0hBS0UgKmhzLCB1aW50MTZf
dCAqb3V0KTsKIAorLy8gdGxzMV9nZXRfcGVlcl92ZXJpZnlfYWxnb3JpdGhtcyByZXR1cm5zIHRo
ZSBzaWduYXR1cmUgc2NoZW1lcyBmb3Igd2hpY2ggdGhlCisvLyBwZWVyIGluZGljYXRlZCBzdXBw
b3J0LgorLy8KKy8vIE5PVEU6IFRoZSByZWxhdGVkIGZ1bmN0aW9uIHxTU0xfZ2V0MF9wZWVyX3Zl
cmlmeV9hbGdvcml0aG1zfCBvbmx5IGhhcworLy8gd2VsbC1kZWZpbmVkIGJlaGF2aW9yIGR1cmlu
ZyB0aGUgY2FsbGJhY2tzIHNldCBieSB8U1NMX0NUWF9zZXRfY2VydF9jYnwgYW5kCisvLyB8U1NM
X0NUWF9zZXRfY2xpZW50X2NlcnRfY2J8LCBvciB3aGVuIHRoZSBoYW5kc2hha2UgaXMgcGF1c2Vk
IGJlY2F1c2Ugb2YKKy8vIHRoZW0uCitTcGFuPGNvbnN0IHVpbnQxNl90PiB0bHMxX2dldF9wZWVy
X3ZlcmlmeV9hbGdvcml0aG1zKGNvbnN0IFNTTF9IQU5EU0hBS0UgKmhzKTsKKwogLy8gdGxzMTJf
YWRkX3ZlcmlmeV9zaWdhbGdzIGFkZHMgdGhlIHNpZ25hdHVyZSBhbGdvcml0aG1zIGFjY2VwdGFi
bGUgZm9yIHRoZQogLy8gcGVlciBzaWduYXR1cmUgdG8gfG91dHwuIEl0IHJldHVybnMgdHJ1ZSBv
biBzdWNjZXNzIGFuZCBmYWxzZSBvbiBlcnJvci4gSWYKIC8vIHxmb3JfY2VydHN8IGlzIHRydWUs
IHRoZSBwb3RlbnRpYWxseSBtb3JlIHJlc3RyaWN0aXZlIGxpc3Qgb2YgYWxnb3JpdGhtcyBmb3IK
QEAgLTE4ODIsNiArMTk2OSwxOSBAQCBzdHJ1Y3QgQ0VSVCB7CiAgIC8vIHRpY2tldCBrZXkuIE9u
bHkgc2Vzc2lvbnMgd2l0aCBhIG1hdGNoaW5nIHZhbHVlIHdpbGwgYmUgYWNjZXB0ZWQuCiAgIHVp
bnQ4X3Qgc2lkX2N0eF9sZW5ndGggPSAwOwogICB1aW50OF90IHNpZF9jdHhbU1NMX01BWF9TSURf
Q1RYX0xFTkdUSF0gPSB7MH07CisKKyAgLy8gRGVsZWdhdGVkIGNyZWRlbnRpYWxzLgorCisgIC8v
IGRjIGlzIHRoZSBkZWxlZ2F0ZWQgY3JlZGVudGlhbCB0byBzZW5kIHRvIHRoZSBwZWVyIChpZiBy
ZXF1ZXN0ZWQpLgorICBVbmlxdWVQdHI8REM+IGRjID0gbnVsbHB0cjsKKworICAvLyBkY19wcml2
YXRla2V5IGlzIHVzZWQgaW5zdGVhZCBvZiB8cHJpdmF0ZWtleXwgb3IgfGtleV9tZXRob2R8IHRv
CisgIC8vIGF1dGhlbnRpY2F0ZSB0aGUgaG9zdCBpZiBhIGRlbGVnYXRlZCBjcmVkZW50aWFsIGlz
IHVzZWQgaW4gdGhlIGhhbmRzaGFrZS4KKyAgVW5pcXVlUHRyPEVWUF9QS0VZPiBkY19wcml2YXRl
a2V5ID0gbnVsbHB0cjsKKworICAvLyBkY19rZXlfbWV0aG9kLCBpZiBub3QgTlVMTCwgaXMgdXNl
ZCBpbnN0ZWFkIG9mIHxkY19wcml2YXRla2V5fCB0bworICAvLyBhdXRoZW50aWNhdGUgdGhlIGhv
c3QuCisgIGNvbnN0IFNTTF9QUklWQVRFX0tFWV9NRVRIT0QgKmRjX2tleV9tZXRob2QgPSBudWxs
cHRyOwogfTsKIAogLy8gfFNTTF9QUk9UT0NPTF9NRVRIT0R8IGFic3RyYWN0cyBiZXR3ZWVuIFRM
UyBhbmQgRFRMUy4KQEAgLTE4OTEsNyArMTk5MSw3IEBAIHN0cnVjdCBTU0xfUFJPVE9DT0xfTUVU
SE9EIHsKICAgdm9pZCAoKnNzbF9mcmVlKShTU0wgKnNzbCk7CiAgIC8vIGdldF9tZXNzYWdlIHNl
dHMgfCpvdXR8IHRvIHRoZSBjdXJyZW50IGhhbmRzaGFrZSBtZXNzYWdlIGFuZCByZXR1cm5zIHRy
dWUKICAgLy8gaWYgb25lIGhhcyBiZWVuIHJlY2VpdmVkLiBJdCByZXR1cm5zIGZhbHNlIGlmIG1v
cmUgaW5wdXQgaXMgbmVlZGVkLgotICBib29sICgqZ2V0X21lc3NhZ2UpKFNTTCAqc3NsLCBTU0xN
ZXNzYWdlICpvdXQpOworICBib29sICgqZ2V0X21lc3NhZ2UpKGNvbnN0IFNTTCAqc3NsLCBTU0xN
ZXNzYWdlICpvdXQpOwogICAvLyBuZXh0X21lc3NhZ2UgaXMgY2FsbGVkIHRvIHJlbGVhc2UgdGhl
IGN1cnJlbnQgaGFuZHNoYWtlIG1lc3NhZ2UuCiAgIHZvaWQgKCpuZXh0X21lc3NhZ2UpKFNTTCAq
c3NsKTsKICAgLy8gVXNlIHRoZSB8c3NsX29wZW5faGFuZHNoYWtlfCB3cmFwcGVyLgpAQCAtMTk2
Miw3ICsyMDYyLDcgQEAgc3RydWN0IFNTTF9YNTA5X01FVEhPRCB7CiAgIC8vIGNoZWNrX2NsaWVu
dF9DQV9saXN0IHJldHVybnMgb25lIGlmIHxuYW1lc3wgaXMgYSBnb29kIGxpc3Qgb2YgWC41MDkK
ICAgLy8gZGlzdGluZ3Vpc2hlZCBuYW1lcyBhbmQgemVybyBvdGhlcndpc2UuIFRoaXMgaXMgdXNl
ZCB0byBlbnN1cmUgdGhhdCB3ZSBjYW4KICAgLy8gcmVqZWN0IHVucGFyc2FibGUgdmFsdWVzIGF0
IGhhbmRzaGFrZSB0aW1lIHdoZW4gdXNpbmcgY3J5cHRvL3g1MDkuCi0gIGludCAoKmNoZWNrX2Ns
aWVudF9DQV9saXN0KShTVEFDS19PRihDUllQVE9fQlVGRkVSKSAqbmFtZXMpOworICBib29sICgq
Y2hlY2tfY2xpZW50X0NBX2xpc3QpKFNUQUNLX09GKENSWVBUT19CVUZGRVIpICpuYW1lcyk7CiAK
ICAgLy8gY2VydF9jbGVhciBmcmVlcyBhbmQgTlVMTHMgYWxsIFg1MDkgY2VydGlmaWNhdGUtcmVs
YXRlZCBzdGF0ZS4KICAgdm9pZCAoKmNlcnRfY2xlYXIpKENFUlQgKmNlcnQpOwpAQCAtMTk3OSwz
NSArMjA3OSwzNSBAQCBzdHJ1Y3QgU1NMX1g1MDlfTUVUSE9EIHsKIAogICAvLyBzZXNzaW9uX2Nh
Y2hlX29iamVjdHMgZmlsbHMgb3V0IHxzZXNzLT54NTA5X3BlZXJ8IGFuZCB8c2Vzcy0+eDUwOV9j
aGFpbnwKICAgLy8gZnJvbSB8c2Vzcy0+Y2VydHN8IGFuZCBlcmFzZXMgfHNlc3MtPng1MDlfY2hh
aW5fd2l0aG91dF9sZWFmfC4gSXQgcmV0dXJucwotICAvLyBvbmUgb24gc3VjY2VzcyBvciB6ZXJv
IG9uIGVycm9yLgotICBpbnQgKCpzZXNzaW9uX2NhY2hlX29iamVjdHMpKFNTTF9TRVNTSU9OICpz
ZXNzaW9uKTsKKyAgLy8gdHJ1ZSBvbiBzdWNjZXNzIG9yIGZhbHNlIG9uIGVycm9yLgorICBib29s
ICgqc2Vzc2lvbl9jYWNoZV9vYmplY3RzKShTU0xfU0VTU0lPTiAqc2Vzc2lvbik7CiAgIC8vIHNl
c3Npb25fZHVwIGR1cGxpY2F0ZXMgYW55IG5lZWRlZCBmaWVsZHMgZnJvbSB8c2Vzc2lvbnwgdG8g
fG5ld19zZXNzaW9ufC4KLSAgLy8gSXQgcmV0dXJucyBvbmUgb24gc3VjY2VzcyBvciB6ZXJvIG9u
IGVycm9yLgotICBpbnQgKCpzZXNzaW9uX2R1cCkoU1NMX1NFU1NJT04gKm5ld19zZXNzaW9uLCBj
b25zdCBTU0xfU0VTU0lPTiAqc2Vzc2lvbik7CisgIC8vIEl0IHJldHVybnMgdHJ1ZSBvbiBzdWNj
ZXNzIG9yIGZhbHNlIG9uIGVycm9yLgorICBib29sICgqc2Vzc2lvbl9kdXApKFNTTF9TRVNTSU9O
ICpuZXdfc2Vzc2lvbiwgY29uc3QgU1NMX1NFU1NJT04gKnNlc3Npb24pOwogICAvLyBzZXNzaW9u
X2NsZWFyIGZyZWVzIGFueSBYNTA5LXJlbGF0ZWQgc3RhdGUgZnJvbSB8c2Vzc2lvbnwuCiAgIHZv
aWQgKCpzZXNzaW9uX2NsZWFyKShTU0xfU0VTU0lPTiAqc2Vzc2lvbik7CiAgIC8vIHNlc3Npb25f
dmVyaWZ5X2NlcnRfY2hhaW4gdmVyaWZpZXMgdGhlIGNlcnRpZmljYXRlIGNoYWluIGluIHxzZXNz
aW9ufCwKLSAgLy8gc2V0cyB8c2Vzc2lvbi0+dmVyaWZ5X3Jlc3VsdHwgYW5kIHJldHVybnMgb25l
IG9uIHN1Y2Nlc3Mgb3IgemVybyBvbgorICAvLyBzZXRzIHxzZXNzaW9uLT52ZXJpZnlfcmVzdWx0
fCBhbmQgcmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3Mgb3IgZmFsc2Ugb24KICAgLy8gZXJyb3IuCi0g
IGludCAoKnNlc3Npb25fdmVyaWZ5X2NlcnRfY2hhaW4pKFNTTF9TRVNTSU9OICpzZXNzaW9uLCBT
U0xfSEFORFNIQUtFICpzc2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQ4X3QgKm91dF9hbGVydCk7CisgIGJvb2wgKCpzZXNzaW9uX3ZlcmlmeV9jZXJ0X2NoYWluKShT
U0xfU0VTU0lPTiAqc2Vzc2lvbiwgU1NMX0hBTkRTSEFLRSAqc3NsLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0X2FsZXJ0KTsKIAogICAvLyBoc19mbHVz
aF9jYWNoZWRfY2FfbmFtZXMgZHJvcHMgYW55IGNhY2hlZCB8WDUwOV9OQU1FfHMgZnJvbSB8aHN8
LgogICB2b2lkICgqaHNfZmx1c2hfY2FjaGVkX2NhX25hbWVzKShTU0xfSEFORFNIQUtFICpocyk7
Ci0gIC8vIHNzbF9uZXcgZG9lcyBhbnkgbmVjY2Vzc2FyeSBpbml0aWFsaXNhdGlvbiBvZiB8aHN8
LiBJdCByZXR1cm5zIG9uZSBvbgotICAvLyBzdWNjZXNzIG9yIHplcm8gb24gZXJyb3IuCi0gIGlu
dCAoKnNzbF9uZXcpKFNTTF9IQU5EU0hBS0UgKmhzKTsKKyAgLy8gc3NsX25ldyBkb2VzIGFueSBu
ZWNlc3NhcnkgaW5pdGlhbGlzYXRpb24gb2YgfGhzfC4gSXQgcmV0dXJucyB0cnVlIG9uCisgIC8v
IHN1Y2Nlc3Mgb3IgZmFsc2Ugb24gZXJyb3IuCisgIGJvb2wgKCpzc2xfbmV3KShTU0xfSEFORFNI
QUtFICpocyk7CiAgIC8vIHNzbF9mcmVlIGZyZWVzIGFueXRoaW5nIGNyZWF0ZWQgYnkgfHNzbF9u
ZXd8LgogICB2b2lkICgqc3NsX2NvbmZpZ19mcmVlKShTU0xfQ09ORklHICpjZmcpOwogICAvLyBz
c2xfZmx1c2hfY2FjaGVkX2NsaWVudF9DQSBkcm9wcyBhbnkgY2FjaGVkIHxYNTA5X05BTUV8cyBm
cm9tIHxzc2x8LgogICB2b2lkICgqc3NsX2ZsdXNoX2NhY2hlZF9jbGllbnRfQ0EpKFNTTF9DT05G
SUcgKmNmZyk7CiAgIC8vIHNzbF9hdXRvX2NoYWluX2lmX25lZWRlZCBydW5zIHRoZSBkZXByZWNh
dGVkIGF1dG8tY2hhaW5pbmcgbG9naWMgaWYKICAgLy8gbmVjZXNzYXJ5LiBPbiBzdWNjZXNzLCBp
dCB1cGRhdGVzIHxzc2x8J3MgY2VydGlmaWNhdGUgY29uZmlndXJhdGlvbiBhcwotICAvLyBuZWVk
ZWQgYW5kIHJldHVybnMgb25lLiBPdGhlcndpc2UsIGl0IHJldHVybnMgemVyby4KLSAgaW50ICgq
c3NsX2F1dG9fY2hhaW5faWZfbmVlZGVkKShTU0xfSEFORFNIQUtFICpocyk7Ci0gIC8vIHNzbF9j
dHhfbmV3IGRvZXMgYW55IG5lY2Nlc3NhcnkgaW5pdGlhbGlzYXRpb24gb2YgfGN0eHwuIEl0IHJl
dHVybnMgb25lIG9uCi0gIC8vIHN1Y2Nlc3Mgb3IgemVybyBvbiBlcnJvci4KLSAgaW50ICgqc3Ns
X2N0eF9uZXcpKFNTTF9DVFggKmN0eCk7CisgIC8vIG5lZWRlZCBhbmQgcmV0dXJucyB0cnVlLiBP
dGhlcndpc2UsIGl0IHJldHVybnMgZmFsc2UuCisgIGJvb2wgKCpzc2xfYXV0b19jaGFpbl9pZl9u
ZWVkZWQpKFNTTF9IQU5EU0hBS0UgKmhzKTsKKyAgLy8gc3NsX2N0eF9uZXcgZG9lcyBhbnkgbmVj
ZXNzYXJ5IGluaXRpYWxpc2F0aW9uIG9mIHxjdHh8LiBJdCByZXR1cm5zIHRydWUgb24KKyAgLy8g
c3VjY2VzcyBvciBmYWxzZSBvbiBlcnJvci4KKyAgYm9vbCAoKnNzbF9jdHhfbmV3KShTU0xfQ1RY
ICpjdHgpOwogICAvLyBzc2xfY3R4X2ZyZWUgZnJlZXMgYW55dGhpbmcgY3JlYXRlZCBieSB8c3Ns
X2N0eF9uZXd8LgogICB2b2lkICgqc3NsX2N0eF9mcmVlKShTU0xfQ1RYICpjdHgpOwogICAvLyBz
c2xfY3R4X2ZsdXNoX2NhY2hlZF9jbGllbnRfQ0EgZHJvcHMgYW55IGNhY2hlZCB8WDUwOV9OQU1F
fHMgZnJvbSB8Y3R4fC4KQEAgLTIwNDcsNyArMjE0Nyw3IEBAIEJTU0xfTkFNRVNQQUNFX0VORAog
CiBERUZJTkVfTEhBU0hfT0YoU1NMX1NFU1NJT04pCiAKLURFRklORV9OQU1FRF9TVEFDS19PRihD
ZXJ0Q29tcHJlc3Npb25BbGcsIGJzc2w6OkNlcnRDb21wcmVzc2lvbkFsZyk7CitERUZJTkVfTkFN
RURfU1RBQ0tfT0YoQ2VydENvbXByZXNzaW9uQWxnLCBic3NsOjpDZXJ0Q29tcHJlc3Npb25BbGcp
CiAKIEJTU0xfTkFNRVNQQUNFX0JFR0lOCiAKQEAgLTIwOTcsMTQgKzIxOTcsMTIgQEAgc3RydWN0
IFNTTDNfU1RBVEUgewogICAvLyB0aGUgcmVjZWl2ZSBoYWxmIG9mIHRoZSBjb25uZWN0aW9uLgog
ICBVbmlxdWVQdHI8RVJSX1NBVkVfU1RBVEU+IHJlYWRfZXJyb3I7CiAKLSAgaW50IGFsZXJ0X2Rp
c3BhdGNoID0gMDsKLQogICBpbnQgdG90YWxfcmVuZWdvdGlhdGlvbnMgPSAwOwogCiAgIC8vIFRo
aXMgaG9sZHMgYSB2YXJpYWJsZSB0aGF0IGluZGljYXRlcyB3aGF0IHdlIHdlcmUgZG9pbmcgd2hl
biBhIDAgb3IgLTEgaXMKICAgLy8gcmV0dXJuZWQuICBUaGlzIGlzIG5lZWRlZCBmb3Igbm9uLWJs
b2NraW5nIElPIHNvIHdlIGtub3cgd2hhdCByZXF1ZXN0CiAgIC8vIG5lZWRzIHJlLWRvaW5nIHdo
ZW4gaW4gU1NMX2FjY2VwdCBvciBTU0xfY29ubmVjdAotICBpbnQgcndzdGF0ZSA9IFNTTF9OT1RI
SU5HOworICBpbnQgcndzdGF0ZSA9IFNTTF9FUlJPUl9OT05FOwogCiAgIGVudW0gc3NsX2VuY3J5
cHRpb25fbGV2ZWxfdCByZWFkX2xldmVsID0gc3NsX2VuY3J5cHRpb25faW5pdGlhbDsKICAgZW51
bSBzc2xfZW5jcnlwdGlvbl9sZXZlbF90IHdyaXRlX2xldmVsID0gc3NsX2VuY3J5cHRpb25faW5p
dGlhbDsKQEAgLTIxNTQsNiArMjI1MiwxMCBAQCBzdHJ1Y3QgU1NMM19TVEFURSB7CiAgIC8vIHNl
c3Npb25fcmV1c2VkIGluZGljYXRlcyB3aGV0aGVyIGEgc2Vzc2lvbiB3YXMgcmVzdW1lZC4KICAg
Ym9vbCBzZXNzaW9uX3JldXNlZCA6IDE7CiAKKyAgLy8gZGVsZWdhdGVkX2NyZWRlbnRpYWxfdXNl
ZCBpcyB3aGV0aGVyIHdlIHByZXNlbnRlZCBhIGRlbGVnYXRlZCBjcmVkZW50aWFsIHRvCisgIC8v
IHRoZSBwZWVyLgorICBib29sIGRlbGVnYXRlZF9jcmVkZW50aWFsX3VzZWQgOiAxOworCiAgIGJv
b2wgc2VuZF9jb25uZWN0aW9uX2JpbmRpbmcgOiAxOwogCiAgIC8vIEluIGEgY2xpZW50LCB0aGlz
IG1lYW5zIHRoYXQgdGhlIHNlcnZlciBzdXBwb3J0ZWQgQ2hhbm5lbCBJRCBhbmQgdGhhdCBhCkBA
IC0yMTc3LDYgKzIyNzksMTMgQEAgc3RydWN0IFNTTDNfU1RBVEUgewogICAvLyB0b2tlbl9iaW5k
aW5nX25lZ290aWF0ZWQgaXMgc2V0IGlmIFRva2VuIEJpbmRpbmcgd2FzIG5lZ290aWF0ZWQuCiAg
IGJvb2wgdG9rZW5fYmluZGluZ19uZWdvdGlhdGVkIDogMTsKIAorICAvLyBwcV9leHBlcmltZW50
YWxfc2lnbmFsX3NlZW4gaXMgdHJ1ZSBpZiB0aGUgcGVlciB3YXMgb2JzZXJ2ZWQKKyAgLy8gc2Vu
ZGluZy9lY2hvaW5nIHRoZSBwb3N0LXF1YW50dW0gZXhwZXJpbWVudCBzaWduYWwuCisgIGJvb2wg
cHFfZXhwZXJpbWVudF9zaWduYWxfc2VlbiA6IDE7CisKKyAgLy8gYWxlcnRfZGlzcGF0Y2ggaXMg
dHJ1ZSB0aGVyZSBpcyBhbiBhbGVydCBpbiB8c2VuZF9hbGVydHwgdG8gYmUgc2VudC4KKyAgYm9v
bCBhbGVydF9kaXNwYXRjaCA6IDE7CisKICAgLy8gaHNfYnVmIGlzIHRoZSBidWZmZXIgb2YgaGFu
ZHNoYWtlIGRhdGEgdG8gcHJvY2Vzcy4KICAgVW5pcXVlUHRyPEJVRl9NRU0+IGhzX2J1ZjsKIApA
QCAtMjE5OSw2ICsyMzA4LDkgQEAgc3RydWN0IFNTTDNfU1RBVEUgewogICAvLyB3aGljaCByZXN1
bWVkIGEgc2Vzc2lvbi4KICAgaW50MzJfdCB0aWNrZXRfYWdlX3NrZXcgPSAwOwogCisgIC8vIHNz
bF9lYXJseV9kYXRhX3JlYXNvbiBzdG9yZXMgZGV0YWlscyBvbiB3aHkgMC1SVFQgd2FzIGFjY2Vw
dGVkIG9yIHJlamVjdGVkLgorICBlbnVtIHNzbF9lYXJseV9kYXRhX3JlYXNvbl90IGVhcmx5X2Rh
dGFfcmVhc29uID0gc3NsX2Vhcmx5X2RhdGFfdW5rbm93bjsKKwogICAvLyBhZWFkX3JlYWRfY3R4
IGlzIHRoZSBjdXJyZW50IHJlYWQgY2lwaGVyIHN0YXRlLgogICBVbmlxdWVQdHI8U1NMQUVBRENv
bnRleHQ+IGFlYWRfcmVhZF9jdHg7CiAKQEAgLTIyMDksMTQgKzIzMjEsMTIgQEAgc3RydWN0IFNT
TDNfU1RBVEUgewogICAvLyBvbmUuCiAgIFVuaXF1ZVB0cjxTU0xfSEFORFNIQUtFPiBoczsKIAot
ICB1aW50OF90IHdyaXRlX3RyYWZmaWNfc2VjcmV0W0VWUF9NQVhfTURfU0laRV0gPSB7MH07Ci0g
IHVpbnQ4X3QgcmVhZF90cmFmZmljX3NlY3JldFtFVlBfTUFYX01EX1NJWkVdID0gezB9OwotICB1
aW50OF90IGV4cG9ydGVyX3NlY3JldFtFVlBfTUFYX01EX1NJWkVdID0gezB9OwotICB1aW50OF90
IGVhcmx5X2V4cG9ydGVyX3NlY3JldFtFVlBfTUFYX01EX1NJWkVdID0gezB9OworICB1aW50OF90
IHdyaXRlX3RyYWZmaWNfc2VjcmV0W1NTTF9NQVhfTURfU0laRV0gPSB7MH07CisgIHVpbnQ4X3Qg
cmVhZF90cmFmZmljX3NlY3JldFtTU0xfTUFYX01EX1NJWkVdID0gezB9OworICB1aW50OF90IGV4
cG9ydGVyX3NlY3JldFtTU0xfTUFYX01EX1NJWkVdID0gezB9OwogICB1aW50OF90IHdyaXRlX3Ry
YWZmaWNfc2VjcmV0X2xlbiA9IDA7CiAgIHVpbnQ4X3QgcmVhZF90cmFmZmljX3NlY3JldF9sZW4g
PSAwOwogICB1aW50OF90IGV4cG9ydGVyX3NlY3JldF9sZW4gPSAwOwotICB1aW50OF90IGVhcmx5
X2V4cG9ydGVyX3NlY3JldF9sZW4gPSAwOwogCiAgIC8vIENvbm5lY3Rpb24gYmluZGluZyB0byBw
cmV2ZW50IHJlbmVnb3RpYXRpb24gYXR0YWNrcwogICB1aW50OF90IHByZXZpb3VzX2NsaWVudF9m
aW5pc2hlZFsxMl0gPSB7MH07CkBAIC0yMzk3LDE0ICsyNTA3LDE0IEBAIHN0cnVjdCBTU0xfQ09O
RklHIHsKICAgLy8gc3NsIGlzIGEgbm9uLW93bmluZyBwb2ludGVyIHRvIHRoZSBwYXJlbnQgfFNT
THwgb2JqZWN0LgogICBTU0wgKmNvbnN0IHNzbCA9IG51bGxwdHI7CiAKLSAgLy8gY29uZl9tYXhf
dmVyc2lvbiBpcyB0aGUgbWF4aW11bSBhY2NlcHRhYmxlIHByb3RvY29sIHZlcnNpb24gY29uZmln
dXJlZCBieQotICAvLyB8U1NMX3NldF9tYXhfcHJvdG9fdmVyc2lvbnwuIE5vdGUgdGhpcyB2ZXJz
aW9uIGlzIG5vcm1hbGl6ZWQgaW4gRFRMUyBhbmQgaXMKLSAgLy8gZnVydGhlciBjb25zdHJhaW50
ZWQgYnkgfFNTTF9PUF9OT18qfC4KKyAgLy8gY29uZl9tYXhfdmVyc2lvbiBpcyB0aGUgbWF4aW11
bSBhY2NlcHRhYmxlIHZlcnNpb24gY29uZmlndXJlZCBieQorICAvLyB8U1NMX3NldF9tYXhfcHJv
dG9fdmVyc2lvbnwuIE5vdGUgdGhpcyB2ZXJzaW9uIGlzIG5vdCBub3JtYWxpemVkIGluIERUTFMK
KyAgLy8gYW5kIGlzIGZ1cnRoZXIgY29uc3RyYWluZWQgYnkgfFNTTF9PUF9OT18qfC4KICAgdWlu
dDE2X3QgY29uZl9tYXhfdmVyc2lvbiA9IDA7CiAKLSAgLy8gY29uZl9taW5fdmVyc2lvbiBpcyB0
aGUgbWluaW11bSBhY2NlcHRhYmxlIHByb3RvY29sIHZlcnNpb24gY29uZmlndXJlZCBieQotICAv
LyB8U1NMX3NldF9taW5fcHJvdG9fdmVyc2lvbnwuIE5vdGUgdGhpcyB2ZXJzaW9uIGlzIG5vcm1h
bGl6ZWQgaW4gRFRMUyBhbmQgaXMKLSAgLy8gZnVydGhlciBjb25zdHJhaW50ZWQgYnkgfFNTTF9P
UF9OT18qfC4KKyAgLy8gY29uZl9taW5fdmVyc2lvbiBpcyB0aGUgbWluaW11bSBhY2NlcHRhYmxl
IHZlcnNpb24gY29uZmlndXJlZCBieQorICAvLyB8U1NMX3NldF9taW5fcHJvdG9fdmVyc2lvbnwu
IE5vdGUgdGhpcyB2ZXJzaW9uIGlzIG5vdCBub3JtYWxpemVkIGluIERUTFMKKyAgLy8gYW5kIGlz
IGZ1cnRoZXIgY29uc3RyYWluZWQgYnkgfFNTTF9PUF9OT18qfC4KICAgdWludDE2X3QgY29uZl9t
aW5fdmVyc2lvbiA9IDA7CiAKICAgWDUwOV9WRVJJRllfUEFSQU0gKnBhcmFtID0gbnVsbHB0cjsK
QEAgLTI0NzcsNiArMjU4NywxMSBAQCBzdHJ1Y3QgU1NMX0NPTkZJRyB7CiAgIC8vIGFkdmVydGlz
ZSBzdXBwb3J0LgogICBib29sIGNoYW5uZWxfaWRfZW5hYmxlZCA6IDE7CiAKKyAgLy8gSWYgZW5m
b3JjZV9yc2Ffa2V5X3VzYWdlIGlzIHRydWUsIHRoZSBoYW5kc2hha2Ugd2lsbCBmYWlsIGlmIHRo
ZQorICAvLyBrZXlVc2FnZSBleHRlbnNpb24gaXMgcHJlc2VudCBhbmQgaW5jb21wYXRpYmxlIHdp
dGggdGhlIFRMUyB1c2FnZS4KKyAgLy8gVGhpcyBmaWVsZCBpcyBub3QgcmVhZCB1bnRpbCBhZnRl
ciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24uCisgIGJvb2wgZW5mb3JjZV9yc2Ffa2V5X3VzYWdl
IDogMTsKKwogICAvLyByZXRhaW5fb25seV9zaGEyNTZfb2ZfY2xpZW50X2NlcnRzIGlzIHRydWUg
aWYgd2Ugc2hvdWxkIGNvbXB1dGUgdGhlIFNIQTI1NgogICAvLyBoYXNoIG9mIHRoZSBwZWVyJ3Mg
Y2VydGlmaWNhdGUgYW5kIHRoZW4gZGlzY2FyZCBpdCB0byBzYXZlIG1lbW9yeSBhbmQKICAgLy8g
c2Vzc2lvbiBzcGFjZS4gT25seSBlZmZlY3RpdmUgb24gdGhlIHNlcnZlciBzaWRlLgpAQCAtMjQ4
NCw3ICsyNTk5LDcgQEAgc3RydWN0IFNTTF9DT05GSUcgewogCiAgIC8vIGhhbmRvZmYgaW5kaWNh
dGVzIHRoYXQgYSBzZXJ2ZXIgc2hvdWxkIHN0b3AgYWZ0ZXIgcmVjZWl2aW5nIHRoZQogICAvLyBD
bGllbnRIZWxsbyBhbmQgcGF1c2UgdGhlIGhhbmRzaGFrZSBpbiBzdWNoIGEgd2F5IHRoYXQgfFNT
TF9nZXRfZXJyb3J8Ci0gIC8vIHJldHVybnMgfFNTTF9IQU5ET0ZGfC4gVGhpcyBpcyBjb3BpZWQg
aW4gfFNTTF9uZXd8IGZyb20gdGhlIHxTU0xfQ1RYfAorICAvLyByZXR1cm5zIHxTU0xfRVJST1Jf
SEFORE9GRnwuIFRoaXMgaXMgY29waWVkIGluIHxTU0xfbmV3fCBmcm9tIHRoZSB8U1NMX0NUWHwK
ICAgLy8gZWxlbWVudCBvZiB0aGUgc2FtZSBuYW1lIGFuZCBtYXkgYmUgY2xlYXJlZCBpZiB0aGUg
aGFuZG9mZiBpcyBkZWNsaW5lZC4KICAgYm9vbCBoYW5kb2ZmIDogMTsKIApAQCAtMjUwNCwxMCAr
MjYxOSw2IEBAIHN0cnVjdCBTU0xfQ09ORklHIHsKIC8vIEZyb20gUkZDIDg0NDYsIHVzZWQgaW4g
ZGV0ZXJtaW5pbmcgUFNLIG1vZGVzLgogI2RlZmluZSBTU0xfUFNLX0RIRV9LRSAweDEKIAotLy8g
RnJvbSBSRkMgODQ0NiwgdXNlZCBpbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRvIHJlc3BvbmQgd2l0
aCBhIEtleVVwZGF0ZS4KLSNkZWZpbmUgU1NMX0tFWV9VUERBVEVfTk9UX1JFUVVFU1RFRCAwCi0j
ZGVmaW5lIFNTTF9LRVlfVVBEQVRFX1JFUVVFU1RFRCAxCi0KIC8vIGtNYXhFYXJseURhdGFBY2Nl
cHRlZCBpcyB0aGUgYWR2ZXJ0aXNlZCBudW1iZXIgb2YgcGxhaW50ZXh0IGJ5dGVzIG9mIGVhcmx5
CiAvLyBkYXRhIHRoYXQgd2lsbCBiZSBhY2NlcHRlZC4gVGhpcyB2YWx1ZSBzaG91bGQgYmUgc2xp
Z2h0bHkgYmVsb3cKIC8vIGtNYXhFYXJseURhdGFTa2lwcGVkIGluIHRsc19yZWNvcmQuYywgd2hp
Y2ggaXMgbWVhc3VyZWQgaW4gY2lwaGVydGV4dC4KQEAgLTI2MDYsOCArMjcxNyw5IEBAIHZvaWQg
c3NsX3Nlc3Npb25fcmVuZXdfdGltZW91dChTU0wgKnNzbCwgU1NMX1NFU1NJT04gKnNlc3Npb24s
CiAKIHZvaWQgc3NsX3VwZGF0ZV9jYWNoZShTU0xfSEFORFNIQUtFICpocywgaW50IG1vZGUpOwog
Ci1pbnQgc3NsX3NlbmRfYWxlcnQoU1NMICpzc2wsIGludCBsZXZlbCwgaW50IGRlc2MpOwotYm9v
bCBzc2wzX2dldF9tZXNzYWdlKFNTTCAqc3NsLCBTU0xNZXNzYWdlICpvdXQpOwordm9pZCBzc2xf
c2VuZF9hbGVydChTU0wgKnNzbCwgaW50IGxldmVsLCBpbnQgZGVzYyk7CitpbnQgc3NsX3NlbmRf
YWxlcnRfaW1wbChTU0wgKnNzbCwgaW50IGxldmVsLCBpbnQgZGVzYyk7Citib29sIHNzbDNfZ2V0
X21lc3NhZ2UoY29uc3QgU1NMICpzc2wsIFNTTE1lc3NhZ2UgKm91dCk7CiBzc2xfb3Blbl9yZWNv
cmRfdCBzc2wzX29wZW5faGFuZHNoYWtlKFNTTCAqc3NsLCBzaXplX3QgKm91dF9jb25zdW1lZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0X2FsZXJ0
LCBTcGFuPHVpbnQ4X3Q+IGluKTsKIHZvaWQgc3NsM19uZXh0X21lc3NhZ2UoU1NMICpzc2wpOwpA
QCAtMjY3Myw3ICsyNzg1LDcgQEAgdW5zaWduZWQgaW50IGR0bHMxX21pbl9tdHUodm9pZCk7CiBi
b29sIGR0bHMxX25ldyhTU0wgKnNzbCk7CiB2b2lkIGR0bHMxX2ZyZWUoU1NMICpzc2wpOwogCi1i
b29sIGR0bHMxX2dldF9tZXNzYWdlKFNTTCAqc3NsLCBTU0xNZXNzYWdlICpvdXQpOworYm9vbCBk
dGxzMV9nZXRfbWVzc2FnZShjb25zdCBTU0wgKnNzbCwgU1NMTWVzc2FnZSAqb3V0KTsKIHNzbF9v
cGVuX3JlY29yZF90IGR0bHMxX29wZW5faGFuZHNoYWtlKFNTTCAqc3NsLCBzaXplX3QgKm91dF9j
b25zdW1lZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg
Km91dF9hbGVydCwgU3Bhbjx1aW50OF90PiBpbik7CiB2b2lkIGR0bHMxX25leHRfbWVzc2FnZShT
U0wgKnNzbCk7CkBAIC0yODMyLDEwICsyOTQ0LDYgQEAgc3RydWN0IHNzbF9jdHhfc3QgewogICAv
LyBxdWljX21ldGhvZCBpcyB0aGUgbWV0aG9kIHRhYmxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIFFV
SUMgaG9va3MuCiAgIGNvbnN0IFNTTF9RVUlDX01FVEhPRCAqcXVpY19tZXRob2QgPSBudWxscHRy
OwogCi0gIC8vIHRsczEzX3ZhcmlhbnQgaXMgdGhlIHZhcmlhbnQgb2YgVExTIDEuMyB3ZSBhcmUg
dXNpbmcgZm9yIHRoaXMKLSAgLy8gY29uZmlndXJhdGlvbi4KLSAgdGxzMTNfdmFyaWFudF90IHRs
czEzX3ZhcmlhbnQgPSB0bHMxM19yZmM7Ci0KICAgYnNzbDo6VW5pcXVlUHRyPGJzc2w6OlNTTENp
cGhlclByZWZlcmVuY2VMaXN0PiBjaXBoZXJfbGlzdDsKIAogICBYNTA5X1NUT1JFICpjZXJ0X3N0
b3JlID0gbnVsbHB0cjsKQEAgLTMxMDAsMTIgKzMyMDgsMTcgQEAgc3RydWN0IHNzbF9jdHhfc3Qg
ewogCiAgIC8vIGhhbmRvZmYgaW5kaWNhdGVzIHRoYXQgYSBzZXJ2ZXIgc2hvdWxkIHN0b3AgYWZ0
ZXIgcmVjZWl2aW5nIHRoZQogICAvLyBDbGllbnRIZWxsbyBhbmQgcGF1c2UgdGhlIGhhbmRzaGFr
ZSBpbiBzdWNoIGEgd2F5IHRoYXQgfFNTTF9nZXRfZXJyb3J8Ci0gIC8vIHJldHVybnMgfFNTTF9I
QU5ET0ZGfC4KKyAgLy8gcmV0dXJucyB8U1NMX0VSUk9SX0hBTkRPRkZ8LgogICBib29sIGhhbmRv
ZmYgOiAxOwogCiAgIC8vIElmIGVuYWJsZV9lYXJseV9kYXRhIGlzIHRydWUsIGVhcmx5IGRhdGEg
Y2FuIGJlIHNlbnQgYW5kIGFjY2VwdGVkLgogICBib29sIGVuYWJsZV9lYXJseV9kYXRhIDogMTsK
IAorICAvLyBwcV9leHBlcmltZW50X3NpZ25hbCBpbmRpY2F0ZXMgdGhhdCBhbiBlbXB0eSBleHRl
bnNpb24gc2hvdWxkIGJlIHNlbnQKKyAgLy8gKGZvciBjbGllbnRzKSBvciBlY2hvZWQgKGZvciBz
ZXJ2ZXJzKSB0byBpbmRpY2F0ZSBwYXJ0aWNpcGF0aW9uIGluIGFuCisgIC8vIGV4cGVyaW1lbnQg
b2YgcG9zdC1xdWFudHVtIGtleSBleGNoYW5nZXMuCisgIGJvb2wgcHFfZXhwZXJpbWVudF9zaWdu
YWwgOiAxOworCiAgcHJpdmF0ZToKICAgfnNzbF9jdHhfc3QoKTsKICAgZnJpZW5kIHZvaWQgU1NM
X0NUWF9mcmVlKFNTTF9DVFggKik7CkBAIC0zMTYxLDEwICszMjc0LDYgQEAgc3RydWN0IHNzbF9z
dCB7CiAgIC8vIHNlY29uZC4KICAgdW5zaWduZWQgaW5pdGlhbF90aW1lb3V0X2R1cmF0aW9uX21z
ID0gMTAwMDsKIAotICAvLyB0bHMxM192YXJpYW50IGlzIHRoZSB2YXJpYW50IG9mIFRMUyAxLjMg
d2UgYXJlIHVzaW5nIGZvciB0aGlzCi0gIC8vIGNvbmZpZ3VyYXRpb24uCi0gIHRsczEzX3Zhcmlh
bnRfdCB0bHMxM192YXJpYW50ID0gdGxzMTNfcmZjOwotCiAgIC8vIHNlc3Npb24gaXMgdGhlIGNv
bmZpZ3VyZWQgc2Vzc2lvbiB0byBiZSBvZmZlcmVkIGJ5IHRoZSBjbGllbnQuIFRoaXMgc2Vzc2lv
bgogICAvLyBpcyBpbW11dGFibGUuCiAgIGJzc2w6OlVuaXF1ZVB0cjxTU0xfU0VTU0lPTj4gc2Vz
c2lvbjsKQEAgLTMxODUsNiArMzI5NCw5IEBAIHN0cnVjdCBzc2xfc3QgewogICB1aW50MzJfdCBt
YXhfY2VydF9saXN0ID0gMDsKICAgYnNzbDo6VW5pcXVlUHRyPGNoYXI+IGhvc3RuYW1lOwogCisg
IC8vIHF1aWNfbWV0aG9kIGlzIHRoZSBtZXRob2QgdGFibGUgY29ycmVzcG9uZGluZyB0byB0aGUg
UVVJQyBob29rcy4KKyAgY29uc3QgU1NMX1FVSUNfTUVUSE9EICpxdWljX21ldGhvZCA9IG51bGxw
dHI7CisKICAgLy8gcmVuZWdvdGlhdGVfbW9kZSBjb250cm9scyBob3cgcGVlciByZW5lZ290aWF0
aW9uIGF0dGVtcHRzIGFyZSBoYW5kbGVkLgogICBzc2xfcmVuZWdvdGlhdGVfbW9kZV90IHJlbmVn
b3RpYXRlX21vZGUgPSBzc2xfcmVuZWdvdGlhdGVfbmV2ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9z
c2wvczNfYm90aC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvczNfYm90aC5jYwppbmRleCBmODM1ZGMyNjRjYzYxNWI4
ODFjN2Q3MWYwYmJjYmNmMWExMmMxYTMxLi41OGYwZjhhODdlOTA2NTkxMmE0YzIxNzU3YWE2ZTEx
M2NhNDU5Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3MzX2JvdGguY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9z
M19ib3RoLmNjCkBAIC0xMTYsNiArMTE2LDggQEAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNs
dWRlIDxzdHJpbmcuaD4KIAorI2luY2x1ZGUgPHR1cGxlPgorCiAjaW5jbHVkZSA8b3BlbnNzbC9i
dWYuaD4KICNpbmNsdWRlIDxvcGVuc3NsL2J5dGVzdHJpbmcuaD4KICNpbmNsdWRlIDxvcGVuc3Ns
L2Vyci5oPgpAQCAtMTg4LDE0ICsxOTAsMTIgQEAgYm9vbCBzc2wzX2FkZF9tZXNzYWdlKFNTTCAq
c3NsLCBBcnJheTx1aW50OF90PiBtc2cpIHsKICAgLy8gdW5uZWNlc3NhcnkgZW5jcnlwdGlvbiBv
dmVyaGVhZCwgbm90YWJseSBpbiBUTFMgMS4zIHdoZXJlIHdlIHNlbmQgc2V2ZXJhbAogICAvLyBl
bmNyeXB0ZWQgbWVzc2FnZXMgaW4gYSByb3cuIEZvciBub3csIHdlIGRvIG5vdCBkbyB0aGlzIGZv
ciB0aGUgbnVsbAogICAvLyBjaXBoZXIuIFRoZSBiZW5lZml0IGlzIHNtYWxsZXIgYW5kIHRoZXJl
IGlzIGEgcmlzayBvZiBicmVha2luZyBidWdneQotICAvLyBpbXBsZW1lbnRhdGlvbnMuIEFkZGl0
aW9uYWxseSwgd2UgdGllIHRoaXMgdG8gZHJhZnQtMjggYXMgYSBzYW5pdHkgY2hlY2ssCi0gIC8v
IG9uIHRoZSBvZmYgY2hhbmNlIG1pZGRsZWJveGVzIGhhdmUgZml4YXRlZCBvbiBzaXplcy4KKyAg
Ly8gaW1wbGVtZW50YXRpb25zLgogICAvLwogICAvLyBUT0RPKGRhdmlkYmVuKTogU2VlIGlmIHdl
IGNhbiBkbyB0aGlzIHVuaWZvcm1seS4KICAgU3Bhbjxjb25zdCB1aW50OF90PiByZXN0ID0gbXNn
OwotICBpZiAoc3NsLT5jdHgtPnF1aWNfbWV0aG9kID09IG51bGxwdHIgJiYKLSAgICAgIChzc2wt
PnMzLT5hZWFkX3dyaXRlX2N0eC0+aXNfbnVsbF9jaXBoZXIoKSB8fAotICAgICAgIHNzbC0+dmVy
c2lvbiA9PSBUTFMxXzNfRFJBRlQyM19WRVJTSU9OKSkgeworICBpZiAoc3NsLT5xdWljX21ldGhv
ZCA9PSBudWxscHRyICYmCisgICAgICBzc2wtPnMzLT5hZWFkX3dyaXRlX2N0eC0+aXNfbnVsbF9j
aXBoZXIoKSkgewogICAgIHdoaWxlICghcmVzdC5lbXB0eSgpKSB7CiAgICAgICBTcGFuPGNvbnN0
IHVpbnQ4X3Q+IGNodW5rID0gcmVzdC5zdWJzcGFuKDAsIHNzbC0+bWF4X3NlbmRfZnJhZ21lbnQp
OwogICAgICAgcmVzdCA9IHJlc3Quc3Vic3BhbihjaHVuay5zaXplKCkpOwpAQCAtMjUwLDkgKzI1
MCw5IEBAIGJvb2wgdGxzX2ZsdXNoX3BlbmRpbmdfaHNfZGF0YShTU0wgKnNzbCkgewogICBhdXRv
IGRhdGEgPQogICAgICAgTWFrZUNvbnN0U3BhbihyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QgKj4ocGVuZGluZ19oc19kYXRhLT5kYXRhKSwKICAgICAgICAgICAgICAgICAgICAgcGVuZGlu
Z19oc19kYXRhLT5sZW5ndGgpOwotICBpZiAoc3NsLT5jdHgtPnF1aWNfbWV0aG9kKSB7Ci0gICAg
aWYgKCFzc2wtPmN0eC0+cXVpY19tZXRob2QtPmFkZF9oYW5kc2hha2VfZGF0YShzc2wsIHNzbC0+
czMtPndyaXRlX2xldmVsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSkgeworICBpZiAoc3NsLT5xdWlj
X21ldGhvZCkgeworICAgIGlmICghc3NsLT5xdWljX21ldGhvZC0+YWRkX2hhbmRzaGFrZV9kYXRh
KHNzbCwgc3NsLT5zMy0+d3JpdGVfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSkgewogICAgICAgT1BF
TlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9RVUlDX0lOVEVSTkFMX0VSUk9SKTsKICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CkBAIC0yNjksNyArMjY5LDcgQEAgYm9vbCBzc2wzX2FkZF9jaGFu
Z2VfY2lwaGVyX3NwZWMoU1NMICpzc2wpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAotICBp
ZiAoIXNzbC0+Y3R4LT5xdWljX21ldGhvZCAmJgorICBpZiAoIXNzbC0+cXVpY19tZXRob2QgJiYK
ICAgICAgICFhZGRfcmVjb3JkX3RvX2ZsaWdodChzc2wsIFNTTDNfUlRfQ0hBTkdFX0NJUEhFUl9T
UEVDLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDaGFuZ2VDaXBoZXJTcGVjKSkgewog
ICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NSwxMyArMjg1LDEzIEBAIGludCBzc2wzX2ZsdXNoX2Zs
aWdodChTU0wgKnNzbCkgewogICAgIHJldHVybiAtMTsKICAgfQogCi0gIGlmIChzc2wtPmN0eC0+
cXVpY19tZXRob2QpIHsKKyAgaWYgKHNzbC0+cXVpY19tZXRob2QpIHsKICAgICBpZiAoc3NsLT5z
My0+d3JpdGVfc2h1dGRvd24gIT0gc3NsX3NodXRkb3duX25vbmUpIHsKICAgICAgIE9QRU5TU0xf
UFVUX0VSUk9SKFNTTCwgU1NMX1JfUFJPVE9DT0xfSVNfU0hVVERPV04pOwogICAgICAgcmV0dXJu
IC0xOwogICAgIH0KIAotICAgIGlmICghc3NsLT5jdHgtPnF1aWNfbWV0aG9kLT5mbHVzaF9mbGln
aHQoc3NsKSkgeworICAgIGlmICghc3NsLT5xdWljX21ldGhvZC0+Zmx1c2hfZmxpZ2h0KHNzbCkp
IHsKICAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfUVVJQ19JTlRFUk5BTF9FUlJP
Uik7CiAgICAgICByZXR1cm4gLTE7CiAgICAgfQpAQCAtMzE3LDcgKzMxNyw3IEBAIGludCBzc2wz
X2ZsdXNoX2ZsaWdodChTU0wgKnNzbCkgewogICBpZiAoIXNzbC0+czMtPndyaXRlX2J1ZmZlci5l
bXB0eSgpKSB7CiAgICAgaW50IHJldCA9IHNzbF93cml0ZV9idWZmZXJfZmx1c2goc3NsKTsKICAg
ICBpZiAocmV0IDw9IDApIHsKLSAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfV1JJVElORzsK
KyAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfRVJST1JfV0FOVF9XUklURTsKICAgICAgIHJl
dHVybiByZXQ7CiAgICAgfQogICB9CkBAIC0zMjksNyArMzI5LDcgQEAgaW50IHNzbDNfZmx1c2hf
ZmxpZ2h0KFNTTCAqc3NsKSB7CiAgICAgICAgIHNzbC0+czMtPnBlbmRpbmdfZmxpZ2h0LT5kYXRh
ICsgc3NsLT5zMy0+cGVuZGluZ19mbGlnaHRfb2Zmc2V0LAogICAgICAgICBzc2wtPnMzLT5wZW5k
aW5nX2ZsaWdodC0+bGVuZ3RoIC0gc3NsLT5zMy0+cGVuZGluZ19mbGlnaHRfb2Zmc2V0KTsKICAg
ICBpZiAocmV0IDw9IDApIHsKLSAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfV1JJVElORzsK
KyAgICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfRVJST1JfV0FOVF9XUklURTsKICAgICAgIHJl
dHVybiByZXQ7CiAgICAgfQogCkBAIC0zMzcsNyArMzM3LDcgQEAgaW50IHNzbDNfZmx1c2hfZmxp
Z2h0KFNTTCAqc3NsKSB7CiAgIH0KIAogICBpZiAoQklPX2ZsdXNoKHNzbC0+d2Jpby5nZXQoKSkg
PD0gMCkgewotICAgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfV1JJVElORzsKKyAgICBzc2wtPnMz
LT5yd3N0YXRlID0gU1NMX0VSUk9SX1dBTlRfV1JJVEU7CiAgICAgcmV0dXJuIC0xOwogICB9CiAK
QEAgLTQ5Niw3ICs0OTYsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZV9tZXNzYWdlKGNvbnN0IFNTTCAq
c3NsLCBTU0xNZXNzYWdlICpvdXQsCiAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNzbDNfZ2V0
X21lc3NhZ2UoU1NMICpzc2wsIFNTTE1lc3NhZ2UgKm91dCkgeworYm9vbCBzc2wzX2dldF9tZXNz
YWdlKGNvbnN0IFNTTCAqc3NsLCBTU0xNZXNzYWdlICpvdXQpIHsKICAgc2l6ZV90IHVudXNlZDsK
ICAgaWYgKCFwYXJzZV9tZXNzYWdlKHNzbCwgb3V0LCAmdW51c2VkKSkgewogICAgIHJldHVybiBm
YWxzZTsKQEAgLTY1NCw0ICs2NTQsNzIgQEAgdm9pZCBzc2wzX25leHRfbWVzc2FnZShTU0wgKnNz
bCkgewogICB9CiB9CiAKKy8vIENpcGhlclNjb3JlciBwcm9kdWNlcyBhICJzY29yZSIgZm9yIGVh
Y2ggcG9zc2libGUgY2lwaGVyIHN1aXRlIG9mZmVyZWQgYnkKKy8vIHRoZSBjbGllbnQuCitjbGFz
cyBDaXBoZXJTY29yZXIgeworIHB1YmxpYzoKKyAgQ2lwaGVyU2NvcmVyKHVpbnQxNl90IGdyb3Vw
X2lkKQorICAgICAgOiBhZXNfaXNfZmluZV8oRVZQX2hhc19hZXNfaGFyZHdhcmUoKSksCisgICAg
ICAgIHNlY3VyaXR5XzEyOF9pc19maW5lXyhncm91cF9pZCAhPSBTU0xfQ1VSVkVfQ0VDUFEyICYm
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cF9pZCAhPSBTU0xfQ1VSVkVfQ0VD
UFEyYikge30KKworICB0eXBlZGVmIHN0ZDo6dHVwbGU8Ym9vbCwgYm9vbCwgYm9vbD4gU2NvcmU7
CisKKyAgLy8gTWluU2NvcmUgcmV0dXJucyBhIHxTY29yZXwgdGhhdCB3aWxsIGNvbXBhcmUgbGVz
cyB0aGFuIHRoZSBzY29yZSBvZiBhbGwKKyAgLy8gY2lwaGVyIHN1aXRlcy4KKyAgU2NvcmUgTWlu
U2NvcmUoKSBjb25zdCB7CisgICAgcmV0dXJuIFNjb3JlKGZhbHNlLCBmYWxzZSwgZmFsc2UpOwor
ICB9CisKKyAgU2NvcmUgRXZhbHVhdGUoY29uc3QgU1NMX0NJUEhFUiAqYSkgY29uc3QgeworICAg
IHJldHVybiBTY29yZSgKKyAgICAgICAgLy8gU29tZXRoaW5nIGlzIGFsd2F5cyBwcmVmZXJhYmxl
IHRvIG5vdGhpbmcuCisgICAgICAgIHRydWUsCisgICAgICAgIC8vIEVpdGhlciAxMjgtYml0IGlz
IGZpbmUsIG9yIDI1Ni1iaXQgaXMgcHJlZmVycmVkLgorICAgICAgICBzZWN1cml0eV8xMjhfaXNf
ZmluZV8gfHwgYS0+YWxnb3JpdGhtX2VuYyAhPSBTU0xfQUVTMTI4R0NNLAorICAgICAgICAvLyBF
aXRoZXIgQUVTIGlzIGZpbmUsIG9yIGVsc2UgQ2hhQ2hhMjAgaXMgcHJlZmVycmVkLgorICAgICAg
ICBhZXNfaXNfZmluZV8gfHwgYS0+YWxnb3JpdGhtX2VuYyA9PSBTU0xfQ0hBQ0hBMjBQT0xZMTMw
NSk7CisgIH0KKworIHByaXZhdGU6CisgIGNvbnN0IGJvb2wgYWVzX2lzX2ZpbmVfOworICBjb25z
dCBib29sIHNlY3VyaXR5XzEyOF9pc19maW5lXzsKK307CisKK2NvbnN0IFNTTF9DSVBIRVIgKnNz
bF9jaG9vc2VfdGxzMTNfY2lwaGVyKENCUyBjaXBoZXJfc3VpdGVzLCB1aW50MTZfdCB2ZXJzaW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgZ3Jv
dXBfaWQpIHsKKyAgaWYgKENCU19sZW4oJmNpcGhlcl9zdWl0ZXMpICUgMiAhPSAwKSB7CisgICAg
cmV0dXJuIG51bGxwdHI7CisgIH0KKworICBjb25zdCBTU0xfQ0lQSEVSICpiZXN0ID0gbnVsbHB0
cjsKKyAgQ2lwaGVyU2NvcmVyIHNjb3Jlcihncm91cF9pZCk7CisgIENpcGhlclNjb3Jlcjo6U2Nv
cmUgYmVzdF9zY29yZSA9IHNjb3Jlci5NaW5TY29yZSgpOworCisgIHdoaWxlIChDQlNfbGVuKCZj
aXBoZXJfc3VpdGVzKSA+IDApIHsKKyAgICB1aW50MTZfdCBjaXBoZXJfc3VpdGU7CisgICAgaWYg
KCFDQlNfZ2V0X3UxNigmY2lwaGVyX3N1aXRlcywgJmNpcGhlcl9zdWl0ZSkpIHsKKyAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKworICAgIC8vIExpbWl0IHRvIFRMUyAxLjMgY2lwaGVycyB3
ZSBrbm93IGFib3V0LgorICAgIGNvbnN0IFNTTF9DSVBIRVIgKmNhbmRpZGF0ZSA9IFNTTF9nZXRf
Y2lwaGVyX2J5X3ZhbHVlKGNpcGhlcl9zdWl0ZSk7CisgICAgaWYgKGNhbmRpZGF0ZSA9PSBudWxs
cHRyIHx8CisgICAgICAgIFNTTF9DSVBIRVJfZ2V0X21pbl92ZXJzaW9uKGNhbmRpZGF0ZSkgPiB2
ZXJzaW9uIHx8CisgICAgICAgIFNTTF9DSVBIRVJfZ2V0X21heF92ZXJzaW9uKGNhbmRpZGF0ZSkg
PCB2ZXJzaW9uKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisKKyAgICBjb25zdCBDaXBoZXJT
Y29yZXI6OlNjb3JlIGNhbmRpZGF0ZV9zY29yZSA9IHNjb3Jlci5FdmFsdWF0ZShjYW5kaWRhdGUp
OworICAgIC8vIHxjYW5kaWRhdGVfc2NvcmV8IG11c3QgYmUgbGFyZ2VyIHRvIGRpc3BsYWNlIHRo
ZSBjdXJyZW50IGNob2ljZS4gVGhhdCB3YXkKKyAgICAvLyB0aGUgY2xpZW50J3Mgb3JkZXIgY29u
dHJvbHMgYmV0d2VlbiBjaXBoZXJzIHdpdGggYW4gZXF1YWwgc2NvcmUuCisgICAgaWYgKGNhbmRp
ZGF0ZV9zY29yZSA+IGJlc3Rfc2NvcmUpIHsKKyAgICAgIGJlc3QgPSBjYW5kaWRhdGU7CisgICAg
ICBiZXN0X3Njb3JlID0gY2FuZGlkYXRlX3Njb3JlOworICAgIH0KKyAgfQorCisgIHJldHVybiBi
ZXN0OworfQorCiBCU1NMX05BTUVTUEFDRV9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvczNfbGli
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3NzbC9zM19saWIuY2MKaW5kZXggMGUwNzcwYzFhMzY4ZmEwZDg3YzFhNjU2NzY3
ODFiMWI5NjA1MGRlYS4uNDFkZDU4ODlkMzkyYzgyODBiNDQwZGVjODE5YmYzZDMyMWFkMmQzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3NzbC9zM19saWIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zM19saWIuY2MKQEAg
LTE3MiwxMyArMTcyLDE2IEBAIFNTTDNfU1RBVEU6OlNTTDNfU1RBVEUoKQogICAgICAgaGFzX21l
c3NhZ2UoZmFsc2UpLAogICAgICAgaW5pdGlhbF9oYW5kc2hha2VfY29tcGxldGUoZmFsc2UpLAog
ICAgICAgc2Vzc2lvbl9yZXVzZWQoZmFsc2UpLAorICAgICAgZGVsZWdhdGVkX2NyZWRlbnRpYWxf
dXNlZChmYWxzZSksCiAgICAgICBzZW5kX2Nvbm5lY3Rpb25fYmluZGluZyhmYWxzZSksCiAgICAg
ICBjaGFubmVsX2lkX3ZhbGlkKGZhbHNlKSwKICAgICAgIGtleV91cGRhdGVfcGVuZGluZyhmYWxz
ZSksCiAgICAgICB3cGVuZF9wZW5kaW5nKGZhbHNlKSwKICAgICAgIGVhcmx5X2RhdGFfYWNjZXB0
ZWQoZmFsc2UpLAogICAgICAgdGxzMTNfZG93bmdyYWRlKGZhbHNlKSwKLSAgICAgIHRva2VuX2Jp
bmRpbmdfbmVnb3RpYXRlZChmYWxzZSkge30KKyAgICAgIHRva2VuX2JpbmRpbmdfbmVnb3RpYXRl
ZChmYWxzZSksCisgICAgICBwcV9leHBlcmltZW50X3NpZ25hbF9zZWVuKGZhbHNlKSwKKyAgICAg
IGFsZXJ0X2Rpc3BhdGNoKGZhbHNlKSB7fQogCiBTU0wzX1NUQVRFOjp+U1NMM19TVEFURSgpIHt9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvczNfcGt0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zM19wa3QuY2MKaW5k
ZXggZjBhZThhMmU5OGYyYjY0ODQ5MjAwNWUwZTk1OTE2ZTRjOTNjMTE2NS4uYTU0YmIwMDFiYTY1
ZDljZTJjMjc3MzZhMDI4OTU0M2E0NDlhZGFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zM19wa3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3NzbC9zM19wa3QuY2MKQEAgLTExOCw2ICsxMTgsNyBAQAogI2luY2x1ZGUg
PG9wZW5zc2wvbWVtLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+CiAKKyNpbmNsdWRlICIu
Li9jcnlwdG8vZXJyL2ludGVybmFsLmgiCiAjaW5jbHVkZSAiLi4vY3J5cHRvL2ludGVybmFsLmgi
CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIApAQCAtMjMyLDI1ICsyMzMsMjkgQEAgc3RhdGljIGlu
dCBkb19zc2wzX3dyaXRlKFNTTCAqc3NsLCBpbnQgdHlwZSwgY29uc3QgdWludDhfdCAqaW4sIHVu
c2lnbmVkIGxlbikgewogICAgIHJldHVybiAtMTsKICAgfQogCi0gIGlmIChsZW4gPT0gMCkgewot
ICAgIHJldHVybiAwOwotICB9Ci0KICAgaWYgKCF0bHNfZmx1c2hfcGVuZGluZ19oc19kYXRhKHNz
bCkpIHsKICAgICByZXR1cm4gLTE7CiAgIH0KKwogICBzaXplX3QgZmxpZ2h0X2xlbiA9IDA7CiAg
IGlmIChzc2wtPnMzLT5wZW5kaW5nX2ZsaWdodCAhPSBudWxscHRyKSB7CiAgICAgZmxpZ2h0X2xl
biA9CiAgICAgICAgIHNzbC0+czMtPnBlbmRpbmdfZmxpZ2h0LT5sZW5ndGggLSBzc2wtPnMzLT5w
ZW5kaW5nX2ZsaWdodF9vZmZzZXQ7CiAgIH0KIAotICBzaXplX3QgbWF4X291dCA9IGxlbiArIFNT
TF9tYXhfc2VhbF9vdmVyaGVhZChzc2wpOwotICBpZiAobWF4X291dCA8IGxlbiB8fCBtYXhfb3V0
ICsgZmxpZ2h0X2xlbiA8IG1heF9vdXQpIHsKLSAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVS
Ul9SX09WRVJGTE9XKTsKLSAgICByZXR1cm4gLTE7CisgIHNpemVfdCBtYXhfb3V0ID0gZmxpZ2h0
X2xlbjsKKyAgaWYgKGxlbiA+IDApIHsKKyAgICBjb25zdCBzaXplX3QgbWF4X2NpcGhlcnRleHRf
bGVuID0gbGVuICsgU1NMX21heF9zZWFsX292ZXJoZWFkKHNzbCk7CisgICAgaWYgKG1heF9jaXBo
ZXJ0ZXh0X2xlbiA8IGxlbiB8fCBtYXhfb3V0ICsgbWF4X2NpcGhlcnRleHRfbGVuIDwgbWF4X291
dCkgeworICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBFUlJfUl9PVkVSRkxPVyk7CisgICAg
ICByZXR1cm4gLTE7CisgICAgfQorICAgIG1heF9vdXQgKz0gbWF4X2NpcGhlcnRleHRfbGVuOwor
ICB9CisKKyAgaWYgKG1heF9vdXQgPT0gMCkgeworICAgIHJldHVybiAwOwogICB9Ci0gIG1heF9v
dXQgKz0gZmxpZ2h0X2xlbjsKIAogICBpZiAoIWJ1Zi0+RW5zdXJlQ2FwKGZsaWdodF9sZW4gKyBz
c2xfc2VhbF9hbGlnbl9wcmVmaXhfbGVuKHNzbCksIG1heF9vdXQpKSB7CiAgICAgcmV0dXJuIC0x
OwpAQCAtMjcwLDEyICsyNzUsMTQgQEAgc3RhdGljIGludCBkb19zc2wzX3dyaXRlKFNTTCAqc3Ns
LCBpbnQgdHlwZSwgY29uc3QgdWludDhfdCAqaW4sIHVuc2lnbmVkIGxlbikgewogICAgIGJ1Zi0+
RGlkV3JpdGUoZmxpZ2h0X2xlbik7CiAgIH0KIAotICBzaXplX3QgY2lwaGVydGV4dF9sZW47Ci0g
IGlmICghdGxzX3NlYWxfcmVjb3JkKHNzbCwgYnVmLT5yZW1haW5pbmcoKS5kYXRhKCksICZjaXBo
ZXJ0ZXh0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgYnVmLT5yZW1haW5pbmcoKS5zaXpl
KCksIHR5cGUsIGluLCBsZW4pKSB7Ci0gICAgcmV0dXJuIC0xOworICBpZiAobGVuID4gMCkgewor
ICAgIHNpemVfdCBjaXBoZXJ0ZXh0X2xlbjsKKyAgICBpZiAoIXRsc19zZWFsX3JlY29yZChzc2ws
IGJ1Zi0+cmVtYWluaW5nKCkuZGF0YSgpLCAmY2lwaGVydGV4dF9sZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgYnVmLT5yZW1haW5pbmcoKS5zaXplKCksIHR5cGUsIGluLCBsZW4pKSB7Cisg
ICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGJ1Zi0+RGlkV3JpdGUoY2lwaGVydGV4dF9sZW4p
OwogICB9Ci0gIGJ1Zi0+RGlkV3JpdGUoY2lwaGVydGV4dF9sZW4pOwogCiAgIC8vIE5vdyB0aGF0
IHdlJ3ZlIG1hZGUgcHJvZ3Jlc3Mgb24gdGhlIGNvbm5lY3Rpb24sIHVuY29yayBLZXlVcGRhdGUK
ICAgLy8gYWNrbm93bGVkZ21lbnRzLgpAQCAtMzc1LDcgKzM4MiwyNCBAQCBzc2xfb3Blbl9yZWNv
cmRfdCBzc2wzX29wZW5fY2hhbmdlX2NpcGhlcl9zcGVjKFNTTCAqc3NsLCBzaXplX3QgKm91dF9j
b25zdW1lZCwKICAgcmV0dXJuIHNzbF9vcGVuX3JlY29yZF9zdWNjZXNzOwogfQogCi1pbnQgc3Ns
X3NlbmRfYWxlcnQoU1NMICpzc2wsIGludCBsZXZlbCwgaW50IGRlc2MpIHsKK3ZvaWQgc3NsX3Nl
bmRfYWxlcnQoU1NMICpzc2wsIGludCBsZXZlbCwgaW50IGRlc2MpIHsKKyAgLy8gVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gYSBmYXRhbCBlcnJvciBmcm9tIHRoZSBwZWVy
LiBJZ25vcmUKKyAgLy8gYW55IGZhaWx1cmVzIHdyaXRpbmcgdGhlIGFsZXJ0IGFuZCByZXBvcnQg
b25seSB0aGUgb3JpZ2luYWwgZXJyb3IuIEluCisgIC8vIHBhcnRpY3VsYXIsIGlmIHRoZSB0cmFu
c3BvcnQgdXNlcyB8U1NMX3dyaXRlfCwgb3VyIGV4aXN0aW5nIGVycm9yIHdpbGwgYmUKKyAgLy8g
Y2xvYmJlcmVkIHNvIHdlIG11c3Qgc2F2ZSBhbmQgcmVzdG9yZSB0aGUgZXJyb3IgcXVldWUuIFNl
ZQorICAvLyBodHRwczovL2NyYnVnLmNvbS85NTkzMDUuCisgIC8vCisgIC8vIFRPRE8oZGF2aWRi
ZW4pOiBSZXR1cm4gdGhlIGFsZXJ0IG91dCBvZiB0aGUgaGFuZHNoYWtlLCByYXRoZXIgdGhhbiBj
YWxsaW5nCisgIC8vIHRoaXMgZnVuY3Rpb24gaW50ZXJuYWxseSBldmVyeXdoZXJlLgorICAvLwor
ICAvLyBUT0RPKGRhdmlkYmVuKTogVGhpcyBkb2VzIG5vdCBhbGxvdyByZXRyeWluZyBpZiB0aGUg
YWxlcnQgaGl0IEVBR0FJTi4gU2VlCisgIC8vIGh0dHBzOi8vY3JidWcuY29tL2JvcmluZ3NzbC8x
MzAuCisgIFVuaXF1ZVB0cjxFUlJfU0FWRV9TVEFURT4gZXJyX3N0YXRlKEVSUl9zYXZlX3N0YXRl
KCkpOworICBzc2xfc2VuZF9hbGVydF9pbXBsKHNzbCwgbGV2ZWwsIGRlc2MpOworICBFUlJfcmVz
dG9yZV9zdGF0ZShlcnJfc3RhdGUuZ2V0KCkpOworfQorCitpbnQgc3NsX3NlbmRfYWxlcnRfaW1w
bChTU0wgKnNzbCwgaW50IGxldmVsLCBpbnQgZGVzYykgewogICAvLyBJdCBpcyBpbGxlZ2FsIHRv
IHNlbmQgYW4gYWxlcnQgd2hlbiB3ZSd2ZSBhbHJlYWR5IHNlbnQgYSBjbG9zaW5nIG9uZS4KICAg
aWYgKHNzbC0+czMtPndyaXRlX3NodXRkb3duICE9IHNzbF9zaHV0ZG93bl9ub25lKSB7CiAgICAg
T1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9QUk9UT0NPTF9JU19TSFVURE9XTik7CkBAIC0z
OTAsNyArNDE0LDcgQEAgaW50IHNzbF9zZW5kX2FsZXJ0KFNTTCAqc3NsLCBpbnQgbGV2ZWwsIGlu
dCBkZXNjKSB7CiAgICAgc3NsLT5zMy0+d3JpdGVfc2h1dGRvd24gPSBzc2xfc2h1dGRvd25fZXJy
b3I7CiAgIH0KIAotICBzc2wtPnMzLT5hbGVydF9kaXNwYXRjaCA9IDE7CisgIHNzbC0+czMtPmFs
ZXJ0X2Rpc3BhdGNoID0gdHJ1ZTsKICAgc3NsLT5zMy0+c2VuZF9hbGVydFswXSA9IGxldmVsOwog
ICBzc2wtPnMzLT5zZW5kX2FsZXJ0WzFdID0gZGVzYzsKICAgaWYgKHNzbC0+czMtPndyaXRlX2J1
ZmZlci5lbXB0eSgpKSB7CkBAIC00MDQsOSArNDI4LDkgQEAgaW50IHNzbF9zZW5kX2FsZXJ0KFNT
TCAqc3NsLCBpbnQgbGV2ZWwsIGludCBkZXNjKSB7CiB9CiAKIGludCBzc2wzX2Rpc3BhdGNoX2Fs
ZXJ0KFNTTCAqc3NsKSB7Ci0gIGlmIChzc2wtPmN0eC0+cXVpY19tZXRob2QpIHsKLSAgICBpZiAo
IXNzbC0+Y3R4LT5xdWljX21ldGhvZC0+c2VuZF9hbGVydChzc2wsIHNzbC0+czMtPndyaXRlX2xl
dmVsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbC0+czMt
PnNlbmRfYWxlcnRbMV0pKSB7CisgIGlmIChzc2wtPnF1aWNfbWV0aG9kKSB7CisgICAgaWYgKCFz
c2wtPnF1aWNfbWV0aG9kLT5zZW5kX2FsZXJ0KHNzbCwgc3NsLT5zMy0+d3JpdGVfbGV2ZWwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbC0+czMtPnNlbmRfYWxlcnRb
MV0pKSB7CiAgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX1FVSUNfSU5URVJOQUxf
RVJST1IpOwogICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtNDE3LDcgKzQ0MSw3IEBAIGludCBz
c2wzX2Rpc3BhdGNoX2FsZXJ0KFNTTCAqc3NsKSB7CiAgICAgfQogICB9CiAKLSAgc3NsLT5zMy0+
YWxlcnRfZGlzcGF0Y2ggPSAwOworICBzc2wtPnMzLT5hbGVydF9kaXNwYXRjaCA9IGZhbHNlOwog
CiAgIC8vIElmIHRoZSBhbGVydCBpcyBmYXRhbCwgZmx1c2ggdGhlIEJJTyBub3cuCiAgIGlmIChz
c2wtPnMzLT5zZW5kX2FsZXJ0WzBdID09IFNTTDNfQUxfRkFUQUwpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9zc2wvc3NsX2FlYWRfY3R4LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfYWVhZF9jdHguY2MKaW5kZXggZjAx
YjU3ZGNhNDVmMmIxYTEyOTIzMTM2ZDllNWM0MmI1MDBkNGNkYi4uMGJhZDI2NjFhOWViMTRhNTA3
NTY2ZDdkZjdiMTJmYzM3MDI0YjUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfYWVhZF9jdHgu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3NzbC9zc2xfYWVhZF9jdHguY2MKQEAgLTQyLDcgKzQyLDYgQEAgU1NMQUVB
RENvbnRleHQ6OlNTTEFFQURDb250ZXh0KHVpbnQxNl90IHZlcnNpb25fYXJnLCBib29sIGlzX2R0
bHNfYXJnLAogICAgICAgcmFuZG9tX3ZhcmlhYmxlX25vbmNlXyhmYWxzZSksCiAgICAgICB4b3Jf
Zml4ZWRfbm9uY2VfKGZhbHNlKSwKICAgICAgIG9taXRfbGVuZ3RoX2luX2FkXyhmYWxzZSksCi0g
ICAgICBvbWl0X2FkXyhmYWxzZSksCiAgICAgICBhZF9pc19oZWFkZXJfKGZhbHNlKSB7CiAgIE9Q
RU5TU0xfbWVtc2V0KGZpeGVkX25vbmNlXywgMCwgc2l6ZW9mKGZpeGVkX25vbmNlXykpOwogfQpA
QCAtMTM0LDExICsxMzMsNyBAQCBVbmlxdWVQdHI8U1NMQUVBRENvbnRleHQ+IFNTTEFFQURDb250
ZXh0OjpDcmVhdGUoCiAgICAgICBhZWFkX2N0eC0+eG9yX2ZpeGVkX25vbmNlXyA9IHRydWU7CiAg
ICAgICBhZWFkX2N0eC0+dmFyaWFibGVfbm9uY2VfbGVuXyA9IDg7CiAgICAgICBhZWFkX2N0eC0+
dmFyaWFibGVfbm9uY2VfaW5jbHVkZWRfaW5fcmVjb3JkXyA9IGZhbHNlOwotICAgICAgaWYgKHNz
bF9pc19kcmFmdDI4KHZlcnNpb24pKSB7Ci0gICAgICAgIGFlYWRfY3R4LT5hZF9pc19oZWFkZXJf
ID0gdHJ1ZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGFlYWRfY3R4LT5vbWl0X2FkXyA9IHRy
dWU7Ci0gICAgICB9CisgICAgICBhZWFkX2N0eC0+YWRfaXNfaGVhZGVyXyA9IHRydWU7CiAgICAg
ICBhc3NlcnQoZml4ZWRfaXYuc2l6ZSgpID49IGFlYWRfY3R4LT52YXJpYWJsZV9ub25jZV9sZW5f
KTsKICAgICB9CiAgIH0gZWxzZSB7CkBAIC0yMzEsMTAgKzIyNiw2IEBAIFNwYW48Y29uc3QgdWlu
dDhfdD4gU1NMQUVBRENvbnRleHQ6OkdldEFkZGl0aW9uYWxEYXRhKAogICAgIHJldHVybiBoZWFk
ZXI7CiAgIH0KIAotICBpZiAob21pdF9hZF8pIHsKLSAgICByZXR1cm4ge307Ci0gIH0KLQogICBP
UEVOU1NMX21lbWNweShzdG9yYWdlLCBzZXFudW0sIDgpOwogICBzaXplX3QgbGVuID0gODsKICAg
c3RvcmFnZVtsZW4rK10gPSB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfYXNuMS5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9zc2wvc3NsX2FzbjEuY2MKaW5kZXggNjY5Zjc3NmRkZGQ3OTBhMmFhZDA0MzIyZGIwMGRj
MzU1MTA1ZGQ3OS4uM2ZkN2ZiNmE3YmJjNmQ4NDY4OWUwZWU5ZDlkYjNhYTE4Y2UzZGVmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3NzbC9zc2xfYXNuMS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9hc24xLmNjCkBA
IC02OTcsMTEgKzY5Nyw2IEBAIFVuaXF1ZVB0cjxTU0xfU0VTU0lPTj4gU1NMX1NFU1NJT05fcGFy
c2UoQ0JTICpjYnMsCiAgICAgfQogICB9CiAKLSAgaWYgKCF4NTA5X21ldGhvZC0+c2Vzc2lvbl9j
YWNoZV9vYmplY3RzKHJldC5nZXQoKSkpIHsKLSAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNT
TF9SX0lOVkFMSURfU1NMX1NFU1NJT04pOwotICAgIHJldHVybiBudWxscHRyOwotICB9Ci0KICAg
Q0JTIGFnZV9hZGQ7CiAgIGludCBhZ2VfYWRkX3ByZXNlbnQ7CiAgIGlmICghQ0JTX2dldF9vcHRp
b25hbF9hc24xX29jdGV0X3N0cmluZygmc2Vzc2lvbiwgJmFnZV9hZGQsICZhZ2VfYWRkX3ByZXNl
bnQsCkBAIC03MzcsNiArNzMyLDExIEBAIFVuaXF1ZVB0cjxTU0xfU0VTU0lPTj4gU1NMX1NFU1NJ
T05fcGFyc2UoQ0JTICpjYnMsCiAgICAgcmV0dXJuIG51bGxwdHI7CiAgIH0KIAorICBpZiAoIXg1
MDlfbWV0aG9kLT5zZXNzaW9uX2NhY2hlX29iamVjdHMocmV0LmdldCgpKSkgeworICAgIE9QRU5T
U0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfSU5WQUxJRF9TU0xfU0VTU0lPTik7CisgICAgcmV0dXJu
IG51bGxwdHI7CisgIH0KKwogICByZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3Ns
L3NzbF9idWZmZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9idWZmZXIuY2MKaW5kZXggYjk0ZjA4MTE0NjRk
OWIzYmMyMTg4OTljYTY0ZTM3ZWEwM2E5MzNiZC4uNDllY2Y5MDM4ZGU1MDFhNjFlYjE2NjM3ZTlj
OTNlYTJjMTNjYjVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfYnVmZmVyLmNjCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9zc2wvc3NsX2J1ZmZlci5jYwpAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBpbnQgZHRsc19y
ZWFkX2J1ZmZlcl9uZXh0X3BhY2tldChTU0wgKnNzbCkgewogICBpbnQgcmV0ID0KICAgICAgIEJJ
T19yZWFkKHNzbC0+cmJpby5nZXQoKSwgYnVmLT5kYXRhKCksIHN0YXRpY19jYXN0PGludD4oYnVm
LT5jYXAoKSkpOwogICBpZiAocmV0IDw9IDApIHsKLSAgICBzc2wtPnMzLT5yd3N0YXRlID0gU1NM
X1JFQURJTkc7CisgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9FUlJPUl9XQU5UX1JFQUQ7CiAg
ICAgcmV0dXJuIHJldDsKICAgfQogICBidWYtPkRpZFdyaXRlKHN0YXRpY19jYXN0PHNpemVfdD4o
cmV0KSk7CkBAIC0xMzgsNyArMTM4LDcgQEAgc3RhdGljIGludCB0bHNfcmVhZF9idWZmZXJfZXh0
ZW5kX3RvKFNTTCAqc3NsLCBzaXplX3QgbGVuKSB7CiAgICAgaW50IHJldCA9IEJJT19yZWFkKHNz
bC0+cmJpby5nZXQoKSwgYnVmLT5kYXRhKCkgKyBidWYtPnNpemUoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihsZW4gLSBidWYtPnNpemUoKSkpOwogICAgIGlmIChy
ZXQgPD0gMCkgewotICAgICAgc3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9SRUFESU5HOworICAgICAg
c3NsLT5zMy0+cndzdGF0ZSA9IFNTTF9FUlJPUl9XQU5UX1JFQUQ7CiAgICAgICByZXR1cm4gcmV0
OwogICAgIH0KICAgICBidWYtPkRpZFdyaXRlKHN0YXRpY19jYXN0PHNpemVfdD4ocmV0KSk7CkBA
IC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIGludCB0bHNfd3JpdGVfYnVmZmVyX2ZsdXNoKFNTTCAq
c3NsKSB7CiAgIHdoaWxlICghYnVmLT5lbXB0eSgpKSB7CiAgICAgaW50IHJldCA9IEJJT193cml0
ZShzc2wtPndiaW8uZ2V0KCksIGJ1Zi0+ZGF0YSgpLCBidWYtPnNpemUoKSk7CiAgICAgaWYgKHJl
dCA8PSAwKSB7Ci0gICAgICBzc2wtPnMzLT5yd3N0YXRlID0gU1NMX1dSSVRJTkc7CisgICAgICBz
c2wtPnMzLT5yd3N0YXRlID0gU1NMX0VSUk9SX1dBTlRfV1JJVEU7CiAgICAgICByZXR1cm4gcmV0
OwogICAgIH0KICAgICBidWYtPkNvbnN1bWUoc3RhdGljX2Nhc3Q8c2l6ZV90PihyZXQpKTsKQEAg
LTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgaW50IGR0bHNfd3JpdGVfYnVmZmVyX2ZsdXNoKFNTTCAq
c3NsKSB7CiAKICAgaW50IHJldCA9IEJJT193cml0ZShzc2wtPndiaW8uZ2V0KCksIGJ1Zi0+ZGF0
YSgpLCBidWYtPnNpemUoKSk7CiAgIGlmIChyZXQgPD0gMCkgewotICAgIHNzbC0+czMtPnJ3c3Rh
dGUgPSBTU0xfV1JJVElORzsKKyAgICBzc2wtPnMzLT5yd3N0YXRlID0gU1NMX0VSUk9SX1dBTlRf
V1JJVEU7CiAgICAgLy8gSWYgdGhlIHdyaXRlIGZhaWxlZCwgZHJvcCB0aGUgd3JpdGUgYnVmZmVy
IGFueXdheS4gRGF0YWdyYW0gdHJhbnNwb3J0cwogICAgIC8vIGNhbid0IHdyaXRlIGhhbGYgYSBw
YWNrZXQsIHNvIHRoZSBjYWxsZXIgaXMgZXhwZWN0ZWQgdG8gcmV0cnkgZnJvbSB0aGUKICAgICAv
LyB0b3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9jX3Rlc3QuYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX2Nf
dGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAyZjg2NTVkYzVlNjc2YmUwNDA1Y2RmMzUwNDVhZmY1YjIxYzYw
YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9jX3Rlc3QuYwpAQCAtMCwwICsxLDE1
IEBACisjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KKworaW50IEJPUklOR1NTTF9lbnVtX2NfdHlw
ZV90ZXN0KHZvaWQpOworCitpbnQgQk9SSU5HU1NMX2VudW1fY190eXBlX3Rlc3Qodm9pZCkgewor
I2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjZXJyb3IgIlRoaXMgaXMgdGVzdGluZyB0aGUgYmVo
YXZpb3VyIG9mIHRoZSBDIGNvbXBpbGVyLiIKKyNlcnJvciAiSXQncyBwb2ludGxlc3MgdG8gYnVp
bGQgaXQgaW4gQysrIG1vZGUuIgorI2VuZGlmCisKKyAgLy8gSW4gQysrLCB0aGUgZW51bXMgaW4g
c3NsLmggYXJlIGV4cGxpY2l0bHkgdHlwZWQgYXMgaW50cyB0byBhbGxvdyB0aGVtIHRvCisgIC8v
IGJlIHByZWRlY2xhcmVkLiBUaGlzIGZ1bmN0aW9uIGNvbmZpcm1zIHRoYXQgdGhlIEMgY29tcGls
ZXIgYmVsaWV2ZXMgdGhlbQorICAvLyB0byBiZSB0aGUgc2FtZSBzaXplIGFzIGludHMuIFRoZXkg
bWF5IGRpZmZlciBpbiBzaWduZWRuZXNzLCBob3dldmVyLgorICByZXR1cm4gc2l6ZW9mKGVudW0g
c3NsX3ByaXZhdGVfa2V5X3Jlc3VsdF90KSA9PSBzaXplb2YoaW50KTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9zc2wvc3NsX2NlcnQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9jZXJ0LmNjCmluZGV4IDM3ZDY1MDE4
ZTIyOGZiZTY3ZTViMzFlNmYzNTk0MmU2MmU5MTMwOTYuLmI1NjVhMzU2YTdlMmE3OWFkMDBmNDYx
Y2Q5MDM2MjdiNGQxOWU0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX2NlcnQuY2MKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3NzbC9zc2xfY2VydC5jYwpAQCAtMTgwLDYgKzE4MCwxNiBAQCBVbmlxdWVQdHI8Q0VSVD4g
c3NsX2NlcnRfZHVwKENFUlQgKmNlcnQpIHsKICAgcmV0LT5zaWRfY3R4X2xlbmd0aCA9IGNlcnQt
PnNpZF9jdHhfbGVuZ3RoOwogICBPUEVOU1NMX21lbWNweShyZXQtPnNpZF9jdHgsIGNlcnQtPnNp
ZF9jdHgsIHNpemVvZihyZXQtPnNpZF9jdHgpKTsKIAorICBpZiAoY2VydC0+ZGMpIHsKKyAgICBy
ZXQtPmRjID0gY2VydC0+ZGMtPkR1cCgpOworICAgIGlmICghcmV0LT5kYykgeworICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKyAgfQorCisgIHJldC0+ZGNfcHJpdmF0ZWtleSA9IFVwUmVm
KGNlcnQtPmRjX3ByaXZhdGVrZXkpOworICByZXQtPmRjX2tleV9tZXRob2QgPSBjZXJ0LT5kY19r
ZXlfbWV0aG9kOworCiAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTE5NCw2ICsyMDQsMTAgQEAgdm9p
ZCBzc2xfY2VydF9jbGVhcl9jZXJ0cyhDRVJUICpjZXJ0KSB7CiAgIGNlcnQtPmNoYWluLnJlc2V0
KCk7CiAgIGNlcnQtPnByaXZhdGVrZXkucmVzZXQoKTsKICAgY2VydC0+a2V5X21ldGhvZCA9IG51
bGxwdHI7CisKKyAgY2VydC0+ZGMucmVzZXQoKTsKKyAgY2VydC0+ZGNfcHJpdmF0ZWtleS5yZXNl
dCgpOworICBjZXJ0LT5kY19rZXlfbWV0aG9kID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIHZvaWQg
c3NsX2NlcnRfc2V0X2NlcnRfY2IoQ0VSVCAqY2VydCwgaW50ICgqY2IpKFNTTCAqc3NsLCB2b2lk
ICphcmcpLApAQCAtMjMyLDcgKzI0Niw3IEBAIHN0YXRpYyBlbnVtIGxlYWZfY2VydF9hbmRfcHJp
dmtleV9yZXN1bHRfdCBjaGVja19sZWFmX2NlcnRfYW5kX3ByaXZrZXkoCiAgIC8vIEFuIEVDQyBj
ZXJ0aWZpY2F0ZSBtYXkgYmUgdXNhYmxlIGZvciBFQ0RIIG9yIEVDRFNBLiBXZSBvbmx5IHN1cHBv
cnQgRUNEU0EKICAgLy8gY2VydGlmaWNhdGVzLCBzbyBzYW5pdHktY2hlY2sgdGhlIGtleSB1c2Fn
ZSBleHRlbnNpb24uCiAgIGlmIChwdWJrZXktPnR5cGUgPT0gRVZQX1BLRVlfRUMgJiYKLSAgICAg
ICFzc2xfY2VydF9jaGVja19kaWdpdGFsX3NpZ25hdHVyZV9rZXlfdXNhZ2UoJmNlcnRfY2JzKSkg
eworICAgICAgIXNzbF9jZXJ0X2NoZWNrX2tleV91c2FnZSgmY2VydF9jYnMsIGtleV91c2FnZV9k
aWdpdGFsX3NpZ25hdHVyZSkpIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX1VO
S05PV05fQ0VSVElGSUNBVEVfVFlQRSk7CiAgICAgcmV0dXJuIGxlYWZfY2VydF9hbmRfcHJpdmtl
eV9lcnJvcjsKICAgfQpAQCAtMzI0LDEwICszMzgsMTAgQEAgYm9vbCBzc2xfc2V0X2NlcnQoQ0VS
VCAqY2VydCwgVW5pcXVlUHRyPENSWVBUT19CVUZGRVI+IGJ1ZmZlcikgewogICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzc2xfaGFzX2NlcnRpZmljYXRlKGNvbnN0IFNTTF9DT05GSUcgKmNmZykg
ewotICByZXR1cm4gY2ZnLT5jZXJ0LT5jaGFpbiAhPSBudWxscHRyICYmCi0gICAgICAgICBza19D
UllQVE9fQlVGRkVSX3ZhbHVlKGNmZy0+Y2VydC0+Y2hhaW4uZ2V0KCksIDApICE9IG51bGxwdHIg
JiYKLSAgICAgICAgIHNzbF9oYXNfcHJpdmF0ZV9rZXkoY2ZnKTsKK2Jvb2wgc3NsX2hhc19jZXJ0
aWZpY2F0ZShjb25zdCBTU0xfSEFORFNIQUtFICpocykgeworICByZXR1cm4gaHMtPmNvbmZpZy0+
Y2VydC0+Y2hhaW4gIT0gbnVsbHB0ciAmJgorICAgICAgICAgc2tfQ1JZUFRPX0JVRkZFUl92YWx1
ZShocy0+Y29uZmlnLT5jZXJ0LT5jaGFpbi5nZXQoKSwgMCkgIT0gbnVsbHB0ciAmJgorICAgICAg
ICAgc3NsX2hhc19wcml2YXRlX2tleShocyk7CiB9CiAKIGJvb2wgc3NsX3BhcnNlX2NlcnRfY2hh
aW4odWludDhfdCAqb3V0X2FsZXJ0LApAQCAtMzk1LDcgKzQwOSw3IEBAIGJvb2wgc3NsX3BhcnNl
X2NlcnRfY2hhaW4odWludDhfdCAqb3V0X2FsZXJ0LAogfQogCiBib29sIHNzbF9hZGRfY2VydF9j
aGFpbihTU0xfSEFORFNIQUtFICpocywgQ0JCICpjYmIpIHsKLSAgaWYgKCFzc2xfaGFzX2NlcnRp
ZmljYXRlKGhzLT5jb25maWcpKSB7CisgIGlmICghc3NsX2hhc19jZXJ0aWZpY2F0ZShocykpIHsK
ICAgICByZXR1cm4gQ0JCX2FkZF91MjQoY2JiLCAwKTsKICAgfQogCkBAIC01MjYsNyArNTQwLDcg
QEAgYm9vbCBzc2xfY2VydF9jaGVja19wcml2YXRlX2tleShjb25zdCBDRVJUICpjZXJ0LCBjb25z
dCBFVlBfUEtFWSAqcHJpdmtleSkgewogICByZXR1cm4gc3NsX2NvbXBhcmVfcHVibGljX2FuZF9w
cml2YXRlX2tleShwdWJrZXkuZ2V0KCksIHByaXZrZXkpOwogfQogCi1ib29sIHNzbF9jZXJ0X2No
ZWNrX2RpZ2l0YWxfc2lnbmF0dXJlX2tleV91c2FnZShjb25zdCBDQlMgKmluKSB7Citib29sIHNz
bF9jZXJ0X2NoZWNrX2tleV91c2FnZShjb25zdCBDQlMgKmluLCBlbnVtIHNzbF9rZXlfdXNhZ2Vf
dCBiaXQpIHsKICAgQ0JTIGJ1ZiA9ICppbjsKIAogICBDQlMgdGJzX2NlcnQsIG91dGVyX2V4dGVu
c2lvbnM7CkBAIC01OTIsOCArNjA2LDggQEAgYm9vbCBzc2xfY2VydF9jaGVja19kaWdpdGFsX3Np
Z25hdHVyZV9rZXlfdXNhZ2UoY29uc3QgQ0JTICppbikgewogICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIGlmICghQ0JTX2FzbjFfYml0c3RyaW5nX2hhc19iaXQoJmJpdF9zdHJpbmcs
IDApKSB7Ci0gICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX0VDQ19DRVJUX05PVF9G
T1JfU0lHTklORyk7CisgICAgaWYgKCFDQlNfYXNuMV9iaXRzdHJpbmdfaGFzX2JpdCgmYml0X3N0
cmluZywgYml0KSkgeworICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9LRVlfVVNB
R0VfQklUX0lOQ09SUkVDVCk7CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02OTYs
MjAgKzcxMCw2IEBAIGJvb2wgc3NsX2NoZWNrX2xlYWZfY2VydGlmaWNhdGUoU1NMX0hBTkRTSEFL
RSAqaHMsIEVWUF9QS0VZICpwa2V5LAogICAgIHJldHVybiBmYWxzZTsKICAgfQogCi0gIC8vIENo
ZWNrIGtleSB1c2FnZXMgZm9yIGFsbCBrZXkgdHlwZXMgYnV0IFJTQS4gVGhpcyBpcyBuZWVkZWQg
dG8gZGlzdGluZ3Vpc2gKLSAgLy8gRUNESCBjZXJ0aWZpY2F0ZXMsIHdoaWNoIHdlIGRvIG5vdCBz
dXBwb3J0LCBmcm9tIEVDRFNBIGNlcnRpZmljYXRlcy4gSW4KLSAgLy8gcHJpbmNpcGxlLCB3ZSBz
aG91bGQgY2hlY2sgUlNBIGtleSB1c2FnZXMgYmFzZWQgb24gY2lwaGVyLCBidXQgdGhpcyBicmVh
a3MKLSAgLy8gYnVnZ3kgYW50aXZpcnVzIGRlcGxveW1lbnRzLiBPdGhlciBrZXkgdHlwZXMgYXJl
IGFsd2F5cyB1c2VkIGZvciBzaWduaW5nLgotICAvLwotICAvLyBUT0RPKGRhdmlkYmVuKTogR2V0
IG1vcmUgcmVjZW50IGRhdGEgb24gUlNBIGtleSB1c2FnZXMuCi0gIGlmIChFVlBfUEtFWV9pZChw
a2V5KSAhPSBFVlBfUEtFWV9SU0EpIHsKLSAgICBDQlMgbGVhZl9jYnM7Ci0gICAgQ0JTX2luaXQo
JmxlYWZfY2JzLCBDUllQVE9fQlVGRkVSX2RhdGEobGVhZiksIENSWVBUT19CVUZGRVJfbGVuKGxl
YWYpKTsKLSAgICBpZiAoIXNzbF9jZXJ0X2NoZWNrX2RpZ2l0YWxfc2lnbmF0dXJlX2tleV91c2Fn
ZSgmbGVhZl9jYnMpKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICB9Ci0KICAgaWYg
KEVWUF9QS0VZX2lkKHBrZXkpID09IEVWUF9QS0VZX0VDKSB7CiAgICAgLy8gQ2hlY2sgdGhlIGtl
eSdzIGdyb3VwIGFuZCBwb2ludCBmb3JtYXQgYXJlIGFjY2VwdGFibGUuCiAgICAgRUNfS0VZICpl
Y19rZXkgPSBFVlBfUEtFWV9nZXQwX0VDX0tFWShwa2V5KTsKQEAgLTcyOCw3ICs3MjgsNyBAQCBi
b29sIHNzbF9jaGVja19sZWFmX2NlcnRpZmljYXRlKFNTTF9IQU5EU0hBS0UgKmhzLCBFVlBfUEtF
WSAqcGtleSwKIAogYm9vbCBzc2xfb25fY2VydGlmaWNhdGVfc2VsZWN0ZWQoU1NMX0hBTkRTSEFL
RSAqaHMpIHsKICAgU1NMICpjb25zdCBzc2wgPSBocy0+c3NsOwotICBpZiAoIXNzbF9oYXNfY2Vy
dGlmaWNhdGUoaHMtPmNvbmZpZykpIHsKKyAgaWYgKCFzc2xfaGFzX2NlcnRpZmljYXRlKGhzKSkg
ewogICAgIC8vIE5vdGhpbmcgdG8gZG8uCiAgICAgcmV0dXJuIHRydWU7CiAgIH0KQEAgLTc0MSwx
MCArNzQxLDE0MSBAQCBib29sIHNzbF9vbl9jZXJ0aWZpY2F0ZV9zZWxlY3RlZChTU0xfSEFORFNI
QUtFICpocykgewogICBDUllQVE9fQlVGRkVSX2luaXRfQ0JTKAogICAgICAgc2tfQ1JZUFRPX0JV
RkZFUl92YWx1ZShocy0+Y29uZmlnLT5jZXJ0LT5jaGFpbi5nZXQoKSwgMCksICZsZWFmKTsKIAot
ICBocy0+bG9jYWxfcHVia2V5ID0gc3NsX2NlcnRfcGFyc2VfcHVia2V5KCZsZWFmKTsKKyAgaWYg
KHNzbF9zaWduaW5nX3dpdGhfZGMoaHMpKSB7CisgICAgaHMtPmxvY2FsX3B1YmtleSA9IFVwUmVm
KGhzLT5jb25maWctPmNlcnQtPmRjLT5wa2V5KTsKKyAgfSBlbHNlIHsKKyAgICBocy0+bG9jYWxf
cHVia2V5ID0gc3NsX2NlcnRfcGFyc2VfcHVia2V5KCZsZWFmKTsKKyAgfQogICByZXR1cm4gaHMt
PmxvY2FsX3B1YmtleSAhPSBOVUxMOwogfQogCisKKy8vIERlbGVnYXRlZCBjcmVkZW50aWFscy4K
KworREM6OkRDKCkgPSBkZWZhdWx0OworREM6On5EQygpID0gZGVmYXVsdDsKKworVW5pcXVlUHRy
PERDPiBEQzo6RHVwKCkgeworICBic3NsOjpVbmlxdWVQdHI8REM+IHJldCA9IE1ha2VVbmlxdWU8
REM+KCk7CisgIGlmICghcmV0KSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKworICByZXQt
PnJhdyA9IFVwUmVmKHJhdyk7CisgIHJldC0+ZXhwZWN0ZWRfY2VydF92ZXJpZnlfYWxnb3JpdGht
ID0gZXhwZWN0ZWRfY2VydF92ZXJpZnlfYWxnb3JpdGhtOworICByZXQtPnBrZXkgPSBVcFJlZihw
a2V5KTsKKyAgcmV0dXJuIHJldDsKK30KKworLy8gc3RhdGljCitVbmlxdWVQdHI8REM+IERDOjpQ
YXJzZShDUllQVE9fQlVGRkVSICppbiwgdWludDhfdCAqb3V0X2FsZXJ0KSB7CisgIFVuaXF1ZVB0
cjxEQz4gZGMgPSBNYWtlVW5pcXVlPERDPigpOworICBpZiAoIWRjKSB7CisgICAgKm91dF9hbGVy
dCA9IFNTTF9BRF9JTlRFUk5BTF9FUlJPUjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorCisg
IGRjLT5yYXcgPSBVcFJlZihpbik7CisKKyAgQ0JTIHB1YmtleSwgZGVsZWcsIHNpZzsKKyAgdWlu
dDMyX3QgdmFsaWRfdGltZTsKKyAgdWludDE2X3QgYWxnb3JpdGhtOworICBDUllQVE9fQlVGRkVS
X2luaXRfQ0JTKGRjLT5yYXcuZ2V0KCksICZkZWxlZyk7CisgIGlmICghQ0JTX2dldF91MzIoJmRl
bGVnLCAmdmFsaWRfdGltZSkgfHwKKyAgICAgICFDQlNfZ2V0X3UxNigmZGVsZWcsICZkYy0+ZXhw
ZWN0ZWRfY2VydF92ZXJpZnlfYWxnb3JpdGhtKSB8fAorICAgICAgIUNCU19nZXRfdTI0X2xlbmd0
aF9wcmVmaXhlZCgmZGVsZWcsICZwdWJrZXkpIHx8CisgICAgICAhQ0JTX2dldF91MTYoJmRlbGVn
LCAmYWxnb3JpdGhtKSB8fAorICAgICAgIUNCU19nZXRfdTE2X2xlbmd0aF9wcmVmaXhlZCgmZGVs
ZWcsICZzaWcpIHx8CisgICAgICBDQlNfbGVuKCZkZWxlZykgIT0gMCkgeworICAgIE9QRU5TU0xf
UFVUX0VSUk9SKFNTTCwgU1NMX1JfREVDT0RFX0VSUk9SKTsKKyAgICAqb3V0X2FsZXJ0ID0gU1NM
X0FEX0RFQ09ERV9FUlJPUjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorCisgIGRjLT5wa2V5
LnJlc2V0KEVWUF9wYXJzZV9wdWJsaWNfa2V5KCZwdWJrZXkpKTsKKyAgaWYgKGRjLT5wa2V5ID09
IG51bGxwdHIpIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX0RFQ09ERV9FUlJP
Uik7CisgICAgKm91dF9hbGVydCA9IFNTTF9BRF9ERUNPREVfRVJST1I7CisgICAgcmV0dXJuIG51
bGxwdHI7CisgIH0KKworICByZXR1cm4gZGM7Cit9CisKKy8vIHNzbF9jYW5fc2VydmVfZGMgcmV0
dXJucyB0cnVlIGlmIHRoZSBob3N0IGhhcyBjb25maWd1cmVkIGEgREMgdGhhdCBpdCBjYW4KKy8v
IHNlcnZlIGluIHRoZSBoYW5kc2hha2UuIFNwZWNpZmljYWxseSwgaXQgY2hlY2tzIHRoYXQgYSBE
QyBoYXMgYmVlbgorLy8gY29uZmlndXJlZCBhbmQgdGhhdCB0aGUgREMgc2lnbmF0dXJlIGFsZ29y
aXRobSBpcyBzdXBwb3J0ZWQgYnkgdGhlIHBlZXIuCitzdGF0aWMgYm9vbCBzc2xfY2FuX3NlcnZl
X2RjKGNvbnN0IFNTTF9IQU5EU0hBS0UgKmhzKSB7CisgIC8vIENoZWNrIHRoYXQgYSBEQyBoYXMg
YmVlbiBjb25maWd1cmVkLgorICBjb25zdCBDRVJUICpjZXJ0ID0gaHMtPmNvbmZpZy0+Y2VydC5n
ZXQoKTsKKyAgaWYgKGNlcnQtPmRjID09IG51bGxwdHIgfHwKKyAgICAgIGNlcnQtPmRjLT5yYXcg
PT0gbnVsbHB0ciB8fAorICAgICAgKGNlcnQtPmRjX3ByaXZhdGVrZXkgPT0gbnVsbHB0ciAmJiBj
ZXJ0LT5kY19rZXlfbWV0aG9kID09IG51bGxwdHIpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9
CisKKyAgLy8gQ2hlY2sgdGhhdCAxLjMgb3IgaGlnaGVyIGhhcyBiZWVuIG5lZ290aWF0ZWQuCisg
IGNvbnN0IERDICpkYyA9IGNlcnQtPmRjLmdldCgpOworICBhc3NlcnQoaHMtPnNzbC0+czMtPmhh
dmVfdmVyc2lvbik7CisgIGlmIChzc2xfcHJvdG9jb2xfdmVyc2lvbihocy0+c3NsKSA8IFRMUzFf
M19WRVJTSU9OKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgLy8gQ2hlY2sgdGhhdCB0
aGUgREMgc2lnbmF0dXJlIGFsZ29yaXRobSBpcyBzdXBwb3J0ZWQgYnkgdGhlIHBlZXIuCisgIFNw
YW48Y29uc3QgdWludDE2X3Q+IHBlZXJfc2lnYWxncyA9IHRsczFfZ2V0X3BlZXJfdmVyaWZ5X2Fs
Z29yaXRobXMoaHMpOworICBib29sIHNpZ2FsZ19mb3VuZCA9IGZhbHNlOworICBmb3IgKHVpbnQx
Nl90IHBlZXJfc2lnYWxnIDogcGVlcl9zaWdhbGdzKSB7CisgICAgaWYgKGRjLT5leHBlY3RlZF9j
ZXJ0X3ZlcmlmeV9hbGdvcml0aG0gPT0gcGVlcl9zaWdhbGcpIHsKKyAgICAgIHNpZ2FsZ19mb3Vu
ZCA9IHRydWU7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICByZXR1cm4gc2lnYWxnX2Zv
dW5kOworfQorCitib29sIHNzbF9zaWduaW5nX3dpdGhfZGMoY29uc3QgU1NMX0hBTkRTSEFLRSAq
aHMpIHsKKyAgLy8gQXMgb2YgZHJhZnQtaWV0Zi10bHMtc3ViY2VydC0wMywgb25seSB0aGUgc2Vy
dmVyIG1heSB1c2UgZGVsZWdhdGVkCisgIC8vIGNyZWRlbnRpYWxzIHRvIGF1dGhlbnRpY2F0ZSBp
dHNlbGYuCisgIHJldHVybiBocy0+c3NsLT5zZXJ2ZXIgJiYKKyAgICAgICAgIGhzLT5kZWxlZ2F0
ZWRfY3JlZGVudGlhbF9yZXF1ZXN0ZWQgJiYKKyAgICAgICAgIHNzbF9jYW5fc2VydmVfZGMoaHMp
OworfQorCitzdGF0aWMgaW50IGNlcnRfc2V0X2RjKENFUlQgKmNlcnQsIENSWVBUT19CVUZGRVIg
KmNvbnN0IHJhdywgRVZQX1BLRVkgKnByaXZrZXksCisgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFNTTF9QUklWQVRFX0tFWV9NRVRIT0QgKmtleV9tZXRob2QpIHsKKyAgaWYgKHByaXZrZXkg
PT0gbnVsbHB0ciAmJiBrZXlfbWV0aG9kID09IG51bGxwdHIpIHsKKyAgICBPUEVOU1NMX1BVVF9F
UlJPUihTU0wsIEVSUl9SX1BBU1NFRF9OVUxMX1BBUkFNRVRFUik7CisgICAgcmV0dXJuIDA7Cisg
IH0KKworICBpZiAocHJpdmtleSAhPSBudWxscHRyICYmIGtleV9tZXRob2QgIT0gbnVsbHB0cikg
eworICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfQ0FOTk9UX0hBVkVfQk9USF9QUklW
S0VZX0FORF9NRVRIT0QpOworICAgIHJldHVybiAwOworICB9CisKKyAgdWludDhfdCBhbGVydDsK
KyAgVW5pcXVlUHRyPERDPiBkYyA9IERDOjpQYXJzZShyYXcsICZhbGVydCk7CisgIGlmIChkYyA9
PSBudWxscHRyKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9JTlZBTElEX0RF
TEVHQVRFRF9DUkVERU5USUFMKTsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIGlmIChwcml2a2V5
KSB7CisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgcHVibGljIGFuZCBwcml2YXRlIGtleXMgbWF0Y2gu
CisgICAgaWYgKCFzc2xfY29tcGFyZV9wdWJsaWNfYW5kX3ByaXZhdGVfa2V5KGRjLT5wa2V5Lmdl
dCgpLCBwcml2a2V5KSkgeworICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9DRVJU
SUZJQ0FURV9BTkRfUFJJVkFURV9LRVlfTUlTTUFUQ0gpOworICAgICAgcmV0dXJuIDA7CisgICAg
fQorICB9CisKKyAgY2VydC0+ZGMgPSBzdGQ6Om1vdmUoZGMpOworICBjZXJ0LT5kY19wcml2YXRl
a2V5ID0gVXBSZWYocHJpdmtleSk7CisgIGNlcnQtPmRjX2tleV9tZXRob2QgPSBrZXlfbWV0aG9k
OworCisgIHJldHVybiAxOworfQorCiBCU1NMX05BTUVTUEFDRV9FTkQKIAogdXNpbmcgbmFtZXNw
YWNlIGJzc2w7CkBAIC04NzAsMyArMTAwMSwxNiBAQCB2b2lkIFNTTF9zZXQwX2NsaWVudF9DQXMo
U1NMICpzc2wsIFNUQUNLX09GKENSWVBUT19CVUZGRVIpICpuYW1lX2xpc3QpIHsKICAgc3NsLT5j
dHgtPng1MDlfbWV0aG9kLT5zc2xfZmx1c2hfY2FjaGVkX2NsaWVudF9DQShzc2wtPmNvbmZpZy5n
ZXQoKSk7CiAgIHNzbC0+Y29uZmlnLT5jbGllbnRfQ0EucmVzZXQobmFtZV9saXN0KTsKIH0KKwor
aW50IFNTTF9zZXQxX2RlbGVnYXRlZF9jcmVkZW50aWFsKFNTTCAqc3NsLCBDUllQVE9fQlVGRkVS
ICpkYywgRVZQX1BLRVkgKnBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU1NMX1BSSVZBVEVfS0VZX01FVEhPRCAqa2V5X21ldGhvZCkgeworICBpZiAoIXNzbC0+
Y29uZmlnKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKworICByZXR1cm4gY2VydF9zZXRfZGMoc3Ns
LT5jb25maWctPmNlcnQuZ2V0KCksIGRjLCBwa2V5LCBrZXlfbWV0aG9kKTsKK30KKworaW50IFNT
TF9kZWxlZ2F0ZWRfY3JlZGVudGlhbF91c2VkKGNvbnN0IFNTTCAqc3NsKSB7CisgIHJldHVybiBz
c2wtPnMzLT5kZWxlZ2F0ZWRfY3JlZGVudGlhbF91c2VkOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Nz
bC9zc2xfa2V5X3NoYXJlLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfa2V5X3NoYXJlLmNjCmluZGV4IDgwYjdk
MGEwNGVhN2IzNTg4NTIyNGE5MGFkMzMyMDJkMTBjOTQ5NDYuLjgyNmZiMWFjYzU3Yzk4YmI2NDRl
MWE5ZjE5NDQwYTRkODFkNWMyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX2tleV9zaGFyZS5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvc3NsL3NzbF9rZXlfc2hhcmUuY2MKQEAgLTI0LDEyICsyNCwxNCBAQAogI2lu
Y2x1ZGUgPG9wZW5zc2wvY3VydmUyNTUxOS5oPgogI2luY2x1ZGUgPG9wZW5zc2wvZWMuaD4KICNp
bmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorI2luY2x1ZGUgPG9wZW5zc2wvaHJzcy5oPgogI2luY2x1
ZGUgPG9wZW5zc2wvbWVtLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KKyNpbmNsdWRlIDxv
cGVuc3NsL3JhbmQuaD4KIAogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSAiLi4vY3J5
cHRvL2ludGVybmFsLmgiCi0KKyNpbmNsdWRlICIuLi90aGlyZF9wYXJ0eS9zaWtlL3Npa2UuaCIK
IAogQlNTTF9OQU1FU1BBQ0VfQkVHSU4KIApAQCAtMzgsNyArNDAsNiBAQCBuYW1lc3BhY2Ugewog
Y2xhc3MgRUNLZXlTaGFyZSA6IHB1YmxpYyBTU0xLZXlTaGFyZSB7CiAgcHVibGljOgogICBFQ0tl
eVNoYXJlKGludCBuaWQsIHVpbnQxNl90IGdyb3VwX2lkKSA6IG5pZF8obmlkKSwgZ3JvdXBfaWRf
KGdyb3VwX2lkKSB7fQotICB+RUNLZXlTaGFyZSgpIG92ZXJyaWRlIHt9CiAKICAgdWludDE2X3Qg
R3JvdXBJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGdyb3VwX2lkXzsgfQogCkBAIC0xNTks
OSArMTYwLDYgQEAgY2xhc3MgRUNLZXlTaGFyZSA6IHB1YmxpYyBTU0xLZXlTaGFyZSB7CiBjbGFz
cyBYMjU1MTlLZXlTaGFyZSA6IHB1YmxpYyBTU0xLZXlTaGFyZSB7CiAgcHVibGljOgogICBYMjU1
MTlLZXlTaGFyZSgpIHt9Ci0gIH5YMjU1MTlLZXlTaGFyZSgpIG92ZXJyaWRlIHsKLSAgICBPUEVO
U1NMX2NsZWFuc2UocHJpdmF0ZV9rZXlfLCBzaXplb2YocHJpdmF0ZV9rZXlfKSk7Ci0gIH0KIAog
ICB1aW50MTZfdCBHcm91cElEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU1NMX0NVUlZFX1gy
NTUxOTsgfQogCkBAIC0yMTEsMTIgKzIwOSwxODYgQEAgY2xhc3MgWDI1NTE5S2V5U2hhcmUgOiBw
dWJsaWMgU1NMS2V5U2hhcmUgewogICB1aW50OF90IHByaXZhdGVfa2V5X1szMl07CiB9OwogCitj
bGFzcyBDRUNQUTJLZXlTaGFyZSA6IHB1YmxpYyBTU0xLZXlTaGFyZSB7CisgcHVibGljOgorICBD
RUNQUTJLZXlTaGFyZSgpIHt9CisKKyAgdWludDE2X3QgR3JvdXBJRCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFNTTF9DVVJWRV9DRUNQUTI7IH0KKworICBib29sIE9mZmVyKENCQiAqb3V0KSBv
dmVycmlkZSB7CisgICAgdWludDhfdCB4MjU1MTlfcHVibGljX2tleVszMl07CisgICAgWDI1NTE5
X2tleXBhaXIoeDI1NTE5X3B1YmxpY19rZXksIHgyNTUxOV9wcml2YXRlX2tleV8pOworCisgICAg
dWludDhfdCBocnNzX2VudHJvcHlbSFJTU19HRU5FUkFURV9LRVlfQllURVNdOworICAgIEhSU1Nf
cHVibGljX2tleSBocnNzX3B1YmxpY19rZXk7CisgICAgUkFORF9ieXRlcyhocnNzX2VudHJvcHks
IHNpemVvZihocnNzX2VudHJvcHkpKTsKKyAgICBIUlNTX2dlbmVyYXRlX2tleSgmaHJzc19wdWJs
aWNfa2V5LCAmaHJzc19wcml2YXRlX2tleV8sIGhyc3NfZW50cm9weSk7CisKKyAgICB1aW50OF90
IGhyc3NfcHVibGljX2tleV9ieXRlc1tIUlNTX1BVQkxJQ19LRVlfQllURVNdOworICAgIEhSU1Nf
bWFyc2hhbF9wdWJsaWNfa2V5KGhyc3NfcHVibGljX2tleV9ieXRlcywgJmhyc3NfcHVibGljX2tl
eSk7CisKKyAgICBpZiAoIUNCQl9hZGRfYnl0ZXMob3V0LCB4MjU1MTlfcHVibGljX2tleSwgc2l6
ZW9mKHgyNTUxOV9wdWJsaWNfa2V5KSkgfHwKKyAgICAgICAgIUNCQl9hZGRfYnl0ZXMob3V0LCBo
cnNzX3B1YmxpY19rZXlfYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihocnNz
X3B1YmxpY19rZXlfYnl0ZXMpKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHJldHVybiB0cnVlOworICB9CisKKyAgYm9vbCBBY2NlcHQoQ0JCICpvdXRfcHVibGljX2tleSwg
QXJyYXk8dWludDhfdD4gKm91dF9zZWNyZXQsCisgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dF9h
bGVydCwgU3Bhbjxjb25zdCB1aW50OF90PiBwZWVyX2tleSkgb3ZlcnJpZGUgeworICAgIEFycmF5
PHVpbnQ4X3Q+IHNlY3JldDsKKyAgICBpZiAoIXNlY3JldC5Jbml0KDMyICsgSFJTU19LRVlfQllU
RVMpKSB7CisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVSUl9SX01BTExPQ19GQUlMVVJF
KTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB1aW50OF90IHgyNTUxOV9wdWJs
aWNfa2V5WzMyXTsKKyAgICBYMjU1MTlfa2V5cGFpcih4MjU1MTlfcHVibGljX2tleSwgeDI1NTE5
X3ByaXZhdGVfa2V5Xyk7CisKKyAgICBIUlNTX3B1YmxpY19rZXkgcGVlcl9wdWJsaWNfa2V5Owor
ICAgIGlmIChwZWVyX2tleS5zaXplKCkgIT0gMzIgKyBIUlNTX1BVQkxJQ19LRVlfQllURVMgfHwK
KyAgICAgICAgIUhSU1NfcGFyc2VfcHVibGljX2tleSgmcGVlcl9wdWJsaWNfa2V5LCBwZWVyX2tl
eS5kYXRhKCkgKyAzMikgfHwKKyAgICAgICAgIVgyNTUxOShzZWNyZXQuZGF0YSgpLCB4MjU1MTlf
cHJpdmF0ZV9rZXlfLCBwZWVyX2tleS5kYXRhKCkpKSB7CisgICAgICAqb3V0X2FsZXJ0ID0gU1NM
X0FEX0RFQ09ERV9FUlJPUjsKKyAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfQkFE
X0VDUE9JTlQpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHVpbnQ4X3QgY2lw
aGVydGV4dFtIUlNTX0NJUEhFUlRFWFRfQllURVNdOworICAgIHVpbnQ4X3QgZW50cm9weVtIUlNT
X0VOQ0FQX0JZVEVTXTsKKyAgICBSQU5EX2J5dGVzKGVudHJvcHksIHNpemVvZihlbnRyb3B5KSk7
CisgICAgSFJTU19lbmNhcChjaXBoZXJ0ZXh0LCBzZWNyZXQuZGF0YSgpICsgMzIsICZwZWVyX3B1
YmxpY19rZXksIGVudHJvcHkpOworCisgICAgaWYgKCFDQkJfYWRkX2J5dGVzKG91dF9wdWJsaWNf
a2V5LCB4MjU1MTlfcHVibGljX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHgy
NTUxOV9wdWJsaWNfa2V5KSkgfHwKKyAgICAgICAgIUNCQl9hZGRfYnl0ZXMob3V0X3B1YmxpY19r
ZXksIGNpcGhlcnRleHQsIHNpemVvZihjaXBoZXJ0ZXh0KSkpIHsKKyAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICAqb3V0X3NlY3JldCA9IHN0ZDo6bW92ZShzZWNyZXQpOworICAgIHJl
dHVybiB0cnVlOworICB9CisKKyAgYm9vbCBGaW5pc2goQXJyYXk8dWludDhfdD4gKm91dF9zZWNy
ZXQsIHVpbnQ4X3QgKm91dF9hbGVydCwKKyAgICAgICAgICAgICAgU3Bhbjxjb25zdCB1aW50OF90
PiBwZWVyX2tleSkgb3ZlcnJpZGUgeworICAgICpvdXRfYWxlcnQgPSBTU0xfQURfSU5URVJOQUxf
RVJST1I7CisKKyAgICBBcnJheTx1aW50OF90PiBzZWNyZXQ7CisgICAgaWYgKCFzZWNyZXQuSW5p
dCgzMiArIEhSU1NfS0VZX0JZVEVTKSkgeworICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBF
UlJfUl9NQUxMT0NfRkFJTFVSRSk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
aWYgKHBlZXJfa2V5LnNpemUoKSAhPSAzMiArIEhSU1NfQ0lQSEVSVEVYVF9CWVRFUyB8fAorICAg
ICAgICAhWDI1NTE5KHNlY3JldC5kYXRhKCksIHgyNTUxOV9wcml2YXRlX2tleV8sIHBlZXJfa2V5
LmRhdGEoKSkpIHsKKyAgICAgICpvdXRfYWxlcnQgPSBTU0xfQURfREVDT0RFX0VSUk9SOworICAg
ICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9CQURfRUNQT0lOVCk7CisgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgSFJTU19kZWNhcChzZWNyZXQuZGF0YSgpICsgMzIsICZo
cnNzX3ByaXZhdGVfa2V5XywgcGVlcl9rZXkuZGF0YSgpICsgMzIsCisgICAgICAgICAgICAgICBw
ZWVyX2tleS5zaXplKCkgLSAzMik7CisKKyAgICAqb3V0X3NlY3JldCA9IHN0ZDo6bW92ZShzZWNy
ZXQpOworICAgIHJldHVybiB0cnVlOworICB9CisKKyBwcml2YXRlOgorICB1aW50OF90IHgyNTUx
OV9wcml2YXRlX2tleV9bMzJdOworICBIUlNTX3ByaXZhdGVfa2V5IGhyc3NfcHJpdmF0ZV9rZXlf
OworfTsKKworY2xhc3MgQ0VDUFEyYktleVNoYXJlIDogcHVibGljIFNTTEtleVNoYXJlIHsKKyBw
dWJsaWM6CisgIHVpbnQxNl90IEdyb3VwSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTU0xf
Q1VSVkVfQ0VDUFEyYjsgfQorCisgIGJvb2wgT2ZmZXIoQ0JCICpvdXQpIG92ZXJyaWRlIHsKKyAg
ICB1aW50OF90IHB1YmxpY194MjU1MTlbMzJdID0gezB9OworICAgIFgyNTUxOV9rZXlwYWlyKHB1
YmxpY194MjU1MTksIHByaXZhdGVfeDI1NTE5Xyk7CisgICAgaWYgKCFTSUtFX2tleXBhaXIocHJp
dmF0ZV9zaWtlXywgcHVibGljX3Npa2VfKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIHJldHVybiBDQkJfYWRkX2J5dGVzKG91dCwgcHVibGljX3gyNTUxOSwgc2l6ZW9mKHB1
YmxpY194MjU1MTkpKSAmJgorICAgICAgICAgICBDQkJfYWRkX2J5dGVzKG91dCwgcHVibGljX3Np
a2VfLCBzaXplb2YocHVibGljX3Npa2VfKSk7CisgIH0KKworICBib29sIEFjY2VwdChDQkIgKm91
dF9wdWJsaWNfa2V5LCBBcnJheTx1aW50OF90PiAqb3V0X3NlY3JldCwKKyAgICAgICAgICAgICAg
dWludDhfdCAqb3V0X2FsZXJ0LCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHBlZXJfa2V5KSBvdmVycmlk
ZSB7CisgICAgdWludDhfdCBwdWJsaWNfeDI1NTE5WzMyXTsKKyAgICB1aW50OF90IHByaXZhdGVf
eDI1NTE5WzMyXTsKKyAgICB1aW50OF90IHNpa2VfY2lwaGVydGV4dFtTSUtFX0NUX0JZVEVTWl0g
PSB7MH07CisKKyAgICAqb3V0X2FsZXJ0ID0gU1NMX0FEX0lOVEVSTkFMX0VSUk9SOworCisgICAg
aWYgKHBlZXJfa2V5LnNpemUoKSAhPSBzaXplb2YocHVibGljX3gyNTUxOSkgKyBTSUtFX1BVQl9C
WVRFU1opIHsKKyAgICAgICpvdXRfYWxlcnQgPSBTU0xfQURfREVDT0RFX0VSUk9SOworICAgICAg
T1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9CQURfRUNQT0lOVCk7CisgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgQXJyYXk8dWludDhfdD4gc2VjcmV0OworICAgIGlmICghc2Vj
cmV0LkluaXQoc2l6ZW9mKHByaXZhdGVfeDI1NTE5XykgKyBTSUtFX1NTX0JZVEVTWikpIHsKKyAg
ICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOworICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFgyNTUxOV9rZXlwYWlyKHB1YmxpY194MjU1MTks
IHByaXZhdGVfeDI1NTE5KTsKKyAgICBpZiAoIVgyNTUxOShzZWNyZXQuZGF0YSgpLCBwcml2YXRl
X3gyNTUxOSwgcGVlcl9rZXkuZGF0YSgpKSkgeworICAgICAgKm91dF9hbGVydCA9IFNTTF9BRF9E
RUNPREVfRVJST1I7CisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX0JBRF9FQ1BP
SU5UKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBTSUtFX2VuY2FwcyhzZWNy
ZXQuZGF0YSgpICsgc2l6ZW9mKHByaXZhdGVfeDI1NTE5XyksIHNpa2VfY2lwaGVydGV4dCwKKyAg
ICAgICAgICAgICAgICBwZWVyX2tleS5kYXRhKCkgKyBzaXplb2YocHVibGljX3gyNTUxOSkpOwor
ICAgICpvdXRfc2VjcmV0ID0gc3RkOjptb3ZlKHNlY3JldCk7CisKKyAgICByZXR1cm4gQ0JCX2Fk
ZF9ieXRlcyhvdXRfcHVibGljX2tleSwgcHVibGljX3gyNTUxOSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2YocHVibGljX3gyNTUxOSkpICYmCisgICAgICAgICAgIENCQl9hZGRfYnl0
ZXMob3V0X3B1YmxpY19rZXksIHNpa2VfY2lwaGVydGV4dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplb2Yoc2lrZV9jaXBoZXJ0ZXh0KSk7CisgIH0KKworICBib29sIEZpbmlzaChBcnJh
eTx1aW50OF90PiAqb3V0X3NlY3JldCwgdWludDhfdCAqb3V0X2FsZXJ0LAorICAgICAgICAgICAg
ICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHBlZXJfa2V5KSBvdmVycmlkZSB7CisgICAgKm91dF9hbGVy
dCA9IFNTTF9BRF9JTlRFUk5BTF9FUlJPUjsKKworICAgIEFycmF5PHVpbnQ4X3Q+IHNlY3JldDsK
KyAgICBpZiAoIXNlY3JldC5Jbml0KHNpemVvZihwcml2YXRlX3gyNTUxOV8pICsgU0lLRV9TU19C
WVRFU1opKSB7CisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVSUl9SX01BTExPQ19GQUlM
VVJFKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAocGVlcl9rZXkuc2l6
ZSgpICE9IDMyICsgU0lLRV9DVF9CWVRFU1ogfHwKKyAgICAgICAgIVgyNTUxOShzZWNyZXQuZGF0
YSgpLCBwcml2YXRlX3gyNTUxOV8sIHBlZXJfa2V5LmRhdGEoKSkpIHsKKyAgICAgICpvdXRfYWxl
cnQgPSBTU0xfQURfREVDT0RFX0VSUk9SOworICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBT
U0xfUl9CQURfRUNQT0lOVCk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgU0lL
RV9kZWNhcHMoc2VjcmV0LmRhdGEoKSArIHNpemVvZihwcml2YXRlX3gyNTUxOV8pLCBwZWVyX2tl
eS5kYXRhKCkgKyAzMiwKKyAgICAgICAgICAgICAgICBwdWJsaWNfc2lrZV8sIHByaXZhdGVfc2lr
ZV8pOworICAgICpvdXRfc2VjcmV0ID0gc3RkOjptb3ZlKHNlY3JldCk7CisgICAgcmV0dXJuIHRy
dWU7CisgIH0KKworIHByaXZhdGU6CisgIHVpbnQ4X3QgcHJpdmF0ZV94MjU1MTlfWzMyXTsKKyAg
dWludDhfdCBwcml2YXRlX3Npa2VfW1NJS0VfUFJWX0JZVEVTWl07CisgIHVpbnQ4X3QgcHVibGlj
X3Npa2VfW1NJS0VfUFVCX0JZVEVTWl07Cit9OworCiBDT05TVEVYUFJfQVJSQVkgTmFtZWRHcm91
cCBrTmFtZWRHcm91cHNbXSA9IHsKICAgICB7TklEX3NlY3AyMjRyMSwgU1NMX0NVUlZFX1NFQ1Ay
MjRSMSwgIlAtMjI0IiwgInNlY3AyMjRyMSJ9LAogICAgIHtOSURfWDlfNjJfcHJpbWUyNTZ2MSwg
U1NMX0NVUlZFX1NFQ1AyNTZSMSwgIlAtMjU2IiwgInByaW1lMjU2djEifSwKICAgICB7TklEX3Nl
Y3AzODRyMSwgU1NMX0NVUlZFX1NFQ1AzODRSMSwgIlAtMzg0IiwgInNlY3AzODRyMSJ9LAogICAg
IHtOSURfc2VjcDUyMXIxLCBTU0xfQ1VSVkVfU0VDUDUyMVIxLCAiUC01MjEiLCAic2VjcDUyMXIx
In0sCiAgICAge05JRF9YMjU1MTksIFNTTF9DVVJWRV9YMjU1MTksICJYMjU1MTkiLCAieDI1NTE5
In0sCisgICAge05JRF9DRUNQUTIsIFNTTF9DVVJWRV9DRUNQUTIsICJDRUNQUTIiLCAiQ0VDUFEy
In0sCisgICAge05JRF9DRUNQUTJiLCBTU0xfQ1VSVkVfQ0VDUFEyYiwgIkNFQ1BRMmIiLCAiQ0VD
UFEyYiJ9LAogfTsKIAogfSAgLy8gbmFtZXNwYWNlCkBAIC0yNDEsNiArNDEzLDEwIEBAIFVuaXF1
ZVB0cjxTU0xLZXlTaGFyZT4gU1NMS2V5U2hhcmU6OkNyZWF0ZSh1aW50MTZfdCBncm91cF9pZCkg
ewogICAgICAgICAgIE5ldzxFQ0tleVNoYXJlPihOSURfc2VjcDUyMXIxLCBTU0xfQ1VSVkVfU0VD
UDUyMVIxKSk7CiAgICAgY2FzZSBTU0xfQ1VSVkVfWDI1NTE5OgogICAgICAgcmV0dXJuIFVuaXF1
ZVB0cjxTU0xLZXlTaGFyZT4oTmV3PFgyNTUxOUtleVNoYXJlPigpKTsKKyAgICBjYXNlIFNTTF9D
VVJWRV9DRUNQUTI6CisgICAgICByZXR1cm4gVW5pcXVlUHRyPFNTTEtleVNoYXJlPihOZXc8Q0VD
UFEyS2V5U2hhcmU+KCkpOworICAgIGNhc2UgU1NMX0NVUlZFX0NFQ1BRMmI6CisgICAgICByZXR1
cm4gVW5pcXVlUHRyPFNTTEtleVNoYXJlPihOZXc8Q0VDUFEyYktleVNoYXJlPigpKTsKICAgICBk
ZWZhdWx0OgogICAgICAgcmV0dXJuIG51bGxwdHI7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wv
c3NsX2xpYi5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX2xpYi5jYwppbmRleCBiOWM4MjNkOTUxNTUxY2Y1YzA1
NGFlNjU1NTQ3MmViYWNhNjYzYmRiLi4xMTg2MzEyOWIwYjk1MDBiZDNjYTQ3M2ZlYWU1NjhkYWJj
M2E0NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9saWIuY2MKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xf
bGliLmNjCkBAIC0yMDEsNyArMjAxLDcgQEAgYm9vbCBDQkJGaW5pc2hBcnJheShDQkIgKmNiYiwg
QXJyYXk8dWludDhfdD4gKm91dCkgewogdm9pZCBzc2xfcmVzZXRfZXJyb3Jfc3RhdGUoU1NMICpz
c2wpIHsKICAgLy8gRnVuY3Rpb25zIHdoaWNoIHVzZSB8U1NMX2dldF9lcnJvcnwgbXVzdCByZXNl
dCBJL08gYW5kIGVycm9yIHN0YXRlIG9uCiAgIC8vIGVudHJ5LgotICBzc2wtPnMzLT5yd3N0YXRl
ID0gU1NMX05PVEhJTkc7CisgIHNzbC0+czMtPnJ3c3RhdGUgPSBTU0xfRVJST1JfTk9ORTsKICAg
RVJSX2NsZWFyX2Vycm9yKCk7CiAgIEVSUl9jbGVhcl9zeXN0ZW1fZXJyb3IoKTsKIH0KQEAgLTMy
Myw0NiArMzIzLDQ1IEBAIHZvaWQgc3NsX3VwZGF0ZV9jYWNoZShTU0xfSEFORFNIQUtFICpocywg
aW50IG1vZGUpIHsKICAgfQogfQogCi1zdGF0aWMgaW50IGNiYl9hZGRfaGV4KENCQiAqY2JiLCBj
b25zdCB1aW50OF90ICppbiwgc2l6ZV90IGluX2xlbikgeworc3RhdGljIGJvb2wgY2JiX2FkZF9o
ZXgoQ0JCICpjYmIsIFNwYW48Y29uc3QgdWludDhfdD4gaW4pIHsKICAgc3RhdGljIGNvbnN0IGNo
YXIgaGV4dGFibGVbXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKICAgdWludDhfdCAqb3V0OwogCi0g
IGlmICghQ0JCX2FkZF9zcGFjZShjYmIsICZvdXQsIGluX2xlbiAqIDIpKSB7Ci0gICAgcmV0dXJu
IDA7CisgIGlmICghQ0JCX2FkZF9zcGFjZShjYmIsICZvdXQsIGluLnNpemUoKSAqIDIpKSB7Cisg
ICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbl9sZW47
IGkrKykgewotICAgICoob3V0KyspID0gKHVpbnQ4X3QpaGV4dGFibGVbaW5baV0gPj4gNF07Ci0g
ICAgKihvdXQrKykgPSAodWludDhfdCloZXh0YWJsZVtpbltpXSAmIDB4Zl07CisgIGZvciAodWlu
dDhfdCBiIDogaW4pIHsKKyAgICAqKG91dCsrKSA9ICh1aW50OF90KWhleHRhYmxlW2IgPj4gNF07
CisgICAgKihvdXQrKykgPSAodWludDhfdCloZXh0YWJsZVtiICYgMHhmXTsKICAgfQogCi0gIHJl
dHVybiAxOworICByZXR1cm4gdHJ1ZTsKIH0KIAotaW50IHNzbF9sb2dfc2VjcmV0KGNvbnN0IFNT
TCAqc3NsLCBjb25zdCBjaGFyICpsYWJlbCwgY29uc3QgdWludDhfdCAqc2VjcmV0LAotICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBzZWNyZXRfbGVuKSB7Citib29sIHNzbF9sb2dfc2VjcmV0KGNv
bnN0IFNTTCAqc3NsLCBjb25zdCBjaGFyICpsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgU3Bh
bjxjb25zdCB1aW50OF90PiBzZWNyZXQpIHsKICAgaWYgKHNzbC0+Y3R4LT5rZXlsb2dfY2FsbGJh
Y2sgPT0gTlVMTCkgewotICAgIHJldHVybiAxOworICAgIHJldHVybiB0cnVlOwogICB9CiAKICAg
U2NvcGVkQ0JCIGNiYjsKLSAgdWludDhfdCAqb3V0OwotICBzaXplX3Qgb3V0X2xlbjsKKyAgQXJy
YXk8dWludDhfdD4gbGluZTsKICAgaWYgKCFDQkJfaW5pdChjYmIuZ2V0KCksIHN0cmxlbihsYWJl
bCkgKyAxICsgU1NMM19SQU5ET01fU0laRSAqIDIgKyAxICsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VjcmV0X2xlbiAqIDIgKyAxKSB8fAotICAgICAgIUNCQl9hZGRfYnl0ZXMoY2JiLmdl
dCgpLCAoY29uc3QgdWludDhfdCAqKWxhYmVsLCBzdHJsZW4obGFiZWwpKSB8fAotICAgICAgIUNC
Ql9hZGRfYnl0ZXMoY2JiLmdldCgpLCAoY29uc3QgdWludDhfdCAqKSIgIiwgMSkgfHwKLSAgICAg
ICFjYmJfYWRkX2hleChjYmIuZ2V0KCksIHNzbC0+czMtPmNsaWVudF9yYW5kb20sIFNTTDNfUkFO
RE9NX1NJWkUpIHx8Ci0gICAgICAhQ0JCX2FkZF9ieXRlcyhjYmIuZ2V0KCksIChjb25zdCB1aW50
OF90ICopIiAiLCAxKSB8fAotICAgICAgIWNiYl9hZGRfaGV4KGNiYi5nZXQoKSwgc2VjcmV0LCBz
ZWNyZXRfbGVuKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3JldC5zaXpl
KCkgKiAyICsgMSkgfHwKKyAgICAgICFDQkJfYWRkX2J5dGVzKGNiYi5nZXQoKSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGxhYmVsKSwKKyAgICAgICAgICAgICAgICAgICAgIHN0
cmxlbihsYWJlbCkpIHx8CisgICAgICAhQ0JCX2FkZF91OChjYmIuZ2V0KCksICcgJykgfHwKKyAg
ICAgICFjYmJfYWRkX2hleChjYmIuZ2V0KCksIHNzbC0+czMtPmNsaWVudF9yYW5kb20pIHx8Cisg
ICAgICAhQ0JCX2FkZF91OChjYmIuZ2V0KCksICcgJykgfHwKKyAgICAgICFjYmJfYWRkX2hleChj
YmIuZ2V0KCksIHNlY3JldCkgfHwKICAgICAgICFDQkJfYWRkX3U4KGNiYi5nZXQoKSwgMCAvKiBO
VUwgKi8pIHx8Ci0gICAgICAhQ0JCX2ZpbmlzaChjYmIuZ2V0KCksICZvdXQsICZvdXRfbGVuKSkg
ewotICAgIHJldHVybiAwOworICAgICAgIUNCQkZpbmlzaEFycmF5KGNiYi5nZXQoKSwgJmxpbmUp
KSB7CisgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgc3NsLT5jdHgtPmtleWxvZ19jYWxsYmFj
ayhzc2wsIChjb25zdCBjaGFyICopb3V0KTsKLSAgT1BFTlNTTF9mcmVlKG91dCk7Ci0gIHJldHVy
biAxOworICBzc2wtPmN0eC0+a2V5bG9nX2NhbGxiYWNrKHNzbCwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyICo+KGxpbmUuZGF0YSgpKSk7CisgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIHNz
bF9kb19pbmZvX2NhbGxiYWNrKGNvbnN0IFNTTCAqc3NsLCBpbnQgdHlwZSwgaW50IHZhbHVlKSB7
CkBAIC0zNzgsNyArMzc3LDcgQEAgdm9pZCBzc2xfZG9faW5mb19jYWxsYmFjayhjb25zdCBTU0wg
KnNzbCwgaW50IHR5cGUsIGludCB2YWx1ZSkgewogICB9CiB9CiAKLXZvaWQgc3NsX2RvX21zZ19j
YWxsYmFjayhTU0wgKnNzbCwgaW50IGlzX3dyaXRlLCBpbnQgY29udGVudF90eXBlLAordm9pZCBz
c2xfZG9fbXNnX2NhbGxiYWNrKGNvbnN0IFNTTCAqc3NsLCBpbnQgaXNfd3JpdGUsIGludCBjb250
ZW50X3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBp
bikgewogICBpZiAoc3NsLT5tc2dfY2FsbGJhY2sgPT0gTlVMTCkgewogICAgIHJldHVybjsKQEAg
LTM5OSw4ICszOTgsOCBAQCB2b2lkIHNzbF9kb19tc2dfY2FsbGJhY2soU1NMICpzc2wsIGludCBp
c193cml0ZSwgaW50IGNvbnRlbnRfdHlwZSwKICAgICAgIHZlcnNpb24gPSBTU0xfdmVyc2lvbihz
c2wpOwogICB9CiAKLSAgc3NsLT5tc2dfY2FsbGJhY2soaXNfd3JpdGUsIHZlcnNpb24sIGNvbnRl
bnRfdHlwZSwgaW4uZGF0YSgpLCBpbi5zaXplKCksIHNzbCwKLSAgICAgICAgICAgICAgICAgICAg
c3NsLT5tc2dfY2FsbGJhY2tfYXJnKTsKKyAgc3NsLT5tc2dfY2FsbGJhY2soaXNfd3JpdGUsIHZl
cnNpb24sIGNvbnRlbnRfdHlwZSwgaW4uZGF0YSgpLCBpbi5zaXplKCksCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0X2Nhc3Q8U1NMICo+KHNzbCksIHNzbC0+bXNnX2NhbGxiYWNrX2FyZyk7CiB9
CiAKIHZvaWQgc3NsX2dldF9jdXJyZW50X3RpbWUoY29uc3QgU1NMICpzc2wsIHN0cnVjdCBPUEVO
U1NMX3RpbWV2YWwgKm91dF9jbG9jaykgewpAQCAtNTA2LDYgKzUwNSwyNyBAQCB2b2lkIFNTTF9z
ZXRfaGFuZG9mZl9tb2RlKFNTTCAqc3NsLCBib29sIG9uKSB7CiAgIHNzbC0+Y29uZmlnLT5oYW5k
b2ZmID0gb247CiB9CiAKK2Jvb2wgU1NMX2dldF90cmFmZmljX3NlY3JldHMoY29uc3QgU1NMICpz
c2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYW48Y29uc3QgdWludDhfdD4gKm91
dF9yZWFkX3RyYWZmaWNfc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGFu
PGNvbnN0IHVpbnQ4X3Q+ICpvdXRfd3JpdGVfdHJhZmZpY19zZWNyZXQpIHsKKyAgaWYgKFNTTF92
ZXJzaW9uKHNzbCkgPCBUTFMxXzNfVkVSU0lPTikgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNT
TCwgU1NMX1JfV1JPTkdfU1NMX1ZFUlNJT04pOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisg
IGlmICghc3NsLT5zMy0+aW5pdGlhbF9oYW5kc2hha2VfY29tcGxldGUpIHsKKyAgICBPUEVOU1NM
X1BVVF9FUlJPUihTU0wsIFNTTF9SX0hBTkRTSEFLRV9OT1RfQ09NUExFVEUpOworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorCisgICpvdXRfcmVhZF90cmFmZmljX3NlY3JldCA9IFNwYW48Y29uc3Qg
dWludDhfdD4oCisgICAgICBzc2wtPnMzLT5yZWFkX3RyYWZmaWNfc2VjcmV0LCBzc2wtPnMzLT5y
ZWFkX3RyYWZmaWNfc2VjcmV0X2xlbik7CisgICpvdXRfd3JpdGVfdHJhZmZpY19zZWNyZXQgPSBT
cGFuPGNvbnN0IHVpbnQ4X3Q+KAorICAgICAgc3NsLT5zMy0+d3JpdGVfdHJhZmZpY19zZWNyZXQs
IHNzbC0+czMtPndyaXRlX3RyYWZmaWNfc2VjcmV0X2xlbik7CisKKyAgcmV0dXJuIHRydWU7Cit9
CisKIEJTU0xfTkFNRVNQQUNFX0VORAogCiB1c2luZyBuYW1lc3BhY2UgYnNzbDsKQEAgLTU0OCw3
ICs1NjgsOCBAQCBzc2xfY3R4X3N0Ojpzc2xfY3R4X3N0KGNvbnN0IFNTTF9NRVRIT0QgKnNzbF9t
ZXRob2QpCiAgICAgICBmYWxzZV9zdGFydF9hbGxvd2VkX3dpdGhvdXRfYWxwbihmYWxzZSksCiAg
ICAgICBpZ25vcmVfdGxzMTNfZG93bmdyYWRlKGZhbHNlKSwKICAgICAgIGhhbmRvZmYoZmFsc2Up
LAotICAgICAgZW5hYmxlX2Vhcmx5X2RhdGEoZmFsc2UpIHsKKyAgICAgIGVuYWJsZV9lYXJseV9k
YXRhKGZhbHNlKSwKKyAgICAgIHBxX2V4cGVyaW1lbnRfc2lnbmFsKGZhbHNlKSB7CiAgIENSWVBU
T19NVVRFWF9pbml0KCZsb2NrKTsKICAgQ1JZUFRPX25ld19leF9kYXRhKCZleF9kYXRhKTsKIH0K
QEAgLTYxOSw3ICs2NDAsNiBAQCBzc2xfc3Q6OnNzbF9zdChTU0xfQ1RYICpjdHhfYXJnKQogICAg
ICAgbWF4X3NlbmRfZnJhZ21lbnQoY3R4X2FyZy0+bWF4X3NlbmRfZnJhZ21lbnQpLAogICAgICAg
bXNnX2NhbGxiYWNrKGN0eF9hcmctPm1zZ19jYWxsYmFjayksCiAgICAgICBtc2dfY2FsbGJhY2tf
YXJnKGN0eF9hcmctPm1zZ19jYWxsYmFja19hcmcpLAotICAgICAgdGxzMTNfdmFyaWFudChjdHhf
YXJnLT50bHMxM192YXJpYW50KSwKICAgICAgIGN0eChVcFJlZihjdHhfYXJnKSksCiAgICAgICBz
ZXNzaW9uX2N0eChVcFJlZihjdHhfYXJnKSksCiAgICAgICBvcHRpb25zKGN0eC0+b3B0aW9ucyks
CkBAIC02OTQsNiArNzE0LDcgQEAgU1NMICpTU0xfbmV3KFNTTF9DVFggKmN0eCkgewogICBzc2wt
PmNvbmZpZy0+b2NzcF9zdGFwbGluZ19lbmFibGVkID0gY3R4LT5vY3NwX3N0YXBsaW5nX2VuYWJs
ZWQ7CiAgIHNzbC0+Y29uZmlnLT5oYW5kb2ZmID0gY3R4LT5oYW5kb2ZmOwogICBzc2wtPmNvbmZp
Zy0+aWdub3JlX3RsczEzX2Rvd25ncmFkZSA9IGN0eC0+aWdub3JlX3RsczEzX2Rvd25ncmFkZTsK
KyAgc3NsLT5xdWljX21ldGhvZCA9IGN0eC0+cXVpY19tZXRob2Q7CiAKICAgaWYgKCFzc2wtPm1l
dGhvZC0+c3NsX25ldyhzc2wuZ2V0KCkpIHx8CiAgICAgICAhc3NsLT5jdHgtPng1MDlfbWV0aG9k
LT5zc2xfbmV3KHNzbC0+czMtPmhzLmdldCgpKSkgewpAQCAtNzA4LDYgKzcyOSw3IEBAIFNTTF9D
T05GSUc6OlNTTF9DT05GSUcoU1NMICpzc2xfYXJnKQogICAgICAgc2lnbmVkX2NlcnRfdGltZXN0
YW1wc19lbmFibGVkKGZhbHNlKSwKICAgICAgIG9jc3Bfc3RhcGxpbmdfZW5hYmxlZChmYWxzZSks
CiAgICAgICBjaGFubmVsX2lkX2VuYWJsZWQoZmFsc2UpLAorICAgICAgZW5mb3JjZV9yc2Ffa2V5
X3VzYWdlKGZhbHNlKSwKICAgICAgIHJldGFpbl9vbmx5X3NoYTI1Nl9vZl9jbGllbnRfY2VydHMo
ZmFsc2UpLAogICAgICAgaGFuZG9mZihmYWxzZSksCiAgICAgICBzaGVkX2hhbmRzaGFrZV9jb25m
aWcoZmFsc2UpLApAQCAtODMwLDcgKzg1Miw3IEBAIGVudW0gc3NsX2VuY3J5cHRpb25fbGV2ZWxf
dCBTU0xfcXVpY193cml0ZV9sZXZlbChjb25zdCBTU0wgKnNzbCkgewogCiBpbnQgU1NMX3Byb3Zp
ZGVfcXVpY19kYXRhKFNTTCAqc3NsLCBlbnVtIHNzbF9lbmNyeXB0aW9uX2xldmVsX3QgbGV2ZWws
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBs
ZW4pIHsKLSAgaWYgKHNzbC0+Y3R4LT5xdWljX21ldGhvZCA9PSBudWxscHRyKSB7CisgIGlmIChz
c2wtPnF1aWNfbWV0aG9kID09IG51bGxwdHIpIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0ws
IEVSUl9SX1NIT1VMRF9OT1RfSEFWRV9CRUVOX0NBTExFRCk7CiAgICAgcmV0dXJuIDA7CiAgIH0K
QEAgLTEwNTcsNyArMTA3OSw3IEBAIGludCBTU0xfcmVhZChTU0wgKnNzbCwgdm9pZCAqYnVmLCBp
bnQgbnVtKSB7CiB9CiAKIGludCBTU0xfcGVlayhTU0wgKnNzbCwgdm9pZCAqYnVmLCBpbnQgbnVt
KSB7Ci0gIGlmIChzc2wtPmN0eC0+cXVpY19tZXRob2QgIT0gbnVsbHB0cikgeworICBpZiAoc3Ns
LT5xdWljX21ldGhvZCAhPSBudWxscHRyKSB7CiAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBF
UlJfUl9TSE9VTERfTk9UX0hBVkVfQkVFTl9DQUxMRUQpOwogICAgIHJldHVybiAwOwogICB9CkBA
IC0xMDc4LDcgKzExMDAsNyBAQCBpbnQgU1NMX3BlZWsoU1NMICpzc2wsIHZvaWQgKmJ1ZiwgaW50
IG51bSkgewogaW50IFNTTF93cml0ZShTU0wgKnNzbCwgY29uc3Qgdm9pZCAqYnVmLCBpbnQgbnVt
KSB7CiAgIHNzbF9yZXNldF9lcnJvcl9zdGF0ZShzc2wpOwogCi0gIGlmIChzc2wtPmN0eC0+cXVp
Y19tZXRob2QgIT0gbnVsbHB0cikgeworICBpZiAoc3NsLT5xdWljX21ldGhvZCAhPSBudWxscHRy
KSB7CiAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBFUlJfUl9TSE9VTERfTk9UX0hBVkVfQkVF
Tl9DQUxMRUQpOwogICAgIHJldHVybiAwOwogICB9CkBAIC0xMTE0LDYgKzExMzYsMzcgQEAgaW50
IFNTTF93cml0ZShTU0wgKnNzbCwgY29uc3Qgdm9pZCAqYnVmLCBpbnQgbnVtKSB7CiAgIHJldHVy
biByZXQ7CiB9CiAKK2ludCBTU0xfa2V5X3VwZGF0ZShTU0wgKnNzbCwgaW50IHJlcXVlc3RfdHlw
ZSkgeworICBzc2xfcmVzZXRfZXJyb3Jfc3RhdGUoc3NsKTsKKworICBpZiAoc3NsLT5kb19oYW5k
c2hha2UgPT0gTlVMTCkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfVU5JTklU
SUFMSVpFRCk7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBpZiAoc3NsLT5jdHgtPnF1aWNfbWV0
aG9kICE9IG51bGxwdHIpIHsKKyAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVSUl9SX1NIT1VM
RF9OT1RfSEFWRV9CRUVOX0NBTExFRCk7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBpZiAoIXNz
bC0+czMtPmluaXRpYWxfaGFuZHNoYWtlX2NvbXBsZXRlKSB7CisgICAgT1BFTlNTTF9QVVRfRVJS
T1IoU1NMLCBTU0xfUl9IQU5EU0hBS0VfTk9UX0NPTVBMRVRFKTsKKyAgICByZXR1cm4gMDsKKyAg
fQorCisgIGlmIChzc2xfcHJvdG9jb2xfdmVyc2lvbihzc2wpIDwgVExTMV8zX1ZFUlNJT04pIHsK
KyAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX1dST05HX1NTTF9WRVJTSU9OKTsKKyAg
ICByZXR1cm4gMDsKKyAgfQorCisgIGlmICghc3NsLT5zMy0+a2V5X3VwZGF0ZV9wZW5kaW5nICYm
CisgICAgICAhdGxzMTNfYWRkX2tleV91cGRhdGUoc3NsLCByZXF1ZXN0X3R5cGUpKSB7CisgICAg
cmV0dXJuIDA7CisgIH0KKworICByZXR1cm4gMTsKK30KKwogaW50IFNTTF9zaHV0ZG93bihTU0wg
KnNzbCkgewogICBzc2xfcmVzZXRfZXJyb3Jfc3RhdGUoc3NsKTsKIApAQCAtMTE0Miw3ICsxMTk1
LDcgQEAgaW50IFNTTF9zaHV0ZG93bihTU0wgKnNzbCkgewogCiAgIGlmIChzc2wtPnMzLT53cml0
ZV9zaHV0ZG93biAhPSBzc2xfc2h1dGRvd25fY2xvc2Vfbm90aWZ5KSB7CiAgICAgLy8gU2VuZCBh
IGNsb3NlX25vdGlmeS4KLSAgICBpZiAoc3NsX3NlbmRfYWxlcnQoc3NsLCBTU0wzX0FMX1dBUk5J
TkcsIFNTTF9BRF9DTE9TRV9OT1RJRlkpIDw9IDApIHsKKyAgICBpZiAoc3NsX3NlbmRfYWxlcnRf
aW1wbChzc2wsIFNTTDNfQUxfV0FSTklORywgU1NMX0FEX0NMT1NFX05PVElGWSkgPD0gMCkgewog
ICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgfSBlbHNlIGlmIChzc2wtPnMzLT5hbGVydF9kaXNw
YXRjaCkgewpAQCAtMTE4OSw3ICsxMjQyLDE1IEBAIGludCBTU0xfc2VuZF9mYXRhbF9hbGVydChT
U0wgKnNzbCwgdWludDhfdCBhbGVydCkgewogICAgIHJldHVybiBzc2wtPm1ldGhvZC0+ZGlzcGF0
Y2hfYWxlcnQoc3NsKTsKICAgfQogCi0gIHJldHVybiBzc2xfc2VuZF9hbGVydChzc2wsIFNTTDNf
QUxfRkFUQUwsIGFsZXJ0KTsKKyAgcmV0dXJuIHNzbF9zZW5kX2FsZXJ0X2ltcGwoc3NsLCBTU0wz
X0FMX0ZBVEFMLCBhbGVydCk7Cit9CisKK3ZvaWQgU1NMX0NUWF9lbmFibGVfcHFfZXhwZXJpbWVu
dF9zaWduYWwoU1NMX0NUWCAqY3R4KSB7CisgIGN0eC0+cHFfZXhwZXJpbWVudF9zaWduYWwgPSB0
cnVlOworfQorCitpbnQgU1NMX3BxX2V4cGVyaW1lbnRfc2lnbmFsX3NlZW4oY29uc3QgU1NMICpz
c2wpIHsKKyAgcmV0dXJuIHNzbC0+czMtPnBxX2V4cGVyaW1lbnRfc2lnbmFsX3NlZW47CiB9CiAK
IGludCBTU0xfc2V0X3F1aWNfdHJhbnNwb3J0X3BhcmFtcyhTU0wgKnNzbCwgY29uc3QgdWludDhf
dCAqcGFyYW1zLApAQCAtMTIwOSwxNCArMTI3MCw2IEBAIHZvaWQgU1NMX0NUWF9zZXRfZWFybHlf
ZGF0YV9lbmFibGVkKFNTTF9DVFggKmN0eCwgaW50IGVuYWJsZWQpIHsKICAgY3R4LT5lbmFibGVf
ZWFybHlfZGF0YSA9ICEhZW5hYmxlZDsKIH0KIAotdm9pZCBTU0xfQ1RYX3NldF90bHMxM192YXJp
YW50KFNTTF9DVFggKmN0eCwgZW51bSB0bHMxM192YXJpYW50X3QgdmFyaWFudCkgewotICBjdHgt
PnRsczEzX3ZhcmlhbnQgPSB2YXJpYW50OwotfQotCi12b2lkIFNTTF9zZXRfdGxzMTNfdmFyaWFu
dChTU0wgKnNzbCwgZW51bSB0bHMxM192YXJpYW50X3QgdmFyaWFudCkgewotICBzc2wtPnRsczEz
X3ZhcmlhbnQgPSB2YXJpYW50OwotfQotCiB2b2lkIFNTTF9zZXRfZWFybHlfZGF0YV9lbmFibGVk
KFNTTCAqc3NsLCBpbnQgZW5hYmxlZCkgewogICBzc2wtPmVuYWJsZV9lYXJseV9kYXRhID0gISFl
bmFibGVkOwogfQpAQCAtMTI0OSw2ICsxMzAyLDEwIEBAIHZvaWQgU1NMX3Jlc2V0X2Vhcmx5X2Rh
dGFfcmVqZWN0KFNTTCAqc3NsKSB7CiAgIHNzbC0+czMtPndwZW5kX3BlbmRpbmcgPSBmYWxzZTsK
IH0KIAorZW51bSBzc2xfZWFybHlfZGF0YV9yZWFzb25fdCBTU0xfZ2V0X2Vhcmx5X2RhdGFfcmVh
c29uKGNvbnN0IFNTTCAqc3NsKSB7CisgIHJldHVybiBzc2wtPnMzLT5lYXJseV9kYXRhX3JlYXNv
bjsKK30KKwogc3RhdGljIGludCBiaW9fcmV0cnlfcmVhc29uX3RvX2Vycm9yKGludCByZWFzb24p
IHsKICAgc3dpdGNoIChyZWFzb24pIHsKICAgICBjYXNlIEJJT19SUl9DT05ORUNUOgpAQCAtMTI4
NiwyMCArMTM0MywyMCBAQCBpbnQgU1NMX2dldF9lcnJvcihjb25zdCBTU0wgKnNzbCwgaW50IHJl
dF9jb2RlKSB7CiAgIH0KIAogICBzd2l0Y2ggKHNzbC0+czMtPnJ3c3RhdGUpIHsKLSAgICBjYXNl
IFNTTF9QRU5ESU5HX1NFU1NJT046Ci0gICAgICByZXR1cm4gU1NMX0VSUk9SX1BFTkRJTkdfU0VT
U0lPTjsKLQotICAgIGNhc2UgU1NMX0NFUlRJRklDQVRFX1NFTEVDVElPTl9QRU5ESU5HOgotICAg
ICAgcmV0dXJuIFNTTF9FUlJPUl9QRU5ESU5HX0NFUlRJRklDQVRFOwotCi0gICAgY2FzZSBTU0xf
SEFORE9GRjoKLSAgICAgIHJldHVybiBTU0xfRVJST1JfSEFORE9GRjsKLQotICAgIGNhc2UgU1NM
X0hBTkRCQUNLOgotICAgICAgcmV0dXJuIFNTTF9FUlJPUl9IQU5EQkFDSzsKLQotICAgIGNhc2Ug
U1NMX1JFQURJTkc6IHsKLSAgICAgIGlmIChzc2wtPmN0eC0+cXVpY19tZXRob2QpIHsKKyAgICBj
YXNlIFNTTF9FUlJPUl9QRU5ESU5HX1NFU1NJT046CisgICAgY2FzZSBTU0xfRVJST1JfUEVORElO
R19DRVJUSUZJQ0FURToKKyAgICBjYXNlIFNTTF9FUlJPUl9IQU5ET0ZGOgorICAgIGNhc2UgU1NM
X0VSUk9SX0hBTkRCQUNLOgorICAgIGNhc2UgU1NMX0VSUk9SX1dBTlRfWDUwOV9MT09LVVA6Cisg
ICAgY2FzZSBTU0xfRVJST1JfV0FOVF9DSEFOTkVMX0lEX0xPT0tVUDoKKyAgICBjYXNlIFNTTF9F
UlJPUl9XQU5UX1BSSVZBVEVfS0VZX09QRVJBVElPTjoKKyAgICBjYXNlIFNTTF9FUlJPUl9QRU5E
SU5HX1RJQ0tFVDoKKyAgICBjYXNlIFNTTF9FUlJPUl9FQVJMWV9EQVRBX1JFSkVDVEVEOgorICAg
IGNhc2UgU1NMX0VSUk9SX1dBTlRfQ0VSVElGSUNBVEVfVkVSSUZZOgorICAgICAgcmV0dXJuIHNz
bC0+czMtPnJ3c3RhdGU7CisKKyAgICBjYXNlIFNTTF9FUlJPUl9XQU5UX1JFQUQ6IHsKKyAgICAg
IGlmIChzc2wtPnF1aWNfbWV0aG9kKSB7CiAgICAgICAgIHJldHVybiBTU0xfRVJST1JfV0FOVF9S
RUFEOwogICAgICAgfQogICAgICAgQklPICpiaW8gPSBTU0xfZ2V0X3JiaW8oc3NsKTsKQEAgLTEz
MjAsNyArMTM3Nyw3IEBAIGludCBTU0xfZ2V0X2Vycm9yKGNvbnN0IFNTTCAqc3NsLCBpbnQgcmV0
X2NvZGUpIHsKICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgU1NMX1dSSVRJTkc6IHsK
KyAgICBjYXNlIFNTTF9FUlJPUl9XQU5UX1dSSVRFOiB7CiAgICAgICBCSU8gKmJpbyA9IFNTTF9n
ZXRfd2Jpbyhzc2wpOwogICAgICAgaWYgKEJJT19zaG91bGRfd3JpdGUoYmlvKSkgewogICAgICAg
ICByZXR1cm4gU1NMX0VSUk9SX1dBTlRfV1JJVEU7CkBAIC0xMzM4LDI5ICsxMzk1LDU0IEBAIGlu
dCBTU0xfZ2V0X2Vycm9yKGNvbnN0IFNTTCAqc3NsLCBpbnQgcmV0X2NvZGUpIHsKIAogICAgICAg
YnJlYWs7CiAgICAgfQotCi0gICAgY2FzZSBTU0xfWDUwOV9MT09LVVA6Ci0gICAgICByZXR1cm4g
U1NMX0VSUk9SX1dBTlRfWDUwOV9MT09LVVA7Ci0KLSAgICBjYXNlIFNTTF9DSEFOTkVMX0lEX0xP
T0tVUDoKLSAgICAgIHJldHVybiBTU0xfRVJST1JfV0FOVF9DSEFOTkVMX0lEX0xPT0tVUDsKLQot
ICAgIGNhc2UgU1NMX1BSSVZBVEVfS0VZX09QRVJBVElPTjoKLSAgICAgIHJldHVybiBTU0xfRVJS
T1JfV0FOVF9QUklWQVRFX0tFWV9PUEVSQVRJT047Ci0KLSAgICBjYXNlIFNTTF9QRU5ESU5HX1RJ
Q0tFVDoKLSAgICAgIHJldHVybiBTU0xfRVJST1JfUEVORElOR19USUNLRVQ7Ci0KLSAgICBjYXNl
IFNTTF9FQVJMWV9EQVRBX1JFSkVDVEVEOgotICAgICAgcmV0dXJuIFNTTF9FUlJPUl9FQVJMWV9E
QVRBX1JFSkVDVEVEOwotCi0gICAgY2FzZSBTU0xfQ0VSVElGSUNBVEVfVkVSSUZZOgotICAgICAg
cmV0dXJuIFNTTF9FUlJPUl9XQU5UX0NFUlRJRklDQVRFX1ZFUklGWTsKICAgfQogCiAgIHJldHVy
biBTU0xfRVJST1JfU1lTQ0FMTDsKIH0KIAorY29uc3QgY2hhciAqU1NMX2Vycm9yX2Rlc2NyaXB0
aW9uKGludCBlcnIpIHsKKyAgc3dpdGNoIChlcnIpIHsKKyAgICBjYXNlIFNTTF9FUlJPUl9OT05F
OgorICAgICAgcmV0dXJuICJOT05FIjsKKyAgICBjYXNlIFNTTF9FUlJPUl9TU0w6CisgICAgICBy
ZXR1cm4gIlNTTCI7CisgICAgY2FzZSBTU0xfRVJST1JfV0FOVF9SRUFEOgorICAgICAgcmV0dXJu
ICJXQU5UX1JFQUQiOworICAgIGNhc2UgU1NMX0VSUk9SX1dBTlRfV1JJVEU6CisgICAgICByZXR1
cm4gIldBTlRfV1JJVEUiOworICAgIGNhc2UgU1NMX0VSUk9SX1dBTlRfWDUwOV9MT09LVVA6Cisg
ICAgICByZXR1cm4gIldBTlRfWDUwOV9MT09LVVAiOworICAgIGNhc2UgU1NMX0VSUk9SX1NZU0NB
TEw6CisgICAgICByZXR1cm4gIlNZU0NBTEwiOworICAgIGNhc2UgU1NMX0VSUk9SX1pFUk9fUkVU
VVJOOgorICAgICAgcmV0dXJuICJaRVJPX1JFVFVSTiI7CisgICAgY2FzZSBTU0xfRVJST1JfV0FO
VF9DT05ORUNUOgorICAgICAgcmV0dXJuICJXQU5UX0NPTk5FQ1QiOworICAgIGNhc2UgU1NMX0VS
Uk9SX1dBTlRfQUNDRVBUOgorICAgICAgcmV0dXJuICJXQU5UX0FDQ0VQVCI7CisgICAgY2FzZSBT
U0xfRVJST1JfV0FOVF9DSEFOTkVMX0lEX0xPT0tVUDoKKyAgICAgIHJldHVybiAiV0FOVF9DSEFO
TkVMX0lEX0xPT0tVUCI7CisgICAgY2FzZSBTU0xfRVJST1JfUEVORElOR19TRVNTSU9OOgorICAg
ICAgcmV0dXJuICJQRU5ESU5HX1NFU1NJT04iOworICAgIGNhc2UgU1NMX0VSUk9SX1BFTkRJTkdf
Q0VSVElGSUNBVEU6CisgICAgICByZXR1cm4gIlBFTkRJTkdfQ0VSVElGSUNBVEUiOworICAgIGNh
c2UgU1NMX0VSUk9SX1dBTlRfUFJJVkFURV9LRVlfT1BFUkFUSU9OOgorICAgICAgcmV0dXJuICJX
QU5UX1BSSVZBVEVfS0VZX09QRVJBVElPTiI7CisgICAgY2FzZSBTU0xfRVJST1JfUEVORElOR19U
SUNLRVQ6CisgICAgICByZXR1cm4gIlBFTkRJTkdfVElDS0VUIjsKKyAgICBjYXNlIFNTTF9FUlJP
Ul9FQVJMWV9EQVRBX1JFSkVDVEVEOgorICAgICAgcmV0dXJuICJFQVJMWV9EQVRBX1JFSkVDVEVE
IjsKKyAgICBjYXNlIFNTTF9FUlJPUl9XQU5UX0NFUlRJRklDQVRFX1ZFUklGWToKKyAgICAgIHJl
dHVybiAiV0FOVF9DRVJUSUZJQ0FURV9WRVJJRlkiOworICAgIGNhc2UgU1NMX0VSUk9SX0hBTkRP
RkY6CisgICAgICByZXR1cm4gIkhBTkRPRkYiOworICAgIGNhc2UgU1NMX0VSUk9SX0hBTkRCQUNL
OgorICAgICAgcmV0dXJuICJIQU5EQkFDSyI7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBu
dWxscHRyOworICB9Cit9CisKIHVpbnQzMl90IFNTTF9DVFhfc2V0X29wdGlvbnMoU1NMX0NUWCAq
Y3R4LCB1aW50MzJfdCBvcHRpb25zKSB7CiAgIGN0eC0+b3B0aW9ucyB8PSBvcHRpb25zOwogICBy
ZXR1cm4gY3R4LT5vcHRpb25zOwpAQCAtMjQxNiw2ICsyNDk4LDE0IEBAIGludCBTU0xfQ1RYX3Nl
dF9xdWljX21ldGhvZChTU0xfQ1RYICpjdHgsIGNvbnN0IFNTTF9RVUlDX01FVEhPRCAqcXVpY19t
ZXRob2QpIHsKICAgcmV0dXJuIDE7CiB9CiAKK2ludCBTU0xfc2V0X3F1aWNfbWV0aG9kKFNTTCAq
c3NsLCBjb25zdCBTU0xfUVVJQ19NRVRIT0QgKnF1aWNfbWV0aG9kKSB7CisgIGlmIChzc2wtPm1l
dGhvZC0+aXNfZHRscykgeworICAgIHJldHVybiAwOworICB9CisgIHNzbC0+cXVpY19tZXRob2Qg
PSBxdWljX21ldGhvZDsKKyAgcmV0dXJuIDE7Cit9CisKIGludCBTU0xfZ2V0X2V4X25ld19pbmRl
eChsb25nIGFyZ2wsIHZvaWQgKmFyZ3AsIENSWVBUT19FWF91bnVzZWQgKnVudXNlZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBDUllQVE9fRVhfZHVwICpkdXBfdW51c2VkLCBDUllQVE9fRVhf
ZnJlZSAqZnJlZV9mdW5jKSB7CiAgIGludCBpbmRleDsKQEAgLTI2MTksMTMgKzI3MDksNiBAQCBp
bnQgU1NMX2N1dHRocm91Z2hfY29tcGxldGUoY29uc3QgU1NMICpzc2wpIHsKICAgcmV0dXJuIFNT
TF9pbl9mYWxzZV9zdGFydChzc2wpOwogfQogCi12b2lkIFNTTF9nZXRfc3RydWN0dXJlX3NpemVz
KHNpemVfdCAqc3NsX3NpemUsIHNpemVfdCAqc3NsX2N0eF9zaXplLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgKnNzbF9zZXNzaW9uX3NpemUpIHsKLSAgKnNzbF9zaXplID0g
c2l6ZW9mKFNTTCk7Ci0gICpzc2xfY3R4X3NpemUgPSBzaXplb2YoU1NMX0NUWCk7Ci0gICpzc2xf
c2Vzc2lvbl9zaXplID0gc2l6ZW9mKFNTTF9TRVNTSU9OKTsKLX0KLQogaW50IFNTTF9pc19zZXJ2
ZXIoY29uc3QgU1NMICpzc2wpIHsgcmV0dXJuIHNzbC0+c2VydmVyOyB9CiAKIGludCBTU0xfaXNf
ZHRscyhjb25zdCBTU0wgKnNzbCkgeyByZXR1cm4gc3NsLT5tZXRob2QtPmlzX2R0bHM7IH0KQEAg
LTI2NDUsNiArMjcyOCwxMyBAQCB2b2lkIFNTTF9DVFhfc2V0X3JldmVyaWZ5X29uX3Jlc3VtZShT
U0xfQ1RYICpjdHgsIGludCBlbmFibGVkKSB7CiAgIGN0eC0+cmV2ZXJpZnlfb25fcmVzdW1lID0g
ISFlbmFibGVkOwogfQogCit2b2lkIFNTTF9zZXRfZW5mb3JjZV9yc2Ffa2V5X3VzYWdlKFNTTCAq
c3NsLCBpbnQgZW5hYmxlZCkgeworICBpZiAoIXNzbC0+Y29uZmlnKSB7CisgICAgcmV0dXJuOwor
ICB9CisgIHNzbC0+Y29uZmlnLT5lbmZvcmNlX3JzYV9rZXlfdXNhZ2UgPSAhIWVuYWJsZWQ7Cit9
CisKIHZvaWQgU1NMX3NldF9yZW5lZ290aWF0ZV9tb2RlKFNTTCAqc3NsLCBlbnVtIHNzbF9yZW5l
Z290aWF0ZV9tb2RlX3QgbW9kZSkgewogICBzc2wtPnJlbmVnb3RpYXRlX21vZGUgPSBtb2RlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9wcml2a2V5LmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfcHJpdmtl
eS5jYwppbmRleCBlNzE2YzlhZjNmODljYWU1YWM5OWE2YzY5NjM2ODI2OTJjZTU2MGRiLi4yM2Y4
ZDEyNDlhOWIxYjYxMTUzM2M2M2ZiMjFmMDcyMTEyNzIyM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3Ns
L3NzbF9wcml2a2V5LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX3ByaXZrZXkuY2MKQEAgLTEzMyw4ICsx
MzMsMTQgQEAgc3RhdGljIGNvbnN0IFNTTF9TSUdOQVRVUkVfQUxHT1JJVEhNICpnZXRfc2lnbmF0
dXJlX2FsZ29yaXRobSh1aW50MTZfdCBzaWdhbGcpIHsKICAgcmV0dXJuIE5VTEw7CiB9CiAKLWJv
b2wgc3NsX2hhc19wcml2YXRlX2tleShjb25zdCBTU0xfQ09ORklHICpjZmcpIHsKLSAgcmV0dXJu
IGNmZy0+Y2VydC0+cHJpdmF0ZWtleSAhPSBudWxscHRyIHx8IGNmZy0+Y2VydC0+a2V5X21ldGhv
ZCAhPSBudWxscHRyOworYm9vbCBzc2xfaGFzX3ByaXZhdGVfa2V5KGNvbnN0IFNTTF9IQU5EU0hB
S0UgKmhzKSB7CisgIGlmIChocy0+Y29uZmlnLT5jZXJ0LT5wcml2YXRla2V5ICE9IG51bGxwdHIg
fHwKKyAgICAgIGhzLT5jb25maWctPmNlcnQtPmtleV9tZXRob2QgIT0gbnVsbHB0ciB8fAorICAg
ICAgc3NsX3NpZ25pbmdfd2l0aF9kYyhocykpIHsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisg
IHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGJvb2wgcGtleV9zdXBwb3J0c19hbGdvcml0aG0o
Y29uc3QgU1NMICpzc2wsIEVWUF9QS0VZICpwa2V5LApAQCAtMTk1LDEzICsyMDEsMjAgQEAgZW51
bSBzc2xfcHJpdmF0ZV9rZXlfcmVzdWx0X3Qgc3NsX3ByaXZhdGVfa2V5X3NpZ24oCiAgICAgU1NM
X0hBTkRTSEFLRSAqaHMsIHVpbnQ4X3QgKm91dCwgc2l6ZV90ICpvdXRfbGVuLCBzaXplX3QgbWF4
X291dCwKICAgICB1aW50MTZfdCBzaWdhbGcsIFNwYW48Y29uc3QgdWludDhfdD4gaW4pIHsKICAg
U1NMICpjb25zdCBzc2wgPSBocy0+c3NsOwotICBpZiAoaHMtPmNvbmZpZy0+Y2VydC0+a2V5X21l
dGhvZCAhPSBOVUxMKSB7CisgIGNvbnN0IFNTTF9QUklWQVRFX0tFWV9NRVRIT0QgKmtleV9tZXRo
b2QgPSBocy0+Y29uZmlnLT5jZXJ0LT5rZXlfbWV0aG9kOworICBFVlBfUEtFWSAqcHJpdmF0ZWtl
eSA9IGhzLT5jb25maWctPmNlcnQtPnByaXZhdGVrZXkuZ2V0KCk7CisgIGlmIChzc2xfc2lnbmlu
Z193aXRoX2RjKGhzKSkgeworICAgIGtleV9tZXRob2QgPSBocy0+Y29uZmlnLT5jZXJ0LT5kY19r
ZXlfbWV0aG9kOworICAgIHByaXZhdGVrZXkgPSBocy0+Y29uZmlnLT5jZXJ0LT5kY19wcml2YXRl
a2V5LmdldCgpOworICB9CisKKyAgaWYgKGtleV9tZXRob2QgIT0gTlVMTCkgewogICAgIGVudW0g
c3NsX3ByaXZhdGVfa2V5X3Jlc3VsdF90IHJldDsKICAgICBpZiAoaHMtPnBlbmRpbmdfcHJpdmF0
ZV9rZXlfb3ApIHsKLSAgICAgIHJldCA9IGhzLT5jb25maWctPmNlcnQtPmtleV9tZXRob2QtPmNv
bXBsZXRlKHNzbCwgb3V0LCBvdXRfbGVuLCBtYXhfb3V0KTsKKyAgICAgIHJldCA9IGtleV9tZXRo
b2QtPmNvbXBsZXRlKHNzbCwgb3V0LCBvdXRfbGVuLCBtYXhfb3V0KTsKICAgICB9IGVsc2Ugewot
ICAgICAgcmV0ID0gaHMtPmNvbmZpZy0+Y2VydC0+a2V5X21ldGhvZC0+c2lnbihzc2wsIG91dCwg
b3V0X2xlbiwgbWF4X291dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2lnYWxnLCBpbi5kYXRhKCksIGluLnNpemUoKSk7CisgICAgICByZXQgPSBrZXlf
bWV0aG9kLT5zaWduKHNzbCwgb3V0LCBvdXRfbGVuLCBtYXhfb3V0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaWdhbGcsIGluLmRhdGEoKSwgaW4uc2l6ZSgpKTsKICAgICB9CiAgICAg
aWYgKHJldCA9PSBzc2xfcHJpdmF0ZV9rZXlfZmFpbHVyZSkgewogICAgICAgT1BFTlNTTF9QVVRf
RVJST1IoU1NMLCBTU0xfUl9QUklWQVRFX0tFWV9PUEVSQVRJT05fRkFJTEVEKTsKQEAgLTIxMiw4
ICsyMjUsNyBAQCBlbnVtIHNzbF9wcml2YXRlX2tleV9yZXN1bHRfdCBzc2xfcHJpdmF0ZV9rZXlf
c2lnbigKIAogICAqb3V0X2xlbiA9IG1heF9vdXQ7CiAgIFNjb3BlZEVWUF9NRF9DVFggY3R4Owot
ICBpZiAoIXNldHVwX2N0eChzc2wsIGN0eC5nZXQoKSwgaHMtPmNvbmZpZy0+Y2VydC0+cHJpdmF0
ZWtleS5nZXQoKSwgc2lnYWxnLAotICAgICAgICAgICAgICAgICBmYWxzZSAvKiBzaWduICovKSB8
fAorICBpZiAoIXNldHVwX2N0eChzc2wsIGN0eC5nZXQoKSwgcHJpdmF0ZWtleSwgc2lnYWxnLCBm
YWxzZSAvKiBzaWduICovKSB8fAogICAgICAgIUVWUF9EaWdlc3RTaWduKGN0eC5nZXQoKSwgb3V0
LCBvdXRfbGVuLCBpbi5kYXRhKCksIGluLnNpemUoKSkpIHsKICAgICByZXR1cm4gc3NsX3ByaXZh
dGVfa2V5X2ZhaWx1cmU7CiAgIH0KQEAgLTIyNCw5ICsyMzYsMTYgQEAgYm9vbCBzc2xfcHVibGlj
X2tleV92ZXJpZnkoU1NMICpzc2wsIFNwYW48Y29uc3QgdWludDhfdD4gc2lnbmF0dXJlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3Qgc2lnYWxnLCBFVlBfUEtFWSAqcGtleSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYW48Y29uc3QgdWludDhfdD4gaW4pIHsKICAg
U2NvcGVkRVZQX01EX0NUWCBjdHg7Ci0gIHJldHVybiBzZXR1cF9jdHgoc3NsLCBjdHguZ2V0KCks
IHBrZXksIHNpZ2FsZywgdHJ1ZSAvKiB2ZXJpZnkgKi8pICYmCi0gICAgICAgICBFVlBfRGlnZXN0
VmVyaWZ5KGN0eC5nZXQoKSwgc2lnbmF0dXJlLmRhdGEoKSwgc2lnbmF0dXJlLnNpemUoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4uZGF0YSgpLCBpbi5zaXplKCkpOworICBpZiAoIXNl
dHVwX2N0eChzc2wsIGN0eC5nZXQoKSwgcGtleSwgc2lnYWxnLCB0cnVlIC8qIHZlcmlmeSAqLykp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgYm9vbCBvayA9IEVWUF9EaWdlc3RWZXJpZnko
Y3R4LmdldCgpLCBzaWduYXR1cmUuZGF0YSgpLCBzaWduYXR1cmUuc2l6ZSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbi5kYXRhKCksIGluLnNpemUoKSk7CisjaWYgZGVmaW5lZChC
T1JJTkdTU0xfVU5TQUZFX0ZVWlpFUl9NT0RFKQorICBvayA9IHRydWU7CisgIEVSUl9jbGVhcl9l
cnJvcigpOworI2VuZGlmCisgIHJldHVybiBvazsKIH0KIAogZW51bSBzc2xfcHJpdmF0ZV9rZXlf
cmVzdWx0X3Qgc3NsX3ByaXZhdGVfa2V5X2RlY3J5cHQoU1NMX0hBTkRTSEFLRSAqaHMsCkBAIC01
NTIsNiArNTcxLDEwIEBAIHN0YXRpYyBpbnQgY29tcGFyZV91aW50MTZfdChjb25zdCB2b2lkICpw
MSwgY29uc3Qgdm9pZCAqcDIpIHsKIH0KIAogc3RhdGljIGJvb2wgc2lnYWxnc191bmlxdWUoU3Bh
bjxjb25zdCB1aW50MTZfdD4gaW5fc2lnYWxncykgeworICBpZiAoaW5fc2lnYWxncy5zaXplKCkg
PCAyKSB7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKwogICBBcnJheTx1aW50MTZfdD4gc2lnYWxn
czsKICAgaWYgKCFzaWdhbGdzLkNvcHlGcm9tKGluX3NpZ2FsZ3MpKSB7CiAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfc2Vzc2lvbi5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX3Nl
c3Npb24uY2MKaW5kZXggOTI3ZGQxYmEwNDAwYjM1N2I1ZjFjZTBkZjU3MDJiNjRiMDE2MDViOS4u
YmIwNGIxYWQ4ODk5ZWY4Y2UxZWQ2NTM0ZGQxN2YwNGY2MzBhMzQ4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3NzbC9zc2xfc2Vzc2lvbi5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF9zZXNzaW9uLmNjCkBAIC0xMDQ0
LDYgKzEwNDQsMTEgQEAgdm9pZCBTU0xfU0VTU0lPTl9nZXQwX3BlZXJfc2hhMjU2KGNvbnN0IFNT
TF9TRVNTSU9OICpzZXNzaW9uLAogICB9CiB9CiAKK2ludCBTU0xfU0VTU0lPTl9lYXJseV9kYXRh
X2NhcGFibGUoY29uc3QgU1NMX1NFU1NJT04gKnNlc3Npb24pIHsKKyAgcmV0dXJuIHNzbF9zZXNz
aW9uX3Byb3RvY29sX3ZlcnNpb24oc2Vzc2lvbikgPj0gVExTMV8zX1ZFUlNJT04gJiYKKyAgICAg
ICAgIHNlc3Npb24tPnRpY2tldF9tYXhfZWFybHlfZGF0YSAhPSAwOworfQorCiBTU0xfU0VTU0lP
TiAqU1NMX21hZ2ljX3BlbmRpbmdfc2Vzc2lvbl9wdHIodm9pZCkgewogICByZXR1cm4gKFNTTF9T
RVNTSU9OICopJmdfcGVuZGluZ19zZXNzaW9uX21hZ2ljOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Nz
bC9zc2xfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX3Rlc3QuY2MKaW5kZXggNDcwMzc5YzBmNGQ2ZWRm
NjM0ZDViZjhlNzVhOGRiOTM0Mjg0MzMyMC4uMDM3NjBiNmVlNDMxNjU1YTE3N2JjY2ZlOWVhNzZm
NzcyNjIzMjQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfdGVzdC5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3Ns
L3NzbF90ZXN0LmNjCkBAIC0zOTQsNiArMzk0LDExIEBAIHN0YXRpYyBjb25zdCBDdXJ2ZVRlc3Qg
a0N1cnZlVGVzdHNbXSA9IHsKICAgICAiUC0yNTYiLAogICAgIHsgU1NMX0NVUlZFX1NFQ1AyNTZS
MSB9LAogICB9LAorICB7CisgICAgIlAtMjU2OkNFQ1BRMiIsCisgICAgeyBTU0xfQ1VSVkVfU0VD
UDI1NlIxLCBTU0xfQ1VSVkVfQ0VDUFEyIH0sCisgIH0sCisKICAgewogICAgICJQLTI1NjpQLTM4
NDpQLTUyMTpYMjU1MTkiLAogICAgIHsKQEAgLTczMiwxMTEgKzczNyw4NSBAQCBzdGF0aWMgYm9v
bCBEZWNvZGVCYXNlNjQoc3RkOjp2ZWN0b3I8dWludDhfdD4gKm91dCwgY29uc3QgY2hhciAqaW4p
IHsKICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIFRlc3RTU0xfU0VTU0lPTkVuY29k
aW5nKGNvbnN0IGNoYXIgKmlucHV0X2I2NCkgewotICBjb25zdCB1aW50OF90ICpjcHRyOwotICB1
aW50OF90ICpwdHI7Ci0KLSAgLy8gRGVjb2RlIHRoZSBpbnB1dC4KLSAgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gaW5wdXQ7Ci0gIGlmICghRGVjb2RlQmFzZTY0KCZpbnB1dCwgaW5wdXRfYjY0KSkgewot
ICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIC8vIFZlcmlmeSB0aGUgU1NMX1NFU1NJT04gZGVj
b2Rlcy4KLSAgYnNzbDo6VW5pcXVlUHRyPFNTTF9DVFg+IHNzbF9jdHgoU1NMX0NUWF9uZXcoVExT
X21ldGhvZCgpKSk7Ci0gIGlmICghc3NsX2N0eCkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQot
ICBic3NsOjpVbmlxdWVQdHI8U1NMX1NFU1NJT04+IHNlc3Npb24oCi0gICAgICBTU0xfU0VTU0lP
Tl9mcm9tX2J5dGVzKGlucHV0LmRhdGEoKSwgaW5wdXQuc2l6ZSgpLCBzc2xfY3R4LmdldCgpKSk7
Ci0gIGlmICghc2Vzc2lvbikgewotICAgIGZwcmludGYoc3RkZXJyLCAiU1NMX1NFU1NJT05fZnJv
bV9ieXRlcyBmYWlsZWRcbiIpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIC8vIFZlcmlm
eSB0aGUgU1NMX1NFU1NJT04gZW5jb2Rpbmcgcm91bmQtdHJpcHMuCi0gIHNpemVfdCBlbmNvZGVk
X2xlbjsKLSAgYnNzbDo6VW5pcXVlUHRyPHVpbnQ4X3Q+IGVuY29kZWQ7Ci0gIHVpbnQ4X3QgKmVu
Y29kZWRfcmF3OwotICBpZiAoIVNTTF9TRVNTSU9OX3RvX2J5dGVzKHNlc3Npb24uZ2V0KCksICZl
bmNvZGVkX3JhdywgJmVuY29kZWRfbGVuKSkgewotICAgIGZwcmludGYoc3RkZXJyLCAiU1NMX1NF
U1NJT05fdG9fYnl0ZXMgZmFpbGVkXG4iKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgZW5j
b2RlZC5yZXNldChlbmNvZGVkX3Jhdyk7Ci0gIGlmIChlbmNvZGVkX2xlbiAhPSBpbnB1dC5zaXpl
KCkgfHwKLSAgICAgIE9QRU5TU0xfbWVtY21wKGlucHV0LmRhdGEoKSwgZW5jb2RlZC5nZXQoKSwg
aW5wdXQuc2l6ZSgpKSAhPSAwKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJTU0xfU0VTU0lPTl90
b19ieXRlcyBkaWQgbm90IHJvdW5kLXRyaXBcbiIpOwotICAgIGhleGR1bXAoc3RkZXJyLCAiQmVm
b3JlOiAiLCBpbnB1dC5kYXRhKCksIGlucHV0LnNpemUoKSk7Ci0gICAgaGV4ZHVtcChzdGRlcnIs
ICJBZnRlcjogICIsIGVuY29kZWRfcmF3LCBlbmNvZGVkX2xlbik7Ci0gICAgcmV0dXJuIGZhbHNl
OwotICB9Ci0KLSAgLy8gVmVyaWZ5IHRoZSBTU0xfU0VTU0lPTiBhbHNvIGRlY29kZXMgd2l0aCB0
aGUgbGVnYWN5IEFQSS4KLSAgY3B0ciA9IGlucHV0LmRhdGEoKTsKLSAgc2Vzc2lvbi5yZXNldChk
MmlfU1NMX1NFU1NJT04oTlVMTCwgJmNwdHIsIGlucHV0LnNpemUoKSkpOwotICBpZiAoIXNlc3Np
b24gfHwgY3B0ciAhPSBpbnB1dC5kYXRhKCkgKyBpbnB1dC5zaXplKCkpIHsKLSAgICBmcHJpbnRm
KHN0ZGVyciwgImQyaV9TU0xfU0VTU0lPTiBmYWlsZWRcbiIpOwotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotCi0gIC8vIFZlcmlmeSB0aGUgU1NMX1NFU1NJT04gZW5jb2Rpbmcgcm91bmQtdHJpcHMg
dmlhIHRoZSBsZWdhY3kgQVBJLgotICBpbnQgbGVuID0gaTJkX1NTTF9TRVNTSU9OKHNlc3Npb24u
Z2V0KCksIE5VTEwpOwotICBpZiAobGVuIDwgMCB8fCAoc2l6ZV90KWxlbiAhPSBpbnB1dC5zaXpl
KCkpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImkyZF9TU0xfU0VTU0lPTihOVUxMKSByZXR1cm5l
ZCBpbnZhbGlkIGxlbmd0aFxuIik7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgZW5jb2Rl
ZC5yZXNldCgodWludDhfdCAqKU9QRU5TU0xfbWFsbG9jKGlucHV0LnNpemUoKSkpOwotICBpZiAo
IWVuY29kZWQpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIm1hbGxvYyBmYWlsZWRcbiIpOwotICAg
IHJldHVybiBmYWxzZTsKLSAgfQotCi0gIHB0ciA9IGVuY29kZWQuZ2V0KCk7Ci0gIGxlbiA9IGky
ZF9TU0xfU0VTU0lPTihzZXNzaW9uLmdldCgpLCAmcHRyKTsKLSAgaWYgKGxlbiA8IDAgfHwgKHNp
emVfdClsZW4gIT0gaW5wdXQuc2l6ZSgpKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsICJpMmRfU1NM
X1NFU1NJT04gcmV0dXJuZWQgaW52YWxpZCBsZW5ndGhcbiIpOwotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotICBpZiAocHRyICE9IGVuY29kZWQuZ2V0KCkgKyBpbnB1dC5zaXplKCkpIHsKLSAgICBm
cHJpbnRmKHN0ZGVyciwgImkyZF9TU0xfU0VTU0lPTiBkaWQgbm90IGFkdmFuY2UgcHRyIGNvcnJl
Y3RseVxuIik7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIGlmIChPUEVOU1NMX21lbWNtcChp
bnB1dC5kYXRhKCksIGVuY29kZWQuZ2V0KCksIGlucHV0LnNpemUoKSkgIT0gMCkgewotICAgIGZw
cmludGYoc3RkZXJyLCAiaTJkX1NTTF9TRVNTSU9OIGRpZCBub3Qgcm91bmQtdHJpcFxuIik7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29s
IFRlc3RCYWRTU0xfU0VTU0lPTkVuY29kaW5nKGNvbnN0IGNoYXIgKmlucHV0X2I2NCkgewotICBz
dGQ6OnZlY3Rvcjx1aW50OF90PiBpbnB1dDsKLSAgaWYgKCFEZWNvZGVCYXNlNjQoJmlucHV0LCBp
bnB1dF9iNjQpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgLy8gVmVyaWZ5IHRoYXQg
dGhlIFNTTF9TRVNTSU9OIGZhaWxzIHRvIGRlY29kZS4KLSAgYnNzbDo6VW5pcXVlUHRyPFNTTF9D
VFg+IHNzbF9jdHgoU1NMX0NUWF9uZXcoVExTX21ldGhvZCgpKSk7Ci0gIGlmICghc3NsX2N0eCkg
ewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBic3NsOjpVbmlxdWVQdHI8U1NMX1NFU1NJT04+
IHNlc3Npb24oCi0gICAgICBTU0xfU0VTU0lPTl9mcm9tX2J5dGVzKGlucHV0LmRhdGEoKSwgaW5w
dXQuc2l6ZSgpLCBzc2xfY3R4LmdldCgpKSk7Ci0gIGlmIChzZXNzaW9uKSB7Ci0gICAgZnByaW50
ZihzdGRlcnIsICJTU0xfU0VTU0lPTl9mcm9tX2J5dGVzIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWRc
biIpOwotICAgIHJldHVybiBmYWxzZTsKK1RFU1QoU1NMVGVzdCwgU2Vzc2lvbkVuY29kaW5nKSB7
CisgIGZvciAoY29uc3QgY2hhciAqaW5wdXRfYjY0IDogeworICAgICAgICAgICBrT3BlblNTTFNl
c3Npb24sCisgICAgICAgICAgIGtDdXN0b21TZXNzaW9uLAorICAgICAgICAgICBrQm9yaW5nU1NM
U2Vzc2lvbiwKKyAgICAgICB9KSB7CisgICAgU0NPUEVEX1RSQUNFKHN0ZDo6c3RyaW5nKGlucHV0
X2I2NCkpOworICAgIC8vIERlY29kZSB0aGUgaW5wdXQuCisgICAgc3RkOjp2ZWN0b3I8dWludDhf
dD4gaW5wdXQ7CisgICAgQVNTRVJUX1RSVUUoRGVjb2RlQmFzZTY0KCZpbnB1dCwgaW5wdXRfYjY0
KSk7CisKKyAgICAvLyBWZXJpZnkgdGhlIFNTTF9TRVNTSU9OIGRlY29kZXMuCisgICAgYnNzbDo6
VW5pcXVlUHRyPFNTTF9DVFg+IHNzbF9jdHgoU1NMX0NUWF9uZXcoVExTX21ldGhvZCgpKSk7Cisg
ICAgQVNTRVJUX1RSVUUoc3NsX2N0eCk7CisgICAgYnNzbDo6VW5pcXVlUHRyPFNTTF9TRVNTSU9O
PiBzZXNzaW9uKAorICAgICAgICBTU0xfU0VTU0lPTl9mcm9tX2J5dGVzKGlucHV0LmRhdGEoKSwg
aW5wdXQuc2l6ZSgpLCBzc2xfY3R4LmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoc2Vzc2lvbikg
PDwgIlNTTF9TRVNTSU9OX2Zyb21fYnl0ZXMgZmFpbGVkIjsKKworICAgIC8vIFZlcmlmeSB0aGUg
U1NMX1NFU1NJT04gZW5jb2Rpbmcgcm91bmQtdHJpcHMuCisgICAgc2l6ZV90IGVuY29kZWRfbGVu
OworICAgIGJzc2w6OlVuaXF1ZVB0cjx1aW50OF90PiBlbmNvZGVkOworICAgIHVpbnQ4X3QgKmVu
Y29kZWRfcmF3OworICAgIEFTU0VSVF9UUlVFKFNTTF9TRVNTSU9OX3RvX2J5dGVzKHNlc3Npb24u
Z2V0KCksICZlbmNvZGVkX3JhdywgJmVuY29kZWRfbGVuKSkKKyAgICAgICAgPDwgIlNTTF9TRVNT
SU9OX3RvX2J5dGVzIGZhaWxlZCI7CisgICAgZW5jb2RlZC5yZXNldChlbmNvZGVkX3Jhdyk7Cisg
ICAgRVhQRUNUX0VRKEJ5dGVzKGVuY29kZWQuZ2V0KCksIGVuY29kZWRfbGVuKSwgQnl0ZXMoaW5w
dXQpKQorICAgICAgICA8PCAiU1NMX1NFU1NJT05fdG9fYnl0ZXMgZGlkIG5vdCByb3VuZC10cmlw
IjsKKworICAgIC8vIFZlcmlmeSB0aGUgU1NMX1NFU1NJT04gYWxzbyBkZWNvZGVzIHdpdGggdGhl
IGxlZ2FjeSBBUEkuCisgICAgY29uc3QgdWludDhfdCAqY3B0ciA9IGlucHV0LmRhdGEoKTsKKyAg
ICBzZXNzaW9uLnJlc2V0KGQyaV9TU0xfU0VTU0lPTihOVUxMLCAmY3B0ciwgaW5wdXQuc2l6ZSgp
KSk7CisgICAgQVNTRVJUX1RSVUUoc2Vzc2lvbikgPDwgImQyaV9TU0xfU0VTU0lPTiBmYWlsZWQi
OworICAgIEVYUEVDVF9FUShjcHRyLCBpbnB1dC5kYXRhKCkgKyBpbnB1dC5zaXplKCkpOworCisg
ICAgLy8gVmVyaWZ5IHRoZSBTU0xfU0VTU0lPTiBlbmNvZGluZyByb3VuZC10cmlwcyB2aWEgdGhl
IGxlZ2FjeSBBUEkuCisgICAgaW50IGxlbiA9IGkyZF9TU0xfU0VTU0lPTihzZXNzaW9uLmdldCgp
LCBOVUxMKTsKKyAgICBBU1NFUlRfR1QobGVuLCAwKSA8PCAiaTJkX1NTTF9TRVNTSU9OIGZhaWxl
ZCI7CisgICAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4obGVuKSwgaW5wdXQuc2l6ZSgp
KQorICAgICAgICA8PCAiaTJkX1NTTF9TRVNTSU9OKE5VTEwpIHJldHVybmVkIGludmFsaWQgbGVu
Z3RoIjsKKworICAgIGVuY29kZWQucmVzZXQoKHVpbnQ4X3QgKilPUEVOU1NMX21hbGxvYyhpbnB1
dC5zaXplKCkpKTsKKyAgICBBU1NFUlRfVFJVRShlbmNvZGVkKTsKKworICAgIHVpbnQ4X3QgKnB0
ciA9IGVuY29kZWQuZ2V0KCk7CisgICAgbGVuID0gaTJkX1NTTF9TRVNTSU9OKHNlc3Npb24uZ2V0
KCksICZwdHIpOworICAgIEFTU0VSVF9HVChsZW4sIDApIDw8ICJpMmRfU1NMX1NFU1NJT04gZmFp
bGVkIjsKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW4pLCBpbnB1dC5zaXpl
KCkpCisgICAgICAgIDw8ICJpMmRfU1NMX1NFU1NJT04oTlVMTCkgcmV0dXJuZWQgaW52YWxpZCBs
ZW5ndGgiOworICAgIEFTU0VSVF9FUShwdHIsIGVuY29kZWQuZ2V0KCkgKyBpbnB1dC5zaXplKCkp
CisgICAgICAgIDw8ICJpMmRfU1NMX1NFU1NJT04gZGlkIG5vdCBhZHZhbmNlIHB0ciBjb3JyZWN0
bHkiOworICAgIEVYUEVDVF9FUShCeXRlcyhlbmNvZGVkLmdldCgpLCBlbmNvZGVkX2xlbiksIEJ5
dGVzKGlucHV0KSkKKyAgICAgICAgPDwgIlNTTF9TRVNTSU9OX3RvX2J5dGVzIGRpZCBub3Qgcm91
bmQtdHJpcCI7CisgIH0KKworICBmb3IgKGNvbnN0IGNoYXIgKmlucHV0X2I2NCA6IHsKKyAgICAg
ICAgICAga0JhZFNlc3Npb25FeHRyYUZpZWxkLAorICAgICAgICAgICBrQmFkU2Vzc2lvblZlcnNp
b24sCisgICAgICAgICAgIGtCYWRTZXNzaW9uVHJhaWxpbmdEYXRhLAorICAgICAgIH0pIHsKKyAg
ICBTQ09QRURfVFJBQ0Uoc3RkOjpzdHJpbmcoaW5wdXRfYjY0KSk7CisgICAgc3RkOjp2ZWN0b3I8
dWludDhfdD4gaW5wdXQ7CisgICAgQVNTRVJUX1RSVUUoRGVjb2RlQmFzZTY0KCZpbnB1dCwgaW5w
dXRfYjY0KSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgU1NMX1NFU1NJT04gZmFpbHMgdG8g
ZGVjb2RlLgorICAgIGJzc2w6OlVuaXF1ZVB0cjxTU0xfQ1RYPiBzc2xfY3R4KFNTTF9DVFhfbmV3
KFRMU19tZXRob2QoKSkpOworICAgIEFTU0VSVF9UUlVFKHNzbF9jdHgpOworICAgIGJzc2w6OlVu
aXF1ZVB0cjxTU0xfU0VTU0lPTj4gc2Vzc2lvbigKKyAgICAgICAgU1NMX1NFU1NJT05fZnJvbV9i
eXRlcyhpbnB1dC5kYXRhKCksIGlucHV0LnNpemUoKSwgc3NsX2N0eC5nZXQoKSkpOworICAgIEVY
UEVDVF9GQUxTRShzZXNzaW9uKSA8PCAiU1NMX1NFU1NJT05fZnJvbV9ieXRlcyB1bmV4cGVjdGVk
bHkgc3VjY2VlZGVkIjsKKyAgICBFUlJfY2xlYXJfZXJyb3IoKTsKICAgfQotICBFUlJfY2xlYXJf
ZXJyb3IoKTsKLSAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIEV4cGVjdERlZmF1bHRW
ZXJzaW9uKHVpbnQxNl90IG1pbl92ZXJzaW9uLCB1aW50MTZfdCBtYXhfdmVyc2lvbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNTTF9NRVRIT0QgKigqbWV0aG9kKSh2
b2lkKSkgewogICBic3NsOjpVbmlxdWVQdHI8U1NMX0NUWD4gY3R4KFNTTF9DVFhfbmV3KG1ldGhv
ZCgpKSk7CiAgIEFTU0VSVF9UUlVFKGN0eCk7Ci0gIEVYUEVDVF9FUShtaW5fdmVyc2lvbiwgY3R4
LT5jb25mX21pbl92ZXJzaW9uKTsKLSAgRVhQRUNUX0VRKG1heF92ZXJzaW9uLCBjdHgtPmNvbmZf
bWF4X3ZlcnNpb24pOworICBFWFBFQ1RfRVEobWluX3ZlcnNpb24sIFNTTF9DVFhfZ2V0X21pbl9w
cm90b192ZXJzaW9uKGN0eC5nZXQoKSkpOworICBFWFBFQ1RfRVEobWF4X3ZlcnNpb24sIFNTTF9D
VFhfZ2V0X21heF9wcm90b192ZXJzaW9uKGN0eC5nZXQoKSkpOwogfQogCiBURVNUKFNTTFRlc3Qs
IERlZmF1bHRWZXJzaW9uKSB7CkBAIC04NDUsOSArODI0LDkgQEAgVEVTVChTU0xUZXN0LCBEZWZh
dWx0VmVyc2lvbikgewogICBFeHBlY3REZWZhdWx0VmVyc2lvbihUTFMxX1ZFUlNJT04sIFRMUzFf
VkVSU0lPTiwgJlRMU3YxX21ldGhvZCk7CiAgIEV4cGVjdERlZmF1bHRWZXJzaW9uKFRMUzFfMV9W
RVJTSU9OLCBUTFMxXzFfVkVSU0lPTiwgJlRMU3YxXzFfbWV0aG9kKTsKICAgRXhwZWN0RGVmYXVs
dFZlcnNpb24oVExTMV8yX1ZFUlNJT04sIFRMUzFfMl9WRVJTSU9OLCAmVExTdjFfMl9tZXRob2Qp
OwotICBFeHBlY3REZWZhdWx0VmVyc2lvbihUTFMxXzFfVkVSU0lPTiwgVExTMV8yX1ZFUlNJT04s
ICZEVExTX21ldGhvZCk7Ci0gIEV4cGVjdERlZmF1bHRWZXJzaW9uKFRMUzFfMV9WRVJTSU9OLCBU
TFMxXzFfVkVSU0lPTiwgJkRUTFN2MV9tZXRob2QpOwotICBFeHBlY3REZWZhdWx0VmVyc2lvbihU
TFMxXzJfVkVSU0lPTiwgVExTMV8yX1ZFUlNJT04sICZEVExTdjFfMl9tZXRob2QpOworICBFeHBl
Y3REZWZhdWx0VmVyc2lvbihEVExTMV9WRVJTSU9OLCBEVExTMV8yX1ZFUlNJT04sICZEVExTX21l
dGhvZCk7CisgIEV4cGVjdERlZmF1bHRWZXJzaW9uKERUTFMxX1ZFUlNJT04sIERUTFMxX1ZFUlNJ
T04sICZEVExTdjFfbWV0aG9kKTsKKyAgRXhwZWN0RGVmYXVsdFZlcnNpb24oRFRMUzFfMl9WRVJT
SU9OLCBEVExTMV8yX1ZFUlNJT04sICZEVExTdjFfMl9tZXRob2QpOwogfQogCiBURVNUKFNTTFRl
c3QsIENpcGhlclByb3BlcnRpZXMpIHsKQEAgLTEwODIsNjMgKzEwNjEsNjcgQEAgc3RhdGljIHNp
emVfdCBHZXRDbGllbnRIZWxsb0xlbih1aW50MTZfdCBtYXhfdmVyc2lvbiwgdWludDE2X3Qgc2Vz
c2lvbl92ZXJzaW9uLAogICByZXR1cm4gY2xpZW50X2hlbGxvLnNpemUoKSAtIFNTTDNfUlRfSEVB
REVSX0xFTkdUSDsKIH0KIAotc3RydWN0IFBhZGRpbmdUZXN0IHsKLSAgc2l6ZV90IGlucHV0X2xl
biwgcGFkZGVkX2xlbjsKLX07CitURVNUKFNTTFRlc3QsIFBhZGRpbmcpIHsKKyAgc3RydWN0IFBh
ZGRpbmdWZXJzaW9ucyB7CisgICAgdWludDE2X3QgbWF4X3ZlcnNpb24sIHNlc3Npb25fdmVyc2lv
bjsKKyAgfTsKKyAgc3RhdGljIGNvbnN0IFBhZGRpbmdWZXJzaW9ucyBrUGFkZGluZ1ZlcnNpb25z
W10gPSB7CisgICAgICAvLyBUZXN0IHRoZSBwYWRkaW5nIGV4dGVuc2lvbiBhdCBUTFMgMS4yLgor
ICAgICAge1RMUzFfMl9WRVJTSU9OLCBUTFMxXzJfVkVSU0lPTn0sCisgICAgICAvLyBUZXN0IHRo
ZSBwYWRkaW5nIGV4dGVuc2lvbiBhdCBUTFMgMS4zIHdpdGggYSBUTFMgMS4yIHNlc3Npb24sIHNv
IHRoZXJlCisgICAgICAvLyB3aWxsIGJlIG5vIFBTSyBiaW5kZXIgYWZ0ZXIgdGhlIHBhZGRpbmcg
ZXh0ZW5zaW9uLgorICAgICAge1RMUzFfM19WRVJTSU9OLCBUTFMxXzJfVkVSU0lPTn0sCisgICAg
ICAvLyBUZXN0IHRoZSBwYWRkaW5nIGV4dGVuc2lvbiBhdCBUTFMgMS4zIHdpdGggYSBUTFMgMS4z
IHNlc3Npb24sIHNvIHRoZXJlCisgICAgICAvLyB3aWxsIGJlIGEgUFNLIGJpbmRlciBhZnRlciB0
aGUgcGFkZGluZyBleHRlbnNpb24uCisgICAgICB7VExTMV8zX1ZFUlNJT04sIFRMUzFfM19WRVJT
SU9OfSwKIAotc3RhdGljIGNvbnN0IFBhZGRpbmdUZXN0IGtQYWRkaW5nVGVzdHNbXSA9IHsKLSAg
ICAvLyBDbGllbnRIZWxsb3Mgb2YgbGVuZ3RoIGJlbG93IDB4MTAwIGRvIG5vdCByZXF1aXJlIHBh
ZGRpbmcuCi0gICAgezB4ZmUsIDB4ZmV9LAotICAgIHsweGZmLCAweGZmfSwKLSAgICAvLyBDbGll
bnRIZWxsb3Mgb2YgbGVuZ3RoIDB4MTAwIHRocm91Z2ggMHgxZmIgYXJlIHBhZGRlZCB1cCB0byAw
eDIwMC4KLSAgICB7MHgxMDAsIDB4MjAwfSwKLSAgICB7MHgxMjMsIDB4MjAwfSwKLSAgICB7MHgx
ZmIsIDB4MjAwfSwKLSAgICAvLyBDbGllbnRIZWxsb3Mgb2YgbGVuZ3RoIDB4MWZjIHRocm91Z2gg
MHgxZmYgZ2V0IHBhZGRlZCBiZXlvbmQgMHgyMDAuIFRoZQotICAgIC8vIHBhZGRpbmcgZXh0ZW5z
aW9uIHRha2VzIGEgbWluaW11bSBvZiBmb3VyIGJ5dGVzIHBsdXMgb25lIHJlcXVpcmVkIGNvbnRl
bnQKLSAgICAvLyBieXRlLiAoVG8gd29yayBhcm91bmQgeWV0IG1vcmUgc2VydmVyIGJ1Z3MsIHdl
IGF2b2lkIGVtcHR5IGZpbmFsCi0gICAgLy8gZXh0ZW5zaW9ucy4pCi0gICAgezB4MWZjLCAweDIw
MX0sCi0gICAgezB4MWZkLCAweDIwMn0sCi0gICAgezB4MWZlLCAweDIwM30sCi0gICAgezB4MWZm
LCAweDIwNH0sCi0gICAgLy8gRmluYWxseSwgbGFyZ2VyIENsaWVudEhlbGxvcyBuZWVkIG5vIHBh
ZGRpbmcuCi0gICAgezB4MjAwLCAweDIwMH0sCi0gICAgezB4MjAxLCAweDIwMX0sCi19OworICB9
OwogCi1zdGF0aWMgYm9vbCBUZXN0UGFkZGluZ0V4dGVuc2lvbih1aW50MTZfdCBtYXhfdmVyc2lv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IHNlc3Npb25fdmVy
c2lvbikgewotICAvLyBTYW1wbGUgYSBiYXNlbGluZSBsZW5ndGguCi0gIHNpemVfdCBiYXNlX2xl
biA9IEdldENsaWVudEhlbGxvTGVuKG1heF92ZXJzaW9uLCBzZXNzaW9uX3ZlcnNpb24sIDEpOwot
ICBpZiAoYmFzZV9sZW4gPT0gMCkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQorICBzdHJ1Y3Qg
UGFkZGluZ1Rlc3QgeworICAgIHNpemVfdCBpbnB1dF9sZW4sIHBhZGRlZF9sZW47CisgIH07Cisg
IHN0YXRpYyBjb25zdCBQYWRkaW5nVGVzdCBrUGFkZGluZ1Rlc3RzW10gPSB7CisgICAgICAvLyBD
bGllbnRIZWxsb3Mgb2YgbGVuZ3RoIGJlbG93IDB4MTAwIGRvIG5vdCByZXF1aXJlIHBhZGRpbmcu
CisgICAgICB7MHhmZSwgMHhmZX0sCisgICAgICB7MHhmZiwgMHhmZn0sCisgICAgICAvLyBDbGll
bnRIZWxsb3Mgb2YgbGVuZ3RoIDB4MTAwIHRocm91Z2ggMHgxZmIgYXJlIHBhZGRlZCB1cCB0byAw
eDIwMC4KKyAgICAgIHsweDEwMCwgMHgyMDB9LAorICAgICAgezB4MTIzLCAweDIwMH0sCisgICAg
ICB7MHgxZmIsIDB4MjAwfSwKKyAgICAgIC8vIENsaWVudEhlbGxvcyBvZiBsZW5ndGggMHgxZmMg
dGhyb3VnaCAweDFmZiBnZXQgcGFkZGVkIGJleW9uZCAweDIwMC4gVGhlCisgICAgICAvLyBwYWRk
aW5nIGV4dGVuc2lvbiB0YWtlcyBhIG1pbmltdW0gb2YgZm91ciBieXRlcyBwbHVzIG9uZSByZXF1
aXJlZAorICAgICAgLy8gY29udGVudAorICAgICAgLy8gYnl0ZS4gKFRvIHdvcmsgYXJvdW5kIHll
dCBtb3JlIHNlcnZlciBidWdzLCB3ZSBhdm9pZCBlbXB0eSBmaW5hbAorICAgICAgLy8gZXh0ZW5z
aW9ucy4pCisgICAgICB7MHgxZmMsIDB4MjAxfSwKKyAgICAgIHsweDFmZCwgMHgyMDJ9LAorICAg
ICAgezB4MWZlLCAweDIwM30sCisgICAgICB7MHgxZmYsIDB4MjA0fSwKKyAgICAgIC8vIEZpbmFs
bHksIGxhcmdlciBDbGllbnRIZWxsb3MgbmVlZCBubyBwYWRkaW5nLgorICAgICAgezB4MjAwLCAw
eDIwMH0sCisgICAgICB7MHgyMDEsIDB4MjAxfSwKKyAgfTsKIAotICBmb3IgKGNvbnN0IFBhZGRp
bmdUZXN0ICZ0ZXN0IDoga1BhZGRpbmdUZXN0cykgewotICAgIGlmIChiYXNlX2xlbiA+IHRlc3Qu
aW5wdXRfbGVuKSB7Ci0gICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgIkJhc2Vs
aW5lIENsaWVudEhlbGxvIHRvbyBsb25nIChtYXhfdmVyc2lvbiA9ICUwNHgsICIKLSAgICAgICAg
ICAgICAgInNlc3Npb25fdmVyc2lvbiA9ICUwNHgpLlxuIiwKLSAgICAgICAgICAgICAgbWF4X3Zl
cnNpb24sIHNlc3Npb25fdmVyc2lvbik7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICBm
b3IgKGNvbnN0IFBhZGRpbmdWZXJzaW9ucyAmdmVyc2lvbnMgOiBrUGFkZGluZ1ZlcnNpb25zKSB7
CisgICAgU0NPUEVEX1RSQUNFKHZlcnNpb25zLm1heF92ZXJzaW9uKTsKKyAgICBTQ09QRURfVFJB
Q0UodmVyc2lvbnMuc2Vzc2lvbl92ZXJzaW9uKTsKIAotICAgIHNpemVfdCBwYWRkZWRfbGVuID0g
R2V0Q2xpZW50SGVsbG9MZW4obWF4X3ZlcnNpb24sIHNlc3Npb25fdmVyc2lvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyB0ZXN0LmlucHV0X2xlbiAtIGJh
c2VfbGVuKTsKLSAgICBpZiAocGFkZGVkX2xlbiAhPSB0ZXN0LnBhZGRlZF9sZW4pIHsKLSAgICAg
IGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAiJXUtYnl0ZSBDbGllbnRIZWxsbyBwYWRk
ZWQgdG8gJXUgYnl0ZXMsIG5vdCAldSAobWF4X3ZlcnNpb24gPSAiCi0gICAgICAgICAgICAgICIl
MDR4LCBzZXNzaW9uX3ZlcnNpb24gPSAlMDR4KS5cbiIsCi0gICAgICAgICAgICAgIHN0YXRpY19j
YXN0PHVuc2lnbmVkPih0ZXN0LmlucHV0X2xlbiksCi0gICAgICAgICAgICAgIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihwYWRkZWRfbGVuKSwKLSAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHRlc3QucGFkZGVkX2xlbiksIG1heF92ZXJzaW9uLAotICAgICAgICAgICAgICBzZXNzaW9u
X3ZlcnNpb24pOwotICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFNhbXBsZSBhIGJhc2VsaW5l
IGxlbmd0aC4KKyAgICBzaXplX3QgYmFzZV9sZW4gPQorICAgICAgICBHZXRDbGllbnRIZWxsb0xl
bih2ZXJzaW9ucy5tYXhfdmVyc2lvbiwgdmVyc2lvbnMuc2Vzc2lvbl92ZXJzaW9uLCAxKTsKKyAg
ICBBU1NFUlRfTkUoYmFzZV9sZW4sIDB1KSA8PCAiQmFzZWxpbmUgbGVuZ3RoIGNvdWxkIG5vdCBi
ZSBzYW1wbGVkIjsKKworICAgIGZvciAoY29uc3QgUGFkZGluZ1Rlc3QgJnRlc3QgOiBrUGFkZGlu
Z1Rlc3RzKSB7CisgICAgICBTQ09QRURfVFJBQ0UodGVzdC5pbnB1dF9sZW4pOworICAgICAgQVNT
RVJUX0xFKGJhc2VfbGVuLCB0ZXN0LmlucHV0X2xlbikgPDwgIkJhc2VsaW5lIENsaWVudEhlbGxv
IHRvbyBsb25nIjsKKworICAgICAgc2l6ZV90IHBhZGRlZF9sZW4gPQorICAgICAgICAgIEdldENs
aWVudEhlbGxvTGVuKHZlcnNpb25zLm1heF92ZXJzaW9uLCB2ZXJzaW9ucy5zZXNzaW9uX3ZlcnNp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIHRlc3QuaW5wdXRfbGVuIC0gYmFz
ZV9sZW4pOworICAgICAgRVhQRUNUX0VRKHBhZGRlZF9sZW4sIHRlc3QucGFkZGVkX2xlbikKKyAg
ICAgICAgICA8PCAiQ2xpZW50SGVsbG8gd2FzIG5vdCBwYWRkZWQgdG8gZXhwZWN0ZWQgbGVuZ3Ro
IjsKICAgICB9CiAgIH0KLQotICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJzc2w6OlVuaXF1
ZVB0cjxYNTA5PiBHZXRUZXN0Q2VydGlmaWNhdGUoKSB7CkBAIC0xNTQ1LDYgKzE1MjgsMzcgQEAg
c3RhdGljIGJvb2wgQ29tcGxldGVIYW5kc2hha2VzKFNTTCAqY2xpZW50LCBTU0wgKnNlcnZlcikg
ewogICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgRmx1c2hOZXdTZXNzaW9uVGlja2V0
cyhTU0wgKmNsaWVudCwgU1NMICpzZXJ2ZXIpIHsKKyAgLy8gTmV3U2Vzc2lvblRpY2tldHMgYXJl
IGRlZmVycmVkIG9uIHRoZSBzZXJ2ZXIgdG8gfFNTTF93cml0ZXwsIGFuZCBjbGllbnRzIGRvCisg
IC8vIG5vdCBwaWNrIHRoZW0gdXAgdW50aWwgfFNTTF9yZWFkfC4KKyAgZm9yICg7OykgeworICAg
IGludCBzZXJ2ZXJfcmV0ID0gU1NMX3dyaXRlKHNlcnZlciwgbnVsbHB0ciwgMCk7CisgICAgaW50
IHNlcnZlcl9lcnIgPSBTU0xfZ2V0X2Vycm9yKHNlcnZlciwgc2VydmVyX3JldCk7CisgICAgLy8g
VGhlIHNlcnZlciBtYXkgZWl0aGVyIHN1Y2NlZWQgKHxzZXJ2ZXJfcmV0fCBpcyB6ZXJvKSBvciBi
bG9jayBvbiB3cml0ZQorICAgIC8vICh8c2VydmVyX3JldHwgaXMgLTEgYW5kIHxzZXJ2ZXJfZXJy
fCBpcyB8U1NMX0VSUk9SX1dBTlRfV1JJVEV8KS4KKyAgICBpZiAoc2VydmVyX3JldCA+IDAgfHwK
KyAgICAgICAgKHNlcnZlcl9yZXQgPCAwICYmIHNlcnZlcl9lcnIgIT0gU1NMX0VSUk9SX1dBTlRf
V1JJVEUpKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuZXhwZWN0ZWQgc2VydmVyIHJlc3Vs
dDogJWQgJWRcbiIsIHNlcnZlcl9yZXQsCisgICAgICAgICAgICAgIHNlcnZlcl9lcnIpOworICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGludCBjbGllbnRfcmV0ID0gU1NMX3JlYWQo
Y2xpZW50LCBudWxscHRyLCAwKTsKKyAgICBpbnQgY2xpZW50X2VyciA9IFNTTF9nZXRfZXJyb3Io
Y2xpZW50LCBjbGllbnRfcmV0KTsKKyAgICAvLyBUaGUgY2xpZW50IG11c3QgYWx3YXlzIGJsb2Nr
IG9uIHJlYWQuCisgICAgaWYgKGNsaWVudF9yZXQgIT0gLTEgfHwgY2xpZW50X2VyciAhPSBTU0xf
RVJST1JfV0FOVF9SRUFEKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuZXhwZWN0ZWQgY2xp
ZW50IHJlc3VsdDogJWQgJWRcbiIsIGNsaWVudF9yZXQsCisgICAgICAgICAgICAgIGNsaWVudF9l
cnIpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIFRoZSBzZXJ2ZXIgZmx1
c2hlZCBldmVyeXRoaW5nIGl0IGhhZCB0byB3cml0ZS4KKyAgICBpZiAoc2VydmVyX3JldCA9PSAw
KSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH0KK30KKwogc3RydWN0IENsaWVudENv
bmZpZyB7CiAgIFNTTF9TRVNTSU9OICpzZXNzaW9uID0gbnVsbHB0cjsKICAgc3RkOjpzdHJpbmcg
c2VydmVybmFtZTsKQEAgLTE2NDUsMjAgKzE2NTksMTggQEAgY2xhc3MgU1NMVmVyc2lvblRlc3Qg
OiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPFZlcnNpb25QYXJhbT4gewogICBic3Ns
OjpVbmlxdWVQdHI8RVZQX1BLRVk+IGtleV87CiB9OwogCi1JTlNUQU5USUFURV9URVNUX0NBU0Vf
UChXaXRoVmVyc2lvbiwgU1NMVmVyc2lvblRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0aW5nOjpWYWx1ZXNJbihrQWxsVmVyc2lvbnMpLAotICAgICAgICAgICAgICAgICAgICAgICAg
W10oY29uc3QgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxWZXJzaW9uUGFyYW0+ICZpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpLnBhcmFtLm5hbWU7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChXaXRoVmVyc2lvbiwgU1NM
VmVyc2lvblRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzSW4o
a0FsbFZlcnNpb25zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbXShjb25zdCB0ZXN0aW5n
OjpUZXN0UGFyYW1JbmZvPFZlcnNpb25QYXJhbT4gJmkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBpLnBhcmFtLm5hbWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CiAKIFRFU1RfUChTU0xWZXJzaW9uVGVzdCwgU2VxdWVuY2VOdW1iZXIpIHsKICAgQVNTRVJUX1RS
VUUoQ29ubmVjdCgpKTsKIAogICAvLyBEcmFpbiBhbnkgcG9zdC1oYW5kc2hha2UgbWVzc2FnZXMg
dG8gZW5zdXJlIHRoZXJlIGFyZSBubyB1bnJlYWQgcmVjb3JkcwogICAvLyBvbiBlaXRoZXIgZW5k
LgotICB1aW50OF90IGJ5dGUgPSAwOwotICBBU1NFUlRfTEUoU1NMX3JlYWQoY2xpZW50Xy5nZXQo
KSwgJmJ5dGUsIDEpLCAwKTsKLSAgQVNTRVJUX0xFKFNTTF9yZWFkKHNlcnZlcl8uZ2V0KCksICZi
eXRlLCAxKSwgMCk7CisgIEFTU0VSVF9UUlVFKEZsdXNoTmV3U2Vzc2lvblRpY2tldHMoY2xpZW50
Xy5nZXQoKSwgc2VydmVyXy5nZXQoKSkpOwogCiAgIHVpbnQ2NF90IGNsaWVudF9yZWFkX3NlcSA9
IFNTTF9nZXRfcmVhZF9zZXF1ZW5jZShjbGllbnRfLmdldCgpKTsKICAgdWludDY0X3QgY2xpZW50
X3dyaXRlX3NlcSA9IFNTTF9nZXRfd3JpdGVfc2VxdWVuY2UoY2xpZW50Xy5nZXQoKSk7CkBAIC0x
NjgyLDYgKzE2OTQsNyBAQCBURVNUX1AoU1NMVmVyc2lvblRlc3QsIFNlcXVlbmNlTnVtYmVyKSB7
CiAgIH0KIAogICAvLyBTZW5kIGEgcmVjb3JkIGZyb20gY2xpZW50IHRvIHNlcnZlci4KKyAgdWlu
dDhfdCBieXRlID0gMDsKICAgRVhQRUNUX0VRKFNTTF93cml0ZShjbGllbnRfLmdldCgpLCAmYnl0
ZSwgMSksIDEpOwogICBFWFBFQ1RfRVEoU1NMX3JlYWQoc2VydmVyXy5nZXQoKSwgJmJ5dGUsIDEp
LCAxKTsKIApAQCAtMjA3OSwxNCArMjA5MiwxMiBAQCBzdGF0aWMgYnNzbDo6VW5pcXVlUHRyPFNT
TF9TRVNTSU9OPiBDcmVhdGVDbGllbnRTZXNzaW9uKAogICAvLyBDb25uZWN0IGNsaWVudCBhbmQg
c2VydmVyIHRvIGdldCBhIHNlc3Npb24uCiAgIGJzc2w6OlVuaXF1ZVB0cjxTU0w+IGNsaWVudCwg
c2VydmVyOwogICBpZiAoIUNvbm5lY3RDbGllbnRBbmRTZXJ2ZXIoJmNsaWVudCwgJnNlcnZlciwg
Y2xpZW50X2N0eCwgc2VydmVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bmZpZykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZykgfHwKKyAgICAg
ICFGbHVzaE5ld1Nlc3Npb25UaWNrZXRzKGNsaWVudC5nZXQoKSwgc2VydmVyLmdldCgpKSkgewog
ICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGNvbm5lY3QgY2xpZW50IGFuZCBzZXJ2ZXIu
XG4iKTsKICAgICByZXR1cm4gbnVsbHB0cjsKICAgfQogCi0gIC8vIFJ1biB0aGUgcmVhZCBsb29w
IHRvIGFjY291bnQgZm9yIHBvc3QtaGFuZHNoYWtlIHRpY2tldHMgaW4gVExTIDEuMy4KLSAgU1NM
X3JlYWQoY2xpZW50LmdldCgpLCBudWxscHRyLCAwKTsKLQogICBTU0xfQ1RYX3Nlc3Nfc2V0X25l
d19jYihjbGllbnRfY3R4LCBudWxscHRyKTsKIAogICBpZiAoIWdfbGFzdF9zZXNzaW9uKSB7CkBA
IC0yMTIwLDcgKzIxMzEsOCBAQCBzdGF0aWMgYnNzbDo6VW5pcXVlUHRyPFNTTF9TRVNTSU9OPiBF
eHBlY3RTZXNzaW9uUmVuZXdlZChTU0xfQ1RYICpjbGllbnRfY3R4LAogICBDbGllbnRDb25maWcg
Y29uZmlnOwogICBjb25maWcuc2Vzc2lvbiA9IHNlc3Npb247CiAgIGlmICghQ29ubmVjdENsaWVu
dEFuZFNlcnZlcigmY2xpZW50LCAmc2VydmVyLCBjbGllbnRfY3R4LCBzZXJ2ZXJfY3R4LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uZmlnKSB8fAorICAgICAgIUZsdXNoTmV3U2Vzc2lvblRpY2tldHMoY2xp
ZW50LmdldCgpLCBzZXJ2ZXIuZ2V0KCkpKSB7CiAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQg
dG8gY29ubmVjdCBjbGllbnQgYW5kIHNlcnZlci5cbiIpOwogICAgIHJldHVybiBudWxscHRyOwog
ICB9CkBAIC0yMTM1LDkgKzIxNDcsNiBAQCBzdGF0aWMgYnNzbDo6VW5pcXVlUHRyPFNTTF9TRVNT
SU9OPiBFeHBlY3RTZXNzaW9uUmVuZXdlZChTU0xfQ1RYICpjbGllbnRfY3R4LAogICAgIHJldHVy
biBudWxscHRyOwogICB9CiAKLSAgLy8gUnVuIHRoZSByZWFkIGxvb3AgdG8gYWNjb3VudCBmb3Ig
cG9zdC1oYW5kc2hha2UgdGlja2V0cyBpbiBUTFMgMS4zLgotICBTU0xfcmVhZChjbGllbnQuZ2V0
KCksIG51bGxwdHIsIDApOwotCiAgIFNTTF9DVFhfc2Vzc19zZXRfbmV3X2NiKGNsaWVudF9jdHgs
IG51bGxwdHIpOwogCiAgIGlmICghZ19sYXN0X3Nlc3Npb24pIHsKQEAgLTI2MTIsMjIgKzI2MjEs
MTcgQEAgVEVTVChTU0xUZXN0LCBTZXRWZXJzaW9uKSB7CiAKICAgLy8gWmVybyBpcyB0aGUgZGVm
YXVsdCB2ZXJzaW9uLgogICBFWFBFQ1RfVFJVRShTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lv
bihjdHguZ2V0KCksIDApKTsKLSAgRVhQRUNUX0VRKFRMUzFfMl9WRVJTSU9OLCBjdHgtPmNvbmZf
bWF4X3ZlcnNpb24pOworICBFWFBFQ1RfRVEoVExTMV8yX1ZFUlNJT04sIFNTTF9DVFhfZ2V0X21h
eF9wcm90b192ZXJzaW9uKGN0eC5nZXQoKSkpOwogICBFWFBFQ1RfVFJVRShTU0xfQ1RYX3NldF9t
aW5fcHJvdG9fdmVyc2lvbihjdHguZ2V0KCksIDApKTsKLSAgRVhQRUNUX0VRKFRMUzFfVkVSU0lP
TiwgY3R4LT5jb25mX21pbl92ZXJzaW9uKTsKKyAgRVhQRUNUX0VRKFRMUzFfVkVSU0lPTiwgU1NM
X0NUWF9nZXRfbWluX3Byb3RvX3ZlcnNpb24oY3R4LmdldCgpKSk7CiAKICAgLy8gVExTIDEuMyBp
cyBhdmFpbGFibGUsIGJ1dCBub3QgYnkgZGVmYXVsdC4KICAgRVhQRUNUX1RSVUUoU1NMX0NUWF9z
ZXRfbWF4X3Byb3RvX3ZlcnNpb24oY3R4LmdldCgpLCBUTFMxXzNfVkVSU0lPTikpOwotICBFWFBF
Q1RfRVEoVExTMV8zX1ZFUlNJT04sIGN0eC0+Y29uZl9tYXhfdmVyc2lvbik7CisgIEVYUEVDVF9F
UShUTFMxXzNfVkVSU0lPTiwgU1NMX0NUWF9nZXRfbWF4X3Byb3RvX3ZlcnNpb24oY3R4LmdldCgp
KSk7CiAKICAgLy8gU1NMIDMuMCBpcyBub3QgYXZhaWxhYmxlLgogICBFWFBFQ1RfRkFMU0UoU1NM
X0NUWF9zZXRfbWluX3Byb3RvX3ZlcnNpb24oY3R4LmdldCgpLCBTU0wzX1ZFUlNJT04pKTsKIAot
ICAvLyBUTFMxXzNfRFJBRlRfVkVSU0lPTiBpcyBub3QgYW4gQVBJLWxldmVsIHZlcnNpb24uCi0g
IEVYUEVDVF9GQUxTRSgKLSAgICAgIFNTTF9DVFhfc2V0X21heF9wcm90b192ZXJzaW9uKGN0eC5n
ZXQoKSwgVExTMV8zX0RSQUZUMjNfVkVSU0lPTikpOwotICBFUlJfY2xlYXJfZXJyb3IoKTsKLQog
ICBjdHgucmVzZXQoU1NMX0NUWF9uZXcoRFRMU19tZXRob2QoKSkpOwogICBBU1NFUlRfVFJVRShj
dHgpOwogCkBAIC0yNjQ2LDkgKzI2NTAsOSBAQCBURVNUKFNTTFRlc3QsIFNldFZlcnNpb24pIHsK
ICAgRVhQRUNUX0ZBTFNFKFNTTF9DVFhfc2V0X21pbl9wcm90b192ZXJzaW9uKGN0eC5nZXQoKSwg
MHgxMjM0KSk7CiAKICAgRVhQRUNUX1RSVUUoU1NMX0NUWF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24o
Y3R4LmdldCgpLCAwKSk7Ci0gIEVYUEVDVF9FUShUTFMxXzJfVkVSU0lPTiwgY3R4LT5jb25mX21h
eF92ZXJzaW9uKTsKKyAgRVhQRUNUX0VRKERUTFMxXzJfVkVSU0lPTiwgU1NMX0NUWF9nZXRfbWF4
X3Byb3RvX3ZlcnNpb24oY3R4LmdldCgpKSk7CiAgIEVYUEVDVF9UUlVFKFNTTF9DVFhfc2V0X21p
bl9wcm90b192ZXJzaW9uKGN0eC5nZXQoKSwgMCkpOwotICBFWFBFQ1RfRVEoVExTMV8xX1ZFUlNJ
T04sIGN0eC0+Y29uZl9taW5fdmVyc2lvbik7CisgIEVYUEVDVF9FUShEVExTMV9WRVJTSU9OLCBT
U0xfQ1RYX2dldF9taW5fcHJvdG9fdmVyc2lvbihjdHguZ2V0KCkpKTsKIH0KIAogc3RhdGljIGNv
bnN0IGNoYXIgKkdldFZlcnNpb25OYW1lKHVpbnQxNl90IHZlcnNpb24pIHsKQEAgLTMwNTUsNiAr
MzA1OSw4MiBAQCBURVNUX1AoU1NMVmVyc2lvblRlc3QsIENsaWVudFNlc3Npb25DYWNoZU1vZGUp
IHsKICAgRVhQRUNUX0ZBTFNFKENyZWF0ZUNsaWVudFNlc3Npb24oY2xpZW50X2N0eF8uZ2V0KCks
IHNlcnZlcl9jdHhfLmdldCgpKSk7CiB9CiAKKy8vIFRlc3QgdGhhdCBhbGwgdmVyc2lvbnMgc3Vy
dml2ZSB0aW55IHdyaXRlIGJ1ZmZlcnMuIEluIHBhcnRpY3VsYXIsIFRMUyAxLjMKKy8vIE5ld1Nl
c3Npb25UaWNrZXRzIGFyZSB3cml0dGVuIHBvc3QtaGFuZHNoYWtlLiBTZXJ2ZXJzIHRoYXQgYmxv
Y2sKKy8vIHxTU0xfZG9faGFuZHNoYWtlfCBvbiB3cml0aW5nIHRoZW0gd2lsbCBkZWFkbG9jayBp
ZiBjbGllbnRzIGFyZSBub3QgZHJhaW5pbmcKKy8vIHRoZSBidWZmZXIuIFRlc3QgdGhhdCB3ZSBk
byBub3QgZG8gdGhpcy4KK1RFU1RfUChTU0xWZXJzaW9uVGVzdCwgU21hbGxCdWZmZXIpIHsKKyAg
Ly8gRFRMUyBpcyBhIGRhdGFncmFtIHByb3RvY29sIGFuZCByZXF1aXJlcyBwYWNrZXQtc2l6ZWQg
YnVmZmVycy4KKyAgaWYgKGlzX2R0bHMoKSkgeworICAgIHJldHVybjsKKyAgfQorCisgIC8vIFRl
c3QgYm90aCBmbHVzaGluZyBOZXdTZXNzaW9uVGlja2V0cyB3aXRoIGEgemVyby1zaXplZCB3cml0
ZSBhbmQKKyAgLy8gbm9uLXplcm8tc2l6ZWQgd3JpdGUuCisgIGZvciAoYm9vbCB1c2VfemVyb193
cml0ZSA6IHtmYWxzZSwgdHJ1ZX0pIHsKKyAgICBTQ09QRURfVFJBQ0UodXNlX3plcm9fd3JpdGUp
OworCisgICAgZ19sYXN0X3Nlc3Npb24gPSBudWxscHRyOworICAgIFNTTF9DVFhfc2V0X3Nlc3Np
b25fY2FjaGVfbW9kZShjbGllbnRfY3R4Xy5nZXQoKSwgU1NMX1NFU1NfQ0FDSEVfQk9USCk7Cisg
ICAgU1NMX0NUWF9zZXNzX3NldF9uZXdfY2IoY2xpZW50X2N0eF8uZ2V0KCksIFNhdmVMYXN0U2Vz
c2lvbik7CisKKyAgICBic3NsOjpVbmlxdWVQdHI8U1NMPiBjbGllbnQoU1NMX25ldyhjbGllbnRf
Y3R4Xy5nZXQoKSkpLAorICAgICAgICBzZXJ2ZXIoU1NMX25ldyhzZXJ2ZXJfY3R4Xy5nZXQoKSkp
OworICAgIEFTU0VSVF9UUlVFKGNsaWVudCk7CisgICAgQVNTRVJUX1RSVUUoc2VydmVyKTsKKyAg
ICBTU0xfc2V0X2Nvbm5lY3Rfc3RhdGUoY2xpZW50LmdldCgpKTsKKyAgICBTU0xfc2V0X2FjY2Vw
dF9zdGF0ZShzZXJ2ZXIuZ2V0KCkpOworCisgICAgLy8gVXNlIGEgdGlueSBidWZmZXIuCisgICAg
QklPICpiaW8xLCAqYmlvMjsKKyAgICBBU1NFUlRfVFJVRShCSU9fbmV3X2Jpb19wYWlyKCZiaW8x
LCAxLCAmYmlvMiwgMSkpOworCisgICAgLy8gU1NMX3NldF9iaW8gdGFrZXMgb3duZXJzaGlwLgor
ICAgIFNTTF9zZXRfYmlvKGNsaWVudC5nZXQoKSwgYmlvMSwgYmlvMSk7CisgICAgU1NMX3NldF9i
aW8oc2VydmVyLmdldCgpLCBiaW8yLCBiaW8yKTsKKworICAgIEFTU0VSVF9UUlVFKENvbXBsZXRl
SGFuZHNoYWtlcyhjbGllbnQuZ2V0KCksIHNlcnZlci5nZXQoKSkpOworICAgIGlmICh2ZXJzaW9u
KCkgPj0gVExTMV8zX1ZFUlNJT04pIHsKKyAgICAgIC8vIFRoZSBwb3N0LWhhbmRzaGFrZSB0aWNr
ZXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4gcHJvY2Vzc2VkIHlldC4KKyAgICAgIEVYUEVDVF9GQUxT
RShnX2xhc3Rfc2Vzc2lvbik7CisgICAgfQorCisgICAgaWYgKHVzZV96ZXJvX3dyaXRlKSB7Cisg
ICAgICBBU1NFUlRfVFJVRShGbHVzaE5ld1Nlc3Npb25UaWNrZXRzKGNsaWVudC5nZXQoKSwgc2Vy
dmVyLmdldCgpKSk7CisgICAgICBFWFBFQ1RfVFJVRShnX2xhc3Rfc2Vzc2lvbik7CisgICAgfQor
CisgICAgLy8gU2VuZCBzb21lIGRhdGEgZnJvbSBzZXJ2ZXIgdG8gY2xpZW50LiBJZiB8dXNlX3pl
cm9fd3JpdGV8IGlzIGZhbHNlLCB0aGlzCisgICAgLy8gd2lsbCBhbHNvIGZsdXNoIHRoZSBOZXdT
ZXNzaW9uVGlja2V0cy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBrTWVzc2FnZVtdID0gImhlbGxv
IHdvcmxkIjsKKyAgICBjaGFyIGJ1ZltzaXplb2Yoa01lc3NhZ2UpXTsKKyAgICBmb3IgKDs7KSB7
CisgICAgICBpbnQgc2VydmVyX3JldCA9IFNTTF93cml0ZShzZXJ2ZXIuZ2V0KCksIGtNZXNzYWdl
LCBzaXplb2Yoa01lc3NhZ2UpKTsKKyAgICAgIGludCBzZXJ2ZXJfZXJyID0gU1NMX2dldF9lcnJv
cihzZXJ2ZXIuZ2V0KCksIHNlcnZlcl9yZXQpOworICAgICAgaW50IGNsaWVudF9yZXQgPSBTU0xf
cmVhZChjbGllbnQuZ2V0KCksIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgICAgaW50IGNsaWVudF9l
cnIgPSBTU0xfZ2V0X2Vycm9yKGNsaWVudC5nZXQoKSwgY2xpZW50X3JldCk7CisKKyAgICAgIC8v
IFRoZSBzZXJ2ZXIgd2lsbCB3cml0ZSBhIHNpbmdsZSByZWNvcmQsIHNvIGV2ZXJ5IGl0ZXJhdGlv
biBzaG91bGQgc2VlCisgICAgICAvLyB8U1NMX0VSUk9SX1dBTlRfV1JJVEV8IGFuZCB8U1NMX0VS
Uk9SX1dBTlRfUkVBRHwsIHVudGlsIHRoZSBmaW5hbAorICAgICAgLy8gaXRlcmF0aW9uLCB3aGVy
ZSBib3RoIHdpbGwgY29tcGxldGUuCisgICAgICBpZiAoc2VydmVyX3JldCA+IDApIHsKKyAgICAg
ICAgRVhQRUNUX0VRKHNlcnZlcl9yZXQsIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKGtNZXNzYWdl
KSkpOworICAgICAgICBFWFBFQ1RfRVEoY2xpZW50X3JldCwgc3RhdGljX2Nhc3Q8aW50PihzaXpl
b2Yoa01lc3NhZ2UpKSk7CisgICAgICAgIEVYUEVDVF9FUShCeXRlcyhidWYpLCBCeXRlcyhrTWVz
c2FnZSkpOworICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgQVNTRVJUX0VRKHNlcnZl
cl9yZXQsIC0xKTsKKyAgICAgIEFTU0VSVF9FUShzZXJ2ZXJfZXJyLCBTU0xfRVJST1JfV0FOVF9X
UklURSk7CisgICAgICBBU1NFUlRfRVEoY2xpZW50X3JldCwgLTEpOworICAgICAgQVNTRVJUX0VR
KGNsaWVudF9lcnIsIFNTTF9FUlJPUl9XQU5UX1JFQUQpOworICAgIH0KKworICAgIC8vIFRoZSBO
ZXdTZXNzaW9uVGlja2V0cyBzaG91bGQgaGF2ZSBiZWVuIGZsdXNoZWQgYW5kIHByb2Nlc3NlZC4K
KyAgICBFWFBFQ1RfVFJVRShnX2xhc3Rfc2Vzc2lvbik7CisgIH0KK30KKwogVEVTVChTU0xUZXN0
LCBBZGRDaGFpbkNlcnRIYWNrKSB7CiAgIC8vIEVuc3VyZSB0aGF0IHdlIGRvbid0IGFjY2lkZW50
bHkgYnJlYWsgdGhlIGhhY2sgdGhhdCB3ZSBoYXZlIGluIHBsYWNlIHRvCiAgIC8vIGtlZXAgY3Vy
bCBhbmQgc2VyZiBoYXBweSB3aGVuIHRoZXkgdXNlIGFuIHxYNTA5fCBldmVuIGFmdGVyIHRyYW5z
ZmVyaW5nCkBAIC0zNTE0LDkgKzM1OTQsNyBAQCBURVNUX1AoVGlja2V0QUVBRE1ldGhvZFRlc3Qs
IFJlc3VtZSkgewogICBFWFBFQ1RfRkFMU0UoU1NMX3Nlc3Npb25fcmV1c2VkKGNsaWVudC5nZXQo
KSkpOwogICBFWFBFQ1RfRkFMU0UoU1NMX3Nlc3Npb25fcmV1c2VkKHNlcnZlci5nZXQoKSkpOwog
Ci0gIC8vIFJ1biB0aGUgcmVhZCBsb29wIHRvIGFjY291bnQgZm9yIHBvc3QtaGFuZHNoYWtlIHRp
Y2tldHMgaW4gVExTIDEuMy4KLSAgU1NMX3JlYWQoY2xpZW50LmdldCgpLCBudWxscHRyLCAwKTsK
LQorICBBU1NFUlRfVFJVRShGbHVzaE5ld1Nlc3Npb25UaWNrZXRzKGNsaWVudC5nZXQoKSwgc2Vy
dmVyLmdldCgpKSk7CiAgIGJzc2w6OlVuaXF1ZVB0cjxTU0xfU0VTU0lPTj4gc2Vzc2lvbiA9IHN0
ZDo6bW92ZShnX2xhc3Rfc2Vzc2lvbik7CiAgIENvbm5lY3RDbGllbnRBbmRTZXJ2ZXJXaXRoVGlj
a2V0TWV0aG9kKCZjbGllbnQsICZzZXJ2ZXIsIGNsaWVudF9jdHguZ2V0KCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jdHguZ2V0KCksIHJldHJ5X2Nv
dW50LApAQCAtMzU3NCw3ICszNjUyLDcgQEAgc3RkOjpzdHJpbmcgVGlja2V0QUVBRE1ldGhvZFBh
cmFtVG9TdHJpbmcoCiAgIHJldHVybiByZXQ7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
KAorSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKAogICAgIFRpY2tldEFFQURNZXRob2RUZXN0cywg
VGlja2V0QUVBRE1ldGhvZFRlc3QsCiAgICAgdGVzdGluZzo6Q29tYmluZSh0ZXN0aW5nOjpWYWx1
ZXMoVExTMV8yX1ZFUlNJT04sIFRMUzFfM19WRVJTSU9OKSwKICAgICAgICAgICAgICAgICAgICAg
IHRlc3Rpbmc6OlZhbHVlcygwLCAxLCAyKSwKQEAgLTQwNTAsOCArNDEyOCw5IEBAIFRFU1QoU1NM
VGVzdCwgSGFuZG9mZikgewogCiAgIFNjb3BlZENCQiBjYmI7CiAgIEFycmF5PHVpbnQ4X3Q+IGhh
bmRvZmY7CisgIFNTTF9DTElFTlRfSEVMTE8gaGVsbG87CiAgIEFTU0VSVF9UUlVFKENCQl9pbml0
KGNiYi5nZXQoKSwgMjU2KSk7Ci0gIEFTU0VSVF9UUlVFKFNTTF9zZXJpYWxpemVfaGFuZG9mZihz
ZXJ2ZXIuZ2V0KCksIGNiYi5nZXQoKSkpOworICBBU1NFUlRfVFJVRShTU0xfc2VyaWFsaXplX2hh
bmRvZmYoc2VydmVyLmdldCgpLCBjYmIuZ2V0KCksICZoZWxsbykpOwogICBBU1NFUlRfVFJVRShD
QkJGaW5pc2hBcnJheShjYmIuZ2V0KCksICZoYW5kb2ZmKSk7CiAKICAgYnNzbDo6VW5pcXVlUHRy
PFNTTD4gaGFuZHNoYWtlcihTU0xfbmV3KGhhbmRzaGFrZXJfY3R4LmdldCgpKSk7CkBAIC00MTIy
LDggKzQyMDEsOSBAQCBURVNUKFNTTFRlc3QsIEhhbmRvZmZEZWNsaW5lZCkgewogICBBU1NFUlRf
RVEoc2VydmVyX2VyciwgU1NMX0VSUk9SX0hBTkRPRkYpOwogCiAgIFNjb3BlZENCQiBjYmI7Cisg
IFNTTF9DTElFTlRfSEVMTE8gaGVsbG87CiAgIEFTU0VSVF9UUlVFKENCQl9pbml0KGNiYi5nZXQo
KSwgMjU2KSk7Ci0gIEFTU0VSVF9UUlVFKFNTTF9zZXJpYWxpemVfaGFuZG9mZihzZXJ2ZXIuZ2V0
KCksIGNiYi5nZXQoKSkpOworICBBU1NFUlRfVFJVRShTU0xfc2VyaWFsaXplX2hhbmRvZmYoc2Vy
dmVyLmdldCgpLCBjYmIuZ2V0KCksICZoZWxsbykpOwogCiAgIEFTU0VSVF9UUlVFKFNTTF9kZWNs
aW5lX2hhbmRvZmYoc2VydmVyLmdldCgpKSk7CiAKQEAgLTQzNTMsNiArNDQzMywzNSBAQCBURVNU
KFNTTFRlc3QsIEFwcGx5SGFuZG9mZlJlbW92ZXNVbnN1cHBvcnRlZEN1cnZlcykgewogICBFWFBF
Q1RfRVEoMXUsIHNlcnZlci0+Y29uZmlnLT5zdXBwb3J0ZWRfZ3JvdXBfbGlzdC5zaXplKCkpOwog
fQogCitURVNUKFNTTFRlc3QsIFplcm9TaXplZFdpdGVGbHVzaGVzSGFuZHNoYWtlTWVzc2FnZXMp
IHsKKyAgLy8gSWYgdGhlcmUgYXJlIHBlbmRpbmcgaGFuZHNoYWtlIG1lc2FnZXMsIGFuIHxTU0xf
d3JpdGV8IG9mIHplcm8gYnl0ZXMgc2hvdWxkCisgIC8vIGZsdXNoIHRoZW0uCisgIGJzc2w6OlVu
aXF1ZVB0cjxTU0xfQ1RYPiBzZXJ2ZXJfY3R4KFNTTF9DVFhfbmV3KFRMU19tZXRob2QoKSkpOwor
ICBFWFBFQ1RfVFJVRShTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbihzZXJ2ZXJfY3R4Lmdl
dCgpLCBUTFMxXzNfVkVSU0lPTikpOworICBFWFBFQ1RfVFJVRShTU0xfQ1RYX3NldF9taW5fcHJv
dG9fdmVyc2lvbihzZXJ2ZXJfY3R4LmdldCgpLCBUTFMxXzNfVkVSU0lPTikpOworICBic3NsOjpV
bmlxdWVQdHI8WDUwOT4gY2VydCA9IEdldFRlc3RDZXJ0aWZpY2F0ZSgpOworICBic3NsOjpVbmlx
dWVQdHI8RVZQX1BLRVk+IGtleSA9IEdldFRlc3RLZXkoKTsKKyAgQVNTRVJUX1RSVUUoY2VydCk7
CisgIEFTU0VSVF9UUlVFKGtleSk7CisgIEFTU0VSVF9UUlVFKFNTTF9DVFhfdXNlX2NlcnRpZmlj
YXRlKHNlcnZlcl9jdHguZ2V0KCksIGNlcnQuZ2V0KCkpKTsKKyAgQVNTRVJUX1RSVUUoU1NMX0NU
WF91c2VfUHJpdmF0ZUtleShzZXJ2ZXJfY3R4LmdldCgpLCBrZXkuZ2V0KCkpKTsKKworICBic3Ns
OjpVbmlxdWVQdHI8U1NMX0NUWD4gY2xpZW50X2N0eChTU0xfQ1RYX25ldyhUTFNfbWV0aG9kKCkp
KTsKKyAgRVhQRUNUX1RSVUUoU1NMX0NUWF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24oY2xpZW50X2N0
eC5nZXQoKSwgVExTMV8zX1ZFUlNJT04pKTsKKyAgRVhQRUNUX1RSVUUoU1NMX0NUWF9zZXRfbWlu
X3Byb3RvX3ZlcnNpb24oY2xpZW50X2N0eC5nZXQoKSwgVExTMV8zX1ZFUlNJT04pKTsKKworICBi
c3NsOjpVbmlxdWVQdHI8U1NMPiBjbGllbnQsIHNlcnZlcjsKKyAgQVNTRVJUX1RSVUUoQ29ubmVj
dENsaWVudEFuZFNlcnZlcigmY2xpZW50LCAmc2VydmVyLCBjbGllbnRfY3R4LmdldCgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jdHguZ2V0KCkpKTsKKwor
ICBCSU8gKmNsaWVudF93YmlvID0gU1NMX2dldF93YmlvKGNsaWVudC5nZXQoKSk7CisgIEVYUEVD
VF9FUSgwdSwgQklPX3dwZW5kaW5nKGNsaWVudF93YmlvKSk7CisgIEVYUEVDVF9UUlVFKFNTTF9r
ZXlfdXBkYXRlKGNsaWVudC5nZXQoKSwgU1NMX0tFWV9VUERBVEVfTk9UX1JFUVVFU1RFRCkpOwor
ICBFWFBFQ1RfRVEoMHUsIEJJT193cGVuZGluZyhjbGllbnRfd2JpbykpOworICBFWFBFQ1RfRVEo
MCwgU1NMX3dyaXRlKGNsaWVudC5nZXQoKSwgbnVsbHB0ciwgMCkpOworICBFWFBFQ1RfTkUoMHUs
IEJJT193cGVuZGluZyhjbGllbnRfd2JpbykpOworfQorCiBURVNUX1AoU1NMVmVyc2lvblRlc3Qs
IFZlcmlmeUJlZm9yZUNlcnRSZXF1ZXN0KSB7CiAgIC8vIENvbmZpZ3VyZSB0aGUgc2VydmVyIHRv
IHJlcXVlc3QgY2xpZW50IGNlcnRpZmljYXRlcy4KICAgU1NMX0NUWF9zZXRfY3VzdG9tX3Zlcmlm
eSgKQEAgLTQ1MTYsNyArNDYyNSw2NiBAQCBURVNUKFNTTFRlc3QsIEdldENlcnRpZmljYXRlVGhy
ZWFkcykgewogICBFWFBFQ1RfRVEoY2VydDIsIGNlcnQyX3RocmVhZCk7CiAgIEVYUEVDVF9FUSgw
LCBYNTA5X2NtcChjZXJ0LmdldCgpLCBjZXJ0MikpOwogfQotI2VuZGlmCisKKy8vIEZ1bmN0aW9u
cyB3aGljaCBhY2Nlc3MgcHJvcGVydGllcyBvbiB0aGUgbmVnb3RpYXRlZCBzZXNzaW9uIGFyZSB0
aHJlYWQtc2FmZQorLy8gd2hlcmUgbmVlZGVkLiBQcmlvciB0byBUTFMgMS4zLCBjbGllbnRzIHJl
c3VtaW5nIHNlc3Npb25zIGFuZCBzZXJ2ZXJzCisvLyBwZXJmb3JtaW5nIHN0YXRlZnVsIHJlc3Vt
cHRpb24gd2lsbCBzaGFyZSBhbiB1bmRlcmx5aW5nIFNTTF9TRVNTSU9OIG9iamVjdCwKKy8vIHBv
dGVudGlhbGx5IGFjcm9zcyB0aHJlYWRzLgorVEVTVF9QKFNTTFZlcnNpb25UZXN0LCBTZXNzaW9u
UHJvcGVydGllc1RocmVhZHMpIHsKKyAgaWYgKHZlcnNpb24oKSA9PSBUTFMxXzNfVkVSU0lPTikg
eworICAgIC8vIE91ciBUTFMgMS4zIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHN1cHBvcnQgc3Rh
dGVmdWwgcmVzdW1wdGlvbi4KKyAgICBBU1NFUlRfRkFMU0UoQ3JlYXRlQ2xpZW50U2Vzc2lvbihj
bGllbnRfY3R4Xy5nZXQoKSwgc2VydmVyX2N0eF8uZ2V0KCkpKTsKKyAgICByZXR1cm47CisgIH0K
KworICBTU0xfQ1RYX3NldF9vcHRpb25zKHNlcnZlcl9jdHhfLmdldCgpLCBTU0xfT1BfTk9fVElD
S0VUKTsKKyAgU1NMX0NUWF9zZXRfc2Vzc2lvbl9jYWNoZV9tb2RlKGNsaWVudF9jdHhfLmdldCgp
LCBTU0xfU0VTU19DQUNIRV9CT1RIKTsKKyAgU1NMX0NUWF9zZXRfc2Vzc2lvbl9jYWNoZV9tb2Rl
KHNlcnZlcl9jdHhfLmdldCgpLCBTU0xfU0VTU19DQUNIRV9CT1RIKTsKKworICBBU1NFUlRfVFJV
RShVc2VDZXJ0QW5kS2V5KGNsaWVudF9jdHhfLmdldCgpKSk7CisgIEFTU0VSVF9UUlVFKFVzZUNl
cnRBbmRLZXkoc2VydmVyX2N0eF8uZ2V0KCkpKTsKKworICAvLyBDb25maWd1cmUgbXV0dWFsIGF1
dGhlbnRpY2F0aW9uLCBzbyB3ZSBoYXZlIG1vcmUgc2Vzc2lvbiBzdGF0ZS4KKyAgU1NMX0NUWF9z
ZXRfY3VzdG9tX3ZlcmlmeSgKKyAgICAgIGNsaWVudF9jdHhfLmdldCgpLCBTU0xfVkVSSUZZX1BF
RVIsCisgICAgICBbXShTU0wgKnNzbCwgdWludDhfdCAqb3V0X2FsZXJ0KSB7IHJldHVybiBzc2xf
dmVyaWZ5X29rOyB9KTsKKyAgU1NMX0NUWF9zZXRfY3VzdG9tX3ZlcmlmeSgKKyAgICAgIHNlcnZl
cl9jdHhfLmdldCgpLCBTU0xfVkVSSUZZX1BFRVIsCisgICAgICBbXShTU0wgKnNzbCwgdWludDhf
dCAqb3V0X2FsZXJ0KSB7IHJldHVybiBzc2xfdmVyaWZ5X29rOyB9KTsKKworICAvLyBFc3RhYmxp
c2ggYSBjbGllbnQgc2Vzc2lvbiB0byB0ZXN0IHdpdGguCisgIGJzc2w6OlVuaXF1ZVB0cjxTU0xf
U0VTU0lPTj4gc2Vzc2lvbiA9CisgICAgICBDcmVhdGVDbGllbnRTZXNzaW9uKGNsaWVudF9jdHhf
LmdldCgpLCBzZXJ2ZXJfY3R4Xy5nZXQoKSk7CisgIEFTU0VSVF9UUlVFKHNlc3Npb24pOworCisg
IC8vIFJlc3VtZSB3aXRoIGl0IHR3aWNlLgorICBVbmlxdWVQdHI8U1NMPiBzc2xzWzRdOworICBD
bGllbnRDb25maWcgY29uZmlnOworICBjb25maWcuc2Vzc2lvbiA9IHNlc3Npb24uZ2V0KCk7Cisg
IEFTU0VSVF9UUlVFKENvbm5lY3RDbGllbnRBbmRTZXJ2ZXIoJnNzbHNbMF0sICZzc2xzWzFdLCBj
bGllbnRfY3R4Xy5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXJ2ZXJfY3R4Xy5nZXQoKSwgY29uZmlnKSk7CisgIEFTU0VSVF9UUlVFKENvbm5lY3RDbGllbnRB
bmRTZXJ2ZXIoJnNzbHNbMl0sICZzc2xzWzNdLCBjbGllbnRfY3R4Xy5nZXQoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfY3R4Xy5nZXQoKSwgY29uZmlnKSk7
CisKKyAgLy8gUmVhZCBwcm9wZXJ0aWVzIGluIHBhcmFsbGVsLgorICBhdXRvIHJlYWRfcHJvcGVy
dGllcyA9IFtdKGNvbnN0IFNTTCAqc3NsKSB7CisgICAgRVhQRUNUX1RSVUUoU1NMX2dldF9wZWVy
X2NlcnRfY2hhaW4oc3NsKSk7CisgICAgYnNzbDo6VW5pcXVlUHRyPFg1MDk+IHBlZXIoU1NMX2dl
dF9wZWVyX2NlcnRpZmljYXRlKHNzbCkpOworICAgIEVYUEVDVF9UUlVFKHBlZXIpOworICAgIEVY
UEVDVF9UUlVFKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3NsKSk7CisgICAgRVhQRUNUX1RSVUUo
U1NMX2dldF9jdXJ2ZV9pZChzc2wpKTsKKyAgfTsKKworICBzdGQ6OnZlY3RvcjxzdGQ6OnRocmVh
ZD4gdGhyZWFkczsKKyAgZm9yIChjb25zdCBhdXRvICZzc2xfcHRyIDogc3NscykgeworICAgIGNv
bnN0IFNTTCAqc3NsID0gc3NsX3B0ci5nZXQoKTsKKyAgICB0aHJlYWRzLmVtcGxhY2VfYmFjayhb
PV0geyByZWFkX3Byb3BlcnRpZXMoc3NsKTsgfSk7CisgIH0KKyAgZm9yIChhdXRvICZ0aHJlYWQg
OiB0aHJlYWRzKSB7CisgICAgdGhyZWFkLmpvaW4oKTsKKyAgfQorfQorI2VuZGlmICAvLyBPUEVO
U1NMX1RIUkVBRFMKIAogY29uc3RleHByIHNpemVfdCBrTnVtUVVJQ0xldmVscyA9IDQ7CiBzdGF0
aWNfYXNzZXJ0KHNzbF9lbmNyeXB0aW9uX2luaXRpYWwgPCBrTnVtUVVJQ0xldmVscywKQEAgLTQ3
ODMsNyArNDk1MSw3IEBAIGNsYXNzIFFVSUNNZXRob2RUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgewogCiBVbm93bmVkU1NMRXhEYXRhPE1vY2tRVUlDVHJhbnNwb3J0PiBRVUlDTWV0aG9kVGVz
dDo6ZXhfZGF0YV87CiAKLS8vIFRlc3QgYSBmdWxsIGhhbmRzaGFrZSB3b3Jrcy4KKy8vIFRlc3Qg
YSBmdWxsIGhhbmRzaGFrZSBhbmQgcmVzdW1wdGlvbiB3b3JrLgogVEVTVF9GKFFVSUNNZXRob2RU
ZXN0LCBCYXNpYykgewogICBjb25zdCBTU0xfUVVJQ19NRVRIT0QgcXVpY19tZXRob2QgPSB7CiAg
ICAgICBTZXRFbmNyeXB0aW9uU2VjcmV0c0NhbGxiYWNrLApAQCAtNDg2Niw2ICs1MDM0LDU2IEBA
IFRFU1RfRihRVUlDTWV0aG9kVGVzdCwgQmFzaWMpIHsKICAgRVhQRUNUX1RSVUUoU1NMX3Nlc3Np
b25fcmV1c2VkKHNlcnZlcl8uZ2V0KCkpKTsKIH0KIAorLy8gVGVzdCB0aGF0IEhlbGxvUmV0cnlS
ZXF1ZXN0IGluIFFVSUMgd29ya3MuCitURVNUX0YoUVVJQ01ldGhvZFRlc3QsIEhlbGxvUmV0cnlS
ZXF1ZXN0KSB7CisgIGNvbnN0IFNTTF9RVUlDX01FVEhPRCBxdWljX21ldGhvZCA9IHsKKyAgICAg
IFNldEVuY3J5cHRpb25TZWNyZXRzQ2FsbGJhY2ssCisgICAgICBBZGRIYW5kc2hha2VEYXRhQ2Fs
bGJhY2ssCisgICAgICBGbHVzaEZsaWdodENhbGxiYWNrLAorICAgICAgU2VuZEFsZXJ0Q2FsbGJh
Y2ssCisgIH07CisKKyAgQVNTRVJUX1RSVUUoU1NMX0NUWF9zZXRfcXVpY19tZXRob2QoY2xpZW50
X2N0eF8uZ2V0KCksICZxdWljX21ldGhvZCkpOworICBBU1NFUlRfVFJVRShTU0xfQ1RYX3NldF9x
dWljX21ldGhvZChzZXJ2ZXJfY3R4Xy5nZXQoKSwgJnF1aWNfbWV0aG9kKSk7CisKKyAgLy8gQm9y
aW5nU1NMIHByZWRpY3RzIHRoZSBtb3N0IHByZWZlcnJlZCBjdXJ2ZSwgc28gdXNpbmcgZGlmZmVy
ZW50IHByZWZlcmVuY2VzCisgIC8vIHdpbGwgdHJpZ2dlciBIZWxsb1JldHJ5UmVxdWVzdC4KKyAg
c3RhdGljIGNvbnN0IGludCBrQ2xpZW50UHJlZnNbXSA9IHtOSURfWDI1NTE5LCBOSURfWDlfNjJf
cHJpbWUyNTZ2MX07CisgIEFTU0VSVF9UUlVFKFNTTF9DVFhfc2V0MV9jdXJ2ZXMoY2xpZW50X2N0
eF8uZ2V0KCksIGtDbGllbnRQcmVmcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBPUEVOU1NMX0FSUkFZX1NJWkUoa0NsaWVudFByZWZzKSkpOworICBzdGF0aWMgY29uc3QgaW50
IGtTZXJ2ZXJQcmVmc1tdID0ge05JRF9YOV82Ml9wcmltZTI1NnYxLCBOSURfWDI1NTE5fTsKKyAg
QVNTRVJUX1RSVUUoU1NMX0NUWF9zZXQxX2N1cnZlcyhzZXJ2ZXJfY3R4Xy5nZXQoKSwga1NlcnZl
clByZWZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5TU0xfQVJSQVlf
U0laRShrU2VydmVyUHJlZnMpKSk7CisKKyAgQVNTRVJUX1RSVUUoQ3JlYXRlQ2xpZW50QW5kU2Vy
dmVyKCkpOworCisgIGZvciAoOzspIHsKKyAgICBBU1NFUlRfVFJVRShQcm92aWRlSGFuZHNoYWtl
RGF0YShjbGllbnRfLmdldCgpKSk7CisgICAgaW50IGNsaWVudF9yZXQgPSBTU0xfZG9faGFuZHNo
YWtlKGNsaWVudF8uZ2V0KCkpOworICAgIGlmIChjbGllbnRfcmV0ICE9IDEpIHsKKyAgICAgIEFT
U0VSVF9FUShjbGllbnRfcmV0LCAtMSk7CisgICAgICBBU1NFUlRfRVEoU1NMX2dldF9lcnJvcihj
bGllbnRfLmdldCgpLCBjbGllbnRfcmV0KSwgU1NMX0VSUk9SX1dBTlRfUkVBRCk7CisgICAgfQor
CisgICAgQVNTRVJUX1RSVUUoUHJvdmlkZUhhbmRzaGFrZURhdGEoc2VydmVyXy5nZXQoKSkpOwor
ICAgIGludCBzZXJ2ZXJfcmV0ID0gU1NMX2RvX2hhbmRzaGFrZShzZXJ2ZXJfLmdldCgpKTsKKyAg
ICBpZiAoc2VydmVyX3JldCAhPSAxKSB7CisgICAgICBBU1NFUlRfRVEoc2VydmVyX3JldCwgLTEp
OworICAgICAgQVNTRVJUX0VRKFNTTF9nZXRfZXJyb3Ioc2VydmVyXy5nZXQoKSwgc2VydmVyX3Jl
dCksIFNTTF9FUlJPUl9XQU5UX1JFQUQpOworICAgIH0KKworICAgIGlmIChjbGllbnRfcmV0ID09
IDEgJiYgc2VydmVyX3JldCA9PSAxKSB7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICBF
WFBFQ1RfRVEoU1NMX2RvX2hhbmRzaGFrZShjbGllbnRfLmdldCgpKSwgMSk7CisgIEVYUEVDVF9F
UShTU0xfZG9faGFuZHNoYWtlKHNlcnZlcl8uZ2V0KCkpLCAxKTsKKyAgRVhQRUNUX1RSVUUodHJh
bnNwb3J0Xy5TZWNyZXRzTWF0Y2goc3NsX2VuY3J5cHRpb25fYXBwbGljYXRpb24pKTsKKyAgRVhQ
RUNUX0ZBTFNFKHRyYW5zcG9ydF8uY2xpZW50KCktPmhhc19hbGVydCgpKTsKKyAgRVhQRUNUX0ZB
TFNFKHRyYW5zcG9ydF8uc2VydmVyKCktPmhhc19hbGVydCgpKTsKK30KKwogLy8gVGVzdCBvbmx5
IHJlbGVhc2luZyBkYXRhIHRvIFFVSUMgb25lIGJ5dGUgYXQgYSB0aW1lIG9uIHJlcXVlc3QsIHRv
IG1heGltaXplCiAvLyBzdGF0ZSBtYWNoaW5lIHBhdXNlcy4gQWRkaXRpb25hbGx5LCB0ZXN0IHRo
YXQgZXhpc3RpbmcgYXN5bmNocm9ub3VzIGNhbGxiYWNrcwogLy8gc3RpbGwgd29yay4KQEAgLTUx
NzMsMjMgKzUzOTEsMTAxIEBAIFRFU1RfRihRVUlDTWV0aG9kVGVzdCwgQmFkUG9zdEhhbmRzaGFr
ZSkgewogICBFWFBFQ1RfRVEoU1NMX3Byb2Nlc3NfcXVpY19wb3N0X2hhbmRzaGFrZShjbGllbnRf
LmdldCgpKSwgMCk7CiB9CiAKLS8vIFRPRE8oZGF2aWRiZW4pOiBDb252ZXJ0IHRoaXMgZmlsZSB0
byBHVGVzdCBwcm9wZXJseS4KLVRFU1QoU1NMVGVzdCwgQWxsVGVzdHMpIHsKLSAgaWYgKCFUZXN0
U1NMX1NFU1NJT05FbmNvZGluZyhrT3BlblNTTFNlc3Npb24pIHx8Ci0gICAgICAhVGVzdFNTTF9T
RVNTSU9ORW5jb2Rpbmcoa0N1c3RvbVNlc3Npb24pIHx8Ci0gICAgICAhVGVzdFNTTF9TRVNTSU9O
RW5jb2Rpbmcoa0JvcmluZ1NTTFNlc3Npb24pIHx8Ci0gICAgICAhVGVzdEJhZFNTTF9TRVNTSU9O
RW5jb2Rpbmcoa0JhZFNlc3Npb25FeHRyYUZpZWxkKSB8fAotICAgICAgIVRlc3RCYWRTU0xfU0VT
U0lPTkVuY29kaW5nKGtCYWRTZXNzaW9uVmVyc2lvbikgfHwKLSAgICAgICFUZXN0QmFkU1NMX1NF
U1NJT05FbmNvZGluZyhrQmFkU2Vzc2lvblRyYWlsaW5nRGF0YSkgfHwKLSAgICAgIC8vIFRlc3Qg
dGhlIHBhZGRpbmcgZXh0ZW5zaW9uIGF0IFRMUyAxLjIuCi0gICAgICAhVGVzdFBhZGRpbmdFeHRl
bnNpb24oVExTMV8yX1ZFUlNJT04sIFRMUzFfMl9WRVJTSU9OKSB8fAotICAgICAgLy8gVGVzdCB0
aGUgcGFkZGluZyBleHRlbnNpb24gYXQgVExTIDEuMyB3aXRoIGEgVExTIDEuMiBzZXNzaW9uLCBz
byB0aGVyZQotICAgICAgLy8gd2lsbCBiZSBubyBQU0sgYmluZGVyIGFmdGVyIHRoZSBwYWRkaW5n
IGV4dGVuc2lvbi4KLSAgICAgICFUZXN0UGFkZGluZ0V4dGVuc2lvbihUTFMxXzNfVkVSU0lPTiwg
VExTMV8yX1ZFUlNJT04pIHx8Ci0gICAgICAvLyBUZXN0IHRoZSBwYWRkaW5nIGV4dGVuc2lvbiBh
dCBUTFMgMS4zIHdpdGggYSBUTFMgMS4zIHNlc3Npb24sIHNvIHRoZXJlCi0gICAgICAvLyB3aWxs
IGJlIGEgUFNLIGJpbmRlciBhZnRlciB0aGUgcGFkZGluZyBleHRlbnNpb24uCi0gICAgICAhVGVz
dFBhZGRpbmdFeHRlbnNpb24oVExTMV8zX1ZFUlNJT04sIFRMUzFfM19WRVJTSU9OKSkgewotICAg
IEFERF9GQUlMVVJFKCkgPDwgIlRlc3RzIGZhaWxlZCI7CitleHRlcm4gIkMiIHsKK2ludCBCT1JJ
TkdTU0xfZW51bV9jX3R5cGVfdGVzdCh2b2lkKTsKK30KKworVEVTVChTU0xUZXN0LCBFbnVtVHlw
ZXMpIHsKKyAgRVhQRUNUX0VRKHNpemVvZihpbnQpLCBzaXplb2Yoc3NsX3ByaXZhdGVfa2V5X3Jl
c3VsdF90KSk7CisgIEVYUEVDVF9FUSgxLCBCT1JJTkdTU0xfZW51bV9jX3R5cGVfdGVzdCgpKTsK
K30KKworVEVTVF9QKFNTTFZlcnNpb25UZXN0LCBEb3VibGVTU0xFcnJvcikgeworICAvLyBDb25u
ZWN0IHRoZSBpbm5lciBTU0wgY29ubmVjdGlvbnMuCisgIEFTU0VSVF9UUlVFKENvbm5lY3QoKSk7
CisKKyAgLy8gTWFrZSBhIHBhaXIgb2YgfEJJT3xzIHdoaWNoIHdyYXAgfGNsaWVudF98IGFuZCB8
c2VydmVyX3wuCisgIFVuaXF1ZVB0cjxCSU9fTUVUSE9EPiBiaW9fbWV0aG9kKEJJT19tZXRoX25l
dygwLCBudWxscHRyKSk7CisgIEFTU0VSVF9UUlVFKGJpb19tZXRob2QpOworICBBU1NFUlRfVFJV
RShCSU9fbWV0aF9zZXRfcmVhZCgKKyAgICAgIGJpb19tZXRob2QuZ2V0KCksIFtdKEJJTyAqYmlv
LCBjaGFyICpvdXQsIGludCBsZW4pIC0+IGludCB7CisgICAgICAgIFNTTCAqc3NsID0gc3RhdGlj
X2Nhc3Q8U1NMICo+KEJJT19nZXRfZGF0YShiaW8pKTsKKyAgICAgICAgaW50IHJldCA9IFNTTF9y
ZWFkKHNzbCwgb3V0LCBsZW4pOworICAgICAgICBpbnQgc3NsX3JldCA9IFNTTF9nZXRfZXJyb3Io
c3NsLCByZXQpOworICAgICAgICBpZiAoc3NsX3JldCA9PSBTU0xfRVJST1JfV0FOVF9SRUFEKSB7
CisgICAgICAgICAgQklPX3NldF9yZXRyeV9yZWFkKGJpbyk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIHJldDsKKyAgICAgIH0pKTsKKyAgQVNTRVJUX1RSVUUoQklPX21ldGhfc2V0X3dyaXRl
KAorICAgICAgYmlvX21ldGhvZC5nZXQoKSwgW10oQklPICpiaW8sIGNvbnN0IGNoYXIgKmluLCBp
bnQgbGVuKSAtPiBpbnQgeworICAgICAgICBTU0wgKnNzbCA9IHN0YXRpY19jYXN0PFNTTCAqPihC
SU9fZ2V0X2RhdGEoYmlvKSk7CisgICAgICAgIGludCByZXQgPSBTU0xfd3JpdGUoc3NsLCBpbiwg
bGVuKTsKKyAgICAgICAgaW50IHNzbF9yZXQgPSBTU0xfZ2V0X2Vycm9yKHNzbCwgcmV0KTsKKyAg
ICAgICAgaWYgKHNzbF9yZXQgPT0gU1NMX0VSUk9SX1dBTlRfV1JJVEUpIHsKKyAgICAgICAgICBC
SU9fc2V0X3JldHJ5X3dyaXRlKGJpbyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldDsK
KyAgICAgIH0pKTsKKyAgQVNTRVJUX1RSVUUoQklPX21ldGhfc2V0X2N0cmwoCisgICAgICBiaW9f
bWV0aG9kLmdldCgpLCBbXShCSU8gKmJpbywgaW50IGNtZCwgbG9uZyBsYXJnLCB2b2lkICpwYXJn
KSAtPiBsb25nIHsKKyAgICAgICAgLy8gfFNTTHwgb2JqZWN0cyByZXF1aXJlIHxCSU9fZmx1c2h8
IHN1cHBvcnQuCisgICAgICAgIGlmIChjbWQgPT0gQklPX0NUUkxfRkxVU0gpIHsKKyAgICAgICAg
ICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICAgIH0pKTsKKwor
ICBVbmlxdWVQdHI8QklPPiBjbGllbnRfYmlvKEJJT19uZXcoYmlvX21ldGhvZC5nZXQoKSkpOwor
ICBBU1NFUlRfVFJVRShjbGllbnRfYmlvKTsKKyAgQklPX3NldF9kYXRhKGNsaWVudF9iaW8uZ2V0
KCksIGNsaWVudF8uZ2V0KCkpOworICBCSU9fc2V0X2luaXQoY2xpZW50X2Jpby5nZXQoKSwgMSk7
CisKKyAgVW5pcXVlUHRyPEJJTz4gc2VydmVyX2JpbyhCSU9fbmV3KGJpb19tZXRob2QuZ2V0KCkp
KTsKKyAgQVNTRVJUX1RSVUUoc2VydmVyX2Jpbyk7CisgIEJJT19zZXRfZGF0YShzZXJ2ZXJfYmlv
LmdldCgpLCBzZXJ2ZXJfLmdldCgpKTsKKyAgQklPX3NldF9pbml0KHNlcnZlcl9iaW8uZ2V0KCks
IDEpOworCisgIC8vIFdyYXAgdGhlIGlubmVyIGNvbm5lY3Rpb25zIGluIGFub3RoZXIgbGF5ZXIg
b2YgU1NMLgorICBVbmlxdWVQdHI8U1NMPiBjbGllbnRfb3V0ZXIoU1NMX25ldyhjbGllbnRfY3R4
Xy5nZXQoKSkpOworICBBU1NFUlRfVFJVRShjbGllbnRfb3V0ZXIpOworICBTU0xfc2V0X2Nvbm5l
Y3Rfc3RhdGUoY2xpZW50X291dGVyLmdldCgpKTsKKyAgU1NMX3NldF9iaW8oY2xpZW50X291dGVy
LmdldCgpLCBjbGllbnRfYmlvLmdldCgpLCBjbGllbnRfYmlvLmdldCgpKTsKKyAgY2xpZW50X2Jp
by5yZWxlYXNlKCk7ICAvLyB8U1NMX3NldF9iaW98IHRha2VzIG93bmVyc2hpcC4KKworICBVbmlx
dWVQdHI8U1NMPiBzZXJ2ZXJfb3V0ZXIoU1NMX25ldyhzZXJ2ZXJfY3R4Xy5nZXQoKSkpOworICBB
U1NFUlRfVFJVRShzZXJ2ZXJfb3V0ZXIpOworICBTU0xfc2V0X2FjY2VwdF9zdGF0ZShzZXJ2ZXJf
b3V0ZXIuZ2V0KCkpOworICBTU0xfc2V0X2JpbyhzZXJ2ZXJfb3V0ZXIuZ2V0KCksIHNlcnZlcl9i
aW8uZ2V0KCksIHNlcnZlcl9iaW8uZ2V0KCkpOworICBzZXJ2ZXJfYmlvLnJlbGVhc2UoKTsgIC8v
IHxTU0xfc2V0X2Jpb3wgdGFrZXMgb3duZXJzaGlwLgorCisgIC8vIENvbmZpZ3VyZSB8Y2xpZW50
X291dGVyfCB0byByZWplY3QgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZS4KKyAgU1NMX3NldF9jdXN0
b21fdmVyaWZ5KAorICAgICAgY2xpZW50X291dGVyLmdldCgpLCBTU0xfVkVSSUZZX1BFRVIsCisg
ICAgICBbXShTU0wgKnNzbCwgdWludDhfdCAqb3V0X2FsZXJ0KSAtPiBzc2xfdmVyaWZ5X3Jlc3Vs
dF90IHsKKyAgICAgICAgcmV0dXJuIHNzbF92ZXJpZnlfaW52YWxpZDsKKyAgICAgIH0pOworCisg
IGZvciAoOzspIHsKKyAgICBpbnQgY2xpZW50X3JldCA9IFNTTF9kb19oYW5kc2hha2UoY2xpZW50
X291dGVyLmdldCgpKTsKKyAgICBpbnQgY2xpZW50X2VyciA9IFNTTF9nZXRfZXJyb3IoY2xpZW50
X291dGVyLmdldCgpLCBjbGllbnRfcmV0KTsKKyAgICBpZiAoY2xpZW50X2VyciAhPSBTU0xfRVJS
T1JfV0FOVF9SRUFEICYmCisgICAgICAgIGNsaWVudF9lcnIgIT0gU1NMX0VSUk9SX1dBTlRfV1JJ
VEUpIHsKKyAgICAgIC8vIFRoZSBjbGllbnQgaGFuZHNoYWtlIHNob3VsZCB0ZXJtaW5hdGUgb24g
YSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24KKyAgICAgIC8vIGVycm9yLgorICAgICAgRVhQRUNU
X0VRKFNTTF9FUlJPUl9TU0wsIGNsaWVudF9lcnIpOworICAgICAgdWludDMyX3QgZXJyID0gRVJS
X3BlZWtfZXJyb3IoKTsKKyAgICAgIEVYUEVDVF9FUShFUlJfTElCX1NTTCwgRVJSX0dFVF9MSUIo
ZXJyKSk7CisgICAgICBFWFBFQ1RfRVEoU1NMX1JfQ0VSVElGSUNBVEVfVkVSSUZZX0ZBSUxFRCwg
RVJSX0dFVF9SRUFTT04oZXJyKSk7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBSdW4g
dGhlIHNlcnZlciBoYW5kc2hha2UgYW5kIGNvbnRpbnVlLgorICAgIGludCBzZXJ2ZXJfcmV0ID0g
U1NMX2RvX2hhbmRzaGFrZShzZXJ2ZXJfb3V0ZXIuZ2V0KCkpOworICAgIGludCBzZXJ2ZXJfZXJy
ID0gU1NMX2dldF9lcnJvcihzZXJ2ZXJfb3V0ZXIuZ2V0KCksIHNlcnZlcl9yZXQpOworICAgIEFT
U0VSVF9UUlVFKHNlcnZlcl9lcnIgPT0gU1NMX0VSUk9SX05PTkUgfHwKKyAgICAgICAgICAgICAg
ICBzZXJ2ZXJfZXJyID09IFNTTF9FUlJPUl9XQU5UX1JFQUQgfHwKKyAgICAgICAgICAgICAgICBz
ZXJ2ZXJfZXJyID09IFNTTF9FUlJPUl9XQU5UX1dSSVRFKTsKICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvc3NsL3NzbF90cmFuc2NyaXB0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfdHJhbnNjcmlwdC5jYwpp
bmRleCA4YmI1MTNkYTg1NDk1ODg2NWY3MzM5MjE1Yzc1NWVlYThhYzQ3NjQxLi5jMWNlZjJiYjEy
ZTQzNDQ4MzZhYmE5MmExYjgzZDgzYjNkMzllNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF90
cmFuc2NyaXB0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX3RyYW5zY3JpcHQuY2MKQEAgLTEzNyw2ICsx
MzcsNyBAQAogCiAjaW5jbHVkZSA8b3BlbnNzbC9idWYuaD4KICNpbmNsdWRlIDxvcGVuc3NsL2Rp
Z2VzdC5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CiAKICNpbmNsdWRlICJpbnRlcm5hbC5o
IgogCkBAIC0yMDUsOCArMjA2LDIwIEBAIGJvb2wgU1NMVHJhbnNjcmlwdDo6VXBkYXRlRm9ySGVs
bG9SZXRyeVJlcXVlc3QoKSB7CiAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFNTTFRyYW5zY3Jp
cHQ6OkNvcHlIYXNoQ29udGV4dChFVlBfTURfQ1RYICpjdHgpIHsKLSAgcmV0dXJuIEVWUF9NRF9D
VFhfY29weV9leChjdHgsIGhhc2hfLmdldCgpKTsKK2Jvb2wgU1NMVHJhbnNjcmlwdDo6Q29weVRv
SGFzaENvbnRleHQoRVZQX01EX0NUWCAqY3R4LCBjb25zdCBFVlBfTUQgKmRpZ2VzdCkgeworICBj
b25zdCBFVlBfTUQgKnRyYW5zY3JpcHRfZGlnZXN0ID0gRGlnZXN0KCk7CisgIGlmICh0cmFuc2Ny
aXB0X2RpZ2VzdCAhPSBudWxscHRyICYmCisgICAgICBFVlBfTURfdHlwZSh0cmFuc2NyaXB0X2Rp
Z2VzdCkgPT0gRVZQX01EX3R5cGUoZGlnZXN0KSkgeworICAgIHJldHVybiBFVlBfTURfQ1RYX2Nv
cHlfZXgoY3R4LCBoYXNoXy5nZXQoKSk7CisgIH0KKworICBpZiAoYnVmZmVyXykgeworICAgIHJl
dHVybiBFVlBfRGlnZXN0SW5pdF9leChjdHgsIGRpZ2VzdCwgbnVsbHB0cikgJiYKKyAgICAgICAg
ICAgRVZQX0RpZ2VzdFVwZGF0ZShjdHgsIGJ1ZmZlcl8tPmRhdGEsIGJ1ZmZlcl8tPmxlbmd0aCk7
CisgIH0KKworICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVSUl9SX0lOVEVSTkFMX0VSUk9SKTsK
KyAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFNTTFRyYW5zY3JpcHQ6OlVwZGF0ZShTcGFuPGNv
bnN0IHVpbnQ4X3Q+IGluKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3NzbF92ZXJzaW9ucy5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9zc2wvc3NsX3ZlcnNpb25zLmNjCmluZGV4IDg2MTY5Njc2MmM1YWIxZWNlZGRkZTgzZDJl
NzA2MmU1NzY3N2Y4YjUuLmUyNWZjZTZkMWVlMGFlZWVmZDE1YTk0YjE4N2E0NGZjN2Y4YmRmMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX3ZlcnNpb25zLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX3Zl
cnNpb25zLmNjCkBAIC0zNCwxMSArMzQsNiBAQCBib29sIHNzbF9wcm90b2NvbF92ZXJzaW9uX2Zy
b21fd2lyZSh1aW50MTZfdCAqb3V0LCB1aW50MTZfdCB2ZXJzaW9uKSB7CiAgICAgICAqb3V0ID0g
dmVyc2lvbjsKICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgY2FzZSBUTFMxXzNfRFJBRlQyM19W
RVJTSU9OOgotICAgIGNhc2UgVExTMV8zX0RSQUZUMjhfVkVSU0lPTjoKLSAgICAgICpvdXQgPSBU
TFMxXzNfVkVSU0lPTjsKLSAgICAgIHJldHVybiB0cnVlOwotCiAgICAgY2FzZSBEVExTMV9WRVJT
SU9OOgogICAgICAgLy8gRFRMUyAxLjAgaXMgYW5hbG9nb3VzIHRvIFRMUyAxLjEsIG5vdCBUTFMg
MS4wLgogICAgICAgKm91dCA9IFRMUzFfMV9WRVJTSU9OOwpAQCAtNTgsOCArNTMsNiBAQCBib29s
IHNzbF9wcm90b2NvbF92ZXJzaW9uX2Zyb21fd2lyZSh1aW50MTZfdCAqb3V0LCB1aW50MTZfdCB2
ZXJzaW9uKSB7CiAKIHN0YXRpYyBjb25zdCB1aW50MTZfdCBrVExTVmVyc2lvbnNbXSA9IHsKICAg
ICBUTFMxXzNfVkVSU0lPTiwKLSAgICBUTFMxXzNfRFJBRlQyOF9WRVJTSU9OLAotICAgIFRMUzFf
M19EUkFGVDIzX1ZFUlNJT04sCiAgICAgVExTMV8yX1ZFUlNJT04sCiAgICAgVExTMV8xX1ZFUlNJ
T04sCiAgICAgVExTMV9WRVJTSU9OLApAQCAtOTUsMTQgKzg4LDEwIEBAIGJvb2wgc3NsX21ldGhv
ZF9zdXBwb3J0c192ZXJzaW9uKGNvbnN0IFNTTF9QUk9UT0NPTF9NRVRIT0QgKm1ldGhvZCwKIH0K
IAogLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgbWFwIGJldHdlZW4gQVBJIHZlcnNpb25zIGFu
ZCB3aXJlIHZlcnNpb25zLiBUaGUKLS8vIHB1YmxpYyBBUEkgd29ya3Mgb24gd2lyZSB2ZXJzaW9u
cywgZXhjZXB0IHRoYXQgVExTIDEuMyBkcmFmdCB2ZXJzaW9ucyBhbGwKLS8vIGFwcGVhciBhcyBU
TFMgMS4zLiBUaGlzIHdpbGwgZ2V0IGNvbGxhcHNlZCBiYWNrIGRvd24gd2hlbiBUTFMgMS4zIGlz
Ci0vLyBmaW5hbGl6ZWQuCisvLyBwdWJsaWMgQVBJIHdvcmtzIG9uIHdpcmUgdmVyc2lvbnMuCiAK
IHN0YXRpYyBjb25zdCBjaGFyICpzc2xfdmVyc2lvbl90b19zdHJpbmcodWludDE2X3QgdmVyc2lv
bikgewogICBzd2l0Y2ggKHZlcnNpb24pIHsKLSAgICBjYXNlIFRMUzFfM19EUkFGVDIzX1ZFUlNJ
T046Ci0gICAgY2FzZSBUTFMxXzNfRFJBRlQyOF9WRVJTSU9OOgogICAgIGNhc2UgVExTMV8zX1ZF
UlNJT046CiAgICAgICByZXR1cm4gIlRMU3YxLjMiOwogCkBAIC0xMjcsMjYgKzExNiwxMSBAQCBz
dGF0aWMgY29uc3QgY2hhciAqc3NsX3ZlcnNpb25fdG9fc3RyaW5nKHVpbnQxNl90IHZlcnNpb24p
IHsKIH0KIAogc3RhdGljIHVpbnQxNl90IHdpcmVfdmVyc2lvbl90b19hcGkodWludDE2X3QgdmVy
c2lvbikgewotICBzd2l0Y2ggKHZlcnNpb24pIHsKLSAgICAvLyBSZXBvcnQgVExTIDEuMyBkcmFm
dCB2ZXJzaW9ucyBhcyBUTFMgMS4zIGluIHRoZSBwdWJsaWMgQVBJLgotICAgIGNhc2UgVExTMV8z
X0RSQUZUMjNfVkVSU0lPTjoKLSAgICBjYXNlIFRMUzFfM19EUkFGVDI4X1ZFUlNJT046Ci0gICAg
Y2FzZSBUTFMxXzNfVkVSU0lPTjoKLSAgICAgIHJldHVybiBUTFMxXzNfVkVSU0lPTjsKLSAgICBk
ZWZhdWx0OgotICAgICAgcmV0dXJuIHZlcnNpb247Ci0gIH0KKyAgcmV0dXJuIHZlcnNpb247CiB9
CiAKLS8vIGFwaV92ZXJzaW9uX3RvX3dpcmUgbWFwcyB8dmVyc2lvbnwgdG8gc29tZSByZXByZXNl
bnRhdGl2ZSB3aXJlIHZlcnNpb24uIEluCi0vLyBwYXJ0aWN1bGFyLCBpdCBwaWNrcyBhbiBhcmJp
dHJhcnkgVExTIDEuMyByZXByZXNlbnRhdGl2ZS4gVGhpcyBzaG91bGQgb25seSBiZQotLy8gdXNl
ZCBpbiBjb250ZXh0IHdoZXJlIHRoYXQgZG9lcyBub3QgbWF0dGVyLgorLy8gYXBpX3ZlcnNpb25f
dG9fd2lyZSBtYXBzIHx2ZXJzaW9ufCB0byBzb21lIHJlcHJlc2VudGF0aXZlIHdpcmUgdmVyc2lv
bi4KIHN0YXRpYyBib29sIGFwaV92ZXJzaW9uX3RvX3dpcmUodWludDE2X3QgKm91dCwgdWludDE2
X3QgdmVyc2lvbikgewotICBpZiAodmVyc2lvbiA9PSBUTFMxXzNfRFJBRlQyM19WRVJTSU9OIHx8
Ci0gICAgICB2ZXJzaW9uID09IFRMUzFfM19EUkFGVDI4X1ZFUlNJT04pIHsKLSAgICByZXR1cm4g
ZmFsc2U7Ci0gIH0KLQogICAvLyBDaGVjayBpdCBpcyBhIHJlYWwgcHJvdG9jb2wgdmVyc2lvbi4K
ICAgdWludDE2X3QgdW51c2VkOwogICBpZiAoIXNzbF9wcm90b2NvbF92ZXJzaW9uX2Zyb21fd2ly
ZSgmdW51c2VkLCB2ZXJzaW9uKSkgewpAQCAtMTYwLDEyICsxMzQsMTIgQEAgc3RhdGljIGJvb2wg
YXBpX3ZlcnNpb25fdG9fd2lyZSh1aW50MTZfdCAqb3V0LCB1aW50MTZfdCB2ZXJzaW9uKSB7CiBz
dGF0aWMgYm9vbCBzZXRfdmVyc2lvbl9ib3VuZChjb25zdCBTU0xfUFJPVE9DT0xfTUVUSE9EICpt
ZXRob2QsIHVpbnQxNl90ICpvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50
MTZfdCB2ZXJzaW9uKSB7CiAgIGlmICghYXBpX3ZlcnNpb25fdG9fd2lyZSgmdmVyc2lvbiwgdmVy
c2lvbikgfHwKLSAgICAgICFzc2xfbWV0aG9kX3N1cHBvcnRzX3ZlcnNpb24obWV0aG9kLCB2ZXJz
aW9uKSB8fAotICAgICAgIXNzbF9wcm90b2NvbF92ZXJzaW9uX2Zyb21fd2lyZShvdXQsIHZlcnNp
b24pKSB7CisgICAgICAhc3NsX21ldGhvZF9zdXBwb3J0c192ZXJzaW9uKG1ldGhvZCwgdmVyc2lv
bikpIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX1VOS05PV05fU1NMX1ZFUlNJ
T04pOwogICAgIHJldHVybiBmYWxzZTsKICAgfQogCisgICpvdXQgPSB2ZXJzaW9uOwogICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtMTczLDggKzE0Nyw3IEBAIHN0YXRpYyBib29sIHNldF9taW5fdmVy
c2lvbihjb25zdCBTU0xfUFJPVE9DT0xfTUVUSE9EICptZXRob2QsIHVpbnQxNl90ICpvdXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgdmVyc2lvbikgewogICAvLyBaZXJv
IGlzIGludGVycHJldGVkIGFzIHRoZSBkZWZhdWx0IG1pbmltdW0gdmVyc2lvbi4KICAgaWYgKHZl
cnNpb24gPT0gMCkgewotICAgIC8vIFRMUyAxLjAgZG9lcyBub3QgZXhpc3QgaW4gRFRMUy4KLSAg
ICAqb3V0ID0gbWV0aG9kLT5pc19kdGxzID8gVExTMV8xX1ZFUlNJT04gOiBUTFMxX1ZFUlNJT047
CisgICAgKm91dCA9IG1ldGhvZC0+aXNfZHRscyA/IERUTFMxX1ZFUlNJT04gOiBUTFMxX1ZFUlNJ
T047CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIApAQCAtMTg1LDcgKzE1OCw3IEBAIHN0YXRpYyBi
b29sIHNldF9tYXhfdmVyc2lvbihjb25zdCBTU0xfUFJPVE9DT0xfTUVUSE9EICptZXRob2QsIHVp
bnQxNl90ICpvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgdmVyc2lv
bikgewogICAvLyBaZXJvIGlzIGludGVycHJldGVkIGFzIHRoZSBkZWZhdWx0IG1heGltdW0gdmVy
c2lvbi4KICAgaWYgKHZlcnNpb24gPT0gMCkgewotICAgICpvdXQgPSBUTFMxXzJfVkVSU0lPTjsK
KyAgICAqb3V0ID0gbWV0aG9kLT5pc19kdGxzID8gRFRMUzFfMl9WRVJTSU9OIDogVExTMV8yX1ZF
UlNJT047CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIApAQCAtMjE0LDExICsxODcsMTcgQEAgYm9v
bCBzc2xfZ2V0X3ZlcnNpb25fcmFuZ2UoY29uc3QgU1NMX0hBTkRTSEFLRSAqaHMsIHVpbnQxNl90
ICpvdXRfbWluX3ZlcnNpb24sCiAgICAgfQogICB9CiAKLSAgdWludDE2X3QgbWluX3ZlcnNpb24g
PSBocy0+Y29uZmlnLT5jb25mX21pbl92ZXJzaW9uOwotICB1aW50MTZfdCBtYXhfdmVyc2lvbiA9
IGhzLT5jb25maWctPmNvbmZfbWF4X3ZlcnNpb247CisgIHVpbnQxNl90IG1pbl92ZXJzaW9uLCBt
YXhfdmVyc2lvbjsKKyAgaWYgKCFzc2xfcHJvdG9jb2xfdmVyc2lvbl9mcm9tX3dpcmUoJm1pbl92
ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+Y29uZmln
LT5jb25mX21pbl92ZXJzaW9uKSB8fAorICAgICAgIXNzbF9wcm90b2NvbF92ZXJzaW9uX2Zyb21f
d2lyZSgmbWF4X3ZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhzLT5jb25maWctPmNvbmZfbWF4X3ZlcnNpb24pKSB7CisgICAgT1BFTlNTTF9QVVRfRVJST1Io
U1NMLCBFUlJfUl9JTlRFUk5BTF9FUlJPUik7CisgICAgcmV0dXJuIGZhbHNlOworICB9CiAKICAg
Ly8gUVVJQyByZXF1aXJlcyBUTFMgMS4zLgotICBpZiAoaHMtPnNzbC0+Y3R4LT5xdWljX21ldGhv
ZCAmJiBtaW5fdmVyc2lvbiA8IFRMUzFfM19WRVJTSU9OKSB7CisgIGlmIChocy0+c3NsLT5xdWlj
X21ldGhvZCAmJiBtaW5fdmVyc2lvbiA8IFRMUzFfM19WRVJTSU9OKSB7CiAgICAgbWluX3ZlcnNp
b24gPSBUTFMxXzNfVkVSU0lPTjsKICAgfQogCkBAIC0yOTksMjEgKzI3OCw2IEBAIGJvb2wgc3Ns
X3N1cHBvcnRzX3ZlcnNpb24oU1NMX0hBTkRTSEFLRSAqaHMsIHVpbnQxNl90IHZlcnNpb24pIHsK
ICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAotICAvLyBJZiB0aGUgVExTIDEuMyB2YXJpYW50IGlz
IHNldCB0byB8dGxzMTNfZGVmYXVsdHwsIGFsbCB2YXJpYW50cyBhcmUgZW5hYmxlZCwKLSAgLy8g
b3RoZXJ3aXNlIG9ubHkgdGhlIG1hdGNoaW5nIHZlcnNpb24gaXMgZW5hYmxlZC4KLSAgaWYgKHBy
b3RvY29sX3ZlcnNpb24gPT0gVExTMV8zX1ZFUlNJT04pIHsKLSAgICBzd2l0Y2ggKHNzbC0+dGxz
MTNfdmFyaWFudCkgewotICAgICAgY2FzZSB0bHMxM19kcmFmdDIzOgotICAgICAgICByZXR1cm4g
dmVyc2lvbiA9PSBUTFMxXzNfRFJBRlQyM19WRVJTSU9OOwotICAgICAgY2FzZSB0bHMxM19kcmFm
dDI4OgotICAgICAgICByZXR1cm4gdmVyc2lvbiA9PSBUTFMxXzNfRFJBRlQyOF9WRVJTSU9OOwot
ICAgICAgY2FzZSB0bHMxM19yZmM6Ci0gICAgICAgIHJldHVybiB2ZXJzaW9uID09IFRMUzFfM19W
RVJTSU9OOwotICAgICAgY2FzZSB0bHMxM19hbGw6Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgfQotCiAgIHJldHVybiB0cnVlOwogfQogCkBAIC0zNzMsMTAgKzMzNyw2IEBAIGJvb2wg
c3NsX25lZ290aWF0ZV92ZXJzaW9uKFNTTF9IQU5EU0hBS0UgKmhzLCB1aW50OF90ICpvdXRfYWxl
cnQsCiAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBzc2xfaXNfZHJhZnQyOCh1aW50MTZfdCB2
ZXJzaW9uKSB7Ci0gIHJldHVybiB2ZXJzaW9uID09IFRMUzFfM19EUkFGVDI4X1ZFUlNJT04gfHwg
dmVyc2lvbiA9PSBUTFMxXzNfVkVSU0lPTjsKLX0KLQogQlNTTF9OQU1FU1BBQ0VfRU5ECiAKIHVz
aW5nIG5hbWVzcGFjZSBic3NsOwpAQCAtMzg5LDYgKzM0OSwxNCBAQCBpbnQgU1NMX0NUWF9zZXRf
bWF4X3Byb3RvX3ZlcnNpb24oU1NMX0NUWCAqY3R4LCB1aW50MTZfdCB2ZXJzaW9uKSB7CiAgIHJl
dHVybiBzZXRfbWF4X3ZlcnNpb24oY3R4LT5tZXRob2QsICZjdHgtPmNvbmZfbWF4X3ZlcnNpb24s
IHZlcnNpb24pOwogfQogCit1aW50MTZfdCBTU0xfQ1RYX2dldF9taW5fcHJvdG9fdmVyc2lvbihT
U0xfQ1RYICpjdHgpIHsKKyAgcmV0dXJuIGN0eC0+Y29uZl9taW5fdmVyc2lvbjsKK30KKwordWlu
dDE2X3QgU1NMX0NUWF9nZXRfbWF4X3Byb3RvX3ZlcnNpb24oU1NMX0NUWCAqY3R4KSB7CisgIHJl
dHVybiBjdHgtPmNvbmZfbWF4X3ZlcnNpb247Cit9CisKIGludCBTU0xfc2V0X21pbl9wcm90b192
ZXJzaW9uKFNTTCAqc3NsLCB1aW50MTZfdCB2ZXJzaW9uKSB7CiAgIGlmICghc3NsLT5jb25maWcp
IHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvc3NsX3g1MDkuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL3NzbF94NTA5LmNjCmluZGV4IGVjMjAzYjIyNDExOTQ1M2ZmNTZhNjVmMTYzNmM5ODIzZThi
MzIwZjkuLmNkYTc2MTE3MTk4MGUyNDk0N2Q2NmM2YmUzNjE1NjJjYjYxNjk2MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9zc2wvc3NsX3g1MDkuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC9zc2xfeDUwOS5jYwpAQCAtMjAw
LDE5ICsyMDAsMTkgQEAgc3RhdGljIFVuaXF1ZVB0cjxTVEFDS19PRihDUllQVE9fQlVGRkVSKT4g
bmV3X2xlYWZsZXNzX2NoYWluKHZvaWQpIHsKIC8vIGZvcm1zIG9mIGVsZW1lbnRzIG9mIHxjaGFp
bnwuIEl0IHJldHVybnMgb25lIG9uIHN1Y2Nlc3Mgb3IgemVybyBvbiBlcnJvciwgaW4KIC8vIHdo
aWNoIGNhc2Ugbm8gY2hhbmdlIHRvIHxjZXJ0LT5jaGFpbnwgaXMgbWFkZS4gSXQgcHJldmVyc2Vz
IHRoZSBleGlzdGluZwogLy8gbGVhZiBmcm9tIHxjZXJ0LT5jaGFpbnwsIGlmIGFueS4KLXN0YXRp
YyBpbnQgc3NsX2NlcnRfc2V0X2NoYWluKENFUlQgKmNlcnQsIFNUQUNLX09GKFg1MDkpICpjaGFp
bikgeworc3RhdGljIGJvb2wgc3NsX2NlcnRfc2V0X2NoYWluKENFUlQgKmNlcnQsIFNUQUNLX09G
KFg1MDkpICpjaGFpbikgewogICBVbmlxdWVQdHI8U1RBQ0tfT0YoQ1JZUFRPX0JVRkZFUik+IG5l
d19jaGFpbjsKIAogICBpZiAoY2VydC0+Y2hhaW4gIT0gbnVsbHB0cikgewogICAgIG5ld19jaGFp
bi5yZXNldChza19DUllQVE9fQlVGRkVSX25ld19udWxsKCkpOwogICAgIGlmICghbmV3X2NoYWlu
KSB7Ci0gICAgICByZXR1cm4gMDsKKyAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICAv
LyB8bGVhZnwgbWlnaHQgYmUgTlVMTCBpZiBpdCdzIGEg4oCcbGVhZmxlc3PigJ0gY2hhaW4uCiAg
ICAgQ1JZUFRPX0JVRkZFUiAqbGVhZiA9IHNrX0NSWVBUT19CVUZGRVJfdmFsdWUoY2VydC0+Y2hh
aW4uZ2V0KCksIDApOwogICAgIGlmICghUHVzaFRvU3RhY2sobmV3X2NoYWluLmdldCgpLCBVcFJl
ZihsZWFmKSkpIHsKLSAgICAgIHJldHVybiAwOworICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
ICAgfQogCkBAIC0yMjAsMzIgKzIyMCwzMiBAQCBzdGF0aWMgaW50IHNzbF9jZXJ0X3NldF9jaGFp
bihDRVJUICpjZXJ0LCBTVEFDS19PRihYNTA5KSAqY2hhaW4pIHsKICAgICBpZiAoIW5ld19jaGFp
bikgewogICAgICAgbmV3X2NoYWluID0gbmV3X2xlYWZsZXNzX2NoYWluKCk7CiAgICAgICBpZiAo
IW5ld19jaGFpbikgewotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgfQogICAgIH0KIAogICAgIFVuaXF1ZVB0cjxDUllQVE9fQlVGRkVSPiBidWZmZXIgPSB4
NTA5X3RvX2J1ZmZlcih4NTA5KTsKICAgICBpZiAoIWJ1ZmZlciB8fAogICAgICAgICAhUHVzaFRv
U3RhY2sobmV3X2NoYWluLmdldCgpLCBzdGQ6Om1vdmUoYnVmZmVyKSkpIHsKLSAgICAgIHJldHVy
biAwOworICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgfQogCiAgIGNlcnQtPmNoYWluID0g
c3RkOjptb3ZlKG5ld19jaGFpbik7Ci0gIHJldHVybiAxOworICByZXR1cm4gdHJ1ZTsKIH0KIAog
c3RhdGljIHZvaWQgc3NsX2NyeXB0b194NTA5X2NlcnRfZmx1c2hfY2FjaGVkX2xlYWYoQ0VSVCAq
Y2VydCkgewogICBYNTA5X2ZyZWUoY2VydC0+eDUwOV9sZWFmKTsKLSAgY2VydC0+eDUwOV9sZWFm
ID0gTlVMTDsKKyAgY2VydC0+eDUwOV9sZWFmID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIHZvaWQg
c3NsX2NyeXB0b194NTA5X2NlcnRfZmx1c2hfY2FjaGVkX2NoYWluKENFUlQgKmNlcnQpIHsKICAg
c2tfWDUwOV9wb3BfZnJlZShjZXJ0LT54NTA5X2NoYWluLCBYNTA5X2ZyZWUpOwotICBjZXJ0LT54
NTA5X2NoYWluID0gTlVMTDsKKyAgY2VydC0+eDUwOV9jaGFpbiA9IG51bGxwdHI7CiB9CiAKLXN0
YXRpYyBpbnQgc3NsX2NyeXB0b194NTA5X2NoZWNrX2NsaWVudF9DQV9saXN0KAorc3RhdGljIGJv
b2wgc3NsX2NyeXB0b194NTA5X2NoZWNrX2NsaWVudF9DQV9saXN0KAogICAgIFNUQUNLX09GKENS
WVBUT19CVUZGRVIpICpuYW1lcykgewogICBmb3IgKGNvbnN0IENSWVBUT19CVUZGRVIgKmJ1ZmZl
ciA6IG5hbWVzKSB7CiAgICAgY29uc3QgdWludDhfdCAqaW5wID0gQ1JZUFRPX0JVRkZFUl9kYXRh
KGJ1ZmZlcik7CkBAIC0yNTMsMTEgKzI1MywxMSBAQCBzdGF0aWMgaW50IHNzbF9jcnlwdG9feDUw
OV9jaGVja19jbGllbnRfQ0FfbGlzdCgKICAgICAgICAgZDJpX1g1MDlfTkFNRShudWxscHRyLCAm
aW5wLCBDUllQVE9fQlVGRkVSX2xlbihidWZmZXIpKSk7CiAgICAgaWYgKG5hbWUgPT0gbnVsbHB0
ciB8fAogICAgICAgICBpbnAgIT0gQ1JZUFRPX0JVRkZFUl9kYXRhKGJ1ZmZlcikgKyBDUllQVE9f
QlVGRkVSX2xlbihidWZmZXIpKSB7Ci0gICAgICByZXR1cm4gMDsKKyAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAgIH0KIAotICByZXR1cm4gMTsKKyAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRp
YyB2b2lkIHNzbF9jcnlwdG9feDUwOV9jZXJ0X2NsZWFyKENFUlQgKmNlcnQpIHsKQEAgLTI2NSw3
ICsyNjUsNyBAQCBzdGF0aWMgdm9pZCBzc2xfY3J5cHRvX3g1MDlfY2VydF9jbGVhcihDRVJUICpj
ZXJ0KSB7CiAgIHNzbF9jcnlwdG9feDUwOV9jZXJ0X2ZsdXNoX2NhY2hlZF9jaGFpbihjZXJ0KTsK
IAogICBYNTA5X2ZyZWUoY2VydC0+eDUwOV9zdGFzaCk7Ci0gIGNlcnQtPng1MDlfc3Rhc2ggPSBO
VUxMOworICBjZXJ0LT54NTA5X3N0YXNoID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIHZvaWQgc3Ns
X2NyeXB0b194NTA5X2NlcnRfZnJlZShDRVJUICpjZXJ0KSB7CkBAIC0yNzQsMTE4ICsyNzQsMTI5
IEBAIHN0YXRpYyB2b2lkIHNzbF9jcnlwdG9feDUwOV9jZXJ0X2ZyZWUoQ0VSVCAqY2VydCkgewog
fQogCiBzdGF0aWMgdm9pZCBzc2xfY3J5cHRvX3g1MDlfY2VydF9kdXAoQ0VSVCAqbmV3X2NlcnQs
IGNvbnN0IENFUlQgKmNlcnQpIHsKLSAgaWYgKGNlcnQtPnZlcmlmeV9zdG9yZSAhPSBOVUxMKSB7
CisgIGlmIChjZXJ0LT52ZXJpZnlfc3RvcmUgIT0gbnVsbHB0cikgewogICAgIFg1MDlfU1RPUkVf
dXBfcmVmKGNlcnQtPnZlcmlmeV9zdG9yZSk7CiAgICAgbmV3X2NlcnQtPnZlcmlmeV9zdG9yZSA9
IGNlcnQtPnZlcmlmeV9zdG9yZTsKICAgfQogfQogCi1zdGF0aWMgaW50IHNzbF9jcnlwdG9feDUw
OV9zZXNzaW9uX2NhY2hlX29iamVjdHMoU1NMX1NFU1NJT04gKnNlc3MpIHsKLSAgYnNzbDo6VW5p
cXVlUHRyPFNUQUNLX09GKFg1MDkpPiBjaGFpbjsKK3N0YXRpYyBib29sIHNzbF9jcnlwdG9feDUw
OV9zZXNzaW9uX2NhY2hlX29iamVjdHMoU1NMX1NFU1NJT04gKnNlc3MpIHsKKyAgYnNzbDo6VW5p
cXVlUHRyPFNUQUNLX09GKFg1MDkpPiBjaGFpbiwgY2hhaW5fd2l0aG91dF9sZWFmOwogICBpZiAo
c2tfQ1JZUFRPX0JVRkZFUl9udW0oc2Vzcy0+Y2VydHMuZ2V0KCkpID4gMCkgewogICAgIGNoYWlu
LnJlc2V0KHNrX1g1MDlfbmV3X251bGwoKSk7CiAgICAgaWYgKCFjaGFpbikgewogICAgICAgT1BF
TlNTTF9QVVRfRVJST1IoU1NMLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7Ci0gICAgICByZXR1cm4g
MDsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKHNlc3MtPmlzX3NlcnZlcikg
eworICAgICAgLy8gY2hhaW5fd2l0aG91dF9sZWFmIGlzIG9ubHkgbmVlZGVkIGZvciBzZXJ2ZXIg
c2Vzc2lvbnMuIFNlZQorICAgICAgLy8gfFNTTF9nZXRfcGVlcl9jZXJ0X2NoYWlufC4KKyAgICAg
IGNoYWluX3dpdGhvdXRfbGVhZi5yZXNldChza19YNTA5X25ld19udWxsKCkpOworICAgICAgaWYg
KCFjaGFpbl93aXRob3V0X2xlYWYpIHsKKyAgICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBF
UlJfUl9NQUxMT0NfRkFJTFVSRSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KICAg
ICB9CiAgIH0KIAotICBYNTA5ICpsZWFmID0gbnVsbHB0cjsKKyAgYnNzbDo6VW5pcXVlUHRyPFg1
MDk+IGxlYWY7CiAgIGZvciAoQ1JZUFRPX0JVRkZFUiAqY2VydCA6IHNlc3MtPmNlcnRzLmdldCgp
KSB7CiAgICAgVW5pcXVlUHRyPFg1MDk+IHg1MDkoWDUwOV9wYXJzZV9mcm9tX2J1ZmZlcihjZXJ0
KSk7CiAgICAgaWYgKCF4NTA5KSB7CiAgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9S
X0RFQ09ERV9FUlJPUik7Ci0gICAgICByZXR1cm4gMDsKKyAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgaWYgKGxlYWYgPT0gbnVsbHB0cikgewotICAgICAgbGVhZiA9IHg1MDkuZ2V0KCk7
CisgICAgICBsZWFmID0gVXBSZWYoeDUwOSk7CisgICAgfSBlbHNlIGlmIChjaGFpbl93aXRob3V0
X2xlYWYgJiYKKyAgICAgICAgICAgICAgICFQdXNoVG9TdGFjayhjaGFpbl93aXRob3V0X2xlYWYu
Z2V0KCksIFVwUmVmKHg1MDkpKSkgeworICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBFUlJf
Ul9NQUxMT0NfRkFJTFVSRSk7CisgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICgh
UHVzaFRvU3RhY2soY2hhaW4uZ2V0KCksIHN0ZDo6bW92ZSh4NTA5KSkpIHsKICAgICAgIE9QRU5T
U0xfUFVUX0VSUk9SKFNTTCwgRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOwotICAgICAgcmV0dXJuIDA7
CisgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICB9CiAKICAgc2tfWDUwOV9wb3BfZnJlZShz
ZXNzLT54NTA5X2NoYWluLCBYNTA5X2ZyZWUpOwogICBzZXNzLT54NTA5X2NoYWluID0gY2hhaW4u
cmVsZWFzZSgpOworCiAgIHNrX1g1MDlfcG9wX2ZyZWUoc2Vzcy0+eDUwOV9jaGFpbl93aXRob3V0
X2xlYWYsIFg1MDlfZnJlZSk7Ci0gIHNlc3MtPng1MDlfY2hhaW5fd2l0aG91dF9sZWFmID0gTlVM
TDsKKyAgc2Vzcy0+eDUwOV9jaGFpbl93aXRob3V0X2xlYWYgPSBjaGFpbl93aXRob3V0X2xlYWYu
cmVsZWFzZSgpOwogCiAgIFg1MDlfZnJlZShzZXNzLT54NTA5X3BlZXIpOwotICBpZiAobGVhZiAh
PSBOVUxMKSB7Ci0gICAgWDUwOV91cF9yZWYobGVhZik7Ci0gIH0KLSAgc2Vzcy0+eDUwOV9wZWVy
ID0gbGVhZjsKLSAgcmV0dXJuIDE7CisgIHNlc3MtPng1MDlfcGVlciA9IGxlYWYucmVsZWFzZSgp
OworICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGludCBzc2xfY3J5cHRvX3g1MDlfc2Vzc2lv
bl9kdXAoU1NMX1NFU1NJT04gKm5ld19zZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgU1NMX1NFU1NJT04gKnNlc3Npb24pIHsKLSAgaWYgKHNlc3Np
b24tPng1MDlfcGVlciAhPSBOVUxMKSB7Ci0gICAgWDUwOV91cF9yZWYoc2Vzc2lvbi0+eDUwOV9w
ZWVyKTsKLSAgICBuZXdfc2Vzc2lvbi0+eDUwOV9wZWVyID0gc2Vzc2lvbi0+eDUwOV9wZWVyOwot
ICB9Ci0gIGlmIChzZXNzaW9uLT54NTA5X2NoYWluICE9IE5VTEwpIHsKK3N0YXRpYyBib29sIHNz
bF9jcnlwdG9feDUwOV9zZXNzaW9uX2R1cChTU0xfU0VTU0lPTiAqbmV3X3Nlc3Npb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU1NMX1NFU1NJT04gKnNl
c3Npb24pIHsKKyAgbmV3X3Nlc3Npb24tPng1MDlfcGVlciA9IFVwUmVmKHNlc3Npb24tPng1MDlf
cGVlcikucmVsZWFzZSgpOworICBpZiAoc2Vzc2lvbi0+eDUwOV9jaGFpbiAhPSBudWxscHRyKSB7
CiAgICAgbmV3X3Nlc3Npb24tPng1MDlfY2hhaW4gPSBYNTA5X2NoYWluX3VwX3JlZihzZXNzaW9u
LT54NTA5X2NoYWluKTsKLSAgICBpZiAobmV3X3Nlc3Npb24tPng1MDlfY2hhaW4gPT0gTlVMTCkg
ewotICAgICAgcmV0dXJuIDA7CisgICAgaWYgKG5ld19zZXNzaW9uLT54NTA5X2NoYWluID09IG51
bGxwdHIpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgaWYgKHNlc3Npb24t
Png1MDlfY2hhaW5fd2l0aG91dF9sZWFmICE9IG51bGxwdHIpIHsKKyAgICBuZXdfc2Vzc2lvbi0+
eDUwOV9jaGFpbl93aXRob3V0X2xlYWYgPQorICAgICAgICBYNTA5X2NoYWluX3VwX3JlZihzZXNz
aW9uLT54NTA5X2NoYWluX3dpdGhvdXRfbGVhZik7CisgICAgaWYgKG5ld19zZXNzaW9uLT54NTA5
X2NoYWluX3dpdGhvdXRfbGVhZiA9PSBudWxscHRyKSB7CisgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICB9CiAKLSAgcmV0dXJuIDE7CisgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9p
ZCBzc2xfY3J5cHRvX3g1MDlfc2Vzc2lvbl9jbGVhcihTU0xfU0VTU0lPTiAqc2Vzc2lvbikgewog
ICBYNTA5X2ZyZWUoc2Vzc2lvbi0+eDUwOV9wZWVyKTsKLSAgc2Vzc2lvbi0+eDUwOV9wZWVyID0g
TlVMTDsKKyAgc2Vzc2lvbi0+eDUwOV9wZWVyID0gbnVsbHB0cjsKICAgc2tfWDUwOV9wb3BfZnJl
ZShzZXNzaW9uLT54NTA5X2NoYWluLCBYNTA5X2ZyZWUpOwotICBzZXNzaW9uLT54NTA5X2NoYWlu
ID0gTlVMTDsKKyAgc2Vzc2lvbi0+eDUwOV9jaGFpbiA9IG51bGxwdHI7CiAgIHNrX1g1MDlfcG9w
X2ZyZWUoc2Vzc2lvbi0+eDUwOV9jaGFpbl93aXRob3V0X2xlYWYsIFg1MDlfZnJlZSk7Ci0gIHNl
c3Npb24tPng1MDlfY2hhaW5fd2l0aG91dF9sZWFmID0gTlVMTDsKKyAgc2Vzc2lvbi0+eDUwOV9j
aGFpbl93aXRob3V0X2xlYWYgPSBudWxscHRyOwogfQogCi1zdGF0aWMgaW50IHNzbF9jcnlwdG9f
eDUwOV9zZXNzaW9uX3ZlcmlmeV9jZXJ0X2NoYWluKFNTTF9TRVNTSU9OICpzZXNzaW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfSEFO
RFNIQUtFICpocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludDhfdCAqb3V0X2FsZXJ0KSB7CitzdGF0aWMgYm9vbCBzc2xfY3J5cHRvX3g1
MDlfc2Vzc2lvbl92ZXJpZnlfY2VydF9jaGFpbihTU0xfU0VTU0lPTiAqc2Vzc2lvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTTF9IQU5E
U0hBS0UgKmhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludDhfdCAqb3V0X2FsZXJ0KSB7CiAgICpvdXRfYWxlcnQgPSBTU0xfQURfSU5U
RVJOQUxfRVJST1I7CiAgIFNUQUNLX09GKFg1MDkpICpjb25zdCBjZXJ0X2NoYWluID0gc2Vzc2lv
bi0+eDUwOV9jaGFpbjsKLSAgaWYgKGNlcnRfY2hhaW4gPT0gTlVMTCB8fCBza19YNTA5X251bShj
ZXJ0X2NoYWluKSA9PSAwKSB7Ci0gICAgcmV0dXJuIDA7CisgIGlmIChjZXJ0X2NoYWluID09IG51
bGxwdHIgfHwgc2tfWDUwOV9udW0oY2VydF9jaGFpbikgPT0gMCkgeworICAgIHJldHVybiBmYWxz
ZTsKICAgfQogCiAgIFNTTF9DVFggKnNzbF9jdHggPSBocy0+c3NsLT5jdHguZ2V0KCk7CiAgIFg1
MDlfU1RPUkUgKnZlcmlmeV9zdG9yZSA9IHNzbF9jdHgtPmNlcnRfc3RvcmU7Ci0gIGlmIChocy0+
Y29uZmlnLT5jZXJ0LT52ZXJpZnlfc3RvcmUgIT0gTlVMTCkgeworICBpZiAoaHMtPmNvbmZpZy0+
Y2VydC0+dmVyaWZ5X3N0b3JlICE9IG51bGxwdHIpIHsKICAgICB2ZXJpZnlfc3RvcmUgPSBocy0+
Y29uZmlnLT5jZXJ0LT52ZXJpZnlfc3RvcmU7CiAgIH0KIAogICBYNTA5ICpsZWFmID0gc2tfWDUw
OV92YWx1ZShjZXJ0X2NoYWluLCAwKTsKICAgU2NvcGVkWDUwOV9TVE9SRV9DVFggY3R4OwotICBp
ZiAoIVg1MDlfU1RPUkVfQ1RYX2luaXQoY3R4LmdldCgpLCB2ZXJpZnlfc3RvcmUsIGxlYWYsIGNl
cnRfY2hhaW4pKSB7CisgIGlmICghWDUwOV9TVE9SRV9DVFhfaW5pdChjdHguZ2V0KCksIHZlcmlm
eV9zdG9yZSwgbGVhZiwgY2VydF9jaGFpbikgfHwKKyAgICAgICFYNTA5X1NUT1JFX0NUWF9zZXRf
ZXhfZGF0YSgKKyAgICAgICAgICBjdHguZ2V0KCksIFNTTF9nZXRfZXhfZGF0YV9YNTA5X1NUT1JF
X0NUWF9pZHgoKSwgaHMtPnNzbCkgfHwKKyAgICAgIC8vIFdlIG5lZWQgdG8gaW5oZXJpdCB0aGUg
dmVyaWZ5IHBhcmFtZXRlcnMuIFRoZXNlIGNhbiBiZSBkZXRlcm1pbmVkIGJ5CisgICAgICAvLyB0
aGUgY29udGV4dDogaWYgaXRzIGEgc2VydmVyIGl0IHdpbGwgdmVyaWZ5IFNTTCBjbGllbnQgY2Vy
dGlmaWNhdGVzIG9yCisgICAgICAvLyB2aWNlIHZlcnNhLgorICAgICAgIVg1MDlfU1RPUkVfQ1RY
X3NldF9kZWZhdWx0KAorICAgICAgICAgIGN0eC5nZXQoKSwgaHMtPnNzbC0+c2VydmVyID8gInNz
bF9jbGllbnQiIDogInNzbF9zZXJ2ZXIiKSB8fAorICAgICAgLy8gQW55dGhpbmcgbm9uLWRlZmF1
bHQgaW4gInBhcmFtIiBzaG91bGQgb3ZlcndyaXRlIGFueXRoaW5nIGluIHRoZSBjdHguCisgICAg
ICAhWDUwOV9WRVJJRllfUEFSQU1fc2V0MShYNTA5X1NUT1JFX0NUWF9nZXQwX3BhcmFtKGN0eC5n
ZXQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+Y29uZmlnLT5wYXJhbSkp
IHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVSUl9SX1g1MDlfTElCKTsKLSAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gZmFsc2U7CiAgIH0KLSAgaWYgKCFYNTA5X1NUT1JFX0NUWF9zZXRf
ZXhfZGF0YSgKLSAgICAgICAgICBjdHguZ2V0KCksIFNTTF9nZXRfZXhfZGF0YV9YNTA5X1NUT1JF
X0NUWF9pZHgoKSwgaHMtPnNzbCkpIHsKLSAgICByZXR1cm4gMDsKLSAgfQotCi0gIC8vIFdlIG5l
ZWQgdG8gaW5oZXJpdCB0aGUgdmVyaWZ5IHBhcmFtZXRlcnMuIFRoZXNlIGNhbiBiZSBkZXRlcm1p
bmVkIGJ5IHRoZQotICAvLyBjb250ZXh0OiBpZiBpdHMgYSBzZXJ2ZXIgaXQgd2lsbCB2ZXJpZnkg
U1NMIGNsaWVudCBjZXJ0aWZpY2F0ZXMgb3IgdmljZQotICAvLyB2ZXJzYS4KLSAgWDUwOV9TVE9S
RV9DVFhfc2V0X2RlZmF1bHQoY3R4LmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBocy0+c3NsLT5zZXJ2ZXIgPyAic3NsX2NsaWVudCIgOiAic3NsX3NlcnZlciIpOwotCi0gIC8v
IEFueXRoaW5nIG5vbi1kZWZhdWx0IGluICJwYXJhbSIgc2hvdWxkIG92ZXJ3cml0ZSBhbnl0aGlu
ZyBpbiB0aGUgY3R4LgotICBYNTA5X1ZFUklGWV9QQVJBTV9zZXQxKFg1MDlfU1RPUkVfQ1RYX2dl
dDBfcGFyYW0oY3R4LmdldCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBocy0+Y29uZmln
LT5wYXJhbSk7CiAKICAgaWYgKGhzLT5jb25maWctPnZlcmlmeV9jYWxsYmFjaykgewogICAgIFg1
MDlfU1RPUkVfQ1RYX3NldF92ZXJpZnlfY2IoY3R4LmdldCgpLCBocy0+Y29uZmlnLT52ZXJpZnlf
Y2FsbGJhY2spOwogICB9CiAKICAgaW50IHZlcmlmeV9yZXQ7Ci0gIGlmIChzc2xfY3R4LT5hcHBf
dmVyaWZ5X2NhbGxiYWNrICE9IE5VTEwpIHsKKyAgaWYgKHNzbF9jdHgtPmFwcF92ZXJpZnlfY2Fs
bGJhY2sgIT0gbnVsbHB0cikgewogICAgIHZlcmlmeV9yZXQgPQogICAgICAgICBzc2xfY3R4LT5h
cHBfdmVyaWZ5X2NhbGxiYWNrKGN0eC5nZXQoKSwgc3NsX2N0eC0+YXBwX3ZlcmlmeV9hcmcpOwog
ICB9IGVsc2UgewpAQCAtMzk3LDU5ICs0MDgsNTkgQEAgc3RhdGljIGludCBzc2xfY3J5cHRvX3g1
MDlfc2Vzc2lvbl92ZXJpZnlfY2VydF9jaGFpbihTU0xfU0VTU0lPTiAqc2Vzc2lvbiwKICAgLy8g
SWYgfFNTTF9WRVJJRllfTk9ORXwsIHRoZSBlcnJvciBpcyBub24tZmF0YWwsIGJ1dCB3ZSBrZWVw
IHRoZSByZXN1bHQuCiAgIGlmICh2ZXJpZnlfcmV0IDw9IDAgJiYgaHMtPmNvbmZpZy0+dmVyaWZ5
X21vZGUgIT0gU1NMX1ZFUklGWV9OT05FKSB7CiAgICAgKm91dF9hbGVydCA9IFNTTF9hbGVydF9m
cm9tX3ZlcmlmeV9yZXN1bHQoY3R4LT5lcnJvcik7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IGZhbHNlOwogICB9CiAKICAgRVJSX2NsZWFyX2Vycm9yKCk7Ci0gIHJldHVybiAxOworICByZXR1
cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgc3NsX2NyeXB0b194NTA5X2hzX2ZsdXNoX2NhY2hl
ZF9jYV9uYW1lcyhTU0xfSEFORFNIQUtFICpocykgewogICBza19YNTA5X05BTUVfcG9wX2ZyZWUo
aHMtPmNhY2hlZF94NTA5X2NhX25hbWVzLCBYNTA5X05BTUVfZnJlZSk7Ci0gIGhzLT5jYWNoZWRf
eDUwOV9jYV9uYW1lcyA9IE5VTEw7CisgIGhzLT5jYWNoZWRfeDUwOV9jYV9uYW1lcyA9IG51bGxw
dHI7CiB9CiAKLXN0YXRpYyBpbnQgc3NsX2NyeXB0b194NTA5X3NzbF9uZXcoU1NMX0hBTkRTSEFL
RSAqaHMpIHsKK3N0YXRpYyBib29sIHNzbF9jcnlwdG9feDUwOV9zc2xfbmV3KFNTTF9IQU5EU0hB
S0UgKmhzKSB7CiAgIGhzLT5jb25maWctPnBhcmFtID0gWDUwOV9WRVJJRllfUEFSQU1fbmV3KCk7
Ci0gIGlmIChocy0+Y29uZmlnLT5wYXJhbSA9PSBOVUxMKSB7Ci0gICAgcmV0dXJuIDA7CisgIGlm
IChocy0+Y29uZmlnLT5wYXJhbSA9PSBudWxscHRyKSB7CisgICAgcmV0dXJuIGZhbHNlOwogICB9
CiAgIFg1MDlfVkVSSUZZX1BBUkFNX2luaGVyaXQoaHMtPmNvbmZpZy0+cGFyYW0sIGhzLT5zc2wt
PmN0eC0+cGFyYW0pOwotICByZXR1cm4gMTsKKyAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyB2
b2lkIHNzbF9jcnlwdG9feDUwOV9zc2xfZmx1c2hfY2FjaGVkX2NsaWVudF9DQShTU0xfQ09ORklH
ICpjZmcpIHsKICAgc2tfWDUwOV9OQU1FX3BvcF9mcmVlKGNmZy0+Y2FjaGVkX3g1MDlfY2xpZW50
X0NBLCBYNTA5X05BTUVfZnJlZSk7Ci0gIGNmZy0+Y2FjaGVkX3g1MDlfY2xpZW50X0NBID0gTlVM
TDsKKyAgY2ZnLT5jYWNoZWRfeDUwOV9jbGllbnRfQ0EgPSBudWxscHRyOwogfQogCiBzdGF0aWMg
dm9pZCBzc2xfY3J5cHRvX3g1MDlfc3NsX2NvbmZpZ19mcmVlKFNTTF9DT05GSUcgKmNmZykgewog
ICBza19YNTA5X05BTUVfcG9wX2ZyZWUoY2ZnLT5jYWNoZWRfeDUwOV9jbGllbnRfQ0EsIFg1MDlf
TkFNRV9mcmVlKTsKLSAgY2ZnLT5jYWNoZWRfeDUwOV9jbGllbnRfQ0EgPSBOVUxMOworICBjZmct
PmNhY2hlZF94NTA5X2NsaWVudF9DQSA9IG51bGxwdHI7CiAgIFg1MDlfVkVSSUZZX1BBUkFNX2Zy
ZWUoY2ZnLT5wYXJhbSk7CiB9CiAKLXN0YXRpYyBpbnQgc3NsX2NyeXB0b194NTA5X3NzbF9hdXRv
X2NoYWluX2lmX25lZWRlZChTU0xfSEFORFNIQUtFICpocykgeworc3RhdGljIGJvb2wgc3NsX2Ny
eXB0b194NTA5X3NzbF9hdXRvX2NoYWluX2lmX25lZWRlZChTU0xfSEFORFNIQUtFICpocykgewog
ICAvLyBPbmx5IGJ1aWxkIGEgY2hhaW4gaWYgdGhlcmUgYXJlIG5vIGludGVybWVkaWF0ZXMgY29u
ZmlndXJlZCBhbmQgdGhlIGZlYXR1cmUKICAgLy8gaXNuJ3QgZGlzYWJsZWQuCiAgIGlmICgoaHMt
PnNzbC0+bW9kZSAmIFNTTF9NT0RFX05PX0FVVE9fQ0hBSU4pIHx8Ci0gICAgICAhc3NsX2hhc19j
ZXJ0aWZpY2F0ZShocy0+Y29uZmlnKSB8fCBocy0+Y29uZmlnLT5jZXJ0LT5jaGFpbiA9PSBOVUxM
IHx8CisgICAgICAhc3NsX2hhc19jZXJ0aWZpY2F0ZShocykgfHwgaHMtPmNvbmZpZy0+Y2VydC0+
Y2hhaW4gPT0gTlVMTCB8fAogICAgICAgc2tfQ1JZUFRPX0JVRkZFUl9udW0oaHMtPmNvbmZpZy0+
Y2VydC0+Y2hhaW4uZ2V0KCkpID4gMSkgewotICAgIHJldHVybiAxOworICAgIHJldHVybiB0cnVl
OwogICB9CiAKICAgVW5pcXVlUHRyPFg1MDk+IGxlYWYoWDUwOV9wYXJzZV9mcm9tX2J1ZmZlcigK
ICAgICAgIHNrX0NSWVBUT19CVUZGRVJfdmFsdWUoaHMtPmNvbmZpZy0+Y2VydC0+Y2hhaW4uZ2V0
KCksIDApKSk7CiAgIGlmICghbGVhZikgewogICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgRVJS
X1JfWDUwOV9MSUIpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBmYWxzZTsKICAgfQogCiAg
IFNjb3BlZFg1MDlfU1RPUkVfQ1RYIGN0eDsKICAgaWYgKCFYNTA5X1NUT1JFX0NUWF9pbml0KGN0
eC5nZXQoKSwgaHMtPnNzbC0+Y3R4LT5jZXJ0X3N0b3JlLCBsZWFmLmdldCgpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCkpIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVS
Ul9SX1g1MDlfTElCKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAog
ICAvLyBBdHRlbXB0IHRvIGJ1aWxkIGEgY2hhaW4sIGlnbm9yaW5nIHRoZSByZXN1bHQuCkBAIC00
NjAsMjMgKzQ3MSwyMyBAQCBzdGF0aWMgaW50IHNzbF9jcnlwdG9feDUwOV9zc2xfYXV0b19jaGFp
bl9pZl9uZWVkZWQoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgWDUwOV9mcmVlKHNrX1g1MDlfc2hp
ZnQoY3R4LT5jaGFpbikpOwogCiAgIGlmICghc3NsX2NlcnRfc2V0X2NoYWluKGhzLT5jb25maWct
PmNlcnQuZ2V0KCksIGN0eC0+Y2hhaW4pKSB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZh
bHNlOwogICB9CiAKICAgc3NsX2NyeXB0b194NTA5X2NlcnRfZmx1c2hfY2FjaGVkX2NoYWluKGhz
LT5jb25maWctPmNlcnQuZ2V0KCkpOwogCi0gIHJldHVybiAxOworICByZXR1cm4gdHJ1ZTsKIH0K
IAogc3RhdGljIHZvaWQgc3NsX2NyeXB0b194NTA5X3NzbF9jdHhfZmx1c2hfY2FjaGVkX2NsaWVu
dF9DQShTU0xfQ1RYICpjdHgpIHsKICAgc2tfWDUwOV9OQU1FX3BvcF9mcmVlKGN0eC0+Y2FjaGVk
X3g1MDlfY2xpZW50X0NBLCBYNTA5X05BTUVfZnJlZSk7Ci0gIGN0eC0+Y2FjaGVkX3g1MDlfY2xp
ZW50X0NBID0gTlVMTDsKKyAgY3R4LT5jYWNoZWRfeDUwOV9jbGllbnRfQ0EgPSBudWxscHRyOwog
fQogCi1zdGF0aWMgaW50IHNzbF9jcnlwdG9feDUwOV9zc2xfY3R4X25ldyhTU0xfQ1RYICpjdHgp
IHsKK3N0YXRpYyBib29sIHNzbF9jcnlwdG9feDUwOV9zc2xfY3R4X25ldyhTU0xfQ1RYICpjdHgp
IHsKICAgY3R4LT5jZXJ0X3N0b3JlID0gWDUwOV9TVE9SRV9uZXcoKTsKICAgY3R4LT5wYXJhbSA9
IFg1MDlfVkVSSUZZX1BBUkFNX25ldygpOwotICByZXR1cm4gKGN0eC0+Y2VydF9zdG9yZSAhPSBO
VUxMICYmIGN0eC0+cGFyYW0gIT0gTlVMTCk7CisgIHJldHVybiAoY3R4LT5jZXJ0X3N0b3JlICE9
IG51bGxwdHIgJiYgY3R4LT5wYXJhbSAhPSBudWxscHRyKTsKIH0KIAogc3RhdGljIHZvaWQgc3Ns
X2NyeXB0b194NTA5X3NzbF9jdHhfZnJlZShTU0xfQ1RYICpjdHgpIHsKQEAgLTUyNSwzOCArNTM2
LDE3IEBAIFg1MDkgKlNTTF9nZXRfcGVlcl9jZXJ0aWZpY2F0ZShjb25zdCBTU0wgKnNzbCkgewog
CiBTVEFDS19PRihYNTA5KSAqU1NMX2dldF9wZWVyX2NlcnRfY2hhaW4oY29uc3QgU1NMICpzc2wp
IHsKICAgY2hlY2tfc3NsX3g1MDlfbWV0aG9kKHNzbCk7Ci0gIGlmIChzc2wgPT0gTlVMTCkgewot
ICAgIHJldHVybiBOVUxMOworICBpZiAoc3NsID09IG51bGxwdHIpIHsKKyAgICByZXR1cm4gbnVs
bHB0cjsKICAgfQogICBTU0xfU0VTU0lPTiAqc2Vzc2lvbiA9IFNTTF9nZXRfc2Vzc2lvbihzc2wp
OwotICBpZiAoc2Vzc2lvbiA9PSBOVUxMIHx8Ci0gICAgICBzZXNzaW9uLT54NTA5X2NoYWluID09
IE5VTEwpIHsKLSAgICByZXR1cm4gTlVMTDsKLSAgfQotCi0gIGlmICghc3NsLT5zZXJ2ZXIpIHsK
LSAgICByZXR1cm4gc2Vzc2lvbi0+eDUwOV9jaGFpbjsKKyAgaWYgKHNlc3Npb24gPT0gbnVsbHB0
cikgeworICAgIHJldHVybiBudWxscHRyOwogICB9CiAKICAgLy8gT3BlblNTTCBoaXN0b3JpY2Fs
bHkgZGlkbid0IGluY2x1ZGUgdGhlIGxlYWYgY2VydGlmaWNhdGUgaW4gdGhlIHJldHVybmVkCiAg
IC8vIGNlcnRpZmljYXRlIGNoYWluLCBidXQgb25seSBmb3Igc2VydmVycy4KLSAgaWYgKHNlc3Np
b24tPng1MDlfY2hhaW5fd2l0aG91dF9sZWFmID09IE5VTEwpIHsKLSAgICBzZXNzaW9uLT54NTA5
X2NoYWluX3dpdGhvdXRfbGVhZiA9IHNrX1g1MDlfbmV3X251bGwoKTsKLSAgICBpZiAoc2Vzc2lv
bi0+eDUwOV9jaGFpbl93aXRob3V0X2xlYWYgPT0gTlVMTCkgewotICAgICAgcmV0dXJuIE5VTEw7
Ci0gICAgfQotCi0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBza19YNTA5X251bShzZXNzaW9u
LT54NTA5X2NoYWluKTsgaSsrKSB7Ci0gICAgICBYNTA5ICpjZXJ0ID0gc2tfWDUwOV92YWx1ZShz
ZXNzaW9uLT54NTA5X2NoYWluLCBpKTsKLSAgICAgIGlmICghUHVzaFRvU3RhY2soc2Vzc2lvbi0+
eDUwOV9jaGFpbl93aXRob3V0X2xlYWYsIFVwUmVmKGNlcnQpKSkgewotICAgICAgICBza19YNTA5
X3BvcF9mcmVlKHNlc3Npb24tPng1MDlfY2hhaW5fd2l0aG91dF9sZWFmLCBYNTA5X2ZyZWUpOwot
ICAgICAgICBzZXNzaW9uLT54NTA5X2NoYWluX3dpdGhvdXRfbGVhZiA9IE5VTEw7Ci0gICAgICAg
IHJldHVybiBOVUxMOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIHJldHVybiBzZXNzaW9uLT54
NTA5X2NoYWluX3dpdGhvdXRfbGVhZjsKKyAgcmV0dXJuIHNzbC0+c2VydmVyID8gc2Vzc2lvbi0+
eDUwOV9jaGFpbl93aXRob3V0X2xlYWYgOiBzZXNzaW9uLT54NTA5X2NoYWluOwogfQogCiBTVEFD
S19PRihYNTA5KSAqU1NMX2dldF9wZWVyX2Z1bGxfY2VydF9jaGFpbihjb25zdCBTU0wgKnNzbCkg
ewpAQCAtMTIyOSw3ICsxMjE5LDggQEAgc3RhdGljIGludCBkb19jbGllbnRfY2VydF9jYihTU0wg
KnNzbCwgdm9pZCAqYXJnKSB7CiAgICAgYXNzZXJ0KHNzbC0+Y29uZmlnKTsKICAgICByZXR1cm4g
LTE7CiAgIH0KLSAgaWYgKHNzbF9oYXNfY2VydGlmaWNhdGUoc3NsLT5jb25maWcuZ2V0KCkpIHx8
CisKKyAgaWYgKHNzbF9oYXNfY2VydGlmaWNhdGUoc3NsLT5zMy0+aHMuZ2V0KCkpIHx8CiAgICAg
ICBzc2wtPmN0eC0+Y2xpZW50X2NlcnRfY2IgPT0gTlVMTCkgewogICAgIHJldHVybiAxOwogICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvc3NsL3QxX2VuYy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdDFfZW5jLmNjCmluZGV4
IGM2YjI4NDRkYmJkMzdmNGIyYTQ1ZWY2MDlmNTUwNDdmOTFmYmFlOTYuLjRjMmZmZmIzMDcxYWFh
ODRmYjFjNmQ5NDdmZjRiMmY2N2NmMWM1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdDFfZW5jLmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9zc2wvdDFfZW5jLmNjCkBAIC0zNTksMjcgKzM1OSwzIEBAIGludCBTU0xfZXhw
b3J0X2tleWluZ19tYXRlcmlhbChTU0wgKnNzbCwgdWludDhfdCAqb3V0LCBzaXplX3Qgb3V0X2xl
biwKICAgICAgIE1ha2VDb25zdFNwYW4oc2Vzc2lvbi0+bWFzdGVyX2tleSwgc2Vzc2lvbi0+bWFz
dGVyX2tleV9sZW5ndGgpLAogICAgICAgTWFrZUNvbnN0U3BhbihsYWJlbCwgbGFiZWxfbGVuKSwg
c2VlZCwge30pOwogfQotCi1pbnQgU1NMX2V4cG9ydF9lYXJseV9rZXlpbmdfbWF0ZXJpYWwoCi0g
ICAgU1NMICpzc2wsIHVpbnQ4X3QgKm91dCwgc2l6ZV90IG91dF9sZW4sIGNvbnN0IGNoYXIgKmxh
YmVsLCBzaXplX3QgbGFiZWxfbGVuLAotICAgIGNvbnN0IHVpbnQ4X3QgKmNvbnRleHQsIHNpemVf
dCBjb250ZXh0X2xlbikgewotICBpZiAoIVNTTF9pbl9lYXJseV9kYXRhKHNzbCkgJiYKLSAgICAg
ICghc3NsLT5zMy0+aGF2ZV92ZXJzaW9uIHx8Ci0gICAgICAgc3NsX3Byb3RvY29sX3ZlcnNpb24o
c3NsKSA8IFRMUzFfM19WRVJTSU9OKSkgewotICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NM
X1JfV1JPTkdfU1NMX1ZFUlNJT04pOwotICAgIHJldHVybiAwOwotICB9Ci0KLSAgLy8gVGhlIGVh
cmx5IGV4cG9ydGVyIG9ubHkgZXhpc3RzIGlmIHdlIGFjY2VwdGVkIGVhcmx5IGRhdGEgb3Igb2Zm
ZXJlZCBpdCBhcwotICAvLyBhIGNsaWVudC4KLSAgaWYgKCFTU0xfaW5fZWFybHlfZGF0YShzc2wp
ICYmICFTU0xfZWFybHlfZGF0YV9hY2NlcHRlZChzc2wpKSB7Ci0gICAgT1BFTlNTTF9QVVRfRVJS
T1IoU1NMLCBTU0xfUl9FQVJMWV9EQVRBX05PVF9JTl9VU0UpOwotICAgIHJldHVybiAwOwotICB9
Ci0KLSAgcmV0dXJuIHRsczEzX2V4cG9ydF9rZXlpbmdfbWF0ZXJpYWwoCi0gICAgICBzc2wsIE1h
a2VTcGFuKG91dCwgb3V0X2xlbiksCi0gICAgICBNYWtlQ29uc3RTcGFuKHNzbC0+czMtPmVhcmx5
X2V4cG9ydGVyX3NlY3JldCwKLSAgICAgICAgICAgICAgICAgICAgc3NsLT5zMy0+ZWFybHlfZXhw
b3J0ZXJfc2VjcmV0X2xlbiksCi0gICAgICBNYWtlQ29uc3RTcGFuKGxhYmVsLCBsYWJlbF9sZW4p
LCBNYWtlQ29uc3RTcGFuKGNvbnRleHQsIGNvbnRleHRfbGVuKSk7Ci19CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvc3NsL3QxX2xpYi5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdDFfbGliLmNjCmluZGV4IDY3OGU0YTNiNzg3M2Ux
YTFlOGQ4Zjk4ODUxZTI0NGNjNTRkZGE5NjkuLjUyY2VhNmNmYWEwY2MzMDhjN2JkYmE0MTQ4ZTc3
ZmFhNTJlMWZmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdDFfbGliLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wv
dDFfbGliLmNjCkBAIC0xOTksMTAgKzE5OSwxNCBAQCBzdGF0aWMgYm9vbCB0bHMxX2NoZWNrX2R1
cGxpY2F0ZV9leHRlbnNpb25zKGNvbnN0IENCUyAqY2JzKSB7CiAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNzbF9jbGllbnRfaGVsbG9faW5pdChTU0wgKnNzbCwgU1NMX0NMSUVOVF9IRUxMTyAq
b3V0LAorc3RhdGljIGJvb2wgaXNfcG9zdF9xdWFudHVtX2dyb3VwKHVpbnQxNl90IGlkKSB7Cisg
IHJldHVybiBpZCA9PSBTU0xfQ1VSVkVfQ0VDUFEyIHx8IGlkID09IFNTTF9DVVJWRV9DRUNQUTJi
OworfQorCitib29sIHNzbF9jbGllbnRfaGVsbG9faW5pdChjb25zdCBTU0wgKnNzbCwgU1NMX0NM
SUVOVF9IRUxMTyAqb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU1NMTWVz
c2FnZSAmbXNnKSB7CiAgIE9QRU5TU0xfbWVtc2V0KG91dCwgMCwgc2l6ZW9mKCpvdXQpKTsKLSAg
b3V0LT5zc2wgPSBzc2w7CisgIG91dC0+c3NsID0gY29uc3RfY2FzdDxTU0wgKj4oc3NsKTsKICAg
b3V0LT5jbGllbnRfaGVsbG8gPSBDQlNfZGF0YSgmbXNnLmJvZHkpOwogICBvdXQtPmNsaWVudF9o
ZWxsb19sZW4gPSBDQlNfbGVuKCZtc2cuYm9keSk7CiAKQEAgLTMyNCw3ICszMjgsMTEgQEAgYm9v
bCB0bHMxX2dldF9zaGFyZWRfZ3JvdXAoU1NMX0hBTkRTSEFLRSAqaHMsIHVpbnQxNl90ICpvdXRf
Z3JvdXBfaWQpIHsKIAogICBmb3IgKHVpbnQxNl90IHByZWZfZ3JvdXAgOiBwcmVmKSB7CiAgICAg
Zm9yICh1aW50MTZfdCBzdXBwX2dyb3VwIDogc3VwcCkgewotICAgICAgaWYgKHByZWZfZ3JvdXAg
PT0gc3VwcF9ncm91cCkgeworICAgICAgaWYgKHByZWZfZ3JvdXAgPT0gc3VwcF9ncm91cCAmJgor
ICAgICAgICAgIC8vIENFQ1BRMihiKSBkb2Vzbid0IGZpdCBpbiB0aGUgdTgtbGVuZ3RoLXByZWZp
eGVkIEVDUG9pbnQgZmllbGQgaW4KKyAgICAgICAgICAvLyBUTFMgMS4yIGFuZCBiZWxvdy4KKyAg
ICAgICAgICAoc3NsX3Byb3RvY29sX3ZlcnNpb24oc3NsKSA+PSBUTFMxXzNfVkVSU0lPTiB8fAor
ICAgICAgICAgICAhaXNfcG9zdF9xdWFudHVtX2dyb3VwKHByZWZfZ3JvdXApKSkgewogICAgICAg
ICAqb3V0X2dyb3VwX2lkID0gcHJlZl9ncm91cDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICB9CkBAIC0zODYsNiArMzk0LDEyIEBAIGJvb2wgdGxzMV9zZXRfY3VydmVzX2xpc3QoQXJyYXk8
dWludDE2X3Q+ICpvdXRfZ3JvdXBfaWRzLCBjb25zdCBjaGFyICpjdXJ2ZXMpIHsKIH0KIAogYm9v
bCB0bHMxX2NoZWNrX2dyb3VwX2lkKGNvbnN0IFNTTF9IQU5EU0hBS0UgKmhzLCB1aW50MTZfdCBn
cm91cF9pZCkgeworICBpZiAoaXNfcG9zdF9xdWFudHVtX2dyb3VwKGdyb3VwX2lkKSAmJgorICAg
ICAgc3NsX3Byb3RvY29sX3ZlcnNpb24oaHMtPnNzbCkgPCBUTFMxXzNfVkVSU0lPTikgeworICAg
IC8vIENFQ1BRMihiKSByZXF1aXJlcyBUTFMgMS4zLgorICAgIHJldHVybiBmYWxzZTsKKyAgfQor
CiAgIGZvciAodWludDE2X3Qgc3VwcG9ydGVkIDogdGxzMV9nZXRfZ3JvdXBsaXN0KGhzKSkgewog
ICAgIGlmIChzdXBwb3J0ZWQgPT0gZ3JvdXBfaWQpIHsKICAgICAgIHJldHVybiB0cnVlOwpAQCAt
NjE5LDQ1ICs2MzMsNyBAQCBzdGF0aWMgYm9vbCBleHRfc25pX3BhcnNlX3NlcnZlcmhlbGxvKFNT
TF9IQU5EU0hBS0UgKmhzLCB1aW50OF90ICpvdXRfYWxlcnQsCiAKIHN0YXRpYyBib29sIGV4dF9z
bmlfcGFyc2VfY2xpZW50aGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMsIHVpbnQ4X3QgKm91dF9hbGVy
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0JTICpjb250ZW50cykg
ewotICBTU0wgKmNvbnN0IHNzbCA9IGhzLT5zc2w7Ci0gIGlmIChjb250ZW50cyA9PSBOVUxMKSB7
Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLQotICBDQlMgc2VydmVyX25hbWVfbGlzdCwgaG9zdF9u
YW1lOwotICB1aW50OF90IG5hbWVfdHlwZTsKLSAgaWYgKCFDQlNfZ2V0X3UxNl9sZW5ndGhfcHJl
Zml4ZWQoY29udGVudHMsICZzZXJ2ZXJfbmFtZV9saXN0KSB8fAotICAgICAgIUNCU19nZXRfdTgo
JnNlcnZlcl9uYW1lX2xpc3QsICZuYW1lX3R5cGUpIHx8Ci0gICAgICAvLyBBbHRob3VnaCB0aGUg
c2VydmVyX25hbWUgZXh0ZW5zaW9uIHdhcyBpbnRlbmRlZCB0byBiZSBleHRlbnNpYmxlIHRvCi0g
ICAgICAvLyBuZXcgbmFtZSB0eXBlcyBhbmQgbXVsdGlwbGUgbmFtZXMsIE9wZW5TU0wgMS4wLngg
aGFkIGEgYnVnIHdoaWNoIG1lYW50Ci0gICAgICAvLyBkaWZmZXJlbnQgbmFtZSB0eXBlcyB3aWxs
IGNhdXNlIGFuIGVycm9yLiBGdXJ0aGVyLCBSRkMgNDM2NiBvcmlnaW5hbGx5Ci0gICAgICAvLyBk
ZWZpbmVkIHN5bnRheCBpbmV4dGVuc2libHkuIFJGQyA2MDY2IGNvcnJlY3RlZCB0aGlzIG1pc3Rh
a2UsIGJ1dAotICAgICAgLy8gYWRkaW5nIG5ldyBuYW1lIHR5cGVzIGlzIG5vIGxvbmdlciBmZWFz
aWJsZS4KLSAgICAgIC8vCi0gICAgICAvLyBBY3QgYXMgaWYgdGhlIGV4dGVuc2liaWxpdHkgZG9l
cyBub3QgZXhpc3QgdG8gc2ltcGxpZnkgcGFyc2luZy4KLSAgICAgICFDQlNfZ2V0X3UxNl9sZW5n
dGhfcHJlZml4ZWQoJnNlcnZlcl9uYW1lX2xpc3QsICZob3N0X25hbWUpIHx8Ci0gICAgICBDQlNf
bGVuKCZzZXJ2ZXJfbmFtZV9saXN0KSAhPSAwIHx8Ci0gICAgICBDQlNfbGVuKGNvbnRlbnRzKSAh
PSAwKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgaWYgKG5hbWVfdHlwZSAhPSBUTFNF
WFRfTkFNRVRZUEVfaG9zdF9uYW1lIHx8Ci0gICAgICBDQlNfbGVuKCZob3N0X25hbWUpID09IDAg
fHwKLSAgICAgIENCU19sZW4oJmhvc3RfbmFtZSkgPiBUTFNFWFRfTUFYTEVOX2hvc3RfbmFtZSB8
fAotICAgICAgQ0JTX2NvbnRhaW5zX3plcm9fYnl0ZSgmaG9zdF9uYW1lKSkgewotICAgICpvdXRf
YWxlcnQgPSBTU0xfQURfVU5SRUNPR05JWkVEX05BTUU7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9
Ci0KLSAgLy8gQ29weSB0aGUgaG9zdG5hbWUgYXMgYSBzdHJpbmcuCi0gIGNoYXIgKnJhdyA9IG51
bGxwdHI7Ci0gIGlmICghQ0JTX3N0cmR1cCgmaG9zdF9uYW1lLCAmcmF3KSkgewotICAgICpvdXRf
YWxlcnQgPSBTU0xfQURfSU5URVJOQUxfRVJST1I7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0g
IHNzbC0+czMtPmhvc3RuYW1lLnJlc2V0KHJhdyk7Ci0KLSAgaHMtPnNob3VsZF9hY2tfc25pID0g
dHJ1ZTsKKyAgLy8gU05JIGhhcyBhbHJlYWR5IGJlZW4gcGFyc2VkIGVhcmxpZXIgaW4gdGhlIGhh
bmRzaGFrZS4gU2VlIHxleHRyYWN0X3NuaXwuCiAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMDM4
LDcgKzEwMTQsNiBAQCBzdGF0aWMgYm9vbCBleHRfc2lnYWxnc19wYXJzZV9jbGllbnRoZWxsbyhT
U0xfSEFORFNIQUtFICpocywgdWludDhfdCAqb3V0X2FsZXJ0LAogICBDQlMgc3VwcG9ydGVkX3Np
Z25hdHVyZV9hbGdvcml0aG1zOwogICBpZiAoIUNCU19nZXRfdTE2X2xlbmd0aF9wcmVmaXhlZChj
b250ZW50cywgJnN1cHBvcnRlZF9zaWduYXR1cmVfYWxnb3JpdGhtcykgfHwKICAgICAgIENCU19s
ZW4oY29udGVudHMpICE9IDAgfHwKLSAgICAgIENCU19sZW4oJnN1cHBvcnRlZF9zaWduYXR1cmVf
YWxnb3JpdGhtcykgPT0gMCB8fAogICAgICAgIXRsczFfcGFyc2VfcGVlcl9zaWdhbGdzKGhzLCAm
c3VwcG9ydGVkX3NpZ25hdHVyZV9hbGdvcml0aG1zKSkgewogICAgIHJldHVybiBmYWxzZTsKICAg
fQpAQCAtMTc4MSw3ICsxNzU2LDcgQEAgc3RhdGljIGJvb2wgZXh0X2VjX3BvaW50X2FkZF9leHRl
bnNpb24oU1NMX0hBTkRTSEFLRSAqaHMsIENCQiAqb3V0KSB7CiB9CiAKIHN0YXRpYyBib29sIGV4
dF9lY19wb2ludF9hZGRfY2xpZW50aGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMsIENCQiAqb3V0KSB7
Ci0gIC8vIFRoZSBwb2ludCBmb3JtYXQgZXh0ZW5zaW9uIGlzIHVubmVjY2Vzc2FyeSBpbiBUTFMg
MS4zLgorICAvLyBUaGUgcG9pbnQgZm9ybWF0IGV4dGVuc2lvbiBpcyB1bm5lY2Vzc2FyeSBpbiBU
TFMgMS4zLgogICBpZiAoaHMtPm1pbl92ZXJzaW9uID49IFRMUzFfM19WRVJTSU9OKSB7CiAgICAg
cmV0dXJuIHRydWU7CiAgIH0KQEAgLTE5MjYsNyArMTkwMSwxNyBAQCBib29sIHNzbF9leHRfcHJl
X3NoYXJlZF9rZXlfcGFyc2Vfc2VydmVyaGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMsCiAKIGJvb2wg
c3NsX2V4dF9wcmVfc2hhcmVkX2tleV9wYXJzZV9jbGllbnRoZWxsbygKICAgICBTU0xfSEFORFNI
QUtFICpocywgQ0JTICpvdXRfdGlja2V0LCBDQlMgKm91dF9iaW5kZXJzLAotICAgIHVpbnQzMl90
ICpvdXRfb2JmdXNjYXRlZF90aWNrZXRfYWdlLCB1aW50OF90ICpvdXRfYWxlcnQsIENCUyAqY29u
dGVudHMpIHsKKyAgICB1aW50MzJfdCAqb3V0X29iZnVzY2F0ZWRfdGlja2V0X2FnZSwgdWludDhf
dCAqb3V0X2FsZXJ0LAorICAgIGNvbnN0IFNTTF9DTElFTlRfSEVMTE8gKmNsaWVudF9oZWxsbywg
Q0JTICpjb250ZW50cykgeworICAvLyBWZXJpZnkgdGhhdCB0aGUgcHJlX3NoYXJlZF9rZXkgZXh0
ZW5zaW9uIGlzIHRoZSBsYXN0IGV4dGVuc2lvbiBpbgorICAvLyBDbGllbnRIZWxsby4KKyAgaWYg
KENCU19kYXRhKGNvbnRlbnRzKSArIENCU19sZW4oY29udGVudHMpICE9CisgICAgICBjbGllbnRf
aGVsbG8tPmV4dGVuc2lvbnMgKyBjbGllbnRfaGVsbG8tPmV4dGVuc2lvbnNfbGVuKSB7CisgICAg
T1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9QUkVfU0hBUkVEX0tFWV9NVVNUX0JFX0xBU1Qp
OworICAgICpvdXRfYWxlcnQgPSBTU0xfQURfSUxMRUdBTF9QQVJBTUVURVI7CisgICAgcmV0dXJu
IGZhbHNlOworICB9CisKICAgLy8gV2Ugb25seSBwcm9jZXNzIHRoZSBmaXJzdCBQU0sgaWRlbnRp
dHkgc2luY2Ugd2UgZG9uJ3Qgc3VwcG9ydCBwdXJlIFBTSy4KICAgQ0JTIGlkZW50aXRpZXMsIGJp
bmRlcnM7CiAgIGlmICghQ0JTX2dldF91MTZfbGVuZ3RoX3ByZWZpeGVkKGNvbnRlbnRzLCAmaWRl
bnRpdGllcykgfHwKQEAgLTIwNDgsMjAgKzIwMzMsNDYgQEAgc3RhdGljIGJvb2wgZXh0X3Bza19r
ZXlfZXhjaGFuZ2VfbW9kZXNfcGFyc2VfY2xpZW50aGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMsCiAK
IHN0YXRpYyBib29sIGV4dF9lYXJseV9kYXRhX2FkZF9jbGllbnRoZWxsbyhTU0xfSEFORFNIQUtF
ICpocywgQ0JCICpvdXQpIHsKICAgU1NMICpjb25zdCBzc2wgPSBocy0+c3NsOwotICBpZiAoIXNz
bC0+ZW5hYmxlX2Vhcmx5X2RhdGEgfHwKLSAgICAgIC8vIFNlc3Npb24gbXVzdCBiZSAwLVJUVCBj
YXBhYmxlLgotICAgICAgc3NsLT5zZXNzaW9uID09IG51bGxwdHIgfHwKLSAgICAgIHNzbF9zZXNz
aW9uX3Byb3RvY29sX3ZlcnNpb24oc3NsLT5zZXNzaW9uLmdldCgpKSA8IFRMUzFfM19WRVJTSU9O
IHx8Ci0gICAgICBzc2wtPnNlc3Npb24tPnRpY2tldF9tYXhfZWFybHlfZGF0YSA9PSAwIHx8Ci0g
ICAgICAvLyBUaGUgc2Vjb25kIENsaWVudEhlbGxvIG5ldmVyIG9mZmVycyBlYXJseSBkYXRhLgot
ICAgICAgaHMtPnJlY2VpdmVkX2hlbGxvX3JldHJ5X3JlcXVlc3QgfHwKLSAgICAgIC8vIEluIGNh
c2UgQUxQTiBwcmVmZXJlbmNlcyBjaGFuZ2VkIHNpbmNlIHRoaXMgc2Vzc2lvbiB3YXMgZXN0YWJs
aXNoZWQsCi0gICAgICAvLyBhdm9pZCByZXBvcnRpbmcgYSBjb25mdXNpbmcgdmFsdWUgaW4gfFNT
TF9nZXQwX2FscG5fc2VsZWN0ZWR8LgotICAgICAgKCFzc2wtPnNlc3Npb24tPmVhcmx5X2FscG4u
ZW1wdHkoKSAmJgotICAgICAgICFzc2xfaXNfYWxwbl9wcm90b2NvbF9hbGxvd2VkKGhzLCBzc2wt
PnNlc3Npb24tPmVhcmx5X2FscG4pKSkgeworICAvLyBUaGUgc2Vjb25kIENsaWVudEhlbGxvIG5l
dmVyIG9mZmVycyBlYXJseSBkYXRhLCBhbmQgd2UgbXVzdCBoYXZlIGFscmVhZHkKKyAgLy8gZmls
bGVkIGluIHxlYXJseV9kYXRhX3JlYXNvbnwgYnkgdGhpcyBwb2ludC4KKyAgaWYgKGhzLT5yZWNl
aXZlZF9oZWxsb19yZXRyeV9yZXF1ZXN0KSB7CisgICAgYXNzZXJ0KHNzbC0+czMtPmVhcmx5X2Rh
dGFfcmVhc29uICE9IHNzbF9lYXJseV9kYXRhX3Vua25vd24pOwogICAgIHJldHVybiB0cnVlOwog
ICB9CiAKKyAgaWYgKCFzc2wtPmVuYWJsZV9lYXJseV9kYXRhKSB7CisgICAgc3NsLT5zMy0+ZWFy
bHlfZGF0YV9yZWFzb24gPSBzc2xfZWFybHlfZGF0YV9kaXNhYmxlZDsKKyAgICByZXR1cm4gdHJ1
ZTsKKyAgfQorCisgIGlmIChocy0+bWF4X3ZlcnNpb24gPCBUTFMxXzNfVkVSU0lPTikgeworICAg
IC8vIFdlIGRpc2NhcmQgaW5hcHBsaWNhYmxlIHNlc3Npb25zLCBzbyB0aGlzIGlzIHJlZHVuZGFu
dCB3aXRoIHRoZSBzZXNzaW9uCisgICAgLy8gY2hlY2tzIGJlbG93LCBidXQgd2UgY2hlY2sgZ2l2
ZSBhIG1vcmUgdXNlZnVsIHJlYXNvbi4KKyAgICBzc2wtPnMzLT5lYXJseV9kYXRhX3JlYXNvbiA9
IHNzbF9lYXJseV9kYXRhX3Byb3RvY29sX3ZlcnNpb247CisgICAgcmV0dXJuIHRydWU7CisgIH0K
KworICBpZiAoc3NsLT5zZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICBzc2wtPnMzLT5lYXJseV9k
YXRhX3JlYXNvbiA9IHNzbF9lYXJseV9kYXRhX25vX3Nlc3Npb25fb2ZmZXJlZDsKKyAgICByZXR1
cm4gdHJ1ZTsKKyAgfQorCisgIGlmIChzc2xfc2Vzc2lvbl9wcm90b2NvbF92ZXJzaW9uKHNzbC0+
c2Vzc2lvbi5nZXQoKSkgPCBUTFMxXzNfVkVSU0lPTiB8fAorICAgICAgc3NsLT5zZXNzaW9uLT50
aWNrZXRfbWF4X2Vhcmx5X2RhdGEgPT0gMCkgeworICAgIHNzbC0+czMtPmVhcmx5X2RhdGFfcmVh
c29uID0gc3NsX2Vhcmx5X2RhdGFfdW5zdXBwb3J0ZWRfZm9yX3Nlc3Npb247CisgICAgcmV0dXJu
IHRydWU7CisgIH0KKworICAvLyBJbiBjYXNlIEFMUE4gcHJlZmVyZW5jZXMgY2hhbmdlZCBzaW5j
ZSB0aGlzIHNlc3Npb24gd2FzIGVzdGFibGlzaGVkLCBhdm9pZAorICAvLyByZXBvcnRpbmcgYSBj
b25mdXNpbmcgdmFsdWUgaW4gfFNTTF9nZXQwX2FscG5fc2VsZWN0ZWR8IGFuZCBzZW5kaW5nIGVh
cmx5CisgIC8vIGRhdGEgd2Uga25vdyB3aWxsIGJlIHJlamVjdGVkLgorICBpZiAoIXNzbC0+c2Vz
c2lvbi0+ZWFybHlfYWxwbi5lbXB0eSgpICYmCisgICAgICAhc3NsX2lzX2FscG5fcHJvdG9jb2xf
YWxsb3dlZChocywgc3NsLT5zZXNzaW9uLT5lYXJseV9hbHBuKSkgeworICAgIHNzbC0+czMtPmVh
cmx5X2RhdGFfcmVhc29uID0gc3NsX2Vhcmx5X2RhdGFfYWxwbl9taXNtYXRjaDsKKyAgICByZXR1
cm4gdHJ1ZTsKKyAgfQorCisgIC8vIHxlYXJseV9kYXRhX3JlYXNvbnwgd2lsbCBiZSBmaWxsZWQg
aW4gbGF0ZXIgd2hlbiB0aGUgc2VydmVyIHJlc3BvbmRzLgogICBocy0+ZWFybHlfZGF0YV9vZmZl
cmVkID0gdHJ1ZTsKIAogICBpZiAoIUNCQl9hZGRfdTE2KG91dCwgVExTRVhUX1RZUEVfZWFybHlf
ZGF0YSkgfHwKQEAgLTIwNzQsMTIgKzIwODUsMjcgQEAgc3RhdGljIGJvb2wgZXh0X2Vhcmx5X2Rh
dGFfYWRkX2NsaWVudGhlbGxvKFNTTF9IQU5EU0hBS0UgKmhzLCBDQkIgKm91dCkgewogfQogCiBz
dGF0aWMgYm9vbCBleHRfZWFybHlfZGF0YV9wYXJzZV9zZXJ2ZXJoZWxsbyhTU0xfSEFORFNIQUtF
ICpocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4
X3QgKm91dF9hbGVydCwgQ0JTICpjb250ZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0X2FsZXJ0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0JTICpjb250ZW50cykgewogICBTU0wgKmNv
bnN0IHNzbCA9IGhzLT5zc2w7CiAgIGlmIChjb250ZW50cyA9PSBOVUxMKSB7CisgICAgaWYgKGhz
LT5lYXJseV9kYXRhX29mZmVyZWQgJiYgIWhzLT5yZWNlaXZlZF9oZWxsb19yZXRyeV9yZXF1ZXN0
KSB7CisgICAgICBzc2wtPnMzLT5lYXJseV9kYXRhX3JlYXNvbiA9IHNzbC0+czMtPnNlc3Npb25f
cmV1c2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNzbF9lYXJs
eV9kYXRhX3BlZXJfZGVjbGluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDogc3NsX2Vhcmx5X2RhdGFfc2Vzc2lvbl9ub3RfcmVzdW1lZDsKKyAgICB9IGVsc2Ugewor
ICAgICAgLy8gV2UgYWxyZWFkeSBmaWxsZWQgaW4gfGVhcmx5X2RhdGFfcmVhc29ufCB3aGVuIGRl
Y2xpbmluZyB0byBvZmZlciAwLVJUVAorICAgICAgLy8gb3IgaGFuZGxpbmcgdGhlIGltcGxpY2l0
IEhlbGxvUmV0cnlSZXF1ZXN0IHJlamVjdC4KKyAgICAgIGFzc2VydChzc2wtPnMzLT5lYXJseV9k
YXRhX3JlYXNvbiAhPSBzc2xfZWFybHlfZGF0YV91bmtub3duKTsKKyAgICB9CiAgICAgcmV0dXJu
IHRydWU7CiAgIH0KIAorICAvLyBJZiB3ZSByZWNlaXZlZCBhbiBIUlIsIHRoZSBzZWNvbmQgQ2xp
ZW50SGVsbG8gbmV2ZXIgb2ZmZXJzIGVhcmx5IGRhdGEsIHNvCisgIC8vIHRoZSBleHRlbnNpb25z
IGxvZ2ljIHdpbGwgYXV0b21hdGljYWxseSByZWplY3QgZWFybHkgZGF0YSBleHRlbnNpb25zIGFz
CisgIC8vIHVuc29saWNpdGVkLiBUaGlzIGNvdmVyZWQgYnkgdGhlIFNlcnZlckFjY2VwdHNFYXJs
eURhdGFPbkhSUiB0ZXN0LgorICBhc3NlcnQoIWhzLT5yZWNlaXZlZF9oZWxsb19yZXRyeV9yZXF1
ZXN0KTsKKwogICBpZiAoQ0JTX2xlbihjb250ZW50cykgIT0gMCkgewogICAgICpvdXRfYWxlcnQg
PSBTU0xfQURfREVDT0RFX0VSUk9SOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTIwOTEsNiArMjEx
Nyw3IEBAIHN0YXRpYyBib29sIGV4dF9lYXJseV9kYXRhX3BhcnNlX3NlcnZlcmhlbGxvKFNTTF9I
QU5EU0hBS0UgKmhzLAogICAgIHJldHVybiBmYWxzZTsKICAgfQogCisgIHNzbC0+czMtPmVhcmx5
X2RhdGFfcmVhc29uID0gc3NsX2Vhcmx5X2RhdGFfYWNjZXB0ZWQ7CiAgIHNzbC0+czMtPmVhcmx5
X2RhdGFfYWNjZXB0ZWQgPSB0cnVlOwogICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIxNDUsNiArMjE3
Miw3IEBAIHN0YXRpYyBib29sIGV4dF9rZXlfc2hhcmVfYWRkX2NsaWVudGhlbGxvKFNTTF9IQU5E
U0hBS0UgKmhzLCBDQkIgKm91dCkgewogICB9CiAKICAgdWludDE2X3QgZ3JvdXBfaWQgPSBocy0+
cmV0cnlfZ3JvdXA7CisgIHVpbnQxNl90IHNlY29uZF9ncm91cF9pZCA9IDA7CiAgIGlmIChocy0+
cmVjZWl2ZWRfaGVsbG9fcmV0cnlfcmVxdWVzdCkgewogICAgIC8vIFdlIHJlY2VpdmVkIGEgSGVs
bG9SZXRyeVJlcXVlc3Qgd2l0aG91dCBhIG5ldyBjdXJ2ZSwgc28gdGhlcmUgaXMgbm8gbmV3CiAg
ICAgLy8gc2hhcmUgdG8gYXBwZW5kLiBMZWF2ZSB8aHMtPmtleV9zaGFyZXwgYXMtaXMuCkBAIC0y
MTc1LDE5ICsyMjAzLDM4IEBAIHN0YXRpYyBib29sIGV4dF9rZXlfc2hhcmVfYWRkX2NsaWVudGhl
bGxvKFNTTF9IQU5EU0hBS0UgKmhzLCBDQkIgKm91dCkgewogICAgIH0KIAogICAgIGdyb3VwX2lk
ID0gZ3JvdXBzWzBdOworCisgICAgaWYgKGlzX3Bvc3RfcXVhbnR1bV9ncm91cChncm91cF9pZCkg
JiYgZ3JvdXBzLnNpemUoKSA+PSAyKSB7CisgICAgICAvLyBDRUNQUTIoYikgaXMgbm90IHNlbnQg
YXMgdGhlIG9ubHkgaW5pdGlhbCBrZXkgc2hhcmUuIFdlJ2xsIGluY2x1ZGUgdGhlCisgICAgICAv
LyAybmQgcHJlZmVyZW5jZSBncm91cCB0b28gdG8gYXZvaWQgcm91bmQtdHJpcHMuCisgICAgICBz
ZWNvbmRfZ3JvdXBfaWQgPSBncm91cHNbMV07CisgICAgICBhc3NlcnQoc2Vjb25kX2dyb3VwX2lk
ICE9IGdyb3VwX2lkKTsKKyAgICB9CiAgIH0KIAotICBocy0+a2V5X3NoYXJlID0gU1NMS2V5U2hh
cmU6OkNyZWF0ZShncm91cF9pZCk7CiAgIENCQiBrZXlfZXhjaGFuZ2U7Ci0gIGlmICghaHMtPmtl
eV9zaGFyZSB8fAorICBocy0+a2V5X3NoYXJlc1swXSA9IFNTTEtleVNoYXJlOjpDcmVhdGUoZ3Jv
dXBfaWQpOworICBpZiAoIWhzLT5rZXlfc2hhcmVzWzBdIHx8CiAgICAgICAhQ0JCX2FkZF91MTYo
JmtzZV9ieXRlcywgZ3JvdXBfaWQpIHx8CiAgICAgICAhQ0JCX2FkZF91MTZfbGVuZ3RoX3ByZWZp
eGVkKCZrc2VfYnl0ZXMsICZrZXlfZXhjaGFuZ2UpIHx8Ci0gICAgICAhaHMtPmtleV9zaGFyZS0+
T2ZmZXIoJmtleV9leGNoYW5nZSkgfHwKKyAgICAgICFocy0+a2V5X3NoYXJlc1swXS0+T2ZmZXIo
JmtleV9leGNoYW5nZSkgfHwKICAgICAgICFDQkJfZmx1c2goJmtzZV9ieXRlcykpIHsKICAgICBy
ZXR1cm4gZmFsc2U7CiAgIH0KIAotICAvLyBTYXZlIHRoZSBjb250ZW50cyBvZiB0aGUgZXh0ZW5z
aW9uIHRvIHJlcGVhdCBpdCBpbiB0aGUgc2Vjb25kIENsaWVudEhlbGxvLgorICBpZiAoc2Vjb25k
X2dyb3VwX2lkICE9IDApIHsKKyAgICBocy0+a2V5X3NoYXJlc1sxXSA9IFNTTEtleVNoYXJlOjpD
cmVhdGUoc2Vjb25kX2dyb3VwX2lkKTsKKyAgICBpZiAoIWhzLT5rZXlfc2hhcmVzWzFdIHx8Cisg
ICAgICAgICFDQkJfYWRkX3UxNigma3NlX2J5dGVzLCBzZWNvbmRfZ3JvdXBfaWQpIHx8CisgICAg
ICAgICFDQkJfYWRkX3UxNl9sZW5ndGhfcHJlZml4ZWQoJmtzZV9ieXRlcywgJmtleV9leGNoYW5n
ZSkgfHwKKyAgICAgICAgIWhzLT5rZXlfc2hhcmVzWzFdLT5PZmZlcigma2V5X2V4Y2hhbmdlKSB8
fAorICAgICAgICAhQ0JCX2ZsdXNoKCZrc2VfYnl0ZXMpKSB7CisgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICB9CisKKyAgLy8gU2F2ZSB0aGUgY29udGVudHMgb2YgdGhlIGV4dGVuc2lvbiB0
byByZXBlYXQgaXQgaW4gdGhlIHNlY29uZAorICAvLyBDbGllbnRIZWxsby4KICAgaWYgKCFocy0+
cmVjZWl2ZWRfaGVsbG9fcmV0cnlfcmVxdWVzdCAmJgogICAgICAgIWhzLT5rZXlfc2hhcmVfYnl0
ZXMuQ29weUZyb20oCiAgICAgICAgICAgTWFrZUNvbnN0U3BhbihDQkJfZGF0YSgma3NlX2J5dGVz
KSwgQ0JCX2xlbigma3NlX2J5dGVzKSkpKSB7CkBAIC0yMjEwLDE5ICsyMjU3LDI0IEBAIGJvb2wg
c3NsX2V4dF9rZXlfc2hhcmVfcGFyc2Vfc2VydmVyaGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMsCiAg
ICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgaWYgKGhzLT5rZXlfc2hhcmUtPkdyb3VwSUQoKSAh
PSBncm91cF9pZCkgewotICAgICpvdXRfYWxlcnQgPSBTU0xfQURfSUxMRUdBTF9QQVJBTUVURVI7
Ci0gICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9XUk9OR19DVVJWRSk7Ci0gICAgcmV0
dXJuIGZhbHNlOworICBTU0xLZXlTaGFyZSAqa2V5X3NoYXJlID0gaHMtPmtleV9zaGFyZXNbMF0u
Z2V0KCk7CisgIGlmIChrZXlfc2hhcmUtPkdyb3VwSUQoKSAhPSBncm91cF9pZCkgeworICAgIGlm
ICghaHMtPmtleV9zaGFyZXNbMV0gfHwgaHMtPmtleV9zaGFyZXNbMV0tPkdyb3VwSUQoKSAhPSBn
cm91cF9pZCkgeworICAgICAgKm91dF9hbGVydCA9IFNTTF9BRF9JTExFR0FMX1BBUkFNRVRFUjsK
KyAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfV1JPTkdfQ1VSVkUpOworICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBrZXlfc2hhcmUgPSBocy0+a2V5X3NoYXJlc1sxXS5n
ZXQoKTsKICAgfQogCi0gIGlmICghaHMtPmtleV9zaGFyZS0+RmluaXNoKG91dF9zZWNyZXQsIG91
dF9hbGVydCwgcGVlcl9rZXkpKSB7CisgIGlmICgha2V5X3NoYXJlLT5GaW5pc2gob3V0X3NlY3Jl
dCwgb3V0X2FsZXJ0LCBwZWVyX2tleSkpIHsKICAgICAqb3V0X2FsZXJ0ID0gU1NMX0FEX0lOVEVS
TkFMX0VSUk9SOwogICAgIHJldHVybiBmYWxzZTsKICAgfQogCiAgIGhzLT5uZXdfc2Vzc2lvbi0+
Z3JvdXBfaWQgPSBncm91cF9pZDsKLSAgaHMtPmtleV9zaGFyZS5yZXNldCgpOworICBocy0+a2V5
X3NoYXJlc1swXS5yZXNldCgpOworICBocy0+a2V5X3NoYXJlc1sxXS5yZXNldCgpOwogICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtMjM5MCw2ICsyNDQyLDEwIEBAIHN0YXRpYyBib29sIGV4dF9zdXBw
b3J0ZWRfZ3JvdXBzX2FkZF9jbGllbnRoZWxsbyhTU0xfSEFORFNIQUtFICpocywgQ0JCICpvdXQp
IHsKICAgfQogCiAgIGZvciAodWludDE2X3QgZ3JvdXAgOiB0bHMxX2dldF9ncm91cGxpc3QoaHMp
KSB7CisgICAgaWYgKGlzX3Bvc3RfcXVhbnR1bV9ncm91cChncm91cCkgJiYKKyAgICAgICAgaHMt
Pm1heF92ZXJzaW9uIDwgVExTMV8zX1ZFUlNJT04pIHsKKyAgICAgIGNvbnRpbnVlOworICAgIH0K
ICAgICBpZiAoIUNCQl9hZGRfdTE2KCZncm91cHNfYnl0ZXMsIGdyb3VwKSkgewogICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTI2NjQsNiArMjcyMCwzNiBAQCBzdGF0aWMgYm9vbCBleHRf
cXVpY190cmFuc3BvcnRfcGFyYW1zX2FkZF9zZXJ2ZXJoZWxsbyhTU0xfSEFORFNIQUtFICpocywK
ICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIERlbGVnYXRlZCBjcmVkZW50aWFscy4KKy8vCisvLyBo
dHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi10bHMtc3ViY2VydHMKKworc3Rh
dGljIGJvb2wgZXh0X2RlbGVnYXRlZF9jcmVkZW50aWFsX2FkZF9jbGllbnRoZWxsbyhTU0xfSEFO
RFNIQUtFICpocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ0JCICpvdXQpIHsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGV4
dF9kZWxlZ2F0ZWRfY3JlZGVudGlhbF9wYXJzZV9jbGllbnRoZWxsbyhTU0xfSEFORFNIQUtFICpo
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50OF90ICpvdXRfYWxlcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0JTICpjb250ZW50cykgeworICBhc3NlcnQoVExTRVhUX1RZ
UEVfZGVsZWdhdGVkX2NyZWRlbnRpYWwgPT0gMHhmZjAyKTsKKyAgLy8gVE9ETzogQ2hlY2sgdGhh
dCB0aGUgZXh0ZW5zaW9uIGlzIGVtcHR5LgorICAvLworICAvLyBBcyBvZiBkcmFmdC0wMywgdGhl
IGNsaWVudCBzZW5kcyBhbiBlbXB0eSBleHRlbnNpb24gaW4gb3JkZXIgaW5kaWNhdGUKKyAgLy8g
c3VwcG9ydCBmb3IgZGVsZWdhdGVkIGNyZWRlbnRpYWxzLiBUaGlzIGNvdWxkIGNoYW5nZSwgaG93
ZXZlciwgc2luY2UgdGhlCisgIC8vIHNwZWMgaXMgbm90IHlldCBmaW5hbGl6ZWQuIFRoaXMgYXNz
ZXJ0aW9uIGlzIGhlcmUgdG8gcmVtaW5kIHVzIHRvIGVuZm9yY2UKKyAgLy8gdGhpcyBjaGVjayBv
bmNlIHRoZSBleHRlbnNpb24gSUQgaXMgYXNzaWduZWQuCisKKyAgaWYgKGNvbnRlbnRzID09IG51
bGxwdHIgfHwgc3NsX3Byb3RvY29sX3ZlcnNpb24oaHMtPnNzbCkgPCBUTFMxXzNfVkVSU0lPTikg
eworICAgIC8vIERvbid0IHVzZSBkZWxlZ2F0ZWQgY3JlZGVudGlhbHMgdW5sZXNzIHdlJ3JlIG5l
Z290aWF0aW5nIFRMUyAxLjMgb3IKKyAgICAvLyBoaWdoZXIuCisgICAgcmV0dXJuIHRydWU7Cisg
IH0KKworICBocy0+ZGVsZWdhdGVkX2NyZWRlbnRpYWxfcmVxdWVzdGVkID0gdHJ1ZTsKKyAgcmV0
dXJuIHRydWU7Cit9CisKIC8vIENlcnRpZmljYXRlIGNvbXByZXNzaW9uCiAKIHN0YXRpYyBib29s
IGNlcnRfY29tcHJlc3Npb25fYWRkX2NsaWVudGhlbGxvKFNTTF9IQU5EU0hBS0UgKmhzLCBDQkIg
Km91dCkgewpAQCAtMjc3Miw2ICsyODU4LDY3IEBAIHN0YXRpYyBib29sIGNlcnRfY29tcHJlc3Np
b25fYWRkX3NlcnZlcmhlbGxvKFNTTF9IQU5EU0hBS0UgKmhzLCBDQkIgKm91dCkgewogICByZXR1
cm4gdHJ1ZTsKIH0KIAorCisvLyBQb3N0LXF1YW50dW0gZXhwZXJpbWVudCBzaWduYWwKKy8vCisv
LyBUaGlzIGV4dGVuc2lvbiBtYXkgYmUgdXNlZCBpbiBvcmRlciB0byBpZGVudGlmeSBhIGNvbnRy
b2wgZ3JvdXAgZm9yCisvLyBleHBlcmltZW50aW5nIHdpdGggcG9zdC1xdWFudHVtIGtleSBleGNo
YW5nZSBhbGdvcml0aG1zLgorCitzdGF0aWMgYm9vbCBleHRfcHFfZXhwZXJpbWVudF9zaWduYWxf
YWRkX2NsaWVudGhlbGxvKFNTTF9IQU5EU0hBS0UgKmhzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQkIgKm91dCkgeworICBpZiAoaHMtPnNz
bC0+Y3R4LT5wcV9leHBlcmltZW50X3NpZ25hbCAmJgorICAgICAgKCFDQkJfYWRkX3UxNihvdXQs
IFRMU0VYVF9UWVBFX3BxX2V4cGVyaW1lbnRfc2lnbmFsKSB8fAorICAgICAgICFDQkJfYWRkX3Ux
NihvdXQsIDApKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHJldHVybiB0cnVlOwor
fQorCitzdGF0aWMgYm9vbCBleHRfcHFfZXhwZXJpbWVudF9zaWduYWxfcGFyc2Vfc2VydmVyaGVs
bG8oU1NMX0hBTkRTSEFLRSAqaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0X2FsZXJ0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENCUyAqY29udGVudHMpIHsK
KyAgaWYgKGNvbnRlbnRzID09IG51bGxwdHIpIHsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisg
IGlmICghaHMtPnNzbC0+Y3R4LT5wcV9leHBlcmltZW50X3NpZ25hbCB8fCBDQlNfbGVuKGNvbnRl
bnRzKSAhPSAwKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgaHMtPnNzbC0+czMtPnBx
X2V4cGVyaW1lbnRfc2lnbmFsX3NlZW4gPSB0cnVlOworICByZXR1cm4gdHJ1ZTsKK30KKworc3Rh
dGljIGJvb2wgZXh0X3BxX2V4cGVyaW1lbnRfc2lnbmFsX3BhcnNlX2NsaWVudGhlbGxvKFNTTF9I
QU5EU0hBS0UgKmhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQ4X3QgKm91dF9hbGVydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQlMgKmNvbnRlbnRzKSB7CisgIGlmIChj
b250ZW50cyA9PSBudWxscHRyKSB7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworICBpZiAoQ0JT
X2xlbihjb250ZW50cykgIT0gMCkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGlmICho
cy0+c3NsLT5jdHgtPnBxX2V4cGVyaW1lbnRfc2lnbmFsKSB7CisgICAgaHMtPnNzbC0+czMtPnBx
X2V4cGVyaW1lbnRfc2lnbmFsX3NlZW4gPSB0cnVlOworICB9CisKKyAgcmV0dXJuIHRydWU7Cit9
CisKK3N0YXRpYyBib29sIGV4dF9wcV9leHBlcmltZW50X3NpZ25hbF9hZGRfc2VydmVyaGVsbG8o
U1NMX0hBTkRTSEFLRSAqaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENCQiAqb3V0KSB7CisgIGlmIChocy0+c3NsLT5zMy0+cHFfZXhwZXJp
bWVudF9zaWduYWxfc2VlbiAmJgorICAgICAgKCFDQkJfYWRkX3UxNihvdXQsIFRMU0VYVF9UWVBF
X3BxX2V4cGVyaW1lbnRfc2lnbmFsKSB8fAorICAgICAgICFDQkJfYWRkX3UxNihvdXQsIDApKSkg
eworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHJldHVybiB0cnVlOworfQorCiAvLyBrRXh0
ZW5zaW9ucyBjb250YWlucyBhbGwgdGhlIHN1cHBvcnRlZCBleHRlbnNpb25zLgogc3RhdGljIGNv
bnN0IHN0cnVjdCB0bHNfZXh0ZW5zaW9uIGtFeHRlbnNpb25zW10gPSB7CiAgIHsKQEAgLTI5NTIs
NiArMzA5OSwyMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRsc19leHRlbnNpb24ga0V4dGVuc2lv
bnNbXSA9IHsKICAgICBjZXJ0X2NvbXByZXNzaW9uX3BhcnNlX2NsaWVudGhlbGxvLAogICAgIGNl
cnRfY29tcHJlc3Npb25fYWRkX3NlcnZlcmhlbGxvLAogICB9LAorICB7CisgICAgVExTRVhUX1RZ
UEVfZGVsZWdhdGVkX2NyZWRlbnRpYWwsCisgICAgTlVMTCwKKyAgICBleHRfZGVsZWdhdGVkX2Ny
ZWRlbnRpYWxfYWRkX2NsaWVudGhlbGxvLAorICAgIGZvcmJpZF9wYXJzZV9zZXJ2ZXJoZWxsbywK
KyAgICBleHRfZGVsZWdhdGVkX2NyZWRlbnRpYWxfcGFyc2VfY2xpZW50aGVsbG8sCisgICAgZG9u
dF9hZGRfc2VydmVyaGVsbG8sCisgIH0sCisgIHsKKyAgICBUTFNFWFRfVFlQRV9wcV9leHBlcmlt
ZW50X3NpZ25hbCwKKyAgICBOVUxMLAorICAgIGV4dF9wcV9leHBlcmltZW50X3NpZ25hbF9hZGRf
Y2xpZW50aGVsbG8sCisgICAgZXh0X3BxX2V4cGVyaW1lbnRfc2lnbmFsX3BhcnNlX3NlcnZlcmhl
bGxvLAorICAgIGV4dF9wcV9leHBlcmltZW50X3NpZ25hbF9wYXJzZV9jbGllbnRoZWxsbywKKyAg
ICBleHRfcHFfZXhwZXJpbWVudF9zaWduYWxfYWRkX3NlcnZlcmhlbGxvLAorICB9LAogfTsKIAog
I2RlZmluZSBrTnVtRXh0ZW5zaW9ucyAoc2l6ZW9mKGtFeHRlbnNpb25zKSAvIHNpemVvZihzdHJ1
Y3QgdGxzX2V4dGVuc2lvbikpCkBAIC0yOTg1LDYgKzMxNDgsOSBAQCBib29sIHNzbF9hZGRfY2xp
ZW50aGVsbG9fdGxzZXh0KFNTTF9IQU5EU0hBS0UgKmhzLCBDQkIgKm91dCwKICAgICByZXR1cm4g
ZmFsc2U7CiAgIH0KIAorICAvLyBOb3RlIHdlIG1heSBzZW5kIG11bHRpcGxlIENsaWVudEhlbGxv
cyBmb3IgRFRMUyBIZWxsb1ZlcmlmeVJlcXVlc3QgYW5kIFRMUworICAvLyAxLjMgSGVsbG9SZXRy
eVJlcXVlc3QuIEZvciB0aGUgbGF0dGVyLCB0aGUgZXh0ZW5zaW9ucyBtYXkgY2hhbmdlLCBzbyBp
dCBpcworICAvLyBpbXBvcnRhbnQgdG8gcmVzZXQgdGhpcyB2YWx1ZS4KICAgaHMtPmV4dGVuc2lv
bnMuc2VudCA9IDA7CiAKICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrTnVtRXh0ZW5zaW9uczsg
aSsrKSB7CkBAIC0zNTU2LDcgKzM3MjIsMTAgQEAgYm9vbCB0bHMxX3BhcnNlX3BlZXJfc2lnYWxn
cyhTU0xfSEFORFNIQUtFICpocywgY29uc3QgQ0JTICppbl9zaWdhbGdzKSB7CiAgICAgcmV0dXJu
IHRydWU7CiAgIH0KIAotICByZXR1cm4gcGFyc2VfdTE2X2FycmF5KGluX3NpZ2FsZ3MsICZocy0+
cGVlcl9zaWdhbGdzKTsKKyAgLy8gSW4gYWxsIGNvbnRleHRzLCB0aGUgc2lnbmF0dXJlIGFsZ29y
aXRobXMgbGlzdCBtYXkgbm90IGJlIGVtcHR5LiAoSXQgbWF5IGJlCisgIC8vIG9taXR0ZWQgYnkg
Y2xpZW50cyBpbiBUTFMgMS4yLCBidXQgdGhlbiB0aGUgZW50aXJlIGV4dGVuc2lvbiBpcyBvbWl0
dGVkLikKKyAgcmV0dXJuIENCU19sZW4oaW5fc2lnYWxncykgIT0gMCAmJgorICAgICAgICAgcGFy
c2VfdTE2X2FycmF5KGluX3NpZ2FsZ3MsICZocy0+cGVlcl9zaWdhbGdzKTsKIH0KIAogYm9vbCB0
bHMxX2dldF9sZWdhY3lfc2lnbmF0dXJlX2FsZ29yaXRobSh1aW50MTZfdCAqb3V0LCBjb25zdCBF
VlBfUEtFWSAqcGtleSkgewpAQCAtMzU3NSw2ICszNzQ0LDcgQEAgYm9vbCB0bHMxX2dldF9sZWdh
Y3lfc2lnbmF0dXJlX2FsZ29yaXRobSh1aW50MTZfdCAqb3V0LCBjb25zdCBFVlBfUEtFWSAqcGtl
eSkgewogYm9vbCB0bHMxX2Nob29zZV9zaWduYXR1cmVfYWxnb3JpdGhtKFNTTF9IQU5EU0hBS0Ug
KmhzLCB1aW50MTZfdCAqb3V0KSB7CiAgIFNTTCAqY29uc3Qgc3NsID0gaHMtPnNzbDsKICAgQ0VS
VCAqY2VydCA9IGhzLT5jb25maWctPmNlcnQuZ2V0KCk7CisgIERDICpkYyA9IGNlcnQtPmRjLmdl
dCgpOwogCiAgIC8vIEJlZm9yZSBUTFMgMS4yLCB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobSBpc24n
dCBuZWdvdGlhdGVkIGFzIHBhcnQgb2YgdGhlCiAgIC8vIGhhbmRzaGFrZS4KQEAgLTM1ODcsMTkg
KzM3NTcsMTMgQEAgYm9vbCB0bHMxX2Nob29zZV9zaWduYXR1cmVfYWxnb3JpdGhtKFNTTF9IQU5E
U0hBS0UgKmhzLCB1aW50MTZfdCAqb3V0KSB7CiAgIH0KIAogICBTcGFuPGNvbnN0IHVpbnQxNl90
PiBzaWdhbGdzID0ga1NpZ25TaWduYXR1cmVBbGdvcml0aG1zOwotICBpZiAoIWNlcnQtPnNpZ2Fs
Z3MuZW1wdHkoKSkgeworICBpZiAoc3NsX3NpZ25pbmdfd2l0aF9kYyhocykpIHsKKyAgICBzaWdh
bGdzID0gTWFrZUNvbnN0U3BhbigmZGMtPmV4cGVjdGVkX2NlcnRfdmVyaWZ5X2FsZ29yaXRobSwg
MSk7CisgIH0gZWxzZSBpZiAoIWNlcnQtPnNpZ2FsZ3MuZW1wdHkoKSkgewogICAgIHNpZ2FsZ3Mg
PSBjZXJ0LT5zaWdhbGdzOwogICB9CiAKLSAgU3Bhbjxjb25zdCB1aW50MTZfdD4gcGVlcl9zaWdh
bGdzID0gaHMtPnBlZXJfc2lnYWxnczsKLSAgaWYgKHBlZXJfc2lnYWxncy5lbXB0eSgpICYmIHNz
bF9wcm90b2NvbF92ZXJzaW9uKHNzbCkgPCBUTFMxXzNfVkVSU0lPTikgewotICAgIC8vIElmIHRo
ZSBjbGllbnQgZGlkbid0IHNwZWNpZnkgYW55IHNpZ25hdHVyZV9hbGdvcml0aG1zIGV4dGVuc2lv
biB0aGVuCi0gICAgLy8gd2UgY2FuIGFzc3VtZSB0aGF0IGl0IHN1cHBvcnRzIFNIQTEuIFNlZQot
ICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUyNDYjc2VjdGlvbi03LjQuMS40
LjEKLSAgICBzdGF0aWMgY29uc3QgdWludDE2X3Qga0RlZmF1bHRQZWVyQWxnb3JpdGhtc1tdID0g
e1NTTF9TSUdOX1JTQV9QS0NTMV9TSEExLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU1NMX1NJR05fRUNEU0FfU0hBMX07Ci0gICAgcGVlcl9z
aWdhbGdzID0ga0RlZmF1bHRQZWVyQWxnb3JpdGhtczsKLSAgfQorICBTcGFuPGNvbnN0IHVpbnQx
Nl90PiBwZWVyX3NpZ2FsZ3MgPSB0bHMxX2dldF9wZWVyX3ZlcmlmeV9hbGdvcml0aG1zKGhzKTsK
IAogICBmb3IgKHVpbnQxNl90IHNpZ2FsZyA6IHNpZ2FsZ3MpIHsKICAgICAvLyBTU0xfU0lHTl9S
U0FfUEtDUzFfTUQ1X1NIQTEgaXMgYW4gaW50ZXJuYWwgdmFsdWUgYW5kIHNob3VsZCBuZXZlciBi
ZQpAQCAtMzYyMSw2ICszNzg1LDE5IEBAIGJvb2wgdGxzMV9jaG9vc2Vfc2lnbmF0dXJlX2FsZ29y
aXRobShTU0xfSEFORFNIQUtFICpocywgdWludDE2X3QgKm91dCkgewogICByZXR1cm4gZmFsc2U7
CiB9CiAKK1NwYW48Y29uc3QgdWludDE2X3Q+IHRsczFfZ2V0X3BlZXJfdmVyaWZ5X2FsZ29yaXRo
bXMoY29uc3QgU1NMX0hBTkRTSEFLRSAqaHMpIHsKKyAgU3Bhbjxjb25zdCB1aW50MTZfdD4gcGVl
cl9zaWdhbGdzID0gaHMtPnBlZXJfc2lnYWxnczsKKyAgaWYgKHBlZXJfc2lnYWxncy5lbXB0eSgp
ICYmIHNzbF9wcm90b2NvbF92ZXJzaW9uKGhzLT5zc2wpIDwgVExTMV8zX1ZFUlNJT04pIHsKKyAg
ICAvLyBJZiB0aGUgY2xpZW50IGRpZG4ndCBzcGVjaWZ5IGFueSBzaWduYXR1cmVfYWxnb3JpdGht
cyBleHRlbnNpb24gdGhlbgorICAgIC8vIHdlIGNhbiBhc3N1bWUgdGhhdCBpdCBzdXBwb3J0cyBT
SEExLiBTZWUKKyAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjQ2I3NlY3Rp
b24tNy40LjEuNC4xCisgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IGtEZWZhdWx0UGVlckFsZ29y
aXRobXNbXSA9IHtTU0xfU0lHTl9SU0FfUEtDUzFfU0hBMSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTTF9TSUdOX0VDRFNBX1NIQTF9Owor
ICAgIHBlZXJfc2lnYWxncyA9IGtEZWZhdWx0UGVlckFsZ29yaXRobXM7CisgIH0KKyAgcmV0dXJu
IHBlZXJfc2lnYWxnczsKK30KKwogYm9vbCB0bHMxX3ZlcmlmeV9jaGFubmVsX2lkKFNTTF9IQU5E
U0hBS0UgKmhzLCBjb25zdCBTU0xNZXNzYWdlICZtc2cpIHsKICAgU1NMICpjb25zdCBzc2wgPSBo
cy0+c3NsOwogICAvLyBBIENoYW5uZWwgSUQgaGFuZHNoYWtlIG1lc3NhZ2UgaXMgc3RydWN0dXJl
ZCB0byBjb250YWluIG11bHRpcGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvc3NsL3Rlc3QvQ01ha2VMaXN0cy50eHQKaW5kZXggZDg2NDY0YzRjNDI2MGM0
MjE5YTZmNzIzZDBjY2FkODViYjJkYzQ1Yi4uZWJjMTZmMTkyMDFkZmFlNGRjYjVkNDA1OWUwMDQy
ZDRhNzc3MjZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9zc2wvdGVzdC9DTWFrZUxpc3RzLnR4dApAQCAtMTAsMTMgKzEwLDExIEBAIGFkZF9leGVj
dXRhYmxlKAogICBzZXR0aW5nc193cml0ZXIuY2MKICAgdGVzdF9jb25maWcuY2MKICAgdGVzdF9z
dGF0ZS5jYwotCi0gICQ8VEFSR0VUX09CSkVDVFM6dGVzdF9zdXBwb3J0PgogKQogCiBhZGRfZGVw
ZW5kZW5jaWVzKGJzc2xfc2hpbSBnbG9iYWxfdGFyZ2V0KQogCi10YXJnZXRfbGlua19saWJyYXJp
ZXMoYnNzbF9zaGltIHNzbCBjcnlwdG8pCit0YXJnZXRfbGlua19saWJyYXJpZXMoYnNzbF9zaGlt
IHRlc3Rfc3VwcG9ydF9saWIgc3NsIGNyeXB0bykKIAogaWYoVU5JWCBBTkQgTk9UIEFQUExFIEFO
RCBOT1QgQU5EUk9JRCkKICAgYWRkX2V4ZWN1dGFibGUoCkBAIC0yOSwxMyArMjcsMTEgQEAgaWYo
VU5JWCBBTkQgTk9UIEFQUExFIEFORCBOT1QgQU5EUk9JRCkKICAgICBzZXR0aW5nc193cml0ZXIu
Y2MKICAgICB0ZXN0X2NvbmZpZy5jYwogICAgIHRlc3Rfc3RhdGUuY2MKLQotICAgICQ8VEFSR0VU
X09CSkVDVFM6dGVzdF9zdXBwb3J0PgogICApCiAKICAgYWRkX2RlcGVuZGVuY2llcyhoYW5kc2hh
a2VyIGdsb2JhbF90YXJnZXQpCiAKLSAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGhhbmRzaGFrZXIg
c3NsIGNyeXB0bykKKyAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGhhbmRzaGFrZXIgdGVzdF9zdXBw
b3J0X2xpYiBzc2wgY3J5cHRvKQogZWxzZSgpCiAgICMgRGVjbGFyZSBhIGR1bW15IHRhcmdldCBm
b3IgcnVuX3Rlc3RzIHRvIGRlcGVuZCBvbi4KICAgYWRkX2N1c3RvbV90YXJnZXQoaGFuZHNoYWtl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ic3NsX3NoaW0uY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3Qv
YnNzbF9zaGltLmNjCmluZGV4IDY3NWEwOGEwN2YzYWJlN2NkMzA4ODlhNDU5NTQwYjY1NzM5NjFl
ZmUuLmY1OGMxNTEwNjNiZjk0MGI5YzA0ZWFhZGM0NzY1Zjg3NjJiODViMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9zc2wvdGVzdC9ic3NsX3NoaW0uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L2Jzc2xfc2hpbS5j
YwpAQCAtMjc5LDIzICsyNzksMjMgQEAgc3RhdGljIHVpbnQxNl90IEdldFByb3RvY29sVmVyc2lv
bihjb25zdCBTU0wgKnNzbCkgewogLy8gYWZ0ZXIgYSByZW5lZ290aWF0aW9uLCB0aGF0IGF1dGhl
bnRpY2F0aW9uLXJlbGF0ZWQgcHJvcGVydGllcyBtYXRjaCB8Y29uZmlnfC4KIHN0YXRpYyBib29s
IENoZWNrQXV0aFByb3BlcnRpZXMoU1NMICpzc2wsIGJvb2wgaXNfcmVzdW1lLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0Q29uZmlnICpjb25maWcpIHsKLSAgaWYg
KCFjb25maWctPmV4cGVjdGVkX29jc3BfcmVzcG9uc2UuZW1wdHkoKSkgeworICBpZiAoIWNvbmZp
Zy0+ZXhwZWN0X29jc3BfcmVzcG9uc2UuZW1wdHkoKSkgewogICAgIGNvbnN0IHVpbnQ4X3QgKmRh
dGE7CiAgICAgc2l6ZV90IGxlbjsKICAgICBTU0xfZ2V0MF9vY3NwX3Jlc3BvbnNlKHNzbCwgJmRh
dGEsICZsZW4pOwotICAgIGlmIChjb25maWctPmV4cGVjdGVkX29jc3BfcmVzcG9uc2Uuc2l6ZSgp
ICE9IGxlbiB8fAotICAgICAgICBPUEVOU1NMX21lbWNtcChjb25maWctPmV4cGVjdGVkX29jc3Bf
cmVzcG9uc2UuZGF0YSgpLCBkYXRhLCBsZW4pICE9IDApIHsKKyAgICBpZiAoY29uZmlnLT5leHBl
Y3Rfb2NzcF9yZXNwb25zZS5zaXplKCkgIT0gbGVuIHx8CisgICAgICAgIE9QRU5TU0xfbWVtY21w
KGNvbmZpZy0+ZXhwZWN0X29jc3BfcmVzcG9uc2UuZGF0YSgpLCBkYXRhLCBsZW4pICE9IDApIHsK
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiT0NTUCByZXNwb25zZSBtaXNtYXRjaFxuIik7CiAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICB9CiAKLSAgaWYgKCFjb25maWctPmV4cGVjdGVkX3Np
Z25lZF9jZXJ0X3RpbWVzdGFtcHMuZW1wdHkoKSkgeworICBpZiAoIWNvbmZpZy0+ZXhwZWN0X3Np
Z25lZF9jZXJ0X3RpbWVzdGFtcHMuZW1wdHkoKSkgewogICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGE7
CiAgICAgc2l6ZV90IGxlbjsKICAgICBTU0xfZ2V0MF9zaWduZWRfY2VydF90aW1lc3RhbXBfbGlz
dChzc2wsICZkYXRhLCAmbGVuKTsKLSAgICBpZiAoY29uZmlnLT5leHBlY3RlZF9zaWduZWRfY2Vy
dF90aW1lc3RhbXBzLnNpemUoKSAhPSBsZW4gfHwKLSAgICAgICAgT1BFTlNTTF9tZW1jbXAoY29u
ZmlnLT5leHBlY3RlZF9zaWduZWRfY2VydF90aW1lc3RhbXBzLmRhdGEoKSwgZGF0YSwKKyAgICBp
ZiAoY29uZmlnLT5leHBlY3Rfc2lnbmVkX2NlcnRfdGltZXN0YW1wcy5zaXplKCkgIT0gbGVuIHx8
CisgICAgICAgIE9QRU5TU0xfbWVtY21wKGNvbmZpZy0+ZXhwZWN0X3NpZ25lZF9jZXJ0X3RpbWVz
dGFtcHMuZGF0YSgpLCBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBsZW4pICE9IDApIHsK
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiU0NUIGxpc3QgbWlzbWF0Y2hcbiIpOwogICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMzg5LDYgKzM4OSwzOSBAQCBzdGF0aWMgYm9vbCBDaGVja0F1dGhQcm9w
ZXJ0aWVzKFNTTCAqc3NsLCBib29sIGlzX3Jlc3VtZSwKICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0
YXRpYyBjb25zdCBjaGFyICpFYXJseURhdGFSZWFzb25Ub1N0cmluZyhzc2xfZWFybHlfZGF0YV9y
ZWFzb25fdCByZWFzb24pIHsKKyAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIHNzbF9lYXJs
eV9kYXRhX3Vua25vd246CisgICAgICByZXR1cm4gInVua25vd24iOworICAgIGNhc2Ugc3NsX2Vh
cmx5X2RhdGFfZGlzYWJsZWQ6CisgICAgICByZXR1cm4gImRpc2FibGVkIjsKKyAgICBjYXNlIHNz
bF9lYXJseV9kYXRhX2FjY2VwdGVkOgorICAgICAgcmV0dXJuICJhY2NlcHRlZCI7CisgICAgY2Fz
ZSBzc2xfZWFybHlfZGF0YV9wcm90b2NvbF92ZXJzaW9uOgorICAgICAgcmV0dXJuICJwcm90b2Nv
bF92ZXJzaW9uIjsKKyAgICBjYXNlIHNzbF9lYXJseV9kYXRhX3BlZXJfZGVjbGluZWQ6CisgICAg
ICByZXR1cm4gInBlZXJfZGVjbGluZWQiOworICAgIGNhc2Ugc3NsX2Vhcmx5X2RhdGFfbm9fc2Vz
c2lvbl9vZmZlcmVkOgorICAgICAgcmV0dXJuICJub19zZXNzaW9uX29mZmVyZWQiOworICAgIGNh
c2Ugc3NsX2Vhcmx5X2RhdGFfc2Vzc2lvbl9ub3RfcmVzdW1lZDoKKyAgICAgIHJldHVybiAic2Vz
c2lvbl9ub3RfcmVzdW1lZCI7CisgICAgY2FzZSBzc2xfZWFybHlfZGF0YV91bnN1cHBvcnRlZF9m
b3Jfc2Vzc2lvbjoKKyAgICAgIHJldHVybiAidW5zdXBwb3J0ZWRfZm9yX3Nlc3Npb24iOworICAg
IGNhc2Ugc3NsX2Vhcmx5X2RhdGFfaGVsbG9fcmV0cnlfcmVxdWVzdDoKKyAgICAgIHJldHVybiAi
aGVsbG9fcmV0cnlfcmVxdWVzdCI7CisgICAgY2FzZSBzc2xfZWFybHlfZGF0YV9hbHBuX21pc21h
dGNoOgorICAgICAgcmV0dXJuICJhbHBuX21pc21hdGNoIjsKKyAgICBjYXNlIHNzbF9lYXJseV9k
YXRhX2NoYW5uZWxfaWQ6CisgICAgICByZXR1cm4gImNoYW5uZWxfaWQiOworICAgIGNhc2Ugc3Ns
X2Vhcmx5X2RhdGFfdG9rZW5fYmluZGluZzoKKyAgICAgIHJldHVybiAidG9rZW5fYmluZGluZyI7
CisgICAgY2FzZSBzc2xfZWFybHlfZGF0YV90aWNrZXRfYWdlX3NrZXc6CisgICAgICByZXR1cm4g
InRpY2tldF9hZ2Vfc2tldyI7CisgIH0KKworICBhYm9ydCgpOworfQorCiAvLyBDaGVja0hhbmRz
aGFrZVByb3BlcnRpZXMgY2hlY2tzLCBpbW1lZGlhdGVseSBhZnRlciB8c3NsfCBjb21wbGV0ZXMg
aXRzCiAvLyBpbml0aWFsIGhhbmRzaGFrZSAob3IgRmFsc2UgU3RhcnRzKSwgd2hldGhlciBhbGwg
dGhlIHByb3BlcnRpZXMgYXJlCiAvLyBjb25zaXN0ZW50IHdpdGggdGhlIHRlc3QgY29uZmlndXJh
dGlvbiBhbmQgaW52YXJpYW50cy4KQEAgLTQ1OSwyMyArNDkyLDIzIEBAIHN0YXRpYyBib29sIENo
ZWNrSGFuZHNoYWtlUHJvcGVydGllcyhTU0wgKnNzbCwgYm9vbCBpc19yZXN1bWUsCiAgICAgcmV0
dXJuIGZhbHNlOwogICB9CiAKLSAgaWYgKCFjb25maWctPmV4cGVjdGVkX3NlcnZlcl9uYW1lLmVt
cHR5KCkpIHsKKyAgaWYgKCFjb25maWctPmV4cGVjdF9zZXJ2ZXJfbmFtZS5lbXB0eSgpKSB7CiAg
ICAgY29uc3QgY2hhciAqc2VydmVyX25hbWUgPQogICAgICAgICBTU0xfZ2V0X3NlcnZlcm5hbWUo
c3NsLCBUTFNFWFRfTkFNRVRZUEVfaG9zdF9uYW1lKTsKICAgICBpZiAoc2VydmVyX25hbWUgPT0g
bnVsbHB0ciB8fAotICAgICAgICBzZXJ2ZXJfbmFtZSAhPSBjb25maWctPmV4cGVjdGVkX3NlcnZl
cl9uYW1lKSB7CisgICAgICAgIHNlcnZlcl9uYW1lICE9IGNvbmZpZy0+ZXhwZWN0X3NlcnZlcl9u
YW1lKSB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNlcnZlcm5hbWUgbWlzbWF0Y2ggKGdvdCAl
czsgd2FudCAlcylcbiIsCi0gICAgICAgICAgICAgIHNlcnZlcl9uYW1lLCBjb25maWctPmV4cGVj
dGVkX3NlcnZlcl9uYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZSwgY29u
ZmlnLT5leHBlY3Rfc2VydmVyX25hbWUuY19zdHIoKSk7CiAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICB9CiAKLSAgaWYgKCFjb25maWctPmV4cGVjdGVkX25leHRfcHJvdG8uZW1wdHkoKSkg
eworICBpZiAoIWNvbmZpZy0+ZXhwZWN0X25leHRfcHJvdG8uZW1wdHkoKSkgewogICAgIGNvbnN0
IHVpbnQ4X3QgKm5leHRfcHJvdG87CiAgICAgdW5zaWduZWQgbmV4dF9wcm90b19sZW47CiAgICAg
U1NMX2dldDBfbmV4dF9wcm90b19uZWdvdGlhdGVkKHNzbCwgJm5leHRfcHJvdG8sICZuZXh0X3By
b3RvX2xlbik7Ci0gICAgaWYgKG5leHRfcHJvdG9fbGVuICE9IGNvbmZpZy0+ZXhwZWN0ZWRfbmV4
dF9wcm90by5zaXplKCkgfHwKLSAgICAgICAgT1BFTlNTTF9tZW1jbXAobmV4dF9wcm90bywgY29u
ZmlnLT5leHBlY3RlZF9uZXh0X3Byb3RvLmRhdGEoKSwKKyAgICBpZiAobmV4dF9wcm90b19sZW4g
IT0gY29uZmlnLT5leHBlY3RfbmV4dF9wcm90by5zaXplKCkgfHwKKyAgICAgICAgT1BFTlNTTF9t
ZW1jbXAobmV4dF9wcm90bywgY29uZmlnLT5leHBlY3RfbmV4dF9wcm90by5kYXRhKCksCiAgICAg
ICAgICAgICAgICAgICAgICAgIG5leHRfcHJvdG9fbGVuKSAhPSAwKSB7CiAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIm5lZ290aWF0ZWQgbmV4dCBwcm90byBtaXNtYXRjaFxuIik7CiAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC00ODYsNDggKzUxOSw0OCBAQCBzdGF0aWMgYm9vbCBDaGVja0hhbmRzaGFr
ZVByb3BlcnRpZXMoU1NMICpzc2wsIGJvb2wgaXNfcmVzdW1lLAogICAgIGNvbnN0IHVpbnQ4X3Qg
KmFscG5fcHJvdG87CiAgICAgdW5zaWduZWQgYWxwbl9wcm90b19sZW47CiAgICAgU1NMX2dldDBf
YWxwbl9zZWxlY3RlZChzc2wsICZhbHBuX3Byb3RvLCAmYWxwbl9wcm90b19sZW4pOwotICAgIGlm
IChhbHBuX3Byb3RvX2xlbiAhPSBjb25maWctPmV4cGVjdGVkX2FscG4uc2l6ZSgpIHx8Ci0gICAg
ICAgIE9QRU5TU0xfbWVtY21wKGFscG5fcHJvdG8sIGNvbmZpZy0+ZXhwZWN0ZWRfYWxwbi5kYXRh
KCksCisgICAgaWYgKGFscG5fcHJvdG9fbGVuICE9IGNvbmZpZy0+ZXhwZWN0X2FscG4uc2l6ZSgp
IHx8CisgICAgICAgIE9QRU5TU0xfbWVtY21wKGFscG5fcHJvdG8sIGNvbmZpZy0+ZXhwZWN0X2Fs
cG4uZGF0YSgpLAogICAgICAgICAgICAgICAgICAgICAgICBhbHBuX3Byb3RvX2xlbikgIT0gMCkg
ewogICAgICAgZnByaW50ZihzdGRlcnIsICJuZWdvdGlhdGVkIGFscG4gcHJvdG8gbWlzbWF0Y2hc
biIpOwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgfQogCi0gIGlmICghY29uZmlnLT5l
eHBlY3RlZF9xdWljX3RyYW5zcG9ydF9wYXJhbXMuZW1wdHkoKSkgeworICBpZiAoIWNvbmZpZy0+
ZXhwZWN0X3F1aWNfdHJhbnNwb3J0X3BhcmFtcy5lbXB0eSgpKSB7CiAgICAgY29uc3QgdWludDhf
dCAqcGVlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHBlZXJfcGFyYW1zX2xlbjsKICAgICBTU0xfZ2V0
X3BlZXJfcXVpY190cmFuc3BvcnRfcGFyYW1zKHNzbCwgJnBlZXJfcGFyYW1zLCAmcGVlcl9wYXJh
bXNfbGVuKTsKLSAgICBpZiAocGVlcl9wYXJhbXNfbGVuICE9IGNvbmZpZy0+ZXhwZWN0ZWRfcXVp
Y190cmFuc3BvcnRfcGFyYW1zLnNpemUoKSB8fAorICAgIGlmIChwZWVyX3BhcmFtc19sZW4gIT0g
Y29uZmlnLT5leHBlY3RfcXVpY190cmFuc3BvcnRfcGFyYW1zLnNpemUoKSB8fAogICAgICAgICBP
UEVOU1NMX21lbWNtcChwZWVyX3BhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgY29uZmln
LT5leHBlY3RlZF9xdWljX3RyYW5zcG9ydF9wYXJhbXMuZGF0YSgpLAorICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWctPmV4cGVjdF9xdWljX3RyYW5zcG9ydF9wYXJhbXMuZGF0YSgpLAogICAg
ICAgICAgICAgICAgICAgICAgICBwZWVyX3BhcmFtc19sZW4pICE9IDApIHsKICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiUVVJQyB0cmFuc3BvcnQgcGFyYW1zIG1pc21hdGNoXG4iKTsKICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgIH0KIAotICBpZiAoIWNvbmZpZy0+ZXhwZWN0ZWRfY2hhbm5l
bF9pZC5lbXB0eSgpKSB7CisgIGlmICghY29uZmlnLT5leHBlY3RfY2hhbm5lbF9pZC5lbXB0eSgp
KSB7CiAgICAgdWludDhfdCBjaGFubmVsX2lkWzY0XTsKICAgICBpZiAoIVNTTF9nZXRfdGxzX2No
YW5uZWxfaWQoc3NsLCBjaGFubmVsX2lkLCBzaXplb2YoY2hhbm5lbF9pZCkpKSB7CiAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIm5vIGNoYW5uZWwgaWQgbmVnb3RpYXRlZFxuIik7CiAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChjb25maWctPmV4cGVjdGVkX2NoYW5uZWxfaWQuc2l6
ZSgpICE9IDY0IHx8Ci0gICAgICAgIE9QRU5TU0xfbWVtY21wKGNvbmZpZy0+ZXhwZWN0ZWRfY2hh
bm5lbF9pZC5kYXRhKCksIGNoYW5uZWxfaWQsIDY0KSAhPQorICAgIGlmIChjb25maWctPmV4cGVj
dF9jaGFubmVsX2lkLnNpemUoKSAhPSA2NCB8fAorICAgICAgICBPUEVOU1NMX21lbWNtcChjb25m
aWctPmV4cGVjdF9jaGFubmVsX2lkLmRhdGEoKSwgY2hhbm5lbF9pZCwgNjQpICE9CiAgICAgICAg
ICAgICAwKSB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNoYW5uZWwgaWQgbWlzbWF0Y2hcbiIp
OwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgfQogCi0gIGlmIChjb25maWctPmV4cGVj
dGVkX3Rva2VuX2JpbmRpbmdfcGFyYW0gIT0gLTEpIHsKKyAgaWYgKGNvbmZpZy0+ZXhwZWN0X3Rv
a2VuX2JpbmRpbmdfcGFyYW0gIT0gLTEpIHsKICAgICBpZiAoIVNTTF9pc190b2tlbl9iaW5kaW5n
X25lZ290aWF0ZWQoc3NsKSkgewogICAgICAgZnByaW50ZihzdGRlcnIsICJubyBUb2tlbiBCaW5k
aW5nIG5lZ290aWF0ZWRcbiIpOwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBpZiAo
U1NMX2dldF9uZWdvdGlhdGVkX3Rva2VuX2JpbmRpbmdfcGFyYW0oc3NsKSAhPQotICAgICAgICBz
dGF0aWNfY2FzdDx1aW50OF90Pihjb25maWctPmV4cGVjdGVkX3Rva2VuX2JpbmRpbmdfcGFyYW0p
KSB7CisgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGNvbmZpZy0+ZXhwZWN0X3Rva2VuX2Jp
bmRpbmdfcGFyYW0pKSB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlRva2VuIEJpbmRpbmcgcGFy
YW0gbWlzbWF0Y2hcbiIpOwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTU4Nyw3ICs2
MjAsOCBAQCBzdGF0aWMgYm9vbCBDaGVja0hhbmRzaGFrZVByb3BlcnRpZXMoU1NMICpzc2wsIGJv
b2wgaXNfcmVzdW1lLAogICAgIHJldHVybiBmYWxzZTsKICAgfQogCi0gIGlmIChpc19yZXN1bWUg
JiYgIVNTTF9pbl9lYXJseV9kYXRhKHNzbCkpIHsKKyAgLy8gVGhlIGVhcmx5IGRhdGEgc3RhdHVz
IGlzIG9ubHkgYXBwbGljYWJsZSBhZnRlciB0aGUgaGFuZHNoYWtlIGlzIGNvbmZpcm1lZC4KKyAg
aWYgKCFTU0xfaW5fZWFybHlfZGF0YShzc2wpKSB7CiAgICAgaWYgKChjb25maWctPmV4cGVjdF9h
Y2NlcHRfZWFybHlfZGF0YSAmJiAhU1NMX2Vhcmx5X2RhdGFfYWNjZXB0ZWQoc3NsKSkgfHwKICAg
ICAgICAgKGNvbmZpZy0+ZXhwZWN0X3JlamVjdF9lYXJseV9kYXRhICYmIFNTTF9lYXJseV9kYXRh
X2FjY2VwdGVkKHNzbCkpKSB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwKQEAgLTU5NSw2ICs2Mjks
MTUgQEAgc3RhdGljIGJvb2wgQ2hlY2tIYW5kc2hha2VQcm9wZXJ0aWVzKFNTTCAqc3NsLCBib29s
IGlzX3Jlc3VtZSwKICAgICAgICAgICAgICAgU1NMX2Vhcmx5X2RhdGFfYWNjZXB0ZWQoc3NsKSA/
ICIiIDogIiBub3QiKTsKICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisKKyAgICBjb25zdCBj
aGFyICplYXJseV9kYXRhX3JlYXNvbiA9CisgICAgICAgIEVhcmx5RGF0YVJlYXNvblRvU3RyaW5n
KFNTTF9nZXRfZWFybHlfZGF0YV9yZWFzb24oc3NsKSk7CisgICAgaWYgKCFjb25maWctPmV4cGVj
dF9lYXJseV9kYXRhX3JlYXNvbi5lbXB0eSgpICYmCisgICAgICAgIGNvbmZpZy0+ZXhwZWN0X2Vh
cmx5X2RhdGFfcmVhc29uICE9IGVhcmx5X2RhdGFfcmVhc29uKSB7CisgICAgICBmcHJpbnRmKHN0
ZGVyciwgIkVhcmx5IGRhdGEgcmVhc29uIHdhcyBcIiVzXCIsIGV4cGVjdGVkIFwiJXNcIlxuIiwK
KyAgICAgICAgICAgICAgZWFybHlfZGF0YV9yZWFzb24sIGNvbmZpZy0+ZXhwZWN0X2Vhcmx5X2Rh
dGFfcmVhc29uLmNfc3RyKCkpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgfQogCiAg
IGlmICghY29uZmlnLT5wc2suZW1wdHkoKSkgewpAQCAtNjIyLDYgKzY2NSwyMSBAQCBzdGF0aWMg
Ym9vbCBDaGVja0hhbmRzaGFrZVByb3BlcnRpZXMoU1NMICpzc2wsIGJvb2wgaXNfcmVzdW1lLAog
ICAgIHJldHVybiBmYWxzZTsKICAgfQogCisgIGlmIChjb25maWctPmV4cGVjdF9kZWxlZ2F0ZWRf
Y3JlZGVudGlhbF91c2VkICE9CisgICAgICAhIVNTTF9kZWxlZ2F0ZWRfY3JlZGVudGlhbF91c2Vk
KHNzbCkpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICJHb3QgJXMgZGVsZWdh
dGVkIGNyZWRlbnRpYWwgdXNhZ2UsIGJ1dCB3YW50ZWQgb3Bwb3NpdGUuIFxuIiwKKyAgICAgICAg
ICAgIFNTTF9kZWxlZ2F0ZWRfY3JlZGVudGlhbF91c2VkKHNzbCkgPyAiIiA6ICJubyIpOworICAg
IHJldHVybiBmYWxzZTsKKyAgfQorCisgIGlmIChjb25maWctPmV4cGVjdF9wcV9leHBlcmltZW50
X3NpZ25hbCAhPQorICAgICAgISFTU0xfcHFfZXhwZXJpbWVudF9zaWduYWxfc2Vlbihzc2wpKSB7
CisgICAgZnByaW50ZihzdGRlcnIsICJHb3QgJXNQUSBleHBlcmltZW50IHNpZ25hbCwgYnV0IHdh
bnRlZCBvcHBvc2l0ZS4gXG4iLAorICAgICAgICAgICAgU1NMX3BxX2V4cGVyaW1lbnRfc2lnbmFs
X3NlZW4oc3NsKSA/ICIiIDogIm5vICIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCiAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC02NDksNyArNzA3LDYgQEAgc3RhdGljIGJvb2wgRG9Db25uZWN0
aW9uKGJzc2w6OlVuaXF1ZVB0cjxTU0xfU0VTU0lPTj4gKm91dF9zZXNzaW9uLAogICAgIFNTTF9z
ZXRfY29ubmVjdF9zdGF0ZShzc2wuZ2V0KCkpOwogICB9CiAKLQogICBpbnQgc29jayA9IENvbm5l
Y3QoY29uZmlnLT5wb3J0KTsKICAgaWYgKHNvY2sgPT0gLTEpIHsKICAgICByZXR1cm4gZmFsc2U7
CkBAIC03MDIsNiArNzU5LDE2IEBAIHN0YXRpYyBib29sIERvQ29ubmVjdGlvbihic3NsOjpVbmlx
dWVQdHI8U1NMX1NFU1NJT04+ICpvdXRfc2Vzc2lvbiwKICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKKyAgICAvLyBDbGllbnQgcHJlLSBhbmQgcG9zdC0wLVJUVCByZWplY3Qgc3RhdGVzIGFy
ZSBjb25zaWRlcmVkIGxvZ2ljYWxseQorICAgIC8vIGRpZmZlcmVudCBjb25uZWN0aW9ucyB3aXRo
IGRpZmZlcmVudCB0ZXN0IGV4cGVjdGlvbnMuIENoZWNrIHRoYXQgdGhlIHRlc3QKKyAgICAvLyBk
aWQgbm90IG1pc3Rha2VubHkgY29uZmlndXJlIHJlYXNvbiBleHBlY3RhdGlvbnMgb24gdGhlIHdy
b25nIG9uZS4KKyAgICBpZiAoIWNvbmZpZy0+ZXhwZWN0X2Vhcmx5X2RhdGFfcmVhc29uLmVtcHR5
KCkpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAiVGVzdCBlcnJvcjog
Y2xpZW50IHJlamVjdCAtZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIGZsYWdzICIKKyAgICAgICAg
ICAgICAgInNob3VsZCBiZSBjb25maWd1cmVkIHdpdGggLW9uLXJldHJ5LCBub3QgLW9uLXJlc3Vt
ZS5cbiIpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIC8vIFJlc2V0IHRoZSBj
b25uZWN0aW9uIGFuZCB0cnkgYWdhaW4gYXQgMS1SVFQuCiAgICAgU1NMX3Jlc2V0X2Vhcmx5X2Rh
dGFfcmVqZWN0KHNzbC5nZXQoKSk7CiAgICAgR2V0VGVzdFN0YXRlKHNzbC5nZXQoKSktPmNlcnRf
dmVyaWZpZWQgPSBmYWxzZTsKQEAgLTgwNSwxNCArODcyLDE0IEBAIHN0YXRpYyBib29sIERvRXhj
aGFuZ2UoYnNzbDo6VW5pcXVlUHRyPFNTTF9TRVNTSU9OPiAqb3V0X3Nlc3Npb24sCiAgICAgR2V0
VGVzdFN0YXRlKHNzbCktPmdvdF9uZXdfc2Vzc2lvbiA9IGZhbHNlOwogICB9CiAKLSAgaWYgKGNv
bmZpZy0+ZXhwb3J0X2Vhcmx5X2tleWluZ19tYXRlcmlhbCA+IDApIHsKKyAgaWYgKGNvbmZpZy0+
ZXhwb3J0X2tleWluZ19tYXRlcmlhbCA+IDApIHsKICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBy
ZXN1bHQoCi0gICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oY29uZmlnLT5leHBvcnRfZWFybHlf
a2V5aW5nX21hdGVyaWFsKSk7Ci0gICAgaWYgKCFTU0xfZXhwb3J0X2Vhcmx5X2tleWluZ19tYXRl
cmlhbCgKKyAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb25maWctPmV4cG9ydF9rZXlpbmdf
bWF0ZXJpYWwpKTsKKyAgICBpZiAoIVNTTF9leHBvcnRfa2V5aW5nX21hdGVyaWFsKAogICAgICAg
ICAgICAgc3NsLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpLCBjb25maWctPmV4cG9ydF9s
YWJlbC5kYXRhKCksCiAgICAgICAgICAgICBjb25maWctPmV4cG9ydF9sYWJlbC5zaXplKCksCiAg
ICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oY29uZmlnLT5leHBv
cnRfY29udGV4dC5kYXRhKCkpLAotICAgICAgICAgICAgY29uZmlnLT5leHBvcnRfY29udGV4dC5z
aXplKCkpKSB7CisgICAgICAgICAgICBjb25maWctPmV4cG9ydF9jb250ZXh0LnNpemUoKSwgY29u
ZmlnLT51c2VfZXhwb3J0X2NvbnRleHQpKSB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxl
ZCB0byBleHBvcnQga2V5aW5nIG1hdGVyaWFsXG4iKTsKICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC04MjEsMTggKzg4OCwxOSBAQCBzdGF0aWMgYm9vbCBEb0V4Y2hhbmdlKGJzc2w6OlVu
aXF1ZVB0cjxTU0xfU0VTU0lPTj4gKm91dF9zZXNzaW9uLAogICAgIH0KICAgfQogCi0gIGlmIChj
b25maWctPmV4cG9ydF9rZXlpbmdfbWF0ZXJpYWwgPiAwKSB7Ci0gICAgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gcmVzdWx0KAotICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvbmZpZy0+ZXhwb3J0
X2tleWluZ19tYXRlcmlhbCkpOwotICAgIGlmICghU1NMX2V4cG9ydF9rZXlpbmdfbWF0ZXJpYWwo
Ci0gICAgICAgICAgICBzc2wsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCksIGNvbmZpZy0+
ZXhwb3J0X2xhYmVsLmRhdGEoKSwKLSAgICAgICAgICAgIGNvbmZpZy0+ZXhwb3J0X2xhYmVsLnNp
emUoKSwKLSAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihjb25m
aWctPmV4cG9ydF9jb250ZXh0LmRhdGEoKSksCi0gICAgICAgICAgICBjb25maWctPmV4cG9ydF9j
b250ZXh0LnNpemUoKSwgY29uZmlnLT51c2VfZXhwb3J0X2NvbnRleHQpKSB7Ci0gICAgICBmcHJp
bnRmKHN0ZGVyciwgImZhaWxlZCB0byBleHBvcnQga2V5aW5nIG1hdGVyaWFsXG4iKTsKKyAgaWYg
KGNvbmZpZy0+ZXhwb3J0X3RyYWZmaWNfc2VjcmV0cykgeworICAgIGJzc2w6OlNwYW48Y29uc3Qg
dWludDhfdD4gcmVhZF9zZWNyZXQsIHdyaXRlX3NlY3JldDsKKyAgICBpZiAoIVNTTF9nZXRfdHJh
ZmZpY19zZWNyZXRzKHNzbCwgJnJlYWRfc2VjcmV0LCAmd3JpdGVfc2VjcmV0KSkgeworICAgICAg
ZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gZXhwb3J0IHRyYWZmaWMgc2VjcmV0c1xuIik7CiAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGlmIChXcml0ZUFsbChzc2wsIHJlc3VsdC5k
YXRhKCksIHJlc3VsdC5zaXplKCkpIDwgMCkgeworCisgICAgYXNzZXJ0KHJlYWRfc2VjcmV0LnNp
emUoKSA8PSAweGZmZmYpOworICAgIGFzc2VydCh3cml0ZV9zZWNyZXQuc2l6ZSgpID09IHJlYWRf
c2VjcmV0LnNpemUoKSk7CisgICAgY29uc3QgdWludDE2X3Qgc2VjcmV0X2xlbiA9IHJlYWRfc2Vj
cmV0LnNpemUoKTsKKyAgICBpZiAoV3JpdGVBbGwoc3NsLCAmc2VjcmV0X2xlbiwgc2l6ZW9mKHNl
Y3JldF9sZW4pKSA8IDAgfHwKKyAgICAgICAgV3JpdGVBbGwoc3NsLCByZWFkX3NlY3JldC5kYXRh
KCksIHJlYWRfc2VjcmV0LnNpemUoKSkgPCAwIHx8CisgICAgICAgIFdyaXRlQWxsKHNzbCwgd3Jp
dGVfc2VjcmV0LmRhdGEoKSwgd3JpdGVfc2VjcmV0LnNpemUoKSkgPCAwKSB7CiAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICB9CkBAIC05NjUsNiArMTAzMywxMiBAQCBzdGF0aWMgYm9vbCBE
b0V4Y2hhbmdlKGJzc2w6OlVuaXF1ZVB0cjxTU0xfU0VTU0lPTj4gKm91dF9zZXNzaW9uLAogICAg
ICAgICAgIHBlbmRpbmdfaW5pdGlhbF93cml0ZSA9IGZhbHNlOwogICAgICAgICB9CiAKKyAgICAg
ICAgaWYgKGNvbmZpZy0+a2V5X3VwZGF0ZSAmJgorICAgICAgICAgICAgIVNTTF9rZXlfdXBkYXRl
KHNzbCwgU1NMX0tFWV9VUERBVEVfTk9UX1JFUVVFU1RFRCkpIHsKKyAgICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIlNTTF9rZXlfdXBkYXRlIGZhaWxlZC5cbiIpOworICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7
CiAgICAgICAgICAgYnVmW2ldIF49IDB4ZmY7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9z
c2wvdGVzdC9mdXp6ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9mdXp6ZXIuaAppbmRleCAxY2E5NzBkMDgx
N2RjNjg5YWYxZjI5MTllZjU0ZGI0ODg0NTU4MDlkLi5mNzE0ZDVkNzU4M2Q3OTlkMmU1ZDA1Y2Ni
ZTdkZmJiY2YyZDlkMGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvZnV6emVyLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3NzbC90ZXN0L2Z1enplci5oCkBAIC00MTQsNiArNDE0LDEzIEBAIGNsYXNzIFRMU0Z1enpl
ciB7CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgc3RhdGljIGNvbnN0IGludCBr
Q3VydmVzW10gPSB7TklEX0NFQ1BRMiwgTklEX1gyNTUxOSwgTklEX1g5XzYyX3ByaW1lMjU2djEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTklEX3NlY3AzODRyMSwgTklEX3Nl
Y3A1MjFyMX07CisgICAgaWYgKCFTU0xfQ1RYX3NldDFfY3VydmVzKGN0eF8uZ2V0KCksIGtDdXJ2
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5TU0xfQVJSQVlfU0laRShrQ3Vy
dmVzKSkpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBTU0xfQ1RYX3NldF9l
YXJseV9kYXRhX2VuYWJsZWQoY3R4Xy5nZXQoKSwgMSk7CiAKICAgICBTU0xfQ1RYX3NldF9uZXh0
X3Byb3RvX3NlbGVjdF9jYihjdHhfLmdldCgpLCBOUE5TZWxlY3RDYWxsYmFjaywgbnVsbHB0cik7
CkBAIC00ODksMTYgKzQ5Niw2IEBAIGNsYXNzIFRMU0Z1enplciB7CiAgICAgICAgICAgU1NMX3Nl
dF92ZXJpZnkoc3NsLmdldCgpLCBTU0xfVkVSSUZZX1BFRVIsIG51bGxwdHIpOwogICAgICAgICAg
IGJyZWFrOwogCi0gICAgICAgIGNhc2Uga1RMUzEzVmFyaWFudDogewotICAgICAgICAgIHVpbnQ4
X3QgdmFyaWFudDsKLSAgICAgICAgICBpZiAoIUNCU19nZXRfdTgoY2JzLCAmdmFyaWFudCkpIHsK
LSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgIH0KLSAgICAgICAgICBTU0xf
c2V0X3RsczEzX3ZhcmlhbnQoc3NsLmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDx0bHMxM192YXJpYW50X3Q+KHZhcmlhbnQpKTsKLSAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotCiAgICAgICAgIGNhc2Uga0hhbmRvZmZUYWc6IHsKICAgICAgICAg
ICBDQlMgaGFuZG9mZjsKICAgICAgICAgICBpZiAoIUNCU19nZXRfdTI0X2xlbmd0aF9wcmVmaXhl
ZChjYnMsICZoYW5kb2ZmKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L2Z1enplcl90YWdz
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvc3NsL3Rlc3QvZnV6emVyX3RhZ3MuaAppbmRleCBjMjFhY2EzOTcwMWZjYjhhYTZk
NGViZTcwODExZGE2MTRkZTJmZmZkLi5lYjk5OTFkMzA4ODg4MjhjMGExOTgyZjJhY2EzODkzZGJk
MDg2MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvZnV6emVyX3RhZ3MuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL3Rlc3QvZnV6emVyX3RhZ3MuaApAQCAtMzksMTMgKzM5LDEwIEBAIHN0YXRpYyBjb25zdCB1
aW50MTZfdCBrU2Vzc2lvblRhZyA9IDE7CiAvLyBjZXJ0aWZpY2F0ZXMuCiBzdGF0aWMgY29uc3Qg
dWludDE2X3Qga1JlcXVlc3RDbGllbnRDZXJ0ID0gMjsKIAotLy8ga1RMUzEzVmFyaWFudCBpcyBm
b2xsb3dlZCBieSBhIHU4IGRlbm90aW5nIHRoZSBUTFMgMS4zIHZhcmlhbnQgdG8gY29uZmlndXJl
Lgotc3RhdGljIGNvbnN0IHVpbnQxNl90IGtUTFMxM1ZhcmlhbnQgPSAzOwotCiAvLyBrSGFuZG9m
ZlRhZyBpcyBmb2xsb3dlZCBieSB0aGUgb3V0cHV0IG9mIHxTU0xfc2VyaWFsaXplX2hhbmRvZmZ8
Lgotc3RhdGljIGNvbnN0IHVpbnQxNl90IGtIYW5kb2ZmVGFnID0gNDsKK3N0YXRpYyBjb25zdCB1
aW50MTZfdCBrSGFuZG9mZlRhZyA9IDM7CiAKIC8vIGtIYW5kYmFja1RhZyBpcyBmb2xsb3dlZCBi
eSB0ZSBvdXRwdXQgb2YgfFNTTF9zZXJpYWxpemVfaGFuZGJhY2t8Lgotc3RhdGljIGNvbnN0IHVp
bnQxNl90IGtIYW5kYmFja1RhZyA9IDU7CitzdGF0aWMgY29uc3QgdWludDE2X3Qga0hhbmRiYWNr
VGFnID0gNDsKIAogI2VuZGlmICAvLyBIRUFERVJfU1NMX1RFU1RfRlVaWkVSX1RBR1MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9zc2wvdGVzdC9oYW5kc2hha2VfdXRpbC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9oYW5k
c2hha2VfdXRpbC5jYwppbmRleCBhMzZiNDFhOGFlNWMwOWI3ZDBjNDJmNjg0MDBlZGJhY2E0NmQ1
YzEwLi5hZmVhZDdmOGI3ZDFjOTg3Yzk2ZjkxZDVmYWI3ZDMyZWQyZGFhMTU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvc3NsL3Rlc3QvaGFuZHNoYWtlX3V0aWwuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L2hhbmRz
aGFrZV91dGlsLmNjCkBAIC00MTMsOCArNDEzLDkgQEAgc3RhdGljIGJvb2wgUHJlcGFyZUhhbmRv
ZmYoU1NMICpzc2wsIFNldHRpbmdzV3JpdGVyICp3cml0ZXIsCiAgIH0KIAogICBTY29wZWRDQkIg
Y2JiOworICBTU0xfQ0xJRU5UX0hFTExPIGhlbGxvOwogICBpZiAoIUNCQl9pbml0KGNiYi5nZXQo
KSwgNTEyKSB8fAotICAgICAgIVNTTF9zZXJpYWxpemVfaGFuZG9mZihzc2wsIGNiYi5nZXQoKSkg
fHwKKyAgICAgICFTU0xfc2VyaWFsaXplX2hhbmRvZmYoc3NsLCBjYmIuZ2V0KCksICZoZWxsbykg
fHwKICAgICAgICF3cml0ZXItPldyaXRlSGFuZG9mZih7Q0JCX2RhdGEoY2JiLmdldCgpKSwgQ0JC
X2xlbihjYmIuZ2V0KCkpfSkgfHwKICAgICAgICFTZXJpYWxpemVDb250ZXh0U3RhdGUoc3NsLT5j
dHguZ2V0KCksIGNiYi5nZXQoKSkgfHwKICAgICAgICFHZXRUZXN0U3RhdGUoc3NsKS0+U2VyaWFs
aXplKGNiYi5nZXQoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvY2lwaGVy
X3N1aXRlcy5nbyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvY2lwaGVyX3N1aXRlcy5nbwppbmRleCBm
NGM1OTAwNmI1OTE5OTQ4MjgwY2NiNjhkNmQ0YmQyNDRhYTRlODRkLi5lODI3YzUyNDYxNzQyZWRk
NDA0NjI5OTBkYzBiNzU0YjdkZDE1YTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVy
L2NpcGhlcl9zdWl0ZXMuZ28KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9jaXBoZXJfc3VpdGVz
LmdvCkBAIC0yNiwxNCArMjYsMTQgQEAgdHlwZSBrZXlBZ3JlZW1lbnQgaW50ZXJmYWNlIHsKIAkv
LyBJbiB0aGUgY2FzZSB0aGF0IHRoZSBrZXkgYWdyZWVtZW50IHByb3RvY29sIGRvZXNuJ3QgdXNl
IGEKIAkvLyBTZXJ2ZXJLZXlFeGNoYW5nZSBtZXNzYWdlLCBnZW5lcmF0ZVNlcnZlcktleUV4Y2hh
bmdlIGNhbiByZXR1cm4gbmlsLAogCS8vIG5pbC4KLQlnZW5lcmF0ZVNlcnZlcktleUV4Y2hhbmdl
KCpDb25maWcsICpDZXJ0aWZpY2F0ZSwgKmNsaWVudEhlbGxvTXNnLCAqc2VydmVySGVsbG9Nc2cp
ICgqc2VydmVyS2V5RXhjaGFuZ2VNc2csIGVycm9yKQorCWdlbmVyYXRlU2VydmVyS2V5RXhjaGFu
Z2UoKkNvbmZpZywgKkNlcnRpZmljYXRlLCAqY2xpZW50SGVsbG9Nc2csICpzZXJ2ZXJIZWxsb01z
ZywgdWludDE2KSAoKnNlcnZlcktleUV4Y2hhbmdlTXNnLCBlcnJvcikKIAlwcm9jZXNzQ2xpZW50
S2V5RXhjaGFuZ2UoKkNvbmZpZywgKkNlcnRpZmljYXRlLCAqY2xpZW50S2V5RXhjaGFuZ2VNc2cs
IHVpbnQxNikgKFtdYnl0ZSwgZXJyb3IpCiAKIAkvLyBPbiB0aGUgY2xpZW50IHNpZGUsIHRoZSBu
ZXh0IHR3byBtZXRob2RzIGFyZSBjYWxsZWQgaW4gb3JkZXIuCiAKIAkvLyBUaGlzIG1ldGhvZCBt
YXkgbm90IGJlIGNhbGxlZCBpZiB0aGUgc2VydmVyIGRvZXNuJ3Qgc2VuZCBhCiAJLy8gU2VydmVy
S2V5RXhjaGFuZ2UgbWVzc2FnZS4KLQlwcm9jZXNzU2VydmVyS2V5RXhjaGFuZ2UoKkNvbmZpZywg
KmNsaWVudEhlbGxvTXNnLCAqc2VydmVySGVsbG9Nc2csICp4NTA5LkNlcnRpZmljYXRlLCAqc2Vy
dmVyS2V5RXhjaGFuZ2VNc2cpIGVycm9yCisJcHJvY2Vzc1NlcnZlcktleUV4Y2hhbmdlKCpDb25m
aWcsICpjbGllbnRIZWxsb01zZywgKnNlcnZlckhlbGxvTXNnLCBjcnlwdG8uUHVibGljS2V5LCAq
c2VydmVyS2V5RXhjaGFuZ2VNc2cpIGVycm9yCiAJZ2VuZXJhdGVDbGllbnRLZXlFeGNoYW5nZSgq
Q29uZmlnLCAqY2xpZW50SGVsbG9Nc2csICp4NTA5LkNlcnRpZmljYXRlKSAoW11ieXRlLCAqY2xp
ZW50S2V5RXhjaGFuZ2VNc2csIGVycm9yKQogCiAJLy8gcGVlclNpZ25hdHVyZUFsZ29yaXRobSBy
ZXR1cm5zIHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIHVzZWQgYnkgdGhlCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvc3NsL3Rlc3QvcnVubmVyL2NvbW1vbi5nbyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvY29tbW9u
LmdvCmluZGV4IDczYjg4ODllOTUzZjU4NGRlN2Y0ZDY0YmZkY2ViZmMyMmI2NDRmMDMuLmQxY2Y3
NTdkZDViODViMDE3NWE4OThjODRlZmU1MzFiMGY4YTliN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wv
dGVzdC9ydW5uZXIvY29tbW9uLmdvCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvY29tbW9uLmdv
CkBAIC0zMiwyMyArMzIsOCBAQCBjb25zdCAoCiAJVmVyc2lvbkRUTFMxMiA9IDB4ZmVmZAogKQog
Ci0vLyBBIGRyYWZ0IHZlcnNpb24gb2YgVExTIDEuMyB0aGF0IGlzIHNlbnQgb3ZlciB0aGUgd2ly
ZSBmb3IgdGhlIGN1cnJlbnQgZHJhZnQuCi1jb25zdCAoCi0JdGxzMTNEcmFmdDIzVmVyc2lvbiA9
IDB4N2YxNwotCXRsczEzRHJhZnQyOFZlcnNpb24gPSAweDdmMWMKLSkKLQotY29uc3QgKAotCVRM
UzEzUkZDICAgICA9IDAKLQlUTFMxM0RyYWZ0MjMgPSAxCi0JVExTMTNEcmFmdDI4ID0gMgotCVRM
UzEzQWxsICAgICA9IDMKLSkKLQogdmFyIGFsbFRMU1dpcmVWZXJzaW9ucyA9IFtddWludDE2ewog
CVZlcnNpb25UTFMxMywKLQl0bHMxM0RyYWZ0MjhWZXJzaW9uLAotCXRsczEzRHJhZnQyM1ZlcnNp
b24sCiAJVmVyc2lvblRMUzEyLAogCVZlcnNpb25UTFMxMSwKIAlWZXJzaW9uVExTMTAsCkBAIC0x
NDAsNiArMTI1LDggQEAgY29uc3QgKAogCWV4dGVuc2lvblJlbmVnb3RpYXRpb25JbmZvICAgICAg
ICAgIHVpbnQxNiA9IDB4ZmYwMQogCWV4dGVuc2lvblFVSUNUcmFuc3BvcnRQYXJhbXMgICAgICAg
IHVpbnQxNiA9IDB4ZmZhNSAvLyBkcmFmdC1pZXRmLXF1aWMtdGxzLTEzCiAJZXh0ZW5zaW9uQ2hh
bm5lbElEICAgICAgICAgICAgICAgICAgdWludDE2ID0gMzAwMzIgIC8vIG5vdCBJQU5BIGFzc2ln
bmVkCisJZXh0ZW5zaW9uRGVsZWdhdGVkQ3JlZGVudGlhbHMgICAgICAgdWludDE2ID0gMHhmZjAy
IC8vIG5vdCBJQU5BIGFzc2lnbmVkCisJZXh0ZW5zaW9uUFFFeHBlcmltZW50U2lnbmFsICAgICAg
ICAgdWludDE2ID0gNTQ1MzgKICkKIAogLy8gVExTIHNpZ25hbGluZyBjaXBoZXIgc3VpdGUgdmFs
dWVzCkBAIC0xNTgsMTEgKzE0NSwxMyBAQCB2YXIgdGxzMTNIZWxsb1JldHJ5UmVxdWVzdCA9IFtd
dWludDh7CiB0eXBlIEN1cnZlSUQgdWludDE2CiAKIGNvbnN0ICgKLQlDdXJ2ZVAyMjQgICBDdXJ2
ZUlEID0gMjEKLQlDdXJ2ZVAyNTYgICBDdXJ2ZUlEID0gMjMKLQlDdXJ2ZVAzODQgICBDdXJ2ZUlE
ID0gMjQKLQlDdXJ2ZVA1MjEgICBDdXJ2ZUlEID0gMjUKLQlDdXJ2ZVgyNTUxOSBDdXJ2ZUlEID0g
MjkKKwlDdXJ2ZVAyMjQgICAgQ3VydmVJRCA9IDIxCisJQ3VydmVQMjU2ICAgIEN1cnZlSUQgPSAy
MworCUN1cnZlUDM4NCAgICBDdXJ2ZUlEID0gMjQKKwlDdXJ2ZVA1MjEgICAgQ3VydmVJRCA9IDI1
CisJQ3VydmVYMjU1MTkgIEN1cnZlSUQgPSAyOQorCUN1cnZlQ0VDUFEyICBDdXJ2ZUlEID0gMTY2
OTYKKwlDdXJ2ZUNFQ1BRMmIgQ3VydmVJRCA9IDY1MDc0CiApCiAKIC8vIFRMUyBFbGxpcHRpYyBD
dXJ2ZSBQb2ludCBGb3JtYXRzCkBAIC00NDYsOSArNDM1LDYgQEAgdHlwZSBDb25maWcgc3RydWN0
IHsKIAkvLyB3aGljaCBpcyBjdXJyZW50bHkgVExTIDEuMi4KIAlNYXhWZXJzaW9uIHVpbnQxNgog
Ci0JLy8gVExTMTNWYXJpYW50IGlzIHRoZSB2YXJpYW50IG9mIFRMUyAxLjMgdG8gdXNlLgotCVRM
UzEzVmFyaWFudCBpbnQKLQogCS8vIEN1cnZlUHJlZmVyZW5jZXMgY29udGFpbnMgdGhlIGVsbGlw
dGljIGN1cnZlcyB0aGF0IHdpbGwgYmUgdXNlZCBpbgogCS8vIGFuIEVDREhFIGhhbmRzaGFrZSwg
aW4gcHJlZmVyZW5jZSBvcmRlci4gSWYgZW1wdHksIHRoZSBkZWZhdWx0IHdpbGwKIAkvLyBiZSB1
c2VkLgpAQCAtNTE1LDYgKzUwMSwxMSBAQCB0eXBlIENvbmZpZyBzdHJ1Y3QgewogCiAJQ2VydENv
bXByZXNzaW9uQWxncyBtYXBbdWludDE2XUNlcnRDb21wcmVzc2lvbkFsZwogCisJLy8gUFFFeHBl
cmltZW50U2lnbmFsIGluc3RydWN0cyBhIGNsaWVudCB0byBzZW5kIGEgbm9uLUlBTkEgZGVmaW5l
ZCBleHRlbnNpb24KKwkvLyB0aGF0IHNpZ25hbHMgcGFydGljaXBhdGlvbiBpbiBhbiBleHBlcmlt
ZW50IG9mIHBvc3QtcXVhbnR1bSBrZXkgZXhjaGFuZ2UKKwkvLyBtZXRob2RzLgorCVBRRXhwZXJp
bWVudFNpZ25hbCBib29sCisKIAkvLyBCdWdzIHNwZWNpZmllcyBvcHRpb25hbCBtaXNiZWhhdmlv
dXIgdG8gYmUgdXNlZCBmb3IgdGVzdGluZyBvdGhlcgogCS8vIGltcGxlbWVudGF0aW9ucy4KIAlC
dWdzIFByb3RvY29sQnVncwpAQCAtMTMzNSwyMSArMTMyNiw2IEBAIHR5cGUgUHJvdG9jb2xCdWdz
IHN0cnVjdCB7CiAJLy8gaXQgd2FzIGFjY2VwdGVkLgogCVNlbmRFYXJseURhdGFFeHRlbnNpb24g
Ym9vbAogCi0JLy8gRXhwZWN0RWFybHlLZXlpbmdNYXRlcmlhbCwgaWYgbm9uLXplcm8sIGNhdXNl
cyBhIFRMUyAxLjMgc2VydmVyIHRvCi0JLy8gcmVhZCBhbiBhcHBsaWNhdGlvbiBkYXRhIHJlY29y
ZCBhZnRlciB0aGUgQ2xpZW50SGVsbG8gYmVmb3JlIGl0IHNlbmRzCi0JLy8gYSBTZXJ2ZXJIZWxs
by4gVGhlIHJlY29yZCdzIGNvbnRlbnRzIGhhdmUgdGhlIHNwZWNpZmllZCBsZW5ndGggYW5kCi0J
Ly8gbWF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgZWFybHkgZXhwb3J0ZXIgdmFsdWUuIFRoaXMgaXMg
dXNlZCB0byB0ZXN0Ci0JLy8gdGhlIGNsaWVudCB1c2luZyB0aGUgZWFybHkgZXhwb3J0ZXIgaW4g
dGhlIDAtUlRUIHN0YXRlLgotCUV4cGVjdEVhcmx5S2V5aW5nTWF0ZXJpYWwgaW50Ci0KLQkvLyBF
eHBlY3RFYXJseUtleWluZ0xhYmVsIGlzIHRoZSBsYWJlbCB0byB1c2Ugd2l0aAotCS8vIEV4cGVj
dEVhcmx5S2V5aW5nTWF0ZXJpYWwuCi0JRXhwZWN0RWFybHlLZXlpbmdMYWJlbCBzdHJpbmcKLQot
CS8vIEV4cGVjdEVhcmx5S2V5aW5nQ29udGV4dCBpcyB0aGUgY29udGV4dCBzdHJpbmcgdG8gdXNl
IHdpdGgKLQkvLyBFeHBlY3RFYXJseUtleWluZ01hdGVyaWFsCi0JRXhwZWN0RWFybHlLZXlpbmdD
b250ZXh0IHN0cmluZwotCiAJLy8gRXhwZWN0RWFybHlEYXRhIGNhdXNlcyBhIFRMUyAxLjMgc2Vy
dmVyIHRvIHJlYWQgYXBwbGljYXRpb24KIAkvLyBkYXRhIGFmdGVyIHRoZSBDbGllbnRIZWxsbyAo
YXNzdW1pbmcgdGhlIHNlcnZlciBpcyBhYmxlIHRvCiAJLy8gZGVyaXZlIHRoZSBrZXkgdW5kZXIg
d2hpY2ggdGhlIGRhdGEgaXMgZW5jcnlwdGVkKSBiZWZvcmUgaXQKQEAgLTE0ODMsNiArMTQ1OSwx
NCBAQCB0eXBlIFByb3RvY29sQnVncyBzdHJ1Y3QgewogCS8vIHJlamVjdGVkLiBTZWUgZHJhZnQt
ZGF2aWRiZW4tdGxzLWdyZWFzZS0wMS4KIAlFeHBlY3RHUkVBU0UgYm9vbAogCisJLy8gT21pdFBT
S3NPblNlY29uZENsaWVudEhlbGxvLCBpZiB0cnVlLCBjYXVzZXMgdGhlIGNsaWVudCB0byBvbWl0
IHRoZQorCS8vIFBTSyBleHRlbnNpb24gb24gdGhlIHNlY29uZCBDbGllbnRIZWxsby4KKwlPbWl0
UFNLc09uU2Vjb25kQ2xpZW50SGVsbG8gYm9vbAorCisJLy8gT25seUNvcnJ1cHRTZWNvbmRQU0tC
aW5kZXIsIGlmIHRydWUsIGNhdXNlcyB0aGUgb3B0aW9ucyBiZWxvdyB0bworCS8vIG9ubHkgYXBw
bHkgdG8gdGhlIHNlY29uZCBQU0sgYmluZGVyLgorCU9ubHlDb3JydXB0U2Vjb25kUFNLQmluZGVy
IGJvb2wKKwogCS8vIFNlbmRTaG9ydFBTS0JpbmRlciwgaWYgdHJ1ZSwgY2F1c2VzIHRoZSBjbGll
bnQgdG8gc2VuZCBhIFBTSyBiaW5kZXIKIAkvLyB0aGF0IGlzIG9uZSBieXRlIHNob3J0ZXIgdGhh
biBpdCBzaG91bGQgYmUuCiAJU2VuZFNob3J0UFNLQmluZGVyIGJvb2wKQEAgLTE1MzAsMTAgKzE1
MTQsNiBAQCB0eXBlIFByb3RvY29sQnVncyBzdHJ1Y3QgewogCS8vIHNwZWNpZmllZCBudW1iZXIg
b2YgcGxhaW50ZXh0IGJ5dGVzIHBlciByZWNvcmQuCiAJRXhwZWN0UGFja2VkRW5jcnlwdGVkSGFu
ZHNoYWtlIGludAogCi0JLy8gRm9yYmlkSGFuZHNoYWtlUGFja2luZywgaWYgdHJ1ZSwgcmVxdWly
ZXMgdGhlIHBlZXIgcGxhY2UgYSByZWNvcmQKLQkvLyBib3VuZGFyeSBhZnRlciBldmVyeSBoYW5k
c2hha2UgbWVzc2FnZS4KLQlGb3JiaWRIYW5kc2hha2VQYWNraW5nIGJvb2wKLQogCS8vIFNlbmRU
aWNrZXRMaWZldGltZSwgaWYgbm9uLXplcm8sIGlzIHRoZSB0aWNrZXQgbGlmZXRpbWUgdG8gc2Vu
ZCBpbgogCS8vIE5ld1Nlc3Npb25UaWNrZXQgbWVzc2FnZXMuCiAJU2VuZFRpY2tldExpZmV0aW1l
IHRpbWUuRHVyYXRpb24KQEAgLTE2NDUsNiArMTYyNSwzNCBAQCB0eXBlIFByb3RvY29sQnVncyBz
dHJ1Y3QgewogCS8vIEV4cGVjdEpESzExRG93bmdyYWRlUmFuZG9tIGlzIHdoZXRoZXIgdGhlIGNs
aWVudCBzaG91bGQgZXhwZWN0IHRoZQogCS8vIHNlcnZlciB0byBzZW5kIHRoZSBKREsgMTEgZG93
bmdyYWRlIHNpZ25hbC4KIAlFeHBlY3RKREsxMURvd25ncmFkZVJhbmRvbSBib29sCisKKwkvLyBG
YWlsSWZIZWxsb1JldHJ5UmVxdWVzdGVkIGNhdXNlcyBhIGhhbmRzaGFrZSBmYWlsdXJlIGlmIGEg
c2VydmVyIHJlcXVlc3RzIGEKKwkvLyBoZWxsbyByZXRyeS4KKwlGYWlsSWZIZWxsb1JldHJ5UmVx
dWVzdGVkIGJvb2wKKworCS8vIEZhaWxlZElmQ0VDUFEyT2ZmZXJlZCB3aWxsIGNhdXNlIGEgc2Vy
dmVyIHRvIHJlamVjdCBhIENsaWVudEhlbGxvIGlmIENFQ1BRMgorCS8vIGlzIHN1cHBvcnRlZC4K
KwlGYWlsSWZDRUNQUTJPZmZlcmVkIGJvb2wKKworCS8vIEV4cGVjdEtleVNoYXJlcywgaWYgbm90
IG5pbCwgbGlzdHMgKGluIG9yZGVyKSB0aGUgY3VydmVzIHRoYXQgYSBDbGllbnRIZWxsbworCS8v
IHNob3VsZCBoYXZlIGtleSBzaGFyZXMgZm9yLgorCUV4cGVjdGVkS2V5U2hhcmVzIFtdQ3VydmVJ
RAorCisJLy8gRXhwZWN0RGVsZWdhdGVkQ3JlZGVudGlhbHMsIGlmIHRydWUsIHJlcXVpcmVzIHRo
YXQgdGhlIGhhbmRzaGFrZSBwcmVzZW50CisJLy8gZGVsZWdhdGVkIGNyZWRlbnRpYWxzLgorCUV4
cGVjdERlbGVnYXRlZENyZWRlbnRpYWxzIGJvb2wKKworCS8vIEZhaWxJZkRlbGVnYXRlZENyZWRl
bnRpYWxzLCBpZiB0cnVlLCBjYXVzZXMgYSBoYW5kc2hha2UgZmFpbHVyZSBpZiB0aGUKKwkvLyBz
ZXJ2ZXIgcmV0dXJucyBkZWxlZ2F0ZWQgY3JlZGVudGlhbHMuCisJRmFpbElmRGVsZWdhdGVkQ3Jl
ZGVudGlhbHMgYm9vbAorCisJLy8gRGlzYWJsZURlbGVnYXRlZENyZWRlbnRpYWxzLCBpZiB0cnVl
LCBkaXNhYmxlcyBjbGllbnQgc3VwcG9ydCBmb3IgZGVsZWdhdGVkCisJLy8gY3JlZGVudGlhbHMu
CisJRGlzYWJsZURlbGVnYXRlZENyZWRlbnRpYWxzIGJvb2wKKworCS8vIEV4cGVjdFBRRXhwZXJp
bWVudFNpZ25hbCBzcGVjaWZpZXMgd2hldGhlciBvciBub3QgdGhlIHBvc3QtcXVhbnR1bQorCS8v
IGV4cGVyaW1lbnQgc2lnbmFsIHNob3VsZCBiZSByZWNlaXZlZCBieSBhIGNsaWVudCBvciBzZXJ2
ZXIuCisJRXhwZWN0UFFFeHBlcmltZW50U2lnbmFsIGJvb2wKIH0KIAogZnVuYyAoYyAqQ29uZmln
KSBzZXJ2ZXJJbml0KCkgewpAQCAtMTcyNCw3ICsxNzMyLDcgQEAgZnVuYyAoYyAqQ29uZmlnKSBt
YXhWZXJzaW9uKGlzRFRMUyBib29sKSB1aW50MTYgewogCXJldHVybiByZXQKIH0KIAotdmFyIGRl
ZmF1bHRDdXJ2ZVByZWZlcmVuY2VzID0gW11DdXJ2ZUlEe0N1cnZlWDI1NTE5LCBDdXJ2ZVAyNTYs
IEN1cnZlUDM4NCwgQ3VydmVQNTIxfQordmFyIGRlZmF1bHRDdXJ2ZVByZWZlcmVuY2VzID0gW11D
dXJ2ZUlEe0N1cnZlQ0VDUFEyYiwgQ3VydmVDRUNQUTIsIEN1cnZlWDI1NTE5LCBDdXJ2ZVAyNTYs
IEN1cnZlUDM4NCwgQ3VydmVQNTIxfQogCiBmdW5jIChjICpDb25maWcpIGN1cnZlUHJlZmVyZW5j
ZXMoKSBbXUN1cnZlSUQgewogCWlmIGMgPT0gbmlsIHx8IGxlbihjLkN1cnZlUHJlZmVyZW5jZXMp
ID09IDAgewpAQCAtMTc1NywxOCArMTc2NSwxMiBAQCBmdW5jIHdpcmVUb1ZlcnNpb24odmVycyB1
aW50MTYsIGlzRFRMUyBib29sKSAodWludDE2LCBib29sKSB7CiAJCXN3aXRjaCB2ZXJzIHsKIAkJ
Y2FzZSBWZXJzaW9uU1NMMzAsIFZlcnNpb25UTFMxMCwgVmVyc2lvblRMUzExLCBWZXJzaW9uVExT
MTIsIFZlcnNpb25UTFMxMzoKIAkJCXJldHVybiB2ZXJzLCB0cnVlCi0JCWNhc2UgdGxzMTNEcmFm
dDIzVmVyc2lvbiwgdGxzMTNEcmFmdDI4VmVyc2lvbjoKLQkJCXJldHVybiBWZXJzaW9uVExTMTMs
IHRydWUKIAkJfQogCX0KIAogCXJldHVybiAwLCBmYWxzZQogfQogCi1mdW5jIGlzRHJhZnQyOCh2
ZXJzIHVpbnQxNikgYm9vbCB7Ci0JcmV0dXJuIHZlcnMgPT0gdGxzMTNEcmFmdDI4VmVyc2lvbiB8
fCB2ZXJzID09IFZlcnNpb25UTFMxMwotfQotCiAvLyBpc1N1cHBvcnRlZFZlcnNpb24gY2hlY2tz
IGlmIHRoZSBzcGVjaWZpZWQgd2lyZSB2ZXJzaW9uIGlzIGFjY2VwdGFibGUuIElmIHNvLAogLy8g
aXQgcmV0dXJucyB0cnVlIGFuZCB0aGUgY29ycmVzcG9uZGluZyBwcm90b2NvbCB2ZXJzaW9uLiBP
dGhlcndpc2UsIGl0IHJldHVybnMKIC8vIGZhbHNlLgpAQCAtMTc3NywyNiArMTc3OSw2IEBAIGZ1
bmMgKGMgKkNvbmZpZykgaXNTdXBwb3J0ZWRWZXJzaW9uKHdpcmVWZXJzIHVpbnQxNiwgaXNEVExT
IGJvb2wpICh1aW50MTYsIGJvb2wpCiAJaWYgIW9rIHx8IGMubWluVmVyc2lvbihpc0RUTFMpID4g
dmVycyB8fCB2ZXJzID4gYy5tYXhWZXJzaW9uKGlzRFRMUykgewogCQlyZXR1cm4gMCwgZmFsc2UK
IAl9Ci0JaWYgdmVycyA9PSBWZXJzaW9uVExTMTMgewotCQlzd2l0Y2ggYy5UTFMxM1ZhcmlhbnQg
ewotCQljYXNlIFRMUzEzRHJhZnQyMzoKLQkJCWlmIHdpcmVWZXJzICE9IHRsczEzRHJhZnQyM1Zl
cnNpb24gewotCQkJCXJldHVybiAwLCBmYWxzZQotCQkJfQotCQljYXNlIFRMUzEzRHJhZnQyODoK
LQkJCWlmIHdpcmVWZXJzICE9IHRsczEzRHJhZnQyOFZlcnNpb24gewotCQkJCXJldHVybiAwLCBm
YWxzZQotCQkJfQotCQljYXNlIFRMUzEzUkZDOgotCQkJaWYgd2lyZVZlcnMgIT0gVmVyc2lvblRM
UzEzIHsKLQkJCQlyZXR1cm4gMCwgZmFsc2UKLQkJCX0KLQkJY2FzZSBUTFMxM0FsbDoKLQkJCS8v
IEFsbG93IGFsbCBvZiB0aGVtLgotCQlkZWZhdWx0OgotCQkJcGFuaWMoYy5UTFMxM1ZhcmlhbnQp
Ci0JCX0KLQl9CiAJcmV0dXJuIHZlcnMsIHRydWUKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90
ZXN0L3J1bm5lci9jb25uLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9jb25uLmdvCmluZGV4IGI2
YjZmZmEwMDAzMTJlMTdhYTg2MDJjNGFkM2QxMDFhOTFkNGMzNjkuLjhhM2VkNWQxNWNhNWY3MjI4
ZjE5NmZkYzg3OTZmNTcyZjNmN2NmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIv
Y29ubi5nbworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL2Nvbm4uZ28KQEAgLTEwNiw2ICsxMDYs
NyBAQCB0eXBlIENvbm4gc3RydWN0IHsKIAlwZW5kaW5nRnJhZ21lbnRzIFtdW11ieXRlIC8vIHBl
bmRpbmcgb3V0Z29pbmcgaGFuZHNoYWtlIGZyYWdtZW50cy4KIAlwZW5kaW5nUGFja2V0ICAgIFtd
Ynl0ZSAgIC8vIHBlbmRpbmcgb3V0Z29pbmcgcGFja2V0LgogCisJa2V5VXBkYXRlU2VlbiAgICAg
IGJvb2wKIAlrZXlVcGRhdGVSZXF1ZXN0ZWQgYm9vbAogCXNlZW5PbmVCeXRlUmVjb3JkICBib29s
CiAKQEAgLTQ1Myw3ICs0NTQsNyBAQCBmdW5jIChoYyAqaGFsZkNvbm4pIGRlY3J5cHQoYiAqYmxv
Y2spIChvayBib29sLCBwcmVmaXhMZW4gaW50LCBjb250ZW50VHlwZSByZWNvcgogCQkJCW4gOj0g
bGVuKHBheWxvYWQpIC0gYy5PdmVyaGVhZCgpCiAJCQkJYWRkaXRpb25hbERhdGFbMTFdID0gYnl0
ZShuID4+IDgpCiAJCQkJYWRkaXRpb25hbERhdGFbMTJdID0gYnl0ZShuKQotCQkJfSBlbHNlIGlm
IGlzRHJhZnQyOChoYy53aXJlVmVyc2lvbikgeworCQkJfSBlbHNlIHsKIAkJCQlhZGRpdGlvbmFs
RGF0YSA9IGIuZGF0YVs6cmVjb3JkSGVhZGVyTGVuXQogCQkJfQogCQkJdmFyIGVyciBlcnJvcgpA
QCAtNjE5LDcgKzYyMCw3IEBAIGZ1bmMgKGhjICpoYWxmQ29ubikgZW5jcnlwdChiICpibG9jaywg
ZXhwbGljaXRJVkxlbiBpbnQsIHR5cCByZWNvcmRUeXBlKSAoYm9vbCwKIAkJCQljb3B5KGFkZGl0
aW9uYWxEYXRhWzg6XSwgYi5kYXRhWzozXSkKIAkJCQlhZGRpdGlvbmFsRGF0YVsxMV0gPSBieXRl
KHBheWxvYWRMZW4gPj4gOCkKIAkJCQlhZGRpdGlvbmFsRGF0YVsxMl0gPSBieXRlKHBheWxvYWRM
ZW4pCi0JCQl9IGVsc2UgaWYgaXNEcmFmdDI4KGhjLndpcmVWZXJzaW9uKSB7CisJCQl9IGVsc2Ug
ewogCQkJCWFkZGl0aW9uYWxEYXRhID0gbWFrZShbXWJ5dGUsIDUpCiAJCQkJY29weShhZGRpdGlv
bmFsRGF0YSwgYi5kYXRhWzozXSkKIAkJCQluIDo9IGxlbihiLmRhdGEpIC0gcmVjb3JkSGVhZGVy
TGVuCkBAIC0xMzIxLDkgKzEzMjIsNiBAQCBmdW5jIChjICpDb25uKSBkb1JlYWRIYW5kc2hha2Uo
KSAoW11ieXRlLCBlcnJvcikgewogCQkJcmV0dXJuIG5pbCwgZXJyCiAJCX0KIAl9Ci0JaWYgYy5o
YW5kLkxlbigpID4gNCtuICYmIGMuY29uZmlnLkJ1Z3MuRm9yYmlkSGFuZHNoYWtlUGFja2luZyB7
Ci0JCXJldHVybiBuaWwsIGVycm9ycy5OZXcoInRsczogZm9yYmlkZGVuIHRyYWlsaW5nIGRhdGEg
YWZ0ZXIgYSBoYW5kc2hha2UgbWVzc2FnZSIpCi0JfQogCXJldHVybiBjLmhhbmQuTmV4dCg0ICsg
biksIG5pbAogfQogCkBAIC0xNjM1LDYgKzE2MzMsOCBAQCBmdW5jIChjICpDb25uKSBoYW5kbGVQ
b3N0SGFuZHNoYWtlTWVzc2FnZSgpIGVycm9yIHsKIAl9CiAKIAlpZiBrZXlVcGRhdGUsIG9rIDo9
IG1zZy4oKmtleVVwZGF0ZU1zZyk7IG9rIHsKKwkJYy5rZXlVcGRhdGVTZWVuID0gdHJ1ZQorCiAJ
CWlmIGMuY29uZmlnLkJ1Z3MuUmVqZWN0VW5zb2xpY2l0ZWRLZXlVcGRhdGUgewogCQkJcmV0dXJu
IGVycm9ycy5OZXcoInRsczogdW5leHBlY3RlZCBLZXlVcGRhdGUgbWVzc2FnZSIpCiAJCX0KQEAg
LTE2NjUsNyArMTY2NSw3IEBAIGZ1bmMgKGMgKkNvbm4pIFJlYWRLZXlVcGRhdGVBQ0soKSBlcnJv
ciB7CiAJa2V5VXBkYXRlLCBvayA6PSBtc2cuKCprZXlVcGRhdGVNc2cpCiAJaWYgIW9rIHsKIAkJ
Yy5zZW5kQWxlcnQoYWxlcnRVbmV4cGVjdGVkTWVzc2FnZSkKLQkJcmV0dXJuIGVycm9ycy5OZXco
InRsczogdW5leHBlY3RlZCBtZXNzYWdlIHdoZW4gcmVhZGluZyBLZXlVcGRhdGUiKQorCQlyZXR1
cm4gZm10LkVycm9yZigidGxzOiB1bmV4cGVjdGVkIG1lc3NhZ2UgKCVUKSB3aGVuIHJlYWRpbmcg
S2V5VXBkYXRlIiwgbXNnKQogCX0KIAogCWlmIGtleVVwZGF0ZS5rZXlVcGRhdGVSZXF1ZXN0ICE9
IGtleVVwZGF0ZU5vdFJlcXVlc3RlZCB7CkBAIC0xNzA4LDEzICsxNzA4LDEyIEBAIGZ1bmMgKGMg
KkNvbm4pIFJlYWQoYiBbXWJ5dGUpIChuIGludCwgZXJyIGVycm9yKSB7CiAJCQkJLy8gU29mdCBl
cnJvciwgbGlrZSBFQUdBSU4KIAkJCQlyZXR1cm4gMCwgZXJyCiAJCQl9Ci0JCQlpZiBjLmhhbmQu
TGVuKCkgPiAwIHsKKwkJCWZvciBjLmhhbmQuTGVuKCkgPiAwIHsKIAkJCQkvLyBXZSByZWNlaXZl
ZCBoYW5kc2hha2UgYnl0ZXMsIGluZGljYXRpbmcgYQogCQkJCS8vIHBvc3QtaGFuZHNoYWtlIG1l
c3NhZ2UuCiAJCQkJaWYgZXJyIDo9IGMuaGFuZGxlUG9zdEhhbmRzaGFrZU1lc3NhZ2UoKTsgZXJy
ICE9IG5pbCB7CiAJCQkJCXJldHVybiAwLCBlcnIKIAkJCQl9Ci0JCQkJY29udGludWUKIAkJCX0K
IAkJfQogCQlpZiBlcnIgOj0gYy5pbi5lcnI7IGVyciAhPSBuaWwgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3NzbC90ZXN0L3J1bm5lci9lY2RzYV9wMjI0X2tleS5wZW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVy
L2VjZHNhX3AyMjRfa2V5LnBlbQppbmRleCBjZmU0MTFiNDU1MjA0MTEzNGJlMzdmM2I0M2MxNGEy
ODRiMzFhYzljLi5kNjI1OTRiYjlhNzhiODlhNzk1MjVmOTQ2YWRjYThmNjFiNWY3MzZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL2VjZHNhX3AyMjRfa2V5LnBlbQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL3Rlc3QvcnVubmVyL2VjZHNhX3AyMjRfa2V5LnBlbQpAQCAtMSw1ICsxLDUgQEAKLS0tLS0t
QkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUdnQ0FRRUVIR2krck5MaStnSEpxbVJSdGRsTEJP
dzFXWXY3SC9WbmxZR0FaMCtnQndZRks0RUVBQ0doUEFNNgotQUFUcDI2WHAwdlQ0TEtpZ1dJb3Jo
WDRSZzFnOXN4bWd0UEZGeU5HQ3ZEZDF2cERNRUMrSU5MRW9BTk5XN0pHWgotcFVMdmd4L3B1Z0Vj
T1E9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQorLS0tLS1CRUdJTiBQUklWQVRFIEtF
WS0tLS0tCitNSGdDQVFBd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNFRVlUQmZBZ0VCQkJ4b3ZxelM0
dm9CeWFwa1ViWFpTd1RzCitOVm1MK3gvMVo1V0JnR2RQb1R3RE9nQUU2ZHVsNmRMMCtDeW9vRmlL
SzRWK0VZTllQYk1ab0xUeFJjalJncnczCitkYjZRekJBdmlEU3hLQURUVnV5Um1hVkM3NE1mNmJv
QkhEaz0KKy0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVz
dC9ydW5uZXIvZnV6emVyX21vZGUuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvZnV6emVyX21v
ZGUuanNvbgppbmRleCAxYTE1NGMyY2QxYjljNGUyZTQ1MTg3MWYyZjBjOWVmMDQ5N2Q5OWNiLi4w
YTUwNzIyNzU5MmI5ZTdhNzhmNTg4NDdjYjdmYWVlOTM3YTZiNTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL3Rlc3QvcnVubmVyL2Z1enplcl9tb2RlLmpzb24KKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5l
ci9mdXp6ZXJfbW9kZS5qc29uCkBAIC0xOCw5ICsxOCw2IEBACiAKICAgICAiQmFkRUNEU0EtKiI6
ICJGdXp6ZXIgbW9kZSBhbHdheXMgYWNjZXB0cyBhIHNpZ25hdHVyZS4iLAogICAgICIqLUludmFs
aWRTaWduYXR1cmUtKiI6ICJGdXp6ZXIgbW9kZSBhbHdheXMgYWNjZXB0cyBhIHNpZ25hdHVyZS4i
LAotICAgICIqQXV0aC1WZXJpZnktUlNBLVBLQ1MxLSotVExTMTMqIjogIkZ1enplciBtb2RlIGFs
d2F5cyBhY2NlcHRzIGEgc2lnbmF0dXJlLiIsCi0gICAgIipBdXRoLVZlcmlmeS1FQ0RTQS1TSEEx
LVRMUzEzKiI6ICJGdXp6ZXIgbW9kZSBhbHdheXMgYWNjZXB0cyBhIHNpZ25hdHVyZS4iLAotICAg
ICIqQXV0aC1WZXJpZnktRUNEU0EtUDIyNC0qLVRMUzEzKiI6ICJGdXp6ZXIgbW9kZSBhbHdheXMg
YWNjZXB0cyBhIHNpZ25hdHVyZS4iLAogICAgICJWZXJpZnktKkF1dGgtU2lnbmF0dXJlVHlwZSoi
OiAiRnV6emVyIG1vZGUgYWx3YXlzIGFjY2VwdHMgYSBzaWduYXR1cmUuIiwKICAgICAiRUNEU0FD
dXJ2ZU1pc21hdGNoLVZlcmlmeS1UTFMxMyoiOiAiRnV6emVyIG1vZGUgYWx3YXlzIGFjY2VwdHMg
YSBzaWduYXR1cmUuIiwKICAgICAiSW52YWxpZENoYW5uZWxJRFNpZ25hdHVyZS0qIjogIkZ1enpl
ciBtb2RlIGFsd2F5cyBhY2NlcHRzIGEgc2lnbmF0dXJlLiIsCkBAIC0zMCw2ICsyNyw3IEBACiAg
ICAgIlJlc3VtZS1TZXJ2ZXItRGVjbGluZUNyb3NzVmVyc2lvbioiOiAiRnV6emVyIG1vZGUgZG9l
cyBub3QgZW5jcnlwdCB0aWNrZXRzLiIsCiAgICAgIlRpY2tldENhbGxiYWNrLVNpbmdsZUNhbGwt
KiI6ICJGdXp6ZXIgbW9kZSBkb2VzIG5vdCBlbmNyeXB0IHRpY2tldHMuIiwKICAgICAiQ29ycnVw
dFRpY2tldC0qIjogIkZ1enplciBtb2RlIGRvZXMgbm90IGVuY3J5cHQgdGlja2V0cy4iLAorICAg
ICIqUmVqZWN0VGlja2V0LVNlcnZlci0qIjogIkZ1enplciBtb2RlIGRvZXMgbm90IGVuY3J5cHQg
dGlja2V0cy4iLAogICAgICJTaGltVGlja2V0UmV3cml0YWJsZSoiOiAiRnV6emVyIG1vZGUgZG9l
cyBub3QgZW5jcnlwdCB0aWNrZXRzLiIsCiAKICAgICAiUmVzdW1lLVNlcnZlci0qQmluZGVyKiI6
ICJGdXp6ZXIgbW9kZSBkb2VzIG5vdCBjaGVjayBiaW5kZXJzLiIsCkBAIC00Niw2ICs0NCw3IEBA
CiAgICAgIiotRWFybHlEYXRhLVJlamVjdFVuZmluaXNoZWRXcml0ZS1DbGllbnQtKiI6ICJUcmlh
bCBkZWNyeXB0aW9uIGRvZXMgbm90IHdvcmsgd2l0aCB0aGUgTlVMTCBjaXBoZXIuIiwKICAgICAi
RWFybHlEYXRhLVJlamVjdCotQ2xpZW50LSoiOiAiVHJpYWwgZGVjcnlwdGlvbiBkb2VzIG5vdCB3
b3JrIHdpdGggdGhlIE5VTEwgY2lwaGVyLiIsCiAgICAgIkN1c3RvbUV4dGVuc2lvbnMtU2VydmVy
LUVhcmx5RGF0YU9mZmVyZWQiOiAiVHJpYWwgZGVjcnlwdGlvbiBkb2VzIG5vdCB3b3JrIHdpdGgg
dGhlIE5VTEwgY2lwaGVyLiIsCisgICAgIiotVGlja2V0QWdlU2tldy0qLVJlamVjdCI6ICJUcmlh
bCBkZWNyeXB0aW9uIGRvZXMgbm90IHdvcmsgd2l0aCB0aGUgTlVMTCBjaXBoZXIuIiwKIAogICAg
ICJSZW5lZ290aWF0ZS1DbGllbnQtQmFkRXh0KiI6ICJGdXp6ZXIgbW9kZSBkb2VzIG5vdCBjaGVj
ayByZW5lZ290aWF0aW9uX2luZm8uIiwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5l
ci9oYW5kc2hha2VfY2xpZW50LmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9oYW5kc2hha2VfY2xp
ZW50LmdvCmluZGV4IGFiMWY0ZGQyNjhhOTUwZTJjMDU0NDExYTllNzg2OGUxOGIyMTUzZDIuLmFh
MThmZjMyNWZhMTE3N2EzNjY1MThkZTBlNTYwZWFhYWU0MmJiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9z
c2wvdGVzdC9ydW5uZXIvaGFuZHNoYWtlX2NsaWVudC5nbworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVu
bmVyL2hhbmRzaGFrZV9jbGllbnQuZ28KQEAgLTMyLDYgKzMyLDggQEAgdHlwZSBjbGllbnRIYW5k
c2hha2VTdGF0ZSBzdHJ1Y3QgewogCW1hc3RlclNlY3JldCAgW11ieXRlCiAJc2Vzc2lvbiAgICAg
ICAqQ2xpZW50U2Vzc2lvblN0YXRlCiAJZmluaXNoZWRCeXRlcyBbXWJ5dGUKKwlwZWVyUHVibGlj
S2V5IGNyeXB0by5QdWJsaWNLZXkKKwlza3hBbGdvICAgICAgIHNpZ25hdHVyZUFsZ29yaXRobQog
fQogCiBmdW5jIG1hcENsaWVudEhlbGxvVmVyc2lvbih2ZXJzIHVpbnQxNiwgaXNEVExTIGJvb2wp
IHVpbnQxNiB7CkBAIC0xMjMsOSArMTI1LDExIEBAIGZ1bmMgKGMgKkNvbm4pIGNsaWVudEhhbmRz
aGFrZSgpIGVycm9yIHsKIAkJc3J0cFByb3RlY3Rpb25Qcm9maWxlczogIGMuY29uZmlnLlNSVFBQ
cm90ZWN0aW9uUHJvZmlsZXMsCiAJCXNydHBNYXN0ZXJLZXlJZGVudGlmaWVyOiBjLmNvbmZpZy5C
dWdzLlNSVFBNYXN0ZXJLZXlJZGVudGlmZXIsCiAJCWN1c3RvbUV4dGVuc2lvbjogICAgICAgICBj
LmNvbmZpZy5CdWdzLkN1c3RvbUV4dGVuc2lvbiwKLQkJcHNrQmluZGVyRmlyc3Q6ICAgICAgICAg
IGMuY29uZmlnLkJ1Z3MuUFNLQmluZGVyRmlyc3QsCisJCXBza0JpbmRlckZpcnN0OiAgICAgICAg
ICBjLmNvbmZpZy5CdWdzLlBTS0JpbmRlckZpcnN0ICYmICFjLmNvbmZpZy5CdWdzLk9ubHlDb3Jy
dXB0U2Vjb25kUFNLQmluZGVyLAogCQlvbWl0RXh0ZW5zaW9uczogICAgICAgICAgYy5jb25maWcu
QnVncy5PbWl0RXh0ZW5zaW9ucywKIAkJZW1wdHlFeHRlbnNpb25zOiAgICAgICAgIGMuY29uZmln
LkJ1Z3MuRW1wdHlFeHRlbnNpb25zLAorCQlkZWxlZ2F0ZWRDcmVkZW50aWFsczogICAgIWMuY29u
ZmlnLkJ1Z3MuRGlzYWJsZURlbGVnYXRlZENyZWRlbnRpYWxzLAorCQlwcUV4cGVyaW1lbnRTaWdu
YWw6ICAgICAgYy5jb25maWcuUFFFeHBlcmltZW50U2lnbmFsLAogCX0KIAogCWlmIG1heFZlcnNp
b24gPj0gVmVyc2lvblRMUzEzIHsKQEAgLTQyNCwxMCArNDI4LDkgQEAgTmV4dENpcGhlclN1aXRl
OgogCQlpZiBsZW4oaGVsbG8ucHNrSWRlbnRpdGllcykgPiAwIHsKIAkJCXZlcnNpb24gOj0gc2Vz
c2lvbi53aXJlVmVyc2lvbgogCQkJLy8gV2UgbWF5IGhhdmUgYSBwcmUtMS4zIHNlc3Npb24gaWYg
U2VuZEJvdGhUaWNrZXRzIGlzCi0JCQkvLyBzZXQuIEZpbGwgaW4gYW4gYXJiaXRyYXJ5IFRMUyAx
LjMgdmVyc2lvbiB0byBjb21wdXRlCi0JCQkvLyB0aGUgYmluZGVyLgorCQkJLy8gc2V0LgogCQkJ
aWYgc2Vzc2lvbi52ZXJzIDwgVmVyc2lvblRMUzEzIHsKLQkJCQl2ZXJzaW9uID0gdGxzMTNEcmFm
dDIzVmVyc2lvbgorCQkJCXZlcnNpb24gPSBWZXJzaW9uVExTMTMKIAkJCX0KIAkJCWdlbmVyYXRl
UFNLQmluZGVycyh2ZXJzaW9uLCBoZWxsbywgcHNrQ2lwaGVyU3VpdGUsIHNlc3Npb24ubWFzdGVy
U2VjcmV0LCBbXWJ5dGV7fSwgW11ieXRle30sIGMuY29uZmlnKQogCQl9CkBAIC01NDksNiArNTUy
LDkgQEAgTmV4dENpcGhlclN1aXRlOgogCWhlbGxvUmV0cnlSZXF1ZXN0LCBoYXZlSGVsbG9SZXRy
eVJlcXVlc3QgOj0gbXNnLigqaGVsbG9SZXRyeVJlcXVlc3RNc2cpCiAJdmFyIHNlY29uZEhlbGxv
Qnl0ZXMgW11ieXRlCiAJaWYgaGF2ZUhlbGxvUmV0cnlSZXF1ZXN0IHsKKwkJaWYgYy5jb25maWcu
QnVncy5GYWlsSWZIZWxsb1JldHJ5UmVxdWVzdGVkIHsKKwkJCXJldHVybiBlcnJvcnMuTmV3KCJ0
bHM6IHVuZXhwZWN0ZWQgSGVsbG9SZXRyeVJlcXVlc3QiKQorCQl9CiAJCS8vIEV4cGxpY2l0bHkg
cmVhZCB0aGUgQ2hhbmdlQ2lwaGVyU3BlYyBub3c7IGl0IHNob3VsZAogCQkvLyBiZSBhdHRhY2hl
ZCB0byB0aGUgZmlyc3QgZmxpZ2h0LCBub3QgdGhlIHNlY29uZCBmbGlnaHQuCiAJCWlmIGVyciA6
PSBjLnJlYWRUTFMxM0NoYW5nZUNpcGhlclNwZWMoKTsgZXJyICE9IG5pbCB7CkBAIC01OTcsNiAr
NjAzLDEyIEBAIE5leHRDaXBoZXJTdWl0ZToKIAkJfQogCiAJCWhlbGxvLmhhc0Vhcmx5RGF0YSA9
IGMuY29uZmlnLkJ1Z3MuU2VuZEVhcmx5RGF0YU9uU2Vjb25kQ2xpZW50SGVsbG8KKwkJLy8gVGhl
IGZpcnN0IENsaWVudEhlbGxvIG1heSBoYXZlIHNraXBwZWQgdGhpcyBkdWUgdG8gT25seUNvcnJ1
cHRTZWNvbmRQU0tCaW5kZXIuCisJCWhlbGxvLnBza0JpbmRlckZpcnN0ID0gYy5jb25maWcuQnVn
cy5QU0tCaW5kZXJGaXJzdAorCQlpZiBjLmNvbmZpZy5CdWdzLk9taXRQU0tzT25TZWNvbmRDbGll
bnRIZWxsbyB7CisJCQloZWxsby5wc2tJZGVudGl0aWVzID0gbmlsCisJCQloZWxsby5wc2tCaW5k
ZXJzID0gbmlsCisJCX0KIAkJaGVsbG8ucmF3ID0gbmlsCiAKIAkJaWYgbGVuKGhlbGxvLnBza0lk
ZW50aXRpZXMpID4gMCB7CkBAIC05NzYsNyArOTg4LDYgQEAgZnVuYyAoaHMgKmNsaWVudEhhbmRz
aGFrZVN0YXRlKSBkb1RMUzEzSGFuZHNoYWtlKCkgZXJyb3IgewogCQlpZiBlcnIgOj0gaHMudmVy
aWZ5Q2VydGlmaWNhdGVzKGNlcnRNc2cpOyBlcnIgIT0gbmlsIHsKIAkJCXJldHVybiBlcnIKIAkJ
fQotCQlsZWFmIDo9IGMucGVlckNlcnRpZmljYXRlc1swXQogCQljLm9jc3BSZXNwb25zZSA9IGNl
cnRNc2cuY2VydGlmaWNhdGVzWzBdLm9jc3BSZXNwb25zZQogCQljLnNjdExpc3QgPSBjZXJ0TXNn
LmNlcnRpZmljYXRlc1swXS5zY3RMaXN0CiAKQEAgLTk5Miw3ICsxMDAzLDcgQEAgZnVuYyAoaHMg
KmNsaWVudEhhbmRzaGFrZVN0YXRlKSBkb1RMUzEzSGFuZHNoYWtlKCkgZXJyb3IgewogCiAJCWMu
cGVlclNpZ25hdHVyZUFsZ29yaXRobSA9IGNlcnRWZXJpZnlNc2cuc2lnbmF0dXJlQWxnb3JpdGht
CiAJCWlucHV0IDo9IGhzLmZpbmlzaGVkSGFzaC5jZXJ0aWZpY2F0ZVZlcmlmeUlucHV0KHNlcnZl
ckNlcnRpZmljYXRlVmVyaWZ5Q29udGV4dFRMUzEzKQotCQllcnIgPSB2ZXJpZnlNZXNzYWdlKGMu
dmVycywgZ2V0Q2VydGlmaWNhdGVQdWJsaWNLZXkobGVhZiksIGMuY29uZmlnLCBjZXJ0VmVyaWZ5
TXNnLnNpZ25hdHVyZUFsZ29yaXRobSwgaW5wdXQsIGNlcnRWZXJpZnlNc2cuc2lnbmF0dXJlKQor
CQllcnIgPSB2ZXJpZnlNZXNzYWdlKGMudmVycywgaHMucGVlclB1YmxpY0tleSwgYy5jb25maWcs
IGNlcnRWZXJpZnlNc2cuc2lnbmF0dXJlQWxnb3JpdGhtLCBpbnB1dCwgY2VydFZlcmlmeU1zZy5z
aWduYXR1cmUpCiAJCWlmIGVyciAhPSBuaWwgewogCQkJcmV0dXJuIGVycgogCQl9CkBAIC0xMjMx
LDcgKzEyNDIsNyBAQCBmdW5jIChocyAqY2xpZW50SGFuZHNoYWtlU3RhdGUpIGRvRnVsbEhhbmRz
aGFrZSgpIGVycm9yIHsKIAlza3gsIG9rIDo9IG1zZy4oKnNlcnZlcktleUV4Y2hhbmdlTXNnKQog
CWlmIG9rIHsKIAkJaHMud3JpdGVTZXJ2ZXJIYXNoKHNreC5tYXJzaGFsKCkpCi0JCWVyciA9IGtl
eUFncmVlbWVudC5wcm9jZXNzU2VydmVyS2V5RXhjaGFuZ2UoYy5jb25maWcsIGhzLmhlbGxvLCBo
cy5zZXJ2ZXJIZWxsbywgbGVhZiwgc2t4KQorCQllcnIgPSBrZXlBZ3JlZW1lbnQucHJvY2Vzc1Nl
cnZlcktleUV4Y2hhbmdlKGMuY29uZmlnLCBocy5oZWxsbywgaHMuc2VydmVySGVsbG8sIGhzLnBl
ZXJQdWJsaWNLZXksIHNreCkKIAkJaWYgZXJyICE9IG5pbCB7CiAJCQljLnNlbmRBbGVydChhbGVy
dFVuZXhwZWN0ZWRNZXNzYWdlKQogCQkJcmV0dXJuIGVycgpAQCAtMTM3NSw2ICsxMzg2LDIzIEBA
IGZ1bmMgKGhzICpjbGllbnRIYW5kc2hha2VTdGF0ZSkgZG9GdWxsSGFuZHNoYWtlKCkgZXJyb3Ig
ewogCXJldHVybiBuaWwKIH0KIAorLy8gZGVsZWdhdGVkQ3JlZGVudGlhbFNpZ25lZE1lc3NhZ2Ug
cmV0dXJucyB0aGUgYnl0ZXMgdGhhdCBhcmUgc2lnbmVkIGluIG9yZGVyCisvLyB0byBhdXRoZW50
aWNhdGUgYSBkZWxlZ2F0ZWQgY3JlZGVudGlhbC4KK2Z1bmMgZGVsZWdhdGVkQ3JlZGVudGlhbFNp
Z25lZE1lc3NhZ2UoY3JlZEJ5dGVzIFtdYnl0ZSwgYWxnb3JpdGhtIHNpZ25hdHVyZUFsZ29yaXRo
bSwgbGVhZkRFUiBbXWJ5dGUpIFtdYnl0ZSB7CisJLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9o
dG1sL2RyYWZ0LWlldGYtdGxzLXN1YmNlcnRzLTAzI3NlY3Rpb24tMworCXJldCA6PSBtYWtlKFtd
Ynl0ZSwgNjQsIDEyOCkKKwlmb3IgaSA6PSByYW5nZSByZXQgeworCQlyZXRbaV0gPSAweDIwCisJ
fQorCisJcmV0ID0gYXBwZW5kKHJldCwgW11ieXRlKCJUTFMsIHNlcnZlciBkZWxlZ2F0ZWQgY3Jl
ZGVudGlhbHNceDAwIikuLi4pCisJcmV0ID0gYXBwZW5kKHJldCwgbGVhZkRFUi4uLikKKwlyZXQg
PSBhcHBlbmQocmV0LCBieXRlKGFsZ29yaXRobT4+OCksIGJ5dGUoYWxnb3JpdGhtKSkKKwlyZXQg
PSBhcHBlbmQocmV0LCBjcmVkQnl0ZXMuLi4pCisKKwlyZXR1cm4gcmV0Cit9CisKIGZ1bmMgKGhz
ICpjbGllbnRIYW5kc2hha2VTdGF0ZSkgdmVyaWZ5Q2VydGlmaWNhdGVzKGNlcnRNc2cgKmNlcnRp
ZmljYXRlTXNnKSBlcnJvciB7CiAJYyA6PSBocy5jCiAKQEAgLTEzODMsNiArMTQxMSw3IEBAIGZ1
bmMgKGhzICpjbGllbnRIYW5kc2hha2VTdGF0ZSkgdmVyaWZ5Q2VydGlmaWNhdGVzKGNlcnRNc2cg
KmNlcnRpZmljYXRlTXNnKSBlcnJvCiAJCXJldHVybiBlcnJvcnMuTmV3KCJ0bHM6IG5vIGNlcnRp
ZmljYXRlcyBzZW50IikKIAl9CiAKKwl2YXIgZGMgKmRlbGVnYXRlZENyZWRlbnRpYWwKIAljZXJ0
cyA6PSBtYWtlKFtdKng1MDkuQ2VydGlmaWNhdGUsIGxlbihjZXJ0TXNnLmNlcnRpZmljYXRlcykp
CiAJZm9yIGksIGNlcnRFbnRyeSA6PSByYW5nZSBjZXJ0TXNnLmNlcnRpZmljYXRlcyB7CiAJCWNl
cnQsIGVyciA6PSB4NTA5LlBhcnNlQ2VydGlmaWNhdGUoY2VydEVudHJ5LmRhdGEpCkBAIC0xMzkx
LDYgKzE0MjAsMjIgQEAgZnVuYyAoaHMgKmNsaWVudEhhbmRzaGFrZVN0YXRlKSB2ZXJpZnlDZXJ0
aWZpY2F0ZXMoY2VydE1zZyAqY2VydGlmaWNhdGVNc2cpIGVycm8KIAkJCXJldHVybiBlcnJvcnMu
TmV3KCJ0bHM6IGZhaWxlZCB0byBwYXJzZSBjZXJ0aWZpY2F0ZSBmcm9tIHNlcnZlcjogIiArIGVy
ci5FcnJvcigpKQogCQl9CiAJCWNlcnRzW2ldID0gY2VydAorCisJCWlmIGNlcnRFbnRyeS5kZWxl
Z2F0ZWRDcmVkZW50aWFsICE9IG5pbCB7CisJCQlpZiBjLmNvbmZpZy5CdWdzLkZhaWxJZkRlbGVn
YXRlZENyZWRlbnRpYWxzIHsKKwkJCQljLnNlbmRBbGVydChhbGVydElsbGVnYWxQYXJhbWV0ZXIp
CisJCQkJcmV0dXJuIGVycm9ycy5OZXcoInRsczogdW5leHBlY3RlZCBkZWxlZ2F0ZWQgY3JlZGVu
dGlhbCIpCisJCQl9CisJCQlpZiBpICE9IDAgeworCQkJCWMuc2VuZEFsZXJ0KGFsZXJ0SWxsZWdh
bFBhcmFtZXRlcikKKwkJCQlyZXR1cm4gZXJyb3JzLk5ldygidGxzOiBub24tbGVhZiBjZXJ0aWZp
Y2F0ZSBoYXMgYSBkZWxlZ2F0ZWQgY3JlZGVudGlhbCIpCisJCQl9CisJCQlpZiBjLmNvbmZpZy5C
dWdzLkRpc2FibGVEZWxlZ2F0ZWRDcmVkZW50aWFscyB7CisJCQkJYy5zZW5kQWxlcnQoYWxlcnRJ
bGxlZ2FsUGFyYW1ldGVyKQorCQkJCXJldHVybiBlcnJvcnMuTmV3KCJ0bHM6IHNlcnZlciBzZW50
IGRlbGVnYXRlZCBjcmVkZW50aWFsIHdpdGhvdXQgaXQgYmVpbmcgcmVxdWVzdGVkIikKKwkJCX0K
KwkJCWRjID0gY2VydEVudHJ5LmRlbGVnYXRlZENyZWRlbnRpYWwKKwkJfQogCX0KIAogCWlmICFj
LmNvbmZpZy5JbnNlY3VyZVNraXBWZXJpZnkgewpAQCAtMTQxNSwxNiArMTQ2MCw0NSBAQCBmdW5j
IChocyAqY2xpZW50SGFuZHNoYWtlU3RhdGUpIHZlcmlmeUNlcnRpZmljYXRlcyhjZXJ0TXNnICpj
ZXJ0aWZpY2F0ZU1zZykgZXJybwogCQl9CiAJfQogCi0JcHVibGljS2V5IDo9IGdldENlcnRpZmlj
YXRlUHVibGljS2V5KGNlcnRzWzBdKQotCXN3aXRjaCBwdWJsaWNLZXkuKHR5cGUpIHsKKwlsZWFm
UHVibGljS2V5IDo9IGdldENlcnRpZmljYXRlUHVibGljS2V5KGNlcnRzWzBdKQorCXN3aXRjaCBs
ZWFmUHVibGljS2V5Lih0eXBlKSB7CiAJY2FzZSAqcnNhLlB1YmxpY0tleSwgKmVjZHNhLlB1Ymxp
Y0tleSwgZWQyNTUxOS5QdWJsaWNLZXk6CiAJCWJyZWFrCiAJZGVmYXVsdDoKIAkJYy5zZW5kQWxl
cnQoYWxlcnRVbnN1cHBvcnRlZENlcnRpZmljYXRlKQotCQlyZXR1cm4gZm10LkVycm9yZigidGxz
OiBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBjb250YWlucyBhbiB1bnN1cHBvcnRlZCB0eXBlIG9mIHB1
YmxpYyBrZXk6ICVUIiwgcHVibGljS2V5KQorCQlyZXR1cm4gZm10LkVycm9yZigidGxzOiBzZXJ2
ZXIncyBjZXJ0aWZpY2F0ZSBjb250YWlucyBhbiB1bnN1cHBvcnRlZCB0eXBlIG9mIHB1YmxpYyBr
ZXk6ICVUIiwgbGVhZlB1YmxpY0tleSkKIAl9CiAKIAljLnBlZXJDZXJ0aWZpY2F0ZXMgPSBjZXJ0
cworCisJaWYgZGMgIT0gbmlsIHsKKwkJLy8gTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBjaGVjayBh
KSB0aGUgZGVsZWdhdGVkIGNyZWRlbnRpYWwgdGVtcG9yYWwKKwkJLy8gdmFsaWRpdHkgbm9yIGIp
IHRoYXQgdGhlIGNlcnRpZmljYXRlIGhhcyB0aGUgc3BlY2lhbCBPSUQgYXNzZXJ0ZWQuCisJCWhz
LnNreEFsZ28gPSBkYy5leHBlY3RlZENlcnRWZXJpZnlBbGdvCisKKwkJdmFyIGVyciBlcnJvcgor
CQlpZiBocy5wZWVyUHVibGljS2V5LCBlcnIgPSB4NTA5LlBhcnNlUEtJWFB1YmxpY0tleShkYy5w
a2l4UHVibGljS2V5KTsgZXJyICE9IG5pbCB7CisJCQljLnNlbmRBbGVydChhbGVydEJhZENlcnRp
ZmljYXRlKQorCQkJcmV0dXJuIGVycm9ycy5OZXcoInRsczogZmFpbGVkIHRvIHBhcnNlIHB1Ymxp
YyBrZXkgZnJvbSBkZWxlZ2F0ZWQgY3JlZGVudGlhbDogIiArIGVyci5FcnJvcigpKQorCQl9CisK
KwkJdmVyaWZpZXIsIGVyciA6PSBnZXRTaWduZXIoYy52ZXJzLCBocy5wZWVyUHVibGljS2V5LCBj
LmNvbmZpZywgZGMuYWxnb3JpdGhtLCB0cnVlKQorCQlpZiBlcnIgIT0gbmlsIHsKKwkJCWMuc2Vu
ZEFsZXJ0KGFsZXJ0QmFkQ2VydGlmaWNhdGUpCisJCQlyZXR1cm4gZXJyb3JzLk5ldygidGxzOiBm
YWlsZWQgdG8gZ2V0IHZlcmlmaWVyIGZvciBkZWxlZ2F0ZWQgY3JlZGVudGlhbDogIiArIGVyci5F
cnJvcigpKQorCQl9CisKKwkJaWYgZXJyIDo9IHZlcmlmaWVyLnZlcmlmeU1lc3NhZ2UobGVhZlB1
YmxpY0tleSwgZGVsZWdhdGVkQ3JlZGVudGlhbFNpZ25lZE1lc3NhZ2UoZGMuc2lnbmVkQnl0ZXMs
IGRjLmFsZ29yaXRobSwgY2VydHNbMF0uUmF3KSwgZGMuc2lnbmF0dXJlKTsgZXJyICE9IG5pbCB7
CisJCQljLnNlbmRBbGVydChhbGVydEJhZENlcnRpZmljYXRlKQorCQkJcmV0dXJuIGVycm9ycy5O
ZXcoInRsczogZmFpbGVkIHRvIHZlcmlmeSBkZWxlZ2F0ZWQgY3JlZGVudGlhbDogIiArIGVyci5F
cnJvcigpKQorCQl9CisJfSBlbHNlIGlmIGMuY29uZmlnLkJ1Z3MuRXhwZWN0RGVsZWdhdGVkQ3Jl
ZGVudGlhbHMgeworCQljLnNlbmRBbGVydChhbGVydEludGVybmFsRXJyb3IpCisJCXJldHVybiBl
cnJvcnMuTmV3KCJ0bHM6IGRlbGVnYXRlZCBjcmVkZW50aWFscyBtaXNzaW5nIikKKwl9IGVsc2Ug
eworCQlocy5wZWVyUHVibGljS2V5ID0gbGVhZlB1YmxpY0tleQorCX0KKwogCXJldHVybiBuaWwK
IH0KIApAQCAtMTU5OSw2ICsxNjczLDEwIEBAIGZ1bmMgKGhzICpjbGllbnRIYW5kc2hha2VTdGF0
ZSkgcHJvY2Vzc1NlcnZlckV4dGVuc2lvbnMoc2VydmVyRXh0ZW5zaW9ucyAqc2VydmVyCiAJCWMu
cXVpY1RyYW5zcG9ydFBhcmFtcyA9IHNlcnZlckV4dGVuc2lvbnMucXVpY1RyYW5zcG9ydFBhcmFt
cwogCX0KIAorCWlmIGMuY29uZmlnLkJ1Z3MuRXhwZWN0UFFFeHBlcmltZW50U2lnbmFsICE9IHNl
cnZlckV4dGVuc2lvbnMucHFFeHBlcmltZW50U2lnbmFsIHsKKwkJcmV0dXJuIGZtdC5FcnJvcmYo
InRsczogUFEgZXhwZXJpbWVudCBzaWduYWwgcHJlc2VuY2UgKCV0KSB3YXMgbm90IHdoYXQgd2Fz
IGV4cGVjdGVkIiwgc2VydmVyRXh0ZW5zaW9ucy5wcUV4cGVyaW1lbnRTaWduYWwpCisJfQorCiAJ
cmV0dXJuIG5pbAogfQogCkBAIC0xOTI1LDE4ICsyMDAzLDI0IEBAIGZ1bmMgd3JpdGVJbnRQYWRk
ZWQoYiBbXWJ5dGUsIHggKmJpZy5JbnQpIHsKIH0KIAogZnVuYyBnZW5lcmF0ZVBTS0JpbmRlcnMo
dmVyc2lvbiB1aW50MTYsIGhlbGxvICpjbGllbnRIZWxsb01zZywgcHNrQ2lwaGVyU3VpdGUgKmNp
cGhlclN1aXRlLCBwc2ssIGZpcnN0Q2xpZW50SGVsbG8sIGhlbGxvUmV0cnlSZXF1ZXN0IFtdYnl0
ZSwgY29uZmlnICpDb25maWcpIHsKLQlpZiBjb25maWcuQnVncy5TZW5kTm9QU0tCaW5kZXIgewot
CQlyZXR1cm4KLQl9Ci0KKwltYXliZUNvcnJ1cHRCaW5kZXIgOj0gIWNvbmZpZy5CdWdzLk9ubHlD
b3JydXB0U2Vjb25kUFNLQmluZGVyIHx8IGxlbihmaXJzdENsaWVudEhlbGxvKSA+IDAKIAliaW5k
ZXJMZW4gOj0gcHNrQ2lwaGVyU3VpdGUuaGFzaCgpLlNpemUoKQotCWlmIGNvbmZpZy5CdWdzLlNl
bmRTaG9ydFBTS0JpbmRlciB7Ci0JCWJpbmRlckxlbi0tCi0JfQotCiAJbnVtQmluZGVycyA6PSAx
Ci0JaWYgY29uZmlnLkJ1Z3MuU2VuZEV4dHJhUFNLQmluZGVyIHsKLQkJbnVtQmluZGVycysrCisJ
aWYgbWF5YmVDb3JydXB0QmluZGVyIHsKKwkJaWYgY29uZmlnLkJ1Z3MuU2VuZE5vUFNLQmluZGVy
IHsKKwkJCS8vIFRoZSBiaW5kZXJzIG1heSBoYXZlIGJlZW4gc2V0IGZyb20gdGhlIHByZXZpb3Vz
CisJCQkvLyBDbGllbnRIZWxsby4KKwkJCWhlbGxvLnBza0JpbmRlcnMgPSBuaWwKKwkJCXJldHVy
bgorCQl9CisKKwkJaWYgY29uZmlnLkJ1Z3MuU2VuZFNob3J0UFNLQmluZGVyIHsKKwkJCWJpbmRl
ckxlbi0tCisJCX0KKworCQlpZiBjb25maWcuQnVncy5TZW5kRXh0cmFQU0tCaW5kZXIgeworCQkJ
bnVtQmluZGVycysrCisJCX0KIAl9CiAKIAkvLyBGaWxsIGhlbGxvLnBza0JpbmRlcnMgd2l0aCBh
cHByb3ByaWF0ZSBsZW5ndGggYXJyYXlzIG9mIHplcm9zIHNvIHRoZQpAQCAtMTk1MSwxMSArMjAz
NSwxMyBAQCBmdW5jIGdlbmVyYXRlUFNLQmluZGVycyh2ZXJzaW9uIHVpbnQxNiwgaGVsbG8gKmNs
aWVudEhlbGxvTXNnLCBwc2tDaXBoZXJTdWl0ZSAqYwogCWJpbmRlclNpemUgOj0gbGVuKGhlbGxv
LnBza0JpbmRlcnMpKihiaW5kZXJMZW4rMSkgKyAyCiAJdHJ1bmNhdGVkSGVsbG8gOj0gaGVsbG9C
eXRlc1s6bGVuKGhlbGxvQnl0ZXMpLWJpbmRlclNpemVdCiAJYmluZGVyIDo9IGNvbXB1dGVQU0tC
aW5kZXIocHNrLCB2ZXJzaW9uLCByZXN1bXB0aW9uUFNLQmluZGVyTGFiZWwsIHBza0NpcGhlclN1
aXRlLCBmaXJzdENsaWVudEhlbGxvLCBoZWxsb1JldHJ5UmVxdWVzdCwgdHJ1bmNhdGVkSGVsbG8p
Ci0JaWYgY29uZmlnLkJ1Z3MuU2VuZFNob3J0UFNLQmluZGVyIHsKLQkJYmluZGVyID0gYmluZGVy
WzpiaW5kZXJMZW5dCi0JfQotCWlmIGNvbmZpZy5CdWdzLlNlbmRJbnZhbGlkUFNLQmluZGVyIHsK
LQkJYmluZGVyWzBdIF49IDEKKwlpZiBtYXliZUNvcnJ1cHRCaW5kZXIgeworCQlpZiBjb25maWcu
QnVncy5TZW5kU2hvcnRQU0tCaW5kZXIgeworCQkJYmluZGVyID0gYmluZGVyWzpiaW5kZXJMZW5d
CisJCX0KKwkJaWYgY29uZmlnLkJ1Z3MuU2VuZEludmFsaWRQU0tCaW5kZXIgeworCQkJYmluZGVy
WzBdIF49IDEKKwkJfQogCX0KIAogCWZvciBpIDo9IHJhbmdlIGhlbGxvLnBza0JpbmRlcnMgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9oYW5kc2hha2VfbWVzc2FnZXMuZ28gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvc3NsL3Rlc3QvcnVubmVyL2hhbmRzaGFrZV9tZXNzYWdlcy5nbwppbmRleCBlMDg2N2E1MTg4
ODAwNWJjN2U4MTIzNmEyODk1MWQ5MWFkOTFmMmMxLi5hYzUyZWVkNDc2ZjM2Njg0NjkyZmI0NzBj
OGMyN2FiZWI5YWY1MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL2hhbmRzaGFr
ZV9tZXNzYWdlcy5nbworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL2hhbmRzaGFrZV9tZXNzYWdl
cy5nbwpAQCAtMjk3LDYgKzI5Nyw4IEBAIHR5cGUgY2xpZW50SGVsbG9Nc2cgc3RydWN0IHsKIAll
bXB0eUV4dGVuc2lvbnMgICAgICAgICBib29sCiAJcGFkICAgICAgICAgICAgICAgICAgICAgaW50
CiAJY29tcHJlc3NlZENlcnRBbGdzICAgICAgW111aW50MTYKKwlkZWxlZ2F0ZWRDcmVkZW50aWFs
cyAgICBib29sCisJcHFFeHBlcmltZW50U2lnbmFsICAgICAgYm9vbAogfQogCiBmdW5jIChtICpj
bGllbnRIZWxsb01zZykgZXF1YWwoaSBpbnRlcmZhY2V7fSkgYm9vbCB7CkBAIC0zNTAsNyArMzUy
LDkgQEAgZnVuYyAobSAqY2xpZW50SGVsbG9Nc2cpIGVxdWFsKGkgaW50ZXJmYWNle30pIGJvb2wg
ewogCQltLm9taXRFeHRlbnNpb25zID09IG0xLm9taXRFeHRlbnNpb25zICYmCiAJCW0uZW1wdHlF
eHRlbnNpb25zID09IG0xLmVtcHR5RXh0ZW5zaW9ucyAmJgogCQltLnBhZCA9PSBtMS5wYWQgJiYK
LQkJZXFVaW50MTZzKG0uY29tcHJlc3NlZENlcnRBbGdzLCBtMS5jb21wcmVzc2VkQ2VydEFsZ3Mp
CisJCWVxVWludDE2cyhtLmNvbXByZXNzZWRDZXJ0QWxncywgbTEuY29tcHJlc3NlZENlcnRBbGdz
KSAmJgorCQltLmRlbGVnYXRlZENyZWRlbnRpYWxzID09IG0xLmRlbGVnYXRlZENyZWRlbnRpYWxz
ICYmCisJCW0ucHFFeHBlcmltZW50U2lnbmFsID09IG0xLnBxRXhwZXJpbWVudFNpZ25hbAogfQog
CiBmdW5jIChtICpjbGllbnRIZWxsb01zZykgbWFyc2hhbEtleVNoYXJlcyhiYiAqYnl0ZUJ1aWxk
ZXIpIHsKQEAgLTU5Miw2ICs1OTYsMTUgQEAgZnVuYyAobSAqY2xpZW50SGVsbG9Nc2cpIG1hcnNo
YWwoKSBbXWJ5dGUgewogCQkJYWxnSURzLmFkZFUxNih2KQogCQl9CiAJfQorCWlmIG0uZGVsZWdh
dGVkQ3JlZGVudGlhbHMgeworCQlleHRlbnNpb25zLmFkZFUxNihleHRlbnNpb25EZWxlZ2F0ZWRD
cmVkZW50aWFscykKKwkJZXh0ZW5zaW9ucy5hZGRVMTYoMCkgLy8gTGVuZ3RoIGlzIGFsd2F5cyAw
CisJfQorCWlmIG0ucHFFeHBlcmltZW50U2lnbmFsIHsKKwkJZXh0ZW5zaW9ucy5hZGRVMTYoZXh0
ZW5zaW9uUFFFeHBlcmltZW50U2lnbmFsKQorCQlleHRlbnNpb25zLmFkZFUxNigwKSAvLyBMZW5n
dGggaXMgYWx3YXlzIDAKKwl9CisKIAkvLyBUaGUgUFNLIGV4dGVuc2lvbiBtdXN0IGJlIGxhc3Qu
IFNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODQ0NiNzZWN0aW9uLTQuMi4xMQog
CWlmIGxlbihtLnBza0lkZW50aXRpZXMpID4gMCAmJiAhbS5wc2tCaW5kZXJGaXJzdCB7CiAJCWV4
dGVuc2lvbnMuYWRkVTE2KGV4dGVuc2lvblByZVNoYXJlZEtleSkKQEAgLTY1Myw2ICs2NjYsMjMg
QEAgZnVuYyBwYXJzZVNpZ25hdHVyZUFsZ29yaXRobXMocmVhZGVyICpieXRlUmVhZGVyLCBvdXQg
Kltdc2lnbmF0dXJlQWxnb3JpdGhtLCBhbGwKIAlyZXR1cm4gdHJ1ZQogfQogCitmdW5jIGNoZWNr
RHVwbGljYXRlRXh0ZW5zaW9ucyhleHRlbnNpb25zIGJ5dGVSZWFkZXIpIGJvb2wgeworCXNlZW4g
Oj0gbWFrZShtYXBbdWludDE2XXN0cnVjdHt9KQorCWZvciBsZW4oZXh0ZW5zaW9ucykgPiAwIHsK
KwkJdmFyIGV4dGVuc2lvbiB1aW50MTYKKwkJdmFyIGJvZHkgYnl0ZVJlYWRlcgorCQlpZiAhZXh0
ZW5zaW9ucy5yZWFkVTE2KCZleHRlbnNpb24pIHx8CisJCQkhZXh0ZW5zaW9ucy5yZWFkVTE2TGVu
Z3RoUHJlZml4ZWQoJmJvZHkpIHsKKwkJCXJldHVybiBmYWxzZQorCQl9CisJCWlmIF8sIG9rIDo9
IHNlZW5bZXh0ZW5zaW9uXTsgb2sgeworCQkJcmV0dXJuIGZhbHNlCisJCX0KKwkJc2VlbltleHRl
bnNpb25dID0gc3RydWN0e317fQorCX0KKwlyZXR1cm4gdHJ1ZQorfQorCiBmdW5jIChtICpjbGll
bnRIZWxsb01zZykgdW5tYXJzaGFsKGRhdGEgW11ieXRlKSBib29sIHsKIAltLnJhdyA9IGRhdGEK
IAlyZWFkZXIgOj0gYnl0ZVJlYWRlcihkYXRhWzQ6XSkKQEAgLTcwMCw2ICs3MzAsOCBAQCBmdW5j
IChtICpjbGllbnRIZWxsb01zZykgdW5tYXJzaGFsKGRhdGEgW11ieXRlKSBib29sIHsKIAltLmFs
cG5Qcm90b2NvbHMgPSBuaWwKIAltLmV4dGVuZGVkTWFzdGVyU2VjcmV0ID0gZmFsc2UKIAltLmN1
c3RvbUV4dGVuc2lvbiA9ICIiCisJbS5kZWxlZ2F0ZWRDcmVkZW50aWFscyA9IGZhbHNlCisJbS5w
cUV4cGVyaW1lbnRTaWduYWwgPSBmYWxzZQogCiAJaWYgbGVuKHJlYWRlcikgPT0gMCB7CiAJCS8v
IENsaWVudEhlbGxvIGlzIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgZXh0ZW5zaW9uIGRhdGEKQEAg
LTcwNyw3ICs3MzksNyBAQCBmdW5jIChtICpjbGllbnRIZWxsb01zZykgdW5tYXJzaGFsKGRhdGEg
W11ieXRlKSBib29sIHsKIAl9CiAKIAl2YXIgZXh0ZW5zaW9ucyBieXRlUmVhZGVyCi0JaWYgIXJl
YWRlci5yZWFkVTE2TGVuZ3RoUHJlZml4ZWQoJmV4dGVuc2lvbnMpIHx8IGxlbihyZWFkZXIpICE9
IDAgeworCWlmICFyZWFkZXIucmVhZFUxNkxlbmd0aFByZWZpeGVkKCZleHRlbnNpb25zKSB8fCBs
ZW4ocmVhZGVyKSAhPSAwIHx8ICFjaGVja0R1cGxpY2F0ZUV4dGVuc2lvbnMoZXh0ZW5zaW9ucykg
ewogCQlyZXR1cm4gZmFsc2UKIAl9CiAJZm9yIGxlbihleHRlbnNpb25zKSA+IDAgewpAQCAtOTIz
LDYgKzk1NSwyMyBAQCBmdW5jIChtICpjbGllbnRIZWxsb01zZykgdW5tYXJzaGFsKGRhdGEgW11i
eXRlKSBib29sIHsKIAkJCQlzZWVuW2FsZ0lEXSA9IHN0cnVjdHt9e30KIAkJCQltLmNvbXByZXNz
ZWRDZXJ0QWxncyA9IGFwcGVuZChtLmNvbXByZXNzZWRDZXJ0QWxncywgYWxnSUQpCiAJCQl9CisJ
CWNhc2UgZXh0ZW5zaW9uUGFkZGluZzoKKwkJCS8vIFBhZGRpbmcgYnl0ZXMgbXVzdCBiZSBhbGwg
emVyby4KKwkJCWZvciBfLCBiIDo9IHJhbmdlIGJvZHkgeworCQkJCWlmIGIgIT0gMCB7CisJCQkJ
CXJldHVybiBmYWxzZQorCQkJCX0KKwkJCX0KKwkJY2FzZSBleHRlbnNpb25EZWxlZ2F0ZWRDcmVk
ZW50aWFsczoKKwkJCWlmIGxlbihib2R5KSAhPSAwIHsKKwkJCQlyZXR1cm4gZmFsc2UKKwkJCX0K
KwkJCW0uZGVsZWdhdGVkQ3JlZGVudGlhbHMgPSB0cnVlCisJCWNhc2UgZXh0ZW5zaW9uUFFFeHBl
cmltZW50U2lnbmFsOgorCQkJaWYgbGVuKGJvZHkpICE9IDAgeworCQkJCXJldHVybiBmYWxzZQor
CQkJfQorCQkJbS5wcUV4cGVyaW1lbnRTaWduYWwgPSB0cnVlCiAJCX0KIAogCQlpZiBpc0dSRUFT
RVZhbHVlKGV4dGVuc2lvbikgewpAQCAtMTA2Nyw3ICsxMTE2LDcgQEAgZnVuYyAobSAqc2VydmVy
SGVsbG9Nc2cpIHVubWFyc2hhbChkYXRhIFtdYnl0ZSkgYm9vbCB7CiAJfQogCiAJdmFyIGV4dGVu
c2lvbnMgYnl0ZVJlYWRlcgotCWlmICFyZWFkZXIucmVhZFUxNkxlbmd0aFByZWZpeGVkKCZleHRl
bnNpb25zKSB8fCBsZW4ocmVhZGVyKSAhPSAwIHsKKwlpZiAhcmVhZGVyLnJlYWRVMTZMZW5ndGhQ
cmVmaXhlZCgmZXh0ZW5zaW9ucykgfHwgbGVuKHJlYWRlcikgIT0gMCB8fCAhY2hlY2tEdXBsaWNh
dGVFeHRlbnNpb25zKGV4dGVuc2lvbnMpIHsKIAkJcmV0dXJuIGZhbHNlCiAJfQogCkBAIC0xMTkw
LDYgKzEyMzksNyBAQCB0eXBlIHNlcnZlckV4dGVuc2lvbnMgc3RydWN0IHsKIAlzdXBwb3J0ZWRD
dXJ2ZXMgICAgICAgICBbXUN1cnZlSUQKIAlxdWljVHJhbnNwb3J0UGFyYW1zICAgICBbXWJ5dGUK
IAlzZXJ2ZXJOYW1lQWNrICAgICAgICAgICBib29sCisJcHFFeHBlcmltZW50U2lnbmFsICAgICAg
Ym9vbAogfQogCiBmdW5jIChtICpzZXJ2ZXJFeHRlbnNpb25zKSBtYXJzaGFsKGV4dGVuc2lvbnMg
KmJ5dGVCdWlsZGVyKSB7CkBAIC0xMzI0LDEyICsxMzc0LDIwIEBAIGZ1bmMgKG0gKnNlcnZlckV4
dGVuc2lvbnMpIG1hcnNoYWwoZXh0ZW5zaW9ucyAqYnl0ZUJ1aWxkZXIpIHsKIAkJZXh0ZW5zaW9u
cy5hZGRVMTYoZXh0ZW5zaW9uU2VydmVyTmFtZSkKIAkJZXh0ZW5zaW9ucy5hZGRVMTYoMCkgLy8g
emVybyBsZW5ndGgKIAl9CisJaWYgbS5wcUV4cGVyaW1lbnRTaWduYWwgeworCQlleHRlbnNpb25z
LmFkZFUxNihleHRlbnNpb25QUUV4cGVyaW1lbnRTaWduYWwpCisJCWV4dGVuc2lvbnMuYWRkVTE2
KDApIC8vIHplcm8gbGVuZ3RoCisJfQogfQogCiBmdW5jIChtICpzZXJ2ZXJFeHRlbnNpb25zKSB1
bm1hcnNoYWwoZGF0YSBieXRlUmVhZGVyLCB2ZXJzaW9uIHVpbnQxNikgYm9vbCB7CiAJLy8gUmVz
ZXQgYWxsIGZpZWxkcy4KIAkqbSA9IHNlcnZlckV4dGVuc2lvbnN7fQogCisJaWYgIWNoZWNrRHVw
bGljYXRlRXh0ZW5zaW9ucyhkYXRhKSB7CisJCXJldHVybiBmYWxzZQorCX0KKwogCWZvciBsZW4o
ZGF0YSkgPiAwIHsKIAkJdmFyIGV4dGVuc2lvbiB1aW50MTYKIAkJdmFyIGJvZHkgYnl0ZVJlYWRl
cgpAQCAtMTQyOCw2ICsxNDg2LDExIEBAIGZ1bmMgKG0gKnNlcnZlckV4dGVuc2lvbnMpIHVubWFy
c2hhbChkYXRhIGJ5dGVSZWFkZXIsIHZlcnNpb24gdWludDE2KSBib29sIHsKIAkJCQlyZXR1cm4g
ZmFsc2UKIAkJCX0KIAkJCW0uaGFzRWFybHlEYXRhID0gdHJ1ZQorCQljYXNlIGV4dGVuc2lvblBR
RXhwZXJpbWVudFNpZ25hbDoKKwkJCWlmIGxlbihib2R5KSAhPSAwIHsKKwkJCQlyZXR1cm4gZmFs
c2UKKwkJCX0KKwkJCW0ucHFFeHBlcmltZW50U2lnbmFsID0gdHJ1ZQogCQlkZWZhdWx0OgogCQkJ
Ly8gVW5rbm93biBleHRlbnNpb25zIGFyZSBpbGxlZ2FsIGZyb20gdGhlIHNlcnZlci4KIAkJCXJl
dHVybiBmYWxzZQpAQCAtMTU3NCw2ICsxNjM3LDE3IEBAIHR5cGUgY2VydGlmaWNhdGVFbnRyeSBz
dHJ1Y3QgewogCXNjdExpc3QgICAgICAgICAgICAgW11ieXRlCiAJZHVwbGljYXRlRXh0ZW5zaW9u
cyBib29sCiAJZXh0cmFFeHRlbnNpb24gICAgICBbXWJ5dGUKKwlkZWxlZ2F0ZWRDcmVkZW50aWFs
ICpkZWxlZ2F0ZWRDcmVkZW50aWFsCit9CisKK3R5cGUgZGVsZWdhdGVkQ3JlZGVudGlhbCBzdHJ1
Y3QgeworCS8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLXRscy1zdWJj
ZXJ0cy0wMyNzZWN0aW9uLTMKKwlzaWduZWRCeXRlcyAgICAgICAgICAgIFtdYnl0ZQorCWxpZmV0
aW1lU2VjcyAgICAgICAgICAgdWludDMyCisJZXhwZWN0ZWRDZXJ0VmVyaWZ5QWxnbyBzaWduYXR1
cmVBbGdvcml0aG0KKwlwa2l4UHVibGljS2V5ICAgICAgICAgIFtdYnl0ZQorCWFsZ29yaXRobSAg
ICAgICAgICAgICAgc2lnbmF0dXJlQWxnb3JpdGhtCisJc2lnbmF0dXJlICAgICAgICAgICAgICBb
XWJ5dGUKIH0KIAogdHlwZSBjZXJ0aWZpY2F0ZU1zZyBzdHJ1Y3QgewpAQCAtMTY1MSw3ICsxNzI1
LDcgQEAgZnVuYyAobSAqY2VydGlmaWNhdGVNc2cpIHVubWFyc2hhbChkYXRhIFtdYnl0ZSkgYm9v
bCB7CiAJCX0KIAkJaWYgbS5oYXNSZXF1ZXN0Q29udGV4dCB7CiAJCQl2YXIgZXh0ZW5zaW9ucyBi
eXRlUmVhZGVyCi0JCQlpZiAhY2VydHMucmVhZFUxNkxlbmd0aFByZWZpeGVkKCZleHRlbnNpb25z
KSB7CisJCQlpZiAhY2VydHMucmVhZFUxNkxlbmd0aFByZWZpeGVkKCZleHRlbnNpb25zKSB8fCAh
Y2hlY2tEdXBsaWNhdGVFeHRlbnNpb25zKGV4dGVuc2lvbnMpIHsKIAkJCQlyZXR1cm4gZmFsc2UK
IAkJCX0KIAkJCWZvciBsZW4oZXh0ZW5zaW9ucykgPiAwIHsKQEAgLTE2NzIsNiArMTc0NiwyOSBA
QCBmdW5jIChtICpjZXJ0aWZpY2F0ZU1zZykgdW5tYXJzaGFsKGRhdGEgW11ieXRlKSBib29sIHsK
IAkJCQkJfQogCQkJCWNhc2UgZXh0ZW5zaW9uU2lnbmVkQ2VydGlmaWNhdGVUaW1lc3RhbXA6CiAJ
CQkJCWNlcnQuc2N0TGlzdCA9IFtdYnl0ZShib2R5KQorCQkJCWNhc2UgZXh0ZW5zaW9uRGVsZWdh
dGVkQ3JlZGVudGlhbHM6CisJCQkJCS8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFm
dC1pZXRmLXRscy1zdWJjZXJ0cy0wMyNzZWN0aW9uLTMKKwkJCQkJaWYgY2VydC5kZWxlZ2F0ZWRD
cmVkZW50aWFsICE9IG5pbCB7CisJCQkJCQlyZXR1cm4gZmFsc2UKKwkJCQkJfQorCisJCQkJCWRj
IDo9IG5ldyhkZWxlZ2F0ZWRDcmVkZW50aWFsKQorCQkJCQlvcmlnQm9keSA6PSBib2R5CisJCQkJ
CXZhciBleHBlY3RlZENlcnRWZXJpZnlBbGdvLCBhbGdvcml0aG0gdWludDE2CisKKwkJCQkJaWYg
IWJvZHkucmVhZFUzMigmZGMubGlmZXRpbWVTZWNzKSB8fAorCQkJCQkJIWJvZHkucmVhZFUxNigm
ZXhwZWN0ZWRDZXJ0VmVyaWZ5QWxnbykgfHwKKwkJCQkJCSFib2R5LnJlYWRVMjRMZW5ndGhQcmVm
aXhlZEJ5dGVzKCZkYy5wa2l4UHVibGljS2V5KSB8fAorCQkJCQkJIWJvZHkucmVhZFUxNigmYWxn
b3JpdGhtKSB8fAorCQkJCQkJIWJvZHkucmVhZFUxNkxlbmd0aFByZWZpeGVkQnl0ZXMoJmRjLnNp
Z25hdHVyZSkgfHwKKwkJCQkJCWxlbihib2R5KSAhPSAwIHsKKwkJCQkJCXJldHVybiBmYWxzZQor
CQkJCQl9CisKKwkJCQkJZGMuZXhwZWN0ZWRDZXJ0VmVyaWZ5QWxnbyA9IHNpZ25hdHVyZUFsZ29y
aXRobShleHBlY3RlZENlcnRWZXJpZnlBbGdvKQorCQkJCQlkYy5hbGdvcml0aG0gPSBzaWduYXR1
cmVBbGdvcml0aG0oYWxnb3JpdGhtKQorCQkJCQlkYy5zaWduZWRCeXRlcyA9IFtdYnl0ZShvcmln
Qm9keSlbOjQrMiszK2xlbihkYy5wa2l4UHVibGljS2V5KV0KKwkJCQkJY2VydC5kZWxlZ2F0ZWRD
cmVkZW50aWFsID0gZGMKIAkJCQlkZWZhdWx0OgogCQkJCQlyZXR1cm4gZmFsc2UKIAkJCQl9CkBA
IC0yMDEwLDcgKzIxMDcsOCBAQCBmdW5jIChtICpjZXJ0aWZpY2F0ZVJlcXVlc3RNc2cpIHVubWFy
c2hhbChkYXRhIFtdYnl0ZSkgYm9vbCB7CiAJCXZhciBleHRlbnNpb25zIGJ5dGVSZWFkZXIKIAkJ
aWYgIXJlYWRlci5yZWFkVThMZW5ndGhQcmVmaXhlZEJ5dGVzKCZtLnJlcXVlc3RDb250ZXh0KSB8
fAogCQkJIXJlYWRlci5yZWFkVTE2TGVuZ3RoUHJlZml4ZWQoJmV4dGVuc2lvbnMpIHx8Ci0JCQls
ZW4ocmVhZGVyKSAhPSAwIHsKKwkJCWxlbihyZWFkZXIpICE9IDAgfHwKKwkJCSFjaGVja0R1cGxp
Y2F0ZUV4dGVuc2lvbnMoZXh0ZW5zaW9ucykgewogCQkJcmV0dXJuIGZhbHNlCiAJCX0KIAkJZm9y
IGxlbihleHRlbnNpb25zKSA+IDAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9o
YW5kc2hha2Vfc2VydmVyLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9oYW5kc2hha2Vfc2VydmVy
LmdvCmluZGV4IDZhNzUyNDIxNGY5MWZiNDY1NjIwMTUwN2M2Y2QwMWNmMWVjZmM1ZjkuLjNhNmM4
MTA3YzM3YjlkMDFmY2Q4OGIyYjIyNTdlOGNkOWZhZWNjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wv
dGVzdC9ydW5uZXIvaGFuZHNoYWtlX3NlcnZlci5nbworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVy
L2hhbmRzaGFrZV9zZXJ2ZXIuZ28KQEAgLTIwOCw2ICsyMDgsMzAgQEAgZnVuYyAoaHMgKnNlcnZl
ckhhbmRzaGFrZVN0YXRlKSByZWFkQ2xpZW50SGVsbG8oKSBlcnJvciB7CiAJCX0KIAl9CiAKKwlp
ZiBjb25maWcuQnVncy5GYWlsSWZDRUNQUTJPZmZlcmVkIHsKKwkJZm9yIF8sIG9mZmVyZWRDdXJ2
ZSA6PSByYW5nZSBocy5jbGllbnRIZWxsby5zdXBwb3J0ZWRDdXJ2ZXMgeworCQkJaWYgaXNQcUdy
b3VwKG9mZmVyZWRDdXJ2ZSkgeworCQkJCXJldHVybiBlcnJvcnMuTmV3KCJ0bHM6IENFQ1BRMiBv
ciBDRUNQUTJiIHdhcyBvZmZlcmVkIikKKwkJCX0KKwkJfQorCX0KKworCWlmIGV4cGVjdGVkIDo9
IGNvbmZpZy5CdWdzLkV4cGVjdGVkS2V5U2hhcmVzOyBleHBlY3RlZCAhPSBuaWwgeworCQlpZiBs
ZW4oZXhwZWN0ZWQpICE9IGxlbihocy5jbGllbnRIZWxsby5rZXlTaGFyZXMpIHsKKwkJCXJldHVy
biBmbXQuRXJyb3JmKCJ0bHM6IGV4cGVjdGVkICVkIGtleSBzaGFyZXMsIGJ1dCBmb3VuZCAlZCIs
IGxlbihleHBlY3RlZCksIGxlbihocy5jbGllbnRIZWxsby5rZXlTaGFyZXMpKQorCQl9CisKKwkJ
Zm9yIGksIGdyb3VwIDo9IHJhbmdlIGV4cGVjdGVkIHsKKwkJCWlmIGZvdW5kIDo9IGhzLmNsaWVu
dEhlbGxvLmtleVNoYXJlc1tpXS5ncm91cDsgZm91bmQgIT0gZ3JvdXAgeworCQkJCXJldHVybiBm
bXQuRXJyb3JmKCJ0bHM6IGtleSBzaGFyZSAjJWQgaXMgZm9yIGdyb3VwICVkLCBub3QgJWQiLCBp
LCBmb3VuZCwgZ3JvdXApCisJCQl9CisJCX0KKwl9CisKKwlpZiBjLmNvbmZpZy5CdWdzLkV4cGVj
dFBRRXhwZXJpbWVudFNpZ25hbCAhPSBocy5jbGllbnRIZWxsby5wcUV4cGVyaW1lbnRTaWduYWwg
eworCQlyZXR1cm4gZm10LkVycm9yZigidGxzOiBQUSBleHBlcmltZW50IHNpZ25hbCBwcmVzZW5j
ZSAoJXQpIHdhcyBub3Qgd2hhdCB3YXMgZXhwZWN0ZWQiLCBocy5jbGllbnRIZWxsby5wcUV4cGVy
aW1lbnRTaWduYWwpCisJfQorCiAJYy5jbGllbnRWZXJzaW9uID0gaHMuY2xpZW50SGVsbG8udmVy
cwogCiAJLy8gVXNlIHRoZSB2ZXJzaW9ucyBleHRlbnNpb24gaWYgc3VwcGxpZWQsIG90aGVyd2lz
ZSB1c2UgdGhlIGxlZ2FjeSBDbGllbnRIZWxsbyB2ZXJzaW9uLgpAQCAtNzAyLDE2ICs3MjYsNyBA
QCBSZXNlbmRIZWxsb1JldHJ5UmVxdWVzdDoKIAkJCX0KIAogCQkJYy5lYXJseUNpcGhlclN1aXRl
ID0gaHMuc3VpdGUKLQkJCWV4cGVjdEVhcmx5RGF0YSA6PSBjb25maWcuQnVncy5FeHBlY3RFYXJs
eURhdGEKLQkJCWlmIG4gOj0gY29uZmlnLkJ1Z3MuRXhwZWN0RWFybHlLZXlpbmdNYXRlcmlhbDsg
biA+IDAgewotCQkJCWV4cG9ydGVyLCBlcnIgOj0gYy5FeHBvcnRFYXJseUtleWluZ01hdGVyaWFs
KG4sIFtdYnl0ZShjb25maWcuQnVncy5FeHBlY3RFYXJseUtleWluZ0xhYmVsKSwgW11ieXRlKGNv
bmZpZy5CdWdzLkV4cGVjdEVhcmx5S2V5aW5nQ29udGV4dCkpCi0JCQkJaWYgZXJyICE9IG5pbCB7
Ci0JCQkJCXJldHVybiBlcnIKLQkJCQl9Ci0JCQkJZXhwZWN0RWFybHlEYXRhID0gYXBwZW5kKFtd
W11ieXRle2V4cG9ydGVyfSwgZXhwZWN0RWFybHlEYXRhLi4uKQotCQkJfQotCi0JCQlmb3IgXywg
ZXhwZWN0ZWRNc2cgOj0gcmFuZ2UgZXhwZWN0RWFybHlEYXRhIHsKKwkJCWZvciBfLCBleHBlY3Rl
ZE1zZyA6PSByYW5nZSBjb25maWcuQnVncy5FeHBlY3RFYXJseURhdGEgewogCQkJCWlmIGVyciA6
PSBjLnJlYWRSZWNvcmQocmVjb3JkVHlwZUFwcGxpY2F0aW9uRGF0YSk7IGVyciAhPSBuaWwgewog
CQkJCQlyZXR1cm4gZXJyCiAJCQkJfQpAQCAtODYxLDEwICs4NzYsMTAgQEAgUmVzZW5kSGVsbG9S
ZXRyeVJlcXVlc3Q6CiAJCQkJCWRhdGE6IGNlcnREYXRhLAogCQkJCX0KIAkJCQlpZiBpID09IDAg
ewotCQkJCQlpZiBocy5jbGllbnRIZWxsby5vY3NwU3RhcGxpbmcgeworCQkJCQlpZiBocy5jbGll
bnRIZWxsby5vY3NwU3RhcGxpbmcgJiYgIWMuY29uZmlnLkJ1Z3MuTm9PQ1NQU3RhcGxpbmcgewog
CQkJCQkJY2VydC5vY3NwUmVzcG9uc2UgPSBocy5jZXJ0Lk9DU1BTdGFwbGUKIAkJCQkJfQotCQkJ
CQlpZiBocy5jbGllbnRIZWxsby5zY3RMaXN0U3VwcG9ydGVkIHsKKwkJCQkJaWYgaHMuY2xpZW50
SGVsbG8uc2N0TGlzdFN1cHBvcnRlZCAmJiAhYy5jb25maWcuQnVncy5Ob1NpZ25lZENlcnRpZmlj
YXRlVGltZXN0YW1wcyB7CiAJCQkJCQljZXJ0LnNjdExpc3QgPSBocy5jZXJ0LlNpZ25lZENlcnRp
ZmljYXRlVGltZXN0YW1wTGlzdAogCQkJCQl9CiAJCQkJCWNlcnQuZHVwbGljYXRlRXh0ZW5zaW9u
cyA9IGNvbmZpZy5CdWdzLlNlbmREdXBsaWNhdGVDZXJ0RXh0ZW5zaW9ucwpAQCAtMTIxMiw2ICsx
MjI3LDExIEBAIGZ1bmMgKGhzICpzZXJ2ZXJIYW5kc2hha2VTdGF0ZSkgcHJvY2Vzc0NsaWVudEhl
bGxvKCkgKGlzUmVzdW1lIGJvb2wsIGVyciBlcnJvcikKIAlwcmVmZXJyZWRDdXJ2ZXMgOj0gY29u
ZmlnLmN1cnZlUHJlZmVyZW5jZXMoKQogQ3VydmVzOgogCWZvciBfLCBjdXJ2ZSA6PSByYW5nZSBo
cy5jbGllbnRIZWxsby5zdXBwb3J0ZWRDdXJ2ZXMgeworCQlpZiBpc1BxR3JvdXAoY3VydmUpICYm
IGMudmVycyA8IFZlcnNpb25UTFMxMyB7CisJCQkvLyBDRUNQUTIgYW5kIENFQ1BRMmIgaXMgVExT
IDEuMy1vbmx5LgorCQkJY29udGludWUKKwkJfQorCiAJCWZvciBfLCBzdXBwb3J0ZWQgOj0gcmFu
Z2UgcHJlZmVycmVkQ3VydmVzIHsKIAkJCWlmIHN1cHBvcnRlZCA9PSBjdXJ2ZSB7CiAJCQkJc3Vw
cG9ydGVkQ3VydmUgPSB0cnVlCkBAIC0xNDMxLDYgKzE0NTEsNyBAQCBmdW5jIChocyAqc2VydmVy
SGFuZHNoYWtlU3RhdGUpIHByb2Nlc3NDbGllbnRFeHRlbnNpb25zKHNlcnZlckV4dGVuc2lvbnMg
KnNlcnZlcgogCX0KIAogCXNlcnZlckV4dGVuc2lvbnMuc2VydmVyTmFtZUFjayA9IGMuY29uZmln
LkJ1Z3MuU2VuZFNlcnZlck5hbWVBY2sKKwlzZXJ2ZXJFeHRlbnNpb25zLnBxRXhwZXJpbWVudFNp
Z25hbCA9IGhzLmNsaWVudEhlbGxvLnBxRXhwZXJpbWVudFNpZ25hbAogCiAJcmV0dXJuIG5pbAog
fQpAQCAtMTU1MiwxMSArMTU3MywxMSBAQCBmdW5jIChocyAqc2VydmVySGFuZHNoYWtlU3RhdGUp
IGRvRnVsbEhhbmRzaGFrZSgpIGVycm9yIHsKIAljIDo9IGhzLmMKIAogCWlzUFNLIDo9IGhzLnN1
aXRlLmZsYWdzJnN1aXRlUFNLICE9IDAKLQlpZiAhaXNQU0sgJiYgaHMuY2xpZW50SGVsbG8ub2Nz
cFN0YXBsaW5nICYmIGxlbihocy5jZXJ0Lk9DU1BTdGFwbGUpID4gMCB7CisJaWYgIWlzUFNLICYm
IGhzLmNsaWVudEhlbGxvLm9jc3BTdGFwbGluZyAmJiBsZW4oaHMuY2VydC5PQ1NQU3RhcGxlKSA+
IDAgJiYgIWMuY29uZmlnLkJ1Z3MuTm9PQ1NQU3RhcGxpbmcgewogCQlocy5oZWxsby5leHRlbnNp
b25zLm9jc3BTdGFwbGluZyA9IHRydWUKIAl9CiAKLQlpZiBocy5jbGllbnRIZWxsby5zY3RMaXN0
U3VwcG9ydGVkICYmIGxlbihocy5jZXJ0LlNpZ25lZENlcnRpZmljYXRlVGltZXN0YW1wTGlzdCkg
PiAwIHsKKwlpZiBocy5jbGllbnRIZWxsby5zY3RMaXN0U3VwcG9ydGVkICYmIGxlbihocy5jZXJ0
LlNpZ25lZENlcnRpZmljYXRlVGltZXN0YW1wTGlzdCkgPiAwICYmICFjLmNvbmZpZy5CdWdzLk5v
U2lnbmVkQ2VydGlmaWNhdGVUaW1lc3RhbXBzIHsKIAkJaHMuaGVsbG8uZXh0ZW5zaW9ucy5zY3RM
aXN0ID0gaHMuY2VydC5TaWduZWRDZXJ0aWZpY2F0ZVRpbWVzdGFtcExpc3QKIAl9CiAKQEAgLTE2
MjEsNyArMTY0Miw3IEBAIGZ1bmMgKGhzICpzZXJ2ZXJIYW5kc2hha2VTdGF0ZSkgZG9GdWxsSGFu
ZHNoYWtlKCkgZXJyb3IgewogCX0KIAogCWtleUFncmVlbWVudCA6PSBocy5zdWl0ZS5rYShjLnZl
cnMpCi0Jc2t4LCBlcnIgOj0ga2V5QWdyZWVtZW50LmdlbmVyYXRlU2VydmVyS2V5RXhjaGFuZ2Uo
Y29uZmlnLCBocy5jZXJ0LCBocy5jbGllbnRIZWxsbywgaHMuaGVsbG8pCisJc2t4LCBlcnIgOj0g
a2V5QWdyZWVtZW50LmdlbmVyYXRlU2VydmVyS2V5RXhjaGFuZ2UoY29uZmlnLCBocy5jZXJ0LCBo
cy5jbGllbnRIZWxsbywgaHMuaGVsbG8sIGMudmVycykKIAlpZiBlcnIgIT0gbmlsIHsKIAkJYy5z
ZW5kQWxlcnQoYWxlcnRIYW5kc2hha2VGYWlsdXJlKQogCQlyZXR1cm4gZXJyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvc3NsL3Rlc3QvcnVubmVyL2hyc3MvaHJzcy5nbyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIv
aHJzcy9ocnNzLmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmNGZkZDc3NmIwZTY2MWYwM2VjZGEyM2MzYjJkODgx
MTA1OTM4N2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL2hyc3MvaHJz
cy5nbwpAQCAtMCwwICsxLDEyMTIgQEAKK3BhY2thZ2UgaHJzcworCitpbXBvcnQgKAorCSJjcnlw
dG8vaG1hYyIKKwkiY3J5cHRvL3NoYTI1NiIKKwkiY3J5cHRvL3N1YnRsZSIKKwkiZW5jb2Rpbmcv
YmluYXJ5IgorCSJpbyIKKwkibWF0aC9iaXRzIgorKQorCitjb25zdCAoCisJUHVibGljS2V5U2l6
ZSAgPSBtb2RRQnl0ZXMKKwlDaXBoZXJ0ZXh0U2l6ZSA9IG1vZFFCeXRlcworKQorCitjb25zdCAo
CisJTiAgICAgICAgID0gNzAxCisJUSAgICAgICAgID0gODE5MgorCW1vZDNCeXRlcyA9IDE0MAor
CW1vZFFCeXRlcyA9IDExMzgKKykKKworY29uc3QgKAorCWJpdHNQZXJXb3JkICAgICAgPSBiaXRz
LlVpbnRTaXplCisJd29yZHNQZXJQb2x5ICAgICA9IChOICsgYml0c1BlcldvcmQgLSAxKSAvIGJp
dHNQZXJXb3JkCisJZnVsbFdvcmRzUGVyUG9seSA9IE4gLyBiaXRzUGVyV29yZAorCWJpdHNJbkxh
c3RXb3JkICAgPSBOICUgYml0c1BlcldvcmQKKykKKworLy8gcG9seTMgcmVwcmVzZW50cyBhIGRl
Z3JlZS1OIHBvbHlub21pYWwgb3ZlciBHRigzKS4gRWFjaCBjb2VmZmljaWVudCBpcworLy8gYml0
c2xpY2VkIGFjcm9zcyB0aGUgfHN8IGFuZCB8YXwgYXJyYXlzLCBsaWtlIHRoaXM6CisvLworLy8g
ICBzICB8ICBhICB8IHZhbHVlCisvLyAgLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgMCAgfCAgMCAg
fCAwCisvLyAgIDAgIHwgIDEgIHwgMQorLy8gICAxICB8ICAwICB8IDIgKGFrYSAtMSkKKy8vICAg
MSAgfCAgMSAgfCA8aW52YWxpZD4KKy8vCisvLyAoJ3MnIGlzIGZvciBzaWduLCBhbmQgJ2EnIGlz
IGp1c3QgYSBsZXR0ZXIuKQorLy8KKy8vIE9uY2UgYml0c2xpY2VkIGFzIHN1Y2gsIHRoZSBmb2xs
b3dpbmcgY2lyY3VpdHMgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50CisvLyBhZGRpdGlvbiBhbmQg
bXVsdGlwbGljYXRpb24gbW9kIDM6CisvLworLy8gICAoczMsIGEzKSA9IChzMSwgYTEpIMOXIChz
MiwgYTIpCisvLyAgIHMzID0gKHMyIOKIpyBhMSkg4oqVIChzMSDiiKcgYTIpCisvLyAgIGEzID0g
KHMxIOKIpyBzMikg4oqVIChhMSDiiKcgYTIpCisvLworLy8gICAoczMsIGEzKSA9IChzMSwgYTEp
ICsgKHMyLCBhMikKKy8vICAgdDEgPSB+KHMxIOKIqCBhMSkKKy8vICAgdDIgPSB+KHMyIOKIqCBh
MikKKy8vICAgczMgPSAoYTEg4oinIGEyKSDiipUgKHQxIOKIpyBzMikg4oqVICh0MiDiiKcgczEp
CisvLyAgIGEzID0gKHMxIOKIpyBzMikg4oqVICh0MSDiiKcgYTIpIOKKlSAodDIg4oinIGExKQor
Ly8KKy8vIE5lZ2F0aW5nIGEgdmFsdWUganVzdCBpbnZvbHZlcyBzd2FwcGluZyBzIGFuZCBhLgor
dHlwZSBwb2x5MyBzdHJ1Y3QgeworCXMgW3dvcmRzUGVyUG9seV11aW50CisJYSBbd29yZHNQZXJQ
b2x5XXVpbnQKK30KKworZnVuYyAocCAqcG9seTMpIHRyaW0oKSB7CisJcC5zW3dvcmRzUGVyUG9s
eS0xXSAmPSAoMSA8PCBiaXRzSW5MYXN0V29yZCkgLSAxCisJcC5hW3dvcmRzUGVyUG9seS0xXSAm
PSAoMSA8PCBiaXRzSW5MYXN0V29yZCkgLSAxCit9CisKK2Z1bmMgKHAgKnBvbHkzKSB6ZXJvKCkg
eworCWZvciBpIDo9IHJhbmdlIHAuYSB7CisJCXAuc1tpXSA9IDAKKwkJcC5hW2ldID0gMAorCX0K
K30KKworZnVuYyAocCAqcG9seTMpIGZyb21EaXNjcmV0ZShpbiAqcG9seSkgeworCXZhciBzaGlm
dCB1aW50CisJcyA6PSBwLnNbOl0KKwlhIDo9IHAuYVs6XQorCXNbMF0gPSAwCisJYVswXSA9IDAK
KworCWZvciBfLCB2IDo9IHJhbmdlIGluIHsKKwkJc1swXSA+Pj0gMQorCQlzWzBdIHw9IHVpbnQo
KHY+PjEpJjEpIDw8IChiaXRzUGVyV29yZCAtIDEpCisJCWFbMF0gPj49IDEKKwkJYVswXSB8PSB1
aW50KHYmMSkgPDwgKGJpdHNQZXJXb3JkIC0gMSkKKwkJc2hpZnQrKworCQlpZiBzaGlmdCA9PSBi
aXRzUGVyV29yZCB7CisJCQlzID0gc1sxOl0KKwkJCWEgPSBhWzE6XQorCQkJc1swXSA9IDAKKwkJ
CWFbMF0gPSAwCisJCQlzaGlmdCA9IDAKKwkJfQorCX0KKworCWFbMF0gPj49IGJpdHNQZXJXb3Jk
IC0gc2hpZnQKKwlzWzBdID4+PSBiaXRzUGVyV29yZCAtIHNoaWZ0Cit9CisKK2Z1bmMgKHAgKnBv
bHkzKSBmcm9tTW9kUShpbiAqcG9seSkgaW50IHsKKwl2YXIgc2hpZnQgdWludAorCXMgOj0gcC5z
WzpdCisJYSA6PSBwLmFbOl0KKwlzWzBdID0gMAorCWFbMF0gPSAwCisJb2sgOj0gMQorCisJZm9y
IF8sIHYgOj0gcmFuZ2UgaW4geworCQl2TW9kMywgdk9rIDo9IG1vZFFUb01vZDModikKKwkJb2sg
Jj0gdk9rCisKKwkJc1swXSA+Pj0gMQorCQlzWzBdIHw9IHVpbnQoKHZNb2QzPj4xKSYxKSA8PCAo
Yml0c1BlcldvcmQgLSAxKQorCQlhWzBdID4+PSAxCisJCWFbMF0gfD0gdWludCh2TW9kMyYxKSA8
PCAoYml0c1BlcldvcmQgLSAxKQorCQlzaGlmdCsrCisJCWlmIHNoaWZ0ID09IGJpdHNQZXJXb3Jk
IHsKKwkJCXMgPSBzWzE6XQorCQkJYSA9IGFbMTpdCisJCQlzWzBdID0gMAorCQkJYVswXSA9IDAK
KwkJCXNoaWZ0ID0gMAorCQl9CisJfQorCisJYVswXSA+Pj0gYml0c1BlcldvcmQgLSBzaGlmdAor
CXNbMF0gPj49IGJpdHNQZXJXb3JkIC0gc2hpZnQKKworCXJldHVybiBvaworfQorCitmdW5jIChw
ICpwb2x5MykgZnJvbURpc2NyZXRlTW9kMyhpbiAqcG9seSkgeworCXZhciBzaGlmdCB1aW50CisJ
cyA6PSBwLnNbOl0KKwlhIDo9IHAuYVs6XQorCXNbMF0gPSAwCisJYVswXSA9IDAKKworCWZvciBf
LCB2IDo9IHJhbmdlIGluIHsKKwkJLy8gVGhpcyBkdXBsaWNhdGVzIHRoZSAxM3RoIGJpdCB1cHdh
cmRzIHRvIHRoZSB0b3Agb2YgdGhlCisJCS8vIHVpbnQxNiwgZXNzZW50aWFsbHkgdHJlYXRpbmcg
aXQgYXMgYSBzaWduIGJpdCBhbmQgY29udmVydGluZworCQkvLyBpbnRvIGEgc2lnbmVkIGludDE2
LiBUaGUgc2lnbmVkIHZhbHVlIGlzIHJlZHVjZWQgbW9kIDMsCisJCS8vIHllaWxkaW5nIHstMiwg
LTEsIDAsIDEsIDJ9LgorCQl2ID0gdWludDE2KChpbnQxNih2PDwzKT4+MyklMykgJiA3CisKKwkJ
Ly8gV2Ugd2FudCB0byBtYXAgdiB0aHVzOgorCQkvLyB7LTIsIC0xLCAwLCAxLCAyfSAtPiB7MSwg
MiwgMCwgMSwgMn0uIFdlIHRha2UgdGhlIGJvdHRvbQorCQkvLyB0aHJlZSBiaXRzIGFuZCB0aGVu
IHRoZSBjb25zdGFudHMgYmVsb3csIHdoZW4gc2hpZnRlZCBieQorCQkvLyB0aG9zZSB0aHJlZSBi
aXRzLCBwZXJmb3JtIHRoZSByZXF1aXJlZCBtYXBwaW5nLgorCQlzWzBdID4+PSAxCisJCXNbMF0g
fD0gKDB4YmMgPj4gdikgPDwgKGJpdHNQZXJXb3JkIC0gMSkKKwkJYVswXSA+Pj0gMQorCQlhWzBd
IHw9ICgweDdhID4+IHYpIDw8IChiaXRzUGVyV29yZCAtIDEpCisJCXNoaWZ0KysKKwkJaWYgc2hp
ZnQgPT0gYml0c1BlcldvcmQgeworCQkJcyA9IHNbMTpdCisJCQlhID0gYVsxOl0KKwkJCXNbMF0g
PSAwCisJCQlhWzBdID0gMAorCQkJc2hpZnQgPSAwCisJCX0KKwl9CisKKwlhWzBdID4+PSBiaXRz
UGVyV29yZCAtIHNoaWZ0CisJc1swXSA+Pj0gYml0c1BlcldvcmQgLSBzaGlmdAorfQorCitmdW5j
IChwICpwb2x5MykgbWFyc2hhbChvdXQgW11ieXRlKSB7CisJcyA6PSBwLnNbOl0KKwlhIDo9IHAu
YVs6XQorCXN3IDo9IHNbMF0KKwlhdyA6PSBhWzBdCisJdmFyIHNoaWZ0IGludAorCisJZm9yIGkg
Oj0gMDsgaSA8IDcwMDsgaSArPSA1IHsKKwkJYWNjLCBzY2FsZSA6PSAwLCAxCisJCWZvciBqIDo9
IDA7IGogPCA1OyBqKysgeworCQkJdiA6PSBpbnQoYXcmMSkgfCBpbnQoc3cmMSk8PDEKKwkJCWFj
YyArPSBzY2FsZSAqIHYKKwkJCXNjYWxlICo9IDMKKworCQkJc2hpZnQrKworCQkJaWYgc2hpZnQg
PT0gYml0c1BlcldvcmQgeworCQkJCXMgPSBzWzE6XQorCQkJCWEgPSBhWzE6XQorCQkJCXN3ID0g
c1swXQorCQkJCWF3ID0gYVswXQorCQkJCXNoaWZ0ID0gMAorCQkJfSBlbHNlIHsKKwkJCQlzdyA+
Pj0gMQorCQkJCWF3ID4+PSAxCisJCQl9CisJCX0KKworCQlvdXRbMF0gPSBieXRlKGFjYykKKwkJ
b3V0ID0gb3V0WzE6XQorCX0KK30KKworZnVuYyAocCAqcG9seSkgZnJvbU1vZDIoaW4gKnBvbHky
KSB7CisJdmFyIHNoaWZ0IHVpbnQKKwl3b3JkcyA6PSBpbls6XQorCXdvcmQgOj0gd29yZHNbMF0K
KworCWZvciBpIDo9IHJhbmdlIHAgeworCQlwW2ldID0gdWludDE2KHdvcmQgJiAxKQorCQl3b3Jk
ID4+PSAxCisJCXNoaWZ0KysKKwkJaWYgc2hpZnQgPT0gYml0c1BlcldvcmQgeworCQkJd29yZHMg
PSB3b3Jkc1sxOl0KKwkJCXdvcmQgPSB3b3Jkc1swXQorCQkJc2hpZnQgPSAwCisJCX0KKwl9Cit9
CisKK2Z1bmMgKHAgKnBvbHkpIGZyb21Nb2QzKGluICpwb2x5MykgeworCXZhciBzaGlmdCB1aW50
CisJcyA6PSBpbi5zWzpdCisJYSA6PSBpbi5hWzpdCisJc3cgOj0gc1swXQorCWF3IDo9IGFbMF0K
KworCWZvciBpIDo9IHJhbmdlIHAgeworCQlwW2ldID0gdWludDE2KGF3JjEgfCAoc3cmMSk8PDEp
CisJCWF3ID4+PSAxCisJCXN3ID4+PSAxCisJCXNoaWZ0KysKKwkJaWYgc2hpZnQgPT0gYml0c1Bl
cldvcmQgeworCQkJYSA9IGFbMTpdCisJCQlzID0gc1sxOl0KKwkJCWF3ID0gYVswXQorCQkJc3cg
PSBzWzBdCisJCQlzaGlmdCA9IDAKKwkJfQorCX0KK30KKworZnVuYyAocCAqcG9seSkgZnJvbU1v
ZDNUb01vZFEoaW4gKnBvbHkzKSB7CisJdmFyIHNoaWZ0IHVpbnQKKwlzIDo9IGluLnNbOl0KKwlh
IDo9IGluLmFbOl0KKwlzdyA6PSBzWzBdCisJYXcgOj0gYVswXQorCisJZm9yIGkgOj0gcmFuZ2Ug
cCB7CisJCXBbaV0gPSBtb2QzVG9Nb2RRKHVpbnQxNihhdyYxIHwgKHN3JjEpPDwxKSkKKwkJYXcg
Pj49IDEKKwkJc3cgPj49IDEKKwkJc2hpZnQrKworCQlpZiBzaGlmdCA9PSBiaXRzUGVyV29yZCB7
CisJCQlhID0gYVsxOl0KKwkJCXMgPSBzWzE6XQorCQkJYXcgPSBhWzBdCisJCQlzdyA9IHNbMF0K
KwkJCXNoaWZ0ID0gMAorCQl9CisJfQorfQorCitmdW5jIGxzYlRvQWxsKHYgdWludCkgdWludCB7
CisJcmV0dXJuIHVpbnQoaW50KHY8PChiaXRzUGVyV29yZC0xKSkgPj4gKGJpdHNQZXJXb3JkIC0g
MSkpCit9CisKK2Z1bmMgKHAgKnBvbHkzKSBtdWxDb25zdChtcywgbWEgdWludCkgeworCW1zID0g
bHNiVG9BbGwobXMpCisJbWEgPSBsc2JUb0FsbChtYSkKKworCWZvciBpIDo9IHJhbmdlIHAuYSB7
CisJCXAuc1tpXSwgcC5hW2ldID0gKG1hJnAuc1tpXSleKG1zJnAuYVtpXSksIChtYSZwLmFbaV0p
XihtcyZwLnNbaV0pCisJfQorfQorCitmdW5jIGNtb3ZXb3JkcyhvdXQsIGluICpbd29yZHNQZXJQ
b2x5XXVpbnQsIG1vdiB1aW50KSB7CisJZm9yIGkgOj0gcmFuZ2Ugb3V0IHsKKwkJb3V0W2ldID0g
KG91dFtpXSAmIF5tb3YpIHwgKGluW2ldICYgbW92KQorCX0KK30KKworZnVuYyByb3RXb3Jkcyhv
dXQsIGluICpbd29yZHNQZXJQb2x5XXVpbnQsIGJpdHMgdWludCkgeworCXN0YXJ0IDo9IGJpdHMg
LyBiaXRzUGVyV29yZAorCW4gOj0gKE4gLSBiaXRzKSAvIGJpdHNQZXJXb3JkCisKKwlmb3IgaSA6
PSB1aW50KDApOyBpIDwgbjsgaSsrIHsKKwkJb3V0W2ldID0gaW5bc3RhcnQraV0KKwl9CisKKwlj
YXJyeSA6PSBpblt3b3Jkc1BlclBvbHktMV0KKworCWZvciBpIDo9IHVpbnQoMCk7IGkgPCBzdGFy
dDsgaSsrIHsKKwkJb3V0W24raV0gPSBjYXJyeSB8IGluW2ldPDxiaXRzSW5MYXN0V29yZAorCQlj
YXJyeSA9IGluW2ldID4+IChiaXRzUGVyV29yZCAtIGJpdHNJbkxhc3RXb3JkKQorCX0KKworCW91
dFt3b3Jkc1BlclBvbHktMV0gPSBjYXJyeQorfQorCisvLyByb3RCaXRzIHJpZ2h0LXJvdGF0ZXMg
dGhlIGJpdHMgaW4gfGlufC4gYml0cyBtdXN0IGJlIGEgbm9uLXplcm8gcG93ZXIgb2YgdHdvCisv
LyBhbmQgbGVzcyB0aGFuIGJpdHNQZXJXb3JkLgorZnVuYyByb3RCaXRzKG91dCwgaW4gKlt3b3Jk
c1BlclBvbHlddWludCwgYml0cyB1aW50KSB7CisJaWYgKGJpdHMgPT0gMCB8fCAoYml0cyAmIChi
aXRzIC0gMSkpICE9IDAgfHwgYml0cyA+IGJpdHNQZXJXb3JkLzIgfHwgYml0c0luTGFzdFdvcmQg
PCBiaXRzUGVyV29yZC8yKSB7CisJCXBhbmljKCJpbnRlcm5hbCBlcnJvciIpOworCX0KKworCWNh
cnJ5IDo9IGluW3dvcmRzUGVyUG9seS0xXSA8PCAoYml0c1BlcldvcmQgLSBiaXRzKQorCisJZm9y
IGkgOj0gd29yZHNQZXJQb2x5IC0gMjsgaSA+PSAwOyBpLS0geworCQlvdXRbaV0gPSBjYXJyeSB8
IGluW2ldPj5iaXRzCisJCWNhcnJ5ID0gaW5baV0gPDwgKGJpdHNQZXJXb3JkIC0gYml0cykKKwl9
CisKKwlvdXRbd29yZHNQZXJQb2x5LTFdID0gY2Fycnk+PihiaXRzUGVyV29yZC1iaXRzSW5MYXN0
V29yZCkgfCBpblt3b3Jkc1BlclBvbHktMV0+PmJpdHMKK30KKworZnVuYyAocCAqcG9seTMpIHJv
dFdvcmRzKGJpdHMgdWludCwgaW4gKnBvbHkzKSB7CisJcm90V29yZHMoJnAucywgJmluLnMsIGJp
dHMpCisJcm90V29yZHMoJnAuYSwgJmluLmEsIGJpdHMpCit9CisKK2Z1bmMgKHAgKnBvbHkzKSBy
b3RCaXRzKGJpdHMgdWludCwgaW4gKnBvbHkzKSB7CisJcm90Qml0cygmcC5zLCAmaW4ucywgYml0
cykKKwlyb3RCaXRzKCZwLmEsICZpbi5hLCBiaXRzKQorfQorCitmdW5jIChwICpwb2x5MykgY21v
dihpbiAqcG9seTMsIG1vdiB1aW50KSB7CisJY21vdldvcmRzKCZwLnMsICZpbi5zLCBtb3YpCisJ
Y21vdldvcmRzKCZwLmEsICZpbi5hLCBtb3YpCit9CisKK2Z1bmMgKHAgKnBvbHkzKSByb3QoYml0
cyB1aW50KSB7CisJaWYgYml0cyA+IE4geworCQlwYW5pYygiaW52YWxpZCIpCisJfQorCXZhciBz
aGlmdGVkIHBvbHkzCisKKwlzaGlmdCA6PSB1aW50KDkpCisJZm9yIDsgKDEgPDwgc2hpZnQpID49
IGJpdHNQZXJXb3JkOyBzaGlmdC0tIHsKKwkJc2hpZnRlZC5yb3RXb3JkcygxPDxzaGlmdCwgcCkK
KwkJcC5jbW92KCZzaGlmdGVkLCBsc2JUb0FsbChiaXRzPj5zaGlmdCkpCisJfQorCWZvciA7IHNo
aWZ0IDwgOTsgc2hpZnQtLSB7CisJCXNoaWZ0ZWQucm90Qml0cygxPDxzaGlmdCwgcCkKKwkJcC5j
bW92KCZzaGlmdGVkLCBsc2JUb0FsbChiaXRzPj5zaGlmdCkpCisJfQorfQorCitmdW5jIChwICpw
b2x5MykgZm1hZGQobXMsIG1hIHVpbnQsIGluICpwb2x5MykgeworCW1zID0gbHNiVG9BbGwobXMp
CisJbWEgPSBsc2JUb0FsbChtYSkKKworCWZvciBpIDo9IHJhbmdlIHAuYSB7CisJCXByb2R1Y3Rz
IDo9IChtYSAmIGluLnNbaV0pIF4gKG1zICYgaW4uYVtpXSkKKwkJcHJvZHVjdGEgOj0gKG1hICYg
aW4uYVtpXSkgXiAobXMgJiBpbi5zW2ldKQorCisJCW5zMUFuYTEgOj0gXnAuc1tpXSAmIF5wLmFb
aV0KKwkJbnMyQW5hMiA6PSBecHJvZHVjdHMgJiBecHJvZHVjdGEKKworCQlwLnNbaV0sIHAuYVtp
XSA9IChwLmFbaV0mcHJvZHVjdGEpXihuczFBbmExJnByb2R1Y3RzKV4ocC5zW2ldJm5zMkFuYTIp
LCAocC5zW2ldJnByb2R1Y3RzKV4obnMxQW5hMSZwcm9kdWN0YSleKHAuYVtpXSZuczJBbmEyKQor
CX0KK30KKworZnVuYyAocCAqcG9seTMpIG1vZFBoaU4oKSB7CisJZmFjdG9yYSA6PSB1aW50KGlu
dChwLnNbd29yZHNQZXJQb2x5LTFdPDwoYml0c1BlcldvcmQtYml0c0luTGFzdFdvcmQpKSA+PiAo
Yml0c1BlcldvcmQgLSAxKSkKKwlmYWN0b3JzIDo9IHVpbnQoaW50KHAuYVt3b3Jkc1BlclBvbHkt
MV08PChiaXRzUGVyV29yZC1iaXRzSW5MYXN0V29yZCkpID4+IChiaXRzUGVyV29yZCAtIDEpKQor
CW5zMkFuYTIgOj0gXmZhY3RvcnMgJiBeZmFjdG9yYQorCisJZm9yIGkgOj0gcmFuZ2UgcC5zIHsK
KwkJbnMxQW5hMSA6PSBecC5zW2ldICYgXnAuYVtpXQorCQlwLnNbaV0sIHAuYVtpXSA9IChwLmFb
aV0mZmFjdG9yYSleKG5zMUFuYTEmZmFjdG9ycyleKHAuc1tpXSZuczJBbmEyKSwgKHAuc1tpXSZm
YWN0b3JzKV4obnMxQW5hMSZmYWN0b3JhKV4ocC5hW2ldJm5zMkFuYTIpCisJfQorfQorCitmdW5j
IChwICpwb2x5MykgY3N3YXAob3RoZXIgKnBvbHkzLCBzd2FwIHVpbnQpIHsKKwlmb3IgaSA6PSBy
YW5nZSBwLnMgeworCQlzdW1zIDo9IHN3YXAgJiAocC5zW2ldIF4gb3RoZXIuc1tpXSkKKwkJcC5z
W2ldIF49IHN1bXMKKwkJb3RoZXIuc1tpXSBePSBzdW1zCisKKwkJc3VtYSA6PSBzd2FwICYgKHAu
YVtpXSBeIG90aGVyLmFbaV0pCisJCXAuYVtpXSBePSBzdW1hCisJCW90aGVyLmFbaV0gXj0gc3Vt
YQorCX0KK30KKworZnVuYyAocCAqcG9seTMpIG11bHgoKSB7CisJY2FycnlzIDo9IChwLnNbd29y
ZHNQZXJQb2x5LTFdID4+IChiaXRzSW5MYXN0V29yZCAtIDEpKSAmIDEKKwljYXJyeWEgOj0gKHAu
YVt3b3Jkc1BlclBvbHktMV0gPj4gKGJpdHNJbkxhc3RXb3JkIC0gMSkpICYgMQorCisJZm9yIGkg
Oj0gcmFuZ2UgcC5zIHsKKwkJb3V0Q2FycnlzIDo9IHAuc1tpXSA+PiAoYml0c1BlcldvcmQgLSAx
KQorCQlvdXRDYXJyeWEgOj0gcC5hW2ldID4+IChiaXRzUGVyV29yZCAtIDEpCisJCXAuc1tpXSA8
PD0gMQorCQlwLmFbaV0gPDw9IDEKKwkJcC5zW2ldIHw9IGNhcnJ5cworCQlwLmFbaV0gfD0gY2Fy
cnlhCisJCWNhcnJ5cyA9IG91dENhcnJ5cworCQljYXJyeWEgPSBvdXRDYXJyeWEKKwl9Cit9CisK
K2Z1bmMgKHAgKnBvbHkzKSBkaXZ4KCkgeworCXZhciBjYXJyeXMsIGNhcnJ5YSB1aW50CisKKwlm
b3IgaSA6PSBsZW4ocC5zKSAtIDE7IGkgPj0gMDsgaS0tIHsKKwkJb3V0Q2FycnlzIDo9IHAuc1tp
XSAmIDEKKwkJb3V0Q2FycnlhIDo9IHAuYVtpXSAmIDEKKwkJcC5zW2ldID4+PSAxCisJCXAuYVtp
XSA+Pj0gMQorCQlwLnNbaV0gfD0gY2FycnlzIDw8IChiaXRzUGVyV29yZCAtIDEpCisJCXAuYVtp
XSB8PSBjYXJyeWEgPDwgKGJpdHNQZXJXb3JkIC0gMSkKKwkJY2FycnlzID0gb3V0Q2FycnlzCisJ
CWNhcnJ5YSA9IG91dENhcnJ5YQorCX0KK30KKwordHlwZSBwb2x5MiBbd29yZHNQZXJQb2x5XXVp
bnQKKworZnVuYyAocCAqcG9seTIpIGZyb21EaXNjcmV0ZShpbiAqcG9seSkgeworCXZhciBzaGlm
dCB1aW50CisJd29yZHMgOj0gcFs6XQorCXdvcmRzWzBdID0gMAorCisJZm9yIF8sIHYgOj0gcmFu
Z2UgaW4geworCQl3b3Jkc1swXSA+Pj0gMQorCQl3b3Jkc1swXSB8PSB1aW50KHYmMSkgPDwgKGJp
dHNQZXJXb3JkIC0gMSkKKwkJc2hpZnQrKworCQlpZiBzaGlmdCA9PSBiaXRzUGVyV29yZCB7CisJ
CQl3b3JkcyA9IHdvcmRzWzE6XQorCQkJd29yZHNbMF0gPSAwCisJCQlzaGlmdCA9IDAKKwkJfQor
CX0KKworCXdvcmRzWzBdID4+PSBiaXRzUGVyV29yZCAtIHNoaWZ0Cit9CisKK2Z1bmMgKHAgKnBv
bHkyKSBzZXRQaGlOKCkgeworCWZvciBpIDo9IHJhbmdlIHAgeworCQlwW2ldID0gXnVpbnQoMCkK
Kwl9CisJcFt3b3Jkc1BlclBvbHktMV0gJj0gKDEgPDwgYml0c0luTGFzdFdvcmQpIC0gMQorfQor
CitmdW5jIChwICpwb2x5MikgY3N3YXAob3RoZXIgKnBvbHkyLCBzd2FwIHVpbnQpIHsKKwlmb3Ig
aSA6PSByYW5nZSBwIHsKKwkJc3VtIDo9IHN3YXAgJiAocFtpXSBeIG90aGVyW2ldKQorCQlwW2ld
IF49IHN1bQorCQlvdGhlcltpXSBePSBzdW0KKwl9Cit9CisKK2Z1bmMgKHAgKnBvbHkyKSBmbWFk
ZChtIHVpbnQsIGluICpwb2x5MikgeworCW0gPSBeKG0gLSAxKQorCisJZm9yIGkgOj0gcmFuZ2Ug
cCB7CisJCXBbaV0gXj0gaW5baV0gJiBtCisJfQorfQorCitmdW5jIChwICpwb2x5MikgbHNoaWZ0
MSgpIHsKKwl2YXIgY2FycnkgdWludAorCWZvciBpIDo9IHJhbmdlIHAgeworCQluZXh0Q2Fycnkg
Oj0gcFtpXSA+PiAoYml0c1BlcldvcmQgLSAxKQorCQlwW2ldIDw8PSAxCisJCXBbaV0gfD0gY2Fy
cnkKKwkJY2FycnkgPSBuZXh0Q2FycnkKKwl9Cit9CisKK2Z1bmMgKHAgKnBvbHkyKSByc2hpZnQx
KCkgeworCXZhciBjYXJyeSB1aW50CisJZm9yIGkgOj0gbGVuKHApIC0gMTsgaSA+PSAwOyBpLS0g
eworCQluZXh0Q2FycnkgOj0gcFtpXSAmIDEKKwkJcFtpXSA+Pj0gMQorCQlwW2ldIHw9IGNhcnJ5
IDw8IChiaXRzUGVyV29yZCAtIDEpCisJCWNhcnJ5ID0gbmV4dENhcnJ5CisJfQorfQorCitmdW5j
IChwICpwb2x5Mikgcm90KGJpdHMgdWludCkgeworCWlmIGJpdHMgPiBOIHsKKwkJcGFuaWMoImlu
dmFsaWQiKQorCX0KKwl2YXIgc2hpZnRlZCBbd29yZHNQZXJQb2x5XXVpbnQKKwlvdXQgOj0gKCpb
d29yZHNQZXJQb2x5XXVpbnQpKHApCisKKwlzaGlmdCA6PSB1aW50KDkpCisJZm9yIDsgKDEgPDwg
c2hpZnQpID49IGJpdHNQZXJXb3JkOyBzaGlmdC0tIHsKKwkJcm90V29yZHMoJnNoaWZ0ZWQsIG91
dCwgMTw8c2hpZnQpCisJCWNtb3ZXb3JkcyhvdXQsICZzaGlmdGVkLCBsc2JUb0FsbChiaXRzPj5z
aGlmdCkpCisJfQorCWZvciA7IHNoaWZ0IDwgOTsgc2hpZnQtLSB7CisJCXJvdEJpdHMoJnNoaWZ0
ZWQsIG91dCwgMTw8c2hpZnQpCisJCWNtb3ZXb3JkcyhvdXQsICZzaGlmdGVkLCBsc2JUb0FsbChi
aXRzPj5zaGlmdCkpCisJfQorfQorCit0eXBlIHBvbHkgW05ddWludDE2CisKK2Z1bmMgKGluICpw
b2x5KSBtYXJzaGFsKG91dCBbXWJ5dGUpIHsKKwlwIDo9IGluWzpdCisKKwlmb3IgbGVuKHApID49
IDggeworCQlvdXRbMF0gPSBieXRlKHBbMF0pCisJCW91dFsxXSA9IGJ5dGUocFswXT4+OCkgfCBi
eXRlKChwWzFdJjB4MDcpPDw1KQorCQlvdXRbMl0gPSBieXRlKHBbMV0gPj4gMykKKwkJb3V0WzNd
ID0gYnl0ZShwWzFdPj4xMSkgfCBieXRlKChwWzJdJjB4M2YpPDwyKQorCQlvdXRbNF0gPSBieXRl
KHBbMl0+PjYpIHwgYnl0ZSgocFszXSYweDAxKTw8NykKKwkJb3V0WzVdID0gYnl0ZShwWzNdID4+
IDEpCisJCW91dFs2XSA9IGJ5dGUocFszXT4+OSkgfCBieXRlKChwWzRdJjB4MGYpPDw0KQorCQlv
dXRbN10gPSBieXRlKHBbNF0gPj4gNCkKKwkJb3V0WzhdID0gYnl0ZShwWzRdPj4xMikgfCBieXRl
KChwWzVdJjB4N2YpPDwxKQorCQlvdXRbOV0gPSBieXRlKHBbNV0+PjcpIHwgYnl0ZSgocFs2XSYw
eDAzKTw8NikKKwkJb3V0WzEwXSA9IGJ5dGUocFs2XSA+PiAyKQorCQlvdXRbMTFdID0gYnl0ZShw
WzZdPj4xMCkgfCBieXRlKChwWzddJjB4MWYpPDwzKQorCQlvdXRbMTJdID0gYnl0ZShwWzddID4+
IDUpCisKKwkJcCA9IHBbODpdCisJCW91dCA9IG91dFsxMzpdCisJfQorCisJLy8gVGhlcmUgYXJl
IGZvdXIgcmVtYWluaW5nIHZhbHVlcy4KKwlvdXRbMF0gPSBieXRlKHBbMF0pCisJb3V0WzFdID0g
Ynl0ZShwWzBdPj44KSB8IGJ5dGUoKHBbMV0mMHgwNyk8PDUpCisJb3V0WzJdID0gYnl0ZShwWzFd
ID4+IDMpCisJb3V0WzNdID0gYnl0ZShwWzFdPj4xMSkgfCBieXRlKChwWzJdJjB4M2YpPDwyKQor
CW91dFs0XSA9IGJ5dGUocFsyXT4+NikgfCBieXRlKChwWzNdJjB4MDEpPDw3KQorCW91dFs1XSA9
IGJ5dGUocFszXSA+PiAxKQorCW91dFs2XSA9IGJ5dGUocFszXSA+PiA5KQorfQorCitmdW5jIChv
dXQgKnBvbHkpIHVubWFyc2hhbChpbiBbXWJ5dGUpIGJvb2wgeworCXAgOj0gb3V0WzpdCisJZm9y
IGkgOj0gMDsgaSA8IDg3OyBpKysgeworCQlwWzBdID0gdWludDE2KGluWzBdKSB8IHVpbnQxNihp
blsxXSYweDFmKTw8OAorCQlwWzFdID0gdWludDE2KGluWzFdPj41KSB8IHVpbnQxNihpblsyXSk8
PDMgfCB1aW50MTYoaW5bM10mMyk8PDExCisJCXBbMl0gPSB1aW50MTYoaW5bM10+PjIpIHwgdWlu
dDE2KGluWzRdJjB4N2YpPDw2CisJCXBbM10gPSB1aW50MTYoaW5bNF0+PjcpIHwgdWludDE2KGlu
WzVdKTw8MSB8IHVpbnQxNihpbls2XSYweGYpPDw5CisJCXBbNF0gPSB1aW50MTYoaW5bNl0+PjQp
IHwgdWludDE2KGluWzddKTw8NCB8IHVpbnQxNihpbls4XSYxKTw8MTIKKwkJcFs1XSA9IHVpbnQx
Nihpbls4XT4+MSkgfCB1aW50MTYoaW5bOV0mMHgzZik8PDcKKwkJcFs2XSA9IHVpbnQxNihpbls5
XT4+NikgfCB1aW50MTYoaW5bMTBdKTw8MiB8IHVpbnQxNihpblsxMV0mNyk8PDEwCisJCXBbN10g
PSB1aW50MTYoaW5bMTFdPj4zKSB8IHVpbnQxNihpblsxMl0pPDw1CisKKwkJcCA9IHBbODpdCisJ
CWluID0gaW5bMTM6XQorCX0KKworCS8vIFRoZXJlIGFyZSBmb3VyIGNvZWZmaWNpZW50cyBsZWZ0
IG92ZXIKKwlwWzBdID0gdWludDE2KGluWzBdKSB8IHVpbnQxNihpblsxXSYweDFmKTw8OAorCXBb
MV0gPSB1aW50MTYoaW5bMV0+PjUpIHwgdWludDE2KGluWzJdKTw8MyB8IHVpbnQxNihpblszXSYz
KTw8MTEKKwlwWzJdID0gdWludDE2KGluWzNdPj4yKSB8IHVpbnQxNihpbls0XSYweDdmKTw8Ngor
CXBbM10gPSB1aW50MTYoaW5bNF0+PjcpIHwgdWludDE2KGluWzVdKTw8MSB8IHVpbnQxNihpbls2
XSYweGYpPDw5CisKKwlpZiBpbls2XSYweGYwICE9IDAgeworCQlyZXR1cm4gZmFsc2UKKwl9CisK
KwlvdXRbTi0xXSA9IDAKKwl2YXIgdG9wIGludAorCWZvciBfLCB2IDo9IHJhbmdlIG91dCB7CisJ
CXRvcCArPSBpbnQodikKKwl9CisKKwlvdXRbTi0xXSA9IHVpbnQxNigtdG9wKSAlIFEKKwlyZXR1
cm4gdHJ1ZQorfQorCitmdW5jIChpbiAqcG9seSkgbWFyc2hhbFMzKG91dCBbXWJ5dGUpIHsKKwlw
IDo9IGluWzpdCisJZm9yIGxlbihwKSA+PSA1IHsKKwkJb3V0WzBdID0gYnl0ZShwWzBdICsgcFsx
XSozICsgcFsyXSo5ICsgcFszXSoyNyArIHBbNF0qODEpCisJCW91dCA9IG91dFsxOl0KKwkJcCA9
IHBbNTpdCisJfQorfQorCitmdW5jIChvdXQgKnBvbHkpIHVubWFyc2hhbFMzKGluIFtdYnl0ZSkg
Ym9vbCB7CisJcCA6PSBvdXRbOl0KKwlmb3IgaSA6PSAwOyBpIDwgMTQwOyBpKysgeworCQljIDo9
IGluWzBdCisJCWlmIGMgPj0gMjQzIHsKKwkJCXJldHVybiBmYWxzZQorCQl9CisJCXBbMF0gPSB1
aW50MTYoYyAlIDMpCisJCXBbMV0gPSB1aW50MTYoKGMgLyAzKSAlIDMpCisJCXBbMl0gPSB1aW50
MTYoKGMgLyA5KSAlIDMpCisJCXBbM10gPSB1aW50MTYoKGMgLyAyNykgJSAzKQorCQlwWzRdID0g
dWludDE2KChjIC8gODEpICUgMykKKworCQlwID0gcFs1Ol0KKwkJaW4gPSBpblsxOl0KKwl9CisK
KwlvdXRbTi0xXSA9IDAKKwlyZXR1cm4gdHJ1ZQorfQorCitmdW5jIChwICpwb2x5KSBtb2RQaGlO
KCkgeworCWZvciBpIDo9IHJhbmdlIHAgeworCQlwW2ldID0gKHBbaV0gKyBRIC0gcFtOLTFdKSAl
IFEKKwl9Cit9CisKK2Z1bmMgKG91dCAqcG9seSkgc2hvcnRTYW1wbGUoaW4gW11ieXRlKSB7CisJ
Ly8gIGIgIGEgIHJlc3VsdAorCS8vIDAwIDAwIDAwCisJLy8gMDAgMDEgMDEKKwkvLyAwMCAxMCAx
MAorCS8vIDAwIDExIDExCisJLy8gMDEgMDAgMTAKKwkvLyAwMSAwMSAwMAorCS8vIDAxIDEwIDAx
CisJLy8gMDEgMTEgMTEKKwkvLyAxMCAwMCAwMQorCS8vIDEwIDAxIDEwCisJLy8gMTAgMTAgMDAK
KwkvLyAxMCAxMSAxMQorCS8vIDExIDAwIDExCisJLy8gMTEgMDEgMTEKKwkvLyAxMSAxMCAxMQor
CS8vIDExIDExIDExCisKKwkvLyAxMTExIDExMTEgMTEwMCAxMDAxIDExMDEgMDAxMCAxMTEwIDAx
MDAKKwkvLyAgIGYgICAgZiAgICBjICAgIDkgICAgZCAgICAyICAgIGUgICAgNAorCWNvbnN0IGxv
b2t1cCA9IHVpbnQzMigweGZmYzlkMmU0KQorCisJcCA6PSBvdXRbOl0KKwlmb3IgaSA6PSAwOyBp
IDwgODc7IGkrKyB7CisJCXYgOj0gYmluYXJ5LkxpdHRsZUVuZGlhbi5VaW50MzIoaW4pCisJCXYy
IDo9ICh2ICYgMHg1NTU1NTU1NSkgKyAoKHYgPj4gMSkgJiAweDU1NTU1NTU1KQorCQlmb3IgaiA6
PSAwOyBqIDwgODsgaisrIHsKKwkJCXBbal0gPSB1aW50MTYobG9va3VwID4+ICgodjIgJiAxNSkg
PDwgMSkgJiAzKQorCQkJdjIgPj49IDQKKwkJfQorCQlwID0gcFs4Ol0KKwkJaW4gPSBpbls0Ol0K
Kwl9CisKKwkvLyBUaGVyZSBhcmUgZm91ciB2YWx1ZXMgcmVtYWluaW5nLgorCXYgOj0gYmluYXJ5
LkxpdHRsZUVuZGlhbi5VaW50MzIoaW4pCisJdjIgOj0gKHYgJiAweDU1NTU1NTU1KSArICgodiA+
PiAxKSAmIDB4NTU1NTU1NTUpCisJZm9yIGogOj0gMDsgaiA8IDQ7IGorKyB7CisJCXBbal0gPSB1
aW50MTYobG9va3VwID4+ICgodjIgJiAxNSkgPDwgMSkgJiAzKQorCQl2MiA+Pj0gNAorCX0KKwor
CW91dFtOLTFdID0gMAorfQorCitmdW5jIChvdXQgKnBvbHkpIHNob3J0U2FtcGxlUGx1cyhpbiBb
XWJ5dGUpIHsKKwlvdXQuc2hvcnRTYW1wbGUoaW4pCisKKwl2YXIgc3VtIHVpbnQxNgorCWZvciBp
IDo9IDA7IGkgPCBOLTE7IGkrKyB7CisJCXN1bSArPSBtb2QzUmVzdWx0VG9Nb2RRKG91dFtpXSAq
IG91dFtpKzFdKQorCX0KKworCXNjYWxlIDo9IDEgKyAoMSAmIChzdW0gPj4gMTIpKQorCWZvciBp
IDo9IDA7IGkgPCBsZW4ob3V0KTsgaSArPSAyIHsKKwkJb3V0W2ldID0gKG91dFtpXSAqIHNjYWxl
KSAlIDMKKwl9Cit9CisKK2Z1bmMgbXVsKG91dCwgc2NyYXRjaCwgYSwgYiBbXXVpbnQxNikgewor
CWNvbnN0IHNjaG9vbGJvb2tMaW1pdCA9IDMyCisJaWYgbGVuKGEpIDwgc2Nob29sYm9va0xpbWl0
IHsKKwkJZm9yIGkgOj0gMDsgaSA8IGxlbihhKSoyOyBpKysgeworCQkJb3V0W2ldID0gMAorCQl9
CisJCWZvciBpIDo9IHJhbmdlIGEgeworCQkJZm9yIGogOj0gcmFuZ2UgYiB7CisJCQkJb3V0W2kr
al0gKz0gYVtpXSAqIGJbal0KKwkJCX0KKwkJfQorCQlyZXR1cm4KKwl9CisKKwlsb3dMZW4gOj0g
bGVuKGEpIC8gMgorCWhpZ2hMZW4gOj0gbGVuKGEpIC0gbG93TGVuCisJYUxvdywgYUhpZ2ggOj0g
YVs6bG93TGVuXSwgYVtsb3dMZW46XQorCWJMb3csIGJIaWdoIDo9IGJbOmxvd0xlbl0sIGJbbG93
TGVuOl0KKworCWZvciBpIDo9IDA7IGkgPCBsb3dMZW47IGkrKyB7CisJCW91dFtpXSA9IGFIaWdo
W2ldICsgYUxvd1tpXQorCX0KKwlpZiBoaWdoTGVuICE9IGxvd0xlbiB7CisJCW91dFtsb3dMZW5d
ID0gYUhpZ2hbbG93TGVuXQorCX0KKworCWZvciBpIDo9IDA7IGkgPCBsb3dMZW47IGkrKyB7CisJ
CW91dFtoaWdoTGVuK2ldID0gYkhpZ2hbaV0gKyBiTG93W2ldCisJfQorCWlmIGhpZ2hMZW4gIT0g
bG93TGVuIHsKKwkJb3V0W2hpZ2hMZW4rbG93TGVuXSA9IGJIaWdoW2xvd0xlbl0KKwl9CisKKwlt
dWwoc2NyYXRjaCwgc2NyYXRjaFsyKmhpZ2hMZW46XSwgb3V0WzpoaWdoTGVuXSwgb3V0W2hpZ2hM
ZW46aGlnaExlbioyXSkKKwltdWwob3V0W2xvd0xlbioyOl0sIHNjcmF0Y2hbMipoaWdoTGVuOl0s
IGFIaWdoLCBiSGlnaCkKKwltdWwob3V0LCBzY3JhdGNoWzIqaGlnaExlbjpdLCBhTG93LCBiTG93
KQorCisJZm9yIGkgOj0gMDsgaSA8IGxvd0xlbioyOyBpKysgeworCQlzY3JhdGNoW2ldIC09IG91
dFtpXSArIG91dFtsb3dMZW4qMitpXQorCX0KKwlpZiBsb3dMZW4gIT0gaGlnaExlbiB7CisJCXNj
cmF0Y2hbbG93TGVuKjJdIC09IG91dFtsb3dMZW4qNF0KKwl9CisKKwlmb3IgaSA6PSAwOyBpIDwg
MipoaWdoTGVuOyBpKysgeworCQlvdXRbbG93TGVuK2ldICs9IHNjcmF0Y2hbaV0KKwl9Cit9CisK
K2Z1bmMgKG91dCAqcG9seSkgbXVsKGEsIGIgKnBvbHkpIHsKKwl2YXIgcHJvZCwgc2NyYXRjaCBb
MiAqIE5ddWludDE2CisJbXVsKHByb2RbOl0sIHNjcmF0Y2hbOl0sIGFbOl0sIGJbOl0pCisJZm9y
IGkgOj0gcmFuZ2Ugb3V0IHsKKwkJb3V0W2ldID0gKHByb2RbaV0gKyBwcm9kW2krTl0pICUgUQor
CX0KK30KKworZnVuYyAocDMgKnBvbHkzKSBtdWxNb2QzKHgsIHkgKnBvbHkzKSB7CisJLy8gKPCd
kaVebiAtIDEpIGlzIGEgbXVsdGlwbGUgb2YgzqYoTikgc28gd2UgY2FuIHdvcmsgbW9kICjwnZGl
Xm4gLSAxKSBoZXJlIGFuZAorCS8vIChyZWR1Y2UgbW9kIM6mKE4pIGFmdGVyd2FyZHMuCisJeDMg
Oj0gKngKKwl5MyA6PSAqeQorCXMgOj0geDMuc1s6XQorCWEgOj0geDMuYVs6XQorCXN3IDo9IHNb
MF0KKwlhdyA6PSBhWzBdCisJcDMuemVybygpCisJdmFyIHNoaWZ0IHVpbnQKKwlmb3IgaSA6PSAw
OyBpIDwgTjsgaSsrIHsKKwkJcDMuZm1hZGQoc3csIGF3LCAmeTMpCisJCXN3ID4+PSAxCisJCWF3
ID4+PSAxCisJCXNoaWZ0KysKKwkJaWYgc2hpZnQgPT0gYml0c1BlcldvcmQgeworCQkJcyA9IHNb
MTpdCisJCQlhID0gYVsxOl0KKwkJCXN3ID0gc1swXQorCQkJYXcgPSBhWzBdCisJCQlzaGlmdCA9
IDAKKwkJfQorCQl5My5tdWx4KCkKKwl9CisJcDMubW9kUGhpTigpCit9CisKKy8vIG1vZDNUb01v
ZFEgbWFwcyB7MCwgMSwgMiwgM30gdG8gezAsIDEsIFEtMSwgMHhmZmZmfQorLy8gVGhlIGNhc2Ug
b2YgbiA9PSAzIHNob3VsZCBuZXZlciBoYXBwZW4gYnV0IGlzIGluY2x1ZGVkIHNvIHRoYXQgbW9k
UVRvTW9kMworLy8gY2FuIGVhc2lseSBjYXRjaCBpbnZhbGlkIGlucHV0cy4KK2Z1bmMgbW9kM1Rv
TW9kUShuIHVpbnQxNikgdWludDE2IHsKKwlyZXR1cm4gdWludDE2KHVpbnQ2NCgweGZmZmYxZmZm
MDAwMTAwMDApID4+ICgxNiAqIG4pKQorfQorCisvLyBtb2RRVG9Nb2QzIG1hcHMgezAsIDEsIFEt
MX0gdG8geygwLCAwKSwgKDAsIDEpLCAoMSwgMCl9IGFuZCBhbHNvIHJldHVybnMgYW4gaW50Cisv
LyB3aGljaCBpcyBvbmUgaWYgdGhlIGlucHV0IGlzIGluIHJhbmdlIGFuZCB6ZXJvIG90aGVyd2lz
ZS4KK2Z1bmMgbW9kUVRvTW9kMyhuIHVpbnQxNikgKHVpbnQxNiwgaW50KSB7CisJcmVzdWx0IDo9
IChuJjMgLSAobj4+MSkmMSkKKwlyZXR1cm4gcmVzdWx0LCBzdWJ0bGUuQ29uc3RhbnRUaW1lRXEo
aW50MzIobW9kM1RvTW9kUShyZXN1bHQpKSwgaW50MzIobikpCit9CisKKy8vIG1vZDNSZXN1bHRU
b01vZFEgbWFwcyB7MCwgMSwgMiwgNH0gdG8gezAsIDEsIFEtMSwgMX0KK2Z1bmMgbW9kM1Jlc3Vs
dFRvTW9kUShuIHVpbnQxNikgdWludDE2IHsKKwlyZXR1cm4gKCgoKHVpbnQxNigweDEzKSA+PiBu
KSAmIDEpIC0gMSkgJiAweDFmZmYpIHwgKCh1aW50MTYoMHgxMikgPj4gbikgJiAxKQorCS8vc2hp
ZnQgOj0gKHVpbnQoMHgzMjQpID4+ICgyICogbikpICYgMworCS8vcmV0dXJuIHVpbnQxNih1aW50
NjQoMHgwMDAxMWZmZjAwMDEwMDAwKSA+PiAoMTYgKiBzaGlmdCkpCit9CisKKy8vIG11bFhNaW51
czEgc2V0cyBvdXQgdG8gYcOXKPCdkaUgLSAxKSBtb2QgKPCdkaVebiAtIDEpCitmdW5jIChvdXQg
KnBvbHkpIG11bFhNaW51czEoKSB7CisJLy8gTXVsdGlwbHlpbmcgYnkgKPCdkaUgLSAxKSBtZWFu
cyBuZWdhdGluZyBlYWNoIGNvZWZmaWNpZW50IGFuZCBhZGRpbmcgaW4KKwkvLyB0aGUgdmFsdWUg
b2YgdGhlIHByZXZpb3VzIG9uZS4KKwlvcmlnT3V0NzAwIDo9IG91dFs3MDBdCisKKwlmb3IgaSA6
PSBOIC0gMTsgaSA+IDA7IGktLSB7CisJCW91dFtpXSA9IChRIC0gb3V0W2ldICsgb3V0W2ktMV0p
ICUgUQorCX0KKwlvdXRbMF0gPSAoUSAtIG91dFswXSArIG9yaWdPdXQ3MDApICUgUQorfQorCitm
dW5jIChvdXQgKnBvbHkpIGxpZnQoYSAqcG9seSkgeworCS8vIFdlIHdpc2ggdG8gY2FsY3VsYXRl
IGEvKPCdkaUtMSkgbW9kIM6mKE4pIG92ZXIgR0YoMyksIHdoZXJlIM6mKE4pIGlzIHRoZQorCS8v
IE50aCBjeWNsb3RvbWljIHBvbHlub21pYWwsIGkuZS4gMSArIPCdkaUgKyDigKYgKyDwnZGlXjcw
MCAoc2luY2UgTiBpcyBwcmltZSkuCisKKwkvLyAxLyjwnZGlLTEpIGhhcyBhIGZhaXJseSBiYXNp
YyBzdHJ1Y3R1cmUgdGhhdCB3ZSBjYW4gZXhwbG9pdCB0byBzcGVlZCB0aGlzIHVwOgorCS8vCisJ
Ly8gUi48eD4gPSBQb2x5bm9taWFsUmluZyhHRigzKeKApikKKwkvLyBpbnYgPSBSLmN5Y2xvdG9t
aWNfcG9seW5vbWlhbCgxKS5pbnZlcnNlX21vZChSLmN5Y2xvdG9taWNfcG9seW5vbWlhbChuKSkK
KwkvLyBsaXN0KGludilbOjE1XQorCS8vICAgWzEsIDAsIDIsIDEsIDAsIDIsIDEsIDAsIDIsIDEs
IDAsIDIsIDEsIDAsIDJdCisJLy8KKwkvLyBUaGlzIHRocmVlLWVsZW1lbnQgcGF0dGVybiBvZiBj
b2VmZmljaWVudHMgcmVwZWF0cyBmb3IgdGhlIHdob2xlCisJLy8gcG9seW5vbWlhbC4KKwkvLwor
CS8vIE5leHQgZGVmaW5lIHRoZSBvdmVyYmFyIG9wZXJhdG9yIHN1Y2ggdGhhdCB6zIUgPSB6WzBd
ICsKKwkvLyByZXZlcnNlKHpbMTpdKS4gKEluZGV4IHplcm8gb2YgYSBwb2x5bm9taWFsIGhlcmUg
aXMgdGhlIGNvZWZmaWNpZW50CisJLy8gb2YgdGhlIGNvbnN0YW50IHRlcm0uIFNvIGluZGV4IG9u
ZSBpcyB0aGUgY29lZmZpY2llbnQgb2Yg8J2RpSBhbmQgc28KKwkvLyBvbi4pCisJLy8KKwkvLyBB
IGxlc3Mgb2RkIHdheSB0byBkZWZpbmUgdGhpcyBpcyB0byBzZWUgdGhhdCB6zIUgbmVnYXRlcyB0
aGUgaW5kZXhlcywKKwkvLyBzbyB6zIVbMF0gPSB6Wy0wXSwgesyFWzFdID0gelstMV0gYW5kIHNv
IG9uLgorCS8vCisJLy8gVGhlIHVzZSBvZiB6zIUgIGlzIHRoYXQsIHdoZW4gd29ya2luZyBtb2Qg
KPCdkaVeNzAxIC0gMSksIHZ6WzBdID0gPHYsCisJLy8gesyFPiwgdnpbMV0gPSA8diwg8J2RpXrM
hT4sIOKApi4gKFdoZXJlIDxhLCBiPiBpcyB0aGUgaW5uZXIgcHJvZHVjdDogdGhlIHN1bQorCS8v
IG9mIHRoZSBwb2ludC13aXNlIHByb2R1Y3RzLikgQWx0aG91Z2ggd2UgY2FsY3VsYXRlZCB0aGUg
aW52ZXJzZSBtb2QKKwkvLyDOpihOKSwgd2UgY2FuIHdvcmsgbW9kICjwnZGlXk4gLSAxKSBhbmQg
cmVkdWNlIG1vZCDOpihOKSBhdCB0aGUgZW5kLgorCS8vIChUaGF0J3MgYmVjYXVzZSAo8J2RpV5O
IC0gMSkgaXMgYSBtdWx0aXBsZSBvZiDOpihOKS4pCisJLy8KKwkvLyBXaGVuIHdvcmtpbmcgbW9k
ICjwnZGlXk4gLSAxKSwgbXVsdGlwbGljYXRpb24gYnkg8J2RpSBpcyBhIHJpZ2h0LXJvdGF0aW9u
CisJLy8gb2YgdGhlIGxpc3Qgb2YgY29lZmZpY2llbnRzLgorCS8vCisJLy8gVGh1cyB3ZSBjYW4g
Y29uc2lkZXIgd2hhdCB0aGUgcGF0dGVybiBvZiB6zIUsIPCdkaV6zIUsIPCdkaVeMnrMhSwg4oCm
IGxvb2tzIGxpa2U6CisJLy8KKwkvLyBkZWYgcmV2ZXJzZSh4cyk6CisJLy8gICBzdWZmaXggPSBs
aXN0KHhzWzE6XSkKKwkvLyAgIHN1ZmZpeC5yZXZlcnNlKCkKKwkvLyAgIHJldHVybiBbeHNbMF1d
ICsgc3VmZml4CisJLy8KKwkvLyBkZWYgcm90YXRlKHhzKToKKwkvLyAgIHJldHVybiBbeHNbLTFd
XSArIHhzWzotMV0KKwkvLworCS8vIHpvdmVyYmFyID0gcmV2ZXJzZShsaXN0KGludikgKyBbMF0p
CisJLy8geHpvdmVyYmFyID0gcm90YXRlKHJldmVyc2UobGlzdChpbnYpICsgWzBdKSkKKwkvLyB4
MnpvdmVyYmFyID0gcm90YXRlKHJvdGF0ZShyZXZlcnNlKGxpc3QoaW52KSArIFswXSkpKQorCS8v
CisJLy8gem92ZXJiYXJbOjE1XQorCS8vICAgWzEsIDAsIDEsIDIsIDAsIDEsIDIsIDAsIDEsIDIs
IDAsIDEsIDIsIDAsIDFdCisJLy8geHpvdmVyYmFyWzoxNV0KKwkvLyAgIFswLCAxLCAwLCAxLCAy
LCAwLCAxLCAyLCAwLCAxLCAyLCAwLCAxLCAyLCAwXQorCS8vIHgyem92ZXJiYXJbOjE1XQorCS8v
ICAgWzIsIDAsIDEsIDAsIDEsIDIsIDAsIDEsIDIsIDAsIDEsIDIsIDAsIDEsIDJdCisJLy8KKwkv
LyAoRm9yIGEgZm9ybXVsYSBmb3IgesyFLCBzZWUgbGVtbWEgdHdvIG9mIGFwcGVuZGl4IEIuKQor
CS8vCisJLy8gQWZ0ZXIgdGhlIGZpcnN0IHRocmVlIGVsZW1lbnRzIGhhdmUgYmVlbiB0YWtlbiBj
YXJlIG9mLCBhbGwgdGhlbiBoYXZlCisJLy8gYSByZXBlYXRpbmcgdGhyZWUtZWxlbWVudCBjeWNs
ZS4gVGhlIG5leHQgdmFsdWUgKPCdkaVeM3rMhSkgaW52b2x2ZXMKKwkvLyB0aHJlZSByb3RhdGlv
bnMgb2YgdGhlIGZpcnN0IHBhdHRlcm4sIHRodXMgdGhlIHRocmVlLWVsZW1lbnQgY3ljbGUKKwkv
LyBsaW5lcyB1cC4gSG93ZXZlciwgdGhlIGRpc2NvbnRpbnVpdHkgaW4gdGhlIGZpcnN0IHRocmVl
IGVsZW1lbnRzCisJLy8gb2J2aW91c2x5IG1vdmVzIHRvIGEgZGlmZmVyZW50IHBvc2l0aW9uLiBD
b25zaWRlciB0aGUgZGlmZmVyZW5jZQorCS8vIGJldHdlZW4g8J2RpV4zesyFIGFuZCB6zIU6CisJ
Ly8KKwkvLyBbeC15IGZvciAoeCx5KSBpbiB6aXAoem92ZXJiYXIsIHgzem92ZXJiYXIpXVs6MTVd
CisJLy8gICAgWzAsIDEsIDEsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdCisJ
Ly8KKwkvLyBUaGlzIHBhdHRlcm4gb2YgZGlmZmVyZW5jZXMgaXMgdGhlIHNhbWUgZm9yIGFsbCBl
bGVtZW50cywgYWx0aG91Z2ggaXQKKwkvLyBvYnZpb3VzbHkgbW92ZXMgcmlnaHQgd2l0aCB0aGUg
cm90YXRpb25zLgorCS8vCisJLy8gRnJvbSB0aGlzLCB3ZSByZWFjaCBhbGdvcml0aG0gZWlnaHQg
b2YgYXBwZW5kaXggQi4KKworCS8vIEhhbmRsZSB0aGUgZmlyc3QgdGhyZWUgZWxlbWVudHMgb2Yg
dGhlIGlubmVyIHByb2R1Y3RzLgorCW91dFswXSA9IGFbMF0gKyBhWzJdCisJb3V0WzFdID0gYVsx
XQorCW91dFsyXSA9IDIqYVswXSArIGFbMl0KKworCS8vIFVzZSB0aGUgcmVwZWF0aW5nIHBhdHRl
cm4gdG8gY29tcGxldGUgdGhlIGZpcnN0IHRocmVlIGlubmVyIHByb2R1Y3RzLgorCWZvciBpIDo9
IDM7IGkgPCA2OTk7IGkgKz0gMyB7CisJCW91dFswXSArPSAyKmFbaV0gKyBhW2krMl0KKwkJb3V0
WzFdICs9IGFbaV0gKyAyKmFbaSsxXQorCQlvdXRbMl0gKz0gYVtpKzFdICsgMiphW2krMl0KKwl9
CisKKwkvLyBIYW5kbGUgdGhlIGZhY3QgdGhhdCB0aGUgdGhyZWUtZWxlbWVudCBwYXR0ZXJuIGRv
ZXNuJ3QgZmlsbCB0aGUKKwkvLyBwb2x5bm9taWFsIGV4YWN0bHkgKHNpbmNlIDcwMSBpc24ndCBh
IG11bHRpcGxlIG9mIHRocmVlKS4KKwlvdXRbMl0gKz0gYVs3MDBdCisJb3V0WzBdICs9IDIgKiBh
WzY5OV0KKwlvdXRbMV0gKz0gYVs2OTldICsgMiphWzcwMF0KKworCW91dFswXSA9IG91dFswXSAl
IDMKKwlvdXRbMV0gPSBvdXRbMV0gJSAzCisJb3V0WzJdID0gb3V0WzJdICUgMworCisJLy8gQ2Fs
Y3VsYXRlIHRoZSByZW1haW5pbmcgaW5uZXIgcHJvZHVjdHMgYnkgdGFraW5nIGFkdmFudGFnZSBv
ZiB0aGUKKwkvLyBmYWN0IHRoYXQgdGhlIHBhdHRlcm4gcmVwZWF0cyBldmVyeSB0aHJlZSBjeWNs
ZXMgYW5kIHRoZSBwYXR0ZXJuIG9mCisJLy8gZGlmZmVyZW5jZXMgaXMgbW92ZXMgd2l0aCB0aGUg
cm90YXRpb24uCisJZm9yIGkgOj0gMzsgaSA8IE47IGkrKyB7CisJCS8vIEFkZCB0d2ljZSBzb21l
dGhpbmcgaXMgdGhlIHNhbWUgYXMgc3VidHJhY3Rpbmcgd2hlbiB3b3JraW5nCisJCS8vIG1vZCAz
LiBEb2luZyBpdCB0aGlzIHdheSBhdm9pZHMgdW5kZXJmbG93LiBVbmRlcmZsb3cgaXMgYmFkCisJ
CS8vIGJlY2F1c2UgIiUgMyIgZG9lc24ndCB3b3JrIGNvcnJlY3RseSBmb3IgbmVnYXRpdmUgbnVt
YmVycworCQkvLyBoZXJlIHNpbmNlIHVuZGVyZmxvdyB3aWxsIHdyYXAgdG8gMl4xNi0xIGFuZCAy
XjE2IGlzbid0IGEKKwkJLy8gbXVsdGlwbGUgb2YgdGhyZWUuCisJCW91dFtpXSA9IChvdXRbaS0z
XSArIDIqKGFbaS0yXSthW2ktMV0rYVtpXSkpICUgMworCX0KKworCS8vIFJlZHVjZSBtb2QgzqYo
TikgYnkgc3VidHJhY3RpbmcgYSBtdWx0aXBsZSBvZiBvdXRbNzAwXSBmcm9tIGV2ZXJ5CisJLy8g
ZWxlbWVudCBhbmQgY29udmVydCB0byBtb2QgUS4gKFNlZSBhYm92ZSBhYm91dCBhZGRpbmcgdHdp
Y2UgYXMKKwkvLyBzdWJ0cmFjdGlvbi4pCisJdiA6PSBvdXRbNzAwXSAqIDIKKwlmb3IgaSA6PSBy
YW5nZSBvdXQgeworCQlvdXRbaV0gPSBtb2QzVG9Nb2RRKChvdXRbaV0gKyB2KSAlIDMpCisJfQor
CisJb3V0Lm11bFhNaW51czEoKQorfQorCitmdW5jIChhICpwb2x5KSBjc3dhcChiICpwb2x5LCBz
d2FwIHVpbnQxNikgeworCWZvciBpIDo9IHJhbmdlIGEgeworCQlzdW0gOj0gc3dhcCAmIChhW2ld
IF4gYltpXSkKKwkJYVtpXSBePSBzdW0KKwkJYltpXSBePSBzdW0KKwl9Cit9CisKK2Z1bmMgbHQo
YSwgYiB1aW50KSB1aW50IHsKKwlpZiBhIDwgYiB7CisJCXJldHVybiBedWludCgwKQorCX0KKwly
ZXR1cm4gMAorfQorCitmdW5jIGJzTXVsKHMxLCBhMSwgczIsIGEyIHVpbnQpIChzMywgYTMgdWlu
dCkgeworCXMzID0gKGExICYgczIpIF4gKHMxICYgYTIpCisJYTMgPSAoYTEgJiBhMikgXiAoczEg
JiBzMikKKwlyZXR1cm4KK30KKworZnVuYyAob3V0ICpwb2x5MykgaW52ZXJ0TW9kMyhpbiAqcG9s
eTMpIHsKKwkvLyBUaGlzIGFsZ29yaXRobSBmb2xsb3dzIGFsZ29yaXRobSAxMCBpbiB0aGUgcGFw
ZXIuIChBbHRob3VnaCBub3RlIHRoYXQKKwkvLyB0aGUgcGFwZXIgYXBwZWFycyB0byBoYXZlIGEg
YnVnOiBrIHNob3VsZCBzdGFydCBhdCB6ZXJvLCBub3Qgb25lLikKKwkvLyBUaGUgYmVzdCBleHBs
YW5hdGlvbiBmb3Igd2h5IGl0IHdvcmtzIGlzIGluIHRoZSAiV2h5IGl0IHdvcmtzIgorCS8vIHNl
Y3Rpb24gb2YKKwkvLyBodHRwczovL2Fzc2V0cy5vbmJvYXJkc2VjdXJpdHkuY29tL3N0YXRpYy9k
b3dubG9hZHMvTlRSVS9yZXNvdXJjZXMvTlRSVVRlY2gwMTQucGRmLgorCXZhciBrIHVpbnQKKwlk
ZWdGLCBkZWdHIDo9IHVpbnQoTi0xKSwgdWludChOLTEpCisKKwl2YXIgYiwgYywgZyBwb2x5Mwor
CWYgOj0gKmluCisKKwlmb3IgaSA6PSByYW5nZSBnLmEgeworCQlnLmFbaV0gPSBedWludCgwKQor
CX0KKworCWIuYVswXSA9IDEKKworCXZhciBmMHMsIGYwYSB1aW50CisJc3RpbGxHb2luZyA6PSBe
dWludCgwKQorCWZvciBpIDo9IDA7IGkgPCAyKihOLTEpLTE7IGkrKyB7CisJCXNzLCBzYSA6PSBi
c011bChmLnNbMF0sIGYuYVswXSwgZy5zWzBdLCBnLmFbMF0pCisJCXNzLCBzYSA9IHNhJnN0aWxs
R29pbmcmMSwgc3Mmc3RpbGxHb2luZyYxCisJCXNob3VsZFN3YXAgOj0gXnVpbnQoaW50KChzc3xz
YSktMSk+PihiaXRzUGVyV29yZC0xKSkgJiBsdChkZWdGLCBkZWdHKQorCQlmLmNzd2FwKCZnLCBz
aG91bGRTd2FwKQorCQliLmNzd2FwKCZjLCBzaG91bGRTd2FwKQorCQlkZWdGLCBkZWdHID0gKGRl
Z0cmc2hvdWxkU3dhcCl8KGRlZ0YgJiBec2hvdWxkU3dhcCksIChkZWdGJnNob3VsZFN3YXApfChk
ZWdHJl5zaG91bGRTd2FwKQorCQlmLmZtYWRkKHNzLCBzYSwgJmcpCisJCWIuZm1hZGQoc3MsIHNh
LCAmYykKKworCQlmLmRpdngoKQorCQlmLnNbd29yZHNQZXJQb2x5LTFdICY9ICgoMSA8PCBiaXRz
SW5MYXN0V29yZCkgLSAxKSA+PiAxCisJCWYuYVt3b3Jkc1BlclBvbHktMV0gJj0gKCgxIDw8IGJp
dHNJbkxhc3RXb3JkKSAtIDEpID4+IDEKKwkJYy5tdWx4KCkKKwkJYy5zWzBdICY9IF51aW50KDEp
CisJCWMuYVswXSAmPSBedWludCgxKQorCisJCWRlZ0YtLQorCQlrICs9IDEgJiBzdGlsbEdvaW5n
CisJCWYwcyA9IChzdGlsbEdvaW5nICYgZi5zWzBdKSB8IChec3RpbGxHb2luZyAmIGYwcykKKwkJ
ZjBhID0gKHN0aWxsR29pbmcgJiBmLmFbMF0pIHwgKF5zdGlsbEdvaW5nICYgZjBhKQorCQlzdGls
bEdvaW5nID0gXnVpbnQoaW50KGRlZ0YtMSkgPj4gKGJpdHNQZXJXb3JkIC0gMSkpCisJfQorCisJ
ayAtPSBOICYgbHQoTiwgaykKKwkqb3V0ID0gYgorCW91dC5yb3QoaykKKwlvdXQubXVsQ29uc3Qo
ZjBzLCBmMGEpCisJb3V0Lm1vZFBoaU4oKQorfQorCitmdW5jIChvdXQgKnBvbHkpIGludmVydE1v
ZDIoYSAqcG9seSkgeworCS8vIFRoaXMgYWxnb3JpdGhtIGZvbGxvd3MgbWl4IG9mIGFsZ29yaXRo
bSAxMCBpbiB0aGUgcGFwZXIgYW5kIHRoZSBmaXJzdAorCS8vIHBhZ2Ugb2YgdGhlIFBERiBsaW5r
ZWQgYmVsb3cuIChBbHRob3VnaCBub3RlIHRoYXQgdGhlIHBhcGVyIGFwcGVhcnMKKwkvLyB0byBo
YXZlIGEgYnVnOiBrIHNob3VsZCBzdGFydCBhdCB6ZXJvLCBub3Qgb25lLikgVGhlIGJlc3QgZXhw
bGFuYXRpb24KKwkvLyBmb3Igd2h5IGl0IHdvcmtzIGlzIGluIHRoZSAiV2h5IGl0IHdvcmtzIiBz
ZWN0aW9uIG9mCisJLy8gaHR0cHM6Ly9hc3NldHMub25ib2FyZHNlY3VyaXR5LmNvbS9zdGF0aWMv
ZG93bmxvYWRzL05UUlUvcmVzb3VyY2VzL05UUlVUZWNoMDE0LnBkZi4KKwl2YXIgayB1aW50CisJ
ZGVnRiwgZGVnRyA6PSB1aW50KE4tMSksIHVpbnQoTi0xKQorCisJdmFyIGYgcG9seTIKKwlmLmZy
b21EaXNjcmV0ZShhKQorCXZhciBiLCBjLCBnIHBvbHkyCisJZy5zZXRQaGlOKCkKKwliWzBdID0g
MQorCisJc3RpbGxHb2luZyA6PSBedWludCgwKQorCWZvciBpIDo9IDA7IGkgPCAyKihOLTEpLTE7
IGkrKyB7CisJCXMgOj0gdWludChmWzBdJjEpICYgc3RpbGxHb2luZworCQlzaG91bGRTd2FwIDo9
IF4ocyAtIDEpICYgbHQoZGVnRiwgZGVnRykKKwkJZi5jc3dhcCgmZywgc2hvdWxkU3dhcCkKKwkJ
Yi5jc3dhcCgmYywgc2hvdWxkU3dhcCkKKwkJZGVnRiwgZGVnRyA9IChkZWdHJnNob3VsZFN3YXAp
fChkZWdGICYgXnNob3VsZFN3YXApLCAoZGVnRiZzaG91bGRTd2FwKXwoZGVnRyZec2hvdWxkU3dh
cCkKKwkJZi5mbWFkZChzLCAmZykKKwkJYi5mbWFkZChzLCAmYykKKworCQlmLnJzaGlmdDEoKQor
CQljLmxzaGlmdDEoKQorCisJCWRlZ0YtLQorCQlrICs9IDEgJiBzdGlsbEdvaW5nCisJCXN0aWxs
R29pbmcgPSBedWludChpbnQoZGVnRi0xKSA+PiAoYml0c1BlcldvcmQgLSAxKSkKKwl9CisKKwlr
IC09IE4gJiBsdChOLCBrKQorCWIucm90KGspCisJb3V0LmZyb21Nb2QyKCZiKQorfQorCitmdW5j
IChvdXQgKnBvbHkpIGludmVydChvcmlnQSAqcG9seSkgeworCS8vIEludmVyc2lvbiBtb2QgUSwg
d2hpY2ggaXMgZG9uZSBiYXNlZCBvbiB0aGUgcmVzdWx0IG9mIGludmVydGluZyBtb2QKKwkvLyAy
LiBTZWUgdGhlIE5UUlUgcGFwZXIsIHBhZ2UgdGhyZWUuCisJdmFyIGEsIHRtcCwgdG1wMiwgYiBw
b2x5CisJYi5pbnZlcnRNb2QyKG9yaWdBKQorCisJLy8gTmVnYXRlIGEuCisJZm9yIGkgOj0gcmFu
Z2UgYSB7CisJCWFbaV0gPSBRIC0gb3JpZ0FbaV0KKwl9CisKKwkvLyBXZSBhcmUgd29ya2luZyBt
b2QgUT0yKioxMyBhbmQgd2UgbmVlZCB0byBpdGVyYXRlIGNlaWwobG9nXzIoMTMpKQorCS8vIHRp
bWVzLCB3aGljaCBpcyBmb3VyLgorCWZvciBpIDo9IDA7IGkgPCA0OyBpKysgeworCQl0bXAubXVs
KCZhLCAmYikKKwkJdG1wWzBdICs9IDIKKwkJdG1wMi5tdWwoJmIsICZ0bXApCisJCWIgPSB0bXAy
CisJfQorCisJKm91dCA9IGIKK30KKwordHlwZSBQdWJsaWNLZXkgc3RydWN0IHsKKwloIHBvbHkK
K30KKworZnVuYyBQYXJzZVB1YmxpY0tleShpbiBbXWJ5dGUpICgqUHVibGljS2V5LCBib29sKSB7
CisJcmV0IDo9IG5ldyhQdWJsaWNLZXkpCisJaWYgIXJldC5oLnVubWFyc2hhbChpbikgeworCQly
ZXR1cm4gbmlsLCBmYWxzZQorCX0KKwlyZXR1cm4gcmV0LCB0cnVlCit9CisKK2Z1bmMgKHB1YiAq
UHVibGljS2V5KSBNYXJzaGFsKCkgW11ieXRlIHsKKwlyZXQgOj0gbWFrZShbXWJ5dGUsIG1vZFFC
eXRlcykKKwlwdWIuaC5tYXJzaGFsKHJldCkKKwlyZXR1cm4gcmV0Cit9CisKK2Z1bmMgKHB1YiAq
UHVibGljS2V5KSBFbmNhcChyYW5kIGlvLlJlYWRlcikgKGNpcGhlcnRleHQgW11ieXRlLCBzaGFy
ZWRLZXkgW11ieXRlKSB7CisJdmFyIHJhbmRCeXRlcyBbMzUyICsgMzUyXWJ5dGUKKwlpZiBfLCBl
cnIgOj0gaW8uUmVhZEZ1bGwocmFuZCwgcmFuZEJ5dGVzWzpdKTsgZXJyICE9IG5pbCB7CisJCXBh
bmljKCJyYW5kIGZhaWxlZCIpCisJfQorCisJdmFyIG0sIHIgcG9seQorCW0uc2hvcnRTYW1wbGUo
cmFuZEJ5dGVzWzozNTJdKQorCXIuc2hvcnRTYW1wbGUocmFuZEJ5dGVzWzM1MjpdKQorCisJdmFy
IG1CeXRlcywgckJ5dGVzIFttb2QzQnl0ZXNdYnl0ZQorCW0ubWFyc2hhbFMzKG1CeXRlc1s6XSkK
KwlyLm1hcnNoYWxTMyhyQnl0ZXNbOl0pCisKKwljaXBoZXJ0ZXh0ID0gcHViLm93ZigmbSwgJnIp
CisKKwloIDo9IHNoYTI1Ni5OZXcoKQorCWguV3JpdGUoW11ieXRlKCJzaGFyZWQga2V5XHgwMCIp
KQorCWguV3JpdGUobUJ5dGVzWzpdKQorCWguV3JpdGUockJ5dGVzWzpdKQorCWguV3JpdGUoY2lw
aGVydGV4dCkKKwlzaGFyZWRLZXkgPSBoLlN1bShuaWwpCisKKwlyZXR1cm4gY2lwaGVydGV4dCwg
c2hhcmVkS2V5Cit9CisKK2Z1bmMgKHB1YiAqUHVibGljS2V5KSBvd2YobSwgciAqcG9seSkgW11i
eXRlIHsKKwlmb3IgaSA6PSByYW5nZSByIHsKKwkJcltpXSA9IG1vZDNUb01vZFEocltpXSkKKwl9
CisKKwl2YXIgbXEgcG9seQorCW1xLmxpZnQobSkKKworCXZhciBlIHBvbHkKKwllLm11bChyLCAm
cHViLmgpCisJZm9yIGkgOj0gcmFuZ2UgZSB7CisJCWVbaV0gPSAoZVtpXSArIG1xW2ldKSAlIFEK
Kwl9CisKKwlyZXQgOj0gbWFrZShbXWJ5dGUsIG1vZFFCeXRlcykKKwllLm1hcnNoYWwocmV0Wzpd
KQorCXJldHVybiByZXQKK30KKwordHlwZSBQcml2YXRlS2V5IHN0cnVjdCB7CisJUHVibGljS2V5
CisJZiwgZnAgICBwb2x5MworCWhJbnYgICAgcG9seQorCWhtYWNLZXkgWzMyXWJ5dGUKK30KKwor
ZnVuYyAocHJpdiAqUHJpdmF0ZUtleSkgTWFyc2hhbCgpIFtdYnl0ZSB7CisJdmFyIHJldCBbMipt
b2QzQnl0ZXMgKyBtb2RRQnl0ZXNdYnl0ZQorCXByaXYuZi5tYXJzaGFsKHJldFs6XSkKKwlwcml2
LmZwLm1hcnNoYWwocmV0W21vZDNCeXRlczpdKQorCXByaXYuaC5tYXJzaGFsKHJldFsyKm1vZDNC
eXRlczpdKQorCXJldHVybiByZXRbOl0KK30KKworZnVuYyAocHJpdiAqUHJpdmF0ZUtleSkgRGVj
YXAoY2lwaGVydGV4dCBbXWJ5dGUpIChzaGFyZWRLZXkgW11ieXRlLCBvayBib29sKSB7CisJaWYg
bGVuKGNpcGhlcnRleHQpICE9IG1vZFFCeXRlcyB7CisJCXJldHVybiBuaWwsIGZhbHNlCisJfQor
CisJdmFyIGUgcG9seQorCWlmICFlLnVubWFyc2hhbChjaXBoZXJ0ZXh0KSB7CisJCXJldHVybiBu
aWwsIGZhbHNlCisJfQorCisJdmFyIGYgcG9seQorCWYuZnJvbU1vZDNUb01vZFEoJnByaXYuZikK
KworCXZhciB2MSwgbSBwb2x5CisJdjEubXVsKCZlLCAmZikKKworCXZhciB2MTMgcG9seTMKKwl2
MTMuZnJvbURpc2NyZXRlTW9kMygmdjEpCisJLy8gTm90ZTogdjEzIGlzIG5vdCByZWR1Y2VkIG1v
ZCBwaGkobikuCisKKwl2YXIgbTMgcG9seTMKKwltMy5tdWxNb2QzKCZ2MTMsICZwcml2LmZwKQor
CW0zLm1vZFBoaU4oKQorCW0uZnJvbU1vZDMoJm0zKQorCisJdmFyIG1MaWZ0LCBkZWx0YSBwb2x5
CisJbUxpZnQubGlmdCgmbSkKKwlmb3IgaSA6PSByYW5nZSBkZWx0YSB7CisJCWRlbHRhW2ldID0g
KGVbaV0gLSBtTGlmdFtpXSArIFEpICUgUQorCX0KKwlkZWx0YS5tdWwoJmRlbHRhLCAmcHJpdi5o
SW52KQorCWRlbHRhLm1vZFBoaU4oKQorCisJdmFyIHIgcG9seTMKKwlhbGxPayA6PSByLmZyb21N
b2RRKCZkZWx0YSkKKworCXZhciBtQnl0ZXMsIHJCeXRlcyBbbW9kM0J5dGVzXWJ5dGUKKwltLm1h
cnNoYWxTMyhtQnl0ZXNbOl0pCisJci5tYXJzaGFsKHJCeXRlc1s6XSkKKworCXZhciByUG9seSBw
b2x5CisJclBvbHkuZnJvbU1vZDMoJnIpCisJZXhwZWN0ZWRDaXBoZXJ0ZXh0IDo9IHByaXYuUHVi
bGljS2V5Lm93ZigmbSwgJnJQb2x5KQorCisJYWxsT2sgJj0gc3VidGxlLkNvbnN0YW50VGltZUNv
bXBhcmUoY2lwaGVydGV4dCwgZXhwZWN0ZWRDaXBoZXJ0ZXh0KQorCisJaG1hY0hhc2ggOj0gaG1h
Yy5OZXcoc2hhMjU2Lk5ldywgcHJpdi5obWFjS2V5WzpdKQorCWhtYWNIYXNoLldyaXRlKGNpcGhl
cnRleHQpCisJaG1hY0RpZ2VzdCA6PSBobWFjSGFzaC5TdW0obmlsKQorCisJaCA6PSBzaGEyNTYu
TmV3KCkKKwloLldyaXRlKFtdYnl0ZSgic2hhcmVkIGtleVx4MDAiKSkKKwloLldyaXRlKG1CeXRl
c1s6XSkKKwloLldyaXRlKHJCeXRlc1s6XSkKKwloLldyaXRlKGNpcGhlcnRleHQpCisJc2hhcmVk
S2V5ID0gaC5TdW0obmlsKQorCisJbWFzayA6PSB1aW50OChhbGxPayAtIDEpCisJZm9yIGkgOj0g
cmFuZ2Ugc2hhcmVkS2V5IHsKKwkJc2hhcmVkS2V5W2ldID0gKHNoYXJlZEtleVtpXSAmIF5tYXNr
KSB8IChobWFjRGlnZXN0W2ldICYgbWFzaykKKwl9CisKKwlyZXR1cm4gc2hhcmVkS2V5LCB0cnVl
Cit9CisKK2Z1bmMgR2VuZXJhdGVLZXkocmFuZCBpby5SZWFkZXIpIFByaXZhdGVLZXkgeworCXZh
ciByYW5kQnl0ZXMgWzM1MiArIDM1Ml1ieXRlCisJaWYgXywgZXJyIDo9IGlvLlJlYWRGdWxsKHJh
bmQsIHJhbmRCeXRlc1s6XSk7IGVyciAhPSBuaWwgeworCQlwYW5pYygicmFuZCBmYWlsZWQiKQor
CX0KKworCXZhciBmIHBvbHkKKwlmLnNob3J0U2FtcGxlUGx1cyhyYW5kQnl0ZXNbOjM1Ml0pCisJ
dmFyIHByaXYgUHJpdmF0ZUtleQorCXByaXYuZi5mcm9tRGlzY3JldGUoJmYpCisJcHJpdi5mcC5p
bnZlcnRNb2QzKCZwcml2LmYpCisKKwl2YXIgZyBwb2x5CisJZy5zaG9ydFNhbXBsZVBsdXMocmFu
ZEJ5dGVzWzM1MjpdKQorCisJdmFyIHBnUGhpMSBwb2x5CisJZm9yIGkgOj0gcmFuZ2UgZyB7CisJ
CXBnUGhpMVtpXSA9IG1vZDNUb01vZFEoZ1tpXSkKKwl9CisJZm9yIGkgOj0gcmFuZ2UgcGdQaGkx
IHsKKwkJcGdQaGkxW2ldID0gKHBnUGhpMVtpXSAqIDMpICUgUQorCX0KKwlwZ1BoaTEubXVsWE1p
bnVzMSgpCisKKwl2YXIgZk1vZFEgcG9seQorCWZNb2RRLmZyb21Nb2QzVG9Nb2RRKCZwcml2LmYp
CisKKwl2YXIgcGZnUGhpMSBwb2x5CisJcGZnUGhpMS5tdWwoJmZNb2RRLCAmcGdQaGkxKQorCisJ
dmFyIGkgcG9seQorCWkuaW52ZXJ0KCZwZmdQaGkxKQorCisJcHJpdi5oLm11bCgmaSwgJnBnUGhp
MSkKKwlwcml2LmgubXVsKCZwcml2LmgsICZwZ1BoaTEpCisKKwlwcml2LmhJbnYubXVsKCZpLCAm
Zk1vZFEpCisJcHJpdi5oSW52Lm11bCgmcHJpdi5oSW52LCAmZk1vZFEpCisKKwlyZXR1cm4gcHJp
dgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9rZXlfYWdyZWVtZW50LmdvIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3NzbC90ZXN0L3J1bm5lci9rZXlfYWdyZWVtZW50LmdvCmluZGV4IDc5MTMyNWNkZGU0YWYw
ZmRjMjQwOGMzYjFmNWE3ZmIxNGJlOTY2OWMuLmY0Nzg5YjY2YjFhNmUwNjllOGI0NjRjNWZhZGE4
NDMyMmYxMDVmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIva2V5X2FncmVlbWVu
dC5nbworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL2tleV9hZ3JlZW1lbnQuZ28KQEAgLTUsNiAr
NSw3IEBACiBwYWNrYWdlIHJ1bm5lcgogCiBpbXBvcnQgKAorCSJjcnlwdG8iCiAJImNyeXB0by9l
Y2RzYSIKIAkiY3J5cHRvL2VsbGlwdGljIgogCSJjcnlwdG8vcnNhIgpAQCAtMTcsNiArMTgsOCBA
QCBpbXBvcnQgKAogCiAJImJvcmluZ3NzbC5nb29nbGVzb3VyY2UuY29tL2JvcmluZ3NzbC9zc2wv
dGVzdC9ydW5uZXIvY3VydmUyNTUxOSIKIAkiYm9yaW5nc3NsLmdvb2dsZXNvdXJjZS5jb20vYm9y
aW5nc3NsL3NzbC90ZXN0L3J1bm5lci9lZDI1NTE5IgorCSJib3Jpbmdzc2wuZ29vZ2xlc291cmNl
LmNvbS9ib3Jpbmdzc2wvc3NsL3Rlc3QvcnVubmVyL2hyc3MiCisJImJvcmluZ3NzbC5nb29nbGVz
b3VyY2UuY29tL2JvcmluZ3NzbC9zc2wvdGVzdC9ydW5uZXIvc2lrZSIKICkKIAogdHlwZSBrZXlU
eXBlIGludApAQCAtMzcsNyArNDAsNyBAQCB0eXBlIHJzYUtleUFncmVlbWVudCBzdHJ1Y3Qgewog
CWV4cG9ydEtleSAgICAgKnJzYS5Qcml2YXRlS2V5CiB9CiAKLWZ1bmMgKGthICpyc2FLZXlBZ3Jl
ZW1lbnQpIGdlbmVyYXRlU2VydmVyS2V5RXhjaGFuZ2UoY29uZmlnICpDb25maWcsIGNlcnQgKkNl
cnRpZmljYXRlLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIGhlbGxvICpzZXJ2ZXJIZWxs
b01zZykgKCpzZXJ2ZXJLZXlFeGNoYW5nZU1zZywgZXJyb3IpIHsKK2Z1bmMgKGthICpyc2FLZXlB
Z3JlZW1lbnQpIGdlbmVyYXRlU2VydmVyS2V5RXhjaGFuZ2UoY29uZmlnICpDb25maWcsIGNlcnQg
KkNlcnRpZmljYXRlLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIGhlbGxvICpzZXJ2ZXJI
ZWxsb01zZywgdmVyc2lvbiB1aW50MTYpICgqc2VydmVyS2V5RXhjaGFuZ2VNc2csIGVycm9yKSB7
CiAJLy8gU2F2ZSB0aGUgY2xpZW50IHZlcnNpb24gZm9yIGNvbXBhcmlzb24gbGF0ZXIuCiAJa2Eu
Y2xpZW50VmVyc2lvbiA9IGNsaWVudEhlbGxvLnZlcnMKIApAQCAtMTMyLDcgKzEzNSw3IEBAIGZ1
bmMgKGthICpyc2FLZXlBZ3JlZW1lbnQpIHByb2Nlc3NDbGllbnRLZXlFeGNoYW5nZShjb25maWcg
KkNvbmZpZywgY2VydCAqQ2VydGlmCiAJcmV0dXJuIHByZU1hc3RlclNlY3JldCwgbmlsCiB9CiAK
LWZ1bmMgKGthICpyc2FLZXlBZ3JlZW1lbnQpIHByb2Nlc3NTZXJ2ZXJLZXlFeGNoYW5nZShjb25m
aWcgKkNvbmZpZywgY2xpZW50SGVsbG8gKmNsaWVudEhlbGxvTXNnLCBzZXJ2ZXJIZWxsbyAqc2Vy
dmVySGVsbG9Nc2csIGNlcnQgKng1MDkuQ2VydGlmaWNhdGUsIHNreCAqc2VydmVyS2V5RXhjaGFu
Z2VNc2cpIGVycm9yIHsKK2Z1bmMgKGthICpyc2FLZXlBZ3JlZW1lbnQpIHByb2Nlc3NTZXJ2ZXJL
ZXlFeGNoYW5nZShjb25maWcgKkNvbmZpZywgY2xpZW50SGVsbG8gKmNsaWVudEhlbGxvTXNnLCBz
ZXJ2ZXJIZWxsbyAqc2VydmVySGVsbG9Nc2csIGtleSBjcnlwdG8uUHVibGljS2V5LCBza3ggKnNl
cnZlcktleUV4Y2hhbmdlTXNnKSBlcnJvciB7CiAJcmV0dXJuIGVycm9ycy5OZXcoInRsczogdW5l
eHBlY3RlZCBTZXJ2ZXJLZXlFeGNoYW5nZSIpCiB9CiAKQEAgLTM0Nyw2ICszNTAsMTgyIEBAIGZ1
bmMgKGUgKngyNTUxOUVDREhDdXJ2ZSkgZmluaXNoKHBlZXJLZXkgW11ieXRlKSAocHJlTWFzdGVy
U2VjcmV0IFtdYnl0ZSwgZXJyIGVyCiAJcmV0dXJuIG91dFs6XSwgbmlsCiB9CiAKKy8vIGNlY3Bx
MkN1cnZlIGltcGxlbWVudHMgQ0VDUFEyLCB3aGljaCBpcyBIUlNTK1NYWSBjb21iaW5lZCB3aXRo
IFgyNTUxOS4KK3R5cGUgY2VjcHEyQ3VydmUgc3RydWN0IHsKKwl4MjU1MTlQcml2YXRlS2V5IFsz
Ml1ieXRlCisJaHJzc1ByaXZhdGVLZXkgICBocnNzLlByaXZhdGVLZXkKK30KKworZnVuYyAoZSAq
Y2VjcHEyQ3VydmUpIG9mZmVyKHJhbmQgaW8uUmVhZGVyKSAocHVibGljS2V5IFtdYnl0ZSwgZXJy
IGVycm9yKSB7CisJaWYgXywgZXJyIDo9IGlvLlJlYWRGdWxsKHJhbmQsIGUueDI1NTE5UHJpdmF0
ZUtleVs6XSk7IGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmlsLCBlcnIKKwl9CisKKwl2YXIgeDI1
NTE5UHVibGljIFszMl1ieXRlCisJY3VydmUyNTUxOS5TY2FsYXJCYXNlTXVsdCgmeDI1NTE5UHVi
bGljLCAmZS54MjU1MTlQcml2YXRlS2V5KQorCisJZS5ocnNzUHJpdmF0ZUtleSA9IGhyc3MuR2Vu
ZXJhdGVLZXkocmFuZCkKKwlocnNzUHVibGljIDo9IGUuaHJzc1ByaXZhdGVLZXkuUHVibGljS2V5
Lk1hcnNoYWwoKQorCisJdmFyIHJldCBbXWJ5dGUKKwlyZXQgPSBhcHBlbmQocmV0LCB4MjU1MTlQ
dWJsaWNbOl0uLi4pCisJcmV0ID0gYXBwZW5kKHJldCwgaHJzc1B1YmxpYy4uLikKKwlyZXR1cm4g
cmV0LCBuaWwKK30KKworZnVuYyAoZSAqY2VjcHEyQ3VydmUpIGFjY2VwdChyYW5kIGlvLlJlYWRl
ciwgcGVlcktleSBbXWJ5dGUpIChwdWJsaWNLZXkgW11ieXRlLCBwcmVNYXN0ZXJTZWNyZXQgW11i
eXRlLCBlcnIgZXJyb3IpIHsKKwlpZiBsZW4ocGVlcktleSkgIT0gMzIraHJzcy5QdWJsaWNLZXlT
aXplIHsKKwkJcmV0dXJuIG5pbCwgbmlsLCBlcnJvcnMuTmV3KCJ0bHM6IGJhZCBsZW5ndGggQ0VD
UFEyIG9mZmVyIikKKwl9CisKKwlpZiBfLCBlcnIgOj0gaW8uUmVhZEZ1bGwocmFuZCwgZS54MjU1
MTlQcml2YXRlS2V5WzpdKTsgZXJyICE9IG5pbCB7CisJCXJldHVybiBuaWwsIG5pbCwgZXJyCisJ
fQorCisJdmFyIHgyNTUxOVNoYXJlZCwgeDI1NTE5UGVlcktleSwgeDI1NTE5UHVibGljIFszMl1i
eXRlCisJY29weSh4MjU1MTlQZWVyS2V5WzpdLCBwZWVyS2V5KQorCWN1cnZlMjU1MTkuU2NhbGFy
QmFzZU11bHQoJngyNTUxOVB1YmxpYywgJmUueDI1NTE5UHJpdmF0ZUtleSkKKwljdXJ2ZTI1NTE5
LlNjYWxhck11bHQoJngyNTUxOVNoYXJlZCwgJmUueDI1NTE5UHJpdmF0ZUtleSwgJngyNTUxOVBl
ZXJLZXkpCisKKwkvLyBQZXIgUkZDIDc3NDgsIHJlamVjdCB0aGUgYWxsLXplcm8gdmFsdWUgaW4g
Y29uc3RhbnQgdGltZS4KKwl2YXIgemVyb3MgWzMyXWJ5dGUKKwlpZiBzdWJ0bGUuQ29uc3RhbnRU
aW1lQ29tcGFyZSh6ZXJvc1s6XSwgeDI1NTE5U2hhcmVkWzpdKSA9PSAxIHsKKwkJcmV0dXJuIG5p
bCwgbmlsLCBlcnJvcnMuTmV3KCJ0bHM6IFgyNTUxOSB2YWx1ZSB3aXRoIHdyb25nIG9yZGVyIikK
Kwl9CisKKwlocnNzUHVibGljS2V5LCBvayA6PSBocnNzLlBhcnNlUHVibGljS2V5KHBlZXJLZXlb
MzI6XSkKKwlpZiAhb2sgeworCQlyZXR1cm4gbmlsLCBuaWwsIGVycm9ycy5OZXcoInRsczogYmFk
IENFQ1BRMiBvZmZlciIpCisJfQorCisJaHJzc0NpcGhlcnRleHQsIGhyc3NTaGFyZWQgOj0gaHJz
c1B1YmxpY0tleS5FbmNhcChyYW5kKQorCisJcHVibGljS2V5ID0gYXBwZW5kKHB1YmxpY0tleSwg
eDI1NTE5UHVibGljWzpdLi4uKQorCXB1YmxpY0tleSA9IGFwcGVuZChwdWJsaWNLZXksIGhyc3ND
aXBoZXJ0ZXh0Li4uKQorCXByZU1hc3RlclNlY3JldCA9IGFwcGVuZChwcmVNYXN0ZXJTZWNyZXQs
IHgyNTUxOVNoYXJlZFs6XS4uLikKKwlwcmVNYXN0ZXJTZWNyZXQgPSBhcHBlbmQocHJlTWFzdGVy
U2VjcmV0LCBocnNzU2hhcmVkLi4uKQorCisJcmV0dXJuIHB1YmxpY0tleSwgcHJlTWFzdGVyU2Vj
cmV0LCBuaWwKK30KKworZnVuYyAoZSAqY2VjcHEyQ3VydmUpIGZpbmlzaChwZWVyS2V5IFtdYnl0
ZSkgKHByZU1hc3RlclNlY3JldCBbXWJ5dGUsIGVyciBlcnJvcikgeworCWlmIGxlbihwZWVyS2V5
KSAhPSAzMitocnNzLkNpcGhlcnRleHRTaXplIHsKKwkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ldygi
dGxzOiBiYWQgbGVuZ3RoIENFQ1BRMiByZXBseSIpCisJfQorCisJdmFyIHgyNTUxOVNoYXJlZCwg
eDI1NTE5UGVlcktleSBbMzJdYnl0ZQorCWNvcHkoeDI1NTE5UGVlcktleVs6XSwgcGVlcktleSkK
KwljdXJ2ZTI1NTE5LlNjYWxhck11bHQoJngyNTUxOVNoYXJlZCwgJmUueDI1NTE5UHJpdmF0ZUtl
eSwgJngyNTUxOVBlZXJLZXkpCisKKwkvLyBQZXIgUkZDIDc3NDgsIHJlamVjdCB0aGUgYWxsLXpl
cm8gdmFsdWUgaW4gY29uc3RhbnQgdGltZS4KKwl2YXIgemVyb3MgWzMyXWJ5dGUKKwlpZiBzdWJ0
bGUuQ29uc3RhbnRUaW1lQ29tcGFyZSh6ZXJvc1s6XSwgeDI1NTE5U2hhcmVkWzpdKSA9PSAxIHsK
KwkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ldygidGxzOiBYMjU1MTkgdmFsdWUgd2l0aCB3cm9uZyBv
cmRlciIpCisJfQorCisJaHJzc1NoYXJlZCwgb2sgOj0gZS5ocnNzUHJpdmF0ZUtleS5EZWNhcChw
ZWVyS2V5WzMyOl0pCisJaWYgIW9rIHsKKwkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ldygidGxzOiBp
bnZhbGlkIEhSU1MgY2lwaGVydGV4dCIpCisJfQorCisJcHJlTWFzdGVyU2VjcmV0ID0gYXBwZW5k
KHByZU1hc3RlclNlY3JldCwgeDI1NTE5U2hhcmVkWzpdLi4uKQorCXByZU1hc3RlclNlY3JldCA9
IGFwcGVuZChwcmVNYXN0ZXJTZWNyZXQsIGhyc3NTaGFyZWQuLi4pCisKKwlyZXR1cm4gcHJlTWFz
dGVyU2VjcmV0LCBuaWwKK30KKworLy8gY2VjcHEyQkN1cnZlIGltcGxlbWVudHMgQ0VDUFEyYiwg
d2hpY2ggaXMgU0lLRSBjb21iaW5lZCB3aXRoIFgyNTUxOS4KK3R5cGUgY2VjcHEyQkN1cnZlIHN0
cnVjdCB7CisJLy8gQm90aCBwdWJsaWMga2V5IGFuZCBzaGFyZWQgc2VjcmV0IHNpemUKKwl4MjU1
MTlQcml2YXRlS2V5IFszMl1ieXRlCisJc2lrZVByaXZhdGVLZXkgICAqc2lrZS5Qcml2YXRlS2V5
Cit9CisKK2Z1bmMgKGUgKmNlY3BxMkJDdXJ2ZSkgb2ZmZXIocmFuZCBpby5SZWFkZXIpIChwdWJs
aWNLZXkgW11ieXRlLCBlcnIgZXJyb3IpIHsKKwlpZiBfLCBlcnIgPSBpby5SZWFkRnVsbChyYW5k
LCBlLngyNTUxOVByaXZhdGVLZXlbOl0pOyBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgZXJy
CisJfQorCisJdmFyIHgyNTUxOVB1YmxpYyBbMzJdYnl0ZQorCWN1cnZlMjU1MTkuU2NhbGFyQmFz
ZU11bHQoJngyNTUxOVB1YmxpYywgJmUueDI1NTE5UHJpdmF0ZUtleSkKKworCWUuc2lrZVByaXZh
dGVLZXkgPSBzaWtlLk5ld1ByaXZhdGVLZXkoc2lrZS5LZXlWYXJpYW50X1NJS0UpCisJaWYgZXJy
ID0gZS5zaWtlUHJpdmF0ZUtleS5HZW5lcmF0ZShyYW5kKTsgZXJyICE9IG5pbCB7CisJCXJldHVy
biBuaWwsIGVycgorCX0KKworCXNpa2VQdWJsaWMgOj0gZS5zaWtlUHJpdmF0ZUtleS5HZW5lcmF0
ZVB1YmxpY0tleSgpLkV4cG9ydCgpCisJdmFyIHJldCBbXWJ5dGUKKwlyZXQgPSBhcHBlbmQocmV0
LCB4MjU1MTlQdWJsaWNbOl0uLi4pCisJcmV0ID0gYXBwZW5kKHJldCwgc2lrZVB1YmxpYy4uLikK
KwlyZXR1cm4gcmV0LCBuaWwKK30KKworZnVuYyAoZSAqY2VjcHEyQkN1cnZlKSBhY2NlcHQocmFu
ZCBpby5SZWFkZXIsIHBlZXJLZXkgW11ieXRlKSAocHVibGljS2V5IFtdYnl0ZSwgcHJlTWFzdGVy
U2VjcmV0IFtdYnl0ZSwgZXJyIGVycm9yKSB7CisJaWYgbGVuKHBlZXJLZXkpICE9IDMyK3Npa2Uu
UGFyYW1zLlB1YmxpY0tleVNpemUgeworCQlyZXR1cm4gbmlsLCBuaWwsIGVycm9ycy5OZXcoInRs
czogYmFkIGxlbmd0aCBDRUNQUTJiIG9mZmVyIikKKwl9CisKKwlpZiBfLCBlcnIgPSBpby5SZWFk
RnVsbChyYW5kLCBlLngyNTUxOVByaXZhdGVLZXlbOl0pOyBlcnIgIT0gbmlsIHsKKwkJcmV0dXJu
IG5pbCwgbmlsLCBlcnIKKwl9CisKKwl2YXIgeDI1NTE5U2hhcmVkLCB4MjU1MTlQZWVyS2V5LCB4
MjU1MTlQdWJsaWMgWzMyXWJ5dGUKKwljb3B5KHgyNTUxOVBlZXJLZXlbOl0sIHBlZXJLZXkpCisJ
Y3VydmUyNTUxOS5TY2FsYXJCYXNlTXVsdCgmeDI1NTE5UHVibGljLCAmZS54MjU1MTlQcml2YXRl
S2V5KQorCWN1cnZlMjU1MTkuU2NhbGFyTXVsdCgmeDI1NTE5U2hhcmVkLCAmZS54MjU1MTlQcml2
YXRlS2V5LCAmeDI1NTE5UGVlcktleSkKKworCS8vIFBlciBSRkMgNzc0OCwgcmVqZWN0IHRoZSBh
bGwtemVybyB2YWx1ZSBpbiBjb25zdGFudCB0aW1lLgorCXZhciB6ZXJvcyBbMzJdYnl0ZQorCWlm
IHN1YnRsZS5Db25zdGFudFRpbWVDb21wYXJlKHplcm9zWzpdLCB4MjU1MTlTaGFyZWRbOl0pID09
IDEgeworCQlyZXR1cm4gbmlsLCBuaWwsIGVycm9ycy5OZXcoInRsczogWDI1NTE5IHZhbHVlIHdp
dGggd3Jvbmcgb3JkZXIiKQorCX0KKworCXZhciBzaWtlUHViS2V5ID0gc2lrZS5OZXdQdWJsaWNL
ZXkoc2lrZS5LZXlWYXJpYW50X1NJS0UpCisJaWYgZXJyID0gc2lrZVB1YktleS5JbXBvcnQocGVl
cktleVszMjpdKTsgZXJyICE9IG5pbCB7CisJCS8vIHNob3VsZCBuZXZlciBoYXBwZW4gYXMgc2l6
ZSB3YXMgYWxyZWFkeSBjaGVja2VkCisJCXJldHVybiBuaWwsIG5pbCwgZXJyb3JzLk5ldygidGxz
OiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpCisJfQorCXNpa2VDaXBoZXJ0ZXh0LCBzaWtlU2hhcmVk
LCBlcnIgOj0gc2lrZS5FbmNhcHN1bGF0ZShyYW5kLCBzaWtlUHViS2V5KQorCWlmIGVyciAhPSBu
aWwgeworCQlyZXR1cm4gbmlsLCBuaWwsIGVycgorCX0KKworCXB1YmxpY0tleSA9IGFwcGVuZChw
dWJsaWNLZXksIHgyNTUxOVB1YmxpY1s6XS4uLikKKwlwdWJsaWNLZXkgPSBhcHBlbmQocHVibGlj
S2V5LCBzaWtlQ2lwaGVydGV4dC4uLikKKwlwcmVNYXN0ZXJTZWNyZXQgPSBhcHBlbmQocHJlTWFz
dGVyU2VjcmV0LCB4MjU1MTlTaGFyZWRbOl0uLi4pCisJcHJlTWFzdGVyU2VjcmV0ID0gYXBwZW5k
KHByZU1hc3RlclNlY3JldCwgc2lrZVNoYXJlZC4uLikKKworCXJldHVybiBwdWJsaWNLZXksIHBy
ZU1hc3RlclNlY3JldCwgbmlsCit9CisKK2Z1bmMgKGUgKmNlY3BxMkJDdXJ2ZSkgZmluaXNoKHBl
ZXJLZXkgW11ieXRlKSAocHJlTWFzdGVyU2VjcmV0IFtdYnl0ZSwgZXJyIGVycm9yKSB7CisJaWYg
bGVuKHBlZXJLZXkpICE9IDMyKyhzaWtlLlBhcmFtcy5QdWJsaWNLZXlTaXplK3Npa2UuUGFyYW1z
Lk1zZ0xlbikgeworCQlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJ0bHM6IGJhZCBsZW5ndGggQ0VD
UFEyYiByZXBseSIpCisJfQorCisJdmFyIHgyNTUxOVNoYXJlZCwgeDI1NTE5UGVlcktleSBbMzJd
Ynl0ZQorCWNvcHkoeDI1NTE5UGVlcktleVs6XSwgcGVlcktleSkKKwljdXJ2ZTI1NTE5LlNjYWxh
ck11bHQoJngyNTUxOVNoYXJlZCwgJmUueDI1NTE5UHJpdmF0ZUtleSwgJngyNTUxOVBlZXJLZXkp
CisKKwkvLyBQZXIgUkZDIDc3NDgsIHJlamVjdCB0aGUgYWxsLXplcm8gdmFsdWUgaW4gY29uc3Rh
bnQgdGltZS4KKwl2YXIgemVyb3MgWzMyXWJ5dGUKKwlpZiBzdWJ0bGUuQ29uc3RhbnRUaW1lQ29t
cGFyZSh6ZXJvc1s6XSwgeDI1NTE5U2hhcmVkWzpdKSA9PSAxIHsKKwkJcmV0dXJuIG5pbCwgZXJy
b3JzLk5ldygidGxzOiBYMjU1MTkgdmFsdWUgd2l0aCB3cm9uZyBvcmRlciIpCisJfQorCisJdmFy
IHNpa2VQdWJLZXkgPSBlLnNpa2VQcml2YXRlS2V5LkdlbmVyYXRlUHVibGljS2V5KCkKKwlzaWtl
U2hhcmVkLCBlcnIgOj0gc2lrZS5EZWNhcHN1bGF0ZShlLnNpa2VQcml2YXRlS2V5LCBzaWtlUHVi
S2V5LCBwZWVyS2V5WzMyOl0pCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBuaWwsIGVycm9y
cy5OZXcoInRsczogaW52YWxpZCBTSUtFIGNpcGhlcnRleHQiKQorCX0KKworCXByZU1hc3RlclNl
Y3JldCA9IGFwcGVuZChwcmVNYXN0ZXJTZWNyZXQsIHgyNTUxOVNoYXJlZFs6XS4uLikKKwlwcmVN
YXN0ZXJTZWNyZXQgPSBhcHBlbmQocHJlTWFzdGVyU2VjcmV0LCBzaWtlU2hhcmVkLi4uKQorCisJ
cmV0dXJuIHByZU1hc3RlclNlY3JldCwgbmlsCit9CisKIGZ1bmMgY3VydmVGb3JDdXJ2ZUlEKGlk
IEN1cnZlSUQsIGNvbmZpZyAqQ29uZmlnKSAoZWNkaEN1cnZlLCBib29sKSB7CiAJc3dpdGNoIGlk
IHsKIAljYXNlIEN1cnZlUDIyNDoKQEAgLTM1OSw2ICs1MzgsMTAgQEAgZnVuYyBjdXJ2ZUZvckN1
cnZlSUQoaWQgQ3VydmVJRCwgY29uZmlnICpDb25maWcpIChlY2RoQ3VydmUsIGJvb2wpIHsKIAkJ
cmV0dXJuICZlbGxpcHRpY0VDREhDdXJ2ZXtjdXJ2ZTogZWxsaXB0aWMuUDUyMSgpLCBzZW5kQ29t
cHJlc3NlZDogY29uZmlnLkJ1Z3MuU2VuZENvbXByZXNzZWRDb29yZGluYXRlc30sIHRydWUKIAlj
YXNlIEN1cnZlWDI1NTE5OgogCQlyZXR1cm4gJngyNTUxOUVDREhDdXJ2ZXtzZXRIaWdoQml0OiBj
b25maWcuQnVncy5TZXRYMjU1MTlIaWdoQml0fSwgdHJ1ZQorCWNhc2UgQ3VydmVDRUNQUTI6CisJ
CXJldHVybiAmY2VjcHEyQ3VydmV7fSwgdHJ1ZQorCWNhc2UgQ3VydmVDRUNQUTJiOgorCQlyZXR1
cm4gJmNlY3BxMkJDdXJ2ZXt9LCB0cnVlCiAJZGVmYXVsdDoKIAkJcmV0dXJuIG5pbCwgZmFsc2UK
IAl9CkBAIC0zNjksNyArNTUyLDcgQEAgZnVuYyBjdXJ2ZUZvckN1cnZlSUQoaWQgQ3VydmVJRCwg
Y29uZmlnICpDb25maWcpIChlY2RoQ3VydmUsIGJvb2wpIHsKIC8vIHRvIGF1dGhlbnRpY2F0ZSB0
aGUgU2VydmVyS2V5RXhjaGFuZ2UgcGFyYW1ldGVycy4KIHR5cGUga2V5QWdyZWVtZW50QXV0aGVu
dGljYXRpb24gaW50ZXJmYWNlIHsKIAlzaWduUGFyYW1ldGVycyhjb25maWcgKkNvbmZpZywgY2Vy
dCAqQ2VydGlmaWNhdGUsIGNsaWVudEhlbGxvICpjbGllbnRIZWxsb01zZywgaGVsbG8gKnNlcnZl
ckhlbGxvTXNnLCBwYXJhbXMgW11ieXRlKSAoKnNlcnZlcktleUV4Y2hhbmdlTXNnLCBlcnJvcikK
LQl2ZXJpZnlQYXJhbWV0ZXJzKGNvbmZpZyAqQ29uZmlnLCBjbGllbnRIZWxsbyAqY2xpZW50SGVs
bG9Nc2csIHNlcnZlckhlbGxvICpzZXJ2ZXJIZWxsb01zZywgY2VydCAqeDUwOS5DZXJ0aWZpY2F0
ZSwgcGFyYW1zIFtdYnl0ZSwgc2lnIFtdYnl0ZSkgZXJyb3IKKwl2ZXJpZnlQYXJhbWV0ZXJzKGNv
bmZpZyAqQ29uZmlnLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIHNlcnZlckhlbGxvICpz
ZXJ2ZXJIZWxsb01zZywga2V5IGNyeXB0by5QdWJsaWNLZXksIHBhcmFtcyBbXWJ5dGUsIHNpZyBb
XWJ5dGUpIGVycm9yCiB9CiAKIC8vIG5pbEtleUFncmVlbWVudEF1dGhlbnRpY2F0aW9uIGRvZXMg
bm90IGF1dGhlbnRpY2F0ZSB0aGUga2V5CkBAIC0zODIsNyArNTY1LDcgQEAgZnVuYyAoa2EgKm5p
bEtleUFncmVlbWVudEF1dGhlbnRpY2F0aW9uKSBzaWduUGFyYW1ldGVycyhjb25maWcgKkNvbmZp
ZywgY2VydCAqQ2UKIAlyZXR1cm4gc2t4LCBuaWwKIH0KIAotZnVuYyAoa2EgKm5pbEtleUFncmVl
bWVudEF1dGhlbnRpY2F0aW9uKSB2ZXJpZnlQYXJhbWV0ZXJzKGNvbmZpZyAqQ29uZmlnLCBjbGll
bnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIHNlcnZlckhlbGxvICpzZXJ2ZXJIZWxsb01zZywgY2Vy
dCAqeDUwOS5DZXJ0aWZpY2F0ZSwgcGFyYW1zIFtdYnl0ZSwgc2lnIFtdYnl0ZSkgZXJyb3Igewor
ZnVuYyAoa2EgKm5pbEtleUFncmVlbWVudEF1dGhlbnRpY2F0aW9uKSB2ZXJpZnlQYXJhbWV0ZXJz
KGNvbmZpZyAqQ29uZmlnLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIHNlcnZlckhlbGxv
ICpzZXJ2ZXJIZWxsb01zZywga2V5IGNyeXB0by5QdWJsaWNLZXksIHBhcmFtcyBbXWJ5dGUsIHNp
ZyBbXWJ5dGUpIGVycm9yIHsKIAlyZXR1cm4gbmlsCiB9CiAKQEAgLTQ0Miw5ICs2MjUsOCBAQCBm
dW5jIChrYSAqc2lnbmVkS2V5QWdyZWVtZW50KSBzaWduUGFyYW1ldGVycyhjb25maWcgKkNvbmZp
ZywgY2VydCAqQ2VydGlmaWNhdGUsCiAJcmV0dXJuIHNreCwgbmlsCiB9CiAKLWZ1bmMgKGthICpz
aWduZWRLZXlBZ3JlZW1lbnQpIHZlcmlmeVBhcmFtZXRlcnMoY29uZmlnICpDb25maWcsIGNsaWVu
dEhlbGxvICpjbGllbnRIZWxsb01zZywgc2VydmVySGVsbG8gKnNlcnZlckhlbGxvTXNnLCBjZXJ0
ICp4NTA5LkNlcnRpZmljYXRlLCBwYXJhbXMgW11ieXRlLCBzaWcgW11ieXRlKSBlcnJvciB7Citm
dW5jIChrYSAqc2lnbmVkS2V5QWdyZWVtZW50KSB2ZXJpZnlQYXJhbWV0ZXJzKGNvbmZpZyAqQ29u
ZmlnLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIHNlcnZlckhlbGxvICpzZXJ2ZXJIZWxs
b01zZywgcHVibGljS2V5IGNyeXB0by5QdWJsaWNLZXksIHBhcmFtcyBbXWJ5dGUsIHNpZyBbXWJ5
dGUpIGVycm9yIHsKIAkvLyBUaGUgcGVlcidzIGtleSBtdXN0IG1hdGNoIHRoZSBjaXBoZXIgdHlw
ZS4KLQlwdWJsaWNLZXkgOj0gZ2V0Q2VydGlmaWNhdGVQdWJsaWNLZXkoY2VydCkKIAlzd2l0Y2gg
a2Eua2V5VHlwZSB7CiAJY2FzZSBrZXlUeXBlRUNEU0E6CiAJCV8sIGVkc2FPayA6PSBwdWJsaWNL
ZXkuKCplY2RzYS5QdWJsaWNLZXkpCkBAIC01MDEsMTIgKzY4MywxNyBAQCB0eXBlIGVjZGhlS2V5
QWdyZWVtZW50IHN0cnVjdCB7CiAJcGVlcktleSBbXWJ5dGUKIH0KIAotZnVuYyAoa2EgKmVjZGhl
S2V5QWdyZWVtZW50KSBnZW5lcmF0ZVNlcnZlcktleUV4Y2hhbmdlKGNvbmZpZyAqQ29uZmlnLCBj
ZXJ0ICpDZXJ0aWZpY2F0ZSwgY2xpZW50SGVsbG8gKmNsaWVudEhlbGxvTXNnLCBoZWxsbyAqc2Vy
dmVySGVsbG9Nc2cpICgqc2VydmVyS2V5RXhjaGFuZ2VNc2csIGVycm9yKSB7CitmdW5jIChrYSAq
ZWNkaGVLZXlBZ3JlZW1lbnQpIGdlbmVyYXRlU2VydmVyS2V5RXhjaGFuZ2UoY29uZmlnICpDb25m
aWcsIGNlcnQgKkNlcnRpZmljYXRlLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIGhlbGxv
ICpzZXJ2ZXJIZWxsb01zZywgdmVyc2lvbiB1aW50MTYpICgqc2VydmVyS2V5RXhjaGFuZ2VNc2cs
IGVycm9yKSB7CiAJdmFyIGN1cnZlaWQgQ3VydmVJRAogCXByZWZlcnJlZEN1cnZlcyA6PSBjb25m
aWcuY3VydmVQcmVmZXJlbmNlcygpCiAKIE5leHRDYW5kaWRhdGU6CiAJZm9yIF8sIGNhbmRpZGF0
ZSA6PSByYW5nZSBwcmVmZXJyZWRDdXJ2ZXMgeworCQlpZiBpc1BxR3JvdXAoY2FuZGlkYXRlKSAm
JiB2ZXJzaW9uIDwgVmVyc2lvblRMUzEzIHsKKwkJCS8vIENFQ1BRMiBhbmQgQ0VDUFEyYiBpcyBU
TFMgMS4zLW9ubHkuCisJCQljb250aW51ZQorCQl9CisKIAkJZm9yIF8sIGMgOj0gcmFuZ2UgY2xp
ZW50SGVsbG8uc3VwcG9ydGVkQ3VydmVzIHsKIAkJCWlmIGNhbmRpZGF0ZSA9PSBjIHsKIAkJCQlj
dXJ2ZWlkID0gYwpAQCAtNTU0LDcgKzc0MSw3IEBAIGZ1bmMgKGthICplY2RoZUtleUFncmVlbWVu
dCkgcHJvY2Vzc0NsaWVudEtleUV4Y2hhbmdlKGNvbmZpZyAqQ29uZmlnLCBjZXJ0ICpDZXJ0CiAJ
cmV0dXJuIGthLmN1cnZlLmZpbmlzaChja3guY2lwaGVydGV4dFsxOl0pCiB9CiAKLWZ1bmMgKGth
ICplY2RoZUtleUFncmVlbWVudCkgcHJvY2Vzc1NlcnZlcktleUV4Y2hhbmdlKGNvbmZpZyAqQ29u
ZmlnLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIHNlcnZlckhlbGxvICpzZXJ2ZXJIZWxs
b01zZywgY2VydCAqeDUwOS5DZXJ0aWZpY2F0ZSwgc2t4ICpzZXJ2ZXJLZXlFeGNoYW5nZU1zZykg
ZXJyb3IgeworZnVuYyAoa2EgKmVjZGhlS2V5QWdyZWVtZW50KSBwcm9jZXNzU2VydmVyS2V5RXhj
aGFuZ2UoY29uZmlnICpDb25maWcsIGNsaWVudEhlbGxvICpjbGllbnRIZWxsb01zZywgc2VydmVy
SGVsbG8gKnNlcnZlckhlbGxvTXNnLCBrZXkgY3J5cHRvLlB1YmxpY0tleSwgc2t4ICpzZXJ2ZXJL
ZXlFeGNoYW5nZU1zZykgZXJyb3IgewogCWlmIGxlbihza3gua2V5KSA8IDQgewogCQlyZXR1cm4g
ZXJyU2VydmVyS2V5RXhjaGFuZ2UKIAl9CkBAIC01NzksNyArNzY2LDcgQEAgZnVuYyAoa2EgKmVj
ZGhlS2V5QWdyZWVtZW50KSBwcm9jZXNzU2VydmVyS2V5RXhjaGFuZ2UoY29uZmlnICpDb25maWcs
IGNsaWVudEhlbGwKIAkvLyBDaGVjayB0aGUgc2lnbmF0dXJlLgogCXNlcnZlckVDREhQYXJhbXMg
Oj0gc2t4LmtleVs6NCtwdWJsaWNMZW5dCiAJc2lnIDo9IHNreC5rZXlbNCtwdWJsaWNMZW46XQot
CXJldHVybiBrYS5hdXRoLnZlcmlmeVBhcmFtZXRlcnMoY29uZmlnLCBjbGllbnRIZWxsbywgc2Vy
dmVySGVsbG8sIGNlcnQsIHNlcnZlckVDREhQYXJhbXMsIHNpZykKKwlyZXR1cm4ga2EuYXV0aC52
ZXJpZnlQYXJhbWV0ZXJzKGNvbmZpZywgY2xpZW50SGVsbG8sIHNlcnZlckhlbGxvLCBrZXksIHNl
cnZlckVDREhQYXJhbXMsIHNpZykKIH0KIAogZnVuYyAoa2EgKmVjZGhlS2V5QWdyZWVtZW50KSBn
ZW5lcmF0ZUNsaWVudEtleUV4Y2hhbmdlKGNvbmZpZyAqQ29uZmlnLCBjbGllbnRIZWxsbyAqY2xp
ZW50SGVsbG9Nc2csIGNlcnQgKng1MDkuQ2VydGlmaWNhdGUpIChbXWJ5dGUsICpjbGllbnRLZXlF
eGNoYW5nZU1zZywgZXJyb3IpIHsKQEAgLTYxNCw3ICs4MDEsNyBAQCBmdW5jIChrYSAqZWNkaGVL
ZXlBZ3JlZW1lbnQpIHBlZXJTaWduYXR1cmVBbGdvcml0aG0oKSBzaWduYXR1cmVBbGdvcml0aG0g
ewogLy8gZXhjaGFuZ2UuCiB0eXBlIG5pbEtleUFncmVlbWVudCBzdHJ1Y3R7fQogCi1mdW5jIChr
YSAqbmlsS2V5QWdyZWVtZW50KSBnZW5lcmF0ZVNlcnZlcktleUV4Y2hhbmdlKGNvbmZpZyAqQ29u
ZmlnLCBjZXJ0ICpDZXJ0aWZpY2F0ZSwgY2xpZW50SGVsbG8gKmNsaWVudEhlbGxvTXNnLCBoZWxs
byAqc2VydmVySGVsbG9Nc2cpICgqc2VydmVyS2V5RXhjaGFuZ2VNc2csIGVycm9yKSB7CitmdW5j
IChrYSAqbmlsS2V5QWdyZWVtZW50KSBnZW5lcmF0ZVNlcnZlcktleUV4Y2hhbmdlKGNvbmZpZyAq
Q29uZmlnLCBjZXJ0ICpDZXJ0aWZpY2F0ZSwgY2xpZW50SGVsbG8gKmNsaWVudEhlbGxvTXNnLCBo
ZWxsbyAqc2VydmVySGVsbG9Nc2csIHZlcnNpb24gdWludDE2KSAoKnNlcnZlcktleUV4Y2hhbmdl
TXNnLCBlcnJvcikgewogCXJldHVybiBuaWwsIG5pbAogfQogCkBAIC02MzAsNyArODE3LDcgQEAg
ZnVuYyAoa2EgKm5pbEtleUFncmVlbWVudCkgcHJvY2Vzc0NsaWVudEtleUV4Y2hhbmdlKGNvbmZp
ZyAqQ29uZmlnLCBjZXJ0ICpDZXJ0aWYKIAlyZXR1cm4gbmlsLCBuaWwKIH0KIAotZnVuYyAoa2Eg
Km5pbEtleUFncmVlbWVudCkgcHJvY2Vzc1NlcnZlcktleUV4Y2hhbmdlKGNvbmZpZyAqQ29uZmln
LCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIHNlcnZlckhlbGxvICpzZXJ2ZXJIZWxsb01z
ZywgY2VydCAqeDUwOS5DZXJ0aWZpY2F0ZSwgc2t4ICpzZXJ2ZXJLZXlFeGNoYW5nZU1zZykgZXJy
b3IgeworZnVuYyAoa2EgKm5pbEtleUFncmVlbWVudCkgcHJvY2Vzc1NlcnZlcktleUV4Y2hhbmdl
KGNvbmZpZyAqQ29uZmlnLCBjbGllbnRIZWxsbyAqY2xpZW50SGVsbG9Nc2csIHNlcnZlckhlbGxv
ICpzZXJ2ZXJIZWxsb01zZywga2V5IGNyeXB0by5QdWJsaWNLZXksIHNreCAqc2VydmVyS2V5RXhj
aGFuZ2VNc2cpIGVycm9yIHsKIAlpZiBsZW4oc2t4LmtleSkgIT0gMCB7CiAJCXJldHVybiBlcnJT
ZXJ2ZXJLZXlFeGNoYW5nZQogCX0KQEAgLTY2Niw3ICs4NTMsNyBAQCB0eXBlIHBza0tleUFncmVl
bWVudCBzdHJ1Y3QgewogCWlkZW50aXR5SGludCBzdHJpbmcKIH0KIAotZnVuYyAoa2EgKnBza0tl
eUFncmVlbWVudCkgZ2VuZXJhdGVTZXJ2ZXJLZXlFeGNoYW5nZShjb25maWcgKkNvbmZpZywgY2Vy
dCAqQ2VydGlmaWNhdGUsIGNsaWVudEhlbGxvICpjbGllbnRIZWxsb01zZywgaGVsbG8gKnNlcnZl
ckhlbGxvTXNnKSAoKnNlcnZlcktleUV4Y2hhbmdlTXNnLCBlcnJvcikgeworZnVuYyAoa2EgKnBz
a0tleUFncmVlbWVudCkgZ2VuZXJhdGVTZXJ2ZXJLZXlFeGNoYW5nZShjb25maWcgKkNvbmZpZywg
Y2VydCAqQ2VydGlmaWNhdGUsIGNsaWVudEhlbGxvICpjbGllbnRIZWxsb01zZywgaGVsbG8gKnNl
cnZlckhlbGxvTXNnLCB2ZXJzaW9uIHVpbnQxNikgKCpzZXJ2ZXJLZXlFeGNoYW5nZU1zZywgZXJy
b3IpIHsKIAkvLyBBc3NlbWJsZSB0aGUgaWRlbnRpdHkgaGludC4KIAlieXRlcyA6PSBtYWtlKFtd
Ynl0ZSwgMitsZW4oY29uZmlnLlByZVNoYXJlZEtleUlkZW50aXR5KSkKIAlieXRlc1swXSA9IGJ5
dGUobGVuKGNvbmZpZy5QcmVTaGFyZWRLZXlJZGVudGl0eSkgPj4gOCkKQEAgLTY3NSw3ICs4NjIs
NyBAQCBmdW5jIChrYSAqcHNrS2V5QWdyZWVtZW50KSBnZW5lcmF0ZVNlcnZlcktleUV4Y2hhbmdl
KGNvbmZpZyAqQ29uZmlnLCBjZXJ0ICpDZXJ0aQogCiAJLy8gSWYgdGhlcmUgaXMgb25lLCBhcHBl
bmQgdGhlIGJhc2Uga2V5IGFncmVlbWVudCdzCiAJLy8gU2VydmVyS2V5RXhjaGFuZ2UuCi0JYmFz
ZVNreCwgZXJyIDo9IGthLmJhc2UuZ2VuZXJhdGVTZXJ2ZXJLZXlFeGNoYW5nZShjb25maWcsIGNl
cnQsIGNsaWVudEhlbGxvLCBoZWxsbykKKwliYXNlU2t4LCBlcnIgOj0ga2EuYmFzZS5nZW5lcmF0
ZVNlcnZlcktleUV4Y2hhbmdlKGNvbmZpZywgY2VydCwgY2xpZW50SGVsbG8sIGhlbGxvLCB2ZXJz
aW9uKQogCWlmIGVyciAhPSBuaWwgewogCQlyZXR1cm4gbmlsLCBlcnIKIAl9CkBAIC03MjgsNyAr
OTE1LDcgQEAgZnVuYyAoa2EgKnBza0tleUFncmVlbWVudCkgcHJvY2Vzc0NsaWVudEtleUV4Y2hh
bmdlKGNvbmZpZyAqQ29uZmlnLCBjZXJ0ICpDZXJ0aWYKIAlyZXR1cm4gbWFrZVBTS1ByZW1hc3Rl
cihvdGhlclNlY3JldCwgY29uZmlnLlByZVNoYXJlZEtleSksIG5pbAogfQogCi1mdW5jIChrYSAq
cHNrS2V5QWdyZWVtZW50KSBwcm9jZXNzU2VydmVyS2V5RXhjaGFuZ2UoY29uZmlnICpDb25maWcs
IGNsaWVudEhlbGxvICpjbGllbnRIZWxsb01zZywgc2VydmVySGVsbG8gKnNlcnZlckhlbGxvTXNn
LCBjZXJ0ICp4NTA5LkNlcnRpZmljYXRlLCBza3ggKnNlcnZlcktleUV4Y2hhbmdlTXNnKSBlcnJv
ciB7CitmdW5jIChrYSAqcHNrS2V5QWdyZWVtZW50KSBwcm9jZXNzU2VydmVyS2V5RXhjaGFuZ2Uo
Y29uZmlnICpDb25maWcsIGNsaWVudEhlbGxvICpjbGllbnRIZWxsb01zZywgc2VydmVySGVsbG8g
KnNlcnZlckhlbGxvTXNnLCBrZXkgY3J5cHRvLlB1YmxpY0tleSwgc2t4ICpzZXJ2ZXJLZXlFeGNo
YW5nZU1zZykgZXJyb3IgewogCWlmIGxlbihza3gua2V5KSA8IDIgewogCQlyZXR1cm4gZXJyU2Vy
dmVyS2V5RXhjaGFuZ2UKIAl9CkBAIC03NDEsNyArOTI4LDcgQEAgZnVuYyAoa2EgKnBza0tleUFn
cmVlbWVudCkgcHJvY2Vzc1NlcnZlcktleUV4Y2hhbmdlKGNvbmZpZyAqQ29uZmlnLCBjbGllbnRI
ZWxsbwogCS8vIFByb2Nlc3MgdGhlIHJlbWFpbmRlciBvZiB0aGUgU2VydmVyS2V5RXhjaGFuZ2Uu
CiAJbmV3U2t4IDo9IG5ldyhzZXJ2ZXJLZXlFeGNoYW5nZU1zZykKIAluZXdTa3gua2V5ID0gc2t4
LmtleVsyK2lkZW50aXR5TGVuOl0KLQlyZXR1cm4ga2EuYmFzZS5wcm9jZXNzU2VydmVyS2V5RXhj
aGFuZ2UoY29uZmlnLCBjbGllbnRIZWxsbywgc2VydmVySGVsbG8sIGNlcnQsIG5ld1NreCkKKwly
ZXR1cm4ga2EuYmFzZS5wcm9jZXNzU2VydmVyS2V5RXhjaGFuZ2UoY29uZmlnLCBjbGllbnRIZWxs
bywgc2VydmVySGVsbG8sIGtleSwgbmV3U2t4KQogfQogCiBmdW5jIChrYSAqcHNrS2V5QWdyZWVt
ZW50KSBnZW5lcmF0ZUNsaWVudEtleUV4Y2hhbmdlKGNvbmZpZyAqQ29uZmlnLCBjbGllbnRIZWxs
byAqY2xpZW50SGVsbG9Nc2csIGNlcnQgKng1MDkuQ2VydGlmaWNhdGUpIChbXWJ5dGUsICpjbGll
bnRLZXlFeGNoYW5nZU1zZywgZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5u
ZXIvcnVubmVyLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9ydW5uZXIuZ28KaW5kZXggZmFkYzg5
MGZkYTBiNTIwMGE5MDM3OGI4N2EwMmNhNGUyMjYxMzBlYy4uNWE0YjBjYzk4MGM4NWU5NzIzMWZl
Y2YyMjAyOTMzZGFjY2UyZTM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9ydW5u
ZXIuZ28KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9ydW5uZXIuZ28KQEAgLTE2LDEyICsxNiwx
NSBAQCBwYWNrYWdlIHJ1bm5lcgogCiBpbXBvcnQgKAogCSJieXRlcyIKKwkiY3J5cHRvIgogCSJj
cnlwdG8vZWNkc2EiCiAJImNyeXB0by9lbGxpcHRpYyIKIAkiY3J5cHRvL3JhbmQiCisJImNyeXB0
by9yc2EiCiAJImNyeXB0by94NTA5IgogCSJjcnlwdG8veDUwOS9wa2l4IgogCSJlbmNvZGluZy9i
YXNlNjQiCisJImVuY29kaW5nL2JpbmFyeSIKIAkiZW5jb2RpbmcvaGV4IgogCSJlbmNvZGluZy9q
c29uIgogCSJlbmNvZGluZy9wZW0iCkBAIC0yNDUsNiArMjQ4LDE0MyBAQCBmdW5jIGluaXRDZXJ0
aWZpY2F0ZXMoKSB7CiAJZ2FyYmFnZUNlcnRpZmljYXRlLlByaXZhdGVLZXkgPSByc2FDZXJ0aWZp
Y2F0ZS5Qcml2YXRlS2V5CiB9CiAKKy8vIGRlbGVnYXRlZENyZWRlbnRpYWxDb25maWcgc3BlY2lm
aWVzIHRoZSBzaGFwZSBvZiBhIGRlbGVnYXRlZCBjcmVkZW50aWFsLCBub3QKKy8vIGluY2x1ZGlu
ZyB0aGUga2V5cyB0aGVtc2VsdmVzLgordHlwZSBkZWxlZ2F0ZWRDcmVkZW50aWFsQ29uZmlnIHN0
cnVjdCB7CisJLy8gbGlmZXRpbWUgaXMgdGhlIGFtb3VudCBvZiB0aW1lLCBmcm9tIHRoZSBub3RC
ZWZvcmUgb2YgdGhlIHBhcmVudAorCS8vIGNlcnRpZmljYXRlLCB0aGF0IHRoZSBkZWxlZ2F0ZWQg
Y3JlZGVudGlhbCBpcyB2YWxpZCBmb3IuIElmIHplcm8sIHRoZW4gMjQKKwkvLyBob3VycyBpcyBh
c3N1bWVkLgorCWxpZmV0aW1lIHRpbWUuRHVyYXRpb24KKwkvLyBleHBlY3RlZEFsZ28gaXMgdGhl
IHNpZ25hdHVyZSBzY2hlbWUgdGhhdCBzaG91bGQgYmUgdXNlZCB3aXRoIHRoaXMKKwkvLyBkZWxl
Z2F0ZWQgY3JlZGVudGlhbC4gSWYgemVybywgRUNEU0Egd2l0aCBQLTI1NiBpcyBhc3N1bWVkLgor
CWV4cGVjdGVkQWxnbyBzaWduYXR1cmVBbGdvcml0aG0KKwkvLyB0bHNWZXJzaW9uIGlzIHRoZSB2
ZXJzaW9uIG9mIFRMUyB0aGF0IHNob3VsZCBiZSB1c2VkIHdpdGggdGhpcyBkZWxlZ2F0ZWQKKwkv
LyBjcmVkZW50aWFsLiBJZiB6ZXJvLCBUTFMgMS4zIGlzIGFzc3VtZWQuCisJdGxzVmVyc2lvbiB1
aW50MTYKKwkvLyBhbGdvIGlzIHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIHRoYXQgdGhlIGRlbGVn
YXRlZCBjcmVkZW50aWFsIGl0c2VsZiBpcworCS8vIHNpZ25lZCB3aXRoLiBDYW5ub3QgYmUgemVy
by4KKwlhbGdvIHNpZ25hdHVyZUFsZ29yaXRobQorfQorCitmdW5jIGxvYWRSU0FQcml2YXRlS2V5
KGZpbGVuYW1lIHN0cmluZykgKHByaXYgKnJzYS5Qcml2YXRlS2V5LCBwcml2UEtDUzggW11ieXRl
LCBlcnIgZXJyb3IpIHsKKwlwZW1QYXRoIDo9IHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIGZpbGVu
YW1lKQorCXBlbUJ5dGVzLCBlcnIgOj0gaW91dGlsLlJlYWRGaWxlKHBlbVBhdGgpCisJaWYgZXJy
ICE9IG5pbCB7CisJCXJldHVybiBuaWwsIG5pbCwgZXJyCisJfQorCisJYmxvY2ssIF8gOj0gcGVt
LkRlY29kZShwZW1CeXRlcykKKwlpZiBibG9jayA9PSBuaWwgeworCQlyZXR1cm4gbmlsLCBuaWws
IGZtdC5FcnJvcmYoIm5vIFBFTSBibG9jayBmb3VuZCBpbiAlcSIsIHBlbVBhdGgpCisJfQorCXBy
aXZQS0NTOCA9IGJsb2NrLkJ5dGVzCisKKwlwYXJzZWQsIGVyciA6PSB4NTA5LlBhcnNlUEtDUzhQ
cml2YXRlS2V5KHByaXZQS0NTOCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgbmls
LCBmbXQuRXJyb3JmKCJmYWlsZWQgdG8gcGFyc2UgUEtDUyM4IGtleSBmcm9tICVxIiwgcGVtUGF0
aCkKKwl9CisKKwlwcml2LCBvayA6PSBwYXJzZWQuKCpyc2EuUHJpdmF0ZUtleSkKKwlpZiAhb2sg
eworCQlyZXR1cm4gbmlsLCBuaWwsIGZtdC5FcnJvcmYoImZvdW5kICVUIGluICVxIHJhdGhlciB0
aGFuIGFuIFJTQSBwcml2YXRlIGtleSIsIHBhcnNlZCwgcGVtUGF0aCkKKwl9CisKKwlyZXR1cm4g
cHJpdiwgcHJpdlBLQ1M4LCBuaWwKK30KKworZnVuYyBjcmVhdGVEZWxlZ2F0ZWRDcmVkZW50aWFs
KGNvbmZpZyBkZWxlZ2F0ZWRDcmVkZW50aWFsQ29uZmlnLCBwYXJlbnRERVIgW11ieXRlLCBwYXJl
bnRQcml2IGNyeXB0by5Qcml2YXRlS2V5KSAoZGMsIHByaXZQS0NTOCBbXXVpbnQ4LCBlcnIgZXJy
b3IpIHsKKwlleHBlY3RlZEFsZ28gOj0gY29uZmlnLmV4cGVjdGVkQWxnbworCWlmIGV4cGVjdGVk
QWxnbyA9PSBzaWduYXR1cmVBbGdvcml0aG0oMCkgeworCQlleHBlY3RlZEFsZ28gPSBzaWduYXR1
cmVFQ0RTQVdpdGhQMjU2QW5kU0hBMjU2CisJfQorCisJdmFyIHB1YiBjcnlwdG8uUHVibGljS2V5
CisKKwlzd2l0Y2ggZXhwZWN0ZWRBbGdvIHsKKwljYXNlIHNpZ25hdHVyZVJTQVBLQ1MxV2l0aE1E
NSwgc2lnbmF0dXJlUlNBUEtDUzFXaXRoU0hBMSwgc2lnbmF0dXJlUlNBUEtDUzFXaXRoU0hBMjU2
LCBzaWduYXR1cmVSU0FQS0NTMVdpdGhTSEEzODQsIHNpZ25hdHVyZVJTQVBLQ1MxV2l0aFNIQTUx
Miwgc2lnbmF0dXJlUlNBUFNTV2l0aFNIQTI1Niwgc2lnbmF0dXJlUlNBUFNTV2l0aFNIQTM4NCwg
c2lnbmF0dXJlUlNBUFNTV2l0aFNIQTUxMjoKKwkJLy8gUlNBIGtleXMgYXJlIGV4cGVuc2l2ZSB0
byBnZW5lcmF0ZSBzbyBsb2FkIGZyb20gZGlzayBpbnN0ZWFkLgorCQl2YXIgcHJpdiAqcnNhLlBy
aXZhdGVLZXkKKwkJaWYgcHJpdiwgcHJpdlBLQ1M4LCBlcnIgPSBsb2FkUlNBUHJpdmF0ZUtleShy
c2FLZXlGaWxlKTsgZXJyICE9IG5pbCB7CisJCQlyZXR1cm4gbmlsLCBuaWwsIGVycgorCQl9CisK
KwkJcHViID0gJnByaXYuUHVibGljS2V5CisKKwljYXNlIHNpZ25hdHVyZUVDRFNBV2l0aFNIQTEs
IHNpZ25hdHVyZUVDRFNBV2l0aFAyNTZBbmRTSEEyNTYsIHNpZ25hdHVyZUVDRFNBV2l0aFAzODRB
bmRTSEEzODQsIHNpZ25hdHVyZUVDRFNBV2l0aFA1MjFBbmRTSEE1MTI6CisJCXZhciBjdXJ2ZSBl
bGxpcHRpYy5DdXJ2ZQorCQlzd2l0Y2ggZXhwZWN0ZWRBbGdvIHsKKwkJY2FzZSBzaWduYXR1cmVF
Q0RTQVdpdGhTSEExLCBzaWduYXR1cmVFQ0RTQVdpdGhQMjU2QW5kU0hBMjU2OgorCQkJY3VydmUg
PSBlbGxpcHRpYy5QMjU2KCkKKwkJY2FzZSBzaWduYXR1cmVFQ0RTQVdpdGhQMzg0QW5kU0hBMzg0
OgorCQkJY3VydmUgPSBlbGxpcHRpYy5QMzg0KCkKKwkJY2FzZSBzaWduYXR1cmVFQ0RTQVdpdGhQ
NTIxQW5kU0hBNTEyOgorCQkJY3VydmUgPSBlbGxpcHRpYy5QNTIxKCkKKwkJZGVmYXVsdDoKKwkJ
CXBhbmljKCJpbnRlcm5hbCBlcnJvciIpCisJCX0KKworCQlwcml2LCBlcnIgOj0gZWNkc2EuR2Vu
ZXJhdGVLZXkoY3VydmUsIHJhbmQuUmVhZGVyKQorCQlpZiBlcnIgIT0gbmlsIHsKKwkJCXJldHVy
biBuaWwsIG5pbCwgZXJyCisJCX0KKworCQlpZiBwcml2UEtDUzgsIGVyciA9IHg1MDkuTWFyc2hh
bFBLQ1M4UHJpdmF0ZUtleShwcml2KTsgZXJyICE9IG5pbCB7CisJCQlyZXR1cm4gbmlsLCBuaWws
IGVycgorCQl9CisKKwkJcHViID0gJnByaXYuUHVibGljS2V5CisKKwlkZWZhdWx0OgorCQlyZXR1
cm4gbmlsLCBuaWwsIGZtdC5FcnJvcmYoInVuc3VwcG9ydGVkIGV4cGVjdGVkIHNpZ25hdHVyZSBh
bGdvcml0aG06ICV4IiwgZXhwZWN0ZWRBbGdvKQorCX0KKworCWxpZmV0aW1lIDo9IGNvbmZpZy5s
aWZldGltZQorCWlmIGxpZmV0aW1lID09IDAgeworCQlsaWZldGltZSA9IDI0ICogdGltZS5Ib3Vy
CisJfQorCWxpZmV0aW1lU2VjcyA6PSBpbnQ2NChsaWZldGltZS5TZWNvbmRzKCkpCisJaWYgbGlm
ZXRpbWVTZWNzID4gMTw8MzIgeworCQlyZXR1cm4gbmlsLCBuaWwsIGZtdC5FcnJvcmYoImxpZmV0
aW1lICVzIGlzIHRvbyBsb25nIHRvIGJlIGV4cHJlc3NlZCIsIGxpZmV0aW1lKQorCX0KKwl0bHNW
ZXJzaW9uIDo9IGNvbmZpZy50bHNWZXJzaW9uCisJaWYgdGxzVmVyc2lvbiA9PSAwIHsKKwkJdGxz
VmVyc2lvbiA9IFZlcnNpb25UTFMxMworCX0KKworCWlmIHRsc1ZlcnNpb24gPCBWZXJzaW9uVExT
MTMgeworCQlyZXR1cm4gbmlsLCBuaWwsIGZtdC5FcnJvcmYoImRlbGVnYXRlZCBjcmVkZW50aWFs
cyByZXF1aXJlIFRMUyAxLjMiKQorCX0KKworCS8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRt
bC9kcmFmdC1pZXRmLXRscy1zdWJjZXJ0cy0wMyNzZWN0aW9uLTMKKwlkYyA9IGFwcGVuZChkYywg
Ynl0ZShsaWZldGltZVNlY3M+PjI0KSwgYnl0ZShsaWZldGltZVNlY3M+PjE2KSwgYnl0ZShsaWZl
dGltZVNlY3M+PjgpLCBieXRlKGxpZmV0aW1lU2VjcykpCisJZGMgPSBhcHBlbmQoZGMsIGJ5dGUo
ZXhwZWN0ZWRBbGdvPj44KSwgYnl0ZShleHBlY3RlZEFsZ28pKQorCisJcHViQnl0ZXMsIGVyciA6
PSB4NTA5Lk1hcnNoYWxQS0lYUHVibGljS2V5KHB1YikKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0
dXJuIG5pbCwgbmlsLCBlcnIKKwl9CisKKwlkYyA9IGFwcGVuZChkYywgYnl0ZShsZW4ocHViQnl0
ZXMpPj4xNiksIGJ5dGUobGVuKHB1YkJ5dGVzKT4+OCksIGJ5dGUobGVuKHB1YkJ5dGVzKSkpCisJ
ZGMgPSBhcHBlbmQoZGMsIHB1YkJ5dGVzLi4uKQorCisJdmFyIGR1bW15Q29uZmlnIENvbmZpZwor
CXBhcmVudFNpZ25lciwgZXJyIDo9IGdldFNpZ25lcih0bHNWZXJzaW9uLCBwYXJlbnRQcml2LCAm
ZHVtbXlDb25maWcsIGNvbmZpZy5hbGdvLCBmYWxzZSAvKiBub3QgZm9yIHZlcmlmaWNhdGlvbiAq
LykKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgbmlsLCBlcnIKKwl9CisKKwlwYXJl
bnRTaWduYXR1cmUsIGVyciA6PSBwYXJlbnRTaWduZXIuc2lnbk1lc3NhZ2UocGFyZW50UHJpdiwg
JmR1bW15Q29uZmlnLCBkZWxlZ2F0ZWRDcmVkZW50aWFsU2lnbmVkTWVzc2FnZShkYywgY29uZmln
LmFsZ28sIHBhcmVudERFUikpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBuaWwsIG5pbCwg
ZXJyCisJfQorCisJZGMgPSBhcHBlbmQoZGMsIGJ5dGUoY29uZmlnLmFsZ28+PjgpLCBieXRlKGNv
bmZpZy5hbGdvKSkKKwlkYyA9IGFwcGVuZChkYywgYnl0ZShsZW4ocGFyZW50U2lnbmF0dXJlKT4+
OCksIGJ5dGUobGVuKHBhcmVudFNpZ25hdHVyZSkpKQorCWRjID0gYXBwZW5kKGRjLCBwYXJlbnRT
aWduYXR1cmUuLi4pCisKKwlyZXR1cm4gZGMsIHByaXZQS0NTOCwgbmlsCit9CisKIGZ1bmMgZ2V0
UnVubmVyQ2VydGlmaWNhdGUodCB0ZXN0Q2VydCkgQ2VydGlmaWNhdGUgewogCWZvciBfLCBjZXJ0
IDo9IHJhbmdlIHRlc3RDZXJ0cyB7CiAJCWlmIGNlcnQuaWQgPT0gdCB7CkBAIC00NDksOSArNTg5
LDYgQEAgdHlwZSB0ZXN0Q2FzZSBzdHJ1Y3QgewogCWV4cG9ydExhYmVsICAgICAgICAgIHN0cmlu
ZwogCWV4cG9ydENvbnRleHQgICAgICAgIHN0cmluZwogCXVzZUV4cG9ydENvbnRleHQgICAgIGJv
b2wKLQkvLyBleHBvcnRFYXJseUtleWluZ01hdGVyaWFsLCBpZiBub24temVybywgYmVoYXZlcyBs
aWtlCi0JLy8gZXhwb3J0S2V5aW5nTWF0ZXJpYWwsIGJ1dCBmb3IgdGhlIGVhcmx5IGV4cG9ydGVy
LgotCWV4cG9ydEVhcmx5S2V5aW5nTWF0ZXJpYWwgaW50CiAJLy8gZmxhZ3MsIGlmIG5vdCBlbXB0
eSwgY29udGFpbnMgYSBsaXN0IG9mIGNvbW1hbmQtbGluZSBmbGFncyB0aGF0IHdpbGwKIAkvLyBi
ZSBwYXNzZWQgdG8gdGhlIHNoaW0gcHJvZ3JhbS4KIAlmbGFncyBbXXN0cmluZwpAQCAtNDcyLDYg
KzYwOSwxMSBAQCB0eXBlIHRlc3RDYXNlIHN0cnVjdCB7CiAJc2VuZEtleVVwZGF0ZXMgaW50CiAJ
Ly8ga2V5VXBkYXRlUmVxdWVzdCBpcyB0aGUgS2V5VXBkYXRlUmVxdWVzdCB2YWx1ZSB0byBzZW5k
IGluIEtleVVwZGF0ZSBtZXNzYWdlcy4KIAlrZXlVcGRhdGVSZXF1ZXN0IGJ5dGUKKwkvLyBleHBl
Y3RVbnNvbGljaXRlZEtleVVwZGF0ZSBtYWtlcyB0aGUgdGVzdCBleHBlY3QgYSBvbmUgb3IgbW9y
ZSBLZXlVcGRhdGUKKwkvLyBtZXNzYWdlcyB3aGlsZSByZWFkaW5nIGRhdGEgZnJvbSB0aGUgc2hp
bS4gRG9uJ3QgdXNlIHRoaXMgaW4gY29tYmluYXRpb24KKwkvLyB3aXRoIGFueSBvZiB0aGUgZmll
bGRzIHRoYXQgc2VuZCBhIEtleVVwZGF0ZSBvdGhlcndpc2UgYW55IHJlY2VpdmVkCisJLy8gS2V5
VXBkYXRlIG1pZ2h0IG5vdCBiZSBhcyB1bnNvbGljaXRlZCBhcyBleHBlY3RlZC4KKwlleHBlY3RV
bnNvbGljaXRlZEtleVVwZGF0ZSBib29sCiAJLy8gZXhwZWN0TWVzc2FnZURyb3BwZWQsIGlmIHRy
dWUsIG1lYW5zIHRoZSB0ZXN0IG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8KIAkvLyBiZSBkcm9wcGVk
IGJ5IHRoZSBjbGllbnQgcmF0aGVyIHRoYW4gZWNob2VkIGJhY2suCiAJZXhwZWN0TWVzc2FnZURy
b3BwZWQgYm9vbApAQCAtNDgzLDEzICs2MjUsMTIgQEAgdHlwZSB0ZXN0Q2FzZSBzdHJ1Y3Qgewog
CS8vIHJlc3VtZVNoaW1QcmVmaXggaXMgdGhlIHByZWZpeCB0aGF0IHRoZSBzaGltIHdpbGwgc2Vu
ZCB0byB0aGUgc2VydmVyIG9uIGEKIAkvLyByZXN1bXB0aW9uLgogCXJlc3VtZVNoaW1QcmVmaXgg
c3RyaW5nCi0JLy8gdGxzMTNWYXJpYW50LCBpZiBub24temVybywgY2F1c2VzIGJvdGggcnVubmVy
IGFuZCBzaGltIHRvIGJlCi0JLy8gY29uZmlndXJlZCB3aXRoIHRoZSBzcGVjaWZpZWQgVExTIDEu
MyB2YXJpYW50LiBUaGlzIGlzIGEgY29udmVuaWVuY2UKLQkvLyBvcHRpb24gZm9yIGNvbmZpZ3Vy
aW5nIGJvdGggY29uY3VycmVudGx5LgotCXRsczEzVmFyaWFudCBpbnQKIAkvLyBleHBlY3RlZFFV
SUNUcmFuc3BvcnRQYXJhbXMgY29udGFpbnMgdGhlIFFVSUMgdHJhbnNwb3J0CiAJLy8gcGFyYW1l
dGVycyB0aGF0IGFyZSBleHBlY3RlZCB0byBiZSBzZW50IGJ5IHRoZSBwZWVyLgogCWV4cGVjdGVk
UVVJQ1RyYW5zcG9ydFBhcmFtcyBbXWJ5dGUKKwkvLyBleHBvcnRUcmFmZmljU2VjcmV0cywgaWYg
dHJ1ZSwgY29uZmlndXJlcyB0aGUgdGVzdCB0byBleHBvcnQgdGhlIFRMUyAxLjMKKwkvLyB0cmFm
ZmljIHNlY3JldHMgYW5kIGNvbmZpcm1zIHRoYXQgdGhleSBtYXRjaC4KKwlleHBvcnRUcmFmZmlj
U2VjcmV0cyBib29sCiB9CiAKIHZhciB0ZXN0Q2FzZXMgW110ZXN0Q2FzZQpAQCAtNTYzLDkgKzcw
NCw2IEBAIGZ1bmMgZG9FeGNoYW5nZSh0ZXN0ICp0ZXN0Q2FzZSwgY29uZmlnICpDb25maWcsIGNv
bm4gbmV0LkNvbm4sIGlzUmVzdW1lIGJvb2wsIHRyCiAJaWYgKmRldGVybWluaXN0aWMgewogCQlj
b25maWcuVGltZSA9IGZ1bmMoKSB0aW1lLlRpbWUgeyByZXR1cm4gdGltZS5Vbml4KDEyMzQsIDEy
MzQpIH0KIAl9Ci0JaWYgdGVzdC50bHMxM1ZhcmlhbnQgIT0gMCB7Ci0JCWNvbmZpZy5UTFMxM1Zh
cmlhbnQgPSB0ZXN0LnRsczEzVmFyaWFudAotCX0KIAogCWNvbm4gPSAmdGltZW91dENvbm57Y29u
biwgKmlkbGVUaW1lb3V0fQogCkBAIC03NDAsMzEgKzg3OCw0MyBAQCBmdW5jIGRvRXhjaGFuZ2Uo
dGVzdCAqdGVzdENhc2UsIGNvbmZpZyAqQ29uZmlnLCBjb25uIG5ldC5Db25uLCBpc1Jlc3VtZSBi
b29sLCB0cgogCQl9CiAJfQogCi0JaWYgaXNSZXN1bWUgJiYgdGVzdC5leHBvcnRFYXJseUtleWlu
Z01hdGVyaWFsID4gMCB7Ci0JCWFjdHVhbCA6PSBtYWtlKFtdYnl0ZSwgdGVzdC5leHBvcnRFYXJs
eUtleWluZ01hdGVyaWFsKQorCWlmIHRlc3QuZXhwb3J0S2V5aW5nTWF0ZXJpYWwgPiAwIHsKKwkJ
YWN0dWFsIDo9IG1ha2UoW11ieXRlLCB0ZXN0LmV4cG9ydEtleWluZ01hdGVyaWFsKQogCQlpZiBf
LCBlcnIgOj0gaW8uUmVhZEZ1bGwodGxzQ29ubiwgYWN0dWFsKTsgZXJyICE9IG5pbCB7CiAJCQly
ZXR1cm4gZXJyCiAJCX0KLQkJZXhwZWN0ZWQsIGVyciA6PSB0bHNDb25uLkV4cG9ydEVhcmx5S2V5
aW5nTWF0ZXJpYWwodGVzdC5leHBvcnRFYXJseUtleWluZ01hdGVyaWFsLCBbXWJ5dGUodGVzdC5l
eHBvcnRMYWJlbCksIFtdYnl0ZSh0ZXN0LmV4cG9ydENvbnRleHQpKQorCQlleHBlY3RlZCwgZXJy
IDo9IHRsc0Nvbm4uRXhwb3J0S2V5aW5nTWF0ZXJpYWwodGVzdC5leHBvcnRLZXlpbmdNYXRlcmlh
bCwgW11ieXRlKHRlc3QuZXhwb3J0TGFiZWwpLCBbXWJ5dGUodGVzdC5leHBvcnRDb250ZXh0KSwg
dGVzdC51c2VFeHBvcnRDb250ZXh0KQogCQlpZiBlcnIgIT0gbmlsIHsKIAkJCXJldHVybiBlcnIK
IAkJfQogCQlpZiAhYnl0ZXMuRXF1YWwoYWN0dWFsLCBleHBlY3RlZCkgewotCQkJcmV0dXJuIGZt
dC5FcnJvcmYoImVhcmx5IGtleWluZyBtYXRlcmlhbCBtaXNtYXRjaDsgZ290ICV4LCB3YW50ZWQg
JXgiLCBhY3R1YWwsIGV4cGVjdGVkKQorCQkJcmV0dXJuIGZtdC5FcnJvcmYoImtleWluZyBtYXRl
cmlhbCBtaXNtYXRjaDsgZ290ICV4LCB3YW50ZWQgJXgiLCBhY3R1YWwsIGV4cGVjdGVkKQogCQl9
CiAJfQogCi0JaWYgdGVzdC5leHBvcnRLZXlpbmdNYXRlcmlhbCA+IDAgewotCQlhY3R1YWwgOj0g
bWFrZShbXWJ5dGUsIHRlc3QuZXhwb3J0S2V5aW5nTWF0ZXJpYWwpCi0JCWlmIF8sIGVyciA6PSBp
by5SZWFkRnVsbCh0bHNDb25uLCBhY3R1YWwpOyBlcnIgIT0gbmlsIHsKKwlpZiB0ZXN0LmV4cG9y
dFRyYWZmaWNTZWNyZXRzIHsKKwkJc2VjcmV0TGVuQnl0ZXMgOj0gbWFrZShbXWJ5dGUsIDIpCisJ
CWlmIF8sIGVyciA6PSBpby5SZWFkRnVsbCh0bHNDb25uLCBzZWNyZXRMZW5CeXRlcyk7IGVyciAh
PSBuaWwgewogCQkJcmV0dXJuIGVycgogCQl9Ci0JCWV4cGVjdGVkLCBlcnIgOj0gdGxzQ29ubi5F
eHBvcnRLZXlpbmdNYXRlcmlhbCh0ZXN0LmV4cG9ydEtleWluZ01hdGVyaWFsLCBbXWJ5dGUodGVz
dC5leHBvcnRMYWJlbCksIFtdYnl0ZSh0ZXN0LmV4cG9ydENvbnRleHQpLCB0ZXN0LnVzZUV4cG9y
dENvbnRleHQpCi0JCWlmIGVyciAhPSBuaWwgeworCQlzZWNyZXRMZW4gOj0gYmluYXJ5LkxpdHRs
ZUVuZGlhbi5VaW50MTYoc2VjcmV0TGVuQnl0ZXMpCisKKwkJdGhlaXJSZWFkU2VjcmV0IDo9IG1h
a2UoW11ieXRlLCBzZWNyZXRMZW4pCisJCXRoZWlyV3JpdGVTZWNyZXQgOj0gbWFrZShbXWJ5dGUs
IHNlY3JldExlbikKKwkJaWYgXywgZXJyIDo9IGlvLlJlYWRGdWxsKHRsc0Nvbm4sIHRoZWlyUmVh
ZFNlY3JldCk7IGVyciAhPSBuaWwgewogCQkJcmV0dXJuIGVycgogCQl9Ci0JCWlmICFieXRlcy5F
cXVhbChhY3R1YWwsIGV4cGVjdGVkKSB7Ci0JCQlyZXR1cm4gZm10LkVycm9yZigia2V5aW5nIG1h
dGVyaWFsIG1pc21hdGNoOyBnb3QgJXgsIHdhbnRlZCAleCIsIGFjdHVhbCwgZXhwZWN0ZWQpCisJ
CWlmIF8sIGVyciA6PSBpby5SZWFkRnVsbCh0bHNDb25uLCB0aGVpcldyaXRlU2VjcmV0KTsgZXJy
ICE9IG5pbCB7CisJCQlyZXR1cm4gZXJyCisJCX0KKworCQlteVJlYWRTZWNyZXQgOj0gdGxzQ29u
bi5pbi50cmFmZmljU2VjcmV0CisJCW15V3JpdGVTZWNyZXQgOj0gdGxzQ29ubi5vdXQudHJhZmZp
Y1NlY3JldAorCQlpZiAhYnl0ZXMuRXF1YWwobXlXcml0ZVNlY3JldCwgdGhlaXJSZWFkU2VjcmV0
KSB7CisJCQlyZXR1cm4gZm10LkVycm9yZigicmVhZCB0cmFmZmljLXNlY3JldCBtaXNtYXRjaDsg
Z290ICV4LCB3YW50ZWQgJXgiLCB0aGVpclJlYWRTZWNyZXQsIG15V3JpdGVTZWNyZXQpCisJCX0K
KwkJaWYgIWJ5dGVzLkVxdWFsKG15UmVhZFNlY3JldCwgdGhlaXJXcml0ZVNlY3JldCkgeworCQkJ
cmV0dXJuIGZtdC5FcnJvcmYoIndyaXRlIHRyYWZmaWMtc2VjcmV0IG1pc21hdGNoOyBnb3QgJXgs
IHdhbnRlZCAleCIsIHRoZWlyV3JpdGVTZWNyZXQsIG15UmVhZFNlY3JldCkKIAkJfQogCX0KIApA
QCAtOTIxLDYgKzEwNzEsMTAgQEAgZnVuYyBkb0V4Y2hhbmdlKHRlc3QgKnRlc3RDYXNlLCBjb25m
aWcgKkNvbmZpZywgY29ubiBuZXQuQ29ubiwgaXNSZXN1bWUgYm9vbCwgdHIKIAkJCQlyZXR1cm4g
Zm10LkVycm9yZigiYmFkIHJlcGx5IGNvbnRlbnRzIGF0IGJ5dGUgJWQ7IGdvdCAlcSBhbmQgd2Fu
dGVkICVxIiwgaSwgYnVmLCB0ZXN0TWVzc2FnZSkKIAkJCX0KIAkJfQorCisJCWlmIHNlZW4gOj0g
dGxzQ29ubi5rZXlVcGRhdGVTZWVuOyBzZWVuICE9IHRlc3QuZXhwZWN0VW5zb2xpY2l0ZWRLZXlV
cGRhdGUgeworCQkJcmV0dXJuIGZtdC5FcnJvcmYoImtleVVwZGF0ZVNlZW4gKCV0KSAhPSBleHBl
Y3RVbnNvbGljaXRlZEtleVVwZGF0ZSIsIHNlZW4pCisJCX0KIAl9CiAKIAlyZXR1cm4gbmlsCkBA
IC0xMDMzLDIwICsxMTg3LDYgQEAgZnVuYyBydW5UZXN0KHRlc3QgKnRlc3RDYXNlLCBzaGltUGF0
aCBzdHJpbmcsIG1hbGxvY051bVRvRmFpbCBpbnQ2NCkgZXJyb3IgewogCQlpZiB0ZXN0LmNvbmZp
Zy5NYXhWZXJzaW9uID09IDAgJiYgdGVzdC5jb25maWcuTWluVmVyc2lvbiA9PSAwICYmIHRlc3Qu
ZXhwZWN0ZWRWZXJzaW9uID09IDAgewogCQkJcGFuaWMoZm10LlNwcmludGYoIlRoZSBuYW1lIG9m
IHRlc3QgJXEgc3VnZ2VzdHMgdGhhdCBpdCdzIHZlcnNpb24gc3BlY2lmaWMsIGJ1dCBtaW4vbWF4
IHZlcnNpb24gaW4gdGhlIENvbmZpZyBpcyAleC8leC4gT25lIG9mIHRoZW0gc2hvdWxkIHByb2Jh
Ymx5IGJlICV4IiwgdGVzdC5uYW1lLCB0ZXN0LmNvbmZpZy5NaW5WZXJzaW9uLCB0ZXN0LmNvbmZp
Zy5NYXhWZXJzaW9uLCB2ZXIudmVyc2lvbikpCiAJCX0KLQotCQlpZiB2ZXIudGxzMTNWYXJpYW50
ICE9IDAgewotCQkJdmFyIGZvdW5kRmxhZyBib29sCi0JCQlmb3IgXywgZmxhZyA6PSByYW5nZSB0
ZXN0LmZsYWdzIHsKLQkJCQlpZiBmbGFnID09ICItdGxzMTMtdmFyaWFudCIgewotCQkJCQlmb3Vu
ZEZsYWcgPSB0cnVlCi0JCQkJCWJyZWFrCi0JCQkJfQotCQkJfQotCQkJaWYgIWZvdW5kRmxhZyAm
JiB0ZXN0LmNvbmZpZy5UTFMxM1ZhcmlhbnQgIT0gdmVyLnRsczEzVmFyaWFudCAmJiB0ZXN0LnRs
czEzVmFyaWFudCAhPSB2ZXIudGxzMTNWYXJpYW50IHsKLQkJCQlwYW5pYyhmbXQuU3ByaW50Zigi
VGhlIG5hbWUgb2YgdGVzdCAlcSBzdWdnZXN0cyB0aGF0IHVzZXMgYW4gZXhwZXJpbWVudGFsIFRM
UyAxLjMgdmFyaWFudCwgYnV0IG5laXRoZXIgdGhlIHNoaW0gbm9yIHRoZSBydW5uZXIgY29uZmln
dXJlcyBpdCIsIHRlc3QubmFtZSkpCi0JCQl9Ci0JCX0KLQogCX0KIAogCWxpc3RlbmVyLCBlcnIg
Oj0gbmV0Lkxpc3RlblRDUCgidGNwIiwgJm5ldC5UQ1BBZGRye0lQOiBuZXQuSVB2Nmxvb3BiYWNr
fSkKQEAgLTExMTUsMTQgKzEyNTUsMTUgQEAgZnVuYyBydW5UZXN0KHRlc3QgKnRlc3RDYXNlLCBz
aGltUGF0aCBzdHJpbmcsIG1hbGxvY051bVRvRmFpbCBpbnQ2NCkgZXJyb3IgewogCQkJZmxhZ3Mg
PSBhcHBlbmQoZmxhZ3MsICItdXNlLWV4cG9ydC1jb250ZXh0IikKIAkJfQogCX0KLQlpZiB0ZXN0
LmV4cG9ydEVhcmx5S2V5aW5nTWF0ZXJpYWwgPiAwIHsKLQkJZmxhZ3MgPSBhcHBlbmQoZmxhZ3Ms
ICItb24tcmVzdW1lLWV4cG9ydC1lYXJseS1rZXlpbmctbWF0ZXJpYWwiLCBzdHJjb252Lkl0b2Eo
dGVzdC5leHBvcnRFYXJseUtleWluZ01hdGVyaWFsKSkKLQl9Ci0JaWYgdGVzdC5leHBvcnRLZXlp
bmdNYXRlcmlhbCA+IDAgfHwgdGVzdC5leHBvcnRFYXJseUtleWluZ01hdGVyaWFsID4gMCB7CisJ
aWYgdGVzdC5leHBvcnRLZXlpbmdNYXRlcmlhbCA+IDAgewogCQlmbGFncyA9IGFwcGVuZChmbGFn
cywgIi1leHBvcnQtbGFiZWwiLCB0ZXN0LmV4cG9ydExhYmVsKQogCQlmbGFncyA9IGFwcGVuZChm
bGFncywgIi1leHBvcnQtY29udGV4dCIsIHRlc3QuZXhwb3J0Q29udGV4dCkKIAl9CiAKKwlpZiB0
ZXN0LmV4cG9ydFRyYWZmaWNTZWNyZXRzIHsKKwkJZmxhZ3MgPSBhcHBlbmQoZmxhZ3MsICItZXhw
b3J0LXRyYWZmaWMtc2VjcmV0cyIpCisJfQorCiAJaWYgdGVzdC5leHBlY3RSZXN1bWVSZWplY3Rl
ZCB7CiAJCWZsYWdzID0gYXBwZW5kKGZsYWdzLCAiLWV4cGVjdC1zZXNzaW9uLW1pc3MiKQogCX0K
QEAgLTExMzEsMTAgKzEyNzIsNiBAQCBmdW5jIHJ1blRlc3QodGVzdCAqdGVzdENhc2UsIHNoaW1Q
YXRoIHN0cmluZywgbWFsbG9jTnVtVG9GYWlsIGludDY0KSBlcnJvciB7CiAJCWZsYWdzID0gYXBw
ZW5kKGZsYWdzLCAiLXRscy11bmlxdWUiKQogCX0KIAotCWlmIHRlc3QudGxzMTNWYXJpYW50ICE9
IDAgewotCQlmbGFncyA9IGFwcGVuZChmbGFncywgIi10bHMxMy12YXJpYW50Iiwgc3RyY29udi5J
dG9hKHRlc3QudGxzMTNWYXJpYW50KSkKLQl9Ci0KIAlmbGFncyA9IGFwcGVuZChmbGFncywgIi1o
YW5kc2hha2VyLXBhdGgiLCAqaGFuZHNoYWtlclBhdGgpCiAKIAl2YXIgdHJhbnNjcmlwdFByZWZp
eCBzdHJpbmcKQEAgLTEzNDIsOCArMTQ3OSw3IEBAIHR5cGUgdGxzVmVyc2lvbiBzdHJ1Y3Qgewog
CS8vIHZlcnNpb25XaXJlLCBpZiBub24temVybywgaXMgdGhlIHdpcmUgcmVwcmVzZW50YXRpb24g
b2YgdGhlCiAJLy8gdmVyc2lvbi4gT3RoZXJ3aXNlIHRoZSB3aXJlIHZlcnNpb24gaXMgdGhlIHBy
b3RvY29sIHZlcnNpb24gb3IKIAkvLyB2ZXJzaW9uRFRMUy4KLQl2ZXJzaW9uV2lyZSAgdWludDE2
Ci0JdGxzMTNWYXJpYW50IGludAorCXZlcnNpb25XaXJlIHVpbnQxNgogfQogCiBmdW5jICh2ZXJz
IHRsc1ZlcnNpb24pIHNoaW1GbGFnKHByb3RvY29sIHByb3RvY29sKSBzdHJpbmcgewpAQCAtMTM4
NiwyNSArMTUyMiwxMCBAQCB2YXIgdGxzVmVyc2lvbnMgPSBbXXRsc1ZlcnNpb257CiAJCXZlcnNp
b25EVExTOiBWZXJzaW9uRFRMUzEyLAogCX0sCiAJewotCQluYW1lOiAgICAgICAgICJUTFMxMyIs
Ci0JCXZlcnNpb246ICAgICAgVmVyc2lvblRMUzEzLAotCQlleGNsdWRlRmxhZzogICItbm8tdGxz
MTMiLAotCQl2ZXJzaW9uV2lyZTogIFZlcnNpb25UTFMxMywKLQkJdGxzMTNWYXJpYW50OiBUTFMx
M1JGQywKLQl9LAotCXsKLQkJbmFtZTogICAgICAgICAiVExTMTNEcmFmdDIzIiwKLQkJdmVyc2lv
bjogICAgICBWZXJzaW9uVExTMTMsCi0JCWV4Y2x1ZGVGbGFnOiAgIi1uby10bHMxMyIsCi0JCXZl
cnNpb25XaXJlOiAgdGxzMTNEcmFmdDIzVmVyc2lvbiwKLQkJdGxzMTNWYXJpYW50OiBUTFMxM0Ry
YWZ0MjMsCi0JfSwKLQl7Ci0JCW5hbWU6ICAgICAgICAgIlRMUzEzRHJhZnQyOCIsCi0JCXZlcnNp
b246ICAgICAgVmVyc2lvblRMUzEzLAotCQlleGNsdWRlRmxhZzogICItbm8tdGxzMTMiLAotCQl2
ZXJzaW9uV2lyZTogIHRsczEzRHJhZnQyOFZlcnNpb24sCi0JCXRsczEzVmFyaWFudDogVExTMTNE
cmFmdDI4LAorCQluYW1lOiAgICAgICAgIlRMUzEzIiwKKwkJdmVyc2lvbjogICAgIFZlcnNpb25U
TFMxMywKKwkJZXhjbHVkZUZsYWc6ICItbm8tdGxzMTMiLAorCQl2ZXJzaW9uV2lyZTogVmVyc2lv
blRMUzEzLAogCX0sCiB9CiAKQEAgLTE0MjIsNTcgKzE1NDMsNDAgQEAgZnVuYyBhbGxWZXJzaW9u
cyhwcm90b2NvbCBwcm90b2NvbCkgW110bHNWZXJzaW9uIHsKIAlyZXR1cm4gcmV0CiB9CiAKLWZ1
bmMgYWxsU2hpbVZlcnNpb25zKHByb3RvY29sIHByb3RvY29sKSBbXXRsc1ZlcnNpb24gewotCWlm
IHByb3RvY29sID09IGR0bHMgewotCQlyZXR1cm4gYWxsVmVyc2lvbnMocHJvdG9jb2wpCi0JfQot
CXRsczEzRGVmYXVsdCA6PSB0bHNWZXJzaW9uewotCQluYW1lOiAgICAgICAgICJUTFMxM0FsbCIs
Ci0JCXZlcnNpb246ICAgICAgVmVyc2lvblRMUzEzLAotCQlleGNsdWRlRmxhZzogICItbm8tdGxz
MTMiLAotCQl2ZXJzaW9uV2lyZTogIDAsCi0JCXRsczEzVmFyaWFudDogVExTMTNBbGwsCi0JfQot
Ci0JdmFyIHNoaW1WZXJzaW9ucyBbXXRsc1ZlcnNpb24KLQlzaGltVmVyc2lvbnMgPSBhcHBlbmQo
c2hpbVZlcnNpb25zLCBhbGxWZXJzaW9ucyhwcm90b2NvbCkuLi4pCi0JcmV0dXJuIGFwcGVuZChz
aGltVmVyc2lvbnMsIHRsczEzRGVmYXVsdCkKLX0KLQogdHlwZSB0ZXN0Q2lwaGVyU3VpdGUgc3Ry
dWN0IHsKIAluYW1lIHN0cmluZwogCWlkICAgdWludDE2CiB9CiAKIHZhciB0ZXN0Q2lwaGVyU3Vp
dGVzID0gW110ZXN0Q2lwaGVyU3VpdGV7Ci0JeyIzREVTLVNIQSIsIFRMU19SU0FfV0lUSF8zREVT
X0VERV9DQkNfU0hBfSwKLQl7IkFFUzEyOC1HQ00iLCBUTFNfUlNBX1dJVEhfQUVTXzEyOF9HQ01f
U0hBMjU2fSwKLQl7IkFFUzEyOC1TSEEiLCBUTFNfUlNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBfSwK
LQl7IkFFUzI1Ni1HQ00iLCBUTFNfUlNBX1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0fSwKLQl7IkFF
UzI1Ni1TSEEiLCBUTFNfUlNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBfSwKLQl7IkVDREhFLUVDRFNB
LUFFUzEyOC1HQ00iLCBUTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNfMTI4X0dDTV9TSEEyNTZ9LAot
CXsiRUNESEUtRUNEU0EtQUVTMTI4LVNIQSIsIFRMU19FQ0RIRV9FQ0RTQV9XSVRIX0FFU18xMjhf
Q0JDX1NIQX0sCi0JeyJFQ0RIRS1FQ0RTQS1BRVMyNTYtR0NNIiwgVExTX0VDREhFX0VDRFNBX1dJ
VEhfQUVTXzI1Nl9HQ01fU0hBMzg0fSwKLQl7IkVDREhFLUVDRFNBLUFFUzI1Ni1TSEEiLCBUTFNf
RUNESEVfRUNEU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEF9LAotCXsiRUNESEUtRUNEU0EtQ0hBQ0hB
MjAtUE9MWTEzMDUiLCBUTFNfRUNESEVfRUNEU0FfV0lUSF9DSEFDSEEyMF9QT0xZMTMwNV9TSEEy
NTZ9LAotCXsiRUNESEUtUlNBLUFFUzEyOC1HQ00iLCBUTFNfRUNESEVfUlNBX1dJVEhfQUVTXzEy
OF9HQ01fU0hBMjU2fSwKLQl7IkVDREhFLVJTQS1BRVMxMjgtU0hBIiwgVExTX0VDREhFX1JTQV9X
SVRIX0FFU18xMjhfQ0JDX1NIQX0sCi0JeyJFQ0RIRS1SU0EtQUVTMjU2LUdDTSIsIFRMU19FQ0RI
RV9SU0FfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODR9LAotCXsiRUNESEUtUlNBLUFFUzI1Ni1TSEEi
LCBUTFNfRUNESEVfUlNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBfSwKLQl7IkVDREhFLVJTQS1DSEFD
SEEyMC1QT0xZMTMwNSIsIFRMU19FQ0RIRV9SU0FfV0lUSF9DSEFDSEEyMF9QT0xZMTMwNV9TSEEy
NTZ9LAotCXsiUFNLLUFFUzEyOC1DQkMtU0hBIiwgVExTX1BTS19XSVRIX0FFU18xMjhfQ0JDX1NI
QX0sCi0JeyJQU0stQUVTMjU2LUNCQy1TSEEiLCBUTFNfUFNLX1dJVEhfQUVTXzI1Nl9DQkNfU0hB
fSwKLQl7IkVDREhFLVBTSy1BRVMxMjgtQ0JDLVNIQSIsIFRMU19FQ0RIRV9QU0tfV0lUSF9BRVNf
MTI4X0NCQ19TSEF9LAotCXsiRUNESEUtUFNLLUFFUzI1Ni1DQkMtU0hBIiwgVExTX0VDREhFX1BT
S19XSVRIX0FFU18yNTZfQ0JDX1NIQX0sCi0JeyJFQ0RIRS1QU0stQ0hBQ0hBMjAtUE9MWTEzMDUi
LCBUTFNfRUNESEVfUFNLX1dJVEhfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2fSwKLQl7IkFFQUQt
Q0hBQ0hBMjAtUE9MWTEzMDUiLCBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2fSwKLQl7IkFF
QUQtQUVTMTI4LUdDTS1TSEEyNTYiLCBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2fSwKLQl7IkFFQUQt
QUVTMjU2LUdDTS1TSEEzODQiLCBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0fSwKLQl7Ik5VTEwtU0hB
IiwgVExTX1JTQV9XSVRIX05VTExfU0hBfSwKKwl7IlJTQV9XSVRIXzNERVNfRURFX0NCQ19TSEEi
LCBUTFNfUlNBX1dJVEhfM0RFU19FREVfQ0JDX1NIQX0sCisJeyJSU0FfV0lUSF9BRVNfMTI4X0dD
TV9TSEEyNTYiLCBUTFNfUlNBX1dJVEhfQUVTXzEyOF9HQ01fU0hBMjU2fSwKKwl7IlJTQV9XSVRI
X0FFU18xMjhfQ0JDX1NIQSIsIFRMU19SU0FfV0lUSF9BRVNfMTI4X0NCQ19TSEF9LAorCXsiUlNB
X1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0IiwgVExTX1JTQV9XSVRIX0FFU18yNTZfR0NNX1NIQTM4
NH0sCisJeyJSU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEiLCBUTFNfUlNBX1dJVEhfQUVTXzI1Nl9D
QkNfU0hBfSwKKwl7IkVDREhFX0VDRFNBX1dJVEhfQUVTXzEyOF9HQ01fU0hBMjU2IiwgVExTX0VD
REhFX0VDRFNBX1dJVEhfQUVTXzEyOF9HQ01fU0hBMjU2fSwKKwl7IkVDREhFX0VDRFNBX1dJVEhf
QUVTXzEyOF9DQkNfU0hBIiwgVExTX0VDREhFX0VDRFNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBfSwK
Kwl7IkVDREhFX0VDRFNBX1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0IiwgVExTX0VDREhFX0VDRFNB
X1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0fSwKKwl7IkVDREhFX0VDRFNBX1dJVEhfQUVTXzI1Nl9D
QkNfU0hBIiwgVExTX0VDREhFX0VDRFNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBfSwKKwl7IkVDREhF
X0VDRFNBX1dJVEhfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IiwgVExTX0VDREhFX0VDRFNBX1dJ
VEhfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2fSwKKwl7IkVDREhFX1JTQV9XSVRIX0FFU18xMjhf
R0NNX1NIQTI1NiIsIFRMU19FQ0RIRV9SU0FfV0lUSF9BRVNfMTI4X0dDTV9TSEEyNTZ9LAorCXsi
RUNESEVfUlNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBIiwgVExTX0VDREhFX1JTQV9XSVRIX0FFU18x
MjhfQ0JDX1NIQX0sCisJeyJFQ0RIRV9SU0FfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODQiLCBUTFNf
RUNESEVfUlNBX1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0fSwKKwl7IkVDREhFX1JTQV9XSVRIX0FF
U18yNTZfQ0JDX1NIQSIsIFRMU19FQ0RIRV9SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEF9LAorCXsi
RUNESEVfUlNBX1dJVEhfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IiwgVExTX0VDREhFX1JTQV9X
SVRIX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nn0sCisJeyJQU0tfV0lUSF9BRVNfMTI4X0NCQ19T
SEEiLCBUTFNfUFNLX1dJVEhfQUVTXzEyOF9DQkNfU0hBfSwKKwl7IlBTS19XSVRIX0FFU18yNTZf
Q0JDX1NIQSIsIFRMU19QU0tfV0lUSF9BRVNfMjU2X0NCQ19TSEF9LAorCXsiRUNESEVfUFNLX1dJ
VEhfQUVTXzEyOF9DQkNfU0hBIiwgVExTX0VDREhFX1BTS19XSVRIX0FFU18xMjhfQ0JDX1NIQX0s
CisJeyJFQ0RIRV9QU0tfV0lUSF9BRVNfMjU2X0NCQ19TSEEiLCBUTFNfRUNESEVfUFNLX1dJVEhf
QUVTXzI1Nl9DQkNfU0hBfSwKKwl7IkVDREhFX1BTS19XSVRIX0NIQUNIQTIwX1BPTFkxMzA1X1NI
QTI1NiIsIFRMU19FQ0RIRV9QU0tfV0lUSF9DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTZ9LAorCXsi
Q0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IiwgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nn0s
CisJeyJBRVNfMTI4X0dDTV9TSEEyNTYiLCBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2fSwKKwl7IkFF
U18yNTZfR0NNX1NIQTM4NCIsIFRMU19BRVNfMjU2X0dDTV9TSEEzODR9LAorCXsiUlNBX1dJVEhf
TlVMTF9TSEEiLCBUTFNfUlNBX1dJVEhfTlVMTF9TSEF9LAogfQogCiBmdW5jIGhhc0NvbXBvbmVu
dChzdWl0ZU5hbWUsIGNvbXBvbmVudCBzdHJpbmcpIGJvb2wgewotCXJldHVybiBzdHJpbmdzLkNv
bnRhaW5zKCItIitzdWl0ZU5hbWUrIi0iLCAiLSIrY29tcG9uZW50KyItIikKKwlyZXR1cm4gc3Ry
aW5ncy5Db250YWlucygiXyIrc3VpdGVOYW1lKyJfIiwgIl8iK2NvbXBvbmVudCsiXyIpCiB9CiAK
IGZ1bmMgaXNUTFMxMk9ubHkoc3VpdGVOYW1lIHN0cmluZykgYm9vbCB7CkBAIC0xNDgzLDcgKzE1
ODcsNyBAQCBmdW5jIGlzVExTMTJPbmx5KHN1aXRlTmFtZSBzdHJpbmcpIGJvb2wgewogfQogCiBm
dW5jIGlzVExTMTNTdWl0ZShzdWl0ZU5hbWUgc3RyaW5nKSBib29sIHsKLQlyZXR1cm4gc3RyaW5n
cy5IYXNQcmVmaXgoc3VpdGVOYW1lLCAiQUVBRC0iKQorCXJldHVybiAhaGFzQ29tcG9uZW50KHN1
aXRlTmFtZSwgIldJVEgiKQogfQogCiBmdW5jIGJpZ0Zyb21IZXgoaGV4IHN0cmluZykgKmJpZy5J
bnQgewpAQCAtMjc5Miw3ICsyODk2LDcgQEAgcmVhZCBhbGVydCAxIDAKIAkJCWV4cGVjdGVkRXJy
b3I6ICI6V1JPTkdfVkVSU0lPTl9OVU1CRVI6IiwKIAkJfSwKIAkJewotCQkJbmFtZTogIktleVVw
ZGF0ZS1DbGllbnQiLAorCQkJbmFtZTogIktleVVwZGF0ZS1Ub0NsaWVudCIsCiAJCQljb25maWc6
IENvbmZpZ3sKIAkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCiAJCQl9LApAQCAtMjgwMSwx
MyArMjkwNSwzMCBAQCByZWFkIGFsZXJ0IDEgMAogCQl9LAogCQl7CiAJCQl0ZXN0VHlwZTogc2Vy
dmVyVGVzdCwKLQkJCW5hbWU6ICAgICAiS2V5VXBkYXRlLVNlcnZlciIsCisJCQluYW1lOiAgICAg
IktleVVwZGF0ZS1Ub1NlcnZlciIsCiAJCQljb25maWc6IENvbmZpZ3sKIAkJCQlNYXhWZXJzaW9u
OiBWZXJzaW9uVExTMTMsCiAJCQl9LAogCQkJc2VuZEtleVVwZGF0ZXM6ICAgMSwKIAkJCWtleVVw
ZGF0ZVJlcXVlc3Q6IGtleVVwZGF0ZU5vdFJlcXVlc3RlZCwKIAkJfSwKKwkJeworCQkJbmFtZTog
IktleVVwZGF0ZS1Gcm9tQ2xpZW50IiwKKwkJCWNvbmZpZzogQ29uZmlneworCQkJCU1heFZlcnNp
b246IFZlcnNpb25UTFMxMywKKwkJCX0sCisJCQlleHBlY3RVbnNvbGljaXRlZEtleVVwZGF0ZTog
dHJ1ZSwKKwkJCWZsYWdzOiAgICAgICAgICAgICAgICAgICAgICBbXXN0cmluZ3siLWtleS11cGRh
dGUifSwKKwkJfSwKKwkJeworCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCQluYW1lOiAgICAg
IktleVVwZGF0ZS1Gcm9tU2VydmVyIiwKKwkJCWNvbmZpZzogQ29uZmlneworCQkJCU1heFZlcnNp
b246IFZlcnNpb25UTFMxMywKKwkJCX0sCisJCQlleHBlY3RVbnNvbGljaXRlZEtleVVwZGF0ZTog
dHJ1ZSwKKwkJCWZsYWdzOiAgICAgICAgICAgICAgICAgICAgICBbXXN0cmluZ3siLWtleS11cGRh
dGUifSwKKwkJfSwKIAkJewogCQkJbmFtZTogIktleVVwZGF0ZS1JbnZhbGlkUmVxdWVzdE1vZGUi
LAogCQkJY29uZmlnOiBDb25maWd7CkBAIC0yOTI1LDIwICszMDQ2LDE5IEBAIHJlYWQgYWxlcnQg
MSAwCiAJCX0sCiAJCXsKIAkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICJU
TFMxM0RyYWZ0MjMtSW52YWxpZENvbXByZXNzaW9uTWV0aG9kIiwKKwkJCW5hbWU6ICAgICAiVExT
MTMtSW52YWxpZENvbXByZXNzaW9uTWV0aG9kIiwKIAkJCWNvbmZpZzogQ29uZmlnewogCQkJCU1h
eFZlcnNpb246IFZlcnNpb25UTFMxMywKIAkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CiAJCQkJCVNl
bmRDb21wcmVzc2lvbk1ldGhvZDogMSwKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDog
IFRMUzEzRHJhZnQyMywKIAkJCXNob3VsZEZhaWw6ICAgIHRydWUsCiAJCQlleHBlY3RlZEVycm9y
OiAiOkRFQ09ERV9FUlJPUjoiLAogCQl9LAogCQl7CiAJCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwK
LQkJCW5hbWU6ICAgICAiVExTMTNEcmFmdDIzLUhSUi1JbnZhbGlkQ29tcHJlc3Npb25NZXRob2Qi
LAorCQkJbmFtZTogICAgICJUTFMxMy1IUlItSW52YWxpZENvbXByZXNzaW9uTWV0aG9kIiwKIAkJ
CWNvbmZpZzogQ29uZmlnewogCQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKIAkJ
CQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVQMzg0fSwKQEAgLTI5NDYsNyArMzA2
Niw2IEBAIHJlYWQgYWxlcnQgMSAwCiAJCQkJCVNlbmRDb21wcmVzc2lvbk1ldGhvZDogMSwKIAkJ
CQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgVExTMTNEcmFmdDIzLAogCQkJc2hv
dWxkRmFpbDogICAgICAgICB0cnVlLAogCQkJZXhwZWN0ZWRFcnJvcjogICAgICAiOkRFQ09ERV9F
UlJPUjoiLAogCQkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBlcnJvciBkZWNv
ZGluZyBtZXNzYWdlIiwKQEAgLTMwMzUsOCArMzE1NCw3IEBAIHJlYWQgYWxlcnQgMSAwCiAJCQkJ
CUV4cGVjdFBhY2tlZEVuY3J5cHRlZEhhbmRzaGFrZTogNTEyLAogCQkJCX0sCiAJCQl9LAotCQkJ
dGxzMTNWYXJpYW50OiBUTFMxM0RyYWZ0MjgsCi0JCQltZXNzYWdlTGVuOiAgIDEwMjQsCisJCQlt
ZXNzYWdlTGVuOiAxMDI0LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItbWF4LXNlbmQtZnJh
Z21lbnQiLCAiNTEyIiwKIAkJCQkiLXJlYWQtc2l6ZSIsICIxMDI0IiwKQEAgLTMwNjQsMzAgKzMx
ODIsMTUgQEAgcmVhZCBhbGVydCAxIDAKIAkJCWV4cGVjdGVkTG9jYWxFcnJvcjogImxvY2FsIGVy
cm9yOiByZWNvcmQgb3ZlcmZsb3ciLAogCQl9LAogCQl7Ci0JCQkvLyBUZXN0IHRoYXQgaGFuZHNo
YWtlIGRhdGEgaXMgbm90IHBhY2tlZCBpbiBUTFMgMS4zCi0JCQkvLyBkcmFmdC0yMy4KLQkJCXRl
c3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJGb3JiaWRIYW5kc2hha2VQYWNraW5n
LVRMUzEzRHJhZnQyMyIsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJz
aW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlGb3JiaWRIYW5kc2hha2VQ
YWNraW5nOiB0cnVlLAotCQkJCX0sCi0JCQl9LAotCQkJdGxzMTNWYXJpYW50OiBUTFMxM0RyYWZ0
MjMsCi0JCX0sCi0JCXsKLQkJCS8vIFRlc3QgdGhhdCBoYW5kc2hha2UgZGF0YSBpcyB0aWdodGx5
IHBhY2tlZCBpbiBUTFMgMS4zCi0JCQkvLyBkcmFmdC0yOC4KKwkJCS8vIFRlc3QgdGhhdCBoYW5k
c2hha2UgZGF0YSBpcyB0aWdodGx5IHBhY2tlZCBpbiBUTFMgMS4zLgogCQkJdGVzdFR5cGU6IHNl
cnZlclRlc3QsCi0JCQluYW1lOiAgICAgIlBhY2tlZEVuY3J5cHRlZEhhbmRzaGFrZS1UTFMxM0Ry
YWZ0MjgiLAorCQkJbmFtZTogICAgICJQYWNrZWRFbmNyeXB0ZWRIYW5kc2hha2UtVExTMTMiLAog
CQkJY29uZmlnOiBDb25maWd7CiAJCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAogCQkJCUJ1
Z3M6IFByb3RvY29sQnVnc3sKIAkJCQkJRXhwZWN0UGFja2VkRW5jcnlwdGVkSGFuZHNoYWtlOiAx
NjM4NCwKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogVExTMTNEcmFmdDI4LAogCQl9
LAogCQl7CiAJCQkvLyBUZXN0IHRoYXQgRFRMUyBjYW4gaGFuZGxlIG11bHRpcGxlIGFwcGxpY2F0
aW9uIGRhdGEKQEAgLTMyNDYsNyArMzM0OSw2IEBAIGZ1bmMgYWRkVGVzdEZvckNpcGhlclN1aXRl
KHN1aXRlIHRlc3RDaXBoZXJTdWl0ZSwgdmVyIHRsc1ZlcnNpb24sIHByb3RvY29sIHByb3RvCiAJ
CQkJQWR2ZXJ0aXNlQWxsQ29uZmlndXJlZENpcGhlcnM6IHRydWUsCiAJCQl9LAogCQl9LAotCQl0
bHMxM1ZhcmlhbnQ6ICAgICAgICAgdmVyLnRsczEzVmFyaWFudCwKIAkJY2VydEZpbGU6ICAgICAg
ICAgICAgIGNlcnRGaWxlLAogCQlrZXlGaWxlOiAgICAgICAgICAgICAga2V5RmlsZSwKIAkJZmxh
Z3M6ICAgICAgICAgICAgICAgIGZsYWdzLApAQCAtMzI3Miw3ICszMzc0LDYgQEAgZnVuYyBhZGRU
ZXN0Rm9yQ2lwaGVyU3VpdGUoc3VpdGUgdGVzdENpcGhlclN1aXRlLCB2ZXIgdGxzVmVyc2lvbiwg
cHJvdG9jb2wgcHJvdG8KIAkJCQlTZW5kQ2lwaGVyU3VpdGU6ICAgICAgICAgICAgIHNlbmRDaXBo
ZXJTdWl0ZSwKIAkJCX0sCiAJCX0sCi0JCXRsczEzVmFyaWFudDogICAgICAgICB2ZXIudGxzMTNW
YXJpYW50LAogCQlmbGFnczogICAgICAgICAgICAgICAgZmxhZ3MsCiAJCXJlc3VtZVNlc3Npb246
ICAgICAgICB0cnVlLAogCQlzaG91bGRGYWlsOiAgICAgICAgICAgc2hvdWxkRmFpbCwKQEAgLTMy
OTYsOSArMzM5Nyw4IEBAIGZ1bmMgYWRkVGVzdEZvckNpcGhlclN1aXRlKHN1aXRlIHRlc3RDaXBo
ZXJTdWl0ZSwgdmVyIHRsc1ZlcnNpb24sIHByb3RvY29sIHByb3RvCiAJCQlQcmVTaGFyZWRLZXk6
ICAgICAgICAgW11ieXRlKHBzayksCiAJCQlQcmVTaGFyZWRLZXlJZGVudGl0eTogcHNrSWRlbnRp
dHksCiAJCX0sCi0JCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwKLQkJZmxhZ3M6ICAg
ICAgICBmbGFncywKLQkJbWVzc2FnZUxlbjogICBtYXhQbGFpbnRleHQsCisJCWZsYWdzOiAgICAg
IGZsYWdzLAorCQltZXNzYWdlTGVuOiBtYXhQbGFpbnRleHQsCiAJfSkKIAogCS8vIFRlc3QgYmFk
IHJlY29yZHMgZm9yIGFsbCBjaXBoZXJzLiBCYWQgcmVjb3JkcyBhcmUgZmF0YWwgaW4gVExTCkBA
IC0zMzIwLDcgKzM0MjAsNiBAQCBmdW5jIGFkZFRlc3RGb3JDaXBoZXJTdWl0ZShzdWl0ZSB0ZXN0
Q2lwaGVyU3VpdGUsIHZlciB0bHNWZXJzaW9uLCBwcm90b2NvbCBwcm90bwogCQkJUHJlU2hhcmVk
S2V5OiAgICAgICAgIFtdYnl0ZShwc2spLAogCQkJUHJlU2hhcmVkS2V5SWRlbnRpdHk6IHBza0lk
ZW50aXR5LAogCQl9LAotCQl0bHMxM1ZhcmlhbnQ6ICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQlm
bGFnczogICAgICAgICAgICBmbGFncywKIAkJZGFtYWdlRmlyc3RXcml0ZTogdHJ1ZSwKIAkJbWVz
c2FnZUxlbjogICAgICAgbWF4UGxhaW50ZXh0LApAQCAtMzc5NCw3ICszODkzLDYgQEAgZnVuYyBh
ZGRDbGllbnRBdXRoVGVzdHMoKSB7CiAJCQkJQ2xpZW50QXV0aDogUmVxdWlyZUFueUNsaWVudENl
cnQsCiAJCQkJQ2xpZW50Q0FzOiAgY2VydFBvb2wsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2
ZXIudGxzMTNWYXJpYW50LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItY2VydC1maWxlIiwg
cGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNhQ2VydGlmaWNhdGVGaWxlKSwKIAkJCQkiLWtleS1m
aWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNhS2V5RmlsZSksCkBAIC0zODA4LDggKzM5
MDYsNyBAQCBmdW5jIGFkZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCQlNYXhWZXJzaW9uOiAgIHZl
ci52ZXJzaW9uLAogCQkJCUNlcnRpZmljYXRlczogW11DZXJ0aWZpY2F0ZXtyc2FDZXJ0aWZpY2F0
ZX0sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAotCQkJZmxhZ3M6
ICAgICAgICBbXXN0cmluZ3siLXJlcXVpcmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0ZSJ9LAorCQkJ
ZmxhZ3M6IFtdc3RyaW5neyItcmVxdWlyZS1hbnktY2xpZW50LWNlcnRpZmljYXRlIn0sCiAJCX0p
CiAJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewogCQkJdGVzdFR5cGU6
IHNlcnZlclRlc3QsCkBAIC0zODE5LDggKzM5MTYsNyBAQCBmdW5jIGFkZENsaWVudEF1dGhUZXN0
cygpIHsKIAkJCQlNYXhWZXJzaW9uOiAgIHZlci52ZXJzaW9uLAogCQkJCUNlcnRpZmljYXRlczog
W11DZXJ0aWZpY2F0ZXtlY2RzYVAyNTZDZXJ0aWZpY2F0ZX0sCiAJCQl9LAotCQkJdGxzMTNWYXJp
YW50OiB2ZXIudGxzMTNWYXJpYW50LAotCQkJZmxhZ3M6ICAgICAgICBbXXN0cmluZ3siLXJlcXVp
cmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0ZSJ9LAorCQkJZmxhZ3M6IFtdc3RyaW5neyItcmVxdWly
ZS1hbnktY2xpZW50LWNlcnRpZmljYXRlIn0sCiAJCX0pCiAJCXRlc3RDYXNlcyA9IGFwcGVuZCh0
ZXN0Q2FzZXMsIHRlc3RDYXNlewogCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCkBAIC0zODMxLDcg
KzM5MjcsNiBAQCBmdW5jIGFkZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCQlDbGllbnRBdXRoOiBS
ZXF1aXJlQW55Q2xpZW50Q2VydCwKIAkJCQlDbGllbnRDQXM6ICBjZXJ0UG9vbCwKIAkJCX0sCi0J
CQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFnczogW11zdHJpbmd7CiAJ
CQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCBlY2RzYVAyNTZDZXJ0aWZp
Y2F0ZUZpbGUpLAogCQkJCSIta2V5LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCBlY2Rz
YVAyNTZLZXlGaWxlKSwKQEAgLTM4NDUsNyArMzk0MCw2IEBAIGZ1bmMgYWRkQ2xpZW50QXV0aFRl
c3RzKCkgewogCQkJCU1heFZlcnNpb246IHZlci52ZXJzaW9uLAogCQkJCUNsaWVudEF1dGg6IFJl
cXVpcmVBbnlDbGllbnRDZXJ0LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgdmVyLnRs
czEzVmFyaWFudCwKIAkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKIAkJCWV4cGVjdGVkTG9j
YWxFcnJvcjogImNsaWVudCBkaWRuJ3QgcHJvdmlkZSBhIGNlcnRpZmljYXRlIiwKIAkJfSkKQEAg
LTM4NTksNyArMzk1Myw2IEBAIGZ1bmMgYWRkQ2xpZW50QXV0aFRlc3RzKCkgewogCQkJCU1pblZl
cnNpb246IHZlci52ZXJzaW9uLAogCQkJCU1heFZlcnNpb246IHZlci52ZXJzaW9uLAogCQkJfSwK
LQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwKIAkJCWZsYWdzOiBbXXN0cmluZ3sK
IAkJCQkiLWV4cGVjdC12ZXJpZnktcmVzdWx0IiwKIAkJCX0sCkBAIC0zODc1LDcgKzM5NjgsNiBA
QCBmdW5jIGFkZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCQlNaW5WZXJzaW9uOiB2ZXIudmVyc2lv
biwKIAkJCQlNYXhWZXJzaW9uOiB2ZXIudmVyc2lvbiwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6
IHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJIi1leHBlY3QtdmVy
aWZ5LXJlc3VsdCIsCiAJCQkJIi12ZXJpZnktcGVlciIsCkBAIC0zODk3LDcgKzM5ODksNiBAQCBm
dW5jIGFkZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCQlNYXhWZXJzaW9uOiB2ZXIudmVyc2lvbiwK
IAkJCX0sCiAJCQlmbGFnczogICAgICAgICAgICAgIFtdc3RyaW5neyItcmVxdWlyZS1hbnktY2xp
ZW50LWNlcnRpZmljYXRlIn0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZlci50bHMxM1Zhcmlh
bnQsCiAJCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCiAJCQlleHBlY3RlZEVycm9yOiAgICAg
ICI6UEVFUl9ESURfTk9UX1JFVFVSTl9BX0NFUlRJRklDQVRFOiIsCiAJCQlleHBlY3RlZExvY2Fs
RXJyb3I6IGNlcnRpZmljYXRlUmVxdWlyZWQsCkBAIC0zOTE1LDcgKzQwMDYsNiBAQCBmdW5jIGFk
ZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCX0sCiAJCQkvLyBTZXR0aW5nIFNTTF9WRVJJRllfUEVF
UiBhbGxvd3MgYW5vbnltb3VzIGNsaWVudHMuCiAJCQlmbGFnczogICAgICAgICBbXXN0cmluZ3si
LXZlcmlmeS1wZWVyIn0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJ
c2hvdWxkRmFpbDogICAgdHJ1ZSwKIAkJCWV4cGVjdGVkRXJyb3I6ICI6VU5FWFBFQ1RFRF9NRVNT
QUdFOiIsCiAJCX0pCkBAIC0zOTMxLDcgKzQwMjEsNiBAQCBmdW5jIGFkZENsaWVudEF1dGhUZXN0
cygpIHsKIAkJCQkiLWVuYWJsZS1jaGFubmVsLWlkIiwKIAkJCQkiLXZlcmlmeS1wZWVyLWlmLW5v
LW9iYyIsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgICAgICB2ZXIudGxzMTNWYXJpYW50LAog
CQkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAogCQkJZXhwZWN0ZWRFcnJvcjogICAgICAiOlBF
RVJfRElEX05PVF9SRVRVUk5fQV9DRVJUSUZJQ0FURToiLAogCQkJZXhwZWN0ZWRMb2NhbEVycm9y
OiBjZXJ0aWZpY2F0ZVJlcXVpcmVkLApAQCAtMzk0Niw3ICs0MDM1LDYgQEAgZnVuYyBhZGRDbGll
bnRBdXRoVGVzdHMoKSB7CiAJCQkJQ2hhbm5lbElEOiAgY2hhbm5lbElES2V5LAogCQkJfSwKIAkJ
CWV4cGVjdENoYW5uZWxJRDogdHJ1ZSwKLQkJCXRsczEzVmFyaWFudDogICAgdmVyLnRsczEzVmFy
aWFudCwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWVuYWJsZS1jaGFubmVsLWlkIiwKIAkJ
CQkiLXZlcmlmeS1wZWVyLWlmLW5vLW9iYyIsCkBAIC0zOTY0LDcgKzQwNTIsNiBAQCBmdW5jIGFk
ZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCQkJRXhwZWN0Q2VydGlmaWNhdGVSZXFOYW1lczogY2FO
YW1lcywKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwK
IAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLXJlcXVpcmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0
ZSIsCiAJCQkJIi11c2UtY2xpZW50LWNhLWxpc3QiLCBlbmNvZGVERVJWYWx1ZXMoY2FOYW1lcyks
CkBAIC0zOTgxLDcgKzQwNjgsNiBAQCBmdW5jIGFkZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCQlD
bGllbnRBdXRoOiAgIFJlcXVpcmVBbnlDbGllbnRDZXJ0LAogCQkJCUNsaWVudENBczogICAgY2Vy
dFBvb2wsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAogCQkJZmxh
Z3M6IFtdc3RyaW5newogCQkJCSItY2VydC1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwg
cnNhQ2VydGlmaWNhdGVGaWxlKSwKIAkJCQkiLWtleS1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJj
ZURpciwgcnNhS2V5RmlsZSksCkBAIC00MDQ3LDcgKzQxMzMsNyBAQCBmdW5jIGFkZENsaWVudEF1
dGhUZXN0cygpIHsKIAkvLyBUZXN0IHRoYXQgYW4gZW1wdHkgY2xpZW50IENBIGxpc3QgZG9lc24n
dCBzZW5kIGEgQ0EgZXh0ZW5zaW9uLgogCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRl
c3RDYXNlewogCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJbmFtZTogICAgICJUTFMxM0RyYWZ0
MjMtRW1wdHktQ2xpZW50LUNBLUxpc3QiLAorCQluYW1lOiAgICAgIlRMUzEzLUVtcHR5LUNsaWVu
dC1DQS1MaXN0IiwKIAkJY29uZmlnOiBDb25maWd7CiAJCQlNYXhWZXJzaW9uOiAgIFZlcnNpb25U
TFMxMywKIAkJCUNlcnRpZmljYXRlczogW11DZXJ0aWZpY2F0ZXtyc2FDZXJ0aWZpY2F0ZX0sCkBA
IC00MDU1LDcgKzQxNDEsNiBAQCBmdW5jIGFkZENsaWVudEF1dGhUZXN0cygpIHsKIAkJCQlFeHBl
Y3ROb0NlcnRpZmljYXRlQXV0aG9yaXRpZXNFeHRlbnNpb246IHRydWUsCiAJCQl9LAogCQl9LAot
CQl0bHMxM1ZhcmlhbnQ6IFRMUzEzRHJhZnQyMywKIAkJZmxhZ3M6IFtdc3RyaW5newogCQkJIi1y
ZXF1aXJlLWFueS1jbGllbnQtY2VydGlmaWNhdGUiLAogCQkJIi11c2UtY2xpZW50LWNhLWxpc3Qi
LCAiPEVNUFRZPiIsCkBAIC00MTAwLDggKzQxODUsNyBAQCBmdW5jIGFkZEV4dGVuZGVkTWFzdGVy
U2VjcmV0VGVzdHMoKSB7CiAJCQkJCQkJUmVxdWlyZUV4dGVuZGVkTWFzdGVyU2VjcmV0OiB3aXRo
LAogCQkJCQkJfSwKIAkJCQkJfSwKLQkJCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50
LAotCQkJCQlmbGFnczogICAgICAgIGZsYWdzLAorCQkJCQlmbGFnczogZmxhZ3MsCiAJCQkJfSkK
IAkJCX0KIAkJfQpAQCAtNDM2Miw2ICs0NDQ2LDggQEAgZnVuYyBhZGRTdGF0ZU1hY2hpbmVDb3Zl
cmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJCQl9LAogCQkJcmVz
dW1lU2Vzc2lvbjogICAgICAgIHRydWUsCiAJCQlyZXN1bWVSZW5ld2VkU2Vzc2lvbjogdHJ1ZSwK
KwkJCS8vIDAtUlRUIGJlaW5nIGRpc2FibGVkIG92ZXJyaWRlcyBhbGwgb3RoZXIgMC1SVFQgcmVh
c29ucy4KKwkJCWZsYWdzOiBbXXN0cmluZ3siLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJk
aXNhYmxlZCJ9LAogCQl9KQogCiAJCXRlc3RzID0gYXBwZW5kKHRlc3RzLCB0ZXN0Q2FzZXsKQEAg
LTQzNzMsOSArNDQ1OSwxMyBAQCBmdW5jIGFkZFN0YXRlTWFjaGluZUNvdmVyYWdlVGVzdHMoY29u
ZmlnIHN0YXRlTWFjaGluZVRlc3RDb25maWcpIHsKIAkJCX0sCiAJCQlyZXN1bWVTZXNzaW9uOiAg
ICAgICAgdHJ1ZSwKIAkJCXJlc3VtZVJlbmV3ZWRTZXNzaW9uOiB0cnVlLAotCQkJLy8gVExTIDEu
MyB1c2VzIHRpY2tldHMsIHNvIHRoZSBzZXNzaW9uIHNob3VsZCBub3QgYmUKLQkJCS8vIGNhY2hl
ZCBzdGF0ZWZ1bGx5LgotCQkJZmxhZ3M6IFtdc3RyaW5neyItZXhwZWN0LW5vLXNlc3Npb24taWQi
fSwKKwkJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCQkvLyBUTFMgMS4zIHVzZXMgdGlja2V0cywgc28g
dGhlIHNlc3Npb24gc2hvdWxkIG5vdCBiZQorCQkJCS8vIGNhY2hlZCBzdGF0ZWZ1bGx5LgorCQkJ
CSItZXhwZWN0LW5vLXNlc3Npb24taWQiLAorCQkJCS8vIDAtUlRUIGJlaW5nIGRpc2FibGVkIG92
ZXJyaWRlcyBhbGwgb3RoZXIgMC1SVFQgcmVhc29ucy4KKwkJCQkiLWV4cGVjdC1lYXJseS1kYXRh
LXJlYXNvbiIsICJkaXNhYmxlZCIsCisJCQl9LAogCQl9KQogCiAJCXRlc3RzID0gYXBwZW5kKHRl
c3RzLCB0ZXN0Q2FzZXsKQEAgLTQ0MDcsMzcgKzQ0OTcsNiBAQCBmdW5jIGFkZFN0YXRlTWFjaGlu
ZUNvdmVyYWdlVGVzdHMoY29uZmlnIHN0YXRlTWFjaGluZVRlc3RDb25maWcpIHsKIAkJCXJlc3Vt
ZVNlc3Npb246IHRydWUsCiAJCX0pCiAKLQkJdGVzdHMgPSBhcHBlbmQodGVzdHMsIHRlc3RDYXNl
ewotCQkJbmFtZTogIlRMUzEzRHJhZnQyMy1IZWxsb1JldHJ5UmVxdWVzdC1DbGllbnQiLAotCQkJ
Y29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCU1pblZl
cnNpb246IFZlcnNpb25UTFMxMywKLQkJCQkvLyBQLTM4NCByZXF1aXJlcyBhIEhlbGxvUmV0cnlS
ZXF1ZXN0IGFnYWluc3QgQm9yaW5nU1NMJ3MgZGVmYXVsdAotCQkJCS8vIGNvbmZpZ3VyYXRpb24u
IEFzc2VydCB0aGlzIHdpdGggRXhwZWN0TWlzc2luZ0tleVNoYXJlLgotCQkJCUN1cnZlUHJlZmVy
ZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJ
CQkJRXhwZWN0TWlzc2luZ0tleVNoYXJlOiB0cnVlLAotCQkJCX0sCi0JCQl9LAotCQkJdGxzMTNW
YXJpYW50OiBUTFMxM0RyYWZ0MjMsCi0JCQkvLyBDb3ZlciBIZWxsb1JldHJ5UmVxdWVzdCBkdXJp
bmcgYW4gRUNESEUtUFNLIHJlc3VtcHRpb24uCi0JCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAotCQl9
KQotCi0JCXRlc3RzID0gYXBwZW5kKHRlc3RzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2
ZXJUZXN0LAotCQkJbmFtZTogICAgICJUTFMxM0RyYWZ0MjMtSGVsbG9SZXRyeVJlcXVlc3QtU2Vy
dmVyIiwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywK
LQkJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJLy8gUmVxdWlyZSBhIEhlbGxvUmV0
cnlSZXF1ZXN0IGZvciBldmVyeSBjdXJ2ZS4KLQkJCQlEZWZhdWx0Q3VydmVzOiBbXUN1cnZlSUR7
fSwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IFRMUzEzRHJhZnQyMywKLQkJCS8vIENvdmVyIEhl
bGxvUmV0cnlSZXF1ZXN0IGR1cmluZyBhbiBFQ0RIRS1QU0sgcmVzdW1wdGlvbi4KLQkJCXJlc3Vt
ZVNlc3Npb246IHRydWUsCi0JCX0pCi0KIAkJdGVzdHMgPSBhcHBlbmQodGVzdHMsIHRlc3RDYXNl
ewogCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCiAJCQluYW1lOiAgICAgIlRMUzEzLUVhcmx5RGF0
YS1Ub29NdWNoRGF0YS1DbGllbnQiLApAQCAtNDQ1OSw3ICs0NTE4LDcgQEAgZnVuYyBhZGRTdGF0
ZU1hY2hpbmVDb3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJ
CQlmbGFnczogW11zdHJpbmd7CiAJCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCiAJCQkJIi1leHBl
Y3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LWFjY2VwdC1lYXJs
eS1kYXRhIiwKKwkJCQkiLW9uLXJlc3VtZS1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEiLAogCQkJ
CSItb24tcmVzdW1lLXNoaW0td3JpdGVzLWZpcnN0IiwKIAkJCX0sCiAJCX0pCkBAIC00NDg4LDcg
KzQ1NDcsNyBAQCBmdW5jIGFkZFN0YXRlTWFjaGluZUNvdmVyYWdlVGVzdHMoY29uZmlnIHN0YXRl
TWFjaGluZVRlc3RDb25maWcpIHsKIAkJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJCSItZW5hYmxl
LWVhcmx5LWRhdGEiLAogCQkJCQkiLWV4cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHktZGF0YSIs
Ci0JCQkJCSItZXhwZWN0LWFjY2VwdC1lYXJseS1kYXRhIiwKKwkJCQkJIi1vbi1yZXN1bWUtZXhw
ZWN0LWFjY2VwdC1lYXJseS1kYXRhIiwKIAkJCQkJIi1vbi1yZXN1bWUtcmVhZC13aXRoLXVuZmlu
aXNoZWQtd3JpdGUiLAogCQkJCQkiLW9uLXJlc3VtZS1zaGltLXdyaXRlcy1maXJzdCIsCiAJCQkJ
fSwKQEAgLTQ1MzksNyArNDU5OCw3IEBAIGZ1bmMgYWRkU3RhdGVNYWNoaW5lQ292ZXJhZ2VUZXN0
cyhjb25maWcgc3RhdGVNYWNoaW5lVGVzdENvbmZpZykgewogCQkJcmVzdW1lU2Vzc2lvbjogdHJ1
ZSwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQki
LWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWFjY2Vw
dC1lYXJseS1kYXRhIiwKIAkJCX0sCiAJCQlzaG91bGRGYWlsOiAgICB0cnVlLAogCQkJZXhwZWN0
ZWRFcnJvcjogIjpUT09fTVVDSF9SRUFEX0VBUkxZX0RBVEE6IiwKQEAgLTQ3OTUsNyArNDg1NCw2
IEBAIGZ1bmMgYWRkU3RhdGVNYWNoaW5lQ292ZXJhZ2VUZXN0cyhjb25maWcgc3RhdGVNYWNoaW5l
VGVzdENvbmZpZykgewogCQkJY29uZmlnOiBDb25maWd7CiAJCQkJTWF4VmVyc2lvbjogdmVycy52
ZXJzaW9uLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmVycy50bHMxM1ZhcmlhbnQsCiAJCQlm
bGFnczogW11zdHJpbmd7CiAJCQkJIi1lbmFibGUtb2NzcC1zdGFwbGluZyIsCiAJCQkJIi1leHBl
Y3Qtb2NzcC1yZXNwb25zZSIsCkBAIC00ODEwLDcgKzQ4NjgsNiBAQCBmdW5jIGFkZFN0YXRlTWFj
aGluZUNvdmVyYWdlVGVzdHMoY29uZmlnIHN0YXRlTWFjaGluZVRlc3RDb25maWcpIHsKIAkJCWNv
bmZpZzogQ29uZmlnewogCQkJCU1heFZlcnNpb246IHZlcnMudmVyc2lvbiwKIAkJCX0sCi0JCQl0
bHMxM1ZhcmlhbnQ6ICAgICAgICAgdmVycy50bHMxM1ZhcmlhbnQsCiAJCQlleHBlY3RlZE9DU1BS
ZXNwb25zZTogdGVzdE9DU1BSZXNwb25zZSwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLW9j
c3AtcmVzcG9uc2UiLApAQCAtNDgyOCw3ICs0ODg1LDYgQEAgZnVuYyBhZGRTdGF0ZU1hY2hpbmVD
b3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJCQkJTWF4VmVy
c2lvbjogICB2ZXJzLnZlcnNpb24sCiAJCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRpZmljYXRle3Jz
YUNlcnRpZmljYXRlfSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZlcnMudGxzMTNWYXJpYW50
LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItZW5hYmxlLW9jc3Atc3RhcGxpbmciLAogCQkJ
CSItdXNlLW9jc3AtY2FsbGJhY2siLApAQCAtNDg0Nyw3ICs0OTAzLDYgQEAgZnVuYyBhZGRTdGF0
ZU1hY2hpbmVDb3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJ
CQkJTWF4VmVyc2lvbjogICB2ZXJzLnZlcnNpb24sCiAJCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRp
ZmljYXRle3JzYUNlcnRpZmljYXRlfSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZlcnMudGxz
MTNWYXJpYW50LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItZW5hYmxlLW9jc3Atc3RhcGxp
bmciLAogCQkJCSItdXNlLW9jc3AtY2FsbGJhY2siLApAQCAtNDg2OCw3ICs0OTIzLDYgQEAgZnVu
YyBhZGRTdGF0ZU1hY2hpbmVDb3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29u
ZmlnKSB7CiAJCQkJTWF4VmVyc2lvbjogICB2ZXJzLnZlcnNpb24sCiAJCQkJQ2VydGlmaWNhdGVz
OiBbXUNlcnRpZmljYXRle2NlcnROb1N0YXBsZX0sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2
ZXJzLnRsczEzVmFyaWFudCwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWVuYWJsZS1vY3Nw
LXN0YXBsaW5nIiwKIAkJCQkiLXVzZS1vY3NwLWNhbGxiYWNrIiwKQEAgLTQ4ODcsNyArNDk0MSw2
IEBAIGZ1bmMgYWRkU3RhdGVNYWNoaW5lQ292ZXJhZ2VUZXN0cyhjb25maWcgc3RhdGVNYWNoaW5l
VGVzdENvbmZpZykgewogCQkJY29uZmlnOiBDb25maWd7CiAJCQkJTWF4VmVyc2lvbjogdmVycy52
ZXJzaW9uLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgICB2ZXJzLnRsczEzVmFyaWFu
dCwKIAkJCWV4cGVjdGVkT0NTUFJlc3BvbnNlOiB0ZXN0T0NTUFJlc3BvbnNlLAogCQkJZmxhZ3M6
IFtdc3RyaW5newogCQkJCSItdXNlLW9jc3AtY2FsbGJhY2siLApAQCAtNDkwNyw3ICs0OTYwLDYg
QEAgZnVuYyBhZGRTdGF0ZU1hY2hpbmVDb3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVU
ZXN0Q29uZmlnKSB7CiAJCQljb25maWc6IENvbmZpZ3sKIAkJCQlNYXhWZXJzaW9uOiB2ZXJzLnZl
cnNpb24sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgICAgICAgIHZlcnMudGxzMTNWYXJpYW50
LAogCQkJZXhwZWN0ZWRPQ1NQUmVzcG9uc2U6IFtdYnl0ZXt9LAogCQkJZmxhZ3M6IFtdc3RyaW5n
ewogCQkJCSItdXNlLW9jc3AtY2FsbGJhY2siLApAQCAtNDkyNSw3ICs0OTc3LDYgQEAgZnVuYyBh
ZGRTdGF0ZU1hY2hpbmVDb3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmln
KSB7CiAJCQljb25maWc6IENvbmZpZ3sKIAkJCQlNYXhWZXJzaW9uOiB2ZXJzLnZlcnNpb24sCiAJ
CQl9LAotCQkJdGxzMTNWYXJpYW50OiB2ZXJzLnRsczEzVmFyaWFudCwKIAkJCWZsYWdzOiBbXXN0
cmluZ3sKIAkJCQkiLXVzZS1vY3NwLWNhbGxiYWNrIiwKIAkJCQkiLWZhaWwtb2NzcC1jYWxsYmFj
ayIsCkBAIC00OTY4LDcgKzUwMTksNiBAQCBmdW5jIGFkZFN0YXRlTWFjaGluZUNvdmVyYWdlVGVz
dHMoY29uZmlnIHN0YXRlTWFjaGluZVRlc3RDb25maWcpIHsKIAkJCQkJCU1heFZlcnNpb246ICAg
dmVycy52ZXJzaW9uLAogCQkJCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRpZmljYXRle3JzYUNlcnRp
ZmljYXRlfSwKIAkJCQkJfSwKLQkJCQkJdGxzMTNWYXJpYW50OiAgdmVycy50bHMxM1ZhcmlhbnQs
CiAJCQkJCWZsYWdzOiAgICAgICAgIGFwcGVuZChbXXN0cmluZ3siLWV4cGVjdC12ZXJpZnktcmVz
dWx0In0sIGZsYWdzLi4uKSwKIAkJCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKIAkJCQl9KQpAQCAt
NDk3OSw3ICs1MDI5LDYgQEAgZnVuYyBhZGRTdGF0ZU1hY2hpbmVDb3ZlcmFnZVRlc3RzKGNvbmZp
ZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJCQkJCQlNYXhWZXJzaW9uOiAgIHZlcnMudmVy
c2lvbiwKIAkJCQkJCUNlcnRpZmljYXRlczogW11DZXJ0aWZpY2F0ZXtyc2FDZXJ0aWZpY2F0ZX0s
CiAJCQkJCX0sCi0JCQkJCXRsczEzVmFyaWFudDogIHZlcnMudGxzMTNWYXJpYW50LAogCQkJCQlm
bGFnczogICAgICAgICBhcHBlbmQoW11zdHJpbmd7Ii12ZXJpZnktZmFpbCJ9LCBmbGFncy4uLiks
CiAJCQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCiAJCQkJCWV4cGVjdGVkRXJyb3I6ICI6Q0VSVElG
SUNBVEVfVkVSSUZZX0ZBSUxFRDoiLApAQCAtNDk5Miw3ICs1MDQxLDYgQEAgZnVuYyBhZGRTdGF0
ZU1hY2hpbmVDb3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJ
CQkJCQlNYXhWZXJzaW9uOiAgIHZlcnMudmVyc2lvbiwKIAkJCQkJCUNlcnRpZmljYXRlczogW11D
ZXJ0aWZpY2F0ZXtyc2FDZXJ0aWZpY2F0ZX0sCiAJCQkJCX0sCi0JCQkJCXRsczEzVmFyaWFudDog
IHZlcnMudGxzMTNWYXJpYW50LAogCQkJCQlmbGFnczogICAgICAgICBhcHBlbmQoW11zdHJpbmd7
Ii1vbi1yZXN1bWUtdmVyaWZ5LWZhaWwifSwgZmxhZ3MuLi4pLAogCQkJCQlyZXN1bWVTZXNzaW9u
OiB0cnVlLAogCQkJCX0pCkBAIC01MDA0LDcgKzUwNTIsNiBAQCBmdW5jIGFkZFN0YXRlTWFjaGlu
ZUNvdmVyYWdlVGVzdHMoY29uZmlnIHN0YXRlTWFjaGluZVRlc3RDb25maWcpIHsKIAkJCQkJCQlN
YXhWZXJzaW9uOiAgIHZlcnMudmVyc2lvbiwKIAkJCQkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlm
aWNhdGV7cnNhQ2VydGlmaWNhdGV9LAogCQkJCQkJfSwKLQkJCQkJCXRsczEzVmFyaWFudDogdmVy
cy50bHMxM1ZhcmlhbnQsCiAJCQkJCQlmbGFnczogYXBwZW5kKFtdc3RyaW5newogCQkJCQkJCSIt
b24tcmVzdW1lLXZlcmlmeS1mYWlsIiwKIAkJCQkJCQkiLXJldmVyaWZ5LW9uLXJlc3VtZSIsCkBA
IC01MDIwLDcgKzUwNjcsNiBAQCBmdW5jIGFkZFN0YXRlTWFjaGluZUNvdmVyYWdlVGVzdHMoY29u
ZmlnIHN0YXRlTWFjaGluZVRlc3RDb25maWcpIHsKIAkJCQkJCQlNYXhWZXJzaW9uOiAgIHZlcnMu
dmVyc2lvbiwKIAkJCQkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7cnNhQ2VydGlmaWNh
dGV9LAogCQkJCQkJfSwKLQkJCQkJCXRsczEzVmFyaWFudDogdmVycy50bHMxM1ZhcmlhbnQsCiAJ
CQkJCQlmbGFnczogYXBwZW5kKFtdc3RyaW5newogCQkJCQkJCSItcmV2ZXJpZnktb24tcmVzdW1l
IiwKIAkJCQkJCX0sIGZsYWdzLi4uKSwKQEAgLTUwMzksNyArNTA4NSw2IEBAIGZ1bmMgYWRkU3Rh
dGVNYWNoaW5lQ292ZXJhZ2VUZXN0cyhjb25maWcgc3RhdGVNYWNoaW5lVGVzdENvbmZpZykgewog
CQkJCQkJCQlNYXhFYXJseURhdGFTaXplOiAgICAgICAxNjM4NCwKIAkJCQkJCQkJU2Vzc2lvblRp
Y2tldHNEaXNhYmxlZDogdHJ1ZSwKIAkJCQkJCQl9LAotCQkJCQkJCXRsczEzVmFyaWFudDogICAg
ICAgICB2ZXJzLnRsczEzVmFyaWFudCwKIAkJCQkJCQlyZXN1bWVTZXNzaW9uOiAgICAgICAgdHJ1
ZSwKIAkJCQkJCQlleHBlY3RSZXN1bWVSZWplY3RlZDogdHJ1ZSwKIAkJCQkJCQlmbGFnczogYXBw
ZW5kKFtdc3RyaW5newpAQCAtNTA2Niw3ICs1MTExLDYgQEAgZnVuYyBhZGRTdGF0ZU1hY2hpbmVD
b3ZlcmFnZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJCQkJCQkJCQlB
bHdheXNSZWplY3RFYXJseURhdGE6IHRydWUsCiAJCQkJCQkJCX0sCiAJCQkJCQkJfSwKLQkJCQkJ
CQl0bHMxM1ZhcmlhbnQ6ICAgICAgICAgdmVycy50bHMxM1ZhcmlhbnQsCiAJCQkJCQkJcmVzdW1l
U2Vzc2lvbjogICAgICAgIHRydWUsCiAJCQkJCQkJZXhwZWN0UmVzdW1lUmVqZWN0ZWQ6IGZhbHNl
LAogCQkJCQkJCWZsYWdzOiBhcHBlbmQoW11zdHJpbmd7CkBAIC01MDg5LDcgKzUxMzMsNiBAQCBm
dW5jIGFkZFN0YXRlTWFjaGluZUNvdmVyYWdlVGVzdHMoY29uZmlnIHN0YXRlTWFjaGluZVRlc3RD
b25maWcpIHsKIAkJCQkJCQkJTWF4RWFybHlEYXRhU2l6ZTogICAgICAgMTYzODQsCiAJCQkJCQkJ
CVNlc3Npb25UaWNrZXRzRGlzYWJsZWQ6IHRydWUsCiAJCQkJCQkJfSwKLQkJCQkJCQl0bHMxM1Zh
cmlhbnQ6ICAgICAgICAgdmVycy50bHMxM1ZhcmlhbnQsCiAJCQkJCQkJcmVzdW1lU2Vzc2lvbjog
ICAgICAgIHRydWUsCiAJCQkJCQkJZXhwZWN0UmVzdW1lUmVqZWN0ZWQ6IHRydWUsCiAJCQkJCQkJ
c2hvdWxkRmFpbDogICAgICAgICAgIHRydWUsCkBAIC01MTE5LDcgKzUxNjIsNiBAQCBmdW5jIGFk
ZFN0YXRlTWFjaGluZUNvdmVyYWdlVGVzdHMoY29uZmlnIHN0YXRlTWFjaGluZVRlc3RDb25maWcp
IHsKIAkJCQkJCQkJCUFsd2F5c1JlamVjdEVhcmx5RGF0YTogdHJ1ZSwKIAkJCQkJCQkJfSwKIAkJ
CQkJCQl9LAotCQkJCQkJCXRsczEzVmFyaWFudDogICAgICAgICB2ZXJzLnRsczEzVmFyaWFudCwK
IAkJCQkJCQlyZXN1bWVTZXNzaW9uOiAgICAgICAgdHJ1ZSwKIAkJCQkJCQlleHBlY3RSZXN1bWVS
ZWplY3RlZDogZmFsc2UsCiAJCQkJCQkJc2hvdWxkRmFpbDogICAgICAgICAgIHRydWUsCkBAIC01
MTQ4LDcgKzUxOTAsNiBAQCBmdW5jIGFkZFN0YXRlTWFjaGluZUNvdmVyYWdlVGVzdHMoY29uZmln
IHN0YXRlTWFjaGluZVRlc3RDb25maWcpIHsKIAkJCQkJCQkJCUV4cGVjdEVhcmx5RGF0YTogW11b
XWJ5dGV7W11ieXRlKCJoZWxsbyIpfSwKIAkJCQkJCQkJfSwKIAkJCQkJCQl9LAotCQkJCQkJCXRs
czEzVmFyaWFudDogICAgICAgICB2ZXJzLnRsczEzVmFyaWFudCwKIAkJCQkJCQlyZXN1bWVTZXNz
aW9uOiAgICAgICAgdHJ1ZSwKIAkJCQkJCQlleHBlY3RSZXN1bWVSZWplY3RlZDogZmFsc2UsCiAJ
CQkJCQkJZmxhZ3M6IGFwcGVuZChbXXN0cmluZ3sKQEAgLTUxNzIsNyArNTIxMyw2IEBAIGZ1bmMg
YWRkU3RhdGVNYWNoaW5lQ292ZXJhZ2VUZXN0cyhjb25maWcgc3RhdGVNYWNoaW5lVGVzdENvbmZp
ZykgewogCQkJCQkJCQkJRXhwZWN0RWFybHlEYXRhOiBbXVtdYnl0ZXtbXWJ5dGUoImhlbGxvIil9
LAogCQkJCQkJCQl9LAogCQkJCQkJCX0sCi0JCQkJCQkJdGxzMTNWYXJpYW50OiAgdmVycy50bHMx
M1ZhcmlhbnQsCiAJCQkJCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKIAkJCQkJCQlzaG91bGRGYWls
OiAgICB0cnVlLAogCQkJCQkJCWV4cGVjdGVkRXJyb3I6ICI6Q0VSVElGSUNBVEVfVkVSSUZZX0ZB
SUxFRDoiLApAQCAtNTE5OCw3ICs1MjM4LDYgQEAgZnVuYyBhZGRTdGF0ZU1hY2hpbmVDb3ZlcmFn
ZVRlc3RzKGNvbmZpZyBzdGF0ZU1hY2hpbmVUZXN0Q29uZmlnKSB7CiAJCQkJTWF4VmVyc2lvbjog
ICB2ZXJzLnZlcnNpb24sCiAJCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRpZmljYXRle3JzYUNlcnRp
ZmljYXRlfSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZlcnMudGxzMTNWYXJpYW50LAogCQkJ
ZmxhZ3M6IFtdc3RyaW5newogCQkJCSItdmVyaWZ5LWZhaWwiLAogCQkJCSItZXhwZWN0LXZlcmlm
eS1yZXN1bHQiLApAQCAtNTM3MCw3ICs1NDA5LDYgQEAgcmVhZCBhbGVydCAxIDAKIAkJCQkJTWF4
VmVyc2lvbjogICAgICAgdmVyLnZlcnNpb24sCiAJCQkJCVJlcXVlc3RDaGFubmVsSUQ6IHRydWUs
CiAJCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQkJZmxh
Z3M6ICAgICAgICAgICBbXXN0cmluZ3siLXNlbmQtY2hhbm5lbC1pZCIsIHBhdGguSm9pbigqcmVz
b3VyY2VEaXIsIGNoYW5uZWxJREtleUZpbGUpfSwKIAkJCQlyZXN1bWVTZXNzaW9uOiAgIHRydWUs
CiAJCQkJZXhwZWN0Q2hhbm5lbElEOiB0cnVlLApAQCAtNTM4NCw3ICs1NDIyLDYgQEAgcmVhZCBh
bGVydCAxIDAKIAkJCQkJTWF4VmVyc2lvbjogdmVyLnZlcnNpb24sCiAJCQkJCUNoYW5uZWxJRDog
IGNoYW5uZWxJREtleSwKIAkJCQl9LAotCQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFu
dCwKIAkJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJCSItZXhwZWN0LWNoYW5uZWwtaWQiLAogCQkJ
CQliYXNlNjQuU3RkRW5jb2RpbmcuRW5jb2RlVG9TdHJpbmcoY2hhbm5lbElEQnl0ZXMpLApAQCAt
NTQwMyw3ICs1NDQwLDYgQEAgcmVhZCBhbGVydCAxIDAKIAkJCQkJCUludmFsaWRDaGFubmVsSURT
aWduYXR1cmU6IHRydWUsCiAJCQkJCX0sCiAJCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIu
dGxzMTNWYXJpYW50LAogCQkJCWZsYWdzOiAgICAgICAgIFtdc3RyaW5neyItZW5hYmxlLWNoYW5u
ZWwtaWQifSwKIAkJCQlzaG91bGRGYWlsOiAgICB0cnVlLAogCQkJCWV4cGVjdGVkRXJyb3I6ICI6
Q0hBTk5FTF9JRF9TSUdOQVRVUkVfSU5WQUxJRDoiLApAQCAtNTcyNSw3ICs1NzYxLDcgQEAgZnVu
YyBhZGRERG9TQ2FsbGJhY2tUZXN0cygpIHsKIAogZnVuYyBhZGRWZXJzaW9uTmVnb3RpYXRpb25U
ZXN0cygpIHsKIAlmb3IgXywgcHJvdG9jb2wgOj0gcmFuZ2UgW11wcm90b2NvbHt0bHMsIGR0bHN9
IHsKLQkJZm9yIF8sIHNoaW1WZXJzIDo9IHJhbmdlIGFsbFNoaW1WZXJzaW9ucyhwcm90b2NvbCkg
eworCQlmb3IgXywgc2hpbVZlcnMgOj0gcmFuZ2UgYWxsVmVyc2lvbnMocHJvdG9jb2wpIHsKIAkJ
CS8vIEFzc2VtYmxlIGZsYWdzIHRvIGRpc2FibGUgYWxsIG5ld2VyIHZlcnNpb25zIG9uIHRoZSBz
aGltLgogCQkJdmFyIGZsYWdzIFtdc3RyaW5nCiAJCQlmb3IgXywgdmVycyA6PSByYW5nZSBhbGxW
ZXJzaW9ucyhwcm90b2NvbCkgewpAQCAtNTczNiwxMSArNTc3Miw2IEBAIGZ1bmMgYWRkVmVyc2lv
bk5lZ290aWF0aW9uVGVzdHMoKSB7CiAKIAkJCWZsYWdzMiA6PSBbXXN0cmluZ3siLW1heC12ZXJz
aW9uIiwgc2hpbVZlcnMuc2hpbUZsYWcocHJvdG9jb2wpfQogCi0JCQlpZiBzaGltVmVycy50bHMx
M1ZhcmlhbnQgIT0gMCB7Ci0JCQkJZmxhZ3MgPSBhcHBlbmQoZmxhZ3MsICItdGxzMTMtdmFyaWFu
dCIsIHN0cmNvbnYuSXRvYShzaGltVmVycy50bHMxM1ZhcmlhbnQpKQotCQkJCWZsYWdzMiA9IGFw
cGVuZChmbGFnczIsICItdGxzMTMtdmFyaWFudCIsIHN0cmNvbnYuSXRvYShzaGltVmVycy50bHMx
M1ZhcmlhbnQpKQotCQkJfQotCiAJCQkvLyBUZXN0IGNvbmZpZ3VyaW5nIHRoZSBydW5uZXIncyBt
YXhpbXVtIHZlcnNpb24uCiAJCQlmb3IgXywgcnVubmVyVmVycyA6PSByYW5nZSBhbGxWZXJzaW9u
cyhwcm90b2NvbCkgewogCQkJCWV4cGVjdGVkVmVyc2lvbiA6PSBzaGltVmVycy52ZXJzaW9uCkBA
IC01NzQ4LDEyICs1Nzc5LDYgQEAgZnVuYyBhZGRWZXJzaW9uTmVnb3RpYXRpb25UZXN0cygpIHsK
IAkJCQkJZXhwZWN0ZWRWZXJzaW9uID0gcnVubmVyVmVycy52ZXJzaW9uCiAJCQkJfQogCi0JCQkJ
aWYgZXhwZWN0ZWRWZXJzaW9uID09IFZlcnNpb25UTFMxMyAmJiBydW5uZXJWZXJzLnRsczEzVmFy
aWFudCAhPSBzaGltVmVycy50bHMxM1ZhcmlhbnQgewotCQkJCQlpZiBzaGltVmVycy50bHMxM1Zh
cmlhbnQgIT0gVExTMTNBbGwgewotCQkJCQkJZXhwZWN0ZWRWZXJzaW9uID0gVmVyc2lvblRMUzEy
Ci0JCQkJCX0KLQkJCQl9Ci0KIAkJCQlzdWZmaXggOj0gc2hpbVZlcnMubmFtZSArICItIiArIHJ1
bm5lclZlcnMubmFtZQogCQkJCWlmIHByb3RvY29sID09IGR0bHMgewogCQkJCQlzdWZmaXggKz0g
Ii1EVExTIgpAQCAtNTc3Niw4ICs1ODAxLDcgQEAgZnVuYyBhZGRWZXJzaW9uTmVnb3RpYXRpb25U
ZXN0cygpIHsKIAkJCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCiAJCQkJCW5hbWU6ICAgICAiVmVy
c2lvbk5lZ290aWF0aW9uLUNsaWVudC0iICsgc3VmZml4LAogCQkJCQljb25maWc6IENvbmZpZ3sK
LQkJCQkJCU1heFZlcnNpb246ICAgcnVubmVyVmVycy52ZXJzaW9uLAotCQkJCQkJVExTMTNWYXJp
YW50OiBydW5uZXJWZXJzLnRsczEzVmFyaWFudCwKKwkJCQkJCU1heFZlcnNpb246IHJ1bm5lclZl
cnMudmVyc2lvbiwKIAkJCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKIAkJCQkJCQlFeHBlY3RJbml0
aWFsUmVjb3JkVmVyc2lvbjogY2xpZW50VmVycywKIAkJCQkJCX0sCkBAIC01NzkwLDggKzU4MTQs
NyBAQCBmdW5jIGFkZFZlcnNpb25OZWdvdGlhdGlvblRlc3RzKCkgewogCQkJCQl0ZXN0VHlwZTog
Y2xpZW50VGVzdCwKIAkJCQkJbmFtZTogICAgICJWZXJzaW9uTmVnb3RpYXRpb24tQ2xpZW50Mi0i
ICsgc3VmZml4LAogCQkJCQljb25maWc6IENvbmZpZ3sKLQkJCQkJCU1heFZlcnNpb246ICAgcnVu
bmVyVmVycy52ZXJzaW9uLAotCQkJCQkJVExTMTNWYXJpYW50OiBydW5uZXJWZXJzLnRsczEzVmFy
aWFudCwKKwkJCQkJCU1heFZlcnNpb246IHJ1bm5lclZlcnMudmVyc2lvbiwKIAkJCQkJCUJ1Z3M6
IFByb3RvY29sQnVnc3sKIAkJCQkJCQlFeHBlY3RJbml0aWFsUmVjb3JkVmVyc2lvbjogY2xpZW50
VmVycywKIAkJCQkJCX0sCkBAIC01ODA1LDggKzU4MjgsNyBAQCBmdW5jIGFkZFZlcnNpb25OZWdv
dGlhdGlvblRlc3RzKCkgewogCQkJCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKIAkJCQkJbmFtZTog
ICAgICJWZXJzaW9uTmVnb3RpYXRpb24tU2VydmVyLSIgKyBzdWZmaXgsCiAJCQkJCWNvbmZpZzog
Q29uZmlnewotCQkJCQkJTWF4VmVyc2lvbjogICBydW5uZXJWZXJzLnZlcnNpb24sCi0JCQkJCQlU
TFMxM1ZhcmlhbnQ6IHJ1bm5lclZlcnMudGxzMTNWYXJpYW50LAorCQkJCQkJTWF4VmVyc2lvbjog
cnVubmVyVmVycy52ZXJzaW9uLAogCQkJCQkJQnVnczogUHJvdG9jb2xCdWdzewogCQkJCQkJCUV4
cGVjdEluaXRpYWxSZWNvcmRWZXJzaW9uOiBzZXJ2ZXJWZXJzLAogCQkJCQkJfSwKQEAgLTU4MTks
OCArNTg0MSw3IEBAIGZ1bmMgYWRkVmVyc2lvbk5lZ290aWF0aW9uVGVzdHMoKSB7CiAJCQkJCXRl
c3RUeXBlOiBzZXJ2ZXJUZXN0LAogCQkJCQluYW1lOiAgICAgIlZlcnNpb25OZWdvdGlhdGlvbi1T
ZXJ2ZXIyLSIgKyBzdWZmaXgsCiAJCQkJCWNvbmZpZzogQ29uZmlnewotCQkJCQkJTWF4VmVyc2lv
bjogICBydW5uZXJWZXJzLnZlcnNpb24sCi0JCQkJCQlUTFMxM1ZhcmlhbnQ6IHJ1bm5lclZlcnMu
dGxzMTNWYXJpYW50LAorCQkJCQkJTWF4VmVyc2lvbjogcnVubmVyVmVycy52ZXJzaW9uLAogCQkJ
CQkJQnVnczogUHJvdG9jb2xCdWdzewogCQkJCQkJCUV4cGVjdEluaXRpYWxSZWNvcmRWZXJzaW9u
OiBzZXJ2ZXJWZXJzLAogCQkJCQkJfSwKQEAgLTU4NDksMTQgKzU4NzAsMTIgQEAgZnVuYyBhZGRW
ZXJzaW9uTmVnb3RpYXRpb25UZXN0cygpIHsKIAkJCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKIAkJ
CQluYW1lOiAgICAgIlZlcnNpb25OZWdvdGlhdGlvbkV4dGVuc2lvbi0iICsgc3VmZml4LAogCQkJ
CWNvbmZpZzogQ29uZmlnewotCQkJCQlUTFMxM1ZhcmlhbnQ6IHZlcnMudGxzMTNWYXJpYW50LAog
CQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CiAJCQkJCQlTZW5kU3VwcG9ydGVkVmVyc2lvbnM6ICAg
ICAgW111aW50MTZ7MHgxMTExLCB2ZXJzLndpcmUocHJvdG9jb2wpLCAweDIyMjJ9LAogCQkJCQkJ
SWdub3JlVExTMTNEb3duZ3JhZGVSYW5kb206IHRydWUsCiAJCQkJCX0sCiAJCQkJfSwKIAkJCQll
eHBlY3RlZFZlcnNpb246IHZlcnMudmVyc2lvbiwKLQkJCQlmbGFnczogICAgICAgICAgIFtdc3Ry
aW5neyItdGxzMTMtdmFyaWFudCIsIHN0cmNvbnYuSXRvYSh2ZXJzLnRsczEzVmFyaWFudCl9LAog
CQkJfSkKIAkJfQogCX0KQEAgLTYwODAsNyArNjA5OSw2IEBAIGZ1bmMgYWRkVmVyc2lvbk5lZ290
aWF0aW9uVGVzdHMoKSB7CiAJCQkJCU5lZ290aWF0ZVZlcnNpb246IHRlc3QudmVyc2lvbiwKIAkJ
CQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgVExTMTNSRkMsCiAJCQlleHBlY3Rl
ZFZlcnNpb246ICAgIHRlc3QudmVyc2lvbiwKIAkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwK
IAkJCWV4cGVjdGVkRXJyb3I6ICAgICAgIjpUTFMxM19ET1dOR1JBREU6IiwKQEAgLTYwOTYsNyAr
NjExNCw2IEBAIGZ1bmMgYWRkVmVyc2lvbk5lZ290aWF0aW9uVGVzdHMoKSB7CiAJCQkJCU5lZ290
aWF0ZVZlcnNpb246IHRlc3QudmVyc2lvbiwKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFu
dDogICAgVExTMTNSRkMsCiAJCQlleHBlY3RlZFZlcnNpb246IHRlc3QudmVyc2lvbiwKIAkJCWZs
YWdzOiBbXXN0cmluZ3sKIAkJCQkiLWlnbm9yZS10bHMxMy1kb3duZ3JhZGUiLApAQCAtNjExMywz
NyArNjEzMCwxMiBAQCBmdW5jIGFkZFZlcnNpb25OZWdvdGlhdGlvblRlc3RzKCkgewogCQkJCQlT
ZW5kU3VwcG9ydGVkVmVyc2lvbnM6IFtddWludDE2e3Rlc3QudmVyc2lvbn0sCiAJCQkJfSwKIAkJ
CX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIFRMUzEzUkZDLAogCQkJZXhwZWN0ZWRWZXJzaW9u
OiAgICB0ZXN0LnZlcnNpb24sCiAJCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCiAJCQlleHBl
Y3RlZExvY2FsRXJyb3I6IHRlc3QuY2xpZW50U2hpbUVycm9yLAogCQl9KQogCX0KIAotCS8vIFRl
c3QgdGhhdCB0aGUgZHJhZnQgVExTIDEuMyB2YXJpYW50cyBkb24ndCB0cmlnZ2VyIHRoZSBkb3du
Z3JhZGUgbG9naWMuCi0JdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0J
CW5hbWU6ICJEb3duZ3JhZGUtRHJhZnQtQ2xpZW50IiwKLQkJY29uZmlnOiBDb25maWd7Ci0JCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJTmVnb3RpYXRlVmVyc2lvbjogICAgICAgICBWZXJzaW9u
VExTMTIsCi0JCQkJU2VuZFRMUzEzRG93bmdyYWRlUmFuZG9tOiB0cnVlLAotCQkJfSwKLQkJfSwK
LQkJdGxzMTNWYXJpYW50OiAgICBUTFMxM0RyYWZ0MjgsCi0JCWV4cGVjdGVkVmVyc2lvbjogVmVy
c2lvblRMUzEyLAotCX0pCi0JdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7
Ci0JCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQluYW1lOiAgICAgIkRvd25ncmFkZS1EcmFmdC1T
ZXJ2ZXIiLAotCQljb25maWc6IENvbmZpZ3sKLQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQlD
aGVja1RMUzEzRG93bmdyYWRlUmFuZG9tOiB0cnVlLAotCQkJfSwKLQkJfSwKLQkJdGxzMTNWYXJp
YW50OiAgICBUTFMxM0RyYWZ0MjgsCi0JCWV4cGVjdGVkVmVyc2lvbjogVmVyc2lvblRMUzEzLAot
CX0pCi0KIAkvLyBUZXN0IHRoYXQgRmFsc2UgU3RhcnQgaXMgZGlzYWJsZWQgd2hlbiB0aGUgZG93
bmdyYWRlIGxvZ2ljIHRyaWdnZXJzLgogCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRl
c3RDYXNlewogCQluYW1lOiAiRG93bmdyYWRlLUZhbHNlU3RhcnQiLApAQCAtNjE1NSw3ICs2MTQ3
LDYgQEAgZnVuYyBhZGRWZXJzaW9uTmVnb3RpYXRpb25UZXN0cygpIHsKIAkJCQlBbGVydEJlZm9y
ZUZhbHNlU3RhcnRUZXN0OiBhbGVydEFjY2Vzc0RlbmllZCwKIAkJCX0sCiAJCX0sCi0JCXRsczEz
VmFyaWFudDogICAgVExTMTNSRkMsCiAJCWV4cGVjdGVkVmVyc2lvbjogVmVyc2lvblRMUzEyLAog
CQlmbGFnczogW11zdHJpbmd7CiAJCQkiLWZhbHNlLXN0YXJ0IiwKQEAgLTYxNjgsMjkgKzYxNTks
NiBAQCBmdW5jIGFkZFZlcnNpb25OZWdvdGlhdGlvblRlc3RzKCkgewogCQlleHBlY3RlZExvY2Fs
RXJyb3I6ICJ0bHM6IHBlZXIgZGlkIG5vdCBmYWxzZSBzdGFydDogRU9GIiwKIAl9KQogCi0JLy8g
VGVzdCB0aGF0IGRyYWZ0IFRMUyAxLjMgdmVyc2lvbnMgZG8gbm90IHRyaWdnZXIgZGlzYWJsaW5n
IEZhbHNlIFN0YXJ0LgotCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewot
CQluYW1lOiAiRG93bmdyYWRlLUZhbHNlU3RhcnQtRHJhZnQiLAotCQljb25maWc6IENvbmZpZ3sK
LQkJCU1heFZlcnNpb246ICAgVmVyc2lvblRMUzEzLAotCQkJVExTMTNWYXJpYW50OiBUTFMxM1JG
QywKLQkJCU5leHRQcm90b3M6ICAgW11zdHJpbmd7ImZvbyJ9LAotCQkJQnVnczogUHJvdG9jb2xC
dWdzewotCQkJCUV4cGVjdEZhbHNlU3RhcnQ6IHRydWUsCi0JCQl9LAotCQl9LAotCQlleHBlY3Rl
ZFZlcnNpb246IFZlcnNpb25UTFMxMiwKLQkJZmxhZ3M6IFtdc3RyaW5newotCQkJIi1mYWxzZS1z
dGFydCIsCi0JCQkiLWFkdmVydGlzZS1hbHBuIiwgIlx4MDNmb28iLAotCQkJIi1leHBlY3QtYWxw
biIsICJmb28iLAotCQkJIi1pZ25vcmUtdGxzMTMtZG93bmdyYWRlIiwKLQkJCSItdGxzMTMtdmFy
aWFudCIsIHN0cmNvbnYuSXRvYShUTFMxM0RyYWZ0MjgpLAotCQkJIi1tYXgtdmVyc2lvbiIsIHN0
cmNvbnYuSXRvYShWZXJzaW9uVExTMTMpLAotCQl9LAotCQlzaGltV3JpdGVzRmlyc3Q6IHRydWUs
Ci0JfSkKLQogCS8vIFNTTCAzLjAgc3VwcG9ydCBoYXMgYmVlbiByZW1vdmVkLiBUZXN0IHRoYXQg
dGhlIHNoaW0gZG9lcyBub3QKIAkvLyBzdXBwb3J0IGl0LgogCXRlc3RDYXNlcyA9IGFwcGVuZCh0
ZXN0Q2FzZXMsIHRlc3RDYXNlewpAQCAtNjI0NSwyMiArNjIxMyw3IEBAIGZ1bmMgYWRkTWluaW11
bVZlcnNpb25UZXN0cygpIHsKIAogCQkJZmxhZ3MyIDo9IFtdc3RyaW5neyItbWluLXZlcnNpb24i
LCBzaGltVmVycy5zaGltRmxhZyhwcm90b2NvbCl9CiAKLQkJCWlmIHNoaW1WZXJzLnRsczEzVmFy
aWFudCAhPSAwIHsKLQkJCQlmbGFncyA9IGFwcGVuZChmbGFncywgIi10bHMxMy12YXJpYW50Iiwg
c3RyY29udi5JdG9hKHNoaW1WZXJzLnRsczEzVmFyaWFudCkpCi0JCQkJZmxhZ3MyID0gYXBwZW5k
KGZsYWdzMiwgIi10bHMxMy12YXJpYW50Iiwgc3RyY29udi5JdG9hKHNoaW1WZXJzLnRsczEzVmFy
aWFudCkpCi0JCQl9Ci0KIAkJCWZvciBfLCBydW5uZXJWZXJzIDo9IHJhbmdlIGFsbFZlcnNpb25z
KHByb3RvY29sKSB7Ci0JCQkJLy8gRGlmZmVyZW50IFRMUyAxLjMgdmFyaWFudHMgYXJlIGluY29t
cGF0aWJsZSB3aXRoIGVhY2ggb3RoZXIgYW5kIGRvbid0Ci0JCQkJLy8gcHJvZHVjZSBjb25zaXN0
ZW50IG1pbmltdW0gdmVyc2lvbnMuCi0JCQkJLy8KLQkJCQkvLyBUT0RPKGRhdmlkYmVuKTogRm9s
ZCB0aGVzZSB0ZXN0cyAodGhlIG1haW4gdmFsdWUgaXMgaW4gdGhlCi0JCQkJLy8gTmVnb3RpYXRl
VmVyc2lvbiBidWcpIGludG8gYWRkVmVyc2lvbk5lZ290aWF0aW9uVGVzdHMgYW5kIHRlc3QgYmFz
ZWQKLQkJCQkvLyBvbiBpbnRlbmRlZCBzaGltIGJlaGF2aW9yLCBub3QgdGhlIHNoaW0gKyBydW5u
ZXIgY29tYmluYXRpb24uCi0JCQkJaWYgc2hpbVZlcnMudGxzMTNWYXJpYW50ICE9IHJ1bm5lclZl
cnMudGxzMTNWYXJpYW50IHsKLQkJCQkJY29udGludWUKLQkJCQl9Ci0KIAkJCQlzdWZmaXggOj0g
c2hpbVZlcnMubmFtZSArICItIiArIHJ1bm5lclZlcnMubmFtZQogCQkJCWlmIHByb3RvY29sID09
IGR0bHMgewogCQkJCQlzdWZmaXggKz0gIi1EVExTIgpAQCAtNjI4Miw4ICs2MjM1LDcgQEAgZnVu
YyBhZGRNaW5pbXVtVmVyc2lvblRlc3RzKCkgewogCQkJCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwK
IAkJCQkJbmFtZTogICAgICJNaW5pbXVtVmVyc2lvbi1DbGllbnQtIiArIHN1ZmZpeCwKIAkJCQkJ
Y29uZmlnOiBDb25maWd7Ci0JCQkJCQlNYXhWZXJzaW9uOiAgIHJ1bm5lclZlcnMudmVyc2lvbiwK
LQkJCQkJCVRMUzEzVmFyaWFudDogcnVubmVyVmVycy50bHMxM1ZhcmlhbnQsCisJCQkJCQlNYXhW
ZXJzaW9uOiBydW5uZXJWZXJzLnZlcnNpb24sCiAJCQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CiAJ
CQkJCQkJLy8gRW5zdXJlIHRoZSBzZXJ2ZXIgZG9lcyBub3QgZGVjbGluZSB0bwogCQkJCQkJCS8v
IHNlbGVjdCBhIHZlcnNpb24gKHZlcnNpb25zIGV4dGVuc2lvbikgb3IKQEAgLTYzMDMsOCArNjI1
NSw3IEBAIGZ1bmMgYWRkTWluaW11bVZlcnNpb25UZXN0cygpIHsKIAkJCQkJdGVzdFR5cGU6IGNs
aWVudFRlc3QsCiAJCQkJCW5hbWU6ICAgICAiTWluaW11bVZlcnNpb24tQ2xpZW50Mi0iICsgc3Vm
Zml4LAogCQkJCQljb25maWc6IENvbmZpZ3sKLQkJCQkJCU1heFZlcnNpb246ICAgcnVubmVyVmVy
cy52ZXJzaW9uLAotCQkJCQkJVExTMTNWYXJpYW50OiBydW5uZXJWZXJzLnRsczEzVmFyaWFudCwK
KwkJCQkJCU1heFZlcnNpb246IHJ1bm5lclZlcnMudmVyc2lvbiwKIAkJCQkJCUJ1Z3M6IFByb3Rv
Y29sQnVnc3sKIAkJCQkJCQkvLyBFbnN1cmUgdGhlIHNlcnZlciBkb2VzIG5vdCBkZWNsaW5lIHRv
CiAJCQkJCQkJLy8gc2VsZWN0IGEgdmVyc2lvbiAodmVyc2lvbnMgZXh0ZW5zaW9uKSBvcgpAQCAt
NjMyNSw4ICs2Mjc2LDcgQEAgZnVuYyBhZGRNaW5pbXVtVmVyc2lvblRlc3RzKCkgewogCQkJCQl0
ZXN0VHlwZTogc2VydmVyVGVzdCwKIAkJCQkJbmFtZTogICAgICJNaW5pbXVtVmVyc2lvbi1TZXJ2
ZXItIiArIHN1ZmZpeCwKIAkJCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJCQlNYXhWZXJzaW9uOiAg
IHJ1bm5lclZlcnMudmVyc2lvbiwKLQkJCQkJCVRMUzEzVmFyaWFudDogcnVubmVyVmVycy50bHMx
M1ZhcmlhbnQsCisJCQkJCQlNYXhWZXJzaW9uOiBydW5uZXJWZXJzLnZlcnNpb24sCiAJCQkJCX0s
CiAJCQkJCWZsYWdzOiAgICAgICAgICAgICAgZmxhZ3MsCiAJCQkJCWV4cGVjdGVkVmVyc2lvbjog
ICAgZXhwZWN0ZWRWZXJzaW9uLApAQCAtNjMzOSw4ICs2Mjg5LDcgQEAgZnVuYyBhZGRNaW5pbXVt
VmVyc2lvblRlc3RzKCkgewogCQkJCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKIAkJCQkJbmFtZTog
ICAgICJNaW5pbXVtVmVyc2lvbi1TZXJ2ZXIyLSIgKyBzdWZmaXgsCiAJCQkJCWNvbmZpZzogQ29u
ZmlnewotCQkJCQkJTWF4VmVyc2lvbjogICBydW5uZXJWZXJzLnZlcnNpb24sCi0JCQkJCQlUTFMx
M1ZhcmlhbnQ6IHJ1bm5lclZlcnMudGxzMTNWYXJpYW50LAorCQkJCQkJTWF4VmVyc2lvbjogcnVu
bmVyVmVycy52ZXJzaW9uLAogCQkJCQl9LAogCQkJCQlmbGFnczogICAgICAgICAgICAgIGZsYWdz
MiwKIAkJCQkJZXhwZWN0ZWRWZXJzaW9uOiAgICBleHBlY3RlZFZlcnNpb24sCkBAIC02MzcwLDcg
KzYzMTksNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQlEdXBsaWNhdGVFeHRl
bnNpb246IHRydWUsCiAJCQkJfSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZlci50
bHMxM1ZhcmlhbnQsCiAJCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCiAJCQlleHBlY3RlZExv
Y2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IGVycm9yIGRlY29kaW5nIG1lc3NhZ2UiLAogCQl9KQpA
QCAtNjM4Myw3ICs2MzMxLDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCQkJRHVw
bGljYXRlRXh0ZW5zaW9uOiB0cnVlLAogCQkJCX0sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAg
ICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAogCQkJ
ZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBlcnJvciBkZWNvZGluZyBtZXNzYWdl
IiwKIAkJfSkKQEAgLTYzOTgsOCArNjM0NSw3IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7
CiAJCQkJCUV4cGVjdFNlcnZlck5hbWU6ICJleGFtcGxlLmNvbSIsCiAJCQkJfSwKIAkJCX0sCi0J
CQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCi0JCQlmbGFnczogICAgICAgIFtdc3Ry
aW5neyItaG9zdC1uYW1lIiwgImV4YW1wbGUuY29tIn0sCisJCQlmbGFnczogW11zdHJpbmd7Ii1o
b3N0LW5hbWUiLCAiZXhhbXBsZS5jb20ifSwKIAkJfSkKIAkJdGVzdENhc2VzID0gYXBwZW5kKHRl
c3RDYXNlcywgdGVzdENhc2V7CiAJCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKQEAgLTY0MTEsNyAr
NjM1Nyw2IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQkJfSwKIAkJCX0sCiAJCQlm
bGFnczogICAgICAgICAgICAgIFtdc3RyaW5neyItaG9zdC1uYW1lIiwgImV4YW1wbGUuY29tIn0s
Ci0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlzaG91bGRGYWls
OiAgICAgICAgIHRydWUsCiAJCQlleHBlY3RlZExvY2FsRXJyb3I6ICJ0bHM6IHVuZXhwZWN0ZWQg
c2VydmVyIG5hbWUiLAogCQl9KQpAQCAtNjQyNCw3ICs2MzY5LDYgQEAgZnVuYyBhZGRFeHRlbnNp
b25UZXN0cygpIHsKIAkJCQkJRXhwZWN0U2VydmVyTmFtZTogIm1pc3NpbmcuY29tIiwKIAkJCQl9
LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgdmVyLnRsczEzVmFyaWFudCwKIAkJCXNo
b3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKIAkJCWV4cGVjdGVkTG9jYWxFcnJvcjogInRsczogdW5l
eHBlY3RlZCBzZXJ2ZXIgbmFtZSIsCiAJCX0pCkBAIC02NDM3LDcgKzYzODEsNiBAQCBmdW5jIGFk
ZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQlTZW5kU2VydmVyTmFtZUFjazogdHJ1ZSwKIAkJCQl9
LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFnczog
ICAgICAgICBbXXN0cmluZ3siLWhvc3QtbmFtZSIsICJleGFtcGxlLmNvbSJ9LAogCQkJcmVzdW1l
U2Vzc2lvbjogdHJ1ZSwKIAkJfSkKQEAgLTY0NTAsNyArNjM5Myw2IEBAIGZ1bmMgYWRkRXh0ZW5z
aW9uVGVzdHMoKSB7CiAJCQkJCVNlbmRTZXJ2ZXJOYW1lQWNrOiB0cnVlLAogCQkJCX0sCiAJCQl9
LAotCQkJdGxzMTNWYXJpYW50OiAgICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJc2hvdWxkRmFp
bDogICAgICAgICB0cnVlLAogCQkJZXhwZWN0ZWRFcnJvcjogICAgICAiOlVORVhQRUNURURfRVhU
RU5TSU9OOiIsCiAJCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IHVuc3VwcG9y
dGVkIGV4dGVuc2lvbiIsCkBAIC02NDYyLDcgKzY0MDQsNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRl
c3RzKCkgewogCQkJCU1heFZlcnNpb246IHZlci52ZXJzaW9uLAogCQkJCVNlcnZlck5hbWU6ICJl
eGFtcGxlLmNvbSIsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmVyLnRsczEzVmFyaWFudCwK
IAkJCWZsYWdzOiAgICAgICAgIFtdc3RyaW5neyItZXhwZWN0LXNlcnZlci1uYW1lIiwgImV4YW1w
bGUuY29tIn0sCiAJCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAogCQl9KQpAQCAtNjQ3OSw3ICs2NDIw
LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCQkiLWFkdmVydGlzZS1hbHBuIiwg
Ilx4MDNmb29ceDAzYmFyXHgwM2JheiIsCiAJCQkJIi1leHBlY3QtYWxwbiIsICJmb28iLAogCQkJ
fSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgICAgdmVyLnRsczEzVmFyaWFudCwKIAkJCWV4cGVj
dGVkTmV4dFByb3RvOiAgICAgImZvbyIsCiAJCQlleHBlY3RlZE5leHRQcm90b1R5cGU6IGFscG4s
CiAJCQlyZXN1bWVTZXNzaW9uOiAgICAgICAgIHRydWUsCkBAIC02NDk2LDcgKzY0MzYsNiBAQCBm
dW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItYWR2
ZXJ0aXNlLWFscG4iLCAiXHgwM2Zvb1x4MDNiYXIiLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDog
ICAgICAgdmVyLnRsczEzVmFyaWFudCwKIAkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKIAkJ
CWV4cGVjdGVkRXJyb3I6ICAgICAgIjpJTlZBTElEX0FMUE5fUFJPVE9DT0w6IiwKIAkJCWV4cGVj
dGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogaWxsZWdhbCBwYXJhbWV0ZXIiLApAQCAtNjUx
NSw3ICs2NDU0LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCQkiLWFsbG93LXVu
a25vd24tYWxwbi1wcm90b3MiLAogCQkJCSItZXhwZWN0LWFscG4iLCAiYmF6IiwKIAkJCX0sCi0J
CQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCX0pCiAJCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewogCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCkBAIC02
NTI4LDcgKzY0NjYsNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCSItZXhwZWN0
LWFkdmVydGlzZWQtYWxwbiIsICJceDAzZm9vXHgwM2Jhclx4MDNiYXoiLAogCQkJCSItc2VsZWN0
LWFscG4iLCAiZm9vIiwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgICAgIHZlci50bHMx
M1ZhcmlhbnQsCiAJCQlleHBlY3RlZE5leHRQcm90bzogICAgICJmb28iLAogCQkJZXhwZWN0ZWRO
ZXh0UHJvdG9UeXBlOiBhbHBuLAogCQkJcmVzdW1lU2Vzc2lvbjogICAgICAgICB0cnVlLApAQCAt
NjU0MSw3ICs2NDc4LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCQlOZXh0UHJv
dG9zOiBbXXN0cmluZ3siZm9vIiwgImJhciIsICJiYXoifSwKIAkJCX0sCiAJCQlmbGFnczogICAg
ICAgICAgICAgW11zdHJpbmd7Ii1kZWNsaW5lLWFscG4ifSwKLQkJCXRsczEzVmFyaWFudDogICAg
ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJZXhwZWN0Tm9OZXh0UHJvdG86IHRydWUsCiAJCQlyZXN1
bWVTZXNzaW9uOiAgICAgdHJ1ZSwKIAkJfSkKQEAgLTY1NTgsNyArNjQ5NCw2IEBAIGZ1bmMgYWRk
RXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQkJIi1leHBlY3QtYWR2ZXJ0aXNlZC1hbHBuIiwgIlx4MDNm
b29ceDAzYmFyXHgwM2JheiIsCiAJCQkJIi1zZWxlY3QtZW1wdHktYWxwbiIsCiAJCQl9LAotCQkJ
dGxzMTNWYXJpYW50OiAgICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJc2hvdWxkRmFpbDogICAg
ICAgICB0cnVlLAogCQkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBpbnRlcm5h
bCBlcnJvciIsCiAJCQlleHBlY3RlZEVycm9yOiAgICAgICI6SU5WQUxJRF9BTFBOX1BST1RPQ09M
OiIsCkBAIC02NTgwLDcgKzY1MTUsNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJ
CSItc2VsZWN0LWFscG4iLCAiZm9vIiwKIAkJCQkiLWFzeW5jIiwKIAkJCX0sCi0JCQl0bHMxM1Zh
cmlhbnQ6ICAgICAgICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlleHBlY3RlZE5leHRQcm90bzog
ICAgICJmb28iLAogCQkJZXhwZWN0ZWROZXh0UHJvdG9UeXBlOiBhbHBuLAogCQkJcmVzdW1lU2Vz
c2lvbjogICAgICAgICB0cnVlLApAQCAtNjYwMiw3ICs2NTM2LDYgQEAgZnVuYyBhZGRFeHRlbnNp
b25UZXN0cygpIHsKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWFkdmVydGlzZS1hbHBuIiwg
Ilx4MDNmb28iLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZlci50bHMxM1ZhcmlhbnQsCiAJ
CQlzaG91bGRGYWlsOiAgICB0cnVlLAogCQkJZXhwZWN0ZWRFcnJvcjogIjpQQVJTRV9UTFNFWFQ6
IiwKIAkJfSkKQEAgLTY2MTgsNyArNjU1MSw2IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7
CiAJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJIi1zZWxlY3QtYWxwbiIsICJmb28iLAogCQkJfSwK
LQkJCXRsczEzVmFyaWFudDogIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlzaG91bGRGYWlsOiAgICB0
cnVlLAogCQkJZXhwZWN0ZWRFcnJvcjogIjpQQVJTRV9UTFNFWFQ6IiwKIAkJfSkKQEAgLTY2Mzgs
NyArNjU3MCw2IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQkJCSItc2VsZWN0LWFs
cG4iLCAiZm9vIiwKIAkJCQkJIi1hZHZlcnRpc2UtbnBuIiwgIlx4MDNmb29ceDAzYmFyXHgwM2Jh
eiIsCiAJCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICAgICAgICAgIHZlci50bHMxM1ZhcmlhbnQs
CiAJCQkJZXhwZWN0ZWROZXh0UHJvdG86ICAgICAiZm9vIiwKIAkJCQlleHBlY3RlZE5leHRQcm90
b1R5cGU6IGFscG4sCiAJCQkJcmVzdW1lU2Vzc2lvbjogICAgICAgICB0cnVlLApAQCAtNjY1OCw3
ICs2NTg5LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCQkJIi1zZWxlY3QtYWxw
biIsICJmb28iLAogCQkJCQkiLWFkdmVydGlzZS1ucG4iLCAiXHgwM2Zvb1x4MDNiYXJceDAzYmF6
IiwKIAkJCQl9LAotCQkJCXRsczEzVmFyaWFudDogICAgICAgICAgdmVyLnRsczEzVmFyaWFudCwK
IAkJCQlleHBlY3RlZE5leHRQcm90bzogICAgICJmb28iLAogCQkJCWV4cGVjdGVkTmV4dFByb3Rv
VHlwZTogYWxwbiwKIAkJCQlyZXN1bWVTZXNzaW9uOiAgICAgICAgIHRydWUsCkBAIC02Njc4LDcg
KzY2MDgsNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQkiLWFkdmVydGlzZS1h
bHBuIiwgIlx4MDNmb28iLAogCQkJCQkiLXNlbGVjdC1uZXh0LXByb3RvIiwgImZvbyIsCiAJCQkJ
fSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJCXNob3VsZEZhaWw6
ICAgIHRydWUsCiAJCQkJZXhwZWN0ZWRFcnJvcjogIjpORUdPVElBVEVEX0JPVEhfTlBOX0FORF9B
TFBOOiIsCiAJCQl9KQpAQCAtNjY5Niw3ICs2NjI1LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0
cygpIHsKIAkJCQkJIi1hZHZlcnRpc2UtYWxwbiIsICJceDAzZm9vIiwKIAkJCQkJIi1zZWxlY3Qt
bmV4dC1wcm90byIsICJmb28iLAogCQkJCX0sCi0JCQkJdGxzMTNWYXJpYW50OiAgdmVyLnRsczEz
VmFyaWFudCwKIAkJCQlzaG91bGRGYWlsOiAgICB0cnVlLAogCQkJCWV4cGVjdGVkRXJyb3I6ICI6
TkVHT1RJQVRFRF9CT1RIX05QTl9BTkRfQUxQTjoiLAogCQkJfSkKQEAgLTY3MTgsMTEgKzY2NDYs
MTAgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCX0sCiAJCQlleHBlY3RUb2tlbkJp
bmRpbmc6ICAgICAgICB0cnVlLAogCQkJZXhwZWN0ZWRUb2tlbkJpbmRpbmdQYXJhbTogMiwKLQkJ
CXRsczEzVmFyaWFudDogICAgICAgICAgICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFnczog
W11zdHJpbmd7CiAJCQkJIi10b2tlbi1iaW5kaW5nLXBhcmFtcyIsCiAJCQkJYmFzZTY0LlN0ZEVu
Y29kaW5nLkVuY29kZVRvU3RyaW5nKFtdYnl0ZXsyLCAxLCAwfSksCi0JCQkJIi1leHBlY3RlZC10
b2tlbi1iaW5kaW5nLXBhcmFtIiwKKwkJCQkiLWV4cGVjdC10b2tlbi1iaW5kaW5nLXBhcmFtIiwK
IAkJCQkiMiIsCiAJCQl9LAogCQl9KQpAQCAtNjczNiw3ICs2NjYzLDYgQEAgZnVuYyBhZGRFeHRl
bnNpb25UZXN0cygpIHsKIAkJCQlUb2tlbkJpbmRpbmdQYXJhbXM6ICBbXWJ5dGV7M30sCiAJCQkJ
VG9rZW5CaW5kaW5nVmVyc2lvbjogbWF4VG9rZW5CaW5kaW5nVmVyc2lvbiwKIAkJCX0sCi0JCQl0
bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJ
Ii10b2tlbi1iaW5kaW5nLXBhcmFtcyIsCiAJCQkJYmFzZTY0LlN0ZEVuY29kaW5nLkVuY29kZVRv
U3RyaW5nKFtdYnl0ZXsyLCAxLCAwfSksCkBAIC02NzUyLDcgKzY2NzgsNiBAQCBmdW5jIGFkZEV4
dGVuc2lvblRlc3RzKCkgewogCQkJCVRva2VuQmluZGluZ1BhcmFtczogIFtdYnl0ZXswLCAxLCAy
fSwKIAkJCQlUb2tlbkJpbmRpbmdWZXJzaW9uOiBtaW5Ub2tlbkJpbmRpbmdWZXJzaW9uIC0gMSwK
IAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFnczogW11z
dHJpbmd7CiAJCQkJIi10b2tlbi1iaW5kaW5nLXBhcmFtcyIsCiAJCQkJYmFzZTY0LlN0ZEVuY29k
aW5nLkVuY29kZVRvU3RyaW5nKFtdYnl0ZXsyLCAxLCAwfSksCkBAIC02NzcwLDExICs2Njk1LDEw
IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQl9LAogCQkJZXhwZWN0VG9rZW5CaW5k
aW5nOiAgICAgICAgdHJ1ZSwKIAkJCWV4cGVjdGVkVG9rZW5CaW5kaW5nUGFyYW06IDIsCi0JCQl0
bHMxM1ZhcmlhbnQ6ICAgICAgICAgICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJZmxhZ3M6IFtd
c3RyaW5newogCQkJCSItdG9rZW4tYmluZGluZy1wYXJhbXMiLAogCQkJCWJhc2U2NC5TdGRFbmNv
ZGluZy5FbmNvZGVUb1N0cmluZyhbXWJ5dGV7MiwgMSwgMH0pLAotCQkJCSItZXhwZWN0ZWQtdG9r
ZW4tYmluZGluZy1wYXJhbSIsCisJCQkJIi1leHBlY3QtdG9rZW4tYmluZGluZy1wYXJhbSIsCiAJ
CQkJIjIiLAogCQkJfSwKIAkJfSkKQEAgLTY3ODgsNyArNjcxMiw2IEBAIGZ1bmMgYWRkRXh0ZW5z
aW9uVGVzdHMoKSB7CiAJCQkJVG9rZW5CaW5kaW5nUGFyYW1zOiAgW11ieXRle30sCiAJCQkJVG9r
ZW5CaW5kaW5nVmVyc2lvbjogbWF4VG9rZW5CaW5kaW5nVmVyc2lvbiwKIAkJCX0sCi0JCQl0bHMx
M1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJIi10
b2tlbi1iaW5kaW5nLXBhcmFtcyIsCiAJCQkJYmFzZTY0LlN0ZEVuY29kaW5nLkVuY29kZVRvU3Ry
aW5nKFtdYnl0ZXsyLCAxLCAwfSksCkBAIC02ODA4LDExICs2NzMxLDEwIEBAIGZ1bmMgYWRkRXh0
ZW5zaW9uVGVzdHMoKSB7CiAJCQl9LAogCQkJZXhwZWN0VG9rZW5CaW5kaW5nOiAgICAgICAgdHJ1
ZSwKIAkJCWV4cGVjdGVkVG9rZW5CaW5kaW5nUGFyYW06IDIsCi0JCQl0bHMxM1ZhcmlhbnQ6ICAg
ICAgICAgICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSIt
dG9rZW4tYmluZGluZy1wYXJhbXMiLAogCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0
cmluZyhbXWJ5dGV7MiwgMSwgMH0pLAotCQkJCSItZXhwZWN0ZWQtdG9rZW4tYmluZGluZy1wYXJh
bSIsCisJCQkJIi1leHBlY3QtdG9rZW4tYmluZGluZy1wYXJhbSIsCiAJCQkJIjIiLAogCQkJfSwK
IAkJfSkKQEAgLTY4MjcsMTEgKzY3NDksMTAgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsK
IAkJCQlUb2tlbkJpbmRpbmdWZXJzaW9uOiAgICAgIG1heFRva2VuQmluZGluZ1ZlcnNpb24sCiAJ
CQkJRXhwZWN0VG9rZW5CaW5kaW5nUGFyYW1zOiBbXWJ5dGV7MCwgMSwgMn0sCiAJCQl9LAotCQkJ
dGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJ
CSItdG9rZW4tYmluZGluZy1wYXJhbXMiLAogCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVU
b1N0cmluZyhbXWJ5dGV7MCwgMSwgMn0pLAotCQkJCSItZXhwZWN0ZWQtdG9rZW4tYmluZGluZy1w
YXJhbSIsCisJCQkJIi1leHBlY3QtdG9rZW4tYmluZGluZy1wYXJhbSIsCiAJCQkJIjIiLAogCQkJ
fSwKIAkJfSkKQEAgLTY4NDUsNyArNjc2Niw2IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7
CiAJCQkJVG9rZW5CaW5kaW5nUGFyYW1zOiAgW11ieXRlezJ9LAogCQkJCVRva2VuQmluZGluZ1Zl
cnNpb246IG1heFRva2VuQmluZGluZ1ZlcnNpb24sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAg
dmVyLnRsczEzVmFyaWFudCwKIAkJCXNob3VsZEZhaWw6ICAgIHRydWUsCiAJCQlleHBlY3RlZEVy
cm9yOiAiOlVORVhQRUNURURfRVhURU5TSU9OOiIsCiAJCX0pCkBAIC02ODYzLDEwICs2NzgzLDkg
QEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQki
LXRva2VuLWJpbmRpbmctcGFyYW1zIiwKIAkJCQliYXNlNjQuU3RkRW5jb2RpbmcuRW5jb2RlVG9T
dHJpbmcoW11ieXRlezAsIDEsIDJ9KSwKLQkJCQkiLWV4cGVjdGVkLXRva2VuLWJpbmRpbmctcGFy
YW0iLAorCQkJCSItZXhwZWN0LXRva2VuLWJpbmRpbmctcGFyYW0iLAogCQkJCSIyIiwKIAkJCX0s
Ci0JCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJc2hvdWxkRmFpbDogICAg
dHJ1ZSwKIAkJCWV4cGVjdGVkRXJyb3I6ICI6RVJST1JfUEFSU0lOR19FWFRFTlNJT046IiwKIAkJ
fSkKQEAgLTY4ODQsMTAgKzY4MDMsOSBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJ
ZmxhZ3M6IFtdc3RyaW5newogCQkJCSItdG9rZW4tYmluZGluZy1wYXJhbXMiLAogCQkJCWJhc2U2
NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhbXWJ5dGV7MCwgMSwgMn0pLAotCQkJCSItZXhw
ZWN0ZWQtdG9rZW4tYmluZGluZy1wYXJhbSIsCisJCQkJIi1leHBlY3QtdG9rZW4tYmluZGluZy1w
YXJhbSIsCiAJCQkJIjIiLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZlci50bHMxM1Zhcmlh
bnQsCiAJCQlzaG91bGRGYWlsOiAgICB0cnVlLAogCQkJZXhwZWN0ZWRFcnJvcjogIjpFUlJPUl9Q
QVJTSU5HX0VYVEVOU0lPTjoiLAogCQl9KQpAQCAtNjkwNSwxMCArNjgyMyw5IEBAIGZ1bmMgYWRk
RXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJIi10b2tlbi1iaW5k
aW5nLXBhcmFtcyIsCiAJCQkJYmFzZTY0LlN0ZEVuY29kaW5nLkVuY29kZVRvU3RyaW5nKFtdYnl0
ZXswLCAxLCAyfSksCi0JCQkJIi1leHBlY3RlZC10b2tlbi1iaW5kaW5nLXBhcmFtIiwKKwkJCQki
LWV4cGVjdC10b2tlbi1iaW5kaW5nLXBhcmFtIiwKIAkJCQkiMiIsCiAJCQl9LAotCQkJdGxzMTNW
YXJpYW50OiAgdmVyLnRsczEzVmFyaWFudCwKIAkJCXNob3VsZEZhaWw6ICAgIHRydWUsCiAJCQll
eHBlY3RlZEVycm9yOiAiOkVSUk9SX1BBUlNJTkdfRVhURU5TSU9OOiIsCiAJCX0pCkBAIC02OTI3
LDcgKzY4NDQsNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCSItdG9rZW4tYmlu
ZGluZy1wYXJhbXMiLAogCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhbXWJ5
dGV7MCwgMSwgMn0pLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwK
IAkJfSkKIAkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CiAJCQl0ZXN0
VHlwZTogY2xpZW50VGVzdCwKQEAgLTY5NDMsMTAgKzY4NTksOSBAQCBmdW5jIGFkZEV4dGVuc2lv
blRlc3RzKCkgewogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItdG9rZW4tYmluZGluZy1wYXJh
bXMiLAogCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhbXWJ5dGV7MCwgMSwg
Mn0pLAotCQkJCSItZXhwZWN0ZWQtdG9rZW4tYmluZGluZy1wYXJhbSIsCisJCQkJIi1leHBlY3Qt
dG9rZW4tYmluZGluZy1wYXJhbSIsCiAJCQkJIjIiLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDog
dmVyLnRsczEzVmFyaWFudCwKIAkJfSkKIAkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywg
dGVzdENhc2V7CiAJCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKQEAgLTY5NjMsNyArNjg3OCw2IEBA
IGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQkJIi10b2tlbi1iaW5kaW5nLXBhcmFtcyIs
CiAJCQkJYmFzZTY0LlN0ZEVuY29kaW5nLkVuY29kZVRvU3RyaW5nKFtdYnl0ZXswLCAxLCAyfSks
CiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmVyLnRsczEzVmFyaWFudCwKIAkJCXNob3VsZEZh
aWw6ICAgIHRydWUsCiAJCQlleHBlY3RlZEVycm9yOiAiRVJST1JfUEFSU0lOR19FWFRFTlNJT04i
LAogCQl9KQpAQCAtNjk4Miw3ICs2ODk2LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsK
IAkJCQkJCU5vRXh0ZW5kZWRNYXN0ZXJTZWNyZXQ6IHRydWUsCiAJCQkJCX0sCiAJCQkJfSwKLQkJ
CQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newog
CQkJCQkiLXRva2VuLWJpbmRpbmctcGFyYW1zIiwKIAkJCQkJYmFzZTY0LlN0ZEVuY29kaW5nLkVu
Y29kZVRvU3RyaW5nKFtdYnl0ZXsyLCAxLCAwfSksCkBAIC03MDAzLDcgKzY5MTYsNiBAQCBmdW5j
IGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQkJTm9FeHRlbmRlZE1hc3RlclNlY3JldDogdHJ1
ZSwKIAkJCQkJfSwKIAkJCQl9LAotCQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwK
IAkJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJCSItdG9rZW4tYmluZGluZy1wYXJhbXMiLAogCQkJ
CQliYXNlNjQuU3RkRW5jb2RpbmcuRW5jb2RlVG9TdHJpbmcoW11ieXRlezIsIDEsIDB9KSwKQEAg
LTcwMjUsNyArNjkzNyw2IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQkJCQlOb1Jl
bmVnb3RpYXRpb25JbmZvOiB0cnVlLAogCQkJCQl9LAogCQkJCX0sCi0JCQkJdGxzMTNWYXJpYW50
OiB2ZXIudGxzMTNWYXJpYW50LAogCQkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkJIi10b2tlbi1i
aW5kaW5nLXBhcmFtcyIsCiAJCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhb
XWJ5dGV7MiwgMSwgMH0pLApAQCAtNzA0Niw3ICs2OTU3LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25U
ZXN0cygpIHsKIAkJCQkJCU5vUmVuZWdvdGlhdGlvbkluZm86IHRydWUsCiAJCQkJCX0sCiAJCQkJ
fSwKLQkJCQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3Ry
aW5newogCQkJCQkiLXRva2VuLWJpbmRpbmctcGFyYW1zIiwKIAkJCQkJYmFzZTY0LlN0ZEVuY29k
aW5nLkVuY29kZVRvU3RyaW5nKFtdYnl0ZXsyLCAxLCAwfSksCkBAIC03MDY3LDcgKzY5NzcsNiBA
QCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQlNYXhFYXJseURhdGFTaXplOiAgICAg
ICAgIDE2Mzg0LAogCQkJCX0sCiAJCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJCQl0bHMxM1Zh
cmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkJIi1l
bmFibGUtZWFybHktZGF0YSIsCiAJCQkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1k
YXRhIiwKQEAgLTcwOTAsMTIgKzY5OTksMTMgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsK
IAkJCQlyZXN1bWVTZXNzaW9uOiAgICAgICAgICAgICB0cnVlLAogCQkJCWV4cGVjdFRva2VuQmlu
ZGluZzogICAgICAgIHRydWUsCiAJCQkJZXhwZWN0ZWRUb2tlbkJpbmRpbmdQYXJhbTogMiwKLQkJ
CQl0bHMxM1ZhcmlhbnQ6ICAgICAgICAgICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJCWZsYWdz
OiBbXXN0cmluZ3sKIAkJCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCiAJCQkJCSItZXhwZWN0LXRp
Y2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKIAkJCQkJIi10b2tlbi1iaW5kaW5nLXBhcmFtcyIs
CiAJCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhbXWJ5dGV7MiwgMSwgMH0p
LAorCQkJCQkiLWV4cGVjdC1yZWplY3QtZWFybHktZGF0YSIsCisJCQkJCSItb24tcmV0cnktZXhw
ZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgInRva2VuX2JpbmRpbmciLAogCQkJCX0sCiAJCQl9KQog
CQl9CkBAIC03MTExLDExICs3MDIxLDEwIEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7CiAJ
CQkJCU1heFZlcnNpb246ICAgICAgICAgIHZlci52ZXJzaW9uLAogCQkJCQlRVUlDVHJhbnNwb3J0
UGFyYW1zOiBbXWJ5dGV7MSwgMn0sCiAJCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMx
M1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCQkiLXF1aWMtdHJhbnNwb3J0LXBh
cmFtcyIsCiAJCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhbXWJ5dGV7Mywg
NH0pLAotCQkJCQkiLWV4cGVjdGVkLXF1aWMtdHJhbnNwb3J0LXBhcmFtcyIsCisJCQkJCSItZXhw
ZWN0LXF1aWMtdHJhbnNwb3J0LXBhcmFtcyIsCiAJCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNv
ZGVUb1N0cmluZyhbXWJ5dGV7MSwgMn0pLAogCQkJCX0sCiAJCQkJZXhwZWN0ZWRRVUlDVHJhbnNw
b3J0UGFyYW1zOiBbXWJ5dGV7MywgNH0sCkBAIC03MTI5LDExICs3MDM4LDEwIEBAIGZ1bmMgYWRk
RXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQkJCU1heFZlcnNpb246ICAgICAgICAgIHZlci52ZXJzaW9u
LAogCQkJCQlRVUlDVHJhbnNwb3J0UGFyYW1zOiBbXWJ5dGV7MSwgMn0sCiAJCQkJfSwKLQkJCQl0
bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJ
CQkiLXF1aWMtdHJhbnNwb3J0LXBhcmFtcyIsCiAJCQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNv
ZGVUb1N0cmluZyhbXWJ5dGV7MywgNH0pLAotCQkJCQkiLWV4cGVjdGVkLXF1aWMtdHJhbnNwb3J0
LXBhcmFtcyIsCisJCQkJCSItZXhwZWN0LXF1aWMtdHJhbnNwb3J0LXBhcmFtcyIsCiAJCQkJCWJh
c2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhbXWJ5dGV7MSwgMn0pLAogCQkJCX0sCiAJ
CQkJZXhwZWN0ZWRRVUlDVHJhbnNwb3J0UGFyYW1zOiBbXWJ5dGV7MywgNH0sCkBAIC03MTQ2LDcg
KzcwNTQsNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQlNaW5WZXJzaW9uOiB2
ZXIudmVyc2lvbiwKIAkJCQkJTWF4VmVyc2lvbjogdmVyLnZlcnNpb24sCiAJCQkJfSwKLQkJCQl0
bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJ
CQkiLW1heC12ZXJzaW9uIiwKIAkJCQkJc3RyY29udi5JdG9hKGludCh2ZXIudmVyc2lvbikpLApA
QCAtNzE2Miw3ICs3MDY5LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCQkJTWF4
VmVyc2lvbjogICAgICAgICAgdmVyLnZlcnNpb24sCiAJCQkJCVFVSUNUcmFuc3BvcnRQYXJhbXM6
IFtdYnl0ZXsxLCAyfSwKIAkJCQl9LAotCQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFu
dCwKIAkJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJCSItcXVpYy10cmFuc3BvcnQtcGFyYW1zIiwK
IAkJCQkJYmFzZTY0LlN0ZEVuY29kaW5nLkVuY29kZVRvU3RyaW5nKFtdYnl0ZXszLCA0fSksCkBA
IC03MTc4LDkgKzcwODQsOCBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQlNYXhW
ZXJzaW9uOiAgICAgICAgICB2ZXIudmVyc2lvbiwKIAkJCQkJUVVJQ1RyYW5zcG9ydFBhcmFtczog
W11ieXRlezEsIDJ9LAogCQkJCX0sCi0JCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50
LAogCQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkJIi1leHBlY3RlZC1xdWljLXRyYW5zcG9ydC1w
YXJhbXMiLAorCQkJCQkiLWV4cGVjdC1xdWljLXRyYW5zcG9ydC1wYXJhbXMiLAogCQkJCQliYXNl
NjQuU3RkRW5jb2RpbmcuRW5jb2RlVG9TdHJpbmcoW11ieXRlezEsIDJ9KSwKIAkJCQl9LAogCQkJ
CXNob3VsZEZhaWw6ICAgIHRydWUsCkBAIC03MjE1LDcgKzcxMjAsNiBAQCBmdW5jIGFkZEV4dGVu
c2lvblRlc3RzKCkgewogCQkJCQl9LAogCQkJCX0sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAg
ICAgICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlyZXN1bWVTZXNzaW9uOiAgICAgICAgdHJ1ZSwK
IAkJCWV4cGVjdFJlc3VtZVJlamVjdGVkOiB0cnVlLAogCQl9KQpAQCAtNzIyNiw3ICs3MTMwLDYg
QEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0cygpIHsKIAkJCWNvbmZpZzogQ29uZmlnewogCQkJCU1h
eFZlcnNpb246IHZlci52ZXJzaW9uLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZlci50bHMx
M1ZhcmlhbnQsCiAJCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAogCQkJZmxhZ3M6ICAgICAgICAgW11z
dHJpbmd7Ii11c2UtdGlja2V0LWNhbGxiYWNrIn0sCiAJCX0pCkBAIC03MjM5LDcgKzcxNDIsNiBA
QCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQlFeHBlY3ROZXdUaWNrZXQ6IHRydWUs
CiAJCQkJfSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJ
ZmxhZ3M6ICAgICAgICAgW11zdHJpbmd7Ii11c2UtdGlja2V0LWNhbGxiYWNrIiwgIi1yZW5ldy10
aWNrZXQifSwKIAkJCXJlc3VtZVNlc3Npb246IHRydWUsCiAJCX0pCkBAIC03MjU5LDcgKzcxNjEs
NiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJCQl9LAogCQkJCX0sCiAJCQl9LAot
CQkJdGxzMTNWYXJpYW50OiAgICAgICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlyZXN1bWVTZXNz
aW9uOiAgICAgICAgdHJ1ZSwKIAkJCWV4cGVjdFJlc3VtZVJlamVjdGVkOiB0cnVlLAogCQkJZmxh
Z3M6IFtdc3RyaW5newpAQCAtNzQxNSw3ICs3MzE2LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25UZXN0
cygpIHsKIAkJCQkiLWV4cGVjdC1zaWduZWQtY2VydC10aW1lc3RhbXBzIiwKIAkJCQliYXNlNjQu
U3RkRW5jb2RpbmcuRW5jb2RlVG9TdHJpbmcodGVzdFNDVExpc3QpLAogCQkJfSwKLQkJCXRsczEz
VmFyaWFudDogIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAogCQl9
KQogCkBAIC03NDM4LDcgKzczMzgsNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3RzKCkgewogCQkJ
CSItZXhwZWN0LXNpZ25lZC1jZXJ0LXRpbWVzdGFtcHMiLAogCQkJCWJhc2U2NC5TdGRFbmNvZGlu
Zy5FbmNvZGVUb1N0cmluZyh0ZXN0U0NUTGlzdCksCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAg
dmVyLnRsczEzVmFyaWFudCwKIAkJCXJlc3VtZVNlc3Npb246IHRydWUsCiAJCX0pCiAKQEAgLTc0
NTIsNyArNzM1MSw2IEBAIGZ1bmMgYWRkRXh0ZW5zaW9uVGVzdHMoKSB7CiAJCQkJIi1zaWduZWQt
Y2VydC10aW1lc3RhbXBzIiwKIAkJCQliYXNlNjQuU3RkRW5jb2RpbmcuRW5jb2RlVG9TdHJpbmco
dGVzdFNDVExpc3QpLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgdmVyLnRsczEzVmFyaWFu
dCwKIAkJCWV4cGVjdGVkU0NUTGlzdDogdGVzdFNDVExpc3QsCiAJCQlyZXN1bWVTZXNzaW9uOiAg
IHRydWUsCiAJCX0pCkBAIC03NDcxLDcgKzczNjksNiBAQCBmdW5jIGFkZEV4dGVuc2lvblRlc3Rz
KCkgewogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItZW5hYmxlLXNpZ25lZC1jZXJ0LXRpbWVz
dGFtcHMiLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlz
aG91bGRGYWlsOiAgICB0cnVlLAogCQkJZXhwZWN0ZWRFcnJvcjogIjpFUlJPUl9QQVJTSU5HX0VY
VEVOU0lPTjoiLAogCQl9KQpAQCAtNzQ5MCw3ICs3Mzg3LDYgQEAgZnVuYyBhZGRFeHRlbnNpb25U
ZXN0cygpIHsKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWVuYWJsZS1zaWduZWQtY2VydC10
aW1lc3RhbXBzIiwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAog
CQkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKIAkJCWV4cGVjdGVkRXJyb3I6ICI6RVJST1JfUEFSU0lO
R19FWFRFTlNJT046IiwKIAkJfSkKQEAgLTc1MDYsNyArNzQwMiw2IEBAIGZ1bmMgYWRkRXh0ZW5z
aW9uVGVzdHMoKSB7CiAJCQkJCU5vU2lnbmVkQ2VydGlmaWNhdGVUaW1lc3RhbXBzOiB0cnVlLAog
CQkJCX0sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAogCQkJZmxh
Z3M6IFtdc3RyaW5newogCQkJCSItb2NzcC1yZXNwb25zZSIsCiAJCQkJYmFzZTY0LlN0ZEVuY29k
aW5nLkVuY29kZVRvU3RyaW5nKHRlc3RPQ1NQUmVzcG9uc2UpLApAQCAtNzc3NSwyOSArNzY3MCwx
OSBAQCBmdW5jIGFkZFJlc3VtcHRpb25WZXJzaW9uVGVzdHMoKSB7CiAJCQkJCXN1ZmZpeCArPSAi
LURUTFMiCiAJCQkJfQogCi0JCQkJLy8gV2UgY2FuJ3QgcmVzdW1lIGFjcm9zcyBUTFMgMS4zIHZh
cmlhbnRzIGFuZCBlcnJvciBvdXQgZWFybGllciBpbiB0aGUKLQkJCQkvLyBzZXNzaW9uIHJlc3Vt
cHRpb24uCi0JCQkJaWYgc2Vzc2lvblZlcnMudGxzMTNWYXJpYW50ICE9IHJlc3VtZVZlcnMudGxz
MTNWYXJpYW50IHsKLQkJCQkJY29udGludWUKLQkJCQl9Ci0KIAkJCQlpZiBzZXNzaW9uVmVycy52
ZXJzaW9uID09IHJlc3VtZVZlcnMudmVyc2lvbiB7CiAJCQkJCXRlc3RDYXNlcyA9IGFwcGVuZCh0
ZXN0Q2FzZXMsIHRlc3RDYXNlewogCQkJCQkJcHJvdG9jb2w6ICAgICAgcHJvdG9jb2wsCiAJCQkJ
CQluYW1lOiAgICAgICAgICAiUmVzdW1lLUNsaWVudCIgKyBzdWZmaXgsCiAJCQkJCQlyZXN1bWVT
ZXNzaW9uOiB0cnVlLAogCQkJCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJCQkJTWF4VmVyc2lvbjog
ICBzZXNzaW9uVmVycy52ZXJzaW9uLAotCQkJCQkJCVRMUzEzVmFyaWFudDogc2Vzc2lvblZlcnMu
dGxzMTNWYXJpYW50LAorCQkJCQkJCU1heFZlcnNpb246IHNlc3Npb25WZXJzLnZlcnNpb24sCiAJ
CQkJCQkJQnVnczogUHJvdG9jb2xCdWdzewogCQkJCQkJCQlFeHBlY3ROb1RMUzEzUFNLOiBzZXNz
aW9uVmVycy52ZXJzaW9uIDwgVmVyc2lvblRMUzEzLAogCQkJCQkJCX0sCiAJCQkJCQl9LAogCQkJ
CQkJZXhwZWN0ZWRWZXJzaW9uOiAgICAgICBzZXNzaW9uVmVycy52ZXJzaW9uLAogCQkJCQkJZXhw
ZWN0ZWRSZXN1bWVWZXJzaW9uOiByZXN1bWVWZXJzLnZlcnNpb24sCi0JCQkJCQlmbGFnczogW11z
dHJpbmd7Ci0JCQkJCQkJIi10bHMxMy12YXJpYW50Iiwgc3RyY29udi5JdG9hKHNlc3Npb25WZXJz
LnRsczEzVmFyaWFudCksCi0JCQkJCQl9LAogCQkJCQl9KQogCQkJCX0gZWxzZSB7CiAJCQkJCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewpAQCAtNzgwNSwxMyArNzY5MCwx
MSBAQCBmdW5jIGFkZFJlc3VtcHRpb25WZXJzaW9uVGVzdHMoKSB7CiAJCQkJCQluYW1lOiAgICAg
ICAgICAiUmVzdW1lLUNsaWVudC1NaXNtYXRjaCIgKyBzdWZmaXgsCiAJCQkJCQlyZXN1bWVTZXNz
aW9uOiB0cnVlLAogCQkJCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJCQkJTWF4VmVyc2lvbjogICBz
ZXNzaW9uVmVycy52ZXJzaW9uLAotCQkJCQkJCVRMUzEzVmFyaWFudDogc2Vzc2lvblZlcnMudGxz
MTNWYXJpYW50LAorCQkJCQkJCU1heFZlcnNpb246IHNlc3Npb25WZXJzLnZlcnNpb24sCiAJCQkJ
CQl9LAogCQkJCQkJZXhwZWN0ZWRWZXJzaW9uOiBzZXNzaW9uVmVycy52ZXJzaW9uLAogCQkJCQkJ
cmVzdW1lQ29uZmlnOiAmQ29uZmlnewotCQkJCQkJCU1heFZlcnNpb246ICAgcmVzdW1lVmVycy52
ZXJzaW9uLAotCQkJCQkJCVRMUzEzVmFyaWFudDogcmVzdW1lVmVycy50bHMxM1ZhcmlhbnQsCisJ
CQkJCQkJTWF4VmVyc2lvbjogcmVzdW1lVmVycy52ZXJzaW9uLAogCQkJCQkJCUJ1Z3M6IFByb3Rv
Y29sQnVnc3sKIAkJCQkJCQkJQWNjZXB0QW55U2Vzc2lvbjogdHJ1ZSwKIAkJCQkJCQl9LApAQCAt
NzgxOSwxMCArNzcwMiw2IEBAIGZ1bmMgYWRkUmVzdW1wdGlvblZlcnNpb25UZXN0cygpIHsKIAkJ
CQkJCWV4cGVjdGVkUmVzdW1lVmVyc2lvbjogcmVzdW1lVmVycy52ZXJzaW9uLAogCQkJCQkJc2hv
dWxkRmFpbDogICAgICAgICAgICB0cnVlLAogCQkJCQkJZXhwZWN0ZWRFcnJvcjogICAgICAgICAi
Ok9MRF9TRVNTSU9OX1ZFUlNJT05fTk9UX1JFVFVSTkVEOiIsCi0JCQkJCQlmbGFnczogW11zdHJp
bmd7Ci0JCQkJCQkJIi1vbi1pbml0aWFsLXRsczEzLXZhcmlhbnQiLCBzdHJjb252Lkl0b2Eoc2Vz
c2lvblZlcnMudGxzMTNWYXJpYW50KSwKLQkJCQkJCQkiLW9uLXJlc3VtZS10bHMxMy12YXJpYW50
Iiwgc3RyY29udi5JdG9hKHJlc3VtZVZlcnMudGxzMTNWYXJpYW50KSwKLQkJCQkJCX0sCiAJCQkJ
CX0pCiAJCQkJfQogCkBAIC03ODMxLDIxICs3NzEwLDE1IEBAIGZ1bmMgYWRkUmVzdW1wdGlvblZl
cnNpb25UZXN0cygpIHsKIAkJCQkJbmFtZTogICAgICAgICAgIlJlc3VtZS1DbGllbnQtTm9SZXN1
bWUiICsgc3VmZml4LAogCQkJCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAogCQkJCQljb25maWc6IENv
bmZpZ3sKLQkJCQkJCU1heFZlcnNpb246ICAgc2Vzc2lvblZlcnMudmVyc2lvbiwKLQkJCQkJCVRM
UzEzVmFyaWFudDogc2Vzc2lvblZlcnMudGxzMTNWYXJpYW50LAorCQkJCQkJTWF4VmVyc2lvbjog
c2Vzc2lvblZlcnMudmVyc2lvbiwKIAkJCQkJfSwKIAkJCQkJZXhwZWN0ZWRWZXJzaW9uOiBzZXNz
aW9uVmVycy52ZXJzaW9uLAogCQkJCQlyZXN1bWVDb25maWc6ICZDb25maWd7Ci0JCQkJCQlNYXhW
ZXJzaW9uOiAgIHJlc3VtZVZlcnMudmVyc2lvbiwKLQkJCQkJCVRMUzEzVmFyaWFudDogcmVzdW1l
VmVycy50bHMxM1ZhcmlhbnQsCisJCQkJCQlNYXhWZXJzaW9uOiByZXN1bWVWZXJzLnZlcnNpb24s
CiAJCQkJCX0sCiAJCQkJCW5ld1Nlc3Npb25zT25SZXN1bWU6ICAgdHJ1ZSwKIAkJCQkJZXhwZWN0
UmVzdW1lUmVqZWN0ZWQ6ICB0cnVlLAogCQkJCQlleHBlY3RlZFJlc3VtZVZlcnNpb246IHJlc3Vt
ZVZlcnMudmVyc2lvbiwKLQkJCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCQkJIi1vbi1pbml0aWFs
LXRsczEzLXZhcmlhbnQiLCBzdHJjb252Lkl0b2Eoc2Vzc2lvblZlcnMudGxzMTNWYXJpYW50KSwK
LQkJCQkJCSItb24tcmVzdW1lLXRsczEzLXZhcmlhbnQiLCBzdHJjb252Lkl0b2EocmVzdW1lVmVy
cy50bHMxM1ZhcmlhbnQpLAotCQkJCQl9LAogCQkJCX0pCiAKIAkJCQl0ZXN0Q2FzZXMgPSBhcHBl
bmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKQEAgLTc4NTQsMjMgKzc3MjcsMTcgQEAgZnVuYyBhZGRS
ZXN1bXB0aW9uVmVyc2lvblRlc3RzKCkgewogCQkJCQluYW1lOiAgICAgICAgICAiUmVzdW1lLVNl
cnZlciIgKyBzdWZmaXgsCiAJCQkJCXJlc3VtZVNlc3Npb246IHRydWUsCiAJCQkJCWNvbmZpZzog
Q29uZmlnewotCQkJCQkJTWF4VmVyc2lvbjogICBzZXNzaW9uVmVycy52ZXJzaW9uLAotCQkJCQkJ
VExTMTNWYXJpYW50OiBzZXNzaW9uVmVycy50bHMxM1ZhcmlhbnQsCisJCQkJCQlNYXhWZXJzaW9u
OiBzZXNzaW9uVmVycy52ZXJzaW9uLAogCQkJCQl9LAogCQkJCQlleHBlY3RlZFZlcnNpb246ICAg
ICAgc2Vzc2lvblZlcnMudmVyc2lvbiwKIAkJCQkJZXhwZWN0UmVzdW1lUmVqZWN0ZWQ6IHNlc3Np
b25WZXJzICE9IHJlc3VtZVZlcnMsCiAJCQkJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sKLQkJCQkJ
CU1heFZlcnNpb246ICAgcmVzdW1lVmVycy52ZXJzaW9uLAotCQkJCQkJVExTMTNWYXJpYW50OiBy
ZXN1bWVWZXJzLnRsczEzVmFyaWFudCwKKwkJCQkJCU1heFZlcnNpb246IHJlc3VtZVZlcnMudmVy
c2lvbiwKIAkJCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKIAkJCQkJCQlTZW5kQm90aFRpY2tldHM6
IHRydWUsCiAJCQkJCQl9LAogCQkJCQl9LAogCQkJCQlleHBlY3RlZFJlc3VtZVZlcnNpb246IHJl
c3VtZVZlcnMudmVyc2lvbiwKLQkJCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCQkJIi1vbi1pbml0
aWFsLXRsczEzLXZhcmlhbnQiLCBzdHJjb252Lkl0b2Eoc2Vzc2lvblZlcnMudGxzMTNWYXJpYW50
KSwKLQkJCQkJCSItb24tcmVzdW1lLXRsczEzLXZhcmlhbnQiLCBzdHJjb252Lkl0b2EocmVzdW1l
VmVycy50bHMxM1ZhcmlhbnQpLAotCQkJCQl9LAogCQkJCX0pCiAKIAkJCQkvLyBSZXBlYXQgdGhl
IHRlc3QgdXNpbmcgc2Vzc2lvbiBJRHMsIHJhdGhlciB0aGFuIHRpY2tldHMuCkBAIC04MTY2LDk0
ICs4MDMzLDEzMiBAQCBmdW5jIGFkZFJlc3VtcHRpb25WZXJzaW9uVGVzdHMoKSB7CiAJCWV4cGVj
dGVkRXJyb3I6ICI6T0xEX1NFU1NJT05fUFJGX0hBU0hfTUlTTUFUQ0g6IiwKIAl9KQogCi0JdGVz
dENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCXRlc3RUeXBlOiAgICAgIHNl
cnZlclRlc3QsCi0JCW5hbWU6ICAgICAgICAgICJSZXN1bWUtU2VydmVyLUJpbmRlcldyb25nTGVu
Z3RoIiwKLQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJY29uZmlnOiBDb25maWd7Ci0JCQlNYXhW
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJU2VuZFNo
b3J0UFNLQmluZGVyOiB0cnVlLAotCQkJfSwKLQkJfSwKLQkJc2hvdWxkRmFpbDogICAgICAgICB0
cnVlLAotCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IGVycm9yIGRlY3J5cHRp
bmcgbWVzc2FnZSIsCi0JCWV4cGVjdGVkRXJyb3I6ICAgICAgIjpESUdFU1RfQ0hFQ0tfRkFJTEVE
OiIsCi0JfSkKKwlmb3IgXywgc2Vjb25kQmluZGVyIDo9IHJhbmdlIFtdYm9vbHtmYWxzZSwgdHJ1
ZX0geworCQl2YXIgc3VmZml4IHN0cmluZworCQl2YXIgZGVmYXVsdEN1cnZlcyBbXUN1cnZlSUQK
KwkJaWYgc2Vjb25kQmluZGVyIHsKKwkJCXN1ZmZpeCA9ICItU2Vjb25kQmluZGVyIgorCQkJLy8g
Rm9yY2UgYSBIZWxsb1JldHJ5UmVxdWVzdCBieSBwcmVkaWN0aW5nIGFuIGVtcHR5IGN1cnZlIGxp
c3QuCisJCQlkZWZhdWx0Q3VydmVzID0gW11DdXJ2ZUlEe30KKwkJfQogCi0JdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCXRlc3RUeXBlOiAgICAgIHNlcnZlclRlc3Qs
Ci0JCW5hbWU6ICAgICAgICAgICJSZXN1bWUtU2VydmVyLU5vUFNLQmluZGVyIiwKLQkJcmVzdW1l
U2Vzc2lvbjogdHJ1ZSwKLQkJY29uZmlnOiBDb25maWd7Ci0JCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTMsCi0JCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJU2VuZE5vUFNLQmluZGVyOiB0cnVl
LAorCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJCXRlc3RUeXBl
OiAgICAgIHNlcnZlclRlc3QsCisJCQluYW1lOiAgICAgICAgICAiUmVzdW1lLVNlcnZlci1CaW5k
ZXJXcm9uZ0xlbmd0aCIgKyBzdWZmaXgsCisJCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQkJY29u
ZmlnOiBDb25maWd7CisJCQkJTWF4VmVyc2lvbjogICAgVmVyc2lvblRMUzEzLAorCQkJCURlZmF1
bHRDdXJ2ZXM6IGRlZmF1bHRDdXJ2ZXMsCisJCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCQlT
ZW5kU2hvcnRQU0tCaW5kZXI6ICAgICAgICAgdHJ1ZSwKKwkJCQkJT25seUNvcnJ1cHRTZWNvbmRQ
U0tCaW5kZXI6IHNlY29uZEJpbmRlciwKKwkJCQl9LAogCQkJfSwKLQkJfSwKLQkJc2hvdWxkRmFp
bDogICAgICAgICB0cnVlLAotCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IGVy
cm9yIGRlY29kaW5nIG1lc3NhZ2UiLAotCQlleHBlY3RlZEVycm9yOiAgICAgICI6REVDT0RFX0VS
Uk9SOiIsCi0JfSkKKwkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKKwkJCWV4cGVjdGVkTG9j
YWxFcnJvcjogInJlbW90ZSBlcnJvcjogZXJyb3IgZGVjcnlwdGluZyBtZXNzYWdlIiwKKwkJCWV4
cGVjdGVkRXJyb3I6ICAgICAgIjpESUdFU1RfQ0hFQ0tfRkFJTEVEOiIsCisJCX0pCiAKLQl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJdGVzdFR5cGU6ICAgICAgc2Vy
dmVyVGVzdCwKLQkJbmFtZTogICAgICAgICAgIlJlc3VtZS1TZXJ2ZXItRXh0cmFQU0tCaW5kZXIi
LAotCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAotCQljb25maWc6IENvbmZpZ3sKLQkJCU1heFZlcnNp
b246IFZlcnNpb25UTFMxMywKLQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQlTZW5kRXh0cmFQ
U0tCaW5kZXI6IHRydWUsCisJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNl
eworCQkJdGVzdFR5cGU6ICAgICAgc2VydmVyVGVzdCwKKwkJCW5hbWU6ICAgICAgICAgICJSZXN1
bWUtU2VydmVyLU5vUFNLQmluZGVyIiArIHN1ZmZpeCwKKwkJCXJlc3VtZVNlc3Npb246IHRydWUs
CisJCQljb25maWc6IENvbmZpZ3sKKwkJCQlNYXhWZXJzaW9uOiAgICBWZXJzaW9uVExTMTMsCisJ
CQkJRGVmYXVsdEN1cnZlczogZGVmYXVsdEN1cnZlcywKKwkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7
CisJCQkJCVNlbmROb1BTS0JpbmRlcjogICAgICAgICAgICB0cnVlLAorCQkJCQlPbmx5Q29ycnVw
dFNlY29uZFBTS0JpbmRlcjogc2Vjb25kQmluZGVyLAorCQkJCX0sCiAJCQl9LAotCQl9LAotCQlz
aG91bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBl
cnJvcjogaWxsZWdhbCBwYXJhbWV0ZXIiLAotCQlleHBlY3RlZEVycm9yOiAgICAgICI6UFNLX0lE
RU5USVRZX0JJTkRFUl9DT1VOVF9NSVNNQVRDSDoiLAotCX0pCi0KLQl0ZXN0Q2FzZXMgPSBhcHBl
bmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJdGVzdFR5cGU6ICAgICAgc2VydmVyVGVzdCwKLQkJ
bmFtZTogICAgICAgICAgIlJlc3VtZS1TZXJ2ZXItRXh0cmFJZGVudGl0eU5vQmluZGVyIiwKLQkJ
cmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJY29uZmlnOiBDb25maWd7Ci0JCQlNYXhWZXJzaW9uOiBW
ZXJzaW9uVExTMTMsCi0JCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJRXh0cmFQU0tJZGVudGl0
eTogdHJ1ZSwKKwkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKKwkJCWV4cGVjdGVkTG9jYWxF
cnJvcjogInJlbW90ZSBlcnJvcjogZXJyb3IgZGVjb2RpbmcgbWVzc2FnZSIsCisJCQlleHBlY3Rl
ZEVycm9yOiAgICAgICI6REVDT0RFX0VSUk9SOiIsCisJCX0pCisKKwkJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCQl0ZXN0VHlwZTogICAgICBzZXJ2ZXJUZXN0LAor
CQkJbmFtZTogICAgICAgICAgIlJlc3VtZS1TZXJ2ZXItRXh0cmFQU0tCaW5kZXIiICsgc3VmZml4
LAorCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKKwkJCWNvbmZpZzogQ29uZmlneworCQkJCU1heFZl
cnNpb246ICAgIFZlcnNpb25UTFMxMywKKwkJCQlEZWZhdWx0Q3VydmVzOiBkZWZhdWx0Q3VydmVz
LAorCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQkJU2VuZEV4dHJhUFNLQmluZGVyOiAgICAg
ICAgIHRydWUsCisJCQkJCU9ubHlDb3JydXB0U2Vjb25kUFNLQmluZGVyOiBzZWNvbmRCaW5kZXIs
CisJCQkJfSwKIAkJCX0sCi0JCX0sCi0JCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKLQkJZXhw
ZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBpbGxlZ2FsIHBhcmFtZXRlciIsCi0JCWV4
cGVjdGVkRXJyb3I6ICAgICAgIjpQU0tfSURFTlRJVFlfQklOREVSX0NPVU5UX01JU01BVENIOiIs
Ci0JfSkKKwkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKKwkJCWV4cGVjdGVkTG9jYWxFcnJv
cjogInJlbW90ZSBlcnJvcjogaWxsZWdhbCBwYXJhbWV0ZXIiLAorCQkJZXhwZWN0ZWRFcnJvcjog
ICAgICAiOlBTS19JREVOVElUWV9CSU5ERVJfQ09VTlRfTUlTTUFUQ0g6IiwKKwkJfSkKIAotCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQl0ZXN0VHlwZTogICAgICBz
ZXJ2ZXJUZXN0LAotCQluYW1lOiAgICAgICAgICAiUmVzdW1lLVNlcnZlci1JbnZhbGlkUFNLQmlu
ZGVyIiwKLQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJY29uZmlnOiBDb25maWd7Ci0JCQlNYXhW
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJU2VuZElu
dmFsaWRQU0tCaW5kZXI6IHRydWUsCisJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRl
c3RDYXNleworCQkJdGVzdFR5cGU6ICAgICAgc2VydmVyVGVzdCwKKwkJCW5hbWU6ICAgICAgICAg
ICJSZXN1bWUtU2VydmVyLUV4dHJhSWRlbnRpdHlOb0JpbmRlciIgKyBzdWZmaXgsCisJCQlyZXN1
bWVTZXNzaW9uOiB0cnVlLAorCQkJY29uZmlnOiBDb25maWd7CisJCQkJTWF4VmVyc2lvbjogICAg
VmVyc2lvblRMUzEzLAorCQkJCURlZmF1bHRDdXJ2ZXM6IGRlZmF1bHRDdXJ2ZXMsCisJCQkJQnVn
czogUHJvdG9jb2xCdWdzeworCQkJCQlFeHRyYVBTS0lkZW50aXR5OiAgICAgICAgICAgdHJ1ZSwK
KwkJCQkJT25seUNvcnJ1cHRTZWNvbmRQU0tCaW5kZXI6IHNlY29uZEJpbmRlciwKKwkJCQl9LAog
CQkJfSwKLQkJfSwKLQkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAotCQlleHBlY3RlZExvY2Fs
RXJyb3I6ICJyZW1vdGUgZXJyb3I6IGVycm9yIGRlY3J5cHRpbmcgbWVzc2FnZSIsCi0JCWV4cGVj
dGVkRXJyb3I6ICAgICAgIjpESUdFU1RfQ0hFQ0tfRkFJTEVEOiIsCi0JfSkKKwkJCXNob3VsZEZh
aWw6ICAgICAgICAgdHJ1ZSwKKwkJCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjog
aWxsZWdhbCBwYXJhbWV0ZXIiLAorCQkJZXhwZWN0ZWRFcnJvcjogICAgICAiOlBTS19JREVOVElU
WV9CSU5ERVJfQ09VTlRfTUlTTUFUQ0g6IiwKKwkJfSkKKworCQl0ZXN0Q2FzZXMgPSBhcHBlbmQo
dGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJCXRlc3RUeXBlOiAgICAgIHNlcnZlclRlc3QsCisJCQlu
YW1lOiAgICAgICAgICAiUmVzdW1lLVNlcnZlci1JbnZhbGlkUFNLQmluZGVyIiArIHN1ZmZpeCwK
KwkJCXJlc3VtZVNlc3Npb246IHRydWUsCisJCQljb25maWc6IENvbmZpZ3sKKwkJCQlNYXhWZXJz
aW9uOiAgICBWZXJzaW9uVExTMTMsCisJCQkJRGVmYXVsdEN1cnZlczogZGVmYXVsdEN1cnZlcywK
KwkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJCVNlbmRJbnZhbGlkUFNLQmluZGVyOiAgICAg
ICB0cnVlLAorCQkJCQlPbmx5Q29ycnVwdFNlY29uZFBTS0JpbmRlcjogc2Vjb25kQmluZGVyLAor
CQkJCX0sCisJCQl9LAorCQkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAorCQkJZXhwZWN0ZWRM
b2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBlcnJvciBkZWNyeXB0aW5nIG1lc3NhZ2UiLAorCQkJ
ZXhwZWN0ZWRFcnJvcjogICAgICAiOkRJR0VTVF9DSEVDS19GQUlMRUQ6IiwKKwkJfSkKKworCQl0
ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJCXRlc3RUeXBlOiAgICAg
IHNlcnZlclRlc3QsCisJCQluYW1lOiAgICAgICAgICAiUmVzdW1lLVNlcnZlci1QU0tCaW5kZXJG
aXJzdEV4dGVuc2lvbiIgKyBzdWZmaXgsCisJCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQkJY29u
ZmlnOiBDb25maWd7CisJCQkJTWF4VmVyc2lvbjogICAgVmVyc2lvblRMUzEzLAorCQkJCURlZmF1
bHRDdXJ2ZXM6IGRlZmF1bHRDdXJ2ZXMsCisJCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCQlQ
U0tCaW5kZXJGaXJzdDogICAgICAgICAgICAgdHJ1ZSwKKwkJCQkJT25seUNvcnJ1cHRTZWNvbmRQ
U0tCaW5kZXI6IHNlY29uZEJpbmRlciwKKwkJCQl9LAorCQkJfSwKKwkJCXNob3VsZEZhaWw6ICAg
ICAgICAgdHJ1ZSwKKwkJCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogaWxsZWdh
bCBwYXJhbWV0ZXIiLAorCQkJZXhwZWN0ZWRFcnJvcjogICAgICAiOlBSRV9TSEFSRURfS0VZX01V
U1RfQkVfTEFTVDoiLAorCQl9KQorCX0KIAogCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMs
IHRlc3RDYXNlewogCQl0ZXN0VHlwZTogICAgICBzZXJ2ZXJUZXN0LAotCQluYW1lOiAgICAgICAg
ICAiUmVzdW1lLVNlcnZlci1QU0tCaW5kZXJGaXJzdEV4dGVuc2lvbiIsCisJCW5hbWU6ICAgICAg
ICAgICJSZXN1bWUtU2VydmVyLU9taXRQU0tzT25TZWNvbmRDbGllbnRIZWxsbyIsCiAJCXJlc3Vt
ZVNlc3Npb246IHRydWUsCiAJCWNvbmZpZzogQ29uZmlnewotCQkJTWF4VmVyc2lvbjogVmVyc2lv
blRMUzEzLAorCQkJTWF4VmVyc2lvbjogICAgVmVyc2lvblRMUzEzLAorCQkJRGVmYXVsdEN1cnZl
czogW11DdXJ2ZUlEe30sCiAJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJUFNLQmluZGVyRmly
c3Q6IHRydWUsCisJCQkJT21pdFBTS3NPblNlY29uZENsaWVudEhlbGxvOiB0cnVlLAogCQkJfSwK
IAkJfSwKIAkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAogCQlleHBlY3RlZExvY2FsRXJyb3I6
ICJyZW1vdGUgZXJyb3I6IGlsbGVnYWwgcGFyYW1ldGVyIiwKLQkJZXhwZWN0ZWRFcnJvcjogICAg
ICAiOlBSRV9TSEFSRURfS0VZX01VU1RfQkVfTEFTVDoiLAorCQlleHBlY3RlZEVycm9yOiAgICAg
ICI6SU5DT05TSVNURU5UX0NMSUVOVF9IRUxMTzoiLAogCX0pCiB9CiAKQEAgLTgzMTgsMTUgKzgy
MjMsMTQgQEAgZnVuYyBhZGRSZW5lZ290aWF0aW9uVGVzdHMoKSB7CiAJCX0sCiAJfSkKIAl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJbmFtZTogIlJlbmVnb3RpYXRl
LUNsaWVudC1UTFMxM0RyYWZ0MjMiLAorCQluYW1lOiAiUmVuZWdvdGlhdGUtQ2xpZW50LVRMUzEy
IiwKIAkJY29uZmlnOiBDb25maWd7CiAJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTIsCiAJCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7CiAJCQkJRmFpbElmUmVzdW1lT25SZW5lZ286IHRydWUsCiAJCQl9
LAogCQl9LAotCQl0bHMxM1ZhcmlhbnQ6IFRMUzEzRHJhZnQyMywKLQkJcmVuZWdvdGlhdGU6ICAx
LAorCQlyZW5lZ290aWF0ZTogMSwKIAkJLy8gVGVzdCByZW5lZ290aWF0aW9uIGFmdGVyIGJvdGgg
YW4gaW5pdGlhbCBhbmQgcmVzdW1wdGlvbgogCQkvLyBoYW5kc2hha2UuCiAJCXJlc3VtZVNlc3Np
b246IHRydWUsCkBAIC04ODM0LDIxICs4NzM4LDIxIEBAIHZhciB0ZXN0U2lnbmF0dXJlQWxnb3Jp
dGhtcyA9IFtdc3RydWN0IHsKIAlpZCAgIHNpZ25hdHVyZUFsZ29yaXRobQogCWNlcnQgdGVzdENl
cnQKIH17Ci0JeyJSU0EtUEtDUzEtU0hBMSIsIHNpZ25hdHVyZVJTQVBLQ1MxV2l0aFNIQTEsIHRl
c3RDZXJ0UlNBfSwKLQl7IlJTQS1QS0NTMS1TSEEyNTYiLCBzaWduYXR1cmVSU0FQS0NTMVdpdGhT
SEEyNTYsIHRlc3RDZXJ0UlNBfSwKLQl7IlJTQS1QS0NTMS1TSEEzODQiLCBzaWduYXR1cmVSU0FQ
S0NTMVdpdGhTSEEzODQsIHRlc3RDZXJ0UlNBfSwKLQl7IlJTQS1QS0NTMS1TSEE1MTIiLCBzaWdu
YXR1cmVSU0FQS0NTMVdpdGhTSEE1MTIsIHRlc3RDZXJ0UlNBfSwKLQl7IkVDRFNBLVNIQTEiLCBz
aWduYXR1cmVFQ0RTQVdpdGhTSEExLCB0ZXN0Q2VydEVDRFNBUDI1Nn0sCisJeyJSU0FfUEtDUzFf
U0hBMSIsIHNpZ25hdHVyZVJTQVBLQ1MxV2l0aFNIQTEsIHRlc3RDZXJ0UlNBfSwKKwl7IlJTQV9Q
S0NTMV9TSEEyNTYiLCBzaWduYXR1cmVSU0FQS0NTMVdpdGhTSEEyNTYsIHRlc3RDZXJ0UlNBfSwK
Kwl7IlJTQV9QS0NTMV9TSEEzODQiLCBzaWduYXR1cmVSU0FQS0NTMVdpdGhTSEEzODQsIHRlc3RD
ZXJ0UlNBfSwKKwl7IlJTQV9QS0NTMV9TSEE1MTIiLCBzaWduYXR1cmVSU0FQS0NTMVdpdGhTSEE1
MTIsIHRlc3RDZXJ0UlNBfSwKKwl7IkVDRFNBX1NIQTEiLCBzaWduYXR1cmVFQ0RTQVdpdGhTSEEx
LCB0ZXN0Q2VydEVDRFNBUDI1Nn0sCiAJLy8gVGhlIOKAnFAyNTbigJ0gaW4gdGhlIGZvbGxvd2lu
ZyBsaW5lIGlzIG5vdCBhIG1pc3Rha2UuIEluIFRMUyAxLjIgdGhlCiAJLy8gaGFzaCBmdW5jdGlv
biBkb2Vzbid0IGhhdmUgdG8gbWF0Y2ggdGhlIGN1cnZlIGFuZCBzbyB0aGUgc2FtZQogCS8vIHNp
Z25hdHVyZSBhbGdvcml0aG0gd29ya3Mgd2l0aCBQLTIyNC4KLQl7IkVDRFNBLVAyMjQtU0hBMjU2
Iiwgc2lnbmF0dXJlRUNEU0FXaXRoUDI1NkFuZFNIQTI1NiwgdGVzdENlcnRFQ0RTQVAyMjR9LAot
CXsiRUNEU0EtUDI1Ni1TSEEyNTYiLCBzaWduYXR1cmVFQ0RTQVdpdGhQMjU2QW5kU0hBMjU2LCB0
ZXN0Q2VydEVDRFNBUDI1Nn0sCi0JeyJFQ0RTQS1QMzg0LVNIQTM4NCIsIHNpZ25hdHVyZUVDRFNB
V2l0aFAzODRBbmRTSEEzODQsIHRlc3RDZXJ0RUNEU0FQMzg0fSwKLQl7IkVDRFNBLVA1MjEtU0hB
NTEyIiwgc2lnbmF0dXJlRUNEU0FXaXRoUDUyMUFuZFNIQTUxMiwgdGVzdENlcnRFQ0RTQVA1MjF9
LAotCXsiUlNBLVBTUy1TSEEyNTYiLCBzaWduYXR1cmVSU0FQU1NXaXRoU0hBMjU2LCB0ZXN0Q2Vy
dFJTQX0sCi0JeyJSU0EtUFNTLVNIQTM4NCIsIHNpZ25hdHVyZVJTQVBTU1dpdGhTSEEzODQsIHRl
c3RDZXJ0UlNBfSwKLQl7IlJTQS1QU1MtU0hBNTEyIiwgc2lnbmF0dXJlUlNBUFNTV2l0aFNIQTUx
MiwgdGVzdENlcnRSU0F9LAorCXsiRUNEU0FfUDIyNF9TSEEyNTYiLCBzaWduYXR1cmVFQ0RTQVdp
dGhQMjU2QW5kU0hBMjU2LCB0ZXN0Q2VydEVDRFNBUDIyNH0sCisJeyJFQ0RTQV9QMjU2X1NIQTI1
NiIsIHNpZ25hdHVyZUVDRFNBV2l0aFAyNTZBbmRTSEEyNTYsIHRlc3RDZXJ0RUNEU0FQMjU2fSwK
Kwl7IkVDRFNBX1AzODRfU0hBMzg0Iiwgc2lnbmF0dXJlRUNEU0FXaXRoUDM4NEFuZFNIQTM4NCwg
dGVzdENlcnRFQ0RTQVAzODR9LAorCXsiRUNEU0FfUDUyMV9TSEE1MTIiLCBzaWduYXR1cmVFQ0RT
QVdpdGhQNTIxQW5kU0hBNTEyLCB0ZXN0Q2VydEVDRFNBUDUyMX0sCisJeyJSU0FfUFNTX1NIQTI1
NiIsIHNpZ25hdHVyZVJTQVBTU1dpdGhTSEEyNTYsIHRlc3RDZXJ0UlNBfSwKKwl7IlJTQV9QU1Nf
U0hBMzg0Iiwgc2lnbmF0dXJlUlNBUFNTV2l0aFNIQTM4NCwgdGVzdENlcnRSU0F9LAorCXsiUlNB
X1BTU19TSEE1MTIiLCBzaWduYXR1cmVSU0FQU1NXaXRoU0hBNTEyLCB0ZXN0Q2VydFJTQX0sCiAJ
eyJFZDI1NTE5Iiwgc2lnbmF0dXJlRWQyNTUxOSwgdGVzdENlcnRFZDI1NTE5fSwKIAkvLyBUZXN0
cyBmb3Iga2V5IHR5cGVzIHByaW9yIHRvIFRMUyAxLjIuCiAJeyJSU0EiLCAwLCB0ZXN0Q2VydFJT
QX0sCkBAIC04ODYyLDcgKzg3NjYsNyBAQCBmdW5jIGFkZFNpZ25hdHVyZUFsZ29yaXRobVRlc3Rz
KCkgewogCS8vIE5vdCBhbGwgY2lwaGVycyBpbnZvbHZlIGEgc2lnbmF0dXJlLiBBZHZlcnRpc2Ug
YSBsaXN0IHdoaWNoIGdpdmVzIGFsbAogCS8vIHZlcnNpb25zIGEgc2lnbmluZyBjaXBoZXIuCiAJ
c2lnbmluZ0NpcGhlcnMgOj0gW111aW50MTZ7Ci0JCVRMU19BRVNfMTI4X0dDTV9TSEEyNTYsCisJ
CVRMU19BRVNfMjU2X0dDTV9TSEEzODQsCiAJCVRMU19FQ0RIRV9FQ0RTQV9XSVRIX0FFU18xMjhf
R0NNX1NIQTI1NiwKIAkJVExTX0VDREhFX1JTQV9XSVRIX0FFU18xMjhfR0NNX1NIQTI1NiwKIAkJ
VExTX0VDREhFX0VDRFNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBLApAQCAtODkzNiw3ICs4ODQwLDYg
QEAgZnVuYyBhZGRTaWduYXR1cmVBbGdvcml0aG1UZXN0cygpIHsKIAkJCQkJIi1lbmFibGUtYWxs
LWN1cnZlcyIsCiAJCQkJCSItZW5hYmxlLWVkMjU1MTkiLAogCQkJCX0sCi0JCQkJdGxzMTNWYXJp
YW50OiAgICAgICAgICAgICAgICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJCXNob3VsZEZhaWw6
ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkU2lnbkZhaWwsCiAJCQkJZXhwZWN0ZWRFcnJvcjog
ICAgICAgICAgICAgICAgICBzaWduRXJyb3IsCiAJCQkJZXhwZWN0ZWRMb2NhbEVycm9yOiAgICAg
ICAgICAgICBzaWduTG9jYWxFcnJvciwKQEAgLTg5NTksNyArODg2Miw2IEBAIGZ1bmMgYWRkU2ln
bmF0dXJlQWxnb3JpdGhtVGVzdHMoKSB7CiAJCQkJCQlJZ25vcmVQZWVyU2lnbmF0dXJlQWxnb3Jp
dGhtUHJlZmVyZW5jZXM6IHNob3VsZFZlcmlmeUZhaWwsCiAJCQkJCX0sCiAJCQkJfSwKLQkJCQl0
bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJ
CQkiLXJlcXVpcmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0ZSIsCiAJCQkJCSItZXhwZWN0LXBlZXIt
c2lnbmF0dXJlLWFsZ29yaXRobSIsIHN0cmNvbnYuSXRvYShpbnQoYWxnLmlkKSksCkBAIC04OTg2
LDcgKzg4ODgsNiBAQCBmdW5jIGFkZFNpZ25hdHVyZUFsZ29yaXRobVRlc3RzKCkgewogCQkJCQkJ
ZmFrZVNpZ0FsZzIsCiAJCQkJCX0sCiAJCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMx
M1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCQkiLWNlcnQtZmlsZSIsIHBhdGgu
Sm9pbigqcmVzb3VyY2VEaXIsIGdldFNoaW1DZXJ0aWZpY2F0ZShhbGcuY2VydCkpLAogCQkJCQki
LWtleS1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgZ2V0U2hpbUtleShhbGcuY2VydCkp
LApAQCAtOTAxNSw3ICs4OTE2LDYgQEAgZnVuYyBhZGRTaWduYXR1cmVBbGdvcml0aG1UZXN0cygp
IHsKIAkJCQkJCUlnbm9yZVBlZXJTaWduYXR1cmVBbGdvcml0aG1QcmVmZXJlbmNlczogc2hvdWxk
VmVyaWZ5RmFpbCwKIAkJCQkJfSwKIAkJCQl9LAotCQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEz
VmFyaWFudCwKIAkJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJCSItZXhwZWN0LXBlZXItc2lnbmF0
dXJlLWFsZ29yaXRobSIsIHN0cmNvbnYuSXRvYShpbnQoYWxnLmlkKSksCiAJCQkJCSItZW5hYmxl
LWFsbC1jdXJ2ZXMiLApAQCAtOTA0Myw3ICs4OTQzLDYgQEAgZnVuYyBhZGRTaWduYXR1cmVBbGdv
cml0aG1UZXN0cygpIHsKIAkJCQkJCQlJbnZhbGlkU2lnbmF0dXJlOiB0cnVlLAogCQkJCQkJfSwK
IAkJCQkJfSwKLQkJCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAogCQkJCQlmbGFn
czogW11zdHJpbmd7CiAJCQkJCQkiLXJlcXVpcmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0ZSIsCiAJ
CQkJCQkiLWVuYWJsZS1hbGwtY3VydmVzIiwKQEAgLTkwNjYsNyArODk2NSw2IEBAIGZ1bmMgYWRk
U2lnbmF0dXJlQWxnb3JpdGhtVGVzdHMoKSB7CiAJCQkJCQkJSW52YWxpZFNpZ25hdHVyZTogdHJ1
ZSwKIAkJCQkJCX0sCiAJCQkJCX0sCi0JCQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFu
dCwKIAkJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCQkJIi1lbmFibGUtYWxsLWN1cnZlcyIsCiAJ
CQkJCQkiLWVuYWJsZS1lZDI1NTE5IiwKQEAgLTkwODQsNyArODk4Miw2IEBAIGZ1bmMgYWRkU2ln
bmF0dXJlQWxnb3JpdGhtVGVzdHMoKSB7CiAJCQkJCQlDbGllbnRBdXRoOiAgICAgICAgICAgICAg
ICBSZXF1aXJlQW55Q2xpZW50Q2VydCwKIAkJCQkJCVZlcmlmeVNpZ25hdHVyZUFsZ29yaXRobXM6
IGFsbEFsZ29yaXRobXMsCiAJCQkJCX0sCi0JCQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFy
aWFudCwKIAkJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpv
aW4oKnJlc291cmNlRGlyLCBnZXRTaGltQ2VydGlmaWNhdGUoYWxnLmNlcnQpKSwKIAkJCQkJCSIt
a2V5LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCBnZXRTaGltS2V5KGFsZy5jZXJ0KSks
CkBAIC05MTAzLDcgKzkwMDAsNiBAQCBmdW5jIGFkZFNpZ25hdHVyZUFsZ29yaXRobVRlc3RzKCkg
ewogCQkJCQkJQ2lwaGVyU3VpdGVzOiAgICAgICAgICAgICAgc2lnbmluZ0NpcGhlcnMsCiAJCQkJ
CQlWZXJpZnlTaWduYXR1cmVBbGdvcml0aG1zOiBhbGxBbGdvcml0aG1zLAogCQkJCQl9LAotCQkJ
CQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCiAJCQkJCWZsYWdzOiBbXXN0cmluZ3sK
IAkJCQkJCSItY2VydC1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgZ2V0U2hpbUNlcnRp
ZmljYXRlKGFsZy5jZXJ0KSksCiAJCQkJCQkiLWtleS1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJj
ZURpciwgZ2V0U2hpbUtleShhbGcuY2VydCkpLApAQCAtOTEzMyw3ICs5MDI5LDYgQEAgZnVuYyBh
ZGRTaWduYXR1cmVBbGdvcml0aG1UZXN0cygpIHsKIAkJCQkJc2lnbmF0dXJlRUNEU0FXaXRoUDI1
NkFuZFNIQTI1NiwKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFy
aWFudCwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWNlcnQtZmlsZSIsIHBhdGguSm9pbigq
cmVzb3VyY2VEaXIsIHJzYUNlcnRpZmljYXRlRmlsZSksCiAJCQkJIi1rZXktZmlsZSIsIHBhdGgu
Sm9pbigqcmVzb3VyY2VEaXIsIHJzYUtleUZpbGUpLApAQCAtOTE1NCw3ICs5MDQ5LDYgQEAgZnVu
YyBhZGRTaWduYXR1cmVBbGdvcml0aG1UZXN0cygpIHsKIAkJCQkJc2lnbmF0dXJlRUNEU0FXaXRo
UDI1NkFuZFNIQTI1NiwKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEz
VmFyaWFudCwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWNlcnQtZmlsZSIsIHBhdGguSm9p
bigqcmVzb3VyY2VEaXIsIHJzYUNlcnRpZmljYXRlRmlsZSksCiAJCQkJIi1rZXktZmlsZSIsIHBh
dGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUtleUZpbGUpLApAQCAtOTMwNiwxMyArOTIwMCwxMyBA
QCBmdW5jIGFkZFNpZ25hdHVyZUFsZ29yaXRobVRlc3RzKCkgewogCQlleHBlY3RlZEVycm9yOiAi
OldST05HX1NJR05BVFVSRV9UWVBFOiIsCiAJfSkKIAotCS8vIFRlc3QgdGhhdCwgaWYgdGhlIGxp
c3QgaXMgbWlzc2luZywgdGhlIHBlZXIgZmFsbHMgYmFjayB0byBTSEEtMSBpbgotCS8vIFRMUyAx
LjIsIGJ1dCBub3QgVExTIDEuMy4KKwkvLyBUZXN0IHRoYXQsIGlmIHRoZSBDbGllbnRIZWxsbyBs
aXN0IGlzIG1pc3NpbmcsIHRoZSBzZXJ2ZXIgZmFsbHMgYmFjaworCS8vIHRvIFNIQS0xIGluIFRM
UyAxLjIsIGJ1dCBub3QgVExTIDEuMy4KIAl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKLQkJbmFtZTogIkNsaWVudEF1dGgtU0hBMS1GYWxsYmFjay1SU0EiLAorCQl0ZXN0
VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJTZXJ2ZXJBdXRoLVNIQTEtRmFsbGJhY2st
UlNBIiwKIAkJY29uZmlnOiBDb25maWd7CiAJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTIsCi0J
CQlDbGllbnRBdXRoOiBSZXF1aXJlQW55Q2xpZW50Q2VydCwKIAkJCVZlcmlmeVNpZ25hdHVyZUFs
Z29yaXRobXM6IFtdc2lnbmF0dXJlQWxnb3JpdGhtewogCQkJCXNpZ25hdHVyZVJTQVBLQ1MxV2l0
aFNIQTEsCiAJCQl9LApAQCAtOTMyOCw4NiArOTIyMiw4NyBAQCBmdW5jIGFkZFNpZ25hdHVyZUFs
Z29yaXRobVRlc3RzKCkgewogCiAJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENh
c2V7CiAJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQluYW1lOiAgICAgIlNlcnZlckF1dGgtU0hB
MS1GYWxsYmFjay1SU0EiLAorCQluYW1lOiAgICAgIlNlcnZlckF1dGgtU0hBMS1GYWxsYmFjay1F
Q0RTQSIsCiAJCWNvbmZpZzogQ29uZmlnewogCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEyLAog
CQkJVmVyaWZ5U2lnbmF0dXJlQWxnb3JpdGhtczogW11zaWduYXR1cmVBbGdvcml0aG17Ci0JCQkJ
c2lnbmF0dXJlUlNBUEtDUzFXaXRoU0hBMSwKKwkJCQlzaWduYXR1cmVFQ0RTQVdpdGhTSEExLAog
CQkJfSwKIAkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKIAkJCQlOb1NpZ25hdHVyZUFsZ29yaXRobXM6
IHRydWUsCiAJCQl9LAogCQl9LAogCQlmbGFnczogW11zdHJpbmd7Ci0JCQkiLWNlcnQtZmlsZSIs
IHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNlcnRpZmljYXRlRmlsZSksCi0JCQkiLWtleS1m
aWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNhS2V5RmlsZSksCisJCQkiLWNlcnQtZmls
ZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIGVjZHNhUDI1NkNlcnRpZmljYXRlRmlsZSksCisJ
CQkiLWtleS1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgZWNkc2FQMjU2S2V5RmlsZSks
CiAJCX0sCiAJfSkKIAogCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewot
CQluYW1lOiAiQ2xpZW50QXV0aC1TSEExLUZhbGxiYWNrLUVDRFNBIiwKKwkJdGVzdFR5cGU6IHNl
cnZlclRlc3QsCisJCW5hbWU6ICAgICAiU2VydmVyQXV0aC1Ob0ZhbGxiYWNrLVRMUzEzIiwKIAkJ
Y29uZmlnOiBDb25maWd7Ci0JCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTIsCi0JCQlDbGllbnRB
dXRoOiBSZXF1aXJlQW55Q2xpZW50Q2VydCwKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywK
IAkJCVZlcmlmeVNpZ25hdHVyZUFsZ29yaXRobXM6IFtdc2lnbmF0dXJlQWxnb3JpdGhtewotCQkJ
CXNpZ25hdHVyZUVDRFNBV2l0aFNIQTEsCisJCQkJc2lnbmF0dXJlUlNBUEtDUzFXaXRoU0hBMSwK
IAkJCX0sCiAJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CiAJCQkJTm9TaWduYXR1cmVBbGdvcml0aG1z
OiB0cnVlLAogCQkJfSwKIAkJfSwKLQkJZmxhZ3M6IFtdc3RyaW5newotCQkJIi1jZXJ0LWZpbGUi
LCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCBlY2RzYVAyNTZDZXJ0aWZpY2F0ZUZpbGUpLAotCQkJ
Ii1rZXktZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIGVjZHNhUDI1NktleUZpbGUpLAot
CQl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOk5PX0NPTU1P
Tl9TSUdOQVRVUkVfQUxHT1JJVEhNUzoiLAogCX0pCiAKKwkvLyBUaGUgQ2VydGlmaWNhdGVSZXF1
ZXN0IGxpc3QsIGhvd2V2ZXIsIG1heSBuZXZlciBiZSBvbWl0dGVkLiBJdCBpcyBhCisJLy8gc3lu
dGF4IGVycm9yIGZvciBpdCB0byBiZSBlbXB0eS4KIAl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKLQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCW5hbWU6ICAgICAiU2Vy
dmVyQXV0aC1TSEExLUZhbGxiYWNrLUVDRFNBIiwKKwkJbmFtZTogIkNsaWVudEF1dGgtTm9GYWxs
YmFjay1SU0EiLAogCQljb25maWc6IENvbmZpZ3sKIAkJCU1heFZlcnNpb246IFZlcnNpb25UTFMx
MiwKKwkJCUNsaWVudEF1dGg6IFJlcXVpcmVBbnlDbGllbnRDZXJ0LAogCQkJVmVyaWZ5U2lnbmF0
dXJlQWxnb3JpdGhtczogW11zaWduYXR1cmVBbGdvcml0aG17Ci0JCQkJc2lnbmF0dXJlRUNEU0FX
aXRoU0hBMSwKKwkJCQlzaWduYXR1cmVSU0FQS0NTMVdpdGhTSEExLAogCQkJfSwKIAkJCUJ1Z3M6
IFByb3RvY29sQnVnc3sKIAkJCQlOb1NpZ25hdHVyZUFsZ29yaXRobXM6IHRydWUsCiAJCQl9LAog
CQl9LAogCQlmbGFnczogW11zdHJpbmd7Ci0JCQkiLWNlcnQtZmlsZSIsIHBhdGguSm9pbigqcmVz
b3VyY2VEaXIsIGVjZHNhUDI1NkNlcnRpZmljYXRlRmlsZSksCi0JCQkiLWtleS1maWxlIiwgcGF0
aC5Kb2luKCpyZXNvdXJjZURpciwgZWNkc2FQMjU2S2V5RmlsZSksCisJCQkiLWNlcnQtZmlsZSIs
IHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNlcnRpZmljYXRlRmlsZSksCisJCQkiLWtleS1m
aWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNhS2V5RmlsZSksCiAJCX0sCisJCXNob3Vs
ZEZhaWw6ICAgICAgICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogICAgICAiOkRFQ09ERV9FUlJP
UjoiLAorCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IGVycm9yIGRlY29kaW5n
IG1lc3NhZ2UiLAogCX0pCiAKIAl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKLQkJbmFtZTogIkNsaWVudEF1dGgtTm9GYWxsYmFjay1UTFMxMyIsCisJCW5hbWU6ICJDbGll
bnRBdXRoLU5vRmFsbGJhY2stRUNEU0EiLAogCQljb25maWc6IENvbmZpZ3sKLQkJCU1heFZlcnNp
b246IFZlcnNpb25UTFMxMywKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMiwKIAkJCUNsaWVu
dEF1dGg6IFJlcXVpcmVBbnlDbGllbnRDZXJ0LAogCQkJVmVyaWZ5U2lnbmF0dXJlQWxnb3JpdGht
czogW11zaWduYXR1cmVBbGdvcml0aG17Ci0JCQkJc2lnbmF0dXJlUlNBUEtDUzFXaXRoU0hBMSwK
KwkJCQlzaWduYXR1cmVFQ0RTQVdpdGhTSEExLAogCQkJfSwKIAkJCUJ1Z3M6IFByb3RvY29sQnVn
c3sKIAkJCQlOb1NpZ25hdHVyZUFsZ29yaXRobXM6IHRydWUsCiAJCQl9LAogCQl9LAogCQlmbGFn
czogW11zdHJpbmd7Ci0JCQkiLWNlcnQtZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJz
YUNlcnRpZmljYXRlRmlsZSksCi0JCQkiLWtleS1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURp
ciwgcnNhS2V5RmlsZSksCisJCQkiLWNlcnQtZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIs
IGVjZHNhUDI1NkNlcnRpZmljYXRlRmlsZSksCisJCQkiLWtleS1maWxlIiwgcGF0aC5Kb2luKCpy
ZXNvdXJjZURpciwgZWNkc2FQMjU2S2V5RmlsZSksCiAJCX0sCi0JCXNob3VsZEZhaWw6IHRydWUs
Ci0JCS8vIEFuIGVtcHR5IENlcnRpZmljYXRlUmVxdWVzdCBzaWduYXR1cmUgYWxnb3JpdGhtIGxp
c3QgaXMgYQotCQkvLyBzeW50YXggZXJyb3IgaW4gVExTIDEuMy4KKwkJc2hvdWxkRmFpbDogICAg
ICAgICB0cnVlLAogCQlleHBlY3RlZEVycm9yOiAgICAgICI6REVDT0RFX0VSUk9SOiIsCiAJCWV4
cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogZXJyb3IgZGVjb2RpbmcgbWVzc2FnZSIs
CiAJfSkKIAogCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQl0ZXN0
VHlwZTogc2VydmVyVGVzdCwKLQkJbmFtZTogICAgICJTZXJ2ZXJBdXRoLU5vRmFsbGJhY2stVExT
MTMiLAorCQluYW1lOiAiQ2xpZW50QXV0aC1Ob0ZhbGxiYWNrLVRMUzEzIiwKIAkJY29uZmlnOiBD
b25maWd7CiAJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlDbGllbnRBdXRoOiBSZXF1
aXJlQW55Q2xpZW50Q2VydCwKIAkJCVZlcmlmeVNpZ25hdHVyZUFsZ29yaXRobXM6IFtdc2lnbmF0
dXJlQWxnb3JpdGhtewogCQkJCXNpZ25hdHVyZVJTQVBLQ1MxV2l0aFNIQTEsCiAJCQl9LApAQCAt
OTQxNSw4ICs5MzEwLDEzIEBAIGZ1bmMgYWRkU2lnbmF0dXJlQWxnb3JpdGhtVGVzdHMoKSB7CiAJ
CQkJTm9TaWduYXR1cmVBbGdvcml0aG1zOiB0cnVlLAogCQkJfSwKIAkJfSwKLQkJc2hvdWxkRmFp
bDogICAgdHJ1ZSwKLQkJZXhwZWN0ZWRFcnJvcjogIjpOT19DT01NT05fU0lHTkFUVVJFX0FMR09S
SVRITVM6IiwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4o
KnJlc291cmNlRGlyLCByc2FDZXJ0aWZpY2F0ZUZpbGUpLAorCQkJIi1rZXktZmlsZSIsIHBhdGgu
Sm9pbigqcmVzb3VyY2VEaXIsIHJzYUtleUZpbGUpLAorCQl9LAorCQlzaG91bGRGYWlsOiAgICAg
ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICAgICAgIjpERUNPREVfRVJST1I6IiwKKwkJZXhw
ZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBlcnJvciBkZWNvZGluZyBtZXNzYWdlIiwK
IAl9KQogCiAJLy8gVGVzdCB0aGF0IHNpZ25hdHVyZSBwcmVmZXJlbmNlcyBhcmUgZW5mb3JjZWQu
IEJvcmluZ1NTTCBkb2VzIG5vdApAQCAtOTYxMyw3ICs5NTEzLDcgQEAgZnVuYyBhZGRTaWduYXR1
cmVBbGdvcml0aG1UZXN0cygpIHsKIAkJCUNpcGhlclN1aXRlczogW111aW50MTZ7VExTX0VDREhF
X0VDRFNBX1dJVEhfQUVTXzEyOF9HQ01fU0hBMjU2fSwKIAkJCUNlcnRpZmljYXRlczogW11DZXJ0
aWZpY2F0ZXtlY2RzYVAyNTZDZXJ0aWZpY2F0ZX0sCiAJCX0sCi0JCWZsYWdzOiAgICAgICAgIFtd
c3RyaW5neyItcDM4NC1vbmx5In0sCisJCWZsYWdzOiAgICAgICAgIFtdc3RyaW5neyItY3VydmVz
Iiwgc3RyY29udi5JdG9hKGludChDdXJ2ZVAzODQpKX0sCiAJCXNob3VsZEZhaWw6ICAgIHRydWUs
CiAJCWV4cGVjdGVkRXJyb3I6ICI6QkFEX0VDQ19DRVJUOiIsCiAJfSkKQEAgLTk2MjUsNyArOTUy
NSw3IEBAIGZ1bmMgYWRkU2lnbmF0dXJlQWxnb3JpdGhtVGVzdHMoKSB7CiAJCQlNYXhWZXJzaW9u
OiAgIFZlcnNpb25UTFMxMywKIAkJCUNlcnRpZmljYXRlczogW11DZXJ0aWZpY2F0ZXtlY2RzYVAy
NTZDZXJ0aWZpY2F0ZX0sCiAJCX0sCi0JCWZsYWdzOiBbXXN0cmluZ3siLXAzODQtb25seSJ9LAor
CQlmbGFnczogW11zdHJpbmd7Ii1jdXJ2ZXMiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlUDM4NCkp
fSwKIAl9KQogCiAJLy8gSW4gVExTIDEuMiwgdGhlIEVDRFNBIGN1cnZlIGlzIG5vdCBpbiB0aGUg
c2lnbmF0dXJlIGFsZ29yaXRobS4KQEAgLTk5NjYsNyArOTg2Niw2IEBAIGZ1bmMgYWRkU2lnbmF0
dXJlQWxnb3JpdGhtVGVzdHMoKSB7CiAJCQkJCQlFeHBlY3RSU0FQU1NTdXBwb3J0OiBleHBlY3Qs
CiAJCQkJCX0sCiAJCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZlci50bHMxM1Zhcmlh
bnQsCiAJCQkJZmxhZ3M6ICAgICAgICAgICAgICBmbGFncywKIAkJCQlzaG91bGRGYWlsOiAgICAg
ICAgIHNob3VsZEZhaWwsCiAJCQkJZXhwZWN0ZWRMb2NhbEVycm9yOiBsb2NhbEVycm9yLApAQCAt
OTk4NSw3ICs5ODg0LDYgQEAgZnVuYyBhZGRTaWduYXR1cmVBbGdvcml0aG1UZXN0cygpIHsKIAkJ
CQkJCUV4cGVjdFJTQVBTU1N1cHBvcnQ6IGV4cGVjdCwKIAkJCQkJfSwKIAkJCQl9LAotCQkJCXRs
czEzVmFyaWFudDogICAgICAgdmVyLnRsczEzVmFyaWFudCwKIAkJCQlmbGFnczogICAgICAgICAg
ICAgIHNlcnZlckZsYWdzLAogCQkJCXNob3VsZEZhaWw6ICAgICAgICAgc2hvdWxkRmFpbCwKIAkJ
CQlleHBlY3RlZExvY2FsRXJyb3I6IGxvY2FsRXJyb3IsCkBAIC0xMDIxMyw3ICsxMDExMSw2IEBA
IGZ1bmMgYWRkRXhwb3J0S2V5aW5nTWF0ZXJpYWxUZXN0cygpIHsKIAkJCS8vIFRlc3QgdGhlIGV4
cG9ydGVyIGluIGJvdGggaW5pdGlhbCBhbmQgcmVzdW1wdGlvbgogCQkJLy8gaGFuZHNoYWtlcy4K
IAkJCXJlc3VtZVNlc3Npb246ICAgICAgICB0cnVlLAotCQkJdGxzMTNWYXJpYW50OiAgICAgICAg
IHZlcnMudGxzMTNWYXJpYW50LAogCQkJZXhwb3J0S2V5aW5nTWF0ZXJpYWw6IDEwMjQsCiAJCQll
eHBvcnRMYWJlbDogICAgICAgICAgImxhYmVsIiwKIAkJCWV4cG9ydENvbnRleHQ6ICAgICAgICAi
Y29udGV4dCIsCkBAIC0xMDIyNCw3ICsxMDEyMSw2IEBAIGZ1bmMgYWRkRXhwb3J0S2V5aW5nTWF0
ZXJpYWxUZXN0cygpIHsKIAkJCWNvbmZpZzogQ29uZmlnewogCQkJCU1heFZlcnNpb246IHZlcnMu
dmVyc2lvbiwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgICAgdmVycy50bHMxM1Zhcmlh
bnQsCiAJCQlleHBvcnRLZXlpbmdNYXRlcmlhbDogMTAyNCwKIAkJfSkKIAkJdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CkBAIC0xMDIzMiw3ICsxMDEyOCw2IEBAIGZ1bmMg
YWRkRXhwb3J0S2V5aW5nTWF0ZXJpYWxUZXN0cygpIHsKIAkJCWNvbmZpZzogQ29uZmlnewogCQkJ
CU1heFZlcnNpb246IHZlcnMudmVyc2lvbiwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAg
ICAgdmVycy50bHMxM1ZhcmlhbnQsCiAJCQlleHBvcnRLZXlpbmdNYXRlcmlhbDogMTAyNCwKIAkJ
CXVzZUV4cG9ydENvbnRleHQ6ICAgICB0cnVlLAogCQl9KQpAQCAtMTAyNDEsNyArMTAxMzYsNiBA
QCBmdW5jIGFkZEV4cG9ydEtleWluZ01hdGVyaWFsVGVzdHMoKSB7CiAJCQljb25maWc6IENvbmZp
Z3sKIAkJCQlNYXhWZXJzaW9uOiB2ZXJzLnZlcnNpb24sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50
OiAgICAgICAgIHZlcnMudGxzMTNWYXJpYW50LAogCQkJZXhwb3J0S2V5aW5nTWF0ZXJpYWw6IDEs
CiAJCQlleHBvcnRMYWJlbDogICAgICAgICAgImxhYmVsIiwKIAkJCWV4cG9ydENvbnRleHQ6ICAg
ICAgICAiY29udGV4dCIsCkBAIC0xMDI1OCwxMSArMTAxNTIsMTAgQEAgZnVuYyBhZGRFeHBvcnRL
ZXlpbmdNYXRlcmlhbFRlc3RzKCkgewogCQkJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKIAkJ
CQl9LAogCQkJCXJlc3VtZVNlc3Npb246IHRydWUsCi0JCQkJdGxzMTNWYXJpYW50OiAgdmVycy50
bHMxM1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCQkiLWVuYWJsZS1lYXJseS1k
YXRhIiwKIAkJCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAotCQkJCQki
LWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJCQkJCSItb24tcmVzdW1lLWV4cGVjdC1hY2Nl
cHQtZWFybHktZGF0YSIsCiAJCQkJCSItb24tcmVzdW1lLWV4cG9ydC1rZXlpbmctbWF0ZXJpYWwi
LCAiMTAyNCIsCiAJCQkJCSItb24tcmVzdW1lLWV4cG9ydC1sYWJlbCIsICJsYWJlbCIsCiAJCQkJ
CSItb24tcmVzdW1lLWV4cG9ydC1jb250ZXh0IiwgImNvbnRleHQiLApAQCAtMTAyNzEsMTExICsx
MDE2NCw2IEBAIGZ1bmMgYWRkRXhwb3J0S2V5aW5nTWF0ZXJpYWxUZXN0cygpIHsKIAkJCQlleHBl
Y3RlZEVycm9yOiAiOkhBTkRTSEFLRV9OT1RfQ09NUExFVEU6IiwKIAkJCX0pCiAKLQkJCS8vIFRl
c3QgdGhlIGVhcmx5IGV4cG9ydGVyIHdvcmtzIHdoaWxlIHRoZSBjbGllbnQgaXMKLQkJCS8vIHNl
bmRpbmcgMC1SVFQgZGF0YS4gVGhpcyBkYXRhIGFycml2ZXMgZHVyaW5nIHRoZQotCQkJLy8gc2Vy
dmVyIGhhbmRzaGFrZSwgc28gd2UgdGVzdCBpdCB3aXRoIFByb3RvY29sQnVncy4KLQkJCXRlc3RD
YXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJCW5hbWU6ICJFeHBvcnRFYXJs
eUtleWluZ01hdGVyaWFsLUNsaWVudC1JbkVhcmx5RGF0YS0iICsgdmVycy5uYW1lLAotCQkJCWNv
bmZpZzogQ29uZmlnewotCQkJCQlNYXhWZXJzaW9uOiAgICAgICB2ZXJzLnZlcnNpb24sCi0JCQkJ
CU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAotCQkJCX0sCi0JCQkJcmVzdW1lQ29uZmlnOiAmQ29u
ZmlnewotCQkJCQlNYXhWZXJzaW9uOiAgICAgICB2ZXJzLnZlcnNpb24sCi0JCQkJCU1heEVhcmx5
RGF0YVNpemU6IDE2Mzg0LAotCQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCQlFeHBlY3RF
YXJseUtleWluZ01hdGVyaWFsOiAxMDI0LAotCQkJCQkJRXhwZWN0RWFybHlLZXlpbmdMYWJlbDog
ICAgImxhYmVsIiwKLQkJCQkJCUV4cGVjdEVhcmx5S2V5aW5nQ29udGV4dDogICJjb250ZXh0IiwK
LQkJCQkJfSwKLQkJCQl9LAotCQkJCXJlc3VtZVNlc3Npb246IHRydWUsCi0JCQkJdGxzMTNWYXJp
YW50OiAgdmVycy50bHMxM1ZhcmlhbnQsCi0JCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCQkiLWVu
YWJsZS1lYXJseS1kYXRhIiwKLQkJCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRh
dGEiLAotCQkJCQkiLWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCi0JCQkJCSItb24tcmVzdW1l
LWV4cG9ydC1lYXJseS1rZXlpbmctbWF0ZXJpYWwiLCAiMTAyNCIsCi0JCQkJCSItb24tcmVzdW1l
LWV4cG9ydC1sYWJlbCIsICJsYWJlbCIsCi0JCQkJCSItb24tcmVzdW1lLWV4cG9ydC1jb250ZXh0
IiwgImNvbnRleHQiLAotCQkJCX0sCi0JCQl9KQotCi0JCQkvLyBUZXN0IHRoZSBlYXJseSBleHBv
cnRlciBzdGlsbCB3b3JrcyBvbiB0aGUgY2xpZW50Ci0JCQkvLyBhZnRlciB0aGUgaGFuZHNoYWtl
IGlzIGNvbmZpcm1lZC4gVGhpcyBhcnJpdmVzIGFmdGVyCi0JCQkvLyB0aGUgc2VydmVyIGhhbmRz
aGFrZSwgc28gdGhlIG5vcm1hbCBob29rcyB3b3JrLgotCQkJdGVzdENhc2VzID0gYXBwZW5kKHRl
c3RDYXNlcywgdGVzdENhc2V7Ci0JCQkJbmFtZTogIkV4cG9ydEVhcmx5S2V5aW5nTWF0ZXJpYWwt
Q2xpZW50LUVhcmx5RGF0YUFjY2VwdC0iICsgdmVycy5uYW1lLAotCQkJCWNvbmZpZzogQ29uZmln
ewotCQkJCQlNYXhWZXJzaW9uOiAgICAgICB2ZXJzLnZlcnNpb24sCi0JCQkJCU1heEVhcmx5RGF0
YVNpemU6IDE2Mzg0LAotCQkJCX0sCi0JCQkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewotCQkJCQlN
YXhWZXJzaW9uOiAgICAgICB2ZXJzLnZlcnNpb24sCi0JCQkJCU1heEVhcmx5RGF0YVNpemU6IDE2
Mzg0LAotCQkJCX0sCi0JCQkJcmVzdW1lU2Vzc2lvbjogICAgICAgICAgICAgdHJ1ZSwKLQkJCQl0
bHMxM1ZhcmlhbnQ6ICAgICAgICAgICAgICB2ZXJzLnRsczEzVmFyaWFudCwKLQkJCQlleHBvcnRF
YXJseUtleWluZ01hdGVyaWFsOiAxMDI0LAotCQkJCWV4cG9ydExhYmVsOiAgICAgICAgICAgICAg
ICJsYWJlbCIsCi0JCQkJZXhwb3J0Q29udGV4dDogICAgICAgICAgICAgImNvbnRleHQiLAotCQkJ
CWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCi0JCQkJCSItZXhw
ZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKLQkJCQkJIi1leHBlY3QtYWNjZXB0LWVh
cmx5LWRhdGEiLAotCQkJCQkvLyBIYW5kc2hha2UgdHdpY2Ugb24gdGhlIGNsaWVudCB0byBmb3Jj
ZQotCQkJCQkvLyBoYW5kc2hha2UgY29uZmlybWF0aW9uLgotCQkJCQkiLWhhbmRzaGFrZS10d2lj
ZSIsCi0JCQkJfSwKLQkJCX0pCi0KLQkJCS8vIFRlc3QgdGhlIGVhcmx5IGV4cG9ydGVyIGRvZXMg
bm90IHdvcmsgb24gdGhlIGNsaWVudAotCQkJLy8gaWYgMC1SVFQgd2FzIG5vdCBvZmZlcmVkLgot
CQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQkJbmFtZTogIk5v
RXhwb3J0RWFybHlLZXlpbmdNYXRlcmlhbC1DbGllbnQtSW5pdGlhbC0iICsgdmVycy5uYW1lLAot
CQkJCWNvbmZpZzogQ29uZmlnewotCQkJCQlNYXhWZXJzaW9uOiB2ZXJzLnZlcnNpb24sCi0JCQkJ
fSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICB2ZXJzLnRsczEzVmFyaWFudCwKLQkJCQlmbGFnczogICAg
ICAgICBbXXN0cmluZ3siLWV4cG9ydC1lYXJseS1rZXlpbmctbWF0ZXJpYWwiLCAiMTAyNCJ9LAot
CQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQkJZXhwZWN0ZWRFcnJvcjogIjpFQVJMWV9EQVRB
X05PVF9JTl9VU0U6IiwKLQkJCX0pCi0JCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKLQkJCQluYW1lOiAiTm9FeHBvcnRFYXJseUtleWluZ01hdGVyaWFsLUNsaWVudC1S
ZXN1bWUtIiArIHZlcnMubmFtZSwKLQkJCQljb25maWc6IENvbmZpZ3sKLQkJCQkJTWF4VmVyc2lv
bjogdmVycy52ZXJzaW9uLAotCQkJCX0sCi0JCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJCQl0
bHMxM1ZhcmlhbnQ6ICB2ZXJzLnRsczEzVmFyaWFudCwKLQkJCQlmbGFnczogICAgICAgICBbXXN0
cmluZ3siLW9uLXJlc3VtZS1leHBvcnQtZWFybHkta2V5aW5nLW1hdGVyaWFsIiwgIjEwMjQifSwK
LQkJCQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJCWV4cGVjdGVkRXJyb3I6ICI6RUFSTFlfREFU
QV9OT1RfSU5fVVNFOiIsCi0JCQl9KQotCi0JCQkvLyBUZXN0IHRoZSBlYXJseSBleHBvcnRlciBk
b2VzIG5vdCB3b3JrIG9uIHRoZSBjbGllbnQKLQkJCS8vIGFmdGVyIGEgMC1SVFQgcmVqZWN0Lgot
CQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQkJbmFtZTogIk5v
RXhwb3J0RWFybHlLZXlpbmdNYXRlcmlhbC1DbGllbnQtRWFybHlEYXRhUmVqZWN0LSIgKyB2ZXJz
Lm5hbWUsCi0JCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJCU1heFZlcnNpb246ICAgICAgIHZlcnMu
dmVyc2lvbiwKLQkJCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCi0JCQkJCUJ1Z3M6IFByb3Rv
Y29sQnVnc3sKLQkJCQkJCUFsd2F5c1JlamVjdEVhcmx5RGF0YTogdHJ1ZSwKLQkJCQkJfSwKLQkJ
CQl9LAotCQkJCXJlc3VtZVNlc3Npb246IHRydWUsCi0JCQkJdGxzMTNWYXJpYW50OiAgdmVycy50
bHMxM1ZhcmlhbnQsCi0JCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCQkiLWVuYWJsZS1lYXJseS1k
YXRhIiwKLQkJCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAotCQkJCQki
LWV4cGVjdC1yZWplY3QtZWFybHktZGF0YSIsCi0JCQkJCSItb24tcmV0cnktZXhwb3J0LWVhcmx5
LWtleWluZy1tYXRlcmlhbCIsICIxMDI0IiwKLQkJCQl9LAotCQkJCXNob3VsZEZhaWw6ICAgIHRy
dWUsCi0JCQkJZXhwZWN0ZWRFcnJvcjogIjpFQVJMWV9EQVRBX05PVF9JTl9VU0U6IiwKLQkJCX0p
Ci0KIAkJCS8vIFRlc3QgdGhlIG5vcm1hbCBleHBvcnRlciBvbiB0aGUgc2VydmVyIGluIGhhbGYt
UlRULgogCQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CiAJCQkJdGVz
dFR5cGU6IHNlcnZlclRlc3QsCkBAIC0xMDM4Nyw3ICsxMDE3NSw2IEBAIGZ1bmMgYWRkRXhwb3J0
S2V5aW5nTWF0ZXJpYWxUZXN0cygpIHsKIAkJCQkJCUV4cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiB0
cnVlLAogCQkJCQl9LAogCQkJCX0sCi0JCQkJdGxzMTNWYXJpYW50OiAgICAgICAgIHZlcnMudGxz
MTNWYXJpYW50LAogCQkJCXJlc3VtZVNlc3Npb246ICAgICAgICB0cnVlLAogCQkJCWV4cG9ydEtl
eWluZ01hdGVyaWFsOiAxMDI0LAogCQkJCWV4cG9ydExhYmVsOiAgICAgICAgICAibGFiZWwiLApA
QCAtMTAzOTUsODAgKzEwMTgyLDYgQEAgZnVuYyBhZGRFeHBvcnRLZXlpbmdNYXRlcmlhbFRlc3Rz
KCkgewogCQkJCXVzZUV4cG9ydENvbnRleHQ6ICAgICB0cnVlLAogCQkJCWZsYWdzOiAgICAgICAg
ICAgICAgICBbXXN0cmluZ3siLWVuYWJsZS1lYXJseS1kYXRhIn0sCiAJCQl9KQotCi0JCQkvLyBU
ZXN0IHRoZSBlYXJseSBleHBvcnRlciB3b3JrcyBvbiB0aGUgc2VydmVyIGluIGhhbGYtUlRULgot
CQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQkJdGVzdFR5cGU6
IHNlcnZlclRlc3QsCi0JCQkJbmFtZTogICAgICJFeHBvcnRFYXJseUtleWluZ01hdGVyaWFsLVNl
cnZlci1IYWxmUlRULSIgKyB2ZXJzLm5hbWUsCi0JCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJCU1h
eFZlcnNpb246IHZlcnMudmVyc2lvbiwKLQkJCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQkJ
U2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtdW11ieXRle30sCi0JCQkJCQlFeHBlY3RFYXJseURh
dGFBY2NlcHRlZDogdHJ1ZSwKLQkJCQkJfSwKLQkJCQl9LAotCQkJCXRsczEzVmFyaWFudDogICAg
ICAgICAgICAgIHZlcnMudGxzMTNWYXJpYW50LAotCQkJCXJlc3VtZVNlc3Npb246ICAgICAgICAg
ICAgIHRydWUsCi0JCQkJZXhwb3J0RWFybHlLZXlpbmdNYXRlcmlhbDogMTAyNCwKLQkJCQlleHBv
cnRMYWJlbDogICAgICAgICAgICAgICAibGFiZWwiLAotCQkJCWV4cG9ydENvbnRleHQ6ICAgICAg
ICAgICAgICJjb250ZXh0IiwKLQkJCQlmbGFnczogICAgICAgICAgICAgICAgICAgICBbXXN0cmlu
Z3siLWVuYWJsZS1lYXJseS1kYXRhIn0sCi0JCQl9KQotCi0JCQkvLyBUZXN0IHRoZSBlYXJseSBl
eHBvcnRlciBkb2VzIG5vdCB3b3JrIG9uIHRoZSBzZXJ2ZXIKLQkJCS8vIGlmIDAtUlRUIHdhcyBu
b3Qgb2ZmZXJlZC4KLQkJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewot
CQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJCW5hbWU6ICAgICAiTm9FeHBvcnRFYXJseUtl
eWluZ01hdGVyaWFsLVNlcnZlci1Jbml0aWFsLSIgKyB2ZXJzLm5hbWUsCi0JCQkJY29uZmlnOiBD
b25maWd7Ci0JCQkJCU1heFZlcnNpb246IHZlcnMudmVyc2lvbiwKLQkJCQl9LAotCQkJCXRsczEz
VmFyaWFudDogIHZlcnMudGxzMTNWYXJpYW50LAotCQkJCWZsYWdzOiAgICAgICAgIFtdc3RyaW5n
eyItZXhwb3J0LWVhcmx5LWtleWluZy1tYXRlcmlhbCIsICIxMDI0In0sCi0JCQkJc2hvdWxkRmFp
bDogICAgdHJ1ZSwKLQkJCQlleHBlY3RlZEVycm9yOiAiOkVBUkxZX0RBVEFfTk9UX0lOX1VTRToi
LAotCQkJfSkKLQkJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJ
CXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJCW5hbWU6ICAgICAiTm9FeHBvcnRFYXJseUtleWlu
Z01hdGVyaWFsLVNlcnZlci1SZXN1bWUtIiArIHZlcnMubmFtZSwKLQkJCQljb25maWc6IENvbmZp
Z3sKLQkJCQkJTWF4VmVyc2lvbjogdmVycy52ZXJzaW9uLAotCQkJCX0sCi0JCQkJcmVzdW1lU2Vz
c2lvbjogdHJ1ZSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICB2ZXJzLnRsczEzVmFyaWFudCwKLQkJCQlm
bGFnczogICAgICAgICBbXXN0cmluZ3siLW9uLXJlc3VtZS1leHBvcnQtZWFybHkta2V5aW5nLW1h
dGVyaWFsIiwgIjEwMjQifSwKLQkJCQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJCWV4cGVjdGVk
RXJyb3I6ICI6RUFSTFlfREFUQV9OT1RfSU5fVVNFOiIsCi0JCQl9KQotCQl9IGVsc2UgewotCQkJ
Ly8gVGVzdCB0aGUgZWFybHkgZXhwb3J0ZXIgZmFpbHMgYmVmb3JlIFRMUyAxLjMuCi0JCQl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCQluYW1lOiAiTm9FeHBvcnRF
YXJseUtleWluZ01hdGVyaWFsLUNsaWVudC0iICsgdmVycy5uYW1lLAotCQkJCWNvbmZpZzogQ29u
ZmlnewotCQkJCQlNYXhWZXJzaW9uOiB2ZXJzLnZlcnNpb24sCi0JCQkJfSwKLQkJCQlyZXN1bWVT
ZXNzaW9uOiAgICAgICAgICAgICB0cnVlLAotCQkJCXRsczEzVmFyaWFudDogICAgICAgICAgICAg
IHZlcnMudGxzMTNWYXJpYW50LAotCQkJCWV4cG9ydEVhcmx5S2V5aW5nTWF0ZXJpYWw6IDEwMjQs
Ci0JCQkJZXhwb3J0TGFiZWw6ICAgICAgICAgICAgICAgImxhYmVsIiwKLQkJCQlleHBvcnRDb250
ZXh0OiAgICAgICAgICAgICAiY29udGV4dCIsCi0JCQkJc2hvdWxkRmFpbDogICAgICAgICAgICAg
ICAgdHJ1ZSwKLQkJCQlleHBlY3RlZEVycm9yOiAgICAgICAgICAgICAiOldST05HX1NTTF9WRVJT
SU9OOiIsCi0JCQl9KQotCQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7
Ci0JCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQkJbmFtZTogICAgICJOb0V4cG9ydEVhcmx5
S2V5aW5nTWF0ZXJpYWwtU2VydmVyLSIgKyB2ZXJzLm5hbWUsCi0JCQkJY29uZmlnOiBDb25maWd7
Ci0JCQkJCU1heFZlcnNpb246IHZlcnMudmVyc2lvbiwKLQkJCQl9LAotCQkJCXJlc3VtZVNlc3Np
b246ICAgICAgICAgICAgIHRydWUsCi0JCQkJdGxzMTNWYXJpYW50OiAgICAgICAgICAgICAgdmVy
cy50bHMxM1ZhcmlhbnQsCi0JCQkJZXhwb3J0RWFybHlLZXlpbmdNYXRlcmlhbDogMTAyNCwKLQkJ
CQlleHBvcnRMYWJlbDogICAgICAgICAgICAgICAibGFiZWwiLAotCQkJCWV4cG9ydENvbnRleHQ6
ICAgICAgICAgICAgICJjb250ZXh0IiwKLQkJCQlzaG91bGRGYWlsOiAgICAgICAgICAgICAgICB0
cnVlLAotCQkJCWV4cGVjdGVkRXJyb3I6ICAgICAgICAgICAgICI6V1JPTkdfU1NMX1ZFUlNJT046
IiwKLQkJCX0pCiAJCX0KIAl9CiAKQEAgLTEwNTE1LDYgKzEwMjI4LDI0IEBAIGZ1bmMgYWRkRXhw
b3J0S2V5aW5nTWF0ZXJpYWxUZXN0cygpIHsKIAl9KQogfQogCitmdW5jIGFkZEV4cG9ydFRyYWZm
aWNTZWNyZXRzVGVzdHMoKSB7CisJZm9yIF8sIGNpcGhlclN1aXRlIDo9IHJhbmdlIFtddGVzdENp
cGhlclN1aXRleworCQkvLyBUZXN0IGEgU0hBLTI1NiBhbmQgU0hBLTM4NCBiYXNlZCBjaXBoZXIg
c3VpdGUuCisJCXsiQUVBRC1BRVMxMjgtR0NNLVNIQTI1NiIsIFRMU19BRVNfMTI4X0dDTV9TSEEy
NTZ9LAorCQl7IkFFQUQtQUVTMjU2LUdDTS1TSEEzODQiLCBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0
fSwKKwl9IHsKKworCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJ
CW5hbWU6ICJFeHBvcnRUcmFmZmljU2VjcmV0cy0iICsgY2lwaGVyU3VpdGUubmFtZSwKKwkJCWNv
bmZpZzogQ29uZmlneworCQkJCU1pblZlcnNpb246ICAgVmVyc2lvblRMUzEzLAorCQkJCUNpcGhl
clN1aXRlczogW111aW50MTZ7Y2lwaGVyU3VpdGUuaWR9LAorCQkJfSwKKwkJCWV4cG9ydFRyYWZm
aWNTZWNyZXRzOiB0cnVlLAorCQl9KQorCX0KK30KKwogZnVuYyBhZGRUTFNVbmlxdWVUZXN0cygp
IHsKIAlmb3IgXywgaXNDbGllbnQgOj0gcmFuZ2UgW11ib29se2ZhbHNlLCB0cnVlfSB7CiAJCWZv
ciBfLCBpc1Jlc3VtcHRpb24gOj0gcmFuZ2UgW11ib29se2ZhbHNlLCB0cnVlfSB7CkBAIC0xMDcw
NSwxMyArMTA0MzYsMjMgQEAgdmFyIHRlc3RDdXJ2ZXMgPSBbXXN0cnVjdCB7CiAJeyJQLTM4NCIs
IEN1cnZlUDM4NH0sCiAJeyJQLTUyMSIsIEN1cnZlUDUyMX0sCiAJeyJYMjU1MTkiLCBDdXJ2ZVgy
NTUxOX0sCisJeyJDRUNQUTIiLCBDdXJ2ZUNFQ1BRMn0sCisJeyJDRUNQUTJiIiwgQ3VydmVDRUNQ
UTJifSwKIH0KIAogY29uc3QgYm9ndXNDdXJ2ZSA9IDB4MTIzNAogCitmdW5jIGlzUHFHcm91cChy
IEN1cnZlSUQpIGJvb2wgeworCXJldHVybiByID09IEN1cnZlQ0VDUFEyIHx8IHIgPT0gQ3VydmVD
RUNQUTJiCit9CisKIGZ1bmMgYWRkQ3VydmVUZXN0cygpIHsKIAlmb3IgXywgY3VydmUgOj0gcmFu
Z2UgdGVzdEN1cnZlcyB7CiAJCWZvciBfLCB2ZXIgOj0gcmFuZ2UgdGxzVmVyc2lvbnMgeworCQkJ
aWYgaXNQcUdyb3VwKGN1cnZlLmlkKSAmJiB2ZXIudmVyc2lvbiA8IFZlcnNpb25UTFMxMyB7CisJ
CQkJY29udGludWUKKwkJCX0KKwogCQkJc3VmZml4IDo9IGN1cnZlLm5hbWUgKyAiLSIgKyB2ZXIu
bmFtZQogCiAJCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKQEAgLTEw
NzIxLDExICsxMDQ2MiwxMCBAQCBmdW5jIGFkZEN1cnZlVGVzdHMoKSB7CiAJCQkJCUNpcGhlclN1
aXRlczogW111aW50MTZ7CiAJCQkJCQlUTFNfRUNESEVfUlNBX1dJVEhfQUVTXzEyOF9HQ01fU0hB
MjU2LAogCQkJCQkJVExTX0VDREhFX1JTQV9XSVRIX0FFU18xMjhfQ0JDX1NIQSwKLQkJCQkJCVRM
U19BRVNfMTI4X0dDTV9TSEEyNTYsCisJCQkJCQlUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0LAogCQkJ
CQl9LAogCQkJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Y3VydmUuaWR9LAogCQkJCX0s
Ci0JCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAogCQkJCWZsYWdzOiBbXXN0cmlu
Z3sKIAkJCQkJIi1lbmFibGUtYWxsLWN1cnZlcyIsCiAJCQkJCSItZXhwZWN0LWN1cnZlLWlkIiwg
c3RyY29udi5JdG9hKGludChjdXJ2ZS5pZCkpLApAQCAtMTA3NDAsMTEgKzEwNDgwLDEwIEBAIGZ1
bmMgYWRkQ3VydmVUZXN0cygpIHsKIAkJCQkJQ2lwaGVyU3VpdGVzOiBbXXVpbnQxNnsKIAkJCQkJ
CVRMU19FQ0RIRV9SU0FfV0lUSF9BRVNfMTI4X0dDTV9TSEEyNTYsCiAJCQkJCQlUTFNfRUNESEVf
UlNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBLAotCQkJCQkJVExTX0FFU18xMjhfR0NNX1NIQTI1NiwK
KwkJCQkJCVRMU19BRVNfMjU2X0dDTV9TSEEzODQsCiAJCQkJCX0sCiAJCQkJCUN1cnZlUHJlZmVy
ZW5jZXM6IFtdQ3VydmVJRHtjdXJ2ZS5pZH0sCiAJCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6IHZl
ci50bHMxM1ZhcmlhbnQsCiAJCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCQkiLWVuYWJsZS1hbGwt
Y3VydmVzIiwKIAkJCQkJIi1leHBlY3QtY3VydmUtaWQiLCBzdHJjb252Lkl0b2EoaW50KGN1cnZl
LmlkKSksCkBAIC0xMDc1Miw3ICsxMDQ5MSw3IEBAIGZ1bmMgYWRkQ3VydmVUZXN0cygpIHsKIAkJ
CQlleHBlY3RlZEN1cnZlSUQ6IGN1cnZlLmlkLAogCQkJfSkKIAotCQkJaWYgY3VydmUuaWQgIT0g
Q3VydmVYMjU1MTkgeworCQkJaWYgY3VydmUuaWQgIT0gQ3VydmVYMjU1MTkgJiYgIWlzUHFHcm91
cChjdXJ2ZS5pZCkgewogCQkJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNl
ewogCQkJCQluYW1lOiAiQ3VydmVUZXN0LUNsaWVudC1Db21wcmVzc2VkLSIgKyBzdWZmaXgsCiAJ
CQkJCWNvbmZpZzogQ29uZmlnewpAQCAtMTA3NjAsMTQgKzEwNDk5LDEzIEBAIGZ1bmMgYWRkQ3Vy
dmVUZXN0cygpIHsKIAkJCQkJCUNpcGhlclN1aXRlczogW111aW50MTZ7CiAJCQkJCQkJVExTX0VD
REhFX1JTQV9XSVRIX0FFU18xMjhfR0NNX1NIQTI1NiwKIAkJCQkJCQlUTFNfRUNESEVfUlNBX1dJ
VEhfQUVTXzEyOF9DQkNfU0hBLAotCQkJCQkJCVRMU19BRVNfMTI4X0dDTV9TSEEyNTYsCisJCQkJ
CQkJVExTX0FFU18yNTZfR0NNX1NIQTM4NCwKIAkJCQkJCX0sCiAJCQkJCQlDdXJ2ZVByZWZlcmVu
Y2VzOiBbXUN1cnZlSUR7Y3VydmUuaWR9LAogCQkJCQkJQnVnczogUHJvdG9jb2xCdWdzewogCQkJ
CQkJCVNlbmRDb21wcmVzc2VkQ29vcmRpbmF0ZXM6IHRydWUsCiAJCQkJCQl9LAogCQkJCQl9LAot
CQkJCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJCQlmbGFnczogICAgICAg
ICBbXXN0cmluZ3siLWVuYWJsZS1hbGwtY3VydmVzIn0sCiAJCQkJCXNob3VsZEZhaWw6ICAgIHRy
dWUsCiAJCQkJCWV4cGVjdGVkRXJyb3I6ICI6QkFEX0VDUE9JTlQ6IiwKQEAgLTEwNzgwLDE0ICsx
MDUxOCwxMyBAQCBmdW5jIGFkZEN1cnZlVGVzdHMoKSB7CiAJCQkJCQlDaXBoZXJTdWl0ZXM6IFtd
dWludDE2ewogCQkJCQkJCVRMU19FQ0RIRV9SU0FfV0lUSF9BRVNfMTI4X0dDTV9TSEEyNTYsCiAJ
CQkJCQkJVExTX0VDREhFX1JTQV9XSVRIX0FFU18xMjhfQ0JDX1NIQSwKLQkJCQkJCQlUTFNfQUVT
XzEyOF9HQ01fU0hBMjU2LAorCQkJCQkJCVRMU19BRVNfMjU2X0dDTV9TSEEzODQsCiAJCQkJCQl9
LAogCQkJCQkJQ3VydmVQcmVmZXJlbmNlczogW11DdXJ2ZUlEe2N1cnZlLmlkfSwKIAkJCQkJCUJ1
Z3M6IFByb3RvY29sQnVnc3sKIAkJCQkJCQlTZW5kQ29tcHJlc3NlZENvb3JkaW5hdGVzOiB0cnVl
LAogCQkJCQkJfSwKIAkJCQkJfSwKLQkJCQkJdGxzMTNWYXJpYW50OiAgdmVyLnRsczEzVmFyaWFu
dCwKIAkJCQkJZmxhZ3M6ICAgICAgICAgW11zdHJpbmd7Ii1lbmFibGUtYWxsLWN1cnZlcyJ9LAog
CQkJCQlzaG91bGRGYWlsOiAgICB0cnVlLAogCQkJCQlleHBlY3RlZEVycm9yOiAiOkJBRF9FQ1BP
SU5UOiIsCkBAIC0xMDg5Niw3ICsxMDYzMyw3IEBAIGZ1bmMgYWRkQ3VydmVUZXN0cygpIHsKIAkJ
CQlJZ25vcmVQZWVyQ3VydmVQcmVmZXJlbmNlczogdHJ1ZSwKIAkJCX0sCiAJCX0sCi0JCWZsYWdz
OiAgICAgICAgIFtdc3RyaW5neyItcDM4NC1vbmx5In0sCisJCWZsYWdzOiAgICAgICAgIFtdc3Ry
aW5neyItY3VydmVzIiwgc3RyY29udi5JdG9hKGludChDdXJ2ZVAzODQpKX0sCiAJCXNob3VsZEZh
aWw6ICAgIHRydWUsCiAJCWV4cGVjdGVkRXJyb3I6ICI6V1JPTkdfQ1VSVkU6IiwKIAl9KQpAQCAt
MTA5MTIsNyArMTA2NDksNyBAQCBmdW5jIGFkZEN1cnZlVGVzdHMoKSB7CiAJCQkJU2VuZEN1cnZl
OiBDdXJ2ZVAyNTYsCiAJCQl9LAogCQl9LAotCQlmbGFnczogICAgICAgICBbXXN0cmluZ3siLXAz
ODQtb25seSJ9LAorCQlmbGFnczogICAgICAgICBbXXN0cmluZ3siLWN1cnZlcyIsIHN0cmNvbnYu
SXRvYShpbnQoQ3VydmVQMzg0KSl9LAogCQlzaG91bGRGYWlsOiAgICB0cnVlLAogCQlleHBlY3Rl
ZEVycm9yOiAiOldST05HX0NVUlZFOiIsCiAJfSkKQEAgLTExMTYzLDYgKzEwOTAwLDIxOCBAQCBm
dW5jIGFkZEN1cnZlVGVzdHMoKSB7CiAJCQl9LAogCQl9LAogCX0pCisKKwkvLyBDRUNQUTIgc2hv
dWxkIG5vdCBiZSBvZmZlcmVkIGJ5IGEgVExTIDwgMS4zIGNsaWVudC4KKwl0ZXN0Q2FzZXMgPSBh
cHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJbmFtZTogIkNFQ1BRMk5vdEluVExTMTIiLAor
CQljb25maWc6IENvbmZpZ3sKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlGYWlsSWZDRUNQ
UTJPZmZlcmVkOiB0cnVlLAorCQkJfSwKKwkJfSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1t
YXgtdmVyc2lvbiIsIHN0cmNvbnYuSXRvYShWZXJzaW9uVExTMTIpLAorCQkJIi1jdXJ2ZXMiLCBz
dHJjb252Lkl0b2EoaW50KEN1cnZlQ0VDUFEyKSksCisJCQkiLWN1cnZlcyIsIHN0cmNvbnYuSXRv
YShpbnQoQ3VydmVYMjU1MTkpKSwKKwkJfSwKKwl9KQorCisJLy8gQ0VDUFEyYiBzaG91bGQgbm90
IGJlIG9mZmVyZWQgYnkgYSBUTFMgPCAxLjMgY2xpZW50LgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0
ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiQ0VDUFEyYk5vdEluVExTMTIiLAorCQljb25m
aWc6IENvbmZpZ3sKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlGYWlsSWZDRUNQUTJPZmZl
cmVkOiB0cnVlLAorCQkJfSwKKwkJfSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1tYXgtdmVy
c2lvbiIsIHN0cmNvbnYuSXRvYShWZXJzaW9uVExTMTIpLAorCQkJIi1jdXJ2ZXMiLCBzdHJjb252
Lkl0b2EoaW50KEN1cnZlQ0VDUFEyYikpLAorCQkJIi1jdXJ2ZXMiLCBzdHJjb252Lkl0b2EoaW50
KEN1cnZlWDI1NTE5KSksCisJCX0sCisJfSkKKworCS8vIENFQ1BRMiBzaG91bGQgbm90IGNyYXNo
IGEgVExTIDwgMS4zIGNsaWVudCBpZiB0aGUgc2VydmVyIG1pc3Rha2VubHkKKwkvLyBzZWxlY3Rz
IGl0LgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAi
Q0VDUFEyTm90QWNjZXB0ZWRCeVRMUzEyQ2xpZW50IiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEN1cnZlOiBDdXJ2ZUNFQ1BRMiwKKwkJCX0sCisJ
CX0sCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItbWF4LXZlcnNpb24iLCBzdHJjb252Lkl0b2Eo
VmVyc2lvblRMUzEyKSwKKwkJCSItY3VydmVzIiwgc3RyY29udi5JdG9hKGludChDdXJ2ZUNFQ1BR
MikpLAorCQkJIi1jdXJ2ZXMiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlWDI1NTE5KSksCisJCX0s
CisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6V1JPTkdfQ1VSVkU6
IiwKKwl9KQorCisJLy8gQ0VDUFEyYiBzaG91bGQgbm90IGNyYXNoIGEgVExTIDwgMS4zIGNsaWVu
dCBpZiB0aGUgc2VydmVyIG1pc3Rha2VubHkKKwkvLyBzZWxlY3RzIGl0LgorCXRlc3RDYXNlcyA9
IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiQ0VDUFEyYk5vdEFjY2VwdGVk
QnlUTFMxMkNsaWVudCIsCisJCWNvbmZpZzogQ29uZmlneworCQkJQnVnczogUHJvdG9jb2xCdWdz
eworCQkJCVNlbmRDdXJ2ZTogQ3VydmVDRUNQUTJiLAorCQkJfSwKKwkJfSwKKwkJZmxhZ3M6IFtd
c3RyaW5neworCQkJIi1tYXgtdmVyc2lvbiIsIHN0cmNvbnYuSXRvYShWZXJzaW9uVExTMTIpLAor
CQkJIi1jdXJ2ZXMiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlQ0VDUFEyYikpLAorCQkJIi1jdXJ2
ZXMiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlWDI1NTE5KSksCisJCX0sCisJCXNob3VsZEZhaWw6
ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6V1JPTkdfQ1VSVkU6IiwKKwl9KQorCisJLy8g
Q0VDUFEyIHNob3VsZCBub3QgYmUgb2ZmZXJlZCBieSBkZWZhdWx0IGFzIGEgY2xpZW50LgorCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiQ0VDUFEyTm90
RW5hYmxlZEJ5RGVmYXVsdEluQ2xpZW50cyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWluVmVy
c2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUZhaWxJZkNF
Q1BRMk9mZmVyZWQ6IHRydWUsCisJCQl9LAorCQl9LAorCX0pCisKKwkvLyBDRUNQUTJiIHNob3Vs
ZCBub3QgYmUgb2ZmZXJlZCBieSBkZWZhdWx0IGFzIGEgY2xpZW50LgorCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiQ0VDUFEyYk5vdEVuYWJsZWRCeURl
ZmF1bHRJbkNsaWVudHMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246IFZlcnNp
b25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlGYWlsSWZDRUNQUTJPZmZlcmVk
OiB0cnVlLAorCQkJfSwKKwkJfSwKKwl9KQorCisJLy8gSWYgQ0VDUFEyIGlzIG9mZmVyZWQsIGJv
dGggWDI1NTE5IGFuZCBDRUNQUTIgc2hvdWxkIGhhdmUgYSBrZXktc2hhcmUuCisJdGVzdENhc2Vz
ID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCW5hbWU6ICJOb3RKdXN0Q0VDUFEyS2V5
U2hhcmUiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246IFZlcnNpb25UTFMxMywK
KwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlFeHBlY3RlZEtleVNoYXJlczogW11DdXJ2ZUlE
e0N1cnZlQ0VDUFEyLCBDdXJ2ZVgyNTUxOX0sCisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJp
bmd7CisJCQkiLWN1cnZlcyIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVDRUNQUTIpKSwKKwkJCSIt
Y3VydmVzIiwgc3RyY29udi5JdG9hKGludChDdXJ2ZVgyNTUxOSkpLAorCQkJIi1leHBlY3QtY3Vy
dmUtaWQiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlQ0VDUFEyKSksCisJCX0sCisJfSkKKworCS8v
IC4uLiBidXQgb25seSBpZiBDRUNQUTIgaXMgbGlzdGVkIGZpcnN0LgorCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiQ0VDUFEyS2V5U2hhcmVOb3RJbmNs
dWRlZFNlY29uZCIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWluVmVyc2lvbjogVmVyc2lvblRM
UzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUV4cGVjdGVkS2V5U2hhcmVzOiBbXUN1
cnZlSUR7Q3VydmVYMjU1MTl9LAorCQkJfSwKKwkJfSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJ
Ii1jdXJ2ZXMiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlWDI1NTE5KSksCisJCQkiLWN1cnZlcyIs
IHN0cmNvbnYuSXRvYShpbnQoQ3VydmVDRUNQUTIpKSwKKwkJCSItZXhwZWN0LWN1cnZlLWlkIiwg
c3RyY29udi5JdG9hKGludChDdXJ2ZVgyNTUxOSkpLAorCQl9LAorCX0pCisKKwkvLyBJZiBDRUNQ
UTJiIGlzIG9mZmVyZWQsIGJvdGggWDI1NTE5IGFuZCBDRUNQUTJiIHNob3VsZCBoYXZlIGEga2V5
LXNoYXJlLgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1l
OiAiTm90SnVzdENFQ1BRMmJLZXlTaGFyZSIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWluVmVy
c2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUV4cGVjdGVk
S2V5U2hhcmVzOiBbXUN1cnZlSUR7Q3VydmVDRUNQUTJiLCBDdXJ2ZVgyNTUxOX0sCisJCQl9LAor
CQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWN1cnZlcyIsIHN0cmNvbnYuSXRvYShpbnQo
Q3VydmVDRUNQUTJiKSksCisJCQkiLWN1cnZlcyIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVYMjU1
MTkpKSwKKwkJCSItZXhwZWN0LWN1cnZlLWlkIiwgc3RyY29udi5JdG9hKGludChDdXJ2ZUNFQ1BR
MmIpKSwKKwkJfSwKKwl9KQorCisJLy8gLi4uIGJ1dCBvbmx5IGlmIENFQ1BRMmIgaXMgbGlzdGVk
IGZpcnN0LgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1l
OiAiQ0VDUFEyYktleVNoYXJlTm90SW5jbHVkZWRTZWNvbmQiLAorCQljb25maWc6IENvbmZpZ3sK
KwkJCU1pblZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJ
CQlFeHBlY3RlZEtleVNoYXJlczogW11DdXJ2ZUlEe0N1cnZlWDI1NTE5fSwKKwkJCX0sCisJCX0s
CisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItY3VydmVzIiwgc3RyY29udi5JdG9hKGludChDdXJ2
ZVgyNTUxOSkpLAorCQkJIi1jdXJ2ZXMiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlQ0VDUFEyYikp
LAorCQkJIi1leHBlY3QtY3VydmUtaWQiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlWDI1NTE5KSks
CisJCX0sCisJfSkKKworCS8vIElmIENFQ1BRMiBpcyB0aGUgb25seSBjb25maWd1cmVkIGN1cnZl
LCB0aGUga2V5IHNoYXJlIGlzIHNlbnQuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywg
dGVzdENhc2V7CisJCW5hbWU6ICJKdXN0Q29uZmlndXJpbmdDRUNQUTJXb3JrcyIsCisJCWNvbmZp
ZzogQ29uZmlneworCQkJTWluVmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9j
b2xCdWdzeworCQkJCUV4cGVjdGVkS2V5U2hhcmVzOiBbXUN1cnZlSUR7Q3VydmVDRUNQUTJ9LAor
CQkJfSwKKwkJfSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1jdXJ2ZXMiLCBzdHJjb252Lkl0
b2EoaW50KEN1cnZlQ0VDUFEyKSksCisJCQkiLWV4cGVjdC1jdXJ2ZS1pZCIsIHN0cmNvbnYuSXRv
YShpbnQoQ3VydmVDRUNQUTIpKSwKKwkJfSwKKwl9KQorCisJLy8gSWYgQ0VDUFEyYiBpcyB0aGUg
b25seSBjb25maWd1cmVkIGN1cnZlLCB0aGUga2V5IHNoYXJlIGlzIHNlbnQuCisJdGVzdENhc2Vz
ID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCW5hbWU6ICJKdXN0Q29uZmlndXJpbmdD
RUNQUTJiV29ya3MiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246IFZlcnNpb25U
TFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlFeHBlY3RlZEtleVNoYXJlczogW11D
dXJ2ZUlEe0N1cnZlQ0VDUFEyYn0sCisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJ
CQkiLWN1cnZlcyIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVDRUNQUTJiKSksCisJCQkiLWV4cGVj
dC1jdXJ2ZS1pZCIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVDRUNQUTJiKSksCisJCX0sCisJfSkK
KworCS8vIEFzIGEgc2VydmVyLCBDRUNQUTIgaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkgZGVmYXVs
dC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6
IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiQ0VDUFEyTm90RW5hYmxlZEJ5RGVmYXVsdEZvckFT
ZXJ2ZXIiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246ICAgICAgIFZlcnNpb25U
TFMxMywKKwkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZUNFQ1BRMiwgQ3VydmVY
MjU1MTl9LAorCQkJRGVmYXVsdEN1cnZlczogICAgW11DdXJ2ZUlEe0N1cnZlQ0VDUFEyfSwKKwkJ
fSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1zZXJ2ZXItcHJlZmVyZW5jZSIsCisJCQkiLWV4
cGVjdC1jdXJ2ZS1pZCIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVYMjU1MTkpKSwKKwkJfSwKKwl9
KQorCisJLy8gQXMgYSBzZXJ2ZXIsIENFQ1BRMmIgaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkgZGVm
YXVsdC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5
cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiQ0VDUFEyYk5vdEVuYWJsZWRCeURlZmF1bHRG
b3JBU2VydmVyIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNaW5WZXJzaW9uOiAgICAgICBWZXJz
aW9uVExTMTMsCisJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVDRUNQUTJiLCBD
dXJ2ZVgyNTUxOX0sCisJCQlEZWZhdWx0Q3VydmVzOiAgICBbXUN1cnZlSUR7Q3VydmVDRUNQUTJi
fSwKKwkJfSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1zZXJ2ZXItcHJlZmVyZW5jZSIsCisJ
CQkiLWV4cGVjdC1jdXJ2ZS1pZCIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVYMjU1MTkpKSwKKwkJ
fSwKKwl9KQogfQogCiBmdW5jIGFkZFRMUzEzUmVjb3JkVGVzdHMoKSB7CkBAIC0xMTM0MSw5ICsx
MTI5MCw5OSBAQCBmdW5jIGFkZFNlc3Npb25UaWNrZXRUZXN0cygpIHsKIAkJfSwKIAl9KQogCisJ
Ly8gVGVzdCB0aGF0IHRpY2tldCBhZ2Ugc2tldyB1cCB0byA2MCBzZWNvbmRzIGluIGVpdGhlciBk
aXJlY3Rpb24gaXMgYWNjZXB0ZWQuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVz
dENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlRMUzEzLVRpY2tl
dEFnZVNrZXctRm9yd2FyZC02MC1BY2NlcHQiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZl
cnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kVGlj
a2V0QWdlOiAgICAgICAgICAgNzAgKiB0aW1lLlNlY29uZCwKKwkJCQlTZW5kRWFybHlEYXRhOiAg
ICAgICAgICAgW11bXWJ5dGV7ezEsIDIsIDMsIDR9fSwKKwkJCQlFeHBlY3RFYXJseURhdGFBY2Nl
cHRlZDogdHJ1ZSwKKwkJCQlFeHBlY3RIYWxmUlRURGF0YTogICAgICAgW11bXWJ5dGV7ezI1NCwg
MjUzLCAyNTIsIDI1MX19LAorCQkJfSwKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKKwkJ
ZmxhZ3M6IFtdc3RyaW5neworCQkJIi1yZXN1bXB0aW9uLWRlbGF5IiwgIjEwIiwKKwkJCSItZXhw
ZWN0LXRpY2tldC1hZ2Utc2tldyIsICI2MCIsCisJCQkvLyAwLVJUVCBpcyBhY2NlcHRlZC4KKwkJ
CSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWFjY2VwdC1lYXJs
eS1kYXRhIiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJhY2Nl
cHQiLAorCQl9LAorCX0pCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7
CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlRMUzEzLVRpY2tldEFnZVNr
ZXctQmFja3dhcmQtNjAtQWNjZXB0IiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9u
OiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZFRpY2tldEFn
ZTogICAgICAgICAgIDEwICogdGltZS5TZWNvbmQsCisJCQkJU2VuZEVhcmx5RGF0YTogICAgICAg
ICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhwZWN0RWFybHlEYXRhQWNjZXB0ZWQ6
IHRydWUsCisJCQkJRXhwZWN0SGFsZlJUVERhdGE6ICAgICAgIFtdW11ieXRle3syNTQsIDI1Mywg
MjUyLCAyNTF9fSwKKwkJCX0sCisJCX0sCisJCXJlc3VtZVNlc3Npb246IHRydWUsCisJCWZsYWdz
OiBbXXN0cmluZ3sKKwkJCSItcmVzdW1wdGlvbi1kZWxheSIsICI3MCIsCisJCQkiLWV4cGVjdC10
aWNrZXQtYWdlLXNrZXciLCAiLTYwIiwKKwkJCS8vIDAtUlRUIGlzIGFjY2VwdGVkLgorCQkJIi1l
bmFibGUtZWFybHktZGF0YSIsCisJCQkiLW9uLXJlc3VtZS1leHBlY3QtYWNjZXB0LWVhcmx5LWRh
dGEiLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgImFjY2VwdCIs
CisJCX0sCisJfSkKKworCS8vIFRlc3QgdGhhdCB0aWNrZXQgYWdlIHNrZXcgYmV5b25kIDYwIHNl
Y29uZHMgaW4gZWl0aGVyIGRpcmVjdGlvbiBpcyByZWplY3RlZC4KKwl0ZXN0Q2FzZXMgPSBhcHBl
bmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6
ICAgICAiVExTMTMtVGlja2V0QWdlU2tldy1Gb3J3YXJkLTYxLVJlamVjdCIsCisJCWNvbmZpZzog
Q29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xC
dWdzeworCQkJCVNlbmRUaWNrZXRBZ2U6ICAgICAgICAgICA3MSAqIHRpbWUuU2Vjb25kLAorCQkJ
CVNlbmRFYXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0ZXt7MSwgMiwgMywgNH19LAorCQkJCUV4
cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiBmYWxzZSwKKwkJCX0sCisJCX0sCisJCXJlc3VtZVNlc3Np
b246IHRydWUsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItcmVzdW1wdGlvbi1kZWxheSIsICIx
MCIsCisJCQkiLWV4cGVjdC10aWNrZXQtYWdlLXNrZXciLCAiNjEiLAorCQkJLy8gMC1SVFQgaXMg
cmVqZWN0ZWQuCisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXJlamVjdC1l
YXJseS1kYXRhIiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJ0
aWNrZXRfYWdlX3NrZXciLAorCQl9LAorCX0pCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNl
cywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlRMUzEz
LVRpY2tldEFnZVNrZXctQmFja3dhcmQtNjEtUmVqZWN0IiwKKwkJY29uZmlnOiBDb25maWd7CisJ
CQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJ
U2VuZFRpY2tldEFnZTogICAgICAgICAgIDEwICogdGltZS5TZWNvbmQsCisJCQkJU2VuZEVhcmx5
RGF0YTogICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhwZWN0RWFybHlE
YXRhQWNjZXB0ZWQ6IGZhbHNlLAorCQkJfSwKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwK
KwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1yZXN1bXB0aW9uLWRlbGF5IiwgIjcxIiwKKwkJCSIt
ZXhwZWN0LXRpY2tldC1hZ2Utc2tldyIsICItNjEiLAorCQkJLy8gMC1SVFQgaXMgcmVqZWN0ZWQu
CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1kYXRh
IiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJ0aWNrZXRfYWdl
X3NrZXciLAorCQl9LAorCX0pCisKIAl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0
Q2FzZXsKIAkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCi0JCW5hbWU6ICAgICAiVExTMTMtU2VuZFRp
Y2tldEVhcmx5RGF0YUluZm8iLAorCQluYW1lOiAgICAgIlRMUzEzLVNlbmRUaWNrZXRFYXJseURh
dGFTdXBwb3J0IiwKIAkJY29uZmlnOiBDb25maWd7CiAJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJz
aW9uVExTMTMsCiAJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKQEAgLTExMzU0LDE5ICsxMTM5
MywyMiBAQCBmdW5jIGFkZFNlc3Npb25UaWNrZXRUZXN0cygpIHsKIAkJfSwKIAl9KQogCi0JLy8g
VGVzdCB0aGF0IDAtUlRUIHRpY2tldHMgYXJlIGlnbm9yZWQgaW4gY2xpZW50cyB1bmxlc3Mgb3B0
ZWQgaW4uCisJLy8gVGVzdCB0aGF0IDAtUlRUIHRpY2tldHMgYXJlIHN0aWxsIHJlY29yZGVkIGFz
IHN1Y2ggd2hlbiBlYXJseSBkYXRhIGlzIGRpc2FibGVkIG92ZXJhbGwuCiAJdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CiAJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQlu
YW1lOiAgICAgIlRMUzEzLVNlbmRUaWNrZXRFYXJseURhdGFJbmZvLURpc2FibGVkIiwKKwkJbmFt
ZTogICAgICJUTFMxMy1TZW5kVGlja2V0RWFybHlEYXRhU3VwcG9ydC1EaXNhYmxlZCIsCiAJCWNv
bmZpZzogQ29uZmlnewogCQkJTWF4VmVyc2lvbjogICAgICAgVmVyc2lvblRMUzEzLAogCQkJTWF4
RWFybHlEYXRhU2l6ZTogMTYzODQsCiAJCX0sCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZXhw
ZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkJfSwKIAl9KQogCiAJdGVzdENhc2Vz
ID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CiAJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAot
CQluYW1lOiAgICAgIlRMUzEzLUR1cGxpY2F0ZVRpY2tldEVhcmx5RGF0YUluZm8iLAorCQluYW1l
OiAgICAgIlRMUzEzLUR1cGxpY2F0ZVRpY2tldEVhcmx5RGF0YVN1cHBvcnQiLAogCQljb25maWc6
IENvbmZpZ3sKIAkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKIAkJCU1heEVhcmx5
RGF0YVNpemU6IDE2Mzg0LApAQCAtMTEzODEsNyArMTE0MjMsNyBAQCBmdW5jIGFkZFNlc3Npb25U
aWNrZXRUZXN0cygpIHsKIAogCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNl
ewogCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJbmFtZTogICAgICJUTFMxMy1FeHBlY3RUaWNr
ZXRFYXJseURhdGFJbmZvIiwKKwkJbmFtZTogICAgICJUTFMxMy1FeHBlY3RUaWNrZXRFYXJseURh
dGFTdXBwb3J0IiwKIAkJY29uZmlnOiBDb25maWd7CiAJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExT
MTMsCiAJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CkBAIC0xMTQ0NCw3ICsxMTQ4Niw2IEBAIGZ1bmMg
YWRkU2Vzc2lvblRpY2tldFRlc3RzKCkgewogCQkJCX0sCiAJCQl9LAogCQkJcmVzdW1lU2Vzc2lv
bjogdXNlU3RhdGVmdWxSZXN1bXB0aW9uLAotCQkJdGxzMTNWYXJpYW50OiAgdmVyLnRsczEzVmFy
aWFudCwKIAkJCWZsYWdzOiAgICAgICAgIFtdc3RyaW5neyItbm8tdGlja2V0In0sCiAJCX0pCiAK
QEAgLTExNDU2LDcgKzExNDk3LDYgQEAgZnVuYyBhZGRTZXNzaW9uVGlja2V0VGVzdHMoKSB7CiAJ
CQkJTWluVmVyc2lvbjogdmVyLnZlcnNpb24sCiAJCQkJTWF4VmVyc2lvbjogdmVyLnZlcnNpb24s
CiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgICAgICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQly
ZXN1bWVTZXNzaW9uOiAgICAgICAgdHJ1ZSwKIAkJCWV4cGVjdFJlc3VtZVJlamVjdGVkOiB0cnVl
LAogCQkJLy8gU2V0IFNTTF9PUF9OT19USUNLRVQgb24gdGhlIHNlY29uZCBjb25uZWN0aW9uLCBh
ZnRlciB0aGUgZmlyc3QKQEAgLTEyMDg2LDcgKzEyMTI2LDcgQEAgZnVuYyBtYWtlUGVyTWVzc2Fn
ZVRlc3RzKCkgW11wZXJNZXNzYWdlVGVzdCB7CiAJCW1lc3NhZ2VUeXBlOiB0eXBlRW5kT2ZFYXJs
eURhdGEsCiAJCXRlc3Q6IHRlc3RDYXNlewogCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQlu
YW1lOiAgICAgIlRMUzEzRHJhZnQyMy1FbmRPZkVhcmx5RGF0YSIsCisJCQluYW1lOiAgICAgIlRM
UzEzLUVuZE9mRWFybHlEYXRhIiwKIAkJCWNvbmZpZzogQ29uZmlnewogCQkJCU1heFZlcnNpb246
IFZlcnNpb25UTFMxMywKIAkJCX0sCkBAIC0xMjA5Nyw3ICsxMjEzNyw2IEBAIGZ1bmMgbWFrZVBl
ck1lc3NhZ2VUZXN0cygpIFtdcGVyTWVzc2FnZVRlc3QgewogCQkJCQlFeHBlY3RFYXJseURhdGFB
Y2NlcHRlZDogdHJ1ZSwKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIFRMUzEzRHJh
ZnQyMywKIAkJCXJlc3VtZVNlc3Npb246IHRydWUsCiAJCQlmbGFnczogICAgICAgICBbXXN0cmlu
Z3siLWVuYWJsZS1lYXJseS1kYXRhIn0sCiAJCX0sCkBAIC0xMjE3NiwxNjM3ICsxMjIxNSwxNzU4
IEBAIGZ1bmMgYWRkVHJhaWxpbmdNZXNzYWdlRGF0YVRlc3RzKCkgewogfQogCiBmdW5jIGFkZFRM
UzEzSGFuZHNoYWtlVGVzdHMoKSB7Ci0JZm9yIF8sIHZlcnNpb24gOj0gcmFuZ2UgYWxsVmVyc2lv
bnModGxzKSB7Ci0JCWlmIHZlcnNpb24udmVyc2lvbiAhPSBWZXJzaW9uVExTMTMgewotCQkJY29u
dGludWUKLQkJfQotCQluYW1lIDo9IHZlcnNpb24ubmFtZQotCQl2YXJpYW50IDo9IHZlcnNpb24u
dGxzMTNWYXJpYW50CisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJ
CXRlc3RUeXBlOiBjbGllbnRUZXN0LAorCQluYW1lOiAgICAgIk5lZ290aWF0ZVBTS1Jlc3VtcHRp
b24tVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMx
MywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlOZWdvdGlhdGVQU0tSZXN1bXB0aW9uOiB0
cnVlLAorCQkJfSwKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKKwkJc2hvdWxkRmFpbDog
ICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogIjpNSVNTSU5HX0tFWV9TSEFSRToiLAorCX0pCiAK
LQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTog
Y2xpZW50VGVzdCwKLQkJCW5hbWU6ICAgICAiTmVnb3RpYXRlUFNLUmVzdW1wdGlvbi0iICsgbmFt
ZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJ
CQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCU5lZ290aWF0ZVBTS1Jlc3VtcHRpb246IHRydWUs
Ci0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVz
dFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiTWlzc2luZ0tleVNoYXJlLUNsaWVudC1U
TFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAor
CQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCU1pc3NpbmdLZXlTaGFyZTogdHJ1ZSwKIAkJCX0s
Ci0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJ
CXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOk1JU1NJTkdfS0VZX1NI
QVJFOiIsCi0JCX0pCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJy
b3I6ICI6TUlTU0lOR19LRVlfU0hBUkU6IiwKKwl9KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0
ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCi0JCQluYW1lOiAg
ICAgIk1pc3NpbmdLZXlTaGFyZS1DbGllbnQtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sK
LQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewot
CQkJCQlNaXNzaW5nS2V5U2hhcmU6IHRydWUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQo
dGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAg
ICAiTWlzc2luZ0tleVNoYXJlLVNlcnZlci1UTFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJ
TWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCU1p
c3NpbmdLZXlTaGFyZTogdHJ1ZSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAot
CQkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICI6TUlTU0lOR19LRVlf
U0hBUkU6IiwKLQkJfSkKKwkJfSwKKwkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKKwkJZXhwZWN0ZWRF
cnJvcjogIjpNSVNTSU5HX0tFWV9TSEFSRToiLAorCX0pCiAKLQkJdGVzdENhc2VzID0gYXBwZW5k
KHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJCW5hbWU6
ICAgICAiTWlzc2luZ0tleVNoYXJlLVNlcnZlci0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmln
ewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7
Ci0JCQkJCU1pc3NpbmdLZXlTaGFyZTogdHJ1ZSwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFwcGVu
ZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTog
ICAgICJEdXBsaWNhdGVLZXlTaGFyZXMtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1h
eFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlEdXBs
aWNhdGVLZXlTaGFyZXM6IHRydWUsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwK
LQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOk1JU1NJTkdfS0VZ
X1NIQVJFOiIsCi0JCX0pCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVk
RXJyb3I6ICI6RFVQTElDQVRFX0tFWV9TSEFSRToiLAorCX0pCiAKLQkJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJCW5h
bWU6ICAgICAiRHVwbGljYXRlS2V5U2hhcmVzLSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7
Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sK
LQkJCQkJRHVwbGljYXRlS2V5U2hhcmVzOiB0cnVlLAotCQkJCX0sCisJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1l
OiAgICAgIlNraXBFYXJseURhdGEtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZl
cnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kRmFr
ZUVhcmx5RGF0YUxlbmd0aDogNCwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAot
CQkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICI6RFVQTElDQVRFX0tF
WV9TSEFSRToiLAotCQl9KQorCQl9LAorCX0pCiAKLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RD
YXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJCW5hbWU6ICAgICAi
U2tpcEVhcmx5RGF0YS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNp
b246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRGYWtl
RWFybHlEYXRhTGVuZ3RoOiA0LAotCQkJCX0sCisJLy8gVGVzdCB0aGF0IGVuYWJsaW5nIFRMUyAx
LjMgZG9lcyBub3QgaW50ZXJmZXJlIHdpdGggVExTIDEuMiBzZXNzaW9uIElECisJLy8gcmVzdW1w
dGlvbi4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5
cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiUmVzdW1lVExTMTJTZXNzaW9uSUQtVExTMTMi
LAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAgICAgICAgICAgIFZlcnNpb25U
TFMxMiwKKwkJCVNlc3Npb25UaWNrZXRzRGlzYWJsZWQ6IHRydWUsCisJCX0sCisJCXJlc3VtZVNl
c3Npb246IHRydWUsCisJfSkKKworCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IGNvcnJlY3RseSBo
YW5kbGVzIGEgVExTIDEuMyBTZXJ2ZXJIZWxsbyB3aGljaCBlY2hvZXMKKwkvLyBhIFRMUyAxLjIg
c2Vzc2lvbiBJRC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJ
dGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiVExTMTJTZXNzaW9uSUQtVExTMTMi
LAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAgICAgICAgICAgIFZlcnNpb25U
TFMxMiwKKwkJCVNlc3Npb25UaWNrZXRzRGlzYWJsZWQ6IHRydWUsCisJCX0sCisJCXJlc3VtZUNv
bmZpZzogJkNvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJfSwKKwkJcmVz
dW1lU2Vzc2lvbjogICAgICAgIHRydWUsCisJCWV4cGVjdFJlc3VtZVJlamVjdGVkOiB0cnVlLAor
CX0pCisKKwkvLyBUZXN0IHRoYXQgdGhlIHNlcnZlciBjb3JyZWN0bHkgZWNob2VzIGJhY2sgc2Vz
c2lvbiBJRHMgb2YKKwkvLyB2YXJpb3VzIGxlbmd0aHMuIFRoZSBmaXJzdCB0ZXN0IGFkZGl0aW9u
YWxseSBhc3NlcnRzIHRoYXQKKwkvLyBCb3JpbmdTU0wgYWx3YXlzIHNlbmRzIHRoZSBDaGFuZ2VD
aXBoZXJTcGVjIG1lc3NhZ2VzIGZvcgorCS8vIGNvbXBhdGliaWxpdHkgbW9kZSwgcmF0aGVyIHRo
YW4gbmVnb3RpYXRpbmcgaXQgYmFzZWQgb24gdGhlCisJLy8gQ2xpZW50SGVsbG8uCisJdGVzdENh
c2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0
LAorCQluYW1lOiAgICAgIkVtcHR5U2Vzc2lvbklELVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7
CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJ
CQkJU2VuZENsaWVudEhlbGxvU2Vzc2lvbklEOiBbXWJ5dGV7fSwKIAkJCX0sCi0JCQl0bHMxM1Zh
cmlhbnQ6IHZhcmlhbnQsCi0JCX0pCisJCX0sCisJfSkKIAotCQkvLyBUZXN0IHRoYXQgZW5hYmxp
bmcgYSBUTFMgMS4zIHZhcmlhbnQgZG9lcyBub3QgaW50ZXJmZXJlIHdpdGgKLQkJLy8gVExTIDEu
MiBzZXNzaW9uIElEIHJlc3VtcHRpb24uCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMs
IHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCi0JCQluYW1lOiAgICAgIlJlc3Vt
ZVRMUzEyU2Vzc2lvbklELSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVy
c2lvbjogICAgICAgICAgICAgVmVyc2lvblRMUzEyLAotCQkJCVNlc3Npb25UaWNrZXRzRGlzYWJs
ZWQ6IHRydWUsCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRl
c3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlNob3J0U2Vzc2lvbklELVRMUzEzIiwK
KwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdz
OiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZENsaWVudEhlbGxvU2Vzc2lvbklEOiBtYWtlKFtdYnl0
ZSwgMTYpLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNz
aW9uOiB0cnVlLAotCQl9KQorCQl9LAorCX0pCiAKLQkJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQg
Y29ycmVjdGx5IGhhbmRsZXMgYSBUTFMgMS4zIFNlcnZlckhlbGxvIHdoaWNoIGVjaG9lcwotCQkv
LyBhIFRMUyAxLjIgc2Vzc2lvbiBJRC4KLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywg
dGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJCW5hbWU6ICAgICAiVExTMTJT
ZXNzaW9uSUQtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiAg
ICAgICAgICAgICBWZXJzaW9uVExTMTIsCi0JCQkJU2Vzc2lvblRpY2tldHNEaXNhYmxlZDogdHJ1
ZSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6
IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiRnVsbFNlc3Npb25JRC1UTFMxMyIsCisJCWNvbmZp
ZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9j
b2xCdWdzeworCQkJCVNlbmRDbGllbnRIZWxsb1Nlc3Npb25JRDogbWFrZShbXWJ5dGUsIDMyKSwK
IAkJCX0sCi0JCQlyZXN1bWVDb25maWc6ICZDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lv
blRMUzEzLAorCQl9LAorCX0pCisKKwkvLyBUZXN0IHRoYXQgdGhlIGNsaWVudCBzZW5kcyBhIGZh
a2Ugc2Vzc2lvbiBJRCBpbiBUTFMgMS4zLgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMs
IHRlc3RDYXNleworCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJbmFtZTogICAgICJUTFMxM1Nl
c3Npb25JRC1UTFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lv
blRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUV4cGVjdENsaWVudEhlbGxvU2Vz
c2lvbklEOiB0cnVlLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgICB2YXJpYW50LAot
CQkJcmVzdW1lU2Vzc2lvbjogICAgICAgIHRydWUsCi0JCQlleHBlY3RSZXN1bWVSZWplY3RlZDog
dHJ1ZSwKLQkJfSkKKwkJfSwKKwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0aGUgc2VydmVyIGNvcnJl
Y3RseSBlY2hvZXMgYmFjayBzZXNzaW9uIElEcyBvZgotCQkvLyB2YXJpb3VzIGxlbmd0aHMuIFRo
ZSBmaXJzdCB0ZXN0IGFkZGl0aW9uYWxseSBhc3NlcnRzIHRoYXQKLQkJLy8gQm9yaW5nU1NMIGFs
d2F5cyBzZW5kcyB0aGUgQ2hhbmdlQ2lwaGVyU3BlYyBtZXNzYWdlcyBmb3IKLQkJLy8gY29tcGF0
aWJpbGl0eSBtb2RlLCByYXRoZXIgdGhhbiBuZWdvdGlhdGluZyBpdCBiYXNlZCBvbiB0aGUKLQkJ
Ly8gQ2xpZW50SGVsbG8uCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNl
ewotCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQluYW1lOiAgICAgIkVtcHR5U2Vzc2lvbklE
LSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRM
UzEzLAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZENsaWVudEhlbGxvU2Vzc2lv
bklEOiBbXWJ5dGV7fSwKLQkJCQl9LAorCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IG9taXRzIHRo
ZSBmYWtlIHNlc3Npb24gSUQgd2hlbiB0aGUgbWF4IHZlcnNpb24gaXMgVExTIDEuMiBhbmQgYmVs
b3cuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBl
OiBjbGllbnRUZXN0LAorCQluYW1lOiAgICAgIlRMUzEyTm9TZXNzaW9uSUQtVExTMTMiLAorCQlj
b25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFBy
b3RvY29sQnVnc3sKKwkJCQlFeHBlY3ROb1RMUzEyU2Vzc2lvbjogdHJ1ZSwKIAkJCX0sCi0JCQl0
bHMxM1ZhcmlhbnQ6IHZhcmlhbnQsCi0JCX0pCisJCX0sCisJCWZsYWdzOiBbXXN0cmluZ3siLW1h
eC12ZXJzaW9uIiwgc3RyY29udi5JdG9hKFZlcnNpb25UTFMxMil9LAorCX0pCiAKLQkJdGVzdENh
c2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVyVGVz
dCwKLQkJCW5hbWU6ICAgICAiU2hvcnRTZXNzaW9uSUQtIiArIG5hbWUsCi0JCQljb25maWc6IENv
bmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xC
dWdzewotCQkJCQlTZW5kQ2xpZW50SGVsbG9TZXNzaW9uSUQ6IG1ha2UoW11ieXRlLCAxNiksCi0J
CQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5
cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiRWFybHlEYXRhLUNsaWVudC1UTFMxMyIsCisJ
CWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogICAgICAgVmVyc2lvblRMUzEzLAorCQkJ
TWluVmVyc2lvbjogICAgICAgVmVyc2lvblRMUzEzLAorCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYz
ODQsCisJCX0sCisJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAgICAg
IFZlcnNpb25UTFMxMywKKwkJCU1pblZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCU1h
eEVhcmx5RGF0YVNpemU6IDE2Mzg0LAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUV4cGVj
dEVhcmx5RGF0YTogW11bXWJ5dGV7eydoJywgJ2UnLCAnbCcsICdsJywgJ28nfX0sCiAJCQl9LAot
CQkJdGxzMTNWYXJpYW50OiB2YXJpYW50LAotCQl9KQorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0
cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSIt
ZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkJCSItb24taW5pdGlhbC1leHBl
Y3QtZWFybHktZGF0YS1yZWFzb24iLCAibm9fc2Vzc2lvbl9vZmZlcmVkIiwKKwkJCSItb24tcmVz
dW1lLWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJCQkiLW9uLXJlc3VtZS1leHBlY3QtZWFy
bHktZGF0YS1yZWFzb24iLCAiYWNjZXB0IiwKKwkJCSItb24tcmVzdW1lLXNoaW0td3JpdGVzLWZp
cnN0IiwKKwkJfSwKKwl9KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RD
YXNlewotCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQluYW1lOiAgICAgIkZ1bGxTZXNzaW9u
SUQtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlTZW5kQ2xpZW50SGVsbG9TZXNz
aW9uSUQ6IG1ha2UoW11ieXRlLCAzMiksCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVz
dENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAi
RWFybHlEYXRhLVJlamVjdC1DbGllbnQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1h
eFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0
LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBW
ZXJzaW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKKwkJCUJ1Z3M6IFByb3Rv
Y29sQnVnc3sKKwkJCQlBbHdheXNSZWplY3RFYXJseURhdGE6IHRydWUsCiAJCQl9LAotCQkJdGxz
MTNWYXJpYW50OiB2YXJpYW50LAotCQl9KQorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAor
CQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0
LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1k
YXRhIiwKKwkJCSItb24tcmVzdW1lLXNoaW0td3JpdGVzLWZpcnN0IiwKKwkJCSItb24tcmV0cnkt
ZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgInBlZXJfZGVjbGluZWQiLAorCQl9LAorCX0pCiAK
LQkJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQgc2VuZHMgYSBmYWtlIHNlc3Npb24gSUQgaW4gVExT
IDEuMy4KLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0
VHlwZTogY2xpZW50VGVzdCwKLQkJCW5hbWU6ICAgICAiVExTMTNTZXNzaW9uSUQtIiArIG5hbWUs
Ci0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJ
QnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlFeHBlY3RDbGllbnRIZWxsb1Nlc3Npb25JRDogdHJ1
ZSwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0
ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJFYXJseURhdGEtU2VydmVyLVRMUzEz
IiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlN
aW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2Vu
ZEVhcmx5RGF0YTogICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhwZWN0
RWFybHlEYXRhQWNjZXB0ZWQ6IHRydWUsCisJCQkJRXhwZWN0SGFsZlJUVERhdGE6ICAgICAgIFtd
W11ieXRle3syNTQsIDI1MywgMjUyLCAyNTF9fSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZh
cmlhbnQsCi0JCX0pCisJCX0sCisJCW1lc3NhZ2VDb3VudDogIDIsCisJCXJlc3VtZVNlc3Npb246
IHRydWUsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJ
Ii1vbi1pbml0aWFsLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJub19zZXNzaW9uX29mZmVy
ZWQiLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWFjY2VwdC1lYXJseS1kYXRhIiwKKwkJCSItb24t
cmVzdW1lLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJhY2NlcHQiLAorCQl9LAorCX0pCiAK
LQkJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQgb21pdHMgdGhlIGZha2Ugc2Vzc2lvbiBJRCB3aGVu
IHRoZSBtYXggdmVyc2lvbiBpcyBUTFMgMS4yIGFuZCBiZWxvdy4KLQkJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJCW5h
bWU6ICAgICAiVExTMTJOb1Nlc3Npb25JRC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewot
CQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0J
CQkJCUV4cGVjdE5vVExTMTJTZXNzaW9uOiB0cnVlLAotCQkJCX0sCisJLy8gVGhlIGFib3ZlIHRl
c3RzIHRoZSBtb3N0IHJlY2VudCB0aWNrZXQuIEFkZGl0aW9uYWxseSB0ZXN0IHRoYXQgMC1SVFQK
KwkvLyB3b3JrcyBvbiB0aGUgZmlyc3QgdGlja2V0IGlzc3VlZCBieSB0aGUgc2VydmVyLgorCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVy
VGVzdCwKKwkJbmFtZTogICAgICJFYXJseURhdGEtRmlyc3RUaWNrZXQtU2VydmVyLVRMUzEzIiwK
KwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlNaW5W
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJVXNlRmly
c3RTZXNzaW9uVGlja2V0OiAgIHRydWUsCisJCQkJU2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtd
W11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhwZWN0RWFybHlEYXRhQWNjZXB0ZWQ6IHRydWUs
CisJCQkJRXhwZWN0SGFsZlJUVERhdGE6ICAgICAgIFtdW11ieXRle3syNTQsIDI1MywgMjUyLCAy
NTF9fSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZhcmlhbnQsCi0JCQlmbGFnczogICAgICAg
IFtdc3RyaW5neyItbWF4LXZlcnNpb24iLCBzdHJjb252Lkl0b2EoVmVyc2lvblRMUzEyKX0sCi0J
CX0pCisJCX0sCisJCW1lc3NhZ2VDb3VudDogIDIsCisJCXJlc3VtZVNlc3Npb246IHRydWUsCisJ
CWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJIi1vbi1yZXN1
bWUtZXhwZWN0LWFjY2VwdC1lYXJseS1kYXRhIiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1lYXJs
eS1kYXRhLXJlYXNvbiIsICJhY2NlcHQiLAorCQl9LAorCX0pCiAKLQkJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJCW5h
bWU6ICAgICAiRWFybHlEYXRhLUNsaWVudC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewot
CQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNaW5WZXJzaW9uOiAgICAg
ICBWZXJzaW9uVExTMTMsCi0JCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCisJdGVzdENhc2Vz
ID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAor
CQluYW1lOiAgICAgIlNraXBFYXJseURhdGEtT21pdEVhcmx5RGF0YUV4dGVuc2lvbi1UTFMxMyIs
CisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVn
czogUHJvdG9jb2xCdWdzeworCQkJCVNlbmRGYWtlRWFybHlEYXRhTGVuZ3RoOiA0LAorCQkJCU9t
aXRFYXJseURhdGFFeHRlbnNpb246ICB0cnVlLAogCQkJfSwKLQkJCXJlc3VtZUNvbmZpZzogJkNv
bmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCi0JCQkJTWluVmVyc2lv
bjogICAgICAgVmVyc2lvblRMUzEzLAotCQkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAotCQkJ
CUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJRXhwZWN0RWFybHlEYXRhOiBbXVtdYnl0ZXt7J2gn
LCAnZScsICdsJywgJ2wnLCAnbyd9fSwKLQkJCQl9LAorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0
cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOkRFQ1JZUFRJT05fRkFJTEVEX09SX0JBRF9SRUNPUkRf
TUFDOiIsCisJfSkKKworCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewor
CQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJTa2lwRWFybHlEYXRhLVRvb011
Y2hEYXRhLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEZha2VFYXJseURhdGFMZW5n
dGg6IDE2Mzg0ICsgMSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJcmVz
dW1lU2Vzc2lvbjogdHJ1ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWVuYWJsZS1lYXJs
eS1kYXRhIiwKLQkJCQkiLWV4cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHktZGF0YSIsCi0JCQkJ
Ii1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEiLAotCQkJCSItb24tcmVzdW1lLXNoaW0td3JpdGVz
LWZpcnN0IiwKKwkJfSwKKwkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjog
IjpUT09fTVVDSF9TS0lQUEVEX0VBUkxZX0RBVEE6IiwKKwl9KQorCisJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1l
OiAgICAgIlNraXBFYXJseURhdGEtSW50ZXJsZWF2ZWQtVExTMTMiLAorCQljb25maWc6IENvbmZp
Z3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sK
KwkJCQlTZW5kRmFrZUVhcmx5RGF0YUxlbmd0aDogNCwKKwkJCQlJbnRlcmxlYXZlRWFybHlEYXRh
OiAgICAgdHJ1ZSwKIAkJCX0sCi0JCX0pCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJ
CWV4cGVjdGVkRXJyb3I6ICI6REVDUllQVElPTl9GQUlMRURfT1JfQkFEX1JFQ09SRF9NQUM6IiwK
Kwl9KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVz
dFR5cGU6IGNsaWVudFRlc3QsCi0JCQluYW1lOiAgICAgIkVhcmx5RGF0YS1SZWplY3QtQ2xpZW50
LSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogICAgICAgVmVy
c2lvblRMUzEzLAotCQkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAorCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFt
ZTogICAgICJTa2lwRWFybHlEYXRhLUVhcmx5RGF0YUluVExTMTItVExTMTMiLAorCQljb25maWc6
IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29s
QnVnc3sKKwkJCQlTZW5kRmFrZUVhcmx5RGF0YUxlbmd0aDogNCwKIAkJCX0sCi0JCQlyZXN1bWVD
b25maWc6ICZDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogICAgICAgVmVyc2lvblRMUzEzLAotCQkJ
CU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJ
QWx3YXlzUmVqZWN0RWFybHlEYXRhOiB0cnVlLAotCQkJCX0sCi0JCQl9LAotCQkJdGxzMTNWYXJp
YW50OiAgdmFyaWFudCwKLQkJCXJlc3VtZVNlc3Npb246IHRydWUsCi0JCQlmbGFnczogW11zdHJp
bmd7Ci0JCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCi0JCQkJIi1leHBlY3QtdGlja2V0LXN1cHBv
cnRzLWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1kYXRhIiwKLQkJCQki
LW9uLXJlc3VtZS1zaGltLXdyaXRlcy1maXJzdCIsCi0JCQl9LAotCQl9KQorCQl9LAorCQlzaG91
bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOlVORVhQRUNURURfUkVDT1JEOiIs
CisJCWZsYWdzOiAgICAgICAgIFtdc3RyaW5neyItbWF4LXZlcnNpb24iLCBzdHJjb252Lkl0b2Eo
VmVyc2lvblRMUzEyKX0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURh
dGEtU2VydmVyLSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjog
VmVyc2lvblRMUzEzLAotCQkJCU1pblZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQ
cm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRFYXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0ZXt7MSwg
MiwgMywgNH19LAotCQkJCQlFeHBlY3RFYXJseURhdGFBY2NlcHRlZDogdHJ1ZSwKLQkJCQkJRXhw
ZWN0SGFsZlJUVERhdGE6ICAgICAgIFtdW11ieXRle3syNTQsIDI1MywgMjUyLCAyNTF9fSwKLQkJ
CQl9LAotCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQltZXNzYWdlQ291bnQ6
ICAyLAotCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQki
LWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJ
dGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2
ZXJUZXN0LAorCQluYW1lOiAgICAgIlNraXBFYXJseURhdGEtSFJSLVRMUzEzIiwKKwkJY29uZmln
OiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2Nv
bEJ1Z3N7CisJCQkJU2VuZEZha2VFYXJseURhdGFMZW5ndGg6IDQsCiAJCQl9LAotCQl9KQorCQkJ
RGVmYXVsdEN1cnZlczogW11DdXJ2ZUlEe30sCisJCX0sCisJCS8vIFRob3VnaCB0aGUgc2Vzc2lv
biBpcyBub3QgcmVzdW1lZCBhbmQgd2Ugc2VuZCBIZWxsb1JldHJ5UmVxdWVzdCwKKwkJLy8gZWFy
bHkgZGF0YSBiZWluZyBkaXNhYmxlZCB0YWtlcyBwcmlvcml0eSBhcyB0aGUgcmVqZWN0IHJlYXNv
bi4KKwkJZmxhZ3M6IFtdc3RyaW5neyItZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgImRpc2Fi
bGVkIn0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsK
LQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURhdGEtRmlyc3RU
aWNrZXQtU2VydmVyLSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lv
bjogVmVyc2lvblRMUzEzLAotCQkJCU1pblZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdz
OiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVVzZUZpcnN0U2Vzc2lvblRpY2tldDogICB0cnVlLAotCQkJ
CQlTZW5kRWFybHlEYXRhOiAgICAgICAgICAgW11bXWJ5dGV7ezEsIDIsIDMsIDR9fSwKLQkJCQkJ
RXhwZWN0RWFybHlEYXRhQWNjZXB0ZWQ6IHRydWUsCi0JCQkJCUV4cGVjdEhhbGZSVFREYXRhOiAg
ICAgICBbXVtdYnl0ZXt7MjU0LCAyNTMsIDI1MiwgMjUxfX0sCi0JCQkJfSwKLQkJCX0sCi0JCQl0
bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJbWVzc2FnZUNvdW50OiAgMiwKLQkJCXJlc3VtZVNl
c3Npb246IHRydWUsCi0JCQlmbGFnczogW11zdHJpbmd7Ci0JCQkJIi1lbmFibGUtZWFybHktZGF0
YSIsCi0JCQkJIi1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEiLAorCXRlc3RDYXNlcyA9IGFwcGVu
ZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTog
ICAgICJTa2lwRWFybHlEYXRhLUhSUi1JbnRlcmxlYXZlZC1UTFMxMyIsCisJCWNvbmZpZzogQ29u
ZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdz
eworCQkJCVNlbmRGYWtlRWFybHlEYXRhTGVuZ3RoOiA0LAorCQkJCUludGVybGVhdmVFYXJseURh
dGE6ICAgICB0cnVlLAogCQkJfSwKLQkJfSkKKwkJCURlZmF1bHRDdXJ2ZXM6IFtdQ3VydmVJRHt9
LAorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOlVORVhQ
RUNURURfUkVDT1JEOiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJTa2lwRWFy
bHlEYXRhLU9taXRFYXJseURhdGFFeHRlbnNpb24tIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZp
Z3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdz
ewotCQkJCQlTZW5kRmFrZUVhcmx5RGF0YUxlbmd0aDogNCwKLQkJCQkJT21pdEVhcmx5RGF0YUV4
dGVuc2lvbjogIHRydWUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiU2tpcEVhcmx5
RGF0YS1IUlItVG9vTXVjaERhdGEtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZl
cnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kRmFr
ZUVhcmx5RGF0YUxlbmd0aDogMTYzODQgKyAxLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZh
cmlhbnQsCi0JCQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpERUNS
WVBUSU9OX0ZBSUxFRF9PUl9CQURfUkVDT1JEX01BQzoiLAotCQl9KQorCQkJRGVmYXVsdEN1cnZl
czogW11DdXJ2ZUlEe30sCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVk
RXJyb3I6ICI6VE9PX01VQ0hfU0tJUFBFRF9FQVJMWV9EQVRBOiIsCisJfSkKIAotCQl0ZXN0Q2Fz
ZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0
LAotCQkJbmFtZTogICAgICJTa2lwRWFybHlEYXRhLVRvb011Y2hEYXRhLSIgKyBuYW1lLAotCQkJ
Y29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6
IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZEZha2VFYXJseURhdGFMZW5ndGg6IDE2Mzg0ICsgMSwK
LQkJCQl9LAorCS8vIFRlc3QgdGhhdCBza2lwcGluZyBlYXJseSBkYXRhIGxvb2tpbmcgZm9yIGNs
ZWFydGV4dCBjb3JyZWN0bHkKKwkvLyBwcm9jZXNzZXMgYW4gYWxlcnQgcmVjb3JkLgorCXRlc3RD
YXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVz
dCwKKwkJbmFtZTogICAgICJTa2lwRWFybHlEYXRhLUhSUi1GYXRhbEFsZXJ0LVRMUzEzIiwKKwkJ
Y29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQ
cm90b2NvbEJ1Z3N7CisJCQkJU2VuZEVhcmx5QWxlcnQ6ICAgICAgICAgIHRydWUsCisJCQkJU2Vu
ZEZha2VFYXJseURhdGFMZW5ndGg6IDQsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFu
dCwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOlRPT19NVUNI
X1NLSVBQRURfRUFSTFlfREFUQToiLAotCQl9KQorCQkJRGVmYXVsdEN1cnZlczogW11DdXJ2ZUlE
e30sCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6U1NM
VjNfQUxFUlRfSEFORFNIQUtFX0ZBSUxVUkU6IiwKKwl9KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVu
ZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQluYW1l
OiAgICAgIlNraXBFYXJseURhdGEtSW50ZXJsZWF2ZWQtIiArIG5hbWUsCi0JCQljb25maWc6IENv
bmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xC
dWdzewotCQkJCQlTZW5kRmFrZUVhcmx5RGF0YUxlbmd0aDogNCwKLQkJCQkJSW50ZXJsZWF2ZUVh
cmx5RGF0YTogICAgIHRydWUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2Vz
LCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiU2tpcEVh
cmx5RGF0YS1TZWNvbmRDbGllbnRIZWxsb0Vhcmx5RGF0YS1UTFMxMyIsCisJCWNvbmZpZzogQ29u
ZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdz
eworCQkJCVNlbmRFYXJseURhdGFPblNlY29uZENsaWVudEhlbGxvOiB0cnVlLAogCQkJfSwKLQkJ
CXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJZXhw
ZWN0ZWRFcnJvcjogIjpERUNSWVBUSU9OX0ZBSUxFRF9PUl9CQURfUkVDT1JEX01BQzoiLAotCQl9
KQorCQkJRGVmYXVsdEN1cnZlczogW11DdXJ2ZUlEe30sCisJCX0sCisJCXNob3VsZEZhaWw6ICAg
ICAgICAgdHJ1ZSwKKwkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBiYWQgcmVj
b3JkIE1BQyIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJTa2lwRWFybHlEYXRh
LUVhcmx5RGF0YUluVExTMTItIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhW
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlTZW5k
RmFrZUVhcmx5RGF0YUxlbmd0aDogNCwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJbmFtZTogICAgICJF
bXB0eUVuY3J5cHRlZEV4dGVuc2lvbnMtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1h
eFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlFbXB0
eUVuY3J5cHRlZEV4dGVuc2lvbnM6IHRydWUsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmFy
aWFudCwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOlVORVhQ
RUNURURfUkVDT1JEOiIsCi0JCQlmbGFnczogICAgICAgICBbXXN0cmluZ3siLW1heC12ZXJzaW9u
Iiwgc3RyY29udi5JdG9hKFZlcnNpb25UTFMxMil9LAotCQl9KQorCQl9LAorCQlzaG91bGRGYWls
OiAgICAgICAgIHRydWUsCisJCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogZXJy
b3IgZGVjb2RpbmcgbWVzc2FnZSIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJT
a2lwRWFybHlEYXRhLUhSUi0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZl
cnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRG
YWtlRWFybHlEYXRhTGVuZ3RoOiA0LAotCQkJCX0sCi0JCQkJRGVmYXVsdEN1cnZlczogW11DdXJ2
ZUlEe30sCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RU
eXBlOiBjbGllbnRUZXN0LAorCQluYW1lOiAgICAgIkVuY3J5cHRlZEV4dGVuc2lvbnNXaXRoS2V5
U2hhcmUtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25U
TFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlFbmNyeXB0ZWRFeHRlbnNpb25zV2l0
aEtleVNoYXJlOiB0cnVlLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmFyaWFudCwKLQkJfSkK
KwkJfSwKKwkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAorCQlleHBlY3RlZExvY2FsRXJyb3I6
ICJyZW1vdGUgZXJyb3I6IHVuc3VwcG9ydGVkIGV4dGVuc2lvbiIsCisJfSkKIAotCQl0ZXN0Q2Fz
ZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0
LAotCQkJbmFtZTogICAgICJTa2lwRWFybHlEYXRhLUhSUi1JbnRlcmxlYXZlZC0iICsgbmFtZSwK
LQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRGYWtlRWFybHlEYXRhTGVuZ3RoOiA0LAotCQkJ
CQlJbnRlcmxlYXZlRWFybHlEYXRhOiAgICAgdHJ1ZSwKLQkJCQl9LAotCQkJCURlZmF1bHRDdXJ2
ZXM6IFtdQ3VydmVJRHt9LAotCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlz
aG91bGRGYWlsOiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpVTkVYUEVDVEVEX1JFQ09S
RDoiLAotCQl9KQorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0
ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJTZW5kSGVsbG9SZXRyeVJlcXVlc3Qt
VExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywK
KwkJCS8vIFJlcXVpcmUgYSBIZWxsb1JldHJ5UmVxdWVzdCBmb3IgZXZlcnkgY3VydmUuCisJCQlE
ZWZhdWx0Q3VydmVzOiAgICBbXUN1cnZlSUR7fSwKKwkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3Vy
dmVJRHtDdXJ2ZVgyNTUxOX0sCisJCX0sCisJCWV4cGVjdGVkQ3VydmVJRDogQ3VydmVYMjU1MTks
CisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRl
c3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJTa2lwRWFybHlEYXRhLUhSUi1Ub29N
dWNoRGF0YS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZl
cnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRGYWtlRWFybHlE
YXRhTGVuZ3RoOiAxNjM4NCArIDEsCi0JCQkJfSwKLQkJCQlEZWZhdWx0Q3VydmVzOiBbXUN1cnZl
SUR7fSwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJc2hvdWxkRmFpbDog
ICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICI6VE9PX01VQ0hfU0tJUFBFRF9FQVJMWV9EQVRB
OiIsCi0JCX0pCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRl
c3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlNlbmRIZWxsb1JldHJ5UmVxdWVzdC0y
LVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9u
VExTMTMsCisJCQlEZWZhdWx0Q3VydmVzOiAgICBbXUN1cnZlSUR7Q3VydmVQMzg0fSwKKwkJCUN1
cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVgyNTUxOSwgQ3VydmVQMzg0fSwKKwkJfSwK
KwkJLy8gQWx0aG91Z2ggdGhlIENsaWVudEhlbGxvIGRpZCBub3QgcHJlZGljdCBvdXIgcHJlZmVy
cmVkIGN1cnZlLAorCQkvLyB3ZSBhbHdheXMgc2VsZWN0IGl0IHdoZXRoZXIgaXQgaXMgcHJlZGlj
dGVkIG9yIG5vdC4KKwkJZXhwZWN0ZWRDdXJ2ZUlEOiBDdXJ2ZVgyNTUxOSwKKwl9KQogCi0JCS8v
IFRlc3QgdGhhdCBza2lwcGluZyBlYXJseSBkYXRhIGxvb2tpbmcgZm9yIGNsZWFydGV4dCBjb3Jy
ZWN0bHkKLQkJLy8gcHJvY2Vzc2VzIGFuIGFsZXJ0IHJlY29yZC4KLQkJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJCW5h
bWU6ICAgICAiU2tpcEVhcmx5RGF0YS1IUlItRmF0YWxBbGVydC0iICsgbmFtZSwKLQkJCWNvbmZp
ZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90
b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRFYXJseUFsZXJ0OiAgICAgICAgICB0cnVlLAotCQkJCQlTZW5k
RmFrZUVhcmx5RGF0YUxlbmd0aDogNCwKLQkJCQl9LAotCQkJCURlZmF1bHRDdXJ2ZXM6IFtdQ3Vy
dmVJRHt9LAorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1l
OiAiVW5rbm93bkN1cnZlLUhlbGxvUmV0cnlSZXF1ZXN0LVRMUzEzIiwKKwkJY29uZmlnOiBDb25m
aWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQkvLyBQLTM4NCByZXF1aXJlcyBI
ZWxsb1JldHJ5UmVxdWVzdCBpbiBCb3JpbmdTU0wuCisJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1
cnZlSUR7Q3VydmVQMzg0fSwKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kSGVsbG9S
ZXRyeVJlcXVlc3RDdXJ2ZTogYm9ndXNDdXJ2ZSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2
YXJpYW50LAotCQkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICI6U1NM
VjNfQUxFUlRfSEFORFNIQUtFX0ZBSUxVUkU6IiwKLQkJfSkKKwkJfSwKKwkJc2hvdWxkRmFpbDog
ICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogIjpXUk9OR19DVVJWRToiLAorCX0pCiAKLQkJdGVz
dENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVy
VGVzdCwKLQkJCW5hbWU6ICAgICAiU2tpcEVhcmx5RGF0YS1TZWNvbmRDbGllbnRIZWxsb0Vhcmx5
RGF0YS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNp
b25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRFYXJseURhdGFPblNl
Y29uZENsaWVudEhlbGxvOiB0cnVlLAotCQkJCX0sCi0JCQkJRGVmYXVsdEN1cnZlczogW11DdXJ2
ZUlEe30sCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCW5hbWU6
ICJIZWxsb1JldHJ5UmVxdWVzdC1DaXBoZXJDaGFuZ2UtVExTMTMiLAorCQljb25maWc6IENvbmZp
Z3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCS8vIFAtMzg0IHJlcXVpcmVzIEhl
bGxvUmV0cnlSZXF1ZXN0IGluIEJvcmluZ1NTTC4KKwkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3Vy
dmVJRHtDdXJ2ZVAzODR9LAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCVNlbmRDaXBoZXJT
dWl0ZTogICAgICAgICAgICAgICAgICBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2LAorCQkJCVNlbmRI
ZWxsb1JldHJ5UmVxdWVzdENpcGhlclN1aXRlOiBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2
LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgdmFyaWFudCwKLQkJCXNob3VsZEZhaWw6
ICAgICAgICAgdHJ1ZSwKLQkJCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogYmFk
IHJlY29yZCBNQUMiLAotCQl9KQorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBl
Y3RlZEVycm9yOiAiOldST05HX0NJUEhFUl9SRVRVUk5FRDoiLAorCX0pCiAKLQkJdGVzdENhc2Vz
ID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwK
LQkJCW5hbWU6ICAgICAiRW1wdHlFbmNyeXB0ZWRFeHRlbnNpb25zLSIgKyBuYW1lLAotCQkJY29u
ZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6IFBy
b3RvY29sQnVnc3sKLQkJCQkJRW1wdHlFbmNyeXB0ZWRFeHRlbnNpb25zOiB0cnVlLAotCQkJCX0s
CisJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQgZG9lcyBub3Qgb2ZmZXIgYSBQU0sgaW4gdGhlIHNl
Y29uZCBDbGllbnRIZWxsbyBpZiB0aGUKKwkvLyBIZWxsb1JldHJ5UmVxdWVzdCBpcyBpbmNvbXBh
dGlibGUgd2l0aCBpdC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsK
KwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiSGVsbG9SZXRyeVJlcXVlc3Qt
Tm9uUmVzdW1hYmxlQ2lwaGVyLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJz
aW9uOiBWZXJzaW9uVExTMTMsCisJCQlDaXBoZXJTdWl0ZXM6IFtddWludDE2eworCQkJCVRMU19B
RVNfMTI4X0dDTV9TSEEyNTYsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgICAgICB2YXJpYW50
LAotCQkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAotCQkJZXhwZWN0ZWRMb2NhbEVycm9yOiAi
cmVtb3RlIGVycm9yOiBlcnJvciBkZWNvZGluZyBtZXNzYWdlIiwKLQkJfSkKLQotCQl0ZXN0Q2Fz
ZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0
LAotCQkJbmFtZTogICAgICJFbmNyeXB0ZWRFeHRlbnNpb25zV2l0aEtleVNoYXJlLSIgKyBuYW1l
LAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJ
CUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJRW5jcnlwdGVkRXh0ZW5zaW9uc1dpdGhLZXlTaGFy
ZTogdHJ1ZSwKLQkJCQl9LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25maWd7CisJCQlNYXhW
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQkvLyBQLTM4NCByZXF1aXJlcyBIZWxsb1JldHJ5UmVx
dWVzdCBpbiBCb3JpbmdTU0wuCisJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVQ
Mzg0fSwKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlFeHBlY3ROb1RMUzEzUFNLQWZ0ZXJI
UlI6IHRydWUsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgICAgICB2YXJpYW50LAotCQkJc2hv
dWxkRmFpbDogICAgICAgICB0cnVlLAotCQkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVy
cm9yOiB1bnN1cHBvcnRlZCBleHRlbnNpb24iLAotCQl9KQotCi0JCXRlc3RDYXNlcyA9IGFwcGVu
ZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQluYW1l
OiAgICAgIlNlbmRIZWxsb1JldHJ5UmVxdWVzdC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmln
ewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQkvLyBSZXF1aXJlIGEgSGVsbG9S
ZXRyeVJlcXVlc3QgZm9yIGV2ZXJ5IGN1cnZlLgotCQkJCURlZmF1bHRDdXJ2ZXM6IFtdQ3VydmVJ
RHt9LAorCQkJQ2lwaGVyU3VpdGVzOiBbXXVpbnQxNnsKKwkJCQlUTFNfQUVTXzI1Nl9HQ01fU0hB
Mzg0LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgdmFyaWFudCwKLQkJCWV4cGVjdGVkQ3Vy
dmVJRDogQ3VydmVYMjU1MTksCi0JCX0pCi0KLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNl
cywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJCW5hbWU6ICAgICAiU2Vu
ZEhlbGxvUmV0cnlSZXF1ZXN0LTItIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlN
YXhWZXJzaW9uOiAgICBWZXJzaW9uVExTMTMsCi0JCQkJRGVmYXVsdEN1cnZlczogW11DdXJ2ZUlE
e0N1cnZlUDM4NH0sCi0JCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2YXJpYW50LAotCQkJLy8gQWx0
aG91Z2ggdGhlIENsaWVudEhlbGxvIGRpZCBub3QgcHJlZGljdCBvdXIgcHJlZmVycmVkIGN1cnZl
LAotCQkJLy8gd2UgYWx3YXlzIHNlbGVjdCBpdCB3aGV0aGVyIGl0IGlzIHByZWRpY3RlZCBvciBu
b3QuCi0JCQlleHBlY3RlZEN1cnZlSUQ6IEN1cnZlWDI1NTE5LAotCQl9KQorCQl9LAorCQlyZXN1
bWVTZXNzaW9uOiAgICAgICAgdHJ1ZSwKKwkJZXhwZWN0UmVzdW1lUmVqZWN0ZWQ6IHRydWUsCisJ
fSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCW5hbWU6
ICJVbmtub3duQ3VydmUtSGVsbG9SZXRyeVJlcXVlc3QtIiArIG5hbWUsCi0JCQljb25maWc6IENv
bmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJLy8gUC0zODQgcmVxdWly
ZXMgSGVsbG9SZXRyeVJlcXVlc3QgaW4gQm9yaW5nU1NMLgotCQkJCUN1cnZlUHJlZmVyZW5jZXM6
IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJU2Vu
ZEhlbGxvUmV0cnlSZXF1ZXN0Q3VydmU6IGJvZ3VzQ3VydmUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMg
PSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJbmFtZTogIkRpc2FibGVkQ3VydmUtSGVs
bG9SZXRyeVJlcXVlc3QtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246
ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2
ZVAyNTZ9LAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUlnbm9yZVBlZXJDdXJ2ZVByZWZl
cmVuY2VzOiB0cnVlLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlzaG91
bGRGYWlsOiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpXUk9OR19DVVJWRToiLAotCQl9
KQorCQl9LAorCQlmbGFnczogICAgICAgICBbXXN0cmluZ3siLWN1cnZlcyIsIHN0cmNvbnYuSXRv
YShpbnQoQ3VydmVQMzg0KSl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVy
cm9yOiAiOldST05HX0NVUlZFOiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKLQkJCW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdC1DaXBoZXJDaGFuZ2Ut
IiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExT
MTMsCi0JCQkJLy8gUC0zODQgcmVxdWlyZXMgSGVsbG9SZXRyeVJlcXVlc3QgaW4gQm9yaW5nU1NM
LgotCQkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAotCQkJCUJ1Z3M6
IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZENpcGhlclN1aXRlOiAgICAgICAgICAgICAgICAgIFRM
U19BRVNfMTI4X0dDTV9TSEEyNTYsCi0JCQkJCVNlbmRIZWxsb1JldHJ5UmVxdWVzdENpcGhlclN1
aXRlOiBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LAotCQkJCX0sCisJdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCW5hbWU6ICJVbm5lY2Vzc2FyeUhlbGxvUmV0
cnlSZXF1ZXN0LVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAg
ICBWZXJzaW9uVExTMTMsCisJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVYMjU1
MTl9LAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCVNlbmRIZWxsb1JldHJ5UmVxdWVzdEN1
cnZlOiBDdXJ2ZVgyNTUxOSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJ
c2hvdWxkRmFpbDogICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICI6V1JPTkdfQ0lQSEVSX1JF
VFVSTkVEOiIsCi0JCX0pCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVk
RXJyb3I6ICI6V1JPTkdfQ1VSVkU6IiwKKwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50
IGRvZXMgbm90IG9mZmVyIGEgUFNLIGluIHRoZSBzZWNvbmQgQ2xpZW50SGVsbG8gaWYgdGhlCi0J
CS8vIEhlbGxvUmV0cnlSZXF1ZXN0IGlzIGluY29tcGF0aWJsZSB3aXRoIGl0LgotCQl0ZXN0Q2Fz
ZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0
LAotCQkJbmFtZTogICAgICJIZWxsb1JldHJ5UmVxdWVzdC1Ob25SZXN1bWFibGVDaXBoZXItIiAr
IG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMs
Ci0JCQkJQ2lwaGVyU3VpdGVzOiBbXXVpbnQxNnsKLQkJCQkJVExTX0FFU18xMjhfR0NNX1NIQTI1
NiwKLQkJCQl9LAotCQkJfSwKLQkJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sKLQkJCQlNYXhWZXJz
aW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJLy8gUC0zODQgcmVxdWlyZXMgSGVsbG9SZXRyeVJlcXVl
c3QgaW4gQm9yaW5nU1NMLgotCQkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAz
ODR9LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJRXhwZWN0Tm9UTFMxM1BTS0FmdGVy
SFJSOiB0cnVlLAotCQkJCX0sCi0JCQkJQ2lwaGVyU3VpdGVzOiBbXXVpbnQxNnsKLQkJCQkJVExT
X0FFU18yNTZfR0NNX1NIQTM4NCwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2Fz
ZXMsIHRlc3RDYXNleworCQluYW1lOiAiU2Vjb25kSGVsbG9SZXRyeVJlcXVlc3QtVExTMTMiLAor
CQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCS8vIFAt
Mzg0IHJlcXVpcmVzIEhlbGxvUmV0cnlSZXF1ZXN0IGluIEJvcmluZ1NTTC4KKwkJCUN1cnZlUHJl
ZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAorCQkJQnVnczogUHJvdG9jb2xCdWdzewor
CQkJCVNlY29uZEhlbGxvUmV0cnlSZXF1ZXN0OiB0cnVlLAogCQkJfSwKLQkJCXRsczEzVmFyaWFu
dDogICAgICAgICB2YXJpYW50LAotCQkJcmVzdW1lU2Vzc2lvbjogICAgICAgIHRydWUsCi0JCQll
eHBlY3RSZXN1bWVSZWplY3RlZDogdHJ1ZSwKLQkJfSkKKwkJfSwKKwkJc2hvdWxkRmFpbDogICAg
dHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogIjpVTkVYUEVDVEVEX01FU1NBR0U6IiwKKwl9KQogCi0J
CXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJbmFtZTogIkRpc2Fi
bGVkQ3VydmUtSGVsbG9SZXRyeVJlcXVlc3QtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sK
LQkJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCi0JCQkJQ3VydmVQcmVmZXJlbmNl
czogW11DdXJ2ZUlEe0N1cnZlUDI1Nn0sCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlJ
Z25vcmVQZWVyQ3VydmVQcmVmZXJlbmNlczogdHJ1ZSwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiSGVsbG9SZXRyeVJlcXVlc3QtRW1w
dHktVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMx
MywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlBbHdheXNTZW5kSGVsbG9SZXRyeVJlcXVl
c3Q6IHRydWUsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCWZsYWdzOiAg
ICAgICAgIFtdc3RyaW5neyItcDM4NC1vbmx5In0sCi0JCQlzaG91bGRGYWlsOiAgICB0cnVlLAot
CQkJZXhwZWN0ZWRFcnJvcjogIjpXUk9OR19DVVJWRToiLAotCQl9KQorCQl9LAorCQlzaG91bGRG
YWlsOiAgICAgICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICAgICAgIjpFTVBUWV9IRUxMT19S
RVRSWV9SRVFVRVNUOiIsCisJCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogaWxs
ZWdhbCBwYXJhbWV0ZXIiLAorCX0pCiAKLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywg
dGVzdENhc2V7Ci0JCQluYW1lOiAiVW5uZWNlc3NhcnlIZWxsb1JldHJ5UmVxdWVzdC0iICsgbmFt
ZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMx
MywKLQkJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVYMjU1MTl9LAotCQkJCUJ1
Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZEhlbGxvUmV0cnlSZXF1ZXN0Q3VydmU6IEN1cnZl
WDI1NTE5LAotCQkJCX0sCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7
CisJCW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdC1EdXBsaWNhdGVDdXJ2ZS1UTFMxMyIsCisJCWNv
bmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJLy8gUC0zODQg
cmVxdWlyZXMgYSBIZWxsb1JldHJ5UmVxdWVzdCBhZ2FpbnN0IEJvcmluZ1NTTCdzIGRlZmF1bHQK
KwkJCS8vIGNvbmZpZ3VyYXRpb24uIEFzc2VydCB0aGlzIEV4cGVjdE1pc3NpbmdLZXlTaGFyZS4K
KwkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAorCQkJQnVnczogUHJv
dG9jb2xCdWdzeworCQkJCUV4cGVjdE1pc3NpbmdLZXlTaGFyZTogICAgICAgICAgICAgICAgdHJ1
ZSwKKwkJCQlEdXBsaWNhdGVIZWxsb1JldHJ5UmVxdWVzdEV4dGVuc2lvbnM6IHRydWUsCiAJCQl9
LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0J
CQlleHBlY3RlZEVycm9yOiAiOldST05HX0NVUlZFOiIsCi0JCX0pCisJCX0sCisJCXNob3VsZEZh
aWw6ICAgICAgICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogICAgICAiOkRVUExJQ0FURV9FWFRF
TlNJT046IiwKKwkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBpbGxlZ2FsIHBh
cmFtZXRlciIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKLQkJCW5hbWU6ICJTZWNvbmRIZWxsb1JldHJ5UmVxdWVzdC0iICsgbmFtZSwKLQkJCWNvbmZp
ZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQkvLyBQLTM4NCBy
ZXF1aXJlcyBIZWxsb1JldHJ5UmVxdWVzdCBpbiBCb3JpbmdTU0wuCi0JCQkJQ3VydmVQcmVmZXJl
bmNlczogW11DdXJ2ZUlEe0N1cnZlUDM4NH0sCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJ
CQlTZWNvbmRIZWxsb1JldHJ5UmVxdWVzdDogdHJ1ZSwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiSGVsbG9SZXRyeVJlcXVlc3QtQ29v
a2llLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExT
MTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEhlbGxvUmV0cnlSZXF1ZXN0Q29v
a2llOiBbXWJ5dGUoImNvb2tpZSIpLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQs
Ci0JCQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpVTkVYUEVDVEVE
X01FU1NBR0U6IiwKLQkJfSkKKwkJfSwKKwl9KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNlewotCQkJbmFtZTogIkhlbGxvUmV0cnlSZXF1ZXN0LUVtcHR5LSIgKyBu
YW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAot
CQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJQWx3YXlzU2VuZEhlbGxvUmV0cnlSZXF1ZXN0
OiB0cnVlLAotCQkJCX0sCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7
CisJCW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdC1EdXBsaWNhdGVDb29raWUtVExTMTMiLAorCQlj
b25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFBy
b3RvY29sQnVnc3sKKwkJCQlTZW5kSGVsbG9SZXRyeVJlcXVlc3RDb29raWU6ICAgICAgICAgIFtd
Ynl0ZSgiY29va2llIiksCisJCQkJRHVwbGljYXRlSGVsbG9SZXRyeVJlcXVlc3RFeHRlbnNpb25z
OiB0cnVlLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgdmFyaWFudCwKLQkJCXNob3Vs
ZEZhaWw6ICAgICAgICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICAgICAgIjpFTVBUWV9IRUxM
T19SRVRSWV9SRVFVRVNUOiIsCi0JCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6
IGlsbGVnYWwgcGFyYW1ldGVyIiwKLQkJfSkKKwkJfSwKKwkJc2hvdWxkRmFpbDogICAgICAgICB0
cnVlLAorCQlleHBlY3RlZEVycm9yOiAgICAgICI6RFVQTElDQVRFX0VYVEVOU0lPTjoiLAorCQll
eHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IGlsbGVnYWwgcGFyYW1ldGVyIiwKKwl9
KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJbmFtZTog
IkhlbGxvUmV0cnlSZXF1ZXN0LUR1cGxpY2F0ZUN1cnZlLSIgKyBuYW1lLAotCQkJY29uZmlnOiBD
b25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCS8vIFAtMzg0IHJlcXVp
cmVzIGEgSGVsbG9SZXRyeVJlcXVlc3QgYWdhaW5zdCBCb3JpbmdTU0wncyBkZWZhdWx0Ci0JCQkJ
Ly8gY29uZmlndXJhdGlvbi4gQXNzZXJ0IHRoaXMgRXhwZWN0TWlzc2luZ0tleVNoYXJlLgotCQkJ
CUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAotCQkJCUJ1Z3M6IFByb3Rv
Y29sQnVnc3sKLQkJCQkJRXhwZWN0TWlzc2luZ0tleVNoYXJlOiAgICAgICAgICAgICAgICB0cnVl
LAotCQkJCQlEdXBsaWNhdGVIZWxsb1JldHJ5UmVxdWVzdEV4dGVuc2lvbnM6IHRydWUsCi0JCQkJ
fSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJbmFtZTogIkhl
bGxvUmV0cnlSZXF1ZXN0LUVtcHR5Q29va2llLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJ
CQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJ
U2VuZEhlbGxvUmV0cnlSZXF1ZXN0Q29va2llOiBbXWJ5dGV7fSwKIAkJCX0sCi0JCQl0bHMxM1Zh
cmlhbnQ6ICAgICAgIHZhcmlhbnQsCi0JCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCQll
eHBlY3RlZEVycm9yOiAgICAgICI6RFVQTElDQVRFX0VYVEVOU0lPTjoiLAotCQkJZXhwZWN0ZWRM
b2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBpbGxlZ2FsIHBhcmFtZXRlciIsCi0JCX0pCisJCX0s
CisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6REVDT0RFX0VSUk9S
OiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJ
CW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdC1Db29raWUtIiArIG5hbWUsCi0JCQljb25maWc6IENv
bmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xC
dWdzewotCQkJCQlTZW5kSGVsbG9SZXRyeVJlcXVlc3RDb29raWU6IFtdYnl0ZSgiY29va2llIiks
Ci0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJbmFt
ZTogIkhlbGxvUmV0cnlSZXF1ZXN0LUNvb2tpZS1DdXJ2ZS1UTFMxMyIsCisJCWNvbmZpZzogQ29u
ZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJLy8gUC0zODQgcmVxdWlyZXMg
SGVsbG9SZXRyeVJlcXVlc3QgaW4gQm9yaW5nU1NMLgorCQkJQ3VydmVQcmVmZXJlbmNlczogW11D
dXJ2ZUlEe0N1cnZlUDM4NH0sCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEhlbGxv
UmV0cnlSZXF1ZXN0Q29va2llOiBbXWJ5dGUoImNvb2tpZSIpLAorCQkJCUV4cGVjdE1pc3NpbmdL
ZXlTaGFyZTogICAgICAgdHJ1ZSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZhcmlhbnQsCi0J
CX0pCisJCX0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKLQkJCW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdC1EdXBsaWNhdGVDb29raWUtIiArIG5hbWUs
Ci0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJ
QnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlTZW5kSGVsbG9SZXRyeVJlcXVlc3RDb29raWU6ICAg
ICAgICAgIFtdYnl0ZSgiY29va2llIiksCi0JCQkJCUR1cGxpY2F0ZUhlbGxvUmV0cnlSZXF1ZXN0
RXh0ZW5zaW9uczogdHJ1ZSwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMs
IHRlc3RDYXNleworCQluYW1lOiAiSGVsbG9SZXRyeVJlcXVlc3QtVW5rbm93bi1UTFMxMyIsCisJ
CWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczog
UHJvdG9jb2xCdWdzeworCQkJCUN1c3RvbUhlbGxvUmV0cnlSZXF1ZXN0RXh0ZW5zaW9uOiAiZXh0
ZW5zaW9uIiwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZhcmlhbnQsCi0JCQlzaG91
bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAgICAgICI6RFVQTElDQVRF
X0VYVEVOU0lPTjoiLAotCQkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBpbGxl
Z2FsIHBhcmFtZXRlciIsCi0JCX0pCisJCX0sCisJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwK
KwkJZXhwZWN0ZWRFcnJvcjogICAgICAiOlVORVhQRUNURURfRVhURU5TSU9OOiIsCisJCWV4cGVj
dGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogdW5zdXBwb3J0ZWQgZXh0ZW5zaW9uIiwKKwl9
KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJbmFtZTog
IkhlbGxvUmV0cnlSZXF1ZXN0LUVtcHR5Q29va2llLSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25m
aWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6IFByb3RvY29sQnVn
c3sKLQkJCQkJU2VuZEhlbGxvUmV0cnlSZXF1ZXN0Q29va2llOiBbXWJ5dGV7fSwKLQkJCQl9LAor
CXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2Vy
dmVyVGVzdCwKKwkJbmFtZTogICAgICJTZWNvbmRDbGllbnRIZWxsb01pc3NpbmdLZXlTaGFyZS1U
TFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogICAgVmVyc2lvblRMUzEz
LAorCQkJRGVmYXVsdEN1cnZlczogW11DdXJ2ZUlEe30sCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7
CisJCQkJU2Vjb25kQ2xpZW50SGVsbG9NaXNzaW5nS2V5U2hhcmU6IHRydWUsCiAJCQl9LAotCQkJ
dGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBl
Y3RlZEVycm9yOiAiOkRFQ09ERV9FUlJPUjoiLAotCQl9KQorCQl9LAorCQlzaG91bGRGYWlsOiAg
ICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOk1JU1NJTkdfS0VZX1NIQVJFOiIsCisJfSkKIAot
CQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCW5hbWU6ICJIZWxs
b1JldHJ5UmVxdWVzdC1Db29raWUtQ3VydmUtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sK
LQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJLy8gUC0zODQgcmVxdWlyZXMgSGVs
bG9SZXRyeVJlcXVlc3QgaW4gQm9yaW5nU1NMLgotCQkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3Vy
dmVJRHtDdXJ2ZVAzODR9LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZEhlbGxv
UmV0cnlSZXF1ZXN0Q29va2llOiBbXWJ5dGUoImNvb2tpZSIpLAotCQkJCQlFeHBlY3RNaXNzaW5n
S2V5U2hhcmU6ICAgICAgIHRydWUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiU2Vj
b25kQ2xpZW50SGVsbG9Xcm9uZ0N1cnZlLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlN
YXhWZXJzaW9uOiAgICBWZXJzaW9uVExTMTMsCisJCQlEZWZhdWx0Q3VydmVzOiBbXUN1cnZlSUR7
fSwKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlNaXNpbnRlcnByZXRIZWxsb1JldHJ5UmVx
dWVzdEN1cnZlOiBDdXJ2ZVA1MjEsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2YXJpYW50LAot
CQl9KQorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOldS
T05HX0NVUlZFOiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0
Q2FzZXsKLQkJCW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdC1Vbmtub3duLSIgKyBuYW1lLAotCQkJ
Y29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6
IFByb3RvY29sQnVnc3sKLQkJCQkJQ3VzdG9tSGVsbG9SZXRyeVJlcXVlc3RFeHRlbnNpb246ICJl
eHRlbnNpb24iLAotCQkJCX0sCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENh
c2V7CisJCW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdFZlcnNpb25NaXNtYXRjaC1UTFMxMyIsCisJ
CWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJLy8gUC0z
ODQgcmVxdWlyZXMgSGVsbG9SZXRyeVJlcXVlc3QgaW4gQm9yaW5nU1NMLgorCQkJQ3VydmVQcmVm
ZXJlbmNlczogW11DdXJ2ZUlEe0N1cnZlUDM4NH0sCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJ
CQkJU2VuZFNlcnZlckhlbGxvVmVyc2lvbjogMHgwMzA1LAogCQkJfSwKLQkJCXRsczEzVmFyaWFu
dDogICAgICAgdmFyaWFudCwKLQkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKLQkJCWV4cGVj
dGVkRXJyb3I6ICAgICAgIjpVTkVYUEVDVEVEX0VYVEVOU0lPTjoiLAotCQkJZXhwZWN0ZWRMb2Nh
bEVycm9yOiAicmVtb3RlIGVycm9yOiB1bnN1cHBvcnRlZCBleHRlbnNpb24iLAotCQl9KQorCQl9
LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOldST05HX1ZFUlNJ
T05fTlVNQkVSOiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0
Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJTZWNvbmRDbGll
bnRIZWxsb01pc3NpbmdLZXlTaGFyZS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJ
CU1heFZlcnNpb246ICAgIFZlcnNpb25UTFMxMywKLQkJCQlEZWZhdWx0Q3VydmVzOiBbXUN1cnZl
SUR7fSwKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlY29uZENsaWVudEhlbGxvTWlz
c2luZ0tleVNoYXJlOiB0cnVlLAotCQkJCX0sCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNl
cywgdGVzdENhc2V7CisJCW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdEN1cnZlTWlzbWF0Y2gtVExT
MTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJ
CS8vIFAtMzg0IHJlcXVpcmVzIEhlbGxvUmV0cnlSZXF1ZXN0IGluIEJvcmluZ1NTTC4KKwkJCUN1
cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAorCQkJQnVnczogUHJvdG9jb2xC
dWdzeworCQkJCS8vIFNlbmQgUC0zODQgKGNvcnJlY3QpIGluIHRoZSBIZWxsb1JldHJ5UmVxdWVz
dC4KKwkJCQlTZW5kSGVsbG9SZXRyeVJlcXVlc3RDdXJ2ZTogQ3VydmVQMzg0LAorCQkJCS8vIEJ1
dCBzZW5kIFAtMjU2IGluIHRoZSBTZXJ2ZXJIZWxsby4KKwkJCQlTZW5kQ3VydmU6IEN1cnZlUDI1
NiwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJc2hvdWxkRmFpbDogICAg
dHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICI6TUlTU0lOR19LRVlfU0hBUkU6IiwKLQkJfSkKKwkJ
fSwKKwkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogIjpXUk9OR19DVVJW
RToiLAorCX0pCiAKLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0J
CQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJCW5hbWU6ICAgICAiU2Vjb25kQ2xpZW50SGVsbG9X
cm9uZ0N1cnZlLSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjog
ICAgVmVyc2lvblRMUzEzLAotCQkJCURlZmF1bHRDdXJ2ZXM6IFtdQ3VydmVJRHt9LAotCQkJCUJ1
Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJTWlzaW50ZXJwcmV0SGVsbG9SZXRyeVJlcXVlc3RDdXJ2
ZTogQ3VydmVQNTIxLAotCQkJCX0sCisJLy8gVGVzdCB0aGUgc2VydmVyIHNlbGVjdGluZyBhIGN1
cnZlIHRoYXQgcmVxdWlyZXMgYSBIZWxsb1JldHJ5UmVxdWVzdAorCS8vIHdpdGhvdXQgc2VuZGlu
ZyBpdC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJbmFtZTog
IlNraXBIZWxsb1JldHJ5UmVxdWVzdC1UTFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4
VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJLy8gUC0zODQgcmVxdWlyZXMgSGVsbG9SZXRyeVJl
cXVlc3QgaW4gQm9yaW5nU1NMLgorCQkJQ3VydmVQcmVmZXJlbmNlczogW11DdXJ2ZUlEe0N1cnZl
UDM4NH0sCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2tpcEhlbGxvUmV0cnlSZXF1ZXN0
OiB0cnVlLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlzaG91bGRGYWls
OiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpXUk9OR19DVVJWRToiLAotCQl9KQorCQl9
LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOldST05HX0NVUlZF
OiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJ
CW5hbWU6ICJIZWxsb1JldHJ5UmVxdWVzdFZlcnNpb25NaXNtYXRjaC0iICsgbmFtZSwKLQkJCWNv
bmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQkvLyBQLTM4
NCByZXF1aXJlcyBIZWxsb1JldHJ5UmVxdWVzdCBpbiBCb3JpbmdTU0wuCi0JCQkJQ3VydmVQcmVm
ZXJlbmNlczogW11DdXJ2ZUlEe0N1cnZlUDM4NH0sCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewot
CQkJCQlTZW5kU2VydmVySGVsbG9WZXJzaW9uOiAweDAzMDUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMg
PSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJbmFtZTogIlNlY29uZFNlcnZlckhlbGxv
Tm9WZXJzaW9uLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJz
aW9uVExTMTMsCisJCQkvLyBQLTM4NCByZXF1aXJlcyBIZWxsb1JldHJ5UmVxdWVzdCBpbiBCb3Jp
bmdTU0wuCisJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVQMzg0fSwKKwkJCUJ1
Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlPbWl0U2VydmVyU3VwcG9ydGVkVmVyc2lvbkV4dGVuc2lv
bjogdHJ1ZSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJc2hvdWxkRmFp
bDogICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICI6V1JPTkdfVkVSU0lPTl9OVU1CRVI6IiwK
LQkJfSkKLQotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCW5h
bWU6ICJIZWxsb1JldHJ5UmVxdWVzdEN1cnZlTWlzbWF0Y2gtIiArIG5hbWUsCi0JCQljb25maWc6
IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJLy8gUC0zODQgcmVx
dWlyZXMgSGVsbG9SZXRyeVJlcXVlc3QgaW4gQm9yaW5nU1NMLgotCQkJCUN1cnZlUHJlZmVyZW5j
ZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJ
Ly8gU2VuZCBQLTM4NCAoY29ycmVjdCkgaW4gdGhlIEhlbGxvUmV0cnlSZXF1ZXN0LgotCQkJCQlT
ZW5kSGVsbG9SZXRyeVJlcXVlc3RDdXJ2ZTogQ3VydmVQMzg0LAotCQkJCQkvLyBCdXQgc2VuZCBQ
LTI1NiBpbiB0aGUgU2VydmVySGVsbG8uCi0JCQkJCVNlbmRDdXJ2ZTogQ3VydmVQMjU2LAotCQkJ
CX0sCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6U0VD
T05EX1NFUlZFUkhFTExPX1ZFUlNJT05fTUlTTUFUQ0g6IiwKKwl9KQorCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQluYW1lOiAiU2Vjb25kU2VydmVySGVsbG9Xcm9u
Z1ZlcnNpb24tVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNp
b25UTFMxMywKKwkJCS8vIFAtMzg0IHJlcXVpcmVzIEhlbGxvUmV0cnlSZXF1ZXN0IGluIEJvcmlu
Z1NTTC4KKwkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAorCQkJQnVn
czogUHJvdG9jb2xCdWdzeworCQkJCVNlbmRTZXJ2ZXJTdXBwb3J0ZWRWZXJzaW9uRXh0ZW5zaW9u
OiAweDEyMzQsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXNob3VsZEZh
aWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOldST05HX0NVUlZFOiIsCi0JCX0pCisJ
CX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6U0VDT05EX1NF
UlZFUkhFTExPX1ZFUlNJT05fTUlTTUFUQ0g6IiwKKwl9KQogCi0JCS8vIFRlc3QgdGhlIHNlcnZl
ciBzZWxlY3RpbmcgYSBjdXJ2ZSB0aGF0IHJlcXVpcmVzIGEgSGVsbG9SZXRyeVJlcXVlc3QKLQkJ
Ly8gd2l0aG91dCBzZW5kaW5nIGl0LgotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKLQkJCW5hbWU6ICJTa2lwSGVsbG9SZXRyeVJlcXVlc3QtIiArIG5hbWUsCi0JCQlj
b25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJLy8gUC0z
ODQgcmVxdWlyZXMgSGVsbG9SZXRyeVJlcXVlc3QgaW4gQm9yaW5nU1NMLgotCQkJCUN1cnZlUHJl
ZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVAzODR9LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sK
LQkJCQkJU2tpcEhlbGxvUmV0cnlSZXF1ZXN0OiB0cnVlLAotCQkJCX0sCisJdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCW5hbWU6ICJSZXF1ZXN0Q29udGV4dEluSGFu
ZHNoYWtlLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTMsCisJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlDbGllbnRBdXRoOiBSZXF1
aXJlQW55Q2xpZW50Q2VydCwKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kUmVxdWVz
dENvbnRleHQ6IFtdYnl0ZSgicmVxdWVzdCBjb250ZXh0IiksCiAJCQl9LAotCQkJdGxzMTNWYXJp
YW50OiAgdmFyaWFudCwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9y
OiAiOldST05HX0NVUlZFOiIsCi0JCX0pCi0KLQkJLy8gVGVzdCB0aGF0IHRoZSBzdXBwb3J0ZWRf
dmVyc2lvbnMgZXh0ZW5zaW9uIGlzIGVuZm9yY2VkIGluIHRoZQotCQkvLyBzZWNvbmQgU2VydmVy
SGVsbG8uIE5vdGUgd2Ugb25seSBlbmZvcmNlIHRoaXMgc3RhcnRpbmcgZHJhZnQgMjguCi0JCWlm
IGlzRHJhZnQyOCh2ZXJzaW9uLnZlcnNpb25XaXJlKSB7Ci0JCQl0ZXN0Q2FzZXMgPSBhcHBlbmQo
dGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCQluYW1lOiAiU2Vjb25kU2VydmVySGVsbG9Ob1ZlcnNp
b24tIiArIG5hbWUsCi0JCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJCU1heFZlcnNpb246IFZlcnNp
b25UTFMxMywKLQkJCQkJLy8gUC0zODQgcmVxdWlyZXMgSGVsbG9SZXRyeVJlcXVlc3QgaW4gQm9y
aW5nU1NMLgotCQkJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVQMzg0fSwKLQkJ
CQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQkJT21pdFNlcnZlclN1cHBvcnRlZFZlcnNpb25F
eHRlbnNpb246IHRydWUsCi0JCQkJCX0sCi0JCQkJfSwKLQkJCQl0bHMxM1ZhcmlhbnQ6ICB2YXJp
YW50LAotCQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQkJZXhwZWN0ZWRFcnJvcjogIjpTRUNP
TkRfU0VSVkVSSEVMTE9fVkVSU0lPTl9NSVNNQVRDSDoiLAotCQkJfSkKLQkJCXRlc3RDYXNlcyA9
IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJCW5hbWU6ICJTZWNvbmRTZXJ2ZXJIZWxs
b1dyb25nVmVyc2lvbi0iICsgbmFtZSwKLQkJCQljb25maWc6IENvbmZpZ3sKLQkJCQkJTWF4VmVy
c2lvbjogVmVyc2lvblRMUzEzLAotCQkJCQkvLyBQLTM4NCByZXF1aXJlcyBIZWxsb1JldHJ5UmVx
dWVzdCBpbiBCb3JpbmdTU0wuCi0JCQkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2
ZVAzODR9LAotCQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCQlTZW5kU2VydmVyU3VwcG9y
dGVkVmVyc2lvbkV4dGVuc2lvbjogMHgxMjM0LAotCQkJCQl9LAotCQkJCX0sCi0JCQkJdGxzMTNW
YXJpYW50OiAgdmFyaWFudCwKLQkJCQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJCWV4cGVjdGVk
RXJyb3I6ICI6U0VDT05EX1NFUlZFUkhFTExPX1ZFUlNJT05fTUlTTUFUQ0g6IiwKLQkJCX0pCi0J
CX0KKwkJfSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4o
KnJlc291cmNlRGlyLCByc2FDZXJ0aWZpY2F0ZUZpbGUpLAorCQkJIi1rZXktZmlsZSIsIHBhdGgu
Sm9pbigqcmVzb3VyY2VEaXIsIHJzYUtleUZpbGUpLAorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0
cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOkRFQ09ERV9FUlJPUjoiLAorCX0pCiAKLQkJdGVzdENh
c2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQluYW1lOiAiUmVxdWVzdENvbnRl
eHRJbkhhbmRzaGFrZS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNp
b246IFZlcnNpb25UTFMxMywKLQkJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQ2xp
ZW50QXV0aDogUmVxdWlyZUFueUNsaWVudENlcnQsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewot
CQkJCQlTZW5kUmVxdWVzdENvbnRleHQ6IFtdYnl0ZSgicmVxdWVzdCBjb250ZXh0IiksCi0JCQkJ
fSwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZhcmlhbnQsCi0JCQlmbGFnczogW11zdHJpbmd7
Ci0JCQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCByc2FDZXJ0aWZpY2F0
ZUZpbGUpLAotCQkJCSIta2V5LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCByc2FLZXlG
aWxlKSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJbmFtZTog
IlVua25vd25FeHRlbnNpb25JbkNlcnRpZmljYXRlUmVxdWVzdC1UTFMxMyIsCisJCWNvbmZpZzog
Q29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJTWluVmVyc2lvbjogVmVy
c2lvblRMUzEzLAorCQkJQ2xpZW50QXV0aDogUmVxdWlyZUFueUNsaWVudENlcnQsCisJCQlCdWdz
OiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEN1c3RvbUNlcnRpZmljYXRlUmVxdWVzdDogMHgxMjEy
LAogCQkJfSwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOkRF
Q09ERV9FUlJPUjoiLAotCQl9KQorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWNlcnQt
ZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNlcnRpZmljYXRlRmlsZSksCisJCQki
LWtleS1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNhS2V5RmlsZSksCisJCX0sCisJ
fSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCW5hbWU6
ICJVbmtub3duRXh0ZW5zaW9uSW5DZXJ0aWZpY2F0ZVJlcXVlc3QtIiArIG5hbWUsCi0JCQljb25m
aWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJTWluVmVyc2lv
bjogVmVyc2lvblRMUzEzLAotCQkJCUNsaWVudEF1dGg6IFJlcXVpcmVBbnlDbGllbnRDZXJ0LAot
CQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZEN1c3RvbUNlcnRpZmljYXRlUmVxdWVz
dDogMHgxMjEyLAotCQkJCX0sCi0JCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2YXJpYW50LAotCQkJ
ZmxhZ3M6IFtdc3RyaW5newotCQkJCSItY2VydC1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURp
ciwgcnNhQ2VydGlmaWNhdGVGaWxlKSwKLQkJCQkiLWtleS1maWxlIiwgcGF0aC5Kb2luKCpyZXNv
dXJjZURpciwgcnNhS2V5RmlsZSksCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVz
dENhc2V7CisJCW5hbWU6ICJNaXNzaW5nU2lnbmF0dXJlQWxnb3JpdGhtc0luQ2VydGlmaWNhdGVS
ZXF1ZXN0LVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTMsCisJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlDbGllbnRBdXRoOiBSZXF1
aXJlQW55Q2xpZW50Q2VydCwKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlPbWl0Q2VydGlm
aWNhdGVSZXF1ZXN0QWxnb3JpdGhtczogdHJ1ZSwKIAkJCX0sCi0JCX0pCisJCX0sCisJCWZsYWdz
OiBbXXN0cmluZ3sKKwkJCSItY2VydC1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNh
Q2VydGlmaWNhdGVGaWxlKSwKKwkJCSIta2V5LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGly
LCByc2FLZXlGaWxlKSwKKwkJfSwKKwkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKKwkJZXhwZWN0ZWRF
cnJvcjogIjpERUNPREVfRVJST1I6IiwKKwl9KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNlewotCQkJbmFtZTogIk1pc3NpbmdTaWduYXR1cmVBbGdvcml0aG1zSW5D
ZXJ0aWZpY2F0ZVJlcXVlc3QtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhW
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJTWluVmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJ
CUNsaWVudEF1dGg6IFJlcXVpcmVBbnlDbGllbnRDZXJ0LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVn
c3sKLQkJCQkJT21pdENlcnRpZmljYXRlUmVxdWVzdEFsZ29yaXRobXM6IHRydWUsCi0JCQkJfSwK
LQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZhcmlhbnQsCi0JCQlmbGFnczogW11zdHJpbmd7Ci0J
CQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCByc2FDZXJ0aWZpY2F0ZUZp
bGUpLAotCQkJCSIta2V5LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCByc2FLZXlGaWxl
KSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6
IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiVHJhaWxpbmdLZXlTaGFyZURhdGEtVExTMTMiLAor
CQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6
IFByb3RvY29sQnVnc3sKKwkJCQlUcmFpbGluZ0tleVNoYXJlRGF0YTogdHJ1ZSwKIAkJCX0sCi0J
CQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpERUNPREVfRVJST1I6
IiwKLQkJfSkKKwkJfSwKKwkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjog
IjpERUNPREVfRVJST1I6IiwKKwl9KQogCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMs
IHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQluYW1lOiAgICAgIlRyYWls
aW5nS2V5U2hhcmVEYXRhLSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVy
c2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJVHJhaWxp
bmdLZXlTaGFyZURhdGE6IHRydWUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKKwkJbmFtZTogIkFsd2F5c1NlbGVjdFBTS0lkZW50aXR5LVRMUzEzIiwK
KwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdz
OiBQcm90b2NvbEJ1Z3N7CisJCQkJQWx3YXlzU2VsZWN0UFNLSWRlbnRpdHk6IHRydWUsCiAJCQl9
LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0J
CQlleHBlY3RlZEVycm9yOiAiOkRFQ09ERV9FUlJPUjoiLAotCQl9KQorCQl9LAorCQlzaG91bGRG
YWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOlVORVhQRUNURURfRVhURU5TSU9OOiIs
CisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCW5h
bWU6ICJBbHdheXNTZWxlY3RQU0tJZGVudGl0eS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmln
ewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7
Ci0JCQkJCUFsd2F5c1NlbGVjdFBTS0lkZW50aXR5OiB0cnVlLAotCQkJCX0sCisJdGVzdENhc2Vz
ID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCW5hbWU6ICJJbnZhbGlkUFNLSWRlbnRp
dHktVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMx
MywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZWxlY3RQU0tJZGVudGl0eU9uUmVzdW1l
OiAxLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlzaG91bGRGYWlsOiAg
ICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpVTkVYUEVDVEVEX0VYVEVOU0lPTjoiLAotCQl9
KQorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAor
CQlleHBlY3RlZEVycm9yOiAiOlBTS19JREVOVElUWV9OT1RfRk9VTkQ6IiwKKwl9KQogCi0JCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJbmFtZTogIkludmFsaWRQ
U0tJZGVudGl0eS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246
IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbGVjdFBTS0lk
ZW50aXR5T25SZXN1bWU6IDEsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2Vz
LCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiRXh0cmFQ
U0tJZGVudGl0eS1UTFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVy
c2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUV4dHJhUFNLSWRlbnRpdHk6
ICAgdHJ1ZSwKKwkJCQlTZW5kRXh0cmFQU0tCaW5kZXI6IHRydWUsCiAJCQl9LAotCQkJdGxzMTNW
YXJpYW50OiAgdmFyaWFudCwKLQkJCXJlc3VtZVNlc3Npb246IHRydWUsCi0JCQlzaG91bGRGYWls
OiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpQU0tfSURFTlRJVFlfTk9UX0ZPVU5EOiIs
Ci0JCX0pCisJCX0sCisJCXJlc3VtZVNlc3Npb246IHRydWUsCisJfSkKIAotCQl0ZXN0Q2FzZXMg
PSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAot
CQkJbmFtZTogICAgICJFeHRyYVBTS0lkZW50aXR5LSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25m
aWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6IFByb3RvY29sQnVn
c3sKLQkJCQkJRXh0cmFQU0tJZGVudGl0eTogICB0cnVlLAotCQkJCQlTZW5kRXh0cmFQU0tCaW5k
ZXI6IHRydWUsCi0JCQkJfSwKKwkvLyBUZXN0IHRoYXQgdW5rbm93biBOZXdTZXNzaW9uVGlja2V0
IGV4dGVuc2lvbnMgYXJlIHRvbGVyYXRlZC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2Vz
LCB0ZXN0Q2FzZXsKKwkJbmFtZTogIkN1c3RvbVRpY2tldEV4dGVuc2lvbi1UTFMxMyIsCisJCWNv
bmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJv
dG9jb2xCdWdzeworCQkJCUN1c3RvbVRpY2tldEV4dGVuc2lvbjogIjEyMzQiLAogCQkJfSwKLQkJ
CXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAotCQl9KQor
CQl9LAorCX0pCiAKLQkJLy8gVGVzdCB0aGF0IHVua25vd24gTmV3U2Vzc2lvblRpY2tldCBleHRl
bnNpb25zIGFyZSB0b2xlcmF0ZWQuCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRl
c3RDYXNlewotCQkJbmFtZTogIkN1c3RvbVRpY2tldEV4dGVuc2lvbi0iICsgbmFtZSwKLQkJCWNv
bmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlCdWdzOiBQ
cm90b2NvbEJ1Z3N7Ci0JCQkJCUN1c3RvbVRpY2tldEV4dGVuc2lvbjogIjEyMzQiLAorCS8vIFRl
c3QgdGhlIGNsaWVudCBoYW5kbGVzIDAtUlRUIGJlaW5nIHJlamVjdGVkIGJ5IGEgZnVsbCBoYW5k
c2hha2UuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RU
eXBlOiBjbGllbnRUZXN0LAorCQluYW1lOiAgICAgIkVhcmx5RGF0YS1SZWplY3RUaWNrZXQtQ2xp
ZW50LVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJz
aW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKKwkJCUNlcnRpZmljYXRlczog
ICAgIFtdQ2VydGlmaWNhdGV7cnNhQ2VydGlmaWNhdGV9LAorCQl9LAorCQlyZXN1bWVDb25maWc6
ICZDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICAgICAgICBWZXJzaW9uVExTMTMsCisJCQlN
YXhFYXJseURhdGFTaXplOiAgICAgICAxNjM4NCwKKwkJCUNlcnRpZmljYXRlczogICAgICAgICAg
IFtdQ2VydGlmaWNhdGV7ZWNkc2FQMjU2Q2VydGlmaWNhdGV9LAorCQkJU2Vzc2lvblRpY2tldHNE
aXNhYmxlZDogdHJ1ZSwKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogICAgICAgIHRydWUsCisJCWV4
cGVjdFJlc3VtZVJlamVjdGVkOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJs
ZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwK
KwkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1kYXRhIiwKKwkJCSItb24tcmVzdW1lLXNoaW0td3Jp
dGVzLWZpcnN0IiwKKwkJCSItb24tcmV0cnktZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgInNl
c3Npb25fbm90X3Jlc3VtZWQiLAorCQkJLy8gVGVzdCB0aGUgcGVlciBjZXJ0aWZpY2F0ZSBpcyBy
ZXBvcnRlZCBjb3JyZWN0bHkgaW4gZWFjaCBvZiB0aGUKKwkJCS8vIHRocmVlIGxvZ2ljYWwgY29u
bmVjdGlvbnMuCisJCQkiLW9uLWluaXRpYWwtZXhwZWN0LXBlZXItY2VydC1maWxlIiwgcGF0aC5K
b2luKCpyZXNvdXJjZURpciwgcnNhQ2VydGlmaWNhdGVGaWxlKSwKKwkJCSItb24tcmVzdW1lLWV4
cGVjdC1wZWVyLWNlcnQtZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNlcnRpZmlj
YXRlRmlsZSksCisJCQkiLW9uLXJldHJ5LWV4cGVjdC1wZWVyLWNlcnQtZmlsZSIsIHBhdGguSm9p
bigqcmVzb3VyY2VEaXIsIGVjZHNhUDI1NkNlcnRpZmljYXRlRmlsZSksCisJCQkvLyBTZXNzaW9u
IHRpY2tldHMgYXJlIGRpc2FibGVkLCBzbyB0aGUgcnVubmVyIHdpbGwgbm90IHNlbmQgYSB0aWNr
ZXQuCisJCQkiLW9uLXJldHJ5LWV4cGVjdC1uby1zZXNzaW9uIiwKKwkJfSwKKwl9KQorCisJLy8g
VGVzdCB0aGUgc2VydmVyIHJlamVjdHMgMC1SVFQgaWYgaXQgZG9lcyBub3QgcmVjb2duaXplIHRo
ZSB0aWNrZXQuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRl
c3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIkVhcmx5RGF0YS1SZWplY3RUaWNrZXQt
U2VydmVyLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTMsCisJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1
Z3N7CisJCQkJU2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0s
CisJCQkJRXhwZWN0RWFybHlEYXRhQWNjZXB0ZWQ6IGZhbHNlLAorCQkJCS8vIENvcnJ1cHQgdGhl
IHRpY2tldC4KKwkJCQlGaWx0ZXJUaWNrZXQ6IGZ1bmMoaW4gW11ieXRlKSAoW11ieXRlLCBlcnJv
cikgeworCQkJCQlpbltsZW4oaW4pLTFdIF49IDEKKwkJCQkJcmV0dXJuIGluLCBuaWwKIAkJCQl9
LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmFyaWFudCwKLQkJfSkKLQkJdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJ
CW5hbWU6ICAgICAiRWFybHlEYXRhLVJlamVjdFRpY2tldC1DbGllbnQtIiArIG5hbWUsCi0JCQlj
b25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCi0JCQkJ
TWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCi0JCQkJQ2VydGlmaWNhdGVzOiAgICAgW11DZXJ0aWZp
Y2F0ZXtyc2FDZXJ0aWZpY2F0ZX0sCi0JCQl9LAotCQkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewot
CQkJCU1heFZlcnNpb246ICAgICAgICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURh
dGFTaXplOiAgICAgICAxNjM4NCwKLQkJCQlDZXJ0aWZpY2F0ZXM6ICAgICAgICAgICBbXUNlcnRp
ZmljYXRle2VjZHNhUDI1NkNlcnRpZmljYXRlfSwKLQkJCQlTZXNzaW9uVGlja2V0c0Rpc2FibGVk
OiB0cnVlLAotCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgICB2YXJpYW50LAotCQkJcmVz
dW1lU2Vzc2lvbjogICAgICAgIHRydWUsCi0JCQlleHBlY3RSZXN1bWVSZWplY3RlZDogdHJ1ZSwK
LQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4
cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHktZGF0YSIsCi0JCQkJIi1leHBlY3QtcmVqZWN0LWVh
cmx5LWRhdGEiLAotCQkJCSItb24tcmVzdW1lLXNoaW0td3JpdGVzLWZpcnN0IiwKLQkJCQkiLW9u
LWluaXRpYWwtZXhwZWN0LXBlZXItY2VydC1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwg
cnNhQ2VydGlmaWNhdGVGaWxlKSwKLQkJCQkiLW9uLXJlc3VtZS1leHBlY3QtcGVlci1jZXJ0LWZp
bGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCByc2FDZXJ0aWZpY2F0ZUZpbGUpLAotCQkJCSIt
b24tcmV0cnktZXhwZWN0LXBlZXItY2VydC1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwg
ZWNkc2FQMjU2Q2VydGlmaWNhdGVGaWxlKSwKLQkJCQkvLyBTZXNzaW9uIHRpY2tldHMgYXJlIGRp
c2FibGVkLCBzbyB0aGUgcnVubmVyIHdpbGwgbm90IHNlbmQgYSB0aWNrZXQuCi0JCQkJIi1vbi1y
ZXRyeS1leHBlY3Qtbm8tc2Vzc2lvbiIsCi0JCQl9LAotCQl9KQorCQl9LAorCQltZXNzYWdlQ291
bnQ6ICAgICAgICAgMiwKKwkJcmVzdW1lU2Vzc2lvbjogICAgICAgIHRydWUsCisJCWV4cGVjdFJl
c3VtZVJlamVjdGVkOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1lYXJs
eS1kYXRhIiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1yZWplY3QtZWFybHktZGF0YSIsCisJCQki
LW9uLXJlc3VtZS1leHBlY3QtZWFybHktZGF0YS1yZWFzb24iLCAic2Vzc2lvbl9ub3RfcmVzdW1l
ZCIsCisJCX0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURhdGEtSFJS
LUNsaWVudC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246ICAg
ICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKLQkJCX0sCi0J
CQlyZXN1bWVDb25maWc6ICZDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogICAgICAgVmVyc2lvblRM
UzEzLAotCQkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVn
c3sKLQkJCQkJU2VuZEhlbGxvUmV0cnlSZXF1ZXN0Q29va2llOiBbXWJ5dGV7MSwgMiwgMywgNH0s
Ci0JCQkJfSwKKwkvLyBUZXN0IHRoZSBjbGllbnQgaGFuZGxlcyAwLVJUVCBiZWluZyByZWplY3Rl
ZCB2aWEgYSBIZWxsb1JldHJ5UmVxdWVzdC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2Vz
LCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiRWFybHlE
YXRhLUhSUi1DbGllbnQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246
ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAorCQl9LAor
CQlyZXN1bWVDb25maWc6ICZDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExT
MTMsCisJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sK
KwkJCQlTZW5kSGVsbG9SZXRyeVJlcXVlc3RDb29raWU6IFtdYnl0ZXsxLCAyLCAzLCA0fSwKIAkJ
CX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwK
LQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4
cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHktZGF0YSIsCi0JCQkJIi1leHBlY3QtcmVqZWN0LWVh
cmx5LWRhdGEiLAorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQlmbGFnczogW11zdHJp
bmd7CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0
cy1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1kYXRhIiwKKwkJCSItb24t
cmV0cnktZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgImhlbGxvX3JldHJ5X3JlcXVlc3QiLAor
CQl9LAorCX0pCisKKwkvLyBUZXN0IHRoZSBzZXJ2ZXIgcmVqZWN0cyAwLVJUVCBpZiBpdCBuZWVk
cyB0byBzZW5kIGEgSGVsbG9SZXRyeVJlcXVlc3QuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RD
YXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIkVh
cmx5RGF0YS1IUlItU2VydmVyLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJz
aW9uOiBWZXJzaW9uVExTMTMsCisJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQkvLyBS
ZXF1aXJlIGEgSGVsbG9SZXRyeVJlcXVlc3QgZm9yIGV2ZXJ5IGN1cnZlLgorCQkJRGVmYXVsdEN1
cnZlczogW11DdXJ2ZUlEe30sCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEVhcmx5
RGF0YTogICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhwZWN0RWFybHlE
YXRhQWNjZXB0ZWQ6IGZhbHNlLAogCQkJfSwKLQkJfSkKKwkJfSwKKwkJbWVzc2FnZUNvdW50OiAg
MiwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1lbmFi
bGUtZWFybHktZGF0YSIsCisJCQkiLW9uLXJlc3VtZS1leHBlY3QtcmVqZWN0LWVhcmx5LWRhdGEi
LAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgImhlbGxvX3JldHJ5
X3JlcXVlc3QiLAorCQl9LAorCX0pCiAKLQkJLy8gVGhlIGNsaWVudCBtdXN0IGNoZWNrIHRoZSBz
ZXJ2ZXIgZG9lcyBub3Qgc2VuZCB0aGUgZWFybHlfZGF0YQotCQkvLyBleHRlbnNpb24gd2hpbGUg
cmVqZWN0aW5nIHRoZSBzZXNzaW9uLgotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURh
dGFXaXRob3V0UmVzdW1lLUNsaWVudC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJ
CU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXplOiAx
NjM4NCwKKwkvLyBUZXN0IHRoZSBjbGllbnQgaGFuZGxlcyBhIDAtUlRUIHJlamVjdCBmcm9tIGJv
dGggdGlja2V0IHJlamVjdGlvbiBhbmQKKwkvLyBIZWxsb1JldHJ5UmVxdWVzdC4KKwl0ZXN0Q2Fz
ZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRlc3Qs
CisJCW5hbWU6ICAgICAiRWFybHlEYXRhLUhSUi1SZWplY3RUaWNrZXQtQ2xpZW50LVRMUzEzIiwK
KwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCisJ
CQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKKwkJCUNlcnRpZmljYXRlczogICAgIFtdQ2VydGlm
aWNhdGV7cnNhQ2VydGlmaWNhdGV9LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25maWd7CisJ
CQlNYXhWZXJzaW9uOiAgICAgICAgICAgICBWZXJzaW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFT
aXplOiAgICAgICAxNjM4NCwKKwkJCUNlcnRpZmljYXRlczogICAgICAgICAgIFtdQ2VydGlmaWNh
dGV7ZWNkc2FQMjU2Q2VydGlmaWNhdGV9LAorCQkJU2Vzc2lvblRpY2tldHNEaXNhYmxlZDogdHJ1
ZSwKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kSGVsbG9SZXRyeVJlcXVlc3RDb29r
aWU6IFtdYnl0ZXsxLCAyLCAzLCA0fSwKIAkJCX0sCi0JCQlyZXN1bWVDb25maWc6ICZDb25maWd7
Ci0JCQkJTWF4VmVyc2lvbjogICAgICAgICAgICAgVmVyc2lvblRMUzEzLAotCQkJCVNlc3Npb25U
aWNrZXRzRGlzYWJsZWQ6IHRydWUsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlTZW5k
RWFybHlEYXRhRXh0ZW5zaW9uOiB0cnVlLAorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiAgICAgICAg
dHJ1ZSwKKwkJZXhwZWN0UmVzdW1lUmVqZWN0ZWQ6IHRydWUsCisJCWZsYWdzOiBbXXN0cmluZ3sK
KwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVh
cmx5LWRhdGEiLAorCQkJIi1leHBlY3QtcmVqZWN0LWVhcmx5LWRhdGEiLAorCQkJLy8gVGhlIGNs
aWVudCBzZWVzIEhlbGxvUmV0cnlSZXF1ZXN0IGJlZm9yZSB0aGUgcmVzdW1wdGlvbiByZXN1bHQs
CisJCQkvLyB0aG91Z2ggbmVpdGhlciB2YWx1ZSBpcyBpbmhlcmVudGx5IHByZWZlcmFibGUuCisJ
CQkiLW9uLXJldHJ5LWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJoZWxsb19yZXRyeV9yZXF1
ZXN0IiwKKwkJCS8vIFRlc3QgdGhlIHBlZXIgY2VydGlmaWNhdGUgaXMgcmVwb3J0ZWQgY29ycmVj
dGx5IGluIGVhY2ggb2YgdGhlCisJCQkvLyB0aHJlZSBsb2dpY2FsIGNvbm5lY3Rpb25zLgorCQkJ
Ii1vbi1pbml0aWFsLWV4cGVjdC1wZWVyLWNlcnQtZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VE
aXIsIHJzYUNlcnRpZmljYXRlRmlsZSksCisJCQkiLW9uLXJlc3VtZS1leHBlY3QtcGVlci1jZXJ0
LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCByc2FDZXJ0aWZpY2F0ZUZpbGUpLAorCQkJ
Ii1vbi1yZXRyeS1leHBlY3QtcGVlci1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGly
LCBlY2RzYVAyNTZDZXJ0aWZpY2F0ZUZpbGUpLAorCQkJLy8gU2Vzc2lvbiB0aWNrZXRzIGFyZSBk
aXNhYmxlZCwgc28gdGhlIHJ1bm5lciB3aWxsIG5vdCBzZW5kIGEgdGlja2V0LgorCQkJIi1vbi1y
ZXRyeS1leHBlY3Qtbm8tc2Vzc2lvbiIsCisJCX0sCisJfSkKKworCS8vIFRlc3QgdGhlIHNlcnZl
ciByZWplY3RzIDAtUlRUIGlmIGl0IG5lZWRzIHRvIHNlbmQgYSBIZWxsb1JldHJ5UmVxdWVzdC4K
Kwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNl
cnZlclRlc3QsCisJCW5hbWU6ICAgICAiRWFybHlEYXRhLUhSUi1SZWplY3RUaWNrZXQtU2VydmVy
LVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMs
CisJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQkvLyBSZXF1aXJlIGEgSGVsbG9SZXRy
eVJlcXVlc3QgZm9yIGV2ZXJ5IGN1cnZlLgorCQkJRGVmYXVsdEN1cnZlczogW11DdXJ2ZUlEe30s
CisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtd
W11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhwZWN0RWFybHlEYXRhQWNjZXB0ZWQ6IGZhbHNl
LAorCQkJCS8vIENvcnJ1cHQgdGhlIHRpY2tldC4KKwkJCQlGaWx0ZXJUaWNrZXQ6IGZ1bmMoaW4g
W11ieXRlKSAoW11ieXRlLCBlcnJvcikgeworCQkJCQlpbltsZW4oaW4pLTFdIF49IDEKKwkJCQkJ
cmV0dXJuIGluLCBuaWwKIAkJCQl9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQs
Ci0JCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAotCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCSItZW5h
YmxlLWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRh
IiwKLQkJCX0sCi0JCQlzaG91bGRGYWlsOiAgICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpV
TkVYUEVDVEVEX0VYVEVOU0lPTjoiLAotCQl9KQorCQl9LAorCQltZXNzYWdlQ291bnQ6ICAgICAg
ICAgMiwKKwkJcmVzdW1lU2Vzc2lvbjogICAgICAgIHRydWUsCisJCWV4cGVjdFJlc3VtZVJlamVj
dGVkOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwK
KwkJCSItb24tcmVzdW1lLWV4cGVjdC1yZWplY3QtZWFybHktZGF0YSIsCisJCQkvLyBUaGUgc2Vy
dmVyIHNlZXMgdGhlIG1pc3NlZCByZXN1bXB0aW9uIGJlZm9yZSBIZWxsb1JldHJ5UmVxdWVzdCwK
KwkJCS8vIHRob3VnaCBuZWl0aGVyIHZhbHVlIGlzIGluaGVyZW50bHkgcHJlZmVyYWJsZS4KKwkJ
CSItb24tcmVzdW1lLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJzZXNzaW9uX25vdF9yZXN1
bWVkIiwKKwkJfSwKKwl9KQogCi0JCS8vIFRoZSBjbGllbnQgbXVzdCBmYWlsIHdpdGggYSBkZWRp
Y2F0ZWQgZXJyb3IgY29kZSBpZiB0aGUgc2VydmVyCi0JCS8vIHJlc3BvbmRzIHdpdGggVExTIDEu
MiB3aGVuIG9mZmVyaW5nIDAtUlRULgotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURh
dGFWZXJzaW9uRG93bmdyYWRlLUNsaWVudC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewot
CQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXpl
OiAxNjM4NCwKLQkJCX0sCi0JCQlyZXN1bWVDb25maWc6ICZDb25maWd7Ci0JCQkJTWF4VmVyc2lv
bjogVmVyc2lvblRMUzEyLAotCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQly
ZXN1bWVTZXNzaW9uOiB0cnVlLAotCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCSItZW5hYmxlLWVh
cmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkv
LyBUaGUgY2xpZW50IG11c3QgY2hlY2sgdGhlIHNlcnZlciBkb2VzIG5vdCBzZW5kIHRoZSBlYXJs
eV9kYXRhCisJLy8gZXh0ZW5zaW9uIHdoaWxlIHJlamVjdGluZyB0aGUgc2Vzc2lvbi4KKwl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRl
c3QsCisJCW5hbWU6ICAgICAiRWFybHlEYXRhV2l0aG91dFJlc3VtZS1DbGllbnQtVExTMTMiLAor
CQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKKwkJ
CU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25maWd7
CisJCQlNYXhWZXJzaW9uOiAgICAgICAgICAgICBWZXJzaW9uVExTMTMsCisJCQlTZXNzaW9uVGlj
a2V0c0Rpc2FibGVkOiB0cnVlLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCVNlbmRFYXJs
eURhdGFFeHRlbnNpb246IHRydWUsCiAJCQl9LAotCQkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKLQkJ
CWV4cGVjdGVkRXJyb3I6ICI6V1JPTkdfVkVSU0lPTl9PTl9FQVJMWV9EQVRBOiIsCi0JCX0pCisJ
CX0sCisJCXJlc3VtZVNlc3Npb246IHRydWUsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5h
YmxlLWVhcmx5LWRhdGEiLAorCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEi
LAorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOlVORVhQ
RUNURURfRVhURU5TSU9OOiIsCisJfSkKIAotCQkvLyBUZXN0IHRoYXQgdGhlIGNsaWVudCByZWpl
Y3RzIGFuICh1bnNvbGljaXRlZCkgZWFybHlfZGF0YSBleHRlbnNpb24gaWYKLQkJLy8gdGhlIHNl
cnZlciBzZW50IGFuIEhSUi4KLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENh
c2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJCW5hbWU6ICAgICAiU2VydmVyQWNjZXB0
c0Vhcmx5RGF0YU9uSFJSLUNsaWVudC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJ
CU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXplOiAx
NjM4NCwKLQkJCX0sCi0JCQlyZXN1bWVDb25maWc6ICZDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjog
ICAgICAgVmVyc2lvblRMUzEzLAotCQkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAotCQkJCUJ1
Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZEhlbGxvUmV0cnlSZXF1ZXN0Q29va2llOiBbXWJ5
dGV7MSwgMiwgMywgNH0sCi0JCQkJCVNlbmRFYXJseURhdGFFeHRlbnNpb246ICAgICAgdHJ1ZSwK
LQkJCQl9LAotCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNz
aW9uOiB0cnVlLAotCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCSItZW5hYmxlLWVhcmx5LWRhdGEi
LAotCQkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVj
dC1yZWplY3QtZWFybHktZGF0YSIsCisJLy8gVGhlIGNsaWVudCBtdXN0IGZhaWwgd2l0aCBhIGRl
ZGljYXRlZCBlcnJvciBjb2RlIGlmIHRoZSBzZXJ2ZXIKKwkvLyByZXNwb25kcyB3aXRoIFRMUyAx
LjIgd2hlbiBvZmZlcmluZyAwLVJUVC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiRWFybHlEYXRh
VmVyc2lvbkRvd25ncmFkZS1DbGllbnQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1h
eFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0
LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTIsCisJCX0sCisJCXJlc3VtZVNlc3Npb246IHRydWUsCisJCWZsYWdzOiBbXXN0cmluZ3sK
KwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVh
cmx5LWRhdGEiLAorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9y
OiAiOldST05HX1ZFUlNJT05fT05fRUFSTFlfREFUQToiLAorCX0pCisKKwkvLyBUZXN0IHRoYXQg
dGhlIGNsaWVudCByZWplY3RzIGFuICh1bnNvbGljaXRlZCkgZWFybHlfZGF0YSBleHRlbnNpb24g
aWYKKwkvLyB0aGUgc2VydmVyIHNlbnQgYW4gSFJSLgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJbmFtZTogICAgICJT
ZXJ2ZXJBY2NlcHRzRWFybHlEYXRhT25IUlItQ2xpZW50LVRMUzEzIiwKKwkJY29uZmlnOiBDb25m
aWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFT
aXplOiAxNjM4NCwKKwkJfSwKKwkJcmVzdW1lQ29uZmlnOiAmQ29uZmlneworCQkJTWF4VmVyc2lv
bjogICAgICAgVmVyc2lvblRMUzEzLAorCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCisJCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEhlbGxvUmV0cnlSZXF1ZXN0Q29va2llOiBbXWJ5
dGV7MSwgMiwgMywgNH0sCisJCQkJU2VuZEVhcmx5RGF0YUV4dGVuc2lvbjogICAgICB0cnVlLAog
CQkJfSwKLQkJCXNob3VsZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOlVORVhQ
RUNURURfRVhURU5TSU9OOiIsCi0JCX0pCisJCX0sCisJCXJlc3VtZVNlc3Npb246IHRydWUsCisJ
CWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJIi1leHBlY3Qt
dGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAorCQkJIi1leHBlY3QtcmVqZWN0LWVhcmx5LWRh
dGEiLAorCQl9LAorCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAiOlVO
RVhQRUNURURfRVhURU5TSU9OOiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICJT
a2lwQ2hhbmdlQ2lwaGVyU3BlYy1DbGllbnQtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sK
LQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewot
CQkJCQlTa2lwQ2hhbmdlQ2lwaGVyU3BlYzogdHJ1ZSwKLQkJCQl9LAorCXRlc3RDYXNlcyA9IGFw
cGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJbmFt
ZTogICAgICJTa2lwQ2hhbmdlQ2lwaGVyU3BlYy1DbGllbnQtVExTMTMiLAorCQljb25maWc6IENv
bmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVn
c3sKKwkJCQlTa2lwQ2hhbmdlQ2lwaGVyU3BlYzogdHJ1ZSwKIAkJCX0sCi0JCQl0bHMxM1Zhcmlh
bnQ6IHZhcmlhbnQsCi0JCX0pCisJCX0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVz
dENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAg
ICJTa2lwQ2hhbmdlQ2lwaGVyU3BlYy1TZXJ2ZXItIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZp
Z3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdz
ewotCQkJCQlTa2lwQ2hhbmdlQ2lwaGVyU3BlYzogdHJ1ZSwKLQkJCQl9LAorCXRlc3RDYXNlcyA9
IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJ
bmFtZTogICAgICJTa2lwQ2hhbmdlQ2lwaGVyU3BlYy1TZXJ2ZXItVExTMTMiLAorCQljb25maWc6
IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29s
QnVnc3sKKwkJCQlTa2lwQ2hhbmdlQ2lwaGVyU3BlYzogdHJ1ZSwKIAkJCX0sCi0JCQl0bHMxM1Zh
cmlhbnQ6IHZhcmlhbnQsCi0JCX0pCisJCX0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQo
dGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTog
ICAgICJUb29NYW55Q2hhbmdlQ2lwaGVyU3BlYy1DbGllbnQtIiArIG5hbWUsCi0JCQljb25maWc6
IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9j
b2xCdWdzewotCQkJCQlTZW5kRXh0cmFDaGFuZ2VDaXBoZXJTcGVjOiAzMywKLQkJCQl9LAorCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogY2xpZW50
VGVzdCwKKwkJbmFtZTogICAgICJUb29NYW55Q2hhbmdlQ2lwaGVyU3BlYy1DbGllbnQtVExTMTMi
LAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1
Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kRXh0cmFDaGFuZ2VDaXBoZXJTcGVjOiAzMywKIAkJ
CX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJc2hvdWxkRmFpbDogICAgdHJ1ZSwK
LQkJCWV4cGVjdGVkRXJyb3I6ICI6VE9PX01BTllfRU1QVFlfRlJBR01FTlRTOiIsCi0JCX0pCisJ
CX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6VE9PX01BTllf
RU1QVFlfRlJBR01FTlRTOiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2Vz
LCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJUb29N
YW55Q2hhbmdlQ2lwaGVyU3BlYy1TZXJ2ZXItIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sK
LQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewot
CQkJCQlTZW5kRXh0cmFDaGFuZ2VDaXBoZXJTcGVjOiAzMywKLQkJCQl9LAorCXRlc3RDYXNlcyA9
IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJ
bmFtZTogICAgICJUb29NYW55Q2hhbmdlQ2lwaGVyU3BlYy1TZXJ2ZXItVExTMTMiLAorCQljb25m
aWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3Rv
Y29sQnVnc3sKKwkJCQlTZW5kRXh0cmFDaGFuZ2VDaXBoZXJTcGVjOiAzMywKIAkJCX0sCi0JCQl0
bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKLQkJCWV4cGVj
dGVkRXJyb3I6ICI6VE9PX01BTllfRU1QVFlfRlJBR01FTlRTOiIsCi0JCX0pCisJCX0sCisJCXNo
b3VsZEZhaWw6ICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6VE9PX01BTllfRU1QVFlfRlJB
R01FTlRTOiIsCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKLQkJCW5hbWU6ICJTZW5kUG9zdEhhbmRzaGFrZUNoYW5nZUNpcGhlclNwZWMtIiArIG5hbWUs
Ci0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJ
QnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlTZW5kUG9zdEhhbmRzaGFrZUNoYW5nZUNpcGhlclNw
ZWM6IHRydWUsCi0JCQkJfSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKKwkJbmFtZTogIlNlbmRQb3N0SGFuZHNoYWtlQ2hhbmdlQ2lwaGVyU3BlYy1UTFMxMyIsCisJ
CWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczog
UHJvdG9jb2xCdWdzeworCQkJCVNlbmRQb3N0SGFuZHNoYWtlQ2hhbmdlQ2lwaGVyU3BlYzogdHJ1
ZSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZhcmlhbnQsCi0JCQlzaG91bGRGYWls
OiAgICAgICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAgICAgICI6VU5FWFBFQ1RFRF9SRUNP
UkQ6IiwKLQkJCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBlcnJvcjogdW5leHBlY3RlZCBt
ZXNzYWdlIiwKLQkJfSkKKwkJfSwKKwkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAorCQlleHBl
Y3RlZEVycm9yOiAgICAgICI6VU5FWFBFQ1RFRF9SRUNPUkQ6IiwKKwkJZXhwZWN0ZWRMb2NhbEVy
cm9yOiAicmVtb3RlIGVycm9yOiB1bmV4cGVjdGVkIG1lc3NhZ2UiLAorCX0pCiAKLQkJZm9vU3Ry
aW5nIDo9ICJmb28iCi0JCWJhclN0cmluZyA6PSAiYmFyIgorCWZvb1N0cmluZyA6PSAiZm9vIgor
CWJhclN0cmluZyA6PSAiYmFyIgogCi0JCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IHJlcG9ydHMg
dGhlIGNvcnJlY3QgQUxQTiBhZnRlciBhIDAtUlRUIHJlamVjdAotCQkvLyB0aGF0IGNoYW5nZWQg
aXQuCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5
cGU6IGNsaWVudFRlc3QsCi0JCQluYW1lOiAgICAgIkVhcmx5RGF0YS1BTFBOTWlzbWF0Y2gtQ2xp
ZW50LSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogICAgICAg
VmVyc2lvblRMUzEzLAotCQkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAotCQkJCUJ1Z3M6IFBy
b3RvY29sQnVnc3sKLQkJCQkJQUxQTlByb3RvY29sOiAmZm9vU3RyaW5nLAotCQkJCX0sCi0JCQl9
LAotCQkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewotCQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNp
b25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKLQkJCQlCdWdzOiBQcm90b2Nv
bEJ1Z3N7Ci0JCQkJCUFMUE5Qcm90b2NvbDogJmJhclN0cmluZywKLQkJCQl9LAorCS8vIFRlc3Qg
dGhhdCB0aGUgY2xpZW50IHJlcG9ydHMgdGhlIGNvcnJlY3QgQUxQTiBhZnRlciBhIDAtUlRUIHJl
amVjdAorCS8vIHRoYXQgY2hhbmdlZCBpdC4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2Vz
LCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiRWFybHlE
YXRhLUFMUE5NaXNtYXRjaC1DbGllbnQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1h
eFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0
LAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCUFMUE5Qcm90b2NvbDogJmZvb1N0cmluZywK
IAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJcmVzdW1lU2Vzc2lvbjogdHJ1
ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWFkdmVydGlzZS1hbHBuIiwgIlx4MDNmb29c
eDAzYmFyIiwKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVjdC10aWNrZXQt
c3VwcG9ydHMtZWFybHktZGF0YSIsCi0JCQkJIi1leHBlY3QtcmVqZWN0LWVhcmx5LWRhdGEiLAot
CQkJCSItb24taW5pdGlhbC1leHBlY3QtYWxwbiIsICJmb28iLAotCQkJCSItb24tcmVzdW1lLWV4
cGVjdC1hbHBuIiwgImZvbyIsCi0JCQkJIi1vbi1yZXRyeS1leHBlY3QtYWxwbiIsICJiYXIiLAor
CQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJz
aW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKKwkJCUJ1Z3M6IFByb3RvY29s
QnVnc3sKKwkJCQlBTFBOUHJvdG9jb2w6ICZiYXJTdHJpbmcsCiAJCQl9LAotCQl9KQorCQl9LAor
CQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWFkdmVydGlz
ZS1hbHBuIiwgIlx4MDNmb29ceDAzYmFyIiwKKwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJ
Ii1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAorCQkJIi1leHBlY3QtcmVqZWN0
LWVhcmx5LWRhdGEiLAorCQkJLy8gVGhlIGNsaWVudCBkb2VzIG5vdCBsZWFybiBBTFBOIHdhcyB0
aGUgY2F1c2UuCisJCQkiLW9uLXJldHJ5LWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJwZWVy
X2RlY2xpbmVkIiwKKwkJCS8vIEluIHRoZSAwLVJUVCBzdGF0ZSwgd2Ugc3VyZmFjZSB0aGUgcHJl
ZGljdGVkIEFMUE4uIEFmdGVyCisJCQkvLyBwcm9jZXNzaW5nIHRoZSByZWplY3QsIHdlIHN1cmZh
Y2UgdGhlIHJlYWwgb25lLgorCQkJIi1vbi1pbml0aWFsLWV4cGVjdC1hbHBuIiwgImZvbyIsCisJ
CQkiLW9uLXJlc3VtZS1leHBlY3QtYWxwbiIsICJmb28iLAorCQkJIi1vbi1yZXRyeS1leHBlY3Qt
YWxwbiIsICJiYXIiLAorCQl9LAorCX0pCiAKLQkJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQgcmVw
b3J0cyB0aGUgY29ycmVjdCBBTFBOIGFmdGVyIGEgMC1SVFQgcmVqZWN0IGlmCi0JCS8vIEFMUE4g
d2FzIG9taXR0ZWQgZnJvbSB0aGUgZmlyc3QgY29ubmVjdGlvbi4KLQkJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJCW5h
bWU6ICAgICAiRWFybHlEYXRhLUFMUE5PbWl0dGVkMS1DbGllbnQtIiArIG5hbWUsCi0JCQljb25m
aWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCi0JCQkJTWF4
RWFybHlEYXRhU2l6ZTogMTYzODQsCi0JCQl9LAotCQkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewot
CQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXpl
OiAxNjM4NCwKLQkJCQlOZXh0UHJvdG9zOiAgICAgICBbXXN0cmluZ3siZm9vIn0sCi0JCQl9LAot
CQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXJlc3VtZVNlc3Npb246IHRydWUsCi0JCQlm
bGFnczogW11zdHJpbmd7Ci0JCQkJIi1hZHZlcnRpc2UtYWxwbiIsICJceDAzZm9vXHgwM2JhciIs
Ci0JCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCi0JCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRz
LWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1kYXRhIiwKLQkJCQkiLW9u
LWluaXRpYWwtZXhwZWN0LWFscG4iLCAiIiwKLQkJCQkiLW9uLXJlc3VtZS1leHBlY3QtYWxwbiIs
ICIiLAotCQkJCSItb24tcmV0cnktZXhwZWN0LWFscG4iLCAiZm9vIiwKLQkJCQkiLW9uLXJlc3Vt
ZS1zaGltLXdyaXRlcy1maXJzdCIsCi0JCQl9LAotCQl9KQorCS8vIFRlc3QgdGhhdCB0aGUgY2xp
ZW50IHJlcG9ydHMgdGhlIGNvcnJlY3QgQUxQTiBhZnRlciBhIDAtUlRUIHJlamVjdCBpZgorCS8v
IEFMUE4gd2FzIG9taXR0ZWQgZnJvbSB0aGUgZmlyc3QgY29ubmVjdGlvbi4KKwl0ZXN0Q2FzZXMg
PSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJ
CW5hbWU6ICAgICAiRWFybHlEYXRhLUFMUE5PbWl0dGVkMS1DbGllbnQtVExTMTMiLAorCQljb25m
aWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCU1heEVh
cmx5RGF0YVNpemU6IDE2Mzg0LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25maWd7CisJCQlN
YXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4
NCwKKwkJCU5leHRQcm90b3M6ICAgICAgIFtdc3RyaW5neyJmb28ifSwKKwkJfSwKKwkJcmVzdW1l
U2Vzc2lvbjogdHJ1ZSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1hZHZlcnRpc2UtYWxwbiIs
ICJceDAzZm9vXHgwM2JhciIsCisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0
LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1k
YXRhIiwKKwkJCS8vIFRoZSBjbGllbnQgZG9lcyBub3QgbGVhcm4gQUxQTiB3YXMgdGhlIGNhdXNl
LgorCQkJIi1vbi1yZXRyeS1leHBlY3QtZWFybHktZGF0YS1yZWFzb24iLCAicGVlcl9kZWNsaW5l
ZCIsCisJCQkvLyBJbiB0aGUgMC1SVFQgc3RhdGUsIHdlIHN1cmZhY2UgdGhlIHByZWRpY3RlZCBB
TFBOLiBBZnRlcgorCQkJLy8gcHJvY2Vzc2luZyB0aGUgcmVqZWN0LCB3ZSBzdXJmYWNlIHRoZSBy
ZWFsIG9uZS4KKwkJCSItb24taW5pdGlhbC1leHBlY3QtYWxwbiIsICIiLAorCQkJIi1vbi1yZXN1
bWUtZXhwZWN0LWFscG4iLCAiIiwKKwkJCSItb24tcmV0cnktZXhwZWN0LWFscG4iLCAiZm9vIiwK
KwkJCSItb24tcmVzdW1lLXNoaW0td3JpdGVzLWZpcnN0IiwKKwkJfSwKKwl9KQogCi0JCS8vIFRl
c3QgdGhhdCB0aGUgY2xpZW50IHJlcG9ydHMgdGhlIGNvcnJlY3QgQUxQTiBhZnRlciBhIDAtUlRU
IHJlamVjdCBpZgotCQkvLyBBTFBOIHdhcyBvbWl0dGVkIGZyb20gdGhlIHNlY29uZCBjb25uZWN0
aW9uLgotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RU
eXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURhdGEtQUxQTk9taXR0ZWQyLUNs
aWVudC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246ICAgICAg
IFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKLQkJCQlOZXh0UHJv
dG9zOiAgICAgICBbXXN0cmluZ3siZm9vIn0sCi0JCQl9LAotCQkJcmVzdW1lQ29uZmlnOiAmQ29u
ZmlnewotCQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURh
dGFTaXplOiAxNjM4NCwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJcmVz
dW1lU2Vzc2lvbjogdHJ1ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWFkdmVydGlzZS1h
bHBuIiwgIlx4MDNmb29ceDAzYmFyIiwKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQki
LWV4cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHktZGF0YSIsCi0JCQkJIi1leHBlY3QtcmVqZWN0
LWVhcmx5LWRhdGEiLAotCQkJCSItb24taW5pdGlhbC1leHBlY3QtYWxwbiIsICJmb28iLAotCQkJ
CSItb24tcmVzdW1lLWV4cGVjdC1hbHBuIiwgImZvbyIsCi0JCQkJIi1vbi1yZXRyeS1leHBlY3Qt
YWxwbiIsICIiLAotCQkJCSItb24tcmVzdW1lLXNoaW0td3JpdGVzLWZpcnN0IiwKLQkJCX0sCi0J
CX0pCisJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQgcmVwb3J0cyB0aGUgY29ycmVjdCBBTFBOIGFm
dGVyIGEgMC1SVFQgcmVqZWN0IGlmCisJLy8gQUxQTiB3YXMgb21pdHRlZCBmcm9tIHRoZSBzZWNv
bmQgY29ubmVjdGlvbi4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsK
KwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiRWFybHlEYXRhLUFMUE5PbWl0
dGVkMi1DbGllbnQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAg
ICAgIFZlcnNpb25UTFMxMywKKwkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAorCQkJTmV4dFBy
b3RvczogICAgICAgW11zdHJpbmd7ImZvbyJ9LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZDb25m
aWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFT
aXplOiAxNjM4NCwKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKKwkJZmxhZ3M6IFtdc3Ry
aW5neworCQkJIi1hZHZlcnRpc2UtYWxwbiIsICJceDAzZm9vXHgwM2JhciIsCisJCQkiLWVuYWJs
ZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwK
KwkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1kYXRhIiwKKwkJCS8vIFRoZSBjbGllbnQgZG9lcyBu
b3QgbGVhcm4gQUxQTiB3YXMgdGhlIGNhdXNlLgorCQkJIi1vbi1yZXRyeS1leHBlY3QtZWFybHkt
ZGF0YS1yZWFzb24iLCAicGVlcl9kZWNsaW5lZCIsCisJCQkvLyBJbiB0aGUgMC1SVFQgc3RhdGUs
IHdlIHN1cmZhY2UgdGhlIHByZWRpY3RlZCBBTFBOLiBBZnRlcgorCQkJLy8gcHJvY2Vzc2luZyB0
aGUgcmVqZWN0LCB3ZSBzdXJmYWNlIHRoZSByZWFsIG9uZS4KKwkJCSItb24taW5pdGlhbC1leHBl
Y3QtYWxwbiIsICJmb28iLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWFscG4iLCAiZm9vIiwKKwkJ
CSItb24tcmV0cnktZXhwZWN0LWFscG4iLCAiIiwKKwkJCSItb24tcmVzdW1lLXNoaW0td3JpdGVz
LWZpcnN0IiwKKwkJfSwKKwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IGVuZm9yY2Vz
IEFMUE4gbWF0Y2ggb24gMC1SVFQgYWNjZXB0LgotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICJF
YXJseURhdGEtQmFkQUxQTk1pc21hdGNoLUNsaWVudC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29u
ZmlnewotCQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURh
dGFTaXplOiAxNjM4NCwKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCUFMUE5Qcm90b2Nv
bDogJmZvb1N0cmluZywKLQkJCQl9LAotCQkJfSwKLQkJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sK
LQkJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCi0JCQkJTWF4RWFybHlEYXRhU2l6
ZTogMTYzODQsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlBbHdheXNBY2NlcHRFYXJs
eURhdGE6IHRydWUsCi0JCQkJCUFMUE5Qcm90b2NvbDogICAgICAgICAgJmJhclN0cmluZywKLQkJ
CQl9LAorCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IGVuZm9yY2VzIEFMUE4gbWF0Y2ggb24gMC1S
VFQgYWNjZXB0LgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0
ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJbmFtZTogICAgICJFYXJseURhdGEtQmFkQUxQTk1pc21h
dGNoLUNsaWVudC1UTFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogICAg
ICAgVmVyc2lvblRMUzEzLAorCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCisJCQlCdWdzOiBQ
cm90b2NvbEJ1Z3N7CisJCQkJQUxQTlByb3RvY29sOiAmZm9vU3RyaW5nLAogCQkJfSwKLQkJCXRs
czEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAotCQkJZmxhZ3M6
IFtdc3RyaW5newotCQkJCSItYWR2ZXJ0aXNlLWFscG4iLCAiXHgwM2Zvb1x4MDNiYXIiLAotCQkJ
CSItZW5hYmxlLWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJs
eS1kYXRhIiwKLQkJCQkiLW9uLWluaXRpYWwtZXhwZWN0LWFscG4iLCAiZm9vIiwKLQkJCQkiLW9u
LXJlc3VtZS1leHBlY3QtYWxwbiIsICJmb28iLAotCQkJCSItb24tcmV0cnktZXhwZWN0LWFscG4i
LCAiYmFyIiwKKwkJfSwKKwkJcmVzdW1lQ29uZmlnOiAmQ29uZmlneworCQkJTWF4VmVyc2lvbjog
ICAgICAgVmVyc2lvblRMUzEzLAorCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCisJCQlCdWdz
OiBQcm90b2NvbEJ1Z3N7CisJCQkJQWx3YXlzQWNjZXB0RWFybHlEYXRhOiB0cnVlLAorCQkJCUFM
UE5Qcm90b2NvbDogICAgICAgICAgJmJhclN0cmluZywKIAkJCX0sCi0JCQlzaG91bGRGYWlsOiAg
ICB0cnVlLAotCQkJZXhwZWN0ZWRFcnJvcjogIjpBTFBOX01JU01BVENIX09OX0VBUkxZX0RBVEE6
IiwKLQkJfSkKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKKwkJZmxhZ3M6IFtdc3RyaW5n
eworCQkJIi1hZHZlcnRpc2UtYWxwbiIsICJceDAzZm9vXHgwM2JhciIsCisJCQkiLWVuYWJsZS1l
YXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkJ
CSItb24taW5pdGlhbC1leHBlY3QtYWxwbiIsICJmb28iLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0
LWFscG4iLCAiZm9vIiwKKwkJCSItb24tcmV0cnktZXhwZWN0LWFscG4iLCAiYmFyIiwKKwkJfSwK
KwkJc2hvdWxkRmFpbDogICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogIjpBTFBOX01JU01BVENI
X09OX0VBUkxZX0RBVEE6IiwKKwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IGRvZXMg
bm90IG9mZmVyIGVhcmx5IGRhdGEgaWYgaXQgaXMgaW5jb21wYXRpYmxlCi0JCS8vIHdpdGggQUxQ
TiBwcmVmZXJlbmNlcy4KLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7
Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJCW5hbWU6ICAgICAiRWFybHlEYXRhLUFMUE5Q
cmVmZXJlbmNlQ2hhbmdlZC0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZl
cnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwK
LQkJCQlOZXh0UHJvdG9zOiAgICAgICBbXXN0cmluZ3siZm9vIiwgImJhciJ9LAotCQkJfSwKLQkJ
CXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAotCQkJZmxh
Z3M6IFtdc3RyaW5newotCQkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXRp
Y2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVjdC1uby1vZmZlci1lYXJseS1k
YXRhIiwKLQkJCQkiLW9uLWluaXRpYWwtYWR2ZXJ0aXNlLWFscG4iLCAiXHgwM2ZvbyIsCi0JCQkJ
Ii1vbi1yZXN1bWUtYWR2ZXJ0aXNlLWFscG4iLCAiXHgwM2JhciIsCi0JCQkJIi1vbi1pbml0aWFs
LWV4cGVjdC1hbHBuIiwgImZvbyIsCi0JCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWFscG4iLCAiYmFy
IiwKLQkJCX0sCi0JCX0pCisJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQgZG9lcyBub3Qgb2ZmZXIg
ZWFybHkgZGF0YSBpZiBpdCBpcyBpbmNvbXBhdGlibGUKKwkvLyB3aXRoIEFMUE4gcHJlZmVyZW5j
ZXMuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBl
OiBjbGllbnRUZXN0LAorCQluYW1lOiAgICAgIkVhcmx5RGF0YS1BTFBOUHJlZmVyZW5jZUNoYW5n
ZWQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAgICAgIFZlcnNp
b25UTFMxMywKKwkJCU1heEVhcmx5RGF0YVNpemU6IDE2Mzg0LAorCQkJTmV4dFByb3RvczogICAg
ICAgW11zdHJpbmd7ImZvbyIsICJiYXIifSwKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwK
KwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCisJCQkiLWV4cGVj
dC10aWNrZXQtc3VwcG9ydHMtZWFybHktZGF0YSIsCisJCQkiLWV4cGVjdC1uby1vZmZlci1lYXJs
eS1kYXRhIiwKKwkJCS8vIE9mZmVyIGRpZmZlcmVudCBBTFBOIHZhbHVlcyBpbiB0aGUgaW5pdGlh
bCBhbmQgcmVzdW1wdGlvbi4KKwkJCSItb24taW5pdGlhbC1hZHZlcnRpc2UtYWxwbiIsICJceDAz
Zm9vIiwKKwkJCSItb24taW5pdGlhbC1leHBlY3QtYWxwbiIsICJmb28iLAorCQkJIi1vbi1yZXN1
bWUtYWR2ZXJ0aXNlLWFscG4iLCAiXHgwM2JhciIsCisJCQkiLW9uLXJlc3VtZS1leHBlY3QtYWxw
biIsICJiYXIiLAorCQkJLy8gVGhlIEFMUE4gbWlzbWF0Y2ggY29tZXMgZnJvbSB0aGUgY2xpZW50
LCBzbyBpdCByZXBvcnRzIGl0IGFzIHRoZQorCQkJLy8gcmVhc29uLgorCQkJIi1vbi1yZXN1bWUt
ZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29uIiwgImFscG5fbWlzbWF0Y2giLAorCQl9LAorCX0pCiAK
LQkJLy8gVGVzdCB0aGF0IHRoZSBzZXJ2ZXIgY29ycmVjdGx5IHJlamVjdHMgMC1SVFQgd2hlbiB0
aGUgcHJldmlvdXMKLQkJLy8gc2Vzc2lvbiBkaWQgbm90IGFsbG93IGVhcmx5IGRhdGEgb24gcmVz
dW1wdGlvbi4KLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0
ZXN0VHlwZTogc2VydmVyVGVzdCwKLQkJCW5hbWU6ICAgICAiRWFybHlEYXRhLU5vblplcm9SVFRT
ZXNzaW9uLVNlcnZlci0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNp
b246IFZlcnNpb25UTFMxMywKLQkJCX0sCi0JCQlyZXN1bWVDb25maWc6ICZDb25maWd7Ci0JCQkJ
TWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJ
U2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCi0JCQkJCUV4
cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiBmYWxzZSwKLQkJCQl9LAotCQkJfSwKLQkJCXRsczEzVmFy
aWFudDogIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAotCQkJZmxhZ3M6IFtdc3Ry
aW5newotCQkJCSItb24tcmVzdW1lLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVjdC1y
ZWplY3QtZWFybHktZGF0YSIsCi0JCQl9LAotCQl9KQorCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50
IGRvZXMgbm90IG9mZmVyIDAtUlRUIHRvIHNlcnZlcnMgd2hpY2ggbmV2ZXIKKwkvLyBhZHZlcnRp
c2UgaXQuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RU
eXBlOiBjbGllbnRUZXN0LAorCQluYW1lOiAgICAgIkVhcmx5RGF0YS1Ob25aZXJvUlRUU2Vzc2lv
bi1DbGllbnQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNp
b25UTFMxMywKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKKwkJZmxhZ3M6IFtdc3RyaW5n
eworCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCisJCQkiLW9uLXJlc3VtZS1leHBlY3Qtbm8tb2Zm
ZXItZWFybHktZGF0YSIsCisJCQkvLyBUaGUgY2xpZW50IGRlY2xpbmVzIHRvIG9mZmVyIDAtUlRU
IGJlY2F1c2Ugb2YgdGhlIHNlc3Npb24uCisJCQkiLW9uLXJlc3VtZS1leHBlY3QtZWFybHktZGF0
YS1yZWFzb24iLCAidW5zdXBwb3J0ZWRfZm9yX3Nlc3Npb24iLAorCQl9LAorCX0pCiAKLQkJLy8g
VGVzdCB0aGF0IHdlIHJlamVjdCBlYXJseSBkYXRhIHdoZXJlIEFMUE4gaXMgb21pdHRlZCBmcm9t
IHRoZSBmaXJzdAotCQkvLyBjb25uZWN0aW9uLgotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENh
c2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJF
YXJseURhdGEtQUxQTk9taXR0ZWQxLVNlcnZlci0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmln
ewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCQlOZXh0UHJvdG9zOiBbXXN0cmlu
Z3t9LAotCQkJfSwKLQkJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBW
ZXJzaW9uVExTMTMsCi0JCQkJTmV4dFByb3RvczogW11zdHJpbmd7ImZvbyJ9LAotCQkJCUJ1Z3M6
IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtdW11ieXRle3sx
LCAyLCAzLCA0fX0sCi0JCQkJCUV4cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiBmYWxzZSwKLQkJCQl9
LAotCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNzaW9uOiB0
cnVlLAotCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAotCQkJ
CSItb24taW5pdGlhbC1zZWxlY3QtYWxwbiIsICIiLAotCQkJCSItb24tcmVzdW1lLXNlbGVjdC1h
bHBuIiwgImZvbyIsCisJLy8gVGVzdCB0aGF0IHRoZSBzZXJ2ZXIgY29ycmVjdGx5IHJlamVjdHMg
MC1SVFQgd2hlbiB0aGUgcHJldmlvdXMKKwkvLyBzZXNzaW9uIGRpZCBub3QgYWxsb3cgZWFybHkg
ZGF0YSBvbiByZXN1bXB0aW9uLgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RD
YXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJFYXJseURhdGEtTm9u
WmVyb1JUVFNlc3Npb24tU2VydmVyLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhW
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCX0sCisJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sKKwkJ
CU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlT
ZW5kRWFybHlEYXRhOiAgICAgICAgICAgW11bXWJ5dGV7ezEsIDIsIDMsIDR9fSwKKwkJCQlFeHBl
Y3RFYXJseURhdGFBY2NlcHRlZDogZmFsc2UsCiAJCQl9LAotCQl9KQorCQl9LAorCQlyZXN1bWVT
ZXNzaW9uOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLW9uLXJlc3VtZS1lbmFibGUt
ZWFybHktZGF0YSIsCisJCQkiLWV4cGVjdC1yZWplY3QtZWFybHktZGF0YSIsCisJCQkvLyBUaGUg
c2VydmVyIHJlamVjdHMgMC1SVFQgYmVjYXVzZSBvZiB0aGUgc2Vzc2lvbi4KKwkJCSItb24tcmVz
dW1lLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJ1bnN1cHBvcnRlZF9mb3Jfc2Vzc2lvbiIs
CisJCX0sCisJfSkKIAotCQkvLyBUZXN0IHRoYXQgd2UgcmVqZWN0IGVhcmx5IGRhdGEgd2hlcmUg
QUxQTiBpcyBvbWl0dGVkIGZyb20gdGhlIHNlY29uZAotCQkvLyBjb25uZWN0aW9uLgotCQl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJU
ZXN0LAotCQkJbmFtZTogICAgICJFYXJseURhdGEtQUxQTk9taXR0ZWQyLVNlcnZlci0iICsgbmFt
ZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJ
CQlOZXh0UHJvdG9zOiBbXXN0cmluZ3siZm9vIn0sCisJLy8gVGVzdCB0aGF0IHdlIHJlamVjdCBl
YXJseSBkYXRhIHdoZXJlIEFMUE4gaXMgb21pdHRlZCBmcm9tIHRoZSBmaXJzdAorCS8vIGNvbm5l
Y3Rpb24uCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RU
eXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIkVhcmx5RGF0YS1BTFBOT21pdHRlZDEtU2Vy
dmVyLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExT
MTMsCisJCQlOZXh0UHJvdG9zOiBbXXN0cmluZ3t9LAorCQl9LAorCQlyZXN1bWVDb25maWc6ICZD
b25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlOZXh0UHJvdG9zOiBbXXN0
cmluZ3siZm9vIn0sCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2VuZEVhcmx5RGF0YTog
ICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhwZWN0RWFybHlEYXRhQWNj
ZXB0ZWQ6IGZhbHNlLAogCQkJfSwKLQkJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sKLQkJCQlNYXhW
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQkJTmV4dFByb3RvczogW11zdHJpbmd7fSwKLQkJCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRFYXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0
ZXt7MSwgMiwgMywgNH19LAotCQkJCQlFeHBlY3RFYXJseURhdGFBY2NlcHRlZDogZmFsc2UsCi0J
CQkJfSwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJcmVzdW1lU2Vzc2lv
bjogdHJ1ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwK
LQkJCQkiLW9uLWluaXRpYWwtc2VsZWN0LWFscG4iLCAiZm9vIiwKLQkJCQkiLW9uLXJlc3VtZS1z
ZWxlY3QtYWxwbiIsICIiLAotCQkJfSwKLQkJfSkKKwkJfSwKKwkJcmVzdW1lU2Vzc2lvbjogdHJ1
ZSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCisJCQkiLW9u
LWluaXRpYWwtc2VsZWN0LWFscG4iLCAiIiwKKwkJCSItb24tcmVzdW1lLXNlbGVjdC1hbHBuIiwg
ImZvbyIsCisJCQkiLW9uLXJlc3VtZS1leHBlY3QtZWFybHktZGF0YS1yZWFzb24iLCAiYWxwbl9t
aXNtYXRjaCIsCisJCX0sCisJfSkKIAotCQkvLyBUZXN0IHRoYXQgd2UgcmVqZWN0IGVhcmx5IGRh
dGEgd2l0aCBtaXNtYXRjaGVkIEFMUE4uCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMs
IHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQluYW1lOiAgICAgIkVhcmx5
RGF0YS1BTFBOTWlzbWF0Y2gtU2VydmVyLSIgKyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0J
CQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCU5leHRQcm90b3M6IFtdc3RyaW5neyJm
b28ifSwKLQkJCX0sCi0JCQlyZXN1bWVDb25maWc6ICZDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjog
VmVyc2lvblRMUzEzLAotCQkJCU5leHRQcm90b3M6IFtdc3RyaW5neyJiYXIifSwKLQkJCQlCdWdz
OiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRFYXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0ZXt7
MSwgMiwgMywgNH19LAotCQkJCQlFeHBlY3RFYXJseURhdGFBY2NlcHRlZDogZmFsc2UsCi0JCQkJ
fSwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJpYW50LAotCQkJcmVzdW1lU2Vzc2lvbjog
dHJ1ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJ
CQkiLW9uLWluaXRpYWwtc2VsZWN0LWFscG4iLCAiZm9vIiwKLQkJCQkiLW9uLXJlc3VtZS1zZWxl
Y3QtYWxwbiIsICJiYXIiLAorCS8vIFRlc3QgdGhhdCB3ZSByZWplY3QgZWFybHkgZGF0YSB3aGVy
ZSBBTFBOIGlzIG9taXR0ZWQgZnJvbSB0aGUgc2Vjb25kCisJLy8gY29ubmVjdGlvbi4KKwl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRl
c3QsCisJCW5hbWU6ICAgICAiRWFybHlEYXRhLUFMUE5PbWl0dGVkMi1TZXJ2ZXItVExTMTMiLAor
CQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCU5leHRQ
cm90b3M6IFtdc3RyaW5neyJmb28ifSwKKwkJfSwKKwkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewor
CQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJTmV4dFByb3RvczogW11zdHJpbmd7fSwK
KwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlTZW5kRWFybHlEYXRhOiAgICAgICAgICAgW11b
XWJ5dGV7ezEsIDIsIDMsIDR9fSwKKwkJCQlFeHBlY3RFYXJseURhdGFBY2NlcHRlZDogZmFsc2Us
CiAJCQl9LAotCQl9KQorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQlmbGFnczogW11z
dHJpbmd7CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItb24taW5pdGlhbC1zZWxlY3Qt
YWxwbiIsICJmb28iLAorCQkJIi1vbi1yZXN1bWUtc2VsZWN0LWFscG4iLCAiIiwKKwkJCSItb24t
cmVzdW1lLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJhbHBuX21pc21hdGNoIiwKKwkJfSwK
Kwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IG9mZmVyaW5nIDAtUlRUIGFuZCBDaGFu
bmVsIElEIGZvcmJpZHMgdGhlIHNlcnZlcgotCQkvLyBmcm9tIGFjY2VwdGluZyBib3RoLgotCQl0
ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBjbGll
bnRUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURhdGFDaGFubmVsSUQtQWNjZXB0Qm90aC1DbGll
bnQtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiAgICAgICBW
ZXJzaW9uVExTMTMsCi0JCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCi0JCQkJUmVxdWVzdENo
YW5uZWxJRDogdHJ1ZSwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgIHZhcmlhbnQsCi0JCQly
ZXN1bWVTZXNzaW9uOiAgIHRydWUsCi0JCQlleHBlY3RDaGFubmVsSUQ6IHRydWUsCi0JCQlzaG91
bGRGYWlsOiAgICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAgICI6VU5FWFBFQ1RFRF9FWFRF
TlNJT05fT05fRUFSTFlfREFUQToiLAotCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCSItZW5hYmxl
LWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwK
LQkJCQkiLXNlbmQtY2hhbm5lbC1pZCIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIGNoYW5uZWxJ
REtleUZpbGUpLAorCS8vIFRlc3QgdGhhdCB3ZSByZWplY3QgZWFybHkgZGF0YSB3aXRoIG1pc21h
dGNoZWQgQUxQTi4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJ
dGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiRWFybHlEYXRhLUFMUE5NaXNtYXRj
aC1TZXJ2ZXItVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNp
b25UTFMxMywKKwkJCU5leHRQcm90b3M6IFtdc3RyaW5neyJmb28ifSwKKwkJfSwKKwkJcmVzdW1l
Q29uZmlnOiAmQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJTmV4dFBy
b3RvczogW11zdHJpbmd7ImJhciJ9LAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCVNlbmRF
YXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0ZXt7MSwgMiwgMywgNH19LAorCQkJCUV4cGVjdEVh
cmx5RGF0YUFjY2VwdGVkOiBmYWxzZSwKIAkJCX0sCi0JCX0pCisJCX0sCisJCXJlc3VtZVNlc3Np
b246IHRydWUsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAor
CQkJIi1vbi1pbml0aWFsLXNlbGVjdC1hbHBuIiwgImZvbyIsCisJCQkiLW9uLXJlc3VtZS1zZWxl
Y3QtYWxwbiIsICJiYXIiLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWVhcmx5LWRhdGEtcmVhc29u
IiwgImFscG5fbWlzbWF0Y2giLAorCQl9LAorCX0pCiAKLQkJLy8gVGVzdCB0aGF0IHRoZSBjbGll
bnQgb2ZmZXJpbmcgQ2hhbm5lbCBJRCBhbmQgMC1SVFQgYWxsb3dzIHRoZSBzZXJ2ZXIKLQkJLy8g
dG8gZGVjbGluZSAwLVJUVC4KLQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENh
c2V7Ci0JCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKLQkJCW5hbWU6ICAgICAiRWFybHlEYXRhQ2hh
bm5lbElELUFjY2VwdENoYW5uZWxJRC1DbGllbnQtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZp
Z3sKLQkJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCi0JCQkJTWF4RWFybHlEYXRh
U2l6ZTogMTYzODQsCi0JCQkJUmVxdWVzdENoYW5uZWxJRDogdHJ1ZSwKLQkJCQlCdWdzOiBQcm90
b2NvbEJ1Z3N7Ci0JCQkJCUFsd2F5c1JlamVjdEVhcmx5RGF0YTogdHJ1ZSwKLQkJCQl9LAotCQkJ
fSwKLQkJCXRsczEzVmFyaWFudDogICAgdmFyaWFudCwKLQkJCXJlc3VtZVNlc3Npb246ICAgdHJ1
ZSwKLQkJCWV4cGVjdENoYW5uZWxJRDogdHJ1ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQki
LWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHkt
ZGF0YSIsCi0JCQkJIi1zZW5kLWNoYW5uZWwtaWQiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCBj
aGFubmVsSURLZXlGaWxlKSwKLQkJCQkiLWV4cGVjdC1yZWplY3QtZWFybHktZGF0YSIsCi0JCQl9
LAotCQl9KQorCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IG9mZmVyaW5nIDAtUlRUIGFuZCBDaGFu
bmVsIElEIGZvcmJpZHMgdGhlIHNlcnZlcgorCS8vIGZyb20gYWNjZXB0aW5nIGJvdGguCisJdGVz
dENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBjbGllbnRU
ZXN0LAorCQluYW1lOiAgICAgIkVhcmx5RGF0YUNoYW5uZWxJRC1BY2NlcHRCb3RoLUNsaWVudC1U
TFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogICAgICAgVmVyc2lvblRM
UzEzLAorCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCisJCQlSZXF1ZXN0Q2hhbm5lbElEOiB0
cnVlLAorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiAgIHRydWUsCisJCWV4cGVjdENoYW5uZWxJRDog
dHJ1ZSwKKwkJc2hvdWxkRmFpbDogICAgICB0cnVlLAorCQlleHBlY3RlZEVycm9yOiAgICI6VU5F
WFBFQ1RFRF9FWFRFTlNJT05fT05fRUFSTFlfREFUQToiLAorCQlmbGFnczogW11zdHJpbmd7CisJ
CQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJs
eS1kYXRhIiwKKwkJCSItc2VuZC1jaGFubmVsLWlkIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwg
Y2hhbm5lbElES2V5RmlsZSksCisJCX0sCisJfSkKIAotCQkvLyBUZXN0IHRoYXQgdGhlIGNsaWVu
dCBvZmZlcmluZyBDaGFubmVsIElEIGFuZCAwLVJUVCBhbGxvd3MgdGhlIHNlcnZlcgotCQkvLyB0
byBkZWNsaW5lIENoYW5uZWwgSUQuCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRl
c3RDYXNlewotCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCi0JCQluYW1lOiAgICAgIkVhcmx5RGF0
YUNoYW5uZWxJRC1BY2NlcHRFYXJseURhdGEtQ2xpZW50LSIgKyBuYW1lLAotCQkJY29uZmlnOiBD
b25maWd7Ci0JCQkJTWF4VmVyc2lvbjogICAgICAgVmVyc2lvblRMUzEzLAotCQkJCU1heEVhcmx5
RGF0YVNpemU6IDE2Mzg0LAotCQkJfSwKLQkJCXRsczEzVmFyaWFudDogIHZhcmlhbnQsCi0JCQly
ZXN1bWVTZXNzaW9uOiB0cnVlLAotCQkJZmxhZ3M6IFtdc3RyaW5newotCQkJCSItZW5hYmxlLWVh
cmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKLQkJ
CQkiLXNlbmQtY2hhbm5lbC1pZCIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIGNoYW5uZWxJREtl
eUZpbGUpLAotCQkJCSItZXhwZWN0LWFjY2VwdC1lYXJseS1kYXRhIiwKKwkvLyBUZXN0IHRoYXQg
dGhlIGNsaWVudCBvZmZlcmluZyBDaGFubmVsIElEIGFuZCAwLVJUVCBhbGxvd3MgdGhlIHNlcnZl
cgorCS8vIHRvIGRlY2xpbmUgMC1SVFQuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywg
dGVzdENhc2V7CisJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAorCQluYW1lOiAgICAgIkVhcmx5RGF0
YUNoYW5uZWxJRC1BY2NlcHRDaGFubmVsSUQtQ2xpZW50LVRMUzEzIiwKKwkJY29uZmlnOiBDb25m
aWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFT
aXplOiAxNjM4NCwKKwkJCVJlcXVlc3RDaGFubmVsSUQ6IHRydWUsCisJCQlCdWdzOiBQcm90b2Nv
bEJ1Z3N7CisJCQkJQWx3YXlzUmVqZWN0RWFybHlEYXRhOiB0cnVlLAogCQkJfSwKLQkJfSkKKwkJ
fSwKKwkJcmVzdW1lU2Vzc2lvbjogICB0cnVlLAorCQlleHBlY3RDaGFubmVsSUQ6IHRydWUsCisJ
CWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5hYmxlLWVhcmx5LWRhdGEiLAorCQkJIi1leHBlY3Qt
dGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAorCQkJIi1zZW5kLWNoYW5uZWwtaWQiLCBwYXRo
LkpvaW4oKnJlc291cmNlRGlyLCBjaGFubmVsSURLZXlGaWxlKSwKKwkJCSItZXhwZWN0LXJlamVj
dC1lYXJseS1kYXRhIiwKKwkJCS8vIFRoZSBjbGllbnQgbmV2ZXIgbGVhcm5zIHRoZSByZWFzb24g
d2FzIENoYW5uZWwgSUQuCisJCQkiLW9uLXJldHJ5LWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIs
ICJwZWVyX2RlY2xpbmVkIiwKKwkJfSwKKwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0aGUgc2VydmVy
IHN1cHBvcnRpbmcgQ2hhbm5lbCBJRCBhbmQgMC1SVFQgZGVjbGluZXMgMC1SVFQKLQkJLy8gaWYg
aXQgd291bGQgbmVnb3RpYXRlIENoYW5uZWwgSUQuCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCi0JCQluYW1lOiAgICAg
IkVhcmx5RGF0YUNoYW5uZWxJRC1PZmZlckJvdGgtU2VydmVyLSIgKyBuYW1lLAotCQkJY29uZmln
OiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUNoYW5uZWxJRDog
IGNoYW5uZWxJREtleSwKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRFYXJseURh
dGE6ICAgICAgICAgICBbXVtdYnl0ZXt7MSwgMiwgMywgNH19LAotCQkJCQlFeHBlY3RFYXJseURh
dGFBY2NlcHRlZDogZmFsc2UsCi0JCQkJfSwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgIHZh
cmlhbnQsCi0JCQlyZXN1bWVTZXNzaW9uOiAgIHRydWUsCi0JCQlleHBlY3RDaGFubmVsSUQ6IHRy
dWUsCi0JCQlmbGFnczogW11zdHJpbmd7Ci0JCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCi0JCQkJ
Ii1leHBlY3QtcmVqZWN0LWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LWNoYW5uZWwtaWQiLAot
CQkJCWJhc2U2NC5TdGRFbmNvZGluZy5FbmNvZGVUb1N0cmluZyhjaGFubmVsSURCeXRlcyksCi0J
CQl9LAotCQl9KQorCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IG9mZmVyaW5nIENoYW5uZWwgSUQg
YW5kIDAtUlRUIGFsbG93cyB0aGUgc2VydmVyCisJLy8gdG8gZGVjbGluZSBDaGFubmVsIElELgor
CXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogY2xp
ZW50VGVzdCwKKwkJbmFtZTogICAgICJFYXJseURhdGFDaGFubmVsSUQtQWNjZXB0RWFybHlEYXRh
LUNsaWVudC1UTFMxMyIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogICAgICAg
VmVyc2lvblRMUzEzLAorCQkJTWF4RWFybHlEYXRhU2l6ZTogMTYzODQsCisJCX0sCisJCXJlc3Vt
ZVNlc3Npb246IHRydWUsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5hYmxlLWVhcmx5LWRh
dGEiLAorCQkJIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAorCQkJIi1zZW5k
LWNoYW5uZWwtaWQiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCBjaGFubmVsSURLZXlGaWxlKSwK
KwkJCSItb24tcmVzdW1lLWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJCQkiLW9uLXJlc3Vt
ZS1leHBlY3QtZWFybHktZGF0YS1yZWFzb24iLCAiYWNjZXB0IiwKKwkJfSwKKwl9KQogCi0JCS8v
IFRlc3QgdGhhdCB0aGUgc2VydmVyIHN1cHBvcnRpbmcgQ2hhbm5lbCBJRCBhbmQgMC1SVFQgYWNj
ZXB0cyAwLVJUVAotCQkvLyBpZiBub3Qgb2ZmZXJlZCBDaGFubmVsIElELgotCQl0ZXN0Q2FzZXMg
PSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAot
CQkJbmFtZTogICAgICJFYXJseURhdGFDaGFubmVsSUQtT2ZmZXJFYXJseURhdGEtU2VydmVyLSIg
KyBuYW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEz
LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJU2VuZEVhcmx5RGF0YTogICAgICAgICAg
IFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCi0JCQkJCUV4cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiB0
cnVlLAotCQkJCQlFeHBlY3RIYWxmUlRURGF0YTogICAgICAgW11bXWJ5dGV7ezI1NCwgMjUzLCAy
NTIsIDI1MX19LAotCQkJCX0sCi0JCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgICB2YXJpYW50LAot
CQkJcmVzdW1lU2Vzc2lvbjogICB0cnVlLAotCQkJZXhwZWN0Q2hhbm5lbElEOiBmYWxzZSwKLQkJ
CWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVj
dC1hY2NlcHQtZWFybHktZGF0YSIsCi0JCQkJIi1lbmFibGUtY2hhbm5lbC1pZCIsCisJLy8gVGVz
dCB0aGF0IHRoZSBzZXJ2ZXIgc3VwcG9ydGluZyBDaGFubmVsIElEIGFuZCAwLVJUVCBkZWNsaW5l
cyAwLVJUVAorCS8vIGlmIGl0IHdvdWxkIG5lZ290aWF0ZSBDaGFubmVsIElELgorCXRlc3RDYXNl
cyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwK
KwkJbmFtZTogICAgICJFYXJseURhdGFDaGFubmVsSUQtT2ZmZXJCb3RoLVNlcnZlci1UTFMxMyIs
CisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQ2hh
bm5lbElEOiAgY2hhbm5lbElES2V5LAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJCVNlbmRF
YXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0ZXt7MSwgMiwgMywgNH19LAorCQkJCUV4cGVjdEVh
cmx5RGF0YUFjY2VwdGVkOiBmYWxzZSwKIAkJCX0sCi0JCX0pCisJCX0sCisJCXJlc3VtZVNlc3Np
b246ICAgdHJ1ZSwKKwkJZXhwZWN0Q2hhbm5lbElEOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7
CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXJlamVjdC1lYXJseS1kYXRh
IiwKKwkJCSItZXhwZWN0LWNoYW5uZWwtaWQiLAorCQkJYmFzZTY0LlN0ZEVuY29kaW5nLkVuY29k
ZVRvU3RyaW5nKGNoYW5uZWxJREJ5dGVzKSwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1lYXJseS1k
YXRhLXJlYXNvbiIsICJjaGFubmVsX2lkIiwKKwkJfSwKKwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0
aGUgc2VydmVyIHJlamVjdHMgMC1SVFQgc3RyZWFtcyB3aXRob3V0IGVuZF9vZl9lYXJseV9kYXRh
LgotCQkvLyBUaGUgc3Vic2VxdWVudCByZWNvcmRzIHNob3VsZCBmYWlsIHRvIGRlY3J5cHQuCi0J
CXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IHNl
cnZlclRlc3QsCi0JCQluYW1lOiAgICAgIkVhcmx5RGF0YS1Ta2lwRW5kT2ZFYXJseURhdGEtIiAr
IG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMs
Ci0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlTZW5kRWFybHlEYXRhOiAgICAgICAgICAg
W11bXWJ5dGV7ezEsIDIsIDMsIDR9fSwKLQkJCQkJRXhwZWN0RWFybHlEYXRhQWNjZXB0ZWQ6IHRy
dWUsCi0JCQkJCVNraXBFbmRPZkVhcmx5RGF0YTogICAgICB0cnVlLAotCQkJCX0sCisJLy8gVGVz
dCB0aGF0IHRoZSBzZXJ2ZXIgc3VwcG9ydGluZyBDaGFubmVsIElEIGFuZCAwLVJUVCBhY2NlcHRz
IDAtUlRUCisJLy8gaWYgbm90IG9mZmVyZWQgQ2hhbm5lbCBJRC4KKwl0ZXN0Q2FzZXMgPSBhcHBl
bmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6
ICAgICAiRWFybHlEYXRhQ2hhbm5lbElELU9mZmVyRWFybHlEYXRhLVNlcnZlci1UTFMxMyIsCisJ
CWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczog
UHJvdG9jb2xCdWdzeworCQkJCVNlbmRFYXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0ZXt7MSwg
MiwgMywgNH19LAorCQkJCUV4cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiB0cnVlLAorCQkJCUV4cGVj
dEhhbGZSVFREYXRhOiAgICAgICBbXVtdYnl0ZXt7MjU0LCAyNTMsIDI1MiwgMjUxfX0sCiAJCQl9
LAotCQkJdGxzMTNWYXJpYW50OiAgICAgICB2YXJpYW50LAotCQkJcmVzdW1lU2Vzc2lvbjogICAg
ICB0cnVlLAotCQkJZmxhZ3M6ICAgICAgICAgICAgICBbXXN0cmluZ3siLWVuYWJsZS1lYXJseS1k
YXRhIn0sCi0JCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCQlleHBlY3RlZExvY2FsRXJy
b3I6ICJyZW1vdGUgZXJyb3I6IGJhZCByZWNvcmQgTUFDIiwKLQkJCWV4cGVjdGVkRXJyb3I6ICAg
ICAgIjpCQURfREVDUllQVDoiLAotCQl9KQorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiAgIHRydWUs
CisJCWV4cGVjdENoYW5uZWxJRDogZmFsc2UsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5h
YmxlLWVhcmx5LWRhdGEiLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWFjY2VwdC1lYXJseS1kYXRh
IiwKKwkJCSItZW5hYmxlLWNoYW5uZWwtaWQiLAorCQkJIi1vbi1yZXN1bWUtZXhwZWN0LWVhcmx5
LWRhdGEtcmVhc29uIiwgImFjY2VwdCIsCisJCX0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBl
bmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFt
ZTogICAgICJFYXJseURhdGEtVW5leHBlY3RlZEhhbmRzaGFrZS1TZXJ2ZXItIiArIG5hbWUsCi0J
CQljb25maWc6IENvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCi0JCQl9LAot
CQkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewotCQkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywK
LQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCVNlbmRFYXJseURhdGE6ICAgICAgICAgICBb
XVtdYnl0ZXt7MSwgMiwgMywgNH19LAotCQkJCQlTZW5kU3RyYXlFYXJseUhhbmRzaGFrZTogdHJ1
ZSwKLQkJCQkJRXhwZWN0RWFybHlEYXRhQWNjZXB0ZWQ6IHRydWUsCi0JCQkJfSwKLQkJCX0sCi0J
CQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZhcmlhbnQsCi0JCQlyZXN1bWVTZXNzaW9uOiAgICAgIHRy
dWUsCi0JCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAgICAg
ICI6VU5FWFBFQ1RFRF9NRVNTQUdFOiIsCi0JCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUg
ZXJyb3I6IHVuZXhwZWN0ZWQgbWVzc2FnZSIsCi0JCQlmbGFnczogW11zdHJpbmd7Ci0JCQkJIi1l
bmFibGUtZWFybHktZGF0YSIsCisJLy8gVGVzdCB0aGF0IHRoZSBzZXJ2ZXIgcmVqZWN0cyAwLVJU
VCBzdHJlYW1zIHdpdGhvdXQgZW5kX29mX2Vhcmx5X2RhdGEuCisJLy8gVGhlIHN1YnNlcXVlbnQg
cmVjb3JkcyBzaG91bGQgZmFpbCB0byBkZWNyeXB0LgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJF
YXJseURhdGEtU2tpcEVuZE9mRWFybHlEYXRhLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJ
CQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJ
U2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCisJCQkJRXhw
ZWN0RWFybHlEYXRhQWNjZXB0ZWQ6IHRydWUsCisJCQkJU2tpcEVuZE9mRWFybHlEYXRhOiAgICAg
IHRydWUsCiAJCQl9LAotCQl9KQorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiAgICAgIHRydWUsCisJ
CWZsYWdzOiAgICAgICAgICAgICAgW11zdHJpbmd7Ii1lbmFibGUtZWFybHktZGF0YSJ9LAorCQlz
aG91bGRGYWlsOiAgICAgICAgIHRydWUsCisJCWV4cGVjdGVkTG9jYWxFcnJvcjogInJlbW90ZSBl
cnJvcjogYmFkIHJlY29yZCBNQUMiLAorCQlleHBlY3RlZEVycm9yOiAgICAgICI6QkFEX0RFQ1JZ
UFQ6IiwKKwl9KQogCi0JCS8vIFRlc3QgdGhhdCB0aGUgY2xpZW50IHJlcG9ydHMgVExTIDEuMyBh
cyB0aGUgdmVyc2lvbiB3aGlsZSBzZW5kaW5nCi0JCS8vIGVhcmx5IGRhdGEuCi0JCXRlc3RDYXNl
cyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IGNsaWVudFRlc3Qs
Ci0JCQluYW1lOiAgICAgIkVhcmx5RGF0YS1DbGllbnQtVmVyc2lvbkFQSS0iICsgbmFtZSwKLQkJ
CWNvbmZpZzogQ29uZmlnewotCQkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKLQkJ
CQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKLQkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2YXJp
YW50LAotCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQki
LWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHkt
ZGF0YSIsCi0JCQkJIi1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LXZl
cnNpb24iLCBzdHJjb252Lkl0b2EoVmVyc2lvblRMUzEzKSwKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQo
dGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAg
ICAiRWFybHlEYXRhLVVuZXhwZWN0ZWRIYW5kc2hha2UtU2VydmVyLVRMUzEzIiwKKwkJY29uZmln
OiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCX0sCisJCXJlc3VtZUNv
bmZpZzogJkNvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFBy
b3RvY29sQnVnc3sKKwkJCQlTZW5kRWFybHlEYXRhOiAgICAgICAgICAgW11bXWJ5dGV7ezEsIDIs
IDMsIDR9fSwKKwkJCQlTZW5kU3RyYXlFYXJseUhhbmRzaGFrZTogdHJ1ZSwKKwkJCQlFeHBlY3RF
YXJseURhdGFBY2NlcHRlZDogdHJ1ZSwKIAkJCX0sCi0JCX0pCisJCX0sCisJCXJlc3VtZVNlc3Np
b246ICAgICAgdHJ1ZSwKKwkJc2hvdWxkRmFpbDogICAgICAgICB0cnVlLAorCQlleHBlY3RlZEVy
cm9yOiAgICAgICI6VU5FWFBFQ1RFRF9NRVNTQUdFOiIsCisJCWV4cGVjdGVkTG9jYWxFcnJvcjog
InJlbW90ZSBlcnJvcjogdW5leHBlY3RlZCBtZXNzYWdlIiwKKwkJZmxhZ3M6IFtdc3RyaW5newor
CQkJIi1lbmFibGUtZWFybHktZGF0YSIsCisJCX0sCisJfSkKIAotCQkvLyBUZXN0IHRoYXQgY2xp
ZW50IGFuZCBzZXJ2ZXIgYm90aCBub3RpY2UgaGFuZHNoYWtlIGVycm9ycyBhZnRlciBkYXRhCi0J
CS8vIGhhcyBzdGFydGVkIGZsb3dpbmcuCi0JCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMs
IHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCi0JCQluYW1lOiAgICAgIkVhcmx5
RGF0YS1DbGllbnQtQmFkRmluaXNoZWQtIiArIG5hbWUsCi0JCQljb25maWc6IENvbmZpZ3sKLQkJ
CQlNYXhWZXJzaW9uOiAgICAgICBWZXJzaW9uVExTMTMsCi0JCQkJTWF4RWFybHlEYXRhU2l6ZTog
MTYzODQsCi0JCQl9LAotCQkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewotCQkJCU1heFZlcnNpb246
ICAgICAgIFZlcnNpb25UTFMxMywKLQkJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKLQkJCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7Ci0JCQkJCUJhZEZpbmlzaGVkOiB0cnVlLAotCQkJCX0sCi0JCQl9
LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXJlc3VtZVNlc3Npb246IHRydWUsCi0J
CQlmbGFnczogW11zdHJpbmd7Ci0JCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCi0JCQkJIi1leHBl
Y3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAotCQkJCSItZXhwZWN0LWFjY2VwdC1lYXJs
eS1kYXRhIiwKLQkJCX0sCi0JCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCQlleHBlY3Rl
ZEVycm9yOiAgICAgICI6RElHRVNUX0NIRUNLX0ZBSUxFRDoiLAotCQkJZXhwZWN0ZWRMb2NhbEVy
cm9yOiAicmVtb3RlIGVycm9yOiBlcnJvciBkZWNyeXB0aW5nIG1lc3NhZ2UiLAotCQl9KQotCQl0
ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2
ZXJUZXN0LAotCQkJbmFtZTogICAgICJFYXJseURhdGEtU2VydmVyLUJhZEZpbmlzaGVkLSIgKyBu
YW1lLAotCQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAot
CQkJfSwKLQkJCXJlc3VtZUNvbmZpZzogJkNvbmZpZ3sKLQkJCQlNYXhWZXJzaW9uOiBWZXJzaW9u
VExTMTMsCi0JCQkJQnVnczogUHJvdG9jb2xCdWdzewotCQkJCQlTZW5kRWFybHlEYXRhOiAgICAg
ICAgICAgW11bXWJ5dGV7ezEsIDIsIDMsIDR9fSwKLQkJCQkJRXhwZWN0RWFybHlEYXRhQWNjZXB0
ZWQ6IHRydWUsCi0JCQkJCUV4cGVjdEhhbGZSVFREYXRhOiAgICAgICBbXVtdYnl0ZXt7MjU0LCAy
NTMsIDI1MiwgMjUxfX0sCi0JCQkJCUJhZEZpbmlzaGVkOiAgICAgICAgICAgICB0cnVlLAotCQkJ
CX0sCi0JCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXJlc3VtZVNlc3Npb246
IHRydWUsCi0JCQlmbGFnczogW11zdHJpbmd7Ci0JCQkJIi1lbmFibGUtZWFybHktZGF0YSIsCi0J
CQkJIi1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEiLAotCQkJfSwKLQkJCXNob3VsZEZhaWw6ICAg
ICAgICAgdHJ1ZSwKLQkJCWV4cGVjdGVkRXJyb3I6ICAgICAgIjpESUdFU1RfQ0hFQ0tfRkFJTEVE
OiIsCi0JCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IGVycm9yIGRlY3J5cHRp
bmcgbWVzc2FnZSIsCi0JCX0pCisJLy8gVGVzdCB0aGF0IHRoZSBjbGllbnQgcmVwb3J0cyBUTFMg
MS4zIGFzIHRoZSB2ZXJzaW9uIHdoaWxlIHNlbmRpbmcKKwkvLyBlYXJseSBkYXRhLgorCXRlc3RD
YXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogY2xpZW50VGVz
dCwKKwkJbmFtZTogICAgICJFYXJseURhdGEtQ2xpZW50LVZlcnNpb25BUEktVExTMTMiLAorCQlj
b25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246ICAgICAgIFZlcnNpb25UTFMxMywKKwkJCU1h
eEVhcmx5RGF0YVNpemU6IDE2Mzg0LAorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQlm
bGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXRp
Y2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1hY2NlcHQt
ZWFybHktZGF0YSIsCisJCQkiLWV4cGVjdC12ZXJzaW9uIiwgc3RyY29udi5JdG9hKFZlcnNpb25U
TFMxMyksCisJCX0sCisJfSkKIAotCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0
Q2FzZXsKLQkJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAotCQkJbmFtZTogICAgICJTZXJ2ZXItTm9u
RW1wdHlFbmRPZkVhcmx5RGF0YS0iICsgbmFtZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1h
eFZlcnNpb246IFZlcnNpb25UTFMxMywKLQkJCX0sCi0JCQlyZXN1bWVDb25maWc6ICZDb25maWd7
Ci0JCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sK
LQkJCQkJU2VuZEVhcmx5RGF0YTogICAgICAgICAgIFtdW11ieXRle3sxLCAyLCAzLCA0fX0sCi0J
CQkJCUV4cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiB0cnVlLAotCQkJCQlOb25FbXB0eUVuZE9mRWFy
bHlEYXRhOiAgdHJ1ZSwKLQkJCQl9LAorCS8vIFRlc3QgdGhhdCBjbGllbnQgYW5kIHNlcnZlciBi
b3RoIG5vdGljZSBoYW5kc2hha2UgZXJyb3JzIGFmdGVyIGRhdGEKKwkvLyBoYXMgc3RhcnRlZCBm
bG93aW5nLgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0
VHlwZTogY2xpZW50VGVzdCwKKwkJbmFtZTogICAgICJFYXJseURhdGEtQ2xpZW50LUJhZEZpbmlz
aGVkLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiAgICAgICBWZXJz
aW9uVExTMTMsCisJCQlNYXhFYXJseURhdGFTaXplOiAxNjM4NCwKKwkJfSwKKwkJcmVzdW1lQ29u
ZmlnOiAmQ29uZmlneworCQkJTWF4VmVyc2lvbjogICAgICAgVmVyc2lvblRMUzEzLAorCQkJTWF4
RWFybHlEYXRhU2l6ZTogMTYzODQsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJQmFkRmlu
aXNoZWQ6IHRydWUsCiAJCQl9LAotCQkJcmVzdW1lU2Vzc2lvbjogdHJ1ZSwKLQkJCWZsYWdzOiBb
XXN0cmluZ3sKLQkJCQkiLWVuYWJsZS1lYXJseS1kYXRhIiwKLQkJCQkiLWV4cGVjdC10aWNrZXQt
c3VwcG9ydHMtZWFybHktZGF0YSIsCi0JCQkJIi1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEiLAor
CQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVu
YWJsZS1lYXJseS1kYXRhIiwKKwkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRh
IiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJCX0sCisJCXNo
b3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogICAgICAiOkRJR0VTVF9D
SEVDS19GQUlMRUQ6IiwKKwkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3RlIGVycm9yOiBlcnJv
ciBkZWNyeXB0aW5nIG1lc3NhZ2UiLAorCX0pCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNl
cywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIkVhcmx5
RGF0YS1TZXJ2ZXItQmFkRmluaXNoZWQtVExTMTMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1h
eFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJfSwKKwkJcmVzdW1lQ29uZmlnOiAmQ29uZmlnewor
CQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQnVnczogUHJvdG9jb2xCdWdzeworCQkJ
CVNlbmRFYXJseURhdGE6ICAgICAgICAgICBbXVtdYnl0ZXt7MSwgMiwgMywgNH19LAorCQkJCUV4
cGVjdEVhcmx5RGF0YUFjY2VwdGVkOiB0cnVlLAorCQkJCUV4cGVjdEhhbGZSVFREYXRhOiAgICAg
ICBbXVtdYnl0ZXt7MjU0LCAyNTMsIDI1MiwgMjUxfX0sCisJCQkJQmFkRmluaXNoZWQ6ICAgICAg
ICAgICAgIHRydWUsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmFyaWFudCwKLQkJCXNob3Vs
ZEZhaWw6ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOkRFQ09ERV9FUlJPUjoiLAotCQl9
KQorCQl9LAorCQlyZXN1bWVTZXNzaW9uOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQki
LWVuYWJsZS1lYXJseS1kYXRhIiwKKwkJCSItb24tcmVzdW1lLWV4cGVjdC1hY2NlcHQtZWFybHkt
ZGF0YSIsCisJCX0sCisJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJv
cjogICAgICAiOkRJR0VTVF9DSEVDS19GQUlMRUQ6IiwKKwkJZXhwZWN0ZWRMb2NhbEVycm9yOiAi
cmVtb3RlIGVycm9yOiBlcnJvciBkZWNyeXB0aW5nIG1lc3NhZ2UiLAorCX0pCiAKLQkJdGVzdENh
c2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogc2VydmVyVGVz
dCwKLQkJCW5hbWU6ICAgICAiU2VydmVyU2tpcENlcnRpZmljYXRlVmVyaWZ5LSIgKyBuYW1lLAot
CQkJY29uZmlnOiBDb25maWd7Ci0JCQkJTWluVmVyc2lvbjogICBWZXJzaW9uVExTMTMsCi0JCQkJ
TWF4VmVyc2lvbjogICBWZXJzaW9uVExTMTMsCi0JCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRpZmlj
YXRle3JzYUNoYWluQ2VydGlmaWNhdGV9LAotCQkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKLQkJCQkJ
U2tpcENlcnRpZmljYXRlVmVyaWZ5OiB0cnVlLAotCQkJCX0sCi0JCQl9LAotCQkJdGxzMTNWYXJp
YW50OiAgICAgICAgICB2YXJpYW50LAotCQkJZXhwZWN0UGVlckNlcnRpZmljYXRlOiAmcnNhQ2hh
aW5DZXJ0aWZpY2F0ZSwKLQkJCWZsYWdzOiBbXXN0cmluZ3sKLQkJCQkiLWNlcnQtZmlsZSIsIHBh
dGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNoYWluQ2VydGlmaWNhdGVGaWxlKSwKLQkJCQkiLWtl
eS1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNhQ2hhaW5LZXlGaWxlKSwKLQkJCQki
LXJlcXVpcmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0ZSIsCisJdGVzdENhc2VzID0gYXBwZW5kKHRl
c3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAg
IlNlcnZlci1Ob25FbXB0eUVuZE9mRWFybHlEYXRhLVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7
CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCX0sCisJCXJlc3VtZUNvbmZpZzogJkNv
bmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVn
c3sKKwkJCQlTZW5kRWFybHlEYXRhOiAgICAgICAgICAgW11bXWJ5dGV7ezEsIDIsIDMsIDR9fSwK
KwkJCQlFeHBlY3RFYXJseURhdGFBY2NlcHRlZDogdHJ1ZSwKKwkJCQlOb25FbXB0eUVuZE9mRWFy
bHlEYXRhOiAgdHJ1ZSwKIAkJCX0sCi0JCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCQll
eHBlY3RlZEVycm9yOiAgICAgICI6VU5FWFBFQ1RFRF9NRVNTQUdFOiIsCi0JCQlleHBlY3RlZExv
Y2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IHVuZXhwZWN0ZWQgbWVzc2FnZSIsCi0JCX0pCi0JCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6IGNsaWVu
dFRlc3QsCi0JCQluYW1lOiAgICAgIkNsaWVudFNraXBDZXJ0aWZpY2F0ZVZlcmlmeS0iICsgbmFt
ZSwKLQkJCWNvbmZpZzogQ29uZmlnewotCQkJCU1pblZlcnNpb246ICAgVmVyc2lvblRMUzEzLAot
CQkJCU1heFZlcnNpb246ICAgVmVyc2lvblRMUzEzLAotCQkJCUNlcnRpZmljYXRlczogW11DZXJ0
aWZpY2F0ZXtyc2FDaGFpbkNlcnRpZmljYXRlfSwKLQkJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7Ci0J
CQkJCVNraXBDZXJ0aWZpY2F0ZVZlcmlmeTogdHJ1ZSwKLQkJCQl9LAorCQl9LAorCQlyZXN1bWVT
ZXNzaW9uOiB0cnVlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1lYXJseS1kYXRh
IiwKKwkJCSItZXhwZWN0LXRpY2tldC1zdXBwb3J0cy1lYXJseS1kYXRhIiwKKwkJCSItb24tcmVz
dW1lLWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRy
dWUsCisJCWV4cGVjdGVkRXJyb3I6ICI6REVDT0RFX0VSUk9SOiIsCisJfSkKKworCXRlc3RDYXNl
cyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwK
KwkJbmFtZTogICAgICJTZXJ2ZXJTa2lwQ2VydGlmaWNhdGVWZXJpZnktVExTMTMiLAorCQljb25m
aWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246ICAgVmVyc2lvblRMUzEzLAorCQkJTWF4VmVyc2lv
bjogICBWZXJzaW9uVExTMTMsCisJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7cnNhQ2hh
aW5DZXJ0aWZpY2F0ZX0sCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJU2tpcENlcnRpZmlj
YXRlVmVyaWZ5OiB0cnVlLAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgICAgdmFyaWFu
dCwKLQkJCWV4cGVjdFBlZXJDZXJ0aWZpY2F0ZTogJnJzYUNoYWluQ2VydGlmaWNhdGUsCi0JCQlm
bGFnczogW11zdHJpbmd7Ci0JCQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGly
LCByc2FDaGFpbkNlcnRpZmljYXRlRmlsZSksCi0JCQkJIi1rZXktZmlsZSIsIHBhdGguSm9pbigq
cmVzb3VyY2VEaXIsIHJzYUNoYWluS2V5RmlsZSksCisJCX0sCisJCWV4cGVjdFBlZXJDZXJ0aWZp
Y2F0ZTogJnJzYUNoYWluQ2VydGlmaWNhdGUsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItY2Vy
dC1maWxlIiwgcGF0aC5Kb2luKCpyZXNvdXJjZURpciwgcnNhQ2hhaW5DZXJ0aWZpY2F0ZUZpbGUp
LAorCQkJIi1rZXktZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNoYWluS2V5Rmls
ZSksCisJCQkiLXJlcXVpcmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0ZSIsCisJCX0sCisJCXNob3Vs
ZEZhaWw6ICAgICAgICAgdHJ1ZSwKKwkJZXhwZWN0ZWRFcnJvcjogICAgICAiOlVORVhQRUNURURf
TUVTU0FHRToiLAorCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IHVuZXhwZWN0
ZWQgbWVzc2FnZSIsCisJfSkKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2Fz
ZXsKKwkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCW5hbWU6ICAgICAiQ2xpZW50U2tpcENlcnRp
ZmljYXRlVmVyaWZ5LVRMUzEzIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNaW5WZXJzaW9uOiAg
IFZlcnNpb25UTFMxMywKKwkJCU1heFZlcnNpb246ICAgVmVyc2lvblRMUzEzLAorCQkJQ2VydGlm
aWNhdGVzOiBbXUNlcnRpZmljYXRle3JzYUNoYWluQ2VydGlmaWNhdGV9LAorCQkJQnVnczogUHJv
dG9jb2xCdWdzeworCQkJCVNraXBDZXJ0aWZpY2F0ZVZlcmlmeTogdHJ1ZSwKIAkJCX0sCi0JCQlz
aG91bGRGYWlsOiAgICAgICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAgICAgICI6VU5FWFBF
Q1RFRF9NRVNTQUdFOiIsCi0JCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUgZXJyb3I6IHVu
ZXhwZWN0ZWQgbWVzc2FnZSIsCi0JCX0pCi0JfQorCQl9LAorCQlleHBlY3RQZWVyQ2VydGlmaWNh
dGU6ICZyc2FDaGFpbkNlcnRpZmljYXRlLAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWNlcnQt
ZmlsZSIsIHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNoYWluQ2VydGlmaWNhdGVGaWxlKSwK
KwkJCSIta2V5LWZpbGUiLCBwYXRoLkpvaW4oKnJlc291cmNlRGlyLCByc2FDaGFpbktleUZpbGUp
LAorCQl9LAorCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCisJCWV4cGVjdGVkRXJyb3I6ICAg
ICAgIjpVTkVYUEVDVEVEX01FU1NBR0U6IiwKKwkJZXhwZWN0ZWRMb2NhbEVycm9yOiAicmVtb3Rl
IGVycm9yOiB1bmV4cGVjdGVkIG1lc3NhZ2UiLAorCX0pCisKKwkvLyBJZiB0aGUgY2xpZW50IG9y
IHNlcnZlciBoYXMgMC1SVFQgZW5hYmxlZCBidXQgZGlzYWJsZWQgVExTIDEuMywgaXQgc2hvdWxk
CisJLy8gcmVwb3J0IGEgcmVhc29uIG9mIHByb3RvY29sX3ZlcnNpb24uCisJdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiAgICAgICAgY2xpZW50VGVz
dCwKKwkJbmFtZTogICAgICAgICAgICAiRWFybHlEYXRhRW5hYmxlZC1DbGllbnQtTWF4VExTMTIi
LAorCQlleHBlY3RlZFZlcnNpb246IFZlcnNpb25UTFMxMiwKKwkJZmxhZ3M6IFtdc3RyaW5newor
CQkJIi1lbmFibGUtZWFybHktZGF0YSIsCisJCQkiLW1heC12ZXJzaW9uIiwgc3RyY29udi5JdG9h
KFZlcnNpb25UTFMxMiksCisJCQkiLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJwcm90b2Nv
bF92ZXJzaW9uIiwKKwkJfSwKKwl9KQorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRl
c3RDYXNleworCQl0ZXN0VHlwZTogICAgICAgIHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAgICAg
ICAgIkVhcmx5RGF0YUVuYWJsZWQtU2VydmVyLU1heFRMUzEyIiwKKwkJZXhwZWN0ZWRWZXJzaW9u
OiBWZXJzaW9uVExTMTIsCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItZW5hYmxlLWVhcmx5LWRh
dGEiLAorCQkJIi1tYXgtdmVyc2lvbiIsIHN0cmNvbnYuSXRvYShWZXJzaW9uVExTMTIpLAorCQkJ
Ii1leHBlY3QtZWFybHktZGF0YS1yZWFzb24iLCAicHJvdG9jb2xfdmVyc2lvbiIsCisJCX0sCisJ
fSkKKworCS8vIFRoZSBzZXJ2ZXIgYWRkaXRpb25hbGx5IHJlcG9ydHMgcHJvdG9jb2xfdmVyc2lv
biBpZiBpdCBlbmFibGVkIFRMUyAxLjMsCisJLy8gYnV0IHRoZSBwZWVyIG5lZ290aWF0ZWQgVExT
IDEuMi4gKFRoZSBjb3JyZXNwb25kaW5nIHNpdHVhdGlvbiBkb2VzIG5vdAorCS8vIGV4aXN0IG9u
IHRoZSBjbGllbnQgYmVjYXVzZSBuZWdvdGlhdGluZyBUTFMgMS4yIHdpdGggYSAwLVJUVCBDbGll
bnRIZWxsbworCS8vIGlzIGEgZmF0YWwgZXJyb3IuKQorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJF
YXJseURhdGFFbmFibGVkLVNlcnZlci1OZWdvdGlhdGVUTFMxMiIsCisJCWNvbmZpZzogQ29uZmln
eworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEyLAorCQl9LAorCQlleHBlY3RlZFZlcnNpb246
IFZlcnNpb25UTFMxMiwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1lbmFibGUtZWFybHktZGF0
YSIsCisJCQkiLWV4cGVjdC1lYXJseS1kYXRhLXJlYXNvbiIsICJwcm90b2NvbF92ZXJzaW9uIiwK
KwkJfSwKKwl9KQogfQogCiBmdW5jIGFkZFRMUzEzQ2lwaGVyUHJlZmVyZW5jZVRlc3RzKCkgewpA
QCAtMTM4MjEsNiArMTM5ODEsNyBAQCBmdW5jIGFkZFRMUzEzQ2lwaGVyUHJlZmVyZW5jZVRlc3Rz
KCkgewogCQkJCVRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsCiAJCQkJVExTX0FFU18xMjhf
R0NNX1NIQTI1NiwKIAkJCX0sCisJCQlDdXJ2ZVByZWZlcmVuY2VzOiBbXUN1cnZlSUR7Q3VydmVY
MjU1MTl9LAogCQl9LAogCQlmbGFnczogW11zdHJpbmd7CiAJCQkiLWV4cGVjdC1jaXBoZXItYWVz
Iiwgc3RyY29udi5JdG9hKGludChUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2KSksCkBAIC0x
MzgzNyw2ICsxMzk5OCw3IEBAIGZ1bmMgYWRkVExTMTNDaXBoZXJQcmVmZXJlbmNlVGVzdHMoKSB7
CiAJCQkJVExTX0FFU18xMjhfR0NNX1NIQTI1NiwKIAkJCQlUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVf
U0hBMjU2LAogCQkJfSwKKwkJCUN1cnZlUHJlZmVyZW5jZXM6IFtdQ3VydmVJRHtDdXJ2ZVgyNTUx
OX0sCiAJCX0sCiAJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCSItZXhwZWN0LWNpcGhlci1hZXMiLCBz
dHJjb252Lkl0b2EoaW50KFRMU19BRVNfMTI4X0dDTV9TSEEyNTYpKSwKQEAgLTEzODU1LDcgKzE0
MDE3LDE3NyBAQCBmdW5jIGFkZFRMUzEzQ2lwaGVyUHJlZmVyZW5jZVRlc3RzKCkgewogCQkJUHJl
ZmVyU2VydmVyQ2lwaGVyU3VpdGVzOiBmYWxzZSwKIAkJfSwKIAkJZmxhZ3M6IFtdc3RyaW5newot
CQkJIi1leHBlY3QtY2lwaGVyLWFlcyIsIHN0cmNvbnYuSXRvYShpbnQoVExTX0FFU18xMjhfR0NN
X1NIQTI1NikpLAorCQkJIi1leHBlY3QtY2lwaGVyLWFlcyIsIHN0cmNvbnYuSXRvYShpbnQoVExT
X0FFU18xMjhfR0NNX1NIQTI1NikpLAorCQkJIi1leHBlY3QtY2lwaGVyLW5vLWFlcyIsIHN0cmNv
bnYuSXRvYShpbnQoVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NikpLAorCQl9LAorCX0pCisK
KwkvLyBDRUNQUTIgcHJlZmVycyAyNTYtYml0IGNpcGhlcnMgYnV0IHdpbGwgdXNlIEFFUy0xMjgg
aWYgdGhlcmUncyBub3RoaW5nIGVsc2UuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywg
dGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlRMUzEzLUNp
cGhlclByZWZlcmVuY2UtQ0VDUFEyLUFFUzEyOE9ubHkiLAorCQljb25maWc6IENvbmZpZ3sKKwkJ
CU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUNpcGhlclN1aXRlczogW111aW50MTZ7CisJ
CQkJVExTX0FFU18xMjhfR0NNX1NIQTI1NiwKKwkJCX0sCisJCX0sCisJCWZsYWdzOiBbXXN0cmlu
Z3sKKwkJCSItY3VydmVzIiwgc3RyY29udi5JdG9hKGludChDdXJ2ZUNFQ1BRMikpLAorCQl9LAor
CX0pCisKKwkvLyBDRUNQUTJiIHByZWZlcnMgMjU2LWJpdCBjaXBoZXJzIGJ1dCB3aWxsIHVzZSBB
RVMtMTI4IGlmIHRoZXJlJ3Mgbm90aGluZyBlbHNlLgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0
Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJU
TFMxMy1DaXBoZXJQcmVmZXJlbmNlLUNFQ1BRMmItQUVTMTI4T25seSIsCisJCWNvbmZpZzogQ29u
ZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQ2lwaGVyU3VpdGVzOiBbXXVp
bnQxNnsKKwkJCQlUTFNfQUVTXzEyOF9HQ01fU0hBMjU2LAorCQkJfSwKKwkJfSwKKwkJZmxhZ3M6
IFtdc3RyaW5neworCQkJIi1jdXJ2ZXMiLCBzdHJjb252Lkl0b2EoaW50KEN1cnZlQ0VDUFEyYikp
LAorCQl9LAorCX0pCisKKwkvLyBXaGVuIGEgMjU2LWJpdCBjaXBoZXIgaXMgb2ZmZXJlZCwgZXZl
biBpZiBub3QgaW4gZmlyc3QgcGxhY2UsIGl0IHNob3VsZCBiZQorCS8vIHBpY2tlZC4KKwl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRl
c3QsCisJCW5hbWU6ICAgICAiVExTMTMtQ2lwaGVyUHJlZmVyZW5jZS1DRUNQUTItQUVTMjU2UHJl
ZmVycmVkIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMs
CisJCQlDaXBoZXJTdWl0ZXM6IFtddWludDE2eworCQkJCVRMU19BRVNfMTI4X0dDTV9TSEEyNTYs
CisJCQkJVExTX0FFU18yNTZfR0NNX1NIQTM4NCwKKwkJCX0sCisJCX0sCisJCWZsYWdzOiBbXXN0
cmluZ3sKKwkJCSItY3VydmVzIiwgc3RyY29udi5JdG9hKGludChDdXJ2ZUNFQ1BRMikpLAorCQl9
LAorCQlleHBlY3RlZENpcGhlcjogVExTX0FFU18yNTZfR0NNX1NIQTM4NCwKKwl9KQorCS8vIC4u
LiBidXQgd2hlbiBDRUNQUTIgaXNuJ3QgYmVpbmcgdXNlZCwgdGhlIGNsaWVudCdzIHByZWZlcmVu
Y2UgY29udHJvbHMuCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJ
CXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlRMUzEzLUNpcGhlclByZWZlcmVu
Y2UtQ0VDUFEyLUFFUzEyOFByZWZlcnJlZE90aGVyd2lzZSIsCisJCWNvbmZpZzogQ29uZmlnewor
CQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQ2lwaGVyU3VpdGVzOiBbXXVpbnQxNnsK
KwkJCQlUTFNfQUVTXzEyOF9HQ01fU0hBMjU2LAorCQkJCVRMU19BRVNfMjU2X0dDTV9TSEEzODQs
CisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWN1cnZlcyIsIHN0cmNvbnYu
SXRvYShpbnQoQ3VydmVYMjU1MTkpKSwKKwkJfSwKKwkJZXhwZWN0ZWRDaXBoZXI6IFRMU19BRVNf
MTI4X0dDTV9TSEEyNTYsCisJfSkKKworCS8vIFdoZW4gYSAyNTYtYml0IGNpcGhlciBpcyBvZmZl
cmVkLCBldmVuIGlmIG5vdCBpbiBmaXJzdCBwbGFjZSwgaXQgc2hvdWxkIGJlCisJLy8gcGlja2Vk
LgorCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0ZXN0VHlwZTog
c2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJUTFMxMy1DaXBoZXJQcmVmZXJlbmNlLUNFQ1BRMmIt
QUVTMjU2UHJlZmVycmVkIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNYXhWZXJzaW9uOiBWZXJz
aW9uVExTMTMsCisJCQlDaXBoZXJTdWl0ZXM6IFtddWludDE2eworCQkJCVRMU19BRVNfMTI4X0dD
TV9TSEEyNTYsCisJCQkJVExTX0FFU18yNTZfR0NNX1NIQTM4NCwKKwkJCX0sCisJCX0sCisJCWZs
YWdzOiBbXXN0cmluZ3sKKwkJCSItY3VydmVzIiwgc3RyY29udi5JdG9hKGludChDdXJ2ZUNFQ1BR
MmIpKSwKKwkJfSwKKwkJZXhwZWN0ZWRDaXBoZXI6IFRMU19BRVNfMjU2X0dDTV9TSEEzODQsCisJ
fSkKKwkvLyAuLi4gYnV0IHdoZW4gQ0VDUFEyYiBpc24ndCBiZWluZyB1c2VkLCB0aGUgY2xpZW50
J3MgcHJlZmVyZW5jZSBjb250cm9scy4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0
ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiVExTMTMtQ2lw
aGVyUHJlZmVyZW5jZS1DRUNQUTJiLUFFUzEyOFByZWZlcnJlZE90aGVyd2lzZSIsCisJCWNvbmZp
ZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAorCQkJQ2lwaGVyU3VpdGVz
OiBbXXVpbnQxNnsKKwkJCQlUTFNfQUVTXzEyOF9HQ01fU0hBMjU2LAorCQkJCVRMU19BRVNfMjU2
X0dDTV9TSEEzODQsCisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWN1cnZl
cyIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVYMjU1MTkpKSwKKwkJfSwKKwkJZXhwZWN0ZWRDaXBo
ZXI6IFRMU19BRVNfMTI4X0dDTV9TSEEyNTYsCisJfSkKKworCS8vIFRlc3QgdGhhdCBDRUNQUTIg
Y29udGludWVzIHRvIGhvbm9yIEFFUyB2cyBDaGFDaGEyMCBsb2dpYy4KKwl0ZXN0Q2FzZXMgPSBh
cHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCW5h
bWU6ICAgICAiVExTMTMtQ2lwaGVyUHJlZmVyZW5jZS1DRUNQUTItQUVTMTI4LUNoYUNoYTIwLUFF
UzI1NiIsCisJCWNvbmZpZzogQ29uZmlneworCQkJTWF4VmVyc2lvbjogVmVyc2lvblRMUzEzLAor
CQkJQ2lwaGVyU3VpdGVzOiBbXXVpbnQxNnsKKwkJCQlUTFNfQUVTXzEyOF9HQ01fU0hBMjU2LAor
CQkJCVRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsCisJCQkJVExTX0FFU18yNTZfR0NNX1NI
QTM4NCwKKwkJCX0sCisJCX0sCisJCWZsYWdzOiBbXXN0cmluZ3sKKwkJCSItY3VydmVzIiwgc3Ry
Y29udi5JdG9hKGludChDdXJ2ZUNFQ1BRMikpLAorCQkJIi1leHBlY3QtY2lwaGVyLWFlcyIsIHN0
cmNvbnYuSXRvYShpbnQoVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NikpLAorCQkJIi1leHBl
Y3QtY2lwaGVyLW5vLWFlcyIsIHN0cmNvbnYuSXRvYShpbnQoVExTX0NIQUNIQTIwX1BPTFkxMzA1
X1NIQTI1NikpLAorCQl9LAorCX0pCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVz
dENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlRMUzEzLUNpcGhl
clByZWZlcmVuY2UtQ0VDUFEyLUFFUzEyOC1BRVMyNTYtQ2hhQ2hhMjAiLAorCQljb25maWc6IENv
bmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUNpcGhlclN1aXRlczogW111
aW50MTZ7CisJCQkJVExTX0FFU18xMjhfR0NNX1NIQTI1NiwKKwkJCQlUTFNfQUVTXzI1Nl9HQ01f
U0hBMzg0LAorCQkJCVRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsCisJCQl9LAorCQl9LAor
CQlmbGFnczogW11zdHJpbmd7CisJCQkiLWN1cnZlcyIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVD
RUNQUTIpKSwKKwkJCSItZXhwZWN0LWNpcGhlci1hZXMiLCBzdHJjb252Lkl0b2EoaW50KFRMU19B
RVNfMjU2X0dDTV9TSEEzODQpKSwKKwkJCSItZXhwZWN0LWNpcGhlci1uby1hZXMiLCBzdHJjb252
Lkl0b2EoaW50KFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYpKSwKKwkJfSwKKwl9KQorCisJ
Ly8gVGVzdCB0aGF0IENFQ1BRMmIgY29udGludWVzIHRvIGhvbm9yIEFFUyB2cyBDaGFDaGEyMCBs
b2dpYy4KKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5
cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiVExTMTMtQ2lwaGVyUHJlZmVyZW5jZS1DRUNQ
UTJiLUFFUzEyOC1DaGFDaGEyMC1BRVMyNTYiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZl
cnNpb246IFZlcnNpb25UTFMxMywKKwkJCUNpcGhlclN1aXRlczogW111aW50MTZ7CisJCQkJVExT
X0FFU18xMjhfR0NNX1NIQTI1NiwKKwkJCQlUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LAor
CQkJCVRMU19BRVNfMjU2X0dDTV9TSEEzODQsCisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJp
bmd7CisJCQkiLWN1cnZlcyIsIHN0cmNvbnYuSXRvYShpbnQoQ3VydmVDRUNQUTJiKSksCisJCQki
LWV4cGVjdC1jaXBoZXItYWVzIiwgc3RyY29udi5JdG9hKGludChUTFNfQ0hBQ0hBMjBfUE9MWTEz
MDVfU0hBMjU2KSksCisJCQkiLWV4cGVjdC1jaXBoZXItbm8tYWVzIiwgc3RyY29udi5JdG9hKGlu
dChUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2KSksCisJCX0sCisJfSkKKwl0ZXN0Q2FzZXMg
PSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJ
CW5hbWU6ICAgICAiVExTMTMtQ2lwaGVyUHJlZmVyZW5jZS1DRUNQUTJiLUFFUzEyOC1BRVMyNTYt
Q2hhQ2hhMjAiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMx
MywKKwkJCUNpcGhlclN1aXRlczogW111aW50MTZ7CisJCQkJVExTX0FFU18xMjhfR0NNX1NIQTI1
NiwKKwkJCQlUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0LAorCQkJCVRMU19DSEFDSEEyMF9QT0xZMTMw
NV9TSEEyNTYsCisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWN1cnZlcyIs
IHN0cmNvbnYuSXRvYShpbnQoQ3VydmVDRUNQUTJiKSksCisJCQkiLWV4cGVjdC1jaXBoZXItYWVz
Iiwgc3RyY29udi5JdG9hKGludChUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0KSksCiAJCQkiLWV4cGVj
dC1jaXBoZXItbm8tYWVzIiwgc3RyY29udi5JdG9hKGludChUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVf
U0hBMjU2KSksCiAJCX0sCiAJfSkKQEAgLTEzOTQzLDcgKzE0Mjc1LDYgQEAgZnVuYyBhZGRSZWNv
cmRWZXJzaW9uVGVzdHMoKSB7CiAJCQkJCVNlbmRSZWNvcmRWZXJzaW9uOiAweDAzZmYsCiAJCQkJ
fSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICB2ZXIudGxzMTNWYXJpYW50LAogCQkJc2hvdWxk
RmFpbDogICAgdHJ1ZSwKIAkJCWV4cGVjdGVkRXJyb3I6ICI6V1JPTkdfVkVSU0lPTl9OVU1CRVI6
IiwKIAkJfSkKQEAgLTEzOTYwLDcgKzE0MjkxLDYgQEAgZnVuYyBhZGRSZWNvcmRWZXJzaW9uVGVz
dHMoKSB7CiAJCQkJCVNlbmRJbml0aWFsUmVjb3JkVmVyc2lvbjogMHgwM2ZmLAogCQkJCX0sCiAJ
CQl9LAotCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAogCQl9KQogCiAJCS8vIFRl
c3QgdGhhdCBnYXJiYWdlIENsaWVudEhlbGxvIHJlY29yZCB2ZXJzaW9ucyBhcmUgcmVqZWN0ZWQu
CkBAIC0xMzk3NCw3ICsxNDMwNCw2IEBAIGZ1bmMgYWRkUmVjb3JkVmVyc2lvblRlc3RzKCkgewog
CQkJCQlTZW5kSW5pdGlhbFJlY29yZFZlcnNpb246IDB4ZmZmZiwKIAkJCQl9LAogCQkJfSwKLQkJ
CXRsczEzVmFyaWFudDogIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlzaG91bGRGYWlsOiAgICB0cnVl
LAogCQkJZXhwZWN0ZWRFcnJvcjogIjpXUk9OR19WRVJTSU9OX05VTUJFUjoiLAogCQl9KQpAQCAt
MTM5OTQsNyArMTQzMjMsNiBAQCBmdW5jIGFkZENlcnRpZmljYXRlVGVzdHMoKSB7CiAJCQkJQ2Vy
dGlmaWNhdGVzOiBbXUNlcnRpZmljYXRle3JzYUNoYWluQ2VydGlmaWNhdGV9LAogCQkJCUNsaWVu
dEF1dGg6ICAgUmVxdWlyZUFueUNsaWVudENlcnQsCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiAg
ICAgICAgICB2ZXIudGxzMTNWYXJpYW50LAogCQkJZXhwZWN0UGVlckNlcnRpZmljYXRlOiAmcnNh
Q2hhaW5DZXJ0aWZpY2F0ZSwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLWNlcnQtZmlsZSIs
IHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNoYWluQ2VydGlmaWNhdGVGaWxlKSwKQEAgLTE0
MDExLDcgKzE0MzM5LDYgQEAgZnVuYyBhZGRDZXJ0aWZpY2F0ZVRlc3RzKCkgewogCQkJCU1heFZl
cnNpb246ICAgdmVyLnZlcnNpb24sCiAJCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRpZmljYXRle3Jz
YUNoYWluQ2VydGlmaWNhdGV9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgICAgdmVy
LnRsczEzVmFyaWFudCwKIAkJCWV4cGVjdFBlZXJDZXJ0aWZpY2F0ZTogJnJzYUNoYWluQ2VydGlm
aWNhdGUsCiAJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJIi1jZXJ0LWZpbGUiLCBwYXRoLkpvaW4o
KnJlc291cmNlRGlyLCByc2FDaGFpbkNlcnRpZmljYXRlRmlsZSksCkBAIC0xNDAzMCw3ICsxNDM1
Nyw2IEBAIGZ1bmMgYWRkQ2VydGlmaWNhdGVUZXN0cygpIHsKIAkJCQlNYXhWZXJzaW9uOiAgIHZl
ci52ZXJzaW9uLAogCQkJCUNlcnRpZmljYXRlczogW11DZXJ0aWZpY2F0ZXtnYXJiYWdlQ2VydGlm
aWNhdGV9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogICAgICAgdmVyLnRsczEzVmFyaWFudCwK
IAkJCXNob3VsZEZhaWw6ICAgICAgICAgdHJ1ZSwKIAkJCWV4cGVjdGVkRXJyb3I6ICAgICAgIjpD
QU5OT1RfUEFSU0VfTEVBRl9DRVJUOiIsCiAJCQlleHBlY3RlZExvY2FsRXJyb3I6ICJyZW1vdGUg
ZXJyb3I6IGVycm9yIGRlY29kaW5nIG1lc3NhZ2UiLApAQCAtMTQwNDQsNyArMTQzNzAsNiBAQCBm
dW5jIGFkZENlcnRpZmljYXRlVGVzdHMoKSB7CiAJCQkJTWF4VmVyc2lvbjogICB2ZXIudmVyc2lv
biwKIAkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7Z2FyYmFnZUNlcnRpZmljYXRlfSwK
IAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6ICAgICAgIHZlci50bHMxM1ZhcmlhbnQsCiAJCQlmbGFn
czogICAgICAgICAgICAgIFtdc3RyaW5neyItcmVxdWlyZS1hbnktY2xpZW50LWNlcnRpZmljYXRl
In0sCiAJCQlzaG91bGRGYWlsOiAgICAgICAgIHRydWUsCiAJCQlleHBlY3RlZEVycm9yOiAgICAg
ICI6Q0FOTk9UX1BBUlNFX0xFQUZfQ0VSVDoiLApAQCAtMTQwNjUsNyArMTQzOTAsNiBAQCBmdW5j
IGFkZFJldGFpbk9ubHlTSEEyNTZDbGllbnRDZXJ0VGVzdHMoKSB7CiAJCQkJTWluVmVyc2lvbjog
dmVyLnZlcnNpb24sCiAJCQkJTWF4VmVyc2lvbjogdmVyLnZlcnNpb24sCiAJCQl9LAotCQkJdGxz
MTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSIt
b24taW5pdGlhbC1yZXRhaW4tb25seS1zaGEyNTYtY2xpZW50LWNlcnQiLAogCQkJCSItb24tcmVz
dW1lLXJldGFpbi1vbmx5LXNoYTI1Ni1jbGllbnQtY2VydCIsCkBAIC0xNDA4Myw3ICsxNDQwNyw2
IEBAIGZ1bmMgYWRkUmV0YWluT25seVNIQTI1NkNsaWVudENlcnRUZXN0cygpIHsKIAkJCQlNYXhW
ZXJzaW9uOiAgIHZlci52ZXJzaW9uLAogCQkJCUNlcnRpZmljYXRlczogW11DZXJ0aWZpY2F0ZXty
c2FDZXJ0aWZpY2F0ZX0sCiAJCQl9LAotCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50
LAogCQkJZmxhZ3M6IFtdc3RyaW5newogCQkJCSItdmVyaWZ5LXBlZXIiLAogCQkJCSItb24taW5p
dGlhbC1yZXRhaW4tb25seS1zaGEyNTYtY2xpZW50LWNlcnQiLApAQCAtMTQxMDUsNyArMTQ0Mjgs
NiBAQCBmdW5jIGFkZFJldGFpbk9ubHlTSEEyNTZDbGllbnRDZXJ0VGVzdHMoKSB7CiAJCQkJTWF4
VmVyc2lvbjogICB2ZXIudmVyc2lvbiwKIAkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7
cnNhQ2VydGlmaWNhdGV9LAogCQkJfSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFu
dCwKIAkJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCQkiLXZlcmlmeS1wZWVyIiwKIAkJCQkiLW9uLWlu
aXRpYWwtcmV0YWluLW9ubHktc2hhMjU2LWNsaWVudC1jZXJ0IiwKQEAgLTE0MTI2LDcgKzE0NDQ4
LDYgQEAgZnVuYyBhZGRSZXRhaW5Pbmx5U0hBMjU2Q2xpZW50Q2VydFRlc3RzKCkgewogCQkJCU1h
eFZlcnNpb246ICAgdmVyLnZlcnNpb24sCiAJCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRpZmljYXRl
e3JzYUNlcnRpZmljYXRlfSwKIAkJCX0sCi0JCQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1Zhcmlh
bnQsCiAJCQlmbGFnczogW11zdHJpbmd7CiAJCQkJIi12ZXJpZnktcGVlciIsCiAJCQkJIi1vbi1y
ZXN1bWUtcmV0YWluLW9ubHktc2hhMjU2LWNsaWVudC1jZXJ0IiwKQEAgLTE0MTg5LDEwICsxNDUx
MCwxNzkgQEAgZnVuYyBhZGRFQ0RTQUtleVVzYWdlVGVzdHMoKSB7CiAJCQkJTWF4VmVyc2lvbjog
ICB2ZXIudmVyc2lvbiwKIAkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7Y2VydH0sCiAJ
CQl9LAotCQkJdGxzMTNWYXJpYW50OiAgdmVyLnRsczEzVmFyaWFudCwKIAkJCXNob3VsZEZhaWw6
ICAgIHRydWUsCi0JCQlleHBlY3RlZEVycm9yOiAiOkVDQ19DRVJUX05PVF9GT1JfU0lHTklORzoi
LAorCQkJZXhwZWN0ZWRFcnJvcjogIjpLRVlfVVNBR0VfQklUX0lOQ09SUkVDVDoiLAorCQl9KQor
CX0KK30KKworZnVuYyBhZGRSU0FLZXlVc2FnZVRlc3RzKCkgeworCXByaXYgOj0gcnNhQ2VydGlm
aWNhdGUuUHJpdmF0ZUtleS4oKnJzYS5Qcml2YXRlS2V5KQorCisJc2VyaWFsTnVtYmVyTGltaXQg
Oj0gbmV3KGJpZy5JbnQpLkxzaChiaWcuTmV3SW50KDEpLCAxMjgpCisJc2VyaWFsTnVtYmVyLCBl
cnIgOj0gcmFuZC5JbnQocmFuZC5SZWFkZXIsIHNlcmlhbE51bWJlckxpbWl0KQorCWlmIGVyciAh
PSBuaWwgeworCQlwYW5pYyhlcnIpCisJfQorCisJZHNUZW1wbGF0ZSA6PSB4NTA5LkNlcnRpZmlj
YXRleworCQlTZXJpYWxOdW1iZXI6IHNlcmlhbE51bWJlciwKKwkJU3ViamVjdDogcGtpeC5OYW1l
eworCQkJT3JnYW5pemF0aW9uOiBbXXN0cmluZ3siQWNtZSBDbyJ9LAorCQl9LAorCQlOb3RCZWZv
cmU6IHRpbWUuTm93KCksCisJCU5vdEFmdGVyOiAgdGltZS5Ob3coKSwKKworCQlLZXlVc2FnZTog
ICAgICAgICAgICAgIHg1MDkuS2V5VXNhZ2VEaWdpdGFsU2lnbmF0dXJlLAorCQlCYXNpY0NvbnN0
cmFpbnRzVmFsaWQ6IHRydWUsCisJfQorCisJZW5jVGVtcGxhdGUgOj0geDUwOS5DZXJ0aWZpY2F0
ZXsKKwkJU2VyaWFsTnVtYmVyOiBzZXJpYWxOdW1iZXIsCisJCVN1YmplY3Q6IHBraXguTmFtZXsK
KwkJCU9yZ2FuaXphdGlvbjogW11zdHJpbmd7IkFjbWUgQ28ifSwKKwkJfSwKKwkJTm90QmVmb3Jl
OiB0aW1lLk5vdygpLAorCQlOb3RBZnRlcjogIHRpbWUuTm93KCksCisKKwkJS2V5VXNhZ2U6ICAg
ICAgICAgICAgICB4NTA5LktleVVzYWdlS2V5RW5jaXBoZXJtZW50LAorCQlCYXNpY0NvbnN0cmFp
bnRzVmFsaWQ6IHRydWUsCisJfQorCisJZHNEZXJCeXRlcywgZXJyIDo9IHg1MDkuQ3JlYXRlQ2Vy
dGlmaWNhdGUocmFuZC5SZWFkZXIsICZkc1RlbXBsYXRlLCAmZHNUZW1wbGF0ZSwgJnByaXYuUHVi
bGljS2V5LCBwcml2KQorCWlmIGVyciAhPSBuaWwgeworCQlwYW5pYyhlcnIpCisJfQorCisJZW5j
RGVyQnl0ZXMsIGVyciA6PSB4NTA5LkNyZWF0ZUNlcnRpZmljYXRlKHJhbmQuUmVhZGVyLCAmZW5j
VGVtcGxhdGUsICZlbmNUZW1wbGF0ZSwgJnByaXYuUHVibGljS2V5LCBwcml2KQorCWlmIGVyciAh
PSBuaWwgeworCQlwYW5pYyhlcnIpCisJfQorCisJZHNDZXJ0IDo9IENlcnRpZmljYXRleworCQlD
ZXJ0aWZpY2F0ZTogW11bXWJ5dGV7ZHNEZXJCeXRlc30sCisJCVByaXZhdGVLZXk6ICBwcml2LAor
CX0KKworCWVuY0NlcnQgOj0gQ2VydGlmaWNhdGV7CisJCUNlcnRpZmljYXRlOiBbXVtdYnl0ZXtl
bmNEZXJCeXRlc30sCisJCVByaXZhdGVLZXk6ICBwcml2LAorCX0KKworCWRzU3VpdGVzIDo9IFtd
dWludDE2eworCQlUTFNfQUVTXzEyOF9HQ01fU0hBMjU2LAorCQlUTFNfRUNESEVfUlNBX1dJVEhf
QUVTXzEyOF9HQ01fU0hBMjU2LAorCQlUTFNfRUNESEVfUlNBX1dJVEhfQUVTXzEyOF9DQkNfU0hB
LAorCX0KKwllbmNTdWl0ZXMgOj0gW111aW50MTZ7CisJCVRMU19SU0FfV0lUSF9BRVNfMTI4X0dD
TV9TSEEyNTYsCisJCVRMU19SU0FfV0lUSF9BRVNfMTI4X0NCQ19TSEEsCisJfQorCisJZm9yIF8s
IHZlciA6PSByYW5nZSB0bHNWZXJzaW9ucyB7CisJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2Fz
ZXMsIHRlc3RDYXNleworCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCQluYW1lOiAgICAgIlJT
QUtleVVzYWdlLVdhbnRTaWduYXR1cmUtR290RW5jaXBoZXJtZW50LSIgKyB2ZXIubmFtZSwKKwkJ
CWNvbmZpZzogQ29uZmlneworCQkJCU1pblZlcnNpb246ICAgdmVyLnZlcnNpb24sCisJCQkJTWF4
VmVyc2lvbjogICB2ZXIudmVyc2lvbiwKKwkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7
ZW5jQ2VydH0sCisJCQkJQ2lwaGVyU3VpdGVzOiBkc1N1aXRlcywKKwkJCX0sCisJCQlzaG91bGRG
YWlsOiAgICB0cnVlLAorCQkJZXhwZWN0ZWRFcnJvcjogIjpLRVlfVVNBR0VfQklUX0lOQ09SUkVD
VDoiLAorCQkJZmxhZ3M6IFtdc3RyaW5neworCQkJCSItZW5mb3JjZS1yc2Eta2V5LXVzYWdlIiwK
KwkJCX0sCisJCX0pCisKKwkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7
CisJCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJCW5hbWU6ICAgICAiUlNBS2V5VXNhZ2UtV2Fu
dFNpZ25hdHVyZS1Hb3RTaWduYXR1cmUtIiArIHZlci5uYW1lLAorCQkJY29uZmlnOiBDb25maWd7
CisJCQkJTWluVmVyc2lvbjogICB2ZXIudmVyc2lvbiwKKwkJCQlNYXhWZXJzaW9uOiAgIHZlci52
ZXJzaW9uLAorCQkJCUNlcnRpZmljYXRlczogW11DZXJ0aWZpY2F0ZXtkc0NlcnR9LAorCQkJCUNp
cGhlclN1aXRlczogZHNTdWl0ZXMsCisJCQl9LAorCQkJZmxhZ3M6IFtdc3RyaW5neworCQkJCSIt
ZW5mb3JjZS1yc2Eta2V5LXVzYWdlIiwKKwkJCX0sCiAJCX0pCisKKwkJLy8gVExTIDEuMyByZW1v
dmVzIHRoZSBlbmNpcGhlcm1lbnQgc3VpdGVzLgorCQlpZiB2ZXIudmVyc2lvbiA8IFZlcnNpb25U
TFMxMyB7CisJCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJCQl0
ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJCQluYW1lOiAgICAgIlJTQUtleVVzYWdlLVdhbnRFbmNp
cGhlcm1lbnQtR290RW5jaXBoZXJtZW50IiArIHZlci5uYW1lLAorCQkJCWNvbmZpZzogQ29uZmln
eworCQkJCQlNaW5WZXJzaW9uOiAgIHZlci52ZXJzaW9uLAorCQkJCQlNYXhWZXJzaW9uOiAgIHZl
ci52ZXJzaW9uLAorCQkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7ZW5jQ2VydH0sCisJ
CQkJCUNpcGhlclN1aXRlczogZW5jU3VpdGVzLAorCQkJCX0sCisJCQkJZmxhZ3M6IFtdc3RyaW5n
eworCQkJCQkiLWVuZm9yY2UtcnNhLWtleS11c2FnZSIsCisJCQkJfSwKKwkJCX0pCisKKwkJCXRl
c3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQkJCXRlc3RUeXBlOiBjbGll
bnRUZXN0LAorCQkJCW5hbWU6ICAgICAiUlNBS2V5VXNhZ2UtV2FudEVuY2lwaGVybWVudC1Hb3RT
aWduYXR1cmUtIiArIHZlci5uYW1lLAorCQkJCWNvbmZpZzogQ29uZmlneworCQkJCQlNaW5WZXJz
aW9uOiAgIHZlci52ZXJzaW9uLAorCQkJCQlNYXhWZXJzaW9uOiAgIHZlci52ZXJzaW9uLAorCQkJ
CQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7ZHNDZXJ0fSwKKwkJCQkJQ2lwaGVyU3VpdGVz
OiBlbmNTdWl0ZXMsCisJCQkJfSwKKwkJCQlzaG91bGRGYWlsOiAgICB0cnVlLAorCQkJCWV4cGVj
dGVkRXJyb3I6ICI6S0VZX1VTQUdFX0JJVF9JTkNPUlJFQ1Q6IiwKKwkJCQlmbGFnczogW11zdHJp
bmd7CisJCQkJCSItZW5mb3JjZS1yc2Eta2V5LXVzYWdlIiwKKwkJCQl9LAorCQkJfSkKKworCQkJ
Ly8gSW4gMS4yIGFuZCBiZWxvdywgd2Ugc2hvdWxkIG5vdCBlbmZvcmNlIHdpdGhvdXQgdGhlIGVu
Zm9yY2UtcnNhLWtleS11c2FnZSBmbGFnLgorCQkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNl
cywgdGVzdENhc2V7CisJCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCQkJbmFtZTogICAgICJS
U0FLZXlVc2FnZS1XYW50U2lnbmF0dXJlLUdvdEVuY2lwaGVybWVudC1VbmVuZm9yY2VkIiArIHZl
ci5uYW1lLAorCQkJCWNvbmZpZzogQ29uZmlneworCQkJCQlNaW5WZXJzaW9uOiAgIHZlci52ZXJz
aW9uLAorCQkJCQlNYXhWZXJzaW9uOiAgIHZlci52ZXJzaW9uLAorCQkJCQlDZXJ0aWZpY2F0ZXM6
IFtdQ2VydGlmaWNhdGV7ZHNDZXJ0fSwKKwkJCQkJQ2lwaGVyU3VpdGVzOiBlbmNTdWl0ZXMsCisJ
CQkJfSwKKwkJCX0pCisKKwkJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNl
eworCQkJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAorCQkJCW5hbWU6ICAgICAiUlNBS2V5VXNhZ2Ut
V2FudEVuY2lwaGVybWVudC1Hb3RTaWduYXR1cmUtVW5lbmZvcmNlZCIgKyB2ZXIubmFtZSwKKwkJ
CQljb25maWc6IENvbmZpZ3sKKwkJCQkJTWluVmVyc2lvbjogICB2ZXIudmVyc2lvbiwKKwkJCQkJ
TWF4VmVyc2lvbjogICB2ZXIudmVyc2lvbiwKKwkJCQkJQ2VydGlmaWNhdGVzOiBbXUNlcnRpZmlj
YXRle2VuY0NlcnR9LAorCQkJCQlDaXBoZXJTdWl0ZXM6IGRzU3VpdGVzLAorCQkJCX0sCisJCQl9
KQorCisJCX0KKworCQlpZiB2ZXIudmVyc2lvbiA+PSBWZXJzaW9uVExTMTMgeworCQkJLy8gSW4g
MS4zIGFuZCBhYm92ZSwgd2UgZW5mb3JjZSBrZXlVc2FnZSBldmVuIHdpdGhvdXQgdGhlIGZsYWcu
CisJCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJCQl0ZXN0VHlw
ZTogY2xpZW50VGVzdCwKKwkJCQluYW1lOiAgICAgIlJTQUtleVVzYWdlLVdhbnRTaWduYXR1cmUt
R290RW5jaXBoZXJtZW50LUVuZm9yY2VkIiArIHZlci5uYW1lLAorCQkJCWNvbmZpZzogQ29uZmln
eworCQkJCQlNaW5WZXJzaW9uOiAgIHZlci52ZXJzaW9uLAorCQkJCQlNYXhWZXJzaW9uOiAgIHZl
ci52ZXJzaW9uLAorCQkJCQlDZXJ0aWZpY2F0ZXM6IFtdQ2VydGlmaWNhdGV7ZW5jQ2VydH0sCisJ
CQkJCUNpcGhlclN1aXRlczogZHNTdWl0ZXMsCisJCQkJfSwKKwkJCQlzaG91bGRGYWlsOiAgICB0
cnVlLAorCQkJCWV4cGVjdGVkRXJyb3I6ICI6S0VZX1VTQUdFX0JJVF9JTkNPUlJFQ1Q6IiwKKwkJ
CX0pCisKKwkJfQogCX0KIH0KIApAQCAtMTQyNjYsNyArMTQ3NTYsNyBAQCBmdW5jIGFkZEV4dHJh
SGFuZHNoYWtlVGVzdHMoKSB7CiAJCWZsYWdzOiBbXXN0cmluZ3sKIAkJCSItYXN5bmMiLAogCQkJ
Ii1lbmFibGUtZWFybHktZGF0YSIsCi0JCQkiLWV4cGVjdC1hY2NlcHQtZWFybHktZGF0YSIsCisJ
CQkiLW9uLXJlc3VtZS1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEiLAogCQkJIi1uby1vcC1leHRy
YS1oYW5kc2hha2UiLAogCQl9LAogCX0pCkBAIC0xNDM2NSw4ICsxNDg1NSwxMCBAQCBmdW5jIGFk
ZE9taXRFeHRlbnNpb25zVGVzdHMoKSB7CiAJCQkJCU9taXRFeHRlbnNpb25zOiB0cnVlLAogCQkJ
CQkvLyBEaXNhYmxlIGFsbCBTZXJ2ZXJIZWxsbyBleHRlbnNpb25zIHNvCiAJCQkJCS8vIE9taXRF
eHRlbnNpb25zIHdvcmtzLgotCQkJCQlOb0V4dGVuZGVkTWFzdGVyU2VjcmV0OiB0cnVlLAotCQkJ
CQlOb1JlbmVnb3RpYXRpb25JbmZvOiAgICB0cnVlLAorCQkJCQlOb0V4dGVuZGVkTWFzdGVyU2Vj
cmV0OiAgICAgICAgdHJ1ZSwKKwkJCQkJTm9SZW5lZ290aWF0aW9uSW5mbzogICAgICAgICAgIHRy
dWUsCisJCQkJCU5vT0NTUFN0YXBsaW5nOiAgICAgICAgICAgICAgICB0cnVlLAorCQkJCQlOb1Np
Z25lZENlcnRpZmljYXRlVGltZXN0YW1wczogdHJ1ZSwKIAkJCQl9LAogCQkJfSwKIAkJfSkKQEAg
LTE0MzgyLDggKzE0ODc0LDEwIEBAIGZ1bmMgYWRkT21pdEV4dGVuc2lvbnNUZXN0cygpIHsKIAkJ
CQkJRW1wdHlFeHRlbnNpb25zOiB0cnVlLAogCQkJCQkvLyBEaXNhYmxlIGFsbCBTZXJ2ZXJIZWxs
byBleHRlbnNpb25zIHNvCiAJCQkJCS8vIEVtcHR5RXh0ZW5zaW9ucyB3b3Jrcy4KLQkJCQkJTm9F
eHRlbmRlZE1hc3RlclNlY3JldDogdHJ1ZSwKLQkJCQkJTm9SZW5lZ290aWF0aW9uSW5mbzogICAg
dHJ1ZSwKKwkJCQkJTm9FeHRlbmRlZE1hc3RlclNlY3JldDogICAgICAgIHRydWUsCisJCQkJCU5v
UmVuZWdvdGlhdGlvbkluZm86ICAgICAgICAgICB0cnVlLAorCQkJCQlOb09DU1BTdGFwbGluZzog
ICAgICAgICAgICAgICAgdHJ1ZSwKKwkJCQkJTm9TaWduZWRDZXJ0aWZpY2F0ZVRpbWVzdGFtcHM6
IHRydWUsCiAJCQkJfSwKIAkJCX0sCiAJCX0pCkBAIC0xNDQ0Myw5ICsxNDkzNyw4IEBAIGZ1bmMg
YWRkQ2VydENvbXByZXNzaW9uVGVzdHMoKSB7CiAJCS8vIER1cGxpY2F0ZSBjb21wcmVzc2lvbiBh
bGdvcml0aG1zIGlzIGFuIGVycm9yLCBldmVuIGlmIG5vdGhpbmcgaXMKIAkJLy8gY29uZmlndXJl
ZC4KIAkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlw
ZTogICAgIHNlcnZlclRlc3QsCi0JCQluYW1lOiAgICAgICAgICJEdXBsaWNhdGVDZXJ0Q29tcHJl
c3Npb25FeHQtIiArIHZlci5uYW1lLAotCQkJdGxzMTNWYXJpYW50OiB2ZXIudGxzMTNWYXJpYW50
LAorCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCQluYW1lOiAgICAgIkR1cGxpY2F0ZUNlcnRD
b21wcmVzc2lvbkV4dC0iICsgdmVyLm5hbWUsCiAJCQljb25maWc6IENvbmZpZ3sKIAkJCQlNaW5W
ZXJzaW9uOiB2ZXIudmVyc2lvbiwKIAkJCQlNYXhWZXJzaW9uOiB2ZXIudmVyc2lvbiwKQEAgLTE0
NDYwLDEwICsxNDk1Myw5IEBAIGZ1bmMgYWRkQ2VydENvbXByZXNzaW9uVGVzdHMoKSB7CiAJCS8v
IFdpdGggY29tcHJlc3Npb24gYWxnb3JpdGhtcyBjb25maWd1cmVkLCBhbiBkdXBsaWNhdGUgdmFs
dWVzIHNob3VsZCBzdGlsbAogCQkvLyBiZSBhbiBlcnJvci4KIAkJdGVzdENhc2VzID0gYXBwZW5k
KHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogICAgIHNlcnZlclRlc3QsCi0JCQlu
YW1lOiAgICAgICAgICJEdXBsaWNhdGVDZXJ0Q29tcHJlc3Npb25FeHQyLSIgKyB2ZXIubmFtZSwK
LQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwKLQkJCWZsYWdzOiAgICAgICAgW11z
dHJpbmd7Ii1pbnN0YWxsLWNlcnQtY29tcHJlc3Npb24tYWxncyJ9LAorCQkJdGVzdFR5cGU6IHNl
cnZlclRlc3QsCisJCQluYW1lOiAgICAgIkR1cGxpY2F0ZUNlcnRDb21wcmVzc2lvbkV4dDItIiAr
IHZlci5uYW1lLAorCQkJZmxhZ3M6ICAgIFtdc3RyaW5neyItaW5zdGFsbC1jZXJ0LWNvbXByZXNz
aW9uLWFsZ3MifSwKIAkJCWNvbmZpZzogQ29uZmlnewogCQkJCU1pblZlcnNpb246IHZlci52ZXJz
aW9uLAogCQkJCU1heFZlcnNpb246IHZlci52ZXJzaW9uLApAQCAtMTQ0OTEsMTAgKzE0OTgzLDkg
QEAgZnVuYyBhZGRDZXJ0Q29tcHJlc3Npb25UZXN0cygpIHsKIAkJfQogCiAJCXRlc3RDYXNlcyA9
IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewotCQkJdGVzdFR5cGU6ICAgICBzZXJ2ZXJUZXN0
LAotCQkJbmFtZTogICAgICAgICAiQ2VydENvbXByZXNzaW9uRXhwYW5kcy0iICsgdmVyLm5hbWUs
Ci0JCQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCi0JCQlmbGFnczogICAgICAgIFtd
c3RyaW5neyItaW5zdGFsbC1jZXJ0LWNvbXByZXNzaW9uLWFsZ3MifSwKKwkJCXRlc3RUeXBlOiBz
ZXJ2ZXJUZXN0LAorCQkJbmFtZTogICAgICJDZXJ0Q29tcHJlc3Npb25FeHBhbmRzLSIgKyB2ZXIu
bmFtZSwKKwkJCWZsYWdzOiAgICBbXXN0cmluZ3siLWluc3RhbGwtY2VydC1jb21wcmVzc2lvbi1h
bGdzIn0sCiAJCQljb25maWc6IENvbmZpZ3sKIAkJCQlNaW5WZXJzaW9uOiAgICAgICAgICB2ZXIu
dmVyc2lvbiwKIAkJCQlNYXhWZXJzaW9uOiAgICAgICAgICB2ZXIudmVyc2lvbiwKQEAgLTE0NTA2
LDEwICsxNDk5Nyw5IEBAIGZ1bmMgYWRkQ2VydENvbXByZXNzaW9uVGVzdHMoKSB7CiAJCX0pCiAK
IAkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTog
ICAgIHNlcnZlclRlc3QsCi0JCQluYW1lOiAgICAgICAgICJDZXJ0Q29tcHJlc3Npb25TaHJpbmtz
LSIgKyB2ZXIubmFtZSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwKLQkJCWZs
YWdzOiAgICAgICAgW11zdHJpbmd7Ii1pbnN0YWxsLWNlcnQtY29tcHJlc3Npb24tYWxncyJ9LAor
CQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCQluYW1lOiAgICAgIkNlcnRDb21wcmVzc2lvblNo
cmlua3MtIiArIHZlci5uYW1lLAorCQkJZmxhZ3M6ICAgIFtdc3RyaW5neyItaW5zdGFsbC1jZXJ0
LWNvbXByZXNzaW9uLWFsZ3MifSwKIAkJCWNvbmZpZzogQ29uZmlnewogCQkJCU1pblZlcnNpb246
ICAgICAgICAgIHZlci52ZXJzaW9uLAogCQkJCU1heFZlcnNpb246ICAgICAgICAgIHZlci52ZXJz
aW9uLApAQCAtMTQ1MjMsMTAgKzE1MDEzLDkgQEAgZnVuYyBhZGRDZXJ0Q29tcHJlc3Npb25UZXN0
cygpIHsKIAkJLy8gV2l0aCBib3RoIGFsZ29yaXRobXMgY29uZmlndXJlZCwgdGhlIHNlcnZlciBz
aG91bGQgcGljayBpdHMgbW9zdAogCQkvLyBwcmVmZXJhYmxlLiAoV2hpY2ggaXMgZXhwYW5kaW5n
QWxnSWQuKQogCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRl
c3RUeXBlOiAgICAgc2VydmVyVGVzdCwKLQkJCW5hbWU6ICAgICAgICAgIkNlcnRDb21wcmVzc2lv
blByaW9yaXR5LSIgKyB2ZXIubmFtZSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFu
dCwKLQkJCWZsYWdzOiAgICAgICAgW11zdHJpbmd7Ii1pbnN0YWxsLWNlcnQtY29tcHJlc3Npb24t
YWxncyJ9LAorCQkJdGVzdFR5cGU6IHNlcnZlclRlc3QsCisJCQluYW1lOiAgICAgIkNlcnRDb21w
cmVzc2lvblByaW9yaXR5LSIgKyB2ZXIubmFtZSwKKwkJCWZsYWdzOiAgICBbXXN0cmluZ3siLWlu
c3RhbGwtY2VydC1jb21wcmVzc2lvbi1hbGdzIn0sCiAJCQljb25maWc6IENvbmZpZ3sKIAkJCQlN
aW5WZXJzaW9uOiB2ZXIudmVyc2lvbiwKIAkJCQlNYXhWZXJzaW9uOiB2ZXIudmVyc2lvbiwKQEAg
LTE0NTQxLDEwICsxNTAzMCw5IEBAIGZ1bmMgYWRkQ2VydENvbXByZXNzaW9uVGVzdHMoKSB7CiAJ
CX0pCiAKIAkJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0
VHlwZTogICAgIGNsaWVudFRlc3QsCi0JCQluYW1lOiAgICAgICAgICJDZXJ0Q29tcHJlc3Npb25F
eHBhbmRzQ2xpZW50LSIgKyB2ZXIubmFtZSwKLQkJCXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFy
aWFudCwKLQkJCWZsYWdzOiAgICAgICAgW11zdHJpbmd7Ii1pbnN0YWxsLWNlcnQtY29tcHJlc3Np
b24tYWxncyJ9LAorCQkJdGVzdFR5cGU6IGNsaWVudFRlc3QsCisJCQluYW1lOiAgICAgIkNlcnRD
b21wcmVzc2lvbkV4cGFuZHNDbGllbnQtIiArIHZlci5uYW1lLAorCQkJZmxhZ3M6ICAgIFtdc3Ry
aW5neyItaW5zdGFsbC1jZXJ0LWNvbXByZXNzaW9uLWFsZ3MifSwKIAkJCWNvbmZpZzogQ29uZmln
ewogCQkJCU1pblZlcnNpb246IHZlci52ZXJzaW9uLAogCQkJCU1heFZlcnNpb246IHZlci52ZXJz
aW9uLApAQCAtMTQ1NTgsMTAgKzE1MDQ2LDkgQEAgZnVuYyBhZGRDZXJ0Q29tcHJlc3Npb25UZXN0
cygpIHsKIAkJfSkKIAogCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsK
LQkJCXRlc3RUeXBlOiAgICAgY2xpZW50VGVzdCwKLQkJCW5hbWU6ICAgICAgICAgIkNlcnRDb21w
cmVzc2lvblNocmlua3NDbGllbnQtIiArIHZlci5uYW1lLAotCQkJdGxzMTNWYXJpYW50OiB2ZXIu
dGxzMTNWYXJpYW50LAotCQkJZmxhZ3M6ICAgICAgICBbXXN0cmluZ3siLWluc3RhbGwtY2VydC1j
b21wcmVzc2lvbi1hbGdzIn0sCisJCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJCW5hbWU6ICAg
ICAiQ2VydENvbXByZXNzaW9uU2hyaW5rc0NsaWVudC0iICsgdmVyLm5hbWUsCisJCQlmbGFnczog
ICAgW11zdHJpbmd7Ii1pbnN0YWxsLWNlcnQtY29tcHJlc3Npb24tYWxncyJ9LAogCQkJY29uZmln
OiBDb25maWd7CiAJCQkJTWluVmVyc2lvbjogdmVyLnZlcnNpb24sCiAJCQkJTWF4VmVyc2lvbjog
dmVyLnZlcnNpb24sCkBAIC0xNDU3NSwxMCArMTUwNjIsOSBAQCBmdW5jIGFkZENlcnRDb21wcmVz
c2lvblRlc3RzKCkgewogCQl9KQogCiAJCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRl
c3RDYXNlewotCQkJdGVzdFR5cGU6ICAgICBjbGllbnRUZXN0LAotCQkJbmFtZTogICAgICAgICAi
Q2VydENvbXByZXNzaW9uQmFkQWxnSWRDbGllbnQtIiArIHZlci5uYW1lLAotCQkJdGxzMTNWYXJp
YW50OiB2ZXIudGxzMTNWYXJpYW50LAotCQkJZmxhZ3M6ICAgICAgICBbXXN0cmluZ3siLWluc3Rh
bGwtY2VydC1jb21wcmVzc2lvbi1hbGdzIn0sCisJCQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJ
CW5hbWU6ICAgICAiQ2VydENvbXByZXNzaW9uQmFkQWxnSWRDbGllbnQtIiArIHZlci5uYW1lLAor
CQkJZmxhZ3M6ICAgIFtdc3RyaW5neyItaW5zdGFsbC1jZXJ0LWNvbXByZXNzaW9uLWFsZ3MifSwK
IAkJCWNvbmZpZzogQ29uZmlnewogCQkJCU1pblZlcnNpb246IHZlci52ZXJzaW9uLAogCQkJCU1h
eFZlcnNpb246IHZlci52ZXJzaW9uLApAQCAtMTQ1OTUsMTAgKzE1MDgxLDkgQEAgZnVuYyBhZGRD
ZXJ0Q29tcHJlc3Npb25UZXN0cygpIHsKIAkJfSkKIAogCQl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVz
dENhc2VzLCB0ZXN0Q2FzZXsKLQkJCXRlc3RUeXBlOiAgICAgY2xpZW50VGVzdCwKLQkJCW5hbWU6
ICAgICAgICAgIkNlcnRDb21wcmVzc2lvblRvb1NtYWxsQ2xpZW50LSIgKyB2ZXIubmFtZSwKLQkJ
CXRsczEzVmFyaWFudDogdmVyLnRsczEzVmFyaWFudCwKLQkJCWZsYWdzOiAgICAgICAgW11zdHJp
bmd7Ii1pbnN0YWxsLWNlcnQtY29tcHJlc3Npb24tYWxncyJ9LAorCQkJdGVzdFR5cGU6IGNsaWVu
dFRlc3QsCisJCQluYW1lOiAgICAgIkNlcnRDb21wcmVzc2lvblRvb1NtYWxsQ2xpZW50LSIgKyB2
ZXIubmFtZSwKKwkJCWZsYWdzOiAgICBbXXN0cmluZ3siLWluc3RhbGwtY2VydC1jb21wcmVzc2lv
bi1hbGdzIn0sCiAJCQljb25maWc6IENvbmZpZ3sKIAkJCQlNaW5WZXJzaW9uOiB2ZXIudmVyc2lv
biwKIAkJCQlNYXhWZXJzaW9uOiB2ZXIudmVyc2lvbiwKQEAgLTE0NjE1LDEwICsxNTEwMCw5IEBA
IGZ1bmMgYWRkQ2VydENvbXByZXNzaW9uVGVzdHMoKSB7CiAJCX0pCiAKIAkJdGVzdENhc2VzID0g
YXBwZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7Ci0JCQl0ZXN0VHlwZTogICAgIGNsaWVudFRlc3Qs
Ci0JCQluYW1lOiAgICAgICAgICJDZXJ0Q29tcHJlc3Npb25Ub29MYXJnZUNsaWVudC0iICsgdmVy
Lm5hbWUsCi0JCQl0bHMxM1ZhcmlhbnQ6IHZlci50bHMxM1ZhcmlhbnQsCi0JCQlmbGFnczogICAg
ICAgIFtdc3RyaW5neyItaW5zdGFsbC1jZXJ0LWNvbXByZXNzaW9uLWFsZ3MifSwKKwkJCXRlc3RU
eXBlOiBjbGllbnRUZXN0LAorCQkJbmFtZTogICAgICJDZXJ0Q29tcHJlc3Npb25Ub29MYXJnZUNs
aWVudC0iICsgdmVyLm5hbWUsCisJCQlmbGFnczogICAgW11zdHJpbmd7Ii1pbnN0YWxsLWNlcnQt
Y29tcHJlc3Npb24tYWxncyJ9LAogCQkJY29uZmlnOiBDb25maWd7CiAJCQkJTWluVmVyc2lvbjog
dmVyLnZlcnNpb24sCiAJCQkJTWF4VmVyc2lvbjogdmVyLnZlcnNpb24sCkBAIC0xNDY4MCw3ICsx
NTE2NCw3IEBAIGZ1bmMgYWRkSkRLMTFXb3JrYXJvdW5kVGVzdHMoKSB7CiAJCX0sCiAJCXsKIAkJ
CS8vIFRoZSBhYm92ZSB3aXRoIGEgcGFkZGluZyBleHRlbnNpb24gYWRkZWQgYXQgdGhlIGVuZC4K
LQkJCWRlY29kZUhleE9yUGFuaWMoIjAxMDAwMWI0MDMwMzM2YTM3OWFhMzU1YTIyYTA2NGI0NDAy
NzYwZWZhZTFjNzM5NzdiMGI0Yzk3NWVmYzc2NTRjMzU2Nzc3MjNkZGUyMDFmZTNmOGEyYmNhNjA0
MThhNjhmNzI0NjNlYTE5ZjNjMjQxZTdjYmZjZWIzNDdlNDUxYTYyYmQyNDE3ZDg5ODEwMDVhMTMw
MTEzMDJjMDJjYzAyYmMwMzAwMDlkYzAyZWMwMzIwMDlmMDBhM2MwMmYwMDljYzAyZGMwMzEwMDll
MDBhMmMwMjRjMDI4MDAzZGMwMjZjMDJhMDA2YjAwNmFjMDBhYzAxNDAwMzVjMDA1YzAwZjAwMzkw
MDM4YzAyM2MwMjcwMDNjYzAyNWMwMjkwMDY3MDA0MGMwMDljMDEzMDAyZmMwMDRjMDBlMDAzMzAw
MzIwMGZmMDEwMDAxMTEwMDAwMDAwODAwMDYwMDAwMDM3MzZlNjkwMDA1MDAwNTAxMDAwMDAwMDAw
MDBhMDAyMDAwMWUwMDE3MDAxODAwMTkwMDA5MDAwYTAwMGIwMDBjMDAwZDAwMGUwMDE2MDEwMDAx
MDEwMTAyMDEwMzAxMDQwMDBiMDAwMjAxMDAwMDBkMDAyODAwMjYwNDAzMDUwMzA2MDMwODA0MDgw
NTA4MDYwODA5MDgwYTA4MGIwNDAxMDUwMTA2MDEwNDAyMDMwMzAzMDEwMzAyMDIwMzAyMDEwMjAy
MDAzMjAwMjgwMDI2MDQwMzA1MDMwNjAzMDgwNDA4MDUwODA2MDgwOTA4MGEwODBiMDQwMTA1MDEw
NjAxMDQwMjAzMDMwMzAxMDMwMjAyMDMwMjAxMDIwMjAwMTEwMDA5MDAwNzAyMDAwNDAwMDAwMDAw
MDAxNzAwMDAwMDJiMDAwOTA4MDMwNDAzMDMwMzAyMDMwMTAwMmQwMDAyMDEwMTAwMzMwMDQ3MDA0
NTAwMTcwMDQxMDQ3MjFmMDA3NDY0Y2IwOGEwZjM2ZTA5M2FkMTc4ZWI3OGQ2OTY4ZGYyMDA3N2Iy
ZGQ4ODI2OTRhODVkYzRjOTg4NGNhZjUwOTJkYjQxZjE2Y2MzZjhkNDFmNTk0MjY5OTJmYTVlMzJj
ZmI5YWQwOGRlZWU3NTJjZGQ5NWIxYTZiNTAwMTUwMDA3NzA2MTY0NjQ2OTZlNjciKSwKKwkJCWRl
Y29kZUhleE9yUGFuaWMoIjAxMDAwMWI0MDMwMzM2YTM3OWFhMzU1YTIyYTA2NGI0NDAyNzYwZWZh
ZTFjNzM5NzdiMGI0Yzk3NWVmYzc2NTRjMzU2Nzc3MjNkZGUyMDFmZTNmOGEyYmNhNjA0MThhNjhm
NzI0NjNlYTE5ZjNjMjQxZTdjYmZjZWIzNDdlNDUxYTYyYmQyNDE3ZDg5ODEwMDVhMTMwMTEzMDJj
MDJjYzAyYmMwMzAwMDlkYzAyZWMwMzIwMDlmMDBhM2MwMmYwMDljYzAyZGMwMzEwMDllMDBhMmMw
MjRjMDI4MDAzZGMwMjZjMDJhMDA2YjAwNmFjMDBhYzAxNDAwMzVjMDA1YzAwZjAwMzkwMDM4YzAy
M2MwMjcwMDNjYzAyNWMwMjkwMDY3MDA0MGMwMDljMDEzMDAyZmMwMDRjMDBlMDAzMzAwMzIwMGZm
MDEwMDAxMTEwMDAwMDAwODAwMDYwMDAwMDM3MzZlNjkwMDA1MDAwNTAxMDAwMDAwMDAwMDBhMDAy
MDAwMWUwMDE3MDAxODAwMTkwMDA5MDAwYTAwMGIwMDBjMDAwZDAwMGUwMDE2MDEwMDAxMDEwMTAy
MDEwMzAxMDQwMDBiMDAwMjAxMDAwMDBkMDAyODAwMjYwNDAzMDUwMzA2MDMwODA0MDgwNTA4MDYw
ODA5MDgwYTA4MGIwNDAxMDUwMTA2MDEwNDAyMDMwMzAzMDEwMzAyMDIwMzAyMDEwMjAyMDAzMjAw
MjgwMDI2MDQwMzA1MDMwNjAzMDgwNDA4MDUwODA2MDgwOTA4MGEwODBiMDQwMTA1MDEwNjAxMDQw
MjAzMDMwMzAxMDMwMjAyMDMwMjAxMDIwMjAwMTEwMDA5MDAwNzAyMDAwNDAwMDAwMDAwMDAxNzAw
MDAwMDJiMDAwOTA4MDMwNDAzMDMwMzAyMDMwMTAwMmQwMDAyMDEwMTAwMzMwMDQ3MDA0NTAwMTcw
MDQxMDQ3MjFmMDA3NDY0Y2IwOGEwZjM2ZTA5M2FkMTc4ZWI3OGQ2OTY4ZGYyMDA3N2IyZGQ4ODI2
OTRhODVkYzRjOTg4NGNhZjUwOTJkYjQxZjE2Y2MzZjhkNDFmNTk0MjY5OTJmYTVlMzJjZmI5YWQw
OGRlZWU3NTJjZGQ5NWIxYTZiNTAwMTUwMDA3MDAwMDAwMDAwMDAwMDAiKSwKIAkJCWZhbHNlLAog
CQl9LAogCQl7CkBAIC0xNDc5Miw2ICsxNTI3NiwxNzEgQEAgZnVuYyBhZGRKREsxMVdvcmthcm91
bmRUZXN0cygpIHsKIAl9CiB9CiAKK2Z1bmMgYWRkRGVsZWdhdGVkQ3JlZGVudGlhbFRlc3RzKCkg
eworCWNlcnRQYXRoIDo9IHBhdGguSm9pbigqcmVzb3VyY2VEaXIsIHJzYUNlcnRpZmljYXRlRmls
ZSkKKwlwZW1CeXRlcywgZXJyIDo9IGlvdXRpbC5SZWFkRmlsZShjZXJ0UGF0aCkKKwlpZiBlcnIg
IT0gbmlsIHsKKwkJcGFuaWMoZXJyKQorCX0KKworCWJsb2NrLCBfIDo9IHBlbS5EZWNvZGUocGVt
Qnl0ZXMpCisJaWYgYmxvY2sgPT0gbmlsIHsKKwkJcGFuaWMoZm10LlNwcmludGYoIm5vIFBFTSBi
bG9jayBmb3VuZCBpbiAlcSIsIGNlcnRQYXRoKSkKKwl9CisJcGFyZW50REVSIDo9IGJsb2NrLkJ5
dGVzCisKKwlyc2FQcml2LCBfLCBlcnIgOj0gbG9hZFJTQVByaXZhdGVLZXkocnNhS2V5RmlsZSkK
KwlpZiBlcnIgIT0gbmlsIHsKKwkJcGFuaWMoZXJyKQorCX0KKworCWVjZHNhREMsIGVjZHNhUEtD
UzgsIGVyciA6PSBjcmVhdGVEZWxlZ2F0ZWRDcmVkZW50aWFsKGRlbGVnYXRlZENyZWRlbnRpYWxD
b25maWd7CisJCWFsZ286IHNpZ25hdHVyZVJTQVBTU1dpdGhTSEEyNTYsCisJfSwgcGFyZW50REVS
LCByc2FQcml2KQorCWlmIGVyciAhPSBuaWwgeworCQlwYW5pYyhlcnIpCisJfQorCWVjZHNhRmxh
Z1ZhbHVlIDo9IGZtdC5TcHJpbnRmKCIleCwleCIsIGVjZHNhREMsIGVjZHNhUEtDUzgpCisKKwl0
ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZl
clRlc3QsCisJCW5hbWU6ICAgICAiRGVsZWdhdGVkQ3JlZGVudGlhbHMtTm9DbGllbnRTdXBwb3J0
IiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlN
YXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJRGlz
YWJsZURlbGVnYXRlZENyZWRlbnRpYWxzOiB0cnVlLAorCQkJfSwKKwkJfSwKKwkJZmxhZ3M6IFtd
c3RyaW5neworCQkJIi1kZWxlZ2F0ZWQtY3JlZGVudGlhbCIsIGVjZHNhRmxhZ1ZhbHVlLAorCQl9
LAorCX0pCisKKwl0ZXN0Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVz
dFR5cGU6IHNlcnZlclRlc3QsCisJCW5hbWU6ICAgICAiRGVsZWdhdGVkQ3JlZGVudGlhbHMtQmFz
aWMiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJ
CU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlF
eHBlY3REZWxlZ2F0ZWRDcmVkZW50aWFsczogdHJ1ZSwKKwkJCX0sCisJCX0sCisJCWZsYWdzOiBb
XXN0cmluZ3sKKwkJCSItZGVsZWdhdGVkLWNyZWRlbnRpYWwiLCBlY2RzYUZsYWdWYWx1ZSwKKwkJ
CSItZXhwZWN0LWRlbGVnYXRlZC1jcmVkZW50aWFsLXVzZWQiLAorCQl9LAorCX0pCisKKwl0ZXN0
Q2FzZXMgPSBhcHBlbmQodGVzdENhc2VzLCB0ZXN0Q2FzZXsKKwkJdGVzdFR5cGU6IHNlcnZlclRl
c3QsCisJCW5hbWU6ICAgICAiRGVsZWdhdGVkQ3JlZGVudGlhbHMtU2lnQWxnb01pc3NpbmciLAor
CQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCU1heFZl
cnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlGYWlsSWZE
ZWxlZ2F0ZWRDcmVkZW50aWFsczogdHJ1ZSwKKwkJCX0sCisJCQkvLyBJZiB0aGUgY2xpZW50IGRv
ZXNuJ3Qgc3VwcG9ydCB0aGUgZGVsZWdhdGVkIGNyZWRlbnRpYWwgc2lnbmF0dXJlCisJCQkvLyBh
bGdvcml0aG0gdGhlbiB0aGUgaGFuZHNoYWtlIHNob3VsZCBjb21wbGV0ZSB3aXRob3V0IHVzaW5n
IGRlbGVnYXRlZAorCQkJLy8gY3JlZGVudGlhbHMuCisJCQlWZXJpZnlTaWduYXR1cmVBbGdvcml0
aG1zOiBbXXNpZ25hdHVyZUFsZ29yaXRobXtzaWduYXR1cmVSU0FQU1NXaXRoU0hBMjU2fSwKKwkJ
fSwKKwkJZmxhZ3M6IFtdc3RyaW5neworCQkJIi1kZWxlZ2F0ZWQtY3JlZGVudGlhbCIsIGVjZHNh
RmxhZ1ZhbHVlLAorCQl9LAorCX0pCisKKwkvLyBUaGlzIGZsYWcgdmFsdWUgaGFzIG1pc21hdGNo
ZWQgcHVibGljIGFuZCBwcml2YXRlIGtleXMgd2hpY2ggc2hvdWxkIGNhdXNlIGEKKwkvLyBjb25m
aWd1cmF0aW9uIGVycm9yIGluIHRoZSBzaGltLgorCV8sIGJhZFRMU1ZlcnNpb25QS0NTOCwgZXJy
IDo9IGNyZWF0ZURlbGVnYXRlZENyZWRlbnRpYWwoZGVsZWdhdGVkQ3JlZGVudGlhbENvbmZpZ3sK
KwkJYWxnbzogICAgICAgc2lnbmF0dXJlUlNBUFNTV2l0aFNIQTI1NiwKKwkJdGxzVmVyc2lvbjog
MHgxMjM0LAorCX0sIHBhcmVudERFUiwgcnNhUHJpdikKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcGFu
aWMoZXJyKQorCX0KKwltaXNtYXRjaEZsYWdWYWx1ZSA6PSBmbXQuU3ByaW50ZigiJXgsJXgiLCBl
Y2RzYURDLCBiYWRUTFNWZXJzaW9uUEtDUzgpCisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RDYXNl
cywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIkRlbGVn
YXRlZENyZWRlbnRpYWxzLUtleU1pc21hdGNoIiwKKwkJY29uZmlnOiBDb25maWd7CisJCQlNaW5W
ZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlNYXhWZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlC
dWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJRmFpbElmRGVsZWdhdGVkQ3JlZGVudGlhbHM6IHRydWUs
CisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWRlbGVnYXRlZC1jcmVkZW50
aWFsIiwgbWlzbWF0Y2hGbGFnVmFsdWUsCisJCX0sCisJCXNob3VsZEZhaWw6ICAgIHRydWUsCisJ
CWV4cGVjdGVkRXJyb3I6ICI6S0VZX1ZBTFVFU19NSVNNQVRDSDoiLAorCX0pCit9CisKK2Z1bmMg
YWRkUFFFeHBlcmltZW50U2lnbmFsVGVzdHMoKSB7CisJdGVzdENhc2VzID0gYXBwZW5kKHRlc3RD
YXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBzZXJ2ZXJUZXN0LAorCQluYW1lOiAgICAgIlBR
RXhwZXJpbWVudFNpZ25hbC1TZXJ2ZXItTm9FY2hvSWZOb3RDb25maWd1cmVkIiwKKwkJY29uZmln
OiBDb25maWd7CisJCQlNaW5WZXJzaW9uOiBWZXJzaW9uVExTMTMsCisJCQlNYXhWZXJzaW9uOiBW
ZXJzaW9uVExTMTMsCisJCQlCdWdzOiBQcm90b2NvbEJ1Z3N7CisJCQkJRXhwZWN0UFFFeHBlcmlt
ZW50U2lnbmFsOiBmYWxzZSwKKwkJCX0sCisJCQlQUUV4cGVyaW1lbnRTaWduYWw6IHRydWUsCisJ
CX0sCisJfSkKKworCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNleworCQl0
ZXN0VHlwZTogc2VydmVyVGVzdCwKKwkJbmFtZTogICAgICJQUUV4cGVyaW1lbnRTaWduYWwtU2Vy
dmVyLUVjaG8iLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246IFZlcnNpb25UTFMx
MywKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sK
KwkJCQlFeHBlY3RQUUV4cGVyaW1lbnRTaWduYWw6IHRydWUsCisJCQl9LAorCQkJUFFFeHBlcmlt
ZW50U2lnbmFsOiB0cnVlLAorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1w
cS1leHBlcmltZW50LXNpZ25hbCIsCisJCQkiLWV4cGVjdC1wcS1leHBlcmltZW50LXNpZ25hbCIs
CisJCX0sCisJfSkKKworCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIHRlc3RDYXNlewor
CQl0ZXN0VHlwZTogY2xpZW50VGVzdCwKKwkJbmFtZTogICAgICJQUUV4cGVyaW1lbnRTaWduYWwt
Q2xpZW50LU5vdERlZmF1bHQiLAorCQljb25maWc6IENvbmZpZ3sKKwkJCU1pblZlcnNpb246IFZl
cnNpb25UTFMxMywKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCUJ1Z3M6IFByb3Rv
Y29sQnVnc3sKKwkJCQlFeHBlY3RQUUV4cGVyaW1lbnRTaWduYWw6IGZhbHNlLAorCQkJfSwKKwkJ
CVBRRXhwZXJpbWVudFNpZ25hbDogdHJ1ZSwKKwkJfSwKKwl9KQorCisJdGVzdENhc2VzID0gYXBw
ZW5kKHRlc3RDYXNlcywgdGVzdENhc2V7CisJCXRlc3RUeXBlOiBjbGllbnRUZXN0LAorCQluYW1l
OiAgICAgIlBRRXhwZXJpbWVudFNpZ25hbC1DbGllbnQiLAorCQljb25maWc6IENvbmZpZ3sKKwkJ
CU1pblZlcnNpb246IFZlcnNpb25UTFMxMywKKwkJCU1heFZlcnNpb246IFZlcnNpb25UTFMxMywK
KwkJCUJ1Z3M6IFByb3RvY29sQnVnc3sKKwkJCQlFeHBlY3RQUUV4cGVyaW1lbnRTaWduYWw6IHRy
dWUsCisJCQl9LAorCQl9LAorCQlmbGFnczogW11zdHJpbmd7CisJCQkiLWVuYWJsZS1wcS1leHBl
cmltZW50LXNpZ25hbCIsCisJCQkiLWV4cGVjdC1wcS1leHBlcmltZW50LXNpZ25hbCIsCisJCX0s
CisJfSkKK30KKwogZnVuYyB3b3JrZXIoc3RhdHVzQ2hhbiBjaGFuIHN0YXR1c01zZywgYyBjaGFu
ICp0ZXN0Q2FzZSwgc2hpbVBhdGggc3RyaW5nLCB3ZyAqc3luYy5XYWl0R3JvdXApIHsKIAlkZWZl
ciB3Zy5Eb25lKCkKIApAQCAtMTQ5MDUsNiArMTU1NTQsNyBAQCBmdW5jIG1haW4oKSB7CiAJYWRk
U2lnbmF0dXJlQWxnb3JpdGhtVGVzdHMoKQogCWFkZERUTFNSZXRyYW5zbWl0VGVzdHMoKQogCWFk
ZEV4cG9ydEtleWluZ01hdGVyaWFsVGVzdHMoKQorCWFkZEV4cG9ydFRyYWZmaWNTZWNyZXRzVGVz
dHMoKQogCWFkZFRMU1VuaXF1ZVRlc3RzKCkKIAlhZGRDdXN0b21FeHRlbnNpb25UZXN0cygpCiAJ
YWRkUlNBQ2xpZW50S2V5RXhjaGFuZ2VUZXN0cygpCkBAIC0xNDkyMiwxMCArMTU1NzIsMTMgQEAg
ZnVuYyBtYWluKCkgewogCWFkZENlcnRpZmljYXRlVGVzdHMoKQogCWFkZFJldGFpbk9ubHlTSEEy
NTZDbGllbnRDZXJ0VGVzdHMoKQogCWFkZEVDRFNBS2V5VXNhZ2VUZXN0cygpCisJYWRkUlNBS2V5
VXNhZ2VUZXN0cygpCiAJYWRkRXh0cmFIYW5kc2hha2VUZXN0cygpCiAJYWRkT21pdEV4dGVuc2lv
bnNUZXN0cygpCiAJYWRkQ2VydENvbXByZXNzaW9uVGVzdHMoKQogCWFkZEpESzExV29ya2Fyb3Vu
ZFRlc3RzKCkKKwlhZGREZWxlZ2F0ZWRDcmVkZW50aWFsVGVzdHMoKQorCWFkZFBRRXhwZXJpbWVu
dFNpZ25hbFRlc3RzKCkKIAogCXRlc3RDYXNlcyA9IGFwcGVuZCh0ZXN0Q2FzZXMsIGNvbnZlcnRU
b1NwbGl0SGFuZHNoYWtlVGVzdHModGVzdENhc2VzKS4uLikKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Nz
bC90ZXN0L3J1bm5lci9zaWtlL2FyaXRoLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9zaWtlL2Fy
aXRoLmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjEwYTJjYTYzMGYxNjdlZmE0ZTBiNmVlMzkzZGQzNWE4ZmRlY2U1
NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL3Npa2UvYXJpdGguZ28K
QEAgLTAsMCArMSwzNzQgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxOSwgQ2xvdWRmbGFyZSBJbmMu
CisvLworLy8gUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1
dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisvLyBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUg
aXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQg
bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgor
Ly8KKy8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJ
U0NMQUlNUyBBTEwgV0FSUkFOVElFUworLy8gV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJ
TkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorLy8gTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5Z
CisvLyBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
T1IgQU5ZIERBTUFHRVMKKy8vIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0Us
IERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKy8vIE9GIENPTlRSQUNULCBO
RUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4K
Ky8vIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdB
UkUuCisKK3BhY2thZ2Ugc2lrZQorCitpbXBvcnQgKAorCSJtYXRoL2JpdHMiCispCisKKy8vIENv
bXB1dGUgeiA9IHggKyB5IChtb2QgMipwKS4KK2Z1bmMgZnBBZGRSZGMoeiwgeCwgeSAqRnApIHsK
Kwl2YXIgY2FycnkgdWludDY0CisKKwkvLyB6PXgreSAlIHAKKwlmb3IgaSA6PSAwOyBpIDwgRlBf
V09SRFM7IGkrKyB7CisJCXpbaV0sIGNhcnJ5ID0gYml0cy5BZGQ2NCh4W2ldLCB5W2ldLCBjYXJy
eSkKKwl9CisKKwkvLyB6ID0geiAtIHBYMgorCWNhcnJ5ID0gMAorCWZvciBpIDo9IDA7IGkgPCBG
UF9XT1JEUzsgaSsrIHsKKwkJeltpXSwgY2FycnkgPSBiaXRzLlN1YjY0KHpbaV0sIHBYMltpXSwg
Y2FycnkpCisJfQorCisJLy8gaWYgejwwIGFkZCBwWDIgYmFjaworCW1hc2sgOj0gdWludDY0KDAg
LSBjYXJyeSkKKwljYXJyeSA9IDAKKwlmb3IgaSA6PSAwOyBpIDwgRlBfV09SRFM7IGkrKyB7CisJ
CXpbaV0sIGNhcnJ5ID0gYml0cy5BZGQ2NCh6W2ldLCBwWDJbaV0mbWFzaywgY2FycnkpCisJfQor
fQorCisvLyBDb21wdXRlIHogPSB4IC0geSAobW9kIDIqcCkuCitmdW5jIGZwU3ViUmRjKHosIHgs
IHkgKkZwKSB7CisJdmFyIGJvcnJvdyB1aW50NjQKKworCS8vIHogPSB6IC0gcFgyCisJZm9yIGkg
Oj0gMDsgaSA8IEZQX1dPUkRTOyBpKysgeworCQl6W2ldLCBib3Jyb3cgPSBiaXRzLlN1YjY0KHhb
aV0sIHlbaV0sIGJvcnJvdykKKwl9CisKKwkvLyBpZiB6PDAgYWRkIHBYMiBiYWNrCisJbWFzayA6
PSB1aW50NjQoMCAtIGJvcnJvdykKKwlib3Jyb3cgPSAwCisJZm9yIGkgOj0gMDsgaSA8IEZQX1dP
UkRTOyBpKysgeworCQl6W2ldLCBib3Jyb3cgPSBiaXRzLkFkZDY0KHpbaV0sIHBYMltpXSZtYXNr
LCBib3Jyb3cpCisJfQorfQorCisvLyBSZWR1Y2UgYSBmaWVsZCBlbGVtZW50IGluIFswLCAyKnAp
IHRvIG9uZSBpbiBbMCxwKS4KK2Z1bmMgZnBSZGNQKHggKkZwKSB7CisJdmFyIGJvcnJvdywgbWFz
ayB1aW50NjQKKwlmb3IgaSA6PSAwOyBpIDwgRlBfV09SRFM7IGkrKyB7CisJCXhbaV0sIGJvcnJv
dyA9IGJpdHMuU3ViNjQoeFtpXSwgcFtpXSwgYm9ycm93KQorCX0KKworCS8vIFNldHMgYWxsIGJp
dHMgaWYgYm9ycm93ID0gMQorCW1hc2sgPSAwIC0gYm9ycm93CisJYm9ycm93ID0gMAorCWZvciBp
IDo9IDA7IGkgPCBGUF9XT1JEUzsgaSsrIHsKKwkJeFtpXSwgYm9ycm93ID0gYml0cy5BZGQ2NCh4
W2ldLCBwW2ldJm1hc2ssIGJvcnJvdykKKwl9Cit9CisKKy8vIEltcGxlbWVudGF0aW9uIGRvZXNu
J3QgYWN0dWFsbHkgZGVwZW5kIG9uIGEgcHJpbWUgZmllbGQuCitmdW5jIGZwU3dhcENvbmQoeCwg
eSAqRnAsIG1hc2sgdWludDgpIHsKKwlpZiBtYXNrICE9IDAgeworCQl2YXIgdG1wIEZwCisJCWNv
cHkodG1wWzpdLCB5WzpdKQorCQljb3B5KHlbOl0sIHhbOl0pCisJCWNvcHkoeFs6XSwgdG1wWzpd
KQorCX0KK30KKworLy8gQ29tcHV0ZSB6ID0geCAqIHkuCitmdW5jIGZwTXVsKHogKkZwWDIsIHgs
IHkgKkZwKSB7CisJdmFyIGNhcnJ5LCB0LCB1LCB2IHVpbnQ2NAorCXZhciBoaSwgbG8gdWludDY0
CisKKwlmb3IgaSA6PSB1aW50NjQoMCk7IGkgPCBGUF9XT1JEUzsgaSsrIHsKKwkJZm9yIGogOj0g
dWludDY0KDApOyBqIDw9IGk7IGorKyB7CisJCQloaSwgbG8gPSBiaXRzLk11bDY0KHhbal0sIHlb
aS1qXSkKKwkJCXYsIGNhcnJ5ID0gYml0cy5BZGQ2NChsbywgdiwgMCkKKwkJCXUsIGNhcnJ5ID0g
Yml0cy5BZGQ2NChoaSwgdSwgY2FycnkpCisJCQl0ICs9IGNhcnJ5CisJCX0KKwkJeltpXSA9IHYK
KwkJdiA9IHUKKwkJdSA9IHQKKwkJdCA9IDAKKwl9CisKKwlmb3IgaSA6PSBGUF9XT1JEUzsgaSA8
ICgyKkZQX1dPUkRTKS0xOyBpKysgeworCQlmb3IgaiA6PSBpIC0gRlBfV09SRFMgKyAxOyBqIDwg
RlBfV09SRFM7IGorKyB7CisJCQloaSwgbG8gPSBiaXRzLk11bDY0KHhbal0sIHlbaS1qXSkKKwkJ
CXYsIGNhcnJ5ID0gYml0cy5BZGQ2NChsbywgdiwgMCkKKwkJCXUsIGNhcnJ5ID0gYml0cy5BZGQ2
NChoaSwgdSwgY2FycnkpCisJCQl0ICs9IGNhcnJ5CisJCX0KKwkJeltpXSA9IHYKKwkJdiA9IHUK
KwkJdSA9IHQKKwkJdCA9IDAKKwl9CisJelsyKkZQX1dPUkRTLTFdID0gdgorfQorCisvLyBQZXJm
b3JtIE1vbnRnb21lcnkgcmVkdWN0aW9uOiBzZXQgeiA9IHggUl57LTF9IChtb2QgMipwKQorLy8g
d2l0aCBSPTJeNTEyLiBEZXN0cm95cyB0aGUgaW5wdXQgdmFsdWUuCitmdW5jIGZwTW9udFJkYyh6
ICpGcCwgeCAqRnBYMikgeworCXZhciBjYXJyeSwgdCwgdSwgdiB1aW50NjQKKwl2YXIgaGksIGxv
IHVpbnQ2NAorCXZhciBjb3VudCBpbnQKKworCWNvdW50ID0gMyAvLyBudW1iZXIgb2YgMCBkaWdp
dHMgaW4gdGhlIGxlYXN0IHNpZ25pZmljYXQgcGFydCBvZiBwICsgMQorCisJZm9yIGkgOj0gMDsg
aSA8IEZQX1dPUkRTOyBpKysgeworCQlmb3IgaiA6PSAwOyBqIDwgaTsgaisrIHsKKwkJCWlmIGog
PCAoaSAtIGNvdW50ICsgMSkgeworCQkJCWhpLCBsbyA9IGJpdHMuTXVsNjQoeltqXSwgcDFbaS1q
XSkKKwkJCQl2LCBjYXJyeSA9IGJpdHMuQWRkNjQobG8sIHYsIDApCisJCQkJdSwgY2FycnkgPSBi
aXRzLkFkZDY0KGhpLCB1LCBjYXJyeSkKKwkJCQl0ICs9IGNhcnJ5CisJCQl9CisJCX0KKwkJdiwg
Y2FycnkgPSBiaXRzLkFkZDY0KHYsIHhbaV0sIDApCisJCXUsIGNhcnJ5ID0gYml0cy5BZGQ2NCh1
LCAwLCBjYXJyeSkKKwkJdCArPSBjYXJyeQorCisJCXpbaV0gPSB2CisJCXYgPSB1CisJCXUgPSB0
CisJCXQgPSAwCisJfQorCisJZm9yIGkgOj0gRlBfV09SRFM7IGkgPCAyKkZQX1dPUkRTLTE7IGkr
KyB7CisJCWlmIGNvdW50ID4gMCB7CisJCQljb3VudC0tCisJCX0KKwkJZm9yIGogOj0gaSAtIEZQ
X1dPUkRTICsgMTsgaiA8IEZQX1dPUkRTOyBqKysgeworCQkJaWYgaiA8IChGUF9XT1JEUyAtIGNv
dW50KSB7CisJCQkJaGksIGxvID0gYml0cy5NdWw2NCh6W2pdLCBwMVtpLWpdKQorCQkJCXYsIGNh
cnJ5ID0gYml0cy5BZGQ2NChsbywgdiwgMCkKKwkJCQl1LCBjYXJyeSA9IGJpdHMuQWRkNjQoaGks
IHUsIGNhcnJ5KQorCQkJCXQgKz0gY2FycnkKKwkJCX0KKwkJfQorCQl2LCBjYXJyeSA9IGJpdHMu
QWRkNjQodiwgeFtpXSwgMCkKKwkJdSwgY2FycnkgPSBiaXRzLkFkZDY0KHUsIDAsIGNhcnJ5KQor
CisJCXQgKz0gY2FycnkKKwkJeltpLUZQX1dPUkRTXSA9IHYKKwkJdiA9IHUKKwkJdSA9IHQKKwkJ
dCA9IDAKKwl9CisJdiwgY2FycnkgPSBiaXRzLkFkZDY0KHYsIHhbMipGUF9XT1JEUy0xXSwgMCkK
Kwl6W0ZQX1dPUkRTLTFdID0gdgorfQorCisvLyBDb21wdXRlIHogPSB4ICsgeSwgd2l0aG91dCBy
ZWR1Y2luZyBtb2QgcC4KK2Z1bmMgZnAyQWRkKHosIHgsIHkgKkZwWDIpIHsKKwl2YXIgY2Fycnkg
dWludDY0CisJZm9yIGkgOj0gMDsgaSA8IDIqRlBfV09SRFM7IGkrKyB7CisJCXpbaV0sIGNhcnJ5
ID0gYml0cy5BZGQ2NCh4W2ldLCB5W2ldLCBjYXJyeSkKKwl9Cit9CisKKy8vIENvbXB1dGUgeiA9
IHggLSB5LCB3aXRob3V0IHJlZHVjaW5nIG1vZCBwLgorZnVuYyBmcDJTdWIoeiwgeCwgeSAqRnBY
MikgeworCXZhciBib3Jyb3csIG1hc2sgdWludDY0CisJZm9yIGkgOj0gMDsgaSA8IDIqRlBfV09S
RFM7IGkrKyB7CisJCXpbaV0sIGJvcnJvdyA9IGJpdHMuU3ViNjQoeFtpXSwgeVtpXSwgYm9ycm93
KQorCX0KKworCS8vIFNldHMgYWxsIGJpdHMgaWYgYm9ycm93ID0gMQorCW1hc2sgPSAwIC0gYm9y
cm93CisJYm9ycm93ID0gMAorCWZvciBpIDo9IEZQX1dPUkRTOyBpIDwgMipGUF9XT1JEUzsgaSsr
IHsKKwkJeltpXSwgYm9ycm93ID0gYml0cy5BZGQ2NCh6W2ldLCBwW2ktRlBfV09SRFNdJm1hc2ss
IGJvcnJvdykKKwl9Cit9CisKKy8vIE1vbnRnb21lcnkgbXVsdGlwbGljYXRpb24uIElucHV0IHZh
bHVlcyBtdXN0IGJlIGFscmVhZHkKKy8vIGluIE1vbnRnb21lcnkgZG9tYWluLgorZnVuYyBmcE11
bFJkYyhkZXN0LCBsaHMsIHJocyAqRnApIHsKKwlhIDo9IGxocyAvLyA9IGEqUgorCWIgOj0gcmhz
IC8vID0gYipSCisKKwl2YXIgYWIgRnBYMgorCWZwTXVsKCZhYiwgYSwgYikgICAgIC8vID0gYSpi
KlIqUgorCWZwTW9udFJkYyhkZXN0LCAmYWIpIC8vID0gYSpiKlIgbW9kIHAKK30KKworLy8gU2V0
IGRlc3QgPSB4XigocC0zKS80KS4gIElmIHggaXMgc3F1YXJlLCB0aGlzIGlzIDEvc3FydCh4KS4K
Ky8vIFVzZXMgdmFyaWF0aW9uIG9mIHNsaWRpbmctd2luZG93IGFsZ29yaXRobSBmcm9tIHdpdGgg
d2luZG93IHNpemUKKy8vIG9mIDUgYW5kIGxlYXN0IHRvIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHNs
aWRpbmcgKGxlZnQtdG8tcmlnaHQpCisvLyBTZWUgSEFDIDE0Ljg1IGZvciBnZW5lcmFsIGRlc2Ny
aXB0aW9uLgorLy8KKy8vIEFsbG93ZWQgdG8gb3ZlcmxhcCB4IHdpdGggZGVzdC4KKy8vIEFsbCB2
YWx1ZXMgaW4gTW9udGdvbWVyeSBkb21haW5zCisvLyBTZXQgZGVzdCA9IHheKDJeayksIGZvciBr
ID49IDEsIGJ5IHJlcGVhdGVkIHNxdWFyaW5ncy4KK2Z1bmMgcDM0KGRlc3QsIHggKkZwKSB7CisJ
dmFyIGxvb2t1cCBbMTZdRnAKKworCS8vIFRoaXMgcGVyZm9ybXMgc3VtKHBvd1N0cmF0ZWd5KSAr
IDEgc3F1YXJpbmdzIGFuZCBsZW4obG9va3VwKSArIGxlbihtdWxTdHJhdGVneSkKKwkvLyBtdWx0
aXBsaWNhdGlvbnMuCisJcG93U3RyYXRlZ3kgOj0gW111aW50OHsKKwkJMHgwMywgMHgwQSwgMHgw
NywgMHgwNSwgMHgwNiwgMHgwNSwgMHgwMywgMHgwOCwgMHgwNCwgMHgwNywKKwkJMHgwNSwgMHgw
NiwgMHgwNCwgMHgwNSwgMHgwOSwgMHgwNiwgMHgwMywgMHgwQiwgMHgwNSwgMHgwNSwKKwkJMHgw
MiwgMHgwOCwgMHgwNCwgMHgwNywgMHgwNywgMHgwOCwgMHgwNSwgMHgwNiwgMHgwNCwgMHgwOCwK
KwkJMHgwNSwgMHgwMiwgMHgwQSwgMHgwNiwgMHgwNSwgMHgwNCwgMHgwOCwgMHgwNSwgMHgwNSwg
MHgwNSwKKwkJMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwg
MHgwNSwgMHgwNSwKKwkJMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwg
MHgwNSwgMHgwNSwgMHgwNSwKKwkJMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwg
MHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwKKwkJMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwg
MHgwNSwgMHgwNSwgMHgwNSwgMHgwNSwgMHgwMX0KKwltdWxTdHJhdGVneSA6PSBbXXVpbnQ4ewor
CQkweDAyLCAweDBGLCAweDA5LCAweDA4LCAweDBFLCAweDBDLCAweDAyLCAweDA4LCAweDA1LCAw
eDBGLAorCQkweDA4LCAweDBGLCAweDA2LCAweDA2LCAweDAzLCAweDAyLCAweDAwLCAweDBBLCAw
eDA5LCAweDBELAorCQkweDAxLCAweDBDLCAweDAzLCAweDA3LCAweDAxLCAweDBBLCAweDA4LCAw
eDBCLCAweDAyLCAweDBGLAorCQkweDBFLCAweDAxLCAweDBCLCAweDBDLCAweDBFLCAweDAzLCAw
eDBCLCAweDBGLCAweDBGLCAweDBGLAorCQkweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAw
eDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLAorCQkweDBGLCAweDBGLCAweDBGLCAweDBGLCAw
eDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLAorCQkweDBGLCAweDBGLCAweDBGLCAw
eDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLAorCQkweDBGLCAweDBGLCAw
eDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDAwfQorCWluaXRpYWxN
dWwgOj0gdWludDgoOCkKKworCS8vIFByZWNvbXB1dGUgbG9va3VwIHRhYmxlIG9mIG9kZCBtdWx0
aXBsZXMgb2YgeCBmb3Igd2luZG93CisJLy8gc2l6ZSBrPTUuCisJdmFyIHh4IEZwCisJZnBNdWxS
ZGMoJnh4LCB4LCB4KQorCWxvb2t1cFswXSA9ICp4CisJZm9yIGkgOj0gMTsgaSA8IDE2OyBpKysg
eworCQlmcE11bFJkYygmbG9va3VwW2ldLCAmbG9va3VwW2ktMV0sICZ4eCkKKwl9CisKKwkvLyBO
b3cgbG9va3VwID0ge3gsIHheMywgeF41LCAuLi4gfQorCS8vIHNvIHRoYXQgbG9va3VwW2ldID0g
eF57MippICsgMX0KKwkvLyBzbyB0aGF0IGxvb2t1cFtrLzJdID0geF5rLCBmb3Igb2RkIGsKKwkq
ZGVzdCA9IGxvb2t1cFtpbml0aWFsTXVsXQorCWZvciBpIDo9IHVpbnQ4KDApOyBpIDwgdWludDgo
bGVuKHBvd1N0cmF0ZWd5KSk7IGkrKyB7CisJCWZwTXVsUmRjKGRlc3QsIGRlc3QsIGRlc3QpCisJ
CWZvciBqIDo9IHVpbnQ4KDEpOyBqIDwgcG93U3RyYXRlZ3lbaV07IGorKyB7CisJCQlmcE11bFJk
YyhkZXN0LCBkZXN0LCBkZXN0KQorCQl9CisJCWZwTXVsUmRjKGRlc3QsIGRlc3QsICZsb29rdXBb
bXVsU3RyYXRlZ3lbaV1dKQorCX0KK30KKworZnVuYyBhZGQoZGVzdCwgbGhzLCByaHMgKkZwMikg
eworCWZwQWRkUmRjKCZkZXN0LkEsICZsaHMuQSwgJnJocy5BKQorCWZwQWRkUmRjKCZkZXN0LkIs
ICZsaHMuQiwgJnJocy5CKQorfQorCitmdW5jIHN1YihkZXN0LCBsaHMsIHJocyAqRnAyKSB7CisJ
ZnBTdWJSZGMoJmRlc3QuQSwgJmxocy5BLCAmcmhzLkEpCisJZnBTdWJSZGMoJmRlc3QuQiwgJmxo
cy5CLCAmcmhzLkIpCit9CisKK2Z1bmMgbXVsKGRlc3QsIGxocywgcmhzICpGcDIpIHsKKwkvLyBM
ZXQgKGEsYixjLGQpID0gKGxocy5hLGxocy5iLHJocy5hLHJocy5iKS4KKwlhIDo9ICZsaHMuQQor
CWIgOj0gJmxocy5CCisJYyA6PSAmcmhzLkEKKwlkIDo9ICZyaHMuQgorCisJLy8gV2Ugd2FudCB0
byBjb21wdXRlCisJLy8KKwkvLyAoYSArIGJpKSooYyArIGRpKSA9IChhKmMgLSBiKmQpICsgKGEq
ZCArIGIqYylpCisJLy8KKwkvLyBVc2UgS2FyYXRzdWJhJ3MgdHJpY2s6IG5vdGUgdGhhdAorCS8v
CisJLy8gKGIgLSBhKSooYyAtIGQpID0gKGIqYyArIGEqZCkgLSBhKmMgLSBiKmQKKwkvLworCS8v
IHNvIChhKmQgKyBiKmMpID0gKGItYSkqKGMtZCkgKyBhKmMgKyBiKmQuCisKKwl2YXIgYWMsIGJk
IEZwWDIKKwlmcE11bCgmYWMsIGEsIGMpIC8vID0gYSpjKlIqUgorCWZwTXVsKCZiZCwgYiwgZCkg
Ly8gPSBiKmQqUipSCisKKwl2YXIgYl9taW51c19hLCBjX21pbnVzX2QgRnAKKwlmcFN1YlJkYygm
Yl9taW51c19hLCBiLCBhKSAvLyA9IChiLWEpKlIKKwlmcFN1YlJkYygmY19taW51c19kLCBjLCBk
KSAvLyA9IChjLWQpKlIKKworCXZhciBhZF9wbHVzX2JjIEZwWDIKKwlmcE11bCgmYWRfcGx1c19i
YywgJmJfbWludXNfYSwgJmNfbWludXNfZCkgLy8gPSAoYi1hKSooYy1kKSpSKlIKKwlmcDJBZGQo
JmFkX3BsdXNfYmMsICZhZF9wbHVzX2JjLCAmYWMpICAgICAgLy8gPSAoKGItYSkqKGMtZCkgKyBh
KmMpKlIqUgorCWZwMkFkZCgmYWRfcGx1c19iYywgJmFkX3BsdXNfYmMsICZiZCkgICAgICAvLyA9
ICgoYi1hKSooYy1kKSArIGEqYyArIGIqZCkqUipSCisKKwlmcE1vbnRSZGMoJmRlc3QuQiwgJmFk
X3BsdXNfYmMpIC8vID0gKGEqZCArIGIqYykqUiBtb2QgcAorCisJdmFyIGFjX21pbnVzX2JkIEZw
WDIKKwlmcDJTdWIoJmFjX21pbnVzX2JkLCAmYWMsICZiZCkgICAvLyA9IChhKmMgLSBiKmQpKlIq
UgorCWZwTW9udFJkYygmZGVzdC5BLCAmYWNfbWludXNfYmQpIC8vID0gKGEqYyAtIGIqZCkqUiBt
b2QgcAorfQorCitmdW5jIGludihkZXN0LCB4ICpGcDIpIHsKKwl2YXIgYTJQbHVzQjIgRnAKKwl2
YXIgYXNxLCBic3EgRnBYMgorCXZhciBhYyBGcFgyCisJdmFyIG1pbnVzQiBGcAorCXZhciBtaW51
c0JDIEZwWDIKKworCWEgOj0gJnguQQorCWIgOj0gJnguQgorCisJLy8gV2Ugd2FudCB0byBjb21w
dXRlCisJLy8KKwkvLyAgICAxICAgICAgICAgIDEgICAgIChhIC0gYmkpCSAgICAoYSAtIGJpKQor
CS8vIC0tLS0tLS0tID0gLS0tLS0tLS0gLS0tLS0tLS0gPSAtLS0tLS0tLS0tLQorCS8vIChhICsg
YmkpICAgKGEgKyBiaSkgKGEgLSBiaSkgICAoYV4yICsgYl4yKQorCS8vCisJLy8gTGV0dGluZyBj
ID0gMS8oYV4yICsgYl4yKSwgdGhpcyBpcworCS8vCisJLy8gMS8oYStiaSkgPSBhKmMgLSBiKmNp
LgorCisJZnBNdWwoJmFzcSwgYSwgYSkgICAgICAgICAgLy8gPSBhKmEqUipSCisJZnBNdWwoJmJz
cSwgYiwgYikgICAgICAgICAgLy8gPSBiKmIqUipSCisJZnAyQWRkKCZhc3EsICZhc3EsICZic3Ep
ICAgLy8gPSAoYV4yICsgYl4yKSpSKlIKKwlmcE1vbnRSZGMoJmEyUGx1c0IyLCAmYXNxKSAvLyA9
IChhXjIgKyBiXjIpKlIgbW9kIHAKKwkvLyBOb3cgYTJQbHVzQjIgPSBhXjIgKyBiXjIKKworCWlu
diA6PSBhMlBsdXNCMgorCWZwTXVsUmRjKCZpbnYsICZhMlBsdXNCMiwgJmEyUGx1c0IyKQorCXAz
NCgmaW52LCAmaW52KQorCWZwTXVsUmRjKCZpbnYsICZpbnYsICZpbnYpCisJZnBNdWxSZGMoJmlu
diwgJmludiwgJmEyUGx1c0IyKQorCisJZnBNdWwoJmFjLCBhLCAmaW52KQorCWZwTW9udFJkYygm
ZGVzdC5BLCAmYWMpCisKKwlmcFN1YlJkYygmbWludXNCLCAmbWludXNCLCBiKQorCWZwTXVsKCZt
aW51c0JDLCAmbWludXNCLCAmaW52KQorCWZwTW9udFJkYygmZGVzdC5CLCAmbWludXNCQykKK30K
KworZnVuYyBzcXIoZGVzdCwgeCAqRnAyKSB7CisJdmFyIGEyLCBhUGx1c0IsIGFNaW51c0IgRnAK
Kwl2YXIgYTJNaW5CMiwgYWIyIEZwWDIKKworCWEgOj0gJnguQQorCWIgOj0gJnguQgorCisJLy8g
KGEgKyBiaSkqKGEgKyBiaSkgPSAoYV4yIC0gYl4yKSArIDJhYmkuCisJZnBBZGRSZGMoJmEyLCBh
LCBhKSAgICAgICAgICAgICAgICAvLyA9IGEqUiArIGEqUiA9IDIqYSpSCisJZnBBZGRSZGMoJmFQ
bHVzQiwgYSwgYikgICAgICAgICAgICAvLyA9IGEqUiArIGIqUiA9IChhK2IpKlIKKwlmcFN1YlJk
YygmYU1pbnVzQiwgYSwgYikgICAgICAgICAgIC8vID0gYSpSIC0gYipSID0gKGEtYikqUgorCWZw
TXVsKCZhMk1pbkIyLCAmYVBsdXNCLCAmYU1pbnVzQikgLy8gPSAoYStiKSooYS1iKSpSKlIgPSAo
YV4yIC0gYl4yKSpSKlIKKwlmcE11bCgmYWIyLCAmYTIsIGIpICAgICAgICAgICAgICAgIC8vID0g
MiphKmIqUipSCisJZnBNb250UmRjKCZkZXN0LkEsICZhMk1pbkIyKSAgICAgICAvLyA9IChhXjIg
LSBiXjIpKlIgbW9kIHAKKwlmcE1vbnRSZGMoJmRlc3QuQiwgJmFiMikgICAgICAgICAgIC8vID0g
MiphKmIqUiBtb2QgcAorfQorCisvLyBJbiBjYXNlIGNob2ljZSA9PSAxLCBwZXJmb3JtcyBmb2xs
b3dpbmcgc3dhcCBpbiBjb25zdGFudCB0aW1lOgorLy8gCXhQeCA8LT4geFF4CisvLwl4UHogPC0+
IHhRegorLy8gT3RoZXJ3aXNlIHJldHVybnMgeFB4LCB4UHosIHhReCwgeFF6IHVuY2hhbmdlZAor
ZnVuYyBjb25kU3dhcCh4UHgsIHhQeiwgeFF4LCB4UXogKkZwMiwgY2hvaWNlIHVpbnQ4KSB7CisJ
ZnBTd2FwQ29uZCgmeFB4LkEsICZ4UXguQSwgY2hvaWNlKQorCWZwU3dhcENvbmQoJnhQeC5CLCAm
eFF4LkIsIGNob2ljZSkKKwlmcFN3YXBDb25kKCZ4UHouQSwgJnhRei5BLCBjaG9pY2UpCisJZnBT
d2FwQ29uZCgmeFB6LkIsICZ4UXouQiwgY2hvaWNlKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90
ZXN0L3J1bm5lci9zaWtlL2NvbnN0cy5nbyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvc2lrZS9jb25z
dHMuZ28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWQ2OGE0ZmQ3YjY0NzdjYTQxZDM1YjZlZmMzODczYWJlMTZkZDc2
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvc2lrZS9jb25zdHMuZ28K
QEAgLTAsMCArMSwzMTcgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxOSwgQ2xvdWRmbGFyZSBJbmMu
CisvLworLy8gUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1
dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisvLyBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUg
aXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQg
bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgor
Ly8KKy8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJ
U0NMQUlNUyBBTEwgV0FSUkFOVElFUworLy8gV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJ
TkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorLy8gTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5Z
CisvLyBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
T1IgQU5ZIERBTUFHRVMKKy8vIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0Us
IERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKy8vIE9GIENPTlRSQUNULCBO
RUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4K
Ky8vIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdB
UkUuCisKK3BhY2thZ2Ugc2lrZQorCisvLyBJIGtlZXAgaXQgYm9vbCBpbiBvcmRlciB0byBiZSBh
YmxlIHRvIGFwcGx5IGxvZ2ljYWwgTk9UCit0eXBlIEtleVZhcmlhbnQgdWludAorCisvLyBSZXBy
ZXNlbnRhdGlvbiBvZiBhbiBlbGVtZW50IG9mIHRoZSBiYXNlIGZpZWxkIEZfcC4KKy8vCisvLyBO
byBwYXJ0aWN1bGFyIG1lYW5pbmcgaXMgYXNzaWduZWQgdG8gdGhlIHJlcHJlc2VudGF0aW9uIC0t
IGl0IGNvdWxkIHJlcHJlc2VudAorLy8gYW4gZWxlbWVudCBpbiBNb250Z29tZXJ5IGZvcm0sIG9y
IG5vdC4gIFRyYWNraW5nIHRoZSBtZWFuaW5nIG9mIHRoZSBmaWVsZAorLy8gZWxlbWVudCBpcyBs
ZWZ0IHRvIGhpZ2hlciB0eXBlcy4KK3R5cGUgRnAgW0ZQX1dPUkRTXXVpbnQ2NAorCisvLyBSZXBy
ZXNlbnRzIGFuIGludGVybWVkaWF0ZSBwcm9kdWN0IG9mIHR3byBlbGVtZW50cyBvZiB0aGUgYmFz
ZSBmaWVsZCBGX3AuCit0eXBlIEZwWDIgWzIgKiBGUF9XT1JEU111aW50NjQKKworLy8gUmVwcmVz
ZW50cyBhbiBlbGVtZW50IG9mIHRoZSBleHRlbmRlZCBmaWVsZCBGcF4yID0gRnAoeCtpKQordHlw
ZSBGcDIgc3RydWN0IHsKKwlBIEZwCisJQiBGcAorfQorCit0eXBlIERvbWFpblBhcmFtcyBzdHJ1
Y3QgeworCS8vIFAsIFEgYW5kIFI9UC1RIGJhc2UgcG9pbnRzCisJQWZmaW5lX1AsIEFmZmluZV9R
LCBBZmZpbmVfUiBGcDIKKwkvLyBTaXplIG9mIGEgY29tcHVhdGF0aW9uIHN0cmF0ZWd5IGZvciB4
LXRvcnNpb24gZ3JvdXAKKwlJc29nZW55U3RyYXRlZ3kgW111aW50MzIKKwkvLyBNYXggc2l6ZSBv
ZiBzZWNyZXQga2V5IGZvciB4LXRvcnNpb24gZ3JvdXAKKwlTZWNyZXRCaXRMZW4gdWludAorCS8v
IE1heCBzaXplIG9mIHNlY3JldCBrZXkgZm9yIHgtdG9yc2lvbiBncm91cAorCVNlY3JldEJ5dGVM
ZW4gdWludAorfQorCit0eXBlIFNpZGhQYXJhbXMgc3RydWN0IHsKKwlJZCB1aW50OAorCS8vIEJ5
dGVsZW4gb2YgUAorCUJ5dGVsZW4gaW50CisJLy8gVGhlIHB1YmxpYyBrZXkgc2l6ZSwgaW4gYnl0
ZXMuCisJUHVibGljS2V5U2l6ZSBpbnQKKwkvLyBUaGUgc2hhcmVkIHNlY3JldCBzaXplLCBpbiBi
eXRlcy4KKwlTaGFyZWRTZWNyZXRTaXplIGludAorCS8vIERlZmluZXMgQSxDIGNvbnN0YW50IGZv
ciBzdGFydGluZyBjdXJ2ZSBDeV4yID0geF4zICsgQXheMiArIHgKKwlJbml0Q3VydmUgUHJvamVj
dGl2ZUN1cnZlUGFyYW1ldGVycworCS8vIDItIGFuZCAzLXRvcnNpb24gZ3JvdXAgcGFyYW1ldGVy
IGRlZmluaXRpb25zCisJQSwgQiBEb21haW5QYXJhbXMKKwkvLyBQcmVjb21wdXRlZCAxLzIgaW4g
dGhlIEZwMiBpbiBNb250Z29tZXJ5IGRvbWFpbgorCUhhbGZGcDIgRnAyCisJLy8gUHJlY29tcHV0
ZWQgaWRlbnRpdHkgZWxlbWVudCBpbiB0aGUgRnAyIGluIE1vbnRnb21lcnkgZG9tYWluCisJT25l
RnAyIEZwMgorCS8vIExlbmd0aCBvZiBTSUtFIHNlY3JldCBtZXNzYWdlLiBNdXN0IGJlIG9uZSBv
ZiB7MjQsMzIsNDB9LAorCS8vIGRlcGVuZGluZyBvbiBzaXplIG9mIHByaW1lIGZpZWxkIHVzZWQg
KHNlZSBbU0lLRV0sIDEuNCBhbmQgNS4xKQorCU1zZ0xlbiBpbnQKKwkvLyBMZW5ndGggb2YgU0lL
RSBlcGhlbWVyYWwgS0VNIGtleSAoc2VlIFtTSUtFXSwgMS40IGFuZCA1LjEpCisJS2VtU2l6ZSBp
bnQKKwkvLyBTaXplIG9mIGEgY2lwaGVydGV4dCByZXR1cm5lZCBieSBlbmNhcHN1bGF0aW9uIGlu
IGJ5dGVzCisJQ2lwaGVydGV4dFNpemUgaW50Cit9CisKKy8vIFN0b3JlcyBjdXJ2ZSBwcm9qZWN0
aXZlIHBhcmFtZXRlcnMgZXF1aXZhbGVudCB0byBBL0MuIE1lYW5pbmcgb2YgdGhlCisvLyB2YWx1
ZXMgZGVwZW5kcyBvbiB0aGUgY29udGV4dC4gV2hlbiB3b3JraW5nIHdpdGggaXNvZ2VuaWVzIG92
ZXIKKy8vIHN1Ymdyb3VwIHRoYXQgYXJlIHBvd2VycyBvZjoKKy8vICogdGhyZWUgdGhlbiAgKEE6
QykgfiAoQSsyQzpBLTJDKQorLy8gKiBmb3VyIHRoZW4gICAoQTpDKSB+IChBKzJDOiAgNEMpCisv
LyBTZWUgQXBwZW5kaXggQSBvZiBTSUtFIGZvciBtb3JlIGRldGFpbHMKK3R5cGUgQ3VydmVDb2Vm
ZmljaWVudHNFcXVpdiBzdHJ1Y3QgeworCUEgRnAyCisJQyBGcDIKK30KKworLy8gQSBwb2ludCBv
biB0aGUgcHJvamVjdGl2ZSBsaW5lIFBeMShGX3twXjJ9KS4KKy8vCisvLyBUaGlzIHJlcHJlc2Vu
dHMgYSBwb2ludCBvbiB0aGUgS3VtbWVyIGxpbmUgb2YgYSBNb250Z29tZXJ5IGN1cnZlLiAgVGhl
CisvLyBjdXJ2ZSBpcyBzcGVjaWZpZWQgYnkgYSBQcm9qZWN0aXZlQ3VydmVQYXJhbWV0ZXJzIHN0
cnVjdC4KK3R5cGUgUHJvamVjdGl2ZVBvaW50IHN0cnVjdCB7CisJWCBGcDIKKwlaIEZwMgorfQor
CisvLyBCYXNlIHR5cGUgZm9yIHB1YmxpYyBhbmQgcHJpdmF0ZSBrZXkuIFVzZWQgbWFpbmx5IHRv
IGNhcnJ5IGRvbWFpbgorLy8gcGFyYW1ldGVycy4KK3R5cGUga2V5IHN0cnVjdCB7CisJLy8gRG9t
YWluIHBhcmFtZXRlcnMgb2YgdGhlIGFsZ29yaXRobSB0byBiZSB1c2VkIHdpdGggYSBrZXkKKwlw
YXJhbXMgKlNpZGhQYXJhbXMKKwkvLyBGbGFnIGluZGljYXRlcyB3aGV0aGVyIGNvcnJlc3BvbmRz
IHRvIDItLCAzLXRvcnNpb24gZ3JvdXAgb3IgU0lLRQorCWtleVZhcmlhbnQgS2V5VmFyaWFudAor
fQorCisvLyBEZWZpbmVzIG9wZXJhdGlvbnMgb24gcHJpdmF0ZSBrZXkKK3R5cGUgUHJpdmF0ZUtl
eSBzdHJ1Y3QgeworCWtleQorCS8vIFNlY3JldCBrZXkKKwlTY2FsYXIgW11ieXRlCisJLy8gVXNl
ZCBvbmx5IGJ5IEtFTQorCVMgW11ieXRlCit9CisKKy8vIERlZmluZXMgb3BlcmF0aW9ucyBvbiBw
dWJsaWMga2V5Cit0eXBlIFB1YmxpY0tleSBzdHJ1Y3QgeworCWtleQorCWFmZmluZV94UCAgIEZw
MgorCWFmZmluZV94USAgIEZwMgorCWFmZmluZV94UW1QIEZwMgorfQorCisvLyBBIHBvaW50IG9u
IHRoZSBwcm9qZWN0aXZlIGxpbmUgUF4xKEZfe3BeMn0pLgorLy8KKy8vIFRoaXMgaXMgdXNlZCB0
byB3b3JrIHByb2plY3RpdmVseSB3aXRoIHRoZSBjdXJ2ZSBjb2VmZmljaWVudHMuCit0eXBlIFBy
b2plY3RpdmVDdXJ2ZVBhcmFtZXRlcnMgc3RydWN0IHsKKwlBIEZwMgorCUMgRnAyCit9CisKK2Nv
bnN0ICgKKwkvLyBGaXJzdCAyIGJpdHMgaWRlbnRpZnkgU0lESCB2YXJpYW50IHRoaXJkIGJpdCBp
bmRpY2F0ZXMKKwkvLyB3aGV0aGVyIGtleSBpcyBhIFNJS0UgdmFyaWFudCAoc2V0KSBvciBTSURI
IChub3Qgc2V0KQorCisJLy8gMDAxIC0gU0lESDogY29ycmVzcG9uZHMgdG8gMi10b3JzaW9uIGdy
b3VwCisJS2V5VmFyaWFudF9TSURIX0EgS2V5VmFyaWFudCA9IDEgPDwgMAorCS8vIDAxMCAtIFNJ
REg6IGNvcnJlc3BvbmRzIHRvIDMtdG9yc2lvbiBncm91cAorCUtleVZhcmlhbnRfU0lESF9CID0g
MSA8PCAxCisJLy8gMTEwIC0gU0lLRQorCUtleVZhcmlhbnRfU0lLRSA9IDE8PDIgfCBLZXlWYXJp
YW50X1NJREhfQgorCS8vIE51bWJlciBvZiB1aW50NjQgbGltYnMgdXNlZCB0byBzdG9yZSBmaWVs
ZCBlbGVtZW50CisJRlBfV09SRFMgPSA3CispCisKKy8vIFVzZWQgaW50ZXJuYWxseSBieSB0aGlz
IHBhY2thZ2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordmFyICgKKwlw
ID0gRnB7CisJCTB4RkZGRkZGRkZGRkZGRkZGRiwgMHhGRkZGRkZGRkZGRkZGRkZGLCAweEZGRkZG
RkZGRkZGRkZGRkYsIDB4RkRDMTc2N0FFMkZGRkZGRiwKKwkJMHg3QkM2NUM3ODMxNThBRUEzLCAw
eDZDRkM1RkQ2ODFDNTIwNTYsIDB4MjM0MUYyNzE3NzM0NCwKKwl9CisKKwkvLyAyKnA0MzQKKwlw
WDIgPSBGcHsKKwkJMHhGRkZGRkZGRkZGRkZGRkZFLCAweEZGRkZGRkZGRkZGRkZGRkYsIDB4RkZG
RkZGRkZGRkZGRkZGRiwgMHhGQjgyRUNGNUM1RkZGRkZGLAorCQkweEY3OENCOEYwNjJCMTVENDcs
IDB4RDlGOEJGQUQwMzhBNDBBQywgMHg0NjgzRTRFMkVFNjg4LAorCX0KKworCS8vIHA0MzQgKyAx
CisJcDEgPSBGcHsKKwkJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4
MDAwMDAwMDAwMDAwMDAwMCwgMHhGREMxNzY3QUUzMDAwMDAwLAorCQkweDdCQzY1Qzc4MzE1OEFF
QTMsIDB4NkNGQzVGRDY4MUM1MjA1NiwgMHgwMDAyMzQxRjI3MTc3MzQ0LAorCX0KKworCS8vIFJe
Mj0oMl40NDgpXjIgbW9kIHAKKwlSMiA9IEZweworCQkweDI4RTU1QjY1RENENjlCMzAsIDB4QUNF
QzczNjc3Njg3OThDMiwgMHhBQjI3OTczRjgzMTE2ODhELCAweDE3NUNDNkFGOEQ2QzdDMEIsCisJ
CTB4QUJDRDkyQkYyRERFMzQ3RSwgMHg2OUUxNkE2MUM3Njg2RDlBLCAweDAwMDAyNUE4OUJDREQx
MkEsCisJfQorCisJLy8gMS8yICogUiBtb2QgcAorCWhhbGYgPSBGcDJ7CisJCUE6IEZweworCQkJ
MHgwMDAwMDAwMDAwMDAzQTE2LCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAw
MCwgMHg1Qzg3RkEwMjdFMDAwMDAwLAorCQkJMHg2QzAwRDI3REFBQ0ZENjZBLCAweDc0OTkyQTJB
MkZCQkEwODYsIDB4MDAwMDc2Nzc1M0RFOTc2RH0sCisJfQorCisJLy8gMSpSIG1vZCBwCisJb25l
ID0gRnAyeworCQlBOiBGcHsKKwkJCTB4MDAwMDAwMDAwMDAwNzQyQywgMHgwMDAwMDAwMDAwMDAw
MDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4QjkwRkY0MDRGQzAwMDAwMCwKKwkJCTB4RDgwMUE0
RkI1NTlGQUNENCwgMHhFOTMyNTQ1NDVGNzc0MTBDLCAweDAwMDBFQ0VFQTdCRDJFREF9LAorCX0K
KworCS8vIDYqUiBtb2QgcAorCXNpeCA9IEZwMnsKKwkJQTogRnB7CisJCQkweDAwMDAwMDAwMDAw
MkI5MEEsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDVBRENDQjI4
MjIwMDAwMDAsCisJCQkweDE4N0QyNEYzOUYwQ0FGQjQsIDB4OUQzNTNBNEQzOTQxNDVBMCwgMHgw
MDAxMjU1OUEwNDAzMjk4fSwKKwl9CisKKwlQYXJhbXMgU2lkaFBhcmFtcworKQorCitmdW5jIGlu
aXQoKSB7CisJUGFyYW1zID0gU2lkaFBhcmFtc3sKKwkJLy8gU0lESCBwdWJsaWMga2V5IGJ5dGUg
c2l6ZS4KKwkJUHVibGljS2V5U2l6ZTogMzMwLAorCQkvLyBTSURIIHNoYXJlZCBzZWNyZXQgYnl0
ZSBzaXplLgorCQlTaGFyZWRTZWNyZXRTaXplOiAxMTAsCisJCUluaXRDdXJ2ZTogUHJvamVjdGl2
ZUN1cnZlUGFyYW1ldGVyc3sKKwkJCUE6IHNpeCwKKwkJCUM6IG9uZSwKKwkJfSwKKwkJQTogRG9t
YWluUGFyYW1zeworCQkJLy8gVGhlIHgtY29vcmRpbmF0ZSBvZiBQQQorCQkJQWZmaW5lX1A6IEZw
MnsKKwkJCQlBOiBGcHsKKwkJCQkJMHgwNUFERjQ1NUM1QzM0NUJGLCAweDkxOTM1QzVDQzc2N0FD
MkIsIDB4QUZFNEU4Nzk5NTFGMDI1NywgMHg3MEU3OTJEQzg5RkEyN0IxLAorCQkJCQkweEY3OTdG
NTI2QkI0OEM4Q0QsIDB4MjE4MURCNjEzMUFGNjIxRiwgMHgwMDAwMEExQzA4QjFFQ0M0LAorCQkJ
CX0sCisJCQkJQjogRnB7CisJCQkJCTB4NzQ4NDBFQjg3Q0RBNzc4OCwgMHgyOTcxQUEwRUNGOUY5
RDBCLCAweENCNTczMkJERjQxNzE1RDUsIDB4OENEOEU1MUY3QUFDRkZBQSwKKwkJCQkJMHhBN0Y0
MjQ3MzBEN0U0MTlGLCAweEQ2NzFFQjkxOUExNzlFOEMsIDB4MDAwMEZGQTI2QzVBOTI0QSwKKwkJ
CQl9LAorCQkJfSwKKwkJCS8vIFRoZSB4LWNvb3JkaW5hdGUgb2YgUUEKKwkJCUFmZmluZV9ROiBG
cDJ7CisJCQkJQTogRnB7CisJCQkJCTB4RkVDNkU2NDU4OEI3MjczQiwgMHhEMkE2MjZENzRDQkJG
MUM2LCAweEY4RjU4RjA3QTc4MDk4QzcsIDB4RTIzOTQxRjQ3MDg0MUIwMywKKwkJCQkJMHgxQjYz
RURBMjA0NTUzOERELCAweDczNUNGRUIwRkZENDkyMTUsIDB4MDAwMUM0Q0I3NzU0Mjg3NiwKKwkJ
CQl9LAorCQkJCUI6IEZweworCQkJCQkweEFEQjBGNzMzQzE3RkZERDYsIDB4NkFGRkJEMDM3REEw
QTA1MCwgMHg2ODBFQzQzREIxNDRFMDJGLCAweDFFMkU1RDVGRjUyNEUzNzQsCisJCQkJCTB4RTJE
REExMTUyNjBFMjk5NSwgMHhBNkU0QjU1MkUyRURFNTA4LCAweDAwMDE4RUNDRERGNEI1M0UsCisJ
CQkJfSwKKwkJCX0sCisJCQkvLyBUaGUgeC1jb29yZGluYXRlIG9mIFJBID0gUEEtUUEKKwkJCUFm
ZmluZV9SOiBGcDJ7CisJCQkJQTogRnB7CisJCQkJCTB4MDFCQTREQjUxOENENkM3RCwgMHgyQ0Iw
MjUxRkUzQ0MwNjExLCAweDI1OUIwQzY5NDlBOTEyMUIsIDB4NjBFMTdBQzE2RDJGODJBRCwKKwkJ
CQkJMHgzQUE0MUYxQ0UxNzVEOTJELCAweDQxM0ZCRTZBOUI5QkM0RjMsIDB4MDAwMjJBODFEOEQ1
NTY0MywKKwkJCQl9LAorCQkJCUI6IEZweworCQkJCQkweEI4QURCQzcwRkM4MkU1NEEsIDB4RUY5
Q0REQjBENUZBRERFRCwgMHg1ODIwQzczNEM4MDA5NkEwLCAweDc3OTk5OTRCQUE5NkUwRTQsCisJ
CQkJCTB4MDQ0OTYxNTk5RTM3OUFGOCwgMHhEQjJCOTRGQkYwOUYyN0UyLCAweDAwMDBCODdGQzcx
NkMwQzYsCisJCQkJfSwKKwkJCX0sCisJCQkvLyBNYXggc2l6ZSBvZiBzZWNyZXQga2V5IGZvciAy
LXRvcnNpb24gZ3JvdXAsIGNvcnJlc3BvbmRzIHRvIDJeZTIgLSAxCisJCQlTZWNyZXRCaXRMZW46
IDIxNiwKKwkJCS8vIFNlY3JldEJpdExlbiBpbiBieXRlcy4KKwkJCVNlY3JldEJ5dGVMZW46IDI3
LAorCQkJLy8gMi10b3JzaW9uIGdyb3VwIGNvbXB1dGF0aW9uIHN0cmF0ZWd5CisJCQlJc29nZW55
U3RyYXRlZ3k6IFtddWludDMyeworCQkJCTB4MzAsIDB4MUMsIDB4MTAsIDB4MDgsIDB4MDQsIDB4
MDIsIDB4MDEsIDB4MDEsIDB4MDIsIDB4MDEsCisJCQkJMHgwMSwgMHgwNCwgMHgwMiwgMHgwMSwg
MHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwOCwgMHgwNCwKKwkJCQkweDAyLCAweDAxLCAweDAx
LCAweDAyLCAweDAxLCAweDAxLCAweDA0LCAweDAyLCAweDAxLCAweDAxLAorCQkJCTB4MDIsIDB4
MDEsIDB4MDEsIDB4MEQsIDB4MDcsIDB4MDQsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDIsCisJCQkJ
MHgwMSwgMHgwMSwgMHgwMywgMHgwMiwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwNSwgMHgw
NCwKKwkJCQkweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAxLCAw
eDAxLCAweDAxLAorCQkJCTB4MTUsIDB4MEMsIDB4MDcsIDB4MDQsIDB4MDIsIDB4MDEsIDB4MDEs
IDB4MDIsIDB4MDEsIDB4MDEsCisJCQkJMHgwMywgMHgwMiwgMHgwMSwgMHgwMSwgMHgwMSwgMHgw
MSwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMSwKKwkJCQkweDAxLCAweDAxLCAweDAxLCAweDAyLCAw
eDAxLCAweDAxLCAweDAxLCAweDA5LCAweDA1LCAweDAzLAorCQkJCTB4MDIsIDB4MDEsIDB4MDEs
IDB4MDEsIDB4MDEsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDQsCisJCQkJMHgwMiwgMHgw
MSwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMX0sCisJCX0sCisJCUI6IERvbWFpblBhcmFt
c3sKKwkJCS8vIFRoZSB4LWNvb3JkaW5hdGUgb2YgUEIKKwkJCUFmZmluZV9QOiBGcDJ7CisJCQkJ
QTogRnB7CisJCQkJCTB4NkU1NDk3NTU2RURENDhBMywgMHgyQTYxQjUwMTU0NkYxQzA1LCAweEVC
OTE5NDQ2RDA0OTg4N0QsIDB4NTg2NEE0QTY5RDQ1MEM0RiwKKwkJCQkJMHhCODgzRjI3NkE2NDkw
RDJCLCAweDIyQ0MyODcwMjJENUY1QjksIDB4MDAwMUJFRDQ3NzJFNTUxRiwKKwkJCQl9LAorCQkJ
CUI6IEZweworCQkJCQkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgw
MDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsCisJCQkJCTB4MDAwMDAwMDAwMDAw
MDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsCisJCQkJfSwKKwkJ
CX0sCisJCQkvLyBUaGUgeC1jb29yZGluYXRlIG9mIFFCCisJCQlBZmZpbmVfUTogRnAyeworCQkJ
CUE6IEZweworCQkJCQkweEZBRTJBM0Y5M0Q4QjZCOEUsIDB4NDk0ODcxRjUxNzAwRkUxQywgMHhF
RjFBOTQyMjg0MTNDMjdDLCAweDQ5OEZGNEE0QUY2MEJENjIsCisJCQkJCTB4QjAwQUQyQTcwODI2
N0U4QSwgMHhGNDMyODI5NEUwMTc4MzdGLCAweDAwMDAzNDA4MDE4MUQ4QUUsCisJCQkJfSwKKwkJ
CQlCOiBGcHsKKwkJCQkJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4
MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLAorCQkJCQkweDAwMDAwMDAwMDAw
MDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLAorCQkJCX0sCisJ
CQl9LAorCQkJLy8gVGhlIHgtY29vcmRpbmF0ZSBvZiBSQiA9IFBCIC0gUUIKKwkJCUFmZmluZV9S
OiBGcDJ7CisJCQkJQTogRnB7CisJCQkJCTB4MjgzQjM0RkFGRUZEQzhFNCwgMHg5MjA4RjQ0OTc3
QzNFNjQ3LCAweDdERUFFOTYyODE2RjRFOUEsIDB4NjhBMkJBOEFBMjYyRUM5RCwKKwkJCQkJMHg4
MTc2RjExMkVBNDNGNDVCLCAweDAyMTA2RDAyMjYzNEY1MDQsIDB4MDAwMDdFOEE1MEYwMkUzNywK
KwkJCQl9LAorCQkJCUI6IEZweworCQkJCQkweEIzNzhCN0MxREEyMkNDQjEsIDB4NkQwODlDOTlB
RDFEOTIzMCwgMHhFQkUxNTcxMTgxM0UyMzY5LCAweDJCMzVBNjgyMzlENDhBNTMsCisJCQkJCTB4
NDQ1RjZGRDEzODQwN0M5MywgMHhCRUY5M0IyOUEzRjZCNTRCLCAweDAwMDE3M0ZBOTEwMzc3RDMs
CisJCQkJfSwKKwkJCX0sCisJCQkvLyBTaXplIG9mIHNlY3JldCBrZXkgZm9yIDMtdG9yc2lvbiBn
cm91cCwgY29ycmVzcG9uZHMgdG8gbG9nXzIoM15lMykgLSAxLgorCQkJU2VjcmV0Qml0TGVuOiAy
MTcsCisJCQkvLyBTZWNyZXRCaXRMZW4gaW4gYnl0ZXMuCisJCQlTZWNyZXRCeXRlTGVuOiAyOCwK
KwkJCS8vIDMtdG9yc2lvbiBncm91cCBjb21wdXRhdGlvbiBzdHJhdGVneQorCQkJSXNvZ2VueVN0
cmF0ZWd5OiBbXXVpbnQzMnsKKwkJCQkweDQyLCAweDIxLCAweDExLCAweDA5LCAweDA1LCAweDAz
LCAweDAyLCAweDAxLCAweDAxLCAweDAxLAorCQkJCTB4MDEsIDB4MDIsIDB4MDEsIDB4MDEsIDB4
MDEsIDB4MDQsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDEsCisJCQkJMHgwMiwgMHgwMSwgMHgwMSwg
MHgwOCwgMHgwNCwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMiwKKwkJCQkweDAxLCAweDAx
LCAweDA0LCAweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAxLCAweDAxLCAweDEwLAorCQkJCTB4
MDgsIDB4MDQsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDQs
CisJCQkJMHgwMiwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwOCwgMHgwNCwgMHgw
MiwgMHgwMSwKKwkJCQkweDAxLCAweDAyLCAweDAxLCAweDAxLCAweDA0LCAweDAyLCAweDAxLCAw
eDAxLCAweDAyLCAweDAxLAorCQkJCTB4MDEsIDB4MjAsIDB4MTAsIDB4MDgsIDB4MDQsIDB4MDMs
IDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsCisJCQkJMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgw
MiwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwKKwkJCQkweDA4LCAweDA0LCAweDAyLCAw
eDAxLCAweDAxLCAweDAyLCAweDAxLCAweDAxLCAweDA0LCAweDAyLAorCQkJCTB4MDEsIDB4MDEs
IDB4MDIsIDB4MDEsIDB4MDEsIDB4MTAsIDB4MDgsIDB4MDQsIDB4MDIsIDB4MDEsCisJCQkJMHgw
MSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwK
KwkJCQkweDAxLCAweDA4LCAweDA0LCAweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAxLCAweDAx
LCAweDA0LAorCQkJCTB4MDIsIDB4MDEsIDB4MDEsIDB4MDIsIDB4MDEsIDB4MDF9LAorCQl9LAor
CQlPbmVGcDI6ICBvbmUsCisJCUhhbGZGcDI6IGhhbGYsCisJCU1zZ0xlbjogIDE2LAorCQkvLyBT
SUtFcDQzNCBwcm92aWRlcyAxMjggYml0IG9mIGNsYXNzaWNhbCBzZWN1cml0eSAoW1NJS0VdLCA1
LjEpCisJCUtlbVNpemU6IDE2LAorCQkvLyBjZWlsKDQzNCs3LzgpCisJCUJ5dGVsZW46ICAgICAg
ICA1NSwKKwkJQ2lwaGVydGV4dFNpemU6IDE2ICsgMzMwLAorCX0KK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy9zc2wvdGVzdC9ydW5uZXIvc2lrZS9jdXJ2ZS5nbyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvc2lr
ZS9jdXJ2ZS5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTcyNTQ2MmQ0ZjdiMWIwYmVkM2ZiNTgwMDY5ODJmZjVm
MTVlODUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3J1bm5lci9zaWtlL2N1cnZl
LmdvCkBAIC0wLDAgKzEsNDIyIEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTksIENsb3VkZmxhcmUg
SW5jLgorLy8KKy8vIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0
cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorLy8gcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorLy8gY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGll
cy4KKy8vCisvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhP
UiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKy8vIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdB
UkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKy8vIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9S
IEFOWQorLy8gU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIE9SIEFOWSBEQU1BR0VTCisvLyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0Yg
VVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisvLyBPRiBDT05UUkFD
VCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9S
IElOCisvLyBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNP
RlRXQVJFLgorCitwYWNrYWdlIHNpa2UKKworLy8gSW50ZXJmYWNlIGZvciB3b3JraW5nIHdpdGgg
aXNvZ2VuaWVzLgordHlwZSBpc29nZW55IGludGVyZmFjZSB7CisJLy8gR2l2ZW4gYSB0b3JzaW9u
IHBvaW50IG9uIGEgY3VydmUgY29tcHV0ZXMgaXNvZ2Vub3VzIGN1cnZlLgorCS8vIFJldHVybnMg
Y3VydmUgY29lZmZpY2llbnRzIChBOkMpLCBzbyB0aGF0IEVfKEEvQykgPSBFXyhBL0MpLzxQPiwK
KwkvLyB3aGVyZSBQIGlzIGEgcHJvdmlkZWQgcHJvamVjdGl2ZSBwb2ludC4gU2V0cyBhbHNvIGlz
b2dlbnkgY29uc3RhbnRzCisJLy8gdGhhdCBhcmUgbmVlZGVkIGZvciBpc29nZW55IGV2YWx1YXRp
b24uCisJR2VuZXJhdGVDdXJ2ZSgqUHJvamVjdGl2ZVBvaW50KSBDdXJ2ZUNvZWZmaWNpZW50c0Vx
dWl2CisJLy8gRXZhbHVhdGVzIGlzb2dlbnkgYXQgY2FsbGVyIHByb3ZpZGVkIHBvaW50LiBSZXF1
aXJlcyBpc29nZW55IGN1cnZlIGNvbnN0YW50cworCS8vIHRvIGJlIGVhcmxpZXIgY29tcHV0ZWQg
YnkgR2VuZXJhdGVDdXJ2ZS4KKwlFdmFsdWF0ZVBvaW50KCpQcm9qZWN0aXZlUG9pbnQpIFByb2pl
Y3RpdmVQb2ludAorfQorCisvLyBTdG9yZXMgaXNvZ2VueSAzIGN1cnZlIGNvbnN0YW50cwordHlw
ZSBpc29nZW55MyBzdHJ1Y3QgeworCUsxIEZwMgorCUsyIEZwMgorfQorCisvLyBTdG9yZXMgaXNv
Z2VueSA0IGN1cnZlIGNvbnN0YW50cwordHlwZSBpc29nZW55NCBzdHJ1Y3QgeworCWlzb2dlbnkz
CisJSzMgRnAyCit9CisKKy8vIENvbnN0cnVjdHMgaXNvZ2VueTMgb2JqZWN0cworZnVuYyBOZXdJ
c29nZW55MygpIGlzb2dlbnkgeworCXJldHVybiAmaXNvZ2VueTN7fQorfQorCisvLyBDb25zdHJ1
Y3RzIGlzb2dlbnk0IG9iamVjdHMKK2Z1bmMgTmV3SXNvZ2VueTQoKSBpc29nZW55IHsKKwlyZXR1
cm4gJmlzb2dlbnk0e30KK30KKworLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBSaWdodFRvTGVmdExh
ZGRlcigpLiBSZXR1cm5zIEErMkMgLyA0LgorZnVuYyBjYWxjQXBsdXMyT3ZlcjQoY3BhcmFtcyAq
UHJvamVjdGl2ZUN1cnZlUGFyYW1ldGVycykgKHJldCBGcDIpIHsKKwl2YXIgdG1wIEZwMgorCisJ
Ly8gMkMKKwlhZGQoJnRtcCwgJmNwYXJhbXMuQywgJmNwYXJhbXMuQykKKwkvLyBBKzJDCisJYWRk
KCZyZXQsICZjcGFyYW1zLkEsICZ0bXApCisJLy8gMS80QworCWFkZCgmdG1wLCAmdG1wLCAmdG1w
KQorCWludigmdG1wLCAmdG1wKQorCS8vIEErMkMvNEMKKwltdWwoJnJldCwgJnJldCwgJnRtcCkK
KwlyZXR1cm4KK30KKworLy8gQ29udmVydHMgdmFsdWVzIGluIHguQSBhbmQgeC5CIHRvIE1vbnRn
b21lcnkgZG9tYWluCisvLyB4LkEgPSB4LkEgKiBSIG1vZCBwCisvLyB4LkIgPSB4LkIgKiBSIG1v
ZCBwCisvLyBQZXJmb3JtcyB2ID0gdipSXjIqUl4oLTEpIG1vZCBwLCBmb3IgYm90aCB4LkEgYW5k
IHguQgorZnVuYyB0b01vbnREb21haW4oeCAqRnAyKSB7CisJdmFyIGFSUiBGcFgyCisKKwkvLyBj
b252ZXJ0IHRvIG1vbnRnb21lcnkgZG9tYWluCisJZnBNdWwoJmFSUiwgJnguQSwgJlIyKSAvLyA9
IGEqUipSCisJZnBNb250UmRjKCZ4LkEsICZhUlIpICAvLyA9IGEqUiBtb2QgcAorCWZwTXVsKCZh
UlIsICZ4LkIsICZSMikKKwlmcE1vbnRSZGMoJnguQiwgJmFSUikKK30KKworLy8gQ29udmVydHMg
dmFsdWVzIGluIHguQSBhbmQgeC5CIGZyb20gTW9udGdvbWVyeSBkb21haW4KKy8vIGEgPSB4LkEg
bW9kIHAKKy8vIGIgPSB4LkIgbW9kIHAKKy8vCisvLyBBZnRlciByZXR1cm5pbmcgZnJvbSB0aGUg
Y2FsbCB4IGlzIG5vdCBtb2RpZmllZC4KK2Z1bmMgZnJvbU1vbnREb21haW4oeCAqRnAyLCBvdXQg
KkZwMikgeworCXZhciBhUiBGcFgyCisKKwkvLyBjb252ZXJ0IGZyb20gbW9udGdvbWVyeSBkb21h
aW4KKwljb3B5KGFSWzpdLCB4LkFbOl0pCisJZnBNb250UmRjKCZvdXQuQSwgJmFSKSAvLyA9IGEg
bW9kIHAgaW4gWzAsIDJwKQorCWZwUmRjUCgmb3V0LkEpICAgICAgICAgLy8gPSBhIG1vZCBwIGlu
IFswLCBwKQorCWZvciBpIDo9IHJhbmdlIGFSIHsKKwkJYVJbaV0gPSAwCisJfQorCWNvcHkoYVJb
Ol0sIHguQls6XSkKKwlmcE1vbnRSZGMoJm91dC5CLCAmYVIpCisJZnBSZGNQKCZvdXQuQikKK30K
KworLy8gQ29tcHV0ZXMgai1pbnZhcmlhbnQgZm9yIGEgY3VydmUgeTI9eDMrQS9DeCt4IHdpdGgg
QSxDIGluIEZfKHBeMikuIFJlc3VsdAorLy8gaXMgcmV0dXJuZWQgaW4gJ2onLiBJbXBsZW1lbnRh
dGlvbiBjb3JyZXNwb25kcyB0byBBbGdvcml0aG0gOSBmcm9tIFNJS0UuCitmdW5jIEppbnZhcmlh
bnQoY3BhcmFtcyAqUHJvamVjdGl2ZUN1cnZlUGFyYW1ldGVycywgaiAqRnAyKSB7CisJdmFyIHQw
LCB0MSBGcDIKKworCXNxcihqLCAmY3BhcmFtcy5BKSAgIC8vIGogID0gQV4yCisJc3FyKCZ0MSwg
JmNwYXJhbXMuQykgLy8gdDEgPSBDXjIKKwlhZGQoJnQwLCAmdDEsICZ0MSkgICAvLyB0MCA9IHQx
ICsgdDEKKwlzdWIoJnQwLCBqLCAmdDApICAgICAvLyB0MCA9IGogLSB0MAorCXN1YigmdDAsICZ0
MCwgJnQxKSAgIC8vIHQwID0gdDAgLSB0MQorCXN1YihqLCAmdDAsICZ0MSkgICAgIC8vIHQwID0g
dDAgLSB0MQorCXNxcigmdDEsICZ0MSkgICAgICAgIC8vIHQxID0gdDFeMgorCW11bChqLCBqLCAm
dDEpICAgICAgIC8vIGogPSBqICogdDEKKwlhZGQoJnQwLCAmdDAsICZ0MCkgICAvLyB0MCA9IHQw
ICsgdDAKKwlhZGQoJnQwLCAmdDAsICZ0MCkgICAvLyB0MCA9IHQwICsgdDAKKwlzcXIoJnQxLCAm
dDApICAgICAgICAvLyB0MSA9IHQwXjIKKwltdWwoJnQwLCAmdDAsICZ0MSkgICAvLyB0MCA9IHQw
ICogdDEKKwlhZGQoJnQwLCAmdDAsICZ0MCkgICAvLyB0MCA9IHQwICsgdDAKKwlhZGQoJnQwLCAm
dDAsICZ0MCkgICAvLyB0MCA9IHQwICsgdDAKKwlpbnYoaiwgaikgICAgICAgICAgICAvLyBqICA9
IDEvagorCW11bChqLCAmdDAsIGopICAgICAgIC8vIGogID0gdDAgKiBqCit9CisKKy8vIEdpdmVu
IGFmZmluZSBwb2ludHMgeChQKSwgeChRKSBhbmQgeChRLVApIGluIGEgZXh0ZW5zaW9uIGZpZWxk
IEZfe3BeMn0sIGZ1bmN0aW9uCisvLyByZWNvcnZlcnMgcHJvamVjdGl2ZSBjb29yZGluYXRlIEEg
b2YgYSBjdXJ2ZS4gVGhpcyBpcyBBbGdvcml0aG0gMTAgZnJvbSBTSUtFLgorZnVuYyBSZWNvdmVy
Q29vcmRpbmF0ZUEoY3VydmUgKlByb2plY3RpdmVDdXJ2ZVBhcmFtZXRlcnMsIHhwLCB4cSwgeHIg
KkZwMikgeworCXZhciB0MCwgdDEgRnAyCisKKwlhZGQoJnQxLCB4cCwgeHEpICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gdDEgPSBYcCArIFhxCisJbXVsKCZ0MCwgeHAsIHhxKSAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHQwID0gWHAgKiBYcQorCW11bCgmY3VydmUuQSwgeHIsICZ0MSkgICAg
ICAgICAgICAgICAgICAvLyBBICA9IFgocS1wKSAqIHQxCisJYWRkKCZjdXJ2ZS5BLCAmY3VydmUu
QSwgJnQwKSAgICAgICAgICAgIC8vIEEgID0gQSArIHQwCisJbXVsKCZ0MCwgJnQwLCB4cikgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHQwID0gdDAgKiBYKHEtcCkKKwlzdWIoJmN1cnZlLkEsICZj
dXJ2ZS5BLCAmUGFyYW1zLk9uZUZwMikgLy8gQSAgPSBBIC0gMQorCWFkZCgmdDAsICZ0MCwgJnQw
KSAgICAgICAgICAgICAgICAgICAgICAvLyB0MCA9IHQwICsgdDAKKwlhZGQoJnQxLCAmdDEsIHhy
KSAgICAgICAgICAgICAgICAgICAgICAgLy8gdDEgPSB0MSArIFgocS1wKQorCWFkZCgmdDAsICZ0
MCwgJnQwKSAgICAgICAgICAgICAgICAgICAgICAvLyB0MCA9IHQwICsgdDAKKwlzcXIoJmN1cnZl
LkEsICZjdXJ2ZS5BKSAgICAgICAgICAgICAgICAgLy8gQSAgPSBBXjIKKwlpbnYoJnQwLCAmdDAp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSAxL3QwCisJbXVsKCZjdXJ2ZS5BLCAm
Y3VydmUuQSwgJnQwKSAgICAgICAgICAgIC8vIEEgID0gQSAqIHQwCisJc3ViKCZjdXJ2ZS5BLCAm
Y3VydmUuQSwgJnQxKSAgICAgICAgICAgIC8vIEEgID0gQSAtIHQxCit9CisKKy8vIENvbXB1dGVz
IGVxdWl2YWxlbmNlIChBOkMpIH4gKEErMkMgOiBBLTJDKQorZnVuYyBDYWxjQ3VydmVQYXJhbXNF
cXVpdjMoY3BhcmFtcyAqUHJvamVjdGl2ZUN1cnZlUGFyYW1ldGVycykgQ3VydmVDb2VmZmljaWVu
dHNFcXVpdiB7CisJdmFyIGNvZWYgQ3VydmVDb2VmZmljaWVudHNFcXVpdgorCXZhciBjMiBGcDIK
KworCWFkZCgmYzIsICZjcGFyYW1zLkMsICZjcGFyYW1zLkMpCisJLy8gQTI0cCA9IEErMipDCisJ
YWRkKCZjb2VmLkEsICZjcGFyYW1zLkEsICZjMikKKwkvLyBBMjRtID0gQS0yKkMKKwlzdWIoJmNv
ZWYuQywgJmNwYXJhbXMuQSwgJmMyKQorCXJldHVybiBjb2VmCit9CisKKy8vIENvbXB1dGVzIGVx
dWl2YWxlbmNlIChBOkMpIH4gKEErMkMgOiA0QykKK2Z1bmMgQ2FsY0N1cnZlUGFyYW1zRXF1aXY0
KGNwYXJhbXMgKlByb2plY3RpdmVDdXJ2ZVBhcmFtZXRlcnMpIEN1cnZlQ29lZmZpY2llbnRzRXF1
aXYgeworCXZhciBjb2VmRXEgQ3VydmVDb2VmZmljaWVudHNFcXVpdgorCisJYWRkKCZjb2VmRXEu
QywgJmNwYXJhbXMuQywgJmNwYXJhbXMuQykKKwkvLyBBMjRwID0gQSsyQworCWFkZCgmY29lZkVx
LkEsICZjcGFyYW1zLkEsICZjb2VmRXEuQykKKwkvLyBDMjQgPSA0KkMKKwlhZGQoJmNvZWZFcS5D
LCAmY29lZkVxLkMsICZjb2VmRXEuQykKKwlyZXR1cm4gY29lZkVxCit9CisKKy8vIFJlY292ZXJz
IChBOkMpIGN1cnZlIHBhcmFtZXRlcnMgZnJvbSBwcm9qZWN0aXZlbHkgZXF1aXZhbGVudCAoQSsy
QzpBLTJDKS4KK2Z1bmMgUmVjb3ZlckN1cnZlQ29lZmZpY2llbnRzMyhjcGFyYW1zICpQcm9qZWN0
aXZlQ3VydmVQYXJhbWV0ZXJzLCBjb2VmRXEgKkN1cnZlQ29lZmZpY2llbnRzRXF1aXYpIHsKKwlh
ZGQoJmNwYXJhbXMuQSwgJmNvZWZFcS5BLCAmY29lZkVxLkMpCisJLy8gY3BhcmFtcy5BID0gMioo
QSsyQytBLTJDKSA9IDRBCisJYWRkKCZjcGFyYW1zLkEsICZjcGFyYW1zLkEsICZjcGFyYW1zLkEp
CisJLy8gY3BhcmFtcy5DID0gKEErMkMtQSsyQykgPSA0QworCXN1YigmY3BhcmFtcy5DLCAmY29l
ZkVxLkEsICZjb2VmRXEuQykKKwlyZXR1cm4KK30KKworLy8gUmVjb3ZlcnMgKEE6QykgY3VydmUg
cGFyYW1ldGVycyBmcm9tIHByb2plY3RpdmVseSBlcXVpdmFsZW50IChBKzJDOjRDKS4KK2Z1bmMg
UmVjb3ZlckN1cnZlQ29lZmZpY2llbnRzNChjcGFyYW1zICpQcm9qZWN0aXZlQ3VydmVQYXJhbWV0
ZXJzLCBjb2VmRXEgKkN1cnZlQ29lZmZpY2llbnRzRXF1aXYpIHsKKwkvLyBjcGFyYW1zLkMgPSAo
NEMpKjEvMj0yQworCW11bCgmY3BhcmFtcy5DLCAmY29lZkVxLkMsICZQYXJhbXMuSGFsZkZwMikK
KwkvLyBjcGFyYW1zLkEgPSBBKzJDIC0gMkMgPSBBCisJc3ViKCZjcGFyYW1zLkEsICZjb2VmRXEu
QSwgJmNwYXJhbXMuQykKKwkvLyBjcGFyYW1zLkMgPSAyQyAqIDEvMiA9IEMKKwltdWwoJmNwYXJh
bXMuQywgJmNwYXJhbXMuQywgJlBhcmFtcy5IYWxmRnAyKQorCXJldHVybgorfQorCisvLyBDb21i
aW5lZCBjb29yZGluYXRlIGRvdWJsaW5nIGFuZCBkaWZmZXJlbnRpYWwgYWRkaXRpb24uIFRha2Vz
IHByb2plY3RpdmUgcG9pbnRzCisvLyBQLFEsUS1QIGFuZCAoQSsyQykvNEMgY3VydmUgRSBjb2Vm
ZmljaWVudC4gUmV0dXJucyAyKlAgYW5kIFArUSBjYWxjdWxhdGVkIG9uIEUuCisvLyBGdW5jdGlv
biBpcyB1c2VkIG9ubHkgYnkgUmlnaHRUb0xlZnRMYWRkZXIuIENvcnJlc3BvbmRzIHRvIEFsZ29y
aXRobSA1IG9mIFNJS0UKK2Z1bmMgeERibGFkZChQLCBRLCBRbVAgKlByb2plY3RpdmVQb2ludCwg
YTI0ICpGcDIpIChkYmxQLCBQYVEgUHJvamVjdGl2ZVBvaW50KSB7CisJdmFyIHQwLCB0MSwgdDIg
RnAyCisJeFFtUCwgelFtUCA6PSAmUW1QLlgsICZRbVAuWgorCXhQYVEsIHpQYVEgOj0gJlBhUS5Y
LCAmUGFRLloKKwl4MlAsIHoyUCA6PSAmZGJsUC5YLCAmZGJsUC5aCisJeFAsIHpQIDo9ICZQLlgs
ICZQLloKKwl4USwgelEgOj0gJlEuWCwgJlEuWgorCisJYWRkKCZ0MCwgeFAsIHpQKSAgICAgIC8v
IHQwICAgPSBYcCtacAorCXN1YigmdDEsIHhQLCB6UCkgICAgICAvLyB0MSAgID0gWHAtWnAKKwlz
cXIoeDJQLCAmdDApICAgICAgICAgLy8gMlAuWCA9IHQwXjIKKwlzdWIoJnQyLCB4USwgelEpICAg
ICAgLy8gdDIgICA9IFhxLVpxCisJYWRkKHhQYVEsIHhRLCB6USkgICAgIC8vIFhwK3EgPSBYcSta
cQorCW11bCgmdDAsICZ0MCwgJnQyKSAgICAvLyB0MCAgID0gdDAgKiB0MgorCW11bCh6MlAsICZ0
MSwgJnQxKSAgICAvLyAyUC5aID0gdDEgKiB0MQorCW11bCgmdDEsICZ0MSwgeFBhUSkgICAvLyB0
MSAgID0gdDEgKiBYcCtxCisJc3ViKCZ0MiwgeDJQLCB6MlApICAgIC8vIHQyICAgPSAyUC5YIC0g
MlAuWgorCW11bCh4MlAsIHgyUCwgejJQKSAgICAvLyAyUC5YID0gMlAuWCAqIDJQLloKKwltdWwo
eFBhUSwgYTI0LCAmdDIpICAgLy8gWHArcSA9IEEyNCAqIHQyCisJc3ViKHpQYVEsICZ0MCwgJnQx
KSAgIC8vIFpwK3EgPSB0MCAtIHQxCisJYWRkKHoyUCwgeFBhUSwgejJQKSAgIC8vIDJQLlogPSBY
cCtxICsgMlAuWgorCWFkZCh4UGFRLCAmdDAsICZ0MSkgICAvLyBYcCtxID0gdDAgKyB0MQorCW11
bCh6MlAsIHoyUCwgJnQyKSAgICAvLyAyUC5aID0gMlAuWiAqIHQyCisJc3FyKHpQYVEsIHpQYVEp
ICAgICAgIC8vIFpwK3EgPSBacCtxIF4gMgorCXNxcih4UGFRLCB4UGFRKSAgICAgICAvLyBYcCtx
ID0gWHArcSBeIDIKKwltdWwoelBhUSwgeFFtUCwgelBhUSkgLy8gWnArcSA9IFhxLXAgKiBacCtx
CisJbXVsKHhQYVEsIHpRbVAsIHhQYVEpIC8vIFhwK3EgPSBacS1wICogWHArcQorCXJldHVybgor
fQorCisvLyBHaXZlbiB0aGUgY3VydmUgcGFyYW1ldGVycywgeFAgPSB4KFApLCBjb21wdXRlcyB4
UCA9IHgoWzJea11QKQorLy8gU2FmZSB0byBvdmVybGFwIHhQLCB4MlAuCitmdW5jIFBvdzJrKHhQ
ICpQcm9qZWN0aXZlUG9pbnQsIHBhcmFtcyAqQ3VydmVDb2VmZmljaWVudHNFcXVpdiwgayB1aW50
MzIpIHsKKwl2YXIgdDAsIHQxIEZwMgorCisJeCwgeiA6PSAmeFAuWCwgJnhQLloKKwlmb3IgaSA6
PSB1aW50MzIoMCk7IGkgPCBrOyBpKysgeworCQlzdWIoJnQwLCB4LCB6KSAgICAgICAgICAgLy8g
dDAgID0gWHAgLSBacAorCQlhZGQoJnQxLCB4LCB6KSAgICAgICAgICAgLy8gdDEgID0gWHAgKyBa
cAorCQlzcXIoJnQwLCAmdDApICAgICAgICAgICAgLy8gdDAgID0gdDAgXiAyCisJCXNxcigmdDEs
ICZ0MSkgICAgICAgICAgICAvLyB0MSAgPSB0MSBeIDIKKwkJbXVsKHosICZwYXJhbXMuQywgJnQw
KSAgIC8vIFoycCA9IEMyNCAqIHQwCisJCW11bCh4LCB6LCAmdDEpICAgICAgICAgICAvLyBYMnAg
PSBaMnAgKiB0MQorCQlzdWIoJnQxLCAmdDEsICZ0MCkgICAgICAgLy8gdDEgID0gdDEgLSB0MAor
CQltdWwoJnQwLCAmcGFyYW1zLkEsICZ0MSkgLy8gdDAgID0gQTI0KyAqIHQxCisJCWFkZCh6LCB6
LCAmdDApICAgICAgICAgICAvLyBaMnAgPSBaMnAgKyB0MAorCQltdWwoeiwgeiwgJnQxKSAgICAg
ICAgICAgLy8gWnAgID0gWjJwICogdDEKKwl9Cit9CisKKy8vIEdpdmVuIHRoZSBjdXJ2ZSBwYXJh
bWV0ZXJzLCB4UCA9IHgoUCksIGFuZCBrID49IDAsIGNvbXB1dGUgeFAgPSB4KFszXmtdUCkuCisv
LworLy8gU2FmZSB0byBvdmVybGFwIHhQLCB4Ui4KK2Z1bmMgUG93M2soeFAgKlByb2plY3RpdmVQ
b2ludCwgcGFyYW1zICpDdXJ2ZUNvZWZmaWNpZW50c0VxdWl2LCBrIHVpbnQzMikgeworCXZhciB0
MCwgdDEsIHQyLCB0MywgdDQsIHQ1LCB0NiBGcDIKKworCXgsIHogOj0gJnhQLlgsICZ4UC5aCisJ
Zm9yIGkgOj0gdWludDMyKDApOyBpIDwgazsgaSsrIHsKKwkJc3ViKCZ0MCwgeCwgeikgICAgICAg
ICAgIC8vIHQwICA9IFhwIC0gWnAKKwkJc3FyKCZ0MiwgJnQwKSAgICAgICAgICAgIC8vIHQyICA9
IHQwXjIKKwkJYWRkKCZ0MSwgeCwgeikgICAgICAgICAgIC8vIHQxICA9IFhwICsgWnAKKwkJc3Fy
KCZ0MywgJnQxKSAgICAgICAgICAgIC8vIHQzICA9IHQxXjIKKwkJYWRkKCZ0NCwgJnQxLCAmdDAp
ICAgICAgIC8vIHQ0ICA9IHQxICsgdDAKKwkJc3ViKCZ0MCwgJnQxLCAmdDApICAgICAgIC8vIHQw
ICA9IHQxIC0gdDAKKwkJc3FyKCZ0MSwgJnQ0KSAgICAgICAgICAgIC8vIHQxICA9IHQ0XjIKKwkJ
c3ViKCZ0MSwgJnQxLCAmdDMpICAgICAgIC8vIHQxICA9IHQxIC0gdDMKKwkJc3ViKCZ0MSwgJnQx
LCAmdDIpICAgICAgIC8vIHQxICA9IHQxIC0gdDIKKwkJbXVsKCZ0NSwgJnQzLCAmcGFyYW1zLkEp
IC8vIHQ1ICA9IHQzICogQTI0KworCQltdWwoJnQzLCAmdDMsICZ0NSkgICAgICAgLy8gdDMgID0g
dDUgKiB0MworCQltdWwoJnQ2LCAmdDIsICZwYXJhbXMuQykgLy8gdDYgID0gdDIgKiBBMjQtCisJ
CW11bCgmdDIsICZ0MiwgJnQ2KSAgICAgICAvLyB0MiAgPSB0MiAqIHQ2CisJCXN1YigmdDMsICZ0
MiwgJnQzKSAgICAgICAvLyB0MyAgPSB0MiAtIHQzCisJCXN1YigmdDIsICZ0NSwgJnQ2KSAgICAg
ICAvLyB0MiAgPSB0NSAtIHQ2CisJCW11bCgmdDEsICZ0MiwgJnQxKSAgICAgICAvLyB0MSAgPSB0
MiAqIHQxCisJCWFkZCgmdDIsICZ0MywgJnQxKSAgICAgICAvLyB0MiAgPSB0MyArIHQxCisJCXNx
cigmdDIsICZ0MikgICAgICAgICAgICAvLyB0MiAgPSB0Ml4yCisJCW11bCh4LCAmdDIsICZ0NCkg
ICAgICAgICAvLyBYM3AgPSB0MiAqIHQ0CisJCXN1YigmdDEsICZ0MywgJnQxKSAgICAgICAvLyB0
MSAgPSB0MyAtIHQxCisJCXNxcigmdDEsICZ0MSkgICAgICAgICAgICAvLyB0MSAgPSB0MV4yCisJ
CW11bCh6LCAmdDEsICZ0MCkgICAgICAgICAvLyBaM3AgPSB0MSAqIHQwCisJfQorfQorCisvLyBT
ZXQgKHkxLCB5MiwgeTMpICA9ICgxL3gxLCAxL3gyLCAxL3gzKS4KKy8vCisvLyBBbGwgeGksIHlp
IG11c3QgYmUgZGlzdGluY3QuCitmdW5jIEZwMkJhdGNoM0ludih4MSwgeDIsIHgzLCB5MSwgeTIs
IHkzICpGcDIpIHsKKwl2YXIgeDF4MiwgdCBGcDIKKworCW11bCgmeDF4MiwgeDEsIHgyKSAvLyB4
MSp4MgorCW11bCgmdCwgJngxeDIsIHgzKSAvLyAxLyh4MSp4Mip4MykKKwlpbnYoJnQsICZ0KQor
CW11bCh5MSwgJnQsIHgyKSAvLyAxL3gxCisJbXVsKHkxLCB5MSwgeDMpCisJbXVsKHkyLCAmdCwg
eDEpIC8vIDEveDIKKwltdWwoeTIsIHkyLCB4MykKKwltdWwoeTMsICZ0LCAmeDF4MikgLy8gMS94
MworfQorCisvLyBTY2FsYXJNdWwzUHQgaXMgYSByaWdodC10by1sZWZ0IHBvaW50IG11bHRpcGxp
Y2F0aW9uIHRoYXQgZ2l2ZW4gdGhlCisvLyB4LWNvb3JkaW5hdGUgb2YgUCwgUSBhbmQgUC1RIGNh
bGN1bGF0ZXMgdGhlIHgtY29vcmRpbmF0ZSBvZiBSPVErW3NjYWxhcl1QLgorLy8gbmJpdHMgbXVz
dCBiZSBzbWFsbGVyIG9yIGVxdWFsIHRvIGxlbihzY2FsYXIpLgorZnVuYyBTY2FsYXJNdWwzUHQo
Y3BhcmFtcyAqUHJvamVjdGl2ZUN1cnZlUGFyYW1ldGVycywgUCwgUSwgUG1RICpQcm9qZWN0aXZl
UG9pbnQsIG5iaXRzIHVpbnQsIHNjYWxhciBbXXVpbnQ4KSBQcm9qZWN0aXZlUG9pbnQgeworCXZh
ciBSMCwgUjIsIFIxIFByb2plY3RpdmVQb2ludAorCWFQbHVzMk92ZXI0IDo9IGNhbGNBcGx1czJP
dmVyNChjcGFyYW1zKQorCVIxID0gKlAKKwlSMiA9ICpQbVEKKwlSMCA9ICpRCisKKwkvLyBJdGVy
YXRlIG92ZXIgdGhlIGJpdHMgb2YgdGhlIHNjYWxhciwgYm90dG9tIHRvIHRvcAorCXByZXZCaXQg
Oj0gdWludDgoMCkKKwlmb3IgaSA6PSB1aW50KDApOyBpIDwgbmJpdHM7IGkrKyB7CisJCWJpdCA6
PSAoc2NhbGFyW2k+PjNdID4+IChpICYgNykgJiAxKQorCQlzd2FwIDo9IHByZXZCaXQgXiBiaXQK
KwkJcHJldkJpdCA9IGJpdAorCQljb25kU3dhcCgmUjEuWCwgJlIxLlosICZSMi5YLCAmUjIuWiwg
c3dhcCkKKwkJUjAsIFIyID0geERibGFkZCgmUjAsICZSMiwgJlIxLCAmYVBsdXMyT3ZlcjQpCisJ
fQorCWNvbmRTd2FwKCZSMS5YLCAmUjEuWiwgJlIyLlgsICZSMi5aLCBwcmV2Qml0KQorCXJldHVy
biBSMQorfQorCisvLyBHaXZlbiBhIHRocmVlLXRvcnNpb24gcG9pbnQgcCA9IHgoUEIpIG9uIHRo
ZSBjdXJ2ZSBFXyhBOkMpLCBjb25zdHJ1Y3QgdGhlCisvLyB0aHJlZS1pc29nZW55IHBoaSA6IEVf
KEE6QykgLT4gRV8oQTpDKS88UF8zPiA9IEVfKEEnOkMnKS4KKy8vCisvLyBJbnB1dDogKFhQXzM6
IFpQXzMpLCB3aGVyZSBQXzMgaGFzIGV4YWN0IG9yZGVyIDMgb24gRV9BL0MKKy8vIE91dHB1dDog
KiBDdXJ2ZSBjb29yZGluYXRlcyAoQScgKyAyQycsIEEnIC0gMkMnKSBjb3JyZXNwb25kaW5nIHRv
IEVfQScvQycgPSBBX0UvQy88UDM+CisvLyAgICAgICAgICogaXNvZ2VueSBwaGkgd2l0aCBjb25z
dGFudHMgaW4gRl9wXjIKK2Z1bmMgKHBoaSAqaXNvZ2VueTMpIEdlbmVyYXRlQ3VydmUocCAqUHJv
amVjdGl2ZVBvaW50KSBDdXJ2ZUNvZWZmaWNpZW50c0VxdWl2IHsKKwl2YXIgdDAsIHQxLCB0Miwg
dDMsIHQ0IEZwMgorCXZhciBjb2VmRXEgQ3VydmVDb2VmZmljaWVudHNFcXVpdgorCXZhciBLMSwg
SzIgPSAmcGhpLksxLCAmcGhpLksyCisKKwlzdWIoSzEsICZwLlgsICZwLlopICAgICAgICAgICAg
Ly8gSzEgPSBYUDMgLSBaUDMKKwlzcXIoJnQwLCBLMSkgICAgICAgICAgICAgICAgICAgLy8gdDAg
PSBLMV4yCisJYWRkKEsyLCAmcC5YLCAmcC5aKSAgICAgICAgICAgIC8vIEsyID0gWFAzICsgWlAz
CisJc3FyKCZ0MSwgSzIpICAgICAgICAgICAgICAgICAgIC8vIHQxID0gSzJeMgorCWFkZCgmdDIs
ICZ0MCwgJnQxKSAgICAgICAgICAgICAvLyB0MiA9IHQwICsgdDEKKwlhZGQoJnQzLCBLMSwgSzIp
ICAgICAgICAgICAgICAgLy8gdDMgPSBLMSArIEsyCisJc3FyKCZ0MywgJnQzKSAgICAgICAgICAg
ICAgICAgIC8vIHQzID0gdDNeMgorCXN1YigmdDMsICZ0MywgJnQyKSAgICAgICAgICAgICAvLyB0
MyA9IHQzIC0gdDIKKwlhZGQoJnQyLCAmdDEsICZ0MykgICAgICAgICAgICAgLy8gdDIgPSB0MSAr
IHQzCisJYWRkKCZ0MywgJnQzLCAmdDApICAgICAgICAgICAgIC8vIHQzID0gdDMgKyB0MAorCWFk
ZCgmdDQsICZ0MywgJnQwKSAgICAgICAgICAgICAvLyB0NCA9IHQzICsgdDAKKwlhZGQoJnQ0LCAm
dDQsICZ0NCkgICAgICAgICAgICAgLy8gdDQgPSB0NCArIHQ0CisJYWRkKCZ0NCwgJnQxLCAmdDQp
ICAgICAgICAgICAgIC8vIHQ0ID0gdDEgKyB0NAorCW11bCgmY29lZkVxLkMsICZ0MiwgJnQ0KSAg
ICAgICAvLyBBMjRtID0gdDIgKiB0NAorCWFkZCgmdDQsICZ0MSwgJnQyKSAgICAgICAgICAgICAv
LyB0NCA9IHQxICsgdDIKKwlhZGQoJnQ0LCAmdDQsICZ0NCkgICAgICAgICAgICAgLy8gdDQgPSB0
NCArIHQ0CisJYWRkKCZ0NCwgJnQwLCAmdDQpICAgICAgICAgICAgIC8vIHQ0ID0gdDAgKyB0NAor
CW11bCgmdDQsICZ0MywgJnQ0KSAgICAgICAgICAgICAvLyB0NCA9IHQzICogdDQKKwlzdWIoJnQw
LCAmdDQsICZjb2VmRXEuQykgICAgICAgLy8gdDAgPSB0NCAtIEEyNG0KKwlhZGQoJmNvZWZFcS5B
LCAmY29lZkVxLkMsICZ0MCkgLy8gQTI0cCA9IEEyNG0gKyB0MAorCXJldHVybiBjb2VmRXEKK30K
KworLy8gR2l2ZW4gYSAzLWlzb2dlbnkgcGhpIGFuZCBhIHBvaW50IHBCID0geChQQiksIGNvbXB1
dGUgeChRQiksIHRoZSB4LWNvb3JkaW5hdGUKKy8vIG9mIHRoZSBpbWFnZSBRQiA9IHBoaShQQikg
b2YgUEIgdW5kZXIgcGhpIDogRV8oQTpDKSAtPiBFXyhBJzpDJykuCisvLworLy8gVGhlIG91dHB1
dCB4USA9IHgoUSkgaXMgdGhlbiBhIHBvaW50IG9uIHRoZSBjdXJ2ZSBFXyhBJzpDJyk7IHRoZSBj
dXJ2ZQorLy8gcGFyYW1ldGVycyBhcmUgcmV0dXJuZWQgYnkgdGhlIEdlbmVyYXRlQ3VydmUgZnVu
Y3Rpb24gdXNlZCB0byBjb25zdHJ1Y3QgcGhpLgorZnVuYyAocGhpICppc29nZW55MykgRXZhbHVh
dGVQb2ludChwICpQcm9qZWN0aXZlUG9pbnQpIFByb2plY3RpdmVQb2ludCB7CisJdmFyIHQwLCB0
MSwgdDIgRnAyCisJdmFyIHEgUHJvamVjdGl2ZVBvaW50CisJdmFyIEsxLCBLMiA9ICZwaGkuSzEs
ICZwaGkuSzIKKwl2YXIgcHgsIHB6ID0gJnAuWCwgJnAuWgorCisJYWRkKCZ0MCwgcHgsIHB6KSAg
IC8vIHQwID0gWFEgKyBaUQorCXN1YigmdDEsIHB4LCBweikgICAvLyB0MSA9IFhRIC0gWlEKKwlt
dWwoJnQwLCBLMSwgJnQwKSAgLy8gdDIgPSBLMSAqIHQwCisJbXVsKCZ0MSwgSzIsICZ0MSkgIC8v
IHQxID0gSzIgKiB0MQorCWFkZCgmdDIsICZ0MCwgJnQxKSAvLyB0MiA9IHQwICsgdDEKKwlzdWIo
JnQwLCAmdDEsICZ0MCkgLy8gdDAgPSB0MSAtIHQwCisJc3FyKCZ0MiwgJnQyKSAgICAgIC8vIHQy
ID0gdDIgXiAyCisJc3FyKCZ0MCwgJnQwKSAgICAgIC8vIHQwID0gdDAgXiAyCisJbXVsKCZxLlgs
IHB4LCAmdDIpIC8vIFhRJz0gWFEgKiB0MgorCW11bCgmcS5aLCBweiwgJnQwKSAvLyBaUSc9IFpR
ICogdDAKKwlyZXR1cm4gcQorfQorCisvLyBHaXZlbiBhIGZvdXItdG9yc2lvbiBwb2ludCBwID0g
eChQQikgb24gdGhlIGN1cnZlIEVfKEE6QyksIGNvbnN0cnVjdCB0aGUKKy8vIGZvdXItaXNvZ2Vu
eSBwaGkgOiBFXyhBOkMpIC0+IEVfKEE6QykvPFBfND4gPSBFXyhBJzpDJykuCisvLworLy8gSW5w
dXQ6IChYUF80OiBaUF80KSwgd2hlcmUgUF80IGhhcyBleGFjdCBvcmRlciA0IG9uIEVfQS9DCisv
LyBPdXRwdXQ6ICogQ3VydmUgY29vcmRpbmF0ZXMgKEEnICsgMkMnLCA0QycpIGNvcnJlc3BvbmRp
bmcgdG8gRV9BJy9DJyA9IEFfRS9DLzxQND4KKy8vICAgICAgICAgKiBpc29nZW55IHBoaSB3aXRo
IGNvbnN0YW50cyBpbiBGX3BeMgorZnVuYyAocGhpICppc29nZW55NCkgR2VuZXJhdGVDdXJ2ZShw
ICpQcm9qZWN0aXZlUG9pbnQpIEN1cnZlQ29lZmZpY2llbnRzRXF1aXYgeworCXZhciBjb2VmRXEg
Q3VydmVDb2VmZmljaWVudHNFcXVpdgorCXZhciB4cDQsIHpwNCA9ICZwLlgsICZwLloKKwl2YXIg
SzEsIEsyLCBLMyA9ICZwaGkuSzEsICZwaGkuSzIsICZwaGkuSzMKKworCXN1YihLMiwgeHA0LCB6
cDQpCisJYWRkKEszLCB4cDQsIHpwNCkKKwlzcXIoSzEsIHpwNCkKKwlhZGQoSzEsIEsxLCBLMSkK
KwlzcXIoJmNvZWZFcS5DLCBLMSkKKwlhZGQoSzEsIEsxLCBLMSkKKwlzcXIoJmNvZWZFcS5BLCB4
cDQpCisJYWRkKCZjb2VmRXEuQSwgJmNvZWZFcS5BLCAmY29lZkVxLkEpCisJc3FyKCZjb2VmRXEu
QSwgJmNvZWZFcS5BKQorCXJldHVybiBjb2VmRXEKK30KKworLy8gR2l2ZW4gYSA0LWlzb2dlbnkg
cGhpIGFuZCBhIHBvaW50IHhQID0geChQKSwgY29tcHV0ZSB4KFEpLCB0aGUgeC1jb29yZGluYXRl
CisvLyBvZiB0aGUgaW1hZ2UgUSA9IHBoaShQKSBvZiBQIHVuZGVyIHBoaSA6IEVfKEE6QykgLT4g
RV8oQSc6QycpLgorLy8KKy8vIElucHV0OiBpc29nZW55IHJldHVybmVkIGJ5IEdlbmVyYXRlQ3Vy
dmUgYW5kIHBvaW50IHE9KFF4LFF6KSBmcm9tIEUwX0EvQworLy8gT3V0cHV0OiBDb3JyZXNwb25k
aW5nIHBvaW50IHEgZnJvbSBFMV9BJy9DJywgd2hlcmUgRTEgaXMgNC1pc29nZW5vdXMgdG8gRTAK
K2Z1bmMgKHBoaSAqaXNvZ2VueTQpIEV2YWx1YXRlUG9pbnQocCAqUHJvamVjdGl2ZVBvaW50KSBQ
cm9qZWN0aXZlUG9pbnQgeworCXZhciB0MCwgdDEgRnAyCisJdmFyIHEgPSAqcAorCXZhciB4cSwg
enEgPSAmcS5YLCAmcS5aCisJdmFyIEsxLCBLMiwgSzMgPSAmcGhpLksxLCAmcGhpLksyLCAmcGhp
LkszCisKKwlhZGQoJnQwLCB4cSwgenEpCisJc3ViKCZ0MSwgeHEsIHpxKQorCW11bCh4cSwgJnQw
LCBLMikKKwltdWwoenEsICZ0MSwgSzMpCisJbXVsKCZ0MCwgJnQwLCAmdDEpCisJbXVsKCZ0MCwg
JnQwLCBLMSkKKwlhZGQoJnQxLCB4cSwgenEpCisJc3ViKHpxLCB4cSwgenEpCisJc3FyKCZ0MSwg
JnQxKQorCXNxcih6cSwgenEpCisJYWRkKHhxLCAmdDAsICZ0MSkKKwlzdWIoJnQwLCB6cSwgJnQw
KQorCW11bCh4cSwgeHEsICZ0MSkKKwltdWwoenEsIHpxLCAmdDApCisJcmV0dXJuIHEKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvc2lrZS9zaWtlLmdvIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0
L3J1bm5lci9zaWtlL3Npa2UuZ28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNkNmNmYzQ2OWYxNjUwOWIxYmZlNWIy
MGE0YjA2NDUyYTQ2MGUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIv
c2lrZS9zaWtlLmdvCkBAIC0wLDAgKzEsNjgzIEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTksIENs
b3VkZmxhcmUgSW5jLgorLy8KKy8vIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFu
ZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorLy8gcHVycG9zZSB3aXRoIG9y
IHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQor
Ly8gY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4g
YWxsIGNvcGllcy4KKy8vCisvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQg
VEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKy8vIFdJVEggUkVHQVJEIFRPIFRI
SVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKy8vIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBM
SUFCTEUgRk9SIEFOWQorLy8gU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisvLyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9N
IExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisvLyBP
RiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcg
T1VUIE9GIE9SIElOCisvLyBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBP
RiBUSElTIFNPRlRXQVJFLgorCitwYWNrYWdlIHNpa2UKKworaW1wb3J0ICgKKwkiY3J5cHRvL3No
YTI1NiIKKwkiY3J5cHRvL3N1YnRsZSIKKwkiZXJyb3JzIgorCSJpbyIKKykKKworLy8gWmVyb2l6
ZSBGcDIKK2Z1bmMgemVyb2l6ZShmcCAqRnAyKSB7CisJLy8gWmVyb2l6aW5nIGluIDIgc2VwYXJh
dGVkIGxvb3BzIHRlbGxzIGNvbXBpbGVyIHRvCisJLy8gdXNlIGZhc3QgcnVudGltZS5tZW1jbHIo
KQorCWZvciBpIDo9IHJhbmdlIGZwLkEgeworCQlmcC5BW2ldID0gMAorCX0KKwlmb3IgaSA6PSBy
YW5nZSBmcC5CIHsKKwkJZnAuQltpXSA9IDAKKwl9Cit9CisKKy8vIENvbnZlcnQgdGhlIGlucHV0
IHRvIHdpcmUgZm9ybWF0LgorLy8KKy8vIFRoZSBvdXRwdXQgYnl0ZSBzbGljZSBtdXN0IGJlIGF0
IGxlYXN0IDIqYnl0ZWxlbihwKSBieXRlcyBsb25nLgorZnVuYyBjb252RnAyVG9CeXRlcyhvdXRw
dXQgW11ieXRlLCBmcDIgKkZwMikgeworCWlmIGxlbihvdXRwdXQpIDwgMipQYXJhbXMuQnl0ZWxl
biB7CisJCXBhbmljKCJvdXRwdXQgYnl0ZSBzbGljZSB0b28gc2hvcnQiKQorCX0KKwl2YXIgYSBG
cDIKKwlmcm9tTW9udERvbWFpbihmcDIsICZhKQorCisJLy8gY29udmVydCB0byBieXRlcyBpbiBs
aXR0bGUgZW5kaWFuIGZvcm0KKwlmb3IgaSA6PSAwOyBpIDwgUGFyYW1zLkJ5dGVsZW47IGkrKyB7
CisJCS8vIHNldCBpID0gaio4ICsgaworCQl0bXAgOj0gaSAvIDgKKwkJayA6PSB1aW50NjQoaSAl
IDgpCisJCW91dHB1dFtpXSA9IGJ5dGUoYS5BW3RtcF0gPj4gKDggKiBrKSkKKwkJb3V0cHV0W2kr
UGFyYW1zLkJ5dGVsZW5dID0gYnl0ZShhLkJbdG1wXSA+PiAoOCAqIGspKQorCX0KK30KKworLy8g
UmVhZCAyKmJ5dGVsZW4ocCkgYnl0ZXMgaW50byB0aGUgZ2l2ZW4gRXh0ZW5zaW9uRmllbGRFbGVt
ZW50LgorLy8KKy8vIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBpZiB0aGUg
aW5wdXQgYnl0ZSBzbGljZSBpcyBsZXNzIHRoYW4gMipieXRlbGVuKHApIGJ5dGVzIGxvbmcuCitm
dW5jIGNvbnZCeXRlc1RvRnAyKGZwMiAqRnAyLCBpbnB1dCBbXWJ5dGUpIHsKKwlpZiBsZW4oaW5w
dXQpIDwgMipQYXJhbXMuQnl0ZWxlbiB7CisJCXBhbmljKCJpbnB1dCBieXRlIHNsaWNlIHRvbyBz
aG9ydCIpCisJfQorCisJZm9yIGkgOj0gMDsgaSA8IFBhcmFtcy5CeXRlbGVuOyBpKysgeworCQlq
IDo9IGkgLyA4CisJCWsgOj0gdWludDY0KGkgJSA4KQorCQlmcDIuQVtqXSB8PSB1aW50NjQoaW5w
dXRbaV0pIDw8ICg4ICogaykKKwkJZnAyLkJbal0gfD0gdWludDY0KGlucHV0W2krUGFyYW1zLkJ5
dGVsZW5dKSA8PCAoOCAqIGspCisJfQorCXRvTW9udERvbWFpbihmcDIpCit9CisKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisvLyBGdW5jdGlvbnMgZm9yIHRyYXZlcnNpbmcgaXNvZ2VueSB0cmVl
cyBhY29vcmRpbmcgdG8gc3RyYXRlZ3kuIEtleSB0eXBlICdBJyBpcworLy8KKworLy8gVHJhdmVy
c2VzIGlzb2dlbnkgdHJlZSBpbiBvcmRlciB0byBjb21wdXRlIHhSLCB4UCwgeFEgYW5kIHhRbVAg
bmVlZGVkCisvLyBmb3IgcHVibGljIGtleSBnZW5lcmF0aW9uLgorZnVuYyB0cmF2ZXJzZVRyZWVQ
dWJsaWNLZXlBKGN1cnZlICpQcm9qZWN0aXZlQ3VydmVQYXJhbWV0ZXJzLCB4UiwgcGhpUCwgcGhp
USwgcGhpUiAqUHJvamVjdGl2ZVBvaW50LCBwdWIgKlB1YmxpY0tleSkgeworCXZhciBwb2ludHMg
PSBtYWtlKFtdUHJvamVjdGl2ZVBvaW50LCAwLCA4KQorCXZhciBpbmRpY2VzID0gbWFrZShbXWlu
dCwgMCwgOCkKKwl2YXIgaSwgc2lkeCBpbnQKKworCWNwYXJhbSA6PSBDYWxjQ3VydmVQYXJhbXNF
cXVpdjQoY3VydmUpCisJcGhpIDo9IE5ld0lzb2dlbnk0KCkKKwlzdHJhdCA6PSBwdWIucGFyYW1z
LkEuSXNvZ2VueVN0cmF0ZWd5CisJc3RyYXRTeiA6PSBsZW4oc3RyYXQpCisKKwlmb3IgaiA6PSAx
OyBqIDw9IHN0cmF0U3o7IGorKyB7CisJCWZvciBpIDw9IHN0cmF0U3otaiB7CisJCQlwb2ludHMg
PSBhcHBlbmQocG9pbnRzLCAqeFIpCisJCQlpbmRpY2VzID0gYXBwZW5kKGluZGljZXMsIGkpCisK
KwkJCWsgOj0gc3RyYXRbc2lkeF0KKwkJCXNpZHgrKworCQkJUG93MmsoeFIsICZjcGFyYW0sIDIq
aykKKwkJCWkgKz0gaW50KGspCisJCX0KKworCQljcGFyYW0gPSBwaGkuR2VuZXJhdGVDdXJ2ZSh4
UikKKwkJZm9yIGsgOj0gMDsgayA8IGxlbihwb2ludHMpOyBrKysgeworCQkJcG9pbnRzW2tdID0g
cGhpLkV2YWx1YXRlUG9pbnQoJnBvaW50c1trXSkKKwkJfQorCisJCSpwaGlQID0gcGhpLkV2YWx1
YXRlUG9pbnQocGhpUCkKKwkJKnBoaVEgPSBwaGkuRXZhbHVhdGVQb2ludChwaGlRKQorCQkqcGhp
UiA9IHBoaS5FdmFsdWF0ZVBvaW50KHBoaVIpCisKKwkJLy8gcG9wIHhSIGZyb20gcG9pbnRzCisJ
CSp4UiwgcG9pbnRzID0gcG9pbnRzW2xlbihwb2ludHMpLTFdLCBwb2ludHNbOmxlbihwb2ludHMp
LTFdCisJCWksIGluZGljZXMgPSBpbnQoaW5kaWNlc1tsZW4oaW5kaWNlcyktMV0pLCBpbmRpY2Vz
WzpsZW4oaW5kaWNlcyktMV0KKwl9Cit9CisKKy8vIFRyYXZlcnNlcyBpc29nZW55IHRyZWUgaW4g
b3JkZXIgdG8gY29tcHV0ZSB4UiBuZWVkZWQKKy8vIGZvciBwdWJsaWMga2V5IGdlbmVyYXRpb24u
CitmdW5jIHRyYXZlcnNlVHJlZVNoYXJlZEtleUEoY3VydmUgKlByb2plY3RpdmVDdXJ2ZVBhcmFt
ZXRlcnMsIHhSICpQcm9qZWN0aXZlUG9pbnQsIHB1YiAqUHVibGljS2V5KSB7CisJdmFyIHBvaW50
cyA9IG1ha2UoW11Qcm9qZWN0aXZlUG9pbnQsIDAsIDgpCisJdmFyIGluZGljZXMgPSBtYWtlKFtd
aW50LCAwLCA4KQorCXZhciBpLCBzaWR4IGludAorCisJY3BhcmFtIDo9IENhbGNDdXJ2ZVBhcmFt
c0VxdWl2NChjdXJ2ZSkKKwlwaGkgOj0gTmV3SXNvZ2VueTQoKQorCXN0cmF0IDo9IHB1Yi5wYXJh
bXMuQS5Jc29nZW55U3RyYXRlZ3kKKwlzdHJhdFN6IDo9IGxlbihzdHJhdCkKKworCWZvciBqIDo9
IDE7IGogPD0gc3RyYXRTejsgaisrIHsKKwkJZm9yIGkgPD0gc3RyYXRTei1qIHsKKwkJCXBvaW50
cyA9IGFwcGVuZChwb2ludHMsICp4UikKKwkJCWluZGljZXMgPSBhcHBlbmQoaW5kaWNlcywgaSkK
KworCQkJayA6PSBzdHJhdFtzaWR4XQorCQkJc2lkeCsrCisJCQlQb3cyayh4UiwgJmNwYXJhbSwg
MiprKQorCQkJaSArPSBpbnQoaykKKwkJfQorCisJCWNwYXJhbSA9IHBoaS5HZW5lcmF0ZUN1cnZl
KHhSKQorCQlmb3IgayA6PSAwOyBrIDwgbGVuKHBvaW50cyk7IGsrKyB7CisJCQlwb2ludHNba10g
PSBwaGkuRXZhbHVhdGVQb2ludCgmcG9pbnRzW2tdKQorCQl9CisKKwkJLy8gcG9wIHhSIGZyb20g
cG9pbnRzCisJCSp4UiwgcG9pbnRzID0gcG9pbnRzW2xlbihwb2ludHMpLTFdLCBwb2ludHNbOmxl
bihwb2ludHMpLTFdCisJCWksIGluZGljZXMgPSBpbnQoaW5kaWNlc1tsZW4oaW5kaWNlcyktMV0p
LCBpbmRpY2VzWzpsZW4oaW5kaWNlcyktMV0KKwl9Cit9CisKKy8vIFRyYXZlcnNlcyBpc29nZW55
IHRyZWUgaW4gb3JkZXIgdG8gY29tcHV0ZSB4UiwgeFAsIHhRIGFuZCB4UW1QIG5lZWRlZAorLy8g
Zm9yIHB1YmxpYyBrZXkgZ2VuZXJhdGlvbi4KK2Z1bmMgdHJhdmVyc2VUcmVlUHVibGljS2V5Qihj
dXJ2ZSAqUHJvamVjdGl2ZUN1cnZlUGFyYW1ldGVycywgeFIsIHBoaVAsIHBoaVEsIHBoaVIgKlBy
b2plY3RpdmVQb2ludCwgcHViICpQdWJsaWNLZXkpIHsKKwl2YXIgcG9pbnRzID0gbWFrZShbXVBy
b2plY3RpdmVQb2ludCwgMCwgOCkKKwl2YXIgaW5kaWNlcyA9IG1ha2UoW11pbnQsIDAsIDgpCisJ
dmFyIGksIHNpZHggaW50CisKKwljcGFyYW0gOj0gQ2FsY0N1cnZlUGFyYW1zRXF1aXYzKGN1cnZl
KQorCXBoaSA6PSBOZXdJc29nZW55MygpCisJc3RyYXQgOj0gcHViLnBhcmFtcy5CLklzb2dlbnlT
dHJhdGVneQorCXN0cmF0U3ogOj0gbGVuKHN0cmF0KQorCisJZm9yIGogOj0gMTsgaiA8PSBzdHJh
dFN6OyBqKysgeworCQlmb3IgaSA8PSBzdHJhdFN6LWogeworCQkJcG9pbnRzID0gYXBwZW5kKHBv
aW50cywgKnhSKQorCQkJaW5kaWNlcyA9IGFwcGVuZChpbmRpY2VzLCBpKQorCisJCQlrIDo9IHN0
cmF0W3NpZHhdCisJCQlzaWR4KysKKwkJCVBvdzNrKHhSLCAmY3BhcmFtLCBrKQorCQkJaSArPSBp
bnQoaykKKwkJfQorCisJCWNwYXJhbSA9IHBoaS5HZW5lcmF0ZUN1cnZlKHhSKQorCQlmb3IgayA6
PSAwOyBrIDwgbGVuKHBvaW50cyk7IGsrKyB7CisJCQlwb2ludHNba10gPSBwaGkuRXZhbHVhdGVQ
b2ludCgmcG9pbnRzW2tdKQorCQl9CisKKwkJKnBoaVAgPSBwaGkuRXZhbHVhdGVQb2ludChwaGlQ
KQorCQkqcGhpUSA9IHBoaS5FdmFsdWF0ZVBvaW50KHBoaVEpCisJCSpwaGlSID0gcGhpLkV2YWx1
YXRlUG9pbnQocGhpUikKKworCQkvLyBwb3AgeFIgZnJvbSBwb2ludHMKKwkJKnhSLCBwb2ludHMg
PSBwb2ludHNbbGVuKHBvaW50cyktMV0sIHBvaW50c1s6bGVuKHBvaW50cyktMV0KKwkJaSwgaW5k
aWNlcyA9IGludChpbmRpY2VzW2xlbihpbmRpY2VzKS0xXSksIGluZGljZXNbOmxlbihpbmRpY2Vz
KS0xXQorCX0KK30KKworLy8gVHJhdmVyc2VzIGlzb2dlbnkgdHJlZSBpbiBvcmRlciB0byBjb21w
dXRlIHhSLCB4UCwgeFEgYW5kIHhRbVAgbmVlZGVkCisvLyBmb3IgcHVibGljIGtleSBnZW5lcmF0
aW9uLgorZnVuYyB0cmF2ZXJzZVRyZWVTaGFyZWRLZXlCKGN1cnZlICpQcm9qZWN0aXZlQ3VydmVQ
YXJhbWV0ZXJzLCB4UiAqUHJvamVjdGl2ZVBvaW50LCBwdWIgKlB1YmxpY0tleSkgeworCXZhciBw
b2ludHMgPSBtYWtlKFtdUHJvamVjdGl2ZVBvaW50LCAwLCA4KQorCXZhciBpbmRpY2VzID0gbWFr
ZShbXWludCwgMCwgOCkKKwl2YXIgaSwgc2lkeCBpbnQKKworCWNwYXJhbSA6PSBDYWxjQ3VydmVQ
YXJhbXNFcXVpdjMoY3VydmUpCisJcGhpIDo9IE5ld0lzb2dlbnkzKCkKKwlzdHJhdCA6PSBwdWIu
cGFyYW1zLkIuSXNvZ2VueVN0cmF0ZWd5CisJc3RyYXRTeiA6PSBsZW4oc3RyYXQpCisKKwlmb3Ig
aiA6PSAxOyBqIDw9IHN0cmF0U3o7IGorKyB7CisJCWZvciBpIDw9IHN0cmF0U3otaiB7CisJCQlw
b2ludHMgPSBhcHBlbmQocG9pbnRzLCAqeFIpCisJCQlpbmRpY2VzID0gYXBwZW5kKGluZGljZXMs
IGkpCisKKwkJCWsgOj0gc3RyYXRbc2lkeF0KKwkJCXNpZHgrKworCQkJUG93M2soeFIsICZjcGFy
YW0sIGspCisJCQlpICs9IGludChrKQorCQl9CisKKwkJY3BhcmFtID0gcGhpLkdlbmVyYXRlQ3Vy
dmUoeFIpCisJCWZvciBrIDo9IDA7IGsgPCBsZW4ocG9pbnRzKTsgaysrIHsKKwkJCXBvaW50c1tr
XSA9IHBoaS5FdmFsdWF0ZVBvaW50KCZwb2ludHNba10pCisJCX0KKworCQkvLyBwb3AgeFIgZnJv
bSBwb2ludHMKKwkJKnhSLCBwb2ludHMgPSBwb2ludHNbbGVuKHBvaW50cyktMV0sIHBvaW50c1s6
bGVuKHBvaW50cyktMV0KKwkJaSwgaW5kaWNlcyA9IGludChpbmRpY2VzW2xlbihpbmRpY2VzKS0x
XSksIGluZGljZXNbOmxlbihpbmRpY2VzKS0xXQorCX0KK30KKworLy8gR2VuZXJhdGUgYSBwdWJs
aWMga2V5IGluIHRoZSAyLXRvcnNpb24gZ3JvdXAKK2Z1bmMgcHVibGljS2V5R2VuQShwcnYgKlBy
aXZhdGVLZXkpIChwdWIgKlB1YmxpY0tleSkgeworCXZhciB4UEEsIHhRQSwgeFJBIFByb2plY3Rp
dmVQb2ludAorCXZhciB4UEIsIHhRQiwgeFJCLCB4SyBQcm9qZWN0aXZlUG9pbnQKKwl2YXIgaW52
WlAsIGludlpRLCBpbnZaUiBGcDIKKworCXB1YiA9IE5ld1B1YmxpY0tleShLZXlWYXJpYW50X1NJ
REhfQSkKKwl2YXIgcGhpID0gTmV3SXNvZ2VueTQoKQorCisJLy8gTG9hZCBwb2ludHMgZm9yIEEK
Kwl4UEEgPSBQcm9qZWN0aXZlUG9pbnR7WDogcHJ2LnBhcmFtcy5BLkFmZmluZV9QLCBaOiBwcnYu
cGFyYW1zLk9uZUZwMn0KKwl4UUEgPSBQcm9qZWN0aXZlUG9pbnR7WDogcHJ2LnBhcmFtcy5BLkFm
ZmluZV9RLCBaOiBwcnYucGFyYW1zLk9uZUZwMn0KKwl4UkEgPSBQcm9qZWN0aXZlUG9pbnR7WDog
cHJ2LnBhcmFtcy5BLkFmZmluZV9SLCBaOiBwcnYucGFyYW1zLk9uZUZwMn0KKworCS8vIExvYWQg
cG9pbnRzIGZvciBCCisJeFJCID0gUHJvamVjdGl2ZVBvaW50e1g6IHBydi5wYXJhbXMuQi5BZmZp
bmVfUiwgWjogcHJ2LnBhcmFtcy5PbmVGcDJ9CisJeFFCID0gUHJvamVjdGl2ZVBvaW50e1g6IHBy
di5wYXJhbXMuQi5BZmZpbmVfUSwgWjogcHJ2LnBhcmFtcy5PbmVGcDJ9CisJeFBCID0gUHJvamVj
dGl2ZVBvaW50e1g6IHBydi5wYXJhbXMuQi5BZmZpbmVfUCwgWjogcHJ2LnBhcmFtcy5PbmVGcDJ9
CisKKwkvLyBGaW5kIGlzb2dlbnkga2VybmVsCisJeEsgPSBTY2FsYXJNdWwzUHQoJnB1Yi5wYXJh
bXMuSW5pdEN1cnZlLCAmeFBBLCAmeFFBLCAmeFJBLCBwcnYucGFyYW1zLkEuU2VjcmV0Qml0TGVu
LCBwcnYuU2NhbGFyKQorCXRyYXZlcnNlVHJlZVB1YmxpY0tleUEoJnB1Yi5wYXJhbXMuSW5pdEN1
cnZlLCAmeEssICZ4UEIsICZ4UUIsICZ4UkIsIHB1YikKKworCS8vIFNlY3JldCBpc29nZW55CisJ
cGhpLkdlbmVyYXRlQ3VydmUoJnhLKQorCXhQQSA9IHBoaS5FdmFsdWF0ZVBvaW50KCZ4UEIpCisJ
eFFBID0gcGhpLkV2YWx1YXRlUG9pbnQoJnhRQikKKwl4UkEgPSBwaGkuRXZhbHVhdGVQb2ludCgm
eFJCKQorCUZwMkJhdGNoM0ludigmeFBBLlosICZ4UUEuWiwgJnhSQS5aLCAmaW52WlAsICZpbnZa
USwgJmludlpSKQorCisJbXVsKCZwdWIuYWZmaW5lX3hQLCAmeFBBLlgsICZpbnZaUCkKKwltdWwo
JnB1Yi5hZmZpbmVfeFEsICZ4UUEuWCwgJmludlpRKQorCW11bCgmcHViLmFmZmluZV94UW1QLCAm
eFJBLlgsICZpbnZaUikKKwlyZXR1cm4KK30KKworLy8gR2VuZXJhdGUgYSBwdWJsaWMga2V5IGlu
IHRoZSAzLXRvcnNpb24gZ3JvdXAKK2Z1bmMgcHVibGljS2V5R2VuQihwcnYgKlByaXZhdGVLZXkp
IChwdWIgKlB1YmxpY0tleSkgeworCXZhciB4UEIsIHhRQiwgeFJCLCB4SyBQcm9qZWN0aXZlUG9p
bnQKKwl2YXIgeFBBLCB4UUEsIHhSQSBQcm9qZWN0aXZlUG9pbnQKKwl2YXIgaW52WlAsIGludlpR
LCBpbnZaUiBGcDIKKworCXB1YiA9IE5ld1B1YmxpY0tleShwcnYua2V5VmFyaWFudCkKKwl2YXIg
cGhpID0gTmV3SXNvZ2VueTMoKQorCisJLy8gTG9hZCBwb2ludHMgZm9yIEIKKwl4UkIgPSBQcm9q
ZWN0aXZlUG9pbnR7WDogcHJ2LnBhcmFtcy5CLkFmZmluZV9SLCBaOiBwcnYucGFyYW1zLk9uZUZw
Mn0KKwl4UUIgPSBQcm9qZWN0aXZlUG9pbnR7WDogcHJ2LnBhcmFtcy5CLkFmZmluZV9RLCBaOiBw
cnYucGFyYW1zLk9uZUZwMn0KKwl4UEIgPSBQcm9qZWN0aXZlUG9pbnR7WDogcHJ2LnBhcmFtcy5C
LkFmZmluZV9QLCBaOiBwcnYucGFyYW1zLk9uZUZwMn0KKworCS8vIExvYWQgcG9pbnRzIGZvciBB
CisJeFBBID0gUHJvamVjdGl2ZVBvaW50e1g6IHBydi5wYXJhbXMuQS5BZmZpbmVfUCwgWjogcHJ2
LnBhcmFtcy5PbmVGcDJ9CisJeFFBID0gUHJvamVjdGl2ZVBvaW50e1g6IHBydi5wYXJhbXMuQS5B
ZmZpbmVfUSwgWjogcHJ2LnBhcmFtcy5PbmVGcDJ9CisJeFJBID0gUHJvamVjdGl2ZVBvaW50e1g6
IHBydi5wYXJhbXMuQS5BZmZpbmVfUiwgWjogcHJ2LnBhcmFtcy5PbmVGcDJ9CisKKwl4SyA9IFNj
YWxhck11bDNQdCgmcHViLnBhcmFtcy5Jbml0Q3VydmUsICZ4UEIsICZ4UUIsICZ4UkIsIHBydi5w
YXJhbXMuQi5TZWNyZXRCaXRMZW4sIHBydi5TY2FsYXIpCisJdHJhdmVyc2VUcmVlUHVibGljS2V5
QigmcHViLnBhcmFtcy5Jbml0Q3VydmUsICZ4SywgJnhQQSwgJnhRQSwgJnhSQSwgcHViKQorCisJ
cGhpLkdlbmVyYXRlQ3VydmUoJnhLKQorCXhQQiA9IHBoaS5FdmFsdWF0ZVBvaW50KCZ4UEEpCisJ
eFFCID0gcGhpLkV2YWx1YXRlUG9pbnQoJnhRQSkKKwl4UkIgPSBwaGkuRXZhbHVhdGVQb2ludCgm
eFJBKQorCUZwMkJhdGNoM0ludigmeFBCLlosICZ4UUIuWiwgJnhSQi5aLCAmaW52WlAsICZpbnZa
USwgJmludlpSKQorCisJbXVsKCZwdWIuYWZmaW5lX3hQLCAmeFBCLlgsICZpbnZaUCkKKwltdWwo
JnB1Yi5hZmZpbmVfeFEsICZ4UUIuWCwgJmludlpRKQorCW11bCgmcHViLmFmZmluZV94UW1QLCAm
eFJCLlgsICZpbnZaUikKKwlyZXR1cm4KK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8v
IEtleSBhZ3JlZW1lbnQgZnVuY3Rpb25zCisvLworCisvLyBFc3RhYmxpc2hpbmcgc2hhcmVkIGtl
eXMgaW4gaW4gMi10b3JzaW9uIGdyb3VwCitmdW5jIGRlcml2ZVNlY3JldEEocHJ2ICpQcml2YXRl
S2V5LCBwdWIgKlB1YmxpY0tleSkgW11ieXRlIHsKKwl2YXIgc2hhcmVkU2VjcmV0ID0gbWFrZShb
XWJ5dGUsIHB1Yi5wYXJhbXMuU2hhcmVkU2VjcmV0U2l6ZSkKKwl2YXIgeFAsIHhRLCB4UW1QIFBy
b2plY3RpdmVQb2ludAorCXZhciB4SyBQcm9qZWN0aXZlUG9pbnQKKwl2YXIgY3BhcmFtIFByb2pl
Y3RpdmVDdXJ2ZVBhcmFtZXRlcnMKKwl2YXIgcGhpID0gTmV3SXNvZ2VueTQoKQorCXZhciBqSW52
IEZwMgorCisJLy8gUmVjb3ZlciBjdXJ2ZSBjb2VmZmljaWVudHMKKwlSZWNvdmVyQ29vcmRpbmF0
ZUEoJmNwYXJhbSwgJnB1Yi5hZmZpbmVfeFAsICZwdWIuYWZmaW5lX3hRLCAmcHViLmFmZmluZV94
UW1QKQorCS8vIEM9MQorCWNwYXJhbS5DID0gUGFyYW1zLk9uZUZwMgorCisJLy8gRmluZCBrZXJu
ZWwgb2YgdGhlIG1vcnBoaXNtCisJeFAgPSBQcm9qZWN0aXZlUG9pbnR7WDogcHViLmFmZmluZV94
UCwgWjogcHViLnBhcmFtcy5PbmVGcDJ9CisJeFEgPSBQcm9qZWN0aXZlUG9pbnR7WDogcHViLmFm
ZmluZV94USwgWjogcHViLnBhcmFtcy5PbmVGcDJ9CisJeFFtUCA9IFByb2plY3RpdmVQb2ludHtY
OiBwdWIuYWZmaW5lX3hRbVAsIFo6IHB1Yi5wYXJhbXMuT25lRnAyfQorCXhLID0gU2NhbGFyTXVs
M1B0KCZjcGFyYW0sICZ4UCwgJnhRLCAmeFFtUCwgcHViLnBhcmFtcy5BLlNlY3JldEJpdExlbiwg
cHJ2LlNjYWxhcikKKworCS8vIFRyYXZlcnNlIGlzb2dlbnkgdHJlZQorCXRyYXZlcnNlVHJlZVNo
YXJlZEtleUEoJmNwYXJhbSwgJnhLLCBwdWIpCisKKwkvLyBDYWxjdWxhdGUgai1pbnZhcmlhbnQg
b24gaXNvZ2VuZXVzIGN1cnZlCisJYyA6PSBwaGkuR2VuZXJhdGVDdXJ2ZSgmeEspCisJUmVjb3Zl
ckN1cnZlQ29lZmZpY2llbnRzNCgmY3BhcmFtLCAmYykKKwlKaW52YXJpYW50KCZjcGFyYW0sICZq
SW52KQorCWNvbnZGcDJUb0J5dGVzKHNoYXJlZFNlY3JldCwgJmpJbnYpCisJcmV0dXJuIHNoYXJl
ZFNlY3JldAorfQorCisvLyBFc3RhYmxpc2hpbmcgc2hhcmVkIGtleXMgaW4gaW4gMy10b3JzaW9u
IGdyb3VwCitmdW5jIGRlcml2ZVNlY3JldEIocHJ2ICpQcml2YXRlS2V5LCBwdWIgKlB1YmxpY0tl
eSkgW11ieXRlIHsKKwl2YXIgc2hhcmVkU2VjcmV0ID0gbWFrZShbXWJ5dGUsIHB1Yi5wYXJhbXMu
U2hhcmVkU2VjcmV0U2l6ZSkKKwl2YXIgeFAsIHhRLCB4UW1QIFByb2plY3RpdmVQb2ludAorCXZh
ciB4SyBQcm9qZWN0aXZlUG9pbnQKKwl2YXIgY3BhcmFtIFByb2plY3RpdmVDdXJ2ZVBhcmFtZXRl
cnMKKwl2YXIgcGhpID0gTmV3SXNvZ2VueTMoKQorCXZhciBqSW52IEZwMgorCisJLy8gUmVjb3Zl
ciBjdXJ2ZSBBIGNvZWZmaWNpZW50CisJUmVjb3ZlckNvb3JkaW5hdGVBKCZjcGFyYW0sICZwdWIu
YWZmaW5lX3hQLCAmcHViLmFmZmluZV94USwgJnB1Yi5hZmZpbmVfeFFtUCkKKwkvLyBDPTEKKwlj
cGFyYW0uQyA9IFBhcmFtcy5PbmVGcDIKKworCS8vIEZpbmQga2VybmVsIG9mIHRoZSBtb3JwaGlz
bQorCXhQID0gUHJvamVjdGl2ZVBvaW50e1g6IHB1Yi5hZmZpbmVfeFAsIFo6IHB1Yi5wYXJhbXMu
T25lRnAyfQorCXhRID0gUHJvamVjdGl2ZVBvaW50e1g6IHB1Yi5hZmZpbmVfeFEsIFo6IHB1Yi5w
YXJhbXMuT25lRnAyfQorCXhRbVAgPSBQcm9qZWN0aXZlUG9pbnR7WDogcHViLmFmZmluZV94UW1Q
LCBaOiBwdWIucGFyYW1zLk9uZUZwMn0KKwl4SyA9IFNjYWxhck11bDNQdCgmY3BhcmFtLCAmeFAs
ICZ4USwgJnhRbVAsIHB1Yi5wYXJhbXMuQi5TZWNyZXRCaXRMZW4sIHBydi5TY2FsYXIpCisKKwkv
LyBUcmF2ZXJzZSBpc29nZW55IHRyZWUKKwl0cmF2ZXJzZVRyZWVTaGFyZWRLZXlCKCZjcGFyYW0s
ICZ4SywgcHViKQorCisJLy8gQ2FsY3VsYXRlIGotaW52YXJpYW50IG9uIGlzb2dlbmV1cyBjdXJ2
ZQorCWMgOj0gcGhpLkdlbmVyYXRlQ3VydmUoJnhLKQorCVJlY292ZXJDdXJ2ZUNvZWZmaWNpZW50
czMoJmNwYXJhbSwgJmMpCisJSmludmFyaWFudCgmY3BhcmFtLCAmakludikKKwljb252RnAyVG9C
eXRlcyhzaGFyZWRTZWNyZXQsICZqSW52KQorCXJldHVybiBzaGFyZWRTZWNyZXQKK30KKworZnVu
YyBlbmNyeXB0KHNrQSAqUHJpdmF0ZUtleSwgcGtBLCBwa0IgKlB1YmxpY0tleSwgcHRleHQgW11i
eXRlKSAoW11ieXRlLCBlcnJvcikgeworCWlmIHBrQi5rZXlWYXJpYW50ICE9IEtleVZhcmlhbnRf
U0lLRSB7CisJCXJldHVybiBuaWwsIGVycm9ycy5OZXcoIndyb25nIGtleSB0eXBlIikKKwl9CisK
KwlqLCBlcnIgOj0gRGVyaXZlU2VjcmV0KHNrQSwgcGtCKQorCWlmIGVyciAhPSBuaWwgeworCQly
ZXR1cm4gbmlsLCBlcnIKKwl9CisKKwlpZiBsZW4ocHRleHQpICE9IHBrQS5wYXJhbXMuS2VtU2l6
ZSB7CisJCXBhbmljKCJJbXBsZW1lbnRhdGlvbiBlcnJvciIpCisJfQorCisJZGlnZXN0IDo9IHNo
YTI1Ni5TdW0yNTYoaikKKwkvLyBVc2VzIHRydW5jYXRlZCBkaWdlc3QgKGZpcnN0IDE2LWJ5dGVz
KQorCWZvciBpLCBfIDo9IHJhbmdlIHB0ZXh0IHsKKwkJZGlnZXN0W2ldIF49IHB0ZXh0W2ldCisJ
fQorCisJcmV0IDo9IG1ha2UoW11ieXRlLCBwa0EuU2l6ZSgpK2xlbihwdGV4dCkpCisJY29weShy
ZXQsIHBrQS5FeHBvcnQoKSkKKwljb3B5KHJldFtwa0EuU2l6ZSgpOl0sIGRpZ2VzdFs6cGtBLnBh
cmFtcy5LZW1TaXplXSkKKwlyZXR1cm4gcmV0LCBuaWwKK30KKworLy8gTmV3UHJpdmF0ZUtleSBp
bml0aWFsaXplcyBwcml2YXRlIGtleS4KKy8vIFVzYWdlIG9mIHRoaXMgZnVuY3Rpb24gZ3VhcmFu
dGVlcyB0aGF0IHRoZSBvYmplY3QgaXMgY29ycmVjdGx5IGluaXRpYWxpemVkLgorZnVuYyBOZXdQ
cml2YXRlS2V5KHYgS2V5VmFyaWFudCkgKlByaXZhdGVLZXkgeworCXBydiA6PSAmUHJpdmF0ZUtl
eXtrZXk6IGtleXtwYXJhbXM6ICZQYXJhbXMsIGtleVZhcmlhbnQ6IHZ9fQorCWlmICh2ICYgS2V5
VmFyaWFudF9TSURIX0EpID09IEtleVZhcmlhbnRfU0lESF9BIHsKKwkJcHJ2LlNjYWxhciA9IG1h
a2UoW11ieXRlLCBwcnYucGFyYW1zLkEuU2VjcmV0Qnl0ZUxlbikKKwl9IGVsc2UgeworCQlwcnYu
U2NhbGFyID0gbWFrZShbXWJ5dGUsIHBydi5wYXJhbXMuQi5TZWNyZXRCeXRlTGVuKQorCX0KKwlp
ZiB2ID09IEtleVZhcmlhbnRfU0lLRSB7CisJCXBydi5TID0gbWFrZShbXWJ5dGUsIHBydi5wYXJh
bXMuTXNnTGVuKQorCX0KKwlyZXR1cm4gcHJ2Cit9CisKKy8vIE5ld1B1YmxpY0tleSBpbml0aWFs
aXplcyBwdWJsaWMga2V5LgorLy8gVXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBndWFyYW50ZWVzIHRo
YXQgdGhlIG9iamVjdCBpcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQuCitmdW5jIE5ld1B1YmxpY0tl
eSh2IEtleVZhcmlhbnQpICpQdWJsaWNLZXkgeworCXJldHVybiAmUHVibGljS2V5e2tleToga2V5
e3BhcmFtczogJlBhcmFtcywga2V5VmFyaWFudDogdn19Cit9CisKKy8vIEltcG9ydCBjbGVhcnMg
Y29udGVudCBvZiB0aGUgcHVibGljIGtleSBjdXJyZW50bHkgc3RvcmVkIGluIHRoZSBzdHJ1Y3R1
cmUKKy8vIGFuZCBpbXBvcnRzIGtleSBzdG9yZWQgaW4gdGhlIGJ5dGUgc3RyaW5nLiBSZXR1cm5z
IGVycm9yIGluIGNhc2UgYnl0ZSBzdHJpbmcKKy8vIHNpemUgaXMgd3JvbmcuIERvZXNuJ3QgcGVy
Zm9ybSBhbnkgdmFsaWRhdGlvbi4KK2Z1bmMgKHB1YiAqUHVibGljS2V5KSBJbXBvcnQoaW5wdXQg
W11ieXRlKSBlcnJvciB7CisJaWYgbGVuKGlucHV0KSAhPSBwdWIuU2l6ZSgpIHsKKwkJcmV0dXJu
IGVycm9ycy5OZXcoInNpZGg6IGlucHV0IHRvIHNob3J0IikKKwl9CisJc3NTeiA6PSBwdWIucGFy
YW1zLlNoYXJlZFNlY3JldFNpemUKKwljb252Qnl0ZXNUb0ZwMigmcHViLmFmZmluZV94UCwgaW5w
dXRbMDpzc1N6XSkKKwljb252Qnl0ZXNUb0ZwMigmcHViLmFmZmluZV94USwgaW5wdXRbc3NTejoy
KnNzU3pdKQorCWNvbnZCeXRlc1RvRnAyKCZwdWIuYWZmaW5lX3hRbVAsIGlucHV0WzIqc3NTejoz
KnNzU3pdKQorCXJldHVybiBuaWwKK30KKworLy8gRXhwb3J0cyBjdXJyZW50bHkgc3RvcmVkIGtl
eS4gSW4gY2FzZSBzdHJ1Y3R1cmUgaGFzbid0IGJlZW4gZmlsbGVkIHdpdGgga2V5IGRhdGEKKy8v
IHJldHVybmVkIGJ5dGUgc3RyaW5nIGlzIGZpbGxlZCB3aXRoIHplcm9zLgorZnVuYyAocHViICpQ
dWJsaWNLZXkpIEV4cG9ydCgpIFtdYnl0ZSB7CisJb3V0cHV0IDo9IG1ha2UoW11ieXRlLCBwdWIu
cGFyYW1zLlB1YmxpY0tleVNpemUpCisJc3NTeiA6PSBwdWIucGFyYW1zLlNoYXJlZFNlY3JldFNp
emUKKwljb252RnAyVG9CeXRlcyhvdXRwdXRbMDpzc1N6XSwgJnB1Yi5hZmZpbmVfeFApCisJY29u
dkZwMlRvQnl0ZXMob3V0cHV0W3NzU3o6Mipzc1N6XSwgJnB1Yi5hZmZpbmVfeFEpCisJY29udkZw
MlRvQnl0ZXMob3V0cHV0WzIqc3NTejozKnNzU3pdLCAmcHViLmFmZmluZV94UW1QKQorCXJldHVy
biBvdXRwdXQKK30KKworLy8gU2l6ZSByZXR1cm5zIHNpemUgb2YgdGhlIHB1YmxpYyBrZXkgaW4g
Ynl0ZXMKK2Z1bmMgKHB1YiAqUHVibGljS2V5KSBTaXplKCkgaW50IHsKKwlyZXR1cm4gcHViLnBh
cmFtcy5QdWJsaWNLZXlTaXplCit9CisKKy8vIEV4cG9ydHMgY3VycmVudGx5IHN0b3JlZCBrZXku
IEluIGNhc2Ugc3RydWN0dXJlIGhhc24ndCBiZWVuIGZpbGxlZCB3aXRoIGtleSBkYXRhCisvLyBy
ZXR1cm5lZCBieXRlIHN0cmluZyBpcyBmaWxsZWQgd2l0aCB6ZXJvcy4KK2Z1bmMgKHBydiAqUHJp
dmF0ZUtleSkgRXhwb3J0KCkgW11ieXRlIHsKKwlyZXQgOj0gbWFrZShbXWJ5dGUsIGxlbihwcnYu
U2NhbGFyKStsZW4ocHJ2LlMpKQorCWNvcHkocmV0LCBwcnYuUykKKwljb3B5KHJldFtsZW4ocHJ2
LlMpOl0sIHBydi5TY2FsYXIpCisJcmV0dXJuIHJldAorfQorCisvLyBTaXplIHJldHVybnMgc2l6
ZSBvZiB0aGUgcHJpdmF0ZSBrZXkgaW4gYnl0ZXMKK2Z1bmMgKHBydiAqUHJpdmF0ZUtleSkgU2l6
ZSgpIGludCB7CisJdG1wIDo9IGxlbihwcnYuU2NhbGFyKQorCWlmIHBydi5rZXlWYXJpYW50ID09
IEtleVZhcmlhbnRfU0lLRSB7CisJCXRtcCArPSBpbnQocHJ2LnBhcmFtcy5Nc2dMZW4pCisJfQor
CXJldHVybiB0bXAKK30KKworLy8gSW1wb3J0IGNsZWFycyBjb250ZW50IG9mIHRoZSBwcml2YXRl
IGtleSBjdXJyZW50bHkgc3RvcmVkIGluIHRoZSBzdHJ1Y3R1cmUKKy8vIGFuZCBpbXBvcnRzIGtl
eSBmcm9tIG9jdGV0IHN0cmluZy4gSW4gY2FzZSBvZiBTSUtFLCB0aGUgcmFuZG9tIHZhbHVlICdT
JworLy8gbXVzdCBiZSBwcmVwZW5kZWQgdG8gdGhlIHZhbHVlIG9mIGFjdHVhbCBwcml2YXRlIGtl
eSAoc2VlIFNJS0Ugc3BlYyBmb3IgZGV0YWlscykuCisvLyBGdW5jdGlvbiBkb2Vzbid0IGltcG9y
dCBwdWJsaWMga2V5IHZhbHVlIHRvIFByaXZhdGVLZXkgb2JqZWN0LgorZnVuYyAocHJ2ICpQcml2
YXRlS2V5KSBJbXBvcnQoaW5wdXQgW11ieXRlKSBlcnJvciB7CisJaWYgbGVuKGlucHV0KSAhPSBw
cnYuU2l6ZSgpIHsKKwkJcmV0dXJuIGVycm9ycy5OZXcoInNpZGg6IGlucHV0IHRvIHNob3J0IikK
Kwl9CisJY29weShwcnYuUywgaW5wdXRbOmxlbihwcnYuUyldKQorCWNvcHkocHJ2LlNjYWxhciwg
aW5wdXRbbGVuKHBydi5TKTpdKQorCXJldHVybiBuaWwKK30KKworLy8gR2VuZXJhdGVzIHJhbmRv
bSBwcml2YXRlIGtleSBmb3IgU0lESCBvciBTSUtFLiBHZW5lcmF0ZWQgdmFsdWUgaXMKKy8vIGZv
cm1lZCBhcyBsaXR0bGUtZW5kaWFuIGludGVnZXIgZnJvbSBrZXktc3BhY2UgPDJeKGUyLTEpLi4y
XmUyIC0gMT4KKy8vIGZvciBLZXlWYXJpYW50X0Egb3IgPDJeKHMtMSkuLjJecyAtIDE+LCB3aGVy
ZSBzID0gZmxvb3IobG9nXzIoM15lMykpLAorLy8gZm9yIEtleVZhcmlhbnRfQi4KKy8vCisvLyBS
ZXR1cm5zIGVycm9yIGluIGNhc2UgdXNlciBwcm92aWRlZCBSTkcgZmFpbHMuCitmdW5jIChwcnYg
KlByaXZhdGVLZXkpIEdlbmVyYXRlKHJhbmQgaW8uUmVhZGVyKSBlcnJvciB7CisJdmFyIGVyciBl
cnJvcgorCXZhciBkcCAqRG9tYWluUGFyYW1zCisKKwlpZiAocHJ2LmtleVZhcmlhbnQgJiBLZXlW
YXJpYW50X1NJREhfQSkgPT0gS2V5VmFyaWFudF9TSURIX0EgeworCQlkcCA9ICZwcnYucGFyYW1z
LkEKKwl9IGVsc2UgeworCQlkcCA9ICZwcnYucGFyYW1zLkIKKwl9CisKKwlpZiBwcnYua2V5VmFy
aWFudCA9PSBLZXlWYXJpYW50X1NJS0UgeworCQlfLCBlcnIgPSBpby5SZWFkRnVsbChyYW5kLCBw
cnYuUykKKwl9CisKKwkvLyBQcml2YXRlIGtleSBnZW5lcmF0aW9uIHRha2VzIGFkdmFudGFnZSBv
ZiB0aGUgZmFjdCB0aGF0IGtleXNwYWNlIGZvciBzZWNyZXQKKwkvLyBrZXkgaXMgKDAsIDJeeCAt
IDEpLCBmb3Igc29tZSBwb3NzaXRpdml0ZSB2YWx1ZSBvZiAneCcgKHNlZSBTSUtFLCAxLjMuOCku
CisJLy8gSXQgbWVhbnMgdGhhdCBhbGwgYnl0ZXMgaW4gdGhlIHNlY3JldCBrZXksIGJ1dCB0aGUg
bGFzdCBvbmUsIGNhbiB0YWtlIGFueQorCS8vIHZhbHVlIGJldHdlZW4gPDB4MDAsMHhGRj4uIFNp
bWlsYXJpbHkgZm9yIHRoZSBsYXN0IGJ5dGUsIGJ1dCBnZW5lcmF0aW9uCisJLy8gbmVlZHMgdG8g
Y2hvcCBvZmYgc29tZSBiaXRzLCB0byBtYWtlIHN1cmUgZ2VuZXJhdGVkIHZhbHVlIGlzIGFuIGVs
ZW1lbnQgb2YKKwkvLyBhIGtleS1zcGFjZS4KKwlfLCBlcnIgPSBpby5SZWFkRnVsbChyYW5kLCBw
cnYuU2NhbGFyKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gZXJyCisJfQorCXBydi5TY2Fs
YXJbbGVuKHBydi5TY2FsYXIpLTFdICY9ICgxIDw8IChkcC5TZWNyZXRCaXRMZW4gJSA4KSkgLSAx
CisJLy8gTWFrZSBzdXJlIHNjYWxhciBpcyBTZWNyZXRCaXRMZW4gbG9uZy4gU0lLRSBzcGVjIHNh
eXMgdGhhdCBrZXkKKwkvLyBzcGFjZSBzdGFydHMgZnJvbSAwLCBidXQgSSdtIG5vdCBjb25mb3J0
YWJsZSB3aXRoIGhhdmluZyBsb3cKKwkvLyB2YWx1ZSBzY2FsYXJzIHVzZWQgZm9yIHByaXZhdGUg
a2V5cy4gSXQgaXMgc3RpbGwgc2VjcnVyZSBhcyBwZXIKKwkvLyB0YWJsZSA1LjEgaW4gW1NJS0Vd
LgorCXBydi5TY2FsYXJbbGVuKHBydi5TY2FsYXIpLTFdIHw9IDEgPDwgKChkcC5TZWNyZXRCaXRM
ZW4gJSA4KSAtIDEpCisJcmV0dXJuIGVycgorfQorCisvLyBHZW5lcmF0ZXMgcHVibGljIGtleS4K
Ky8vCisvLyBDb25zdGFudCB0aW1lLgorZnVuYyAocHJ2ICpQcml2YXRlS2V5KSBHZW5lcmF0ZVB1
YmxpY0tleSgpICpQdWJsaWNLZXkgeworCWlmIChwcnYua2V5VmFyaWFudCAmIEtleVZhcmlhbnRf
U0lESF9BKSA9PSBLZXlWYXJpYW50X1NJREhfQSB7CisJCXJldHVybiBwdWJsaWNLZXlHZW5BKHBy
dikKKwl9CisJcmV0dXJuIHB1YmxpY0tleUdlbkIocHJ2KQorfQorCisvLyBDb21wdXRlcyBhIHNo
YXJlZCBzZWNyZXQgd2hpY2ggaXMgYSBqLWludmFyaWFudC4gRnVuY3Rpb24gcmVxdWlyZXMgdGhh
dCBwdWIgaGFzCisvLyBkaWZmZXJlbnQgS2V5VmFyaWFudCB0aGFuIHBydi4gTGVuZ3RoIG9mIHJl
dHVybmVkIG91dHB1dCBpcyAyKmNlaWwobG9nXzIgUCkvOCksCisvLyB3aGVyZSBQIGlzIGEgcHJp
bWUgZGVmaW5pbmcgZmluaXRlIGZpZWxkLgorLy8KKy8vIEl0J3MgaW1wb3J0YW50IHRvIG5vdGlj
ZSB0aGF0IGVhY2gga2V5cGFpciBtdXN0IG5vdCBiZSB1c2VkIG1vcmUgdGhhbiBvbmNlCisvLyB0
byBjYWxjdWxhdGUgc2hhcmVkIHNlY3JldC4KKy8vCisvLyBGdW5jdGlvbiBtYXkgcmV0dXJuIGVy
cm9yLiBUaGlzIGhhcHBlbnMgb25seSBpbiBjYXNlIHByb3ZpZGVkIGlucHV0IGlzIGludmFsaWQu
CisvLyBDb25zdGFudCB0aW1lIGZvciBwcm9wZXJseSBpbml0aWFsaXplZCBwcml2YXRlIGFuZCBw
dWJsaWMga2V5LgorZnVuYyBEZXJpdmVTZWNyZXQocHJ2ICpQcml2YXRlS2V5LCBwdWIgKlB1Ymxp
Y0tleSkgKFtdYnl0ZSwgZXJyb3IpIHsKKworCWlmIChwdWIgPT0gbmlsKSB8fCAocHJ2ID09IG5p
bCkgeworCQlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJzaWRoOiBpbnZhbGlkIGFyZ3VtZW50cyIp
CisJfQorCisJaWYgKHB1Yi5rZXlWYXJpYW50ID09IHBydi5rZXlWYXJpYW50KSB8fCAocHViLnBh
cmFtcy5JZCAhPSBwcnYucGFyYW1zLklkKSB7CisJCXJldHVybiBuaWwsIGVycm9ycy5OZXcoInNp
ZGg6IHB1YmxpYyBhbmQgcHJpdmF0ZSBhcmUgaW5jb21wYXRiaWxlIikKKwl9CisKKwlpZiAocHJ2
LmtleVZhcmlhbnQgJiBLZXlWYXJpYW50X1NJREhfQSkgPT0gS2V5VmFyaWFudF9TSURIX0Egewor
CQlyZXR1cm4gZGVyaXZlU2VjcmV0QShwcnYsIHB1YiksIG5pbAorCX0gZWxzZSB7CisJCXJldHVy
biBkZXJpdmVTZWNyZXRCKHBydiwgcHViKSwgbmlsCisJfQorfQorCisvLyBVc2VzIFNJS0UgcHVi
bGljIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4gUmVxdWlyZXMgY3J5cHRvZ3JhcGhpY2FsbHkg
c2VjdXJlIFBSTkcKKy8vIFJldHVybnMgY2lwaGVydGV4dCBpbiBjYXNlIGVuY3J5cHRpb24gc3Vj
Y2VlZHMuIFJldHVybnMgZXJyb3IgaW4gY2FzZSBQUk5HIGZhaWxzCisvLyBvciB3cm9uZ2x5IGZv
cm1hdHRlZCBpbnB1dCB3YXMgcHJvdmlkZWQuCitmdW5jIEVuY3J5cHQocm5nIGlvLlJlYWRlciwg
cHViICpQdWJsaWNLZXksIHB0ZXh0IFtdYnl0ZSkgKFtdYnl0ZSwgZXJyb3IpIHsKKwl2YXIgcHRl
eHRMZW4gPSBsZW4ocHRleHQpCisJLy8gYzEgbXVzdCBiZSBzZWN1cml0eSBsZXZlbCArIDY0IGJp
dHMgKHNlZSBbU0lLRV0gMS40IGFuZCA0LjMuMykKKwlpZiBwdGV4dExlbiAhPSBwdWIucGFyYW1z
LktlbVNpemUgeworCQlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJVbnN1cHBvcnRlZCBtZXNzYWdl
IGxlbmd0aCIpCisJfQorCisJc2tBIDo9IE5ld1ByaXZhdGVLZXkoS2V5VmFyaWFudF9TSURIX0Ep
CisJZXJyIDo9IHNrQS5HZW5lcmF0ZShybmcpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBu
aWwsIGVycgorCX0KKworCXBrQSA6PSBza0EuR2VuZXJhdGVQdWJsaWNLZXkoKQorCXJldHVybiBl
bmNyeXB0KHNrQSwgcGtBLCBwdWIsIHB0ZXh0KQorfQorCisvLyBVc2VzIFNJS0UgcHJpdmF0ZSBr
ZXkgdG8gZGVjcnlwdCBjaXBoZXJ0ZXh0LiBSZXR1cm5zIHBsYWludGV4dCBpbiBjYXNlCisvLyBk
ZWNyeXB0aW9uIHN1Y2NlZWRzIG9yIGVycm9yIGluIGNhc2UgdW5leHB0ZWN0ZWQgaW5wdXQgd2Fz
IHByb3ZpZGVkLgorLy8gQ29uc3RhbnQgdGltZQorZnVuYyBEZWNyeXB0KHBydiAqUHJpdmF0ZUtl
eSwgY3RleHQgW11ieXRlKSAoW11ieXRlLCBlcnJvcikgeworCXZhciBjMV9sZW4gaW50CisJbiA6
PSBtYWtlKFtdYnl0ZSwgcHJ2LnBhcmFtcy5LZW1TaXplKQorCXBrX2xlbiA6PSBwcnYucGFyYW1z
LlB1YmxpY0tleVNpemUKKworCWlmIHBydi5rZXlWYXJpYW50ICE9IEtleVZhcmlhbnRfU0lLRSB7
CisJCXJldHVybiBuaWwsIGVycm9ycy5OZXcoIndyb25nIGtleSB0eXBlIikKKwl9CisKKwkvLyBj
dGV4dCBpcyBhIGNvbmNhdGVuYXRpb24gb2YgKHB1YmtleV9BIHx8IGMxPWNpcGhlcnRleHQpCisJ
Ly8gaXQgbXVzdCBiZSBzZWN1cml0eSBsZXZlbCArIDY0IGJpdHMgKHNlZSBbU0lLRV0gMS40IGFu
ZCA0LjMuMykKKwljMV9sZW4gPSBsZW4oY3RleHQpIC0gcGtfbGVuCisJaWYgYzFfbGVuICE9IGlu
dChwcnYucGFyYW1zLktlbVNpemUpIHsKKwkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ldygid3Jvbmcg
c2l6ZSBvZiBjaXBoZXIgdGV4dCIpCisJfQorCisJYzAgOj0gTmV3UHVibGljS2V5KEtleVZhcmlh
bnRfU0lESF9BKQorCWVyciA6PSBjMC5JbXBvcnQoY3RleHRbOnBrX2xlbl0pCisJaWYgZXJyICE9
IG5pbCB7CisJCXJldHVybiBuaWwsIGVycgorCX0KKwlqLCBlcnIgOj0gRGVyaXZlU2VjcmV0KHBy
diwgYzApCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBuaWwsIGVycgorCX0KKworCWRpZ2Vz
dCA6PSBzaGEyNTYuU3VtMjU2KGopCisJY29weShuLCBkaWdlc3RbOl0pCisKKwlmb3IgaSwgXyA6
PSByYW5nZSBuIHsKKwkJbltpXSBePSBjdGV4dFtwa19sZW4raV0KKwl9CisJcmV0dXJuIG5bOmMx
X2xlbl0sIG5pbAorfQorCisvLyBFbmNhcHN1bGF0aW9uIHJlY2VpdmVzIHRoZSBwdWJsaWMga2V5
IGFuZCBnZW5lcmF0ZXMgU0lLRSBjaXBoZXJ0ZXh0IGFuZCBzaGFyZWQgc2VjcmV0LgorLy8gVGhl
IGdlbmVyYXRlZCBjaXBoZXJ0ZXh0IGlzIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW9uLgorLy8gVGhl
IHJuZyBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBQUk5HLgorLy8gRXJyb3IgaXMg
cmV0dXJuZWQgaW4gY2FzZSBQUk5HIGZhaWxzIG9yIHdyb25nbHkgZm9ybWF0dGVkIGlucHV0IHdh
cyBwcm92aWRlZC4KK2Z1bmMgRW5jYXBzdWxhdGUocm5nIGlvLlJlYWRlciwgcHViICpQdWJsaWNL
ZXkpIChjdGV4dCBbXWJ5dGUsIHNlY3JldCBbXWJ5dGUsIGVyciBlcnJvcikgeworCS8vIEJ1ZmZl
ciBmb3IgcmFuZG9tLCBzZWNyZXQgbWVzc2FnZQorCXB0ZXh0IDo9IG1ha2UoW11ieXRlLCBwdWIu
cGFyYW1zLk1zZ0xlbikKKwkvLyBTSEEyNTYgaGFzaCBjb250ZXh0IG9iamVjdAorCWQgOj0gc2hh
MjU2Lk5ldygpCisKKwkvLyBHZW5lcmF0ZSBlcGhlbWVyYWwgdmFsdWUKKwlfLCBlcnIgPSBpby5S
ZWFkRnVsbChybmcsIHB0ZXh0KQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmlsLCBuaWws
IGVycgorCX0KKworCS8vIEltcGxlbWVudGF0aW9uIHVzZXMgZmlyc3QgMjgtYnl0ZXMgb2Ygc2Vj
cmV0CisJZC5Xcml0ZShwdGV4dCkKKwlkLldyaXRlKHB1Yi5FeHBvcnQoKSkKKwlkaWdlc3QgOj0g
ZC5TdW0obmlsKQorCS8vIHIgPSBHKHB0ZXh0fHxwdWIpCisJciA6PSBkaWdlc3RbOnB1Yi5wYXJh
bXMuQS5TZWNyZXRCeXRlTGVuXQorCisJLy8gKGMwIHx8IGMxKSA9IEVuYyhwa0EsIHB0ZXh0OyBy
KQorCXNrQSA6PSBOZXdQcml2YXRlS2V5KEtleVZhcmlhbnRfU0lESF9BKQorCWVyciA9IHNrQS5J
bXBvcnQocikKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgbmlsLCBlcnIKKwl9CisK
Kwlwa0EgOj0gc2tBLkdlbmVyYXRlUHVibGljS2V5KCkKKwljdGV4dCwgZXJyID0gZW5jcnlwdChz
a0EsIHBrQSwgcHViLCBwdGV4dCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgbmls
LCBlcnIKKwl9CisKKwkvLyBLID0gSChwdGV4dHx8KGMwfHxjMSkpCisJZC5SZXNldCgpCisJZC5X
cml0ZShwdGV4dCkKKwlkLldyaXRlKGN0ZXh0KQorCWRpZ2VzdCA9IGQuU3VtKGRpZ2VzdFs6MF0p
CisJcmV0dXJuIGN0ZXh0LCBkaWdlc3RbOnB1Yi5wYXJhbXMuS2VtU2l6ZV0sIG5pbAorfQorCisv
LyBEZWNhcHN1bGF0ZSBnaXZlbiB0aGUga2V5cGFpciBhbmQgY2lwaGVydGV4dCBhcyBpbnB1dHMs
IERlY2Fwc3VsYXRlIG91dHB1dHMgYSBzaGFyZWQKKy8vIHNlY3JldCBpZiBwbGFpbnRleHQgdmVy
aWZpZXMgY29ycmVjdGx5LCBvdGhlcndpc2UgZnVuY3Rpb24gb3V0cHV0cyByYW5kb20gdmFsdWUu
CisvLyBEZWNhcHN1bGF0aW9uIG1heSBmYWlsIGluIGNhc2UgaW5wdXQgaXMgd3JvbmdseSBmb3Jt
YXR0ZWQuCisvLyBDb25zdGFudCB0aW1lIGZvciBwcm9wZXJseSBpbml0aWFsaXplZCBpbnB1dC4K
K2Z1bmMgRGVjYXBzdWxhdGUocHJ2ICpQcml2YXRlS2V5LCBwdWIgKlB1YmxpY0tleSwgY3RleHQg
W11ieXRlKSAoW11ieXRlLCBlcnJvcikgeworCXZhciBza0EgPSBOZXdQcml2YXRlS2V5KEtleVZh
cmlhbnRfU0lESF9BKQorCS8vIFNIQTI1NiBoYXNoIGNvbnRleHQgb2JqZWN0CisJZCA6PSBzaGEy
NTYuTmV3KCkKKworCW0sIGVyciA6PSBEZWNyeXB0KHBydiwgY3RleHQpCisJaWYgZXJyICE9IG5p
bCB7CisJCXJldHVybiBuaWwsIGVycgorCX0KKworCS8vIHInID0gRyhtJ3x8cHViKQorCWQuV3Jp
dGUobSkKKwlkLldyaXRlKHB1Yi5FeHBvcnQoKSkKKwlkaWdlc3QgOj0gZC5TdW0obmlsKQorCS8v
IE5ldmVyIGZhaWxzCisJc2tBLkltcG9ydChkaWdlc3RbOnB1Yi5wYXJhbXMuQS5TZWNyZXRCeXRl
TGVuXSkKKworCS8vIE5ldmVyIGZhaWxzCisJcGtBIDo9IHNrQS5HZW5lcmF0ZVB1YmxpY0tleSgp
CisJYzAgOj0gcGtBLkV4cG9ydCgpCisKKwlkLlJlc2V0KCkKKwlpZiBzdWJ0bGUuQ29uc3RhbnRU
aW1lQ29tcGFyZShjMCwgY3RleHRbOmxlbihjMCldKSA9PSAxIHsKKwkJZC5Xcml0ZShtKQorCX0g
ZWxzZSB7CisJCS8vIFMgaXMgY2hvc2VuIGF0IHJhbmRvbSB3aGVuIGdlbmVyYXRpbmcgYSBrZXkg
YW5kIGlzIHVua25vd24gdG8gdGhlIG90aGVyIHBhcnR5LiBJdAorCQkvLyBtYXkgc2VlbSB3ZWly
ZCwgYnV0IGl0J3MgY29ycmVjdC4gSXQgaXMgaW1wb3J0YW50IHRoYXQgUyBpcyB1bnByZWRpY3Rh
YmxlCisJCS8vIHRvIG90aGVyIHBhcnR5LiBXaXRob3V0IHRoaXMgY2hlY2ssIGl0IGlzIHBvc3Np
YmxlIHRvIHJlY292ZXIgYSBzZWNyZXQsIGJ5CisJCS8vIHByb3ZpZGluZyBzZXJpZXMgb2YgaW52
YWxpZCBjaXBoZXJ0ZXh0cy4gSXQgaXMgYWxzbyBpbXBvcnRhbnQgdGhhdCBpbiBjYXNlCisJCS8v
CisJCS8vIFNlZSBtb3JlIGRldGFpbHMgaW4gIk9uIHRoZSBzZWN1cml0eSBvZiBzdXBlcnNpbmd1
bGFyIGlzb2dlbnkgY3J5cHRvc3lzdGVtcyIKKwkJLy8gKFMuIEdhbGJyYWl0aCwgZXQgYWwuLCAy
MDE2LCBlUHJpbnQgIzg1OSkuCisJCWQuV3JpdGUocHJ2LlMpCisJfQorCWQuV3JpdGUoY3RleHQp
CisJZGlnZXN0ID0gZC5TdW0oZGlnZXN0WzowXSkKKwlyZXR1cm4gZGlnZXN0WzpwdWIucGFyYW1z
LktlbVNpemVdLCBuaWwKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvc2lrZS9z
aWtlX3Rlc3QuZ28gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL3Npa2Uvc2lrZV90ZXN0LmdvCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJlMTQ2YmM3ODFjYzlmMDZkYzM4YjIwMDA4MmVmZDRlZjdkNzhhZDYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL3Npa2Uvc2lrZV90ZXN0LmdvCkBAIC0wLDAg
KzEsNjk4IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTksIENsb3VkZmxhcmUgSW5jLgorLy8KKy8v
IFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMg
c29mdHdhcmUgZm9yIGFueQorLy8gcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVi
eSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSBh
bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKy8vCisvLyBU
SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMg
QUxMIFdBUlJBTlRJRVMKKy8vIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5H
IEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKy8vIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
Uy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorLy8gU1BF
Q0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBE
QU1BR0VTCisvLyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9S
IFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisvLyBPRiBDT05UUkFDVCwgTkVHTElHRU5D
RSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisvLyBDT05O
RUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorCitw
YWNrYWdlIHNpa2UKKworaW1wb3J0ICgKKwkiYnVmaW8iCisJImJ5dGVzIgorCSJjcnlwdG8vcmFu
ZCIKKwkiZW5jb2RpbmcvaGV4IgorCSJtYXRoL2JpZyIKKwkic3RyaW5ncyIKKwkidGVzdGluZyIK
KykKKwordmFyIHRkYXRhID0gc3RydWN0IHsKKwluYW1lICAgICBzdHJpbmcKKwlQckJfc2lkaCBz
dHJpbmcKKwlQa0Jfc2lkaCBzdHJpbmcKKwlQckFfc2lkaCBzdHJpbmcKKwlQa0Ffc2lkaCBzdHJp
bmcKKwlQa0Jfc2lrZSBzdHJpbmcKKwlQckJfc2lrZSBzdHJpbmcKK317CisJbmFtZTogICAgICJQ
LTQzNCIsCisJUHJBX3NpZGg6ICIzQTcyN0UwNEVBOUI3RTJBNzY2QTZGODQ2NDg5RTdFN0I5MTUy
NjNCQ0VFRDMwOEJCMTBGQzkiLAorCVBrQV9zaWRoOiAiOUU2NjhEMUU2NzUwRUQ0QjkxRUUwNTJD
MzI4MzlDQTlERDJFNTZENTJCQzI0REVDQzk1MEFBIiArCisJCSJBRDI0Q0VFRDNGOTA0OUM3N0ZF
ODBGMEI5QjAxRTdGOERBRDc4MzNFRUMyMjg2NTQ0RDYzODAiICsKKwkJIjAwOUMzNzlDREQzRTc1
MTdDRUY1RTIwRUIwMUY4MjMxRDUyRkMzMERDNjFEMkY2M0ZCMzU3RiIgKworCQkiODVEQzYzOTZF
OEE5NURCOTc0MEJEM0E5NzJDOERCNzkwMUIzMUYwNzRDRDNFNDUzNDVDQTc4IiArCisJCSJGOTAw
ODE3MTMwRTY4OEEyOUE3Q0YwMDczQjVDMDBGRjJDNjVGQkU3NzY5MThFRjlCRDhFNzUiICsKKwkJ
IkIyOUVGN0ZBQjc5MTk2OUI2MEIwQzVCMzdBODk5MkVERUY5NUZBN0JBQzQwQTk1REFGRTAyRSIg
KworCQkiMjM3MzAxRkVFOUE3QTQzRkQwQjczNDc3RTgwMzVERDEyQjczRkFGRUYxOEQzOTkwNERE
RTM2IiArCisJCSI1M0E3NTRGMzZCRTE4ODhGNjYwN0M2QTc5NTEzNDlBNDE0MzUyQ0YzMUEyOUYy
QzQwMzAyREIiICsKKwkJIjQwNkM0ODAxOEM5MDVFQjlEQzQ2QUZCRjQyQTkxODdBOUJCOUU1MUI1
ODc2MjJBMjg2MkRDNyIgKworCQkiRDVDQzU5OEJGMzhFRDYzMjBGQjUxRDg2OTdBRDNEN0E3MkFC
Q0MzMkEzOTNGMDEzM0RBOERGIiArCisJCSI1RTI1M0Q5RTAwQjc2MEIyREYzNDJGQ0U5NzREQ0ZF
OTQ2Q0ZFNDcyNzc4MzUzMTg4MjgwMEYiICsKKwkJIjlFNURENTk0RDZENUE2Mjc1RUVGRUY5NzEz
RUQ4MzhGNEEwNkJCMzREN0I4RDQ2RTBCMzg1QSIgKworCQkiQUVBMUM3OTYzNjAxIiwKKwlQckJf
c2lkaDogIkUzN0JGRTU1QjQzQjMyNDQ4RjM3NTkwM0Q4RDIyNkVDOTRBREJGRUExRDJCMzUzNkVC
OTg3MDAxIiwKKwlQa0Jfc2lkaDogIkM5RjczRTQ0OTdBQUEzRkRGOUVCNjg4MTM1ODY2QThBODM5
MzRCQTEwRTI3M0I4Q0MzODA4QyIgKworCQkiRjBDMUY1RkFCM0U5QkIyOTU4ODU4ODFCNzNERUJD
ODc1NjcwQzBGNTFDNEJCNDBERjVGRURFIiArCisJCSIwMUI4QUYzMkQxQkYxMDUwOEI4QzE3QjI3
MzRFQjkzQjJCN0Y1RDg0QTRBMEYyRjgxNkU5RTIiICsKKwkJIkMzMkFDMjUzQzBCNjAyNUIxMjRE
MDVBODdBOUUyQTg1Njc5MzBGNDRCQUExNDIxOUI5NDFCNiIgKworCQkiQjQwMEI0QUVEMUQ3OTZE
QTEyQTVBOUYwQjhGM0Y1RUU5REQ0M0Y2NENCMjRBM0IxNzE5REYyIiArCisJCSI3OEFERjU2QjVG
MzM5NTE4NzgyOURBMjMxOURFQUJGNkJCRDZFREEyNDRERTJCNjJDQzVBQzIiICsKKwkJIjUwQzEw
MDlERDFDRDQ3MTJCMEIzNzQwNjYxMkFEMDAyQjVFNTFBNjJCNTFBQzlDMDM3NEQxNCIgKworCQki
M0FCQkJENTgyNzVGQUZDNEE1RTk1OUM1NDgzOEMyRDZEOUZCNDNCN0IyNjA5MDYxMjY3QjZBIiAr
CisJCSIyRTZDNkQwMUQyOTVDNDIyM0UwRDNEN0E0Q0RDRkIyOEE3ODE4QTczNzkzNTI3OTc1MUE2
REQiICsKKwkJIjgyOTBGRDQ5OEQxRjZBRDVGNEZGRjZCREZBNTM2NzEzRjUwOURDRTgwNDcyNTJG
MUU3RDBERCIgKworCQkiOUZDQzQxNEMwMDcwQjVEQ0NFMzY2NUEyMUEwMzJEN0ZCRTc0OTE4MTAz
MjE4M0FGQUQyNDBCIiArCisJCSI3RTY3MUU4N0ZCQkVDM0E4Q0E0QzExQUE3QTlBMjNBQzY5QUUy
QUNGNTRCNjY0REVDRDI3NzUiICsKKwkJIjNENjM1MDhGMUIwMiIsCisJUHJCX3Npa2U6ICI0QjYy
MkRFMTM1MDExOUM0NUE5RjJFMkVGM0RDNURGNTZBMjdGQ0RGQ0REQUY1OENENjlCOTAiICsKKwkJ
IjM3NTJENjhDMjAwOTM0RTE2MEIyMzRFNDlFREUyNDc2MDEiLAorCVBrQl9zaWtlOiAiMUJEMEEy
RTgxMzA3QjZGOTY0NjEzMTdEREY1MzVBQ0MwRTU5Qzc0MjYyN0JBRTYwRDI3NjA1IiArCisJCSJF
MTBGQUY3MjJEMjJBNzNFMTg0Q0I1NzJBMTJFNzlEQ0Q1OEM2QjU0RkIwMTQ0MjExNENCRTkiICsK
KwkJIjAxMEI2Q0FFQzI1RDA0QzE2QzVFNDI1NDBDMTUyNEM1NDVCOEM2NzYxNEVENDE4M0M5RkE1
QiIgKworCQkiRDBCRTQ1QTdGODlGQkM3NzBFRThFN0U1RTM5MUM3RUU2RjM1Rjc0QzI5RTZEOUUz
NUIxNjYzIiArCisJCSJEQTAxRTQ4RTlERUIyMzQ3NTEyRDM2NkZERTUwNTE2MTY3NzA1NUUzRUYy
MzA1NEQyNzZFODEiICsKKwkJIjdFMkM1NzAyNURBMUMxMEQyNDYxRjY4NjE3RjJEMTEyNTZFRUU0
RTJEN0RCREY2QzhFMzRGMyIgKworCQkiQTBGRDAwQzYyNTQyOENCNDE4NTcwMDIxNTlEQUI5NDI2
N0FCRTQyRDYzMEM2QUFBOTFBRjgzIiArCisJCSI3QzdBNjc0MDc1NEVBNjYzNEM0NTQ1NEM1MUIw
QkI0RDQ0QzNDQ0NDRTRCMzJDMDA5MDFDRjYiICsKKwkJIjlDMDA4RDAxMzM0ODM3OUIyRjk4MzdG
NDI4QTAxQjYxNzM1ODQ2OTFGMkE2RjNBM0M0Q0Y0OCIgKworCQkiN0QyMEQyNjFCMzZDOENEQjFC
QzE1OEUyQTUxNjJBOURBNEY3QTk3QUEwODc5Qjk4OTdFMkI2IiArCisJCSI4OTFCNjcyMjAxRjlB
RUZCRjc5OUMyN0IyNTg3MTIwQUM1ODZBNTExMzYwOTI2RkI3REE4RUIiICsKKwkJIkY1Q0I1Mjcy
RjM5NkFFMDY2MDg0MjJCRTk3OTJFMkNFOUJFRjIxQkY1NUI3RUZGOERDN0VDOCIgKworCQkiQzk5
OTEwRDNGODAwIiwKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgSGVscGVycworICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSovCisvLyBGYWlsIGlmIGVyciAhPW5pbC4gRGlzcGxheSBtc2cgYXMgYW4g
ZXJyb3IgbWVzc2FnZQorZnVuYyBjaGVja0Vycih0IHRlc3RpbmcuVEIsIGVyciBlcnJvciwgbXNn
IHN0cmluZykgeworCXQuSGVscGVyKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJdC5FcnJvcihtc2cp
CisJfQorfQorCisvLyBVdGlsaXR5IHVzZWQgZm9yIHJ1bm5pbmcgc2FtZSB0ZXN0IHdpdGggYWxs
IHJlZ2lzdGVyZWQgcHJpbWUgZmllbGRzCit0eXBlIE11bHRpSWRUZXN0aW5nRnVuYyBmdW5jKHRl
c3RpbmcuVEIpCisKKy8vIENvbnZlcnRzIHN0cmluZyB0byBwcml2YXRlIGtleQorZnVuYyBjb252
VG9QcnYocyBzdHJpbmcsIHYgS2V5VmFyaWFudCkgKlByaXZhdGVLZXkgeworCWtleSA6PSBOZXdQ
cml2YXRlS2V5KHYpCisJaGV4LCBlIDo9IGhleC5EZWNvZGVTdHJpbmcocykKKwlpZiBlICE9IG5p
bCB7CisJCXBhbmljKCJub24taGV4IG51bWJlciBwcm92aWRlZCIpCisJfQorCWUgPSBrZXkuSW1w
b3J0KGhleCkKKwlpZiBlICE9IG5pbCB7CisJCXBhbmljKCJDYW4ndCBpbXBvcnQgcHJpdmF0ZSBr
ZXkiKQorCX0KKwlyZXR1cm4ga2V5Cit9CisKKy8vIENvbnZlcnRzIHN0cmluZyB0byBwdWJsaWMg
a2V5CitmdW5jIGNvbnZUb1B1YihzIHN0cmluZywgdiBLZXlWYXJpYW50KSAqUHVibGljS2V5IHsK
KwlrZXkgOj0gTmV3UHVibGljS2V5KHYpCisJaGV4LCBlIDo9IGhleC5EZWNvZGVTdHJpbmcocykK
KwlpZiBlICE9IG5pbCB7CisJCXBhbmljKCJub24taGV4IG51bWJlciBwcm92aWRlZCIpCisJfQor
CWUgPSBrZXkuSW1wb3J0KGhleCkKKwlpZiBlICE9IG5pbCB7CisJCXBhbmljKCJDYW4ndCBpbXBv
cnQgcHVibGljIGtleSIpCisJfQorCXJldHVybiBrZXkKK30KKworLyogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgVW5pdCB0ZXN0cworICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitmdW5jIFRlc3RLZXlnZW4o
dCAqdGVzdGluZy5UKSB7CisJYWxpY2VQcml2YXRlIDo9IGNvbnZUb1Bydih0ZGF0YS5QckFfc2lk
aCwgS2V5VmFyaWFudF9TSURIX0EpCisJYm9iUHJpdmF0ZSA6PSBjb252VG9QcnYodGRhdGEuUHJC
X3NpZGgsIEtleVZhcmlhbnRfU0lESF9CKQorCWV4cFB1YkEgOj0gY29udlRvUHViKHRkYXRhLlBr
QV9zaWRoLCBLZXlWYXJpYW50X1NJREhfQSkKKwlleHBQdWJCIDo9IGNvbnZUb1B1Yih0ZGF0YS5Q
a0Jfc2lkaCwgS2V5VmFyaWFudF9TSURIX0IpCisKKwlwdWJBIDo9IGFsaWNlUHJpdmF0ZS5HZW5l
cmF0ZVB1YmxpY0tleSgpCisJcHViQiA6PSBib2JQcml2YXRlLkdlbmVyYXRlUHVibGljS2V5KCkK
KworCWlmICFieXRlcy5FcXVhbChwdWJBLkV4cG9ydCgpLCBleHBQdWJBLkV4cG9ydCgpKSB7CisJ
CXQuRmF0YWxmKCJ1bmV4cGVjdGVkIHZhbHVlIG9mIHB1YmxpYyBrZXkgQSIpCisJfQorCWlmICFi
eXRlcy5FcXVhbChwdWJCLkV4cG9ydCgpLCBleHBQdWJCLkV4cG9ydCgpKSB7CisJCXQuRmF0YWxm
KCJ1bmV4cGVjdGVkIHZhbHVlIG9mIHB1YmxpYyBrZXkgQiIpCisJfQorfQorCitmdW5jIFRlc3RJ
bXBvcnRFeHBvcnQodCAqdGVzdGluZy5UKSB7CisJdmFyIGVyciBlcnJvcgorCWEgOj0gTmV3UHVi
bGljS2V5KEtleVZhcmlhbnRfU0lESF9BKQorCWIgOj0gTmV3UHVibGljS2V5KEtleVZhcmlhbnRf
U0lESF9CKQorCisJLy8gSW1wb3J0IGtleXMKKwlhX2hleCwgZXJyIDo9IGhleC5EZWNvZGVTdHJp
bmcodGRhdGEuUGtBX3NpZGgpCisJY2hlY2tFcnIodCwgZXJyLCAiaW52YWxpZCBoZXgtbnVtYmVy
IHByb3ZpZGVkIikKKworCWVyciA9IGEuSW1wb3J0KGFfaGV4KQorCWNoZWNrRXJyKHQsIGVyciwg
ImltcG9ydCBmYWlsZWQiKQorCisJYl9oZXgsIGVyciA6PSBoZXguRGVjb2RlU3RyaW5nKHRkYXRh
LlBrQl9zaWtlKQorCWNoZWNrRXJyKHQsIGVyciwgImludmFsaWQgaGV4LW51bWJlciBwcm92aWRl
ZCIpCisKKwllcnIgPSBiLkltcG9ydChiX2hleCkKKwljaGVja0Vycih0LCBlcnIsICJpbXBvcnQg
ZmFpbGVkIikKKworCS8vIEV4cG9ydCBhbmQgY2hlY2sgaWYgc2FtZQorCWlmICFieXRlcy5FcXVh
bChiLkV4cG9ydCgpLCBiX2hleCkgfHwgIWJ5dGVzLkVxdWFsKGEuRXhwb3J0KCksIGFfaGV4KSB7
CisJCXQuRmF0YWxmKCJleHBvcnQvaW1wb3J0IGZhaWxlZCIpCisJfQorCisJaWYgKGxlbihiLkV4
cG9ydCgpKSAhPSBiLlNpemUoKSkgfHwgKGxlbihhLkV4cG9ydCgpKSAhPSBhLlNpemUoKSkgewor
CQl0LkZhdGFsZigid3Jvbmcgc2l6ZSBvZiBleHBvcnRlZCBrZXlzIikKKwl9Cit9CisKK2Z1bmMg
dGVzdFByaXZhdGVLZXlCZWxvd01heCh0IHRlc3RpbmcuVEIpIHsKKwlmb3IgdmFyaWFudCwga2V5
U3ogOj0gcmFuZ2UgbWFwW0tleVZhcmlhbnRdKkRvbWFpblBhcmFtc3sKKwkJS2V5VmFyaWFudF9T
SURIX0E6ICZQYXJhbXMuQSwKKwkJS2V5VmFyaWFudF9TSURIX0I6ICZQYXJhbXMuQn0geworCisJ
CWZ1bmModiBLZXlWYXJpYW50LCBkcCAqRG9tYWluUGFyYW1zKSB7CisJCQl2YXIgYmxlbiA9IGlu
dChkcC5TZWNyZXRCeXRlTGVuKQorCQkJdmFyIHBydiA9IE5ld1ByaXZhdGVLZXkodikKKworCQkJ
Ly8gQ2FsY3VsYXRlIGVpdGhlciAoMl5lMiAtIDEpIG9yICgyXnMgLSAxKTsgd2hlcmUgcz1jZWls
KGxvZ18yKDNeZTMpKSkKKwkJCW1heFNlY2VydFZhbCA6PSBiaWcuTmV3SW50KGludDY0KGRwLlNl
Y3JldEJpdExlbikpCisJCQltYXhTZWNlcnRWYWwuRXhwKGJpZy5OZXdJbnQoaW50NjQoMikpLCBt
YXhTZWNlcnRWYWwsIG5pbCkKKwkJCW1heFNlY2VydFZhbC5TdWIobWF4U2VjZXJ0VmFsLCBiaWcu
TmV3SW50KDEpKQorCisJCQkvLyBEbyBzYW1lIHRlc3QgMTAwMCB0aW1lcworCQkJZm9yIGkgOj0g
MDsgaSA8IDEwMDA7IGkrKyB7CisJCQkJZXJyIDo9IHBydi5HZW5lcmF0ZShyYW5kLlJlYWRlcikK
KwkJCQljaGVja0Vycih0LCBlcnIsICJQcml2YXRlIGtleSBnZW5lcmF0aW9uIikKKworCQkJCS8v
IENvbnZlcnQgdG8gYmlnLWVuZGlhbiwgYXMgdGhhdCdzIHdoYXQgZXhwZWN0ZWQgYnkgKCpJbnQp
U2V0Qnl0ZXMoKQorCQkJCXNlY3JldEJ5dGVzIDo9IHBydi5FeHBvcnQoKQorCQkJCWZvciBpIDo9
IDA7IGkgPCBpbnQoYmxlbi8yKTsgaSsrIHsKKwkJCQkJdG1wIDo9IHNlY3JldEJ5dGVzW2ldIF4g
c2VjcmV0Qnl0ZXNbYmxlbi1pLTFdCisJCQkJCXNlY3JldEJ5dGVzW2ldID0gdG1wIF4gc2VjcmV0
Qnl0ZXNbaV0KKwkJCQkJc2VjcmV0Qnl0ZXNbYmxlbi1pLTFdID0gdG1wIF4gc2VjcmV0Qnl0ZXNb
Ymxlbi1pLTFdCisJCQkJfQorCQkJCXBydkJpZyA6PSBuZXcoYmlnLkludCkuU2V0Qnl0ZXMoc2Vj
cmV0Qnl0ZXMpCisJCQkJLy8gQ2hlY2sgaWYgZ2VuZXJhdGVkIGtleSBpcyBiaWdnZXIgdGhhbiBh
Y2NlcHRhYmxlCisJCQkJaWYgcHJ2QmlnLkNtcChtYXhTZWNlcnRWYWwpID09IDEgeworCQkJCQl0
LkVycm9yKCJHZW5lcmF0ZWQgcHJpdmF0ZSBrZXkgaXMgd3JvbmciKQorCQkJCX0KKwkJCX0KKwkJ
fSh2YXJpYW50LCBrZXlTeikKKwl9Cit9CisKK2Z1bmMgdGVzdEtleUFncmVlbWVudCh0ICp0ZXN0
aW5nLlQsIHBrQSwgcHJBLCBwa0IsIHByQiBzdHJpbmcpIHsKKwl2YXIgZSBlcnJvcgorCisJLy8g
S2V5UGFpcnMKKwlhbGljZVB1YmxpYyA6PSBjb252VG9QdWIocGtBLCBLZXlWYXJpYW50X1NJREhf
QSkKKwlib2JQdWJsaWMgOj0gY29udlRvUHViKHBrQiwgS2V5VmFyaWFudF9TSURIX0IpCisJYWxp
Y2VQcml2YXRlIDo9IGNvbnZUb1BydihwckEsIEtleVZhcmlhbnRfU0lESF9BKQorCWJvYlByaXZh
dGUgOj0gY29udlRvUHJ2KHByQiwgS2V5VmFyaWFudF9TSURIX0IpCisKKwkvLyBEbyBhY3R1YWwg
dGVzdAorCXMxLCBlIDo9IERlcml2ZVNlY3JldChib2JQcml2YXRlLCBhbGljZVB1YmxpYykKKwlj
aGVja0Vycih0LCBlLCAiZGVyaXZhdGlvbiBzMSIpCisJczIsIGUgOj0gRGVyaXZlU2VjcmV0KGFs
aWNlUHJpdmF0ZSwgYm9iUHVibGljKQorCWNoZWNrRXJyKHQsIGUsICJkZXJpdmF0aW9uIHMxIikK
KworCWlmICFieXRlcy5FcXVhbChzMVs6XSwgczJbOl0pIHsKKwkJdC5GYXRhbGYoInR3byBzaGFy
ZWQga2V5czogJWQsICVkIGRvIG5vdCBtYXRjaCIsIHMxLCBzMikKKwl9CisKKwkvLyBOZWdhdGl2
ZSBjYXNlCisJZGVjLCBlIDo9IGhleC5EZWNvZGVTdHJpbmcodGRhdGEuUGtBX3NpZGgpCisJaWYg
ZSAhPSBuaWwgeworCQl0LkZhaWxOb3coKQorCX0KKwlkZWNbMF0gPSBeZGVjWzBdCisJZSA9IGFs
aWNlUHVibGljLkltcG9ydChkZWMpCisJaWYgZSAhPSBuaWwgeworCQl0LkZhaWxOb3coKQorCX0K
KworCXMxLCBlID0gRGVyaXZlU2VjcmV0KGJvYlByaXZhdGUsIGFsaWNlUHVibGljKQorCWNoZWNr
RXJyKHQsIGUsICJkZXJpdmF0aW9uIG9mIHMxIGZhaWxlZCIpCisJczIsIGUgPSBEZXJpdmVTZWNy
ZXQoYWxpY2VQcml2YXRlLCBib2JQdWJsaWMpCisJY2hlY2tFcnIodCwgZSwgImRlcml2YXRpb24g
b2YgczIgZmFpbGVkIikKKworCWlmIGJ5dGVzLkVxdWFsKHMxWzpdLCBzMls6XSkgeworCQl0LkZh
dGFsZigiVGhlIHR3byBzaGFyZWQga2V5czogJWQsICVkIG1hdGNoIiwgczEsIHMyKQorCX0KK30K
KworZnVuYyBUZXN0RGVyaXZhdGlvblJvdW5kVHJpcCh0ICp0ZXN0aW5nLlQpIHsKKwl2YXIgZXJy
IGVycm9yCisKKwlwcnZBIDo9IE5ld1ByaXZhdGVLZXkoS2V5VmFyaWFudF9TSURIX0EpCisJcHJ2
QiA6PSBOZXdQcml2YXRlS2V5KEtleVZhcmlhbnRfU0lESF9CKQorCisJLy8gR2VuZXJhdGUgcHJp
dmF0ZSBrZXlzCisJZXJyID0gcHJ2QS5HZW5lcmF0ZShyYW5kLlJlYWRlcikKKwljaGVja0Vycih0
LCBlcnIsICJrZXkgZ2VuZXJhdGlvbiBmYWlsZWQiKQorCWVyciA9IHBydkIuR2VuZXJhdGUocmFu
ZC5SZWFkZXIpCisJY2hlY2tFcnIodCwgZXJyLCAia2V5IGdlbmVyYXRpb24gZmFpbGVkIikKKwor
CS8vIEdlbmVyYXRlIHB1YmxpYyBrZXlzCisJcHViQSA6PSBwcnZBLkdlbmVyYXRlUHVibGljS2V5
KCkKKwlwdWJCIDo9IHBydkIuR2VuZXJhdGVQdWJsaWNLZXkoKQorCisJLy8gRGVyaXZlIHNoYXJl
ZCBzZWNyZXQKKwlzMSwgZXJyIDo9IERlcml2ZVNlY3JldChwcnZCLCBwdWJBKQorCWNoZWNrRXJy
KHQsIGVyciwgIiIpCisKKwlzMiwgZXJyIDo9IERlcml2ZVNlY3JldChwcnZBLCBwdWJCKQorCWNo
ZWNrRXJyKHQsIGVyciwgIiIpCisKKwlpZiAhYnl0ZXMuRXF1YWwoczFbOl0sIHMyWzpdKSB7CisJ
CXQuRmF0YWxmKCJUd28gc2hhcmVkIGtleXM6IFxuJVgsIFxuJVggZG8gbm90IG1hdGNoIiwgczEs
IHMyKQorCX0KK30KKworLy8gRW5jcnlwdCwgRGVjcnlwdCwgY2hlY2sgaWYgaW5wdXQvb3V0cHV0
IHBsYWludGV4dCBpcyB0aGUgc2FtZQorZnVuYyB0ZXN0UEtFUm91bmRUcmlwKHQgdGVzdGluZy5U
QiwgaWQgdWludDgpIHsKKwkvLyBNZXNzYWdlIHRvIGJlIGVuY3J5cHRlZAorCXZhciBtc2cgPSBt
YWtlKFtdYnl0ZSwgUGFyYW1zLk1zZ0xlbikKKwlmb3IgaSwgXyA6PSByYW5nZSBtc2cgeworCQlt
c2dbaV0gPSBieXRlKGkpCisJfQorCisJLy8gSW1wb3J0IGtleXMKKwlwa0IgOj0gTmV3UHVibGlj
S2V5KEtleVZhcmlhbnRfU0lLRSkKKwlza0IgOj0gTmV3UHJpdmF0ZUtleShLZXlWYXJpYW50X1NJ
S0UpCisJcGtfaGV4LCBlcnIgOj0gaGV4LkRlY29kZVN0cmluZyh0ZGF0YS5Qa0Jfc2lrZSkKKwlp
ZiBlcnIgIT0gbmlsIHsKKwkJdC5GYXRhbChlcnIpCisJfQorCXNrX2hleCwgZXJyIDo9IGhleC5E
ZWNvZGVTdHJpbmcodGRhdGEuUHJCX3Npa2UpCisJaWYgZXJyICE9IG5pbCB7CisJCXQuRmF0YWwo
ZXJyKQorCX0KKwlpZiBwa0IuSW1wb3J0KHBrX2hleCkgIT0gbmlsIHx8IHNrQi5JbXBvcnQoc2tf
aGV4KSAhPSBuaWwgeworCQl0LkVycm9yKCJJbXBvcnQiKQorCX0KKworCWN0LCBlcnIgOj0gRW5j
cnlwdChyYW5kLlJlYWRlciwgcGtCLCBtc2dbOl0pCisJaWYgZXJyICE9IG5pbCB7CisJCXQuRmF0
YWwoZXJyKQorCX0KKwlwdCwgZXJyIDo9IERlY3J5cHQoc2tCLCBjdCkKKwlpZiBlcnIgIT0gbmls
IHsKKwkJdC5GYXRhbChlcnIpCisJfQorCWlmICFieXRlcy5FcXVhbChwdFs6XSwgbXNnWzpdKSB7
CisJCXQuRXJyb3JmKCJEZWNyeXB0aW9uIGZhaWxlZCBcbiBnb3QgOiAlWFxuIGV4cCA6ICVYIiwg
cHQsIG1zZykKKwl9Cit9CisKKy8vIEdlbmVyYXRlIGtleSBhbmQgY2hlY2sgaWYgY2FuIGVuY3J5
cHQKK2Z1bmMgVGVzdFBLRUtleUdlbmVyYXRpb24odCAqdGVzdGluZy5UKSB7CisJLy8gTWVzc2Fn
ZSB0byBiZSBlbmNyeXB0ZWQKKwl2YXIgbXNnID0gbWFrZShbXWJ5dGUsIFBhcmFtcy5Nc2dMZW4p
CisJdmFyIGVyciBlcnJvcgorCWZvciBpLCBfIDo9IHJhbmdlIG1zZyB7CisJCW1zZ1tpXSA9IGJ5
dGUoaSkKKwl9CisKKwlzayA6PSBOZXdQcml2YXRlS2V5KEtleVZhcmlhbnRfU0lLRSkKKwllcnIg
PSBzay5HZW5lcmF0ZShyYW5kLlJlYWRlcikKKwljaGVja0Vycih0LCBlcnIsICJQRUsga2V5IGdl
bmVyYXRpb24iKQorCXBrIDo9IHNrLkdlbmVyYXRlUHVibGljS2V5KCkKKworCS8vIFRyeSB0byBl
bmNyeXB0CisJY3QsIGVyciA6PSBFbmNyeXB0KHJhbmQuUmVhZGVyLCBwaywgbXNnWzpdKQorCWNo
ZWNrRXJyKHQsIGVyciwgIlBFSyBlbmNyeXB0aW9uIikKKwlwdCwgZXJyIDo9IERlY3J5cHQoc2ss
IGN0KQorCWNoZWNrRXJyKHQsIGVyciwgIlBFSyBrZXkgZGVjcnlwdGlvbiIpCisKKwlpZiAhYnl0
ZXMuRXF1YWwocHRbOl0sIG1zZ1s6XSkgeworCQl0LkZhdGFsZigiRGVjcnlwdGlvbiBmYWlsZWQg
XG4gZ290IDogJVhcbiBleHAgOiAlWCIsIHB0LCBtc2cpCisJfQorfQorCitmdW5jIFRlc3ROZWdh
dGl2ZVBLRSh0ICp0ZXN0aW5nLlQpIHsKKwl2YXIgbXNnIFs0MF1ieXRlCisJdmFyIGVyciBlcnJv
cgorCisJLy8gR2VuZXJhdGUga2V5CisJc2sgOj0gTmV3UHJpdmF0ZUtleShLZXlWYXJpYW50X1NJ
S0UpCisJZXJyID0gc2suR2VuZXJhdGUocmFuZC5SZWFkZXIpCisJY2hlY2tFcnIodCwgZXJyLCAi
a2V5IGdlbmVyYXRpb24iKQorCisJcGsgOj0gc2suR2VuZXJhdGVQdWJsaWNLZXkoKQorCisJLy8g
Ynl0ZWxlbihtc2cpIC0gMQorCWN0LCBlcnIgOj0gRW5jcnlwdChyYW5kLlJlYWRlciwgcGssIG1z
Z1s6UGFyYW1zLktlbVNpemUrOC0xXSkKKwlpZiBlcnIgPT0gbmlsIHsKKwkJdC5GYXRhbCgiRXJy
b3IgaGFzbid0IGJlZW4gcmV0dXJuZWQiKQorCX0KKwlpZiBjdCAhPSBuaWwgeworCQl0LkZhdGFs
KCJDaXBoZXJ0ZXh0IG11c3QgYmUgbmlsIikKKwl9CisKKwkvLyBLZW1TaXplIC0gMQorCXB0LCBl
cnIgOj0gRGVjcnlwdChzaywgbXNnWzpQYXJhbXMuS2VtU2l6ZSs4LTFdKQorCWlmIGVyciA9PSBu
aWwgeworCQl0LkZhdGFsKCJFcnJvciBoYXNuJ3QgYmVlbiByZXR1cm5lZCIpCisJfQorCWlmIHB0
ICE9IG5pbCB7CisJCXQuRmF0YWwoIkNpcGhlcnRleHQgbXVzdCBiZSBuaWwiKQorCX0KK30KKwor
ZnVuYyB0ZXN0S0VNUm91bmRUcmlwKHQgKnRlc3RpbmcuVCwgcGtCLCBza0IgW11ieXRlKSB7CisJ
Ly8gSW1wb3J0IGtleXMKKwlwayA6PSBOZXdQdWJsaWNLZXkoS2V5VmFyaWFudF9TSUtFKQorCXNr
IDo9IE5ld1ByaXZhdGVLZXkoS2V5VmFyaWFudF9TSUtFKQorCWlmIHBrLkltcG9ydChwa0IpICE9
IG5pbCB8fCBzay5JbXBvcnQoc2tCKSAhPSBuaWwgeworCQl0LkVycm9yKCJJbXBvcnQgZmFpbGVk
IikKKwl9CisKKwljdCwgc3NfZSwgZXJyIDo9IEVuY2Fwc3VsYXRlKHJhbmQuUmVhZGVyLCBwaykK
KwlpZiBlcnIgIT0gbmlsIHsKKwkJdC5FcnJvcigiRW5jYXBzdWxhdGUgZmFpbGVkIikKKwl9CisK
Kwlzc19kLCBlcnIgOj0gRGVjYXBzdWxhdGUoc2ssIHBrLCBjdCkKKwlpZiBlcnIgIT0gbmlsIHsK
KwkJdC5FcnJvcigiRGVjYXBzdWxhdGUgZmFpbGVkIikKKwl9CisJaWYgIWJ5dGVzLkVxdWFsKHNz
X2UsIHNzX2QpIHsKKwkJdC5FcnJvcigiU2hhcmVkIHNlY3JldHMgZnJvbSBkZWNhcHN1bGF0aW9u
IGFuZCBlbmNhcHN1bGF0aW9uIGRpZmZlciIpCisJfQorfQorCitmdW5jIFRlc3RLRU1Sb3VuZFRy
aXAodCAqdGVzdGluZy5UKSB7CisJcGssIGVyciA6PSBoZXguRGVjb2RlU3RyaW5nKHRkYXRhLlBr
Ql9zaWtlKQorCWNoZWNrRXJyKHQsIGVyciwgInB1YmxpYyBrZXkgQiBub3QgYSBudW1iZXIiKQor
CXNrLCBlcnIgOj0gaGV4LkRlY29kZVN0cmluZyh0ZGF0YS5QckJfc2lrZSkKKwljaGVja0Vycih0
LCBlcnIsICJwcml2YXRlIGtleSBCIG5vdCBhIG51bWJlciIpCisJdGVzdEtFTVJvdW5kVHJpcCh0
LCBwaywgc2spCit9CisKK2Z1bmMgVGVzdEtFTUtleUdlbmVyYXRpb24odCAqdGVzdGluZy5UKSB7
CisJLy8gR2VuZXJhdGUga2V5CisJc2sgOj0gTmV3UHJpdmF0ZUtleShLZXlWYXJpYW50X1NJS0Up
CisJY2hlY2tFcnIodCwgc2suR2VuZXJhdGUocmFuZC5SZWFkZXIpLCAiZXJyb3I6IGtleSBnZW5l
cmF0aW9uIikKKwlwayA6PSBzay5HZW5lcmF0ZVB1YmxpY0tleSgpCisKKwkvLyBjYWxjdWxhdGVk
IHNoYXJlZCBzZWNyZXQKKwljdCwgc3NfZSwgZXJyIDo9IEVuY2Fwc3VsYXRlKHJhbmQuUmVhZGVy
LCBwaykKKworCWNoZWNrRXJyKHQsIGVyciwgImVuY2Fwc3VsYXRpb24gZmFpbGVkIikKKwlzc19k
LCBlcnIgOj0gRGVjYXBzdWxhdGUoc2ssIHBrLCBjdCkKKwljaGVja0Vycih0LCBlcnIsICJkZWNh
cHN1bGF0aW9uIGZhaWxlZCIpCisKKwlpZiAhYnl0ZXMuRXF1YWwoc3NfZSwgc3NfZCkgeworCQl0
LkZhdGFsZigiS0VNIGZhaWxlZCBcbiBlbmNhcHN1bGF0ZWQ6ICVYXG4gZGVjYXBzdWxhdGVkOiAl
WCIsIHNzX2QsIHNzX2UpCisJfQorfQorCitmdW5jIFRlc3ROZWdhdGl2ZUtFTSh0ICp0ZXN0aW5n
LlQpIHsKKwlzayA6PSBOZXdQcml2YXRlS2V5KEtleVZhcmlhbnRfU0lLRSkKKwljaGVja0Vycih0
LCBzay5HZW5lcmF0ZShyYW5kLlJlYWRlciksICJlcnJvcjoga2V5IGdlbmVyYXRpb24iKQorCXBr
IDo9IHNrLkdlbmVyYXRlUHVibGljS2V5KCkKKworCWN0LCBzc19lLCBlcnIgOj0gRW5jYXBzdWxh
dGUocmFuZC5SZWFkZXIsIHBrKQorCWNoZWNrRXJyKHQsIGVyciwgInByZS1yZXF1aXNpdGUgZm9y
IGEgdGVzdCBmYWlsZWQiKQorCisJY3RbMF0gPSBjdFswXSAtIDEKKwlzc19kLCBlcnIgOj0gRGVj
YXBzdWxhdGUoc2ssIHBrLCBjdCkKKwljaGVja0Vycih0LCBlcnIsICJkZWNhcHN1bGF0aW9uIHJl
dHVybnMgZXJyb3Igd2hlbiBpbnZhbGlkIGNpcGhlcnRleHQgcHJvdmlkZWQiKQorCisJaWYgYnl0
ZXMuRXF1YWwoc3NfZSwgc3NfZCkgeworCQkvLyBubyBpZGVhIGhvdyB0aGlzIGNvdWxkIGV2ZXIg
aGFwcGVuLCBidXQgaXQgd291bGQgYmUgdmVyeSBiYWQKKwkJdC5FcnJvcigiY3JpdGljYWwgZXJy
b3IiKQorCX0KKworCS8vIFRyeSBlbmNhcHN1bGF0aW5nIHdpdGggU0lESCBrZXkKKwlwa1NpZGgg
Oj0gTmV3UHVibGljS2V5KEtleVZhcmlhbnRfU0lESF9CKQorCXByU2lkaCA6PSBOZXdQcml2YXRl
S2V5KEtleVZhcmlhbnRfU0lESF9CKQorCV8sIF8sIGVyciA9IEVuY2Fwc3VsYXRlKHJhbmQuUmVh
ZGVyLCBwa1NpZGgpCisJaWYgZXJyID09IG5pbCB7CisJCXQuRXJyb3IoImVuY2Fwc3VsYXRpb24g
YWNjZXB0cyBTSURIIHB1YmxpYyBrZXkiKQorCX0KKwkvLyBUcnkgZGVjYXBzdWxhdGluZyB3aXRo
IFNJREgga2V5CisJXywgZXJyID0gRGVjYXBzdWxhdGUocHJTaWRoLCBwaywgY3QpCisJaWYgZXJy
ID09IG5pbCB7CisJCXQuRXJyb3IoImRlY2Fwc3VsYXRpb24gYWNjZXB0cyBTSURIIHByaXZhdGUg
a2V5IGtleSIpCisJfQorfQorCisvLyBJbiBjYXNlIGludmFsaWQgY2lwaGVydGV4dCBpcyBwcm92
aWRlZCwgU0lLRSdzIGRlY2Fwc3VsYXRpb24gbXVzdAorLy8gcmV0dXJuIHNhbWUgKGJ1dCB1bnBy
ZWRpY3RhYmxlKSByZXN1bHQgZm9yIGEgZ2l2ZW4ga2V5LgorZnVuYyBUZXN0TmVnYXRpdmVLRU1T
YW1lV3JvbmdSZXN1bHQodCAqdGVzdGluZy5UKSB7CisJc2sgOj0gTmV3UHJpdmF0ZUtleShLZXlW
YXJpYW50X1NJS0UpCisJY2hlY2tFcnIodCwgc2suR2VuZXJhdGUocmFuZC5SZWFkZXIpLCAiZXJy
b3I6IGtleSBnZW5lcmF0aW9uIikKKwlwayA6PSBzay5HZW5lcmF0ZVB1YmxpY0tleSgpCisKKwlj
dCwgZW5jU3MsIGVyciA6PSBFbmNhcHN1bGF0ZShyYW5kLlJlYWRlciwgcGspCisJY2hlY2tFcnIo
dCwgZXJyLCAicHJlLXJlcXVpc2l0ZSBmb3IgYSB0ZXN0IGZhaWxlZCIpCisKKwkvLyBtYWtlIGNp
cGhlcnRleHQgd3JvbmcKKwljdFswXSA9IGN0WzBdIC0gMQorCWRlY1NzMSwgZXJyIDo9IERlY2Fw
c3VsYXRlKHNrLCBwaywgY3QpCisJY2hlY2tFcnIodCwgZXJyLCAicHJlLXJlcXVpc2l0ZSBmb3Ig
YSB0ZXN0IGZhaWxlZCIpCisKKwkvLyBzZWNvbmQgZGVjYXBzdWxhdGlvbiBtdXN0IGJlIGRvbmUg
d2l0aCBzYW1lLCBidXQgaW1wb3J0ZWQgcHJpdmF0ZSBrZXkKKwlleHBTayA6PSBzay5FeHBvcnQo
KQorCisJLy8gY3JlYXQgbmV3IHByaXZhdGUga2V5CisJc2sgPSBOZXdQcml2YXRlS2V5KEtleVZh
cmlhbnRfU0lLRSkKKwllcnIgPSBzay5JbXBvcnQoZXhwU2spCisJY2hlY2tFcnIodCwgZXJyLCAi
aW1wb3J0IGZhaWxlZCIpCisKKwkvLyB0cnkgZGVjYXBzdWxhdGluZyBhZ2Fpbi4gc3MyIG11c3Qg
YmUgc2FtZSBhcyBzczEgYW5kIGRpZmZlcmVudCB0aGFuCisJLy8gb3JpZ2luYWwgcGxhaW50ZXh0
CisJZGVjU3MyLCBlcnIgOj0gRGVjYXBzdWxhdGUoc2ssIHBrLCBjdCkKKwljaGVja0Vycih0LCBl
cnIsICJwcmUtcmVxdWlzaXRlIGZvciBhIHRlc3QgZmFpbGVkIikKKworCWlmICFieXRlcy5FcXVh
bChkZWNTczEsIGRlY1NzMikgeworCQl0LkVycm9yKCJkZWNhcHN1bGF0aW9uIGlzIGluc2VjdXJl
IikKKwl9CisKKwlpZiBieXRlcy5FcXVhbChlbmNTcywgZGVjU3MxKSB8fCBieXRlcy5FcXVhbChl
bmNTcywgZGVjU3MyKSB7CisJCS8vIHRoaXMgdGVzdCByZXF1aXJlcyB0aGF0IGRlY2Fwc3VsYXRp
b24gcmV0dXJucyB3cm9uZyByZXN1bHQKKwkJdC5FcnJvcmYoInRlc3QgaW1wbGVtZW50YXRpb24g
ZXJyb3IiKQorCX0KK30KKworZnVuYyByZWFkQW5kQ2hlY2tMaW5lKHIgKmJ1ZmlvLlJlYWRlcikg
W11ieXRlIHsKKwkvLyBSZWFkIG5leHQgbGluZSBmcm9tIGJ1ZmZlcgorCWxpbmUsIGlzUHJlZml4
LCBlcnIgOj0gci5SZWFkTGluZSgpCisJaWYgZXJyICE9IG5pbCB8fCBpc1ByZWZpeCB7CisJCXBh
bmljKCJXcm9uZyBmb3JtYXQgb2YgaW5wdXQgZmlsZSIpCisJfQorCisJLy8gRnVuY3Rpb24gZXhw
ZWN0cyB0aGF0IGxpbmUgaXMgaW4gZm9ybWF0ICJLRVkgPSBIRVhfVkFMVUUiLiBHZXQKKwkvLyB2
YWx1ZSwgd2hpY2ggc2hvdWxkIGJlIGEgaGV4IHN0cmluZworCWhleHN0IDo9IHN0cmluZ3MuU3Bs
aXQoc3RyaW5nKGxpbmUpLCAiPSIpWzFdCisJaGV4c3QgPSBzdHJpbmdzLlRyaW1TcGFjZShoZXhz
dCkKKwkvLyBDb252ZXJ0IHZhbHVlIHRvIGJ5dGUgc3RyaW5nCisJcmV0LCBlcnIgOj0gaGV4LkRl
Y29kZVN0cmluZyhoZXhzdCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcGFuaWMoIldyb25nIGZvcm1h
dCBvZiBpbnB1dCBmaWxlIikKKwl9CisJcmV0dXJuIHJldAorfQorCitmdW5jIHRlc3RLZXlnZW5T
SUtFKHBrLCBzayBbXWJ5dGUsIGlkIHVpbnQ4KSBib29sIHsKKwkvLyBJbXBvcnQgcHJvdmlkZWQg
cHJpdmF0ZSBrZXkKKwl2YXIgcHJ2S2V5ID0gTmV3UHJpdmF0ZUtleShLZXlWYXJpYW50X1NJS0Up
CisJaWYgcHJ2S2V5LkltcG9ydChzaykgIT0gbmlsIHsKKwkJcGFuaWMoInNpa2UgdGVzdDogY2Fu
J3QgbG9hZCBLQVQiKQorCX0KKworCS8vIEdlbmVyYXRlIHB1YmxpYyBrZXkKKwlwdWJLZXkgOj0g
cHJ2S2V5LkdlbmVyYXRlUHVibGljS2V5KCkKKwlyZXR1cm4gYnl0ZXMuRXF1YWwocHViS2V5LkV4
cG9ydCgpLCBwaykKK30KKworZnVuYyB0ZXN0RGVjYXBzdWxhdGlvbihwaywgc2ssIGN0LCBzc0V4
cGVjdGVkIFtdYnl0ZSwgaWQgdWludDgpIGJvb2wgeworCXZhciBwdWJLZXkgPSBOZXdQdWJsaWNL
ZXkoS2V5VmFyaWFudF9TSUtFKQorCXZhciBwcnZLZXkgPSBOZXdQcml2YXRlS2V5KEtleVZhcmlh
bnRfU0lLRSkKKwlpZiBwdWJLZXkuSW1wb3J0KHBrKSAhPSBuaWwgfHwgcHJ2S2V5LkltcG9ydChz
aykgIT0gbmlsIHsKKwkJcGFuaWMoInNpa2UgdGVzdDogY2FuJ3QgbG9hZCBLQVQiKQorCX0KKwor
CXNzR290LCBlcnIgOj0gRGVjYXBzdWxhdGUocHJ2S2V5LCBwdWJLZXksIGN0KQorCWlmIGVyciAh
PSBuaWwgeworCQlwYW5pYygic2lrZSB0ZXN0OiBjYW4ndCBwZXJmb3JtIGRlZ2NhcHN1bGF0aW9u
IEtBVCIpCisJfQorCisJcmV0dXJuIGJ5dGVzLkVxdWFsKHNzR290LCBzc0V4cGVjdGVkKQorfQor
CitmdW5jIFRlc3RLZXlBZ3JlZW1lbnQodCAqdGVzdGluZy5UKSB7CisJdGVzdEtleUFncmVlbWVu
dCh0LCB0ZGF0YS5Qa0Ffc2lkaCwgdGRhdGEuUHJBX3NpZGgsIHRkYXRhLlBrQl9zaWRoLCB0ZGF0
YS5QckJfc2lkaCkKK30KKworLy8gU2FtZSB2YWx1ZXMgYXMgaW4gc2lrZV90ZXN0LmNjCitmdW5j
IFRlc3REZWNhcHN1bGF0aW9uKHQgKnRlc3RpbmcuVCkgeworCXZhciBzayA9IFsxNiArIDI4XWJ5
dGV7CisJCTB4MDQsIDB4NUUsIDB4MDEsIDB4NDIsIDB4QjgsIDB4MkYsIDB4RTEsIDB4OUEsIDB4
MzgsIDB4MjUsCisJCTB4OTIsIDB4RTcsIDB4REMsIDB4QkEsIDB4RjcsIDB4MUIsIDB4QjEsIDB4
RkQsIDB4MzQsIDB4NDIsCisJCTB4REIsIDB4MDIsIDB4QkMsIDB4OUQsIDB4NEMsIDB4RDAsIDB4
NzIsIDB4MzQsIDB4NEQsIDB4QkQsCisJCTB4MDYsIDB4REYsIDB4MUMsIDB4N0QsIDB4MEEsIDB4
ODgsIDB4QjIsIDB4NTAsIDB4QzQsIDB4RjYsCisJCTB4QUUsIDB4RTgsIDB4MjUsIDB4MDEsCisJ
fQorCisJdmFyIHBrID0gWzMzMF1ieXRleworCQkweDZELCAweDhELCAweEY1LCAweDdCLCAweENE
LCAweDQ3LCAweENBLCAweENCLCAweDdBLCAweDM4LAorCQkweEI3LCAweEE2LCAweDkwLCAweEI3
LCAweDM3LCAweDAzLCAweEQ0LCAweDZGLCAweDI3LCAweDczLAorCQkweDc0LCAweDE3LCAweDVB
LCAweEE0LCAweDBELCAweEM2LCAweDgxLCAweEFELCAweERCLCAweEY3LAorCQkweDE4LCAweEIy
LCAweDNDLCAweDMwLCAweENGLCAweEFBLCAweDA4LCAweDExLCAweDkxLCAweENDLAorCQkweDI3
LCAweDRFLCAweEYxLCAweEE2LCAweEI3LCAweERBLCAweEQyLCAweENGLCAweDk5LCAweDdGLAor
CQkweEY3LCAweEUxLCAweEQwLCAweENFLCAweDAwLCAweEQyLCAweDRCLCAweEE0LCAweDMzLCAw
eEI0LAorCQkweDg3LCAweDAxLCAweDNGLCAweDAyLCAweEY3LCAweEY5LCAweERFLCAweEMzLCAw
eDYwLCAweDYyLAorCQkweERBLCAweDNGLCAweDc0LCAweEE5LCAweDQ0LCAweEJFLCAweDE5LCAw
eEQ1LCAweDAzLCAweDJBLAorCQkweDc5LCAweDhDLCAweEE3LCAweEZGLCAweEVBLCAweEIzLCAw
eEJCLCAweEI1LCAweEQ0LCAweDFELAorCQkweDhGLCAweDkyLCAweENFLCAweDYyLCAweDZFLCAw
eDk5LCAweDI0LCAweEQ3LCAweDU3LCAweEZBLAorCQkweENELCAweEI2LCAweEUyLCAweDhFLCAw
eEZELCAweDIyLCAweDBFLCAweDMxLCAweDIxLCAweDAxLAorCQkweDhELCAweDc5LCAweEY4LCAw
eDNFLCAweDI3LCAweEVDLCAweDQzLCAweDQwLCAweERCLCAweDgyLAorCQkweEU1LCAweEVCLCAw
eDZDLCAweDk3LCAweDY2LCAweDI5LCAweDE1LCAweDY4LCAweEI3LCAweDRELAorCQkweDg0LCAw
eEQxLCAweDhBLCAweDBCLCAweDEyLCAweDM2LCAweDJDLCAweDBDLCAweDBBLCAweDZFLAorCQkw
eDRFLCAweERFLCAweEE1LCAweDhBLCAweERFLCAweDc3LCAweERELCAweDcwLCAweDQ5LCAweDcz
LAorCQkweEFDLCAweDI3LCAweDZELCAweDhELCAweDI1LCAweDlBLCAweEU0LCAweDI1LCAweEU4
LCAweDk1LAorCQkweDhGLCAweEZFLCAweDkwLCAweDNCLCAweDAwLCAweDY5LCAweDIwLCAweEU4
LCAweDdDLCAweEE1LAorCQkweEY1LCAweDc5LCAweEMwLCAweDYxLCAweDUxLCAweDkxLCAweDM1
LCAweDI1LCAweDNGLCAweDE3LAorCQkweDJGLCAweDcwLCAweDczLCAweEYwLCAweDg5LCAweEI1
LCAweEM4LCAweDI1LCAweEI4LCAweEU1LAorCQkweDdFLCAweDM0LCAweERELCAweDExLCAweEU1
LCAweEQ2LCAweEMzLCAweEQ1LCAweDI5LCAweDg5LAorCQkweEM2LCAweDJDLCAweDk5LCAweDUz
LCAweDFELCAweDJDLCAweDc3LCAweEIwLCAweEI2LCAweEExLAorCQkweEJELCAweDc5LCAweEZC
LCAweDRBLCAweEMyLCAweDQ4LCAweDRDLCAweDYyLCAweDUxLCAweDAwLAorCQkweEUzLCAweDkx
LCAweDJBLCAweENCLCAweDg0LCAweDAzLCAweDVELCAweDJELCAweEM4LCAweDMzLAorCQkweEU5
LCAweDE0LCAweEJGLCAweDc0LCAweDIxLCAweEJDLCAweEY0LCAweDc2LCAweEU1LCAweDQyLAor
CQkweEI4LCAweEJELCAweEUyLCAweEU3LCAweDIwLCAweDk1LCAweDU0LCAweEYyLCAweEVELCAw
eEMwLAorCQkweDc5LCAweDM4LCAweDFFLCAweEQyLCAweEVBLCAweDFBLCAweDYzLCAweDg1LCAw
eEU3LCAweDNBLAorCQkweERBLCAweEFELCAweEFCLCAweDFCLCAweDFFLCAweDE5LCAweDlFLCAw
eDczLCAweEQwLCAweDEwLAorCQkweDJFLCAweDM4LCAweEFDLCAweDhCLCAweDAwLCAweDZBLCAw
eDMwLCAweDJDLCAweDNELCAweDcwLAorCQkweDhFLCAweDM5LCAweDZELCAweEMwLCAweDEyLCAw
eDYxLCAweDdELCAweDJBLCAweDBBLCAweDA0LAorCQkweDk1LCAweDhFLCAweDA5LCAweDNDLCAw
eDdCLCAweEVDLCAweDJFLCAweEJDLCAweEU4LCAweEU4LAorCQkweEU4LCAweDM3LCAweDI5LCAw
eEM0LCAweDdFLCAweDc2LCAweDQ4LCAweEI5LCAweDNCLCAweDcyLAorCQkweEU1LCAweDk5LCAw
eDlCLCAweEY5LCAweEUzLCAweDk5LCAweDcyLCAweDNGLCAweDM1LCAweDI5LAorCQkweDg1LCAw
eEUwLCAweEM4LCAweEJGLCAweEIxLCAweDZCLCAweEIxLCAweDZFLCAweDcyLCAweDAwLAorCX0K
KworCXZhciBjdCA9IFszMzAgKyAxNl1ieXRleworCQkweEZGLCAweEVCLCAweEVGLCAweDRBLCAw
eEMwLCAweDU3LCAweDBGLCAweDI2LCAweEFDLCAweDc2LAorCQkweEE4LCAweEIwLCAweEEzLCAw
eDVELCAweDlDLCAweEQ5LCAweDI1LCAweEQxLCAweDdGLCAweDkyLAorCQkweDVELCAweEY0LCAw
eDIzLCAweDM0LCAweEMzLCAweDAzLCAweDEwLCAweEUxLCAweEIwLCAweDI0LAorCQkweDlCLCAw
eDQ0LCAweDU4LCAweDI2LCAweDEzLCAweDU2LCAweDgzLCAweDQzLCAweDcyLCAweDY5LAorCQkw
eDI4LCAweDBELCAweDU1LCAweDA3LCAweDFGLCAweERCLCAweEMwLCAweDIzLCAweDM0LCAweDgz
LAorCQkweDFBLCAweDA5LCAweDlCLCAweDgwLCAweDAwLCAweDY0LCAweDU2LCAweERDLCAweDc5
LCAweDdBLAorCQkweEQyLCAweENFLCAweDIzLCAweEM5LCAweDcyLCAweDI3LCAweEZDLCAweDhE
LCAweEFCLCAweEJGLAorCQkweEQzLCAweDE3LCAweEY2LCAweDkxLCAweDdCLCAweDE1LCAweDkz
LCAweDgzLCAweDhBLCAweDRGLAorCQkweDZDLCAweENBLCAweDRBLCAweDk0LCAweERBLCAweEM3
LCAweDlELCAweEI2LCAweEQ2LCAweEJBLAorCQkweEJELCAweDgxLCAweDlBLCAweDc4LCAweEU1
LCAweEU1LCAweEJFLCAweDE3LCAweEJDLCAweENCLAorCQkweEM4LCAweDIzLCAweDgwLCAweDVG
LCAweDc1LCAweEY4LCAweERCLCAweDUxLCAweDU1LCAweDAwLAorCQkweDI1LCAweDMzLCAweDUy
LCAweDY0LCAweEIyLCAweEQ2LCAweEQ4LCAweDlBLCAweDJBLCAweDlFLAorCQkweDI5LCAweDk5
LCAweDEzLCAweDMzLCAweEUyLCAweEE3LCAweDk4LCAweEFDLCAweEQ3LCAweDc5LAorCQkweDVD
LCAweDJGLCAweEJBLCAweDA3LCAweEMzLCAweDAzLCAweDM3LCAweEQ2LCAweEU2LCAweEI1LAor
CQkweEExLCAweEY1LCAweDI5LCAweEI2LCAweEY2LCAweEMwLCAweDVDLCAweDQ0LCAweDY4LCAw
eDJCLAorCQkweDBCLCAweEY1LCAweDAwLCAweDAxLCAweDQ0LCAweEQ1LCAweENDLCAweDIzLCAw
eEI1LCAweDI3LAorCQkweDRGLCAweENBLCAweEI0LCAweDA1LCAweDAxLCAweEY5LCAweEQ0LCAw
eDQxLCAweEUwLCAweEUxLAorCQkweDFFLCAweENGLCAweEE5LCAweEJDLCAweDc5LCAweEQ3LCAw
eEQ1LCAweEY1LCAweDNDLCAweEU2LAorCQkweDkzLCAweEY0LCAweDZDLCAweDg0LCAweDVBLCAw
eDJDLCAweDRCLCAweEU0LCAweDkxLCAweEIyLAorCQkweEIyLCAweEI4LCAweEFELCAweDc0LCAw
eDlBLCAweDY5LCAweDc5LCAweDRDLCAweDg0LCAweEI3LAorCQkweEJGLCAweEYxLCAweDY4LCAw
eDRCLCAweEFFLCAweDBGLCAweDdGLCAweDQ1LCAweDNCLCAweDE4LAorCQkweDNGLCAweEZBLCAw
eDAwLCAweDQ4LCAweEUwLCAweDNBLCAweEUyLCAweEMwLCAweEFFLCAweDAwLAorCQkweENFLCAw
eDkwLCAweDI4LCAweEE0LCAweDFCLCAweEJFLCAweENBLCAweDBDLCAweDIxLCAweDI5LAorCQkw
eDY0LCAweDMwLCAweDVFLCAweDM1LCAweEFELCAweEZELCAweDgzLCAweDQ3LCAweDQwLCAweDZE
LAorCQkweDE1LCAweDU2LCAweEZDLCAweEY4LCAweDVGLCAweEFCLCAweDgxLCAweEZFLCAweDZC
LCAweEU5LAorCQkweDZCLCAweEVELCAweDI3LCAweDM1LCAweDdDLCAweEQ4LCAweDJDLCAweEQ0
LCAweEYyLCAweDExLAorCQkweEU2LCAweEFGLCAweERGLCAweEI4LCAweDkxLCAweDk2LCAweEVC
LCAweEY3LCAweDRDLCAweDhELAorCQkweDcwLCAweDc3LCAweDkwLCAweDgxLCAweDAwLCAweDA5
LCAweDE5LCAweDI3LCAweDhBLCAweDlFLAorCQkweEI2LCAweDFBLCAweEU5LCAweEFDLCAweDZD
LCAweEM5LCAweEY4LCAweEVBLCAweEEyLCAweDM0LAorCQkweEI4LCAweEFDLCAweEIzLCAweEIz
LCAweDY4LCAweEExLCAweEI3LCAweDI5LCAweDU1LCAweENBLAorCQkweDQwLCAweDIzLCAweDky
LCAweDVDLCAweDBDLCAweDc5LCAweDZCLCAweEQ2LCAweDlGLCAweDVCLAorCQkweEQyLCAweEU2
LCAweEFFLCAweDA0LCAweENCLCAweEVDLCAweEM3LCAweDg4LCAweDE4LCAweERCLAorCQkweDdB
LCAweEU2LCAweEQ2LCAweEM5LCAweDM5LCAweEZELCAweDkzLCAweDlCLCAweEM4LCAweDAxLAor
CQkweDZGLCAweDNFLCAweDZDLCAweDkwLCAweDNFLCAweDczLCAweDc2LCAweDk5LCAweDdDLCAw
eDQ4LAorCQkweERBLCAweDY4LCAweDQ4LCAweDgwLCAweDJCLCAweDYzLAorCX0KKwl2YXIgc3NF
eHAgPSBbMTZdYnl0ZXsKKwkJMHhBMSwgMHhGOSwgMHg1QSwgMHg2NywgMHhCOSwgMHgzRCwgMHgx
RSwgMHg3MiwgMHhFOCwgMHhDNSwKKwkJMHg3MSwgMHhGMSwgMHg0QywgMHhCMiwgMHhBQSwgMHg2
RCwKKwl9CisKKwl2YXIgcHJ2T2JqID0gTmV3UHJpdmF0ZUtleShLZXlWYXJpYW50X1NJS0UpCisJ
dmFyIHB1Yk9iaiA9IE5ld1B1YmxpY0tleShLZXlWYXJpYW50X1NJS0UpCisKKwlpZiBwdWJPYmou
SW1wb3J0KHBrWzpdKSAhPSBuaWwgfHwgcHJ2T2JqLkltcG9ydChza1s6XSkgIT0gbmlsIHsKKwkJ
dC5FcnJvcigiQ2FuJ3QgaW1wb3J0IG9uZSBvZiB0aGUga2V5cyIpCisJfQorCisJcmVzLCBfIDo9
IERlY2Fwc3VsYXRlKHBydk9iaiwgcHViT2JqLCBjdFs6XSkKKwlpZiAhYnl0ZXMuRXF1YWwoc3NF
eHBbOl0sIHJlcykgeworCQl0LkVycm9yKCJXcm9uZyBkZWNhcHN1bGF0aW9uIHJlc3VsdCIpCisJ
fQorfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBCZW5jaG1hcmtpbmcKKyAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLworCitmdW5jIEJlbmNobWFya1NpZGhLZXlBZ3JlZW1lbnQoYiAqdGVzdGluZy5C
KSB7CisJLy8gS2V5UGFpcnMKKwlhbGljZVB1YmxpYyA6PSBjb252VG9QdWIodGRhdGEuUGtBX3Np
ZGgsIEtleVZhcmlhbnRfU0lESF9BKQorCWFsaWNlUHJpdmF0ZSA6PSBjb252VG9QcnYodGRhdGEu
UHJBX3NpZGgsIEtleVZhcmlhbnRfU0lESF9BKQorCWJvYlB1YmxpYyA6PSBjb252VG9QdWIodGRh
dGEuUGtCX3NpZGgsIEtleVZhcmlhbnRfU0lESF9CKQorCWJvYlByaXZhdGUgOj0gY29udlRvUHJ2
KHRkYXRhLlByQl9zaWRoLCBLZXlWYXJpYW50X1NJREhfQikKKworCWZvciBpIDo9IDA7IGkgPCBi
Lk47IGkrKyB7CisJCS8vIERlcml2ZSBzaGFyZWQgc2VjcmV0CisJCURlcml2ZVNlY3JldChib2JQ
cml2YXRlLCBhbGljZVB1YmxpYykKKwkJRGVyaXZlU2VjcmV0KGFsaWNlUHJpdmF0ZSwgYm9iUHVi
bGljKQorCX0KK30KKworZnVuYyBCZW5jaG1hcmtBbGljZUtleUdlblBydihiICp0ZXN0aW5nLkIp
IHsKKwlwcnYgOj0gTmV3UHJpdmF0ZUtleShLZXlWYXJpYW50X1NJREhfQSkKKwlmb3IgbiA6PSAw
OyBuIDwgYi5OOyBuKysgeworCQlwcnYuR2VuZXJhdGUocmFuZC5SZWFkZXIpCisJfQorfQorCitm
dW5jIEJlbmNobWFya0JvYktleUdlblBydihiICp0ZXN0aW5nLkIpIHsKKwlwcnYgOj0gTmV3UHJp
dmF0ZUtleShLZXlWYXJpYW50X1NJREhfQikKKwlmb3IgbiA6PSAwOyBuIDwgYi5OOyBuKysgewor
CQlwcnYuR2VuZXJhdGUocmFuZC5SZWFkZXIpCisJfQorfQorCitmdW5jIEJlbmNobWFya0FsaWNl
S2V5R2VuUHViKGIgKnRlc3RpbmcuQikgeworCXBydiA6PSBOZXdQcml2YXRlS2V5KEtleVZhcmlh
bnRfU0lESF9BKQorCXBydi5HZW5lcmF0ZShyYW5kLlJlYWRlcikKKwlmb3IgbiA6PSAwOyBuIDwg
Yi5OOyBuKysgeworCQlwcnYuR2VuZXJhdGVQdWJsaWNLZXkoKQorCX0KK30KKworZnVuYyBCZW5j
aG1hcmtCb2JLZXlHZW5QdWIoYiAqdGVzdGluZy5CKSB7CisJcHJ2IDo9IE5ld1ByaXZhdGVLZXko
S2V5VmFyaWFudF9TSURIX0IpCisJcHJ2LkdlbmVyYXRlKHJhbmQuUmVhZGVyKQorCWZvciBuIDo9
IDA7IG4gPCBiLk47IG4rKyB7CisJCXBydi5HZW5lcmF0ZVB1YmxpY0tleSgpCisJfQorfQorCitm
dW5jIEJlbmNobWFya1NoYXJlZFNlY3JldEFsaWNlKGIgKnRlc3RpbmcuQikgeworCWFQciA6PSBj
b252VG9QcnYodGRhdGEuUHJBX3NpZGgsIEtleVZhcmlhbnRfU0lESF9BKQorCWJQayA6PSBjb252
VG9QdWIodGRhdGEuUGtCX3Npa2UsIEtleVZhcmlhbnRfU0lESF9CKQorCWZvciBuIDo9IDA7IG4g
PCBiLk47IG4rKyB7CisJCURlcml2ZVNlY3JldChhUHIsIGJQaykKKwl9Cit9CisKK2Z1bmMgQmVu
Y2htYXJrU2hhcmVkU2VjcmV0Qm9iKGIgKnRlc3RpbmcuQikgeworCS8vIG1fQiA9IDMqcmFuZGlu
dCgwLDNeMjM4KQorCWFQayA6PSBjb252VG9QdWIodGRhdGEuUGtBX3NpZGgsIEtleVZhcmlhbnRf
U0lESF9BKQorCWJQciA6PSBjb252VG9QcnYodGRhdGEuUHJCX3NpZGgsIEtleVZhcmlhbnRfU0lE
SF9CKQorCWZvciBuIDo9IDA7IG4gPCBiLk47IG4rKyB7CisJCURlcml2ZVNlY3JldChiUHIsIGFQ
aykKKwl9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3QvcnVubmVyL3Rscy5nbyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9z
c2wvdGVzdC9ydW5uZXIvdGxzLmdvCmluZGV4IDEyOGQyMmU0YTcxMDY4M2E0NDRkYTM3OTNmYjgw
NDMyMjA5OWFjZDIuLjE4NjJiM2Q4ZTIyZWI0NjkzOWNhYThhNzE5MzAzMmY3MDBiMzk5MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9zc2wvdGVzdC9ydW5uZXIvdGxzLmdvCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9y
dW5uZXIvdGxzLmdvCkBAIC0yNzYsMTUgKzI3NiwxMyBAQCBmdW5jIGlzRWQyNTUxOUNlcnRpZmlj
YXRlKGNlcnQgKng1MDkuQ2VydGlmaWNhdGUpIGJvb2wgewogfQogCiBmdW5jIGdldENlcnRpZmlj
YXRlUHVibGljS2V5KGNlcnQgKng1MDkuQ2VydGlmaWNhdGUpIGNyeXB0by5QdWJsaWNLZXkgewot
CWlmIGNlcnQuUHVibGljS2V5ICE9IG5pbCB7Ci0JCXJldHVybiBjZXJ0LlB1YmxpY0tleQotCX0K
LQorCS8vIFRPRE8oZGF2aWRiZW4pOiBXaGVuIEdvIDEuMTMgaXMgcmVsZWFzZWQsIHVzZSB0aGUg
RWQyNTUxOSBzdXBwb3J0IGluCisJLy8gdGhlIHN0YW5kYXJkIGxpYnJhcnkuCiAJaWYgaXNFZDI1
NTE5Q2VydGlmaWNhdGUoY2VydCkgewogCQlyZXR1cm4gZWQyNTUxOS5QdWJsaWNLZXkoY2VydC5S
YXdTdWJqZWN0UHVibGljS2V5SW5mb1tsZW4oZWQyNTUxOVNQS0lQcmVmaXgpOl0pCiAJfQogCi0J
cmV0dXJuIG5pbAorCXJldHVybiBjZXJ0LlB1YmxpY0tleQogfQogCiB2YXIgZWQyNTUxOVBLQ1M4
UHJlZml4ID0gW11ieXRlezB4MzAsIDB4MmUsIDB4MDIsIDB4MDEsIDB4MDAsIDB4MzAsIDB4MDUs
IDB4MDYsIDB4MDMsIDB4MmIsIDB4NjUsIDB4NzAsCkBAIC0yOTQsNiArMjkyLDEyIEBAIHZhciBl
ZDI1NTE5UEtDUzhQcmVmaXggPSBbXWJ5dGV7MHgzMCwgMHgyZSwgMHgwMiwgMHgwMSwgMHgwMCwg
MHgzMCwgMHgwNSwgMHgwNiwKIC8vIFBLQ1MjMSBwcml2YXRlIGtleXMgYnkgZGVmYXVsdCwgd2hp
bGUgT3BlblNTTCAxLjAuMCBnZW5lcmF0ZXMgUEtDUyM4IGtleXMuCiAvLyBPcGVuU1NMIGVjcGFy
YW0gZ2VuZXJhdGVzIFNFQzEgRUMgcHJpdmF0ZSBrZXlzIGZvciBFQ0RTQS4gV2UgdHJ5IGFsbCB0
aHJlZS4KIGZ1bmMgcGFyc2VQcml2YXRlS2V5KGRlciBbXWJ5dGUpIChjcnlwdG8uUHJpdmF0ZUtl
eSwgZXJyb3IpIHsKKwkvLyBUT0RPKGRhdmlkYmVuKTogV2hlbiBHbyAxLjEzIGlzIHJlbGVhc2Vk
LCB1c2UgdGhlIEVkMjU1MTkgc3VwcG9ydCBpbgorCS8vIHRoZSBzdGFuZGFyZCBsaWJyYXJ5Lgor
CWlmIGJ5dGVzLkhhc1ByZWZpeChkZXIsIGVkMjU1MTlQS0NTOFByZWZpeCkgJiYgbGVuKGRlcikg
PT0gbGVuKGVkMjU1MTlQS0NTOFByZWZpeCkrMzIgeworCQlzZWVkIDo9IGRlcltsZW4oZWQyNTUx
OVBLQ1M4UHJlZml4KTpdCisJCXJldHVybiBlZDI1NTE5Lk5ld0tleUZyb21TZWVkKHNlZWQpLCBu
aWwKKwl9CiAJaWYga2V5LCBlcnIgOj0geDUwOS5QYXJzZVBLQ1MxUHJpdmF0ZUtleShkZXIpOyBl
cnIgPT0gbmlsIHsKIAkJcmV0dXJuIGtleSwgbmlsCiAJfQpAQCAtMzA5LDEwICszMTMsNSBAQCBm
dW5jIHBhcnNlUHJpdmF0ZUtleShkZXIgW11ieXRlKSAoY3J5cHRvLlByaXZhdGVLZXksIGVycm9y
KSB7CiAJCXJldHVybiBrZXksIG5pbAogCX0KIAotCWlmIGJ5dGVzLkhhc1ByZWZpeChkZXIsIGVk
MjU1MTlQS0NTOFByZWZpeCkgJiYgbGVuKGRlcikgPT0gbGVuKGVkMjU1MTlQS0NTOFByZWZpeCkr
MzIgewotCQlzZWVkIDo9IGRlcltsZW4oZWQyNTUxOVBLQ1M4UHJlZml4KTpdCi0JCXJldHVybiBl
ZDI1NTE5Lk5ld0tleUZyb21TZWVkKHNlZWQpLCBuaWwKLQl9Ci0KIAlyZXR1cm4gbmlsLCBlcnJv
cnMuTmV3KCJjcnlwdG8vdGxzOiBmYWlsZWQgdG8gcGFyc2UgcHJpdmF0ZSBrZXkiKQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3NldHRpbmdzX3dyaXRlci5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC9z
ZXR0aW5nc193cml0ZXIuY2MKaW5kZXggNjYwMjVmNmU4MmVjYmQ5ZDdjZDY3NDgxZmY5MmRkMzBl
MzA2M2M0OC4uZmU4ZDQyZTkwOGU5NWE1ZDQ5MmViN2EzZjYyYWIzYzQ3YWZmMmJlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3NzbC90ZXN0L3NldHRpbmdzX3dyaXRlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rlc3Qv
c2V0dGluZ3Nfd3JpdGVyLmNjCkBAIC01OSwxMiArNTksNiBAQCBib29sIFNldHRpbmdzV3JpdGVy
OjpJbml0KGludCBpLCBjb25zdCBUZXN0Q29uZmlnICpjb25maWcsCiAgICAgcmV0dXJuIGZhbHNl
OwogICB9CiAKLSAgaWYgKGNvbmZpZy0+dGxzMTNfdmFyaWFudCAhPSAwICYmCi0gICAgICAoIUNC
Ql9hZGRfdTE2KGNiYl8uZ2V0KCksIGtUTFMxM1ZhcmlhbnQpIHx8Ci0gICAgICAgIUNCQl9hZGRf
dTgoY2JiXy5nZXQoKSwgc3RhdGljX2Nhc3Q8dWludDhfdD4oY29uZmlnLT50bHMxM192YXJpYW50
KSkpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy9zc2wvdGVzdC90ZXN0X2NvbmZpZy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGVzdC90ZXN0
X2NvbmZpZy5jYwppbmRleCA3NDQ3ZDVhZDY0YzJmNjEyNGU3NTVjZjU0MTUzMTlhNDBmOGIyOWYx
Li5iZDMyY2U5ZDlkODQ1N2RiODZkNmE1NTE0OThiODFmYjA1NWIxMDBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvc3NsL3Rlc3QvdGVzdF9jb25maWcuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3Rlc3RfY29uZmln
LmNjCkBAIC01MSwxNzkgKzUxLDE4MiBAQCBUICpGaW5kRmllbGQoVGVzdENvbmZpZyAqY29uZmln
LCBjb25zdCBGbGFnPFQ+ICgmZmxhZ3MpW05dLCBjb25zdCBjaGFyICpmbGFnKSB7CiB9CiAKIGNv
bnN0IEZsYWc8Ym9vbD4ga0Jvb2xGbGFnc1tdID0gewotICB7ICItc2VydmVyIiwgJlRlc3RDb25m
aWc6OmlzX3NlcnZlciB9LAotICB7ICItZHRscyIsICZUZXN0Q29uZmlnOjppc19kdGxzIH0sCi0g
IHsgIi1mYWxsYmFjay1zY3N2IiwgJlRlc3RDb25maWc6OmZhbGxiYWNrX3Njc3YgfSwKLSAgeyAi
LXJlcXVpcmUtYW55LWNsaWVudC1jZXJ0aWZpY2F0ZSIsCi0gICAgJlRlc3RDb25maWc6OnJlcXVp
cmVfYW55X2NsaWVudF9jZXJ0aWZpY2F0ZSB9LAotICB7ICItZmFsc2Utc3RhcnQiLCAmVGVzdENv
bmZpZzo6ZmFsc2Vfc3RhcnQgfSwKLSAgeyAiLWFzeW5jIiwgJlRlc3RDb25maWc6OmFzeW5jIH0s
Ci0gIHsgIi13cml0ZS1kaWZmZXJlbnQtcmVjb3JkLXNpemVzIiwKLSAgICAmVGVzdENvbmZpZzo6
d3JpdGVfZGlmZmVyZW50X3JlY29yZF9zaXplcyB9LAotICB7ICItY2JjLXJlY29yZC1zcGxpdHRp
bmciLCAmVGVzdENvbmZpZzo6Y2JjX3JlY29yZF9zcGxpdHRpbmcgfSwKLSAgeyAiLXBhcnRpYWwt
d3JpdGUiLCAmVGVzdENvbmZpZzo6cGFydGlhbF93cml0ZSB9LAotICB7ICItbm8tdGxzMTMiLCAm
VGVzdENvbmZpZzo6bm9fdGxzMTMgfSwKLSAgeyAiLW5vLXRsczEyIiwgJlRlc3RDb25maWc6Om5v
X3RsczEyIH0sCi0gIHsgIi1uby10bHMxMSIsICZUZXN0Q29uZmlnOjpub190bHMxMSB9LAotICB7
ICItbm8tdGxzMSIsICZUZXN0Q29uZmlnOjpub190bHMxIH0sCi0gIHsgIi1uby10aWNrZXQiLCAm
VGVzdENvbmZpZzo6bm9fdGlja2V0IH0sCi0gIHsgIi1lbmFibGUtY2hhbm5lbC1pZCIsICZUZXN0
Q29uZmlnOjplbmFibGVfY2hhbm5lbF9pZCB9LAotICB7ICItc2hpbS13cml0ZXMtZmlyc3QiLCAm
VGVzdENvbmZpZzo6c2hpbV93cml0ZXNfZmlyc3QgfSwKLSAgeyAiLWV4cGVjdC1zZXNzaW9uLW1p
c3MiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3Nlc3Npb25fbWlzcyB9LAotICB7ICItZGVjbGluZS1h
bHBuIiwgJlRlc3RDb25maWc6OmRlY2xpbmVfYWxwbiB9LAotICB7ICItc2VsZWN0LWVtcHR5LWFs
cG4iLCAmVGVzdENvbmZpZzo6c2VsZWN0X2VtcHR5X2FscG4gfSwKLSAgeyAiLWV4cGVjdC1leHRl
bmRlZC1tYXN0ZXItc2VjcmV0IiwKLSAgICAmVGVzdENvbmZpZzo6ZXhwZWN0X2V4dGVuZGVkX21h
c3Rlcl9zZWNyZXQgfSwKLSAgeyAiLWVuYWJsZS1vY3NwLXN0YXBsaW5nIiwgJlRlc3RDb25maWc6
OmVuYWJsZV9vY3NwX3N0YXBsaW5nIH0sCi0gIHsgIi1lbmFibGUtc2lnbmVkLWNlcnQtdGltZXN0
YW1wcyIsCi0gICAgJlRlc3RDb25maWc6OmVuYWJsZV9zaWduZWRfY2VydF90aW1lc3RhbXBzIH0s
Ci0gIHsgIi1pbXBsaWNpdC1oYW5kc2hha2UiLCAmVGVzdENvbmZpZzo6aW1wbGljaXRfaGFuZHNo
YWtlIH0sCi0gIHsgIi11c2UtZWFybHktY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6dXNlX2Vhcmx5
X2NhbGxiYWNrIH0sCi0gIHsgIi1mYWlsLWVhcmx5LWNhbGxiYWNrIiwgJlRlc3RDb25maWc6OmZh
aWxfZWFybHlfY2FsbGJhY2sgfSwKLSAgeyAiLWluc3RhbGwtZGRvcy1jYWxsYmFjayIsICZUZXN0
Q29uZmlnOjppbnN0YWxsX2Rkb3NfY2FsbGJhY2sgfSwKLSAgeyAiLWZhaWwtZGRvcy1jYWxsYmFj
ayIsICZUZXN0Q29uZmlnOjpmYWlsX2Rkb3NfY2FsbGJhY2sgfSwKLSAgeyAiLWZhaWwtY2VydC1j
YWxsYmFjayIsICZUZXN0Q29uZmlnOjpmYWlsX2NlcnRfY2FsbGJhY2sgfSwKLSAgeyAiLWhhbmRz
aGFrZS1uZXZlci1kb25lIiwgJlRlc3RDb25maWc6OmhhbmRzaGFrZV9uZXZlcl9kb25lIH0sCi0g
IHsgIi11c2UtZXhwb3J0LWNvbnRleHQiLCAmVGVzdENvbmZpZzo6dXNlX2V4cG9ydF9jb250ZXh0
IH0sCi0gIHsgIi10bHMtdW5pcXVlIiwgJlRlc3RDb25maWc6OnRsc191bmlxdWUgfSwKLSAgeyAi
LWV4cGVjdC10aWNrZXQtcmVuZXdhbCIsICZUZXN0Q29uZmlnOjpleHBlY3RfdGlja2V0X3JlbmV3
YWwgfSwKLSAgeyAiLWV4cGVjdC1uby1zZXNzaW9uIiwgJlRlc3RDb25maWc6OmV4cGVjdF9ub19z
ZXNzaW9uIH0sCi0gIHsgIi1leHBlY3QtdGlja2V0LXN1cHBvcnRzLWVhcmx5LWRhdGEiLAotICAg
ICZUZXN0Q29uZmlnOjpleHBlY3RfdGlja2V0X3N1cHBvcnRzX2Vhcmx5X2RhdGEgfSwKLSAgeyAi
LXVzZS10aWNrZXQtY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6dXNlX3RpY2tldF9jYWxsYmFjayB9
LAotICB7ICItcmVuZXctdGlja2V0IiwgJlRlc3RDb25maWc6OnJlbmV3X3RpY2tldCB9LAotICB7
ICItZW5hYmxlLWVhcmx5LWRhdGEiLCAmVGVzdENvbmZpZzo6ZW5hYmxlX2Vhcmx5X2RhdGEgfSwK
LSAgeyAiLWNoZWNrLWNsb3NlLW5vdGlmeSIsICZUZXN0Q29uZmlnOjpjaGVja19jbG9zZV9ub3Rp
ZnkgfSwKLSAgeyAiLXNoaW0tc2h1dHMtZG93biIsICZUZXN0Q29uZmlnOjpzaGltX3NodXRzX2Rv
d24gfSwKLSAgeyAiLXZlcmlmeS1mYWlsIiwgJlRlc3RDb25maWc6OnZlcmlmeV9mYWlsIH0sCi0g
IHsgIi12ZXJpZnktcGVlciIsICZUZXN0Q29uZmlnOjp2ZXJpZnlfcGVlciB9LAotICB7ICItdmVy
aWZ5LXBlZXItaWYtbm8tb2JjIiwgJlRlc3RDb25maWc6OnZlcmlmeV9wZWVyX2lmX25vX29iYyB9
LAotICB7ICItZXhwZWN0LXZlcmlmeS1yZXN1bHQiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3Zlcmlm
eV9yZXN1bHQgfSwKLSAgeyAiLXJlbmVnb3RpYXRlLW9uY2UiLCAmVGVzdENvbmZpZzo6cmVuZWdv
dGlhdGVfb25jZSB9LAotICB7ICItcmVuZWdvdGlhdGUtZnJlZWx5IiwgJlRlc3RDb25maWc6OnJl
bmVnb3RpYXRlX2ZyZWVseSB9LAotICB7ICItcmVuZWdvdGlhdGUtaWdub3JlIiwgJlRlc3RDb25m
aWc6OnJlbmVnb3RpYXRlX2lnbm9yZSB9LAotICB7ICItZm9yYmlkLXJlbmVnb3RpYXRpb24tYWZ0
ZXItaGFuZHNoYWtlIiwKLSAgICAmVGVzdENvbmZpZzo6Zm9yYmlkX3JlbmVnb3RpYXRpb25fYWZ0
ZXJfaGFuZHNoYWtlIH0sCi0gIHsgIi1wMzg0LW9ubHkiLCAmVGVzdENvbmZpZzo6cDM4NF9vbmx5
IH0sCi0gIHsgIi1lbmFibGUtYWxsLWN1cnZlcyIsICZUZXN0Q29uZmlnOjplbmFibGVfYWxsX2N1
cnZlcyB9LAotICB7ICItdXNlLW9sZC1jbGllbnQtY2VydC1jYWxsYmFjayIsCi0gICAgJlRlc3RD
b25maWc6OnVzZV9vbGRfY2xpZW50X2NlcnRfY2FsbGJhY2sgfSwKLSAgeyAiLXNlbmQtYWxlcnQi
LCAmVGVzdENvbmZpZzo6c2VuZF9hbGVydCB9LAotICB7ICItcGVlay10aGVuLXJlYWQiLCAmVGVz
dENvbmZpZzo6cGVla190aGVuX3JlYWQgfSwKLSAgeyAiLWVuYWJsZS1ncmVhc2UiLCAmVGVzdENv
bmZpZzo6ZW5hYmxlX2dyZWFzZSB9LAotICB7ICItdXNlLWV4cG9ydGVyLWJldHdlZW4tcmVhZHMi
LCAmVGVzdENvbmZpZzo6dXNlX2V4cG9ydGVyX2JldHdlZW5fcmVhZHMgfSwKLSAgeyAiLXJldGFp
bi1vbmx5LXNoYTI1Ni1jbGllbnQtY2VydCIsCi0gICAgJlRlc3RDb25maWc6OnJldGFpbl9vbmx5
X3NoYTI1Nl9jbGllbnRfY2VydCB9LAotICB7ICItZXhwZWN0LXNoYTI1Ni1jbGllbnQtY2VydCIs
Ci0gICAgJlRlc3RDb25maWc6OmV4cGVjdF9zaGEyNTZfY2xpZW50X2NlcnQgfSwKLSAgeyAiLXJl
YWQtd2l0aC11bmZpbmlzaGVkLXdyaXRlIiwgJlRlc3RDb25maWc6OnJlYWRfd2l0aF91bmZpbmlz
aGVkX3dyaXRlIH0sCi0gIHsgIi1leHBlY3Qtc2VjdXJlLXJlbmVnb3RpYXRpb24iLAotICAgICZU
ZXN0Q29uZmlnOjpleHBlY3Rfc2VjdXJlX3JlbmVnb3RpYXRpb24gfSwKLSAgeyAiLWV4cGVjdC1u
by1zZWN1cmUtcmVuZWdvdGlhdGlvbiIsCi0gICAgJlRlc3RDb25maWc6OmV4cGVjdF9ub19zZWN1
cmVfcmVuZWdvdGlhdGlvbiB9LAotICB7ICItZXhwZWN0LXNlc3Npb24taWQiLCAmVGVzdENvbmZp
Zzo6ZXhwZWN0X3Nlc3Npb25faWQgfSwKLSAgeyAiLWV4cGVjdC1uby1zZXNzaW9uLWlkIiwgJlRl
c3RDb25maWc6OmV4cGVjdF9ub19zZXNzaW9uX2lkIH0sCi0gIHsgIi1leHBlY3QtYWNjZXB0LWVh
cmx5LWRhdGEiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X2FjY2VwdF9lYXJseV9kYXRhIH0sCi0gIHsg
Ii1leHBlY3QtcmVqZWN0LWVhcmx5LWRhdGEiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3JlamVjdF9l
YXJseV9kYXRhIH0sCi0gIHsgIi1leHBlY3Qtbm8tb2ZmZXItZWFybHktZGF0YSIsICZUZXN0Q29u
ZmlnOjpleHBlY3Rfbm9fb2ZmZXJfZWFybHlfZGF0YSB9LAotICB7ICItbm8tb3AtZXh0cmEtaGFu
ZHNoYWtlIiwgJlRlc3RDb25maWc6Om5vX29wX2V4dHJhX2hhbmRzaGFrZSB9LAotICB7ICItaGFu
ZHNoYWtlLXR3aWNlIiwgJlRlc3RDb25maWc6OmhhbmRzaGFrZV90d2ljZSB9LAotICB7ICItYWxs
b3ctdW5rbm93bi1hbHBuLXByb3RvcyIsICZUZXN0Q29uZmlnOjphbGxvd191bmtub3duX2FscG5f
cHJvdG9zIH0sCi0gIHsgIi1lbmFibGUtZWQyNTUxOSIsICZUZXN0Q29uZmlnOjplbmFibGVfZWQy
NTUxOSB9LAotICB7ICItdXNlLWN1c3RvbS12ZXJpZnktY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6
dXNlX2N1c3RvbV92ZXJpZnlfY2FsbGJhY2sgfSwKLSAgeyAiLWFsbG93LWZhbHNlLXN0YXJ0LXdp
dGhvdXQtYWxwbiIsCi0gICAgJlRlc3RDb25maWc6OmFsbG93X2ZhbHNlX3N0YXJ0X3dpdGhvdXRf
YWxwbiB9LAotICB7ICItaWdub3JlLXRsczEzLWRvd25ncmFkZSIsICZUZXN0Q29uZmlnOjppZ25v
cmVfdGxzMTNfZG93bmdyYWRlIH0sCi0gIHsgIi1leHBlY3QtdGxzMTMtZG93bmdyYWRlIiwgJlRl
c3RDb25maWc6OmV4cGVjdF90bHMxM19kb3duZ3JhZGUgfSwKLSAgeyAiLWhhbmRvZmYiLCAmVGVz
dENvbmZpZzo6aGFuZG9mZiB9LAotICB7ICItbm8tcnNhLXBzcy1yc2FlLWNlcnRzIiwgJlRlc3RD
b25maWc6Om5vX3JzYV9wc3NfcnNhZV9jZXJ0cyB9LAotICB7ICItdXNlLW9jc3AtY2FsbGJhY2si
LCAmVGVzdENvbmZpZzo6dXNlX29jc3BfY2FsbGJhY2sgfSwKLSAgeyAiLXNldC1vY3NwLWluLWNh
bGxiYWNrIiwgJlRlc3RDb25maWc6OnNldF9vY3NwX2luX2NhbGxiYWNrIH0sCi0gIHsgIi1kZWNs
aW5lLW9jc3AtY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6ZGVjbGluZV9vY3NwX2NhbGxiYWNrIH0s
Ci0gIHsgIi1mYWlsLW9jc3AtY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6ZmFpbF9vY3NwX2NhbGxi
YWNrIH0sCi0gIHsgIi1pbnN0YWxsLWNlcnQtY29tcHJlc3Npb24tYWxncyIsCi0gICAgJlRlc3RD
b25maWc6Omluc3RhbGxfY2VydF9jb21wcmVzc2lvbl9hbGdzIH0sCi0gIHsgIi1pcy1oYW5kc2hh
a2VyLXN1cHBvcnRlZCIsICZUZXN0Q29uZmlnOjppc19oYW5kc2hha2VyX3N1cHBvcnRlZCB9LAot
ICB7ICItaGFuZHNoYWtlci1yZXN1bWUiLCAmVGVzdENvbmZpZzo6aGFuZHNoYWtlcl9yZXN1bWUg
fSwKLSAgeyAiLXJldmVyaWZ5LW9uLXJlc3VtZSIsICZUZXN0Q29uZmlnOjpyZXZlcmlmeV9vbl9y
ZXN1bWUgfSwKLSAgeyAiLWpkazExLXdvcmthcm91bmQiLCAmVGVzdENvbmZpZzo6amRrMTFfd29y
a2Fyb3VuZCB9LAorICAgIHsiLXNlcnZlciIsICZUZXN0Q29uZmlnOjppc19zZXJ2ZXJ9LAorICAg
IHsiLWR0bHMiLCAmVGVzdENvbmZpZzo6aXNfZHRsc30sCisgICAgeyItZmFsbGJhY2stc2NzdiIs
ICZUZXN0Q29uZmlnOjpmYWxsYmFja19zY3N2fSwKKyAgICB7Ii1yZXF1aXJlLWFueS1jbGllbnQt
Y2VydGlmaWNhdGUiLAorICAgICAmVGVzdENvbmZpZzo6cmVxdWlyZV9hbnlfY2xpZW50X2NlcnRp
ZmljYXRlfSwKKyAgICB7Ii1mYWxzZS1zdGFydCIsICZUZXN0Q29uZmlnOjpmYWxzZV9zdGFydH0s
CisgICAgeyItYXN5bmMiLCAmVGVzdENvbmZpZzo6YXN5bmN9LAorICAgIHsiLXdyaXRlLWRpZmZl
cmVudC1yZWNvcmQtc2l6ZXMiLAorICAgICAmVGVzdENvbmZpZzo6d3JpdGVfZGlmZmVyZW50X3Jl
Y29yZF9zaXplc30sCisgICAgeyItY2JjLXJlY29yZC1zcGxpdHRpbmciLCAmVGVzdENvbmZpZzo6
Y2JjX3JlY29yZF9zcGxpdHRpbmd9LAorICAgIHsiLXBhcnRpYWwtd3JpdGUiLCAmVGVzdENvbmZp
Zzo6cGFydGlhbF93cml0ZX0sCisgICAgeyItbm8tdGxzMTMiLCAmVGVzdENvbmZpZzo6bm9fdGxz
MTN9LAorICAgIHsiLW5vLXRsczEyIiwgJlRlc3RDb25maWc6Om5vX3RsczEyfSwKKyAgICB7Ii1u
by10bHMxMSIsICZUZXN0Q29uZmlnOjpub190bHMxMX0sCisgICAgeyItbm8tdGxzMSIsICZUZXN0
Q29uZmlnOjpub190bHMxfSwKKyAgICB7Ii1uby10aWNrZXQiLCAmVGVzdENvbmZpZzo6bm9fdGlj
a2V0fSwKKyAgICB7Ii1lbmFibGUtY2hhbm5lbC1pZCIsICZUZXN0Q29uZmlnOjplbmFibGVfY2hh
bm5lbF9pZH0sCisgICAgeyItc2hpbS13cml0ZXMtZmlyc3QiLCAmVGVzdENvbmZpZzo6c2hpbV93
cml0ZXNfZmlyc3R9LAorICAgIHsiLWV4cGVjdC1zZXNzaW9uLW1pc3MiLCAmVGVzdENvbmZpZzo6
ZXhwZWN0X3Nlc3Npb25fbWlzc30sCisgICAgeyItZGVjbGluZS1hbHBuIiwgJlRlc3RDb25maWc6
OmRlY2xpbmVfYWxwbn0sCisgICAgeyItc2VsZWN0LWVtcHR5LWFscG4iLCAmVGVzdENvbmZpZzo6
c2VsZWN0X2VtcHR5X2FscG59LAorICAgIHsiLWV4cGVjdC1leHRlbmRlZC1tYXN0ZXItc2VjcmV0
IiwKKyAgICAgJlRlc3RDb25maWc6OmV4cGVjdF9leHRlbmRlZF9tYXN0ZXJfc2VjcmV0fSwKKyAg
ICB7Ii1lbmFibGUtb2NzcC1zdGFwbGluZyIsICZUZXN0Q29uZmlnOjplbmFibGVfb2NzcF9zdGFw
bGluZ30sCisgICAgeyItZW5hYmxlLXNpZ25lZC1jZXJ0LXRpbWVzdGFtcHMiLAorICAgICAmVGVz
dENvbmZpZzo6ZW5hYmxlX3NpZ25lZF9jZXJ0X3RpbWVzdGFtcHN9LAorICAgIHsiLWltcGxpY2l0
LWhhbmRzaGFrZSIsICZUZXN0Q29uZmlnOjppbXBsaWNpdF9oYW5kc2hha2V9LAorICAgIHsiLXVz
ZS1lYXJseS1jYWxsYmFjayIsICZUZXN0Q29uZmlnOjp1c2VfZWFybHlfY2FsbGJhY2t9LAorICAg
IHsiLWZhaWwtZWFybHktY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6ZmFpbF9lYXJseV9jYWxsYmFj
a30sCisgICAgeyItaW5zdGFsbC1kZG9zLWNhbGxiYWNrIiwgJlRlc3RDb25maWc6Omluc3RhbGxf
ZGRvc19jYWxsYmFja30sCisgICAgeyItZmFpbC1kZG9zLWNhbGxiYWNrIiwgJlRlc3RDb25maWc6
OmZhaWxfZGRvc19jYWxsYmFja30sCisgICAgeyItZmFpbC1jZXJ0LWNhbGxiYWNrIiwgJlRlc3RD
b25maWc6OmZhaWxfY2VydF9jYWxsYmFja30sCisgICAgeyItaGFuZHNoYWtlLW5ldmVyLWRvbmUi
LCAmVGVzdENvbmZpZzo6aGFuZHNoYWtlX25ldmVyX2RvbmV9LAorICAgIHsiLXVzZS1leHBvcnQt
Y29udGV4dCIsICZUZXN0Q29uZmlnOjp1c2VfZXhwb3J0X2NvbnRleHR9LAorICAgIHsiLXRscy11
bmlxdWUiLCAmVGVzdENvbmZpZzo6dGxzX3VuaXF1ZX0sCisgICAgeyItZXhwZWN0LXRpY2tldC1y
ZW5ld2FsIiwgJlRlc3RDb25maWc6OmV4cGVjdF90aWNrZXRfcmVuZXdhbH0sCisgICAgeyItZXhw
ZWN0LW5vLXNlc3Npb24iLCAmVGVzdENvbmZpZzo6ZXhwZWN0X25vX3Nlc3Npb259LAorICAgIHsi
LWV4cGVjdC10aWNrZXQtc3VwcG9ydHMtZWFybHktZGF0YSIsCisgICAgICZUZXN0Q29uZmlnOjpl
eHBlY3RfdGlja2V0X3N1cHBvcnRzX2Vhcmx5X2RhdGF9LAorICAgIHsiLXVzZS10aWNrZXQtY2Fs
bGJhY2siLCAmVGVzdENvbmZpZzo6dXNlX3RpY2tldF9jYWxsYmFja30sCisgICAgeyItcmVuZXct
dGlja2V0IiwgJlRlc3RDb25maWc6OnJlbmV3X3RpY2tldH0sCisgICAgeyItZW5hYmxlLWVhcmx5
LWRhdGEiLCAmVGVzdENvbmZpZzo6ZW5hYmxlX2Vhcmx5X2RhdGF9LAorICAgIHsiLWNoZWNrLWNs
b3NlLW5vdGlmeSIsICZUZXN0Q29uZmlnOjpjaGVja19jbG9zZV9ub3RpZnl9LAorICAgIHsiLXNo
aW0tc2h1dHMtZG93biIsICZUZXN0Q29uZmlnOjpzaGltX3NodXRzX2Rvd259LAorICAgIHsiLXZl
cmlmeS1mYWlsIiwgJlRlc3RDb25maWc6OnZlcmlmeV9mYWlsfSwKKyAgICB7Ii12ZXJpZnktcGVl
ciIsICZUZXN0Q29uZmlnOjp2ZXJpZnlfcGVlcn0sCisgICAgeyItdmVyaWZ5LXBlZXItaWYtbm8t
b2JjIiwgJlRlc3RDb25maWc6OnZlcmlmeV9wZWVyX2lmX25vX29iY30sCisgICAgeyItZXhwZWN0
LXZlcmlmeS1yZXN1bHQiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3ZlcmlmeV9yZXN1bHR9LAorICAg
IHsiLXJlbmVnb3RpYXRlLW9uY2UiLCAmVGVzdENvbmZpZzo6cmVuZWdvdGlhdGVfb25jZX0sCisg
ICAgeyItcmVuZWdvdGlhdGUtZnJlZWx5IiwgJlRlc3RDb25maWc6OnJlbmVnb3RpYXRlX2ZyZWVs
eX0sCisgICAgeyItcmVuZWdvdGlhdGUtaWdub3JlIiwgJlRlc3RDb25maWc6OnJlbmVnb3RpYXRl
X2lnbm9yZX0sCisgICAgeyItZm9yYmlkLXJlbmVnb3RpYXRpb24tYWZ0ZXItaGFuZHNoYWtlIiwK
KyAgICAgJlRlc3RDb25maWc6OmZvcmJpZF9yZW5lZ290aWF0aW9uX2FmdGVyX2hhbmRzaGFrZX0s
CisgICAgeyItZW5hYmxlLWFsbC1jdXJ2ZXMiLCAmVGVzdENvbmZpZzo6ZW5hYmxlX2FsbF9jdXJ2
ZXN9LAorICAgIHsiLXVzZS1vbGQtY2xpZW50LWNlcnQtY2FsbGJhY2siLAorICAgICAmVGVzdENv
bmZpZzo6dXNlX29sZF9jbGllbnRfY2VydF9jYWxsYmFja30sCisgICAgeyItc2VuZC1hbGVydCIs
ICZUZXN0Q29uZmlnOjpzZW5kX2FsZXJ0fSwKKyAgICB7Ii1wZWVrLXRoZW4tcmVhZCIsICZUZXN0
Q29uZmlnOjpwZWVrX3RoZW5fcmVhZH0sCisgICAgeyItZW5hYmxlLWdyZWFzZSIsICZUZXN0Q29u
ZmlnOjplbmFibGVfZ3JlYXNlfSwKKyAgICB7Ii11c2UtZXhwb3J0ZXItYmV0d2Vlbi1yZWFkcyIs
ICZUZXN0Q29uZmlnOjp1c2VfZXhwb3J0ZXJfYmV0d2Vlbl9yZWFkc30sCisgICAgeyItcmV0YWlu
LW9ubHktc2hhMjU2LWNsaWVudC1jZXJ0IiwKKyAgICAgJlRlc3RDb25maWc6OnJldGFpbl9vbmx5
X3NoYTI1Nl9jbGllbnRfY2VydH0sCisgICAgeyItZXhwZWN0LXNoYTI1Ni1jbGllbnQtY2VydCIs
ICZUZXN0Q29uZmlnOjpleHBlY3Rfc2hhMjU2X2NsaWVudF9jZXJ0fSwKKyAgICB7Ii1yZWFkLXdp
dGgtdW5maW5pc2hlZC13cml0ZSIsICZUZXN0Q29uZmlnOjpyZWFkX3dpdGhfdW5maW5pc2hlZF93
cml0ZX0sCisgICAgeyItZXhwZWN0LXNlY3VyZS1yZW5lZ290aWF0aW9uIiwgJlRlc3RDb25maWc6
OmV4cGVjdF9zZWN1cmVfcmVuZWdvdGlhdGlvbn0sCisgICAgeyItZXhwZWN0LW5vLXNlY3VyZS1y
ZW5lZ290aWF0aW9uIiwKKyAgICAgJlRlc3RDb25maWc6OmV4cGVjdF9ub19zZWN1cmVfcmVuZWdv
dGlhdGlvbn0sCisgICAgeyItZXhwZWN0LXNlc3Npb24taWQiLCAmVGVzdENvbmZpZzo6ZXhwZWN0
X3Nlc3Npb25faWR9LAorICAgIHsiLWV4cGVjdC1uby1zZXNzaW9uLWlkIiwgJlRlc3RDb25maWc6
OmV4cGVjdF9ub19zZXNzaW9uX2lkfSwKKyAgICB7Ii1leHBlY3QtYWNjZXB0LWVhcmx5LWRhdGEi
LCAmVGVzdENvbmZpZzo6ZXhwZWN0X2FjY2VwdF9lYXJseV9kYXRhfSwKKyAgICB7Ii1leHBlY3Qt
cmVqZWN0LWVhcmx5LWRhdGEiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3JlamVjdF9lYXJseV9kYXRh
fSwKKyAgICB7Ii1leHBlY3Qtbm8tb2ZmZXItZWFybHktZGF0YSIsICZUZXN0Q29uZmlnOjpleHBl
Y3Rfbm9fb2ZmZXJfZWFybHlfZGF0YX0sCisgICAgeyItbm8tb3AtZXh0cmEtaGFuZHNoYWtlIiwg
JlRlc3RDb25maWc6Om5vX29wX2V4dHJhX2hhbmRzaGFrZX0sCisgICAgeyItaGFuZHNoYWtlLXR3
aWNlIiwgJlRlc3RDb25maWc6OmhhbmRzaGFrZV90d2ljZX0sCisgICAgeyItYWxsb3ctdW5rbm93
bi1hbHBuLXByb3RvcyIsICZUZXN0Q29uZmlnOjphbGxvd191bmtub3duX2FscG5fcHJvdG9zfSwK
KyAgICB7Ii1lbmFibGUtZWQyNTUxOSIsICZUZXN0Q29uZmlnOjplbmFibGVfZWQyNTUxOX0sCisg
ICAgeyItdXNlLWN1c3RvbS12ZXJpZnktY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6dXNlX2N1c3Rv
bV92ZXJpZnlfY2FsbGJhY2t9LAorICAgIHsiLWFsbG93LWZhbHNlLXN0YXJ0LXdpdGhvdXQtYWxw
biIsCisgICAgICZUZXN0Q29uZmlnOjphbGxvd19mYWxzZV9zdGFydF93aXRob3V0X2FscG59LAor
ICAgIHsiLWlnbm9yZS10bHMxMy1kb3duZ3JhZGUiLCAmVGVzdENvbmZpZzo6aWdub3JlX3RsczEz
X2Rvd25ncmFkZX0sCisgICAgeyItZXhwZWN0LXRsczEzLWRvd25ncmFkZSIsICZUZXN0Q29uZmln
OjpleHBlY3RfdGxzMTNfZG93bmdyYWRlfSwKKyAgICB7Ii1oYW5kb2ZmIiwgJlRlc3RDb25maWc6
OmhhbmRvZmZ9LAorICAgIHsiLW5vLXJzYS1wc3MtcnNhZS1jZXJ0cyIsICZUZXN0Q29uZmlnOjpu
b19yc2FfcHNzX3JzYWVfY2VydHN9LAorICAgIHsiLXVzZS1vY3NwLWNhbGxiYWNrIiwgJlRlc3RD
b25maWc6OnVzZV9vY3NwX2NhbGxiYWNrfSwKKyAgICB7Ii1zZXQtb2NzcC1pbi1jYWxsYmFjayIs
ICZUZXN0Q29uZmlnOjpzZXRfb2NzcF9pbl9jYWxsYmFja30sCisgICAgeyItZGVjbGluZS1vY3Nw
LWNhbGxiYWNrIiwgJlRlc3RDb25maWc6OmRlY2xpbmVfb2NzcF9jYWxsYmFja30sCisgICAgeyIt
ZmFpbC1vY3NwLWNhbGxiYWNrIiwgJlRlc3RDb25maWc6OmZhaWxfb2NzcF9jYWxsYmFja30sCisg
ICAgeyItaW5zdGFsbC1jZXJ0LWNvbXByZXNzaW9uLWFsZ3MiLAorICAgICAmVGVzdENvbmZpZzo6
aW5zdGFsbF9jZXJ0X2NvbXByZXNzaW9uX2FsZ3N9LAorICAgIHsiLWlzLWhhbmRzaGFrZXItc3Vw
cG9ydGVkIiwgJlRlc3RDb25maWc6OmlzX2hhbmRzaGFrZXJfc3VwcG9ydGVkfSwKKyAgICB7Ii1o
YW5kc2hha2VyLXJlc3VtZSIsICZUZXN0Q29uZmlnOjpoYW5kc2hha2VyX3Jlc3VtZX0sCisgICAg
eyItcmV2ZXJpZnktb24tcmVzdW1lIiwgJlRlc3RDb25maWc6OnJldmVyaWZ5X29uX3Jlc3VtZX0s
CisgICAgeyItZW5mb3JjZS1yc2Eta2V5LXVzYWdlIiwgJlRlc3RDb25maWc6OmVuZm9yY2VfcnNh
X2tleV91c2FnZX0sCisgICAgeyItamRrMTEtd29ya2Fyb3VuZCIsICZUZXN0Q29uZmlnOjpqZGsx
MV93b3JrYXJvdW5kfSwKKyAgICB7Ii1zZXJ2ZXItcHJlZmVyZW5jZSIsICZUZXN0Q29uZmlnOjpz
ZXJ2ZXJfcHJlZmVyZW5jZX0sCisgICAgeyItZXhwb3J0LXRyYWZmaWMtc2VjcmV0cyIsICZUZXN0
Q29uZmlnOjpleHBvcnRfdHJhZmZpY19zZWNyZXRzfSwKKyAgICB7Ii1rZXktdXBkYXRlIiwgJlRl
c3RDb25maWc6OmtleV91cGRhdGV9LAorICAgIHsiLWV4cGVjdC1kZWxlZ2F0ZWQtY3JlZGVudGlh
bC11c2VkIiwKKyAgICAgJlRlc3RDb25maWc6OmV4cGVjdF9kZWxlZ2F0ZWRfY3JlZGVudGlhbF91
c2VkfSwKKyAgICB7Ii1lbmFibGUtcHEtZXhwZXJpbWVudC1zaWduYWwiLCAmVGVzdENvbmZpZzo6
ZW5hYmxlX3BxX2V4cGVyaW1lbnRfc2lnbmFsfSwKKyAgICB7Ii1leHBlY3QtcHEtZXhwZXJpbWVu
dC1zaWduYWwiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3BxX2V4cGVyaW1lbnRfc2lnbmFsfSwKIH07
CiAKIGNvbnN0IEZsYWc8c3RkOjpzdHJpbmc+IGtTdHJpbmdGbGFnc1tdID0gewotICB7ICItd3Jp
dGUtc2V0dGluZ3MiLCAmVGVzdENvbmZpZzo6d3JpdGVfc2V0dGluZ3MgfSwKLSAgeyAiLWtleS1m
aWxlIiwgJlRlc3RDb25maWc6OmtleV9maWxlIH0sCi0gIHsgIi1jZXJ0LWZpbGUiLCAmVGVzdENv
bmZpZzo6Y2VydF9maWxlIH0sCi0gIHsgIi1leHBlY3Qtc2VydmVyLW5hbWUiLCAmVGVzdENvbmZp
Zzo6ZXhwZWN0ZWRfc2VydmVyX25hbWUgfSwKLSAgeyAiLWFkdmVydGlzZS1ucG4iLCAmVGVzdENv
bmZpZzo6YWR2ZXJ0aXNlX25wbiB9LAotICB7ICItZXhwZWN0LW5leHQtcHJvdG8iLCAmVGVzdENv
bmZpZzo6ZXhwZWN0ZWRfbmV4dF9wcm90byB9LAotICB7ICItc2VsZWN0LW5leHQtcHJvdG8iLCAm
VGVzdENvbmZpZzo6c2VsZWN0X25leHRfcHJvdG8gfSwKLSAgeyAiLXNlbmQtY2hhbm5lbC1pZCIs
ICZUZXN0Q29uZmlnOjpzZW5kX2NoYW5uZWxfaWQgfSwKLSAgeyAiLWhvc3QtbmFtZSIsICZUZXN0
Q29uZmlnOjpob3N0X25hbWUgfSwKLSAgeyAiLWFkdmVydGlzZS1hbHBuIiwgJlRlc3RDb25maWc6
OmFkdmVydGlzZV9hbHBuIH0sCi0gIHsgIi1leHBlY3QtYWxwbiIsICZUZXN0Q29uZmlnOjpleHBl
Y3RlZF9hbHBuIH0sCi0gIHsgIi1leHBlY3QtbGF0ZS1hbHBuIiwgJlRlc3RDb25maWc6OmV4cGVj
dGVkX2xhdGVfYWxwbiB9LAotICB7ICItZXhwZWN0LWFkdmVydGlzZWQtYWxwbiIsICZUZXN0Q29u
ZmlnOjpleHBlY3RlZF9hZHZlcnRpc2VkX2FscG4gfSwKLSAgeyAiLXNlbGVjdC1hbHBuIiwgJlRl
c3RDb25maWc6OnNlbGVjdF9hbHBuIH0sCi0gIHsgIi1wc2siLCAmVGVzdENvbmZpZzo6cHNrIH0s
Ci0gIHsgIi1wc2staWRlbnRpdHkiLCAmVGVzdENvbmZpZzo6cHNrX2lkZW50aXR5IH0sCi0gIHsg
Ii1zcnRwLXByb2ZpbGVzIiwgJlRlc3RDb25maWc6OnNydHBfcHJvZmlsZXMgfSwKLSAgeyAiLWNp
cGhlciIsICZUZXN0Q29uZmlnOjpjaXBoZXIgfSwKLSAgeyAiLWV4cG9ydC1sYWJlbCIsICZUZXN0
Q29uZmlnOjpleHBvcnRfbGFiZWwgfSwKLSAgeyAiLWV4cG9ydC1jb250ZXh0IiwgJlRlc3RDb25m
aWc6OmV4cG9ydF9jb250ZXh0IH0sCi0gIHsgIi1leHBlY3QtcGVlci1jZXJ0LWZpbGUiLCAmVGVz
dENvbmZpZzo6ZXhwZWN0X3BlZXJfY2VydF9maWxlIH0sCi0gIHsgIi11c2UtY2xpZW50LWNhLWxp
c3QiLCAmVGVzdENvbmZpZzo6dXNlX2NsaWVudF9jYV9saXN0IH0sCi0gIHsgIi1leHBlY3QtY2xp
ZW50LWNhLWxpc3QiLCAmVGVzdENvbmZpZzo6ZXhwZWN0ZWRfY2xpZW50X2NhX2xpc3QgfSwKLSAg
eyAiLWV4cGVjdC1tc2ctY2FsbGJhY2siLCAmVGVzdENvbmZpZzo6ZXhwZWN0X21zZ19jYWxsYmFj
ayB9LAotICB7ICItaGFuZHNoYWtlci1wYXRoIiwgJlRlc3RDb25maWc6OmhhbmRzaGFrZXJfcGF0
aCB9LAorICAgIHsiLXdyaXRlLXNldHRpbmdzIiwgJlRlc3RDb25maWc6OndyaXRlX3NldHRpbmdz
fSwKKyAgICB7Ii1rZXktZmlsZSIsICZUZXN0Q29uZmlnOjprZXlfZmlsZX0sCisgICAgeyItY2Vy
dC1maWxlIiwgJlRlc3RDb25maWc6OmNlcnRfZmlsZX0sCisgICAgeyItZXhwZWN0LXNlcnZlci1u
YW1lIiwgJlRlc3RDb25maWc6OmV4cGVjdF9zZXJ2ZXJfbmFtZX0sCisgICAgeyItYWR2ZXJ0aXNl
LW5wbiIsICZUZXN0Q29uZmlnOjphZHZlcnRpc2VfbnBufSwKKyAgICB7Ii1leHBlY3QtbmV4dC1w
cm90byIsICZUZXN0Q29uZmlnOjpleHBlY3RfbmV4dF9wcm90b30sCisgICAgeyItc2VsZWN0LW5l
eHQtcHJvdG8iLCAmVGVzdENvbmZpZzo6c2VsZWN0X25leHRfcHJvdG99LAorICAgIHsiLXNlbmQt
Y2hhbm5lbC1pZCIsICZUZXN0Q29uZmlnOjpzZW5kX2NoYW5uZWxfaWR9LAorICAgIHsiLWhvc3Qt
bmFtZSIsICZUZXN0Q29uZmlnOjpob3N0X25hbWV9LAorICAgIHsiLWFkdmVydGlzZS1hbHBuIiwg
JlRlc3RDb25maWc6OmFkdmVydGlzZV9hbHBufSwKKyAgICB7Ii1leHBlY3QtYWxwbiIsICZUZXN0
Q29uZmlnOjpleHBlY3RfYWxwbn0sCisgICAgeyItZXhwZWN0LWxhdGUtYWxwbiIsICZUZXN0Q29u
ZmlnOjpleHBlY3RfbGF0ZV9hbHBufSwKKyAgICB7Ii1leHBlY3QtYWR2ZXJ0aXNlZC1hbHBuIiwg
JlRlc3RDb25maWc6OmV4cGVjdF9hZHZlcnRpc2VkX2FscG59LAorICAgIHsiLXNlbGVjdC1hbHBu
IiwgJlRlc3RDb25maWc6OnNlbGVjdF9hbHBufSwKKyAgICB7Ii1wc2siLCAmVGVzdENvbmZpZzo6
cHNrfSwKKyAgICB7Ii1wc2staWRlbnRpdHkiLCAmVGVzdENvbmZpZzo6cHNrX2lkZW50aXR5fSwK
KyAgICB7Ii1zcnRwLXByb2ZpbGVzIiwgJlRlc3RDb25maWc6OnNydHBfcHJvZmlsZXN9LAorICAg
IHsiLWNpcGhlciIsICZUZXN0Q29uZmlnOjpjaXBoZXJ9LAorICAgIHsiLWV4cG9ydC1sYWJlbCIs
ICZUZXN0Q29uZmlnOjpleHBvcnRfbGFiZWx9LAorICAgIHsiLWV4cG9ydC1jb250ZXh0IiwgJlRl
c3RDb25maWc6OmV4cG9ydF9jb250ZXh0fSwKKyAgICB7Ii1leHBlY3QtcGVlci1jZXJ0LWZpbGUi
LCAmVGVzdENvbmZpZzo6ZXhwZWN0X3BlZXJfY2VydF9maWxlfSwKKyAgICB7Ii11c2UtY2xpZW50
LWNhLWxpc3QiLCAmVGVzdENvbmZpZzo6dXNlX2NsaWVudF9jYV9saXN0fSwKKyAgICB7Ii1leHBl
Y3QtY2xpZW50LWNhLWxpc3QiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X2NsaWVudF9jYV9saXN0fSwK
KyAgICB7Ii1leHBlY3QtbXNnLWNhbGxiYWNrIiwgJlRlc3RDb25maWc6OmV4cGVjdF9tc2dfY2Fs
bGJhY2t9LAorICAgIHsiLWhhbmRzaGFrZXItcGF0aCIsICZUZXN0Q29uZmlnOjpoYW5kc2hha2Vy
X3BhdGh9LAorICAgIHsiLWRlbGVnYXRlZC1jcmVkZW50aWFsIiwgJlRlc3RDb25maWc6OmRlbGVn
YXRlZF9jcmVkZW50aWFsfSwKKyAgICB7Ii1leHBlY3QtZWFybHktZGF0YS1yZWFzb24iLCAmVGVz
dENvbmZpZzo6ZXhwZWN0X2Vhcmx5X2RhdGFfcmVhc29ufSwKIH07CiAKIGNvbnN0IEZsYWc8c3Rk
OjpzdHJpbmc+IGtCYXNlNjRGbGFnc1tdID0gewotICB7ICItZXhwZWN0LWNlcnRpZmljYXRlLXR5
cGVzIiwgJlRlc3RDb25maWc6OmV4cGVjdGVkX2NlcnRpZmljYXRlX3R5cGVzIH0sCi0gIHsgIi1l
eHBlY3QtY2hhbm5lbC1pZCIsICZUZXN0Q29uZmlnOjpleHBlY3RlZF9jaGFubmVsX2lkIH0sCi0g
IHsgIi10b2tlbi1iaW5kaW5nLXBhcmFtcyIsICZUZXN0Q29uZmlnOjpzZW5kX3Rva2VuX2JpbmRp
bmdfcGFyYW1zIH0sCi0gIHsgIi1leHBlY3Qtb2NzcC1yZXNwb25zZSIsICZUZXN0Q29uZmlnOjpl
eHBlY3RlZF9vY3NwX3Jlc3BvbnNlIH0sCi0gIHsgIi1leHBlY3Qtc2lnbmVkLWNlcnQtdGltZXN0
YW1wcyIsCi0gICAgJlRlc3RDb25maWc6OmV4cGVjdGVkX3NpZ25lZF9jZXJ0X3RpbWVzdGFtcHMg
fSwKLSAgeyAiLW9jc3AtcmVzcG9uc2UiLCAmVGVzdENvbmZpZzo6b2NzcF9yZXNwb25zZSB9LAot
ICB7ICItc2lnbmVkLWNlcnQtdGltZXN0YW1wcyIsICZUZXN0Q29uZmlnOjpzaWduZWRfY2VydF90
aW1lc3RhbXBzIH0sCi0gIHsgIi10aWNrZXQta2V5IiwgJlRlc3RDb25maWc6OnRpY2tldF9rZXkg
fSwKLSAgeyAiLXF1aWMtdHJhbnNwb3J0LXBhcmFtcyIsICZUZXN0Q29uZmlnOjpxdWljX3RyYW5z
cG9ydF9wYXJhbXMgfSwKLSAgeyAiLWV4cGVjdGVkLXF1aWMtdHJhbnNwb3J0LXBhcmFtcyIsCi0g
ICAgJlRlc3RDb25maWc6OmV4cGVjdGVkX3F1aWNfdHJhbnNwb3J0X3BhcmFtcyB9LAorICAgIHsi
LWV4cGVjdC1jZXJ0aWZpY2F0ZS10eXBlcyIsICZUZXN0Q29uZmlnOjpleHBlY3RfY2VydGlmaWNh
dGVfdHlwZXN9LAorICAgIHsiLWV4cGVjdC1jaGFubmVsLWlkIiwgJlRlc3RDb25maWc6OmV4cGVj
dF9jaGFubmVsX2lkfSwKKyAgICB7Ii10b2tlbi1iaW5kaW5nLXBhcmFtcyIsICZUZXN0Q29uZmln
OjpzZW5kX3Rva2VuX2JpbmRpbmdfcGFyYW1zfSwKKyAgICB7Ii1leHBlY3Qtb2NzcC1yZXNwb25z
ZSIsICZUZXN0Q29uZmlnOjpleHBlY3Rfb2NzcF9yZXNwb25zZX0sCisgICAgeyItZXhwZWN0LXNp
Z25lZC1jZXJ0LXRpbWVzdGFtcHMiLAorICAgICAmVGVzdENvbmZpZzo6ZXhwZWN0X3NpZ25lZF9j
ZXJ0X3RpbWVzdGFtcHN9LAorICAgIHsiLW9jc3AtcmVzcG9uc2UiLCAmVGVzdENvbmZpZzo6b2Nz
cF9yZXNwb25zZX0sCisgICAgeyItc2lnbmVkLWNlcnQtdGltZXN0YW1wcyIsICZUZXN0Q29uZmln
OjpzaWduZWRfY2VydF90aW1lc3RhbXBzfSwKKyAgICB7Ii10aWNrZXQta2V5IiwgJlRlc3RDb25m
aWc6OnRpY2tldF9rZXl9LAorICAgIHsiLXF1aWMtdHJhbnNwb3J0LXBhcmFtcyIsICZUZXN0Q29u
ZmlnOjpxdWljX3RyYW5zcG9ydF9wYXJhbXN9LAorICAgIHsiLWV4cGVjdC1xdWljLXRyYW5zcG9y
dC1wYXJhbXMiLAorICAgICAmVGVzdENvbmZpZzo6ZXhwZWN0X3F1aWNfdHJhbnNwb3J0X3BhcmFt
c30sCiB9OwogCiBjb25zdCBGbGFnPGludD4ga0ludEZsYWdzW10gPSB7Ci0gIHsgIi1wb3J0Iiwg
JlRlc3RDb25maWc6OnBvcnQgfSwKLSAgeyAiLXJlc3VtZS1jb3VudCIsICZUZXN0Q29uZmlnOjpy
ZXN1bWVfY291bnQgfSwKLSAgeyAiLWV4cGVjdGVkLXRva2VuLWJpbmRpbmctcGFyYW0iLAotICAg
ICZUZXN0Q29uZmlnOjpleHBlY3RlZF90b2tlbl9iaW5kaW5nX3BhcmFtIH0sCi0gIHsgIi1taW4t
dmVyc2lvbiIsICZUZXN0Q29uZmlnOjptaW5fdmVyc2lvbiB9LAotICB7ICItbWF4LXZlcnNpb24i
LCAmVGVzdENvbmZpZzo6bWF4X3ZlcnNpb24gfSwKLSAgeyAiLWV4cGVjdC12ZXJzaW9uIiwgJlRl
c3RDb25maWc6OmV4cGVjdF92ZXJzaW9uIH0sCi0gIHsgIi1tdHUiLCAmVGVzdENvbmZpZzo6bXR1
IH0sCi0gIHsgIi1leHBvcnQtZWFybHkta2V5aW5nLW1hdGVyaWFsIiwKLSAgICAmVGVzdENvbmZp
Zzo6ZXhwb3J0X2Vhcmx5X2tleWluZ19tYXRlcmlhbCB9LAotICB7ICItZXhwb3J0LWtleWluZy1t
YXRlcmlhbCIsICZUZXN0Q29uZmlnOjpleHBvcnRfa2V5aW5nX21hdGVyaWFsIH0sCi0gIHsgIi1l
eHBlY3QtdG90YWwtcmVuZWdvdGlhdGlvbnMiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3RvdGFsX3Jl
bmVnb3RpYXRpb25zIH0sCi0gIHsgIi1leHBlY3QtcGVlci1zaWduYXR1cmUtYWxnb3JpdGhtIiwK
LSAgICAmVGVzdENvbmZpZzo6ZXhwZWN0X3BlZXJfc2lnbmF0dXJlX2FsZ29yaXRobSB9LAotICB7
ICItZXhwZWN0LWN1cnZlLWlkIiwgJlRlc3RDb25maWc6OmV4cGVjdF9jdXJ2ZV9pZCB9LAotICB7
ICItaW5pdGlhbC10aW1lb3V0LWR1cmF0aW9uLW1zIiwgJlRlc3RDb25maWc6OmluaXRpYWxfdGlt
ZW91dF9kdXJhdGlvbl9tcyB9LAotICB7ICItbWF4LWNlcnQtbGlzdCIsICZUZXN0Q29uZmlnOjpt
YXhfY2VydF9saXN0IH0sCi0gIHsgIi1leHBlY3QtY2lwaGVyLWFlcyIsICZUZXN0Q29uZmlnOjpl
eHBlY3RfY2lwaGVyX2FlcyB9LAotICB7ICItZXhwZWN0LWNpcGhlci1uby1hZXMiLCAmVGVzdENv
bmZpZzo6ZXhwZWN0X2NpcGhlcl9ub19hZXMgfSwKLSAgeyAiLXJlc3VtcHRpb24tZGVsYXkiLCAm
VGVzdENvbmZpZzo6cmVzdW1wdGlvbl9kZWxheSB9LAotICB7ICItbWF4LXNlbmQtZnJhZ21lbnQi
LCAmVGVzdENvbmZpZzo6bWF4X3NlbmRfZnJhZ21lbnQgfSwKLSAgeyAiLXJlYWQtc2l6ZSIsICZU
ZXN0Q29uZmlnOjpyZWFkX3NpemUgfSwKLSAgeyAiLWV4cGVjdC10aWNrZXQtYWdlLXNrZXciLCAm
VGVzdENvbmZpZzo6ZXhwZWN0X3RpY2tldF9hZ2Vfc2tldyB9LAotICB7ICItdGxzMTMtdmFyaWFu
dCIsICZUZXN0Q29uZmlnOjp0bHMxM192YXJpYW50IH0sCisgICAgeyItcG9ydCIsICZUZXN0Q29u
ZmlnOjpwb3J0fSwKKyAgICB7Ii1yZXN1bWUtY291bnQiLCAmVGVzdENvbmZpZzo6cmVzdW1lX2Nv
dW50fSwKKyAgICB7Ii1leHBlY3QtdG9rZW4tYmluZGluZy1wYXJhbSIsICZUZXN0Q29uZmlnOjpl
eHBlY3RfdG9rZW5fYmluZGluZ19wYXJhbX0sCisgICAgeyItbWluLXZlcnNpb24iLCAmVGVzdENv
bmZpZzo6bWluX3ZlcnNpb259LAorICAgIHsiLW1heC12ZXJzaW9uIiwgJlRlc3RDb25maWc6Om1h
eF92ZXJzaW9ufSwKKyAgICB7Ii1leHBlY3QtdmVyc2lvbiIsICZUZXN0Q29uZmlnOjpleHBlY3Rf
dmVyc2lvbn0sCisgICAgeyItbXR1IiwgJlRlc3RDb25maWc6Om10dX0sCisgICAgeyItZXhwb3J0
LWtleWluZy1tYXRlcmlhbCIsICZUZXN0Q29uZmlnOjpleHBvcnRfa2V5aW5nX21hdGVyaWFsfSwK
KyAgICB7Ii1leHBlY3QtdG90YWwtcmVuZWdvdGlhdGlvbnMiLCAmVGVzdENvbmZpZzo6ZXhwZWN0
X3RvdGFsX3JlbmVnb3RpYXRpb25zfSwKKyAgICB7Ii1leHBlY3QtcGVlci1zaWduYXR1cmUtYWxn
b3JpdGhtIiwKKyAgICAgJlRlc3RDb25maWc6OmV4cGVjdF9wZWVyX3NpZ25hdHVyZV9hbGdvcml0
aG19LAorICAgIHsiLWV4cGVjdC1jdXJ2ZS1pZCIsICZUZXN0Q29uZmlnOjpleHBlY3RfY3VydmVf
aWR9LAorICAgIHsiLWluaXRpYWwtdGltZW91dC1kdXJhdGlvbi1tcyIsICZUZXN0Q29uZmlnOjpp
bml0aWFsX3RpbWVvdXRfZHVyYXRpb25fbXN9LAorICAgIHsiLW1heC1jZXJ0LWxpc3QiLCAmVGVz
dENvbmZpZzo6bWF4X2NlcnRfbGlzdH0sCisgICAgeyItZXhwZWN0LWNpcGhlci1hZXMiLCAmVGVz
dENvbmZpZzo6ZXhwZWN0X2NpcGhlcl9hZXN9LAorICAgIHsiLWV4cGVjdC1jaXBoZXItbm8tYWVz
IiwgJlRlc3RDb25maWc6OmV4cGVjdF9jaXBoZXJfbm9fYWVzfSwKKyAgICB7Ii1yZXN1bXB0aW9u
LWRlbGF5IiwgJlRlc3RDb25maWc6OnJlc3VtcHRpb25fZGVsYXl9LAorICAgIHsiLW1heC1zZW5k
LWZyYWdtZW50IiwgJlRlc3RDb25maWc6Om1heF9zZW5kX2ZyYWdtZW50fSwKKyAgICB7Ii1yZWFk
LXNpemUiLCAmVGVzdENvbmZpZzo6cmVhZF9zaXplfSwKKyAgICB7Ii1leHBlY3QtdGlja2V0LWFn
ZS1za2V3IiwgJlRlc3RDb25maWc6OmV4cGVjdF90aWNrZXRfYWdlX3NrZXd9LAogfTsKIAogY29u
c3QgRmxhZzxzdGQ6OnZlY3RvcjxpbnQ+PiBrSW50VmVjdG9yRmxhZ3NbXSA9IHsKLSAgeyAiLXNp
Z25pbmctcHJlZnMiLCAmVGVzdENvbmZpZzo6c2lnbmluZ19wcmVmcyB9LAotICB7ICItdmVyaWZ5
LXByZWZzIiwgJlRlc3RDb25maWc6OnZlcmlmeV9wcmVmcyB9LAotICB7ICItZXhwZWN0LXBlZXIt
dmVyaWZ5LXByZWYiLAotICAgICZUZXN0Q29uZmlnOjpleHBlY3RlZF9wZWVyX3ZlcmlmeV9wcmVm
cyB9LAorICAgIHsiLXNpZ25pbmctcHJlZnMiLCAmVGVzdENvbmZpZzo6c2lnbmluZ19wcmVmc30s
CisgICAgeyItdmVyaWZ5LXByZWZzIiwgJlRlc3RDb25maWc6OnZlcmlmeV9wcmVmc30sCisgICAg
eyItZXhwZWN0LXBlZXItdmVyaWZ5LXByZWYiLCAmVGVzdENvbmZpZzo6ZXhwZWN0X3BlZXJfdmVy
aWZ5X3ByZWZzfSwKKyAgICB7Ii1jdXJ2ZXMiLCAmVGVzdENvbmZpZzo6Y3VydmVzfSwKIH07CiAK
IGJvb2wgUGFyc2VGbGFnKGNoYXIgKmZsYWcsIGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpp
LApAQCAtMjQwLDcgKzI0Myw3IEBAIGJvb2wgUGFyc2VGbGFnKGNoYXIgKmZsYWcsIGludCBhcmdj
LCBjaGFyICoqYXJndiwgaW50ICppLAogICBpZiAoc3RyaW5nX2ZpZWxkICE9IE5VTEwpIHsKICAg
ICAqaSA9ICppICsgMTsKICAgICBpZiAoKmkgPj0gYXJnYykgewotICAgICAgZnByaW50ZihzdGRl
cnIsICJNaXNzaW5nIHBhcmFtZXRlclxuIik7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIk1pc3Np
bmcgcGFyYW1ldGVyLlxuIik7CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICgh
c2tpcCkgewpAQCAtMjUzLDE5ICsyNTYsMTkgQEAgYm9vbCBQYXJzZUZsYWcoY2hhciAqZmxhZywg
aW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQgKmksCiAgIGlmIChiYXNlNjRfZmllbGQgIT0gTlVM
TCkgewogICAgICppID0gKmkgKyAxOwogICAgIGlmICgqaSA+PSBhcmdjKSB7Ci0gICAgICBmcHJp
bnRmKHN0ZGVyciwgIk1pc3NpbmcgcGFyYW1ldGVyXG4iKTsKKyAgICAgIGZwcmludGYoc3RkZXJy
LCAiTWlzc2luZyBwYXJhbWV0ZXIuXG4iKTsKICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAg
ICAgc2l6ZV90IGxlbjsKICAgICBpZiAoIUVWUF9EZWNvZGVkTGVuZ3RoKCZsZW4sIHN0cmxlbihh
cmd2WyppXSkpKSB7Ci0gICAgICBmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgYmFzZTY0OiAlc1xu
IiwgYXJndlsqaV0pOworICAgICAgZnByaW50ZihzdGRlcnIsICJJbnZhbGlkIGJhc2U2NDogJXMu
XG4iLCBhcmd2WyppXSk7CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHN0ZDo6dW5p
cXVlX3B0cjx1aW50OF90W10+IGRlY29kZWQobmV3IHVpbnQ4X3RbbGVuXSk7CiAgICAgaWYgKCFF
VlBfRGVjb2RlQmFzZTY0KGRlY29kZWQuZ2V0KCksICZsZW4sIGxlbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGFyZ3ZbKmldKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKGFyZ3ZbKmldKSkpIHsKLSAgICAgIGZw
cmludGYoc3RkZXJyLCAiSW52YWxpZCBiYXNlNjQ6ICVzXG4iLCBhcmd2WyppXSk7CisgICAgICBm
cHJpbnRmKHN0ZGVyciwgIkludmFsaWQgYmFzZTY0OiAlcy5cbiIsIGFyZ3ZbKmldKTsKICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFza2lwKSB7CkBAIC0yNzksNyArMjgyLDcg
QEAgYm9vbCBQYXJzZUZsYWcoY2hhciAqZmxhZywgaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQg
KmksCiAgIGlmIChpbnRfZmllbGQpIHsKICAgICAqaSA9ICppICsgMTsKICAgICBpZiAoKmkgPj0g
YXJnYykgewotICAgICAgZnByaW50ZihzdGRlcnIsICJNaXNzaW5nIHBhcmFtZXRlclxuIik7Cisg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIk1pc3NpbmcgcGFyYW1ldGVyLlxuIik7CiAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICghc2tpcCkgewpAQCAtMjkzLDcgKzI5Niw3IEBAIGJv
b2wgUGFyc2VGbGFnKGNoYXIgKmZsYWcsIGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICppLAog
ICBpZiAoaW50X3ZlY3Rvcl9maWVsZCkgewogICAgICppID0gKmkgKyAxOwogICAgIGlmICgqaSA+
PSBhcmdjKSB7Ci0gICAgICBmcHJpbnRmKHN0ZGVyciwgIk1pc3NpbmcgcGFyYW1ldGVyXG4iKTsK
KyAgICAgIGZwcmludGYoc3RkZXJyLCAiTWlzc2luZyBwYXJhbWV0ZXIuXG4iKTsKICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTMwNCw3ICszMDcsNyBAQCBib29sIFBhcnNlRmxhZyhj
aGFyICpmbGFnLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCAqaSwKICAgICByZXR1cm4gdHJ1
ZTsKICAgfQogCi0gIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biBhcmd1bWVudDogJXNcbiIsIGZs
YWcpOworICBmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gYXJndW1lbnQ6ICVzLlxuIiwgZmxhZyk7
CiAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtNDAwLDkgKzQwMyw5IEBAIHN0YXRpYyBpbnQgU2Vy
dmVyTmFtZUNhbGxiYWNrKFNTTCAqc3NsLCBpbnQgKm91dF9hbGVydCwgdm9pZCAqYXJnKSB7CiAg
IGNvbnN0IFRlc3RDb25maWcgKmNvbmZpZyA9IEdldFRlc3RDb25maWcoc3NsKTsKICAgY29uc3Qg
Y2hhciAqc2VydmVyX25hbWUgPSBTU0xfZ2V0X3NlcnZlcm5hbWUoc3NsLCBUTFNFWFRfTkFNRVRZ
UEVfaG9zdF9uYW1lKTsKICAgaWYgKHNlcnZlcl9uYW1lID09IG51bGxwdHIgfHwKLSAgICAgIHN0
ZDo6c3RyaW5nKHNlcnZlcl9uYW1lKSAhPSBjb25maWctPmV4cGVjdGVkX3NlcnZlcl9uYW1lKSB7
Ci0gICAgZnByaW50ZihzdGRlcnIsICJzZXJ2ZXJuYW1lIG1pc21hdGNoIChnb3QgJXM7IHdhbnQg
JXMpXG4iLCBzZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgIGNvbmZpZy0+ZXhwZWN0ZWRfc2VydmVy
X25hbWUuY19zdHIoKSk7CisgICAgICBzdGQ6OnN0cmluZyhzZXJ2ZXJfbmFtZSkgIT0gY29uZmln
LT5leHBlY3Rfc2VydmVyX25hbWUpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgInNlcnZlcm5hbWUg
bWlzbWF0Y2ggKGdvdCAlczsgd2FudCAlcykuXG4iLCBzZXJ2ZXJfbmFtZSwKKyAgICAgICAgICAg
IGNvbmZpZy0+ZXhwZWN0X3NlcnZlcl9uYW1lLmNfc3RyKCkpOwogICAgIHJldHVybiBTU0xfVExT
RVhUX0VSUl9BTEVSVF9GQVRBTDsKICAgfQogCkBAIC00NDYsNyArNDQ5LDcgQEAgc3RhdGljIHZv
aWQgTWVzc2FnZUNhbGxiYWNrKGludCBpc193cml0ZSwgaW50IHZlcnNpb24sIGludCBjb250ZW50
X3R5cGUsCiAgIGlmIChjb250ZW50X3R5cGUgPT0gU1NMM19SVF9IRUFERVIpIHsKICAgICBpZiAo
bGVuICE9CiAgICAgICAgIChjb25maWctPmlzX2R0bHMgPyBEVExTMV9SVF9IRUFERVJfTEVOR1RI
IDogU1NMM19SVF9IRUFERVJfTEVOR1RIKSkgewotICAgICAgZnByaW50ZihzdGRlcnIsICJJbmNv
cnJlY3QgbGVuZ3RoIGZvciByZWNvcmQgaGVhZGVyOiAlenVcbiIsIGxlbik7CisgICAgICBmcHJp
bnRmKHN0ZGVyciwgIkluY29ycmVjdCBsZW5ndGggZm9yIHJlY29yZCBoZWFkZXI6ICV6dS5cbiIs
IGxlbik7CiAgICAgICBzdGF0ZS0+bXNnX2NhbGxiYWNrX29rID0gZmFsc2U7CiAgICAgfQogICAg
IHJldHVybjsKQEAgLTQ1Niw3ICs0NTksNyBAQCBzdGF0aWMgdm9pZCBNZXNzYWdlQ2FsbGJhY2so
aW50IGlzX3dyaXRlLCBpbnQgdmVyc2lvbiwgaW50IGNvbnRlbnRfdHlwZSwKICAgc3dpdGNoIChj
b250ZW50X3R5cGUpIHsKICAgICBjYXNlIDA6CiAgICAgICBpZiAodmVyc2lvbiAhPSBTU0wyX1ZF
UlNJT04pIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJJbmNvcnJlY3QgdmVyc2lvbiBmb3Ig
VjJDbGllbnRIZWxsbzogJXhcbiIsIHZlcnNpb24pOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IkluY29ycmVjdCB2ZXJzaW9uIGZvciBWMkNsaWVudEhlbGxvOiAleC5cbiIsIHZlcnNpb24pOwog
ICAgICAgICBzdGF0ZS0+bXNnX2NhbGxiYWNrX29rID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsK
ICAgICAgIH0KQEAgLTUwNiw3ICs1MDksNyBAQCBzdGF0aWMgdm9pZCBNZXNzYWdlQ2FsbGJhY2so
aW50IGlzX3dyaXRlLCBpbnQgdmVyc2lvbiwgaW50IGNvbnRlbnRfdHlwZSwKICAgICAgIHJldHVy
bjsKIAogICAgIGRlZmF1bHQ6Ci0gICAgICBmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgY29udGVu
dF90eXBlOiAlZFxuIiwgY29udGVudF90eXBlKTsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiSW52
YWxpZCBjb250ZW50X3R5cGU6ICVkLlxuIiwgY29udGVudF90eXBlKTsKICAgICAgIHN0YXRlLT5t
c2dfY2FsbGJhY2tfb2sgPSBmYWxzZTsKICAgfQogfQpAQCAtNjE1LDExICs2MTgsMTEgQEAgc3Rh
dGljIGludCBBbHBuU2VsZWN0Q2FsbGJhY2soU1NMICpzc2wsIGNvbnN0IHVpbnQ4X3QgKipvdXQs
IHVpbnQ4X3QgKm91dGxlbiwKICAgICByZXR1cm4gU1NMX1RMU0VYVF9FUlJfTk9BQ0s7CiAgIH0K
IAotICBpZiAoIWNvbmZpZy0+ZXhwZWN0ZWRfYWR2ZXJ0aXNlZF9hbHBuLmVtcHR5KCkgJiYKLSAg
ICAgIChjb25maWctPmV4cGVjdGVkX2FkdmVydGlzZWRfYWxwbi5zaXplKCkgIT0gaW5sZW4gfHwK
LSAgICAgICBPUEVOU1NMX21lbWNtcChjb25maWctPmV4cGVjdGVkX2FkdmVydGlzZWRfYWxwbi5k
YXRhKCksIGluLCBpbmxlbikgIT0KKyAgaWYgKCFjb25maWctPmV4cGVjdF9hZHZlcnRpc2VkX2Fs
cG4uZW1wdHkoKSAmJgorICAgICAgKGNvbmZpZy0+ZXhwZWN0X2FkdmVydGlzZWRfYWxwbi5zaXpl
KCkgIT0gaW5sZW4gfHwKKyAgICAgICBPUEVOU1NMX21lbWNtcChjb25maWctPmV4cGVjdF9hZHZl
cnRpc2VkX2FscG4uZGF0YSgpLCBpbiwgaW5sZW4pICE9CiAgICAgICAgICAgIDApKSB7Ci0gICAg
ZnByaW50ZihzdGRlcnIsICJiYWQgQUxQTiBzZWxlY3QgY2FsbGJhY2sgaW5wdXRzXG4iKTsKKyAg
ICBmcHJpbnRmKHN0ZGVyciwgImJhZCBBTFBOIHNlbGVjdCBjYWxsYmFjayBpbnB1dHMuXG4iKTsK
ICAgICBleGl0KDEpOwogICB9CiAKQEAgLTYzMSwxMiArNjM0LDEyIEBAIHN0YXRpYyBpbnQgQWxw
blNlbGVjdENhbGxiYWNrKFNTTCAqc3NsLCBjb25zdCB1aW50OF90ICoqb3V0LCB1aW50OF90ICpv
dXRsZW4sCiAKIHN0YXRpYyBib29sIENoZWNrVmVyaWZ5Q2FsbGJhY2soU1NMICpzc2wpIHsKICAg
Y29uc3QgVGVzdENvbmZpZyAqY29uZmlnID0gR2V0VGVzdENvbmZpZyhzc2wpOwotICBpZiAoIWNv
bmZpZy0+ZXhwZWN0ZWRfb2NzcF9yZXNwb25zZS5lbXB0eSgpKSB7CisgIGlmICghY29uZmlnLT5l
eHBlY3Rfb2NzcF9yZXNwb25zZS5lbXB0eSgpKSB7CiAgICAgY29uc3QgdWludDhfdCAqZGF0YTsK
ICAgICBzaXplX3QgbGVuOwogICAgIFNTTF9nZXQwX29jc3BfcmVzcG9uc2Uoc3NsLCAmZGF0YSwg
Jmxlbik7CiAgICAgaWYgKGxlbiA9PSAwKSB7Ci0gICAgICBmcHJpbnRmKHN0ZGVyciwgIk9DU1Ag
cmVzcG9uc2Ugbm90IGF2YWlsYWJsZSBpbiB2ZXJpZnkgY2FsbGJhY2tcbiIpOworICAgICAgZnBy
aW50ZihzdGRlcnIsICJPQ1NQIHJlc3BvbnNlIG5vdCBhdmFpbGFibGUgaW4gdmVyaWZ5IGNhbGxi
YWNrLlxuIik7CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICB9CkBAIC04MDUsNyArODA4
LDcgQEAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBEZWNvZGVIZXhTdHJpbmdzKAog
ICBmb3IgKGNvbnN0IGF1dG8gJnBhcnQgOiBwYXJ0cykgewogICAgIHN0ZDo6c3RyaW5nIGJpbmFy
eTsKICAgICBpZiAoIUhleERlY29kZSgmYmluYXJ5LCBwYXJ0KSkgewotICAgICAgZnByaW50Zihz
dGRlcnIsICJCYWQgaGV4IHN0cmluZzogJXNcbiIsIHBhcnQuY19zdHIoKSk7CisgICAgICBmcHJp
bnRmKHN0ZGVyciwgIkJhZCBoZXggc3RyaW5nOiAlcy5cbiIsIHBhcnQuY19zdHIoKSk7CiAgICAg
ICByZXR1cm4gcmV0OwogICAgIH0KIApAQCAtODQ0LDIyICs4NDcsMjIgQEAgc3RhdGljIGJzc2w6
OlVuaXF1ZVB0cjxTVEFDS19PRihYNTA5X05BTUUpPiBEZWNvZGVIZXhYNTA5TmFtZXMoCiAKIHN0
YXRpYyBib29sIENoZWNrUGVlclZlcmlmeVByZWZzKFNTTCAqc3NsKSB7CiAgIGNvbnN0IFRlc3RD
b25maWcgKmNvbmZpZyA9IEdldFRlc3RDb25maWcoc3NsKTsKLSAgaWYgKCFjb25maWctPmV4cGVj
dGVkX3BlZXJfdmVyaWZ5X3ByZWZzLmVtcHR5KCkpIHsKKyAgaWYgKCFjb25maWctPmV4cGVjdF9w
ZWVyX3ZlcmlmeV9wcmVmcy5lbXB0eSgpKSB7CiAgICAgY29uc3QgdWludDE2X3QgKnBlZXJfc2ln
YWxnczsKICAgICBzaXplX3QgbnVtX3BlZXJfc2lnYWxncyA9CiAgICAgICAgIFNTTF9nZXQwX3Bl
ZXJfdmVyaWZ5X2FsZ29yaXRobXMoc3NsLCAmcGVlcl9zaWdhbGdzKTsKLSAgICBpZiAoY29uZmln
LT5leHBlY3RlZF9wZWVyX3ZlcmlmeV9wcmVmcy5zaXplKCkgIT0gbnVtX3BlZXJfc2lnYWxncykg
eworICAgIGlmIChjb25maWctPmV4cGVjdF9wZWVyX3ZlcmlmeV9wcmVmcy5zaXplKCkgIT0gbnVt
X3BlZXJfc2lnYWxncykgewogICAgICAgZnByaW50ZihzdGRlcnIsCiAgICAgICAgICAgICAgICJw
ZWVyIHZlcmlmeSBwcmVmZXJlbmNlcyBsZW5ndGggbWlzbWF0Y2ggKGdvdCAlenUsIHdhbnRlZCAl
enUpXG4iLAotICAgICAgICAgICAgICBudW1fcGVlcl9zaWdhbGdzLCBjb25maWctPmV4cGVjdGVk
X3BlZXJfdmVyaWZ5X3ByZWZzLnNpemUoKSk7CisgICAgICAgICAgICAgIG51bV9wZWVyX3NpZ2Fs
Z3MsIGNvbmZpZy0+ZXhwZWN0X3BlZXJfdmVyaWZ5X3ByZWZzLnNpemUoKSk7CiAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX3BlZXJfc2ln
YWxnczsgaSsrKSB7CiAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihwZWVyX3NpZ2FsZ3NbaV0p
ICE9Ci0gICAgICAgICAgY29uZmlnLT5leHBlY3RlZF9wZWVyX3ZlcmlmeV9wcmVmc1tpXSkgewor
ICAgICAgICAgIGNvbmZpZy0+ZXhwZWN0X3BlZXJfdmVyaWZ5X3ByZWZzW2ldKSB7CiAgICAgICAg
IGZwcmludGYoc3RkZXJyLAogICAgICAgICAgICAgICAgICJwZWVyIHZlcmlmeSBwcmVmZXJlbmNl
ICV6dSBtaXNtYXRjaCAoZ290ICUwNHgsIHdhbnRlZCAlMDR4XG4iLAotICAgICAgICAgICAgICAg
IGksIHBlZXJfc2lnYWxnc1tpXSwgY29uZmlnLT5leHBlY3RlZF9wZWVyX3ZlcmlmeV9wcmVmc1tp
XSk7CisgICAgICAgICAgICAgICAgaSwgcGVlcl9zaWdhbGdzW2ldLCBjb25maWctPmV4cGVjdF9w
ZWVyX3ZlcmlmeV9wcmVmc1tpXSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgIH0KICAg
ICB9CkBAIC04NzQsMjkgKzg3NywyOSBAQCBzdGF0aWMgYm9vbCBDaGVja0NlcnRpZmljYXRlUmVx
dWVzdChTU0wgKnNzbCkgewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCi0gIGlmICghY29uZmln
LT5leHBlY3RlZF9jZXJ0aWZpY2F0ZV90eXBlcy5lbXB0eSgpKSB7CisgIGlmICghY29uZmlnLT5l
eHBlY3RfY2VydGlmaWNhdGVfdHlwZXMuZW1wdHkoKSkgewogICAgIGNvbnN0IHVpbnQ4X3QgKmNl
cnRpZmljYXRlX3R5cGVzOwogICAgIHNpemVfdCBjZXJ0aWZpY2F0ZV90eXBlc19sZW4gPQogICAg
ICAgICBTU0xfZ2V0MF9jZXJ0aWZpY2F0ZV90eXBlcyhzc2wsICZjZXJ0aWZpY2F0ZV90eXBlcyk7
Ci0gICAgaWYgKGNlcnRpZmljYXRlX3R5cGVzX2xlbiAhPSBjb25maWctPmV4cGVjdGVkX2NlcnRp
ZmljYXRlX3R5cGVzLnNpemUoKSB8fAorICAgIGlmIChjZXJ0aWZpY2F0ZV90eXBlc19sZW4gIT0g
Y29uZmlnLT5leHBlY3RfY2VydGlmaWNhdGVfdHlwZXMuc2l6ZSgpIHx8CiAgICAgICAgIE9QRU5T
U0xfbWVtY21wKGNlcnRpZmljYXRlX3R5cGVzLAotICAgICAgICAgICAgICAgICAgICAgICBjb25m
aWctPmV4cGVjdGVkX2NlcnRpZmljYXRlX3R5cGVzLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgY29uZmlnLT5leHBlY3RfY2VydGlmaWNhdGVfdHlwZXMuZGF0YSgpLAogICAgICAgICAg
ICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZV90eXBlc19sZW4pICE9IDApIHsKLSAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiY2VydGlmaWNhdGUgdHlwZXMgbWlzbWF0Y2hcbiIpOworICAgICAgZnByaW50
ZihzdGRlcnIsICJjZXJ0aWZpY2F0ZSB0eXBlcyBtaXNtYXRjaC5cbiIpOwogICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KICAgfQogCi0gIGlmICghY29uZmlnLT5leHBlY3RlZF9jbGllbnRfY2Ff
bGlzdC5lbXB0eSgpKSB7CisgIGlmICghY29uZmlnLT5leHBlY3RfY2xpZW50X2NhX2xpc3QuZW1w
dHkoKSkgewogICAgIGJzc2w6OlVuaXF1ZVB0cjxTVEFDS19PRihYNTA5X05BTUUpPiBleHBlY3Rl
ZCA9Ci0gICAgICAgIERlY29kZUhleFg1MDlOYW1lcyhjb25maWctPmV4cGVjdGVkX2NsaWVudF9j
YV9saXN0KTsKKyAgICAgICAgRGVjb2RlSGV4WDUwOU5hbWVzKGNvbmZpZy0+ZXhwZWN0X2NsaWVu
dF9jYV9saXN0KTsKICAgICBjb25zdCBzaXplX3QgbnVtX2V4cGVjdGVkID0gc2tfWDUwOV9OQU1F
X251bShleHBlY3RlZC5nZXQoKSk7CiAKICAgICBjb25zdCBTVEFDS19PRihYNTA5X05BTUUpICpy
ZWNlaXZlZCA9IFNTTF9nZXRfY2xpZW50X0NBX2xpc3Qoc3NsKTsKICAgICBjb25zdCBzaXplX3Qg
bnVtX3JlY2VpdmVkID0gc2tfWDUwOV9OQU1FX251bShyZWNlaXZlZCk7CiAKICAgICBpZiAobnVt
X3JlY2VpdmVkICE9IG51bV9leHBlY3RlZCkgewotICAgICAgZnByaW50ZihzdGRlcnIsICJleHBl
Y3RlZCAldSBuYW1lcyBpbiBDZXJ0aWZpY2F0ZVJlcXVlc3QgYnV0IGdvdCAldVxuIiwKKyAgICAg
IGZwcmludGYoc3RkZXJyLCAiZXhwZWN0ZWQgJXUgbmFtZXMgaW4gQ2VydGlmaWNhdGVSZXF1ZXN0
IGJ1dCBnb3QgJXUuXG4iLAogICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVt
X2V4cGVjdGVkKSwKICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bV9yZWNl
aXZlZCkpOwogICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTA1LDcgKzkwOCw3IEBAIHN0YXRpYyBi
b29sIENoZWNrQ2VydGlmaWNhdGVSZXF1ZXN0KFNTTCAqc3NsKSB7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBudW1fcmVjZWl2ZWQ7IGkrKykgewogICAgICAgaWYgKFg1MDlfTkFNRV9jbXAo
c2tfWDUwOV9OQU1FX3ZhbHVlKHJlY2VpdmVkLCBpKSwKICAgICAgICAgICAgICAgICAgICAgICAg
IHNrX1g1MDlfTkFNRV92YWx1ZShleHBlY3RlZC5nZXQoKSwgaSkpICE9IDApIHsKLSAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJuYW1lcyBpbiBDZXJ0aWZpY2F0ZVJlcXVlc3QgZGlmZmVyIGF0IGlu
ZGV4ICMlZFxuIiwKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJuYW1lcyBpbiBDZXJ0aWZpY2F0
ZVJlcXVlc3QgZGlmZmVyIGF0IGluZGV4ICMlZC5cbiIsCiAgICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGkpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgfQpAQCAt
MTA5NiwzNSArMTA5OSwxNiBAQCBzdGF0aWMgZW51bSBzc2xfc2VsZWN0X2NlcnRfcmVzdWx0X3Qg
U2VsZWN0Q2VydGlmaWNhdGVDYWxsYmFjaygKICAgY29uc3QgVGVzdENvbmZpZyAqY29uZmlnID0g
R2V0VGVzdENvbmZpZyhjbGllbnRfaGVsbG8tPnNzbCk7CiAgIEdldFRlc3RTdGF0ZShjbGllbnRf
aGVsbG8tPnNzbCktPmVhcmx5X2NhbGxiYWNrX2NhbGxlZCA9IHRydWU7CiAKLSAgaWYgKCFjb25m
aWctPmV4cGVjdGVkX3NlcnZlcl9uYW1lLmVtcHR5KCkpIHsKLSAgICBjb25zdCB1aW50OF90ICpl
eHRlbnNpb25fZGF0YTsKLSAgICBzaXplX3QgZXh0ZW5zaW9uX2xlbjsKLSAgICBDQlMgZXh0ZW5z
aW9uLCBzZXJ2ZXJfbmFtZV9saXN0LCBob3N0X25hbWU7Ci0gICAgdWludDhfdCBuYW1lX3R5cGU7
Ci0KLSAgICBpZiAoIVNTTF9lYXJseV9jYWxsYmFja19jdHhfZXh0ZW5zaW9uX2dldCgKLSAgICAg
ICAgICAgIGNsaWVudF9oZWxsbywgVExTRVhUX1RZUEVfc2VydmVyX25hbWUsICZleHRlbnNpb25f
ZGF0YSwKLSAgICAgICAgICAgICZleHRlbnNpb25fbGVuKSkgewotICAgICAgZnByaW50ZihzdGRl
cnIsICJDb3VsZCBub3QgZmluZCBzZXJ2ZXJfbmFtZSBleHRlbnNpb24uXG4iKTsKLSAgICAgIHJl
dHVybiBzc2xfc2VsZWN0X2NlcnRfZXJyb3I7Ci0gICAgfQotCi0gICAgQ0JTX2luaXQoJmV4dGVu
c2lvbiwgZXh0ZW5zaW9uX2RhdGEsIGV4dGVuc2lvbl9sZW4pOwotICAgIGlmICghQ0JTX2dldF91
MTZfbGVuZ3RoX3ByZWZpeGVkKCZleHRlbnNpb24sICZzZXJ2ZXJfbmFtZV9saXN0KSB8fAotICAg
ICAgICBDQlNfbGVuKCZleHRlbnNpb24pICE9IDAgfHwKLSAgICAgICAgIUNCU19nZXRfdTgoJnNl
cnZlcl9uYW1lX2xpc3QsICZuYW1lX3R5cGUpIHx8Ci0gICAgICAgIG5hbWVfdHlwZSAhPSBUTFNF
WFRfTkFNRVRZUEVfaG9zdF9uYW1lIHx8Ci0gICAgICAgICFDQlNfZ2V0X3UxNl9sZW5ndGhfcHJl
Zml4ZWQoJnNlcnZlcl9uYW1lX2xpc3QsICZob3N0X25hbWUpIHx8Ci0gICAgICAgIENCU19sZW4o
JnNlcnZlcl9uYW1lX2xpc3QpICE9IDApIHsKLSAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQg
bm90IGRlY29kZSBzZXJ2ZXJfbmFtZSBleHRlbnNpb24uXG4iKTsKKyAgaWYgKCFjb25maWctPmV4
cGVjdF9zZXJ2ZXJfbmFtZS5lbXB0eSgpKSB7CisgICAgY29uc3QgY2hhciAqc2VydmVyX25hbWUg
PQorICAgICAgICBTU0xfZ2V0X3NlcnZlcm5hbWUoY2xpZW50X2hlbGxvLT5zc2wsIFRMU0VYVF9O
QU1FVFlQRV9ob3N0X25hbWUpOworICAgIGlmIChzZXJ2ZXJfbmFtZSA9PSBudWxscHRyIHx8Cisg
ICAgICAgIHN0ZDo6c3RyaW5nKHNlcnZlcl9uYW1lKSAhPSBjb25maWctPmV4cGVjdF9zZXJ2ZXJf
bmFtZSkgeworICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICJTZXJ2ZXIgbmFt
ZSBtaXNtYXRjaCBpbiBlYXJseSBjYWxsYmFjayAoZ290ICVzOyB3YW50ICVzKS5cbiIsCisgICAg
ICAgICAgICAgIHNlcnZlcl9uYW1lLCBjb25maWctPmV4cGVjdF9zZXJ2ZXJfbmFtZS5jX3N0cigp
KTsKICAgICAgIHJldHVybiBzc2xfc2VsZWN0X2NlcnRfZXJyb3I7CiAgICAgfQotCi0gICAgaWYg
KCFDQlNfbWVtX2VxdWFsKCZob3N0X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgIChjb25z
dCB1aW50OF90ICopY29uZmlnLT5leHBlY3RlZF9zZXJ2ZXJfbmFtZS5kYXRhKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZy0+ZXhwZWN0ZWRfc2VydmVyX25hbWUuc2l6ZSgpKSkgewot
ICAgICAgZnByaW50ZihzdGRlcnIsICJTZXJ2ZXIgbmFtZSBtaXNtYXRjaC5cbiIpOwotICAgIH0K
ICAgfQogCiAgIGlmIChjb25maWctPmZhaWxfZWFybHlfY2FsbGJhY2spIHsKQEAgLTEyMzcsNyAr
MTIyMSw3IEBAIGJzc2w6OlVuaXF1ZVB0cjxTU0xfQ1RYPiBUZXN0Q29uZmlnOjpTZXR1cEN0eChT
U0xfQ1RYICpvbGRfY3R4KSBjb25zdCB7CiAgICAgU1NMX0NUWF9zZXRfZ3JlYXNlX2VuYWJsZWQo
c3NsX2N0eC5nZXQoKSwgMSk7CiAgIH0KIAotICBpZiAoIWV4cGVjdGVkX3NlcnZlcl9uYW1lLmVt
cHR5KCkpIHsKKyAgaWYgKCFleHBlY3Rfc2VydmVyX25hbWUuZW1wdHkoKSkgewogICAgIFNTTF9D
VFhfc2V0X3Rsc2V4dF9zZXJ2ZXJuYW1lX2NhbGxiYWNrKHNzbF9jdHguZ2V0KCksIFNlcnZlck5h
bWVDYWxsYmFjayk7CiAgIH0KIApAQCAtMTI0NSw5ICsxMjI5LDYgQEAgYnNzbDo6VW5pcXVlUHRy
PFNTTF9DVFg+IFRlc3RDb25maWc6OlNldHVwQ3R4KFNTTF9DVFggKm9sZF9jdHgpIGNvbnN0IHsK
ICAgICBTU0xfQ1RYX3NldF9lYXJseV9kYXRhX2VuYWJsZWQoc3NsX2N0eC5nZXQoKSwgMSk7CiAg
IH0KIAotICBTU0xfQ1RYX3NldF90bHMxM192YXJpYW50KHNzbF9jdHguZ2V0KCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZW51bSB0bHMxM192YXJpYW50X3Q+KHRs
czEzX3ZhcmlhbnQpKTsKLQogICBpZiAoYWxsb3dfdW5rbm93bl9hbHBuX3Byb3RvcykgewogICAg
IFNTTF9DVFhfc2V0X2FsbG93X3Vua25vd25fYWxwbl9wcm90b3Moc3NsX2N0eC5nZXQoKSwgMSk7
CiAgIH0KQEAgLTEyOTQsNyArMTI3NSw2IEBAIGJzc2w6OlVuaXF1ZVB0cjxTU0xfQ1RYPiBUZXN0
Q29uZmlnOjpTZXR1cEN0eChTU0xfQ1RYICpvbGRfY3R4KSBjb25zdCB7CiAgICAgcmV0dXJuIG51
bGxwdHI7CiAgIH0KIAotCiAgIGlmIChpbnN0YWxsX2NlcnRfY29tcHJlc3Npb25fYWxncyAmJgog
ICAgICAgKCFTU0xfQ1RYX2FkZF9jZXJ0X2NvbXByZXNzaW9uX2FsZygKICAgICAgICAgICAgc3Ns
X2N0eC5nZXQoKSwgMHhmZjAyLApAQCAtMTM0MSw2ICsxMzIxLDE0IEBAIGJzc2w6OlVuaXF1ZVB0
cjxTU0xfQ1RYPiBUZXN0Q29uZmlnOjpTZXR1cEN0eChTU0xfQ1RYICpvbGRfY3R4KSBjb25zdCB7
CiAgICAgYWJvcnQoKTsKICAgfQogCisgIGlmIChzZXJ2ZXJfcHJlZmVyZW5jZSkgeworICAgIFNT
TF9DVFhfc2V0X29wdGlvbnMoc3NsX2N0eC5nZXQoKSwgU1NMX09QX0NJUEhFUl9TRVJWRVJfUFJF
RkVSRU5DRSk7CisgIH0KKworICBpZiAoZW5hYmxlX3BxX2V4cGVyaW1lbnRfc2lnbmFsKSB7Cisg
ICAgU1NMX0NUWF9lbmFibGVfcHFfZXhwZXJpbWVudF9zaWduYWwoc3NsX2N0eC5nZXQoKSk7Cisg
IH0KKwogICByZXR1cm4gc3NsX2N0eDsKIH0KIApAQCAtMTM2OCw3ICsxMzU2LDcgQEAgc3RhdGlj
IHVuc2lnbmVkIFBza0NsaWVudENhbGxiYWNrKFNTTCAqc3NsLCBjb25zdCBjaGFyICpoaW50LAog
ICAvLyBBY2NvdW50IGZvciB0aGUgdHJhaWxpbmcgJ1wwJyBmb3IgdGhlIGlkZW50aXR5LgogICBp
ZiAoY29uZmlnLT5wc2tfaWRlbnRpdHkuc2l6ZSgpID49IG1heF9pZGVudGl0eV9sZW4gfHwKICAg
ICAgIGNvbmZpZy0+cHNrLnNpemUoKSA+IG1heF9wc2tfbGVuKSB7Ci0gICAgZnByaW50ZihzdGRl
cnIsICJQU0sgYnVmZmVycyB0b28gc21hbGxcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiUFNL
IGJ1ZmZlcnMgdG9vIHNtYWxsLlxuIik7CiAgICAgcmV0dXJuIDA7CiAgIH0KIApAQCAtMTM4Nyw3
ICsxMzc1LDcgQEAgc3RhdGljIHVuc2lnbmVkIFBza1NlcnZlckNhbGxiYWNrKFNTTCAqc3NsLCBj
b25zdCBjaGFyICppZGVudGl0eSwKICAgfQogCiAgIGlmIChjb25maWctPnBzay5zaXplKCkgPiBt
YXhfcHNrX2xlbikgewotICAgIGZwcmludGYoc3RkZXJyLCAiUFNLIGJ1ZmZlcnMgdG9vIHNtYWxs
XG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlBTSyBidWZmZXJzIHRvbyBzbWFsbC5cbiIpOwog
ICAgIHJldHVybiAwOwogICB9CiAKQEAgLTE0OTksNiArMTQ4Nyw5IEBAIGJzc2w6OlVuaXF1ZVB0
cjxTU0w+IFRlc3RDb25maWc6Ok5ld1NTTCgKICAgaWYgKHJldmVyaWZ5X29uX3Jlc3VtZSkgewog
ICAgIFNTTF9DVFhfc2V0X3JldmVyaWZ5X29uX3Jlc3VtZShzc2xfY3R4LCAxKTsKICAgfQorICBp
ZiAoZW5mb3JjZV9yc2Ffa2V5X3VzYWdlKSB7CisgICAgU1NMX3NldF9lbmZvcmNlX3JzYV9rZXlf
dXNhZ2Uoc3NsLmdldCgpLCAxKTsKKyAgfQogICBpZiAobm9fdGxzMTMpIHsKICAgICBTU0xfc2V0
X29wdGlvbnMoc3NsLmdldCgpLCBTU0xfT1BfTk9fVExTdjFfMyk7CiAgIH0KQEAgLTE1MTQsNyAr
MTUwNSw3IEBAIGJzc2w6OlVuaXF1ZVB0cjxTU0w+IFRlc3RDb25maWc6Ok5ld1NTTCgKICAgaWYg
KG5vX3RpY2tldCkgewogICAgIFNTTF9zZXRfb3B0aW9ucyhzc2wuZ2V0KCksIFNTTF9PUF9OT19U
SUNLRVQpOwogICB9Ci0gIGlmICghZXhwZWN0ZWRfY2hhbm5lbF9pZC5lbXB0eSgpIHx8IGVuYWJs
ZV9jaGFubmVsX2lkKSB7CisgIGlmICghZXhwZWN0X2NoYW5uZWxfaWQuZW1wdHkoKSB8fCBlbmFi
bGVfY2hhbm5lbF9pZCkgewogICAgIFNTTF9zZXRfdGxzX2NoYW5uZWxfaWRfZW5hYmxlZChzc2wu
Z2V0KCksIDEpOwogICB9CiAgIGlmICghc2VuZF9jaGFubmVsX2lkLmVtcHR5KCkpIHsKQEAgLTE1
ODksMTYgKzE1ODAsNDYgQEAgYnNzbDo6VW5pcXVlUHRyPFNTTD4gVGVzdENvbmZpZzo6TmV3U1NM
KAogICBpZiAoIWNoZWNrX2Nsb3NlX25vdGlmeSkgewogICAgIFNTTF9zZXRfcXVpZXRfc2h1dGRv
d24oc3NsLmdldCgpLCAxKTsKICAgfQotICBpZiAocDM4NF9vbmx5KSB7Ci0gICAgaW50IG5pZCA9
IE5JRF9zZWNwMzg0cjE7Ci0gICAgaWYgKCFTU0xfc2V0MV9jdXJ2ZXMoc3NsLmdldCgpLCAmbmlk
LCAxKSkgewotICAgICAgcmV0dXJuIG51bGxwdHI7CisgIGlmICghY3VydmVzLmVtcHR5KCkpIHsK
KyAgICBzdGQ6OnZlY3RvcjxpbnQ+IG5pZHM7CisgICAgZm9yIChhdXRvIGN1cnZlIDogY3VydmVz
KSB7CisgICAgICBzd2l0Y2ggKGN1cnZlKSB7CisgICAgICAgIGNhc2UgU1NMX0NVUlZFX1NFQ1Ay
MjRSMToKKyAgICAgICAgICBuaWRzLnB1c2hfYmFjayhOSURfc2VjcDIyNHIxKTsKKyAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIFNTTF9DVVJWRV9TRUNQMjU2UjE6CisgICAgICAgICAg
bmlkcy5wdXNoX2JhY2soTklEX1g5XzYyX3ByaW1lMjU2djEpOworICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgU1NMX0NVUlZFX1NFQ1AzODRSMToKKyAgICAgICAgICBuaWRzLnB1c2hf
YmFjayhOSURfc2VjcDM4NHIxKTsKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFNT
TF9DVVJWRV9TRUNQNTIxUjE6CisgICAgICAgICAgbmlkcy5wdXNoX2JhY2soTklEX3NlY3A1MjFy
MSk7CisgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBTU0xfQ1VSVkVfWDI1NTE5Ogor
ICAgICAgICAgIG5pZHMucHVzaF9iYWNrKE5JRF9YMjU1MTkpOworICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgU1NMX0NVUlZFX0NFQ1BRMjoKKyAgICAgICAgICBuaWRzLnB1c2hfYmFj
ayhOSURfQ0VDUFEyKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTU0xfQ1VSVkVf
Q0VDUFEyYjoKKyAgICAgICAgICBuaWRzLnB1c2hfYmFjayhOSURfQ0VDUFEyYik7CisgICAgICAg
ICAgYnJlYWs7CisgICAgICB9CisgICAgICBpZiAoIVNTTF9zZXQxX2N1cnZlcyhzc2wuZ2V0KCks
ICZuaWRzWzBdLCBuaWRzLnNpemUoKSkpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICB9CiAgICAgfQogICB9CiAgIGlmIChlbmFibGVfYWxsX2N1cnZlcykgewogICAgIHN0YXRpYyBj
b25zdCBpbnQga0FsbEN1cnZlc1tdID0gewotICAgICAgICBOSURfc2VjcDIyNHIxLCBOSURfWDlf
NjJfcHJpbWUyNTZ2MSwgTklEX3NlY3AzODRyMSwKLSAgICAgICAgTklEX3NlY3A1MjFyMSwgTklE
X1gyNTUxOSwKKyAgICAgICAgTklEX3NlY3AyMjRyMSwgTklEX1g5XzYyX3ByaW1lMjU2djEsIE5J
RF9zZWNwMzg0cjEsIE5JRF9zZWNwNTIxcjEsCisgICAgICAgIE5JRF9YMjU1MTksICAgIE5JRF9D
RUNQUTIsICAgICAgICAgICBOSURfQ0VDUFEyYiwKICAgICB9OwogICAgIGlmICghU1NMX3NldDFf
Y3VydmVzKHNzbC5nZXQoKSwga0FsbEN1cnZlcywKICAgICAgICAgICAgICAgICAgICAgICAgICBP
UEVOU1NMX0FSUkFZX1NJWkUoa0FsbEN1cnZlcykpKSB7CkBAIC0xNjQyLDUgKzE2NjMsNDEgQEAg
YnNzbDo6VW5pcXVlUHRyPFNTTD4gVGVzdENvbmZpZzo6TmV3U1NMKAogICAgIH0KICAgfQogCisg
IGlmICghZGVsZWdhdGVkX2NyZWRlbnRpYWwuZW1wdHkoKSkgeworICAgIHN0ZDo6c3RyaW5nOjpz
aXplX3R5cGUgY29tbWEgPSBkZWxlZ2F0ZWRfY3JlZGVudGlhbC5maW5kKCcsJyk7CisgICAgaWYg
KGNvbW1hID09IHN0ZDo6c3RyaW5nOjpucG9zKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAg
ICAgICAgICAgICAgImZhaWxlZCB0byBmaW5kIGNvbW1hIGluIGRlbGVnYXRlZCBjcmVkZW50aWFs
IGFyZ3VtZW50LlxuIik7CisgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBjb25z
dCBzdGQ6OnN0cmluZyBkY19oZXggPSBkZWxlZ2F0ZWRfY3JlZGVudGlhbC5zdWJzdHIoMCwgY29t
bWEpOworICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHBrY3M4X2hleCA9IGRlbGVnYXRlZF9jcmVkZW50
aWFsLnN1YnN0cihjb21tYSArIDEpOworICAgIHN0ZDo6c3RyaW5nIGRjLCBwa2NzODsKKyAgICBp
ZiAoIUhleERlY29kZSgmZGMsIGRjX2hleCkgfHwgIUhleERlY29kZSgmcGtjczgsIHBrY3M4X2hl
eCkpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIGhleCBkZWNvZGUgZGVsZWdh
dGVkIGNyZWRlbnRpYWwgYXJndW1lbnQuXG4iKTsKKyAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKworICAgIENCUyBkY19jYnMoYnNzbDo6U3Bhbjxjb25zdCB1aW50OF90PigKKyAgICAgICAg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGRjLmRhdGEoKSksIGRjLnNpemUoKSkp
OworICAgIENCUyBwa2NzOF9jYnMoYnNzbDo6U3Bhbjxjb25zdCB1aW50OF90PigKKyAgICAgICAg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KHBrY3M4LmRhdGEoKSksIHBrY3M4LnNp
emUoKSkpOworCisgICAgYnNzbDo6VW5pcXVlUHRyPEVWUF9QS0VZPiBwcml2KEVWUF9wYXJzZV9w
cml2YXRlX2tleSgmcGtjczhfY2JzKSk7CisgICAgaWYgKCFwcml2KSB7CisgICAgICBmcHJpbnRm
KHN0ZGVyciwgImZhaWxlZCB0byBwYXJzZSBkZWxlZ2F0ZWQgY3JlZGVudGlhbCBwcml2YXRlIGtl
eS5cbiIpOworICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYnNzbDo6VW5pcXVl
UHRyPENSWVBUT19CVUZGRVI+IGRjX2J1ZigKKyAgICAgICAgQ1JZUFRPX0JVRkZFUl9uZXdfZnJv
bV9DQlMoJmRjX2NicywgbnVsbHB0cikpOworICAgIGlmICghU1NMX3NldDFfZGVsZWdhdGVkX2Ny
ZWRlbnRpYWwoc3NsLmdldCgpLCBkY19idWYuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaXYuZ2V0KCksIG51bGxwdHIpKSB7CisgICAgICBmcHJpbnRmKHN0
ZGVyciwgIlNTTF9zZXQxX2RlbGVnYXRlZF9jcmVkZW50aWFsIGZhaWxlZC5cbiIpOworICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorICB9CisKICAgcmV0dXJuIHNzbDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy9zc2wvdGVzdC90ZXN0X2NvbmZpZy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3Rlc3RfY29uZmln
LmgKaW5kZXggYmZmZTkxMTg1NjM1OWUzMjhkODkyMzExOTVhY2VmYzJlMjE4ODI4NC4uY2U0YjQx
NjQ5Y2YwMTc3NzY2MmNkMGM3MmFlNDQ3NDVkZWU5MjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90
ZXN0L3Rlc3RfY29uZmlnLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90ZXN0L3Rlc3RfY29uZmlnLmgKQEAgLTMy
LDE0ICszMiwxNSBAQCBzdHJ1Y3QgVGVzdENvbmZpZyB7CiAgIGJvb2wgZmFsbGJhY2tfc2NzdiA9
IGZhbHNlOwogICBzdGQ6OnZlY3RvcjxpbnQ+IHNpZ25pbmdfcHJlZnM7CiAgIHN0ZDo6dmVjdG9y
PGludD4gdmVyaWZ5X3ByZWZzOwotICBzdGQ6OnZlY3RvcjxpbnQ+IGV4cGVjdGVkX3BlZXJfdmVy
aWZ5X3ByZWZzOworICBzdGQ6OnZlY3RvcjxpbnQ+IGV4cGVjdF9wZWVyX3ZlcmlmeV9wcmVmczsK
KyAgc3RkOjp2ZWN0b3I8aW50PiBjdXJ2ZXM7CiAgIHN0ZDo6c3RyaW5nIGtleV9maWxlOwogICBz
dGQ6OnN0cmluZyBjZXJ0X2ZpbGU7Ci0gIHN0ZDo6c3RyaW5nIGV4cGVjdGVkX3NlcnZlcl9uYW1l
OwotICBzdGQ6OnN0cmluZyBleHBlY3RlZF9jZXJ0aWZpY2F0ZV90eXBlczsKKyAgc3RkOjpzdHJp
bmcgZXhwZWN0X3NlcnZlcl9uYW1lOworICBzdGQ6OnN0cmluZyBleHBlY3RfY2VydGlmaWNhdGVf
dHlwZXM7CiAgIGJvb2wgcmVxdWlyZV9hbnlfY2xpZW50X2NlcnRpZmljYXRlID0gZmFsc2U7CiAg
IHN0ZDo6c3RyaW5nIGFkdmVydGlzZV9ucG47Ci0gIHN0ZDo6c3RyaW5nIGV4cGVjdGVkX25leHRf
cHJvdG87CisgIHN0ZDo6c3RyaW5nIGV4cGVjdF9uZXh0X3Byb3RvOwogICBib29sIGZhbHNlX3N0
YXJ0ID0gZmFsc2U7CiAgIHN0ZDo6c3RyaW5nIHNlbGVjdF9uZXh0X3Byb3RvOwogICBib29sIGFz
eW5jID0gZmFsc2U7CkBAIC01MSwzMSArNTIsMzEgQEAgc3RydWN0IFRlc3RDb25maWcgewogICBi
b29sIG5vX3RsczExID0gZmFsc2U7CiAgIGJvb2wgbm9fdGxzMSA9IGZhbHNlOwogICBib29sIG5v
X3RpY2tldCA9IGZhbHNlOwotICBzdGQ6OnN0cmluZyBleHBlY3RlZF9jaGFubmVsX2lkOworICBz
dGQ6OnN0cmluZyBleHBlY3RfY2hhbm5lbF9pZDsKICAgYm9vbCBlbmFibGVfY2hhbm5lbF9pZCA9
IGZhbHNlOwogICBzdGQ6OnN0cmluZyBzZW5kX2NoYW5uZWxfaWQ7Ci0gIGludCBleHBlY3RlZF90
b2tlbl9iaW5kaW5nX3BhcmFtID0gLTE7CisgIGludCBleHBlY3RfdG9rZW5fYmluZGluZ19wYXJh
bSA9IC0xOwogICBzdGQ6OnN0cmluZyBzZW5kX3Rva2VuX2JpbmRpbmdfcGFyYW1zOwogICBib29s
IHNoaW1fd3JpdGVzX2ZpcnN0ID0gZmFsc2U7CiAgIHN0ZDo6c3RyaW5nIGhvc3RfbmFtZTsKICAg
c3RkOjpzdHJpbmcgYWR2ZXJ0aXNlX2FscG47Ci0gIHN0ZDo6c3RyaW5nIGV4cGVjdGVkX2FscG47
Ci0gIHN0ZDo6c3RyaW5nIGV4cGVjdGVkX2xhdGVfYWxwbjsKLSAgc3RkOjpzdHJpbmcgZXhwZWN0
ZWRfYWR2ZXJ0aXNlZF9hbHBuOworICBzdGQ6OnN0cmluZyBleHBlY3RfYWxwbjsKKyAgc3RkOjpz
dHJpbmcgZXhwZWN0X2xhdGVfYWxwbjsKKyAgc3RkOjpzdHJpbmcgZXhwZWN0X2FkdmVydGlzZWRf
YWxwbjsKICAgc3RkOjpzdHJpbmcgc2VsZWN0X2FscG47CiAgIGJvb2wgZGVjbGluZV9hbHBuID0g
ZmFsc2U7CiAgIGJvb2wgc2VsZWN0X2VtcHR5X2FscG4gPSBmYWxzZTsKICAgc3RkOjpzdHJpbmcg
cXVpY190cmFuc3BvcnRfcGFyYW1zOwotICBzdGQ6OnN0cmluZyBleHBlY3RlZF9xdWljX3RyYW5z
cG9ydF9wYXJhbXM7CisgIHN0ZDo6c3RyaW5nIGV4cGVjdF9xdWljX3RyYW5zcG9ydF9wYXJhbXM7
CiAgIGJvb2wgZXhwZWN0X3Nlc3Npb25fbWlzcyA9IGZhbHNlOwogICBib29sIGV4cGVjdF9leHRl
bmRlZF9tYXN0ZXJfc2VjcmV0ID0gZmFsc2U7CiAgIHN0ZDo6c3RyaW5nIHBzazsKICAgc3RkOjpz
dHJpbmcgcHNrX2lkZW50aXR5OwogICBzdGQ6OnN0cmluZyBzcnRwX3Byb2ZpbGVzOwogICBib29s
IGVuYWJsZV9vY3NwX3N0YXBsaW5nID0gZmFsc2U7Ci0gIHN0ZDo6c3RyaW5nIGV4cGVjdGVkX29j
c3BfcmVzcG9uc2U7CisgIHN0ZDo6c3RyaW5nIGV4cGVjdF9vY3NwX3Jlc3BvbnNlOwogICBib29s
IGVuYWJsZV9zaWduZWRfY2VydF90aW1lc3RhbXBzID0gZmFsc2U7Ci0gIHN0ZDo6c3RyaW5nIGV4
cGVjdGVkX3NpZ25lZF9jZXJ0X3RpbWVzdGFtcHM7CisgIHN0ZDo6c3RyaW5nIGV4cGVjdF9zaWdu
ZWRfY2VydF90aW1lc3RhbXBzOwogICBpbnQgbWluX3ZlcnNpb24gPSAwOwogICBpbnQgbWF4X3Zl
cnNpb24gPSAwOwogICBpbnQgZXhwZWN0X3ZlcnNpb24gPSAwOwpAQCAtODgsNyArODksNiBAQCBz
dHJ1Y3QgVGVzdENvbmZpZyB7CiAgIGJvb2wgZmFpbF9jZXJ0X2NhbGxiYWNrID0gZmFsc2U7CiAg
IHN0ZDo6c3RyaW5nIGNpcGhlcjsKICAgYm9vbCBoYW5kc2hha2VfbmV2ZXJfZG9uZSA9IGZhbHNl
OwotICBpbnQgZXhwb3J0X2Vhcmx5X2tleWluZ19tYXRlcmlhbCA9IDA7CiAgIGludCBleHBvcnRf
a2V5aW5nX21hdGVyaWFsID0gMDsKICAgc3RkOjpzdHJpbmcgZXhwb3J0X2xhYmVsOwogICBzdGQ6
OnN0cmluZyBleHBvcnRfY29udGV4dDsKQEAgLTEwMyw3ICsxMDMsNiBAQCBzdHJ1Y3QgVGVzdENv
bmZpZyB7CiAgIGJvb2wgdXNlX3RpY2tldF9jYWxsYmFjayA9IGZhbHNlOwogICBib29sIHJlbmV3
X3RpY2tldCA9IGZhbHNlOwogICBib29sIGVuYWJsZV9lYXJseV9kYXRhID0gZmFsc2U7Ci0gIGlu
dCB0bHMxM192YXJpYW50ID0gMDsKICAgYm9vbCBlbmFibGVfY2xpZW50X2N1c3RvbV9leHRlbnNp
b24gPSBmYWxzZTsKICAgYm9vbCBlbmFibGVfc2VydmVyX2N1c3RvbV9leHRlbnNpb24gPSBmYWxz
ZTsKICAgYm9vbCBjdXN0b21fZXh0ZW5zaW9uX3NraXAgPSBmYWxzZTsKQEAgLTEyMiwxMyArMTIx
LDEyIEBAIHN0cnVjdCBUZXN0Q29uZmlnIHsKICAgYm9vbCByZW5lZ290aWF0ZV9pZ25vcmUgPSBm
YWxzZTsKICAgYm9vbCBmb3JiaWRfcmVuZWdvdGlhdGlvbl9hZnRlcl9oYW5kc2hha2UgPSBmYWxz
ZTsKICAgaW50IGV4cGVjdF9wZWVyX3NpZ25hdHVyZV9hbGdvcml0aG0gPSAwOwotICBib29sIHAz
ODRfb25seSA9IGZhbHNlOwogICBib29sIGVuYWJsZV9hbGxfY3VydmVzID0gZmFsc2U7CiAgIGlu
dCBleHBlY3RfY3VydmVfaWQgPSAwOwogICBib29sIHVzZV9vbGRfY2xpZW50X2NlcnRfY2FsbGJh
Y2sgPSBmYWxzZTsKICAgaW50IGluaXRpYWxfdGltZW91dF9kdXJhdGlvbl9tcyA9IDA7CiAgIHN0
ZDo6c3RyaW5nIHVzZV9jbGllbnRfY2FfbGlzdDsKLSAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRfY2xp
ZW50X2NhX2xpc3Q7CisgIHN0ZDo6c3RyaW5nIGV4cGVjdF9jbGllbnRfY2FfbGlzdDsKICAgYm9v
bCBzZW5kX2FsZXJ0ID0gZmFsc2U7CiAgIGJvb2wgcGVla190aGVuX3JlYWQgPSBmYWxzZTsKICAg
Ym9vbCBlbmFibGVfZ3JlYXNlID0gZmFsc2U7CkBAIC0xNjYsMTAgKzE2NCwxOSBAQCBzdHJ1Y3Qg
VGVzdENvbmZpZyB7CiAgIGJvb2wgZmFpbF9vY3NwX2NhbGxiYWNrID0gZmFsc2U7CiAgIGJvb2wg
aW5zdGFsbF9jZXJ0X2NvbXByZXNzaW9uX2FsZ3MgPSBmYWxzZTsKICAgYm9vbCByZXZlcmlmeV9v
bl9yZXN1bWUgPSBmYWxzZTsKKyAgYm9vbCBlbmZvcmNlX3JzYV9rZXlfdXNhZ2UgPSBmYWxzZTsK
ICAgYm9vbCBpc19oYW5kc2hha2VyX3N1cHBvcnRlZCA9IGZhbHNlOwogICBib29sIGhhbmRzaGFr
ZXJfcmVzdW1lID0gZmFsc2U7CiAgIHN0ZDo6c3RyaW5nIGhhbmRzaGFrZXJfcGF0aDsKICAgYm9v
bCBqZGsxMV93b3JrYXJvdW5kID0gZmFsc2U7CisgIGJvb2wgc2VydmVyX3ByZWZlcmVuY2UgPSBm
YWxzZTsKKyAgYm9vbCBleHBvcnRfdHJhZmZpY19zZWNyZXRzID0gZmFsc2U7CisgIGJvb2wga2V5
X3VwZGF0ZSA9IGZhbHNlOworICBib29sIGV4cGVjdF9kZWxlZ2F0ZWRfY3JlZGVudGlhbF91c2Vk
ID0gZmFsc2U7CisgIHN0ZDo6c3RyaW5nIGRlbGVnYXRlZF9jcmVkZW50aWFsOworICBzdGQ6OnN0
cmluZyBleHBlY3RfZWFybHlfZGF0YV9yZWFzb247CisgIGJvb2wgZW5hYmxlX3BxX2V4cGVyaW1l
bnRfc2lnbmFsID0gZmFsc2U7CisgIGJvb2wgZXhwZWN0X3BxX2V4cGVyaW1lbnRfc2lnbmFsID0g
ZmFsc2U7CiAKICAgaW50IGFyZ2M7CiAgIGNoYXIgKiphcmd2OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Nz
bC90bHMxM19ib3RoLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90bHMxM19ib3RoLmNjCmluZGV4IDZiYWVhZjcxN2Rm
NTA0MDdhN2JlNzFiNDZjMzMwM2E4OTU4NDVlZDQuLjc0NTcxNTVjZmMzZTk2NjNlMzAyM2UyMzhi
YTk0NGNhOGVjYWJjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGxzMTNfYm90aC5jYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvc3NsL3RsczEzX2JvdGguY2MKQEAgLTIxMiw3ICsyMTIsOCBAQCBib29sIHRsczEzX3Byb2Nl
c3NfY2VydGlmaWNhdGUoU1NMX0hBTkRTSEFLRSAqaHMsIGNvbnN0IFNTTE1lc3NhZ2UgJm1zZywK
ICAgICAgIH0KICAgICAgIC8vIFRMUyAxLjMgYWx3YXlzIHVzZXMgY2VydGlmaWNhdGUga2V5cyBm
b3Igc2lnbmluZyB0aHVzIHRoZSBjb3JyZWN0CiAgICAgICAvLyBrZXlVc2FnZSBpcyBlbmZvcmNl
ZC4KLSAgICAgIGlmICghc3NsX2NlcnRfY2hlY2tfZGlnaXRhbF9zaWduYXR1cmVfa2V5X3VzYWdl
KCZjZXJ0aWZpY2F0ZSkpIHsKKyAgICAgIGlmICghc3NsX2NlcnRfY2hlY2tfa2V5X3VzYWdlKCZj
ZXJ0aWZpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV91c2Fn
ZV9kaWdpdGFsX3NpZ25hdHVyZSkpIHsKICAgICAgICAgc3NsX3NlbmRfYWxlcnQoc3NsLCBTU0wz
X0FMX0ZBVEFMLCBTU0xfQURfSUxMRUdBTF9QQVJBTUVURVIpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICB9CkBAIC0zNjksMTMgKzM3MCw4IEBAIGJvb2wgdGxzMTNfcHJvY2Vzc19jZXJ0
aWZpY2F0ZV92ZXJpZnkoU1NMX0hBTkRTSEFLRSAqaHMsIGNvbnN0IFNTTE1lc3NhZ2UgJm1zZykK
ICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAotICBib29sIHNpZ19vayA9IHNzbF9wdWJsaWNfa2V5
X3ZlcmlmeShzc2wsIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2FsZ29yaXRobSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHMtPnBlZXJfcHVia2V5LmdldCgpLCBpbnB1dCk7
Ci0jaWYgZGVmaW5lZChCT1JJTkdTU0xfVU5TQUZFX0ZVWlpFUl9NT0RFKQotICBzaWdfb2sgPSB0
cnVlOwotICBFUlJfY2xlYXJfZXJyb3IoKTsKLSNlbmRpZgotICBpZiAoIXNpZ19vaykgeworICBp
ZiAoIXNzbF9wdWJsaWNfa2V5X3ZlcmlmeShzc2wsIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2FsZ29y
aXRobSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHMtPnBlZXJfcHVia2V5LmdldCgp
LCBpbnB1dCkpIHsKICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX0JBRF9TSUdOQVRV
UkUpOwogICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgU1NMX0FEX0RFQ1JZ
UFRfRVJST1IpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTM4OCwyMSArMzg0LDIwIEBAIGJvb2wg
dGxzMTNfcHJvY2Vzc19maW5pc2hlZChTU0xfSEFORFNIQUtFICpocywgY29uc3QgU1NMTWVzc2Fn
ZSAmbXNnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdXNlX3NhdmVkX3ZhbHVl
KSB7CiAgIFNTTCAqY29uc3Qgc3NsID0gaHMtPnNzbDsKICAgdWludDhfdCB2ZXJpZnlfZGF0YV9i
dWZbRVZQX01BWF9NRF9TSVpFXTsKLSAgY29uc3QgdWludDhfdCAqdmVyaWZ5X2RhdGE7Ci0gIHNp
emVfdCB2ZXJpZnlfZGF0YV9sZW47CisgIFNwYW48Y29uc3QgdWludDhfdD4gdmVyaWZ5X2RhdGE7
CiAgIGlmICh1c2Vfc2F2ZWRfdmFsdWUpIHsKICAgICBhc3NlcnQoc3NsLT5zZXJ2ZXIpOwotICAg
IHZlcmlmeV9kYXRhID0gaHMtPmV4cGVjdGVkX2NsaWVudF9maW5pc2hlZDsKLSAgICB2ZXJpZnlf
ZGF0YV9sZW4gPSBocy0+aGFzaF9sZW47CisgICAgdmVyaWZ5X2RhdGEgPSBocy0+ZXhwZWN0ZWRf
Y2xpZW50X2ZpbmlzaGVkKCk7CiAgIH0gZWxzZSB7Ci0gICAgaWYgKCF0bHMxM19maW5pc2hlZF9t
YWMoaHMsIHZlcmlmeV9kYXRhX2J1ZiwgJnZlcmlmeV9kYXRhX2xlbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAhc3NsLT5zZXJ2ZXIpKSB7CisgICAgc2l6ZV90IGxlbjsKKyAgICBpZiAo
IXRsczEzX2ZpbmlzaGVkX21hYyhocywgdmVyaWZ5X2RhdGFfYnVmLCAmbGVuLCAhc3NsLT5zZXJ2
ZXIpKSB7CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHZlcmlmeV9kYXRhID0gdmVy
aWZ5X2RhdGFfYnVmOworICAgIHZlcmlmeV9kYXRhID0gTWFrZUNvbnN0U3Bhbih2ZXJpZnlfZGF0
YV9idWYsIGxlbik7CiAgIH0KIAotICBib29sIGZpbmlzaGVkX29rID0gQ0JTX21lbV9lcXVhbCgm
bXNnLmJvZHksIHZlcmlmeV9kYXRhLCB2ZXJpZnlfZGF0YV9sZW4pOworICBib29sIGZpbmlzaGVk
X29rID0KKyAgICAgIENCU19tZW1fZXF1YWwoJm1zZy5ib2R5LCB2ZXJpZnlfZGF0YS5kYXRhKCks
IHZlcmlmeV9kYXRhLnNpemUoKSk7CiAjaWYgZGVmaW5lZChCT1JJTkdTU0xfVU5TQUZFX0ZVWlpF
Ul9NT0RFKQogICBmaW5pc2hlZF9vayA9IHRydWU7CiAjZW5kaWYKQEAgLTQxOCw2ICs0MTMsNyBA
QCBib29sIHRsczEzX3Byb2Nlc3NfZmluaXNoZWQoU1NMX0hBTkRTSEFLRSAqaHMsIGNvbnN0IFNT
TE1lc3NhZ2UgJm1zZywKIGJvb2wgdGxzMTNfYWRkX2NlcnRpZmljYXRlKFNTTF9IQU5EU0hBS0Ug
KmhzKSB7CiAgIFNTTCAqY29uc3Qgc3NsID0gaHMtPnNzbDsKICAgQ0VSVCAqY29uc3QgY2VydCA9
IGhzLT5jb25maWctPmNlcnQuZ2V0KCk7CisgIERDICpjb25zdCBkYyA9IGNlcnQtPmRjLmdldCgp
OwogCiAgIFNjb3BlZENCQiBjYmI7CiAgIENCQiAqYm9keSwgYm9keV9zdG9yYWdlLCBjZXJ0aWZp
Y2F0ZV9saXN0OwpAQCAtNDQxLDcgKzQzNyw3IEBAIGJvb2wgdGxzMTNfYWRkX2NlcnRpZmljYXRl
KFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgaWYgKCFz
c2xfaGFzX2NlcnRpZmljYXRlKGhzLT5jb25maWcpKSB7CisgIGlmICghc3NsX2hhc19jZXJ0aWZp
Y2F0ZShocykpIHsKICAgICByZXR1cm4gc3NsX2FkZF9tZXNzYWdlX2NiYihzc2wsIGNiYi5nZXQo
KSk7CiAgIH0KIApAQCAtNDg0LDYgKzQ4MCwyMCBAQCBib29sIHRsczEzX2FkZF9jZXJ0aWZpY2F0
ZShTU0xfSEFORFNIQUtFICpocykgewogICAgIH0KICAgfQogCisgIGlmIChzc2xfc2lnbmluZ193
aXRoX2RjKGhzKSkgeworICAgIGNvbnN0IENSWVBUT19CVUZGRVIgKnJhdyA9IGRjLT5yYXcuZ2V0
KCk7CisgICAgQ0JCIGNoaWxkOworICAgIGlmICghQ0JCX2FkZF91MTYoJmV4dGVuc2lvbnMsIFRM
U0VYVF9UWVBFX2RlbGVnYXRlZF9jcmVkZW50aWFsKSB8fAorICAgICAgICAhQ0JCX2FkZF91MTZf
bGVuZ3RoX3ByZWZpeGVkKCZleHRlbnNpb25zLCAmY2hpbGQpIHx8CisgICAgICAgICFDQkJfYWRk
X2J5dGVzKCZjaGlsZCwgQ1JZUFRPX0JVRkZFUl9kYXRhKHJhdyksCisgICAgICAgICAgICAgICAg
ICAgICAgIENSWVBUT19CVUZGRVJfbGVuKHJhdykpIHx8CisgICAgICAgICFDQkJfZmx1c2goJmV4
dGVuc2lvbnMpKSB7CisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVSUl9SX0lOVEVSTkFM
X0VSUk9SKTsKKyAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBzc2wtPnMzLT5kZWxlZ2F0ZWRf
Y3JlZGVudGlhbF91c2VkID0gdHJ1ZTsKKyAgfQorCiAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwg
c2tfQ1JZUFRPX0JVRkZFUl9udW0oY2VydC0+Y2hhaW4uZ2V0KCkpOyBpKyspIHsKICAgICBDUllQ
VE9fQlVGRkVSICpjZXJ0X2J1ZiA9IHNrX0NSWVBUT19CVUZGRVJfdmFsdWUoY2VydC0+Y2hhaW4u
Z2V0KCksIGkpOwogICAgIENCQiBjaGlsZDsKQEAgLTYwNyw2ICs2MTcsMjUgQEAgYm9vbCB0bHMx
M19hZGRfZmluaXNoZWQoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgcmV0dXJuIHRydWU7CiB9CiAK
K2Jvb2wgdGxzMTNfYWRkX2tleV91cGRhdGUoU1NMICpzc2wsIGludCB1cGRhdGVfcmVxdWVzdGVk
KSB7CisgIFNjb3BlZENCQiBjYmI7CisgIENCQiBib2R5X2NiYjsKKyAgaWYgKCFzc2wtPm1ldGhv
ZC0+aW5pdF9tZXNzYWdlKHNzbCwgY2JiLmdldCgpLCAmYm9keV9jYmIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTU0wzX01UX0tFWV9VUERBVEUpIHx8CisgICAgICAhQ0JCX2Fk
ZF91OCgmYm9keV9jYmIsIHVwZGF0ZV9yZXF1ZXN0ZWQpIHx8CisgICAgICAhc3NsX2FkZF9tZXNz
YWdlX2NiYihzc2wsIGNiYi5nZXQoKSkgfHwKKyAgICAgICF0bHMxM19yb3RhdGVfdHJhZmZpY19r
ZXkoc3NsLCBldnBfYWVhZF9zZWFsKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8v
IFN1cHByZXNzIEtleVVwZGF0ZSBhY2tub3dsZWRnbWVudHMgdW50aWwgdGhpcyBjaGFuZ2UgaXMg
d3JpdHRlbiB0byB0aGUKKyAgLy8gd2lyZS4gVGhpcyBwcmV2ZW50cyB1cyBmcm9tIGFjY3VtdWxh
dGluZyB3cml0ZSBvYmxpZ2F0aW9ucyB3aGVuIHJlYWQgYW5kCisgIC8vIHdyaXRlIHByb2dyZXNz
IGF0IGRpZmZlcmVudCByYXRlcy4gU2VlIFJGQyA4NDQ2LCBzZWN0aW9uIDQuNi4zLgorICBzc2wt
PnMzLT5rZXlfdXBkYXRlX3BlbmRpbmcgPSB0cnVlOworCisgIHJldHVybiB0cnVlOworfQorCiBz
dGF0aWMgYm9vbCB0bHMxM19yZWNlaXZlX2tleV91cGRhdGUoU1NMICpzc2wsIGNvbnN0IFNTTE1l
c3NhZ2UgJm1zZykgewogICBDQlMgYm9keSA9IG1zZy5ib2R5OwogICB1aW50OF90IGtleV91cGRh
dGVfcmVxdWVzdDsKQEAgLTYyNSwyMSArNjU0LDkgQEAgc3RhdGljIGJvb2wgdGxzMTNfcmVjZWl2
ZV9rZXlfdXBkYXRlKFNTTCAqc3NsLCBjb25zdCBTU0xNZXNzYWdlICZtc2cpIHsKIAogICAvLyBB
Y2tub3dsZWRnZSB0aGUgS2V5VXBkYXRlCiAgIGlmIChrZXlfdXBkYXRlX3JlcXVlc3QgPT0gU1NM
X0tFWV9VUERBVEVfUkVRVUVTVEVEICYmCi0gICAgICAhc3NsLT5zMy0+a2V5X3VwZGF0ZV9wZW5k
aW5nKSB7Ci0gICAgU2NvcGVkQ0JCIGNiYjsKLSAgICBDQkIgYm9keV9jYmI7Ci0gICAgaWYgKCFz
c2wtPm1ldGhvZC0+aW5pdF9tZXNzYWdlKHNzbCwgY2JiLmdldCgpLCAmYm9keV9jYmIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTTDNfTVRfS0VZX1VQREFURSkgfHwKLSAg
ICAgICAgIUNCQl9hZGRfdTgoJmJvZHlfY2JiLCBTU0xfS0VZX1VQREFURV9OT1RfUkVRVUVTVEVE
KSB8fAotICAgICAgICAhc3NsX2FkZF9tZXNzYWdlX2NiYihzc2wsIGNiYi5nZXQoKSkgfHwKLSAg
ICAgICAgIXRsczEzX3JvdGF0ZV90cmFmZmljX2tleShzc2wsIGV2cF9hZWFkX3NlYWwpKSB7Ci0g
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgLy8gU3VwcHJlc3MgS2V5VXBkYXRlIGFj
a25vd2xlZGdtZW50cyB1bnRpbCB0aGlzIGNoYW5nZSBpcyB3cml0dGVuIHRvIHRoZQotICAgIC8v
IHdpcmUuIFRoaXMgcHJldmVudHMgdXMgZnJvbSBhY2N1bXVsYXRpbmcgd3JpdGUgb2JsaWdhdGlv
bnMgd2hlbiByZWFkIGFuZAotICAgIC8vIHdyaXRlIHByb2dyZXNzIGF0IGRpZmZlcmVudCByYXRl
cy4gU2VlIFJGQyA4NDQ2LCBzZWN0aW9uIDQuNi4zLgotICAgIHNzbC0+czMtPmtleV91cGRhdGVf
cGVuZGluZyA9IHRydWU7CisgICAgICAhc3NsLT5zMy0+a2V5X3VwZGF0ZV9wZW5kaW5nICYmCisg
ICAgICAhdGxzMTNfYWRkX2tleV91cGRhdGUoc3NsLCBTU0xfS0VZX1VQREFURV9OT1RfUkVRVUVT
VEVEKSkgeworICAgIHJldHVybiBmYWxzZTsKICAgfQogCiAgIHJldHVybiB0cnVlOwpAQCAtNjQ4
LDcgKzY2NSw3IEBAIHN0YXRpYyBib29sIHRsczEzX3JlY2VpdmVfa2V5X3VwZGF0ZShTU0wgKnNz
bCwgY29uc3QgU1NMTWVzc2FnZSAmbXNnKSB7CiBib29sIHRsczEzX3Bvc3RfaGFuZHNoYWtlKFNT
TCAqc3NsLCBjb25zdCBTU0xNZXNzYWdlICZtc2cpIHsKICAgaWYgKG1zZy50eXBlID09IFNTTDNf
TVRfS0VZX1VQREFURSkgewogICAgIHNzbC0+czMtPmtleV91cGRhdGVfY291bnQrKzsKLSAgICBp
ZiAoc3NsLT5jdHgtPnF1aWNfbWV0aG9kICE9IG51bGxwdHIgfHwKKyAgICBpZiAoc3NsLT5xdWlj
X21ldGhvZCAhPSBudWxscHRyIHx8CiAgICAgICAgIHNzbC0+czMtPmtleV91cGRhdGVfY291bnQg
PiBrTWF4S2V5VXBkYXRlcykgewogICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBTU0xfUl9U
T09fTUFOWV9LRVlfVVBEQVRFUyk7CiAgICAgICBzc2xfc2VuZF9hbGVydChzc2wsIFNTTDNfQUxf
RkFUQUwsIFNTTF9BRF9VTkVYUEVDVEVEX01FU1NBR0UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90
bHMxM19jbGllbnQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3RsczEzX2NsaWVudC5jYwppbmRleCAwZDNlODc3MTA2
MmRjY2Q3YmNmODA0ODBlMjRkOTNjNDc2NDEzMGY5Li5hN2QwZDg5MmI1YTFkYTc0NGU4NGFiODNi
YTM5ZDg3NjMwN2QxMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3RsczEzX2NsaWVudC5jYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvc3NsL3RsczEzX2NsaWVudC5jYwpAQCAtMTY1LDE1ICsxNjUsMTcgQEAgc3RhdGljIGVu
dW0gc3NsX2hzX3dhaXRfdCBkb19yZWFkX2hlbGxvX3JldHJ5X3JlcXVlc3QoU1NMX0hBTkRTSEFL
RSAqaHMpIHsKICAgICAgIHJldHVybiBzc2xfaHNfZXJyb3I7CiAgICAgfQogCi0gICAgLy8gQ2hl
Y2sgdGhhdCB0aGUgSGVsbG9SZXRyeVJlcXVlc3QgZG9lcyBub3QgcmVxdWVzdCB0aGUga2V5IHNo
YXJlIHRoYXQKLSAgICAvLyB3YXMgcHJvdmlkZWQgaW4gdGhlIGluaXRpYWwgQ2xpZW50SGVsbG8u
Ci0gICAgaWYgKGhzLT5rZXlfc2hhcmUtPkdyb3VwSUQoKSA9PSBncm91cF9pZCkgeworICAgIC8v
IENoZWNrIHRoYXQgdGhlIEhlbGxvUmV0cnlSZXF1ZXN0IGRvZXMgbm90IHJlcXVlc3QgYSBrZXkg
c2hhcmUgdGhhdCB3YXMKKyAgICAvLyBwcm92aWRlZCBpbiB0aGUgaW5pdGlhbCBDbGllbnRIZWxs
by4KKyAgICBpZiAoaHMtPmtleV9zaGFyZXNbMF0tPkdyb3VwSUQoKSA9PSBncm91cF9pZCB8fAor
ICAgICAgICAoaHMtPmtleV9zaGFyZXNbMV0gJiYgaHMtPmtleV9zaGFyZXNbMV0tPkdyb3VwSUQo
KSA9PSBncm91cF9pZCkpIHsKICAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRB
TCwgU1NMX0FEX0lMTEVHQUxfUEFSQU1FVEVSKTsKICAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNT
TCwgU1NMX1JfV1JPTkdfQ1VSVkUpOwogICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICB9
CiAKLSAgICBocy0+a2V5X3NoYXJlLnJlc2V0KCk7CisgICAgaHMtPmtleV9zaGFyZXNbMF0ucmVz
ZXQoKTsKKyAgICBocy0+a2V5X3NoYXJlc1sxXS5yZXNldCgpOwogICAgIGhzLT5yZXRyeV9ncm91
cCA9IGdyb3VwX2lkOwogICB9CiAKQEAgLTE4Niw2ICsxODgsNyBAQCBzdGF0aWMgZW51bSBzc2xf
aHNfd2FpdF90IGRvX3JlYWRfaGVsbG9fcmV0cnlfcmVxdWVzdChTU0xfSEFORFNIQUtFICpocykg
ewogICBocy0+dGxzMTNfc3RhdGUgPSBzdGF0ZV9zZW5kX3NlY29uZF9jbGllbnRfaGVsbG87CiAg
IC8vIDAtUlRUIGlzIHJlamVjdGVkIGlmIHdlIHJlY2VpdmUgYSBIZWxsb1JldHJ5UmVxdWVzdC4K
ICAgaWYgKGhzLT5pbl9lYXJseV9kYXRhKSB7CisgICAgc3NsLT5zMy0+ZWFybHlfZGF0YV9yZWFz
b24gPSBzc2xfZWFybHlfZGF0YV9oZWxsb19yZXRyeV9yZXF1ZXN0OwogICAgIHJldHVybiBzc2xf
aHNfZWFybHlfZGF0YV9yZWplY3RlZDsKICAgfQogICByZXR1cm4gc3NsX2hzX29rOwpAQCAtMjky
LDE2ICsyOTUsMTQgQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19yZWFkX3NlcnZlcl9o
ZWxsbyhTU0xfSEFORFNIQUtFICpocykgewogICAgIHJldHVybiBzc2xfaHNfZXJyb3I7CiAgIH0K
IAotICBpZiAoc3NsX2lzX2RyYWZ0Mjgoc3NsLT52ZXJzaW9uKSkgewotICAgIC8vIFJlY2hlY2sg
c3VwcG9ydGVkX3ZlcnNpb25zLCBpbiBjYXNlIHRoaXMgaXMgdGhlIHNlY29uZCBTZXJ2ZXJIZWxs
by4KLSAgICB1aW50MTZfdCB2ZXJzaW9uOwotICAgIGlmICghaGF2ZV9zdXBwb3J0ZWRfdmVyc2lv
bnMgfHwKLSAgICAgICAgIUNCU19nZXRfdTE2KCZzdXBwb3J0ZWRfdmVyc2lvbnMsICZ2ZXJzaW9u
KSB8fAotICAgICAgICB2ZXJzaW9uICE9IHNzbC0+dmVyc2lvbikgewotICAgICAgT1BFTlNTTF9Q
VVRfRVJST1IoU1NMLCBTU0xfUl9TRUNPTkRfU0VSVkVSSEVMTE9fVkVSU0lPTl9NSVNNQVRDSCk7
Ci0gICAgICBzc2xfc2VuZF9hbGVydChzc2wsIFNTTDNfQUxfRkFUQUwsIFNTTF9BRF9JTExFR0FM
X1BBUkFNRVRFUik7Ci0gICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwotICAgIH0KKyAgLy8gUmVj
aGVjayBzdXBwb3J0ZWRfdmVyc2lvbnMsIGluIGNhc2UgdGhpcyBpcyB0aGUgc2Vjb25kIFNlcnZl
ckhlbGxvLgorICB1aW50MTZfdCB2ZXJzaW9uOworICBpZiAoIWhhdmVfc3VwcG9ydGVkX3ZlcnNp
b25zIHx8CisgICAgICAhQ0JTX2dldF91MTYoJnN1cHBvcnRlZF92ZXJzaW9ucywgJnZlcnNpb24p
IHx8CisgICAgICB2ZXJzaW9uICE9IHNzbC0+dmVyc2lvbikgeworICAgIE9QRU5TU0xfUFVUX0VS
Uk9SKFNTTCwgU1NMX1JfU0VDT05EX1NFUlZFUkhFTExPX1ZFUlNJT05fTUlTTUFUQ0gpOworICAg
IHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgU1NMX0FEX0lMTEVHQUxfUEFSQU1F
VEVSKTsKKyAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICB9CiAKICAgYWxlcnQgPSBTU0xfQURf
REVDT0RFX0VSUk9SOwpAQCAtMzY0LDExICszNjUsMTIgQEAgc3RhdGljIGVudW0gc3NsX2hzX3dh
aXRfdCBkb19yZWFkX3NlcnZlcl9oZWxsbyhTU0xfSEFORFNIQUtFICpocykgewogCiAgIC8vIFNl
dCB1cCB0aGUga2V5IHNjaGVkdWxlIGFuZCBpbmNvcnBvcmF0ZSB0aGUgUFNLIGludG8gdGhlIHJ1
bm5pbmcgc2VjcmV0LgogICBpZiAoc3NsLT5zMy0+c2Vzc2lvbl9yZXVzZWQpIHsKLSAgICBpZiAo
IXRsczEzX2luaXRfa2V5X3NjaGVkdWxlKGhzLCBocy0+bmV3X3Nlc3Npb24tPm1hc3Rlcl9rZXks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+bmV3X3Nlc3Npb24tPm1hc3Rl
cl9rZXlfbGVuZ3RoKSkgeworICAgIGlmICghdGxzMTNfaW5pdF9rZXlfc2NoZWR1bGUoCisgICAg
ICAgICAgICBocywgTWFrZUNvbnN0U3Bhbihocy0+bmV3X3Nlc3Npb24tPm1hc3Rlcl9rZXksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+bmV3X3Nlc3Npb24tPm1hc3Rlcl9rZXlf
bGVuZ3RoKSkpIHsKICAgICAgIHJldHVybiBzc2xfaHNfZXJyb3I7CiAgICAgfQotICB9IGVsc2Ug
aWYgKCF0bHMxM19pbml0X2tleV9zY2hlZHVsZShocywga1plcm9lcywgaGFzaF9sZW4pKSB7Cisg
IH0gZWxzZSBpZiAoIXRsczEzX2luaXRfa2V5X3NjaGVkdWxlKGhzLCBNYWtlQ29uc3RTcGFuKGta
ZXJvZXMsIGhhc2hfbGVuKSkpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICB9CiAKQEAg
LTM4OCwxMCArMzkwLDExIEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fcmVhZF9zZXJ2
ZXJfaGVsbG8oU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwog
ICB9CiAKLSAgaWYgKCF0bHMxM19hZHZhbmNlX2tleV9zY2hlZHVsZShocywgZGhlX3NlY3JldC5k
YXRhKCksIGRoZV9zZWNyZXQuc2l6ZSgpKSB8fAotICAgICAgIXNzbF9oYXNoX21lc3NhZ2UoaHMs
IG1zZykgfHwgIXRsczEzX2Rlcml2ZV9oYW5kc2hha2Vfc2VjcmV0cyhocykgfHwKKyAgaWYgKCF0
bHMxM19hZHZhbmNlX2tleV9zY2hlZHVsZShocywgZGhlX3NlY3JldCkgfHwKKyAgICAgICFzc2xf
aGFzaF9tZXNzYWdlKGhzLCBtc2cpIHx8CisgICAgICAhdGxzMTNfZGVyaXZlX2hhbmRzaGFrZV9z
ZWNyZXRzKGhzKSB8fAogICAgICAgIXRsczEzX3NldF90cmFmZmljX2tleShzc2wsIHNzbF9lbmNy
eXB0aW9uX2hhbmRzaGFrZSwgZXZwX2FlYWRfb3BlbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaHMtPnNlcnZlcl9oYW5kc2hha2Vfc2VjcmV0LCBocy0+aGFzaF9sZW4pKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhzLT5zZXJ2ZXJfaGFuZHNoYWtlX3NlY3JldCgpKSkg
ewogICAgIHJldHVybiBzc2xfaHNfZXJyb3I7CiAgIH0KIApAQCAtMzk5LDcgKzQwMiw3IEBAIHN0
YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fcmVhZF9zZXJ2ZXJfaGVsbG8oU1NMX0hBTkRTSEFL
RSAqaHMpIHsKICAgICAvLyBJZiBub3Qgc2VuZGluZyBlYXJseSBkYXRhLCBzZXQgY2xpZW50IHRy
YWZmaWMga2V5cyBub3cgc28gdGhhdCBhbGVydHMgYXJlCiAgICAgLy8gZW5jcnlwdGVkLgogICAg
IGlmICghdGxzMTNfc2V0X3RyYWZmaWNfa2V5KHNzbCwgc3NsX2VuY3J5cHRpb25faGFuZHNoYWtl
LCBldnBfYWVhZF9zZWFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzLT5jbGll
bnRfaGFuZHNoYWtlX3NlY3JldCwgaHMtPmhhc2hfbGVuKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhzLT5jbGllbnRfaGFuZHNoYWtlX3NlY3JldCgpKSkgewogICAgICAgcmV0
dXJuIHNzbF9oc19lcnJvcjsKICAgICB9CiAgIH0KQEAgLTUwNiw3ICs1MDksNiBAQCBzdGF0aWMg
ZW51bSBzc2xfaHNfd2FpdF90IGRvX3JlYWRfY2VydGlmaWNhdGVfcmVxdWVzdChTU0xfSEFORFNI
QUtFICpocykgewogICAgICAgIWhhdmVfc2lnYWxncyB8fAogICAgICAgIUNCU19nZXRfdTE2X2xl
bmd0aF9wcmVmaXhlZCgmc2lnYWxncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJnN1cHBvcnRlZF9zaWduYXR1cmVfYWxnb3JpdGhtcykgfHwKLSAgICAgIENCU19sZW4oJnN1
cHBvcnRlZF9zaWduYXR1cmVfYWxnb3JpdGhtcykgPT0gMCB8fAogICAgICAgIXRsczFfcGFyc2Vf
cGVlcl9zaWdhbGdzKGhzLCAmc3VwcG9ydGVkX3NpZ25hdHVyZV9hbGdvcml0aG1zKSkgewogICAg
IHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgYWxlcnQpOwogICAgIE9QRU5TU0xf
UFVUX0VSUk9SKFNTTCwgU1NMX1JfREVDT0RFX0VSUk9SKTsKQEAgLTYxNSw3ICs2MTcsOCBAQCBz
dGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3JlYWRfc2VydmVyX2ZpbmlzaGVkKFNTTF9IQU5E
U0hBS0UgKmhzKSB7CiAgICAgICAhdGxzMTNfcHJvY2Vzc19maW5pc2hlZChocywgbXNnLCBmYWxz
ZSAvKiBkb24ndCB1c2Ugc2F2ZWQgdmFsdWUgKi8pIHx8CiAgICAgICAhc3NsX2hhc2hfbWVzc2Fn
ZShocywgbXNnKSB8fAogICAgICAgLy8gVXBkYXRlIHRoZSBzZWNyZXQgdG8gdGhlIG1hc3RlciBz
ZWNyZXQgYW5kIGRlcml2ZSB0cmFmZmljIGtleXMuCi0gICAgICAhdGxzMTNfYWR2YW5jZV9rZXlf
c2NoZWR1bGUoaHMsIGtaZXJvZXMsIGhzLT5oYXNoX2xlbikgfHwKKyAgICAgICF0bHMxM19hZHZh
bmNlX2tleV9zY2hlZHVsZSgKKyAgICAgICAgICBocywgTWFrZUNvbnN0U3BhbihrWmVyb2VzLCBo
cy0+dHJhbnNjcmlwdC5EaWdlc3RMZW4oKSkpIHx8CiAgICAgICAhdGxzMTNfZGVyaXZlX2FwcGxp
Y2F0aW9uX3NlY3JldHMoaHMpKSB7CiAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgfQpAQCAt
NjQxLDcgKzY0NCw3IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9lbmRfb2Zf
ZWFybHlfZGF0YShTU0xfSEFORFNIQUtFICpocykgewogCiAgIGlmIChocy0+ZWFybHlfZGF0YV9v
ZmZlcmVkKSB7CiAgICAgaWYgKCF0bHMxM19zZXRfdHJhZmZpY19rZXkoc3NsLCBzc2xfZW5jcnlw
dGlvbl9oYW5kc2hha2UsIGV2cF9hZWFkX3NlYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaHMtPmNsaWVudF9oYW5kc2hha2Vfc2VjcmV0LCBocy0+aGFzaF9sZW4pKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHMtPmNsaWVudF9oYW5kc2hha2Vfc2VjcmV0KCkp
KSB7CiAgICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICAgIH0KICAgfQpAQCAtNjg0LDcgKzY4
Nyw3IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9jbGllbnRfY2VydGlmaWNh
dGUoU1NMX0hBTkRTSEFLRSAqaHMpIHsKIAogc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19z
ZW5kX2NsaWVudF9jZXJ0aWZpY2F0ZV92ZXJpZnkoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgLy8g
RG9uJ3Qgc2VuZCBDZXJ0aWZpY2F0ZVZlcmlmeSBpZiB0aGVyZSBpcyBubyBjZXJ0aWZpY2F0ZS4K
LSAgaWYgKCFzc2xfaGFzX2NlcnRpZmljYXRlKGhzLT5jb25maWcpKSB7CisgIGlmICghc3NsX2hh
c19jZXJ0aWZpY2F0ZShocykpIHsKICAgICBocy0+dGxzMTNfc3RhdGUgPSBzdGF0ZV9jb21wbGV0
ZV9zZWNvbmRfZmxpZ2h0OwogICAgIHJldHVybiBzc2xfaHNfb2s7CiAgIH0KQEAgLTczNiw5ICs3
MzksOSBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX2NvbXBsZXRlX3NlY29uZF9mbGln
aHQoU1NMX0hBTkRTSEFLRSAqaHMpIHsKIAogICAvLyBEZXJpdmUgdGhlIGZpbmFsIGtleXMgYW5k
IGVuYWJsZSB0aGVtLgogICBpZiAoIXRsczEzX3NldF90cmFmZmljX2tleShzc2wsIHNzbF9lbmNy
eXB0aW9uX2FwcGxpY2F0aW9uLCBldnBfYWVhZF9vcGVuLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBocy0+c2VydmVyX3RyYWZmaWNfc2VjcmV0XzAsIGhzLT5oYXNoX2xlbikgfHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHMtPnNlcnZlcl90cmFmZmljX3NlY3JldF8wKCkp
IHx8CiAgICAgICAhdGxzMTNfc2V0X3RyYWZmaWNfa2V5KHNzbCwgc3NsX2VuY3J5cHRpb25fYXBw
bGljYXRpb24sIGV2cF9hZWFkX3NlYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhz
LT5jbGllbnRfdHJhZmZpY19zZWNyZXRfMCwgaHMtPmhhc2hfbGVuKSB8fAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBocy0+Y2xpZW50X3RyYWZmaWNfc2VjcmV0XzAoKSkgfHwKICAgICAg
ICF0bHMxM19kZXJpdmVfcmVzdW1wdGlvbl9zZWNyZXQoaHMpKSB7CiAgICAgcmV0dXJuIHNzbF9o
c19lcnJvcjsKICAgfQpAQCAtODgyLDggKzg4NSw3IEBAIGJvb2wgdGxzMTNfcHJvY2Vzc19uZXdf
c2Vzc2lvbl90aWNrZXQoU1NMICpzc2wsIGNvbnN0IFNTTE1lc3NhZ2UgJm1zZykgewogICAgIHNl
c3Npb24tPnRpbWVvdXQgPSBzZXJ2ZXJfdGltZW91dDsKICAgfQogCi0gIGlmICghdGxzMTNfZGVy
aXZlX3Nlc3Npb25fcHNrKHNlc3Npb24uZ2V0KCksIHRpY2tldF9ub25jZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3NsLT5jdHgtPnF1aWNfbWV0aG9kICE9IG51bGxwdHIpKSB7
CisgIGlmICghdGxzMTNfZGVyaXZlX3Nlc3Npb25fcHNrKHNlc3Npb24uZ2V0KCksIHRpY2tldF9u
b25jZSkpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIApAQCAtOTAyLDcgKzkwNCw3IEBAIGJv
b2wgdGxzMTNfcHJvY2Vzc19uZXdfc2Vzc2lvbl90aWNrZXQoU1NMICpzc2wsIGNvbnN0IFNTTE1l
c3NhZ2UgJm1zZykgewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCi0gIGlmIChoYXZlX2Vhcmx5
X2RhdGFfaW5mbyAmJiBzc2wtPmVuYWJsZV9lYXJseV9kYXRhKSB7CisgIGlmIChoYXZlX2Vhcmx5
X2RhdGFfaW5mbykgewogICAgIGlmICghQ0JTX2dldF91MzIoJmVhcmx5X2RhdGFfaW5mbywgJnNl
c3Npb24tPnRpY2tldF9tYXhfZWFybHlfZGF0YSkgfHwKICAgICAgICAgQ0JTX2xlbigmZWFybHlf
ZGF0YV9pbmZvKSAhPSAwKSB7CiAgICAgICBzc2xfc2VuZF9hbGVydChzc2wsIFNTTDNfQUxfRkFU
QUwsIFNTTF9BRF9ERUNPREVfRVJST1IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90bHMxM19lbmMu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvc3NsL3RsczEzX2VuYy5jYwppbmRleCBmMTgwODRlYTE0NWYwYmNlODUyOWE4MmJj
ZGE0NWFhOTk1MzkxY2Y2Li5iOGJlYmUxYmE0ZDVhYzA5OWQ0NjZiMGQxOWQ4OWUzYjNkYzA3MzNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvc3NsL3RsczEzX2VuYy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3RsczEzX2Vu
Yy5jYwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPHN0
cmluZy5oPgogCisjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAKICNp
bmNsdWRlIDxvcGVuc3NsL2FlYWQuaD4KQEAgLTMzLDEyOCArMzQsMTEzIEBACiBCU1NMX05BTUVT
UEFDRV9CRUdJTgogCiBzdGF0aWMgYm9vbCBpbml0X2tleV9zY2hlZHVsZShTU0xfSEFORFNIQUtF
ICpocywgdWludDE2X3QgdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgU1NMX0NJUEhFUiAqY2lwaGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBTU0xfQ0lQSEVSICpjaXBoZXIpIHsKICAgaWYgKCFocy0+dHJhbnNjcmlwdC5Jbml0SGFz
aCh2ZXJzaW9uLCBjaXBoZXIpKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgaHMtPmhh
c2hfbGVuID0gaHMtPnRyYW5zY3JpcHQuRGlnZXN0TGVuKCk7Ci0KICAgLy8gSW5pdGlhbGl6ZSB0
aGUgc2VjcmV0IHRvIHRoZSB6ZXJvIGtleS4KLSAgT1BFTlNTTF9tZW1zZXQoaHMtPnNlY3JldCwg
MCwgaHMtPmhhc2hfbGVuKTsKKyAgaHMtPlJlc2l6ZVNlY3JldHMoaHMtPnRyYW5zY3JpcHQuRGln
ZXN0TGVuKCkpOworICBPUEVOU1NMX21lbXNldChocy0+c2VjcmV0KCkuZGF0YSgpLCAwLCBocy0+
c2VjcmV0KCkuc2l6ZSgpKTsKIAogICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCB0bHMxM19pbml0
X2tleV9zY2hlZHVsZShTU0xfSEFORFNIQUtFICpocywgY29uc3QgdWludDhfdCAqcHNrLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcHNrX2xlbikgeworc3RhdGljIGJvb2wg
aGtkZl9leHRyYWN0X3RvX3NlY3JldChTU0xfSEFORFNIQUtFICpocywgU3Bhbjxjb25zdCB1aW50
OF90PiBpbikgeworICBzaXplX3QgbGVuOworICBpZiAoIUhLREZfZXh0cmFjdChocy0+c2VjcmV0
KCkuZGF0YSgpLCAmbGVuLCBocy0+dHJhbnNjcmlwdC5EaWdlc3QoKSwKKyAgICAgICAgICAgICAg
ICAgICAgaW4uZGF0YSgpLCBpbi5zaXplKCksIGhzLT5zZWNyZXQoKS5kYXRhKCksCisgICAgICAg
ICAgICAgICAgICAgIGhzLT5zZWNyZXQoKS5zaXplKCkpKSB7CisgICAgcmV0dXJuIGZhbHNlOwor
ICB9CisgIGFzc2VydChsZW4gPT0gaHMtPnNlY3JldCgpLnNpemUoKSk7CisgIHJldHVybiB0cnVl
OworfQorCitib29sIHRsczEzX2luaXRfa2V5X3NjaGVkdWxlKFNTTF9IQU5EU0hBS0UgKmhzLCBT
cGFuPGNvbnN0IHVpbnQ4X3Q+IHBzaykgewogICBpZiAoIWluaXRfa2V5X3NjaGVkdWxlKGhzLCBz
c2xfcHJvdG9jb2xfdmVyc2lvbihocy0+c3NsKSwgaHMtPm5ld19jaXBoZXIpKSB7CiAgICAgcmV0
dXJuIGZhbHNlOwogICB9CiAKICAgaHMtPnRyYW5zY3JpcHQuRnJlZUJ1ZmZlcigpOwotICByZXR1
cm4gSEtERl9leHRyYWN0KGhzLT5zZWNyZXQsICZocy0+aGFzaF9sZW4sIGhzLT50cmFuc2NyaXB0
LkRpZ2VzdCgpLCBwc2ssCi0gICAgICAgICAgICAgICAgICAgICAgcHNrX2xlbiwgaHMtPnNlY3Jl
dCwgaHMtPmhhc2hfbGVuKTsKKyAgcmV0dXJuIGhrZGZfZXh0cmFjdF90b19zZWNyZXQoaHMsIHBz
ayk7CiB9CiAKLWJvb2wgdGxzMTNfaW5pdF9lYXJseV9rZXlfc2NoZWR1bGUoU1NMX0hBTkRTSEFL
RSAqaHMsIGNvbnN0IHVpbnQ4X3QgKnBzaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IHBza19sZW4pIHsKK2Jvb2wgdGxzMTNfaW5pdF9lYXJseV9rZXlfc2NoZWR1
bGUoU1NMX0hBTkRTSEFLRSAqaHMsIFNwYW48Y29uc3QgdWludDhfdD4gcHNrKSB7CiAgIFNTTCAq
Y29uc3Qgc3NsID0gaHMtPnNzbDsKICAgcmV0dXJuIGluaXRfa2V5X3NjaGVkdWxlKGhzLCBzc2xf
c2Vzc2lvbl9wcm90b2NvbF92ZXJzaW9uKHNzbC0+c2Vzc2lvbi5nZXQoKSksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzc2wtPnNlc3Npb24tPmNpcGhlcikgJiYKLSAgICAgICAgIEhLREZf
ZXh0cmFjdChocy0+c2VjcmV0LCAmaHMtPmhhc2hfbGVuLCBocy0+dHJhbnNjcmlwdC5EaWdlc3Qo
KSwgcHNrLAotICAgICAgICAgICAgICAgICAgICAgIHBza19sZW4sIGhzLT5zZWNyZXQsIGhzLT5o
YXNoX2xlbik7CisgICAgICAgICBoa2RmX2V4dHJhY3RfdG9fc2VjcmV0KGhzLCBwc2spOwogfQog
Ci1zdGF0aWMgYm9vbCBoa2RmX2V4cGFuZF9sYWJlbCh1aW50OF90ICpvdXQsIGNvbnN0IEVWUF9N
RCAqZGlnZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAq
c2VjcmV0LCBzaXplX3Qgc2VjcmV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgKmxhYmVsLCBzaXplX3QgbGFiZWxfbGVuLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLCBzaXplX3Qg
bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB1c2VfcXVpY19sYWJlbCkg
ewotICBzdGF0aWMgY29uc3QgY2hhciBrVExTMTNQcm90b2NvbExhYmVsW10gPSAidGxzMTMgIjsK
LSAgc3RhdGljIGNvbnN0IGNoYXIga1FVSUNQcm90b2NvbExhYmVsW10gPSAicXVpYyAiOwotCi0g
IGNvbnN0IGNoYXIgKnByb3RvY29sX2xhYmVsOwotICBpZiAodXNlX3F1aWNfbGFiZWwpIHsKLSAg
ICBwcm90b2NvbF9sYWJlbCA9IGtRVUlDUHJvdG9jb2xMYWJlbDsKLSAgfSBlbHNlIHsKLSAgICBw
cm90b2NvbF9sYWJlbCA9IGtUTFMxM1Byb3RvY29sTGFiZWw7Ci0gIH0KK3N0YXRpYyBTcGFuPGNv
bnN0IGNoYXI+IGxhYmVsX3RvX3NwYW4oY29uc3QgY2hhciAqbGFiZWwpIHsKKyAgcmV0dXJuIE1h
a2VDb25zdFNwYW4obGFiZWwsIHN0cmxlbihsYWJlbCkpOworfQogCitzdGF0aWMgYm9vbCBoa2Rm
X2V4cGFuZF9sYWJlbChTcGFuPHVpbnQ4X3Q+IG91dCwgY29uc3QgRVZQX01EICpkaWdlc3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNlY3JldCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYW48Y29uc3QgY2hhcj4gbGFiZWwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGhhc2gpIHsK
KyAgU3Bhbjxjb25zdCBjaGFyPiBwcm90b2NvbF9sYWJlbCA9IGxhYmVsX3RvX3NwYW4oInRsczEz
ICIpOwogICBTY29wZWRDQkIgY2JiOwogICBDQkIgY2hpbGQ7CiAgIEFycmF5PHVpbnQ4X3Q+IGhr
ZGZfbGFiZWw7Ci0gIGlmICghQ0JCX2luaXQoY2JiLmdldCgpLAotICAgICAgICAgICAgICAgIDIg
KyAxICsgc3RybGVuKHByb3RvY29sX2xhYmVsKSArIGxhYmVsX2xlbiArIDEgKyBoYXNoX2xlbikg
fHwKLSAgICAgICFDQkJfYWRkX3UxNihjYmIuZ2V0KCksIGxlbikgfHwKKyAgaWYgKCFDQkJfaW5p
dChjYmIuZ2V0KCksIDIgKyAxICsgcHJvdG9jb2xfbGFiZWwuc2l6ZSgpICsgbGFiZWwuc2l6ZSgp
ICsgMSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC5zaXplKCkpIHx8Cisg
ICAgICAhQ0JCX2FkZF91MTYoY2JiLmdldCgpLCBvdXQuc2l6ZSgpKSB8fAogICAgICAgIUNCQl9h
ZGRfdThfbGVuZ3RoX3ByZWZpeGVkKGNiYi5nZXQoKSwgJmNoaWxkKSB8fAotICAgICAgIUNCQl9h
ZGRfYnl0ZXMoJmNoaWxkLCAoY29uc3QgdWludDhfdCAqKXByb3RvY29sX2xhYmVsLAotICAgICAg
ICAgICAgICAgICAgICAgc3RybGVuKHByb3RvY29sX2xhYmVsKSkgfHwKLSAgICAgICFDQkJfYWRk
X2J5dGVzKCZjaGlsZCwgKGNvbnN0IHVpbnQ4X3QgKilsYWJlbCwgbGFiZWxfbGVuKSB8fAorICAg
ICAgIUNCQl9hZGRfYnl0ZXMoJmNoaWxkLAorICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KHByb3RvY29sX2xhYmVsLmRhdGEoKSksCisgICAgICAg
ICAgICAgICAgICAgICBwcm90b2NvbF9sYWJlbC5zaXplKCkpIHx8CisgICAgICAhQ0JCX2FkZF9i
eXRlcygmY2hpbGQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihsYWJlbC5kYXRh
KCkpLAorICAgICAgICAgICAgICAgICAgICAgbGFiZWwuc2l6ZSgpKSB8fAogICAgICAgIUNCQl9h
ZGRfdThfbGVuZ3RoX3ByZWZpeGVkKGNiYi5nZXQoKSwgJmNoaWxkKSB8fAotICAgICAgIUNCQl9h
ZGRfYnl0ZXMoJmNoaWxkLCBoYXNoLCBoYXNoX2xlbikgfHwKKyAgICAgICFDQkJfYWRkX2J5dGVz
KCZjaGlsZCwgaGFzaC5kYXRhKCksIGhhc2guc2l6ZSgpKSB8fAogICAgICAgIUNCQkZpbmlzaEFy
cmF5KGNiYi5nZXQoKSwgJmhrZGZfbGFiZWwpKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAK
LSAgcmV0dXJuIEhLREZfZXhwYW5kKG91dCwgbGVuLCBkaWdlc3QsIHNlY3JldCwgc2VjcmV0X2xl
biwgaGtkZl9sYWJlbC5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICBoa2RmX2xhYmVsLnNp
emUoKSk7CisgIHJldHVybiBIS0RGX2V4cGFuZChvdXQuZGF0YSgpLCBvdXQuc2l6ZSgpLCBkaWdl
c3QsIHNlY3JldC5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICBzZWNyZXQuc2l6ZSgpLCBo
a2RmX2xhYmVsLmRhdGEoKSwgaGtkZl9sYWJlbC5zaXplKCkpOwogfQogCiBzdGF0aWMgY29uc3Qg
Y2hhciBrVExTMTNMYWJlbERlcml2ZWRbXSA9ICJkZXJpdmVkIjsKIAotYm9vbCB0bHMxM19hZHZh
bmNlX2tleV9zY2hlZHVsZShTU0xfSEFORFNIQUtFICpocywgY29uc3QgdWludDhfdCAqaW4sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pIHsKK2Jvb2wgdGxzMTNf
YWR2YW5jZV9rZXlfc2NoZWR1bGUoU1NMX0hBTkRTSEFLRSAqaHMsIFNwYW48Y29uc3QgdWludDhf
dD4gaW4pIHsKICAgdWludDhfdCBkZXJpdmVfY29udGV4dFtFVlBfTUFYX01EX1NJWkVdOwogICB1
bnNpZ25lZCBkZXJpdmVfY29udGV4dF9sZW47Ci0gIGlmICghRVZQX0RpZ2VzdChudWxscHRyLCAw
LCBkZXJpdmVfY29udGV4dCwgJmRlcml2ZV9jb250ZXh0X2xlbiwKLSAgICAgICAgICAgICAgICAg
IGhzLT50cmFuc2NyaXB0LkRpZ2VzdCgpLCBudWxscHRyKSkgewotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotCi0gIGlmICghaGtkZl9leHBhbmRfbGFiZWwoaHMtPnNlY3JldCwgaHMtPnRyYW5zY3Jp
cHQuRGlnZXN0KCksIGhzLT5zZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaHMtPmhh
c2hfbGVuLCBrVExTMTNMYWJlbERlcml2ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
bGVuKGtUTFMxM0xhYmVsRGVyaXZlZCksIGRlcml2ZV9jb250ZXh0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlcml2ZV9jb250ZXh0X2xlbiwgaHMtPmhhc2hfbGVuLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGhzLT5zc2wtPmN0eC0+cXVpY19tZXRob2QgIT0gbnVsbHB0cikpIHsKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICByZXR1cm4gSEtERl9leHRyYWN0KGhzLT5zZWNyZXQs
ICZocy0+aGFzaF9sZW4sIGhzLT50cmFuc2NyaXB0LkRpZ2VzdCgpLCBpbiwKLSAgICAgICAgICAg
ICAgICAgICAgICBsZW4sIGhzLT5zZWNyZXQsIGhzLT5oYXNoX2xlbik7CisgIHJldHVybiBFVlBf
RGlnZXN0KG51bGxwdHIsIDAsIGRlcml2ZV9jb250ZXh0LCAmZGVyaXZlX2NvbnRleHRfbGVuLAor
ICAgICAgICAgICAgICAgICAgICBocy0+dHJhbnNjcmlwdC5EaWdlc3QoKSwgbnVsbHB0cikgJiYK
KyAgICAgICAgIGhrZGZfZXhwYW5kX2xhYmVsKGhzLT5zZWNyZXQoKSwgaHMtPnRyYW5zY3JpcHQu
RGlnZXN0KCksIGhzLT5zZWNyZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVs
X3RvX3NwYW4oa1RMUzEzTGFiZWxEZXJpdmVkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1ha2VDb25zdFNwYW4oZGVyaXZlX2NvbnRleHQsIGRlcml2ZV9jb250ZXh0X2xlbikpICYmCisg
ICAgICAgICBoa2RmX2V4dHJhY3RfdG9fc2VjcmV0KGhzLCBpbik7CiB9CiAKLS8vIGRlcml2ZV9z
ZWNyZXQgZGVyaXZlcyBhIHNlY3JldCBvZiBsZW5ndGggfGxlbnwgYW5kIHdyaXRlcyB0aGUgcmVz
dWx0IGluIHxvdXR8Ci0vLyB3aXRoIHRoZSBnaXZlbiBsYWJlbCBhbmQgdGhlIGN1cnJlbnQgYmFz
ZSBzZWNyZXQgYW5kIG1vc3QgcmVjZW50bHktc2F2ZWQKLS8vIGhhbmRzaGFrZSBjb250ZXh0LiBJ
dCByZXR1cm5zIHRydWUgb24gc3VjY2VzcyBhbmQgZmFsc2Ugb24gZXJyb3IuCi1zdGF0aWMgYm9v
bCBkZXJpdmVfc2VjcmV0KFNTTF9IQU5EU0hBS0UgKmhzLCB1aW50OF90ICpvdXQsIHNpemVfdCBs
ZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxhYmVsLCBzaXplX3Qg
bGFiZWxfbGVuKSB7CisvLyBkZXJpdmVfc2VjcmV0IGRlcml2ZXMgYSBzZWNyZXQgb2YgbGVuZ3Ro
IHxvdXQuc2l6ZSgpfCBhbmQgd3JpdGVzIHRoZSByZXN1bHQKKy8vIGluIHxvdXR8IHdpdGggdGhl
IGdpdmVuIGxhYmVsLCB0aGUgY3VycmVudCBiYXNlIHNlY3JldCwgYW5kIHRoZSBtb3N0CisvLyBy
ZWNlbnRseS1zYXZlZCBoYW5kc2hha2UgY29udGV4dC4gSXQgcmV0dXJucyB0cnVlIG9uIHN1Y2Nl
c3MgYW5kIGZhbHNlIG9uCisvLyBlcnJvci4KK3N0YXRpYyBib29sIGRlcml2ZV9zZWNyZXQoU1NM
X0hBTkRTSEFLRSAqaHMsIFNwYW48dWludDhfdD4gb3V0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBTcGFuPGNvbnN0IGNoYXI+IGxhYmVsKSB7CiAgIHVpbnQ4X3QgY29udGV4dF9oYXNoW0VW
UF9NQVhfTURfU0laRV07CiAgIHNpemVfdCBjb250ZXh0X2hhc2hfbGVuOwogICBpZiAoIWhzLT50
cmFuc2NyaXB0LkdldEhhc2goY29udGV4dF9oYXNoLCAmY29udGV4dF9oYXNoX2xlbikpIHsKICAg
ICByZXR1cm4gZmFsc2U7CiAgIH0KIAotICByZXR1cm4gaGtkZl9leHBhbmRfbGFiZWwob3V0LCBo
cy0+dHJhbnNjcmlwdC5EaWdlc3QoKSwgaHMtPnNlY3JldCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhzLT5oYXNoX2xlbiwgbGFiZWwsIGxhYmVsX2xlbiwgY29udGV4dF9oYXNoLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dF9oYXNoX2xlbiwgbGVuLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaHMtPnNzbC0+Y3R4LT5xdWljX21ldGhvZCAhPSBudWxscHRyKTsK
KyAgcmV0dXJuIGhrZGZfZXhwYW5kX2xhYmVsKG91dCwgaHMtPnRyYW5zY3JpcHQuRGlnZXN0KCks
IGhzLT5zZWNyZXQoKSwgbGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWtlQ29u
c3RTcGFuKGNvbnRleHRfaGFzaCwgY29udGV4dF9oYXNoX2xlbikpOwogfQogCiBib29sIHRsczEz
X3NldF90cmFmZmljX2tleShTU0wgKnNzbCwgZW51bSBzc2xfZW5jcnlwdGlvbl9sZXZlbF90IGxl
dmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBldnBfYWVhZF9kaXJlY3Rpb25f
dCBkaXJlY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0
cmFmZmljX3NlY3JldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0cmFmZmlj
X3NlY3JldF9sZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYW48Y29uc3QgdWlu
dDhfdD4gdHJhZmZpY19zZWNyZXQpIHsKICAgY29uc3QgU1NMX1NFU1NJT04gKnNlc3Npb24gPSBT
U0xfZ2V0X3Nlc3Npb24oc3NsKTsKICAgdWludDE2X3QgdmVyc2lvbiA9IHNzbF9zZXNzaW9uX3By
b3RvY29sX3ZlcnNpb24oc2Vzc2lvbik7CiAKLSAgaWYgKHRyYWZmaWNfc2VjcmV0X2xlbiA+IDB4
ZmYpIHsKLSAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIEVSUl9SX09WRVJGTE9XKTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0gIH0KLQogICBVbmlxdWVQdHI8U1NMQUVBRENvbnRleHQ+IHRyYWZmaWNf
YWVhZDsKLSAgaWYgKHNzbC0+Y3R4LT5xdWljX21ldGhvZCA9PSBudWxscHRyKSB7CisgIGlmIChz
c2wtPnF1aWNfbWV0aG9kID09IG51bGxwdHIpIHsKICAgICAvLyBMb29rIHVwIGNpcGhlciBzdWl0
ZSBwcm9wZXJ0aWVzLgogICAgIGNvbnN0IEVWUF9BRUFEICphZWFkOwogICAgIHNpemVfdCBkaXNj
YXJkOwpAQCAtMTY3LDI3ICsxNTMsMjYgQEAgYm9vbCB0bHMxM19zZXRfdHJhZmZpY19rZXkoU1NM
ICpzc2wsIGVudW0gc3NsX2VuY3J5cHRpb25fbGV2ZWxfdCBsZXZlbCwKIAogICAgIC8vIERlcml2
ZSB0aGUga2V5LgogICAgIHNpemVfdCBrZXlfbGVuID0gRVZQX0FFQURfa2V5X2xlbmd0aChhZWFk
KTsKLSAgICB1aW50OF90IGtleVtFVlBfQUVBRF9NQVhfS0VZX0xFTkdUSF07Ci0gICAgaWYgKCFo
a2RmX2V4cGFuZF9sYWJlbChrZXksIGRpZ2VzdCwgdHJhZmZpY19zZWNyZXQsIHRyYWZmaWNfc2Vj
cmV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiLCAzLCBOVUxMLCAwLCBr
ZXlfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsLT5jdHgtPnF1aWNfbWV0aG9k
ICE9IG51bGxwdHIpKSB7CisgICAgdWludDhfdCBrZXlfYnVmW0VWUF9BRUFEX01BWF9LRVlfTEVO
R1RIXTsKKyAgICBhdXRvIGtleSA9IE1ha2VTcGFuKGtleV9idWYsIGtleV9sZW4pOworICAgIGlm
ICghaGtkZl9leHBhbmRfbGFiZWwoa2V5LCBkaWdlc3QsIHRyYWZmaWNfc2VjcmV0LCBsYWJlbF90
b19zcGFuKCJrZXkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9KSkgewogICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIC8vIERlcml2ZSB0aGUgSVYuCiAgICAgc2l6ZV90
IGl2X2xlbiA9IEVWUF9BRUFEX25vbmNlX2xlbmd0aChhZWFkKTsKLSAgICB1aW50OF90IGl2W0VW
UF9BRUFEX01BWF9OT05DRV9MRU5HVEhdOwotICAgIGlmICghaGtkZl9leHBhbmRfbGFiZWwoaXYs
IGRpZ2VzdCwgdHJhZmZpY19zZWNyZXQsIHRyYWZmaWNfc2VjcmV0X2xlbiwgIml2IiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIsIE5VTEwsIDAsIGl2X2xlbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNzbC0+Y3R4LT5xdWljX21ldGhvZCAhPSBudWxscHRyKSkgeworICAgIHVp
bnQ4X3QgaXZfYnVmW0VWUF9BRUFEX01BWF9OT05DRV9MRU5HVEhdOworICAgIGF1dG8gaXYgPSBN
YWtlU3Bhbihpdl9idWYsIGl2X2xlbik7CisgICAgaWYgKCFoa2RmX2V4cGFuZF9sYWJlbChpdiwg
ZGlnZXN0LCB0cmFmZmljX3NlY3JldCwgbGFiZWxfdG9fc3BhbigiaXYiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHt9KSkgewogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogCi0g
ICAgdHJhZmZpY19hZWFkID0gU1NMQUVBRENvbnRleHQ6OkNyZWF0ZSgKLSAgICAgICAgZGlyZWN0
aW9uLCBzZXNzaW9uLT5zc2xfdmVyc2lvbiwgU1NMX2lzX2R0bHMoc3NsKSwgc2Vzc2lvbi0+Y2lw
aGVyLAotICAgICAgICBNYWtlQ29uc3RTcGFuKGtleSwga2V5X2xlbiksIFNwYW48Y29uc3QgdWlu
dDhfdD4oKSwKLSAgICAgICAgTWFrZUNvbnN0U3BhbihpdiwgaXZfbGVuKSk7CisgICAgdHJhZmZp
Y19hZWFkID0gU1NMQUVBRENvbnRleHQ6OkNyZWF0ZShkaXJlY3Rpb24sIHNlc3Npb24tPnNzbF92
ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1NMX2lz
X2R0bHMoc3NsKSwgc2Vzc2lvbi0+Y2lwaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga2V5LCBTcGFuPGNvbnN0IHVpbnQ4X3Q+KCksIGl2KTsKICAgfSBlbHNl
IHsKICAgICAvLyBJbnN0YWxsIGEgcGxhY2Vob2xkZXIgU1NMQUVBRENvbnRleHQgc28gdGhhdCBT
U0wgYWNjZXNzb3JzIHdvcmsuIFRoZQogICAgIC8vIGVuY3J5cHRpb24gaXRzZWxmIHdpbGwgYmUg
aGFuZGxlZCBieSB0aGUgU1NMX1FVSUNfTUVUSE9ELgpAQCAtMjEwLDE1ICsxOTUsMjIgQEAgYm9v
bCB0bHMxM19zZXRfdHJhZmZpY19rZXkoU1NMICpzc2wsIGVudW0gc3NsX2VuY3J5cHRpb25fbGV2
ZWxfdCBsZXZlbCwKICAgfQogCiAgIC8vIFNhdmUgdGhlIHRyYWZmaWMgc2VjcmV0LgorICBpZiAo
dHJhZmZpY19zZWNyZXQuc2l6ZSgpID4KKyAgICAgICAgICBPUEVOU1NMX0FSUkFZX1NJWkUoc3Ns
LT5zMy0+cmVhZF90cmFmZmljX3NlY3JldCkgfHwKKyAgICAgIHRyYWZmaWNfc2VjcmV0LnNpemUo
KSA+CisgICAgICAgICAgT1BFTlNTTF9BUlJBWV9TSVpFKHNzbC0+czMtPndyaXRlX3RyYWZmaWNf
c2VjcmV0KSkgeworICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgRVJSX1JfSU5URVJOQUxfRVJS
T1IpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQogICBpZiAoZGlyZWN0aW9uID09IGV2cF9hZWFk
X29wZW4pIHsKLSAgICBPUEVOU1NMX21lbW1vdmUoc3NsLT5zMy0+cmVhZF90cmFmZmljX3NlY3Jl
dCwgdHJhZmZpY19zZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgIHRyYWZmaWNfc2VjcmV0X2xl
bik7Ci0gICAgc3NsLT5zMy0+cmVhZF90cmFmZmljX3NlY3JldF9sZW4gPSB0cmFmZmljX3NlY3Jl
dF9sZW47CisgICAgT1BFTlNTTF9tZW1tb3ZlKHNzbC0+czMtPnJlYWRfdHJhZmZpY19zZWNyZXQs
IHRyYWZmaWNfc2VjcmV0LmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgdHJhZmZpY19zZWNy
ZXQuc2l6ZSgpKTsKKyAgICBzc2wtPnMzLT5yZWFkX3RyYWZmaWNfc2VjcmV0X2xlbiA9IHRyYWZm
aWNfc2VjcmV0LnNpemUoKTsKICAgICBzc2wtPnMzLT5yZWFkX2xldmVsID0gbGV2ZWw7CiAgIH0g
ZWxzZSB7Ci0gICAgT1BFTlNTTF9tZW1tb3ZlKHNzbC0+czMtPndyaXRlX3RyYWZmaWNfc2VjcmV0
LCB0cmFmZmljX3NlY3JldCwKLSAgICAgICAgICAgICAgICAgICAgdHJhZmZpY19zZWNyZXRfbGVu
KTsKLSAgICBzc2wtPnMzLT53cml0ZV90cmFmZmljX3NlY3JldF9sZW4gPSB0cmFmZmljX3NlY3Jl
dF9sZW47CisgICAgT1BFTlNTTF9tZW1tb3ZlKHNzbC0+czMtPndyaXRlX3RyYWZmaWNfc2VjcmV0
LCB0cmFmZmljX3NlY3JldC5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgIHRyYWZmaWNfc2Vj
cmV0LnNpemUoKSk7CisgICAgc3NsLT5zMy0+d3JpdGVfdHJhZmZpY19zZWNyZXRfbGVuID0gdHJh
ZmZpY19zZWNyZXQuc2l6ZSgpOwogICAgIHNzbC0+czMtPndyaXRlX2xldmVsID0gbGV2ZWw7CiAg
IH0KIApAQCAtMjI3LDcgKzIxOSw2IEBAIGJvb2wgdGxzMTNfc2V0X3RyYWZmaWNfa2V5KFNTTCAq
c3NsLCBlbnVtIHNzbF9lbmNyeXB0aW9uX2xldmVsX3QgbGV2ZWwsCiAKIAogc3RhdGljIGNvbnN0
IGNoYXIga1RMUzEzTGFiZWxFeHBvcnRlcltdID0gImV4cCBtYXN0ZXIiOwotc3RhdGljIGNvbnN0
IGNoYXIga1RMUzEzTGFiZWxFYXJseUV4cG9ydGVyW10gPSAiZSBleHAgbWFzdGVyIjsKIAogc3Rh
dGljIGNvbnN0IGNoYXIga1RMUzEzTGFiZWxDbGllbnRFYXJseVRyYWZmaWNbXSA9ICJjIGUgdHJh
ZmZpYyI7CiBzdGF0aWMgY29uc3QgY2hhciBrVExTMTNMYWJlbENsaWVudEhhbmRzaGFrZVRyYWZm
aWNbXSA9ICJjIGhzIHRyYWZmaWMiOwpAQCAtMjM3LDMwICsyMjgsMjYgQEAgc3RhdGljIGNvbnN0
IGNoYXIga1RMUzEzTGFiZWxTZXJ2ZXJBcHBsaWNhdGlvblRyYWZmaWNbXSA9ICJzIGFwIHRyYWZm
aWMiOwogCiBib29sIHRsczEzX2Rlcml2ZV9lYXJseV9zZWNyZXRzKFNTTF9IQU5EU0hBS0UgKmhz
KSB7CiAgIFNTTCAqY29uc3Qgc3NsID0gaHMtPnNzbDsKLSAgaWYgKCFkZXJpdmVfc2VjcmV0KGhz
LCBocy0+ZWFybHlfdHJhZmZpY19zZWNyZXQsIGhzLT5oYXNoX2xlbiwKLSAgICAgICAgICAgICAg
ICAgICAgIGtUTFMxM0xhYmVsQ2xpZW50RWFybHlUcmFmZmljLAotICAgICAgICAgICAgICAgICAg
ICAgc3RybGVuKGtUTFMxM0xhYmVsQ2xpZW50RWFybHlUcmFmZmljKSkgfHwKKyAgaWYgKCFkZXJp
dmVfc2VjcmV0KGhzLCBocy0+ZWFybHlfdHJhZmZpY19zZWNyZXQoKSwKKyAgICAgICAgICAgICAg
ICAgICAgIGxhYmVsX3RvX3NwYW4oa1RMUzEzTGFiZWxDbGllbnRFYXJseVRyYWZmaWMpKSB8fAog
ICAgICAgIXNzbF9sb2dfc2VjcmV0KHNzbCwgIkNMSUVOVF9FQVJMWV9UUkFGRklDX1NFQ1JFVCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgaHMtPmVhcmx5X3RyYWZmaWNfc2VjcmV0LCBocy0+aGFz
aF9sZW4pIHx8Ci0gICAgICAhZGVyaXZlX3NlY3JldChocywgc3NsLT5zMy0+ZWFybHlfZXhwb3J0
ZXJfc2VjcmV0LCBocy0+aGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICBrVExTMTNMYWJl
bEVhcmx5RXhwb3J0ZXIsCi0gICAgICAgICAgICAgICAgICAgICBzdHJsZW4oa1RMUzEzTGFiZWxF
YXJseUV4cG9ydGVyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICBocy0+ZWFybHlfdHJhZmZp
Y19zZWNyZXQoKSkpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KLSAgc3NsLT5zMy0+ZWFybHlf
ZXhwb3J0ZXJfc2VjcmV0X2xlbiA9IGhzLT5oYXNoX2xlbjsKIAotICBpZiAoc3NsLT5jdHgtPnF1
aWNfbWV0aG9kICE9IG51bGxwdHIpIHsKKyAgaWYgKHNzbC0+cXVpY19tZXRob2QgIT0gbnVsbHB0
cikgewogICAgIGlmIChzc2wtPnNlcnZlcikgewotICAgICAgaWYgKCFzc2wtPmN0eC0+cXVpY19t
ZXRob2QtPnNldF9lbmNyeXB0aW9uX3NlY3JldHMoCi0gICAgICAgICAgICAgIHNzbCwgc3NsX2Vu
Y3J5cHRpb25fZWFybHlfZGF0YSwgbnVsbHB0ciwgaHMtPmVhcmx5X3RyYWZmaWNfc2VjcmV0LAot
ICAgICAgICAgICAgICBocy0+aGFzaF9sZW4pKSB7CisgICAgICBpZiAoIXNzbC0+cXVpY19tZXRo
b2QtPnNldF9lbmNyeXB0aW9uX3NlY3JldHMoCisgICAgICAgICAgICAgIHNzbCwgc3NsX2VuY3J5
cHRpb25fZWFybHlfZGF0YSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgaHMtPmVhcmx5X3RyYWZm
aWNfc2VjcmV0KCkuZGF0YSgpLAorICAgICAgICAgICAgICBocy0+ZWFybHlfdHJhZmZpY19zZWNy
ZXQoKS5zaXplKCkpKSB7CiAgICAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfUVVJ
Q19JTlRFUk5BTF9FUlJPUik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgIH0KICAgICB9
IGVsc2UgewotICAgICAgaWYgKCFzc2wtPmN0eC0+cXVpY19tZXRob2QtPnNldF9lbmNyeXB0aW9u
X3NlY3JldHMoCi0gICAgICAgICAgICAgIHNzbCwgc3NsX2VuY3J5cHRpb25fZWFybHlfZGF0YSwg
aHMtPmVhcmx5X3RyYWZmaWNfc2VjcmV0LCBudWxscHRyLAotICAgICAgICAgICAgICBocy0+aGFz
aF9sZW4pKSB7CisgICAgICBpZiAoIXNzbC0+cXVpY19tZXRob2QtPnNldF9lbmNyeXB0aW9uX3Nl
Y3JldHMoCisgICAgICAgICAgICAgIHNzbCwgc3NsX2VuY3J5cHRpb25fZWFybHlfZGF0YSwgaHMt
PmVhcmx5X3RyYWZmaWNfc2VjcmV0KCkuZGF0YSgpLAorICAgICAgICAgICAgICBudWxscHRyLCBo
cy0+ZWFybHlfdHJhZmZpY19zZWNyZXQoKS5zaXplKCkpKSB7CiAgICAgICAgIE9QRU5TU0xfUFVU
X0VSUk9SKFNTTCwgU1NMX1JfUVVJQ19JTlRFUk5BTF9FUlJPUik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgIH0KQEAgLTI3MCwxMzYgKzI1NywxMTcgQEAgYm9vbCB0bHMxM19kZXJpdmVf
ZWFybHlfc2VjcmV0cyhTU0xfSEFORFNIQUtFICpocykgewogICByZXR1cm4gdHJ1ZTsKIH0KIAor
c3RhdGljIGJvb2wgc2V0X3F1aWNfc2VjcmV0cyhTU0xfSEFORFNIQUtFICpocywgc3NsX2VuY3J5
cHRpb25fbGV2ZWxfdCBsZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Bhbjxj
b25zdCB1aW50OF90PiBjbGllbnRfd3JpdGVfc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNlcnZlcl93cml0ZV9zZWNyZXQpIHsKKyAgU1NM
ICpjb25zdCBzc2wgPSBocy0+c3NsOworICBhc3NlcnQoY2xpZW50X3dyaXRlX3NlY3JldC5zaXpl
KCkgPT0gc2VydmVyX3dyaXRlX3NlY3JldC5zaXplKCkpOworICBpZiAoc3NsLT5xdWljX21ldGhv
ZCA9PSBudWxscHRyKSB7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgaWYgKCFzc2wtPnNlcnZl
cikgeworICAgIHN0ZDo6c3dhcChjbGllbnRfd3JpdGVfc2VjcmV0LCBzZXJ2ZXJfd3JpdGVfc2Vj
cmV0KTsKKyAgfQorICByZXR1cm4gc3NsLT5xdWljX21ldGhvZC0+c2V0X2VuY3J5cHRpb25fc2Vj
cmV0cygKKyAgICAgIHNzbCwgbGV2ZWwsCisgICAgICAvKnJlYWRfc2VjcmV0PSovY2xpZW50X3dy
aXRlX3NlY3JldC5kYXRhKCksCisgICAgICAvKndyaXRlX3NlY3JldD0qL3NlcnZlcl93cml0ZV9z
ZWNyZXQuZGF0YSgpLCBjbGllbnRfd3JpdGVfc2VjcmV0LnNpemUoKSk7Cit9CisKIGJvb2wgdGxz
MTNfZGVyaXZlX2hhbmRzaGFrZV9zZWNyZXRzKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgIFNTTCAq
Y29uc3Qgc3NsID0gaHMtPnNzbDsKLSAgaWYgKCFkZXJpdmVfc2VjcmV0KGhzLCBocy0+Y2xpZW50
X2hhbmRzaGFrZV9zZWNyZXQsIGhzLT5oYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgIGtU
TFMxM0xhYmVsQ2xpZW50SGFuZHNoYWtlVHJhZmZpYywKLSAgICAgICAgICAgICAgICAgICAgIHN0
cmxlbihrVExTMTNMYWJlbENsaWVudEhhbmRzaGFrZVRyYWZmaWMpKSB8fAorICBpZiAoIWRlcml2
ZV9zZWNyZXQoaHMsIGhzLT5jbGllbnRfaGFuZHNoYWtlX3NlY3JldCgpLAorICAgICAgICAgICAg
ICAgICAgICAgbGFiZWxfdG9fc3BhbihrVExTMTNMYWJlbENsaWVudEhhbmRzaGFrZVRyYWZmaWMp
KSB8fAogICAgICAgIXNzbF9sb2dfc2VjcmV0KHNzbCwgIkNMSUVOVF9IQU5EU0hBS0VfVFJBRkZJ
Q19TRUNSRVQiLAotICAgICAgICAgICAgICAgICAgICAgIGhzLT5jbGllbnRfaGFuZHNoYWtlX3Nl
Y3JldCwgaHMtPmhhc2hfbGVuKSB8fAotICAgICAgIWRlcml2ZV9zZWNyZXQoaHMsIGhzLT5zZXJ2
ZXJfaGFuZHNoYWtlX3NlY3JldCwgaHMtPmhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAg
a1RMUzEzTGFiZWxTZXJ2ZXJIYW5kc2hha2VUcmFmZmljLAotICAgICAgICAgICAgICAgICAgICAg
c3RybGVuKGtUTFMxM0xhYmVsU2VydmVySGFuZHNoYWtlVHJhZmZpYykpIHx8CisgICAgICAgICAg
ICAgICAgICAgICAgaHMtPmNsaWVudF9oYW5kc2hha2Vfc2VjcmV0KCkpIHx8CisgICAgICAhZGVy
aXZlX3NlY3JldChocywgaHMtPnNlcnZlcl9oYW5kc2hha2Vfc2VjcmV0KCksCisgICAgICAgICAg
ICAgICAgICAgICBsYWJlbF90b19zcGFuKGtUTFMxM0xhYmVsU2VydmVySGFuZHNoYWtlVHJhZmZp
YykpIHx8CiAgICAgICAhc3NsX2xvZ19zZWNyZXQoc3NsLCAiU0VSVkVSX0hBTkRTSEFLRV9UUkFG
RklDX1NFQ1JFVCIsCi0gICAgICAgICAgICAgICAgICAgICAgaHMtPnNlcnZlcl9oYW5kc2hha2Vf
c2VjcmV0LCBocy0+aGFzaF9sZW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgaHMtPnNlcnZl
cl9oYW5kc2hha2Vfc2VjcmV0KCkpIHx8CisgICAgICAhc2V0X3F1aWNfc2VjcmV0cyhocywgc3Ns
X2VuY3J5cHRpb25faGFuZHNoYWtlLAorICAgICAgICAgICAgICAgICAgICAgICAgaHMtPmNsaWVu
dF9oYW5kc2hha2Vfc2VjcmV0KCksCisgICAgICAgICAgICAgICAgICAgICAgICBocy0+c2VydmVy
X2hhbmRzaGFrZV9zZWNyZXQoKSkpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAotICBpZiAo
c3NsLT5jdHgtPnF1aWNfbWV0aG9kICE9IG51bGxwdHIpIHsKLSAgICBpZiAoc3NsLT5zZXJ2ZXIp
IHsKLSAgICAgIGlmICghc3NsLT5jdHgtPnF1aWNfbWV0aG9kLT5zZXRfZW5jcnlwdGlvbl9zZWNy
ZXRzKAotICAgICAgICAgICAgICBzc2wsIHNzbF9lbmNyeXB0aW9uX2hhbmRzaGFrZSwgaHMtPmNs
aWVudF9oYW5kc2hha2Vfc2VjcmV0LAotICAgICAgICAgICAgICBocy0+c2VydmVyX2hhbmRzaGFr
ZV9zZWNyZXQsIGhzLT5oYXNoX2xlbikpIHsKLSAgICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NM
LCBTU0xfUl9RVUlDX0lOVEVSTkFMX0VSUk9SKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBpZiAoIXNzbC0+Y3R4LT5xdWljX21ldGhvZC0+c2V0
X2VuY3J5cHRpb25fc2VjcmV0cygKLSAgICAgICAgICAgICAgc3NsLCBzc2xfZW5jcnlwdGlvbl9o
YW5kc2hha2UsIGhzLT5zZXJ2ZXJfaGFuZHNoYWtlX3NlY3JldCwKLSAgICAgICAgICAgICAgaHMt
PmNsaWVudF9oYW5kc2hha2Vfc2VjcmV0LCBocy0+aGFzaF9sZW4pKSB7Ci0gICAgICAgIE9QRU5T
U0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfUVVJQ19JTlRFUk5BTF9FUlJPUik7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQogICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCB0bHMxM19kZXJpdmVfYXBwbGljYXRpb25fc2VjcmV0cyhTU0xfSEFORFNIQUtFICpocykg
ewogICBTU0wgKmNvbnN0IHNzbCA9IGhzLT5zc2w7Ci0gIHNzbC0+czMtPmV4cG9ydGVyX3NlY3Jl
dF9sZW4gPSBocy0+aGFzaF9sZW47Ci0gIGlmICghZGVyaXZlX3NlY3JldChocywgaHMtPmNsaWVu
dF90cmFmZmljX3NlY3JldF8wLCBocy0+aGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICBr
VExTMTNMYWJlbENsaWVudEFwcGxpY2F0aW9uVHJhZmZpYywKLSAgICAgICAgICAgICAgICAgICAg
IHN0cmxlbihrVExTMTNMYWJlbENsaWVudEFwcGxpY2F0aW9uVHJhZmZpYykpIHx8CisgIHNzbC0+
czMtPmV4cG9ydGVyX3NlY3JldF9sZW4gPSBocy0+dHJhbnNjcmlwdC5EaWdlc3RMZW4oKTsKKyAg
aWYgKCFkZXJpdmVfc2VjcmV0KGhzLCBocy0+Y2xpZW50X3RyYWZmaWNfc2VjcmV0XzAoKSwKKyAg
ICAgICAgICAgICAgICAgICAgIGxhYmVsX3RvX3NwYW4oa1RMUzEzTGFiZWxDbGllbnRBcHBsaWNh
dGlvblRyYWZmaWMpKSB8fAogICAgICAgIXNzbF9sb2dfc2VjcmV0KHNzbCwgIkNMSUVOVF9UUkFG
RklDX1NFQ1JFVF8wIiwKLSAgICAgICAgICAgICAgICAgICAgICBocy0+Y2xpZW50X3RyYWZmaWNf
c2VjcmV0XzAsIGhzLT5oYXNoX2xlbikgfHwKLSAgICAgICFkZXJpdmVfc2VjcmV0KGhzLCBocy0+
c2VydmVyX3RyYWZmaWNfc2VjcmV0XzAsIGhzLT5oYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAg
ICAgIGtUTFMxM0xhYmVsU2VydmVyQXBwbGljYXRpb25UcmFmZmljLAotICAgICAgICAgICAgICAg
ICAgICAgc3RybGVuKGtUTFMxM0xhYmVsU2VydmVyQXBwbGljYXRpb25UcmFmZmljKSkgfHwKKyAg
ICAgICAgICAgICAgICAgICAgICBocy0+Y2xpZW50X3RyYWZmaWNfc2VjcmV0XzAoKSkgfHwKKyAg
ICAgICFkZXJpdmVfc2VjcmV0KGhzLCBocy0+c2VydmVyX3RyYWZmaWNfc2VjcmV0XzAoKSwKKyAg
ICAgICAgICAgICAgICAgICAgIGxhYmVsX3RvX3NwYW4oa1RMUzEzTGFiZWxTZXJ2ZXJBcHBsaWNh
dGlvblRyYWZmaWMpKSB8fAogICAgICAgIXNzbF9sb2dfc2VjcmV0KHNzbCwgIlNFUlZFUl9UUkFG
RklDX1NFQ1JFVF8wIiwKLSAgICAgICAgICAgICAgICAgICAgICBocy0+c2VydmVyX3RyYWZmaWNf
c2VjcmV0XzAsIGhzLT5oYXNoX2xlbikgfHwKLSAgICAgICFkZXJpdmVfc2VjcmV0KGhzLCBzc2wt
PnMzLT5leHBvcnRlcl9zZWNyZXQsIGhzLT5oYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAg
IGtUTFMxM0xhYmVsRXhwb3J0ZXIsIHN0cmxlbihrVExTMTNMYWJlbEV4cG9ydGVyKSkgfHwKLSAg
ICAgICFzc2xfbG9nX3NlY3JldChzc2wsICJFWFBPUlRFUl9TRUNSRVQiLCBzc2wtPnMzLT5leHBv
cnRlcl9zZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgICAgaHMtPmhhc2hfbGVuKSkgeworICAg
ICAgICAgICAgICAgICAgICAgIGhzLT5zZXJ2ZXJfdHJhZmZpY19zZWNyZXRfMCgpKSB8fAorICAg
ICAgIWRlcml2ZV9zZWNyZXQoCisgICAgICAgICAgaHMsIE1ha2VTcGFuKHNzbC0+czMtPmV4cG9y
dGVyX3NlY3JldCwgc3NsLT5zMy0+ZXhwb3J0ZXJfc2VjcmV0X2xlbiksCisgICAgICAgICAgbGFi
ZWxfdG9fc3BhbihrVExTMTNMYWJlbEV4cG9ydGVyKSkgfHwKKyAgICAgICFzc2xfbG9nX3NlY3Jl
dChzc2wsICJFWFBPUlRFUl9TRUNSRVQiLAorICAgICAgICAgICAgICAgICAgICAgIE1ha2VDb25z
dFNwYW4oc3NsLT5zMy0+ZXhwb3J0ZXJfc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3NsLT5zMy0+ZXhwb3J0ZXJfc2VjcmV0X2xlbikpIHx8CisgICAgICAhc2V0
X3F1aWNfc2VjcmV0cyhocywgc3NsX2VuY3J5cHRpb25fYXBwbGljYXRpb24sCisgICAgICAgICAg
ICAgICAgICAgICAgICBocy0+Y2xpZW50X3RyYWZmaWNfc2VjcmV0XzAoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhzLT5zZXJ2ZXJfdHJhZmZpY19zZWNyZXRfMCgpKSkgewogICAgIHJldHVy
biBmYWxzZTsKICAgfQogCi0gIGlmIChzc2wtPmN0eC0+cXVpY19tZXRob2QgIT0gbnVsbHB0cikg
ewotICAgIGlmIChzc2wtPnNlcnZlcikgewotICAgICAgaWYgKCFzc2wtPmN0eC0+cXVpY19tZXRo
b2QtPnNldF9lbmNyeXB0aW9uX3NlY3JldHMoCi0gICAgICAgICAgICAgIHNzbCwgc3NsX2VuY3J5
cHRpb25fYXBwbGljYXRpb24sIGhzLT5jbGllbnRfdHJhZmZpY19zZWNyZXRfMCwKLSAgICAgICAg
ICAgICAgaHMtPnNlcnZlcl90cmFmZmljX3NlY3JldF8wLCBocy0+aGFzaF9sZW4pKSB7Ci0gICAg
ICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfUVVJQ19JTlRFUk5BTF9FUlJPUik7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgaWYgKCFz
c2wtPmN0eC0+cXVpY19tZXRob2QtPnNldF9lbmNyeXB0aW9uX3NlY3JldHMoCi0gICAgICAgICAg
ICAgIHNzbCwgc3NsX2VuY3J5cHRpb25fYXBwbGljYXRpb24sIGhzLT5zZXJ2ZXJfdHJhZmZpY19z
ZWNyZXRfMCwKLSAgICAgICAgICAgICAgaHMtPmNsaWVudF90cmFmZmljX3NlY3JldF8wLCBocy0+
aGFzaF9sZW4pKSB7Ci0gICAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgU1NMX1JfUVVJQ19J
TlRFUk5BTF9FUlJPUik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICB9Ci0g
IH0KLQogICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIga1RMUzEzTGFiZWxB
cHBsaWNhdGlvblRyYWZmaWNbXSA9ICJ0cmFmZmljIHVwZCI7CiAKIGJvb2wgdGxzMTNfcm90YXRl
X3RyYWZmaWNfa2V5KFNTTCAqc3NsLCBlbnVtIGV2cF9hZWFkX2RpcmVjdGlvbl90IGRpcmVjdGlv
bikgewotICB1aW50OF90ICpzZWNyZXQ7Ci0gIHNpemVfdCBzZWNyZXRfbGVuOworICBTcGFuPHVp
bnQ4X3Q+IHNlY3JldDsKICAgaWYgKGRpcmVjdGlvbiA9PSBldnBfYWVhZF9vcGVuKSB7Ci0gICAg
c2VjcmV0ID0gc3NsLT5zMy0+cmVhZF90cmFmZmljX3NlY3JldDsKLSAgICBzZWNyZXRfbGVuID0g
c3NsLT5zMy0+cmVhZF90cmFmZmljX3NlY3JldF9sZW47CisgICAgc2VjcmV0ID0gTWFrZVNwYW4o
c3NsLT5zMy0+cmVhZF90cmFmZmljX3NlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICBzc2wt
PnMzLT5yZWFkX3RyYWZmaWNfc2VjcmV0X2xlbik7CiAgIH0gZWxzZSB7Ci0gICAgc2VjcmV0ID0g
c3NsLT5zMy0+d3JpdGVfdHJhZmZpY19zZWNyZXQ7Ci0gICAgc2VjcmV0X2xlbiA9IHNzbC0+czMt
PndyaXRlX3RyYWZmaWNfc2VjcmV0X2xlbjsKKyAgICBzZWNyZXQgPSBNYWtlU3Bhbihzc2wtPnMz
LT53cml0ZV90cmFmZmljX3NlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICBzc2wtPnMzLT53
cml0ZV90cmFmZmljX3NlY3JldF9sZW4pOwogICB9CiAKICAgY29uc3QgRVZQX01EICpkaWdlc3Qg
PSBzc2xfc2Vzc2lvbl9nZXRfZGlnZXN0KFNTTF9nZXRfc2Vzc2lvbihzc2wpKTsKLSAgaWYgKCFo
a2RmX2V4cGFuZF9sYWJlbChzZWNyZXQsIGRpZ2VzdCwgc2VjcmV0LCBzZWNyZXRfbGVuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGtUTFMxM0xhYmVsQXBwbGljYXRpb25UcmFmZmljLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihrVExTMTNMYWJlbEFwcGxpY2F0aW9uVHJhZmZp
YyksIE5VTEwsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2VjcmV0X2xlbiwgc3NsLT5j
dHgtPnF1aWNfbWV0aG9kICE9IG51bGxwdHIpKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0K
LSAgcmV0dXJuIHRsczEzX3NldF90cmFmZmljX2tleShzc2wsIHNzbF9lbmNyeXB0aW9uX2FwcGxp
Y2F0aW9uLCBkaXJlY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjcmV0
LCBzZWNyZXRfbGVuKTsKKyAgcmV0dXJuIGhrZGZfZXhwYW5kX2xhYmVsKHNlY3JldCwgZGlnZXN0
LCBzZWNyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF90b19zcGFuKGtUTFMx
M0xhYmVsQXBwbGljYXRpb25UcmFmZmljKSwge30pICYmCisgICAgICAgICB0bHMxM19zZXRfdHJh
ZmZpY19rZXkoc3NsLCBzc2xfZW5jcnlwdGlvbl9hcHBsaWNhdGlvbiwgZGlyZWN0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3JldCk7CiB9CiAKIHN0YXRpYyBjb25zdCBj
aGFyIGtUTFMxM0xhYmVsUmVzdW1wdGlvbltdID0gInJlcyBtYXN0ZXIiOwogCiBib29sIHRsczEz
X2Rlcml2ZV9yZXN1bXB0aW9uX3NlY3JldChTU0xfSEFORFNIQUtFICpocykgewotICBpZiAoaHMt
Pmhhc2hfbGVuID4gU1NMX01BWF9NQVNURVJfS0VZX0xFTkdUSCkgeworICBpZiAoaHMtPnRyYW5z
Y3JpcHQuRGlnZXN0TGVuKCkgPiBTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIKSB7CiAgICAgT1BF
TlNTTF9QVVRfRVJST1IoU1NMLCBFUlJfUl9JTlRFUk5BTF9FUlJPUik7CiAgICAgcmV0dXJuIGZh
bHNlOwogICB9Ci0gIGhzLT5uZXdfc2Vzc2lvbi0+bWFzdGVyX2tleV9sZW5ndGggPSBocy0+aGFz
aF9sZW47Ci0gIHJldHVybiBkZXJpdmVfc2VjcmV0KGhzLCBocy0+bmV3X3Nlc3Npb24tPm1hc3Rl
cl9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgIGhzLT5uZXdfc2Vzc2lvbi0+bWFzdGVyX2tl
eV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgIGtUTFMxM0xhYmVsUmVzdW1wdGlvbiwg
c3RybGVuKGtUTFMxM0xhYmVsUmVzdW1wdGlvbikpOworICBocy0+bmV3X3Nlc3Npb24tPm1hc3Rl
cl9rZXlfbGVuZ3RoID0gaHMtPnRyYW5zY3JpcHQuRGlnZXN0TGVuKCk7CisgIHJldHVybiBkZXJp
dmVfc2VjcmV0KAorICAgICAgaHMsCisgICAgICBNYWtlU3Bhbihocy0+bmV3X3Nlc3Npb24tPm1h
c3Rlcl9rZXksIGhzLT5uZXdfc2Vzc2lvbi0+bWFzdGVyX2tleV9sZW5ndGgpLAorICAgICAgbGFi
ZWxfdG9fc3BhbihrVExTMTNMYWJlbFJlc3VtcHRpb24pKTsKIH0KIAogc3RhdGljIGNvbnN0IGNo
YXIga1RMUzEzTGFiZWxGaW5pc2hlZFtdID0gImZpbmlzaGVkIjsKIAogLy8gdGxzMTNfdmVyaWZ5
X2RhdGEgc2V0cyB8b3V0fCB0byBiZSB0aGUgSE1BQyBvZiB8Y29udGV4dHwgdXNpbmcgYSBkZXJp
dmVkCi0vLyBGaW5pc2hlZCBrZXkgZm9yIGJvdGggRmluaXNoZWQgbWVzc2FnZXMgYW5kIHRoZSBQ
U0sgYmluZGVyLgotc3RhdGljIGJvb2wgdGxzMTNfdmVyaWZ5X2RhdGEoY29uc3QgRVZQX01EICpk
aWdlc3QsIHVpbnQxNl90IHZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50OF90ICpvdXQsIHNpemVfdCAqb3V0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHVpbnQ4X3QgKnNlY3JldCwgc2l6ZV90IGhhc2hfbGVuLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludDhfdCAqY29udGV4dCwgc2l6ZV90IGNvbnRleHRfbGVuLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB1c2VfcXVpYykgewotICB1aW50OF90
IGtleVtFVlBfTUFYX01EX1NJWkVdOworLy8gRmluaXNoZWQga2V5IGZvciBib3RoIEZpbmlzaGVk
IG1lc3NhZ2VzIGFuZCB0aGUgUFNLIGJpbmRlci4gfG91dHwgbXVzdCBoYXZlCisvLyBzcGFjZSBh
dmFpbGFibGUgZm9yIHxFVlBfTUFYX01EX1NJWkV8IGJ5dGVzLgorc3RhdGljIGJvb2wgdGxzMTNf
dmVyaWZ5X2RhdGEodWludDhfdCAqb3V0LCBzaXplX3QgKm91dF9sZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBFVlBfTUQgKmRpZ2VzdCwgdWludDE2X3QgdmVyc2lvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYW48Y29uc3QgdWludDhfdD4gc2VjcmV0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBjb250
ZXh0KSB7CisgIHVpbnQ4X3Qga2V5X2J1ZltFVlBfTUFYX01EX1NJWkVdOworICBhdXRvIGtleSA9
IE1ha2VTcGFuKGtleV9idWYsIEVWUF9NRF9zaXplKGRpZ2VzdCkpOwogICB1bnNpZ25lZCBsZW47
Ci0gIGlmICghaGtkZl9leHBhbmRfbGFiZWwoa2V5LCBkaWdlc3QsIHNlY3JldCwgaGFzaF9sZW4s
IGtUTFMxM0xhYmVsRmluaXNoZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKGtU
TFMxM0xhYmVsRmluaXNoZWQpLCBOVUxMLCAwLCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICB1c2VfcXVpYykgfHwKLSAgICAgIEhNQUMoZGlnZXN0LCBrZXksIGhhc2hfbGVuLCBj
b250ZXh0LCBjb250ZXh0X2xlbiwgb3V0LCAmbGVuKSA9PSBOVUxMKSB7CisgIGlmICghaGtkZl9l
eHBhbmRfbGFiZWwoa2V5LCBkaWdlc3QsIHNlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBsYWJlbF90b19zcGFuKGtUTFMxM0xhYmVsRmluaXNoZWQpLCB7fSkgfHwKKyAgICAgIEhNQUMo
ZGlnZXN0LCBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgpLCBjb250ZXh0LmRhdGEoKSwgY29udGV4dC5z
aXplKCksIG91dCwKKyAgICAgICAgICAgJmxlbikgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBm
YWxzZTsKICAgfQogICAqb3V0X2xlbiA9IGxlbjsKQEAgLTQwOCwyMCArMzc2LDE1IEBAIHN0YXRp
YyBib29sIHRsczEzX3ZlcmlmeV9kYXRhKGNvbnN0IEVWUF9NRCAqZGlnZXN0LCB1aW50MTZfdCB2
ZXJzaW9uLAogCiBib29sIHRsczEzX2ZpbmlzaGVkX21hYyhTU0xfSEFORFNIQUtFICpocywgdWlu
dDhfdCAqb3V0LCBzaXplX3QgKm91dF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IGlzX3NlcnZlcikgewotICBjb25zdCB1aW50OF90ICp0cmFmZmljX3NlY3JldDsKLSAgaWYgKGlz
X3NlcnZlcikgewotICAgIHRyYWZmaWNfc2VjcmV0ID0gaHMtPnNlcnZlcl9oYW5kc2hha2Vfc2Vj
cmV0OwotICB9IGVsc2UgewotICAgIHRyYWZmaWNfc2VjcmV0ID0gaHMtPmNsaWVudF9oYW5kc2hh
a2Vfc2VjcmV0OwotICB9CisgIFNwYW48Y29uc3QgdWludDhfdD4gdHJhZmZpY19zZWNyZXQgPQor
ICAgICAgaXNfc2VydmVyID8gaHMtPnNlcnZlcl9oYW5kc2hha2Vfc2VjcmV0KCkgOiBocy0+Y2xp
ZW50X2hhbmRzaGFrZV9zZWNyZXQoKTsKIAogICB1aW50OF90IGNvbnRleHRfaGFzaFtFVlBfTUFY
X01EX1NJWkVdOwogICBzaXplX3QgY29udGV4dF9oYXNoX2xlbjsKICAgaWYgKCFocy0+dHJhbnNj
cmlwdC5HZXRIYXNoKGNvbnRleHRfaGFzaCwgJmNvbnRleHRfaGFzaF9sZW4pIHx8Ci0gICAgICAh
dGxzMTNfdmVyaWZ5X2RhdGEoaHMtPnRyYW5zY3JpcHQuRGlnZXN0KCksIGhzLT5zc2wtPnZlcnNp
b24sIG91dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvdXRfbGVuLCB0cmFmZmljX3NlY3Jl
dCwgaHMtPmhhc2hfbGVuLCBjb250ZXh0X2hhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dF9oYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBocy0+c3NsLT5jdHgt
PnF1aWNfbWV0aG9kICE9IG51bGxwdHIpKSB7CisgICAgICAhdGxzMTNfdmVyaWZ5X2RhdGEob3V0
LCBvdXRfbGVuLCBocy0+dHJhbnNjcmlwdC5EaWdlc3QoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBocy0+c3NsLT52ZXJzaW9uLCB0cmFmZmljX3NlY3JldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBNYWtlQ29uc3RTcGFuKGNvbnRleHRfaGFzaCwgY29udGV4dF9oYXNoX2xlbikpKSB7
CiAgICAgcmV0dXJuIDA7CiAgIH0KICAgcmV0dXJuIDE7CkBAIC00MjksMTMgKzM5MiwxMyBAQCBi
b29sIHRsczEzX2ZpbmlzaGVkX21hYyhTU0xfSEFORFNIQUtFICpocywgdWludDhfdCAqb3V0LCBz
aXplX3QgKm91dF9sZW4sCiAKIHN0YXRpYyBjb25zdCBjaGFyIGtUTFMxM0xhYmVsUmVzdW1wdGlv
blBTS1tdID0gInJlc3VtcHRpb24iOwogCi1ib29sIHRsczEzX2Rlcml2ZV9zZXNzaW9uX3BzayhT
U0xfU0VTU0lPTiAqc2Vzc2lvbiwgU3Bhbjxjb25zdCB1aW50OF90PiBub25jZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdXNlX3F1aWMpIHsKK2Jvb2wgdGxzMTNfZGVyaXZl
X3Nlc3Npb25fcHNrKFNTTF9TRVNTSU9OICpzZXNzaW9uLCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IG5v
bmNlKSB7CiAgIGNvbnN0IEVWUF9NRCAqZGlnZXN0ID0gc3NsX3Nlc3Npb25fZ2V0X2RpZ2VzdChz
ZXNzaW9uKTsKLSAgcmV0dXJuIGhrZGZfZXhwYW5kX2xhYmVsKHNlc3Npb24tPm1hc3Rlcl9rZXks
IGRpZ2VzdCwgc2Vzc2lvbi0+bWFzdGVyX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlc3Npb24tPm1hc3Rlcl9rZXlfbGVuZ3RoLCBrVExTMTNMYWJlbFJlc3VtcHRpb25QU0ssCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4oa1RMUzEzTGFiZWxSZXN1bXB0aW9uUFNL
KSwgbm9uY2UuZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2Uuc2l6ZSgp
LCBzZXNzaW9uLT5tYXN0ZXJfa2V5X2xlbmd0aCwgdXNlX3F1aWMpOworICAvLyBUaGUgc2Vzc2lv
biBpbml0aWFsbHkgc3RvcmVzIHRoZSByZXN1bXB0aW9uX21hc3Rlcl9zZWNyZXQsIHdoaWNoIHdl
CisgIC8vIG92ZXJyaWRlIHdpdGggdGhlIFBTSy4KKyAgYXV0byBzZXNzaW9uX2tleSA9IE1ha2VT
cGFuKHNlc3Npb24tPm1hc3Rlcl9rZXksIHNlc3Npb24tPm1hc3Rlcl9rZXlfbGVuZ3RoKTsKKyAg
cmV0dXJuIGhrZGZfZXhwYW5kX2xhYmVsKHNlc3Npb25fa2V5LCBkaWdlc3QsIHNlc3Npb25fa2V5
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxfdG9fc3BhbihrVExTMTNMYWJlbFJl
c3VtcHRpb25QU0spLCBub25jZSk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyIGtUTFMxM0xhYmVs
RXhwb3J0S2V5aW5nW10gPSAiZXhwb3J0ZXIiOwpAQCAtNDUyLDMyICs0MTUsMzIgQEAgYm9vbCB0
bHMxM19leHBvcnRfa2V5aW5nX21hdGVyaWFsKFNTTCAqc3NsLCBTcGFuPHVpbnQ4X3Q+IG91dCwK
IAogICBjb25zdCBFVlBfTUQgKmRpZ2VzdCA9IHNzbF9zZXNzaW9uX2dldF9kaWdlc3QoU1NMX2dl
dF9zZXNzaW9uKHNzbCkpOwogCi0gIHVpbnQ4X3QgaGFzaFtFVlBfTUFYX01EX1NJWkVdOwotICB1
aW50OF90IGV4cG9ydF9jb250ZXh0W0VWUF9NQVhfTURfU0laRV07Ci0gIHVpbnQ4X3QgZGVyaXZl
ZF9zZWNyZXRbRVZQX01BWF9NRF9TSVpFXTsKKyAgdWludDhfdCBoYXNoX2J1ZltFVlBfTUFYX01E
X1NJWkVdOworICB1aW50OF90IGV4cG9ydF9jb250ZXh0X2J1ZltFVlBfTUFYX01EX1NJWkVdOwog
ICB1bnNpZ25lZCBoYXNoX2xlbjsKICAgdW5zaWduZWQgZXhwb3J0X2NvbnRleHRfbGVuOwotICB1
bnNpZ25lZCBkZXJpdmVkX3NlY3JldF9sZW4gPSBFVlBfTURfc2l6ZShkaWdlc3QpOwotICByZXR1
cm4gRVZQX0RpZ2VzdChjb250ZXh0LmRhdGEoKSwgY29udGV4dC5zaXplKCksIGhhc2gsICZoYXNo
X2xlbiwgZGlnZXN0LAotICAgICAgICAgICAgICAgICAgICBudWxscHRyKSAmJgotICAgICAgICAg
RVZQX0RpZ2VzdChudWxscHRyLCAwLCBleHBvcnRfY29udGV4dCwgJmV4cG9ydF9jb250ZXh0X2xl
biwgZGlnZXN0LAotICAgICAgICAgICAgICAgICAgICBudWxscHRyKSAmJgotICAgICAgICAgaGtk
Zl9leHBhbmRfbGFiZWwoZGVyaXZlZF9zZWNyZXQsIGRpZ2VzdCwgc2VjcmV0LmRhdGEoKSwgc2Vj
cmV0LnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLmRhdGEoKSwgbGFi
ZWwuc2l6ZSgpLCBleHBvcnRfY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cG9ydF9jb250ZXh0X2xlbiwgZGVyaXZlZF9zZWNyZXRfbGVuLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3NsLT5jdHgtPnF1aWNfbWV0aG9kICE9IG51bGxwdHIpICYmCi0gICAgICAgICBo
a2RmX2V4cGFuZF9sYWJlbChvdXQuZGF0YSgpLCBkaWdlc3QsIGRlcml2ZWRfc2VjcmV0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVyaXZlZF9zZWNyZXRfbGVuLCBrVExTMTNMYWJlbEV4
cG9ydEtleWluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihrVExTMTNMYWJl
bEV4cG9ydEtleWluZyksIGhhc2gsIGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0LnNpemUoKSwgc3NsLT5jdHgtPnF1aWNfbWV0aG9kICE9IG51bGxwdHIpOworICBpZiAo
IUVWUF9EaWdlc3QoY29udGV4dC5kYXRhKCksIGNvbnRleHQuc2l6ZSgpLCBoYXNoX2J1ZiwgJmhh
c2hfbGVuLCBkaWdlc3QsCisgICAgICAgICAgICAgICAgICBudWxscHRyKSB8fAorICAgICAgIUVW
UF9EaWdlc3QobnVsbHB0ciwgMCwgZXhwb3J0X2NvbnRleHRfYnVmLCAmZXhwb3J0X2NvbnRleHRf
bGVuLCBkaWdlc3QsCisgICAgICAgICAgICAgICAgICBudWxscHRyKSkgeworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorCisgIGF1dG8gaGFzaCA9IE1ha2VDb25zdFNwYW4oaGFzaF9idWYsIGhhc2hf
bGVuKTsKKyAgYXV0byBleHBvcnRfY29udGV4dCA9IE1ha2VDb25zdFNwYW4oZXhwb3J0X2NvbnRl
eHRfYnVmLCBleHBvcnRfY29udGV4dF9sZW4pOworICB1aW50OF90IGRlcml2ZWRfc2VjcmV0X2J1
ZltFVlBfTUFYX01EX1NJWkVdOworICBhdXRvIGRlcml2ZWRfc2VjcmV0ID0gTWFrZVNwYW4oZGVy
aXZlZF9zZWNyZXRfYnVmLCBFVlBfTURfc2l6ZShkaWdlc3QpKTsKKyAgcmV0dXJuIGhrZGZfZXhw
YW5kX2xhYmVsKGRlcml2ZWRfc2VjcmV0LCBkaWdlc3QsIHNlY3JldCwgbGFiZWwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleHBvcnRfY29udGV4dCkgJiYKKyAgICAgICAgIGhrZGZfZXhw
YW5kX2xhYmVsKG91dCwgZGlnZXN0LCBkZXJpdmVkX3NlY3JldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxhYmVsX3RvX3NwYW4oa1RMUzEzTGFiZWxFeHBvcnRLZXlpbmcpLCBoYXNoKTsK
IH0KIAogc3RhdGljIGNvbnN0IGNoYXIga1RMUzEzTGFiZWxQU0tCaW5kZXJbXSA9ICJyZXMgYmlu
ZGVyIjsKIAotc3RhdGljIGJvb2wgdGxzMTNfcHNrX2JpbmRlcih1aW50OF90ICpvdXQsIHVpbnQx
Nl90IHZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVWUF9NRCAq
ZGlnZXN0LCB1aW50OF90ICpwc2ssIHNpemVfdCBwc2tfbGVuLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50OF90ICpjb250ZXh0LCBzaXplX3QgY29udGV4dF9sZW4sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX2xlbiwgYm9vbCB1c2VfcXVpYykgewor
c3RhdGljIGJvb2wgdGxzMTNfcHNrX2JpbmRlcih1aW50OF90ICpvdXQsIHNpemVfdCAqb3V0X2xl
biwgdWludDE2X3QgdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
RVZQX01EICpkaWdlc3QsIFNwYW48Y29uc3QgdWludDhfdD4gcHNrLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGNvbnRleHQpIHsKICAgdWludDhfdCBi
aW5kZXJfY29udGV4dFtFVlBfTUFYX01EX1NJWkVdOwogICB1bnNpZ25lZCBiaW5kZXJfY29udGV4
dF9sZW47CiAgIGlmICghRVZQX0RpZ2VzdChOVUxMLCAwLCBiaW5kZXJfY29udGV4dCwgJmJpbmRl
cl9jb250ZXh0X2xlbiwgZGlnZXN0LCBOVUxMKSkgewpAQCAtNDg2LDkzICs0NDksOTggQEAgc3Rh
dGljIGJvb2wgdGxzMTNfcHNrX2JpbmRlcih1aW50OF90ICpvdXQsIHVpbnQxNl90IHZlcnNpb24s
CiAKICAgdWludDhfdCBlYXJseV9zZWNyZXRbRVZQX01BWF9NRF9TSVpFXSA9IHswfTsKICAgc2l6
ZV90IGVhcmx5X3NlY3JldF9sZW47Ci0gIGlmICghSEtERl9leHRyYWN0KGVhcmx5X3NlY3JldCwg
JmVhcmx5X3NlY3JldF9sZW4sIGRpZ2VzdCwgcHNrLCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAg
ICAgICAgTlVMTCwgMCkpIHsKKyAgaWYgKCFIS0RGX2V4dHJhY3QoZWFybHlfc2VjcmV0LCAmZWFy
bHlfc2VjcmV0X2xlbiwgZGlnZXN0LCBwc2suZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBw
c2suc2l6ZSgpLCBOVUxMLCAwKSkgewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCi0gIHVpbnQ4
X3QgYmluZGVyX2tleVtFVlBfTUFYX01EX1NJWkVdID0gezB9OwotICBzaXplX3QgbGVuOwotICBp
ZiAoIWhrZGZfZXhwYW5kX2xhYmVsKGJpbmRlcl9rZXksIGRpZ2VzdCwgZWFybHlfc2VjcmV0LCBo
YXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBrVExTMTNMYWJlbFBTS0JpbmRlciwg
c3RybGVuKGtUTFMxM0xhYmVsUFNLQmluZGVyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBi
aW5kZXJfY29udGV4dCwgYmluZGVyX2NvbnRleHRfbGVuLCBoYXNoX2xlbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICB1c2VfcXVpYykgfHwKLSAgICAgICF0bHMxM192ZXJpZnlfZGF0YShkaWdl
c3QsIHZlcnNpb24sIG91dCwgJmxlbiwgYmluZGVyX2tleSwgaGFzaF9sZW4sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGV4dCwgY29udGV4dF9sZW4sIHVzZV9xdWljKSkgeworICB1aW50
OF90IGJpbmRlcl9rZXlfYnVmW0VWUF9NQVhfTURfU0laRV0gPSB7MH07CisgIGF1dG8gYmluZGVy
X2tleSA9IE1ha2VTcGFuKGJpbmRlcl9rZXlfYnVmLCBFVlBfTURfc2l6ZShkaWdlc3QpKTsKKyAg
aWYgKCFoa2RmX2V4cGFuZF9sYWJlbChiaW5kZXJfa2V5LCBkaWdlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgTWFrZUNvbnN0U3BhbihlYXJseV9zZWNyZXQsIGVhcmx5X3NlY3JldF9sZW4p
LAorICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3RvX3NwYW4oa1RMUzEzTGFiZWxQU0tC
aW5kZXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIE1ha2VDb25zdFNwYW4oYmluZGVyX2Nv
bnRleHQsIGJpbmRlcl9jb250ZXh0X2xlbikpIHx8CisgICAgICAhdGxzMTNfdmVyaWZ5X2RhdGEo
b3V0LCBvdXRfbGVuLCBkaWdlc3QsIHZlcnNpb24sIGJpbmRlcl9rZXksIGNvbnRleHQpKSB7CiAg
ICAgcmV0dXJuIGZhbHNlOwogICB9CiAKKyAgYXNzZXJ0KCpvdXRfbGVuID09IEVWUF9NRF9zaXpl
KGRpZ2VzdCkpOwogICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCB0bHMxM193cml0ZV9wc2tfYmlu
ZGVyKFNTTF9IQU5EU0hBS0UgKmhzLCB1aW50OF90ICptc2csIHNpemVfdCBsZW4pIHsKLSAgU1NM
ICpjb25zdCBzc2wgPSBocy0+c3NsOwotICBjb25zdCBFVlBfTUQgKmRpZ2VzdCA9IHNzbF9zZXNz
aW9uX2dldF9kaWdlc3Qoc3NsLT5zZXNzaW9uLmdldCgpKTsKLSAgc2l6ZV90IGhhc2hfbGVuID0g
RVZQX01EX3NpemUoZGlnZXN0KTsKLQotICBpZiAobGVuIDwgaGFzaF9sZW4gKyAzKSB7Ci0gICAg
T1BFTlNTTF9QVVRfRVJST1IoU1NMLCBFUlJfUl9JTlRFUk5BTF9FUlJPUik7CitzdGF0aWMgYm9v
bCBoYXNoX3RyYW5zY3JpcHRfYW5kX3RydW5jYXRlZF9jbGllbnRfaGVsbG8oCisgICAgU1NMX0hB
TkRTSEFLRSAqaHMsIHVpbnQ4X3QgKm91dCwgc2l6ZV90ICpvdXRfbGVuLCBjb25zdCBFVlBfTUQg
KmRpZ2VzdCwKKyAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGNsaWVudF9oZWxsbywgc2l6ZV90IGJp
bmRlcnNfbGVuKSB7CisgIC8vIFRydW5jYXRlIHRoZSBDbGllbnRIZWxsby4KKyAgaWYgKGJpbmRl
cnNfbGVuICsgMiA8IGJpbmRlcnNfbGVuIHx8IGNsaWVudF9oZWxsby5zaXplKCkgPCBiaW5kZXJz
X2xlbiArIDIpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KKyAgY2xpZW50X2hlbGxvID0gY2xp
ZW50X2hlbGxvLnN1YnNwYW4oMCwgY2xpZW50X2hlbGxvLnNpemUoKSAtIGJpbmRlcnNfbGVuIC0g
Mik7CiAKICAgU2NvcGVkRVZQX01EX0NUWCBjdHg7Ci0gIHVpbnQ4X3QgY29udGV4dFtFVlBfTUFY
X01EX1NJWkVdOwotICB1bnNpZ25lZCBjb250ZXh0X2xlbjsKLQotICBpZiAoIUVWUF9EaWdlc3RJ
bml0X2V4KGN0eC5nZXQoKSwgZGlnZXN0LCBOVUxMKSB8fAotICAgICAgIUVWUF9EaWdlc3RVcGRh
dGUoY3R4LmdldCgpLCBocy0+dHJhbnNjcmlwdC5idWZmZXIoKS5kYXRhKCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICBocy0+dHJhbnNjcmlwdC5idWZmZXIoKS5zaXplKCkpIHx8Ci0gICAgICAh
RVZQX0RpZ2VzdFVwZGF0ZShjdHguZ2V0KCksIG1zZywgbGVuIC0gaGFzaF9sZW4gLSAzKSB8fAot
ICAgICAgIUVWUF9EaWdlc3RGaW5hbF9leChjdHguZ2V0KCksIGNvbnRleHQsICZjb250ZXh0X2xl
bikpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICB1aW50OF90IHZlcmlmeV9kYXRhW0VW
UF9NQVhfTURfU0laRV0gPSB7MH07Ci0gIGlmICghdGxzMTNfcHNrX2JpbmRlcih2ZXJpZnlfZGF0
YSwgc3NsLT5zZXNzaW9uLT5zc2xfdmVyc2lvbiwgZGlnZXN0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgc3NsLT5zZXNzaW9uLT5tYXN0ZXJfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAg
c3NsLT5zZXNzaW9uLT5tYXN0ZXJfa2V5X2xlbmd0aCwgY29udGV4dCwgY29udGV4dF9sZW4sCi0g
ICAgICAgICAgICAgICAgICAgICAgICBoYXNoX2xlbiwgc3NsLT5jdHgtPnF1aWNfbWV0aG9kICE9
IG51bGxwdHIpKSB7CisgIHVuc2lnbmVkIGxlbjsKKyAgaWYgKCFocy0+dHJhbnNjcmlwdC5Db3B5
VG9IYXNoQ29udGV4dChjdHguZ2V0KCksIGRpZ2VzdCkgfHwKKyAgICAgICFFVlBfRGlnZXN0VXBk
YXRlKGN0eC5nZXQoKSwgY2xpZW50X2hlbGxvLmRhdGEoKSwgY2xpZW50X2hlbGxvLnNpemUoKSkg
fHwKKyAgICAgICFFVlBfRGlnZXN0RmluYWxfZXgoY3R4LmdldCgpLCBvdXQsICZsZW4pKSB7CiAg
ICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgT1BFTlNTTF9tZW1jcHkobXNnICsgbGVuIC0gaGFz
aF9sZW4sIHZlcmlmeV9kYXRhLCBoYXNoX2xlbik7CisgICpvdXRfbGVuID0gbGVuOwogICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCB0bHMxM192ZXJpZnlfcHNrX2JpbmRlcihTU0xfSEFORFNIQUtF
ICpocywgU1NMX1NFU1NJT04gKnNlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFNTTE1lc3NhZ2UgJm1zZywgQ0JTICpiaW5kZXJzKSB7Ci0gIHNpemVfdCBoYXNoX2xl
biA9IGhzLT50cmFuc2NyaXB0LkRpZ2VzdExlbigpOworYm9vbCB0bHMxM193cml0ZV9wc2tfYmlu
ZGVyKFNTTF9IQU5EU0hBS0UgKmhzLCBTcGFuPHVpbnQ4X3Q+IG1zZykgeworICBTU0wgKmNvbnN0
IHNzbCA9IGhzLT5zc2w7CisgIGNvbnN0IEVWUF9NRCAqZGlnZXN0ID0gc3NsX3Nlc3Npb25fZ2V0
X2RpZ2VzdChzc2wtPnNlc3Npb24uZ2V0KCkpOworICBzaXplX3QgaGFzaF9sZW4gPSBFVlBfTURf
c2l6ZShkaWdlc3QpOwogCi0gIC8vIFRoZSBtZXNzYWdlIG11c3QgYmUgbGFyZ2UgZW5vdWdoIHRv
IGV4Y2x1ZGUgdGhlIGJpbmRlcnMuCi0gIGlmIChDQlNfbGVuKCZtc2cucmF3KSA8IENCU19sZW4o
YmluZGVycykgKyAyKSB7CisgIFNjb3BlZEVWUF9NRF9DVFggY3R4OworICB1aW50OF90IGNvbnRl
eHRbRVZQX01BWF9NRF9TSVpFXTsKKyAgc2l6ZV90IGNvbnRleHRfbGVuOworICB1aW50OF90IHZl
cmlmeV9kYXRhW0VWUF9NQVhfTURfU0laRV07CisgIHNpemVfdCB2ZXJpZnlfZGF0YV9sZW47Cisg
IGlmICghaGFzaF90cmFuc2NyaXB0X2FuZF90cnVuY2F0ZWRfY2xpZW50X2hlbGxvKAorICAgICAg
ICAgIGhzLCBjb250ZXh0LCAmY29udGV4dF9sZW4sIGRpZ2VzdCwgbXNnLAorICAgICAgICAgIDEg
LyogbGVuZ3RoIHByZWZpeCAqLyArIGhhc2hfbGVuKSB8fAorICAgICAgIXRsczEzX3Bza19iaW5k
ZXIodmVyaWZ5X2RhdGEsICZ2ZXJpZnlfZGF0YV9sZW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICBzc2wtPnNlc3Npb24tPnNzbF92ZXJzaW9uLCBkaWdlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICBNYWtlQ29uc3RTcGFuKHNzbC0+c2Vzc2lvbi0+bWFzdGVyX2tleSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsLT5zZXNzaW9uLT5tYXN0ZXJfa2V5X2xlbmd0
aCksCisgICAgICAgICAgICAgICAgICAgICAgICBNYWtlQ29uc3RTcGFuKGNvbnRleHQsIGNvbnRl
eHRfbGVuKSkgfHwKKyAgICAgIHZlcmlmeV9kYXRhX2xlbiAhPSBoYXNoX2xlbikgewogICAgIE9Q
RU5TU0xfUFVUX0VSUk9SKFNTTCwgRVJSX1JfSU5URVJOQUxfRVJST1IpOwogICAgIHJldHVybiBm
YWxzZTsKICAgfQogCi0gIC8vIEhhc2ggYSBDbGllbnRIZWxsbyBwcmVmaXggdXAgdG8gdGhlIGJp
bmRlcnMuIFRoaXMgaW5jbHVkZXMgdGhlIGhlYWRlci4gRm9yCi0gIC8vIG5vdywgdGhpcyBhc3N1
bWVzIHdlIG9ubHkgZXZlciB2ZXJpZnkgUFNLIGJpbmRlcnMgb24gaW5pdGlhbAotICAvLyBDbGll
bnRIZWxsb3MuCi0gIHVpbnQ4X3QgY29udGV4dFtFVlBfTUFYX01EX1NJWkVdOwotICB1bnNpZ25l
ZCBjb250ZXh0X2xlbjsKLSAgaWYgKCFFVlBfRGlnZXN0KENCU19kYXRhKCZtc2cucmF3KSwgQ0JT
X2xlbigmbXNnLnJhdykgLSBDQlNfbGVuKGJpbmRlcnMpIC0gMiwKLSAgICAgICAgICAgICAgICAg
IGNvbnRleHQsICZjb250ZXh0X2xlbiwgaHMtPnRyYW5zY3JpcHQuRGlnZXN0KCksIE5VTEwpKSB7
Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9CisgIE9QRU5TU0xfbWVtY3B5KG1zZy5kYXRhKCkgKyBt
c2cuc2l6ZSgpIC0gdmVyaWZ5X2RhdGFfbGVuLCB2ZXJpZnlfZGF0YSwKKyAgICAgICAgICAgICAg
ICAgdmVyaWZ5X2RhdGFfbGVuKTsKKyAgcmV0dXJuIHRydWU7Cit9CiAKLSAgdWludDhfdCB2ZXJp
ZnlfZGF0YVtFVlBfTUFYX01EX1NJWkVdID0gezB9OworYm9vbCB0bHMxM192ZXJpZnlfcHNrX2Jp
bmRlcihTU0xfSEFORFNIQUtFICpocywgU1NMX1NFU1NJT04gKnNlc3Npb24sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFNTTE1lc3NhZ2UgJm1zZywgQ0JTICpiaW5kZXJzKSB7
CisgIHVpbnQ4X3QgY29udGV4dFtFVlBfTUFYX01EX1NJWkVdOworICBzaXplX3QgY29udGV4dF9s
ZW47CisgIHVpbnQ4X3QgdmVyaWZ5X2RhdGFbRVZQX01BWF9NRF9TSVpFXTsKKyAgc2l6ZV90IHZl
cmlmeV9kYXRhX2xlbjsKICAgQ0JTIGJpbmRlcjsKLSAgaWYgKCF0bHMxM19wc2tfYmluZGVyKHZl
cmlmeV9kYXRhLCBocy0+c3NsLT52ZXJzaW9uLCBocy0+dHJhbnNjcmlwdC5EaWdlc3QoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPm1hc3Rlcl9rZXksIHNlc3Npb24tPm1hc3Rl
cl9rZXlfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwgY29udGV4dF9s
ZW4sIGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgaHMtPnNzbC0+Y3R4LT5xdWlj
X21ldGhvZCAhPSBudWxscHRyKSB8fAorICBpZiAoIWhhc2hfdHJhbnNjcmlwdF9hbmRfdHJ1bmNh
dGVkX2NsaWVudF9oZWxsbyhocywgY29udGV4dCwgJmNvbnRleHRfbGVuLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+dHJhbnNjcmlwdC5EaWdl
c3QoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXNnLnJhdywgQ0JTX2xlbihiaW5kZXJzKSkgfHwKKyAgICAgICF0bHMxM19wc2tfYmluZGVyKAor
ICAgICAgICAgIHZlcmlmeV9kYXRhLCAmdmVyaWZ5X2RhdGFfbGVuLCBocy0+c3NsLT52ZXJzaW9u
LAorICAgICAgICAgIGhzLT50cmFuc2NyaXB0LkRpZ2VzdCgpLAorICAgICAgICAgIE1ha2VDb25z
dFNwYW4oc2Vzc2lvbi0+bWFzdGVyX2tleSwgc2Vzc2lvbi0+bWFzdGVyX2tleV9sZW5ndGgpLAor
ICAgICAgICAgIE1ha2VDb25zdFNwYW4oY29udGV4dCwgY29udGV4dF9sZW4pKSB8fAogICAgICAg
Ly8gV2Ugb25seSBjb25zaWRlciB0aGUgZmlyc3QgUFNLLCBzbyBjb21wYXJlIGFnYWluc3QgdGhl
IGZpcnN0IGJpbmRlci4KICAgICAgICFDQlNfZ2V0X3U4X2xlbmd0aF9wcmVmaXhlZChiaW5kZXJz
LCAmYmluZGVyKSkgewogICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNTTCwgRVJSX1JfSU5URVJOQUxf
RVJST1IpOwogICAgIHJldHVybiBmYWxzZTsKICAgfQogCi0gIGJvb2wgYmluZGVyX29rID0gQ0JT
X2xlbigmYmluZGVyKSA9PSBoYXNoX2xlbiAmJgotICAgICAgICAgICAgICAgICAgIENSWVBUT19t
ZW1jbXAoQ0JTX2RhdGEoJmJpbmRlciksIHZlcmlmeV9kYXRhLCBoYXNoX2xlbikgPT0gMDsKKyAg
Ym9vbCBiaW5kZXJfb2sgPQorICAgICAgQ0JTX2xlbigmYmluZGVyKSA9PSB2ZXJpZnlfZGF0YV9s
ZW4gJiYKKyAgICAgIENSWVBUT19tZW1jbXAoQ0JTX2RhdGEoJmJpbmRlciksIHZlcmlmeV9kYXRh
LCB2ZXJpZnlfZGF0YV9sZW4pID09IDA7CiAjaWYgZGVmaW5lZChCT1JJTkdTU0xfVU5TQUZFX0ZV
WlpFUl9NT0RFKQogICBiaW5kZXJfb2sgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
c3NsL3RsczEzX3NlcnZlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGxzMTNfc2VydmVyLmNjCmluZGV4IGI0YzRj
YTVhZmE4YTdlNzBmMTcwZjk2YmQxZTIxOTVlNTYwMTU5MTYuLmYxODkxY2Y5MzdiNzg4NjUyM2M3
MzMwNmVkNDhlZjcyYjkxZGEyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wvdGxzMTNfc2VydmVyLmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy9zc2wvdGxzMTNfc2VydmVyLmNjCkBAIC0xNyw2ICsxNyw4IEBACiAjaW5jbHVk
ZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKKyNpbmNsdWRlIDx0dXBsZT4KKwog
I2luY2x1ZGUgPG9wZW5zc2wvYWVhZC5oPgogI2luY2x1ZGUgPG9wZW5zc2wvYnl0ZXN0cmluZy5o
PgogI2luY2x1ZGUgPG9wZW5zc2wvZGlnZXN0Lmg+CkBAIC01MSw2ICs1MywxMiBAQCBlbnVtIHNl
cnZlcl9oc19zdGF0ZV90IHsKIAogc3RhdGljIGNvbnN0IHVpbnQ4X3Qga1plcm9lc1tFVlBfTUFY
X01EX1NJWkVdID0gezB9OwogCisvLyBBbGxvdyBhIG1pbnV0ZSBvZiB0aWNrZXQgYWdlIHNrZXcg
aW4gZWl0aGVyIGRpcmVjdGlvbi4gVGhpcyBjb3ZlcnMKKy8vIHRyYW5zbWlzc2lvbiBkZWxheXMg
aW4gQ2xpZW50SGVsbG8gYW5kIE5ld1Nlc3Npb25UaWNrZXQsIGFzIHdlbGwgYXMKKy8vIGRyaWZ0
IGJldHdlZW4gY2xpZW50IGFuZCBzZXJ2ZXIgY2xvY2sgcmF0ZSBzaW5jZSB0aGUgdGlja2V0IHdh
cyBpc3N1ZWQuCisvLyBTZWUgUkZDIDg0NDYsIHNlY3Rpb24gOC4zLgorc3RhdGljIGNvbnN0IGlu
dDMyX3Qga01heFRpY2tldEFnZVNrZXdTZWNvbmRzID0gNjA7CisKIHN0YXRpYyBpbnQgcmVzb2x2
ZV9lY2RoZV9zZWNyZXQoU1NMX0hBTkRTSEFLRSAqaHMsIGJvb2wgKm91dF9uZWVkX3JldHJ5LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfQ0xJRU5UX0hFTExPICpjbGllbnRf
aGVsbG8pIHsKICAgU1NMICpjb25zdCBzc2wgPSBocy0+c3NsOwpAQCAtNzksNyArODcsNyBAQCBz
dGF0aWMgaW50IHJlc29sdmVfZWNkaGVfc2VjcmV0KFNTTF9IQU5EU0hBS0UgKmhzLCBib29sICpv
dXRfbmVlZF9yZXRyeSwKICAgICByZXR1cm4gMDsKICAgfQogCi0gIHJldHVybiB0bHMxM19hZHZh
bmNlX2tleV9zY2hlZHVsZShocywgZGhlX3NlY3JldC5kYXRhKCksIGRoZV9zZWNyZXQuc2l6ZSgp
KTsKKyAgcmV0dXJuIHRsczEzX2FkdmFuY2Vfa2V5X3NjaGVkdWxlKGhzLCBkaGVfc2VjcmV0KTsK
IH0KIAogc3RhdGljIGludCBzc2xfZXh0X3N1cHBvcnRlZF92ZXJzaW9uc19hZGRfc2VydmVyaGVs
bG8oU1NMX0hBTkRTSEFLRSAqaHMsCkBAIC05Niw0OSArMTA0LDE0IEBAIHN0YXRpYyBpbnQgc3Ns
X2V4dF9zdXBwb3J0ZWRfdmVyc2lvbnNfYWRkX3NlcnZlcmhlbGxvKFNTTF9IQU5EU0hBS0UgKmhz
LAogfQogCiBzdGF0aWMgY29uc3QgU1NMX0NJUEhFUiAqY2hvb3NlX3RsczEzX2NpcGhlcigKLSAg
ICBjb25zdCBTU0wgKnNzbCwgY29uc3QgU1NMX0NMSUVOVF9IRUxMTyAqY2xpZW50X2hlbGxvKSB7
Ci0gIGlmIChjbGllbnRfaGVsbG8tPmNpcGhlcl9zdWl0ZXNfbGVuICUgMiAhPSAwKSB7Ci0gICAg
cmV0dXJuIE5VTEw7Ci0gIH0KLQorICAgIGNvbnN0IFNTTCAqc3NsLCBjb25zdCBTU0xfQ0xJRU5U
X0hFTExPICpjbGllbnRfaGVsbG8sIHVpbnQxNl90IGdyb3VwX2lkKSB7CiAgIENCUyBjaXBoZXJf
c3VpdGVzOwogICBDQlNfaW5pdCgmY2lwaGVyX3N1aXRlcywgY2xpZW50X2hlbGxvLT5jaXBoZXJf
c3VpdGVzLAogICAgICAgICAgICBjbGllbnRfaGVsbG8tPmNpcGhlcl9zdWl0ZXNfbGVuKTsKIAot
ICBjb25zdCBpbnQgYWVzX2lzX2ZpbmUgPSBFVlBfaGFzX2Flc19oYXJkd2FyZSgpOwogICBjb25z
dCB1aW50MTZfdCB2ZXJzaW9uID0gc3NsX3Byb3RvY29sX3ZlcnNpb24oc3NsKTsKIAotICBjb25z
dCBTU0xfQ0lQSEVSICpiZXN0ID0gTlVMTDsKLSAgd2hpbGUgKENCU19sZW4oJmNpcGhlcl9zdWl0
ZXMpID4gMCkgewotICAgIHVpbnQxNl90IGNpcGhlcl9zdWl0ZTsKLSAgICBpZiAoIUNCU19nZXRf
dTE2KCZjaXBoZXJfc3VpdGVzLCAmY2lwaGVyX3N1aXRlKSkgewotICAgICAgcmV0dXJuIE5VTEw7
Ci0gICAgfQotCi0gICAgLy8gTGltaXQgdG8gVExTIDEuMyBjaXBoZXJzIHdlIGtub3cgYWJvdXQu
Ci0gICAgY29uc3QgU1NMX0NJUEhFUiAqY2FuZGlkYXRlID0gU1NMX2dldF9jaXBoZXJfYnlfdmFs
dWUoY2lwaGVyX3N1aXRlKTsKLSAgICBpZiAoY2FuZGlkYXRlID09IE5VTEwgfHwKLSAgICAgICAg
U1NMX0NJUEhFUl9nZXRfbWluX3ZlcnNpb24oY2FuZGlkYXRlKSA+IHZlcnNpb24gfHwKLSAgICAg
ICAgU1NMX0NJUEhFUl9nZXRfbWF4X3ZlcnNpb24oY2FuZGlkYXRlKSA8IHZlcnNpb24pIHsKLSAg
ICAgIGNvbnRpbnVlOwotICAgIH0KLQotICAgIC8vIFRMUyAxLjMgcmVtb3ZlcyBsZWdhY3kgY2lw
aGVycywgc28gaG9ub3IgdGhlIGNsaWVudCBvcmRlciwgYnV0IHByZWZlcgotICAgIC8vIENoYUNo
YTIwIGlmIHdlIGRvIG5vdCBoYXZlIEFFUyBoYXJkd2FyZS4KLSAgICBpZiAoYWVzX2lzX2ZpbmUp
IHsKLSAgICAgIHJldHVybiBjYW5kaWRhdGU7Ci0gICAgfQotCi0gICAgaWYgKGNhbmRpZGF0ZS0+
YWxnb3JpdGhtX2VuYyA9PSBTU0xfQ0hBQ0hBMjBQT0xZMTMwNSkgewotICAgICAgcmV0dXJuIGNh
bmRpZGF0ZTsKLSAgICB9Ci0KLSAgICBpZiAoYmVzdCA9PSBOVUxMKSB7Ci0gICAgICBiZXN0ID0g
Y2FuZGlkYXRlOwotICAgIH0KLSAgfQotCi0gIHJldHVybiBiZXN0OworICByZXR1cm4gc3NsX2No
b29zZV90bHMxM19jaXBoZXIoY2lwaGVyX3N1aXRlcywgdmVyc2lvbiwgZ3JvdXBfaWQpOwogfQog
CiBzdGF0aWMgYm9vbCBhZGRfbmV3X3Nlc3Npb25fdGlja2V0cyhTU0xfSEFORFNIQUtFICpocywg
Ym9vbCAqb3V0X3NlbnRfdGlja2V0cykgewpAQCAtMTg4LDggKzE2MSw3IEBAIHN0YXRpYyBib29s
IGFkZF9uZXdfc2Vzc2lvbl90aWNrZXRzKFNTTF9IQU5EU0hBS0UgKmhzLCBib29sICpvdXRfc2Vu
dF90aWNrZXRzKSB7CiAgICAgICAgICFDQkJfYWRkX3U4X2xlbmd0aF9wcmVmaXhlZCgmYm9keSwg
Jm5vbmNlX2NiYikgfHwKICAgICAgICAgIUNCQl9hZGRfYnl0ZXMoJm5vbmNlX2NiYiwgbm9uY2Us
IHNpemVvZihub25jZSkpIHx8CiAgICAgICAgICFDQkJfYWRkX3UxNl9sZW5ndGhfcHJlZml4ZWQo
JmJvZHksICZ0aWNrZXQpIHx8Ci0gICAgICAgICF0bHMxM19kZXJpdmVfc2Vzc2lvbl9wc2soc2Vz
c2lvbi5nZXQoKSwgbm9uY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ns
LT5jdHgtPnF1aWNfbWV0aG9kICE9IG51bGxwdHIpIHx8CisgICAgICAgICF0bHMxM19kZXJpdmVf
c2Vzc2lvbl9wc2soc2Vzc2lvbi5nZXQoKSwgbm9uY2UpIHx8CiAgICAgICAgICFzc2xfZW5jcnlw
dF90aWNrZXQoaHMsICZ0aWNrZXQsIHNlc3Npb24uZ2V0KCkpIHx8CiAgICAgICAgICFDQkJfYWRk
X3UxNl9sZW5ndGhfcHJlZml4ZWQoJmJvZHksICZleHRlbnNpb25zKSkgewogICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMjQwLDggKzIxMiwxNSBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRv
X3NlbGVjdF9wYXJhbWV0ZXJzKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgICAgICAgICAgICAgICAg
IGNsaWVudF9oZWxsby5zZXNzaW9uX2lkX2xlbik7CiAgIGhzLT5zZXNzaW9uX2lkX2xlbiA9IGNs
aWVudF9oZWxsby5zZXNzaW9uX2lkX2xlbjsKIAorICB1aW50MTZfdCBncm91cF9pZDsKKyAgaWYg
KCF0bHMxX2dldF9zaGFyZWRfZ3JvdXAoaHMsICZncm91cF9pZCkpIHsKKyAgICBPUEVOU1NMX1BV
VF9FUlJPUihTU0wsIFNTTF9SX05PX1NIQVJFRF9HUk9VUCk7CisgICAgc3NsX3NlbmRfYWxlcnQo
c3NsLCBTU0wzX0FMX0ZBVEFMLCBTU0xfQURfSEFORFNIQUtFX0ZBSUxVUkUpOworICAgIHJldHVy
biBzc2xfaHNfZXJyb3I7CisgIH0KKwogICAvLyBOZWdvdGlhdGUgdGhlIGNpcGhlciBzdWl0ZS4K
LSAgaHMtPm5ld19jaXBoZXIgPSBjaG9vc2VfdGxzMTNfY2lwaGVyKHNzbCwgJmNsaWVudF9oZWxs
byk7CisgIGhzLT5uZXdfY2lwaGVyID0gY2hvb3NlX3RsczEzX2NpcGhlcihzc2wsICZjbGllbnRf
aGVsbG8sIGdyb3VwX2lkKTsKICAgaWYgKGhzLT5uZXdfY2lwaGVyID09IE5VTEwpIHsKICAgICBP
UEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX05PX1NIQVJFRF9DSVBIRVIpOwogICAgIHNzbF9z
ZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgU1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFKTsK
QEAgLTI2Miw0NiArMjQxLDM3IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VsZWN0
X3BhcmFtZXRlcnMoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9y
OwogICB9CiAKLSAgaWYgKCFzc2xfaGFzaF9tZXNzYWdlKGhzLCBtc2cpKSB7Ci0gICAgcmV0dXJu
IHNzbF9oc19lcnJvcjsKLSAgfQotCiAgIGhzLT50bHMxM19zdGF0ZSA9IHN0YXRlX3NlbGVjdF9z
ZXNzaW9uOwogICByZXR1cm4gc3NsX2hzX29rOwogfQogCiBzdGF0aWMgZW51bSBzc2xfdGlja2V0
X2FlYWRfcmVzdWx0X3Qgc2VsZWN0X3Nlc3Npb24oCiAgICAgU1NMX0hBTkRTSEFLRSAqaHMsIHVp
bnQ4X3QgKm91dF9hbGVydCwgVW5pcXVlUHRyPFNTTF9TRVNTSU9OPiAqb3V0X3Nlc3Npb24sCi0g
ICAgaW50MzJfdCAqb3V0X3RpY2tldF9hZ2Vfc2tldywgY29uc3QgU1NMTWVzc2FnZSAmbXNnLAot
ICAgIGNvbnN0IFNTTF9DTElFTlRfSEVMTE8gKmNsaWVudF9oZWxsbykgeworICAgIGludDMyX3Qg
Km91dF90aWNrZXRfYWdlX3NrZXcsIGJvb2wgKm91dF9vZmZlcmVkX3RpY2tldCwKKyAgICBjb25z
dCBTU0xNZXNzYWdlICZtc2csIGNvbnN0IFNTTF9DTElFTlRfSEVMTE8gKmNsaWVudF9oZWxsbykg
ewogICBTU0wgKmNvbnN0IHNzbCA9IGhzLT5zc2w7Ci0gICpvdXRfc2Vzc2lvbiA9IE5VTEw7Cisg
ICpvdXRfc2Vzc2lvbiA9IG51bGxwdHI7CiAKLSAgLy8gRGVjb2RlIHRoZSB0aWNrZXQgaWYgd2Ug
YWdyZWVkIG9uIGEgUFNLIGtleSBleGNoYW5nZSBtb2RlLgogICBDQlMgcHJlX3NoYXJlZF9rZXk7
Ci0gIGlmICghaHMtPmFjY2VwdF9wc2tfbW9kZSB8fAotICAgICAgIXNzbF9jbGllbnRfaGVsbG9f
Z2V0X2V4dGVuc2lvbihjbGllbnRfaGVsbG8sICZwcmVfc2hhcmVkX2tleSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVExTRVhUX1RZUEVfcHJlX3NoYXJlZF9rZXkpKSB7
CisgICpvdXRfb2ZmZXJlZF90aWNrZXQgPSBzc2xfY2xpZW50X2hlbGxvX2dldF9leHRlbnNpb24o
CisgICAgICBjbGllbnRfaGVsbG8sICZwcmVfc2hhcmVkX2tleSwgVExTRVhUX1RZUEVfcHJlX3No
YXJlZF9rZXkpOworICBpZiAoISpvdXRfb2ZmZXJlZF90aWNrZXQpIHsKICAgICByZXR1cm4gc3Ns
X3RpY2tldF9hZWFkX2lnbm9yZV90aWNrZXQ7CiAgIH0KIAotICAvLyBWZXJpZnkgdGhhdCB0aGUg
cHJlX3NoYXJlZF9rZXkgZXh0ZW5zaW9uIGlzIHRoZSBsYXN0IGV4dGVuc2lvbiBpbgotICAvLyBD
bGllbnRIZWxsby4KLSAgaWYgKENCU19kYXRhKCZwcmVfc2hhcmVkX2tleSkgKyBDQlNfbGVuKCZw
cmVfc2hhcmVkX2tleSkgIT0KLSAgICAgIGNsaWVudF9oZWxsby0+ZXh0ZW5zaW9ucyArIGNsaWVu
dF9oZWxsby0+ZXh0ZW5zaW9uc19sZW4pIHsKLSAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNT
TF9SX1BSRV9TSEFSRURfS0VZX01VU1RfQkVfTEFTVCk7Ci0gICAgKm91dF9hbGVydCA9IFNTTF9B
RF9JTExFR0FMX1BBUkFNRVRFUjsKLSAgICByZXR1cm4gc3NsX3RpY2tldF9hZWFkX2Vycm9yOwot
ICB9Ci0KICAgQ0JTIHRpY2tldCwgYmluZGVyczsKICAgdWludDMyX3QgY2xpZW50X3RpY2tldF9h
Z2U7Ci0gIGlmICghc3NsX2V4dF9wcmVfc2hhcmVkX2tleV9wYXJzZV9jbGllbnRoZWxsbyhocywg
JnRpY2tldCwgJmJpbmRlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmY2xpZW50X3RpY2tldF9hZ2UsIG91dF9hbGVydCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcmVfc2hhcmVkX2tleSkpIHsKKyAg
aWYgKCFzc2xfZXh0X3ByZV9zaGFyZWRfa2V5X3BhcnNlX2NsaWVudGhlbGxvKAorICAgICAgICAg
IGhzLCAmdGlja2V0LCAmYmluZGVycywgJmNsaWVudF90aWNrZXRfYWdlLCBvdXRfYWxlcnQsIGNs
aWVudF9oZWxsbywKKyAgICAgICAgICAmcHJlX3NoYXJlZF9rZXkpKSB7CiAgICAgcmV0dXJuIHNz
bF90aWNrZXRfYWVhZF9lcnJvcjsKICAgfQogCisgIC8vIElmIHRoZSBwZWVyIGRpZCBub3Qgb2Zm
ZXIgcHNrX2RoZSwgaWdub3JlIHRoZSByZXN1bXB0aW9uLgorICBpZiAoIWhzLT5hY2NlcHRfcHNr
X21vZGUpIHsKKyAgICByZXR1cm4gc3NsX3RpY2tldF9hZWFkX2lnbm9yZV90aWNrZXQ7CisgIH0K
KwogICAvLyBUTFMgMS4zIHNlc3Npb24gdGlja2V0cyBhcmUgcmVuZXdlZCBzZXBhcmF0ZWx5IGFz
IHBhcnQgb2YgdGhlCiAgIC8vIE5ld1Nlc3Npb25UaWNrZXQuCiAgIGJvb2wgdW51c2VkX3JlbmV3
OwpAQCAtMzQxLDEwICszMTEsOCBAQCBzdGF0aWMgZW51bSBzc2xfdGlja2V0X2FlYWRfcmVzdWx0
X3Qgc2VsZWN0X3Nlc3Npb24oCiAgICAgcmV0dXJuIHNzbF90aWNrZXRfYWVhZF9pZ25vcmVfdGlj
a2V0OwogICB9CiAKLSAgLy8gVE9ETyhkYXZpZGJlbixzdmFsZGV6KTogTWVhc3VyZSB0aGlzIHZh
bHVlIHRvIGRlY2lkZSBvbiB0b2xlcmFuY2UuIEZvcgotICAvLyBub3csIGFjY2VwdCBhbGwgdmFs
dWVzLiBodHRwczovL2NyYnVnLmNvbS9ib3Jpbmdzc2wvMTEzLgotICAqb3V0X3RpY2tldF9hZ2Vf
c2tldyA9Ci0gICAgICAoaW50MzJfdCljbGllbnRfdGlja2V0X2FnZSAtIChpbnQzMl90KXNlcnZl
cl90aWNrZXRfYWdlOworICAqb3V0X3RpY2tldF9hZ2Vfc2tldyA9IHN0YXRpY19jYXN0PGludDMy
X3Q+KGNsaWVudF90aWNrZXRfYWdlKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oc2VydmVyX3RpY2tldF9hZ2UpOwogCiAgIC8vIENoZWNrIHRoZSBQU0sg
YmluZGVyLgogICBpZiAoIXRsczEzX3ZlcmlmeV9wc2tfYmluZGVyKGhzLCBzZXNzaW9uLmdldCgp
LCBtc2csICZiaW5kZXJzKSkgewpAQCAtMzcxLDEwICszMzksMTggQEAgc3RhdGljIGVudW0gc3Ns
X2hzX3dhaXRfdCBkb19zZWxlY3Rfc2Vzc2lvbihTU0xfSEFORFNIQUtFICpocykgewogCiAgIHVp
bnQ4X3QgYWxlcnQgPSBTU0xfQURfREVDT0RFX0VSUk9SOwogICBVbmlxdWVQdHI8U1NMX1NFU1NJ
T04+IHNlc3Npb247Ci0gIHN3aXRjaCAoc2VsZWN0X3Nlc3Npb24oaHMsICZhbGVydCwgJnNlc3Np
b24sICZzc2wtPnMzLT50aWNrZXRfYWdlX3NrZXcsIG1zZywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAmY2xpZW50X2hlbGxvKSkgeworICBib29sIG9mZmVyZWRfdGlja2V0ID0gZmFsc2U7Cisg
IHN3aXRjaCAoc2VsZWN0X3Nlc3Npb24oaHMsICZhbGVydCwgJnNlc3Npb24sICZzc2wtPnMzLT50
aWNrZXRfYWdlX3NrZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJm9mZmVyZWRfdGlja2V0
LCBtc2csICZjbGllbnRfaGVsbG8pKSB7CiAgICAgY2FzZSBzc2xfdGlja2V0X2FlYWRfaWdub3Jl
X3RpY2tldDoKICAgICAgIGFzc2VydCghc2Vzc2lvbik7CisgICAgICBpZiAoIXNzbC0+ZW5hYmxl
X2Vhcmx5X2RhdGEpIHsKKyAgICAgICAgc3NsLT5zMy0+ZWFybHlfZGF0YV9yZWFzb24gPSBzc2xf
ZWFybHlfZGF0YV9kaXNhYmxlZDsKKyAgICAgIH0gZWxzZSBpZiAoIW9mZmVyZWRfdGlja2V0KSB7
CisgICAgICAgIHNzbC0+czMtPmVhcmx5X2RhdGFfcmVhc29uID0gc3NsX2Vhcmx5X2RhdGFfbm9f
c2Vzc2lvbl9vZmZlcmVkOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgc3NsLT5zMy0+ZWFybHlf
ZGF0YV9yZWFzb24gPSBzc2xfZWFybHlfZGF0YV9zZXNzaW9uX25vdF9yZXN1bWVkOworICAgICAg
fQogICAgICAgaWYgKCFzc2xfZ2V0X25ld19zZXNzaW9uKGhzLCAxIC8qIHNlcnZlciAqLykpIHsK
ICAgICAgICAgc3NsX3NlbmRfYWxlcnQoc3NsLCBTU0wzX0FMX0ZBVEFMLCBTU0xfQURfSU5URVJO
QUxfRVJST1IpOwogICAgICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwpAQCAtMzg2LDI2ICszNjIs
MzQgQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19zZWxlY3Rfc2Vzc2lvbihTU0xfSEFO
RFNIQUtFICpocykgewogICAgICAgLy8gYSBmcmVzaCBzZXNzaW9uLgogICAgICAgaHMtPm5ld19z
ZXNzaW9uID0KICAgICAgICAgICBTU0xfU0VTU0lPTl9kdXAoc2Vzc2lvbi5nZXQoKSwgU1NMX1NF
U1NJT05fRFVQX0FVVEhfT05MWSk7CisgICAgICBpZiAoaHMtPm5ld19zZXNzaW9uID09IG51bGxw
dHIpIHsKKyAgICAgICAgc3NsX3NlbmRfYWxlcnQoc3NsLCBTU0wzX0FMX0ZBVEFMLCBTU0xfQURf
SU5URVJOQUxfRVJST1IpOworICAgICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOworICAgICAgfQog
Ci0gICAgICBpZiAoc3NsLT5lbmFibGVfZWFybHlfZGF0YSAmJgotICAgICAgICAgIC8vIEVhcmx5
IGRhdGEgbXVzdCBiZSBhY2NlcHRhYmxlIGZvciB0aGlzIHRpY2tldC4KLSAgICAgICAgICBzZXNz
aW9uLT50aWNrZXRfbWF4X2Vhcmx5X2RhdGEgIT0gMCAmJgotICAgICAgICAgIC8vIFRoZSBjbGll
bnQgbXVzdCBoYXZlIG9mZmVyZWQgZWFybHkgZGF0YS4KLSAgICAgICAgICBocy0+ZWFybHlfZGF0
YV9vZmZlcmVkICYmCisgICAgICBpZiAoIXNzbC0+ZW5hYmxlX2Vhcmx5X2RhdGEpIHsKKyAgICAg
ICAgc3NsLT5zMy0+ZWFybHlfZGF0YV9yZWFzb24gPSBzc2xfZWFybHlfZGF0YV9kaXNhYmxlZDsK
KyAgICAgIH0gZWxzZSBpZiAoc2Vzc2lvbi0+dGlja2V0X21heF9lYXJseV9kYXRhID09IDApIHsK
KyAgICAgICAgc3NsLT5zMy0+ZWFybHlfZGF0YV9yZWFzb24gPSBzc2xfZWFybHlfZGF0YV91bnN1
cHBvcnRlZF9mb3Jfc2Vzc2lvbjsKKyAgICAgIH0gZWxzZSBpZiAoIWhzLT5lYXJseV9kYXRhX29m
ZmVyZWQpIHsKKyAgICAgICAgc3NsLT5zMy0+ZWFybHlfZGF0YV9yZWFzb24gPSBzc2xfZWFybHlf
ZGF0YV9wZWVyX2RlY2xpbmVkOworICAgICAgfSBlbHNlIGlmIChzc2wtPnMzLT5jaGFubmVsX2lk
X3ZhbGlkKSB7CiAgICAgICAgICAgLy8gQ2hhbm5lbCBJRCBpcyBpbmNvbXBhdGlibGUgd2l0aCAw
LVJUVC4KLSAgICAgICAgICAhc3NsLT5zMy0+Y2hhbm5lbF9pZF92YWxpZCAmJgotICAgICAgICAg
IC8vIElmIFRva2VuIEJpbmRpbmcgaXMgbmVnb3RpYXRlZCwgcmVqZWN0IDAtUlRULgotICAgICAg
ICAgICFzc2wtPnMzLT50b2tlbl9iaW5kaW5nX25lZ290aWF0ZWQgJiYKLSAgICAgICAgICAvLyBU
aGUgbmVnb3RpYXRlZCBBTFBOIG11c3QgbWF0Y2ggdGhlIG9uZSBpbiB0aGUgdGlja2V0LgotICAg
ICAgICAgIE1ha2VDb25zdFNwYW4oc3NsLT5zMy0+YWxwbl9zZWxlY3RlZCkgPT0gc2Vzc2lvbi0+
ZWFybHlfYWxwbikgeworICAgICAgICBzc2wtPnMzLT5lYXJseV9kYXRhX3JlYXNvbiA9IHNzbF9l
YXJseV9kYXRhX2NoYW5uZWxfaWQ7CisgICAgICB9IGVsc2UgaWYgKHNzbC0+czMtPnRva2VuX2Jp
bmRpbmdfbmVnb3RpYXRlZCkgeworICAgICAgICAgIC8vIFRva2VuIEJpbmRpbmcgaXMgaW5jb21w
YXRpYmxlIHdpdGggMC1SVFQuCisgICAgICAgIHNzbC0+czMtPmVhcmx5X2RhdGFfcmVhc29uID0g
c3NsX2Vhcmx5X2RhdGFfdG9rZW5fYmluZGluZzsKKyAgICAgIH0gZWxzZSBpZiAoTWFrZUNvbnN0
U3Bhbihzc2wtPnMzLT5hbHBuX3NlbGVjdGVkKSAhPSBzZXNzaW9uLT5lYXJseV9hbHBuKSB7Cisg
ICAgICAgIC8vIFRoZSBuZWdvdGlhdGVkIEFMUE4gbXVzdCBtYXRjaCB0aGUgb25lIGluIHRoZSB0
aWNrZXQuCisgICAgICAgIHNzbC0+czMtPmVhcmx5X2RhdGFfcmVhc29uID0gc3NsX2Vhcmx5X2Rh
dGFfYWxwbl9taXNtYXRjaDsKKyAgICAgIH0gZWxzZSBpZiAoc3NsLT5zMy0+dGlja2V0X2FnZV9z
a2V3IDwgLWtNYXhUaWNrZXRBZ2VTa2V3U2Vjb25kcyB8fAorICAgICAgICAgICAgICAgICBrTWF4
VGlja2V0QWdlU2tld1NlY29uZHMgPCBzc2wtPnMzLT50aWNrZXRfYWdlX3NrZXcpIHsKKyAgICAg
ICAgc3NsLT5zMy0+ZWFybHlfZGF0YV9yZWFzb24gPSBzc2xfZWFybHlfZGF0YV90aWNrZXRfYWdl
X3NrZXc7CisgICAgICB9IGVsc2UgeworICAgICAgICBzc2wtPnMzLT5lYXJseV9kYXRhX3JlYXNv
biA9IHNzbF9lYXJseV9kYXRhX2FjY2VwdGVkOwogICAgICAgICBzc2wtPnMzLT5lYXJseV9kYXRh
X2FjY2VwdGVkID0gdHJ1ZTsKICAgICAgIH0KIAotICAgICAgaWYgKGhzLT5uZXdfc2Vzc2lvbiA9
PSBOVUxMKSB7Ci0gICAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgU1NM
X0FEX0lOVEVSTkFMX0VSUk9SKTsKLSAgICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKLSAgICAg
IH0KLQogICAgICAgc3NsLT5zMy0+c2Vzc2lvbl9yZXVzZWQgPSB0cnVlOwogCiAgICAgICAvLyBS
ZXN1bXB0aW9uIGluY29ycG9yYXRlcyBmcmVzaCBrZXkgbWF0ZXJpYWwsIHNvIHJlZnJlc2ggdGhl
IHRpbWVvdXQuCkBAIC00NDQsMTEgKzQyOCwxNiBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90
IGRvX3NlbGVjdF9zZXNzaW9uKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAKICAgLy8gU2V0IHVwIHRo
ZSBrZXkgc2NoZWR1bGUgYW5kIGluY29ycG9yYXRlIHRoZSBQU0sgaW50byB0aGUgcnVubmluZyBz
ZWNyZXQuCiAgIGlmIChzc2wtPnMzLT5zZXNzaW9uX3JldXNlZCkgewotICAgIGlmICghdGxzMTNf
aW5pdF9rZXlfc2NoZWR1bGUoaHMsIGhzLT5uZXdfc2Vzc2lvbi0+bWFzdGVyX2tleSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzLT5uZXdfc2Vzc2lvbi0+bWFzdGVyX2tl
eV9sZW5ndGgpKSB7CisgICAgaWYgKCF0bHMxM19pbml0X2tleV9zY2hlZHVsZSgKKyAgICAgICAg
ICAgIGhzLCBNYWtlQ29uc3RTcGFuKGhzLT5uZXdfc2Vzc2lvbi0+bWFzdGVyX2tleSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhzLT5uZXdfc2Vzc2lvbi0+bWFzdGVyX2tleV9sZW5n
dGgpKSkgewogICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICB9Ci0gIH0gZWxzZSBpZiAo
IXRsczEzX2luaXRfa2V5X3NjaGVkdWxlKGhzLCBrWmVyb2VzLCBoYXNoX2xlbikpIHsKKyAgfSBl
bHNlIGlmICghdGxzMTNfaW5pdF9rZXlfc2NoZWR1bGUoaHMsIE1ha2VDb25zdFNwYW4oa1plcm9l
cywgaGFzaF9sZW4pKSkgeworICAgIHJldHVybiBzc2xfaHNfZXJyb3I7CisgIH0KKworICBpZiAo
IXNzbF9oYXNoX21lc3NhZ2UoaHMsIG1zZykpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwog
ICB9CiAKQEAgLTQ2NCw3ICs0NTMsMTAgQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19z
ZWxlY3Rfc2Vzc2lvbihTU0xfSEFORFNIQUtFICpocykgewogICBib29sIG5lZWRfcmV0cnk7CiAg
IGlmICghcmVzb2x2ZV9lY2RoZV9zZWNyZXQoaHMsICZuZWVkX3JldHJ5LCAmY2xpZW50X2hlbGxv
KSkgewogICAgIGlmIChuZWVkX3JldHJ5KSB7Ci0gICAgICBzc2wtPnMzLT5lYXJseV9kYXRhX2Fj
Y2VwdGVkID0gZmFsc2U7CisgICAgICBpZiAoc3NsLT5zMy0+ZWFybHlfZGF0YV9hY2NlcHRlZCkg
eworICAgICAgICBzc2wtPnMzLT5lYXJseV9kYXRhX3JlYXNvbiA9IHNzbF9lYXJseV9kYXRhX2hl
bGxvX3JldHJ5X3JlcXVlc3Q7CisgICAgICAgIHNzbC0+czMtPmVhcmx5X2RhdGFfYWNjZXB0ZWQg
PSBmYWxzZTsKKyAgICAgIH0KICAgICAgIHNzbC0+czMtPnNraXBfZWFybHlfZGF0YSA9IHRydWU7
CiAgICAgICBzc2wtPm1ldGhvZC0+bmV4dF9tZXNzYWdlKHNzbCk7CiAgICAgICBpZiAoIWhzLT50
cmFuc2NyaXB0LlVwZGF0ZUZvckhlbGxvUmV0cnlSZXF1ZXN0KCkpIHsKQEAgLTUzMiw2ICs1MjQs
NDEgQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19yZWFkX3NlY29uZF9jbGllbnRfaGVs
bG8oU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICB9CiAK
KyAgLy8gV2UgcGVyZm9ybSBhbGwgb3VyIG5lZ290aWF0aW9uIGJhc2VkIG9uIHRoZSBmaXJzdCBD
bGllbnRIZWxsbyAoZm9yCisgIC8vIGNvbnNpc3RlbmN5IHdpdGggd2hhdCB8c2VsZWN0X2NlcnRp
ZmljYXRlX2NifCBvYnNlcnZlZCksIHdoaWNoIGlzIGluIHRoZQorICAvLyB0cmFuc2NyaXB0LCBz
byB3ZSBjYW4gaWdub3JlIG1vc3Qgb2YgdGhpcyBzZWNvbmQgb25lLgorICAvLworICAvLyBXZSBk
bywgaG93ZXZlciwgY2hlY2sgdGhlIHNlY29uZCBQU0sgYmluZGVyLiBUaGlzIGNvdmVycyB0aGUg
Y2xpZW50IGtleQorICAvLyBzaGFyZSwgaW4gY2FzZSB3ZSBldmVyIHNlbmQgaGFsZi1SVFQgZGF0
YSAod2UgY3VycmVudGx5IGRvIG5vdCkuIEl0IGlzIGFsc28KKyAgLy8gYSB0cmlja3kgY29tcHV0
YXRpb24sIHNvIHdlIGVuZm9yY2UgdGhlIHBlZXIgaGFuZGxlZCBpdCBjb3JyZWN0bHkuCisgIGlm
IChzc2wtPnMzLT5zZXNzaW9uX3JldXNlZCkgeworICAgIENCUyBwcmVfc2hhcmVkX2tleTsKKyAg
ICBpZiAoIXNzbF9jbGllbnRfaGVsbG9fZ2V0X2V4dGVuc2lvbigmY2xpZW50X2hlbGxvLCAmcHJl
X3NoYXJlZF9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVExT
RVhUX1RZUEVfcHJlX3NoYXJlZF9rZXkpKSB7CisgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0ws
IFNTTF9SX0lOQ09OU0lTVEVOVF9DTElFTlRfSEVMTE8pOworICAgICAgc3NsX3NlbmRfYWxlcnQo
c3NsLCBTU0wzX0FMX0ZBVEFMLCBTU0xfQURfSUxMRUdBTF9QQVJBTUVURVIpOworICAgICAgcmV0
dXJuIHNzbF9oc19lcnJvcjsKKyAgICB9CisKKyAgICBDQlMgdGlja2V0LCBiaW5kZXJzOworICAg
IHVpbnQzMl90IGNsaWVudF90aWNrZXRfYWdlOworICAgIHVpbnQ4X3QgYWxlcnQgPSBTU0xfQURf
REVDT0RFX0VSUk9SOworICAgIGlmICghc3NsX2V4dF9wcmVfc2hhcmVkX2tleV9wYXJzZV9jbGll
bnRoZWxsbygKKyAgICAgICAgICAgIGhzLCAmdGlja2V0LCAmYmluZGVycywgJmNsaWVudF90aWNr
ZXRfYWdlLCAmYWxlcnQsICZjbGllbnRfaGVsbG8sCisgICAgICAgICAgICAmcHJlX3NoYXJlZF9r
ZXkpKSB7CisgICAgICBzc2xfc2VuZF9hbGVydChzc2wsIFNTTDNfQUxfRkFUQUwsIGFsZXJ0KTsK
KyAgICAgIHJldHVybiBzc2xfaHNfZXJyb3I7CisgICAgfQorCisgICAgLy8gTm90ZSBpdCBpcyBp
bXBvcnRhbnQgdGhhdCB3ZSBkbyBub3Qgb2J0YWluIGEgbmV3IHxTU0xfU0VTU0lPTnwgZnJvbQor
ICAgIC8vIHx0aWNrZXR8LiBXZSBoYXZlIGFscmVhZHkgc2VsZWN0ZWQgcGFyYW1ldGVycyBiYXNl
ZCBvbiB0aGUgZmlyc3QKKyAgICAvLyBDbGllbnRIZWxsbyAoaW4gdGhlIHRyYW5zY3JpcHQpIGFu
ZCBtdXN0IG5vdCBzd2l0Y2ggcGFydHdheSB0aHJvdWdoLgorICAgIGlmICghdGxzMTNfdmVyaWZ5
X3Bza19iaW5kZXIoaHMsIGhzLT5uZXdfc2Vzc2lvbi5nZXQoKSwgbXNnLCAmYmluZGVycykpIHsK
KyAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgU1NMX0FEX0RFQ1JZUFRf
RVJST1IpOworICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKKyAgICB9CisgIH0KKwogICBib29s
IG5lZWRfcmV0cnk7CiAgIGlmICghcmVzb2x2ZV9lY2RoZV9zZWNyZXQoaHMsICZuZWVkX3JldHJ5
LCAmY2xpZW50X2hlbGxvKSkgewogICAgIGlmIChuZWVkX3JldHJ5KSB7CkBAIC01ODEsNyArNjA4
LDcgQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBkb19zZW5kX3NlcnZlcl9oZWxsbyhTU0xf
SEFORFNIQUtFICpocykgewogICAvLyBEZXJpdmUgYW5kIGVuYWJsZSB0aGUgaGFuZHNoYWtlIHRy
YWZmaWMgc2VjcmV0cy4KICAgaWYgKCF0bHMxM19kZXJpdmVfaGFuZHNoYWtlX3NlY3JldHMoaHMp
IHx8CiAgICAgICAhdGxzMTNfc2V0X3RyYWZmaWNfa2V5KHNzbCwgc3NsX2VuY3J5cHRpb25faGFu
ZHNoYWtlLCBldnBfYWVhZF9zZWFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+
c2VydmVyX2hhbmRzaGFrZV9zZWNyZXQsIGhzLT5oYXNoX2xlbikpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaHMtPnNlcnZlcl9oYW5kc2hha2Vfc2VjcmV0KCkpKSB7CiAgICAgcmV0
dXJuIHNzbF9oc19lcnJvcjsKICAgfQogCkBAIC02NTAsNyArNjc3LDcgQEAgc3RhdGljIGVudW0g
c3NsX2hzX3dhaXRfdCBkb19zZW5kX3NlcnZlcl9oZWxsbyhTU0xfSEFORFNIQUtFICpocykgewog
CiAgIC8vIFNlbmQgdGhlIHNlcnZlciBDZXJ0aWZpY2F0ZSBtZXNzYWdlLCBpZiBuZWNlc3Nhcnku
CiAgIGlmICghc3NsLT5zMy0+c2Vzc2lvbl9yZXVzZWQpIHsKLSAgICBpZiAoIXNzbF9oYXNfY2Vy
dGlmaWNhdGUoaHMtPmNvbmZpZykpIHsKKyAgICBpZiAoIXNzbF9oYXNfY2VydGlmaWNhdGUoaHMp
KSB7CiAgICAgICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX05PX0NFUlRJRklDQVRFX1NF
VCk7CiAgICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICAgIH0KQEAgLTY4OSwxMCArNzE2LDEx
IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9zZXJ2ZXJfZmluaXNoZWQoU1NM
X0hBTkRTSEFLRSAqaHMpIHsKICAgU1NMICpjb25zdCBzc2wgPSBocy0+c3NsOwogICBpZiAoIXRs
czEzX2FkZF9maW5pc2hlZChocykgfHwKICAgICAgIC8vIFVwZGF0ZSB0aGUgc2VjcmV0IHRvIHRo
ZSBtYXN0ZXIgc2VjcmV0IGFuZCBkZXJpdmUgdHJhZmZpYyBrZXlzLgotICAgICAgIXRsczEzX2Fk
dmFuY2Vfa2V5X3NjaGVkdWxlKGhzLCBrWmVyb2VzLCBocy0+aGFzaF9sZW4pIHx8CisgICAgICAh
dGxzMTNfYWR2YW5jZV9rZXlfc2NoZWR1bGUoCisgICAgICAgICAgaHMsIE1ha2VDb25zdFNwYW4o
a1plcm9lcywgaHMtPnRyYW5zY3JpcHQuRGlnZXN0TGVuKCkpKSB8fAogICAgICAgIXRsczEzX2Rl
cml2ZV9hcHBsaWNhdGlvbl9zZWNyZXRzKGhzKSB8fAogICAgICAgIXRsczEzX3NldF90cmFmZmlj
X2tleShzc2wsIHNzbF9lbmNyeXB0aW9uX2FwcGxpY2F0aW9uLCBldnBfYWVhZF9zZWFsLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBocy0+c2VydmVyX3RyYWZmaWNfc2VjcmV0XzAsIGhz
LT5oYXNoX2xlbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHMtPnNlcnZlcl90
cmFmZmljX3NlY3JldF8wKCkpKSB7CiAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgfQogCkBA
IC03MDksMTIgKzczNywxMiBAQCBzdGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3NlbmRfc2Vy
dmVyX2ZpbmlzaGVkKFNTTF9IQU5EU0hBS0UgKmhzKSB7CiAgICAgfQogCiAgICAgc2l6ZV90IGZp
bmlzaGVkX2xlbjsKLSAgICBpZiAoIXRsczEzX2ZpbmlzaGVkX21hYyhocywgaHMtPmV4cGVjdGVk
X2NsaWVudF9maW5pc2hlZCwgJmZpbmlzaGVkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmYWxzZSAvKiBjbGllbnQgKi8pKSB7CisgICAgaWYgKCF0bHMxM19maW5pc2hlZF9tYWMo
aHMsIGhzLT5leHBlY3RlZF9jbGllbnRfZmluaXNoZWQoKS5kYXRhKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmZpbmlzaGVkX2xlbiwgZmFsc2UgLyogY2xpZW50ICovKSkgewogICAg
ICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKICAgICB9CiAKLSAgICBpZiAoZmluaXNoZWRfbGVuICE9
IGhzLT5oYXNoX2xlbikgeworICAgIGlmIChmaW5pc2hlZF9sZW4gIT0gaHMtPmV4cGVjdGVkX2Ns
aWVudF9maW5pc2hlZCgpLnNpemUoKSkgewogICAgICAgT1BFTlNTTF9QVVRfRVJST1IoU1NMLCBF
UlJfUl9JTlRFUk5BTF9FUlJPUik7CiAgICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICAgIH0K
QEAgLTcyNCwxMyArNzUyLDEzIEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fc2VuZF9z
ZXJ2ZXJfZmluaXNoZWQoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICAvLwogICAgIC8vIFRPRE8o
ZGF2aWRiZW4pOiBUaGlzIHdpbGwgbmVlZCB0byBiZSB1cGRhdGVkIGZvciBEVExTIDEuMy4KICAg
ICBhc3NlcnQoIVNTTF9pc19kdGxzKGhzLT5zc2wpKTsKLSAgICBhc3NlcnQoaHMtPmhhc2hfbGVu
IDw9IDB4ZmYpOwotICAgIHVpbnQ4X3QgaGVhZGVyWzRdID0ge1NTTDNfTVRfRklOSVNIRUQsIDAs
IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oaHMtPmhh
c2hfbGVuKX07CisgICAgYXNzZXJ0KGhzLT5leHBlY3RlZF9jbGllbnRfZmluaXNoZWQoKS5zaXpl
KCkgPD0gMHhmZik7CisgICAgdWludDhfdCBoZWFkZXJbNF0gPSB7CisgICAgICAgIFNTTDNfTVRf
RklOSVNIRUQsIDAsIDAsCisgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGhzLT5leHBlY3Rl
ZF9jbGllbnRfZmluaXNoZWQoKS5zaXplKCkpfTsKICAgICBib29sIHVudXNlZF9zZW50X3RpY2tl
dHM7CiAgICAgaWYgKCFocy0+dHJhbnNjcmlwdC5VcGRhdGUoaGVhZGVyKSB8fAotICAgICAgICAh
aHMtPnRyYW5zY3JpcHQuVXBkYXRlKAotICAgICAgICAgICAgTWFrZUNvbnN0U3Bhbihocy0+ZXhw
ZWN0ZWRfY2xpZW50X2ZpbmlzaGVkLCBocy0+aGFzaF9sZW4pKSB8fAorICAgICAgICAhaHMtPnRy
YW5zY3JpcHQuVXBkYXRlKGhzLT5leHBlY3RlZF9jbGllbnRfZmluaXNoZWQoKSkgfHwKICAgICAg
ICAgIXRsczEzX2Rlcml2ZV9yZXN1bXB0aW9uX3NlY3JldChocykgfHwKICAgICAgICAgIWFkZF9u
ZXdfc2Vzc2lvbl90aWNrZXRzKGhzLCAmdW51c2VkX3NlbnRfdGlja2V0cykpIHsKICAgICAgIHJl
dHVybiBzc2xfaHNfZXJyb3I7CkBAIC03NDUsNyArNzczLDcgQEAgc3RhdGljIGVudW0gc3NsX2hz
X3dhaXRfdCBkb19yZWFkX3NlY29uZF9jbGllbnRfZmxpZ2h0KFNTTF9IQU5EU0hBS0UgKmhzKSB7
CiAgIFNTTCAqY29uc3Qgc3NsID0gaHMtPnNzbDsKICAgaWYgKHNzbC0+czMtPmVhcmx5X2RhdGFf
YWNjZXB0ZWQpIHsKICAgICBpZiAoIXRsczEzX3NldF90cmFmZmljX2tleShzc2wsIHNzbF9lbmNy
eXB0aW9uX2Vhcmx5X2RhdGEsIGV2cF9hZWFkX29wZW4sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaHMtPmVhcmx5X3RyYWZmaWNfc2VjcmV0LCBocy0+aGFzaF9sZW4pKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHMtPmVhcmx5X3RyYWZmaWNfc2VjcmV0KCkpKSB7
CiAgICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICAgIH0KICAgICBocy0+Y2FuX2Vhcmx5X3dy
aXRlID0gdHJ1ZTsKQEAgLTc1OSw0MiArNzg3LDQyIEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0
X3QgZG9fcmVhZF9zZWNvbmRfY2xpZW50X2ZsaWdodChTU0xfSEFORFNIQUtFICpocykgewogCiBz
dGF0aWMgZW51bSBzc2xfaHNfd2FpdF90IGRvX3Byb2Nlc3NfZW5kX29mX2Vhcmx5X2RhdGEoU1NM
X0hBTkRTSEFLRSAqaHMpIHsKICAgU1NMICpjb25zdCBzc2wgPSBocy0+c3NsOwotICBpZiAoaHMt
PmVhcmx5X2RhdGFfb2ZmZXJlZCkgewotICAgIC8vIElmIGVhcmx5IGRhdGEgd2FzIG5vdCBhY2Nl
cHRlZCwgdGhlIEVuZE9mRWFybHlEYXRhIGFuZCBDaGFuZ2VDaXBoZXJTcGVjCi0gICAgLy8gbWVz
c2FnZSB3aWxsIGJlIGluIHRoZSBkaXNjYXJkZWQgZWFybHkgZGF0YS4KLSAgICBpZiAoaHMtPnNz
bC0+czMtPmVhcmx5X2RhdGFfYWNjZXB0ZWQpIHsKLSAgICAgIFNTTE1lc3NhZ2UgbXNnOwotICAg
ICAgaWYgKCFzc2wtPm1ldGhvZC0+Z2V0X21lc3NhZ2Uoc3NsLCAmbXNnKSkgewotICAgICAgICBy
ZXR1cm4gc3NsX2hzX3JlYWRfbWVzc2FnZTsKLSAgICAgIH0KLQotICAgICAgaWYgKCFzc2xfY2hl
Y2tfbWVzc2FnZV90eXBlKHNzbCwgbXNnLCBTU0wzX01UX0VORF9PRl9FQVJMWV9EQVRBKSkgewot
ICAgICAgICByZXR1cm4gc3NsX2hzX2Vycm9yOwotICAgICAgfQotICAgICAgaWYgKENCU19sZW4o
Jm1zZy5ib2R5KSAhPSAwKSB7Ci0gICAgICAgIHNzbF9zZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9G
QVRBTCwgU1NMX0FEX0RFQ09ERV9FUlJPUik7Ci0gICAgICAgIE9QRU5TU0xfUFVUX0VSUk9SKFNT
TCwgU1NMX1JfREVDT0RFX0VSUk9SKTsKLSAgICAgICAgcmV0dXJuIHNzbF9oc19lcnJvcjsKLSAg
ICAgIH0KLSAgICAgIHNzbC0+bWV0aG9kLT5uZXh0X21lc3NhZ2Uoc3NsKTsKKyAgLy8gSWYgZWFy
bHkgZGF0YSB3YXMgbm90IGFjY2VwdGVkLCB0aGUgRW5kT2ZFYXJseURhdGEgd2lsbCBiZSBpbiB0
aGUgZGlzY2FyZGVkCisgIC8vIGVhcmx5IGRhdGEuCisgIGlmIChocy0+c3NsLT5zMy0+ZWFybHlf
ZGF0YV9hY2NlcHRlZCkgeworICAgIFNTTE1lc3NhZ2UgbXNnOworICAgIGlmICghc3NsLT5tZXRo
b2QtPmdldF9tZXNzYWdlKHNzbCwgJm1zZykpIHsKKyAgICAgIHJldHVybiBzc2xfaHNfcmVhZF9t
ZXNzYWdlOworICAgIH0KKyAgICBpZiAoIXNzbF9jaGVja19tZXNzYWdlX3R5cGUoc3NsLCBtc2cs
IFNTTDNfTVRfRU5EX09GX0VBUkxZX0RBVEEpKSB7CisgICAgICByZXR1cm4gc3NsX2hzX2Vycm9y
OworICAgIH0KKyAgICBpZiAoQ0JTX2xlbigmbXNnLmJvZHkpICE9IDApIHsKKyAgICAgIHNzbF9z
ZW5kX2FsZXJ0KHNzbCwgU1NMM19BTF9GQVRBTCwgU1NMX0FEX0RFQ09ERV9FUlJPUik7CisgICAg
ICBPUEVOU1NMX1BVVF9FUlJPUihTU0wsIFNTTF9SX0RFQ09ERV9FUlJPUik7CisgICAgICByZXR1
cm4gc3NsX2hzX2Vycm9yOwogICAgIH0KKyAgICBzc2wtPm1ldGhvZC0+bmV4dF9tZXNzYWdlKHNz
bCk7CiAgIH0KICAgaWYgKCF0bHMxM19zZXRfdHJhZmZpY19rZXkoc3NsLCBzc2xfZW5jcnlwdGlv
bl9oYW5kc2hha2UsIGV2cF9hZWFkX29wZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhzLT5jbGllbnRfaGFuZHNoYWtlX3NlY3JldCwgaHMtPmhhc2hfbGVuKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBocy0+Y2xpZW50X2hhbmRzaGFrZV9zZWNyZXQoKSkpIHsKICAg
ICByZXR1cm4gc3NsX2hzX2Vycm9yOwogICB9Ci0gIGhzLT50bHMxM19zdGF0ZSA9IHNzbC0+czMt
PmVhcmx5X2RhdGFfYWNjZXB0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgID8gc3RhdGVfcmVh
ZF9jbGllbnRfZmluaXNoZWQKLSAgICAgICAgICAgICAgICAgICAgICAgIDogc3RhdGVfcmVhZF9j
bGllbnRfY2VydGlmaWNhdGU7CisgIGhzLT50bHMxM19zdGF0ZSA9IHN0YXRlX3JlYWRfY2xpZW50
X2NlcnRpZmljYXRlOwogICByZXR1cm4gc3NsX2hzX29rOwogfQogCiBzdGF0aWMgZW51bSBzc2xf
aHNfd2FpdF90IGRvX3JlYWRfY2xpZW50X2NlcnRpZmljYXRlKFNTTF9IQU5EU0hBS0UgKmhzKSB7
CiAgIFNTTCAqY29uc3Qgc3NsID0gaHMtPnNzbDsKICAgaWYgKCFocy0+Y2VydF9yZXF1ZXN0KSB7
Ci0gICAgLy8gT3BlblNTTCByZXR1cm5zIFg1MDlfVl9PSyB3aGVuIG5vIGNlcnRpZmljYXRlcyBh
cmUgcmVxdWVzdGVkLiBUaGlzIGlzCi0gICAgLy8gY2xhc3NlZCBieSB0aGVtIGFzIGEgYnVnLCBi
dXQgaXQncyBhc3N1bWVkIGJ5IGF0IGxlYXN0IE5HSU5YLgotICAgIGhzLT5uZXdfc2Vzc2lvbi0+
dmVyaWZ5X3Jlc3VsdCA9IFg1MDlfVl9PSzsKKyAgICBpZiAoIXNzbC0+czMtPnNlc3Npb25fcmV1
c2VkKSB7CisgICAgICAvLyBPcGVuU1NMIHJldHVybnMgWDUwOV9WX09LIHdoZW4gbm8gY2VydGlm
aWNhdGVzIGFyZSByZXF1ZXN0ZWQuIFRoaXMgaXMKKyAgICAgIC8vIGNsYXNzZWQgYnkgdGhlbSBh
cyBhIGJ1ZywgYnV0IGl0J3MgYXNzdW1lZCBieSBhdCBsZWFzdCBOR0lOWC4gKE9ubHkgZG8KKyAg
ICAgIC8vIHRoaXMgaW4gZnVsbCBoYW5kc2hha2VzIGFzIHJlc3VtcHRpb25zIHNob3VsZCBjYXJy
eSBvdmVyIHRoZSBwcmV2aW91cworICAgICAgLy8gfHZlcmlmeV9yZXN1bHR8LCB0aG91Z2ggdGhp
cyBpcyBhIG5vLW9wIGJlY2F1c2Ugc2VydmVycyBkbyBub3QKKyAgICAgIC8vIGltcGxlbWVudCB0
aGUgY2xpZW50J3Mgb2RkIHNvZnQtZmFpbCBtb2RlLikKKyAgICAgIGhzLT5uZXdfc2Vzc2lvbi0+
dmVyaWZ5X3Jlc3VsdCA9IFg1MDlfVl9PSzsKKyAgICB9CiAKICAgICAvLyBTa2lwIHRoaXMgc3Rh
dGUuCiAgICAgaHMtPnRsczEzX3N0YXRlID0gc3RhdGVfcmVhZF9jaGFubmVsX2lkOwpAQCAtODg3
LDcgKzkxNSw3IEBAIHN0YXRpYyBlbnVtIHNzbF9oc193YWl0X3QgZG9fcmVhZF9jbGllbnRfZmlu
aXNoZWQoU1NMX0hBTkRTSEFLRSAqaHMpIHsKICAgICAgICF0bHMxM19wcm9jZXNzX2ZpbmlzaGVk
KGhzLCBtc2csIHNzbC0+czMtPmVhcmx5X2RhdGFfYWNjZXB0ZWQpIHx8CiAgICAgICAvLyBldnBf
YWVhZF9zZWFsIGtleXMgaGF2ZSBhbHJlYWR5IGJlZW4gc3dpdGNoZWQuCiAgICAgICAhdGxzMTNf
c2V0X3RyYWZmaWNfa2V5KHNzbCwgc3NsX2VuY3J5cHRpb25fYXBwbGljYXRpb24sIGV2cF9hZWFk
X29wZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzLT5jbGllbnRfdHJhZmZpY19z
ZWNyZXRfMCwgaHMtPmhhc2hfbGVuKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
cy0+Y2xpZW50X3RyYWZmaWNfc2VjcmV0XzAoKSkpIHsKICAgICByZXR1cm4gc3NsX2hzX2Vycm9y
OwogICB9CiAKQEAgLTkxNSw3ICs5NDMsMTUgQEAgc3RhdGljIGVudW0gc3NsX2hzX3dhaXRfdCBk
b19zZW5kX25ld19zZXNzaW9uX3RpY2tldChTU0xfSEFORFNIQUtFICpocykgewogICB9CiAKICAg
aHMtPnRsczEzX3N0YXRlID0gc3RhdGVfZG9uZTsKLSAgcmV0dXJuIHNlbnRfdGlja2V0cyA/IHNz
bF9oc19mbHVzaCA6IHNzbF9oc19vazsKKyAgLy8gSW4gVExTIDEuMywgdGhlIE5ld1Nlc3Npb25U
aWNrZXQgaXNuJ3QgZmx1c2hlZCB1bnRpbCB0aGUgc2VydmVyIHBlcmZvcm1zIGEKKyAgLy8gd3Jp
dGUsIHRvIHByZXZlbnQgYSBub24tcmVhZGluZyBjbGllbnQgZnJvbSBjYXVzaW5nIHRoZSBzZXJ2
ZXIgdG8gaGFuZyBpbgorICAvLyB0aGUgY2FzZSBvZiBhIHNtYWxsIHNlcnZlciB3cml0ZSBidWZm
ZXIuIENvbnN1bWVycyB3aGljaCBkb24ndCB3cml0ZSBkYXRhCisgIC8vIHRvIHRoZSBjbGllbnQg
d2lsbCBuZWVkIHRvIGRvIGEgemVyby1ieXRlIHdyaXRlIGlmIHRoZXkgd2lzaCB0byBmbHVzaCB0
aGUKKyAgLy8gdGlja2V0cy4KKyAgaWYgKGhzLT5zc2wtPmN0eC0+cXVpY19tZXRob2QgIT0gbnVs
bHB0ciAmJiBzZW50X3RpY2tldHMpIHsKKyAgICByZXR1cm4gc3NsX2hzX2ZsdXNoOworICB9Cisg
IHJldHVybiBzc2xfaHNfb2s7CiB9CiAKIGVudW0gc3NsX2hzX3dhaXRfdCB0bHMxM19zZXJ2ZXJf
aGFuZHNoYWtlKFNTTF9IQU5EU0hBS0UgKmhzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvc3NsL3Rsc19t
ZXRob2QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvc3NsL3Rsc19tZXRob2QuY2MKaW5kZXggYmM5NDEwYjMzMmNhNjZiODRm
NDQ0ZDEyOGIyZTE5OTQwMWRmMDNlZi4uOTVmYWM0ZDVmNzA3MmFlY2JjNjhlYTQ4ZjUyNmZkMTdm
NTUxOGNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3NzbC90bHNfbWV0aG9kLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9zc2wv
dGxzX21ldGhvZC5jYwpAQCAtMTI1LDkgKzEyNSw5IEBAIHN0YXRpYyBjb25zdCBTU0xfUFJPVE9D
T0xfTUVUSE9EIGtUTFNQcm90b2NvbE1ldGhvZCA9IHsKICAgICBzc2wzX3NldF93cml0ZV9zdGF0
ZSwKIH07CiAKLXN0YXRpYyBpbnQgc3NsX25vb3BfeDUwOV9jaGVja19jbGllbnRfQ0FfbmFtZXMo
CitzdGF0aWMgYm9vbCBzc2xfbm9vcF94NTA5X2NoZWNrX2NsaWVudF9DQV9uYW1lcygKICAgICBT
VEFDS19PRihDUllQVE9fQlVGRkVSKSAqbmFtZXMpIHsKLSAgcmV0dXJuIDE7CisgIHJldHVybiB0
cnVlOwogfQogCiBzdGF0aWMgdm9pZCBzc2xfbm9vcF94NTA5X2NsZWFyKENFUlQgKmNlcnQpIHt9
CkBAIC0xMzUsMjkgKzEzNSwyOSBAQCBzdGF0aWMgdm9pZCBzc2xfbm9vcF94NTA5X2ZyZWUoQ0VS
VCAqY2VydCkge30KIHN0YXRpYyB2b2lkIHNzbF9ub29wX3g1MDlfZHVwKENFUlQgKm5ld19jZXJ0
LCBjb25zdCBDRVJUICpjZXJ0KSB7fQogc3RhdGljIHZvaWQgc3NsX25vb3BfeDUwOV9mbHVzaF9j
YWNoZWRfbGVhZihDRVJUICpjZXJ0KSB7fQogc3RhdGljIHZvaWQgc3NsX25vb3BfeDUwOV9mbHVz
aF9jYWNoZWRfY2hhaW4oQ0VSVCAqY2VydCkge30KLXN0YXRpYyBpbnQgc3NsX25vb3BfeDUwOV9z
ZXNzaW9uX2NhY2hlX29iamVjdHMoU1NMX1NFU1NJT04gKnNlc3MpIHsKLSAgcmV0dXJuIDE7Citz
dGF0aWMgYm9vbCBzc2xfbm9vcF94NTA5X3Nlc3Npb25fY2FjaGVfb2JqZWN0cyhTU0xfU0VTU0lP
TiAqc2VzcykgeworICByZXR1cm4gdHJ1ZTsKIH0KLXN0YXRpYyBpbnQgc3NsX25vb3BfeDUwOV9z
ZXNzaW9uX2R1cChTU0xfU0VTU0lPTiAqbmV3X3Nlc3Npb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTU0xfU0VTU0lPTiAqc2Vzc2lvbikgewotICByZXR1
cm4gMTsKK3N0YXRpYyBib29sIHNzbF9ub29wX3g1MDlfc2Vzc2lvbl9kdXAoU1NMX1NFU1NJT04g
Km5ld19zZXNzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBTU0xfU0VTU0lPTiAqc2Vzc2lvbikgeworICByZXR1cm4gdHJ1ZTsKIH0KIHN0YXRpYyB2b2lk
IHNzbF9ub29wX3g1MDlfc2Vzc2lvbl9jbGVhcihTU0xfU0VTU0lPTiAqc2Vzc2lvbikge30KLXN0
YXRpYyBpbnQgc3NsX25vb3BfeDUwOV9zZXNzaW9uX3ZlcmlmeV9jZXJ0X2NoYWluKFNTTF9TRVNT
SU9OICpzZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1NMX0hBTkRTSEFLRSAqaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRfYWxlcnQpIHsKLSAgcmV0dXJuIDA7
CitzdGF0aWMgYm9vbCBzc2xfbm9vcF94NTA5X3Nlc3Npb25fdmVyaWZ5X2NlcnRfY2hhaW4oU1NM
X1NFU1NJT04gKnNlc3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU1NMX0hBTkRTSEFLRSAqaHMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0X2FsZXJ0KSB7CisgIHJl
dHVybiBmYWxzZTsKIH0KIAogc3RhdGljIHZvaWQgc3NsX25vb3BfeDUwOV9oc19mbHVzaF9jYWNo
ZWRfY2FfbmFtZXMoU1NMX0hBTkRTSEFLRSAqaHMpIHt9Ci1zdGF0aWMgaW50IHNzbF9ub29wX3g1
MDlfc3NsX25ldyhTU0xfSEFORFNIQUtFICpocykgeyByZXR1cm4gMTsgfQorc3RhdGljIGJvb2wg
c3NsX25vb3BfeDUwOV9zc2xfbmV3KFNTTF9IQU5EU0hBS0UgKmhzKSB7IHJldHVybiB0cnVlOyB9
CiBzdGF0aWMgdm9pZCBzc2xfbm9vcF94NTA5X3NzbF9jb25maWdfZnJlZShTU0xfQ09ORklHICpj
ZmcpIHt9CiBzdGF0aWMgdm9pZCBzc2xfbm9vcF94NTA5X3NzbF9mbHVzaF9jYWNoZWRfY2xpZW50
X0NBKFNTTF9DT05GSUcgKmNmZykge30KLXN0YXRpYyBpbnQgc3NsX25vb3BfeDUwOV9zc2xfYXV0
b19jaGFpbl9pZl9uZWVkZWQoU1NMX0hBTkRTSEFLRSAqaHMpIHsKLSAgcmV0dXJuIDE7CitzdGF0
aWMgYm9vbCBzc2xfbm9vcF94NTA5X3NzbF9hdXRvX2NoYWluX2lmX25lZWRlZChTU0xfSEFORFNI
QUtFICpocykgeworICByZXR1cm4gdHJ1ZTsKIH0KLXN0YXRpYyBpbnQgc3NsX25vb3BfeDUwOV9z
c2xfY3R4X25ldyhTU0xfQ1RYICpjdHgpIHsgcmV0dXJuIDE7IH0KLXN0YXRpYyB2b2lkIHNzbF9u
b29wX3g1MDlfc3NsX2N0eF9mcmVlKFNTTF9DVFggKmN0eCkgeyB9CitzdGF0aWMgYm9vbCBzc2xf
bm9vcF94NTA5X3NzbF9jdHhfbmV3KFNTTF9DVFggKmN0eCkgeyByZXR1cm4gdHJ1ZTsgfQorc3Rh
dGljIHZvaWQgc3NsX25vb3BfeDUwOV9zc2xfY3R4X2ZyZWUoU1NMX0NUWCAqY3R4KSB7fQogc3Rh
dGljIHZvaWQgc3NsX25vb3BfeDUwOV9zc2xfY3R4X2ZsdXNoX2NhY2hlZF9jbGllbnRfQ0EoU1NM
X0NUWCAqY3R4KSB7fQogCiBjb25zdCBTU0xfWDUwOV9NRVRIT0Qgc3NsX25vb3BfeDUwOV9tZXRo
b2QgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvYW5kcm9pZC1jbWFrZS9BbmRyb2lk
TmRrR2RiLmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvQW5kcm9pZE5ka0dk
Yi5jbWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY3N2RjZGE5MTE1ZWUxZGQx
MTc2MmMwMzQyNjcwODVlYWRkM2E0OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvYW5kcm9pZC1jbWFrZS9BbmRyb2lkTmRrR2Ri
LmNtYWtlCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIw
MTQsIFBhdmVsIFJvanRiZXJnCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotIyB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIwotIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCi0jIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KLSMgYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIDMuIE5laXRoZXIgdGhl
IG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcwotIyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi0jIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UKLSMgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRQotIyBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0j
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotIyBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVXNhZ2U6Ci0jIDEuIHBsYWNlIEFu
ZHJvaWROZGtHZGIuY21ha2Ugc29tZXdoZXJlIGluc2lkZSAke0NNQUtFX01PRFVMRV9QQVRIfQot
IyAyLiBpbnNpZGUgeW91ciBwcm9qZWN0IGFkZAotIwotIyAgICBpbmNsdWRlKEFuZHJvaWROZGtH
ZGIpCi0jICAgIGFuZHJvaWRfbmRrX2dkYl9lbmFibGUoKQotIyAgICAjIGZvciBlYWNoIHRhcmdl
dAotIyAgICBhZGRfbGlicmFyeShNeUxpYnJhcnkgLi4uKQotIyAgICBhbmRyb2lkX25ka19nZGJf
ZGVidWdnYWJsZShNeUxpYnJhcnkpICAgIAotCi0KLSMgYWRkIGdkYnNlcnZlciBhbmQgZ2VuZXJh
bCBnZGIgY29uZmlndXJhdGlvbiB0byBwcm9qZWN0Ci0jIGFsc28gY3JlYXRlIGEgbWluaW5hbCBO
REsgc2tlbGV0b24gc28gbmRrLWdkYiBmaW5kcyB0aGUgcGF0aHMKLSMKLSMgdGhlIG9wdGlvbmFs
IHBhcmFtZXRlciBkZWZpbmVzIHRoZSBwYXRoIHRvIHRoZSBhbmRyb2lkIHByb2plY3QuCi0jIHVz
ZXMgUFJPSkVDVF9TT1VSQ0VfRElSIGJ5IGRlZmF1bHQuCi1tYWNybyhhbmRyb2lkX25ka19nZGJf
ZW5hYmxlKQotICAgIGlmKEFORFJPSUQpCi0gICAgICAgICMgY3JlYXRlIGN1c3RvbSB0YXJnZXQg
dGhhdCBkZXBlbmRzIG9uIHRoZSByZWFsIHRhcmdldCBzbyBpdCBnZXRzIGV4ZWN1dGVkIGFmdGVy
d2FyZHMKLSAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQoTkRLX0dEQiBBTEwpCi0gICAgICAgIAot
ICAgICAgICBpZigke0FSR0N9KQotICAgICAgICAgICAgc2V0KEFORFJPSURfUFJPSkVDVF9ESVIg
JHtBUkdWMH0pCi0gICAgICAgIGVsc2UoKQotICAgICAgICAgICAgc2V0KEFORFJPSURfUFJPSkVD
VF9ESVIgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9KQotICAgICAgICBlbmRpZigpCi0KLSAgICAgICAg
c2V0KE5ES19HREJfU09MSUJfUEFUSCAke0FORFJPSURfUFJPSkVDVF9ESVJ9L29iai9sb2NhbC8k
e0FORFJPSURfTkRLX0FCSV9OQU1FfS8pCi0gICAgICAgIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtO
REtfR0RCX1NPTElCX1BBVEh9KQotICAgICAgICAKLSAgICAgICAgIyAxLiBnZW5lcmF0ZSBlc3Nl
bnRpYWwgQW5kcm9pZCBNYWtlZmlsZXMKLSAgICAgICAgZmlsZShNQUtFX0RJUkVDVE9SWSAke0FO
RFJPSURfUFJPSkVDVF9ESVJ9L2puaSkKLSAgICAgICAgaWYoTk9UIEVYSVNUUyAke0FORFJPSURf
UFJPSkVDVF9ESVJ9L2puaS9BbmRyb2lkLm1rKQotICAgICAgICAgICAgZmlsZShXUklURSAke0FO
RFJPSURfUFJPSkVDVF9ESVJ9L2puaS9BbmRyb2lkLm1rICJBUFBfQUJJIDo9ICR7QU5EUk9JRF9O
REtfQUJJX05BTUV9XG4iKQotICAgICAgICBlbmRpZigpCi0gICAgICAgIGlmKE5PVCBFWElTVFMg
JHtBTkRST0lEX1BST0pFQ1RfRElSfS9qbmkvQXBwbGljYXRpb24ubWspCi0gICAgICAgICAgICBm
aWxlKFdSSVRFICR7QU5EUk9JRF9QUk9KRUNUX0RJUn0vam5pL0FwcGxpY2F0aW9uLm1rICJBUFBf
QUJJIDo9ICR7QU5EUk9JRF9OREtfQUJJX05BTUV9XG4iKQotICAgICAgICBlbmRpZigpCi0gICAg
Ci0gICAgICAgICMgMi4gZ2VuZXJhdGUgZ2RiLnNldHVwCi0gICAgICAgIGdldF9kaXJlY3Rvcnlf
cHJvcGVydHkoUFJPSkVDVF9JTkNMVURFUyBESVJFQ1RPUlkgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9
IElOQ0xVREVfRElSRUNUT1JJRVMpCi0gICAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICI7IiAi
ICIgUFJPSkVDVF9JTkNMVURFUyAiJHtQUk9KRUNUX0lOQ0xVREVTfSIpCi0gICAgICAgIGZpbGUo
V1JJVEUgJHtMSUJSQVJZX09VVFBVVF9QQVRIfS9nZGIuc2V0dXAgInNldCBzb2xpYi1zZWFyY2gt
cGF0aCAke05ES19HREJfU09MSUJfUEFUSH1cbiIpCi0gICAgICAgIGZpbGUoQVBQRU5EICR7TElC
UkFSWV9PVVRQVVRfUEFUSH0vZ2RiLnNldHVwICJkaXJlY3RvcnkgJHtQUk9KRUNUX0lOQ0xVREVT
fVxuIikKLSAgICAKLSAgICAgICAgIyAzLiBjb3B5IGdkYnNlcnZlciBleGVjdXRhYmxlCi0gICAg
ICAgIGZpbGUoQ09QWSAke0FORFJPSURfTkRLfS9wcmVidWlsdC9hbmRyb2lkLSR7QU5EUk9JRF9B
UkNIX05BTUV9L2dkYnNlcnZlci9nZGJzZXJ2ZXIgREVTVElOQVRJT04gJHtMSUJSQVJZX09VVFBV
VF9QQVRIfSkKLSAgICBlbmRpZigpCi1lbmRtYWNybygpCi0KLSMgcmVnaXN0ZXIgYSB0YXJnZXQg
Zm9yIHJlbW90ZSBkZWJ1Z2dpbmcKLSMgY29waWVzIHRoZSBkZWJ1ZyB2ZXJzaW9uIHRvIE5ES19H
REJfU09MSUJfUEFUSCB0aGVuIHN0cmlwcyBzeW1ib2xzIG9mIG9yaWdpbmFsCi1tYWNybyhhbmRy
b2lkX25ka19nZGJfZGVidWdnYWJsZSBUQVJHRVRfTkFNRSkKLSAgICBpZihBTkRST0lEKQotICAg
ICAgICBnZXRfcHJvcGVydHkoVEFSR0VUX0xPQ0FUSU9OIFRBUkdFVCAke1RBUkdFVF9OQU1FfSBQ
Uk9QRVJUWSBMT0NBVElPTikKLSAgICAgICAgCi0gICAgICAgICMgY3JlYXRlIGN1c3RvbSB0YXJn
ZXQgdGhhdCBkZXBlbmRzIG9uIHRoZSByZWFsIHRhcmdldCBzbyBpdCBnZXRzIGV4ZWN1dGVkIGFm
dGVyd2FyZHMKLSAgICAgICAgYWRkX2RlcGVuZGVuY2llcyhOREtfR0RCICR7VEFSR0VUX05BTUV9
KQotICAgIAotICAgICAgICAjIDQuIGNvcHkgbGliIHRvIG9iagotICAgICAgICBhZGRfY3VzdG9t
X2NvbW1hbmQoVEFSR0VUIE5ES19HREIgUE9TVF9CVUlMRCBDT01NQU5EICR7Q01BS0VfQ09NTUFO
RH0gLUUgY29weV9pZl9kaWZmZXJlbnQgJHtUQVJHRVRfTE9DQVRJT059ICR7TkRLX0dEQl9TT0xJ
Ql9QQVRIfSkKLSAgICAKLSAgICAgICAgIyA1LiBzdHJpcCBzeW1ib2xzCi0gICAgICAgIGFkZF9j
dXN0b21fY29tbWFuZChUQVJHRVQgTkRLX0dEQiBQT1NUX0JVSUxEIENPTU1BTkQgJHtDTUFLRV9T
VFJJUH0gJHtUQVJHRVRfTE9DQVRJT059KQotICAgIGVuZGlmKCkKLWVuZG1hY3JvKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9hbmRyb2lkLWNtYWtlL0FuZHJvaWROZGtNb2R1bGVzLmNt
YWtlIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvQW5kcm9pZE5ka01vZHVsZXMuY21h
a2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0ZjM3ZmRlZTI2NDQ5M2E1ZTZmOTdl
MzM2ZWFmOGFmYjA5NmFkNjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvQW5kcm9pZE5ka01vZHVsZXMu
Y21ha2UKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAx
NCwgUGF2ZWwgUm9qdGJlcmcKLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgbWV0OgotIwotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0jIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jCi0jIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSwKLSMgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgotIyBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbSB0aGlzCi0jIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLSMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
IyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFCi0jIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi0jIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1tYWNybyhhbmRyb2lkX25ka19pbXBvcnRfbW9kdWxlX2NwdWZlYXR1cmVzKQotICAg
IGlmKEFORFJPSUQpCi0gICAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMoJHtBTkRST0lEX05ES30v
c291cmNlcy9hbmRyb2lkL2NwdWZlYXR1cmVzKQotICAgICAgICBhZGRfbGlicmFyeShjcHVmZWF0
dXJlcyAke0FORFJPSURfTkRLfS9zb3VyY2VzL2FuZHJvaWQvY3B1ZmVhdHVyZXMvY3B1LWZlYXR1
cmVzLmMpCi0gICAgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhjcHVmZWF0dXJlcyBkbCkKLSAg
ICBlbmRpZigpCi1lbmRtYWNybygpCi0KLW1hY3JvKGFuZHJvaWRfbmRrX2ltcG9ydF9tb2R1bGVf
bmF0aXZlX2FwcF9nbHVlKQotICAgIGlmKEFORFJPSUQpCi0gICAgICAgIGluY2x1ZGVfZGlyZWN0
b3JpZXMoJHtBTkRST0lEX05ES30vc291cmNlcy9hbmRyb2lkL25hdGl2ZV9hcHBfZ2x1ZSkKLSAg
ICAgICAgYWRkX2xpYnJhcnkobmF0aXZlX2FwcF9nbHVlICR7QU5EUk9JRF9OREt9L3NvdXJjZXMv
YW5kcm9pZC9uYXRpdmVfYXBwX2dsdWUvYW5kcm9pZF9uYXRpdmVfYXBwX2dsdWUuYykKLSAgICAg
ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG5hdGl2ZV9hcHBfZ2x1ZSBsb2cpCi0gICAgZW5kaWYo
KQotZW5kbWFjcm8oKQotCi1tYWNybyhhbmRyb2lkX25ka19pbXBvcnRfbW9kdWxlX25ka19oZWxw
ZXIpCi0gICAgaWYoQU5EUk9JRCkKLSAgICAgICAgYW5kcm9pZF9uZGtfaW1wb3J0X21vZHVsZV9j
cHVmZWF0dXJlcygpCi0gICAgICAgIGFuZHJvaWRfbmRrX2ltcG9ydF9tb2R1bGVfbmF0aXZlX2Fw
cF9nbHVlKCkKLSAgICAgICAgCi0gICAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMoJHtBTkRST0lE
X05ES30vc291cmNlcy9hbmRyb2lkL25ka19oZWxwZXIpCi0gICAgICAgIGZpbGUoR0xPQiBfTkRL
X0hFTFBFUl9TUkNTICR7QU5EUk9JRF9OREt9L3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyLyou
Y3BwICR7QU5EUk9JRF9OREt9L3NvdXJjZXMvYW5kcm9pZC9uZGtfaGVscGVyL2dsM3N0dWIuYykK
LSAgICAgICAgYWRkX2xpYnJhcnkobmRrX2hlbHBlciAke19OREtfSEVMUEVSX1NSQ1N9KQotICAg
ICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMobmRrX2hlbHBlciBsb2cgYW5kcm9pZCBFR0wgR0xF
U3YyIGNwdWZlYXR1cmVzIG5hdGl2ZV9hcHBfZ2x1ZSkKLSAgICAgICAgCi0gICAgICAgIHVuc2V0
KF9OREtfSEVMUEVSX1NSQ1MpCi0gICAgZW5kaWYoKQotZW5kbWFjcm8oKQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9hbmRyb2lkLWNtYWtl
L0xJQ0VOU0UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvYW5kcm9pZC1jbWFrZS9MSUNFTlNFCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTZhMzY5NGQ0MTQzMTc5ZWJmOTc5NGYwYmYzZjBhZTAw
YzRkYzAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9hbmRyb2lkLWNtYWtlL0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwz
MCArMCwwIEBACi1Db3B5cmlnaHQgKGMpIDIwMTAtMjAxMSwgRXRoYW4gUnVibGVlCi1Db3B5cmln
aHQgKGMpIDIwMTEtMjAxNCwgQW5kcmV5IEthbWFldgotQ29weXJpZ2h0IChjKSAyMDE0LCBQYXZl
bCBSb2p0YmVyZwotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIG1ldDoKLQotMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0yLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAot
ICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24KLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNv
cHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAgICBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz
Ci0gICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLUNPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi1TVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUK
LVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2FuZHJvaWQtY21ha2UvTUVUQURBVEEgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvYW5kcm9pZC1jbWFrZS9N
RVRBREFUQQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVhYWZiOGQzZmExODUwMzlm
ZmExM2YyMDdiYTc3YmU4MzdhMjc0OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvYW5kcm9pZC1jbWFrZS9NRVRBREFUQQorKysg
L2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLW5hbWU6ICJhbmRyb2lkLWNtYWtlIgotZGVzY3Jp
cHRpb246Ci0gICJhbmRyb2lkLWNtYWtlIGlzIGEgY29sbGVjdGlvbiBvZiBDTWFrZSBzY3JpcHRz
IGZvciBidWlsZGluZyBhZ2FpbnN0IHRoZSAiCi0gICJBbmRyb2lkIE5ESy4iCi0KLXRoaXJkX3Bh
cnR5IHsKLSAgdXJsIHsKLSAgICB0eXBlOiBHSVQKLSAgICB2YWx1ZTogImh0dHBzOi8vZ2l0aHVi
LmNvbS90YWthLW5vLW1lL2FuZHJvaWQtY21ha2UvIgotICB9Ci0gIHZlcnNpb246ICI1NTZjYzE0
Mjk2YzIyNmY3NTNhMzc3OGQ5OWQ4YjYwNzc4YjdkZjRmIgotICBsYXN0X3VwZ3JhZGVfZGF0ZSB7
IHllYXI6IDIwMTYgbW9udGg6IDYgZGF5OiAyIH0KLQotICBsb2NhbF9tb2RpZmljYXRpb25zOiAi
TElDRU5TRSBmaWxlIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIGNvbXBsaWFuY2UgcHVycG9zZXMuIE5v
dCBpbmNsdWRlZCBpbiBvcmlnaW5hbCBkaXN0cmlidXRpb24uIgotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvUkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2Fu
ZHJvaWQtY21ha2UvUkVBRE1FLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTYz
MDIxMjgyNzJhZTlkZTYzN2YyMGMyYTkxNzdlZjYyNTI2MTAwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9hbmRyb2lkLWNtYWtl
L1JFQURNRS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDI0MCArMCwwIEBACi0jIGFuZHJvaWQtY21h
a2UKLQotQ01ha2UgaXMgZ3JlYXQsIGFuZCBzbyBpcyBBbmRyb2lkLiBUaGlzIGlzIGEgY29sbGVj
dGlvbiBvZiBDTWFrZSBzY3JpcHRzIHRoYXQgbWF5IGJlIHVzZWZ1bCB0byB0aGUgQW5kcm9pZCBO
REsgY29tbXVuaXR5LiBJdCBpcyBiYXNlZCBvbiBleHBlcmllbmNlIGZyb20gcG9ydGluZyBPcGVu
Q1YgbGlicmFyeSB0byBBbmRyb2lkOiBodHRwOi8vb3BlbmN2Lm9yZy9wbGF0Zm9ybXMvYW5kcm9p
ZC5odG1sCi0KLU1haW4gZ29hbCBpcyB0byBzaGFyZSB0aGVzZSBzY3JpcHRzIHNvIHRoYXQgZGV2
cyB0aGF0IHVzZSBDTWFrZSBhcyB0aGVpciBidWlsZCBzeXN0ZW0gbWF5IGVhc2lseSBjb21waWxl
IG5hdGl2ZSBjb2RlIGZvciBBbmRyb2lkLgotCi0jIyBUTDtEUgotCi0gICAgY21ha2UgLURDTUFL
RV9UT09MQ0hBSU5fRklMRT1hbmRyb2lkLnRvb2xjaGFpbi5jbWFrZSBcCi0gICAgICAgICAgLURB
TkRST0lEX05ESz08bmRrX3BhdGg+ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg
LURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
ICAgLURBTkRST0lEX0FCST0iYXJtZWFiaS12N2Egd2l0aCBORU9OIiAgICAgICAgICBcCi0gICAg
ICAgICAgPHNvdXJjZV9wYXRoPgotICAgIGNtYWtlIC0tYnVpbGQgLgotCi1PbmUtbGluZXI6Ci0K
LSAgICBjbWFrZSAtRENNQUtFX1RPT0xDSEFJTl9GSUxFPWFuZHJvaWQudG9vbGNoYWluLmNtYWtl
IC1EQU5EUk9JRF9OREs9PG5ka19wYXRoPiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtREFO
RFJPSURfQUJJPSJhcm1lYWJpLXY3YSB3aXRoIE5FT04iIDxzb3VyY2VfcGF0aD4gJiYgY21ha2Ug
LS1idWlsZCAuCi0KLV9hbmRyb2lkLWNtYWtlXyB3aWxsIHNlYXJjaCBmb3IgeW91ciBOREsgaW5z
dGFsbCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgotCi0xLiBWYWx1ZSBvZiBgQU5EUk9JRF9OREtg
IENNYWtlIHZhcmlhYmxlOwotMS4gVmFsdWUgb2YgYEFORFJPSURfTkRLYCBlbnZpcm9ubWVudCB2
YXJpYWJsZTsKLTEuIFNlYXJjaCB1bmRlciBwYXRocyBmcm9tIGBBTkRST0lEX05ES19TRUFSQ0hf
UEFUSFNgIENNYWtlIHZhcmlhYmxlOwotMS4gU2VhcmNoIHBsYXRmb3JtIHNwZWNpZmljIGxvY2F0
aW9ucyAoaG9tZSBmb2xkZXIsIFdpbmRvd3MgIlByb2dyYW0gRmlsZXMiLCBldGMpLgotCi1TbyBp
ZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIE5ESyBhcyBgfi9hbmRyb2lkLW5kay1yMTBkYCB0aGVu
IF9hbmRyb2lkLWNtYWtlXyB3aWxsIGxvY2F0ZSBpdCBhdXRvbWF0aWNhbGx5LgotCi0jIyBHZXR0
aW5nIHN0YXJ0ZWQKLQotVG8gYnVpbGQgYSBjbWFrZS1iYXNlZCBDL0MrKyBwcm9qZWN0IGZvciBB
bmRyb2lkIHlvdSBuZWVkOgotCi0qIEFuZHJvaWQgTkRLICg+PSByNSkgaHR0cDovL2RldmVsb3Bl
ci5hbmRyb2lkLmNvbS90b29scy9zZGsvbmRrL2luZGV4Lmh0bWwKLSogQ01ha2UgKD49IHYyLjYu
MywgPj0gdjIuOC45IHJlY29tbWVuZGVkKSBodHRwOi8vd3d3LmNtYWtlLm9yZy9kb3dubG9hZAot
Ci1UaGUgX2FuZHJvaWQtY21ha2VfIGlzIGFsc28gY2FwYWJsZSB0byBidWlsZCB3aXRoIE5ESyBm
cm9tIEFPU1Agb3IgTGluYXJvIEFuZHJvaWQgc291cmNlIHRyZWUsIGJ1dCB5b3UgbWF5IGJlIHJl
cXVpcmVkIHRvIG1hbnVhbGx5IHNwZWNpZnkgcGF0aCB0byBgbGlibWAgYmluYXJ5IHRvIGxpbmsg
d2l0aC4KLQotIyMgRGlmZmVyZW5jZSBmcm9tIHRyYWRpdGlvbmFsIENNYWtlCi0KLUZvbG93aW5n
IHRoZSBfbmRrLWJ1aWxkXyB0aGUgX2FuZHJvaWQtY21ha2VfIHN1cHBvcnRzICoqb25seSB0d28g
YnVpbGQgdGFyZ2V0cyoqOgotCi0qIGAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZWAKLSogYC1E
Q01BS0VfQlVJTERfVFlQRT1EZWJ1Z2AKLQotU28gZG9uJ3QgZXZlbiB0cnkgb3RoZXIgdGFyZ2V0
cyB0aGF0IGNhbiBiZSBmb3VuZCBpbiBDTWFrZSBkb2N1bWVudGF0aW9uIGFuZCBkb24ndCBmb3Jn
ZXQgdG8gZXhwbGljaXRseSBzcGVjaWZ5IGBSZWxlYXNlYCBvciBgRGVidWdgIGJlY2F1c2UgQ01h
a2UgYnVpbGRzIHdpdGhvdXQgYSBidWlsZCBjb25maWd1cmF0aW9uIGJ5IGRlZmF1bHQuCi0KLSMj
IERpZmZlcmVuY2UgZnJvbSBfbmRrLWJ1aWxkXwotCi0qIExhdGVzdCBHQ0MgYXZhaWxhYmxlIGlu
IE5ESyBpcyB1c2VkIGFzIHRoZSBkZWZhdWx0IGNvbXBpbGVyOwotKiBgUmVsZWFzZWAgYnVpbGRz
IHdpdGggYC1PM2AgaW5zdGVhZCBvZiBgLU9zYDsKLSogYFJlbGVhc2VgIGJ1aWxkcyB3aXRob3V0
IGRlYnVnIGluZm8gKHdpdGhvdXQgYC1nYCkgKGJlY2F1c2UgX25kay1idWlsZF8gYWx3YXlzIGNy
ZWF0ZXMgYSBzdHJpcHBlZCB2ZXJzaW9uIGJ1dCBjbWFrZSBkZWxheXMgdGhpcyBmb3IgYGluc3Rh
bGwvc3RyaXBgIHRhcmdldCk7Ci0qIGAtZnNpZ25lZC1jaGFyYCBpcyBhZGRlZCB0byBjb21waWxl
ciBmbGFncyB0byBtYWtlIGBjaGFyYCBzaWduZWQgYnkgZGVmYXVsdCBhcyBpdCBpcyBvbiB4ODYv
eDg2XzY0OwotKiBHQ0MncyBzdGFjayBwcm90ZWN0b3IgaXMgbm90IHVzZWQgbmVpdGhlciBpbiBg
RGVidWdgIG5vciBgUmVsZWFzZWAgY29uZmlndXJhdGlvbnM7Ci0qIE5vIGJ1aWxkcyBmb3IgbXVs
dGlwbGUgcGxhdGZvcm1zIChlLmcuIGJ1aWxkaW5nIGZvciBib3RoIGFybSBhbmQgeDg2IHJlcXVp
cmUgdG8gcnVuIGNtYWtlIHR3aWNlIHdpdGggZGlmZmVyZW50IHBhcmFtZXRlcnMpOwotKiBObyBm
aWxlIGxldmVsIE5lb24gdmlhIGAubmVvbmAgc3VmZml4OwotCi1UaGUgZm9sbG93aW5nIGZlYXR1
cmVzIG9mIF9uZGstYnVpbGRfIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBfYW5kcm9pZC1jbWFr
ZV8geWV0OgotCi0qIGBhcm1lYWJpLXY3YS1oYXJkYCBBQkkKLSogYGxpYmMrK19zdGF0aWNgL2Bs
aWJjKytfc2hhcmVkYCBTVEwgcnVudGltZQotCi0jIyBCYXNpYyBvcHRpb25zCi0KLVNpbWlsYXJs
eSB0byB0aGUgTkRLIGJ1aWxkIHN5c3RlbSBfYW5kcm9pZC1jbWFrZV8gYWxsb3dzIHRvIHNlbGVj
dCBiZXR3ZWVuIHNldmVyYWwgY29tcGlsZXIgdG9vbGNoYWlucyBhbmQgdGFyZ2V0IHBsYXRmb3Jt
cy4gTW9zdCBvZiB0aGUgb3B0aW9ucyBjYW4gYmUgc2V0IGVpdGhlciBhcyBjbWFrZSBhcmd1bWVu
dHM6IGAtRDxOQU1FPj08VkFMVUU+YCBvciBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0KLSog
KipBTkRST0lEX05ESyoqIC0gcGF0aCB0byB0aGUgQW5kcm9pZCBOREsuIElmIG5vdCBzZXQgdGhl
biBfYW5kcm9pZC1jbWFrZV8gd2lsbCBzZWFyY2ggZm9yIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9u
IG9mIHN1cHBvcnRlZCBOREsgaW4gY29tbW9ubHkgdXNlZCBsb2NhdGlvbnM7Ci0qICoqQU5EUk9J
RF9BQkkqKiAtIHNwZWNpZmllcyB0aGUgdGFyZ2V0IEFwcGxpY2F0aW9uIEJpbmFyeSBJbnRlcmZh
Y2UgKEFCSSkuIFRoaXMgb3B0aW9uIG5lYXJseSBtYXRjaGVzIHRvIHRoZSBBUFBfQUJJIHZhcmlh
YmxlIHVzZWQgYnkgbmRrLWJ1aWxkIHRvb2wgZnJvbSBBbmRyb2lkIE5ESy4gSWYgbm90IHNwZWNp
ZmllZCB0aGVuIHNldCB0byBgYXJtZWFiaS12N2FgLiBQb3NzaWJsZSB0YXJnZXQgbmFtZXMgYXJl
OgotICAgICogYGFybWVhYmlgIC0gQVJNdjVURSBiYXNlZCBDUFUgd2l0aCBzb2Z0d2FyZSBmbG9h
dGluZyBwb2ludCBvcGVyYXRpb25zOwotICAgICogKipgYXJtZWFiaS12N2FgKiogLSBBUk12NyBi
YXNlZCBkZXZpY2VzIHdpdGggaGFyZHdhcmUgRlBVIGluc3RydWN0aW9ucyAoVkZQdjNfRDE2KTsK
LSAgICAqIGBhcm1lYWJpLXY3YSB3aXRoIE5FT05gIC0gc2FtZSBhcyBhcm1lYWJpLXY3YSwgYnV0
IHNldHMgTkVPTiBhcyBmbG9hdGluZy1wb2ludCB1bml0OwotICAgICogYGFybWVhYmktdjdhIHdp
dGggVkZQVjNgIC0gc2FtZSBhcyBhcm1lYWJpLXY3YSwgYnV0IHNldHMgVkZQdjNfRDMyIGFzIGZs
b2F0aW5nLXBvaW50IHVuaXQ7Ci0gICAgKiBgYXJtZWFiaS12NiB3aXRoIFZGUGAgLSB0dW5lZCBm
b3IgQVJNdjYgcHJvY2Vzc29ycyBoYXZpbmcgVkZQOwotICAgICogYHg4NmAgLSBJQS0zMiBpbnN0
cnVjdGlvbiBzZXQKLSAgICAqIGBtaXBzYCAtIE1JUFMzMiBpbnN0cnVjdGlvbiBzZXQKLSAgICAq
IGBhcm02NC12OGFgIC0gQVJNdjggQUFyY2g2NCBpbnN0cnVjdGlvbiBzZXQgLSBvbmx5IGZvciBO
REsgcjEwIGFuZCBuZXdlcgotICAgICogYHg4Nl82NGAgLSBJbnRlbDY0IGluc3RydWN0aW9uIHNl
dCAocjEpIC0gb25seSBmb3IgTkRLIHIxMCBhbmQgbmV3ZXIKLSAgICAqIGBtaXBzNjRgIC0gTUlQ
UzY0IGluc3RydWN0aW9uIHNldCAocjYpIC0gb25seSBmb3IgTkRLIHIxMCBhbmQgbmV3ZXIKLSog
KipBTkRST0lEX05BVElWRV9BUElfTEVWRUwqKiAtIGxldmVsIG9mIGFuZHJvaWQgQVBJIHRvIGJ1
aWxkIGZvci4gQ2FuIGJlIHNldCBlaXRoZXIgdG8gZnVsbCBuYW1lIChleGFtcGxlOiBgYW5kcm9p
ZC04YCkgb3IgYSBudW1lcmljIHZhbHVlIChleGFtcGxlOiBgMTdgKS4gVGhlIGRlZmF1bHQgQVBJ
IGxldmVsIGRlcGVuZHMgb24gdGhlIHRhcmdldCBBQkk6Ci0gICAgKiBgYW5kcm9pZC04YCBmb3Ig
QVJNOwotICAgICogYGFuZHJvaWQtOWAgZm9yIHg4NiBhbmQgTUlQUzsKLSAgICAqIGBhbmRyb2lk
LTIxYCBmb3IgNjQtYml0IEFCSXMuCi0KLSAgICBCdWlsZGluZyBmb3IgYGFuZHJvaWQtTGAgaXMg
cG9zc2libGUgb25seSB3aGVuIGl0IGlzIGV4cGxpY2l0bHkgc2VsZWN0ZWQuCi0qICoqQU5EUk9J
RF9UT09MQ0hBSU5fTkFNRSoqIC0gdGhlIG5hbWUgb2YgY29tcGlsZXIgdG9vbGNoYWluIHRvIGJl
IHVzZWQuIFRoaXMgb3B0aW9uIGFsbG93cyB0byBzZWxlY3QgYmV0d2VlbiBkaWZmZXJlbnQgR0ND
IGFuZCBDbGFuZyB2ZXJzaW9ucy4gVGhlIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzIGRlcGVuZHMg
b24gdGhlIE5ESyB2ZXJzaW9uIGFuZCB3aWxsIGJlIHByaW50ZWQgYnkgdG9vbGNoYWluIGZpbGUg
aWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBzZXQuIEJ5IGRlZmF1bHQgX2FuZHJvaWQtY21ha2VfIHNl
bGVjdHMgdGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgR0NDIHdoaWNoIGNhbiBidWlsZCBmb3Ig
c3BlY2lmaWVkIGBBTkRST0lEX0FCSWAuCi0KLSAgICBFeGFtcGxlIHZhbHVlcyBhcmU6Ci0gICAg
KiBgYWFyY2g2NC1saW51eC1hbmRyb2lkLTQuOWAKLSAgICAqIGBhYXJjaDY0LWxpbnV4LWFuZHJv
aWQtY2xhbmczLjVgCi0gICAgKiBgYXJtLWxpbnV4LWFuZHJvaWRlYWJpLTQuOGAKLSAgICAqIGBh
cm0tbGludXgtYW5kcm9pZGVhYmktNC45YAotICAgICogYGFybS1saW51eC1hbmRyb2lkZWFiaS1j
bGFuZzMuNWAKLSAgICAqIGBtaXBzNjRlbC1saW51eC1hbmRyb2lkLTQuOWAKLSAgICAqIGBtaXBz
ZWwtbGludXgtYW5kcm9pZC00LjhgCi0gICAgKiBgeDg2LTQuOWAKLSAgICAqIGB4ODZfNjQtNC45
YAotICAgICogZXRjLgotKiAqKkFORFJPSURfU1RMKiogLSB0aGUgbmFtZSBvZiBDKysgcnVudGlt
ZSB0byB1c2UuIFRoZSBkZWZhdWx0IGlzIGBnbnVzdGxfc3RhdGljYC4KLSAgICAqIGBub25lYCAt
IGRvIG5vdCBjb25maWd1cmUgdGhlIHJ1bnRpbWUuCi0gICAgKiBgc3lzdGVtYCAtIHVzZSB0aGUg
ZGVmYXVsdCBtaW5pbWFsIHN5c3RlbSBDKysgcnVudGltZSBsaWJyYXJ5LgotICAgICAgICAqIElt
cGxpZXMgYC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNgLgotICAgICogYHN5c3RlbV9yZWAgLSB1
c2UgdGhlIGRlZmF1bHQgbWluaW1hbCBzeXN0ZW0gQysrIHJ1bnRpbWUgbGlicmFyeS4KLSAgICAg
ICAgKiBJbXBsaWVzIGAtZnJ0dGkgLWZleGNlcHRpb25zYC4KLSAgICAqIGBnYWJpKytfc3RhdGlj
YCAtIHVzZSB0aGUgR0FiaSsrIHJ1bnRpbWUgYXMgYSBzdGF0aWMgbGlicmFyeS4KLSAgICAgICAg
KiBJbXBsaWVzIGAtZnJ0dGkgLWZuby1leGNlcHRpb25zYC4KLSAgICAgICAgKiBBdmFpbGFibGUg
Zm9yIE5ESyByNyBhbmQgbmV3ZXIuCi0gICAgKiBgZ2FiaSsrX3NoYXJlZGAgLSB1c2UgdGhlIEdB
YmkrKyBydW50aW1lIGFzIGEgc2hhcmVkIGxpYnJhcnkuCi0gICAgICAgICogSW1wbGllcyBgLWZy
dHRpIC1mbm8tZXhjZXB0aW9uc2AuCi0gICAgICAgICogQXZhaWxhYmxlIGZvciBOREsgcjcgYW5k
IG5ld2VyLgotICAgICogYHN0bHBvcnRfc3RhdGljYCAtIHVzZSB0aGUgU1RMcG9ydCBydW50aW1l
IGFzIGEgc3RhdGljIGxpYnJhcnkuCi0gICAgICAgICogSW1wbGllcyBgLWZuby1ydHRpIC1mbm8t
ZXhjZXB0aW9uc2AgZm9yIE5ESyBiZWZvcmUgcjcuCi0gICAgICAgICogSW1wbGllcyBgLWZydHRp
IC1mbm8tZXhjZXB0aW9uc2AgZm9yIE5ESyByNyBhbmQgbmV3ZXIuCi0gICAgKiBgc3RscG9ydF9z
aGFyZWRgIC0gdXNlIHRoZSBTVExwb3J0IHJ1bnRpbWUgYXMgYSBzaGFyZWQgbGlicmFyeS4KLSAg
ICAgICAgKiBJbXBsaWVzIGAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zYCBmb3IgTkRLIGJlZm9y
ZSByNy4KLSAgICAgICAgKiBJbXBsaWVzIGAtZnJ0dGkgLWZuby1leGNlcHRpb25zYCBmb3IgTkRL
IHI3IGFuZCBuZXdlci4KLSAgICAqICoqYGdudXN0bF9zdGF0aWNgKiogLSB1c2UgdGhlIEdOVSBT
VEwgYXMgYSBzdGF0aWMgbGlicmFyeS4KLSAgICAgICAgKiBJbXBsaWVzIGAtZnJ0dGkgLWZleGNl
cHRpb25zYC4KLSAgICAqIGBnbnVzdGxfc2hhcmVkYCAtIHVzZSB0aGUgR05VIFNUTCBhcyBhIHNo
YXJlZCBsaWJyYXJ5LgotICAgICAgICAqIEltcGxpZXMgYC1mcnR0aSAtZm5vLWV4Y2VwdGlvbnNg
LgotICAgICAgICAqIEF2YWlsYWJsZSBmb3IgTkRLIHI3YiBhbmQgbmV3ZXIuCi0gICAgICAgICog
U2lsZW50bHkgZGVncmFkZXMgdG8gYGdudXN0bF9zdGF0aWNgIGlmIG5vdCBhdmFpbGFibGUuCi0q
ICoqTkRLX0NDQUNIRSoqIC0gcGF0aCB0byBgY2NhY2hlYCBleGVjdXRhYmxlLiBJZiBub3Qgc2V0
IHRoZW4gaW5pdGlhbGl6ZWQgZnJvbSBgTkRLX0NDQUNIRWAgZW52aXJvbm1lbnQgdmFyaWFibGUu
Ci0KLSMjIEFkdmFuY2VkIF9hbmRyb2lkLWNtYWtlXyBvcHRpb25zCi0KLU5vcm1hbGx5IF9hbmRy
b2lkLWNtYWtlXyB1c2VycyBhcmUgbm90IHN1cHBvc2VkIHRvIHRvdWNoIHRoZXNlIHZhcmlhYmxl
cyBidXQgdGhleSBtaWdodCBiZSB1c2VmdWwgdG8gd29ya2Fyb3VuZCBzb21lIGJ1aWxkIGlzc3Vl
czoKLQotKiAqKkFORFJPSURfRk9SQ0VfQVJNX0JVSUxEKiogPSBgT0ZGYCAtIGdlbmVyYXRlIDMy
LWJpdCBBUk0gaW5zdHJ1Y3Rpb25zIGluc3RlYWQgb2YgVGh1bWIuIEFwcGxpY2FibGUgb25seSBm
b3IgYXJtIEFCSXMgYW5kIGlzIGZvcmNlZCB0byBiZSBgT05gIGZvciBgYXJtZWFiaS12NiB3aXRo
IFZGUGA7Ci0qICoqQU5EUk9JRF9OT19VTkRFRklORUQqKiA9IGBPTmAgLSBzaG93IGFsbCB1bmRl
ZmluZWQgc3ltYm9scyBhcyBsaW5rZXIgZXJyb3JzOwotKiAqKkFORFJPSURfU09fVU5ERUZJTkVE
KiogPSBgT0ZGYCAtIGFsbG93IHVuZGVmaW5lZCBzeW1ib2xzIGluIHNoYXJlZCBsaWJyYXJpZXM7
Ci0gICAgKiBhY3R1YWxseSBpdCBpcyB0dXJuZWQgYE9OYCBieSBkZWZhdWx0IGZvciBOREsgb2xk
ZXIgdGhhbiBgcjdgCi0qICoqQU5EUk9JRF9TVExfRk9SQ0VfRkVBVFVSRVMqKiA9IGBPTmAgLSBh
dXRvbWF0aWNhbGx5IGNvbmZpZ3VyZSBydHRpIGFuZCBleGNlcHRpb25zIHN1cHBvcnQgYmFzZWQg
b24gQysrIHJ1bnRpbWU7Ci0qICoqQU5EUk9JRF9OREtfTEFZT1VUKiogPSBgUkVMRUFTRWAgLSBp
bm5lciBsYXlvdXQgb2YgQW5kcm9pZCBOREssIHNob3VsZCBiZSBkZXRlY3RlZCBhdXRvbWF0aWNh
bGx5LiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgotICAgICogYFJFTEVBU0VgIC0gcHVibGljIHJlbGVh
c2VzIGZyb20gR29vZ2xlOwotICAgICogYExJTkFST2AgLSBOREsgZnJvbSBMaW5hcm8gcHJvamVj
dDsKLSAgICAqIGBBTkRST0lEYCAtIE5ESyBmcm9tIEFPU1AuCi0qICoqQU5EUk9JRF9GVU5DVElP
Tl9MRVZFTF9MSU5LSU5HKiogPSBgT05gIC0gZW5hYmxlcyBzYXBhcmF0ZSBwdXR0aW5nIGVhY2gg
ZnVuY3Rpb24gYW5kIGRhdGEgaXRlbXMgaW50byBzZXBhcmF0ZSBzZWN0aW9ucyBhbmQgZW5hYmxl
IGdhcmJhZ2UgY29sbGVjdGlvbiBvZiB1bnVzZWQgaW5wdXQgc2VjdGlvbnMgYXQgbGluayB0aW1l
IChgLWZkYXRhLXNlY3Rpb25zIC1mZnVuY3Rpb24tc2VjdGlvbnMgLVdsLC0tZ2Mtc2VjdGlvbnNg
KTsKLSogKipBTkRST0lEX0dPTERfTElOS0VSKiogPSBgT05gIC0gdXNlIGdvbGQgbGlua2VyIHdp
dGggR0NDIDQuNiBmb3IgTkRLIHI4YiBhbmQgbmV3ZXIgKG9ubHkgZm9yIEFSTSBhbmQgeDg2KTsK
LSogKipBTkRST0lEX05PRVhFQ1NUQUNLKiogPSBgT05gIC0gZW5hYmxlcyBvciBkaXNhYmxlcyBz
dGFjayBleGVjdXRpb24gcHJvdGVjdGlvbiBjb2RlIChgLVdsLC16LG5vZXhlY3N0YWNrYCk7Ci0q
ICoqQU5EUk9JRF9SRUxSTyoqID0gYE9OYCAtIEVuYWJsZXMgUkVMUk8gLSBhIG1lbW9yeSBjb3Jy
dXB0aW9uIG1pdGlnYXRpb24gdGVjaG5pcXVlIChgLVdsLC16LHJlbHJvIC1XbCwteixub3dgKTsK
LSogKipBTkRST0lEX0xJQk1fUEFUSCoqIC0gcGF0aCB0byBgbGlibS5zb2AgKHNldCB0byBzb21l
dGhpbmcgbGlrZSBgJChUT1ApL291dC90YXJnZXQvcHJvZHVjdC88cHJvZHVjdF9uYW1lPi9vYmov
bGliL2xpYm0uc29gKSB0byB3b3JrYXJvdW5kIHVucmVzb2x2ZWQgYHNpbmNvc2AuCi0KLSMjIEZp
bmUtdHVuaW5nIGBDTWFrZUxpc3RzLnR4dGAgZm9yIF9hbmRyb2lkLWNtYWtlXwotCi0jIyMgUmVj
b2duaXppbmcgQW5kcm9pZCBidWlsZAotCi1fYW5kcm9pZC1jbWFrZV8gZGVmaW5lcyBgQU5EUk9J
RGAgQ01ha2UgdmFyaWFibGUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYWRkIEFuZHJvaWQtc3BlY2lm
aWMgc3R1ZmY6Ci0KLSAgICBpZiAoQU5EUk9JRCkKLSAgICAgICAgbWVzc2FnZShTVEFUVVMgIkhl
bGxvIGZyb20gQW5kcm9pZCBidWlsZCEiKQotICAgIGVuZGlmKCkKLQotVGhlIHJlY29tbWVuZGVk
IHdheSB0byBpZGVudGlmeSBBUk0vTUlQUy94ODYgYXJjaGl0ZWN0dXJlIGlzIGV4YW1pbmluZyBg
Q01BS0VfU1lTVEVNX1BST0NFU1NPUmAgd2hpY2ggaXMgc2V0IHRvIHRoZSBhcHByb3ByaWF0ZSB2
YWx1ZToKLQotKiBgYXJtdjV0ZWAgLSBmb3IgYGFybWVhYmlgIEFCSQotKiBgYXJtdjZgIC0gZm9y
IGBhcm1lYWJpLXY2IHdpdGggVkZQYCBBQkkKLSogYGFybXY3LWFgIC0gZm9yIGBhcm1lYWJpLXY3
YWAsIGBhcm1lYWJpLXY3YSB3aXRoIFZGUFYzYCBhbmQgYGFybWVhYmktdjdhIHdpdGggTkVPTmAg
QUJJcwotKiBgYWFyY2g2NGAgLSBmb3IgYGFybTY0LXY4YWAgQUJJCi0qIGBpNjg2YCAtIGZvciBg
eDg2YCBBQkkKLSogYHg4Nl82NGAgLSBmb3IgYHg4Nl82NGAgQUJJCi0qIGBtaXBzYCAtIGZvciBg
bWlwc2AgQUJJCi0qIGBtaXBzNjRgIC0gZm9yIGBtaXBzNjRgIEFCSQotCi1PdGhlciB2YXJpYWJs
ZXMgdGhhdCBhcmUgc2V0IGJ5IF9hbmRyb2lkLWNtYWtlXyBhbmQgY2FuIGJlIHVzZWQgZm9yIHRo
ZSBmaW5lLWdyYWluZWQgYnVpbGQgY29uZmlndXJhdGlvbiBhcmU6Ci0KLSogYE5FT05gIC0gc2V0
IGlmIHRhcmdldCBBQkkgc3VwcG9ydHMgTmVvbjsKLSogYEFORFJPSURfTkFUSVZFX0FQSV9MRVZF
TGAgLSBuYXRpdmUgQW5kcm9pZCBBUEkgbGV2ZWwgd2UgYXJlIGJ1aWxkaW5nIGZvciAobm90ZTog
SmF2YSBwYXJ0IG9mIEFuZG9pZCBhcHBsaWNhdGlvbiBjYW4gYmUgYnVpbHQgZm9yIGFub3RoZXIg
QVBJIGxldmVsKQotKiBgQU5EUk9JRF9OREtfUkVMRUFTRWAgLSB2ZXJzaW9uIG9mIHRoZSBBbmRy
b2lkIE5ESwotKiBgQU5EUk9JRF9OREtfSE9TVF9TWVNURU1fTkFNRWAgLSAid2luZG93cyIsICJs
aW51eC14ODYiIG9yICJkYXJ3aW4teDg2IiBkZXBlbmRpbmcgb24gdGhlIGhvc3QgcGxhdGZvcm0K
LSogYEFORFJPSURfUlRUSWAgLSBzZXQgaWYgcnR0aSBpcyBlbmFibGVkIGJ5IHRoZSBydW50aW1l
Ci0qIGBBTkRST0lEX0VYQ0VQVElPTlNgIC0gc2V0IGlmIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQg
YnkgdGhlIHJ1bnRpbWUKLQotIyMjIEZpbmRpbmcgcGFja2FnZXMKLQotV2hlbiBjcm9zc2NvbXBp
bGluZyBDTWFrZSBgZmluZF8qYCBjb21tYW5kcyBhcmUgbm9ybWFsbHkgZXhwZWN0ZWQgdG8gZmlu
ZCBsaWJyYXJpZXMgYW5kIHBhY2thZ2VzIGJlbG9uZ2luZyB0byB0aGUgc2FtZSBidWlsZCB0YXJn
ZXQuIFNvIF9hbmRyb2lkLWNtYWtlXyBjb25maWd1cmVzIENNYWtlIHRvIHNlYXJjaCBpbiBBbmRy
b2lkLXNwZWNpZmljIHBhdGhzIG9ubHkgYW5kIGlnbm9yZSB5b3VyIGhvc3Qgc3lzdGVtIGxvY2F0
aW9ucy4gU28KLQotICAgIGZpbmRfcGFja2FnZShaTElCKQotCi13aWxsIHN1cmVseSBmaW5kIGxp
Ynouc28gd2l0aGluIHRoZSBBbmRyb2lkIE5ESy4KLQotSG93ZXZlciBzb21ldGltZXMgeW91IG5l
ZWQgdG8gbG9jYXRlIGEgaG9zdCBwYWNrYWdlIGV2ZW4gd2hlbiBjcm9zcy1jb21waWxpbmcuIEZv
ciBleGFtcGxlIHlvdSBjYW4gYmUgc2VhcmNoaW5nIGZvciB5b3VyIGRvY3VtZW50YXRpb24gZ2Vu
ZXJhdG9yLiBUaGUgX2FuZHJvaWQtY21ha2VfIHJlY29tbWVuZHMgeW91IHRvIHVzZSBgZmluZF9o
b3N0X3BhY2thZ2VgIGFuZCBgZmluZF9ob3N0X3Byb2dyYW1gIG1hY3JvIGRlZmluZWQgaW4gdGhl
IGBhbmRyb2lkLnRvb2xjaGFpbi5jbWFrZWA6Ci0KLSAgICBmaW5kX2hvc3RfcGFja2FnZShEb3h5
Z2VuKQotICAgIGZpbmRfaG9zdF9wcm9ncmFtKFBERkxBVEVYIHBkZmxhdGV4KQotCi1Ib3dldmVy
IHRoaXMgd2lsbCBicmVhayByZWd1bGFyIGJ1aWxkcyBzbyBpbnN0ZWFkIG9mIHdyYXBwaW5nIHBh
Y2thZ2Ugc2VhcmNoIGludG8gcGxhdGZvcm0tc3BlY2lmaWMgbG9naWMgeW91IGNhbiBjb3B5IHRo
ZSBmb2xsb3dpbmcgc25pcHBldCBpbnRvIHlvdXIgcHJvamVjdCAocHV0IGl0IGFmdGVyIHlvdXIg
dG9wLWxldmVsIGBwcm9qZWN0KClgIGNvbW1hbmQpOgotCi0gICAgIyBTZWFyY2ggcGFja2FnZXMg
Zm9yIGhvc3Qgc3lzdGVtIGluc3RlYWQgb2YgcGFja2FnZXMgZm9yIHRhcmdldCBzeXN0ZW0KLSAg
ICAjIGluIGNhc2Ugb2YgY3Jvc3MgY29tcGlsYXRpb24gdGhlc2UgbWFjcm8gc2hvdWxkIGJlIGRl
ZmluZWQgYnkgdG9vbGNoYWluIGZpbGUKLSAgICBpZihOT1QgQ09NTUFORCBmaW5kX2hvc3RfcGFj
a2FnZSkKLSAgICAgIG1hY3JvKGZpbmRfaG9zdF9wYWNrYWdlKQotICAgICAgICBmaW5kX3BhY2th
Z2UoJHtBUkdOfSkKLSAgICAgIGVuZG1hY3JvKCkKLSAgICBlbmRpZigpCi0gICAgaWYoTk9UIENP
TU1BTkQgZmluZF9ob3N0X3Byb2dyYW0pCi0gICAgICBtYWNybyhmaW5kX2hvc3RfcHJvZ3JhbSkK
LSAgICAgICAgZmluZF9wcm9ncmFtKCR7QVJHTn0pCi0gICAgICBlbmRtYWNybygpCi0gICAgZW5k
aWYoKQotCi0jIyMgQ29tcGlsZXIgZmxhZ3MgcmVjeWNsaW5nCi0KLU1ha2Ugc3VyZSB0byBkbyB0
aGUgZm9sbG93aW5nIGluIHlvdXIgc2NyaXB0czoKLQotICAgIHNldChDTUFLRV9DX0ZMQUdTICIk
e0NNQUtFX0NfRkxBR1N9ICR7bXlfY3h4X2ZsYWdzfSIpCi0gICAgc2V0KENNQUtFX0NYWF9GTEFH
UyAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7bXlfY3h4X2ZsYWdzfSIpCi0KLVRoZSBmbGFncyB3aWxs
IGJlIHByZXBvcHVsYXRlZCB3aXRoIGNyaXRpY2FsIGZsYWdzLCBzbyBkb24ndCBsb29zZSB0aGVt
LiBBbHNvIGJlIGF3YXJlIHRoYXQgX2FuZHJvaWQtY21ha2VfIGFsc28gc2V0cyBjb25maWd1cmF0
aW9uLXNwZWNpZmljIGNvbXBpbGVyIGFuZCBsaW5rZXIgZmxhZ3MuCi0KLSMjIFRyb3VibGVzaG9v
dGluZwotCi0jIyMgQnVpbGRpbmcgb24gV2luZG93cwotCi1GaXJzdCBvZiBhbGwgYGN5Z3dpbmAg
YnVpbGRzIGFyZSAqKk5PVCBzdXBwb3J0ZWQqKiBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGJ5
IF9hbmRyb2lkLWNtYWtlXy4gVG8gYnVpbGQgbmF0aXZlbHkgb24gV2luZG93cyB5b3UgbmVlZCBh
IHBvcnQgb2YgbWFrZSBidXQgSSByZWNvbW1lbmQgaHR0cDovL21hcnRpbmUuZ2l0aHViLmlvL25p
bmphLyBpbnN0ZWFkLgotCi1UbyBidWlsZCB3aXRoIE5pbmphIHlvdSBuZWVkOgotCi0qIEVuc3Vy
ZSB5b3UgYXJlIHVzaW5nIENNYWtlIG5ld2VyIHRoYW4gMi44Ljk7Ci0qIERvd25sb2FkIHRoZSBs
YXRlc3QgTmluamEgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbWFydGluZS9uaW5qYS9yZWxlYXNl
czsKLSogUHV0IHRoZSBgbmluamEuZXhlYCBpbnRvIHlvdXIgUEFUSCAob3IgYWRkIHBhdGggdG8g
YG5pbmphLmV4ZWAgdG8geW91ciBQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlKTsKLSogUGFzcyBg
LUdOaW5qYWAgdG8gYGNtYWtlYCBhbG9uZ3NpZGUgd2l0aCBvdGhlciBhcmd1bWVudHMgKG9yIGNo
b29zZSBOaW5qYSBnZW5lcmF0b3IgaW4gYGNtYWtlLWd1aWApLgotKiBFbmpveSB0aGUgZmFzdCBu
YXRpdmUgbXVsdGl0aHJlYWRlZCBidWlsZCA6KQotCi1CdXQgaWYgeW91IHN0aWxsIHdhbnQgdG8g
c3RpY2sgdG8gb2xkIG1ha2UgdGhlbjoKLQotKiBHZXQgYSBXaW5kb3dzIHBvcnQgb2YgR05VIE1h
a2U6Ci0gICAgKiBBbmRyb2lkIE5ESyByNyAoYW5kIG5ld2VyKSBhbHJlYWR5IGhhcyBgbWFrZS5l
eGVgIG9uIGJvYXJkOwotICAgICogYG1pbmd3LW1ha2VgIHNob3VsZCB3b3JrIGFzIGZpbmU7Ci0g
ICAgKiBEb3dubG9hZCBzb21lIG90aGVyIHBvcnQuIEZvciBleGFtcGxlLCB0aGlzIG9uZTogaHR0
cDovL2dudXdpbjMyLnNvdXJjZWZvcmdlLm5ldC9wYWNrYWdlcy9tYWtlLmh0bS4KLSogQWRkIHBh
dGggdG8geW91ciBgbWFrZS5leGVgIHRvIHN5c3RlbSBQQVRIIG9yIGFsd2F5cyB1c2UgZnVsbCBw
YXRoOwotKiBQYXNzIGAtRyJNaW5HVyBNYWtlZmlsZXMiYCBhbmQgYC1EQ01BS0VfTUFLRV9QUk9H
UkFNPSI8ZnVsbC9wYXRoL3RvLz5tYWtlLmV4ZSJgCi0gICAgKiBJdCBtdXN0IGJlIGBNaW5HVyBN
YWtlZmlsZXNgIGFuZCBub3QgYFVuaXggTWFrZWZpbGVzYCBldmVuIGlmIHlvdXIgYG1ha2UuZXhl
YCBpcyBub3QgYSBNaW5HVydzIG1ha2UuCi0qIFJ1biBgbWFrZS5leGVgIG9yIGBjbWFrZSAtLWJ1
aWxkIC5gIGZvciBzaW5nbGUtdGhyZWFkZWQgYnVpbGQuCi0KLSMjIyBQcm9qZWN0cyB3aXRoIGFz
c2VtYmxlciBmaWxlcwotCi1UaGUgX2FuZHJvaWQtY21ha2VfIHNob3VsZCBjb3JyZWN0bHkgaGFu
ZGxlIHByb2plY3RzIHdpdGggYXNzZW1ibGVyIHNvdXJjZXMgKGAqLnNgIG9yIGAqLlNgKS4gQnV0
IGlmIHlvdSBzdGlsbCBmYWNpbmcgcHJvYmxlbXMgd2l0aCBhc3NlbWJsZXIgdGhlbiB0cnkgdG8g
dXBncmFkZSB5b3VyIENNYWtlIHRvIHZlcnNpb24gbmV3ZXIgdGhhbiAyLjguNQotCi0jIyBDb3B5
aW5nCi0KLV9hbmRyb2lkLWNtYWtlXyBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2Yg
W0JTRCAzLUNsYXVzZSBMaWNlbnNlXShodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNE
LTMtQ2xhdXNlKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9hbmRyb2lkLWNtYWtlL2FuZHJvaWQudG9vbGNoYWluLmNtYWtlIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvYW5kcm9pZC50b29sY2hhaW4uY21ha2UKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmYTI2MTI2YTc5MjAwZDE0MmU4YWMxYWNlY2IxYzA5NTQ3
NmJlN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvYW5kcm9pZC50b29sY2hhaW4uY21ha2UKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNjkzICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIEV0
aGFuIFJ1YmxlZQotIyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNCwgQW5kcmV5IEthbWFldgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6
Ci0jCi0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0jICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIwotIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAot
IyAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbgotIyAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jICAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbSB0aGlzCi0jICAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi0jIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UKLSMgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRQotIyBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0j
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotIyBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgIEFuZHJvaWQgQ01ha2UgdG9vbGNo
YWluIGZpbGUsIGZvciB1c2Ugd2l0aCB0aGUgQW5kcm9pZCBOREsgcjUtcjEwZAotIyAgUmVxdWly
ZXMgY21ha2UgMi42LjMgb3IgbmV3ZXIgKDIuOC45IG9yIG5ld2VyIGlzIHJlY29tbWVuZGVkKS4K
LSMgIFNlZSBob21lIHBhZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS90YWthLW5vLW1lL2FuZHJvaWQt
Y21ha2UKLSMKLSMgIFVzYWdlIExpbnV4OgotIyAgICQgZXhwb3J0IEFORFJPSURfTkRLPS9hYnNv
bHV0ZS9wYXRoL3RvL3RoZS9hbmRyb2lkLW5kawotIyAgICQgbWtkaXIgYnVpbGQgJiYgY2QgYnVp
bGQKLSMgICAkIGNtYWtlIC1EQ01BS0VfVE9PTENIQUlOX0ZJTEU9cGF0aC90by90aGUvYW5kcm9p
ZC50b29sY2hhaW4uY21ha2UgLi4KLSMgICAkIG1ha2UgLWo4Ci0jCi0jICBVc2FnZSBXaW5kb3dz
OgotIyAgICAgWW91IG5lZWQgbmF0aXZlIHBvcnQgb2YgbWFrZSB0byBidWlsZCB5b3VyIHByb2pl
Y3QuCi0jICAgICBBbmRyb2lkIE5ESyByNyAoYW5kIG5ld2VyKSBhbHJlYWR5IGhhcyBtYWtlLmV4
ZSBvbiBib2FyZC4KLSMgICAgIEZvciBvbGRlciBOREsgeW91IGhhdmUgdG8gaW5zdGFsbCBpdCBz
ZXBhcmF0ZWx5LgotIyAgICAgRm9yIGV4YW1wbGUsIHRoaXMgb25lOiBodHRwOi8vZ251d2luMzIu
c291cmNlZm9yZ2UubmV0L3BhY2thZ2VzL21ha2UuaHRtCi0jCi0jICAgJCBTRVQgQU5EUk9JRF9O
REs9QzpcYWJzb2x1dGVccGF0aFx0b1x0aGVcYW5kcm9pZC1uZGsKLSMgICAkIG1rZGlyIGJ1aWxk
ICYmIGNkIGJ1aWxkCi0jICAgJCBjbWFrZS5leGUgLUciTWluR1cgTWFrZWZpbGVzIgotIyAgICAg
ICAtRENNQUtFX1RPT0xDSEFJTl9GSUxFPXBhdGhcdG9cdGhlXGFuZHJvaWQudG9vbGNoYWluLmNt
YWtlCi0jICAgICAgIC1EQ01BS0VfTUFLRV9QUk9HUkFNPSIlQU5EUk9JRF9OREslXHByZWJ1aWx0
XHdpbmRvd3NcYmluXG1ha2UuZXhlIiAuLgotIyAgICQgY21ha2UuZXhlIC0tYnVpbGQgLgotIwot
IwotIyAgT3B0aW9ucyAoY2FuIGJlIHNldCBhcyBjbWFrZSBwYXJhbWV0ZXJzOiAtRDxvcHRpb25f
bmFtZT49PHZhbHVlPik6Ci0jICAgIEFORFJPSURfTkRLPS9vcHQvYW5kcm9pZC1uZGsgLSBwYXRo
IHRvIHRoZSBOREsgcm9vdC4KLSMgICAgICBDYW4gYmUgc2V0IGFzIGVudmlyb25tZW50IHZhcmlh
YmxlLiBDYW4gYmUgc2V0IG9ubHkgYXQgZmlyc3QgY21ha2UgcnVuLgotIwotIyAgICBBTkRST0lE
X0FCST1hcm1lYWJpLXY3YSAtIHNwZWNpZmllcyB0aGUgdGFyZ2V0IEFwcGxpY2F0aW9uIEJpbmFy
eQotIyAgICAgIEludGVyZmFjZSAoQUJJKS4gVGhpcyBvcHRpb24gbmVhcmx5IG1hdGNoZXMgdG8g
dGhlIEFQUF9BQkkgdmFyaWFibGUKLSMgICAgICB1c2VkIGJ5IG5kay1idWlsZCB0b29sIGZyb20g
QW5kcm9pZCBOREsuCi0jCi0jICAgICAgUG9zc2libGUgdGFyZ2V0cyBhcmU6Ci0jICAgICAgICAi
YXJtZWFiaSIgLSBBUk12NVRFIGJhc2VkIENQVSB3aXRoIHNvZnR3YXJlIGZsb2F0aW5nIHBvaW50
IG9wZXJhdGlvbnMKLSMgICAgICAgICJhcm1lYWJpLXY3YSIgLSBBUk12NyBiYXNlZCBkZXZpY2Vz
IHdpdGggaGFyZHdhcmUgRlBVIGluc3RydWN0aW9ucwotIyAgICAgICAgICAgIHRoaXMgQUJJIHRh
cmdldCBpcyB1c2VkIGJ5IGRlZmF1bHQKLSMgICAgICAgICJhcm1lYWJpLXY3YSB3aXRoIE5FT04i
IC0gc2FtZSBhcyBhcm1lYWJpLXY3YSwgYnV0Ci0jICAgICAgICAgICAgc2V0cyBORU9OIGFzIGZs
b2F0aW5nLXBvaW50IHVuaXQKLSMgICAgICAgICJhcm1lYWJpLXY3YSB3aXRoIFZGUFYzIiAtIHNh
bWUgYXMgYXJtZWFiaS12N2EsIGJ1dAotIyAgICAgICAgICAgIHNldHMgVkZQVjMgYXMgZmxvYXRp
bmctcG9pbnQgdW5pdCAoaGFzIDMyIHJlZ2lzdGVycyBpbnN0ZWFkIG9mIDE2KQotIyAgICAgICAg
ImFybWVhYmktdjYgd2l0aCBWRlAiIC0gdHVuZWQgZm9yIEFSTXY2IHByb2Nlc3NvcnMgaGF2aW5n
IFZGUAotIyAgICAgICAgIng4NiIgLSBJQS0zMiBpbnN0cnVjdGlvbiBzZXQKLSMgICAgICAgICJt
aXBzIiAtIE1JUFMzMiBpbnN0cnVjdGlvbiBzZXQKLSMKLSMgICAgICA2NC1iaXQgQUJJcyBmb3Ig
TkRLIHIxMCBhbmQgbmV3ZXI6Ci0jICAgICAgICAiYXJtNjQtdjhhIiAtIEFSTXY4IEFBcmNoNjQg
aW5zdHJ1Y3Rpb24gc2V0Ci0jICAgICAgICAieDg2XzY0IiAtIEludGVsNjQgaW5zdHJ1Y3Rpb24g
c2V0IChyMSkKLSMgICAgICAgICJtaXBzNjQiIC0gTUlQUzY0IGluc3RydWN0aW9uIHNldCAocjYp
Ci0jCi0jICAgIEFORFJPSURfTkFUSVZFX0FQSV9MRVZFTD1hbmRyb2lkLTggLSBsZXZlbCBvZiBB
bmRyb2lkIEFQSSBjb21waWxlIGZvci4KLSMgICAgICBPcHRpb24gaXMgcmVhZC1vbmx5IHdoZW4g
c3RhbmRhbG9uZSB0b29sY2hhaW4gaXMgdXNlZC4KLSMgICAgICBOb3RlOiBidWlsZGluZyBmb3Ig
ImFuZHJvaWQtTCIgcmVxdWlyZXMgZXhwbGljaXQgY29uZmlndXJhdGlvbi4KLSMKLSMgICAgQU5E
Uk9JRF9UT09MQ0hBSU5fTkFNRT1hcm0tbGludXgtYW5kcm9pZGVhYmktNC45IC0gdGhlIG5hbWUg
b2YgY29tcGlsZXIKLSMgICAgICB0b29sY2hhaW4gdG8gYmUgdXNlZC4gVGhlIGxpc3Qgb2YgcG9z
c2libGUgdmFsdWVzIGRlcGVuZHMgb24gdGhlIE5ESwotIyAgICAgIHZlcnNpb24uIEZvciBOREsg
cjEwYyB0aGUgcG9zc2libGUgdmFsdWVzIGFyZToKLSMKLSMgICAgICAgICogYWFyY2g2NC1saW51
eC1hbmRyb2lkLTQuOQotIyAgICAgICAgKiBhYXJjaDY0LWxpbnV4LWFuZHJvaWQtY2xhbmczLjQK
LSMgICAgICAgICogYWFyY2g2NC1saW51eC1hbmRyb2lkLWNsYW5nMy41Ci0jICAgICAgICAqIGFy
bS1saW51eC1hbmRyb2lkZWFiaS00LjYKLSMgICAgICAgICogYXJtLWxpbnV4LWFuZHJvaWRlYWJp
LTQuOAotIyAgICAgICAgKiBhcm0tbGludXgtYW5kcm9pZGVhYmktNC45IChkZWZhdWx0KQotIyAg
ICAgICAgKiBhcm0tbGludXgtYW5kcm9pZGVhYmktY2xhbmczLjQKLSMgICAgICAgICogYXJtLWxp
bnV4LWFuZHJvaWRlYWJpLWNsYW5nMy41Ci0jICAgICAgICAqIG1pcHM2NGVsLWxpbnV4LWFuZHJv
aWQtNC45Ci0jICAgICAgICAqIG1pcHM2NGVsLWxpbnV4LWFuZHJvaWQtY2xhbmczLjQKLSMgICAg
ICAgICogbWlwczY0ZWwtbGludXgtYW5kcm9pZC1jbGFuZzMuNQotIyAgICAgICAgKiBtaXBzZWwt
bGludXgtYW5kcm9pZC00LjYKLSMgICAgICAgICogbWlwc2VsLWxpbnV4LWFuZHJvaWQtNC44Ci0j
ICAgICAgICAqIG1pcHNlbC1saW51eC1hbmRyb2lkLTQuOQotIyAgICAgICAgKiBtaXBzZWwtbGlu
dXgtYW5kcm9pZC1jbGFuZzMuNAotIyAgICAgICAgKiBtaXBzZWwtbGludXgtYW5kcm9pZC1jbGFu
ZzMuNQotIyAgICAgICAgKiB4ODYtNC42Ci0jICAgICAgICAqIHg4Ni00LjgKLSMgICAgICAgICog
eDg2LTQuOQotIyAgICAgICAgKiB4ODYtY2xhbmczLjQKLSMgICAgICAgICogeDg2LWNsYW5nMy41
Ci0jICAgICAgICAqIHg4Nl82NC00LjkKLSMgICAgICAgICogeDg2XzY0LWNsYW5nMy40Ci0jICAg
ICAgICAqIHg4Nl82NC1jbGFuZzMuNQotIwotIyAgICBBTkRST0lEX0ZPUkNFX0FSTV9CVUlMRD1P
RkYgLSBzZXQgT04gdG8gZ2VuZXJhdGUgMzItYml0IEFSTSBpbnN0cnVjdGlvbnMKLSMgICAgICBp
bnN0ZWFkIG9mIFRodW1iLiBJcyBub3QgYXZhaWxhYmxlIGZvciAiYXJtZWFiaS12NiB3aXRoIFZG
UCIKLSMgICAgICAoaXMgZm9yY2VkIHRvIGJlIE9OKSBBQkkuCi0jCi0jICAgIEFORFJPSURfTk9f
VU5ERUZJTkVEPU9OIC0gc2V0IE9OIHRvIHNob3cgYWxsIHVuZGVmaW5lZCBzeW1ib2xzIGFzIGxp
bmtlcgotIyAgICAgIGVycm9ycyBldmVuIGlmIHRoZXkgYXJlIG5vdCB1c2VkLgotIwotIyAgICBB
TkRST0lEX1NPX1VOREVGSU5FRD1PRkYgLSBzZXQgT04gdG8gYWxsb3cgdW5kZWZpbmVkIHN5bWJv
bHMgaW4gc2hhcmVkCi0jICAgICAgbGlicmFyaWVzLiBBdXRvbWF0aWNhbGx5IHR1cm5lZCBmb3Ig
TkRLIHI1eCBhbmQgcjZ4IGR1ZSB0byBHTEVTdjIKLSMgICAgICBwcm9ibGVtcy4KLSMKLSMgICAg
QU5EUk9JRF9TVEw9Z251c3RsX3N0YXRpYyAtIHNwZWNpZnkgdGhlIHJ1bnRpbWUgdG8gdXNlLgot
IwotIyAgICAgIFBvc3NpYmxlIHZhbHVlcyBhcmU6Ci0jICAgICAgICBub25lICAgICAgICAgICAt
PiBEbyBub3QgY29uZmlndXJlIHRoZSBydW50aW1lLgotIyAgICAgICAgc3lzdGVtICAgICAgICAg
LT4gVXNlIHRoZSBkZWZhdWx0IG1pbmltYWwgc3lzdGVtIEMrKyBydW50aW1lIGxpYnJhcnkuCi0j
ICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBsaWVzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlv
bnMuCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBJcyBub3QgYXZhaWxhYmxlIGZvciBzdGFu
ZGFsb25lIHRvb2xjaGFpbi4KLSMgICAgICAgIHN5c3RlbV9yZSAgICAgIC0+IFVzZSB0aGUgZGVm
YXVsdCBtaW5pbWFsIHN5c3RlbSBDKysgcnVudGltZSBsaWJyYXJ5LgotIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgSW1wbGllcyAtZnJ0dGkgLWZleGNlcHRpb25zLgotIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgSXMgbm90IGF2YWlsYWJsZSBmb3Igc3RhbmRhbG9uZSB0b29sY2hhaW4uCi0j
ICAgICAgICBnYWJpKytfc3RhdGljICAtPiBVc2UgdGhlIEdBYmkrKyBydW50aW1lIGFzIGEgc3Rh
dGljIGxpYnJhcnkuCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBsaWVzIC1mcnR0aSAt
Zm5vLWV4Y2VwdGlvbnMuCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBBdmFpbGFibGUgZm9y
IE5ESyByNyBhbmQgbmV3ZXIuCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBJcyBub3QgYXZh
aWxhYmxlIGZvciBzdGFuZGFsb25lIHRvb2xjaGFpbi4KLSMgICAgICAgIGdhYmkrK19zaGFyZWQg
IC0+IFVzZSB0aGUgR0FiaSsrIHJ1bnRpbWUgYXMgYSBzaGFyZWQgbGlicmFyeS4KLSMgICAgICAg
ICAgICAgICAgICAgICAgICAgIEltcGxpZXMgLWZydHRpIC1mbm8tZXhjZXB0aW9ucy4KLSMgICAg
ICAgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBmb3IgTkRLIHI3IGFuZCBuZXdlci4KLSMg
ICAgICAgICAgICAgICAgICAgICAgICAgIElzIG5vdCBhdmFpbGFibGUgZm9yIHN0YW5kYWxvbmUg
dG9vbGNoYWluLgotIyAgICAgICAgc3RscG9ydF9zdGF0aWMgLT4gVXNlIHRoZSBTVExwb3J0IHJ1
bnRpbWUgYXMgYSBzdGF0aWMgbGlicmFyeS4KLSMgICAgICAgICAgICAgICAgICAgICAgICAgIElt
cGxpZXMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyBmb3IgTkRLIGJlZm9yZSByNy4KLSMgICAg
ICAgICAgICAgICAgICAgICAgICAgIEltcGxpZXMgLWZydHRpIC1mbm8tZXhjZXB0aW9ucyBmb3Ig
TkRLIHI3IGFuZCBuZXdlci4KLSMgICAgICAgICAgICAgICAgICAgICAgICAgIElzIG5vdCBhdmFp
bGFibGUgZm9yIHN0YW5kYWxvbmUgdG9vbGNoYWluLgotIyAgICAgICAgc3RscG9ydF9zaGFyZWQg
LT4gVXNlIHRoZSBTVExwb3J0IHJ1bnRpbWUgYXMgYSBzaGFyZWQgbGlicmFyeS4KLSMgICAgICAg
ICAgICAgICAgICAgICAgICAgIEltcGxpZXMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyBmb3Ig
TkRLIGJlZm9yZSByNy4KLSMgICAgICAgICAgICAgICAgICAgICAgICAgIEltcGxpZXMgLWZydHRp
IC1mbm8tZXhjZXB0aW9ucyBmb3IgTkRLIHI3IGFuZCBuZXdlci4KLSMgICAgICAgICAgICAgICAg
ICAgICAgICAgIElzIG5vdCBhdmFpbGFibGUgZm9yIHN0YW5kYWxvbmUgdG9vbGNoYWluLgotIyAg
ICAgICAgZ251c3RsX3N0YXRpYyAgLT4gVXNlIHRoZSBHTlUgU1RMIGFzIGEgc3RhdGljIGxpYnJh
cnkuCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBsaWVzIC1mcnR0aSAtZmV4Y2VwdGlv
bnMuCi0jICAgICAgICBnbnVzdGxfc2hhcmVkICAtPiBVc2UgdGhlIEdOVSBTVEwgYXMgYSBzaGFy
ZWQgbGlicmFyeS4KLSMgICAgICAgICAgICAgICAgICAgICAgICAgIEltcGxpZXMgLWZydHRpIC1m
bm8tZXhjZXB0aW9ucy4KLSMgICAgICAgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBmb3Ig
TkRLIHI3YiBhbmQgbmV3ZXIuCi0jICAgICAgICAgICAgICAgICAgICAgICAgICBTaWxlbnRseSBk
ZWdyYWRlcyB0byBnbnVzdGxfc3RhdGljIGlmIG5vdCBhdmFpbGFibGUuCi0jCi0jICAgIEFORFJP
SURfU1RMX0ZPUkNFX0ZFQVRVUkVTPU9OIC0gdHVybiBydHRpIGFuZCBleGNlcHRpb25zIHN1cHBv
cnQgYmFzZWQgb24KLSMgICAgICBjaG9zZW4gcnVudGltZS4gSWYgZGlzYWJsZWQsIHRoZW4gdGhl
IHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmdzCi0jICAgICAgdGhlc2Ugb3B0aW9ucy4K
LSMKLSMgIFdoYXQ/OgotIyAgICBhbmRyb2lkLWNtYWtlIHRvb2xjaGFpbiBzZWFyY2hlcyBmb3Ig
TkRLL3Rvb2xjaGFpbiBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgotIyAgICAgIEFORFJPSURfTkRL
IC0gY21ha2UgcGFyYW1ldGVyCi0jICAgICAgQU5EUk9JRF9OREsgLSBlbnZpcm9ubWVudCB2YXJp
YWJsZQotIyAgICAgIEFORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU4gLSBjbWFrZSBwYXJhbWV0
ZXIKLSMgICAgICBBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOIC0gZW52aXJvbm1lbnQgdmFy
aWFibGUKLSMgICAgICBBTkRST0lEX05ESyAtIGRlZmF1bHQgbG9jYXRpb25zCi0jICAgICAgQU5E
Uk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTiAtIGRlZmF1bHQgbG9jYXRpb25zCi0jCi0jICAgIE1h
a2Ugc3VyZSB0byBkbyB0aGUgZm9sbG93aW5nIGluIHlvdXIgc2NyaXB0czoKLSMgICAgICBTRVQo
IENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7bXlfY3h4X2ZsYWdzfSIgKQot
IyAgICAgIFNFVCggQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAke215X2N4eF9mbGFn
c30iICkKLSMgICAgVGhlIGZsYWdzIHdpbGwgYmUgcHJlcG9wdWxhdGVkIHdpdGggY3JpdGljYWwg
ZmxhZ3MsIHNvIGRvbid0IGxvb3NlIHRoZW0uCi0jICAgIEFsc28gYmUgYXdhcmUgdGhhdCB0b29s
Y2hhaW4gYWxzbyBzZXRzIGNvbmZpZ3VyYXRpb24tc3BlY2lmaWMgY29tcGlsZXIKLSMgICAgZmxh
Z3MgYW5kIGxpbmtlciBmbGFncy4KLSMKLSMgICAgQU5EUk9JRCBhbmQgQlVJTERfQU5EUk9JRCB3
aWxsIGJlIHNldCB0byB0cnVlLCB5b3UgbWF5IHRlc3QgYW55IG9mIHRoZXNlCi0jICAgIHZhcmlh
YmxlcyB0byBtYWtlIG5lY2Vzc2FyeSBBbmRyb2lkLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gY2hh
bmdlcy4KLSMKLSMgICAgQWxzbyBBUk1FQUJJIG9yIEFSTUVBQklfVjdBIG9yIFg4NiBvciBNSVBT
IG9yIEFSTTY0X1Y4QSBvciBYODZfNjQgb3IgTUlQUzY0Ci0jICAgIHdpbGwgYmUgc2V0IHRydWUs
IG11dHVhbGx5IGV4Y2x1c2l2ZS4gTkVPTiBvcHRpb24gd2lsbCBiZSBzZXQgdHJ1ZQotIyAgICBp
ZiBWRlAgaXMgc2V0IHRvIE5FT04uCi0jCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1jbWFr
ZV9taW5pbXVtX3JlcXVpcmVkKCBWRVJTSU9OIDIuNi4zICkKLQotaWYoIERFRklORUQgQ01BS0Vf
Q1JPU1NDT01QSUxJTkcgKQotICMgc3Vic2VxdWVudCB0b29sY2hhaW4gbG9hZGluZyBpcyBub3Qg
cmVhbGx5IG5lZWRlZAotIHJldHVybigpCi1lbmRpZigpCi0KLWlmKCBDTUFLRV9UT09MQ0hBSU5f
RklMRSApCi0gIyB0b3VjaCB0b29sY2hhaW4gdmFyaWFibGUgdG8gc3VwcHJlc3MgInVudXNlZCB2
YXJpYWJsZSIgd2FybmluZwotZW5kaWYoKQotCi0jIGluaGVyaXQgc2V0dGluZ3MgaW4gcmVjdXJz
aXZlIGxvYWRzCi1nZXRfcHJvcGVydHkoIF9DTUFLRV9JTl9UUllfQ09NUElMRSBHTE9CQUwgUFJP
UEVSVFkgSU5fVFJZX0NPTVBJTEUgKQotaWYoIF9DTUFLRV9JTl9UUllfQ09NUElMRSApCi0gaW5j
bHVkZSggIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi9hbmRyb2lkLnRvb2xjaGFpbi5j
b25maWcuY21ha2UiIE9QVElPTkFMICkKLWVuZGlmKCkKLQotIyB0aGlzIG9uZSBpcyBpbXBvcnRh
bnQKLWlmKCBDTUFLRV9WRVJTSU9OIFZFUlNJT05fR1JFQVRFUiAiMy4wLjk5IiApCi0gc2V0KCBD
TUFLRV9TWVNURU1fTkFNRSBBbmRyb2lkICkKLWVsc2UoKQotIHNldCggQ01BS0VfU1lTVEVNX05B
TUUgTGludXggKQotZW5kaWYoKQotCi0jIHRoaXMgb25lIG5vdCBzbyBtdWNoCi1zZXQoIENNQUtF
X1NZU1RFTV9WRVJTSU9OIDEgKQotCi0jIHJwYXRoIG1ha2VzIGxvdyBzZW5zZSBmb3IgQW5kcm9p
ZAotc2V0KCBDTUFLRV9TSEFSRURfTElCUkFSWV9SVU5USU1FX0NfRkxBRyAiIiApCi1zZXQoIENN
QUtFX1NLSVBfUlBBVEggVFJVRSBDQUNIRSBCT09MICJJZiBzZXQsIHJ1bnRpbWUgcGF0aHMgYXJl
IG5vdCBhZGRlZCB3aGVuIHVzaW5nIHNoYXJlZCBsaWJyYXJpZXMuIiApCi0KLSMgTkRLIHNlYXJj
aCBwYXRocwotc2V0KCBBTkRST0lEX1NVUFBPUlRFRF9OREtfVkVSU0lPTlMgJHtBTkRST0lEX0VY
VFJBX05ES19WRVJTSU9OU30gLXIxMGQgLXIxMGMgLXIxMGIgLXIxMCAtcjlkIC1yOWMgLXI5YiAt
cjkgLXI4ZSAtcjhkIC1yOGMgLXI4YiAtcjggLXI3YyAtcjdiIC1yNyAtcjZiIC1yNiAtcjVjIC1y
NWIgLXI1ICIiICkKLWlmKCBOT1QgREVGSU5FRCBBTkRST0lEX05ES19TRUFSQ0hfUEFUSFMgKQot
IGlmKCBDTUFLRV9IT1NUX1dJTjMyICkKLSAgZmlsZSggVE9fQ01BS0VfUEFUSCAiJEVOVntQUk9H
UkFNRklMRVN9IiBBTkRST0lEX05ES19TRUFSQ0hfUEFUSFMgKQotICBzZXQoIEFORFJPSURfTkRL
X1NFQVJDSF9QQVRIUyAiJHtBTkRST0lEX05ES19TRUFSQ0hfUEFUSFN9IiAiJEVOVntTeXN0ZW1E
cml2ZX0vTlZQQUNLIiApCi0gZWxzZSgpCi0gIGZpbGUoIFRPX0NNQUtFX1BBVEggIiRFTlZ7SE9N
RX0iIEFORFJPSURfTkRLX1NFQVJDSF9QQVRIUyApCi0gIHNldCggQU5EUk9JRF9OREtfU0VBUkNI
X1BBVEhTIC9vcHQgIiR7QU5EUk9JRF9OREtfU0VBUkNIX1BBVEhTfS9OVlBBQ0siICkKLSBlbmRp
ZigpCi1lbmRpZigpCi1pZiggTk9UIERFRklORUQgQU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJ
Tl9TRUFSQ0hfUEFUSCApCi0gc2V0KCBBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOX1NFQVJD
SF9QQVRIIC9vcHQvYW5kcm9pZC10b29sY2hhaW4gKQotZW5kaWYoKQotCi0jIGtub3duIEFCSXMK
LXNldCggQU5EUk9JRF9TVVBQT1JURURfQUJJU19hcm0gImFybWVhYmktdjdhO2FybWVhYmk7YXJt
ZWFiaS12N2Egd2l0aCBORU9OO2FybWVhYmktdjdhIHdpdGggVkZQVjM7YXJtZWFiaS12NiB3aXRo
IFZGUCIgKQotc2V0KCBBTkRST0lEX1NVUFBPUlRFRF9BQklTX2FybTY0ICJhcm02NC12OGEiICkK
LXNldCggQU5EUk9JRF9TVVBQT1JURURfQUJJU194ODYgIng4NiIgKQotc2V0KCBBTkRST0lEX1NV
UFBPUlRFRF9BQklTX3g4Nl82NCAieDg2XzY0IiApCi1zZXQoIEFORFJPSURfU1VQUE9SVEVEX0FC
SVNfbWlwcyAibWlwcyIgKQotc2V0KCBBTkRST0lEX1NVUFBPUlRFRF9BQklTX21pcHM2NCAibWlw
czY0IiApCi0KLSMgQVBJIGxldmVsIGRlZmF1bHRzCi1zZXQoIEFORFJPSURfREVGQVVMVF9OREtf
QVBJX0xFVkVMIDggKQotc2V0KCBBTkRST0lEX0RFRkFVTFRfTkRLX0FQSV9MRVZFTF9hcm02NCAy
MSApCi1zZXQoIEFORFJPSURfREVGQVVMVF9OREtfQVBJX0xFVkVMX3g4NiA5ICkKLXNldCggQU5E
Uk9JRF9ERUZBVUxUX05ES19BUElfTEVWRUxfeDg2XzY0IDIxICkKLXNldCggQU5EUk9JRF9ERUZB
VUxUX05ES19BUElfTEVWRUxfbWlwcyA5ICkKLXNldCggQU5EUk9JRF9ERUZBVUxUX05ES19BUElf
TEVWRUxfbWlwczY0IDIxICkKLQotCi1tYWNybyggX19MSVNUX0ZJTFRFUiBsaXN0dmFyIHJlZ2V4
ICkKLSAgaWYoICR7bGlzdHZhcn0gKQotICAgIGZvcmVhY2goIF9fdmFsICR7JHtsaXN0dmFyfX0g
KQotICAgICAgaWYoIF9fdmFsIE1BVENIRVMgIiR7cmVnZXh9IiApCi0gICAgICAgIGxpc3QoIFJF
TU9WRV9JVEVNICR7bGlzdHZhcn0gIiR7X192YWx9IiApCi0gICAgICBlbmRpZigpCi0gICAgZW5k
Zm9yZWFjaCgpCi0gIGVuZGlmKCkKLWVuZG1hY3JvKCkKLQotbWFjcm8oIF9fSU5JVF9WQVJJQUJM
RSB2YXJfbmFtZSApCi0gIHNldCggX190ZXN0X3BhdGggMCApCi0gIGZvcmVhY2goIF9fdmFyICR7
QVJHTn0gKQotICAgIGlmKCBfX3ZhciBTVFJFUVVBTCAiUEFUSCIgKQotICAgICAgc2V0KCBfX3Rl
c3RfcGF0aCAxICkKLSAgICAgIGJyZWFrKCkKLSAgICBlbmRpZigpCi0gIGVuZGZvcmVhY2goKQot
Ci0gIGlmKCBfX3Rlc3RfcGF0aCBBTkQgTk9UIEVYSVNUUyAiJHske3Zhcl9uYW1lfX0iICkKLSAg
ICB1bnNldCggJHt2YXJfbmFtZX0gQ0FDSEUgKQotICBlbmRpZigpCi0KLSAgaWYoICIgJHske3Zh
cl9uYW1lfX0iIFNUUkVRVUFMICIgIiApCi0gICAgc2V0KCBfX3ZhbHVlcyAwICkKLSAgICBmb3Jl
YWNoKCBfX3ZhciAke0FSR059ICkKLSAgICAgIGlmKCBfX3ZhciBTVFJFUVVBTCAiVkFMVUVTIiAp
Ci0gICAgICAgIHNldCggX192YWx1ZXMgMSApCi0gICAgICBlbHNlaWYoIE5PVCBfX3ZhciBTVFJF
UVVBTCAiUEFUSCIgKQotICAgICAgICBpZiggX192YXIgTUFUQ0hFUyAiXkVOVl8uKiQiICkKLSAg
ICAgICAgICBzdHJpbmcoIFJFUExBQ0UgIkVOVl8iICIiIF9fdmFyICIke19fdmFyfSIgKQotICAg
ICAgICAgIHNldCggX192YWx1ZSAiJEVOVnske19fdmFyfX0iICkKLSAgICAgICAgZWxzZWlmKCBE
RUZJTkVEICR7X192YXJ9ICkKLSAgICAgICAgICBzZXQoIF9fdmFsdWUgIiR7JHtfX3Zhcn19IiAp
Ci0gICAgICAgIGVsc2VpZiggX192YWx1ZXMgKQotICAgICAgICAgIHNldCggX192YWx1ZSAiJHtf
X3Zhcn0iICkKLSAgICAgICAgZWxzZSgpCi0gICAgICAgICAgc2V0KCBfX3ZhbHVlICIiICkKLSAg
ICAgICAgZW5kaWYoKQotCi0gICAgICAgIGlmKCBOT1QgIiAke19fdmFsdWV9IiBTVFJFUVVBTCAi
ICIgQU5EIChOT1QgX190ZXN0X3BhdGggT1IgRVhJU1RTICIke19fdmFsdWV9IikgKQotICAgICAg
ICAgIHNldCggJHt2YXJfbmFtZX0gIiR7X192YWx1ZX0iICkKLSAgICAgICAgICBicmVhaygpCi0g
ICAgICAgIGVuZGlmKCkKLSAgICAgIGVuZGlmKCkKLSAgICBlbmRmb3JlYWNoKCkKLSAgICB1bnNl
dCggX192YWx1ZSApCi0gICAgdW5zZXQoIF9fdmFsdWVzICkKLSAgZW5kaWYoKQotCi0gIGlmKCBf
X3Rlc3RfcGF0aCApCi0gICAgZmlsZSggVE9fQ01BS0VfUEFUSCAiJHske3Zhcl9uYW1lfX0iICR7
dmFyX25hbWV9ICkKLSAgZW5kaWYoKQotICB1bnNldCggX190ZXN0X3BhdGggKQotZW5kbWFjcm8o
KQotCi1tYWNybyggX19ERVRFQ1RfTkFUSVZFX0FQSV9MRVZFTCBfdmFyIF9wYXRoICkKLSAgc2V0
KCBfX25ka0FwaUxldmVsUmVnZXggIl5bXHQgXSojZGVmaW5lW1x0IF0rX19BTkRST0lEX0FQSV9f
W1x0IF0rKFswLTldKylbXHQgXSouKiQiICkKLSAgZmlsZSggU1RSSU5HUyAke19wYXRofSBfX2Fw
aUZpbGVDb250ZW50IFJFR0VYICIke19fbmRrQXBpTGV2ZWxSZWdleH0iICkKLSAgaWYoIE5PVCBf
X2FwaUZpbGVDb250ZW50ICkKLSAgICBtZXNzYWdlKCBTRU5EX0VSUk9SICJDb3VsZCBub3QgZ2V0
IEFuZHJvaWQgbmF0aXZlIEFQSSBsZXZlbC4gUHJvYmFibHkgeW91IGhhdmUgc3BlY2lmaWVkIGlu
dmFsaWQgbGV2ZWwgdmFsdWUsIG9yIHlvdXIgY29weSBvZiBOREsvdG9vbGNoYWluIGlzIGJyb2tl
bi4iICkKLSAgZW5kaWYoKQotICBzdHJpbmcoIFJFR0VYIFJFUExBQ0UgIiR7X19uZGtBcGlMZXZl
bFJlZ2V4fSIgIlxcMSIgJHtfdmFyfSAiJHtfX2FwaUZpbGVDb250ZW50fSIgKQotICB1bnNldCgg
X19hcGlGaWxlQ29udGVudCApCi0gIHVuc2V0KCBfX25ka0FwaUxldmVsUmVnZXggKQotZW5kbWFj
cm8oKQotCi1tYWNybyggX19ERVRFQ1RfVE9PTENIQUlOX01BQ0hJTkVfTkFNRSBfdmFyIF9yb290
ICkKLSBpZiggRVhJU1RTICIke19yb290fSIgKQotICAgIGZpbGUoIEdMT0IgX19nY2NFeGVQYXRo
IFJFTEFUSVZFICIke19yb290fS9iaW4vIiAiJHtfcm9vdH0vYmluLyotZ2NjJHtUT09MX09TX1NV
RkZJWH0iICkKLSAgICBfX0xJU1RfRklMVEVSKCBfX2djY0V4ZVBhdGggIl5bLl0uKiIgKQotICAg
IGxpc3QoIExFTkdUSCBfX2djY0V4ZVBhdGggX19nY2NFeGVQYXRoc0NvdW50ICkKLSAgICBpZigg
Tk9UIF9fZ2NjRXhlUGF0aHNDb3VudCBFUVVBTCAxICBBTkQgTk9UIF9DTUFLRV9JTl9UUllfQ09N
UElMRSApCi0gICAgICBtZXNzYWdlKCBXQVJOSU5HICJDb3VsZCBub3QgZGV0ZXJtaW5lIG1hY2hp
bmUgbmFtZSBmb3IgY29tcGlsZXIgZnJvbSAke19yb290fSIgKQotICAgICAgc2V0KCAke192YXJ9
ICIiICkKLSAgICBlbHNlKCkKLSAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoIF9fZ2NjRXhl
TmFtZSAiJHtfX2djY0V4ZVBhdGh9IiBOQU1FX1dFICkKLSAgICAgIHN0cmluZyggUkVQTEFDRSAi
LWdjYyIgIiIgJHtfdmFyfSAiJHtfX2djY0V4ZU5hbWV9IiApCi0gICAgZW5kaWYoKQotICAgIHVu
c2V0KCBfX2djY0V4ZVBhdGggKQotICAgIHVuc2V0KCBfX2djY0V4ZVBhdGhzQ291bnQgKQotICAg
IHVuc2V0KCBfX2djY0V4ZU5hbWUgKQotICBlbHNlKCkKLSAgICBzZXQoICR7X3Zhcn0gIiIgKQot
ICBlbmRpZigpCi1lbmRtYWNybygpCi0KLQotIyBmaWdodCBhZ2FpbnN0IGN5Z3dpbgotc2V0KCBB
TkRST0lEX0ZPUkJJRF9TWUdXSU4gVFJVRSBDQUNIRSBCT09MICJQcmV2ZW50IGNtYWtlIGZyb20g
d29ya2luZyB1bmRlciBjeWd3aW4gYW5kIHVzaW5nIGN5Z3dpbiB0b29scyIpCi1tYXJrX2FzX2Fk
dmFuY2VkKCBBTkRST0lEX0ZPUkJJRF9TWUdXSU4gKQotaWYoIEFORFJPSURfRk9SQklEX1NZR1dJ
TiApCi0gaWYoIENZR1dJTiApCi0gIG1lc3NhZ2UoIEZBVEFMX0VSUk9SICJBbmRyb2lkIE5ESyBh
bmQgYW5kcm9pZC1jbWFrZSB0b29sY2hhaW4gYXJlIG5vdCB3ZWxjb21lIEN5Z3dpbi4gSXQgaXMg
dW5saWtlbHkgdGhhdCB0aGlzIGNtYWtlIHRvb2xjaGFpbiB3aWxsIHdvcmsgdW5kZXIgY3lnd2lu
LiBCdXQgaWYgeW91IHdhbnQgdG8gdHJ5IHRoZW4geW91IGNhbiBzZXQgY21ha2UgdmFyaWFibGUg
QU5EUk9JRF9GT1JCSURfU1lHV0lOIHRvIEZBTFNFIGFuZCByZXJ1biBjbWFrZS4iICkKLSBlbmRp
ZigpCi0KLSBpZiggQ01BS0VfSE9TVF9XSU4zMiApCi0gICMgcmVtb3ZlIGN5Z3dpbiBmcm9tIFBB
VEgKLSAgc2V0KCBfX25ld19wYXRoICIkRU5We1BBVEh9IikKLSAgX19MSVNUX0ZJTFRFUiggX19u
ZXdfcGF0aCAiY3lnd2luIiApCi0gIHNldChFTlZ7UEFUSH0gIiR7X19uZXdfcGF0aH0iKQotICB1
bnNldChfX25ld19wYXRoKQotIGVuZGlmKCkKLWVuZGlmKCkKLQotCi0jIGRldGVjdCBjdXJyZW50
IGhvc3QgcGxhdGZvcm0KLWlmKCBOT1QgREVGSU5FRCBBTkRST0lEX05ES19IT1NUX1g2NCBBTkQg
KENNQUtFX0hPU1RfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICJhbWQ2NHx4ODZfNjR8QU1ENjQi
IE9SIENNQUtFX0hPU1RfQVBQTEUpICkKLSBzZXQoIEFORFJPSURfTkRLX0hPU1RfWDY0IDEgQ0FD
SEUgQk9PTCAiVHJ5IHRvIHVzZSA2NC1iaXQgY29tcGlsZXIgdG9vbGNoYWluIiApCi0gbWFya19h
c19hZHZhbmNlZCggQU5EUk9JRF9OREtfSE9TVF9YNjQgKQotZW5kaWYoKQotCi1zZXQoIFRPT0xf
T1NfU1VGRklYICIiICkKLWlmKCBDTUFLRV9IT1NUX0FQUExFICkKLSBzZXQoIEFORFJPSURfTkRL
X0hPU1RfU1lTVEVNX05BTUUgImRhcndpbi14ODZfNjQiICkKLSBzZXQoIEFORFJPSURfTkRLX0hP
U1RfU1lTVEVNX05BTUUyICJkYXJ3aW4teDg2IiApCi1lbHNlaWYoIENNQUtFX0hPU1RfV0lOMzIg
KQotIHNldCggQU5EUk9JRF9OREtfSE9TVF9TWVNURU1fTkFNRSAid2luZG93cy14ODZfNjQiICkK
LSBzZXQoIEFORFJPSURfTkRLX0hPU1RfU1lTVEVNX05BTUUyICJ3aW5kb3dzIiApCi0gc2V0KCBU
T09MX09TX1NVRkZJWCAiLmV4ZSIgKQotZWxzZWlmKCBDTUFLRV9IT1NUX1VOSVggKQotIHNldCgg
QU5EUk9JRF9OREtfSE9TVF9TWVNURU1fTkFNRSAibGludXgteDg2XzY0IiApCi0gc2V0KCBBTkRS
T0lEX05ES19IT1NUX1NZU1RFTV9OQU1FMiAibGludXgteDg2IiApCi1lbHNlKCkKLSBtZXNzYWdl
KCBGQVRBTF9FUlJPUiAiQ3Jvc3MtY29tcGlsYXRpb24gb24geW91ciBwbGF0Zm9ybSBpcyBub3Qg
c3VwcG9ydGVkIGJ5IHRoaXMgY21ha2UgdG9vbGNoYWluIiApCi1lbmRpZigpCi0KLWlmKCBOT1Qg
QU5EUk9JRF9OREtfSE9TVF9YNjQgKQotIHNldCggQU5EUk9JRF9OREtfSE9TVF9TWVNURU1fTkFN
RSAke0FORFJPSURfTkRLX0hPU1RfU1lTVEVNX05BTUUyfSApCi1lbmRpZigpCi0KLSMgc2VlIGlm
IHdlIGhhdmUgcGF0aCB0byBBbmRyb2lkIE5ESwotaWYoIE5PVCBBTkRST0lEX05ESyBBTkQgTk9U
IEFORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU4gKQotICBfX0lOSVRfVkFSSUFCTEUoIEFORFJP
SURfTkRLIFBBVEggRU5WX0FORFJPSURfTkRLICkKLWVuZGlmKCkKLWlmKCBOT1QgQU5EUk9JRF9O
REsgKQotICMgc2VlIGlmIHdlIGhhdmUgcGF0aCB0byBBbmRyb2lkIHN0YW5kYWxvbmUgdG9vbGNo
YWluCi0gX19JTklUX1ZBUklBQkxFKCBBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOIFBBVEgg
RU5WX0FORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU4gKQotCi0gaWYoIE5PVCBBTkRST0lEX1NU
QU5EQUxPTkVfVE9PTENIQUlOICkKLSAgI3RyeSB0byBmaW5kIEFuZHJvaWQgTkRLIGluIG9uZSBv
ZiB0aGUgdGhlIGRlZmF1bHQgbG9jYXRpb25zCi0gIHNldCggX19uZGtTZWFyY2hQYXRocyApCi0g
IGZvcmVhY2goIF9fbmRrU2VhcmNoUGF0aCAke0FORFJPSURfTkRLX1NFQVJDSF9QQVRIU30gKQot
ICAgZm9yZWFjaCggc3VmZml4ICR7QU5EUk9JRF9TVVBQT1JURURfTkRLX1ZFUlNJT05TfSApCi0g
ICAgbGlzdCggQVBQRU5EIF9fbmRrU2VhcmNoUGF0aHMgIiR7X19uZGtTZWFyY2hQYXRofS9hbmRy
b2lkLW5kayR7c3VmZml4fSIgKQotICAgZW5kZm9yZWFjaCgpCi0gIGVuZGZvcmVhY2goKQotICBf
X0lOSVRfVkFSSUFCTEUoIEFORFJPSURfTkRLIFBBVEggVkFMVUVTICR7X19uZGtTZWFyY2hQYXRo
c30gKQotICB1bnNldCggX19uZGtTZWFyY2hQYXRocyApCi0KLSAgaWYoIEFORFJPSURfTkRLICkK
LSAgIG1lc3NhZ2UoIFNUQVRVUyAiVXNpbmcgZGVmYXVsdCBwYXRoIGZvciBBbmRyb2lkIE5ESzog
JHtBTkRST0lEX05ES30iICkKLSAgIG1lc3NhZ2UoIFNUQVRVUyAiICBJZiB5b3UgcHJlZmVyIHRv
IHVzZSBhIGRpZmZlcmVudCBsb2NhdGlvbiwgcGxlYXNlIGRlZmluZSBhIGNtYWtlIG9yIGVudmly
b25tZW50IHZhcmlhYmxlOiBBTkRST0lEX05ESyIgKQotICBlbHNlKCkKLSAgICN0cnkgdG8gZmlu
ZCBBbmRyb2lkIHN0YW5kYWxvbmUgdG9vbGNoYWluIGluIG9uZSBvZiB0aGUgdGhlIGRlZmF1bHQg
bG9jYXRpb25zCi0gICBfX0lOSVRfVkFSSUFCTEUoIEFORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hB
SU4gUEFUSCBBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOX1NFQVJDSF9QQVRIICkKLQotICAg
aWYoIEFORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU4gKQotICAgIG1lc3NhZ2UoIFNUQVRVUyAi
VXNpbmcgZGVmYXVsdCBwYXRoIGZvciBzdGFuZGFsb25lIHRvb2xjaGFpbiAke0FORFJPSURfU1RB
TkRBTE9ORV9UT09MQ0hBSU59IiApCi0gICAgbWVzc2FnZSggU1RBVFVTICIgIElmIHlvdSBwcmVm
ZXIgdG8gdXNlIGEgZGlmZmVyZW50IGxvY2F0aW9uLCBwbGVhc2UgZGVmaW5lIHRoZSB2YXJpYWJs
ZTogQU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTiIgKQotICAgZW5kaWYoIEFORFJPSURfU1RB
TkRBTE9ORV9UT09MQ0hBSU4gKQotICBlbmRpZiggQU5EUk9JRF9OREsgKQotIGVuZGlmKCBOT1Qg
QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTiApCi1lbmRpZiggTk9UIEFORFJPSURfTkRLICkK
LQotIyByZW1lbWJlciBmb3VuZCBwYXRocwotaWYoIEFORFJPSURfTkRLICkKLSBnZXRfZmlsZW5h
bWVfY29tcG9uZW50KCBBTkRST0lEX05ESyAiJHtBTkRST0lEX05ES30iIEFCU09MVVRFICkKLSBz
ZXQoIEFORFJPSURfTkRLICIke0FORFJPSURfTkRLfSIgQ0FDSEUgSU5URVJOQUwgIlBhdGggb2Yg
dGhlIEFuZHJvaWQgTkRLIiBGT1JDRSApCi0gc2V0KCBCVUlMRF9XSVRIX0FORFJPSURfTkRLIFRy
dWUgKQotIGlmKCBFWElTVFMgIiR7QU5EUk9JRF9OREt9L1JFTEVBU0UuVFhUIiApCi0gIGZpbGUo
IFNUUklOR1MgIiR7QU5EUk9JRF9OREt9L1JFTEVBU0UuVFhUIiBBTkRST0lEX05ES19SRUxFQVNF
X0ZVTEwgTElNSVRfQ09VTlQgMSBSRUdFWCAiclswLTldK1thLXpdPyIgKQotICBzdHJpbmcoIFJF
R0VYIE1BVENIICJyKFswLTldKykoW2Etel0/KSIgQU5EUk9JRF9OREtfUkVMRUFTRSAiJHtBTkRS
T0lEX05ES19SRUxFQVNFX0ZVTEx9IiApCi0gZWxzZSgpCi0gIHNldCggQU5EUk9JRF9OREtfUkVM
RUFTRSAicjF4IiApCi0gIHNldCggQU5EUk9JRF9OREtfUkVMRUFTRV9GVUxMICJ1bnJlbGVhc2Vk
IiApCi0gZW5kaWYoKQotIHN0cmluZyggUkVHRVggUkVQTEFDRSAicihbMC05XSspKFthLXpdPyki
ICJcXDEqMTAwMCIgQU5EUk9JRF9OREtfUkVMRUFTRV9OVU0gIiR7QU5EUk9JRF9OREtfUkVMRUFT
RX0iICkKLSBzdHJpbmcoIEZJTkQgIiBhYmNkZWZnaGlqa2xtbm9wcWFzdHV2d3h5eiIgIiR7Q01B
S0VfTUFUQ0hfMn0iIF9fbmRrUmVsZWFzZUxldHRlck51bSApCi0gbWF0aCggRVhQUiBBTkRST0lE
X05ES19SRUxFQVNFX05VTSAiJHtBTkRST0lEX05ES19SRUxFQVNFX05VTX0rJHtfX25ka1JlbGVh
c2VMZXR0ZXJOdW19IiApCi1lbHNlaWYoIEFORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU4gKQot
IGdldF9maWxlbmFtZV9jb21wb25lbnQoIEFORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU4gIiR7
QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0iIEFCU09MVVRFICkKLSAjIHRyeSB0byBkZXRl
Y3QgY2hhbmdlCi0gaWYoIENNQUtFX0FSICkKLSAgc3RyaW5nKCBMRU5HVEggIiR7QU5EUk9JRF9T
VEFOREFMT05FX1RPT0xDSEFJTn0iIF9fbGVuZ3RoICkKLSAgc3RyaW5nKCBTVUJTVFJJTkcgIiR7
Q01BS0VfQVJ9IiAwICR7X19sZW5ndGh9IF9fYW5kcm9pZFN0YW5kYWxvbmVUb29sY2hhaW5QcmV2
aW91c1BhdGggKQotICBpZiggTk9UIF9fYW5kcm9pZFN0YW5kYWxvbmVUb29sY2hhaW5QcmV2aW91
c1BhdGggU1RSRVFVQUwgQU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTiApCi0gICBtZXNzYWdl
KCBGQVRBTF9FUlJPUiAiSXQgaXMgbm90IHBvc3NpYmxlIHRvIGNoYW5nZSBwYXRoIHRvIHRoZSBB
bmRyb2lkIHN0YW5kYWxvbmUgdG9vbGNoYWluIG9uIHN1YnNlcXVlbnQgcnVuLiIgKQotICBlbmRp
ZigpCi0gIHVuc2V0KCBfX2FuZHJvaWRTdGFuZGFsb25lVG9vbGNoYWluUHJldmlvdXNQYXRoICkK
LSAgdW5zZXQoIF9fbGVuZ3RoICkKLSBlbmRpZigpCi0gc2V0KCBBTkRST0lEX1NUQU5EQUxPTkVf
VE9PTENIQUlOICIke0FORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU59IiBDQUNIRSBJTlRFUk5B
TCAiUGF0aCBvZiB0aGUgQW5kcm9pZCBzdGFuZGFsb25lIHRvb2xjaGFpbiIgRk9SQ0UgKQotIHNl
dCggQlVJTERfV0lUSF9TVEFOREFMT05FX1RPT0xDSEFJTiBUcnVlICkKLWVsc2UoKQotIGxpc3Qo
R0VUIEFORFJPSURfTkRLX1NFQVJDSF9QQVRIUyAwIEFORFJPSURfTkRLX1NFQVJDSF9QQVRIKQot
IG1lc3NhZ2UoIEZBVEFMX0VSUk9SICJDb3VsZCBub3QgZmluZCBuZWl0aGVyIEFuZHJvaWQgTkRL
IG5vciBBbmRyb2lkIHN0YW5kYWxvbmUgdG9vbGNoYWluLgotICAgIFlvdSBzaG91bGQgZWl0aGVy
IHNldCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZToKLSAgICAgIGV4cG9ydCBBTkRST0lEX05ESz1+
L215LWFuZHJvaWQtbmRrCi0gICAgb3IKLSAgICAgIGV4cG9ydCBBTkRST0lEX1NUQU5EQUxPTkVf
VE9PTENIQUlOPX4vbXktYW5kcm9pZC10b29sY2hhaW4KLSAgICBvciBwdXQgdGhlIHRvb2xjaGFp
biBvciBOREsgaW4gdGhlIGRlZmF1bHQgcGF0aDoKLSAgICAgIHN1ZG8gbG4gLXMgfi9teS1hbmRy
b2lkLW5kayAke0FORFJPSURfTkRLX1NFQVJDSF9QQVRIfS9hbmRyb2lkLW5kawotICAgICAgc3Vk
byBsbiAtcyB+L215LWFuZHJvaWQtdG9vbGNoYWluICR7QU5EUk9JRF9TVEFOREFMT05FX1RPT0xD
SEFJTl9TRUFSQ0hfUEFUSH0iICkKLWVuZGlmKCkKLQotIyBhbmRyb2lkIE5ESyBsYXlvdXQKLWlm
KCBCVUlMRF9XSVRIX0FORFJPSURfTkRLICkKLSBpZiggTk9UIERFRklORUQgQU5EUk9JRF9OREtf
TEFZT1VUICkKLSAgIyB0cnkgdG8gYXV0b21hdGljYWxseSBkZXRlY3QgdGhlIGxheW91dAotICBp
ZiggRVhJU1RTICIke0FORFJPSURfTkRLfS9SRUxFQVNFLlRYVCIpCi0gICBzZXQoIEFORFJPSURf
TkRLX0xBWU9VVCAiUkVMRUFTRSIgKQotICBlbHNlaWYoIEVYSVNUUyAiJHtBTkRST0lEX05ES30v
Li4vLi4vbGludXgteDg2L3Rvb2xjaGFpbi8iICkKLSAgIHNldCggQU5EUk9JRF9OREtfTEFZT1VU
ICJMSU5BUk8iICkKLSAgZWxzZWlmKCBFWElTVFMgIiR7QU5EUk9JRF9OREt9Ly4uLy4uL2djYy8i
ICkKLSAgIHNldCggQU5EUk9JRF9OREtfTEFZT1VUICJBTkRST0lEIiApCi0gIGVuZGlmKCkKLSBl
bmRpZigpCi0gc2V0KCBBTkRST0lEX05ES19MQVlPVVQgIiR7QU5EUk9JRF9OREtfTEFZT1VUfSIg
Q0FDSEUgU1RSSU5HICJUaGUgaW5uZXIgbGF5b3V0IG9mIE5ESyIgKQotIG1hcmtfYXNfYWR2YW5j
ZWQoIEFORFJPSURfTkRLX0xBWU9VVCApCi0gaWYoIEFORFJPSURfTkRLX0xBWU9VVCBTVFJFUVVB
TCAiTElOQVJPIiApCi0gIHNldCggQU5EUk9JRF9OREtfSE9TVF9TWVNURU1fTkFNRSAke0FORFJP
SURfTkRLX0hPU1RfU1lTVEVNX05BTUUyfSApICMgb25seSAzMi1iaXQgYXQgdGhlIG1vbWVudAot
ICBzZXQoIEFORFJPSURfTkRLX1RPT0xDSEFJTlNfUEFUSCAiJHtBTkRST0lEX05ES30vLi4vLi4v
JHtBTkRST0lEX05ES19IT1NUX1NZU1RFTV9OQU1FfS90b29sY2hhaW4iICkKLSAgc2V0KCBBTkRS
T0lEX05ES19UT09MQ0hBSU5TX1NVQlBBVEggICIiICkKLSAgc2V0KCBBTkRST0lEX05ES19UT09M
Q0hBSU5TX1NVQlBBVEgyICIiICkKLSBlbHNlaWYoIEFORFJPSURfTkRLX0xBWU9VVCBTVFJFUVVB
TCAiQU5EUk9JRCIgKQotICBzZXQoIEFORFJPSURfTkRLX0hPU1RfU1lTVEVNX05BTUUgJHtBTkRS
T0lEX05ES19IT1NUX1NZU1RFTV9OQU1FMn0gKSAjIG9ubHkgMzItYml0IGF0IHRoZSBtb21lbnQK
LSAgc2V0KCBBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEggIiR7QU5EUk9JRF9OREt9Ly4uLy4u
L2djYy8ke0FORFJPSURfTkRLX0hPU1RfU1lTVEVNX05BTUV9L2FybSIgKQotICBzZXQoIEFORFJP
SURfTkRLX1RPT0xDSEFJTlNfU1VCUEFUSCAgIiIgKQotICBzZXQoIEFORFJPSURfTkRLX1RPT0xD
SEFJTlNfU1VCUEFUSDIgIiIgKQotIGVsc2UoKSAjIEFORFJPSURfTkRLX0xBWU9VVCBTVFJFUVVB
TCAiUkVMRUFTRSIKLSAgc2V0KCBBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEggIiR7QU5EUk9J
RF9OREt9L3Rvb2xjaGFpbnMiICkKLSAgc2V0KCBBTkRST0lEX05ES19UT09MQ0hBSU5TX1NVQlBB
VEggICIvcHJlYnVpbHQvJHtBTkRST0lEX05ES19IT1NUX1NZU1RFTV9OQU1FfSIgKQotICBzZXQo
IEFORFJPSURfTkRLX1RPT0xDSEFJTlNfU1VCUEFUSDIgIi9wcmVidWlsdC8ke0FORFJPSURfTkRL
X0hPU1RfU1lTVEVNX05BTUUyfSIgKQotIGVuZGlmKCkKLSBnZXRfZmlsZW5hbWVfY29tcG9uZW50
KCBBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEggIiR7QU5EUk9JRF9OREtfVE9PTENIQUlOU19Q
QVRIfSIgQUJTT0xVVEUgKQotCi0gIyB0cnkgdG8gZGV0ZWN0IGNoYW5nZSBvZiBOREsKLSBpZigg
Q01BS0VfQVIgKQotICBzdHJpbmcoIExFTkdUSCAiJHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1BB
VEh9IiBfX2xlbmd0aCApCi0gIHN0cmluZyggU1VCU1RSSU5HICIke0NNQUtFX0FSfSIgMCAke19f
bGVuZ3RofSBfX2FuZHJvaWROZGtQcmV2aW91c1BhdGggKQotICBpZiggTk9UIF9fYW5kcm9pZE5k
a1ByZXZpb3VzUGF0aCBTVFJFUVVBTCBBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEggKQotICAg
bWVzc2FnZSggRkFUQUxfRVJST1IgIkl0IGlzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIHBh
dGggdG8gdGhlIE5ESyBvbiBzdWJzZXF1ZW50IENNYWtlIHJ1bi4gWW91IG11c3QgcmVtb3ZlIGFs
bCBnZW5lcmF0ZWQgZmlsZXMgZnJvbSB5b3VyIGJ1aWxkIGZvbGRlciBmaXJzdC4KLSAgICIgKQot
ICBlbmRpZigpCi0gIHVuc2V0KCBfX2FuZHJvaWROZGtQcmV2aW91c1BhdGggKQotICB1bnNldCgg
X19sZW5ndGggKQotIGVuZGlmKCkKLWVuZGlmKCkKLQotCi0jIGdldCBhbGwgdGhlIGRldGFpbHMg
YWJvdXQgc3RhbmRhbG9uZSB0b29sY2hhaW4KLWlmKCBCVUlMRF9XSVRIX1NUQU5EQUxPTkVfVE9P
TENIQUlOICkKLSBfX0RFVEVDVF9OQVRJVkVfQVBJX0xFVkVMKCBBTkRST0lEX1NVUFBPUlRFRF9O
QVRJVkVfQVBJX0xFVkVMUyAiJHtBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOfS9zeXNyb290
L3Vzci9pbmNsdWRlL2FuZHJvaWQvYXBpLWxldmVsLmgiICkKLSBzZXQoIEFORFJPSURfU1RBTkRB
TE9ORV9UT09MQ0hBSU5fQVBJX0xFVkVMICR7QU5EUk9JRF9TVVBQT1JURURfTkFUSVZFX0FQSV9M
RVZFTFN9ICkKLSBzZXQoIF9fYXZhaWxhYmxlVG9vbGNoYWlucyAic3RhbmRhbG9uZSIgKQotIF9f
REVURUNUX1RPT0xDSEFJTl9NQUNISU5FX05BTUUoIF9fYXZhaWxhYmxlVG9vbGNoYWluTWFjaGlu
ZXMgIiR7QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0iICkKLSBpZiggTk9UIF9fYXZhaWxh
YmxlVG9vbGNoYWluTWFjaGluZXMgKQotICBtZXNzYWdlKCBGQVRBTF9FUlJPUiAiQ291bGQgbm90
IGRldGVybWluZSBtYWNoaW5lIG5hbWUgb2YgeW91ciB0b29sY2hhaW4uIFByb2JhYmx5IHlvdXIg
QW5kcm9pZCBzdGFuZGFsb25lIHRvb2xjaGFpbiBpcyBicm9rZW4uIiApCi0gZW5kaWYoKQotIGlm
KCBfX2F2YWlsYWJsZVRvb2xjaGFpbk1hY2hpbmVzIE1BVENIRVMgeDg2XzY0ICkKLSAgc2V0KCBf
X2F2YWlsYWJsZVRvb2xjaGFpbkFyY2hzICJ4ODZfNjQiICkKLSBlbHNlaWYoIF9fYXZhaWxhYmxl
VG9vbGNoYWluTWFjaGluZXMgTUFUQ0hFUyBpNjg2ICkKLSAgc2V0KCBfX2F2YWlsYWJsZVRvb2xj
aGFpbkFyY2hzICJ4ODYiICkKLSBlbHNlaWYoIF9fYXZhaWxhYmxlVG9vbGNoYWluTWFjaGluZXMg
TUFUQ0hFUyBhYXJjaDY0ICkKLSAgc2V0KCBfX2F2YWlsYWJsZVRvb2xjaGFpbkFyY2hzICJhcm02
NCIgKQotIGVsc2VpZiggX19hdmFpbGFibGVUb29sY2hhaW5NYWNoaW5lcyBNQVRDSEVTIGFybSAp
Ci0gIHNldCggX19hdmFpbGFibGVUb29sY2hhaW5BcmNocyAiYXJtIiApCi0gZWxzZWlmKCBfX2F2
YWlsYWJsZVRvb2xjaGFpbk1hY2hpbmVzIE1BVENIRVMgbWlwczY0ZWwgKQotICBzZXQoIF9fYXZh
aWxhYmxlVG9vbGNoYWluQXJjaHMgIm1pcHM2NCIgKQotIGVsc2VpZiggX19hdmFpbGFibGVUb29s
Y2hhaW5NYWNoaW5lcyBNQVRDSEVTIG1pcHNlbCApCi0gIHNldCggX19hdmFpbGFibGVUb29sY2hh
aW5BcmNocyAibWlwcyIgKQotIGVuZGlmKCkKLSBleGVjdXRlX3Byb2Nlc3MoIENPTU1BTkQgIiR7
QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0vYmluLyR7X19hdmFpbGFibGVUb29sY2hhaW5N
YWNoaW5lc30tZ2NjJHtUT09MX09TX1NVRkZJWH0iIC1kdW1wdmVyc2lvbgotICAgICAgICAgICAg
ICAgICAgT1VUUFVUX1ZBUklBQkxFIF9fYXZhaWxhYmxlVG9vbGNoYWluQ29tcGlsZXJWZXJzaW9u
cyBPVVRQVVRfU1RSSVBfVFJBSUxJTkdfV0hJVEVTUEFDRSApCi0gc3RyaW5nKCBSRUdFWCBNQVRD
SCAiWzAtOV0rWy5dWzAtOV0rKFsuXVswLTldKyk/IiBfX2F2YWlsYWJsZVRvb2xjaGFpbkNvbXBp
bGVyVmVyc2lvbnMgIiR7X19hdmFpbGFibGVUb29sY2hhaW5Db21waWxlclZlcnNpb25zfSIgKQot
IGlmKCBFWElTVFMgIiR7QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0vYmluL2NsYW5nJHtU
T09MX09TX1NVRkZJWH0iICkKLSAgbGlzdCggQVBQRU5EIF9fYXZhaWxhYmxlVG9vbGNoYWlucyAi
c3RhbmRhbG9uZS1jbGFuZyIgKQotICBsaXN0KCBBUFBFTkQgX19hdmFpbGFibGVUb29sY2hhaW5N
YWNoaW5lcyAke19fYXZhaWxhYmxlVG9vbGNoYWluTWFjaGluZXN9ICkKLSAgbGlzdCggQVBQRU5E
IF9fYXZhaWxhYmxlVG9vbGNoYWluQXJjaHMgJHtfX2F2YWlsYWJsZVRvb2xjaGFpbkFyY2hzfSAp
Ci0gIGxpc3QoIEFQUEVORCBfX2F2YWlsYWJsZVRvb2xjaGFpbkNvbXBpbGVyVmVyc2lvbnMgJHtf
X2F2YWlsYWJsZVRvb2xjaGFpbkNvbXBpbGVyVmVyc2lvbnN9ICkKLSBlbmRpZigpCi1lbmRpZigp
Ci0KLW1hY3JvKCBfX0dMT0JfTkRLX1RPT0xDSEFJTlMgX19hdmFpbGFibGVUb29sY2hhaW5zVmFy
IF9fYXZhaWxhYmxlVG9vbGNoYWluc0xzdCBfX3Rvb2xjaGFpbl9zdWJwYXRoICkKLSBmb3JlYWNo
KCBfX3Rvb2xjaGFpbiAkeyR7X19hdmFpbGFibGVUb29sY2hhaW5zTHN0fX0gKQotICBpZiggIiR7
X190b29sY2hhaW59IiBNQVRDSEVTICItY2xhbmczWy5dWzAtOV0kIiBBTkQgTk9UIEVYSVNUUyAi
JHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEh9LyR7X190b29sY2hhaW59JHtfX3Rvb2xjaGFp
bl9zdWJwYXRofSIgKQotICAgU0VUKCBfX3Rvb2xjaGFpblZlcnNpb25SZWdleCAiXlRPT0xDSEFJ
Tl9WRVJTSU9OW1x0IF0rOj1bXHQgXSsoLiopJCIgKQotICAgRklMRSggU1RSSU5HUyAiJHtBTkRS
T0lEX05ES19UT09MQ0hBSU5TX1BBVEh9LyR7X190b29sY2hhaW59L3NldHVwLm1rIiBfX3Rvb2xj
aGFpblZlcnNpb25TdHIgUkVHRVggIiR7X190b29sY2hhaW5WZXJzaW9uUmVnZXh9IiApCi0gICBp
ZiggX190b29sY2hhaW5WZXJzaW9uU3RyICkKLSAgICBzdHJpbmcoIFJFR0VYIFJFUExBQ0UgIiR7
X190b29sY2hhaW5WZXJzaW9uUmVnZXh9IiAiXFwxIiBfX3Rvb2xjaGFpblZlcnNpb25TdHIgIiR7
X190b29sY2hhaW5WZXJzaW9uU3RyfSIgKQotICAgIHN0cmluZyggUkVHRVggUkVQTEFDRSAiLWNs
YW5nM1suXVswLTldJCIgIi0ke19fdG9vbGNoYWluVmVyc2lvblN0cn0iIF9fZ2NjX3Rvb2xjaGFp
biAiJHtfX3Rvb2xjaGFpbn0iICkKLSAgIGVsc2UoKQotICAgIHN0cmluZyggUkVHRVggUkVQTEFD
RSAiLWNsYW5nM1suXVswLTldJCIgIi00LjYiIF9fZ2NjX3Rvb2xjaGFpbiAiJHtfX3Rvb2xjaGFp
bn0iICkKLSAgIGVuZGlmKCkKLSAgIHVuc2V0KCBfX3Rvb2xjaGFpblZlcnNpb25TdHIgKQotICAg
dW5zZXQoIF9fdG9vbGNoYWluVmVyc2lvblJlZ2V4ICkKLSAgZWxzZSgpCi0gICBzZXQoIF9fZ2Nj
X3Rvb2xjaGFpbiAiJHtfX3Rvb2xjaGFpbn0iICkKLSAgZW5kaWYoKQotICBfX0RFVEVDVF9UT09M
Q0hBSU5fTUFDSElORV9OQU1FKCBfX21hY2hpbmUgIiR7QU5EUk9JRF9OREtfVE9PTENIQUlOU19Q
QVRIfS8ke19fZ2NjX3Rvb2xjaGFpbn0ke19fdG9vbGNoYWluX3N1YnBhdGh9IiApCi0gIGlmKCBf
X21hY2hpbmUgKQotICAgc3RyaW5nKCBSRUdFWCBNQVRDSCAiWzAtOV0rWy5dWzAtOV0rKFsuXVsw
LTl4XSspPyQiIF9fdmVyc2lvbiAiJHtfX2djY190b29sY2hhaW59IiApCi0gICBpZiggX19tYWNo
aW5lIE1BVENIRVMgeDg2XzY0ICkKLSAgICBzZXQoIF9fYXJjaCAieDg2XzY0IiApCi0gICBlbHNl
aWYoIF9fbWFjaGluZSBNQVRDSEVTIGk2ODYgKQotICAgIHNldCggX19hcmNoICJ4ODYiICkKLSAg
IGVsc2VpZiggX19tYWNoaW5lIE1BVENIRVMgYWFyY2g2NCApCi0gICAgc2V0KCBfX2FyY2ggImFy
bTY0IiApCi0gICBlbHNlaWYoIF9fbWFjaGluZSBNQVRDSEVTIGFybSApCi0gICAgc2V0KCBfX2Fy
Y2ggImFybSIgKQotICAgZWxzZWlmKCBfX21hY2hpbmUgTUFUQ0hFUyBtaXBzNjRlbCApCi0gICAg
c2V0KCBfX2FyY2ggIm1pcHM2NCIgKQotICAgZWxzZWlmKCBfX21hY2hpbmUgTUFUQ0hFUyBtaXBz
ZWwgKQotICAgIHNldCggX19hcmNoICJtaXBzIiApCi0gICBlbHNlKCkKLSAgICBzZXQoIF9fYXJj
aCAiIiApCi0gICBlbmRpZigpCi0gICAjbWVzc2FnZSgibWFjaGluZTogISR7X19tYWNoaW5lfSFc
bmFyY2g6ICEke19fYXJjaH0hXG52ZXJzaW9uOiAhJHtfX3ZlcnNpb259IVxudG9vbGNoYWluOiAh
JHtfX3Rvb2xjaGFpbn0hXG4iKQotICAgaWYgKF9fYXJjaCkKLSAgICBsaXN0KCBBUFBFTkQgX19h
dmFpbGFibGVUb29sY2hhaW5NYWNoaW5lcyAiJHtfX21hY2hpbmV9IiApCi0gICAgbGlzdCggQVBQ
RU5EIF9fYXZhaWxhYmxlVG9vbGNoYWluQXJjaHMgIiR7X19hcmNofSIgKQotICAgIGxpc3QoIEFQ
UEVORCBfX2F2YWlsYWJsZVRvb2xjaGFpbkNvbXBpbGVyVmVyc2lvbnMgIiR7X192ZXJzaW9ufSIg
KQotICAgIGxpc3QoIEFQUEVORCAke19fYXZhaWxhYmxlVG9vbGNoYWluc1Zhcn0gIiR7X190b29s
Y2hhaW59IiApCi0gICBlbmRpZigpCi0gIGVuZGlmKCkKLSAgdW5zZXQoIF9fZ2NjX3Rvb2xjaGFp
biApCi0gZW5kZm9yZWFjaCgpCi1lbmRtYWNybygpCi0KLSMgZ2V0IGFsbCB0aGUgZGV0YWlscyBh
Ym91dCBOREsKLWlmKCBCVUlMRF9XSVRIX0FORFJPSURfTkRLICkKLSBmaWxlKCBHTE9CIEFORFJP
SURfU1VQUE9SVEVEX05BVElWRV9BUElfTEVWRUxTIFJFTEFUSVZFICIke0FORFJPSURfTkRLfS9w
bGF0Zm9ybXMiICIke0FORFJPSURfTkRLfS9wbGF0Zm9ybXMvYW5kcm9pZC0qIiApCi0gc3RyaW5n
KCBSRVBMQUNFICJhbmRyb2lkLSIgIiIgQU5EUk9JRF9TVVBQT1JURURfTkFUSVZFX0FQSV9MRVZF
TFMgIiR7QU5EUk9JRF9TVVBQT1JURURfTkFUSVZFX0FQSV9MRVZFTFN9IiApCi0gc2V0KCBfX2F2
YWlsYWJsZVRvb2xjaGFpbnMgIiIgKQotIHNldCggX19hdmFpbGFibGVUb29sY2hhaW5NYWNoaW5l
cyAiIiApCi0gc2V0KCBfX2F2YWlsYWJsZVRvb2xjaGFpbkFyY2hzICIiICkKLSBzZXQoIF9fYXZh
aWxhYmxlVG9vbGNoYWluQ29tcGlsZXJWZXJzaW9ucyAiIiApCi0gaWYoIEFORFJPSURfVE9PTENI
QUlOX05BTUUgQU5EIEVYSVNUUyAiJHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEh9LyR7QU5E
Uk9JRF9UT09MQ0hBSU5fTkFNRX0vIiApCi0gICMgZG8gbm90IGdvIHRocm91Z2ggYWxsIHRvb2xj
aGFpbnMgaWYgd2Uga25vdyB0aGUgbmFtZQotICBzZXQoIF9fYXZhaWxhYmxlVG9vbGNoYWluc0xz
dCAiJHtBTkRST0lEX1RPT0xDSEFJTl9OQU1FfSIgKQotICBfX0dMT0JfTkRLX1RPT0xDSEFJTlMo
IF9fYXZhaWxhYmxlVG9vbGNoYWlucyBfX2F2YWlsYWJsZVRvb2xjaGFpbnNMc3QgIiR7QU5EUk9J
RF9OREtfVE9PTENIQUlOU19TVUJQQVRIfSIgKQotICBpZiggTk9UIF9fYXZhaWxhYmxlVG9vbGNo
YWlucyBBTkQgTk9UIEFORFJPSURfTkRLX1RPT0xDSEFJTlNfU1VCUEFUSCBTVFJFUVVBTCBBTkRS
T0lEX05ES19UT09MQ0hBSU5TX1NVQlBBVEgyICkKLSAgIF9fR0xPQl9OREtfVE9PTENIQUlOUygg
X19hdmFpbGFibGVUb29sY2hhaW5zIF9fYXZhaWxhYmxlVG9vbGNoYWluc0xzdCAiJHtBTkRST0lE
X05ES19UT09MQ0hBSU5TX1NVQlBBVEgyfSIgKQotICAgaWYoIF9fYXZhaWxhYmxlVG9vbGNoYWlu
cyApCi0gICAgc2V0KCBBTkRST0lEX05ES19UT09MQ0hBSU5TX1NVQlBBVEggJHtBTkRST0lEX05E
S19UT09MQ0hBSU5TX1NVQlBBVEgyfSApCi0gICBlbmRpZigpCi0gIGVuZGlmKCkKLSBlbmRpZigp
Ci0gaWYoIE5PVCBfX2F2YWlsYWJsZVRvb2xjaGFpbnMgKQotICBmaWxlKCBHTE9CIF9fYXZhaWxh
YmxlVG9vbGNoYWluc0xzdCBSRUxBVElWRSAiJHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEh9
IiAiJHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEh9LyoiICkKLSAgaWYoIF9fYXZhaWxhYmxl
VG9vbGNoYWluc0xzdCApCi0gICBsaXN0KFNPUlQgX19hdmFpbGFibGVUb29sY2hhaW5zTHN0KSAj
IHdlIG5lZWQgY2xhbmcgdG8gZ28gYWZ0ZXIgZ2NjCi0gIGVuZGlmKCkKLSAgX19MSVNUX0ZJTFRF
UiggX19hdmFpbGFibGVUb29sY2hhaW5zTHN0ICJeWy5dIiApCi0gIF9fTElTVF9GSUxURVIoIF9f
YXZhaWxhYmxlVG9vbGNoYWluc0xzdCAibGx2bSIgKQotICBfX0xJU1RfRklMVEVSKCBfX2F2YWls
YWJsZVRvb2xjaGFpbnNMc3QgInJlbmRlcnNjcmlwdCIgKQotICBfX0dMT0JfTkRLX1RPT0xDSEFJ
TlMoIF9fYXZhaWxhYmxlVG9vbGNoYWlucyBfX2F2YWlsYWJsZVRvb2xjaGFpbnNMc3QgIiR7QU5E
Uk9JRF9OREtfVE9PTENIQUlOU19TVUJQQVRIfSIgKQotICBpZiggTk9UIF9fYXZhaWxhYmxlVG9v
bGNoYWlucyBBTkQgTk9UIEFORFJPSURfTkRLX1RPT0xDSEFJTlNfU1VCUEFUSCBTVFJFUVVBTCBB
TkRST0lEX05ES19UT09MQ0hBSU5TX1NVQlBBVEgyICkKLSAgIF9fR0xPQl9OREtfVE9PTENIQUlO
UyggX19hdmFpbGFibGVUb29sY2hhaW5zIF9fYXZhaWxhYmxlVG9vbGNoYWluc0xzdCAiJHtBTkRS
T0lEX05ES19UT09MQ0hBSU5TX1NVQlBBVEgyfSIgKQotICAgaWYoIF9fYXZhaWxhYmxlVG9vbGNo
YWlucyApCi0gICAgc2V0KCBBTkRST0lEX05ES19UT09MQ0hBSU5TX1NVQlBBVEggJHtBTkRST0lE
X05ES19UT09MQ0hBSU5TX1NVQlBBVEgyfSApCi0gICBlbmRpZigpCi0gIGVuZGlmKCkKLSBlbmRp
ZigpCi0gaWYoIE5PVCBfX2F2YWlsYWJsZVRvb2xjaGFpbnMgKQotICBtZXNzYWdlKCBGQVRBTF9F
UlJPUiAiQ291bGQgbm90IGZpbmQgYW55IHdvcmtpbmcgdG9vbGNoYWluIGluIHRoZSBOREsuIFBy
b2JhYmx5IHlvdXIgQW5kcm9pZCBOREsgaXMgYnJva2VuLiIgKQotIGVuZGlmKCkKLWVuZGlmKCkK
LQotIyBidWlsZCBsaXN0IG9mIGF2YWlsYWJsZSBBQklzCi1zZXQoIEFORFJPSURfU1VQUE9SVEVE
X0FCSVMgIiIgKQotc2V0KCBfX3VuaXFUb29sY2hhaW5BcmNoTmFtZXMgJHtfX2F2YWlsYWJsZVRv
b2xjaGFpbkFyY2hzfSApCi1saXN0KCBSRU1PVkVfRFVQTElDQVRFUyBfX3VuaXFUb29sY2hhaW5B
cmNoTmFtZXMgKQotbGlzdCggU09SVCBfX3VuaXFUb29sY2hhaW5BcmNoTmFtZXMgKQotZm9yZWFj
aCggX19hcmNoICR7X191bmlxVG9vbGNoYWluQXJjaE5hbWVzfSApCi0gbGlzdCggQVBQRU5EIEFO
RFJPSURfU1VQUE9SVEVEX0FCSVMgJHtBTkRST0lEX1NVUFBPUlRFRF9BQklTXyR7X19hcmNofX0g
KQotZW5kZm9yZWFjaCgpCi11bnNldCggX191bmlxVG9vbGNoYWluQXJjaE5hbWVzICkKLWlmKCBO
T1QgQU5EUk9JRF9TVVBQT1JURURfQUJJUyApCi0gbWVzc2FnZSggRkFUQUxfRVJST1IgIk5vIG9u
ZSBvZiBrbm93biBBbmRyb2lkIEFCSXMgaXMgc3VwcG9ydGVkIGJ5IHRoaXMgY21ha2UgdG9vbGNo
YWluLiIgKQotZW5kaWYoKQotCi0jIGNob29zZSB0YXJnZXQgQUJJCi1fX0lOSVRfVkFSSUFCTEUo
IEFORFJPSURfQUJJIFZBTFVFUyAke0FORFJPSURfU1VQUE9SVEVEX0FCSVN9ICkKLSMgdmVyaWZ5
IHRoYXQgdGFyZ2V0IEFCSSBpcyBzdXBwb3J0ZWQKLWxpc3QoIEZJTkQgQU5EUk9JRF9TVVBQT1JU
RURfQUJJUyAiJHtBTkRST0lEX0FCSX0iIF9fYW5kcm9pZEFiaUlkeCApCi1pZiggX19hbmRyb2lk
QWJpSWR4IEVRVUFMIC0xICkKLSBzdHJpbmcoIFJFUExBQ0UgIjsiICJcIiwgXCIiIFBSSU5UQUJM
RV9BTkRST0lEX1NVUFBPUlRFRF9BQklTICAiJHtBTkRST0lEX1NVUFBPUlRFRF9BQklTfSIgKQot
IG1lc3NhZ2UoIEZBVEFMX0VSUk9SICJTcGVjaWZpZWQgQU5EUk9JRF9BQkkgPSBcIiR7QU5EUk9J
RF9BQkl9XCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNtYWtlIHRvb2xjaGFpbiBvciB5b3Vy
IE5ESy90b29sY2hhaW4uCi0gICBTdXBwb3J0ZWQgdmFsdWVzIGFyZTogXCIke1BSSU5UQUJMRV9B
TkRST0lEX1NVUFBPUlRFRF9BQklTfVwiCi0gICAiICkKLWVuZGlmKCkKLXVuc2V0KCBfX2FuZHJv
aWRBYmlJZHggKQotCi0jIHNldCB0YXJnZXQgQUJJIG9wdGlvbnMKLWlmKCBBTkRST0lEX0FCSSBT
VFJFUVVBTCAieDg2IiApCi0gc2V0KCBYODYgdHJ1ZSApCi0gc2V0KCBBTkRST0lEX05ES19BQklf
TkFNRSAieDg2IiApCi0gc2V0KCBBTkRST0lEX0FSQ0hfTkFNRSAieDg2IiApCi0gc2V0KCBBTkRS
T0lEX0xMVk1fVFJJUExFICJpNjg2LW5vbmUtbGludXgtYW5kcm9pZCIgKQotIHNldCggQ01BS0Vf
U1lTVEVNX1BST0NFU1NPUiAiaTY4NiIgKQotZWxzZWlmKCBBTkRST0lEX0FCSSBTVFJFUVVBTCAi
eDg2XzY0IiApCi0gc2V0KCBYODYgdHJ1ZSApCi0gc2V0KCBYODZfNjQgdHJ1ZSApCi0gc2V0KCBB
TkRST0lEX05ES19BQklfTkFNRSAieDg2XzY0IiApCi0gc2V0KCBBTkRST0lEX0FSQ0hfTkFNRSAi
eDg2XzY0IiApCi0gc2V0KCBDTUFLRV9TWVNURU1fUFJPQ0VTU09SICJ4ODZfNjQiICkKLSBzZXQo
IEFORFJPSURfTExWTV9UUklQTEUgIng4Nl82NC1ub25lLWxpbnV4LWFuZHJvaWQiICkKLWVsc2Vp
ZiggQU5EUk9JRF9BQkkgU1RSRVFVQUwgIm1pcHM2NCIgKQotIHNldCggTUlQUzY0IHRydWUgKQot
IHNldCggQU5EUk9JRF9OREtfQUJJX05BTUUgIm1pcHM2NCIgKQotIHNldCggQU5EUk9JRF9BUkNI
X05BTUUgIm1pcHM2NCIgKQotIHNldCggQU5EUk9JRF9MTFZNX1RSSVBMRSAibWlwczY0ZWwtbm9u
ZS1saW51eC1hbmRyb2lkIiApCi0gc2V0KCBDTUFLRV9TWVNURU1fUFJPQ0VTU09SICJtaXBzNjQi
ICkKLWVsc2VpZiggQU5EUk9JRF9BQkkgU1RSRVFVQUwgIm1pcHMiICkKLSBzZXQoIE1JUFMgdHJ1
ZSApCi0gc2V0KCBBTkRST0lEX05ES19BQklfTkFNRSAibWlwcyIgKQotIHNldCggQU5EUk9JRF9B
UkNIX05BTUUgIm1pcHMiICkKLSBzZXQoIEFORFJPSURfTExWTV9UUklQTEUgIm1pcHNlbC1ub25l
LWxpbnV4LWFuZHJvaWQiICkKLSBzZXQoIENNQUtFX1NZU1RFTV9QUk9DRVNTT1IgIm1pcHMiICkK
LWVsc2VpZiggQU5EUk9JRF9BQkkgU1RSRVFVQUwgImFybTY0LXY4YSIgKQotIHNldCggQVJNNjRf
VjhBIHRydWUgKQotIHNldCggQU5EUk9JRF9OREtfQUJJX05BTUUgImFybTY0LXY4YSIgKQotIHNl
dCggQU5EUk9JRF9BUkNIX05BTUUgImFybTY0IiApCi0gc2V0KCBBTkRST0lEX0xMVk1fVFJJUExF
ICJhYXJjaDY0LW5vbmUtbGludXgtYW5kcm9pZCIgKQotIHNldCggQ01BS0VfU1lTVEVNX1BST0NF
U1NPUiAiYWFyY2g2NCIgKQotIHNldCggVkZQVjMgdHJ1ZSApCi0gc2V0KCBORU9OIHRydWUgKQot
ZWxzZWlmKCBBTkRST0lEX0FCSSBTVFJFUVVBTCAiYXJtZWFiaSIgKQotIHNldCggQVJNRUFCSSB0
cnVlICkKLSBzZXQoIEFORFJPSURfTkRLX0FCSV9OQU1FICJhcm1lYWJpIiApCi0gc2V0KCBBTkRS
T0lEX0FSQ0hfTkFNRSAiYXJtIiApCi0gc2V0KCBBTkRST0lEX0xMVk1fVFJJUExFICJhcm12NXRl
LW5vbmUtbGludXgtYW5kcm9pZGVhYmkiICkKLSBzZXQoIENNQUtFX1NZU1RFTV9QUk9DRVNTT1Ig
ImFybXY1dGUiICkKLWVsc2VpZiggQU5EUk9JRF9BQkkgU1RSRVFVQUwgImFybWVhYmktdjYgd2l0
aCBWRlAiICkKLSBzZXQoIEFSTUVBQklfVjYgdHJ1ZSApCi0gc2V0KCBBTkRST0lEX05ES19BQklf
TkFNRSAiYXJtZWFiaSIgKQotIHNldCggQU5EUk9JRF9BUkNIX05BTUUgImFybSIgKQotIHNldCgg
QU5EUk9JRF9MTFZNX1RSSVBMRSAiYXJtdjV0ZS1ub25lLWxpbnV4LWFuZHJvaWRlYWJpIiApCi0g
c2V0KCBDTUFLRV9TWVNURU1fUFJPQ0VTU09SICJhcm12NiIgKQotICMgbmVlZCBhbHdheXMgZmFs
bGJhY2sgdG8gb2xkZXIgcGxhdGZvcm0KLSBzZXQoIEFSTUVBQkkgdHJ1ZSApCi1lbHNlaWYoIEFO
RFJPSURfQUJJIFNUUkVRVUFMICJhcm1lYWJpLXY3YSIpCi0gc2V0KCBBUk1FQUJJX1Y3QSB0cnVl
ICkKLSBzZXQoIEFORFJPSURfTkRLX0FCSV9OQU1FICJhcm1lYWJpLXY3YSIgKQotIHNldCggQU5E
Uk9JRF9BUkNIX05BTUUgImFybSIgKQotIHNldCggQU5EUk9JRF9MTFZNX1RSSVBMRSAiYXJtdjct
bm9uZS1saW51eC1hbmRyb2lkZWFiaSIgKQotIHNldCggQ01BS0VfU1lTVEVNX1BST0NFU1NPUiAi
YXJtdjctYSIgKQotZWxzZWlmKCBBTkRST0lEX0FCSSBTVFJFUVVBTCAiYXJtZWFiaS12N2Egd2l0
aCBWRlBWMyIgKQotIHNldCggQVJNRUFCSV9WN0EgdHJ1ZSApCi0gc2V0KCBBTkRST0lEX05ES19B
QklfTkFNRSAiYXJtZWFiaS12N2EiICkKLSBzZXQoIEFORFJPSURfQVJDSF9OQU1FICJhcm0iICkK
LSBzZXQoIEFORFJPSURfTExWTV9UUklQTEUgImFybXY3LW5vbmUtbGludXgtYW5kcm9pZGVhYmki
ICkKLSBzZXQoIENNQUtFX1NZU1RFTV9QUk9DRVNTT1IgImFybXY3LWEiICkKLSBzZXQoIFZGUFYz
IHRydWUgKQotZWxzZWlmKCBBTkRST0lEX0FCSSBTVFJFUVVBTCAiYXJtZWFiaS12N2Egd2l0aCBO
RU9OIiApCi0gc2V0KCBBUk1FQUJJX1Y3QSB0cnVlICkKLSBzZXQoIEFORFJPSURfTkRLX0FCSV9O
QU1FICJhcm1lYWJpLXY3YSIgKQotIHNldCggQU5EUk9JRF9BUkNIX05BTUUgImFybSIgKQotIHNl
dCggQU5EUk9JRF9MTFZNX1RSSVBMRSAiYXJtdjctbm9uZS1saW51eC1hbmRyb2lkZWFiaSIgKQot
IHNldCggQ01BS0VfU1lTVEVNX1BST0NFU1NPUiAiYXJtdjctYSIgKQotIHNldCggVkZQVjMgdHJ1
ZSApCi0gc2V0KCBORU9OIHRydWUgKQotZWxzZSgpCi0gbWVzc2FnZSggU0VORF9FUlJPUiAiVW5r
bm93biBBTkRST0lEX0FCST1cIiR7QU5EUk9JRF9BQkl9XCIgaXMgc3BlY2lmaWVkLiIgKQotZW5k
aWYoKQotCi1pZiggQ01BS0VfQklOQVJZX0RJUiBBTkQgRVhJU1RTICIke0NNQUtFX0JJTkFSWV9E
SVJ9JHtDTUFLRV9GSUxFU19ESVJFQ1RPUll9L0NNYWtlU3lzdGVtLmNtYWtlIiApCi0gIyByZWFs
bHkgZGlydHkgaGFjawotICMgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNoYW5nZSBDTUFLRV9TWVNU
RU1fUFJPQ0VTU09SIGFmdGVyIHRoZSBmaXJzdCBydW4uLi4KLSBmaWxlKCBBUFBFTkQgIiR7Q01B
S0VfQklOQVJZX0RJUn0ke0NNQUtFX0ZJTEVTX0RJUkVDVE9SWX0vQ01ha2VTeXN0ZW0uY21ha2Ui
ICJTRVQoQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBcIiR7Q01BS0VfU1lTVEVNX1BST0NFU1NPUn1c
IilcbiIgKQotZW5kaWYoKQotCi1pZiggQU5EUk9JRF9BUkNIX05BTUUgU1RSRVFVQUwgImFybSIg
QU5EIE5PVCBBUk1FQUJJX1Y2ICkKLSBfX0lOSVRfVkFSSUFCTEUoIEFORFJPSURfRk9SQ0VfQVJN
X0JVSUxEIFZBTFVFUyBPRkYgKQotIHNldCggQU5EUk9JRF9GT1JDRV9BUk1fQlVJTEQgJHtBTkRS
T0lEX0ZPUkNFX0FSTV9CVUlMRH0gQ0FDSEUgQk9PTCAiVXNlIDMyLWJpdCBBUk0gaW5zdHJ1Y3Rp
b25zIGluc3RlYWQgb2YgVGh1bWItMSIgRk9SQ0UgKQotIG1hcmtfYXNfYWR2YW5jZWQoIEFORFJP
SURfRk9SQ0VfQVJNX0JVSUxEICkKLWVsc2UoKQotIHVuc2V0KCBBTkRST0lEX0ZPUkNFX0FSTV9C
VUlMRCBDQUNIRSApCi1lbmRpZigpCi0KLSMgY2hvb3NlIHRvb2xjaGFpbgotaWYoIEFORFJPSURf
VE9PTENIQUlOX05BTUUgKQotIGxpc3QoIEZJTkQgX19hdmFpbGFibGVUb29sY2hhaW5zICIke0FO
RFJPSURfVE9PTENIQUlOX05BTUV9IiBfX3Rvb2xjaGFpbklkeCApCi0gaWYoIF9fdG9vbGNoYWlu
SWR4IEVRVUFMIC0xICkKLSAgbGlzdCggU09SVCBfX2F2YWlsYWJsZVRvb2xjaGFpbnMgKQotICBz
dHJpbmcoIFJFUExBQ0UgIjsiICJcbiAgKiAiIHRvb2xjaGFpbnNfbGlzdCAiJHtfX2F2YWlsYWJs
ZVRvb2xjaGFpbnN9IiApCi0gIHNldCggdG9vbGNoYWluc19saXN0ICIgICogJHt0b29sY2hhaW5z
X2xpc3R9IikKLSAgbWVzc2FnZSggRkFUQUxfRVJST1IgIlNwZWNpZmllZCB0b29sY2hhaW4gXCIk
e0FORFJPSURfVE9PTENIQUlOX05BTUV9XCIgaXMgbWlzc2luZyBpbiB5b3VyIE5ESyBvciBicm9r
ZW4uIFBsZWFzZSB2ZXJpZnkgdGhhdCB5b3VyIE5ESyBpcyB3b3JraW5nIG9yIHNlbGVjdCBhbm90
aGVyIGNvbXBpbGVyIHRvb2xjaGFpbi4KLVRvIGNvbmZpZ3VyZSB0aGUgdG9vbGNoYWluIHNldCBD
TWFrZSB2YXJpYWJsZSBBTkRST0lEX1RPT0xDSEFJTl9OQU1FIHRvIG9uZSBvZiB0aGUgZm9sbG93
aW5nIHZhbHVlczpcbiR7dG9vbGNoYWluc19saXN0fVxuIiApCi0gZW5kaWYoKQotIGxpc3QoIEdF
VCBfX2F2YWlsYWJsZVRvb2xjaGFpbkFyY2hzICR7X190b29sY2hhaW5JZHh9IF9fdG9vbGNoYWlu
QXJjaCApCi0gaWYoIE5PVCBfX3Rvb2xjaGFpbkFyY2ggU1RSRVFVQUwgQU5EUk9JRF9BUkNIX05B
TUUgKQotICBtZXNzYWdlKCBTRU5EX0VSUk9SICJTZWxlY3RlZCB0b29sY2hhaW4gXCIke0FORFJP
SURfVE9PTENIQUlOX05BTUV9XCIgaXMgbm90IGFibGUgdG8gY29tcGlsZSBiaW5hcmllcyBmb3Ig
dGhlIFwiJHtBTkRST0lEX0FSQ0hfTkFNRX1cIiBwbGF0Zm9ybS4iICkKLSBlbmRpZigpCi1lbHNl
KCkKLSBzZXQoIF9fdG9vbGNoYWluSWR4IC0xICkKLSBzZXQoIF9fYXBwbGljYWJsZVRvb2xjaGFp
bnMgIiIgKQotIHNldCggX190b29sY2hhaW5NYXhWZXJzaW9uICIwLjAuMCIgKQotIGxpc3QoIExF
TkdUSCBfX2F2YWlsYWJsZVRvb2xjaGFpbnMgX19hdmFpbGFibGVUb29sY2hhaW5zQ291bnQgKQot
IG1hdGgoIEVYUFIgX19hdmFpbGFibGVUb29sY2hhaW5zQ291bnQgIiR7X19hdmFpbGFibGVUb29s
Y2hhaW5zQ291bnR9LTEiICkKLSBmb3JlYWNoKCBfX2lkeCBSQU5HRSAke19fYXZhaWxhYmxlVG9v
bGNoYWluc0NvdW50fSApCi0gIGxpc3QoIEdFVCBfX2F2YWlsYWJsZVRvb2xjaGFpbkFyY2hzICR7
X19pZHh9IF9fdG9vbGNoYWluQXJjaCApCi0gIGlmKCBfX3Rvb2xjaGFpbkFyY2ggU1RSRVFVQUwg
QU5EUk9JRF9BUkNIX05BTUUgKQotICAgbGlzdCggR0VUIF9fYXZhaWxhYmxlVG9vbGNoYWluQ29t
cGlsZXJWZXJzaW9ucyAke19faWR4fSBfX3Rvb2xjaGFpblZlcnNpb24gKQotICAgc3RyaW5nKCBS
RVBMQUNFICJ4IiAiOTkiIF9fdG9vbGNoYWluVmVyc2lvbiAiJHtfX3Rvb2xjaGFpblZlcnNpb259
IikKLSAgIGlmKCBfX3Rvb2xjaGFpblZlcnNpb24gVkVSU0lPTl9HUkVBVEVSIF9fdG9vbGNoYWlu
TWF4VmVyc2lvbiApCi0gICAgc2V0KCBfX3Rvb2xjaGFpbk1heFZlcnNpb24gIiR7X190b29sY2hh
aW5WZXJzaW9ufSIgKQotICAgIHNldCggX190b29sY2hhaW5JZHggJHtfX2lkeH0gKQotICAgZW5k
aWYoKQotICBlbmRpZigpCi0gZW5kZm9yZWFjaCgpCi0gdW5zZXQoIF9fYXZhaWxhYmxlVG9vbGNo
YWluc0NvdW50ICkKLSB1bnNldCggX190b29sY2hhaW5NYXhWZXJzaW9uICkKLSB1bnNldCggX190
b29sY2hhaW5WZXJzaW9uICkKLWVuZGlmKCkKLXVuc2V0KCBfX3Rvb2xjaGFpbkFyY2ggKQotaWYo
IF9fdG9vbGNoYWluSWR4IEVRVUFMIC0xICkKLSBtZXNzYWdlKCBGQVRBTF9FUlJPUiAiTm8gb25l
IG9mIGF2YWlsYWJsZSBjb21waWxlciB0b29sY2hhaW5zIGlzIGFibGUgdG8gY29tcGlsZSBmb3Ig
JHtBTkRST0lEX0FSQ0hfTkFNRX0gcGxhdGZvcm0uIiApCi1lbmRpZigpCi1saXN0KCBHRVQgX19h
dmFpbGFibGVUb29sY2hhaW5zICR7X190b29sY2hhaW5JZHh9IEFORFJPSURfVE9PTENIQUlOX05B
TUUgKQotbGlzdCggR0VUIF9fYXZhaWxhYmxlVG9vbGNoYWluTWFjaGluZXMgJHtfX3Rvb2xjaGFp
bklkeH0gQU5EUk9JRF9UT09MQ0hBSU5fTUFDSElORV9OQU1FICkKLWxpc3QoIEdFVCBfX2F2YWls
YWJsZVRvb2xjaGFpbkNvbXBpbGVyVmVyc2lvbnMgJHtfX3Rvb2xjaGFpbklkeH0gQU5EUk9JRF9D
T01QSUxFUl9WRVJTSU9OICkKLQotdW5zZXQoIF9fdG9vbGNoYWluSWR4ICkKLXVuc2V0KCBfX2F2
YWlsYWJsZVRvb2xjaGFpbnMgKQotdW5zZXQoIF9fYXZhaWxhYmxlVG9vbGNoYWluTWFjaGluZXMg
KQotdW5zZXQoIF9fYXZhaWxhYmxlVG9vbGNoYWluQXJjaHMgKQotdW5zZXQoIF9fYXZhaWxhYmxl
VG9vbGNoYWluQ29tcGlsZXJWZXJzaW9ucyApCi0KLSMgY2hvb3NlIG5hdGl2ZSBBUEkgbGV2ZWwK
LV9fSU5JVF9WQVJJQUJMRSggQU5EUk9JRF9OQVRJVkVfQVBJX0xFVkVMIEVOVl9BTkRST0lEX05B
VElWRV9BUElfTEVWRUwgQU5EUk9JRF9BUElfTEVWRUwgRU5WX0FORFJPSURfQVBJX0xFVkVMIEFO
RFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU5fQVBJX0xFVkVMIEFORFJPSURfREVGQVVMVF9OREtf
QVBJX0xFVkVMXyR7QU5EUk9JRF9BUkNIX05BTUV9IEFORFJPSURfREVGQVVMVF9OREtfQVBJX0xF
VkVMICkKLXN0cmluZyggUkVQTEFDRSAiYW5kcm9pZC0iICIiIEFORFJPSURfTkFUSVZFX0FQSV9M
RVZFTCAiJHtBTkRST0lEX05BVElWRV9BUElfTEVWRUx9IiApCi1zdHJpbmcoIFNUUklQICIke0FO
RFJPSURfTkFUSVZFX0FQSV9MRVZFTH0iIEFORFJPSURfTkFUSVZFX0FQSV9MRVZFTCApCi0jIGFk
anVzdCBBUEkgbGV2ZWwKLXNldCggX19yZWFsX2FwaV9sZXZlbCAke0FORFJPSURfREVGQVVMVF9O
REtfQVBJX0xFVkVMXyR7QU5EUk9JRF9BUkNIX05BTUV9fSApCi1mb3JlYWNoKCBfX2xldmVsICR7
QU5EUk9JRF9TVVBQT1JURURfTkFUSVZFX0FQSV9MRVZFTFN9ICkKLSBpZiggKF9fbGV2ZWwgTEVT
UyBBTkRST0lEX05BVElWRV9BUElfTEVWRUwgT1IgX19sZXZlbCBTVFJFUVVBTCBBTkRST0lEX05B
VElWRV9BUElfTEVWRUwpIEFORCBOT1QgX19sZXZlbCBMRVNTIF9fcmVhbF9hcGlfbGV2ZWwgKQot
ICBzZXQoIF9fcmVhbF9hcGlfbGV2ZWwgJHtfX2xldmVsfSApCi0gZW5kaWYoKQotZW5kZm9yZWFj
aCgpCi1pZiggX19yZWFsX2FwaV9sZXZlbCBBTkQgTk9UIEFORFJPSURfTkFUSVZFX0FQSV9MRVZF
TCBTVFJFUVVBTCBfX3JlYWxfYXBpX2xldmVsICkKLSBtZXNzYWdlKCBTVEFUVVMgIkFkanVzdGlu
ZyBBbmRyb2lkIEFQSSBsZXZlbCAnYW5kcm9pZC0ke0FORFJPSURfTkFUSVZFX0FQSV9MRVZFTH0n
IHRvICdhbmRyb2lkLSR7X19yZWFsX2FwaV9sZXZlbH0nIikKLSBzZXQoIEFORFJPSURfTkFUSVZF
X0FQSV9MRVZFTCAke19fcmVhbF9hcGlfbGV2ZWx9ICkKLWVuZGlmKCkKLXVuc2V0KF9fcmVhbF9h
cGlfbGV2ZWwpCi0jIHZhbGlkYXRlCi1saXN0KCBGSU5EIEFORFJPSURfU1VQUE9SVEVEX05BVElW
RV9BUElfTEVWRUxTICIke0FORFJPSURfTkFUSVZFX0FQSV9MRVZFTH0iIF9fbGV2ZWxJZHggKQot
aWYoIF9fbGV2ZWxJZHggRVFVQUwgLTEgKQotIG1lc3NhZ2UoIFNFTkRfRVJST1IgIlNwZWNpZmll
ZCBBbmRyb2lkIG5hdGl2ZSBBUEkgbGV2ZWwgJ2FuZHJvaWQtJHtBTkRST0lEX05BVElWRV9BUElf
TEVWRUx9JyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHlvdXIgTkRLL3Rvb2xjaGFpbi4iICkKLWVsc2Uo
KQotIGlmKCBCVUlMRF9XSVRIX0FORFJPSURfTkRLICkKLSAgX19ERVRFQ1RfTkFUSVZFX0FQSV9M
RVZFTCggX19yZWFsQXBpTGV2ZWwgIiR7QU5EUk9JRF9OREt9L3BsYXRmb3Jtcy9hbmRyb2lkLSR7
QU5EUk9JRF9OQVRJVkVfQVBJX0xFVkVMfS9hcmNoLSR7QU5EUk9JRF9BUkNIX05BTUV9L3Vzci9p
bmNsdWRlL2FuZHJvaWQvYXBpLWxldmVsLmgiICkKLSAgaWYoIE5PVCBfX3JlYWxBcGlMZXZlbCBF
UVVBTCBBTkRST0lEX05BVElWRV9BUElfTEVWRUwgQU5EIE5PVCBfX3JlYWxBcGlMZXZlbCBHUkVB
VEVSIDkwMDAgKQotICAgbWVzc2FnZSggU0VORF9FUlJPUiAiU3BlY2lmaWVkIEFuZHJvaWQgQVBJ
IGxldmVsICgke0FORFJPSURfTkFUSVZFX0FQSV9MRVZFTH0pIGRvZXMgbm90IG1hdGNoIHRvIHRo
ZSBsZXZlbCBmb3VuZCAoJHtfX3JlYWxBcGlMZXZlbH0pLiBQcm9iYWJseSB5b3VyIGNvcHkgb2Yg
TkRLIGlzIGJyb2tlbi4iICkKLSAgZW5kaWYoKQotICB1bnNldCggX19yZWFsQXBpTGV2ZWwgKQot
IGVuZGlmKCkKLSBzZXQoIEFORFJPSURfTkFUSVZFX0FQSV9MRVZFTCAiJHtBTkRST0lEX05BVElW
RV9BUElfTEVWRUx9IiBDQUNIRSBTVFJJTkcgIkFuZHJvaWQgQVBJIGxldmVsIGZvciBuYXRpdmUg
Y29kZSIgRk9SQ0UgKQotIHNldCggQ01BS0VfQU5EUk9JRF9BUEkgJHtBTkRST0lEX05BVElWRV9B
UElfTEVWRUx9ICkKLSBpZiggQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0dSRUFURVIgIjIuOCIgKQot
ICBsaXN0KCBTT1JUIEFORFJPSURfU1VQUE9SVEVEX05BVElWRV9BUElfTEVWRUxTICkKLSAgc2V0
X3Byb3BlcnR5KCBDQUNIRSBBTkRST0lEX05BVElWRV9BUElfTEVWRUwgUFJPUEVSVFkgU1RSSU5H
UyAke0FORFJPSURfU1VQUE9SVEVEX05BVElWRV9BUElfTEVWRUxTfSApCi0gZW5kaWYoKQotZW5k
aWYoKQotdW5zZXQoIF9fbGV2ZWxJZHggKQotCi0KLSMgcmVtZW1iZXIgdGFyZ2V0IEFCSQotc2V0
KCBBTkRST0lEX0FCSSAiJHtBTkRST0lEX0FCSX0iIENBQ0hFIFNUUklORyAiVGhlIHRhcmdldCBB
QkkgZm9yIEFuZHJvaWQuIElmIGFybSwgdGhlbiBhcm1lYWJpLXY3YSBpcyByZWNvbW1lbmRlZCBm
b3IgaGFyZHdhcmUgZmxvYXRpbmcgcG9pbnQuIiBGT1JDRSApCi1pZiggQ01BS0VfVkVSU0lPTiBW
RVJTSU9OX0dSRUFURVIgIjIuOCIgKQotIGxpc3QoIFNPUlQgQU5EUk9JRF9TVVBQT1JURURfQUJJ
U18ke0FORFJPSURfQVJDSF9OQU1FfSApCi0gc2V0X3Byb3BlcnR5KCBDQUNIRSBBTkRST0lEX0FC
SSBQUk9QRVJUWSBTVFJJTkdTICR7QU5EUk9JRF9TVVBQT1JURURfQUJJU18ke0FORFJPSURfQVJD
SF9OQU1FfX0gKQotZW5kaWYoKQotCi0KLSMgcnVudGltZSBjaG9pY2UgKFNUTCwgcnR0aSwgZXhj
ZXB0aW9ucykKLWlmKCBOT1QgQU5EUk9JRF9TVEwgKQotICBzZXQoIEFORFJPSURfU1RMIGdudXN0
bF9zdGF0aWMgKQotZW5kaWYoKQotc2V0KCBBTkRST0lEX1NUTCAiJHtBTkRST0lEX1NUTH0iIENB
Q0hFIFNUUklORyAiQysrIHJ1bnRpbWUiICkKLXNldCggQU5EUk9JRF9TVExfRk9SQ0VfRkVBVFVS
RVMgT04gQ0FDSEUgQk9PTCAiYXV0b21hdGljYWxseSBjb25maWd1cmUgcnR0aSBhbmQgZXhjZXB0
aW9ucyBzdXBwb3J0IGJhc2VkIG9uIEMrKyBydW50aW1lIiApCi1tYXJrX2FzX2FkdmFuY2VkKCBB
TkRST0lEX1NUTCBBTkRST0lEX1NUTF9GT1JDRV9GRUFUVVJFUyApCi0KLWlmKCBCVUlMRF9XSVRI
X0FORFJPSURfTkRLICkKLSBpZiggTk9UICIke0FORFJPSURfU1RMfSIgTUFUQ0hFUyAiXihub25l
fHN5c3RlbXxzeXN0ZW1fcmV8Z2FiaVxcK1xcK19zdGF0aWN8Z2FiaVxcK1xcK19zaGFyZWR8c3Rs
cG9ydF9zdGF0aWN8c3RscG9ydF9zaGFyZWR8Z251c3RsX3N0YXRpY3xnbnVzdGxfc2hhcmVkKSQi
KQotICBtZXNzYWdlKCBGQVRBTF9FUlJPUiAiQU5EUk9JRF9TVEwgaXMgc2V0IHRvIGludmFsaWQg
dmFsdWUgXCIke0FORFJPSURfU1RMfVwiLgotVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmU6Ci0gIG5v
bmUgICAgICAgICAgIC0+IERvIG5vdCBjb25maWd1cmUgdGhlIHJ1bnRpbWUuCi0gIHN5c3RlbSAg
ICAgICAgIC0+IFVzZSB0aGUgZGVmYXVsdCBtaW5pbWFsIHN5c3RlbSBDKysgcnVudGltZSBsaWJy
YXJ5LgotICBzeXN0ZW1fcmUgICAgICAtPiBTYW1lIGFzIHN5c3RlbSBidXQgd2l0aCBydHRpIGFu
ZCBleGNlcHRpb25zLgotICBnYWJpKytfc3RhdGljICAtPiBVc2UgdGhlIEdBYmkrKyBydW50aW1l
IGFzIGEgc3RhdGljIGxpYnJhcnkuCi0gIGdhYmkrK19zaGFyZWQgIC0+IFVzZSB0aGUgR0FiaSsr
IHJ1bnRpbWUgYXMgYSBzaGFyZWQgbGlicmFyeS4KLSAgc3RscG9ydF9zdGF0aWMgLT4gVXNlIHRo
ZSBTVExwb3J0IHJ1bnRpbWUgYXMgYSBzdGF0aWMgbGlicmFyeS4KLSAgc3RscG9ydF9zaGFyZWQg
LT4gVXNlIHRoZSBTVExwb3J0IHJ1bnRpbWUgYXMgYSBzaGFyZWQgbGlicmFyeS4KLSAgZ251c3Rs
X3N0YXRpYyAgLT4gKGRlZmF1bHQpIFVzZSB0aGUgR05VIFNUTCBhcyBhIHN0YXRpYyBsaWJyYXJ5
LgotICBnbnVzdGxfc2hhcmVkICAtPiBVc2UgdGhlIEdOVSBTVEwgYXMgYSBzaGFyZWQgbGlicmFy
eS4KLSIgKQotIGVuZGlmKCkKLWVsc2VpZiggQlVJTERfV0lUSF9TVEFOREFMT05FX1RPT0xDSEFJ
TiApCi0gaWYoIE5PVCAiJHtBTkRST0lEX1NUTH0iIE1BVENIRVMgIl4obm9uZXxnbnVzdGxfc3Rh
dGljfGdudXN0bF9zaGFyZWQpJCIpCi0gIG1lc3NhZ2UoIEZBVEFMX0VSUk9SICJBTkRST0lEX1NU
TCBpcyBzZXQgdG8gaW52YWxpZCB2YWx1ZSBcIiR7QU5EUk9JRF9TVEx9XCIuCi1UaGUgcG9zc2li
bGUgdmFsdWVzIGFyZToKLSAgbm9uZSAgICAgICAgICAgLT4gRG8gbm90IGNvbmZpZ3VyZSB0aGUg
cnVudGltZS4KLSAgZ251c3RsX3N0YXRpYyAgLT4gKGRlZmF1bHQpIFVzZSB0aGUgR05VIFNUTCBh
cyBhIHN0YXRpYyBsaWJyYXJ5LgotICBnbnVzdGxfc2hhcmVkICAtPiBVc2UgdGhlIEdOVSBTVEwg
YXMgYSBzaGFyZWQgbGlicmFyeS4KLSIgKQotIGVuZGlmKCkKLWVuZGlmKCkKLQotdW5zZXQoIEFO
RFJPSURfUlRUSSApCi11bnNldCggQU5EUk9JRF9FWENFUFRJT05TICkKLXVuc2V0KCBBTkRST0lE
X1NUTF9JTkNMVURFX0RJUlMgKQotdW5zZXQoIF9fbGlic3RsICkKLXVuc2V0KCBfX2xpYnN1cGN4
eCApCi0KLWlmKCBOT1QgX0NNQUtFX0lOX1RSWV9DT01QSUxFIEFORCBBTkRST0lEX05ES19SRUxF
QVNFIFNUUkVRVUFMICJyN2IiIEFORCBBUk1FQUJJX1Y3QSBBTkQgTk9UIFZGUFYzIEFORCBBTkRS
T0lEX1NUTCBNQVRDSEVTICJnbnVzdGwiICkKLSBtZXNzYWdlKCBXQVJOSU5HICAiVGhlIEdOVSBT
VEwgYXJtZWFiaS12N2EgYmluYXJpZXMgZnJvbSBOREsgcjdiIGNhbiBjcmFzaCBub24tTkVPTiBk
ZXZpY2VzLiBUaGUgZmlsZXMgcHJvdmlkZWQgd2l0aCBOREsgcjdiIHdlcmUgbm90IGNvbmZpZ3Vy
ZWQgcHJvcGVybHksIHJlc3VsdGluZyBpbiBjcmFzaGVzIG9uIFRlZ3JhMi1iYXNlZCBkZXZpY2Vz
IGFuZCBvdGhlcnMgd2hlbiB0cnlpbmcgdG8gdXNlIGNlcnRhaW4gZmxvYXRpbmctcG9pbnQgZnVu
Y3Rpb25zIChlLmcuLCBjb3NmLCBzaW5mLCBleHBmKS4KLVlvdSBhcmUgc3Ryb25nbHkgcmVjb21t
ZW5kZWQgdG8gc3dpdGNoIHRvIGFub3RoZXIgTkRLIHJlbGVhc2UuCi0iICkKLWVuZGlmKCkKLQot
aWYoIE5PVCBfQ01BS0VfSU5fVFJZX0NPTVBJTEUgQU5EIFg4NiBBTkQgQU5EUk9JRF9TVEwgTUFU
Q0hFUyAiZ251c3RsIiBBTkQgQU5EUk9JRF9OREtfUkVMRUFTRSBTVFJFUVVBTCAicjYiICkKLSAg
bWVzc2FnZSggV0FSTklORyAgIlRoZSB4ODYgc3lzdGVtIGhlYWRlciBmaWxlIGZyb20gTkRLIHI2
IGhhcyBpbmNvcnJlY3QgZGVmaW5pdGlvbiBmb3IgcHRyZGlmZl90LiBZb3UgYXJlIHJlY29tbWVu
ZGVkIHRvIHVwZ3JhZGUgdG8gYSBuZXdlciBOREsgcmVsZWFzZSBvciBtYW51YWxseSBwYXRjaCB0
aGUgaGVhZGVyOgotU2VlIGh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3Jt
L2RldmVsb3BtZW50LmdpdCBmOTA3ZjRmOWQ0ZTU2Y2NjODA5M2RmNmZlZTU0NDU0YjhiY2FiNmMy
Ci0gIGRpZmYgLS1naXQgYS9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9pbmNsdWRl
L21hY2hpbmUvX3R5cGVzLmggYi9uZGsvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4Ni9pbmNs
dWRlL21hY2hpbmUvX3R5cGVzLmgKLSAgaW5kZXggNWUyOGM2NC4uNjU4OTJhMSAxMDA2NDQKLSAg
LS0tIGEvbmRrL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODYvaW5jbHVkZS9tYWNoaW5lL190
eXBlcy5oCi0gICsrKyBiL25kay9wbGF0Zm9ybXMvYW5kcm9pZC05L2FyY2gteDg2L2luY2x1ZGUv
bWFjaGluZS9fdHlwZXMuaAotICBAQCAtNTEsNyArNTEsMTEgQEAgdHlwZWRlZiBsb25nIGludCAg
ICAgICBzc2l6ZV90OwotICAgI2VuZGlmCi0gICAjaWZuZGVmIF9QVFJESUZGX1QKLSAgICNkZWZp
bmUgX1BUUkRJRkZfVAotICAtdHlwZWRlZiBsb25nICAgICAgICAgICBwdHJkaWZmX3Q7Ci0gICsj
ICBpZmRlZiBfX0FORFJPSURfXwotICArICAgICB0eXBlZGVmIGludCAgICAgICAgICAgIHB0cmRp
ZmZfdDsKLSAgKyMgIGVsc2UKLSAgKyAgICAgdHlwZWRlZiBsb25nICAgICAgICAgICBwdHJkaWZm
X3Q7Ci0gICsjICBlbmRpZgotICAgI2VuZGlmCi0iICkKLWVuZGlmKCkKLQotCi0jIHNldHVwIHBh
dGhzIGFuZCBTVEwgZm9yIHN0YW5kYWxvbmUgdG9vbGNoYWluCi1pZiggQlVJTERfV0lUSF9TVEFO
REFMT05FX1RPT0xDSEFJTiApCi0gc2V0KCBBTkRST0lEX1RPT0xDSEFJTl9ST09UICIke0FORFJP
SURfU1RBTkRBTE9ORV9UT09MQ0hBSU59IiApCi0gc2V0KCBBTkRST0lEX0NMQU5HX1RPT0xDSEFJ
Tl9ST09UICIke0FORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU59IiApCi0gc2V0KCBBTkRST0lE
X1NZU1JPT1QgIiR7QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0vc3lzcm9vdCIgKQotCi0g
aWYoIE5PVCBBTkRST0lEX1NUTCBTVFJFUVVBTCAibm9uZSIgKQotICBzZXQoIEFORFJPSURfU1RM
X0lOQ0xVREVfRElSUyAiJHtBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOfS9pbmNsdWRlL2Mr
Ky8ke0FORFJPSURfQ09NUElMRVJfVkVSU0lPTn0iICkKLSAgaWYoIE5PVCBFWElTVFMgIiR7QU5E
Uk9JRF9TVExfSU5DTFVERV9ESVJTfSIgKQotICAgIyBvbGQgbG9jYXRpb24gKCBwcmUgcjhjICkK
LSAgIHNldCggQU5EUk9JRF9TVExfSU5DTFVERV9ESVJTICIke0FORFJPSURfU1RBTkRBTE9ORV9U
T09MQ0hBSU59LyR7QU5EUk9JRF9UT09MQ0hBSU5fTUFDSElORV9OQU1FfS9pbmNsdWRlL2MrKy8k
e0FORFJPSURfQ09NUElMRVJfVkVSU0lPTn0iICkKLSAgZW5kaWYoKQotICBpZiggQVJNRUFCSV9W
N0EgQU5EIEVYSVNUUyAiJHtBTkRST0lEX1NUTF9JTkNMVURFX0RJUlN9LyR7QU5EUk9JRF9UT09M
Q0hBSU5fTUFDSElORV9OQU1FfS8ke0NNQUtFX1NZU1RFTV9QUk9DRVNTT1J9L2JpdHMiICkKLSAg
IGxpc3QoIEFQUEVORCBBTkRST0lEX1NUTF9JTkNMVURFX0RJUlMgIiR7QU5EUk9JRF9TVExfSU5D
TFVERV9ESVJTfS8ke0FORFJPSURfVE9PTENIQUlOX01BQ0hJTkVfTkFNRX0vJHtDTUFLRV9TWVNU
RU1fUFJPQ0VTU09SfSIgKQotICBlbHNlaWYoIEFSTUVBQkkgQU5EIE5PVCBBTkRST0lEX0ZPUkNF
X0FSTV9CVUlMRCBBTkQgRVhJU1RTICIke0FORFJPSURfU1RMX0lOQ0xVREVfRElSU30vJHtBTkRS
T0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L3RodW1iL2JpdHMiICkKLSAgIGxpc3QoIEFQUEVO
RCBBTkRST0lEX1NUTF9JTkNMVURFX0RJUlMgIiR7QU5EUk9JRF9TVExfSU5DTFVERV9ESVJTfS8k
e0FORFJPSURfVE9PTENIQUlOX01BQ0hJTkVfTkFNRX0vdGh1bWIiICkKLSAgZWxzZSgpCi0gICBs
aXN0KCBBUFBFTkQgQU5EUk9JRF9TVExfSU5DTFVERV9ESVJTICIke0FORFJPSURfU1RMX0lOQ0xV
REVfRElSU30vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9IiApCi0gIGVuZGlmKCkK
LSAgIyBhbHdheXMgc2VhcmNoIHN0YXRpYyBHTlUgU1RMIHRvIGdldCB0aGUgbG9jYXRpb24gb2Yg
bGlic3VwYysrLmEKLSAgaWYoIEFSTUVBQklfVjdBIEFORCBOT1QgQU5EUk9JRF9GT1JDRV9BUk1f
QlVJTEQgQU5EIEVYSVNUUyAiJHtBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOfS8ke0FORFJP
SURfVE9PTENIQUlOX01BQ0hJTkVfTkFNRX0vbGliLyR7Q01BS0VfU1lTVEVNX1BST0NFU1NPUn0v
dGh1bWIvbGlic3RkYysrLmEiICkKLSAgIHNldCggX19saWJzdGwgIiR7QU5EUk9JRF9TVEFOREFM
T05FX1RPT0xDSEFJTn0vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L2xpYi8ke0NN
QUtFX1NZU1RFTV9QUk9DRVNTT1J9L3RodW1iIiApCi0gIGVsc2VpZiggQVJNRUFCSV9WN0EgQU5E
IEVYSVNUUyAiJHtBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOfS8ke0FORFJPSURfVE9PTENI
QUlOX01BQ0hJTkVfTkFNRX0vbGliLyR7Q01BS0VfU1lTVEVNX1BST0NFU1NPUn0vbGlic3RkYysr
LmEiICkKLSAgIHNldCggX19saWJzdGwgIiR7QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0v
JHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L2xpYi8ke0NNQUtFX1NZU1RFTV9QUk9D
RVNTT1J9IiApCi0gIGVsc2VpZiggQVJNRUFCSSBBTkQgTk9UIEFORFJPSURfRk9SQ0VfQVJNX0JV
SUxEIEFORCBFWElTVFMgIiR7QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0vJHtBTkRST0lE
X1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L2xpYi90aHVtYi9saWJzdGRjKysuYSIgKQotICAgc2V0
KCBfX2xpYnN0bCAiJHtBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOfS8ke0FORFJPSURfVE9P
TENIQUlOX01BQ0hJTkVfTkFNRX0vbGliL3RodW1iIiApCi0gIGVsc2VpZiggRVhJU1RTICIke0FO
RFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU59LyR7QU5EUk9JRF9UT09MQ0hBSU5fTUFDSElORV9O
QU1FfS9saWIvbGlic3RkYysrLmEiICkKLSAgIHNldCggX19saWJzdGwgIiR7QU5EUk9JRF9TVEFO
REFMT05FX1RPT0xDSEFJTn0vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L2xpYiIg
KQotICBlbmRpZigpCi0gIGlmKCBfX2xpYnN0bCApCi0gICBzZXQoIF9fbGlic3VwY3h4ICIke19f
bGlic3RsfS9saWJzdXBjKysuYSIgKQotICAgc2V0KCBfX2xpYnN0bCAgICAiJHtfX2xpYnN0bH0v
bGlic3RkYysrLmEiICkKLSAgZW5kaWYoKQotICBpZiggTk9UIEVYSVNUUyAiJHtfX2xpYnN1cGN4
eH0iICkKLSAgIG1lc3NhZ2UoIEZBVEFMX0VSUk9SICJUaGUgcmVxdWlyZWQgbGlic3Rkc3VwYysr
LmEgaXMgbWlzc2luZyBpbiB5b3VyIHN0YW5kYWxvbmUgdG9vbGNoYWluLgotIFVzdWFsbHkgaXQg
aGFwcGVucyBiZWNhdXNlIG9mIGJ1ZyBpbiBtYWtlLXN0YW5kYWxvbmUtdG9vbGNoYWluLnNoIHNj
cmlwdCBmcm9tIE5ESyByNywgcjdiIGFuZCByN2MuCi0gWW91IG5lZWQgdG8gZWl0aGVyIHVwZ3Jh
ZGUgdG8gbmV3ZXIgTkRLIG9yIG1hbnVhbGx5IGNvcHkKLSAgICAgJEFORFJPSURfTkRLL3NvdXJj
ZXMvY3h4LXN0bC9nbnUtbGlic3RkYysrL2xpYnMvJHtBTkRST0lEX05ES19BQklfTkFNRX0vbGli
c3VwYysrLmEKLSB0bwotICAgICAke19fbGlic3VwY3h4fQotICAgIiApCi0gIGVuZGlmKCkKLSAg
aWYoIEFORFJPSURfU1RMIFNUUkVRVUFMICJnbnVzdGxfc2hhcmVkIiApCi0gICBpZiggQVJNRUFC
SV9WN0EgQU5EIEVYSVNUUyAiJHtBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOfS8ke0FORFJP
SURfVE9PTENIQUlOX01BQ0hJTkVfTkFNRX0vbGliLyR7Q01BS0VfU1lTVEVNX1BST0NFU1NPUn0v
bGliZ251c3RsX3NoYXJlZC5zbyIgKQotICAgIHNldCggX19saWJzdGwgIiR7QU5EUk9JRF9TVEFO
REFMT05FX1RPT0xDSEFJTn0vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L2xpYi8k
e0NNQUtFX1NZU1RFTV9QUk9DRVNTT1J9L2xpYmdudXN0bF9zaGFyZWQuc28iICkKLSAgIGVsc2Vp
ZiggQVJNRUFCSSBBTkQgTk9UIEFORFJPSURfRk9SQ0VfQVJNX0JVSUxEIEFORCBFWElTVFMgIiR7
QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5F
X05BTUV9L2xpYi90aHVtYi9saWJnbnVzdGxfc2hhcmVkLnNvIiApCi0gICAgc2V0KCBfX2xpYnN0
bCAiJHtBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOfS8ke0FORFJPSURfVE9PTENIQUlOX01B
Q0hJTkVfTkFNRX0vbGliL3RodW1iL2xpYmdudXN0bF9zaGFyZWQuc28iICkKLSAgIGVsc2VpZigg
RVhJU1RTICIke0FORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU59LyR7QU5EUk9JRF9UT09MQ0hB
SU5fTUFDSElORV9OQU1FfS9saWIvbGliZ251c3RsX3NoYXJlZC5zbyIgKQotICAgIHNldCggX19s
aWJzdGwgIiR7QU5EUk9JRF9TVEFOREFMT05FX1RPT0xDSEFJTn0vJHtBTkRST0lEX1RPT0xDSEFJ
Tl9NQUNISU5FX05BTUV9L2xpYi9saWJnbnVzdGxfc2hhcmVkLnNvIiApCi0gICBlbmRpZigpCi0g
IGVuZGlmKCkKLSBlbmRpZigpCi1lbmRpZigpCi0KLSMgY2xhbmcKLWlmKCAiJHtBTkRST0lEX1RP
T0xDSEFJTl9OQU1FfSIgU1RSRVFVQUwgInN0YW5kYWxvbmUtY2xhbmciICkKLSBzZXQoIEFORFJP
SURfQ09NUElMRVJfSVNfQ0xBTkcgMSApCi0gZXhlY3V0ZV9wcm9jZXNzKCBDT01NQU5EICIke0FO
RFJPSURfQ0xBTkdfVE9PTENIQUlOX1JPT1R9L2Jpbi9jbGFuZyR7VE9PTF9PU19TVUZGSVh9IiAt
LXZlcnNpb24gT1VUUFVUX1ZBUklBQkxFIEFORFJPSURfQ0xBTkdfVkVSU0lPTiBPVVRQVVRfU1RS
SVBfVFJBSUxJTkdfV0hJVEVTUEFDRSApCi0gc3RyaW5nKCBSRUdFWCBNQVRDSCAiWzAtOV0rWy5d
WzAtOV0rIiBBTkRST0lEX0NMQU5HX1ZFUlNJT04gIiR7QU5EUk9JRF9DTEFOR19WRVJTSU9OfSIp
Ci1lbHNlaWYoICIke0FORFJPSURfVE9PTENIQUlOX05BTUV9IiBNQVRDSEVTICItY2xhbmczWy5d
WzAtOV0/JCIgKQotIHN0cmluZyggUkVHRVggTUFUQ0ggIjNbLl1bMC05XSQiIEFORFJPSURfQ0xB
TkdfVkVSU0lPTiAiJHtBTkRST0lEX1RPT0xDSEFJTl9OQU1FfSIpCi0gc3RyaW5nKCBSRUdFWCBS
RVBMQUNFICItY2xhbmcke0FORFJPSURfQ0xBTkdfVkVSU0lPTn0kIiAiLSR7QU5EUk9JRF9DT01Q
SUxFUl9WRVJTSU9OfSIgQU5EUk9JRF9HQ0NfVE9PTENIQUlOX05BTUUgIiR7QU5EUk9JRF9UT09M
Q0hBSU5fTkFNRX0iICkKLSBpZiggTk9UIEVYSVNUUyAiJHtBTkRST0lEX05ES19UT09MQ0hBSU5T
X1BBVEh9L2xsdm0tJHtBTkRST0lEX0NMQU5HX1ZFUlNJT059JHtBTkRST0lEX05ES19UT09MQ0hB
SU5TX1NVQlBBVEh9L2Jpbi9jbGFuZyR7VE9PTF9PU19TVUZGSVh9IiApCi0gIG1lc3NhZ2UoIEZB
VEFMX0VSUk9SICJDb3VsZCBub3QgZmluZCB0aGUgQ2xhbmcgY29tcGlsZXIgZHJpdmVyIiApCi0g
ZW5kaWYoKQotIHNldCggQU5EUk9JRF9DT01QSUxFUl9JU19DTEFORyAxICkKLSBzZXQoIEFORFJP
SURfQ0xBTkdfVE9PTENIQUlOX1JPT1QgIiR7QU5EUk9JRF9OREtfVE9PTENIQUlOU19QQVRIfS9s
bHZtLSR7QU5EUk9JRF9DTEFOR19WRVJTSU9OfSR7QU5EUk9JRF9OREtfVE9PTENIQUlOU19TVUJQ
QVRIfSIgKQotZWxzZSgpCi0gc2V0KCBBTkRST0lEX0dDQ19UT09MQ0hBSU5fTkFNRSAiJHtBTkRS
T0lEX1RPT0xDSEFJTl9OQU1FfSIgKQotIHVuc2V0KCBBTkRST0lEX0NPTVBJTEVSX0lTX0NMQU5H
IENBQ0hFICkKLWVuZGlmKCkKLQotc3RyaW5nKCBSRVBMQUNFICIuIiAiIiBfY2xhbmdfbmFtZSAi
Y2xhbmcke0FORFJPSURfQ0xBTkdfVkVSU0lPTn0iICkKLWlmKCBOT1QgRVhJU1RTICIke0FORFJP
SURfQ0xBTkdfVE9PTENIQUlOX1JPT1R9L2Jpbi8ke19jbGFuZ19uYW1lfSR7VE9PTF9PU19TVUZG
SVh9IiApCi0gc2V0KCBfY2xhbmdfbmFtZSAiY2xhbmciICkKLWVuZGlmKCkKLQotCi0jIHNldHVw
IHBhdGhzIGFuZCBTVEwgZm9yIE5ESwotaWYoIEJVSUxEX1dJVEhfQU5EUk9JRF9OREsgKQotIHNl
dCggQU5EUk9JRF9UT09MQ0hBSU5fUk9PVCAiJHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEh9
LyR7QU5EUk9JRF9HQ0NfVE9PTENIQUlOX05BTUV9JHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1NV
QlBBVEh9IiApCi0gc2V0KCBBTkRST0lEX1NZU1JPT1QgIiR7QU5EUk9JRF9OREt9L3BsYXRmb3Jt
cy9hbmRyb2lkLSR7QU5EUk9JRF9OQVRJVkVfQVBJX0xFVkVMfS9hcmNoLSR7QU5EUk9JRF9BUkNI
X05BTUV9IiApCi0KLSBpZiggQU5EUk9JRF9TVEwgU1RSRVFVQUwgIm5vbmUiICkKLSAgIyBkbyBu
b3RoaW5nCi0gZWxzZWlmKCBBTkRST0lEX1NUTCBTVFJFUVVBTCAic3lzdGVtIiApCi0gIHNldCgg
QU5EUk9JRF9SVFRJICAgICAgICAgICAgIE9GRiApCi0gIHNldCggQU5EUk9JRF9FWENFUFRJT05T
ICAgICAgIE9GRiApCi0gIHNldCggQU5EUk9JRF9TVExfSU5DTFVERV9ESVJTICIke0FORFJPSURf
TkRLfS9zb3VyY2VzL2N4eC1zdGwvc3lzdGVtL2luY2x1ZGUiICkKLSBlbHNlaWYoIEFORFJPSURf
U1RMIFNUUkVRVUFMICJzeXN0ZW1fcmUiICkKLSAgc2V0KCBBTkRST0lEX1JUVEkgICAgICAgICAg
ICAgT04gKQotICBzZXQoIEFORFJPSURfRVhDRVBUSU9OUyAgICAgICBPTiApCi0gIHNldCggQU5E
Uk9JRF9TVExfSU5DTFVERV9ESVJTICIke0FORFJPSURfTkRLfS9zb3VyY2VzL2N4eC1zdGwvc3lz
dGVtL2luY2x1ZGUiICkKLSBlbHNlaWYoIEFORFJPSURfU1RMIE1BVENIRVMgImdhYmkiICkKLSAg
aWYoIEFORFJPSURfTkRLX1JFTEVBU0VfTlVNIExFU1MgNzAwMCApICMgYmVmb3JlIHI3Ci0gICBt
ZXNzYWdlKCBGQVRBTF9FUlJPUiAiZ2FiaSsrIGlzIG5vdCBhdmFpbGFibGUgaW4geW91ciBOREsu
IFlvdSBoYXZlIHRvIHVwZ3JhZGUgdG8gTkRLIHI3IG9yIG5ld2VyIHRvIHVzZSBnYWJpKysuIikK
LSAgZW5kaWYoKQotICBzZXQoIEFORFJPSURfUlRUSSAgICAgICAgICAgICBPTiApCi0gIHNldCgg
QU5EUk9JRF9FWENFUFRJT05TICAgICAgIE9GRiApCi0gIHNldCggQU5EUk9JRF9TVExfSU5DTFVE
RV9ESVJTICIke0FORFJPSURfTkRLfS9zb3VyY2VzL2N4eC1zdGwvZ2FiaSsrL2luY2x1ZGUiICkK
LSAgc2V0KCBfX2xpYnN0bCAgICAgICAgICAgICAgICAgIiR7QU5EUk9JRF9OREt9L3NvdXJjZXMv
Y3h4LXN0bC9nYWJpKysvbGlicy8ke0FORFJPSURfTkRLX0FCSV9OQU1FfS9saWJnYWJpKytfc3Rh
dGljLmEiICkKLSBlbHNlaWYoIEFORFJPSURfU1RMIE1BVENIRVMgInN0bHBvcnQiICkKLSAgaWYo
IE5PVCBBTkRST0lEX05ES19SRUxFQVNFX05VTSBMRVNTIDgwMDQgKSAjIGJlZm9yZSByOGQKLSAg
IHNldCggQU5EUk9JRF9FWENFUFRJT05TICAgICAgIE9OICkKLSAgZWxzZSgpCi0gICBzZXQoIEFO
RFJPSURfRVhDRVBUSU9OUyAgICAgICBPRkYgKQotICBlbmRpZigpCi0gIGlmKCBBTkRST0lEX05E
S19SRUxFQVNFX05VTSBMRVNTIDcwMDAgKSAjIGJlZm9yZSByNwotICAgc2V0KCBBTkRST0lEX1JU
VEkgICAgICAgICAgICBPRkYgKQotICBlbHNlKCkKLSAgIHNldCggQU5EUk9JRF9SVFRJICAgICAg
ICAgICAgT04gKQotICBlbmRpZigpCi0gIHNldCggQU5EUk9JRF9TVExfSU5DTFVERV9ESVJTICIk
e0FORFJPSURfTkRLfS9zb3VyY2VzL2N4eC1zdGwvc3RscG9ydC9zdGxwb3J0IiApCi0gIHNldCgg
X19saWJzdGwgICAgICAgICAgICAgICAgICIke0FORFJPSURfTkRLfS9zb3VyY2VzL2N4eC1zdGwv
c3RscG9ydC9saWJzLyR7QU5EUk9JRF9OREtfQUJJX05BTUV9L2xpYnN0bHBvcnRfc3RhdGljLmEi
ICkKLSBlbHNlaWYoIEFORFJPSURfU1RMIE1BVENIRVMgImdudXN0bCIgKQotICBzZXQoIEFORFJP
SURfRVhDRVBUSU9OUyAgICAgICBPTiApCi0gIHNldCggQU5EUk9JRF9SVFRJICAgICAgICAgICAg
IE9OICkKLSAgaWYoIEVYSVNUUyAiJHtBTkRST0lEX05ES30vc291cmNlcy9jeHgtc3RsL2dudS1s
aWJzdGRjKysvJHtBTkRST0lEX0NPTVBJTEVSX1ZFUlNJT059IiApCi0gICBpZiggQVJNRUFCSV9W
N0EgQU5EIEFORFJPSURfQ09NUElMRVJfVkVSU0lPTiBWRVJTSU9OX0VRVUFMICI0LjciIEFORCBB
TkRST0lEX05ES19SRUxFQVNFIFNUUkVRVUFMICJyOGQiICkKLSAgICAjIGdudXN0bCBiaW5hcnkg
Zm9yIDQuNyBjb21waWxlciBpcyBidWdneSA6KAotICAgICMgVE9ETzogbG9vayBmb3IgcmlnaHQg
Zml4Ci0gICAgc2V0KCBfX2xpYnN0bCAgICAgICAgICAgICAgICAiJHtBTkRST0lEX05ES30vc291
cmNlcy9jeHgtc3RsL2dudS1saWJzdGRjKysvNC42IiApCi0gICBlbHNlKCkKLSAgICBzZXQoIF9f
bGlic3RsICAgICAgICAgICAgICAgICIke0FORFJPSURfTkRLfS9zb3VyY2VzL2N4eC1zdGwvZ251
LWxpYnN0ZGMrKy8ke0FORFJPSURfQ09NUElMRVJfVkVSU0lPTn0iICkKLSAgIGVuZGlmKCkKLSAg
ZWxzZSgpCi0gICBzZXQoIF9fbGlic3RsICAgICAgICAgICAgICAgICIke0FORFJPSURfTkRLfS9z
b3VyY2VzL2N4eC1zdGwvZ251LWxpYnN0ZGMrKyIgKQotICBlbmRpZigpCi0gIHNldCggQU5EUk9J
RF9TVExfSU5DTFVERV9ESVJTICIke19fbGlic3RsfS9pbmNsdWRlIiAiJHtfX2xpYnN0bH0vbGli
cy8ke0FORFJPSURfTkRLX0FCSV9OQU1FfS9pbmNsdWRlIiAiJHtfX2xpYnN0bH0vaW5jbHVkZS9i
YWNrd2FyZCIgKQotICBpZiggRVhJU1RTICIke19fbGlic3RsfS9saWJzLyR7QU5EUk9JRF9OREtf
QUJJX05BTUV9L2xpYmdudXN0bF9zdGF0aWMuYSIgKQotICAgc2V0KCBfX2xpYnN0bCAgICAgICAg
ICAgICAgICAiJHtfX2xpYnN0bH0vbGlicy8ke0FORFJPSURfTkRLX0FCSV9OQU1FfS9saWJnbnVz
dGxfc3RhdGljLmEiICkKLSAgZWxzZSgpCi0gICBzZXQoIF9fbGlic3RsICAgICAgICAgICAgICAg
ICIke19fbGlic3RsfS9saWJzLyR7QU5EUk9JRF9OREtfQUJJX05BTUV9L2xpYnN0ZGMrKy5hIiAp
Ci0gIGVuZGlmKCkKLSBlbHNlKCkKLSAgbWVzc2FnZSggRkFUQUxfRVJST1IgIlVua25vd24gcnVu
dGltZTogJHtBTkRST0lEX1NUTH0iICkKLSBlbmRpZigpCi0gIyBmaW5kIGxpYnN1cGMrKy5hIC0g
cnR0aSAmIGV4Y2VwdGlvbnMKLSBpZiggQU5EUk9JRF9TVEwgU1RSRVFVQUwgInN5c3RlbV9yZSIg
T1IgQU5EUk9JRF9TVEwgTUFUQ0hFUyAiZ251c3RsIiApCi0gIHNldCggX19saWJzdXBjeHggIiR7
QU5EUk9JRF9OREt9L3NvdXJjZXMvY3h4LXN0bC9nbnUtbGlic3RkYysrLyR7QU5EUk9JRF9DT01Q
SUxFUl9WRVJTSU9OfS9saWJzLyR7QU5EUk9JRF9OREtfQUJJX05BTUV9L2xpYnN1cGMrKy5hIiAp
ICMgcjhiIG9yIG5ld2VyCi0gIGlmKCBOT1QgRVhJU1RTICIke19fbGlic3VwY3h4fSIgKQotICAg
c2V0KCBfX2xpYnN1cGN4eCAiJHtBTkRST0lEX05ES30vc291cmNlcy9jeHgtc3RsL2dudS1saWJz
dGRjKysvbGlicy8ke0FORFJPSURfTkRLX0FCSV9OQU1FfS9saWJzdXBjKysuYSIgKSAjIHI3LXI4
Ci0gIGVuZGlmKCkKLSAgaWYoIE5PVCBFWElTVFMgIiR7X19saWJzdXBjeHh9IiApICMgYmVmb3Jl
IHI3Ci0gICBpZiggQVJNRUFCSV9WN0EgKQotICAgIGlmKCBBTkRST0lEX0ZPUkNFX0FSTV9CVUlM
RCApCi0gICAgIHNldCggX19saWJzdXBjeHggIiR7QU5EUk9JRF9UT09MQ0hBSU5fUk9PVH0vJHtB
TkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L2xpYi8ke0NNQUtFX1NZU1RFTV9QUk9DRVNT
T1J9L2xpYnN1cGMrKy5hIiApCi0gICAgZWxzZSgpCi0gICAgIHNldCggX19saWJzdXBjeHggIiR7
QU5EUk9JRF9UT09MQ0hBSU5fUk9PVH0vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9
L2xpYi8ke0NNQUtFX1NZU1RFTV9QUk9DRVNTT1J9L3RodW1iL2xpYnN1cGMrKy5hIiApCi0gICAg
ZW5kaWYoKQotICAgZWxzZWlmKCBBUk1FQUJJIEFORCBOT1QgQU5EUk9JRF9GT1JDRV9BUk1fQlVJ
TEQgKQotICAgIHNldCggX19saWJzdXBjeHggIiR7QU5EUk9JRF9UT09MQ0hBSU5fUk9PVH0vJHtB
TkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9L2xpYi90aHVtYi9saWJzdXBjKysuYSIgKQot
ICAgZWxzZSgpCi0gICAgc2V0KCBfX2xpYnN1cGN4eCAiJHtBTkRST0lEX1RPT0xDSEFJTl9ST09U
fS8ke0FORFJPSURfVE9PTENIQUlOX01BQ0hJTkVfTkFNRX0vbGliL2xpYnN1cGMrKy5hIiApCi0g
ICBlbmRpZigpCi0gIGVuZGlmKCkKLSAgaWYoIE5PVCBFWElTVFMgIiR7X19saWJzdXBjeHh9IikK
LSAgIG1lc3NhZ2UoIEVSUk9SICJDb3VsZCBub3QgZmluZCBsaWJzdXBjKysuYSBmb3IgYSBjaG9z
ZW4gcGxhdGZvcm0uIEVpdGhlciB5b3VyIE5ESyBpcyBub3Qgc3VwcG9ydGVkIG9yIGlzIGJyb2tl
bi4iKQotICBlbmRpZigpCi0gZW5kaWYoKQotZW5kaWYoKQotCi0KLSMgY2FzZSBvZiBzaGFyZWQg
U1RMIGxpbmthZ2UKLWlmKCBBTkRST0lEX1NUTCBNQVRDSEVTICJzaGFyZWQiIEFORCBERUZJTkVE
IF9fbGlic3RsICkKLSBzdHJpbmcoIFJFUExBQ0UgIl9zdGF0aWMuYSIgIl9zaGFyZWQuc28iIF9f
bGlic3RsICIke19fbGlic3RsfSIgKQotICMgVE9ETzogY2hlY2sgaWYgLnNvIGZpbGUgZXhpc3Rz
IGJlZm9yZSB0aGUgcmVuYW1pbmcKLWVuZGlmKCkKLQotCi0jIGNjYWNoZSBzdXBwb3J0Ci1fX0lO
SVRfVkFSSUFCTEUoIF9uZGtfY2NhY2hlIE5ES19DQ0FDSEUgRU5WX05ES19DQ0FDSEUgKQotaWYo
IF9uZGtfY2NhY2hlICkKLSBpZiggREVGSU5FRCBOREtfQ0NBQ0hFIEFORCBOT1QgRVhJU1RTIE5E
S19DQ0FDSEUgKQotICB1bnNldCggTkRLX0NDQUNIRSBDQUNIRSApCi0gZW5kaWYoKQotIGZpbmRf
cHJvZ3JhbSggTkRLX0NDQUNIRSAiJHtfbmRrX2NjYWNoZX0iIERPQyAiVGhlIHBhdGggdG8gY2Nh
Y2hlIGJpbmFyeSIpCi1lbHNlKCkKLSB1bnNldCggTkRLX0NDQUNIRSBDQUNIRSApCi1lbmRpZigp
Ci11bnNldCggX25ka19jY2FjaGUgKQotCi0KLSMgc2V0dXAgdGhlIGNyb3NzLWNvbXBpbGVyCi1p
ZiggTk9UIENNQUtFX0NfQ09NUElMRVIgKQotIGlmKCBOREtfQ0NBQ0hFIEFORCBOT1QgQU5EUk9J
RF9TWVNST09UIE1BVENIRVMgIlsgO1wiXSIgKQotICBzZXQoIENNQUtFX0NfQ09NUElMRVIgICAi
JHtOREtfQ0NBQ0hFfSIgQ0FDSEUgUEFUSCAiY2NhY2hlIGFzIEMgY29tcGlsZXIiICkKLSAgc2V0
KCBDTUFLRV9DWFhfQ09NUElMRVIgIiR7TkRLX0NDQUNIRX0iIENBQ0hFIFBBVEggImNjYWNoZSBh
cyBDKysgY29tcGlsZXIiICkKLSAgaWYoIEFORFJPSURfQ09NUElMRVJfSVNfQ0xBTkcgKQotICAg
c2V0KCBDTUFLRV9DX0NPTVBJTEVSX0FSRzEgICAiJHtBTkRST0lEX0NMQU5HX1RPT0xDSEFJTl9S
T09UfS9iaW4vJHtfY2xhbmdfbmFtZX0ke1RPT0xfT1NfU1VGRklYfSIgICBDQUNIRSBQQVRIICJD
IGNvbXBpbGVyIikKLSAgIHNldCggQ01BS0VfQ1hYX0NPTVBJTEVSX0FSRzEgIiR7QU5EUk9JRF9D
TEFOR19UT09MQ0hBSU5fUk9PVH0vYmluLyR7X2NsYW5nX25hbWV9Kyske1RPT0xfT1NfU1VGRklY
fSIgQ0FDSEUgUEFUSCAiQysrIGNvbXBpbGVyIikKLSAgZWxzZSgpCi0gICBzZXQoIENNQUtFX0Nf
Q09NUElMRVJfQVJHMSAgICIke0FORFJPSURfVE9PTENIQUlOX1JPT1R9L2Jpbi8ke0FORFJPSURf
VE9PTENIQUlOX01BQ0hJTkVfTkFNRX0tZ2NjJHtUT09MX09TX1NVRkZJWH0iIENBQ0hFIFBBVEgg
IkMgY29tcGlsZXIiKQotICAgc2V0KCBDTUFLRV9DWFhfQ09NUElMRVJfQVJHMSAiJHtBTkRST0lE
X1RPT0xDSEFJTl9ST09UfS9iaW4vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9LWcr
KyR7VE9PTF9PU19TVUZGSVh9IiBDQUNIRSBQQVRIICJDKysgY29tcGlsZXIiKQotICBlbmRpZigp
Ci0gZWxzZSgpCi0gIGlmKCBBTkRST0lEX0NPTVBJTEVSX0lTX0NMQU5HICkKLSAgIHNldCggQ01B
S0VfQ19DT01QSUxFUiAgICIke0FORFJPSURfQ0xBTkdfVE9PTENIQUlOX1JPT1R9L2Jpbi8ke19j
bGFuZ19uYW1lfSR7VE9PTF9PU19TVUZGSVh9IiAgIENBQ0hFIFBBVEggIkMgY29tcGlsZXIiKQot
ICAgc2V0KCBDTUFLRV9DWFhfQ09NUElMRVIgIiR7QU5EUk9JRF9DTEFOR19UT09MQ0hBSU5fUk9P
VH0vYmluLyR7X2NsYW5nX25hbWV9Kyske1RPT0xfT1NfU1VGRklYfSIgQ0FDSEUgUEFUSCAiQysr
IGNvbXBpbGVyIikKLSAgZWxzZSgpCi0gICBzZXQoIENNQUtFX0NfQ09NUElMRVIgICAiJHtBTkRS
T0lEX1RPT0xDSEFJTl9ST09UfS9iaW4vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9
LWdjYyR7VE9PTF9PU19TVUZGSVh9IiAgICBDQUNIRSBQQVRIICJDIGNvbXBpbGVyIiApCi0gICBz
ZXQoIENNQUtFX0NYWF9DT01QSUxFUiAiJHtBTkRST0lEX1RPT0xDSEFJTl9ST09UfS9iaW4vJHtB
TkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9LWcrKyR7VE9PTF9PU19TVUZGSVh9IiAgICBD
QUNIRSBQQVRIICJDKysgY29tcGlsZXIiICkKLSAgZW5kaWYoKQotIGVuZGlmKCkKLSBzZXQoIENN
QUtFX0FTTV9DT01QSUxFUiAiJHtBTkRST0lEX1RPT0xDSEFJTl9ST09UfS9iaW4vJHtBTkRST0lE
X1RPT0xDSEFJTl9NQUNISU5FX05BTUV9LWdjYyR7VE9PTF9PU19TVUZGSVh9IiAgICAgQ0FDSEUg
UEFUSCAiYXNzZW1ibGVyIiApCi0gc2V0KCBDTUFLRV9TVFJJUCAgICAgICAgIiR7QU5EUk9JRF9U
T09MQ0hBSU5fUk9PVH0vYmluLyR7QU5EUk9JRF9UT09MQ0hBSU5fTUFDSElORV9OQU1FfS1zdHJp
cCR7VE9PTF9PU19TVUZGSVh9IiAgIENBQ0hFIFBBVEggInN0cmlwIiApCi0gaWYoIEVYSVNUUyAi
JHtBTkRST0lEX1RPT0xDSEFJTl9ST09UfS9iaW4vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5F
X05BTUV9LWdjYy1hciR7VE9PTF9PU19TVUZGSVh9IiApCi0gICMgVXNlIGdjYy1hciBpZiB3ZSBo
YXZlIGl0IGZvciBiZXR0ZXIgTFRPIHN1cHBvcnQuCi0gIHNldCggQ01BS0VfQVIgICAgICAgICAg
ICIke0FORFJPSURfVE9PTENIQUlOX1JPT1R9L2Jpbi8ke0FORFJPSURfVE9PTENIQUlOX01BQ0hJ
TkVfTkFNRX0tZ2NjLWFyJHtUT09MX09TX1NVRkZJWH0iICAgICAgQ0FDSEUgUEFUSCAiYXJjaGl2
ZSIgKQotIGVsc2UoKQotICBzZXQoIENNQUtFX0FSICAgICAgICAgICAiJHtBTkRST0lEX1RPT0xD
SEFJTl9ST09UfS9iaW4vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9LWFyJHtUT09M
X09TX1NVRkZJWH0iICAgICAgQ0FDSEUgUEFUSCAiYXJjaGl2ZSIgKQotIGVuZGlmKCkKLSBzZXQo
IENNQUtFX0xJTktFUiAgICAgICAiJHtBTkRST0lEX1RPT0xDSEFJTl9ST09UfS9iaW4vJHtBTkRS
T0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9LWxkJHtUT09MX09TX1NVRkZJWH0iICAgICAgQ0FD
SEUgUEFUSCAibGlua2VyIiApCi0gc2V0KCBDTUFLRV9OTSAgICAgICAgICAgIiR7QU5EUk9JRF9U
T09MQ0hBSU5fUk9PVH0vYmluLyR7QU5EUk9JRF9UT09MQ0hBSU5fTUFDSElORV9OQU1FfS1ubSR7
VE9PTF9PU19TVUZGSVh9IiAgICAgIENBQ0hFIFBBVEggIm5tIiApCi0gc2V0KCBDTUFLRV9PQkpD
T1BZICAgICAgIiR7QU5EUk9JRF9UT09MQ0hBSU5fUk9PVH0vYmluLyR7QU5EUk9JRF9UT09MQ0hB
SU5fTUFDSElORV9OQU1FfS1vYmpjb3B5JHtUT09MX09TX1NVRkZJWH0iIENBQ0hFIFBBVEggIm9i
amNvcHkiICkKLSBzZXQoIENNQUtFX09CSkRVTVAgICAgICAiJHtBTkRST0lEX1RPT0xDSEFJTl9S
T09UfS9iaW4vJHtBTkRST0lEX1RPT0xDSEFJTl9NQUNISU5FX05BTUV9LW9iamR1bXAke1RPT0xf
T1NfU1VGRklYfSIgQ0FDSEUgUEFUSCAib2JqZHVtcCIgKQotIHNldCggQ01BS0VfUkFOTElCICAg
ICAgICIke0FORFJPSURfVE9PTENIQUlOX1JPT1R9L2Jpbi8ke0FORFJPSURfVE9PTENIQUlOX01B
Q0hJTkVfTkFNRX0tcmFubGliJHtUT09MX09TX1NVRkZJWH0iICBDQUNIRSBQQVRIICJyYW5saWIi
ICkKLWVuZGlmKCkKLQotc2V0KCBfQ01BS0VfVE9PTENIQUlOX1BSRUZJWCAiJHtBTkRST0lEX1RP
T0xDSEFJTl9NQUNISU5FX05BTUV9LSIgKQotaWYoIENNQUtFX1ZFUlNJT04gVkVSU0lPTl9MRVNT
IDIuOC41ICkKLSBzZXQoIENNQUtFX0FTTV9DT01QSUxFUl9BUkcxICItYyIgKQotZW5kaWYoKQot
aWYoIEFQUExFICkKLSBmaW5kX3Byb2dyYW0oIENNQUtFX0lOU1RBTExfTkFNRV9UT09MIE5BTUVT
IGluc3RhbGxfbmFtZV90b29sICkKLSBpZiggTk9UIENNQUtFX0lOU1RBTExfTkFNRV9UT09MICkK
LSAgbWVzc2FnZSggRkFUQUxfRVJST1IgIkNvdWxkIG5vdCBmaW5kIGluc3RhbGxfbmFtZV90b29s
LCBwbGVhc2UgY2hlY2sgeW91ciBpbnN0YWxsYXRpb24uIiApCi0gZW5kaWYoKQotIG1hcmtfYXNf
YWR2YW5jZWQoIENNQUtFX0lOU1RBTExfTkFNRV9UT09MICkKLWVuZGlmKCkKLQotIyBGb3JjZSBz
ZXQgY29tcGlsZXJzIGJlY2F1c2Ugc3RhbmRhcmQgaWRlbnRpZmljYXRpb24gd29ya3MgYmFkbHkg
Zm9yIHVzCi1pbmNsdWRlKCBDTWFrZUZvcmNlQ29tcGlsZXIgKQotQ01BS0VfRk9SQ0VfQ19DT01Q
SUxFUiggIiR7Q01BS0VfQ19DT01QSUxFUn0iIEdOVSApCi1pZiggQU5EUk9JRF9DT01QSUxFUl9J
U19DTEFORyApCi0gc2V0KCBDTUFLRV9DX0NPTVBJTEVSX0lEIENsYW5nICkKLWVuZGlmKCkKLXNl
dCggQ01BS0VfQ19QTEFURk9STV9JRCBMaW51eCApCi1pZiggWDg2XzY0IE9SIE1JUFM2NCBPUiBB
Uk02NF9WOEEgKQotIHNldCggQ01BS0VfQ19TSVpFT0ZfREFUQV9QVFIgOCApCi1lbHNlKCkKLSBz
ZXQoIENNQUtFX0NfU0laRU9GX0RBVEFfUFRSIDQgKQotZW5kaWYoKQotc2V0KCBDTUFLRV9DX0hB
U19JU1lTUk9PVCAxICkKLXNldCggQ01BS0VfQ19DT01QSUxFUl9BQkkgRUxGICkKLUNNQUtFX0ZP
UkNFX0NYWF9DT01QSUxFUiggIiR7Q01BS0VfQ1hYX0NPTVBJTEVSfSIgR05VICkKLWlmKCBBTkRS
T0lEX0NPTVBJTEVSX0lTX0NMQU5HICkKLSBzZXQoIENNQUtFX0NYWF9DT01QSUxFUl9JRCBDbGFu
ZykKLWVuZGlmKCkKLXNldCggQ01BS0VfQ1hYX1BMQVRGT1JNX0lEIExpbnV4ICkKLXNldCggQ01B
S0VfQ1hYX1NJWkVPRl9EQVRBX1BUUiAke0NNQUtFX0NfU0laRU9GX0RBVEFfUFRSfSApCi1zZXQo
IENNQUtFX0NYWF9IQVNfSVNZU1JPT1QgMSApCi1zZXQoIENNQUtFX0NYWF9DT01QSUxFUl9BQkkg
RUxGICkKLXNldCggQ01BS0VfQ1hYX1NPVVJDRV9GSUxFX0VYVEVOU0lPTlMgY2MgY3AgY3h4IGNw
cCBDUFAgYysrIEMgKQotIyBmb3JjZSBBU00gY29tcGlsZXIgKHJlcXVpcmVkIGZvciBDTWFrZSA8
IDIuOC41KQotc2V0KCBDTUFLRV9BU01fQ09NUElMRVJfSURfUlVOIFRSVUUgKQotc2V0KCBDTUFL
RV9BU01fQ09NUElMRVJfSUQgR05VICkKLXNldCggQ01BS0VfQVNNX0NPTVBJTEVSX1dPUktTIFRS
VUUgKQotc2V0KCBDTUFLRV9BU01fQ09NUElMRVJfRk9SQ0VEIFRSVUUgKQotc2V0KCBDTUFLRV9D
T01QSUxFUl9JU19HTlVBU00gMSkKLXNldCggQ01BS0VfQVNNX1NPVVJDRV9GSUxFX0VYVEVOU0lP
TlMgcyBTIGFzbSApCi0KLWZvcmVhY2goIGxhbmcgQyBDWFggQVNNICkKLSBpZiggQU5EUk9JRF9D
T01QSUxFUl9JU19DTEFORyApCi0gIHNldCggQ01BS0VfJHtsYW5nfV9DT01QSUxFUl9WRVJTSU9O
ICR7QU5EUk9JRF9DTEFOR19WRVJTSU9OfSApCi0gZWxzZSgpCi0gIHNldCggQ01BS0VfJHtsYW5n
fV9DT01QSUxFUl9WRVJTSU9OICR7QU5EUk9JRF9DT01QSUxFUl9WRVJTSU9OfSApCi0gZW5kaWYo
KQotZW5kZm9yZWFjaCgpCi0KLSMgZmxhZ3MgYW5kIGRlZmluaXRpb25zCi1yZW1vdmVfZGVmaW5p
dGlvbnMoIC1EQU5EUk9JRCApCi1hZGRfZGVmaW5pdGlvbnMoIC1EQU5EUk9JRCApCi0KLWlmKCBB
TkRST0lEX1NZU1JPT1QgTUFUQ0hFUyAiWyA7XCJdIiApCi0gaWYoIENNQUtFX0hPU1RfV0lOMzIg
KQotICAjIHRyeSB0byBjb252ZXJ0IHBhdGggdG8gOC4zIGZvcm0KLSAgZmlsZSggV1JJVEUgIiR7
Q01BS0VfQklOQVJZX0RJUn0ke0NNQUtFX0ZJTEVTX0RJUkVDVE9SWX0vY3Z0ODMuY21kIiAiQGVj
aG8gJX5zMSIgKQotICBleGVjdXRlX3Byb2Nlc3MoIENPTU1BTkQgIiRFTlZ7Q29tU3BlY30iIC9j
ICIke0NNQUtFX0JJTkFSWV9ESVJ9JHtDTUFLRV9GSUxFU19ESVJFQ1RPUll9L2N2dDgzLmNtZCIg
IiR7QU5EUk9JRF9TWVNST09UfSIKLSAgICAgICAgICAgICAgICAgICBPVVRQVVRfVkFSSUFCTEUg
X19wYXRoIE9VVFBVVF9TVFJJUF9UUkFJTElOR19XSElURVNQQUNFCi0gICAgICAgICAgICAgICAg
ICAgUkVTVUxUX1ZBUklBQkxFIF9fcmVzdWx0IEVSUk9SX1FVSUVUICkKLSAgaWYoIF9fcmVzdWx0
IEVRVUFMIDAgKQotICAgZmlsZSggVE9fQ01BS0VfUEFUSCAiJHtfX3BhdGh9IiBBTkRST0lEX1NZ
U1JPT1QgKQotICAgc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiLS1zeXNyb290PSR7QU5EUk9JRF9T
WVNST09UfSIgKQotICBlbHNlKCkKLSAgIHNldCggQU5EUk9JRF9DWFhfRkxBR1MgIi0tc3lzcm9v
dD1cIiR7QU5EUk9JRF9TWVNST09UfVwiIiApCi0gIGVuZGlmKCkKLSBlbHNlKCkKLSAgc2V0KCBB
TkRST0lEX0NYWF9GTEFHUyAiJy0tc3lzcm9vdD0ke0FORFJPSURfU1lTUk9PVH0nIiApCi0gZW5k
aWYoKQotIGlmKCBOT1QgX0NNQUtFX0lOX1RSWV9DT01QSUxFICkKLSAgIyBxdW90ZXMgY2FuIGJy
ZWFrIHRyeV9jb21waWxlIGFuZCBjb21waWxlciBpZGVudGlmaWNhdGlvbgotICBtZXNzYWdlKFdB
Uk5JTkcgIlBhdGggdG8geW91ciBBbmRyb2lkIE5ESyAob3IgdG9vbGNoYWluKSBoYXMgbm9uLWFs
cGhhbnVtZXJpYyBzeW1ib2xzLlxuVGhlIGJ1aWxkIG1pZ2h0IGJlIGJyb2tlbi5cbiIpCi0gZW5k
aWYoKQotZWxzZSgpCi0gc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiLS1zeXNyb290PSR7QU5EUk9J
RF9TWVNST09UfSIgKQotZW5kaWYoKQotCi0jIE5ESyBmbGFncwotaWYgKEFSTTY0X1Y4QSApCi0g
c2V0KCBBTkRST0lEX0NYWF9GTEFHUyAgICAgICAgICIke0FORFJPSURfQ1hYX0ZMQUdTfSAtZnVu
d2luZC10YWJsZXMiICkKLSBzZXQoIEFORFJPSURfQ1hYX0ZMQUdTX1JFTEVBU0UgIi1mb21pdC1m
cmFtZS1wb2ludGVyIC1mc3RyaWN0LWFsaWFzaW5nIiApCi0gc2V0KCBBTkRST0lEX0NYWF9GTEFH
U19ERUJVRyAgICItZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtZm5vLXN0cmljdC1hbGlhc2luZyIg
KQotIGlmKCBOT1QgQU5EUk9JRF9DT01QSUxFUl9JU19DTEFORyApCi0gIHNldCggQU5EUk9JRF9D
WFhfRkxBR1NfUkVMRUFTRSAiJHtBTkRST0lEX0NYWF9GTEFHU19SRUxFQVNFfSAtZnVuc3dpdGNo
LWxvb3BzIC1maW5saW5lLWxpbWl0PTMwMCIgKQotIGVuZGlmKCkKLWVsc2VpZiggQVJNRUFCSSBP
UiBBUk1FQUJJX1Y3QSkKLSBzZXQoIEFORFJPSURfQ1hYX0ZMQUdTICIke0FORFJPSURfQ1hYX0ZM
QUdTfSAtZnVud2luZC10YWJsZXMiICkKLSBpZiggTk9UIEFORFJPSURfRk9SQ0VfQVJNX0JVSUxE
IEFORCBOT1QgQVJNRUFCSV9WNiApCi0gIHNldCggQU5EUk9JRF9DWFhfRkxBR1NfUkVMRUFTRSAi
LW10aHVtYiAtZm9taXQtZnJhbWUtcG9pbnRlciAtZm5vLXN0cmljdC1hbGlhc2luZyIgKQotICBz
ZXQoIEFORFJPSURfQ1hYX0ZMQUdTX0RFQlVHICAgIi1tYXJtIC1mbm8tb21pdC1mcmFtZS1wb2lu
dGVyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIiApCi0gIGlmKCBOT1QgQU5EUk9JRF9DT01QSUxFUl9J
U19DTEFORyApCi0gICBzZXQoIEFORFJPSURfQ1hYX0ZMQUdTICIke0FORFJPSURfQ1hYX0ZMQUdT
fSAtZmlubGluZS1saW1pdD02NCIgKQotICBlbmRpZigpCi0gZWxzZSgpCi0gICMgYWx3YXlzIGNv
bXBpbGUgQVJNRUFCSV9WNiBpbiBhcm0gbW9kZTsgb3RoZXJ3aXNlIHRoZXJlIGlzIG5vIGRpZmZl
cmVuY2UgZnJvbSBBUk1FQUJJCi0gIHNldCggQU5EUk9JRF9DWFhfRkxBR1NfUkVMRUFTRSAiLW1h
cm0gLWZvbWl0LWZyYW1lLXBvaW50ZXIgLWZzdHJpY3QtYWxpYXNpbmciICkKLSAgc2V0KCBBTkRS
T0lEX0NYWF9GTEFHU19ERUJVRyAgICItbWFybSAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtZm5v
LXN0cmljdC1hbGlhc2luZyIgKQotICBpZiggTk9UIEFORFJPSURfQ09NUElMRVJfSVNfQ0xBTkcg
KQotICAgc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiJHtBTkRST0lEX0NYWF9GTEFHU30gLWZ1bnN3
aXRjaC1sb29wcyAtZmlubGluZS1saW1pdD0zMDAiICkKLSAgZW5kaWYoKQotIGVuZGlmKCkKLWVs
c2VpZiggWDg2IE9SIFg4Nl82NCApCi0gc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiJHtBTkRST0lE
X0NYWF9GTEFHU30gLWZ1bndpbmQtdGFibGVzIiApCi0gaWYoIE5PVCBBTkRST0lEX0NPTVBJTEVS
X0lTX0NMQU5HICkKLSAgc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiJHtBTkRST0lEX0NYWF9GTEFH
U30gLWZ1bnN3aXRjaC1sb29wcyAtZmlubGluZS1saW1pdD0zMDAiICkKLSBlbmRpZigpCi0gc2V0
KCBBTkRST0lEX0NYWF9GTEFHU19SRUxFQVNFICItZm9taXQtZnJhbWUtcG9pbnRlciAtZnN0cmlj
dC1hbGlhc2luZyIgKQotIHNldCggQU5EUk9JRF9DWFhfRkxBR1NfREVCVUcgICAiLWZuby1vbWl0
LWZyYW1lLXBvaW50ZXIgLWZuby1zdHJpY3QtYWxpYXNpbmciICkKLWVsc2VpZiggTUlQUyBPUiBN
SVBTNjQgKQotIHNldCggQU5EUk9JRF9DWFhfRkxBR1MgICAgICAgICAiJHtBTkRST0lEX0NYWF9G
TEFHU30gLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZpbmxpbmUtZnVuY3Rpb25zIC1mdW53aW5kLXRh
YmxlcyAtZm1lc3NhZ2UtbGVuZ3RoPTAiICkKLSBzZXQoIEFORFJPSURfQ1hYX0ZMQUdTX1JFTEVB
U0UgIi1mb21pdC1mcmFtZS1wb2ludGVyIiApCi0gc2V0KCBBTkRST0lEX0NYWF9GTEFHU19ERUJV
RyAgICItZm5vLW9taXQtZnJhbWUtcG9pbnRlciIgKQotIGlmKCBOT1QgQU5EUk9JRF9DT01QSUxF
Ul9JU19DTEFORyApCi0gIHNldCggQU5EUk9JRF9DWFhfRkxBR1MgIiR7QU5EUk9JRF9DWFhfRkxB
R1N9IC1mbm8taW5saW5lLWZ1bmN0aW9ucy1jYWxsZWQtb25jZSAtZmdjc2UtYWZ0ZXItcmVsb2Fk
IC1mcmVydW4tY3NlLWFmdGVyLWxvb3AgLWZyZW5hbWUtcmVnaXN0ZXJzIiApCi0gIHNldCggQU5E
Uk9JRF9DWFhfRkxBR1NfUkVMRUFTRSAiJHtBTkRST0lEX0NYWF9GTEFHU19SRUxFQVNFfSAtZnVu
c3dpdGNoLWxvb3BzIC1maW5saW5lLWxpbWl0PTMwMCIgKQotIGVuZGlmKCkKLWVsc2VpZigpCi0g
c2V0KCBBTkRST0lEX0NYWF9GTEFHU19SRUxFQVNFICIiICkKLSBzZXQoIEFORFJPSURfQ1hYX0ZM
QUdTX0RFQlVHICAgIiIgKQotZW5kaWYoKQotCi1zZXQoIEFORFJPSURfQ1hYX0ZMQUdTICIke0FO
RFJPSURfQ1hYX0ZMQUdTfSAtZnNpZ25lZC1jaGFyIiApICMgZ29vZC9uZWNlc3Nhcnkgd2hlbiBw
b3J0aW5nIGRlc2t0b3AgbGlicmFyaWVzCi0KLWlmKCBOT1QgWDg2IEFORCBOT1QgQU5EUk9JRF9D
T01QSUxFUl9JU19DTEFORyApCi0gc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiLVduby1wc2FiaSAk
e0FORFJPSURfQ1hYX0ZMQUdTfSIgKQotZW5kaWYoKQotCi1pZiggTk9UIEFORFJPSURfQ09NUElM
RVJfVkVSU0lPTiBWRVJTSU9OX0xFU1MgIjQuNiIgKQotIHNldCggQU5EUk9JRF9DWFhfRkxBR1Mg
IiR7QU5EUk9JRF9DWFhfRkxBR1N9IC1uby1jYW5vbmljYWwtcHJlZml4ZXMiICkgIyBzZWUgaHR0
cHM6Ly9hbmRyb2lkLXJldmlldy5nb29nbGVzb3VyY2UuY29tLyMvYy80NzU2NC8KLWVuZGlmKCkK
LQotIyBBQkktc3BlY2lmaWMgZmxhZ3MKLWlmKCBBUk1FQUJJX1Y3QSApCi0gc2V0KCBBTkRST0lE
X0NYWF9GTEFHUyAiJHtBTkRST0lEX0NYWF9GTEFHU30gLW1hcmNoPWFybXY3LWEgLW1mbG9hdC1h
Ymk9c29mdGZwIiApCi0gaWYoIE5FT04gKQotICBzZXQoIEFORFJPSURfQ1hYX0ZMQUdTICIke0FO
RFJPSURfQ1hYX0ZMQUdTfSAtbWZwdT1uZW9uIiApCi0gZWxzZWlmKCBWRlBWMyApCi0gIHNldCgg
QU5EUk9JRF9DWFhfRkxBR1MgIiR7QU5EUk9JRF9DWFhfRkxBR1N9IC1tZnB1PXZmcHYzIiApCi0g
ZWxzZSgpCi0gIHNldCggQU5EUk9JRF9DWFhfRkxBR1MgIiR7QU5EUk9JRF9DWFhfRkxBR1N9IC1t
ZnB1PXZmcHYzLWQxNiIgKQotIGVuZGlmKCkKLWVsc2VpZiggQVJNRUFCSV9WNiApCi0gc2V0KCBB
TkRST0lEX0NYWF9GTEFHUyAiJHtBTkRST0lEX0NYWF9GTEFHU30gLW1hcmNoPWFybXY2IC1tZmxv
YXQtYWJpPXNvZnRmcCAtbWZwdT12ZnAiICkgIyB2ZnAgPT0gdmZwdjIKLWVsc2VpZiggQVJNRUFC
SSApCi0gc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiJHtBTkRST0lEX0NYWF9GTEFHU30gLW1hcmNo
PWFybXY1dGUgLW10dW5lPXhzY2FsZSAtbXNvZnQtZmxvYXQiICkKLWVuZGlmKCkKLQotaWYoIEFO
RFJPSURfU1RMIE1BVENIRVMgImdudXN0bCIgQU5EIChFWElTVFMgIiR7X19saWJzdGx9IiBPUiBF
WElTVFMgIiR7X19saWJzdXBjeHh9IikgKQotIHNldCggQ01BS0VfQ1hYX0NSRUFURV9TSEFSRURf
TElCUkFSWSAiPENNQUtFX0NfQ09NUElMRVI+IDxDTUFLRV9TSEFSRURfTElCUkFSWV9DWFhfRkxB
R1M+IDxMQU5HVUFHRV9DT01QSUxFX0ZMQUdTPiA8TElOS19GTEFHUz4gPENNQUtFX1NIQVJFRF9M
SUJSQVJZX0NSRUFURV9DWFhfRkxBR1M+IDxDTUFLRV9TSEFSRURfTElCUkFSWV9TT05BTUVfQ1hY
X0ZMQUc+PFRBUkdFVF9TT05BTUU+IC1vIDxUQVJHRVQ+IDxPQkpFQ1RTPiA8TElOS19MSUJSQVJJ
RVM+IiApCi0gc2V0KCBDTUFLRV9DWFhfQ1JFQVRFX1NIQVJFRF9NT0RVTEUgICI8Q01BS0VfQ19D
T01QSUxFUj4gPENNQUtFX1NIQVJFRF9MSUJSQVJZX0NYWF9GTEFHUz4gPExBTkdVQUdFX0NPTVBJ
TEVfRkxBR1M+IDxMSU5LX0ZMQUdTPiA8Q01BS0VfU0hBUkVEX0xJQlJBUllfQ1JFQVRFX0NYWF9G
TEFHUz4gPENNQUtFX1NIQVJFRF9MSUJSQVJZX1NPTkFNRV9DWFhfRkxBRz48VEFSR0VUX1NPTkFN
RT4gLW8gPFRBUkdFVD4gPE9CSkVDVFM+IDxMSU5LX0xJQlJBUklFUz4iICkKLSBzZXQoIENNQUtF
X0NYWF9MSU5LX0VYRUNVVEFCTEUgICAgICAgIjxDTUFLRV9DX0NPTVBJTEVSPiA8RkxBR1M+IDxD
TUFLRV9DWFhfTElOS19GTEFHUz4gPExJTktfRkxBR1M+IDxPQkpFQ1RTPiAtbyA8VEFSR0VUPiA8
TElOS19MSUJSQVJJRVM+IiApCi1lbHNlKCkKLSBzZXQoIENNQUtFX0NYWF9DUkVBVEVfU0hBUkVE
X0xJQlJBUlkgIjxDTUFLRV9DWFhfQ09NUElMRVI+IDxDTUFLRV9TSEFSRURfTElCUkFSWV9DWFhf
RkxBR1M+IDxMQU5HVUFHRV9DT01QSUxFX0ZMQUdTPiA8TElOS19GTEFHUz4gPENNQUtFX1NIQVJF
RF9MSUJSQVJZX0NSRUFURV9DWFhfRkxBR1M+IDxDTUFLRV9TSEFSRURfTElCUkFSWV9TT05BTUVf
Q1hYX0ZMQUc+PFRBUkdFVF9TT05BTUU+IC1vIDxUQVJHRVQ+IDxPQkpFQ1RTPiA8TElOS19MSUJS
QVJJRVM+IiApCi0gc2V0KCBDTUFLRV9DWFhfQ1JFQVRFX1NIQVJFRF9NT0RVTEUgICI8Q01BS0Vf
Q1hYX0NPTVBJTEVSPiA8Q01BS0VfU0hBUkVEX0xJQlJBUllfQ1hYX0ZMQUdTPiA8TEFOR1VBR0Vf
Q09NUElMRV9GTEFHUz4gPExJTktfRkxBR1M+IDxDTUFLRV9TSEFSRURfTElCUkFSWV9DUkVBVEVf
Q1hYX0ZMQUdTPiA8Q01BS0VfU0hBUkVEX0xJQlJBUllfU09OQU1FX0NYWF9GTEFHPjxUQVJHRVRf
U09OQU1FPiAtbyA8VEFSR0VUPiA8T0JKRUNUUz4gPExJTktfTElCUkFSSUVTPiIgKQotIHNldCgg
Q01BS0VfQ1hYX0xJTktfRVhFQ1VUQUJMRSAgICAgICAiPENNQUtFX0NYWF9DT01QSUxFUj4gPEZM
QUdTPiA8Q01BS0VfQ1hYX0xJTktfRkxBR1M+IDxMSU5LX0ZMQUdTPiA8T0JKRUNUUz4gLW8gPFRB
UkdFVD4gPExJTktfTElCUkFSSUVTPiIgKQotZW5kaWYoKQotCi0jIFNUTAotaWYoIEVYSVNUUyAi
JHtfX2xpYnN0bH0iIE9SIEVYSVNUUyAiJHtfX2xpYnN1cGN4eH0iICkKLSBpZiggRVhJU1RTICIk
e19fbGlic3RsfSIgKQotICBzZXQoIENNQUtFX0NYWF9DUkVBVEVfU0hBUkVEX0xJQlJBUlkgIiR7
Q01BS0VfQ1hYX0NSRUFURV9TSEFSRURfTElCUkFSWX0gXCIke19fbGlic3RsfVwiIiApCi0gIHNl
dCggQ01BS0VfQ1hYX0NSRUFURV9TSEFSRURfTU9EVUxFICAiJHtDTUFLRV9DWFhfQ1JFQVRFX1NI
QVJFRF9NT0RVTEV9IFwiJHtfX2xpYnN0bH1cIiIgKQotICBzZXQoIENNQUtFX0NYWF9MSU5LX0VY
RUNVVEFCTEUgICAgICAgIiR7Q01BS0VfQ1hYX0xJTktfRVhFQ1VUQUJMRX0gXCIke19fbGlic3Rs
fVwiIiApCi0gZW5kaWYoKQotIGlmKCBFWElTVFMgIiR7X19saWJzdXBjeHh9IiApCi0gIHNldCgg
Q01BS0VfQ1hYX0NSRUFURV9TSEFSRURfTElCUkFSWSAiJHtDTUFLRV9DWFhfQ1JFQVRFX1NIQVJF
RF9MSUJSQVJZfSBcIiR7X19saWJzdXBjeHh9XCIiICkKLSAgc2V0KCBDTUFLRV9DWFhfQ1JFQVRF
X1NIQVJFRF9NT0RVTEUgICIke0NNQUtFX0NYWF9DUkVBVEVfU0hBUkVEX01PRFVMRX0gXCIke19f
bGlic3VwY3h4fVwiIiApCi0gIHNldCggQ01BS0VfQ1hYX0xJTktfRVhFQ1VUQUJMRSAgICAgICAi
JHtDTUFLRV9DWFhfTElOS19FWEVDVVRBQkxFfSBcIiR7X19saWJzdXBjeHh9XCIiICkKLSAgIyBD
IG9iamVjdHM6Ci0gIHNldCggQ01BS0VfQ19DUkVBVEVfU0hBUkVEX0xJQlJBUlkgIjxDTUFLRV9D
X0NPTVBJTEVSPiA8Q01BS0VfU0hBUkVEX0xJQlJBUllfQ19GTEFHUz4gPExBTkdVQUdFX0NPTVBJ
TEVfRkxBR1M+IDxMSU5LX0ZMQUdTPiA8Q01BS0VfU0hBUkVEX0xJQlJBUllfQ1JFQVRFX0NfRkxB
R1M+IDxDTUFLRV9TSEFSRURfTElCUkFSWV9TT05BTUVfQ19GTEFHPjxUQVJHRVRfU09OQU1FPiAt
byA8VEFSR0VUPiA8T0JKRUNUUz4gPExJTktfTElCUkFSSUVTPiIgKQotICBzZXQoIENNQUtFX0Nf
Q1JFQVRFX1NIQVJFRF9NT0RVTEUgICI8Q01BS0VfQ19DT01QSUxFUj4gPENNQUtFX1NIQVJFRF9M
SUJSQVJZX0NfRkxBR1M+IDxMQU5HVUFHRV9DT01QSUxFX0ZMQUdTPiA8TElOS19GTEFHUz4gPENN
QUtFX1NIQVJFRF9MSUJSQVJZX0NSRUFURV9DX0ZMQUdTPiA8Q01BS0VfU0hBUkVEX0xJQlJBUllf
U09OQU1FX0NfRkxBRz48VEFSR0VUX1NPTkFNRT4gLW8gPFRBUkdFVD4gPE9CSkVDVFM+IDxMSU5L
X0xJQlJBUklFUz4iICkKLSAgc2V0KCBDTUFLRV9DX0xJTktfRVhFQ1VUQUJMRSAgICAgICAiPENN
QUtFX0NfQ09NUElMRVI+IDxGTEFHUz4gPENNQUtFX0NfTElOS19GTEFHUz4gPExJTktfRkxBR1M+
IDxPQkpFQ1RTPiAtbyA8VEFSR0VUPiA8TElOS19MSUJSQVJJRVM+IiApCi0gIHNldCggQ01BS0Vf
Q19DUkVBVEVfU0hBUkVEX0xJQlJBUlkgIiR7Q01BS0VfQ19DUkVBVEVfU0hBUkVEX0xJQlJBUll9
IFwiJHtfX2xpYnN1cGN4eH1cIiIgKQotICBzZXQoIENNQUtFX0NfQ1JFQVRFX1NIQVJFRF9NT0RV
TEUgICIke0NNQUtFX0NfQ1JFQVRFX1NIQVJFRF9NT0RVTEV9IFwiJHtfX2xpYnN1cGN4eH1cIiIg
KQotICBzZXQoIENNQUtFX0NfTElOS19FWEVDVVRBQkxFICAgICAgICIke0NNQUtFX0NfTElOS19F
WEVDVVRBQkxFfSBcIiR7X19saWJzdXBjeHh9XCIiICkKLSBlbmRpZigpCi0gaWYoIEFORFJPSURf
U1RMIE1BVENIRVMgImdudXN0bCIgKQotICBpZiggTk9UIEVYSVNUUyAiJHtBTkRST0lEX0xJQk1f
UEFUSH0iICkKLSAgIHNldCggQU5EUk9JRF9MSUJNX1BBVEggLWxtICkKLSAgZW5kaWYoKQotICBz
ZXQoIENNQUtFX0NYWF9DUkVBVEVfU0hBUkVEX0xJQlJBUlkgIiR7Q01BS0VfQ1hYX0NSRUFURV9T
SEFSRURfTElCUkFSWX0gJHtBTkRST0lEX0xJQk1fUEFUSH0iICkKLSAgc2V0KCBDTUFLRV9DWFhf
Q1JFQVRFX1NIQVJFRF9NT0RVTEUgICIke0NNQUtFX0NYWF9DUkVBVEVfU0hBUkVEX01PRFVMRX0g
JHtBTkRST0lEX0xJQk1fUEFUSH0iICkKLSAgc2V0KCBDTUFLRV9DWFhfTElOS19FWEVDVVRBQkxF
ICAgICAgICIke0NNQUtFX0NYWF9MSU5LX0VYRUNVVEFCTEV9ICR7QU5EUk9JRF9MSUJNX1BBVEh9
IiApCi0gZW5kaWYoKQotZW5kaWYoKQotCi0jIHZhcmlhYmxlcyBjb250cm9sbGluZyBvcHRpb25h
bCBidWlsZCBmbGFncwotaWYoIEFORFJPSURfTkRLX1JFTEVBU0VfTlVNIExFU1MgNzAwMCApICMg
YmVmb3JlIHI3Ci0gIyBsaWJHTEVTdjIuc28gaW4gTkRLJ3MgcHJpb3IgdG8gcjcgcmVmZXJzIHRv
IG1pc3NpbmcgZXh0ZXJuYWwgc3ltYm9scy4KLSAjIFNvIHRoaXMgZmxhZyBvcHRpb24gaXMgcmVx
dWlyZWQgZm9yIGFsbCBwcm9qZWN0cyB1c2luZyBPcGVuR0wgZnJvbSBuYXRpdmUuCi0gX19JTklU
X1ZBUklBQkxFKCBBTkRST0lEX1NPX1VOREVGSU5FRCAgICAgICAgICAgICAgICAgICAgICBWQUxV
RVMgT04gKQotZWxzZSgpCi0gX19JTklUX1ZBUklBQkxFKCBBTkRST0lEX1NPX1VOREVGSU5FRCAg
ICAgICAgICAgICAgICAgICAgICBWQUxVRVMgT0ZGICkKLWVuZGlmKCkKLV9fSU5JVF9WQVJJQUJM
RSggQU5EUk9JRF9OT19VTkRFRklORUQgICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyBPTiAp
Ci1fX0lOSVRfVkFSSUFCTEUoIEFORFJPSURfRlVOQ1RJT05fTEVWRUxfTElOS0lORyAgICAgICAg
ICAgICBWQUxVRVMgT04gKQotX19JTklUX1ZBUklBQkxFKCBBTkRST0lEX0dPTERfTElOS0VSICAg
ICAgICAgICAgICAgICAgICAgICAgVkFMVUVTIE9OICkKLV9fSU5JVF9WQVJJQUJMRSggQU5EUk9J
RF9OT0VYRUNTVEFDSyAgICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyBPTiApCi1fX0lOSVRf
VkFSSUFCTEUoIEFORFJPSURfUkVMUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWQUxV
RVMgT04gKQotCi1zZXQoIEFORFJPSURfTk9fVU5ERUZJTkVEICAgICAgICAgICAke0FORFJPSURf
Tk9fVU5ERUZJTkVEfSAgICAgICAgICAgQ0FDSEUgQk9PTCAiU2hvdyBhbGwgdW5kZWZpbmVkIHN5
bWJvbHMgYXMgbGlua2VyIGVycm9ycyIgKQotc2V0KCBBTkRST0lEX1NPX1VOREVGSU5FRCAgICAg
ICAgICAgJHtBTkRST0lEX1NPX1VOREVGSU5FRH0gICAgICAgICAgIENBQ0hFIEJPT0wgIkFsbG93
cyBvciBkaXNhbGxvd3MgdW5kZWZpbmVkIHN5bWJvbHMgaW4gc2hhcmVkIGxpYnJhcmllcyIgKQot
c2V0KCBBTkRST0lEX0ZVTkNUSU9OX0xFVkVMX0xJTktJTkcgJHtBTkRST0lEX0ZVTkNUSU9OX0xF
VkVMX0xJTktJTkd9IENBQ0hFIEJPT0wgIlB1dCBlYWNoIGZ1bmN0aW9uIGluIHNlcGFyYXRlIHNl
Y3Rpb24gYW5kIGVuYWJsZSBnYXJiYWdlIGNvbGxlY3Rpb24gb2YgdW51c2VkIGlucHV0IHNlY3Rp
b25zIGF0IGxpbmsgdGltZSIgKQotc2V0KCBBTkRST0lEX0dPTERfTElOS0VSICAgICAgICAgICAg
JHtBTkRST0lEX0dPTERfTElOS0VSfSAgICAgICAgICAgIENBQ0hFIEJPT0wgIkVuYWJsZXMgZ29s
ZCBsaW5rZXIiICkKLXNldCggQU5EUk9JRF9OT0VYRUNTVEFDSyAgICAgICAgICAgICR7QU5EUk9J
RF9OT0VYRUNTVEFDS30gICAgICAgICAgICBDQUNIRSBCT09MICJBbGxvd3Mgb3IgZGlzYWxsb3dz
IHVuZGVmaW5lZCBzeW1ib2xzIGluIHNoYXJlZCBsaWJyYXJpZXMiICkKLXNldCggQU5EUk9JRF9S
RUxSTyAgICAgICAgICAgICAgICAgICR7QU5EUk9JRF9SRUxST30gICAgICAgICAgICAgICAgICBD
QUNIRSBCT09MICJFbmFibGVzIFJFTFJPIC0gYSBtZW1vcnkgY29ycnVwdGlvbiBtaXRpZ2F0aW9u
IHRlY2huaXF1ZSIgKQotbWFya19hc19hZHZhbmNlZCggQU5EUk9JRF9OT19VTkRFRklORUQgQU5E
Uk9JRF9TT19VTkRFRklORUQgQU5EUk9JRF9GVU5DVElPTl9MRVZFTF9MSU5LSU5HIEFORFJPSURf
R09MRF9MSU5LRVIgQU5EUk9JRF9OT0VYRUNTVEFDSyBBTkRST0lEX1JFTFJPICkKLQotIyBsaW5r
ZXIgZmxhZ3MKLXNldCggQU5EUk9JRF9MSU5LRVJfRkxBR1MgIiIgKQotCi1pZiggQVJNRUFCSV9W
N0EgKQotICMgdGhpcyBpcyAqcmVxdWlyZWQqIHRvIHVzZSB0aGUgZm9sbG93aW5nIGxpbmtlciBm
bGFncyB0aGF0IHJvdXRlcyBhcm91bmQKLSAjIGEgQ1BVIGJ1ZyBpbiBzb21lIENvcnRleC1BOCBp
bXBsZW1lbnRhdGlvbnM6Ci0gc2V0KCBBTkRST0lEX0xJTktFUl9GTEFHUyAiJHtBTkRST0lEX0xJ
TktFUl9GTEFHU30gLVdsLC0tZml4LWNvcnRleC1hOCIgKQotZW5kaWYoKQotCi1pZiggQU5EUk9J
RF9OT19VTkRFRklORUQgKQotIGlmKCBNSVBTICkKLSAgIyB0aGVyZSBpcyBzb21lIHN5c3Jvb3Qt
cmVsYXRlZCBwcm9ibGVtIGluIG1pcHMgbGlua2VyLi4uCi0gIGlmKCBOT1QgQU5EUk9JRF9TWVNS
T09UIE1BVENIRVMgIlsgO1wiXSIgKQotICAgc2V0KCBBTkRST0lEX0xJTktFUl9GTEFHUyAiJHtB
TkRST0lEX0xJTktFUl9GTEFHU30gLVdsLC0tbm8tdW5kZWZpbmVkIC1XbCwtcnBhdGgtbGluaywk
e0FORFJPSURfU1lTUk9PVH0vdXNyL2xpYiIgKQotICBlbmRpZigpCi0gZWxzZSgpCi0gIHNldCgg
QU5EUk9JRF9MSU5LRVJfRkxBR1MgIiR7QU5EUk9JRF9MSU5LRVJfRkxBR1N9IC1XbCwtLW5vLXVu
ZGVmaW5lZCIgKQotIGVuZGlmKCkKLWVuZGlmKCkKLQotaWYoIEFORFJPSURfU09fVU5ERUZJTkVE
ICkKLSBzZXQoIEFORFJPSURfTElOS0VSX0ZMQUdTICIke0FORFJPSURfTElOS0VSX0ZMQUdTfSAt
V2wsLWFsbG93LXNobGliLXVuZGVmaW5lZCIgKQotZW5kaWYoKQotCi1pZiggQU5EUk9JRF9GVU5D
VElPTl9MRVZFTF9MSU5LSU5HICkKLSBzZXQoIEFORFJPSURfQ1hYX0ZMQUdTICAgICIke0FORFJP
SURfQ1hYX0ZMQUdTfSAtZmRhdGEtc2VjdGlvbnMgLWZmdW5jdGlvbi1zZWN0aW9ucyIgKQotIHNl
dCggQU5EUk9JRF9MSU5LRVJfRkxBR1MgIiR7QU5EUk9JRF9MSU5LRVJfRkxBR1N9IC1XbCwtLWdj
LXNlY3Rpb25zIiApCi1lbmRpZigpCi0KLWlmKCBBTkRST0lEX0NPTVBJTEVSX1ZFUlNJT04gVkVS
U0lPTl9FUVVBTCAiNC42IiApCi0gaWYoIEFORFJPSURfR09MRF9MSU5LRVIgQU5EIChDTUFLRV9I
T1NUX1VOSVggT1IgQU5EUk9JRF9OREtfUkVMRUFTRV9OVU0gR1JFQVRFUiA4MDAyKSBBTkQgKEFS
TUVBQkkgT1IgQVJNRUFCSV9WN0EgT1IgWDg2KSApCi0gIHNldCggQU5EUk9JRF9MSU5LRVJfRkxB
R1MgIiR7QU5EUk9JRF9MSU5LRVJfRkxBR1N9IC1mdXNlLWxkPWdvbGQiICkKLSBlbHNlaWYoIEFO
RFJPSURfTkRLX1JFTEVBU0VfTlVNIEdSRUFURVIgODAwMiApICMgYWZ0ZXIgcjhiCi0gIHNldCgg
QU5EUk9JRF9MSU5LRVJfRkxBR1MgIiR7QU5EUk9JRF9MSU5LRVJfRkxBR1N9IC1mdXNlLWxkPWJm
ZCIgKQotIGVsc2VpZiggQU5EUk9JRF9OREtfUkVMRUFTRSBTVFJFUVVBTCAicjhiIiBBTkQgQVJN
RUFCSSBBTkQgTk9UIF9DTUFLRV9JTl9UUllfQ09NUElMRSApCi0gIG1lc3NhZ2UoIFdBUk5JTkcg
IlRoZSBkZWZhdWx0IGJmZCBsaW5rZXIgZnJvbSBhcm0gR0NDIDQuNiB0b29sY2hhaW4gY2FuIGZh
aWwgd2l0aCAndW5yZXNvbHZhYmxlIFJfQVJNX1RITV9DQUxMIHJlbG9jYXRpb24nIGVycm9yIG1l
c3NhZ2UuIFNlZSBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2FuZHJvaWQvaXNzdWVzL2RldGFp
bD9pZD0zNTM0MgotICBPbiBMaW51eCBhbmQgT1MgWCBob3N0IHBsYXRmb3JtIHlvdSBjYW4gd29y
a2Fyb3VuZCB0aGlzIHByb2JsZW0gdXNpbmcgZ29sZCBsaW5rZXIgKGRlZmF1bHQpLgotICBSZXJ1
biBjbWFrZSB3aXRoIC1EQU5EUk9JRF9HT0xEX0xJTktFUj1PTiBvcHRpb24gaW4gY2FzZSBvZiBw
cm9ibGVtcy4KLSIgKQotIGVuZGlmKCkKLWVuZGlmKCkgIyB2ZXJzaW9uIDQuNgotCi1pZiggQU5E
Uk9JRF9OT0VYRUNTVEFDSyApCi0gaWYoIEFORFJPSURfQ09NUElMRVJfSVNfQ0xBTkcgKQotICBz
ZXQoIEFORFJPSURfQ1hYX0ZMQUdTICAgICIke0FORFJPSURfQ1hYX0ZMQUdTfSAtWGNsYW5nIC1t
bm9leGVjc3RhY2siICkKLSBlbHNlKCkKLSAgc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAgICAiJHtB
TkRST0lEX0NYWF9GTEFHU30gLVdhLC0tbm9leGVjc3RhY2siICkKLSBlbmRpZigpCi0gc2V0KCBB
TkRST0lEX0xJTktFUl9GTEFHUyAiJHtBTkRST0lEX0xJTktFUl9GTEFHU30gLVdsLC16LG5vZXhl
Y3N0YWNrIiApCi1lbmRpZigpCi0KLWlmKCBBTkRST0lEX1JFTFJPICkKLSBzZXQoIEFORFJPSURf
TElOS0VSX0ZMQUdTICIke0FORFJPSURfTElOS0VSX0ZMQUdTfSAtV2wsLXoscmVscm8gLVdsLC16
LG5vdyIgKQotZW5kaWYoKQotCi1pZiggQU5EUk9JRF9DT01QSUxFUl9JU19DTEFORyApCi0gc2V0
KCBBTkRST0lEX0NYWF9GTEFHUyAiLXRhcmdldCAke0FORFJPSURfTExWTV9UUklQTEV9IC1RdW51
c2VkLWFyZ3VtZW50cyAke0FORFJPSURfQ1hYX0ZMQUdTfSIgKQotIGlmKCBCVUlMRF9XSVRIX0FO
RFJPSURfTkRLICkKLSAgc2V0KCBBTkRST0lEX0NYWF9GTEFHUyAiLWdjYy10b29sY2hhaW4gJHtB
TkRST0lEX1RPT0xDSEFJTl9ST09UfSAke0FORFJPSURfQ1hYX0ZMQUdTfSIgKQotIGVuZGlmKCkK
LWVuZGlmKCkKLQotIyBjYWNoZSBmbGFncwotc2V0KCBDTUFLRV9DWFhfRkxBR1MgICAgICAgICAg
ICIiICAgICAgICAgICAgICAgICAgICAgICAgQ0FDSEUgU1RSSU5HICJjKysgZmxhZ3MiICkKLXNl
dCggQ01BS0VfQ19GTEFHUyAgICAgICAgICAgICAiIiAgICAgICAgICAgICAgICAgICAgICAgIENB
Q0hFIFNUUklORyAiYyBmbGFncyIgKQotc2V0KCBDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAgICIt
TzMgLUROREVCVUciICAgICAgICAgICAgQ0FDSEUgU1RSSU5HICJjKysgUmVsZWFzZSBmbGFncyIg
KQotc2V0KCBDTUFLRV9DX0ZMQUdTX1JFTEVBU0UgICAgICItTzMgLUROREVCVUciICAgICAgICAg
ICAgQ0FDSEUgU1RSSU5HICJjIFJlbGVhc2UgZmxhZ3MiICkKLXNldCggQ01BS0VfQ1hYX0ZMQUdT
X0RFQlVHICAgICAiLU8wIC1nIC1EREVCVUcgLURfREVCVUciIENBQ0hFIFNUUklORyAiYysrIERl
YnVnIGZsYWdzIiApCi1zZXQoIENNQUtFX0NfRkxBR1NfREVCVUcgICAgICAgIi1PMCAtZyAtRERF
QlVHIC1EX0RFQlVHIiBDQUNIRSBTVFJJTkcgImMgRGVidWcgZmxhZ3MiICkKLXNldCggQ01BS0Vf
U0hBUkVEX0xJTktFUl9GTEFHUyAiIiAgICAgICAgICAgICAgICAgICAgICAgIENBQ0hFIFNUUklO
RyAic2hhcmVkIGxpbmtlciBmbGFncyIgKQotc2V0KCBDTUFLRV9NT0RVTEVfTElOS0VSX0ZMQUdT
ICIiICAgICAgICAgICAgICAgICAgICAgICAgQ0FDSEUgU1RSSU5HICJtb2R1bGUgbGlua2VyIGZs
YWdzIiApCi1zZXQoIENNQUtFX0VYRV9MSU5LRVJfRkxBR1MgICAgIi1XbCwteixub2NvcHlyZWxv
YyIgICAgICBDQUNIRSBTVFJJTkcgImV4ZWN1dGFibGUgbGlua2VyIGZsYWdzIiApCi0KLSMgcHV0
IGZsYWdzIHRvIGNhY2hlIChmb3IgZGVidWcgcHVycG9zZSBvbmx5KQotc2V0KCBBTkRST0lEX0NY
WF9GTEFHUyAgICAgICAgICIke0FORFJPSURfQ1hYX0ZMQUdTfSIgICAgICAgICBDQUNIRSBJTlRF
Uk5BTCAiQW5kcm9pZCBzcGVjaWZpYyBjL2MrKyBmbGFncyIgKQotc2V0KCBBTkRST0lEX0NYWF9G
TEFHU19SRUxFQVNFICIke0FORFJPSURfQ1hYX0ZMQUdTX1JFTEVBU0V9IiBDQUNIRSBJTlRFUk5B
TCAiQW5kcm9pZCBzcGVjaWZpYyBjL2MrKyBSZWxlYXNlIGZsYWdzIiApCi1zZXQoIEFORFJPSURf
Q1hYX0ZMQUdTX0RFQlVHICAgIiR7QU5EUk9JRF9DWFhfRkxBR1NfREVCVUd9IiAgIENBQ0hFIElO
VEVSTkFMICJBbmRyb2lkIHNwZWNpZmljIGMvYysrIERlYnVnIGZsYWdzIiApCi1zZXQoIEFORFJP
SURfTElOS0VSX0ZMQUdTICAgICAgIiR7QU5EUk9JRF9MSU5LRVJfRkxBR1N9IiAgICAgIENBQ0hF
IElOVEVSTkFMICJBbmRyb2lkIHNwZWNpZmljIGMvYysrIGxpbmtlciBmbGFncyIgKQotCi0jIGZp
bmlzaCBmbGFncwotc2V0KCBDTUFLRV9DWFhfRkxBR1MgICAgICAgICAgICIke0FORFJPSURfQ1hY
X0ZMQUdTfSAke0NNQUtFX0NYWF9GTEFHU30iICkKLXNldCggQ01BS0VfQ19GTEFHUyAgICAgICAg
ICAgICAiJHtBTkRST0lEX0NYWF9GTEFHU30gJHtDTUFLRV9DX0ZMQUdTfSIgKQotc2V0KCBDTUFL
RV9DWFhfRkxBR1NfUkVMRUFTRSAgICIke0FORFJPSURfQ1hYX0ZMQUdTX1JFTEVBU0V9ICR7Q01B
S0VfQ1hYX0ZMQUdTX1JFTEVBU0V9IiApCi1zZXQoIENNQUtFX0NfRkxBR1NfUkVMRUFTRSAgICAg
IiR7QU5EUk9JRF9DWFhfRkxBR1NfUkVMRUFTRX0gJHtDTUFLRV9DX0ZMQUdTX1JFTEVBU0V9IiAp
Ci1zZXQoIENNQUtFX0NYWF9GTEFHU19ERUJVRyAgICAgIiR7QU5EUk9JRF9DWFhfRkxBR1NfREVC
VUd9ICR7Q01BS0VfQ1hYX0ZMQUdTX0RFQlVHfSIgKQotc2V0KCBDTUFLRV9DX0ZMQUdTX0RFQlVH
ICAgICAgICIke0FORFJPSURfQ1hYX0ZMQUdTX0RFQlVHfSAke0NNQUtFX0NfRkxBR1NfREVCVUd9
IiApCi1zZXQoIENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7QU5EUk9JRF9MSU5LRVJfRkxB
R1N9ICR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30iICkKLXNldCggQ01BS0VfTU9EVUxFX0xJ
TktFUl9GTEFHUyAiJHtBTkRST0lEX0xJTktFUl9GTEFHU30gJHtDTUFLRV9NT0RVTEVfTElOS0VS
X0ZMQUdTfSIgKQotc2V0KCBDTUFLRV9FWEVfTElOS0VSX0ZMQUdTICAgICIke0FORFJPSURfTElO
S0VSX0ZMQUdTfSAke0NNQUtFX0VYRV9MSU5LRVJfRkxBR1N9IiApCi0KLWlmKCBNSVBTIEFORCBC
VUlMRF9XSVRIX0FORFJPSURfTkRLIEFORCBBTkRST0lEX05ES19SRUxFQVNFIFNUUkVRVUFMICJy
OCIgKQotIHNldCggQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiLVdsLC1ULCR7QU5EUk9JRF9O
REtfVE9PTENIQUlOU19QQVRIfS8ke0FORFJPSURfR0NDX1RPT0xDSEFJTl9OQU1FfS9taXBzZWxm
LnhzYyAke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9IiApCi0gc2V0KCBDTUFLRV9NT0RVTEVf
TElOS0VSX0ZMQUdTICItV2wsLVQsJHtBTkRST0lEX05ES19UT09MQ0hBSU5TX1BBVEh9LyR7QU5E
Uk9JRF9HQ0NfVE9PTENIQUlOX05BTUV9L21pcHNlbGYueHNjICR7Q01BS0VfTU9EVUxFX0xJTktF
Ul9GTEFHU30iICkKLSBzZXQoIENNQUtFX0VYRV9MSU5LRVJfRkxBR1MgICAgIi1XbCwtVCwke0FO
RFJPSURfTkRLX1RPT0xDSEFJTlNfUEFUSH0vJHtBTkRST0lEX0dDQ19UT09MQ0hBSU5fTkFNRX0v
bWlwc2VsZi54ICR7Q01BS0VfRVhFX0xJTktFUl9GTEFHU30iICkKLWVuZGlmKCkKLQotIyBwaWUv
cGljCi1pZiggTk9UIChBTkRST0lEX05BVElWRV9BUElfTEVWRUwgTEVTUyAxNikgQU5EIChOT1Qg
REVGSU5FRCBBTkRST0lEX0FQUF9QSUUgT1IgQU5EUk9JRF9BUFBfUElFKSBBTkQgKENNQUtFX1ZF
UlNJT04gVkVSU0lPTl9HUkVBVEVSIDIuOC44KSApCi0gc2V0KCBDTUFLRV9QT1NJVElPTl9JTkRF
UEVOREVOVF9DT0RFIFRSVUUgKQotIHNldCggQ01BS0VfRVhFX0xJTktFUl9GTEFHUyAiJHtDTUFL
RV9FWEVfTElOS0VSX0ZMQUdTfSAtZlBJRSAtcGllIikKLWVsc2UoKQotIHNldCggQ01BS0VfUE9T
SVRJT05fSU5ERVBFTkRFTlRfQ09ERSBGQUxTRSApCi0gc2V0KCBDTUFLRV9DWFhfRkxBR1MgIi1m
cGljICR7Q01BS0VfQ1hYX0ZMQUdTfSIgKQotIHNldCggQ01BS0VfQ19GTEFHUyAgICItZnBpYyAk
e0NNQUtFX0NfRkxBR1N9IiApCi1lbmRpZigpCi0KLSMgY29uZmlndXJlIHJ0dGkKLWlmKCBERUZJ
TkVEIEFORFJPSURfUlRUSSBBTkQgQU5EUk9JRF9TVExfRk9SQ0VfRkVBVFVSRVMgKQotIGlmKCBB
TkRST0lEX1JUVEkgKQotICBzZXQoIENNQUtFX0NYWF9GTEFHUyAiLWZydHRpICR7Q01BS0VfQ1hY
X0ZMQUdTfSIgKQotIGVsc2UoKQotICBzZXQoIENNQUtFX0NYWF9GTEFHUyAiLWZuby1ydHRpICR7
Q01BS0VfQ1hYX0ZMQUdTfSIgKQotIGVuZGlmKCkKLWVuZGlmKCkKLQotIyBjb25maWd1cmUgZXhj
ZXB0aW9zCi1pZiggREVGSU5FRCBBTkRST0lEX0VYQ0VQVElPTlMgQU5EIEFORFJPSURfU1RMX0ZP
UkNFX0ZFQVRVUkVTICkKLSBpZiggQU5EUk9JRF9FWENFUFRJT05TICkKLSAgc2V0KCBDTUFLRV9D
WFhfRkxBR1MgIi1mZXhjZXB0aW9ucyAke0NNQUtFX0NYWF9GTEFHU30iICkKLSAgc2V0KCBDTUFL
RV9DX0ZMQUdTICItZmV4Y2VwdGlvbnMgJHtDTUFLRV9DX0ZMQUdTfSIgKQotIGVsc2UoKQotICBz
ZXQoIENNQUtFX0NYWF9GTEFHUyAiLWZuby1leGNlcHRpb25zICR7Q01BS0VfQ1hYX0ZMQUdTfSIg
KQotICBzZXQoIENNQUtFX0NfRkxBR1MgIi1mbm8tZXhjZXB0aW9ucyAke0NNQUtFX0NfRkxBR1N9
IiApCi0gZW5kaWYoKQotZW5kaWYoKQotCi0jIGdsb2JhbCBpbmNsdWRlcyBhbmQgbGluayBkaXJl
Y3RvcmllcwotaW5jbHVkZV9kaXJlY3RvcmllcyggU1lTVEVNICIke0FORFJPSURfU1lTUk9PVH0v
dXNyL2luY2x1ZGUiICR7QU5EUk9JRF9TVExfSU5DTFVERV9ESVJTfSApCi1nZXRfZmlsZW5hbWVf
Y29tcG9uZW50KF9fYW5kcm9pZF9pbnN0YWxsX3BhdGggIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9
L2xpYnMvJHtBTkRST0lEX05ES19BQklfTkFNRX0iIEFCU09MVVRFKSAjIGF2b2lkIENNUDAwMTUg
cG9saWN5IHdhcm5pbmcKLWxpbmtfZGlyZWN0b3JpZXMoICIke19fYW5kcm9pZF9pbnN0YWxsX3Bh
dGh9IiApCi0KLSMgZGV0ZWN0IGlmIG5lZWQgbGluayBjcnRiZWdpbl9zby5vIGV4cGxpY2l0bHkK
LWlmKCBOT1QgREVGSU5FRCBBTkRST0lEX0VYUExJQ0lUX0NSVF9MSU5LICkKLSBzZXQoIF9fY21k
ICIke0NNQUtFX0NYWF9DUkVBVEVfU0hBUkVEX0xJQlJBUll9IiApCi0gc3RyaW5nKCBSRVBMQUNF
ICI8Q01BS0VfQ1hYX0NPTVBJTEVSPiIgIiR7Q01BS0VfQ1hYX0NPTVBJTEVSfSAke0NNQUtFX0NY
WF9DT01QSUxFUl9BUkcxfSIgX19jbWQgIiR7X19jbWR9IiApCi0gc3RyaW5nKCBSRVBMQUNFICI8
Q01BS0VfQ19DT01QSUxFUj4iICAgIiR7Q01BS0VfQ19DT01QSUxFUn0gJHtDTUFLRV9DX0NPTVBJ
TEVSX0FSRzF9IiAgIF9fY21kICIke19fY21kfSIgKQotIHN0cmluZyggUkVQTEFDRSAiPENNQUtF
X1NIQVJFRF9MSUJSQVJZX0NYWF9GTEFHUz4iICIke0NNQUtFX0NYWF9GTEFHU30iIF9fY21kICIk
e19fY21kfSIgKQotIHN0cmluZyggUkVQTEFDRSAiPExBTkdVQUdFX0NPTVBJTEVfRkxBR1M+IiAi
IiBfX2NtZCAiJHtfX2NtZH0iICkKLSBzdHJpbmcoIFJFUExBQ0UgIjxMSU5LX0ZMQUdTPiIgIiR7
Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30iIF9fY21kICIke19fY21kfSIgKQotIHN0cmluZygg
UkVQTEFDRSAiPENNQUtFX1NIQVJFRF9MSUJSQVJZX0NSRUFURV9DWFhfRkxBR1M+IiAiLXNoYXJl
ZCIgX19jbWQgIiR7X19jbWR9IiApCi0gc3RyaW5nKCBSRVBMQUNFICI8Q01BS0VfU0hBUkVEX0xJ
QlJBUllfU09OQU1FX0NYWF9GTEFHPiIgIiIgX19jbWQgIiR7X19jbWR9IiApCi0gc3RyaW5nKCBS
RVBMQUNFICI8VEFSR0VUX1NPTkFNRT4iICIiIF9fY21kICIke19fY21kfSIgKQotIHN0cmluZygg
UkVQTEFDRSAiPFRBUkdFVD4iICIke0NNQUtFX0JJTkFSWV9ESVJ9JHtDTUFLRV9GSUxFU19ESVJF
Q1RPUll9L3Rvb2xjaGFpbl9jcnRsaW5rX3Rlc3Quc28iIF9fY21kICIke19fY21kfSIgKQotIHN0
cmluZyggUkVQTEFDRSAiPE9CSkVDVFM+IiAiXCIke0FORFJPSURfU1lTUk9PVH0vdXNyL2xpYi9j
cnRiZWdpbl9zby5vXCIiIF9fY21kICIke19fY21kfSIgKQotIHN0cmluZyggUkVQTEFDRSAiPExJ
TktfTElCUkFSSUVTPiIgIiIgX19jbWQgIiR7X19jbWR9IiApCi0gc2VwYXJhdGVfYXJndW1lbnRz
KCBfX2NtZCApCi0gZm9yZWFjaCggX192YXIgQU5EUk9JRF9OREsgQU5EUk9JRF9OREtfVE9PTENI
QUlOU19QQVRIIEFORFJPSURfU1RBTkRBTE9ORV9UT09MQ0hBSU4gKQotICBpZiggJHtfX3Zhcn0g
KQotICAgc2V0KCBfX3RtcCAiJHske19fdmFyfX0iICkKLSAgIHNlcGFyYXRlX2FyZ3VtZW50cygg
X190bXAgKQotICAgc3RyaW5nKCBSRVBMQUNFICIke19fdG1wfSIgIiR7JHtfX3Zhcn19IiBfX2Nt
ZCAiJHtfX2NtZH0iKQotICBlbmRpZigpCi0gZW5kZm9yZWFjaCgpCi0gc3RyaW5nKCBSRVBMQUNF
ICInIiAiIiBfX2NtZCAiJHtfX2NtZH0iICkKLSBzdHJpbmcoIFJFUExBQ0UgIlwiIiAiIiBfX2Nt
ZCAiJHtfX2NtZH0iICkKLSBleGVjdXRlX3Byb2Nlc3MoIENPTU1BTkQgJHtfX2NtZH0gUkVTVUxU
X1ZBUklBQkxFIF9fY21kX3Jlc3VsdCBPVVRQVVRfUVVJRVQgRVJST1JfUVVJRVQgKQotIGlmKCBf
X2NtZF9yZXN1bHQgRVFVQUwgMCApCi0gIHNldCggQU5EUk9JRF9FWFBMSUNJVF9DUlRfTElOSyBP
TiApCi0gZWxzZSgpCi0gIHNldCggQU5EUk9JRF9FWFBMSUNJVF9DUlRfTElOSyBPRkYgKQotIGVu
ZGlmKCkKLWVuZGlmKCkKLQotaWYoIEFORFJPSURfRVhQTElDSVRfQ1JUX0xJTksgKQotIHNldCgg
Q01BS0VfQ1hYX0NSRUFURV9TSEFSRURfTElCUkFSWSAiJHtDTUFLRV9DWFhfQ1JFQVRFX1NIQVJF
RF9MSUJSQVJZfSBcIiR7QU5EUk9JRF9TWVNST09UfS91c3IvbGliL2NydGJlZ2luX3NvLm9cIiIg
KQotIHNldCggQ01BS0VfQ1hYX0NSRUFURV9TSEFSRURfTU9EVUxFICAiJHtDTUFLRV9DWFhfQ1JF
QVRFX1NIQVJFRF9NT0RVTEV9IFwiJHtBTkRST0lEX1NZU1JPT1R9L3Vzci9saWIvY3J0YmVnaW5f
c28ub1wiIiApCi1lbmRpZigpCi0KLSMgc2V0dXAgb3V0cHV0IGRpcmVjdG9yaWVzCi1zZXQoIENN
QUtFX0lOU1RBTExfUFJFRklYICIke0FORFJPSURfVE9PTENIQUlOX1JPT1R9L3VzZXIiIENBQ0hF
IFNUUklORyAicGF0aCBmb3IgaW5zdGFsbGluZyIgKQotCi1pZiggREVGSU5FRCBMSUJSQVJZX09V
VFBVVF9QQVRIX1JPT1QKLSAgICAgIE9SIEVYSVNUUyAiJHtDTUFLRV9TT1VSQ0VfRElSfS9BbmRy
b2lkTWFuaWZlc3QueG1sIgotICAgICAgT1IgKEVYSVNUUyAiJHtDTUFLRV9TT1VSQ0VfRElSfS8u
Li9BbmRyb2lkTWFuaWZlc3QueG1sIiBBTkQgRVhJU1RTICIke0NNQUtFX1NPVVJDRV9ESVJ9Ly4u
L2puaS8iKSApCi0gIHNldCggTElCUkFSWV9PVVRQVVRfUEFUSF9ST09UICR7Q01BS0VfU09VUkNF
X0RJUn0gQ0FDSEUgUEFUSCAiUm9vdCBmb3IgYmluYXJpZXMgb3V0cHV0LCBzZXQgdGhpcyB0byBj
aGFuZ2Ugd2hlcmUgQW5kcm9pZCBsaWJzIGFyZSBpbnN0YWxsZWQgdG8iICkKLSAgaWYoIE5PVCBf
Q01BS0VfSU5fVFJZX0NPTVBJTEUgKQotICAgIGlmKCBFWElTVFMgIiR7Q01BS0VfU09VUkNFX0RJ
Un0vam5pL0NNYWtlTGlzdHMudHh0IiApCi0gICAgICBzZXQoIEVYRUNVVEFCTEVfT1VUUFVUX1BB
VEggIiR7TElCUkFSWV9PVVRQVVRfUEFUSF9ST09UfS9iaW4vJHtBTkRST0lEX05ES19BQklfTkFN
RX0iIENBQ0hFIFBBVEggIk91dHB1dCBkaXJlY3RvcnkgZm9yIGFwcGxpY2F0aW9ucyIgKQotICAg
IGVsc2UoKQotICAgICAgc2V0KCBFWEVDVVRBQkxFX09VVFBVVF9QQVRIICIke0xJQlJBUllfT1VU
UFVUX1BBVEhfUk9PVH0vYmluIiBDQUNIRSBQQVRIICJPdXRwdXQgZGlyZWN0b3J5IGZvciBhcHBs
aWNhdGlvbnMiICkKLSAgICBlbmRpZigpCi0gICAgc2V0KCBMSUJSQVJZX09VVFBVVF9QQVRIICIk
e0xJQlJBUllfT1VUUFVUX1BBVEhfUk9PVH0vbGlicy8ke0FORFJPSURfTkRLX0FCSV9OQU1FfSIg
Q0FDSEUgUEFUSCAiT3V0cHV0IGRpcmVjdG9yeSBmb3IgQW5kcm9pZCBsaWJzIiApCi0gIGVuZGlm
KCkKLWVuZGlmKCkKLQotIyBjb3B5IHNoYWVkIHN0bCBsaWJyYXJ5IHRvIGJ1aWxkIGRpcmVjdG9y
eQotaWYoIE5PVCBfQ01BS0VfSU5fVFJZX0NPTVBJTEUgQU5EIF9fbGlic3RsIE1BVENIRVMgIlsu
XXNvJCIgQU5EIERFRklORUQgTElCUkFSWV9PVVRQVVRfUEFUSCApCi0gIGdldF9maWxlbmFtZV9j
b21wb25lbnQoIF9fbGlic3RsbmFtZSAiJHtfX2xpYnN0bH0iIE5BTUUgKQotICBleGVjdXRlX3By
b2Nlc3MoIENPTU1BTkQgIiR7Q01BS0VfQ09NTUFORH0iIC1FIGNvcHlfaWZfZGlmZmVyZW50ICIk
e19fbGlic3RsfSIgIiR7TElCUkFSWV9PVVRQVVRfUEFUSH0vJHtfX2xpYnN0bG5hbWV9IiBSRVNV
TFRfVkFSSUFCTEUgX19maWxlQ29weVByb2Nlc3MgKQotICBpZiggTk9UIF9fZmlsZUNvcHlQcm9j
ZXNzIEVRVUFMIDAgT1IgTk9UIEVYSVNUUyAiJHtMSUJSQVJZX09VVFBVVF9QQVRIfS8ke19fbGli
c3RsbmFtZX0iKQotICAgIG1lc3NhZ2UoIFNFTkRfRVJST1IgIkZhaWxlZCBjb3B5aW5nIG9mICR7
X19saWJzdGx9IHRvIHRoZSAke0xJQlJBUllfT1VUUFVUX1BBVEh9LyR7X19saWJzdGxuYW1lfSIg
KQotICBlbmRpZigpCi0gIHVuc2V0KCBfX2ZpbGVDb3B5UHJvY2VzcyApCi0gIHVuc2V0KCBfX2xp
YnN0bG5hbWUgKQotZW5kaWYoKQotCi0KLSMgc2V0IHRoZXNlIGdsb2JhbCBmbGFncyBmb3IgY21h
a2UgY2xpZW50IHNjcmlwdHMgdG8gY2hhbmdlIGJlaGF2aW9yCi1zZXQoIEFORFJPSUQgVHJ1ZSAp
Ci1zZXQoIEJVSUxEX0FORFJPSUQgVHJ1ZSApCi0KLSMgd2hlcmUgaXMgdGhlIHRhcmdldCBlbnZp
cm9ubWVudAotc2V0KCBDTUFLRV9GSU5EX1JPT1RfUEFUSCAiJHtBTkRST0lEX1RPT0xDSEFJTl9S
T09UfS9iaW4iICIke0FORFJPSURfVE9PTENIQUlOX1JPT1R9LyR7QU5EUk9JRF9UT09MQ0hBSU5f
TUFDSElORV9OQU1FfSIgIiR7QU5EUk9JRF9TWVNST09UfSIgIiR7Q01BS0VfSU5TVEFMTF9QUkVG
SVh9IiAiJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vc2hhcmUiICkKLQotIyBvbmx5IHNlYXJjaCBm
b3IgbGlicmFyaWVzIGFuZCBpbmNsdWRlcyBpbiB0aGUgbmRrIHRvb2xjaGFpbgotc2V0KCBDTUFL
RV9GSU5EX1JPT1RfUEFUSF9NT0RFX1BST0dSQU0gT05MWSApCi1zZXQoIENNQUtFX0ZJTkRfUk9P
VF9QQVRIX01PREVfTElCUkFSWSBPTkxZICkKLXNldCggQ01BS0VfRklORF9ST09UX1BBVEhfTU9E
RV9JTkNMVURFIE9OTFkgKQotCi0KLSMgbWFjcm8gdG8gZmluZCBwYWNrYWdlcyBvbiB0aGUgaG9z
dCBPUwotbWFjcm8oIGZpbmRfaG9zdF9wYWNrYWdlICkKLSBzZXQoIENNQUtFX0ZJTkRfUk9PVF9Q
QVRIX01PREVfUFJPR1JBTSBORVZFUiApCi0gc2V0KCBDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RF
X0xJQlJBUlkgTkVWRVIgKQotIHNldCggQ01BS0VfRklORF9ST09UX1BBVEhfTU9ERV9JTkNMVURF
IE5FVkVSICkKLSBpZiggQ01BS0VfSE9TVF9XSU4zMiApCi0gIFNFVCggV0lOMzIgMSApCi0gIFNF
VCggVU5JWCApCi0gZWxzZWlmKCBDTUFLRV9IT1NUX0FQUExFICkKLSAgU0VUKCBBUFBMRSAxICkK
LSAgU0VUKCBVTklYICkKLSBlbmRpZigpCi0gZmluZF9wYWNrYWdlKCAke0FSR059ICkKLSBTRVQo
IFdJTjMyICkKLSBTRVQoIEFQUExFICkKLSBTRVQoIFVOSVggMSApCi0gc2V0KCBDTUFLRV9GSU5E
X1JPT1RfUEFUSF9NT0RFX1BST0dSQU0gT05MWSApCi0gc2V0KCBDTUFLRV9GSU5EX1JPT1RfUEFU
SF9NT0RFX0xJQlJBUlkgT05MWSApCi0gc2V0KCBDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0lO
Q0xVREUgT05MWSApCi1lbmRtYWNybygpCi0KLQotIyBtYWNybyB0byBmaW5kIHByb2dyYW1zIG9u
IHRoZSBob3N0IE9TCi1tYWNybyggZmluZF9ob3N0X3Byb2dyYW0gKQotIHNldCggQ01BS0VfRklO
RF9ST09UX1BBVEhfTU9ERV9QUk9HUkFNIE5FVkVSICkKLSBzZXQoIENNQUtFX0ZJTkRfUk9PVF9Q
QVRIX01PREVfTElCUkFSWSBORVZFUiApCi0gc2V0KCBDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RF
X0lOQ0xVREUgTkVWRVIgKQotIGlmKCBDTUFLRV9IT1NUX1dJTjMyICkKLSAgU0VUKCBXSU4zMiAx
ICkKLSAgU0VUKCBVTklYICkKLSBlbHNlaWYoIENNQUtFX0hPU1RfQVBQTEUgKQotICBTRVQoIEFQ
UExFIDEgKQotICBTRVQoIFVOSVggKQotIGVuZGlmKCkKLSBmaW5kX3Byb2dyYW0oICR7QVJHTn0g
KQotIFNFVCggV0lOMzIgKQotIFNFVCggQVBQTEUgKQotIFNFVCggVU5JWCAxICkKLSBzZXQoIENN
QUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUFJPR1JBTSBPTkxZICkKLSBzZXQoIENNQUtFX0ZJTkRf
Uk9PVF9QQVRIX01PREVfTElCUkFSWSBPTkxZICkKLSBzZXQoIENNQUtFX0ZJTkRfUk9PVF9QQVRI
X01PREVfSU5DTFVERSBPTkxZICkKLWVuZG1hY3JvKCkKLQotCi0jIGV4cG9ydCB0b29sY2hhaW4g
c2V0dGluZ3MgZm9yIHRoZSB0cnlfY29tcGlsZSgpIGNvbW1hbmQKLWlmKCBOT1QgX0NNQUtFX0lO
X1RSWV9DT01QSUxFICkKLSBzZXQoIF9fdG9vbGNoYWluX2NvbmZpZyAiIikKLSBmb3JlYWNoKCBf
X3ZhciBOREtfQ0NBQ0hFICBMSUJSQVJZX09VVFBVVF9QQVRIX1JPT1QgIEFORFJPSURfRk9SQklE
X1NZR1dJTgotICAgICAgICAgICAgICAgIEFORFJPSURfTkRLX0hPU1RfWDY0Ci0gICAgICAgICAg
ICAgICAgQU5EUk9JRF9OREsKLSAgICAgICAgICAgICAgICBBTkRST0lEX05ES19MQVlPVVQKLSAg
ICAgICAgICAgICAgICBBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOCi0gICAgICAgICAgICAg
ICAgQU5EUk9JRF9UT09MQ0hBSU5fTkFNRQotICAgICAgICAgICAgICAgIEFORFJPSURfQUJJCi0g
ICAgICAgICAgICAgICAgQU5EUk9JRF9OQVRJVkVfQVBJX0xFVkVMCi0gICAgICAgICAgICAgICAg
QU5EUk9JRF9TVEwKLSAgICAgICAgICAgICAgICBBTkRST0lEX1NUTF9GT1JDRV9GRUFUVVJFUwot
ICAgICAgICAgICAgICAgIEFORFJPSURfRk9SQ0VfQVJNX0JVSUxECi0gICAgICAgICAgICAgICAg
QU5EUk9JRF9OT19VTkRFRklORUQKLSAgICAgICAgICAgICAgICBBTkRST0lEX1NPX1VOREVGSU5F
RAotICAgICAgICAgICAgICAgIEFORFJPSURfRlVOQ1RJT05fTEVWRUxfTElOS0lORwotICAgICAg
ICAgICAgICAgIEFORFJPSURfR09MRF9MSU5LRVIKLSAgICAgICAgICAgICAgICBBTkRST0lEX05P
RVhFQ1NUQUNLCi0gICAgICAgICAgICAgICAgQU5EUk9JRF9SRUxSTwotICAgICAgICAgICAgICAg
IEFORFJPSURfTElCTV9QQVRICi0gICAgICAgICAgICAgICAgQU5EUk9JRF9FWFBMSUNJVF9DUlRf
TElOSwotICAgICAgICAgICAgICAgIEFORFJPSURfQVBQX1BJRQotICAgICAgICAgICAgICAgICkK
LSAgaWYoIERFRklORUQgJHtfX3Zhcn0gKQotICAgaWYoICR7X192YXJ9IE1BVENIRVMgIiAiKQot
ICAgIHNldCggX190b29sY2hhaW5fY29uZmlnICIke19fdG9vbGNoYWluX2NvbmZpZ31zZXQoICR7
X192YXJ9IFwiJHske19fdmFyfX1cIiBDQUNIRSBJTlRFUk5BTCBcIlwiIClcbiIgKQotICAgZWxz
ZSgpCi0gICAgc2V0KCBfX3Rvb2xjaGFpbl9jb25maWcgIiR7X190b29sY2hhaW5fY29uZmlnfXNl
dCggJHtfX3Zhcn0gJHske19fdmFyfX0gQ0FDSEUgSU5URVJOQUwgXCJcIiApXG4iICkKLSAgIGVu
ZGlmKCkKLSAgZW5kaWYoKQotIGVuZGZvcmVhY2goKQotIGZpbGUoIFdSSVRFICIke0NNQUtFX0JJ
TkFSWV9ESVJ9JHtDTUFLRV9GSUxFU19ESVJFQ1RPUll9L2FuZHJvaWQudG9vbGNoYWluLmNvbmZp
Zy5jbWFrZSIgIiR7X190b29sY2hhaW5fY29uZmlnfSIgKQotIHVuc2V0KCBfX3Rvb2xjaGFpbl9j
b25maWcgKQotZW5kaWYoKQotCi0KLSMgZm9yY2UgY21ha2UgdG8gcHJvZHVjZSAvIGluc3RlYWQg
b2YgXCBpbiBidWlsZCBjb21tYW5kcyBmb3IgTmluamEgZ2VuZXJhdG9yCi1pZiggQ01BS0VfR0VO
RVJBVE9SIE1BVENIRVMgIk5pbmphIiBBTkQgQ01BS0VfSE9TVF9XSU4zMiApCi0gIyBpdCBpcyBh
IGJhZCBoYWNrIGFmdGVyIGFsbAotICMgQ01ha2UgZ2VuZXJhdGVzIE5pbmphIG1ha2VmaWxlcyB3
aXRoIFVOSVggcGF0aHMgb25seSBpZiBpdCB0aGlua3MgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gYnVp
bGQgd2l0aCBNaW5HVwotIHNldCggQ01BS0VfQ09NUElMRVJfSVNfTUlOR1cgVFJVRSApICMgdGVs
bCBDTWFrZSB0aGF0IHdlIGFyZSBNaW5HVwotIHNldCggQ01BS0VfQ1JPU1NDT01QSUxJTkcgVFJV
RSApICAgICMgc3RvcCByZWN1cnNpb24KLSBlbmFibGVfbGFuZ3VhZ2UoIEMgKQotIGVuYWJsZV9s
YW5ndWFnZSggQ1hYICkKLSAjIHVuc2V0KCBDTUFLRV9DT01QSUxFUl9JU19NSU5HVyApICMgY2Fu
J3QgdW5zZXQgYmVjYXVzZSBDTWFrZSBkb2VzIG5vdCBjb252ZXJ0IGJhY2stc2xhc2hlcyBpbiBy
ZXNwb25zZSBmaWxlcyB3aXRob3V0IGl0Ci0gdW5zZXQoIE1JTkdXICkKLWVuZGlmKCkKLQotCi0j
IFZhcmlhYmxlcyBjb250cm9sbGluZyBiZWhhdmlvciBvciBzZXQgYnkgY21ha2UgdG9vbGNoYWlu
OgotIyAgIEFORFJPSURfQUJJIDogImFybWVhYmktdjdhIiAoZGVmYXVsdCksICJhcm1lYWJpIiwg
ImFybWVhYmktdjdhIHdpdGggTkVPTiIsICJhcm1lYWJpLXY3YSB3aXRoIFZGUFYzIiwgImFybWVh
YmktdjYgd2l0aCBWRlAiLCAieDg2IiwgIm1pcHMiLCAiYXJtNjQtdjhhIiwgIng4Nl82NCIsICJt
aXBzNjQiCi0jICAgQU5EUk9JRF9OQVRJVkVfQVBJX0xFVkVMIDogMyw0LDUsOCw5LDE0LDE1LDE2
LDE3LDE4LDE5LDIxIChkZXBlbmRzIG9uIE5ESyB2ZXJzaW9uKQotIyAgIEFORFJPSURfU1RMIDog
Z251c3RsX3N0YXRpYy9nbnVzdGxfc2hhcmVkL3N0bHBvcnRfc3RhdGljL3N0bHBvcnRfc2hhcmVk
L2dhYmkrK19zdGF0aWMvZ2FiaSsrX3NoYXJlZC9zeXN0ZW1fcmUvc3lzdGVtL25vbmUKLSMgICBB
TkRST0lEX0ZPUkJJRF9TWUdXSU4gOiBPTi9PRkYKLSMgICBBTkRST0lEX05PX1VOREVGSU5FRCA6
IE9OL09GRgotIyAgIEFORFJPSURfU09fVU5ERUZJTkVEIDogT0ZGL09OICAoZGVmYXVsdCBkZXBl
bmRzIG9uIE5ESyB2ZXJzaW9uKQotIyAgIEFORFJPSURfRlVOQ1RJT05fTEVWRUxfTElOS0lORyA6
IE9OL09GRgotIyAgIEFORFJPSURfR09MRF9MSU5LRVIgOiBPTi9PRkYKLSMgICBBTkRST0lEX05P
RVhFQ1NUQUNLIDogT04vT0ZGCi0jICAgQU5EUk9JRF9SRUxSTyA6IE9OL09GRgotIyAgIEFORFJP
SURfRk9SQ0VfQVJNX0JVSUxEIDogT04vT0ZGCi0jICAgQU5EUk9JRF9TVExfRk9SQ0VfRkVBVFVS
RVMgOiBPTi9PRkYKLSMgICBBTkRST0lEX0xJQk1fUEFUSCA6IHBhdGggdG8gbGlibS5zbyAoc2V0
IHRvIHNvbWV0aGluZyBsaWtlICQoVE9QKS9vdXQvdGFyZ2V0L3Byb2R1Y3QvPHByb2R1Y3RfbmFt
ZT4vb2JqL2xpYi9saWJtLnNvKSB0byB3b3JrYXJvdW5kIHVucmVzb2x2ZWQgYHNpbmNvc2AKLSMg
Q2FuIGJlIHNldCBvbmx5IGF0IHRoZSBmaXJzdCBydW46Ci0jICAgQU5EUk9JRF9OREsgOiBwYXRo
IHRvIHlvdXIgTkRLIGluc3RhbGwKLSMgICBOREtfQ0NBQ0hFIDogcGF0aCB0byB5b3VyIGNjYWNo
ZSBleGVjdXRhYmxlCi0jICAgQU5EUk9JRF9UT09MQ0hBSU5fTkFNRSA6IHRoZSBOREsgbmFtZSBv
ZiBjb21waWxlciB0b29sY2hhaW4KLSMgICBBTkRST0lEX05ES19IT1NUX1g2NCA6IHRyeSB0byB1
c2UgeDg2XzY0IHRvb2xjaGFpbiAoZGVmYXVsdCBmb3IgeDY0IGhvc3Qgc3lzdGVtcykKLSMgICBB
TkRST0lEX05ES19MQVlPVVQgOiB0aGUgaW5uZXIgTkRLIHN0cnVjdHVyZSAoUkVMRUFTRSwgTElO
QVJPLCBBTkRST0lEKQotIyAgIExJQlJBUllfT1VUUFVUX1BBVEhfUk9PVCA6IDxhbnkgdmFsaWQg
cGF0aD4KLSMgICBBTkRST0lEX1NUQU5EQUxPTkVfVE9PTENIQUlOCi0jCi0jIFByaW1hcnkgcmVh
ZC1vbmx5IHZhcmlhYmxlczoKLSMgICBBTkRST0lEIDogYWx3YXlzIFRSVUUKLSMgICBBUk1FQUJJ
IDogVFJVRSBmb3IgYXJtIHY2IGFuZCBvbGRlciBkZXZpY2VzCi0jICAgQVJNRUFCSV9WNiA6IFRS
VUUgZm9yIGFybSB2NgotIyAgIEFSTUVBQklfVjdBIDogVFJVRSBmb3IgYXJtIHY3YQotIyAgIEFS
TTY0X1Y4QSA6IFRSVUUgZm9yIGFybTY0LXY4YQotIyAgIE5FT04gOiBUUlVFIGlmIE5FT04gdW5p
dCBpcyBlbmFibGVkCi0jICAgVkZQVjMgOiBUUlVFIGlmIFZGUCB2ZXJzaW9uIDMgaXMgZW5hYmxl
ZAotIyAgIFg4NiA6IFRSVUUgaWYgY29uZmlndXJlZCBmb3IgeDg2Ci0jICAgWDg2XzY0IDogVFJV
RSBpZiBjb25maWd1cmVkIGZvciB4ODZfNjQKLSMgICBNSVBTIDogVFJVRSBpZiBjb25maWd1cmVk
IGZvciBtaXBzCi0jICAgTUlQUzY0IDogVFJVRSBpZiBjb25maWd1cmVkIGZvciBtaXBzNjQKLSMg
ICBCVUlMRF9XSVRIX0FORFJPSURfTkRLIDogVFJVRSBpZiBOREsgaXMgdXNlZAotIyAgIEJVSUxE
X1dJVEhfU1RBTkRBTE9ORV9UT09MQ0hBSU4gOiBUUlVFIGlmIHN0YW5kYWxvbmUgdG9vbGNoYWlu
IGlzIHVzZWQKLSMgICBBTkRST0lEX05ES19IT1NUX1NZU1RFTV9OQU1FIDogIndpbmRvd3MiLCAi
bGludXgteDg2IiBvciAiZGFyd2luLXg4NiIgZGVwZW5kaW5nIG9uIGhvc3QgcGxhdGZvcm0KLSMg
ICBBTkRST0lEX05ES19BQklfTkFNRSA6ICJhcm1lYWJpIiwgImFybWVhYmktdjdhIiwgIng4NiIs
ICJtaXBzIiwgImFybTY0LXY4YSIsICJ4ODZfNjQiLCAibWlwczY0IiBkZXBlbmRpbmcgb24gQU5E
Uk9JRF9BQkkKLSMgICBBTkRST0lEX05ES19SRUxFQVNFIDogZnJvbSByNSB0byByMTBkOyBzZXQg
b25seSBmb3IgTkRLCi0jICAgQU5EUk9JRF9OREtfUkVMRUFTRV9OVU0gOiBudW1lcmljIEFORFJP
SURfTkRLX1JFTEVBU0UgdmVyc2lvbiAoMTAwMCptYWpvcittaW5vcikKLSMgICBBTkRST0lEX0FS
Q0hfTkFNRSA6ICJhcm0iLCAieDg2IiwgIm1pcHMiLCAiYXJtNjQiLCAieDg2XzY0IiwgIm1pcHM2
NCIgZGVwZW5kaW5nIG9uIEFORFJPSURfQUJJCi0jICAgQU5EUk9JRF9TWVNST09UIDogcGF0aCB0
byB0aGUgY29tcGlsZXIgc3lzcm9vdAotIyAgIFRPT0xfT1NfU1VGRklYIDogIiIgb3IgIi5leGUi
IGRlcGVuZGluZyBvbiBob3N0IHBsYXRmb3JtCi0jICAgQU5EUk9JRF9DT01QSUxFUl9JU19DTEFO
RyA6IFRSVUUgaWYgY2xhbmcgY29tcGlsZXIgaXMgdXNlZAotIwotIyBTZWNvbmRhcnkgKGxlc3Mg
c3RhYmxlKSByZWFkLW9ubHkgdmFyaWFibGVzOgotIyAgIEFORFJPSURfQ09NUElMRVJfVkVSU0lP
TiA6IEdDQyB2ZXJzaW9uIHVzZWQgKG5vdCBDbGFuZyB2ZXJzaW9uKQotIyAgIEFORFJPSURfQ0xB
TkdfVkVSU0lPTiA6IHZlcnNpb24gb2YgY2xhbmcgY29tcGlsZXIgaWYgY2xhbmcgaXMgdXNlZAot
IyAgIEFORFJPSURfQ1hYX0ZMQUdTIDogQy9DKysgY29tcGlsZXIgZmxhZ3MgcmVxdWlyZWQgYnkg
QW5kcm9pZCBwbGF0Zm9ybQotIyAgIEFORFJPSURfU1VQUE9SVEVEX0FCSVMgOiBsaXN0IG9mIGN1
cnJlbnRseSBhbGxvd2VkIHZhbHVlcyBmb3IgQU5EUk9JRF9BQkkKLSMgICBBTkRST0lEX1RPT0xD
SEFJTl9NQUNISU5FX05BTUUgOiAiYXJtLWxpbnV4LWFuZHJvaWRlYWJpIiwgImFybS1lYWJpIiBv
ciAiaTY4Ni1hbmRyb2lkLWxpbnV4IgotIyAgIEFORFJPSURfVE9PTENIQUlOX1JPT1QgOiBwYXRo
IHRvIHRoZSB0b3AgbGV2ZWwgb2YgdG9vbGNoYWluIChzdGFuZGFsb25lIG9yIHBsYWNlZCBpbnNp
ZGUgTkRLKQotIyAgIEFORFJPSURfQ0xBTkdfVE9PTENIQUlOX1JPT1QgOiBwYXRoIHRvIGNsYW5n
IHRvb2xzCi0jICAgQU5EUk9JRF9TVVBQT1JURURfTkFUSVZFX0FQSV9MRVZFTFMgOiBsaXN0IG9m
IG5hdGl2ZSBBUEkgbGV2ZWxzIGZvdW5kIGluc2lkZSBOREsKLSMgICBBTkRST0lEX1NUTF9JTkNM
VURFX0RJUlMgOiBzdGwgaW5jbHVkZSBwYXRocwotIyAgIEFORFJPSURfUlRUSSA6IGlmIHJ0dGkg
aXMgZW5hYmxlZCBieSB0aGUgcnVudGltZQotIyAgIEFORFJPSURfRVhDRVBUSU9OUyA6IGlmIGV4
Y2VwdGlvbnMgYXJlIGVuYWJsZWQgYnkgdGhlIHJ1bnRpbWUKLSMgICBBTkRST0lEX0dDQ19UT09M
Q0hBSU5fTkFNRSA6IHJlYWQtb25seSwgZGlmZmVycyBmcm9tIEFORFJPSURfVE9PTENIQUlOX05B
TUUgb25seSBpZiBjbGFuZyBpcyB1c2VkCi0jCi0jIERlZmF1bHRzOgotIyAgIEFORFJPSURfREVG
QVVMVF9OREtfQVBJX0xFVkVMCi0jICAgQU5EUk9JRF9ERUZBVUxUX05ES19BUElfTEVWRUxfJHtB
UkNIfQotIyAgIEFORFJPSURfTkRLX1NFQVJDSF9QQVRIUwotIyAgIEFORFJPSURfU1VQUE9SVEVE
X0FCSVNfJHtBUkNIfQotIyAgIEFORFJPSURfU1VQUE9SVEVEX05ES19WRVJTSU9OUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvbmRrX2xpbmtzLm1kIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2FuZHJvaWQtY21ha2UvbmRrX2xpbmtzLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2ZDkzZDYxZDIzYzkwMzlmODJkNjcxNTI1YTE5MWMxNzA1M2M4M2M4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9hbmRyb2lkLWNtYWtlL25ka19saW5rcy5tZAorKysgL2Rldi9udWxsCkBAIC0xLDIxMSArMCww
IEBACi0KLT09PT09PT09PT09PT09IHIxID09PT09PT09PT09PT09IChkZWFkIGxpbmtzKQotCi0q
IGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLTEuNV9yMS13aW5k
b3dzLnppcAotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay0x
LjVfcjEtZGFyd2luLXg4Ni56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsv
YW5kcm9pZC1uZGstMS41X3IxLWxpbnV4LXg4Ni56aXAKLQotPT09PT09PT09PT09PT0gcjIgPT09
PT09PT09PT09PT0KLQotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lk
LW5kay0xLjZfcjEtd2luZG93cy56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9u
ZGsvYW5kcm9pZC1uZGstMS42X3IxLWRhcndpbi14ODYuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUu
Y29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLTEuNl9yMS1saW51eC14ODYuemlwCi0KLT09PT09
PT09PT09PT09IHIzID09PT09PT09PT09PT09Ci0KLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5k
cm9pZC9uZGsvYW5kcm9pZC1uZGstcjMtd2luZG93cy56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5j
b20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjMtZGFyd2luLXg4Ni56aXAKLSogaHR0cDovL2Rs
Lmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjMtbGludXgteDg2LnppcAotCi09
PT09PT09PT09PT09PSByNCA9PT09PT09PT09PT09PQotCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29t
L2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI0LXdpbmRvd3MuemlwCi0qIGh0dHA6Ly9kbC5nb29n
bGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI0LWRhcndpbi14ODYuemlwCi0qIGh0dHA6
Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI0LWxpbnV4LXg4Ni56aXAK
LQotPT09PT09PT09PT09PT0gcjRiID09PT09PT09PT09PT09Ci0KLSogaHR0cDovL2RsLmdvb2ds
ZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjRiLXdpbmRvd3MuemlwCi0qIGh0dHA6Ly9k
bC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI0Yi1kYXJ3aW4teDg2LnppcAot
KiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yNGItbGludXgt
eDg2LnppcAotCi09PT09PT09PT09PT09PSByNSA9PT09PT09PT09PT09PQotCi0qIGh0dHA6Ly9k
bC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI1LXdpbmRvd3MuemlwCi0qIGh0
dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI1LWRhcndpbi14ODYu
dGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1y
NS1saW51eC14ODYudGFyLmJ6MgotCi09PT09PT09PT09PT09PSByNWIgPT09PT09PT09PT09PT0K
LQotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yNWItd2lu
ZG93cy56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGst
cjViLWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25k
ay9hbmRyb2lkLW5kay1yNWItbGludXgteDg2LnRhci5iejIKLQotPT09PT09PT09PT09PT0gcjVj
ID09PT09PT09PT09PT09Ci0KLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5k
cm9pZC1uZGstcjVjLXdpbmRvd3MuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQv
bmRrL2FuZHJvaWQtbmRrLXI1Yy1kYXJ3aW4teDg2LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2ds
ZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjVjLWxpbnV4LXg4Ni50YXIuYnoyCi0KLT09
PT09PT09PT09PT09IHI2ID09PT09PT09PT09PT09Ci0KLSogaHR0cDovL2RsLmdvb2dsZS5jb20v
YW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjYtd2luZG93cy56aXAKLSogaHR0cDovL2RsLmdvb2ds
ZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjYtZGFyd2luLXg4Ni50YXIuYnoyCi0qIGh0
dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI2LWxpbnV4LXg4Ni50
YXIuYnoyCi0KLT09PT09PT09PT09PT09IHI2YiA9PT09PT09PT09PT09PQotCi0qIGh0dHA6Ly9k
bC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI2Yi13aW5kb3dzLnppcAotKiBo
dHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yNmItZGFyd2luLXg4
Ni50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRr
LXI2Yi1saW51eC14ODYudGFyLmJ6MgotCi09PT09PT09PT09PT09PSByNyA9PT09PT09PT09PT09
PQotCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI3LXdp
bmRvd3MuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRr
LXI3LWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25k
ay9hbmRyb2lkLW5kay1yNy1saW51eC14ODYudGFyLmJ6MgotCi09PT09PT09PT09PT09PSByN2Ig
PT09PT09PT09PT09PT0KLQotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRy
b2lkLW5kay1yN2Itd2luZG93cy56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9u
ZGsvYW5kcm9pZC1uZGstcjdiLWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xl
LmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yN2ItbGludXgteDg2LnRhci5iejIKLQotPT09
PT09PT09PT09PT0gcjdjID09PT09PT09PT09PT09Ci0KLSogaHR0cDovL2RsLmdvb2dsZS5jb20v
YW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjdjLXdpbmRvd3MuemlwCi0qIGh0dHA6Ly9kbC5nb29n
bGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI3Yy1kYXJ3aW4teDg2LnRhci5iejIKLSog
aHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjdjLWxpbnV4LXg4
Ni50YXIuYnoyCi0KLT09PT09PT09PT09PT09IHI4ID09PT09PT09PT09PT09Ci0KLSogaHR0cDov
L2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjgtd2luZG93cy56aXAKLSog
aHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjgtZGFyd2luLXg4
Ni50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRr
LXI4LWxpbnV4LXg4Ni50YXIuYnoyCi0KLT09PT09PT09PT09PT09IHI4YiA9PT09PT09PT09PT09
PQotCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI4Yi13
aW5kb3dzLnppcAotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5k
ay1yOGItZGFyd2luLXg4Ni50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQv
bmRrL2FuZHJvaWQtbmRrLXI4Yi1saW51eC14ODYudGFyLmJ6MgotCi09PT09PT09PT09PT09PSBy
OGMgPT09PT09PT09PT09PT0KLQotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9h
bmRyb2lkLW5kay1yOGMtd2luZG93cy56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9p
ZC9uZGsvYW5kcm9pZC1uZGstcjhjLWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29v
Z2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOGMtbGludXgteDg2LnRhci5iejIKLQot
PT09PT09PT09PT09PT0gcjhkID09PT09PT09PT09PT09Ci0KLSogaHR0cDovL2RsLmdvb2dsZS5j
b20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjhkLXdpbmRvd3MuemlwCi0qIGh0dHA6Ly9kbC5n
b29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI4ZC1kYXJ3aW4teDg2LnRhci5iejIK
LSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjhkLWxpbnV4
LXg4Ni50YXIuYnoyCi0KLT09PT09PT09PT09PT09IHI4ZSA9PT09PT09PT09PT09PQotCi0qIGh0
dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI4ZS13aW5kb3dzLXg4
Ni56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjhl
LXdpbmRvd3MteDg2XzY0LnppcAotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9h
bmRyb2lkLW5kay1yOGUtZGFyd2luLXg4Ni50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29t
L2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI4ZS1kYXJ3aW4teDg2XzY0LnRhci5iejIKLSogaHR0
cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjhlLWxpbnV4LXg4Ni50
YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI4
ZS1saW51eC14ODZfNjQudGFyLmJ6MgotCi09PT09PT09PT09PT09PSByOSA9PT09PT09PT09PT09
PQotCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5LXdp
bmRvd3MteDg2LnppcAotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lk
LW5kay1yOS13aW5kb3dzLXg4Ni1sZWdhY3ktdG9vbGNoYWlucy56aXAKLSogaHR0cDovL2RsLmdv
b2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjktd2luZG93cy14ODZfNjQuemlwCi0q
IGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5LXdpbmRvd3Mt
eDg2XzY0LWxlZ2FjeS10b29sY2hhaW5zLnppcAotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRy
b2lkL25kay9hbmRyb2lkLW5kay1yOS1kYXJ3aW4teDg2LnRhci5iejIKLSogaHR0cDovL2RsLmdv
b2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjktZGFyd2luLXg4Ni1sZWdhY3ktdG9v
bGNoYWlucy50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJv
aWQtbmRrLXI5LWRhcndpbi14ODZfNjQudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9h
bmRyb2lkL25kay9hbmRyb2lkLW5kay1yOS1kYXJ3aW4teDg2XzY0LWxlZ2FjeS10b29sY2hhaW5z
LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGst
cjktbGludXgteDg2LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsv
YW5kcm9pZC1uZGstcjktbGludXgteDg2LWxlZ2FjeS10b29sY2hhaW5zLnRhci5iejIKLSogaHR0
cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjktbGludXgteDg2XzY0
LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGst
cjktbGludXgteDg2XzY0LWxlZ2FjeS10b29sY2hhaW5zLnRhci5iejIKLQotPT09PT09PT09PT09
PT0gcjliID09PT09PT09PT09PT09Ci0KLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9u
ZGsvYW5kcm9pZC1uZGstcjliLXdpbmRvd3MteDg2LnppcAotKiBodHRwOi8vZGwuZ29vZ2xlLmNv
bS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWItd2luZG93cy14ODYtbGVnYWN5LXRvb2xjaGFp
bnMuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5
Yi13aW5kb3dzLXg4Nl82NC56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsv
YW5kcm9pZC1uZGstcjliLXdpbmRvd3MteDg2XzY0LWxlZ2FjeS10b29sY2hhaW5zLnppcAotKiBo
dHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWItZGFyd2luLXg4
Ni50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRr
LXI5Yi1kYXJ3aW4teDg2LWxlZ2FjeS10b29sY2hhaW5zLnRhci5iejIKLSogaHR0cDovL2RsLmdv
b2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjliLWRhcndpbi14ODZfNjQudGFyLmJ6
MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWItZGFy
d2luLXg4Nl82NC1sZWdhY3ktdG9vbGNoYWlucy50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUu
Y29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5Yi1saW51eC14ODYudGFyLmJ6MgotKiBodHRw
Oi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWItbGludXgteDg2LWxl
Z2FjeS10b29sY2hhaW5zLnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9u
ZGsvYW5kcm9pZC1uZGstcjliLWxpbnV4LXg4Nl82NC50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29n
bGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5Yi1saW51eC14ODZfNjQtbGVnYWN5LXRv
b2xjaGFpbnMudGFyLmJ6MgotCi09PT09PT09PT09PT09PSByOWMgPT09PT09PT09PT09PT0KLQot
KiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWMtd2luZG93
cy14ODYuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRr
LXI5Yy13aW5kb3dzLXg4Nl82NC56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9u
ZGsvYW5kcm9pZC1uZGstcjljLWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xl
LmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWMtZGFyd2luLXg4Nl82NC50YXIuYnoyCi0q
IGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5Yy1saW51eC14
ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5k
ay1yOWMtbGludXgteDg2XzY0LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9p
ZC9uZGsvYW5kcm9pZC1uZGstcjljLWN4eC1zdGwtbGlicy13aXRoLWRlYnVnZ2luZy1pbmZvLnpp
cAotCi09PT09PT09PT09PT09PSByOWQgPT09PT09PT09PT09PT0KLQotKiBodHRwOi8vZGwuZ29v
Z2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWQtd2luZG93cy14ODYuemlwCi0qIGh0
dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5ZC13aW5kb3dzLXg4
Nl82NC56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGst
cjlkLWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25k
ay9hbmRyb2lkLW5kay1yOWQtZGFyd2luLXg4Nl82NC50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29n
bGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI5ZC1saW51eC14ODYudGFyLmJ6MgotKiBo
dHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yOWQtbGludXgteDg2
XzY0LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1u
ZGstcjlkLWN4eC1zdGwtbGlicy13aXRoLWRlYnVnLWluZm8uemlwCi0KLT09PT09PT09PT09PT09
IHIxMCA9PT09PT09PT09PT09PQotCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRr
L2FuZHJvaWQtbmRrMzItcjEwLXdpbmRvd3MteDg2LnppcAotKiBodHRwOi8vZGwuZ29vZ2xlLmNv
bS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazMyLXIxMC13aW5kb3dzLXg4Nl82NC56aXAKLSogaHR0
cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGszMi1yMTAtZGFyd2luLXg4
Ni50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRr
MzItcjEwLWRhcndpbi14ODZfNjQudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRy
b2lkL25kay9hbmRyb2lkLW5kazMyLXIxMC1saW51eC14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwu
Z29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazMyLXIxMC1saW51eC14ODZfNjQudGFy
LmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazY0LXIx
MC13aW5kb3dzLXg4Ni56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5k
cm9pZC1uZGs2NC1yMTAtd2luZG93cy14ODZfNjQuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29t
L2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrNjQtcjEwLWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRw
Oi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazY0LXIxMC1kYXJ3aW4teDg2
XzY0LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1u
ZGs2NC1yMTAtbGludXgteDg2LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9p
ZC9uZGsvYW5kcm9pZC1uZGs2NC1yMTAtbGludXgteDg2XzY0LnRhci5iejIKLSogaHR0cDovL2Rs
Lmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjEwLWN4eC1zdGwtbGlicy13aXRo
LWRlYnVnLWluZm8uemlwCi0KLT09PT09PT09PT09PT09IHIxMGIgPT09PT09PT09PT09PT0KLQot
KiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazMyLXIxMGItd2lu
ZG93cy14ODYuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQt
bmRrMzItcjEwYi13aW5kb3dzLXg4Nl82NC56aXAKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5k
cm9pZC9uZGsvYW5kcm9pZC1uZGszMi1yMTBiLWRhcndpbi14ODYudGFyLmJ6MgotKiBodHRwOi8v
ZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazMyLXIxMGItZGFyd2luLXg4Nl82
NC50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRr
MzItcjEwYi1saW51eC14ODYudGFyLmJ6MgotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lk
L25kay9hbmRyb2lkLW5kazMyLXIxMGItbGludXgteDg2XzY0LnRhci5iejIKLSogaHR0cDovL2Rs
Lmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGs2NC1yMTBiLXdpbmRvd3MteDg2Lnpp
cAotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazY0LXIxMGIt
d2luZG93cy14ODZfNjQuemlwCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2Fu
ZHJvaWQtbmRrNjQtcjEwYi1kYXJ3aW4teDg2LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5j
b20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGs2NC1yMTBiLWRhcndpbi14ODZfNjQudGFyLmJ6Mgot
KiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kazY0LXIxMGItbGlu
dXgteDg2LnRhci5iejIKLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9p
ZC1uZGs2NC1yMTBiLWxpbnV4LXg4Nl82NC50YXIuYnoyCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29t
L2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXIxMGItY3h4LXN0bC1saWJzLXdpdGgtZGVidWctaW5m
by56aXAKLQotPT09PT09PT09PT09PT0gcjEwYyA9PT09PT09PT09PT09PQotCi0qIGh0dHA6Ly9k
bC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXIxMGMtd2luZG93cy14ODYuZXhl
Ci0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXIxMGMtd2lu
ZG93cy14ODZfNjQuZXhlCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJv
aWQtbmRrLXIxMGMtZGFyd2luLXg4Ni5iaW4KLSogaHR0cDovL2RsLmdvb2dsZS5jb20vYW5kcm9p
ZC9uZGsvYW5kcm9pZC1uZGstcjEwYy1kYXJ3aW4teDg2XzY0LmJpbgotKiBodHRwOi8vZGwuZ29v
Z2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yMTBjLWxpbnV4LXg4Ni5iaW4KLSogaHR0
cDovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjEwYy1saW51eC14ODZf
NjQuYmluCi0KLT09PT09PT09PT09PT09IHIxMGQgPT09PT09PT09PT09PT0KLQotKiBodHRwOi8v
ZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yMTBkLXdpbmRvd3MteDg2LmV4
ZQotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yMTBkLXdp
bmRvd3MteDg2XzY0LmV4ZQotKiBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRy
b2lkLW5kay1yMTBkLWRhcndpbi14ODYuYmluCi0qIGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJv
aWQvbmRrL2FuZHJvaWQtbmRrLXIxMGQtZGFyd2luLXg4Nl82NC5iaW4KLSogaHR0cDovL2RsLmdv
b2dsZS5jb20vYW5kcm9pZC9uZGsvYW5kcm9pZC1uZGstcjEwZC1saW51eC14ODYuYmluCi0qIGh0
dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXIxMGQtbGludXgteDg2
XzY0LmJpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2ZpYXQvTUVUQURBVEEgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZmlhdC9NRVRBREFUQQppbmRleCA2Y2QxNjEyMWFlYzVmYWU4ODUxOTkyYTNk
OTI4ZWI0ZGI4ZjMxM2UzLi4wZTQwMTJmM2QyMDU0NTFmODk5ZTI5YWI0Njc1ODM1ZDhkNzBiODA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZmlhdC9NRVRBREFUQQorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZmlhdC9NRVRBREFUQQpAQCAtNiw4ICs2LDggQEAgdGhpcmRfcGFydHkgewogICAg
IHR5cGU6IEdJVAogICAgIHZhbHVlOiAiaHR0cHM6Ly9naXRodWIuY29tL21pdC1wbHYvZmlhdC1j
cnlwdG8iCiAgIH0KLSAgdmVyc2lvbjogIjZjNGQ0YWZiMjZkZTYzOTcxOGZjYWMzOTA5NDM1M2Nh
N2ZlZWMzNjUiCi0gIGxhc3RfdXBncmFkZV9kYXRlIHsgeWVhcjogMjAxNyBtb250aDogMTEgZGF5
OiAzIH0KKyAgdmVyc2lvbjogIjQ0NDE3ODVmYjQ0Yjg4YmI2OTQzZGRiZjYzOWQ4NzJjOGM5MDMy
ODEiCisgIGxhc3RfdXBncmFkZV9kYXRlIHsgeWVhcjogMjAxOSBtb250aDogMSBkYXk6IDE2IH0K
IAogICBsb2NhbF9tb2RpZmljYXRpb25zOiAiRmlhdC1nZW5lcmF0ZWQgY29kZSBoYXMgYmVlbiBp
bnRlZ3JhdGVkIGludG8gZXhpc3RpbmcgQm9yaW5nU1NMIGNvZGUiCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZmlhdC9jdXJ2ZTI1NTE5LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZmlhdC9j
dXJ2ZTI1NTE5LmMKaW5kZXggMTU2MjNjNjQ5NzhkOGYyZjc1M2I4YjdhZGU2NjY1OGViM2FlZGUy
MS4uNTY0YmVjYjdhYmJhNTk2MWJhYjZhOGVkOTdhZjM3NzExMjlkNTk4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2ZpYXQvY3VydmUyNTUxOS5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9m
aWF0L2N1cnZlMjU1MTkuYwpAQCAtNDUsOCArNDUsMTQgQEAKIC8vIFZhcmlvdXMgcHJlLWNvbXB1
dGVkIGNvbnN0YW50cy4KICNpbmNsdWRlICIuL2N1cnZlMjU1MTlfdGFibGVzLmgiCiAKKyNpZiBk
ZWZpbmVkKEJPUklOR1NTTF9DVVJWRTI1NTE5XzY0QklUKQorI2luY2x1ZGUgIi4vY3VydmUyNTUx
OV82NC5oIgorI2Vsc2UKKyNpbmNsdWRlICIuL2N1cnZlMjU1MTlfMzIuaCIKKyNlbmRpZiAgLy8g
Qk9SSU5HU1NMX0NVUlZFMjU1MTlfNjRCSVQKIAotLy8gTG93LWxldmVsIGludHJpbnNpYyBvcGVy
YXRpb25zIChoYW5kLXdyaXR0ZW4pLgorCisvLyBMb3ctbGV2ZWwgaW50cmluc2ljIG9wZXJhdGlv
bnMKIAogc3RhdGljIHVpbnQ2NF90IGxvYWRfMyhjb25zdCB1aW50OF90ICppbikgewogICB1aW50
NjRfdCByZXN1bHQ7CkBAIC02NSw3MDYgKzcxLDExMSBAQCBzdGF0aWMgdWludDY0X3QgbG9hZF80
KGNvbnN0IHVpbnQ4X3QgKmluKSB7CiAgIHJldHVybiByZXN1bHQ7CiB9CiAKLSNpZiBkZWZpbmVk
KEJPUklOR1NTTF9DVVJWRTI1NTE5XzY0QklUKQotc3RhdGljIHVpbnQ2NF90IGxvYWRfOChjb25z
dCB1aW50OF90ICppbikgewotICB1aW50NjRfdCByZXN1bHQ7Ci0gIHJlc3VsdCA9ICh1aW50NjRf
dClpblswXTsKLSAgcmVzdWx0IHw9ICgodWludDY0X3QpaW5bMV0pIDw8IDg7Ci0gIHJlc3VsdCB8
PSAoKHVpbnQ2NF90KWluWzJdKSA8PCAxNjsKLSAgcmVzdWx0IHw9ICgodWludDY0X3QpaW5bM10p
IDw8IDI0OwotICByZXN1bHQgfD0gKCh1aW50NjRfdClpbls0XSkgPDwgMzI7Ci0gIHJlc3VsdCB8
PSAoKHVpbnQ2NF90KWluWzVdKSA8PCA0MDsKLSAgcmVzdWx0IHw9ICgodWludDY0X3QpaW5bNl0p
IDw8IDQ4OwotICByZXN1bHQgfD0gKCh1aW50NjRfdClpbls3XSkgPDwgNTY7Ci0gIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLXN0YXRpYyB1aW50OF90IC8qYm9vbCovIGFkZGNhcnJ5eF91NTEodWludDhf
dCAvKmJvb2wqLyBjLCB1aW50NjRfdCBhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50NjRfdCBiLCB1aW50NjRfdCAqbG93KSB7Ci0gIC8vIFRoaXMgZnVuY3Rpb24g
ZXh0cmFjdHMgNTEgYml0cyBvZiByZXN1bHQgYW5kIDEgYml0IG9mIGNhcnJ5ICg1MiB0b3RhbCks
IHNvCi0gIC8vIGEgNjQtYml0IGludGVybWVkaWF0ZSBpcyBzdWZmaWNpZW50LgotICB1aW50NjRf
dCB4ID0gYSArIGIgKyBjOwotICAqbG93ID0geCAmICgoVUlOVDY0X0MoMSkgPDwgNTEpIC0gMSk7
Ci0gIHJldHVybiAoeCA+PiA1MSkgJiAxOwotfQotCi1zdGF0aWMgdWludDhfdCAvKmJvb2wqLyBz
dWJib3Jyb3dfdTUxKHVpbnQ4X3QgLypib29sKi8gYywgdWludDY0X3QgYSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYiwgdWludDY0X3QgKmxvdykgewot
ICAvLyBUaGlzIGZ1bmN0aW9uIGV4dHJhY3RzIDUxIGJpdHMgb2YgcmVzdWx0IGFuZCAxIGJpdCBv
ZiBib3Jyb3cgKDUyIHRvdGFsKSwgc28KLSAgLy8gYSA2NC1iaXQgaW50ZXJtZWRpYXRlIGlzIHN1
ZmZpY2llbnQuCi0gIHVpbnQ2NF90IHggPSBhIC0gYiAtIGM7Ci0gICpsb3cgPSB4ICYgKChVSU5U
NjRfQygxKSA8PCA1MSkgLSAxKTsKLSAgcmV0dXJuIHggPj4gNjM7Ci19Ci0KLXN0YXRpYyB1aW50
NjRfdCBjbW92em56NjQodWludDY0X3QgdCwgdWludDY0X3QgeiwgdWludDY0X3QgbnopIHsKLSAg
dCA9IC0hIXQ7IC8vIGFsbCBzZXQgaWYgbm9uemVybywgMCBpZiAwCi0gIHJldHVybiAodCZueikg
fCAoKH50KSZ6KTsKLX0KLQotI2Vsc2UKLQotc3RhdGljIHVpbnQ4X3QgLypib29sKi8gYWRkY2Fy
cnl4X3UyNSh1aW50OF90IC8qYm9vbCovIGMsIHVpbnQzMl90IGEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGIsIHVpbnQzMl90ICpsb3cpIHsKLSAgLy8g
VGhpcyBmdW5jdGlvbiBleHRyYWN0cyAyNSBiaXRzIG9mIHJlc3VsdCBhbmQgMSBiaXQgb2YgY2Fy
cnkgKDI2IHRvdGFsKSwgc28KLSAgLy8gYSAzMi1iaXQgaW50ZXJtZWRpYXRlIGlzIHN1ZmZpY2ll
bnQuCi0gIHVpbnQzMl90IHggPSBhICsgYiArIGM7Ci0gICpsb3cgPSB4ICYgKCgxIDw8IDI1KSAt
IDEpOwotICByZXR1cm4gKHggPj4gMjUpICYgMTsKLX0KLQotc3RhdGljIHVpbnQ4X3QgLypib29s
Ki8gYWRkY2Fycnl4X3UyNih1aW50OF90IC8qYm9vbCovIGMsIHVpbnQzMl90IGEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGIsIHVpbnQzMl90ICpsb3cp
IHsKLSAgLy8gVGhpcyBmdW5jdGlvbiBleHRyYWN0cyAyNiBiaXRzIG9mIHJlc3VsdCBhbmQgMSBi
aXQgb2YgY2FycnkgKDI3IHRvdGFsKSwgc28KLSAgLy8gYSAzMi1iaXQgaW50ZXJtZWRpYXRlIGlz
IHN1ZmZpY2llbnQuCi0gIHVpbnQzMl90IHggPSBhICsgYiArIGM7Ci0gICpsb3cgPSB4ICYgKCgx
IDw8IDI2KSAtIDEpOwotICByZXR1cm4gKHggPj4gMjYpICYgMTsKLX0KLQotc3RhdGljIHVpbnQ4
X3QgLypib29sKi8gc3ViYm9ycm93X3UyNSh1aW50OF90IC8qYm9vbCovIGMsIHVpbnQzMl90IGEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGIsIHVpbnQz
Ml90ICpsb3cpIHsKLSAgLy8gVGhpcyBmdW5jdGlvbiBleHRyYWN0cyAyNSBiaXRzIG9mIHJlc3Vs
dCBhbmQgMSBiaXQgb2YgYm9ycm93ICgyNiB0b3RhbCksIHNvCi0gIC8vIGEgMzItYml0IGludGVy
bWVkaWF0ZSBpcyBzdWZmaWNpZW50LgotICB1aW50MzJfdCB4ID0gYSAtIGIgLSBjOwotICAqbG93
ID0geCAmICgoMSA8PCAyNSkgLSAxKTsKLSAgcmV0dXJuIHggPj4gMzE7Ci19Ci0KLXN0YXRpYyB1
aW50OF90IC8qYm9vbCovIHN1YmJvcnJvd191MjYodWludDhfdCAvKmJvb2wqLyBjLCB1aW50MzJf
dCBhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBiLCB1
aW50MzJfdCAqbG93KSB7Ci0gIC8vIFRoaXMgZnVuY3Rpb24gZXh0cmFjdHMgMjYgYml0cyBvZiBy
ZXN1bHQgYW5kIDEgYml0IG9mIGJvcnJvdyAoMjcgdG90YWwpLCBzbwotICAvLyBhIDMyLWJpdCBp
bnRlcm1lZGlhdGUgaXMgc3VmZmljaWVudC4KLSAgdWludDMyX3QgeCA9IGEgLSBiIC0gYzsKLSAg
KmxvdyA9IHggJiAoKDEgPDwgMjYpIC0gMSk7Ci0gIHJldHVybiB4ID4+IDMxOwotfQotCi1zdGF0
aWMgdWludDMyX3QgY21vdnpuejMyKHVpbnQzMl90IHQsIHVpbnQzMl90IHosIHVpbnQzMl90IG56
KSB7Ci0gIHQgPSAtISF0OyAvLyBhbGwgc2V0IGlmIG5vbnplcm8sIDAgaWYgMAotICByZXR1cm4g
KHQmbnopIHwgKCh+dCkmeik7Ci19Ci0KLSNlbmRpZgotCiAKIC8vIEZpZWxkIG9wZXJhdGlvbnMu
CiAKICNpZiBkZWZpbmVkKEJPUklOR1NTTF9DVVJWRTI1NTE5XzY0QklUKQogCi0jZGVmaW5lIGFz
c2VydF9mZShmKSBkbyB7IFwKLSAgZm9yICh1bnNpZ25lZCBfYXNzZXJ0X2ZlX2kgPSAwOyBfYXNz
ZXJ0X2ZlX2k8IDU7IF9hc3NlcnRfZmVfaSsrKSB7IFwKLSAgICBhc3NlcnQoZltfYXNzZXJ0X2Zl
X2ldIDwgMS4xMjUqKFVJTlQ2NF9DKDEpPDw1MSkpOyBcCi0gIH0gXAotfSB3aGlsZSAoMCkKLQot
I2RlZmluZSBhc3NlcnRfZmVfbG9vc2UoZikgZG8geyBcCi0gIGZvciAodW5zaWduZWQgX2Fzc2Vy
dF9mZV9pID0gMDsgX2Fzc2VydF9mZV9pPCA1OyBfYXNzZXJ0X2ZlX2krKykgeyBcCi0gICAgYXNz
ZXJ0KGZbX2Fzc2VydF9mZV9pXSA8IDMuMzc1KihVSU5UNjRfQygxKTw8NTEpKTsgXAotICB9IFwK
LX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgYXNzZXJ0X2ZlX2Zyb3plbihmKSBkbyB7IFwKLSAgZm9y
ICh1bnNpZ25lZCBfYXNzZXJ0X2ZlX2kgPSAwOyBfYXNzZXJ0X2ZlX2k8IDU7IF9hc3NlcnRfZmVf
aSsrKSB7IFwKLSAgICBhc3NlcnQoZltfYXNzZXJ0X2ZlX2ldIDwgKFVJTlQ2NF9DKDEpPDw1MSkp
OyBcCi0gIH0gXAotfSB3aGlsZSAoMCkKLQotc3RhdGljIHZvaWQgZmVfZnJvbWJ5dGVzX2ltcGwo
dWludDY0X3QgaFs1XSwgY29uc3QgdWludDhfdCAqcykgewotICAvLyBJZ25vcmVzIHRvcCBiaXQg
b2Ygcy4KLSAgdWludDY0X3QgYTAgPSBsb2FkXzgocyk7Ci0gIHVpbnQ2NF90IGExID0gbG9hZF84
KHMrOCk7Ci0gIHVpbnQ2NF90IGEyID0gbG9hZF84KHMrMTYpOwotICB1aW50NjRfdCBhMyA9IGxv
YWRfOChzKzI0KTsKLSAgLy8gVXNlIDUxIGJpdHMsIDY0LTUxID0gMTMgbGVmdC4KLSAgaFswXSA9
IGEwICYgKChVSU5UNjRfQygxKSA8PCA1MSkgLSAxKTsKLSAgLy8gKDY0LTUxKSArIDM4ID0gMTMg
KyAzOCA9IDUxCi0gIGhbMV0gPSAoYTAgPj4gNTEpIHwgKChhMSAmICgoVUlOVDY0X0MoMSkgPDwg
MzgpIC0gMSkpIDw8IDEzKTsKLSAgLy8gKDY0LTM4KSArIDI1ID0gMjYgKyAyNSA9IDUxCi0gIGhb
Ml0gPSAoYTEgPj4gMzgpIHwgKChhMiAmICgoVUlOVDY0X0MoMSkgPDwgMjUpIC0gMSkpIDw8IDI2
KTsKLSAgLy8gKDY0LTI1KSArIDEyID0gMzkgKyAxMiA9IDUxCi0gIGhbM10gPSAoYTIgPj4gMjUp
IHwgKChhMyAmICgoVUlOVDY0X0MoMSkgPDwgMTIpIC0gMSkpIDw8IDM5KTsKLSAgLy8gKDY0LTEy
KSA9IDUyLCBpZ25vcmUgdG9wIGJpdAotICBoWzRdID0gKGEzID4+IDEyKSAmICgoVUlOVDY0X0Mo
MSkgPDwgNTEpIC0gMSk7Ci0gIGFzc2VydF9mZShoKTsKLX0KLQotc3RhdGljIHZvaWQgZmVfZnJv
bWJ5dGVzKGZlICpoLCBjb25zdCB1aW50OF90ICpzKSB7Ci0gIGZlX2Zyb21ieXRlc19pbXBsKGgt
PnYsIHMpOwotfQotCi1zdGF0aWMgdm9pZCBmZV9mcmVlemUodWludDY0X3Qgb3V0WzVdLCBjb25z
dCB1aW50NjRfdCBpbjFbNV0pIHsKLSAgeyBjb25zdCB1aW50NjRfdCB4NyA9IGluMVs0XTsKLSAg
eyBjb25zdCB1aW50NjRfdCB4OCA9IGluMVszXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4NiA9IGlu
MVsyXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4NCA9IGluMVsxXTsKLSAgeyBjb25zdCB1aW50NjRf
dCB4MiA9IGluMVswXTsKLSAgeyB1aW50NjRfdCB4MTA7IHVpbnQ4X3QvKmJvb2wqLyB4MTEgPSBz
dWJib3Jyb3dfdTUxKDB4MCwgeDIsIDB4N2ZmZmZmZmZmZmZlZCwgJngxMCk7Ci0gIHsgdWludDY0
X3QgeDEzOyB1aW50OF90Lypib29sKi8geDE0ID0gc3ViYm9ycm93X3U1MSh4MTEsIHg0LCAweDdm
ZmZmZmZmZmZmZmYsICZ4MTMpOwotICB7IHVpbnQ2NF90IHgxNjsgdWludDhfdC8qYm9vbCovIHgx
NyA9IHN1YmJvcnJvd191NTEoeDE0LCB4NiwgMHg3ZmZmZmZmZmZmZmZmLCAmeDE2KTsKLSAgeyB1
aW50NjRfdCB4MTk7IHVpbnQ4X3QvKmJvb2wqLyB4MjAgPSBzdWJib3Jyb3dfdTUxKHgxNywgeDgs
IDB4N2ZmZmZmZmZmZmZmZiwgJngxOSk7Ci0gIHsgdWludDY0X3QgeDIyOyB1aW50OF90Lypib29s
Ki8geDIzID0gc3ViYm9ycm93X3U1MSh4MjAsIHg3LCAweDdmZmZmZmZmZmZmZmYsICZ4MjIpOwot
ICB7IHVpbnQ2NF90IHgyNCA9IGNtb3Z6bno2NCh4MjMsIDB4MCwgMHhmZmZmZmZmZmZmZmZmZmZm
TCk7Ci0gIHsgdWludDY0X3QgeDI1ID0gKHgyNCAmIDB4N2ZmZmZmZmZmZmZlZCk7Ci0gIHsgdWlu
dDY0X3QgeDI3OyB1aW50OF90Lypib29sKi8geDI4ID0gYWRkY2Fycnl4X3U1MSgweDAsIHgxMCwg
eDI1LCAmeDI3KTsKLSAgeyB1aW50NjRfdCB4MjkgPSAoeDI0ICYgMHg3ZmZmZmZmZmZmZmZmKTsK
LSAgeyB1aW50NjRfdCB4MzE7IHVpbnQ4X3QvKmJvb2wqLyB4MzIgPSBhZGRjYXJyeXhfdTUxKHgy
OCwgeDEzLCB4MjksICZ4MzEpOwotICB7IHVpbnQ2NF90IHgzMyA9ICh4MjQgJiAweDdmZmZmZmZm
ZmZmZmYpOwotICB7IHVpbnQ2NF90IHgzNTsgdWludDhfdC8qYm9vbCovIHgzNiA9IGFkZGNhcnJ5
eF91NTEoeDMyLCB4MTYsIHgzMywgJngzNSk7Ci0gIHsgdWludDY0X3QgeDM3ID0gKHgyNCAmIDB4
N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDY0X3QgeDM5OyB1aW50OF90Lypib29sKi8geDQwID0g
YWRkY2Fycnl4X3U1MSh4MzYsIHgxOSwgeDM3LCAmeDM5KTsKLSAgeyB1aW50NjRfdCB4NDEgPSAo
eDI0ICYgMHg3ZmZmZmZmZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4NDM7IGFkZGNhcnJ5eF91NTEo
eDQwLCB4MjIsIHg0MSwgJng0Myk7Ci0gIG91dFswXSA9IHgyNzsKLSAgb3V0WzFdID0geDMxOwot
ICBvdXRbMl0gPSB4MzU7Ci0gIG91dFszXSA9IHgzOTsKLSAgb3V0WzRdID0geDQzOwotICB9fX19
fX19fX19fX19fX19fX19fX0KLX0KLQotc3RhdGljIHZvaWQgZmVfdG9ieXRlcyh1aW50OF90IHNb
MzJdLCBjb25zdCBmZSAqZikgewotICBhc3NlcnRfZmUoZi0+dik7Ci0gIHVpbnQ2NF90IGhbNV07
Ci0gIGZlX2ZyZWV6ZShoLCBmLT52KTsKLSAgYXNzZXJ0X2ZlX2Zyb3plbihoKTsKLQotICBzWzBd
ID0gaFswXSA+PiAwOwotICBzWzFdID0gaFswXSA+PiA4OwotICBzWzJdID0gaFswXSA+PiAxNjsK
LSAgc1szXSA9IGhbMF0gPj4gMjQ7Ci0gIHNbNF0gPSBoWzBdID4+IDMyOwotICBzWzVdID0gaFsw
XSA+PiA0MDsKLSAgc1s2XSA9IChoWzBdID4+IDQ4KSB8IChoWzFdIDw8IDMpOwotICBzWzddID0g
aFsxXSA+PiA1OwotICBzWzhdID0gaFsxXSA+PiAxMzsKLSAgc1s5XSA9IGhbMV0gPj4gMjE7Ci0g
IHNbMTBdID0gaFsxXSA+PiAyOTsKLSAgc1sxMV0gPSBoWzFdID4+IDM3OwotICBzWzEyXSA9ICho
WzFdID4+IDQ1KSB8IChoWzJdIDw8IDYpOwotICBzWzEzXSA9IGhbMl0gPj4gMjsKLSAgc1sxNF0g
PSBoWzJdID4+IDEwOwotICBzWzE1XSA9IGhbMl0gPj4gMTg7Ci0gIHNbMTZdID0gaFsyXSA+PiAy
NjsKLSAgc1sxN10gPSBoWzJdID4+IDM0OwotICBzWzE4XSA9IGhbMl0gPj4gNDI7Ci0gIHNbMTld
ID0gKGhbMl0gPj4gNTApIHwgKGhbM10gPDwgMSk7Ci0gIHNbMjBdID0gaFszXSA+PiA3OwotICBz
WzIxXSA9IGhbM10gPj4gMTU7Ci0gIHNbMjJdID0gaFszXSA+PiAyMzsKLSAgc1syM10gPSBoWzNd
ID4+IDMxOwotICBzWzI0XSA9IGhbM10gPj4gMzk7Ci0gIHNbMjVdID0gKGhbM10gPj4gNDcpIHwg
KGhbNF0gPDwgNCk7Ci0gIHNbMjZdID0gaFs0XSA+PiA0OwotICBzWzI3XSA9IGhbNF0gPj4gMTI7
Ci0gIHNbMjhdID0gaFs0XSA+PiAyMDsKLSAgc1syOV0gPSBoWzRdID4+IDI4OwotICBzWzMwXSA9
IGhbNF0gPj4gMzY7Ci0gIHNbMzFdID0gaFs0XSA+PiA0NDsKLX0KLQotLy8gaCA9IDAKLXN0YXRp
YyB2b2lkIGZlXzAoZmUgKmgpIHsKLSAgT1BFTlNTTF9tZW1zZXQoaCwgMCwgc2l6ZW9mKGZlKSk7
Ci19Ci0KLXN0YXRpYyB2b2lkIGZlX2xvb3NlXzAoZmVfbG9vc2UgKmgpIHsKLSAgT1BFTlNTTF9t
ZW1zZXQoaCwgMCwgc2l6ZW9mKGZlX2xvb3NlKSk7Ci19Cit0eXBlZGVmIHVpbnQ2NF90IGZlX2xp
bWJfdDsKKyNkZWZpbmUgRkVfTlVNX0xJTUJTIDUKIAotLy8gaCA9IDEKLXN0YXRpYyB2b2lkIGZl
XzEoZmUgKmgpIHsKLSAgT1BFTlNTTF9tZW1zZXQoaCwgMCwgc2l6ZW9mKGZlKSk7Ci0gIGgtPnZb
MF0gPSAxOwotfQotCi1zdGF0aWMgdm9pZCBmZV9sb29zZV8xKGZlX2xvb3NlICpoKSB7Ci0gIE9Q
RU5TU0xfbWVtc2V0KGgsIDAsIHNpemVvZihmZV9sb29zZSkpOwotICBoLT52WzBdID0gMTsKLX0K
LQotc3RhdGljIHZvaWQgZmVfYWRkX2ltcGwodWludDY0X3Qgb3V0WzVdLCBjb25zdCB1aW50NjRf
dCBpbjFbNV0sIGNvbnN0IHVpbnQ2NF90IGluMls1XSkgewotICB7IGNvbnN0IHVpbnQ2NF90IHgx
MCA9IGluMVs0XTsKLSAgeyBjb25zdCB1aW50NjRfdCB4MTEgPSBpbjFbM107Ci0gIHsgY29uc3Qg
dWludDY0X3QgeDkgPSBpbjFbMl07Ci0gIHsgY29uc3QgdWludDY0X3QgeDcgPSBpbjFbMV07Ci0g
IHsgY29uc3QgdWludDY0X3QgeDUgPSBpbjFbMF07Ci0gIHsgY29uc3QgdWludDY0X3QgeDE4ID0g
aW4yWzRdOwotICB7IGNvbnN0IHVpbnQ2NF90IHgxOSA9IGluMlszXTsKLSAgeyBjb25zdCB1aW50
NjRfdCB4MTcgPSBpbjJbMl07Ci0gIHsgY29uc3QgdWludDY0X3QgeDE1ID0gaW4yWzFdOwotICB7
IGNvbnN0IHVpbnQ2NF90IHgxMyA9IGluMlswXTsKLSAgb3V0WzBdID0gKHg1ICsgeDEzKTsKLSAg
b3V0WzFdID0gKHg3ICsgeDE1KTsKLSAgb3V0WzJdID0gKHg5ICsgeDE3KTsKLSAgb3V0WzNdID0g
KHgxMSArIHgxOSk7Ci0gIG91dFs0XSA9ICh4MTAgKyB4MTgpOwotICB9fX19fX19fX19Ci19Ci0K
LS8vIGggPSBmICsgZwotLy8gQ2FuIG92ZXJsYXAgaCB3aXRoIGYgb3IgZy4KLXN0YXRpYyB2b2lk
IGZlX2FkZChmZV9sb29zZSAqaCwgY29uc3QgZmUgKmYsIGNvbnN0IGZlICpnKSB7Ci0gIGFzc2Vy
dF9mZShmLT52KTsKLSAgYXNzZXJ0X2ZlKGctPnYpOwotICBmZV9hZGRfaW1wbChoLT52LCBmLT52
LCBnLT52KTsKLSAgYXNzZXJ0X2ZlX2xvb3NlKGgtPnYpOwotfQotCi1zdGF0aWMgdm9pZCBmZV9z
dWJfaW1wbCh1aW50NjRfdCBvdXRbNV0sIGNvbnN0IHVpbnQ2NF90IGluMVs1XSwgY29uc3QgdWlu
dDY0X3QgaW4yWzVdKSB7Ci0gIHsgY29uc3QgdWludDY0X3QgeDEwID0gaW4xWzRdOwotICB7IGNv
bnN0IHVpbnQ2NF90IHgxMSA9IGluMVszXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4OSA9IGluMVsy
XTsKLSAgeyBjb25zdCB1aW50NjRfdCB4NyA9IGluMVsxXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4
NSA9IGluMVswXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4MTggPSBpbjJbNF07Ci0gIHsgY29uc3Qg
dWludDY0X3QgeDE5ID0gaW4yWzNdOwotICB7IGNvbnN0IHVpbnQ2NF90IHgxNyA9IGluMlsyXTsK
LSAgeyBjb25zdCB1aW50NjRfdCB4MTUgPSBpbjJbMV07Ci0gIHsgY29uc3QgdWludDY0X3QgeDEz
ID0gaW4yWzBdOwotICBvdXRbMF0gPSAoKDB4ZmZmZmZmZmZmZmZkYSArIHg1KSAtIHgxMyk7Ci0g
IG91dFsxXSA9ICgoMHhmZmZmZmZmZmZmZmZlICsgeDcpIC0geDE1KTsKLSAgb3V0WzJdID0gKCgw
eGZmZmZmZmZmZmZmZmUgKyB4OSkgLSB4MTcpOwotICBvdXRbM10gPSAoKDB4ZmZmZmZmZmZmZmZm
ZSArIHgxMSkgLSB4MTkpOwotICBvdXRbNF0gPSAoKDB4ZmZmZmZmZmZmZmZmZSArIHgxMCkgLSB4
MTgpOwotICB9fX19fX19fX19Ci19Ci0KLS8vIGggPSBmIC0gZwotLy8gQ2FuIG92ZXJsYXAgaCB3
aXRoIGYgb3IgZy4KLXN0YXRpYyB2b2lkIGZlX3N1YihmZV9sb29zZSAqaCwgY29uc3QgZmUgKmYs
IGNvbnN0IGZlICpnKSB7Ci0gIGFzc2VydF9mZShmLT52KTsKLSAgYXNzZXJ0X2ZlKGctPnYpOwot
ICBmZV9zdWJfaW1wbChoLT52LCBmLT52LCBnLT52KTsKLSAgYXNzZXJ0X2ZlX2xvb3NlKGgtPnYp
OwotfQotCi1zdGF0aWMgdm9pZCBmZV9jYXJyeV9pbXBsKHVpbnQ2NF90IG91dFs1XSwgY29uc3Qg
dWludDY0X3QgaW4xWzVdKSB7Ci0gIHsgY29uc3QgdWludDY0X3QgeDcgPSBpbjFbNF07Ci0gIHsg
Y29uc3QgdWludDY0X3QgeDggPSBpbjFbM107Ci0gIHsgY29uc3QgdWludDY0X3QgeDYgPSBpbjFb
Ml07Ci0gIHsgY29uc3QgdWludDY0X3QgeDQgPSBpbjFbMV07Ci0gIHsgY29uc3QgdWludDY0X3Qg
eDIgPSBpbjFbMF07Ci0gIHsgdWludDY0X3QgeDkgPSAoeDIgPj4gMHgzMyk7Ci0gIHsgdWludDY0
X3QgeDEwID0gKHgyICYgMHg3ZmZmZmZmZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4MTEgPSAoeDkg
KyB4NCk7Ci0gIHsgdWludDY0X3QgeDEyID0gKHgxMSA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4
MTMgPSAoeDExICYgMHg3ZmZmZmZmZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4MTQgPSAoeDEyICsg
eDYpOwotICB7IHVpbnQ2NF90IHgxNSA9ICh4MTQgPj4gMHgzMyk7Ci0gIHsgdWludDY0X3QgeDE2
ID0gKHgxNCAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDY0X3QgeDE3ID0gKHgxNSArIHg4
KTsKLSAgeyB1aW50NjRfdCB4MTggPSAoeDE3ID4+IDB4MzMpOwotICB7IHVpbnQ2NF90IHgxOSA9
ICh4MTcgJiAweDdmZmZmZmZmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgyMCA9ICh4MTggKyB4Nyk7
Ci0gIHsgdWludDY0X3QgeDIxID0gKHgyMCA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4MjIgPSAo
eDIwICYgMHg3ZmZmZmZmZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4MjMgPSAoeDEwICsgKDB4MTMg
KiB4MjEpKTsKLSAgeyB1aW50NjRfdCB4MjQgPSAoeDIzID4+IDB4MzMpOwotICB7IHVpbnQ2NF90
IHgyNSA9ICh4MjMgJiAweDdmZmZmZmZmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgyNiA9ICh4MjQg
KyB4MTMpOwotICB7IHVpbnQ2NF90IHgyNyA9ICh4MjYgPj4gMHgzMyk7Ci0gIHsgdWludDY0X3Qg
eDI4ID0gKHgyNiAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIG91dFswXSA9IHgyNTsKLSAgb3V0WzFd
ID0geDI4OwotICBvdXRbMl0gPSAoeDI3ICsgeDE2KTsKLSAgb3V0WzNdID0geDE5OwotICBvdXRb
NF0gPSB4MjI7Ci0gIH19fX19fX19fX19fX19fX19fX19fX19fX0KLX0KLQotc3RhdGljIHZvaWQg
ZmVfY2FycnkoZmUgKmgsIGNvbnN0IGZlX2xvb3NlKiBmKSB7Ci0gIGFzc2VydF9mZV9sb29zZShm
LT52KTsKLSAgZmVfY2FycnlfaW1wbChoLT52LCBmLT52KTsKLSAgYXNzZXJ0X2ZlKGgtPnYpOwot
fQotCi1zdGF0aWMgdm9pZCBmZV9tdWxfaW1wbCh1aW50NjRfdCBvdXRbNV0sIGNvbnN0IHVpbnQ2
NF90IGluMVs1XSwgY29uc3QgdWludDY0X3QgaW4yWzVdKSB7Ci0gIGFzc2VydF9mZV9sb29zZShp
bjEpOwotICBhc3NlcnRfZmVfbG9vc2UoaW4yKTsKLSAgeyBjb25zdCB1aW50NjRfdCB4MTAgPSBp
bjFbNF07Ci0gIHsgY29uc3QgdWludDY0X3QgeDExID0gaW4xWzNdOwotICB7IGNvbnN0IHVpbnQ2
NF90IHg5ID0gaW4xWzJdOwotICB7IGNvbnN0IHVpbnQ2NF90IHg3ID0gaW4xWzFdOwotICB7IGNv
bnN0IHVpbnQ2NF90IHg1ID0gaW4xWzBdOwotICB7IGNvbnN0IHVpbnQ2NF90IHgxOCA9IGluMls0
XTsKLSAgeyBjb25zdCB1aW50NjRfdCB4MTkgPSBpbjJbM107Ci0gIHsgY29uc3QgdWludDY0X3Qg
eDE3ID0gaW4yWzJdOwotICB7IGNvbnN0IHVpbnQ2NF90IHgxNSA9IGluMlsxXTsKLSAgeyBjb25z
dCB1aW50NjRfdCB4MTMgPSBpbjJbMF07Ci0gIHsgdWludDEyOF90IHgyMCA9ICgodWludDEyOF90
KXg1ICogeDEzKTsKLSAgeyB1aW50MTI4X3QgeDIxID0gKCgodWludDEyOF90KXg1ICogeDE1KSAr
ICgodWludDEyOF90KXg3ICogeDEzKSk7Ci0gIHsgdWludDEyOF90IHgyMiA9ICgoKCh1aW50MTI4
X3QpeDUgKiB4MTcpICsgKCh1aW50MTI4X3QpeDkgKiB4MTMpKSArICgodWludDEyOF90KXg3ICog
eDE1KSk7Ci0gIHsgdWludDEyOF90IHgyMyA9ICgoKCgodWludDEyOF90KXg1ICogeDE5KSArICgo
dWludDEyOF90KXgxMSAqIHgxMykpICsgKCh1aW50MTI4X3QpeDcgKiB4MTcpKSArICgodWludDEy
OF90KXg5ICogeDE1KSk7Ci0gIHsgdWludDEyOF90IHgyNCA9ICgoKCgoKHVpbnQxMjhfdCl4NSAq
IHgxOCkgKyAoKHVpbnQxMjhfdCl4MTAgKiB4MTMpKSArICgodWludDEyOF90KXgxMSAqIHgxNSkp
ICsgKCh1aW50MTI4X3QpeDcgKiB4MTkpKSArICgodWludDEyOF90KXg5ICogeDE3KSk7Ci0gIHsg
dWludDY0X3QgeDI1ID0gKHgxMCAqIDB4MTMpOwotICB7IHVpbnQ2NF90IHgyNiA9ICh4NyAqIDB4
MTMpOwotICB7IHVpbnQ2NF90IHgyNyA9ICh4OSAqIDB4MTMpOwotICB7IHVpbnQ2NF90IHgyOCA9
ICh4MTEgKiAweDEzKTsKLSAgeyB1aW50MTI4X3QgeDI5ID0gKCgoKHgyMCArICgodWludDEyOF90
KXgyNSAqIHgxNSkpICsgKCh1aW50MTI4X3QpeDI2ICogeDE4KSkgKyAoKHVpbnQxMjhfdCl4Mjcg
KiB4MTkpKSArICgodWludDEyOF90KXgyOCAqIHgxNykpOwotICB7IHVpbnQxMjhfdCB4MzAgPSAo
KCh4MjEgKyAoKHVpbnQxMjhfdCl4MjUgKiB4MTcpKSArICgodWludDEyOF90KXgyNyAqIHgxOCkp
ICsgKCh1aW50MTI4X3QpeDI4ICogeDE5KSk7Ci0gIHsgdWludDEyOF90IHgzMSA9ICgoeDIyICsg
KCh1aW50MTI4X3QpeDI1ICogeDE5KSkgKyAoKHVpbnQxMjhfdCl4MjggKiB4MTgpKTsKLSAgeyB1
aW50MTI4X3QgeDMyID0gKHgyMyArICgodWludDEyOF90KXgyNSAqIHgxOCkpOwotICB7IHVpbnQ2
NF90IHgzMyA9ICh1aW50NjRfdCkgKHgyOSA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4MzQgPSAo
KHVpbnQ2NF90KXgyOSAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDEyOF90IHgzNSA9ICh4
MzMgKyB4MzApOwotICB7IHVpbnQ2NF90IHgzNiA9ICh1aW50NjRfdCkgKHgzNSA+PiAweDMzKTsK
LSAgeyB1aW50NjRfdCB4MzcgPSAoKHVpbnQ2NF90KXgzNSAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0g
IHsgdWludDEyOF90IHgzOCA9ICh4MzYgKyB4MzEpOwotICB7IHVpbnQ2NF90IHgzOSA9ICh1aW50
NjRfdCkgKHgzOCA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4NDAgPSAoKHVpbnQ2NF90KXgzOCAm
IDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDEyOF90IHg0MSA9ICh4MzkgKyB4MzIpOwotICB7
IHVpbnQ2NF90IHg0MiA9ICh1aW50NjRfdCkgKHg0MSA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4
NDMgPSAoKHVpbnQ2NF90KXg0MSAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDEyOF90IHg0
NCA9ICh4NDIgKyB4MjQpOwotICB7IHVpbnQ2NF90IHg0NSA9ICh1aW50NjRfdCkgKHg0NCA+PiAw
eDMzKTsKLSAgeyB1aW50NjRfdCB4NDYgPSAoKHVpbnQ2NF90KXg0NCAmIDB4N2ZmZmZmZmZmZmZm
Zik7Ci0gIHsgdWludDY0X3QgeDQ3ID0gKHgzNCArICgweDEzICogeDQ1KSk7Ci0gIHsgdWludDY0
X3QgeDQ4ID0gKHg0NyA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4NDkgPSAoeDQ3ICYgMHg3ZmZm
ZmZmZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4NTAgPSAoeDQ4ICsgeDM3KTsKLSAgeyB1aW50NjRf
dCB4NTEgPSAoeDUwID4+IDB4MzMpOwotICB7IHVpbnQ2NF90IHg1MiA9ICh4NTAgJiAweDdmZmZm
ZmZmZmZmZmYpOwotICBvdXRbMF0gPSB4NDk7Ci0gIG91dFsxXSA9IHg1MjsKLSAgb3V0WzJdID0g
KHg1MSArIHg0MCk7Ci0gIG91dFszXSA9IHg0MzsKLSAgb3V0WzRdID0geDQ2OwotICB9fX19fX19
fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19Ci0gIGFzc2VydF9mZShvdXQpOwot
fQotCi1zdGF0aWMgdm9pZCBmZV9tdWxfbHR0KGZlX2xvb3NlICpoLCBjb25zdCBmZSAqZiwgY29u
c3QgZmUgKmcpIHsKLSAgZmVfbXVsX2ltcGwoaC0+diwgZi0+diwgZy0+dik7Ci19Ci0KLXN0YXRp
YyB2b2lkIGZlX211bF9sbHQoZmVfbG9vc2UgKmgsIGNvbnN0IGZlX2xvb3NlICpmLCBjb25zdCBm
ZSAqZykgewotICBmZV9tdWxfaW1wbChoLT52LCBmLT52LCBnLT52KTsKLX0KLQotc3RhdGljIHZv
aWQgZmVfbXVsX3R0dChmZSAqaCwgY29uc3QgZmUgKmYsIGNvbnN0IGZlICpnKSB7Ci0gIGZlX211
bF9pbXBsKGgtPnYsIGYtPnYsIGctPnYpOwotfQotCi1zdGF0aWMgdm9pZCBmZV9tdWxfdGx0KGZl
ICpoLCBjb25zdCBmZV9sb29zZSAqZiwgY29uc3QgZmUgKmcpIHsKLSAgZmVfbXVsX2ltcGwoaC0+
diwgZi0+diwgZy0+dik7Ci19Ci0KLXN0YXRpYyB2b2lkIGZlX211bF90dGwoZmUgKmgsIGNvbnN0
IGZlICpmLCBjb25zdCBmZV9sb29zZSAqZykgewotICBmZV9tdWxfaW1wbChoLT52LCBmLT52LCBn
LT52KTsKLX0KLQotc3RhdGljIHZvaWQgZmVfbXVsX3RsbChmZSAqaCwgY29uc3QgZmVfbG9vc2Ug
KmYsIGNvbnN0IGZlX2xvb3NlICpnKSB7Ci0gIGZlX211bF9pbXBsKGgtPnYsIGYtPnYsIGctPnYp
OwotfQotCi1zdGF0aWMgdm9pZCBmZV9zcXJfaW1wbCh1aW50NjRfdCBvdXRbNV0sIGNvbnN0IHVp
bnQ2NF90IGluMVs1XSkgewotICBhc3NlcnRfZmVfbG9vc2UoaW4xKTsKLSAgeyBjb25zdCB1aW50
NjRfdCB4NyA9IGluMVs0XTsKLSAgeyBjb25zdCB1aW50NjRfdCB4OCA9IGluMVszXTsKLSAgeyBj
b25zdCB1aW50NjRfdCB4NiA9IGluMVsyXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4NCA9IGluMVsx
XTsKLSAgeyBjb25zdCB1aW50NjRfdCB4MiA9IGluMVswXTsKLSAgeyB1aW50NjRfdCB4OSA9ICh4
MiAqIDB4Mik7Ci0gIHsgdWludDY0X3QgeDEwID0gKHg0ICogMHgyKTsKLSAgeyB1aW50NjRfdCB4
MTEgPSAoKHg2ICogMHgyKSAqIDB4MTMpOwotICB7IHVpbnQ2NF90IHgxMiA9ICh4NyAqIDB4MTMp
OwotICB7IHVpbnQ2NF90IHgxMyA9ICh4MTIgKiAweDIpOwotICB7IHVpbnQxMjhfdCB4MTQgPSAo
KCgodWludDEyOF90KXgyICogeDIpICsgKCh1aW50MTI4X3QpeDEzICogeDQpKSArICgodWludDEy
OF90KXgxMSAqIHg4KSk7Ci0gIHsgdWludDEyOF90IHgxNSA9ICgoKCh1aW50MTI4X3QpeDkgKiB4
NCkgKyAoKHVpbnQxMjhfdCl4MTMgKiB4NikpICsgKCh1aW50MTI4X3QpeDggKiAoeDggKiAweDEz
KSkpOwotICB7IHVpbnQxMjhfdCB4MTYgPSAoKCgodWludDEyOF90KXg5ICogeDYpICsgKCh1aW50
MTI4X3QpeDQgKiB4NCkpICsgKCh1aW50MTI4X3QpeDEzICogeDgpKTsKLSAgeyB1aW50MTI4X3Qg
eDE3ID0gKCgoKHVpbnQxMjhfdCl4OSAqIHg4KSArICgodWludDEyOF90KXgxMCAqIHg2KSkgKyAo
KHVpbnQxMjhfdCl4NyAqIHgxMikpOwotICB7IHVpbnQxMjhfdCB4MTggPSAoKCgodWludDEyOF90
KXg5ICogeDcpICsgKCh1aW50MTI4X3QpeDEwICogeDgpKSArICgodWludDEyOF90KXg2ICogeDYp
KTsKLSAgeyB1aW50NjRfdCB4MTkgPSAodWludDY0X3QpICh4MTQgPj4gMHgzMyk7Ci0gIHsgdWlu
dDY0X3QgeDIwID0gKCh1aW50NjRfdCl4MTQgJiAweDdmZmZmZmZmZmZmZmYpOwotICB7IHVpbnQx
MjhfdCB4MjEgPSAoeDE5ICsgeDE1KTsKLSAgeyB1aW50NjRfdCB4MjIgPSAodWludDY0X3QpICh4
MjEgPj4gMHgzMyk7Ci0gIHsgdWludDY0X3QgeDIzID0gKCh1aW50NjRfdCl4MjEgJiAweDdmZmZm
ZmZmZmZmZmYpOwotICB7IHVpbnQxMjhfdCB4MjQgPSAoeDIyICsgeDE2KTsKLSAgeyB1aW50NjRf
dCB4MjUgPSAodWludDY0X3QpICh4MjQgPj4gMHgzMyk7Ci0gIHsgdWludDY0X3QgeDI2ID0gKCh1
aW50NjRfdCl4MjQgJiAweDdmZmZmZmZmZmZmZmYpOwotICB7IHVpbnQxMjhfdCB4MjcgPSAoeDI1
ICsgeDE3KTsKLSAgeyB1aW50NjRfdCB4MjggPSAodWludDY0X3QpICh4MjcgPj4gMHgzMyk7Ci0g
IHsgdWludDY0X3QgeDI5ID0gKCh1aW50NjRfdCl4MjcgJiAweDdmZmZmZmZmZmZmZmYpOwotICB7
IHVpbnQxMjhfdCB4MzAgPSAoeDI4ICsgeDE4KTsKLSAgeyB1aW50NjRfdCB4MzEgPSAodWludDY0
X3QpICh4MzAgPj4gMHgzMyk7Ci0gIHsgdWludDY0X3QgeDMyID0gKCh1aW50NjRfdCl4MzAgJiAw
eDdmZmZmZmZmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgzMyA9ICh4MjAgKyAoMHgxMyAqIHgzMSkp
OwotICB7IHVpbnQ2NF90IHgzNCA9ICh4MzMgPj4gMHgzMyk7Ci0gIHsgdWludDY0X3QgeDM1ID0g
KHgzMyAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDY0X3QgeDM2ID0gKHgzNCArIHgyMyk7
Ci0gIHsgdWludDY0X3QgeDM3ID0gKHgzNiA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4MzggPSAo
eDM2ICYgMHg3ZmZmZmZmZmZmZmZmKTsKLSAgb3V0WzBdID0geDM1OwotICBvdXRbMV0gPSB4Mzg7
Ci0gIG91dFsyXSA9ICh4MzcgKyB4MjYpOwotICBvdXRbM10gPSB4Mjk7Ci0gIG91dFs0XSA9IHgz
MjsKLSAgfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0KLSAgYXNzZXJ0X2ZlKG91
dCk7Ci19CisvLyBhc3NlcnRfZmUgYXNzZXJ0cyB0aGF0IHxmfCBzYXRpc2ZpZXMgYm91bmRzOgor
Ly8KKy8vICBbWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLAorLy8gICBbMHgwIH4+IDB4OGNjY2Nj
Y2NjY2NjY10sCisvLyAgIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwKKy8vICAgWzB4MCB+PiAw
eDhjY2NjY2NjY2NjY2NdLAorLy8gICBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY11dCisvLworLy8g
U2VlIGNvbW1lbnRzIGluIGN1cnZlMjU1MTlfNjQuaCBmb3Igd2hpY2ggZnVuY3Rpb25zIHVzZSB0
aGVzZSBib3VuZHMgZm9yCisvLyBpbnB1dHMgb3Igb3V0cHV0cy4KKyNkZWZpbmUgYXNzZXJ0X2Zl
KGYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKHVuc2lnbmVkIF9hc3NlcnRfZmVfaSA9IDA7IF9h
c3NlcnRfZmVfaSA8IDU7IF9hc3NlcnRfZmVfaSsrKSB7IFwKKyAgICAgIGFzc2VydChmW19hc3Nl
cnRfZmVfaV0gPD0gVUlOVDY0X0MoMHg4Y2NjY2NjY2NjY2NjKSk7ICAgICAgICAgICAgIFwKKyAg
ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgfSB3aGlsZSAoMCkKKworLy8gYXNzZXJ0X2ZlX2xvb3NlIGFzc2Vy
dHMgdGhhdCB8Znwgc2F0aXNmaWVzIGJvdW5kczoKKy8vCisvLyAgW1sweDAgfj4gMHgxYTY2NjY2
NjY2NjY2NF0sCisvLyAgIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sCisvLyAgIFsweDAgfj4g
MHgxYTY2NjY2NjY2NjY2NF0sCisvLyAgIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sCisvLyAg
IFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF1dCisvLworLy8gU2VlIGNvbW1lbnRzIGluIGN1cnZl
MjU1MTlfNjQuaCBmb3Igd2hpY2ggZnVuY3Rpb25zIHVzZSB0aGVzZSBib3VuZHMgZm9yCisvLyBp
bnB1dHMgb3Igb3V0cHV0cy4KKyNkZWZpbmUgYXNzZXJ0X2ZlX2xvb3NlKGYpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgZG8geyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBmb3IgKHVuc2lnbmVkIF9hc3NlcnRfZmVfaSA9IDA7IF9hc3NlcnRfZmVfaSA8IDU7IF9hc3Nl
cnRfZmVfaSsrKSB7IFwKKyAgICAgIGFzc2VydChmW19hc3NlcnRfZmVfaV0gPD0gVUlOVDY0X0Mo
MHgxYTY2NjY2NjY2NjY2NCkpOyAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfSB3
aGlsZSAoMCkKIAotc3RhdGljIHZvaWQgZmVfc3FfdGwoZmUgKmgsIGNvbnN0IGZlX2xvb3NlICpm
KSB7Ci0gIGZlX3Nxcl9pbXBsKGgtPnYsIGYtPnYpOwotfQorI2Vsc2UKIAotc3RhdGljIHZvaWQg
ZmVfc3FfdHQoZmUgKmgsIGNvbnN0IGZlICpmKSB7Ci0gIGZlX3Nxcl9pbXBsKGgtPnYsIGYtPnYp
OwotfQordHlwZWRlZiB1aW50MzJfdCBmZV9saW1iX3Q7CisjZGVmaW5lIEZFX05VTV9MSU1CUyAx
MAogCi0vLyBSZXBsYWNlIChmLGcpIHdpdGggKGcsZikgaWYgYiA9PSAxOwotLy8gcmVwbGFjZSAo
ZixnKSB3aXRoIChmLGcpIGlmIGIgPT0gMC4KKy8vIGFzc2VydF9mZSBhc3NlcnRzIHRoYXQgfGZ8
IHNhdGlzZmllcyBib3VuZHM6CiAvLwotLy8gUHJlY29uZGl0aW9uczogYiBpbiB7MCwxfS4KLXN0
YXRpYyB2b2lkIGZlX2Nzd2FwKGZlICpmLCBmZSAqZywgdWludDY0X3QgYikgewotICBiID0gMC1i
OwotICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0gICAgdWludDY0X3QgeCA9
IGYtPnZbaV0gXiBnLT52W2ldOwotICAgIHggJj0gYjsKLSAgICBmLT52W2ldIF49IHg7Ci0gICAg
Zy0+dltpXSBePSB4OwotICB9Ci19Ci0KLS8vIE5PVEU6IGJhc2VkIG9uIGZpYXQtY3J5cHRvIGZl
X211bCwgZWRpdGVkIGZvciBpbjI9MTIxNjY2LCAwLCAwLi4KLXN0YXRpYyB2b2lkIGZlX211bF8x
MjE2NjZfaW1wbCh1aW50NjRfdCBvdXRbNV0sIGNvbnN0IHVpbnQ2NF90IGluMVs1XSkgewotICB7
IGNvbnN0IHVpbnQ2NF90IHgxMCA9IGluMVs0XTsKLSAgeyBjb25zdCB1aW50NjRfdCB4MTEgPSBp
bjFbM107Ci0gIHsgY29uc3QgdWludDY0X3QgeDkgPSBpbjFbMl07Ci0gIHsgY29uc3QgdWludDY0
X3QgeDcgPSBpbjFbMV07Ci0gIHsgY29uc3QgdWludDY0X3QgeDUgPSBpbjFbMF07Ci0gIHsgY29u
c3QgdWludDY0X3QgeDE4ID0gMDsKLSAgeyBjb25zdCB1aW50NjRfdCB4MTkgPSAwOwotICB7IGNv
bnN0IHVpbnQ2NF90IHgxNyA9IDA7Ci0gIHsgY29uc3QgdWludDY0X3QgeDE1ID0gMDsKLSAgeyBj
b25zdCB1aW50NjRfdCB4MTMgPSAxMjE2NjY7Ci0gIHsgdWludDEyOF90IHgyMCA9ICgodWludDEy
OF90KXg1ICogeDEzKTsKLSAgeyB1aW50MTI4X3QgeDIxID0gKCgodWludDEyOF90KXg1ICogeDE1
KSArICgodWludDEyOF90KXg3ICogeDEzKSk7Ci0gIHsgdWludDEyOF90IHgyMiA9ICgoKCh1aW50
MTI4X3QpeDUgKiB4MTcpICsgKCh1aW50MTI4X3QpeDkgKiB4MTMpKSArICgodWludDEyOF90KXg3
ICogeDE1KSk7Ci0gIHsgdWludDEyOF90IHgyMyA9ICgoKCgodWludDEyOF90KXg1ICogeDE5KSAr
ICgodWludDEyOF90KXgxMSAqIHgxMykpICsgKCh1aW50MTI4X3QpeDcgKiB4MTcpKSArICgodWlu
dDEyOF90KXg5ICogeDE1KSk7Ci0gIHsgdWludDEyOF90IHgyNCA9ICgoKCgoKHVpbnQxMjhfdCl4
NSAqIHgxOCkgKyAoKHVpbnQxMjhfdCl4MTAgKiB4MTMpKSArICgodWludDEyOF90KXgxMSAqIHgx
NSkpICsgKCh1aW50MTI4X3QpeDcgKiB4MTkpKSArICgodWludDEyOF90KXg5ICogeDE3KSk7Ci0g
IHsgdWludDY0X3QgeDI1ID0gKHgxMCAqIDB4MTMpOwotICB7IHVpbnQ2NF90IHgyNiA9ICh4NyAq
IDB4MTMpOwotICB7IHVpbnQ2NF90IHgyNyA9ICh4OSAqIDB4MTMpOwotICB7IHVpbnQ2NF90IHgy
OCA9ICh4MTEgKiAweDEzKTsKLSAgeyB1aW50MTI4X3QgeDI5ID0gKCgoKHgyMCArICgodWludDEy
OF90KXgyNSAqIHgxNSkpICsgKCh1aW50MTI4X3QpeDI2ICogeDE4KSkgKyAoKHVpbnQxMjhfdCl4
MjcgKiB4MTkpKSArICgodWludDEyOF90KXgyOCAqIHgxNykpOwotICB7IHVpbnQxMjhfdCB4MzAg
PSAoKCh4MjEgKyAoKHVpbnQxMjhfdCl4MjUgKiB4MTcpKSArICgodWludDEyOF90KXgyNyAqIHgx
OCkpICsgKCh1aW50MTI4X3QpeDI4ICogeDE5KSk7Ci0gIHsgdWludDEyOF90IHgzMSA9ICgoeDIy
ICsgKCh1aW50MTI4X3QpeDI1ICogeDE5KSkgKyAoKHVpbnQxMjhfdCl4MjggKiB4MTgpKTsKLSAg
eyB1aW50MTI4X3QgeDMyID0gKHgyMyArICgodWludDEyOF90KXgyNSAqIHgxOCkpOwotICB7IHVp
bnQ2NF90IHgzMyA9ICh1aW50NjRfdCkgKHgyOSA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4MzQg
PSAoKHVpbnQ2NF90KXgyOSAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDEyOF90IHgzNSA9
ICh4MzMgKyB4MzApOwotICB7IHVpbnQ2NF90IHgzNiA9ICh1aW50NjRfdCkgKHgzNSA+PiAweDMz
KTsKLSAgeyB1aW50NjRfdCB4MzcgPSAoKHVpbnQ2NF90KXgzNSAmIDB4N2ZmZmZmZmZmZmZmZik7
Ci0gIHsgdWludDEyOF90IHgzOCA9ICh4MzYgKyB4MzEpOwotICB7IHVpbnQ2NF90IHgzOSA9ICh1
aW50NjRfdCkgKHgzOCA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4NDAgPSAoKHVpbnQ2NF90KXgz
OCAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDEyOF90IHg0MSA9ICh4MzkgKyB4MzIpOwot
ICB7IHVpbnQ2NF90IHg0MiA9ICh1aW50NjRfdCkgKHg0MSA+PiAweDMzKTsKLSAgeyB1aW50NjRf
dCB4NDMgPSAoKHVpbnQ2NF90KXg0MSAmIDB4N2ZmZmZmZmZmZmZmZik7Ci0gIHsgdWludDEyOF90
IHg0NCA9ICh4NDIgKyB4MjQpOwotICB7IHVpbnQ2NF90IHg0NSA9ICh1aW50NjRfdCkgKHg0NCA+
PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4NDYgPSAoKHVpbnQ2NF90KXg0NCAmIDB4N2ZmZmZmZmZm
ZmZmZik7Ci0gIHsgdWludDY0X3QgeDQ3ID0gKHgzNCArICgweDEzICogeDQ1KSk7Ci0gIHsgdWlu
dDY0X3QgeDQ4ID0gKHg0NyA+PiAweDMzKTsKLSAgeyB1aW50NjRfdCB4NDkgPSAoeDQ3ICYgMHg3
ZmZmZmZmZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4NTAgPSAoeDQ4ICsgeDM3KTsKLSAgeyB1aW50
NjRfdCB4NTEgPSAoeDUwID4+IDB4MzMpOwotICB7IHVpbnQ2NF90IHg1MiA9ICh4NTAgJiAweDdm
ZmZmZmZmZmZmZmYpOwotICBvdXRbMF0gPSB4NDk7Ci0gIG91dFsxXSA9IHg1MjsKLSAgb3V0WzJd
ID0gKHg1MSArIHg0MCk7Ci0gIG91dFszXSA9IHg0MzsKLSAgb3V0WzRdID0geDQ2OwotICB9fX19
fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19Ci19Ci0KLXN0YXRpYyB2b2lk
IGZlX211bDEyMTY2NihmZSAqaCwgY29uc3QgZmVfbG9vc2UgKmYpIHsKLSAgYXNzZXJ0X2ZlX2xv
b3NlKGYtPnYpOwotICBmZV9tdWxfMTIxNjY2X2ltcGwoaC0+diwgZi0+dik7Ci0gIGFzc2VydF9m
ZShoLT52KTsKLX0KKy8vICBbWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10s
CisvLyAgIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLAorLy8gICBbMHgw
IH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwKKy8vICAgWzB4MCB+PiAweDQ2NjY2
NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10sCisvLyAgIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+
PiAweDIzMzMzMzNdXQorLy8KKy8vIFNlZSBjb21tZW50cyBpbiBjdXJ2ZTI1NTE5XzMyLmggZm9y
IHdoaWNoIGZ1bmN0aW9ucyB1c2UgdGhlc2UgYm91bmRzIGZvcgorLy8gaW5wdXRzIG9yIG91dHB1
dHMuCisjZGVmaW5lIGFzc2VydF9mZShmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKHVuc2ln
bmVkIF9hc3NlcnRfZmVfaSA9IDA7IF9hc3NlcnRfZmVfaSA8IDEwOyBfYXNzZXJ0X2ZlX2krKykg
eyBcCisgICAgICBhc3NlcnQoZltfYXNzZXJ0X2ZlX2ldIDw9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICgoX2Fzc2VydF9mZV9pICYgMSkg
PyAweDIzMzMzMzN1IDogMHg0NjY2NjY2dSkpOyAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIH0gd2hpbGUgKDApCisKKy8vIGFzc2VydF9mZV9sb29zZSBhc3NlcnRzIHRoYXQgfGZ8
IHNhdGlzZmllcyBib3VuZHM6CisvLworLy8gIFtbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4g
MHg2OTk5OTk5XSwKKy8vICAgWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0s
CisvLyAgIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5OTldLAorLy8gICBbMHgw
IH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5OTk5XSwKKy8vICAgWzB4MCB+PiAweGQzMzMz
MzJdLCBbMHgwIH4+IDB4Njk5OTk5OV1dCisvLworLy8gU2VlIGNvbW1lbnRzIGluIGN1cnZlMjU1
MTlfMzIuaCBmb3Igd2hpY2ggZnVuY3Rpb25zIHVzZSB0aGVzZSBib3VuZHMgZm9yCisvLyBpbnB1
dHMgb3Igb3V0cHV0cy4KKyNkZWZpbmUgYXNzZXJ0X2ZlX2xvb3NlKGYpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGRvIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IGZvciAodW5zaWduZWQgX2Fzc2VydF9mZV9pID0gMDsgX2Fzc2VydF9mZV9pIDwgMTA7IF9hc3Nl
cnRfZmVfaSsrKSB7IFwKKyAgICAgIGFzc2VydChmW19hc3NlcnRfZmVfaV0gPD0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgKChfYXNzZXJ0
X2ZlX2kgJiAxKSA/IDB4Njk5OTk5OXUgOiAweGQzMzMzMzJ1KSk7ICAgICAgICAgICAgXAorICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgfSB3aGlsZSAoMCkKIAotLy8gQWRhcHRlZCBmcm9tIEZpYXQtc3lu
dGhlc2l6ZWQgfGZlX3N1Yl9pbXBsfCB3aXRoIHxvdXR8ID0gMC4KLXN0YXRpYyB2b2lkIGZlX25l
Z19pbXBsKHVpbnQ2NF90IG91dFs1XSwgY29uc3QgdWludDY0X3QgaW4yWzVdKSB7Ci0gIHsgY29u
c3QgdWludDY0X3QgeDEwID0gMDsKLSAgeyBjb25zdCB1aW50NjRfdCB4MTEgPSAwOwotICB7IGNv
bnN0IHVpbnQ2NF90IHg5ID0gMDsKLSAgeyBjb25zdCB1aW50NjRfdCB4NyA9IDA7Ci0gIHsgY29u
c3QgdWludDY0X3QgeDUgPSAwOwotICB7IGNvbnN0IHVpbnQ2NF90IHgxOCA9IGluMls0XTsKLSAg
eyBjb25zdCB1aW50NjRfdCB4MTkgPSBpbjJbM107Ci0gIHsgY29uc3QgdWludDY0X3QgeDE3ID0g
aW4yWzJdOwotICB7IGNvbnN0IHVpbnQ2NF90IHgxNSA9IGluMlsxXTsKLSAgeyBjb25zdCB1aW50
NjRfdCB4MTMgPSBpbjJbMF07Ci0gIG91dFswXSA9ICgoMHhmZmZmZmZmZmZmZmRhICsgeDUpIC0g
eDEzKTsKLSAgb3V0WzFdID0gKCgweGZmZmZmZmZmZmZmZmUgKyB4NykgLSB4MTUpOwotICBvdXRb
Ml0gPSAoKDB4ZmZmZmZmZmZmZmZmZSArIHg5KSAtIHgxNyk7Ci0gIG91dFszXSA9ICgoMHhmZmZm
ZmZmZmZmZmZlICsgeDExKSAtIHgxOSk7Ci0gIG91dFs0XSA9ICgoMHhmZmZmZmZmZmZmZmZlICsg
eDEwKSAtIHgxOCk7Ci0gIH19fX19fX19fX0KLX0KKyNlbmRpZiAgLy8gQk9SSU5HU1NMX0NVUlZF
MjU1MTlfNjRCSVQKIAotLy8gaCA9IC1mCi1zdGF0aWMgdm9pZCBmZV9uZWcoZmVfbG9vc2UgKmgs
IGNvbnN0IGZlICpmKSB7Ci0gIGFzc2VydF9mZShmLT52KTsKLSAgZmVfbmVnX2ltcGwoaC0+diwg
Zi0+dik7Ci0gIGFzc2VydF9mZV9sb29zZShoLT52KTsKLX0KK09QRU5TU0xfU1RBVElDX0FTU0VS
VChzaXplb2YoZmUpID09IHNpemVvZihmZV9saW1iX3QpICogRkVfTlVNX0xJTUJTLAorICAgICAg
ICAgICAgICAgICAgICAgICJmZV9saW1iX3RbRkVfTlVNX0xJTUJTXSBpcyBpbmNvbnNpc3RlbnQg
d2l0aCBmZSIpOwogCi0vLyBSZXBsYWNlIChmLGcpIHdpdGggKGcsZykgaWYgYiA9PSAxOwotLy8g
cmVwbGFjZSAoZixnKSB3aXRoIChmLGcpIGlmIGIgPT0gMC4KLS8vCi0vLyBQcmVjb25kaXRpb25z
OiBiIGluIHswLDF9Lgotc3RhdGljIHZvaWQgZmVfY21vdihmZV9sb29zZSAqZiwgY29uc3QgZmVf
bG9vc2UgKmcsIHVpbnQ2NF90IGIpIHsKLSAgYiA9IDAtYjsKLSAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IDU7IGkrKykgewotICAgIHVpbnQ2NF90IHggPSBmLT52W2ldIF4gZy0+dltpXTsKLSAg
ICB4ICY9IGI7Ci0gICAgZi0+dltpXSBePSB4OwotICB9CitzdGF0aWMgdm9pZCBmZV9mcm9tYnl0
ZXNfc3RyaWN0KGZlICpoLCBjb25zdCB1aW50OF90IHNbMzJdKSB7CisgIC8vIHxmaWF0XzI1NTE5
X2Zyb21fYnl0ZXN8IHJlcXVpcmVzIHRoZSB0b3AtbW9zdCBiaXQgYmUgY2xlYXIuCisgIGFzc2Vy
dCgoc1szMV0gJiAweDgwKSA9PSAwKTsKKyAgZmlhdF8yNTUxOV9mcm9tX2J5dGVzKGgtPnYsIHMp
OworICBhc3NlcnRfZmUoaC0+dik7CiB9CiAKLSNlbHNlCi0KLSNkZWZpbmUgYXNzZXJ0X2ZlKGYp
IGRvIHsgXAotICBmb3IgKHVuc2lnbmVkIF9hc3NlcnRfZmVfaSA9IDA7IF9hc3NlcnRfZmVfaTwg
MTA7IF9hc3NlcnRfZmVfaSsrKSB7IFwKLSAgICBhc3NlcnQoZltfYXNzZXJ0X2ZlX2ldIDwgMS4x
MjUqKDE8PCgyNi0oX2Fzc2VydF9mZV9pJjEpKSkpOyBcCi0gIH0gXAotfSB3aGlsZSAoMCkKLQot
I2RlZmluZSBhc3NlcnRfZmVfbG9vc2UoZikgZG8geyBcCi0gIGZvciAodW5zaWduZWQgX2Fzc2Vy
dF9mZV9pID0gMDsgX2Fzc2VydF9mZV9pPCAxMDsgX2Fzc2VydF9mZV9pKyspIHsgXAotICAgIGFz
c2VydChmW19hc3NlcnRfZmVfaV0gPCAzLjM3NSooMTw8KDI2LShfYXNzZXJ0X2ZlX2kmMSkpKSk7
IFwKLSAgfSBcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIGFzc2VydF9mZV9mcm96ZW4oZikgZG8g
eyBcCi0gIGZvciAodW5zaWduZWQgX2Fzc2VydF9mZV9pID0gMDsgX2Fzc2VydF9mZV9pPCAxMDsg
X2Fzc2VydF9mZV9pKyspIHsgXAotICAgIGFzc2VydChmW19hc3NlcnRfZmVfaV0gPCAoMXU8PCgy
Ni0oX2Fzc2VydF9mZV9pJjEpKSkpOyBcCi0gIH0gXAotfSB3aGlsZSAoMCkKLQotc3RhdGljIHZv
aWQgZmVfZnJvbWJ5dGVzX2ltcGwodWludDMyX3QgaFsxMF0sIGNvbnN0IHVpbnQ4X3QgKnMpIHsK
LSAgLy8gSWdub3JlcyB0b3AgYml0IG9mIHMuCi0gIHVpbnQzMl90IGEwID0gbG9hZF80KHMpOwot
ICB1aW50MzJfdCBhMSA9IGxvYWRfNChzKzQpOwotICB1aW50MzJfdCBhMiA9IGxvYWRfNChzKzgp
OwotICB1aW50MzJfdCBhMyA9IGxvYWRfNChzKzEyKTsKLSAgdWludDMyX3QgYTQgPSBsb2FkXzQo
cysxNik7Ci0gIHVpbnQzMl90IGE1ID0gbG9hZF80KHMrMjApOwotICB1aW50MzJfdCBhNiA9IGxv
YWRfNChzKzI0KTsKLSAgdWludDMyX3QgYTcgPSBsb2FkXzQocysyOCk7Ci0gIGhbMF0gPSBhMCYo
KDE8PDI2KS0xKTsgICAgICAgICAgICAgICAgICAgIC8vIDI2IHVzZWQsIDMyLTI2IGxlZnQuICAg
MjYKLSAgaFsxXSA9IChhMD4+MjYpIHwgKChhMSYoKDE8PDE5KS0xKSk8PCA2KTsgLy8gKDMyLTI2
KSArIDE5ID0gIDYrMTkgPSAyNQotICBoWzJdID0gKGExPj4xOSkgfCAoKGEyJigoMTw8MTMpLTEp
KTw8MTMpOyAvLyAoMzItMTkpICsgMTMgPSAxMysxMyA9IDI2Ci0gIGhbM10gPSAoYTI+PjEzKSB8
ICgoYTMmKCgxPDwgNiktMSkpPDwxOSk7IC8vICgzMi0xMykgKyAgNiA9IDE5KyA2ID0gMjUKLSAg
aFs0XSA9IChhMz4+IDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKDMyLSA2KSAgICAg
ICAgICAgICAgPSAyNgotICBoWzVdID0gYTQmKCgxPDwyNSktMSk7ICAgICAgICAgICAgICAgICAg
ICAvLyAgICAgICAgICAgICAgICAgICAgICAgIDI1Ci0gIGhbNl0gPSAoYTQ+PjI1KSB8ICgoYTUm
KCgxPDwxOSktMSkpPDwgNyk7IC8vICgzMi0yNSkgKyAxOSA9ICA3KzE5ID0gMjYKLSAgaFs3XSA9
IChhNT4+MTkpIHwgKChhNiYoKDE8PDEyKS0xKSk8PDEzKTsgLy8gKDMyLTE5KSArIDEyID0gMTMr
MTIgPSAyNQotICBoWzhdID0gKGE2Pj4xMikgfCAoKGE3JigoMTw8IDYpLTEpKTw8MjApOyAvLyAo
MzItMTIpICsgIDYgPSAyMCsgNiA9IDI2Ci0gIGhbOV0gPSAoYTc+PiA2KSYoKDE8PDI1KS0xKTsg
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUKLSAgYXNzZXJ0X2ZlKGgp
OwotfQotCi1zdGF0aWMgdm9pZCBmZV9mcm9tYnl0ZXMoZmUgKmgsIGNvbnN0IHVpbnQ4X3QgKnMp
IHsKLSAgZmVfZnJvbWJ5dGVzX2ltcGwoaC0+diwgcyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGZlX2Zy
ZWV6ZSh1aW50MzJfdCBvdXRbMTBdLCBjb25zdCB1aW50MzJfdCBpbjFbMTBdKSB7Ci0gIHsgY29u
c3QgdWludDMyX3QgeDE3ID0gaW4xWzldOwotICB7IGNvbnN0IHVpbnQzMl90IHgxOCA9IGluMVs4
XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MTYgPSBpbjFbN107Ci0gIHsgY29uc3QgdWludDMyX3Qg
eDE0ID0gaW4xWzZdOwotICB7IGNvbnN0IHVpbnQzMl90IHgxMiA9IGluMVs1XTsKLSAgeyBjb25z
dCB1aW50MzJfdCB4MTAgPSBpbjFbNF07Ci0gIHsgY29uc3QgdWludDMyX3QgeDggPSBpbjFbM107
Ci0gIHsgY29uc3QgdWludDMyX3QgeDYgPSBpbjFbMl07Ci0gIHsgY29uc3QgdWludDMyX3QgeDQg
PSBpbjFbMV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDIgPSBpbjFbMF07Ci0gIHsgdWludDMyX3Qg
eDIwOyB1aW50OF90Lypib29sKi8geDIxID0gc3ViYm9ycm93X3UyNigweDAsIHgyLCAweDNmZmZm
ZWQsICZ4MjApOwotICB7IHVpbnQzMl90IHgyMzsgdWludDhfdC8qYm9vbCovIHgyNCA9IHN1YmJv
cnJvd191MjUoeDIxLCB4NCwgMHgxZmZmZmZmLCAmeDIzKTsKLSAgeyB1aW50MzJfdCB4MjY7IHVp
bnQ4X3QvKmJvb2wqLyB4MjcgPSBzdWJib3Jyb3dfdTI2KHgyNCwgeDYsIDB4M2ZmZmZmZiwgJngy
Nik7Ci0gIHsgdWludDMyX3QgeDI5OyB1aW50OF90Lypib29sKi8geDMwID0gc3ViYm9ycm93X3Uy
NSh4MjcsIHg4LCAweDFmZmZmZmYsICZ4MjkpOwotICB7IHVpbnQzMl90IHgzMjsgdWludDhfdC8q
Ym9vbCovIHgzMyA9IHN1YmJvcnJvd191MjYoeDMwLCB4MTAsIDB4M2ZmZmZmZiwgJngzMik7Ci0g
IHsgdWludDMyX3QgeDM1OyB1aW50OF90Lypib29sKi8geDM2ID0gc3ViYm9ycm93X3UyNSh4MzMs
IHgxMiwgMHgxZmZmZmZmLCAmeDM1KTsKLSAgeyB1aW50MzJfdCB4Mzg7IHVpbnQ4X3QvKmJvb2wq
LyB4MzkgPSBzdWJib3Jyb3dfdTI2KHgzNiwgeDE0LCAweDNmZmZmZmYsICZ4MzgpOwotICB7IHVp
bnQzMl90IHg0MTsgdWludDhfdC8qYm9vbCovIHg0MiA9IHN1YmJvcnJvd191MjUoeDM5LCB4MTYs
IDB4MWZmZmZmZiwgJng0MSk7Ci0gIHsgdWludDMyX3QgeDQ0OyB1aW50OF90Lypib29sKi8geDQ1
ID0gc3ViYm9ycm93X3UyNih4NDIsIHgxOCwgMHgzZmZmZmZmLCAmeDQ0KTsKLSAgeyB1aW50MzJf
dCB4NDc7IHVpbnQ4X3QvKmJvb2wqLyB4NDggPSBzdWJib3Jyb3dfdTI1KHg0NSwgeDE3LCAweDFm
ZmZmZmYsICZ4NDcpOwotICB7IHVpbnQzMl90IHg0OSA9IGNtb3Z6bnozMih4NDgsIDB4MCwgMHhm
ZmZmZmZmZik7Ci0gIHsgdWludDMyX3QgeDUwID0gKHg0OSAmIDB4M2ZmZmZlZCk7Ci0gIHsgdWlu
dDMyX3QgeDUyOyB1aW50OF90Lypib29sKi8geDUzID0gYWRkY2Fycnl4X3UyNigweDAsIHgyMCwg
eDUwLCAmeDUyKTsKLSAgeyB1aW50MzJfdCB4NTQgPSAoeDQ5ICYgMHgxZmZmZmZmKTsKLSAgeyB1
aW50MzJfdCB4NTY7IHVpbnQ4X3QvKmJvb2wqLyB4NTcgPSBhZGRjYXJyeXhfdTI1KHg1MywgeDIz
LCB4NTQsICZ4NTYpOwotICB7IHVpbnQzMl90IHg1OCA9ICh4NDkgJiAweDNmZmZmZmYpOwotICB7
IHVpbnQzMl90IHg2MDsgdWludDhfdC8qYm9vbCovIHg2MSA9IGFkZGNhcnJ5eF91MjYoeDU3LCB4
MjYsIHg1OCwgJng2MCk7Ci0gIHsgdWludDMyX3QgeDYyID0gKHg0OSAmIDB4MWZmZmZmZik7Ci0g
IHsgdWludDMyX3QgeDY0OyB1aW50OF90Lypib29sKi8geDY1ID0gYWRkY2Fycnl4X3UyNSh4NjEs
IHgyOSwgeDYyLCAmeDY0KTsKLSAgeyB1aW50MzJfdCB4NjYgPSAoeDQ5ICYgMHgzZmZmZmZmKTsK
LSAgeyB1aW50MzJfdCB4Njg7IHVpbnQ4X3QvKmJvb2wqLyB4NjkgPSBhZGRjYXJyeXhfdTI2KHg2
NSwgeDMyLCB4NjYsICZ4NjgpOwotICB7IHVpbnQzMl90IHg3MCA9ICh4NDkgJiAweDFmZmZmZmYp
OwotICB7IHVpbnQzMl90IHg3MjsgdWludDhfdC8qYm9vbCovIHg3MyA9IGFkZGNhcnJ5eF91MjUo
eDY5LCB4MzUsIHg3MCwgJng3Mik7Ci0gIHsgdWludDMyX3QgeDc0ID0gKHg0OSAmIDB4M2ZmZmZm
Zik7Ci0gIHsgdWludDMyX3QgeDc2OyB1aW50OF90Lypib29sKi8geDc3ID0gYWRkY2Fycnl4X3Uy
Nih4NzMsIHgzOCwgeDc0LCAmeDc2KTsKLSAgeyB1aW50MzJfdCB4NzggPSAoeDQ5ICYgMHgxZmZm
ZmZmKTsKLSAgeyB1aW50MzJfdCB4ODA7IHVpbnQ4X3QvKmJvb2wqLyB4ODEgPSBhZGRjYXJyeXhf
dTI1KHg3NywgeDQxLCB4NzgsICZ4ODApOwotICB7IHVpbnQzMl90IHg4MiA9ICh4NDkgJiAweDNm
ZmZmZmYpOwotICB7IHVpbnQzMl90IHg4NDsgdWludDhfdC8qYm9vbCovIHg4NSA9IGFkZGNhcnJ5
eF91MjYoeDgxLCB4NDQsIHg4MiwgJng4NCk7Ci0gIHsgdWludDMyX3QgeDg2ID0gKHg0OSAmIDB4
MWZmZmZmZik7Ci0gIHsgdWludDMyX3QgeDg4OyBhZGRjYXJyeXhfdTI1KHg4NSwgeDQ3LCB4ODYs
ICZ4ODgpOwotICBvdXRbMF0gPSB4NTI7Ci0gIG91dFsxXSA9IHg1NjsKLSAgb3V0WzJdID0geDYw
OwotICBvdXRbM10gPSB4NjQ7Ci0gIG91dFs0XSA9IHg2ODsKLSAgb3V0WzVdID0geDcyOwotICBv
dXRbNl0gPSB4NzY7Ci0gIG91dFs3XSA9IHg4MDsKLSAgb3V0WzhdID0geDg0OwotICBvdXRbOV0g
PSB4ODg7Ci0gIH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19CitzdGF0
aWMgdm9pZCBmZV9mcm9tYnl0ZXMoZmUgKmgsIGNvbnN0IHVpbnQ4X3Qgc1szMl0pIHsKKyAgdWlu
dDhfdCBzX2NvcHlbMzJdOworICBPUEVOU1NMX21lbWNweShzX2NvcHksIHMsIDMyKTsKKyAgc19j
b3B5WzMxXSAmPSAweDdmOworICBmZV9mcm9tYnl0ZXNfc3RyaWN0KGgsIHNfY29weSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGZlX3RvYnl0ZXModWludDhfdCBzWzMyXSwgY29uc3QgZmUgKmYpIHsKICAg
YXNzZXJ0X2ZlKGYtPnYpOwotICB1aW50MzJfdCBoWzEwXTsKLSAgZmVfZnJlZXplKGgsIGYtPnYp
OwotICBhc3NlcnRfZmVfZnJvemVuKGgpOwotCi0gIHNbMF0gPSBoWzBdID4+IDA7Ci0gIHNbMV0g
PSBoWzBdID4+IDg7Ci0gIHNbMl0gPSBoWzBdID4+IDE2OwotICBzWzNdID0gKGhbMF0gPj4gMjQp
IHwgKGhbMV0gPDwgMik7Ci0gIHNbNF0gPSBoWzFdID4+IDY7Ci0gIHNbNV0gPSBoWzFdID4+IDE0
OwotICBzWzZdID0gKGhbMV0gPj4gMjIpIHwgKGhbMl0gPDwgMyk7Ci0gIHNbN10gPSBoWzJdID4+
IDU7Ci0gIHNbOF0gPSBoWzJdID4+IDEzOwotICBzWzldID0gKGhbMl0gPj4gMjEpIHwgKGhbM10g
PDwgNSk7Ci0gIHNbMTBdID0gaFszXSA+PiAzOwotICBzWzExXSA9IGhbM10gPj4gMTE7Ci0gIHNb
MTJdID0gKGhbM10gPj4gMTkpIHwgKGhbNF0gPDwgNik7Ci0gIHNbMTNdID0gaFs0XSA+PiAyOwot
ICBzWzE0XSA9IGhbNF0gPj4gMTA7Ci0gIHNbMTVdID0gaFs0XSA+PiAxODsKLSAgc1sxNl0gPSBo
WzVdID4+IDA7Ci0gIHNbMTddID0gaFs1XSA+PiA4OwotICBzWzE4XSA9IGhbNV0gPj4gMTY7Ci0g
IHNbMTldID0gKGhbNV0gPj4gMjQpIHwgKGhbNl0gPDwgMSk7Ci0gIHNbMjBdID0gaFs2XSA+PiA3
OwotICBzWzIxXSA9IGhbNl0gPj4gMTU7Ci0gIHNbMjJdID0gKGhbNl0gPj4gMjMpIHwgKGhbN10g
PDwgMyk7Ci0gIHNbMjNdID0gaFs3XSA+PiA1OwotICBzWzI0XSA9IGhbN10gPj4gMTM7Ci0gIHNb
MjVdID0gKGhbN10gPj4gMjEpIHwgKGhbOF0gPDwgNCk7Ci0gIHNbMjZdID0gaFs4XSA+PiA0Owot
ICBzWzI3XSA9IGhbOF0gPj4gMTI7Ci0gIHNbMjhdID0gKGhbOF0gPj4gMjApIHwgKGhbOV0gPDwg
Nik7Ci0gIHNbMjldID0gaFs5XSA+PiAyOwotICBzWzMwXSA9IGhbOV0gPj4gMTA7Ci0gIHNbMzFd
ID0gaFs5XSA+PiAxODsKKyAgZmlhdF8yNTUxOV90b19ieXRlcyhzLCBmLT52KTsKIH0KIAogLy8g
aCA9IDAKQEAgLTc4NywyNzIgKzE5OCwzNiBAQCBzdGF0aWMgdm9pZCBmZV9sb29zZV8xKGZlX2xv
b3NlICpoKSB7CiAgIGgtPnZbMF0gPSAxOwogfQogCi1zdGF0aWMgdm9pZCBmZV9hZGRfaW1wbCh1
aW50MzJfdCBvdXRbMTBdLCBjb25zdCB1aW50MzJfdCBpbjFbMTBdLCBjb25zdCB1aW50MzJfdCBp
bjJbMTBdKSB7Ci0gIHsgY29uc3QgdWludDMyX3QgeDIwID0gaW4xWzldOwotICB7IGNvbnN0IHVp
bnQzMl90IHgyMSA9IGluMVs4XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MTkgPSBpbjFbN107Ci0g
IHsgY29uc3QgdWludDMyX3QgeDE3ID0gaW4xWzZdOwotICB7IGNvbnN0IHVpbnQzMl90IHgxNSA9
IGluMVs1XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MTMgPSBpbjFbNF07Ci0gIHsgY29uc3QgdWlu
dDMyX3QgeDExID0gaW4xWzNdOwotICB7IGNvbnN0IHVpbnQzMl90IHg5ID0gaW4xWzJdOwotICB7
IGNvbnN0IHVpbnQzMl90IHg3ID0gaW4xWzFdOwotICB7IGNvbnN0IHVpbnQzMl90IHg1ID0gaW4x
WzBdOwotICB7IGNvbnN0IHVpbnQzMl90IHgzOCA9IGluMls5XTsKLSAgeyBjb25zdCB1aW50MzJf
dCB4MzkgPSBpbjJbOF07Ci0gIHsgY29uc3QgdWludDMyX3QgeDM3ID0gaW4yWzddOwotICB7IGNv
bnN0IHVpbnQzMl90IHgzNSA9IGluMls2XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MzMgPSBpbjJb
NV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDMxID0gaW4yWzRdOwotICB7IGNvbnN0IHVpbnQzMl90
IHgyOSA9IGluMlszXTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MjcgPSBpbjJbMl07Ci0gIHsgY29u
c3QgdWludDMyX3QgeDI1ID0gaW4yWzFdOwotICB7IGNvbnN0IHVpbnQzMl90IHgyMyA9IGluMlsw
XTsKLSAgb3V0WzBdID0gKHg1ICsgeDIzKTsKLSAgb3V0WzFdID0gKHg3ICsgeDI1KTsKLSAgb3V0
WzJdID0gKHg5ICsgeDI3KTsKLSAgb3V0WzNdID0gKHgxMSArIHgyOSk7Ci0gIG91dFs0XSA9ICh4
MTMgKyB4MzEpOwotICBvdXRbNV0gPSAoeDE1ICsgeDMzKTsKLSAgb3V0WzZdID0gKHgxNyArIHgz
NSk7Ci0gIG91dFs3XSA9ICh4MTkgKyB4MzcpOwotICBvdXRbOF0gPSAoeDIxICsgeDM5KTsKLSAg
b3V0WzldID0gKHgyMCArIHgzOCk7Ci0gIH19fX19fX19fX19fX19fX19fX19Ci19Ci0KIC8vIGgg
PSBmICsgZwogLy8gQ2FuIG92ZXJsYXAgaCB3aXRoIGYgb3IgZy4KIHN0YXRpYyB2b2lkIGZlX2Fk
ZChmZV9sb29zZSAqaCwgY29uc3QgZmUgKmYsIGNvbnN0IGZlICpnKSB7CiAgIGFzc2VydF9mZShm
LT52KTsKICAgYXNzZXJ0X2ZlKGctPnYpOwotICBmZV9hZGRfaW1wbChoLT52LCBmLT52LCBnLT52
KTsKKyAgZmlhdF8yNTUxOV9hZGQoaC0+diwgZi0+diwgZy0+dik7CiAgIGFzc2VydF9mZV9sb29z
ZShoLT52KTsKIH0KIAotc3RhdGljIHZvaWQgZmVfc3ViX2ltcGwodWludDMyX3Qgb3V0WzEwXSwg
Y29uc3QgdWludDMyX3QgaW4xWzEwXSwgY29uc3QgdWludDMyX3QgaW4yWzEwXSkgewotICB7IGNv
bnN0IHVpbnQzMl90IHgyMCA9IGluMVs5XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MjEgPSBpbjFb
OF07Ci0gIHsgY29uc3QgdWludDMyX3QgeDE5ID0gaW4xWzddOwotICB7IGNvbnN0IHVpbnQzMl90
IHgxNyA9IGluMVs2XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MTUgPSBpbjFbNV07Ci0gIHsgY29u
c3QgdWludDMyX3QgeDEzID0gaW4xWzRdOwotICB7IGNvbnN0IHVpbnQzMl90IHgxMSA9IGluMVsz
XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4OSA9IGluMVsyXTsKLSAgeyBjb25zdCB1aW50MzJfdCB4
NyA9IGluMVsxXTsKLSAgeyBjb25zdCB1aW50MzJfdCB4NSA9IGluMVswXTsKLSAgeyBjb25zdCB1
aW50MzJfdCB4MzggPSBpbjJbOV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDM5ID0gaW4yWzhdOwot
ICB7IGNvbnN0IHVpbnQzMl90IHgzNyA9IGluMls3XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MzUg
PSBpbjJbNl07Ci0gIHsgY29uc3QgdWludDMyX3QgeDMzID0gaW4yWzVdOwotICB7IGNvbnN0IHVp
bnQzMl90IHgzMSA9IGluMls0XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MjkgPSBpbjJbM107Ci0g
IHsgY29uc3QgdWludDMyX3QgeDI3ID0gaW4yWzJdOwotICB7IGNvbnN0IHVpbnQzMl90IHgyNSA9
IGluMlsxXTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MjMgPSBpbjJbMF07Ci0gIG91dFswXSA9ICgo
MHg3ZmZmZmRhICsgeDUpIC0geDIzKTsKLSAgb3V0WzFdID0gKCgweDNmZmZmZmUgKyB4NykgLSB4
MjUpOwotICBvdXRbMl0gPSAoKDB4N2ZmZmZmZSArIHg5KSAtIHgyNyk7Ci0gIG91dFszXSA9ICgo
MHgzZmZmZmZlICsgeDExKSAtIHgyOSk7Ci0gIG91dFs0XSA9ICgoMHg3ZmZmZmZlICsgeDEzKSAt
IHgzMSk7Ci0gIG91dFs1XSA9ICgoMHgzZmZmZmZlICsgeDE1KSAtIHgzMyk7Ci0gIG91dFs2XSA9
ICgoMHg3ZmZmZmZlICsgeDE3KSAtIHgzNSk7Ci0gIG91dFs3XSA9ICgoMHgzZmZmZmZlICsgeDE5
KSAtIHgzNyk7Ci0gIG91dFs4XSA9ICgoMHg3ZmZmZmZlICsgeDIxKSAtIHgzOSk7Ci0gIG91dFs5
XSA9ICgoMHgzZmZmZmZlICsgeDIwKSAtIHgzOCk7Ci0gIH19fX19fX19fX19fX19fX19fX19Ci19
Ci0KIC8vIGggPSBmIC0gZwogLy8gQ2FuIG92ZXJsYXAgaCB3aXRoIGYgb3IgZy4KIHN0YXRpYyB2
b2lkIGZlX3N1YihmZV9sb29zZSAqaCwgY29uc3QgZmUgKmYsIGNvbnN0IGZlICpnKSB7CiAgIGFz
c2VydF9mZShmLT52KTsKICAgYXNzZXJ0X2ZlKGctPnYpOwotICBmZV9zdWJfaW1wbChoLT52LCBm
LT52LCBnLT52KTsKKyAgZmlhdF8yNTUxOV9zdWIoaC0+diwgZi0+diwgZy0+dik7CiAgIGFzc2Vy
dF9mZV9sb29zZShoLT52KTsKIH0KIAotc3RhdGljIHZvaWQgZmVfY2FycnlfaW1wbCh1aW50MzJf
dCBvdXRbMTBdLCBjb25zdCB1aW50MzJfdCBpbjFbMTBdKSB7Ci0gIHsgY29uc3QgdWludDMyX3Qg
eDE3ID0gaW4xWzldOwotICB7IGNvbnN0IHVpbnQzMl90IHgxOCA9IGluMVs4XTsKLSAgeyBjb25z
dCB1aW50MzJfdCB4MTYgPSBpbjFbN107Ci0gIHsgY29uc3QgdWludDMyX3QgeDE0ID0gaW4xWzZd
OwotICB7IGNvbnN0IHVpbnQzMl90IHgxMiA9IGluMVs1XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4
MTAgPSBpbjFbNF07Ci0gIHsgY29uc3QgdWludDMyX3QgeDggPSBpbjFbM107Ci0gIHsgY29uc3Qg
dWludDMyX3QgeDYgPSBpbjFbMl07Ci0gIHsgY29uc3QgdWludDMyX3QgeDQgPSBpbjFbMV07Ci0g
IHsgY29uc3QgdWludDMyX3QgeDIgPSBpbjFbMF07Ci0gIHsgdWludDMyX3QgeDE5ID0gKHgyID4+
IDB4MWEpOwotICB7IHVpbnQzMl90IHgyMCA9ICh4MiAmIDB4M2ZmZmZmZik7Ci0gIHsgdWludDMy
X3QgeDIxID0gKHgxOSArIHg0KTsKLSAgeyB1aW50MzJfdCB4MjIgPSAoeDIxID4+IDB4MTkpOwot
ICB7IHVpbnQzMl90IHgyMyA9ICh4MjEgJiAweDFmZmZmZmYpOwotICB7IHVpbnQzMl90IHgyNCA9
ICh4MjIgKyB4Nik7Ci0gIHsgdWludDMyX3QgeDI1ID0gKHgyNCA+PiAweDFhKTsKLSAgeyB1aW50
MzJfdCB4MjYgPSAoeDI0ICYgMHgzZmZmZmZmKTsKLSAgeyB1aW50MzJfdCB4MjcgPSAoeDI1ICsg
eDgpOwotICB7IHVpbnQzMl90IHgyOCA9ICh4MjcgPj4gMHgxOSk7Ci0gIHsgdWludDMyX3QgeDI5
ID0gKHgyNyAmIDB4MWZmZmZmZik7Ci0gIHsgdWludDMyX3QgeDMwID0gKHgyOCArIHgxMCk7Ci0g
IHsgdWludDMyX3QgeDMxID0gKHgzMCA+PiAweDFhKTsKLSAgeyB1aW50MzJfdCB4MzIgPSAoeDMw
ICYgMHgzZmZmZmZmKTsKLSAgeyB1aW50MzJfdCB4MzMgPSAoeDMxICsgeDEyKTsKLSAgeyB1aW50
MzJfdCB4MzQgPSAoeDMzID4+IDB4MTkpOwotICB7IHVpbnQzMl90IHgzNSA9ICh4MzMgJiAweDFm
ZmZmZmYpOwotICB7IHVpbnQzMl90IHgzNiA9ICh4MzQgKyB4MTQpOwotICB7IHVpbnQzMl90IHgz
NyA9ICh4MzYgPj4gMHgxYSk7Ci0gIHsgdWludDMyX3QgeDM4ID0gKHgzNiAmIDB4M2ZmZmZmZik7
Ci0gIHsgdWludDMyX3QgeDM5ID0gKHgzNyArIHgxNik7Ci0gIHsgdWludDMyX3QgeDQwID0gKHgz
OSA+PiAweDE5KTsKLSAgeyB1aW50MzJfdCB4NDEgPSAoeDM5ICYgMHgxZmZmZmZmKTsKLSAgeyB1
aW50MzJfdCB4NDIgPSAoeDQwICsgeDE4KTsKLSAgeyB1aW50MzJfdCB4NDMgPSAoeDQyID4+IDB4
MWEpOwotICB7IHVpbnQzMl90IHg0NCA9ICh4NDIgJiAweDNmZmZmZmYpOwotICB7IHVpbnQzMl90
IHg0NSA9ICh4NDMgKyB4MTcpOwotICB7IHVpbnQzMl90IHg0NiA9ICh4NDUgPj4gMHgxOSk7Ci0g
IHsgdWludDMyX3QgeDQ3ID0gKHg0NSAmIDB4MWZmZmZmZik7Ci0gIHsgdWludDMyX3QgeDQ4ID0g
KHgyMCArICgweDEzICogeDQ2KSk7Ci0gIHsgdWludDMyX3QgeDQ5ID0gKHg0OCA+PiAweDFhKTsK
LSAgeyB1aW50MzJfdCB4NTAgPSAoeDQ4ICYgMHgzZmZmZmZmKTsKLSAgeyB1aW50MzJfdCB4NTEg
PSAoeDQ5ICsgeDIzKTsKLSAgeyB1aW50MzJfdCB4NTIgPSAoeDUxID4+IDB4MTkpOwotICB7IHVp
bnQzMl90IHg1MyA9ICh4NTEgJiAweDFmZmZmZmYpOwotICBvdXRbMF0gPSB4NTA7Ci0gIG91dFsx
XSA9IHg1MzsKLSAgb3V0WzJdID0gKHg1MiArIHgyNik7Ci0gIG91dFszXSA9IHgyOTsKLSAgb3V0
WzRdID0geDMyOwotICBvdXRbNV0gPSB4MzU7Ci0gIG91dFs2XSA9IHgzODsKLSAgb3V0WzddID0g
eDQxOwotICBvdXRbOF0gPSB4NDQ7Ci0gIG91dFs5XSA9IHg0NzsKLSAgfX19fX19fX19fX19fX19
fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19Ci19Ci0KIHN0YXRpYyB2b2lkIGZlX2NhcnJ5
KGZlICpoLCBjb25zdCBmZV9sb29zZSogZikgewogICBhc3NlcnRfZmVfbG9vc2UoZi0+dik7Ci0g
IGZlX2NhcnJ5X2ltcGwoaC0+diwgZi0+dik7CisgIGZpYXRfMjU1MTlfY2FycnkoaC0+diwgZi0+
dik7CiAgIGFzc2VydF9mZShoLT52KTsKIH0KIAotc3RhdGljIHZvaWQgZmVfbXVsX2ltcGwodWlu
dDMyX3Qgb3V0WzEwXSwgY29uc3QgdWludDMyX3QgaW4xWzEwXSwgY29uc3QgdWludDMyX3QgaW4y
WzEwXSkgeworc3RhdGljIHZvaWQgZmVfbXVsX2ltcGwoZmVfbGltYl90IG91dFtGRV9OVU1fTElN
QlNdLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmVfbGltYl90IGluMVtGRV9OVU1f
TElNQlNdLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmVfbGltYl90IGluMltGRV9O
VU1fTElNQlNdKSB7CiAgIGFzc2VydF9mZV9sb29zZShpbjEpOwogICBhc3NlcnRfZmVfbG9vc2Uo
aW4yKTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MjAgPSBpbjFbOV07Ci0gIHsgY29uc3QgdWludDMy
X3QgeDIxID0gaW4xWzhdOwotICB7IGNvbnN0IHVpbnQzMl90IHgxOSA9IGluMVs3XTsKLSAgeyBj
b25zdCB1aW50MzJfdCB4MTcgPSBpbjFbNl07Ci0gIHsgY29uc3QgdWludDMyX3QgeDE1ID0gaW4x
WzVdOwotICB7IGNvbnN0IHVpbnQzMl90IHgxMyA9IGluMVs0XTsKLSAgeyBjb25zdCB1aW50MzJf
dCB4MTEgPSBpbjFbM107Ci0gIHsgY29uc3QgdWludDMyX3QgeDkgPSBpbjFbMl07Ci0gIHsgY29u
c3QgdWludDMyX3QgeDcgPSBpbjFbMV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDUgPSBpbjFbMF07
Ci0gIHsgY29uc3QgdWludDMyX3QgeDM4ID0gaW4yWzldOwotICB7IGNvbnN0IHVpbnQzMl90IHgz
OSA9IGluMls4XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MzcgPSBpbjJbN107Ci0gIHsgY29uc3Qg
dWludDMyX3QgeDM1ID0gaW4yWzZdOwotICB7IGNvbnN0IHVpbnQzMl90IHgzMyA9IGluMls1XTsK
LSAgeyBjb25zdCB1aW50MzJfdCB4MzEgPSBpbjJbNF07Ci0gIHsgY29uc3QgdWludDMyX3QgeDI5
ID0gaW4yWzNdOwotICB7IGNvbnN0IHVpbnQzMl90IHgyNyA9IGluMlsyXTsKLSAgeyBjb25zdCB1
aW50MzJfdCB4MjUgPSBpbjJbMV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDIzID0gaW4yWzBdOwot
ICB7IHVpbnQ2NF90IHg0MCA9ICgodWludDY0X3QpeDIzICogeDUpOwotICB7IHVpbnQ2NF90IHg0
MSA9ICgoKHVpbnQ2NF90KXgyMyAqIHg3KSArICgodWludDY0X3QpeDI1ICogeDUpKTsKLSAgeyB1
aW50NjRfdCB4NDIgPSAoKCgodWludDY0X3QpKDB4MiAqIHgyNSkgKiB4NykgKyAoKHVpbnQ2NF90
KXgyMyAqIHg5KSkgKyAoKHVpbnQ2NF90KXgyNyAqIHg1KSk7Ci0gIHsgdWludDY0X3QgeDQzID0g
KCgoKCh1aW50NjRfdCl4MjUgKiB4OSkgKyAoKHVpbnQ2NF90KXgyNyAqIHg3KSkgKyAoKHVpbnQ2
NF90KXgyMyAqIHgxMSkpICsgKCh1aW50NjRfdCl4MjkgKiB4NSkpOwotICB7IHVpbnQ2NF90IHg0
NCA9ICgoKCgodWludDY0X3QpeDI3ICogeDkpICsgKDB4MiAqICgoKHVpbnQ2NF90KXgyNSAqIHgx
MSkgKyAoKHVpbnQ2NF90KXgyOSAqIHg3KSkpKSArICgodWludDY0X3QpeDIzICogeDEzKSkgKyAo
KHVpbnQ2NF90KXgzMSAqIHg1KSk7Ci0gIHsgdWludDY0X3QgeDQ1ID0gKCgoKCgoKHVpbnQ2NF90
KXgyNyAqIHgxMSkgKyAoKHVpbnQ2NF90KXgyOSAqIHg5KSkgKyAoKHVpbnQ2NF90KXgyNSAqIHgx
MykpICsgKCh1aW50NjRfdCl4MzEgKiB4NykpICsgKCh1aW50NjRfdCl4MjMgKiB4MTUpKSArICgo
dWludDY0X3QpeDMzICogeDUpKTsKLSAgeyB1aW50NjRfdCB4NDYgPSAoKCgoKDB4MiAqICgoKCh1
aW50NjRfdCl4MjkgKiB4MTEpICsgKCh1aW50NjRfdCl4MjUgKiB4MTUpKSArICgodWludDY0X3Qp
eDMzICogeDcpKSkgKyAoKHVpbnQ2NF90KXgyNyAqIHgxMykpICsgKCh1aW50NjRfdCl4MzEgKiB4
OSkpICsgKCh1aW50NjRfdCl4MjMgKiB4MTcpKSArICgodWludDY0X3QpeDM1ICogeDUpKTsKLSAg
eyB1aW50NjRfdCB4NDcgPSAoKCgoKCgoKCh1aW50NjRfdCl4MjkgKiB4MTMpICsgKCh1aW50NjRf
dCl4MzEgKiB4MTEpKSArICgodWludDY0X3QpeDI3ICogeDE1KSkgKyAoKHVpbnQ2NF90KXgzMyAq
IHg5KSkgKyAoKHVpbnQ2NF90KXgyNSAqIHgxNykpICsgKCh1aW50NjRfdCl4MzUgKiB4NykpICsg
KCh1aW50NjRfdCl4MjMgKiB4MTkpKSArICgodWludDY0X3QpeDM3ICogeDUpKTsKLSAgeyB1aW50
NjRfdCB4NDggPSAoKCgoKCgodWludDY0X3QpeDMxICogeDEzKSArICgweDIgKiAoKCgoKHVpbnQ2
NF90KXgyOSAqIHgxNSkgKyAoKHVpbnQ2NF90KXgzMyAqIHgxMSkpICsgKCh1aW50NjRfdCl4MjUg
KiB4MTkpKSArICgodWludDY0X3QpeDM3ICogeDcpKSkpICsgKCh1aW50NjRfdCl4MjcgKiB4MTcp
KSArICgodWludDY0X3QpeDM1ICogeDkpKSArICgodWludDY0X3QpeDIzICogeDIxKSkgKyAoKHVp
bnQ2NF90KXgzOSAqIHg1KSk7Ci0gIHsgdWludDY0X3QgeDQ5ID0gKCgoKCgoKCgoKCh1aW50NjRf
dCl4MzEgKiB4MTUpICsgKCh1aW50NjRfdCl4MzMgKiB4MTMpKSArICgodWludDY0X3QpeDI5ICog
eDE3KSkgKyAoKHVpbnQ2NF90KXgzNSAqIHgxMSkpICsgKCh1aW50NjRfdCl4MjcgKiB4MTkpKSAr
ICgodWludDY0X3QpeDM3ICogeDkpKSArICgodWludDY0X3QpeDI1ICogeDIxKSkgKyAoKHVpbnQ2
NF90KXgzOSAqIHg3KSkgKyAoKHVpbnQ2NF90KXgyMyAqIHgyMCkpICsgKCh1aW50NjRfdCl4Mzgg
KiB4NSkpOwotICB7IHVpbnQ2NF90IHg1MCA9ICgoKCgoMHgyICogKCgoKCgodWludDY0X3QpeDMz
ICogeDE1KSArICgodWludDY0X3QpeDI5ICogeDE5KSkgKyAoKHVpbnQ2NF90KXgzNyAqIHgxMSkp
ICsgKCh1aW50NjRfdCl4MjUgKiB4MjApKSArICgodWludDY0X3QpeDM4ICogeDcpKSkgKyAoKHVp
bnQ2NF90KXgzMSAqIHgxNykpICsgKCh1aW50NjRfdCl4MzUgKiB4MTMpKSArICgodWludDY0X3Qp
eDI3ICogeDIxKSkgKyAoKHVpbnQ2NF90KXgzOSAqIHg5KSk7Ci0gIHsgdWludDY0X3QgeDUxID0g
KCgoKCgoKCgodWludDY0X3QpeDMzICogeDE3KSArICgodWludDY0X3QpeDM1ICogeDE1KSkgKyAo
KHVpbnQ2NF90KXgzMSAqIHgxOSkpICsgKCh1aW50NjRfdCl4MzcgKiB4MTMpKSArICgodWludDY0
X3QpeDI5ICogeDIxKSkgKyAoKHVpbnQ2NF90KXgzOSAqIHgxMSkpICsgKCh1aW50NjRfdCl4Mjcg
KiB4MjApKSArICgodWludDY0X3QpeDM4ICogeDkpKTsKLSAgeyB1aW50NjRfdCB4NTIgPSAoKCgo
KHVpbnQ2NF90KXgzNSAqIHgxNykgKyAoMHgyICogKCgoKCh1aW50NjRfdCl4MzMgKiB4MTkpICsg
KCh1aW50NjRfdCl4MzcgKiB4MTUpKSArICgodWludDY0X3QpeDI5ICogeDIwKSkgKyAoKHVpbnQ2
NF90KXgzOCAqIHgxMSkpKSkgKyAoKHVpbnQ2NF90KXgzMSAqIHgyMSkpICsgKCh1aW50NjRfdCl4
MzkgKiB4MTMpKTsKLSAgeyB1aW50NjRfdCB4NTMgPSAoKCgoKCgodWludDY0X3QpeDM1ICogeDE5
KSArICgodWludDY0X3QpeDM3ICogeDE3KSkgKyAoKHVpbnQ2NF90KXgzMyAqIHgyMSkpICsgKCh1
aW50NjRfdCl4MzkgKiB4MTUpKSArICgodWludDY0X3QpeDMxICogeDIwKSkgKyAoKHVpbnQ2NF90
KXgzOCAqIHgxMykpOwotICB7IHVpbnQ2NF90IHg1NCA9ICgoKDB4MiAqICgoKCh1aW50NjRfdCl4
MzcgKiB4MTkpICsgKCh1aW50NjRfdCl4MzMgKiB4MjApKSArICgodWludDY0X3QpeDM4ICogeDE1
KSkpICsgKCh1aW50NjRfdCl4MzUgKiB4MjEpKSArICgodWludDY0X3QpeDM5ICogeDE3KSk7Ci0g
IHsgdWludDY0X3QgeDU1ID0gKCgoKCh1aW50NjRfdCl4MzcgKiB4MjEpICsgKCh1aW50NjRfdCl4
MzkgKiB4MTkpKSArICgodWludDY0X3QpeDM1ICogeDIwKSkgKyAoKHVpbnQ2NF90KXgzOCAqIHgx
NykpOwotICB7IHVpbnQ2NF90IHg1NiA9ICgoKHVpbnQ2NF90KXgzOSAqIHgyMSkgKyAoMHgyICog
KCgodWludDY0X3QpeDM3ICogeDIwKSArICgodWludDY0X3QpeDM4ICogeDE5KSkpKTsKLSAgeyB1
aW50NjRfdCB4NTcgPSAoKCh1aW50NjRfdCl4MzkgKiB4MjApICsgKCh1aW50NjRfdCl4MzggKiB4
MjEpKTsKLSAgeyB1aW50NjRfdCB4NTggPSAoKHVpbnQ2NF90KSgweDIgKiB4MzgpICogeDIwKTsK
LSAgeyB1aW50NjRfdCB4NTkgPSAoeDQ4ICsgKHg1OCA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4
NjAgPSAoeDU5ICsgKHg1OCA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4NjEgPSAoeDYwICsgeDU4
KTsKLSAgeyB1aW50NjRfdCB4NjIgPSAoeDQ3ICsgKHg1NyA8PCAweDQpKTsKLSAgeyB1aW50NjRf
dCB4NjMgPSAoeDYyICsgKHg1NyA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4NjQgPSAoeDYzICsg
eDU3KTsKLSAgeyB1aW50NjRfdCB4NjUgPSAoeDQ2ICsgKHg1NiA8PCAweDQpKTsKLSAgeyB1aW50
NjRfdCB4NjYgPSAoeDY1ICsgKHg1NiA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4NjcgPSAoeDY2
ICsgeDU2KTsKLSAgeyB1aW50NjRfdCB4NjggPSAoeDQ1ICsgKHg1NSA8PCAweDQpKTsKLSAgeyB1
aW50NjRfdCB4NjkgPSAoeDY4ICsgKHg1NSA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4NzAgPSAo
eDY5ICsgeDU1KTsKLSAgeyB1aW50NjRfdCB4NzEgPSAoeDQ0ICsgKHg1NCA8PCAweDQpKTsKLSAg
eyB1aW50NjRfdCB4NzIgPSAoeDcxICsgKHg1NCA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4NzMg
PSAoeDcyICsgeDU0KTsKLSAgeyB1aW50NjRfdCB4NzQgPSAoeDQzICsgKHg1MyA8PCAweDQpKTsK
LSAgeyB1aW50NjRfdCB4NzUgPSAoeDc0ICsgKHg1MyA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4
NzYgPSAoeDc1ICsgeDUzKTsKLSAgeyB1aW50NjRfdCB4NzcgPSAoeDQyICsgKHg1MiA8PCAweDQp
KTsKLSAgeyB1aW50NjRfdCB4NzggPSAoeDc3ICsgKHg1MiA8PCAweDEpKTsKLSAgeyB1aW50NjRf
dCB4NzkgPSAoeDc4ICsgeDUyKTsKLSAgeyB1aW50NjRfdCB4ODAgPSAoeDQxICsgKHg1MSA8PCAw
eDQpKTsKLSAgeyB1aW50NjRfdCB4ODEgPSAoeDgwICsgKHg1MSA8PCAweDEpKTsKLSAgeyB1aW50
NjRfdCB4ODIgPSAoeDgxICsgeDUxKTsKLSAgeyB1aW50NjRfdCB4ODMgPSAoeDQwICsgKHg1MCA8
PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4ODQgPSAoeDgzICsgKHg1MCA8PCAweDEpKTsKLSAgeyB1
aW50NjRfdCB4ODUgPSAoeDg0ICsgeDUwKTsKLSAgeyB1aW50NjRfdCB4ODYgPSAoeDg1ID4+IDB4
MWEpOwotICB7IHVpbnQzMl90IHg4NyA9ICgodWludDMyX3QpeDg1ICYgMHgzZmZmZmZmKTsKLSAg
eyB1aW50NjRfdCB4ODggPSAoeDg2ICsgeDgyKTsKLSAgeyB1aW50NjRfdCB4ODkgPSAoeDg4ID4+
IDB4MTkpOwotICB7IHVpbnQzMl90IHg5MCA9ICgodWludDMyX3QpeDg4ICYgMHgxZmZmZmZmKTsK
LSAgeyB1aW50NjRfdCB4OTEgPSAoeDg5ICsgeDc5KTsKLSAgeyB1aW50NjRfdCB4OTIgPSAoeDkx
ID4+IDB4MWEpOwotICB7IHVpbnQzMl90IHg5MyA9ICgodWludDMyX3QpeDkxICYgMHgzZmZmZmZm
KTsKLSAgeyB1aW50NjRfdCB4OTQgPSAoeDkyICsgeDc2KTsKLSAgeyB1aW50NjRfdCB4OTUgPSAo
eDk0ID4+IDB4MTkpOwotICB7IHVpbnQzMl90IHg5NiA9ICgodWludDMyX3QpeDk0ICYgMHgxZmZm
ZmZmKTsKLSAgeyB1aW50NjRfdCB4OTcgPSAoeDk1ICsgeDczKTsKLSAgeyB1aW50NjRfdCB4OTgg
PSAoeDk3ID4+IDB4MWEpOwotICB7IHVpbnQzMl90IHg5OSA9ICgodWludDMyX3QpeDk3ICYgMHgz
ZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4MTAwID0gKHg5OCArIHg3MCk7Ci0gIHsgdWludDY0X3Qg
eDEwMSA9ICh4MTAwID4+IDB4MTkpOwotICB7IHVpbnQzMl90IHgxMDIgPSAoKHVpbnQzMl90KXgx
MDAgJiAweDFmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgxMDMgPSAoeDEwMSArIHg2Nyk7Ci0gIHsg
dWludDY0X3QgeDEwNCA9ICh4MTAzID4+IDB4MWEpOwotICB7IHVpbnQzMl90IHgxMDUgPSAoKHVp
bnQzMl90KXgxMDMgJiAweDNmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgxMDYgPSAoeDEwNCArIHg2
NCk7Ci0gIHsgdWludDY0X3QgeDEwNyA9ICh4MTA2ID4+IDB4MTkpOwotICB7IHVpbnQzMl90IHgx
MDggPSAoKHVpbnQzMl90KXgxMDYgJiAweDFmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgxMDkgPSAo
eDEwNyArIHg2MSk7Ci0gIHsgdWludDY0X3QgeDExMCA9ICh4MTA5ID4+IDB4MWEpOwotICB7IHVp
bnQzMl90IHgxMTEgPSAoKHVpbnQzMl90KXgxMDkgJiAweDNmZmZmZmYpOwotICB7IHVpbnQ2NF90
IHgxMTIgPSAoeDExMCArIHg0OSk7Ci0gIHsgdWludDY0X3QgeDExMyA9ICh4MTEyID4+IDB4MTkp
OwotICB7IHVpbnQzMl90IHgxMTQgPSAoKHVpbnQzMl90KXgxMTIgJiAweDFmZmZmZmYpOwotICB7
IHVpbnQ2NF90IHgxMTUgPSAoeDg3ICsgKDB4MTMgKiB4MTEzKSk7Ci0gIHsgdWludDMyX3QgeDEx
NiA9ICh1aW50MzJfdCkgKHgxMTUgPj4gMHgxYSk7Ci0gIHsgdWludDMyX3QgeDExNyA9ICgodWlu
dDMyX3QpeDExNSAmIDB4M2ZmZmZmZik7Ci0gIHsgdWludDMyX3QgeDExOCA9ICh4MTE2ICsgeDkw
KTsKLSAgeyB1aW50MzJfdCB4MTE5ID0gKHgxMTggPj4gMHgxOSk7Ci0gIHsgdWludDMyX3QgeDEy
MCA9ICh4MTE4ICYgMHgxZmZmZmZmKTsKLSAgb3V0WzBdID0geDExNzsKLSAgb3V0WzFdID0geDEy
MDsKLSAgb3V0WzJdID0gKHgxMTkgKyB4OTMpOwotICBvdXRbM10gPSB4OTY7Ci0gIG91dFs0XSA9
IHg5OTsKLSAgb3V0WzVdID0geDEwMjsKLSAgb3V0WzZdID0geDEwNTsKLSAgb3V0WzddID0geDEw
ODsKLSAgb3V0WzhdID0geDExMTsKLSAgb3V0WzldID0geDExNDsKLSAgfX19fX19fX19fX19fX19
fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19
fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0KKyAgZmlhdF8yNTUxOV9jYXJyeV9tdWwob3V0
LCBpbjEsIGluMik7CiAgIGFzc2VydF9mZShvdXQpOwogfQogCkBAIC0xMDgwLDI5NyArMjU1LDQy
IEBAIHN0YXRpYyB2b2lkIGZlX211bF90bGwoZmUgKmgsIGNvbnN0IGZlX2xvb3NlICpmLCBjb25z
dCBmZV9sb29zZSAqZykgewogICBmZV9tdWxfaW1wbChoLT52LCBmLT52LCBnLT52KTsKIH0KIAot
c3RhdGljIHZvaWQgZmVfc3FyX2ltcGwodWludDMyX3Qgb3V0WzEwXSwgY29uc3QgdWludDMyX3Qg
aW4xWzEwXSkgewotICBhc3NlcnRfZmVfbG9vc2UoaW4xKTsKLSAgeyBjb25zdCB1aW50MzJfdCB4
MTcgPSBpbjFbOV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDE4ID0gaW4xWzhdOwotICB7IGNvbnN0
IHVpbnQzMl90IHgxNiA9IGluMVs3XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MTQgPSBpbjFbNl07
Ci0gIHsgY29uc3QgdWludDMyX3QgeDEyID0gaW4xWzVdOwotICB7IGNvbnN0IHVpbnQzMl90IHgx
MCA9IGluMVs0XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4OCA9IGluMVszXTsKLSAgeyBjb25zdCB1
aW50MzJfdCB4NiA9IGluMVsyXTsKLSAgeyBjb25zdCB1aW50MzJfdCB4NCA9IGluMVsxXTsKLSAg
eyBjb25zdCB1aW50MzJfdCB4MiA9IGluMVswXTsKLSAgeyB1aW50NjRfdCB4MTkgPSAoKHVpbnQ2
NF90KXgyICogeDIpOwotICB7IHVpbnQ2NF90IHgyMCA9ICgodWludDY0X3QpKDB4MiAqIHgyKSAq
IHg0KTsKLSAgeyB1aW50NjRfdCB4MjEgPSAoMHgyICogKCgodWludDY0X3QpeDQgKiB4NCkgKyAo
KHVpbnQ2NF90KXgyICogeDYpKSk7Ci0gIHsgdWludDY0X3QgeDIyID0gKDB4MiAqICgoKHVpbnQ2
NF90KXg0ICogeDYpICsgKCh1aW50NjRfdCl4MiAqIHg4KSkpOwotICB7IHVpbnQ2NF90IHgyMyA9
ICgoKCh1aW50NjRfdCl4NiAqIHg2KSArICgodWludDY0X3QpKDB4NCAqIHg0KSAqIHg4KSkgKyAo
KHVpbnQ2NF90KSgweDIgKiB4MikgKiB4MTApKTsKLSAgeyB1aW50NjRfdCB4MjQgPSAoMHgyICog
KCgoKHVpbnQ2NF90KXg2ICogeDgpICsgKCh1aW50NjRfdCl4NCAqIHgxMCkpICsgKCh1aW50NjRf
dCl4MiAqIHgxMikpKTsKLSAgeyB1aW50NjRfdCB4MjUgPSAoMHgyICogKCgoKCh1aW50NjRfdCl4
OCAqIHg4KSArICgodWludDY0X3QpeDYgKiB4MTApKSArICgodWludDY0X3QpeDIgKiB4MTQpKSAr
ICgodWludDY0X3QpKDB4MiAqIHg0KSAqIHgxMikpKTsKLSAgeyB1aW50NjRfdCB4MjYgPSAoMHgy
ICogKCgoKCh1aW50NjRfdCl4OCAqIHgxMCkgKyAoKHVpbnQ2NF90KXg2ICogeDEyKSkgKyAoKHVp
bnQ2NF90KXg0ICogeDE0KSkgKyAoKHVpbnQ2NF90KXgyICogeDE2KSkpOwotICB7IHVpbnQ2NF90
IHgyNyA9ICgoKHVpbnQ2NF90KXgxMCAqIHgxMCkgKyAoMHgyICogKCgoKHVpbnQ2NF90KXg2ICog
eDE0KSArICgodWludDY0X3QpeDIgKiB4MTgpKSArICgweDIgKiAoKCh1aW50NjRfdCl4NCAqIHgx
NikgKyAoKHVpbnQ2NF90KXg4ICogeDEyKSkpKSkpOwotICB7IHVpbnQ2NF90IHgyOCA9ICgweDIg
KiAoKCgoKCh1aW50NjRfdCl4MTAgKiB4MTIpICsgKCh1aW50NjRfdCl4OCAqIHgxNCkpICsgKCh1
aW50NjRfdCl4NiAqIHgxNikpICsgKCh1aW50NjRfdCl4NCAqIHgxOCkpICsgKCh1aW50NjRfdCl4
MiAqIHgxNykpKTsKLSAgeyB1aW50NjRfdCB4MjkgPSAoMHgyICogKCgoKCh1aW50NjRfdCl4MTIg
KiB4MTIpICsgKCh1aW50NjRfdCl4MTAgKiB4MTQpKSArICgodWludDY0X3QpeDYgKiB4MTgpKSAr
ICgweDIgKiAoKCh1aW50NjRfdCl4OCAqIHgxNikgKyAoKHVpbnQ2NF90KXg0ICogeDE3KSkpKSk7
Ci0gIHsgdWludDY0X3QgeDMwID0gKDB4MiAqICgoKCgodWludDY0X3QpeDEyICogeDE0KSArICgo
dWludDY0X3QpeDEwICogeDE2KSkgKyAoKHVpbnQ2NF90KXg4ICogeDE4KSkgKyAoKHVpbnQ2NF90
KXg2ICogeDE3KSkpOwotICB7IHVpbnQ2NF90IHgzMSA9ICgoKHVpbnQ2NF90KXgxNCAqIHgxNCkg
KyAoMHgyICogKCgodWludDY0X3QpeDEwICogeDE4KSArICgweDIgKiAoKCh1aW50NjRfdCl4MTIg
KiB4MTYpICsgKCh1aW50NjRfdCl4OCAqIHgxNykpKSkpKTsKLSAgeyB1aW50NjRfdCB4MzIgPSAo
MHgyICogKCgoKHVpbnQ2NF90KXgxNCAqIHgxNikgKyAoKHVpbnQ2NF90KXgxMiAqIHgxOCkpICsg
KCh1aW50NjRfdCl4MTAgKiB4MTcpKSk7Ci0gIHsgdWludDY0X3QgeDMzID0gKDB4MiAqICgoKCh1
aW50NjRfdCl4MTYgKiB4MTYpICsgKCh1aW50NjRfdCl4MTQgKiB4MTgpKSArICgodWludDY0X3Qp
KDB4MiAqIHgxMikgKiB4MTcpKSk7Ci0gIHsgdWludDY0X3QgeDM0ID0gKDB4MiAqICgoKHVpbnQ2
NF90KXgxNiAqIHgxOCkgKyAoKHVpbnQ2NF90KXgxNCAqIHgxNykpKTsKLSAgeyB1aW50NjRfdCB4
MzUgPSAoKCh1aW50NjRfdCl4MTggKiB4MTgpICsgKCh1aW50NjRfdCkoMHg0ICogeDE2KSAqIHgx
NykpOwotICB7IHVpbnQ2NF90IHgzNiA9ICgodWludDY0X3QpKDB4MiAqIHgxOCkgKiB4MTcpOwot
ICB7IHVpbnQ2NF90IHgzNyA9ICgodWludDY0X3QpKDB4MiAqIHgxNykgKiB4MTcpOwotICB7IHVp
bnQ2NF90IHgzOCA9ICh4MjcgKyAoeDM3IDw8IDB4NCkpOwotICB7IHVpbnQ2NF90IHgzOSA9ICh4
MzggKyAoeDM3IDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg0MCA9ICh4MzkgKyB4MzcpOwotICB7
IHVpbnQ2NF90IHg0MSA9ICh4MjYgKyAoeDM2IDw8IDB4NCkpOwotICB7IHVpbnQ2NF90IHg0MiA9
ICh4NDEgKyAoeDM2IDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg0MyA9ICh4NDIgKyB4MzYpOwot
ICB7IHVpbnQ2NF90IHg0NCA9ICh4MjUgKyAoeDM1IDw8IDB4NCkpOwotICB7IHVpbnQ2NF90IHg0
NSA9ICh4NDQgKyAoeDM1IDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg0NiA9ICh4NDUgKyB4MzUp
OwotICB7IHVpbnQ2NF90IHg0NyA9ICh4MjQgKyAoeDM0IDw8IDB4NCkpOwotICB7IHVpbnQ2NF90
IHg0OCA9ICh4NDcgKyAoeDM0IDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg0OSA9ICh4NDggKyB4
MzQpOwotICB7IHVpbnQ2NF90IHg1MCA9ICh4MjMgKyAoeDMzIDw8IDB4NCkpOwotICB7IHVpbnQ2
NF90IHg1MSA9ICh4NTAgKyAoeDMzIDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg1MiA9ICh4NTEg
KyB4MzMpOwotICB7IHVpbnQ2NF90IHg1MyA9ICh4MjIgKyAoeDMyIDw8IDB4NCkpOwotICB7IHVp
bnQ2NF90IHg1NCA9ICh4NTMgKyAoeDMyIDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg1NSA9ICh4
NTQgKyB4MzIpOwotICB7IHVpbnQ2NF90IHg1NiA9ICh4MjEgKyAoeDMxIDw8IDB4NCkpOwotICB7
IHVpbnQ2NF90IHg1NyA9ICh4NTYgKyAoeDMxIDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg1OCA9
ICh4NTcgKyB4MzEpOwotICB7IHVpbnQ2NF90IHg1OSA9ICh4MjAgKyAoeDMwIDw8IDB4NCkpOwot
ICB7IHVpbnQ2NF90IHg2MCA9ICh4NTkgKyAoeDMwIDw8IDB4MSkpOwotICB7IHVpbnQ2NF90IHg2
MSA9ICh4NjAgKyB4MzApOwotICB7IHVpbnQ2NF90IHg2MiA9ICh4MTkgKyAoeDI5IDw8IDB4NCkp
OwotICB7IHVpbnQ2NF90IHg2MyA9ICh4NjIgKyAoeDI5IDw8IDB4MSkpOwotICB7IHVpbnQ2NF90
IHg2NCA9ICh4NjMgKyB4MjkpOwotICB7IHVpbnQ2NF90IHg2NSA9ICh4NjQgPj4gMHgxYSk7Ci0g
IHsgdWludDMyX3QgeDY2ID0gKCh1aW50MzJfdCl4NjQgJiAweDNmZmZmZmYpOwotICB7IHVpbnQ2
NF90IHg2NyA9ICh4NjUgKyB4NjEpOwotICB7IHVpbnQ2NF90IHg2OCA9ICh4NjcgPj4gMHgxOSk7
Ci0gIHsgdWludDMyX3QgeDY5ID0gKCh1aW50MzJfdCl4NjcgJiAweDFmZmZmZmYpOwotICB7IHVp
bnQ2NF90IHg3MCA9ICh4NjggKyB4NTgpOwotICB7IHVpbnQ2NF90IHg3MSA9ICh4NzAgPj4gMHgx
YSk7Ci0gIHsgdWludDMyX3QgeDcyID0gKCh1aW50MzJfdCl4NzAgJiAweDNmZmZmZmYpOwotICB7
IHVpbnQ2NF90IHg3MyA9ICh4NzEgKyB4NTUpOwotICB7IHVpbnQ2NF90IHg3NCA9ICh4NzMgPj4g
MHgxOSk7Ci0gIHsgdWludDMyX3QgeDc1ID0gKCh1aW50MzJfdCl4NzMgJiAweDFmZmZmZmYpOwot
ICB7IHVpbnQ2NF90IHg3NiA9ICh4NzQgKyB4NTIpOwotICB7IHVpbnQ2NF90IHg3NyA9ICh4NzYg
Pj4gMHgxYSk7Ci0gIHsgdWludDMyX3QgeDc4ID0gKCh1aW50MzJfdCl4NzYgJiAweDNmZmZmZmYp
OwotICB7IHVpbnQ2NF90IHg3OSA9ICh4NzcgKyB4NDkpOwotICB7IHVpbnQ2NF90IHg4MCA9ICh4
NzkgPj4gMHgxOSk7Ci0gIHsgdWludDMyX3QgeDgxID0gKCh1aW50MzJfdCl4NzkgJiAweDFmZmZm
ZmYpOwotICB7IHVpbnQ2NF90IHg4MiA9ICh4ODAgKyB4NDYpOwotICB7IHVpbnQ2NF90IHg4MyA9
ICh4ODIgPj4gMHgxYSk7Ci0gIHsgdWludDMyX3QgeDg0ID0gKCh1aW50MzJfdCl4ODIgJiAweDNm
ZmZmZmYpOwotICB7IHVpbnQ2NF90IHg4NSA9ICh4ODMgKyB4NDMpOwotICB7IHVpbnQ2NF90IHg4
NiA9ICh4ODUgPj4gMHgxOSk7Ci0gIHsgdWludDMyX3QgeDg3ID0gKCh1aW50MzJfdCl4ODUgJiAw
eDFmZmZmZmYpOwotICB7IHVpbnQ2NF90IHg4OCA9ICh4ODYgKyB4NDApOwotICB7IHVpbnQ2NF90
IHg4OSA9ICh4ODggPj4gMHgxYSk7Ci0gIHsgdWludDMyX3QgeDkwID0gKCh1aW50MzJfdCl4ODgg
JiAweDNmZmZmZmYpOwotICB7IHVpbnQ2NF90IHg5MSA9ICh4ODkgKyB4MjgpOwotICB7IHVpbnQ2
NF90IHg5MiA9ICh4OTEgPj4gMHgxOSk7Ci0gIHsgdWludDMyX3QgeDkzID0gKCh1aW50MzJfdCl4
OTEgJiAweDFmZmZmZmYpOwotICB7IHVpbnQ2NF90IHg5NCA9ICh4NjYgKyAoMHgxMyAqIHg5Mikp
OwotICB7IHVpbnQzMl90IHg5NSA9ICh1aW50MzJfdCkgKHg5NCA+PiAweDFhKTsKLSAgeyB1aW50
MzJfdCB4OTYgPSAoKHVpbnQzMl90KXg5NCAmIDB4M2ZmZmZmZik7Ci0gIHsgdWludDMyX3QgeDk3
ID0gKHg5NSArIHg2OSk7Ci0gIHsgdWludDMyX3QgeDk4ID0gKHg5NyA+PiAweDE5KTsKLSAgeyB1
aW50MzJfdCB4OTkgPSAoeDk3ICYgMHgxZmZmZmZmKTsKLSAgb3V0WzBdID0geDk2OwotICBvdXRb
MV0gPSB4OTk7Ci0gIG91dFsyXSA9ICh4OTggKyB4NzIpOwotICBvdXRbM10gPSB4NzU7Ci0gIG91
dFs0XSA9IHg3ODsKLSAgb3V0WzVdID0geDgxOwotICBvdXRbNl0gPSB4ODQ7Ci0gIG91dFs3XSA9
IHg4NzsKLSAgb3V0WzhdID0geDkwOwotICBvdXRbOV0gPSB4OTM7Ci0gIH19fX19fX19fX19fX19
fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19
fX19fX19fX19fX19fX19fX19fX0KLSAgYXNzZXJ0X2ZlKG91dCk7Ci19Ci0KIHN0YXRpYyB2b2lk
IGZlX3NxX3RsKGZlICpoLCBjb25zdCBmZV9sb29zZSAqZikgewotICBmZV9zcXJfaW1wbChoLT52
LCBmLT52KTsKKyAgYXNzZXJ0X2ZlX2xvb3NlKGYtPnYpOworICBmaWF0XzI1NTE5X2NhcnJ5X3Nx
dWFyZShoLT52LCBmLT52KTsKKyAgYXNzZXJ0X2ZlKGgtPnYpOwogfQogCiBzdGF0aWMgdm9pZCBm
ZV9zcV90dChmZSAqaCwgY29uc3QgZmUgKmYpIHsKLSAgZmVfc3FyX2ltcGwoaC0+diwgZi0+dik7
CisgIGFzc2VydF9mZV9sb29zZShmLT52KTsKKyAgZmlhdF8yNTUxOV9jYXJyeV9zcXVhcmUoaC0+
diwgZi0+dik7CisgIGFzc2VydF9mZShoLT52KTsKIH0KIAogLy8gUmVwbGFjZSAoZixnKSB3aXRo
IChnLGYpIGlmIGIgPT0gMTsKIC8vIHJlcGxhY2UgKGYsZykgd2l0aCAoZixnKSBpZiBiID09IDAu
CiAvLwogLy8gUHJlY29uZGl0aW9uczogYiBpbiB7MCwxfS4KLXN0YXRpYyB2b2lkIGZlX2Nzd2Fw
KGZlICpmLCBmZSAqZywgdW5zaWduZWQgaW50IGIpIHsKK3N0YXRpYyB2b2lkIGZlX2Nzd2FwKGZl
ICpmLCBmZSAqZywgZmVfbGltYl90IGIpIHsKICAgYiA9IDAtYjsKLSAgdW5zaWduZWQgaTsKLSAg
Zm9yIChpID0gMDsgaSA8IDEwOyBpKyspIHsKLSAgICB1aW50MzJfdCB4ID0gZi0+dltpXSBeIGct
PnZbaV07CisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGRV9OVU1fTElNQlM7IGkrKykgewor
ICAgIGZlX2xpbWJfdCB4ID0gZi0+dltpXSBeIGctPnZbaV07CiAgICAgeCAmPSBiOwogICAgIGYt
PnZbaV0gXj0geDsKICAgICBnLT52W2ldIF49IHg7CiAgIH0KIH0KIAotLy8gTk9URTogYmFzZWQg
b24gZmlhdC1jcnlwdG8gZmVfbXVsLCBlZGl0ZWQgZm9yIGluMj0xMjE2NjYsIDAsIDAuLgotc3Rh
dGljIHZvaWQgZmVfbXVsXzEyMTY2Nl9pbXBsKHVpbnQzMl90IG91dFsxMF0sIGNvbnN0IHVpbnQz
Ml90IGluMVsxMF0pIHsKLSAgeyBjb25zdCB1aW50MzJfdCB4MjAgPSBpbjFbOV07Ci0gIHsgY29u
c3QgdWludDMyX3QgeDIxID0gaW4xWzhdOwotICB7IGNvbnN0IHVpbnQzMl90IHgxOSA9IGluMVs3
XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MTcgPSBpbjFbNl07Ci0gIHsgY29uc3QgdWludDMyX3Qg
eDE1ID0gaW4xWzVdOwotICB7IGNvbnN0IHVpbnQzMl90IHgxMyA9IGluMVs0XTsKLSAgeyBjb25z
dCB1aW50MzJfdCB4MTEgPSBpbjFbM107Ci0gIHsgY29uc3QgdWludDMyX3QgeDkgPSBpbjFbMl07
Ci0gIHsgY29uc3QgdWludDMyX3QgeDcgPSBpbjFbMV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDUg
PSBpbjFbMF07Ci0gIHsgY29uc3QgdWludDMyX3QgeDM4ID0gMDsKLSAgeyBjb25zdCB1aW50MzJf
dCB4MzkgPSAwOwotICB7IGNvbnN0IHVpbnQzMl90IHgzNyA9IDA7Ci0gIHsgY29uc3QgdWludDMy
X3QgeDM1ID0gMDsKLSAgeyBjb25zdCB1aW50MzJfdCB4MzMgPSAwOwotICB7IGNvbnN0IHVpbnQz
Ml90IHgzMSA9IDA7Ci0gIHsgY29uc3QgdWludDMyX3QgeDI5ID0gMDsKLSAgeyBjb25zdCB1aW50
MzJfdCB4MjcgPSAwOwotICB7IGNvbnN0IHVpbnQzMl90IHgyNSA9IDA7Ci0gIHsgY29uc3QgdWlu
dDMyX3QgeDIzID0gMTIxNjY2OwotICB7IHVpbnQ2NF90IHg0MCA9ICgodWludDY0X3QpeDIzICog
eDUpOwotICB7IHVpbnQ2NF90IHg0MSA9ICgoKHVpbnQ2NF90KXgyMyAqIHg3KSArICgodWludDY0
X3QpeDI1ICogeDUpKTsKLSAgeyB1aW50NjRfdCB4NDIgPSAoKCgodWludDY0X3QpKDB4MiAqIHgy
NSkgKiB4NykgKyAoKHVpbnQ2NF90KXgyMyAqIHg5KSkgKyAoKHVpbnQ2NF90KXgyNyAqIHg1KSk7
Ci0gIHsgdWludDY0X3QgeDQzID0gKCgoKCh1aW50NjRfdCl4MjUgKiB4OSkgKyAoKHVpbnQ2NF90
KXgyNyAqIHg3KSkgKyAoKHVpbnQ2NF90KXgyMyAqIHgxMSkpICsgKCh1aW50NjRfdCl4MjkgKiB4
NSkpOwotICB7IHVpbnQ2NF90IHg0NCA9ICgoKCgodWludDY0X3QpeDI3ICogeDkpICsgKDB4MiAq
ICgoKHVpbnQ2NF90KXgyNSAqIHgxMSkgKyAoKHVpbnQ2NF90KXgyOSAqIHg3KSkpKSArICgodWlu
dDY0X3QpeDIzICogeDEzKSkgKyAoKHVpbnQ2NF90KXgzMSAqIHg1KSk7Ci0gIHsgdWludDY0X3Qg
eDQ1ID0gKCgoKCgoKHVpbnQ2NF90KXgyNyAqIHgxMSkgKyAoKHVpbnQ2NF90KXgyOSAqIHg5KSkg
KyAoKHVpbnQ2NF90KXgyNSAqIHgxMykpICsgKCh1aW50NjRfdCl4MzEgKiB4NykpICsgKCh1aW50
NjRfdCl4MjMgKiB4MTUpKSArICgodWludDY0X3QpeDMzICogeDUpKTsKLSAgeyB1aW50NjRfdCB4
NDYgPSAoKCgoKDB4MiAqICgoKCh1aW50NjRfdCl4MjkgKiB4MTEpICsgKCh1aW50NjRfdCl4MjUg
KiB4MTUpKSArICgodWludDY0X3QpeDMzICogeDcpKSkgKyAoKHVpbnQ2NF90KXgyNyAqIHgxMykp
ICsgKCh1aW50NjRfdCl4MzEgKiB4OSkpICsgKCh1aW50NjRfdCl4MjMgKiB4MTcpKSArICgodWlu
dDY0X3QpeDM1ICogeDUpKTsKLSAgeyB1aW50NjRfdCB4NDcgPSAoKCgoKCgoKCh1aW50NjRfdCl4
MjkgKiB4MTMpICsgKCh1aW50NjRfdCl4MzEgKiB4MTEpKSArICgodWludDY0X3QpeDI3ICogeDE1
KSkgKyAoKHVpbnQ2NF90KXgzMyAqIHg5KSkgKyAoKHVpbnQ2NF90KXgyNSAqIHgxNykpICsgKCh1
aW50NjRfdCl4MzUgKiB4NykpICsgKCh1aW50NjRfdCl4MjMgKiB4MTkpKSArICgodWludDY0X3Qp
eDM3ICogeDUpKTsKLSAgeyB1aW50NjRfdCB4NDggPSAoKCgoKCgodWludDY0X3QpeDMxICogeDEz
KSArICgweDIgKiAoKCgoKHVpbnQ2NF90KXgyOSAqIHgxNSkgKyAoKHVpbnQ2NF90KXgzMyAqIHgx
MSkpICsgKCh1aW50NjRfdCl4MjUgKiB4MTkpKSArICgodWludDY0X3QpeDM3ICogeDcpKSkpICsg
KCh1aW50NjRfdCl4MjcgKiB4MTcpKSArICgodWludDY0X3QpeDM1ICogeDkpKSArICgodWludDY0
X3QpeDIzICogeDIxKSkgKyAoKHVpbnQ2NF90KXgzOSAqIHg1KSk7Ci0gIHsgdWludDY0X3QgeDQ5
ID0gKCgoKCgoKCgoKCh1aW50NjRfdCl4MzEgKiB4MTUpICsgKCh1aW50NjRfdCl4MzMgKiB4MTMp
KSArICgodWludDY0X3QpeDI5ICogeDE3KSkgKyAoKHVpbnQ2NF90KXgzNSAqIHgxMSkpICsgKCh1
aW50NjRfdCl4MjcgKiB4MTkpKSArICgodWludDY0X3QpeDM3ICogeDkpKSArICgodWludDY0X3Qp
eDI1ICogeDIxKSkgKyAoKHVpbnQ2NF90KXgzOSAqIHg3KSkgKyAoKHVpbnQ2NF90KXgyMyAqIHgy
MCkpICsgKCh1aW50NjRfdCl4MzggKiB4NSkpOwotICB7IHVpbnQ2NF90IHg1MCA9ICgoKCgoMHgy
ICogKCgoKCgodWludDY0X3QpeDMzICogeDE1KSArICgodWludDY0X3QpeDI5ICogeDE5KSkgKyAo
KHVpbnQ2NF90KXgzNyAqIHgxMSkpICsgKCh1aW50NjRfdCl4MjUgKiB4MjApKSArICgodWludDY0
X3QpeDM4ICogeDcpKSkgKyAoKHVpbnQ2NF90KXgzMSAqIHgxNykpICsgKCh1aW50NjRfdCl4MzUg
KiB4MTMpKSArICgodWludDY0X3QpeDI3ICogeDIxKSkgKyAoKHVpbnQ2NF90KXgzOSAqIHg5KSk7
Ci0gIHsgdWludDY0X3QgeDUxID0gKCgoKCgoKCgodWludDY0X3QpeDMzICogeDE3KSArICgodWlu
dDY0X3QpeDM1ICogeDE1KSkgKyAoKHVpbnQ2NF90KXgzMSAqIHgxOSkpICsgKCh1aW50NjRfdCl4
MzcgKiB4MTMpKSArICgodWludDY0X3QpeDI5ICogeDIxKSkgKyAoKHVpbnQ2NF90KXgzOSAqIHgx
MSkpICsgKCh1aW50NjRfdCl4MjcgKiB4MjApKSArICgodWludDY0X3QpeDM4ICogeDkpKTsKLSAg
eyB1aW50NjRfdCB4NTIgPSAoKCgoKHVpbnQ2NF90KXgzNSAqIHgxNykgKyAoMHgyICogKCgoKCh1
aW50NjRfdCl4MzMgKiB4MTkpICsgKCh1aW50NjRfdCl4MzcgKiB4MTUpKSArICgodWludDY0X3Qp
eDI5ICogeDIwKSkgKyAoKHVpbnQ2NF90KXgzOCAqIHgxMSkpKSkgKyAoKHVpbnQ2NF90KXgzMSAq
IHgyMSkpICsgKCh1aW50NjRfdCl4MzkgKiB4MTMpKTsKLSAgeyB1aW50NjRfdCB4NTMgPSAoKCgo
KCgodWludDY0X3QpeDM1ICogeDE5KSArICgodWludDY0X3QpeDM3ICogeDE3KSkgKyAoKHVpbnQ2
NF90KXgzMyAqIHgyMSkpICsgKCh1aW50NjRfdCl4MzkgKiB4MTUpKSArICgodWludDY0X3QpeDMx
ICogeDIwKSkgKyAoKHVpbnQ2NF90KXgzOCAqIHgxMykpOwotICB7IHVpbnQ2NF90IHg1NCA9ICgo
KDB4MiAqICgoKCh1aW50NjRfdCl4MzcgKiB4MTkpICsgKCh1aW50NjRfdCl4MzMgKiB4MjApKSAr
ICgodWludDY0X3QpeDM4ICogeDE1KSkpICsgKCh1aW50NjRfdCl4MzUgKiB4MjEpKSArICgodWlu
dDY0X3QpeDM5ICogeDE3KSk7Ci0gIHsgdWludDY0X3QgeDU1ID0gKCgoKCh1aW50NjRfdCl4Mzcg
KiB4MjEpICsgKCh1aW50NjRfdCl4MzkgKiB4MTkpKSArICgodWludDY0X3QpeDM1ICogeDIwKSkg
KyAoKHVpbnQ2NF90KXgzOCAqIHgxNykpOwotICB7IHVpbnQ2NF90IHg1NiA9ICgoKHVpbnQ2NF90
KXgzOSAqIHgyMSkgKyAoMHgyICogKCgodWludDY0X3QpeDM3ICogeDIwKSArICgodWludDY0X3Qp
eDM4ICogeDE5KSkpKTsKLSAgeyB1aW50NjRfdCB4NTcgPSAoKCh1aW50NjRfdCl4MzkgKiB4MjAp
ICsgKCh1aW50NjRfdCl4MzggKiB4MjEpKTsKLSAgeyB1aW50NjRfdCB4NTggPSAoKHVpbnQ2NF90
KSgweDIgKiB4MzgpICogeDIwKTsKLSAgeyB1aW50NjRfdCB4NTkgPSAoeDQ4ICsgKHg1OCA8PCAw
eDQpKTsKLSAgeyB1aW50NjRfdCB4NjAgPSAoeDU5ICsgKHg1OCA8PCAweDEpKTsKLSAgeyB1aW50
NjRfdCB4NjEgPSAoeDYwICsgeDU4KTsKLSAgeyB1aW50NjRfdCB4NjIgPSAoeDQ3ICsgKHg1NyA8
PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4NjMgPSAoeDYyICsgKHg1NyA8PCAweDEpKTsKLSAgeyB1
aW50NjRfdCB4NjQgPSAoeDYzICsgeDU3KTsKLSAgeyB1aW50NjRfdCB4NjUgPSAoeDQ2ICsgKHg1
NiA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4NjYgPSAoeDY1ICsgKHg1NiA8PCAweDEpKTsKLSAg
eyB1aW50NjRfdCB4NjcgPSAoeDY2ICsgeDU2KTsKLSAgeyB1aW50NjRfdCB4NjggPSAoeDQ1ICsg
KHg1NSA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4NjkgPSAoeDY4ICsgKHg1NSA8PCAweDEpKTsK
LSAgeyB1aW50NjRfdCB4NzAgPSAoeDY5ICsgeDU1KTsKLSAgeyB1aW50NjRfdCB4NzEgPSAoeDQ0
ICsgKHg1NCA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4NzIgPSAoeDcxICsgKHg1NCA8PCAweDEp
KTsKLSAgeyB1aW50NjRfdCB4NzMgPSAoeDcyICsgeDU0KTsKLSAgeyB1aW50NjRfdCB4NzQgPSAo
eDQzICsgKHg1MyA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4NzUgPSAoeDc0ICsgKHg1MyA8PCAw
eDEpKTsKLSAgeyB1aW50NjRfdCB4NzYgPSAoeDc1ICsgeDUzKTsKLSAgeyB1aW50NjRfdCB4Nzcg
PSAoeDQyICsgKHg1MiA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4NzggPSAoeDc3ICsgKHg1MiA8
PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4NzkgPSAoeDc4ICsgeDUyKTsKLSAgeyB1aW50NjRfdCB4
ODAgPSAoeDQxICsgKHg1MSA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4ODEgPSAoeDgwICsgKHg1
MSA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4ODIgPSAoeDgxICsgeDUxKTsKLSAgeyB1aW50NjRf
dCB4ODMgPSAoeDQwICsgKHg1MCA8PCAweDQpKTsKLSAgeyB1aW50NjRfdCB4ODQgPSAoeDgzICsg
KHg1MCA8PCAweDEpKTsKLSAgeyB1aW50NjRfdCB4ODUgPSAoeDg0ICsgeDUwKTsKLSAgeyB1aW50
NjRfdCB4ODYgPSAoeDg1ID4+IDB4MWEpOwotICB7IHVpbnQzMl90IHg4NyA9ICgodWludDMyX3Qp
eDg1ICYgMHgzZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4ODggPSAoeDg2ICsgeDgyKTsKLSAgeyB1
aW50NjRfdCB4ODkgPSAoeDg4ID4+IDB4MTkpOwotICB7IHVpbnQzMl90IHg5MCA9ICgodWludDMy
X3QpeDg4ICYgMHgxZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4OTEgPSAoeDg5ICsgeDc5KTsKLSAg
eyB1aW50NjRfdCB4OTIgPSAoeDkxID4+IDB4MWEpOwotICB7IHVpbnQzMl90IHg5MyA9ICgodWlu
dDMyX3QpeDkxICYgMHgzZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4OTQgPSAoeDkyICsgeDc2KTsK
LSAgeyB1aW50NjRfdCB4OTUgPSAoeDk0ID4+IDB4MTkpOwotICB7IHVpbnQzMl90IHg5NiA9ICgo
dWludDMyX3QpeDk0ICYgMHgxZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4OTcgPSAoeDk1ICsgeDcz
KTsKLSAgeyB1aW50NjRfdCB4OTggPSAoeDk3ID4+IDB4MWEpOwotICB7IHVpbnQzMl90IHg5OSA9
ICgodWludDMyX3QpeDk3ICYgMHgzZmZmZmZmKTsKLSAgeyB1aW50NjRfdCB4MTAwID0gKHg5OCAr
IHg3MCk7Ci0gIHsgdWludDY0X3QgeDEwMSA9ICh4MTAwID4+IDB4MTkpOwotICB7IHVpbnQzMl90
IHgxMDIgPSAoKHVpbnQzMl90KXgxMDAgJiAweDFmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgxMDMg
PSAoeDEwMSArIHg2Nyk7Ci0gIHsgdWludDY0X3QgeDEwNCA9ICh4MTAzID4+IDB4MWEpOwotICB7
IHVpbnQzMl90IHgxMDUgPSAoKHVpbnQzMl90KXgxMDMgJiAweDNmZmZmZmYpOwotICB7IHVpbnQ2
NF90IHgxMDYgPSAoeDEwNCArIHg2NCk7Ci0gIHsgdWludDY0X3QgeDEwNyA9ICh4MTA2ID4+IDB4
MTkpOwotICB7IHVpbnQzMl90IHgxMDggPSAoKHVpbnQzMl90KXgxMDYgJiAweDFmZmZmZmYpOwot
ICB7IHVpbnQ2NF90IHgxMDkgPSAoeDEwNyArIHg2MSk7Ci0gIHsgdWludDY0X3QgeDExMCA9ICh4
MTA5ID4+IDB4MWEpOwotICB7IHVpbnQzMl90IHgxMTEgPSAoKHVpbnQzMl90KXgxMDkgJiAweDNm
ZmZmZmYpOwotICB7IHVpbnQ2NF90IHgxMTIgPSAoeDExMCArIHg0OSk7Ci0gIHsgdWludDY0X3Qg
eDExMyA9ICh4MTEyID4+IDB4MTkpOwotICB7IHVpbnQzMl90IHgxMTQgPSAoKHVpbnQzMl90KXgx
MTIgJiAweDFmZmZmZmYpOwotICB7IHVpbnQ2NF90IHgxMTUgPSAoeDg3ICsgKDB4MTMgKiB4MTEz
KSk7Ci0gIHsgdWludDMyX3QgeDExNiA9ICh1aW50MzJfdCkgKHgxMTUgPj4gMHgxYSk7Ci0gIHsg
dWludDMyX3QgeDExNyA9ICgodWludDMyX3QpeDExNSAmIDB4M2ZmZmZmZik7Ci0gIHsgdWludDMy
X3QgeDExOCA9ICh4MTE2ICsgeDkwKTsKLSAgeyB1aW50MzJfdCB4MTE5ID0gKHgxMTggPj4gMHgx
OSk7Ci0gIHsgdWludDMyX3QgeDEyMCA9ICh4MTE4ICYgMHgxZmZmZmZmKTsKLSAgb3V0WzBdID0g
eDExNzsKLSAgb3V0WzFdID0geDEyMDsKLSAgb3V0WzJdID0gKHgxMTkgKyB4OTMpOwotICBvdXRb
M10gPSB4OTY7Ci0gIG91dFs0XSA9IHg5OTsKLSAgb3V0WzVdID0geDEwMjsKLSAgb3V0WzZdID0g
eDEwNTsKLSAgb3V0WzddID0geDEwODsKLSAgb3V0WzhdID0geDExMTsKLSAgb3V0WzldID0geDEx
NDsKLSAgfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19
fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0KLX0KLQog
c3RhdGljIHZvaWQgZmVfbXVsMTIxNjY2KGZlICpoLCBjb25zdCBmZV9sb29zZSAqZikgewogICBh
c3NlcnRfZmVfbG9vc2UoZi0+dik7Ci0gIGZlX211bF8xMjE2NjZfaW1wbChoLT52LCBmLT52KTsK
KyAgZmlhdF8yNTUxOV9jYXJyeV9zY211bF8xMjE2NjYoaC0+diwgZi0+dik7CiAgIGFzc2VydF9m
ZShoLT52KTsKIH0KIAotLy8gQWRhcHRlZCBmcm9tIEZpYXQtc3ludGhlc2l6ZWQgfGZlX3N1Yl9p
bXBsfCB3aXRoIHxvdXR8ID0gMC4KLXN0YXRpYyB2b2lkIGZlX25lZ19pbXBsKHVpbnQzMl90IG91
dFsxMF0sIGNvbnN0IHVpbnQzMl90IGluMlsxMF0pIHsKLSAgeyBjb25zdCB1aW50MzJfdCB4MjAg
PSAwOwotICB7IGNvbnN0IHVpbnQzMl90IHgyMSA9IDA7Ci0gIHsgY29uc3QgdWludDMyX3QgeDE5
ID0gMDsKLSAgeyBjb25zdCB1aW50MzJfdCB4MTcgPSAwOwotICB7IGNvbnN0IHVpbnQzMl90IHgx
NSA9IDA7Ci0gIHsgY29uc3QgdWludDMyX3QgeDEzID0gMDsKLSAgeyBjb25zdCB1aW50MzJfdCB4
MTEgPSAwOwotICB7IGNvbnN0IHVpbnQzMl90IHg5ID0gMDsKLSAgeyBjb25zdCB1aW50MzJfdCB4
NyA9IDA7Ci0gIHsgY29uc3QgdWludDMyX3QgeDUgPSAwOwotICB7IGNvbnN0IHVpbnQzMl90IHgz
OCA9IGluMls5XTsKLSAgeyBjb25zdCB1aW50MzJfdCB4MzkgPSBpbjJbOF07Ci0gIHsgY29uc3Qg
dWludDMyX3QgeDM3ID0gaW4yWzddOwotICB7IGNvbnN0IHVpbnQzMl90IHgzNSA9IGluMls2XTsK
LSAgeyBjb25zdCB1aW50MzJfdCB4MzMgPSBpbjJbNV07Ci0gIHsgY29uc3QgdWludDMyX3QgeDMx
ID0gaW4yWzRdOwotICB7IGNvbnN0IHVpbnQzMl90IHgyOSA9IGluMlszXTsKLSAgeyBjb25zdCB1
aW50MzJfdCB4MjcgPSBpbjJbMl07Ci0gIHsgY29uc3QgdWludDMyX3QgeDI1ID0gaW4yWzFdOwot
ICB7IGNvbnN0IHVpbnQzMl90IHgyMyA9IGluMlswXTsKLSAgb3V0WzBdID0gKCgweDdmZmZmZGEg
KyB4NSkgLSB4MjMpOwotICBvdXRbMV0gPSAoKDB4M2ZmZmZmZSArIHg3KSAtIHgyNSk7Ci0gIG91
dFsyXSA9ICgoMHg3ZmZmZmZlICsgeDkpIC0geDI3KTsKLSAgb3V0WzNdID0gKCgweDNmZmZmZmUg
KyB4MTEpIC0geDI5KTsKLSAgb3V0WzRdID0gKCgweDdmZmZmZmUgKyB4MTMpIC0geDMxKTsKLSAg
b3V0WzVdID0gKCgweDNmZmZmZmUgKyB4MTUpIC0geDMzKTsKLSAgb3V0WzZdID0gKCgweDdmZmZm
ZmUgKyB4MTcpIC0geDM1KTsKLSAgb3V0WzddID0gKCgweDNmZmZmZmUgKyB4MTkpIC0geDM3KTsK
LSAgb3V0WzhdID0gKCgweDdmZmZmZmUgKyB4MjEpIC0geDM5KTsKLSAgb3V0WzldID0gKCgweDNm
ZmZmZmUgKyB4MjApIC0geDM4KTsKLSAgfX19fX19fX19fX19fX19fX19fX0KLX0KLQogLy8gaCA9
IC1mCiBzdGF0aWMgdm9pZCBmZV9uZWcoZmVfbG9vc2UgKmgsIGNvbnN0IGZlICpmKSB7CiAgIGFz
c2VydF9mZShmLT52KTsKLSAgZmVfbmVnX2ltcGwoaC0+diwgZi0+dik7CisgIGZpYXRfMjU1MTlf
b3BwKGgtPnYsIGYtPnYpOwogICBhc3NlcnRfZmVfbG9vc2UoaC0+dik7CiB9CiAKQEAgLTEzNzgs
MTggKzI5OCwyMiBAQCBzdGF0aWMgdm9pZCBmZV9uZWcoZmVfbG9vc2UgKmgsIGNvbnN0IGZlICpm
KSB7CiAvLyByZXBsYWNlIChmLGcpIHdpdGggKGYsZykgaWYgYiA9PSAwLgogLy8KIC8vIFByZWNv
bmRpdGlvbnM6IGIgaW4gezAsMX0uCi1zdGF0aWMgdm9pZCBmZV9jbW92KGZlX2xvb3NlICpmLCBj
b25zdCBmZV9sb29zZSAqZywgdW5zaWduZWQgYikgeworc3RhdGljIHZvaWQgZmVfY21vdihmZV9s
b29zZSAqZiwgY29uc3QgZmVfbG9vc2UgKmcsIGZlX2xpbWJfdCBiKSB7CisgIC8vIFNpbGVuY2Ug
YW4gdW51c2VkIGZ1bmN0aW9uIHdhcm5pbmcuIHxmaWF0XzI1NTE5X3NlbGVjdHpuenwgaXNuJ3Qg
cXVpdGUgdGhlCisgIC8vIGNhbGxpbmcgY29udmVudGlvbiB0aGUgcmVzdCBvZiB0aGlzIGNvZGUg
d2FudHMsIHNvIGltcGxlbWVudCBpdCBieSBoYW5kLgorICAvLworICAvLyBUT0RPKGRhdmlkYmVu
KTogU3dpdGNoIHRvIGZpYXQncyBjYWxsaW5nIGNvbnZlbnRpb24sIG9yIGFzayBmaWF0IHRvIGVt
aXQgYQorICAvLyBkaWZmZXJlbnQgb25lLgorICAodm9pZClmaWF0XzI1NTE5X3NlbGVjdHpuejsK
KwogICBiID0gMC1iOwotICB1bnNpZ25lZCBpOwotICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykg
ewotICAgIHVpbnQzMl90IHggPSBmLT52W2ldIF4gZy0+dltpXTsKKyAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IEZFX05VTV9MSU1CUzsgaSsrKSB7CisgICAgZmVfbGltYl90IHggPSBmLT52W2ld
IF4gZy0+dltpXTsKICAgICB4ICY9IGI7CiAgICAgZi0+dltpXSBePSB4OwogICB9CiB9CiAKLSNl
bmRpZiAgLy8gQk9SSU5HU1NMX0NVUlZFMjU1MTlfNjRCSVQKLQogLy8gaCA9IGYKIHN0YXRpYyB2
b2lkIGZlX2NvcHkoZmUgKmgsIGNvbnN0IGZlICpmKSB7CiAgIE9QRU5TU0xfbWVtbW92ZShoLCBm
LCBzaXplb2YoZmUpKTsKQEAgLTE1ODQsNyArNTA4LDcgQEAgc3RhdGljIHZvaWQgZ2VfcDNfdG9i
eXRlcyh1aW50OF90IHNbMzJdLCBjb25zdCBnZV9wMyAqaCkgewogICBzWzMxXSBePSBmZV9pc25l
Z2F0aXZlKCZ4KSA8PCA3OwogfQogCi1pbnQgeDI1NTE5X2dlX2Zyb21ieXRlc192YXJ0aW1lKGdl
X3AzICpoLCBjb25zdCB1aW50OF90ICpzKSB7CitpbnQgeDI1NTE5X2dlX2Zyb21ieXRlc192YXJ0
aW1lKGdlX3AzICpoLCBjb25zdCB1aW50OF90IHNbMzJdKSB7CiAgIGZlIHU7CiAgIGZlX2xvb3Nl
IHY7CiAgIGZlIHYzOwpAQCAtMTgxMywxMCArNzM3LDEyIEBAIHZvaWQgeDI1NTE5X2dlX3NjYWxh
cm11bHRfc21hbGxfcHJlY29tcCgKIAogICB1bnNpZ25lZCBpOwogICBmb3IgKGkgPSAwOyBpIDwg
MTU7IGkrKykgeworICAgIC8vIFRoZSBwcmVjb21wdXRlZCB0YWJsZSBpcyBhc3N1bWVkIHRvIGFs
cmVhZHkgY2xlYXIgdGhlIHRvcCBiaXQsIHNvCisgICAgLy8gfGZlX2Zyb21ieXRlc19zdHJpY3R8
IG1heSBiZSB1c2VkIGRpcmVjdGx5LgogICAgIGNvbnN0IHVpbnQ4X3QgKmJ5dGVzID0gJnByZWNv
bXBfdGFibGVbaSooMiAqIDMyKV07CiAgICAgZmUgeCwgeTsKLSAgICBmZV9mcm9tYnl0ZXMoJngs
IGJ5dGVzKTsKLSAgICBmZV9mcm9tYnl0ZXMoJnksIGJ5dGVzICsgMzIpOworICAgIGZlX2Zyb21i
eXRlc19zdHJpY3QoJngsIGJ5dGVzKTsKKyAgICBmZV9mcm9tYnl0ZXNfc3RyaWN0KCZ5LCBieXRl
cyArIDMyKTsKIAogICAgIGdlX3ByZWNvbXAgKm91dCA9ICZtdWx0aXBsZXNbaV07CiAgICAgZmVf
YWRkKCZvdXQtPnlwbHVzeCwgJnksICZ4KTsKQEAgLTIxMjAsNiArMTA0NiwxMiBAQCBzdGF0aWMg
dm9pZCBnZV9kb3VibGVfc2NhbGFybXVsdF92YXJ0aW1lKGdlX3AyICpyLCBjb25zdCB1aW50OF90
ICphLAogICB9CiB9CiAKKy8vIGludDY0X2xzaGlmdDIxIHJldHVybnMgfGEgPDwgMjF8IGJ1dCBp
cyBkZWZpbmVkIHdoZW4gc2hpZnRpbmcgYml0cyBpbnRvIHRoZQorLy8gc2lnbiBiaXQuIFRoaXMg
d29ya3MgYXJvdW5kIGEgbGFuZ3VhZ2UgZmxhdyBpbiBDLgorc3RhdGljIGlubGluZSBpbnQ2NF90
IGludDY0X2xzaGlmdDIxKGludDY0X3QgYSkgeworICByZXR1cm4gKGludDY0X3QpKCh1aW50NjRf
dClhIDw8IDIxKTsKK30KKwogLy8gVGhlIHNldCBvZiBzY2FsYXJzIGlzIFxaL2wKIC8vIHdoZXJl
IGwgPSAyXjI1MiArIDI3NzQyMzE3Nzc3MzcyMzUzNTM1ODUxOTM3NzkwODgzNjQ4NDkzLgogCkBA
IC0yMjIzLDM4ICsxMTU1LDM4IEBAIHZvaWQgeDI1NTE5X3NjX3JlZHVjZSh1aW50OF90IHNbNjRd
KSB7CiAKICAgY2Fycnk2ID0gKHM2ICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczcgKz0gY2Fycnk2
OwotICBzNiAtPSBjYXJyeTYgPDwgMjE7CisgIHM2IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5Nik7
CiAgIGNhcnJ5OCA9IChzOCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM5ICs9IGNhcnJ5ODsKLSAg
czggLT0gY2Fycnk4IDw8IDIxOworICBzOCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTgpOwogICBj
YXJyeTEwID0gKHMxMCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMSArPSBjYXJyeTEwOwotICBz
MTAgLT0gY2FycnkxMCA8PCAyMTsKKyAgczEwIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTApOwog
ICBjYXJyeTEyID0gKHMxMiArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMyArPSBjYXJyeTEyOwot
ICBzMTIgLT0gY2FycnkxMiA8PCAyMTsKKyAgczEyIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTIp
OwogICBjYXJyeTE0ID0gKHMxNCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxNSArPSBjYXJyeTE0
OwotICBzMTQgLT0gY2FycnkxNCA8PCAyMTsKKyAgczE0IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5
MTQpOwogICBjYXJyeTE2ID0gKHMxNiArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxNyArPSBjYXJy
eTE2OwotICBzMTYgLT0gY2FycnkxNiA8PCAyMTsKKyAgczE2IC09IGludDY0X2xzaGlmdDIxKGNh
cnJ5MTYpOwogCiAgIGNhcnJ5NyA9IChzNyArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM4ICs9IGNh
cnJ5NzsKLSAgczcgLT0gY2Fycnk3IDw8IDIxOworICBzNyAtPSBpbnQ2NF9sc2hpZnQyMShjYXJy
eTcpOwogICBjYXJyeTkgPSAoczkgKyAoMSA8PCAyMCkpID4+IDIxOwogICBzMTAgKz0gY2Fycnk5
OwotICBzOSAtPSBjYXJyeTkgPDwgMjE7CisgIHM5IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5OSk7
CiAgIGNhcnJ5MTEgPSAoczExICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczEyICs9IGNhcnJ5MTE7
Ci0gIHMxMSAtPSBjYXJyeTExIDw8IDIxOworICBzMTEgLT0gaW50NjRfbHNoaWZ0MjEoY2Fycnkx
MSk7CiAgIGNhcnJ5MTMgPSAoczEzICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczE0ICs9IGNhcnJ5
MTM7Ci0gIHMxMyAtPSBjYXJyeTEzIDw8IDIxOworICBzMTMgLT0gaW50NjRfbHNoaWZ0MjEoY2Fy
cnkxMyk7CiAgIGNhcnJ5MTUgPSAoczE1ICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczE2ICs9IGNh
cnJ5MTU7Ci0gIHMxNSAtPSBjYXJyeTE1IDw8IDIxOworICBzMTUgLT0gaW50NjRfbHNoaWZ0MjEo
Y2FycnkxNSk7CiAKICAgczUgKz0gczE3ICogNjY2NjQzOwogICBzNiArPSBzMTcgKiA0NzAyOTY7
CkBAIC0yMzA2LDQxICsxMjM4LDQxIEBAIHZvaWQgeDI1NTE5X3NjX3JlZHVjZSh1aW50OF90IHNb
NjRdKSB7CiAKICAgY2FycnkwID0gKHMwICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczEgKz0gY2Fy
cnkwOwotICBzMCAtPSBjYXJyeTAgPDwgMjE7CisgIHMwIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5
MCk7CiAgIGNhcnJ5MiA9IChzMiArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMzICs9IGNhcnJ5MjsK
LSAgczIgLT0gY2FycnkyIDw8IDIxOworICBzMiAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTIpOwog
ICBjYXJyeTQgPSAoczQgKyAoMSA8PCAyMCkpID4+IDIxOwogICBzNSArPSBjYXJyeTQ7Ci0gIHM0
IC09IGNhcnJ5NCA8PCAyMTsKKyAgczQgLT0gaW50NjRfbHNoaWZ0MjEoY2Fycnk0KTsKICAgY2Fy
cnk2ID0gKHM2ICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczcgKz0gY2Fycnk2OwotICBzNiAtPSBj
YXJyeTYgPDwgMjE7CisgIHM2IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5Nik7CiAgIGNhcnJ5OCA9
IChzOCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM5ICs9IGNhcnJ5ODsKLSAgczggLT0gY2Fycnk4
IDw8IDIxOworICBzOCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTgpOwogICBjYXJyeTEwID0gKHMx
MCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMSArPSBjYXJyeTEwOwotICBzMTAgLT0gY2Fycnkx
MCA8PCAyMTsKKyAgczEwIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTApOwogCiAgIGNhcnJ5MSA9
IChzMSArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMyICs9IGNhcnJ5MTsKLSAgczEgLT0gY2Fycnkx
IDw8IDIxOworICBzMSAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTEpOwogICBjYXJyeTMgPSAoczMg
KyAoMSA8PCAyMCkpID4+IDIxOwogICBzNCArPSBjYXJyeTM7Ci0gIHMzIC09IGNhcnJ5MyA8PCAy
MTsKKyAgczMgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkzKTsKICAgY2Fycnk1ID0gKHM1ICsgKDEg
PDwgMjApKSA+PiAyMTsKICAgczYgKz0gY2Fycnk1OwotICBzNSAtPSBjYXJyeTUgPDwgMjE7Cisg
IHM1IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5NSk7CiAgIGNhcnJ5NyA9IChzNyArICgxIDw8IDIw
KSkgPj4gMjE7CiAgIHM4ICs9IGNhcnJ5NzsKLSAgczcgLT0gY2Fycnk3IDw8IDIxOworICBzNyAt
PSBpbnQ2NF9sc2hpZnQyMShjYXJyeTcpOwogICBjYXJyeTkgPSAoczkgKyAoMSA8PCAyMCkpID4+
IDIxOwogICBzMTAgKz0gY2Fycnk5OwotICBzOSAtPSBjYXJyeTkgPDwgMjE7CisgIHM5IC09IGlu
dDY0X2xzaGlmdDIxKGNhcnJ5OSk7CiAgIGNhcnJ5MTEgPSAoczExICsgKDEgPDwgMjApKSA+PiAy
MTsKICAgczEyICs9IGNhcnJ5MTE7Ci0gIHMxMSAtPSBjYXJyeTExIDw8IDIxOworICBzMTEgLT0g
aW50NjRfbHNoaWZ0MjEoY2FycnkxMSk7CiAKICAgczAgKz0gczEyICogNjY2NjQzOwogICBzMSAr
PSBzMTIgKiA0NzAyOTY7CkBAIC0yMzUyLDQwICsxMjg0LDQwIEBAIHZvaWQgeDI1NTE5X3NjX3Jl
ZHVjZSh1aW50OF90IHNbNjRdKSB7CiAKICAgY2FycnkwID0gczAgPj4gMjE7CiAgIHMxICs9IGNh
cnJ5MDsKLSAgczAgLT0gY2FycnkwIDw8IDIxOworICBzMCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJy
eTApOwogICBjYXJyeTEgPSBzMSA+PiAyMTsKICAgczIgKz0gY2FycnkxOwotICBzMSAtPSBjYXJy
eTEgPDwgMjE7CisgIHMxIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MSk7CiAgIGNhcnJ5MiA9IHMy
ID4+IDIxOwogICBzMyArPSBjYXJyeTI7Ci0gIHMyIC09IGNhcnJ5MiA8PCAyMTsKKyAgczIgLT0g
aW50NjRfbHNoaWZ0MjEoY2FycnkyKTsKICAgY2FycnkzID0gczMgPj4gMjE7CiAgIHM0ICs9IGNh
cnJ5MzsKLSAgczMgLT0gY2FycnkzIDw8IDIxOworICBzMyAtPSBpbnQ2NF9sc2hpZnQyMShjYXJy
eTMpOwogICBjYXJyeTQgPSBzNCA+PiAyMTsKICAgczUgKz0gY2Fycnk0OwotICBzNCAtPSBjYXJy
eTQgPDwgMjE7CisgIHM0IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5NCk7CiAgIGNhcnJ5NSA9IHM1
ID4+IDIxOwogICBzNiArPSBjYXJyeTU7Ci0gIHM1IC09IGNhcnJ5NSA8PCAyMTsKKyAgczUgLT0g
aW50NjRfbHNoaWZ0MjEoY2Fycnk1KTsKICAgY2Fycnk2ID0gczYgPj4gMjE7CiAgIHM3ICs9IGNh
cnJ5NjsKLSAgczYgLT0gY2Fycnk2IDw8IDIxOworICBzNiAtPSBpbnQ2NF9sc2hpZnQyMShjYXJy
eTYpOwogICBjYXJyeTcgPSBzNyA+PiAyMTsKICAgczggKz0gY2Fycnk3OwotICBzNyAtPSBjYXJy
eTcgPDwgMjE7CisgIHM3IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5Nyk7CiAgIGNhcnJ5OCA9IHM4
ID4+IDIxOwogICBzOSArPSBjYXJyeTg7Ci0gIHM4IC09IGNhcnJ5OCA8PCAyMTsKKyAgczggLT0g
aW50NjRfbHNoaWZ0MjEoY2Fycnk4KTsKICAgY2Fycnk5ID0gczkgPj4gMjE7CiAgIHMxMCArPSBj
YXJyeTk7Ci0gIHM5IC09IGNhcnJ5OSA8PCAyMTsKKyAgczkgLT0gaW50NjRfbHNoaWZ0MjEoY2Fy
cnk5KTsKICAgY2FycnkxMCA9IHMxMCA+PiAyMTsKICAgczExICs9IGNhcnJ5MTA7Ci0gIHMxMCAt
PSBjYXJyeTEwIDw8IDIxOworICBzMTAgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkxMCk7CiAgIGNh
cnJ5MTEgPSBzMTEgPj4gMjE7CiAgIHMxMiArPSBjYXJyeTExOwotICBzMTEgLT0gY2FycnkxMSA8
PCAyMTsKKyAgczExIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTEpOwogCiAgIHMwICs9IHMxMiAq
IDY2NjY0MzsKICAgczEgKz0gczEyICogNDcwMjk2OwpAQCAtMjM5NywzNyArMTMyOSwzNyBAQCB2
b2lkIHgyNTUxOV9zY19yZWR1Y2UodWludDhfdCBzWzY0XSkgewogCiAgIGNhcnJ5MCA9IHMwID4+
IDIxOwogICBzMSArPSBjYXJyeTA7Ci0gIHMwIC09IGNhcnJ5MCA8PCAyMTsKKyAgczAgLT0gaW50
NjRfbHNoaWZ0MjEoY2FycnkwKTsKICAgY2FycnkxID0gczEgPj4gMjE7CiAgIHMyICs9IGNhcnJ5
MTsKLSAgczEgLT0gY2FycnkxIDw8IDIxOworICBzMSAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTEp
OwogICBjYXJyeTIgPSBzMiA+PiAyMTsKICAgczMgKz0gY2FycnkyOwotICBzMiAtPSBjYXJyeTIg
PDwgMjE7CisgIHMyIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5Mik7CiAgIGNhcnJ5MyA9IHMzID4+
IDIxOwogICBzNCArPSBjYXJyeTM7Ci0gIHMzIC09IGNhcnJ5MyA8PCAyMTsKKyAgczMgLT0gaW50
NjRfbHNoaWZ0MjEoY2FycnkzKTsKICAgY2Fycnk0ID0gczQgPj4gMjE7CiAgIHM1ICs9IGNhcnJ5
NDsKLSAgczQgLT0gY2Fycnk0IDw8IDIxOworICBzNCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTQp
OwogICBjYXJyeTUgPSBzNSA+PiAyMTsKICAgczYgKz0gY2Fycnk1OwotICBzNSAtPSBjYXJyeTUg
PDwgMjE7CisgIHM1IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5NSk7CiAgIGNhcnJ5NiA9IHM2ID4+
IDIxOwogICBzNyArPSBjYXJyeTY7Ci0gIHM2IC09IGNhcnJ5NiA8PCAyMTsKKyAgczYgLT0gaW50
NjRfbHNoaWZ0MjEoY2Fycnk2KTsKICAgY2Fycnk3ID0gczcgPj4gMjE7CiAgIHM4ICs9IGNhcnJ5
NzsKLSAgczcgLT0gY2Fycnk3IDw8IDIxOworICBzNyAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTcp
OwogICBjYXJyeTggPSBzOCA+PiAyMTsKICAgczkgKz0gY2Fycnk4OwotICBzOCAtPSBjYXJyeTgg
PDwgMjE7CisgIHM4IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5OCk7CiAgIGNhcnJ5OSA9IHM5ID4+
IDIxOwogICBzMTAgKz0gY2Fycnk5OwotICBzOSAtPSBjYXJyeTkgPDwgMjE7CisgIHM5IC09IGlu
dDY0X2xzaGlmdDIxKGNhcnJ5OSk7CiAgIGNhcnJ5MTAgPSBzMTAgPj4gMjE7CiAgIHMxMSArPSBj
YXJyeTEwOwotICBzMTAgLT0gY2FycnkxMCA8PCAyMTsKKyAgczEwIC09IGludDY0X2xzaGlmdDIx
KGNhcnJ5MTApOwogCiAgIHNbMF0gPSBzMCA+PiAwOwogICBzWzFdID0gczAgPj4gODsKQEAgLTI1
OTMsNzQgKzE1MjUsNzQgQEAgc3RhdGljIHZvaWQgc2NfbXVsYWRkKHVpbnQ4X3QgKnMsIGNvbnN0
IHVpbnQ4X3QgKmEsIGNvbnN0IHVpbnQ4X3QgKmIsCiAKICAgY2FycnkwID0gKHMwICsgKDEgPDwg
MjApKSA+PiAyMTsKICAgczEgKz0gY2FycnkwOwotICBzMCAtPSBjYXJyeTAgPDwgMjE7CisgIHMw
IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MCk7CiAgIGNhcnJ5MiA9IChzMiArICgxIDw8IDIwKSkg
Pj4gMjE7CiAgIHMzICs9IGNhcnJ5MjsKLSAgczIgLT0gY2FycnkyIDw8IDIxOworICBzMiAtPSBp
bnQ2NF9sc2hpZnQyMShjYXJyeTIpOwogICBjYXJyeTQgPSAoczQgKyAoMSA8PCAyMCkpID4+IDIx
OwogICBzNSArPSBjYXJyeTQ7Ci0gIHM0IC09IGNhcnJ5NCA8PCAyMTsKKyAgczQgLT0gaW50NjRf
bHNoaWZ0MjEoY2Fycnk0KTsKICAgY2Fycnk2ID0gKHM2ICsgKDEgPDwgMjApKSA+PiAyMTsKICAg
czcgKz0gY2Fycnk2OwotICBzNiAtPSBjYXJyeTYgPDwgMjE7CisgIHM2IC09IGludDY0X2xzaGlm
dDIxKGNhcnJ5Nik7CiAgIGNhcnJ5OCA9IChzOCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM5ICs9
IGNhcnJ5ODsKLSAgczggLT0gY2Fycnk4IDw8IDIxOworICBzOCAtPSBpbnQ2NF9sc2hpZnQyMShj
YXJyeTgpOwogICBjYXJyeTEwID0gKHMxMCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMSArPSBj
YXJyeTEwOwotICBzMTAgLT0gY2FycnkxMCA8PCAyMTsKKyAgczEwIC09IGludDY0X2xzaGlmdDIx
KGNhcnJ5MTApOwogICBjYXJyeTEyID0gKHMxMiArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMyAr
PSBjYXJyeTEyOwotICBzMTIgLT0gY2FycnkxMiA8PCAyMTsKKyAgczEyIC09IGludDY0X2xzaGlm
dDIxKGNhcnJ5MTIpOwogICBjYXJyeTE0ID0gKHMxNCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMx
NSArPSBjYXJyeTE0OwotICBzMTQgLT0gY2FycnkxNCA8PCAyMTsKKyAgczE0IC09IGludDY0X2xz
aGlmdDIxKGNhcnJ5MTQpOwogICBjYXJyeTE2ID0gKHMxNiArICgxIDw8IDIwKSkgPj4gMjE7CiAg
IHMxNyArPSBjYXJyeTE2OwotICBzMTYgLT0gY2FycnkxNiA8PCAyMTsKKyAgczE2IC09IGludDY0
X2xzaGlmdDIxKGNhcnJ5MTYpOwogICBjYXJyeTE4ID0gKHMxOCArICgxIDw8IDIwKSkgPj4gMjE7
CiAgIHMxOSArPSBjYXJyeTE4OwotICBzMTggLT0gY2FycnkxOCA8PCAyMTsKKyAgczE4IC09IGlu
dDY0X2xzaGlmdDIxKGNhcnJ5MTgpOwogICBjYXJyeTIwID0gKHMyMCArICgxIDw8IDIwKSkgPj4g
MjE7CiAgIHMyMSArPSBjYXJyeTIwOwotICBzMjAgLT0gY2FycnkyMCA8PCAyMTsKKyAgczIwIC09
IGludDY0X2xzaGlmdDIxKGNhcnJ5MjApOwogICBjYXJyeTIyID0gKHMyMiArICgxIDw8IDIwKSkg
Pj4gMjE7CiAgIHMyMyArPSBjYXJyeTIyOwotICBzMjIgLT0gY2FycnkyMiA8PCAyMTsKKyAgczIy
IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MjIpOwogCiAgIGNhcnJ5MSA9IChzMSArICgxIDw8IDIw
KSkgPj4gMjE7CiAgIHMyICs9IGNhcnJ5MTsKLSAgczEgLT0gY2FycnkxIDw8IDIxOworICBzMSAt
PSBpbnQ2NF9sc2hpZnQyMShjYXJyeTEpOwogICBjYXJyeTMgPSAoczMgKyAoMSA8PCAyMCkpID4+
IDIxOwogICBzNCArPSBjYXJyeTM7Ci0gIHMzIC09IGNhcnJ5MyA8PCAyMTsKKyAgczMgLT0gaW50
NjRfbHNoaWZ0MjEoY2FycnkzKTsKICAgY2Fycnk1ID0gKHM1ICsgKDEgPDwgMjApKSA+PiAyMTsK
ICAgczYgKz0gY2Fycnk1OwotICBzNSAtPSBjYXJyeTUgPDwgMjE7CisgIHM1IC09IGludDY0X2xz
aGlmdDIxKGNhcnJ5NSk7CiAgIGNhcnJ5NyA9IChzNyArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM4
ICs9IGNhcnJ5NzsKLSAgczcgLT0gY2Fycnk3IDw8IDIxOworICBzNyAtPSBpbnQ2NF9sc2hpZnQy
MShjYXJyeTcpOwogICBjYXJyeTkgPSAoczkgKyAoMSA8PCAyMCkpID4+IDIxOwogICBzMTAgKz0g
Y2Fycnk5OwotICBzOSAtPSBjYXJyeTkgPDwgMjE7CisgIHM5IC09IGludDY0X2xzaGlmdDIxKGNh
cnJ5OSk7CiAgIGNhcnJ5MTEgPSAoczExICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczEyICs9IGNh
cnJ5MTE7Ci0gIHMxMSAtPSBjYXJyeTExIDw8IDIxOworICBzMTEgLT0gaW50NjRfbHNoaWZ0MjEo
Y2FycnkxMSk7CiAgIGNhcnJ5MTMgPSAoczEzICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczE0ICs9
IGNhcnJ5MTM7Ci0gIHMxMyAtPSBjYXJyeTEzIDw8IDIxOworICBzMTMgLT0gaW50NjRfbHNoaWZ0
MjEoY2FycnkxMyk7CiAgIGNhcnJ5MTUgPSAoczE1ICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczE2
ICs9IGNhcnJ5MTU7Ci0gIHMxNSAtPSBjYXJyeTE1IDw8IDIxOworICBzMTUgLT0gaW50NjRfbHNo
aWZ0MjEoY2FycnkxNSk7CiAgIGNhcnJ5MTcgPSAoczE3ICsgKDEgPDwgMjApKSA+PiAyMTsKICAg
czE4ICs9IGNhcnJ5MTc7Ci0gIHMxNyAtPSBjYXJyeTE3IDw8IDIxOworICBzMTcgLT0gaW50NjRf
bHNoaWZ0MjEoY2FycnkxNyk7CiAgIGNhcnJ5MTkgPSAoczE5ICsgKDEgPDwgMjApKSA+PiAyMTsK
ICAgczIwICs9IGNhcnJ5MTk7Ci0gIHMxOSAtPSBjYXJyeTE5IDw8IDIxOworICBzMTkgLT0gaW50
NjRfbHNoaWZ0MjEoY2FycnkxOSk7CiAgIGNhcnJ5MjEgPSAoczIxICsgKDEgPDwgMjApKSA+PiAy
MTsKICAgczIyICs9IGNhcnJ5MjE7Ci0gIHMyMSAtPSBjYXJyeTIxIDw8IDIxOworICBzMjEgLT0g
aW50NjRfbHNoaWZ0MjEoY2FycnkyMSk7CiAKICAgczExICs9IHMyMyAqIDY2NjY0MzsKICAgczEy
ICs9IHMyMyAqIDQ3MDI5NjsKQEAgLTI3MTIsMzggKzE2NDQsMzggQEAgc3RhdGljIHZvaWQgc2Nf
bXVsYWRkKHVpbnQ4X3QgKnMsIGNvbnN0IHVpbnQ4X3QgKmEsIGNvbnN0IHVpbnQ4X3QgKmIsCiAK
ICAgY2Fycnk2ID0gKHM2ICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczcgKz0gY2Fycnk2OwotICBz
NiAtPSBjYXJyeTYgPDwgMjE7CisgIHM2IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5Nik7CiAgIGNh
cnJ5OCA9IChzOCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM5ICs9IGNhcnJ5ODsKLSAgczggLT0g
Y2Fycnk4IDw8IDIxOworICBzOCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTgpOwogICBjYXJyeTEw
ID0gKHMxMCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMSArPSBjYXJyeTEwOwotICBzMTAgLT0g
Y2FycnkxMCA8PCAyMTsKKyAgczEwIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTApOwogICBjYXJy
eTEyID0gKHMxMiArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMyArPSBjYXJyeTEyOwotICBzMTIg
LT0gY2FycnkxMiA8PCAyMTsKKyAgczEyIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTIpOwogICBj
YXJyeTE0ID0gKHMxNCArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxNSArPSBjYXJyeTE0OwotICBz
MTQgLT0gY2FycnkxNCA8PCAyMTsKKyAgczE0IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTQpOwog
ICBjYXJyeTE2ID0gKHMxNiArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxNyArPSBjYXJyeTE2Owot
ICBzMTYgLT0gY2FycnkxNiA8PCAyMTsKKyAgczE2IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTYp
OwogCiAgIGNhcnJ5NyA9IChzNyArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM4ICs9IGNhcnJ5NzsK
LSAgczcgLT0gY2Fycnk3IDw8IDIxOworICBzNyAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTcpOwog
ICBjYXJyeTkgPSAoczkgKyAoMSA8PCAyMCkpID4+IDIxOwogICBzMTAgKz0gY2Fycnk5OwotICBz
OSAtPSBjYXJyeTkgPDwgMjE7CisgIHM5IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5OSk7CiAgIGNh
cnJ5MTEgPSAoczExICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczEyICs9IGNhcnJ5MTE7Ci0gIHMx
MSAtPSBjYXJyeTExIDw8IDIxOworICBzMTEgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkxMSk7CiAg
IGNhcnJ5MTMgPSAoczEzICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczE0ICs9IGNhcnJ5MTM7Ci0g
IHMxMyAtPSBjYXJyeTEzIDw8IDIxOworICBzMTMgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkxMyk7
CiAgIGNhcnJ5MTUgPSAoczE1ICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczE2ICs9IGNhcnJ5MTU7
Ci0gIHMxNSAtPSBjYXJyeTE1IDw8IDIxOworICBzMTUgLT0gaW50NjRfbHNoaWZ0MjEoY2Fycnkx
NSk7CiAKICAgczUgKz0gczE3ICogNjY2NjQzOwogICBzNiArPSBzMTcgKiA0NzAyOTY7CkBAIC0y
Nzk1LDQxICsxNzI3LDQxIEBAIHN0YXRpYyB2b2lkIHNjX211bGFkZCh1aW50OF90ICpzLCBjb25z
dCB1aW50OF90ICphLCBjb25zdCB1aW50OF90ICpiLAogCiAgIGNhcnJ5MCA9IChzMCArICgxIDw8
IDIwKSkgPj4gMjE7CiAgIHMxICs9IGNhcnJ5MDsKLSAgczAgLT0gY2FycnkwIDw8IDIxOworICBz
MCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTApOwogICBjYXJyeTIgPSAoczIgKyAoMSA8PCAyMCkp
ID4+IDIxOwogICBzMyArPSBjYXJyeTI7Ci0gIHMyIC09IGNhcnJ5MiA8PCAyMTsKKyAgczIgLT0g
aW50NjRfbHNoaWZ0MjEoY2FycnkyKTsKICAgY2Fycnk0ID0gKHM0ICsgKDEgPDwgMjApKSA+PiAy
MTsKICAgczUgKz0gY2Fycnk0OwotICBzNCAtPSBjYXJyeTQgPDwgMjE7CisgIHM0IC09IGludDY0
X2xzaGlmdDIxKGNhcnJ5NCk7CiAgIGNhcnJ5NiA9IChzNiArICgxIDw8IDIwKSkgPj4gMjE7CiAg
IHM3ICs9IGNhcnJ5NjsKLSAgczYgLT0gY2Fycnk2IDw8IDIxOworICBzNiAtPSBpbnQ2NF9sc2hp
ZnQyMShjYXJyeTYpOwogICBjYXJyeTggPSAoczggKyAoMSA8PCAyMCkpID4+IDIxOwogICBzOSAr
PSBjYXJyeTg7Ci0gIHM4IC09IGNhcnJ5OCA8PCAyMTsKKyAgczggLT0gaW50NjRfbHNoaWZ0MjEo
Y2Fycnk4KTsKICAgY2FycnkxMCA9IChzMTAgKyAoMSA8PCAyMCkpID4+IDIxOwogICBzMTEgKz0g
Y2FycnkxMDsKLSAgczEwIC09IGNhcnJ5MTAgPDwgMjE7CisgIHMxMCAtPSBpbnQ2NF9sc2hpZnQy
MShjYXJyeTEwKTsKIAogICBjYXJyeTEgPSAoczEgKyAoMSA8PCAyMCkpID4+IDIxOwogICBzMiAr
PSBjYXJyeTE7Ci0gIHMxIC09IGNhcnJ5MSA8PCAyMTsKKyAgczEgLT0gaW50NjRfbHNoaWZ0MjEo
Y2FycnkxKTsKICAgY2FycnkzID0gKHMzICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczQgKz0gY2Fy
cnkzOwotICBzMyAtPSBjYXJyeTMgPDwgMjE7CisgIHMzIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5
Myk7CiAgIGNhcnJ5NSA9IChzNSArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHM2ICs9IGNhcnJ5NTsK
LSAgczUgLT0gY2Fycnk1IDw8IDIxOworICBzNSAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTUpOwog
ICBjYXJyeTcgPSAoczcgKyAoMSA8PCAyMCkpID4+IDIxOwogICBzOCArPSBjYXJyeTc7Ci0gIHM3
IC09IGNhcnJ5NyA8PCAyMTsKKyAgczcgLT0gaW50NjRfbHNoaWZ0MjEoY2Fycnk3KTsKICAgY2Fy
cnk5ID0gKHM5ICsgKDEgPDwgMjApKSA+PiAyMTsKICAgczEwICs9IGNhcnJ5OTsKLSAgczkgLT0g
Y2Fycnk5IDw8IDIxOworICBzOSAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTkpOwogICBjYXJyeTEx
ID0gKHMxMSArICgxIDw8IDIwKSkgPj4gMjE7CiAgIHMxMiArPSBjYXJyeTExOwotICBzMTEgLT0g
Y2FycnkxMSA8PCAyMTsKKyAgczExIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTEpOwogCiAgIHMw
ICs9IHMxMiAqIDY2NjY0MzsKICAgczEgKz0gczEyICogNDcwMjk2OwpAQCAtMjg0MSw0MCArMTc3
Myw0MCBAQCBzdGF0aWMgdm9pZCBzY19tdWxhZGQodWludDhfdCAqcywgY29uc3QgdWludDhfdCAq
YSwgY29uc3QgdWludDhfdCAqYiwKIAogICBjYXJyeTAgPSBzMCA+PiAyMTsKICAgczEgKz0gY2Fy
cnkwOwotICBzMCAtPSBjYXJyeTAgPDwgMjE7CisgIHMwIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5
MCk7CiAgIGNhcnJ5MSA9IHMxID4+IDIxOwogICBzMiArPSBjYXJyeTE7Ci0gIHMxIC09IGNhcnJ5
MSA8PCAyMTsKKyAgczEgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkxKTsKICAgY2FycnkyID0gczIg
Pj4gMjE7CiAgIHMzICs9IGNhcnJ5MjsKLSAgczIgLT0gY2FycnkyIDw8IDIxOworICBzMiAtPSBp
bnQ2NF9sc2hpZnQyMShjYXJyeTIpOwogICBjYXJyeTMgPSBzMyA+PiAyMTsKICAgczQgKz0gY2Fy
cnkzOwotICBzMyAtPSBjYXJyeTMgPDwgMjE7CisgIHMzIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5
Myk7CiAgIGNhcnJ5NCA9IHM0ID4+IDIxOwogICBzNSArPSBjYXJyeTQ7Ci0gIHM0IC09IGNhcnJ5
NCA8PCAyMTsKKyAgczQgLT0gaW50NjRfbHNoaWZ0MjEoY2Fycnk0KTsKICAgY2Fycnk1ID0gczUg
Pj4gMjE7CiAgIHM2ICs9IGNhcnJ5NTsKLSAgczUgLT0gY2Fycnk1IDw8IDIxOworICBzNSAtPSBp
bnQ2NF9sc2hpZnQyMShjYXJyeTUpOwogICBjYXJyeTYgPSBzNiA+PiAyMTsKICAgczcgKz0gY2Fy
cnk2OwotICBzNiAtPSBjYXJyeTYgPDwgMjE7CisgIHM2IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5
Nik7CiAgIGNhcnJ5NyA9IHM3ID4+IDIxOwogICBzOCArPSBjYXJyeTc7Ci0gIHM3IC09IGNhcnJ5
NyA8PCAyMTsKKyAgczcgLT0gaW50NjRfbHNoaWZ0MjEoY2Fycnk3KTsKICAgY2Fycnk4ID0gczgg
Pj4gMjE7CiAgIHM5ICs9IGNhcnJ5ODsKLSAgczggLT0gY2Fycnk4IDw8IDIxOworICBzOCAtPSBp
bnQ2NF9sc2hpZnQyMShjYXJyeTgpOwogICBjYXJyeTkgPSBzOSA+PiAyMTsKICAgczEwICs9IGNh
cnJ5OTsKLSAgczkgLT0gY2Fycnk5IDw8IDIxOworICBzOSAtPSBpbnQ2NF9sc2hpZnQyMShjYXJy
eTkpOwogICBjYXJyeTEwID0gczEwID4+IDIxOwogICBzMTEgKz0gY2FycnkxMDsKLSAgczEwIC09
IGNhcnJ5MTAgPDwgMjE7CisgIHMxMCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTEwKTsKICAgY2Fy
cnkxMSA9IHMxMSA+PiAyMTsKICAgczEyICs9IGNhcnJ5MTE7Ci0gIHMxMSAtPSBjYXJyeTExIDw8
IDIxOworICBzMTEgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkxMSk7CiAKICAgczAgKz0gczEyICog
NjY2NjQzOwogICBzMSArPSBzMTIgKiA0NzAyOTY7CkBAIC0yODg2LDM3ICsxODE4LDM3IEBAIHN0
YXRpYyB2b2lkIHNjX211bGFkZCh1aW50OF90ICpzLCBjb25zdCB1aW50OF90ICphLCBjb25zdCB1
aW50OF90ICpiLAogCiAgIGNhcnJ5MCA9IHMwID4+IDIxOwogICBzMSArPSBjYXJyeTA7Ci0gIHMw
IC09IGNhcnJ5MCA8PCAyMTsKKyAgczAgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkwKTsKICAgY2Fy
cnkxID0gczEgPj4gMjE7CiAgIHMyICs9IGNhcnJ5MTsKLSAgczEgLT0gY2FycnkxIDw8IDIxOwor
ICBzMSAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTEpOwogICBjYXJyeTIgPSBzMiA+PiAyMTsKICAg
czMgKz0gY2FycnkyOwotICBzMiAtPSBjYXJyeTIgPDwgMjE7CisgIHMyIC09IGludDY0X2xzaGlm
dDIxKGNhcnJ5Mik7CiAgIGNhcnJ5MyA9IHMzID4+IDIxOwogICBzNCArPSBjYXJyeTM7Ci0gIHMz
IC09IGNhcnJ5MyA8PCAyMTsKKyAgczMgLT0gaW50NjRfbHNoaWZ0MjEoY2FycnkzKTsKICAgY2Fy
cnk0ID0gczQgPj4gMjE7CiAgIHM1ICs9IGNhcnJ5NDsKLSAgczQgLT0gY2Fycnk0IDw8IDIxOwor
ICBzNCAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTQpOwogICBjYXJyeTUgPSBzNSA+PiAyMTsKICAg
czYgKz0gY2Fycnk1OwotICBzNSAtPSBjYXJyeTUgPDwgMjE7CisgIHM1IC09IGludDY0X2xzaGlm
dDIxKGNhcnJ5NSk7CiAgIGNhcnJ5NiA9IHM2ID4+IDIxOwogICBzNyArPSBjYXJyeTY7Ci0gIHM2
IC09IGNhcnJ5NiA8PCAyMTsKKyAgczYgLT0gaW50NjRfbHNoaWZ0MjEoY2Fycnk2KTsKICAgY2Fy
cnk3ID0gczcgPj4gMjE7CiAgIHM4ICs9IGNhcnJ5NzsKLSAgczcgLT0gY2Fycnk3IDw8IDIxOwor
ICBzNyAtPSBpbnQ2NF9sc2hpZnQyMShjYXJyeTcpOwogICBjYXJyeTggPSBzOCA+PiAyMTsKICAg
czkgKz0gY2Fycnk4OwotICBzOCAtPSBjYXJyeTggPDwgMjE7CisgIHM4IC09IGludDY0X2xzaGlm
dDIxKGNhcnJ5OCk7CiAgIGNhcnJ5OSA9IHM5ID4+IDIxOwogICBzMTAgKz0gY2Fycnk5OwotICBz
OSAtPSBjYXJyeTkgPDwgMjE7CisgIHM5IC09IGludDY0X2xzaGlmdDIxKGNhcnJ5OSk7CiAgIGNh
cnJ5MTAgPSBzMTAgPj4gMjE7CiAgIHMxMSArPSBjYXJyeTEwOwotICBzMTAgLT0gY2FycnkxMCA8
PCAyMTsKKyAgczEwIC09IGludDY0X2xzaGlmdDIxKGNhcnJ5MTApOwogCiAgIHNbMF0gPSBzMCA+
PiAwOwogICBzWzFdID0gczAgPj4gODsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9maWF0
L2N1cnZlMjU1MTlfMzIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9maWF0L2N1cnZlMjU1MTlfMzIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41Mzc3MjQyMWRjNGQ5NmQ1YzdlMDkwM2NmZTkzODE4MzNiNmEyZWU4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2ZpYXQvY3VydmUyNTUxOV8zMi5oCkBAIC0w
LDAgKzEsOTExIEBACisvKiBBdXRvZ2VuZXJhdGVkICovCisvKiBjdXJ2ZSBkZXNjcmlwdGlvbjog
MjU1MTkgKi8KKy8qIHJlcXVlc3RlZCBvcGVyYXRpb25zOiBjYXJyeV9tdWwsIGNhcnJ5X3NxdWFy
ZSwgY2Fycnlfc2NtdWwxMjE2NjYsIGNhcnJ5LCBhZGQsIHN1Yiwgb3BwLCBzZWxlY3R6bnosIHRv
X2J5dGVzLCBmcm9tX2J5dGVzICovCisvKiBuID0gMTAgKGZyb20gIjEwIikgKi8KKy8qIHMgPSAw
eDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAgKGZyb20gIjJeMjU1IikgKi8KKy8qIGMgPSBbKDEsIDE5KV0gKGZyb20gIjEsMTki
KSAqLworLyogbWFjaGluZV93b3Jkc2l6ZSA9IDMyIChmcm9tICIzMiIpICovCisKKyNpbmNsdWRl
IDxzdGRpbnQuaD4KK3R5cGVkZWYgdW5zaWduZWQgY2hhciBmaWF0XzI1NTE5X3VpbnQxOwordHlw
ZWRlZiBzaWduZWQgY2hhciBmaWF0XzI1NTE5X2ludDE7CisKKworLyoKKyAqIElucHV0IEJvdW5k
czoKKyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFsweDAgfj4gMHgzZmZmZmZm
XQorICogICBhcmczOiBbMHgwIH4+IDB4M2ZmZmZmZl0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAg
IG91dDE6IFsweDAgfj4gMHgzZmZmZmZmXQorICogICBvdXQyOiBbMHgwIH4+IDB4MV0KKyAqLwor
c3RhdGljIHZvaWQgZmlhdF8yNTUxOV9hZGRjYXJyeXhfdTI2KHVpbnQzMl90KiBvdXQxLCBmaWF0
XzI1NTE5X3VpbnQxKiBvdXQyLCBmaWF0XzI1NTE5X3VpbnQxIGFyZzEsIHVpbnQzMl90IGFyZzIs
IHVpbnQzMl90IGFyZzMpIHsKKyAgdWludDMyX3QgeDEgPSAoKGFyZzEgKyBhcmcyKSArIGFyZzMp
OworICB1aW50MzJfdCB4MiA9ICh4MSAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICBmaWF0XzI1
NTE5X3VpbnQxIHgzID0gKGZpYXRfMjU1MTlfdWludDEpKHgxID4+IDI2KTsKKyAgKm91dDEgPSB4
MjsKKyAgKm91dDIgPSB4MzsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTog
WzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFsweDAgfj4gMHgzZmZmZmZmXQorICogICBhcmczOiBb
MHgwIH4+IDB4M2ZmZmZmZl0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFsweDAgfj4g
MHgzZmZmZmZmXQorICogICBvdXQyOiBbMHgwIH4+IDB4MV0KKyAqLworc3RhdGljIHZvaWQgZmlh
dF8yNTUxOV9zdWJib3Jyb3d4X3UyNih1aW50MzJfdCogb3V0MSwgZmlhdF8yNTUxOV91aW50MSog
b3V0MiwgZmlhdF8yNTUxOV91aW50MSBhcmcxLCB1aW50MzJfdCBhcmcyLCB1aW50MzJfdCBhcmcz
KSB7CisgIGludDMyX3QgeDEgPSAoKGludDMyX3QpKGFyZzIgLSBhcmcxKSAtIChpbnQzMl90KWFy
ZzMpOworICBmaWF0XzI1NTE5X2ludDEgeDIgPSAoZmlhdF8yNTUxOV9pbnQxKSh4MSA+PiAyNik7
CisgIHVpbnQzMl90IHgzID0gKHgxICYgVUlOVDMyX0MoMHgzZmZmZmZmKSk7CisgICpvdXQxID0g
eDM7CisgICpvdXQyID0gKGZpYXRfMjU1MTlfdWludDEpKDB4MCAtIHgyKTsKK30KKworLyoKKyAq
IElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFsweDAg
fj4gMHgxZmZmZmZmXQorICogICBhcmczOiBbMHgwIH4+IDB4MWZmZmZmZl0KKyAqIE91dHB1dCBC
b3VuZHM6CisgKiAgIG91dDE6IFsweDAgfj4gMHgxZmZmZmZmXQorICogICBvdXQyOiBbMHgwIH4+
IDB4MV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF8yNTUxOV9hZGRjYXJyeXhfdTI1KHVpbnQzMl90
KiBvdXQxLCBmaWF0XzI1NTE5X3VpbnQxKiBvdXQyLCBmaWF0XzI1NTE5X3VpbnQxIGFyZzEsIHVp
bnQzMl90IGFyZzIsIHVpbnQzMl90IGFyZzMpIHsKKyAgdWludDMyX3QgeDEgPSAoKGFyZzEgKyBh
cmcyKSArIGFyZzMpOworICB1aW50MzJfdCB4MiA9ICh4MSAmIFVJTlQzMl9DKDB4MWZmZmZmZikp
OworICBmaWF0XzI1NTE5X3VpbnQxIHgzID0gKGZpYXRfMjU1MTlfdWludDEpKHgxID4+IDI1KTsK
KyAgKm91dDEgPSB4MjsKKyAgKm91dDIgPSB4MzsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoK
KyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFsweDAgfj4gMHgxZmZmZmZmXQor
ICogICBhcmczOiBbMHgwIH4+IDB4MWZmZmZmZl0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91
dDE6IFsweDAgfj4gMHgxZmZmZmZmXQorICogICBvdXQyOiBbMHgwIH4+IDB4MV0KKyAqLworc3Rh
dGljIHZvaWQgZmlhdF8yNTUxOV9zdWJib3Jyb3d4X3UyNSh1aW50MzJfdCogb3V0MSwgZmlhdF8y
NTUxOV91aW50MSogb3V0MiwgZmlhdF8yNTUxOV91aW50MSBhcmcxLCB1aW50MzJfdCBhcmcyLCB1
aW50MzJfdCBhcmczKSB7CisgIGludDMyX3QgeDEgPSAoKGludDMyX3QpKGFyZzIgLSBhcmcxKSAt
IChpbnQzMl90KWFyZzMpOworICBmaWF0XzI1NTE5X2ludDEgeDIgPSAoZmlhdF8yNTUxOV9pbnQx
KSh4MSA+PiAyNSk7CisgIHVpbnQzMl90IHgzID0gKHgxICYgVUlOVDMyX0MoMHgxZmZmZmZmKSk7
CisgICpvdXQxID0geDM7CisgICpvdXQyID0gKGZpYXRfMjU1MTlfdWludDEpKDB4MCAtIHgyKTsK
K30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAg
IGFyZzI6IFsweDAgfj4gMHhmZmZmZmZmZl0KKyAqICAgYXJnMzogWzB4MCB+PiAweGZmZmZmZmZm
XQorICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogWzB4MCB+PiAweGZmZmZmZmZmXQorICov
CitzdGF0aWMgdm9pZCBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTMyKHVpbnQzMl90KiBvdXQxLCBmaWF0
XzI1NTE5X3VpbnQxIGFyZzEsIHVpbnQzMl90IGFyZzIsIHVpbnQzMl90IGFyZzMpIHsKKyAgZmlh
dF8yNTUxOV91aW50MSB4MSA9ICghKCFhcmcxKSk7CisgIHVpbnQzMl90IHgyID0gKChmaWF0XzI1
NTE5X2ludDEpKDB4MCAtIHgxKSAmIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgLy8gTm90ZSB0
aGlzIGxpbmUgaGFzIGJlZW4gcGF0Y2hlZCBmcm9tIHRoZSBzeW50aGVzaXplZCBjb2RlIHRvIGFk
ZCB2YWx1ZQorICAvLyBiYXJyaWVycy4KKyAgLy8KKyAgLy8gQ2xhbmcgcmVjb2duaXplcyB0aGlz
IHBhdHRlcm4gYXMgYSBzZWxlY3QuIFdoaWxlIGl0IHVzdWFsbHkgdHJhbnNmb3JtcyBpdAorICAv
LyB0byBhIGNtb3YsIGl0IHNvbWV0aW1lcyBmdXJ0aGVyIHRyYW5zZm9ybXMgaXQgaW50byBhIGJy
YW5jaCwgd2hpY2ggd2UgZG8KKyAgLy8gbm90IHdhbnQuCisgIHVpbnQzMl90IHgzID0gKCh2YWx1
ZV9iYXJyaWVyX3UzMih4MikgJiBhcmczKSB8ICh2YWx1ZV9iYXJyaWVyX3UzMih+eDIpICYgYXJn
MikpOworICAqb3V0MSA9IHgzOworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcx
OiBbWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMz
MzMyXSwgWzB4MCB+PiAweDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2
OTk5OTk5XSwgWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4g
MHhkMzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5OTldXQorICogICBhcmcyOiBbWzB4MCB+PiAweGQz
MzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAw
eDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5OTk5XSwgWzB4MCB+
PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4
MCB+PiAweDY5OTk5OTldXQorICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAgfj4g
MHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAg
fj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10sIFsw
eDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0s
IFsweDAgfj4gMHgyMzMzMzMzXV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF8yNTUxOV9jYXJyeV9t
dWwodWludDMyX3Qgb3V0MVsxMF0sIGNvbnN0IHVpbnQzMl90IGFyZzFbMTBdLCBjb25zdCB1aW50
MzJfdCBhcmcyWzEwXSkgeworICB1aW50NjRfdCB4MSA9ICgodWludDY0X3QpKGFyZzFbOV0pICog
KChhcmcyWzldKSAqICgodWludDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0
X3QgeDIgPSAoKHVpbnQ2NF90KShhcmcxWzldKSAqICgoYXJnMls4XSkgKiAodWludDMyX3QpVUlO
VDhfQygweDEzKSkpOworICB1aW50NjRfdCB4MyA9ICgodWludDY0X3QpKGFyZzFbOV0pICogKChh
cmcyWzddKSAqICgodWludDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0X3Qg
eDQgPSAoKHVpbnQ2NF90KShhcmcxWzldKSAqICgoYXJnMls2XSkgKiAodWludDMyX3QpVUlOVDhf
QygweDEzKSkpOworICB1aW50NjRfdCB4NSA9ICgodWludDY0X3QpKGFyZzFbOV0pICogKChhcmcy
WzVdKSAqICgodWludDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0X3QgeDYg
PSAoKHVpbnQ2NF90KShhcmcxWzldKSAqICgoYXJnMls0XSkgKiAodWludDMyX3QpVUlOVDhfQygw
eDEzKSkpOworICB1aW50NjRfdCB4NyA9ICgodWludDY0X3QpKGFyZzFbOV0pICogKChhcmcyWzNd
KSAqICgodWludDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0X3QgeDggPSAo
KHVpbnQ2NF90KShhcmcxWzldKSAqICgoYXJnMlsyXSkgKiAodWludDMyX3QpVUlOVDhfQygweDEz
KSkpOworICB1aW50NjRfdCB4OSA9ICgodWludDY0X3QpKGFyZzFbOV0pICogKChhcmcyWzFdKSAq
ICgodWludDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0X3QgeDEwID0gKCh1
aW50NjRfdCkoYXJnMVs4XSkgKiAoKGFyZzJbOV0pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykp
KTsKKyAgdWludDY0X3QgeDExID0gKCh1aW50NjRfdCkoYXJnMVs4XSkgKiAoKGFyZzJbOF0pICog
KHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsKKyAgdWludDY0X3QgeDEyID0gKCh1aW50NjRfdCko
YXJnMVs4XSkgKiAoKGFyZzJbN10pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsKKyAgdWlu
dDY0X3QgeDEzID0gKCh1aW50NjRfdCkoYXJnMVs4XSkgKiAoKGFyZzJbNl0pICogKHVpbnQzMl90
KVVJTlQ4X0MoMHgxMykpKTsKKyAgdWludDY0X3QgeDE0ID0gKCh1aW50NjRfdCkoYXJnMVs4XSkg
KiAoKGFyZzJbNV0pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsKKyAgdWludDY0X3QgeDE1
ID0gKCh1aW50NjRfdCkoYXJnMVs4XSkgKiAoKGFyZzJbNF0pICogKHVpbnQzMl90KVVJTlQ4X0Mo
MHgxMykpKTsKKyAgdWludDY0X3QgeDE2ID0gKCh1aW50NjRfdCkoYXJnMVs4XSkgKiAoKGFyZzJb
M10pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsKKyAgdWludDY0X3QgeDE3ID0gKCh1aW50
NjRfdCkoYXJnMVs4XSkgKiAoKGFyZzJbMl0pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsK
KyAgdWludDY0X3QgeDE4ID0gKCh1aW50NjRfdCkoYXJnMVs3XSkgKiAoKGFyZzJbOV0pICogKCh1
aW50MzJfdCkweDIgKiBVSU5UOF9DKDB4MTMpKSkpOworICB1aW50NjRfdCB4MTkgPSAoKHVpbnQ2
NF90KShhcmcxWzddKSAqICgoYXJnMls4XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSkpOwor
ICB1aW50NjRfdCB4MjAgPSAoKHVpbnQ2NF90KShhcmcxWzddKSAqICgoYXJnMls3XSkgKiAoKHVp
bnQzMl90KTB4MiAqIFVJTlQ4X0MoMHgxMykpKSk7CisgIHVpbnQ2NF90IHgyMSA9ICgodWludDY0
X3QpKGFyZzFbN10pICogKChhcmcyWzZdKSAqICh1aW50MzJfdClVSU5UOF9DKDB4MTMpKSk7Cisg
IHVpbnQ2NF90IHgyMiA9ICgodWludDY0X3QpKGFyZzFbN10pICogKChhcmcyWzVdKSAqICgodWlu
dDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0X3QgeDIzID0gKCh1aW50NjRf
dCkoYXJnMVs3XSkgKiAoKGFyZzJbNF0pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsKKyAg
dWludDY0X3QgeDI0ID0gKCh1aW50NjRfdCkoYXJnMVs3XSkgKiAoKGFyZzJbM10pICogKCh1aW50
MzJfdCkweDIgKiBVSU5UOF9DKDB4MTMpKSkpOworICB1aW50NjRfdCB4MjUgPSAoKHVpbnQ2NF90
KShhcmcxWzZdKSAqICgoYXJnMls5XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSkpOworICB1
aW50NjRfdCB4MjYgPSAoKHVpbnQ2NF90KShhcmcxWzZdKSAqICgoYXJnMls4XSkgKiAodWludDMy
X3QpVUlOVDhfQygweDEzKSkpOworICB1aW50NjRfdCB4MjcgPSAoKHVpbnQ2NF90KShhcmcxWzZd
KSAqICgoYXJnMls3XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSkpOworICB1aW50NjRfdCB4
MjggPSAoKHVpbnQ2NF90KShhcmcxWzZdKSAqICgoYXJnMls2XSkgKiAodWludDMyX3QpVUlOVDhf
QygweDEzKSkpOworICB1aW50NjRfdCB4MjkgPSAoKHVpbnQ2NF90KShhcmcxWzZdKSAqICgoYXJn
Mls1XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSkpOworICB1aW50NjRfdCB4MzAgPSAoKHVp
bnQ2NF90KShhcmcxWzZdKSAqICgoYXJnMls0XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSkp
OworICB1aW50NjRfdCB4MzEgPSAoKHVpbnQ2NF90KShhcmcxWzVdKSAqICgoYXJnMls5XSkgKiAo
KHVpbnQzMl90KTB4MiAqIFVJTlQ4X0MoMHgxMykpKSk7CisgIHVpbnQ2NF90IHgzMiA9ICgodWlu
dDY0X3QpKGFyZzFbNV0pICogKChhcmcyWzhdKSAqICh1aW50MzJfdClVSU5UOF9DKDB4MTMpKSk7
CisgIHVpbnQ2NF90IHgzMyA9ICgodWludDY0X3QpKGFyZzFbNV0pICogKChhcmcyWzddKSAqICgo
dWludDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0X3QgeDM0ID0gKCh1aW50
NjRfdCkoYXJnMVs1XSkgKiAoKGFyZzJbNl0pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsK
KyAgdWludDY0X3QgeDM1ID0gKCh1aW50NjRfdCkoYXJnMVs1XSkgKiAoKGFyZzJbNV0pICogKCh1
aW50MzJfdCkweDIgKiBVSU5UOF9DKDB4MTMpKSkpOworICB1aW50NjRfdCB4MzYgPSAoKHVpbnQ2
NF90KShhcmcxWzRdKSAqICgoYXJnMls5XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSkpOwor
ICB1aW50NjRfdCB4MzcgPSAoKHVpbnQ2NF90KShhcmcxWzRdKSAqICgoYXJnMls4XSkgKiAodWlu
dDMyX3QpVUlOVDhfQygweDEzKSkpOworICB1aW50NjRfdCB4MzggPSAoKHVpbnQ2NF90KShhcmcx
WzRdKSAqICgoYXJnMls3XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSkpOworICB1aW50NjRf
dCB4MzkgPSAoKHVpbnQ2NF90KShhcmcxWzRdKSAqICgoYXJnMls2XSkgKiAodWludDMyX3QpVUlO
VDhfQygweDEzKSkpOworICB1aW50NjRfdCB4NDAgPSAoKHVpbnQ2NF90KShhcmcxWzNdKSAqICgo
YXJnMls5XSkgKiAoKHVpbnQzMl90KTB4MiAqIFVJTlQ4X0MoMHgxMykpKSk7CisgIHVpbnQ2NF90
IHg0MSA9ICgodWludDY0X3QpKGFyZzFbM10pICogKChhcmcyWzhdKSAqICh1aW50MzJfdClVSU5U
OF9DKDB4MTMpKSk7CisgIHVpbnQ2NF90IHg0MiA9ICgodWludDY0X3QpKGFyZzFbM10pICogKChh
cmcyWzddKSAqICgodWludDMyX3QpMHgyICogVUlOVDhfQygweDEzKSkpKTsKKyAgdWludDY0X3Qg
eDQzID0gKCh1aW50NjRfdCkoYXJnMVsyXSkgKiAoKGFyZzJbOV0pICogKHVpbnQzMl90KVVJTlQ4
X0MoMHgxMykpKTsKKyAgdWludDY0X3QgeDQ0ID0gKCh1aW50NjRfdCkoYXJnMVsyXSkgKiAoKGFy
ZzJbOF0pICogKHVpbnQzMl90KVVJTlQ4X0MoMHgxMykpKTsKKyAgdWludDY0X3QgeDQ1ID0gKCh1
aW50NjRfdCkoYXJnMVsxXSkgKiAoKGFyZzJbOV0pICogKCh1aW50MzJfdCkweDIgKiBVSU5UOF9D
KDB4MTMpKSkpOworICB1aW50NjRfdCB4NDYgPSAoKHVpbnQ2NF90KShhcmcxWzldKSAqIChhcmcy
WzBdKSk7CisgIHVpbnQ2NF90IHg0NyA9ICgodWludDY0X3QpKGFyZzFbOF0pICogKGFyZzJbMV0p
KTsKKyAgdWludDY0X3QgeDQ4ID0gKCh1aW50NjRfdCkoYXJnMVs4XSkgKiAoYXJnMlswXSkpOwor
ICB1aW50NjRfdCB4NDkgPSAoKHVpbnQ2NF90KShhcmcxWzddKSAqIChhcmcyWzJdKSk7CisgIHVp
bnQ2NF90IHg1MCA9ICgodWludDY0X3QpKGFyZzFbN10pICogKChhcmcyWzFdKSAqICh1aW50MzJf
dCkweDIpKTsKKyAgdWludDY0X3QgeDUxID0gKCh1aW50NjRfdCkoYXJnMVs3XSkgKiAoYXJnMlsw
XSkpOworICB1aW50NjRfdCB4NTIgPSAoKHVpbnQ2NF90KShhcmcxWzZdKSAqIChhcmcyWzNdKSk7
CisgIHVpbnQ2NF90IHg1MyA9ICgodWludDY0X3QpKGFyZzFbNl0pICogKGFyZzJbMl0pKTsKKyAg
dWludDY0X3QgeDU0ID0gKCh1aW50NjRfdCkoYXJnMVs2XSkgKiAoYXJnMlsxXSkpOworICB1aW50
NjRfdCB4NTUgPSAoKHVpbnQ2NF90KShhcmcxWzZdKSAqIChhcmcyWzBdKSk7CisgIHVpbnQ2NF90
IHg1NiA9ICgodWludDY0X3QpKGFyZzFbNV0pICogKGFyZzJbNF0pKTsKKyAgdWludDY0X3QgeDU3
ID0gKCh1aW50NjRfdCkoYXJnMVs1XSkgKiAoKGFyZzJbM10pICogKHVpbnQzMl90KTB4MikpOwor
ICB1aW50NjRfdCB4NTggPSAoKHVpbnQ2NF90KShhcmcxWzVdKSAqIChhcmcyWzJdKSk7CisgIHVp
bnQ2NF90IHg1OSA9ICgodWludDY0X3QpKGFyZzFbNV0pICogKChhcmcyWzFdKSAqICh1aW50MzJf
dCkweDIpKTsKKyAgdWludDY0X3QgeDYwID0gKCh1aW50NjRfdCkoYXJnMVs1XSkgKiAoYXJnMlsw
XSkpOworICB1aW50NjRfdCB4NjEgPSAoKHVpbnQ2NF90KShhcmcxWzRdKSAqIChhcmcyWzVdKSk7
CisgIHVpbnQ2NF90IHg2MiA9ICgodWludDY0X3QpKGFyZzFbNF0pICogKGFyZzJbNF0pKTsKKyAg
dWludDY0X3QgeDYzID0gKCh1aW50NjRfdCkoYXJnMVs0XSkgKiAoYXJnMlszXSkpOworICB1aW50
NjRfdCB4NjQgPSAoKHVpbnQ2NF90KShhcmcxWzRdKSAqIChhcmcyWzJdKSk7CisgIHVpbnQ2NF90
IHg2NSA9ICgodWludDY0X3QpKGFyZzFbNF0pICogKGFyZzJbMV0pKTsKKyAgdWludDY0X3QgeDY2
ID0gKCh1aW50NjRfdCkoYXJnMVs0XSkgKiAoYXJnMlswXSkpOworICB1aW50NjRfdCB4NjcgPSAo
KHVpbnQ2NF90KShhcmcxWzNdKSAqIChhcmcyWzZdKSk7CisgIHVpbnQ2NF90IHg2OCA9ICgodWlu
dDY0X3QpKGFyZzFbM10pICogKChhcmcyWzVdKSAqICh1aW50MzJfdCkweDIpKTsKKyAgdWludDY0
X3QgeDY5ID0gKCh1aW50NjRfdCkoYXJnMVszXSkgKiAoYXJnMls0XSkpOworICB1aW50NjRfdCB4
NzAgPSAoKHVpbnQ2NF90KShhcmcxWzNdKSAqICgoYXJnMlszXSkgKiAodWludDMyX3QpMHgyKSk7
CisgIHVpbnQ2NF90IHg3MSA9ICgodWludDY0X3QpKGFyZzFbM10pICogKGFyZzJbMl0pKTsKKyAg
dWludDY0X3QgeDcyID0gKCh1aW50NjRfdCkoYXJnMVszXSkgKiAoKGFyZzJbMV0pICogKHVpbnQz
Ml90KTB4MikpOworICB1aW50NjRfdCB4NzMgPSAoKHVpbnQ2NF90KShhcmcxWzNdKSAqIChhcmcy
WzBdKSk7CisgIHVpbnQ2NF90IHg3NCA9ICgodWludDY0X3QpKGFyZzFbMl0pICogKGFyZzJbN10p
KTsKKyAgdWludDY0X3QgeDc1ID0gKCh1aW50NjRfdCkoYXJnMVsyXSkgKiAoYXJnMls2XSkpOwor
ICB1aW50NjRfdCB4NzYgPSAoKHVpbnQ2NF90KShhcmcxWzJdKSAqIChhcmcyWzVdKSk7CisgIHVp
bnQ2NF90IHg3NyA9ICgodWludDY0X3QpKGFyZzFbMl0pICogKGFyZzJbNF0pKTsKKyAgdWludDY0
X3QgeDc4ID0gKCh1aW50NjRfdCkoYXJnMVsyXSkgKiAoYXJnMlszXSkpOworICB1aW50NjRfdCB4
NzkgPSAoKHVpbnQ2NF90KShhcmcxWzJdKSAqIChhcmcyWzJdKSk7CisgIHVpbnQ2NF90IHg4MCA9
ICgodWludDY0X3QpKGFyZzFbMl0pICogKGFyZzJbMV0pKTsKKyAgdWludDY0X3QgeDgxID0gKCh1
aW50NjRfdCkoYXJnMVsyXSkgKiAoYXJnMlswXSkpOworICB1aW50NjRfdCB4ODIgPSAoKHVpbnQ2
NF90KShhcmcxWzFdKSAqIChhcmcyWzhdKSk7CisgIHVpbnQ2NF90IHg4MyA9ICgodWludDY0X3Qp
KGFyZzFbMV0pICogKChhcmcyWzddKSAqICh1aW50MzJfdCkweDIpKTsKKyAgdWludDY0X3QgeDg0
ID0gKCh1aW50NjRfdCkoYXJnMVsxXSkgKiAoYXJnMls2XSkpOworICB1aW50NjRfdCB4ODUgPSAo
KHVpbnQ2NF90KShhcmcxWzFdKSAqICgoYXJnMls1XSkgKiAodWludDMyX3QpMHgyKSk7CisgIHVp
bnQ2NF90IHg4NiA9ICgodWludDY0X3QpKGFyZzFbMV0pICogKGFyZzJbNF0pKTsKKyAgdWludDY0
X3QgeDg3ID0gKCh1aW50NjRfdCkoYXJnMVsxXSkgKiAoKGFyZzJbM10pICogKHVpbnQzMl90KTB4
MikpOworICB1aW50NjRfdCB4ODggPSAoKHVpbnQ2NF90KShhcmcxWzFdKSAqIChhcmcyWzJdKSk7
CisgIHVpbnQ2NF90IHg4OSA9ICgodWludDY0X3QpKGFyZzFbMV0pICogKChhcmcyWzFdKSAqICh1
aW50MzJfdCkweDIpKTsKKyAgdWludDY0X3QgeDkwID0gKCh1aW50NjRfdCkoYXJnMVsxXSkgKiAo
YXJnMlswXSkpOworICB1aW50NjRfdCB4OTEgPSAoKHVpbnQ2NF90KShhcmcxWzBdKSAqIChhcmcy
WzldKSk7CisgIHVpbnQ2NF90IHg5MiA9ICgodWludDY0X3QpKGFyZzFbMF0pICogKGFyZzJbOF0p
KTsKKyAgdWludDY0X3QgeDkzID0gKCh1aW50NjRfdCkoYXJnMVswXSkgKiAoYXJnMls3XSkpOwor
ICB1aW50NjRfdCB4OTQgPSAoKHVpbnQ2NF90KShhcmcxWzBdKSAqIChhcmcyWzZdKSk7CisgIHVp
bnQ2NF90IHg5NSA9ICgodWludDY0X3QpKGFyZzFbMF0pICogKGFyZzJbNV0pKTsKKyAgdWludDY0
X3QgeDk2ID0gKCh1aW50NjRfdCkoYXJnMVswXSkgKiAoYXJnMls0XSkpOworICB1aW50NjRfdCB4
OTcgPSAoKHVpbnQ2NF90KShhcmcxWzBdKSAqIChhcmcyWzNdKSk7CisgIHVpbnQ2NF90IHg5OCA9
ICgodWludDY0X3QpKGFyZzFbMF0pICogKGFyZzJbMl0pKTsKKyAgdWludDY0X3QgeDk5ID0gKCh1
aW50NjRfdCkoYXJnMVswXSkgKiAoYXJnMlsxXSkpOworICB1aW50NjRfdCB4MTAwID0gKCh1aW50
NjRfdCkoYXJnMVswXSkgKiAoYXJnMlswXSkpOworICB1aW50NjRfdCB4MTAxID0gKHgxMDAgKyAo
eDQ1ICsgKHg0NCArICh4NDIgKyAoeDM5ICsgKHgzNSArICh4MzAgKyAoeDI0ICsgKHgxNyArIHg5
KSkpKSkpKSkpOworICB1aW50NjRfdCB4MTAyID0gKHgxMDEgPj4gMjYpOworICB1aW50MzJfdCB4
MTAzID0gKHVpbnQzMl90KSh4MTAxICYgVUlOVDMyX0MoMHgzZmZmZmZmKSk7CisgIHVpbnQ2NF90
IHgxMDQgPSAoeDkxICsgKHg4MiArICh4NzQgKyAoeDY3ICsgKHg2MSArICh4NTYgKyAoeDUyICsg
KHg0OSArICh4NDcgKyB4NDYpKSkpKSkpKSk7CisgIHVpbnQ2NF90IHgxMDUgPSAoeDkyICsgKHg4
MyArICh4NzUgKyAoeDY4ICsgKHg2MiArICh4NTcgKyAoeDUzICsgKHg1MCArICh4NDggKyB4MSkp
KSkpKSkpKTsKKyAgdWludDY0X3QgeDEwNiA9ICh4OTMgKyAoeDg0ICsgKHg3NiArICh4NjkgKyAo
eDYzICsgKHg1OCArICh4NTQgKyAoeDUxICsgKHgxMCArIHgyKSkpKSkpKSkpOworICB1aW50NjRf
dCB4MTA3ID0gKHg5NCArICh4ODUgKyAoeDc3ICsgKHg3MCArICh4NjQgKyAoeDU5ICsgKHg1NSAr
ICh4MTggKyAoeDExICsgeDMpKSkpKSkpKSk7CisgIHVpbnQ2NF90IHgxMDggPSAoeDk1ICsgKHg4
NiArICh4NzggKyAoeDcxICsgKHg2NSArICh4NjAgKyAoeDI1ICsgKHgxOSArICh4MTIgKyB4NCkp
KSkpKSkpKTsKKyAgdWludDY0X3QgeDEwOSA9ICh4OTYgKyAoeDg3ICsgKHg3OSArICh4NzIgKyAo
eDY2ICsgKHgzMSArICh4MjYgKyAoeDIwICsgKHgxMyArIHg1KSkpKSkpKSkpOworICB1aW50NjRf
dCB4MTEwID0gKHg5NyArICh4ODggKyAoeDgwICsgKHg3MyArICh4MzYgKyAoeDMyICsgKHgyNyAr
ICh4MjEgKyAoeDE0ICsgeDYpKSkpKSkpKSk7CisgIHVpbnQ2NF90IHgxMTEgPSAoeDk4ICsgKHg4
OSArICh4ODEgKyAoeDQwICsgKHgzNyArICh4MzMgKyAoeDI4ICsgKHgyMiArICh4MTUgKyB4Nykp
KSkpKSkpKTsKKyAgdWludDY0X3QgeDExMiA9ICh4OTkgKyAoeDkwICsgKHg0MyArICh4NDEgKyAo
eDM4ICsgKHgzNCArICh4MjkgKyAoeDIzICsgKHgxNiArIHg4KSkpKSkpKSkpOworICB1aW50NjRf
dCB4MTEzID0gKHgxMDIgKyB4MTEyKTsKKyAgdWludDY0X3QgeDExNCA9ICh4MTEzID4+IDI1KTsK
KyAgdWludDMyX3QgeDExNSA9ICh1aW50MzJfdCkoeDExMyAmIFVJTlQzMl9DKDB4MWZmZmZmZikp
OworICB1aW50NjRfdCB4MTE2ID0gKHgxMTQgKyB4MTExKTsKKyAgdWludDY0X3QgeDExNyA9ICh4
MTE2ID4+IDI2KTsKKyAgdWludDMyX3QgeDExOCA9ICh1aW50MzJfdCkoeDExNiAmIFVJTlQzMl9D
KDB4M2ZmZmZmZikpOworICB1aW50NjRfdCB4MTE5ID0gKHgxMTcgKyB4MTEwKTsKKyAgdWludDY0
X3QgeDEyMCA9ICh4MTE5ID4+IDI1KTsKKyAgdWludDMyX3QgeDEyMSA9ICh1aW50MzJfdCkoeDEx
OSAmIFVJTlQzMl9DKDB4MWZmZmZmZikpOworICB1aW50NjRfdCB4MTIyID0gKHgxMjAgKyB4MTA5
KTsKKyAgdWludDY0X3QgeDEyMyA9ICh4MTIyID4+IDI2KTsKKyAgdWludDMyX3QgeDEyNCA9ICh1
aW50MzJfdCkoeDEyMiAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50NjRfdCB4MTI1ID0g
KHgxMjMgKyB4MTA4KTsKKyAgdWludDY0X3QgeDEyNiA9ICh4MTI1ID4+IDI1KTsKKyAgdWludDMy
X3QgeDEyNyA9ICh1aW50MzJfdCkoeDEyNSAmIFVJTlQzMl9DKDB4MWZmZmZmZikpOworICB1aW50
NjRfdCB4MTI4ID0gKHgxMjYgKyB4MTA3KTsKKyAgdWludDY0X3QgeDEyOSA9ICh4MTI4ID4+IDI2
KTsKKyAgdWludDMyX3QgeDEzMCA9ICh1aW50MzJfdCkoeDEyOCAmIFVJTlQzMl9DKDB4M2ZmZmZm
ZikpOworICB1aW50NjRfdCB4MTMxID0gKHgxMjkgKyB4MTA2KTsKKyAgdWludDY0X3QgeDEzMiA9
ICh4MTMxID4+IDI1KTsKKyAgdWludDMyX3QgeDEzMyA9ICh1aW50MzJfdCkoeDEzMSAmIFVJTlQz
Ml9DKDB4MWZmZmZmZikpOworICB1aW50NjRfdCB4MTM0ID0gKHgxMzIgKyB4MTA1KTsKKyAgdWlu
dDY0X3QgeDEzNSA9ICh4MTM0ID4+IDI2KTsKKyAgdWludDMyX3QgeDEzNiA9ICh1aW50MzJfdCko
eDEzNCAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50NjRfdCB4MTM3ID0gKHgxMzUgKyB4
MTA0KTsKKyAgdWludDY0X3QgeDEzOCA9ICh4MTM3ID4+IDI1KTsKKyAgdWludDMyX3QgeDEzOSA9
ICh1aW50MzJfdCkoeDEzNyAmIFVJTlQzMl9DKDB4MWZmZmZmZikpOworICB1aW50NjRfdCB4MTQw
ID0gKHgxMzggKiAodWludDY0X3QpVUlOVDhfQygweDEzKSk7CisgIHVpbnQ2NF90IHgxNDEgPSAo
eDEwMyArIHgxNDApOworICB1aW50MzJfdCB4MTQyID0gKHVpbnQzMl90KSh4MTQxID4+IDI2KTsK
KyAgdWludDMyX3QgeDE0MyA9ICh1aW50MzJfdCkoeDE0MSAmIFVJTlQzMl9DKDB4M2ZmZmZmZikp
OworICB1aW50MzJfdCB4MTQ0ID0gKHgxNDIgKyB4MTE1KTsKKyAgdWludDMyX3QgeDE0NSA9ICh4
MTQ0ID4+IDI1KTsKKyAgdWludDMyX3QgeDE0NiA9ICh4MTQ0ICYgVUlOVDMyX0MoMHgxZmZmZmZm
KSk7CisgIHVpbnQzMl90IHgxNDcgPSAoeDE0NSArIHgxMTgpOworICBvdXQxWzBdID0geDE0MzsK
KyAgb3V0MVsxXSA9IHgxNDY7CisgIG91dDFbMl0gPSB4MTQ3OworICBvdXQxWzNdID0geDEyMTsK
KyAgb3V0MVs0XSA9IHgxMjQ7CisgIG91dDFbNV0gPSB4MTI3OworICBvdXQxWzZdID0geDEzMDsK
KyAgb3V0MVs3XSA9IHgxMzM7CisgIG91dDFbOF0gPSB4MTM2OworICBvdXQxWzldID0geDEzOTsK
K30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHhkMzMzMzMy
XSwgWzB4MCB+PiAweDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5
OTk5XSwgWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhk
MzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4g
MHg2OTk5OTk5XV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4NDY2
NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4
MjMzMzMzM10sIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+
IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgw
IH4+IDB4MjMzMzMzM11dCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfMjU1MTlfY2Fycnlfc3F1YXJl
KHVpbnQzMl90IG91dDFbMTBdLCBjb25zdCB1aW50MzJfdCBhcmcxWzEwXSkgeworICB1aW50MzJf
dCB4MSA9ICgoYXJnMVs5XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSk7CisgIHVpbnQzMl90
IHgyID0gKHgxICogKHVpbnQzMl90KTB4Mik7CisgIHVpbnQzMl90IHgzID0gKChhcmcxWzldKSAq
ICh1aW50MzJfdCkweDIpOworICB1aW50MzJfdCB4NCA9ICgoYXJnMVs4XSkgKiAodWludDMyX3Qp
VUlOVDhfQygweDEzKSk7CisgIHVpbnQ2NF90IHg1ID0gKHg0ICogKHVpbnQ2NF90KTB4Mik7Cisg
IHVpbnQzMl90IHg2ID0gKChhcmcxWzhdKSAqICh1aW50MzJfdCkweDIpOworICB1aW50MzJfdCB4
NyA9ICgoYXJnMVs3XSkgKiAodWludDMyX3QpVUlOVDhfQygweDEzKSk7CisgIHVpbnQzMl90IHg4
ID0gKHg3ICogKHVpbnQzMl90KTB4Mik7CisgIHVpbnQzMl90IHg5ID0gKChhcmcxWzddKSAqICh1
aW50MzJfdCkweDIpOworICB1aW50MzJfdCB4MTAgPSAoKGFyZzFbNl0pICogKHVpbnQzMl90KVVJ
TlQ4X0MoMHgxMykpOworICB1aW50NjRfdCB4MTEgPSAoeDEwICogKHVpbnQ2NF90KTB4Mik7Cisg
IHVpbnQzMl90IHgxMiA9ICgoYXJnMVs2XSkgKiAodWludDMyX3QpMHgyKTsKKyAgdWludDMyX3Qg
eDEzID0gKChhcmcxWzVdKSAqICh1aW50MzJfdClVSU5UOF9DKDB4MTMpKTsKKyAgdWludDMyX3Qg
eDE0ID0gKChhcmcxWzVdKSAqICh1aW50MzJfdCkweDIpOworICB1aW50MzJfdCB4MTUgPSAoKGFy
ZzFbNF0pICogKHVpbnQzMl90KTB4Mik7CisgIHVpbnQzMl90IHgxNiA9ICgoYXJnMVszXSkgKiAo
dWludDMyX3QpMHgyKTsKKyAgdWludDMyX3QgeDE3ID0gKChhcmcxWzJdKSAqICh1aW50MzJfdCkw
eDIpOworICB1aW50MzJfdCB4MTggPSAoKGFyZzFbMV0pICogKHVpbnQzMl90KTB4Mik7CisgIHVp
bnQ2NF90IHgxOSA9ICgodWludDY0X3QpKGFyZzFbOV0pICogKHgxICogKHVpbnQzMl90KTB4Mikp
OworICB1aW50NjRfdCB4MjAgPSAoKHVpbnQ2NF90KShhcmcxWzhdKSAqIHgyKTsKKyAgdWludDY0
X3QgeDIxID0gKCh1aW50NjRfdCkoYXJnMVs4XSkgKiB4NCk7CisgIHVpbnQ2NF90IHgyMiA9ICgo
YXJnMVs3XSkgKiAoeDIgKiAodWludDY0X3QpMHgyKSk7CisgIHVpbnQ2NF90IHgyMyA9ICgoYXJn
MVs3XSkgKiB4NSk7CisgIHVpbnQ2NF90IHgyNCA9ICgodWludDY0X3QpKGFyZzFbN10pICogKHg3
ICogKHVpbnQzMl90KTB4MikpOworICB1aW50NjRfdCB4MjUgPSAoKHVpbnQ2NF90KShhcmcxWzZd
KSAqIHgyKTsKKyAgdWludDY0X3QgeDI2ID0gKChhcmcxWzZdKSAqIHg1KTsKKyAgdWludDY0X3Qg
eDI3ID0gKCh1aW50NjRfdCkoYXJnMVs2XSkgKiB4OCk7CisgIHVpbnQ2NF90IHgyOCA9ICgodWlu
dDY0X3QpKGFyZzFbNl0pICogeDEwKTsKKyAgdWludDY0X3QgeDI5ID0gKChhcmcxWzVdKSAqICh4
MiAqICh1aW50NjRfdCkweDIpKTsKKyAgdWludDY0X3QgeDMwID0gKChhcmcxWzVdKSAqIHg1KTsK
KyAgdWludDY0X3QgeDMxID0gKChhcmcxWzVdKSAqICh4OCAqICh1aW50NjRfdCkweDIpKTsKKyAg
dWludDY0X3QgeDMyID0gKChhcmcxWzVdKSAqIHgxMSk7CisgIHVpbnQ2NF90IHgzMyA9ICgodWlu
dDY0X3QpKGFyZzFbNV0pICogKHgxMyAqICh1aW50MzJfdCkweDIpKTsKKyAgdWludDY0X3QgeDM0
ID0gKCh1aW50NjRfdCkoYXJnMVs0XSkgKiB4Mik7CisgIHVpbnQ2NF90IHgzNSA9ICgoYXJnMVs0
XSkgKiB4NSk7CisgIHVpbnQ2NF90IHgzNiA9ICgodWludDY0X3QpKGFyZzFbNF0pICogeDgpOwor
ICB1aW50NjRfdCB4MzcgPSAoKGFyZzFbNF0pICogeDExKTsKKyAgdWludDY0X3QgeDM4ID0gKCh1
aW50NjRfdCkoYXJnMVs0XSkgKiB4MTQpOworICB1aW50NjRfdCB4MzkgPSAoKHVpbnQ2NF90KShh
cmcxWzRdKSAqIChhcmcxWzRdKSk7CisgIHVpbnQ2NF90IHg0MCA9ICgoYXJnMVszXSkgKiAoeDIg
KiAodWludDY0X3QpMHgyKSk7CisgIHVpbnQ2NF90IHg0MSA9ICgoYXJnMVszXSkgKiB4NSk7Cisg
IHVpbnQ2NF90IHg0MiA9ICgoYXJnMVszXSkgKiAoeDggKiAodWludDY0X3QpMHgyKSk7CisgIHVp
bnQ2NF90IHg0MyA9ICgodWludDY0X3QpKGFyZzFbM10pICogeDEyKTsKKyAgdWludDY0X3QgeDQ0
ID0gKCh1aW50NjRfdCkoYXJnMVszXSkgKiAoeDE0ICogKHVpbnQzMl90KTB4MikpOworICB1aW50
NjRfdCB4NDUgPSAoKHVpbnQ2NF90KShhcmcxWzNdKSAqIHgxNSk7CisgIHVpbnQ2NF90IHg0NiA9
ICgodWludDY0X3QpKGFyZzFbM10pICogKChhcmcxWzNdKSAqICh1aW50MzJfdCkweDIpKTsKKyAg
dWludDY0X3QgeDQ3ID0gKCh1aW50NjRfdCkoYXJnMVsyXSkgKiB4Mik7CisgIHVpbnQ2NF90IHg0
OCA9ICgoYXJnMVsyXSkgKiB4NSk7CisgIHVpbnQ2NF90IHg0OSA9ICgodWludDY0X3QpKGFyZzFb
Ml0pICogeDkpOworICB1aW50NjRfdCB4NTAgPSAoKHVpbnQ2NF90KShhcmcxWzJdKSAqIHgxMik7
CisgIHVpbnQ2NF90IHg1MSA9ICgodWludDY0X3QpKGFyZzFbMl0pICogeDE0KTsKKyAgdWludDY0
X3QgeDUyID0gKCh1aW50NjRfdCkoYXJnMVsyXSkgKiB4MTUpOworICB1aW50NjRfdCB4NTMgPSAo
KHVpbnQ2NF90KShhcmcxWzJdKSAqIHgxNik7CisgIHVpbnQ2NF90IHg1NCA9ICgodWludDY0X3Qp
KGFyZzFbMl0pICogKGFyZzFbMl0pKTsKKyAgdWludDY0X3QgeDU1ID0gKChhcmcxWzFdKSAqICh4
MiAqICh1aW50NjRfdCkweDIpKTsKKyAgdWludDY0X3QgeDU2ID0gKCh1aW50NjRfdCkoYXJnMVsx
XSkgKiB4Nik7CisgIHVpbnQ2NF90IHg1NyA9ICgodWludDY0X3QpKGFyZzFbMV0pICogKHg5ICog
KHVpbnQzMl90KTB4MikpOworICB1aW50NjRfdCB4NTggPSAoKHVpbnQ2NF90KShhcmcxWzFdKSAq
IHgxMik7CisgIHVpbnQ2NF90IHg1OSA9ICgodWludDY0X3QpKGFyZzFbMV0pICogKHgxNCAqICh1
aW50MzJfdCkweDIpKTsKKyAgdWludDY0X3QgeDYwID0gKCh1aW50NjRfdCkoYXJnMVsxXSkgKiB4
MTUpOworICB1aW50NjRfdCB4NjEgPSAoKHVpbnQ2NF90KShhcmcxWzFdKSAqICh4MTYgKiAodWlu
dDMyX3QpMHgyKSk7CisgIHVpbnQ2NF90IHg2MiA9ICgodWludDY0X3QpKGFyZzFbMV0pICogeDE3
KTsKKyAgdWludDY0X3QgeDYzID0gKCh1aW50NjRfdCkoYXJnMVsxXSkgKiAoKGFyZzFbMV0pICog
KHVpbnQzMl90KTB4MikpOworICB1aW50NjRfdCB4NjQgPSAoKHVpbnQ2NF90KShhcmcxWzBdKSAq
IHgzKTsKKyAgdWludDY0X3QgeDY1ID0gKCh1aW50NjRfdCkoYXJnMVswXSkgKiB4Nik7CisgIHVp
bnQ2NF90IHg2NiA9ICgodWludDY0X3QpKGFyZzFbMF0pICogeDkpOworICB1aW50NjRfdCB4Njcg
PSAoKHVpbnQ2NF90KShhcmcxWzBdKSAqIHgxMik7CisgIHVpbnQ2NF90IHg2OCA9ICgodWludDY0
X3QpKGFyZzFbMF0pICogeDE0KTsKKyAgdWludDY0X3QgeDY5ID0gKCh1aW50NjRfdCkoYXJnMVsw
XSkgKiB4MTUpOworICB1aW50NjRfdCB4NzAgPSAoKHVpbnQ2NF90KShhcmcxWzBdKSAqIHgxNik7
CisgIHVpbnQ2NF90IHg3MSA9ICgodWludDY0X3QpKGFyZzFbMF0pICogeDE3KTsKKyAgdWludDY0
X3QgeDcyID0gKCh1aW50NjRfdCkoYXJnMVswXSkgKiB4MTgpOworICB1aW50NjRfdCB4NzMgPSAo
KHVpbnQ2NF90KShhcmcxWzBdKSAqIChhcmcxWzBdKSk7CisgIHVpbnQ2NF90IHg3NCA9ICh4NzMg
KyAoeDU1ICsgKHg0OCArICh4NDIgKyAoeDM3ICsgeDMzKSkpKSk7CisgIHVpbnQ2NF90IHg3NSA9
ICh4NzQgPj4gMjYpOworICB1aW50MzJfdCB4NzYgPSAodWludDMyX3QpKHg3NCAmIFVJTlQzMl9D
KDB4M2ZmZmZmZikpOworICB1aW50NjRfdCB4NzcgPSAoeDY0ICsgKHg1NiArICh4NDkgKyAoeDQz
ICsgeDM4KSkpKTsKKyAgdWludDY0X3QgeDc4ID0gKHg2NSArICh4NTcgKyAoeDUwICsgKHg0NCAr
ICh4MzkgKyB4MTkpKSkpKTsKKyAgdWludDY0X3QgeDc5ID0gKHg2NiArICh4NTggKyAoeDUxICsg
KHg0NSArIHgyMCkpKSk7CisgIHVpbnQ2NF90IHg4MCA9ICh4NjcgKyAoeDU5ICsgKHg1MiArICh4
NDYgKyAoeDIyICsgeDIxKSkpKSk7CisgIHVpbnQ2NF90IHg4MSA9ICh4NjggKyAoeDYwICsgKHg1
MyArICh4MjUgKyB4MjMpKSkpOworICB1aW50NjRfdCB4ODIgPSAoeDY5ICsgKHg2MSArICh4NTQg
KyAoeDI5ICsgKHgyNiArIHgyNCkpKSkpOworICB1aW50NjRfdCB4ODMgPSAoeDcwICsgKHg2MiAr
ICh4MzQgKyAoeDMwICsgeDI3KSkpKTsKKyAgdWludDY0X3QgeDg0ID0gKHg3MSArICh4NjMgKyAo
eDQwICsgKHgzNSArICh4MzEgKyB4MjgpKSkpKTsKKyAgdWludDY0X3QgeDg1ID0gKHg3MiArICh4
NDcgKyAoeDQxICsgKHgzNiArIHgzMikpKSk7CisgIHVpbnQ2NF90IHg4NiA9ICh4NzUgKyB4ODUp
OworICB1aW50NjRfdCB4ODcgPSAoeDg2ID4+IDI1KTsKKyAgdWludDMyX3QgeDg4ID0gKHVpbnQz
Ml90KSh4ODYgJiBVSU5UMzJfQygweDFmZmZmZmYpKTsKKyAgdWludDY0X3QgeDg5ID0gKHg4NyAr
IHg4NCk7CisgIHVpbnQ2NF90IHg5MCA9ICh4ODkgPj4gMjYpOworICB1aW50MzJfdCB4OTEgPSAo
dWludDMyX3QpKHg4OSAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50NjRfdCB4OTIgPSAo
eDkwICsgeDgzKTsKKyAgdWludDY0X3QgeDkzID0gKHg5MiA+PiAyNSk7CisgIHVpbnQzMl90IHg5
NCA9ICh1aW50MzJfdCkoeDkyICYgVUlOVDMyX0MoMHgxZmZmZmZmKSk7CisgIHVpbnQ2NF90IHg5
NSA9ICh4OTMgKyB4ODIpOworICB1aW50NjRfdCB4OTYgPSAoeDk1ID4+IDI2KTsKKyAgdWludDMy
X3QgeDk3ID0gKHVpbnQzMl90KSh4OTUgJiBVSU5UMzJfQygweDNmZmZmZmYpKTsKKyAgdWludDY0
X3QgeDk4ID0gKHg5NiArIHg4MSk7CisgIHVpbnQ2NF90IHg5OSA9ICh4OTggPj4gMjUpOworICB1
aW50MzJfdCB4MTAwID0gKHVpbnQzMl90KSh4OTggJiBVSU5UMzJfQygweDFmZmZmZmYpKTsKKyAg
dWludDY0X3QgeDEwMSA9ICh4OTkgKyB4ODApOworICB1aW50NjRfdCB4MTAyID0gKHgxMDEgPj4g
MjYpOworICB1aW50MzJfdCB4MTAzID0gKHVpbnQzMl90KSh4MTAxICYgVUlOVDMyX0MoMHgzZmZm
ZmZmKSk7CisgIHVpbnQ2NF90IHgxMDQgPSAoeDEwMiArIHg3OSk7CisgIHVpbnQ2NF90IHgxMDUg
PSAoeDEwNCA+PiAyNSk7CisgIHVpbnQzMl90IHgxMDYgPSAodWludDMyX3QpKHgxMDQgJiBVSU5U
MzJfQygweDFmZmZmZmYpKTsKKyAgdWludDY0X3QgeDEwNyA9ICh4MTA1ICsgeDc4KTsKKyAgdWlu
dDY0X3QgeDEwOCA9ICh4MTA3ID4+IDI2KTsKKyAgdWludDMyX3QgeDEwOSA9ICh1aW50MzJfdCko
eDEwNyAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50NjRfdCB4MTEwID0gKHgxMDggKyB4
NzcpOworICB1aW50NjRfdCB4MTExID0gKHgxMTAgPj4gMjUpOworICB1aW50MzJfdCB4MTEyID0g
KHVpbnQzMl90KSh4MTEwICYgVUlOVDMyX0MoMHgxZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgxMTMg
PSAoeDExMSAqICh1aW50NjRfdClVSU5UOF9DKDB4MTMpKTsKKyAgdWludDY0X3QgeDExNCA9ICh4
NzYgKyB4MTEzKTsKKyAgdWludDMyX3QgeDExNSA9ICh1aW50MzJfdCkoeDExNCA+PiAyNik7Cisg
IHVpbnQzMl90IHgxMTYgPSAodWludDMyX3QpKHgxMTQgJiBVSU5UMzJfQygweDNmZmZmZmYpKTsK
KyAgdWludDMyX3QgeDExNyA9ICh4MTE1ICsgeDg4KTsKKyAgdWludDMyX3QgeDExOCA9ICh4MTE3
ID4+IDI1KTsKKyAgdWludDMyX3QgeDExOSA9ICh4MTE3ICYgVUlOVDMyX0MoMHgxZmZmZmZmKSk7
CisgIHVpbnQzMl90IHgxMjAgPSAoeDExOCArIHg5MSk7CisgIG91dDFbMF0gPSB4MTE2OworICBv
dXQxWzFdID0geDExOTsKKyAgb3V0MVsyXSA9IHgxMjA7CisgIG91dDFbM10gPSB4OTQ7CisgIG91
dDFbNF0gPSB4OTc7CisgIG91dDFbNV0gPSB4MTAwOworICBvdXQxWzZdID0geDEwMzsKKyAgb3V0
MVs3XSA9IHgxMDY7CisgIG91dDFbOF0gPSB4MTA5OworICBvdXQxWzldID0geDExMjsKK30KKwor
LyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHhkMzMzMzMyXSwgWzB4
MCB+PiAweDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5OTk5XSwg
WzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMy
XSwgWzB4MCB+PiAweDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5
OTk5XV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4NDY2NjY2Nl0s
IFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMz
M10sIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2
NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4
MjMzMzMzM11dCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfMjU1MTlfY2Fycnlfc2NtdWxfMTIxNjY2
KHVpbnQzMl90IG91dDFbMTBdLCBjb25zdCB1aW50MzJfdCBhcmcxWzEwXSkgeworICB1aW50NjRf
dCB4MSA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0MikgKiAoYXJnMVs5XSkpOworICB1aW50
NjRfdCB4MiA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0MikgKiAoYXJnMVs4XSkpOworICB1
aW50NjRfdCB4MyA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0MikgKiAoYXJnMVs3XSkpOwor
ICB1aW50NjRfdCB4NCA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0MikgKiAoYXJnMVs2XSkp
OworICB1aW50NjRfdCB4NSA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0MikgKiAoYXJnMVs1
XSkpOworICB1aW50NjRfdCB4NiA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0MikgKiAoYXJn
MVs0XSkpOworICB1aW50NjRfdCB4NyA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0MikgKiAo
YXJnMVszXSkpOworICB1aW50NjRfdCB4OCA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0Mikg
KiAoYXJnMVsyXSkpOworICB1aW50NjRfdCB4OSA9ICgodWludDY0X3QpVUlOVDMyX0MoMHgxZGI0
MikgKiAoYXJnMVsxXSkpOworICB1aW50NjRfdCB4MTAgPSAoKHVpbnQ2NF90KVVJTlQzMl9DKDB4
MWRiNDIpICogKGFyZzFbMF0pKTsKKyAgdWludDMyX3QgeDExID0gKHVpbnQzMl90KSh4MTAgPj4g
MjYpOworICB1aW50MzJfdCB4MTIgPSAodWludDMyX3QpKHgxMCAmIFVJTlQzMl9DKDB4M2ZmZmZm
ZikpOworICB1aW50NjRfdCB4MTMgPSAoeDExICsgeDkpOworICB1aW50MzJfdCB4MTQgPSAodWlu
dDMyX3QpKHgxMyA+PiAyNSk7CisgIHVpbnQzMl90IHgxNSA9ICh1aW50MzJfdCkoeDEzICYgVUlO
VDMyX0MoMHgxZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgxNiA9ICh4MTQgKyB4OCk7CisgIHVpbnQz
Ml90IHgxNyA9ICh1aW50MzJfdCkoeDE2ID4+IDI2KTsKKyAgdWludDMyX3QgeDE4ID0gKHVpbnQz
Ml90KSh4MTYgJiBVSU5UMzJfQygweDNmZmZmZmYpKTsKKyAgdWludDY0X3QgeDE5ID0gKHgxNyAr
IHg3KTsKKyAgdWludDMyX3QgeDIwID0gKHVpbnQzMl90KSh4MTkgPj4gMjUpOworICB1aW50MzJf
dCB4MjEgPSAodWludDMyX3QpKHgxOSAmIFVJTlQzMl9DKDB4MWZmZmZmZikpOworICB1aW50NjRf
dCB4MjIgPSAoeDIwICsgeDYpOworICB1aW50MzJfdCB4MjMgPSAodWludDMyX3QpKHgyMiA+PiAy
Nik7CisgIHVpbnQzMl90IHgyNCA9ICh1aW50MzJfdCkoeDIyICYgVUlOVDMyX0MoMHgzZmZmZmZm
KSk7CisgIHVpbnQ2NF90IHgyNSA9ICh4MjMgKyB4NSk7CisgIHVpbnQzMl90IHgyNiA9ICh1aW50
MzJfdCkoeDI1ID4+IDI1KTsKKyAgdWludDMyX3QgeDI3ID0gKHVpbnQzMl90KSh4MjUgJiBVSU5U
MzJfQygweDFmZmZmZmYpKTsKKyAgdWludDY0X3QgeDI4ID0gKHgyNiArIHg0KTsKKyAgdWludDMy
X3QgeDI5ID0gKHVpbnQzMl90KSh4MjggPj4gMjYpOworICB1aW50MzJfdCB4MzAgPSAodWludDMy
X3QpKHgyOCAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50NjRfdCB4MzEgPSAoeDI5ICsg
eDMpOworICB1aW50MzJfdCB4MzIgPSAodWludDMyX3QpKHgzMSA+PiAyNSk7CisgIHVpbnQzMl90
IHgzMyA9ICh1aW50MzJfdCkoeDMxICYgVUlOVDMyX0MoMHgxZmZmZmZmKSk7CisgIHVpbnQ2NF90
IHgzNCA9ICh4MzIgKyB4Mik7CisgIHVpbnQzMl90IHgzNSA9ICh1aW50MzJfdCkoeDM0ID4+IDI2
KTsKKyAgdWludDMyX3QgeDM2ID0gKHVpbnQzMl90KSh4MzQgJiBVSU5UMzJfQygweDNmZmZmZmYp
KTsKKyAgdWludDY0X3QgeDM3ID0gKHgzNSArIHgxKTsKKyAgdWludDMyX3QgeDM4ID0gKHVpbnQz
Ml90KSh4MzcgPj4gMjUpOworICB1aW50MzJfdCB4MzkgPSAodWludDMyX3QpKHgzNyAmIFVJTlQz
Ml9DKDB4MWZmZmZmZikpOworICB1aW50MzJfdCB4NDAgPSAoeDM4ICogKHVpbnQzMl90KVVJTlQ4
X0MoMHgxMykpOworICB1aW50MzJfdCB4NDEgPSAoeDEyICsgeDQwKTsKKyAgdWludDMyX3QgeDQy
ID0gKHg0MSA+PiAyNik7CisgIHVpbnQzMl90IHg0MyA9ICh4NDEgJiBVSU5UMzJfQygweDNmZmZm
ZmYpKTsKKyAgdWludDMyX3QgeDQ0ID0gKHg0MiArIHgxNSk7CisgIHVpbnQzMl90IHg0NSA9ICh4
NDQgPj4gMjUpOworICB1aW50MzJfdCB4NDYgPSAoeDQ0ICYgVUlOVDMyX0MoMHgxZmZmZmZmKSk7
CisgIHVpbnQzMl90IHg0NyA9ICh4NDUgKyB4MTgpOworICBvdXQxWzBdID0geDQzOworICBvdXQx
WzFdID0geDQ2OworICBvdXQxWzJdID0geDQ3OworICBvdXQxWzNdID0geDIxOworICBvdXQxWzRd
ID0geDI0OworICBvdXQxWzVdID0geDI3OworICBvdXQxWzZdID0geDMwOworICBvdXQxWzddID0g
eDMzOworICBvdXQxWzhdID0geDM2OworICBvdXQxWzldID0geDM5OworfQorCisvKgorICogSW5w
dXQgQm91bmRzOgorICogICBhcmcxOiBbWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5
OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5OTldLCBbMHgwIH4+IDB4
ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5OTk5XSwgWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+
IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5OTldXQorICog
T3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAw
eDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+
PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10sIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4
MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXV0K
KyAqLworc3RhdGljIHZvaWQgZmlhdF8yNTUxOV9jYXJyeSh1aW50MzJfdCBvdXQxWzEwXSwgY29u
c3QgdWludDMyX3QgYXJnMVsxMF0pIHsKKyAgdWludDMyX3QgeDEgPSAoYXJnMVswXSk7CisgIHVp
bnQzMl90IHgyID0gKCh4MSA+PiAyNikgKyAoYXJnMVsxXSkpOworICB1aW50MzJfdCB4MyA9ICgo
eDIgPj4gMjUpICsgKGFyZzFbMl0pKTsKKyAgdWludDMyX3QgeDQgPSAoKHgzID4+IDI2KSArIChh
cmcxWzNdKSk7CisgIHVpbnQzMl90IHg1ID0gKCh4NCA+PiAyNSkgKyAoYXJnMVs0XSkpOworICB1
aW50MzJfdCB4NiA9ICgoeDUgPj4gMjYpICsgKGFyZzFbNV0pKTsKKyAgdWludDMyX3QgeDcgPSAo
KHg2ID4+IDI1KSArIChhcmcxWzZdKSk7CisgIHVpbnQzMl90IHg4ID0gKCh4NyA+PiAyNikgKyAo
YXJnMVs3XSkpOworICB1aW50MzJfdCB4OSA9ICgoeDggPj4gMjUpICsgKGFyZzFbOF0pKTsKKyAg
dWludDMyX3QgeDEwID0gKCh4OSA+PiAyNikgKyAoYXJnMVs5XSkpOworICB1aW50MzJfdCB4MTEg
PSAoKHgxICYgVUlOVDMyX0MoMHgzZmZmZmZmKSkgKyAoKHgxMCA+PiAyNSkgKiAodWludDMyX3Qp
VUlOVDhfQygweDEzKSkpOworICB1aW50MzJfdCB4MTIgPSAoKHgxMSA+PiAyNikgKyAoeDIgJiBV
SU5UMzJfQygweDFmZmZmZmYpKSk7CisgIHVpbnQzMl90IHgxMyA9ICh4MTEgJiBVSU5UMzJfQygw
eDNmZmZmZmYpKTsKKyAgdWludDMyX3QgeDE0ID0gKHgxMiAmIFVJTlQzMl9DKDB4MWZmZmZmZikp
OworICB1aW50MzJfdCB4MTUgPSAoKHgxMiA+PiAyNSkgKyAoeDMgJiBVSU5UMzJfQygweDNmZmZm
ZmYpKSk7CisgIHVpbnQzMl90IHgxNiA9ICh4NCAmIFVJTlQzMl9DKDB4MWZmZmZmZikpOworICB1
aW50MzJfdCB4MTcgPSAoeDUgJiBVSU5UMzJfQygweDNmZmZmZmYpKTsKKyAgdWludDMyX3QgeDE4
ID0gKHg2ICYgVUlOVDMyX0MoMHgxZmZmZmZmKSk7CisgIHVpbnQzMl90IHgxOSA9ICh4NyAmIFVJ
TlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50MzJfdCB4MjAgPSAoeDggJiBVSU5UMzJfQygweDFm
ZmZmZmYpKTsKKyAgdWludDMyX3QgeDIxID0gKHg5ICYgVUlOVDMyX0MoMHgzZmZmZmZmKSk7Cisg
IHVpbnQzMl90IHgyMiA9ICh4MTAgJiBVSU5UMzJfQygweDFmZmZmZmYpKTsKKyAgb3V0MVswXSA9
IHgxMzsKKyAgb3V0MVsxXSA9IHgxNDsKKyAgb3V0MVsyXSA9IHgxNTsKKyAgb3V0MVszXSA9IHgx
NjsKKyAgb3V0MVs0XSA9IHgxNzsKKyAgb3V0MVs1XSA9IHgxODsKKyAgb3V0MVs2XSA9IHgxOTsK
KyAgb3V0MVs3XSA9IHgyMDsKKyAgb3V0MVs4XSA9IHgyMTsKKyAgb3V0MVs5XSA9IHgyMjsKK30K
KworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHg0NjY2NjY2XSwg
WzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMz
XSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10sIFsweDAgfj4gMHg0NjY2
NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgy
MzMzMzMzXV0KKyAqICAgYXJnMjogW1sweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMz
MzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2
NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10sIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAw
eDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXV0KKyAqIE91
dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2
OTk5OTk5XSwgWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4g
MHhkMzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAg
fj4gMHg2OTk5OTk5XSwgWzB4MCB+PiAweGQzMzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV1dCisg
Ki8KK3N0YXRpYyB2b2lkIGZpYXRfMjU1MTlfYWRkKHVpbnQzMl90IG91dDFbMTBdLCBjb25zdCB1
aW50MzJfdCBhcmcxWzEwXSwgY29uc3QgdWludDMyX3QgYXJnMlsxMF0pIHsKKyAgdWludDMyX3Qg
eDEgPSAoKGFyZzFbMF0pICsgKGFyZzJbMF0pKTsKKyAgdWludDMyX3QgeDIgPSAoKGFyZzFbMV0p
ICsgKGFyZzJbMV0pKTsKKyAgdWludDMyX3QgeDMgPSAoKGFyZzFbMl0pICsgKGFyZzJbMl0pKTsK
KyAgdWludDMyX3QgeDQgPSAoKGFyZzFbM10pICsgKGFyZzJbM10pKTsKKyAgdWludDMyX3QgeDUg
PSAoKGFyZzFbNF0pICsgKGFyZzJbNF0pKTsKKyAgdWludDMyX3QgeDYgPSAoKGFyZzFbNV0pICsg
KGFyZzJbNV0pKTsKKyAgdWludDMyX3QgeDcgPSAoKGFyZzFbNl0pICsgKGFyZzJbNl0pKTsKKyAg
dWludDMyX3QgeDggPSAoKGFyZzFbN10pICsgKGFyZzJbN10pKTsKKyAgdWludDMyX3QgeDkgPSAo
KGFyZzFbOF0pICsgKGFyZzJbOF0pKTsKKyAgdWludDMyX3QgeDEwID0gKChhcmcxWzldKSArIChh
cmcyWzldKSk7CisgIG91dDFbMF0gPSB4MTsKKyAgb3V0MVsxXSA9IHgyOworICBvdXQxWzJdID0g
eDM7CisgIG91dDFbM10gPSB4NDsKKyAgb3V0MVs0XSA9IHg1OworICBvdXQxWzVdID0geDY7Cisg
IG91dDFbNl0gPSB4NzsKKyAgb3V0MVs3XSA9IHg4OworICBvdXQxWzhdID0geDk7CisgIG91dDFb
OV0gPSB4MTA7Cit9CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAgIGFyZzE6IFtbMHgwIH4+
IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgw
IH4+IDB4MjMzMzMzM10sIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBb
MHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZd
LCBbMHgwIH4+IDB4MjMzMzMzM11dCisgKiAgIGFyZzI6IFtbMHgwIH4+IDB4NDY2NjY2Nl0sIFsw
eDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10s
IFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2
Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMz
MzMzM11dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4MCB+PiAweGQzMzMzMzJd
LCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5
OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5OTk5XSwgWzB4MCB+PiAweGQz
MzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAw
eDY5OTk5OTldXQorICovCitzdGF0aWMgdm9pZCBmaWF0XzI1NTE5X3N1Yih1aW50MzJfdCBvdXQx
WzEwXSwgY29uc3QgdWludDMyX3QgYXJnMVsxMF0sIGNvbnN0IHVpbnQzMl90IGFyZzJbMTBdKSB7
CisgIHVpbnQzMl90IHgxID0gKChVSU5UMzJfQygweDdmZmZmZGEpICsgKGFyZzFbMF0pKSAtIChh
cmcyWzBdKSk7CisgIHVpbnQzMl90IHgyID0gKChVSU5UMzJfQygweDNmZmZmZmUpICsgKGFyZzFb
MV0pKSAtIChhcmcyWzFdKSk7CisgIHVpbnQzMl90IHgzID0gKChVSU5UMzJfQygweDdmZmZmZmUp
ICsgKGFyZzFbMl0pKSAtIChhcmcyWzJdKSk7CisgIHVpbnQzMl90IHg0ID0gKChVSU5UMzJfQygw
eDNmZmZmZmUpICsgKGFyZzFbM10pKSAtIChhcmcyWzNdKSk7CisgIHVpbnQzMl90IHg1ID0gKChV
SU5UMzJfQygweDdmZmZmZmUpICsgKGFyZzFbNF0pKSAtIChhcmcyWzRdKSk7CisgIHVpbnQzMl90
IHg2ID0gKChVSU5UMzJfQygweDNmZmZmZmUpICsgKGFyZzFbNV0pKSAtIChhcmcyWzVdKSk7Cisg
IHVpbnQzMl90IHg3ID0gKChVSU5UMzJfQygweDdmZmZmZmUpICsgKGFyZzFbNl0pKSAtIChhcmcy
WzZdKSk7CisgIHVpbnQzMl90IHg4ID0gKChVSU5UMzJfQygweDNmZmZmZmUpICsgKGFyZzFbN10p
KSAtIChhcmcyWzddKSk7CisgIHVpbnQzMl90IHg5ID0gKChVSU5UMzJfQygweDdmZmZmZmUpICsg
KGFyZzFbOF0pKSAtIChhcmcyWzhdKSk7CisgIHVpbnQzMl90IHgxMCA9ICgoVUlOVDMyX0MoMHgz
ZmZmZmZlKSArIChhcmcxWzldKSkgLSAoYXJnMls5XSkpOworICBvdXQxWzBdID0geDE7CisgIG91
dDFbMV0gPSB4MjsKKyAgb3V0MVsyXSA9IHgzOworICBvdXQxWzNdID0geDQ7CisgIG91dDFbNF0g
PSB4NTsKKyAgb3V0MVs1XSA9IHg2OworICBvdXQxWzZdID0geDc7CisgIG91dDFbN10gPSB4ODsK
KyAgb3V0MVs4XSA9IHg5OworICBvdXQxWzldID0geDEwOworfQorCisvKgorICogSW5wdXQgQm91
bmRzOgorICogICBhcmcxOiBbWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10s
IFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2
Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMz
MzMzM10sIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdXQorICogT3V0cHV0
IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAweDY5OTk5
OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5OTk5XSwgWzB4MCB+PiAweGQz
MzMzMzJdLCBbMHgwIH4+IDB4Njk5OTk5OV0sIFsweDAgfj4gMHhkMzMzMzMyXSwgWzB4MCB+PiAw
eDY5OTk5OTldLCBbMHgwIH4+IDB4ZDMzMzMzMl0sIFsweDAgfj4gMHg2OTk5OTk5XV0KKyAqLwor
c3RhdGljIHZvaWQgZmlhdF8yNTUxOV9vcHAodWludDMyX3Qgb3V0MVsxMF0sIGNvbnN0IHVpbnQz
Ml90IGFyZzFbMTBdKSB7CisgIHVpbnQzMl90IHgxID0gKFVJTlQzMl9DKDB4N2ZmZmZkYSkgLSAo
YXJnMVswXSkpOworICB1aW50MzJfdCB4MiA9IChVSU5UMzJfQygweDNmZmZmZmUpIC0gKGFyZzFb
MV0pKTsKKyAgdWludDMyX3QgeDMgPSAoVUlOVDMyX0MoMHg3ZmZmZmZlKSAtIChhcmcxWzJdKSk7
CisgIHVpbnQzMl90IHg0ID0gKFVJTlQzMl9DKDB4M2ZmZmZmZSkgLSAoYXJnMVszXSkpOworICB1
aW50MzJfdCB4NSA9IChVSU5UMzJfQygweDdmZmZmZmUpIC0gKGFyZzFbNF0pKTsKKyAgdWludDMy
X3QgeDYgPSAoVUlOVDMyX0MoMHgzZmZmZmZlKSAtIChhcmcxWzVdKSk7CisgIHVpbnQzMl90IHg3
ID0gKFVJTlQzMl9DKDB4N2ZmZmZmZSkgLSAoYXJnMVs2XSkpOworICB1aW50MzJfdCB4OCA9IChV
SU5UMzJfQygweDNmZmZmZmUpIC0gKGFyZzFbN10pKTsKKyAgdWludDMyX3QgeDkgPSAoVUlOVDMy
X0MoMHg3ZmZmZmZlKSAtIChhcmcxWzhdKSk7CisgIHVpbnQzMl90IHgxMCA9IChVSU5UMzJfQygw
eDNmZmZmZmUpIC0gKGFyZzFbOV0pKTsKKyAgb3V0MVswXSA9IHgxOworICBvdXQxWzFdID0geDI7
CisgIG91dDFbMl0gPSB4MzsKKyAgb3V0MVszXSA9IHg0OworICBvdXQxWzRdID0geDU7CisgIG91
dDFbNV0gPSB4NjsKKyAgb3V0MVs2XSA9IHg3OworICBvdXQxWzddID0geDg7CisgIG91dDFbOF0g
PSB4OTsKKyAgb3V0MVs5XSA9IHgxMDsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAg
YXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFtbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgw
IH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZd
LCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZm
ZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+
IDB4ZmZmZmZmZmZdXQorICogICBhcmczOiBbWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAw
eGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4
MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZm
XSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZm
ZmZmZmZmXV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4ZmZmZmZm
ZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4
ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgw
IH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZd
LCBbMHgwIH4+IDB4ZmZmZmZmZmZdXQorICovCitzdGF0aWMgdm9pZCBmaWF0XzI1NTE5X3NlbGVj
dHpueih1aW50MzJfdCBvdXQxWzEwXSwgZmlhdF8yNTUxOV91aW50MSBhcmcxLCBjb25zdCB1aW50
MzJfdCBhcmcyWzEwXSwgY29uc3QgdWludDMyX3QgYXJnM1sxMF0pIHsKKyAgdWludDMyX3QgeDE7
CisgIGZpYXRfMjU1MTlfY21vdnpuel91MzIoJngxLCBhcmcxLCAoYXJnMlswXSksIChhcmczWzBd
KSk7CisgIHVpbnQzMl90IHgyOworICBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTMyKCZ4MiwgYXJnMSwg
KGFyZzJbMV0pLCAoYXJnM1sxXSkpOworICB1aW50MzJfdCB4MzsKKyAgZmlhdF8yNTUxOV9jbW92
em56X3UzMigmeDMsIGFyZzEsIChhcmcyWzJdKSwgKGFyZzNbMl0pKTsKKyAgdWludDMyX3QgeDQ7
CisgIGZpYXRfMjU1MTlfY21vdnpuel91MzIoJng0LCBhcmcxLCAoYXJnMlszXSksIChhcmczWzNd
KSk7CisgIHVpbnQzMl90IHg1OworICBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTMyKCZ4NSwgYXJnMSwg
KGFyZzJbNF0pLCAoYXJnM1s0XSkpOworICB1aW50MzJfdCB4NjsKKyAgZmlhdF8yNTUxOV9jbW92
em56X3UzMigmeDYsIGFyZzEsIChhcmcyWzVdKSwgKGFyZzNbNV0pKTsKKyAgdWludDMyX3QgeDc7
CisgIGZpYXRfMjU1MTlfY21vdnpuel91MzIoJng3LCBhcmcxLCAoYXJnMls2XSksIChhcmczWzZd
KSk7CisgIHVpbnQzMl90IHg4OworICBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTMyKCZ4OCwgYXJnMSwg
KGFyZzJbN10pLCAoYXJnM1s3XSkpOworICB1aW50MzJfdCB4OTsKKyAgZmlhdF8yNTUxOV9jbW92
em56X3UzMigmeDksIGFyZzEsIChhcmcyWzhdKSwgKGFyZzNbOF0pKTsKKyAgdWludDMyX3QgeDEw
OworICBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTMyKCZ4MTAsIGFyZzEsIChhcmcyWzldKSwgKGFyZzNb
OV0pKTsKKyAgb3V0MVswXSA9IHgxOworICBvdXQxWzFdID0geDI7CisgIG91dDFbMl0gPSB4MzsK
KyAgb3V0MVszXSA9IHg0OworICBvdXQxWzRdID0geDU7CisgIG91dDFbNV0gPSB4NjsKKyAgb3V0
MVs2XSA9IHg3OworICBvdXQxWzddID0geDg7CisgIG91dDFbOF0gPSB4OTsKKyAgb3V0MVs5XSA9
IHgxMDsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHg0
NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4g
MHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBbMHgwIH4+IDB4MjMzMzMzM10sIFsweDAg
fj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsw
eDAgfj4gMHgyMzMzMzMzXV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+
IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgw
IH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBb
MHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZd
LCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4
ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+
IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgw
IH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBb
MHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZd
LCBbMHgwIH4+IDB4N2ZdXQorICovCitzdGF0aWMgdm9pZCBmaWF0XzI1NTE5X3RvX2J5dGVzKHVp
bnQ4X3Qgb3V0MVszMl0sIGNvbnN0IHVpbnQzMl90IGFyZzFbMTBdKSB7CisgIHVpbnQzMl90IHgx
OworICBmaWF0XzI1NTE5X3VpbnQxIHgyOworICBmaWF0XzI1NTE5X3N1YmJvcnJvd3hfdTI2KCZ4
MSwgJngyLCAweDAsIChhcmcxWzBdKSwgVUlOVDMyX0MoMHgzZmZmZmVkKSk7CisgIHVpbnQzMl90
IHgzOworICBmaWF0XzI1NTE5X3VpbnQxIHg0OworICBmaWF0XzI1NTE5X3N1YmJvcnJvd3hfdTI1
KCZ4MywgJng0LCB4MiwgKGFyZzFbMV0pLCBVSU5UMzJfQygweDFmZmZmZmYpKTsKKyAgdWludDMy
X3QgeDU7CisgIGZpYXRfMjU1MTlfdWludDEgeDY7CisgIGZpYXRfMjU1MTlfc3ViYm9ycm93eF91
MjYoJng1LCAmeDYsIHg0LCAoYXJnMVsyXSksIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50
MzJfdCB4NzsKKyAgZmlhdF8yNTUxOV91aW50MSB4ODsKKyAgZmlhdF8yNTUxOV9zdWJib3Jyb3d4
X3UyNSgmeDcsICZ4OCwgeDYsIChhcmcxWzNdKSwgVUlOVDMyX0MoMHgxZmZmZmZmKSk7CisgIHVp
bnQzMl90IHg5OworICBmaWF0XzI1NTE5X3VpbnQxIHgxMDsKKyAgZmlhdF8yNTUxOV9zdWJib3Jy
b3d4X3UyNigmeDksICZ4MTAsIHg4LCAoYXJnMVs0XSksIFVJTlQzMl9DKDB4M2ZmZmZmZikpOwor
ICB1aW50MzJfdCB4MTE7CisgIGZpYXRfMjU1MTlfdWludDEgeDEyOworICBmaWF0XzI1NTE5X3N1
YmJvcnJvd3hfdTI1KCZ4MTEsICZ4MTIsIHgxMCwgKGFyZzFbNV0pLCBVSU5UMzJfQygweDFmZmZm
ZmYpKTsKKyAgdWludDMyX3QgeDEzOworICBmaWF0XzI1NTE5X3VpbnQxIHgxNDsKKyAgZmlhdF8y
NTUxOV9zdWJib3Jyb3d4X3UyNigmeDEzLCAmeDE0LCB4MTIsIChhcmcxWzZdKSwgVUlOVDMyX0Mo
MHgzZmZmZmZmKSk7CisgIHVpbnQzMl90IHgxNTsKKyAgZmlhdF8yNTUxOV91aW50MSB4MTY7Cisg
IGZpYXRfMjU1MTlfc3ViYm9ycm93eF91MjUoJngxNSwgJngxNiwgeDE0LCAoYXJnMVs3XSksIFVJ
TlQzMl9DKDB4MWZmZmZmZikpOworICB1aW50MzJfdCB4MTc7CisgIGZpYXRfMjU1MTlfdWludDEg
eDE4OworICBmaWF0XzI1NTE5X3N1YmJvcnJvd3hfdTI2KCZ4MTcsICZ4MTgsIHgxNiwgKGFyZzFb
OF0pLCBVSU5UMzJfQygweDNmZmZmZmYpKTsKKyAgdWludDMyX3QgeDE5OworICBmaWF0XzI1NTE5
X3VpbnQxIHgyMDsKKyAgZmlhdF8yNTUxOV9zdWJib3Jyb3d4X3UyNSgmeDE5LCAmeDIwLCB4MTgs
IChhcmcxWzldKSwgVUlOVDMyX0MoMHgxZmZmZmZmKSk7CisgIHVpbnQzMl90IHgyMTsKKyAgZmlh
dF8yNTUxOV9jbW92em56X3UzMigmeDIxLCB4MjAsIDB4MCwgVUlOVDMyX0MoMHhmZmZmZmZmZikp
OworICB1aW50MzJfdCB4MjI7CisgIGZpYXRfMjU1MTlfdWludDEgeDIzOworICBmaWF0XzI1NTE5
X2FkZGNhcnJ5eF91MjYoJngyMiwgJngyMywgMHgwLCAoeDIxICYgVUlOVDMyX0MoMHgzZmZmZmVk
KSksIHgxKTsKKyAgdWludDMyX3QgeDI0OworICBmaWF0XzI1NTE5X3VpbnQxIHgyNTsKKyAgZmlh
dF8yNTUxOV9hZGRjYXJyeXhfdTI1KCZ4MjQsICZ4MjUsIHgyMywgKHgyMSAmIFVJTlQzMl9DKDB4
MWZmZmZmZikpLCB4Myk7CisgIHVpbnQzMl90IHgyNjsKKyAgZmlhdF8yNTUxOV91aW50MSB4Mjc7
CisgIGZpYXRfMjU1MTlfYWRkY2Fycnl4X3UyNigmeDI2LCAmeDI3LCB4MjUsICh4MjEgJiBVSU5U
MzJfQygweDNmZmZmZmYpKSwgeDUpOworICB1aW50MzJfdCB4Mjg7CisgIGZpYXRfMjU1MTlfdWlu
dDEgeDI5OworICBmaWF0XzI1NTE5X2FkZGNhcnJ5eF91MjUoJngyOCwgJngyOSwgeDI3LCAoeDIx
ICYgVUlOVDMyX0MoMHgxZmZmZmZmKSksIHg3KTsKKyAgdWludDMyX3QgeDMwOworICBmaWF0XzI1
NTE5X3VpbnQxIHgzMTsKKyAgZmlhdF8yNTUxOV9hZGRjYXJyeXhfdTI2KCZ4MzAsICZ4MzEsIHgy
OSwgKHgyMSAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpLCB4OSk7CisgIHVpbnQzMl90IHgzMjsKKyAg
ZmlhdF8yNTUxOV91aW50MSB4MzM7CisgIGZpYXRfMjU1MTlfYWRkY2Fycnl4X3UyNSgmeDMyLCAm
eDMzLCB4MzEsICh4MjEgJiBVSU5UMzJfQygweDFmZmZmZmYpKSwgeDExKTsKKyAgdWludDMyX3Qg
eDM0OworICBmaWF0XzI1NTE5X3VpbnQxIHgzNTsKKyAgZmlhdF8yNTUxOV9hZGRjYXJyeXhfdTI2
KCZ4MzQsICZ4MzUsIHgzMywgKHgyMSAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpLCB4MTMpOworICB1
aW50MzJfdCB4MzY7CisgIGZpYXRfMjU1MTlfdWludDEgeDM3OworICBmaWF0XzI1NTE5X2FkZGNh
cnJ5eF91MjUoJngzNiwgJngzNywgeDM1LCAoeDIxICYgVUlOVDMyX0MoMHgxZmZmZmZmKSksIHgx
NSk7CisgIHVpbnQzMl90IHgzODsKKyAgZmlhdF8yNTUxOV91aW50MSB4Mzk7CisgIGZpYXRfMjU1
MTlfYWRkY2Fycnl4X3UyNigmeDM4LCAmeDM5LCB4MzcsICh4MjEgJiBVSU5UMzJfQygweDNmZmZm
ZmYpKSwgeDE3KTsKKyAgdWludDMyX3QgeDQwOworICBmaWF0XzI1NTE5X3VpbnQxIHg0MTsKKyAg
ZmlhdF8yNTUxOV9hZGRjYXJyeXhfdTI1KCZ4NDAsICZ4NDEsIHgzOSwgKHgyMSAmIFVJTlQzMl9D
KDB4MWZmZmZmZikpLCB4MTkpOworICB1aW50MzJfdCB4NDIgPSAoeDQwIDw8IDYpOworICB1aW50
MzJfdCB4NDMgPSAoeDM4IDw8IDQpOworICB1aW50MzJfdCB4NDQgPSAoeDM2IDw8IDMpOworICB1
aW50MzJfdCB4NDUgPSAoeDM0ICogKHVpbnQzMl90KTB4Mik7CisgIHVpbnQzMl90IHg0NiA9ICh4
MzAgPDwgNik7CisgIHVpbnQzMl90IHg0NyA9ICh4MjggPDwgNSk7CisgIHVpbnQzMl90IHg0OCA9
ICh4MjYgPDwgMyk7CisgIHVpbnQzMl90IHg0OSA9ICh4MjQgPDwgMik7CisgIHVpbnQzMl90IHg1
MCA9ICh4MjIgPj4gOCk7CisgIHVpbnQ4X3QgeDUxID0gKHVpbnQ4X3QpKHgyMiAmIFVJTlQ4X0Mo
MHhmZikpOworICB1aW50MzJfdCB4NTIgPSAoeDUwID4+IDgpOworICB1aW50OF90IHg1MyA9ICh1
aW50OF90KSh4NTAgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4NTQgPSAodWludDhfdCko
eDUyID4+IDgpOworICB1aW50OF90IHg1NSA9ICh1aW50OF90KSh4NTIgJiBVSU5UOF9DKDB4ZmYp
KTsKKyAgdWludDMyX3QgeDU2ID0gKHg1NCArIHg0OSk7CisgIHVpbnQzMl90IHg1NyA9ICh4NTYg
Pj4gOCk7CisgIHVpbnQ4X3QgeDU4ID0gKHVpbnQ4X3QpKHg1NiAmIFVJTlQ4X0MoMHhmZikpOwor
ICB1aW50MzJfdCB4NTkgPSAoeDU3ID4+IDgpOworICB1aW50OF90IHg2MCA9ICh1aW50OF90KSh4
NTcgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4NjEgPSAodWludDhfdCkoeDU5ID4+IDgp
OworICB1aW50OF90IHg2MiA9ICh1aW50OF90KSh4NTkgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWlu
dDMyX3QgeDYzID0gKHg2MSArIHg0OCk7CisgIHVpbnQzMl90IHg2NCA9ICh4NjMgPj4gOCk7Cisg
IHVpbnQ4X3QgeDY1ID0gKHVpbnQ4X3QpKHg2MyAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJf
dCB4NjYgPSAoeDY0ID4+IDgpOworICB1aW50OF90IHg2NyA9ICh1aW50OF90KSh4NjQgJiBVSU5U
OF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4NjggPSAodWludDhfdCkoeDY2ID4+IDgpOworICB1aW50
OF90IHg2OSA9ICh1aW50OF90KSh4NjYgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDcw
ID0gKHg2OCArIHg0Nyk7CisgIHVpbnQzMl90IHg3MSA9ICh4NzAgPj4gOCk7CisgIHVpbnQ4X3Qg
eDcyID0gKHVpbnQ4X3QpKHg3MCAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJfdCB4NzMgPSAo
eDcxID4+IDgpOworICB1aW50OF90IHg3NCA9ICh1aW50OF90KSh4NzEgJiBVSU5UOF9DKDB4ZmYp
KTsKKyAgdWludDhfdCB4NzUgPSAodWludDhfdCkoeDczID4+IDgpOworICB1aW50OF90IHg3NiA9
ICh1aW50OF90KSh4NzMgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDc3ID0gKHg3NSAr
IHg0Nik7CisgIHVpbnQzMl90IHg3OCA9ICh4NzcgPj4gOCk7CisgIHVpbnQ4X3QgeDc5ID0gKHVp
bnQ4X3QpKHg3NyAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJfdCB4ODAgPSAoeDc4ID4+IDgp
OworICB1aW50OF90IHg4MSA9ICh1aW50OF90KSh4NzggJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWlu
dDhfdCB4ODIgPSAodWludDhfdCkoeDgwID4+IDgpOworICB1aW50OF90IHg4MyA9ICh1aW50OF90
KSh4ODAgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4ODQgPSAodWludDhfdCkoeDgyICYg
VUlOVDhfQygweGZmKSk7CisgIHVpbnQzMl90IHg4NSA9ICh4MzIgPj4gOCk7CisgIHVpbnQ4X3Qg
eDg2ID0gKHVpbnQ4X3QpKHgzMiAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJfdCB4ODcgPSAo
eDg1ID4+IDgpOworICB1aW50OF90IHg4OCA9ICh1aW50OF90KSh4ODUgJiBVSU5UOF9DKDB4ZmYp
KTsKKyAgZmlhdF8yNTUxOV91aW50MSB4ODkgPSAoZmlhdF8yNTUxOV91aW50MSkoeDg3ID4+IDgp
OworICB1aW50OF90IHg5MCA9ICh1aW50OF90KSh4ODcgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWlu
dDMyX3QgeDkxID0gKHg4OSArIHg0NSk7CisgIHVpbnQzMl90IHg5MiA9ICh4OTEgPj4gOCk7Cisg
IHVpbnQ4X3QgeDkzID0gKHVpbnQ4X3QpKHg5MSAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJf
dCB4OTQgPSAoeDkyID4+IDgpOworICB1aW50OF90IHg5NSA9ICh1aW50OF90KSh4OTIgJiBVSU5U
OF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4OTYgPSAodWludDhfdCkoeDk0ID4+IDgpOworICB1aW50
OF90IHg5NyA9ICh1aW50OF90KSh4OTQgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDk4
ID0gKHg5NiArIHg0NCk7CisgIHVpbnQzMl90IHg5OSA9ICh4OTggPj4gOCk7CisgIHVpbnQ4X3Qg
eDEwMCA9ICh1aW50OF90KSh4OTggJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDEwMSA9
ICh4OTkgPj4gOCk7CisgIHVpbnQ4X3QgeDEwMiA9ICh1aW50OF90KSh4OTkgJiBVSU5UOF9DKDB4
ZmYpKTsKKyAgdWludDhfdCB4MTAzID0gKHVpbnQ4X3QpKHgxMDEgPj4gOCk7CisgIHVpbnQ4X3Qg
eDEwNCA9ICh1aW50OF90KSh4MTAxICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQzMl90IHgxMDUg
PSAoeDEwMyArIHg0Myk7CisgIHVpbnQzMl90IHgxMDYgPSAoeDEwNSA+PiA4KTsKKyAgdWludDhf
dCB4MTA3ID0gKHVpbnQ4X3QpKHgxMDUgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDEw
OCA9ICh4MTA2ID4+IDgpOworICB1aW50OF90IHgxMDkgPSAodWludDhfdCkoeDEwNiAmIFVJTlQ4
X0MoMHhmZikpOworICB1aW50OF90IHgxMTAgPSAodWludDhfdCkoeDEwOCA+PiA4KTsKKyAgdWlu
dDhfdCB4MTExID0gKHVpbnQ4X3QpKHgxMDggJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3Qg
eDExMiA9ICh4MTEwICsgeDQyKTsKKyAgdWludDMyX3QgeDExMyA9ICh4MTEyID4+IDgpOworICB1
aW50OF90IHgxMTQgPSAodWludDhfdCkoeDExMiAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJf
dCB4MTE1ID0gKHgxMTMgPj4gOCk7CisgIHVpbnQ4X3QgeDExNiA9ICh1aW50OF90KSh4MTEzICYg
VUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3QgeDExNyA9ICh1aW50OF90KSh4MTE1ID4+IDgpOwor
ICB1aW50OF90IHgxMTggPSAodWludDhfdCkoeDExNSAmIFVJTlQ4X0MoMHhmZikpOworICBvdXQx
WzBdID0geDUxOworICBvdXQxWzFdID0geDUzOworICBvdXQxWzJdID0geDU1OworICBvdXQxWzNd
ID0geDU4OworICBvdXQxWzRdID0geDYwOworICBvdXQxWzVdID0geDYyOworICBvdXQxWzZdID0g
eDY1OworICBvdXQxWzddID0geDY3OworICBvdXQxWzhdID0geDY5OworICBvdXQxWzldID0geDcy
OworICBvdXQxWzEwXSA9IHg3NDsKKyAgb3V0MVsxMV0gPSB4NzY7CisgIG91dDFbMTJdID0geDc5
OworICBvdXQxWzEzXSA9IHg4MTsKKyAgb3V0MVsxNF0gPSB4ODM7CisgIG91dDFbMTVdID0geDg0
OworICBvdXQxWzE2XSA9IHg4NjsKKyAgb3V0MVsxN10gPSB4ODg7CisgIG91dDFbMThdID0geDkw
OworICBvdXQxWzE5XSA9IHg5MzsKKyAgb3V0MVsyMF0gPSB4OTU7CisgIG91dDFbMjFdID0geDk3
OworICBvdXQxWzIyXSA9IHgxMDA7CisgIG91dDFbMjNdID0geDEwMjsKKyAgb3V0MVsyNF0gPSB4
MTA0OworICBvdXQxWzI1XSA9IHgxMDc7CisgIG91dDFbMjZdID0geDEwOTsKKyAgb3V0MVsyN10g
PSB4MTExOworICBvdXQxWzI4XSA9IHgxMTQ7CisgIG91dDFbMjldID0geDExNjsKKyAgb3V0MVsz
MF0gPSB4MTE4OworICBvdXQxWzMxXSA9IHgxMTc7Cit9CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6
CisgKiAgIGFyZzE6IFtbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZd
LCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4
ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+
IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgw
IH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBb
MHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZd
LCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4
ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+
IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4N2ZdXQorICogT3V0cHV0IEJvdW5kczoK
KyAqICAgb3V0MTogW1sweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNdLCBbMHgw
IH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXSwgWzB4MCB+PiAweDQ2NjY2NjZdLCBb
MHgwIH4+IDB4MjMzMzMzM10sIFsweDAgfj4gMHg0NjY2NjY2XSwgWzB4MCB+PiAweDIzMzMzMzNd
LCBbMHgwIH4+IDB4NDY2NjY2Nl0sIFsweDAgfj4gMHgyMzMzMzMzXV0KKyAqLworc3RhdGljIHZv
aWQgZmlhdF8yNTUxOV9mcm9tX2J5dGVzKHVpbnQzMl90IG91dDFbMTBdLCBjb25zdCB1aW50OF90
IGFyZzFbMzJdKSB7CisgIHVpbnQzMl90IHgxID0gKCh1aW50MzJfdCkoYXJnMVszMV0pIDw8IDE4
KTsKKyAgdWludDMyX3QgeDIgPSAoKHVpbnQzMl90KShhcmcxWzMwXSkgPDwgMTApOworICB1aW50
MzJfdCB4MyA9ICgodWludDMyX3QpKGFyZzFbMjldKSA8PCAyKTsKKyAgdWludDMyX3QgeDQgPSAo
KHVpbnQzMl90KShhcmcxWzI4XSkgPDwgMjApOworICB1aW50MzJfdCB4NSA9ICgodWludDMyX3Qp
KGFyZzFbMjddKSA8PCAxMik7CisgIHVpbnQzMl90IHg2ID0gKCh1aW50MzJfdCkoYXJnMVsyNl0p
IDw8IDQpOworICB1aW50MzJfdCB4NyA9ICgodWludDMyX3QpKGFyZzFbMjVdKSA8PCAyMSk7Cisg
IHVpbnQzMl90IHg4ID0gKCh1aW50MzJfdCkoYXJnMVsyNF0pIDw8IDEzKTsKKyAgdWludDMyX3Qg
eDkgPSAoKHVpbnQzMl90KShhcmcxWzIzXSkgPDwgNSk7CisgIHVpbnQzMl90IHgxMCA9ICgodWlu
dDMyX3QpKGFyZzFbMjJdKSA8PCAyMyk7CisgIHVpbnQzMl90IHgxMSA9ICgodWludDMyX3QpKGFy
ZzFbMjFdKSA8PCAxNSk7CisgIHVpbnQzMl90IHgxMiA9ICgodWludDMyX3QpKGFyZzFbMjBdKSA8
PCA3KTsKKyAgdWludDMyX3QgeDEzID0gKCh1aW50MzJfdCkoYXJnMVsxOV0pIDw8IDI0KTsKKyAg
dWludDMyX3QgeDE0ID0gKCh1aW50MzJfdCkoYXJnMVsxOF0pIDw8IDE2KTsKKyAgdWludDMyX3Qg
eDE1ID0gKCh1aW50MzJfdCkoYXJnMVsxN10pIDw8IDgpOworICB1aW50OF90IHgxNiA9IChhcmcx
WzE2XSk7CisgIHVpbnQzMl90IHgxNyA9ICgodWludDMyX3QpKGFyZzFbMTVdKSA8PCAxOCk7Cisg
IHVpbnQzMl90IHgxOCA9ICgodWludDMyX3QpKGFyZzFbMTRdKSA8PCAxMCk7CisgIHVpbnQzMl90
IHgxOSA9ICgodWludDMyX3QpKGFyZzFbMTNdKSA8PCAyKTsKKyAgdWludDMyX3QgeDIwID0gKCh1
aW50MzJfdCkoYXJnMVsxMl0pIDw8IDE5KTsKKyAgdWludDMyX3QgeDIxID0gKCh1aW50MzJfdCko
YXJnMVsxMV0pIDw8IDExKTsKKyAgdWludDMyX3QgeDIyID0gKCh1aW50MzJfdCkoYXJnMVsxMF0p
IDw8IDMpOworICB1aW50MzJfdCB4MjMgPSAoKHVpbnQzMl90KShhcmcxWzldKSA8PCAyMSk7Cisg
IHVpbnQzMl90IHgyNCA9ICgodWludDMyX3QpKGFyZzFbOF0pIDw8IDEzKTsKKyAgdWludDMyX3Qg
eDI1ID0gKCh1aW50MzJfdCkoYXJnMVs3XSkgPDwgNSk7CisgIHVpbnQzMl90IHgyNiA9ICgodWlu
dDMyX3QpKGFyZzFbNl0pIDw8IDIyKTsKKyAgdWludDMyX3QgeDI3ID0gKCh1aW50MzJfdCkoYXJn
MVs1XSkgPDwgMTQpOworICB1aW50MzJfdCB4MjggPSAoKHVpbnQzMl90KShhcmcxWzRdKSA8PCA2
KTsKKyAgdWludDMyX3QgeDI5ID0gKCh1aW50MzJfdCkoYXJnMVszXSkgPDwgMjQpOworICB1aW50
MzJfdCB4MzAgPSAoKHVpbnQzMl90KShhcmcxWzJdKSA8PCAxNik7CisgIHVpbnQzMl90IHgzMSA9
ICgodWludDMyX3QpKGFyZzFbMV0pIDw8IDgpOworICB1aW50OF90IHgzMiA9IChhcmcxWzBdKTsK
KyAgdWludDMyX3QgeDMzID0gKHgzMiArICh4MzEgKyAoeDMwICsgeDI5KSkpOworICB1aW50OF90
IHgzNCA9ICh1aW50OF90KSh4MzMgPj4gMjYpOworICB1aW50MzJfdCB4MzUgPSAoeDMzICYgVUlO
VDMyX0MoMHgzZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzNiA9ICh4MyArICh4MiArIHgxKSk7Cisg
IHVpbnQzMl90IHgzNyA9ICh4NiArICh4NSArIHg0KSk7CisgIHVpbnQzMl90IHgzOCA9ICh4OSAr
ICh4OCArIHg3KSk7CisgIHVpbnQzMl90IHgzOSA9ICh4MTIgKyAoeDExICsgeDEwKSk7CisgIHVp
bnQzMl90IHg0MCA9ICh4MTYgKyAoeDE1ICsgKHgxNCArIHgxMykpKTsKKyAgdWludDMyX3QgeDQx
ID0gKHgxOSArICh4MTggKyB4MTcpKTsKKyAgdWludDMyX3QgeDQyID0gKHgyMiArICh4MjEgKyB4
MjApKTsKKyAgdWludDMyX3QgeDQzID0gKHgyNSArICh4MjQgKyB4MjMpKTsKKyAgdWludDMyX3Qg
eDQ0ID0gKHgyOCArICh4MjcgKyB4MjYpKTsKKyAgdWludDMyX3QgeDQ1ID0gKHgzNCArIHg0NCk7
CisgIHVpbnQ4X3QgeDQ2ID0gKHVpbnQ4X3QpKHg0NSA+PiAyNSk7CisgIHVpbnQzMl90IHg0NyA9
ICh4NDUgJiBVSU5UMzJfQygweDFmZmZmZmYpKTsKKyAgdWludDMyX3QgeDQ4ID0gKHg0NiArIHg0
Myk7CisgIHVpbnQ4X3QgeDQ5ID0gKHVpbnQ4X3QpKHg0OCA+PiAyNik7CisgIHVpbnQzMl90IHg1
MCA9ICh4NDggJiBVSU5UMzJfQygweDNmZmZmZmYpKTsKKyAgdWludDMyX3QgeDUxID0gKHg0OSAr
IHg0Mik7CisgIHVpbnQ4X3QgeDUyID0gKHVpbnQ4X3QpKHg1MSA+PiAyNSk7CisgIHVpbnQzMl90
IHg1MyA9ICh4NTEgJiBVSU5UMzJfQygweDFmZmZmZmYpKTsKKyAgdWludDMyX3QgeDU0ID0gKHg1
MiArIHg0MSk7CisgIHVpbnQzMl90IHg1NSA9ICh4NTQgJiBVSU5UMzJfQygweDNmZmZmZmYpKTsK
KyAgdWludDhfdCB4NTYgPSAodWludDhfdCkoeDQwID4+IDI1KTsKKyAgdWludDMyX3QgeDU3ID0g
KHg0MCAmIFVJTlQzMl9DKDB4MWZmZmZmZikpOworICB1aW50MzJfdCB4NTggPSAoeDU2ICsgeDM5
KTsKKyAgdWludDhfdCB4NTkgPSAodWludDhfdCkoeDU4ID4+IDI2KTsKKyAgdWludDMyX3QgeDYw
ID0gKHg1OCAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50MzJfdCB4NjEgPSAoeDU5ICsg
eDM4KTsKKyAgdWludDhfdCB4NjIgPSAodWludDhfdCkoeDYxID4+IDI1KTsKKyAgdWludDMyX3Qg
eDYzID0gKHg2MSAmIFVJTlQzMl9DKDB4MWZmZmZmZikpOworICB1aW50MzJfdCB4NjQgPSAoeDYy
ICsgeDM3KTsKKyAgdWludDhfdCB4NjUgPSAodWludDhfdCkoeDY0ID4+IDI2KTsKKyAgdWludDMy
X3QgeDY2ID0gKHg2NCAmIFVJTlQzMl9DKDB4M2ZmZmZmZikpOworICB1aW50MzJfdCB4NjcgPSAo
eDY1ICsgeDM2KTsKKyAgb3V0MVswXSA9IHgzNTsKKyAgb3V0MVsxXSA9IHg0NzsKKyAgb3V0MVsy
XSA9IHg1MDsKKyAgb3V0MVszXSA9IHg1MzsKKyAgb3V0MVs0XSA9IHg1NTsKKyAgb3V0MVs1XSA9
IHg1NzsKKyAgb3V0MVs2XSA9IHg2MDsKKyAgb3V0MVs3XSA9IHg2MzsKKyAgb3V0MVs4XSA9IHg2
NjsKKyAgb3V0MVs5XSA9IHg2NzsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2Zp
YXQvY3VydmUyNTUxOV82NC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2ZpYXQvY3VydmUyNTUxOV82NC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdjMzFmZjk5Y2ZmNWQ2NDQyOWU1ODg1MzcxNWVhMWUwZTU1NTY3MDUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZmlhdC9jdXJ2ZTI1NTE5XzY0LmgKQEAg
LTAsMCArMSw1NTkgQEAKKy8qIEF1dG9nZW5lcmF0ZWQgKi8KKy8qIGN1cnZlIGRlc2NyaXB0aW9u
OiAyNTUxOSAqLworLyogcmVxdWVzdGVkIG9wZXJhdGlvbnM6IGNhcnJ5X211bCwgY2Fycnlfc3F1
YXJlLCBjYXJyeV9zY211bDEyMTY2NiwgY2FycnksIGFkZCwgc3ViLCBvcHAsIHNlbGVjdHpueiwg
dG9fYnl0ZXMsIGZyb21fYnl0ZXMgKi8KKy8qIG4gPSA1IChmcm9tICI1IikgKi8KKy8qIHMgPSAw
eDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAgKGZyb20gIjJeMjU1IikgKi8KKy8qIGMgPSBbKDEsIDE5KV0gKGZyb20gIjEsMTki
KSAqLworLyogbWFjaGluZV93b3Jkc2l6ZSA9IDY0IChmcm9tICI2NCIpICovCisKKyNpbmNsdWRl
IDxzdGRpbnQuaD4KK3R5cGVkZWYgdW5zaWduZWQgY2hhciBmaWF0XzI1NTE5X3VpbnQxOwordHlw
ZWRlZiBzaWduZWQgY2hhciBmaWF0XzI1NTE5X2ludDE7Cit0eXBlZGVmIHNpZ25lZCBfX2ludDEy
OCBmaWF0XzI1NTE5X2ludDEyODsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQxMjggZmlhdF8yNTUx
OV91aW50MTI4OworCisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAgIGFyZzE6IFsweDAgfj4g
MHgxXQorICogICBhcmcyOiBbMHgwIH4+IDB4N2ZmZmZmZmZmZmZmZl0KKyAqICAgYXJnMzogWzB4
MCB+PiAweDdmZmZmZmZmZmZmZmZdCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbMHgw
IH4+IDB4N2ZmZmZmZmZmZmZmZl0KKyAqICAgb3V0MjogWzB4MCB+PiAweDFdCisgKi8KK3N0YXRp
YyB2b2lkIGZpYXRfMjU1MTlfYWRkY2Fycnl4X3U1MSh1aW50NjRfdCogb3V0MSwgZmlhdF8yNTUx
OV91aW50MSogb3V0MiwgZmlhdF8yNTUxOV91aW50MSBhcmcxLCB1aW50NjRfdCBhcmcyLCB1aW50
NjRfdCBhcmczKSB7CisgIHVpbnQ2NF90IHgxID0gKChhcmcxICsgYXJnMikgKyBhcmczKTsKKyAg
dWludDY0X3QgeDIgPSAoeDEgJiBVSU5UNjRfQygweDdmZmZmZmZmZmZmZmYpKTsKKyAgZmlhdF8y
NTUxOV91aW50MSB4MyA9IChmaWF0XzI1NTE5X3VpbnQxKSh4MSA+PiA1MSk7CisgICpvdXQxID0g
eDI7CisgICpvdXQyID0geDM7Cit9CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAgIGFyZzE6
IFsweDAgfj4gMHgxXQorICogICBhcmcyOiBbMHgwIH4+IDB4N2ZmZmZmZmZmZmZmZl0KKyAqICAg
YXJnMzogWzB4MCB+PiAweDdmZmZmZmZmZmZmZmZdCisgKiBPdXRwdXQgQm91bmRzOgorICogICBv
dXQxOiBbMHgwIH4+IDB4N2ZmZmZmZmZmZmZmZl0KKyAqICAgb3V0MjogWzB4MCB+PiAweDFdCisg
Ki8KK3N0YXRpYyB2b2lkIGZpYXRfMjU1MTlfc3ViYm9ycm93eF91NTEodWludDY0X3QqIG91dDEs
IGZpYXRfMjU1MTlfdWludDEqIG91dDIsIGZpYXRfMjU1MTlfdWludDEgYXJnMSwgdWludDY0X3Qg
YXJnMiwgdWludDY0X3QgYXJnMykgeworICBpbnQ2NF90IHgxID0gKChpbnQ2NF90KShhcmcyIC0g
KGludDY0X3QpYXJnMSkgLSAoaW50NjRfdClhcmczKTsKKyAgZmlhdF8yNTUxOV9pbnQxIHgyID0g
KGZpYXRfMjU1MTlfaW50MSkoeDEgPj4gNTEpOworICB1aW50NjRfdCB4MyA9ICh4MSAmIFVJTlQ2
NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICAqb3V0MSA9IHgzOworICAqb3V0MiA9IChmaWF0XzI1
NTE5X3VpbnQxKSgweDAgLSB4Mik7Cit9CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAgIGFy
ZzE6IFsweDAgfj4gMHgxXQorICogICBhcmcyOiBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0K
KyAqICAgYXJnMzogWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdCisgKiBPdXRwdXQgQm91bmRz
OgorICogICBvdXQxOiBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0KKyAqLworc3RhdGljIHZv
aWQgZmlhdF8yNTUxOV9jbW92em56X3U2NCh1aW50NjRfdCogb3V0MSwgZmlhdF8yNTUxOV91aW50
MSBhcmcxLCB1aW50NjRfdCBhcmcyLCB1aW50NjRfdCBhcmczKSB7CisgIGZpYXRfMjU1MTlfdWlu
dDEgeDEgPSAoISghYXJnMSkpOworICB1aW50NjRfdCB4MiA9ICgoZmlhdF8yNTUxOV9pbnQxKSgw
eDAgLSB4MSkgJiBVSU5UNjRfQygweGZmZmZmZmZmZmZmZmZmZmYpKTsKKyAgLy8gTm90ZSB0aGlz
IGxpbmUgaGFzIGJlZW4gcGF0Y2hlZCBmcm9tIHRoZSBzeW50aGVzaXplZCBjb2RlIHRvIGFkZCB2
YWx1ZQorICAvLyBiYXJyaWVycy4KKyAgLy8KKyAgLy8gQ2xhbmcgcmVjb2duaXplcyB0aGlzIHBh
dHRlcm4gYXMgYSBzZWxlY3QuIFdoaWxlIGl0IHVzdWFsbHkgdHJhbnNmb3JtcyBpdAorICAvLyB0
byBhIGNtb3YsIGl0IHNvbWV0aW1lcyBmdXJ0aGVyIHRyYW5zZm9ybXMgaXQgaW50byBhIGJyYW5j
aCwgd2hpY2ggd2UgZG8KKyAgLy8gbm90IHdhbnQuCisgIHVpbnQ2NF90IHgzID0gKCh2YWx1ZV9i
YXJyaWVyX3U2NCh4MikgJiBhcmczKSB8ICh2YWx1ZV9iYXJyaWVyX3U2NCh+eDIpICYgYXJnMikp
OworICAqb3V0MSA9IHgzOworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcxOiBb
WzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4
MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+
PiAweDFhNjY2NjY2NjY2NjY0XV0KKyAqICAgYXJnMjogW1sweDAgfj4gMHgxYTY2NjY2NjY2NjY2
NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0s
IFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF1dCisg
KiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBb
MHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+
PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY11dCisgKi8KK3N0YXRp
YyB2b2lkIGZpYXRfMjU1MTlfY2FycnlfbXVsKHVpbnQ2NF90IG91dDFbNV0sIGNvbnN0IHVpbnQ2
NF90IGFyZzFbNV0sIGNvbnN0IHVpbnQ2NF90IGFyZzJbNV0pIHsKKyAgZmlhdF8yNTUxOV91aW50
MTI4IHgxID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFyZzFbNF0pICogKChhcmcyWzRdKSAqICh1
aW50NjRfdClVSU5UOF9DKDB4MTMpKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MiA9ICgoZmlh
dF8yNTUxOV91aW50MTI4KShhcmcxWzRdKSAqICgoYXJnMlszXSkgKiAodWludDY0X3QpVUlOVDhf
QygweDEzKSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDMgPSAoKGZpYXRfMjU1MTlfdWludDEy
OCkoYXJnMVs0XSkgKiAoKGFyZzJbMl0pICogKHVpbnQ2NF90KVVJTlQ4X0MoMHgxMykpKTsKKyAg
ZmlhdF8yNTUxOV91aW50MTI4IHg0ID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFyZzFbNF0pICog
KChhcmcyWzFdKSAqICh1aW50NjRfdClVSU5UOF9DKDB4MTMpKSk7CisgIGZpYXRfMjU1MTlfdWlu
dDEyOCB4NSA9ICgoZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzNdKSAqICgoYXJnMls0XSkgKiAo
dWludDY0X3QpVUlOVDhfQygweDEzKSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDYgPSAoKGZp
YXRfMjU1MTlfdWludDEyOCkoYXJnMVszXSkgKiAoKGFyZzJbM10pICogKHVpbnQ2NF90KVVJTlQ4
X0MoMHgxMykpKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHg3ID0gKChmaWF0XzI1NTE5X3VpbnQx
MjgpKGFyZzFbM10pICogKChhcmcyWzJdKSAqICh1aW50NjRfdClVSU5UOF9DKDB4MTMpKSk7Cisg
IGZpYXRfMjU1MTlfdWludDEyOCB4OCA9ICgoZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzJdKSAq
ICgoYXJnMls0XSkgKiAodWludDY0X3QpVUlOVDhfQygweDEzKSkpOworICBmaWF0XzI1NTE5X3Vp
bnQxMjggeDkgPSAoKGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVsyXSkgKiAoKGFyZzJbM10pICog
KHVpbnQ2NF90KVVJTlQ4X0MoMHgxMykpKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgxMCA9ICgo
ZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzFdKSAqICgoYXJnMls0XSkgKiAodWludDY0X3QpVUlO
VDhfQygweDEzKSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDExID0gKChmaWF0XzI1NTE5X3Vp
bnQxMjgpKGFyZzFbNF0pICogKGFyZzJbMF0pKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgxMiA9
ICgoZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzNdKSAqIChhcmcyWzFdKSk7CisgIGZpYXRfMjU1
MTlfdWludDEyOCB4MTMgPSAoKGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVszXSkgKiAoYXJnMlsw
XSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDE0ID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFy
ZzFbMl0pICogKGFyZzJbMl0pKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgxNSA9ICgoZmlhdF8y
NTUxOV91aW50MTI4KShhcmcxWzJdKSAqIChhcmcyWzFdKSk7CisgIGZpYXRfMjU1MTlfdWludDEy
OCB4MTYgPSAoKGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVsyXSkgKiAoYXJnMlswXSkpOworICBm
aWF0XzI1NTE5X3VpbnQxMjggeDE3ID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFyZzFbMV0pICog
KGFyZzJbM10pKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgxOCA9ICgoZmlhdF8yNTUxOV91aW50
MTI4KShhcmcxWzFdKSAqIChhcmcyWzJdKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MTkgPSAo
KGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVsxXSkgKiAoYXJnMlsxXSkpOworICBmaWF0XzI1NTE5
X3VpbnQxMjggeDIwID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFyZzFbMV0pICogKGFyZzJbMF0p
KTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgyMSA9ICgoZmlhdF8yNTUxOV91aW50MTI4KShhcmcx
WzBdKSAqIChhcmcyWzRdKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MjIgPSAoKGZpYXRfMjU1
MTlfdWludDEyOCkoYXJnMVswXSkgKiAoYXJnMlszXSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjgg
eDIzID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFyZzFbMF0pICogKGFyZzJbMl0pKTsKKyAgZmlh
dF8yNTUxOV91aW50MTI4IHgyNCA9ICgoZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzBdKSAqIChh
cmcyWzFdKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MjUgPSAoKGZpYXRfMjU1MTlfdWludDEy
OCkoYXJnMVswXSkgKiAoYXJnMlswXSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDI2ID0gKHgy
NSArICh4MTAgKyAoeDkgKyAoeDcgKyB4NCkpKSk7CisgIHVpbnQ2NF90IHgyNyA9ICh1aW50NjRf
dCkoeDI2ID4+IDUxKTsKKyAgdWludDY0X3QgeDI4ID0gKHVpbnQ2NF90KSh4MjYgJiBVSU5UNjRf
QygweDdmZmZmZmZmZmZmZmYpKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgyOSA9ICh4MjEgKyAo
eDE3ICsgKHgxNCArICh4MTIgKyB4MTEpKSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDMwID0g
KHgyMiArICh4MTggKyAoeDE1ICsgKHgxMyArIHgxKSkpKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4
IHgzMSA9ICh4MjMgKyAoeDE5ICsgKHgxNiArICh4NSArIHgyKSkpKTsKKyAgZmlhdF8yNTUxOV91
aW50MTI4IHgzMiA9ICh4MjQgKyAoeDIwICsgKHg4ICsgKHg2ICsgeDMpKSkpOworICBmaWF0XzI1
NTE5X3VpbnQxMjggeDMzID0gKHgyNyArIHgzMik7CisgIHVpbnQ2NF90IHgzNCA9ICh1aW50NjRf
dCkoeDMzID4+IDUxKTsKKyAgdWludDY0X3QgeDM1ID0gKHVpbnQ2NF90KSh4MzMgJiBVSU5UNjRf
QygweDdmZmZmZmZmZmZmZmYpKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgzNiA9ICh4MzQgKyB4
MzEpOworICB1aW50NjRfdCB4MzcgPSAodWludDY0X3QpKHgzNiA+PiA1MSk7CisgIHVpbnQ2NF90
IHgzOCA9ICh1aW50NjRfdCkoeDM2ICYgVUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIGZp
YXRfMjU1MTlfdWludDEyOCB4MzkgPSAoeDM3ICsgeDMwKTsKKyAgdWludDY0X3QgeDQwID0gKHVp
bnQ2NF90KSh4MzkgPj4gNTEpOworICB1aW50NjRfdCB4NDEgPSAodWludDY0X3QpKHgzOSAmIFVJ
TlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDQyID0gKHg0
MCArIHgyOSk7CisgIHVpbnQ2NF90IHg0MyA9ICh1aW50NjRfdCkoeDQyID4+IDUxKTsKKyAgdWlu
dDY0X3QgeDQ0ID0gKHVpbnQ2NF90KSh4NDIgJiBVSU5UNjRfQygweDdmZmZmZmZmZmZmZmYpKTsK
KyAgdWludDY0X3QgeDQ1ID0gKHg0MyAqICh1aW50NjRfdClVSU5UOF9DKDB4MTMpKTsKKyAgdWlu
dDY0X3QgeDQ2ID0gKHgyOCArIHg0NSk7CisgIHVpbnQ2NF90IHg0NyA9ICh4NDYgPj4gNTEpOwor
ICB1aW50NjRfdCB4NDggPSAoeDQ2ICYgVUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIHVp
bnQ2NF90IHg0OSA9ICh4NDcgKyB4MzUpOworICB1aW50NjRfdCB4NTAgPSAoeDQ5ID4+IDUxKTsK
KyAgdWludDY0X3QgeDUxID0gKHg0OSAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICB1
aW50NjRfdCB4NTIgPSAoeDUwICsgeDM4KTsKKyAgb3V0MVswXSA9IHg0ODsKKyAgb3V0MVsxXSA9
IHg1MTsKKyAgb3V0MVsyXSA9IHg1MjsKKyAgb3V0MVszXSA9IHg0MTsKKyAgb3V0MVs0XSA9IHg0
NDsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHgxYTY2
NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2
NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2
NjY2NF1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4MCB+PiAweDhjY2NjY2Nj
Y2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2Nj
XSwgWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY11dCisg
Ki8KK3N0YXRpYyB2b2lkIGZpYXRfMjU1MTlfY2Fycnlfc3F1YXJlKHVpbnQ2NF90IG91dDFbNV0s
IGNvbnN0IHVpbnQ2NF90IGFyZzFbNV0pIHsKKyAgdWludDY0X3QgeDEgPSAoKGFyZzFbNF0pICog
KHVpbnQ2NF90KVVJTlQ4X0MoMHgxMykpOworICB1aW50NjRfdCB4MiA9ICh4MSAqICh1aW50NjRf
dCkweDIpOworICB1aW50NjRfdCB4MyA9ICgoYXJnMVs0XSkgKiAodWludDY0X3QpMHgyKTsKKyAg
dWludDY0X3QgeDQgPSAoKGFyZzFbM10pICogKHVpbnQ2NF90KVVJTlQ4X0MoMHgxMykpOworICB1
aW50NjRfdCB4NSA9ICh4NCAqICh1aW50NjRfdCkweDIpOworICB1aW50NjRfdCB4NiA9ICgoYXJn
MVszXSkgKiAodWludDY0X3QpMHgyKTsKKyAgdWludDY0X3QgeDcgPSAoKGFyZzFbMl0pICogKHVp
bnQ2NF90KTB4Mik7CisgIHVpbnQ2NF90IHg4ID0gKChhcmcxWzFdKSAqICh1aW50NjRfdCkweDIp
OworICBmaWF0XzI1NTE5X3VpbnQxMjggeDkgPSAoKGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVs0
XSkgKiB4MSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MTAgPSAoKGZpYXRfMjU1MTlfdWludDEy
OCkoYXJnMVszXSkgKiB4Mik7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MTEgPSAoKGZpYXRfMjU1
MTlfdWludDEyOCkoYXJnMVszXSkgKiB4NCk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MTIgPSAo
KGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVsyXSkgKiB4Mik7CisgIGZpYXRfMjU1MTlfdWludDEy
OCB4MTMgPSAoKGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVsyXSkgKiB4NSk7CisgIGZpYXRfMjU1
MTlfdWludDEyOCB4MTQgPSAoKGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVsyXSkgKiAoYXJnMVsy
XSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDE1ID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFy
ZzFbMV0pICogeDIpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDE2ID0gKChmaWF0XzI1NTE5X3Vp
bnQxMjgpKGFyZzFbMV0pICogeDYpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDE3ID0gKChmaWF0
XzI1NTE5X3VpbnQxMjgpKGFyZzFbMV0pICogeDcpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDE4
ID0gKChmaWF0XzI1NTE5X3VpbnQxMjgpKGFyZzFbMV0pICogKGFyZzFbMV0pKTsKKyAgZmlhdF8y
NTUxOV91aW50MTI4IHgxOSA9ICgoZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzBdKSAqIHgzKTsK
KyAgZmlhdF8yNTUxOV91aW50MTI4IHgyMCA9ICgoZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzBd
KSAqIHg2KTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgyMSA9ICgoZmlhdF8yNTUxOV91aW50MTI4
KShhcmcxWzBdKSAqIHg3KTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgyMiA9ICgoZmlhdF8yNTUx
OV91aW50MTI4KShhcmcxWzBdKSAqIHg4KTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgyMyA9ICgo
ZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzBdKSAqIChhcmcxWzBdKSk7CisgIGZpYXRfMjU1MTlf
dWludDEyOCB4MjQgPSAoeDIzICsgKHgxNSArIHgxMykpOworICB1aW50NjRfdCB4MjUgPSAodWlu
dDY0X3QpKHgyNCA+PiA1MSk7CisgIHVpbnQ2NF90IHgyNiA9ICh1aW50NjRfdCkoeDI0ICYgVUlO
VDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MjcgPSAoeDE5
ICsgKHgxNiArIHgxNCkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDI4ID0gKHgyMCArICh4MTcg
KyB4OSkpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDI5ID0gKHgyMSArICh4MTggKyB4MTApKTsK
KyAgZmlhdF8yNTUxOV91aW50MTI4IHgzMCA9ICh4MjIgKyAoeDEyICsgeDExKSk7CisgIGZpYXRf
MjU1MTlfdWludDEyOCB4MzEgPSAoeDI1ICsgeDMwKTsKKyAgdWludDY0X3QgeDMyID0gKHVpbnQ2
NF90KSh4MzEgPj4gNTEpOworICB1aW50NjRfdCB4MzMgPSAodWludDY0X3QpKHgzMSAmIFVJTlQ2
NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICBmaWF0XzI1NTE5X3VpbnQxMjggeDM0ID0gKHgzMiAr
IHgyOSk7CisgIHVpbnQ2NF90IHgzNSA9ICh1aW50NjRfdCkoeDM0ID4+IDUxKTsKKyAgdWludDY0
X3QgeDM2ID0gKHVpbnQ2NF90KSh4MzQgJiBVSU5UNjRfQygweDdmZmZmZmZmZmZmZmYpKTsKKyAg
ZmlhdF8yNTUxOV91aW50MTI4IHgzNyA9ICh4MzUgKyB4MjgpOworICB1aW50NjRfdCB4MzggPSAo
dWludDY0X3QpKHgzNyA+PiA1MSk7CisgIHVpbnQ2NF90IHgzOSA9ICh1aW50NjRfdCkoeDM3ICYg
VUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4NDAgPSAo
eDM4ICsgeDI3KTsKKyAgdWludDY0X3QgeDQxID0gKHVpbnQ2NF90KSh4NDAgPj4gNTEpOworICB1
aW50NjRfdCB4NDIgPSAodWludDY0X3QpKHg0MCAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikp
OworICB1aW50NjRfdCB4NDMgPSAoeDQxICogKHVpbnQ2NF90KVVJTlQ4X0MoMHgxMykpOworICB1
aW50NjRfdCB4NDQgPSAoeDI2ICsgeDQzKTsKKyAgdWludDY0X3QgeDQ1ID0gKHg0NCA+PiA1MSk7
CisgIHVpbnQ2NF90IHg0NiA9ICh4NDQgJiBVSU5UNjRfQygweDdmZmZmZmZmZmZmZmYpKTsKKyAg
dWludDY0X3QgeDQ3ID0gKHg0NSArIHgzMyk7CisgIHVpbnQ2NF90IHg0OCA9ICh4NDcgPj4gNTEp
OworICB1aW50NjRfdCB4NDkgPSAoeDQ3ICYgVUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSk7Cisg
IHVpbnQ2NF90IHg1MCA9ICh4NDggKyB4MzYpOworICBvdXQxWzBdID0geDQ2OworICBvdXQxWzFd
ID0geDQ5OworICBvdXQxWzJdID0geDUwOworICBvdXQxWzNdID0geDM5OworICBvdXQxWzRdID0g
eDQyOworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcxOiBbWzB4MCB+PiAweDFh
NjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2
NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2
NjY2NjY0XV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4OGNjY2Nj
Y2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+PiAweDhjY2NjY2NjY2Nj
Y2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXV0K
KyAqLworc3RhdGljIHZvaWQgZmlhdF8yNTUxOV9jYXJyeV9zY211bF8xMjE2NjYodWludDY0X3Qg
b3V0MVs1XSwgY29uc3QgdWludDY0X3QgYXJnMVs1XSkgeworICBmaWF0XzI1NTE5X3VpbnQxMjgg
eDEgPSAoVUlOVDMyX0MoMHgxZGI0MikgKiAoZmlhdF8yNTUxOV91aW50MTI4KShhcmcxWzRdKSk7
CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MiA9IChVSU5UMzJfQygweDFkYjQyKSAqIChmaWF0XzI1
NTE5X3VpbnQxMjgpKGFyZzFbM10pKTsKKyAgZmlhdF8yNTUxOV91aW50MTI4IHgzID0gKFVJTlQz
Ml9DKDB4MWRiNDIpICogKGZpYXRfMjU1MTlfdWludDEyOCkoYXJnMVsyXSkpOworICBmaWF0XzI1
NTE5X3VpbnQxMjggeDQgPSAoVUlOVDMyX0MoMHgxZGI0MikgKiAoZmlhdF8yNTUxOV91aW50MTI4
KShhcmcxWzFdKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4NSA9IChVSU5UMzJfQygweDFkYjQy
KSAqIChmaWF0XzI1NTE5X3VpbnQxMjgpKGFyZzFbMF0pKTsKKyAgdWludDY0X3QgeDYgPSAodWlu
dDY0X3QpKHg1ID4+IDUxKTsKKyAgdWludDY0X3QgeDcgPSAodWludDY0X3QpKHg1ICYgVUlOVDY0
X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4OCA9ICh4NiArIHg0
KTsKKyAgdWludDY0X3QgeDkgPSAodWludDY0X3QpKHg4ID4+IDUxKTsKKyAgdWludDY0X3QgeDEw
ID0gKHVpbnQ2NF90KSh4OCAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICBmaWF0XzI1
NTE5X3VpbnQxMjggeDExID0gKHg5ICsgeDMpOworICB1aW50NjRfdCB4MTIgPSAodWludDY0X3Qp
KHgxMSA+PiA1MSk7CisgIHVpbnQ2NF90IHgxMyA9ICh1aW50NjRfdCkoeDExICYgVUlOVDY0X0Mo
MHg3ZmZmZmZmZmZmZmZmKSk7CisgIGZpYXRfMjU1MTlfdWludDEyOCB4MTQgPSAoeDEyICsgeDIp
OworICB1aW50NjRfdCB4MTUgPSAodWludDY0X3QpKHgxNCA+PiA1MSk7CisgIHVpbnQ2NF90IHgx
NiA9ICh1aW50NjRfdCkoeDE0ICYgVUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIGZpYXRf
MjU1MTlfdWludDEyOCB4MTcgPSAoeDE1ICsgeDEpOworICB1aW50NjRfdCB4MTggPSAodWludDY0
X3QpKHgxNyA+PiA1MSk7CisgIHVpbnQ2NF90IHgxOSA9ICh1aW50NjRfdCkoeDE3ICYgVUlOVDY0
X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgyMCA9ICh4MTggKiAodWludDY0X3Qp
VUlOVDhfQygweDEzKSk7CisgIHVpbnQ2NF90IHgyMSA9ICh4NyArIHgyMCk7CisgIHVpbnQ2NF90
IHgyMiA9ICh4MjEgPj4gNTEpOworICB1aW50NjRfdCB4MjMgPSAoeDIxICYgVUlOVDY0X0MoMHg3
ZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgyNCA9ICh4MjIgKyB4MTApOworICB1aW50NjRf
dCB4MjUgPSAoeDI0ID4+IDUxKTsKKyAgdWludDY0X3QgeDI2ID0gKHgyNCAmIFVJTlQ2NF9DKDB4
N2ZmZmZmZmZmZmZmZikpOworICB1aW50NjRfdCB4MjcgPSAoeDI1ICsgeDEzKTsKKyAgb3V0MVsw
XSA9IHgyMzsKKyAgb3V0MVsxXSA9IHgyNjsKKyAgb3V0MVsyXSA9IHgyNzsKKyAgb3V0MVszXSA9
IHgxNjsKKyAgb3V0MVs0XSA9IHgxOTsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAg
YXJnMTogW1sweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2
NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0s
IFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQx
OiBbWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsw
eDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+
IDB4OGNjY2NjY2NjY2NjY11dCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfMjU1MTlfY2FycnkodWlu
dDY0X3Qgb3V0MVs1XSwgY29uc3QgdWludDY0X3QgYXJnMVs1XSkgeworICB1aW50NjRfdCB4MSA9
IChhcmcxWzBdKTsKKyAgdWludDY0X3QgeDIgPSAoKHgxID4+IDUxKSArIChhcmcxWzFdKSk7Cisg
IHVpbnQ2NF90IHgzID0gKCh4MiA+PiA1MSkgKyAoYXJnMVsyXSkpOworICB1aW50NjRfdCB4NCA9
ICgoeDMgPj4gNTEpICsgKGFyZzFbM10pKTsKKyAgdWludDY0X3QgeDUgPSAoKHg0ID4+IDUxKSAr
IChhcmcxWzRdKSk7CisgIHVpbnQ2NF90IHg2ID0gKCh4MSAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZm
ZmZmZikpICsgKCh4NSA+PiA1MSkgKiAodWludDY0X3QpVUlOVDhfQygweDEzKSkpOworICB1aW50
NjRfdCB4NyA9ICgoeDYgPj4gNTEpICsgKHgyICYgVUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSkp
OworICB1aW50NjRfdCB4OCA9ICh4NiAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICB1
aW50NjRfdCB4OSA9ICh4NyAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICB1aW50NjRf
dCB4MTAgPSAoKHg3ID4+IDUxKSArICh4MyAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpKTsK
KyAgdWludDY0X3QgeDExID0gKHg0ICYgVUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSk7CisgIHVp
bnQ2NF90IHgxMiA9ICh4NSAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICBvdXQxWzBd
ID0geDg7CisgIG91dDFbMV0gPSB4OTsKKyAgb3V0MVsyXSA9IHgxMDsKKyAgb3V0MVszXSA9IHgx
MTsKKyAgb3V0MVs0XSA9IHgxMjsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJn
MTogW1sweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBb
MHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+
PiAweDhjY2NjY2NjY2NjY2NdXQorICogICBhcmcyOiBbWzB4MCB+PiAweDhjY2NjY2NjY2NjY2Nd
LCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4
MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY11dCisgKiBPdXRw
dXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+
PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAw
eDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XV0KKyAqLworc3RhdGlj
IHZvaWQgZmlhdF8yNTUxOV9hZGQodWludDY0X3Qgb3V0MVs1XSwgY29uc3QgdWludDY0X3QgYXJn
MVs1XSwgY29uc3QgdWludDY0X3QgYXJnMls1XSkgeworICB1aW50NjRfdCB4MSA9ICgoYXJnMVsw
XSkgKyAoYXJnMlswXSkpOworICB1aW50NjRfdCB4MiA9ICgoYXJnMVsxXSkgKyAoYXJnMlsxXSkp
OworICB1aW50NjRfdCB4MyA9ICgoYXJnMVsyXSkgKyAoYXJnMlsyXSkpOworICB1aW50NjRfdCB4
NCA9ICgoYXJnMVszXSkgKyAoYXJnMlszXSkpOworICB1aW50NjRfdCB4NSA9ICgoYXJnMVs0XSkg
KyAoYXJnMls0XSkpOworICBvdXQxWzBdID0geDE7CisgIG91dDFbMV0gPSB4MjsKKyAgb3V0MVsy
XSA9IHgzOworICBvdXQxWzNdID0geDQ7CisgIG91dDFbNF0gPSB4NTsKK30KKworLyoKKyAqIElu
cHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+
PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4
Y2NjY2NjY2NjY2NjXSwgWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdXQorICogICBhcmcyOiBbWzB4
MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4g
MHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNj
Y2NjY2NjY2NjY11dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4MCB+PiAweDFh
NjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2
NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2NjY2NjY0XSwgWzB4MCB+PiAweDFhNjY2NjY2
NjY2NjY0XV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF8yNTUxOV9zdWIodWludDY0X3Qgb3V0MVs1
XSwgY29uc3QgdWludDY0X3QgYXJnMVs1XSwgY29uc3QgdWludDY0X3QgYXJnMls1XSkgeworICB1
aW50NjRfdCB4MSA9ICgoVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmRhKSArIChhcmcxWzBdKSkgLSAo
YXJnMlswXSkpOworICB1aW50NjRfdCB4MiA9ICgoVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZlKSAr
IChhcmcxWzFdKSkgLSAoYXJnMlsxXSkpOworICB1aW50NjRfdCB4MyA9ICgoVUlOVDY0X0MoMHhm
ZmZmZmZmZmZmZmZlKSArIChhcmcxWzJdKSkgLSAoYXJnMlsyXSkpOworICB1aW50NjRfdCB4NCA9
ICgoVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZlKSArIChhcmcxWzNdKSkgLSAoYXJnMlszXSkpOwor
ICB1aW50NjRfdCB4NSA9ICgoVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZlKSArIChhcmcxWzRdKSkg
LSAoYXJnMls0XSkpOworICBvdXQxWzBdID0geDE7CisgIG91dDFbMV0gPSB4MjsKKyAgb3V0MVsy
XSA9IHgzOworICBvdXQxWzNdID0geDQ7CisgIG91dDFbNF0gPSB4NTsKK30KKworLyoKKyAqIElu
cHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+
PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4
Y2NjY2NjY2NjY2NjXSwgWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdXQorICogT3V0cHV0IEJvdW5k
czoKKyAqICAgb3V0MTogW1sweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2
NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2
NjY2NjY2NF0sIFsweDAgfj4gMHgxYTY2NjY2NjY2NjY2NF1dCisgKi8KK3N0YXRpYyB2b2lkIGZp
YXRfMjU1MTlfb3BwKHVpbnQ2NF90IG91dDFbNV0sIGNvbnN0IHVpbnQ2NF90IGFyZzFbNV0pIHsK
KyAgdWludDY0X3QgeDEgPSAoVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmRhKSAtIChhcmcxWzBdKSk7
CisgIHVpbnQ2NF90IHgyID0gKFVJTlQ2NF9DKDB4ZmZmZmZmZmZmZmZmZSkgLSAoYXJnMVsxXSkp
OworICB1aW50NjRfdCB4MyA9IChVSU5UNjRfQygweGZmZmZmZmZmZmZmZmUpIC0gKGFyZzFbMl0p
KTsKKyAgdWludDY0X3QgeDQgPSAoVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZlKSAtIChhcmcxWzNd
KSk7CisgIHVpbnQ2NF90IHg1ID0gKFVJTlQ2NF9DKDB4ZmZmZmZmZmZmZmZmZSkgLSAoYXJnMVs0
XSkpOworICBvdXQxWzBdID0geDE7CisgIG91dDFbMV0gPSB4MjsKKyAgb3V0MVsyXSA9IHgzOwor
ICBvdXQxWzNdID0geDQ7CisgIG91dDFbNF0gPSB4NTsKK30KKworLyoKKyAqIElucHV0IEJvdW5k
czoKKyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFtbMHgwIH4+IDB4ZmZmZmZm
ZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZm
ZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZm
ZmZmZmZmZmZmZmZmXV0KKyAqICAgYXJnMzogW1sweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwg
WzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0s
IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZd
XQorICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAgfj4gMHhmZmZmZmZmZmZmZmZm
ZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZm
ZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZm
ZmZmZmZdXQorICovCitzdGF0aWMgdm9pZCBmaWF0XzI1NTE5X3NlbGVjdHpueih1aW50NjRfdCBv
dXQxWzVdLCBmaWF0XzI1NTE5X3VpbnQxIGFyZzEsIGNvbnN0IHVpbnQ2NF90IGFyZzJbNV0sIGNv
bnN0IHVpbnQ2NF90IGFyZzNbNV0pIHsKKyAgdWludDY0X3QgeDE7CisgIGZpYXRfMjU1MTlfY21v
dnpuel91NjQoJngxLCBhcmcxLCAoYXJnMlswXSksIChhcmczWzBdKSk7CisgIHVpbnQ2NF90IHgy
OworICBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTY0KCZ4MiwgYXJnMSwgKGFyZzJbMV0pLCAoYXJnM1sx
XSkpOworICB1aW50NjRfdCB4MzsKKyAgZmlhdF8yNTUxOV9jbW92em56X3U2NCgmeDMsIGFyZzEs
IChhcmcyWzJdKSwgKGFyZzNbMl0pKTsKKyAgdWludDY0X3QgeDQ7CisgIGZpYXRfMjU1MTlfY21v
dnpuel91NjQoJng0LCBhcmcxLCAoYXJnMlszXSksIChhcmczWzNdKSk7CisgIHVpbnQ2NF90IHg1
OworICBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTY0KCZ4NSwgYXJnMSwgKGFyZzJbNF0pLCAoYXJnM1s0
XSkpOworICBvdXQxWzBdID0geDE7CisgIG91dDFbMV0gPSB4MjsKKyAgb3V0MVsyXSA9IHgzOwor
ICBvdXQxWzNdID0geDQ7CisgIG91dDFbNF0gPSB4NTsKK30KKworLyoKKyAqIElucHV0IEJvdW5k
czoKKyAqICAgYXJnMTogW1sweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwgWzB4MCB+PiAweDhjY2Nj
Y2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2Nj
Y2NjXSwgWzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdXQorICogT3V0cHV0IEJvdW5kczoKKyAqICAg
b3V0MTogW1sweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAg
fj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsw
eDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0s
IFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhm
Zl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4g
MHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAg
fj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsw
eDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0s
IFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHg3Zl1dCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfMjU1
MTlfdG9fYnl0ZXModWludDhfdCBvdXQxWzMyXSwgY29uc3QgdWludDY0X3QgYXJnMVs1XSkgewor
ICB1aW50NjRfdCB4MTsKKyAgZmlhdF8yNTUxOV91aW50MSB4MjsKKyAgZmlhdF8yNTUxOV9zdWJi
b3Jyb3d4X3U1MSgmeDEsICZ4MiwgMHgwLCAoYXJnMVswXSksIFVJTlQ2NF9DKDB4N2ZmZmZmZmZm
ZmZlZCkpOworICB1aW50NjRfdCB4MzsKKyAgZmlhdF8yNTUxOV91aW50MSB4NDsKKyAgZmlhdF8y
NTUxOV9zdWJib3Jyb3d4X3U1MSgmeDMsICZ4NCwgeDIsIChhcmcxWzFdKSwgVUlOVDY0X0MoMHg3
ZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHg1OworICBmaWF0XzI1NTE5X3VpbnQxIHg2Owor
ICBmaWF0XzI1NTE5X3N1YmJvcnJvd3hfdTUxKCZ4NSwgJng2LCB4NCwgKGFyZzFbMl0pLCBVSU5U
NjRfQygweDdmZmZmZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDc7CisgIGZpYXRfMjU1MTlfdWlu
dDEgeDg7CisgIGZpYXRfMjU1MTlfc3ViYm9ycm93eF91NTEoJng3LCAmeDgsIHg2LCAoYXJnMVsz
XSksIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICB1aW50NjRfdCB4OTsKKyAgZmlhdF8y
NTUxOV91aW50MSB4MTA7CisgIGZpYXRfMjU1MTlfc3ViYm9ycm93eF91NTEoJng5LCAmeDEwLCB4
OCwgKGFyZzFbNF0pLCBVSU5UNjRfQygweDdmZmZmZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDEx
OworICBmaWF0XzI1NTE5X2Ntb3Z6bnpfdTY0KCZ4MTEsIHgxMCwgMHgwLCBVSU5UNjRfQygweGZm
ZmZmZmZmZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDEyOworICBmaWF0XzI1NTE5X3VpbnQxIHgx
MzsKKyAgZmlhdF8yNTUxOV9hZGRjYXJyeXhfdTUxKCZ4MTIsICZ4MTMsIDB4MCwgKHgxMSAmIFVJ
TlQ2NF9DKDB4N2ZmZmZmZmZmZmZlZCkpLCB4MSk7CisgIHVpbnQ2NF90IHgxNDsKKyAgZmlhdF8y
NTUxOV91aW50MSB4MTU7CisgIGZpYXRfMjU1MTlfYWRkY2Fycnl4X3U1MSgmeDE0LCAmeDE1LCB4
MTMsICh4MTEgJiBVSU5UNjRfQygweDdmZmZmZmZmZmZmZmYpKSwgeDMpOworICB1aW50NjRfdCB4
MTY7CisgIGZpYXRfMjU1MTlfdWludDEgeDE3OworICBmaWF0XzI1NTE5X2FkZGNhcnJ5eF91NTEo
JngxNiwgJngxNywgeDE1LCAoeDExICYgVUlOVDY0X0MoMHg3ZmZmZmZmZmZmZmZmKSksIHg1KTsK
KyAgdWludDY0X3QgeDE4OworICBmaWF0XzI1NTE5X3VpbnQxIHgxOTsKKyAgZmlhdF8yNTUxOV9h
ZGRjYXJyeXhfdTUxKCZ4MTgsICZ4MTksIHgxNywgKHgxMSAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZm
ZmZmZikpLCB4Nyk7CisgIHVpbnQ2NF90IHgyMDsKKyAgZmlhdF8yNTUxOV91aW50MSB4MjE7Cisg
IGZpYXRfMjU1MTlfYWRkY2Fycnl4X3U1MSgmeDIwLCAmeDIxLCB4MTksICh4MTEgJiBVSU5UNjRf
QygweDdmZmZmZmZmZmZmZmYpKSwgeDkpOworICB1aW50NjRfdCB4MjIgPSAoeDIwIDw8IDQpOwor
ICB1aW50NjRfdCB4MjMgPSAoeDE4ICogKHVpbnQ2NF90KTB4Mik7CisgIHVpbnQ2NF90IHgyNCA9
ICh4MTYgPDwgNik7CisgIHVpbnQ2NF90IHgyNSA9ICh4MTQgPDwgMyk7CisgIHVpbnQ2NF90IHgy
NiA9ICh4MTIgPj4gOCk7CisgIHVpbnQ4X3QgeDI3ID0gKHVpbnQ4X3QpKHgxMiAmIFVJTlQ4X0Mo
MHhmZikpOworICB1aW50NjRfdCB4MjggPSAoeDI2ID4+IDgpOworICB1aW50OF90IHgyOSA9ICh1
aW50OF90KSh4MjYgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDMwID0gKHgyOCA+PiA4
KTsKKyAgdWludDhfdCB4MzEgPSAodWludDhfdCkoeDI4ICYgVUlOVDhfQygweGZmKSk7CisgIHVp
bnQ2NF90IHgzMiA9ICh4MzAgPj4gOCk7CisgIHVpbnQ4X3QgeDMzID0gKHVpbnQ4X3QpKHgzMCAm
IFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4MzQgPSAoeDMyID4+IDgpOworICB1aW50OF90
IHgzNSA9ICh1aW50OF90KSh4MzIgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4MzYgPSAo
dWludDhfdCkoeDM0ID4+IDgpOworICB1aW50OF90IHgzNyA9ICh1aW50OF90KSh4MzQgJiBVSU5U
OF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDM4ID0gKHgzNiArIHgyNSk7CisgIHVpbnQ2NF90IHgz
OSA9ICh4MzggPj4gOCk7CisgIHVpbnQ4X3QgeDQwID0gKHVpbnQ4X3QpKHgzOCAmIFVJTlQ4X0Mo
MHhmZikpOworICB1aW50NjRfdCB4NDEgPSAoeDM5ID4+IDgpOworICB1aW50OF90IHg0MiA9ICh1
aW50OF90KSh4MzkgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDQzID0gKHg0MSA+PiA4
KTsKKyAgdWludDhfdCB4NDQgPSAodWludDhfdCkoeDQxICYgVUlOVDhfQygweGZmKSk7CisgIHVp
bnQ2NF90IHg0NSA9ICh4NDMgPj4gOCk7CisgIHVpbnQ4X3QgeDQ2ID0gKHVpbnQ4X3QpKHg0MyAm
IFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4NDcgPSAoeDQ1ID4+IDgpOworICB1aW50OF90
IHg0OCA9ICh1aW50OF90KSh4NDUgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4NDkgPSAo
dWludDhfdCkoeDQ3ID4+IDgpOworICB1aW50OF90IHg1MCA9ICh1aW50OF90KSh4NDcgJiBVSU5U
OF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDUxID0gKHg0OSArIHgyNCk7CisgIHVpbnQ2NF90IHg1
MiA9ICh4NTEgPj4gOCk7CisgIHVpbnQ4X3QgeDUzID0gKHVpbnQ4X3QpKHg1MSAmIFVJTlQ4X0Mo
MHhmZikpOworICB1aW50NjRfdCB4NTQgPSAoeDUyID4+IDgpOworICB1aW50OF90IHg1NSA9ICh1
aW50OF90KSh4NTIgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDU2ID0gKHg1NCA+PiA4
KTsKKyAgdWludDhfdCB4NTcgPSAodWludDhfdCkoeDU0ICYgVUlOVDhfQygweGZmKSk7CisgIHVp
bnQ2NF90IHg1OCA9ICh4NTYgPj4gOCk7CisgIHVpbnQ4X3QgeDU5ID0gKHVpbnQ4X3QpKHg1NiAm
IFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4NjAgPSAoeDU4ID4+IDgpOworICB1aW50OF90
IHg2MSA9ICh1aW50OF90KSh4NTggJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDYyID0g
KHg2MCA+PiA4KTsKKyAgdWludDhfdCB4NjMgPSAodWludDhfdCkoeDYwICYgVUlOVDhfQygweGZm
KSk7CisgIGZpYXRfMjU1MTlfdWludDEgeDY0ID0gKGZpYXRfMjU1MTlfdWludDEpKHg2MiA+PiA4
KTsKKyAgdWludDhfdCB4NjUgPSAodWludDhfdCkoeDYyICYgVUlOVDhfQygweGZmKSk7CisgIHVp
bnQ2NF90IHg2NiA9ICh4NjQgKyB4MjMpOworICB1aW50NjRfdCB4NjcgPSAoeDY2ID4+IDgpOwor
ICB1aW50OF90IHg2OCA9ICh1aW50OF90KSh4NjYgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0
X3QgeDY5ID0gKHg2NyA+PiA4KTsKKyAgdWludDhfdCB4NzAgPSAodWludDhfdCkoeDY3ICYgVUlO
VDhfQygweGZmKSk7CisgIHVpbnQ2NF90IHg3MSA9ICh4NjkgPj4gOCk7CisgIHVpbnQ4X3QgeDcy
ID0gKHVpbnQ4X3QpKHg2OSAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4NzMgPSAoeDcx
ID4+IDgpOworICB1aW50OF90IHg3NCA9ICh1aW50OF90KSh4NzEgJiBVSU5UOF9DKDB4ZmYpKTsK
KyAgdWludDY0X3QgeDc1ID0gKHg3MyA+PiA4KTsKKyAgdWludDhfdCB4NzYgPSAodWludDhfdCko
eDczICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3QgeDc3ID0gKHVpbnQ4X3QpKHg3NSA+PiA4
KTsKKyAgdWludDhfdCB4NzggPSAodWludDhfdCkoeDc1ICYgVUlOVDhfQygweGZmKSk7CisgIHVp
bnQ2NF90IHg3OSA9ICh4NzcgKyB4MjIpOworICB1aW50NjRfdCB4ODAgPSAoeDc5ID4+IDgpOwor
ICB1aW50OF90IHg4MSA9ICh1aW50OF90KSh4NzkgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0
X3QgeDgyID0gKHg4MCA+PiA4KTsKKyAgdWludDhfdCB4ODMgPSAodWludDhfdCkoeDgwICYgVUlO
VDhfQygweGZmKSk7CisgIHVpbnQ2NF90IHg4NCA9ICh4ODIgPj4gOCk7CisgIHVpbnQ4X3QgeDg1
ID0gKHVpbnQ4X3QpKHg4MiAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4ODYgPSAoeDg0
ID4+IDgpOworICB1aW50OF90IHg4NyA9ICh1aW50OF90KSh4ODQgJiBVSU5UOF9DKDB4ZmYpKTsK
KyAgdWludDY0X3QgeDg4ID0gKHg4NiA+PiA4KTsKKyAgdWludDhfdCB4ODkgPSAodWludDhfdCko
eDg2ICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3QgeDkwID0gKHVpbnQ4X3QpKHg4OCA+PiA4
KTsKKyAgdWludDhfdCB4OTEgPSAodWludDhfdCkoeDg4ICYgVUlOVDhfQygweGZmKSk7CisgIG91
dDFbMF0gPSB4Mjc7CisgIG91dDFbMV0gPSB4Mjk7CisgIG91dDFbMl0gPSB4MzE7CisgIG91dDFb
M10gPSB4MzM7CisgIG91dDFbNF0gPSB4MzU7CisgIG91dDFbNV0gPSB4Mzc7CisgIG91dDFbNl0g
PSB4NDA7CisgIG91dDFbN10gPSB4NDI7CisgIG91dDFbOF0gPSB4NDQ7CisgIG91dDFbOV0gPSB4
NDY7CisgIG91dDFbMTBdID0geDQ4OworICBvdXQxWzExXSA9IHg1MDsKKyAgb3V0MVsxMl0gPSB4
NTM7CisgIG91dDFbMTNdID0geDU1OworICBvdXQxWzE0XSA9IHg1NzsKKyAgb3V0MVsxNV0gPSB4
NTk7CisgIG91dDFbMTZdID0geDYxOworICBvdXQxWzE3XSA9IHg2MzsKKyAgb3V0MVsxOF0gPSB4
NjU7CisgIG91dDFbMTldID0geDY4OworICBvdXQxWzIwXSA9IHg3MDsKKyAgb3V0MVsyMV0gPSB4
NzI7CisgIG91dDFbMjJdID0geDc0OworICBvdXQxWzIzXSA9IHg3NjsKKyAgb3V0MVsyNF0gPSB4
Nzg7CisgIG91dDFbMjVdID0geDgxOworICBvdXQxWzI2XSA9IHg4MzsKKyAgb3V0MVsyN10gPSB4
ODU7CisgIG91dDFbMjhdID0geDg3OworICBvdXQxWzI5XSA9IHg4OTsKKyAgb3V0MVszMF0gPSB4
OTE7CisgIG91dDFbMzFdID0geDkwOworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBh
cmcxOiBbWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+
PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4
MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwg
WzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZm
XSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAw
eGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+
PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4
MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwg
WzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweDdmXV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91
dDE6IFtbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAgfj4gMHg4Y2NjY2NjY2NjY2NjXSwg
WzB4MCB+PiAweDhjY2NjY2NjY2NjY2NdLCBbMHgwIH4+IDB4OGNjY2NjY2NjY2NjY10sIFsweDAg
fj4gMHg4Y2NjY2NjY2NjY2NjXV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF8yNTUxOV9mcm9tX2J5
dGVzKHVpbnQ2NF90IG91dDFbNV0sIGNvbnN0IHVpbnQ4X3QgYXJnMVszMl0pIHsKKyAgdWludDY0
X3QgeDEgPSAoKHVpbnQ2NF90KShhcmcxWzMxXSkgPDwgNDQpOworICB1aW50NjRfdCB4MiA9ICgo
dWludDY0X3QpKGFyZzFbMzBdKSA8PCAzNik7CisgIHVpbnQ2NF90IHgzID0gKCh1aW50NjRfdCko
YXJnMVsyOV0pIDw8IDI4KTsKKyAgdWludDY0X3QgeDQgPSAoKHVpbnQ2NF90KShhcmcxWzI4XSkg
PDwgMjApOworICB1aW50NjRfdCB4NSA9ICgodWludDY0X3QpKGFyZzFbMjddKSA8PCAxMik7Cisg
IHVpbnQ2NF90IHg2ID0gKCh1aW50NjRfdCkoYXJnMVsyNl0pIDw8IDQpOworICB1aW50NjRfdCB4
NyA9ICgodWludDY0X3QpKGFyZzFbMjVdKSA8PCA0Nyk7CisgIHVpbnQ2NF90IHg4ID0gKCh1aW50
NjRfdCkoYXJnMVsyNF0pIDw8IDM5KTsKKyAgdWludDY0X3QgeDkgPSAoKHVpbnQ2NF90KShhcmcx
WzIzXSkgPDwgMzEpOworICB1aW50NjRfdCB4MTAgPSAoKHVpbnQ2NF90KShhcmcxWzIyXSkgPDwg
MjMpOworICB1aW50NjRfdCB4MTEgPSAoKHVpbnQ2NF90KShhcmcxWzIxXSkgPDwgMTUpOworICB1
aW50NjRfdCB4MTIgPSAoKHVpbnQ2NF90KShhcmcxWzIwXSkgPDwgNyk7CisgIHVpbnQ2NF90IHgx
MyA9ICgodWludDY0X3QpKGFyZzFbMTldKSA8PCA1MCk7CisgIHVpbnQ2NF90IHgxNCA9ICgodWlu
dDY0X3QpKGFyZzFbMThdKSA8PCA0Mik7CisgIHVpbnQ2NF90IHgxNSA9ICgodWludDY0X3QpKGFy
ZzFbMTddKSA8PCAzNCk7CisgIHVpbnQ2NF90IHgxNiA9ICgodWludDY0X3QpKGFyZzFbMTZdKSA8
PCAyNik7CisgIHVpbnQ2NF90IHgxNyA9ICgodWludDY0X3QpKGFyZzFbMTVdKSA8PCAxOCk7Cisg
IHVpbnQ2NF90IHgxOCA9ICgodWludDY0X3QpKGFyZzFbMTRdKSA8PCAxMCk7CisgIHVpbnQ2NF90
IHgxOSA9ICgodWludDY0X3QpKGFyZzFbMTNdKSA8PCAyKTsKKyAgdWludDY0X3QgeDIwID0gKCh1
aW50NjRfdCkoYXJnMVsxMl0pIDw8IDQ1KTsKKyAgdWludDY0X3QgeDIxID0gKCh1aW50NjRfdCko
YXJnMVsxMV0pIDw8IDM3KTsKKyAgdWludDY0X3QgeDIyID0gKCh1aW50NjRfdCkoYXJnMVsxMF0p
IDw8IDI5KTsKKyAgdWludDY0X3QgeDIzID0gKCh1aW50NjRfdCkoYXJnMVs5XSkgPDwgMjEpOwor
ICB1aW50NjRfdCB4MjQgPSAoKHVpbnQ2NF90KShhcmcxWzhdKSA8PCAxMyk7CisgIHVpbnQ2NF90
IHgyNSA9ICgodWludDY0X3QpKGFyZzFbN10pIDw8IDUpOworICB1aW50NjRfdCB4MjYgPSAoKHVp
bnQ2NF90KShhcmcxWzZdKSA8PCA0OCk7CisgIHVpbnQ2NF90IHgyNyA9ICgodWludDY0X3QpKGFy
ZzFbNV0pIDw8IDQwKTsKKyAgdWludDY0X3QgeDI4ID0gKCh1aW50NjRfdCkoYXJnMVs0XSkgPDwg
MzIpOworICB1aW50NjRfdCB4MjkgPSAoKHVpbnQ2NF90KShhcmcxWzNdKSA8PCAyNCk7CisgIHVp
bnQ2NF90IHgzMCA9ICgodWludDY0X3QpKGFyZzFbMl0pIDw8IDE2KTsKKyAgdWludDY0X3QgeDMx
ID0gKCh1aW50NjRfdCkoYXJnMVsxXSkgPDwgOCk7CisgIHVpbnQ4X3QgeDMyID0gKGFyZzFbMF0p
OworICB1aW50NjRfdCB4MzMgPSAoeDMyICsgKHgzMSArICh4MzAgKyAoeDI5ICsgKHgyOCArICh4
MjcgKyB4MjYpKSkpKSk7CisgIHVpbnQ4X3QgeDM0ID0gKHVpbnQ4X3QpKHgzMyA+PiA1MSk7Cisg
IHVpbnQ2NF90IHgzNSA9ICh4MzMgJiBVSU5UNjRfQygweDdmZmZmZmZmZmZmZmYpKTsKKyAgdWlu
dDY0X3QgeDM2ID0gKHg2ICsgKHg1ICsgKHg0ICsgKHgzICsgKHgyICsgeDEpKSkpKTsKKyAgdWlu
dDY0X3QgeDM3ID0gKHgxMiArICh4MTEgKyAoeDEwICsgKHg5ICsgKHg4ICsgeDcpKSkpKTsKKyAg
dWludDY0X3QgeDM4ID0gKHgxOSArICh4MTggKyAoeDE3ICsgKHgxNiArICh4MTUgKyAoeDE0ICsg
eDEzKSkpKSkpOworICB1aW50NjRfdCB4MzkgPSAoeDI1ICsgKHgyNCArICh4MjMgKyAoeDIyICsg
KHgyMSArIHgyMCkpKSkpOworICB1aW50NjRfdCB4NDAgPSAoeDM0ICsgeDM5KTsKKyAgdWludDhf
dCB4NDEgPSAodWludDhfdCkoeDQwID4+IDUxKTsKKyAgdWludDY0X3QgeDQyID0gKHg0MCAmIFVJ
TlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICB1aW50NjRfdCB4NDMgPSAoeDQxICsgeDM4KTsK
KyAgdWludDhfdCB4NDQgPSAodWludDhfdCkoeDQzID4+IDUxKTsKKyAgdWludDY0X3QgeDQ1ID0g
KHg0MyAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICB1aW50NjRfdCB4NDYgPSAoeDQ0
ICsgeDM3KTsKKyAgdWludDhfdCB4NDcgPSAodWludDhfdCkoeDQ2ID4+IDUxKTsKKyAgdWludDY0
X3QgeDQ4ID0gKHg0NiAmIFVJTlQ2NF9DKDB4N2ZmZmZmZmZmZmZmZikpOworICB1aW50NjRfdCB4
NDkgPSAoeDQ3ICsgeDM2KTsKKyAgb3V0MVswXSA9IHgzNTsKKyAgb3V0MVsxXSA9IHg0MjsKKyAg
b3V0MVsyXSA9IHg0NTsKKyAgb3V0MVszXSA9IHg0ODsKKyAgb3V0MVs0XSA9IHg0OTsKK30KKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2ZpYXQvbWFrZV9jdXJ2ZTI1NTE5X3RhYmxlcy5w
eSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9maWF0L21ha2VfY3VydmUyNTUxOV90YWJsZXMucHkKb2xkIG1v
ZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2Zp
YXQvcDI1Ni5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2ZpYXQvcDI1Ni5jCmluZGV4IDQxNGI3ZTBjNGQ3
ODE3NTI4ZTU3NDBmMGVhM2IxZGFlY2M4ZTVjNDkuLjIzZWM3MWY5OGNkNzUxODRiMTEzY2JjZDdh
ZWEwZTJmN2NkOWVkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9maWF0L3AyNTYuYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZmlhdC9wMjU2LmMKQEAgLTQ2LDc5MSArNDYsMTEgQEAKIC8v
IE1TVkMgZG9lcyBub3QgaW1wbGVtZW50IHVpbnQxMjhfdCwgYW5kIGNyYXNoZXMgd2l0aCBpbnRy
aW5zaWNzCiAjaWYgZGVmaW5lZChCT1JJTkdTU0xfSEFTX1VJTlQxMjgpCiAjZGVmaW5lIEJPUklO
R1NTTF9OSVNUUDI1Nl82NEJJVCAxCi0jZW5kaWYKLQotLy8gImludHJpbnNpY3MiCi0KLSNpZiBk
ZWZpbmVkKEJPUklOR1NTTF9OSVNUUDI1Nl82NEJJVCkKLQotc3RhdGljIHVpbnQ2NF90IG11bHhf
dTY0KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIsIHVpbnQ2NF90ICpoaWdoKSB7Ci0gIHVpbnQxMjhf
dCB4ID0gKHVpbnQxMjhfdClhICogYjsKLSAgKmhpZ2ggPSAodWludDY0X3QpICh4ID4+IDY0KTsK
LSAgcmV0dXJuICh1aW50NjRfdCkgeDsKLX0KLQotc3RhdGljIHVpbnQ2NF90IGFkZGNhcnJ5eF91
NjQodWludDhfdCBjLCB1aW50NjRfdCBhLCB1aW50NjRfdCBiLCB1aW50NjRfdCAqbG93KSB7Ci0g
IHVpbnQxMjhfdCB4ID0gKHVpbnQxMjhfdClhICsgYiArIGM7Ci0gICpsb3cgPSAodWludDY0X3Qp
IHg7Ci0gIHJldHVybiAodWludDY0X3QpICh4Pj42NCk7Ci19Ci0KLXN0YXRpYyB1aW50NjRfdCBz
dWJib3Jyb3dfdTY0KHVpbnQ4X3QgYywgdWludDY0X3QgYSwgdWludDY0X3QgYiwgdWludDY0X3Qg
KmxvdykgewotICB1aW50MTI4X3QgdCA9ICgodWludDEyOF90KSBiICsgYyk7Ci0gIHVpbnQxMjhf
dCB4ID0gYS10OwotICAqbG93ID0gKHVpbnQ2NF90KSB4OwotICByZXR1cm4gKHVpbnQ4X3QpICh4
Pj4xMjcpOwotfQotCi1zdGF0aWMgdWludDY0X3QgY21vdnpuel91NjQodWludDY0X3QgdCwgdWlu
dDY0X3QgeiwgdWludDY0X3QgbnopIHsKLSAgdCA9IC0hIXQ7IC8vIGFsbCBzZXQgaWYgbm9uemVy
bywgMCBpZiAwCi0gIHJldHVybiAodCZueikgfCAoKH50KSZ6KTsKLX0KLQorI2luY2x1ZGUgInAy
NTZfNjQuaCIKICNlbHNlCi0KLXN0YXRpYyB1aW50MzJfdCBtdWx4X3UzMih1aW50MzJfdCBhLCB1
aW50MzJfdCBiLCB1aW50MzJfdCAqaGlnaCkgewotICB1aW50NjRfdCB4ID0gKHVpbnQ2NF90KWEg
KiBiOwotICAqaGlnaCA9ICh1aW50MzJfdCkgKHggPj4gMzIpOwotICByZXR1cm4gKHVpbnQzMl90
KSB4OwotfQotCi1zdGF0aWMgdWludDMyX3QgYWRkY2Fycnl4X3UzMih1aW50OF90IGMsIHVpbnQz
Ml90IGEsIHVpbnQzMl90IGIsIHVpbnQzMl90ICpsb3cpIHsKLSAgdWludDY0X3QgeCA9ICh1aW50
NjRfdClhICsgYiArIGM7Ci0gICpsb3cgPSAodWludDMyX3QpIHg7Ci0gIHJldHVybiAodWludDMy
X3QpICh4Pj4zMik7Ci19Ci0KLXN0YXRpYyB1aW50MzJfdCBzdWJib3Jyb3dfdTMyKHVpbnQ4X3Qg
YywgdWludDMyX3QgYSwgdWludDMyX3QgYiwgdWludDMyX3QgKmxvdykgewotICB1aW50NjRfdCB0
ID0gKCh1aW50NjRfdCkgYiArIGMpOwotICB1aW50NjRfdCB4ID0gYS10OwotICAqbG93ID0gKHVp
bnQzMl90KSB4OwotICByZXR1cm4gKHVpbnQ4X3QpICh4Pj42Myk7Ci19Ci0KLXN0YXRpYyB1aW50
MzJfdCBjbW92em56X3UzMih1aW50MzJfdCB0LCB1aW50MzJfdCB6LCB1aW50MzJfdCBueikgewot
ICB0ID0gLSEhdDsgLy8gYWxsIHNldCBpZiBub256ZXJvLCAwIGlmIDAKLSAgcmV0dXJuICh0Jm56
KSB8ICgofnQpJnopOwotfQotCisjaW5jbHVkZSAicDI1Nl8zMi5oIgogI2VuZGlmCiAKLS8vIGZp
YXQtY3J5cHRvIGdlbmVyYXRlZCBjb2RlCi0KLSNpZiBkZWZpbmVkKEJPUklOR1NTTF9OSVNUUDI1
Nl82NEJJVCkKLQotc3RhdGljIHZvaWQgZmVfYWRkKHVpbnQ2NF90IG91dFs0XSwgY29uc3QgdWlu
dDY0X3QgaW4xWzRdLCBjb25zdCB1aW50NjRfdCBpbjJbNF0pIHsKLSAgeyBjb25zdCB1aW50NjRf
dCB4OCA9IGluMVszXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4OSA9IGluMVsyXTsKLSAgeyBjb25z
dCB1aW50NjRfdCB4NyA9IGluMVsxXTsKLSAgeyBjb25zdCB1aW50NjRfdCB4NSA9IGluMVswXTsK
LSAgeyBjb25zdCB1aW50NjRfdCB4MTQgPSBpbjJbM107Ci0gIHsgY29uc3QgdWludDY0X3QgeDE1
ID0gaW4yWzJdOwotICB7IGNvbnN0IHVpbnQ2NF90IHgxMyA9IGluMlsxXTsKLSAgeyBjb25zdCB1
aW50NjRfdCB4MTEgPSBpbjJbMF07Ci0gIHsgdWludDY0X3QgeDE3OyB1aW50OF90IHgxOCA9IGFk
ZGNhcnJ5eF91NjQoMHgwLCB4NSwgeDExLCAmeDE3KTsKLSAgeyB1aW50NjRfdCB4MjA7IHVpbnQ4
X3QgeDIxID0gYWRkY2Fycnl4X3U2NCh4MTgsIHg3LCB4MTMsICZ4MjApOwotICB7IHVpbnQ2NF90
IHgyMzsgdWludDhfdCB4MjQgPSBhZGRjYXJyeXhfdTY0KHgyMSwgeDksIHgxNSwgJngyMyk7Ci0g
IHsgdWludDY0X3QgeDI2OyB1aW50OF90IHgyNyA9IGFkZGNhcnJ5eF91NjQoeDI0LCB4OCwgeDE0
LCAmeDI2KTsKLSAgeyB1aW50NjRfdCB4Mjk7IHVpbnQ4X3QgeDMwID0gc3ViYm9ycm93X3U2NCgw
eDAsIHgxNywgMHhmZmZmZmZmZmZmZmZmZmZmTCwgJngyOSk7Ci0gIHsgdWludDY0X3QgeDMyOyB1
aW50OF90IHgzMyA9IHN1YmJvcnJvd191NjQoeDMwLCB4MjAsIDB4ZmZmZmZmZmYsICZ4MzIpOwot
ICB7IHVpbnQ2NF90IHgzNTsgdWludDhfdCB4MzYgPSBzdWJib3Jyb3dfdTY0KHgzMywgeDIzLCAw
eDAsICZ4MzUpOwotICB7IHVpbnQ2NF90IHgzODsgdWludDhfdCB4MzkgPSBzdWJib3Jyb3dfdTY0
KHgzNiwgeDI2LCAweGZmZmZmZmZmMDAwMDAwMDFMLCAmeDM4KTsKLSAgeyB1aW50NjRfdCBfMTsg
dWludDhfdCB4NDIgPSBzdWJib3Jyb3dfdTY0KHgzOSwgeDI3LCAweDAsICZfMSk7Ci0gIHsgdWlu
dDY0X3QgeDQzID0gY21vdnpuel91NjQoeDQyLCB4MzgsIHgyNik7Ci0gIHsgdWludDY0X3QgeDQ0
ID0gY21vdnpuel91NjQoeDQyLCB4MzUsIHgyMyk7Ci0gIHsgdWludDY0X3QgeDQ1ID0gY21vdnpu
el91NjQoeDQyLCB4MzIsIHgyMCk7Ci0gIHsgdWludDY0X3QgeDQ2ID0gY21vdnpuel91NjQoeDQy
LCB4MjksIHgxNyk7Ci0gIG91dFswXSA9IHg0NjsKLSAgb3V0WzFdID0geDQ1OwotICBvdXRbMl0g
PSB4NDQ7Ci0gIG91dFszXSA9IHg0MzsKLSAgfX19fX19fX19fX19fX19fX19fX19Ci19Ci0KLS8v
IGZlX29wIHNldHMgb3V0ID0gLWluCi1zdGF0aWMgdm9pZCBmZV9vcHAodWludDY0X3Qgb3V0WzRd
LCBjb25zdCB1aW50NjRfdCBpbjFbNF0pIHsKLSAgY29uc3QgdWludDY0X3QgeDUgPSBpbjFbM107
Ci0gIGNvbnN0IHVpbnQ2NF90IHg2ID0gaW4xWzJdOwotICBjb25zdCB1aW50NjRfdCB4NCA9IGlu
MVsxXTsKLSAgY29uc3QgdWludDY0X3QgeDIgPSBpbjFbMF07Ci0gIHVpbnQ2NF90IHg4OyB1aW50
OF90IHg5ID0gc3ViYm9ycm93X3U2NCgweDAsIDB4MCwgeDIsICZ4OCk7Ci0gIHVpbnQ2NF90IHgx
MTsgdWludDhfdCB4MTIgPSBzdWJib3Jyb3dfdTY0KHg5LCAweDAsIHg0LCAmeDExKTsKLSAgdWlu
dDY0X3QgeDE0OyB1aW50OF90IHgxNSA9IHN1YmJvcnJvd191NjQoeDEyLCAweDAsIHg2LCAmeDE0
KTsKLSAgdWludDY0X3QgeDE3OyB1aW50OF90IHgxOCA9IHN1YmJvcnJvd191NjQoeDE1LCAweDAs
IHg1LCAmeDE3KTsKLSAgdWludDY0X3QgeDE5ID0gKHVpbnQ2NF90KWNtb3Z6bnpfdTY0KHgxOCwg
MHgwLCAweGZmZmZmZmZmZmZmZmZmZmZMKTsKLSAgdWludDY0X3QgeDIwID0gKHgxOSAmIDB4ZmZm
ZmZmZmZmZmZmZmZmZkwpOwotICB1aW50NjRfdCB4MjI7IHVpbnQ4X3QgeDIzID0gYWRkY2Fycnl4
X3U2NCgweDAsIHg4LCB4MjAsICZ4MjIpOwotICB1aW50NjRfdCB4MjQgPSAoeDE5ICYgMHhmZmZm
ZmZmZik7Ci0gIHVpbnQ2NF90IHgyNjsgdWludDhfdCB4MjcgPSBhZGRjYXJyeXhfdTY0KHgyMywg
eDExLCB4MjQsICZ4MjYpOwotICB1aW50NjRfdCB4Mjk7IHVpbnQ4X3QgeDMwID0gYWRkY2Fycnl4
X3U2NCh4MjcsIHgxNCwgMHgwLCAmeDI5KTsKLSAgdWludDY0X3QgeDMxID0gKHgxOSAmIDB4ZmZm
ZmZmZmYwMDAwMDAwMUwpOwotICB1aW50NjRfdCB4MzM7IGFkZGNhcnJ5eF91NjQoeDMwLCB4MTcs
IHgzMSwgJngzMyk7Ci0gIG91dFswXSA9IHgyMjsKLSAgb3V0WzFdID0geDI2OwotICBvdXRbMl0g
PSB4Mjk7Ci0gIG91dFszXSA9IHgzMzsKLX0KLQotc3RhdGljIHZvaWQgZmVfbXVsKHVpbnQ2NF90
IG91dFs0XSwgY29uc3QgdWludDY0X3QgaW4xWzRdLCBjb25zdCB1aW50NjRfdCBpbjJbNF0pIHsK
LSAgY29uc3QgdWludDY0X3QgeDggPSBpbjFbM107Ci0gIGNvbnN0IHVpbnQ2NF90IHg5ID0gaW4x
WzJdOwotICBjb25zdCB1aW50NjRfdCB4NyA9IGluMVsxXTsKLSAgY29uc3QgdWludDY0X3QgeDUg
PSBpbjFbMF07Ci0gIGNvbnN0IHVpbnQ2NF90IHgxNCA9IGluMlszXTsKLSAgY29uc3QgdWludDY0
X3QgeDE1ID0gaW4yWzJdOwotICBjb25zdCB1aW50NjRfdCB4MTMgPSBpbjJbMV07Ci0gIGNvbnN0
IHVpbnQ2NF90IHgxMSA9IGluMlswXTsKLSAgdWludDY0X3QgeDE4OyAgdWludDY0X3QgeDE3ID0g
bXVseF91NjQoeDUsIHgxMSwgJngxOCk7Ci0gIHVpbnQ2NF90IHgyMTsgIHVpbnQ2NF90IHgyMCA9
IG11bHhfdTY0KHg1LCB4MTMsICZ4MjEpOwotICB1aW50NjRfdCB4MjQ7ICB1aW50NjRfdCB4MjMg
PSBtdWx4X3U2NCh4NSwgeDE1LCAmeDI0KTsKLSAgdWludDY0X3QgeDI3OyAgdWludDY0X3QgeDI2
ID0gbXVseF91NjQoeDUsIHgxNCwgJngyNyk7Ci0gIHVpbnQ2NF90IHgyOTsgdWludDhfdCB4MzAg
PSBhZGRjYXJyeXhfdTY0KDB4MCwgeDE4LCB4MjAsICZ4MjkpOwotICB1aW50NjRfdCB4MzI7IHVp
bnQ4X3QgeDMzID0gYWRkY2Fycnl4X3U2NCh4MzAsIHgyMSwgeDIzLCAmeDMyKTsKLSAgdWludDY0
X3QgeDM1OyB1aW50OF90IHgzNiA9IGFkZGNhcnJ5eF91NjQoeDMzLCB4MjQsIHgyNiwgJngzNSk7
Ci0gIHVpbnQ2NF90IHgzODsgYWRkY2Fycnl4X3U2NCgweDAsIHgzNiwgeDI3LCAmeDM4KTsKLSAg
dWludDY0X3QgeDQyOyAgdWludDY0X3QgeDQxID0gbXVseF91NjQoeDE3LCAweGZmZmZmZmZmZmZm
ZmZmZmZMLCAmeDQyKTsKLSAgdWludDY0X3QgeDQ1OyAgdWludDY0X3QgeDQ0ID0gbXVseF91NjQo
eDE3LCAweGZmZmZmZmZmLCAmeDQ1KTsKLSAgdWludDY0X3QgeDQ4OyAgdWludDY0X3QgeDQ3ID0g
bXVseF91NjQoeDE3LCAweGZmZmZmZmZmMDAwMDAwMDFMLCAmeDQ4KTsKLSAgdWludDY0X3QgeDUw
OyB1aW50OF90IHg1MSA9IGFkZGNhcnJ5eF91NjQoMHgwLCB4NDIsIHg0NCwgJng1MCk7Ci0gIHVp
bnQ2NF90IHg1MzsgdWludDhfdCB4NTQgPSBhZGRjYXJyeXhfdTY0KHg1MSwgeDQ1LCAweDAsICZ4
NTMpOwotICB1aW50NjRfdCB4NTY7IHVpbnQ4X3QgeDU3ID0gYWRkY2Fycnl4X3U2NCh4NTQsIDB4
MCwgeDQ3LCAmeDU2KTsKLSAgdWludDY0X3QgeDU5OyBhZGRjYXJyeXhfdTY0KDB4MCwgeDU3LCB4
NDgsICZ4NTkpOwotICB1aW50NjRfdCBfMjsgdWludDhfdCB4NjMgPSBhZGRjYXJyeXhfdTY0KDB4
MCwgeDE3LCB4NDEsICZfMik7Ci0gIHVpbnQ2NF90IHg2NTsgdWludDhfdCB4NjYgPSBhZGRjYXJy
eXhfdTY0KHg2MywgeDI5LCB4NTAsICZ4NjUpOwotICB1aW50NjRfdCB4Njg7IHVpbnQ4X3QgeDY5
ID0gYWRkY2Fycnl4X3U2NCh4NjYsIHgzMiwgeDUzLCAmeDY4KTsKLSAgdWludDY0X3QgeDcxOyB1
aW50OF90IHg3MiA9IGFkZGNhcnJ5eF91NjQoeDY5LCB4MzUsIHg1NiwgJng3MSk7Ci0gIHVpbnQ2
NF90IHg3NDsgdWludDhfdCB4NzUgPSBhZGRjYXJyeXhfdTY0KHg3MiwgeDM4LCB4NTksICZ4NzQp
OwotICB1aW50NjRfdCB4Nzg7ICB1aW50NjRfdCB4NzcgPSBtdWx4X3U2NCh4NywgeDExLCAmeDc4
KTsKLSAgdWludDY0X3QgeDgxOyAgdWludDY0X3QgeDgwID0gbXVseF91NjQoeDcsIHgxMywgJng4
MSk7Ci0gIHVpbnQ2NF90IHg4NDsgIHVpbnQ2NF90IHg4MyA9IG11bHhfdTY0KHg3LCB4MTUsICZ4
ODQpOwotICB1aW50NjRfdCB4ODc7ICB1aW50NjRfdCB4ODYgPSBtdWx4X3U2NCh4NywgeDE0LCAm
eDg3KTsKLSAgdWludDY0X3QgeDg5OyB1aW50OF90IHg5MCA9IGFkZGNhcnJ5eF91NjQoMHgwLCB4
NzgsIHg4MCwgJng4OSk7Ci0gIHVpbnQ2NF90IHg5MjsgdWludDhfdCB4OTMgPSBhZGRjYXJyeXhf
dTY0KHg5MCwgeDgxLCB4ODMsICZ4OTIpOwotICB1aW50NjRfdCB4OTU7IHVpbnQ4X3QgeDk2ID0g
YWRkY2Fycnl4X3U2NCh4OTMsIHg4NCwgeDg2LCAmeDk1KTsKLSAgdWludDY0X3QgeDk4OyBhZGRj
YXJyeXhfdTY0KDB4MCwgeDk2LCB4ODcsICZ4OTgpOwotICB1aW50NjRfdCB4MTAxOyB1aW50OF90
IHgxMDIgPSBhZGRjYXJyeXhfdTY0KDB4MCwgeDY1LCB4NzcsICZ4MTAxKTsKLSAgdWludDY0X3Qg
eDEwNDsgdWludDhfdCB4MTA1ID0gYWRkY2Fycnl4X3U2NCh4MTAyLCB4NjgsIHg4OSwgJngxMDQp
OwotICB1aW50NjRfdCB4MTA3OyB1aW50OF90IHgxMDggPSBhZGRjYXJyeXhfdTY0KHgxMDUsIHg3
MSwgeDkyLCAmeDEwNyk7Ci0gIHVpbnQ2NF90IHgxMTA7IHVpbnQ4X3QgeDExMSA9IGFkZGNhcnJ5
eF91NjQoeDEwOCwgeDc0LCB4OTUsICZ4MTEwKTsKLSAgdWludDY0X3QgeDExMzsgdWludDhfdCB4
MTE0ID0gYWRkY2Fycnl4X3U2NCh4MTExLCB4NzUsIHg5OCwgJngxMTMpOwotICB1aW50NjRfdCB4
MTE3OyAgdWludDY0X3QgeDExNiA9IG11bHhfdTY0KHgxMDEsIDB4ZmZmZmZmZmZmZmZmZmZmZkws
ICZ4MTE3KTsKLSAgdWludDY0X3QgeDEyMDsgIHVpbnQ2NF90IHgxMTkgPSBtdWx4X3U2NCh4MTAx
LCAweGZmZmZmZmZmLCAmeDEyMCk7Ci0gIHVpbnQ2NF90IHgxMjM7ICB1aW50NjRfdCB4MTIyID0g
bXVseF91NjQoeDEwMSwgMHhmZmZmZmZmZjAwMDAwMDAxTCwgJngxMjMpOwotICB1aW50NjRfdCB4
MTI1OyB1aW50OF90IHgxMjYgPSBhZGRjYXJyeXhfdTY0KDB4MCwgeDExNywgeDExOSwgJngxMjUp
OwotICB1aW50NjRfdCB4MTI4OyB1aW50OF90IHgxMjkgPSBhZGRjYXJyeXhfdTY0KHgxMjYsIHgx
MjAsIDB4MCwgJngxMjgpOwotICB1aW50NjRfdCB4MTMxOyB1aW50OF90IHgxMzIgPSBhZGRjYXJy
eXhfdTY0KHgxMjksIDB4MCwgeDEyMiwgJngxMzEpOwotICB1aW50NjRfdCB4MTM0OyBhZGRjYXJy
eXhfdTY0KDB4MCwgeDEzMiwgeDEyMywgJngxMzQpOwotICB1aW50NjRfdCBfMzsgdWludDhfdCB4
MTM4ID0gYWRkY2Fycnl4X3U2NCgweDAsIHgxMDEsIHgxMTYsICZfMyk7Ci0gIHVpbnQ2NF90IHgx
NDA7IHVpbnQ4X3QgeDE0MSA9IGFkZGNhcnJ5eF91NjQoeDEzOCwgeDEwNCwgeDEyNSwgJngxNDAp
OwotICB1aW50NjRfdCB4MTQzOyB1aW50OF90IHgxNDQgPSBhZGRjYXJyeXhfdTY0KHgxNDEsIHgx
MDcsIHgxMjgsICZ4MTQzKTsKLSAgdWludDY0X3QgeDE0NjsgdWludDhfdCB4MTQ3ID0gYWRkY2Fy
cnl4X3U2NCh4MTQ0LCB4MTEwLCB4MTMxLCAmeDE0Nik7Ci0gIHVpbnQ2NF90IHgxNDk7IHVpbnQ4
X3QgeDE1MCA9IGFkZGNhcnJ5eF91NjQoeDE0NywgeDExMywgeDEzNCwgJngxNDkpOwotICB1aW50
OF90IHgxNTEgPSAoeDE1MCArIHgxMTQpOwotICB1aW50NjRfdCB4MTU0OyAgdWludDY0X3QgeDE1
MyA9IG11bHhfdTY0KHg5LCB4MTEsICZ4MTU0KTsKLSAgdWludDY0X3QgeDE1NzsgIHVpbnQ2NF90
IHgxNTYgPSBtdWx4X3U2NCh4OSwgeDEzLCAmeDE1Nyk7Ci0gIHVpbnQ2NF90IHgxNjA7ICB1aW50
NjRfdCB4MTU5ID0gbXVseF91NjQoeDksIHgxNSwgJngxNjApOwotICB1aW50NjRfdCB4MTYzOyAg
dWludDY0X3QgeDE2MiA9IG11bHhfdTY0KHg5LCB4MTQsICZ4MTYzKTsKLSAgdWludDY0X3QgeDE2
NTsgdWludDhfdCB4MTY2ID0gYWRkY2Fycnl4X3U2NCgweDAsIHgxNTQsIHgxNTYsICZ4MTY1KTsK
LSAgdWludDY0X3QgeDE2ODsgdWludDhfdCB4MTY5ID0gYWRkY2Fycnl4X3U2NCh4MTY2LCB4MTU3
LCB4MTU5LCAmeDE2OCk7Ci0gIHVpbnQ2NF90IHgxNzE7IHVpbnQ4X3QgeDE3MiA9IGFkZGNhcnJ5
eF91NjQoeDE2OSwgeDE2MCwgeDE2MiwgJngxNzEpOwotICB1aW50NjRfdCB4MTc0OyBhZGRjYXJy
eXhfdTY0KDB4MCwgeDE3MiwgeDE2MywgJngxNzQpOwotICB1aW50NjRfdCB4MTc3OyB1aW50OF90
IHgxNzggPSBhZGRjYXJyeXhfdTY0KDB4MCwgeDE0MCwgeDE1MywgJngxNzcpOwotICB1aW50NjRf
dCB4MTgwOyB1aW50OF90IHgxODEgPSBhZGRjYXJyeXhfdTY0KHgxNzgsIHgxNDMsIHgxNjUsICZ4
MTgwKTsKLSAgdWludDY0X3QgeDE4MzsgdWludDhfdCB4MTg0ID0gYWRkY2Fycnl4X3U2NCh4MTgx
LCB4MTQ2LCB4MTY4LCAmeDE4Myk7Ci0gIHVpbnQ2NF90IHgxODY7IHVpbnQ4X3QgeDE4NyA9IGFk
ZGNhcnJ5eF91NjQoeDE4NCwgeDE0OSwgeDE3MSwgJngxODYpOwotICB1aW50NjRfdCB4MTg5OyB1
aW50OF90IHgxOTAgPSBhZGRjYXJyeXhfdTY0KHgxODcsIHgxNTEsIHgxNzQsICZ4MTg5KTsKLSAg
dWludDY0X3QgeDE5MzsgIHVpbnQ2NF90IHgxOTIgPSBtdWx4X3U2NCh4MTc3LCAweGZmZmZmZmZm
ZmZmZmZmZmZMLCAmeDE5Myk7Ci0gIHVpbnQ2NF90IHgxOTY7ICB1aW50NjRfdCB4MTk1ID0gbXVs
eF91NjQoeDE3NywgMHhmZmZmZmZmZiwgJngxOTYpOwotICB1aW50NjRfdCB4MTk5OyAgdWludDY0
X3QgeDE5OCA9IG11bHhfdTY0KHgxNzcsIDB4ZmZmZmZmZmYwMDAwMDAwMUwsICZ4MTk5KTsKLSAg
dWludDY0X3QgeDIwMTsgdWludDhfdCB4MjAyID0gYWRkY2Fycnl4X3U2NCgweDAsIHgxOTMsIHgx
OTUsICZ4MjAxKTsKLSAgdWludDY0X3QgeDIwNDsgdWludDhfdCB4MjA1ID0gYWRkY2Fycnl4X3U2
NCh4MjAyLCB4MTk2LCAweDAsICZ4MjA0KTsKLSAgdWludDY0X3QgeDIwNzsgdWludDhfdCB4MjA4
ID0gYWRkY2Fycnl4X3U2NCh4MjA1LCAweDAsIHgxOTgsICZ4MjA3KTsKLSAgdWludDY0X3QgeDIx
MDsgYWRkY2Fycnl4X3U2NCgweDAsIHgyMDgsIHgxOTksICZ4MjEwKTsKLSAgdWludDY0X3QgXzQ7
IHVpbnQ4X3QgeDIxNCA9IGFkZGNhcnJ5eF91NjQoMHgwLCB4MTc3LCB4MTkyLCAmXzQpOwotICB1
aW50NjRfdCB4MjE2OyB1aW50OF90IHgyMTcgPSBhZGRjYXJyeXhfdTY0KHgyMTQsIHgxODAsIHgy
MDEsICZ4MjE2KTsKLSAgdWludDY0X3QgeDIxOTsgdWludDhfdCB4MjIwID0gYWRkY2Fycnl4X3U2
NCh4MjE3LCB4MTgzLCB4MjA0LCAmeDIxOSk7Ci0gIHVpbnQ2NF90IHgyMjI7IHVpbnQ4X3QgeDIy
MyA9IGFkZGNhcnJ5eF91NjQoeDIyMCwgeDE4NiwgeDIwNywgJngyMjIpOwotICB1aW50NjRfdCB4
MjI1OyB1aW50OF90IHgyMjYgPSBhZGRjYXJyeXhfdTY0KHgyMjMsIHgxODksIHgyMTAsICZ4MjI1
KTsKLSAgdWludDhfdCB4MjI3ID0gKHgyMjYgKyB4MTkwKTsKLSAgdWludDY0X3QgeDIzMDsgIHVp
bnQ2NF90IHgyMjkgPSBtdWx4X3U2NCh4OCwgeDExLCAmeDIzMCk7Ci0gIHVpbnQ2NF90IHgyMzM7
ICB1aW50NjRfdCB4MjMyID0gbXVseF91NjQoeDgsIHgxMywgJngyMzMpOwotICB1aW50NjRfdCB4
MjM2OyAgdWludDY0X3QgeDIzNSA9IG11bHhfdTY0KHg4LCB4MTUsICZ4MjM2KTsKLSAgdWludDY0
X3QgeDIzOTsgIHVpbnQ2NF90IHgyMzggPSBtdWx4X3U2NCh4OCwgeDE0LCAmeDIzOSk7Ci0gIHVp
bnQ2NF90IHgyNDE7IHVpbnQ4X3QgeDI0MiA9IGFkZGNhcnJ5eF91NjQoMHgwLCB4MjMwLCB4MjMy
LCAmeDI0MSk7Ci0gIHVpbnQ2NF90IHgyNDQ7IHVpbnQ4X3QgeDI0NSA9IGFkZGNhcnJ5eF91NjQo
eDI0MiwgeDIzMywgeDIzNSwgJngyNDQpOwotICB1aW50NjRfdCB4MjQ3OyB1aW50OF90IHgyNDgg
PSBhZGRjYXJyeXhfdTY0KHgyNDUsIHgyMzYsIHgyMzgsICZ4MjQ3KTsKLSAgdWludDY0X3QgeDI1
MDsgYWRkY2Fycnl4X3U2NCgweDAsIHgyNDgsIHgyMzksICZ4MjUwKTsKLSAgdWludDY0X3QgeDI1
MzsgdWludDhfdCB4MjU0ID0gYWRkY2Fycnl4X3U2NCgweDAsIHgyMTYsIHgyMjksICZ4MjUzKTsK
LSAgdWludDY0X3QgeDI1NjsgdWludDhfdCB4MjU3ID0gYWRkY2Fycnl4X3U2NCh4MjU0LCB4MjE5
LCB4MjQxLCAmeDI1Nik7Ci0gIHVpbnQ2NF90IHgyNTk7IHVpbnQ4X3QgeDI2MCA9IGFkZGNhcnJ5
eF91NjQoeDI1NywgeDIyMiwgeDI0NCwgJngyNTkpOwotICB1aW50NjRfdCB4MjYyOyB1aW50OF90
IHgyNjMgPSBhZGRjYXJyeXhfdTY0KHgyNjAsIHgyMjUsIHgyNDcsICZ4MjYyKTsKLSAgdWludDY0
X3QgeDI2NTsgdWludDhfdCB4MjY2ID0gYWRkY2Fycnl4X3U2NCh4MjYzLCB4MjI3LCB4MjUwLCAm
eDI2NSk7Ci0gIHVpbnQ2NF90IHgyNjk7ICB1aW50NjRfdCB4MjY4ID0gbXVseF91NjQoeDI1Mywg
MHhmZmZmZmZmZmZmZmZmZmZmTCwgJngyNjkpOwotICB1aW50NjRfdCB4MjcyOyAgdWludDY0X3Qg
eDI3MSA9IG11bHhfdTY0KHgyNTMsIDB4ZmZmZmZmZmYsICZ4MjcyKTsKLSAgdWludDY0X3QgeDI3
NTsgIHVpbnQ2NF90IHgyNzQgPSBtdWx4X3U2NCh4MjUzLCAweGZmZmZmZmZmMDAwMDAwMDFMLCAm
eDI3NSk7Ci0gIHVpbnQ2NF90IHgyNzc7IHVpbnQ4X3QgeDI3OCA9IGFkZGNhcnJ5eF91NjQoMHgw
LCB4MjY5LCB4MjcxLCAmeDI3Nyk7Ci0gIHVpbnQ2NF90IHgyODA7IHVpbnQ4X3QgeDI4MSA9IGFk
ZGNhcnJ5eF91NjQoeDI3OCwgeDI3MiwgMHgwLCAmeDI4MCk7Ci0gIHVpbnQ2NF90IHgyODM7IHVp
bnQ4X3QgeDI4NCA9IGFkZGNhcnJ5eF91NjQoeDI4MSwgMHgwLCB4Mjc0LCAmeDI4Myk7Ci0gIHVp
bnQ2NF90IHgyODY7IGFkZGNhcnJ5eF91NjQoMHgwLCB4Mjg0LCB4Mjc1LCAmeDI4Nik7Ci0gIHVp
bnQ2NF90IF81OyB1aW50OF90IHgyOTAgPSBhZGRjYXJyeXhfdTY0KDB4MCwgeDI1MywgeDI2OCwg
Jl81KTsKLSAgdWludDY0X3QgeDI5MjsgdWludDhfdCB4MjkzID0gYWRkY2Fycnl4X3U2NCh4Mjkw
LCB4MjU2LCB4Mjc3LCAmeDI5Mik7Ci0gIHVpbnQ2NF90IHgyOTU7IHVpbnQ4X3QgeDI5NiA9IGFk
ZGNhcnJ5eF91NjQoeDI5MywgeDI1OSwgeDI4MCwgJngyOTUpOwotICB1aW50NjRfdCB4Mjk4OyB1
aW50OF90IHgyOTkgPSBhZGRjYXJyeXhfdTY0KHgyOTYsIHgyNjIsIHgyODMsICZ4Mjk4KTsKLSAg
dWludDY0X3QgeDMwMTsgdWludDhfdCB4MzAyID0gYWRkY2Fycnl4X3U2NCh4Mjk5LCB4MjY1LCB4
Mjg2LCAmeDMwMSk7Ci0gIHVpbnQ4X3QgeDMwMyA9ICh4MzAyICsgeDI2Nik7Ci0gIHVpbnQ2NF90
IHgzMDU7IHVpbnQ4X3QgeDMwNiA9IHN1YmJvcnJvd191NjQoMHgwLCB4MjkyLCAweGZmZmZmZmZm
ZmZmZmZmZmZMLCAmeDMwNSk7Ci0gIHVpbnQ2NF90IHgzMDg7IHVpbnQ4X3QgeDMwOSA9IHN1YmJv
cnJvd191NjQoeDMwNiwgeDI5NSwgMHhmZmZmZmZmZiwgJngzMDgpOwotICB1aW50NjRfdCB4MzEx
OyB1aW50OF90IHgzMTIgPSBzdWJib3Jyb3dfdTY0KHgzMDksIHgyOTgsIDB4MCwgJngzMTEpOwot
ICB1aW50NjRfdCB4MzE0OyB1aW50OF90IHgzMTUgPSBzdWJib3Jyb3dfdTY0KHgzMTIsIHgzMDEs
IDB4ZmZmZmZmZmYwMDAwMDAwMUwsICZ4MzE0KTsKLSAgdWludDY0X3QgXzY7IHVpbnQ4X3QgeDMx
OCA9IHN1YmJvcnJvd191NjQoeDMxNSwgeDMwMywgMHgwLCAmXzYpOwotICB1aW50NjRfdCB4MzE5
ID0gY21vdnpuel91NjQoeDMxOCwgeDMxNCwgeDMwMSk7Ci0gIHVpbnQ2NF90IHgzMjAgPSBjbW92
em56X3U2NCh4MzE4LCB4MzExLCB4Mjk4KTsKLSAgdWludDY0X3QgeDMyMSA9IGNtb3Z6bnpfdTY0
KHgzMTgsIHgzMDgsIHgyOTUpOwotICB1aW50NjRfdCB4MzIyID0gY21vdnpuel91NjQoeDMxOCwg
eDMwNSwgeDI5Mik7Ci0gIG91dFswXSA9IHgzMjI7Ci0gIG91dFsxXSA9IHgzMjE7Ci0gIG91dFsy
XSA9IHgzMjA7Ci0gIG91dFszXSA9IHgzMTk7Ci19Ci0KLXN0YXRpYyB2b2lkIGZlX3N1Yih1aW50
NjRfdCBvdXRbNF0sIGNvbnN0IHVpbnQ2NF90IGluMVs0XSwgY29uc3QgdWludDY0X3QgaW4yWzRd
KSB7Ci0gIGNvbnN0IHVpbnQ2NF90IHg4ID0gaW4xWzNdOwotICBjb25zdCB1aW50NjRfdCB4OSA9
IGluMVsyXTsKLSAgY29uc3QgdWludDY0X3QgeDcgPSBpbjFbMV07Ci0gIGNvbnN0IHVpbnQ2NF90
IHg1ID0gaW4xWzBdOwotICBjb25zdCB1aW50NjRfdCB4MTQgPSBpbjJbM107Ci0gIGNvbnN0IHVp
bnQ2NF90IHgxNSA9IGluMlsyXTsKLSAgY29uc3QgdWludDY0X3QgeDEzID0gaW4yWzFdOwotICBj
b25zdCB1aW50NjRfdCB4MTEgPSBpbjJbMF07Ci0gIHVpbnQ2NF90IHgxNzsgdWludDhfdCB4MTgg
PSBzdWJib3Jyb3dfdTY0KDB4MCwgeDUsIHgxMSwgJngxNyk7Ci0gIHVpbnQ2NF90IHgyMDsgdWlu
dDhfdCB4MjEgPSBzdWJib3Jyb3dfdTY0KHgxOCwgeDcsIHgxMywgJngyMCk7Ci0gIHVpbnQ2NF90
IHgyMzsgdWludDhfdCB4MjQgPSBzdWJib3Jyb3dfdTY0KHgyMSwgeDksIHgxNSwgJngyMyk7Ci0g
IHVpbnQ2NF90IHgyNjsgdWludDhfdCB4MjcgPSBzdWJib3Jyb3dfdTY0KHgyNCwgeDgsIHgxNCwg
JngyNik7Ci0gIHVpbnQ2NF90IHgyOCA9ICh1aW50NjRfdCljbW92em56X3U2NCh4MjcsIDB4MCwg
MHhmZmZmZmZmZmZmZmZmZmZmTCk7Ci0gIHVpbnQ2NF90IHgyOSA9ICh4MjggJiAweGZmZmZmZmZm
ZmZmZmZmZmZMKTsKLSAgdWludDY0X3QgeDMxOyB1aW50OF90IHgzMiA9IGFkZGNhcnJ5eF91NjQo
MHgwLCB4MTcsIHgyOSwgJngzMSk7Ci0gIHVpbnQ2NF90IHgzMyA9ICh4MjggJiAweGZmZmZmZmZm
KTsKLSAgdWludDY0X3QgeDM1OyB1aW50OF90IHgzNiA9IGFkZGNhcnJ5eF91NjQoeDMyLCB4MjAs
IHgzMywgJngzNSk7Ci0gIHVpbnQ2NF90IHgzODsgdWludDhfdCB4MzkgPSBhZGRjYXJyeXhfdTY0
KHgzNiwgeDIzLCAweDAsICZ4MzgpOwotICB1aW50NjRfdCB4NDAgPSAoeDI4ICYgMHhmZmZmZmZm
ZjAwMDAwMDAxTCk7Ci0gIHVpbnQ2NF90IHg0MjsgYWRkY2Fycnl4X3U2NCh4MzksIHgyNiwgeDQw
LCAmeDQyKTsKLSAgb3V0WzBdID0geDMxOwotICBvdXRbMV0gPSB4MzU7Ci0gIG91dFsyXSA9IHgz
ODsKLSAgb3V0WzNdID0geDQyOwotfQotCi0jZWxzZSAvLyA2NEJJVCwgZWxzZSAzMkJJVAotCi1z
dGF0aWMgdm9pZCBmZV9hZGQodWludDMyX3Qgb3V0WzhdLCBjb25zdCB1aW50MzJfdCBpbjFbOF0s
IGNvbnN0IHVpbnQzMl90IGluMls4XSkgewotICBjb25zdCB1aW50MzJfdCB4MTYgPSBpbjFbN107
Ci0gIGNvbnN0IHVpbnQzMl90IHgxNyA9IGluMVs2XTsKLSAgY29uc3QgdWludDMyX3QgeDE1ID0g
aW4xWzVdOwotICBjb25zdCB1aW50MzJfdCB4MTMgPSBpbjFbNF07Ci0gIGNvbnN0IHVpbnQzMl90
IHgxMSA9IGluMVszXTsKLSAgY29uc3QgdWludDMyX3QgeDkgPSBpbjFbMl07Ci0gIGNvbnN0IHVp
bnQzMl90IHg3ID0gaW4xWzFdOwotICBjb25zdCB1aW50MzJfdCB4NSA9IGluMVswXTsKLSAgY29u
c3QgdWludDMyX3QgeDMwID0gaW4yWzddOwotICBjb25zdCB1aW50MzJfdCB4MzEgPSBpbjJbNl07
Ci0gIGNvbnN0IHVpbnQzMl90IHgyOSA9IGluMls1XTsKLSAgY29uc3QgdWludDMyX3QgeDI3ID0g
aW4yWzRdOwotICBjb25zdCB1aW50MzJfdCB4MjUgPSBpbjJbM107Ci0gIGNvbnN0IHVpbnQzMl90
IHgyMyA9IGluMlsyXTsKLSAgY29uc3QgdWludDMyX3QgeDIxID0gaW4yWzFdOwotICBjb25zdCB1
aW50MzJfdCB4MTkgPSBpbjJbMF07Ci0gIHVpbnQzMl90IHgzMzsgdWludDhfdCB4MzQgPSBhZGRj
YXJyeXhfdTMyKDB4MCwgeDUsIHgxOSwgJngzMyk7Ci0gIHVpbnQzMl90IHgzNjsgdWludDhfdCB4
MzcgPSBhZGRjYXJyeXhfdTMyKHgzNCwgeDcsIHgyMSwgJngzNik7Ci0gIHVpbnQzMl90IHgzOTsg
dWludDhfdCB4NDAgPSBhZGRjYXJyeXhfdTMyKHgzNywgeDksIHgyMywgJngzOSk7Ci0gIHVpbnQz
Ml90IHg0MjsgdWludDhfdCB4NDMgPSBhZGRjYXJyeXhfdTMyKHg0MCwgeDExLCB4MjUsICZ4NDIp
OwotICB1aW50MzJfdCB4NDU7IHVpbnQ4X3QgeDQ2ID0gYWRkY2Fycnl4X3UzMih4NDMsIHgxMywg
eDI3LCAmeDQ1KTsKLSAgdWludDMyX3QgeDQ4OyB1aW50OF90IHg0OSA9IGFkZGNhcnJ5eF91MzIo
eDQ2LCB4MTUsIHgyOSwgJng0OCk7Ci0gIHVpbnQzMl90IHg1MTsgdWludDhfdCB4NTIgPSBhZGRj
YXJyeXhfdTMyKHg0OSwgeDE3LCB4MzEsICZ4NTEpOwotICB1aW50MzJfdCB4NTQ7IHVpbnQ4X3Qg
eDU1ID0gYWRkY2Fycnl4X3UzMih4NTIsIHgxNiwgeDMwLCAmeDU0KTsKLSAgdWludDMyX3QgeDU3
OyB1aW50OF90IHg1OCA9IHN1YmJvcnJvd191MzIoMHgwLCB4MzMsIDB4ZmZmZmZmZmYsICZ4NTcp
OwotICB1aW50MzJfdCB4NjA7IHVpbnQ4X3QgeDYxID0gc3ViYm9ycm93X3UzMih4NTgsIHgzNiwg
MHhmZmZmZmZmZiwgJng2MCk7Ci0gIHVpbnQzMl90IHg2MzsgdWludDhfdCB4NjQgPSBzdWJib3Jy
b3dfdTMyKHg2MSwgeDM5LCAweGZmZmZmZmZmLCAmeDYzKTsKLSAgdWludDMyX3QgeDY2OyB1aW50
OF90IHg2NyA9IHN1YmJvcnJvd191MzIoeDY0LCB4NDIsIDB4MCwgJng2Nik7Ci0gIHVpbnQzMl90
IHg2OTsgdWludDhfdCB4NzAgPSBzdWJib3Jyb3dfdTMyKHg2NywgeDQ1LCAweDAsICZ4NjkpOwot
ICB1aW50MzJfdCB4NzI7IHVpbnQ4X3QgeDczID0gc3ViYm9ycm93X3UzMih4NzAsIHg0OCwgMHgw
LCAmeDcyKTsKLSAgdWludDMyX3QgeDc1OyB1aW50OF90IHg3NiA9IHN1YmJvcnJvd191MzIoeDcz
LCB4NTEsIDB4MSwgJng3NSk7Ci0gIHVpbnQzMl90IHg3ODsgdWludDhfdCB4NzkgPSBzdWJib3Jy
b3dfdTMyKHg3NiwgeDU0LCAweGZmZmZmZmZmLCAmeDc4KTsKLSAgdWludDMyX3QgXzsgdWludDhf
dCB4ODIgPSBzdWJib3Jyb3dfdTMyKHg3OSwgeDU1LCAweDAsICZfKTsKLSAgdWludDMyX3QgeDgz
ID0gY21vdnpuel91MzIoeDgyLCB4NzgsIHg1NCk7Ci0gIHVpbnQzMl90IHg4NCA9IGNtb3Z6bnpf
dTMyKHg4MiwgeDc1LCB4NTEpOwotICB1aW50MzJfdCB4ODUgPSBjbW92em56X3UzMih4ODIsIHg3
MiwgeDQ4KTsKLSAgdWludDMyX3QgeDg2ID0gY21vdnpuel91MzIoeDgyLCB4NjksIHg0NSk7Ci0g
IHVpbnQzMl90IHg4NyA9IGNtb3Z6bnpfdTMyKHg4MiwgeDY2LCB4NDIpOwotICB1aW50MzJfdCB4
ODggPSBjbW92em56X3UzMih4ODIsIHg2MywgeDM5KTsKLSAgdWludDMyX3QgeDg5ID0gY21vdnpu
el91MzIoeDgyLCB4NjAsIHgzNik7Ci0gIHVpbnQzMl90IHg5MCA9IGNtb3Z6bnpfdTMyKHg4Miwg
eDU3LCB4MzMpOwotICBvdXRbMF0gPSB4OTA7Ci0gIG91dFsxXSA9IHg4OTsKLSAgb3V0WzJdID0g
eDg4OwotICBvdXRbM10gPSB4ODc7Ci0gIG91dFs0XSA9IHg4NjsKLSAgb3V0WzVdID0geDg1Owot
ICBvdXRbNl0gPSB4ODQ7Ci0gIG91dFs3XSA9IHg4MzsKLX0KLQotc3RhdGljIHZvaWQgZmVfbXVs
KHVpbnQzMl90IG91dFs4XSwgY29uc3QgdWludDMyX3QgaW4xWzhdLCBjb25zdCB1aW50MzJfdCBp
bjJbOF0pIHsKLSAgY29uc3QgdWludDMyX3QgeDE2ID0gaW4xWzddOwotICBjb25zdCB1aW50MzJf
dCB4MTcgPSBpbjFbNl07Ci0gIGNvbnN0IHVpbnQzMl90IHgxNSA9IGluMVs1XTsKLSAgY29uc3Qg
dWludDMyX3QgeDEzID0gaW4xWzRdOwotICBjb25zdCB1aW50MzJfdCB4MTEgPSBpbjFbM107Ci0g
IGNvbnN0IHVpbnQzMl90IHg5ID0gaW4xWzJdOwotICBjb25zdCB1aW50MzJfdCB4NyA9IGluMVsx
XTsKLSAgY29uc3QgdWludDMyX3QgeDUgPSBpbjFbMF07Ci0gIGNvbnN0IHVpbnQzMl90IHgzMCA9
IGluMls3XTsKLSAgY29uc3QgdWludDMyX3QgeDMxID0gaW4yWzZdOwotICBjb25zdCB1aW50MzJf
dCB4MjkgPSBpbjJbNV07Ci0gIGNvbnN0IHVpbnQzMl90IHgyNyA9IGluMls0XTsKLSAgY29uc3Qg
dWludDMyX3QgeDI1ID0gaW4yWzNdOwotICBjb25zdCB1aW50MzJfdCB4MjMgPSBpbjJbMl07Ci0g
IGNvbnN0IHVpbnQzMl90IHgyMSA9IGluMlsxXTsKLSAgY29uc3QgdWludDMyX3QgeDE5ID0gaW4y
WzBdOwotICB1aW50MzJfdCB4MzQ7ICB1aW50MzJfdCB4MzMgPSBtdWx4X3UzMih4NSwgeDE5LCAm
eDM0KTsKLSAgdWludDMyX3QgeDM3OyAgdWludDMyX3QgeDM2ID0gbXVseF91MzIoeDUsIHgyMSwg
JngzNyk7Ci0gIHVpbnQzMl90IHg0MDsgIHVpbnQzMl90IHgzOSA9IG11bHhfdTMyKHg1LCB4MjMs
ICZ4NDApOwotICB1aW50MzJfdCB4NDM7ICB1aW50MzJfdCB4NDIgPSBtdWx4X3UzMih4NSwgeDI1
LCAmeDQzKTsKLSAgdWludDMyX3QgeDQ2OyAgdWludDMyX3QgeDQ1ID0gbXVseF91MzIoeDUsIHgy
NywgJng0Nik7Ci0gIHVpbnQzMl90IHg0OTsgIHVpbnQzMl90IHg0OCA9IG11bHhfdTMyKHg1LCB4
MjksICZ4NDkpOwotICB1aW50MzJfdCB4NTI7ICB1aW50MzJfdCB4NTEgPSBtdWx4X3UzMih4NSwg
eDMxLCAmeDUyKTsKLSAgdWludDMyX3QgeDU1OyAgdWludDMyX3QgeDU0ID0gbXVseF91MzIoeDUs
IHgzMCwgJng1NSk7Ci0gIHVpbnQzMl90IHg1NzsgdWludDhfdCB4NTggPSBhZGRjYXJyeXhfdTMy
KDB4MCwgeDM0LCB4MzYsICZ4NTcpOwotICB1aW50MzJfdCB4NjA7IHVpbnQ4X3QgeDYxID0gYWRk
Y2Fycnl4X3UzMih4NTgsIHgzNywgeDM5LCAmeDYwKTsKLSAgdWludDMyX3QgeDYzOyB1aW50OF90
IHg2NCA9IGFkZGNhcnJ5eF91MzIoeDYxLCB4NDAsIHg0MiwgJng2Myk7Ci0gIHVpbnQzMl90IHg2
NjsgdWludDhfdCB4NjcgPSBhZGRjYXJyeXhfdTMyKHg2NCwgeDQzLCB4NDUsICZ4NjYpOwotICB1
aW50MzJfdCB4Njk7IHVpbnQ4X3QgeDcwID0gYWRkY2Fycnl4X3UzMih4NjcsIHg0NiwgeDQ4LCAm
eDY5KTsKLSAgdWludDMyX3QgeDcyOyB1aW50OF90IHg3MyA9IGFkZGNhcnJ5eF91MzIoeDcwLCB4
NDksIHg1MSwgJng3Mik7Ci0gIHVpbnQzMl90IHg3NTsgdWludDhfdCB4NzYgPSBhZGRjYXJyeXhf
dTMyKHg3MywgeDUyLCB4NTQsICZ4NzUpOwotICB1aW50MzJfdCB4Nzg7IGFkZGNhcnJ5eF91MzIo
MHgwLCB4NzYsIHg1NSwgJng3OCk7Ci0gIHVpbnQzMl90IHg4MjsgIHVpbnQzMl90IHg4MSA9IG11
bHhfdTMyKHgzMywgMHhmZmZmZmZmZiwgJng4Mik7Ci0gIHVpbnQzMl90IHg4NTsgIHVpbnQzMl90
IHg4NCA9IG11bHhfdTMyKHgzMywgMHhmZmZmZmZmZiwgJng4NSk7Ci0gIHVpbnQzMl90IHg4ODsg
IHVpbnQzMl90IHg4NyA9IG11bHhfdTMyKHgzMywgMHhmZmZmZmZmZiwgJng4OCk7Ci0gIHVpbnQz
Ml90IHg5MTsgIHVpbnQzMl90IHg5MCA9IG11bHhfdTMyKHgzMywgMHhmZmZmZmZmZiwgJng5MSk7
Ci0gIHVpbnQzMl90IHg5MzsgdWludDhfdCB4OTQgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDgyLCB4
ODQsICZ4OTMpOwotICB1aW50MzJfdCB4OTY7IHVpbnQ4X3QgeDk3ID0gYWRkY2Fycnl4X3UzMih4
OTQsIHg4NSwgeDg3LCAmeDk2KTsKLSAgdWludDMyX3QgeDk5OyB1aW50OF90IHgxMDAgPSBhZGRj
YXJyeXhfdTMyKHg5NywgeDg4LCAweDAsICZ4OTkpOwotICB1aW50OF90IHgxMDEgPSAoMHgwICsg
MHgwKTsKLSAgdWludDMyX3QgXzE7IHVpbnQ4X3QgeDEwNCA9IGFkZGNhcnJ5eF91MzIoMHgwLCB4
MzMsIHg4MSwgJl8xKTsKLSAgdWludDMyX3QgeDEwNjsgdWludDhfdCB4MTA3ID0gYWRkY2Fycnl4
X3UzMih4MTA0LCB4NTcsIHg5MywgJngxMDYpOwotICB1aW50MzJfdCB4MTA5OyB1aW50OF90IHgx
MTAgPSBhZGRjYXJyeXhfdTMyKHgxMDcsIHg2MCwgeDk2LCAmeDEwOSk7Ci0gIHVpbnQzMl90IHgx
MTI7IHVpbnQ4X3QgeDExMyA9IGFkZGNhcnJ5eF91MzIoeDExMCwgeDYzLCB4OTksICZ4MTEyKTsK
LSAgdWludDMyX3QgeDExNTsgdWludDhfdCB4MTE2ID0gYWRkY2Fycnl4X3UzMih4MTEzLCB4NjYs
IHgxMDAsICZ4MTE1KTsKLSAgdWludDMyX3QgeDExODsgdWludDhfdCB4MTE5ID0gYWRkY2Fycnl4
X3UzMih4MTE2LCB4NjksIHgxMDEsICZ4MTE4KTsKLSAgdWludDMyX3QgeDEyMTsgdWludDhfdCB4
MTIyID0gYWRkY2Fycnl4X3UzMih4MTE5LCB4NzIsIHgzMywgJngxMjEpOwotICB1aW50MzJfdCB4
MTI0OyB1aW50OF90IHgxMjUgPSBhZGRjYXJyeXhfdTMyKHgxMjIsIHg3NSwgeDkwLCAmeDEyNCk7
Ci0gIHVpbnQzMl90IHgxMjc7IHVpbnQ4X3QgeDEyOCA9IGFkZGNhcnJ5eF91MzIoeDEyNSwgeDc4
LCB4OTEsICZ4MTI3KTsKLSAgdWludDhfdCB4MTI5ID0gKHgxMjggKyAweDApOwotICB1aW50MzJf
dCB4MTMyOyAgdWludDMyX3QgeDEzMSA9IG11bHhfdTMyKHg3LCB4MTksICZ4MTMyKTsKLSAgdWlu
dDMyX3QgeDEzNTsgIHVpbnQzMl90IHgxMzQgPSBtdWx4X3UzMih4NywgeDIxLCAmeDEzNSk7Ci0g
IHVpbnQzMl90IHgxMzg7ICB1aW50MzJfdCB4MTM3ID0gbXVseF91MzIoeDcsIHgyMywgJngxMzgp
OwotICB1aW50MzJfdCB4MTQxOyAgdWludDMyX3QgeDE0MCA9IG11bHhfdTMyKHg3LCB4MjUsICZ4
MTQxKTsKLSAgdWludDMyX3QgeDE0NDsgIHVpbnQzMl90IHgxNDMgPSBtdWx4X3UzMih4NywgeDI3
LCAmeDE0NCk7Ci0gIHVpbnQzMl90IHgxNDc7ICB1aW50MzJfdCB4MTQ2ID0gbXVseF91MzIoeDcs
IHgyOSwgJngxNDcpOwotICB1aW50MzJfdCB4MTUwOyAgdWludDMyX3QgeDE0OSA9IG11bHhfdTMy
KHg3LCB4MzEsICZ4MTUwKTsKLSAgdWludDMyX3QgeDE1MzsgIHVpbnQzMl90IHgxNTIgPSBtdWx4
X3UzMih4NywgeDMwLCAmeDE1Myk7Ci0gIHVpbnQzMl90IHgxNTU7IHVpbnQ4X3QgeDE1NiA9IGFk
ZGNhcnJ5eF91MzIoMHgwLCB4MTMyLCB4MTM0LCAmeDE1NSk7Ci0gIHVpbnQzMl90IHgxNTg7IHVp
bnQ4X3QgeDE1OSA9IGFkZGNhcnJ5eF91MzIoeDE1NiwgeDEzNSwgeDEzNywgJngxNTgpOwotICB1
aW50MzJfdCB4MTYxOyB1aW50OF90IHgxNjIgPSBhZGRjYXJyeXhfdTMyKHgxNTksIHgxMzgsIHgx
NDAsICZ4MTYxKTsKLSAgdWludDMyX3QgeDE2NDsgdWludDhfdCB4MTY1ID0gYWRkY2Fycnl4X3Uz
Mih4MTYyLCB4MTQxLCB4MTQzLCAmeDE2NCk7Ci0gIHVpbnQzMl90IHgxNjc7IHVpbnQ4X3QgeDE2
OCA9IGFkZGNhcnJ5eF91MzIoeDE2NSwgeDE0NCwgeDE0NiwgJngxNjcpOwotICB1aW50MzJfdCB4
MTcwOyB1aW50OF90IHgxNzEgPSBhZGRjYXJyeXhfdTMyKHgxNjgsIHgxNDcsIHgxNDksICZ4MTcw
KTsKLSAgdWludDMyX3QgeDE3MzsgdWludDhfdCB4MTc0ID0gYWRkY2Fycnl4X3UzMih4MTcxLCB4
MTUwLCB4MTUyLCAmeDE3Myk7Ci0gIHVpbnQzMl90IHgxNzY7IGFkZGNhcnJ5eF91MzIoMHgwLCB4
MTc0LCB4MTUzLCAmeDE3Nik7Ci0gIHVpbnQzMl90IHgxNzk7IHVpbnQ4X3QgeDE4MCA9IGFkZGNh
cnJ5eF91MzIoMHgwLCB4MTA2LCB4MTMxLCAmeDE3OSk7Ci0gIHVpbnQzMl90IHgxODI7IHVpbnQ4
X3QgeDE4MyA9IGFkZGNhcnJ5eF91MzIoeDE4MCwgeDEwOSwgeDE1NSwgJngxODIpOwotICB1aW50
MzJfdCB4MTg1OyB1aW50OF90IHgxODYgPSBhZGRjYXJyeXhfdTMyKHgxODMsIHgxMTIsIHgxNTgs
ICZ4MTg1KTsKLSAgdWludDMyX3QgeDE4ODsgdWludDhfdCB4MTg5ID0gYWRkY2Fycnl4X3UzMih4
MTg2LCB4MTE1LCB4MTYxLCAmeDE4OCk7Ci0gIHVpbnQzMl90IHgxOTE7IHVpbnQ4X3QgeDE5MiA9
IGFkZGNhcnJ5eF91MzIoeDE4OSwgeDExOCwgeDE2NCwgJngxOTEpOwotICB1aW50MzJfdCB4MTk0
OyB1aW50OF90IHgxOTUgPSBhZGRjYXJyeXhfdTMyKHgxOTIsIHgxMjEsIHgxNjcsICZ4MTk0KTsK
LSAgdWludDMyX3QgeDE5NzsgdWludDhfdCB4MTk4ID0gYWRkY2Fycnl4X3UzMih4MTk1LCB4MTI0
LCB4MTcwLCAmeDE5Nyk7Ci0gIHVpbnQzMl90IHgyMDA7IHVpbnQ4X3QgeDIwMSA9IGFkZGNhcnJ5
eF91MzIoeDE5OCwgeDEyNywgeDE3MywgJngyMDApOwotICB1aW50MzJfdCB4MjAzOyB1aW50OF90
IHgyMDQgPSBhZGRjYXJyeXhfdTMyKHgyMDEsIHgxMjksIHgxNzYsICZ4MjAzKTsKLSAgdWludDMy
X3QgeDIwNzsgIHVpbnQzMl90IHgyMDYgPSBtdWx4X3UzMih4MTc5LCAweGZmZmZmZmZmLCAmeDIw
Nyk7Ci0gIHVpbnQzMl90IHgyMTA7ICB1aW50MzJfdCB4MjA5ID0gbXVseF91MzIoeDE3OSwgMHhm
ZmZmZmZmZiwgJngyMTApOwotICB1aW50MzJfdCB4MjEzOyAgdWludDMyX3QgeDIxMiA9IG11bHhf
dTMyKHgxNzksIDB4ZmZmZmZmZmYsICZ4MjEzKTsKLSAgdWludDMyX3QgeDIxNjsgIHVpbnQzMl90
IHgyMTUgPSBtdWx4X3UzMih4MTc5LCAweGZmZmZmZmZmLCAmeDIxNik7Ci0gIHVpbnQzMl90IHgy
MTg7IHVpbnQ4X3QgeDIxOSA9IGFkZGNhcnJ5eF91MzIoMHgwLCB4MjA3LCB4MjA5LCAmeDIxOCk7
Ci0gIHVpbnQzMl90IHgyMjE7IHVpbnQ4X3QgeDIyMiA9IGFkZGNhcnJ5eF91MzIoeDIxOSwgeDIx
MCwgeDIxMiwgJngyMjEpOwotICB1aW50MzJfdCB4MjI0OyB1aW50OF90IHgyMjUgPSBhZGRjYXJy
eXhfdTMyKHgyMjIsIHgyMTMsIDB4MCwgJngyMjQpOwotICB1aW50OF90IHgyMjYgPSAoMHgwICsg
MHgwKTsKLSAgdWludDMyX3QgXzI7IHVpbnQ4X3QgeDIyOSA9IGFkZGNhcnJ5eF91MzIoMHgwLCB4
MTc5LCB4MjA2LCAmXzIpOwotICB1aW50MzJfdCB4MjMxOyB1aW50OF90IHgyMzIgPSBhZGRjYXJy
eXhfdTMyKHgyMjksIHgxODIsIHgyMTgsICZ4MjMxKTsKLSAgdWludDMyX3QgeDIzNDsgdWludDhf
dCB4MjM1ID0gYWRkY2Fycnl4X3UzMih4MjMyLCB4MTg1LCB4MjIxLCAmeDIzNCk7Ci0gIHVpbnQz
Ml90IHgyMzc7IHVpbnQ4X3QgeDIzOCA9IGFkZGNhcnJ5eF91MzIoeDIzNSwgeDE4OCwgeDIyNCwg
JngyMzcpOwotICB1aW50MzJfdCB4MjQwOyB1aW50OF90IHgyNDEgPSBhZGRjYXJyeXhfdTMyKHgy
MzgsIHgxOTEsIHgyMjUsICZ4MjQwKTsKLSAgdWludDMyX3QgeDI0MzsgdWludDhfdCB4MjQ0ID0g
YWRkY2Fycnl4X3UzMih4MjQxLCB4MTk0LCB4MjI2LCAmeDI0Myk7Ci0gIHVpbnQzMl90IHgyNDY7
IHVpbnQ4X3QgeDI0NyA9IGFkZGNhcnJ5eF91MzIoeDI0NCwgeDE5NywgeDE3OSwgJngyNDYpOwot
ICB1aW50MzJfdCB4MjQ5OyB1aW50OF90IHgyNTAgPSBhZGRjYXJyeXhfdTMyKHgyNDcsIHgyMDAs
IHgyMTUsICZ4MjQ5KTsKLSAgdWludDMyX3QgeDI1MjsgdWludDhfdCB4MjUzID0gYWRkY2Fycnl4
X3UzMih4MjUwLCB4MjAzLCB4MjE2LCAmeDI1Mik7Ci0gIHVpbnQ4X3QgeDI1NCA9ICh4MjUzICsg
eDIwNCk7Ci0gIHVpbnQzMl90IHgyNTc7ICB1aW50MzJfdCB4MjU2ID0gbXVseF91MzIoeDksIHgx
OSwgJngyNTcpOwotICB1aW50MzJfdCB4MjYwOyAgdWludDMyX3QgeDI1OSA9IG11bHhfdTMyKHg5
LCB4MjEsICZ4MjYwKTsKLSAgdWludDMyX3QgeDI2MzsgIHVpbnQzMl90IHgyNjIgPSBtdWx4X3Uz
Mih4OSwgeDIzLCAmeDI2Myk7Ci0gIHVpbnQzMl90IHgyNjY7ICB1aW50MzJfdCB4MjY1ID0gbXVs
eF91MzIoeDksIHgyNSwgJngyNjYpOwotICB1aW50MzJfdCB4MjY5OyAgdWludDMyX3QgeDI2OCA9
IG11bHhfdTMyKHg5LCB4MjcsICZ4MjY5KTsKLSAgdWludDMyX3QgeDI3MjsgIHVpbnQzMl90IHgy
NzEgPSBtdWx4X3UzMih4OSwgeDI5LCAmeDI3Mik7Ci0gIHVpbnQzMl90IHgyNzU7ICB1aW50MzJf
dCB4Mjc0ID0gbXVseF91MzIoeDksIHgzMSwgJngyNzUpOwotICB1aW50MzJfdCB4Mjc4OyAgdWlu
dDMyX3QgeDI3NyA9IG11bHhfdTMyKHg5LCB4MzAsICZ4Mjc4KTsKLSAgdWludDMyX3QgeDI4MDsg
dWludDhfdCB4MjgxID0gYWRkY2Fycnl4X3UzMigweDAsIHgyNTcsIHgyNTksICZ4MjgwKTsKLSAg
dWludDMyX3QgeDI4MzsgdWludDhfdCB4Mjg0ID0gYWRkY2Fycnl4X3UzMih4MjgxLCB4MjYwLCB4
MjYyLCAmeDI4Myk7Ci0gIHVpbnQzMl90IHgyODY7IHVpbnQ4X3QgeDI4NyA9IGFkZGNhcnJ5eF91
MzIoeDI4NCwgeDI2MywgeDI2NSwgJngyODYpOwotICB1aW50MzJfdCB4Mjg5OyB1aW50OF90IHgy
OTAgPSBhZGRjYXJyeXhfdTMyKHgyODcsIHgyNjYsIHgyNjgsICZ4Mjg5KTsKLSAgdWludDMyX3Qg
eDI5MjsgdWludDhfdCB4MjkzID0gYWRkY2Fycnl4X3UzMih4MjkwLCB4MjY5LCB4MjcxLCAmeDI5
Mik7Ci0gIHVpbnQzMl90IHgyOTU7IHVpbnQ4X3QgeDI5NiA9IGFkZGNhcnJ5eF91MzIoeDI5Mywg
eDI3MiwgeDI3NCwgJngyOTUpOwotICB1aW50MzJfdCB4Mjk4OyB1aW50OF90IHgyOTkgPSBhZGRj
YXJyeXhfdTMyKHgyOTYsIHgyNzUsIHgyNzcsICZ4Mjk4KTsKLSAgdWludDMyX3QgeDMwMTsgYWRk
Y2Fycnl4X3UzMigweDAsIHgyOTksIHgyNzgsICZ4MzAxKTsKLSAgdWludDMyX3QgeDMwNDsgdWlu
dDhfdCB4MzA1ID0gYWRkY2Fycnl4X3UzMigweDAsIHgyMzEsIHgyNTYsICZ4MzA0KTsKLSAgdWlu
dDMyX3QgeDMwNzsgdWludDhfdCB4MzA4ID0gYWRkY2Fycnl4X3UzMih4MzA1LCB4MjM0LCB4Mjgw
LCAmeDMwNyk7Ci0gIHVpbnQzMl90IHgzMTA7IHVpbnQ4X3QgeDMxMSA9IGFkZGNhcnJ5eF91MzIo
eDMwOCwgeDIzNywgeDI4MywgJngzMTApOwotICB1aW50MzJfdCB4MzEzOyB1aW50OF90IHgzMTQg
PSBhZGRjYXJyeXhfdTMyKHgzMTEsIHgyNDAsIHgyODYsICZ4MzEzKTsKLSAgdWludDMyX3QgeDMx
NjsgdWludDhfdCB4MzE3ID0gYWRkY2Fycnl4X3UzMih4MzE0LCB4MjQzLCB4Mjg5LCAmeDMxNik7
Ci0gIHVpbnQzMl90IHgzMTk7IHVpbnQ4X3QgeDMyMCA9IGFkZGNhcnJ5eF91MzIoeDMxNywgeDI0
NiwgeDI5MiwgJngzMTkpOwotICB1aW50MzJfdCB4MzIyOyB1aW50OF90IHgzMjMgPSBhZGRjYXJy
eXhfdTMyKHgzMjAsIHgyNDksIHgyOTUsICZ4MzIyKTsKLSAgdWludDMyX3QgeDMyNTsgdWludDhf
dCB4MzI2ID0gYWRkY2Fycnl4X3UzMih4MzIzLCB4MjUyLCB4Mjk4LCAmeDMyNSk7Ci0gIHVpbnQz
Ml90IHgzMjg7IHVpbnQ4X3QgeDMyOSA9IGFkZGNhcnJ5eF91MzIoeDMyNiwgeDI1NCwgeDMwMSwg
JngzMjgpOwotICB1aW50MzJfdCB4MzMyOyAgdWludDMyX3QgeDMzMSA9IG11bHhfdTMyKHgzMDQs
IDB4ZmZmZmZmZmYsICZ4MzMyKTsKLSAgdWludDMyX3QgeDMzNTsgIHVpbnQzMl90IHgzMzQgPSBt
dWx4X3UzMih4MzA0LCAweGZmZmZmZmZmLCAmeDMzNSk7Ci0gIHVpbnQzMl90IHgzMzg7ICB1aW50
MzJfdCB4MzM3ID0gbXVseF91MzIoeDMwNCwgMHhmZmZmZmZmZiwgJngzMzgpOwotICB1aW50MzJf
dCB4MzQxOyAgdWludDMyX3QgeDM0MCA9IG11bHhfdTMyKHgzMDQsIDB4ZmZmZmZmZmYsICZ4MzQx
KTsKLSAgdWludDMyX3QgeDM0MzsgdWludDhfdCB4MzQ0ID0gYWRkY2Fycnl4X3UzMigweDAsIHgz
MzIsIHgzMzQsICZ4MzQzKTsKLSAgdWludDMyX3QgeDM0NjsgdWludDhfdCB4MzQ3ID0gYWRkY2Fy
cnl4X3UzMih4MzQ0LCB4MzM1LCB4MzM3LCAmeDM0Nik7Ci0gIHVpbnQzMl90IHgzNDk7IHVpbnQ4
X3QgeDM1MCA9IGFkZGNhcnJ5eF91MzIoeDM0NywgeDMzOCwgMHgwLCAmeDM0OSk7Ci0gIHVpbnQ4
X3QgeDM1MSA9ICgweDAgKyAweDApOwotICB1aW50MzJfdCBfMzsgdWludDhfdCB4MzU0ID0gYWRk
Y2Fycnl4X3UzMigweDAsIHgzMDQsIHgzMzEsICZfMyk7Ci0gIHVpbnQzMl90IHgzNTY7IHVpbnQ4
X3QgeDM1NyA9IGFkZGNhcnJ5eF91MzIoeDM1NCwgeDMwNywgeDM0MywgJngzNTYpOwotICB1aW50
MzJfdCB4MzU5OyB1aW50OF90IHgzNjAgPSBhZGRjYXJyeXhfdTMyKHgzNTcsIHgzMTAsIHgzNDYs
ICZ4MzU5KTsKLSAgdWludDMyX3QgeDM2MjsgdWludDhfdCB4MzYzID0gYWRkY2Fycnl4X3UzMih4
MzYwLCB4MzEzLCB4MzQ5LCAmeDM2Mik7Ci0gIHVpbnQzMl90IHgzNjU7IHVpbnQ4X3QgeDM2NiA9
IGFkZGNhcnJ5eF91MzIoeDM2MywgeDMxNiwgeDM1MCwgJngzNjUpOwotICB1aW50MzJfdCB4MzY4
OyB1aW50OF90IHgzNjkgPSBhZGRjYXJyeXhfdTMyKHgzNjYsIHgzMTksIHgzNTEsICZ4MzY4KTsK
LSAgdWludDMyX3QgeDM3MTsgdWludDhfdCB4MzcyID0gYWRkY2Fycnl4X3UzMih4MzY5LCB4MzIy
LCB4MzA0LCAmeDM3MSk7Ci0gIHVpbnQzMl90IHgzNzQ7IHVpbnQ4X3QgeDM3NSA9IGFkZGNhcnJ5
eF91MzIoeDM3MiwgeDMyNSwgeDM0MCwgJngzNzQpOwotICB1aW50MzJfdCB4Mzc3OyB1aW50OF90
IHgzNzggPSBhZGRjYXJyeXhfdTMyKHgzNzUsIHgzMjgsIHgzNDEsICZ4Mzc3KTsKLSAgdWludDhf
dCB4Mzc5ID0gKHgzNzggKyB4MzI5KTsKLSAgdWludDMyX3QgeDM4MjsgIHVpbnQzMl90IHgzODEg
PSBtdWx4X3UzMih4MTEsIHgxOSwgJngzODIpOwotICB1aW50MzJfdCB4Mzg1OyAgdWludDMyX3Qg
eDM4NCA9IG11bHhfdTMyKHgxMSwgeDIxLCAmeDM4NSk7Ci0gIHVpbnQzMl90IHgzODg7ICB1aW50
MzJfdCB4Mzg3ID0gbXVseF91MzIoeDExLCB4MjMsICZ4Mzg4KTsKLSAgdWludDMyX3QgeDM5MTsg
IHVpbnQzMl90IHgzOTAgPSBtdWx4X3UzMih4MTEsIHgyNSwgJngzOTEpOwotICB1aW50MzJfdCB4
Mzk0OyAgdWludDMyX3QgeDM5MyA9IG11bHhfdTMyKHgxMSwgeDI3LCAmeDM5NCk7Ci0gIHVpbnQz
Ml90IHgzOTc7ICB1aW50MzJfdCB4Mzk2ID0gbXVseF91MzIoeDExLCB4MjksICZ4Mzk3KTsKLSAg
dWludDMyX3QgeDQwMDsgIHVpbnQzMl90IHgzOTkgPSBtdWx4X3UzMih4MTEsIHgzMSwgJng0MDAp
OwotICB1aW50MzJfdCB4NDAzOyAgdWludDMyX3QgeDQwMiA9IG11bHhfdTMyKHgxMSwgeDMwLCAm
eDQwMyk7Ci0gIHVpbnQzMl90IHg0MDU7IHVpbnQ4X3QgeDQwNiA9IGFkZGNhcnJ5eF91MzIoMHgw
LCB4MzgyLCB4Mzg0LCAmeDQwNSk7Ci0gIHVpbnQzMl90IHg0MDg7IHVpbnQ4X3QgeDQwOSA9IGFk
ZGNhcnJ5eF91MzIoeDQwNiwgeDM4NSwgeDM4NywgJng0MDgpOwotICB1aW50MzJfdCB4NDExOyB1
aW50OF90IHg0MTIgPSBhZGRjYXJyeXhfdTMyKHg0MDksIHgzODgsIHgzOTAsICZ4NDExKTsKLSAg
dWludDMyX3QgeDQxNDsgdWludDhfdCB4NDE1ID0gYWRkY2Fycnl4X3UzMih4NDEyLCB4MzkxLCB4
MzkzLCAmeDQxNCk7Ci0gIHVpbnQzMl90IHg0MTc7IHVpbnQ4X3QgeDQxOCA9IGFkZGNhcnJ5eF91
MzIoeDQxNSwgeDM5NCwgeDM5NiwgJng0MTcpOwotICB1aW50MzJfdCB4NDIwOyB1aW50OF90IHg0
MjEgPSBhZGRjYXJyeXhfdTMyKHg0MTgsIHgzOTcsIHgzOTksICZ4NDIwKTsKLSAgdWludDMyX3Qg
eDQyMzsgdWludDhfdCB4NDI0ID0gYWRkY2Fycnl4X3UzMih4NDIxLCB4NDAwLCB4NDAyLCAmeDQy
Myk7Ci0gIHVpbnQzMl90IHg0MjY7IGFkZGNhcnJ5eF91MzIoMHgwLCB4NDI0LCB4NDAzLCAmeDQy
Nik7Ci0gIHVpbnQzMl90IHg0Mjk7IHVpbnQ4X3QgeDQzMCA9IGFkZGNhcnJ5eF91MzIoMHgwLCB4
MzU2LCB4MzgxLCAmeDQyOSk7Ci0gIHVpbnQzMl90IHg0MzI7IHVpbnQ4X3QgeDQzMyA9IGFkZGNh
cnJ5eF91MzIoeDQzMCwgeDM1OSwgeDQwNSwgJng0MzIpOwotICB1aW50MzJfdCB4NDM1OyB1aW50
OF90IHg0MzYgPSBhZGRjYXJyeXhfdTMyKHg0MzMsIHgzNjIsIHg0MDgsICZ4NDM1KTsKLSAgdWlu
dDMyX3QgeDQzODsgdWludDhfdCB4NDM5ID0gYWRkY2Fycnl4X3UzMih4NDM2LCB4MzY1LCB4NDEx
LCAmeDQzOCk7Ci0gIHVpbnQzMl90IHg0NDE7IHVpbnQ4X3QgeDQ0MiA9IGFkZGNhcnJ5eF91MzIo
eDQzOSwgeDM2OCwgeDQxNCwgJng0NDEpOwotICB1aW50MzJfdCB4NDQ0OyB1aW50OF90IHg0NDUg
PSBhZGRjYXJyeXhfdTMyKHg0NDIsIHgzNzEsIHg0MTcsICZ4NDQ0KTsKLSAgdWludDMyX3QgeDQ0
NzsgdWludDhfdCB4NDQ4ID0gYWRkY2Fycnl4X3UzMih4NDQ1LCB4Mzc0LCB4NDIwLCAmeDQ0Nyk7
Ci0gIHVpbnQzMl90IHg0NTA7IHVpbnQ4X3QgeDQ1MSA9IGFkZGNhcnJ5eF91MzIoeDQ0OCwgeDM3
NywgeDQyMywgJng0NTApOwotICB1aW50MzJfdCB4NDUzOyB1aW50OF90IHg0NTQgPSBhZGRjYXJy
eXhfdTMyKHg0NTEsIHgzNzksIHg0MjYsICZ4NDUzKTsKLSAgdWludDMyX3QgeDQ1NzsgIHVpbnQz
Ml90IHg0NTYgPSBtdWx4X3UzMih4NDI5LCAweGZmZmZmZmZmLCAmeDQ1Nyk7Ci0gIHVpbnQzMl90
IHg0NjA7ICB1aW50MzJfdCB4NDU5ID0gbXVseF91MzIoeDQyOSwgMHhmZmZmZmZmZiwgJng0NjAp
OwotICB1aW50MzJfdCB4NDYzOyAgdWludDMyX3QgeDQ2MiA9IG11bHhfdTMyKHg0MjksIDB4ZmZm
ZmZmZmYsICZ4NDYzKTsKLSAgdWludDMyX3QgeDQ2NjsgIHVpbnQzMl90IHg0NjUgPSBtdWx4X3Uz
Mih4NDI5LCAweGZmZmZmZmZmLCAmeDQ2Nik7Ci0gIHVpbnQzMl90IHg0Njg7IHVpbnQ4X3QgeDQ2
OSA9IGFkZGNhcnJ5eF91MzIoMHgwLCB4NDU3LCB4NDU5LCAmeDQ2OCk7Ci0gIHVpbnQzMl90IHg0
NzE7IHVpbnQ4X3QgeDQ3MiA9IGFkZGNhcnJ5eF91MzIoeDQ2OSwgeDQ2MCwgeDQ2MiwgJng0NzEp
OwotICB1aW50MzJfdCB4NDc0OyB1aW50OF90IHg0NzUgPSBhZGRjYXJyeXhfdTMyKHg0NzIsIHg0
NjMsIDB4MCwgJng0NzQpOwotICB1aW50OF90IHg0NzYgPSAoMHgwICsgMHgwKTsKLSAgdWludDMy
X3QgXzQ7IHVpbnQ4X3QgeDQ3OSA9IGFkZGNhcnJ5eF91MzIoMHgwLCB4NDI5LCB4NDU2LCAmXzQp
OwotICB1aW50MzJfdCB4NDgxOyB1aW50OF90IHg0ODIgPSBhZGRjYXJyeXhfdTMyKHg0NzksIHg0
MzIsIHg0NjgsICZ4NDgxKTsKLSAgdWludDMyX3QgeDQ4NDsgdWludDhfdCB4NDg1ID0gYWRkY2Fy
cnl4X3UzMih4NDgyLCB4NDM1LCB4NDcxLCAmeDQ4NCk7Ci0gIHVpbnQzMl90IHg0ODc7IHVpbnQ4
X3QgeDQ4OCA9IGFkZGNhcnJ5eF91MzIoeDQ4NSwgeDQzOCwgeDQ3NCwgJng0ODcpOwotICB1aW50
MzJfdCB4NDkwOyB1aW50OF90IHg0OTEgPSBhZGRjYXJyeXhfdTMyKHg0ODgsIHg0NDEsIHg0NzUs
ICZ4NDkwKTsKLSAgdWludDMyX3QgeDQ5MzsgdWludDhfdCB4NDk0ID0gYWRkY2Fycnl4X3UzMih4
NDkxLCB4NDQ0LCB4NDc2LCAmeDQ5Myk7Ci0gIHVpbnQzMl90IHg0OTY7IHVpbnQ4X3QgeDQ5NyA9
IGFkZGNhcnJ5eF91MzIoeDQ5NCwgeDQ0NywgeDQyOSwgJng0OTYpOwotICB1aW50MzJfdCB4NDk5
OyB1aW50OF90IHg1MDAgPSBhZGRjYXJyeXhfdTMyKHg0OTcsIHg0NTAsIHg0NjUsICZ4NDk5KTsK
LSAgdWludDMyX3QgeDUwMjsgdWludDhfdCB4NTAzID0gYWRkY2Fycnl4X3UzMih4NTAwLCB4NDUz
LCB4NDY2LCAmeDUwMik7Ci0gIHVpbnQ4X3QgeDUwNCA9ICh4NTAzICsgeDQ1NCk7Ci0gIHVpbnQz
Ml90IHg1MDc7ICB1aW50MzJfdCB4NTA2ID0gbXVseF91MzIoeDEzLCB4MTksICZ4NTA3KTsKLSAg
dWludDMyX3QgeDUxMDsgIHVpbnQzMl90IHg1MDkgPSBtdWx4X3UzMih4MTMsIHgyMSwgJng1MTAp
OwotICB1aW50MzJfdCB4NTEzOyAgdWludDMyX3QgeDUxMiA9IG11bHhfdTMyKHgxMywgeDIzLCAm
eDUxMyk7Ci0gIHVpbnQzMl90IHg1MTY7ICB1aW50MzJfdCB4NTE1ID0gbXVseF91MzIoeDEzLCB4
MjUsICZ4NTE2KTsKLSAgdWludDMyX3QgeDUxOTsgIHVpbnQzMl90IHg1MTggPSBtdWx4X3UzMih4
MTMsIHgyNywgJng1MTkpOwotICB1aW50MzJfdCB4NTIyOyAgdWludDMyX3QgeDUyMSA9IG11bHhf
dTMyKHgxMywgeDI5LCAmeDUyMik7Ci0gIHVpbnQzMl90IHg1MjU7ICB1aW50MzJfdCB4NTI0ID0g
bXVseF91MzIoeDEzLCB4MzEsICZ4NTI1KTsKLSAgdWludDMyX3QgeDUyODsgIHVpbnQzMl90IHg1
MjcgPSBtdWx4X3UzMih4MTMsIHgzMCwgJng1MjgpOwotICB1aW50MzJfdCB4NTMwOyB1aW50OF90
IHg1MzEgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDUwNywgeDUwOSwgJng1MzApOwotICB1aW50MzJf
dCB4NTMzOyB1aW50OF90IHg1MzQgPSBhZGRjYXJyeXhfdTMyKHg1MzEsIHg1MTAsIHg1MTIsICZ4
NTMzKTsKLSAgdWludDMyX3QgeDUzNjsgdWludDhfdCB4NTM3ID0gYWRkY2Fycnl4X3UzMih4NTM0
LCB4NTEzLCB4NTE1LCAmeDUzNik7Ci0gIHVpbnQzMl90IHg1Mzk7IHVpbnQ4X3QgeDU0MCA9IGFk
ZGNhcnJ5eF91MzIoeDUzNywgeDUxNiwgeDUxOCwgJng1MzkpOwotICB1aW50MzJfdCB4NTQyOyB1
aW50OF90IHg1NDMgPSBhZGRjYXJyeXhfdTMyKHg1NDAsIHg1MTksIHg1MjEsICZ4NTQyKTsKLSAg
dWludDMyX3QgeDU0NTsgdWludDhfdCB4NTQ2ID0gYWRkY2Fycnl4X3UzMih4NTQzLCB4NTIyLCB4
NTI0LCAmeDU0NSk7Ci0gIHVpbnQzMl90IHg1NDg7IHVpbnQ4X3QgeDU0OSA9IGFkZGNhcnJ5eF91
MzIoeDU0NiwgeDUyNSwgeDUyNywgJng1NDgpOwotICB1aW50MzJfdCB4NTUxOyBhZGRjYXJyeXhf
dTMyKDB4MCwgeDU0OSwgeDUyOCwgJng1NTEpOwotICB1aW50MzJfdCB4NTU0OyB1aW50OF90IHg1
NTUgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDQ4MSwgeDUwNiwgJng1NTQpOwotICB1aW50MzJfdCB4
NTU3OyB1aW50OF90IHg1NTggPSBhZGRjYXJyeXhfdTMyKHg1NTUsIHg0ODQsIHg1MzAsICZ4NTU3
KTsKLSAgdWludDMyX3QgeDU2MDsgdWludDhfdCB4NTYxID0gYWRkY2Fycnl4X3UzMih4NTU4LCB4
NDg3LCB4NTMzLCAmeDU2MCk7Ci0gIHVpbnQzMl90IHg1NjM7IHVpbnQ4X3QgeDU2NCA9IGFkZGNh
cnJ5eF91MzIoeDU2MSwgeDQ5MCwgeDUzNiwgJng1NjMpOwotICB1aW50MzJfdCB4NTY2OyB1aW50
OF90IHg1NjcgPSBhZGRjYXJyeXhfdTMyKHg1NjQsIHg0OTMsIHg1MzksICZ4NTY2KTsKLSAgdWlu
dDMyX3QgeDU2OTsgdWludDhfdCB4NTcwID0gYWRkY2Fycnl4X3UzMih4NTY3LCB4NDk2LCB4NTQy
LCAmeDU2OSk7Ci0gIHVpbnQzMl90IHg1NzI7IHVpbnQ4X3QgeDU3MyA9IGFkZGNhcnJ5eF91MzIo
eDU3MCwgeDQ5OSwgeDU0NSwgJng1NzIpOwotICB1aW50MzJfdCB4NTc1OyB1aW50OF90IHg1NzYg
PSBhZGRjYXJyeXhfdTMyKHg1NzMsIHg1MDIsIHg1NDgsICZ4NTc1KTsKLSAgdWludDMyX3QgeDU3
ODsgdWludDhfdCB4NTc5ID0gYWRkY2Fycnl4X3UzMih4NTc2LCB4NTA0LCB4NTUxLCAmeDU3OCk7
Ci0gIHVpbnQzMl90IHg1ODI7ICB1aW50MzJfdCB4NTgxID0gbXVseF91MzIoeDU1NCwgMHhmZmZm
ZmZmZiwgJng1ODIpOwotICB1aW50MzJfdCB4NTg1OyAgdWludDMyX3QgeDU4NCA9IG11bHhfdTMy
KHg1NTQsIDB4ZmZmZmZmZmYsICZ4NTg1KTsKLSAgdWludDMyX3QgeDU4ODsgIHVpbnQzMl90IHg1
ODcgPSBtdWx4X3UzMih4NTU0LCAweGZmZmZmZmZmLCAmeDU4OCk7Ci0gIHVpbnQzMl90IHg1OTE7
ICB1aW50MzJfdCB4NTkwID0gbXVseF91MzIoeDU1NCwgMHhmZmZmZmZmZiwgJng1OTEpOwotICB1
aW50MzJfdCB4NTkzOyB1aW50OF90IHg1OTQgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDU4MiwgeDU4
NCwgJng1OTMpOwotICB1aW50MzJfdCB4NTk2OyB1aW50OF90IHg1OTcgPSBhZGRjYXJyeXhfdTMy
KHg1OTQsIHg1ODUsIHg1ODcsICZ4NTk2KTsKLSAgdWludDMyX3QgeDU5OTsgdWludDhfdCB4NjAw
ID0gYWRkY2Fycnl4X3UzMih4NTk3LCB4NTg4LCAweDAsICZ4NTk5KTsKLSAgdWludDhfdCB4NjAx
ID0gKDB4MCArIDB4MCk7Ci0gIHVpbnQzMl90IF81OyB1aW50OF90IHg2MDQgPSBhZGRjYXJyeXhf
dTMyKDB4MCwgeDU1NCwgeDU4MSwgJl81KTsKLSAgdWludDMyX3QgeDYwNjsgdWludDhfdCB4NjA3
ID0gYWRkY2Fycnl4X3UzMih4NjA0LCB4NTU3LCB4NTkzLCAmeDYwNik7Ci0gIHVpbnQzMl90IHg2
MDk7IHVpbnQ4X3QgeDYxMCA9IGFkZGNhcnJ5eF91MzIoeDYwNywgeDU2MCwgeDU5NiwgJng2MDkp
OwotICB1aW50MzJfdCB4NjEyOyB1aW50OF90IHg2MTMgPSBhZGRjYXJyeXhfdTMyKHg2MTAsIHg1
NjMsIHg1OTksICZ4NjEyKTsKLSAgdWludDMyX3QgeDYxNTsgdWludDhfdCB4NjE2ID0gYWRkY2Fy
cnl4X3UzMih4NjEzLCB4NTY2LCB4NjAwLCAmeDYxNSk7Ci0gIHVpbnQzMl90IHg2MTg7IHVpbnQ4
X3QgeDYxOSA9IGFkZGNhcnJ5eF91MzIoeDYxNiwgeDU2OSwgeDYwMSwgJng2MTgpOwotICB1aW50
MzJfdCB4NjIxOyB1aW50OF90IHg2MjIgPSBhZGRjYXJyeXhfdTMyKHg2MTksIHg1NzIsIHg1NTQs
ICZ4NjIxKTsKLSAgdWludDMyX3QgeDYyNDsgdWludDhfdCB4NjI1ID0gYWRkY2Fycnl4X3UzMih4
NjIyLCB4NTc1LCB4NTkwLCAmeDYyNCk7Ci0gIHVpbnQzMl90IHg2Mjc7IHVpbnQ4X3QgeDYyOCA9
IGFkZGNhcnJ5eF91MzIoeDYyNSwgeDU3OCwgeDU5MSwgJng2MjcpOwotICB1aW50OF90IHg2Mjkg
PSAoeDYyOCArIHg1NzkpOwotICB1aW50MzJfdCB4NjMyOyAgdWludDMyX3QgeDYzMSA9IG11bHhf
dTMyKHgxNSwgeDE5LCAmeDYzMik7Ci0gIHVpbnQzMl90IHg2MzU7ICB1aW50MzJfdCB4NjM0ID0g
bXVseF91MzIoeDE1LCB4MjEsICZ4NjM1KTsKLSAgdWludDMyX3QgeDYzODsgIHVpbnQzMl90IHg2
MzcgPSBtdWx4X3UzMih4MTUsIHgyMywgJng2MzgpOwotICB1aW50MzJfdCB4NjQxOyAgdWludDMy
X3QgeDY0MCA9IG11bHhfdTMyKHgxNSwgeDI1LCAmeDY0MSk7Ci0gIHVpbnQzMl90IHg2NDQ7ICB1
aW50MzJfdCB4NjQzID0gbXVseF91MzIoeDE1LCB4MjcsICZ4NjQ0KTsKLSAgdWludDMyX3QgeDY0
NzsgIHVpbnQzMl90IHg2NDYgPSBtdWx4X3UzMih4MTUsIHgyOSwgJng2NDcpOwotICB1aW50MzJf
dCB4NjUwOyAgdWludDMyX3QgeDY0OSA9IG11bHhfdTMyKHgxNSwgeDMxLCAmeDY1MCk7Ci0gIHVp
bnQzMl90IHg2NTM7ICB1aW50MzJfdCB4NjUyID0gbXVseF91MzIoeDE1LCB4MzAsICZ4NjUzKTsK
LSAgdWludDMyX3QgeDY1NTsgdWludDhfdCB4NjU2ID0gYWRkY2Fycnl4X3UzMigweDAsIHg2MzIs
IHg2MzQsICZ4NjU1KTsKLSAgdWludDMyX3QgeDY1ODsgdWludDhfdCB4NjU5ID0gYWRkY2Fycnl4
X3UzMih4NjU2LCB4NjM1LCB4NjM3LCAmeDY1OCk7Ci0gIHVpbnQzMl90IHg2NjE7IHVpbnQ4X3Qg
eDY2MiA9IGFkZGNhcnJ5eF91MzIoeDY1OSwgeDYzOCwgeDY0MCwgJng2NjEpOwotICB1aW50MzJf
dCB4NjY0OyB1aW50OF90IHg2NjUgPSBhZGRjYXJyeXhfdTMyKHg2NjIsIHg2NDEsIHg2NDMsICZ4
NjY0KTsKLSAgdWludDMyX3QgeDY2NzsgdWludDhfdCB4NjY4ID0gYWRkY2Fycnl4X3UzMih4NjY1
LCB4NjQ0LCB4NjQ2LCAmeDY2Nyk7Ci0gIHVpbnQzMl90IHg2NzA7IHVpbnQ4X3QgeDY3MSA9IGFk
ZGNhcnJ5eF91MzIoeDY2OCwgeDY0NywgeDY0OSwgJng2NzApOwotICB1aW50MzJfdCB4NjczOyB1
aW50OF90IHg2NzQgPSBhZGRjYXJyeXhfdTMyKHg2NzEsIHg2NTAsIHg2NTIsICZ4NjczKTsKLSAg
dWludDMyX3QgeDY3NjsgYWRkY2Fycnl4X3UzMigweDAsIHg2NzQsIHg2NTMsICZ4Njc2KTsKLSAg
dWludDMyX3QgeDY3OTsgdWludDhfdCB4NjgwID0gYWRkY2Fycnl4X3UzMigweDAsIHg2MDYsIHg2
MzEsICZ4Njc5KTsKLSAgdWludDMyX3QgeDY4MjsgdWludDhfdCB4NjgzID0gYWRkY2Fycnl4X3Uz
Mih4NjgwLCB4NjA5LCB4NjU1LCAmeDY4Mik7Ci0gIHVpbnQzMl90IHg2ODU7IHVpbnQ4X3QgeDY4
NiA9IGFkZGNhcnJ5eF91MzIoeDY4MywgeDYxMiwgeDY1OCwgJng2ODUpOwotICB1aW50MzJfdCB4
Njg4OyB1aW50OF90IHg2ODkgPSBhZGRjYXJyeXhfdTMyKHg2ODYsIHg2MTUsIHg2NjEsICZ4Njg4
KTsKLSAgdWludDMyX3QgeDY5MTsgdWludDhfdCB4NjkyID0gYWRkY2Fycnl4X3UzMih4Njg5LCB4
NjE4LCB4NjY0LCAmeDY5MSk7Ci0gIHVpbnQzMl90IHg2OTQ7IHVpbnQ4X3QgeDY5NSA9IGFkZGNh
cnJ5eF91MzIoeDY5MiwgeDYyMSwgeDY2NywgJng2OTQpOwotICB1aW50MzJfdCB4Njk3OyB1aW50
OF90IHg2OTggPSBhZGRjYXJyeXhfdTMyKHg2OTUsIHg2MjQsIHg2NzAsICZ4Njk3KTsKLSAgdWlu
dDMyX3QgeDcwMDsgdWludDhfdCB4NzAxID0gYWRkY2Fycnl4X3UzMih4Njk4LCB4NjI3LCB4Njcz
LCAmeDcwMCk7Ci0gIHVpbnQzMl90IHg3MDM7IHVpbnQ4X3QgeDcwNCA9IGFkZGNhcnJ5eF91MzIo
eDcwMSwgeDYyOSwgeDY3NiwgJng3MDMpOwotICB1aW50MzJfdCB4NzA3OyAgdWludDMyX3QgeDcw
NiA9IG11bHhfdTMyKHg2NzksIDB4ZmZmZmZmZmYsICZ4NzA3KTsKLSAgdWludDMyX3QgeDcxMDsg
IHVpbnQzMl90IHg3MDkgPSBtdWx4X3UzMih4Njc5LCAweGZmZmZmZmZmLCAmeDcxMCk7Ci0gIHVp
bnQzMl90IHg3MTM7ICB1aW50MzJfdCB4NzEyID0gbXVseF91MzIoeDY3OSwgMHhmZmZmZmZmZiwg
Jng3MTMpOwotICB1aW50MzJfdCB4NzE2OyAgdWludDMyX3QgeDcxNSA9IG11bHhfdTMyKHg2Nzks
IDB4ZmZmZmZmZmYsICZ4NzE2KTsKLSAgdWludDMyX3QgeDcxODsgdWludDhfdCB4NzE5ID0gYWRk
Y2Fycnl4X3UzMigweDAsIHg3MDcsIHg3MDksICZ4NzE4KTsKLSAgdWludDMyX3QgeDcyMTsgdWlu
dDhfdCB4NzIyID0gYWRkY2Fycnl4X3UzMih4NzE5LCB4NzEwLCB4NzEyLCAmeDcyMSk7Ci0gIHVp
bnQzMl90IHg3MjQ7IHVpbnQ4X3QgeDcyNSA9IGFkZGNhcnJ5eF91MzIoeDcyMiwgeDcxMywgMHgw
LCAmeDcyNCk7Ci0gIHVpbnQ4X3QgeDcyNiA9ICgweDAgKyAweDApOwotICB1aW50MzJfdCBfNjsg
dWludDhfdCB4NzI5ID0gYWRkY2Fycnl4X3UzMigweDAsIHg2NzksIHg3MDYsICZfNik7Ci0gIHVp
bnQzMl90IHg3MzE7IHVpbnQ4X3QgeDczMiA9IGFkZGNhcnJ5eF91MzIoeDcyOSwgeDY4MiwgeDcx
OCwgJng3MzEpOwotICB1aW50MzJfdCB4NzM0OyB1aW50OF90IHg3MzUgPSBhZGRjYXJyeXhfdTMy
KHg3MzIsIHg2ODUsIHg3MjEsICZ4NzM0KTsKLSAgdWludDMyX3QgeDczNzsgdWludDhfdCB4NzM4
ID0gYWRkY2Fycnl4X3UzMih4NzM1LCB4Njg4LCB4NzI0LCAmeDczNyk7Ci0gIHVpbnQzMl90IHg3
NDA7IHVpbnQ4X3QgeDc0MSA9IGFkZGNhcnJ5eF91MzIoeDczOCwgeDY5MSwgeDcyNSwgJng3NDAp
OwotICB1aW50MzJfdCB4NzQzOyB1aW50OF90IHg3NDQgPSBhZGRjYXJyeXhfdTMyKHg3NDEsIHg2
OTQsIHg3MjYsICZ4NzQzKTsKLSAgdWludDMyX3QgeDc0NjsgdWludDhfdCB4NzQ3ID0gYWRkY2Fy
cnl4X3UzMih4NzQ0LCB4Njk3LCB4Njc5LCAmeDc0Nik7Ci0gIHVpbnQzMl90IHg3NDk7IHVpbnQ4
X3QgeDc1MCA9IGFkZGNhcnJ5eF91MzIoeDc0NywgeDcwMCwgeDcxNSwgJng3NDkpOwotICB1aW50
MzJfdCB4NzUyOyB1aW50OF90IHg3NTMgPSBhZGRjYXJyeXhfdTMyKHg3NTAsIHg3MDMsIHg3MTYs
ICZ4NzUyKTsKLSAgdWludDhfdCB4NzU0ID0gKHg3NTMgKyB4NzA0KTsKLSAgdWludDMyX3QgeDc1
NzsgIHVpbnQzMl90IHg3NTYgPSBtdWx4X3UzMih4MTcsIHgxOSwgJng3NTcpOwotICB1aW50MzJf
dCB4NzYwOyAgdWludDMyX3QgeDc1OSA9IG11bHhfdTMyKHgxNywgeDIxLCAmeDc2MCk7Ci0gIHVp
bnQzMl90IHg3NjM7ICB1aW50MzJfdCB4NzYyID0gbXVseF91MzIoeDE3LCB4MjMsICZ4NzYzKTsK
LSAgdWludDMyX3QgeDc2NjsgIHVpbnQzMl90IHg3NjUgPSBtdWx4X3UzMih4MTcsIHgyNSwgJng3
NjYpOwotICB1aW50MzJfdCB4NzY5OyAgdWludDMyX3QgeDc2OCA9IG11bHhfdTMyKHgxNywgeDI3
LCAmeDc2OSk7Ci0gIHVpbnQzMl90IHg3NzI7ICB1aW50MzJfdCB4NzcxID0gbXVseF91MzIoeDE3
LCB4MjksICZ4NzcyKTsKLSAgdWludDMyX3QgeDc3NTsgIHVpbnQzMl90IHg3NzQgPSBtdWx4X3Uz
Mih4MTcsIHgzMSwgJng3NzUpOwotICB1aW50MzJfdCB4Nzc4OyAgdWludDMyX3QgeDc3NyA9IG11
bHhfdTMyKHgxNywgeDMwLCAmeDc3OCk7Ci0gIHVpbnQzMl90IHg3ODA7IHVpbnQ4X3QgeDc4MSA9
IGFkZGNhcnJ5eF91MzIoMHgwLCB4NzU3LCB4NzU5LCAmeDc4MCk7Ci0gIHVpbnQzMl90IHg3ODM7
IHVpbnQ4X3QgeDc4NCA9IGFkZGNhcnJ5eF91MzIoeDc4MSwgeDc2MCwgeDc2MiwgJng3ODMpOwot
ICB1aW50MzJfdCB4Nzg2OyB1aW50OF90IHg3ODcgPSBhZGRjYXJyeXhfdTMyKHg3ODQsIHg3NjMs
IHg3NjUsICZ4Nzg2KTsKLSAgdWludDMyX3QgeDc4OTsgdWludDhfdCB4NzkwID0gYWRkY2Fycnl4
X3UzMih4Nzg3LCB4NzY2LCB4NzY4LCAmeDc4OSk7Ci0gIHVpbnQzMl90IHg3OTI7IHVpbnQ4X3Qg
eDc5MyA9IGFkZGNhcnJ5eF91MzIoeDc5MCwgeDc2OSwgeDc3MSwgJng3OTIpOwotICB1aW50MzJf
dCB4Nzk1OyB1aW50OF90IHg3OTYgPSBhZGRjYXJyeXhfdTMyKHg3OTMsIHg3NzIsIHg3NzQsICZ4
Nzk1KTsKLSAgdWludDMyX3QgeDc5ODsgdWludDhfdCB4Nzk5ID0gYWRkY2Fycnl4X3UzMih4Nzk2
LCB4Nzc1LCB4Nzc3LCAmeDc5OCk7Ci0gIHVpbnQzMl90IHg4MDE7IGFkZGNhcnJ5eF91MzIoMHgw
LCB4Nzk5LCB4Nzc4LCAmeDgwMSk7Ci0gIHVpbnQzMl90IHg4MDQ7IHVpbnQ4X3QgeDgwNSA9IGFk
ZGNhcnJ5eF91MzIoMHgwLCB4NzMxLCB4NzU2LCAmeDgwNCk7Ci0gIHVpbnQzMl90IHg4MDc7IHVp
bnQ4X3QgeDgwOCA9IGFkZGNhcnJ5eF91MzIoeDgwNSwgeDczNCwgeDc4MCwgJng4MDcpOwotICB1
aW50MzJfdCB4ODEwOyB1aW50OF90IHg4MTEgPSBhZGRjYXJyeXhfdTMyKHg4MDgsIHg3MzcsIHg3
ODMsICZ4ODEwKTsKLSAgdWludDMyX3QgeDgxMzsgdWludDhfdCB4ODE0ID0gYWRkY2Fycnl4X3Uz
Mih4ODExLCB4NzQwLCB4Nzg2LCAmeDgxMyk7Ci0gIHVpbnQzMl90IHg4MTY7IHVpbnQ4X3QgeDgx
NyA9IGFkZGNhcnJ5eF91MzIoeDgxNCwgeDc0MywgeDc4OSwgJng4MTYpOwotICB1aW50MzJfdCB4
ODE5OyB1aW50OF90IHg4MjAgPSBhZGRjYXJyeXhfdTMyKHg4MTcsIHg3NDYsIHg3OTIsICZ4ODE5
KTsKLSAgdWludDMyX3QgeDgyMjsgdWludDhfdCB4ODIzID0gYWRkY2Fycnl4X3UzMih4ODIwLCB4
NzQ5LCB4Nzk1LCAmeDgyMik7Ci0gIHVpbnQzMl90IHg4MjU7IHVpbnQ4X3QgeDgyNiA9IGFkZGNh
cnJ5eF91MzIoeDgyMywgeDc1MiwgeDc5OCwgJng4MjUpOwotICB1aW50MzJfdCB4ODI4OyB1aW50
OF90IHg4MjkgPSBhZGRjYXJyeXhfdTMyKHg4MjYsIHg3NTQsIHg4MDEsICZ4ODI4KTsKLSAgdWlu
dDMyX3QgeDgzMjsgIHVpbnQzMl90IHg4MzEgPSBtdWx4X3UzMih4ODA0LCAweGZmZmZmZmZmLCAm
eDgzMik7Ci0gIHVpbnQzMl90IHg4MzU7ICB1aW50MzJfdCB4ODM0ID0gbXVseF91MzIoeDgwNCwg
MHhmZmZmZmZmZiwgJng4MzUpOwotICB1aW50MzJfdCB4ODM4OyAgdWludDMyX3QgeDgzNyA9IG11
bHhfdTMyKHg4MDQsIDB4ZmZmZmZmZmYsICZ4ODM4KTsKLSAgdWludDMyX3QgeDg0MTsgIHVpbnQz
Ml90IHg4NDAgPSBtdWx4X3UzMih4ODA0LCAweGZmZmZmZmZmLCAmeDg0MSk7Ci0gIHVpbnQzMl90
IHg4NDM7IHVpbnQ4X3QgeDg0NCA9IGFkZGNhcnJ5eF91MzIoMHgwLCB4ODMyLCB4ODM0LCAmeDg0
Myk7Ci0gIHVpbnQzMl90IHg4NDY7IHVpbnQ4X3QgeDg0NyA9IGFkZGNhcnJ5eF91MzIoeDg0NCwg
eDgzNSwgeDgzNywgJng4NDYpOwotICB1aW50MzJfdCB4ODQ5OyB1aW50OF90IHg4NTAgPSBhZGRj
YXJyeXhfdTMyKHg4NDcsIHg4MzgsIDB4MCwgJng4NDkpOwotICB1aW50OF90IHg4NTEgPSAoMHgw
ICsgMHgwKTsKLSAgdWludDMyX3QgXzc7IHVpbnQ4X3QgeDg1NCA9IGFkZGNhcnJ5eF91MzIoMHgw
LCB4ODA0LCB4ODMxLCAmXzcpOwotICB1aW50MzJfdCB4ODU2OyB1aW50OF90IHg4NTcgPSBhZGRj
YXJyeXhfdTMyKHg4NTQsIHg4MDcsIHg4NDMsICZ4ODU2KTsKLSAgdWludDMyX3QgeDg1OTsgdWlu
dDhfdCB4ODYwID0gYWRkY2Fycnl4X3UzMih4ODU3LCB4ODEwLCB4ODQ2LCAmeDg1OSk7Ci0gIHVp
bnQzMl90IHg4NjI7IHVpbnQ4X3QgeDg2MyA9IGFkZGNhcnJ5eF91MzIoeDg2MCwgeDgxMywgeDg0
OSwgJng4NjIpOwotICB1aW50MzJfdCB4ODY1OyB1aW50OF90IHg4NjYgPSBhZGRjYXJyeXhfdTMy
KHg4NjMsIHg4MTYsIHg4NTAsICZ4ODY1KTsKLSAgdWludDMyX3QgeDg2ODsgdWludDhfdCB4ODY5
ID0gYWRkY2Fycnl4X3UzMih4ODY2LCB4ODE5LCB4ODUxLCAmeDg2OCk7Ci0gIHVpbnQzMl90IHg4
NzE7IHVpbnQ4X3QgeDg3MiA9IGFkZGNhcnJ5eF91MzIoeDg2OSwgeDgyMiwgeDgwNCwgJng4NzEp
OwotICB1aW50MzJfdCB4ODc0OyB1aW50OF90IHg4NzUgPSBhZGRjYXJyeXhfdTMyKHg4NzIsIHg4
MjUsIHg4NDAsICZ4ODc0KTsKLSAgdWludDMyX3QgeDg3NzsgdWludDhfdCB4ODc4ID0gYWRkY2Fy
cnl4X3UzMih4ODc1LCB4ODI4LCB4ODQxLCAmeDg3Nyk7Ci0gIHVpbnQ4X3QgeDg3OSA9ICh4ODc4
ICsgeDgyOSk7Ci0gIHVpbnQzMl90IHg4ODI7ICB1aW50MzJfdCB4ODgxID0gbXVseF91MzIoeDE2
LCB4MTksICZ4ODgyKTsKLSAgdWludDMyX3QgeDg4NTsgIHVpbnQzMl90IHg4ODQgPSBtdWx4X3Uz
Mih4MTYsIHgyMSwgJng4ODUpOwotICB1aW50MzJfdCB4ODg4OyAgdWludDMyX3QgeDg4NyA9IG11
bHhfdTMyKHgxNiwgeDIzLCAmeDg4OCk7Ci0gIHVpbnQzMl90IHg4OTE7ICB1aW50MzJfdCB4ODkw
ID0gbXVseF91MzIoeDE2LCB4MjUsICZ4ODkxKTsKLSAgdWludDMyX3QgeDg5NDsgIHVpbnQzMl90
IHg4OTMgPSBtdWx4X3UzMih4MTYsIHgyNywgJng4OTQpOwotICB1aW50MzJfdCB4ODk3OyAgdWlu
dDMyX3QgeDg5NiA9IG11bHhfdTMyKHgxNiwgeDI5LCAmeDg5Nyk7Ci0gIHVpbnQzMl90IHg5MDA7
ICB1aW50MzJfdCB4ODk5ID0gbXVseF91MzIoeDE2LCB4MzEsICZ4OTAwKTsKLSAgdWludDMyX3Qg
eDkwMzsgIHVpbnQzMl90IHg5MDIgPSBtdWx4X3UzMih4MTYsIHgzMCwgJng5MDMpOwotICB1aW50
MzJfdCB4OTA1OyB1aW50OF90IHg5MDYgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDg4MiwgeDg4NCwg
Jng5MDUpOwotICB1aW50MzJfdCB4OTA4OyB1aW50OF90IHg5MDkgPSBhZGRjYXJyeXhfdTMyKHg5
MDYsIHg4ODUsIHg4ODcsICZ4OTA4KTsKLSAgdWludDMyX3QgeDkxMTsgdWludDhfdCB4OTEyID0g
YWRkY2Fycnl4X3UzMih4OTA5LCB4ODg4LCB4ODkwLCAmeDkxMSk7Ci0gIHVpbnQzMl90IHg5MTQ7
IHVpbnQ4X3QgeDkxNSA9IGFkZGNhcnJ5eF91MzIoeDkxMiwgeDg5MSwgeDg5MywgJng5MTQpOwot
ICB1aW50MzJfdCB4OTE3OyB1aW50OF90IHg5MTggPSBhZGRjYXJyeXhfdTMyKHg5MTUsIHg4OTQs
IHg4OTYsICZ4OTE3KTsKLSAgdWludDMyX3QgeDkyMDsgdWludDhfdCB4OTIxID0gYWRkY2Fycnl4
X3UzMih4OTE4LCB4ODk3LCB4ODk5LCAmeDkyMCk7Ci0gIHVpbnQzMl90IHg5MjM7IHVpbnQ4X3Qg
eDkyNCA9IGFkZGNhcnJ5eF91MzIoeDkyMSwgeDkwMCwgeDkwMiwgJng5MjMpOwotICB1aW50MzJf
dCB4OTI2OyBhZGRjYXJyeXhfdTMyKDB4MCwgeDkyNCwgeDkwMywgJng5MjYpOwotICB1aW50MzJf
dCB4OTI5OyB1aW50OF90IHg5MzAgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDg1NiwgeDg4MSwgJng5
MjkpOwotICB1aW50MzJfdCB4OTMyOyB1aW50OF90IHg5MzMgPSBhZGRjYXJyeXhfdTMyKHg5MzAs
IHg4NTksIHg5MDUsICZ4OTMyKTsKLSAgdWludDMyX3QgeDkzNTsgdWludDhfdCB4OTM2ID0gYWRk
Y2Fycnl4X3UzMih4OTMzLCB4ODYyLCB4OTA4LCAmeDkzNSk7Ci0gIHVpbnQzMl90IHg5Mzg7IHVp
bnQ4X3QgeDkzOSA9IGFkZGNhcnJ5eF91MzIoeDkzNiwgeDg2NSwgeDkxMSwgJng5MzgpOwotICB1
aW50MzJfdCB4OTQxOyB1aW50OF90IHg5NDIgPSBhZGRjYXJyeXhfdTMyKHg5MzksIHg4NjgsIHg5
MTQsICZ4OTQxKTsKLSAgdWludDMyX3QgeDk0NDsgdWludDhfdCB4OTQ1ID0gYWRkY2Fycnl4X3Uz
Mih4OTQyLCB4ODcxLCB4OTE3LCAmeDk0NCk7Ci0gIHVpbnQzMl90IHg5NDc7IHVpbnQ4X3QgeDk0
OCA9IGFkZGNhcnJ5eF91MzIoeDk0NSwgeDg3NCwgeDkyMCwgJng5NDcpOwotICB1aW50MzJfdCB4
OTUwOyB1aW50OF90IHg5NTEgPSBhZGRjYXJyeXhfdTMyKHg5NDgsIHg4NzcsIHg5MjMsICZ4OTUw
KTsKLSAgdWludDMyX3QgeDk1MzsgdWludDhfdCB4OTU0ID0gYWRkY2Fycnl4X3UzMih4OTUxLCB4
ODc5LCB4OTI2LCAmeDk1Myk7Ci0gIHVpbnQzMl90IHg5NTc7ICB1aW50MzJfdCB4OTU2ID0gbXVs
eF91MzIoeDkyOSwgMHhmZmZmZmZmZiwgJng5NTcpOwotICB1aW50MzJfdCB4OTYwOyAgdWludDMy
X3QgeDk1OSA9IG11bHhfdTMyKHg5MjksIDB4ZmZmZmZmZmYsICZ4OTYwKTsKLSAgdWludDMyX3Qg
eDk2MzsgIHVpbnQzMl90IHg5NjIgPSBtdWx4X3UzMih4OTI5LCAweGZmZmZmZmZmLCAmeDk2Myk7
Ci0gIHVpbnQzMl90IHg5NjY7ICB1aW50MzJfdCB4OTY1ID0gbXVseF91MzIoeDkyOSwgMHhmZmZm
ZmZmZiwgJng5NjYpOwotICB1aW50MzJfdCB4OTY4OyB1aW50OF90IHg5NjkgPSBhZGRjYXJyeXhf
dTMyKDB4MCwgeDk1NywgeDk1OSwgJng5NjgpOwotICB1aW50MzJfdCB4OTcxOyB1aW50OF90IHg5
NzIgPSBhZGRjYXJyeXhfdTMyKHg5NjksIHg5NjAsIHg5NjIsICZ4OTcxKTsKLSAgdWludDMyX3Qg
eDk3NDsgdWludDhfdCB4OTc1ID0gYWRkY2Fycnl4X3UzMih4OTcyLCB4OTYzLCAweDAsICZ4OTc0
KTsKLSAgdWludDhfdCB4OTc2ID0gKDB4MCArIDB4MCk7Ci0gIHVpbnQzMl90IF84OyB1aW50OF90
IHg5NzkgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDkyOSwgeDk1NiwgJl84KTsKLSAgdWludDMyX3Qg
eDk4MTsgdWludDhfdCB4OTgyID0gYWRkY2Fycnl4X3UzMih4OTc5LCB4OTMyLCB4OTY4LCAmeDk4
MSk7Ci0gIHVpbnQzMl90IHg5ODQ7IHVpbnQ4X3QgeDk4NSA9IGFkZGNhcnJ5eF91MzIoeDk4Miwg
eDkzNSwgeDk3MSwgJng5ODQpOwotICB1aW50MzJfdCB4OTg3OyB1aW50OF90IHg5ODggPSBhZGRj
YXJyeXhfdTMyKHg5ODUsIHg5MzgsIHg5NzQsICZ4OTg3KTsKLSAgdWludDMyX3QgeDk5MDsgdWlu
dDhfdCB4OTkxID0gYWRkY2Fycnl4X3UzMih4OTg4LCB4OTQxLCB4OTc1LCAmeDk5MCk7Ci0gIHVp
bnQzMl90IHg5OTM7IHVpbnQ4X3QgeDk5NCA9IGFkZGNhcnJ5eF91MzIoeDk5MSwgeDk0NCwgeDk3
NiwgJng5OTMpOwotICB1aW50MzJfdCB4OTk2OyB1aW50OF90IHg5OTcgPSBhZGRjYXJyeXhfdTMy
KHg5OTQsIHg5NDcsIHg5MjksICZ4OTk2KTsKLSAgdWludDMyX3QgeDk5OTsgdWludDhfdCB4MTAw
MCA9IGFkZGNhcnJ5eF91MzIoeDk5NywgeDk1MCwgeDk2NSwgJng5OTkpOwotICB1aW50MzJfdCB4
MTAwMjsgdWludDhfdCB4MTAwMyA9IGFkZGNhcnJ5eF91MzIoeDEwMDAsIHg5NTMsIHg5NjYsICZ4
MTAwMik7Ci0gIHVpbnQ4X3QgeDEwMDQgPSAoeDEwMDMgKyB4OTU0KTsKLSAgdWludDMyX3QgeDEw
MDY7IHVpbnQ4X3QgeDEwMDcgPSBzdWJib3Jyb3dfdTMyKDB4MCwgeDk4MSwgMHhmZmZmZmZmZiwg
JngxMDA2KTsKLSAgdWludDMyX3QgeDEwMDk7IHVpbnQ4X3QgeDEwMTAgPSBzdWJib3Jyb3dfdTMy
KHgxMDA3LCB4OTg0LCAweGZmZmZmZmZmLCAmeDEwMDkpOwotICB1aW50MzJfdCB4MTAxMjsgdWlu
dDhfdCB4MTAxMyA9IHN1YmJvcnJvd191MzIoeDEwMTAsIHg5ODcsIDB4ZmZmZmZmZmYsICZ4MTAx
Mik7Ci0gIHVpbnQzMl90IHgxMDE1OyB1aW50OF90IHgxMDE2ID0gc3ViYm9ycm93X3UzMih4MTAx
MywgeDk5MCwgMHgwLCAmeDEwMTUpOwotICB1aW50MzJfdCB4MTAxODsgdWludDhfdCB4MTAxOSA9
IHN1YmJvcnJvd191MzIoeDEwMTYsIHg5OTMsIDB4MCwgJngxMDE4KTsKLSAgdWludDMyX3QgeDEw
MjE7IHVpbnQ4X3QgeDEwMjIgPSBzdWJib3Jyb3dfdTMyKHgxMDE5LCB4OTk2LCAweDAsICZ4MTAy
MSk7Ci0gIHVpbnQzMl90IHgxMDI0OyB1aW50OF90IHgxMDI1ID0gc3ViYm9ycm93X3UzMih4MTAy
MiwgeDk5OSwgMHgxLCAmeDEwMjQpOwotICB1aW50MzJfdCB4MTAyNzsgdWludDhfdCB4MTAyOCA9
IHN1YmJvcnJvd191MzIoeDEwMjUsIHgxMDAyLCAweGZmZmZmZmZmLCAmeDEwMjcpOwotICB1aW50
MzJfdCBfOTsgdWludDhfdCB4MTAzMSA9IHN1YmJvcnJvd191MzIoeDEwMjgsIHgxMDA0LCAweDAs
ICZfOSk7Ci0gIHVpbnQzMl90IHgxMDMyID0gY21vdnpuel91MzIoeDEwMzEsIHgxMDI3LCB4MTAw
Mik7Ci0gIHVpbnQzMl90IHgxMDMzID0gY21vdnpuel91MzIoeDEwMzEsIHgxMDI0LCB4OTk5KTsK
LSAgdWludDMyX3QgeDEwMzQgPSBjbW92em56X3UzMih4MTAzMSwgeDEwMjEsIHg5OTYpOwotICB1
aW50MzJfdCB4MTAzNSA9IGNtb3Z6bnpfdTMyKHgxMDMxLCB4MTAxOCwgeDk5Myk7Ci0gIHVpbnQz
Ml90IHgxMDM2ID0gY21vdnpuel91MzIoeDEwMzEsIHgxMDE1LCB4OTkwKTsKLSAgdWludDMyX3Qg
eDEwMzcgPSBjbW92em56X3UzMih4MTAzMSwgeDEwMTIsIHg5ODcpOwotICB1aW50MzJfdCB4MTAz
OCA9IGNtb3Z6bnpfdTMyKHgxMDMxLCB4MTAwOSwgeDk4NCk7Ci0gIHVpbnQzMl90IHgxMDM5ID0g
Y21vdnpuel91MzIoeDEwMzEsIHgxMDA2LCB4OTgxKTsKLSAgb3V0WzBdID0geDEwMzk7Ci0gIG91
dFsxXSA9IHgxMDM4OwotICBvdXRbMl0gPSB4MTAzNzsKLSAgb3V0WzNdID0geDEwMzY7Ci0gIG91
dFs0XSA9IHgxMDM1OwotICBvdXRbNV0gPSB4MTAzNDsKLSAgb3V0WzZdID0geDEwMzM7Ci0gIG91
dFs3XSA9IHgxMDMyOwotfQotCi0vLyBOT1RFOiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUg
Z2VuZXJhdGVkIGZyb20gZmlhdC1jcnlwdG8sIGZyb20gdGhlIHNhbWUKLS8vIHRlbXBsYXRlIGFz
IHRoZWlyIDY0LWJpdCBjb3VudGVycGFydHMgYWJvdmUsIGJ1dCB0aGUgY29ycmVjdG5lc3MgcHJv
b2Ygb2YKLS8vIHRoZSB0ZW1wbGF0ZSB3YXMgbm90IGNvbXBvc2VkIHdpdGggdGhlIGNvcnJlY3Ru
ZXNzIHByb29mIG9mIHRoZQotLy8gc3BlY2lhbGl6YXRpb24gcGlwZWxpbmUuIFRoaXMgaXMgYmVj
YXVzZSBDb3EgdW5leHBsYWluZWRseSBsb29wcyBvbiB0cnlpbmcKLS8vIHRvIHN5bnRoZXNpemUg
b3BwIGFuZCBzdWIgdXNpbmcgdGhlIG5vcm1hbCBwaXBlbGluZS4KLQotc3RhdGljIHZvaWQgZmVf
c3ViKHVpbnQzMl90IG91dFs4XSwgY29uc3QgdWludDMyX3QgaW4xWzhdLCBjb25zdCB1aW50MzJf
dCBpbjJbOF0pIHsKLSAgY29uc3QgdWludDMyX3QgeDE0ID0gaW4xWzddOwotICBjb25zdCB1aW50
MzJfdCB4MTUgPSBpbjFbNl07Ci0gIGNvbnN0IHVpbnQzMl90IHgxMyA9IGluMVs1XTsKLSAgY29u
c3QgdWludDMyX3QgeDExID0gaW4xWzRdOwotICBjb25zdCB1aW50MzJfdCB4OSA9IGluMVszXTsK
LSAgY29uc3QgdWludDMyX3QgeDcgPSBpbjFbMl07Ci0gIGNvbnN0IHVpbnQzMl90IHg1ID0gaW4x
WzFdOwotICBjb25zdCB1aW50MzJfdCB4MyA9IGluMVswXTsKLSAgY29uc3QgdWludDMyX3QgeDI4
ID0gaW4yWzddOwotICBjb25zdCB1aW50MzJfdCB4MjkgPSBpbjJbNl07Ci0gIGNvbnN0IHVpbnQz
Ml90IHgyNyA9IGluMls1XTsKLSAgY29uc3QgdWludDMyX3QgeDI1ID0gaW4yWzRdOwotICBjb25z
dCB1aW50MzJfdCB4MjMgPSBpbjJbM107Ci0gIGNvbnN0IHVpbnQzMl90IHgyMSA9IGluMlsyXTsK
LSAgY29uc3QgdWludDMyX3QgeDE5ID0gaW4yWzFdOwotICBjb25zdCB1aW50MzJfdCB4MTcgPSBp
bjJbMF07Ci0gIHVpbnQzMl90IHgzMTsgdWludDhfdCB4MzIgPSBzdWJib3Jyb3dfdTMyKDB4MCwg
eDMsIHgxNywgJngzMSk7Ci0gIHVpbnQzMl90IHgzNDsgdWludDhfdCB4MzUgPSBzdWJib3Jyb3df
dTMyKHgzMiwgeDUsIHgxOSwgJngzNCk7Ci0gIHVpbnQzMl90IHgzNzsgdWludDhfdCB4MzggPSBz
dWJib3Jyb3dfdTMyKHgzNSwgeDcsIHgyMSwgJngzNyk7Ci0gIHVpbnQzMl90IHg0MDsgdWludDhf
dCB4NDEgPSBzdWJib3Jyb3dfdTMyKHgzOCwgeDksIHgyMywgJng0MCk7Ci0gIHVpbnQzMl90IHg0
MzsgdWludDhfdCB4NDQgPSBzdWJib3Jyb3dfdTMyKHg0MSwgeDExLCB4MjUsICZ4NDMpOwotICB1
aW50MzJfdCB4NDY7IHVpbnQ4X3QgeDQ3ID0gc3ViYm9ycm93X3UzMih4NDQsIHgxMywgeDI3LCAm
eDQ2KTsKLSAgdWludDMyX3QgeDQ5OyB1aW50OF90IHg1MCA9IHN1YmJvcnJvd191MzIoeDQ3LCB4
MTUsIHgyOSwgJng0OSk7Ci0gIHVpbnQzMl90IHg1MjsgdWludDhfdCB4NTMgPSBzdWJib3Jyb3df
dTMyKHg1MCwgeDE0LCB4MjgsICZ4NTIpOwotICB1aW50MzJfdCB4NTQgPSBjbW92em56X3UzMih4
NTMsIDB4MCwgMHhmZmZmZmZmZik7Ci0gIHVpbnQzMl90IHg1NjsgdWludDhfdCB4NTcgPSBhZGRj
YXJyeXhfdTMyKDB4MCwgeDMxLCAoeDU0ICYgMHhmZmZmZmZmZiksICZ4NTYpOwotICB1aW50MzJf
dCB4NTk7IHVpbnQ4X3QgeDYwID0gYWRkY2Fycnl4X3UzMih4NTcsIHgzNCwgKHg1NCAmIDB4ZmZm
ZmZmZmYpLCAmeDU5KTsKLSAgdWludDMyX3QgeDYyOyB1aW50OF90IHg2MyA9IGFkZGNhcnJ5eF91
MzIoeDYwLCB4MzcsICh4NTQgJiAweGZmZmZmZmZmKSwgJng2Mik7Ci0gIHVpbnQzMl90IHg2NTsg
dWludDhfdCB4NjYgPSBhZGRjYXJyeXhfdTMyKHg2MywgeDQwLCAweDAsICZ4NjUpOwotICB1aW50
MzJfdCB4Njg7IHVpbnQ4X3QgeDY5ID0gYWRkY2Fycnl4X3UzMih4NjYsIHg0MywgMHgwLCAmeDY4
KTsKLSAgdWludDMyX3QgeDcxOyB1aW50OF90IHg3MiA9IGFkZGNhcnJ5eF91MzIoeDY5LCB4NDYs
IDB4MCwgJng3MSk7Ci0gIHVpbnQzMl90IHg3NDsgdWludDhfdCB4NzUgPSBhZGRjYXJyeXhfdTMy
KHg3MiwgeDQ5LCAoKHVpbnQ4X3QpeDU0ICYgMHgxKSwgJng3NCk7Ci0gIHVpbnQzMl90IHg3Nzsg
YWRkY2Fycnl4X3UzMih4NzUsIHg1MiwgKHg1NCAmIDB4ZmZmZmZmZmYpLCAmeDc3KTsKLSAgb3V0
WzBdID0geDU2OwotICBvdXRbMV0gPSB4NTk7Ci0gIG91dFsyXSA9IHg2MjsKLSAgb3V0WzNdID0g
eDY1OwotICBvdXRbNF0gPSB4Njg7Ci0gIG91dFs1XSA9IHg3MTsKLSAgb3V0WzZdID0geDc0Owot
ICBvdXRbN10gPSB4Nzc7Ci19Ci0KLS8vIGZlX29wIHNldHMgb3V0ID0gLWluCi1zdGF0aWMgdm9p
ZCBmZV9vcHAodWludDMyX3Qgb3V0WzhdLCBjb25zdCB1aW50MzJfdCBpbjFbOF0pIHsKLSAgY29u
c3QgdWludDMyX3QgeDEyID0gaW4xWzddOwotICBjb25zdCB1aW50MzJfdCB4MTMgPSBpbjFbNl07
Ci0gIGNvbnN0IHVpbnQzMl90IHgxMSA9IGluMVs1XTsKLSAgY29uc3QgdWludDMyX3QgeDkgPSBp
bjFbNF07Ci0gIGNvbnN0IHVpbnQzMl90IHg3ID0gaW4xWzNdOwotICBjb25zdCB1aW50MzJfdCB4
NSA9IGluMVsyXTsKLSAgY29uc3QgdWludDMyX3QgeDMgPSBpbjFbMV07Ci0gIGNvbnN0IHVpbnQz
Ml90IHgxID0gaW4xWzBdOwotICB1aW50MzJfdCB4MTU7IHVpbnQ4X3QgeDE2ID0gc3ViYm9ycm93
X3UzMigweDAsIDB4MCwgeDEsICZ4MTUpOwotICB1aW50MzJfdCB4MTg7IHVpbnQ4X3QgeDE5ID0g
c3ViYm9ycm93X3UzMih4MTYsIDB4MCwgeDMsICZ4MTgpOwotICB1aW50MzJfdCB4MjE7IHVpbnQ4
X3QgeDIyID0gc3ViYm9ycm93X3UzMih4MTksIDB4MCwgeDUsICZ4MjEpOwotICB1aW50MzJfdCB4
MjQ7IHVpbnQ4X3QgeDI1ID0gc3ViYm9ycm93X3UzMih4MjIsIDB4MCwgeDcsICZ4MjQpOwotICB1
aW50MzJfdCB4Mjc7IHVpbnQ4X3QgeDI4ID0gc3ViYm9ycm93X3UzMih4MjUsIDB4MCwgeDksICZ4
MjcpOwotICB1aW50MzJfdCB4MzA7IHVpbnQ4X3QgeDMxID0gc3ViYm9ycm93X3UzMih4MjgsIDB4
MCwgeDExLCAmeDMwKTsKLSAgdWludDMyX3QgeDMzOyB1aW50OF90IHgzNCA9IHN1YmJvcnJvd191
MzIoeDMxLCAweDAsIHgxMywgJngzMyk7Ci0gIHVpbnQzMl90IHgzNjsgdWludDhfdCB4MzcgPSBz
dWJib3Jyb3dfdTMyKHgzNCwgMHgwLCB4MTIsICZ4MzYpOwotICB1aW50MzJfdCB4MzggPSBjbW92
em56X3UzMih4MzcsIDB4MCwgMHhmZmZmZmZmZik7Ci0gIHVpbnQzMl90IHg0MDsgdWludDhfdCB4
NDEgPSBhZGRjYXJyeXhfdTMyKDB4MCwgeDE1LCAoeDM4ICYgMHhmZmZmZmZmZiksICZ4NDApOwot
ICB1aW50MzJfdCB4NDM7IHVpbnQ4X3QgeDQ0ID0gYWRkY2Fycnl4X3UzMih4NDEsIHgxOCwgKHgz
OCAmIDB4ZmZmZmZmZmYpLCAmeDQzKTsKLSAgdWludDMyX3QgeDQ2OyB1aW50OF90IHg0NyA9IGFk
ZGNhcnJ5eF91MzIoeDQ0LCB4MjEsICh4MzggJiAweGZmZmZmZmZmKSwgJng0Nik7Ci0gIHVpbnQz
Ml90IHg0OTsgdWludDhfdCB4NTAgPSBhZGRjYXJyeXhfdTMyKHg0NywgeDI0LCAweDAsICZ4NDkp
OwotICB1aW50MzJfdCB4NTI7IHVpbnQ4X3QgeDUzID0gYWRkY2Fycnl4X3UzMih4NTAsIHgyNywg
MHgwLCAmeDUyKTsKLSAgdWludDMyX3QgeDU1OyB1aW50OF90IHg1NiA9IGFkZGNhcnJ5eF91MzIo
eDUzLCB4MzAsIDB4MCwgJng1NSk7Ci0gIHVpbnQzMl90IHg1ODsgdWludDhfdCB4NTkgPSBhZGRj
YXJyeXhfdTMyKHg1NiwgeDMzLCAoKHVpbnQ4X3QpeDM4ICYgMHgxKSwgJng1OCk7Ci0gIHVpbnQz
Ml90IHg2MTsgYWRkY2Fycnl4X3UzMih4NTksIHgzNiwgKHgzOCAmIDB4ZmZmZmZmZmYpLCAmeDYx
KTsKLSAgb3V0WzBdID0geDQwOwotICBvdXRbMV0gPSB4NDM7Ci0gIG91dFsyXSA9IHg0NjsKLSAg
b3V0WzNdID0geDQ5OwotICBvdXRbNF0gPSB4NTI7Ci0gIG91dFs1XSA9IHg1NTsKLSAgb3V0WzZd
ID0geDU4OwotICBvdXRbN10gPSB4NjE7Ci19Ci0KLSNlbmRpZgogCiAvLyB1dGlsaXR5IGZ1bmN0
aW9ucywgaGFuZHdyaXR0ZW4KIApAQCAtODQwLDIyICs2MCwyOCBAQCBzdGF0aWMgdm9pZCBmZV9v
cHAodWludDMyX3Qgb3V0WzhdLCBjb25zdCB1aW50MzJfdCBpbjFbOF0pIHsKIAogI2RlZmluZSBO
TElNQlMgNAogdHlwZWRlZiB1aW50NjRfdCBsaW1iX3Q7Ci0jZGVmaW5lIGNtb3Z6bnpfbGltYiBj
bW92em56X3U2NAogdHlwZWRlZiB1aW50NjRfdCBmZVtOTElNQlNdOwogI2Vsc2UgLy8gNjRCSVQ7
IGVsc2UgMzJCSVQKIAogI2RlZmluZSBOTElNQlMgOAogdHlwZWRlZiB1aW50MzJfdCBsaW1iX3Q7
Ci0jZGVmaW5lIGNtb3Z6bnpfbGltYiBjbW92em56X3UzMgogdHlwZWRlZiB1aW50MzJfdCBmZVtO
TElNQlNdOwogCiAjZW5kaWYgLy8gNjRCSVQKIAorI2RlZmluZSBmZV9hZGQgZmlhdF9wMjU2X2Fk
ZAorI2RlZmluZSBmZV9zdWIgZmlhdF9wMjU2X3N1YgorI2RlZmluZSBmZV9vcHAgZmlhdF9wMjU2
X29wcAorCisjZGVmaW5lIGZlX211bCBmaWF0X3AyNTZfbXVsCisjZGVmaW5lIGZlX3NxciBmaWF0
X3AyNTZfc3F1YXJlCisKKyNkZWZpbmUgZmVfdG9ieXRlcyBmaWF0X3AyNTZfdG9fYnl0ZXMKKyNk
ZWZpbmUgZmVfZnJvbWJ5dGVzIGZpYXRfcDI1Nl9mcm9tX2J5dGVzCisKIHN0YXRpYyBsaW1iX3Qg
ZmVfbnooY29uc3QgbGltYl90IGluMVtOTElNQlNdKSB7Ci0gIGxpbWJfdCByZXQgPSAwOwotICBm
b3IgKGludCBpID0gMDsgaSA8IE5MSU1CUzsgaSsrKSB7Ci0gICAgcmV0IHw9IGluMVtpXTsKLSAg
fQorICBsaW1iX3QgcmV0OworICBmaWF0X3AyNTZfbm9uemVybygmcmV0LCBpbjEpOwogICByZXR1
cm4gcmV0OwogfQogCkBAIC04NjcsMzMgKzkzLDExIEBAIHN0YXRpYyB2b2lkIGZlX2NvcHkobGlt
Yl90IG91dFtOTElNQlNdLCBjb25zdCBsaW1iX3QgaW4xW05MSU1CU10pIHsKIAogc3RhdGljIHZv
aWQgZmVfY21vdnpueihsaW1iX3Qgb3V0W05MSU1CU10sIGxpbWJfdCB0LCBjb25zdCBsaW1iX3Qg
eltOTElNQlNdLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW1iX3QgbnpbTkxJTUJT
XSkgewotICBmb3IgKGludCBpID0gMDsgaSA8IE5MSU1CUzsgaSsrKSB7Ci0gICAgb3V0W2ldID0g
Y21vdnpuel9saW1iKHQsIHpbaV0sIG56W2ldKTsKLSAgfQotfQotCi1zdGF0aWMgdm9pZCBmZV9z
cXIoZmUgb3V0LCBjb25zdCBmZSBpbikgewotICBmZV9tdWwob3V0LCBpbiwgaW4pOwotfQotCi1z
dGF0aWMgdm9pZCBmZV90b2J5dGVzKHVpbnQ4X3Qgb3V0W05CWVRFU10sIGNvbnN0IGZlIGluKSB7
Ci0gIGZvciAoaW50IGkgPSAwOyBpPE5CWVRFUzsgaSsrKSB7Ci0gICAgb3V0W2ldID0gKHVpbnQ4
X3QpKGluW2kvc2l6ZW9mKGluWzBdKV0gPj4gKDgqKGklc2l6ZW9mKGluWzBdKSkpKTsKLSAgfQot
fQotCi1zdGF0aWMgdm9pZCBmZV9mcm9tYnl0ZXMoZmUgb3V0LCBjb25zdCB1aW50OF90IGluW05C
WVRFU10pIHsKLSAgZm9yIChpbnQgaSA9IDA7IGk8TkxJTUJTOyBpKyspIHsKLSAgICBvdXRbaV0g
PSAwOwotICB9Ci0gIGZvciAoaW50IGkgPSAwOyBpPE5CWVRFUzsgaSsrKSB7Ci0gICAgb3V0W2kv
c2l6ZW9mKG91dFswXSldIHw9ICgobGltYl90KWluW2ldKSA8PCAoOCooaSVzaXplb2Yob3V0WzBd
KSkpOwotICB9CisgIGZpYXRfcDI1Nl9zZWxlY3R6bnoob3V0LCAhIXQsIHosIG56KTsKIH0KIAog
c3RhdGljIHZvaWQgZmVfZnJvbV9tb250Z29tZXJ5KGZlIHgpIHsKLSAgc3RhdGljIGNvbnN0IGxp
bWJfdCBrT25lW05MSU1CU10gPSB7MSwgMH07Ci0gIGZlX211bCh4LCB4LCBrT25lKTsKKyAgZmlh
dF9wMjU2X2Zyb21fbW9udGdvbWVyeSh4LCB4KTsKIH0KIAogc3RhdGljIHZvaWQgZmVfZnJvbV9n
ZW5lcmljKGZlIG91dCwgY29uc3QgRUNfRkVMRU0gKmluKSB7CkBAIC0xMTE3LDcgKzMyMSwxMCBA
QCBzdGF0aWMgdm9pZCBwb2ludF9hZGQoZmUgeDMsIGZlIHkzLCBmZSB6MywgY29uc3QgZmUgeDEs
CiAKICAgbGltYl90IHluZXEgPSBmZV9ueihyKTsKIAotICBpZiAoIXhuZXEgJiYgIXluZXEgJiYg
ejFueiAmJiB6Mm56KSB7CisgIGxpbWJfdCBpc19ub250cml2aWFsX2RvdWJsZSA9IGNvbnN0YW50
X3RpbWVfaXNfemVyb193KHhuZXEgfCB5bmVxKSAmCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH5jb25zdGFudF90aW1lX2lzX3plcm9fdyh6MW56KSAmCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH5jb25zdGFudF90aW1lX2lzX3plcm9fdyh6Mm56KTsKKyAgaWYgKGlz
X25vbnRyaXZpYWxfZG91YmxlKSB7CiAgICAgcG9pbnRfZG91YmxlKHgzLCB5MywgejMsIHgxLCB5
MSwgejEpOwogICAgIHJldHVybjsKICAgfQpAQCAtMTUyNyw5OCArNzM0LDYgQEAgc3RhdGljIGNo
YXIgZ2V0X2JpdChjb25zdCB1aW50OF90ICppbiwgaW50IGkpIHsKICAgcmV0dXJuIChpbltpID4+
IDNdID4+IChpICYgNykpICYgMTsKIH0KIAotLy8gSW50ZXJsZWF2ZWQgcG9pbnQgbXVsdGlwbGlj
YXRpb24gdXNpbmcgcHJlY29tcHV0ZWQgcG9pbnQgbXVsdGlwbGVzOiBUaGUKLS8vIHNtYWxsIHBv
aW50IG11bHRpcGxlcyAwKlAsIDEqUCwgLi4uLCAxNypQIGFyZSBpbiBwX3ByZV9jb21wLCB0aGUg
c2NhbGFyCi0vLyBpbiBwX3NjYWxhciwgaWYgbm9uLU5VTEwuIElmIGdfc2NhbGFyIGlzIG5vbi1O
VUxMLCB3ZSBhbHNvIGFkZCB0aGlzIG11bHRpcGxlCi0vLyBvZiB0aGUgZ2VuZXJhdG9yLCB1c2lu
ZyBjZXJ0YWluIChsYXJnZSkgcHJlY29tcHV0ZWQgbXVsdGlwbGVzIGluIGdfcHJlX2NvbXAuCi0v
LyBPdXRwdXQgcG9pbnQgKFgsIFksIFopIGlzIHN0b3JlZCBpbiB4X291dCwgeV9vdXQsIHpfb3V0
Lgotc3RhdGljIHZvaWQgYmF0Y2hfbXVsKGZlIHhfb3V0LCBmZSB5X291dCwgZmUgel9vdXQsCi0g
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcF9zY2FsYXIsIGNvbnN0IHVpbnQ4
X3QgKmdfc2NhbGFyLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZlIHBfcHJlX2NvbXBb
MTddWzNdKSB7Ci0gIC8vIHNldCBucSB0byB0aGUgcG9pbnQgYXQgaW5maW5pdHkKLSAgZmUgbnFb
M10gPSB7ezB9LHswfSx7MH19LCBmdG1wLCB0bXBbM107Ci0gIHVpbnQ2NF90IGJpdHM7Ci0gIHVp
bnQ4X3Qgc2lnbiwgZGlnaXQ7Ci0KLSAgLy8gTG9vcCBvdmVyIGJvdGggc2NhbGFycyBtc2ItdG8t
bHNiLCBpbnRlcmxlYXZpbmcgYWRkaXRpb25zIG9mIG11bHRpcGxlcwotICAvLyBvZiB0aGUgZ2Vu
ZXJhdG9yICh0d28gaW4gZWFjaCBvZiB0aGUgbGFzdCAzMiByb3VuZHMpIGFuZCBhZGRpdGlvbnMg
b2YgcAotICAvLyAoZXZlcnkgNXRoIHJvdW5kKS4KLQotICBpbnQgc2tpcCA9IDE7ICAvLyBzYXZl
IHR3byBwb2ludCBvcGVyYXRpb25zIGluIHRoZSBmaXJzdCByb3VuZAotICBzaXplX3QgaSA9IHBf
c2NhbGFyICE9IE5VTEwgPyAyNTUgOiAzMTsKLSAgZm9yICg7OykgewotICAgIC8vIGRvdWJsZQot
ICAgIGlmICghc2tpcCkgewotICAgICAgcG9pbnRfZG91YmxlKG5xWzBdLCBucVsxXSwgbnFbMl0s
IG5xWzBdLCBucVsxXSwgbnFbMl0pOwotICAgIH0KLQotICAgIC8vIGFkZCBtdWx0aXBsZXMgb2Yg
dGhlIGdlbmVyYXRvcgotICAgIGlmIChnX3NjYWxhciAhPSBOVUxMICYmIGkgPD0gMzEpIHsKLSAg
ICAgIC8vIGZpcnN0LCBsb29rIDMyIGJpdHMgdXB3YXJkcwotICAgICAgYml0cyA9IGdldF9iaXQo
Z19zY2FsYXIsIGkgKyAyMjQpIDw8IDM7Ci0gICAgICBiaXRzIHw9IGdldF9iaXQoZ19zY2FsYXIs
IGkgKyAxNjApIDw8IDI7Ci0gICAgICBiaXRzIHw9IGdldF9iaXQoZ19zY2FsYXIsIGkgKyA5Nikg
PDwgMTsKLSAgICAgIGJpdHMgfD0gZ2V0X2JpdChnX3NjYWxhciwgaSArIDMyKTsKLSAgICAgIC8v
IHNlbGVjdCB0aGUgcG9pbnQgdG8gYWRkLCBpbiBjb25zdGFudCB0aW1lCi0gICAgICBzZWxlY3Rf
cG9pbnQoYml0cywgMTYsIGdfcHJlX2NvbXBbMV0sIHRtcCk7Ci0KLSAgICAgIGlmICghc2tpcCkg
ewotICAgICAgICBwb2ludF9hZGQobnFbMF0sIG5xWzFdLCBucVsyXSwgbnFbMF0sIG5xWzFdLCBu
cVsyXSwgMSAvKiBtaXhlZCAqLywKLSAgICAgICAgICAgICAgICAgIHRtcFswXSwgdG1wWzFdLCB0
bXBbMl0pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZmVfY29weShucVswXSwgdG1wWzBdKTsK
LSAgICAgICAgZmVfY29weShucVsxXSwgdG1wWzFdKTsKLSAgICAgICAgZmVfY29weShucVsyXSwg
dG1wWzJdKTsKLSAgICAgICAgc2tpcCA9IDA7Ci0gICAgICB9Ci0KLSAgICAgIC8vIHNlY29uZCwg
bG9vayBhdCB0aGUgY3VycmVudCBwb3NpdGlvbgotICAgICAgYml0cyA9IGdldF9iaXQoZ19zY2Fs
YXIsIGkgKyAxOTIpIDw8IDM7Ci0gICAgICBiaXRzIHw9IGdldF9iaXQoZ19zY2FsYXIsIGkgKyAx
MjgpIDw8IDI7Ci0gICAgICBiaXRzIHw9IGdldF9iaXQoZ19zY2FsYXIsIGkgKyA2NCkgPDwgMTsK
LSAgICAgIGJpdHMgfD0gZ2V0X2JpdChnX3NjYWxhciwgaSk7Ci0gICAgICAvLyBzZWxlY3QgdGhl
IHBvaW50IHRvIGFkZCwgaW4gY29uc3RhbnQgdGltZQotICAgICAgc2VsZWN0X3BvaW50KGJpdHMs
IDE2LCBnX3ByZV9jb21wWzBdLCB0bXApOwotICAgICAgcG9pbnRfYWRkKG5xWzBdLCBucVsxXSwg
bnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0sIDEgLyogbWl4ZWQgKi8sIHRtcFswXSwKLSAgICAg
ICAgICAgICAgICB0bXBbMV0sIHRtcFsyXSk7Ci0gICAgfQotCi0gICAgLy8gZG8gb3RoZXIgYWRk
aXRpb25zIGV2ZXJ5IDUgZG91YmxpbmdzCi0gICAgaWYgKHBfc2NhbGFyICE9IE5VTEwgJiYgaSAl
IDUgPT0gMCkgewotICAgICAgYml0cyA9IGdldF9iaXQocF9zY2FsYXIsIGkgKyA0KSA8PCA1Owot
ICAgICAgYml0cyB8PSBnZXRfYml0KHBfc2NhbGFyLCBpICsgMykgPDwgNDsKLSAgICAgIGJpdHMg
fD0gZ2V0X2JpdChwX3NjYWxhciwgaSArIDIpIDw8IDM7Ci0gICAgICBiaXRzIHw9IGdldF9iaXQo
cF9zY2FsYXIsIGkgKyAxKSA8PCAyOwotICAgICAgYml0cyB8PSBnZXRfYml0KHBfc2NhbGFyLCBp
KSA8PCAxOwotICAgICAgYml0cyB8PSBnZXRfYml0KHBfc2NhbGFyLCBpIC0gMSk7Ci0gICAgICBl
Y19HRnBfbmlzdHBfcmVjb2RlX3NjYWxhcl9iaXRzKCZzaWduLCAmZGlnaXQsIGJpdHMpOwotCi0g
ICAgICAvLyBzZWxlY3QgdGhlIHBvaW50IHRvIGFkZCBvciBzdWJ0cmFjdCwgaW4gY29uc3RhbnQg
dGltZS4KLSAgICAgIHNlbGVjdF9wb2ludChkaWdpdCwgMTcsIHBfcHJlX2NvbXAsIHRtcCk7Ci0g
ICAgICBmZV9vcHAoZnRtcCwgdG1wWzFdKTsgIC8vIChYLCAtWSwgWikgaXMgdGhlIG5lZ2F0aXZl
IHBvaW50LgotICAgICAgZmVfY21vdnpueih0bXBbMV0sIHNpZ24sIHRtcFsxXSwgZnRtcCk7Ci0K
LSAgICAgIGlmICghc2tpcCkgewotICAgICAgICBwb2ludF9hZGQobnFbMF0sIG5xWzFdLCBucVsy
XSwgbnFbMF0sIG5xWzFdLCBucVsyXSwgMCAvKiBtaXhlZCAqLywKLSAgICAgICAgICAgICAgICAg
IHRtcFswXSwgdG1wWzFdLCB0bXBbMl0pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZmVfY29w
eShucVswXSwgdG1wWzBdKTsKLSAgICAgICAgZmVfY29weShucVsxXSwgdG1wWzFdKTsKLSAgICAg
ICAgZmVfY29weShucVsyXSwgdG1wWzJdKTsKLSAgICAgICAgc2tpcCA9IDA7Ci0gICAgICB9Ci0g
ICAgfQotCi0gICAgaWYgKGkgPT0gMCkgewotICAgICAgYnJlYWs7Ci0gICAgfQotICAgIC0taTsK
LSAgfQotICBmZV9jb3B5KHhfb3V0LCBucVswXSk7Ci0gIGZlX2NvcHkoeV9vdXQsIG5xWzFdKTsK
LSAgZmVfY29weSh6X291dCwgbnFbMl0pOwotfQotCiAvLyBPUEVOU1NMIEVDX01FVEhPRCBGVU5D
VElPTlMKIAogLy8gVGFrZXMgdGhlIEphY29iaWFuIGNvb3JkaW5hdGVzIChYLCBZLCBaKSBvZiBh
IHBvaW50IGFuZCByZXR1cm5zIChYJywgWScpID0KQEAgLTE2ODYsNDUgKzgwMSwxMTYgQEAgc3Rh
dGljIHZvaWQgZWNfR0ZwX25pc3RwMjU2X2RibChjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1JB
V19QT0lOVCAqciwKICAgZmVfdG9fZ2VuZXJpYygmci0+Wiwgeik7CiB9CiAKLXN0YXRpYyB2b2lk
IGVjX0dGcF9uaXN0cDI1Nl9wb2ludHNfbXVsKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfUkFX
X1BPSU5UICpyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
RUNfU0NBTEFSICpnX3NjYWxhciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEVDX1JBV19QT0lOVCAqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqcF9zY2FsYXIpIHsKK3N0YXRpYyB2b2lkIGVjX0dG
cF9uaXN0cDI1Nl9wb2ludF9tdWwoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19SQVdfUE9JTlQg
KnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1JBV19Q
T0lOVCAqcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRUNf
U0NBTEFSICpzY2FsYXIpIHsKICAgZmUgcF9wcmVfY29tcFsxN11bM107Ci0gIGZlIHhfb3V0LCB5
X291dCwgel9vdXQ7CisgIE9QRU5TU0xfbWVtc2V0KCZwX3ByZV9jb21wLCAwLCBzaXplb2YocF9w
cmVfY29tcCkpOworICAvLyBQcmVjb21wdXRlIG11bHRpcGxlcy4KKyAgZmVfZnJvbV9nZW5lcmlj
KHBfcHJlX2NvbXBbMV1bMF0sICZwLT5YKTsKKyAgZmVfZnJvbV9nZW5lcmljKHBfcHJlX2NvbXBb
MV1bMV0sICZwLT5ZKTsKKyAgZmVfZnJvbV9nZW5lcmljKHBfcHJlX2NvbXBbMV1bMl0sICZwLT5a
KTsKKyAgZm9yIChzaXplX3QgaiA9IDI7IGogPD0gMTY7ICsraikgeworICAgIGlmIChqICYgMSkg
eworICAgICAgcG9pbnRfYWRkKHBfcHJlX2NvbXBbal1bMF0sIHBfcHJlX2NvbXBbal1bMV0sIHBf
cHJlX2NvbXBbal1bMl0sCisgICAgICAgICAgICAgICAgcF9wcmVfY29tcFsxXVswXSwgcF9wcmVf
Y29tcFsxXVsxXSwgcF9wcmVfY29tcFsxXVsyXSwgMCwKKyAgICAgICAgICAgICAgICBwX3ByZV9j
b21wW2ogLSAxXVswXSwgcF9wcmVfY29tcFtqIC0gMV1bMV0sCisgICAgICAgICAgICAgICAgcF9w
cmVfY29tcFtqIC0gMV1bMl0pOworICAgIH0gZWxzZSB7CisgICAgICBwb2ludF9kb3VibGUocF9w
cmVfY29tcFtqXVswXSwgcF9wcmVfY29tcFtqXVsxXSwgcF9wcmVfY29tcFtqXVsyXSwKKyAgICAg
ICAgICAgICAgICAgICBwX3ByZV9jb21wW2ogLyAyXVswXSwgcF9wcmVfY29tcFtqIC8gMl1bMV0s
CisgICAgICAgICAgICAgICAgICAgcF9wcmVfY29tcFtqIC8gMl1bMl0pOworICAgIH0KKyAgfQog
Ci0gIGlmIChwICE9IE5VTEwgJiYgcF9zY2FsYXIgIT0gTlVMTCkgewotICAgIC8vIFdlIHRyZWF0
IE5VTEwgc2NhbGFycyBhcyAwLCBhbmQgTlVMTCBwb2ludHMgYXMgcG9pbnRzIGF0IGluZmluaXR5
LCBpLmUuLAotICAgIC8vIHRoZXkgY29udHJpYnV0ZSBub3RoaW5nIHRvIHRoZSBsaW5lYXIgY29t
YmluYXRpb24uCi0gICAgT1BFTlNTTF9tZW1zZXQoJnBfcHJlX2NvbXAsIDAsIHNpemVvZihwX3By
ZV9jb21wKSk7Ci0gICAgLy8gUHJlY29tcHV0ZSBtdWx0aXBsZXMuCi0gICAgZmVfZnJvbV9nZW5l
cmljKHBfcHJlX2NvbXBbMV1bMF0sICZwLT5YKTsKLSAgICBmZV9mcm9tX2dlbmVyaWMocF9wcmVf
Y29tcFsxXVsxXSwgJnAtPlkpOwotICAgIGZlX2Zyb21fZ2VuZXJpYyhwX3ByZV9jb21wWzFdWzJd
LCAmcC0+Wik7Ci0gICAgZm9yIChzaXplX3QgaiA9IDI7IGogPD0gMTY7ICsraikgewotICAgICAg
aWYgKGogJiAxKSB7Ci0gICAgICAgIHBvaW50X2FkZChwX3ByZV9jb21wW2pdWzBdLCBwX3ByZV9j
b21wW2pdWzFdLAotICAgICAgICAgICAgICAgICAgcF9wcmVfY29tcFtqXVsyXSwgcF9wcmVfY29t
cFsxXVswXSwKLSAgICAgICAgICAgICAgICAgIHBfcHJlX2NvbXBbMV1bMV0sIHBfcHJlX2NvbXBb
MV1bMl0sCi0gICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgcF9wcmVfY29t
cFtqIC0gMV1bMF0sIHBfcHJlX2NvbXBbaiAtIDFdWzFdLAotICAgICAgICAgICAgICAgICAgcF9w
cmVfY29tcFtqIC0gMV1bMl0pOworICAvLyBTZXQgbnEgdG8gdGhlIHBvaW50IGF0IGluZmluaXR5
LgorICBmZSBucVszXSA9IHt7MH0sIHswfSwgezB9fSwgZnRtcCwgdG1wWzNdOworCisgIC8vIExv
b3Agb3ZlciB8c2NhbGFyfCBtc2ItdG8tbHNiLCBpbmNvcnBvcmF0aW5nIHxwX3ByZV9jb21wfCBl
dmVyeSA1dGggcm91bmQuCisgIGludCBza2lwID0gMTsgIC8vIFNhdmUgdHdvIHBvaW50IG9wZXJh
dGlvbnMgaW4gdGhlIGZpcnN0IHJvdW5kLgorICBmb3IgKHNpemVfdCBpID0gMjU1OyBpIDwgMjU2
OyBpLS0pIHsKKyAgICAvLyBkb3VibGUKKyAgICBpZiAoIXNraXApIHsKKyAgICAgIHBvaW50X2Rv
dWJsZShucVswXSwgbnFbMV0sIG5xWzJdLCBucVswXSwgbnFbMV0sIG5xWzJdKTsKKyAgICB9CisK
KyAgICAvLyBkbyBvdGhlciBhZGRpdGlvbnMgZXZlcnkgNSBkb3VibGluZ3MKKyAgICBpZiAoaSAl
IDUgPT0gMCkgeworICAgICAgdWludDY0X3QgYml0cyA9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywg
aSArIDQpIDw8IDU7CisgICAgICBiaXRzIHw9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywgaSArIDMp
IDw8IDQ7CisgICAgICBiaXRzIHw9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywgaSArIDIpIDw8IDM7
CisgICAgICBiaXRzIHw9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywgaSArIDEpIDw8IDI7CisgICAg
ICBiaXRzIHw9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywgaSkgPDwgMTsKKyAgICAgIGJpdHMgfD0g
Z2V0X2JpdChzY2FsYXItPmJ5dGVzLCBpIC0gMSk7CisgICAgICB1aW50OF90IHNpZ24sIGRpZ2l0
OworICAgICAgZWNfR0ZwX25pc3RwX3JlY29kZV9zY2FsYXJfYml0cygmc2lnbiwgJmRpZ2l0LCBi
aXRzKTsKKworICAgICAgLy8gc2VsZWN0IHRoZSBwb2ludCB0byBhZGQgb3Igc3VidHJhY3QsIGlu
IGNvbnN0YW50IHRpbWUuCisgICAgICBzZWxlY3RfcG9pbnQoZGlnaXQsIDE3LCAoY29uc3QgZmUo
KilbM10pcF9wcmVfY29tcCwgdG1wKTsKKyAgICAgIGZlX29wcChmdG1wLCB0bXBbMV0pOyAgLy8g
KFgsIC1ZLCBaKSBpcyB0aGUgbmVnYXRpdmUgcG9pbnQuCisgICAgICBmZV9jbW92em56KHRtcFsx
XSwgc2lnbiwgdG1wWzFdLCBmdG1wKTsKKworICAgICAgaWYgKCFza2lwKSB7CisgICAgICAgIHBv
aW50X2FkZChucVswXSwgbnFbMV0sIG5xWzJdLCBucVswXSwgbnFbMV0sIG5xWzJdLCAwIC8qIG1p
eGVkICovLAorICAgICAgICAgICAgICAgICAgdG1wWzBdLCB0bXBbMV0sIHRtcFsyXSk7CiAgICAg
ICB9IGVsc2UgewotICAgICAgICBwb2ludF9kb3VibGUocF9wcmVfY29tcFtqXVswXSwgcF9wcmVf
Y29tcFtqXVsxXSwKLSAgICAgICAgICAgICAgICAgICAgIHBfcHJlX2NvbXBbal1bMl0sIHBfcHJl
X2NvbXBbaiAvIDJdWzBdLAotICAgICAgICAgICAgICAgICAgICAgcF9wcmVfY29tcFtqIC8gMl1b
MV0sIHBfcHJlX2NvbXBbaiAvIDJdWzJdKTsKKyAgICAgICAgZmVfY29weShucVswXSwgdG1wWzBd
KTsKKyAgICAgICAgZmVfY29weShucVsxXSwgdG1wWzFdKTsKKyAgICAgICAgZmVfY29weShucVsy
XSwgdG1wWzJdKTsKKyAgICAgICAgc2tpcCA9IDA7CiAgICAgICB9CiAgICAgfQogICB9CiAKLSAg
YmF0Y2hfbXVsKHhfb3V0LCB5X291dCwgel9vdXQsCi0gICAgICAgICAgICAocCAhPSBOVUxMICYm
IHBfc2NhbGFyICE9IE5VTEwpID8gcF9zY2FsYXItPmJ5dGVzIDogTlVMTCwKLSAgICAgICAgICAg
IGdfc2NhbGFyICE9IE5VTEwgPyBnX3NjYWxhci0+Ynl0ZXMgOiBOVUxMLAotICAgICAgICAgICAg
KGNvbnN0IGZlICgqKSBbM10pcF9wcmVfY29tcCk7CisgIGZlX3RvX2dlbmVyaWMoJnItPlgsIG5x
WzBdKTsKKyAgZmVfdG9fZ2VuZXJpYygmci0+WSwgbnFbMV0pOworICBmZV90b19nZW5lcmljKCZy
LT5aLCBucVsyXSk7Cit9CisKK3N0YXRpYyB2b2lkIGVjX0dGcF9uaXN0cDI1Nl9wb2ludF9tdWxf
YmFzZShjb25zdCBFQ19HUk9VUCAqZ3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRUNfUkFXX1BPSU5UICpyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEVDX1NDQUxBUiAqc2NhbGFyKSB7CisgIC8vIFNldCBu
cSB0byB0aGUgcG9pbnQgYXQgaW5maW5pdHkuCisgIGZlIG5xWzNdID0ge3swfSwgezB9LCB7MH19
LCB0bXBbM107CiAKLSAgZmVfdG9fZ2VuZXJpYygmci0+WCwgeF9vdXQpOwotICBmZV90b19nZW5l
cmljKCZyLT5ZLCB5X291dCk7Ci0gIGZlX3RvX2dlbmVyaWMoJnItPlosIHpfb3V0KTsKKyAgaW50
IHNraXAgPSAxOyAgLy8gU2F2ZSB0d28gcG9pbnQgb3BlcmF0aW9ucyBpbiB0aGUgZmlyc3Qgcm91
bmQuCisgIGZvciAoc2l6ZV90IGkgPSAzMTsgaSA8IDMyOyBpLS0pIHsKKyAgICBpZiAoIXNraXAp
IHsKKyAgICAgIHBvaW50X2RvdWJsZShucVswXSwgbnFbMV0sIG5xWzJdLCBucVswXSwgbnFbMV0s
IG5xWzJdKTsKKyAgICB9CisKKyAgICAvLyBGaXJzdCwgbG9vayAzMiBiaXRzIHVwd2FyZHMuCisg
ICAgdWludDY0X3QgYml0cyA9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywgaSArIDIyNCkgPDwgMzsK
KyAgICBiaXRzIHw9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywgaSArIDE2MCkgPDwgMjsKKyAgICBi
aXRzIHw9IGdldF9iaXQoc2NhbGFyLT5ieXRlcywgaSArIDk2KSA8PCAxOworICAgIGJpdHMgfD0g
Z2V0X2JpdChzY2FsYXItPmJ5dGVzLCBpICsgMzIpOworICAgIC8vIFNlbGVjdCB0aGUgcG9pbnQg
dG8gYWRkLCBpbiBjb25zdGFudCB0aW1lLgorICAgIHNlbGVjdF9wb2ludChiaXRzLCAxNiwgZ19w
cmVfY29tcFsxXSwgdG1wKTsKKworICAgIGlmICghc2tpcCkgeworICAgICAgcG9pbnRfYWRkKG5x
WzBdLCBucVsxXSwgbnFbMl0sIG5xWzBdLCBucVsxXSwgbnFbMl0sIDEgLyogbWl4ZWQgKi8sIHRt
cFswXSwKKyAgICAgICAgICAgICAgICB0bXBbMV0sIHRtcFsyXSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgIGZlX2NvcHkobnFbMF0sIHRtcFswXSk7CisgICAgICBmZV9jb3B5KG5xWzFdLCB0bXBbMV0p
OworICAgICAgZmVfY29weShucVsyXSwgdG1wWzJdKTsKKyAgICAgIHNraXAgPSAwOworICAgIH0K
KworICAgIC8vIFNlY29uZCwgbG9vayBhdCB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICBiaXRz
ID0gZ2V0X2JpdChzY2FsYXItPmJ5dGVzLCBpICsgMTkyKSA8PCAzOworICAgIGJpdHMgfD0gZ2V0
X2JpdChzY2FsYXItPmJ5dGVzLCBpICsgMTI4KSA8PCAyOworICAgIGJpdHMgfD0gZ2V0X2JpdChz
Y2FsYXItPmJ5dGVzLCBpICsgNjQpIDw8IDE7CisgICAgYml0cyB8PSBnZXRfYml0KHNjYWxhci0+
Ynl0ZXMsIGkpOworICAgIC8vIFNlbGVjdCB0aGUgcG9pbnQgdG8gYWRkLCBpbiBjb25zdGFudCB0
aW1lLgorICAgIHNlbGVjdF9wb2ludChiaXRzLCAxNiwgZ19wcmVfY29tcFswXSwgdG1wKTsKKyAg
ICBwb2ludF9hZGQobnFbMF0sIG5xWzFdLCBucVsyXSwgbnFbMF0sIG5xWzFdLCBucVsyXSwgMSAv
KiBtaXhlZCAqLywgdG1wWzBdLAorICAgICAgICAgICAgICB0bXBbMV0sIHRtcFsyXSk7CisgIH0K
KworICBmZV90b19nZW5lcmljKCZyLT5YLCBucVswXSk7CisgIGZlX3RvX2dlbmVyaWMoJnItPlks
IG5xWzFdKTsKKyAgZmVfdG9fZ2VuZXJpYygmci0+WiwgbnFbMl0pOwogfQogCiBzdGF0aWMgdm9p
ZCBlY19HRnBfbmlzdHAyNTZfcG9pbnRfbXVsX3B1YmxpYyhjb25zdCBFQ19HUk9VUCAqZ3JvdXAs
CkBAIC0xODYyLDcgKzEwNDgsOCBAQCBERUZJTkVfTUVUSE9EX0ZVTkNUSU9OKEVDX01FVEhPRCwg
RUNfR0ZwX25pc3RwMjU2X21ldGhvZCkgewogICAgIGVjX0dGcF9uaXN0cDI1Nl9wb2ludF9nZXRf
YWZmaW5lX2Nvb3JkaW5hdGVzOwogICBvdXQtPmFkZCA9IGVjX0dGcF9uaXN0cDI1Nl9hZGQ7CiAg
IG91dC0+ZGJsID0gZWNfR0ZwX25pc3RwMjU2X2RibDsKLSAgb3V0LT5tdWwgPSBlY19HRnBfbmlz
dHAyNTZfcG9pbnRzX211bDsKKyAgb3V0LT5tdWwgPSBlY19HRnBfbmlzdHAyNTZfcG9pbnRfbXVs
OworICBvdXQtPm11bF9iYXNlID0gZWNfR0ZwX25pc3RwMjU2X3BvaW50X211bF9iYXNlOwogICBv
dXQtPm11bF9wdWJsaWMgPSBlY19HRnBfbmlzdHAyNTZfcG9pbnRfbXVsX3B1YmxpYzsKICAgb3V0
LT5mZWxlbV9tdWwgPSBlY19HRnBfbW9udF9mZWxlbV9tdWw7CiAgIG91dC0+ZmVsZW1fc3FyID0g
ZWNfR0ZwX21vbnRfZmVsZW1fc3FyOwpAQCAtMTg3MSw2ICsxMDU4LDYgQEAgREVGSU5FX01FVEhP
RF9GVU5DVElPTihFQ19NRVRIT0QsIEVDX0dGcF9uaXN0cDI1Nl9tZXRob2QpIHsKICAgb3V0LT5z
Y2FsYXJfaW52X21vbnRnb21lcnkgPSBlY19zaW1wbGVfc2NhbGFyX2ludl9tb250Z29tZXJ5Owog
ICBvdXQtPnNjYWxhcl9pbnZfbW9udGdvbWVyeV92YXJ0aW1lID0gZWNfR0ZwX3NpbXBsZV9tb250
X2ludl9tb2Rfb3JkX3ZhcnRpbWU7CiAgIG91dC0+Y21wX3hfY29vcmRpbmF0ZSA9IGVjX0dGcF9u
aXN0cDI1Nl9jbXBfeF9jb29yZGluYXRlOwotfTsKK30KIAogI3VuZGVmIEJPUklOR1NTTF9OSVNU
UDI1Nl82NEJJVApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2ZpYXQvcDI1Nl8zMi5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2ZpYXQvcDI1Nl8zMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzOGViNWQ5Y2VkNzRj
YzdiMDY3YWYzODY0MmM5MjU3ZDVkYmUwNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRf
cGFydHkvZmlhdC9wMjU2XzMyLmgKQEAgLTAsMCArMSwzMjI2IEBACisvKiBBdXRvZ2VuZXJhdGVk
ICovCisvKiBjdXJ2ZSBkZXNjcmlwdGlvbjogcDI1NiAqLworLyogcmVxdWVzdGVkIG9wZXJhdGlv
bnM6IChhbGwpICovCisvKiBtID0gMHhmZmZmZmZmZjAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIChmcm9tICIyXjI1NiAtIDJeMjI0ICsgMl4x
OTIgKyAyXjk2IC0gMSIpICovCisvKiBtYWNoaW5lX3dvcmRzaXplID0gMzIgKGZyb20gIjMyIikg
Ki8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworLyogTk9URTogSW4gYWRkaXRpb24gdG8gdGhlIGJvdW5kcyBz
cGVjaWZpZWQgYWJvdmUgZWFjaCBmdW5jdGlvbiwgYWxsICovCisvKiAgIGZ1bmN0aW9ucyBzeW50
aGVzaXplZCBmb3IgdGhpcyBNb250Z29tZXJ5IGFyaXRobWV0aWMgcmVxdWlyZSB0aGUgKi8KKy8q
ICAgaW5wdXQgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBwcmltZSBtb2R1bHVzIChtKSwg
YW5kIGFsc28gICAqLworLyogICByZXF1aXJlIHRoZSBpbnB1dCB0byBiZSBpbiB0aGUgdW5pcXVl
IHNhdHVyYXRlZCByZXByZXNlbnRhdGlvbi4gICovCisvKiAgIEFsbCBmdW5jdGlvbnMgYWxzbyBl
bnN1cmUgdGhhdCB0aGVzZSB0d28gcHJvcGVydGllcyBhcmUgdHJ1ZSBvZiAgKi8KKy8qICAgcmV0
dXJuIHZhbHVlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZmlh
dF9wMjU2X3VpbnQxOwordHlwZWRlZiBzaWduZWQgY2hhciBmaWF0X3AyNTZfaW50MTsKKworCisv
KgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcxOiBbMHgwIH4+IDB4MV0KKyAqICAgYXJnMjog
WzB4MCB+PiAweGZmZmZmZmZmXQorICogICBhcmczOiBbMHgwIH4+IDB4ZmZmZmZmZmZdCisgKiBP
dXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbMHgwIH4+IDB4ZmZmZmZmZmZdCisgKiAgIG91dDI6
IFsweDAgfj4gMHgxXQorICovCitzdGF0aWMgdm9pZCBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMih1
aW50MzJfdCogb3V0MSwgZmlhdF9wMjU2X3VpbnQxKiBvdXQyLCBmaWF0X3AyNTZfdWludDEgYXJn
MSwgdWludDMyX3QgYXJnMiwgdWludDMyX3QgYXJnMykgeworICB1aW50NjRfdCB4MSA9ICgoYXJn
MSArICh1aW50NjRfdClhcmcyKSArIGFyZzMpOworICB1aW50MzJfdCB4MiA9ICh1aW50MzJfdCko
eDEgJiBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIGZpYXRfcDI1Nl91aW50MSB4MyA9IChmaWF0
X3AyNTZfdWludDEpKHgxID4+IDMyKTsKKyAgKm91dDEgPSB4MjsKKyAgKm91dDIgPSB4MzsKK30K
KworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFy
ZzI6IFsweDAgfj4gMHhmZmZmZmZmZl0KKyAqICAgYXJnMzogWzB4MCB+PiAweGZmZmZmZmZmXQor
ICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogWzB4MCB+PiAweGZmZmZmZmZmXQorICogICBv
dXQyOiBbMHgwIH4+IDB4MV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2X3N1YmJvcnJvd3hf
dTMyKHVpbnQzMl90KiBvdXQxLCBmaWF0X3AyNTZfdWludDEqIG91dDIsIGZpYXRfcDI1Nl91aW50
MSBhcmcxLCB1aW50MzJfdCBhcmcyLCB1aW50MzJfdCBhcmczKSB7CisgIGludDY0X3QgeDEgPSAo
KGFyZzIgLSAoaW50NjRfdClhcmcxKSAtIGFyZzMpOworICBmaWF0X3AyNTZfaW50MSB4MiA9IChm
aWF0X3AyNTZfaW50MSkoeDEgPj4gMzIpOworICB1aW50MzJfdCB4MyA9ICh1aW50MzJfdCkoeDEg
JiBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgICpvdXQxID0geDM7CisgICpvdXQyID0gKGZpYXRf
cDI1Nl91aW50MSkoMHgwIC0geDIpOworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBh
cmcxOiBbMHgwIH4+IDB4ZmZmZmZmZmZdCisgKiAgIGFyZzI6IFsweDAgfj4gMHhmZmZmZmZmZl0K
KyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFsweDAgfj4gMHhmZmZmZmZmZl0KKyAqICAg
b3V0MjogWzB4MCB+PiAweGZmZmZmZmZmXQorICovCitzdGF0aWMgdm9pZCBmaWF0X3AyNTZfbXVs
eF91MzIodWludDMyX3QqIG91dDEsIHVpbnQzMl90KiBvdXQyLCB1aW50MzJfdCBhcmcxLCB1aW50
MzJfdCBhcmcyKSB7CisgIHVpbnQ2NF90IHgxID0gKCh1aW50NjRfdClhcmcxICogYXJnMik7Cisg
IHVpbnQzMl90IHgyID0gKHVpbnQzMl90KSh4MSAmIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAg
dWludDMyX3QgeDMgPSAodWludDMyX3QpKHgxID4+IDMyKTsKKyAgKm91dDEgPSB4MjsKKyAgKm91
dDIgPSB4MzsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogWzB4MCB+PiAw
eDFdCisgKiAgIGFyZzI6IFsweDAgfj4gMHhmZmZmZmZmZl0KKyAqICAgYXJnMzogWzB4MCB+PiAw
eGZmZmZmZmZmXQorICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogWzB4MCB+PiAweGZmZmZm
ZmZmXQorICovCitzdGF0aWMgdm9pZCBmaWF0X3AyNTZfY21vdnpuel91MzIodWludDMyX3QqIG91
dDEsIGZpYXRfcDI1Nl91aW50MSBhcmcxLCB1aW50MzJfdCBhcmcyLCB1aW50MzJfdCBhcmczKSB7
CisgIGZpYXRfcDI1Nl91aW50MSB4MSA9ICghKCFhcmcxKSk7CisgIHVpbnQzMl90IHgyID0gKChm
aWF0X3AyNTZfaW50MSkoMHgwIC0geDEpICYgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICAvLyBO
b3RlIHRoaXMgbGluZSBoYXMgYmVlbiBwYXRjaGVkIGZyb20gdGhlIHN5bnRoZXNpemVkIGNvZGUg
dG8gYWRkIHZhbHVlCisgIC8vIGJhcnJpZXJzLgorICAvLworICAvLyBDbGFuZyByZWNvZ25pemVz
IHRoaXMgcGF0dGVybiBhcyBhIHNlbGVjdC4gV2hpbGUgaXQgdXN1YWxseSB0cmFuc2Zvcm1zIGl0
CisgIC8vIHRvIGEgY21vdiwgaXQgc29tZXRpbWVzIGZ1cnRoZXIgdHJhbnNmb3JtcyBpdCBpbnRv
IGEgYnJhbmNoLCB3aGljaCB3ZSBkbworICAvLyBub3Qgd2FudC4KKyAgdWludDMyX3QgeDMgPSAo
KHZhbHVlX2JhcnJpZXJfdTMyKHgyKSAmIGFyZzMpIHwgKHZhbHVlX2JhcnJpZXJfdTMyKH54Mikg
JiBhcmcyKSk7CisgICpvdXQxID0geDM7Cit9CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAg
IGFyZzE6IFtbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+
IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBb
MHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZm
ZmZdXQorICogICBhcmcyOiBbWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZm
XSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZm
ZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+
PiAweGZmZmZmZmZmXV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4
ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgw
IH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZd
LCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdXQorICovCitzdGF0aWMg
dm9pZCBmaWF0X3AyNTZfbXVsKHVpbnQzMl90IG91dDFbOF0sIGNvbnN0IHVpbnQzMl90IGFyZzFb
OF0sIGNvbnN0IHVpbnQzMl90IGFyZzJbOF0pIHsKKyAgdWludDMyX3QgeDEgPSAoYXJnMVsxXSk7
CisgIHVpbnQzMl90IHgyID0gKGFyZzFbMl0pOworICB1aW50MzJfdCB4MyA9IChhcmcxWzNdKTsK
KyAgdWludDMyX3QgeDQgPSAoYXJnMVs0XSk7CisgIHVpbnQzMl90IHg1ID0gKGFyZzFbNV0pOwor
ICB1aW50MzJfdCB4NiA9IChhcmcxWzZdKTsKKyAgdWludDMyX3QgeDcgPSAoYXJnMVs3XSk7Cisg
IHVpbnQzMl90IHg4ID0gKGFyZzFbMF0pOworICB1aW50MzJfdCB4OTsKKyAgdWludDMyX3QgeDEw
OworICBmaWF0X3AyNTZfbXVseF91MzIoJng5LCAmeDEwLCB4OCwgKGFyZzJbN10pKTsKKyAgdWlu
dDMyX3QgeDExOworICB1aW50MzJfdCB4MTI7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDExLCAm
eDEyLCB4OCwgKGFyZzJbNl0pKTsKKyAgdWludDMyX3QgeDEzOworICB1aW50MzJfdCB4MTQ7Cisg
IGZpYXRfcDI1Nl9tdWx4X3UzMigmeDEzLCAmeDE0LCB4OCwgKGFyZzJbNV0pKTsKKyAgdWludDMy
X3QgeDE1OworICB1aW50MzJfdCB4MTY7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDE1LCAmeDE2
LCB4OCwgKGFyZzJbNF0pKTsKKyAgdWludDMyX3QgeDE3OworICB1aW50MzJfdCB4MTg7CisgIGZp
YXRfcDI1Nl9tdWx4X3UzMigmeDE3LCAmeDE4LCB4OCwgKGFyZzJbM10pKTsKKyAgdWludDMyX3Qg
eDE5OworICB1aW50MzJfdCB4MjA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDE5LCAmeDIwLCB4
OCwgKGFyZzJbMl0pKTsKKyAgdWludDMyX3QgeDIxOworICB1aW50MzJfdCB4MjI7CisgIGZpYXRf
cDI1Nl9tdWx4X3UzMigmeDIxLCAmeDIyLCB4OCwgKGFyZzJbMV0pKTsKKyAgdWludDMyX3QgeDIz
OworICB1aW50MzJfdCB4MjQ7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDIzLCAmeDI0LCB4OCwg
KGFyZzJbMF0pKTsKKyAgdWludDMyX3QgeDI1OworICBmaWF0X3AyNTZfdWludDEgeDI2OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI1LCAmeDI2LCAweDAsIHgyMSwgeDI0KTsKKyAgdWlu
dDMyX3QgeDI3OworICBmaWF0X3AyNTZfdWludDEgeDI4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDI3LCAmeDI4LCB4MjYsIHgxOSwgeDIyKTsKKyAgdWludDMyX3QgeDI5OworICBmaWF0
X3AyNTZfdWludDEgeDMwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI5LCAmeDMwLCB4
MjgsIHgxNywgeDIwKTsKKyAgdWludDMyX3QgeDMxOworICBmaWF0X3AyNTZfdWludDEgeDMyOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMxLCAmeDMyLCB4MzAsIHgxNSwgeDE4KTsKKyAg
dWludDMyX3QgeDMzOworICBmaWF0X3AyNTZfdWludDEgeDM0OworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDMzLCAmeDM0LCB4MzIsIHgxMywgeDE2KTsKKyAgdWludDMyX3QgeDM1OworICBm
aWF0X3AyNTZfdWludDEgeDM2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM1LCAmeDM2
LCB4MzQsIHgxMSwgeDE0KTsKKyAgdWludDMyX3QgeDM3OworICBmaWF0X3AyNTZfdWludDEgeDM4
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM3LCAmeDM4LCB4MzYsIHg5LCB4MTIpOwor
ICB1aW50MzJfdCB4Mzk7CisgIGZpYXRfcDI1Nl91aW50MSB4NDA7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MzksICZ4NDAsIHgzOCwgMHgwLCB4MTApOworICB1aW50MzJfdCB4NDE7Cisg
IHVpbnQzMl90IHg0MjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDEsICZ4NDIsIHgyMywgVUlO
VDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDM7CisgIHVpbnQzMl90IHg0NDsKKyAg
ZmlhdF9wMjU2X211bHhfdTMyKCZ4NDMsICZ4NDQsIHgyMywgVUlOVDMyX0MoMHhmZmZmZmZmZikp
OworICB1aW50MzJfdCB4NDU7CisgIHVpbnQzMl90IHg0NjsKKyAgZmlhdF9wMjU2X211bHhfdTMy
KCZ4NDUsICZ4NDYsIHgyMywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDc7
CisgIHVpbnQzMl90IHg0ODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDcsICZ4NDgsIHgyMywg
VUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDk7CisgIGZpYXRfcDI1Nl91aW50
MSB4NTA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDksICZ4NTAsIDB4MCwgeDQ1LCB4
NDgpOworICB1aW50MzJfdCB4NTE7CisgIGZpYXRfcDI1Nl91aW50MSB4NTI7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4NTEsICZ4NTIsIHg1MCwgeDQzLCB4NDYpOworICB1aW50MzJfdCB4
NTM7CisgIGZpYXRfcDI1Nl91aW50MSB4NTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
NTMsICZ4NTQsIHg1MiwgMHgwLCB4NDQpOworICB1aW50MzJfdCB4NTU7CisgIGZpYXRfcDI1Nl91
aW50MSB4NTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTUsICZ4NTYsIDB4MCwgeDQ3
LCB4MjMpOworICB1aW50MzJfdCB4NTc7CisgIGZpYXRfcDI1Nl91aW50MSB4NTg7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTcsICZ4NTgsIHg1NiwgeDQ5LCB4MjUpOworICB1aW50MzJf
dCB4NTk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4NTksICZ4NjAsIHg1OCwgeDUxLCB4MjcpOworICB1aW50MzJfdCB4NjE7CisgIGZpYXRfcDI1
Nl91aW50MSB4NjI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjEsICZ4NjIsIHg2MCwg
eDUzLCB4MjkpOworICB1aW50MzJfdCB4NjM7CisgIGZpYXRfcDI1Nl91aW50MSB4NjQ7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjMsICZ4NjQsIHg2MiwgMHgwLCB4MzEpOworICB1aW50
MzJfdCB4NjU7CisgIGZpYXRfcDI1Nl91aW50MSB4NjY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NjUsICZ4NjYsIHg2NCwgMHgwLCB4MzMpOworICB1aW50MzJfdCB4Njc7CisgIGZpYXRf
cDI1Nl91aW50MSB4Njg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjcsICZ4NjgsIHg2
NiwgeDIzLCB4MzUpOworICB1aW50MzJfdCB4Njk7CisgIGZpYXRfcDI1Nl91aW50MSB4NzA7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjksICZ4NzAsIHg2OCwgeDQxLCB4MzcpOworICB1
aW50MzJfdCB4NzE7CisgIGZpYXRfcDI1Nl91aW50MSB4NzI7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4NzEsICZ4NzIsIHg3MCwgeDQyLCB4MzkpOworICB1aW50MzJfdCB4NzM7CisgIGZp
YXRfcDI1Nl91aW50MSB4NzQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NzMsICZ4NzQs
IHg3MiwgMHgwLCAweDApOworICB1aW50MzJfdCB4NzU7CisgIHVpbnQzMl90IHg3NjsKKyAgZmlh
dF9wMjU2X211bHhfdTMyKCZ4NzUsICZ4NzYsIHgxLCAoYXJnMls3XSkpOworICB1aW50MzJfdCB4
Nzc7CisgIHVpbnQzMl90IHg3ODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NzcsICZ4NzgsIHgx
LCAoYXJnMls2XSkpOworICB1aW50MzJfdCB4Nzk7CisgIHVpbnQzMl90IHg4MDsKKyAgZmlhdF9w
MjU2X211bHhfdTMyKCZ4NzksICZ4ODAsIHgxLCAoYXJnMls1XSkpOworICB1aW50MzJfdCB4ODE7
CisgIHVpbnQzMl90IHg4MjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4ODEsICZ4ODIsIHgxLCAo
YXJnMls0XSkpOworICB1aW50MzJfdCB4ODM7CisgIHVpbnQzMl90IHg4NDsKKyAgZmlhdF9wMjU2
X211bHhfdTMyKCZ4ODMsICZ4ODQsIHgxLCAoYXJnMlszXSkpOworICB1aW50MzJfdCB4ODU7Cisg
IHVpbnQzMl90IHg4NjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4ODUsICZ4ODYsIHgxLCAoYXJn
MlsyXSkpOworICB1aW50MzJfdCB4ODc7CisgIHVpbnQzMl90IHg4ODsKKyAgZmlhdF9wMjU2X211
bHhfdTMyKCZ4ODcsICZ4ODgsIHgxLCAoYXJnMlsxXSkpOworICB1aW50MzJfdCB4ODk7CisgIHVp
bnQzMl90IHg5MDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4ODksICZ4OTAsIHgxLCAoYXJnMlsw
XSkpOworICB1aW50MzJfdCB4OTE7CisgIGZpYXRfcDI1Nl91aW50MSB4OTI7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4OTEsICZ4OTIsIDB4MCwgeDg3LCB4OTApOworICB1aW50MzJfdCB4
OTM7CisgIGZpYXRfcDI1Nl91aW50MSB4OTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
OTMsICZ4OTQsIHg5MiwgeDg1LCB4ODgpOworICB1aW50MzJfdCB4OTU7CisgIGZpYXRfcDI1Nl91
aW50MSB4OTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4OTUsICZ4OTYsIHg5NCwgeDgz
LCB4ODYpOworICB1aW50MzJfdCB4OTc7CisgIGZpYXRfcDI1Nl91aW50MSB4OTg7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4OTcsICZ4OTgsIHg5NiwgeDgxLCB4ODQpOworICB1aW50MzJf
dCB4OTk7CisgIGZpYXRfcDI1Nl91aW50MSB4MTAwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDk5LCAmeDEwMCwgeDk4LCB4NzksIHg4Mik7CisgIHVpbnQzMl90IHgxMDE7CisgIGZpYXRf
cDI1Nl91aW50MSB4MTAyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEwMSwgJngxMDIs
IHgxMDAsIHg3NywgeDgwKTsKKyAgdWludDMyX3QgeDEwMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgx
MDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTAzLCAmeDEwNCwgeDEwMiwgeDc1LCB4
NzgpOworICB1aW50MzJfdCB4MTA1OworICBmaWF0X3AyNTZfdWludDEgeDEwNjsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJngxMDUsICZ4MTA2LCB4MTA0LCAweDAsIHg3Nik7CisgIHVpbnQz
Ml90IHgxMDc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTA4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDEwNywgJngxMDgsIDB4MCwgeDg5LCB4NTcpOworICB1aW50MzJfdCB4MTA5OworICBm
aWF0X3AyNTZfdWludDEgeDExMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMDksICZ4
MTEwLCB4MTA4LCB4OTEsIHg1OSk7CisgIHVpbnQzMl90IHgxMTE7CisgIGZpYXRfcDI1Nl91aW50
MSB4MTEyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDExMSwgJngxMTIsIHgxMTAsIHg5
MywgeDYxKTsKKyAgdWludDMyX3QgeDExMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMTQ7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTEzLCAmeDExNCwgeDExMiwgeDk1LCB4NjMpOworICB1
aW50MzJfdCB4MTE1OworICBmaWF0X3AyNTZfdWludDEgeDExNjsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJngxMTUsICZ4MTE2LCB4MTE0LCB4OTcsIHg2NSk7CisgIHVpbnQzMl90IHgxMTc7
CisgIGZpYXRfcDI1Nl91aW50MSB4MTE4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEx
NywgJngxMTgsIHgxMTYsIHg5OSwgeDY3KTsKKyAgdWludDMyX3QgeDExOTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgxMjA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTE5LCAmeDEyMCwgeDEx
OCwgeDEwMSwgeDY5KTsKKyAgdWludDMyX3QgeDEyMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMjI7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTIxLCAmeDEyMiwgeDEyMCwgeDEwMywgeDcx
KTsKKyAgdWludDMyX3QgeDEyMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMjQ7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4MTIzLCAmeDEyNCwgeDEyMiwgeDEwNSwgKGZpYXRfcDI1Nl91aW50
MSl4NzMpOworICB1aW50MzJfdCB4MTI1OworICB1aW50MzJfdCB4MTI2OworICBmaWF0X3AyNTZf
bXVseF91MzIoJngxMjUsICZ4MTI2LCB4MTA3LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVp
bnQzMl90IHgxMjc7CisgIHVpbnQzMl90IHgxMjg7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDEy
NywgJngxMjgsIHgxMDcsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDEyOTsK
KyAgdWludDMyX3QgeDEzMDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MTI5LCAmeDEzMCwgeDEw
NywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MTMxOworICB1aW50MzJfdCB4
MTMyOworICBmaWF0X3AyNTZfbXVseF91MzIoJngxMzEsICZ4MTMyLCB4MTA3LCBVSU5UMzJfQygw
eGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgxMzM7CisgIGZpYXRfcDI1Nl91aW50MSB4MTM0Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEzMywgJngxMzQsIDB4MCwgeDEyOSwgeDEzMik7
CisgIHVpbnQzMl90IHgxMzU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTM2OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDEzNSwgJngxMzYsIHgxMzQsIHgxMjcsIHgxMzApOworICB1aW50MzJf
dCB4MTM3OworICBmaWF0X3AyNTZfdWludDEgeDEzODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJngxMzcsICZ4MTM4LCB4MTM2LCAweDAsIHgxMjgpOworICB1aW50MzJfdCB4MTM5OworICBm
aWF0X3AyNTZfdWludDEgeDE0MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMzksICZ4
MTQwLCAweDAsIHgxMzEsIHgxMDcpOworICB1aW50MzJfdCB4MTQxOworICBmaWF0X3AyNTZfdWlu
dDEgeDE0MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNDEsICZ4MTQyLCB4MTQwLCB4
MTMzLCB4MTA5KTsKKyAgdWludDMyX3QgeDE0MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNDQ7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTQzLCAmeDE0NCwgeDE0MiwgeDEzNSwgeDExMSk7
CisgIHVpbnQzMl90IHgxNDU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTQ2OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDE0NSwgJngxNDYsIHgxNDQsIHgxMzcsIHgxMTMpOworICB1aW50MzJf
dCB4MTQ3OworICBmaWF0X3AyNTZfdWludDEgeDE0ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJngxNDcsICZ4MTQ4LCB4MTQ2LCAweDAsIHgxMTUpOworICB1aW50MzJfdCB4MTQ5OworICBm
aWF0X3AyNTZfdWludDEgeDE1MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNDksICZ4
MTUwLCB4MTQ4LCAweDAsIHgxMTcpOworICB1aW50MzJfdCB4MTUxOworICBmaWF0X3AyNTZfdWlu
dDEgeDE1MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNTEsICZ4MTUyLCB4MTUwLCB4
MTA3LCB4MTE5KTsKKyAgdWludDMyX3QgeDE1MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNTQ7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTUzLCAmeDE1NCwgeDE1MiwgeDEyNSwgeDEyMSk7
CisgIHVpbnQzMl90IHgxNTU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTU2OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDE1NSwgJngxNTYsIHgxNTQsIHgxMjYsIHgxMjMpOworICB1aW50MzJf
dCB4MTU3OworICBmaWF0X3AyNTZfdWludDEgeDE1ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJngxNTcsICZ4MTU4LCB4MTU2LCAweDAsIHgxMjQpOworICB1aW50MzJfdCB4MTU5OworICB1
aW50MzJfdCB4MTYwOworICBmaWF0X3AyNTZfbXVseF91MzIoJngxNTksICZ4MTYwLCB4MiwgKGFy
ZzJbN10pKTsKKyAgdWludDMyX3QgeDE2MTsKKyAgdWludDMyX3QgeDE2MjsKKyAgZmlhdF9wMjU2
X211bHhfdTMyKCZ4MTYxLCAmeDE2MiwgeDIsIChhcmcyWzZdKSk7CisgIHVpbnQzMl90IHgxNjM7
CisgIHVpbnQzMl90IHgxNjQ7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDE2MywgJngxNjQsIHgy
LCAoYXJnMls1XSkpOworICB1aW50MzJfdCB4MTY1OworICB1aW50MzJfdCB4MTY2OworICBmaWF0
X3AyNTZfbXVseF91MzIoJngxNjUsICZ4MTY2LCB4MiwgKGFyZzJbNF0pKTsKKyAgdWludDMyX3Qg
eDE2NzsKKyAgdWludDMyX3QgeDE2ODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MTY3LCAmeDE2
OCwgeDIsIChhcmcyWzNdKSk7CisgIHVpbnQzMl90IHgxNjk7CisgIHVpbnQzMl90IHgxNzA7Cisg
IGZpYXRfcDI1Nl9tdWx4X3UzMigmeDE2OSwgJngxNzAsIHgyLCAoYXJnMlsyXSkpOworICB1aW50
MzJfdCB4MTcxOworICB1aW50MzJfdCB4MTcyOworICBmaWF0X3AyNTZfbXVseF91MzIoJngxNzEs
ICZ4MTcyLCB4MiwgKGFyZzJbMV0pKTsKKyAgdWludDMyX3QgeDE3MzsKKyAgdWludDMyX3QgeDE3
NDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MTczLCAmeDE3NCwgeDIsIChhcmcyWzBdKSk7Cisg
IHVpbnQzMl90IHgxNzU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTc2OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDE3NSwgJngxNzYsIDB4MCwgeDE3MSwgeDE3NCk7CisgIHVpbnQzMl90IHgx
Nzc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTc4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDE3NywgJngxNzgsIHgxNzYsIHgxNjksIHgxNzIpOworICB1aW50MzJfdCB4MTc5OworICBmaWF0
X3AyNTZfdWludDEgeDE4MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNzksICZ4MTgw
LCB4MTc4LCB4MTY3LCB4MTcwKTsKKyAgdWludDMyX3QgeDE4MTsKKyAgZmlhdF9wMjU2X3VpbnQx
IHgxODI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTgxLCAmeDE4MiwgeDE4MCwgeDE2
NSwgeDE2OCk7CisgIHVpbnQzMl90IHgxODM7CisgIGZpYXRfcDI1Nl91aW50MSB4MTg0OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE4MywgJngxODQsIHgxODIsIHgxNjMsIHgxNjYpOwor
ICB1aW50MzJfdCB4MTg1OworICBmaWF0X3AyNTZfdWludDEgeDE4NjsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJngxODUsICZ4MTg2LCB4MTg0LCB4MTYxLCB4MTY0KTsKKyAgdWludDMyX3Qg
eDE4NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxODg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4MTg3LCAmeDE4OCwgeDE4NiwgeDE1OSwgeDE2Mik7CisgIHVpbnQzMl90IHgxODk7CisgIGZp
YXRfcDI1Nl91aW50MSB4MTkwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE4OSwgJngx
OTAsIHgxODgsIDB4MCwgeDE2MCk7CisgIHVpbnQzMl90IHgxOTE7CisgIGZpYXRfcDI1Nl91aW50
MSB4MTkyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE5MSwgJngxOTIsIDB4MCwgeDE3
MywgeDE0MSk7CisgIHVpbnQzMl90IHgxOTM7CisgIGZpYXRfcDI1Nl91aW50MSB4MTk0OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE5MywgJngxOTQsIHgxOTIsIHgxNzUsIHgxNDMpOwor
ICB1aW50MzJfdCB4MTk1OworICBmaWF0X3AyNTZfdWludDEgeDE5NjsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJngxOTUsICZ4MTk2LCB4MTk0LCB4MTc3LCB4MTQ1KTsKKyAgdWludDMyX3Qg
eDE5NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxOTg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4MTk3LCAmeDE5OCwgeDE5NiwgeDE3OSwgeDE0Nyk7CisgIHVpbnQzMl90IHgxOTk7CisgIGZp
YXRfcDI1Nl91aW50MSB4MjAwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE5OSwgJngy
MDAsIHgxOTgsIHgxODEsIHgxNDkpOworICB1aW50MzJfdCB4MjAxOworICBmaWF0X3AyNTZfdWlu
dDEgeDIwMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMDEsICZ4MjAyLCB4MjAwLCB4
MTgzLCB4MTUxKTsKKyAgdWludDMyX3QgeDIwMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMDQ7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjAzLCAmeDIwNCwgeDIwMiwgeDE4NSwgeDE1Myk7
CisgIHVpbnQzMl90IHgyMDU7CisgIGZpYXRfcDI1Nl91aW50MSB4MjA2OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDIwNSwgJngyMDYsIHgyMDQsIHgxODcsIHgxNTUpOworICB1aW50MzJf
dCB4MjA3OworICBmaWF0X3AyNTZfdWludDEgeDIwODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJngyMDcsICZ4MjA4LCB4MjA2LCB4MTg5LCB4MTU3KTsKKyAgdWludDMyX3QgeDIwOTsKKyAg
dWludDMyX3QgeDIxMDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MjA5LCAmeDIxMCwgeDE5MSwg
VUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MjExOworICB1aW50MzJfdCB4MjEy
OworICBmaWF0X3AyNTZfbXVseF91MzIoJngyMTEsICZ4MjEyLCB4MTkxLCBVSU5UMzJfQygweGZm
ZmZmZmZmKSk7CisgIHVpbnQzMl90IHgyMTM7CisgIHVpbnQzMl90IHgyMTQ7CisgIGZpYXRfcDI1
Nl9tdWx4X3UzMigmeDIxMywgJngyMTQsIHgxOTEsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAg
dWludDMyX3QgeDIxNTsKKyAgdWludDMyX3QgeDIxNjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4
MjE1LCAmeDIxNiwgeDE5MSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MjE3
OworICBmaWF0X3AyNTZfdWludDEgeDIxODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngy
MTcsICZ4MjE4LCAweDAsIHgyMTMsIHgyMTYpOworICB1aW50MzJfdCB4MjE5OworICBmaWF0X3Ay
NTZfdWludDEgeDIyMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMTksICZ4MjIwLCB4
MjE4LCB4MjExLCB4MjE0KTsKKyAgdWludDMyX3QgeDIyMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgy
MjI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjIxLCAmeDIyMiwgeDIyMCwgMHgwLCB4
MjEyKTsKKyAgdWludDMyX3QgeDIyMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMjQ7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjIzLCAmeDIyNCwgMHgwLCB4MjE1LCB4MTkxKTsKKyAgdWlu
dDMyX3QgeDIyNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMjY7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4MjI1LCAmeDIyNiwgeDIyNCwgeDIxNywgeDE5Myk7CisgIHVpbnQzMl90IHgyMjc7
CisgIGZpYXRfcDI1Nl91aW50MSB4MjI4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIy
NywgJngyMjgsIHgyMjYsIHgyMTksIHgxOTUpOworICB1aW50MzJfdCB4MjI5OworICBmaWF0X3Ay
NTZfdWludDEgeDIzMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMjksICZ4MjMwLCB4
MjI4LCB4MjIxLCB4MTk3KTsKKyAgdWludDMyX3QgeDIzMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgy
MzI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjMxLCAmeDIzMiwgeDIzMCwgMHgwLCB4
MTk5KTsKKyAgdWludDMyX3QgeDIzMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMzQ7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjMzLCAmeDIzNCwgeDIzMiwgMHgwLCB4MjAxKTsKKyAgdWlu
dDMyX3QgeDIzNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMzY7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4MjM1LCAmeDIzNiwgeDIzNCwgeDE5MSwgeDIwMyk7CisgIHVpbnQzMl90IHgyMzc7
CisgIGZpYXRfcDI1Nl91aW50MSB4MjM4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIz
NywgJngyMzgsIHgyMzYsIHgyMDksIHgyMDUpOworICB1aW50MzJfdCB4MjM5OworICBmaWF0X3Ay
NTZfdWludDEgeDI0MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMzksICZ4MjQwLCB4
MjM4LCB4MjEwLCB4MjA3KTsKKyAgdWludDMyX3QgeDI0MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgy
NDI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjQxLCAmeDI0MiwgeDI0MCwgMHgwLCB4
MjA4KTsKKyAgdWludDMyX3QgeDI0MzsKKyAgdWludDMyX3QgeDI0NDsKKyAgZmlhdF9wMjU2X211
bHhfdTMyKCZ4MjQzLCAmeDI0NCwgeDMsIChhcmcyWzddKSk7CisgIHVpbnQzMl90IHgyNDU7Cisg
IHVpbnQzMl90IHgyNDY7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDI0NSwgJngyNDYsIHgzLCAo
YXJnMls2XSkpOworICB1aW50MzJfdCB4MjQ3OworICB1aW50MzJfdCB4MjQ4OworICBmaWF0X3Ay
NTZfbXVseF91MzIoJngyNDcsICZ4MjQ4LCB4MywgKGFyZzJbNV0pKTsKKyAgdWludDMyX3QgeDI0
OTsKKyAgdWludDMyX3QgeDI1MDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MjQ5LCAmeDI1MCwg
eDMsIChhcmcyWzRdKSk7CisgIHVpbnQzMl90IHgyNTE7CisgIHVpbnQzMl90IHgyNTI7CisgIGZp
YXRfcDI1Nl9tdWx4X3UzMigmeDI1MSwgJngyNTIsIHgzLCAoYXJnMlszXSkpOworICB1aW50MzJf
dCB4MjUzOworICB1aW50MzJfdCB4MjU0OworICBmaWF0X3AyNTZfbXVseF91MzIoJngyNTMsICZ4
MjU0LCB4MywgKGFyZzJbMl0pKTsKKyAgdWludDMyX3QgeDI1NTsKKyAgdWludDMyX3QgeDI1NjsK
KyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MjU1LCAmeDI1NiwgeDMsIChhcmcyWzFdKSk7CisgIHVp
bnQzMl90IHgyNTc7CisgIHVpbnQzMl90IHgyNTg7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDI1
NywgJngyNTgsIHgzLCAoYXJnMlswXSkpOworICB1aW50MzJfdCB4MjU5OworICBmaWF0X3AyNTZf
dWludDEgeDI2MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNTksICZ4MjYwLCAweDAs
IHgyNTUsIHgyNTgpOworICB1aW50MzJfdCB4MjYxOworICBmaWF0X3AyNTZfdWludDEgeDI2MjsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNjEsICZ4MjYyLCB4MjYwLCB4MjUzLCB4MjU2
KTsKKyAgdWludDMyX3QgeDI2MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNjQ7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4MjYzLCAmeDI2NCwgeDI2MiwgeDI1MSwgeDI1NCk7CisgIHVpbnQz
Ml90IHgyNjU7CisgIGZpYXRfcDI1Nl91aW50MSB4MjY2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDI2NSwgJngyNjYsIHgyNjQsIHgyNDksIHgyNTIpOworICB1aW50MzJfdCB4MjY3Owor
ICBmaWF0X3AyNTZfdWludDEgeDI2ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNjcs
ICZ4MjY4LCB4MjY2LCB4MjQ3LCB4MjUwKTsKKyAgdWludDMyX3QgeDI2OTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgyNzA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjY5LCAmeDI3MCwgeDI2
OCwgeDI0NSwgeDI0OCk7CisgIHVpbnQzMl90IHgyNzE7CisgIGZpYXRfcDI1Nl91aW50MSB4Mjcy
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI3MSwgJngyNzIsIHgyNzAsIHgyNDMsIHgy
NDYpOworICB1aW50MzJfdCB4MjczOworICBmaWF0X3AyNTZfdWludDEgeDI3NDsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJngyNzMsICZ4Mjc0LCB4MjcyLCAweDAsIHgyNDQpOworICB1aW50
MzJfdCB4Mjc1OworICBmaWF0X3AyNTZfdWludDEgeDI3NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngyNzUsICZ4Mjc2LCAweDAsIHgyNTcsIHgyMjUpOworICB1aW50MzJfdCB4Mjc3Owor
ICBmaWF0X3AyNTZfdWludDEgeDI3ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNzcs
ICZ4Mjc4LCB4Mjc2LCB4MjU5LCB4MjI3KTsKKyAgdWludDMyX3QgeDI3OTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgyODA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4Mjc5LCAmeDI4MCwgeDI3
OCwgeDI2MSwgeDIyOSk7CisgIHVpbnQzMl90IHgyODE7CisgIGZpYXRfcDI1Nl91aW50MSB4Mjgy
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI4MSwgJngyODIsIHgyODAsIHgyNjMsIHgy
MzEpOworICB1aW50MzJfdCB4MjgzOworICBmaWF0X3AyNTZfdWludDEgeDI4NDsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJngyODMsICZ4Mjg0LCB4MjgyLCB4MjY1LCB4MjMzKTsKKyAgdWlu
dDMyX3QgeDI4NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyODY7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4Mjg1LCAmeDI4NiwgeDI4NCwgeDI2NywgeDIzNSk7CisgIHVpbnQzMl90IHgyODc7
CisgIGZpYXRfcDI1Nl91aW50MSB4Mjg4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI4
NywgJngyODgsIHgyODYsIHgyNjksIHgyMzcpOworICB1aW50MzJfdCB4Mjg5OworICBmaWF0X3Ay
NTZfdWludDEgeDI5MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyODksICZ4MjkwLCB4
Mjg4LCB4MjcxLCB4MjM5KTsKKyAgdWludDMyX3QgeDI5MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgy
OTI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjkxLCAmeDI5MiwgeDI5MCwgeDI3Mywg
eDI0MSk7CisgIHVpbnQzMl90IHgyOTM7CisgIHVpbnQzMl90IHgyOTQ7CisgIGZpYXRfcDI1Nl9t
dWx4X3UzMigmeDI5MywgJngyOTQsIHgyNzUsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWlu
dDMyX3QgeDI5NTsKKyAgdWludDMyX3QgeDI5NjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4Mjk1
LCAmeDI5NiwgeDI3NSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4Mjk3Owor
ICB1aW50MzJfdCB4Mjk4OworICBmaWF0X3AyNTZfbXVseF91MzIoJngyOTcsICZ4Mjk4LCB4Mjc1
LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgyOTk7CisgIHVpbnQzMl90IHgz
MDA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDI5OSwgJngzMDAsIHgyNzUsIFVJTlQzMl9DKDB4
ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDMwMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMDI7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzAxLCAmeDMwMiwgMHgwLCB4Mjk3LCB4MzAwKTsK
KyAgdWludDMyX3QgeDMwMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMDQ7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4MzAzLCAmeDMwNCwgeDMwMiwgeDI5NSwgeDI5OCk7CisgIHVpbnQzMl90
IHgzMDU7CisgIGZpYXRfcDI1Nl91aW50MSB4MzA2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDMwNSwgJngzMDYsIHgzMDQsIDB4MCwgeDI5Nik7CisgIHVpbnQzMl90IHgzMDc7CisgIGZp
YXRfcDI1Nl91aW50MSB4MzA4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMwNywgJngz
MDgsIDB4MCwgeDI5OSwgeDI3NSk7CisgIHVpbnQzMl90IHgzMDk7CisgIGZpYXRfcDI1Nl91aW50
MSB4MzEwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMwOSwgJngzMTAsIHgzMDgsIHgz
MDEsIHgyNzcpOworICB1aW50MzJfdCB4MzExOworICBmaWF0X3AyNTZfdWludDEgeDMxMjsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMTEsICZ4MzEyLCB4MzEwLCB4MzAzLCB4Mjc5KTsK
KyAgdWludDMyX3QgeDMxMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMTQ7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4MzEzLCAmeDMxNCwgeDMxMiwgeDMwNSwgeDI4MSk7CisgIHVpbnQzMl90
IHgzMTU7CisgIGZpYXRfcDI1Nl91aW50MSB4MzE2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDMxNSwgJngzMTYsIHgzMTQsIDB4MCwgeDI4Myk7CisgIHVpbnQzMl90IHgzMTc7CisgIGZp
YXRfcDI1Nl91aW50MSB4MzE4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMxNywgJngz
MTgsIHgzMTYsIDB4MCwgeDI4NSk7CisgIHVpbnQzMl90IHgzMTk7CisgIGZpYXRfcDI1Nl91aW50
MSB4MzIwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMxOSwgJngzMjAsIHgzMTgsIHgy
NzUsIHgyODcpOworICB1aW50MzJfdCB4MzIxOworICBmaWF0X3AyNTZfdWludDEgeDMyMjsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMjEsICZ4MzIyLCB4MzIwLCB4MjkzLCB4Mjg5KTsK
KyAgdWludDMyX3QgeDMyMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMjQ7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4MzIzLCAmeDMyNCwgeDMyMiwgeDI5NCwgeDI5MSk7CisgIHVpbnQzMl90
IHgzMjU7CisgIGZpYXRfcDI1Nl91aW50MSB4MzI2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDMyNSwgJngzMjYsIHgzMjQsIDB4MCwgeDI5Mik7CisgIHVpbnQzMl90IHgzMjc7CisgIHVp
bnQzMl90IHgzMjg7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDMyNywgJngzMjgsIHg0LCAoYXJn
Mls3XSkpOworICB1aW50MzJfdCB4MzI5OworICB1aW50MzJfdCB4MzMwOworICBmaWF0X3AyNTZf
bXVseF91MzIoJngzMjksICZ4MzMwLCB4NCwgKGFyZzJbNl0pKTsKKyAgdWludDMyX3QgeDMzMTsK
KyAgdWludDMyX3QgeDMzMjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MzMxLCAmeDMzMiwgeDQs
IChhcmcyWzVdKSk7CisgIHVpbnQzMl90IHgzMzM7CisgIHVpbnQzMl90IHgzMzQ7CisgIGZpYXRf
cDI1Nl9tdWx4X3UzMigmeDMzMywgJngzMzQsIHg0LCAoYXJnMls0XSkpOworICB1aW50MzJfdCB4
MzM1OworICB1aW50MzJfdCB4MzM2OworICBmaWF0X3AyNTZfbXVseF91MzIoJngzMzUsICZ4MzM2
LCB4NCwgKGFyZzJbM10pKTsKKyAgdWludDMyX3QgeDMzNzsKKyAgdWludDMyX3QgeDMzODsKKyAg
ZmlhdF9wMjU2X211bHhfdTMyKCZ4MzM3LCAmeDMzOCwgeDQsIChhcmcyWzJdKSk7CisgIHVpbnQz
Ml90IHgzMzk7CisgIHVpbnQzMl90IHgzNDA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDMzOSwg
JngzNDAsIHg0LCAoYXJnMlsxXSkpOworICB1aW50MzJfdCB4MzQxOworICB1aW50MzJfdCB4MzQy
OworICBmaWF0X3AyNTZfbXVseF91MzIoJngzNDEsICZ4MzQyLCB4NCwgKGFyZzJbMF0pKTsKKyAg
dWludDMyX3QgeDM0MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNDQ7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MzQzLCAmeDM0NCwgMHgwLCB4MzM5LCB4MzQyKTsKKyAgdWludDMyX3QgeDM0
NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNDY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MzQ1LCAmeDM0NiwgeDM0NCwgeDMzNywgeDM0MCk7CisgIHVpbnQzMl90IHgzNDc7CisgIGZpYXRf
cDI1Nl91aW50MSB4MzQ4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM0NywgJngzNDgs
IHgzNDYsIHgzMzUsIHgzMzgpOworICB1aW50MzJfdCB4MzQ5OworICBmaWF0X3AyNTZfdWludDEg
eDM1MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzNDksICZ4MzUwLCB4MzQ4LCB4MzMz
LCB4MzM2KTsKKyAgdWludDMyX3QgeDM1MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNTI7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzUxLCAmeDM1MiwgeDM1MCwgeDMzMSwgeDMzNCk7Cisg
IHVpbnQzMl90IHgzNTM7CisgIGZpYXRfcDI1Nl91aW50MSB4MzU0OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDM1MywgJngzNTQsIHgzNTIsIHgzMjksIHgzMzIpOworICB1aW50MzJfdCB4
MzU1OworICBmaWF0X3AyNTZfdWludDEgeDM1NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
JngzNTUsICZ4MzU2LCB4MzU0LCB4MzI3LCB4MzMwKTsKKyAgdWludDMyX3QgeDM1NzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgzNTg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzU3LCAmeDM1
OCwgeDM1NiwgMHgwLCB4MzI4KTsKKyAgdWludDMyX3QgeDM1OTsKKyAgZmlhdF9wMjU2X3VpbnQx
IHgzNjA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzU5LCAmeDM2MCwgMHgwLCB4MzQx
LCB4MzA5KTsKKyAgdWludDMyX3QgeDM2MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNjI7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzYxLCAmeDM2MiwgeDM2MCwgeDM0MywgeDMxMSk7Cisg
IHVpbnQzMl90IHgzNjM7CisgIGZpYXRfcDI1Nl91aW50MSB4MzY0OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDM2MywgJngzNjQsIHgzNjIsIHgzNDUsIHgzMTMpOworICB1aW50MzJfdCB4
MzY1OworICBmaWF0X3AyNTZfdWludDEgeDM2NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
JngzNjUsICZ4MzY2LCB4MzY0LCB4MzQ3LCB4MzE1KTsKKyAgdWludDMyX3QgeDM2NzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgzNjg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzY3LCAmeDM2
OCwgeDM2NiwgeDM0OSwgeDMxNyk7CisgIHVpbnQzMl90IHgzNjk7CisgIGZpYXRfcDI1Nl91aW50
MSB4MzcwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM2OSwgJngzNzAsIHgzNjgsIHgz
NTEsIHgzMTkpOworICB1aW50MzJfdCB4MzcxOworICBmaWF0X3AyNTZfdWludDEgeDM3MjsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzNzEsICZ4MzcyLCB4MzcwLCB4MzUzLCB4MzIxKTsK
KyAgdWludDMyX3QgeDM3MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNzQ7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4MzczLCAmeDM3NCwgeDM3MiwgeDM1NSwgeDMyMyk7CisgIHVpbnQzMl90
IHgzNzU7CisgIGZpYXRfcDI1Nl91aW50MSB4Mzc2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDM3NSwgJngzNzYsIHgzNzQsIHgzNTcsIHgzMjUpOworICB1aW50MzJfdCB4Mzc3OworICB1
aW50MzJfdCB4Mzc4OworICBmaWF0X3AyNTZfbXVseF91MzIoJngzNzcsICZ4Mzc4LCB4MzU5LCBV
SU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzNzk7CisgIHVpbnQzMl90IHgzODA7
CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDM3OSwgJngzODAsIHgzNTksIFVJTlQzMl9DKDB4ZmZm
ZmZmZmYpKTsKKyAgdWludDMyX3QgeDM4MTsKKyAgdWludDMyX3QgeDM4MjsKKyAgZmlhdF9wMjU2
X211bHhfdTMyKCZ4MzgxLCAmeDM4MiwgeDM1OSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1
aW50MzJfdCB4MzgzOworICB1aW50MzJfdCB4Mzg0OworICBmaWF0X3AyNTZfbXVseF91MzIoJngz
ODMsICZ4Mzg0LCB4MzU5LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzODU7
CisgIGZpYXRfcDI1Nl91aW50MSB4Mzg2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM4
NSwgJngzODYsIDB4MCwgeDM4MSwgeDM4NCk7CisgIHVpbnQzMl90IHgzODc7CisgIGZpYXRfcDI1
Nl91aW50MSB4Mzg4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM4NywgJngzODgsIHgz
ODYsIHgzNzksIHgzODIpOworICB1aW50MzJfdCB4Mzg5OworICBmaWF0X3AyNTZfdWludDEgeDM5
MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzODksICZ4MzkwLCB4Mzg4LCAweDAsIHgz
ODApOworICB1aW50MzJfdCB4MzkxOworICBmaWF0X3AyNTZfdWludDEgeDM5MjsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJngzOTEsICZ4MzkyLCAweDAsIHgzODMsIHgzNTkpOworICB1aW50
MzJfdCB4MzkzOworICBmaWF0X3AyNTZfdWludDEgeDM5NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngzOTMsICZ4Mzk0LCB4MzkyLCB4Mzg1LCB4MzYxKTsKKyAgdWludDMyX3QgeDM5NTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgzOTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4Mzk1
LCAmeDM5NiwgeDM5NCwgeDM4NywgeDM2Myk7CisgIHVpbnQzMl90IHgzOTc7CisgIGZpYXRfcDI1
Nl91aW50MSB4Mzk4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM5NywgJngzOTgsIHgz
OTYsIHgzODksIHgzNjUpOworICB1aW50MzJfdCB4Mzk5OworICBmaWF0X3AyNTZfdWludDEgeDQw
MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzOTksICZ4NDAwLCB4Mzk4LCAweDAsIHgz
NjcpOworICB1aW50MzJfdCB4NDAxOworICBmaWF0X3AyNTZfdWludDEgeDQwMjsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJng0MDEsICZ4NDAyLCB4NDAwLCAweDAsIHgzNjkpOworICB1aW50
MzJfdCB4NDAzOworICBmaWF0X3AyNTZfdWludDEgeDQwNDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJng0MDMsICZ4NDA0LCB4NDAyLCB4MzU5LCB4MzcxKTsKKyAgdWludDMyX3QgeDQwNTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHg0MDY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDA1
LCAmeDQwNiwgeDQwNCwgeDM3NywgeDM3Myk7CisgIHVpbnQzMl90IHg0MDc7CisgIGZpYXRfcDI1
Nl91aW50MSB4NDA4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQwNywgJng0MDgsIHg0
MDYsIHgzNzgsIHgzNzUpOworICB1aW50MzJfdCB4NDA5OworICBmaWF0X3AyNTZfdWludDEgeDQx
MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0MDksICZ4NDEwLCB4NDA4LCAweDAsIHgz
NzYpOworICB1aW50MzJfdCB4NDExOworICB1aW50MzJfdCB4NDEyOworICBmaWF0X3AyNTZfbXVs
eF91MzIoJng0MTEsICZ4NDEyLCB4NSwgKGFyZzJbN10pKTsKKyAgdWludDMyX3QgeDQxMzsKKyAg
dWludDMyX3QgeDQxNDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDEzLCAmeDQxNCwgeDUsIChh
cmcyWzZdKSk7CisgIHVpbnQzMl90IHg0MTU7CisgIHVpbnQzMl90IHg0MTY7CisgIGZpYXRfcDI1
Nl9tdWx4X3UzMigmeDQxNSwgJng0MTYsIHg1LCAoYXJnMls1XSkpOworICB1aW50MzJfdCB4NDE3
OworICB1aW50MzJfdCB4NDE4OworICBmaWF0X3AyNTZfbXVseF91MzIoJng0MTcsICZ4NDE4LCB4
NSwgKGFyZzJbNF0pKTsKKyAgdWludDMyX3QgeDQxOTsKKyAgdWludDMyX3QgeDQyMDsKKyAgZmlh
dF9wMjU2X211bHhfdTMyKCZ4NDE5LCAmeDQyMCwgeDUsIChhcmcyWzNdKSk7CisgIHVpbnQzMl90
IHg0MjE7CisgIHVpbnQzMl90IHg0MjI7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDQyMSwgJng0
MjIsIHg1LCAoYXJnMlsyXSkpOworICB1aW50MzJfdCB4NDIzOworICB1aW50MzJfdCB4NDI0Owor
ICBmaWF0X3AyNTZfbXVseF91MzIoJng0MjMsICZ4NDI0LCB4NSwgKGFyZzJbMV0pKTsKKyAgdWlu
dDMyX3QgeDQyNTsKKyAgdWludDMyX3QgeDQyNjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDI1
LCAmeDQyNiwgeDUsIChhcmcyWzBdKSk7CisgIHVpbnQzMl90IHg0Mjc7CisgIGZpYXRfcDI1Nl91
aW50MSB4NDI4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQyNywgJng0MjgsIDB4MCwg
eDQyMywgeDQyNik7CisgIHVpbnQzMl90IHg0Mjk7CisgIGZpYXRfcDI1Nl91aW50MSB4NDMwOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQyOSwgJng0MzAsIHg0MjgsIHg0MjEsIHg0MjQp
OworICB1aW50MzJfdCB4NDMxOworICBmaWF0X3AyNTZfdWludDEgeDQzMjsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJng0MzEsICZ4NDMyLCB4NDMwLCB4NDE5LCB4NDIyKTsKKyAgdWludDMy
X3QgeDQzMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0MzQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NDMzLCAmeDQzNCwgeDQzMiwgeDQxNywgeDQyMCk7CisgIHVpbnQzMl90IHg0MzU7Cisg
IGZpYXRfcDI1Nl91aW50MSB4NDM2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQzNSwg
Jng0MzYsIHg0MzQsIHg0MTUsIHg0MTgpOworICB1aW50MzJfdCB4NDM3OworICBmaWF0X3AyNTZf
dWludDEgeDQzODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0MzcsICZ4NDM4LCB4NDM2
LCB4NDEzLCB4NDE2KTsKKyAgdWludDMyX3QgeDQzOTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NDA7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDM5LCAmeDQ0MCwgeDQzOCwgeDQxMSwgeDQx
NCk7CisgIHVpbnQzMl90IHg0NDE7CisgIGZpYXRfcDI1Nl91aW50MSB4NDQyOworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDQ0MSwgJng0NDIsIHg0NDAsIDB4MCwgeDQxMik7CisgIHVpbnQz
Ml90IHg0NDM7CisgIGZpYXRfcDI1Nl91aW50MSB4NDQ0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDQ0MywgJng0NDQsIDB4MCwgeDQyNSwgeDM5Myk7CisgIHVpbnQzMl90IHg0NDU7Cisg
IGZpYXRfcDI1Nl91aW50MSB4NDQ2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ0NSwg
Jng0NDYsIHg0NDQsIHg0MjcsIHgzOTUpOworICB1aW50MzJfdCB4NDQ3OworICBmaWF0X3AyNTZf
dWludDEgeDQ0ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NDcsICZ4NDQ4LCB4NDQ2
LCB4NDI5LCB4Mzk3KTsKKyAgdWludDMyX3QgeDQ0OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NTA7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDQ5LCAmeDQ1MCwgeDQ0OCwgeDQzMSwgeDM5
OSk7CisgIHVpbnQzMl90IHg0NTE7CisgIGZpYXRfcDI1Nl91aW50MSB4NDUyOworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDQ1MSwgJng0NTIsIHg0NTAsIHg0MzMsIHg0MDEpOworICB1aW50
MzJfdCB4NDUzOworICBmaWF0X3AyNTZfdWludDEgeDQ1NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJng0NTMsICZ4NDU0LCB4NDUyLCB4NDM1LCB4NDAzKTsKKyAgdWludDMyX3QgeDQ1NTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHg0NTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDU1
LCAmeDQ1NiwgeDQ1NCwgeDQzNywgeDQwNSk7CisgIHVpbnQzMl90IHg0NTc7CisgIGZpYXRfcDI1
Nl91aW50MSB4NDU4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ1NywgJng0NTgsIHg0
NTYsIHg0MzksIHg0MDcpOworICB1aW50MzJfdCB4NDU5OworICBmaWF0X3AyNTZfdWludDEgeDQ2
MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NTksICZ4NDYwLCB4NDU4LCB4NDQxLCB4
NDA5KTsKKyAgdWludDMyX3QgeDQ2MTsKKyAgdWludDMyX3QgeDQ2MjsKKyAgZmlhdF9wMjU2X211
bHhfdTMyKCZ4NDYxLCAmeDQ2MiwgeDQ0MywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50
MzJfdCB4NDYzOworICB1aW50MzJfdCB4NDY0OworICBmaWF0X3AyNTZfbXVseF91MzIoJng0NjMs
ICZ4NDY0LCB4NDQzLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg0NjU7Cisg
IHVpbnQzMl90IHg0NjY7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDQ2NSwgJng0NjYsIHg0NDMs
IFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDQ2NzsKKyAgdWludDMyX3QgeDQ2
ODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDY3LCAmeDQ2OCwgeDQ0MywgVUlOVDMyX0MoMHhm
ZmZmZmZmZikpOworICB1aW50MzJfdCB4NDY5OworICBmaWF0X3AyNTZfdWludDEgeDQ3MDsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NjksICZ4NDcwLCAweDAsIHg0NjUsIHg0NjgpOwor
ICB1aW50MzJfdCB4NDcxOworICBmaWF0X3AyNTZfdWludDEgeDQ3MjsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJng0NzEsICZ4NDcyLCB4NDcwLCB4NDYzLCB4NDY2KTsKKyAgdWludDMyX3Qg
eDQ3MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NzQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4NDczLCAmeDQ3NCwgeDQ3MiwgMHgwLCB4NDY0KTsKKyAgdWludDMyX3QgeDQ3NTsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg0NzY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDc1LCAmeDQ3
NiwgMHgwLCB4NDY3LCB4NDQzKTsKKyAgdWludDMyX3QgeDQ3NzsKKyAgZmlhdF9wMjU2X3VpbnQx
IHg0Nzg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDc3LCAmeDQ3OCwgeDQ3NiwgeDQ2
OSwgeDQ0NSk7CisgIHVpbnQzMl90IHg0Nzk7CisgIGZpYXRfcDI1Nl91aW50MSB4NDgwOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ3OSwgJng0ODAsIHg0NzgsIHg0NzEsIHg0NDcpOwor
ICB1aW50MzJfdCB4NDgxOworICBmaWF0X3AyNTZfdWludDEgeDQ4MjsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJng0ODEsICZ4NDgyLCB4NDgwLCB4NDczLCB4NDQ5KTsKKyAgdWludDMyX3Qg
eDQ4MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0ODQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4NDgzLCAmeDQ4NCwgeDQ4MiwgMHgwLCB4NDUxKTsKKyAgdWludDMyX3QgeDQ4NTsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg0ODY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDg1LCAmeDQ4
NiwgeDQ4NCwgMHgwLCB4NDUzKTsKKyAgdWludDMyX3QgeDQ4NzsKKyAgZmlhdF9wMjU2X3VpbnQx
IHg0ODg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDg3LCAmeDQ4OCwgeDQ4NiwgeDQ0
MywgeDQ1NSk7CisgIHVpbnQzMl90IHg0ODk7CisgIGZpYXRfcDI1Nl91aW50MSB4NDkwOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ4OSwgJng0OTAsIHg0ODgsIHg0NjEsIHg0NTcpOwor
ICB1aW50MzJfdCB4NDkxOworICBmaWF0X3AyNTZfdWludDEgeDQ5MjsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJng0OTEsICZ4NDkyLCB4NDkwLCB4NDYyLCB4NDU5KTsKKyAgdWludDMyX3Qg
eDQ5MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0OTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4NDkzLCAmeDQ5NCwgeDQ5MiwgMHgwLCB4NDYwKTsKKyAgdWludDMyX3QgeDQ5NTsKKyAgdWlu
dDMyX3QgeDQ5NjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDk1LCAmeDQ5NiwgeDYsIChhcmcy
WzddKSk7CisgIHVpbnQzMl90IHg0OTc7CisgIHVpbnQzMl90IHg0OTg7CisgIGZpYXRfcDI1Nl9t
dWx4X3UzMigmeDQ5NywgJng0OTgsIHg2LCAoYXJnMls2XSkpOworICB1aW50MzJfdCB4NDk5Owor
ICB1aW50MzJfdCB4NTAwOworICBmaWF0X3AyNTZfbXVseF91MzIoJng0OTksICZ4NTAwLCB4Niwg
KGFyZzJbNV0pKTsKKyAgdWludDMyX3QgeDUwMTsKKyAgdWludDMyX3QgeDUwMjsKKyAgZmlhdF9w
MjU2X211bHhfdTMyKCZ4NTAxLCAmeDUwMiwgeDYsIChhcmcyWzRdKSk7CisgIHVpbnQzMl90IHg1
MDM7CisgIHVpbnQzMl90IHg1MDQ7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDUwMywgJng1MDQs
IHg2LCAoYXJnMlszXSkpOworICB1aW50MzJfdCB4NTA1OworICB1aW50MzJfdCB4NTA2OworICBm
aWF0X3AyNTZfbXVseF91MzIoJng1MDUsICZ4NTA2LCB4NiwgKGFyZzJbMl0pKTsKKyAgdWludDMy
X3QgeDUwNzsKKyAgdWludDMyX3QgeDUwODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NTA3LCAm
eDUwOCwgeDYsIChhcmcyWzFdKSk7CisgIHVpbnQzMl90IHg1MDk7CisgIHVpbnQzMl90IHg1MTA7
CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDUwOSwgJng1MTAsIHg2LCAoYXJnMlswXSkpOworICB1
aW50MzJfdCB4NTExOworICBmaWF0X3AyNTZfdWludDEgeDUxMjsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJng1MTEsICZ4NTEyLCAweDAsIHg1MDcsIHg1MTApOworICB1aW50MzJfdCB4NTEz
OworICBmaWF0X3AyNTZfdWludDEgeDUxNDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1
MTMsICZ4NTE0LCB4NTEyLCB4NTA1LCB4NTA4KTsKKyAgdWludDMyX3QgeDUxNTsKKyAgZmlhdF9w
MjU2X3VpbnQxIHg1MTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTE1LCAmeDUxNiwg
eDUxNCwgeDUwMywgeDUwNik7CisgIHVpbnQzMl90IHg1MTc7CisgIGZpYXRfcDI1Nl91aW50MSB4
NTE4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDUxNywgJng1MTgsIHg1MTYsIHg1MDEs
IHg1MDQpOworICB1aW50MzJfdCB4NTE5OworICBmaWF0X3AyNTZfdWludDEgeDUyMDsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MTksICZ4NTIwLCB4NTE4LCB4NDk5LCB4NTAyKTsKKyAg
dWludDMyX3QgeDUyMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1MjI7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4NTIxLCAmeDUyMiwgeDUyMCwgeDQ5NywgeDUwMCk7CisgIHVpbnQzMl90IHg1
MjM7CisgIGZpYXRfcDI1Nl91aW50MSB4NTI0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDUyMywgJng1MjQsIHg1MjIsIHg0OTUsIHg0OTgpOworICB1aW50MzJfdCB4NTI1OworICBmaWF0
X3AyNTZfdWludDEgeDUyNjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MjUsICZ4NTI2
LCB4NTI0LCAweDAsIHg0OTYpOworICB1aW50MzJfdCB4NTI3OworICBmaWF0X3AyNTZfdWludDEg
eDUyODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MjcsICZ4NTI4LCAweDAsIHg1MDks
IHg0NzcpOworICB1aW50MzJfdCB4NTI5OworICBmaWF0X3AyNTZfdWludDEgeDUzMDsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MjksICZ4NTMwLCB4NTI4LCB4NTExLCB4NDc5KTsKKyAg
dWludDMyX3QgeDUzMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1MzI7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4NTMxLCAmeDUzMiwgeDUzMCwgeDUxMywgeDQ4MSk7CisgIHVpbnQzMl90IHg1
MzM7CisgIGZpYXRfcDI1Nl91aW50MSB4NTM0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDUzMywgJng1MzQsIHg1MzIsIHg1MTUsIHg0ODMpOworICB1aW50MzJfdCB4NTM1OworICBmaWF0
X3AyNTZfdWludDEgeDUzNjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MzUsICZ4NTM2
LCB4NTM0LCB4NTE3LCB4NDg1KTsKKyAgdWludDMyX3QgeDUzNzsKKyAgZmlhdF9wMjU2X3VpbnQx
IHg1Mzg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTM3LCAmeDUzOCwgeDUzNiwgeDUx
OSwgeDQ4Nyk7CisgIHVpbnQzMl90IHg1Mzk7CisgIGZpYXRfcDI1Nl91aW50MSB4NTQwOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDUzOSwgJng1NDAsIHg1MzgsIHg1MjEsIHg0ODkpOwor
ICB1aW50MzJfdCB4NTQxOworICBmaWF0X3AyNTZfdWludDEgeDU0MjsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJng1NDEsICZ4NTQyLCB4NTQwLCB4NTIzLCB4NDkxKTsKKyAgdWludDMyX3Qg
eDU0MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4NTQzLCAmeDU0NCwgeDU0MiwgeDUyNSwgeDQ5Myk7CisgIHVpbnQzMl90IHg1NDU7CisgIHVp
bnQzMl90IHg1NDY7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDU0NSwgJng1NDYsIHg1MjcsIFVJ
TlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDU0NzsKKyAgdWludDMyX3QgeDU0ODsK
KyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NTQ3LCAmeDU0OCwgeDUyNywgVUlOVDMyX0MoMHhmZmZm
ZmZmZikpOworICB1aW50MzJfdCB4NTQ5OworICB1aW50MzJfdCB4NTUwOworICBmaWF0X3AyNTZf
bXVseF91MzIoJng1NDksICZ4NTUwLCB4NTI3LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVp
bnQzMl90IHg1NTE7CisgIHVpbnQzMl90IHg1NTI7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDU1
MSwgJng1NTIsIHg1MjcsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDU1MzsK
KyAgZmlhdF9wMjU2X3VpbnQxIHg1NTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTUz
LCAmeDU1NCwgMHgwLCB4NTQ5LCB4NTUyKTsKKyAgdWludDMyX3QgeDU1NTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHg1NTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTU1LCAmeDU1NiwgeDU1
NCwgeDU0NywgeDU1MCk7CisgIHVpbnQzMl90IHg1NTc7CisgIGZpYXRfcDI1Nl91aW50MSB4NTU4
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU1NywgJng1NTgsIHg1NTYsIDB4MCwgeDU0
OCk7CisgIHVpbnQzMl90IHg1NTk7CisgIGZpYXRfcDI1Nl91aW50MSB4NTYwOworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDU1OSwgJng1NjAsIDB4MCwgeDU1MSwgeDUyNyk7CisgIHVpbnQz
Ml90IHg1NjE7CisgIGZpYXRfcDI1Nl91aW50MSB4NTYyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDU2MSwgJng1NjIsIHg1NjAsIHg1NTMsIHg1MjkpOworICB1aW50MzJfdCB4NTYzOwor
ICBmaWF0X3AyNTZfdWludDEgeDU2NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1NjMs
ICZ4NTY0LCB4NTYyLCB4NTU1LCB4NTMxKTsKKyAgdWludDMyX3QgeDU2NTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHg1NjY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTY1LCAmeDU2NiwgeDU2
NCwgeDU1NywgeDUzMyk7CisgIHVpbnQzMl90IHg1Njc7CisgIGZpYXRfcDI1Nl91aW50MSB4NTY4
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU2NywgJng1NjgsIHg1NjYsIDB4MCwgeDUz
NSk7CisgIHVpbnQzMl90IHg1Njk7CisgIGZpYXRfcDI1Nl91aW50MSB4NTcwOworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDU2OSwgJng1NzAsIHg1NjgsIDB4MCwgeDUzNyk7CisgIHVpbnQz
Ml90IHg1NzE7CisgIGZpYXRfcDI1Nl91aW50MSB4NTcyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDU3MSwgJng1NzIsIHg1NzAsIHg1MjcsIHg1MzkpOworICB1aW50MzJfdCB4NTczOwor
ICBmaWF0X3AyNTZfdWludDEgeDU3NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1NzMs
ICZ4NTc0LCB4NTcyLCB4NTQ1LCB4NTQxKTsKKyAgdWludDMyX3QgeDU3NTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHg1NzY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTc1LCAmeDU3NiwgeDU3
NCwgeDU0NiwgeDU0Myk7CisgIHVpbnQzMl90IHg1Nzc7CisgIGZpYXRfcDI1Nl91aW50MSB4NTc4
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU3NywgJng1NzgsIHg1NzYsIDB4MCwgeDU0
NCk7CisgIHVpbnQzMl90IHg1Nzk7CisgIHVpbnQzMl90IHg1ODA7CisgIGZpYXRfcDI1Nl9tdWx4
X3UzMigmeDU3OSwgJng1ODAsIHg3LCAoYXJnMls3XSkpOworICB1aW50MzJfdCB4NTgxOworICB1
aW50MzJfdCB4NTgyOworICBmaWF0X3AyNTZfbXVseF91MzIoJng1ODEsICZ4NTgyLCB4NywgKGFy
ZzJbNl0pKTsKKyAgdWludDMyX3QgeDU4MzsKKyAgdWludDMyX3QgeDU4NDsKKyAgZmlhdF9wMjU2
X211bHhfdTMyKCZ4NTgzLCAmeDU4NCwgeDcsIChhcmcyWzVdKSk7CisgIHVpbnQzMl90IHg1ODU7
CisgIHVpbnQzMl90IHg1ODY7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDU4NSwgJng1ODYsIHg3
LCAoYXJnMls0XSkpOworICB1aW50MzJfdCB4NTg3OworICB1aW50MzJfdCB4NTg4OworICBmaWF0
X3AyNTZfbXVseF91MzIoJng1ODcsICZ4NTg4LCB4NywgKGFyZzJbM10pKTsKKyAgdWludDMyX3Qg
eDU4OTsKKyAgdWludDMyX3QgeDU5MDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NTg5LCAmeDU5
MCwgeDcsIChhcmcyWzJdKSk7CisgIHVpbnQzMl90IHg1OTE7CisgIHVpbnQzMl90IHg1OTI7Cisg
IGZpYXRfcDI1Nl9tdWx4X3UzMigmeDU5MSwgJng1OTIsIHg3LCAoYXJnMlsxXSkpOworICB1aW50
MzJfdCB4NTkzOworICB1aW50MzJfdCB4NTk0OworICBmaWF0X3AyNTZfbXVseF91MzIoJng1OTMs
ICZ4NTk0LCB4NywgKGFyZzJbMF0pKTsKKyAgdWludDMyX3QgeDU5NTsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHg1OTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTk1LCAmeDU5NiwgMHgwLCB4
NTkxLCB4NTk0KTsKKyAgdWludDMyX3QgeDU5NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1OTg7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTk3LCAmeDU5OCwgeDU5NiwgeDU4OSwgeDU5Mik7
CisgIHVpbnQzMl90IHg1OTk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjAwOworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDU5OSwgJng2MDAsIHg1OTgsIHg1ODcsIHg1OTApOworICB1aW50MzJf
dCB4NjAxOworICBmaWF0X3AyNTZfdWludDEgeDYwMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJng2MDEsICZ4NjAyLCB4NjAwLCB4NTg1LCB4NTg4KTsKKyAgdWludDMyX3QgeDYwMzsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHg2MDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjAzLCAm
eDYwNCwgeDYwMiwgeDU4MywgeDU4Nik7CisgIHVpbnQzMl90IHg2MDU7CisgIGZpYXRfcDI1Nl91
aW50MSB4NjA2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYwNSwgJng2MDYsIHg2MDQs
IHg1ODEsIHg1ODQpOworICB1aW50MzJfdCB4NjA3OworICBmaWF0X3AyNTZfdWludDEgeDYwODsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2MDcsICZ4NjA4LCB4NjA2LCB4NTc5LCB4NTgy
KTsKKyAgdWludDMyX3QgeDYwOTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MTA7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4NjA5LCAmeDYxMCwgeDYwOCwgMHgwLCB4NTgwKTsKKyAgdWludDMy
X3QgeDYxMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MTI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NjExLCAmeDYxMiwgMHgwLCB4NTkzLCB4NTYxKTsKKyAgdWludDMyX3QgeDYxMzsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHg2MTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjEzLCAm
eDYxNCwgeDYxMiwgeDU5NSwgeDU2Myk7CisgIHVpbnQzMl90IHg2MTU7CisgIGZpYXRfcDI1Nl91
aW50MSB4NjE2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYxNSwgJng2MTYsIHg2MTQs
IHg1OTcsIHg1NjUpOworICB1aW50MzJfdCB4NjE3OworICBmaWF0X3AyNTZfdWludDEgeDYxODsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2MTcsICZ4NjE4LCB4NjE2LCB4NTk5LCB4NTY3
KTsKKyAgdWludDMyX3QgeDYxOTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MjA7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4NjE5LCAmeDYyMCwgeDYxOCwgeDYwMSwgeDU2OSk7CisgIHVpbnQz
Ml90IHg2MjE7CisgIGZpYXRfcDI1Nl91aW50MSB4NjIyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDYyMSwgJng2MjIsIHg2MjAsIHg2MDMsIHg1NzEpOworICB1aW50MzJfdCB4NjIzOwor
ICBmaWF0X3AyNTZfdWludDEgeDYyNDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2MjMs
ICZ4NjI0LCB4NjIyLCB4NjA1LCB4NTczKTsKKyAgdWludDMyX3QgeDYyNTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHg2MjY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjI1LCAmeDYyNiwgeDYy
NCwgeDYwNywgeDU3NSk7CisgIHVpbnQzMl90IHg2Mjc7CisgIGZpYXRfcDI1Nl91aW50MSB4NjI4
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYyNywgJng2MjgsIHg2MjYsIHg2MDksIHg1
NzcpOworICB1aW50MzJfdCB4NjI5OworICB1aW50MzJfdCB4NjMwOworICBmaWF0X3AyNTZfbXVs
eF91MzIoJng2MjksICZ4NjMwLCB4NjExLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQz
Ml90IHg2MzE7CisgIHVpbnQzMl90IHg2MzI7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDYzMSwg
Jng2MzIsIHg2MTEsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDYzMzsKKyAg
dWludDMyX3QgeDYzNDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NjMzLCAmeDYzNCwgeDYxMSwg
VUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NjM1OworICB1aW50MzJfdCB4NjM2
OworICBmaWF0X3AyNTZfbXVseF91MzIoJng2MzUsICZ4NjM2LCB4NjExLCBVSU5UMzJfQygweGZm
ZmZmZmZmKSk7CisgIHVpbnQzMl90IHg2Mzc7CisgIGZpYXRfcDI1Nl91aW50MSB4NjM4OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYzNywgJng2MzgsIDB4MCwgeDYzMywgeDYzNik7Cisg
IHVpbnQzMl90IHg2Mzk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjQwOworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDYzOSwgJng2NDAsIHg2MzgsIHg2MzEsIHg2MzQpOworICB1aW50MzJfdCB4
NjQxOworICBmaWF0X3AyNTZfdWludDEgeDY0MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
Jng2NDEsICZ4NjQyLCB4NjQwLCAweDAsIHg2MzIpOworICB1aW50MzJfdCB4NjQzOworICBmaWF0
X3AyNTZfdWludDEgeDY0NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NDMsICZ4NjQ0
LCAweDAsIHg2MzUsIHg2MTEpOworICB1aW50MzJfdCB4NjQ1OworICBmaWF0X3AyNTZfdWludDEg
eDY0NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NDUsICZ4NjQ2LCB4NjQ0LCB4NjM3
LCB4NjEzKTsKKyAgdWludDMyX3QgeDY0NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2NDg7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjQ3LCAmeDY0OCwgeDY0NiwgeDYzOSwgeDYxNSk7Cisg
IHVpbnQzMl90IHg2NDk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjUwOworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDY0OSwgJng2NTAsIHg2NDgsIHg2NDEsIHg2MTcpOworICB1aW50MzJfdCB4
NjUxOworICBmaWF0X3AyNTZfdWludDEgeDY1MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
Jng2NTEsICZ4NjUyLCB4NjUwLCAweDAsIHg2MTkpOworICB1aW50MzJfdCB4NjUzOworICBmaWF0
X3AyNTZfdWludDEgeDY1NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NTMsICZ4NjU0
LCB4NjUyLCAweDAsIHg2MjEpOworICB1aW50MzJfdCB4NjU1OworICBmaWF0X3AyNTZfdWludDEg
eDY1NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NTUsICZ4NjU2LCB4NjU0LCB4NjEx
LCB4NjIzKTsKKyAgdWludDMyX3QgeDY1NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2NTg7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjU3LCAmeDY1OCwgeDY1NiwgeDYyOSwgeDYyNSk7Cisg
IHVpbnQzMl90IHg2NTk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjYwOworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDY1OSwgJng2NjAsIHg2NTgsIHg2MzAsIHg2MjcpOworICB1aW50MzJfdCB4
NjYxOworICBmaWF0X3AyNTZfdWludDEgeDY2MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
Jng2NjEsICZ4NjYyLCB4NjYwLCAweDAsIHg2MjgpOworICB1aW50MzJfdCB4NjYzOworICBmaWF0
X3AyNTZfdWludDEgeDY2NDsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4NjYzLCAmeDY2
NCwgMHgwLCB4NjQ1LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg2NjU7Cisg
IGZpYXRfcDI1Nl91aW50MSB4NjY2OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJng2NjUs
ICZ4NjY2LCB4NjY0LCB4NjQ3LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg2
Njc7CisgIGZpYXRfcDI1Nl91aW50MSB4NjY4OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIo
Jng2NjcsICZ4NjY4LCB4NjY2LCB4NjQ5LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQz
Ml90IHg2Njk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjcwOworICBmaWF0X3AyNTZfc3ViYm9ycm93
eF91MzIoJng2NjksICZ4NjcwLCB4NjY4LCB4NjUxLCAweDApOworICB1aW50MzJfdCB4NjcxOwor
ICBmaWF0X3AyNTZfdWludDEgeDY3MjsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4Njcx
LCAmeDY3MiwgeDY3MCwgeDY1MywgMHgwKTsKKyAgdWludDMyX3QgeDY3MzsKKyAgZmlhdF9wMjU2
X3VpbnQxIHg2NzQ7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3UzMigmeDY3MywgJng2NzQsIHg2
NzIsIHg2NTUsIDB4MCk7CisgIHVpbnQzMl90IHg2NzU7CisgIGZpYXRfcDI1Nl91aW50MSB4Njc2
OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJng2NzUsICZ4Njc2LCB4Njc0LCB4NjU3LCAw
eDEpOworICB1aW50MzJfdCB4Njc3OworICBmaWF0X3AyNTZfdWludDEgeDY3ODsKKyAgZmlhdF9w
MjU2X3N1YmJvcnJvd3hfdTMyKCZ4Njc3LCAmeDY3OCwgeDY3NiwgeDY1OSwgVUlOVDMyX0MoMHhm
ZmZmZmZmZikpOworICB1aW50MzJfdCB4Njc5OworICBmaWF0X3AyNTZfdWludDEgeDY4MDsKKyAg
ZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4Njc5LCAmeDY4MCwgeDY3OCwgeDY2MSwgMHgwKTsK
KyAgdWludDMyX3QgeDY4MTsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4NjgxLCB4NjgwLCB4
NjYzLCB4NjQ1KTsKKyAgdWludDMyX3QgeDY4MjsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4
NjgyLCB4NjgwLCB4NjY1LCB4NjQ3KTsKKyAgdWludDMyX3QgeDY4MzsKKyAgZmlhdF9wMjU2X2Nt
b3Z6bnpfdTMyKCZ4NjgzLCB4NjgwLCB4NjY3LCB4NjQ5KTsKKyAgdWludDMyX3QgeDY4NDsKKyAg
ZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4Njg0LCB4NjgwLCB4NjY5LCB4NjUxKTsKKyAgdWludDMy
X3QgeDY4NTsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4Njg1LCB4NjgwLCB4NjcxLCB4NjUz
KTsKKyAgdWludDMyX3QgeDY4NjsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4Njg2LCB4Njgw
LCB4NjczLCB4NjU1KTsKKyAgdWludDMyX3QgeDY4NzsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMy
KCZ4Njg3LCB4NjgwLCB4Njc1LCB4NjU3KTsKKyAgdWludDMyX3QgeDY4ODsKKyAgZmlhdF9wMjU2
X2Ntb3Z6bnpfdTMyKCZ4Njg4LCB4NjgwLCB4Njc3LCB4NjU5KTsKKyAgb3V0MVswXSA9IHg2ODE7
CisgIG91dDFbMV0gPSB4NjgyOworICBvdXQxWzJdID0geDY4MzsKKyAgb3V0MVszXSA9IHg2ODQ7
CisgIG91dDFbNF0gPSB4Njg1OworICBvdXQxWzVdID0geDY4NjsKKyAgb3V0MVs2XSA9IHg2ODc7
CisgIG91dDFbN10gPSB4Njg4OworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcx
OiBbWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZm
ZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+
PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXV0K
KyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgw
IH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZd
LCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZm
ZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdXQorICovCitzdGF0aWMgdm9pZCBmaWF0X3AyNTZf
c3F1YXJlKHVpbnQzMl90IG91dDFbOF0sIGNvbnN0IHVpbnQzMl90IGFyZzFbOF0pIHsKKyAgdWlu
dDMyX3QgeDEgPSAoYXJnMVsxXSk7CisgIHVpbnQzMl90IHgyID0gKGFyZzFbMl0pOworICB1aW50
MzJfdCB4MyA9IChhcmcxWzNdKTsKKyAgdWludDMyX3QgeDQgPSAoYXJnMVs0XSk7CisgIHVpbnQz
Ml90IHg1ID0gKGFyZzFbNV0pOworICB1aW50MzJfdCB4NiA9IChhcmcxWzZdKTsKKyAgdWludDMy
X3QgeDcgPSAoYXJnMVs3XSk7CisgIHVpbnQzMl90IHg4ID0gKGFyZzFbMF0pOworICB1aW50MzJf
dCB4OTsKKyAgdWludDMyX3QgeDEwOworICBmaWF0X3AyNTZfbXVseF91MzIoJng5LCAmeDEwLCB4
OCwgKGFyZzFbN10pKTsKKyAgdWludDMyX3QgeDExOworICB1aW50MzJfdCB4MTI7CisgIGZpYXRf
cDI1Nl9tdWx4X3UzMigmeDExLCAmeDEyLCB4OCwgKGFyZzFbNl0pKTsKKyAgdWludDMyX3QgeDEz
OworICB1aW50MzJfdCB4MTQ7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDEzLCAmeDE0LCB4OCwg
KGFyZzFbNV0pKTsKKyAgdWludDMyX3QgeDE1OworICB1aW50MzJfdCB4MTY7CisgIGZpYXRfcDI1
Nl9tdWx4X3UzMigmeDE1LCAmeDE2LCB4OCwgKGFyZzFbNF0pKTsKKyAgdWludDMyX3QgeDE3Owor
ICB1aW50MzJfdCB4MTg7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDE3LCAmeDE4LCB4OCwgKGFy
ZzFbM10pKTsKKyAgdWludDMyX3QgeDE5OworICB1aW50MzJfdCB4MjA7CisgIGZpYXRfcDI1Nl9t
dWx4X3UzMigmeDE5LCAmeDIwLCB4OCwgKGFyZzFbMl0pKTsKKyAgdWludDMyX3QgeDIxOworICB1
aW50MzJfdCB4MjI7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDIxLCAmeDIyLCB4OCwgKGFyZzFb
MV0pKTsKKyAgdWludDMyX3QgeDIzOworICB1aW50MzJfdCB4MjQ7CisgIGZpYXRfcDI1Nl9tdWx4
X3UzMigmeDIzLCAmeDI0LCB4OCwgKGFyZzFbMF0pKTsKKyAgdWludDMyX3QgeDI1OworICBmaWF0
X3AyNTZfdWludDEgeDI2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI1LCAmeDI2LCAw
eDAsIHgyMSwgeDI0KTsKKyAgdWludDMyX3QgeDI3OworICBmaWF0X3AyNTZfdWludDEgeDI4Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI3LCAmeDI4LCB4MjYsIHgxOSwgeDIyKTsKKyAg
dWludDMyX3QgeDI5OworICBmaWF0X3AyNTZfdWludDEgeDMwOworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDI5LCAmeDMwLCB4MjgsIHgxNywgeDIwKTsKKyAgdWludDMyX3QgeDMxOworICBm
aWF0X3AyNTZfdWludDEgeDMyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMxLCAmeDMy
LCB4MzAsIHgxNSwgeDE4KTsKKyAgdWludDMyX3QgeDMzOworICBmaWF0X3AyNTZfdWludDEgeDM0
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMzLCAmeDM0LCB4MzIsIHgxMywgeDE2KTsK
KyAgdWludDMyX3QgeDM1OworICBmaWF0X3AyNTZfdWludDEgeDM2OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDM1LCAmeDM2LCB4MzQsIHgxMSwgeDE0KTsKKyAgdWludDMyX3QgeDM3Owor
ICBmaWF0X3AyNTZfdWludDEgeDM4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM3LCAm
eDM4LCB4MzYsIHg5LCB4MTIpOworICB1aW50MzJfdCB4Mzk7CisgIGZpYXRfcDI1Nl91aW50MSB4
NDA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzksICZ4NDAsIHgzOCwgMHgwLCB4MTAp
OworICB1aW50MzJfdCB4NDE7CisgIHVpbnQzMl90IHg0MjsKKyAgZmlhdF9wMjU2X211bHhfdTMy
KCZ4NDEsICZ4NDIsIHgyMywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDM7
CisgIHVpbnQzMl90IHg0NDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDMsICZ4NDQsIHgyMywg
VUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDU7CisgIHVpbnQzMl90IHg0NjsK
KyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDUsICZ4NDYsIHgyMywgVUlOVDMyX0MoMHhmZmZmZmZm
ZikpOworICB1aW50MzJfdCB4NDc7CisgIHVpbnQzMl90IHg0ODsKKyAgZmlhdF9wMjU2X211bHhf
dTMyKCZ4NDcsICZ4NDgsIHgyMywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4
NDk7CisgIGZpYXRfcDI1Nl91aW50MSB4NTA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
NDksICZ4NTAsIDB4MCwgeDQ1LCB4NDgpOworICB1aW50MzJfdCB4NTE7CisgIGZpYXRfcDI1Nl91
aW50MSB4NTI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTEsICZ4NTIsIHg1MCwgeDQz
LCB4NDYpOworICB1aW50MzJfdCB4NTM7CisgIGZpYXRfcDI1Nl91aW50MSB4NTQ7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTMsICZ4NTQsIHg1MiwgMHgwLCB4NDQpOworICB1aW50MzJf
dCB4NTU7CisgIGZpYXRfcDI1Nl91aW50MSB4NTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4NTUsICZ4NTYsIDB4MCwgeDQ3LCB4MjMpOworICB1aW50MzJfdCB4NTc7CisgIGZpYXRfcDI1
Nl91aW50MSB4NTg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTcsICZ4NTgsIHg1Niwg
eDQ5LCB4MjUpOworICB1aW50MzJfdCB4NTk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjA7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTksICZ4NjAsIHg1OCwgeDUxLCB4MjcpOworICB1aW50
MzJfdCB4NjE7CisgIGZpYXRfcDI1Nl91aW50MSB4NjI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NjEsICZ4NjIsIHg2MCwgeDUzLCB4MjkpOworICB1aW50MzJfdCB4NjM7CisgIGZpYXRf
cDI1Nl91aW50MSB4NjQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjMsICZ4NjQsIHg2
MiwgMHgwLCB4MzEpOworICB1aW50MzJfdCB4NjU7CisgIGZpYXRfcDI1Nl91aW50MSB4NjY7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjUsICZ4NjYsIHg2NCwgMHgwLCB4MzMpOworICB1
aW50MzJfdCB4Njc7CisgIGZpYXRfcDI1Nl91aW50MSB4Njg7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4NjcsICZ4NjgsIHg2NiwgeDIzLCB4MzUpOworICB1aW50MzJfdCB4Njk7CisgIGZp
YXRfcDI1Nl91aW50MSB4NzA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjksICZ4NzAs
IHg2OCwgeDQxLCB4MzcpOworICB1aW50MzJfdCB4NzE7CisgIGZpYXRfcDI1Nl91aW50MSB4NzI7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NzEsICZ4NzIsIHg3MCwgeDQyLCB4MzkpOwor
ICB1aW50MzJfdCB4NzM7CisgIGZpYXRfcDI1Nl91aW50MSB4NzQ7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4NzMsICZ4NzQsIHg3MiwgMHgwLCAweDApOworICB1aW50MzJfdCB4NzU7Cisg
IHVpbnQzMl90IHg3NjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NzUsICZ4NzYsIHgxLCAoYXJn
MVs3XSkpOworICB1aW50MzJfdCB4Nzc7CisgIHVpbnQzMl90IHg3ODsKKyAgZmlhdF9wMjU2X211
bHhfdTMyKCZ4NzcsICZ4NzgsIHgxLCAoYXJnMVs2XSkpOworICB1aW50MzJfdCB4Nzk7CisgIHVp
bnQzMl90IHg4MDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NzksICZ4ODAsIHgxLCAoYXJnMVs1
XSkpOworICB1aW50MzJfdCB4ODE7CisgIHVpbnQzMl90IHg4MjsKKyAgZmlhdF9wMjU2X211bHhf
dTMyKCZ4ODEsICZ4ODIsIHgxLCAoYXJnMVs0XSkpOworICB1aW50MzJfdCB4ODM7CisgIHVpbnQz
Ml90IHg4NDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4ODMsICZ4ODQsIHgxLCAoYXJnMVszXSkp
OworICB1aW50MzJfdCB4ODU7CisgIHVpbnQzMl90IHg4NjsKKyAgZmlhdF9wMjU2X211bHhfdTMy
KCZ4ODUsICZ4ODYsIHgxLCAoYXJnMVsyXSkpOworICB1aW50MzJfdCB4ODc7CisgIHVpbnQzMl90
IHg4ODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4ODcsICZ4ODgsIHgxLCAoYXJnMVsxXSkpOwor
ICB1aW50MzJfdCB4ODk7CisgIHVpbnQzMl90IHg5MDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4
ODksICZ4OTAsIHgxLCAoYXJnMVswXSkpOworICB1aW50MzJfdCB4OTE7CisgIGZpYXRfcDI1Nl91
aW50MSB4OTI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4OTEsICZ4OTIsIDB4MCwgeDg3
LCB4OTApOworICB1aW50MzJfdCB4OTM7CisgIGZpYXRfcDI1Nl91aW50MSB4OTQ7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4OTMsICZ4OTQsIHg5MiwgeDg1LCB4ODgpOworICB1aW50MzJf
dCB4OTU7CisgIGZpYXRfcDI1Nl91aW50MSB4OTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4OTUsICZ4OTYsIHg5NCwgeDgzLCB4ODYpOworICB1aW50MzJfdCB4OTc7CisgIGZpYXRfcDI1
Nl91aW50MSB4OTg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4OTcsICZ4OTgsIHg5Niwg
eDgxLCB4ODQpOworICB1aW50MzJfdCB4OTk7CisgIGZpYXRfcDI1Nl91aW50MSB4MTAwOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDk5LCAmeDEwMCwgeDk4LCB4NzksIHg4Mik7CisgIHVp
bnQzMl90IHgxMDE7CisgIGZpYXRfcDI1Nl91aW50MSB4MTAyOworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDEwMSwgJngxMDIsIHgxMDAsIHg3NywgeDgwKTsKKyAgdWludDMyX3QgeDEwMzsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgxMDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTAz
LCAmeDEwNCwgeDEwMiwgeDc1LCB4NzgpOworICB1aW50MzJfdCB4MTA1OworICBmaWF0X3AyNTZf
dWludDEgeDEwNjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMDUsICZ4MTA2LCB4MTA0
LCAweDAsIHg3Nik7CisgIHVpbnQzMl90IHgxMDc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTA4Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEwNywgJngxMDgsIDB4MCwgeDg5LCB4NTcpOwor
ICB1aW50MzJfdCB4MTA5OworICBmaWF0X3AyNTZfdWludDEgeDExMDsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJngxMDksICZ4MTEwLCB4MTA4LCB4OTEsIHg1OSk7CisgIHVpbnQzMl90IHgx
MTE7CisgIGZpYXRfcDI1Nl91aW50MSB4MTEyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDExMSwgJngxMTIsIHgxMTAsIHg5MywgeDYxKTsKKyAgdWludDMyX3QgeDExMzsKKyAgZmlhdF9w
MjU2X3VpbnQxIHgxMTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTEzLCAmeDExNCwg
eDExMiwgeDk1LCB4NjMpOworICB1aW50MzJfdCB4MTE1OworICBmaWF0X3AyNTZfdWludDEgeDEx
NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMTUsICZ4MTE2LCB4MTE0LCB4OTcsIHg2
NSk7CisgIHVpbnQzMl90IHgxMTc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTE4OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDExNywgJngxMTgsIHgxMTYsIHg5OSwgeDY3KTsKKyAgdWludDMy
X3QgeDExOTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMjA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4MTE5LCAmeDEyMCwgeDExOCwgeDEwMSwgeDY5KTsKKyAgdWludDMyX3QgeDEyMTsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHgxMjI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTIxLCAm
eDEyMiwgeDEyMCwgeDEwMywgeDcxKTsKKyAgdWludDMyX3QgeDEyMzsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHgxMjQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTIzLCAmeDEyNCwgeDEyMiwg
eDEwNSwgKGZpYXRfcDI1Nl91aW50MSl4NzMpOworICB1aW50MzJfdCB4MTI1OworICB1aW50MzJf
dCB4MTI2OworICBmaWF0X3AyNTZfbXVseF91MzIoJngxMjUsICZ4MTI2LCB4MTA3LCBVSU5UMzJf
QygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgxMjc7CisgIHVpbnQzMl90IHgxMjg7CisgIGZp
YXRfcDI1Nl9tdWx4X3UzMigmeDEyNywgJngxMjgsIHgxMDcsIFVJTlQzMl9DKDB4ZmZmZmZmZmYp
KTsKKyAgdWludDMyX3QgeDEyOTsKKyAgdWludDMyX3QgeDEzMDsKKyAgZmlhdF9wMjU2X211bHhf
dTMyKCZ4MTI5LCAmeDEzMCwgeDEwNywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJf
dCB4MTMxOworICB1aW50MzJfdCB4MTMyOworICBmaWF0X3AyNTZfbXVseF91MzIoJngxMzEsICZ4
MTMyLCB4MTA3LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgxMzM7CisgIGZp
YXRfcDI1Nl91aW50MSB4MTM0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEzMywgJngx
MzQsIDB4MCwgeDEyOSwgeDEzMik7CisgIHVpbnQzMl90IHgxMzU7CisgIGZpYXRfcDI1Nl91aW50
MSB4MTM2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEzNSwgJngxMzYsIHgxMzQsIHgx
MjcsIHgxMzApOworICB1aW50MzJfdCB4MTM3OworICBmaWF0X3AyNTZfdWludDEgeDEzODsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMzcsICZ4MTM4LCB4MTM2LCAweDAsIHgxMjgpOwor
ICB1aW50MzJfdCB4MTM5OworICBmaWF0X3AyNTZfdWludDEgeDE0MDsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJngxMzksICZ4MTQwLCAweDAsIHgxMzEsIHgxMDcpOworICB1aW50MzJfdCB4
MTQxOworICBmaWF0X3AyNTZfdWludDEgeDE0MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
JngxNDEsICZ4MTQyLCB4MTQwLCB4MTMzLCB4MTA5KTsKKyAgdWludDMyX3QgeDE0MzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgxNDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTQzLCAmeDE0
NCwgeDE0MiwgeDEzNSwgeDExMSk7CisgIHVpbnQzMl90IHgxNDU7CisgIGZpYXRfcDI1Nl91aW50
MSB4MTQ2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE0NSwgJngxNDYsIHgxNDQsIHgx
MzcsIHgxMTMpOworICB1aW50MzJfdCB4MTQ3OworICBmaWF0X3AyNTZfdWludDEgeDE0ODsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNDcsICZ4MTQ4LCB4MTQ2LCAweDAsIHgxMTUpOwor
ICB1aW50MzJfdCB4MTQ5OworICBmaWF0X3AyNTZfdWludDEgeDE1MDsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJngxNDksICZ4MTUwLCB4MTQ4LCAweDAsIHgxMTcpOworICB1aW50MzJfdCB4
MTUxOworICBmaWF0X3AyNTZfdWludDEgeDE1MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
JngxNTEsICZ4MTUyLCB4MTUwLCB4MTA3LCB4MTE5KTsKKyAgdWludDMyX3QgeDE1MzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgxNTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTUzLCAmeDE1
NCwgeDE1MiwgeDEyNSwgeDEyMSk7CisgIHVpbnQzMl90IHgxNTU7CisgIGZpYXRfcDI1Nl91aW50
MSB4MTU2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE1NSwgJngxNTYsIHgxNTQsIHgx
MjYsIHgxMjMpOworICB1aW50MzJfdCB4MTU3OworICBmaWF0X3AyNTZfdWludDEgeDE1ODsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNTcsICZ4MTU4LCB4MTU2LCAweDAsIHgxMjQpOwor
ICB1aW50MzJfdCB4MTU5OworICB1aW50MzJfdCB4MTYwOworICBmaWF0X3AyNTZfbXVseF91MzIo
JngxNTksICZ4MTYwLCB4MiwgKGFyZzFbN10pKTsKKyAgdWludDMyX3QgeDE2MTsKKyAgdWludDMy
X3QgeDE2MjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MTYxLCAmeDE2MiwgeDIsIChhcmcxWzZd
KSk7CisgIHVpbnQzMl90IHgxNjM7CisgIHVpbnQzMl90IHgxNjQ7CisgIGZpYXRfcDI1Nl9tdWx4
X3UzMigmeDE2MywgJngxNjQsIHgyLCAoYXJnMVs1XSkpOworICB1aW50MzJfdCB4MTY1OworICB1
aW50MzJfdCB4MTY2OworICBmaWF0X3AyNTZfbXVseF91MzIoJngxNjUsICZ4MTY2LCB4MiwgKGFy
ZzFbNF0pKTsKKyAgdWludDMyX3QgeDE2NzsKKyAgdWludDMyX3QgeDE2ODsKKyAgZmlhdF9wMjU2
X211bHhfdTMyKCZ4MTY3LCAmeDE2OCwgeDIsIChhcmcxWzNdKSk7CisgIHVpbnQzMl90IHgxNjk7
CisgIHVpbnQzMl90IHgxNzA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDE2OSwgJngxNzAsIHgy
LCAoYXJnMVsyXSkpOworICB1aW50MzJfdCB4MTcxOworICB1aW50MzJfdCB4MTcyOworICBmaWF0
X3AyNTZfbXVseF91MzIoJngxNzEsICZ4MTcyLCB4MiwgKGFyZzFbMV0pKTsKKyAgdWludDMyX3Qg
eDE3MzsKKyAgdWludDMyX3QgeDE3NDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MTczLCAmeDE3
NCwgeDIsIChhcmcxWzBdKSk7CisgIHVpbnQzMl90IHgxNzU7CisgIGZpYXRfcDI1Nl91aW50MSB4
MTc2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE3NSwgJngxNzYsIDB4MCwgeDE3MSwg
eDE3NCk7CisgIHVpbnQzMl90IHgxNzc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTc4OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE3NywgJngxNzgsIHgxNzYsIHgxNjksIHgxNzIpOworICB1
aW50MzJfdCB4MTc5OworICBmaWF0X3AyNTZfdWludDEgeDE4MDsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJngxNzksICZ4MTgwLCB4MTc4LCB4MTY3LCB4MTcwKTsKKyAgdWludDMyX3QgeDE4
MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxODI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MTgxLCAmeDE4MiwgeDE4MCwgeDE2NSwgeDE2OCk7CisgIHVpbnQzMl90IHgxODM7CisgIGZpYXRf
cDI1Nl91aW50MSB4MTg0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE4MywgJngxODQs
IHgxODIsIHgxNjMsIHgxNjYpOworICB1aW50MzJfdCB4MTg1OworICBmaWF0X3AyNTZfdWludDEg
eDE4NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxODUsICZ4MTg2LCB4MTg0LCB4MTYx
LCB4MTY0KTsKKyAgdWludDMyX3QgeDE4NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxODg7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTg3LCAmeDE4OCwgeDE4NiwgeDE1OSwgeDE2Mik7Cisg
IHVpbnQzMl90IHgxODk7CisgIGZpYXRfcDI1Nl91aW50MSB4MTkwOworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDE4OSwgJngxOTAsIHgxODgsIDB4MCwgeDE2MCk7CisgIHVpbnQzMl90IHgx
OTE7CisgIGZpYXRfcDI1Nl91aW50MSB4MTkyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDE5MSwgJngxOTIsIDB4MCwgeDE3MywgeDE0MSk7CisgIHVpbnQzMl90IHgxOTM7CisgIGZpYXRf
cDI1Nl91aW50MSB4MTk0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE5MywgJngxOTQs
IHgxOTIsIHgxNzUsIHgxNDMpOworICB1aW50MzJfdCB4MTk1OworICBmaWF0X3AyNTZfdWludDEg
eDE5NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxOTUsICZ4MTk2LCB4MTk0LCB4MTc3
LCB4MTQ1KTsKKyAgdWludDMyX3QgeDE5NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxOTg7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTk3LCAmeDE5OCwgeDE5NiwgeDE3OSwgeDE0Nyk7Cisg
IHVpbnQzMl90IHgxOTk7CisgIGZpYXRfcDI1Nl91aW50MSB4MjAwOworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDE5OSwgJngyMDAsIHgxOTgsIHgxODEsIHgxNDkpOworICB1aW50MzJfdCB4
MjAxOworICBmaWF0X3AyNTZfdWludDEgeDIwMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIo
JngyMDEsICZ4MjAyLCB4MjAwLCB4MTgzLCB4MTUxKTsKKyAgdWludDMyX3QgeDIwMzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgyMDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjAzLCAmeDIw
NCwgeDIwMiwgeDE4NSwgeDE1Myk7CisgIHVpbnQzMl90IHgyMDU7CisgIGZpYXRfcDI1Nl91aW50
MSB4MjA2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIwNSwgJngyMDYsIHgyMDQsIHgx
ODcsIHgxNTUpOworICB1aW50MzJfdCB4MjA3OworICBmaWF0X3AyNTZfdWludDEgeDIwODsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMDcsICZ4MjA4LCB4MjA2LCB4MTg5LCB4MTU3KTsK
KyAgdWludDMyX3QgeDIwOTsKKyAgdWludDMyX3QgeDIxMDsKKyAgZmlhdF9wMjU2X211bHhfdTMy
KCZ4MjA5LCAmeDIxMCwgeDE5MSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4
MjExOworICB1aW50MzJfdCB4MjEyOworICBmaWF0X3AyNTZfbXVseF91MzIoJngyMTEsICZ4MjEy
LCB4MTkxLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgyMTM7CisgIHVpbnQz
Ml90IHgyMTQ7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDIxMywgJngyMTQsIHgxOTEsIFVJTlQz
Ml9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDIxNTsKKyAgdWludDMyX3QgeDIxNjsKKyAg
ZmlhdF9wMjU2X211bHhfdTMyKCZ4MjE1LCAmeDIxNiwgeDE5MSwgVUlOVDMyX0MoMHhmZmZmZmZm
ZikpOworICB1aW50MzJfdCB4MjE3OworICBmaWF0X3AyNTZfdWludDEgeDIxODsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJngyMTcsICZ4MjE4LCAweDAsIHgyMTMsIHgyMTYpOworICB1aW50
MzJfdCB4MjE5OworICBmaWF0X3AyNTZfdWludDEgeDIyMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngyMTksICZ4MjIwLCB4MjE4LCB4MjExLCB4MjE0KTsKKyAgdWludDMyX3QgeDIyMTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgyMjI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjIx
LCAmeDIyMiwgeDIyMCwgMHgwLCB4MjEyKTsKKyAgdWludDMyX3QgeDIyMzsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgyMjQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjIzLCAmeDIyNCwgMHgw
LCB4MjE1LCB4MTkxKTsKKyAgdWludDMyX3QgeDIyNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMjY7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjI1LCAmeDIyNiwgeDIyNCwgeDIxNywgeDE5
Myk7CisgIHVpbnQzMl90IHgyMjc7CisgIGZpYXRfcDI1Nl91aW50MSB4MjI4OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDIyNywgJngyMjgsIHgyMjYsIHgyMTksIHgxOTUpOworICB1aW50
MzJfdCB4MjI5OworICBmaWF0X3AyNTZfdWludDEgeDIzMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngyMjksICZ4MjMwLCB4MjI4LCB4MjIxLCB4MTk3KTsKKyAgdWludDMyX3QgeDIzMTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgyMzI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjMx
LCAmeDIzMiwgeDIzMCwgMHgwLCB4MTk5KTsKKyAgdWludDMyX3QgeDIzMzsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgyMzQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjMzLCAmeDIzNCwgeDIz
MiwgMHgwLCB4MjAxKTsKKyAgdWludDMyX3QgeDIzNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMzY7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjM1LCAmeDIzNiwgeDIzNCwgeDE5MSwgeDIw
Myk7CisgIHVpbnQzMl90IHgyMzc7CisgIGZpYXRfcDI1Nl91aW50MSB4MjM4OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDIzNywgJngyMzgsIHgyMzYsIHgyMDksIHgyMDUpOworICB1aW50
MzJfdCB4MjM5OworICBmaWF0X3AyNTZfdWludDEgeDI0MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngyMzksICZ4MjQwLCB4MjM4LCB4MjEwLCB4MjA3KTsKKyAgdWludDMyX3QgeDI0MTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgyNDI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjQx
LCAmeDI0MiwgeDI0MCwgMHgwLCB4MjA4KTsKKyAgdWludDMyX3QgeDI0MzsKKyAgdWludDMyX3Qg
eDI0NDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MjQzLCAmeDI0NCwgeDMsIChhcmcxWzddKSk7
CisgIHVpbnQzMl90IHgyNDU7CisgIHVpbnQzMl90IHgyNDY7CisgIGZpYXRfcDI1Nl9tdWx4X3Uz
MigmeDI0NSwgJngyNDYsIHgzLCAoYXJnMVs2XSkpOworICB1aW50MzJfdCB4MjQ3OworICB1aW50
MzJfdCB4MjQ4OworICBmaWF0X3AyNTZfbXVseF91MzIoJngyNDcsICZ4MjQ4LCB4MywgKGFyZzFb
NV0pKTsKKyAgdWludDMyX3QgeDI0OTsKKyAgdWludDMyX3QgeDI1MDsKKyAgZmlhdF9wMjU2X211
bHhfdTMyKCZ4MjQ5LCAmeDI1MCwgeDMsIChhcmcxWzRdKSk7CisgIHVpbnQzMl90IHgyNTE7Cisg
IHVpbnQzMl90IHgyNTI7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDI1MSwgJngyNTIsIHgzLCAo
YXJnMVszXSkpOworICB1aW50MzJfdCB4MjUzOworICB1aW50MzJfdCB4MjU0OworICBmaWF0X3Ay
NTZfbXVseF91MzIoJngyNTMsICZ4MjU0LCB4MywgKGFyZzFbMl0pKTsKKyAgdWludDMyX3QgeDI1
NTsKKyAgdWludDMyX3QgeDI1NjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MjU1LCAmeDI1Niwg
eDMsIChhcmcxWzFdKSk7CisgIHVpbnQzMl90IHgyNTc7CisgIHVpbnQzMl90IHgyNTg7CisgIGZp
YXRfcDI1Nl9tdWx4X3UzMigmeDI1NywgJngyNTgsIHgzLCAoYXJnMVswXSkpOworICB1aW50MzJf
dCB4MjU5OworICBmaWF0X3AyNTZfdWludDEgeDI2MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJngyNTksICZ4MjYwLCAweDAsIHgyNTUsIHgyNTgpOworICB1aW50MzJfdCB4MjYxOworICBm
aWF0X3AyNTZfdWludDEgeDI2MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNjEsICZ4
MjYyLCB4MjYwLCB4MjUzLCB4MjU2KTsKKyAgdWludDMyX3QgeDI2MzsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHgyNjQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjYzLCAmeDI2NCwgeDI2Miwg
eDI1MSwgeDI1NCk7CisgIHVpbnQzMl90IHgyNjU7CisgIGZpYXRfcDI1Nl91aW50MSB4MjY2Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI2NSwgJngyNjYsIHgyNjQsIHgyNDksIHgyNTIp
OworICB1aW50MzJfdCB4MjY3OworICBmaWF0X3AyNTZfdWludDEgeDI2ODsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJngyNjcsICZ4MjY4LCB4MjY2LCB4MjQ3LCB4MjUwKTsKKyAgdWludDMy
X3QgeDI2OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNzA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4MjY5LCAmeDI3MCwgeDI2OCwgeDI0NSwgeDI0OCk7CisgIHVpbnQzMl90IHgyNzE7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MjcyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI3MSwg
JngyNzIsIHgyNzAsIHgyNDMsIHgyNDYpOworICB1aW50MzJfdCB4MjczOworICBmaWF0X3AyNTZf
dWludDEgeDI3NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNzMsICZ4Mjc0LCB4Mjcy
LCAweDAsIHgyNDQpOworICB1aW50MzJfdCB4Mjc1OworICBmaWF0X3AyNTZfdWludDEgeDI3NjsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNzUsICZ4Mjc2LCAweDAsIHgyNTcsIHgyMjUp
OworICB1aW50MzJfdCB4Mjc3OworICBmaWF0X3AyNTZfdWludDEgeDI3ODsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJngyNzcsICZ4Mjc4LCB4Mjc2LCB4MjU5LCB4MjI3KTsKKyAgdWludDMy
X3QgeDI3OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyODA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4Mjc5LCAmeDI4MCwgeDI3OCwgeDI2MSwgeDIyOSk7CisgIHVpbnQzMl90IHgyODE7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MjgyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI4MSwg
JngyODIsIHgyODAsIHgyNjMsIHgyMzEpOworICB1aW50MzJfdCB4MjgzOworICBmaWF0X3AyNTZf
dWludDEgeDI4NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyODMsICZ4Mjg0LCB4Mjgy
LCB4MjY1LCB4MjMzKTsKKyAgdWludDMyX3QgeDI4NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyODY7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4Mjg1LCAmeDI4NiwgeDI4NCwgeDI2NywgeDIz
NSk7CisgIHVpbnQzMl90IHgyODc7CisgIGZpYXRfcDI1Nl91aW50MSB4Mjg4OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDI4NywgJngyODgsIHgyODYsIHgyNjksIHgyMzcpOworICB1aW50
MzJfdCB4Mjg5OworICBmaWF0X3AyNTZfdWludDEgeDI5MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngyODksICZ4MjkwLCB4Mjg4LCB4MjcxLCB4MjM5KTsKKyAgdWludDMyX3QgeDI5MTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgyOTI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4Mjkx
LCAmeDI5MiwgeDI5MCwgeDI3MywgeDI0MSk7CisgIHVpbnQzMl90IHgyOTM7CisgIHVpbnQzMl90
IHgyOTQ7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDI5MywgJngyOTQsIHgyNzUsIFVJTlQzMl9D
KDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDI5NTsKKyAgdWludDMyX3QgeDI5NjsKKyAgZmlh
dF9wMjU2X211bHhfdTMyKCZ4Mjk1LCAmeDI5NiwgeDI3NSwgVUlOVDMyX0MoMHhmZmZmZmZmZikp
OworICB1aW50MzJfdCB4Mjk3OworICB1aW50MzJfdCB4Mjk4OworICBmaWF0X3AyNTZfbXVseF91
MzIoJngyOTcsICZ4Mjk4LCB4Mjc1LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90
IHgyOTk7CisgIHVpbnQzMl90IHgzMDA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDI5OSwgJngz
MDAsIHgyNzUsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDMwMTsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgzMDI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzAxLCAmeDMw
MiwgMHgwLCB4Mjk3LCB4MzAwKTsKKyAgdWludDMyX3QgeDMwMzsKKyAgZmlhdF9wMjU2X3VpbnQx
IHgzMDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzAzLCAmeDMwNCwgeDMwMiwgeDI5
NSwgeDI5OCk7CisgIHVpbnQzMl90IHgzMDU7CisgIGZpYXRfcDI1Nl91aW50MSB4MzA2OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMwNSwgJngzMDYsIHgzMDQsIDB4MCwgeDI5Nik7Cisg
IHVpbnQzMl90IHgzMDc7CisgIGZpYXRfcDI1Nl91aW50MSB4MzA4OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDMwNywgJngzMDgsIDB4MCwgeDI5OSwgeDI3NSk7CisgIHVpbnQzMl90IHgz
MDk7CisgIGZpYXRfcDI1Nl91aW50MSB4MzEwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDMwOSwgJngzMTAsIHgzMDgsIHgzMDEsIHgyNzcpOworICB1aW50MzJfdCB4MzExOworICBmaWF0
X3AyNTZfdWludDEgeDMxMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMTEsICZ4MzEy
LCB4MzEwLCB4MzAzLCB4Mjc5KTsKKyAgdWludDMyX3QgeDMxMzsKKyAgZmlhdF9wMjU2X3VpbnQx
IHgzMTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzEzLCAmeDMxNCwgeDMxMiwgeDMw
NSwgeDI4MSk7CisgIHVpbnQzMl90IHgzMTU7CisgIGZpYXRfcDI1Nl91aW50MSB4MzE2OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMxNSwgJngzMTYsIHgzMTQsIDB4MCwgeDI4Myk7Cisg
IHVpbnQzMl90IHgzMTc7CisgIGZpYXRfcDI1Nl91aW50MSB4MzE4OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDMxNywgJngzMTgsIHgzMTYsIDB4MCwgeDI4NSk7CisgIHVpbnQzMl90IHgz
MTk7CisgIGZpYXRfcDI1Nl91aW50MSB4MzIwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDMxOSwgJngzMjAsIHgzMTgsIHgyNzUsIHgyODcpOworICB1aW50MzJfdCB4MzIxOworICBmaWF0
X3AyNTZfdWludDEgeDMyMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMjEsICZ4MzIy
LCB4MzIwLCB4MjkzLCB4Mjg5KTsKKyAgdWludDMyX3QgeDMyMzsKKyAgZmlhdF9wMjU2X3VpbnQx
IHgzMjQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzIzLCAmeDMyNCwgeDMyMiwgeDI5
NCwgeDI5MSk7CisgIHVpbnQzMl90IHgzMjU7CisgIGZpYXRfcDI1Nl91aW50MSB4MzI2OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMyNSwgJngzMjYsIHgzMjQsIDB4MCwgeDI5Mik7Cisg
IHVpbnQzMl90IHgzMjc7CisgIHVpbnQzMl90IHgzMjg7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigm
eDMyNywgJngzMjgsIHg0LCAoYXJnMVs3XSkpOworICB1aW50MzJfdCB4MzI5OworICB1aW50MzJf
dCB4MzMwOworICBmaWF0X3AyNTZfbXVseF91MzIoJngzMjksICZ4MzMwLCB4NCwgKGFyZzFbNl0p
KTsKKyAgdWludDMyX3QgeDMzMTsKKyAgdWludDMyX3QgeDMzMjsKKyAgZmlhdF9wMjU2X211bHhf
dTMyKCZ4MzMxLCAmeDMzMiwgeDQsIChhcmcxWzVdKSk7CisgIHVpbnQzMl90IHgzMzM7CisgIHVp
bnQzMl90IHgzMzQ7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDMzMywgJngzMzQsIHg0LCAoYXJn
MVs0XSkpOworICB1aW50MzJfdCB4MzM1OworICB1aW50MzJfdCB4MzM2OworICBmaWF0X3AyNTZf
bXVseF91MzIoJngzMzUsICZ4MzM2LCB4NCwgKGFyZzFbM10pKTsKKyAgdWludDMyX3QgeDMzNzsK
KyAgdWludDMyX3QgeDMzODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MzM3LCAmeDMzOCwgeDQs
IChhcmcxWzJdKSk7CisgIHVpbnQzMl90IHgzMzk7CisgIHVpbnQzMl90IHgzNDA7CisgIGZpYXRf
cDI1Nl9tdWx4X3UzMigmeDMzOSwgJngzNDAsIHg0LCAoYXJnMVsxXSkpOworICB1aW50MzJfdCB4
MzQxOworICB1aW50MzJfdCB4MzQyOworICBmaWF0X3AyNTZfbXVseF91MzIoJngzNDEsICZ4MzQy
LCB4NCwgKGFyZzFbMF0pKTsKKyAgdWludDMyX3QgeDM0MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgz
NDQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzQzLCAmeDM0NCwgMHgwLCB4MzM5LCB4
MzQyKTsKKyAgdWludDMyX3QgeDM0NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNDY7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzQ1LCAmeDM0NiwgeDM0NCwgeDMzNywgeDM0MCk7CisgIHVp
bnQzMl90IHgzNDc7CisgIGZpYXRfcDI1Nl91aW50MSB4MzQ4OworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDM0NywgJngzNDgsIHgzNDYsIHgzMzUsIHgzMzgpOworICB1aW50MzJfdCB4MzQ5
OworICBmaWF0X3AyNTZfdWludDEgeDM1MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngz
NDksICZ4MzUwLCB4MzQ4LCB4MzMzLCB4MzM2KTsKKyAgdWludDMyX3QgeDM1MTsKKyAgZmlhdF9w
MjU2X3VpbnQxIHgzNTI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzUxLCAmeDM1Miwg
eDM1MCwgeDMzMSwgeDMzNCk7CisgIHVpbnQzMl90IHgzNTM7CisgIGZpYXRfcDI1Nl91aW50MSB4
MzU0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM1MywgJngzNTQsIHgzNTIsIHgzMjks
IHgzMzIpOworICB1aW50MzJfdCB4MzU1OworICBmaWF0X3AyNTZfdWludDEgeDM1NjsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzNTUsICZ4MzU2LCB4MzU0LCB4MzI3LCB4MzMwKTsKKyAg
dWludDMyX3QgeDM1NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNTg7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MzU3LCAmeDM1OCwgeDM1NiwgMHgwLCB4MzI4KTsKKyAgdWludDMyX3QgeDM1
OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNjA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MzU5LCAmeDM2MCwgMHgwLCB4MzQxLCB4MzA5KTsKKyAgdWludDMyX3QgeDM2MTsKKyAgZmlhdF9w
MjU2X3VpbnQxIHgzNjI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzYxLCAmeDM2Miwg
eDM2MCwgeDM0MywgeDMxMSk7CisgIHVpbnQzMl90IHgzNjM7CisgIGZpYXRfcDI1Nl91aW50MSB4
MzY0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM2MywgJngzNjQsIHgzNjIsIHgzNDUs
IHgzMTMpOworICB1aW50MzJfdCB4MzY1OworICBmaWF0X3AyNTZfdWludDEgeDM2NjsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzNjUsICZ4MzY2LCB4MzY0LCB4MzQ3LCB4MzE1KTsKKyAg
dWludDMyX3QgeDM2NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNjg7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MzY3LCAmeDM2OCwgeDM2NiwgeDM0OSwgeDMxNyk7CisgIHVpbnQzMl90IHgz
Njk7CisgIGZpYXRfcDI1Nl91aW50MSB4MzcwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDM2OSwgJngzNzAsIHgzNjgsIHgzNTEsIHgzMTkpOworICB1aW50MzJfdCB4MzcxOworICBmaWF0
X3AyNTZfdWludDEgeDM3MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzNzEsICZ4Mzcy
LCB4MzcwLCB4MzUzLCB4MzIxKTsKKyAgdWludDMyX3QgeDM3MzsKKyAgZmlhdF9wMjU2X3VpbnQx
IHgzNzQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzczLCAmeDM3NCwgeDM3MiwgeDM1
NSwgeDMyMyk7CisgIHVpbnQzMl90IHgzNzU7CisgIGZpYXRfcDI1Nl91aW50MSB4Mzc2OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM3NSwgJngzNzYsIHgzNzQsIHgzNTcsIHgzMjUpOwor
ICB1aW50MzJfdCB4Mzc3OworICB1aW50MzJfdCB4Mzc4OworICBmaWF0X3AyNTZfbXVseF91MzIo
JngzNzcsICZ4Mzc4LCB4MzU5LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgz
Nzk7CisgIHVpbnQzMl90IHgzODA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDM3OSwgJngzODAs
IHgzNTksIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDM4MTsKKyAgdWludDMy
X3QgeDM4MjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MzgxLCAmeDM4MiwgeDM1OSwgVUlOVDMy
X0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MzgzOworICB1aW50MzJfdCB4Mzg0OworICBm
aWF0X3AyNTZfbXVseF91MzIoJngzODMsICZ4Mzg0LCB4MzU5LCBVSU5UMzJfQygweGZmZmZmZmZm
KSk7CisgIHVpbnQzMl90IHgzODU7CisgIGZpYXRfcDI1Nl91aW50MSB4Mzg2OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDM4NSwgJngzODYsIDB4MCwgeDM4MSwgeDM4NCk7CisgIHVpbnQz
Ml90IHgzODc7CisgIGZpYXRfcDI1Nl91aW50MSB4Mzg4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDM4NywgJngzODgsIHgzODYsIHgzNzksIHgzODIpOworICB1aW50MzJfdCB4Mzg5Owor
ICBmaWF0X3AyNTZfdWludDEgeDM5MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzODks
ICZ4MzkwLCB4Mzg4LCAweDAsIHgzODApOworICB1aW50MzJfdCB4MzkxOworICBmaWF0X3AyNTZf
dWludDEgeDM5MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzOTEsICZ4MzkyLCAweDAs
IHgzODMsIHgzNTkpOworICB1aW50MzJfdCB4MzkzOworICBmaWF0X3AyNTZfdWludDEgeDM5NDsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzOTMsICZ4Mzk0LCB4MzkyLCB4Mzg1LCB4MzYx
KTsKKyAgdWludDMyX3QgeDM5NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzOTY7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4Mzk1LCAmeDM5NiwgeDM5NCwgeDM4NywgeDM2Myk7CisgIHVpbnQz
Ml90IHgzOTc7CisgIGZpYXRfcDI1Nl91aW50MSB4Mzk4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDM5NywgJngzOTgsIHgzOTYsIHgzODksIHgzNjUpOworICB1aW50MzJfdCB4Mzk5Owor
ICBmaWF0X3AyNTZfdWludDEgeDQwMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzOTks
ICZ4NDAwLCB4Mzk4LCAweDAsIHgzNjcpOworICB1aW50MzJfdCB4NDAxOworICBmaWF0X3AyNTZf
dWludDEgeDQwMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0MDEsICZ4NDAyLCB4NDAw
LCAweDAsIHgzNjkpOworICB1aW50MzJfdCB4NDAzOworICBmaWF0X3AyNTZfdWludDEgeDQwNDsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0MDMsICZ4NDA0LCB4NDAyLCB4MzU5LCB4Mzcx
KTsKKyAgdWludDMyX3QgeDQwNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0MDY7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4NDA1LCAmeDQwNiwgeDQwNCwgeDM3NywgeDM3Myk7CisgIHVpbnQz
Ml90IHg0MDc7CisgIGZpYXRfcDI1Nl91aW50MSB4NDA4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDQwNywgJng0MDgsIHg0MDYsIHgzNzgsIHgzNzUpOworICB1aW50MzJfdCB4NDA5Owor
ICBmaWF0X3AyNTZfdWludDEgeDQxMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0MDks
ICZ4NDEwLCB4NDA4LCAweDAsIHgzNzYpOworICB1aW50MzJfdCB4NDExOworICB1aW50MzJfdCB4
NDEyOworICBmaWF0X3AyNTZfbXVseF91MzIoJng0MTEsICZ4NDEyLCB4NSwgKGFyZzFbN10pKTsK
KyAgdWludDMyX3QgeDQxMzsKKyAgdWludDMyX3QgeDQxNDsKKyAgZmlhdF9wMjU2X211bHhfdTMy
KCZ4NDEzLCAmeDQxNCwgeDUsIChhcmcxWzZdKSk7CisgIHVpbnQzMl90IHg0MTU7CisgIHVpbnQz
Ml90IHg0MTY7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDQxNSwgJng0MTYsIHg1LCAoYXJnMVs1
XSkpOworICB1aW50MzJfdCB4NDE3OworICB1aW50MzJfdCB4NDE4OworICBmaWF0X3AyNTZfbXVs
eF91MzIoJng0MTcsICZ4NDE4LCB4NSwgKGFyZzFbNF0pKTsKKyAgdWludDMyX3QgeDQxOTsKKyAg
dWludDMyX3QgeDQyMDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDE5LCAmeDQyMCwgeDUsIChh
cmcxWzNdKSk7CisgIHVpbnQzMl90IHg0MjE7CisgIHVpbnQzMl90IHg0MjI7CisgIGZpYXRfcDI1
Nl9tdWx4X3UzMigmeDQyMSwgJng0MjIsIHg1LCAoYXJnMVsyXSkpOworICB1aW50MzJfdCB4NDIz
OworICB1aW50MzJfdCB4NDI0OworICBmaWF0X3AyNTZfbXVseF91MzIoJng0MjMsICZ4NDI0LCB4
NSwgKGFyZzFbMV0pKTsKKyAgdWludDMyX3QgeDQyNTsKKyAgdWludDMyX3QgeDQyNjsKKyAgZmlh
dF9wMjU2X211bHhfdTMyKCZ4NDI1LCAmeDQyNiwgeDUsIChhcmcxWzBdKSk7CisgIHVpbnQzMl90
IHg0Mjc7CisgIGZpYXRfcDI1Nl91aW50MSB4NDI4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDQyNywgJng0MjgsIDB4MCwgeDQyMywgeDQyNik7CisgIHVpbnQzMl90IHg0Mjk7CisgIGZp
YXRfcDI1Nl91aW50MSB4NDMwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQyOSwgJng0
MzAsIHg0MjgsIHg0MjEsIHg0MjQpOworICB1aW50MzJfdCB4NDMxOworICBmaWF0X3AyNTZfdWlu
dDEgeDQzMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0MzEsICZ4NDMyLCB4NDMwLCB4
NDE5LCB4NDIyKTsKKyAgdWludDMyX3QgeDQzMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0MzQ7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDMzLCAmeDQzNCwgeDQzMiwgeDQxNywgeDQyMCk7
CisgIHVpbnQzMl90IHg0MzU7CisgIGZpYXRfcDI1Nl91aW50MSB4NDM2OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDQzNSwgJng0MzYsIHg0MzQsIHg0MTUsIHg0MTgpOworICB1aW50MzJf
dCB4NDM3OworICBmaWF0X3AyNTZfdWludDEgeDQzODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJng0MzcsICZ4NDM4LCB4NDM2LCB4NDEzLCB4NDE2KTsKKyAgdWludDMyX3QgeDQzOTsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHg0NDA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDM5LCAm
eDQ0MCwgeDQzOCwgeDQxMSwgeDQxNCk7CisgIHVpbnQzMl90IHg0NDE7CisgIGZpYXRfcDI1Nl91
aW50MSB4NDQyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ0MSwgJng0NDIsIHg0NDAs
IDB4MCwgeDQxMik7CisgIHVpbnQzMl90IHg0NDM7CisgIGZpYXRfcDI1Nl91aW50MSB4NDQ0Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ0MywgJng0NDQsIDB4MCwgeDQyNSwgeDM5Myk7
CisgIHVpbnQzMl90IHg0NDU7CisgIGZpYXRfcDI1Nl91aW50MSB4NDQ2OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDQ0NSwgJng0NDYsIHg0NDQsIHg0MjcsIHgzOTUpOworICB1aW50MzJf
dCB4NDQ3OworICBmaWF0X3AyNTZfdWludDEgeDQ0ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJng0NDcsICZ4NDQ4LCB4NDQ2LCB4NDI5LCB4Mzk3KTsKKyAgdWludDMyX3QgeDQ0OTsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHg0NTA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDQ5LCAm
eDQ1MCwgeDQ0OCwgeDQzMSwgeDM5OSk7CisgIHVpbnQzMl90IHg0NTE7CisgIGZpYXRfcDI1Nl91
aW50MSB4NDUyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ1MSwgJng0NTIsIHg0NTAs
IHg0MzMsIHg0MDEpOworICB1aW50MzJfdCB4NDUzOworICBmaWF0X3AyNTZfdWludDEgeDQ1NDsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NTMsICZ4NDU0LCB4NDUyLCB4NDM1LCB4NDAz
KTsKKyAgdWludDMyX3QgeDQ1NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NTY7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4NDU1LCAmeDQ1NiwgeDQ1NCwgeDQzNywgeDQwNSk7CisgIHVpbnQz
Ml90IHg0NTc7CisgIGZpYXRfcDI1Nl91aW50MSB4NDU4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDQ1NywgJng0NTgsIHg0NTYsIHg0MzksIHg0MDcpOworICB1aW50MzJfdCB4NDU5Owor
ICBmaWF0X3AyNTZfdWludDEgeDQ2MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NTks
ICZ4NDYwLCB4NDU4LCB4NDQxLCB4NDA5KTsKKyAgdWludDMyX3QgeDQ2MTsKKyAgdWludDMyX3Qg
eDQ2MjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDYxLCAmeDQ2MiwgeDQ0MywgVUlOVDMyX0Mo
MHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDYzOworICB1aW50MzJfdCB4NDY0OworICBmaWF0
X3AyNTZfbXVseF91MzIoJng0NjMsICZ4NDY0LCB4NDQzLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7
CisgIHVpbnQzMl90IHg0NjU7CisgIHVpbnQzMl90IHg0NjY7CisgIGZpYXRfcDI1Nl9tdWx4X3Uz
MigmeDQ2NSwgJng0NjYsIHg0NDMsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3Qg
eDQ2NzsKKyAgdWludDMyX3QgeDQ2ODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NDY3LCAmeDQ2
OCwgeDQ0MywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDY5OworICBmaWF0
X3AyNTZfdWludDEgeDQ3MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NjksICZ4NDcw
LCAweDAsIHg0NjUsIHg0NjgpOworICB1aW50MzJfdCB4NDcxOworICBmaWF0X3AyNTZfdWludDEg
eDQ3MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NzEsICZ4NDcyLCB4NDcwLCB4NDYz
LCB4NDY2KTsKKyAgdWludDMyX3QgeDQ3MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NzQ7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDczLCAmeDQ3NCwgeDQ3MiwgMHgwLCB4NDY0KTsKKyAg
dWludDMyX3QgeDQ3NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NzY7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4NDc1LCAmeDQ3NiwgMHgwLCB4NDY3LCB4NDQzKTsKKyAgdWludDMyX3QgeDQ3
NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0Nzg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
NDc3LCAmeDQ3OCwgeDQ3NiwgeDQ2OSwgeDQ0NSk7CisgIHVpbnQzMl90IHg0Nzk7CisgIGZpYXRf
cDI1Nl91aW50MSB4NDgwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ3OSwgJng0ODAs
IHg0NzgsIHg0NzEsIHg0NDcpOworICB1aW50MzJfdCB4NDgxOworICBmaWF0X3AyNTZfdWludDEg
eDQ4MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0ODEsICZ4NDgyLCB4NDgwLCB4NDcz
LCB4NDQ5KTsKKyAgdWludDMyX3QgeDQ4MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0ODQ7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDgzLCAmeDQ4NCwgeDQ4MiwgMHgwLCB4NDUxKTsKKyAg
dWludDMyX3QgeDQ4NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0ODY7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4NDg1LCAmeDQ4NiwgeDQ4NCwgMHgwLCB4NDUzKTsKKyAgdWludDMyX3QgeDQ4
NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0ODg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
NDg3LCAmeDQ4OCwgeDQ4NiwgeDQ0MywgeDQ1NSk7CisgIHVpbnQzMl90IHg0ODk7CisgIGZpYXRf
cDI1Nl91aW50MSB4NDkwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDQ4OSwgJng0OTAs
IHg0ODgsIHg0NjEsIHg0NTcpOworICB1aW50MzJfdCB4NDkxOworICBmaWF0X3AyNTZfdWludDEg
eDQ5MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0OTEsICZ4NDkyLCB4NDkwLCB4NDYy
LCB4NDU5KTsKKyAgdWludDMyX3QgeDQ5MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0OTQ7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NDkzLCAmeDQ5NCwgeDQ5MiwgMHgwLCB4NDYwKTsKKyAg
dWludDMyX3QgeDQ5NTsKKyAgdWludDMyX3QgeDQ5NjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4
NDk1LCAmeDQ5NiwgeDYsIChhcmcxWzddKSk7CisgIHVpbnQzMl90IHg0OTc7CisgIHVpbnQzMl90
IHg0OTg7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDQ5NywgJng0OTgsIHg2LCAoYXJnMVs2XSkp
OworICB1aW50MzJfdCB4NDk5OworICB1aW50MzJfdCB4NTAwOworICBmaWF0X3AyNTZfbXVseF91
MzIoJng0OTksICZ4NTAwLCB4NiwgKGFyZzFbNV0pKTsKKyAgdWludDMyX3QgeDUwMTsKKyAgdWlu
dDMyX3QgeDUwMjsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NTAxLCAmeDUwMiwgeDYsIChhcmcx
WzRdKSk7CisgIHVpbnQzMl90IHg1MDM7CisgIHVpbnQzMl90IHg1MDQ7CisgIGZpYXRfcDI1Nl9t
dWx4X3UzMigmeDUwMywgJng1MDQsIHg2LCAoYXJnMVszXSkpOworICB1aW50MzJfdCB4NTA1Owor
ICB1aW50MzJfdCB4NTA2OworICBmaWF0X3AyNTZfbXVseF91MzIoJng1MDUsICZ4NTA2LCB4Niwg
KGFyZzFbMl0pKTsKKyAgdWludDMyX3QgeDUwNzsKKyAgdWludDMyX3QgeDUwODsKKyAgZmlhdF9w
MjU2X211bHhfdTMyKCZ4NTA3LCAmeDUwOCwgeDYsIChhcmcxWzFdKSk7CisgIHVpbnQzMl90IHg1
MDk7CisgIHVpbnQzMl90IHg1MTA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDUwOSwgJng1MTAs
IHg2LCAoYXJnMVswXSkpOworICB1aW50MzJfdCB4NTExOworICBmaWF0X3AyNTZfdWludDEgeDUx
MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MTEsICZ4NTEyLCAweDAsIHg1MDcsIHg1
MTApOworICB1aW50MzJfdCB4NTEzOworICBmaWF0X3AyNTZfdWludDEgeDUxNDsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJng1MTMsICZ4NTE0LCB4NTEyLCB4NTA1LCB4NTA4KTsKKyAgdWlu
dDMyX3QgeDUxNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1MTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4NTE1LCAmeDUxNiwgeDUxNCwgeDUwMywgeDUwNik7CisgIHVpbnQzMl90IHg1MTc7
CisgIGZpYXRfcDI1Nl91aW50MSB4NTE4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDUx
NywgJng1MTgsIHg1MTYsIHg1MDEsIHg1MDQpOworICB1aW50MzJfdCB4NTE5OworICBmaWF0X3Ay
NTZfdWludDEgeDUyMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MTksICZ4NTIwLCB4
NTE4LCB4NDk5LCB4NTAyKTsKKyAgdWludDMyX3QgeDUyMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1
MjI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTIxLCAmeDUyMiwgeDUyMCwgeDQ5Nywg
eDUwMCk7CisgIHVpbnQzMl90IHg1MjM7CisgIGZpYXRfcDI1Nl91aW50MSB4NTI0OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDUyMywgJng1MjQsIHg1MjIsIHg0OTUsIHg0OTgpOworICB1
aW50MzJfdCB4NTI1OworICBmaWF0X3AyNTZfdWludDEgeDUyNjsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJng1MjUsICZ4NTI2LCB4NTI0LCAweDAsIHg0OTYpOworICB1aW50MzJfdCB4NTI3
OworICBmaWF0X3AyNTZfdWludDEgeDUyODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1
MjcsICZ4NTI4LCAweDAsIHg1MDksIHg0NzcpOworICB1aW50MzJfdCB4NTI5OworICBmaWF0X3Ay
NTZfdWludDEgeDUzMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MjksICZ4NTMwLCB4
NTI4LCB4NTExLCB4NDc5KTsKKyAgdWludDMyX3QgeDUzMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1
MzI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTMxLCAmeDUzMiwgeDUzMCwgeDUxMywg
eDQ4MSk7CisgIHVpbnQzMl90IHg1MzM7CisgIGZpYXRfcDI1Nl91aW50MSB4NTM0OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDUzMywgJng1MzQsIHg1MzIsIHg1MTUsIHg0ODMpOworICB1
aW50MzJfdCB4NTM1OworICBmaWF0X3AyNTZfdWludDEgeDUzNjsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJng1MzUsICZ4NTM2LCB4NTM0LCB4NTE3LCB4NDg1KTsKKyAgdWludDMyX3QgeDUz
NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1Mzg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
NTM3LCAmeDUzOCwgeDUzNiwgeDUxOSwgeDQ4Nyk7CisgIHVpbnQzMl90IHg1Mzk7CisgIGZpYXRf
cDI1Nl91aW50MSB4NTQwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDUzOSwgJng1NDAs
IHg1MzgsIHg1MjEsIHg0ODkpOworICB1aW50MzJfdCB4NTQxOworICBmaWF0X3AyNTZfdWludDEg
eDU0MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1NDEsICZ4NTQyLCB4NTQwLCB4NTIz
LCB4NDkxKTsKKyAgdWludDMyX3QgeDU0MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NDQ7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTQzLCAmeDU0NCwgeDU0MiwgeDUyNSwgeDQ5Myk7Cisg
IHVpbnQzMl90IHg1NDU7CisgIHVpbnQzMl90IHg1NDY7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigm
eDU0NSwgJng1NDYsIHg1MjcsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDU0
NzsKKyAgdWludDMyX3QgeDU0ODsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NTQ3LCAmeDU0OCwg
eDUyNywgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NTQ5OworICB1aW50MzJf
dCB4NTUwOworICBmaWF0X3AyNTZfbXVseF91MzIoJng1NDksICZ4NTUwLCB4NTI3LCBVSU5UMzJf
QygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg1NTE7CisgIHVpbnQzMl90IHg1NTI7CisgIGZp
YXRfcDI1Nl9tdWx4X3UzMigmeDU1MSwgJng1NTIsIHg1MjcsIFVJTlQzMl9DKDB4ZmZmZmZmZmYp
KTsKKyAgdWludDMyX3QgeDU1MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NTQ7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4NTUzLCAmeDU1NCwgMHgwLCB4NTQ5LCB4NTUyKTsKKyAgdWludDMy
X3QgeDU1NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NTU1LCAmeDU1NiwgeDU1NCwgeDU0NywgeDU1MCk7CisgIHVpbnQzMl90IHg1NTc7Cisg
IGZpYXRfcDI1Nl91aW50MSB4NTU4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU1Nywg
Jng1NTgsIHg1NTYsIDB4MCwgeDU0OCk7CisgIHVpbnQzMl90IHg1NTk7CisgIGZpYXRfcDI1Nl91
aW50MSB4NTYwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU1OSwgJng1NjAsIDB4MCwg
eDU1MSwgeDUyNyk7CisgIHVpbnQzMl90IHg1NjE7CisgIGZpYXRfcDI1Nl91aW50MSB4NTYyOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU2MSwgJng1NjIsIHg1NjAsIHg1NTMsIHg1Mjkp
OworICB1aW50MzJfdCB4NTYzOworICBmaWF0X3AyNTZfdWludDEgeDU2NDsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJng1NjMsICZ4NTY0LCB4NTYyLCB4NTU1LCB4NTMxKTsKKyAgdWludDMy
X3QgeDU2NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NjY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NTY1LCAmeDU2NiwgeDU2NCwgeDU1NywgeDUzMyk7CisgIHVpbnQzMl90IHg1Njc7Cisg
IGZpYXRfcDI1Nl91aW50MSB4NTY4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU2Nywg
Jng1NjgsIHg1NjYsIDB4MCwgeDUzNSk7CisgIHVpbnQzMl90IHg1Njk7CisgIGZpYXRfcDI1Nl91
aW50MSB4NTcwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU2OSwgJng1NzAsIHg1Njgs
IDB4MCwgeDUzNyk7CisgIHVpbnQzMl90IHg1NzE7CisgIGZpYXRfcDI1Nl91aW50MSB4NTcyOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU3MSwgJng1NzIsIHg1NzAsIHg1MjcsIHg1Mzkp
OworICB1aW50MzJfdCB4NTczOworICBmaWF0X3AyNTZfdWludDEgeDU3NDsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJng1NzMsICZ4NTc0LCB4NTcyLCB4NTQ1LCB4NTQxKTsKKyAgdWludDMy
X3QgeDU3NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NzY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NTc1LCAmeDU3NiwgeDU3NCwgeDU0NiwgeDU0Myk7CisgIHVpbnQzMl90IHg1Nzc7Cisg
IGZpYXRfcDI1Nl91aW50MSB4NTc4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU3Nywg
Jng1NzgsIHg1NzYsIDB4MCwgeDU0NCk7CisgIHVpbnQzMl90IHg1Nzk7CisgIHVpbnQzMl90IHg1
ODA7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDU3OSwgJng1ODAsIHg3LCAoYXJnMVs3XSkpOwor
ICB1aW50MzJfdCB4NTgxOworICB1aW50MzJfdCB4NTgyOworICBmaWF0X3AyNTZfbXVseF91MzIo
Jng1ODEsICZ4NTgyLCB4NywgKGFyZzFbNl0pKTsKKyAgdWludDMyX3QgeDU4MzsKKyAgdWludDMy
X3QgeDU4NDsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4NTgzLCAmeDU4NCwgeDcsIChhcmcxWzVd
KSk7CisgIHVpbnQzMl90IHg1ODU7CisgIHVpbnQzMl90IHg1ODY7CisgIGZpYXRfcDI1Nl9tdWx4
X3UzMigmeDU4NSwgJng1ODYsIHg3LCAoYXJnMVs0XSkpOworICB1aW50MzJfdCB4NTg3OworICB1
aW50MzJfdCB4NTg4OworICBmaWF0X3AyNTZfbXVseF91MzIoJng1ODcsICZ4NTg4LCB4NywgKGFy
ZzFbM10pKTsKKyAgdWludDMyX3QgeDU4OTsKKyAgdWludDMyX3QgeDU5MDsKKyAgZmlhdF9wMjU2
X211bHhfdTMyKCZ4NTg5LCAmeDU5MCwgeDcsIChhcmcxWzJdKSk7CisgIHVpbnQzMl90IHg1OTE7
CisgIHVpbnQzMl90IHg1OTI7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDU5MSwgJng1OTIsIHg3
LCAoYXJnMVsxXSkpOworICB1aW50MzJfdCB4NTkzOworICB1aW50MzJfdCB4NTk0OworICBmaWF0
X3AyNTZfbXVseF91MzIoJng1OTMsICZ4NTk0LCB4NywgKGFyZzFbMF0pKTsKKyAgdWludDMyX3Qg
eDU5NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1OTY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4NTk1LCAmeDU5NiwgMHgwLCB4NTkxLCB4NTk0KTsKKyAgdWludDMyX3QgeDU5NzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg1OTg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTk3LCAmeDU5
OCwgeDU5NiwgeDU4OSwgeDU5Mik7CisgIHVpbnQzMl90IHg1OTk7CisgIGZpYXRfcDI1Nl91aW50
MSB4NjAwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU5OSwgJng2MDAsIHg1OTgsIHg1
ODcsIHg1OTApOworICB1aW50MzJfdCB4NjAxOworICBmaWF0X3AyNTZfdWludDEgeDYwMjsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2MDEsICZ4NjAyLCB4NjAwLCB4NTg1LCB4NTg4KTsK
KyAgdWludDMyX3QgeDYwMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MDQ7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4NjAzLCAmeDYwNCwgeDYwMiwgeDU4MywgeDU4Nik7CisgIHVpbnQzMl90
IHg2MDU7CisgIGZpYXRfcDI1Nl91aW50MSB4NjA2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDYwNSwgJng2MDYsIHg2MDQsIHg1ODEsIHg1ODQpOworICB1aW50MzJfdCB4NjA3OworICBm
aWF0X3AyNTZfdWludDEgeDYwODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2MDcsICZ4
NjA4LCB4NjA2LCB4NTc5LCB4NTgyKTsKKyAgdWludDMyX3QgeDYwOTsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHg2MTA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjA5LCAmeDYxMCwgeDYwOCwg
MHgwLCB4NTgwKTsKKyAgdWludDMyX3QgeDYxMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MTI7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjExLCAmeDYxMiwgMHgwLCB4NTkzLCB4NTYxKTsK
KyAgdWludDMyX3QgeDYxMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MTQ7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4NjEzLCAmeDYxNCwgeDYxMiwgeDU5NSwgeDU2Myk7CisgIHVpbnQzMl90
IHg2MTU7CisgIGZpYXRfcDI1Nl91aW50MSB4NjE2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDYxNSwgJng2MTYsIHg2MTQsIHg1OTcsIHg1NjUpOworICB1aW50MzJfdCB4NjE3OworICBm
aWF0X3AyNTZfdWludDEgeDYxODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2MTcsICZ4
NjE4LCB4NjE2LCB4NTk5LCB4NTY3KTsKKyAgdWludDMyX3QgeDYxOTsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHg2MjA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjE5LCAmeDYyMCwgeDYxOCwg
eDYwMSwgeDU2OSk7CisgIHVpbnQzMl90IHg2MjE7CisgIGZpYXRfcDI1Nl91aW50MSB4NjIyOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYyMSwgJng2MjIsIHg2MjAsIHg2MDMsIHg1NzEp
OworICB1aW50MzJfdCB4NjIzOworICBmaWF0X3AyNTZfdWludDEgeDYyNDsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJng2MjMsICZ4NjI0LCB4NjIyLCB4NjA1LCB4NTczKTsKKyAgdWludDMy
X3QgeDYyNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MjY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4NjI1LCAmeDYyNiwgeDYyNCwgeDYwNywgeDU3NSk7CisgIHVpbnQzMl90IHg2Mjc7Cisg
IGZpYXRfcDI1Nl91aW50MSB4NjI4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYyNywg
Jng2MjgsIHg2MjYsIHg2MDksIHg1NzcpOworICB1aW50MzJfdCB4NjI5OworICB1aW50MzJfdCB4
NjMwOworICBmaWF0X3AyNTZfbXVseF91MzIoJng2MjksICZ4NjMwLCB4NjExLCBVSU5UMzJfQygw
eGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg2MzE7CisgIHVpbnQzMl90IHg2MzI7CisgIGZpYXRf
cDI1Nl9tdWx4X3UzMigmeDYzMSwgJng2MzIsIHg2MTEsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsK
KyAgdWludDMyX3QgeDYzMzsKKyAgdWludDMyX3QgeDYzNDsKKyAgZmlhdF9wMjU2X211bHhfdTMy
KCZ4NjMzLCAmeDYzNCwgeDYxMSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4
NjM1OworICB1aW50MzJfdCB4NjM2OworICBmaWF0X3AyNTZfbXVseF91MzIoJng2MzUsICZ4NjM2
LCB4NjExLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg2Mzc7CisgIGZpYXRf
cDI1Nl91aW50MSB4NjM4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYzNywgJng2Mzgs
IDB4MCwgeDYzMywgeDYzNik7CisgIHVpbnQzMl90IHg2Mzk7CisgIGZpYXRfcDI1Nl91aW50MSB4
NjQwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDYzOSwgJng2NDAsIHg2MzgsIHg2MzEs
IHg2MzQpOworICB1aW50MzJfdCB4NjQxOworICBmaWF0X3AyNTZfdWludDEgeDY0MjsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NDEsICZ4NjQyLCB4NjQwLCAweDAsIHg2MzIpOworICB1
aW50MzJfdCB4NjQzOworICBmaWF0X3AyNTZfdWludDEgeDY0NDsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJng2NDMsICZ4NjQ0LCAweDAsIHg2MzUsIHg2MTEpOworICB1aW50MzJfdCB4NjQ1
OworICBmaWF0X3AyNTZfdWludDEgeDY0NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2
NDUsICZ4NjQ2LCB4NjQ0LCB4NjM3LCB4NjEzKTsKKyAgdWludDMyX3QgeDY0NzsKKyAgZmlhdF9w
MjU2X3VpbnQxIHg2NDg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjQ3LCAmeDY0OCwg
eDY0NiwgeDYzOSwgeDYxNSk7CisgIHVpbnQzMl90IHg2NDk7CisgIGZpYXRfcDI1Nl91aW50MSB4
NjUwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDY0OSwgJng2NTAsIHg2NDgsIHg2NDEs
IHg2MTcpOworICB1aW50MzJfdCB4NjUxOworICBmaWF0X3AyNTZfdWludDEgeDY1MjsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NTEsICZ4NjUyLCB4NjUwLCAweDAsIHg2MTkpOworICB1
aW50MzJfdCB4NjUzOworICBmaWF0X3AyNTZfdWludDEgeDY1NDsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJng2NTMsICZ4NjU0LCB4NjUyLCAweDAsIHg2MjEpOworICB1aW50MzJfdCB4NjU1
OworICBmaWF0X3AyNTZfdWludDEgeDY1NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2
NTUsICZ4NjU2LCB4NjU0LCB4NjExLCB4NjIzKTsKKyAgdWludDMyX3QgeDY1NzsKKyAgZmlhdF9w
MjU2X3VpbnQxIHg2NTg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NjU3LCAmeDY1OCwg
eDY1NiwgeDYyOSwgeDYyNSk7CisgIHVpbnQzMl90IHg2NTk7CisgIGZpYXRfcDI1Nl91aW50MSB4
NjYwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDY1OSwgJng2NjAsIHg2NTgsIHg2MzAs
IHg2MjcpOworICB1aW50MzJfdCB4NjYxOworICBmaWF0X3AyNTZfdWludDEgeDY2MjsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NjEsICZ4NjYyLCB4NjYwLCAweDAsIHg2MjgpOworICB1
aW50MzJfdCB4NjYzOworICBmaWF0X3AyNTZfdWludDEgeDY2NDsKKyAgZmlhdF9wMjU2X3N1YmJv
cnJvd3hfdTMyKCZ4NjYzLCAmeDY2NCwgMHgwLCB4NjQ1LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7
CisgIHVpbnQzMl90IHg2NjU7CisgIGZpYXRfcDI1Nl91aW50MSB4NjY2OworICBmaWF0X3AyNTZf
c3ViYm9ycm93eF91MzIoJng2NjUsICZ4NjY2LCB4NjY0LCB4NjQ3LCBVSU5UMzJfQygweGZmZmZm
ZmZmKSk7CisgIHVpbnQzMl90IHg2Njc7CisgIGZpYXRfcDI1Nl91aW50MSB4NjY4OworICBmaWF0
X3AyNTZfc3ViYm9ycm93eF91MzIoJng2NjcsICZ4NjY4LCB4NjY2LCB4NjQ5LCBVSU5UMzJfQygw
eGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg2Njk7CisgIGZpYXRfcDI1Nl91aW50MSB4NjcwOwor
ICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJng2NjksICZ4NjcwLCB4NjY4LCB4NjUxLCAweDAp
OworICB1aW50MzJfdCB4NjcxOworICBmaWF0X3AyNTZfdWludDEgeDY3MjsKKyAgZmlhdF9wMjU2
X3N1YmJvcnJvd3hfdTMyKCZ4NjcxLCAmeDY3MiwgeDY3MCwgeDY1MywgMHgwKTsKKyAgdWludDMy
X3QgeDY3MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2NzQ7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4
X3UzMigmeDY3MywgJng2NzQsIHg2NzIsIHg2NTUsIDB4MCk7CisgIHVpbnQzMl90IHg2NzU7Cisg
IGZpYXRfcDI1Nl91aW50MSB4Njc2OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJng2NzUs
ICZ4Njc2LCB4Njc0LCB4NjU3LCAweDEpOworICB1aW50MzJfdCB4Njc3OworICBmaWF0X3AyNTZf
dWludDEgeDY3ODsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4Njc3LCAmeDY3OCwgeDY3
NiwgeDY1OSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4Njc5OworICBmaWF0
X3AyNTZfdWludDEgeDY4MDsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4Njc5LCAmeDY4
MCwgeDY3OCwgeDY2MSwgMHgwKTsKKyAgdWludDMyX3QgeDY4MTsKKyAgZmlhdF9wMjU2X2Ntb3Z6
bnpfdTMyKCZ4NjgxLCB4NjgwLCB4NjYzLCB4NjQ1KTsKKyAgdWludDMyX3QgeDY4MjsKKyAgZmlh
dF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4NjgyLCB4NjgwLCB4NjY1LCB4NjQ3KTsKKyAgdWludDMyX3Qg
eDY4MzsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4NjgzLCB4NjgwLCB4NjY3LCB4NjQ5KTsK
KyAgdWludDMyX3QgeDY4NDsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4Njg0LCB4NjgwLCB4
NjY5LCB4NjUxKTsKKyAgdWludDMyX3QgeDY4NTsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4
Njg1LCB4NjgwLCB4NjcxLCB4NjUzKTsKKyAgdWludDMyX3QgeDY4NjsKKyAgZmlhdF9wMjU2X2Nt
b3Z6bnpfdTMyKCZ4Njg2LCB4NjgwLCB4NjczLCB4NjU1KTsKKyAgdWludDMyX3QgeDY4NzsKKyAg
ZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4Njg3LCB4NjgwLCB4Njc1LCB4NjU3KTsKKyAgdWludDMy
X3QgeDY4ODsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4Njg4LCB4NjgwLCB4Njc3LCB4NjU5
KTsKKyAgb3V0MVswXSA9IHg2ODE7CisgIG91dDFbMV0gPSB4NjgyOworICBvdXQxWzJdID0geDY4
MzsKKyAgb3V0MVszXSA9IHg2ODQ7CisgIG91dDFbNF0gPSB4Njg1OworICBvdXQxWzVdID0geDY4
NjsKKyAgb3V0MVs2XSA9IHg2ODc7CisgIG91dDFbN10gPSB4Njg4OworfQorCisvKgorICogSW5w
dXQgQm91bmRzOgorICogICBhcmcxOiBbWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZm
ZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+
PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwg
WzB4MCB+PiAweGZmZmZmZmZmXV0KKyAqICAgYXJnMjogW1sweDAgfj4gMHhmZmZmZmZmZl0sIFsw
eDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZm
Zl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhm
ZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBv
dXQxOiBbWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAw
eGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4
MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZm
XV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2X2FkZCh1aW50MzJfdCBvdXQxWzhdLCBjb25z
dCB1aW50MzJfdCBhcmcxWzhdLCBjb25zdCB1aW50MzJfdCBhcmcyWzhdKSB7CisgIHVpbnQzMl90
IHgxOworICBmaWF0X3AyNTZfdWludDEgeDI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MSwgJngyLCAweDAsIChhcmcyWzBdKSwgKGFyZzFbMF0pKTsKKyAgdWludDMyX3QgeDM7CisgIGZp
YXRfcDI1Nl91aW50MSB4NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzLCAmeDQsIHgy
LCAoYXJnMlsxXSksIChhcmcxWzFdKSk7CisgIHVpbnQzMl90IHg1OworICBmaWF0X3AyNTZfdWlu
dDEgeDY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NSwgJng2LCB4NCwgKGFyZzJbMl0p
LCAoYXJnMVsyXSkpOworICB1aW50MzJfdCB4NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg4OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDcsICZ4OCwgeDYsIChhcmcyWzNdKSwgKGFyZzFbM10p
KTsKKyAgdWludDMyX3QgeDk7CisgIGZpYXRfcDI1Nl91aW50MSB4MTA7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4OSwgJngxMCwgeDgsIChhcmcyWzRdKSwgKGFyZzFbNF0pKTsKKyAgdWlu
dDMyX3QgeDExOworICBmaWF0X3AyNTZfdWludDEgeDEyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDExLCAmeDEyLCB4MTAsIChhcmcyWzVdKSwgKGFyZzFbNV0pKTsKKyAgdWludDMyX3Qg
eDEzOworICBmaWF0X3AyNTZfdWludDEgeDE0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDEzLCAmeDE0LCB4MTIsIChhcmcyWzZdKSwgKGFyZzFbNl0pKTsKKyAgdWludDMyX3QgeDE1Owor
ICBmaWF0X3AyNTZfdWludDEgeDE2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE1LCAm
eDE2LCB4MTQsIChhcmcyWzddKSwgKGFyZzFbN10pKTsKKyAgdWludDMyX3QgeDE3OworICBmaWF0
X3AyNTZfdWludDEgeDE4OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngxNywgJngxOCwg
MHgwLCB4MSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MTk7CisgIGZpYXRf
cDI1Nl91aW50MSB4MjA7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3UzMigmeDE5LCAmeDIwLCB4
MTgsIHgzLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgyMTsKKyAgZmlhdF9w
MjU2X3VpbnQxIHgyMjsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4MjEsICZ4MjIsIHgy
MCwgeDUsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDIzOworICBmaWF0X3Ay
NTZfdWludDEgeDI0OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngyMywgJngyNCwgeDIy
LCB4NywgMHgwKTsKKyAgdWludDMyX3QgeDI1OworICBmaWF0X3AyNTZfdWludDEgeDI2OworICBm
aWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngyNSwgJngyNiwgeDI0LCB4OSwgMHgwKTsKKyAgdWlu
dDMyX3QgeDI3OworICBmaWF0X3AyNTZfdWludDEgeDI4OworICBmaWF0X3AyNTZfc3ViYm9ycm93
eF91MzIoJngyNywgJngyOCwgeDI2LCB4MTEsIDB4MCk7CisgIHVpbnQzMl90IHgyOTsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgzMDsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4MjksICZ4MzAs
IHgyOCwgeDEzLCAweDEpOworICB1aW50MzJfdCB4MzE7CisgIGZpYXRfcDI1Nl91aW50MSB4MzI7
CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3UzMigmeDMxLCAmeDMyLCB4MzAsIHgxNSwgVUlOVDMy
X0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MzM7CisgIGZpYXRfcDI1Nl91aW50MSB4MzQ7
CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3UzMigmeDMzLCAmeDM0LCB4MzIsIHgxNiwgMHgwKTsK
KyAgdWludDMyX3QgeDM1OworICBmaWF0X3AyNTZfY21vdnpuel91MzIoJngzNSwgeDM0LCB4MTcs
IHgxKTsKKyAgdWludDMyX3QgeDM2OworICBmaWF0X3AyNTZfY21vdnpuel91MzIoJngzNiwgeDM0
LCB4MTksIHgzKTsKKyAgdWludDMyX3QgeDM3OworICBmaWF0X3AyNTZfY21vdnpuel91MzIoJngz
NywgeDM0LCB4MjEsIHg1KTsKKyAgdWludDMyX3QgeDM4OworICBmaWF0X3AyNTZfY21vdnpuel91
MzIoJngzOCwgeDM0LCB4MjMsIHg3KTsKKyAgdWludDMyX3QgeDM5OworICBmaWF0X3AyNTZfY21v
dnpuel91MzIoJngzOSwgeDM0LCB4MjUsIHg5KTsKKyAgdWludDMyX3QgeDQwOworICBmaWF0X3Ay
NTZfY21vdnpuel91MzIoJng0MCwgeDM0LCB4MjcsIHgxMSk7CisgIHVpbnQzMl90IHg0MTsKKyAg
ZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4NDEsIHgzNCwgeDI5LCB4MTMpOworICB1aW50MzJfdCB4
NDI7CisgIGZpYXRfcDI1Nl9jbW92em56X3UzMigmeDQyLCB4MzQsIHgzMSwgeDE1KTsKKyAgb3V0
MVswXSA9IHgzNTsKKyAgb3V0MVsxXSA9IHgzNjsKKyAgb3V0MVsyXSA9IHgzNzsKKyAgb3V0MVsz
XSA9IHgzODsKKyAgb3V0MVs0XSA9IHgzOTsKKyAgb3V0MVs1XSA9IHg0MDsKKyAgb3V0MVs2XSA9
IHg0MTsKKyAgb3V0MVs3XSA9IHg0MjsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAg
YXJnMTogW1sweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4g
MHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsw
eDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZm
Zl1dCisgKiAgIGFyZzI6IFtbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZd
LCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZm
ZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+
IDB4ZmZmZmZmZmZdXQorICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAgfj4gMHhm
ZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAg
fj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0s
IFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl1dCisgKi8KK3N0YXRpYyB2
b2lkIGZpYXRfcDI1Nl9zdWIodWludDMyX3Qgb3V0MVs4XSwgY29uc3QgdWludDMyX3QgYXJnMVs4
XSwgY29uc3QgdWludDMyX3QgYXJnMls4XSkgeworICB1aW50MzJfdCB4MTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgyOworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngxLCAmeDIsIDB4MCwgKGFy
ZzFbMF0pLCAoYXJnMlswXSkpOworICB1aW50MzJfdCB4MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0
OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngzLCAmeDQsIHgyLCAoYXJnMVsxXSksIChh
cmcyWzFdKSk7CisgIHVpbnQzMl90IHg1OworICBmaWF0X3AyNTZfdWludDEgeDY7CisgIGZpYXRf
cDI1Nl9zdWJib3Jyb3d4X3UzMigmeDUsICZ4NiwgeDQsIChhcmcxWzJdKSwgKGFyZzJbMl0pKTsK
KyAgdWludDMyX3QgeDc7CisgIGZpYXRfcDI1Nl91aW50MSB4ODsKKyAgZmlhdF9wMjU2X3N1YmJv
cnJvd3hfdTMyKCZ4NywgJng4LCB4NiwgKGFyZzFbM10pLCAoYXJnMlszXSkpOworICB1aW50MzJf
dCB4OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMDsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMy
KCZ4OSwgJngxMCwgeDgsIChhcmcxWzRdKSwgKGFyZzJbNF0pKTsKKyAgdWludDMyX3QgeDExOwor
ICBmaWF0X3AyNTZfdWludDEgeDEyOworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngxMSwg
JngxMiwgeDEwLCAoYXJnMVs1XSksIChhcmcyWzVdKSk7CisgIHVpbnQzMl90IHgxMzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgxNDsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4MTMsICZ4MTQs
IHgxMiwgKGFyZzFbNl0pLCAoYXJnMls2XSkpOworICB1aW50MzJfdCB4MTU7CisgIGZpYXRfcDI1
Nl91aW50MSB4MTY7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3UzMigmeDE1LCAmeDE2LCB4MTQs
IChhcmcxWzddKSwgKGFyZzJbN10pKTsKKyAgdWludDMyX3QgeDE3OworICBmaWF0X3AyNTZfY21v
dnpuel91MzIoJngxNywgeDE2LCAweDAsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMy
X3QgeDE4OworICBmaWF0X3AyNTZfdWludDEgeDE5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDE4LCAmeDE5LCAweDAsICh4MTcgJiBVSU5UMzJfQygweGZmZmZmZmZmKSksIHgxKTsKKyAg
dWludDMyX3QgeDIwOworICBmaWF0X3AyNTZfdWludDEgeDIxOworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDIwLCAmeDIxLCB4MTksICh4MTcgJiBVSU5UMzJfQygweGZmZmZmZmZmKSksIHgz
KTsKKyAgdWludDMyX3QgeDIyOworICBmaWF0X3AyNTZfdWludDEgeDIzOworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDIyLCAmeDIzLCB4MjEsICh4MTcgJiBVSU5UMzJfQygweGZmZmZmZmZm
KSksIHg1KTsKKyAgdWludDMyX3QgeDI0OworICBmaWF0X3AyNTZfdWludDEgeDI1OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI0LCAmeDI1LCB4MjMsIDB4MCwgeDcpOworICB1aW50MzJf
dCB4MjY7CisgIGZpYXRfcDI1Nl91aW50MSB4Mjc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4MjYsICZ4MjcsIHgyNSwgMHgwLCB4OSk7CisgIHVpbnQzMl90IHgyODsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgyOTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyOCwgJngyOSwgeDI3LCAw
eDAsIHgxMSk7CisgIHVpbnQzMl90IHgzMDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMTsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMCwgJngzMSwgeDI5LCAoZmlhdF9wMjU2X3VpbnQxKSh4
MTcgJiAweDEpLCB4MTMpOworICB1aW50MzJfdCB4MzI7CisgIGZpYXRfcDI1Nl91aW50MSB4MzM7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MzIsICZ4MzMsIHgzMSwgKHgxNyAmIFVJTlQz
Ml9DKDB4ZmZmZmZmZmYpKSwgeDE1KTsKKyAgb3V0MVswXSA9IHgxODsKKyAgb3V0MVsxXSA9IHgy
MDsKKyAgb3V0MVsyXSA9IHgyMjsKKyAgb3V0MVszXSA9IHgyNDsKKyAgb3V0MVs0XSA9IHgyNjsK
KyAgb3V0MVs1XSA9IHgyODsKKyAgb3V0MVs2XSA9IHgzMDsKKyAgb3V0MVs3XSA9IHgzMjsKK30K
KworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHhmZmZmZmZmZl0s
IFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZm
ZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4g
MHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl1dCisgKiBPdXRwdXQgQm91bmRzOgorICog
ICBvdXQxOiBbWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+
PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwg
WzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZm
ZmZmXV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2X29wcCh1aW50MzJfdCBvdXQxWzhdLCBj
b25zdCB1aW50MzJfdCBhcmcxWzhdKSB7CisgIHVpbnQzMl90IHgxOworICBmaWF0X3AyNTZfdWlu
dDEgeDI7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3UzMigmeDEsICZ4MiwgMHgwLCAweDAsIChh
cmcxWzBdKSk7CisgIHVpbnQzMl90IHgzOworICBmaWF0X3AyNTZfdWludDEgeDQ7CisgIGZpYXRf
cDI1Nl9zdWJib3Jyb3d4X3UzMigmeDMsICZ4NCwgeDIsIDB4MCwgKGFyZzFbMV0pKTsKKyAgdWlu
dDMyX3QgeDU7CisgIGZpYXRfcDI1Nl91aW50MSB4NjsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hf
dTMyKCZ4NSwgJng2LCB4NCwgMHgwLCAoYXJnMVsyXSkpOworICB1aW50MzJfdCB4NzsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg4OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJng3LCAmeDgsIHg2
LCAweDAsIChhcmcxWzNdKSk7CisgIHVpbnQzMl90IHg5OworICBmaWF0X3AyNTZfdWludDEgeDEw
OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJng5LCAmeDEwLCB4OCwgMHgwLCAoYXJnMVs0
XSkpOworICB1aW50MzJfdCB4MTE7CisgIGZpYXRfcDI1Nl91aW50MSB4MTI7CisgIGZpYXRfcDI1
Nl9zdWJib3Jyb3d4X3UzMigmeDExLCAmeDEyLCB4MTAsIDB4MCwgKGFyZzFbNV0pKTsKKyAgdWlu
dDMyX3QgeDEzOworICBmaWF0X3AyNTZfdWludDEgeDE0OworICBmaWF0X3AyNTZfc3ViYm9ycm93
eF91MzIoJngxMywgJngxNCwgeDEyLCAweDAsIChhcmcxWzZdKSk7CisgIHVpbnQzMl90IHgxNTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgxNjsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4MTUs
ICZ4MTYsIHgxNCwgMHgwLCAoYXJnMVs3XSkpOworICB1aW50MzJfdCB4MTc7CisgIGZpYXRfcDI1
Nl9jbW92em56X3UzMigmeDE3LCB4MTYsIDB4MCwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1
aW50MzJfdCB4MTg7CisgIGZpYXRfcDI1Nl91aW50MSB4MTk7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4MTgsICZ4MTksIDB4MCwgKHgxNyAmIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKSwgeDEp
OworICB1aW50MzJfdCB4MjA7CisgIGZpYXRfcDI1Nl91aW50MSB4MjE7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4MjAsICZ4MjEsIHgxOSwgKHgxNyAmIFVJTlQzMl9DKDB4ZmZmZmZmZmYp
KSwgeDMpOworICB1aW50MzJfdCB4MjI7CisgIGZpYXRfcDI1Nl91aW50MSB4MjM7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjIsICZ4MjMsIHgyMSwgKHgxNyAmIFVJTlQzMl9DKDB4ZmZm
ZmZmZmYpKSwgeDUpOworICB1aW50MzJfdCB4MjQ7CisgIGZpYXRfcDI1Nl91aW50MSB4MjU7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MjQsICZ4MjUsIHgyMywgMHgwLCB4Nyk7CisgIHVp
bnQzMl90IHgyNjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngyNiwgJngyNywgeDI1LCAweDAsIHg5KTsKKyAgdWludDMyX3QgeDI4OworICBmaWF0
X3AyNTZfdWludDEgeDI5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI4LCAmeDI5LCB4
MjcsIDB4MCwgeDExKTsKKyAgdWludDMyX3QgeDMwOworICBmaWF0X3AyNTZfdWludDEgeDMxOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMwLCAmeDMxLCB4MjksIChmaWF0X3AyNTZfdWlu
dDEpKHgxNyAmIDB4MSksIHgxMyk7CisgIHVpbnQzMl90IHgzMjsKKyAgZmlhdF9wMjU2X3VpbnQx
IHgzMzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMiwgJngzMywgeDMxLCAoeDE3ICYg
VUlOVDMyX0MoMHhmZmZmZmZmZikpLCB4MTUpOworICBvdXQxWzBdID0geDE4OworICBvdXQxWzFd
ID0geDIwOworICBvdXQxWzJdID0geDIyOworICBvdXQxWzNdID0geDI0OworICBvdXQxWzRdID0g
eDI2OworICBvdXQxWzVdID0geDI4OworICBvdXQxWzZdID0geDMwOworICBvdXQxWzddID0geDMy
OworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcxOiBbWzB4MCB+PiAweGZmZmZm
ZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAw
eGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4
MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXV0KKyAqIE91dHB1dCBCb3VuZHM6
CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBb
MHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZm
ZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZdLCBbMHgwIH4+IDB4
ZmZmZmZmZmZdXQorICovCitzdGF0aWMgdm9pZCBmaWF0X3AyNTZfZnJvbV9tb250Z29tZXJ5KHVp
bnQzMl90IG91dDFbOF0sIGNvbnN0IHVpbnQzMl90IGFyZzFbOF0pIHsKKyAgdWludDMyX3QgeDEg
PSAoYXJnMVswXSk7CisgIHVpbnQzMl90IHgyOworICB1aW50MzJfdCB4MzsKKyAgZmlhdF9wMjU2
X211bHhfdTMyKCZ4MiwgJngzLCB4MSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJf
dCB4NDsKKyAgdWludDMyX3QgeDU7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDQsICZ4NSwgeDEs
IFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDY7CisgIHVpbnQzMl90IHg3Owor
ICBmaWF0X3AyNTZfbXVseF91MzIoJng2LCAmeDcsIHgxLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7
CisgIHVpbnQzMl90IHg4OworICB1aW50MzJfdCB4OTsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4
OCwgJng5LCB4MSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MTA7CisgIGZp
YXRfcDI1Nl91aW50MSB4MTE7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTAsICZ4MTEs
IDB4MCwgeDYsIHg5KTsKKyAgdWludDMyX3QgeDEyOworICBmaWF0X3AyNTZfdWludDEgeDEzOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEyLCAmeDEzLCB4MTEsIHg0LCB4Nyk7CisgIHVp
bnQzMl90IHgxNDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJngxNCwgJngxNSwgMHgwLCB4OCwgeDEpOworICB1aW50MzJfdCB4MTY7CisgIGZpYXRf
cDI1Nl91aW50MSB4MTc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTYsICZ4MTcsIHgx
NSwgeDEwLCAweDApOworICB1aW50MzJfdCB4MTg7CisgIGZpYXRfcDI1Nl91aW50MSB4MTk7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTgsICZ4MTksIHgxNywgeDEyLCAweDApOworICB1
aW50MzJfdCB4MjA7CisgIGZpYXRfcDI1Nl91aW50MSB4MjE7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4MjAsICZ4MjEsIHgxMywgMHgwLCB4NSk7CisgIHVpbnQzMl90IHgyMjsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgyMzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMiwgJngyMywg
eDE5LCB4MjAsIDB4MCk7CisgIHVpbnQzMl90IHgyNDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNTsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNCwgJngyNSwgMHgwLCAoYXJnMVsxXSksIHgx
Nik7CisgIHVpbnQzMl90IHgyNjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNzsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJngyNiwgJngyNywgeDI1LCAweDAsIHgxOCk7CisgIHVpbnQzMl90IHgy
ODsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyOTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngy
OCwgJngyOSwgeDI3LCAweDAsIHgyMik7CisgIHVpbnQzMl90IHgzMDsKKyAgdWludDMyX3QgeDMx
OworICBmaWF0X3AyNTZfbXVseF91MzIoJngzMCwgJngzMSwgeDI0LCBVSU5UMzJfQygweGZmZmZm
ZmZmKSk7CisgIHVpbnQzMl90IHgzMjsKKyAgdWludDMyX3QgeDMzOworICBmaWF0X3AyNTZfbXVs
eF91MzIoJngzMiwgJngzMywgeDI0LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90
IHgzNDsKKyAgdWludDMyX3QgeDM1OworICBmaWF0X3AyNTZfbXVseF91MzIoJngzNCwgJngzNSwg
eDI0LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzNjsKKyAgdWludDMyX3Qg
eDM3OworICBmaWF0X3AyNTZfbXVseF91MzIoJngzNiwgJngzNywgeDI0LCBVSU5UMzJfQygweGZm
ZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzODsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzOTsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzOCwgJngzOSwgMHgwLCB4MzQsIHgzNyk7CisgIHVpbnQz
Ml90IHg0MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0MTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJng0MCwgJng0MSwgeDM5LCB4MzIsIHgzNSk7CisgIHVpbnQzMl90IHg0MjsKKyAgZmlhdF9w
MjU2X3VpbnQxIHg0MzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0MiwgJng0MywgMHgw
LCB4MzYsIHgyNCk7CisgIHVpbnQzMl90IHg0NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NTsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0NCwgJng0NSwgeDQzLCB4MzgsIHgyNik7CisgIHVp
bnQzMl90IHg0NjsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0NzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJng0NiwgJng0NywgeDQ1LCB4NDAsIHgyOCk7CisgIHVpbnQzMl90IHg0ODsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg0OTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng0OCwgJng0OSwg
eDIzLCAweDAsIDB4MCk7CisgIHVpbnQzMl90IHg1MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1MTsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng1MCwgJng1MSwgeDI5LCAweDAsIChmaWF0X3Ay
NTZfdWludDEpeDQ4KTsKKyAgdWludDMyX3QgeDUyOworICBmaWF0X3AyNTZfdWludDEgeDUzOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDUyLCAmeDUzLCB4NDEsIDB4MCwgeDMzKTsKKyAg
dWludDMyX3QgeDU0OworICBmaWF0X3AyNTZfdWludDEgeDU1OworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDU0LCAmeDU1LCB4NDcsIHg1MiwgeDUwKTsKKyAgdWludDMyX3QgeDU2OworICBm
aWF0X3AyNTZfdWludDEgeDU3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDU2LCAmeDU3
LCAweDAsIHgyNCwgeDIpOworICB1aW50MzJfdCB4NTg7CisgIGZpYXRfcDI1Nl91aW50MSB4NTk7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4NTgsICZ4NTksIHg1NywgeDMwLCB4Myk7Cisg
IHVpbnQzMl90IHg2MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MTsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJng2MCwgJng2MSwgMHgwLCAoYXJnMVsyXSksIHg0NCk7CisgIHVpbnQzMl90IHg2
MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2
MiwgJng2MywgeDYxLCAweDAsIHg0Nik7CisgIHVpbnQzMl90IHg2NDsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHg2NTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng2NCwgJng2NSwgeDYzLCAweDAs
IHg1NCk7CisgIHVpbnQzMl90IHg2NjsKKyAgdWludDMyX3QgeDY3OworICBmaWF0X3AyNTZfbXVs
eF91MzIoJng2NiwgJng2NywgeDYwLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90
IHg2ODsKKyAgdWludDMyX3QgeDY5OworICBmaWF0X3AyNTZfbXVseF91MzIoJng2OCwgJng2OSwg
eDYwLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHg3MDsKKyAgdWludDMyX3Qg
eDcxOworICBmaWF0X3AyNTZfbXVseF91MzIoJng3MCwgJng3MSwgeDYwLCBVSU5UMzJfQygweGZm
ZmZmZmZmKSk7CisgIHVpbnQzMl90IHg3MjsKKyAgdWludDMyX3QgeDczOworICBmaWF0X3AyNTZf
bXVseF91MzIoJng3MiwgJng3MywgeDYwLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQz
Ml90IHg3NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg3NTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
MzIoJng3NCwgJng3NSwgMHgwLCB4NzAsIHg3Myk7CisgIHVpbnQzMl90IHg3NjsKKyAgZmlhdF9w
MjU2X3VpbnQxIHg3NzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng3NiwgJng3NywgeDc1
LCB4NjgsIHg3MSk7CisgIHVpbnQzMl90IHg3ODsKKyAgZmlhdF9wMjU2X3VpbnQxIHg3OTsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng3OCwgJng3OSwgMHgwLCB4NzIsIHg2MCk7CisgIHVp
bnQzMl90IHg4MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg4MTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91MzIoJng4MCwgJng4MSwgeDc5LCB4NzQsIHg2Mik7CisgIHVpbnQzMl90IHg4MjsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg4MzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng4MiwgJng4Mywg
eDgxLCB4NzYsIHg2NCk7CisgIHVpbnQzMl90IHg4NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg4NTsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJng4NCwgJng4NSwgeDU1LCAweDAsIDB4MCk7Cisg
IHVpbnQzMl90IHg4NjsKKyAgZmlhdF9wMjU2X3VpbnQxIHg4NzsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJng4NiwgJng4NywgeDY1LCAweDAsIChmaWF0X3AyNTZfdWludDEpeDg0KTsKKyAg
dWludDMyX3QgeDg4OworICBmaWF0X3AyNTZfdWludDEgeDg5OworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDg4LCAmeDg5LCB4NzcsIDB4MCwgeDY5KTsKKyAgdWludDMyX3QgeDkwOworICBm
aWF0X3AyNTZfdWludDEgeDkxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDkwLCAmeDkx
LCB4ODMsIHg4OCwgeDg2KTsKKyAgdWludDMyX3QgeDkyOworICBmaWF0X3AyNTZfdWludDEgeDkz
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDkyLCAmeDkzLCB4OTEsIDB4MCwgeDEpOwor
ICB1aW50MzJfdCB4OTQ7CisgIGZpYXRfcDI1Nl91aW50MSB4OTU7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4OTQsICZ4OTUsIHg5MywgMHgwLCB4NTYpOworICB1aW50MzJfdCB4OTY7Cisg
IGZpYXRfcDI1Nl91aW50MSB4OTc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4OTYsICZ4
OTcsIHg5NSwgeDYwLCB4NTgpOworICB1aW50MzJfdCB4OTg7CisgIGZpYXRfcDI1Nl91aW50MSB4
OTk7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4OTgsICZ4OTksIHg1OSwgeDMxLCAweDAp
OworICB1aW50MzJfdCB4MTAwOworICBmaWF0X3AyNTZfdWludDEgeDEwMTsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJngxMDAsICZ4MTAxLCB4OTcsIHg2NiwgeDk4KTsKKyAgdWludDMyX3Qg
eDEwMjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMDM7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4MTAyLCAmeDEwMywgMHgwLCAoYXJnMVszXSksIHg4MCk7CisgIHVpbnQzMl90IHgxMDQ7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MTA1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEwNCwg
JngxMDUsIHgxMDMsIDB4MCwgeDgyKTsKKyAgdWludDMyX3QgeDEwNjsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHgxMDc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTA2LCAmeDEwNywgeDEwNSwg
MHgwLCB4OTApOworICB1aW50MzJfdCB4MTA4OworICBmaWF0X3AyNTZfdWludDEgeDEwOTsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMDgsICZ4MTA5LCB4MTA3LCAweDAsIHg5Mik7Cisg
IHVpbnQzMl90IHgxMTA7CisgIGZpYXRfcDI1Nl91aW50MSB4MTExOworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDExMCwgJngxMTEsIHgxMDksIDB4MCwgeDk0KTsKKyAgdWludDMyX3QgeDEx
MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMTM7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MTEyLCAmeDExMywgeDExMSwgMHgwLCB4OTYpOworICB1aW50MzJfdCB4MTE0OworICBmaWF0X3Ay
NTZfdWludDEgeDExNTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMTQsICZ4MTE1LCB4
MTEzLCAweDAsIHgxMDApOworICB1aW50MzJfdCB4MTE2OworICBmaWF0X3AyNTZfdWludDEgeDEx
NzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMTYsICZ4MTE3LCB4MTAxLCB4NjcsIDB4
MCk7CisgIHVpbnQzMl90IHgxMTg7CisgIGZpYXRfcDI1Nl91aW50MSB4MTE5OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDExOCwgJngxMTksIHgxMTUsIDB4MCwgeDExNik7CisgIHVpbnQz
Ml90IHgxMjA7CisgIHVpbnQzMl90IHgxMjE7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDEyMCwg
JngxMjEsIHgxMDIsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDEyMjsKKyAg
dWludDMyX3QgeDEyMzsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MTIyLCAmeDEyMywgeDEwMiwg
VUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MTI0OworICB1aW50MzJfdCB4MTI1
OworICBmaWF0X3AyNTZfbXVseF91MzIoJngxMjQsICZ4MTI1LCB4MTAyLCBVSU5UMzJfQygweGZm
ZmZmZmZmKSk7CisgIHVpbnQzMl90IHgxMjY7CisgIHVpbnQzMl90IHgxMjc7CisgIGZpYXRfcDI1
Nl9tdWx4X3UzMigmeDEyNiwgJngxMjcsIHgxMDIsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAg
dWludDMyX3QgeDEyODsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMjk7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MTI4LCAmeDEyOSwgMHgwLCB4MTI0LCB4MTI3KTsKKyAgdWludDMyX3QgeDEz
MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMzE7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MTMwLCAmeDEzMSwgeDEyOSwgeDEyMiwgeDEyNSk7CisgIHVpbnQzMl90IHgxMzI7CisgIGZpYXRf
cDI1Nl91aW50MSB4MTMzOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEzMiwgJngxMzMs
IDB4MCwgeDEyNiwgeDEwMik7CisgIHVpbnQzMl90IHgxMzQ7CisgIGZpYXRfcDI1Nl91aW50MSB4
MTM1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDEzNCwgJngxMzUsIHgxMzMsIHgxMjgs
IHgxMDQpOworICB1aW50MzJfdCB4MTM2OworICBmaWF0X3AyNTZfdWludDEgeDEzNzsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxMzYsICZ4MTM3LCB4MTM1LCB4MTMwLCB4MTA2KTsKKyAg
dWludDMyX3QgeDEzODsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMzk7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MTM4LCAmeDEzOSwgeDEzMSwgMHgwLCB4MTIzKTsKKyAgdWludDMyX3QgeDE0
MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNDE7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MTQwLCAmeDE0MSwgeDEzNywgeDEzOCwgeDEwOCk7CisgIHVpbnQzMl90IHgxNDI7CisgIGZpYXRf
cDI1Nl91aW50MSB4MTQzOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE0MiwgJngxNDMs
IHgxNDEsIDB4MCwgeDExMCk7CisgIHVpbnQzMl90IHgxNDQ7CisgIGZpYXRfcDI1Nl91aW50MSB4
MTQ1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE0NCwgJngxNDUsIHgxNDMsIDB4MCwg
eDExMik7CisgIHVpbnQzMl90IHgxNDY7CisgIGZpYXRfcDI1Nl91aW50MSB4MTQ3OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE0NiwgJngxNDcsIHgxNDUsIHgxMDIsIHgxMTQpOworICB1
aW50MzJfdCB4MTQ4OworICBmaWF0X3AyNTZfdWludDEgeDE0OTsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJngxNDgsICZ4MTQ5LCB4MTQ3LCB4MTIwLCB4MTE4KTsKKyAgdWludDMyX3QgeDE1
MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNTE7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MTUwLCAmeDE1MSwgeDExOSwgMHgwLCAweDApOworICB1aW50MzJfdCB4MTUyOworICBmaWF0X3Ay
NTZfdWludDEgeDE1MzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNTIsICZ4MTUzLCB4
MTQ5LCB4MTIxLCAoZmlhdF9wMjU2X3VpbnQxKXgxNTApOworICB1aW50MzJfdCB4MTU0OworICBm
aWF0X3AyNTZfdWludDEgeDE1NTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxNTQsICZ4
MTU1LCAweDAsIChhcmcxWzRdKSwgeDEzNCk7CisgIHVpbnQzMl90IHgxNTY7CisgIGZpYXRfcDI1
Nl91aW50MSB4MTU3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE1NiwgJngxNTcsIHgx
NTUsIDB4MCwgeDEzNik7CisgIHVpbnQzMl90IHgxNTg7CisgIGZpYXRfcDI1Nl91aW50MSB4MTU5
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE1OCwgJngxNTksIHgxNTcsIDB4MCwgeDE0
MCk7CisgIHVpbnQzMl90IHgxNjA7CisgIGZpYXRfcDI1Nl91aW50MSB4MTYxOworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDE2MCwgJngxNjEsIHgxNTksIDB4MCwgeDE0Mik7CisgIHVpbnQz
Ml90IHgxNjI7CisgIGZpYXRfcDI1Nl91aW50MSB4MTYzOworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3UzMigmeDE2MiwgJngxNjMsIHgxNjEsIDB4MCwgeDE0NCk7CisgIHVpbnQzMl90IHgxNjQ7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MTY1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE2NCwg
JngxNjUsIHgxNjMsIDB4MCwgeDE0Nik7CisgIHVpbnQzMl90IHgxNjY7CisgIGZpYXRfcDI1Nl91
aW50MSB4MTY3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE2NiwgJngxNjcsIHgxNjUs
IDB4MCwgeDE0OCk7CisgIHVpbnQzMl90IHgxNjg7CisgIGZpYXRfcDI1Nl91aW50MSB4MTY5Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE2OCwgJngxNjksIHgxNjcsIDB4MCwgeDE1Mik7
CisgIHVpbnQzMl90IHgxNzA7CisgIHVpbnQzMl90IHgxNzE7CisgIGZpYXRfcDI1Nl9tdWx4X3Uz
MigmeDE3MCwgJngxNzEsIHgxNTQsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3Qg
eDE3MjsKKyAgdWludDMyX3QgeDE3MzsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MTcyLCAmeDE3
MywgeDE1NCwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MTc0OworICB1aW50
MzJfdCB4MTc1OworICBmaWF0X3AyNTZfbXVseF91MzIoJngxNzQsICZ4MTc1LCB4MTU0LCBVSU5U
MzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgxNzY7CisgIHVpbnQzMl90IHgxNzc7Cisg
IGZpYXRfcDI1Nl9tdWx4X3UzMigmeDE3NiwgJngxNzcsIHgxNTQsIFVJTlQzMl9DKDB4ZmZmZmZm
ZmYpKTsKKyAgdWludDMyX3QgeDE3ODsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNzk7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTc4LCAmeDE3OSwgMHgwLCB4MTc0LCB4MTc3KTsKKyAgdWlu
dDMyX3QgeDE4MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxODE7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4MTgwLCAmeDE4MSwgeDE3OSwgeDE3MiwgeDE3NSk7CisgIHVpbnQzMl90IHgxODI7
CisgIGZpYXRfcDI1Nl91aW50MSB4MTgzOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE4
MiwgJngxODMsIDB4MCwgeDE3NiwgeDE1NCk7CisgIHVpbnQzMl90IHgxODQ7CisgIGZpYXRfcDI1
Nl91aW50MSB4MTg1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE4NCwgJngxODUsIHgx
ODMsIHgxNzgsIHgxNTYpOworICB1aW50MzJfdCB4MTg2OworICBmaWF0X3AyNTZfdWludDEgeDE4
NzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngxODYsICZ4MTg3LCB4MTg1LCB4MTgwLCB4
MTU4KTsKKyAgdWludDMyX3QgeDE4ODsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxODk7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTMyKCZ4MTg4LCAmeDE4OSwgeDE4MSwgMHgwLCB4MTczKTsKKyAgdWlu
dDMyX3QgeDE5MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxOTE7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4MTkwLCAmeDE5MSwgeDE4NywgeDE4OCwgeDE2MCk7CisgIHVpbnQzMl90IHgxOTI7
CisgIGZpYXRfcDI1Nl91aW50MSB4MTkzOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE5
MiwgJngxOTMsIHgxOTEsIDB4MCwgeDE2Mik7CisgIHVpbnQzMl90IHgxOTQ7CisgIGZpYXRfcDI1
Nl91aW50MSB4MTk1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE5NCwgJngxOTUsIHgx
OTMsIDB4MCwgeDE2NCk7CisgIHVpbnQzMl90IHgxOTY7CisgIGZpYXRfcDI1Nl91aW50MSB4MTk3
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDE5NiwgJngxOTcsIHgxOTUsIHgxNTQsIHgx
NjYpOworICB1aW50MzJfdCB4MTk4OworICBmaWF0X3AyNTZfdWludDEgeDE5OTsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91MzIoJngxOTgsICZ4MTk5LCB4MTk3LCB4MTcwLCB4MTY4KTsKKyAgdWlu
dDMyX3QgeDIwMDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMDE7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTMyKCZ4MjAwLCAmeDIwMSwgeDE1MywgMHgwLCAweDApOworICB1aW50MzJfdCB4MjAyOwor
ICBmaWF0X3AyNTZfdWludDEgeDIwMzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMDIs
ICZ4MjAzLCB4MTY5LCAweDAsIChmaWF0X3AyNTZfdWludDEpeDIwMCk7CisgIHVpbnQzMl90IHgy
MDQ7CisgIGZpYXRfcDI1Nl91aW50MSB4MjA1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDIwNCwgJngyMDUsIHgxOTksIHgxNzEsIHgyMDIpOworICB1aW50MzJfdCB4MjA2OworICBmaWF0
X3AyNTZfdWludDEgeDIwNzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMDYsICZ4MjA3
LCAweDAsIChhcmcxWzVdKSwgeDE4NCk7CisgIHVpbnQzMl90IHgyMDg7CisgIGZpYXRfcDI1Nl91
aW50MSB4MjA5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIwOCwgJngyMDksIHgyMDcs
IDB4MCwgeDE4Nik7CisgIHVpbnQzMl90IHgyMTA7CisgIGZpYXRfcDI1Nl91aW50MSB4MjExOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIxMCwgJngyMTEsIHgyMDksIDB4MCwgeDE5MCk7
CisgIHVpbnQzMl90IHgyMTI7CisgIGZpYXRfcDI1Nl91aW50MSB4MjEzOworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3UzMigmeDIxMiwgJngyMTMsIHgyMTEsIDB4MCwgeDE5Mik7CisgIHVpbnQzMl90
IHgyMTQ7CisgIGZpYXRfcDI1Nl91aW50MSB4MjE1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3Uz
MigmeDIxNCwgJngyMTUsIHgyMTMsIDB4MCwgeDE5NCk7CisgIHVpbnQzMl90IHgyMTY7CisgIGZp
YXRfcDI1Nl91aW50MSB4MjE3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIxNiwgJngy
MTcsIHgyMTUsIDB4MCwgeDE5Nik7CisgIHVpbnQzMl90IHgyMTg7CisgIGZpYXRfcDI1Nl91aW50
MSB4MjE5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIxOCwgJngyMTksIHgyMTcsIDB4
MCwgeDE5OCk7CisgIHVpbnQzMl90IHgyMjA7CisgIGZpYXRfcDI1Nl91aW50MSB4MjIxOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIyMCwgJngyMjEsIHgyMTksIDB4MCwgeDIwNCk7Cisg
IHVpbnQzMl90IHgyMjI7CisgIHVpbnQzMl90IHgyMjM7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigm
eDIyMiwgJngyMjMsIHgyMDYsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDIy
NDsKKyAgdWludDMyX3QgeDIyNTsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MjI0LCAmeDIyNSwg
eDIwNiwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MjI2OworICB1aW50MzJf
dCB4MjI3OworICBmaWF0X3AyNTZfbXVseF91MzIoJngyMjYsICZ4MjI3LCB4MjA2LCBVSU5UMzJf
QygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgyMjg7CisgIHVpbnQzMl90IHgyMjk7CisgIGZp
YXRfcDI1Nl9tdWx4X3UzMigmeDIyOCwgJngyMjksIHgyMDYsIFVJTlQzMl9DKDB4ZmZmZmZmZmYp
KTsKKyAgdWludDMyX3QgeDIzMDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMzE7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4MjMwLCAmeDIzMSwgMHgwLCB4MjI2LCB4MjI5KTsKKyAgdWludDMy
X3QgeDIzMjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyMzM7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4MjMyLCAmeDIzMywgeDIzMSwgeDIyNCwgeDIyNyk7CisgIHVpbnQzMl90IHgyMzQ7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MjM1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIzNCwg
JngyMzUsIDB4MCwgeDIyOCwgeDIwNik7CisgIHVpbnQzMl90IHgyMzY7CisgIGZpYXRfcDI1Nl91
aW50MSB4MjM3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDIzNiwgJngyMzcsIHgyMzUs
IHgyMzAsIHgyMDgpOworICB1aW50MzJfdCB4MjM4OworICBmaWF0X3AyNTZfdWludDEgeDIzOTsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyMzgsICZ4MjM5LCB4MjM3LCB4MjMyLCB4MjEw
KTsKKyAgdWludDMyX3QgeDI0MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNDE7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTMyKCZ4MjQwLCAmeDI0MSwgeDIzMywgMHgwLCB4MjI1KTsKKyAgdWludDMy
X3QgeDI0MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNDM7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4MjQyLCAmeDI0MywgeDIzOSwgeDI0MCwgeDIxMik7CisgIHVpbnQzMl90IHgyNDQ7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MjQ1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI0NCwg
JngyNDUsIHgyNDMsIDB4MCwgeDIxNCk7CisgIHVpbnQzMl90IHgyNDY7CisgIGZpYXRfcDI1Nl91
aW50MSB4MjQ3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI0NiwgJngyNDcsIHgyNDUs
IDB4MCwgeDIxNik7CisgIHVpbnQzMl90IHgyNDg7CisgIGZpYXRfcDI1Nl91aW50MSB4MjQ5Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI0OCwgJngyNDksIHgyNDcsIHgyMDYsIHgyMTgp
OworICB1aW50MzJfdCB4MjUwOworICBmaWF0X3AyNTZfdWludDEgeDI1MTsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJngyNTAsICZ4MjUxLCB4MjQ5LCB4MjIyLCB4MjIwKTsKKyAgdWludDMy
X3QgeDI1MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyNTM7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTMyKCZ4MjUyLCAmeDI1MywgeDIwNSwgMHgwLCAweDApOworICB1aW50MzJfdCB4MjU0OworICBm
aWF0X3AyNTZfdWludDEgeDI1NTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNTQsICZ4
MjU1LCB4MjIxLCAweDAsIChmaWF0X3AyNTZfdWludDEpeDI1Mik7CisgIHVpbnQzMl90IHgyNTY7
CisgIGZpYXRfcDI1Nl91aW50MSB4MjU3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI1
NiwgJngyNTcsIHgyNTEsIHgyMjMsIHgyNTQpOworICB1aW50MzJfdCB4MjU4OworICBmaWF0X3Ay
NTZfdWludDEgeDI1OTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyNTgsICZ4MjU5LCAw
eDAsIChhcmcxWzZdKSwgeDIzNik7CisgIHVpbnQzMl90IHgyNjA7CisgIGZpYXRfcDI1Nl91aW50
MSB4MjYxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI2MCwgJngyNjEsIHgyNTksIDB4
MCwgeDIzOCk7CisgIHVpbnQzMl90IHgyNjI7CisgIGZpYXRfcDI1Nl91aW50MSB4MjYzOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI2MiwgJngyNjMsIHgyNjEsIDB4MCwgeDI0Mik7Cisg
IHVpbnQzMl90IHgyNjQ7CisgIGZpYXRfcDI1Nl91aW50MSB4MjY1OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3UzMigmeDI2NCwgJngyNjUsIHgyNjMsIDB4MCwgeDI0NCk7CisgIHVpbnQzMl90IHgy
NjY7CisgIGZpYXRfcDI1Nl91aW50MSB4MjY3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigm
eDI2NiwgJngyNjcsIHgyNjUsIDB4MCwgeDI0Nik7CisgIHVpbnQzMl90IHgyNjg7CisgIGZpYXRf
cDI1Nl91aW50MSB4MjY5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI2OCwgJngyNjks
IHgyNjcsIDB4MCwgeDI0OCk7CisgIHVpbnQzMl90IHgyNzA7CisgIGZpYXRfcDI1Nl91aW50MSB4
MjcxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI3MCwgJngyNzEsIHgyNjksIDB4MCwg
eDI1MCk7CisgIHVpbnQzMl90IHgyNzI7CisgIGZpYXRfcDI1Nl91aW50MSB4MjczOworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI3MiwgJngyNzMsIHgyNzEsIDB4MCwgeDI1Nik7CisgIHVp
bnQzMl90IHgyNzQ7CisgIHVpbnQzMl90IHgyNzU7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDI3
NCwgJngyNzUsIHgyNTgsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDI3NjsK
KyAgdWludDMyX3QgeDI3NzsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4Mjc2LCAmeDI3NywgeDI1
OCwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4Mjc4OworICB1aW50MzJfdCB4
Mjc5OworICBmaWF0X3AyNTZfbXVseF91MzIoJngyNzgsICZ4Mjc5LCB4MjU4LCBVSU5UMzJfQygw
eGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgyODA7CisgIHVpbnQzMl90IHgyODE7CisgIGZpYXRf
cDI1Nl9tdWx4X3UzMigmeDI4MCwgJngyODEsIHgyNTgsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsK
KyAgdWludDMyX3QgeDI4MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyODM7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4MjgyLCAmeDI4MywgMHgwLCB4Mjc4LCB4MjgxKTsKKyAgdWludDMyX3Qg
eDI4NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyODU7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4Mjg0LCAmeDI4NSwgeDI4MywgeDI3NiwgeDI3OSk7CisgIHVpbnQzMl90IHgyODY7CisgIGZp
YXRfcDI1Nl91aW50MSB4Mjg3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI4NiwgJngy
ODcsIDB4MCwgeDI4MCwgeDI1OCk7CisgIHVpbnQzMl90IHgyODg7CisgIGZpYXRfcDI1Nl91aW50
MSB4Mjg5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI4OCwgJngyODksIHgyODcsIHgy
ODIsIHgyNjApOworICB1aW50MzJfdCB4MjkwOworICBmaWF0X3AyNTZfdWludDEgeDI5MTsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngyOTAsICZ4MjkxLCB4Mjg5LCB4Mjg0LCB4MjYyKTsK
KyAgdWludDMyX3QgeDI5MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyOTM7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTMyKCZ4MjkyLCAmeDI5MywgeDI4NSwgMHgwLCB4Mjc3KTsKKyAgdWludDMyX3Qg
eDI5NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgyOTU7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4Mjk0LCAmeDI5NSwgeDI5MSwgeDI5MiwgeDI2NCk7CisgIHVpbnQzMl90IHgyOTY7CisgIGZp
YXRfcDI1Nl91aW50MSB4Mjk3OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI5NiwgJngy
OTcsIHgyOTUsIDB4MCwgeDI2Nik7CisgIHVpbnQzMl90IHgyOTg7CisgIGZpYXRfcDI1Nl91aW50
MSB4Mjk5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDI5OCwgJngyOTksIHgyOTcsIDB4
MCwgeDI2OCk7CisgIHVpbnQzMl90IHgzMDA7CisgIGZpYXRfcDI1Nl91aW50MSB4MzAxOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMwMCwgJngzMDEsIHgyOTksIHgyNTgsIHgyNzApOwor
ICB1aW50MzJfdCB4MzAyOworICBmaWF0X3AyNTZfdWludDEgeDMwMzsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91MzIoJngzMDIsICZ4MzAzLCB4MzAxLCB4Mjc0LCB4MjcyKTsKKyAgdWludDMyX3Qg
eDMwNDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMDU7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMy
KCZ4MzA0LCAmeDMwNSwgeDI1NywgMHgwLCAweDApOworICB1aW50MzJfdCB4MzA2OworICBmaWF0
X3AyNTZfdWludDEgeDMwNzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMDYsICZ4MzA3
LCB4MjczLCAweDAsIChmaWF0X3AyNTZfdWludDEpeDMwNCk7CisgIHVpbnQzMl90IHgzMDg7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MzA5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMwOCwg
JngzMDksIHgzMDMsIHgyNzUsIHgzMDYpOworICB1aW50MzJfdCB4MzEwOworICBmaWF0X3AyNTZf
dWludDEgeDMxMTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzMTAsICZ4MzExLCAweDAs
IChhcmcxWzddKSwgeDI4OCk7CisgIHVpbnQzMl90IHgzMTI7CisgIGZpYXRfcDI1Nl91aW50MSB4
MzEzOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMxMiwgJngzMTMsIHgzMTEsIDB4MCwg
eDI5MCk7CisgIHVpbnQzMl90IHgzMTQ7CisgIGZpYXRfcDI1Nl91aW50MSB4MzE1OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMxNCwgJngzMTUsIHgzMTMsIDB4MCwgeDI5NCk7CisgIHVp
bnQzMl90IHgzMTY7CisgIGZpYXRfcDI1Nl91aW50MSB4MzE3OworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3UzMigmeDMxNiwgJngzMTcsIHgzMTUsIDB4MCwgeDI5Nik7CisgIHVpbnQzMl90IHgzMTg7
CisgIGZpYXRfcDI1Nl91aW50MSB4MzE5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMx
OCwgJngzMTksIHgzMTcsIDB4MCwgeDI5OCk7CisgIHVpbnQzMl90IHgzMjA7CisgIGZpYXRfcDI1
Nl91aW50MSB4MzIxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMyMCwgJngzMjEsIHgz
MTksIDB4MCwgeDMwMCk7CisgIHVpbnQzMl90IHgzMjI7CisgIGZpYXRfcDI1Nl91aW50MSB4MzIz
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMyMiwgJngzMjMsIHgzMjEsIDB4MCwgeDMw
Mik7CisgIHVpbnQzMl90IHgzMjQ7CisgIGZpYXRfcDI1Nl91aW50MSB4MzI1OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3UzMigmeDMyNCwgJngzMjUsIHgzMjMsIDB4MCwgeDMwOCk7CisgIHVpbnQz
Ml90IHgzMjY7CisgIHVpbnQzMl90IHgzMjc7CisgIGZpYXRfcDI1Nl9tdWx4X3UzMigmeDMyNiwg
JngzMjcsIHgzMTAsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDMyX3QgeDMyODsKKyAg
dWludDMyX3QgeDMyOTsKKyAgZmlhdF9wMjU2X211bHhfdTMyKCZ4MzI4LCAmeDMyOSwgeDMxMCwg
VUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4MzMwOworICB1aW50MzJfdCB4MzMx
OworICBmaWF0X3AyNTZfbXVseF91MzIoJngzMzAsICZ4MzMxLCB4MzEwLCBVSU5UMzJfQygweGZm
ZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzMzI7CisgIHVpbnQzMl90IHgzMzM7CisgIGZpYXRfcDI1
Nl9tdWx4X3UzMigmeDMzMiwgJngzMzMsIHgzMTAsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAg
dWludDMyX3QgeDMzNDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMzU7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MzM0LCAmeDMzNSwgMHgwLCB4MzMwLCB4MzMzKTsKKyAgdWludDMyX3QgeDMz
NjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMzc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MzM2LCAmeDMzNywgeDMzNSwgeDMyOCwgeDMzMSk7CisgIHVpbnQzMl90IHgzMzg7CisgIGZpYXRf
cDI1Nl91aW50MSB4MzM5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDMzOCwgJngzMzks
IDB4MCwgeDMzMiwgeDMxMCk7CisgIHVpbnQzMl90IHgzNDA7CisgIGZpYXRfcDI1Nl91aW50MSB4
MzQxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM0MCwgJngzNDEsIHgzMzksIHgzMzQs
IHgzMTIpOworICB1aW50MzJfdCB4MzQyOworICBmaWF0X3AyNTZfdWludDEgeDM0MzsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzNDIsICZ4MzQzLCB4MzQxLCB4MzM2LCB4MzE0KTsKKyAg
dWludDMyX3QgeDM0NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNDU7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTMyKCZ4MzQ0LCAmeDM0NSwgeDMzNywgMHgwLCB4MzI5KTsKKyAgdWludDMyX3QgeDM0
NjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNDc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MzQ2LCAmeDM0NywgeDM0MywgeDM0NCwgeDMxNik7CisgIHVpbnQzMl90IHgzNDg7CisgIGZpYXRf
cDI1Nl91aW50MSB4MzQ5OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM0OCwgJngzNDks
IHgzNDcsIDB4MCwgeDMxOCk7CisgIHVpbnQzMl90IHgzNTA7CisgIGZpYXRfcDI1Nl91aW50MSB4
MzUxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM1MCwgJngzNTEsIHgzNDksIDB4MCwg
eDMyMCk7CisgIHVpbnQzMl90IHgzNTI7CisgIGZpYXRfcDI1Nl91aW50MSB4MzUzOworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM1MiwgJngzNTMsIHgzNTEsIHgzMTAsIHgzMjIpOworICB1
aW50MzJfdCB4MzU0OworICBmaWF0X3AyNTZfdWludDEgeDM1NTsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91MzIoJngzNTQsICZ4MzU1LCB4MzUzLCB4MzI2LCB4MzI0KTsKKyAgdWludDMyX3QgeDM1
NjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNTc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTMyKCZ4
MzU2LCAmeDM1NywgeDMwOSwgMHgwLCAweDApOworICB1aW50MzJfdCB4MzU4OworICBmaWF0X3Ay
NTZfdWludDEgeDM1OTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91MzIoJngzNTgsICZ4MzU5LCB4
MzI1LCAweDAsIChmaWF0X3AyNTZfdWludDEpeDM1Nik7CisgIHVpbnQzMl90IHgzNjA7CisgIGZp
YXRfcDI1Nl91aW50MSB4MzYxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3UzMigmeDM2MCwgJngz
NjEsIHgzNTUsIHgzMjcsIHgzNTgpOworICB1aW50MzJfdCB4MzYyOworICBmaWF0X3AyNTZfdWlu
dDEgeDM2MzsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4MzYyLCAmeDM2MywgMHgwLCB4
MzQwLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzNjQ7CisgIGZpYXRfcDI1
Nl91aW50MSB4MzY1OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngzNjQsICZ4MzY1LCB4
MzYzLCB4MzQyLCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzNjY7CisgIGZp
YXRfcDI1Nl91aW50MSB4MzY3OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngzNjYsICZ4
MzY3LCB4MzY1LCB4MzQ2LCBVSU5UMzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQzMl90IHgzNjg7
CisgIGZpYXRfcDI1Nl91aW50MSB4MzY5OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91MzIoJngz
NjgsICZ4MzY5LCB4MzY3LCB4MzQ4LCAweDApOworICB1aW50MzJfdCB4MzcwOworICBmaWF0X3Ay
NTZfdWludDEgeDM3MTsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTMyKCZ4MzcwLCAmeDM3MSwg
eDM2OSwgeDM1MCwgMHgwKTsKKyAgdWludDMyX3QgeDM3MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgz
NzM7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3UzMigmeDM3MiwgJngzNzMsIHgzNzEsIHgzNTIs
IDB4MCk7CisgIHVpbnQzMl90IHgzNzQ7CisgIGZpYXRfcDI1Nl91aW50MSB4Mzc1OworICBmaWF0
X3AyNTZfc3ViYm9ycm93eF91MzIoJngzNzQsICZ4Mzc1LCB4MzczLCB4MzU0LCAweDEpOworICB1
aW50MzJfdCB4Mzc2OworICBmaWF0X3AyNTZfdWludDEgeDM3NzsKKyAgZmlhdF9wMjU2X3N1YmJv
cnJvd3hfdTMyKCZ4Mzc2LCAmeDM3NywgeDM3NSwgeDM2MCwgVUlOVDMyX0MoMHhmZmZmZmZmZikp
OworICB1aW50MzJfdCB4Mzc4OworICBmaWF0X3AyNTZfdWludDEgeDM3OTsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91MzIoJngzNzgsICZ4Mzc5LCB4MzYxLCAweDAsIDB4MCk7CisgIHVpbnQzMl90
IHgzODA7CisgIGZpYXRfcDI1Nl91aW50MSB4MzgxOworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91
MzIoJngzODAsICZ4MzgxLCB4Mzc3LCAoZmlhdF9wMjU2X3VpbnQxKXgzNzgsIDB4MCk7CisgIHVp
bnQzMl90IHgzODI7CisgIGZpYXRfcDI1Nl9jbW92em56X3UzMigmeDM4MiwgeDM4MSwgeDM2Miwg
eDM0MCk7CisgIHVpbnQzMl90IHgzODM7CisgIGZpYXRfcDI1Nl9jbW92em56X3UzMigmeDM4Mywg
eDM4MSwgeDM2NCwgeDM0Mik7CisgIHVpbnQzMl90IHgzODQ7CisgIGZpYXRfcDI1Nl9jbW92em56
X3UzMigmeDM4NCwgeDM4MSwgeDM2NiwgeDM0Nik7CisgIHVpbnQzMl90IHgzODU7CisgIGZpYXRf
cDI1Nl9jbW92em56X3UzMigmeDM4NSwgeDM4MSwgeDM2OCwgeDM0OCk7CisgIHVpbnQzMl90IHgz
ODY7CisgIGZpYXRfcDI1Nl9jbW92em56X3UzMigmeDM4NiwgeDM4MSwgeDM3MCwgeDM1MCk7Cisg
IHVpbnQzMl90IHgzODc7CisgIGZpYXRfcDI1Nl9jbW92em56X3UzMigmeDM4NywgeDM4MSwgeDM3
MiwgeDM1Mik7CisgIHVpbnQzMl90IHgzODg7CisgIGZpYXRfcDI1Nl9jbW92em56X3UzMigmeDM4
OCwgeDM4MSwgeDM3NCwgeDM1NCk7CisgIHVpbnQzMl90IHgzODk7CisgIGZpYXRfcDI1Nl9jbW92
em56X3UzMigmeDM4OSwgeDM4MSwgeDM3NiwgeDM2MCk7CisgIG91dDFbMF0gPSB4MzgyOworICBv
dXQxWzFdID0geDM4MzsKKyAgb3V0MVsyXSA9IHgzODQ7CisgIG91dDFbM10gPSB4Mzg1OworICBv
dXQxWzRdID0geDM4NjsKKyAgb3V0MVs1XSA9IHgzODc7CisgIG91dDFbNl0gPSB4Mzg4OworICBv
dXQxWzddID0geDM4OTsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sw
eDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZm
Zl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhm
ZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl1dCisgKiBP
dXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbMHgwIH4+IDB4ZmZmZmZmZmZdCisgKi8KK3N0YXRp
YyB2b2lkIGZpYXRfcDI1Nl9ub256ZXJvKHVpbnQzMl90KiBvdXQxLCBjb25zdCB1aW50MzJfdCBh
cmcxWzhdKSB7CisgIHVpbnQzMl90IHgxID0gKChhcmcxWzBdKSB8ICgoYXJnMVsxXSkgfCAoKGFy
ZzFbMl0pIHwgKChhcmcxWzNdKSB8ICgoYXJnMVs0XSkgfCAoKGFyZzFbNV0pIHwgKChhcmcxWzZd
KSB8ICgoYXJnMVs3XSkgfCAodWludDMyX3QpMHgwKSkpKSkpKSk7CisgICpvdXQxID0geDE7Cit9
CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAgIGFyZzE6IFsweDAgfj4gMHgxXQorICogICBh
cmcyOiBbWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAw
eGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4
MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZm
XV0KKyAqICAgYXJnMzogW1sweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0s
IFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZm
ZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4g
MHhmZmZmZmZmZl1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4MCB+PiAweGZm
ZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+
PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXSwg
WzB4MCB+PiAweGZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmXV0KKyAqLworc3RhdGljIHZv
aWQgZmlhdF9wMjU2X3NlbGVjdHpueih1aW50MzJfdCBvdXQxWzhdLCBmaWF0X3AyNTZfdWludDEg
YXJnMSwgY29uc3QgdWludDMyX3QgYXJnMls4XSwgY29uc3QgdWludDMyX3QgYXJnM1s4XSkgewor
ICB1aW50MzJfdCB4MTsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4MSwgYXJnMSwgKGFyZzJb
MF0pLCAoYXJnM1swXSkpOworICB1aW50MzJfdCB4MjsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMy
KCZ4MiwgYXJnMSwgKGFyZzJbMV0pLCAoYXJnM1sxXSkpOworICB1aW50MzJfdCB4MzsKKyAgZmlh
dF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4MywgYXJnMSwgKGFyZzJbMl0pLCAoYXJnM1syXSkpOworICB1
aW50MzJfdCB4NDsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4NCwgYXJnMSwgKGFyZzJbM10p
LCAoYXJnM1szXSkpOworICB1aW50MzJfdCB4NTsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4
NSwgYXJnMSwgKGFyZzJbNF0pLCAoYXJnM1s0XSkpOworICB1aW50MzJfdCB4NjsKKyAgZmlhdF9w
MjU2X2Ntb3Z6bnpfdTMyKCZ4NiwgYXJnMSwgKGFyZzJbNV0pLCAoYXJnM1s1XSkpOworICB1aW50
MzJfdCB4NzsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4NywgYXJnMSwgKGFyZzJbNl0pLCAo
YXJnM1s2XSkpOworICB1aW50MzJfdCB4ODsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTMyKCZ4OCwg
YXJnMSwgKGFyZzJbN10pLCAoYXJnM1s3XSkpOworICBvdXQxWzBdID0geDE7CisgIG91dDFbMV0g
PSB4MjsKKyAgb3V0MVsyXSA9IHgzOworICBvdXQxWzNdID0geDQ7CisgIG91dDFbNF0gPSB4NTsK
KyAgb3V0MVs1XSA9IHg2OworICBvdXQxWzZdID0geDc7CisgIG91dDFbN10gPSB4ODsKK30KKwor
LyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHhmZmZmZmZmZl0sIFsw
eDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZm
Zl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhm
ZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBv
dXQxOiBbWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+
PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4
MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwg
WzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZm
XSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAw
eGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+
PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4
MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXSwg
WzB4MCB+PiAweGZmXSwgWzB4MCB+PiAweGZmXV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2
X3RvX2J5dGVzKHVpbnQ4X3Qgb3V0MVszMl0sIGNvbnN0IHVpbnQzMl90IGFyZzFbOF0pIHsKKyAg
dWludDMyX3QgeDEgPSAoYXJnMVs3XSk7CisgIHVpbnQzMl90IHgyID0gKGFyZzFbNl0pOworICB1
aW50MzJfdCB4MyA9IChhcmcxWzVdKTsKKyAgdWludDMyX3QgeDQgPSAoYXJnMVs0XSk7CisgIHVp
bnQzMl90IHg1ID0gKGFyZzFbM10pOworICB1aW50MzJfdCB4NiA9IChhcmcxWzJdKTsKKyAgdWlu
dDMyX3QgeDcgPSAoYXJnMVsxXSk7CisgIHVpbnQzMl90IHg4ID0gKGFyZzFbMF0pOworICB1aW50
MzJfdCB4OSA9ICh4OCA+PiA4KTsKKyAgdWludDhfdCB4MTAgPSAodWludDhfdCkoeDggJiBVSU5U
OF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDExID0gKHg5ID4+IDgpOworICB1aW50OF90IHgxMiA9
ICh1aW50OF90KSh4OSAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50OF90IHgxMyA9ICh1aW50OF90
KSh4MTEgPj4gOCk7CisgIHVpbnQ4X3QgeDE0ID0gKHVpbnQ4X3QpKHgxMSAmIFVJTlQ4X0MoMHhm
ZikpOworICB1aW50OF90IHgxNSA9ICh1aW50OF90KSh4MTMgJiBVSU5UOF9DKDB4ZmYpKTsKKyAg
dWludDMyX3QgeDE2ID0gKHg3ID4+IDgpOworICB1aW50OF90IHgxNyA9ICh1aW50OF90KSh4NyAm
IFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJfdCB4MTggPSAoeDE2ID4+IDgpOworICB1aW50OF90
IHgxOSA9ICh1aW50OF90KSh4MTYgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4MjAgPSAo
dWludDhfdCkoeDE4ID4+IDgpOworICB1aW50OF90IHgyMSA9ICh1aW50OF90KSh4MTggJiBVSU5U
OF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4MjIgPSAodWludDhfdCkoeDIwICYgVUlOVDhfQygweGZm
KSk7CisgIHVpbnQzMl90IHgyMyA9ICh4NiA+PiA4KTsKKyAgdWludDhfdCB4MjQgPSAodWludDhf
dCkoeDYgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDI1ID0gKHgyMyA+PiA4KTsKKyAg
dWludDhfdCB4MjYgPSAodWludDhfdCkoeDIzICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3Qg
eDI3ID0gKHVpbnQ4X3QpKHgyNSA+PiA4KTsKKyAgdWludDhfdCB4MjggPSAodWludDhfdCkoeDI1
ICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3QgeDI5ID0gKHVpbnQ4X3QpKHgyNyAmIFVJTlQ4
X0MoMHhmZikpOworICB1aW50MzJfdCB4MzAgPSAoeDUgPj4gOCk7CisgIHVpbnQ4X3QgeDMxID0g
KHVpbnQ4X3QpKHg1ICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQzMl90IHgzMiA9ICh4MzAgPj4g
OCk7CisgIHVpbnQ4X3QgeDMzID0gKHVpbnQ4X3QpKHgzMCAmIFVJTlQ4X0MoMHhmZikpOworICB1
aW50OF90IHgzNCA9ICh1aW50OF90KSh4MzIgPj4gOCk7CisgIHVpbnQ4X3QgeDM1ID0gKHVpbnQ4
X3QpKHgzMiAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50OF90IHgzNiA9ICh1aW50OF90KSh4MzQg
JiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDM3ID0gKHg0ID4+IDgpOworICB1aW50OF90
IHgzOCA9ICh1aW50OF90KSh4NCAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJfdCB4MzkgPSAo
eDM3ID4+IDgpOworICB1aW50OF90IHg0MCA9ICh1aW50OF90KSh4MzcgJiBVSU5UOF9DKDB4ZmYp
KTsKKyAgdWludDhfdCB4NDEgPSAodWludDhfdCkoeDM5ID4+IDgpOworICB1aW50OF90IHg0MiA9
ICh1aW50OF90KSh4MzkgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4NDMgPSAodWludDhf
dCkoeDQxICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQzMl90IHg0NCA9ICh4MyA+PiA4KTsKKyAg
dWludDhfdCB4NDUgPSAodWludDhfdCkoeDMgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3Qg
eDQ2ID0gKHg0NCA+PiA4KTsKKyAgdWludDhfdCB4NDcgPSAodWludDhfdCkoeDQ0ICYgVUlOVDhf
QygweGZmKSk7CisgIHVpbnQ4X3QgeDQ4ID0gKHVpbnQ4X3QpKHg0NiA+PiA4KTsKKyAgdWludDhf
dCB4NDkgPSAodWludDhfdCkoeDQ2ICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3QgeDUwID0g
KHVpbnQ4X3QpKHg0OCAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50MzJfdCB4NTEgPSAoeDIgPj4g
OCk7CisgIHVpbnQ4X3QgeDUyID0gKHVpbnQ4X3QpKHgyICYgVUlOVDhfQygweGZmKSk7CisgIHVp
bnQzMl90IHg1MyA9ICh4NTEgPj4gOCk7CisgIHVpbnQ4X3QgeDU0ID0gKHVpbnQ4X3QpKHg1MSAm
IFVJTlQ4X0MoMHhmZikpOworICB1aW50OF90IHg1NSA9ICh1aW50OF90KSh4NTMgPj4gOCk7Cisg
IHVpbnQ4X3QgeDU2ID0gKHVpbnQ4X3QpKHg1MyAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50OF90
IHg1NyA9ICh1aW50OF90KSh4NTUgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDMyX3QgeDU4ID0g
KHgxID4+IDgpOworICB1aW50OF90IHg1OSA9ICh1aW50OF90KSh4MSAmIFVJTlQ4X0MoMHhmZikp
OworICB1aW50MzJfdCB4NjAgPSAoeDU4ID4+IDgpOworICB1aW50OF90IHg2MSA9ICh1aW50OF90
KSh4NTggJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4NjIgPSAodWludDhfdCkoeDYwID4+
IDgpOworICB1aW50OF90IHg2MyA9ICh1aW50OF90KSh4NjAgJiBVSU5UOF9DKDB4ZmYpKTsKKyAg
b3V0MVswXSA9IHgxMDsKKyAgb3V0MVsxXSA9IHgxMjsKKyAgb3V0MVsyXSA9IHgxNDsKKyAgb3V0
MVszXSA9IHgxNTsKKyAgb3V0MVs0XSA9IHgxNzsKKyAgb3V0MVs1XSA9IHgxOTsKKyAgb3V0MVs2
XSA9IHgyMTsKKyAgb3V0MVs3XSA9IHgyMjsKKyAgb3V0MVs4XSA9IHgyNDsKKyAgb3V0MVs5XSA9
IHgyNjsKKyAgb3V0MVsxMF0gPSB4Mjg7CisgIG91dDFbMTFdID0geDI5OworICBvdXQxWzEyXSA9
IHgzMTsKKyAgb3V0MVsxM10gPSB4MzM7CisgIG91dDFbMTRdID0geDM1OworICBvdXQxWzE1XSA9
IHgzNjsKKyAgb3V0MVsxNl0gPSB4Mzg7CisgIG91dDFbMTddID0geDQwOworICBvdXQxWzE4XSA9
IHg0MjsKKyAgb3V0MVsxOV0gPSB4NDM7CisgIG91dDFbMjBdID0geDQ1OworICBvdXQxWzIxXSA9
IHg0NzsKKyAgb3V0MVsyMl0gPSB4NDk7CisgIG91dDFbMjNdID0geDUwOworICBvdXQxWzI0XSA9
IHg1MjsKKyAgb3V0MVsyNV0gPSB4NTQ7CisgIG91dDFbMjZdID0geDU2OworICBvdXQxWzI3XSA9
IHg1NzsKKyAgb3V0MVsyOF0gPSB4NTk7CisgIG91dDFbMjldID0geDYxOworICBvdXQxWzMwXSA9
IHg2MzsKKyAgb3V0MVszMV0gPSB4NjI7Cit9CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAg
IGFyZzE6IFtbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgw
IH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBb
MHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZd
LCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4
ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+
IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgw
IH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBb
MHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZd
LCBbMHgwIH4+IDB4ZmZdLCBbMHgwIH4+IDB4ZmZdXQorICogT3V0cHV0IEJvdW5kczoKKyAqICAg
b3V0MTogW1sweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4g
MHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsw
eDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZm
Zl1dCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfcDI1Nl9mcm9tX2J5dGVzKHVpbnQzMl90IG91dDFb
OF0sIGNvbnN0IHVpbnQ4X3QgYXJnMVszMl0pIHsKKyAgdWludDMyX3QgeDEgPSAoKHVpbnQzMl90
KShhcmcxWzMxXSkgPDwgMjQpOworICB1aW50MzJfdCB4MiA9ICgodWludDMyX3QpKGFyZzFbMzBd
KSA8PCAxNik7CisgIHVpbnQzMl90IHgzID0gKCh1aW50MzJfdCkoYXJnMVsyOV0pIDw8IDgpOwor
ICB1aW50OF90IHg0ID0gKGFyZzFbMjhdKTsKKyAgdWludDMyX3QgeDUgPSAoKHVpbnQzMl90KShh
cmcxWzI3XSkgPDwgMjQpOworICB1aW50MzJfdCB4NiA9ICgodWludDMyX3QpKGFyZzFbMjZdKSA8
PCAxNik7CisgIHVpbnQzMl90IHg3ID0gKCh1aW50MzJfdCkoYXJnMVsyNV0pIDw8IDgpOworICB1
aW50OF90IHg4ID0gKGFyZzFbMjRdKTsKKyAgdWludDMyX3QgeDkgPSAoKHVpbnQzMl90KShhcmcx
WzIzXSkgPDwgMjQpOworICB1aW50MzJfdCB4MTAgPSAoKHVpbnQzMl90KShhcmcxWzIyXSkgPDwg
MTYpOworICB1aW50MzJfdCB4MTEgPSAoKHVpbnQzMl90KShhcmcxWzIxXSkgPDwgOCk7CisgIHVp
bnQ4X3QgeDEyID0gKGFyZzFbMjBdKTsKKyAgdWludDMyX3QgeDEzID0gKCh1aW50MzJfdCkoYXJn
MVsxOV0pIDw8IDI0KTsKKyAgdWludDMyX3QgeDE0ID0gKCh1aW50MzJfdCkoYXJnMVsxOF0pIDw8
IDE2KTsKKyAgdWludDMyX3QgeDE1ID0gKCh1aW50MzJfdCkoYXJnMVsxN10pIDw8IDgpOworICB1
aW50OF90IHgxNiA9IChhcmcxWzE2XSk7CisgIHVpbnQzMl90IHgxNyA9ICgodWludDMyX3QpKGFy
ZzFbMTVdKSA8PCAyNCk7CisgIHVpbnQzMl90IHgxOCA9ICgodWludDMyX3QpKGFyZzFbMTRdKSA8
PCAxNik7CisgIHVpbnQzMl90IHgxOSA9ICgodWludDMyX3QpKGFyZzFbMTNdKSA8PCA4KTsKKyAg
dWludDhfdCB4MjAgPSAoYXJnMVsxMl0pOworICB1aW50MzJfdCB4MjEgPSAoKHVpbnQzMl90KShh
cmcxWzExXSkgPDwgMjQpOworICB1aW50MzJfdCB4MjIgPSAoKHVpbnQzMl90KShhcmcxWzEwXSkg
PDwgMTYpOworICB1aW50MzJfdCB4MjMgPSAoKHVpbnQzMl90KShhcmcxWzldKSA8PCA4KTsKKyAg
dWludDhfdCB4MjQgPSAoYXJnMVs4XSk7CisgIHVpbnQzMl90IHgyNSA9ICgodWludDMyX3QpKGFy
ZzFbN10pIDw8IDI0KTsKKyAgdWludDMyX3QgeDI2ID0gKCh1aW50MzJfdCkoYXJnMVs2XSkgPDwg
MTYpOworICB1aW50MzJfdCB4MjcgPSAoKHVpbnQzMl90KShhcmcxWzVdKSA8PCA4KTsKKyAgdWlu
dDhfdCB4MjggPSAoYXJnMVs0XSk7CisgIHVpbnQzMl90IHgyOSA9ICgodWludDMyX3QpKGFyZzFb
M10pIDw8IDI0KTsKKyAgdWludDMyX3QgeDMwID0gKCh1aW50MzJfdCkoYXJnMVsyXSkgPDwgMTYp
OworICB1aW50MzJfdCB4MzEgPSAoKHVpbnQzMl90KShhcmcxWzFdKSA8PCA4KTsKKyAgdWludDhf
dCB4MzIgPSAoYXJnMVswXSk7CisgIHVpbnQzMl90IHgzMyA9ICh4MzIgKyAoeDMxICsgKHgzMCAr
IHgyOSkpKTsKKyAgdWludDMyX3QgeDM0ID0gKHgzMyAmIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsK
KyAgdWludDMyX3QgeDM1ID0gKHg0ICsgKHgzICsgKHgyICsgeDEpKSk7CisgIHVpbnQzMl90IHgz
NiA9ICh4OCArICh4NyArICh4NiArIHg1KSkpOworICB1aW50MzJfdCB4MzcgPSAoeDEyICsgKHgx
MSArICh4MTAgKyB4OSkpKTsKKyAgdWludDMyX3QgeDM4ID0gKHgxNiArICh4MTUgKyAoeDE0ICsg
eDEzKSkpOworICB1aW50MzJfdCB4MzkgPSAoeDIwICsgKHgxOSArICh4MTggKyB4MTcpKSk7Cisg
IHVpbnQzMl90IHg0MCA9ICh4MjQgKyAoeDIzICsgKHgyMiArIHgyMSkpKTsKKyAgdWludDMyX3Qg
eDQxID0gKHgyOCArICh4MjcgKyAoeDI2ICsgeDI1KSkpOworICB1aW50MzJfdCB4NDIgPSAoeDQx
ICYgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDMgPSAoeDQwICYgVUlOVDMy
X0MoMHhmZmZmZmZmZikpOworICB1aW50MzJfdCB4NDQgPSAoeDM5ICYgVUlOVDMyX0MoMHhmZmZm
ZmZmZikpOworICB1aW50MzJfdCB4NDUgPSAoeDM4ICYgVUlOVDMyX0MoMHhmZmZmZmZmZikpOwor
ICB1aW50MzJfdCB4NDYgPSAoeDM3ICYgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50MzJf
dCB4NDcgPSAoeDM2ICYgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICBvdXQxWzBdID0geDM0Owor
ICBvdXQxWzFdID0geDQyOworICBvdXQxWzJdID0geDQzOworICBvdXQxWzNdID0geDQ0OworICBv
dXQxWzRdID0geDQ1OworICBvdXQxWzVdID0geDQ2OworICBvdXQxWzZdID0geDQ3OworICBvdXQx
WzddID0geDM1OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZmlhdC9wMjU2XzY0
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZmlhdC9wMjU2XzY0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q5N2UwYTA5
ZTcwMmJiMGE3ZjRjZWQzMjVkYjRlMGNmZWNhYjBlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9maWF0L3AyNTZfNjQuaApAQCAtMCwwICsxLDEyMTcgQEAKKy8qIEF1dG9nZW5l
cmF0ZWQgKi8KKy8qIGN1cnZlIGRlc2NyaXB0aW9uOiBwMjU2ICovCisvKiByZXF1ZXN0ZWQgb3Bl
cmF0aW9uczogKGFsbCkgKi8KKy8qIG0gPSAweGZmZmZmZmZmMDAwMDAwMDEwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYgKGZyb20gIjJeMjU2IC0gMl4yMjQg
KyAyXjE5MiArIDJeOTYgLSAxIikgKi8KKy8qIG1hY2hpbmVfd29yZHNpemUgPSA2NCAoZnJvbSAi
NjQiKSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCisvKiBOT1RFOiBJbiBhZGRpdGlvbiB0byB0aGUgYm91
bmRzIHNwZWNpZmllZCBhYm92ZSBlYWNoIGZ1bmN0aW9uLCBhbGwgKi8KKy8qICAgZnVuY3Rpb25z
IHN5bnRoZXNpemVkIGZvciB0aGlzIE1vbnRnb21lcnkgYXJpdGhtZXRpYyByZXF1aXJlIHRoZSAq
LworLyogICBpbnB1dCB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIHByaW1lIG1vZHVsdXMg
KG0pLCBhbmQgYWxzbyAgICovCisvKiAgIHJlcXVpcmUgdGhlIGlucHV0IHRvIGJlIGluIHRoZSB1
bmlxdWUgc2F0dXJhdGVkIHJlcHJlc2VudGF0aW9uLiAgKi8KKy8qICAgQWxsIGZ1bmN0aW9ucyBh
bHNvIGVuc3VyZSB0aGF0IHRoZXNlIHR3byBwcm9wZXJ0aWVzIGFyZSB0cnVlIG9mICAqLworLyog
ICByZXR1cm4gdmFsdWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KK3R5cGVkZWYgdW5zaWduZWQgY2hh
ciBmaWF0X3AyNTZfdWludDE7Cit0eXBlZGVmIHNpZ25lZCBjaGFyIGZpYXRfcDI1Nl9pbnQxOwor
dHlwZWRlZiBzaWduZWQgX19pbnQxMjggZmlhdF9wMjU2X2ludDEyODsKK3R5cGVkZWYgdW5zaWdu
ZWQgX19pbnQxMjggZmlhdF9wMjU2X3VpbnQxMjg7CisKKworLyoKKyAqIElucHV0IEJvdW5kczoK
KyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFsweDAgfj4gMHhmZmZmZmZmZmZm
ZmZmZmZmXQorICogICBhcmczOiBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0KKyAqIE91dHB1
dCBCb3VuZHM6CisgKiAgIG91dDE6IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXQorICogICBv
dXQyOiBbMHgwIH4+IDB4MV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
NjQodWludDY0X3QqIG91dDEsIGZpYXRfcDI1Nl91aW50MSogb3V0MiwgZmlhdF9wMjU2X3VpbnQx
IGFyZzEsIHVpbnQ2NF90IGFyZzIsIHVpbnQ2NF90IGFyZzMpIHsKKyAgZmlhdF9wMjU2X3VpbnQx
MjggeDEgPSAoKGFyZzEgKyAoZmlhdF9wMjU2X3VpbnQxMjgpYXJnMikgKyBhcmczKTsKKyAgdWlu
dDY0X3QgeDIgPSAodWludDY0X3QpKHgxICYgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7
CisgIGZpYXRfcDI1Nl91aW50MSB4MyA9IChmaWF0X3AyNTZfdWludDEpKHgxID4+IDY0KTsKKyAg
Km91dDEgPSB4MjsKKyAgKm91dDIgPSB4MzsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAq
ICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZm
ZmZmXQorICogICBhcmczOiBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0KKyAqIE91dHB1dCBC
b3VuZHM6CisgKiAgIG91dDE6IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXQorICogICBvdXQy
OiBbMHgwIH4+IDB4MV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0
KHVpbnQ2NF90KiBvdXQxLCBmaWF0X3AyNTZfdWludDEqIG91dDIsIGZpYXRfcDI1Nl91aW50MSBh
cmcxLCB1aW50NjRfdCBhcmcyLCB1aW50NjRfdCBhcmczKSB7CisgIGZpYXRfcDI1Nl9pbnQxMjgg
eDEgPSAoKGFyZzIgLSAoZmlhdF9wMjU2X2ludDEyOClhcmcxKSAtIGFyZzMpOworICBmaWF0X3Ay
NTZfaW50MSB4MiA9IChmaWF0X3AyNTZfaW50MSkoeDEgPj4gNjQpOworICB1aW50NjRfdCB4MyA9
ICh1aW50NjRfdCkoeDEgJiBVSU5UNjRfQygweGZmZmZmZmZmZmZmZmZmZmYpKTsKKyAgKm91dDEg
PSB4MzsKKyAgKm91dDIgPSAoZmlhdF9wMjU2X3VpbnQxKSgweDAgLSB4Mik7Cit9CisKKy8qCisg
KiBJbnB1dCBCb3VuZHM6CisgKiAgIGFyZzE6IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXQor
ICogICBhcmcyOiBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0KKyAqIE91dHB1dCBCb3VuZHM6
CisgKiAgIG91dDE6IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXQorICogICBvdXQyOiBbMHgw
IH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2X211bHhf
dTY0KHVpbnQ2NF90KiBvdXQxLCB1aW50NjRfdCogb3V0MiwgdWludDY0X3QgYXJnMSwgdWludDY0
X3QgYXJnMikgeworICBmaWF0X3AyNTZfdWludDEyOCB4MSA9ICgoZmlhdF9wMjU2X3VpbnQxMjgp
YXJnMSAqIGFyZzIpOworICB1aW50NjRfdCB4MiA9ICh1aW50NjRfdCkoeDEgJiBVSU5UNjRfQygw
eGZmZmZmZmZmZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDMgPSAodWludDY0X3QpKHgxID4+IDY0
KTsKKyAgKm91dDEgPSB4MjsKKyAgKm91dDIgPSB4MzsKK30KKworLyoKKyAqIElucHV0IEJvdW5k
czoKKyAqICAgYXJnMTogWzB4MCB+PiAweDFdCisgKiAgIGFyZzI6IFsweDAgfj4gMHhmZmZmZmZm
ZmZmZmZmZmZmXQorICogICBhcmczOiBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0KKyAqIE91
dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXQorICov
CitzdGF0aWMgdm9pZCBmaWF0X3AyNTZfY21vdnpuel91NjQodWludDY0X3QqIG91dDEsIGZpYXRf
cDI1Nl91aW50MSBhcmcxLCB1aW50NjRfdCBhcmcyLCB1aW50NjRfdCBhcmczKSB7CisgIGZpYXRf
cDI1Nl91aW50MSB4MSA9ICghKCFhcmcxKSk7CisgIHVpbnQ2NF90IHgyID0gKChmaWF0X3AyNTZf
aW50MSkoMHgwIC0geDEpICYgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIC8vIE5v
dGUgdGhpcyBsaW5lIGhhcyBiZWVuIHBhdGNoZWQgZnJvbSB0aGUgc3ludGhlc2l6ZWQgY29kZSB0
byBhZGQgdmFsdWUKKyAgLy8gYmFycmllcnMuCisgIC8vCisgIC8vIENsYW5nIHJlY29nbml6ZXMg
dGhpcyBwYXR0ZXJuIGFzIGEgc2VsZWN0LiBXaGlsZSBpdCB1c3VhbGx5IHRyYW5zZm9ybXMgaXQK
KyAgLy8gdG8gYSBjbW92LCBpdCBzb21ldGltZXMgZnVydGhlciB0cmFuc2Zvcm1zIGl0IGludG8g
YSBicmFuY2gsIHdoaWNoIHdlIGRvCisgIC8vIG5vdCB3YW50LgorICB1aW50NjRfdCB4MyA9ICgo
dmFsdWVfYmFycmllcl91NjQoeDIpICYgYXJnMykgfCAodmFsdWVfYmFycmllcl91NjQofngyKSAm
IGFyZzIpKTsKKyAgKm91dDEgPSB4MzsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAg
YXJnMTogW1sweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZm
ZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZm
ZmZmZmZmXV0KKyAqICAgYXJnMjogW1sweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+
PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAg
fj4gMHhmZmZmZmZmZmZmZmZmZmZmXV0KKyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtb
MHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwg
WzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl1d
CisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfcDI1Nl9tdWwodWludDY0X3Qgb3V0MVs0XSwgY29uc3Qg
dWludDY0X3QgYXJnMVs0XSwgY29uc3QgdWludDY0X3QgYXJnMls0XSkgeworICB1aW50NjRfdCB4
MSA9IChhcmcxWzFdKTsKKyAgdWludDY0X3QgeDIgPSAoYXJnMVsyXSk7CisgIHVpbnQ2NF90IHgz
ID0gKGFyZzFbM10pOworICB1aW50NjRfdCB4NCA9IChhcmcxWzBdKTsKKyAgdWludDY0X3QgeDU7
CisgIHVpbnQ2NF90IHg2OworICBmaWF0X3AyNTZfbXVseF91NjQoJng1LCAmeDYsIHg0LCAoYXJn
MlszXSkpOworICB1aW50NjRfdCB4NzsKKyAgdWludDY0X3QgeDg7CisgIGZpYXRfcDI1Nl9tdWx4
X3U2NCgmeDcsICZ4OCwgeDQsIChhcmcyWzJdKSk7CisgIHVpbnQ2NF90IHg5OworICB1aW50NjRf
dCB4MTA7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDksICZ4MTAsIHg0LCAoYXJnMlsxXSkpOwor
ICB1aW50NjRfdCB4MTE7CisgIHVpbnQ2NF90IHgxMjsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4
MTEsICZ4MTIsIHg0LCAoYXJnMlswXSkpOworICB1aW50NjRfdCB4MTM7CisgIGZpYXRfcDI1Nl91
aW50MSB4MTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTMsICZ4MTQsIDB4MCwgeDks
IHgxMik7CisgIHVpbnQ2NF90IHgxNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNjsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91NjQoJngxNSwgJngxNiwgeDE0LCB4NywgeDEwKTsKKyAgdWludDY0X3Qg
eDE3OworICBmaWF0X3AyNTZfdWludDEgeDE4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgm
eDE3LCAmeDE4LCB4MTYsIHg1LCB4OCk7CisgIHVpbnQ2NF90IHgxOTsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHgyMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxOSwgJngyMCwgeDE4LCAweDAs
IHg2KTsKKyAgdWludDY0X3QgeDIxOworICB1aW50NjRfdCB4MjI7CisgIGZpYXRfcDI1Nl9tdWx4
X3U2NCgmeDIxLCAmeDIyLCB4MTEsIFVJTlQ2NF9DKDB4ZmZmZmZmZmYwMDAwMDAwMSkpOworICB1
aW50NjRfdCB4MjM7CisgIHVpbnQ2NF90IHgyNDsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MjMs
ICZ4MjQsIHgxMSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50NjRfdCB4MjU7CisgIHVp
bnQ2NF90IHgyNjsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MjUsICZ4MjYsIHgxMSwgVUlOVDY0
X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgyNzsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHgyODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngyNywgJngyOCwgMHgwLCB4MjMs
IHgyNik7CisgIHVpbnQ2NF90IHgyOTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMDsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91NjQoJngyOSwgJngzMCwgeDI4LCAweDAsIHgyNCk7CisgIHVpbnQ2NF90
IHgzMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQo
JngzMSwgJngzMiwgMHgwLCB4MjUsIHgxMSk7CisgIHVpbnQ2NF90IHgzMzsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgzNDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngzMywgJngzNCwgeDMyLCB4
MjcsIHgxMyk7CisgIHVpbnQ2NF90IHgzNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzNjsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91NjQoJngzNSwgJngzNiwgeDM0LCB4MjksIHgxNSk7CisgIHVpbnQ2
NF90IHgzNzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
NjQoJngzNywgJngzOCwgeDM2LCB4MjEsIHgxNyk7CisgIHVpbnQ2NF90IHgzOTsKKyAgZmlhdF9w
MjU2X3VpbnQxIHg0MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngzOSwgJng0MCwgeDM4
LCB4MjIsIHgxOSk7CisgIHVpbnQ2NF90IHg0MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0MjsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng0MSwgJng0MiwgeDQwLCAweDAsIDB4MCk7CisgIHVp
bnQ2NF90IHg0MzsKKyAgdWludDY0X3QgeDQ0OworICBmaWF0X3AyNTZfbXVseF91NjQoJng0Mywg
Jng0NCwgeDEsIChhcmcyWzNdKSk7CisgIHVpbnQ2NF90IHg0NTsKKyAgdWludDY0X3QgeDQ2Owor
ICBmaWF0X3AyNTZfbXVseF91NjQoJng0NSwgJng0NiwgeDEsIChhcmcyWzJdKSk7CisgIHVpbnQ2
NF90IHg0NzsKKyAgdWludDY0X3QgeDQ4OworICBmaWF0X3AyNTZfbXVseF91NjQoJng0NywgJng0
OCwgeDEsIChhcmcyWzFdKSk7CisgIHVpbnQ2NF90IHg0OTsKKyAgdWludDY0X3QgeDUwOworICBm
aWF0X3AyNTZfbXVseF91NjQoJng0OSwgJng1MCwgeDEsIChhcmcyWzBdKSk7CisgIHVpbnQ2NF90
IHg1MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQo
Jng1MSwgJng1MiwgMHgwLCB4NDcsIHg1MCk7CisgIHVpbnQ2NF90IHg1MzsKKyAgZmlhdF9wMjU2
X3VpbnQxIHg1NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng1MywgJng1NCwgeDUyLCB4
NDUsIHg0OCk7CisgIHVpbnQ2NF90IHg1NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NjsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91NjQoJng1NSwgJng1NiwgeDU0LCB4NDMsIHg0Nik7CisgIHVpbnQ2
NF90IHg1NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
NjQoJng1NywgJng1OCwgeDU2LCAweDAsIHg0NCk7CisgIHVpbnQ2NF90IHg1OTsKKyAgZmlhdF9w
MjU2X3VpbnQxIHg2MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng1OSwgJng2MCwgMHgw
LCB4NDksIHgzMyk7CisgIHVpbnQ2NF90IHg2MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MjsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng2MSwgJng2MiwgeDYwLCB4NTEsIHgzNSk7CisgIHVp
bnQ2NF90IHg2MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91NjQoJng2MywgJng2NCwgeDYyLCB4NTMsIHgzNyk7CisgIHVpbnQ2NF90IHg2NTsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg2NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng2NSwgJng2Niwg
eDY0LCB4NTUsIHgzOSk7CisgIHVpbnQ2NF90IHg2NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2ODsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng2NywgJng2OCwgeDY2LCB4NTcsIChmaWF0X3Ay
NTZfdWludDEpeDQxKTsKKyAgdWludDY0X3QgeDY5OworICB1aW50NjRfdCB4NzA7CisgIGZpYXRf
cDI1Nl9tdWx4X3U2NCgmeDY5LCAmeDcwLCB4NTksIFVJTlQ2NF9DKDB4ZmZmZmZmZmYwMDAwMDAw
MSkpOworICB1aW50NjRfdCB4NzE7CisgIHVpbnQ2NF90IHg3MjsKKyAgZmlhdF9wMjU2X211bHhf
dTY0KCZ4NzEsICZ4NzIsIHg1OSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50NjRfdCB4
NzM7CisgIHVpbnQ2NF90IHg3NDsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4NzMsICZ4NzQsIHg1
OSwgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHg3NTsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg3NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng3NSwgJng3Niwg
MHgwLCB4NzEsIHg3NCk7CisgIHVpbnQ2NF90IHg3NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg3ODsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng3NywgJng3OCwgeDc2LCAweDAsIHg3Mik7Cisg
IHVpbnQ2NF90IHg3OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg4MDsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91NjQoJng3OSwgJng4MCwgMHgwLCB4NzMsIHg1OSk7CisgIHVpbnQ2NF90IHg4MTsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHg4MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng4MSwgJng4
MiwgeDgwLCB4NzUsIHg2MSk7CisgIHVpbnQ2NF90IHg4MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg4
NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng4MywgJng4NCwgeDgyLCB4NzcsIHg2Myk7
CisgIHVpbnQ2NF90IHg4NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg4NjsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91NjQoJng4NSwgJng4NiwgeDg0LCB4NjksIHg2NSk7CisgIHVpbnQ2NF90IHg4NzsK
KyAgZmlhdF9wMjU2X3VpbnQxIHg4ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng4Nywg
Jng4OCwgeDg2LCB4NzAsIHg2Nyk7CisgIHVpbnQ2NF90IHg4OTsKKyAgZmlhdF9wMjU2X3VpbnQx
IHg5MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng4OSwgJng5MCwgeDg4LCAweDAsIHg2
OCk7CisgIHVpbnQ2NF90IHg5MTsKKyAgdWludDY0X3QgeDkyOworICBmaWF0X3AyNTZfbXVseF91
NjQoJng5MSwgJng5MiwgeDIsIChhcmcyWzNdKSk7CisgIHVpbnQ2NF90IHg5MzsKKyAgdWludDY0
X3QgeDk0OworICBmaWF0X3AyNTZfbXVseF91NjQoJng5MywgJng5NCwgeDIsIChhcmcyWzJdKSk7
CisgIHVpbnQ2NF90IHg5NTsKKyAgdWludDY0X3QgeDk2OworICBmaWF0X3AyNTZfbXVseF91NjQo
Jng5NSwgJng5NiwgeDIsIChhcmcyWzFdKSk7CisgIHVpbnQ2NF90IHg5NzsKKyAgdWludDY0X3Qg
eDk4OworICBmaWF0X3AyNTZfbXVseF91NjQoJng5NywgJng5OCwgeDIsIChhcmcyWzBdKSk7Cisg
IHVpbnQ2NF90IHg5OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMDA7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTY0KCZ4OTksICZ4MTAwLCAweDAsIHg5NSwgeDk4KTsKKyAgdWludDY0X3QgeDEwMTsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgxMDI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTAx
LCAmeDEwMiwgeDEwMCwgeDkzLCB4OTYpOworICB1aW50NjRfdCB4MTAzOworICBmaWF0X3AyNTZf
dWludDEgeDEwNDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxMDMsICZ4MTA0LCB4MTAy
LCB4OTEsIHg5NCk7CisgIHVpbnQ2NF90IHgxMDU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTA2Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDEwNSwgJngxMDYsIHgxMDQsIDB4MCwgeDkyKTsK
KyAgdWludDY0X3QgeDEwNzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMDg7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTY0KCZ4MTA3LCAmeDEwOCwgMHgwLCB4OTcsIHg4MSk7CisgIHVpbnQ2NF90IHgx
MDk7CisgIGZpYXRfcDI1Nl91aW50MSB4MTEwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgm
eDEwOSwgJngxMTAsIHgxMDgsIHg5OSwgeDgzKTsKKyAgdWludDY0X3QgeDExMTsKKyAgZmlhdF9w
MjU2X3VpbnQxIHgxMTI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTExLCAmeDExMiwg
eDExMCwgeDEwMSwgeDg1KTsKKyAgdWludDY0X3QgeDExMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgx
MTQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTEzLCAmeDExNCwgeDExMiwgeDEwMywg
eDg3KTsKKyAgdWludDY0X3QgeDExNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMTY7CisgIGZpYXRf
cDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTE1LCAmeDExNiwgeDExNCwgeDEwNSwgeDg5KTsKKyAgdWlu
dDY0X3QgeDExNzsKKyAgdWludDY0X3QgeDExODsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MTE3
LCAmeDExOCwgeDEwNywgVUlOVDY0X0MoMHhmZmZmZmZmZjAwMDAwMDAxKSk7CisgIHVpbnQ2NF90
IHgxMTk7CisgIHVpbnQ2NF90IHgxMjA7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDExOSwgJngx
MjAsIHgxMDcsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDEyMTsKKyAgdWlu
dDY0X3QgeDEyMjsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MTIxLCAmeDEyMiwgeDEwNywgVUlO
VDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgxMjM7CisgIGZpYXRfcDI1
Nl91aW50MSB4MTI0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDEyMywgJngxMjQsIDB4
MCwgeDExOSwgeDEyMik7CisgIHVpbnQ2NF90IHgxMjU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTI2
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDEyNSwgJngxMjYsIHgxMjQsIDB4MCwgeDEy
MCk7CisgIHVpbnQ2NF90IHgxMjc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTI4OworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3U2NCgmeDEyNywgJngxMjgsIDB4MCwgeDEyMSwgeDEwNyk7CisgIHVpbnQ2
NF90IHgxMjk7CisgIGZpYXRfcDI1Nl91aW50MSB4MTMwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3U2NCgmeDEyOSwgJngxMzAsIHgxMjgsIHgxMjMsIHgxMDkpOworICB1aW50NjRfdCB4MTMxOwor
ICBmaWF0X3AyNTZfdWludDEgeDEzMjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxMzEs
ICZ4MTMyLCB4MTMwLCB4MTI1LCB4MTExKTsKKyAgdWludDY0X3QgeDEzMzsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgxMzQ7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTMzLCAmeDEzNCwgeDEz
MiwgeDExNywgeDExMyk7CisgIHVpbnQ2NF90IHgxMzU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTM2
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDEzNSwgJngxMzYsIHgxMzQsIHgxMTgsIHgx
MTUpOworICB1aW50NjRfdCB4MTM3OworICBmaWF0X3AyNTZfdWludDEgeDEzODsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91NjQoJngxMzcsICZ4MTM4LCB4MTM2LCAweDAsIHgxMTYpOworICB1aW50
NjRfdCB4MTM5OworICB1aW50NjRfdCB4MTQwOworICBmaWF0X3AyNTZfbXVseF91NjQoJngxMzks
ICZ4MTQwLCB4MywgKGFyZzJbM10pKTsKKyAgdWludDY0X3QgeDE0MTsKKyAgdWludDY0X3QgeDE0
MjsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MTQxLCAmeDE0MiwgeDMsIChhcmcyWzJdKSk7Cisg
IHVpbnQ2NF90IHgxNDM7CisgIHVpbnQ2NF90IHgxNDQ7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgm
eDE0MywgJngxNDQsIHgzLCAoYXJnMlsxXSkpOworICB1aW50NjRfdCB4MTQ1OworICB1aW50NjRf
dCB4MTQ2OworICBmaWF0X3AyNTZfbXVseF91NjQoJngxNDUsICZ4MTQ2LCB4MywgKGFyZzJbMF0p
KTsKKyAgdWludDY0X3QgeDE0NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNDg7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTY0KCZ4MTQ3LCAmeDE0OCwgMHgwLCB4MTQzLCB4MTQ2KTsKKyAgdWludDY0
X3QgeDE0OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNTA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTY0KCZ4MTQ5LCAmeDE1MCwgeDE0OCwgeDE0MSwgeDE0NCk7CisgIHVpbnQ2NF90IHgxNTE7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MTUyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE1MSwg
JngxNTIsIHgxNTAsIHgxMzksIHgxNDIpOworICB1aW50NjRfdCB4MTUzOworICBmaWF0X3AyNTZf
dWludDEgeDE1NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNTMsICZ4MTU0LCB4MTUy
LCAweDAsIHgxNDApOworICB1aW50NjRfdCB4MTU1OworICBmaWF0X3AyNTZfdWludDEgeDE1NjsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNTUsICZ4MTU2LCAweDAsIHgxNDUsIHgxMjkp
OworICB1aW50NjRfdCB4MTU3OworICBmaWF0X3AyNTZfdWludDEgeDE1ODsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91NjQoJngxNTcsICZ4MTU4LCB4MTU2LCB4MTQ3LCB4MTMxKTsKKyAgdWludDY0
X3QgeDE1OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNjA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTY0KCZ4MTU5LCAmeDE2MCwgeDE1OCwgeDE0OSwgeDEzMyk7CisgIHVpbnQ2NF90IHgxNjE7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MTYyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE2MSwg
JngxNjIsIHgxNjAsIHgxNTEsIHgxMzUpOworICB1aW50NjRfdCB4MTYzOworICBmaWF0X3AyNTZf
dWludDEgeDE2NDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNjMsICZ4MTY0LCB4MTYy
LCB4MTUzLCB4MTM3KTsKKyAgdWludDY0X3QgeDE2NTsKKyAgdWludDY0X3QgeDE2NjsKKyAgZmlh
dF9wMjU2X211bHhfdTY0KCZ4MTY1LCAmeDE2NiwgeDE1NSwgVUlOVDY0X0MoMHhmZmZmZmZmZjAw
MDAwMDAxKSk7CisgIHVpbnQ2NF90IHgxNjc7CisgIHVpbnQ2NF90IHgxNjg7CisgIGZpYXRfcDI1
Nl9tdWx4X3U2NCgmeDE2NywgJngxNjgsIHgxNTUsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAg
dWludDY0X3QgeDE2OTsKKyAgdWludDY0X3QgeDE3MDsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4
MTY5LCAmeDE3MCwgeDE1NSwgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2
NF90IHgxNzE7CisgIGZpYXRfcDI1Nl91aW50MSB4MTcyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3U2NCgmeDE3MSwgJngxNzIsIDB4MCwgeDE2NywgeDE3MCk7CisgIHVpbnQ2NF90IHgxNzM7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MTc0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE3Mywg
JngxNzQsIHgxNzIsIDB4MCwgeDE2OCk7CisgIHVpbnQ2NF90IHgxNzU7CisgIGZpYXRfcDI1Nl91
aW50MSB4MTc2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE3NSwgJngxNzYsIDB4MCwg
eDE2OSwgeDE1NSk7CisgIHVpbnQ2NF90IHgxNzc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTc4Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE3NywgJngxNzgsIHgxNzYsIHgxNzEsIHgxNTcp
OworICB1aW50NjRfdCB4MTc5OworICBmaWF0X3AyNTZfdWludDEgeDE4MDsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91NjQoJngxNzksICZ4MTgwLCB4MTc4LCB4MTczLCB4MTU5KTsKKyAgdWludDY0
X3QgeDE4MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxODI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTY0KCZ4MTgxLCAmeDE4MiwgeDE4MCwgeDE2NSwgeDE2MSk7CisgIHVpbnQ2NF90IHgxODM7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MTg0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE4Mywg
JngxODQsIHgxODIsIHgxNjYsIHgxNjMpOworICB1aW50NjRfdCB4MTg1OworICBmaWF0X3AyNTZf
dWludDEgeDE4NjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxODUsICZ4MTg2LCB4MTg0
LCAweDAsIHgxNjQpOworICB1aW50NjRfdCB4MTg3OworICBmaWF0X3AyNTZfdWludDEgeDE4ODsK
KyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4MTg3LCAmeDE4OCwgMHgwLCB4MTc3LCBVSU5U
NjRfQygweGZmZmZmZmZmZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDE4OTsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgxOTA7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3U2NCgmeDE4OSwgJngxOTAsIHgx
ODgsIHgxNzksIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDE5MTsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgxOTI7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3U2NCgmeDE5MSwgJngx
OTIsIHgxOTAsIHgxODEsIDB4MCk7CisgIHVpbnQ2NF90IHgxOTM7CisgIGZpYXRfcDI1Nl91aW50
MSB4MTk0OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91NjQoJngxOTMsICZ4MTk0LCB4MTkyLCB4
MTgzLCBVSU5UNjRfQygweGZmZmZmZmZmMDAwMDAwMDEpKTsKKyAgdWludDY0X3QgeDE5NTsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHgxOTY7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3U2NCgmeDE5NSwg
JngxOTYsIHgxOTQsIHgxODUsIDB4MCk7CisgIHVpbnQ2NF90IHgxOTc7CisgIGZpYXRfcDI1Nl9j
bW92em56X3U2NCgmeDE5NywgeDE5NiwgeDE4NywgeDE3Nyk7CisgIHVpbnQ2NF90IHgxOTg7Cisg
IGZpYXRfcDI1Nl9jbW92em56X3U2NCgmeDE5OCwgeDE5NiwgeDE4OSwgeDE3OSk7CisgIHVpbnQ2
NF90IHgxOTk7CisgIGZpYXRfcDI1Nl9jbW92em56X3U2NCgmeDE5OSwgeDE5NiwgeDE5MSwgeDE4
MSk7CisgIHVpbnQ2NF90IHgyMDA7CisgIGZpYXRfcDI1Nl9jbW92em56X3U2NCgmeDIwMCwgeDE5
NiwgeDE5MywgeDE4Myk7CisgIG91dDFbMF0gPSB4MTk3OworICBvdXQxWzFdID0geDE5ODsKKyAg
b3V0MVsyXSA9IHgxOTk7CisgIG91dDFbM10gPSB4MjAwOworfQorCisvKgorICogSW5wdXQgQm91
bmRzOgorICogICBhcmcxOiBbWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4
ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAw
eGZmZmZmZmZmZmZmZmZmZmZdXQorICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAg
fj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgw
IH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXV0KKyAq
Lworc3RhdGljIHZvaWQgZmlhdF9wMjU2X3NxdWFyZSh1aW50NjRfdCBvdXQxWzRdLCBjb25zdCB1
aW50NjRfdCBhcmcxWzRdKSB7CisgIHVpbnQ2NF90IHgxID0gKGFyZzFbMV0pOworICB1aW50NjRf
dCB4MiA9IChhcmcxWzJdKTsKKyAgdWludDY0X3QgeDMgPSAoYXJnMVszXSk7CisgIHVpbnQ2NF90
IHg0ID0gKGFyZzFbMF0pOworICB1aW50NjRfdCB4NTsKKyAgdWludDY0X3QgeDY7CisgIGZpYXRf
cDI1Nl9tdWx4X3U2NCgmeDUsICZ4NiwgeDQsIChhcmcxWzNdKSk7CisgIHVpbnQ2NF90IHg3Owor
ICB1aW50NjRfdCB4ODsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4NywgJng4LCB4NCwgKGFyZzFb
Ml0pKTsKKyAgdWludDY0X3QgeDk7CisgIHVpbnQ2NF90IHgxMDsKKyAgZmlhdF9wMjU2X211bHhf
dTY0KCZ4OSwgJngxMCwgeDQsIChhcmcxWzFdKSk7CisgIHVpbnQ2NF90IHgxMTsKKyAgdWludDY0
X3QgeDEyOworICBmaWF0X3AyNTZfbXVseF91NjQoJngxMSwgJngxMiwgeDQsIChhcmcxWzBdKSk7
CisgIHVpbnQ2NF90IHgxMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNDsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91NjQoJngxMywgJngxNCwgMHgwLCB4OSwgeDEyKTsKKyAgdWludDY0X3QgeDE1Owor
ICBmaWF0X3AyNTZfdWludDEgeDE2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE1LCAm
eDE2LCB4MTQsIHg3LCB4MTApOworICB1aW50NjRfdCB4MTc7CisgIGZpYXRfcDI1Nl91aW50MSB4
MTg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTcsICZ4MTgsIHgxNiwgeDUsIHg4KTsK
KyAgdWludDY0X3QgeDE5OworICBmaWF0X3AyNTZfdWludDEgeDIwOworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3U2NCgmeDE5LCAmeDIwLCB4MTgsIDB4MCwgeDYpOworICB1aW50NjRfdCB4MjE7Cisg
IHVpbnQ2NF90IHgyMjsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MjEsICZ4MjIsIHgxMSwgVUlO
VDY0X0MoMHhmZmZmZmZmZjAwMDAwMDAxKSk7CisgIHVpbnQ2NF90IHgyMzsKKyAgdWludDY0X3Qg
eDI0OworICBmaWF0X3AyNTZfbXVseF91NjQoJngyMywgJngyNCwgeDExLCBVSU5UMzJfQygweGZm
ZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgyNTsKKyAgdWludDY0X3QgeDI2OworICBmaWF0X3AyNTZf
bXVseF91NjQoJngyNSwgJngyNiwgeDExLCBVSU5UNjRfQygweGZmZmZmZmZmZmZmZmZmZmYpKTsK
KyAgdWludDY0X3QgeDI3OworICBmaWF0X3AyNTZfdWludDEgeDI4OworICBmaWF0X3AyNTZfYWRk
Y2Fycnl4X3U2NCgmeDI3LCAmeDI4LCAweDAsIHgyMywgeDI2KTsKKyAgdWludDY0X3QgeDI5Owor
ICBmaWF0X3AyNTZfdWludDEgeDMwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDI5LCAm
eDMwLCB4MjgsIDB4MCwgeDI0KTsKKyAgdWludDY0X3QgeDMxOworICBmaWF0X3AyNTZfdWludDEg
eDMyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDMxLCAmeDMyLCAweDAsIHgyNSwgeDEx
KTsKKyAgdWludDY0X3QgeDMzOworICBmaWF0X3AyNTZfdWludDEgeDM0OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3U2NCgmeDMzLCAmeDM0LCB4MzIsIHgyNywgeDEzKTsKKyAgdWludDY0X3QgeDM1
OworICBmaWF0X3AyNTZfdWludDEgeDM2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDM1
LCAmeDM2LCB4MzQsIHgyOSwgeDE1KTsKKyAgdWludDY0X3QgeDM3OworICBmaWF0X3AyNTZfdWlu
dDEgeDM4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDM3LCAmeDM4LCB4MzYsIHgyMSwg
eDE3KTsKKyAgdWludDY0X3QgeDM5OworICBmaWF0X3AyNTZfdWludDEgeDQwOworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3U2NCgmeDM5LCAmeDQwLCB4MzgsIHgyMiwgeDE5KTsKKyAgdWludDY0X3Qg
eDQxOworICBmaWF0X3AyNTZfdWludDEgeDQyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgm
eDQxLCAmeDQyLCB4NDAsIDB4MCwgMHgwKTsKKyAgdWludDY0X3QgeDQzOworICB1aW50NjRfdCB4
NDQ7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDQzLCAmeDQ0LCB4MSwgKGFyZzFbM10pKTsKKyAg
dWludDY0X3QgeDQ1OworICB1aW50NjRfdCB4NDY7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDQ1
LCAmeDQ2LCB4MSwgKGFyZzFbMl0pKTsKKyAgdWludDY0X3QgeDQ3OworICB1aW50NjRfdCB4NDg7
CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDQ3LCAmeDQ4LCB4MSwgKGFyZzFbMV0pKTsKKyAgdWlu
dDY0X3QgeDQ5OworICB1aW50NjRfdCB4NTA7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDQ5LCAm
eDUwLCB4MSwgKGFyZzFbMF0pKTsKKyAgdWludDY0X3QgeDUxOworICBmaWF0X3AyNTZfdWludDEg
eDUyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDUxLCAmeDUyLCAweDAsIHg0NywgeDUw
KTsKKyAgdWludDY0X3QgeDUzOworICBmaWF0X3AyNTZfdWludDEgeDU0OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3U2NCgmeDUzLCAmeDU0LCB4NTIsIHg0NSwgeDQ4KTsKKyAgdWludDY0X3QgeDU1
OworICBmaWF0X3AyNTZfdWludDEgeDU2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDU1
LCAmeDU2LCB4NTQsIHg0MywgeDQ2KTsKKyAgdWludDY0X3QgeDU3OworICBmaWF0X3AyNTZfdWlu
dDEgeDU4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDU3LCAmeDU4LCB4NTYsIDB4MCwg
eDQ0KTsKKyAgdWludDY0X3QgeDU5OworICBmaWF0X3AyNTZfdWludDEgeDYwOworICBmaWF0X3Ay
NTZfYWRkY2Fycnl4X3U2NCgmeDU5LCAmeDYwLCAweDAsIHg0OSwgeDMzKTsKKyAgdWludDY0X3Qg
eDYxOworICBmaWF0X3AyNTZfdWludDEgeDYyOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgm
eDYxLCAmeDYyLCB4NjAsIHg1MSwgeDM1KTsKKyAgdWludDY0X3QgeDYzOworICBmaWF0X3AyNTZf
dWludDEgeDY0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDYzLCAmeDY0LCB4NjIsIHg1
MywgeDM3KTsKKyAgdWludDY0X3QgeDY1OworICBmaWF0X3AyNTZfdWludDEgeDY2OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDY1LCAmeDY2LCB4NjQsIHg1NSwgeDM5KTsKKyAgdWludDY0
X3QgeDY3OworICBmaWF0X3AyNTZfdWludDEgeDY4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2
NCgmeDY3LCAmeDY4LCB4NjYsIHg1NywgKGZpYXRfcDI1Nl91aW50MSl4NDEpOworICB1aW50NjRf
dCB4Njk7CisgIHVpbnQ2NF90IHg3MDsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4NjksICZ4NzAs
IHg1OSwgVUlOVDY0X0MoMHhmZmZmZmZmZjAwMDAwMDAxKSk7CisgIHVpbnQ2NF90IHg3MTsKKyAg
dWludDY0X3QgeDcyOworICBmaWF0X3AyNTZfbXVseF91NjQoJng3MSwgJng3MiwgeDU5LCBVSU5U
MzJfQygweGZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHg3MzsKKyAgdWludDY0X3QgeDc0OworICBm
aWF0X3AyNTZfbXVseF91NjQoJng3MywgJng3NCwgeDU5LCBVSU5UNjRfQygweGZmZmZmZmZmZmZm
ZmZmZmYpKTsKKyAgdWludDY0X3QgeDc1OworICBmaWF0X3AyNTZfdWludDEgeDc2OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDc1LCAmeDc2LCAweDAsIHg3MSwgeDc0KTsKKyAgdWludDY0
X3QgeDc3OworICBmaWF0X3AyNTZfdWludDEgeDc4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2
NCgmeDc3LCAmeDc4LCB4NzYsIDB4MCwgeDcyKTsKKyAgdWludDY0X3QgeDc5OworICBmaWF0X3Ay
NTZfdWludDEgeDgwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDc5LCAmeDgwLCAweDAs
IHg3MywgeDU5KTsKKyAgdWludDY0X3QgeDgxOworICBmaWF0X3AyNTZfdWludDEgeDgyOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDgxLCAmeDgyLCB4ODAsIHg3NSwgeDYxKTsKKyAgdWlu
dDY0X3QgeDgzOworICBmaWF0X3AyNTZfdWludDEgeDg0OworICBmaWF0X3AyNTZfYWRkY2Fycnl4
X3U2NCgmeDgzLCAmeDg0LCB4ODIsIHg3NywgeDYzKTsKKyAgdWludDY0X3QgeDg1OworICBmaWF0
X3AyNTZfdWludDEgeDg2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDg1LCAmeDg2LCB4
ODQsIHg2OSwgeDY1KTsKKyAgdWludDY0X3QgeDg3OworICBmaWF0X3AyNTZfdWludDEgeDg4Owor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDg3LCAmeDg4LCB4ODYsIHg3MCwgeDY3KTsKKyAg
dWludDY0X3QgeDg5OworICBmaWF0X3AyNTZfdWludDEgeDkwOworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3U2NCgmeDg5LCAmeDkwLCB4ODgsIDB4MCwgeDY4KTsKKyAgdWludDY0X3QgeDkxOworICB1
aW50NjRfdCB4OTI7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDkxLCAmeDkyLCB4MiwgKGFyZzFb
M10pKTsKKyAgdWludDY0X3QgeDkzOworICB1aW50NjRfdCB4OTQ7CisgIGZpYXRfcDI1Nl9tdWx4
X3U2NCgmeDkzLCAmeDk0LCB4MiwgKGFyZzFbMl0pKTsKKyAgdWludDY0X3QgeDk1OworICB1aW50
NjRfdCB4OTY7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDk1LCAmeDk2LCB4MiwgKGFyZzFbMV0p
KTsKKyAgdWludDY0X3QgeDk3OworICB1aW50NjRfdCB4OTg7CisgIGZpYXRfcDI1Nl9tdWx4X3U2
NCgmeDk3LCAmeDk4LCB4MiwgKGFyZzFbMF0pKTsKKyAgdWludDY0X3QgeDk5OworICBmaWF0X3Ay
NTZfdWludDEgeDEwMDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng5OSwgJngxMDAsIDB4
MCwgeDk1LCB4OTgpOworICB1aW50NjRfdCB4MTAxOworICBmaWF0X3AyNTZfdWludDEgeDEwMjsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxMDEsICZ4MTAyLCB4MTAwLCB4OTMsIHg5Nik7
CisgIHVpbnQ2NF90IHgxMDM7CisgIGZpYXRfcDI1Nl91aW50MSB4MTA0OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3U2NCgmeDEwMywgJngxMDQsIHgxMDIsIHg5MSwgeDk0KTsKKyAgdWludDY0X3Qg
eDEwNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMDY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0
KCZ4MTA1LCAmeDEwNiwgeDEwNCwgMHgwLCB4OTIpOworICB1aW50NjRfdCB4MTA3OworICBmaWF0
X3AyNTZfdWludDEgeDEwODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxMDcsICZ4MTA4
LCAweDAsIHg5NywgeDgxKTsKKyAgdWludDY0X3QgeDEwOTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgx
MTA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTA5LCAmeDExMCwgeDEwOCwgeDk5LCB4
ODMpOworICB1aW50NjRfdCB4MTExOworICBmaWF0X3AyNTZfdWludDEgeDExMjsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91NjQoJngxMTEsICZ4MTEyLCB4MTEwLCB4MTAxLCB4ODUpOworICB1aW50
NjRfdCB4MTEzOworICBmaWF0X3AyNTZfdWludDEgeDExNDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91NjQoJngxMTMsICZ4MTE0LCB4MTEyLCB4MTAzLCB4ODcpOworICB1aW50NjRfdCB4MTE1Owor
ICBmaWF0X3AyNTZfdWludDEgeDExNjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxMTUs
ICZ4MTE2LCB4MTE0LCB4MTA1LCB4ODkpOworICB1aW50NjRfdCB4MTE3OworICB1aW50NjRfdCB4
MTE4OworICBmaWF0X3AyNTZfbXVseF91NjQoJngxMTcsICZ4MTE4LCB4MTA3LCBVSU5UNjRfQygw
eGZmZmZmZmZmMDAwMDAwMDEpKTsKKyAgdWludDY0X3QgeDExOTsKKyAgdWludDY0X3QgeDEyMDsK
KyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MTE5LCAmeDEyMCwgeDEwNywgVUlOVDMyX0MoMHhmZmZm
ZmZmZikpOworICB1aW50NjRfdCB4MTIxOworICB1aW50NjRfdCB4MTIyOworICBmaWF0X3AyNTZf
bXVseF91NjQoJngxMjEsICZ4MTIyLCB4MTA3LCBVSU5UNjRfQygweGZmZmZmZmZmZmZmZmZmZmYp
KTsKKyAgdWludDY0X3QgeDEyMzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMjQ7CisgIGZpYXRfcDI1
Nl9hZGRjYXJyeXhfdTY0KCZ4MTIzLCAmeDEyNCwgMHgwLCB4MTE5LCB4MTIyKTsKKyAgdWludDY0
X3QgeDEyNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMjY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTY0KCZ4MTI1LCAmeDEyNiwgeDEyNCwgMHgwLCB4MTIwKTsKKyAgdWludDY0X3QgeDEyNzsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHgxMjg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTI3LCAm
eDEyOCwgMHgwLCB4MTIxLCB4MTA3KTsKKyAgdWludDY0X3QgeDEyOTsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHgxMzA7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTI5LCAmeDEzMCwgeDEyOCwg
eDEyMywgeDEwOSk7CisgIHVpbnQ2NF90IHgxMzE7CisgIGZpYXRfcDI1Nl91aW50MSB4MTMyOwor
ICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDEzMSwgJngxMzIsIHgxMzAsIHgxMjUsIHgxMTEp
OworICB1aW50NjRfdCB4MTMzOworICBmaWF0X3AyNTZfdWludDEgeDEzNDsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91NjQoJngxMzMsICZ4MTM0LCB4MTMyLCB4MTE3LCB4MTEzKTsKKyAgdWludDY0
X3QgeDEzNTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMzY7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTY0KCZ4MTM1LCAmeDEzNiwgeDEzNCwgeDExOCwgeDExNSk7CisgIHVpbnQ2NF90IHgxMzc7Cisg
IGZpYXRfcDI1Nl91aW50MSB4MTM4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDEzNywg
JngxMzgsIHgxMzYsIDB4MCwgeDExNik7CisgIHVpbnQ2NF90IHgxMzk7CisgIHVpbnQ2NF90IHgx
NDA7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDEzOSwgJngxNDAsIHgzLCAoYXJnMVszXSkpOwor
ICB1aW50NjRfdCB4MTQxOworICB1aW50NjRfdCB4MTQyOworICBmaWF0X3AyNTZfbXVseF91NjQo
JngxNDEsICZ4MTQyLCB4MywgKGFyZzFbMl0pKTsKKyAgdWludDY0X3QgeDE0MzsKKyAgdWludDY0
X3QgeDE0NDsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MTQzLCAmeDE0NCwgeDMsIChhcmcxWzFd
KSk7CisgIHVpbnQ2NF90IHgxNDU7CisgIHVpbnQ2NF90IHgxNDY7CisgIGZpYXRfcDI1Nl9tdWx4
X3U2NCgmeDE0NSwgJngxNDYsIHgzLCAoYXJnMVswXSkpOworICB1aW50NjRfdCB4MTQ3OworICBm
aWF0X3AyNTZfdWludDEgeDE0ODsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNDcsICZ4
MTQ4LCAweDAsIHgxNDMsIHgxNDYpOworICB1aW50NjRfdCB4MTQ5OworICBmaWF0X3AyNTZfdWlu
dDEgeDE1MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNDksICZ4MTUwLCB4MTQ4LCB4
MTQxLCB4MTQ0KTsKKyAgdWludDY0X3QgeDE1MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNTI7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTUxLCAmeDE1MiwgeDE1MCwgeDEzOSwgeDE0Mik7
CisgIHVpbnQ2NF90IHgxNTM7CisgIGZpYXRfcDI1Nl91aW50MSB4MTU0OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3U2NCgmeDE1MywgJngxNTQsIHgxNTIsIDB4MCwgeDE0MCk7CisgIHVpbnQ2NF90
IHgxNTU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTU2OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2
NCgmeDE1NSwgJngxNTYsIDB4MCwgeDE0NSwgeDEyOSk7CisgIHVpbnQ2NF90IHgxNTc7CisgIGZp
YXRfcDI1Nl91aW50MSB4MTU4OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE1NywgJngx
NTgsIHgxNTYsIHgxNDcsIHgxMzEpOworICB1aW50NjRfdCB4MTU5OworICBmaWF0X3AyNTZfdWlu
dDEgeDE2MDsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNTksICZ4MTYwLCB4MTU4LCB4
MTQ5LCB4MTMzKTsKKyAgdWludDY0X3QgeDE2MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNjI7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTYxLCAmeDE2MiwgeDE2MCwgeDE1MSwgeDEzNSk7
CisgIHVpbnQ2NF90IHgxNjM7CisgIGZpYXRfcDI1Nl91aW50MSB4MTY0OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3U2NCgmeDE2MywgJngxNjQsIHgxNjIsIHgxNTMsIHgxMzcpOworICB1aW50NjRf
dCB4MTY1OworICB1aW50NjRfdCB4MTY2OworICBmaWF0X3AyNTZfbXVseF91NjQoJngxNjUsICZ4
MTY2LCB4MTU1LCBVSU5UNjRfQygweGZmZmZmZmZmMDAwMDAwMDEpKTsKKyAgdWludDY0X3QgeDE2
NzsKKyAgdWludDY0X3QgeDE2ODsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MTY3LCAmeDE2OCwg
eDE1NSwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50NjRfdCB4MTY5OworICB1aW50NjRf
dCB4MTcwOworICBmaWF0X3AyNTZfbXVseF91NjQoJngxNjksICZ4MTcwLCB4MTU1LCBVSU5UNjRf
QygweGZmZmZmZmZmZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDE3MTsKKyAgZmlhdF9wMjU2X3Vp
bnQxIHgxNzI7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTcxLCAmeDE3MiwgMHgwLCB4
MTY3LCB4MTcwKTsKKyAgdWludDY0X3QgeDE3MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNzQ7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTczLCAmeDE3NCwgeDE3MiwgMHgwLCB4MTY4KTsK
KyAgdWludDY0X3QgeDE3NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNzY7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTY0KCZ4MTc1LCAmeDE3NiwgMHgwLCB4MTY5LCB4MTU1KTsKKyAgdWludDY0X3Qg
eDE3NzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxNzg7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0
KCZ4MTc3LCAmeDE3OCwgeDE3NiwgeDE3MSwgeDE1Nyk7CisgIHVpbnQ2NF90IHgxNzk7CisgIGZp
YXRfcDI1Nl91aW50MSB4MTgwOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE3OSwgJngx
ODAsIHgxNzgsIHgxNzMsIHgxNTkpOworICB1aW50NjRfdCB4MTgxOworICBmaWF0X3AyNTZfdWlu
dDEgeDE4MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxODEsICZ4MTgyLCB4MTgwLCB4
MTY1LCB4MTYxKTsKKyAgdWludDY0X3QgeDE4MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxODQ7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTgzLCAmeDE4NCwgeDE4MiwgeDE2NiwgeDE2Myk7
CisgIHVpbnQ2NF90IHgxODU7CisgIGZpYXRfcDI1Nl91aW50MSB4MTg2OworICBmaWF0X3AyNTZf
YWRkY2Fycnl4X3U2NCgmeDE4NSwgJngxODYsIHgxODQsIDB4MCwgeDE2NCk7CisgIHVpbnQ2NF90
IHgxODc7CisgIGZpYXRfcDI1Nl91aW50MSB4MTg4OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91
NjQoJngxODcsICZ4MTg4LCAweDAsIHgxNzcsIFVJTlQ2NF9DKDB4ZmZmZmZmZmZmZmZmZmZmZikp
OworICB1aW50NjRfdCB4MTg5OworICBmaWF0X3AyNTZfdWludDEgeDE5MDsKKyAgZmlhdF9wMjU2
X3N1YmJvcnJvd3hfdTY0KCZ4MTg5LCAmeDE5MCwgeDE4OCwgeDE3OSwgVUlOVDMyX0MoMHhmZmZm
ZmZmZikpOworICB1aW50NjRfdCB4MTkxOworICBmaWF0X3AyNTZfdWludDEgeDE5MjsKKyAgZmlh
dF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4MTkxLCAmeDE5MiwgeDE5MCwgeDE4MSwgMHgwKTsKKyAg
dWludDY0X3QgeDE5MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxOTQ7CisgIGZpYXRfcDI1Nl9zdWJi
b3Jyb3d4X3U2NCgmeDE5MywgJngxOTQsIHgxOTIsIHgxODMsIFVJTlQ2NF9DKDB4ZmZmZmZmZmYw
MDAwMDAwMSkpOworICB1aW50NjRfdCB4MTk1OworICBmaWF0X3AyNTZfdWludDEgeDE5NjsKKyAg
ZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4MTk1LCAmeDE5NiwgeDE5NCwgeDE4NSwgMHgwKTsK
KyAgdWludDY0X3QgeDE5NzsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTY0KCZ4MTk3LCB4MTk2LCB4
MTg3LCB4MTc3KTsKKyAgdWludDY0X3QgeDE5ODsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTY0KCZ4
MTk4LCB4MTk2LCB4MTg5LCB4MTc5KTsKKyAgdWludDY0X3QgeDE5OTsKKyAgZmlhdF9wMjU2X2Nt
b3Z6bnpfdTY0KCZ4MTk5LCB4MTk2LCB4MTkxLCB4MTgxKTsKKyAgdWludDY0X3QgeDIwMDsKKyAg
ZmlhdF9wMjU2X2Ntb3Z6bnpfdTY0KCZ4MjAwLCB4MTk2LCB4MTkzLCB4MTgzKTsKKyAgb3V0MVsw
XSA9IHgxOTc7CisgIG91dDFbMV0gPSB4MTk4OworICBvdXQxWzJdID0geDE5OTsKKyAgb3V0MVsz
XSA9IHgyMDA7Cit9CisKKy8qCisgKiBJbnB1dCBCb3VuZHM6CisgKiAgIGFyZzE6IFtbMHgwIH4+
IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+
PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl1dCisgKiAg
IGFyZzI6IFtbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZm
ZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZm
ZmZmZmZmZl1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4MCB+PiAweGZmZmZm
ZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZm
ZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdXQorICovCitzdGF0aWMg
dm9pZCBmaWF0X3AyNTZfYWRkKHVpbnQ2NF90IG91dDFbNF0sIGNvbnN0IHVpbnQ2NF90IGFyZzFb
NF0sIGNvbnN0IHVpbnQ2NF90IGFyZzJbNF0pIHsKKyAgdWludDY0X3QgeDE7CisgIGZpYXRfcDI1
Nl91aW50MSB4MjsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxLCAmeDIsIDB4MCwgKGFy
ZzJbMF0pLCAoYXJnMVswXSkpOworICB1aW50NjRfdCB4MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0
OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDMsICZ4NCwgeDIsIChhcmcyWzFdKSwgKGFy
ZzFbMV0pKTsKKyAgdWludDY0X3QgeDU7CisgIGZpYXRfcDI1Nl91aW50MSB4NjsKKyAgZmlhdF9w
MjU2X2FkZGNhcnJ5eF91NjQoJng1LCAmeDYsIHg0LCAoYXJnMlsyXSksIChhcmcxWzJdKSk7Cisg
IHVpbnQ2NF90IHg3OworICBmaWF0X3AyNTZfdWludDEgeDg7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTY0KCZ4NywgJng4LCB4NiwgKGFyZzJbM10pLCAoYXJnMVszXSkpOworICB1aW50NjRfdCB4
OTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMDsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4
OSwgJngxMCwgMHgwLCB4MSwgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2
NF90IHgxMTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMjsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hf
dTY0KCZ4MTEsICZ4MTIsIHgxMCwgeDMsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDY0
X3QgeDEzOworICBmaWF0X3AyNTZfdWludDEgeDE0OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91
NjQoJngxMywgJngxNCwgeDEyLCB4NSwgMHgwKTsKKyAgdWludDY0X3QgeDE1OworICBmaWF0X3Ay
NTZfdWludDEgeDE2OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91NjQoJngxNSwgJngxNiwgeDE0
LCB4NywgVUlOVDY0X0MoMHhmZmZmZmZmZjAwMDAwMDAxKSk7CisgIHVpbnQ2NF90IHgxNzsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHgxODsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4MTcsICZ4
MTgsIHgxNiwgeDgsIDB4MCk7CisgIHVpbnQ2NF90IHgxOTsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpf
dTY0KCZ4MTksIHgxOCwgeDksIHgxKTsKKyAgdWludDY0X3QgeDIwOworICBmaWF0X3AyNTZfY21v
dnpuel91NjQoJngyMCwgeDE4LCB4MTEsIHgzKTsKKyAgdWludDY0X3QgeDIxOworICBmaWF0X3Ay
NTZfY21vdnpuel91NjQoJngyMSwgeDE4LCB4MTMsIHg1KTsKKyAgdWludDY0X3QgeDIyOworICBm
aWF0X3AyNTZfY21vdnpuel91NjQoJngyMiwgeDE4LCB4MTUsIHg3KTsKKyAgb3V0MVswXSA9IHgx
OTsKKyAgb3V0MVsxXSA9IHgyMDsKKyAgb3V0MVsyXSA9IHgyMTsKKyAgb3V0MVszXSA9IHgyMjsK
K30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTogW1sweDAgfj4gMHhmZmZmZmZm
ZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZm
ZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXV0KKyAqICAgYXJnMjogW1sw
eDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBb
MHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXV0K
KyAqIE91dHB1dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZm
Zl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZm
ZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl1dCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRf
cDI1Nl9zdWIodWludDY0X3Qgb3V0MVs0XSwgY29uc3QgdWludDY0X3QgYXJnMVs0XSwgY29uc3Qg
dWludDY0X3QgYXJnMls0XSkgeworICB1aW50NjRfdCB4MTsKKyAgZmlhdF9wMjU2X3VpbnQxIHgy
OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91NjQoJngxLCAmeDIsIDB4MCwgKGFyZzFbMF0pLCAo
YXJnMlswXSkpOworICB1aW50NjRfdCB4MzsKKyAgZmlhdF9wMjU2X3VpbnQxIHg0OworICBmaWF0
X3AyNTZfc3ViYm9ycm93eF91NjQoJngzLCAmeDQsIHgyLCAoYXJnMVsxXSksIChhcmcyWzFdKSk7
CisgIHVpbnQ2NF90IHg1OworICBmaWF0X3AyNTZfdWludDEgeDY7CisgIGZpYXRfcDI1Nl9zdWJi
b3Jyb3d4X3U2NCgmeDUsICZ4NiwgeDQsIChhcmcxWzJdKSwgKGFyZzJbMl0pKTsKKyAgdWludDY0
X3QgeDc7CisgIGZpYXRfcDI1Nl91aW50MSB4ODsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0
KCZ4NywgJng4LCB4NiwgKGFyZzFbM10pLCAoYXJnMlszXSkpOworICB1aW50NjRfdCB4OTsKKyAg
ZmlhdF9wMjU2X2Ntb3Z6bnpfdTY0KCZ4OSwgeDgsIDB4MCwgVUlOVDY0X0MoMHhmZmZmZmZmZmZm
ZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgxMDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMTsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxMCwgJngxMSwgMHgwLCAoeDkgJiBVSU5UNjRfQygweGZm
ZmZmZmZmZmZmZmZmZmYpKSwgeDEpOworICB1aW50NjRfdCB4MTI7CisgIGZpYXRfcDI1Nl91aW50
MSB4MTM7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTIsICZ4MTMsIHgxMSwgKHg5ICYg
VUlOVDMyX0MoMHhmZmZmZmZmZikpLCB4Myk7CisgIHVpbnQ2NF90IHgxNDsKKyAgZmlhdF9wMjU2
X3VpbnQxIHgxNTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNCwgJngxNSwgeDEzLCAw
eDAsIHg1KTsKKyAgdWludDY0X3QgeDE2OworICBmaWF0X3AyNTZfdWludDEgeDE3OworICBmaWF0
X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE2LCAmeDE3LCB4MTUsICh4OSAmIFVJTlQ2NF9DKDB4ZmZm
ZmZmZmYwMDAwMDAwMSkpLCB4Nyk7CisgIG91dDFbMF0gPSB4MTA7CisgIG91dDFbMV0gPSB4MTI7
CisgIG91dDFbMl0gPSB4MTQ7CisgIG91dDFbM10gPSB4MTY7Cit9CisKKy8qCisgKiBJbnB1dCBC
b3VuZHM6CisgKiAgIGFyZzE6IFtbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4g
MHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+
IDB4ZmZmZmZmZmZmZmZmZmZmZl1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBbWzB4
MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsw
eDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdXQor
ICovCitzdGF0aWMgdm9pZCBmaWF0X3AyNTZfb3BwKHVpbnQ2NF90IG91dDFbNF0sIGNvbnN0IHVp
bnQ2NF90IGFyZzFbNF0pIHsKKyAgdWludDY0X3QgeDE7CisgIGZpYXRfcDI1Nl91aW50MSB4MjsK
KyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4MSwgJngyLCAweDAsIDB4MCwgKGFyZzFbMF0p
KTsKKyAgdWludDY0X3QgeDM7CisgIGZpYXRfcDI1Nl91aW50MSB4NDsKKyAgZmlhdF9wMjU2X3N1
YmJvcnJvd3hfdTY0KCZ4MywgJng0LCB4MiwgMHgwLCAoYXJnMVsxXSkpOworICB1aW50NjRfdCB4
NTsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2OworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91NjQoJng1
LCAmeDYsIHg0LCAweDAsIChhcmcxWzJdKSk7CisgIHVpbnQ2NF90IHg3OworICBmaWF0X3AyNTZf
dWludDEgeDg7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3U2NCgmeDcsICZ4OCwgeDYsIDB4MCwg
KGFyZzFbM10pKTsKKyAgdWludDY0X3QgeDk7CisgIGZpYXRfcDI1Nl9jbW92em56X3U2NCgmeDks
IHg4LCAweDAsIFVJTlQ2NF9DKDB4ZmZmZmZmZmZmZmZmZmZmZikpOworICB1aW50NjRfdCB4MTA7
CisgIGZpYXRfcDI1Nl91aW50MSB4MTE7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MTAs
ICZ4MTEsIDB4MCwgKHg5ICYgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSksIHgxKTsKKyAg
dWludDY0X3QgeDEyOworICBmaWF0X3AyNTZfdWludDEgeDEzOworICBmaWF0X3AyNTZfYWRkY2Fy
cnl4X3U2NCgmeDEyLCAmeDEzLCB4MTEsICh4OSAmIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKSwgeDMp
OworICB1aW50NjRfdCB4MTQ7CisgIGZpYXRfcDI1Nl91aW50MSB4MTU7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTY0KCZ4MTQsICZ4MTUsIHgxMywgMHgwLCB4NSk7CisgIHVpbnQ2NF90IHgxNjsK
KyAgZmlhdF9wMjU2X3VpbnQxIHgxNzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngxNiwg
JngxNywgeDE1LCAoeDkgJiBVSU5UNjRfQygweGZmZmZmZmZmMDAwMDAwMDEpKSwgeDcpOworICBv
dXQxWzBdID0geDEwOworICBvdXQxWzFdID0geDEyOworICBvdXQxWzJdID0geDE0OworICBvdXQx
WzNdID0geDE2OworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcxOiBbWzB4MCB+
PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAg
fj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdXQorICog
T3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwg
WzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0s
IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXV0KKyAqLworc3RhdGljIHZvaWQgZmlhdF9wMjU2
X2Zyb21fbW9udGdvbWVyeSh1aW50NjRfdCBvdXQxWzRdLCBjb25zdCB1aW50NjRfdCBhcmcxWzRd
KSB7CisgIHVpbnQ2NF90IHgxID0gKGFyZzFbMF0pOworICB1aW50NjRfdCB4MjsKKyAgdWludDY0
X3QgeDM7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDIsICZ4MywgeDEsIFVJTlQ2NF9DKDB4ZmZm
ZmZmZmYwMDAwMDAwMSkpOworICB1aW50NjRfdCB4NDsKKyAgdWludDY0X3QgeDU7CisgIGZpYXRf
cDI1Nl9tdWx4X3U2NCgmeDQsICZ4NSwgeDEsIFVJTlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWlu
dDY0X3QgeDY7CisgIHVpbnQ2NF90IHg3OworICBmaWF0X3AyNTZfbXVseF91NjQoJng2LCAmeDcs
IHgxLCBVSU5UNjRfQygweGZmZmZmZmZmZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDg7CisgIGZp
YXRfcDI1Nl91aW50MSB4OTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng4LCAmeDksIDB4
MCwgeDQsIHg3KTsKKyAgdWludDY0X3QgeDEwOworICBmaWF0X3AyNTZfdWludDEgeDExOworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDEwLCAmeDExLCAweDAsIHg2LCB4MSk7CisgIHVpbnQ2
NF90IHgxMjsKKyAgZmlhdF9wMjU2X3VpbnQxIHgxMzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91
NjQoJngxMiwgJngxMywgeDExLCB4OCwgMHgwKTsKKyAgdWludDY0X3QgeDE0OworICBmaWF0X3Ay
NTZfdWludDEgeDE1OworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDE0LCAmeDE1LCAweDAs
IChhcmcxWzFdKSwgeDEyKTsKKyAgdWludDY0X3QgeDE2OworICB1aW50NjRfdCB4MTc7CisgIGZp
YXRfcDI1Nl9tdWx4X3U2NCgmeDE2LCAmeDE3LCB4MTQsIFVJTlQ2NF9DKDB4ZmZmZmZmZmYwMDAw
MDAwMSkpOworICB1aW50NjRfdCB4MTg7CisgIHVpbnQ2NF90IHgxOTsKKyAgZmlhdF9wMjU2X211
bHhfdTY0KCZ4MTgsICZ4MTksIHgxNCwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50NjRf
dCB4MjA7CisgIHVpbnQ2NF90IHgyMTsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4MjAsICZ4MjEs
IHgxNCwgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgyMjsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHgyMzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngyMiwgJngy
MywgMHgwLCB4MTgsIHgyMSk7CisgIHVpbnQ2NF90IHgyNDsKKyAgZmlhdF9wMjU2X3VpbnQxIHgy
NTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJngyNCwgJngyNSwgeDksIDB4MCwgeDUpOwor
ICB1aW50NjRfdCB4MjY7CisgIGZpYXRfcDI1Nl91aW50MSB4Mjc7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTY0KCZ4MjYsICZ4MjcsIHgxMywgeDI0LCAweDApOworICB1aW50NjRfdCB4Mjg7Cisg
IGZpYXRfcDI1Nl91aW50MSB4Mjk7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MjgsICZ4
MjksIHgxNSwgMHgwLCB4MjYpOworICB1aW50NjRfdCB4MzA7CisgIGZpYXRfcDI1Nl91aW50MSB4
MzE7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MzAsICZ4MzEsIDB4MCwgeDIwLCB4MTQp
OworICB1aW50NjRfdCB4MzI7CisgIGZpYXRfcDI1Nl91aW50MSB4MzM7CisgIGZpYXRfcDI1Nl9h
ZGRjYXJyeXhfdTY0KCZ4MzIsICZ4MzMsIHgzMSwgeDIyLCB4MjgpOworICB1aW50NjRfdCB4MzQ7
CisgIGZpYXRfcDI1Nl91aW50MSB4MzU7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MzQs
ICZ4MzUsIHgyMywgMHgwLCB4MTkpOworICB1aW50NjRfdCB4MzY7CisgIGZpYXRfcDI1Nl91aW50
MSB4Mzc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4MzYsICZ4MzcsIHgzMywgeDM0LCB4
Mik7CisgIHVpbnQ2NF90IHgzODsKKyAgZmlhdF9wMjU2X3VpbnQxIHgzOTsKKyAgZmlhdF9wMjU2
X2FkZGNhcnJ5eF91NjQoJngzOCwgJngzOSwgeDM3LCB4MTYsIHgzKTsKKyAgdWludDY0X3QgeDQw
OworICBmaWF0X3AyNTZfdWludDEgeDQxOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDQw
LCAmeDQxLCAweDAsIChhcmcxWzJdKSwgeDMyKTsKKyAgdWludDY0X3QgeDQyOworICBmaWF0X3Ay
NTZfdWludDEgeDQzOworICBmaWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDQyLCAmeDQzLCB4NDEs
IDB4MCwgeDM2KTsKKyAgdWludDY0X3QgeDQ0OworICBmaWF0X3AyNTZfdWludDEgeDQ1OworICBm
aWF0X3AyNTZfYWRkY2Fycnl4X3U2NCgmeDQ0LCAmeDQ1LCB4NDMsIDB4MCwgeDM4KTsKKyAgdWlu
dDY0X3QgeDQ2OworICB1aW50NjRfdCB4NDc7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDQ2LCAm
eDQ3LCB4NDAsIFVJTlQ2NF9DKDB4ZmZmZmZmZmYwMDAwMDAwMSkpOworICB1aW50NjRfdCB4NDg7
CisgIHVpbnQ2NF90IHg0OTsKKyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4NDgsICZ4NDksIHg0MCwg
VUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50NjRfdCB4NTA7CisgIHVpbnQ2NF90IHg1MTsK
KyAgZmlhdF9wMjU2X211bHhfdTY0KCZ4NTAsICZ4NTEsIHg0MCwgVUlOVDY0X0MoMHhmZmZmZmZm
ZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHg1MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1MzsKKyAg
ZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng1MiwgJng1MywgMHgwLCB4NDgsIHg1MSk7CisgIHVp
bnQ2NF90IHg1NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1NTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5
eF91NjQoJng1NCwgJng1NSwgMHgwLCB4NTAsIHg0MCk7CisgIHVpbnQ2NF90IHg1NjsKKyAgZmlh
dF9wMjU2X3VpbnQxIHg1NzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng1NiwgJng1Nywg
eDU1LCB4NTIsIHg0Mik7CisgIHVpbnQ2NF90IHg1ODsKKyAgZmlhdF9wMjU2X3VpbnQxIHg1OTsK
KyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng1OCwgJng1OSwgeDUzLCAweDAsIHg0OSk7Cisg
IHVpbnQ2NF90IHg2MDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2MTsKKyAgZmlhdF9wMjU2X2FkZGNh
cnJ5eF91NjQoJng2MCwgJng2MSwgeDU3LCB4NTgsIHg0NCk7CisgIHVpbnQ2NF90IHg2MjsKKyAg
ZmlhdF9wMjU2X3VpbnQxIHg2MzsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng2MiwgJng2
MywgeDM5LCB4MTcsIDB4MCk7CisgIHVpbnQ2NF90IHg2NDsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2
NTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng2NCwgJng2NSwgeDQ1LCAweDAsIHg2Mik7
CisgIHVpbnQ2NF90IHg2NjsKKyAgZmlhdF9wMjU2X3VpbnQxIHg2NzsKKyAgZmlhdF9wMjU2X2Fk
ZGNhcnJ5eF91NjQoJng2NiwgJng2NywgeDYxLCB4NDYsIHg2NCk7CisgIHVpbnQ2NF90IHg2ODsK
KyAgZmlhdF9wMjU2X3VpbnQxIHg2OTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng2OCwg
Jng2OSwgMHgwLCAoYXJnMVszXSksIHg1Nik7CisgIHVpbnQ2NF90IHg3MDsKKyAgZmlhdF9wMjU2
X3VpbnQxIHg3MTsKKyAgZmlhdF9wMjU2X2FkZGNhcnJ5eF91NjQoJng3MCwgJng3MSwgeDY5LCAw
eDAsIHg2MCk7CisgIHVpbnQ2NF90IHg3MjsKKyAgZmlhdF9wMjU2X3VpbnQxIHg3MzsKKyAgZmlh
dF9wMjU2X2FkZGNhcnJ5eF91NjQoJng3MiwgJng3MywgeDcxLCAweDAsIHg2Nik7CisgIHVpbnQ2
NF90IHg3NDsKKyAgdWludDY0X3QgeDc1OworICBmaWF0X3AyNTZfbXVseF91NjQoJng3NCwgJng3
NSwgeDY4LCBVSU5UNjRfQygweGZmZmZmZmZmMDAwMDAwMDEpKTsKKyAgdWludDY0X3QgeDc2Owor
ICB1aW50NjRfdCB4Nzc7CisgIGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDc2LCAmeDc3LCB4NjgsIFVJ
TlQzMl9DKDB4ZmZmZmZmZmYpKTsKKyAgdWludDY0X3QgeDc4OworICB1aW50NjRfdCB4Nzk7Cisg
IGZpYXRfcDI1Nl9tdWx4X3U2NCgmeDc4LCAmeDc5LCB4NjgsIFVJTlQ2NF9DKDB4ZmZmZmZmZmZm
ZmZmZmZmZikpOworICB1aW50NjRfdCB4ODA7CisgIGZpYXRfcDI1Nl91aW50MSB4ODE7CisgIGZp
YXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4ODAsICZ4ODEsIDB4MCwgeDc2LCB4NzkpOworICB1aW50
NjRfdCB4ODI7CisgIGZpYXRfcDI1Nl91aW50MSB4ODM7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhf
dTY0KCZ4ODIsICZ4ODMsIDB4MCwgeDc4LCB4NjgpOworICB1aW50NjRfdCB4ODQ7CisgIGZpYXRf
cDI1Nl91aW50MSB4ODU7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4ODQsICZ4ODUsIHg4
MywgeDgwLCB4NzApOworICB1aW50NjRfdCB4ODY7CisgIGZpYXRfcDI1Nl91aW50MSB4ODc7Cisg
IGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4ODYsICZ4ODcsIHg4MSwgMHgwLCB4NzcpOworICB1
aW50NjRfdCB4ODg7CisgIGZpYXRfcDI1Nl91aW50MSB4ODk7CisgIGZpYXRfcDI1Nl9hZGRjYXJy
eXhfdTY0KCZ4ODgsICZ4ODksIHg4NSwgeDg2LCB4NzIpOworICB1aW50NjRfdCB4OTA7CisgIGZp
YXRfcDI1Nl91aW50MSB4OTE7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4OTAsICZ4OTEs
IHg2NywgeDQ3LCAweDApOworICB1aW50NjRfdCB4OTI7CisgIGZpYXRfcDI1Nl91aW50MSB4OTM7
CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4OTIsICZ4OTMsIHg3MywgMHgwLCB4OTApOwor
ICB1aW50NjRfdCB4OTQ7CisgIGZpYXRfcDI1Nl91aW50MSB4OTU7CisgIGZpYXRfcDI1Nl9hZGRj
YXJyeXhfdTY0KCZ4OTQsICZ4OTUsIHg4OSwgeDc0LCB4OTIpOworICB1aW50NjRfdCB4OTY7Cisg
IGZpYXRfcDI1Nl91aW50MSB4OTc7CisgIGZpYXRfcDI1Nl9hZGRjYXJyeXhfdTY0KCZ4OTYsICZ4
OTcsIHg5NSwgeDc1LCAweDApOworICB1aW50NjRfdCB4OTg7CisgIGZpYXRfcDI1Nl91aW50MSB4
OTk7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3U2NCgmeDk4LCAmeDk5LCAweDAsIHg4NCwgVUlO
VDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZmKSk7CisgIHVpbnQ2NF90IHgxMDA7CisgIGZpYXRfcDI1
Nl91aW50MSB4MTAxOworICBmaWF0X3AyNTZfc3ViYm9ycm93eF91NjQoJngxMDAsICZ4MTAxLCB4
OTksIHg4OCwgVUlOVDMyX0MoMHhmZmZmZmZmZikpOworICB1aW50NjRfdCB4MTAyOworICBmaWF0
X3AyNTZfdWludDEgeDEwMzsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4MTAyLCAmeDEw
MywgeDEwMSwgeDk0LCAweDApOworICB1aW50NjRfdCB4MTA0OworICBmaWF0X3AyNTZfdWludDEg
eDEwNTsKKyAgZmlhdF9wMjU2X3N1YmJvcnJvd3hfdTY0KCZ4MTA0LCAmeDEwNSwgeDEwMywgeDk2
LCBVSU5UNjRfQygweGZmZmZmZmZmMDAwMDAwMDEpKTsKKyAgdWludDY0X3QgeDEwNjsKKyAgZmlh
dF9wMjU2X3VpbnQxIHgxMDc7CisgIGZpYXRfcDI1Nl9zdWJib3Jyb3d4X3U2NCgmeDEwNiwgJngx
MDcsIHgxMDUsIDB4MCwgMHgwKTsKKyAgdWludDY0X3QgeDEwODsKKyAgZmlhdF9wMjU2X2Ntb3Z6
bnpfdTY0KCZ4MTA4LCB4MTA3LCB4OTgsIHg4NCk7CisgIHVpbnQ2NF90IHgxMDk7CisgIGZpYXRf
cDI1Nl9jbW92em56X3U2NCgmeDEwOSwgeDEwNywgeDEwMCwgeDg4KTsKKyAgdWludDY0X3QgeDEx
MDsKKyAgZmlhdF9wMjU2X2Ntb3Z6bnpfdTY0KCZ4MTEwLCB4MTA3LCB4MTAyLCB4OTQpOworICB1
aW50NjRfdCB4MTExOworICBmaWF0X3AyNTZfY21vdnpuel91NjQoJngxMTEsIHgxMDcsIHgxMDQs
IHg5Nik7CisgIG91dDFbMF0gPSB4MTA4OworICBvdXQxWzFdID0geDEwOTsKKyAgb3V0MVsyXSA9
IHgxMTA7CisgIG91dDFbM10gPSB4MTExOworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICog
ICBhcmcxOiBbWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZm
ZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZm
ZmZmZmZmZmZdXQorICogT3V0cHV0IEJvdW5kczoKKyAqICAgb3V0MTogWzB4MCB+PiAweGZmZmZm
ZmZmZmZmZmZmZmZdCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfcDI1Nl9ub256ZXJvKHVpbnQ2NF90
KiBvdXQxLCBjb25zdCB1aW50NjRfdCBhcmcxWzRdKSB7CisgIHVpbnQ2NF90IHgxID0gKChhcmcx
WzBdKSB8ICgoYXJnMVsxXSkgfCAoKGFyZzFbMl0pIHwgKChhcmcxWzNdKSB8ICh1aW50NjRfdCkw
eDApKSkpOworICAqb3V0MSA9IHgxOworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBh
cmcxOiBbMHgwIH4+IDB4MV0KKyAqICAgYXJnMjogW1sweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZm
XSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZm
Zl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXV0KKyAqICAgYXJnMzogW1sweDAgfj4gMHhm
ZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4
ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXV0KKyAqIE91dHB1
dCBCb3VuZHM6CisgKiAgIG91dDE6IFtbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAg
fj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgw
IH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl1dCisgKi8KK3N0YXRpYyB2b2lkIGZpYXRfcDI1Nl9zZWxl
Y3R6bnoodWludDY0X3Qgb3V0MVs0XSwgZmlhdF9wMjU2X3VpbnQxIGFyZzEsIGNvbnN0IHVpbnQ2
NF90IGFyZzJbNF0sIGNvbnN0IHVpbnQ2NF90IGFyZzNbNF0pIHsKKyAgdWludDY0X3QgeDE7Cisg
IGZpYXRfcDI1Nl9jbW92em56X3U2NCgmeDEsIGFyZzEsIChhcmcyWzBdKSwgKGFyZzNbMF0pKTsK
KyAgdWludDY0X3QgeDI7CisgIGZpYXRfcDI1Nl9jbW92em56X3U2NCgmeDIsIGFyZzEsIChhcmcy
WzFdKSwgKGFyZzNbMV0pKTsKKyAgdWludDY0X3QgeDM7CisgIGZpYXRfcDI1Nl9jbW92em56X3U2
NCgmeDMsIGFyZzEsIChhcmcyWzJdKSwgKGFyZzNbMl0pKTsKKyAgdWludDY0X3QgeDQ7CisgIGZp
YXRfcDI1Nl9jbW92em56X3U2NCgmeDQsIGFyZzEsIChhcmcyWzNdKSwgKGFyZzNbM10pKTsKKyAg
b3V0MVswXSA9IHgxOworICBvdXQxWzFdID0geDI7CisgIG91dDFbMl0gPSB4MzsKKyAgb3V0MVsz
XSA9IHg0OworfQorCisvKgorICogSW5wdXQgQm91bmRzOgorICogICBhcmcxOiBbWzB4MCB+PiAw
eGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0sIFsweDAgfj4g
MHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdXQorICogT3V0
cHV0IEJvdW5kczoKKyAqICAgb3V0MTogW1sweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsw
eDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0s
IFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhm
Zl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4g
MHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAg
fj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsw
eDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0s
IFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhm
Zl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl1dCisgKi8KK3N0
YXRpYyB2b2lkIGZpYXRfcDI1Nl90b19ieXRlcyh1aW50OF90IG91dDFbMzJdLCBjb25zdCB1aW50
NjRfdCBhcmcxWzRdKSB7CisgIHVpbnQ2NF90IHgxID0gKGFyZzFbM10pOworICB1aW50NjRfdCB4
MiA9IChhcmcxWzJdKTsKKyAgdWludDY0X3QgeDMgPSAoYXJnMVsxXSk7CisgIHVpbnQ2NF90IHg0
ID0gKGFyZzFbMF0pOworICB1aW50NjRfdCB4NSA9ICh4NCA+PiA4KTsKKyAgdWludDhfdCB4NiA9
ICh1aW50OF90KSh4NCAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4NyA9ICh4NSA+PiA4
KTsKKyAgdWludDhfdCB4OCA9ICh1aW50OF90KSh4NSAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50
NjRfdCB4OSA9ICh4NyA+PiA4KTsKKyAgdWludDhfdCB4MTAgPSAodWludDhfdCkoeDcgJiBVSU5U
OF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDExID0gKHg5ID4+IDgpOworICB1aW50OF90IHgxMiA9
ICh1aW50OF90KSh4OSAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4MTMgPSAoeDExID4+
IDgpOworICB1aW50OF90IHgxNCA9ICh1aW50OF90KSh4MTEgJiBVSU5UOF9DKDB4ZmYpKTsKKyAg
dWludDY0X3QgeDE1ID0gKHgxMyA+PiA4KTsKKyAgdWludDhfdCB4MTYgPSAodWludDhfdCkoeDEz
ICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3QgeDE3ID0gKHVpbnQ4X3QpKHgxNSA+PiA4KTsK
KyAgdWludDhfdCB4MTggPSAodWludDhfdCkoeDE1ICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4
X3QgeDE5ID0gKHVpbnQ4X3QpKHgxNyAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4MjAg
PSAoeDMgPj4gOCk7CisgIHVpbnQ4X3QgeDIxID0gKHVpbnQ4X3QpKHgzICYgVUlOVDhfQygweGZm
KSk7CisgIHVpbnQ2NF90IHgyMiA9ICh4MjAgPj4gOCk7CisgIHVpbnQ4X3QgeDIzID0gKHVpbnQ4
X3QpKHgyMCAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4MjQgPSAoeDIyID4+IDgpOwor
ICB1aW50OF90IHgyNSA9ICh1aW50OF90KSh4MjIgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0
X3QgeDI2ID0gKHgyNCA+PiA4KTsKKyAgdWludDhfdCB4MjcgPSAodWludDhfdCkoeDI0ICYgVUlO
VDhfQygweGZmKSk7CisgIHVpbnQ2NF90IHgyOCA9ICh4MjYgPj4gOCk7CisgIHVpbnQ4X3QgeDI5
ID0gKHVpbnQ4X3QpKHgyNiAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4MzAgPSAoeDI4
ID4+IDgpOworICB1aW50OF90IHgzMSA9ICh1aW50OF90KSh4MjggJiBVSU5UOF9DKDB4ZmYpKTsK
KyAgdWludDhfdCB4MzIgPSAodWludDhfdCkoeDMwID4+IDgpOworICB1aW50OF90IHgzMyA9ICh1
aW50OF90KSh4MzAgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDhfdCB4MzQgPSAodWludDhfdCko
eDMyICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ2NF90IHgzNSA9ICh4MiA+PiA4KTsKKyAgdWlu
dDhfdCB4MzYgPSAodWludDhfdCkoeDIgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0X3QgeDM3
ID0gKHgzNSA+PiA4KTsKKyAgdWludDhfdCB4MzggPSAodWludDhfdCkoeDM1ICYgVUlOVDhfQygw
eGZmKSk7CisgIHVpbnQ2NF90IHgzOSA9ICh4MzcgPj4gOCk7CisgIHVpbnQ4X3QgeDQwID0gKHVp
bnQ4X3QpKHgzNyAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4NDEgPSAoeDM5ID4+IDgp
OworICB1aW50OF90IHg0MiA9ICh1aW50OF90KSh4MzkgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWlu
dDY0X3QgeDQzID0gKHg0MSA+PiA4KTsKKyAgdWludDhfdCB4NDQgPSAodWludDhfdCkoeDQxICYg
VUlOVDhfQygweGZmKSk7CisgIHVpbnQ2NF90IHg0NSA9ICh4NDMgPj4gOCk7CisgIHVpbnQ4X3Qg
eDQ2ID0gKHVpbnQ4X3QpKHg0MyAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50OF90IHg0NyA9ICh1
aW50OF90KSh4NDUgPj4gOCk7CisgIHVpbnQ4X3QgeDQ4ID0gKHVpbnQ4X3QpKHg0NSAmIFVJTlQ4
X0MoMHhmZikpOworICB1aW50OF90IHg0OSA9ICh1aW50OF90KSh4NDcgJiBVSU5UOF9DKDB4ZmYp
KTsKKyAgdWludDY0X3QgeDUwID0gKHgxID4+IDgpOworICB1aW50OF90IHg1MSA9ICh1aW50OF90
KSh4MSAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4NTIgPSAoeDUwID4+IDgpOworICB1
aW50OF90IHg1MyA9ICh1aW50OF90KSh4NTAgJiBVSU5UOF9DKDB4ZmYpKTsKKyAgdWludDY0X3Qg
eDU0ID0gKHg1MiA+PiA4KTsKKyAgdWludDhfdCB4NTUgPSAodWludDhfdCkoeDUyICYgVUlOVDhf
QygweGZmKSk7CisgIHVpbnQ2NF90IHg1NiA9ICh4NTQgPj4gOCk7CisgIHVpbnQ4X3QgeDU3ID0g
KHVpbnQ4X3QpKHg1NCAmIFVJTlQ4X0MoMHhmZikpOworICB1aW50NjRfdCB4NTggPSAoeDU2ID4+
IDgpOworICB1aW50OF90IHg1OSA9ICh1aW50OF90KSh4NTYgJiBVSU5UOF9DKDB4ZmYpKTsKKyAg
dWludDY0X3QgeDYwID0gKHg1OCA+PiA4KTsKKyAgdWludDhfdCB4NjEgPSAodWludDhfdCkoeDU4
ICYgVUlOVDhfQygweGZmKSk7CisgIHVpbnQ4X3QgeDYyID0gKHVpbnQ4X3QpKHg2MCA+PiA4KTsK
KyAgdWludDhfdCB4NjMgPSAodWludDhfdCkoeDYwICYgVUlOVDhfQygweGZmKSk7CisgIG91dDFb
MF0gPSB4NjsKKyAgb3V0MVsxXSA9IHg4OworICBvdXQxWzJdID0geDEwOworICBvdXQxWzNdID0g
eDEyOworICBvdXQxWzRdID0geDE0OworICBvdXQxWzVdID0geDE2OworICBvdXQxWzZdID0geDE4
OworICBvdXQxWzddID0geDE5OworICBvdXQxWzhdID0geDIxOworICBvdXQxWzldID0geDIzOwor
ICBvdXQxWzEwXSA9IHgyNTsKKyAgb3V0MVsxMV0gPSB4Mjc7CisgIG91dDFbMTJdID0geDI5Owor
ICBvdXQxWzEzXSA9IHgzMTsKKyAgb3V0MVsxNF0gPSB4MzM7CisgIG91dDFbMTVdID0geDM0Owor
ICBvdXQxWzE2XSA9IHgzNjsKKyAgb3V0MVsxN10gPSB4Mzg7CisgIG91dDFbMThdID0geDQwOwor
ICBvdXQxWzE5XSA9IHg0MjsKKyAgb3V0MVsyMF0gPSB4NDQ7CisgIG91dDFbMjFdID0geDQ2Owor
ICBvdXQxWzIyXSA9IHg0ODsKKyAgb3V0MVsyM10gPSB4NDk7CisgIG91dDFbMjRdID0geDUxOwor
ICBvdXQxWzI1XSA9IHg1MzsKKyAgb3V0MVsyNl0gPSB4NTU7CisgIG91dDFbMjddID0geDU3Owor
ICBvdXQxWzI4XSA9IHg1OTsKKyAgb3V0MVsyOV0gPSB4NjE7CisgIG91dDFbMzBdID0geDYzOwor
ICBvdXQxWzMxXSA9IHg2MjsKK30KKworLyoKKyAqIElucHV0IEJvdW5kczoKKyAqICAgYXJnMTog
W1sweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhm
Zl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4g
MHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAg
fj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsw
eDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0s
IFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhm
Zl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4g
MHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAgfj4gMHhmZl0sIFsweDAg
fj4gMHhmZl0sIFsweDAgfj4gMHhmZl1dCisgKiBPdXRwdXQgQm91bmRzOgorICogICBvdXQxOiBb
WzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZdLCBbMHgwIH4+IDB4ZmZmZmZmZmZmZmZmZmZmZl0s
IFsweDAgfj4gMHhmZmZmZmZmZmZmZmZmZmZmXSwgWzB4MCB+PiAweGZmZmZmZmZmZmZmZmZmZmZd
XQorICovCitzdGF0aWMgdm9pZCBmaWF0X3AyNTZfZnJvbV9ieXRlcyh1aW50NjRfdCBvdXQxWzRd
LCBjb25zdCB1aW50OF90IGFyZzFbMzJdKSB7CisgIHVpbnQ2NF90IHgxID0gKCh1aW50NjRfdCko
YXJnMVszMV0pIDw8IDU2KTsKKyAgdWludDY0X3QgeDIgPSAoKHVpbnQ2NF90KShhcmcxWzMwXSkg
PDwgNDgpOworICB1aW50NjRfdCB4MyA9ICgodWludDY0X3QpKGFyZzFbMjldKSA8PCA0MCk7Cisg
IHVpbnQ2NF90IHg0ID0gKCh1aW50NjRfdCkoYXJnMVsyOF0pIDw8IDMyKTsKKyAgdWludDY0X3Qg
eDUgPSAoKHVpbnQ2NF90KShhcmcxWzI3XSkgPDwgMjQpOworICB1aW50NjRfdCB4NiA9ICgodWlu
dDY0X3QpKGFyZzFbMjZdKSA8PCAxNik7CisgIHVpbnQ2NF90IHg3ID0gKCh1aW50NjRfdCkoYXJn
MVsyNV0pIDw8IDgpOworICB1aW50OF90IHg4ID0gKGFyZzFbMjRdKTsKKyAgdWludDY0X3QgeDkg
PSAoKHVpbnQ2NF90KShhcmcxWzIzXSkgPDwgNTYpOworICB1aW50NjRfdCB4MTAgPSAoKHVpbnQ2
NF90KShhcmcxWzIyXSkgPDwgNDgpOworICB1aW50NjRfdCB4MTEgPSAoKHVpbnQ2NF90KShhcmcx
WzIxXSkgPDwgNDApOworICB1aW50NjRfdCB4MTIgPSAoKHVpbnQ2NF90KShhcmcxWzIwXSkgPDwg
MzIpOworICB1aW50NjRfdCB4MTMgPSAoKHVpbnQ2NF90KShhcmcxWzE5XSkgPDwgMjQpOworICB1
aW50NjRfdCB4MTQgPSAoKHVpbnQ2NF90KShhcmcxWzE4XSkgPDwgMTYpOworICB1aW50NjRfdCB4
MTUgPSAoKHVpbnQ2NF90KShhcmcxWzE3XSkgPDwgOCk7CisgIHVpbnQ4X3QgeDE2ID0gKGFyZzFb
MTZdKTsKKyAgdWludDY0X3QgeDE3ID0gKCh1aW50NjRfdCkoYXJnMVsxNV0pIDw8IDU2KTsKKyAg
dWludDY0X3QgeDE4ID0gKCh1aW50NjRfdCkoYXJnMVsxNF0pIDw8IDQ4KTsKKyAgdWludDY0X3Qg
eDE5ID0gKCh1aW50NjRfdCkoYXJnMVsxM10pIDw8IDQwKTsKKyAgdWludDY0X3QgeDIwID0gKCh1
aW50NjRfdCkoYXJnMVsxMl0pIDw8IDMyKTsKKyAgdWludDY0X3QgeDIxID0gKCh1aW50NjRfdCko
YXJnMVsxMV0pIDw8IDI0KTsKKyAgdWludDY0X3QgeDIyID0gKCh1aW50NjRfdCkoYXJnMVsxMF0p
IDw8IDE2KTsKKyAgdWludDY0X3QgeDIzID0gKCh1aW50NjRfdCkoYXJnMVs5XSkgPDwgOCk7Cisg
IHVpbnQ4X3QgeDI0ID0gKGFyZzFbOF0pOworICB1aW50NjRfdCB4MjUgPSAoKHVpbnQ2NF90KShh
cmcxWzddKSA8PCA1Nik7CisgIHVpbnQ2NF90IHgyNiA9ICgodWludDY0X3QpKGFyZzFbNl0pIDw8
IDQ4KTsKKyAgdWludDY0X3QgeDI3ID0gKCh1aW50NjRfdCkoYXJnMVs1XSkgPDwgNDApOworICB1
aW50NjRfdCB4MjggPSAoKHVpbnQ2NF90KShhcmcxWzRdKSA8PCAzMik7CisgIHVpbnQ2NF90IHgy
OSA9ICgodWludDY0X3QpKGFyZzFbM10pIDw8IDI0KTsKKyAgdWludDY0X3QgeDMwID0gKCh1aW50
NjRfdCkoYXJnMVsyXSkgPDwgMTYpOworICB1aW50NjRfdCB4MzEgPSAoKHVpbnQ2NF90KShhcmcx
WzFdKSA8PCA4KTsKKyAgdWludDhfdCB4MzIgPSAoYXJnMVswXSk7CisgIHVpbnQ2NF90IHgzMyA9
ICh4MzIgKyAoeDMxICsgKHgzMCArICh4MjkgKyAoeDI4ICsgKHgyNyArICh4MjYgKyB4MjUpKSkp
KSkpOworICB1aW50NjRfdCB4MzQgPSAoeDMzICYgVUlOVDY0X0MoMHhmZmZmZmZmZmZmZmZmZmZm
KSk7CisgIHVpbnQ2NF90IHgzNSA9ICh4OCArICh4NyArICh4NiArICh4NSArICh4NCArICh4MyAr
ICh4MiArIHgxKSkpKSkpKTsKKyAgdWludDY0X3QgeDM2ID0gKHgxNiArICh4MTUgKyAoeDE0ICsg
KHgxMyArICh4MTIgKyAoeDExICsgKHgxMCArIHg5KSkpKSkpKTsKKyAgdWludDY0X3QgeDM3ID0g
KHgyNCArICh4MjMgKyAoeDIyICsgKHgyMSArICh4MjAgKyAoeDE5ICsgKHgxOCArIHgxNykpKSkp
KSk7CisgIHVpbnQ2NF90IHgzOCA9ICh4MzcgJiBVSU5UNjRfQygweGZmZmZmZmZmZmZmZmZmZmYp
KTsKKyAgdWludDY0X3QgeDM5ID0gKHgzNiAmIFVJTlQ2NF9DKDB4ZmZmZmZmZmZmZmZmZmZmZikp
OworICBvdXQxWzBdID0geDM0OworICBvdXQxWzFdID0geDM4OworICBvdXQxWzJdID0geDM5Owor
ICBvdXQxWzNdID0geDM1OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC9DSEFOR0VTIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvQ0hBTkdFUwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDU1MjEzMjQyMTJjOTEyODdkOTI0NGQ0NGJhYjMwNmRi
NjY0YmFkYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9DSEFOR0VTCisrKyAvZGV2L251bGwKQEAgLTEsMTU3
ICswLDAgQEAKLUNoYW5nZXMgZm9yIDEuNy4wOgotCi0qIE5ldyBmZWF0dXJlOiBkZWF0aCB0ZXN0
cyBhcmUgc3VwcG9ydGVkIG9uIE9wZW5CU0QgYW5kIGluIGlPUwotICBzaW11bGF0b3Igbm93Lgot
KiBOZXcgZmVhdHVyZTogR29vZ2xlIFRlc3Qgbm93IGltcGxlbWVudHMgYSBwcm90b2NvbCB0byBh
bGxvdwotICBhIHRlc3QgcnVubmVyIHRvIGRldGVjdCB0aGF0IGEgdGVzdCBwcm9ncmFtIGhhcyBl
eGl0ZWQKLSAgcHJlbWF0dXJlbHkgYW5kIHJlcG9ydCBpdCBhcyBhIGZhaWx1cmUgKGJlZm9yZSBp
dCB3b3VsZCBiZQotICBmYWxzZWx5IHJlcG9ydGVkIGFzIGEgc3VjY2VzcyBpZiB0aGUgZXhpdCBj
b2RlIGlzIDApLgotKiBOZXcgZmVhdHVyZTogVGVzdDo6UmVjb3JkUHJvcGVydHkoKSBjYW4gbm93
IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUKLSAgbGlmZXNwYW4gb2YgYSB0ZXN0IG1ldGhvZCwgaW4g
d2hpY2ggY2FzZSBpdCB3aWxsIGJlIGF0dHJpYnV0ZWQgdG8KLSAgdGhlIGN1cnJlbnQgdGVzdCBj
YXNlIG9yIHRoZSB0ZXN0IHByb2dyYW0gaW4gdGhlIFhNTCByZXBvcnQuCi0qIE5ldyBmZWF0dXJl
IChwb3RlbnRpYWxseSBicmVha2luZyk6IC0tZ3Rlc3RfbGlzdF90ZXN0cyBub3cgcHJpbnRzCi0g
IHRoZSB0eXBlIHBhcmFtZXRlcnMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgZm9yIGVhY2ggdGVzdC4K
LSogSW1wcm92ZW1lbnQ6IGNoYXIgcG9pbnRlcnMgYW5kIGNoYXIgYXJyYXlzIGFyZSBub3cgZXNj
YXBlZCBwcm9wZXJseQotICBpbiBmYWlsdXJlIG1lc3NhZ2VzLgotKiBJbXByb3ZlbWVudDogZmFp
bHVyZSBzdW1tYXJ5IGluIFhNTCByZXBvcnRzIG5vdyBpbmNsdWRlcyBmaWxlIGFuZAotICBsaW5l
IGluZm9ybWF0aW9uLgotKiBJbXByb3ZlbWVudDogdGhlIDx0ZXN0c3VpdGVzPiBYTUwgZWxlbWVu
dCBub3cgaGFzIGEgdGltZXN0YW1wIGF0dHJpYnV0ZS4KLSogSW1wcm92ZW1lbnQ6IFdoZW4gLS1n
dGVzdF9maWx0ZXIgaXMgc3BlY2lmaWVkLCBYTUwgcmVwb3J0IG5vdyBkb2Vzbid0Ci0gIGNvbnRh
aW4gaW5mb3JtYXRpb24gYWJvdXQgdGVzdHMgdGhhdCBhcmUgZmlsdGVyZWQgb3V0LgotKiBGaXhl
ZCB0aGUgYnVnIHdoZXJlIGxvbmcgLS1ndGVzdF9maWx0ZXIgZmxhZyB2YWx1ZXMgYXJlIHRydW5j
YXRlZCBpbgotICBkZWF0aCB0ZXN0cy4KLSogUG90ZW50aWFsbHkgYnJlYWtpbmcgY2hhbmdlOiBS
VU5fQUxMX1RFU1RTKCkgaXMgbm93IGltcGxlbWVudGVkIGFzIGEKLSAgZnVuY3Rpb24gaW5zdGVh
ZCBvZiBhIG1hY3JvIGluIG9yZGVyIHRvIHdvcmsgYmV0dGVyIHdpdGggQ2xhbmcuCi0qIENvbXBh
dGliaWxpdHkgZml4ZXMgd2l0aCBDKysgMTEgYW5kIHZhcmlvdXMgcGxhdGZvcm1zLgotKiBCdWcv
d2FybmluZyBmaXhlcy4KLQotQ2hhbmdlcyBmb3IgMS42LjA6Ci0KLSogTmV3IGZlYXR1cmU6IEFE
RF9GQUlMVVJFX0FUKCkgZm9yIHJlcG9ydGluZyBhIHRlc3QgZmFpbHVyZSBhdCB0aGUKLSAgZ2l2
ZW4gc291cmNlIGxvY2F0aW9uIC0tIHVzZWZ1bCBmb3Igd3JpdGluZyB0ZXN0aW5nIHV0aWxpdGll
cy4KLSogTmV3IGZlYXR1cmU6IHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlciBpcyBtb3ZlZCBm
cm9tIEdvb2dsZSBNb2NrCi0gIHRvIEdvb2dsZSBUZXN0LgotKiBOZXcgZmVhdHVyZTogdHlwZSBw
YXJhbWV0ZXJzIGFuZCB2YWx1ZSBwYXJhbWV0ZXJzIGFyZSByZXBvcnRlZCBpbgotICB0aGUgWE1M
IHJlcG9ydCBub3cuCi0qIEEgZ3Rlc3RfZGlzYWJsZV9wdGhyZWFkcyBDTWFrZSBvcHRpb24uCi0q
IENvbG9yZWQgb3V0cHV0IHdvcmtzIGluIEdOVSBTY3JlZW4gc2Vzc2lvbnMgbm93LgotKiBQYXJh
bWV0ZXJzIG9mIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIG5vdyBwcmludGVkIGluIHRo
ZQotICB0ZXh0dWFsIG91dHB1dC4KLSogRmFpbHVyZXMgZnJvbSBhZCBob2MgdGVzdCBhc3NlcnRp
b25zIHJ1biBiZWZvcmUgUlVOX0FMTF9URVNUUygpIGFyZQotICBub3cgY29ycmVjdGx5IHJlcG9y
dGVkLgotKiBBcmd1bWVudHMgb2YgQVNTRVJUX1hZIGFuZCBFWFBFQ1RfWFkgbm8gbG9uZ2VyIG5l
ZWQgdG8gc3VwcG9ydCA8PCB0bwotICBvc3RyZWFtLgotKiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5n
IG9mIGV4Y2VwdGlvbnMuCi0qIEdURVNUX0FTU0VSVF9YWSBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9m
IEFTU0VSVF9YWSBpbiBjYXNlIHRoZSBsYXR0ZXIKLSAgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkg
YW5vdGhlciBsaWJyYXJ5LgotKiAtLWd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnMgaXMgbm93IHRydWUg
YnkgZGVmYXVsdCwgYWxsb3dpbmcgYSB0ZXN0Ci0gIHByb2dyYW0gdG8gY29udGludWUgYWZ0ZXIg
YW4gZXhjZXB0aW9uIGlzIHRocm93bi4KLSogVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0IGZpeHR1
cmVzIGNhbiBub3cgZGVyaXZlIGZyb20gVGVzdCBhbmQKLSAgV2l0aFBhcmFtSW50ZXJmYWNlPFQ+
IHNlcGFyYXRlbHksIGVhc2luZyBjb252ZXJzaW9uIG9mIGxlZ2FjeSB0ZXN0cy4KLSogRGVhdGgg
dGVzdCBtZXNzYWdlcyBhcmUgY2xlYXJseSBtYXJrZWQgdG8gbWFrZSB0aGVtIG1vcmUKLSAgZGlz
dGluZ3Vpc2hhYmxlIGZyb20gb3RoZXIgbWVzc2FnZXMuCi0qIENvbXBhdGliaWxpdHkgZml4ZXMg
Zm9yIEFuZHJvaWQsIEdvb2dsZSBOYXRpdmUgQ2xpZW50LCBNaW5HVywgSFAgVVgsCi0gIFBvd2Vy
UEMsIEx1Y2lkIGF1dG90b29scywgbGliQ1N0ZCwgU3VuIEMrKywgQm9ybGFuZCBDKysgQnVpbGRl
ciAoQ29kZSBHZWFyKSwKLSAgSUJNIFhMIEMrKyAoVmlzdWFsIEFnZSBDKyspLCBhbmQgQysrMHgu
Ci0qIEJ1ZyBmaXhlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xlYW4tdXBzLgotKiBQb3RlbnRpYWxs
eSBpbmNvbXBhdGlibGUgY2hhbmdlczogZGlzYWJsZXMgdGhlIGhhcm1mdWwgJ21ha2UgaW5zdGFs
bCcKLSAgY29tbWFuZCBpbiBhdXRvdG9vbHMuCi0KLUNoYW5nZXMgZm9yIDEuNS4wOgotCi0gKiBO
ZXcgZmVhdHVyZTogYXNzZXJ0aW9ucyBjYW4gYmUgc2FmZWx5IGNhbGxlZCBpbiBtdWx0aXBsZSB0
aHJlYWRzCi0gICB3aGVyZSB0aGUgcHRocmVhZHMgbGlicmFyeSBpcyBhdmFpbGFibGUuCi0gKiBO
ZXcgZmVhdHVyZTogcHJlZGljYXRlcyB1c2VkIGluc2lkZSBFWFBFQ1RfVFJVRSgpIGFuZCBmcmll
bmRzCi0gICBjYW4gbm93IGdlbmVyYXRlIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2VzLgotICogTmV3
IGZlYXR1cmU6IEdvb2dsZSBUZXN0IGNhbiBub3cgYmUgY29tcGlsZWQgYXMgYSBETEwuCi0gKiBO
ZXcgZmVhdHVyZTogZnVzZWQgc291cmNlIGZpbGVzIGFyZSBpbmNsdWRlZC4KLSAqIE5ldyBmZWF0
dXJlOiBwcmludHMgaGVscCB3aGVuIGVuY291bnRlcmluZyB1bnJlY29nbml6ZWQgR29vZ2xlIFRl
c3QgZmxhZ3MuCi0gKiBFeHBlcmltZW50YWwgZmVhdHVyZTogQ01ha2UgYnVpbGQgc2NyaXB0IChy
ZXF1aXJlcyBDTWFrZSAyLjYuNCspLgotICogRXhwZXJpbWVudGFsIGZlYXR1cmU6IHRoZSBQdW1w
IHNjcmlwdCBmb3IgbWV0YSBwcm9ncmFtbWluZy4KLSAqIGRvdWJsZSB2YWx1ZXMgc3RyZWFtZWQg
dG8gYW4gYXNzZXJ0aW9uIGFyZSBwcmludGVkIHdpdGggZW5vdWdoIHByZWNpc2lvbgotICAgdG8g
ZGlmZmVyZW50aWF0ZSBhbnkgdHdvIGRpZmZlcmVudCB2YWx1ZXMuCi0gKiBHb29nbGUgVGVzdCBu
b3cgd29ya3Mgb24gU29sYXJpcyBhbmQgQUlYLgotICogQnVpbGQgYW5kIHRlc3Qgc2NyaXB0IGlt
cHJvdmVtZW50cy4KLSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xlYW4tdXBzLgot
Ci0gUG90ZW50aWFsbHkgYnJlYWtpbmcgY2hhbmdlczoKLQotICogU3RvcHBlZCBzdXBwb3J0aW5n
IFZDKysgNy4xIHdpdGggZXhjZXB0aW9ucyBkaXNhYmxlZC4KLSAqIERyb3BwZWQgc3VwcG9ydCBm
b3IgJ21ha2UgaW5zdGFsbCcuCi0KLUNoYW5nZXMgZm9yIDEuNC4wOgotCi0gKiBOZXcgZmVhdHVy
ZTogdGhlIGV2ZW50IGxpc3RlbmVyIEFQSQotICogTmV3IGZlYXR1cmU6IHRlc3Qgc2h1ZmZsaW5n
Ci0gKiBOZXcgZmVhdHVyZTogdGhlIFhNTCByZXBvcnQgZm9ybWF0IGlzIGNsb3NlciB0byBqdW5p
dHJlcG9ydCBhbmQgY2FuCi0gICBiZSBwYXJzZWQgYnkgSHVkc29uIG5vdy4KLSAqIE5ldyBmZWF0
dXJlOiB3aGVuIGEgdGVzdCBydW5zIHVuZGVyIFZpc3VhbCBTdHVkaW8sIGl0cyBmYWlsdXJlcyBh
cmUKLSAgIGludGVncmF0ZWQgaW4gdGhlIElERS4KLSAqIE5ldyBmZWF0dXJlOiAvTUQoZCkgdmVy
c2lvbnMgb2YgVkMrKyBwcm9qZWN0cy4KLSAqIE5ldyBmZWF0dXJlOiBlbGFwc2VkIHRpbWUgZm9y
IHRoZSB0ZXN0cyBpcyBwcmludGVkIGJ5IGRlZmF1bHQuCi0gKiBOZXcgZmVhdHVyZTogY29tZXMg
d2l0aCBhIFRSMSB0dXBsZSBpbXBsZW1lbnRhdGlvbiBzdWNoIHRoYXQgQm9vc3QKLSAgIGlzIG5v
IGxvbmdlciBuZWVkZWQgZm9yIENvbWJpbmUoKS4KLSAqIE5ldyBmZWF0dXJlOiBFWFBFQ1RfREVB
VEhfSUZfU1VQUE9SVEVEIG1hY3JvIGFuZCBmcmllbmRzLgotICogTmV3IGZlYXR1cmU6IHRoZSBY
Y29kZSBwcm9qZWN0IGNhbiBub3cgcHJvZHVjZSBzdGF0aWMgZ3Rlc3QKLSAgIGxpYnJhcmllcyBp
biBhZGRpdGlvbiB0byBhIGZyYW1ld29yay4KLSAqIENvbXBhdGliaWxpdHkgZml4ZXMgZm9yIFNv
bGFyaXMsIEN5Z3dpbiwgbWluR1csIFdpbmRvd3MgTW9iaWxlLAotICAgU3ltYmlhbiwgZ2NjLCBh
bmQgQysrQnVpbGRlci4KLSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xlYW4tdXBz
LgotCi1DaGFuZ2VzIGZvciAxLjMuMDoKLQotICogTmV3IGZlYXR1cmU6IGRlYXRoIHRlc3RzIG9u
IFdpbmRvd3MsIEN5Z3dpbiwgYW5kIE1hYy4KLSAqIE5ldyBmZWF0dXJlOiBhYmlsaXR5IHRvIHVz
ZSBHb29nbGUgVGVzdCBhc3NlcnRpb25zIGluIG90aGVyIHRlc3RpbmcKLSAgIGZyYW1ld29ya3Mu
Ci0gKiBOZXcgZmVhdHVyZTogYWJpbGl0eSB0byBydW4gZGlzYWJsZWQgdGVzdCB2aWEKLSAgIC0t
Z3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMuCi0gKiBOZXcgZmVhdHVyZTogdGhlIC0taGVs
cCBmbGFnIGZvciBwcmludGluZyB0aGUgdXNhZ2UuCi0gKiBOZXcgZmVhdHVyZTogYWNjZXNzIHRv
IEdvb2dsZSBUZXN0IGZsYWcgdmFsdWVzIGluIHVzZXIgY29kZS4KLSAqIE5ldyBmZWF0dXJlOiBh
IHNjcmlwdCB0aGF0IHBhY2tzIEdvb2dsZSBUZXN0IGludG8gb25lIC5oIGFuZCBvbmUKLSAgIC5j
YyBmaWxlIGZvciBlYXN5IGRlcGxveW1lbnQuCi0gKiBOZXcgZmVhdHVyZTogc3VwcG9ydCBmb3Ig
ZGlzdHJpYnV0aW5nIHRlc3QgZnVuY3Rpb25zIHRvIG11bHRpcGxlCi0gICBtYWNoaW5lcyAocmVx
dWlyZXMgc3VwcG9ydCBmcm9tIHRoZSB0ZXN0IHJ1bm5lcikuCi0gKiBCdWcgZml4ZXMgYW5kIGlt
cGxlbWVudGF0aW9uIGNsZWFuLXVwcy4KLQotQ2hhbmdlcyBmb3IgMS4yLjE6Ci0KLSAqIENvbXBh
dGliaWxpdHkgZml4ZXMgZm9yIExpbnV4IElBLTY0IGFuZCBJQk0gei9PUy4KLSAqIEFkZGVkIHN1
cHBvcnQgZm9yIHVzaW5nIEJvb3N0IGFuZCBvdGhlciBUUjEgaW1wbGVtZW50YXRpb25zLgotICog
Q2hhbmdlcyB0byB0aGUgYnVpbGQgc2NyaXB0cyB0byBzdXBwb3J0IHVwY29taW5nIHJlbGVhc2Ug
b2YgR29vZ2xlIEMrKwotICAgTW9ja2luZyBGcmFtZXdvcmsuCi0gKiBBZGRlZCBNYWtlZmlsZSB0
byB0aGUgZGlzdHJpYnV0aW9uIHBhY2thZ2UuCi0gKiBJbXByb3ZlZCBidWlsZCBpbnN0cnVjdGlv
bnMgaW4gUkVBRE1FLgotCi1DaGFuZ2VzIGZvciAxLjIuMDoKLQotICogTmV3IGZlYXR1cmU6IHZh
bHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0gKiBOZXcgZmVhdHVyZTogdGhlIEFTU0VSVC9FWFBF
Q1RfKE5PTilGQVRBTF9GQUlMVVJFKF9PTl9BTExfVEhSRUFEUykKLSAgIG1hY3Jvcy4KLSAqIENo
YW5nZWQgdGhlIFhNTCByZXBvcnQgZm9ybWF0IHRvIG1hdGNoIEpVbml0L0FudCdzLgotICogQWRk
ZWQgdGVzdHMgdG8gdGhlIFhjb2RlIHByb2plY3QuCi0gKiBBZGRlZCBzY29ucy9TQ29uc2NyaXB0
IGZvciBidWlsZGluZyB3aXRoIFNDb25zLgotICogQWRkZWQgc3JjL2d0ZXN0LWFsbC5jYyBmb3Ig
YnVpbGRpbmcgR29vZ2xlIFRlc3QgZnJvbSBhIHNpbmdsZSBmaWxlLgotICogRml4ZWQgY29tcGF0
aWJpbGl0eSB3aXRoIFNvbGFyaXMgYW5kIHovT1MuCi0gKiBFbmFibGVkIHJ1bm5pbmcgUHl0aG9u
IHRlc3RzIG9uIHN5c3RlbXMgd2l0aCBweXRob24gMi4zIGluc3RhbGxlZCwKLSAgIGUuZy4gTWFj
IE9TIFggMTAuNC4KLSAqIEJ1ZyBmaXhlcy4KLQotQ2hhbmdlcyBmb3IgMS4xLjA6Ci0KLSAqIE5l
dyBmZWF0dXJlOiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0gKiBOZXcgZmVhdHVyZTogZXhj
ZXB0aW9uIGFzc2VydGlvbnMuCi0gKiBOZXcgZmVhdHVyZTogcHJpbnRpbmcgZWxhcHNlZCB0aW1l
IG9mIHRlc3RzLgotICogSW1wcm92ZWQgdGhlIHJvYnVzdG5lc3Mgb2YgZGVhdGggdGVzdHMuCi0g
KiBBZGRlZCBhbiBYY29kZSBwcm9qZWN0IGFuZCBzYW1wbGVzLgotICogQWRqdXN0ZWQgdGhlIG91
dHB1dCBmb3JtYXQgb24gV2luZG93cyB0byBiZSB1bmRlcnN0YW5kYWJsZSBieSBWaXN1YWwgU3R1
ZGlvLgotICogTWlub3IgYnVnIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjAuMToKLQotICogQWRk
ZWQgcHJvamVjdCBmaWxlcyBmb3IgVmlzdWFsIFN0dWRpbyA3LjEuCi0gKiBGaXhlZCBpc3N1ZXMg
d2l0aCBjb21waWxpbmcgb24gTWFjIE9TIFguCi0gKiBGaXhlZCBpc3N1ZXMgd2l0aCBjb21waWxp
bmcgb24gQ3lnd2luLgotCi1DaGFuZ2VzIGZvciAxLjAuMDoKLQotICogSW5pdGlhbCBPcGVuIFNv
dXJjZSByZWxlYXNlIG9mIEdvb2dsZSBUZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L0NN
YWtlTGlzdHMudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2I1NWNhZThjOTJl
MWQyNzlhYTY4MzU0Y2VjMTgyM2M3YjU1YzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L0NNYWtlTGlzdHMu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzEyICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBD
TWFrZSBidWlsZCBzY3JpcHQgZm9yIEdvb2dsZSBUZXN0LgotIwotIyBUbyBydW4gdGhlIHRlc3Rz
IGZvciBHb29nbGUgVGVzdCBpdHNlbGYgb24gTGludXgsIHVzZSAnbWFrZSB0ZXN0JyBvcgotIyBj
dGVzdC4gIFlvdSBjYW4gc2VsZWN0IHdoaWNoIHRlc3RzIHRvIHJ1biB1c2luZyAnY3Rlc3QgLVIg
cmVnZXgnLgotIyBGb3IgbW9yZSBvcHRpb25zLCBydW4gJ2N0ZXN0IC0taGVscCcuCi0KLSMgQlVJ
TERfU0hBUkVEX0xJQlMgaXMgYSBzdGFuZGFyZCBDTWFrZSB2YXJpYWJsZSwgYnV0IHdlIGRlY2xh
cmUgaXQgaGVyZSB0bwotIyBtYWtlIGl0IHByb21pbmVudCBpbiB0aGUgR1VJLgotb3B0aW9uKEJV
SUxEX1NIQVJFRF9MSUJTICJCdWlsZCBzaGFyZWQgbGlicmFyaWVzIChETExzKS4iIE9GRikKLQot
IyBXaGVuIG90aGVyIGxpYnJhcmllcyBhcmUgdXNpbmcgYSBzaGFyZWQgdmVyc2lvbiBvZiBydW50
aW1lIGxpYnJhcmllcywKLSMgR29vZ2xlIFRlc3QgYWxzbyBoYXMgdG8gdXNlIG9uZS4KLW9wdGlv
bigKLSAgZ3Rlc3RfZm9yY2Vfc2hhcmVkX2NydAotICAiVXNlIHNoYXJlZCAoRExMKSBydW4tdGlt
ZSBsaWIgZXZlbiB3aGVuIEdvb2dsZSBUZXN0IGlzIGJ1aWx0IGFzIHN0YXRpYyBsaWIuIgotICBP
RkYpCi0KLW9wdGlvbihndGVzdF9idWlsZF90ZXN0cyAiQnVpbGQgYWxsIG9mIGd0ZXN0J3Mgb3du
IHRlc3RzLiIgT0ZGKQotCi1vcHRpb24oZ3Rlc3RfYnVpbGRfc2FtcGxlcyAiQnVpbGQgZ3Rlc3Qn
cyBzYW1wbGUgcHJvZ3JhbXMuIiBPRkYpCi0KLW9wdGlvbihndGVzdF9kaXNhYmxlX3B0aHJlYWRz
ICJEaXNhYmxlIHVzZXMgb2YgcHRocmVhZHMgaW4gZ3Rlc3QuIiBPRkYpCi0KLW9wdGlvbigKLSAg
Z3Rlc3RfaGlkZV9pbnRlcm5hbF9zeW1ib2xzCi0gICJCdWlsZCBndGVzdCB3aXRoIGludGVybmFs
IHN5bWJvbHMgaGlkZGVuIGluIHNoYXJlZCBsaWJyYXJpZXMuIgotICBPRkYpCi0KLXNldChDTUFL
RV9ERUJVR19QT1NURklYICJkIiBDQUNIRSBTVFJJTkcgIkdlbmVyYXRlIGRlYnVnIGxpYnJhcnkg
bmFtZSB3aXRoIGEgcG9zdGZpeC4iKQotCi0jIERlZmluZXMgcHJlX3Byb2plY3Rfc2V0X3VwX2hl
cm1ldGljX2J1aWxkKCkgYW5kIHNldF91cF9oZXJtZXRpY19idWlsZCgpLgotaW5jbHVkZShjbWFr
ZS9oZXJtZXRpY19idWlsZC5jbWFrZSBPUFRJT05BTCkKLQotaWYgKENPTU1BTkQgcHJlX3Byb2pl
Y3Rfc2V0X3VwX2hlcm1ldGljX2J1aWxkKQotICBwcmVfcHJvamVjdF9zZXRfdXBfaGVybWV0aWNf
YnVpbGQoKQotZW5kaWYoKQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgUHJvamVjdC13aWRlIHNl
dHRpbmdzCi0KLSMgTmFtZSBvZiB0aGUgcHJvamVjdC4KLSMKLSMgQ01ha2UgZmlsZXMgaW4gdGhp
cyBwcm9qZWN0IGNhbiByZWZlciB0byB0aGUgcm9vdCBzb3VyY2UgZGlyZWN0b3J5Ci0jIGFzICR7
Z3Rlc3RfU09VUkNFX0RJUn0gYW5kIHRvIHRoZSByb290IGJpbmFyeSBkaXJlY3RvcnkgYXMKLSMg
JHtndGVzdF9CSU5BUllfRElSfS4KLSMgTGFuZ3VhZ2UgIkMiIGlzIHJlcXVpcmVkIGZvciBmaW5k
X3BhY2thZ2UoVGhyZWFkcykuCi1pZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xFU1MgMy4wKQot
ICBwcm9qZWN0KGd0ZXN0IENYWCBDKQotZWxzZSgpCi0gIGNtYWtlX3BvbGljeShTRVQgQ01QMDA0
OCBORVcpCi0gIHByb2plY3QoZ3Rlc3QgVkVSU0lPTiAxLjkuMCBMQU5HVUFHRVMgQ1hYIEMpCi1l
bmRpZigpCi1jbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi42LjQpCi0KLWlmIChQT0xJ
Q1kgQ01QMDA2MykgIyBWaXNpYmlsaXR5Ci0gIGNtYWtlX3BvbGljeShTRVQgQ01QMDA2MyBORVcp
Ci1lbmRpZiAoUE9MSUNZIENNUDAwNjMpCi0KLWlmIChDT01NQU5EIHNldF91cF9oZXJtZXRpY19i
dWlsZCkKLSAgc2V0X3VwX2hlcm1ldGljX2J1aWxkKCkKLWVuZGlmKCkKLQotaWYgKGd0ZXN0X2hp
ZGVfaW50ZXJuYWxfc3ltYm9scykKLSAgc2V0KENNQUtFX0NYWF9WSVNJQklMSVRZX1BSRVNFVCBo
aWRkZW4pCi0gIHNldChDTUFLRV9WSVNJQklMSVRZX0lOTElORVNfSElEREVOIDEpCi1lbmRpZigp
Ci0KLSMgRGVmaW5lIGhlbHBlciBmdW5jdGlvbnMgYW5kIG1hY3JvcyB1c2VkIGJ5IEdvb2dsZSBU
ZXN0LgotaW5jbHVkZShjbWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZSkKLQotY29uZmlnX2NvbXBp
bGVyX2FuZF9saW5rZXIoKSAgIyBEZWZpbmVkIGluIGludGVybmFsX3V0aWxzLmNtYWtlLgotCi0j
IFdoZXJlIEdvb2dsZSBUZXN0J3MgLmggZmlsZXMgY2FuIGJlIGZvdW5kLgotaW5jbHVkZV9kaXJl
Y3RvcmllcygKLSAgIiR7Z3Rlc3RfU09VUkNFX0RJUn0vaW5jbHVkZSIKLSAgIiR7Z3Rlc3RfU09V
UkNFX0RJUn0iKQotCi0jIFN1bW1hcnkgb2YgdHVwbGUgc3VwcG9ydCBmb3IgTWljcm9zb2Z0IFZp
c3VhbCBTdHVkaW86Ci0jIENvbXBpbGVyICAgIHZlcnNpb24oTVMpICB2ZXJzaW9uKGNtYWtlKSAg
U3VwcG9ydAotIyAtLS0tLS0tLS0tICAtLS0tLS0tLS0tLSAgLS0tLS0tLS0tLS0tLS0gIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIDw9IFZTIDIwMTAgIDw9IDEwICAgICAgICA8PSAx
NjAwICAgICAgICAgVXNlIEdvb2dsZSBUZXN0cydzIG93biB0dXBsZS4KLSMgVlMgMjAxMiAgICAg
MTEgICAgICAgICAgIDE3MDAgICAgICAgICAgICBzdGQ6OnRyMTo6dHVwbGUgKyBfVkFSSUFESUNf
TUFYPTEwCi0jIFZTIDIwMTMgICAgIDEyICAgICAgICAgICAxODAwICAgICAgICAgICAgc3RkOjp0
cjE6OnR1cGxlCi0jIFZTIDIwMTUgICAgIDE0ICAgICAgICAgICAxOTAwICAgICAgICAgICAgc3Rk
Ojp0dXBsZQotIyBWUyAyMDE3ICAgICAxNSAgICAgICAgICAgPj0gMTkxMCAgICAgICAgIHN0ZDo6
dHVwbGUKLWlmIChNU1ZDIEFORCBNU1ZDX1ZFUlNJT04gRVFVQUwgMTcwMCkKLSAgYWRkX2RlZmlu
aXRpb25zKC9EIF9WQVJJQURJQ19NQVg9MTApCi1lbmRpZigpCi0gCi0jIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
LSMKLSMgRGVmaW5lcyB0aGUgZ3Rlc3QgJiBndGVzdF9tYWluIGxpYnJhcmllcy4gIFVzZXIgdGVz
dHMgc2hvdWxkIGxpbmsKLSMgd2l0aCBvbmUgb2YgdGhlbS4KLQotIyBHb29nbGUgVGVzdCBsaWJy
YXJpZXMuICBXZSBidWlsZCB0aGVtIHVzaW5nIG1vcmUgc3RyaWN0IHdhcm5pbmdzIHRoYW4gd2hh
dAotIyBhcmUgdXNlZCBmb3Igb3RoZXIgdGFyZ2V0cywgdG8gZW5zdXJlIHRoYXQgZ3Rlc3QgY2Fu
IGJlIGNvbXBpbGVkIGJ5IGEgdXNlcgotIyBhZ2dyZXNzaXZlIGFib3V0IHdhcm5pbmdzLgotY3h4
X2xpYnJhcnkoZ3Rlc3QgIiR7Y3h4X3N0cmljdH0iIHNyYy9ndGVzdC1hbGwuY2MpCi1jeHhfbGli
cmFyeShndGVzdF9tYWluICIke2N4eF9zdHJpY3R9IiBzcmMvZ3Rlc3RfbWFpbi5jYykKLXRhcmdl
dF9saW5rX2xpYnJhcmllcyhndGVzdF9tYWluIGd0ZXN0KQotCi0jIElmIHRoZSBDTWFrZSB2ZXJz
aW9uIHN1cHBvcnRzIGl0LCBhdHRhY2ggaGVhZGVyIGRpcmVjdG9yeSBpbmZvcm1hdGlvbgotIyB0
byB0aGUgdGFyZ2V0cyBmb3Igd2hlbiB3ZSBhcmUgcGFydCBvZiBhIHBhcmVudCBidWlsZCAoaWUg
YmVpbmcgcHVsbGVkCi0jIGluIHZpYSBhZGRfc3ViZGlyZWN0b3J5KCkgcmF0aGVyIHRoYW4gYmVp
bmcgYSBzdGFuZGFsb25lIGJ1aWxkKS4KLWlmIChERUZJTkVEIENNQUtFX1ZFUlNJT04gQU5EIE5P
VCAiJHtDTUFLRV9WRVJTSU9OfSIgVkVSU0lPTl9MRVNTICIyLjguMTEiKQotICB0YXJnZXRfaW5j
bHVkZV9kaXJlY3RvcmllcyhndGVzdCAgICAgIFNZU1RFTSBJTlRFUkZBQ0UgIiR7Z3Rlc3RfU09V
UkNFX0RJUn0vaW5jbHVkZSIpCi0gIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGd0ZXN0X21h
aW4gU1lTVEVNIElOVEVSRkFDRSAiJHtndGVzdF9TT1VSQ0VfRElSfS9pbmNsdWRlIikKLWVuZGlm
KCkKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIEluc3RhbGwgcnVsZXMKLWlmKElOU1RBTExfR1RF
U1QpCi0gIGluc3RhbGwoVEFSR0VUUyBndGVzdCBndGVzdF9tYWluCi0gICAgUlVOVElNRSBERVNU
SU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iCi0gICAgQVJDSElWRSBERVNUSU5BVElP
TiAiJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0iCi0gICAgTElCUkFSWSBERVNUSU5BVElPTiAiJHtD
TUFLRV9JTlNUQUxMX0xJQkRJUn0iKQotICBpbnN0YWxsKERJUkVDVE9SWSAiJHtndGVzdF9TT1VS
Q0VfRElSfS9pbmNsdWRlL2d0ZXN0IgotICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExf
SU5DTFVERURJUn0iKQotCi0gICMgY29uZmlndXJlIGFuZCBpbnN0YWxsIHBrZ2NvbmZpZyBmaWxl
cwotICBjb25maWd1cmVfZmlsZSgKLSAgICBjbWFrZS9ndGVzdC5wYy5pbgotICAgICIke0NNQUtF
X0JJTkFSWV9ESVJ9L2d0ZXN0LnBjIgotICAgIEBPTkxZKQotICBjb25maWd1cmVfZmlsZSgKLSAg
ICBjbWFrZS9ndGVzdF9tYWluLnBjLmluCi0gICAgIiR7Q01BS0VfQklOQVJZX0RJUn0vZ3Rlc3Rf
bWFpbi5wYyIKLSAgICBAT05MWSkKLSAgaW5zdGFsbChGSUxFUyAiJHtDTUFLRV9CSU5BUllfRElS
fS9ndGVzdC5wYyIgIiR7Q01BS0VfQklOQVJZX0RJUn0vZ3Rlc3RfbWFpbi5wYyIKLSAgICBERVNU
SU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0vcGtnY29uZmlnIikKLWVuZGlmKCkKLQot
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCi0jCi0jIFNhbXBsZXMgb24gaG93IHRvIGxpbmsgdXNlciB0ZXN0cyB3
aXRoIGd0ZXN0IG9yIGd0ZXN0X21haW4uCi0jCi0jIFRoZXkgYXJlIG5vdCBidWlsdCBieSBkZWZh
dWx0LiAgVG8gYnVpbGQgdGhlbSwgc2V0IHRoZQotIyBndGVzdF9idWlsZF9zYW1wbGVzIG9wdGlv
biB0byBPTi4gIFlvdSBjYW4gZG8gaXQgYnkgcnVubmluZyBjY21ha2UKLSMgb3Igc3BlY2lmeWlu
ZyB0aGUgLURndGVzdF9idWlsZF9zYW1wbGVzPU9OIGZsYWcgd2hlbiBydW5uaW5nIGNtYWtlLgot
Ci1pZiAoZ3Rlc3RfYnVpbGRfc2FtcGxlcykKLSAgY3h4X2V4ZWN1dGFibGUoc2FtcGxlMV91bml0
dGVzdCBzYW1wbGVzIGd0ZXN0X21haW4gc2FtcGxlcy9zYW1wbGUxLmNjKQotICBjeHhfZXhlY3V0
YWJsZShzYW1wbGUyX3VuaXR0ZXN0IHNhbXBsZXMgZ3Rlc3RfbWFpbiBzYW1wbGVzL3NhbXBsZTIu
Y2MpCi0gIGN4eF9leGVjdXRhYmxlKHNhbXBsZTNfdW5pdHRlc3Qgc2FtcGxlcyBndGVzdF9tYWlu
KQotICBjeHhfZXhlY3V0YWJsZShzYW1wbGU0X3VuaXR0ZXN0IHNhbXBsZXMgZ3Rlc3RfbWFpbiBz
YW1wbGVzL3NhbXBsZTQuY2MpCi0gIGN4eF9leGVjdXRhYmxlKHNhbXBsZTVfdW5pdHRlc3Qgc2Ft
cGxlcyBndGVzdF9tYWluIHNhbXBsZXMvc2FtcGxlMS5jYykKLSAgY3h4X2V4ZWN1dGFibGUoc2Ft
cGxlNl91bml0dGVzdCBzYW1wbGVzIGd0ZXN0X21haW4pCi0gIGN4eF9leGVjdXRhYmxlKHNhbXBs
ZTdfdW5pdHRlc3Qgc2FtcGxlcyBndGVzdF9tYWluKQotICBjeHhfZXhlY3V0YWJsZShzYW1wbGU4
X3VuaXR0ZXN0IHNhbXBsZXMgZ3Rlc3RfbWFpbikKLSAgY3h4X2V4ZWN1dGFibGUoc2FtcGxlOV91
bml0dGVzdCBzYW1wbGVzIGd0ZXN0KQotICBjeHhfZXhlY3V0YWJsZShzYW1wbGUxMF91bml0dGVz
dCBzYW1wbGVzIGd0ZXN0KQotZW5kaWYoKQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgR29vZ2xl
IFRlc3QncyBvd24gdGVzdHMuCi0jCi0jIFlvdSBjYW4gc2tpcCB0aGlzIHNlY3Rpb24gaWYgeW91
IGFyZW4ndCBpbnRlcmVzdGVkIGluIHRlc3RpbmcKLSMgR29vZ2xlIFRlc3QgaXRzZWxmLgotIwot
IyBUaGUgdGVzdHMgYXJlIG5vdCBidWlsdCBieSBkZWZhdWx0LiAgVG8gYnVpbGQgdGhlbSwgc2V0
IHRoZQotIyBndGVzdF9idWlsZF90ZXN0cyBvcHRpb24gdG8gT04uICBZb3UgY2FuIGRvIGl0IGJ5
IHJ1bm5pbmcgY2NtYWtlCi0jIG9yIHNwZWNpZnlpbmcgdGhlIC1EZ3Rlc3RfYnVpbGRfdGVzdHM9
T04gZmxhZyB3aGVuIHJ1bm5pbmcgY21ha2UuCi0KLWlmIChndGVzdF9idWlsZF90ZXN0cykKLSAg
IyBUaGlzIG11c3QgYmUgc2V0IGluIHRoZSByb290IGRpcmVjdG9yeSBmb3IgdGhlIHRlc3RzIHRv
IGJlIHJ1biBieQotICAjICdtYWtlIHRlc3QnIG9yIGN0ZXN0LgotICBlbmFibGVfdGVzdGluZygp
Ci0KLSAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjCi0gICMgQysrIHRlc3RzIGJ1aWx0IHdpdGggc3RhbmRhcmQgY29tcGlsZXIgZmxh
Z3MuCi0KLSAgY3h4X3Rlc3QoZ3Rlc3QtZGVhdGgtdGVzdF90ZXN0IGd0ZXN0X21haW4pCi0gIGN4
eF90ZXN0KGd0ZXN0X2Vudmlyb25tZW50X3Rlc3QgZ3Rlc3QpCi0gIGN4eF90ZXN0KGd0ZXN0LWZp
bGVwYXRoX3Rlc3QgZ3Rlc3RfbWFpbikKLSAgY3h4X3Rlc3QoZ3Rlc3QtbGlua2VkX3B0cl90ZXN0
IGd0ZXN0X21haW4pCi0gIGN4eF90ZXN0KGd0ZXN0LWxpc3RlbmVyX3Rlc3QgZ3Rlc3RfbWFpbikK
LSAgY3h4X3Rlc3QoZ3Rlc3RfbWFpbl91bml0dGVzdCBndGVzdF9tYWluKQotICBjeHhfdGVzdChn
dGVzdC1tZXNzYWdlX3Rlc3QgZ3Rlc3RfbWFpbikKLSAgY3h4X3Rlc3QoZ3Rlc3Rfbm9fdGVzdF91
bml0dGVzdCBndGVzdCkKLSAgY3h4X3Rlc3QoZ3Rlc3Qtb3B0aW9uc190ZXN0IGd0ZXN0X21haW4p
Ci0gIGN4eF90ZXN0KGd0ZXN0LXBhcmFtLXRlc3RfdGVzdCBndGVzdAotICAgIHRlc3QvZ3Rlc3Qt
cGFyYW0tdGVzdDJfdGVzdC5jYykKLSAgY3h4X3Rlc3QoZ3Rlc3QtcG9ydF90ZXN0IGd0ZXN0X21h
aW4pCi0gIGN4eF90ZXN0KGd0ZXN0X3ByZWRfaW1wbF91bml0dGVzdCBndGVzdF9tYWluKQotICBj
eHhfdGVzdChndGVzdF9wcmVtYXR1cmVfZXhpdF90ZXN0IGd0ZXN0Ci0gICAgdGVzdC9ndGVzdF9w
cmVtYXR1cmVfZXhpdF90ZXN0LmNjKQotICBjeHhfdGVzdChndGVzdC1wcmludGVyc190ZXN0IGd0
ZXN0X21haW4pCi0gIGN4eF90ZXN0KGd0ZXN0X3Byb2RfdGVzdCBndGVzdF9tYWluCi0gICAgdGVz
dC9wcm9kdWN0aW9uLmNjKQotICBjeHhfdGVzdChndGVzdF9yZXBlYXRfdGVzdCBndGVzdCkKLSAg
Y3h4X3Rlc3QoZ3Rlc3Rfc29sZV9oZWFkZXJfdGVzdCBndGVzdF9tYWluKQotICBjeHhfdGVzdChn
dGVzdF9zdHJlc3NfdGVzdCBndGVzdCkKLSAgY3h4X3Rlc3QoZ3Rlc3QtdGVzdC1wYXJ0X3Rlc3Qg
Z3Rlc3RfbWFpbikKLSAgY3h4X3Rlc3QoZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0IGd0
ZXN0KQotICBjeHhfdGVzdChndGVzdC10eXBlZC10ZXN0X3Rlc3QgZ3Rlc3RfbWFpbgotICAgIHRl
c3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYykKLSAgY3h4X3Rlc3QoZ3Rlc3RfdW5pdHRlc3Qg
Z3Rlc3RfbWFpbikKLSAgY3h4X3Rlc3QoZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QgZ3Rlc3QpCi0K
LSAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjCi0gICMgQysrIHRlc3RzIGJ1aWx0IHdpdGggbm9uLXN0YW5kYXJkIGNvbXBpbGVyIGZs
YWdzLgotCi0gICMgTVNWQyA3LjEgZG9lcyBub3Qgc3VwcG9ydCBTVEwgd2l0aCBleGNlcHRpb25z
IGRpc2FibGVkLgotICBpZiAoTk9UIE1TVkMgT1IgTVNWQ19WRVJTSU9OIEdSRUFURVIgMTMxMCkK
LSAgICBjeHhfbGlicmFyeShndGVzdF9ub19leGNlcHRpb24gIiR7Y3h4X25vX2V4Y2VwdGlvbn0i
Ci0gICAgICBzcmMvZ3Rlc3QtYWxsLmNjKQotICAgIGN4eF9saWJyYXJ5KGd0ZXN0X21haW5fbm9f
ZXhjZXB0aW9uICIke2N4eF9ub19leGNlcHRpb259IgotICAgICAgc3JjL2d0ZXN0LWFsbC5jYyBz
cmMvZ3Rlc3RfbWFpbi5jYykKLSAgZW5kaWYoKQotICBjeHhfbGlicmFyeShndGVzdF9tYWluX25v
X3J0dGkgIiR7Y3h4X25vX3J0dGl9IgotICAgIHNyYy9ndGVzdC1hbGwuY2Mgc3JjL2d0ZXN0X21h
aW4uY2MpCi0KLSAgY3h4X3Rlc3Rfd2l0aF9mbGFncyhndGVzdC1kZWF0aC10ZXN0X2V4X25vY2F0
Y2hfdGVzdAotICAgICIke2N4eF9leGNlcHRpb259IC1ER1RFU1RfRU5BQkxFX0NBVENIX0VYQ0VQ
VElPTlNfPTAiCi0gICAgZ3Rlc3QgdGVzdC9ndGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MpCi0g
IGN4eF90ZXN0X3dpdGhfZmxhZ3MoZ3Rlc3QtZGVhdGgtdGVzdF9leF9jYXRjaF90ZXN0Ci0gICAg
IiR7Y3h4X2V4Y2VwdGlvbn0gLURHVEVTVF9FTkFCTEVfQ0FUQ0hfRVhDRVBUSU9OU189MSIKLSAg
ICBndGVzdCB0ZXN0L2d0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYykKLQotICBjeHhfdGVzdF93
aXRoX2ZsYWdzKGd0ZXN0X25vX3J0dGlfdW5pdHRlc3QgIiR7Y3h4X25vX3J0dGl9IgotICAgIGd0
ZXN0X21haW5fbm9fcnR0aSB0ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNjKQotCi0gIGN4eF9zaGFyZWRf
bGlicmFyeShndGVzdF9kbGwgIiR7Y3h4X2RlZmF1bHR9IgotICAgIHNyYy9ndGVzdC1hbGwuY2Mg
c3JjL2d0ZXN0X21haW4uY2MpCi0KLSAgY3h4X2V4ZWN1dGFibGVfd2l0aF9mbGFncyhndGVzdF9k
bGxfdGVzdF8gIiR7Y3h4X2RlZmF1bHR9IgotICAgIGd0ZXN0X2RsbCB0ZXN0L2d0ZXN0X2FsbF90
ZXN0LmNjKQotICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoZ3Rlc3RfZGxsX3Rlc3RfCi0gICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QRVJUSUVTCi0gICAgICAgICAgICAgICAgICAgICAgICBDT01Q
SUxFX0RFRklOSVRJT05TICJHVEVTVF9MSU5LRURfQVNfU0hBUkVEX0xJQlJBUlk9MSIpCi0KLSAg
aWYgKE5PVCBNU1ZDIE9SIE1TVkNfVkVSU0lPTiBMRVNTIDE2MDApICAjIDE2MDAgaXMgVmlzdWFs
IFN0dWRpbyAyMDEwLgotICAgICMgVmlzdWFsIFN0dWRpbyAyMDEwLCAyMDEyLCBhbmQgMjAxMyBk
ZWZpbmUgc3ltYm9scyBpbiBzdGQ6OnRyMSB0aGF0Ci0gICAgIyBjb25mbGljdCB3aXRoIG91ciBv
d24gZGVmaW5pdGlvbnMuIFRoZXJlZm9yZSB1c2luZyBvdXIgb3duIHR1cGxlIGRvZXMgbm90Ci0g
ICAgIyB3b3JrIG9uIHRob3NlIGNvbXBpbGVycy4KLSAgICBjeHhfbGlicmFyeShndGVzdF9tYWlu
X3VzZV9vd25fdHVwbGUgIiR7Y3h4X3VzZV9vd25fdHVwbGV9IgotICAgICAgc3JjL2d0ZXN0LWFs
bC5jYyBzcmMvZ3Rlc3RfbWFpbi5jYykKLQotICAgIGN4eF90ZXN0X3dpdGhfZmxhZ3MoZ3Rlc3Qt
dHVwbGVfdGVzdCAiJHtjeHhfdXNlX293bl90dXBsZX0iCi0gICAgICBndGVzdF9tYWluX3VzZV9v
d25fdHVwbGUgdGVzdC9ndGVzdC10dXBsZV90ZXN0LmNjKQotCi0gICAgY3h4X3Rlc3Rfd2l0aF9m
bGFncyhndGVzdF91c2Vfb3duX3R1cGxlX3Rlc3QgIiR7Y3h4X3VzZV9vd25fdHVwbGV9IgotICAg
ICAgZ3Rlc3RfbWFpbl91c2Vfb3duX3R1cGxlCi0gICAgICB0ZXN0L2d0ZXN0LXBhcmFtLXRlc3Rf
dGVzdC5jYyB0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QyX3Rlc3QuY2MpCi0gIGVuZGlmKCkKLQotICAj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKLSAgIyBQeXRob24gdGVzdHMuCi0KLSAgY3h4X2V4ZWN1dGFibGUoZ3Rlc3RfYnJlYWtfb25f
ZmFpbHVyZV91bml0dGVzdF8gdGVzdCBndGVzdCkKLSAgcHlfdGVzdChndGVzdF9icmVha19vbl9m
YWlsdXJlX3VuaXR0ZXN0KQotCi0gICMgVmlzdWFsIFN0dWRpbyAuTkVUIDIwMDMgZG9lcyBub3Qg
c3VwcG9ydCBTVEwgd2l0aCBleGNlcHRpb25zIGRpc2FibGVkLgotICBpZiAoTk9UIE1TVkMgT1Ig
TVNWQ19WRVJTSU9OIEdSRUFURVIgMTMxMCkgICMgMTMxMCBpcyBWaXN1YWwgU3R1ZGlvIC5ORVQg
MjAwMwotICAgIGN4eF9leGVjdXRhYmxlX3dpdGhfZmxhZ3MoCi0gICAgICBndGVzdF9jYXRjaF9l
eGNlcHRpb25zX25vX2V4X3Rlc3RfCi0gICAgICAiJHtjeHhfbm9fZXhjZXB0aW9ufSIKLSAgICAg
IGd0ZXN0X21haW5fbm9fZXhjZXB0aW9uCi0gICAgICB0ZXN0L2d0ZXN0X2NhdGNoX2V4Y2VwdGlv
bnNfdGVzdF8uY2MpCi0gIGVuZGlmKCkKLQotICBjeHhfZXhlY3V0YWJsZV93aXRoX2ZsYWdzKAot
ICAgIGd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnNfZXhfdGVzdF8KLSAgICAiJHtjeHhfZXhjZXB0aW9u
fSIKLSAgICBndGVzdF9tYWluCi0gICAgdGVzdC9ndGVzdF9jYXRjaF9leGNlcHRpb25zX3Rlc3Rf
LmNjKQotICBweV90ZXN0KGd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnNfdGVzdCkKLQotICBjeHhfZXhl
Y3V0YWJsZShndGVzdF9jb2xvcl90ZXN0XyB0ZXN0IGd0ZXN0KQotICBweV90ZXN0KGd0ZXN0X2Nv
bG9yX3Rlc3QpCi0KLSAgY3h4X2V4ZWN1dGFibGUoZ3Rlc3RfZW52X3Zhcl90ZXN0XyB0ZXN0IGd0
ZXN0KQotICBweV90ZXN0KGd0ZXN0X2Vudl92YXJfdGVzdCkKLQotICBjeHhfZXhlY3V0YWJsZShn
dGVzdF9maWx0ZXJfdW5pdHRlc3RfIHRlc3QgZ3Rlc3QpCi0gIHB5X3Rlc3QoZ3Rlc3RfZmlsdGVy
X3VuaXR0ZXN0KQotCi0gIGN4eF9leGVjdXRhYmxlKGd0ZXN0X2hlbHBfdGVzdF8gdGVzdCBndGVz
dF9tYWluKQotICBweV90ZXN0KGd0ZXN0X2hlbHBfdGVzdCkKLQotICBjeHhfZXhlY3V0YWJsZShn
dGVzdF9saXN0X3Rlc3RzX3VuaXR0ZXN0XyB0ZXN0IGd0ZXN0KQotICBweV90ZXN0KGd0ZXN0X2xp
c3RfdGVzdHNfdW5pdHRlc3QpCi0KLSAgY3h4X2V4ZWN1dGFibGUoZ3Rlc3Rfb3V0cHV0X3Rlc3Rf
IHRlc3QgZ3Rlc3QpCi0gIHB5X3Rlc3QoZ3Rlc3Rfb3V0cHV0X3Rlc3QpCi0KLSAgY3h4X2V4ZWN1
dGFibGUoZ3Rlc3Rfc2h1ZmZsZV90ZXN0XyB0ZXN0IGd0ZXN0KQotICBweV90ZXN0KGd0ZXN0X3No
dWZmbGVfdGVzdCkKLQotICAjIE1TVkMgNy4xIGRvZXMgbm90IHN1cHBvcnQgU1RMIHdpdGggZXhj
ZXB0aW9ucyBkaXNhYmxlZC4KLSAgaWYgKE5PVCBNU1ZDIE9SIE1TVkNfVkVSU0lPTiBHUkVBVEVS
IDEzMTApCi0gICAgY3h4X2V4ZWN1dGFibGUoZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV90ZXN0XyB0
ZXN0IGd0ZXN0X25vX2V4Y2VwdGlvbikKLSAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoZ3Rlc3Rf
dGhyb3dfb25fZmFpbHVyZV90ZXN0XwotICAgICAgUFJPUEVSVElFUwotICAgICAgQ09NUElMRV9G
TEFHUyAiJHtjeHhfbm9fZXhjZXB0aW9ufSIpCi0gICAgcHlfdGVzdChndGVzdF90aHJvd19vbl9m
YWlsdXJlX3Rlc3QpCi0gIGVuZGlmKCkKLQotICBjeHhfZXhlY3V0YWJsZShndGVzdF91bmluaXRp
YWxpemVkX3Rlc3RfIHRlc3QgZ3Rlc3QpCi0gIHB5X3Rlc3QoZ3Rlc3RfdW5pbml0aWFsaXplZF90
ZXN0KQotCi0gIGN4eF9leGVjdXRhYmxlKGd0ZXN0X3htbF9vdXRmaWxlMV90ZXN0XyB0ZXN0IGd0
ZXN0X21haW4pCi0gIGN4eF9leGVjdXRhYmxlKGd0ZXN0X3htbF9vdXRmaWxlMl90ZXN0XyB0ZXN0
IGd0ZXN0X21haW4pCi0gIHB5X3Rlc3QoZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QpCi0KLSAgY3h4
X2V4ZWN1dGFibGUoZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8gdGVzdCBndGVzdCkKLSAgcHlf
dGVzdChndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0KQotZW5kaWYoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvQ09OVFJJQlVUT1JTIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QvQ09OVFJJQlVUT1JTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWFl
MmZjMDQ0MTBkYzMwOGU0NjRhYTI1NmZlMWYyZDMxZWRjOTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L0NP
TlRSSUJVVE9SUworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgVGhpcyBmaWxlIGNv
bnRhaW5zIGEgbGlzdCBvZiBwZW9wbGUgd2hvJ3ZlIG1hZGUgbm9uLXRyaXZpYWwKLSMgY29udHJp
YnV0aW9uIHRvIHRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIHByb2plY3QuICBQZW9w
bGUKLSMgd2hvIGNvbW1pdCBjb2RlIHRvIHRoZSBwcm9qZWN0IGFyZSBlbmNvdXJhZ2VkIHRvIGFk
ZCB0aGVpciBuYW1lcwotIyBoZXJlLiAgUGxlYXNlIGtlZXAgdGhlIGxpc3Qgc29ydGVkIGJ5IGZp
cnN0IG5hbWVzLgotCi1BamF5IEpvc2hpIDxqYWpAZ29vZ2xlLmNvbT4KLUJhbMOhenMgRMOhbiA8
YmFsYXpzLmRhbkBnbWFpbC5jb20+Ci1CaGFyYXQgTWVkaXJhdHRhIDxiaGFyYXRAbWVuYWx0by5j
b20+Ci1DaGFuZGxlciBDYXJydXRoIDxjaGFuZGxlcmNAZ29vZ2xlLmNvbT4KLUNocmlzIFByaW5j
ZSA8Y3ByaW5jZUBnb29nbGUuY29tPgotQ2hyaXMgVGF5bG9yIDx0YXlsb3JjQGdvb2dsZS5jb20+
Ci1EYW4gRWdub3IgPGVnbm9yQGdvb2dsZS5jb20+Ci1FcmljIFJvbWFuIDxlcm9tYW5AY2hyb21p
dW0ub3JnPgotSGFkeSBaYWxlayA8aGFkeS56YWxla0BnbWFpbC5jb20+Ci1KZWZmcmV5IFlhc3Nr
aW4gPGp5YXNza2luQGdvb2dsZS5jb20+Ci1Kw7NpIFNpZ3Vyw7Bzc29uIDxqb2lAZ29vZ2xlLmNv
bT4KLUtlaXIgTWllcmxlIDxtaWVybGVAZ21haWwuY29tPgotS2VpdGggUmF5IDxrZWl0aC5yYXlA
Z21haWwuY29tPgotS2VudG9uIFZhcmRhIDxrZW50b25AZ29vZ2xlLmNvbT4KLU1hbnVlbCBLbGlt
ZWsgPGtsaW1la0Bnb29nbGUuY29tPgotTWFya3VzIEhldWxlIDxtYXJrdXMuaGV1bGVAZ21haWwu
Y29tPgotTWlrYSBSYWVudG8gPG1pa2llQGlraS5maT4KLU1pa2zDs3MgRmF6ZWthcyA8bWZhemVr
YXNAc3plbWFmb3IuY29tPgotUGFzaSBWYWxtaW5lbiA8cGFzaS52YWxtaW5lbkBnbWFpbC5jb20+
Ci1QYXRyaWNrIEhhbm5hIDxwaGFubmFAZ29vZ2xlLmNvbT4KLVBhdHJpY2sgUmlsZXkgPHBmckBn
b29nbGUuY29tPgotUGV0ZXIgS2FtaW5za2kgPHBpb3Rya0Bnb29nbGUuY29tPgotUHJlc3RvbiBK
YWNrc29uIDxwcmVzdG9uLmEuamFja3NvbkBnbWFpbC5jb20+Ci1SYWluZXIgS2xhZmZlbmJvZWNr
IDxyYWluZXIua2xhZmZlbmJvZWNrQGR5bmF0cmFjZS5jb20+Ci1SdXNzIENveCA8cnNjQGdvb2ds
ZS5jb20+Ci1SdXNzIFJ1ZmVyIDxydXNzQHBlbnRhZC5jb20+Ci1TZWFuIE1jYWZlZSA8ZWVmYWNt
QGdtYWlsLmNvbT4KLVNpZ3Vyw7B1ciDDgXNnZWlyc3NvbiA8c2lnZ2lAZ29vZ2xlLmNvbT4KLVRy
YWN5IEJpYWxpayA8dHJhY3lAcGVudGFkLmNvbT4KLVZhZGltIEJlcm1hbiA8dmFkaW1iQGdvb2ds
ZS5jb20+Ci1WbGFkIExvc2V2IDx2bGFkbEBnb29nbGUuY29tPgotWmhhbnlvbmcgV2FuIDx3YW5A
Z29vZ2xlLmNvbT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L0xJQ0VO
U0UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9MSUNFTlNFCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxOTQxYTExZjhjZTk0Mzg5MTYwYjQ1ODkyN2EyOWJhMjE3NTQyODE4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9w
YXJ0eS9nb29nbGV0ZXN0L0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1D
b3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC9NRVRBREFUQSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L01FVEFEQVRBCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzE1YWZiNTc0MWFlMzYzZTAxZTA3M2M2MmVlOGYxYmIz
MzliMjA4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L01FVEFEQVRBCisrKyAvZGV2L251bGwKQEAgLTEsMTQg
KzAsMCBAQAotbmFtZTogImdvb2dsZXRlc3QiCi1kZXNjcmlwdGlvbjogImdvb2dsZXRlc3QgaXMg
R29vZ2xlJ3MgQysrIHRlc3QgZnJhbWV3b3JrLiIKLQotdGhpcmRfcGFydHkgewotICB1cmwgewot
ICAgIHR5cGU6IEhPTUVQQUdFCi0gICAgdmFsdWU6ICJodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xl
L2dvb2dsZXRlc3QiCi0gIH0KLSAgdmVyc2lvbjogIjQzNzFiOTk2ZWRiMjZmOWU2MWYyOTIyODVh
MWQyZjcxMjU5ZTcyY2MiCi0gIGxhc3RfdXBncmFkZV9kYXRlIHsgeWVhcjogMjAxOCBtb250aDog
MSBkYXk6IDYgfQotCi0gIGxvY2FsX21vZGlmaWNhdGlvbnM6Ci0gICAgICAiT25seSBnb29nbGV0
ZXN0LCBub3QgZ29vZ2xlbW9jaywgaXMgaW5jbHVkZWQuIgotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvTWFrZWZpbGUuYW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC9NYWtlZmlsZS5hbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZjNzIzMmRk
NGNmNGYwOTZiODVjMGIyZDQ2NTExMDU1OGMzZWY4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9NYWtlZmls
ZS5hbQorKysgL2Rldi9udWxsCkBAIC0xLDMzOSArMCwwIEBACi0jIEF1dG9tYWtlIGZpbGUKLQot
QUNMT0NBTF9BTUZMQUdTID0gLUkgbTQKLQotIyBOb25zdGFuZGFyZCBwYWNrYWdlIGZpbGVzIGZv
ciBkaXN0cmlidXRpb24KLUVYVFJBX0RJU1QgPSBcCi0gIENIQU5HRVMgXAotICBDT05UUklCVVRP
UlMgXAotICBMSUNFTlNFIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgucHVt
cCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQu
aC5wdW1wIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10dXBsZS5oLnB1bXAgXAot
ICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oLnB1bXAgXAotICBtYWtl
L01ha2VmaWxlIFwKLSAgc2NyaXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5IFwKLSAgc2NyaXB0cy9n
ZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5IFwKLSAgc2NyaXB0cy9wdW1wLnB5IFwKLSAgc2NyaXB0cy90
ZXN0L01ha2VmaWxlCi0KLSMgZ3Rlc3Qgc291cmNlIGZpbGVzIHRoYXQgd2UgZG9uJ3QgY29tcGls
ZSBkaXJlY3RseS4gIFRoZXkgYXJlCi0jICNpbmNsdWRlZCBieSBndGVzdC1hbGwuY2MuCi1HVEVT
VF9TUkMgPSBcCi0gIHNyYy9ndGVzdC1kZWF0aC10ZXN0LmNjIFwKLSAgc3JjL2d0ZXN0LWZpbGVw
YXRoLmNjIFwKLSAgc3JjL2d0ZXN0LWludGVybmFsLWlubC5oIFwKLSAgc3JjL2d0ZXN0LXBvcnQu
Y2MgXAotICBzcmMvZ3Rlc3QtcHJpbnRlcnMuY2MgXAotICBzcmMvZ3Rlc3QtdGVzdC1wYXJ0LmNj
IFwKLSAgc3JjL2d0ZXN0LXR5cGVkLXRlc3QuY2MgXAotICBzcmMvZ3Rlc3QuY2MKLQotRVhUUkFf
RElTVCArPSAkKEdURVNUX1NSQykKLQotIyBTYW1wbGUgZmlsZXMgdGhhdCB3ZSBkb24ndCBjb21w
aWxlLgotRVhUUkFfRElTVCArPSBcCi0gIHNhbXBsZXMvcHJpbWVfdGFibGVzLmggXAotICBzYW1w
bGVzL3NhbXBsZTFfdW5pdHRlc3QuY2MgXAotICBzYW1wbGVzL3NhbXBsZTJfdW5pdHRlc3QuY2Mg
XAotICBzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MgXAotICBzYW1wbGVzL3NhbXBsZTRfdW5p
dHRlc3QuY2MgXAotICBzYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MgXAotICBzYW1wbGVzL3Nh
bXBsZTZfdW5pdHRlc3QuY2MgXAotICBzYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MgXAotICBz
YW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MgXAotICBzYW1wbGVzL3NhbXBsZTlfdW5pdHRlc3Qu
Y2MKLQotIyBDKysgdGVzdCBmaWxlcyB0aGF0IHdlIGRvbid0IGNvbXBpbGUgZGlyZWN0bHkuCi1F
WFRSQV9ESVNUICs9IFwKLSAgdGVzdC9ndGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MgXAotICB0
ZXN0L2d0ZXN0LWRlYXRoLXRlc3RfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtZmlsZXBhdGhfdGVz
dC5jYyBcCi0gIHRlc3QvZ3Rlc3QtbGlua2VkX3B0cl90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1s
aXN0ZW5lcl90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1tZXNzYWdlX3Rlc3QuY2MgXAotICB0ZXN0
L2d0ZXN0LW9wdGlvbnNfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtcGFyYW0tdGVzdDJfdGVzdC5j
YyBcCi0gIHRlc3QvZ3Rlc3QtcGFyYW0tdGVzdDJfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtcGFy
YW0tdGVzdF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1wYXJhbS10ZXN0X3Rlc3QuY2MgXAotICB0
ZXN0L2d0ZXN0LXBhcmFtLXRlc3RfdGVzdC5oIFwKLSAgdGVzdC9ndGVzdC1wb3J0X3Rlc3QuY2Mg
XAotICB0ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXBy
aW50ZXJzX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXRlc3QtcGFydF90ZXN0LmNjIFwKLSAgdGVz
dC9ndGVzdC10dXBsZV90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNj
IFwKLSAgdGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXR5cGVk
LXRlc3RfdGVzdC5oIFwKLSAgdGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYyBcCi0gIHRl
c3QvZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZV91bml0dGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X2Nh
dGNoX2V4Y2VwdGlvbnNfdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X2NvbG9yX3Rlc3RfLmNjIFwK
LSAgdGVzdC9ndGVzdF9lbnZfdmFyX3Rlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9lbnZpcm9ubWVu
dF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9maWx0ZXJfdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9n
dGVzdF9oZWxwX3Rlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9saXN0X3Rlc3RzX3VuaXR0ZXN0Xy5j
YyBcCi0gIHRlc3QvZ3Rlc3RfbWFpbl91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3Rfbm9fdGVz
dF91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjIFwKLSAgdGVzdC9n
dGVzdF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3Byb2RfdGVzdC5jYyBc
Ci0gIHRlc3QvZ3Rlc3RfcmVwZWF0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3NodWZmbGVfdGVz
dF8uY2MgXAotICB0ZXN0L2d0ZXN0X3NvbGVfaGVhZGVyX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0
X3N0cmVzc190ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3Qu
Y2MgXAotICB0ZXN0L2d0ZXN0X3Rocm93X29uX2ZhaWx1cmVfdGVzdF8uY2MgXAotICB0ZXN0L2d0
ZXN0X3VuaW5pdGlhbGl6ZWRfdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNjIFwK
LSAgdGVzdC9ndGVzdF91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291dGZpbGUxX3Rl
c3RfLmNjIFwKLSAgdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MgXAotICB0ZXN0L2d0
ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9wcm9kdWN0aW9uLmNjIFwKLSAg
dGVzdC9wcm9kdWN0aW9uLmgKLQotIyBQeXRob24gdGVzdHMgdGhhdCB3ZSBkb24ndCBydW4uCi1F
WFRSQV9ESVNUICs9IFwKLSAgdGVzdC9ndGVzdF9icmVha19vbl9mYWlsdXJlX3VuaXR0ZXN0LnB5
IFwKLSAgdGVzdC9ndGVzdF9jYXRjaF9leGNlcHRpb25zX3Rlc3QucHkgXAotICB0ZXN0L2d0ZXN0
X2NvbG9yX3Rlc3QucHkgXAotICB0ZXN0L2d0ZXN0X2Vudl92YXJfdGVzdC5weSBcCi0gIHRlc3Qv
Z3Rlc3RfZmlsdGVyX3VuaXR0ZXN0LnB5IFwKLSAgdGVzdC9ndGVzdF9oZWxwX3Rlc3QucHkgXAot
ICB0ZXN0L2d0ZXN0X2xpc3RfdGVzdHNfdW5pdHRlc3QucHkgXAotICB0ZXN0L2d0ZXN0X291dHB1
dF90ZXN0LnB5IFwKLSAgdGVzdC9ndGVzdF9vdXRwdXRfdGVzdF9nb2xkZW5fbGluLnR4dCBcCi0g
IHRlc3QvZ3Rlc3Rfc2h1ZmZsZV90ZXN0LnB5IFwKLSAgdGVzdC9ndGVzdF90ZXN0X3V0aWxzLnB5
IFwKLSAgdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX3Rlc3QucHkgXAotICB0ZXN0L2d0ZXN0
X3VuaW5pdGlhbGl6ZWRfdGVzdC5weSBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3Qu
cHkgXAotICB0ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkgXAotICB0ZXN0L2d0ZXN0
X3htbF90ZXN0X3V0aWxzLnB5Ci0KLSMgQ01ha2Ugc2NyaXB0Ci1FWFRSQV9ESVNUICs9IFwKLSAg
Q01ha2VMaXN0cy50eHQgXAotICBjbWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZQotCi0jIE1TVkMg
cHJvamVjdCBmaWxlcwotRVhUUkFfRElTVCArPSBcCi0gIG1zdmMvMjAxMC9ndGVzdC1tZC5zbG4g
XAotICBtc3ZjLzIwMTAvZ3Rlc3QtbWQudmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdC5zbG4g
XAotICBtc3ZjLzIwMTAvZ3Rlc3QudmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdF9tYWluLW1k
LnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEw
L2d0ZXN0X3Byb2RfdGVzdC1tZC52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVz
dC52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ogXAotICBt
c3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4cHJvagotCi0jIHhjb2RlIHByb2plY3QgZmlsZXMK
LUVYVFJBX0RJU1QgKz0gXAotICB4Y29kZS9Db25maWcvRGVidWdQcm9qZWN0LnhjY29uZmlnIFwK
LSAgeGNvZGUvQ29uZmlnL0ZyYW1ld29ya1RhcmdldC54Y2NvbmZpZyBcCi0gIHhjb2RlL0NvbmZp
Zy9HZW5lcmFsLnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmlnL1JlbGVhc2VQcm9qZWN0LnhjY29u
ZmlnIFwKLSAgeGNvZGUvQ29uZmlnL1N0YXRpY0xpYnJhcnlUYXJnZXQueGNjb25maWcgXAotICB4
Y29kZS9Db25maWcvVGVzdFRhcmdldC54Y2NvbmZpZyBcCi0gIHhjb2RlL1Jlc291cmNlcy9JbmZv
LnBsaXN0IFwKLSAgeGNvZGUvU2NyaXB0cy9ydW50ZXN0cy5zaCBcCi0gIHhjb2RlL1NjcmlwdHMv
dmVyc2lvbmdlbmVyYXRlLnB5IFwKLSAgeGNvZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagotCi0jIHhjb2RlIHNhbXBsZSBmaWxlcwotRVhUUkFfRElTVCArPSBcCi0gIHhjb2RlL1Nh
bXBsZXMvRnJhbWV3b3JrU2FtcGxlL0luZm8ucGxpc3QgXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1l
d29ya1NhbXBsZS9XaWRnZXRGcmFtZXdvcmsueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBcCi0g
IHhjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL3J1bnRlc3RzLnNoIFwKLSAgeGNvZGUvU2Ft
cGxlcy9GcmFtZXdvcmtTYW1wbGUvd2lkZ2V0LmNjIFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdv
cmtTYW1wbGUvd2lkZ2V0LmggXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRn
ZXRfdGVzdC5jYwotCi0jIEMrK0J1aWxkZXIgcHJvamVjdCBmaWxlcwotRVhUUkFfRElTVCArPSBc
Ci0gIGNvZGVnZWFyL2d0ZXN0LmNicHJvaiBcCi0gIGNvZGVnZWFyL2d0ZXN0Lmdyb3VwcHJvaiBc
Ci0gIGNvZGVnZWFyL2d0ZXN0X2FsbC5jYyBcCi0gIGNvZGVnZWFyL2d0ZXN0X2xpbmsuY2MgXAot
ICBjb2RlZ2Vhci9ndGVzdF9tYWluLmNicHJvaiBcCi0gIGNvZGVnZWFyL2d0ZXN0X3VuaXR0ZXN0
LmNicHJvagotCi0jIERpc3RyaWJ1dGUgYW5kIGluc3RhbGwgTTQgbWFjcm8KLW00ZGF0YWRpciA9
ICQoZGF0YWRpcikvYWNsb2NhbAotbTRkYXRhX0RBVEEgPSBtNC9ndGVzdC5tNAotRVhUUkFfRElT
VCArPSAkKG00ZGF0YV9EQVRBKQotCi0jIFdlIGRlZmluZSB0aGUgZ2xvYmFsIEFNX0NQUEZMQUdT
IGFzIGV2ZXJ5dGhpbmcgd2UgY29tcGlsZSBpbmNsdWRlcyBmcm9tIHRoZXNlCi0jIGRpcmVjdG9y
aWVzLgotQU1fQ1BQRkxBR1MgPSAtSSQoc3JjZGlyKSAtSSQoc3JjZGlyKS9pbmNsdWRlCi0KLSMg
TW9kaWZpZXMgY29tcGlsZXIgYW5kIGxpbmtlciBmbGFncyBmb3IgcHRocmVhZHMgY29tcGF0aWJp
bGl0eS4KLWlmIEhBVkVfUFRIUkVBRFMKLSAgQU1fQ1hYRkxBR1MgPSBAUFRIUkVBRF9DRkxBR1NA
IC1ER1RFU1RfSEFTX1BUSFJFQUQ9MQotICBBTV9MSUJTID0gQFBUSFJFQURfTElCU0AKLWVsc2UK
LSAgQU1fQ1hYRkxBR1MgPSAtREdURVNUX0hBU19QVEhSRUFEPTAKLWVuZGlmCi0KLSMgQnVpbGQg
cnVsZXMgZm9yIGxpYnJhcmllcy4KLWxpYl9MVExJQlJBUklFUyA9IGxpYi9saWJndGVzdC5sYSBs
aWIvbGliZ3Rlc3RfbWFpbi5sYQotCi1saWJfbGliZ3Rlc3RfbGFfU09VUkNFUyA9IHNyYy9ndGVz
dC1hbGwuY2MKLQotcGtnaW5jbHVkZV9IRUFERVJTID0gXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0
LWRlYXRoLXRlc3QuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oIFwKLSAgaW5j
bHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXBy
aW50ZXJzLmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oIFwKLSAgaW5jbHVkZS9ndGVz
dC9ndGVzdC10ZXN0LXBhcnQuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5o
IFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVk
X2ltcGwuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJvZC5oCi0KLXBrZ2luY2x1ZGVfaW50
ZXJuYWxkaXIgPSAkKHBrZ2luY2x1ZGVkaXIpL2ludGVybmFsCi1wa2dpbmNsdWRlX2ludGVybmFs
X0hFQURFUlMgPSBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1p
bnRlcm5hbC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oIFwK
LSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIFwKLSAgaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRfcHRyLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
cG9ydC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCBcCi0g
IGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmggXAotICBpbmNsdWRlL2d0ZXN0
L2ludGVybmFsL2d0ZXN0LXR1cGxlLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXR5cGUtdXRpbC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaCBc
Ci0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaCBcCi0gIGluY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXByaW50ZXJzLmgKLQotbGliX2xpYmd0ZXN0
X21haW5fbGFfU09VUkNFUyA9IHNyYy9ndGVzdF9tYWluLmNjCi1saWJfbGliZ3Rlc3RfbWFpbl9s
YV9MSUJBREQgPSBsaWIvbGliZ3Rlc3QubGEKLQotIyBCdWlsZCBydWxlcyBmb3Igc2FtcGxlcyBh
bmQgdGVzdHMuIEF1dG9tYWtlJ3MgbmFtaW5nIGZvciBzb21lIG9mCi0jIHRoZXNlIHZhcmlhYmxl
cyBpc24ndCB0ZXJyaWJseSBvYnZpb3VzLCBzbyB0aGlzIGlzIGEgYnJpZWYKLSMgcmVmZXJlbmNl
OgotIwotIyBURVNUUyAtLSBQcm9ncmFtcyBydW4gYXV0b21hdGljYWxseSBieSAibWFrZSBjaGVj
ayIKLSMgY2hlY2tfUFJPR1JBTVMgLS0gUHJvZ3JhbXMgYnVpbHQgYnkgIm1ha2UgY2hlY2siIGJ1
dCBub3QgbmVjZXNzYXJpbHkgcnVuCi0KLVRFU1RTPQotVEVTVFNfRU5WSVJPTk1FTlQgPSBHVEVT
VF9TT1VSQ0VfRElSPSIkKHNyY2RpcikvdGVzdCIgXAotICAgICAgICAgICAgICAgICAgICBHVEVT
VF9CVUlMRF9ESVI9IiQodG9wX2J1aWxkZGlyKS90ZXN0IgotY2hlY2tfUFJPR1JBTVM9Ci0KLSMg
QSBzaW1wbGUgc2FtcGxlIG9uIHVzaW5nIGd0ZXN0LgotVEVTVFMgKz0gc2FtcGxlcy9zYW1wbGUx
X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTJfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMv
c2FtcGxlM191bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0IFwKLSAgICBz
YW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdCBc
Ci0gICAgc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZThfdW5p
dHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlOV91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1w
bGUxMF91bml0dGVzdAotY2hlY2tfUFJPR1JBTVMgKz0gc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0
IFwKLSAgICBzYW1wbGVzL3NhbXBsZTJfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlM191
bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3Nh
bXBsZTVfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdCBcCi0gICAgc2Ft
cGxlcy9zYW1wbGU3X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QgXAot
ICAgIHNhbXBsZXMvc2FtcGxlOV91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUxMF91bml0
dGVzdAotCi1zYW1wbGVzX3NhbXBsZTFfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxl
MV91bml0dGVzdC5jYyBzYW1wbGVzL3NhbXBsZTEuY2MKLXNhbXBsZXNfc2FtcGxlMV91bml0dGVz
dF9MREFERCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGUyX3VuaXR0ZXN0X1NPVVJD
RVMgPSBzYW1wbGVzL3NhbXBsZTJfdW5pdHRlc3QuY2Mgc2FtcGxlcy9zYW1wbGUyLmNjCi1zYW1w
bGVzX3NhbXBsZTJfdW5pdHRlc3RfTERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2Ft
cGxlM191bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCi1zYW1w
bGVzX3NhbXBsZTNfdW5pdHRlc3RfTERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2Ft
cGxlNF91bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjIHNhbXBs
ZXMvc2FtcGxlNC5jYwotc2FtcGxlc19zYW1wbGU0X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0
ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0
ZXN0LmxhCi1zYW1wbGVzX3NhbXBsZTVfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxl
NV91bml0dGVzdC5jYyBzYW1wbGVzL3NhbXBsZTEuY2MKLXNhbXBsZXNfc2FtcGxlNV91bml0dGVz
dF9MREFERCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGU2X3VuaXR0ZXN0X1NPVVJD
RVMgPSBzYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlNl91bml0dGVz
dF9MREFERCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGU3X3VuaXR0ZXN0X1NPVVJD
RVMgPSBzYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlN191bml0dGVz
dF9MREFERCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGU4X3VuaXR0ZXN0X1NPVVJD
RVMgPSBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlOF91bml0dGVz
dF9MREFERCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotCi0jIEFsc28gdmVyaWZ5IHRoYXQgbGliZ3Rlc3Qg
d29ya3MgYnkgaXRzZWxmLgotc2FtcGxlc19zYW1wbGU5X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1w
bGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlOV91bml0dGVzdF9MREFERCA9
IGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGUxMF91bml0dGVzdF9TT1VSQ0VTID0gc2Ft
cGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYwotc2FtcGxlc19zYW1wbGUxMF91bml0dGVzdF9MREFE
RCA9IGxpYi9saWJndGVzdC5sYQotCi0jIFRoaXMgdGVzdHMgbW9zdCBjb25zdHJ1Y3RzIG9mIGd0
ZXN0IGFuZCB2ZXJpZmllcyB0aGF0IGxpYmd0ZXN0X21haW4KLSMgYW5kIGxpYmd0ZXN0IHdvcmsu
Ci1URVNUUyArPSB0ZXN0L2d0ZXN0X2FsbF90ZXN0Ci1jaGVja19QUk9HUkFNUyArPSB0ZXN0L2d0
ZXN0X2FsbF90ZXN0Ci10ZXN0X2d0ZXN0X2FsbF90ZXN0X1NPVVJDRVMgPSB0ZXN0L2d0ZXN0X2Fs
bF90ZXN0LmNjCi10ZXN0X2d0ZXN0X2FsbF90ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4u
bGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotCi0jIFRl
c3RzIHRoYXQgZnVzZWQgZ3Rlc3QgZmlsZXMgY29tcGlsZSBhbmQgd29yay4KLUZVU0VEX0dURVNU
X1NSQyA9IFwKLSAgZnVzZWQtc3JjL2d0ZXN0L2d0ZXN0LWFsbC5jYyBcCi0gIGZ1c2VkLXNyYy9n
dGVzdC9ndGVzdC5oIFwKLSAgZnVzZWQtc3JjL2d0ZXN0L2d0ZXN0X21haW4uY2MKLQotaWYgSEFW
RV9QWVRIT04KLVRFU1RTICs9IHRlc3QvZnVzZWRfZ3Rlc3RfdGVzdAotY2hlY2tfUFJPR1JBTVMg
Kz0gdGVzdC9mdXNlZF9ndGVzdF90ZXN0Ci10ZXN0X2Z1c2VkX2d0ZXN0X3Rlc3RfU09VUkNFUyA9
ICQoRlVTRURfR1RFU1RfU1JDKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNh
bXBsZXMvc2FtcGxlMS5jYyBzYW1wbGVzL3NhbXBsZTFfdW5pdHRlc3QuY2MKLXRlc3RfZnVzZWRf
Z3Rlc3RfdGVzdF9DUFBGTEFHUyA9IC1JIiQoc3JjZGlyKS9mdXNlZC1zcmMiCi0KLSMgQnVpbGQg
cnVsZXMgZm9yIHB1dHRpbmcgZnVzZWQgR29vZ2xlIFRlc3QgZmlsZXMgaW50byB0aGUgZGlzdHJp
YnV0aW9uCi0jIHBhY2thZ2UuIFRoZSB1c2VyIGNhbiBhbHNvIGNyZWF0ZSB0aG9zZSBmaWxlcyBi
eSBtYW51YWxseSBydW5uaW5nCi0jIHNjcmlwdHMvZnVzZV9ndGVzdF9maWxlcy5weS4KLSQodGVz
dF9mdXNlZF9ndGVzdF90ZXN0X1NPVVJDRVMpOiBmdXNlZC1ndGVzdAotCi1mdXNlZC1ndGVzdDog
JChwa2dpbmNsdWRlX0hFQURFUlMpICQocGtnaW5jbHVkZV9pbnRlcm5hbF9IRUFERVJTKSBcCi0g
ICAgICAgICAgICAgJChHVEVTVF9TUkMpIHNyYy9ndGVzdC1hbGwuY2Mgc3JjL2d0ZXN0X21haW4u
Y2MgXAotICAgICAgICAgICAgIHNjcmlwdHMvZnVzZV9ndGVzdF9maWxlcy5weQotCW1rZGlyIC1w
ICIkKHNyY2RpcikvZnVzZWQtc3JjIgotCWNobW9kIC1SIHUrdyAiJChzcmNkaXIpL2Z1c2VkLXNy
YyIKLQlybSAtZiAiJChzcmNkaXIpL2Z1c2VkLXNyYy9ndGVzdC9ndGVzdC1hbGwuY2MiCi0Jcm0g
LWYgIiQoc3JjZGlyKS9mdXNlZC1zcmMvZ3Rlc3QvZ3Rlc3QuaCIKLQkiJChzcmNkaXIpL3Njcmlw
dHMvZnVzZV9ndGVzdF9maWxlcy5weSIgIiQoc3JjZGlyKS9mdXNlZC1zcmMiCi0JY3AgLWYgIiQo
c3JjZGlyKS9zcmMvZ3Rlc3RfbWFpbi5jYyIgIiQoc3JjZGlyKS9mdXNlZC1zcmMvZ3Rlc3QvIgot
Ci1tYWludGFpbmVyLWNsZWFuLWxvY2FsOgotCXJtIC1yZiAiJChzcmNkaXIpL2Z1c2VkLXNyYyIK
LWVuZGlmCi0KLSMgRGVhdGggdGVzdHMgbWF5IHByb2R1Y2UgY29yZSBkdW1wcyBpbiB0aGUgYnVp
bGQgZGlyZWN0b3J5LiBJbiBjYXNlCi0jIHRoaXMgaGFwcGVucywgY2xlYW4gdGhlbSB0byBrZWVw
IGRpc3RjbGVhbmNoZWNrIGhhcHB5LgotQ0xFQU5GSUxFUyA9IGNvcmUKLQotIyBEaXNhYmxlcyAn
bWFrZSBpbnN0YWxsJyBhcyBpbnN0YWxsaW5nIGEgY29tcGlsZWQgdmVyc2lvbiBvZiBHb29nbGUK
LSMgVGVzdCBjYW4gbGVhZCB0byB1bmRlZmluZWQgYmVoYXZpb3IgZHVlIHRvIHZpb2xhdGlvbiBv
ZiB0aGUKLSMgT25lLURlZmluaXRpb24gUnVsZS4KLQotaW5zdGFsbC1leGVjLWxvY2FsOgotCWVj
aG8gIidtYWtlIGluc3RhbGwnIGlzIGRhbmdlcm91cyBhbmQgbm90IHN1cHBvcnRlZC4gSW5zdGVh
ZCwgc2VlIFJFQURNRSBmb3IgaG93IHRvIGludGVncmF0ZSBHb29nbGUgVGVzdCBpbnRvIHlvdXIg
YnVpbGQgc3lzdGVtLiIKLQlmYWxzZQotCi1pbnN0YWxsLWRhdGEtbG9jYWw6Ci0JZWNobyAiJ21h
a2UgaW5zdGFsbCcgaXMgZGFuZ2Vyb3VzIGFuZCBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBzZWUg
UkVBRE1FIGZvciBob3cgdG8gaW50ZWdyYXRlIEdvb2dsZSBUZXN0IGludG8geW91ciBidWlsZCBz
eXN0ZW0uIgotCWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9S
RUFETUUubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9SRUFETUUubWQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyNWFiYTI0Mzk3YjY2OTQwYzIyNmYxNjI2YTEzZjdmM2Ri
NzJlNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvUkVBRE1FLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMzYw
ICswLDAgQEAKLQotIyMjIEdlbmVyaWMgQnVpbGQgSW5zdHJ1Y3Rpb25zICMjIwotCi0jIyMjIFNl
dHVwICMjIyMKLQotVG8gYnVpbGQgR29vZ2xlIFRlc3QgYW5kIHlvdXIgdGVzdHMgdGhhdCB1c2Ug
aXQsIHlvdSBuZWVkIHRvIHRlbGwgeW91cgotYnVpbGQgc3lzdGVtIHdoZXJlIHRvIGZpbmQgaXRz
IGhlYWRlcnMgYW5kIHNvdXJjZSBmaWxlcy4gIFRoZSBleGFjdAotd2F5IHRvIGRvIGl0IGRlcGVu
ZHMgb24gd2hpY2ggYnVpbGQgc3lzdGVtIHlvdSB1c2UsIGFuZCBpcyB1c3VhbGx5Ci1zdHJhaWdo
dGZvcndhcmQuCi0KLSMjIyMgQnVpbGQgIyMjIwotCi1TdXBwb3NlIHlvdSBwdXQgR29vZ2xlIFRl
c3QgaW4gZGlyZWN0b3J5IGAke0dURVNUX0RJUn1gLiAgVG8gYnVpbGQgaXQsCi1jcmVhdGUgYSBs
aWJyYXJ5IGJ1aWxkIHRhcmdldCAob3IgYSBwcm9qZWN0IGFzIGNhbGxlZCBieSBWaXN1YWwgU3R1
ZGlvCi1hbmQgWGNvZGUpIHRvIGNvbXBpbGUKLQotICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3Qt
YWxsLmNjCi0KLXdpdGggYCR7R1RFU1RfRElSfS9pbmNsdWRlYCBpbiB0aGUgc3lzdGVtIGhlYWRl
ciBzZWFyY2ggcGF0aCBhbmQgYCR7R1RFU1RfRElSfWAKLWluIHRoZSBub3JtYWwgaGVhZGVyIHNl
YXJjaCBwYXRoLiAgQXNzdW1pbmcgYSBMaW51eC1saWtlIHN5c3RlbSBhbmQgZ2NjLAotc29tZXRo
aW5nIGxpa2UgdGhlIGZvbGxvd2luZyB3aWxsIGRvOgotCi0gICAgZysrIC1pc3lzdGVtICR7R1RF
U1RfRElSfS9pbmNsdWRlIC1JJHtHVEVTVF9ESVJ9IFwKLSAgICAgICAgLXB0aHJlYWQgLWMgJHtH
VEVTVF9ESVJ9L3NyYy9ndGVzdC1hbGwuY2MKLSAgICBhciAtcnYgbGliZ3Rlc3QuYSBndGVzdC1h
bGwubwotCi0oV2UgbmVlZCBgLXB0aHJlYWRgIGFzIEdvb2dsZSBUZXN0IHVzZXMgdGhyZWFkcy4p
Ci0KLU5leHQsIHlvdSBzaG91bGQgY29tcGlsZSB5b3VyIHRlc3Qgc291cmNlIGZpbGUgd2l0aAot
YCR7R1RFU1RfRElSfS9pbmNsdWRlYCBpbiB0aGUgc3lzdGVtIGhlYWRlciBzZWFyY2ggcGF0aCwg
YW5kIGxpbmsgaXQKLXdpdGggZ3Rlc3QgYW5kIGFueSBvdGhlciBuZWNlc3NhcnkgbGlicmFyaWVz
OgotCi0gICAgZysrIC1pc3lzdGVtICR7R1RFU1RfRElSfS9pbmNsdWRlIC1wdGhyZWFkIHBhdGgv
dG8veW91cl90ZXN0LmNjIGxpYmd0ZXN0LmEgXAotICAgICAgICAtbyB5b3VyX3Rlc3QKLQotQXMg
YW4gZXhhbXBsZSwgdGhlIG1ha2UvIGRpcmVjdG9yeSBjb250YWlucyBhIE1ha2VmaWxlIHRoYXQg
eW91IGNhbgotdXNlIHRvIGJ1aWxkIEdvb2dsZSBUZXN0IG9uIHN5c3RlbXMgd2hlcmUgR05VIG1h
a2UgaXMgYXZhaWxhYmxlCi0oZS5nLiBMaW51eCwgTWFjIE9TIFgsIGFuZCBDeWd3aW4pLiAgSXQg
ZG9lc24ndCB0cnkgdG8gYnVpbGQgR29vZ2xlCi1UZXN0J3Mgb3duIHRlc3RzLiAgSW5zdGVhZCwg
aXQganVzdCBidWlsZHMgdGhlIEdvb2dsZSBUZXN0IGxpYnJhcnkgYW5kCi1hIHNhbXBsZSB0ZXN0
LiAgWW91IGNhbiB1c2UgaXQgYXMgYSBzdGFydGluZyBwb2ludCBmb3IgeW91ciBvd24gYnVpbGQK
LXNjcmlwdC4KLQotSWYgdGhlIGRlZmF1bHQgc2V0dGluZ3MgYXJlIGNvcnJlY3QgZm9yIHlvdXIg
ZW52aXJvbm1lbnQsIHRoZQotZm9sbG93aW5nIGNvbW1hbmRzIHNob3VsZCBzdWNjZWVkOgotCi0g
ICAgY2QgJHtHVEVTVF9ESVJ9L21ha2UKLSAgICBtYWtlCi0gICAgLi9zYW1wbGUxX3VuaXR0ZXN0
Ci0KLUlmIHlvdSBzZWUgZXJyb3JzLCB0cnkgdG8gdHdlYWsgdGhlIGNvbnRlbnRzIG9mIGBtYWtl
L01ha2VmaWxlYCB0byBtYWtlCi10aGVtIGdvIGF3YXkuICBUaGVyZSBhcmUgaW5zdHJ1Y3Rpb25z
IGluIGBtYWtlL01ha2VmaWxlYCBvbiBob3cgdG8gZG8KLWl0LgotCi0jIyMgVXNpbmcgQ01ha2Ug
IyMjCi0KLUdvb2dsZSBUZXN0IGNvbWVzIHdpdGggYSBDTWFrZSBidWlsZCBzY3JpcHQgKAotW0NN
YWtlTGlzdHMudHh0XShDTWFrZUxpc3RzLnR4dCkpIHRoYXQgY2FuIGJlIHVzZWQgb24gYSB3aWRl
IHJhbmdlIG9mIHBsYXRmb3JtcyAoIkMiIHN0YW5kcyBmb3IKLWNyb3NzLXBsYXRmb3JtLikuIElm
IHlvdSBkb24ndCBoYXZlIENNYWtlIGluc3RhbGxlZCBhbHJlYWR5LCB5b3UgY2FuCi1kb3dubG9h
ZCBpdCBmb3IgZnJlZSBmcm9tIDxodHRwOi8vd3d3LmNtYWtlLm9yZy8+LgotCi1DTWFrZSB3b3Jr
cyBieSBnZW5lcmF0aW5nIG5hdGl2ZSBtYWtlZmlsZXMgb3IgYnVpbGQgcHJvamVjdHMgdGhhdCBj
YW4KLWJlIHVzZWQgaW4gdGhlIGNvbXBpbGVyIGVudmlyb25tZW50IG9mIHlvdXIgY2hvaWNlLiAg
WW91IGNhbiBlaXRoZXIKLWJ1aWxkIEdvb2dsZSBUZXN0IGFzIGEgc3RhbmRhbG9uZSBwcm9qZWN0
IG9yIGl0IGNhbiBiZSBpbmNvcnBvcmF0ZWQKLWludG8gYW4gZXhpc3RpbmcgQ01ha2UgYnVpbGQg
Zm9yIGFub3RoZXIgcHJvamVjdC4KLQotIyMjIyBTdGFuZGFsb25lIENNYWtlIFByb2plY3QgIyMj
IwotCi1XaGVuIGJ1aWxkaW5nIEdvb2dsZSBUZXN0IGFzIGEgc3RhbmRhbG9uZSBwcm9qZWN0LCB0
aGUgdHlwaWNhbAotd29ya2Zsb3cgc3RhcnRzIHdpdGg6Ci0KLSAgICBta2RpciBteWJ1aWxkICAg
ICAgICMgQ3JlYXRlIGEgZGlyZWN0b3J5IHRvIGhvbGQgdGhlIGJ1aWxkIG91dHB1dC4KLSAgICBj
ZCBteWJ1aWxkCi0gICAgY21ha2UgJHtHVEVTVF9ESVJ9ICAjIEdlbmVyYXRlIG5hdGl2ZSBidWls
ZCBzY3JpcHRzLgotCi1JZiB5b3Ugd2FudCB0byBidWlsZCBHb29nbGUgVGVzdCdzIHNhbXBsZXMs
IHlvdSBzaG91bGQgcmVwbGFjZSB0aGUKLWxhc3QgY29tbWFuZCB3aXRoCi0KLSAgICBjbWFrZSAt
RGd0ZXN0X2J1aWxkX3NhbXBsZXM9T04gJHtHVEVTVF9ESVJ9Ci0KLUlmIHlvdSBhcmUgb24gYSBc
Km5peCBzeXN0ZW0sIHlvdSBzaG91bGQgbm93IHNlZSBhIE1ha2VmaWxlIGluIHRoZQotY3VycmVu
dCBkaXJlY3RvcnkuICBKdXN0IHR5cGUgJ21ha2UnIHRvIGJ1aWxkIGd0ZXN0LgotCi1JZiB5b3Ug
dXNlIFdpbmRvd3MgYW5kIGhhdmUgVmlzdWFsIFN0dWRpbyBpbnN0YWxsZWQsIGEgYGd0ZXN0LnNs
bmAgZmlsZQotYW5kIHNldmVyYWwgYC52Y3Byb2pgIGZpbGVzIHdpbGwgYmUgY3JlYXRlZC4gIFlv
dSBjYW4gdGhlbiBidWlsZCB0aGVtCi11c2luZyBWaXN1YWwgU3R1ZGlvLgotCi1PbiBNYWMgT1Mg
WCB3aXRoIFhjb2RlIGluc3RhbGxlZCwgYSBgLnhjb2RlcHJvamAgZmlsZSB3aWxsIGJlIGdlbmVy
YXRlZC4KLQotIyMjIyBJbmNvcnBvcmF0aW5nIEludG8gQW4gRXhpc3RpbmcgQ01ha2UgUHJvamVj
dCAjIyMjCi0KLUlmIHlvdSB3YW50IHRvIHVzZSBndGVzdCBpbiBhIHByb2plY3Qgd2hpY2ggYWxy
ZWFkeSB1c2VzIENNYWtlLCB0aGVuIGEKLW1vcmUgcm9idXN0IGFuZCBmbGV4aWJsZSBhcHByb2Fj
aCBpcyB0byBidWlsZCBndGVzdCBhcyBwYXJ0IG9mIHRoYXQKLXByb2plY3QgZGlyZWN0bHkuIFRo
aXMgaXMgZG9uZSBieSBtYWtpbmcgdGhlIEdvb2dsZVRlc3Qgc291cmNlIGNvZGUKLWF2YWlsYWJs
ZSB0byB0aGUgbWFpbiBidWlsZCBhbmQgYWRkaW5nIGl0IHVzaW5nIENNYWtlJ3MKLWBhZGRfc3Vi
ZGlyZWN0b3J5KClgIGNvbW1hbmQuIFRoaXMgaGFzIHRoZSBzaWduaWZpY2FudCBhZHZhbnRhZ2Ug
dGhhdAotdGhlIHNhbWUgY29tcGlsZXIgYW5kIGxpbmtlciBzZXR0aW5ncyBhcmUgdXNlZCBiZXR3
ZWVuIGd0ZXN0IGFuZCB0aGUKLXJlc3Qgb2YgeW91ciBwcm9qZWN0LCBzbyBpc3N1ZXMgYXNzb2Np
YXRlZCB3aXRoIHVzaW5nIGluY29tcGF0aWJsZQotbGlicmFyaWVzIChlZyBkZWJ1Zy9yZWxlYXNl
KSwgZXRjLiBhcmUgYXZvaWRlZC4gVGhpcyBpcyBwYXJ0aWN1bGFybHkKLXVzZWZ1bCBvbiBXaW5k
b3dzLiBNYWtpbmcgR29vZ2xlVGVzdCdzIHNvdXJjZSBjb2RlIGF2YWlsYWJsZSB0byB0aGUKLW1h
aW4gYnVpbGQgY2FuIGJlIGRvbmUgYSBmZXcgZGlmZmVyZW50IHdheXM6Ci0KLSogRG93bmxvYWQg
dGhlIEdvb2dsZVRlc3Qgc291cmNlIGNvZGUgbWFudWFsbHkgYW5kIHBsYWNlIGl0IGF0IGEKLSAg
a25vd24gbG9jYXRpb24uIFRoaXMgaXMgdGhlIGxlYXN0IGZsZXhpYmxlIGFwcHJvYWNoIGFuZCBj
YW4gbWFrZQotICBpdCBtb3JlIGRpZmZpY3VsdCB0byB1c2Ugd2l0aCBjb250aW51b3VzIGludGVn
cmF0aW9uIHN5c3RlbXMsIGV0Yy4KLSogRW1iZWQgdGhlIEdvb2dsZVRlc3Qgc291cmNlIGNvZGUg
YXMgYSBkaXJlY3QgY29weSBpbiB0aGUgbWFpbgotICBwcm9qZWN0J3Mgc291cmNlIHRyZWUuIFRo
aXMgaXMgb2Z0ZW4gdGhlIHNpbXBsZXN0IGFwcHJvYWNoLCBidXQgaXMKLSAgYWxzbyB0aGUgaGFy
ZGVzdCB0byBrZWVwIHVwIHRvIGRhdGUuIFNvbWUgb3JnYW5pemF0aW9ucyBtYXkgbm90Ci0gIHBl
cm1pdCB0aGlzIG1ldGhvZC4KLSogQWRkIEdvb2dsZVRlc3QgYXMgYSBnaXQgc3VibW9kdWxlIG9y
IGVxdWl2YWxlbnQuIFRoaXMgbWF5IG5vdAotICBhbHdheXMgYmUgcG9zc2libGUgb3IgYXBwcm9w
cmlhdGUuIEdpdCBzdWJtb2R1bGVzLCBmb3IgZXhhbXBsZSwKLSAgaGF2ZSB0aGVpciBvd24gc2V0
IG9mIGFkdmFudGFnZXMgYW5kIGRyYXdiYWNrcy4KLSogVXNlIENNYWtlIHRvIGRvd25sb2FkIEdv
b2dsZVRlc3QgYXMgcGFydCBvZiB0aGUgYnVpbGQncyBjb25maWd1cmUKLSAgc3RlcC4gVGhpcyBp
cyBqdXN0IGEgbGl0dGxlIG1vcmUgY29tcGxleCwgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUKLSAgbGlt
aXRhdGlvbnMgb2YgdGhlIG90aGVyIG1ldGhvZHMuCi0KLVRoZSBsYXN0IG9mIHRoZSBhYm92ZSBt
ZXRob2RzIGlzIGltcGxlbWVudGVkIHdpdGggYSBzbWFsbCBwaWVjZQotb2YgQ01ha2UgY29kZSBp
biBhIHNlcGFyYXRlIGZpbGUgKGUuZy4gYENNYWtlTGlzdHMudHh0LmluYCkgd2hpY2gKLWlzIGNv
cGllZCB0byB0aGUgYnVpbGQgYXJlYSBhbmQgdGhlbiBpbnZva2VkIGFzIGEgc3ViLWJ1aWxkCi1f
ZHVyaW5nIHRoZSBDTWFrZSBzdGFnZV8uIFRoYXQgZGlyZWN0b3J5IGlzIHRoZW4gcHVsbGVkIGlu
dG8gdGhlCi1tYWluIGJ1aWxkIHdpdGggYGFkZF9zdWJkaXJlY3RvcnkoKWAuIEZvciBleGFtcGxl
OgotCi1OZXcgZmlsZSBgQ01ha2VMaXN0cy50eHQuaW5gOgotCi0gICAgY21ha2VfbWluaW11bV9y
ZXF1aXJlZChWRVJTSU9OIDIuOC4yKQotIAotICAgIHByb2plY3QoZ29vZ2xldGVzdC1kb3dubG9h
ZCBOT05FKQotIAotICAgIGluY2x1ZGUoRXh0ZXJuYWxQcm9qZWN0KQotICAgIEV4dGVybmFsUHJv
amVjdF9BZGQoZ29vZ2xldGVzdAotICAgICAgR0lUX1JFUE9TSVRPUlkgICAgaHR0cHM6Ly9naXRo
dWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0LmdpdAotICAgICAgR0lUX1RBRyAgICAgICAgICAgbWFz
dGVyCi0gICAgICBTT1VSQ0VfRElSICAgICAgICAiJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0
ZXN0LXNyYyIKLSAgICAgIEJJTkFSWV9ESVIgICAgICAgICIke0NNQUtFX0JJTkFSWV9ESVJ9L2dv
b2dsZXRlc3QtYnVpbGQiCi0gICAgICBDT05GSUdVUkVfQ09NTUFORCAiIgotICAgICAgQlVJTERf
Q09NTUFORCAgICAgIiIKLSAgICAgIElOU1RBTExfQ09NTUFORCAgICIiCi0gICAgICBURVNUX0NP
TU1BTkQgICAgICAiIgotICAgICkKLSAgICAKLUV4aXN0aW5nIGJ1aWxkJ3MgYENNYWtlTGlzdHMu
dHh0YDoKLQotICAgICMgRG93bmxvYWQgYW5kIHVucGFjayBnb29nbGV0ZXN0IGF0IGNvbmZpZ3Vy
ZSB0aW1lCi0gICAgY29uZmlndXJlX2ZpbGUoQ01ha2VMaXN0cy50eHQuaW4gZ29vZ2xldGVzdC1k
b3dubG9hZC9DTWFrZUxpc3RzLnR4dCkKLSAgICBleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0NN
QUtFX0NPTU1BTkR9IC1HICIke0NNQUtFX0dFTkVSQVRPUn0iIC4KLSAgICAgIFJFU1VMVF9WQVJJ
QUJMRSByZXN1bHQKLSAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0v
Z29vZ2xldGVzdC1kb3dubG9hZCApCi0gICAgaWYocmVzdWx0KQotICAgICAgbWVzc2FnZShGQVRB
TF9FUlJPUiAiQ01ha2Ugc3RlcCBmb3IgZ29vZ2xldGVzdCBmYWlsZWQ6ICR7cmVzdWx0fSIpCi0g
ICAgZW5kaWYoKQotICAgIGV4ZWN1dGVfcHJvY2VzcyhDT01NQU5EICR7Q01BS0VfQ09NTUFORH0g
LS1idWlsZCAuCi0gICAgICBSRVNVTFRfVkFSSUFCTEUgcmVzdWx0Ci0gICAgICBXT1JLSU5HX0RJ
UkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3QtZG93bmxvYWQgKQotICAgIGlm
KHJlc3VsdCkKLSAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkJ1aWxkIHN0ZXAgZm9yIGdvb2ds
ZXRlc3QgZmFpbGVkOiAke3Jlc3VsdH0iKQotICAgIGVuZGlmKCkKLQotICAgICMgUHJldmVudCBv
dmVycmlkaW5nIHRoZSBwYXJlbnQgcHJvamVjdCdzIGNvbXBpbGVyL2xpbmtlcgotICAgICMgc2V0
dGluZ3Mgb24gV2luZG93cwotICAgIHNldChndGVzdF9mb3JjZV9zaGFyZWRfY3J0IE9OIENBQ0hF
IEJPT0wgIiIgRk9SQ0UpCi0gICAgCi0gICAgIyBBZGQgZ29vZ2xldGVzdCBkaXJlY3RseSB0byBv
dXIgYnVpbGQuIFRoaXMgZGVmaW5lcwotICAgICMgdGhlIGd0ZXN0IGFuZCBndGVzdF9tYWluIHRh
cmdldHMuCi0gICAgYWRkX3N1YmRpcmVjdG9yeSgke0NNQUtFX0JJTkFSWV9ESVJ9L2dvb2dsZXRl
c3Qtc3JjCi0gICAgICAgICAgICAgICAgICAgICAke0NNQUtFX0JJTkFSWV9ESVJ9L2dvb2dsZXRl
c3QtYnVpbGQKLSAgICAgICAgICAgICAgICAgICAgIEVYQ0xVREVfRlJPTV9BTEwpCi0KLSAgICAj
IFRoZSBndGVzdC9ndGVzdF9tYWluIHRhcmdldHMgY2FycnkgaGVhZGVyIHNlYXJjaCBwYXRoCi0g
ICAgIyBkZXBlbmRlbmNpZXMgYXV0b21hdGljYWxseSB3aGVuIHVzaW5nIENNYWtlIDIuOC4xMSBv
cgotICAgICMgbGF0ZXIuIE90aGVyd2lzZSB3ZSBoYXZlIHRvIGFkZCB0aGVtIGhlcmUgb3Vyc2Vs
dmVzLgotICAgIGlmIChDTUFLRV9WRVJTSU9OIFZFUlNJT05fTEVTUyAyLjguMTEpCi0gICAgICBp
bmNsdWRlX2RpcmVjdG9yaWVzKCIke2d0ZXN0X1NPVVJDRV9ESVJ9L2luY2x1ZGUiKQotICAgIGVu
ZGlmKCkKLQotICAgICMgTm93IHNpbXBseSBsaW5rIGFnYWluc3QgZ3Rlc3Qgb3IgZ3Rlc3RfbWFp
biBhcyBuZWVkZWQuIEVnCi0gICAgYWRkX2V4ZWN1dGFibGUoZXhhbXBsZSBleGFtcGxlLmNwcCkK
LSAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoZXhhbXBsZSBndGVzdF9tYWluKQotICAgIGFkZF90
ZXN0KE5BTUUgZXhhbXBsZV90ZXN0IENPTU1BTkQgZXhhbXBsZSkKLQotTm90ZSB0aGF0IHRoaXMg
YXBwcm9hY2ggcmVxdWlyZXMgQ01ha2UgMi44LjIgb3IgbGF0ZXIgZHVlIHRvCi1pdHMgdXNlIG9m
IHRoZSBgRXh0ZXJuYWxQcm9qZWN0X0FkZCgpYCBjb21tYW5kLiBUaGUgYWJvdmUKLXRlY2huaXF1
ZSBpcyBkaXNjdXNzZWQgaW4gbW9yZSBkZXRhaWwgaW4gCi1bdGhpcyBzZXBhcmF0ZSBhcnRpY2xl
XShodHRwOi8vY3Jhc2NpdC5jb20vMjAxNS8wNy8yNS9jbWFrZS1ndGVzdC8pCi13aGljaCBhbHNv
IGNvbnRhaW5zIGEgbGluayB0byBhIGZ1bGx5IGdlbmVyYWxpemVkIGltcGxlbWVudGF0aW9uCi1v
ZiB0aGUgdGVjaG5pcXVlLgotCi0jIyMjIyBWaXN1YWwgU3R1ZGlvIER5bmFtaWMgdnMgU3RhdGlj
IFJ1bnRpbWVzICMjIyMjCi0KLUJ5IGRlZmF1bHQsIG5ldyBWaXN1YWwgU3R1ZGlvIHByb2plY3Rz
IGxpbmsgdGhlIEMgcnVudGltZXMgZHluYW1pY2FsbHkKLWJ1dCBHb29nbGUgVGVzdCBsaW5rcyB0
aGVtIHN0YXRpY2FsbHkuCi1UaGlzIHdpbGwgZ2VuZXJhdGUgYW4gZXJyb3IgdGhhdCBsb29rcyBz
b21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nOgotICAgIGd0ZXN0LmxpYihndGVzdC1hbGwub2Jq
KSA6IGVycm9yIExOSzIwMzg6IG1pc21hdGNoIGRldGVjdGVkIGZvciAnUnVudGltZUxpYnJhcnkn
OiB2YWx1ZSAnTVRkX1N0YXRpY0RlYnVnJyBkb2Vzbid0IG1hdGNoIHZhbHVlICdNRGRfRHluYW1p
Y0RlYnVnJyBpbiBtYWluLm9iagotCi1Hb29nbGUgVGVzdCBhbHJlYWR5IGhhcyBhIENNYWtlIG9w
dGlvbiBmb3IgdGhpczogYGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnRgCi0KLUVuYWJsaW5nIHRoaXMg
b3B0aW9uIHdpbGwgbWFrZSBndGVzdCBsaW5rIHRoZSBydW50aW1lcyBkeW5hbWljYWxseSB0b28s
Ci1hbmQgbWF0Y2ggdGhlIHByb2plY3QgaW4gd2hpY2ggaXQgaXMgaW5jbHVkZWQuCi0KLSMjIyBM
ZWdhY3kgQnVpbGQgU2NyaXB0cyAjIyMKLQotQmVmb3JlIHNldHRsaW5nIG9uIENNYWtlLCB3ZSBo
YXZlIGJlZW4gcHJvdmlkaW5nIGhhbmQtbWFpbnRhaW5lZCBidWlsZAotcHJvamVjdHMvc2NyaXB0
cyBmb3IgVmlzdWFsIFN0dWRpbywgWGNvZGUsIGFuZCBBdXRvdG9vbHMuICBXaGlsZSB3ZQotY29u
dGludWUgdG8gcHJvdmlkZSB0aGVtIGZvciBjb252ZW5pZW5jZSwgdGhleSBhcmUgbm90IGFjdGl2
ZWx5Ci1tYWludGFpbmVkIGFueSBtb3JlLiAgV2UgaGlnaGx5IHJlY29tbWVuZCB0aGF0IHlvdSBm
b2xsb3cgdGhlCi1pbnN0cnVjdGlvbnMgaW4gdGhlIGFib3ZlIHNlY3Rpb25zIHRvIGludGVncmF0
ZSBHb29nbGUgVGVzdAotd2l0aCB5b3VyIGV4aXN0aW5nIGJ1aWxkIHN5c3RlbS4KLQotSWYgeW91
IHN0aWxsIG5lZWQgdG8gdXNlIHRoZSBsZWdhY3kgYnVpbGQgc2NyaXB0cywgaGVyZSdzIGhvdzoK
LQotVGhlIG1zdmNcIGZvbGRlciBjb250YWlucyB0d28gc29sdXRpb25zIHdpdGggVmlzdWFsIEMr
KyBwcm9qZWN0cy4KLU9wZW4gdGhlIGBndGVzdC5zbG5gIG9yIGBndGVzdC1tZC5zbG5gIGZpbGUg
dXNpbmcgVmlzdWFsIFN0dWRpbywgYW5kIHlvdQotYXJlIHJlYWR5IHRvIGJ1aWxkIEdvb2dsZSBU
ZXN0IHRoZSBzYW1lIHdheSB5b3UgYnVpbGQgYW55IFZpc3VhbAotU3R1ZGlvIHByb2plY3QuICBG
aWxlcyB0aGF0IGhhdmUgbmFtZXMgZW5kaW5nIHdpdGggLW1kIHVzZSBETEwKLXZlcnNpb25zIG9m
IE1pY3Jvc29mdCBydW50aW1lIGxpYnJhcmllcyAodGhlIC9NRCBvciB0aGUgL01EZCBjb21waWxl
cgotb3B0aW9uKS4gIEZpbGVzIHdpdGhvdXQgdGhhdCBzdWZmaXggdXNlIHN0YXRpYyB2ZXJzaW9u
cyBvZiB0aGUgcnVudGltZQotbGlicmFyaWVzICh0aGUgL01UIG9yIHRoZSAvTVRkIG9wdGlvbiku
ICBQbGVhc2Ugbm90ZSB0aGF0IG9uZSBtdXN0IHVzZQotdGhlIHNhbWUgb3B0aW9uIHRvIGNvbXBp
bGUgYm90aCBndGVzdCBhbmQgdGhlIHRlc3QgY29kZS4gIElmIHlvdSB1c2UKLVZpc3VhbCBTdHVk
aW8gMjAwNSBvciBhYm92ZSwgd2UgcmVjb21tZW5kIHRoZSAtbWQgdmVyc2lvbiBhcyAvTUQgaXMK
LXRoZSBkZWZhdWx0IGZvciBuZXcgcHJvamVjdHMgaW4gdGhlc2UgdmVyc2lvbnMgb2YgVmlzdWFs
IFN0dWRpby4KLQotT24gTWFjIE9TIFgsIG9wZW4gdGhlIGBndGVzdC54Y29kZXByb2pgIGluIHRo
ZSBgeGNvZGUvYCBmb2xkZXIgdXNpbmcKLVhjb2RlLiAgQnVpbGQgdGhlICJndGVzdCIgdGFyZ2V0
LiAgVGhlIHVuaXZlcnNhbCBiaW5hcnkgZnJhbWV3b3JrIHdpbGwKLWVuZCB1cCBpbiB5b3VyIHNl
bGVjdGVkIGJ1aWxkIGRpcmVjdG9yeSAoc2VsZWN0ZWQgaW4gdGhlIFhjb2RlCi0iUHJlZmVyZW5j
ZXMuLi4iIC0+ICJCdWlsZGluZyIgcGFuZSBhbmQgZGVmYXVsdHMgdG8geGNvZGUvYnVpbGQpLgot
QWx0ZXJuYXRpdmVseSwgYXQgdGhlIGNvbW1hbmQgbGluZSwgZW50ZXI6Ci0KLSAgICB4Y29kZWJ1
aWxkCi0KLVRoaXMgd2lsbCBidWlsZCB0aGUgIlJlbGVhc2UiIGNvbmZpZ3VyYXRpb24gb2YgZ3Rl
c3QuZnJhbWV3b3JrIGluIHlvdXIKLWRlZmF1bHQgYnVpbGQgbG9jYXRpb24uICBTZWUgdGhlICJ4
Y29kZWJ1aWxkIiBtYW4gcGFnZSBmb3IgbW9yZQotaW5mb3JtYXRpb24gYWJvdXQgYnVpbGRpbmcg
ZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zIGFuZCBidWlsZGluZyBpbgotZGlmZmVyZW50IGxvY2F0
aW9ucy4KLQotSWYgeW91IHdpc2ggdG8gdXNlIHRoZSBHb29nbGUgVGVzdCBYY29kZSBwcm9qZWN0
IHdpdGggWGNvZGUgNC54IGFuZAotYWJvdmUsIHlvdSBuZWVkIHRvIGVpdGhlcjoKLQotICogdXBk
YXRlIHRoZSBTREsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHhjb2RlL0NvbmZpZy9HZW5lcmFs
Lnhjb25maWcuCi0gICBDb21tZW50IG9wdGlvbnMgYFNES1JPT1RgLCBgTUFDT1NfREVQTE9ZTUVO
VF9UQVJHRVRgLCBhbmQgYEdDQ19WRVJTSU9OYC4gSWYKLSAgIHlvdSBjaG9vc2UgdGhpcyByb3V0
ZSB5b3UgbG9zZSB0aGUgYWJpbGl0eSB0byB0YXJnZXQgZWFybGllciB2ZXJzaW9ucwotICAgb2Yg
TWFjT1MgWC4KLSAqIEluc3RhbGwgYW4gU0RLIGZvciBhbiBlYXJsaWVyIHZlcnNpb24uIFRoaXMg
ZG9lc24ndCBhcHBlYXIgdG8gYmUKLSAgIHN1cHBvcnRlZCBieSBBcHBsZSwgYnV0IGhhcyBiZWVu
IHJlcG9ydGVkIHRvIHdvcmsKLSAgIChodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25z
LzUzNzg1MTgpLgotCi0jIyMgVHdlYWtpbmcgR29vZ2xlIFRlc3QgIyMjCi0KLUdvb2dsZSBUZXN0
IGNhbiBiZSB1c2VkIGluIGRpdmVyc2UgZW52aXJvbm1lbnRzLiAgVGhlIGRlZmF1bHQKLWNvbmZp
Z3VyYXRpb24gbWF5IG5vdCB3b3JrIChvciBtYXkgbm90IHdvcmsgd2VsbCkgb3V0IG9mIHRoZSBi
b3ggaW4KLXNvbWUgZW52aXJvbm1lbnRzLiAgSG93ZXZlciwgeW91IGNhbiBlYXNpbHkgdHdlYWsg
R29vZ2xlIFRlc3QgYnkKLWRlZmluaW5nIGNvbnRyb2wgbWFjcm9zIG9uIHRoZSBjb21waWxlciBj
b21tYW5kIGxpbmUuICBHZW5lcmFsbHksCi10aGVzZSBtYWNyb3MgYXJlIG5hbWVkIGxpa2UgYEdU
RVNUX1hZWmAgYW5kIHlvdSBkZWZpbmUgdGhlbSB0byBlaXRoZXIgMQotb3IgMCB0byBlbmFibGUg
b3IgZGlzYWJsZSBhIGNlcnRhaW4gZmVhdHVyZS4KLQotV2UgbGlzdCB0aGUgbW9zdCBmcmVxdWVu
dGx5IHVzZWQgbWFjcm9zIGJlbG93LiAgRm9yIGEgY29tcGxldGUgbGlzdCwKLXNlZSBmaWxlIFtp
bmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaF0oaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9ndGVzdC1wb3J0LmgpLgotCi0jIyMgQ2hvb3NpbmcgYSBUUjEgVHVwbGUgTGlicmFyeSAjIyMK
LQotU29tZSBHb29nbGUgVGVzdCBmZWF0dXJlcyByZXF1aXJlIHRoZSBDKysgVGVjaG5pY2FsIFJl
cG9ydCAxIChUUjEpCi10dXBsZSBsaWJyYXJ5LCB3aGljaCBpcyBub3QgeWV0IGF2YWlsYWJsZSB3
aXRoIGFsbCBjb21waWxlcnMuICBUaGUKLWdvb2QgbmV3cyBpcyB0aGF0IEdvb2dsZSBUZXN0IGlt
cGxlbWVudHMgYSBzdWJzZXQgb2YgVFIxIHR1cGxlIHRoYXQncwotZW5vdWdoIGZvciBpdHMgb3du
IG5lZWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdXNlIHRoaXMgd2hlbiB0aGUKLWNvbXBpbGVy
IGRvZXNuJ3QgcHJvdmlkZSBUUjEgdHVwbGUuCi0KLVVzdWFsbHkgeW91IGRvbid0IG5lZWQgdG8g
Y2FyZSBhYm91dCB3aGljaCB0dXBsZSBsaWJyYXJ5IEdvb2dsZSBUZXN0Ci11c2VzLiAgSG93ZXZl
ciwgaWYgeW91ciBwcm9qZWN0IGFscmVhZHkgdXNlcyBUUjEgdHVwbGUsIHlvdSBuZWVkIHRvCi10
ZWxsIEdvb2dsZSBUZXN0IHRvIHVzZSB0aGUgc2FtZSBUUjEgdHVwbGUgbGlicmFyeSB0aGUgcmVz
dCBvZiB5b3VyCi1wcm9qZWN0IHVzZXMsIG9yIHRoZSB0d28gdHVwbGUgaW1wbGVtZW50YXRpb25z
IHdpbGwgY2xhc2guICBUbyBkbwotdGhhdCwgYWRkCi0KLSAgICAtREdURVNUX1VTRV9PV05fVFIx
X1RVUExFPTAKLQotdG8gdGhlIGNvbXBpbGVyIGZsYWdzIHdoaWxlIGNvbXBpbGluZyBHb29nbGUg
VGVzdCBhbmQgeW91ciB0ZXN0cy4gIElmCi15b3Ugd2FudCB0byBmb3JjZSBHb29nbGUgVGVzdCB0
byB1c2UgaXRzIG93biB0dXBsZSBsaWJyYXJ5LCBqdXN0IGFkZAotCi0gICAgLURHVEVTVF9VU0Vf
T1dOX1RSMV9UVVBMRT0xCi0KLXRvIHRoZSBjb21waWxlciBmbGFncyBpbnN0ZWFkLgotCi1JZiB5
b3UgZG9uJ3Qgd2FudCBHb29nbGUgVGVzdCB0byB1c2UgdHVwbGUgYXQgYWxsLCBhZGQKLQotICAg
IC1ER1RFU1RfSEFTX1RSMV9UVVBMRT0wCi0KLWFuZCBhbGwgZmVhdHVyZXMgdXNpbmcgdHVwbGUg
d2lsbCBiZSBkaXNhYmxlZC4KLQotIyMjIE11bHRpLXRocmVhZGVkIFRlc3RzICMjIwotCi1Hb29n
bGUgVGVzdCBpcyB0aHJlYWQtc2FmZSB3aGVyZSB0aGUgcHRocmVhZCBsaWJyYXJ5IGlzIGF2YWls
YWJsZS4KLUFmdGVyIGAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCJgLCB5b3UgY2FuIGNoZWNrIHRo
ZSBgR1RFU1RfSVNfVEhSRUFEU0FGRWAKLW1hY3JvIHRvIHNlZSB3aGV0aGVyIHRoaXMgaXMgdGhl
IGNhc2UgKHllcyBpZiB0aGUgbWFjcm8gaXMgYCNkZWZpbmVkYCB0bwotMSwgbm8gaWYgaXQncyB1
bmRlZmluZWQuKS4KLQotSWYgR29vZ2xlIFRlc3QgZG9lc24ndCBjb3JyZWN0bHkgZGV0ZWN0IHdo
ZXRoZXIgcHRocmVhZCBpcyBhdmFpbGFibGUKLWluIHlvdXIgZW52aXJvbm1lbnQsIHlvdSBjYW4g
Zm9yY2UgaXQgd2l0aAotCi0gICAgLURHVEVTVF9IQVNfUFRIUkVBRD0xCi0KLW9yCi0KLSAgICAt
REdURVNUX0hBU19QVEhSRUFEPTAKLQotV2hlbiBHb29nbGUgVGVzdCB1c2VzIHB0aHJlYWQsIHlv
dSBtYXkgbmVlZCB0byBhZGQgZmxhZ3MgdG8geW91cgotY29tcGlsZXIgYW5kL29yIGxpbmtlciB0
byBzZWxlY3QgdGhlIHB0aHJlYWQgbGlicmFyeSwgb3IgeW91J2xsIGdldAotbGluayBlcnJvcnMu
ICBJZiB5b3UgdXNlIHRoZSBDTWFrZSBzY3JpcHQgb3IgdGhlIGRlcHJlY2F0ZWQgQXV0b3Rvb2xz
Ci1zY3JpcHQsIHRoaXMgaXMgdGFrZW4gY2FyZSBvZiBmb3IgeW91LiAgSWYgeW91IHVzZSB5b3Vy
IG93biBidWlsZAotc2NyaXB0LCB5b3UnbGwgbmVlZCB0byByZWFkIHlvdXIgY29tcGlsZXIgYW5k
IGxpbmtlcidzIG1hbnVhbCB0bwotZmlndXJlIG91dCB3aGF0IGZsYWdzIHRvIGFkZC4KLQotIyMj
IEFzIGEgU2hhcmVkIExpYnJhcnkgKERMTCkgIyMjCi0KLUdvb2dsZSBUZXN0IGlzIGNvbXBhY3Qs
IHNvIG1vc3QgdXNlcnMgY2FuIGJ1aWxkIGFuZCBsaW5rIGl0IGFzIGEKLXN0YXRpYyBsaWJyYXJ5
IGZvciB0aGUgc2ltcGxpY2l0eS4gIFlvdSBjYW4gY2hvb3NlIHRvIHVzZSBHb29nbGUgVGVzdAot
YXMgYSBzaGFyZWQgbGlicmFyeSAoa25vd24gYXMgYSBETEwgb24gV2luZG93cykgaWYgeW91IHBy
ZWZlci4KLQotVG8gY29tcGlsZSAqZ3Rlc3QqIGFzIGEgc2hhcmVkIGxpYnJhcnksIGFkZAotCi0g
ICAgLURHVEVTVF9DUkVBVEVfU0hBUkVEX0xJQlJBUlk9MQotCi10byB0aGUgY29tcGlsZXIgZmxh
Z3MuICBZb3UnbGwgYWxzbyBuZWVkIHRvIHRlbGwgdGhlIGxpbmtlciB0byBwcm9kdWNlCi1hIHNo
YXJlZCBsaWJyYXJ5IGluc3RlYWQgLSBjb25zdWx0IHlvdXIgbGlua2VyJ3MgbWFudWFsIGZvciBo
b3cgdG8gZG8KLWl0LgotCi1UbyBjb21waWxlIHlvdXIgKnRlc3RzKiB0aGF0IHVzZSB0aGUgZ3Rl
c3Qgc2hhcmVkIGxpYnJhcnksIGFkZAotCi0gICAgLURHVEVTVF9MSU5LRURfQVNfU0hBUkVEX0xJ
QlJBUlk9MQotCi10byB0aGUgY29tcGlsZXIgZmxhZ3MuCi0KLU5vdGU6IHdoaWxlIHRoZSBhYm92
ZSBzdGVwcyBhcmVuJ3QgdGVjaG5pY2FsbHkgbmVjZXNzYXJ5IHRvZGF5IHdoZW4KLXVzaW5nIHNv
bWUgY29tcGlsZXJzIChlLmcuIEdDQyksIHRoZXkgbWF5IGJlY29tZSBuZWNlc3NhcnkgaW4gdGhl
Ci1mdXR1cmUsIGlmIHdlIGRlY2lkZSB0byBpbXByb3ZlIHRoZSBzcGVlZCBvZiBsb2FkaW5nIHRo
ZSBsaWJyYXJ5IChzZWUKLTxodHRwOi8vZ2NjLmdudS5vcmcvd2lraS9WaXNpYmlsaXR5PiBmb3Ig
ZGV0YWlscykuICBUaGVyZWZvcmUgeW91IGFyZQotcmVjb21tZW5kZWQgdG8gYWx3YXlzIGFkZCB0
aGUgYWJvdmUgZmxhZ3Mgd2hlbiB1c2luZyBHb29nbGUgVGVzdCBhcyBhCi1zaGFyZWQgbGlicmFy
eS4gIE90aGVyd2lzZSBhIGZ1dHVyZSByZWxlYXNlIG9mIEdvb2dsZSBUZXN0IG1heSBicmVhawot
eW91ciBidWlsZCBzY3JpcHQuCi0KLSMjIyBBdm9pZGluZyBNYWNybyBOYW1lIENsYXNoZXMgIyMj
Ci0KLUluIEMrKywgbWFjcm9zIGRvbid0IG9iZXkgbmFtZXNwYWNlcy4gIFRoZXJlZm9yZSB0d28g
bGlicmFyaWVzIHRoYXQKLWJvdGggZGVmaW5lIGEgbWFjcm8gb2YgdGhlIHNhbWUgbmFtZSB3aWxs
IGNsYXNoIGlmIHlvdSBgI2luY2x1ZGVgIGJvdGgKLWRlZmluaXRpb25zLiAgSW4gY2FzZSBhIEdv
b2dsZSBUZXN0IG1hY3JvIGNsYXNoZXMgd2l0aCBhbm90aGVyCi1saWJyYXJ5LCB5b3UgY2FuIGZv
cmNlIEdvb2dsZSBUZXN0IHRvIHJlbmFtZSBpdHMgbWFjcm8gdG8gYXZvaWQgdGhlCi1jb25mbGlj
dC4KLQotU3BlY2lmaWNhbGx5LCBpZiBib3RoIEdvb2dsZSBUZXN0IGFuZCBzb21lIG90aGVyIGNv
ZGUgZGVmaW5lIG1hY3JvCi1GT08sIHlvdSBjYW4gYWRkCi0KLSAgICAtREdURVNUX0RPTlRfREVG
SU5FX0ZPTz0xCi0KLXRvIHRoZSBjb21waWxlciBmbGFncyB0byB0ZWxsIEdvb2dsZSBUZXN0IHRv
IGNoYW5nZSB0aGUgbWFjcm8ncyBuYW1lCi1mcm9tIGBGT09gIHRvIGBHVEVTVF9GT09gLiAgQ3Vy
cmVudGx5IGBGT09gIGNhbiBiZSBgRkFJTGAsIGBTVUNDRUVEYCwKLW9yIGBURVNUYC4gIEZvciBl
eGFtcGxlLCB3aXRoIGAtREdURVNUX0RPTlRfREVGSU5FX1RFU1Q9MWAsIHlvdSdsbAotbmVlZCB0
byB3cml0ZQotCi0gICAgR1RFU1RfVEVTVChTb21lVGVzdCwgRG9lc1RoaXMpIHsgLi4uIH0KLQot
aW5zdGVhZCBvZgotCi0gICAgVEVTVChTb21lVGVzdCwgRG9lc1RoaXMpIHsgLi4uIH0KLQotaW4g
b3JkZXIgdG8gZGVmaW5lIGEgdGVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29n
bGV0ZXN0L2J1aWxkLWF1eC8ua2VlcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2J1aWxk
LWF1eC8ua2VlcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5ZGUyOWJiMmQxZDY0
MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvY21ha2Uv
Z3Rlc3QucGMuaW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jbWFrZS9ndGVzdC5wYy5p
bgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc5NjdhZDU2ZmYyYzMyZWQ0YmEwNjcw
M2FlYTUyNWRjYWQyY2U3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jbWFrZS9ndGVzdC5wYy5pbgorKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotbGliZGlyPUBDTUFLRV9JTlNUQUxMX0ZVTExfTElC
RElSQAotaW5jbHVkZWRpcj1AQ01BS0VfSU5TVEFMTF9GVUxMX0lOQ0xVREVESVJACi0KLU5hbWU6
IGd0ZXN0Ci1EZXNjcmlwdGlvbjogR29vZ2xlVGVzdCAod2l0aG91dCBtYWluKCkgZnVuY3Rpb24p
Ci1WZXJzaW9uOiBAUFJPSkVDVF9WRVJTSU9OQAotVVJMOiBodHRwczovL2dpdGh1Yi5jb20vZ29v
Z2xlL2dvb2dsZXRlc3QKLUxpYnM6IC1MJHtsaWJkaXJ9IC1sZ3Rlc3QgQENNQUtFX1RIUkVBRF9M
SUJTX0lOSVRACi1DZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfSBAR1RFU1RfSEFTX1BUSFJFQURfTUFD
Uk9AIEBDTUFLRV9USFJFQURfTElCU19JTklUQApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvY21ha2UvZ3Rlc3RfbWFpbi5wYy5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29n
bGV0ZXN0L2NtYWtlL2d0ZXN0X21haW4ucGMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZlMjVkOWM3M2M2ODNiNjQxN2I5OWJiNzAzYzEzYWUxNmJhOGE5NTIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvY21ha2UvZ3Rlc3RfbWFpbi5wYy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAg
QEAKLWxpYmRpcj1AQ01BS0VfSU5TVEFMTF9GVUxMX0xJQkRJUkAKLWluY2x1ZGVkaXI9QENNQUtF
X0lOU1RBTExfRlVMTF9JTkNMVURFRElSQAotCi1OYW1lOiBndGVzdF9tYWluCi1EZXNjcmlwdGlv
bjogR29vZ2xlVGVzdCAod2l0aCBtYWluKCkgZnVuY3Rpb24pCi1WZXJzaW9uOiBAUFJPSkVDVF9W
RVJTSU9OQAotVVJMOiBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QKLVJlcXVp
cmVzOiBndGVzdAotTGliczogLUwke2xpYmRpcn0gLWxndGVzdF9tYWluIEBDTUFLRV9USFJFQURf
TElCU19JTklUQAotQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0gQEdURVNUX0hBU19QVEhSRUFEX01B
Q1JPQCBAQ01BS0VfVEhSRUFEX0xJQlNfSU5JVEAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9nb29nbGV0ZXN0L2NtYWtlL2ludGVybmFsX3V0aWxzLmNtYWtlIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM1NGJjOTRmZTI5OGZlMTZkNDUxMzMxNWYxOWVkODJiZWFjYWE2ZmYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3Bh
cnR5L2dvb2dsZXRlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21ha2UKKysrIC9kZXYvbnVsbApA
QCAtMSwyNzMgKzAsMCBAQAotIyBEZWZpbmVzIGZ1bmN0aW9ucyBhbmQgbWFjcm9zIHVzZWZ1bCBm
b3IgYnVpbGRpbmcgR29vZ2xlIFRlc3QgYW5kCi0jIEdvb2dsZSBNb2NrLgotIwotIyBOb3RlOgot
IwotIyAtIFRoaXMgZmlsZSB3aWxsIGJlIHJ1biB0d2ljZSB3aGVuIGJ1aWxkaW5nIEdvb2dsZSBN
b2NrIChvbmNlIHZpYQotIyAgIEdvb2dsZSBUZXN0J3MgQ01ha2VMaXN0cy50eHQsIGFuZCBvbmNl
IHZpYSBHb29nbGUgTW9jaydzKS4KLSMgICBUaGVyZWZvcmUgaXQgc2hvdWxkbid0IGhhdmUgYW55
IHNpZGUgZWZmZWN0cyBvdGhlciB0aGFuIGRlZmluaW5nCi0jICAgdGhlIGZ1bmN0aW9ucyBhbmQg
bWFjcm9zLgotIwotIyAtIFRoZSBmdW5jdGlvbnMvbWFjcm9zIGRlZmluZWQgaW4gdGhpcyBmaWxl
IG1heSBkZXBlbmQgb24gR29vZ2xlCi0jICAgVGVzdCBhbmQgR29vZ2xlIE1vY2sncyBvcHRpb24o
KSBkZWZpbml0aW9ucywgYW5kIHRodXMgbXVzdCBiZQotIyAgIGNhbGxlZCAqYWZ0ZXIqIHRoZSBv
cHRpb25zIGhhdmUgYmVlbiBkZWZpbmVkLgotCi0jIFR3ZWFrcyBDTWFrZSdzIGRlZmF1bHQgY29t
cGlsZXIvbGlua2VyIHNldHRpbmdzIHRvIHN1aXQgR29vZ2xlIFRlc3QncyBuZWVkcy4KLSMKLSMg
VGhpcyBtdXN0IGJlIGEgbWFjcm8oKSwgYXMgaW5zaWRlIGEgZnVuY3Rpb24gc3RyaW5nKCkgY2Fu
IG9ubHkKLSMgdXBkYXRlIHZhcmlhYmxlcyBpbiB0aGUgZnVuY3Rpb24gc2NvcGUuCi1tYWNybyhm
aXhfZGVmYXVsdF9jb21waWxlcl9zZXR0aW5nc18pCi0gIGlmIChNU1ZDKQotICAgICMgRm9yIE1T
VkMsIENNYWtlIHNldHMgY2VydGFpbiBmbGFncyB0byBkZWZhdWx0cyB3ZSB3YW50IHRvIG92ZXJy
aWRlLgotICAgICMgVGhpcyByZXBsYWNlbWVudCBjb2RlIGlzIHRha2VuIGZyb20gc2FtcGxlIGlu
IHRoZSBDTWFrZSBXaWtpIGF0Ci0gICAgIyBodHRwOi8vd3d3LmNtYWtlLm9yZy9XaWtpL0NNYWtl
X0ZBUSNEeW5hbWljX1JlcGxhY2UuCi0gICAgZm9yZWFjaCAoZmxhZ192YXIKLSAgICAgICAgICAg
ICBDTUFLRV9DWFhfRkxBR1MgQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHIENNQUtFX0NYWF9GTEFHU19S
RUxFQVNFCi0gICAgICAgICAgICAgQ01BS0VfQ1hYX0ZMQUdTX01JTlNJWkVSRUwgQ01BS0VfQ1hY
X0ZMQUdTX1JFTFdJVEhERUJJTkZPKQotICAgICAgaWYgKE5PVCBCVUlMRF9TSEFSRURfTElCUyBB
TkQgTk9UIGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnQpCi0gICAgICAgICMgV2hlbiBHb29nbGUgVGVz
dCBpcyBidWlsdCBhcyBhIHNoYXJlZCBsaWJyYXJ5LCBpdCBzaG91bGQgYWxzbyB1c2UKLSAgICAg
ICAgIyBzaGFyZWQgcnVudGltZSBsaWJyYXJpZXMuICBPdGhlcndpc2UsIGl0IG1heSBlbmQgdXAg
d2l0aCBtdWx0aXBsZQotICAgICAgICAjIGNvcGllcyBvZiBydW50aW1lIGxpYnJhcnkgZGF0YSBp
biBkaWZmZXJlbnQgbW9kdWxlcywgcmVzdWx0aW5nIGluCi0gICAgICAgICMgaGFyZC10by1maW5k
IGNyYXNoZXMuIFdoZW4gaXQgaXMgYnVpbHQgYXMgYSBzdGF0aWMgbGlicmFyeSwgaXQgaXMKLSAg
ICAgICAgIyBwcmVmZXJhYmxlIHRvIHVzZSBDUlQgYXMgc3RhdGljIGxpYnJhcmllcywgYXMgd2Ug
ZG9uJ3QgaGF2ZSB0byByZWx5Ci0gICAgICAgICMgb24gQ1JUIERMTHMgYmVpbmcgYXZhaWxhYmxl
LiBDTWFrZSBhbHdheXMgZGVmYXVsdHMgdG8gdXNpbmcgc2hhcmVkCi0gICAgICAgICMgQ1JUIGxp
YnJhcmllcywgc28gd2Ugb3ZlcnJpZGUgdGhhdCBkZWZhdWx0IGhlcmUuCi0gICAgICAgIHN0cmlu
ZyhSRVBMQUNFICIvTUQiICItTVQiICR7ZmxhZ192YXJ9ICIkeyR7ZmxhZ192YXJ9fSIpCi0gICAg
ICBlbmRpZigpCi0KLSAgICAgICMgV2UgcHJlZmVyIG1vcmUgc3RyaWN0IHdhcm5pbmcgY2hlY2tp
bmcgZm9yIGJ1aWxkaW5nIEdvb2dsZSBUZXN0LgotICAgICAgIyBSZXBsYWNlcyAvVzMgd2l0aCAv
VzQgaW4gZGVmYXVsdHMuCi0gICAgICBzdHJpbmcoUkVQTEFDRSAiL1czIiAiL1c0IiAke2ZsYWdf
dmFyfSAiJHske2ZsYWdfdmFyfX0iKQotICAgIGVuZGZvcmVhY2goKQotICBlbmRpZigpCi1lbmRt
YWNybygpCi0KLSMgRGVmaW5lcyB0aGUgY29tcGlsZXIvbGlua2VyIGZsYWdzIHVzZWQgdG8gYnVp
bGQgR29vZ2xlIFRlc3QgYW5kCi0jIEdvb2dsZSBNb2NrLiAgWW91IGNhbiB0d2VhayB0aGVzZSBk
ZWZpbml0aW9ucyB0byBzdWl0IHlvdXIgbmVlZC4gIEEKLSMgdmFyaWFibGUncyB2YWx1ZSBpcyBl
bXB0eSBiZWZvcmUgaXQncyBleHBsaWNpdGx5IGFzc2lnbmVkIHRvLgotbWFjcm8oY29uZmlnX2Nv
bXBpbGVyX2FuZF9saW5rZXIpCi0gICMgTm90ZTogcHRocmVhZHMgb24gTWluR1cgaXMgbm90IHN1
cHBvcnRlZCwgZXZlbiBpZiBhdmFpbGFibGUKLSAgIyBpbnN0ZWFkLCB3ZSB1c2Ugd2luZG93cyB0
aHJlYWRpbmcgcHJpbWl0aXZlcwotICB1bnNldChHVEVTVF9IQVNfUFRIUkVBRCkKLSAgaWYgKE5P
VCBndGVzdF9kaXNhYmxlX3B0aHJlYWRzIEFORCBOT1QgTUlOR1cpCi0gICAgIyBEZWZpbmVzIENN
QUtFX1VTRV9QVEhSRUFEU19JTklUIGFuZCBDTUFLRV9USFJFQURfTElCU19JTklULgotICAgIHNl
dChUSFJFQURTX1BSRUZFUl9QVEhSRUFEX0ZMQUcgT04pCi0gICAgZmluZF9wYWNrYWdlKFRocmVh
ZHMpCi0gICAgaWYgKENNQUtFX1VTRV9QVEhSRUFEU19JTklUKQotICAgICAgc2V0KEdURVNUX0hB
U19QVEhSRUFEIE9OKQotICAgIGVuZGlmKCkKLSAgZW5kaWYoKQotCi0gIGZpeF9kZWZhdWx0X2Nv
bXBpbGVyX3NldHRpbmdzXygpCi0gIGlmIChNU1ZDKQotICAgICMgTmV3bGluZXMgaW5zaWRlIGZs
YWdzIHZhcmlhYmxlcyBicmVhayBDTWFrZSdzIE5NYWtlIGdlbmVyYXRvci4KLSAgICAjIFRPRE8o
dmxhZGxAZ29vZ2xlLmNvbSk6IEFkZCAtUlRDcyBhbmQgLVJUQ3UgdG8gZGVidWcgYnVpbGRzLgot
ICAgIHNldChjeHhfYmFzZV9mbGFncyAiLUdTIC1XNCAtV1ggLXdkNDI1MSAtd2Q0Mjc1IC1ub2xv
Z28gLUogLVppIikKLSAgICBpZiAoTVNWQ19WRVJTSU9OIExFU1MgMTQwMCkgICMgMTQwMCBpcyBW
aXN1YWwgU3R1ZGlvIDIwMDUKLSAgICAgICMgU3VwcHJlc3Mgc3B1cmlvdXMgd2FybmluZ3MgTVNW
QyA3LjEgc29tZXRpbWVzIGlzc3Vlcy4KLSAgICAgICMgRm9yY2luZyB2YWx1ZSB0byBib29sLgot
ICAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdzfSAtd2Q0ODAwIikKLSAg
ICAgICMgQ29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBvcGVyYXRvciBjb3VsZCBub3Qg
YmUgZ2VuZXJhdGVkLgotICAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdz
fSAtd2Q0NTExIC13ZDQ1MTIiKQotICAgICAgIyBDb21wYXRpYmlsaXR5IHdhcm5pbmdzIG5vdCBh
cHBsaWNhYmxlIHRvIEdvb2dsZSBUZXN0LgotICAgICAgIyBSZXNvbHZlZCBvdmVybG9hZCB3YXMg
Zm91bmQgYnkgYXJndW1lbnQtZGVwZW5kZW50IGxvb2t1cC4KLSAgICAgIHNldChjeHhfYmFzZV9m
bGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDY3NSIpCi0gICAgZW5kaWYoKQotICAgIGlmIChN
U1ZDX1ZFUlNJT04gTEVTUyAxNTAwKSAgIyAxNTAwIGlzIFZpc3VhbCBTdHVkaW8gMjAwOAotICAg
ICAgIyBDb25kaXRpb25hbCBleHByZXNzaW9uIGlzIGNvbnN0YW50LgotICAgICAgIyBXaGVuIGNv
bXBpbGluZyB3aXRoIC9XNCwgd2UgZ2V0IHNldmVyYWwgaW5zdGFuY2VzIG9mIEM0MTI3Ci0gICAg
ICAjIChDb25kaXRpb25hbCBleHByZXNzaW9uIGlzIGNvbnN0YW50KS4gSW4gb3VyIGNvZGUsIHdl
IGRpc2FibGUgdGhhdAotICAgICAgIyB3YXJuaW5nIG9uIGEgY2FzZS1ieS1jYXNlIGJhc2lzLiBI
b3dldmVyLCBvbiBWaXN1YWwgU3R1ZGlvIDIwMDUsCi0gICAgICAjIHRoZSB3YXJuaW5nIGZpcmVz
IG9uIHN0ZDo6bGlzdC4gVGhlcmVmb3JlIG9uIHRoYXQgY29tcGlsZXIgYW5kIGVhcmxpZXIsCi0g
ICAgICAjIHdlIGRpc2FibGUgdGhlIHdhcm5pbmcgcHJvamVjdC13aWRlLgotICAgICAgc2V0KGN4
eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdzfSAtd2Q0MTI3IikKLSAgICBlbmRpZigpCi0g
ICAgaWYgKE5PVCAoTVNWQ19WRVJTSU9OIExFU1MgMTcwMCkpICAjIDE3MDAgaXMgVmlzdWFsIFN0
dWRpbyAyMDEyLgotICAgICAgIyBTdXBwcmVzcyAidW5yZWFjaGFibGUgY29kZSIgd2FybmluZyBv
biBWUyAyMDEyIGFuZCBsYXRlci4KLSAgICAgICMgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1
ZXN0aW9ucy8zMjMyNjY5IGV4cGxhaW5zIHRoZSBpc3N1ZS4KLSAgICAgIHNldChjeHhfYmFzZV9m
bGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDcwMiIpCi0gICAgZW5kaWYoKQotCi0gICAgc2V0
KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdzfSAtRF9VTklDT0RFIC1EVU5JQ09ERSAt
RFdJTjMyIC1EX1dJTjMyIikKLSAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxh
Z3N9IC1EU1RSSUNUIC1EV0lOMzJfTEVBTl9BTkRfTUVBTiIpCi0gICAgc2V0KGN4eF9leGNlcHRp
b25fZmxhZ3MgIi1FSHNjIC1EX0hBU19FWENFUFRJT05TPTEiKQotICAgIHNldChjeHhfbm9fZXhj
ZXB0aW9uX2ZsYWdzICItRF9IQVNfRVhDRVBUSU9OUz0wIikKLSAgICBzZXQoY3h4X25vX3J0dGlf
ZmxhZ3MgIi1HUi0iKQotICBlbHNlaWYgKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCkKLSAgICBz
ZXQoY3h4X2Jhc2VfZmxhZ3MgIi1XYWxsIC1Xc2hhZG93IC1XZXJyb3IiKQotICAgIHNldChjeHhf
ZXhjZXB0aW9uX2ZsYWdzICItZmV4Y2VwdGlvbnMiKQotICAgIHNldChjeHhfbm9fZXhjZXB0aW9u
X2ZsYWdzICItZm5vLWV4Y2VwdGlvbnMiKQotICAgICMgVW50aWwgdmVyc2lvbiA0LjMuMiwgR0ND
IGRvZXNuJ3QgZGVmaW5lIGEgbWFjcm8gdG8gaW5kaWNhdGUKLSAgICAjIHdoZXRoZXIgUlRUSSBp
cyBlbmFibGVkLiAgVGhlcmVmb3JlIHdlIGRlZmluZSBHVEVTVF9IQVNfUlRUSQotICAgICMgZXhw
bGljaXRseS4KLSAgICBzZXQoY3h4X25vX3J0dGlfZmxhZ3MgIi1mbm8tcnR0aSAtREdURVNUX0hB
U19SVFRJPTAiKQotICAgIHNldChjeHhfc3RyaWN0X2ZsYWdzCi0gICAgICAiLVdleHRyYSAtV25v
LXVudXNlZC1wYXJhbWV0ZXIgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyIpCi0gIGVs
c2VpZiAoQ01BS0VfQ1hYX0NPTVBJTEVSX0lEIFNUUkVRVUFMICJTdW5Qcm8iKQotICAgIHNldChj
eHhfZXhjZXB0aW9uX2ZsYWdzICItZmVhdHVyZXM9ZXhjZXB0IikKLSAgICAjIFN1biBQcm8gZG9l
c24ndCBwcm92aWRlIG1hY3JvcyB0byBpbmRpY2F0ZSB3aGV0aGVyIGV4Y2VwdGlvbnMgYW5kCi0g
ICAgIyBSVFRJIGFyZSBlbmFibGVkLCBzbyB3ZSBkZWZpbmUgR1RFU1RfSEFTXyogZXhwbGljaXRs
eS4KLSAgICBzZXQoY3h4X25vX2V4Y2VwdGlvbl9mbGFncyAiLWZlYXR1cmVzPW5vJWV4Y2VwdCAt
REdURVNUX0hBU19FWENFUFRJT05TPTAiKQotICAgIHNldChjeHhfbm9fcnR0aV9mbGFncyAiLWZl
YXR1cmVzPW5vJXJ0dGkgLURHVEVTVF9IQVNfUlRUST0wIikKLSAgZWxzZWlmIChDTUFLRV9DWFhf
Q09NUElMRVJfSUQgU1RSRVFVQUwgIlZpc3VhbEFnZSIgT1IKLSAgICAgIENNQUtFX0NYWF9DT01Q
SUxFUl9JRCBTVFJFUVVBTCAiWEwiKQotICAgICMgQ01ha2UgMi44IGNoYW5nZXMgVmlzdWFsIEFn
ZSdzIGNvbXBpbGVyIElEIHRvICJYTCIuCi0gICAgc2V0KGN4eF9leGNlcHRpb25fZmxhZ3MgIi1x
ZWgiKQotICAgIHNldChjeHhfbm9fZXhjZXB0aW9uX2ZsYWdzICItcW5vZWgiKQotICAgICMgVW50
aWwgdmVyc2lvbiA5LjAsIFZpc3VhbCBBZ2UgZG9lc24ndCBkZWZpbmUgYSBtYWNybyB0byBpbmRp
Y2F0ZQotICAgICMgd2hldGhlciBSVFRJIGlzIGVuYWJsZWQuICBUaGVyZWZvcmUgd2UgZGVmaW5l
IEdURVNUX0hBU19SVFRJCi0gICAgIyBleHBsaWNpdGx5LgotICAgIHNldChjeHhfbm9fcnR0aV9m
bGFncyAiLXFub3J0dGkgLURHVEVTVF9IQVNfUlRUST0wIikKLSAgZWxzZWlmIChDTUFLRV9DWFhf
Q09NUElMRVJfSUQgU1RSRVFVQUwgIkhQIikKLSAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIi1BQSAt
bXQiKQotICAgIHNldChjeHhfZXhjZXB0aW9uX2ZsYWdzICItREdURVNUX0hBU19FWENFUFRJT05T
PTEiKQotICAgIHNldChjeHhfbm9fZXhjZXB0aW9uX2ZsYWdzICIrbm9laCAtREdURVNUX0hBU19F
WENFUFRJT05TPTAiKQotICAgICMgUlRUSSBjYW4gbm90IGJlIGRpc2FibGVkIGluIEhQIGFDQyBj
b21waWxlci4KLSAgICBzZXQoY3h4X25vX3J0dGlfZmxhZ3MgIiIpCi0gIGVuZGlmKCkKLQotICAj
IFRoZSBwdGhyZWFkcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSBhbmQgYWxsb3dlZD8KLSAgaWYgKERF
RklORUQgR1RFU1RfSEFTX1BUSFJFQUQpCi0gICAgc2V0KEdURVNUX0hBU19QVEhSRUFEX01BQ1JP
ICItREdURVNUX0hBU19QVEhSRUFEPTEiKQotICBlbHNlKCkKLSAgICBzZXQoR1RFU1RfSEFTX1BU
SFJFQURfTUFDUk8gIi1ER1RFU1RfSEFTX1BUSFJFQUQ9MCIpCi0gIGVuZGlmKCkKLSAgc2V0KGN4
eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdzfSAke0dURVNUX0hBU19QVEhSRUFEX01BQ1JP
fSIpCi0KLSAgIyBGb3IgYnVpbGRpbmcgZ3Rlc3QncyBvd24gdGVzdHMgYW5kIHNhbXBsZXMuCi0g
IHNldChjeHhfZXhjZXB0aW9uICIke0NNQUtFX0NYWF9GTEFHU30gJHtjeHhfYmFzZV9mbGFnc30g
JHtjeHhfZXhjZXB0aW9uX2ZsYWdzfSIpCi0gIHNldChjeHhfbm9fZXhjZXB0aW9uCi0gICAgIiR7
Q01BS0VfQ1hYX0ZMQUdTfSAke2N4eF9iYXNlX2ZsYWdzfSAke2N4eF9ub19leGNlcHRpb25fZmxh
Z3N9IikKLSAgc2V0KGN4eF9kZWZhdWx0ICIke2N4eF9leGNlcHRpb259IikKLSAgc2V0KGN4eF9u
b19ydHRpICIke2N4eF9kZWZhdWx0fSAke2N4eF9ub19ydHRpX2ZsYWdzfSIpCi0gIHNldChjeHhf
dXNlX293bl90dXBsZSAiJHtjeHhfZGVmYXVsdH0gLURHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0x
IikKLQotICAjIEZvciBidWlsZGluZyB0aGUgZ3Rlc3QgbGlicmFyaWVzLgotICBzZXQoY3h4X3N0
cmljdCAiJHtjeHhfZGVmYXVsdH0gJHtjeHhfc3RyaWN0X2ZsYWdzfSIpCi1lbmRtYWNybygpCi0K
LSMgRGVmaW5lcyB0aGUgZ3Rlc3QgJiBndGVzdF9tYWluIGxpYnJhcmllcy4gIFVzZXIgdGVzdHMg
c2hvdWxkIGxpbmsKLSMgd2l0aCBvbmUgb2YgdGhlbS4KLWZ1bmN0aW9uKGN4eF9saWJyYXJ5X3dp
dGhfdHlwZSBuYW1lIHR5cGUgY3h4X2ZsYWdzKQotICAjIHR5cGUgY2FuIGJlIGVpdGhlciBTVEFU
SUMgb3IgU0hBUkVEIHRvIGRlbm90ZSBhIHN0YXRpYyBvciBzaGFyZWQgbGlicmFyeS4KLSAgIyBB
UkdOIHJlZmVycyB0byBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhZnRlciAnY3h4X2ZsYWdzJy4KLSAg
YWRkX2xpYnJhcnkoJHtuYW1lfSAke3R5cGV9ICR7QVJHTn0pCi0gIHNldF90YXJnZXRfcHJvcGVy
dGllcygke25hbWV9Ci0gICAgUFJPUEVSVElFUwotICAgIENPTVBJTEVfRkxBR1MgIiR7Y3h4X2Zs
YWdzfSIpCi0gIGlmIChCVUlMRF9TSEFSRURfTElCUyBPUiB0eXBlIFNUUkVRVUFMICJTSEFSRUQi
KQotICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke25hbWV9Ci0gICAgICBQUk9QRVJUSUVTCi0g
ICAgICBDT01QSUxFX0RFRklOSVRJT05TICJHVEVTVF9DUkVBVEVfU0hBUkVEX0xJQlJBUlk9MSIp
Ci0gIGVuZGlmKCkKLSAgaWYgKERFRklORUQgR1RFU1RfSEFTX1BUSFJFQUQpCi0gICAgdGFyZ2V0
X2xpbmtfbGlicmFyaWVzKCR7bmFtZX0gJHtDTUFLRV9USFJFQURfTElCU19JTklUfSkKLSAgZW5k
aWYoKQotZW5kZnVuY3Rpb24oKQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgSGVscGVyIGZ1bmN0
aW9ucyBmb3IgY3JlYXRpbmcgYnVpbGQgdGFyZ2V0cy4KLQotZnVuY3Rpb24oY3h4X3NoYXJlZF9s
aWJyYXJ5IG5hbWUgY3h4X2ZsYWdzKQotICBjeHhfbGlicmFyeV93aXRoX3R5cGUoJHtuYW1lfSBT
SEFSRUQgIiR7Y3h4X2ZsYWdzfSIgJHtBUkdOfSkKLWVuZGZ1bmN0aW9uKCkKLQotZnVuY3Rpb24o
Y3h4X2xpYnJhcnkgbmFtZSBjeHhfZmxhZ3MpCi0gIGN4eF9saWJyYXJ5X3dpdGhfdHlwZSgke25h
bWV9ICIiICIke2N4eF9mbGFnc30iICR7QVJHTn0pCi1lbmRmdW5jdGlvbigpCi0KLSMgY3h4X2V4
ZWN1dGFibGVfd2l0aF9mbGFncyhuYW1lIGN4eF9mbGFncyBsaWJzIHNyY3MuLi4pCi0jCi0jIGNy
ZWF0ZXMgYSBuYW1lZCBDKysgZXhlY3V0YWJsZSB0aGF0IGRlcGVuZHMgb24gdGhlIGdpdmVuIGxp
YnJhcmllcyBhbmQKLSMgaXMgYnVpbHQgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIGZpbGVzIHdpdGgg
dGhlIGdpdmVuIGNvbXBpbGVyIGZsYWdzLgotZnVuY3Rpb24oY3h4X2V4ZWN1dGFibGVfd2l0aF9m
bGFncyBuYW1lIGN4eF9mbGFncyBsaWJzKQotICBhZGRfZXhlY3V0YWJsZSgke25hbWV9ICR7QVJH
Tn0pCi0gIGlmIChNU1ZDIEFORCAoTk9UIChNU1ZDX1ZFUlNJT04gTEVTUyAxNzAwKSkpICAjIDE3
MDAgaXMgVmlzdWFsIFN0dWRpbyAyMDEyLgotICAgICMgQmlnT2JqIHJlcXVpcmVkIGZvciB0ZXN0
cy4KLSAgICBzZXQoY3h4X2ZsYWdzICIke2N4eF9mbGFnc30gLWJpZ29iaiIpCi0gIGVuZGlmKCkK
LSAgaWYgKGN4eF9mbGFncykKLSAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtuYW1lfQotICAg
ICAgUFJPUEVSVElFUwotICAgICAgQ09NUElMRV9GTEFHUyAiJHtjeHhfZmxhZ3N9IikKLSAgZW5k
aWYoKQotICBpZiAoQlVJTERfU0hBUkVEX0xJQlMpCi0gICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVz
KCR7bmFtZX0KLSAgICAgIFBST1BFUlRJRVMKLSAgICAgIENPTVBJTEVfREVGSU5JVElPTlMgIkdU
RVNUX0xJTktFRF9BU19TSEFSRURfTElCUkFSWT0xIikKLSAgZW5kaWYoKQotICAjIFRvIHN1cHBv
cnQgbWl4aW5nIGxpbmtpbmcgaW4gc3RhdGljIGFuZCBkeW5hbWljIGxpYnJhcmllcywgbGluayBl
YWNoCi0gICMgbGlicmFyeSBpbiB3aXRoIGFuIGV4dHJhIGNhbGwgdG8gdGFyZ2V0X2xpbmtfbGli
cmFyaWVzLgotICBmb3JlYWNoIChsaWIgIiR7bGlic30iKQotICAgIHRhcmdldF9saW5rX2xpYnJh
cmllcygke25hbWV9ICR7bGlifSkKLSAgZW5kZm9yZWFjaCgpCi1lbmRmdW5jdGlvbigpCi0KLSMg
Y3h4X2V4ZWN1dGFibGUobmFtZSBkaXIgbGliIHNyY3MuLi4pCi0jCi0jIGNyZWF0ZXMgYSBuYW1l
ZCB0YXJnZXQgdGhhdCBkZXBlbmRzIG9uIHRoZSBnaXZlbiBsaWJzIGFuZCBpcyBidWlsdAotIyBm
cm9tIHRoZSBnaXZlbiBzb3VyY2UgZmlsZXMuICBkaXIvbmFtZS5jYyBpcyBpbXBsaWNpdGx5IGlu
Y2x1ZGVkIGluCi0jIHRoZSBzb3VyY2UgZmlsZSBsaXN0LgotZnVuY3Rpb24oY3h4X2V4ZWN1dGFi
bGUgbmFtZSBkaXIgbGlicykKLSAgY3h4X2V4ZWN1dGFibGVfd2l0aF9mbGFncygKLSAgICAke25h
bWV9ICIke2N4eF9kZWZhdWx0fSIgIiR7bGlic30iICIke2Rpcn0vJHtuYW1lfS5jYyIgJHtBUkdO
fSkKLWVuZGZ1bmN0aW9uKCkKLQotIyBTZXRzIFBZVEhPTklOVEVSUF9GT1VORCBhbmQgUFlUSE9O
X0VYRUNVVEFCTEUuCi1maW5kX3BhY2thZ2UoUHl0aG9uSW50ZXJwKQotCi0jIGN4eF90ZXN0X3dp
dGhfZmxhZ3MobmFtZSBjeHhfZmxhZ3MgbGlicyBzcmNzLi4uKQotIwotIyBjcmVhdGVzIGEgbmFt
ZWQgQysrIHRlc3QgdGhhdCBkZXBlbmRzIG9uIHRoZSBnaXZlbiBsaWJzIGFuZCBpcyBidWlsdAot
IyBmcm9tIHRoZSBnaXZlbiBzb3VyY2UgZmlsZXMgd2l0aCB0aGUgZ2l2ZW4gY29tcGlsZXIgZmxh
Z3MuCi1mdW5jdGlvbihjeHhfdGVzdF93aXRoX2ZsYWdzIG5hbWUgY3h4X2ZsYWdzIGxpYnMpCi0g
IGN4eF9leGVjdXRhYmxlX3dpdGhfZmxhZ3MoJHtuYW1lfSAiJHtjeHhfZmxhZ3N9IiAiJHtsaWJz
fSIgJHtBUkdOfSkKLSAgYWRkX3Rlc3QoJHtuYW1lfSAke25hbWV9KQotZW5kZnVuY3Rpb24oKQot
Ci0jIGN4eF90ZXN0KG5hbWUgbGlicyBzcmNzLi4uKQotIwotIyBjcmVhdGVzIGEgbmFtZWQgdGVz
dCB0YXJnZXQgdGhhdCBkZXBlbmRzIG9uIHRoZSBnaXZlbiBsaWJzIGFuZCBpcwotIyBidWlsdCBm
cm9tIHRoZSBnaXZlbiBzb3VyY2UgZmlsZXMuICBVbmxpa2UgY3h4X3Rlc3Rfd2l0aF9mbGFncywK
LSMgdGVzdC9uYW1lLmNjIGlzIGFscmVhZHkgaW1wbGljaXRseSBpbmNsdWRlZCBpbiB0aGUgc291
cmNlIGZpbGUgbGlzdC4KLWZ1bmN0aW9uKGN4eF90ZXN0IG5hbWUgbGlicykKLSAgY3h4X3Rlc3Rf
d2l0aF9mbGFncygiJHtuYW1lfSIgIiR7Y3h4X2RlZmF1bHR9IiAiJHtsaWJzfSIKLSAgICAidGVz
dC8ke25hbWV9LmNjIiAke0FSR059KQotZW5kZnVuY3Rpb24oKQotCi0jIHB5X3Rlc3QobmFtZSkK
LSMKLSMgY3JlYXRlcyBhIFB5dGhvbiB0ZXN0IHdpdGggdGhlIGdpdmVuIG5hbWUgd2hvc2UgbWFp
biBtb2R1bGUgaXMgaW4KLSMgdGVzdC9uYW1lLnB5LiAgSXQgZG9lcyBub3RoaW5nIGlmIFB5dGhv
biBpcyBub3QgaW5zdGFsbGVkLgotZnVuY3Rpb24ocHlfdGVzdCBuYW1lKQotICBpZiAoUFlUSE9O
SU5URVJQX0ZPVU5EKQotICAgIGlmICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlO
T1JfVkVSU0lPTn0gR1JFQVRFUiAzLjEpCi0gICAgICBpZiAoQ01BS0VfQ09ORklHVVJBVElPTl9U
WVBFUykKLQkjIE11bHRpLWNvbmZpZ3VyYXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBhcyBmb3IgVmlz
dWFsIFN0dWRpbyBzYXZlCi0JIyBvdXRwdXQgaW4gYSBzdWJkaXJlY3Rvcnkgb2YgQ01BS0VfQ1VS
UkVOVF9CSU5BUllfRElSIChEZWJ1ZywKLQkjIFJlbGVhc2UgZXRjLiksIHNvIHdlIGhhdmUgdG8g
cHJvdmlkZSBpdCBoZXJlLgotICAgICAgICBhZGRfdGVzdCgKLSAgICAgICAgICBOQU1FICR7bmFt
ZX0KLSAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS90ZXN0LyR7bmFtZX0ucHkKLSAgICAgICAgICAgICAgLS1idWlsZF9kaXI9
JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyQ8Q09ORklHPikKLSAgICAgIGVsc2UgKENNQUtF
X0NPTkZJR1VSQVRJT05fVFlQRVMpCi0JIyBTaW5nbGUtY29uZmlndXJhdGlvbiBidWlsZCBnZW5l
cmF0b3JzIGxpa2UgTWFrZWZpbGUgZ2VuZXJhdG9ycwotCSMgZG9uJ3QgaGF2ZSBzdWJkaXJzIGJl
bG93IENNQUtFX0NVUlJFTlRfQklOQVJZX0RJUi4KLSAgICAgICAgYWRkX3Rlc3QoCi0gICAgICAg
ICAgTkFNRSAke25hbWV9Ci0gICAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGVzdC8ke25hbWV9LnB5Ci0gICAgICAgICAgICAg
IC0tYnVpbGRfZGlyPSR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSkKLSAgICAgIGVuZGlmIChD
TUFLRV9DT05GSUdVUkFUSU9OX1RZUEVTKQotICAgIGVsc2UgKCR7Q01BS0VfTUFKT1JfVkVSU0lP
Tn0uJHtDTUFLRV9NSU5PUl9WRVJTSU9OfSBHUkVBVEVSIDMuMSkKLSAgICAgICMgJHtDTUFLRV9D
VVJSRU5UX0JJTkFSWV9ESVJ9IGlzIGtub3duIGF0IGNvbmZpZ3VyYXRpb24gdGltZSwgc28gd2Ug
Y2FuCi0gICAgICAjIGRpcmVjdGx5IGJpbmQgaXQgZnJvbSBjbWFrZS4gJHtDVEVTVF9DT05GSUdV
UkFUSU9OX1RZUEV9IGlzIGtub3duCi0gICAgICAjIG9ubHkgYXQgY3Rlc3QgcnVudGltZSAoYnkg
Y2FsbGluZyBjdGVzdCAtYyA8Q29uZmlndXJhdGlvbj4pLCBzbwotICAgICAgIyB3ZSBoYXZlIHRv
IGVzY2FwZSAkIHRvIGRlbGF5IHZhcmlhYmxlIHN1YnN0aXR1dGlvbiBoZXJlLgotICAgICAgYWRk
X3Rlc3QoCi0gICAgICAgICR7bmFtZX0KLSAgICAgICAgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rlc3QvJHtuYW1lfS5weQotICAgICAgICAgIC0tYnVp
bGRfZGlyPSR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9cJHtDVEVTVF9DT05GSUdVUkFUSU9O
X1RZUEV9KQotICAgIGVuZGlmICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1Jf
VkVSU0lPTn0gR1JFQVRFUiAzLjEpCi0gIGVuZGlmKFBZVEhPTklOVEVSUF9GT1VORCkKLWVuZGZ1
bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2NvZGVnZWFy
L2d0ZXN0LmNicHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2NvZGVnZWFyL2d0ZXN0
LmNicHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVjMzA1NGI4NTFkYWI0ZDhm
ZTY4YzU2M2Q5NTUyNjY4MzE4MjRjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jb2RlZ2Vhci9ndGVzdC5j
YnByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCi08UHJvamVjdCB4bWxucz0iaHR0cDovL3NjaGVtYXMu
bWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4NCi0gIDxQcm9wZXJ0eUdyb3Vw
Pg0KLSAgICA8UHJvamVjdEd1aWQ+e2JjYTM3YTcyLTViMDctNDZjZi1iNDRlLTg5ZjhlMDY0NTFh
Mn08L1Byb2plY3RHdWlkPg0KLSAgICA8Q29uZmlnIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PScn
Ij5SZWxlYXNlPC9Db25maWc+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZyknPT0nQmFzZScgb3IgJyQoQmFzZSknIT0nJyI+DQotICAg
IDxCYXNlPnRydWU8L0Jhc2U+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZyknPT0nRGVidWcnIG9yICckKENmZ18xKSchPScnIj4NCi0g
ICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18xPnRydWU8L0NmZ18xPg0KLSAgICA8Q2Zn
UGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdSZWxlYXNlJyBvciAnJChDZmdfMiknIT0n
JyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICAgIDxDZmdfMj50cnVlPC9DZmdfMj4NCi0g
ICAgPENmZ1BhcmVudD5CYXNlPC9DZmdQYXJlbnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKEJhc2UpJyE9JyciPg0KLSAgICA8QkNDX09wdGlt
aXplRm9yU3BlZWQ+dHJ1ZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+DQotICAgIDxPdXRwdXRFeHQ+
bGliPC9PdXRwdXRFeHQ+DQotICAgIDxEQ0NfQ0J1aWxkZXJPdXRwdXQ+SlBITkU8L0RDQ19DQnVp
bGRlck91dHB1dD4NCi0gICAgPERlZmluZXM+Tk9fU1RSSUNUPC9EZWZpbmVzPg0KLSAgICA8RHlu
YW1pY1JUTD50cnVlPC9EeW5hbWljUlRMPg0KLSAgICA8VXNlUGFja2FnZXM+dHJ1ZTwvVXNlUGFj
a2FnZXM+DQotICAgIDxQcm9qZWN0VHlwZT5DcHBTdGF0aWNMaWJyYXJ5PC9Qcm9qZWN0VHlwZT4N
Ci0gICAgPEJDQ19DUFBDb21waWxlQWx3YXlzPnRydWU8L0JDQ19DUFBDb21waWxlQWx3YXlzPg0K
LSAgICA8UGFja2FnZUltcG9ydHM+cnRsLmJwaTt2Y2wuYnBpO2JjYmllLmJwaTt2Y2x4LmJwaTt2
Y2xhY3RuYmFuZC5icGk7eG1scnRsLmJwaTtiY2JzbXAuYnBpO2RicnRsLmJwaTt2Y2xkYi5icGk7
YmRlcnRsLmJwaTt2Y2xkYnguYnBpO2RzbmFwLmJwaTtkc25hcGNvbi5icGk7dmNsaWIuYnBpO2li
eHByZXNzLmJwaTthZG9ydGwuYnBpO2RieGNkcy5icGk7ZGJleHByZXNzLmJwaTtEYnhDb21tb25E
cml2ZXIuYnBpO3dlYnNuYXAuYnBpO3ZjbGllLmJwaTt3ZWJkc25hcC5icGk7aW5ldC5icGk7aW5l
dGRiYmRlLmJwaTtpbmV0ZGJ4cHJlc3MuYnBpO3NvYXBydGwuYnBpO1JhdmU3NVZDTC5icGk7dGVl
VUkuYnBpO3RlZS5icGk7dGVlZGIuYnBpO0luZHlDb3JlLmJwaTtJbmR5U3lzdGVtLmJwaTtJbmR5
UHJvdG9jb2xzLmJwaTtJbnRyYXdlYkRCXzkwXzEwMC5icGk7SW50cmF3ZWJfOTBfMTAwLmJwaTtk
Y2xaaXBGb3JnZWQxMS5icGk7dmNsWmlwRm9yZ2VkMTEuYnBpO0dSMzJfQkRTMjAwNi5icGk7R1Iz
Ml9EU0dOX0JEUzIwMDYuYnBpO0pjbC5icGk7SmNsVmNsLmJwaTtKdkNvcmVEMTFSLmJwaTtKdlN5
c3RlbUQxMVIuYnBpO0p2U3RkQ3RybHNEMTFSLmJwaTtKdkFwcEZybUQxMVIuYnBpO0p2QmFuZHNE
MTFSLmJwaTtKdkRCRDExUi5icGk7SnZEbGdzRDExUi5icGk7SnZCREVEMTFSLmJwaTtKdkNtcEQx
MVIuYnBpO0p2Q3J5cHREMTFSLmJwaTtKdkN0cmxzRDExUi5icGk7SnZDdXN0b21EMTFSLmJwaTtK
dkRvY2tpbmdEMTFSLmJwaTtKdkRvdE5ldEN0cmxzRDExUi5icGk7SnZFRElEMTFSLmJwaTtKdkds
b2J1c0QxMVIuYnBpO0p2SE1JRDExUi5icGk7SnZJbnRlcnByZXRlckQxMVIuYnBpO0p2SmFuc0Qx
MVIuYnBpO0p2TWFuYWdlZFRocmVhZHNEMTFSLmJwaTtKdk1NRDExUi5icGk7SnZOZXREMTFSLmJw
aTtKdlBhZ2VDb21wc0QxMVIuYnBpO0p2UGx1Z2luRDExUi5icGk7SnZQcmludFByZXZpZXdEMTFS
LmJwaTtKdlJ1bnRpbWVEZXNpZ25EMTFSLmJwaTtKdlRpbWVGcmFtZXdvcmtEMTFSLmJwaTtKdlZh
bGlkYXRvcnNEMTFSLmJwaTtKdldpemFyZEQxMVIuYnBpO0p2WFBDdHJsc0QxMVIuYnBpO1ZjbFNt
cC5icGk7Q0V4Y2VwdGlvbkV4cGVydDExLmJwaTwvUGFja2FnZUltcG9ydHM+DQotICAgIDxCQ0Nf
d3Bhcj5mYWxzZTwvQkNDX3dwYXI+DQotICAgIDxJbmNsdWRlUGF0aD4kKEJEUylcaW5jbHVkZTsk
KEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxzcmM7Li5caW5j
bHVkZTsuLjwvSW5jbHVkZVBhdGg+DQotICAgIDxBbGxQYWNrYWdlTGlicz5ydGwubGliO3ZjbC5s
aWI8L0FsbFBhY2thZ2VMaWJzPg0KLSAgICA8VExJQl9QYWdlU2l6ZT4zMjwvVExJQl9QYWdlU2l6
ZT4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChC
RFMpXGxpYlxwc2RrPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ2ZnXzEpJyE9JyciPg0KLSAgICA8QkNDX09w
dGltaXplRm9yU3BlZWQ+ZmFsc2U8L0JDQ19PcHRpbWl6ZUZvclNwZWVkPg0KLSAgICA8RENDX09w
dGltaXplPmZhbHNlPC9EQ0NfT3B0aW1pemU+DQotICAgIDxEQ0NfRGVidWdJbmZvSW5FeGU+dHJ1
ZTwvRENDX0RlYnVnSW5mb0luRXhlPg0KLSAgICA8RGVmaW5lcz5fREVCVUc7JChEZWZpbmVzKTwv
RGVmaW5lcz4NCi0gICAgPElMSU5LX0Z1bGxEZWJ1Z0luZm8+dHJ1ZTwvSUxJTktfRnVsbERlYnVn
SW5mbz4NCi0gICAgPEJDQ19JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5mYWxzZTwvQkNDX0lubGlu
ZUZ1bmN0aW9uRXhwYW5zaW9uPg0KLSAgICA8SUxJTktfRGlzYWJsZUluY3JlbWVudGFsTGlua2lu
Zz50cnVlPC9JTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5nPg0KLSAgICA8QkNDX1VzZVJl
Z2lzdGVyVmFyaWFibGVzPk5vbmU8L0JDQ19Vc2VSZWdpc3RlclZhcmlhYmxlcz4NCi0gICAgPERD
Q19EZWZpbmU+REVCVUc8L0RDQ19EZWZpbmU+DQotICAgIDxCQ0NfRGVidWdMaW5lTnVtYmVycz50
cnVlPC9CQ0NfRGVidWdMaW5lTnVtYmVycz4NCi0gICAgPEludGVybWVkaWF0ZU91dHB1dERpcj5E
ZWJ1ZzwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8VEFTTV9EaXNwbGF5U291cmNlTGlu
ZXM+dHJ1ZTwvVEFTTV9EaXNwbGF5U291cmNlTGluZXM+DQotICAgIDxCQ0NfU3RhY2tGcmFtZXM+
dHJ1ZTwvQkNDX1N0YWNrRnJhbWVzPg0KLSAgICA8QkNDX0Rpc2FibGVPcHRpbWl6YXRpb25zPnRy
dWU8L0JDQ19EaXNhYmxlT3B0aW1pemF0aW9ucz4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQo
QkRTKVxsaWJcZGVidWc7JChJTElOS19MaWJyYXJ5UGF0aCk8L0lMSU5LX0xpYnJhcnlQYXRoPg0K
LSAgICA8VEFTTV9EZWJ1Z2dpbmc+RnVsbDwvVEFTTV9EZWJ1Z2dpbmc+DQotICAgIDxCQ0NfU291
cmNlRGVidWdnaW5nT24+dHJ1ZTwvQkNDX1NvdXJjZURlYnVnZ2luZ09uPg0KLSAgPC9Qcm9wZXJ0
eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMiknIT0nJyI+DQot
ICAgIDxEZWZpbmVzPk5ERUJVRzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAgICA8SW50ZXJtZWRp
YXRlT3V0cHV0RGlyPlJlbGVhc2U8L0ludGVybWVkaWF0ZU91dHB1dERpcj4NCi0gICAgPElMSU5L
X0xpYnJhcnlQYXRoPiQoQkRTKVxsaWJccmVsZWFzZTskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJ
TktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5Ob25lPC9UQVNNX0RlYnVnZ2lu
Zz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9qZWN0RXh0ZW5zaW9ucz4NCi0gICAgPEJv
cmxhbmQuUGVyc29uYWxpdHk+Q1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0eTwvQm9ybGFuZC5Q
ZXJzb25hbGl0eT4NCi0gICAgPEJvcmxhbmQuUHJvamVjdFR5cGU+Q3BwU3RhdGljTGlicmFyeTwv
Qm9ybGFuZC5Qcm9qZWN0VHlwZT4NCi0gICAgPEJvcmxhbmRQcm9qZWN0Pg0KLTxCb3JsYW5kUHJv
amVjdD48Q1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0eT48VmVyc2lvbkluZm8+PFZlcnNpb25J
bmZvIE5hbWU9IkluY2x1ZGVWZXJJbmZvIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZv
IE5hbWU9IkF1dG9JbmNCdWlsZCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1l
PSJNYWpvclZlciI+MTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9Ik1pbm9yVmVyIj4w
PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUmVsZWFzZSI+MDwvVmVyc2lvbkluZm8+
PFZlcnNpb25JbmZvIE5hbWU9IkJ1aWxkIj4wPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFt
ZT0iRGVidWciPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUHJlUmVsZWFz
ZSI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJTcGVjaWFsIj5GYWxzZTwv
VmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlByaXZhdGUiPkZhbHNlPC9WZXJzaW9uSW5m
bz48VmVyc2lvbkluZm8gTmFtZT0iRExMIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZv
IE5hbWU9IkxvY2FsZSI+MTAzMzwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkNvZGVQ
YWdlIj4xMjUyPC9WZXJzaW9uSW5mbz48L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mb0tleXM+PFZl
cnNpb25JbmZvS2V5cyBOYW1lPSJDb21wYW55TmFtZSI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNp
b25JbmZvS2V5cyBOYW1lPSJGaWxlRGVzY3JpcHRpb24iPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJz
aW9uSW5mb0tleXMgTmFtZT0iRmlsZVZlcnNpb24iPjEuMC4wLjA8L1ZlcnNpb25JbmZvS2V5cz48
VmVyc2lvbkluZm9LZXlzIE5hbWU9IkludGVybmFsTmFtZSI+PC9WZXJzaW9uSW5mb0tleXM+PFZl
cnNpb25JbmZvS2V5cyBOYW1lPSJMZWdhbENvcHlyaWdodCI+PC9WZXJzaW9uSW5mb0tleXM+PFZl
cnNpb25JbmZvS2V5cyBOYW1lPSJMZWdhbFRyYWRlbWFya3MiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iT3JpZ2luYWxGaWxlbmFtZSI+PC9WZXJzaW9uSW5mb0tleXM+
PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJQcm9kdWN0TmFtZSI+PC9WZXJzaW9uSW5mb0tleXM+PFZl
cnNpb25JbmZvS2V5cyBOYW1lPSJQcm9kdWN0VmVyc2lvbiI+MS4wLjAuMDwvVmVyc2lvbkluZm9L
ZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tbWVudHMiPjwvVmVyc2lvbkluZm9LZXlzPjwv
VmVyc2lvbkluZm9LZXlzPjxEZWJ1Z2dpbmc+PERlYnVnZ2luZyBOYW1lPSJEZWJ1Z1NvdXJjZURp
cnMiPjwvRGVidWdnaW5nPjwvRGVidWdnaW5nPjxQYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9
IlJ1blBhcmFtcyI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkxhdW5jaGVyIj48L1Bh
cmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iVXNlTGF1bmNoZXIiPkZhbHNlPC9QYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IkRlYnVnQ1dEIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFt
ZT0iSG9zdEFwcGxpY2F0aW9uIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3Rl
SG9zdCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZVBhdGgiPjwvUGFyYW1l
dGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVQYXJhbXMiPjwvUGFyYW1ldGVycz48UGFyYW1l
dGVycyBOYW1lPSJSZW1vdGVMYXVuY2hlciI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9
IlVzZVJlbW90ZUxhdW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJS
ZW1vdGVDV0QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVEZWJ1ZyI+RmFs
c2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iRGVidWcgU3ltYm9scyBTZWFyY2ggUGF0
aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkxvYWRBbGxTeW1ib2xzIj5UcnVlPC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkxvYWRVbnNwZWNpZmllZFN5bWJvbHMiPkZhbHNl
PC9QYXJhbWV0ZXJzPjwvUGFyYW1ldGVycz48RXhjbHVkZWRfUGFja2FnZXM+DQotICAgICAgDQot
ICAgICAgDQotICAgICAgPEV4Y2x1ZGVkX1BhY2thZ2VzIE5hbWU9IiQoQkRTKVxiaW5cYmNib2Zm
aWNlMmsxMDAuYnBsIj5Db2RlR2VhciBDKytCdWlsZGVyIE9mZmljZSAyMDAwIFNlcnZlcnMgUGFj
a2FnZTwvRXhjbHVkZWRfUGFja2FnZXM+DQotICAgICAgPEV4Y2x1ZGVkX1BhY2thZ2VzIE5hbWU9
IiQoQkRTKVxiaW5cYmNib2ZmaWNleHAxMDAuYnBsIj5Db2RlR2VhciBDKytCdWlsZGVyIE9mZmlj
ZSBYUCBTZXJ2ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICA8L0V4Y2x1ZGVk
X1BhY2thZ2VzPjxMaW5rZXI+PExpbmtlciBOYW1lPSJMaWJQcmVmaXgiPjwvTGlua2VyPjxMaW5r
ZXIgTmFtZT0iTGliU3VmZml4Ij48L0xpbmtlcj48TGlua2VyIE5hbWU9IkxpYlZlcnNpb24iPjwv
TGlua2VyPjwvTGlua2VyPjxQcm9qZWN0UHJvcGVydGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFt
ZT0iQXV0b1Nob3dEZXBzIj5GYWxzZTwvUHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0
aWVzIE5hbWU9Ik1hbmFnZVBhdGhzIj5UcnVlPC9Qcm9qZWN0UHJvcGVydGllcz48UHJvamVjdFBy
b3BlcnRpZXMgTmFtZT0iVmVyaWZ5UGFja2FnZXMiPlRydWU8L1Byb2plY3RQcm9wZXJ0aWVzPjwv
UHJvamVjdFByb3BlcnRpZXM+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlz
dHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJDb3VudCI+MzwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0wIj4kKEJEUylcaW5jbHVk
ZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxzcmM7Li5c
aW5jbHVkZTsuLjwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obElu
Y2x1ZGVQYXRoIE5hbWU9Ikl0ZW0xIj4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5r
dW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxzcmM7Li5caW5jbHVkZTsuLjwvSGlzdG9yeUxp
c3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0y
Ij4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRl
XHZjbDsuLlxzcmM7Li5cc3JjOy4uXGluY2x1ZGU8L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRo
PjwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJh
cnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJDb3VudCI+MTwv
SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xp
YnJhcnlQYXRoIE5hbWU9Ikl0ZW0wIj4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxs
aWJccHNkazwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PC9IaXN0b3J5TGlzdHNf
aGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48SGlzdG9yeUxpc3Rz
X2hsRGVmaW5lcyBOYW1lPSJDb3VudCI+MTwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48SGlzdG9y
eUxpc3RzX2hsRGVmaW5lcyBOYW1lPSJJdGVtMCI+Tk9fU1RSSUNUPC9IaXN0b3J5TGlzdHNfaGxE
ZWZpbmVzPjwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdl
U2l6ZT48SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZSBOYW1lPSJDb3VudCI+MTwvSGlzdG9y
eUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZSBOYW1l
PSJJdGVtMCI+MzI8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PEhpc3RvcnlMaXN0c19o
bFRMSUJfUGFnZVNpemUgTmFtZT0iSXRlbTEiPjE2PC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VT
aXplPjwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48L0NQbHVzUGx1c0J1aWxkZXIuUGVy
c29uYWxpdHk+PC9Cb3JsYW5kUHJvamVjdD48L0JvcmxhbmRQcm9qZWN0Pg0KLSAgPC9Qcm9qZWN0
RXh0ZW5zaW9ucz4NCi0gIDxJbXBvcnQgUHJvamVjdD0iJChNU0J1aWxkQmluUGF0aClcQm9ybGFu
ZC5DcHAuVGFyZ2V0cyIgLz4NCi0gIDxJdGVtR3JvdXA+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4u
XGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QtZGVhdGgtdGVzdC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4z
PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1
ZGVcZ3Rlc3RcZ3Rlc3QtbWVzc2FnZS5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj40PC9CdWlsZE9y
ZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3Rc
Z3Rlc3QtcGFyYW0tdGVzdC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj41PC9CdWlsZE9yZGVyPg0K
LSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3Qt
c3BpLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjY8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4N
Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC10ZXN0LXBhcnQuaCI+
DQotICAgICAgPEJ1aWxkT3JkZXI+NzwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8
Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0LXR5cGVkLXRlc3QuaCI+DQotICAg
ICAgPEJ1aWxkT3JkZXI+ODwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJ
bmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjA8
L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVk
ZVxndGVzdFxndGVzdF9wcmVkX2ltcGwuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTwvQnVpbGRP
cmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0
XGd0ZXN0X3Byb2QuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MjwvQnVpbGRPcmRlcj4NCi0gICAg
PC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0
ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+OTwvQnVpbGRP
cmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0
XGludGVybmFsXGd0ZXN0LWZpbGVwYXRoLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjEwPC9CdWls
ZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rl
c3RcaW50ZXJuYWxcZ3Rlc3QtaW50ZXJuYWwuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTE8L0J1
aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxn
dGVzdFxpbnRlcm5hbFxndGVzdC1saW5rZWRfcHRyLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjEy
PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1
ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCI+DQotICAgICAg
PEJ1aWxkT3JkZXI+MTQ8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5j
bHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1wYXJhbS11dGlsLmgiPg0KLSAg
ICAgIDxCdWlsZE9yZGVyPjEzPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25l
IEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtcG9ydC5oIj4NCi0gICAg
ICA8QnVpbGRPcmRlcj4xNTwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJ
bmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LXN0cmluZy5oIj4NCi0gICAg
ICA8QnVpbGRPcmRlcj4xNjwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJ
bmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LXR5cGUtdXRpbC5oIj4NCi0g
ICAgICA8QnVpbGRPcmRlcj4xNzwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Q3Bw
Q29tcGlsZSBJbmNsdWRlPSJndGVzdF9hbGwuY2MiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE4PC9C
dWlsZE9yZGVyPg0KLSAgICA8L0NwcENvbXBpbGU+DQotICAgIDxCdWlsZENvbmZpZ3VyYXRpb24g
SW5jbHVkZT0iRGVidWciPg0KLSAgICAgIDxLZXk+Q2ZnXzE8L0tleT4NCi0gICAgPC9CdWlsZENv
bmZpZ3VyYXRpb24+DQotICAgIDxCdWlsZENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZSI+
DQotICAgICAgPEtleT5DZmdfMjwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0g
IDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jb2RlZ2Vhci9ndGVzdC5ncm91
cHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jb2RlZ2Vhci9ndGVzdC5ncm91cHBy
b2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZjMxY2FiNjQwYmI0NTQwODEyZjg4
ZjZmYTBmYWNjNmYwMTBkYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvY29kZWdlYXIvZ3Rlc3QuZ3JvdXBw
cm9qCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAot77u/PFByb2plY3QgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQotICA8
UHJvcGVydHlHcm91cD4NCi0gICAgPFByb2plY3RHdWlkPntjMWQ5MjNlMC02Y2JhLTQzMzItOWI2
Zi0zNDIwYWNiZjUwOTF9PC9Qcm9qZWN0R3VpZD4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxJ
dGVtR3JvdXAgLz4NCi0gIDxJdGVtR3JvdXA+DQotICAgIDxQcm9qZWN0cyBJbmNsdWRlPSJndGVz
dC5jYnByb2oiIC8+DQotICAgIDxQcm9qZWN0cyBJbmNsdWRlPSJndGVzdF9tYWluLmNicHJvaiIg
Lz4NCi0gICAgPFByb2plY3RzIEluY2x1ZGU9Imd0ZXN0X3VuaXR0ZXN0LmNicHJvaiIgLz4NCi0g
IDwvSXRlbUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAgICA8Qm9ybGFuZC5QZXJz
b25hbGl0eT5EZWZhdWx0LlBlcnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0KLSAgICA8
Qm9ybGFuZC5Qcm9qZWN0VHlwZSAvPg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+DQotPEJvcmxhbmRQ
cm9qZWN0IHhtbG5zPSIiPjxEZWZhdWx0LlBlcnNvbmFsaXR5PjwvRGVmYXVsdC5QZXJzb25hbGl0
eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+DQotICA8L1Byb2plY3RFeHRlbnNp
b25zPg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdCI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJn
dGVzdC5jYnByb2oiIFRhcmdldHM9IiIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1l
PSJndGVzdDpDbGVhbiI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdC5jYnByb2oiIFRh
cmdldHM9IkNsZWFuIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0Ok1h
a2UiPg0KLSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3QuY2Jwcm9qIiBUYXJnZXRzPSJNYWtl
IiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X21haW4iPg0KLSAgICA8
TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfbWFpbi5jYnByb2oiIFRhcmdldHM9IiIgLz4NCi0gIDwv
VGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF9tYWluOkNsZWFuIj4NCi0gICAgPE1TQnVp
bGQgUHJvamVjdHM9Imd0ZXN0X21haW4uY2Jwcm9qIiBUYXJnZXRzPSJDbGVhbiIgLz4NCi0gIDwv
VGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF9tYWluOk1ha2UiPg0KLSAgICA8TVNCdWls
ZCBQcm9qZWN0cz0iZ3Rlc3RfbWFpbi5jYnByb2oiIFRhcmdldHM9Ik1ha2UiIC8+DQotICA8L1Rh
cmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3RfdW5pdHRlc3QiPg0KLSAgICA8TVNCdWlsZCBQ
cm9qZWN0cz0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSIiIC8+DQotICA8L1Rhcmdl
dD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3RfdW5pdHRlc3Q6Q2xlYW4iPg0KLSAgICA8TVNCdWls
ZCBQcm9qZWN0cz0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSJDbGVhbiIgLz4NCi0g
IDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF91bml0dGVzdDpNYWtlIj4NCi0gICAg
PE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0X3VuaXR0ZXN0LmNicHJvaiIgVGFyZ2V0cz0iTWFrZSIg
Lz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJCdWlsZCI+DQotICAgIDxDYWxsVGFy
Z2V0IFRhcmdldHM9Imd0ZXN0O2d0ZXN0X21haW47Z3Rlc3RfdW5pdHRlc3QiIC8+DQotICA8L1Rh
cmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iQ2xlYW4iPg0KLSAgICA8Q2FsbFRhcmdldCBUYXJnZXRz
PSJndGVzdDpDbGVhbjtndGVzdF9tYWluOkNsZWFuO2d0ZXN0X3VuaXR0ZXN0OkNsZWFuIiAvPg0K
LSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Ik1ha2UiPg0KLSAgICA8Q2FsbFRhcmdldCBU
YXJnZXRzPSJndGVzdDpNYWtlO2d0ZXN0X21haW46TWFrZTtndGVzdF91bml0dGVzdDpNYWtlIiAv
Pg0KLSAgPC9UYXJnZXQ+DQotICA8SW1wb3J0IENvbmRpdGlvbj0iRXhpc3RzKCckKE1TQnVpbGRC
aW5QYXRoKVxCb3JsYW5kLkdyb3VwLlRhcmdldHMnKSIgUHJvamVjdD0iJChNU0J1aWxkQmluUGF0
aClcQm9ybGFuZC5Hcm91cC5UYXJnZXRzIiAvPg0KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jb2Rl
Z2Vhci9ndGVzdF9hbGwuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jb2RlZ2Vhci9n
dGVzdF9hbGwuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyMWIyZDgwZTgzZWM3
Y2QwZmRmN2RjNjcxMjcyZGM1NGY2ZTlmMGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvY29kZWdlYXIvZ3Rl
c3RfYWxsLmNjCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIw
MDksIEdvb2dsZSBJbmMuDQotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0vLw0KLS8vIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dA0KLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUNCi0vLyBtZXQ6DQotLy8NCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0K
LS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4NCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlDQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcg0KLS8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCi0vLyBkaXN0
cmlidXRpb24uDQotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cw0KLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tDQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCi0vLw0KLS8vIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMNCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVA0KLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KLS8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotLy8g
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsDQotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLS8vIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQ0KLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQNCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCi0vLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0K
LS8vDQotLy8gQXV0aG9yOiBKb3NoIEtlbGxleSAoam9zaGtlbEBnbWFpbC5jb20pDQotLy8NCi0v
LyBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkNCi0vLw0KLS8vIEMr
K0J1aWxkZXIncyBJREUgY2Fubm90IGJ1aWxkIGEgc3RhdGljIGxpYnJhcnkgZnJvbSBmaWxlcyB3
aXRoIGh5cGhlbnMNCi0vLyBpbiB0aGVpciBuYW1lLiAgU2VlIGh0dHA6Ly9xYy5jb2RlZ2Vhci5j
b20vd2MvcWNtYWluLmFzcHg/ZD03MDk3NyAuDQotLy8gVGhpcyBmaWxlIHNlcnZlcyBhcyBhIHdv
cmthcm91bmQuDQotDQotI2luY2x1ZGUgInNyYy9ndGVzdC1hbGwuY2MiDQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2NvZGVnZWFyL2d0ZXN0X2xpbmsuY2MKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkxOGVjY2QxOWI3ZGFmYTMyYjUyOTM4MGI3MDkyMzhjOWUzYTM2
MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYworKysgL2Rldi9udWxs
CkBAIC0xLDQwICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLg0KLS8vIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQotLy8NCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0vLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
DQotLy8gbWV0Og0KLS8vDQotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0vLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KLS8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXINCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlDQotLy8gZGlzdHJpYnV0aW9uLg0KLS8vICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCi0vLyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQ0KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uDQotLy8NCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQotLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1INCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KLS8vIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QNCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwNCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCi0vLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQot
Ly8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFDQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCi0vLw0KLS8vIEF1dGhvcjogSm9zaCBL
ZWxsZXkgKGpvc2hrZWxAZ21haWwuY29tKQ0KLS8vDQotLy8gR29vZ2xlIEMrKyBUZXN0aW5nIEZy
YW1ld29yayAoR29vZ2xlIFRlc3QpDQotLy8NCi0vLyBMaW5rcyBndGVzdC5saWIgYW5kIGd0ZXN0
X21haW4ubGliIGludG8gdGhlIGN1cnJlbnQgcHJvamVjdCBpbiBDKytCdWlsZGVyLg0KLS8vIFRo
aXMgbWVhbnMgdGhhdCB0aGVzZSBsaWJyYXJpZXMgY2FuJ3QgYmUgcmVuYW1lZCwgYnV0IGl0J3Mg
dGhlIG9ubHkgd2F5IHRvDQotLy8gZW5zdXJlIHRoYXQgRGVidWcgdmVyc3VzIFJlbGVhc2UgdGVz
dCBidWlsZHMgYXJlIGxpbmtlZCBhZ2FpbnN0IHRoZQ0KLS8vIGFwcHJvcHJpYXRlIERlYnVnIG9y
IFJlbGVhc2UgYnVpbGQgb2YgdGhlIGxpYnJhcmllcy4NCi0NCi0jcHJhZ21hIGxpbmsgImd0ZXN0
LmxpYiINCi0jcHJhZ21hIGxpbmsgImd0ZXN0X21haW4ubGliIg0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2NvZGVnZWFyL2d0ZXN0X21haW4uY2Jwcm9qIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvY29kZWdlYXIvZ3Rlc3RfbWFpbi5jYnByb2oKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3NmNlMTM5OGZmMzkzMzMzMzc3MjVmNDQ2NmRhNTYzZTk4
MzM1ODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvY29kZWdlYXIvZ3Rlc3RfbWFpbi5jYnByb2oKKysrIC9k
ZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJ1dGYtOCI/Pg0KLTxQcm9qZWN0IHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29t
L2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KLSAgPFByb3BlcnR5R3JvdXA+DQotICAgIDxQcm9q
ZWN0R3VpZD57YmNhMzdhNzItNWIwNy00NmNmLWI0NGUtODlmOGUwNjQ1MWEyfTwvUHJvamVjdEd1
aWQ+DQotICAgIDxDb25maWcgQ29uZGl0aW9uPSInJChDb25maWcpJz09JyciPlJlbGVhc2U8L0Nv
bmZpZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlnKSc9PSdCYXNlJyBvciAnJChCYXNlKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwv
QmFzZT4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlnKSc9PSdEZWJ1Zycgb3IgJyQoQ2ZnXzEpJyE9JyciPg0KLSAgICA8QmFzZT50cnVl
PC9CYXNlPg0KLSAgICA8Q2ZnXzE+dHJ1ZTwvQ2ZnXzE+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwv
Q2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWcpJz09J1JlbGVhc2UnIG9yICckKENmZ18yKSchPScnIj4NCi0gICAgPEJh
c2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18yPnRydWU8L0NmZ18yPg0KLSAgICA8Q2ZnUGFyZW50
PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQmFzZSknIT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD50
cnVlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPE91dHB1dEV4dD5saWI8L091dHB1dEV4
dD4NCi0gICAgPERDQ19DQnVpbGRlck91dHB1dD5KUEhORTwvRENDX0NCdWlsZGVyT3V0cHV0Pg0K
LSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmluZXM+DQotICAgIDxEeW5hbWljUlRMPnRydWU8
L0R5bmFtaWNSVEw+DQotICAgIDxVc2VQYWNrYWdlcz50cnVlPC9Vc2VQYWNrYWdlcz4NCi0gICAg
PFByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8L1Byb2plY3RUeXBlPg0KLSAgICA8QkNDX0NQ
UENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENvbXBpbGVBbHdheXM+DQotICAgIDxQYWNrYWdl
SW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUuYnBpO3ZjbHguYnBpO3ZjbGFjdG5iYW5kLmJw
aTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJydGwuYnBpO3ZjbGRiLmJwaTtiZGVydGwuYnBpO3Zj
bGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJwaTt2Y2xpYi5icGk7aWJ4cHJlc3MuYnBpO2Fk
b3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3MuYnBpO0RieENvbW1vbkRyaXZlci5icGk7d2Vi
c25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJwaTtpbmV0LmJwaTtpbmV0ZGJiZGUuYnBpO2lu
ZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7UmF2ZTc1VkNMLmJwaTt0ZWVVSS5icGk7dGVlLmJw
aTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0luZHlTeXN0ZW0uYnBpO0luZHlQcm90b2NvbHMuYnBp
O0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRyYXdlYl85MF8xMDAuYnBpO2RjbFppcEZvcmdlZDEx
LmJwaTt2Y2xaaXBGb3JnZWQxMS5icGk7R1IzMl9CRFMyMDA2LmJwaTtHUjMyX0RTR05fQkRTMjAw
Ni5icGk7SmNsLmJwaTtKY2xWY2wuYnBpO0p2Q29yZUQxMVIuYnBpO0p2U3lzdGVtRDExUi5icGk7
SnZTdGRDdHJsc0QxMVIuYnBpO0p2QXBwRnJtRDExUi5icGk7SnZCYW5kc0QxMVIuYnBpO0p2REJE
MTFSLmJwaTtKdkRsZ3NEMTFSLmJwaTtKdkJERUQxMVIuYnBpO0p2Q21wRDExUi5icGk7SnZDcnlw
dEQxMVIuYnBpO0p2Q3RybHNEMTFSLmJwaTtKdkN1c3RvbUQxMVIuYnBpO0p2RG9ja2luZ0QxMVIu
YnBpO0p2RG90TmV0Q3RybHNEMTFSLmJwaTtKdkVESUQxMVIuYnBpO0p2R2xvYnVzRDExUi5icGk7
SnZITUlEMTFSLmJwaTtKdkludGVycHJldGVyRDExUi5icGk7SnZKYW5zRDExUi5icGk7SnZNYW5h
Z2VkVGhyZWFkc0QxMVIuYnBpO0p2TU1EMTFSLmJwaTtKdk5ldEQxMVIuYnBpO0p2UGFnZUNvbXBz
RDExUi5icGk7SnZQbHVnaW5EMTFSLmJwaTtKdlByaW50UHJldmlld0QxMVIuYnBpO0p2UnVudGlt
ZURlc2lnbkQxMVIuYnBpO0p2VGltZUZyYW1ld29ya0QxMVIuYnBpO0p2VmFsaWRhdG9yc0QxMVIu
YnBpO0p2V2l6YXJkRDExUi5icGk7SnZYUEN0cmxzRDExUi5icGk7VmNsU21wLmJwaTtDRXhjZXB0
aW9uRXhwZXJ0MTEuYnBpPC9QYWNrYWdlSW1wb3J0cz4NCi0gICAgPEJDQ193cGFyPmZhbHNlPC9C
Q0Nfd3Bhcj4NCi0gICAgPEluY2x1ZGVQYXRoPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRl
XGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9JbmNs
dWRlUGF0aD4NCi0gICAgPEFsbFBhY2thZ2VMaWJzPnJ0bC5saWI7dmNsLmxpYjwvQWxsUGFja2Fn
ZUxpYnM+DQotICAgIDxUTElCX1BhZ2VTaXplPjMyPC9UTElCX1BhZ2VTaXplPg0KLSAgICA8SUxJ
TktfTGlicmFyeVBhdGg+JChCRFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs8
L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDZmdfMSknIT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVl
ZD5mYWxzZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+DQotICAgIDxEQ0NfT3B0aW1pemU+ZmFsc2U8
L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1Z0luZm9JbkV4ZT50cnVlPC9EQ0NfRGVidWdJ
bmZvSW5FeGU+DQotICAgIDxEZWZpbmVzPl9ERUJVRzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAg
ICA8SUxJTktfRnVsbERlYnVnSW5mbz50cnVlPC9JTElOS19GdWxsRGVidWdJbmZvPg0KLSAgICA8
QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZhbHNlPC9CQ0NfSW5saW5lRnVuY3Rpb25FeHBh
bnNpb24+DQotICAgIDxJTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5nPnRydWU8L0lMSU5L
X0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+DQotICAgIDxCQ0NfVXNlUmVnaXN0ZXJWYXJpYWJs
ZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPg0KLSAgICA8RENDX0RlZmluZT5ERUJV
RzwvRENDX0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1Z0xpbmVOdW1iZXJzPnRydWU8L0JDQ19EZWJ1
Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPkRlYnVnPC9JbnRlcm1l
ZGlhdGVPdXRwdXREaXI+DQotICAgIDxUQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz50cnVlPC9UQVNN
X0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0gICAgPEJDQ19TdGFja0ZyYW1lcz50cnVlPC9CQ0NfU3Rh
Y2tGcmFtZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+dHJ1ZTwvQkNDX0Rpc2Fi
bGVPcHRpbWl6YXRpb25zPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxkZWJ1
ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0Rl
YnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4NCi0gICAgPEJDQ19Tb3VyY2VEZWJ1Z2dpbmdP
bj50cnVlPC9CQ0NfU291cmNlRGVidWdnaW5nT24+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENmZ18yKSchPScnIj4NCi0gICAgPERlZmluZXM+
TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+
UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+
JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJTktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0
aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPk5vbmU8L1RBU01fRGVidWdnaW5nPg0KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAgICA8Qm9ybGFuZC5QZXJzb25h
bGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0K
LSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBTdGF0aWNMaWJyYXJ5PC9Cb3JsYW5kLlByb2pl
Y3RUeXBlPg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+DQotPEJvcmxhbmRQcm9qZWN0PjxDUGx1c1Bs
dXNCdWlsZGVyLlBlcnNvbmFsaXR5PjxWZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iSW5j
bHVkZVZlckluZm8iPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQXV0b0lu
Y0J1aWxkIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9Ik1ham9yVmVyIj4x
PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWlub3JWZXIiPjA8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJSZWxlYXNlIj4wPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8g
TmFtZT0iQnVpbGQiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJEZWJ1ZyI+RmFs
c2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcmVSZWxlYXNlIj5GYWxzZTwvVmVy
c2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlNwZWNpYWwiPkZhbHNlPC9WZXJzaW9uSW5mbz48
VmVyc2lvbkluZm8gTmFtZT0iUHJpdmF0ZSI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5m
byBOYW1lPSJETEwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTG9jYWxl
Ij4xMDMzPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQ29kZVBhZ2UiPjEyNTI8L1Zl
cnNpb25JbmZvPjwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlz
IE5hbWU9IkNvbXBhbnlOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5h
bWU9IkZpbGVEZXNjcmlwdGlvbiI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBO
YW1lPSJGaWxlVmVyc2lvbiI+MS4wLjAuMDwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tl
eXMgTmFtZT0iSW50ZXJuYWxOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlz
IE5hbWU9IkxlZ2FsQ29weXJpZ2h0Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlz
IE5hbWU9IkxlZ2FsVHJhZGVtYXJrcyI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5
cyBOYW1lPSJPcmlnaW5hbEZpbGVuYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9L
ZXlzIE5hbWU9IlByb2R1Y3ROYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlz
IE5hbWU9IlByb2R1Y3RWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25J
bmZvS2V5cyBOYW1lPSJDb21tZW50cyI+PC9WZXJzaW9uSW5mb0tleXM+PC9WZXJzaW9uSW5mb0tl
eXM+PERlYnVnZ2luZz48RGVidWdnaW5nIE5hbWU9IkRlYnVnU291cmNlRGlycyI+PC9EZWJ1Z2dp
bmc+PC9EZWJ1Z2dpbmc+PFBhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUnVuUGFyYW1zIj48
L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFy
YW1ldGVycyBOYW1lPSJVc2VMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMg
TmFtZT0iRGVidWdDV0QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJIb3N0QXBwbGlj
YXRpb24iPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVIb3N0Ij48L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGF0aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0
ZXJzIE5hbWU9IlJlbW90ZVBhcmFtcyI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJl
bW90ZUxhdW5jaGVyIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iVXNlUmVtb3RlTGF1
bmNoZXIiPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUNXRCI+PC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZURlYnVnIj5GYWxzZTwvUGFyYW1ldGVy
cz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1ZyBTeW1ib2xzIFNlYXJjaCBQYXRoIj48L1BhcmFtZXRl
cnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZEFsbFN5bWJvbHMiPlRydWU8L1BhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iTG9hZFVuc3BlY2lmaWVkU3ltYm9scyI+RmFsc2U8L1BhcmFtZXRlcnM+
PC9QYXJhbWV0ZXJzPjxFeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICA8RXhjbHVkZWRfUGFja2Fn
ZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2UyazEwMC5icGwiPkNvZGVHZWFyIEMrK0J1aWxk
ZXIgT2ZmaWNlIDIwMDAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAg
ICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2V4cDEwMC5icGwi
PkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIFhQIFNlcnZlcnMgUGFja2FnZTwvRXhjbHVkZWRf
UGFja2FnZXM+DQotICAgIDwvRXhjbHVkZWRfUGFja2FnZXM+PExpbmtlcj48TGlua2VyIE5hbWU9
IkxpYlByZWZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJTdWZmaXgiPjwvTGlua2VyPjxM
aW5rZXIgTmFtZT0iTGliVmVyc2lvbiI+PC9MaW5rZXI+PC9MaW5rZXI+PFByb2plY3RQcm9wZXJ0
aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJBdXRvU2hvd0RlcHMiPkZhbHNlPC9Qcm9qZWN0
UHJvcGVydGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iTWFuYWdlUGF0aHMiPlRydWU8L1By
b2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJWZXJpZnlQYWNrYWdlcyI+
VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PC9Qcm9qZWN0UHJvcGVydGllcz48SGlzdG9yeUxpc3Rz
X2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9IkNvdW50Ij4z
PC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGgg
TmFtZT0iSXRlbTAiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChC
RFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNs
dWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTEiPiQoQkRTKVxp
bmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNy
YzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3Rz
X2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTIiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRl
XGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxzcmM7Li5caW5jbHVkZTwv
SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48
SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xp
YnJhcnlQYXRoIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0
aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxs
aWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrPC9IaXN0b3J5TGlzdHNfaGxJTElOS19M
aWJyYXJ5UGF0aD48L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlz
dHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9IkNvdW50Ij4xPC9IaXN0
b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0ZW0wIj5O
T19TVFJJQ1Q8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVz
PjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VT
aXplIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5
TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9Ikl0ZW0wIj4zMjwvSGlzdG9yeUxpc3RzX2hsVExJ
Ql9QYWdlU2l6ZT48SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZSBOYW1lPSJJdGVtMSI+MTY8
L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VT
aXplPjwvQ1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9y
bGFuZFByb2plY3Q+DQotICA8L1Byb2plY3RFeHRlbnNpb25zPg0KLSAgPEltcG9ydCBQcm9qZWN0
PSIkKE1TQnVpbGRCaW5QYXRoKVxCb3JsYW5kLkNwcC5UYXJnZXRzIiAvPg0KLSAgPEl0ZW1Hcm91
cD4NCi0gICAgPENwcENvbXBpbGUgSW5jbHVkZT0iLi5cc3JjXGd0ZXN0X21haW4uY2MiPg0KLSAg
ICAgIDxCdWlsZE9yZGVyPjA8L0J1aWxkT3JkZXI+DQotICAgIDwvQ3BwQ29tcGlsZT4NCi0gICAg
PEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1ZyI+DQotICAgICAgPEtleT5DZmdfMTwv
S2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlv
biBJbmNsdWRlPSJSZWxlYXNlIj4NCi0gICAgICA8S2V5PkNmZ18yPC9LZXk+DQotICAgIDwvQnVp
bGRDb25maWd1cmF0aW9uPg0KLSAgPC9JdGVtR3JvdXA+DQotPC9Qcm9qZWN0Pg0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2NvZGVnZWFyL2d0ZXN0X3VuaXR0ZXN0LmNi
cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2NvZGVnZWFyL2d0ZXN0X3VuaXR0ZXN0
LmNicHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM1ZGI4ZTRkYTU5NDU3ZmM4
ZWZhYTJkNmNjZWE4N2M2Yjg0ZGJkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jb2RlZ2Vhci9ndGVzdF91
bml0dGVzdC5jYnByb2oKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi3vu788P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KLTxQcm9qZWN0IHhtbG5zPSJodHRwOi8v
c2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KLSAgPFByb3Bl
cnR5R3JvdXA+DQotICAgIDxQcm9qZWN0R3VpZD57ZWVhNjMzOTMtNWFjNS00YjljLTg5MDktZDc1
ZmVmMmRhYTQxfTwvUHJvamVjdEd1aWQ+DQotICAgIDxDb25maWcgQ29uZGl0aW9uPSInJChDb25m
aWcpJz09JyciPlJlbGVhc2U8L0NvbmZpZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9w
ZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdCYXNlJyBvciAnJChCYXNlKSchPScn
Ij4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9w
ZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdEZWJ1Zycgb3IgJyQoQ2ZnXzEpJyE9
JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzE+dHJ1ZTwvQ2ZnXzE+DQot
ICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J1JlbGVhc2UnIG9yICckKENm
Z18yKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18yPnRydWU8L0Nm
Z18yPg0KLSAgICA8Q2ZnUGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVydHlHcm91
cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQmFzZSknIT0nJyI+DQotICAgIDxP
dXRwdXRFeHQ+ZXhlPC9PdXRwdXRFeHQ+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD50cnVl
PC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPERlZmluZXM+Tk9fU1RSSUNUPC9EZWZpbmVz
Pg0KLSAgICA8RENDX0NCdWlsZGVyT3V0cHV0PkpQSE5FPC9EQ0NfQ0J1aWxkZXJPdXRwdXQ+DQot
ICAgIDxEeW5hbWljUlRMPnRydWU8L0R5bmFtaWNSVEw+DQotICAgIDxJTElOS19PYmplY3RTZWFy
Y2hQYXRoPi4uXHRlc3Q8L0lMSU5LX09iamVjdFNlYXJjaFBhdGg+DQotICAgIDxVc2VQYWNrYWdl
cz50cnVlPC9Vc2VQYWNrYWdlcz4NCi0gICAgPFByb2plY3RUeXBlPkNwcENvbnNvbGVBcHBsaWNh
dGlvbjwvUHJvamVjdFR5cGU+DQotICAgIDxOb1ZDTD50cnVlPC9Ob1ZDTD4NCi0gICAgPEJDQ19D
UFBDb21waWxlQWx3YXlzPnRydWU8L0JDQ19DUFBDb21waWxlQWx3YXlzPg0KLSAgICA8UGFja2Fn
ZUltcG9ydHM+cnRsLmJwaTt2Y2wuYnBpO2JjYmllLmJwaTt2Y2x4LmJwaTt2Y2xhY3RuYmFuZC5i
cGk7eG1scnRsLmJwaTtiY2JzbXAuYnBpO2RicnRsLmJwaTt2Y2xkYi5icGk7YmRlcnRsLmJwaTt2
Y2xkYnguYnBpO2RzbmFwLmJwaTtkc25hcGNvbi5icGk7dmNsaWIuYnBpO2lieHByZXNzLmJwaTth
ZG9ydGwuYnBpO2RieGNkcy5icGk7ZGJleHByZXNzLmJwaTtEYnhDb21tb25Ecml2ZXIuYnBpO3dl
YnNuYXAuYnBpO3ZjbGllLmJwaTt3ZWJkc25hcC5icGk7aW5ldC5icGk7aW5ldGRiYmRlLmJwaTtp
bmV0ZGJ4cHJlc3MuYnBpO3NvYXBydGwuYnBpO1JhdmU3NVZDTC5icGk7dGVlVUkuYnBpO3RlZS5i
cGk7dGVlZGIuYnBpO0luZHlDb3JlLmJwaTtJbmR5U3lzdGVtLmJwaTtJbmR5UHJvdG9jb2xzLmJw
aTtJbnRyYXdlYkRCXzkwXzEwMC5icGk7SW50cmF3ZWJfOTBfMTAwLmJwaTtKY2wuYnBpO0pjbFZj
bC5icGk7SnZDb3JlRDExUi5icGk7SnZTeXN0ZW1EMTFSLmJwaTtKdlN0ZEN0cmxzRDExUi5icGk7
SnZBcHBGcm1EMTFSLmJwaTtKdkJhbmRzRDExUi5icGk7SnZEQkQxMVIuYnBpO0p2RGxnc0QxMVIu
YnBpO0p2QkRFRDExUi5icGk7SnZDbXBEMTFSLmJwaTtKdkNyeXB0RDExUi5icGk7SnZDdHJsc0Qx
MVIuYnBpO0p2Q3VzdG9tRDExUi5icGk7SnZEb2NraW5nRDExUi5icGk7SnZEb3ROZXRDdHJsc0Qx
MVIuYnBpO0p2RURJRDExUi5icGk7SnZHbG9idXNEMTFSLmJwaTtKdkhNSUQxMVIuYnBpO0p2SW50
ZXJwcmV0ZXJEMTFSLmJwaTtKdkphbnNEMTFSLmJwaTtKdk1hbmFnZWRUaHJlYWRzRDExUi5icGk7
SnZNTUQxMVIuYnBpO0p2TmV0RDExUi5icGk7SnZQYWdlQ29tcHNEMTFSLmJwaTtKdlBsdWdpbkQx
MVIuYnBpO0p2UHJpbnRQcmV2aWV3RDExUi5icGk7SnZSdW50aW1lRGVzaWduRDExUi5icGk7SnZU
aW1lRnJhbWV3b3JrRDExUi5icGk7SnZWYWxpZGF0b3JzRDExUi5icGk7SnZXaXphcmREMTFSLmJw
aTtKdlhQQ3RybHNEMTFSLmJwaTtWY2xTbXAuYnBpPC9QYWNrYWdlSW1wb3J0cz4NCi0gICAgPEJD
Q193cGFyPmZhbHNlPC9CQ0Nfd3Bhcj4NCi0gICAgPEluY2x1ZGVQYXRoPiQoQkRTKVxpbmNsdWRl
OyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXGluY2x1ZGU7
Li5cdGVzdDsuLjwvSW5jbHVkZVBhdGg+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJEUylc
bGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazsuLlx0ZXN0PC9JTElOS19MaWJyYXJ5
UGF0aD4NCi0gICAgPE11bHRpdGhyZWFkZWQ+dHJ1ZTwvTXVsdGl0aHJlYWRlZD4NCi0gIDwvUHJv
cGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ2ZnXzEpJyE9Jyci
Pg0KLSAgICA8QkNDX09wdGltaXplRm9yU3BlZWQ+ZmFsc2U8L0JDQ19PcHRpbWl6ZUZvclNwZWVk
Pg0KLSAgICA8RENDX09wdGltaXplPmZhbHNlPC9EQ0NfT3B0aW1pemU+DQotICAgIDxEQ0NfRGVi
dWdJbmZvSW5FeGU+dHJ1ZTwvRENDX0RlYnVnSW5mb0luRXhlPg0KLSAgICA8RGVmaW5lcz5fREVC
VUc7JChEZWZpbmVzKTwvRGVmaW5lcz4NCi0gICAgPElMSU5LX0Z1bGxEZWJ1Z0luZm8+dHJ1ZTwv
SUxJTktfRnVsbERlYnVnSW5mbz4NCi0gICAgPEJDQ19JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5m
YWxzZTwvQkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPg0KLSAgICA8SUxJTktfRGlzYWJsZUlu
Y3JlbWVudGFsTGlua2luZz50cnVlPC9JTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5nPg0K
LSAgICA8QkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPk5vbmU8L0JDQ19Vc2VSZWdpc3RlclZhcmlh
Ymxlcz4NCi0gICAgPERDQ19EZWZpbmU+REVCVUc8L0RDQ19EZWZpbmU+DQotICAgIDxCQ0NfRGVi
dWdMaW5lTnVtYmVycz50cnVlPC9CQ0NfRGVidWdMaW5lTnVtYmVycz4NCi0gICAgPEludGVybWVk
aWF0ZU91dHB1dERpcj5EZWJ1ZzwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8VEFTTV9E
aXNwbGF5U291cmNlTGluZXM+dHJ1ZTwvVEFTTV9EaXNwbGF5U291cmNlTGluZXM+DQotICAgIDxC
Q0NfU3RhY2tGcmFtZXM+dHJ1ZTwvQkNDX1N0YWNrRnJhbWVzPg0KLSAgICA8QkNDX0Rpc2FibGVP
cHRpbWl6YXRpb25zPnRydWU8L0JDQ19EaXNhYmxlT3B0aW1pemF0aW9ucz4NCi0gICAgPElMSU5L
X0xpYnJhcnlQYXRoPiQoQkRTKVxsaWJcZGVidWc7JChJTElOS19MaWJyYXJ5UGF0aCk8L0lMSU5L
X0xpYnJhcnlQYXRoPg0KLSAgICA8VEFTTV9EZWJ1Z2dpbmc+RnVsbDwvVEFTTV9EZWJ1Z2dpbmc+
DQotICAgIDxCQ0NfU291cmNlRGVidWdnaW5nT24+dHJ1ZTwvQkNDX1NvdXJjZURlYnVnZ2luZ09u
Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
ZmdfMiknIT0nJyI+DQotICAgIDxEZWZpbmVzPk5ERUJVRzskKERlZmluZXMpPC9EZWZpbmVzPg0K
LSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPlJlbGVhc2U8L0ludGVybWVkaWF0ZU91dHB1dERp
cj4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWJccmVsZWFzZTskKElMSU5LX0xp
YnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5Ob25l
PC9UQVNNX0RlYnVnZ2luZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9qZWN0RXh0ZW5z
aW9ucz4NCi0gICAgPEJvcmxhbmQuUGVyc29uYWxpdHk+Q1BsdXNQbHVzQnVpbGRlci5QZXJzb25h
bGl0eTwvQm9ybGFuZC5QZXJzb25hbGl0eT4NCi0gICAgPEJvcmxhbmQuUHJvamVjdFR5cGU+Q3Bw
Q29uc29sZUFwcGxpY2F0aW9uPC9Cb3JsYW5kLlByb2plY3RUeXBlPg0KLSAgICA8Qm9ybGFuZFBy
b2plY3Q+DQotPEJvcmxhbmRQcm9qZWN0PjxDUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjxW
ZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iSW5jbHVkZVZlckluZm8iPkZhbHNlPC9WZXJz
aW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQXV0b0luY0J1aWxkIj5GYWxzZTwvVmVyc2lvbklu
Zm8+PFZlcnNpb25JbmZvIE5hbWU9Ik1ham9yVmVyIj4xPC9WZXJzaW9uSW5mbz48VmVyc2lvbklu
Zm8gTmFtZT0iTWlub3JWZXIiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJSZWxl
YXNlIj4wPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQnVpbGQiPjA8L1ZlcnNpb25J
bmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJEZWJ1ZyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9u
SW5mbyBOYW1lPSJQcmVSZWxlYXNlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5h
bWU9IlNwZWNpYWwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUHJpdmF0
ZSI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJETEwiPkZhbHNlPC9WZXJz
aW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTG9jYWxlIj4xMDMzPC9WZXJzaW9uSW5mbz48VmVy
c2lvbkluZm8gTmFtZT0iQ29kZVBhZ2UiPjEyNTI8L1ZlcnNpb25JbmZvPjwvVmVyc2lvbkluZm8+
PFZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbXBhbnlOYW1lIj48L1Zl
cnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVEZXNjcmlwdGlvbiI+PC9W
ZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJGaWxlVmVyc2lvbiI+MS4wLjAu
MDwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iSW50ZXJuYWxOYW1lIj48
L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsQ29weXJpZ2h0Ij48
L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsVHJhZGVtYXJrcyI+
PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJPcmlnaW5hbEZpbGVuYW1l
Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3ROYW1lIj48
L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3RWZXJzaW9uIj4x
LjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJDb21tZW50cyI+
PC9WZXJzaW9uSW5mb0tleXM+PC9WZXJzaW9uSW5mb0tleXM+PERlYnVnZ2luZz48RGVidWdnaW5n
IE5hbWU9IkRlYnVnU291cmNlRGlycyI+PC9EZWJ1Z2dpbmc+PC9EZWJ1Z2dpbmc+PFBhcmFtZXRl
cnM+PFBhcmFtZXRlcnMgTmFtZT0iUnVuUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMg
TmFtZT0iTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VMYXVuY2hl
ciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iRGVidWdDV0QiPjwvUGFyYW1l
dGVycz48UGFyYW1ldGVycyBOYW1lPSJIb3N0QXBwbGljYXRpb24iPjwvUGFyYW1ldGVycz48UGFy
YW1ldGVycyBOYW1lPSJSZW1vdGVIb3N0Ij48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0i
UmVtb3RlUGF0aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZVBhcmFtcyI+
PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUxhdW5jaGVyIj48L1BhcmFtZXRl
cnM+PFBhcmFtZXRlcnMgTmFtZT0iVXNlUmVtb3RlTGF1bmNoZXIiPkZhbHNlPC9QYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUNXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5h
bWU9IlJlbW90ZURlYnVnIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1
ZyBTeW1ib2xzIFNlYXJjaCBQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9h
ZEFsbFN5bWJvbHMiPlRydWU8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZFVuc3Bl
Y2lmaWVkU3ltYm9scyI+RmFsc2U8L1BhcmFtZXRlcnM+PC9QYXJhbWV0ZXJzPjxFeGNsdWRlZF9Q
YWNrYWdlcz4NCi0gICAgICANCi0gICAgICANCi0gICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFt
ZT0iJChCRFMpXGJpblxiY2JvZmZpY2UyazEwMC5icGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2Zm
aWNlIDIwMDAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICA8RXhj
bHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2V4cDEwMC5icGwiPkNvZGVH
ZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIFhQIFNlcnZlcnMgUGFja2FnZTwvRXhjbHVkZWRfUGFja2Fn
ZXM+DQotICAgIDwvRXhjbHVkZWRfUGFja2FnZXM+PExpbmtlcj48TGlua2VyIE5hbWU9IkxpYlBy
ZWZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJTdWZmaXgiPjwvTGlua2VyPjxMaW5rZXIg
TmFtZT0iTGliVmVyc2lvbiI+PC9MaW5rZXI+PC9MaW5rZXI+PFByb2plY3RQcm9wZXJ0aWVzPjxQ
cm9qZWN0UHJvcGVydGllcyBOYW1lPSJBdXRvU2hvd0RlcHMiPkZhbHNlPC9Qcm9qZWN0UHJvcGVy
dGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iTWFuYWdlUGF0aHMiPlRydWU8L1Byb2plY3RQ
cm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJWZXJpZnlQYWNrYWdlcyI+VHJ1ZTwv
UHJvamVjdFByb3BlcnRpZXM+PC9Qcm9qZWN0UHJvcGVydGllcz48SGlzdG9yeUxpc3RzX2hsSW5j
bHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9IkNvdW50Ij4zPC9IaXN0
b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0i
SXRlbTAiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGlu
Y2x1ZGVcdmNsOy4uXGluY2x1ZGU7Li5cdGVzdDsuLjwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0xIj4kKEJEUylcaW5jbHVk
ZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxpbmNsdWRl
Oy4uXHRlc3Q8L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNs
dWRlUGF0aCBOYW1lPSJJdGVtMiI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vt
d2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5caW5jbHVkZTwvSGlzdG9yeUxpc3RzX2hsSW5jbHVk
ZVBhdGg+PC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktf
TGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9IkNvdW50
Ij4xPC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJ
TktfTGlicmFyeVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChC
RFMpXGxpYlxwc2RrOy4uXHRlc3Q8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxI
aXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJdGVtMSI+JChCRFMpXGxpYjsk
KEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSUxJ
TktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9Ikl0
ZW0yIj4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazskKE9VVFBVVERJ
Uik7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PC9IaXN0b3J5TGlz
dHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48SGlzdG9yeUxp
c3RzX2hsRGVmaW5lcyBOYW1lPSJDb3VudCI+MjwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48SGlz
dG9yeUxpc3RzX2hsRGVmaW5lcyBOYW1lPSJJdGVtMCI+Tk9fU1RSSUNUPC9IaXN0b3J5TGlzdHNf
aGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0ZW0xIj5TVFJJQ1Q8L0hp
c3RvcnlMaXN0c19obERlZmluZXM+PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjwvQ1BsdXNQbHVz
QnVpbGRlci5QZXJzb25hbGl0eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+DQot
ICA8L1Byb2plY3RFeHRlbnNpb25zPg0KLSAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5Q
YXRoKVxCb3JsYW5kLkNwcC5UYXJnZXRzIiAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0gICAgPENwcENv
bXBpbGUgSW5jbHVkZT0iLi5cdGVzdFxndGVzdF91bml0dGVzdC5jYyI+DQotICAgICAgPEJ1aWxk
T3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAgPC9DcHBDb21waWxlPg0KLSAgICA8Q3BwQ29tcGls
ZSBJbmNsdWRlPSJndGVzdF9saW5rLmNjIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xPC9CdWlsZE9y
ZGVyPg0KLSAgICA8L0NwcENvbXBpbGU+DQotICAgIDxCdWlsZENvbmZpZ3VyYXRpb24gSW5jbHVk
ZT0iRGVidWciPg0KLSAgICAgIDxLZXk+Q2ZnXzE8L0tleT4NCi0gICAgPC9CdWlsZENvbmZpZ3Vy
YXRpb24+DQotICAgIDxCdWlsZENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZSI+DQotICAg
ICAgPEtleT5DZmdfMjwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gIDwvSXRl
bUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9jb25maWd1cmUuYWMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRf
cGFydHkvZ29vZ2xldGVzdC9jb25maWd1cmUuYWMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI1NGM4YzRiMzE4ODVkMjU3MWZhMjMwMGI2MzFlOGJmOWQ5NWFlMDcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvY29uZmlndXJlLmFjCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotbTRfaW5j
bHVkZShtNC9hY3hfcHRocmVhZC5tNCkKLQotIyBBdCB0aGlzIHBvaW50LCB0aGUgWGNvZGUgcHJv
amVjdCBhc3N1bWVzIHRoZSB2ZXJzaW9uIHN0cmluZyB3aWxsIGJlIHRocmVlCi0jIGludGVnZXJz
IHNlcGFyYXRlZCBieSBwZXJpb2RzIGFuZCBzdXJyb3VuZGVkIGJ5IHNxdWFyZSBicmFja2V0cyAo
ZS5nLgotIyAiWzEuMC4xXSIpLiBJdCBhbHNvIGFzdW1lcyB0aGF0IHRoZXJlIHdvbid0IGJlIGFu
eSBjbG9zaW5nIHBhcmVudGhlc2lzCi0jIGJldHdlZW4gIkFDX0lOSVQoIiBhbmQgdGhlIGNsb3Np
bmcgIikiIGluY2x1ZGluZyBjb21tZW50cyBhbmQgc3RyaW5ncy4KLUFDX0lOSVQoW0dvb2dsZSBD
KysgVGVzdGluZyBGcmFtZXdvcmtdLAotICAgICAgICBbMS44LjBdLAotICAgICAgICBbZ29vZ2xl
dGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tXSwKLSAgICAgICAgW2d0ZXN0XSkKLQotIyBQ
cm92aWRlIHZhcmlvdXMgb3B0aW9ucyB0byBpbml0aWFsaXplIHRoZSBBdXRvY29uZiBhbmQgY29u
ZmlndXJlIHByb2Nlc3Nlcy4KLUFDX1BSRVJFUShbMi41OV0pCi1BQ19DT05GSUdfU1JDRElSKFsu
L0xJQ0VOU0VdKQotQUNfQ09ORklHX01BQ1JPX0RJUihbbTRdKQotQUNfQ09ORklHX0FVWF9ESVIo
W2J1aWxkLWF1eF0pCi1BQ19DT05GSUdfSEVBREVSUyhbYnVpbGQtYXV4L2NvbmZpZy5oXSkKLUFD
X0NPTkZJR19GSUxFUyhbTWFrZWZpbGVdKQotQUNfQ09ORklHX0ZJTEVTKFtzY3JpcHRzL2d0ZXN0
LWNvbmZpZ10sIFtjaG1vZCAreCBzY3JpcHRzL2d0ZXN0LWNvbmZpZ10pCi0KLSMgSW5pdGlhbGl6
ZSBBdXRvbWFrZSB3aXRoIHZhcmlvdXMgb3B0aW9ucy4gV2UgcmVxdWlyZSBhdCBsZWFzdCB2MS45
LCBwcmV2ZW50Ci0jIHBlZGFudGljIGNvbXBsYWludHMgYWJvdXQgcGFja2FnZSBmaWxlcywgYW5k
IGVuYWJsZSB2YXJpb3VzIGRpc3RyaWJ1dGlvbgotIyB0YXJnZXRzLgotQU1fSU5JVF9BVVRPTUFL
RShbMS45IGRpc3QtYnppcDIgZGlzdC16aXAgZm9yZWlnbiBzdWJkaXItb2JqZWN0c10pCi0KLSMg
Q2hlY2sgZm9yIHByb2dyYW1zIHVzZWQgaW4gYnVpbGRpbmcgR29vZ2xlIFRlc3QuCi1BQ19QUk9H
X0NDCi1BQ19QUk9HX0NYWAotQUNfTEFORyhbQysrXSkKLUFDX1BST0dfTElCVE9PTAotCi0jIFRP
RE8oY2hhbmRsZXJjQGdvb2dsZS5jb20pOiBDdXJyZW50bHkgd2UgYXJlbid0IHJ1bm5pbmcgdGhl
IFB5dGhvbiB0ZXN0cwotIyBhZ2FpbnN0IHRoZSBpbnRlcnByZXRlciBkZXRlY3RlZCBieSBBTV9Q
QVRIX1BZVEhPTiwgYW5kIHNvIHdlIGNvbmRpdGlvbgotIyBIQVZFX1BZVEhPTiBieSByZXF1aXJp
bmcgInB5dGhvbiIgdG8gYmUgaW4gdGhlIFBBVEgsIGFuZCB0aGF0IGludGVycHJldGVyJ3MKLSMg
dmVyc2lvbiB0byBiZSA+PSAyLjMuIFRoaXMgd2lsbCBhbGxvdyB0aGUgc2NyaXB0cyB0byB1c2Ug
YSAiL3Vzci9iaW4vZW52IgotIyBoYXNoYmFuZy4KLVBZVEhPTj0gICMgV2UgKmRvIG5vdCogYWxs
b3cgdGhlIHVzZXIgdG8gc3BlY2lmeSBhIHB5dGhvbiBpbnRlcnByZXRlcgotQUNfUEFUSF9QUk9H
KFtQWVRIT05dLFtweXRob25dLFs6XSkKLUFTX0lGKFt0ZXN0ICIkUFlUSE9OIiAhPSAiOiJdLAot
ICAgICAgW0FNX1BZVEhPTl9DSEVDS19WRVJTSU9OKFskUFlUSE9OXSxbMi4zXSxbOl0sW1BZVEhP
Tj0iOiJdKV0pCi1BTV9DT05ESVRJT05BTChbSEFWRV9QWVRIT05dLFt0ZXN0ICIkUFlUSE9OIiAh
PSAiOiJdKQotCi0jIENvbmZpZ3VyZSBwdGhyZWFkcy4KLUFDX0FSR19XSVRIKFtwdGhyZWFkc10s
Ci0gICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1wdGhyZWFkc10sCi0gICAgICAg
ICAgICAgICBbdXNlIHB0aHJlYWRzIChkZWZhdWx0IGlzIHllcyldKV0sCi0gICAgICAgICAgICBb
d2l0aF9wdGhyZWFkcz0kd2l0aHZhbF0sCi0gICAgICAgICAgICBbd2l0aF9wdGhyZWFkcz1jaGVj
a10pCi0KLWhhdmVfcHRocmVhZHM9bm8KLUFTX0lGKFt0ZXN0ICJ4JHdpdGhfcHRocmVhZHMiICE9
ICJ4bm8iXSwKLSAgICAgIFtBQ1hfUFRIUkVBRCgKLSAgICAgICAgW10sCi0gICAgICAgIFtBU19J
RihbdGVzdCAieCR3aXRoX3B0aHJlYWRzIiAhPSAieGNoZWNrIl0sCi0gICAgICAgICAgICAgICBb
QUNfTVNHX0ZBSUxVUkUoCi0gICAgICAgICAgICAgICAgIFstLXdpdGgtcHRocmVhZHMgd2FzIHNw
ZWNpZmllZCwgYnV0IHVuYWJsZSB0byBiZSB1c2VkXSldKV0pCi0gICAgICAgaGF2ZV9wdGhyZWFk
cz0iJGFjeF9wdGhyZWFkX29rIl0pCi1BTV9DT05ESVRJT05BTChbSEFWRV9QVEhSRUFEU10sW3Rl
c3QgIngkaGF2ZV9wdGhyZWFkcyIgPSAieHllcyJdKQotQUNfU1VCU1QoUFRIUkVBRF9DRkxBR1Mp
Ci1BQ19TVUJTVChQVEhSRUFEX0xJQlMpCi0KLSMgVE9ETyhjaGFuZGxlcmNAZ29vZ2xlLmNvbSkg
Q2hlY2sgZm9yIHRoZSBuZWNlc3Nhcnkgc3lzdGVtIGhlYWRlcnMuCi0KLSMgVE9ETyhjaGFuZGxl
cmNAZ29vZ2xlLmNvbSkgQ2hlY2sgdGhlIHR5cGVzLCBzdHJ1Y3R1cmVzLCBhbmQgb3RoZXIgY29t
cGlsZXIKLSMgYW5kIGFyY2hpdGVjdHVyZSBjaGFyYWN0ZXJpc3RpY3MuCi0KLSMgT3V0cHV0IHRo
ZSBnZW5lcmF0ZWQgZmlsZXMuIE5vIGZ1cnRoZXIgYXV0b2NvbmYgbWFjcm9zIG1heSBiZSB1c2Vk
LgotQUNfT1VUUFVUCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9kb2Nz
L0FkdmFuY2VkR3VpZGUubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9kb2NzL0FkdmFu
Y2VkR3VpZGUubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ZGQ5NGRlZTNkNTEz
ZTVhYzFmYTY3MDY2NWQ4NjQ5N2U1NDYxZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvZG9jcy9BZHZhbmNl
ZEd1aWRlLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMjE4MiArMCwwIEBACi0KLQotTm93IHRoYXQg
eW91IGhhdmUgcmVhZCBbUHJpbWVyXShQcmltZXIubWQpIGFuZCBsZWFybmVkIGhvdyB0byB3cml0
ZSB0ZXN0cwotdXNpbmcgR29vZ2xlIFRlc3QsIGl0J3MgdGltZSB0byBsZWFybiBzb21lIG5ldyB0
cmlja3MuIFRoaXMgZG9jdW1lbnQKLXdpbGwgc2hvdyB5b3UgbW9yZSBhc3NlcnRpb25zIGFzIHdl
bGwgYXMgaG93IHRvIGNvbnN0cnVjdCBjb21wbGV4Ci1mYWlsdXJlIG1lc3NhZ2VzLCBwcm9wYWdh
dGUgZmF0YWwgZmFpbHVyZXMsIHJldXNlIGFuZCBzcGVlZCB1cCB5b3VyCi10ZXN0IGZpeHR1cmVz
LCBhbmQgdXNlIHZhcmlvdXMgZmxhZ3Mgd2l0aCB5b3VyIHRlc3RzLgotCi0jIE1vcmUgQXNzZXJ0
aW9ucyAjCi0KLVRoaXMgc2VjdGlvbiBjb3ZlcnMgc29tZSBsZXNzIGZyZXF1ZW50bHkgdXNlZCwg
YnV0IHN0aWxsIHNpZ25pZmljYW50LAotYXNzZXJ0aW9ucy4KLQotIyMgRXhwbGljaXQgU3VjY2Vz
cyBhbmQgRmFpbHVyZSAjIwotCi1UaGVzZSB0aHJlZSBhc3NlcnRpb25zIGRvIG5vdCBhY3R1YWxs
eSB0ZXN0IGEgdmFsdWUgb3IgZXhwcmVzc2lvbi4gSW5zdGVhZCwKLXRoZXkgZ2VuZXJhdGUgYSBz
dWNjZXNzIG9yIGZhaWx1cmUgZGlyZWN0bHkuIExpa2UgdGhlIG1hY3JvcyB0aGF0IGFjdHVhbGx5
Ci1wZXJmb3JtIGEgdGVzdCwgeW91IG1heSBzdHJlYW0gYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdl
IGludG8gdGhlbS4KLQotfCBgU1VDQ0VFRCgpO2AgfAotfDotLS0tLS0tLS0tLS0tfAotCi1HZW5l
cmF0ZXMgYSBzdWNjZXNzLiBUaGlzIGRvZXMgTk9UIG1ha2UgdGhlIG92ZXJhbGwgdGVzdCBzdWNj
ZWVkLiBBIHRlc3QgaXMKLWNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBvbmx5IGlmIG5vbmUgb2YgaXRz
IGFzc2VydGlvbnMgZmFpbCBkdXJpbmcgaXRzIGV4ZWN1dGlvbi4KLQotTm90ZTogYFNVQ0NFRUQo
KWAgaXMgcHVyZWx5IGRvY3VtZW50YXJ5IGFuZCBjdXJyZW50bHkgZG9lc24ndCBnZW5lcmF0ZSBh
bnkKLXVzZXItdmlzaWJsZSBvdXRwdXQuIEhvd2V2ZXIsIHdlIG1heSBhZGQgYFNVQ0NFRUQoKWAg
bWVzc2FnZXMgdG8gR29vZ2xlIFRlc3Qncwotb3V0cHV0IGluIHRoZSBmdXR1cmUuCi0KLXwgYEZB
SUwoKTtgICB8IGBBRERfRkFJTFVSRSgpO2AgfCBgQUREX0ZBSUxVUkVfQVQoImBfZmlsZVxfcGF0
aF9gIiwgYF9saW5lXF9udW1iZXJfYCk7YCB8Ci18Oi0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0t
LS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tfAotCi1gRkFJTCgpYCBnZW5lcmF0ZXMgYSBmYXRhbCBmYWlsdXJlLCB3aGlsZSBgQUREX0ZB
SUxVUkUoKWAgYW5kIGBBRERfRkFJTFVSRV9BVCgpYCBnZW5lcmF0ZSBhIG5vbmZhdGFsCi1mYWls
dXJlLiBUaGVzZSBhcmUgdXNlZnVsIHdoZW4gY29udHJvbCBmbG93LCByYXRoZXIgdGhhbiBhIEJv
b2xlYW4gZXhwcmVzc2lvbiwKLWRldGVybWluZXMgdGhlIHRlc3QncyBzdWNjZXNzIG9yIGZhaWx1
cmUuIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgd2FudCB0byB3cml0ZQotc29tZXRoaW5nIGxpa2U6
Ci0KLWBgYAotc3dpdGNoKGV4cHJlc3Npb24pIHsKLSAgY2FzZSAxOiAuLi4gc29tZSBjaGVja3Mg
Li4uCi0gIGNhc2UgMjogLi4uIHNvbWUgb3RoZXIgY2hlY2tzCi0gIC4uLgotICBkZWZhdWx0OiBG
QUlMKCkgPDwgIldlIHNob3VsZG4ndCBnZXQgaGVyZS4iOwotfQotYGBgCi0KLU5vdGU6IHlvdSBj
YW4gb25seSB1c2UgYEZBSUwoKWAgaW4gZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGB2b2lkYC4gU2Vl
IHRoZSBbQXNzZXJ0aW9uIFBsYWNlbWVudCBzZWN0aW9uXSgjYXNzZXJ0aW9uLXBsYWNlbWVudCkg
Zm9yIG1vcmUgaW5mb3JtYXRpb24uCi0KLV9BdmFpbGFiaWxpdHlfOiBMaW51eCwgV2luZG93cywg
TWFjLgotCi0jIyBFeGNlcHRpb24gQXNzZXJ0aW9ucyAjIwotCi1UaGVzZSBhcmUgZm9yIHZlcmlm
eWluZyB0aGF0IGEgcGllY2Ugb2YgY29kZSB0aHJvd3MgKG9yIGRvZXMgbm90Ci10aHJvdykgYW4g
ZXhjZXB0aW9uIG9mIHRoZSBnaXZlbiB0eXBlOgotCi18ICoqRmF0YWwgYXNzZXJ0aW9uKiogfCAq
Kk5vbmZhdGFsIGFzc2VydGlvbioqIHwgKipWZXJpZmllcyoqIHwKLXw6LS0tLS0tLS0tLS0tLS0t
LS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tfAotfCBgQVNTRVJU
X1RIUk9XKGBfc3RhdGVtZW50XywgX2V4Y2VwdGlvblxfdHlwZV9gKTtgICB8IGBFWFBFQ1RfVEhS
T1coYF9zdGF0ZW1lbnRfLCBfZXhjZXB0aW9uXF90eXBlX2ApO2AgIHwgX3N0YXRlbWVudF8gdGhy
b3dzIGFuIGV4Y2VwdGlvbiBvZiB0aGUgZ2l2ZW4gdHlwZSAgfAotfCBgQVNTRVJUX0FOWV9USFJP
VyhgX3N0YXRlbWVudF9gKTtgICAgICAgICAgICAgICAgIHwgYEVYUEVDVF9BTllfVEhST1coYF9z
dGF0ZW1lbnRfYCk7YCAgICAgICAgICAgICAgICB8IF9zdGF0ZW1lbnRfIHRocm93cyBhbiBleGNl
cHRpb24gb2YgYW55IHR5cGUgICAgICAgIHwKLXwgYEFTU0VSVF9OT19USFJPVyhgX3N0YXRlbWVu
dF9gKTtgICAgICAgICAgICAgICAgICB8IGBFWFBFQ1RfTk9fVEhST1coYF9zdGF0ZW1lbnRfYCk7
YCAgICAgICAgICAgICAgICAgfCBfc3RhdGVtZW50XyBkb2Vzbid0IHRocm93IGFueSBleGNlcHRp
b24gICAgICAgICAgICB8Ci0KLUV4YW1wbGVzOgotCi1gYGAKLUFTU0VSVF9USFJPVyhGb28oNSks
IGJhcl9leGNlcHRpb24pOwotCi1FWFBFQ1RfTk9fVEhST1coewotICBpbnQgbiA9IDU7Ci0gIEJh
cigmbik7Ci19KTsKLWBgYAotCi1fQXZhaWxhYmlsaXR5XzogTGludXgsIFdpbmRvd3MsIE1hYzsg
c2luY2UgdmVyc2lvbiAxLjEuMC4KLQotIyMgUHJlZGljYXRlIEFzc2VydGlvbnMgZm9yIEJldHRl
ciBFcnJvciBNZXNzYWdlcyAjIwotCi1FdmVuIHRob3VnaCBHb29nbGUgVGVzdCBoYXMgYSByaWNo
IHNldCBvZiBhc3NlcnRpb25zLCB0aGV5IGNhbiBuZXZlciBiZQotY29tcGxldGUsIGFzIGl0J3Mg
aW1wb3NzaWJsZSAobm9yIGEgZ29vZCBpZGVhKSB0byBhbnRpY2lwYXRlIGFsbCB0aGUgc2NlbmFy
aW9zCi1hIHVzZXIgbWlnaHQgcnVuIGludG8uIFRoZXJlZm9yZSwgc29tZXRpbWVzIGEgdXNlciBo
YXMgdG8gdXNlIGBFWFBFQ1RfVFJVRSgpYAotdG8gY2hlY2sgYSBjb21wbGV4IGV4cHJlc3Npb24s
IGZvciBsYWNrIG9mIGEgYmV0dGVyIG1hY3JvLiBUaGlzIGhhcyB0aGUgcHJvYmxlbQotb2Ygbm90
IHNob3dpbmcgeW91IHRoZSB2YWx1ZXMgb2YgdGhlIHBhcnRzIG9mIHRoZSBleHByZXNzaW9uLCBt
YWtpbmcgaXQgaGFyZCB0bwotdW5kZXJzdGFuZCB3aGF0IHdlbnQgd3JvbmcuIEFzIGEgd29ya2Fy
b3VuZCwgc29tZSB1c2VycyBjaG9vc2UgdG8gY29uc3RydWN0IHRoZQotZmFpbHVyZSBtZXNzYWdl
IGJ5IHRoZW1zZWx2ZXMsIHN0cmVhbWluZyBpdCBpbnRvIGBFWFBFQ1RfVFJVRSgpYC4gSG93ZXZl
ciwgdGhpcwotaXMgYXdrd2FyZCBlc3BlY2lhbGx5IHdoZW4gdGhlIGV4cHJlc3Npb24gaGFzIHNp
ZGUtZWZmZWN0cyBvciBpcyBleHBlbnNpdmUgdG8KLWV2YWx1YXRlLgotCi1Hb29nbGUgVGVzdCBn
aXZlcyB5b3UgdGhyZWUgZGlmZmVyZW50IG9wdGlvbnMgdG8gc29sdmUgdGhpcyBwcm9ibGVtOgot
Ci0jIyMgVXNpbmcgYW4gRXhpc3RpbmcgQm9vbGVhbiBGdW5jdGlvbiAjIyMKLQotSWYgeW91IGFs
cmVhZHkgaGF2ZSBhIGZ1bmN0aW9uIG9yIGEgZnVuY3RvciB0aGF0IHJldHVybnMgYGJvb2xgIChv
ciBhIHR5cGUKLXRoYXQgY2FuIGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvIGBib29sYCksIHlv
dSBjYW4gdXNlIGl0IGluIGEgX3ByZWRpY2F0ZQotYXNzZXJ0aW9uXyB0byBnZXQgdGhlIGZ1bmN0
aW9uIGFyZ3VtZW50cyBwcmludGVkIGZvciBmcmVlOgotCi18ICoqRmF0YWwgYXNzZXJ0aW9uKiog
fCAqKk5vbmZhdGFsIGFzc2VydGlvbioqIHwgKipWZXJpZmllcyoqIHwKLXw6LS0tLS0tLS0tLS0t
LS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tfAotfCBgQVNT
RVJUX1BSRUQxKGBfcHJlZDEsIHZhbDFfYCk7YCAgICAgICB8IGBFWFBFQ1RfUFJFRDEoYF9wcmVk
MSwgdmFsMV9gKTtgIHwgX3ByZWQxKHZhbDEpXyByZXR1cm5zIHRydWUgfAotfCBgQVNTRVJUX1BS
RUQyKGBfcHJlZDIsIHZhbDEsIHZhbDJfYCk7YCB8IGBFWFBFQ1RfUFJFRDIoYF9wcmVkMiwgdmFs
MSwgdmFsMl9gKTtgIHwgIF9wcmVkMih2YWwxLCB2YWwyKV8gcmV0dXJucyB0cnVlIHwKLXwgIC4u
LiAgICAgICAgICAgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAg
fAotCi1JbiB0aGUgYWJvdmUsIF9wcmVkbl8gaXMgYW4gX25fLWFyeSBwcmVkaWNhdGUgZnVuY3Rp
b24gb3IgZnVuY3Rvciwgd2hlcmUKLV92YWwxXywgX3ZhbDJfLCAuLi4sIGFuZCBfdmFsbl8gYXJl
IGl0cyBhcmd1bWVudHMuIFRoZSBhc3NlcnRpb24gc3VjY2VlZHMKLWlmIHRoZSBwcmVkaWNhdGUg
cmV0dXJucyBgdHJ1ZWAgd2hlbiBhcHBsaWVkIHRvIHRoZSBnaXZlbiBhcmd1bWVudHMsIGFuZCBm
YWlscwotb3RoZXJ3aXNlLiBXaGVuIHRoZSBhc3NlcnRpb24gZmFpbHMsIGl0IHByaW50cyB0aGUg
dmFsdWUgb2YgZWFjaCBhcmd1bWVudC4gSW4KLWVpdGhlciBjYXNlLCB0aGUgYXJndW1lbnRzIGFy
ZSBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgotCi1IZXJlJ3MgYW4gZXhhbXBsZS4gR2l2ZW4KLQot
YGBgCi0vLyBSZXR1cm5zIHRydWUgaWZmIG0gYW5kIG4gaGF2ZSBubyBjb21tb24gZGl2aXNvcnMg
ZXhjZXB0IDEuCi1ib29sIE11dHVhbGx5UHJpbWUoaW50IG0sIGludCBuKSB7IC4uLiB9Ci1jb25z
dCBpbnQgYSA9IDM7Ci1jb25zdCBpbnQgYiA9IDQ7Ci1jb25zdCBpbnQgYyA9IDEwOwotYGBgCi0K
LXRoZSBhc3NlcnRpb24gYEVYUEVDVF9QUkVEMihNdXR1YWxseVByaW1lLCBhLCBiKTtgIHdpbGwg
c3VjY2VlZCwgd2hpbGUgdGhlCi1hc3NlcnRpb24gYEVYUEVDVF9QUkVEMihNdXR1YWxseVByaW1l
LCBiLCBjKTtgIHdpbGwgZmFpbCB3aXRoIHRoZSBtZXNzYWdlCi0KLTxwcmU+Ci0hTXV0dWFsbHlQ
cmltZShiLCBjKSBpcyBmYWxzZSwgd2hlcmU8YnI+Ci1iIGlzIDQ8YnI+Ci1jIGlzIDEwPGJyPgot
PC9wcmU+Ci0KLSoqTm90ZXM6KioKLQotICAxLiBJZiB5b3Ugc2VlIGEgY29tcGlsZXIgZXJyb3Ig
Im5vIG1hdGNoaW5nIGZ1bmN0aW9uIHRvIGNhbGwiIHdoZW4gdXNpbmcgYEFTU0VSVF9QUkVEKmAg
b3IgYEVYUEVDVF9QUkVEKmAsIHBsZWFzZSBzZWUgW3RoaXMgRkFRXShGQVEubWQjdGhlLWNvbXBp
bGVyLWNvbXBsYWlucy1uby1tYXRjaGluZy1mdW5jdGlvbi10by1jYWxsLXdoZW4taS11c2UtYXNz
ZXJ0X3ByZWRuLWhvdy1kby1pLWZpeC1pdCkgZm9yIGhvdyB0byByZXNvbHZlIGl0LgotICAxLiBD
dXJyZW50bHkgd2Ugb25seSBwcm92aWRlIHByZWRpY2F0ZSBhc3NlcnRpb25zIG9mIGFyaXR5IDw9
IDUuIElmIHlvdSBuZWVkIGEgaGlnaGVyLWFyaXR5IGFzc2VydGlvbiwgbGV0IHVzIGtub3cuCi0K
LV9BdmFpbGFiaWxpdHlfOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgVXNpbmcgYSBGdW5j
dGlvbiBUaGF0IFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0ICMjIwotCi1XaGlsZSBgRVhQRUNU
X1BSRUQqKClgIGFuZCBmcmllbmRzIGFyZSBoYW5keSBmb3IgYSBxdWljayBqb2IsIHRoZQotc3lu
dGF4IGlzIG5vdCBzYXRpc2ZhY3Rvcnk6IHlvdSBoYXZlIHRvIHVzZSBkaWZmZXJlbnQgbWFjcm9z
IGZvcgotZGlmZmVyZW50IGFyaXRpZXMsIGFuZCBpdCBmZWVscyBtb3JlIGxpa2UgTGlzcCB0aGFu
IEMrKy4gIFRoZQotYDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0YCBjbGFzcyBzb2x2ZXMgdGhp
cyBwcm9ibGVtLgotCi1BbiBgQXNzZXJ0aW9uUmVzdWx0YCBvYmplY3QgcmVwcmVzZW50cyB0aGUg
cmVzdWx0IG9mIGFuIGFzc2VydGlvbgotKHdoZXRoZXIgaXQncyBhIHN1Y2Nlc3Mgb3IgYSBmYWls
dXJlLCBhbmQgYW4gYXNzb2NpYXRlZCBtZXNzYWdlKS4gIFlvdQotY2FuIGNyZWF0ZSBhbiBgQXNz
ZXJ0aW9uUmVzdWx0YCB1c2luZyBvbmUgb2YgdGhlc2UgZmFjdG9yeQotZnVuY3Rpb25zOgotCi1g
YGAKLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotLy8gUmV0dXJucyBhbiBBc3NlcnRpb25SZXN1bHQg
b2JqZWN0IHRvIGluZGljYXRlIHRoYXQgYW4gYXNzZXJ0aW9uIGhhcwotLy8gc3VjY2VlZGVkLgot
QXNzZXJ0aW9uUmVzdWx0IEFzc2VydGlvblN1Y2Nlc3MoKTsKLQotLy8gUmV0dXJucyBhbiBBc3Nl
cnRpb25SZXN1bHQgb2JqZWN0IHRvIGluZGljYXRlIHRoYXQgYW4gYXNzZXJ0aW9uIGhhcwotLy8g
ZmFpbGVkLgotQXNzZXJ0aW9uUmVzdWx0IEFzc2VydGlvbkZhaWx1cmUoKTsKLQotfQotYGBgCi0K
LVlvdSBjYW4gdGhlbiB1c2UgdGhlIGA8PGAgb3BlcmF0b3IgdG8gc3RyZWFtIG1lc3NhZ2VzIHRv
IHRoZQotYEFzc2VydGlvblJlc3VsdGAgb2JqZWN0LgotCi1UbyBwcm92aWRlIG1vcmUgcmVhZGFi
bGUgbWVzc2FnZXMgaW4gQm9vbGVhbiBhc3NlcnRpb25zCi0oZS5nLiBgRVhQRUNUX1RSVUUoKWAp
LCB3cml0ZSBhIHByZWRpY2F0ZSBmdW5jdGlvbiB0aGF0IHJldHVybnMKLWBBc3NlcnRpb25SZXN1
bHRgIGluc3RlYWQgb2YgYGJvb2xgLiBGb3IgZXhhbXBsZSwgaWYgeW91IGRlZmluZQotYElzRXZl
bigpYCBhczoKLQotYGBgCi06OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBJc0V2ZW4oaW50IG4p
IHsKLSAgaWYgKChuICUgMikgPT0gMCkKLSAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25T
dWNjZXNzKCk7Ci0gIGVsc2UKLSAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJl
KCkgPDwgbiA8PCAiIGlzIG9kZCI7Ci19Ci1gYGAKLQotaW5zdGVhZCBvZjoKLQotYGBgCi1ib29s
IElzRXZlbihpbnQgbikgewotICByZXR1cm4gKG4gJSAyKSA9PSAwOwotfQotYGBgCi0KLXRoZSBm
YWlsZWQgYXNzZXJ0aW9uIGBFWFBFQ1RfVFJVRShJc0V2ZW4oRmliKDQpKSlgIHdpbGwgcHJpbnQ6
Ci0KLTxwcmU+Ci1WYWx1ZSBvZjogSXNFdmVuKEZpYig0KSk8YnI+Ci1BY3R1YWw6IGZhbHNlICgq
MyBpcyBvZGQqKTxicj4KLUV4cGVjdGVkOiB0cnVlPGJyPgotPC9wcmU+Ci0KLWluc3RlYWQgb2Yg
YSBtb3JlIG9wYXF1ZQotCi08cHJlPgotVmFsdWUgb2Y6IElzRXZlbihGaWIoNCkpPGJyPgotQWN0
dWFsOiBmYWxzZTxicj4KLUV4cGVjdGVkOiB0cnVlPGJyPgotPC9wcmU+Ci0KLUlmIHlvdSB3YW50
IGluZm9ybWF0aXZlIG1lc3NhZ2VzIGluIGBFWFBFQ1RfRkFMU0VgIGFuZCBgQVNTRVJUX0ZBTFNF
YAotYXMgd2VsbCwgYW5kIGFyZSBmaW5lIHdpdGggbWFraW5nIHRoZSBwcmVkaWNhdGUgc2xvd2Vy
IGluIHRoZSBzdWNjZXNzCi1jYXNlLCB5b3UgY2FuIHN1cHBseSBhIHN1Y2Nlc3MgbWVzc2FnZToK
LQotYGBgCi06OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBJc0V2ZW4oaW50IG4pIHsKLSAgaWYg
KChuICUgMikgPT0gMCkKLSAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25TdWNjZXNzKCkg
PDwgbiA8PCAiIGlzIGV2ZW4iOwotICBlbHNlCi0gICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0
aW9uRmFpbHVyZSgpIDw8IG4gPDwgIiBpcyBvZGQiOwotfQotYGBgCi0KLVRoZW4gdGhlIHN0YXRl
bWVudCBgRVhQRUNUX0ZBTFNFKElzRXZlbihGaWIoNikpKWAgd2lsbCBwcmludAotCi08cHJlPgot
VmFsdWUgb2Y6IElzRXZlbihGaWIoNikpPGJyPgotQWN0dWFsOiB0cnVlICg4IGlzIGV2ZW4pPGJy
PgotRXhwZWN0ZWQ6IGZhbHNlPGJyPgotPC9wcmU+Ci0KLV9BdmFpbGFiaWxpdHlfOiBMaW51eCwg
V2luZG93cywgTWFjOyBzaW5jZSB2ZXJzaW9uIDEuNC4xLgotCi0jIyMgVXNpbmcgYSBQcmVkaWNh
dGUtRm9ybWF0dGVyICMjIwotCi1JZiB5b3UgZmluZCB0aGUgZGVmYXVsdCBtZXNzYWdlIGdlbmVy
YXRlZCBieSBgKEFTU0VSVHxFWFBFQ1QpX1BSRUQqYCBhbmQKLWAoQVNTRVJUfEVYUEVDVClfKFRS
VUV8RkFMU0UpYCB1bnNhdGlzZmFjdG9yeSwgb3Igc29tZSBhcmd1bWVudHMgdG8geW91cgotcHJl
ZGljYXRlIGRvIG5vdCBzdXBwb3J0IHN0cmVhbWluZyB0byBgb3N0cmVhbWAsIHlvdSBjYW4gaW5z
dGVhZCB1c2UgdGhlCi1mb2xsb3dpbmcgX3ByZWRpY2F0ZS1mb3JtYXR0ZXIgYXNzZXJ0aW9uc18g
dG8gX2Z1bGx5XyBjdXN0b21pemUgaG93IHRoZQotbWVzc2FnZSBpcyBmb3JtYXR0ZWQ6Ci0KLXwg
KipGYXRhbCBhc3NlcnRpb24qKiB8ICoqTm9uZmF0YWwgYXNzZXJ0aW9uKiogfCAqKlZlcmlmaWVz
KiogfAotfDotLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0t
LS0tLS0tLS0tLS18Ci18IGBBU1NFUlRfUFJFRF9GT1JNQVQxKGBfcHJlZFxfZm9ybWF0MSwgdmFs
MV9gKTtgICAgICAgICB8IGBFWFBFQ1RfUFJFRF9GT1JNQVQxKGBfcHJlZFxfZm9ybWF0MSwgdmFs
MV9gKTtgIHwgX3ByZWRcX2Zvcm1hdDEodmFsMSlfIGlzIHN1Y2Nlc3NmdWwgfAotfCBgQVNTRVJU
X1BSRURfRk9STUFUMihgX3ByZWRcX2Zvcm1hdDIsIHZhbDEsIHZhbDJfYCk7YCB8IGBFWFBFQ1Rf
UFJFRF9GT1JNQVQyKGBfcHJlZFxfZm9ybWF0MiwgdmFsMSwgdmFsMl9gKTtgIHwgX3ByZWRcX2Zv
cm1hdDIodmFsMSwgdmFsMilfIGlzIHN1Y2Nlc3NmdWwgfAotfCBgLi4uYCAgICAgICAgICAgICAg
IHwgYC4uLmAgICAgICAgICAgICAgICAgICB8IGAuLi5gICAgICAgICB8Ci0KLVRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gdGhpcyBhbmQgdGhlIHByZXZpb3VzIHR3byBncm91cHMgb2YgbWFjcm9zIGlz
IHRoYXQgaW5zdGVhZCBvZgotYSBwcmVkaWNhdGUsIGAoQVNTRVJUfEVYUEVDVClfUFJFRF9GT1JN
QVQqYCB0YWtlIGEgX3ByZWRpY2F0ZS1mb3JtYXR0ZXJfCi0oX3ByZWRcX2Zvcm1hdG5fKSwgd2hp
Y2ggaXMgYSBmdW5jdGlvbiBvciBmdW5jdG9yIHdpdGggdGhlIHNpZ25hdHVyZToKLQotYDo6dGVz
dGluZzo6QXNzZXJ0aW9uUmVzdWx0IFByZWRpY2F0ZUZvcm1hdHRlcm4oY29uc3QgY2hhciogYF9l
eHByMV9gLCBjb25zdCBjaGFyKiBgX2V4cHIyX2AsIC4uLiBjb25zdCBjaGFyKiBgX2V4cHJuX2As
IFQxIGBfdmFsMV9gLCBUMiBgX3ZhbDJfYCwgLi4uIFRuIGBfdmFsbl9gKTtgCi0KLXdoZXJlIF92
YWwxXywgX3ZhbDJfLCAuLi4sIGFuZCBfdmFsbl8gYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIHByZWRp
Y2F0ZQotYXJndW1lbnRzLCBhbmQgX2V4cHIxXywgX2V4cHIyXywgLi4uLCBhbmQgX2V4cHJuXyBh
cmUgdGhlIGNvcnJlc3BvbmRpbmcKLWV4cHJlc3Npb25zIGFzIHRoZXkgYXBwZWFyIGluIHRoZSBz
b3VyY2UgY29kZS4gVGhlIHR5cGVzIGBUMWAsIGBUMmAsIC4uLiwgYW5kCi1gVG5gIGNhbiBiZSBl
aXRoZXIgdmFsdWUgdHlwZXMgb3IgcmVmZXJlbmNlIHR5cGVzLiBGb3IgZXhhbXBsZSwgaWYgYW4K
LWFyZ3VtZW50IGhhcyB0eXBlIGBGb29gLCB5b3UgY2FuIGRlY2xhcmUgaXQgYXMgZWl0aGVyIGBG
b29gIG9yIGBjb25zdCBGb28mYCwKLXdoaWNoZXZlciBpcyBhcHByb3ByaWF0ZS4KLQotQSBwcmVk
aWNhdGUtZm9ybWF0dGVyIHJldHVybnMgYSBgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHRgIG9i
amVjdCB0byBpbmRpY2F0ZQotd2hldGhlciB0aGUgYXNzZXJ0aW9uIGhhcyBzdWNjZWVkZWQgb3Ig
bm90LiBUaGUgb25seSB3YXkgdG8gY3JlYXRlIHN1Y2ggYW4KLW9iamVjdCBpcyB0byBjYWxsIG9u
ZSBvZiB0aGVzZSBmYWN0b3J5IGZ1bmN0aW9uczoKLQotQXMgYW4gZXhhbXBsZSwgbGV0J3MgaW1w
cm92ZSB0aGUgZmFpbHVyZSBtZXNzYWdlIGluIHRoZSBwcmV2aW91cyBleGFtcGxlLCB3aGljaCB1
c2VzIGBFWFBFQ1RfUFJFRDIoKWA6Ci0KLWBgYAotLy8gUmV0dXJucyB0aGUgc21hbGxlc3QgcHJp
bWUgY29tbW9uIGRpdmlzb3Igb2YgbSBhbmQgbiwKLS8vIG9yIDEgd2hlbiBtIGFuZCBuIGFyZSBt
dXR1YWxseSBwcmltZS4KLWludCBTbWFsbGVzdFByaW1lQ29tbW9uRGl2aXNvcihpbnQgbSwgaW50
IG4pIHsgLi4uIH0KLQotLy8gQSBwcmVkaWNhdGUtZm9ybWF0dGVyIGZvciBhc3NlcnRpbmcgdGhh
dCB0d28gaW50ZWdlcnMgYXJlIG11dHVhbGx5IHByaW1lLgotOjp0ZXN0aW5nOjpBc3NlcnRpb25S
ZXN1bHQgQXNzZXJ0TXV0dWFsbHlQcmltZShjb25zdCBjaGFyKiBtX2V4cHIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5fZXhwciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuKSB7Ci0g
IGlmIChNdXR1YWxseVByaW1lKG0sIG4pKQotICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlv
blN1Y2Nlc3MoKTsKLQotICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkKLSAg
ICAgIDw8IG1fZXhwciA8PCAiIGFuZCAiIDw8IG5fZXhwciA8PCAiICgiIDw8IG0gPDwgIiBhbmQg
IiA8PCBuCi0gICAgICA8PCAiKSBhcmUgbm90IG11dHVhbGx5IHByaW1lLCAiIDw8ICJhcyB0aGV5
IGhhdmUgYSBjb21tb24gZGl2aXNvciAiCi0gICAgICA8PCBTbWFsbGVzdFByaW1lQ29tbW9uRGl2
aXNvcihtLCBuKTsKLX0KLWBgYAotCi1XaXRoIHRoaXMgcHJlZGljYXRlLWZvcm1hdHRlciwgd2Ug
Y2FuIHVzZQotCi1gYGAKLUVYUEVDVF9QUkVEX0ZPUk1BVDIoQXNzZXJ0TXV0dWFsbHlQcmltZSwg
YiwgYyk7Ci1gYGAKLQotdG8gZ2VuZXJhdGUgdGhlIG1lc3NhZ2UKLQotPHByZT4KLWIgYW5kIGMg
KDQgYW5kIDEwKSBhcmUgbm90IG11dHVhbGx5IHByaW1lLCBhcyB0aGV5IGhhdmUgYSBjb21tb24g
ZGl2aXNvciAyLjxicj4KLTwvcHJlPgotCi1BcyB5b3UgbWF5IGhhdmUgcmVhbGl6ZWQsIG1hbnkg
b2YgdGhlIGFzc2VydGlvbnMgd2UgaW50cm9kdWNlZCBlYXJsaWVyIGFyZQotc3BlY2lhbCBjYXNl
cyBvZiBgKEVYUEVDVHxBU1NFUlQpX1BSRURfRk9STUFUKmAuIEluIGZhY3QsIG1vc3Qgb2YgdGhl
bSBhcmUKLWluZGVlZCBkZWZpbmVkIHVzaW5nIGAoRVhQRUNUfEFTU0VSVClfUFJFRF9GT1JNQVQq
YC4KLQotX0F2YWlsYWJpbGl0eV86IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLQotIyMgRmxvYXRp
bmctUG9pbnQgQ29tcGFyaXNvbiAjIwotCi1Db21wYXJpbmcgZmxvYXRpbmctcG9pbnQgbnVtYmVy
cyBpcyB0cmlja3kuIER1ZSB0byByb3VuZC1vZmYgZXJyb3JzLCBpdCBpcwotdmVyeSB1bmxpa2Vs
eSB0aGF0IHR3byBmbG9hdGluZy1wb2ludHMgd2lsbCBtYXRjaCBleGFjdGx5LiBUaGVyZWZvcmUs
Ci1gQVNTRVJUX0VRYCAncyBuYWl2ZSBjb21wYXJpc29uIHVzdWFsbHkgZG9lc24ndCB3b3JrLiBB
bmQgc2luY2UgZmxvYXRpbmctcG9pbnRzCi1jYW4gaGF2ZSBhIHdpZGUgdmFsdWUgcmFuZ2UsIG5v
IHNpbmdsZSBmaXhlZCBlcnJvciBib3VuZCB3b3Jrcy4gSXQncyBiZXR0ZXIgdG8KLWNvbXBhcmUg
YnkgYSBmaXhlZCByZWxhdGl2ZSBlcnJvciBib3VuZCwgZXhjZXB0IGZvciB2YWx1ZXMgY2xvc2Ug
dG8gMCBkdWUgdG8KLXRoZSBsb3NzIG9mIHByZWNpc2lvbiB0aGVyZS4KLQotSW4gZ2VuZXJhbCwg
Zm9yIGZsb2F0aW5nLXBvaW50IGNvbXBhcmlzb24gdG8gbWFrZSBzZW5zZSwgdGhlIHVzZXIgbmVl
ZHMgdG8KLWNhcmVmdWxseSBjaG9vc2UgdGhlIGVycm9yIGJvdW5kLiBJZiB0aGV5IGRvbid0IHdh
bnQgb3IgY2FyZSB0bywgY29tcGFyaW5nIGluCi10ZXJtcyBvZiBVbml0cyBpbiB0aGUgTGFzdCBQ
bGFjZSAoVUxQcykgaXMgYSBnb29kIGRlZmF1bHQsIGFuZCBHb29nbGUgVGVzdAotcHJvdmlkZXMg
YXNzZXJ0aW9ucyB0byBkbyB0aGlzLiBGdWxsIGRldGFpbHMgYWJvdXQgVUxQcyBhcmUgcXVpdGUg
bG9uZzsgaWYgeW91Ci13YW50IHRvIGxlYXJuIG1vcmUsIHNlZQotW3RoaXMgYXJ0aWNsZSBvbiBm
bG9hdCBjb21wYXJpc29uXShodHRwczovL3JhbmRvbWFzY2lpLndvcmRwcmVzcy5jb20vMjAxMi8w
Mi8yNS9jb21wYXJpbmctZmxvYXRpbmctcG9pbnQtbnVtYmVycy0yMDEyLWVkaXRpb24vKS4KLQot
IyMjIEZsb2F0aW5nLVBvaW50IE1hY3JvcyAjIyMKLQotfCAqKkZhdGFsIGFzc2VydGlvbioqIHwg
KipOb25mYXRhbCBhc3NlcnRpb24qKiB8ICoqVmVyaWZpZXMqKiB8Ci18Oi0tLS0tLS0tLS0tLS0t
LS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLXwKLXwgYEFTU0VS
VF9GTE9BVF9FUShgX3ZhbDEsIHZhbDJfYCk7YCAgfCBgRVhQRUNUX0ZMT0FUX0VRKGBfdmFsMSwg
dmFsMl9gKTtgIHwgdGhlIHR3byBgZmxvYXRgIHZhbHVlcyBhcmUgYWxtb3N0IGVxdWFsIHwKLXwg
YEFTU0VSVF9ET1VCTEVfRVEoYF92YWwxLCB2YWwyX2ApO2AgfCBgRVhQRUNUX0RPVUJMRV9FUShg
X3ZhbDEsIHZhbDJfYCk7YCB8IHRoZSB0d28gYGRvdWJsZWAgdmFsdWVzIGFyZSBhbG1vc3QgZXF1
YWwgfAotCi1CeSAiYWxtb3N0IGVxdWFsIiwgd2UgbWVhbiB0aGUgdHdvIHZhbHVlcyBhcmUgd2l0
aGluIDQgVUxQJ3MgZnJvbSBlYWNoCi1vdGhlci4KLQotVGhlIGZvbGxvd2luZyBhc3NlcnRpb25z
IGFsbG93IHlvdSB0byBjaG9vc2UgdGhlIGFjY2VwdGFibGUgZXJyb3IgYm91bmQ6Ci0KLXwgKipG
YXRhbCBhc3NlcnRpb24qKiB8ICoqTm9uZmF0YWwgYXNzZXJ0aW9uKiogfCAqKlZlcmlmaWVzKiog
fAotfDotLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0t
LS0tLS0tLS18Ci18IGBBU1NFUlRfTkVBUihgX3ZhbDEsIHZhbDIsIGFic1xfZXJyb3JfYCk7YCB8
IGBFWFBFQ1RfTkVBUmBfKHZhbDEsIHZhbDIsIGFic1xfZXJyb3JfYCk7YCB8IHRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gX3ZhbDFfIGFuZCBfdmFsMl8gZG9lc24ndCBleGNlZWQgdGhlIGdpdmVuIGFi
c29sdXRlIGVycm9yIHwKLQotX0F2YWlsYWJpbGl0eV86IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0K
LSMjIyBGbG9hdGluZy1Qb2ludCBQcmVkaWNhdGUtRm9ybWF0IEZ1bmN0aW9ucyAjIyMKLQotU29t
ZSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb25zIGFyZSB1c2VmdWwsIGJ1dCBub3QgdGhhdCBvZnRl
biB1c2VkLiBJbiBvcmRlcgotdG8gYXZvaWQgYW4gZXhwbG9zaW9uIG9mIG5ldyBtYWNyb3MsIHdl
IHByb3ZpZGUgdGhlbSBhcyBwcmVkaWNhdGUtZm9ybWF0Ci1mdW5jdGlvbnMgdGhhdCBjYW4gYmUg
dXNlZCBpbiBwcmVkaWNhdGUgYXNzZXJ0aW9uIG1hY3JvcyAoZS5nLgotYEVYUEVDVF9QUkVEX0ZP
Uk1BVDJgLCBldGMpLgotCi1gYGAKLUVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjpGbG9h
dExFLCB2YWwxLCB2YWwyKTsKLUVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjpEb3VibGVM
RSwgdmFsMSwgdmFsMik7Ci1gYGAKLQotVmVyaWZpZXMgdGhhdCBfdmFsMV8gaXMgbGVzcyB0aGFu
LCBvciBhbG1vc3QgZXF1YWwgdG8sIF92YWwyXy4gWW91IGNhbgotcmVwbGFjZSBgRVhQRUNUX1BS
RURfRk9STUFUMmAgaW4gdGhlIGFib3ZlIHRhYmxlIHdpdGggYEFTU0VSVF9QUkVEX0ZPUk1BVDJg
LgotCi1fQXZhaWxhYmlsaXR5XzogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgV2luZG93cyBI
UkVTVUxUIGFzc2VydGlvbnMgIyMKLQotVGhlc2UgYXNzZXJ0aW9ucyB0ZXN0IGZvciBgSFJFU1VM
VGAgc3VjY2VzcyBvciBmYWlsdXJlLgotCi18ICoqRmF0YWwgYXNzZXJ0aW9uKiogfCAqKk5vbmZh
dGFsIGFzc2VydGlvbioqIHwgKipWZXJpZmllcyoqIHwKLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS18
Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tfAotfCBgQVNTRVJUX0hSRVNV
TFRfU1VDQ0VFREVEKGBfZXhwcmVzc2lvbl9gKTtgIHwgYEVYUEVDVF9IUkVTVUxUX1NVQ0NFRURF
RChgX2V4cHJlc3Npb25fYCk7YCB8IF9leHByZXNzaW9uXyBpcyBhIHN1Y2Nlc3MgYEhSRVNVTFRg
IHwKLXwgYEFTU0VSVF9IUkVTVUxUX0ZBSUxFRChgX2V4cHJlc3Npb25fYCk7YCAgICB8IGBFWFBF
Q1RfSFJFU1VMVF9GQUlMRUQoYF9leHByZXNzaW9uX2ApO2AgICAgfCBfZXhwcmVzc2lvbl8gaXMg
YSBmYWlsdXJlIGBIUkVTVUxUYCB8Ci0KLVRoZSBnZW5lcmF0ZWQgb3V0cHV0IGNvbnRhaW5zIHRo
ZSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlCi1hc3NvY2lhdGVkIHdpdGggdGhlIGBIUkVT
VUxUYCBjb2RlIHJldHVybmVkIGJ5IF9leHByZXNzaW9uXy4KLQotWW91IG1pZ2h0IHVzZSB0aGVt
IGxpa2UgdGhpczoKLQotYGBgCi1DQ29tUHRyIHNoZWxsOwotQVNTRVJUX0hSRVNVTFRfU1VDQ0VF
REVEKHNoZWxsLkNvQ3JlYXRlSW5zdGFuY2UoTCJTaGVsbC5BcHBsaWNhdGlvbiIpKTsKLUNDb21W
YXJpYW50IGVtcHR5OwotQVNTRVJUX0hSRVNVTFRfU1VDQ0VFREVEKHNoZWxsLT5TaGVsbEV4ZWN1
dGUoQ0NvbUJTVFIodXJsKSwgZW1wdHksIGVtcHR5LCBlbXB0eSwgZW1wdHkpKTsKLWBgYAotCi1f
QXZhaWxhYmlsaXR5XzogV2luZG93cy4KLQotIyMgVHlwZSBBc3NlcnRpb25zICMjCi0KLVlvdSBj
YW4gY2FsbCB0aGUgZnVuY3Rpb24KLWBgYAotOjp0ZXN0aW5nOjpTdGF0aWNBc3NlcnRUeXBlRXE8
VDEsIFQyPigpOwotYGBgCi10byBhc3NlcnQgdGhhdCB0eXBlcyBgVDFgIGFuZCBgVDJgIGFyZSB0
aGUgc2FtZS4gIFRoZSBmdW5jdGlvbiBkb2VzCi1ub3RoaW5nIGlmIHRoZSBhc3NlcnRpb24gaXMg
c2F0aXNmaWVkLiAgSWYgdGhlIHR5cGVzIGFyZSBkaWZmZXJlbnQsCi10aGUgZnVuY3Rpb24gY2Fs
bCB3aWxsIGZhaWwgdG8gY29tcGlsZSwgYW5kIHRoZSBjb21waWxlciBlcnJvciBtZXNzYWdlCi13
aWxsIGxpa2VseSAoZGVwZW5kaW5nIG9uIHRoZSBjb21waWxlcikgc2hvdyB5b3UgdGhlIGFjdHVh
bCB2YWx1ZXMgb2YKLWBUMWAgYW5kIGBUMmAuICBUaGlzIGlzIG1haW5seSB1c2VmdWwgaW5zaWRl
IHRlbXBsYXRlIGNvZGUuCi0KLV9DYXZlYXQ6XyBXaGVuIHVzZWQgaW5zaWRlIGEgbWVtYmVyIGZ1
bmN0aW9uIG9mIGEgY2xhc3MgdGVtcGxhdGUgb3IgYQotZnVuY3Rpb24gdGVtcGxhdGUsIGBTdGF0
aWNBc3NlcnRUeXBlRXE8VDEsIFQyPigpYCBpcyBlZmZlY3RpdmUgX29ubHkgaWZfCi10aGUgZnVu
Y3Rpb24gaXMgaW5zdGFudGlhdGVkLiAgRm9yIGV4YW1wbGUsIGdpdmVuOgotYGBgCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gY2xhc3MgRm9vIHsKLSBwdWJsaWM6Ci0gIHZvaWQgQmFyKCkgeyA6OnRl
c3Rpbmc6OlN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsIFQ+KCk7IH0KLX07Ci1gYGAKLXRoZSBjb2Rl
OgotYGBgCi12b2lkIFRlc3QxKCkgeyBGb288Ym9vbD4gZm9vOyB9Ci1gYGAKLXdpbGwgX25vdF8g
Z2VuZXJhdGUgYSBjb21waWxlciBlcnJvciwgYXMgYEZvbzxib29sPjo6QmFyKClgIGlzIG5ldmVy
Ci1hY3R1YWxseSBpbnN0YW50aWF0ZWQuICBJbnN0ZWFkLCB5b3UgbmVlZDoKLWBgYAotdm9pZCBU
ZXN0MigpIHsgRm9vPGJvb2w+IGZvbzsgZm9vLkJhcigpOyB9Ci1gYGAKLXRvIGNhdXNlIGEgY29t
cGlsZXIgZXJyb3IuCi0KLV9BdmFpbGFiaWxpdHk6XyBMaW51eCwgV2luZG93cywgTWFjOyBzaW5j
ZSB2ZXJzaW9uIDEuMy4wLgotCi0jIyBBc3NlcnRpb24gUGxhY2VtZW50ICMjCi0KLVlvdSBjYW4g
dXNlIGFzc2VydGlvbnMgaW4gYW55IEMrKyBmdW5jdGlvbi4gSW4gcGFydGljdWxhciwgaXQgZG9l
c24ndAotaGF2ZSB0byBiZSBhIG1ldGhvZCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzLiBUaGUg
b25lIGNvbnN0cmFpbnQgaXMKLXRoYXQgYXNzZXJ0aW9ucyB0aGF0IGdlbmVyYXRlIGEgZmF0YWwg
ZmFpbHVyZSAoYEZBSUwqYCBhbmQgYEFTU0VSVF8qYCkKLWNhbiBvbmx5IGJlIHVzZWQgaW4gdm9p
ZC1yZXR1cm5pbmcgZnVuY3Rpb25zLiBUaGlzIGlzIGEgY29uc2VxdWVuY2Ugb2YKLUdvb2dsZSBU
ZXN0IG5vdCB1c2luZyBleGNlcHRpb25zLiBCeSBwbGFjaW5nIGl0IGluIGEgbm9uLXZvaWQgZnVu
Y3Rpb24KLXlvdSdsbCBnZXQgYSBjb25mdXNpbmcgY29tcGlsZSBlcnJvciBsaWtlCi1gImVycm9y
OiB2b2lkIHZhbHVlIG5vdCBpZ25vcmVkIGFzIGl0IG91Z2h0IHRvIGJlImAuCi0KLUlmIHlvdSBu
ZWVkIHRvIHVzZSBhc3NlcnRpb25zIGluIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIG5vbi12b2lk
LCBvbmUgb3B0aW9uCi1pcyB0byBtYWtlIHRoZSBmdW5jdGlvbiByZXR1cm4gdGhlIHZhbHVlIGlu
IGFuIG91dCBwYXJhbWV0ZXIgaW5zdGVhZC4gRm9yCi1leGFtcGxlLCB5b3UgY2FuIHJld3JpdGUg
YFQyIEZvbyhUMSB4KWAgdG8gYHZvaWQgRm9vKFQxIHgsIFQyKiByZXN1bHQpYC4gWW91Ci1uZWVk
IHRvIG1ha2Ugc3VyZSB0aGF0IGAqcmVzdWx0YCBjb250YWlucyBzb21lIHNlbnNpYmxlIHZhbHVl
IGV2ZW4gd2hlbiB0aGUKLWZ1bmN0aW9uIHJldHVybnMgcHJlbWF0dXJlbHkuIEFzIHRoZSBmdW5j
dGlvbiBub3cgcmV0dXJucyBgdm9pZGAsIHlvdSBjYW4gdXNlCi1hbnkgYXNzZXJ0aW9uIGluc2lk
ZSBvZiBpdC4KLQotSWYgY2hhbmdpbmcgdGhlIGZ1bmN0aW9uJ3MgdHlwZSBpcyBub3QgYW4gb3B0
aW9uLCB5b3Ugc2hvdWxkIGp1c3QgdXNlCi1hc3NlcnRpb25zIHRoYXQgZ2VuZXJhdGUgbm9uLWZh
dGFsIGZhaWx1cmVzLCBzdWNoIGFzIGBBRERfRkFJTFVSRSpgIGFuZAotYEVYUEVDVF8qYC4KLQot
X05vdGVfOiBDb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzIGFyZSBub3QgY29uc2lkZXJlZCB2
b2lkLXJldHVybmluZwotZnVuY3Rpb25zLCBhY2NvcmRpbmcgdG8gdGhlIEMrKyBsYW5ndWFnZSBz
cGVjaWZpY2F0aW9uLCBhbmQgc28geW91IG1heSBub3QgdXNlCi1mYXRhbCBhc3NlcnRpb25zIGlu
IHRoZW0uIFlvdSdsbCBnZXQgYSBjb21waWxhdGlvbiBlcnJvciBpZiB5b3UgdHJ5LiBBIHNpbXBs
ZQotd29ya2Fyb3VuZCBpcyB0byB0cmFuc2ZlciB0aGUgZW50aXJlIGJvZHkgb2YgdGhlIGNvbnN0
cnVjdG9yIG9yIGRlc3RydWN0b3IgdG8gYQotcHJpdmF0ZSB2b2lkLXJldHVybmluZyBtZXRob2Qu
IEhvd2V2ZXIsIHlvdSBzaG91bGQgYmUgYXdhcmUgdGhhdCBhIGZhdGFsCi1hc3NlcnRpb24gZmFp
bHVyZSBpbiBhIGNvbnN0cnVjdG9yIGRvZXMgbm90IHRlcm1pbmF0ZSB0aGUgY3VycmVudCB0ZXN0
LCBhcyB5b3VyCi1pbnR1aXRpb24gbWlnaHQgc3VnZ2VzdDsgaXQgbWVyZWx5IHJldHVybnMgZnJv
bSB0aGUgY29uc3RydWN0b3IgZWFybHksIHBvc3NpYmx5Ci1sZWF2aW5nIHlvdXIgb2JqZWN0IGlu
IGEgcGFydGlhbGx5LWNvbnN0cnVjdGVkIHN0YXRlLiBMaWtld2lzZSwgYSBmYXRhbAotYXNzZXJ0
aW9uIGZhaWx1cmUgaW4gYSBkZXN0cnVjdG9yIG1heSBsZWF2ZSB5b3VyIG9iamVjdCBpbiBhCi1w
YXJ0aWFsbHktZGVzdHJ1Y3RlZCBzdGF0ZS4gVXNlIGFzc2VydGlvbnMgY2FyZWZ1bGx5IGluIHRo
ZXNlIHNpdHVhdGlvbnMhCi0KLSMgVGVhY2hpbmcgR29vZ2xlIFRlc3QgSG93IHRvIFByaW50IFlv
dXIgVmFsdWVzICMKLQotV2hlbiBhIHRlc3QgYXNzZXJ0aW9uIHN1Y2ggYXMgYEVYUEVDVF9FUWAg
ZmFpbHMsIEdvb2dsZSBUZXN0IHByaW50cyB0aGUKLWFyZ3VtZW50IHZhbHVlcyB0byBoZWxwIHlv
dSBkZWJ1Zy4gIEl0IGRvZXMgdGhpcyB1c2luZyBhCi11c2VyLWV4dGVuc2libGUgdmFsdWUgcHJp
bnRlci4KLQotVGhpcyBwcmludGVyIGtub3dzIGhvdyB0byBwcmludCBidWlsdC1pbiBDKysgdHlw
ZXMsIG5hdGl2ZSBhcnJheXMsIFNUTAotY29udGFpbmVycywgYW5kIGFueSB0eXBlIHRoYXQgc3Vw
cG9ydHMgdGhlIGA8PGAgb3BlcmF0b3IuICBGb3Igb3RoZXIKLXR5cGVzLCBpdCBwcmludHMgdGhl
IHJhdyBieXRlcyBpbiB0aGUgdmFsdWUgYW5kIGhvcGVzIHRoYXQgeW91IHRoZQotdXNlciBjYW4g
ZmlndXJlIGl0IG91dC4KLQotQXMgbWVudGlvbmVkIGVhcmxpZXIsIHRoZSBwcmludGVyIGlzIF9l
eHRlbnNpYmxlXy4gIFRoYXQgbWVhbnMKLXlvdSBjYW4gdGVhY2ggaXQgdG8gZG8gYSBiZXR0ZXIg
am9iIGF0IHByaW50aW5nIHlvdXIgcGFydGljdWxhciB0eXBlCi10aGFuIHRvIGR1bXAgdGhlIGJ5
dGVzLiAgVG8gZG8gdGhhdCwgZGVmaW5lIGA8PGAgZm9yIHlvdXIgdHlwZToKLQotYGBgCi0jaW5j
bHVkZSA8aW9zdHJlYW0+Ci0KLW5hbWVzcGFjZSBmb28gewotCi1jbGFzcyBCYXIgeyAuLi4gfTsg
IC8vIFdlIHdhbnQgR29vZ2xlIFRlc3QgdG8gYmUgYWJsZSB0byBwcmludCBpbnN0YW5jZXMgb2Yg
dGhpcy4KLQotLy8gSXQncyBpbXBvcnRhbnQgdGhhdCB0aGUgPDwgb3BlcmF0b3IgaXMgZGVmaW5l
ZCBpbiB0aGUgU0FNRQotLy8gbmFtZXNwYWNlIHRoYXQgZGVmaW5lcyBCYXIuICBDKysncyBsb29r
LXVwIHJ1bGVzIHJlbHkgb24gdGhhdC4KLTo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3Rk
Ojpvc3RyZWFtJiBvcywgY29uc3QgQmFyJiBiYXIpIHsKLSAgcmV0dXJuIG9zIDw8IGJhci5EZWJ1
Z1N0cmluZygpOyAgLy8gd2hhdGV2ZXIgbmVlZGVkIHRvIHByaW50IGJhciB0byBvcwotfQotCi19
ICAvLyBuYW1lc3BhY2UgZm9vCi1gYGAKLQotU29tZXRpbWVzLCB0aGlzIG1pZ2h0IG5vdCBiZSBh
biBvcHRpb246IHlvdXIgdGVhbSBtYXkgY29uc2lkZXIgaXQgYmFkCi1zdHlsZSB0byBoYXZlIGEg
YDw8YCBvcGVyYXRvciBmb3IgYEJhcmAsIG9yIGBCYXJgIG1heSBhbHJlYWR5IGhhdmUgYQotYDw8
YCBvcGVyYXRvciB0aGF0IGRvZXNuJ3QgZG8gd2hhdCB5b3Ugd2FudCAoYW5kIHlvdSBjYW5ub3Qg
Y2hhbmdlCi1pdCkuICBJZiBzbywgeW91IGNhbiBpbnN0ZWFkIGRlZmluZSBhIGBQcmludFRvKClg
IGZ1bmN0aW9uIGxpa2UgdGhpczoKLQotYGBgCi0jaW5jbHVkZSA8aW9zdHJlYW0+Ci0KLW5hbWVz
cGFjZSBmb28gewotCi1jbGFzcyBCYXIgeyAuLi4gfTsKLQotLy8gSXQncyBpbXBvcnRhbnQgdGhh
dCBQcmludFRvKCkgaXMgZGVmaW5lZCBpbiB0aGUgU0FNRQotLy8gbmFtZXNwYWNlIHRoYXQgZGVm
aW5lcyBCYXIuICBDKysncyBsb29rLXVwIHJ1bGVzIHJlbHkgb24gdGhhdC4KLXZvaWQgUHJpbnRU
byhjb25zdCBCYXImIGJhciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICpvcyA8PCBiYXIuRGVi
dWdTdHJpbmcoKTsgIC8vIHdoYXRldmVyIG5lZWRlZCB0byBwcmludCBiYXIgdG8gb3MKLX0KLQot
fSAgLy8gbmFtZXNwYWNlIGZvbwotYGBgCi0KLUlmIHlvdSBoYXZlIGRlZmluZWQgYm90aCBgPDxg
IGFuZCBgUHJpbnRUbygpYCwgdGhlIGxhdHRlciB3aWxsIGJlIHVzZWQKLXdoZW4gR29vZ2xlIFRl
c3QgaXMgY29uY2VybmVkLiAgVGhpcyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBob3cgdGhlIHZh
bHVlCi1hcHBlYXJzIGluIEdvb2dsZSBUZXN0J3Mgb3V0cHV0IHdpdGhvdXQgYWZmZWN0aW5nIGNv
ZGUgdGhhdCByZWxpZXMgb24gdGhlCi1iZWhhdmlvciBvZiBpdHMgYDw8YCBvcGVyYXRvci4KLQot
SWYgeW91IHdhbnQgdG8gcHJpbnQgYSB2YWx1ZSBgeGAgdXNpbmcgR29vZ2xlIFRlc3QncyB2YWx1
ZSBwcmludGVyCi15b3Vyc2VsZiwganVzdCBjYWxsIGA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmco
YF94X2ApYCwgd2hpY2gKLXJldHVybnMgYW4gYHN0ZDo6c3RyaW5nYDoKLQotYGBgCi12ZWN0b3I8
cGFpcjxCYXIsIGludD4gPiBiYXJfaW50cyA9IEdldEJhckludFZlY3RvcigpOwotCi1FWFBFQ1Rf
VFJVRShJc0NvcnJlY3RCYXJJbnRWZWN0b3IoYmFyX2ludHMpKQotICAgIDw8ICJiYXJfaW50cyA9
ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGJhcl9pbnRzKTsKLWBgYAotCi0jIERlYXRo
IFRlc3RzICMKLQotSW4gbWFueSBhcHBsaWNhdGlvbnMsIHRoZXJlIGFyZSBhc3NlcnRpb25zIHRo
YXQgY2FuIGNhdXNlIGFwcGxpY2F0aW9uIGZhaWx1cmUKLWlmIGEgY29uZGl0aW9uIGlzIG5vdCBt
ZXQuIFRoZXNlIHNhbml0eSBjaGVja3MsIHdoaWNoIGVuc3VyZSB0aGF0IHRoZSBwcm9ncmFtCi1p
cyBpbiBhIGtub3duIGdvb2Qgc3RhdGUsIGFyZSB0aGVyZSB0byBmYWlsIGF0IHRoZSBlYXJsaWVz
dCBwb3NzaWJsZSB0aW1lIGFmdGVyCi1zb21lIHByb2dyYW0gc3RhdGUgaXMgY29ycnVwdGVkLiBJ
ZiB0aGUgYXNzZXJ0aW9uIGNoZWNrcyB0aGUgd3JvbmcgY29uZGl0aW9uLAotdGhlbiB0aGUgcHJv
Z3JhbSBtYXkgcHJvY2VlZCBpbiBhbiBlcnJvbmVvdXMgc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQg
dG8gbWVtb3J5Ci1jb3JydXB0aW9uLCBzZWN1cml0eSBob2xlcywgb3Igd29yc2UuIEhlbmNlIGl0
IGlzIHZpdGFsbHkgaW1wb3J0YW50IHRvIHRlc3QKLXRoYXQgc3VjaCBhc3NlcnRpb24gc3RhdGVt
ZW50cyB3b3JrIGFzIGV4cGVjdGVkLgotCi1TaW5jZSB0aGVzZSBwcmVjb25kaXRpb24gY2hlY2tz
IGNhdXNlIHRoZSBwcm9jZXNzZXMgdG8gZGllLCB3ZSBjYWxsIHN1Y2ggdGVzdHMKLV9kZWF0aCB0
ZXN0c18uIE1vcmUgZ2VuZXJhbGx5LCBhbnkgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IGEgcHJvZ3Jh
bSB0ZXJtaW5hdGVzCi0oZXhjZXB0IGJ5IHRocm93aW5nIGFuIGV4Y2VwdGlvbikgaW4gYW4gZXhw
ZWN0ZWQgZmFzaGlvbiBpcyBhbHNvIGEgZGVhdGggdGVzdC4KLQotTm90ZSB0aGF0IGlmIGEgcGll
Y2Ugb2YgY29kZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3ZSBkb24ndCBjb25zaWRlciBpdCAiZGVh
dGgiCi1mb3IgdGhlIHB1cnBvc2Ugb2YgZGVhdGggdGVzdHMsIGFzIHRoZSBjYWxsZXIgb2YgdGhl
IGNvZGUgY291bGQgY2F0Y2ggdGhlIGV4Y2VwdGlvbgotYW5kIGF2b2lkIHRoZSBjcmFzaC4gSWYg
eW91IHdhbnQgdG8gdmVyaWZ5IGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHlvdXIgY29kZSwKLXNlZSBb
RXhjZXB0aW9uIEFzc2VydGlvbnNdKCNleGNlcHRpb24tYXNzZXJ0aW9ucykuCi0KLUlmIHlvdSB3
YW50IHRvIHRlc3QgYEVYUEVDVF8qKCkvQVNTRVJUXyooKWAgZmFpbHVyZXMgaW4geW91ciB0ZXN0
IGNvZGUsIHNlZSBbQ2F0Y2hpbmcgRmFpbHVyZXNdKCNjYXRjaGluZy1mYWlsdXJlcykuCi0KLSMj
IEhvdyB0byBXcml0ZSBhIERlYXRoIFRlc3QgIyMKLQotR29vZ2xlIFRlc3QgaGFzIHRoZSBmb2xs
b3dpbmcgbWFjcm9zIHRvIHN1cHBvcnQgZGVhdGggdGVzdHM6Ci0KLXwgKipGYXRhbCBhc3NlcnRp
b24qKiB8ICoqTm9uZmF0YWwgYXNzZXJ0aW9uKiogfCAqKlZlcmlmaWVzKiogfAotfDotLS0tLS0t
LS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS18Ci18
IGBBU1NFUlRfREVBVEgoYF9zdGF0ZW1lbnQsIHJlZ2V4X2ApO2AgfCBgRVhQRUNUX0RFQVRIKGBf
c3RhdGVtZW50LCByZWdleF9gKTtgIHwgX3N0YXRlbWVudF8gY3Jhc2hlcyB3aXRoIHRoZSBnaXZl
biBlcnJvciB8Ci18IGBBU1NFUlRfREVBVEhfSUZfU1VQUE9SVEVEKGBfc3RhdGVtZW50LCByZWdl
eF9gKTtgIHwgYEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoYF9zdGF0ZW1lbnQsIHJlZ2V4X2Ap
O2AgfCBpZiBkZWF0aCB0ZXN0cyBhcmUgc3VwcG9ydGVkLCB2ZXJpZmllcyB0aGF0IF9zdGF0ZW1l
bnRfIGNyYXNoZXMgd2l0aCB0aGUgZ2l2ZW4gZXJyb3I7IG90aGVyd2lzZSB2ZXJpZmllcyBub3Ro
aW5nIHwKLXwgYEFTU0VSVF9FWElUKGBfc3RhdGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4X2ApO2Ag
fCBgRVhQRUNUX0VYSVQoYF9zdGF0ZW1lbnQsIHByZWRpY2F0ZSwgcmVnZXhfYCk7YCB8X3N0YXRl
bWVudF8gZXhpdHMgd2l0aCB0aGUgZ2l2ZW4gZXJyb3IgYW5kIGl0cyBleGl0IGNvZGUgbWF0Y2hl
cyBfcHJlZGljYXRlXyB8Ci0KLXdoZXJlIF9zdGF0ZW1lbnRfIGlzIGEgc3RhdGVtZW50IHRoYXQg
aXMgZXhwZWN0ZWQgdG8gY2F1c2UgdGhlIHByb2Nlc3MgdG8KLWRpZSwgX3ByZWRpY2F0ZV8gaXMg
YSBmdW5jdGlvbiBvciBmdW5jdGlvbiBvYmplY3QgdGhhdCBldmFsdWF0ZXMgYW4gaW50ZWdlcgot
ZXhpdCBzdGF0dXMsIGFuZCBfcmVnZXhfIGlzIGEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgdGhl
IHN0ZGVyciBvdXRwdXQgb2YKLV9zdGF0ZW1lbnRfIGlzIGV4cGVjdGVkIHRvIG1hdGNoLiBOb3Rl
IHRoYXQgX3N0YXRlbWVudF8gY2FuIGJlIF9hbnkgdmFsaWQKLXN0YXRlbWVudF8gKGluY2x1ZGlu
ZyBfY29tcG91bmQgc3RhdGVtZW50XykgYW5kIGRvZXNuJ3QgaGF2ZSB0byBiZSBhbgotZXhwcmVz
c2lvbi4KLQotQXMgdXN1YWwsIHRoZSBgQVNTRVJUYCB2YXJpYW50cyBhYm9ydCB0aGUgY3VycmVu
dCB0ZXN0IGZ1bmN0aW9uLCB3aGlsZSB0aGUKLWBFWFBFQ1RgIHZhcmlhbnRzIGRvIG5vdC4KLQot
KipOb3RlOioqIFdlIHVzZSB0aGUgd29yZCAiY3Jhc2giIGhlcmUgdG8gbWVhbiB0aGF0IHRoZSBw
cm9jZXNzCi10ZXJtaW5hdGVzIHdpdGggYSBfbm9uLXplcm9fIGV4aXQgc3RhdHVzIGNvZGUuICBU
aGVyZSBhcmUgdHdvCi1wb3NzaWJpbGl0aWVzOiBlaXRoZXIgdGhlIHByb2Nlc3MgaGFzIGNhbGxl
ZCBgZXhpdCgpYCBvciBgX2V4aXQoKWAKLXdpdGggYSBub24temVybyB2YWx1ZSwgb3IgaXQgbWF5
IGJlIGtpbGxlZCBieSBhIHNpZ25hbC4KLQotVGhpcyBtZWFucyB0aGF0IGlmIF9zdGF0ZW1lbnRf
IHRlcm1pbmF0ZXMgdGhlIHByb2Nlc3Mgd2l0aCBhIDAgZXhpdAotY29kZSwgaXQgaXMgX25vdF8g
Y29uc2lkZXJlZCBhIGNyYXNoIGJ5IGBFWFBFQ1RfREVBVEhgLiAgVXNlCi1gRVhQRUNUX0VYSVRg
IGluc3RlYWQgaWYgdGhpcyBpcyB0aGUgY2FzZSwgb3IgaWYgeW91IHdhbnQgdG8gcmVzdHJpY3QK
LXRoZSBleGl0IGNvZGUgbW9yZSBwcmVjaXNlbHkuCi0KLUEgcHJlZGljYXRlIGhlcmUgbXVzdCBh
Y2NlcHQgYW4gYGludGAgYW5kIHJldHVybiBhIGBib29sYC4gVGhlIGRlYXRoIHRlc3QKLXN1Y2Nl
ZWRzIG9ubHkgaWYgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGB0cnVlYC4gR29vZ2xlIFRlc3QgZGVm
aW5lcyBhIGZldwotcHJlZGljYXRlcyB0aGF0IGhhbmRsZSB0aGUgbW9zdCBjb21tb24gY2FzZXM6
Ci0KLWBgYAotOjp0ZXN0aW5nOjpFeGl0ZWRXaXRoQ29kZShleGl0X2NvZGUpCi1gYGAKLQotVGhp
cyBleHByZXNzaW9uIGlzIGB0cnVlYCBpZiB0aGUgcHJvZ3JhbSBleGl0ZWQgbm9ybWFsbHkgd2l0
aCB0aGUgZ2l2ZW4gZXhpdAotY29kZS4KLQotYGBgCi06OnRlc3Rpbmc6OktpbGxlZEJ5U2lnbmFs
KHNpZ25hbF9udW1iZXIpICAvLyBOb3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MuCi1gYGAKLQotVGhp
cyBleHByZXNzaW9uIGlzIGB0cnVlYCBpZiB0aGUgcHJvZ3JhbSB3YXMga2lsbGVkIGJ5IHRoZSBn
aXZlbiBzaWduYWwuCi0KLVRoZSBgKl9ERUFUSGAgbWFjcm9zIGFyZSBjb252ZW5pZW50IHdyYXBw
ZXJzIGZvciBgKl9FWElUYCB0aGF0IHVzZSBhIHByZWRpY2F0ZQotdGhhdCB2ZXJpZmllcyB0aGUg
cHJvY2VzcycgZXhpdCBjb2RlIGlzIG5vbi16ZXJvLgotCi1Ob3RlIHRoYXQgYSBkZWF0aCB0ZXN0
IG9ubHkgY2FyZXMgYWJvdXQgdGhyZWUgdGhpbmdzOgotCi0gIDEuIGRvZXMgX3N0YXRlbWVudF8g
YWJvcnQgb3IgZXhpdCB0aGUgcHJvY2Vzcz8KLSAgMS4gKGluIHRoZSBjYXNlIG9mIGBBU1NFUlRf
RVhJVGAgYW5kIGBFWFBFQ1RfRVhJVGApIGRvZXMgdGhlIGV4aXQgc3RhdHVzIHNhdGlzZnkgX3By
ZWRpY2F0ZV8/ICBPciAoaW4gdGhlIGNhc2Ugb2YgYEFTU0VSVF9ERUFUSGAgYW5kIGBFWFBFQ1Rf
REVBVEhgKSBpcyB0aGUgZXhpdCBzdGF0dXMgbm9uLXplcm8/ICBBbmQKLSAgMS4gZG9lcyB0aGUg
c3RkZXJyIG91dHB1dCBtYXRjaCBfcmVnZXhfPwotCi1JbiBwYXJ0aWN1bGFyLCBpZiBfc3RhdGVt
ZW50XyBnZW5lcmF0ZXMgYW4gYEFTU0VSVF8qYCBvciBgRVhQRUNUXypgIGZhaWx1cmUsIGl0IHdp
bGwgKipub3QqKiBjYXVzZSB0aGUgZGVhdGggdGVzdCB0byBmYWlsLCBhcyBHb29nbGUgVGVzdCBh
c3NlcnRpb25zIGRvbid0IGFib3J0IHRoZSBwcm9jZXNzLgotCi1UbyB3cml0ZSBhIGRlYXRoIHRl
c3QsIHNpbXBseSB1c2Ugb25lIG9mIHRoZSBhYm92ZSBtYWNyb3MgaW5zaWRlIHlvdXIgdGVzdAot
ZnVuY3Rpb24uIEZvciBleGFtcGxlLAotCi1gYGAKLVRFU1QoTXlEZWF0aFRlc3QsIEZvbykgewot
ICAvLyBUaGlzIGRlYXRoIHRlc3QgdXNlcyBhIGNvbXBvdW5kIHN0YXRlbWVudC4KLSAgQVNTRVJU
X0RFQVRIKHsgaW50IG4gPSA1OyBGb28oJm4pOyB9LCAiRXJyb3Igb24gbGluZSAuKiBvZiBGb28o
KSIpOwotfQotVEVTVChNeURlYXRoVGVzdCwgTm9ybWFsRXhpdCkgewotICBFWFBFQ1RfRVhJVChO
b3JtYWxFeGl0KCksIDo6dGVzdGluZzo6RXhpdGVkV2l0aENvZGUoMCksICJTdWNjZXNzIik7Ci19
Ci1URVNUKE15RGVhdGhUZXN0LCBLaWxsTXlzZWxmKSB7Ci0gIEVYUEVDVF9FWElUKEtpbGxNeXNl
bGYoKSwgOjp0ZXN0aW5nOjpLaWxsZWRCeVNpZ25hbChTSUdLSUxMKSwgIlNlbmRpbmcgbXlzZWxm
IHVuYmxvY2thYmxlIHNpZ25hbCIpOwotfQotYGBgCi0KLXZlcmlmaWVzIHRoYXQ6Ci0KLSAgKiBj
YWxsaW5nIGBGb28oNSlgIGNhdXNlcyB0aGUgcHJvY2VzcyB0byBkaWUgd2l0aCB0aGUgZ2l2ZW4g
ZXJyb3IgbWVzc2FnZSwKLSAgKiBjYWxsaW5nIGBOb3JtYWxFeGl0KClgIGNhdXNlcyB0aGUgcHJv
Y2VzcyB0byBwcmludCBgIlN1Y2Nlc3MiYCB0byBzdGRlcnIgYW5kIGV4aXQgd2l0aCBleGl0IGNv
ZGUgMCwgYW5kCi0gICogY2FsbGluZyBgS2lsbE15c2VsZigpYCBraWxscyB0aGUgcHJvY2VzcyB3
aXRoIHNpZ25hbCBgU0lHS0lMTGAuCi0KLVRoZSB0ZXN0IGZ1bmN0aW9uIGJvZHkgbWF5IGNvbnRh
aW4gb3RoZXIgYXNzZXJ0aW9ucyBhbmQgc3RhdGVtZW50cyBhcyB3ZWxsLCBpZgotbmVjZXNzYXJ5
LgotCi1fSW1wb3J0YW50Ol8gV2Ugc3Ryb25nbHkgcmVjb21tZW5kIHlvdSB0byBmb2xsb3cgdGhl
IGNvbnZlbnRpb24gb2YgbmFtaW5nIHlvdXIKLXRlc3QgY2FzZSAobm90IHRlc3QpIGAqRGVhdGhU
ZXN0YCB3aGVuIGl0IGNvbnRhaW5zIGEgZGVhdGggdGVzdCwgYXMKLWRlbW9uc3RyYXRlZCBpbiB0
aGUgYWJvdmUgZXhhbXBsZS4gVGhlIGBEZWF0aCBUZXN0cyBBbmQgVGhyZWFkc2Agc2VjdGlvbiBi
ZWxvdwotZXhwbGFpbnMgd2h5LgotCi1JZiBhIHRlc3QgZml4dHVyZSBjbGFzcyBpcyBzaGFyZWQg
Ynkgbm9ybWFsIHRlc3RzIGFuZCBkZWF0aCB0ZXN0cywgeW91Ci1jYW4gdXNlIHR5cGVkZWYgdG8g
aW50cm9kdWNlIGFuIGFsaWFzIGZvciB0aGUgZml4dHVyZSBjbGFzcyBhbmQgYXZvaWQKLWR1cGxp
Y2F0aW5nIGl0cyBjb2RlOgotYGBgCi1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6
VGVzdCB7IC4uLiB9OwotCi10eXBlZGVmIEZvb1Rlc3QgRm9vRGVhdGhUZXN0OwotCi1URVNUX0Yo
Rm9vVGVzdCwgRG9lc1RoaXMpIHsKLSAgLy8gbm9ybWFsIHRlc3QKLX0KLQotVEVTVF9GKEZvb0Rl
YXRoVGVzdCwgRG9lc1RoYXQpIHsKLSAgLy8gZGVhdGggdGVzdAotfQotYGBgCi0KLV9BdmFpbGFi
aWxpdHk6XyBMaW51eCwgV2luZG93cyAocmVxdWlyZXMgTVNWQyA4LjAgb3IgYWJvdmUpLCBDeWd3
aW4sIGFuZCBNYWMgKHRoZSBsYXR0ZXIgdGhyZWUgYXJlIHN1cHBvcnRlZCBzaW5jZSB2MS4zLjAp
LiAgYChBU1NFUlR8RVhQRUNUKV9ERUFUSF9JRl9TVVBQT1JURURgIGFyZSBuZXcgaW4gdjEuNC4w
LgotCi0jIyBSZWd1bGFyIEV4cHJlc3Npb24gU3ludGF4ICMjCi0KLU9uIFBPU0lYIHN5c3RlbXMg
KGUuZy4gTGludXgsIEN5Z3dpbiwgYW5kIE1hYyksIEdvb2dsZSBUZXN0IHVzZXMgdGhlCi1bUE9T
SVggZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9uXShodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcv
b25saW5lcHVicy8wMDk2OTUzOTkvYmFzZWRlZnMveGJkX2NoYXAwOS5odG1sI3RhZ18wOV8wNCkK
LXN5bnRheCBpbiBkZWF0aCB0ZXN0cy4gVG8gbGVhcm4gYWJvdXQgdGhpcyBzeW50YXgsIHlvdSBt
YXkgd2FudCB0byByZWFkIHRoaXMgW1dpa2lwZWRpYSBlbnRyeV0oaHR0cDovL2VuLndpa2lwZWRp
YS5vcmcvd2lraS9SZWd1bGFyX2V4cHJlc3Npb24jUE9TSVhfRXh0ZW5kZWRfUmVndWxhcl9FeHBy
ZXNzaW9ucykuCi0KLU9uIFdpbmRvd3MsIEdvb2dsZSBUZXN0IHVzZXMgaXRzIG93biBzaW1wbGUg
cmVndWxhciBleHByZXNzaW9uCi1pbXBsZW1lbnRhdGlvbi4gSXQgbGFja3MgbWFueSBmZWF0dXJl
cyB5b3UgY2FuIGZpbmQgaW4gUE9TSVggZXh0ZW5kZWQKLXJlZ3VsYXIgZXhwcmVzc2lvbnMuICBG
b3IgZXhhbXBsZSwgd2UgZG9uJ3Qgc3VwcG9ydCB1bmlvbiAoYCJ4fHkiYCksCi1ncm91cGluZyAo
YCIoeHkpImApLCBicmFja2V0cyAoYCJbeHldImApLCBhbmQgcmVwZXRpdGlvbiBjb3VudAotKGAi
eHs1LDd9ImApLCBhbW9uZyBvdGhlcnMuIEJlbG93IGlzIHdoYXQgd2UgZG8gc3VwcG9ydCAoTGV0
dGVyIGBBYCBkZW5vdGVzIGEKLWxpdGVyYWwgY2hhcmFjdGVyLCBwZXJpb2QgKGAuYCksIG9yIGEg
c2luZ2xlIGBcXGAgZXNjYXBlIHNlcXVlbmNlOyBgeGAKLWFuZCBgeWAgZGVub3RlIHJlZ3VsYXIg
ZXhwcmVzc2lvbnMuKToKLQotfCBgY2AgfCBtYXRjaGVzIGFueSBsaXRlcmFsIGNoYXJhY3RlciBg
Y2AgfAotfDotLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotfCBgXFxk
YCB8IG1hdGNoZXMgYW55IGRlY2ltYWwgZGlnaXQgICAgICAgICB8Ci18IGBcXERgIHwgbWF0Y2hl
cyBhbnkgY2hhcmFjdGVyIHRoYXQncyBub3QgYSBkZWNpbWFsIGRpZ2l0IHwKLXwgYFxcZmAgfCBt
YXRjaGVzIGBcZmAgICAgICAgICAgICAgICAgICAgICAgfAotfCBgXFxuYCB8IG1hdGNoZXMgYFxu
YCAgICAgICAgICAgICAgICAgICAgICB8Ci18IGBcXHJgIHwgbWF0Y2hlcyBgXHJgICAgICAgICAg
ICAgICAgICAgICAgIHwKLXwgYFxcc2AgfCBtYXRjaGVzIGFueSBBU0NJSSB3aGl0ZXNwYWNlLCBp
bmNsdWRpbmcgYFxuYCB8Ci18IGBcXFNgIHwgbWF0Y2hlcyBhbnkgY2hhcmFjdGVyIHRoYXQncyBu
b3QgYSB3aGl0ZXNwYWNlIHwKLXwgYFxcdGAgfCBtYXRjaGVzIGBcdGAgICAgICAgICAgICAgICAg
ICAgICAgfAotfCBgXFx2YCB8IG1hdGNoZXMgYFx2YCAgICAgICAgICAgICAgICAgICAgICB8Ci18
IGBcXHdgIHwgbWF0Y2hlcyBhbnkgbGV0dGVyLCBgX2AsIG9yIGRlY2ltYWwgZGlnaXQgfAotfCBg
XFxXYCB8IG1hdGNoZXMgYW55IGNoYXJhY3RlciB0aGF0IGBcXHdgIGRvZXNuJ3QgbWF0Y2ggfAot
fCBgXFxjYCB8IG1hdGNoZXMgYW55IGxpdGVyYWwgY2hhcmFjdGVyIGBjYCwgd2hpY2ggbXVzdCBi
ZSBhIHB1bmN0dWF0aW9uIHwKLXwgYFxcLmAgfCBtYXRjaGVzIHRoZSBgLmAgY2hhcmFjdGVyICAg
ICAgICAgfAotfCBgLmAgfCBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyIGV4Y2VwdCBgXG5g
IHwKLXwgYEE/YCB8IG1hdGNoZXMgMCBvciAxIG9jY3VycmVuY2VzIG9mIGBBYCB8Ci18IGBBKmAg
fCBtYXRjaGVzIDAgb3IgbWFueSBvY2N1cnJlbmNlcyBvZiBgQWAgfAotfCBgQStgIHwgbWF0Y2hl
cyAxIG9yIG1hbnkgb2NjdXJyZW5jZXMgb2YgYEFgIHwKLXwgYF5gIHwgbWF0Y2hlcyB0aGUgYmVn
aW5uaW5nIG9mIGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxpbmUpIHwKLXwgYCRgIHwgbWF0
Y2hlcyB0aGUgZW5kIG9mIGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxpbmUpIHwKLXwgYHh5
YCB8IG1hdGNoZXMgYHhgIGZvbGxvd2VkIGJ5IGB5YCAgICAgICB8Ci0KLVRvIGhlbHAgeW91IGRl
dGVybWluZSB3aGljaCBjYXBhYmlsaXR5IGlzIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbSwKLUdv
b2dsZSBUZXN0IGRlZmluZXMgbWFjcm8gYEdURVNUX1VTRVNfUE9TSVhfUkU9MWAgd2hlbiBpdCB1
c2VzIFBPU0lYCi1leHRlbmRlZCByZWd1bGFyIGV4cHJlc3Npb25zLCBvciBgR1RFU1RfVVNFU19T
SU1QTEVfUkU9MWAgd2hlbiBpdCB1c2VzCi10aGUgc2ltcGxlIHZlcnNpb24uICBJZiB5b3Ugd2Fu
dCB5b3VyIGRlYXRoIHRlc3RzIHRvIHdvcmsgaW4gYm90aAotY2FzZXMsIHlvdSBjYW4gZWl0aGVy
IGAjaWZgIG9uIHRoZXNlIG1hY3JvcyBvciB1c2UgdGhlIG1vcmUgbGltaXRlZAotc3ludGF4IG9u
bHkuCi0KLSMjIEhvdyBJdCBXb3JrcyAjIwotCi1VbmRlciB0aGUgaG9vZCwgYEFTU0VSVF9FWElU
KClgIHNwYXducyBhIG5ldyBwcm9jZXNzIGFuZCBleGVjdXRlcyB0aGUKLWRlYXRoIHRlc3Qgc3Rh
dGVtZW50IGluIHRoYXQgcHJvY2Vzcy4gVGhlIGRldGFpbHMgb2YgaG93IHByZWNpc2VseQotdGhh
dCBoYXBwZW5zIGRlcGVuZCBvbiB0aGUgcGxhdGZvcm0gYW5kIHRoZSB2YXJpYWJsZQotYDo6dGVz
dGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKWAgKHdoaWNoIGlzIGluaXRpYWxpemVk
IGZyb20gdGhlCi1jb21tYW5kLWxpbmUgZmxhZyBgLS1ndGVzdF9kZWF0aF90ZXN0X3N0eWxlYCku
Ci0KLSAgKiBPbiBQT1NJWCBzeXN0ZW1zLCBgZm9yaygpYCAob3IgYGNsb25lKClgIG9uIExpbnV4
KSBpcyB1c2VkIHRvIHNwYXduIHRoZSBjaGlsZCwgYWZ0ZXIgd2hpY2g6Ci0gICAgKiBJZiB0aGUg
dmFyaWFibGUncyB2YWx1ZSBpcyBgImZhc3QiYCwgdGhlIGRlYXRoIHRlc3Qgc3RhdGVtZW50IGlz
IGltbWVkaWF0ZWx5IGV4ZWN1dGVkLgotICAgICogSWYgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgaXMg
YCJ0aHJlYWRzYWZlImAsIHRoZSBjaGlsZCBwcm9jZXNzIHJlLWV4ZWN1dGVzIHRoZSB1bml0IHRl
c3QgYmluYXJ5IGp1c3QgYXMgaXQgd2FzIG9yaWdpbmFsbHkgaW52b2tlZCwgYnV0IHdpdGggc29t
ZSBleHRyYSBmbGFncyB0byBjYXVzZSBqdXN0IHRoZSBzaW5nbGUgZGVhdGggdGVzdCB1bmRlciBj
b25zaWRlcmF0aW9uIHRvIGJlIHJ1bi4KLSAgKiBPbiBXaW5kb3dzLCB0aGUgY2hpbGQgaXMgc3Bh
d25lZCB1c2luZyB0aGUgYENyZWF0ZVByb2Nlc3MoKWAgQVBJLCBhbmQgcmUtZXhlY3V0ZXMgdGhl
IGJpbmFyeSB0byBjYXVzZSBqdXN0IHRoZSBzaW5nbGUgZGVhdGggdGVzdCB1bmRlciBjb25zaWRl
cmF0aW9uIHRvIGJlIHJ1biAtIG11Y2ggbGlrZSB0aGUgYHRocmVhZHNhZmVgIG1vZGUgb24gUE9T
SVguCi0KLU90aGVyIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIGFyZSBpbGxlZ2FsIGFuZCB3aWxs
IGNhdXNlIHRoZSBkZWF0aCB0ZXN0IHRvCi1mYWlsLiBDdXJyZW50bHksIHRoZSBmbGFnJ3MgZGVm
YXVsdCB2YWx1ZSBpcyBgImZhc3QiYC4gSG93ZXZlciwgd2UgcmVzZXJ2ZSB0aGUKLXJpZ2h0IHRv
IGNoYW5nZSBpdCBpbiB0aGUgZnV0dXJlLiBUaGVyZWZvcmUsIHlvdXIgdGVzdHMgc2hvdWxkIG5v
dCBkZXBlbmQgb24KLXRoaXMuCi0KLUluIGVpdGhlciBjYXNlLCB0aGUgcGFyZW50IHByb2Nlc3Mg
d2FpdHMgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvIGNvbXBsZXRlLCBhbmQgY2hlY2tzIHRoYXQK
LQotICAxLiB0aGUgY2hpbGQncyBleGl0IHN0YXR1cyBzYXRpc2ZpZXMgdGhlIHByZWRpY2F0ZSwg
YW5kCi0gIDEuIHRoZSBjaGlsZCdzIHN0ZGVyciBtYXRjaGVzIHRoZSByZWd1bGFyIGV4cHJlc3Np
b24uCi0KLUlmIHRoZSBkZWF0aCB0ZXN0IHN0YXRlbWVudCBydW5zIHRvIGNvbXBsZXRpb24gd2l0
aG91dCBkeWluZywgdGhlIGNoaWxkCi1wcm9jZXNzIHdpbGwgbm9uZXRoZWxlc3MgdGVybWluYXRl
LCBhbmQgdGhlIGFzc2VydGlvbiBmYWlscy4KLQotIyMgRGVhdGggVGVzdHMgQW5kIFRocmVhZHMg
IyMKLQotVGhlIHJlYXNvbiBmb3IgdGhlIHR3byBkZWF0aCB0ZXN0IHN0eWxlcyBoYXMgdG8gZG8g
d2l0aCB0aHJlYWQgc2FmZXR5LiBEdWUgdG8KLXdlbGwta25vd24gcHJvYmxlbXMgd2l0aCBmb3Jr
aW5nIGluIHRoZSBwcmVzZW5jZSBvZiB0aHJlYWRzLCBkZWF0aCB0ZXN0cyBzaG91bGQKLWJlIHJ1
biBpbiBhIHNpbmdsZS10aHJlYWRlZCBjb250ZXh0LiBTb21ldGltZXMsIGhvd2V2ZXIsIGl0IGlz
bid0IGZlYXNpYmxlIHRvCi1hcnJhbmdlIHRoYXQga2luZCBvZiBlbnZpcm9ubWVudC4gRm9yIGV4
YW1wbGUsIHN0YXRpY2FsbHktaW5pdGlhbGl6ZWQgbW9kdWxlcwotbWF5IHN0YXJ0IHRocmVhZHMg
YmVmb3JlIG1haW4gaXMgZXZlciByZWFjaGVkLiBPbmNlIHRocmVhZHMgaGF2ZSBiZWVuIGNyZWF0
ZWQsCi1pdCBtYXkgYmUgZGlmZmljdWx0IG9yIGltcG9zc2libGUgdG8gY2xlYW4gdGhlbSB1cC4K
LQotR29vZ2xlIFRlc3QgaGFzIHRocmVlIGZlYXR1cmVzIGludGVuZGVkIHRvIHJhaXNlIGF3YXJl
bmVzcyBvZiB0aHJlYWRpbmcgaXNzdWVzLgotCi0gIDEuIEEgd2FybmluZyBpcyBlbWl0dGVkIGlm
IG11bHRpcGxlIHRocmVhZHMgYXJlIHJ1bm5pbmcgd2hlbiBhIGRlYXRoIHRlc3QgaXMgZW5jb3Vu
dGVyZWQuCi0gIDEuIFRlc3QgY2FzZXMgd2l0aCBhIG5hbWUgZW5kaW5nIGluICJEZWF0aFRlc3Qi
IGFyZSBydW4gYmVmb3JlIGFsbCBvdGhlciB0ZXN0cy4KLSAgMS4gSXQgdXNlcyBgY2xvbmUoKWAg
aW5zdGVhZCBvZiBgZm9yaygpYCB0byBzcGF3biB0aGUgY2hpbGQgcHJvY2VzcyBvbiBMaW51eCAo
YGNsb25lKClgIGlzIG5vdCBhdmFpbGFibGUgb24gQ3lnd2luIGFuZCBNYWMpLCBhcyBgZm9yaygp
YCBpcyBtb3JlIGxpa2VseSB0byBjYXVzZSB0aGUgY2hpbGQgdG8gaGFuZyB3aGVuIHRoZSBwYXJl
bnQgcHJvY2VzcyBoYXMgbXVsdGlwbGUgdGhyZWFkcy4KLQotSXQncyBwZXJmZWN0bHkgZmluZSB0
byBjcmVhdGUgdGhyZWFkcyBpbnNpZGUgYSBkZWF0aCB0ZXN0IHN0YXRlbWVudDsgdGhleSBhcmUK
LWV4ZWN1dGVkIGluIGEgc2VwYXJhdGUgcHJvY2VzcyBhbmQgY2Fubm90IGFmZmVjdCB0aGUgcGFy
ZW50LgotCi0jIyBEZWF0aCBUZXN0IFN0eWxlcyAjIwotCi1UaGUgInRocmVhZHNhZmUiIGRlYXRo
IHRlc3Qgc3R5bGUgd2FzIGludHJvZHVjZWQgaW4gb3JkZXIgdG8gaGVscCBtaXRpZ2F0ZSB0aGUK
LXJpc2tzIG9mIHRlc3RpbmcgaW4gYSBwb3NzaWJseSBtdWx0aXRocmVhZGVkIGVudmlyb25tZW50
LiBJdCB0cmFkZXMgaW5jcmVhc2VkCi10ZXN0IGV4ZWN1dGlvbiB0aW1lIChwb3RlbnRpYWxseSBk
cmFtYXRpY2FsbHkgc28pIGZvciBpbXByb3ZlZCB0aHJlYWQgc2FmZXR5LgotV2Ugc3VnZ2VzdCB1
c2luZyB0aGUgZmFzdGVyLCBkZWZhdWx0ICJmYXN0IiBzdHlsZSB1bmxlc3MgeW91ciB0ZXN0IGhh
cyBzcGVjaWZpYwotcHJvYmxlbXMgd2l0aCBpdC4KLQotWW91IGNhbiBjaG9vc2UgYSBwYXJ0aWN1
bGFyIHN0eWxlIG9mIGRlYXRoIHRlc3RzIGJ5IHNldHRpbmcgdGhlIGZsYWcKLXByb2dyYW1tYXRp
Y2FsbHk6Ci0KLWBgYAotOjp0ZXN0aW5nOjpGTEFHU19ndGVzdF9kZWF0aF90ZXN0X3N0eWxlID0g
InRocmVhZHNhZmUiOwotYGBgCi0KLVlvdSBjYW4gZG8gdGhpcyBpbiBgbWFpbigpYCB0byBzZXQg
dGhlIHN0eWxlIGZvciBhbGwgZGVhdGggdGVzdHMgaW4gdGhlCi1iaW5hcnksIG9yIGluIGluZGl2
aWR1YWwgdGVzdHMuIFJlY2FsbCB0aGF0IGZsYWdzIGFyZSBzYXZlZCBiZWZvcmUgcnVubmluZyBl
YWNoCi10ZXN0IGFuZCByZXN0b3JlZCBhZnRlcndhcmRzLCBzbyB5b3UgbmVlZCBub3QgZG8gdGhh
dCB5b3Vyc2VsZi4gRm9yIGV4YW1wbGU6Ci0KLWBgYAotVEVTVChNeURlYXRoVGVzdCwgVGVzdE9u
ZSkgewotICA6OnRlc3Rpbmc6OkZMQUdTX2d0ZXN0X2RlYXRoX3Rlc3Rfc3R5bGUgPSAidGhyZWFk
c2FmZSI7Ci0gIC8vIFRoaXMgdGVzdCBpcyBydW4gaW4gdGhlICJ0aHJlYWRzYWZlIiBzdHlsZToK
LSAgQVNTRVJUX0RFQVRIKFRoaXNTaG91bGREaWUoKSwgIiIpOwotfQotCi1URVNUKE15RGVhdGhU
ZXN0LCBUZXN0VHdvKSB7Ci0gIC8vIFRoaXMgdGVzdCBpcyBydW4gaW4gdGhlICJmYXN0IiBzdHls
ZToKLSAgQVNTRVJUX0RFQVRIKFRoaXNTaG91bGREaWUoKSwgIiIpOwotfQotCi1pbnQgbWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKLSAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJn
YywgYXJndik7Ci0gIDo6dGVzdGluZzo6RkxBR1NfZ3Rlc3RfZGVhdGhfdGVzdF9zdHlsZSA9ICJm
YXN0IjsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KLWBgYAotCi0jIyBDYXZlYXRzICMj
Ci0KLVRoZSBfc3RhdGVtZW50XyBhcmd1bWVudCBvZiBgQVNTRVJUX0VYSVQoKWAgY2FuIGJlIGFu
eSB2YWxpZCBDKysgc3RhdGVtZW50LgotSWYgaXQgbGVhdmVzIHRoZSBjdXJyZW50IGZ1bmN0aW9u
IHZpYSBhIGByZXR1cm5gIHN0YXRlbWVudCBvciBieSB0aHJvd2luZyBhbiBleGNlcHRpb24sCi10
aGUgZGVhdGggdGVzdCBpcyBjb25zaWRlcmVkIHRvIGhhdmUgZmFpbGVkLiAgU29tZSBHb29nbGUg
VGVzdCBtYWNyb3MgbWF5IHJldHVybgotZnJvbSB0aGUgY3VycmVudCBmdW5jdGlvbiAoZS5nLiBg
QVNTRVJUX1RSVUUoKWApLCBzbyBiZSBzdXJlIHRvIGF2b2lkIHRoZW0gaW4gX3N0YXRlbWVudF8u
Ci0KLVNpbmNlIF9zdGF0ZW1lbnRfIHJ1bnMgaW4gdGhlIGNoaWxkIHByb2Nlc3MsIGFueSBpbi1t
ZW1vcnkgc2lkZSBlZmZlY3QgKGUuZy4KLW1vZGlmeWluZyBhIHZhcmlhYmxlLCByZWxlYXNpbmcg
bWVtb3J5LCBldGMpIGl0IGNhdXNlcyB3aWxsIF9ub3RfIGJlIG9ic2VydmFibGUKLWluIHRoZSBw
YXJlbnQgcHJvY2Vzcy4gSW4gcGFydGljdWxhciwgaWYgeW91IHJlbGVhc2UgbWVtb3J5IGluIGEg
ZGVhdGggdGVzdCwKLXlvdXIgcHJvZ3JhbSB3aWxsIGZhaWwgdGhlIGhlYXAgY2hlY2sgYXMgdGhl
IHBhcmVudCBwcm9jZXNzIHdpbGwgbmV2ZXIgc2VlIHRoZQotbWVtb3J5IHJlY2xhaW1lZC4gVG8g
c29sdmUgdGhpcyBwcm9ibGVtLCB5b3UgY2FuCi0KLSAgMS4gdHJ5IG5vdCB0byBmcmVlIG1lbW9y
eSBpbiBhIGRlYXRoIHRlc3Q7Ci0gIDEuIGZyZWUgdGhlIG1lbW9yeSBhZ2FpbiBpbiB0aGUgcGFy
ZW50IHByb2Nlc3M7IG9yCi0gIDEuIGRvIG5vdCB1c2UgdGhlIGhlYXAgY2hlY2tlciBpbiB5b3Vy
IHByb2dyYW0uCi0KLUR1ZSB0byBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIHlvdSBjYW5ub3Qg
cGxhY2UgbXVsdGlwbGUgZGVhdGggdGVzdAotYXNzZXJ0aW9ucyBvbiB0aGUgc2FtZSBsaW5lOyBv
dGhlcndpc2UsIGNvbXBpbGF0aW9uIHdpbGwgZmFpbCB3aXRoIGFuIHVub2J2aW91cwotZXJyb3Ig
bWVzc2FnZS4KLQotRGVzcGl0ZSB0aGUgaW1wcm92ZWQgdGhyZWFkIHNhZmV0eSBhZmZvcmRlZCBi
eSB0aGUgInRocmVhZHNhZmUiIHN0eWxlIG9mIGRlYXRoCi10ZXN0LCB0aHJlYWQgcHJvYmxlbXMg
c3VjaCBhcyBkZWFkbG9jayBhcmUgc3RpbGwgcG9zc2libGUgaW4gdGhlIHByZXNlbmNlIG9mCi1o
YW5kbGVycyByZWdpc3RlcmVkIHdpdGggYHB0aHJlYWRfYXRmb3JrKDMpYC4KLQotIyBVc2luZyBB
c3NlcnRpb25zIGluIFN1Yi1yb3V0aW5lcyAjCi0KLSMjIEFkZGluZyBUcmFjZXMgdG8gQXNzZXJ0
aW9ucyAjIwotCi1JZiBhIHRlc3Qgc3ViLXJvdXRpbmUgaXMgY2FsbGVkIGZyb20gc2V2ZXJhbCBw
bGFjZXMsIHdoZW4gYW4gYXNzZXJ0aW9uCi1pbnNpZGUgaXQgZmFpbHMsIGl0IGNhbiBiZSBoYXJk
IHRvIHRlbGwgd2hpY2ggaW52b2NhdGlvbiBvZiB0aGUKLXN1Yi1yb3V0aW5lIHRoZSBmYWlsdXJl
IGlzIGZyb20uICBZb3UgY2FuIGFsbGV2aWF0ZSB0aGlzIHByb2JsZW0gdXNpbmcKLWV4dHJhIGxv
Z2dpbmcgb3IgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZXMsIGJ1dCB0aGF0IHVzdWFsbHkgY2x1dHRl
cnMgdXAKLXlvdXIgdGVzdHMuIEEgYmV0dGVyIHNvbHV0aW9uIGlzIHRvIHVzZSB0aGUgYFNDT1BF
RF9UUkFDRWAgbWFjcm86Ci0KLXwgYFNDT1BFRF9UUkFDRShgX21lc3NhZ2VfYCk7YCB8Ci18Oi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotCi13aGVyZSBfbWVzc2FnZV8gY2FuIGJlIGFu
eXRoaW5nIHN0cmVhbWFibGUgdG8gYHN0ZDo6b3N0cmVhbWAuIFRoaXMKLW1hY3JvIHdpbGwgY2F1
c2UgdGhlIGN1cnJlbnQgZmlsZSBuYW1lLCBsaW5lIG51bWJlciwgYW5kIHRoZSBnaXZlbgotbWVz
c2FnZSB0byBiZSBhZGRlZCBpbiBldmVyeSBmYWlsdXJlIG1lc3NhZ2UuIFRoZSBlZmZlY3Qgd2ls
bCBiZQotdW5kb25lIHdoZW4gdGhlIGNvbnRyb2wgbGVhdmVzIHRoZSBjdXJyZW50IGxleGljYWwg
c2NvcGUuCi0KLUZvciBleGFtcGxlLAotCi1gYGAKLTEwOiB2b2lkIFN1YjEoaW50IG4pIHsKLTEx
OiAgIEVYUEVDVF9FUSgxLCBCYXIobikpOwotMTI6ICAgRVhQRUNUX0VRKDIsIEJhcihuICsgMSkp
OwotMTM6IH0KLTE0OgotMTU6IFRFU1QoRm9vVGVzdCwgQmFyKSB7Ci0xNjogICB7Ci0xNzogICAg
IFNDT1BFRF9UUkFDRSgiQSIpOyAgLy8gVGhpcyB0cmFjZSBwb2ludCB3aWxsIGJlIGluY2x1ZGVk
IGluCi0xODogICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZlcnkgZmFpbHVyZSBpbiB0aGlz
IHNjb3BlLgotMTk6ICAgICBTdWIxKDEpOwotMjA6ICAgfQotMjE6ICAgLy8gTm93IGl0IHdvbid0
LgotMjI6ICAgU3ViMSg5KTsKLTIzOiB9Ci1gYGAKLQotY291bGQgcmVzdWx0IGluIG1lc3NhZ2Vz
IGxpa2UgdGhlc2U6Ci0KLWBgYAotcGF0aC90by9mb29fdGVzdC5jYzoxMTogRmFpbHVyZQotVmFs
dWUgb2Y6IEJhcihuKQotRXhwZWN0ZWQ6IDEKLSAgQWN0dWFsOiAyCi0gICBUcmFjZToKLXBhdGgv
dG8vZm9vX3Rlc3QuY2M6MTc6IEEKLQotcGF0aC90by9mb29fdGVzdC5jYzoxMjogRmFpbHVyZQot
VmFsdWUgb2Y6IEJhcihuICsgMSkKLUV4cGVjdGVkOiAyCi0gIEFjdHVhbDogMwotYGBgCi0KLVdp
dGhvdXQgdGhlIHRyYWNlLCBpdCB3b3VsZCd2ZSBiZWVuIGRpZmZpY3VsdCB0byBrbm93IHdoaWNo
IGludm9jYXRpb24KLW9mIGBTdWIxKClgIHRoZSB0d28gZmFpbHVyZXMgY29tZSBmcm9tIHJlc3Bl
Y3RpdmVseS4gKFlvdSBjb3VsZCBhZGQgYW4KLWV4dHJhIG1lc3NhZ2UgdG8gZWFjaCBhc3NlcnRp
b24gaW4gYFN1YjEoKWAgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mCi1gbmAsIGJ1dCB0aGF0J3Mg
dGVkaW91cy4pCi0KLVNvbWUgdGlwcyBvbiB1c2luZyBgU0NPUEVEX1RSQUNFYDoKLQotICAxLiBX
aXRoIGEgc3VpdGFibGUgbWVzc2FnZSwgaXQncyBvZnRlbiBlbm91Z2ggdG8gdXNlIGBTQ09QRURf
VFJBQ0VgIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzdWItcm91dGluZSwgaW5zdGVhZCBvZiBhdCBl
YWNoIGNhbGwgc2l0ZS4KLSAgMS4gV2hlbiBjYWxsaW5nIHN1Yi1yb3V0aW5lcyBpbnNpZGUgYSBs
b29wLCBtYWtlIHRoZSBsb29wIGl0ZXJhdG9yIHBhcnQgb2YgdGhlIG1lc3NhZ2UgaW4gYFNDT1BF
RF9UUkFDRWAgc3VjaCB0aGF0IHlvdSBjYW4ga25vdyB3aGljaCBpdGVyYXRpb24gdGhlIGZhaWx1
cmUgaXMgZnJvbS4KLSAgMS4gU29tZXRpbWVzIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgdHJhY2Ug
cG9pbnQgaXMgZW5vdWdoIGZvciBpZGVudGlmeWluZyB0aGUgcGFydGljdWxhciBpbnZvY2F0aW9u
IG9mIGEgc3ViLXJvdXRpbmUuIEluIHRoaXMgY2FzZSwgeW91IGRvbid0IGhhdmUgdG8gY2hvb3Nl
IGEgdW5pcXVlIG1lc3NhZ2UgZm9yIGBTQ09QRURfVFJBQ0VgLiBZb3UgY2FuIHNpbXBseSB1c2Ug
YCIiYC4KLSAgMS4gWW91IGNhbiB1c2UgYFNDT1BFRF9UUkFDRWAgaW4gYW4gaW5uZXIgc2NvcGUg
d2hlbiB0aGVyZSBpcyBvbmUgaW4gdGhlIG91dGVyIHNjb3BlLiBJbiB0aGlzIGNhc2UsIGFsbCBh
Y3RpdmUgdHJhY2UgcG9pbnRzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGZhaWx1cmUgbWVzc2Fn
ZXMsIGluIHJldmVyc2Ugb3JkZXIgdGhleSBhcmUgZW5jb3VudGVyZWQuCi0gIDEuIFRoZSB0cmFj
ZSBkdW1wIGlzIGNsaWNrYWJsZSBpbiBFbWFjcycgY29tcGlsYXRpb24gYnVmZmVyIC0gaGl0IHJl
dHVybiBvbiBhIGxpbmUgbnVtYmVyIGFuZCB5b3UnbGwgYmUgdGFrZW4gdG8gdGhhdCBsaW5lIGlu
IHRoZSBzb3VyY2UgZmlsZSEKLQotX0F2YWlsYWJpbGl0eTpfIExpbnV4LCBXaW5kb3dzLCBNYWMu
Ci0KLSMjIFByb3BhZ2F0aW5nIEZhdGFsIEZhaWx1cmVzICMjCi0KLUEgY29tbW9uIHBpdGZhbGwg
d2hlbiB1c2luZyBgQVNTRVJUXypgIGFuZCBgRkFJTCpgIGlzIG5vdCB1bmRlcnN0YW5kaW5nIHRo
YXQKLXdoZW4gdGhleSBmYWlsIHRoZXkgb25seSBhYm9ydCB0aGUgX2N1cnJlbnQgZnVuY3Rpb25f
LCBub3QgdGhlIGVudGlyZSB0ZXN0LiBGb3IKLWV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgdGVzdCB3
aWxsIHNlZ2ZhdWx0OgotYGBgCi12b2lkIFN1YnJvdXRpbmUoKSB7Ci0gIC8vIEdlbmVyYXRlcyBh
IGZhdGFsIGZhaWx1cmUgYW5kIGFib3J0cyB0aGUgY3VycmVudCBmdW5jdGlvbi4KLSAgQVNTRVJU
X0VRKDEsIDIpOwotICAvLyBUaGUgZm9sbG93aW5nIHdvbid0IGJlIGV4ZWN1dGVkLgotICAuLi4K
LX0KLQotVEVTVChGb29UZXN0LCBCYXIpIHsKLSAgU3Vicm91dGluZSgpOwotICAvLyBUaGUgaW50
ZW5kZWQgYmVoYXZpb3IgaXMgZm9yIHRoZSBmYXRhbCBmYWlsdXJlCi0gIC8vIGluIFN1YnJvdXRp
bmUoKSB0byBhYm9ydCB0aGUgZW50aXJlIHRlc3QuCi0gIC8vIFRoZSBhY3R1YWwgYmVoYXZpb3I6
IHRoZSBmdW5jdGlvbiBnb2VzIG9uIGFmdGVyIFN1YnJvdXRpbmUoKSByZXR1cm5zLgotICBpbnQq
IHAgPSBOVUxMOwotICAqcCA9IDM7IC8vIFNlZ2ZhdWx0IQotfQotYGBgCi0KLVNpbmNlIHdlIGRv
bid0IHVzZSBleGNlcHRpb25zLCBpdCBpcyB0ZWNobmljYWxseSBpbXBvc3NpYmxlIHRvCi1pbXBs
ZW1lbnQgdGhlIGludGVuZGVkIGJlaGF2aW9yIGhlcmUuICBUbyBhbGxldmlhdGUgdGhpcywgR29v
Z2xlIFRlc3QKLXByb3ZpZGVzIHR3byBzb2x1dGlvbnMuICBZb3UgY291bGQgdXNlIGVpdGhlciB0
aGUKLWAoQVNTRVJUfEVYUEVDVClfTk9fRkFUQUxfRkFJTFVSRWAgYXNzZXJ0aW9ucyBvciB0aGUK
LWBIYXNGYXRhbEZhaWx1cmUoKWAgZnVuY3Rpb24uICBUaGV5IGFyZSBkZXNjcmliZWQgaW4gdGhl
IGZvbGxvd2luZyB0d28KLXN1YnNlY3Rpb25zLgotCi0jIyMgQXNzZXJ0aW5nIG9uIFN1YnJvdXRp
bmVzICMjIwotCi1BcyBzaG93biBhYm92ZSwgaWYgeW91ciB0ZXN0IGNhbGxzIGEgc3Vicm91dGlu
ZSB0aGF0IGhhcyBhbiBgQVNTRVJUXypgCi1mYWlsdXJlIGluIGl0LCB0aGUgdGVzdCB3aWxsIGNv
bnRpbnVlIGFmdGVyIHRoZSBzdWJyb3V0aW5lCi1yZXR1cm5zLiBUaGlzIG1heSBub3QgYmUgd2hh
dCB5b3Ugd2FudC4KLQotT2Z0ZW4gcGVvcGxlIHdhbnQgZmF0YWwgZmFpbHVyZXMgdG8gcHJvcGFn
YXRlIGxpa2UgZXhjZXB0aW9ucy4gIEZvcgotdGhhdCBHb29nbGUgVGVzdCBvZmZlcnMgdGhlIGZv
bGxvd2luZyBtYWNyb3M6Ci0KLXwgKipGYXRhbCBhc3NlcnRpb24qKiB8ICoqTm9uZmF0YWwgYXNz
ZXJ0aW9uKiogfCAqKlZlcmlmaWVzKiogfAotfDotLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS18Ci18IGBBU1NFUlRfTk9fRkFUQUxfRkFJ
TFVSRShgX3N0YXRlbWVudF9gKTtgIHwgYEVYUEVDVF9OT19GQVRBTF9GQUlMVVJFKGBfc3RhdGVt
ZW50X2ApO2AgfCBfc3RhdGVtZW50XyBkb2Vzbid0IGdlbmVyYXRlIGFueSBuZXcgZmF0YWwgZmFp
bHVyZXMgaW4gdGhlIGN1cnJlbnQgdGhyZWFkLiB8Ci0KLU9ubHkgZmFpbHVyZXMgaW4gdGhlIHRo
cmVhZCB0aGF0IGV4ZWN1dGVzIHRoZSBhc3NlcnRpb24gYXJlIGNoZWNrZWQgdG8KLWRldGVybWlu
ZSB0aGUgcmVzdWx0IG9mIHRoaXMgdHlwZSBvZiBhc3NlcnRpb25zLiAgSWYgX3N0YXRlbWVudF8K
LWNyZWF0ZXMgbmV3IHRocmVhZHMsIGZhaWx1cmVzIGluIHRoZXNlIHRocmVhZHMgYXJlIGlnbm9y
ZWQuCi0KLUV4YW1wbGVzOgotCi1gYGAKLUFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKEZvbygpKTsK
LQotaW50IGk7Ci1FWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRSh7Ci0gIGkgPSBCYXIoKTsKLX0pOwot
YGBgCi0KLV9BdmFpbGFiaWxpdHk6XyBMaW51eCwgV2luZG93cywgTWFjLiBBc3NlcnRpb25zIGZy
b20gbXVsdGlwbGUgdGhyZWFkcwotYXJlIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgotCi0jIyMg
Q2hlY2tpbmcgZm9yIEZhaWx1cmVzIGluIHRoZSBDdXJyZW50IFRlc3QgIyMjCi0KLWBIYXNGYXRh
bEZhaWx1cmUoKWAgaW4gdGhlIGA6OnRlc3Rpbmc6OlRlc3RgIGNsYXNzIHJldHVybnMgYHRydWVg
IGlmIGFuCi1hc3NlcnRpb24gaW4gdGhlIGN1cnJlbnQgdGVzdCBoYXMgc3VmZmVyZWQgYSBmYXRh
bCBmYWlsdXJlLiBUaGlzCi1hbGxvd3MgZnVuY3Rpb25zIHRvIGNhdGNoIGZhdGFsIGZhaWx1cmVz
IGluIGEgc3ViLXJvdXRpbmUgYW5kIHJldHVybgotZWFybHkuCi0KLWBgYAotY2xhc3MgVGVzdCB7
Ci0gcHVibGljOgotICAuLi4KLSAgc3RhdGljIGJvb2wgSGFzRmF0YWxGYWlsdXJlKCk7Ci19Owot
YGBgCi0KLVRoZSB0eXBpY2FsIHVzYWdlLCB3aGljaCBiYXNpY2FsbHkgc2ltdWxhdGVzIHRoZSBi
ZWhhdmlvciBvZiBhIHRocm93bgotZXhjZXB0aW9uLCBpczoKLQotYGBgCi1URVNUKEZvb1Rlc3Qs
IEJhcikgewotICBTdWJyb3V0aW5lKCk7Ci0gIC8vIEFib3J0cyBpZiBTdWJyb3V0aW5lKCkgaGFk
IGEgZmF0YWwgZmFpbHVyZS4KLSAgaWYgKEhhc0ZhdGFsRmFpbHVyZSgpKQotICAgIHJldHVybjsK
LSAgLy8gVGhlIGZvbGxvd2luZyB3b24ndCBiZSBleGVjdXRlZC4KLSAgLi4uCi19Ci1gYGAKLQot
SWYgYEhhc0ZhdGFsRmFpbHVyZSgpYCBpcyB1c2VkIG91dHNpZGUgb2YgYFRFU1QoKWAgLCBgVEVT
VF9GKClgICwgb3IgYSB0ZXN0Ci1maXh0dXJlLCB5b3UgbXVzdCBhZGQgdGhlIGA6OnRlc3Rpbmc6
OlRlc3Q6OmAgcHJlZml4LCBhcyBpbjoKLQotYGBgCi1pZiAoOjp0ZXN0aW5nOjpUZXN0OjpIYXNG
YXRhbEZhaWx1cmUoKSkKLSAgcmV0dXJuOwotYGBgCi0KLVNpbWlsYXJseSwgYEhhc05vbmZhdGFs
RmFpbHVyZSgpYCByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCB0ZXN0Ci1oYXMgYXQgbGVh
c3Qgb25lIG5vbi1mYXRhbCBmYWlsdXJlLCBhbmQgYEhhc0ZhaWx1cmUoKWAgcmV0dXJucyBgdHJ1
ZWAKLWlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGF0IGxlYXN0IG9uZSBmYWlsdXJlIG9mIGVpdGhl
ciBraW5kLgotCi1fQXZhaWxhYmlsaXR5Ol8gTGludXgsIFdpbmRvd3MsIE1hYy4gIGBIYXNOb25m
YXRhbEZhaWx1cmUoKWAgYW5kCi1gSGFzRmFpbHVyZSgpYCBhcmUgYXZhaWxhYmxlIHNpbmNlIHZl
cnNpb24gMS40LjAuCi0KLSMgTG9nZ2luZyBBZGRpdGlvbmFsIEluZm9ybWF0aW9uICMKLQotSW4g
eW91ciB0ZXN0IGNvZGUsIHlvdSBjYW4gY2FsbCBgUmVjb3JkUHJvcGVydHkoImtleSIsIHZhbHVl
KWAgdG8gbG9nCi1hZGRpdGlvbmFsIGluZm9ybWF0aW9uLCB3aGVyZSBgdmFsdWVgIGNhbiBiZSBl
aXRoZXIgYSBzdHJpbmcgb3IgYW4gYGludGAuIFRoZSBfbGFzdF8gdmFsdWUgcmVjb3JkZWQgZm9y
IGEga2V5IHdpbGwgYmUgZW1pdHRlZCB0byB0aGUgWE1MIG91dHB1dAotaWYgeW91IHNwZWNpZnkg
b25lLiBGb3IgZXhhbXBsZSwgdGhlIHRlc3QKLQotYGBgCi1URVNUX0YoV2lkZ2V0VXNhZ2VUZXN0
LCBNaW5BbmRNYXhXaWRnZXRzKSB7Ci0gIFJlY29yZFByb3BlcnR5KCJNYXhpbXVtV2lkZ2V0cyIs
IENvbXB1dGVNYXhVc2FnZSgpKTsKLSAgUmVjb3JkUHJvcGVydHkoIk1pbmltdW1XaWRnZXRzIiwg
Q29tcHV0ZU1pblVzYWdlKCkpOwotfQotYGBgCi0KLXdpbGwgb3V0cHV0IFhNTCBsaWtlIHRoaXM6
Ci0KLWBgYAotLi4uCi0gIDx0ZXN0Y2FzZSBuYW1lPSJNaW5BbmRNYXhXaWRnZXRzIiBzdGF0dXM9
InJ1biIgdGltZT0iNiIgY2xhc3NuYW1lPSJXaWRnZXRVc2FnZVRlc3QiCi0gICAgICAgICAgICBN
YXhpbXVtV2lkZ2V0cz0iMTIiCi0gICAgICAgICAgICBNaW5pbXVtV2lkZ2V0cz0iOSIgLz4KLS4u
LgotYGBgCi0KLV9Ob3RlXzoKLSAgKiBgUmVjb3JkUHJvcGVydHkoKWAgaXMgYSBzdGF0aWMgbWVt
YmVyIG9mIHRoZSBgVGVzdGAgY2xhc3MuIFRoZXJlZm9yZSBpdCBuZWVkcyB0byBiZSBwcmVmaXhl
ZCB3aXRoIGA6OnRlc3Rpbmc6OlRlc3Q6OmAgaWYgdXNlZCBvdXRzaWRlIG9mIHRoZSBgVEVTVGAg
Ym9keSBhbmQgdGhlIHRlc3QgZml4dHVyZSBjbGFzcy4KLSAgKiBga2V5YCBtdXN0IGJlIGEgdmFs
aWQgWE1MIGF0dHJpYnV0ZSBuYW1lLCBhbmQgY2Fubm90IGNvbmZsaWN0IHdpdGggdGhlIG9uZXMg
YWxyZWFkeSB1c2VkIGJ5IEdvb2dsZSBUZXN0IChgbmFtZWAsIGBzdGF0dXNgLCBgdGltZWAsIGBj
bGFzc25hbWVgLCBgdHlwZV9wYXJhbWAsIGFuZCBgdmFsdWVfcGFyYW1gKS4KLSAgKiBDYWxsaW5n
IGBSZWNvcmRQcm9wZXJ0eSgpYCBvdXRzaWRlIG9mIHRoZSBsaWZlc3BhbiBvZiBhIHRlc3QgaXMg
YWxsb3dlZC4gSWYgaXQncyBjYWxsZWQgb3V0c2lkZSBvZiBhIHRlc3QgYnV0IGJldHdlZW4gYSB0
ZXN0IGNhc2UncyBgU2V0VXBUZXN0Q2FzZSgpYCBhbmQgYFRlYXJEb3duVGVzdENhc2UoKWAgbWV0
aG9kcywgaXQgd2lsbCBiZSBhdHRyaWJ1dGVkIHRvIHRoZSBYTUwgZWxlbWVudCBmb3IgdGhlIHRl
c3QgY2FzZS4gSWYgaXQncyBjYWxsZWQgb3V0c2lkZSBvZiBhbGwgdGVzdCBjYXNlcyAoZS5nLiBp
biBhIHRlc3QgZW52aXJvbm1lbnQpLCBpdCB3aWxsIGJlIGF0dHJpYnV0ZWQgdG8gdGhlIHRvcC1s
ZXZlbCBYTUwgZWxlbWVudC4KLQotX0F2YWlsYWJpbGl0eV86IExpbnV4LCBXaW5kb3dzLCBNYWMu
Ci0KLSMgU2hhcmluZyBSZXNvdXJjZXMgQmV0d2VlbiBUZXN0cyBpbiB0aGUgU2FtZSBUZXN0IENh
c2UgIwotCi0KLQotR29vZ2xlIFRlc3QgY3JlYXRlcyBhIG5ldyB0ZXN0IGZpeHR1cmUgb2JqZWN0
IGZvciBlYWNoIHRlc3QgaW4gb3JkZXIgdG8gbWFrZQotdGVzdHMgaW5kZXBlbmRlbnQgYW5kIGVh
c2llciB0byBkZWJ1Zy4gSG93ZXZlciwgc29tZXRpbWVzIHRlc3RzIHVzZSByZXNvdXJjZXMKLXRo
YXQgYXJlIGV4cGVuc2l2ZSB0byBzZXQgdXAsIG1ha2luZyB0aGUgb25lLWNvcHktcGVyLXRlc3Qg
bW9kZWwgcHJvaGliaXRpdmVseQotZXhwZW5zaXZlLgotCi1JZiB0aGUgdGVzdHMgZG9uJ3QgY2hh
bmdlIHRoZSByZXNvdXJjZSwgdGhlcmUncyBubyBoYXJtIGluIHRoZW0gc2hhcmluZyBhCi1zaW5n
bGUgcmVzb3VyY2UgY29weS4gU28sIGluIGFkZGl0aW9uIHRvIHBlci10ZXN0IHNldC11cC90ZWFy
LWRvd24sIEdvb2dsZSBUZXN0Ci1hbHNvIHN1cHBvcnRzIHBlci10ZXN0LWNhc2Ugc2V0LXVwL3Rl
YXItZG93bi4gVG8gdXNlIGl0OgotCi0gIDEuIEluIHlvdXIgdGVzdCBmaXh0dXJlIGNsYXNzIChz
YXkgYEZvb1Rlc3RgICksIGRlZmluZSBhcyBgc3RhdGljYCBzb21lIG1lbWJlciB2YXJpYWJsZXMg
dG8gaG9sZCB0aGUgc2hhcmVkIHJlc291cmNlcy4KLSAgMS4gSW4gdGhlIHNhbWUgdGVzdCBmaXh0
dXJlIGNsYXNzLCBkZWZpbmUgYSBgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpYCBmdW5jdGlv
biAocmVtZW1iZXIgbm90IHRvIHNwZWxsIGl0IGFzICoqYFNldHVwVGVzdENhc2VgKiogd2l0aCBh
IHNtYWxsIGB1YCEpIHRvIHNldCB1cCB0aGUgc2hhcmVkIHJlc291cmNlcyBhbmQgYSBgc3RhdGlj
IHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpYCBmdW5jdGlvbiB0byB0ZWFyIHRoZW0gZG93bi4KLQot
VGhhdCdzIGl0ISBHb29nbGUgVGVzdCBhdXRvbWF0aWNhbGx5IGNhbGxzIGBTZXRVcFRlc3RDYXNl
KClgIGJlZm9yZSBydW5uaW5nIHRoZQotX2ZpcnN0IHRlc3RfIGluIHRoZSBgRm9vVGVzdGAgdGVz
dCBjYXNlIChpLmUuIGJlZm9yZSBjcmVhdGluZyB0aGUgZmlyc3QKLWBGb29UZXN0YCBvYmplY3Qp
LCBhbmQgY2FsbHMgYFRlYXJEb3duVGVzdENhc2UoKWAgYWZ0ZXIgcnVubmluZyB0aGUgX2xhc3Qg
dGVzdF8KLWluIGl0IChpLmUuIGFmdGVyIGRlbGV0aW5nIHRoZSBsYXN0IGBGb29UZXN0YCBvYmpl
Y3QpLiBJbiBiZXR3ZWVuLCB0aGUgdGVzdHMKLWNhbiB1c2UgdGhlIHNoYXJlZCByZXNvdXJjZXMu
Ci0KLVJlbWVtYmVyIHRoYXQgdGhlIHRlc3Qgb3JkZXIgaXMgdW5kZWZpbmVkLCBzbyB5b3VyIGNv
ZGUgY2FuJ3QgZGVwZW5kIG9uIGEgdGVzdAotcHJlY2VkaW5nIG9yIGZvbGxvd2luZyBhbm90aGVy
LiBBbHNvLCB0aGUgdGVzdHMgbXVzdCBlaXRoZXIgbm90IG1vZGlmeSB0aGUKLXN0YXRlIG9mIGFu
eSBzaGFyZWQgcmVzb3VyY2UsIG9yLCBpZiB0aGV5IGRvIG1vZGlmeSB0aGUgc3RhdGUsIHRoZXkg
bXVzdAotcmVzdG9yZSB0aGUgc3RhdGUgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIGJlZm9yZSBwYXNz
aW5nIGNvbnRyb2wgdG8gdGhlIG5leHQKLXRlc3QuCi0KLUhlcmUncyBhbiBleGFtcGxlIG9mIHBl
ci10ZXN0LWNhc2Ugc2V0LXVwIGFuZCB0ZWFyLWRvd246Ci1gYGAKLWNsYXNzIEZvb1Rlc3QgOiBw
dWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIC8vIFBlci10ZXN0LWNhc2Ug
c2V0LXVwLgotICAvLyBDYWxsZWQgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluIHRoaXMgdGVzdCBj
YXNlLgotICAvLyBDYW4gYmUgb21pdHRlZCBpZiBub3QgbmVlZGVkLgotICBzdGF0aWMgdm9pZCBT
ZXRVcFRlc3RDYXNlKCkgewotICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBuZXcgLi4uOwotICB9Ci0K
LSAgLy8gUGVyLXRlc3QtY2FzZSB0ZWFyLWRvd24uCi0gIC8vIENhbGxlZCBhZnRlciB0aGUgbGFz
dCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlLgotICAvLyBDYW4gYmUgb21pdHRlZCBpZiBub3QgbmVl
ZGVkLgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIGRlbGV0ZSBzaGFy
ZWRfcmVzb3VyY2VfOwotICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBOVUxMOwotICB9Ci0KLSAgLy8g
WW91IGNhbiBkZWZpbmUgcGVyLXRlc3Qgc2V0LXVwIGFuZCB0ZWFyLWRvd24gbG9naWMgYXMgdXN1
YWwuCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsgLi4uIH0KLSAgdmlydHVhbCB2b2lkIFRlYXJE
b3duKCkgeyAuLi4gfQotCi0gIC8vIFNvbWUgZXhwZW5zaXZlIHJlc291cmNlIHNoYXJlZCBieSBh
bGwgdGVzdHMuCi0gIHN0YXRpYyBUKiBzaGFyZWRfcmVzb3VyY2VfOwotfTsKLQotVCogRm9vVGVz
dDo6c2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7Ci0KLVRFU1RfRihGb29UZXN0LCBUZXN0MSkgewot
ICAuLi4geW91IGNhbiByZWZlciB0byBzaGFyZWRfcmVzb3VyY2UgaGVyZSAuLi4KLX0KLVRFU1Rf
RihGb29UZXN0LCBUZXN0MikgewotICAuLi4geW91IGNhbiByZWZlciB0byBzaGFyZWRfcmVzb3Vy
Y2UgaGVyZSAuLi4KLX0KLWBgYAotCi1fQXZhaWxhYmlsaXR5Ol8gTGludXgsIFdpbmRvd3MsIE1h
Yy4KLQotIyBHbG9iYWwgU2V0LVVwIGFuZCBUZWFyLURvd24gIwotCi1KdXN0IGFzIHlvdSBjYW4g
ZG8gc2V0LXVwIGFuZCB0ZWFyLWRvd24gYXQgdGhlIHRlc3QgbGV2ZWwgYW5kIHRoZSB0ZXN0IGNh
c2UKLWxldmVsLCB5b3UgY2FuIGFsc28gZG8gaXQgYXQgdGhlIHRlc3QgcHJvZ3JhbSBsZXZlbC4g
SGVyZSdzIGhvdy4KLQotRmlyc3QsIHlvdSBzdWJjbGFzcyB0aGUgYDo6dGVzdGluZzo6RW52aXJv
bm1lbnRgIGNsYXNzIHRvIGRlZmluZSBhIHRlc3QKLWVudmlyb25tZW50LCB3aGljaCBrbm93cyBo
b3cgdG8gc2V0LXVwIGFuZCB0ZWFyLWRvd246Ci0KLWBgYAotY2xhc3MgRW52aXJvbm1lbnQgewot
IHB1YmxpYzoKLSAgdmlydHVhbCB+RW52aXJvbm1lbnQoKSB7fQotICAvLyBPdmVycmlkZSB0aGlz
IHRvIGRlZmluZSBob3cgdG8gc2V0IHVwIHRoZSBlbnZpcm9ubWVudC4KLSAgdmlydHVhbCB2b2lk
IFNldFVwKCkge30KLSAgLy8gT3ZlcnJpZGUgdGhpcyB0byBkZWZpbmUgaG93IHRvIHRlYXIgZG93
biB0aGUgZW52aXJvbm1lbnQuCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9Ci19OwotYGBg
Ci0KLVRoZW4sIHlvdSByZWdpc3RlciBhbiBpbnN0YW5jZSBvZiB5b3VyIGVudmlyb25tZW50IGNs
YXNzIHdpdGggR29vZ2xlIFRlc3QgYnkKLWNhbGxpbmcgdGhlIGA6OnRlc3Rpbmc6OkFkZEdsb2Jh
bFRlc3RFbnZpcm9ubWVudCgpYCBmdW5jdGlvbjoKLQotYGBgCi1FbnZpcm9ubWVudCogQWRkR2xv
YmFsVGVzdEVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpOwotYGBgCi0KLU5vdywgd2hlbiBg
UlVOX0FMTF9URVNUUygpYCBpcyBjYWxsZWQsIGl0IGZpcnN0IGNhbGxzIHRoZSBgU2V0VXAoKWAg
bWV0aG9kIG9mCi10aGUgZW52aXJvbm1lbnQgb2JqZWN0LCB0aGVuIHJ1bnMgdGhlIHRlc3RzIGlm
IHRoZXJlIHdhcyBubyBmYXRhbCBmYWlsdXJlcywgYW5kCi1maW5hbGx5IGNhbGxzIGBUZWFyRG93
bigpYCBvZiB0aGUgZW52aXJvbm1lbnQgb2JqZWN0LgotCi1JdCdzIE9LIHRvIHJlZ2lzdGVyIG11
bHRpcGxlIGVudmlyb25tZW50IG9iamVjdHMuIEluIHRoaXMgY2FzZSwgdGhlaXIgYFNldFVwKClg
Ci13aWxsIGJlIGNhbGxlZCBpbiB0aGUgb3JkZXIgdGhleSBhcmUgcmVnaXN0ZXJlZCwgYW5kIHRo
ZWlyIGBUZWFyRG93bigpYCB3aWxsIGJlCi1jYWxsZWQgaW4gdGhlIHJldmVyc2Ugb3JkZXIuCi0K
LU5vdGUgdGhhdCBHb29nbGUgVGVzdCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIHJlZ2lzdGVyZWQg
ZW52aXJvbm1lbnQgb2JqZWN0cy4KLVRoZXJlZm9yZSAqKmRvIG5vdCBkZWxldGUgdGhlbSoqIGJ5
IHlvdXJzZWxmLgotCi1Zb3Ugc2hvdWxkIGNhbGwgYEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgp
YCBiZWZvcmUgYFJVTl9BTExfVEVTVFMoKWAgaXMKLWNhbGxlZCwgcHJvYmFibHkgaW4gYG1haW4o
KWAuIElmIHlvdSB1c2UgYGd0ZXN0X21haW5gLCB5b3UgbmVlZCB0byAgICAgIGNhbGwKLXRoaXMg
YmVmb3JlIGBtYWluKClgIHN0YXJ0cyBmb3IgaXQgdG8gdGFrZSBlZmZlY3QuIE9uZSB3YXkgdG8g
ZG8gdGhpcyBpcyB0bwotZGVmaW5lIGEgZ2xvYmFsIHZhcmlhYmxlIGxpa2UgdGhpczoKLQotYGBg
Ci06OnRlc3Rpbmc6OkVudmlyb25tZW50KiBjb25zdCBmb29fZW52ID0gOjp0ZXN0aW5nOjpBZGRH
bG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IEZvb0Vudmlyb25tZW50KTsKLWBgYAotCi1Ib3dldmVy
LCB3ZSBzdHJvbmdseSByZWNvbW1lbmQgeW91IHRvIHdyaXRlIHlvdXIgb3duIGBtYWluKClgIGFu
ZCBjYWxsCi1gQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KClgIHRoZXJlLCBhcyByZWx5aW5nIG9u
IGluaXRpYWxpemF0aW9uIG9mIGdsb2JhbAotdmFyaWFibGVzIG1ha2VzIHRoZSBjb2RlIGhhcmRl
ciB0byByZWFkIGFuZCBtYXkgY2F1c2UgcHJvYmxlbXMgd2hlbiB5b3UKLXJlZ2lzdGVyIG11bHRp
cGxlIGVudmlyb25tZW50cyBmcm9tIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0cyBhbmQgdGhl
Ci1lbnZpcm9ubWVudHMgaGF2ZSBkZXBlbmRlbmNpZXMgYW1vbmcgdGhlbSAocmVtZW1iZXIgdGhh
dCB0aGUgY29tcGlsZXIgZG9lc24ndAotZ3VhcmFudGVlIHRoZSBvcmRlciBpbiB3aGljaCBnbG9i
YWwgdmFyaWFibGVzIGZyb20gZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVuaXRzCi1hcmUgaW5pdGlh
bGl6ZWQpLgotCi1fQXZhaWxhYmlsaXR5Ol8gTGludXgsIFdpbmRvd3MsIE1hYy4KLQotCi0jIFZh
bHVlIFBhcmFtZXRlcml6ZWQgVGVzdHMgIwotCi1fVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0c18g
YWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlmZmVyZW50Ci1wYXJhbWV0ZXJzIHdp
dGhvdXQgd3JpdGluZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4KLQotU3VwcG9z
ZSB5b3Ugd3JpdGUgYSB0ZXN0IGZvciB5b3VyIGNvZGUgYW5kIHRoZW4gcmVhbGl6ZSB0aGF0IHlv
dXIgY29kZSBpcyBhZmZlY3RlZCBieSBhIHByZXNlbmNlIG9mIGEgQm9vbGVhbiBjb21tYW5kIGxp
bmUgZmxhZy4KLQotYGBgCi1URVNUKE15Q29kZVRlc3QsIFRlc3RGb28pIHsKLSAgLy8gQSBjb2Rl
IHRvIHRlc3QgZm9vKCkuCi19Ci1gYGAKLQotVXN1YWxseSBwZW9wbGUgZmFjdG9yIHRoZWlyIHRl
c3QgY29kZSBpbnRvIGEgZnVuY3Rpb24gd2l0aCBhIEJvb2xlYW4gcGFyYW1ldGVyIGluIHN1Y2gg
c2l0dWF0aW9ucy4gVGhlIGZ1bmN0aW9uIHNldHMgdGhlIGZsYWcsIHRoZW4gZXhlY3V0ZXMgdGhl
IHRlc3RpbmcgY29kZS4KLQotYGBgCi12b2lkIFRlc3RGb29IZWxwZXIoYm9vbCBmbGFnX3ZhbHVl
KSB7Ci0gIGZsYWcgPSBmbGFnX3ZhbHVlOwotICAvLyBBIGNvZGUgdG8gdGVzdCBmb28oKS4KLX0K
LQotVEVTVChNeUNvZGVUZXN0LCBUZXN0Rm9vKSB7Ci0gIFRlc3RGb29IZWxwZXIoZmFsc2UpOwot
ICBUZXN0Rm9vSGVscGVyKHRydWUpOwotfQotYGBgCi0KLUJ1dCB0aGlzIHNldHVwIGhhcyBzZXJp
b3VzIGRyYXdiYWNrcy4gRmlyc3QsIHdoZW4gYSB0ZXN0IGFzc2VydGlvbiBmYWlscyBpbiB5b3Vy
IHRlc3RzLCBpdCBiZWNvbWVzIHVuY2xlYXIgd2hhdCB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyIGNh
dXNlZCBpdCB0byBmYWlsLiBZb3UgY2FuIHN0cmVhbSBhIGNsYXJpZnlpbmcgbWVzc2FnZSBpbnRv
IHlvdXIgYEVYUEVDVGAvYEFTU0VSVGAgc3RhdGVtZW50cywgYnV0IGl0IHlvdSdsbCBoYXZlIHRv
IGRvIGl0IHdpdGggYWxsIG9mIHRoZW0uIFNlY29uZCwgeW91IGhhdmUgdG8gYWRkIG9uZSBzdWNo
IGhlbHBlciBmdW5jdGlvbiBwZXIgdGVzdC4gV2hhdCBpZiB5b3UgaGF2ZSB0ZW4gdGVzdHM/IFR3
ZW50eT8gQSBodW5kcmVkPwotCi1WYWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIHdpbGwgbGV0IHlv
dSB3cml0ZSB5b3VyIHRlc3Qgb25seSBvbmNlIGFuZCB0aGVuIGVhc2lseSBpbnN0YW50aWF0ZSBh
bmQgcnVuIGl0IHdpdGggYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBwYXJhbWV0ZXIgdmFsdWVzLgot
Ci1IZXJlIGFyZSBzb21lIG90aGVyIHNpdHVhdGlvbnMgd2hlbiB2YWx1ZS1wYXJhbWV0ZXJpemVk
IHRlc3RzIGNvbWUgaGFuZHk6Ci0KLSAgKiBZb3Ugd2FudCB0byB0ZXN0IGRpZmZlcmVudCBpbXBs
ZW1lbnRhdGlvbnMgb2YgYW4gT08gaW50ZXJmYWNlLgotICAqIFlvdSB3YW50IHRvIHRlc3QgeW91
ciBjb2RlIG92ZXIgdmFyaW91cyBpbnB1dHMgKGEuay5hLiBkYXRhLWRyaXZlbiB0ZXN0aW5nKS4g
VGhpcyBmZWF0dXJlIGlzIGVhc3kgdG8gYWJ1c2UsIHNvIHBsZWFzZSBleGVyY2lzZSB5b3VyIGdv
b2Qgc2Vuc2Ugd2hlbiBkb2luZyBpdCEKLQotIyMgSG93IHRvIFdyaXRlIFZhbHVlLVBhcmFtZXRl
cml6ZWQgVGVzdHMgIyMKLQotVG8gd3JpdGUgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cywgZmly
c3QgeW91IHNob3VsZCBkZWZpbmUgYSBmaXh0dXJlCi1jbGFzcy4gIEl0IG11c3QgYmUgZGVyaXZl
ZCBmcm9tIGJvdGggYDo6dGVzdGluZzo6VGVzdGAgYW5kCi1gOjp0ZXN0aW5nOjpXaXRoUGFyYW1J
bnRlcmZhY2U8VD5gICh0aGUgbGF0dGVyIGlzIGEgcHVyZSBpbnRlcmZhY2UpLAotd2hlcmUgYFRg
IGlzIHRoZSB0eXBlIG9mIHlvdXIgcGFyYW1ldGVyIHZhbHVlcy4gIEZvciBjb252ZW5pZW5jZSwg
eW91Ci1jYW4ganVzdCBkZXJpdmUgdGhlIGZpeHR1cmUgY2xhc3MgZnJvbSBgOjp0ZXN0aW5nOjpU
ZXN0V2l0aFBhcmFtPFQ+YCwKLXdoaWNoIGl0c2VsZiBpcyBkZXJpdmVkIGZyb20gYm90aCBgOjp0
ZXN0aW5nOjpUZXN0YCBhbmQKLWA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxUPmAuIGBU
YCBjYW4gYmUgYW55IGNvcHlhYmxlIHR5cGUuIElmCi1pdCdzIGEgcmF3IHBvaW50ZXIsIHlvdSBh
cmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIHRoZSBsaWZlc3BhbiBvZgotdGhlIHBvaW50ZWQg
dmFsdWVzLgotCi1gYGAKLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0
aFBhcmFtPGNvbnN0IGNoYXIqPiB7Ci0gIC8vIFlvdSBjYW4gaW1wbGVtZW50IGFsbCB0aGUgdXN1
YWwgZml4dHVyZSBjbGFzcyBtZW1iZXJzIGhlcmUuCi0gIC8vIFRvIGFjY2VzcyB0aGUgdGVzdCBw
YXJhbWV0ZXIsIGNhbGwgR2V0UGFyYW0oKSBmcm9tIGNsYXNzCi0gIC8vIFRlc3RXaXRoUGFyYW08
VD4uCi19OwotCi0vLyBPciwgd2hlbiB5b3Ugd2FudCB0byBhZGQgcGFyYW1ldGVycyB0byBhIHBy
ZS1leGlzdGluZyBmaXh0dXJlIGNsYXNzOgotY2xhc3MgQmFzZVRlc3QgOiBwdWJsaWMgOjp0ZXN0
aW5nOjpUZXN0IHsKLSAgLi4uCi19OwotY2xhc3MgQmFyVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCwK
LSAgICAgICAgICAgICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8Y29u
c3QgY2hhcio+IHsKLSAgLi4uCi19OwotYGBgCi0KLVRoZW4sIHVzZSB0aGUgYFRFU1RfUGAgbWFj
cm8gdG8gZGVmaW5lIGFzIG1hbnkgdGVzdCBwYXR0ZXJucyB1c2luZwotdGhpcyBmaXh0dXJlIGFz
IHlvdSB3YW50LiAgVGhlIGBfUGAgc3VmZml4IGlzIGZvciAicGFyYW1ldGVyaXplZCIgb3IKLSJw
YXR0ZXJuIiwgd2hpY2hldmVyIHlvdSBwcmVmZXIgdG8gdGhpbmsuCi0KLWBgYAotVEVTVF9QKEZv
b1Rlc3QsIERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIGFjY2VzcyB0aGUgdGVzdCBw
YXJhbWV0ZXIgd2l0aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAgLy8gb2YgdGhlIFRlc3RXaXRo
UGFyYW08VD4gY2xhc3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFoKEdldFBhcmFtKCkpKTsKLSAg
Li4uCi19Ci0KLVRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewotICAuLi4KLX0KLWBgYAot
Ci1GaW5hbGx5LCB5b3UgY2FuIHVzZSBgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1BgIHRvIGluc3Rh
bnRpYXRlIHRoZSB0ZXN0Ci1jYXNlIHdpdGggYW55IHNldCBvZiBwYXJhbWV0ZXJzIHlvdSB3YW50
LiBHb29nbGUgVGVzdCBkZWZpbmVzIGEgbnVtYmVyIG9mCi1mdW5jdGlvbnMgZm9yIGdlbmVyYXRp
bmcgdGVzdCBwYXJhbWV0ZXJzLiBUaGV5IHJldHVybiB3aGF0IHdlIGNhbGwKLShzdXJwcmlzZSEp
IF9wYXJhbWV0ZXIgZ2VuZXJhdG9yc18uIEhlcmUgaXMgYSBzdW1tYXJ5IG9mIHRoZW0sCi13aGlj
aCBhcmUgYWxsIGluIHRoZSBgdGVzdGluZ2AgbmFtZXNwYWNlOgotCi18IGBSYW5nZShiZWdpbiwg
ZW5kWywgc3RlcF0pYCB8IFlpZWxkcyB2YWx1ZXMgYHtiZWdpbiwgYmVnaW4rc3RlcCwgYmVnaW4r
c3RlcCtzdGVwLCAuLi59YC4gVGhlIHZhbHVlcyBkbyBub3QgaW5jbHVkZSBgZW5kYC4gYHN0ZXBg
IGRlZmF1bHRzIHRvIDEuIHwKLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotfCBg
VmFsdWVzKHYxLCB2MiwgLi4uLCB2TilgICAgfCBZaWVsZHMgdmFsdWVzIGB7djEsIHYyLCAuLi4s
IHZOfWAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGBWYWx1ZXNJbihjb250YWluZXIpYCBh
bmQgYFZhbHVlc0luKGJlZ2luLCBlbmQpYCB8IFlpZWxkcyB2YWx1ZXMgZnJvbSBhIEMtc3R5bGUg
YXJyYXksIGFuIFNUTC1zdHlsZSBjb250YWluZXIsIG9yIGFuIGl0ZXJhdG9yIHJhbmdlIGBbYmVn
aW4sIGVuZClgLiBgY29udGFpbmVyYCwgYGJlZ2luYCwgYW5kIGBlbmRgIGNhbiBiZSBleHByZXNz
aW9ucyB3aG9zZSB2YWx1ZXMgYXJlIGRldGVybWluZWQgYXQgcnVuIHRpbWUuICB8Ci18IGBCb29s
KClgICAgICAgICAgICAgICAgICAgICB8IFlpZWxkcyBzZXF1ZW5jZSBge2ZhbHNlLCB0cnVlfWAu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYENvbWJpbmUoZzEsIGcyLCAuLi4sIGdOKWAg
IHwgWWllbGRzIGFsbCBjb21iaW5hdGlvbnMgKHRoZSBDYXJ0ZXNpYW4gcHJvZHVjdCBmb3IgdGhl
IG1hdGggc2F2dnkpIG9mIHRoZSB2YWx1ZXMgZ2VuZXJhdGVkIGJ5IHRoZSBgTmAgZ2VuZXJhdG9y
cy4gVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBpZiB5b3VyIHN5c3RlbSBwcm92aWRlcyB0aGUgYDx0
cjEvdHVwbGU+YCBoZWFkZXIuIElmIHlvdSBhcmUgc3VyZSB5b3VyIHN5c3RlbSBkb2VzLCBhbmQg
R29vZ2xlIFRlc3QgZGlzYWdyZWVzLCB5b3UgY2FuIG92ZXJyaWRlIGl0IGJ5IGRlZmluaW5nIGBH
VEVTVF9IQVNfVFIxX1RVUExFPTFgLiBTZWUgY29tbWVudHMgaW4gW2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcG9ydC5oXSguLi9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQu
aCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uIHwKLQotRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoZSBj
b21tZW50cyBhdCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGluIHRoZSBbc291
cmNlIGNvZGVdKC4uL2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oKS4KLQotVGhlIGZv
bGxvd2luZyBzdGF0ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIHRoZSBgRm9vVGVz
dGAgdGVzdCBjYXNlCi1lYWNoIHdpdGggcGFyYW1ldGVyIHZhbHVlcyBgIm1lZW55ImAsIGAibWlu
eSJgLCBhbmQgYCJtb2UiYC4KLQotYGBgCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChJbnN0YW50
aWF0aW9uTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZvb1Rlc3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7
Ci1gYGAKLQotVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVy
biAoeWVzLCB5b3UgY2FuCi1pbnN0YW50aWF0ZSBpdCBtb3JlIHRoYW4gb25jZSksIHRoZSBmaXJz
dCBhcmd1bWVudCB0bwotYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QYCBpcyBhIHByZWZpeCB0aGF0
IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGFjdHVhbAotdGVzdCBjYXNlIG5hbWUuIFJlbWVtYmVyIHRv
IHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvciBkaWZmZXJlbnQKLWluc3RhbnRpYXRpb25zLiBUaGUg
dGVzdHMgZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBhYm92ZSB3aWxsIGhhdmUgdGhlc2UKLW5hbWVz
OgotCi0gICogYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMGAgZm9yIGAibWVl
bnkiYAotICAqIGBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzFgIGZvciBgIm1p
bnkiYAotICAqIGBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzJgIGZvciBgIm1v
ZSJgCi0gICogYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMGAgZm9yIGAi
bWVlbnkiYAotICAqIGBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzFgIGZv
ciBgIm1pbnkiYAotICAqIGBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzJg
IGZvciBgIm1vZSJgCi0KLVlvdSBjYW4gdXNlIHRoZXNlIG5hbWVzIGluIFstLWd0ZXN0XF9maWx0
ZXJdKCNydW5uaW5nLWEtc3Vic2V0LW9mLXRoZS10ZXN0cykuCi0KLVRoaXMgc3RhdGVtZW50IHdp
bGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzIGZyb20gYEZvb1Rlc3RgIGFnYWluLCBlYWNoCi13aXRo
IHBhcmFtZXRlciB2YWx1ZXMgYCJjYXQiYCBhbmQgYCJkb2ciYDoKLQotYGBgCi1jb25zdCBjaGFy
KiBwZXRzW10gPSB7ImNhdCIsICJkb2cifTsKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3Ro
ZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIDo6
dGVzdGluZzo6VmFsdWVzSW4ocGV0cykpOwotYGBgCi0KLVRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0
YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZSB0aGVzZSBuYW1lczoKLQotICAqIGBBbm90aGVySW5z
dGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8wYCBmb3IgYCJjYXQiYAotICAqIGBBbm90
aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8xYCBmb3IgYCJkb2ciYAotICAq
IGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8wYCBmb3IgYCJj
YXQiYAotICAqIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8x
YCBmb3IgYCJkb2ciYAotCi1QbGVhc2Ugbm90ZSB0aGF0IGBJTlNUQU5USUFURV9URVNUX0NBU0Vf
UGAgd2lsbCBpbnN0YW50aWF0ZSBfYWxsXwotdGVzdHMgaW4gdGhlIGdpdmVuIHRlc3QgY2FzZSwg
d2hldGhlciB0aGVpciBkZWZpbml0aW9ucyBjb21lIGJlZm9yZSBvcgotX2FmdGVyXyB0aGUgYElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QYCBzdGF0ZW1lbnQuCi0KLVlvdSBjYW4gc2VlCi1bdGhlc2Vd
KC4uL3NhbXBsZXMvc2FtcGxlN191bml0dGVzdC5jYykKLVtmaWxlc10oLi4vc2FtcGxlcy9zYW1w
bGU4X3VuaXR0ZXN0LmNjKSBmb3IgbW9yZSBleGFtcGxlcy4KLQotX0F2YWlsYWJpbGl0eV86IExp
bnV4LCBXaW5kb3dzIChyZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIE1hYzsgc2luY2UgdmVy
c2lvbiAxLjIuMC4KLQotIyMgQ3JlYXRpbmcgVmFsdWUtUGFyYW1ldGVyaXplZCBBYnN0cmFjdCBU
ZXN0cyAjIwotCi1JbiB0aGUgYWJvdmUsIHdlIGRlZmluZSBhbmQgaW5zdGFudGlhdGUgYEZvb1Rl
c3RgIGluIHRoZSBzYW1lIHNvdXJjZQotZmlsZS4gU29tZXRpbWVzIHlvdSBtYXkgd2FudCB0byBk
ZWZpbmUgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBhCi1saWJyYXJ5IGFuZCBsZXQgb3Ro
ZXIgcGVvcGxlIGluc3RhbnRpYXRlIHRoZW0gbGF0ZXIuIFRoaXMgcGF0dGVybiBpcwota25vd24g
YXMgPGk+YWJzdHJhY3QgdGVzdHM8L2k+LiBBcyBhbiBleGFtcGxlIG9mIGl0cyBhcHBsaWNhdGlv
biwgd2hlbiB5b3UKLWFyZSBkZXNpZ25pbmcgYW4gaW50ZXJmYWNlIHlvdSBjYW4gd3JpdGUgYSBz
dGFuZGFyZCBzdWl0ZSBvZiBhYnN0cmFjdAotdGVzdHMgKHBlcmhhcHMgdXNpbmcgYSBmYWN0b3J5
IGZ1bmN0aW9uIGFzIHRoZSB0ZXN0IHBhcmFtZXRlcikgdGhhdAotYWxsIGltcGxlbWVudGF0aW9u
cyBvZiB0aGUgaW50ZXJmYWNlIGFyZSBleHBlY3RlZCB0byBwYXNzLiBXaGVuCi1zb21lb25lIGlt
cGxlbWVudHMgdGhlIGludGVyZmFjZSwgdGhleSBjYW4gaW5zdGFudGlhdGUgeW91ciBzdWl0ZSB0
byBnZXQKLWFsbCB0aGUgaW50ZXJmYWNlLWNvbmZvcm1hbmNlIHRlc3RzIGZvciBmcmVlLgotCi1U
byBkZWZpbmUgYWJzdHJhY3QgdGVzdHMsIHlvdSBzaG91bGQgb3JnYW5pemUgeW91ciBjb2RlIGxp
a2UgdGhpczoKLQotICAxLiBQdXQgdGhlIGRlZmluaXRpb24gb2YgdGhlIHBhcmFtZXRlcml6ZWQg
dGVzdCBmaXh0dXJlIGNsYXNzIChlLmcuIGBGb29UZXN0YCkgaW4gYSBoZWFkZXIgZmlsZSwgc2F5
IGBmb29fcGFyYW1fdGVzdC5oYC4gVGhpbmsgb2YgdGhpcyBhcyBfZGVjbGFyaW5nXyB5b3VyIGFi
c3RyYWN0IHRlc3RzLgotICAxLiBQdXQgdGhlIGBURVNUX1BgIGRlZmluaXRpb25zIGluIGBmb29f
cGFyYW1fdGVzdC5jY2AsIHdoaWNoIGluY2x1ZGVzIGBmb29fcGFyYW1fdGVzdC5oYC4gVGhpbmsg
b2YgdGhpcyBhcyBfaW1wbGVtZW50aW5nXyB5b3VyIGFic3RyYWN0IHRlc3RzLgotCi1PbmNlIHRo
ZXkgYXJlIGRlZmluZWQsIHlvdSBjYW4gaW5zdGFudGlhdGUgdGhlbSBieSBpbmNsdWRpbmcKLWBm
b29fcGFyYW1fdGVzdC5oYCwgaW52b2tpbmcgYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKClgLCBh
bmQgbGlua2luZwotd2l0aCBgZm9vX3BhcmFtX3Rlc3QuY2NgLiBZb3UgY2FuIGluc3RhbnRpYXRl
IHRoZSBzYW1lIGFic3RyYWN0IHRlc3QKLWNhc2UgbXVsdGlwbGUgdGltZXMsIHBvc3NpYmx5IGlu
IGRpZmZlcmVudCBzb3VyY2UgZmlsZXMuCi0KLSMgVHlwZWQgVGVzdHMgIwotCi1TdXBwb3NlIHlv
dSBoYXZlIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgc2FtZSBpbnRlcmZhY2UgYW5k
Ci13YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGVtIHNhdGlzZnkgc29tZSBjb21tb24g
cmVxdWlyZW1lbnRzLgotT3IsIHlvdSBtYXkgaGF2ZSBkZWZpbmVkIHNldmVyYWwgdHlwZXMgdGhh
dCBhcmUgc3VwcG9zZWQgdG8gY29uZm9ybSB0bwotdGhlIHNhbWUgImNvbmNlcHQiIGFuZCB5b3Ug
d2FudCB0byB2ZXJpZnkgaXQuICBJbiBib3RoIGNhc2VzLCB5b3Ugd2FudAotdGhlIHNhbWUgdGVz
dCBsb2dpYyByZXBlYXRlZCBmb3IgZGlmZmVyZW50IHR5cGVzLgotCi1XaGlsZSB5b3UgY2FuIHdy
aXRlIG9uZSBgVEVTVGAgb3IgYFRFU1RfRmAgZm9yIGVhY2ggdHlwZSB5b3Ugd2FudCB0bwotdGVz
dCAoYW5kIHlvdSBtYXkgZXZlbiBmYWN0b3IgdGhlIHRlc3QgbG9naWMgaW50byBhIGZ1bmN0aW9u
IHRlbXBsYXRlCi10aGF0IHlvdSBpbnZva2UgZnJvbSB0aGUgYFRFU1RgKSwgaXQncyB0ZWRpb3Vz
IGFuZCBkb2Vzbid0IHNjYWxlOgotaWYgeW91IHdhbnQgX21fIHRlc3RzIG92ZXIgX25fIHR5cGVz
LCB5b3UnbGwgZW5kIHVwIHdyaXRpbmcgX21cKm5fCi1gVEVTVGBzLgotCi1fVHlwZWQgdGVzdHNf
IGFsbG93IHlvdSB0byByZXBlYXQgdGhlIHNhbWUgdGVzdCBsb2dpYyBvdmVyIGEgbGlzdCBvZgot
dHlwZXMuICBZb3Ugb25seSBuZWVkIHRvIHdyaXRlIHRoZSB0ZXN0IGxvZ2ljIG9uY2UsIGFsdGhv
dWdoIHlvdSBtdXN0Ci1rbm93IHRoZSB0eXBlIGxpc3Qgd2hlbiB3cml0aW5nIHR5cGVkIHRlc3Rz
LiAgSGVyZSdzIGhvdyB5b3UgZG8gaXQ6Ci0KLUZpcnN0LCBkZWZpbmUgYSBmaXh0dXJlIGNsYXNz
IHRlbXBsYXRlLiAgSXQgc2hvdWxkIGJlIHBhcmFtZXRlcml6ZWQKLWJ5IGEgdHlwZS4gIFJlbWVt
YmVyIHRvIGRlcml2ZSBpdCBmcm9tIGA6OnRlc3Rpbmc6OlRlc3RgOgotCi1gYGAKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qgewot
IHB1YmxpYzoKLSAgLi4uCi0gIHR5cGVkZWYgc3RkOjpsaXN0PFQ+IExpc3Q7Ci0gIHN0YXRpYyBU
IHNoYXJlZF87Ci0gIFQgdmFsdWVfOwotfTsKLWBgYAotCi1OZXh0LCBhc3NvY2lhdGUgYSBsaXN0
IG9mIHR5cGVzIHdpdGggdGhlIHRlc3QgY2FzZSwgd2hpY2ggd2lsbCBiZQotcmVwZWF0ZWQgZm9y
IGVhY2ggdHlwZSBpbiB0aGUgbGlzdDoKLQotYGBgCi10eXBlZGVmIDo6dGVzdGluZzo6VHlwZXM8
Y2hhciwgaW50LCB1bnNpZ25lZCBpbnQ+IE15VHlwZXM7Ci1UWVBFRF9URVNUX0NBU0UoRm9vVGVz
dCwgTXlUeXBlcyk7Ci1gYGAKLQotVGhlIGB0eXBlZGVmYCBpcyBuZWNlc3NhcnkgZm9yIHRoZSBg
VFlQRURfVEVTVF9DQVNFYCBtYWNybyB0byBwYXJzZQotY29ycmVjdGx5LiAgT3RoZXJ3aXNlIHRo
ZSBjb21waWxlciB3aWxsIHRoaW5rIHRoYXQgZWFjaCBjb21tYSBpbiB0aGUKLXR5cGUgbGlzdCBp
bnRyb2R1Y2VzIGEgbmV3IG1hY3JvIGFyZ3VtZW50LgotCi1UaGVuLCB1c2UgYFRZUEVEX1RFU1Qo
KWAgaW5zdGVhZCBvZiBgVEVTVF9GKClgIHRvIGRlZmluZSBhIHR5cGVkIHRlc3QKLWZvciB0aGlz
IHRlc3QgY2FzZS4gIFlvdSBjYW4gcmVwZWF0IHRoaXMgYXMgbWFueSB0aW1lcyBhcyB5b3Ugd2Fu
dDoKLQotYGBgCi1UWVBFRF9URVNUKEZvb1Rlc3QsIERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBh
IHRlc3QsIHJlZmVyIHRvIHRoZSBzcGVjaWFsIG5hbWUgVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlw
ZQotICAvLyBwYXJhbWV0ZXIuICBTaW5jZSB3ZSBhcmUgaW5zaWRlIGEgZGVyaXZlZCBjbGFzcyB0
ZW1wbGF0ZSwgQysrIHJlcXVpcmVzCi0gIC8vIHVzIHRvIHZpc2l0IHRoZSBtZW1iZXJzIG9mIEZv
b1Rlc3QgdmlhICd0aGlzJy4KLSAgVHlwZVBhcmFtIG4gPSB0aGlzLT52YWx1ZV87Ci0KLSAgLy8g
VG8gdmlzaXQgc3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUsIGFkZCB0aGUgJ1Rlc3RGaXh0
dXJlOjonCi0gIC8vIHByZWZpeC4KLSAgbiArPSBUZXN0Rml4dHVyZTo6c2hhcmVkXzsKLQotICAv
LyBUbyByZWZlciB0byB0eXBlZGVmcyBpbiB0aGUgZml4dHVyZSwgYWRkIHRoZSAndHlwZW5hbWUg
VGVzdEZpeHR1cmU6OicKLSAgLy8gcHJlZml4LiAgVGhlICd0eXBlbmFtZScgaXMgcmVxdWlyZWQg
dG8gc2F0aXNmeSB0aGUgY29tcGlsZXIuCi0gIHR5cGVuYW1lIFRlc3RGaXh0dXJlOjpMaXN0IHZh
bHVlczsKLSAgdmFsdWVzLnB1c2hfYmFjayhuKTsKLSAgLi4uCi19Ci0KLVRZUEVEX1RFU1QoRm9v
VGVzdCwgSGFzUHJvcGVydHlBKSB7IC4uLiB9Ci1gYGAKLQotWW91IGNhbiBzZWUgW2BzYW1wbGVz
L3NhbXBsZTZfdW5pdHRlc3QuY2NgXSguLi9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MpIGZv
ciBhIGNvbXBsZXRlIGV4YW1wbGUuCi0KLV9BdmFpbGFiaWxpdHk6XyBMaW51eCwgV2luZG93cyAo
cmVxdWlyZXMgTVNWQyA4LjAgb3IgYWJvdmUpLCBNYWM7Ci1zaW5jZSB2ZXJzaW9uIDEuMS4wLgot
Ci0jIFR5cGUtUGFyYW1ldGVyaXplZCBUZXN0cyAjCi0KLV9UeXBlLXBhcmFtZXRlcml6ZWQgdGVz
dHNfIGFyZSBsaWtlIHR5cGVkIHRlc3RzLCBleGNlcHQgdGhhdCB0aGV5Ci1kb24ndCByZXF1aXJl
IHlvdSB0byBrbm93IHRoZSBsaXN0IG9mIHR5cGVzIGFoZWFkIG9mIHRpbWUuICBJbnN0ZWFkLAot
eW91IGNhbiBkZWZpbmUgdGhlIHRlc3QgbG9naWMgZmlyc3QgYW5kIGluc3RhbnRpYXRlIGl0IHdp
dGggZGlmZmVyZW50Ci10eXBlIGxpc3RzIGxhdGVyLiAgWW91IGNhbiBldmVuIGluc3RhbnRpYXRl
IGl0IG1vcmUgdGhhbiBvbmNlIGluIHRoZQotc2FtZSBwcm9ncmFtLgotCi1JZiB5b3UgYXJlIGRl
c2lnbmluZyBhbiBpbnRlcmZhY2Ugb3IgY29uY2VwdCwgeW91IGNhbiBkZWZpbmUgYSBzdWl0ZQot
b2YgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIHRvIHZlcmlmeSBwcm9wZXJ0aWVzIHRoYXQgYW55
IHZhbGlkCi1pbXBsZW1lbnRhdGlvbiBvZiB0aGUgaW50ZXJmYWNlL2NvbmNlcHQgc2hvdWxkIGhh
dmUuICBUaGVuLCB0aGUgYXV0aG9yCi1vZiBlYWNoIGltcGxlbWVudGF0aW9uIGNhbiBqdXN0IGlu
c3RhbnRpYXRlIHRoZSB0ZXN0IHN1aXRlIHdpdGggaGlzCi10eXBlIHRvIHZlcmlmeSB0aGF0IGl0
IGNvbmZvcm1zIHRvIHRoZSByZXF1aXJlbWVudHMsIHdpdGhvdXQgaGF2aW5nIHRvCi13cml0ZSBz
aW1pbGFyIHRlc3RzIHJlcGVhdGVkbHkuICBIZXJlJ3MgYW4gZXhhbXBsZToKLQotRmlyc3QsIGRl
ZmluZSBhIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUsIGFzIHdlIGRpZCB3aXRoIHR5cGVkIHRlc3Rz
OgotCi1gYGAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6
OnRlc3Rpbmc6OlRlc3QgewotICAuLi4KLX07Ci1gYGAKLQotTmV4dCwgZGVjbGFyZSB0aGF0IHlv
dSB3aWxsIGRlZmluZSBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2U6Ci0KLWBgYAotVFlQ
RURfVEVTVF9DQVNFX1AoRm9vVGVzdCk7Ci1gYGAKLQotVGhlIGBfUGAgc3VmZml4IGlzIGZvciAi
cGFyYW1ldGVyaXplZCIgb3IgInBhdHRlcm4iLCB3aGljaGV2ZXIgeW91Ci1wcmVmZXIgdG8gdGhp
bmsuCi0KLVRoZW4sIHVzZSBgVFlQRURfVEVTVF9QKClgIHRvIGRlZmluZSBhIHR5cGUtcGFyYW1l
dGVyaXplZCB0ZXN0LiAgWW91Ci1jYW4gcmVwZWF0IHRoaXMgYXMgbWFueSB0aW1lcyBhcyB5b3Ug
d2FudDoKLQotYGBgCi1UWVBFRF9URVNUX1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKLSAgLy8gSW5z
aWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJhbWV0ZXIu
Ci0gIFR5cGVQYXJhbSBuID0gMDsKLSAgLi4uCi19Ci0KLVRZUEVEX1RFU1RfUChGb29UZXN0LCBI
YXNQcm9wZXJ0eUEpIHsgLi4uIH0KLWBgYAotCi1Ob3cgdGhlIHRyaWNreSBwYXJ0OiB5b3UgbmVl
ZCB0byByZWdpc3RlciBhbGwgdGVzdCBwYXR0ZXJucyB1c2luZyB0aGUKLWBSRUdJU1RFUl9UWVBF
RF9URVNUX0NBU0VfUGAgbWFjcm8gYmVmb3JlIHlvdSBjYW4gaW5zdGFudGlhdGUgdGhlbS4KLVRo
ZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgbWFjcm8gaXMgdGhlIHRlc3QgY2FzZSBuYW1lOyB0aGUg
cmVzdCBhcmUKLXRoZSBuYW1lcyBvZiB0aGUgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2U6Ci0KLWBg
YAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRm9vVGVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIERvZXNCbGFoLCBIYXNQcm9wZXJ0eUEpOwotYGBgCi0KLUZpbmFsbHksIHlvdSBh
cmUgZnJlZSB0byBpbnN0YW50aWF0ZSB0aGUgcGF0dGVybiB3aXRoIHRoZSB0eXBlcyB5b3UKLXdh
bnQuICBJZiB5b3UgcHV0IHRoZSBhYm92ZSBjb2RlIGluIGEgaGVhZGVyIGZpbGUsIHlvdSBjYW4g
YCNpbmNsdWRlYAotaXQgaW4gbXVsdGlwbGUgQysrIHNvdXJjZSBmaWxlcyBhbmQgaW5zdGFudGlh
dGUgaXQgbXVsdGlwbGUgdGltZXMuCi0KLWBgYAotdHlwZWRlZiA6OnRlc3Rpbmc6OlR5cGVzPGNo
YXIsIGludCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9D
QVNFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMpOwotYGBgCi0KLVRvIGRpc3Rpbmd1aXNoIGRpZmZl
cmVudCBpbnN0YW5jZXMgb2YgdGhlIHBhdHRlcm4sIHRoZSBmaXJzdCBhcmd1bWVudAotdG8gdGhl
IGBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUGAgbWFjcm8gaXMgYSBwcmVmaXggdGhhdCB3
aWxsIGJlCi1hZGRlZCB0byB0aGUgYWN0dWFsIHRlc3QgY2FzZSBuYW1lLiAgUmVtZW1iZXIgdG8g
cGljayB1bmlxdWUgcHJlZml4ZXMKLWZvciBkaWZmZXJlbnQgaW5zdGFuY2VzLgotCi1JbiB0aGUg
c3BlY2lhbCBjYXNlIHdoZXJlIHRoZSB0eXBlIGxpc3QgY29udGFpbnMgb25seSBvbmUgdHlwZSwg
eW91Ci1jYW4gd3JpdGUgdGhhdCB0eXBlIGRpcmVjdGx5IHdpdGhvdXQgYDo6dGVzdGluZzo6VHlw
ZXM8Li4uPmAsIGxpa2UgdGhpczoKLQotYGBgCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0Vf
UChNeSwgRm9vVGVzdCwgaW50KTsKLWBgYAotCi1Zb3UgY2FuIHNlZSBgc2FtcGxlcy9zYW1wbGU2
X3VuaXR0ZXN0LmNjYCBmb3IgYSBjb21wbGV0ZSBleGFtcGxlLgotCi1fQXZhaWxhYmlsaXR5Ol8g
TGludXgsIFdpbmRvd3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwgTWFjOwotc2luY2Ug
dmVyc2lvbiAxLjEuMC4KLQotIyBUZXN0aW5nIFByaXZhdGUgQ29kZSAjCi0KLUlmIHlvdSBjaGFu
Z2UgeW91ciBzb2Z0d2FyZSdzIGludGVybmFsIGltcGxlbWVudGF0aW9uLCB5b3VyIHRlc3RzIHNo
b3VsZCBub3QKLWJyZWFrIGFzIGxvbmcgYXMgdGhlIGNoYW5nZSBpcyBub3Qgb2JzZXJ2YWJsZSBi
eSB1c2Vycy4gVGhlcmVmb3JlLCBwZXIgdGhlCi1fYmxhY2stYm94IHRlc3RpbmcgcHJpbmNpcGxl
XywgbW9zdCBvZiB0aGUgdGltZSB5b3Ugc2hvdWxkIHRlc3QgeW91ciBjb2RlCi10aHJvdWdoIGl0
cyBwdWJsaWMgaW50ZXJmYWNlcy4KLQotSWYgeW91IHN0aWxsIGZpbmQgeW91cnNlbGYgbmVlZGlu
ZyB0byB0ZXN0IGludGVybmFsIGltcGxlbWVudGF0aW9uIGNvZGUsCi1jb25zaWRlciBpZiB0aGVy
ZSdzIGEgYmV0dGVyIGRlc2lnbiB0aGF0IHdvdWxkbid0IHJlcXVpcmUgeW91IHRvIGRvIHNvLiBJ
ZiB5b3UKLWFic29sdXRlbHkgaGF2ZSB0byB0ZXN0IG5vbi1wdWJsaWMgaW50ZXJmYWNlIGNvZGUg
dGhvdWdoLCB5b3UgY2FuLiBUaGVyZSBhcmUKLXR3byBjYXNlcyB0byBjb25zaWRlcjoKLQotICAq
IFN0YXRpYyBmdW5jdGlvbnMgKF9ub3RfIHRoZSBzYW1lIGFzIHN0YXRpYyBtZW1iZXIgZnVuY3Rp
b25zISkgb3IgdW5uYW1lZCBuYW1lc3BhY2VzLCBhbmQKLSAgKiBQcml2YXRlIG9yIHByb3RlY3Rl
ZCBjbGFzcyBtZW1iZXJzLgotCi0jIyBTdGF0aWMgRnVuY3Rpb25zICMjCi0KLUJvdGggc3RhdGlj
IGZ1bmN0aW9ucyBhbmQgZGVmaW5pdGlvbnMvZGVjbGFyYXRpb25zIGluIGFuIHVubmFtZWQgbmFt
ZXNwYWNlIGFyZQotb25seSB2aXNpYmxlIHdpdGhpbiB0aGUgc2FtZSB0cmFuc2xhdGlvbiB1bml0
LiBUbyB0ZXN0IHRoZW0sIHlvdSBjYW4gYCNpbmNsdWRlYAotdGhlIGVudGlyZSBgLmNjYCBmaWxl
IGJlaW5nIHRlc3RlZCBpbiB5b3VyIGAqX3Rlc3QuY2NgIGZpbGUuIChgI2luY2x1ZGVgaW5nIGAu
Y2NgCi1maWxlcyBpcyBub3QgYSBnb29kIHdheSB0byByZXVzZSBjb2RlIC0geW91IHNob3VsZCBu
b3QgZG8gdGhpcyBpbiBwcm9kdWN0aW9uCi1jb2RlISkKLQotSG93ZXZlciwgYSBiZXR0ZXIgYXBw
cm9hY2ggaXMgdG8gbW92ZSB0aGUgcHJpdmF0ZSBjb2RlIGludG8gdGhlCi1gZm9vOjppbnRlcm5h
bGAgbmFtZXNwYWNlLCB3aGVyZSBgZm9vYCBpcyB0aGUgbmFtZXNwYWNlIHlvdXIgcHJvamVjdCBu
b3JtYWxseQotdXNlcywgYW5kIHB1dCB0aGUgcHJpdmF0ZSBkZWNsYXJhdGlvbnMgaW4gYSBgKi1p
bnRlcm5hbC5oYCBmaWxlLiBZb3VyCi1wcm9kdWN0aW9uIGAuY2NgIGZpbGVzIGFuZCB5b3VyIHRl
c3RzIGFyZSBhbGxvd2VkIHRvIGluY2x1ZGUgdGhpcyBpbnRlcm5hbAotaGVhZGVyLCBidXQgeW91
ciBjbGllbnRzIGFyZSBub3QuIFRoaXMgd2F5LCB5b3UgY2FuIGZ1bGx5IHRlc3QgeW91ciBpbnRl
cm5hbAotaW1wbGVtZW50YXRpb24gd2l0aG91dCBsZWFraW5nIGl0IHRvIHlvdXIgY2xpZW50cy4K
LQotIyMgUHJpdmF0ZSBDbGFzcyBNZW1iZXJzICMjCi0KLVByaXZhdGUgY2xhc3MgbWVtYmVycyBh
cmUgb25seSBhY2Nlc3NpYmxlIGZyb20gd2l0aGluIHRoZSBjbGFzcyBvciBieSBmcmllbmRzLgot
VG8gYWNjZXNzIGEgY2xhc3MnIHByaXZhdGUgbWVtYmVycywgeW91IGNhbiBkZWNsYXJlIHlvdXIg
dGVzdCBmaXh0dXJlIGFzIGEKLWZyaWVuZCB0byB0aGUgY2xhc3MgYW5kIGRlZmluZSBhY2Nlc3Nv
cnMgaW4geW91ciBmaXh0dXJlLiBUZXN0cyB1c2luZyB0aGUKLWZpeHR1cmUgY2FuIHRoZW4gYWNj
ZXNzIHRoZSBwcml2YXRlIG1lbWJlcnMgb2YgeW91ciBwcm9kdWN0aW9uIGNsYXNzIHZpYSB0aGUK
LWFjY2Vzc29ycyBpbiB0aGUgZml4dHVyZS4gTm90ZSB0aGF0IGV2ZW4gdGhvdWdoIHlvdXIgZml4
dHVyZSBpcyBhIGZyaWVuZCB0bwoteW91ciBwcm9kdWN0aW9uIGNsYXNzLCB5b3VyIHRlc3RzIGFy
ZSBub3QgYXV0b21hdGljYWxseSBmcmllbmRzIHRvIGl0LCBhcyB0aGV5Ci1hcmUgdGVjaG5pY2Fs
bHkgZGVmaW5lZCBpbiBzdWItY2xhc3NlcyBvZiB0aGUgZml4dHVyZS4KLQotQW5vdGhlciB3YXkg
dG8gdGVzdCBwcml2YXRlIG1lbWJlcnMgaXMgdG8gcmVmYWN0b3IgdGhlbSBpbnRvIGFuIGltcGxl
bWVudGF0aW9uCi1jbGFzcywgd2hpY2ggaXMgdGhlbiBkZWNsYXJlZCBpbiBhIGAqLWludGVybmFs
LmhgIGZpbGUuIFlvdXIgY2xpZW50cyBhcmVuJ3QKLWFsbG93ZWQgdG8gaW5jbHVkZSB0aGlzIGhl
YWRlciBidXQgeW91ciB0ZXN0cyBjYW4uIFN1Y2ggaXMgY2FsbGVkIHRoZSBQaW1wbAotKFByaXZh
dGUgSW1wbGVtZW50YXRpb24pIGlkaW9tLgotCi1PciwgeW91IGNhbiBkZWNsYXJlIGFuIGluZGl2
aWR1YWwgdGVzdCBhcyBhIGZyaWVuZCBvZiB5b3VyIGNsYXNzIGJ5IGFkZGluZyB0aGlzCi1saW5l
IGluIHRoZSBjbGFzcyBib2R5OgotCi1gYGAKLUZSSUVORF9URVNUKFRlc3RDYXNlTmFtZSwgVGVz
dE5hbWUpOwotYGBgCi0KLUZvciBleGFtcGxlLAotYGBgCi0vLyBmb28uaAotI2luY2x1ZGUgImd0
ZXN0L2d0ZXN0X3Byb2QuaCIKLQotLy8gRGVmaW5lcyBGUklFTkRfVEVTVC4KLWNsYXNzIEZvbyB7
Ci0gIC4uLgotIHByaXZhdGU6Ci0gIEZSSUVORF9URVNUKEZvb1Rlc3QsIEJhclJldHVybnNaZXJv
T25OdWxsKTsKLSAgaW50IEJhcih2b2lkKiB4KTsKLX07Ci0KLS8vIGZvb190ZXN0LmNjCi0uLi4K
LVRFU1QoRm9vVGVzdCwgQmFyUmV0dXJuc1plcm9Pbk51bGwpIHsKLSAgRm9vIGZvbzsKLSAgRVhQ
RUNUX0VRKDAsIGZvby5CYXIoTlVMTCkpOwotICAvLyBVc2VzIEZvbydzIHByaXZhdGUgbWVtYmVy
IEJhcigpLgotfQotYGBgCi0KLVBheSBzcGVjaWFsIGF0dGVudGlvbiB3aGVuIHlvdXIgY2xhc3Mg
aXMgZGVmaW5lZCBpbiBhIG5hbWVzcGFjZSwgYXMgeW91IHNob3VsZAotZGVmaW5lIHlvdXIgdGVz
dCBmaXh0dXJlcyBhbmQgdGVzdHMgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGlmIHlvdSB3YW50IHRo
ZW0gdG8KLWJlIGZyaWVuZHMgb2YgeW91ciBjbGFzcy4gRm9yIGV4YW1wbGUsIGlmIHRoZSBjb2Rl
IHRvIGJlIHRlc3RlZCBsb29rcyBsaWtlOgotCi1gYGAKLW5hbWVzcGFjZSBteV9uYW1lc3BhY2Ug
ewotCi1jbGFzcyBGb28gewotICBmcmllbmQgY2xhc3MgRm9vVGVzdDsKLSAgRlJJRU5EX1RFU1Qo
Rm9vVGVzdCwgQmFyKTsKLSAgRlJJRU5EX1RFU1QoRm9vVGVzdCwgQmF6KTsKLSAgLi4uCi0gIGRl
ZmluaXRpb24gb2YgdGhlIGNsYXNzIEZvbwotICAuLi4KLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBt
eV9uYW1lc3BhY2UKLWBgYAotCi1Zb3VyIHRlc3QgY29kZSBzaG91bGQgYmUgc29tZXRoaW5nIGxp
a2U6Ci0KLWBgYAotbmFtZXNwYWNlIG15X25hbWVzcGFjZSB7Ci1jbGFzcyBGb29UZXN0IDogcHVi
bGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAuLi4KLX07Ci0KLVRFU1RfRihG
b29UZXN0LCBCYXIpIHsgLi4uIH0KLVRFU1RfRihGb29UZXN0LCBCYXopIHsgLi4uIH0KLQotfSAg
Ly8gbmFtZXNwYWNlIG15X25hbWVzcGFjZQotYGBgCi0KLSMgQ2F0Y2hpbmcgRmFpbHVyZXMgIwot
Ci1JZiB5b3UgYXJlIGJ1aWxkaW5nIGEgdGVzdGluZyB1dGlsaXR5IG9uIHRvcCBvZiBHb29nbGUg
VGVzdCwgeW91J2xsCi13YW50IHRvIHRlc3QgeW91ciB1dGlsaXR5LiAgV2hhdCBmcmFtZXdvcmsg
d291bGQgeW91IHVzZSB0byB0ZXN0IGl0PwotR29vZ2xlIFRlc3QsIG9mIGNvdXJzZS4KLQotVGhl
IGNoYWxsZW5nZSBpcyB0byB2ZXJpZnkgdGhhdCB5b3VyIHRlc3RpbmcgdXRpbGl0eSByZXBvcnRz
IGZhaWx1cmVzCi1jb3JyZWN0bHkuICBJbiBmcmFtZXdvcmtzIHRoYXQgcmVwb3J0IGEgZmFpbHVy
ZSBieSB0aHJvd2luZyBhbgotZXhjZXB0aW9uLCB5b3UgY291bGQgY2F0Y2ggdGhlIGV4Y2VwdGlv
biBhbmQgYXNzZXJ0IG9uIGl0LiAgQnV0IEdvb2dsZQotVGVzdCBkb2Vzbid0IHVzZSBleGNlcHRp
b25zLCBzbyBob3cgZG8gd2UgdGVzdCB0aGF0IGEgcGllY2Ugb2YgY29kZQotZ2VuZXJhdGVzIGFu
IGV4cGVjdGVkIGZhaWx1cmU/Ci0KLWAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiYCBjb250YWlucyBzb21l
IGNvbnN0cnVjdHMgdG8gZG8gdGhpcy4gIEFmdGVyCi1gI2luY2x1ZGVgaW5nIHRoaXMgaGVhZGVy
LCB5b3UgY2FuIHVzZQotCi18IGBFWFBFQ1RfRkFUQUxfRkFJTFVSRShgX3N0YXRlbWVudCwgc3Vi
c3RyaW5nX2ApO2AgfAotfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLXwKLQotdG8gYXNzZXJ0IHRoYXQgX3N0YXRlbWVudF8gZ2VuZXJhdGVzIGEgZmF0
YWwgKGUuZy4gYEFTU0VSVF8qYCkgZmFpbHVyZQotd2hvc2UgbWVzc2FnZSBjb250YWlucyB0aGUg
Z2l2ZW4gX3N1YnN0cmluZ18sIG9yIHVzZQotCi18IGBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShg
X3N0YXRlbWVudCwgc3Vic3RyaW5nX2ApO2AgfAotfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLQotaWYgeW91IGFyZSBleHBlY3RpbmcgYSBu
b24tZmF0YWwgKGUuZy4gYEVYUEVDVF8qYCkgZmFpbHVyZS4KLQotRm9yIHRlY2huaWNhbCByZWFz
b25zLCB0aGVyZSBhcmUgc29tZSBjYXZlYXRzOgotCi0gIDEuIFlvdSBjYW5ub3Qgc3RyZWFtIGEg
ZmFpbHVyZSBtZXNzYWdlIHRvIGVpdGhlciBtYWNyby4KLSAgMS4gX3N0YXRlbWVudF8gaW4gYEVY
UEVDVF9GQVRBTF9GQUlMVVJFKClgIGNhbm5vdCByZWZlcmVuY2UgbG9jYWwgbm9uLXN0YXRpYyB2
YXJpYWJsZXMgb3Igbm9uLXN0YXRpYyBtZW1iZXJzIG9mIGB0aGlzYCBvYmplY3QuCi0gIDEuIF9z
dGF0ZW1lbnRfIGluIGBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgpYCBjYW5ub3QgcmV0dXJuIGEgdmFs
dWUuCi0KLV9Ob3RlOl8gR29vZ2xlIFRlc3QgaXMgZGVzaWduZWQgd2l0aCB0aHJlYWRzIGluIG1p
bmQuIE9uY2UgdGhlCi1zeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyBpbiBgImd0ZXN0L2ludGVy
bmFsL2d0ZXN0LXBvcnQuaCJgIGhhdmUKLWJlZW4gaW1wbGVtZW50ZWQsIEdvb2dsZSBUZXN0IHdp
bGwgYmVjb21lIHRocmVhZC1zYWZlLCBtZWFuaW5nIHRoYXQKLXlvdSBjYW4gdGhlbiB1c2UgYXNz
ZXJ0aW9ucyBpbiBtdWx0aXBsZSB0aHJlYWRzIGNvbmN1cnJlbnRseS4gQmVmb3JlCi10aGF0LCBo
b3dldmVyLCBHb29nbGUgVGVzdCBvbmx5IHN1cHBvcnRzIHNpbmdsZS10aHJlYWRlZCB1c2FnZS4g
T25jZQotdGhyZWFkLXNhZmUsIGBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgpYCBhbmQgYEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKClgCi13aWxsIGNhcHR1cmUgZmFpbHVyZXMgaW4gdGhlIGN1cnJlbnQg
dGhyZWFkIG9ubHkuIElmIF9zdGF0ZW1lbnRfCi1jcmVhdGVzIG5ldyB0aHJlYWRzLCBmYWlsdXJl
cyBpbiB0aGVzZSB0aHJlYWRzIHdpbGwgYmUgaWdub3JlZC4gSWYKLXlvdSB3YW50IHRvIGNhcHR1
cmUgZmFpbHVyZXMgZnJvbSBhbGwgdGhyZWFkcyBpbnN0ZWFkLCB5b3Ugc2hvdWxkIHVzZQotdGhl
IGZvbGxvd2luZyBtYWNyb3M6Ci0KLXwgYEVYUEVDVF9GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJF
QURTKGBfc3RhdGVtZW50LCBzdWJzdHJpbmdfYCk7YCB8Ci18Oi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotfCBgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkVfT05fQUxMX1RIUkVBRFMoYF9zdGF0ZW1lbnQsIHN1YnN0cmluZ19g
KTtgIHwKLQotIyBHZXR0aW5nIHRoZSBDdXJyZW50IFRlc3QncyBOYW1lICMKLQotU29tZXRpbWVz
IGEgZnVuY3Rpb24gbWF5IG5lZWQgdG8ga25vdyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1
bm5pbmcgdGVzdC4KLUZvciBleGFtcGxlLCB5b3UgbWF5IGJlIHVzaW5nIHRoZSBgU2V0VXAoKWAg
bWV0aG9kIG9mIHlvdXIgdGVzdCBmaXh0dXJlIHRvIHNldAotdGhlIGdvbGRlbiBmaWxlIG5hbWUg
YmFzZWQgb24gd2hpY2ggdGVzdCBpcyBydW5uaW5nLiBUaGUgYDo6dGVzdGluZzo6VGVzdEluZm9g
Ci1jbGFzcyBoYXMgdGhpcyBpbmZvcm1hdGlvbjoKLQotYGBgCi1uYW1lc3BhY2UgdGVzdGluZyB7
Ci0KLWNsYXNzIFRlc3RJbmZvIHsKLSBwdWJsaWM6Ci0gIC8vIFJldHVybnMgdGhlIHRlc3QgY2Fz
ZSBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lLCByZXNwZWN0aXZlbHkuCi0gIC8vCi0gIC8vIERvIE5P
VCBkZWxldGUgb3IgZnJlZSB0aGUgcmV0dXJuIHZhbHVlIC0gaXQncyBtYW5hZ2VkIGJ5IHRoZQot
ICAvLyBUZXN0SW5mbyBjbGFzcy4KLSAgY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUoKSBjb25z
dDsKLSAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0OwotfTsKLQotfSAgLy8gbmFtZXNwYWNlIHRl
c3RpbmcKLWBgYAotCi0KLT4gVG8gb2J0YWluIGEgYFRlc3RJbmZvYCBvYmplY3QgZm9yIHRoZSBj
dXJyZW50bHkgcnVubmluZyB0ZXN0LCBjYWxsCi1gY3VycmVudF90ZXN0X2luZm8oKWAgb24gdGhl
IGBVbml0VGVzdGAgc2luZ2xldG9uIG9iamVjdDoKLQotYGBgCi0vLyBHZXRzIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0LgotLy8gRG8gTk9UIGRlbGV0ZSB0aGUg
cmV0dXJuZWQgb2JqZWN0IC0gaXQncyBtYW5hZ2VkIGJ5IHRoZSBVbml0VGVzdCBjbGFzcy4KLWNv
bnN0IDo6dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9Ci0gIDo6dGVzdGluZzo6
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci1wcmludGYoIldl
IGFyZSBpbiB0ZXN0ICVzIG9mIHRlc3QgY2FzZSAlcy5cbiIsCi0gICAgICAgdGVzdF9pbmZvLT5u
YW1lKCksIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci1gYGAKLQotYGN1cnJlbnRfdGVz
dF9pbmZvKClgIHJldHVybnMgYSBudWxsIHBvaW50ZXIgaWYgbm8gdGVzdCBpcyBydW5uaW5nLiBJ
bgotcGFydGljdWxhciwgeW91IGNhbm5vdCBmaW5kIHRoZSB0ZXN0IGNhc2UgbmFtZSBpbiBgU2V0
VXBUZXN0Q2FzZSgpYCwKLWBUZWFyRG93blRlc3RDYXNlKClgICh3aGVyZSB5b3Uga25vdyB0aGUg
dGVzdCBjYXNlIG5hbWUgaW1wbGljaXRseSksIG9yCi1mdW5jdGlvbnMgY2FsbGVkIGZyb20gdGhl
bS4KLQotX0F2YWlsYWJpbGl0eTpfIExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMgRXh0ZW5kaW5n
IEdvb2dsZSBUZXN0IGJ5IEhhbmRsaW5nIFRlc3QgRXZlbnRzICMKLQotR29vZ2xlIFRlc3QgcHJv
dmlkZXMgYW4gPGI+ZXZlbnQgbGlzdGVuZXIgQVBJPC9iPiB0byBsZXQgeW91IHJlY2VpdmUKLW5v
dGlmaWNhdGlvbnMgYWJvdXQgdGhlIHByb2dyZXNzIG9mIGEgdGVzdCBwcm9ncmFtIGFuZCB0ZXN0
Ci1mYWlsdXJlcy4gVGhlIGV2ZW50cyB5b3UgY2FuIGxpc3RlbiB0byBpbmNsdWRlIHRoZSBzdGFy
dCBhbmQgZW5kIG9mCi10aGUgdGVzdCBwcm9ncmFtLCBhIHRlc3QgY2FzZSwgb3IgYSB0ZXN0IG1l
dGhvZCwgYW1vbmcgb3RoZXJzLiBZb3UgbWF5Ci11c2UgdGhpcyBBUEkgdG8gYXVnbWVudCBvciBy
ZXBsYWNlIHRoZSBzdGFuZGFyZCBjb25zb2xlIG91dHB1dCwKLXJlcGxhY2UgdGhlIFhNTCBvdXRw
dXQsIG9yIHByb3ZpZGUgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBmb3JtIG9mCi1vdXRwdXQsIHN1
Y2ggYXMgYSBHVUkgb3IgYSBkYXRhYmFzZS4gWW91IGNhbiBhbHNvIHVzZSB0ZXN0IGV2ZW50cyBh
cwotY2hlY2twb2ludHMgdG8gaW1wbGVtZW50IGEgcmVzb3VyY2UgbGVhayBjaGVja2VyLCBmb3Ig
ZXhhbXBsZS4KLQotX0F2YWlsYWJpbGl0eTpfIExpbnV4LCBXaW5kb3dzLCBNYWM7IHNpbmNlIHYx
LjQuMC4KLQotIyMgRGVmaW5pbmcgRXZlbnQgTGlzdGVuZXJzICMjCi0KLVRvIGRlZmluZSBhIGV2
ZW50IGxpc3RlbmVyLCB5b3Ugc3ViY2xhc3MgZWl0aGVyCi1bdGVzdGluZzo6VGVzdEV2ZW50TGlz
dGVuZXJdKC4uL2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCNMOTkxKQotb3IgW3Rlc3Rpbmc6OkVtcHR5
VGVzdEV2ZW50TGlzdGVuZXJdKC4uL2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCNMMTA0NCkuCi1UaGUg
Zm9ybWVyIGlzIGFuIChhYnN0cmFjdCkgaW50ZXJmYWNlLCB3aGVyZSA8aT5lYWNoIHB1cmUgdmly
dHVhbCBtZXRob2Q8YnI+Ci1jYW4gYmUgb3ZlcnJpZGRlbiB0byBoYW5kbGUgYSB0ZXN0IGV2ZW50
PC9pPiAoRm9yIGV4YW1wbGUsIHdoZW4gYSB0ZXN0Ci1zdGFydHMsIHRoZSBgT25UZXN0U3RhcnQo
KWAgbWV0aG9kIHdpbGwgYmUgY2FsbGVkLikuIFRoZSBsYXR0ZXIgcHJvdmlkZXMKLWFuIGVtcHR5
IGltcGxlbWVudGF0aW9uIG9mIGFsbCBtZXRob2RzIGluIHRoZSBpbnRlcmZhY2UsIHN1Y2ggdGhh
dCBhCi1zdWJjbGFzcyBvbmx5IG5lZWRzIHRvIG92ZXJyaWRlIHRoZSBtZXRob2RzIGl0IGNhcmVz
IGFib3V0LgotCi1XaGVuIGFuIGV2ZW50IGlzIGZpcmVkLCBpdHMgY29udGV4dCBpcyBwYXNzZWQg
dG8gdGhlIGhhbmRsZXIgZnVuY3Rpb24KLWFzIGFuIGFyZ3VtZW50LiBUaGUgZm9sbG93aW5nIGFy
Z3VtZW50IHR5cGVzIGFyZSB1c2VkOgotICAqIFtVbml0VGVzdF0oLi4vaW5jbHVkZS9ndGVzdC9n
dGVzdC5oI0wxMTUxKSByZWZsZWN0cyB0aGUgc3RhdGUgb2YgdGhlIGVudGlyZSB0ZXN0IHByb2dy
YW0sCi0gICogW1Rlc3RDYXNlXSguLi9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgjTDc3OCkgaGFzIGlu
Zm9ybWF0aW9uIGFib3V0IGEgdGVzdCBjYXNlLCB3aGljaCBjYW4gY29udGFpbiBvbmUgb3IgbW9y
ZSB0ZXN0cywKLSAgKiBbVGVzdEluZm9dKC4uL2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCNMNjQ0KSBj
b250YWlucyB0aGUgc3RhdGUgb2YgYSB0ZXN0LCBhbmQKLSAgKiBbVGVzdFBhcnRSZXN1bHRdKC4u
L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0LmgjTDQ3KSByZXByZXNlbnRzIHRoZSByZXN1
bHQgb2YgYSB0ZXN0IGFzc2VydGlvbi4KLQotQW4gZXZlbnQgaGFuZGxlciBmdW5jdGlvbiBjYW4g
ZXhhbWluZSB0aGUgYXJndW1lbnQgaXQgcmVjZWl2ZXMgdG8gZmluZAotb3V0IGludGVyZXN0aW5n
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudCBhbmQgdGhlIHRlc3QgcHJvZ3JhbSdzCi1zdGF0
ZS4gIEhlcmUncyBhbiBleGFtcGxlOgotCi1gYGAKLSAgY2xhc3MgTWluaW1hbGlzdFByaW50ZXIg
OiBwdWJsaWMgOjp0ZXN0aW5nOjpFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKLSAgICAvLyBDYWxs
ZWQgYmVmb3JlIGEgdGVzdCBzdGFydHMuCi0gICAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNv
bnN0IDo6dGVzdGluZzo6VGVzdEluZm8mIHRlc3RfaW5mbykgewotICAgICAgcHJpbnRmKCIqKiog
VGVzdCAlcy4lcyBzdGFydGluZy5cbiIsCi0gICAgICAgICAgICAgdGVzdF9pbmZvLnRlc3RfY2Fz
ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwotICAgIH0KLQotICAgIC8vIENhbGxlZCBhZnRl
ciBhIGZhaWxlZCBhc3NlcnRpb24gb3IgYSBTVUNDRUVEKCkgaW52b2NhdGlvbi4KLSAgICB2aXJ0
dWFsIHZvaWQgT25UZXN0UGFydFJlc3VsdCgKLSAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0
UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgewotICAgICAgcHJpbnRmKCIlcyBpbiAlczol
ZFxuJXNcbiIsCi0gICAgICAgICAgICAgdGVzdF9wYXJ0X3Jlc3VsdC5mYWlsZWQoKSA/ICIqKiog
RmFpbHVyZSIgOiAiU3VjY2VzcyIsCi0gICAgICAgICAgICAgdGVzdF9wYXJ0X3Jlc3VsdC5maWxl
X25hbWUoKSwKLSAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LmxpbmVfbnVtYmVyKCksCi0g
ICAgICAgICAgICAgdGVzdF9wYXJ0X3Jlc3VsdC5zdW1tYXJ5KCkpOwotICAgIH0KLQotICAgIC8v
IENhbGxlZCBhZnRlciBhIHRlc3QgZW5kcy4KLSAgICB2aXJ0dWFsIHZvaWQgT25UZXN0RW5kKGNv
bnN0IDo6dGVzdGluZzo6VGVzdEluZm8mIHRlc3RfaW5mbykgewotICAgICAgcHJpbnRmKCIqKiog
VGVzdCAlcy4lcyBlbmRpbmcuXG4iLAotICAgICAgICAgICAgIHRlc3RfaW5mby50ZXN0X2Nhc2Vf
bmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKLSAgICB9Ci0gIH07Ci1gYGAKLQotIyMgVXNpbmcg
RXZlbnQgTGlzdGVuZXJzICMjCi0KLVRvIHVzZSB0aGUgZXZlbnQgbGlzdGVuZXIgeW91IGhhdmUg
ZGVmaW5lZCwgYWRkIGFuIGluc3RhbmNlIG9mIGl0IHRvCi10aGUgR29vZ2xlIFRlc3QgZXZlbnQg
bGlzdGVuZXIgbGlzdCAocmVwcmVzZW50ZWQgYnkgY2xhc3MKLVtUZXN0RXZlbnRMaXN0ZW5lcnNd
KC4uL2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCNMMTA2NCkKLS0gbm90ZSB0aGUgInMiIGF0IHRoZSBl
bmQgb2YgdGhlIG5hbWUpIGluIHlvdXIKLWBtYWluKClgIGZ1bmN0aW9uLCBiZWZvcmUgY2FsbGlu
ZyBgUlVOX0FMTF9URVNUUygpYDoKLWBgYAotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KSB7Ci0gIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotICAvLyBHZXRz
IGhvbGQgb2YgdGhlIGV2ZW50IGxpc3RlbmVyIGxpc3QuCi0gIDo6dGVzdGluZzo6VGVzdEV2ZW50
TGlzdGVuZXJzJiBsaXN0ZW5lcnMgPQotICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5z
dGFuY2UoKS0+bGlzdGVuZXJzKCk7Ci0gIC8vIEFkZHMgYSBsaXN0ZW5lciB0byB0aGUgZW5kLiAg
R29vZ2xlIFRlc3QgdGFrZXMgdGhlIG93bmVyc2hpcC4KLSAgbGlzdGVuZXJzLkFwcGVuZChuZXcg
TWluaW1hbGlzdFByaW50ZXIpOwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQotYGBgCi0K
LVRoZXJlJ3Mgb25seSBvbmUgcHJvYmxlbTogdGhlIGRlZmF1bHQgdGVzdCByZXN1bHQgcHJpbnRl
ciBpcyBzdGlsbCBpbgotZWZmZWN0LCBzbyBpdHMgb3V0cHV0IHdpbGwgbWluZ2xlIHdpdGggdGhl
IG91dHB1dCBmcm9tIHlvdXIgbWluaW1hbGlzdAotcHJpbnRlci4gVG8gc3VwcHJlc3MgdGhlIGRl
ZmF1bHQgcHJpbnRlciwganVzdCByZWxlYXNlIGl0IGZyb20gdGhlCi1ldmVudCBsaXN0ZW5lciBs
aXN0IGFuZCBkZWxldGUgaXQuIFlvdSBjYW4gZG8gc28gYnkgYWRkaW5nIG9uZSBsaW5lOgotYGBg
Ci0gIC4uLgotICBkZWxldGUgbGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXJzLmRlZmF1bHRfcmVz
dWx0X3ByaW50ZXIoKSk7Ci0gIGxpc3RlbmVycy5BcHBlbmQobmV3IE1pbmltYWxpc3RQcmludGVy
KTsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLWBgYAotCi1Ob3csIHNpdCBiYWNrIGFuZCBl
bmpveSBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IG91dHB1dCBmcm9tIHlvdXIKLXRlc3RzLiBGb3Ig
bW9yZSBkZXRhaWxzLCB5b3UgY2FuIHJlYWQgdGhpcwotW3NhbXBsZV0oLi4vc2FtcGxlcy9zYW1w
bGU5X3VuaXR0ZXN0LmNjKS4KLQotWW91IG1heSBhcHBlbmQgbW9yZSB0aGFuIG9uZSBsaXN0ZW5l
ciB0byB0aGUgbGlzdC4gV2hlbiBhbiBgT24qU3RhcnQoKWAKLW9yIGBPblRlc3RQYXJ0UmVzdWx0
KClgIGV2ZW50IGlzIGZpcmVkLCB0aGUgbGlzdGVuZXJzIHdpbGwgcmVjZWl2ZSBpdCBpbgotdGhl
IG9yZGVyIHRoZXkgYXBwZWFyIGluIHRoZSBsaXN0IChzaW5jZSBuZXcgbGlzdGVuZXJzIGFyZSBh
ZGRlZCB0bwotdGhlIGVuZCBvZiB0aGUgbGlzdCwgdGhlIGRlZmF1bHQgdGV4dCBwcmludGVyIGFu
ZCB0aGUgZGVmYXVsdCBYTUwKLWdlbmVyYXRvciB3aWxsIHJlY2VpdmUgdGhlIGV2ZW50IGZpcnN0
KS4gQW4gYE9uKkVuZCgpYCBldmVudCB3aWxsIGJlCi1yZWNlaXZlZCBieSB0aGUgbGlzdGVuZXJz
IGluIHRoZSBfcmV2ZXJzZV8gb3JkZXIuIFRoaXMgYWxsb3dzIG91dHB1dCBieQotbGlzdGVuZXJz
IGFkZGVkIGxhdGVyIHRvIGJlIGZyYW1lZCBieSBvdXRwdXQgZnJvbSBsaXN0ZW5lcnMgYWRkZWQK
LWVhcmxpZXIuCi0KLSMjIEdlbmVyYXRpbmcgRmFpbHVyZXMgaW4gTGlzdGVuZXJzICMjCi0KLVlv
dSBtYXkgdXNlIGZhaWx1cmUtcmFpc2luZyBtYWNyb3MgKGBFWFBFQ1RfKigpYCwgYEFTU0VSVF8q
KClgLAotYEZBSUwoKWAsIGV0Yykgd2hlbiBwcm9jZXNzaW5nIGFuIGV2ZW50LiBUaGVyZSBhcmUg
c29tZSByZXN0cmljdGlvbnM6Ci0KLSAgMS4gWW91IGNhbm5vdCBnZW5lcmF0ZSBhbnkgZmFpbHVy
ZSBpbiBgT25UZXN0UGFydFJlc3VsdCgpYCAob3RoZXJ3aXNlIGl0IHdpbGwgY2F1c2UgYE9uVGVz
dFBhcnRSZXN1bHQoKWAgdG8gYmUgY2FsbGVkIHJlY3Vyc2l2ZWx5KS4KLSAgMS4gQSBsaXN0ZW5l
ciB0aGF0IGhhbmRsZXMgYE9uVGVzdFBhcnRSZXN1bHQoKWAgaXMgbm90IGFsbG93ZWQgdG8gZ2Vu
ZXJhdGUgYW55IGZhaWx1cmUuCi0KLVdoZW4geW91IGFkZCBsaXN0ZW5lcnMgdG8gdGhlIGxpc3Rl
bmVyIGxpc3QsIHlvdSBzaG91bGQgcHV0IGxpc3RlbmVycwotdGhhdCBoYW5kbGUgYE9uVGVzdFBh
cnRSZXN1bHQoKWAgX2JlZm9yZV8gbGlzdGVuZXJzIHRoYXQgY2FuIGdlbmVyYXRlCi1mYWlsdXJl
cy4gVGhpcyBlbnN1cmVzIHRoYXQgZmFpbHVyZXMgZ2VuZXJhdGVkIGJ5IHRoZSBsYXR0ZXIgYXJl
Ci1hdHRyaWJ1dGVkIHRvIHRoZSByaWdodCB0ZXN0IGJ5IHRoZSBmb3JtZXIuCi0KLVdlIGhhdmUg
YSBzYW1wbGUgb2YgZmFpbHVyZS1yYWlzaW5nIGxpc3RlbmVyCi1baGVyZV0oLi4vc2FtcGxlcy9z
YW1wbGUxMF91bml0dGVzdC5jYykuCi0KLSMgUnVubmluZyBUZXN0IFByb2dyYW1zOiBBZHZhbmNl
ZCBPcHRpb25zICMKLQotR29vZ2xlIFRlc3QgdGVzdCBwcm9ncmFtcyBhcmUgb3JkaW5hcnkgZXhl
Y3V0YWJsZXMuIE9uY2UgYnVpbHQsIHlvdSBjYW4gcnVuCi10aGVtIGRpcmVjdGx5IGFuZCBhZmZl
Y3QgdGhlaXIgYmVoYXZpb3IgdmlhIHRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVz
Ci1hbmQvb3IgY29tbWFuZCBsaW5lIGZsYWdzLiBGb3IgdGhlIGZsYWdzIHRvIHdvcmssIHlvdXIg
cHJvZ3JhbXMgbXVzdCBjYWxsCi1gOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgpYCBiZWZvcmUg
Y2FsbGluZyBgUlVOX0FMTF9URVNUUygpYC4KLQotVG8gc2VlIGEgbGlzdCBvZiBzdXBwb3J0ZWQg
ZmxhZ3MgYW5kIHRoZWlyIHVzYWdlLCBwbGVhc2UgcnVuIHlvdXIgdGVzdAotcHJvZ3JhbSB3aXRo
IHRoZSBgLS1oZWxwYCBmbGFnLiAgWW91IGNhbiBhbHNvIHVzZSBgLWhgLCBgLT9gLCBvciBgLz9g
Ci1mb3Igc2hvcnQuICBUaGlzIGZlYXR1cmUgaXMgYWRkZWQgaW4gdmVyc2lvbiAxLjMuMC4KLQot
SWYgYW4gb3B0aW9uIGlzIHNwZWNpZmllZCBib3RoIGJ5IGFuIGVudmlyb25tZW50IHZhcmlhYmxl
IGFuZCBieSBhCi1mbGFnLCB0aGUgbGF0dGVyIHRha2VzIHByZWNlZGVuY2UuICBNb3N0IG9mIHRo
ZSBvcHRpb25zIGNhbiBhbHNvIGJlCi1zZXQvcmVhZCBpbiBjb2RlOiB0byBhY2Nlc3MgdGhlIHZh
bHVlIG9mIGNvbW1hbmQgbGluZSBmbGFnCi1gLS1ndGVzdF9mb29gLCB3cml0ZSBgOjp0ZXN0aW5n
OjpHVEVTVF9GTEFHKGZvbylgLiAgQSBjb21tb24gcGF0dGVybiBpcwotdG8gc2V0IHRoZSB2YWx1
ZSBvZiBhIGZsYWcgYmVmb3JlIGNhbGxpbmcgYDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoKWAK
LXRvIGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgZmxhZzoKLWBgYAotaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7Ci0gIC8vIERpc2FibGVzIGVsYXBzZWQgdGltZSBieSBk
ZWZhdWx0LgotICA6OnRlc3Rpbmc6OkdURVNUX0ZMQUcocHJpbnRfdGltZSkgPSBmYWxzZTsKLQot
ICAvLyBUaGlzIGFsbG93cyB0aGUgdXNlciB0byBvdmVycmlkZSB0aGUgZmxhZyBvbiB0aGUgY29t
bWFuZCBsaW5lLgotICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKLQot
ICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQotYGBgCi0KLSMjIFNlbGVjdGluZyBUZXN0cyAj
IwotCi1UaGlzIHNlY3Rpb24gc2hvd3MgdmFyaW91cyBvcHRpb25zIGZvciBjaG9vc2luZyB3aGlj
aCB0ZXN0cyB0byBydW4uCi0KLSMjIyBMaXN0aW5nIFRlc3QgTmFtZXMgIyMjCi0KLVNvbWV0aW1l
cyBpdCBpcyBuZWNlc3NhcnkgdG8gbGlzdCB0aGUgYXZhaWxhYmxlIHRlc3RzIGluIGEgcHJvZ3Jh
bSBiZWZvcmUKLXJ1bm5pbmcgdGhlbSBzbyB0aGF0IGEgZmlsdGVyIG1heSBiZSBhcHBsaWVkIGlm
IG5lZWRlZC4gSW5jbHVkaW5nIHRoZSBmbGFnCi1gLS1ndGVzdF9saXN0X3Rlc3RzYCBvdmVycmlk
ZXMgYWxsIG90aGVyIGZsYWdzIGFuZCBsaXN0cyB0ZXN0cyBpbiB0aGUgZm9sbG93aW5nCi1mb3Jt
YXQ6Ci1gYGAKLVRlc3RDYXNlMS4KLSAgVGVzdE5hbWUxCi0gIFRlc3ROYW1lMgotVGVzdENhc2Uy
LgotICBUZXN0TmFtZQotYGBgCi0KLU5vbmUgb2YgdGhlIHRlc3RzIGxpc3RlZCBhcmUgYWN0dWFs
bHkgcnVuIGlmIHRoZSBmbGFnIGlzIHByb3ZpZGVkLiBUaGVyZSBpcyBubwotY29ycmVzcG9uZGlu
ZyBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IgdGhpcyBmbGFnLgotCi1fQXZhaWxhYmlsaXR5Ol8g
TGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIFJ1bm5pbmcgYSBTdWJzZXQgb2YgdGhlIFRlc3Rz
ICMjIwotCi1CeSBkZWZhdWx0LCBhIEdvb2dsZSBUZXN0IHByb2dyYW0gcnVucyBhbGwgdGVzdHMg
dGhlIHVzZXIgaGFzIGRlZmluZWQuCi1Tb21ldGltZXMsIHlvdSB3YW50IHRvIHJ1biBvbmx5IGEg
c3Vic2V0IG9mIHRoZSB0ZXN0cyAoZS5nLiBmb3IgZGVidWdnaW5nIG9yCi1xdWlja2x5IHZlcmlm
eWluZyBhIGNoYW5nZSkuIElmIHlvdSBzZXQgdGhlIGBHVEVTVF9GSUxURVJgIGVudmlyb25tZW50
IHZhcmlhYmxlCi1vciB0aGUgYC0tZ3Rlc3RfZmlsdGVyYCBmbGFnIHRvIGEgZmlsdGVyIHN0cmlu
ZywgR29vZ2xlIFRlc3Qgd2lsbCBvbmx5IHJ1biB0aGUKLXRlc3RzIHdob3NlIGZ1bGwgbmFtZXMg
KGluIHRoZSBmb3JtIG9mIGBUZXN0Q2FzZU5hbWUuVGVzdE5hbWVgKSBtYXRjaCB0aGUKLWZpbHRl
ci4KLQotVGhlIGZvcm1hdCBvZiBhIGZpbHRlciBpcyBhICdgOmAnLXNlcGFyYXRlZCBsaXN0IG9m
IHdpbGRjYXJkIHBhdHRlcm5zIChjYWxsZWQKLXRoZSBwb3NpdGl2ZSBwYXR0ZXJucykgb3B0aW9u
YWxseSBmb2xsb3dlZCBieSBhICdgLWAnIGFuZCBhbm90aGVyCi0nYDpgJy1zZXBhcmF0ZWQgcGF0
dGVybiBsaXN0IChjYWxsZWQgdGhlIG5lZ2F0aXZlIHBhdHRlcm5zKS4gQSB0ZXN0IG1hdGNoZXMg
dGhlCi1maWx0ZXIgaWYgYW5kIG9ubHkgaWYgaXQgbWF0Y2hlcyBhbnkgb2YgdGhlIHBvc2l0aXZl
IHBhdHRlcm5zIGJ1dCBkb2VzIG5vdAotbWF0Y2ggYW55IG9mIHRoZSBuZWdhdGl2ZSBwYXR0ZXJu
cy4KLQotQSBwYXR0ZXJuIG1heSBjb250YWluIGAnKidgIChtYXRjaGVzIGFueSBzdHJpbmcpIG9y
IGAnPydgIChtYXRjaGVzIGFueSBzaW5nbGUKLWNoYXJhY3RlcikuIEZvciBjb252ZW5pZW5jZSwg
dGhlIGZpbHRlciBgJyotTmVnYXRpdmVQYXR0ZXJucydgIGNhbiBiZSBhbHNvCi13cml0dGVuIGFz
IGAnLU5lZ2F0aXZlUGF0dGVybnMnYC4KLQotRm9yIGV4YW1wbGU6Ci0KLSAgKiBgLi9mb29fdGVz
dGAgSGFzIG5vIGZsYWcsIGFuZCB0aHVzIHJ1bnMgYWxsIGl0cyB0ZXN0cy4KLSAgKiBgLi9mb29f
dGVzdCAtLWd0ZXN0X2ZpbHRlcj0qYCBBbHNvIHJ1bnMgZXZlcnl0aGluZywgZHVlIHRvIHRoZSBz
aW5nbGUgbWF0Y2gtZXZlcnl0aGluZyBgKmAgdmFsdWUuCi0gICogYC4vZm9vX3Rlc3QgLS1ndGVz
dF9maWx0ZXI9Rm9vVGVzdC4qYCBSdW5zIGV2ZXJ5dGhpbmcgaW4gdGVzdCBjYXNlIGBGb29UZXN0
YC4KLSAgKiBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj0qTnVsbCo6KkNvbnN0cnVjdG9yKmAg
UnVucyBhbnkgdGVzdCB3aG9zZSBmdWxsIG5hbWUgY29udGFpbnMgZWl0aGVyIGAiTnVsbCJgIG9y
IGAiQ29uc3RydWN0b3IiYC4KLSAgKiBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj0tKkRlYXRo
VGVzdC4qYCBSdW5zIGFsbCBub24tZGVhdGggdGVzdHMuCi0gICogYC4vZm9vX3Rlc3QgLS1ndGVz
dF9maWx0ZXI9Rm9vVGVzdC4qLUZvb1Rlc3QuQmFyYCBSdW5zIGV2ZXJ5dGhpbmcgaW4gdGVzdCBj
YXNlIGBGb29UZXN0YCBleGNlcHQgYEZvb1Rlc3QuQmFyYC4KLQotX0F2YWlsYWJpbGl0eTpfIExp
bnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBUZW1wb3JhcmlseSBEaXNhYmxpbmcgVGVzdHMgIyMj
Ci0KLUlmIHlvdSBoYXZlIGEgYnJva2VuIHRlc3QgdGhhdCB5b3UgY2Fubm90IGZpeCByaWdodCBh
d2F5LCB5b3UgY2FuIGFkZCB0aGUKLWBESVNBQkxFRF9gIHByZWZpeCB0byBpdHMgbmFtZS4gVGhp
cyB3aWxsIGV4Y2x1ZGUgaXQgZnJvbSBleGVjdXRpb24uIFRoaXMgaXMKLWJldHRlciB0aGFuIGNv
bW1lbnRpbmcgb3V0IHRoZSBjb2RlIG9yIHVzaW5nIGAjaWYgMGAsIGFzIGRpc2FibGVkIHRlc3Rz
IGFyZQotc3RpbGwgY29tcGlsZWQgKGFuZCB0aHVzIHdvbid0IHJvdCkuCi0KLUlmIHlvdSBuZWVk
IHRvIGRpc2FibGUgYWxsIHRlc3RzIGluIGEgdGVzdCBjYXNlLCB5b3UgY2FuIGVpdGhlciBhZGQg
YERJU0FCTEVEX2AKLXRvIHRoZSBmcm9udCBvZiB0aGUgbmFtZSBvZiBlYWNoIHRlc3QsIG9yIGFs
dGVybmF0aXZlbHkgYWRkIGl0IHRvIHRoZSBmcm9udCBvZgotdGhlIHRlc3QgY2FzZSBuYW1lLgot
Ci1Gb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB0ZXN0cyB3b24ndCBiZSBydW4gYnkgR29vZ2xl
IFRlc3QsIGV2ZW4gdGhvdWdoIHRoZXkKLXdpbGwgc3RpbGwgYmUgY29tcGlsZWQ6Ci0KLWBgYAot
Ly8gVGVzdHMgdGhhdCBGb28gZG9lcyBBYmMuCi1URVNUKEZvb1Rlc3QsIERJU0FCTEVEX0RvZXNB
YmMpIHsgLi4uIH0KLQotY2xhc3MgRElTQUJMRURfQmFyVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6
OlRlc3QgeyAuLi4gfTsKLQotLy8gVGVzdHMgdGhhdCBCYXIgZG9lcyBYeXouCi1URVNUX0YoRElT
QUJMRURfQmFyVGVzdCwgRG9lc1h5eikgeyAuLi4gfQotYGBgCi0KLV9Ob3RlOl8gVGhpcyBmZWF0
dXJlIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIHRlbXBvcmFyeSBwYWluLXJlbGllZi4gWW91IHN0
aWxsCi1oYXZlIHRvIGZpeCB0aGUgZGlzYWJsZWQgdGVzdHMgYXQgYSBsYXRlciBkYXRlLiBBcyBh
IHJlbWluZGVyLCBHb29nbGUgVGVzdCB3aWxsCi1wcmludCBhIGJhbm5lciB3YXJuaW5nIHlvdSBp
ZiBhIHRlc3QgcHJvZ3JhbSBjb250YWlucyBhbnkgZGlzYWJsZWQgdGVzdHMuCi0KLV9UaXA6XyBZ
b3UgY2FuIGVhc2lseSBjb3VudCB0aGUgbnVtYmVyIG9mIGRpc2FibGVkIHRlc3RzIHlvdSBoYXZl
Ci11c2luZyBgZ3JlcGAuIFRoaXMgbnVtYmVyIGNhbiBiZSB1c2VkIGFzIGEgbWV0cmljIGZvciBp
bXByb3ZpbmcgeW91cgotdGVzdCBxdWFsaXR5LgotCi1fQXZhaWxhYmlsaXR5Ol8gTGludXgsIFdp
bmRvd3MsIE1hYy4KLQotIyMjIFRlbXBvcmFyaWx5IEVuYWJsaW5nIERpc2FibGVkIFRlc3RzICMj
IwotCi1UbyBpbmNsdWRlIFtkaXNhYmxlZCB0ZXN0c10oI3RlbXBvcmFyaWx5LWRpc2FibGluZy10
ZXN0cykgaW4gdGVzdAotZXhlY3V0aW9uLCBqdXN0IGludm9rZSB0aGUgdGVzdCBwcm9ncmFtIHdp
dGggdGhlCi1gLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0c2AgZmxhZyBvciBzZXQgdGhl
Ci1gR1RFU1RfQUxTT19SVU5fRElTQUJMRURfVEVTVFNgIGVudmlyb25tZW50IHZhcmlhYmxlIHRv
IGEgdmFsdWUgb3RoZXIKLXRoYW4gYDBgLiAgWW91IGNhbiBjb21iaW5lIHRoaXMgd2l0aCB0aGUK
LVstLWd0ZXN0XF9maWx0ZXJdKCNydW5uaW5nLWEtc3Vic2V0LW9mLXRoZS10ZXN0cykgZmxhZyB0
byBmdXJ0aGVyIHNlbGVjdAotd2hpY2ggZGlzYWJsZWQgdGVzdHMgdG8gcnVuLgotCi1fQXZhaWxh
YmlsaXR5Ol8gTGludXgsIFdpbmRvd3MsIE1hYzsgc2luY2UgdmVyc2lvbiAxLjMuMC4KLQotIyMg
UmVwZWF0aW5nIHRoZSBUZXN0cyAjIwotCi1PbmNlIGluIGEgd2hpbGUgeW91J2xsIHJ1biBpbnRv
IGEgdGVzdCB3aG9zZSByZXN1bHQgaXMgaGl0LW9yLW1pc3MuIFBlcmhhcHMgaXQKLXdpbGwgZmFp
bCBvbmx5IDElIG9mIHRoZSB0aW1lLCBtYWtpbmcgaXQgcmF0aGVyIGhhcmQgdG8gcmVwcm9kdWNl
IHRoZSBidWcgdW5kZXIKLWEgZGVidWdnZXIuIFRoaXMgY2FuIGJlIGEgbWFqb3Igc291cmNlIG9m
IGZydXN0cmF0aW9uLgotCi1UaGUgYC0tZ3Rlc3RfcmVwZWF0YCBmbGFnIGFsbG93cyB5b3UgdG8g
cmVwZWF0IGFsbCAob3Igc2VsZWN0ZWQpIHRlc3QgbWV0aG9kcwotaW4gYSBwcm9ncmFtIG1hbnkg
dGltZXMuIEhvcGVmdWxseSwgYSBmbGFreSB0ZXN0IHdpbGwgZXZlbnR1YWxseSBmYWlsIGFuZCBn
aXZlCi15b3UgYSBjaGFuY2UgdG8gZGVidWcuIEhlcmUncyBob3cgdG8gdXNlIGl0OgotCi18IGAk
IGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEwMDBgIHwgUmVwZWF0IGZvb1xfdGVzdCAxMDAwIHRp
bWVzIGFuZCBkb24ndCBzdG9wIGF0IGZhaWx1cmVzLiB8Ci18Oi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS18Ci18IGAkIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PS0xYCAgIHwgQSBu
ZWdhdGl2ZSBjb3VudCBtZWFucyByZXBlYXRpbmcgZm9yZXZlci4gICAgICAgICAgICAgICB8Ci18
IGAkIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEwMDAgLS1ndGVzdF9icmVha19vbl9mYWlsdXJl
YCB8IFJlcGVhdCBmb29cX3Rlc3QgMTAwMCB0aW1lcywgc3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZh
aWx1cmUuIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgd2hlbiBydW5uaW5nIHVuZGVyIGEgZGVi
dWdnZXI6IHdoZW4gdGhlIHRlc3RmYWlscywgaXQgd2lsbCBkcm9wIGludG8gdGhlIGRlYnVnZ2Vy
IGFuZCB5b3UgY2FuIHRoZW4gaW5zcGVjdCB2YXJpYWJsZXMgYW5kIHN0YWNrcy4gfAotfCBgJCBm
b29fdGVzdCAtLWd0ZXN0X3JlcGVhdD0xMDAwIC0tZ3Rlc3RfZmlsdGVyPUZvb0JhcmAgfCBSZXBl
YXQgdGhlIHRlc3RzIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGUgZmlsdGVyIDEwMDAgdGltZXMuIHwK
LQotSWYgeW91ciB0ZXN0IHByb2dyYW0gY29udGFpbnMgZ2xvYmFsIHNldC11cC90ZWFyLWRvd24g
Y29kZSByZWdpc3RlcmVkCi11c2luZyBgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KClgLCBpdCB3
aWxsIGJlIHJlcGVhdGVkIGluIGVhY2gKLWl0ZXJhdGlvbiBhcyB3ZWxsLCBhcyB0aGUgZmxha2lu
ZXNzIG1heSBiZSBpbiBpdC4gWW91IGNhbiBhbHNvIHNwZWNpZnkKLXRoZSByZXBlYXQgY291bnQg
Ynkgc2V0dGluZyB0aGUgYEdURVNUX1JFUEVBVGAgZW52aXJvbm1lbnQgdmFyaWFibGUuCi0KLV9B
dmFpbGFiaWxpdHk6XyBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyBTaHVmZmxpbmcgdGhlIFRl
c3RzICMjCi0KLVlvdSBjYW4gc3BlY2lmeSB0aGUgYC0tZ3Rlc3Rfc2h1ZmZsZWAgZmxhZyAob3Ig
c2V0IHRoZSBgR1RFU1RfU0hVRkZMRWAKLWVudmlyb25tZW50IHZhcmlhYmxlIHRvIGAxYCkgdG8g
cnVuIHRoZSB0ZXN0cyBpbiBhIHByb2dyYW0gaW4gYSByYW5kb20KLW9yZGVyLiBUaGlzIGhlbHBz
IHRvIHJldmVhbCBiYWQgZGVwZW5kZW5jaWVzIGJldHdlZW4gdGVzdHMuCi0KLUJ5IGRlZmF1bHQs
IEdvb2dsZSBUZXN0IHVzZXMgYSByYW5kb20gc2VlZCBjYWxjdWxhdGVkIGZyb20gdGhlIGN1cnJl
bnQKLXRpbWUuIFRoZXJlZm9yZSB5b3UnbGwgZ2V0IGEgZGlmZmVyZW50IG9yZGVyIGV2ZXJ5IHRp
bWUuIFRoZSBjb25zb2xlCi1vdXRwdXQgaW5jbHVkZXMgdGhlIHJhbmRvbSBzZWVkIHZhbHVlLCBz
dWNoIHRoYXQgeW91IGNhbiByZXByb2R1Y2UgYW4KLW9yZGVyLXJlbGF0ZWQgdGVzdCBmYWlsdXJl
IGxhdGVyLiBUbyBzcGVjaWZ5IHRoZSByYW5kb20gc2VlZAotZXhwbGljaXRseSwgdXNlIHRoZSBg
LS1ndGVzdF9yYW5kb21fc2VlZD1TRUVEYCBmbGFnIChvciBzZXQgdGhlCi1gR1RFU1RfUkFORE9N
X1NFRURgIGVudmlyb25tZW50IHZhcmlhYmxlKSwgd2hlcmUgYFNFRURgIGlzIGFuIGludGVnZXIK
LWJldHdlZW4gMCBhbmQgOTk5OTkuIFRoZSBzZWVkIHZhbHVlIDAgaXMgc3BlY2lhbDogaXQgdGVs
bHMgR29vZ2xlIFRlc3QKLXRvIGRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIGNhbGN1bGF0aW5n
IHRoZSBzZWVkIGZyb20gdGhlIGN1cnJlbnQKLXRpbWUuCi0KLUlmIHlvdSBjb21iaW5lIHRoaXMg
d2l0aCBgLS1ndGVzdF9yZXBlYXQ9TmAsIEdvb2dsZSBUZXN0IHdpbGwgcGljayBhCi1kaWZmZXJl
bnQgcmFuZG9tIHNlZWQgYW5kIHJlLXNodWZmbGUgdGhlIHRlc3RzIGluIGVhY2ggaXRlcmF0aW9u
LgotCi1fQXZhaWxhYmlsaXR5Ol8gTGludXgsIFdpbmRvd3MsIE1hYzsgc2luY2UgdjEuNC4wLgot
Ci0jIyBDb250cm9sbGluZyBUZXN0IE91dHB1dCAjIwotCi1UaGlzIHNlY3Rpb24gdGVhY2hlcyBo
b3cgdG8gdHdlYWsgdGhlIHdheSB0ZXN0IHJlc3VsdHMgYXJlIHJlcG9ydGVkLgotCi0jIyMgQ29s
b3JlZCBUZXJtaW5hbCBPdXRwdXQgIyMjCi0KLUdvb2dsZSBUZXN0IGNhbiB1c2UgY29sb3JzIGlu
IGl0cyB0ZXJtaW5hbCBvdXRwdXQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc3BvdAotdGhlIHNlcGFy
YXRpb24gYmV0d2VlbiB0ZXN0cywgYW5kIHdoZXRoZXIgdGVzdHMgcGFzc2VkLgotCi1Zb3UgY2Fu
IHNldCB0aGUgR1RFU1RcX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHNldCB0aGUgYC0t
Z3Rlc3RfY29sb3JgCi1jb21tYW5kIGxpbmUgZmxhZyB0byBgeWVzYCwgYG5vYCwgb3IgYGF1dG9g
ICh0aGUgZGVmYXVsdCkgdG8gZW5hYmxlIGNvbG9ycywKLWRpc2FibGUgY29sb3JzLCBvciBsZXQg
R29vZ2xlIFRlc3QgZGVjaWRlLiBXaGVuIHRoZSB2YWx1ZSBpcyBgYXV0b2AsIEdvb2dsZQotVGVz
dCB3aWxsIHVzZSBjb2xvcnMgaWYgYW5kIG9ubHkgaWYgdGhlIG91dHB1dCBnb2VzIHRvIGEgdGVy
bWluYWwgYW5kIChvbgotbm9uLVdpbmRvd3MgcGxhdGZvcm1zKSB0aGUgYFRFUk1gIGVudmlyb25t
ZW50IHZhcmlhYmxlIGlzIHNldCB0byBgeHRlcm1gIG9yCi1geHRlcm0tY29sb3JgLgotCi1fQXZh
aWxhYmlsaXR5Ol8gTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIFN1cHByZXNzaW5nIHRoZSBF
bGFwc2VkIFRpbWUgIyMjCi0KLUJ5IGRlZmF1bHQsIEdvb2dsZSBUZXN0IHByaW50cyB0aGUgdGlt
ZSBpdCB0YWtlcyB0byBydW4gZWFjaCB0ZXN0LiAgVG8KLXN1cHByZXNzIHRoYXQsIHJ1biB0aGUg
dGVzdCBwcm9ncmFtIHdpdGggdGhlIGAtLWd0ZXN0X3ByaW50X3RpbWU9MGAKLWNvbW1hbmQgbGlu
ZSBmbGFnLiAgU2V0dGluZyB0aGUgYEdURVNUX1BSSU5UX1RJTUVgIGVudmlyb25tZW50Ci12YXJp
YWJsZSB0byBgMGAgaGFzIHRoZSBzYW1lIGVmZmVjdC4KLQotX0F2YWlsYWJpbGl0eTpfIExpbnV4
LCBXaW5kb3dzLCBNYWMuICAoSW4gR29vZ2xlIFRlc3QgMS4zLjAgYW5kIGxvd2VyLAotdGhlIGRl
ZmF1bHQgYmVoYXZpb3IgaXMgdGhhdCB0aGUgZWxhcHNlZCB0aW1lIGlzICoqbm90KiogcHJpbnRl
ZC4pCi0KLSMjIyBHZW5lcmF0aW5nIGFuIFhNTCBSZXBvcnQgIyMjCi0KLUdvb2dsZSBUZXN0IGNh
biBlbWl0IGEgZGV0YWlsZWQgWE1MIHJlcG9ydCB0byBhIGZpbGUgaW4gYWRkaXRpb24gdG8gaXRz
IG5vcm1hbAotdGV4dHVhbCBvdXRwdXQuIFRoZSByZXBvcnQgY29udGFpbnMgdGhlIGR1cmF0aW9u
IG9mIGVhY2ggdGVzdCwgYW5kIHRodXMgY2FuCi1oZWxwIHlvdSBpZGVudGlmeSBzbG93IHRlc3Rz
LgotCi1UbyBnZW5lcmF0ZSB0aGUgWE1MIHJlcG9ydCwgc2V0IHRoZSBgR1RFU1RfT1VUUFVUYCBl
bnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKLWAtLWd0ZXN0X291dHB1dGAgZmxhZyB0byB0aGUg
c3RyaW5nIGAieG1sOl9wYXRoX3RvX291dHB1dF9maWxlXyJgLCB3aGljaCB3aWxsCi1jcmVhdGUg
dGhlIGZpbGUgYXQgdGhlIGdpdmVuIGxvY2F0aW9uLiBZb3UgY2FuIGFsc28ganVzdCB1c2UgdGhl
IHN0cmluZwotYCJ4bWwiYCwgaW4gd2hpY2ggY2FzZSB0aGUgb3V0cHV0IGNhbiBiZSBmb3VuZCBp
biB0aGUgYHRlc3RfZGV0YWlsLnhtbGAgZmlsZSBpbgotdGhlIGN1cnJlbnQgZGlyZWN0b3J5Lgot
Ci1JZiB5b3Ugc3BlY2lmeSBhIGRpcmVjdG9yeSAoZm9yIGV4YW1wbGUsIGAieG1sOm91dHB1dC9k
aXJlY3RvcnkvImAgb24gTGludXggb3IKLWAieG1sOm91dHB1dFxkaXJlY3RvcnlcImAgb24gV2lu
ZG93cyksIEdvb2dsZSBUZXN0IHdpbGwgY3JlYXRlIHRoZSBYTUwgZmlsZSBpbgotdGhhdCBkaXJl
Y3RvcnksIG5hbWVkIGFmdGVyIHRoZSB0ZXN0IGV4ZWN1dGFibGUgKGUuZy4gYGZvb190ZXN0Lnht
bGAgZm9yIHRlc3QKLXByb2dyYW0gYGZvb190ZXN0YCBvciBgZm9vX3Rlc3QuZXhlYCkuIElmIHRo
ZSBmaWxlIGFscmVhZHkgZXhpc3RzIChwZXJoYXBzIGxlZnQKLW92ZXIgZnJvbSBhIHByZXZpb3Vz
IHJ1biksIEdvb2dsZSBUZXN0IHdpbGwgcGljayBhIGRpZmZlcmVudCBuYW1lIChlLmcuCi1gZm9v
X3Rlc3RfMS54bWxgKSB0byBhdm9pZCBvdmVyd3JpdGluZyBpdC4KLQotVGhlIHJlcG9ydCB1c2Vz
IHRoZSBmb3JtYXQgZGVzY3JpYmVkIGhlcmUuICBJdCBpcyBiYXNlZCBvbiB0aGUKLWBqdW5pdHJl
cG9ydGAgQW50IHRhc2sgYW5kIGNhbiBiZSBwYXJzZWQgYnkgcG9wdWxhciBjb250aW51b3VzIGJ1
aWxkCi1zeXN0ZW1zIGxpa2UgW0h1ZHNvbl0oaHR0cHM6Ly9odWRzb24uZGV2LmphdmEubmV0Lyku
IFNpbmNlIHRoYXQgZm9ybWF0Ci13YXMgb3JpZ2luYWxseSBpbnRlbmRlZCBmb3IgSmF2YSwgYSBs
aXR0bGUgaW50ZXJwcmV0YXRpb24gaXMgcmVxdWlyZWQKLXRvIG1ha2UgaXQgYXBwbHkgdG8gR29v
Z2xlIFRlc3QgdGVzdHMsIGFzIHNob3duIGhlcmU6Ci0KLWBgYAotPHRlc3RzdWl0ZXMgbmFtZT0i
QWxsVGVzdHMiIC4uLj4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJ0ZXN0X2Nhc2VfbmFtZSIgLi4uPgot
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJ0ZXN0X25hbWUiIC4uLj4KLSAgICAgIDxmYWlsdXJlIG1lc3Nh
Z2U9Ii4uLiIvPgotICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iLi4uIi8+Ci0gICAgICA8ZmFpbHVy
ZSBtZXNzYWdlPSIuLi4iLz4KLSAgICA8L3Rlc3RjYXNlPgotICA8L3Rlc3RzdWl0ZT4KLTwvdGVz
dHN1aXRlcz4KLWBgYAotCi0gICogVGhlIHJvb3QgYDx0ZXN0c3VpdGVzPmAgZWxlbWVudCBjb3Jy
ZXNwb25kcyB0byB0aGUgZW50aXJlIHRlc3QgcHJvZ3JhbS4KLSAgKiBgPHRlc3RzdWl0ZT5gIGVs
ZW1lbnRzIGNvcnJlc3BvbmQgdG8gR29vZ2xlIFRlc3QgdGVzdCBjYXNlcy4KLSAgKiBgPHRlc3Rj
YXNlPmAgZWxlbWVudHMgY29ycmVzcG9uZCB0byBHb29nbGUgVGVzdCB0ZXN0IGZ1bmN0aW9ucy4K
LQotRm9yIGluc3RhbmNlLCB0aGUgZm9sbG93aW5nIHByb2dyYW0KLQotYGBgCi1URVNUKE1hdGhU
ZXN0LCBBZGRpdGlvbikgeyAuLi4gfQotVEVTVChNYXRoVGVzdCwgU3VidHJhY3Rpb24pIHsgLi4u
IH0KLVRFU1QoTG9naWNUZXN0LCBOb25Db250cmFkaWN0aW9uKSB7IC4uLiB9Ci1gYGAKLQotY291
bGQgZ2VuZXJhdGUgdGhpcyByZXBvcnQ6Ci0KLWBgYAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KLTx0ZXN0c3VpdGVzIHRlc3RzPSIzIiBmYWlsdXJlcz0iMSIgZXJyb3Jz
PSIwIiB0aW1lPSIzNSIgbmFtZT0iQWxsVGVzdHMiPgotICA8dGVzdHN1aXRlIG5hbWU9Ik1hdGhU
ZXN0IiB0ZXN0cz0iMiIgZmFpbHVyZXM9IjEiIGVycm9ycz0iMCIgdGltZT0iMTUiPgotICAgIDx0
ZXN0Y2FzZSBuYW1lPSJBZGRpdGlvbiIgc3RhdHVzPSJydW4iIHRpbWU9IjciIGNsYXNzbmFtZT0i
Ij4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9IlZhbHVlIG9mOiBhZGQoMSwgMSkmI3gwQTsgQWN0
dWFsOiAzJiN4MEE7RXhwZWN0ZWQ6IDIiIHR5cGU9IiIvPgotICAgICAgPGZhaWx1cmUgbWVzc2Fn
ZT0iVmFsdWUgb2Y6IGFkZCgxLCAtMSkmI3gwQTsgQWN0dWFsOiAxJiN4MEE7RXhwZWN0ZWQ6IDAi
IHR5cGU9IiIvPgotICAgIDwvdGVzdGNhc2U+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlN1YnRyYWN0
aW9uIiBzdGF0dXM9InJ1biIgdGltZT0iNSIgY2xhc3NuYW1lPSIiPgotICAgIDwvdGVzdGNhc2U+
Ci0gIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkxvZ2ljVGVzdCIgdGVzdHM9IjEi
IGZhaWx1cmVzPSIwIiBlcnJvcnM9IjAiIHRpbWU9IjUiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJO
b25Db250cmFkaWN0aW9uIiBzdGF0dXM9InJ1biIgdGltZT0iNSIgY2xhc3NuYW1lPSIiPgotICAg
IDwvdGVzdGNhc2U+Ci0gIDwvdGVzdHN1aXRlPgotPC90ZXN0c3VpdGVzPgotYGBgCi0KLVRoaW5n
cyB0byBub3RlOgotCi0gICogVGhlIGB0ZXN0c2AgYXR0cmlidXRlIG9mIGEgYDx0ZXN0c3VpdGVz
PmAgb3IgYDx0ZXN0c3VpdGU+YCBlbGVtZW50IHRlbGxzIGhvdyBtYW55IHRlc3QgZnVuY3Rpb25z
IHRoZSBHb29nbGUgVGVzdCBwcm9ncmFtIG9yIHRlc3QgY2FzZSBjb250YWlucywgd2hpbGUgdGhl
IGBmYWlsdXJlc2AgYXR0cmlidXRlIHRlbGxzIGhvdyBtYW55IG9mIHRoZW0gZmFpbGVkLgotICAq
IFRoZSBgdGltZWAgYXR0cmlidXRlIGV4cHJlc3NlcyB0aGUgZHVyYXRpb24gb2YgdGhlIHRlc3Qs
IHRlc3QgY2FzZSwgb3IgZW50aXJlIHRlc3QgcHJvZ3JhbSBpbiBtaWxsaXNlY29uZHMuCi0gICog
RWFjaCBgPGZhaWx1cmU+YCBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIGZhaWxlZCBH
b29nbGUgVGVzdCBhc3NlcnRpb24uCi0gICogU29tZSBKVW5pdCBjb25jZXB0cyBkb24ndCBhcHBs
eSB0byBHb29nbGUgVGVzdCwgeWV0IHdlIGhhdmUgdG8gY29uZm9ybSB0byB0aGUgRFRELiBUaGVy
ZWZvcmUgeW91J2xsIHNlZSBzb21lIGR1bW15IGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGluIHRo
ZSByZXBvcnQuIFlvdSBjYW4gc2FmZWx5IGlnbm9yZSB0aGVzZSBwYXJ0cy4KLQotX0F2YWlsYWJp
bGl0eTpfIExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIENvbnRyb2xsaW5nIEhvdyBGYWlsdXJl
cyBBcmUgUmVwb3J0ZWQgIyMKLQotIyMjIFR1cm5pbmcgQXNzZXJ0aW9uIEZhaWx1cmVzIGludG8g
QnJlYWstUG9pbnRzICMjIwotCi1XaGVuIHJ1bm5pbmcgdGVzdCBwcm9ncmFtcyB1bmRlciBhIGRl
YnVnZ2VyLCBpdCdzIHZlcnkgY29udmVuaWVudCBpZiB0aGUKLWRlYnVnZ2VyIGNhbiBjYXRjaCBh
biBhc3NlcnRpb24gZmFpbHVyZSBhbmQgYXV0b21hdGljYWxseSBkcm9wIGludG8gaW50ZXJhY3Rp
dmUKLW1vZGUuIEdvb2dsZSBUZXN0J3MgX2JyZWFrLW9uLWZhaWx1cmVfIG1vZGUgc3VwcG9ydHMg
dGhpcyBiZWhhdmlvci4KLQotVG8gZW5hYmxlIGl0LCBzZXQgdGhlIGBHVEVTVF9CUkVBS19PTl9G
QUlMVVJFYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIHZhbHVlCi1vdGhlciB0aGFuIGAwYCAu
IEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHRoZSBgLS1ndGVzdF9icmVha19vbl9mYWlsdXJl
YAotY29tbWFuZCBsaW5lIGZsYWcuCi0KLV9BdmFpbGFiaWxpdHk6XyBMaW51eCwgV2luZG93cywg
TWFjLgotCi0jIyMgRGlzYWJsaW5nIENhdGNoaW5nIFRlc3QtVGhyb3duIEV4Y2VwdGlvbnMgIyMj
Ci0KLUdvb2dsZSBUZXN0IGNhbiBiZSB1c2VkIGVpdGhlciB3aXRoIG9yIHdpdGhvdXQgZXhjZXB0
aW9ucyBlbmFibGVkLiAgSWYKLWEgdGVzdCB0aHJvd3MgYSBDKysgZXhjZXB0aW9uIG9yIChvbiBX
aW5kb3dzKSBhIHN0cnVjdHVyZWQgZXhjZXB0aW9uCi0oU0VIKSwgYnkgZGVmYXVsdCBHb29nbGUg
VGVzdCBjYXRjaGVzIGl0LCByZXBvcnRzIGl0IGFzIGEgdGVzdAotZmFpbHVyZSwgYW5kIGNvbnRp
bnVlcyB3aXRoIHRoZSBuZXh0IHRlc3QgbWV0aG9kLiAgVGhpcyBtYXhpbWl6ZXMgdGhlCi1jb3Zl
cmFnZSBvZiBhIHRlc3QgcnVuLiAgQWxzbywgb24gV2luZG93cyBhbiB1bmNhdWdodCBleGNlcHRp
b24gd2lsbAotY2F1c2UgYSBwb3AtdXAgd2luZG93LCBzbyBjYXRjaGluZyB0aGUgZXhjZXB0aW9u
cyBhbGxvd3MgeW91IHRvIHJ1bgotdGhlIHRlc3RzIGF1dG9tYXRpY2FsbHkuCi0KLVdoZW4gZGVi
dWdnaW5nIHRoZSB0ZXN0IGZhaWx1cmVzLCBob3dldmVyLCB5b3UgbWF5IGluc3RlYWQgd2FudCB0
aGUKLWV4Y2VwdGlvbnMgdG8gYmUgaGFuZGxlZCBieSB0aGUgZGVidWdnZXIsIHN1Y2ggdGhhdCB5
b3UgY2FuIGV4YW1pbmUKLXRoZSBjYWxsIHN0YWNrIHdoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93
bi4gIFRvIGFjaGlldmUgdGhhdCwgc2V0IHRoZQotYEdURVNUX0NBVENIX0VYQ0VQVElPTlNgIGVu
dmlyb25tZW50IHZhcmlhYmxlIHRvIGAwYCwgb3IgdXNlIHRoZQotYC0tZ3Rlc3RfY2F0Y2hfZXhj
ZXB0aW9ucz0wYCBmbGFnIHdoZW4gcnVubmluZyB0aGUgdGVzdHMuCi0KLSoqQXZhaWxhYmlsaXR5
Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBMZXR0aW5nIEFub3RoZXIgVGVzdGluZyBG
cmFtZXdvcmsgRHJpdmUgIyMjCi0KLUlmIHlvdSB3b3JrIG9uIGEgcHJvamVjdCB0aGF0IGhhcyBh
bHJlYWR5IGJlZW4gdXNpbmcgYW5vdGhlciB0ZXN0aW5nCi1mcmFtZXdvcmsgYW5kIGlzIG5vdCBy
ZWFkeSB0byBjb21wbGV0ZWx5IHN3aXRjaCB0byBHb29nbGUgVGVzdCB5ZXQsCi15b3UgY2FuIGdl
dCBtdWNoIG9mIEdvb2dsZSBUZXN0J3MgYmVuZWZpdCBieSB1c2luZyBpdHMgYXNzZXJ0aW9ucyBp
bgoteW91ciBleGlzdGluZyB0ZXN0cy4gIEp1c3QgY2hhbmdlIHlvdXIgYG1haW4oKWAgZnVuY3Rp
b24gdG8gbG9vawotbGlrZToKLQotYGBgCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7Ci0gIDo6dGVzdGluZzo6R1RFU1RfRkxBRyh0
aHJvd19vbl9mYWlsdXJlKSA9IHRydWU7Ci0gIC8vIEltcG9ydGFudDogR29vZ2xlIFRlc3QgbXVz
dCBiZSBpbml0aWFsaXplZC4KLSAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJn
dik7Ci0KLSAgLi4uIHdoYXRldmVyIHlvdXIgZXhpc3RpbmcgdGVzdGluZyBmcmFtZXdvcmsgcmVx
dWlyZXMgLi4uCi19Ci1gYGAKLQotV2l0aCB0aGF0LCB5b3UgY2FuIHVzZSBHb29nbGUgVGVzdCBh
c3NlcnRpb25zIGluIGFkZGl0aW9uIHRvIHRoZQotbmF0aXZlIGFzc2VydGlvbnMgeW91ciB0ZXN0
aW5nIGZyYW1ld29yayBwcm92aWRlcywgZm9yIGV4YW1wbGU6Ci0KLWBgYAotdm9pZCBUZXN0Rm9v
RG9lc0JhcigpIHsKLSAgRm9vIGZvbzsKLSAgRVhQRUNUX0xFKGZvby5CYXIoMSksIDEwMCk7ICAg
ICAvLyBBIEdvb2dsZSBUZXN0IGFzc2VydGlvbi4KLSAgQ1BQVU5JVF9BU1NFUlQoZm9vLklzRW1w
dHkoKSk7ICAvLyBBIG5hdGl2ZSBhc3NlcnRpb24uCi19Ci1gYGAKLQotSWYgYSBHb29nbGUgVGVz
dCBhc3NlcnRpb24gZmFpbHMsIGl0IHdpbGwgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBhbmQKLXRo
cm93IGFuIGV4Y2VwdGlvbiwgd2hpY2ggd2lsbCBiZSB0cmVhdGVkIGFzIGEgZmFpbHVyZSBieSB5
b3VyIGhvc3QKLXRlc3RpbmcgZnJhbWV3b3JrLiAgSWYgeW91IGNvbXBpbGUgeW91ciBjb2RlIHdp
dGggZXhjZXB0aW9ucyBkaXNhYmxlZCwKLWEgZmFpbGVkIEdvb2dsZSBUZXN0IGFzc2VydGlvbiB3
aWxsIGluc3RlYWQgZXhpdCB5b3VyIHByb2dyYW0gd2l0aCBhCi1ub24temVybyBjb2RlLCB3aGlj
aCB3aWxsIGFsc28gc2lnbmFsIGEgdGVzdCBmYWlsdXJlIHRvIHlvdXIgdGVzdAotcnVubmVyLgot
Ci1JZiB5b3UgZG9uJ3Qgd3JpdGUgYDo6dGVzdGluZzo6R1RFU1RfRkxBRyh0aHJvd19vbl9mYWls
dXJlKSA9IHRydWU7YCBpbgoteW91ciBgbWFpbigpYCwgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IGVu
YWJsZSB0aGlzIGZlYXR1cmUgYnkgc3BlY2lmeWluZwotdGhlIGAtLWd0ZXN0X3Rocm93X29uX2Zh
aWx1cmVgIGZsYWcgb24gdGhlIGNvbW1hbmQtbGluZSBvciBzZXR0aW5nIHRoZQotYEdURVNUX1RI
Uk9XX09OX0ZBSUxVUkVgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGEgbm9uLXplcm8gdmFsdWUu
Ci0KLURlYXRoIHRlc3RzIGFyZSBfbm90XyBzdXBwb3J0ZWQgd2hlbiBvdGhlciB0ZXN0IGZyYW1l
d29yayBpcyB1c2VkIHRvIG9yZ2FuaXplIHRlc3RzLgotCi1fQXZhaWxhYmlsaXR5Ol8gTGludXgs
IFdpbmRvd3MsIE1hYzsgc2luY2UgdjEuMy4wLgotCi0jIyBEaXN0cmlidXRpbmcgVGVzdCBGdW5j
dGlvbnMgdG8gTXVsdGlwbGUgTWFjaGluZXMgIyMKLQotSWYgeW91IGhhdmUgbW9yZSB0aGFuIG9u
ZSBtYWNoaW5lIHlvdSBjYW4gdXNlIHRvIHJ1biBhIHRlc3QgcHJvZ3JhbSwKLXlvdSBtaWdodCB3
YW50IHRvIHJ1biB0aGUgdGVzdCBmdW5jdGlvbnMgaW4gcGFyYWxsZWwgYW5kIGdldCB0aGUKLXJl
c3VsdCBmYXN0ZXIuICBXZSBjYWxsIHRoaXMgdGVjaG5pcXVlIF9zaGFyZGluZ18sIHdoZXJlIGVh
Y2ggbWFjaGluZQotaXMgY2FsbGVkIGEgX3NoYXJkXy4KLQotR29vZ2xlIFRlc3QgaXMgY29tcGF0
aWJsZSB3aXRoIHRlc3Qgc2hhcmRpbmcuICBUbyB0YWtlIGFkdmFudGFnZSBvZgotdGhpcyBmZWF0
dXJlLCB5b3VyIHRlc3QgcnVubmVyIChub3QgcGFydCBvZiBHb29nbGUgVGVzdCkgbmVlZHMgdG8g
ZG8KLXRoZSBmb2xsb3dpbmc6Ci0KLSAgMS4gQWxsb2NhdGUgYSBudW1iZXIgb2YgbWFjaGluZXMg
KHNoYXJkcykgdG8gcnVuIHRoZSB0ZXN0cy4KLSAgMS4gT24gZWFjaCBzaGFyZCwgc2V0IHRoZSBg
R1RFU1RfVE9UQUxfU0hBUkRTYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgdG90YWwgbnVt
YmVyIG9mIHNoYXJkcy4gIEl0IG11c3QgYmUgdGhlIHNhbWUgZm9yIGFsbCBzaGFyZHMuCi0gIDEu
IE9uIGVhY2ggc2hhcmQsIHNldCB0aGUgYEdURVNUX1NIQVJEX0lOREVYYCBlbnZpcm9ubWVudCB2
YXJpYWJsZSB0byB0aGUgaW5kZXggb2YgdGhlIHNoYXJkLiAgRGlmZmVyZW50IHNoYXJkcyBtdXN0
IGJlIGFzc2lnbmVkIGRpZmZlcmVudCBpbmRpY2VzLCB3aGljaCBtdXN0IGJlIGluIHRoZSByYW5n
ZSBgWzAsIEdURVNUX1RPVEFMX1NIQVJEUyAtIDFdYC4KLSAgMS4gUnVuIHRoZSBzYW1lIHRlc3Qg
cHJvZ3JhbSBvbiBhbGwgc2hhcmRzLiAgV2hlbiBHb29nbGUgVGVzdCBzZWVzIHRoZSBhYm92ZSB0
d28gZW52aXJvbm1lbnQgdmFyaWFibGVzLCBpdCB3aWxsIHNlbGVjdCBhIHN1YnNldCBvZiB0aGUg
dGVzdCBmdW5jdGlvbnMgdG8gcnVuLiAgQWNyb3NzIGFsbCBzaGFyZHMsIGVhY2ggdGVzdCBmdW5j
dGlvbiBpbiB0aGUgcHJvZ3JhbSB3aWxsIGJlIHJ1biBleGFjdGx5IG9uY2UuCi0gIDEuIFdhaXQg
Zm9yIGFsbCBzaGFyZHMgdG8gZmluaXNoLCB0aGVuIGNvbGxlY3QgYW5kIHJlcG9ydCB0aGUgcmVz
dWx0cy4KLQotWW91ciBwcm9qZWN0IG1heSBoYXZlIHRlc3RzIHRoYXQgd2VyZSB3cml0dGVuIHdp
dGhvdXQgR29vZ2xlIFRlc3QgYW5kCi10aHVzIGRvbid0IHVuZGVyc3RhbmQgdGhpcyBwcm90b2Nv
bC4gIEluIG9yZGVyIGZvciB5b3VyIHRlc3QgcnVubmVyIHRvCi1maWd1cmUgb3V0IHdoaWNoIHRl
c3Qgc3VwcG9ydHMgc2hhcmRpbmcsIGl0IGNhbiBzZXQgdGhlIGVudmlyb25tZW50Ci12YXJpYWJs
ZSBgR1RFU1RfU0hBUkRfU1RBVFVTX0ZJTEVgIHRvIGEgbm9uLWV4aXN0ZW50IGZpbGUgcGF0aC4g
IElmIGEKLXRlc3QgcHJvZ3JhbSBzdXBwb3J0cyBzaGFyZGluZywgaXQgd2lsbCBjcmVhdGUgdGhp
cyBmaWxlIHRvCi1hY2tub3dsZWRnZSB0aGUgZmFjdCAodGhlIGFjdHVhbCBjb250ZW50cyBvZiB0
aGUgZmlsZSBhcmUgbm90Ci1pbXBvcnRhbnQgYXQgdGhpcyB0aW1lOyBhbHRob3VnaCB3ZSBtYXkg
c3RpY2sgc29tZSB1c2VmdWwgaW5mb3JtYXRpb24KLWluIGl0IGluIHRoZSBmdXR1cmUuKTsgb3Ro
ZXJ3aXNlIGl0IHdpbGwgbm90IGNyZWF0ZSBpdC4KLQotSGVyZSdzIGFuIGV4YW1wbGUgdG8gbWFr
ZSBpdCBjbGVhci4gIFN1cHBvc2UgeW91IGhhdmUgYSB0ZXN0IHByb2dyYW0KLWBmb29fdGVzdGAg
dGhhdCBjb250YWlucyB0aGUgZm9sbG93aW5nIDUgdGVzdCBmdW5jdGlvbnM6Ci1gYGAKLVRFU1Qo
QSwgVikKLVRFU1QoQSwgVykKLVRFU1QoQiwgWCkKLVRFU1QoQiwgWSkKLVRFU1QoQiwgWikKLWBg
YAotYW5kIHlvdSBoYXZlIDMgbWFjaGluZXMgYXQgeW91ciBkaXNwb3NhbC4gIFRvIHJ1biB0aGUg
dGVzdCBmdW5jdGlvbnMgaW4KLXBhcmFsbGVsLCB5b3Ugd291bGQgc2V0IGBHVEVTVF9UT1RBTF9T
SEFSRFNgIHRvIDMgb24gYWxsIG1hY2hpbmVzLCBhbmQKLXNldCBgR1RFU1RfU0hBUkRfSU5ERVhg
IHRvIDAsIDEsIGFuZCAyIG9uIHRoZSBtYWNoaW5lcyByZXNwZWN0aXZlbHkuCi1UaGVuIHlvdSB3
b3VsZCBydW4gdGhlIHNhbWUgYGZvb190ZXN0YCBvbiBlYWNoIG1hY2hpbmUuCi0KLUdvb2dsZSBU
ZXN0IHJlc2VydmVzIHRoZSByaWdodCB0byBjaGFuZ2UgaG93IHRoZSB3b3JrIGlzIGRpc3RyaWJ1
dGVkCi1hY3Jvc3MgdGhlIHNoYXJkcywgYnV0IGhlcmUncyBvbmUgcG9zc2libGUgc2NlbmFyaW86
Ci0KLSAgKiBNYWNoaW5lICMwIHJ1bnMgYEEuVmAgYW5kIGBCLlhgLgotICAqIE1hY2hpbmUgIzEg
cnVucyBgQS5XYCBhbmQgYEIuWWAuCi0gICogTWFjaGluZSAjMiBydW5zIGBCLlpgLgotCi1fQXZh
aWxhYmlsaXR5Ol8gTGludXgsIFdpbmRvd3MsIE1hYzsgc2luY2UgdmVyc2lvbiAxLjMuMC4KLQot
IyBGdXNpbmcgR29vZ2xlIFRlc3QgU291cmNlIEZpbGVzICMKLQotR29vZ2xlIFRlc3QncyBpbXBs
ZW1lbnRhdGlvbiBjb25zaXN0cyBvZiB+MzAgZmlsZXMgKGV4Y2x1ZGluZyBpdHMgb3duCi10ZXN0
cykuICBTb21ldGltZXMgeW91IG1heSB3YW50IHRoZW0gdG8gYmUgcGFja2FnZWQgdXAgaW4gdHdv
IGZpbGVzIChhCi1gLmhgIGFuZCBhIGAuY2NgKSBpbnN0ZWFkLCBzdWNoIHRoYXQgeW91IGNhbiBl
YXNpbHkgY29weSB0aGVtIHRvIGEgbmV3Ci1tYWNoaW5lIGFuZCBzdGFydCBoYWNraW5nIHRoZXJl
LiAgRm9yIHRoaXMgd2UgcHJvdmlkZSBhbiBleHBlcmltZW50YWwKLVB5dGhvbiBzY3JpcHQgYGZ1
c2VfZ3Rlc3RfZmlsZXMucHlgIGluIHRoZSBgc2NyaXB0cy9gIGRpcmVjdG9yeSAoc2luY2UgcmVs
ZWFzZSAxLjMuMCkuCi1Bc3N1bWluZyB5b3UgaGF2ZSBQeXRob24gMi40IG9yIGFib3ZlIGluc3Rh
bGxlZCBvbiB5b3VyIG1hY2hpbmUsIGp1c3QKLWdvIHRvIHRoYXQgZGlyZWN0b3J5IGFuZCBydW4K
LWBgYAotcHl0aG9uIGZ1c2VfZ3Rlc3RfZmlsZXMucHkgT1VUUFVUX0RJUgotYGBgCi0KLWFuZCB5
b3Ugc2hvdWxkIHNlZSBhbiBgT1VUUFVUX0RJUmAgZGlyZWN0b3J5IGJlaW5nIGNyZWF0ZWQgd2l0
aCBmaWxlcwotYGd0ZXN0L2d0ZXN0LmhgIGFuZCBgZ3Rlc3QvZ3Rlc3QtYWxsLmNjYCBpbiBpdC4g
IFRoZXNlIGZpbGVzIGNvbnRhaW4KLWV2ZXJ5dGhpbmcgeW91IG5lZWQgdG8gdXNlIEdvb2dsZSBU
ZXN0LiAgSnVzdCBjb3B5IHRoZW0gdG8gYW55d2hlcmUKLXlvdSB3YW50IGFuZCB5b3UgYXJlIHJl
YWR5IHRvIHdyaXRlIHRlc3RzLiAgWW91IGNhbiB1c2UgdGhlCi1bc2NyaXB0cy90ZXN0L01ha2Vm
aWxlXSguLi9zY3JpcHRzL3Rlc3QvTWFrZWZpbGUpCi1maWxlIGFzIGFuIGV4YW1wbGUgb24gaG93
IHRvIGNvbXBpbGUgeW91ciB0ZXN0cyBhZ2FpbnN0IHRoZW0uCi0KLSMgV2hlcmUgdG8gR28gZnJv
bSBIZXJlICMKLQotQ29uZ3JhdHVsYXRpb25zISBZb3UndmUgbm93IGxlYXJuZWQgbW9yZSBhZHZh
bmNlZCBHb29nbGUgVGVzdCB0b29scyBhbmQgYXJlCi1yZWFkeSB0byB0YWNrbGUgbW9yZSBjb21w
bGV4IHRlc3RpbmcgdGFza3MuIElmIHlvdSB3YW50IHRvIGRpdmUgZXZlbiBkZWVwZXIsIHlvdQot
Y2FuIHJlYWQgdGhlIFtGcmVxdWVudGx5LUFza2VkIFF1ZXN0aW9uc10oRkFRLm1kKS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3MvRG9jdW1lbnRhdGlvbi5tZCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3MvRG9jdW1lbnRhdGlvbi5tZApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzc4NGM4ZmQ5OThkYTk5OTAzZmZiODdhZDYwMTAxYWVj
OGI1NmE3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9kb2NzL0RvY3VtZW50YXRpb24ubWQKKysrIC9kZXYv
bnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBhZ2UgbGlzdHMgYWxsIGRvY3VtZW50YXRpb24g
bWFya2Rvd24gZmlsZXMgZm9yIEdvb2dsZSBUZXN0ICoqKHRoZQotY3VycmVudCBnaXQgdmVyc2lv
bikqKgotLS0gKippZiB5b3UgdXNlIGEgZm9ybWVyIHZlcnNpb24gb2YgR29vZ2xlIFRlc3QsIHBs
ZWFzZSByZWFkIHRoZQotZG9jdW1lbnRhdGlvbiBmb3IgdGhhdCBzcGVjaWZpYyB2ZXJzaW9uIGlu
c3RlYWQgKGUuZy4gYnkgY2hlY2tpbmcgb3V0Ci10aGUgcmVzcGVjdGl2ZSBnaXQgYnJhbmNoL3Rh
ZykuKioKLQotICAqIFtQcmltZXJdKFByaW1lci5tZCkgLS0gc3RhcnQgaGVyZSBpZiB5b3UgYXJl
IG5ldyB0byBHb29nbGUgVGVzdC4KLSAgKiBbU2FtcGxlc10oU2FtcGxlcy5tZCkgLS0gbGVhcm4g
ZnJvbSBleGFtcGxlcy4KLSAgKiBbQWR2YW5jZWRHdWlkZV0oQWR2YW5jZWRHdWlkZS5tZCkgLS0g
bGVhcm4gbW9yZSBhYm91dCBHb29nbGUgVGVzdC4KLSAgKiBbWGNvZGVHdWlkZV0oWGNvZGVHdWlk
ZS5tZCkgLS0gaG93IHRvIHVzZSBHb29nbGUgVGVzdCBpbiBYY29kZSBvbiBNYWMuCi0gICogW0Zy
ZXF1ZW50bHktQXNrZWQgUXVlc3Rpb25zXShGQVEubWQpIC0tIGNoZWNrIGhlcmUgYmVmb3JlIGFz
a2luZyBhIHF1ZXN0aW9uIG9uIHRoZSBtYWlsaW5nIGxpc3QuCi0KLVRvIGNvbnRyaWJ1dGUgY29k
ZSB0byBHb29nbGUgVGVzdCwgcmVhZDoKLQotICAqIFtDT05UUklCVVRJTkddKC4uL0NPTlRSSUJV
VElORy5tZCkgLS0gcmVhZCB0aGlzIF9iZWZvcmVfIHdyaXRpbmcgeW91ciBmaXJzdCBwYXRjaC4K
LSAgKiBbUHVtcE1hbnVhbF0oUHVtcE1hbnVhbC5tZCkgLS0gaG93IHdlIGdlbmVyYXRlIHNvbWUg
b2YgR29vZ2xlIFRlc3QncyBzb3VyY2UgZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFy
dHkvZ29vZ2xldGVzdC9kb2NzL0ZBUS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2Rv
Y3MvRkFRLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTIxNmExYTY0YmIxNDcx
NzBmNTUyY2UzYzQ2ZGU4OTBkN2ZjZjFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3MvRkFRLm1kCisr
KyAvZGV2L251bGwKQEAgLTEsMTA5MiArMCwwIEBACi0KLQotSWYgeW91IGNhbm5vdCBmaW5kIHRo
ZSBhbnN3ZXIgdG8geW91ciBxdWVzdGlvbiBoZXJlLCBhbmQgeW91IGhhdmUgcmVhZAotW1ByaW1l
cl0oUHJpbWVyLm1kKSBhbmQgW0FkdmFuY2VkR3VpZGVdKEFkdmFuY2VkR3VpZGUubWQpLCBzZW5k
IGl0IHRvCi1nb29nbGV0ZXN0ZnJhbWV3b3JrQGdvb2dsZWdyb3Vwcy5jb20uCi0KLSMjIFdoeSBz
aG91bGQgSSB1c2UgR29vZ2xlIFRlc3QgaW5zdGVhZCBvZiBteSBmYXZvcml0ZSBDKysgdGVzdGlu
ZyBmcmFtZXdvcms/ICMjCi0KLUZpcnN0LCBsZXQgdXMgc2F5IGNsZWFybHkgdGhhdCB3ZSBkb24n
dCB3YW50IHRvIGdldCBpbnRvIHRoZSBkZWJhdGUgb2YKLXdoaWNoIEMrKyB0ZXN0aW5nIGZyYW1l
d29yayBpcyAqKnRoZSBiZXN0KiouICBUaGVyZSBleGlzdCBtYW55IGZpbmUKLWZyYW1ld29ya3Mg
Zm9yIHdyaXRpbmcgQysrIHRlc3RzLCBhbmQgd2UgaGF2ZSB0cmVtZW5kb3VzIHJlc3BlY3QgZm9y
Ci10aGUgZGV2ZWxvcGVycyBhbmQgdXNlcnMgb2YgdGhlbS4gIFdlIGRvbid0IHRoaW5rIHRoZXJl
IGlzIChvciB3aWxsCi1iZSkgYSBzaW5nbGUgYmVzdCBmcmFtZXdvcmsgLSB5b3UgaGF2ZSB0byBw
aWNrIHRoZSByaWdodCB0b29sIGZvciB0aGUKLXBhcnRpY3VsYXIgdGFzayB5b3UgYXJlIHRhY2ts
aW5nLgotCi1XZSBjcmVhdGVkIEdvb2dsZSBUZXN0IGJlY2F1c2Ugd2UgY291bGRuJ3QgZmluZCB0
aGUgcmlnaHQgY29tYmluYXRpb24KLW9mIGZlYXR1cmVzIGFuZCBjb252ZW5pZW5jZXMgaW4gYW4g
ZXhpc3RpbmcgZnJhbWV3b3JrIHRvIHNhdGlzZnkgX291cl8KLW5lZWRzLiAgVGhlIGZvbGxvd2lu
ZyBpcyBhIGxpc3Qgb2YgdGhpbmdzIHRoYXQgX3dlXyBsaWtlIGFib3V0IEdvb2dsZQotVGVzdC4g
IFdlIGRvbid0IGNsYWltIHRoZW0gdG8gYmUgdW5pcXVlIHRvIEdvb2dsZSBUZXN0IC0gcmF0aGVy
LCB0aGUKLWNvbWJpbmF0aW9uIG9mIHRoZW0gbWFrZXMgR29vZ2xlIFRlc3QgdGhlIGNob2ljZSBm
b3IgdXMuICBXZSBob3BlIHRoaXMKLWxpc3QgY2FuIGhlbHAgeW91IGRlY2lkZSB3aGV0aGVyIGl0
IGlzIGZvciB5b3UgdG9vLgotCi0gICogR29vZ2xlIFRlc3QgaXMgZGVzaWduZWQgdG8gYmUgcG9y
dGFibGU6IGl0IGRvZXNuJ3QgcmVxdWlyZSBleGNlcHRpb25zIG9yIFJUVEk7IGl0IHdvcmtzIGFy
b3VuZCB2YXJpb3VzIGJ1Z3MgaW4gdmFyaW91cyBjb21waWxlcnMgYW5kIGVudmlyb25tZW50czsg
ZXRjLiAgQXMgYSByZXN1bHQsIGl0IHdvcmtzIG9uIExpbnV4LCBNYWMgT1MgWCwgV2luZG93cyBh
bmQgc2V2ZXJhbCBlbWJlZGRlZCBvcGVyYXRpbmcgc3lzdGVtcy4KLSAgKiBOb25mYXRhbCBhc3Nl
cnRpb25zIChgRVhQRUNUXypgKSBoYXZlIHByb3ZlbiB0byBiZSBncmVhdCB0aW1lIHNhdmVycywg
YXMgdGhleSBhbGxvdyBhIHRlc3QgdG8gcmVwb3J0IG11bHRpcGxlIGZhaWx1cmVzIGluIGEgc2lu
Z2xlIGVkaXQtY29tcGlsZS10ZXN0IGN5Y2xlLgotICAqIEl0J3MgZWFzeSB0byB3cml0ZSBhc3Nl
cnRpb25zIHRoYXQgZ2VuZXJhdGUgaW5mb3JtYXRpdmUgbWVzc2FnZXM6IHlvdSBqdXN0IHVzZSB0
aGUgc3RyZWFtIHN5bnRheCB0byBhcHBlbmQgYW55IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIGUu
Zy4gYEFTU0VSVF9FUSg1LCBGb28oaSkpIDw8ICIgd2hlcmUgaSA9ICIgPDwgaTtgLiAgSXQgZG9l
c24ndCByZXF1aXJlIGEgbmV3IHNldCBvZiBtYWNyb3Mgb3Igc3BlY2lhbCBmdW5jdGlvbnMuCi0g
ICogR29vZ2xlIFRlc3QgYXV0b21hdGljYWxseSBkZXRlY3RzIHlvdXIgdGVzdHMgYW5kIGRvZXNu
J3QgcmVxdWlyZSB5b3UgdG8gZW51bWVyYXRlIHRoZW0gaW4gb3JkZXIgdG8gcnVuIHRoZW0uCi0g
ICogRGVhdGggdGVzdHMgYXJlIHByZXR0eSBoYW5keSBmb3IgZW5zdXJpbmcgdGhhdCB5b3VyIGFz
c2VydHMgaW4gcHJvZHVjdGlvbiBjb2RlIGFyZSB0cmlnZ2VyZWQgYnkgdGhlIHJpZ2h0IGNvbmRp
dGlvbnMuCi0gICogYFNDT1BFRF9UUkFDRWAgaGVscHMgeW91IHVuZGVyc3RhbmQgdGhlIGNvbnRl
eHQgb2YgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBpdCBjb21lcyBmcm9tIGluc2lkZSBhIHN1
Yi1yb3V0aW5lIG9yIGxvb3AuCi0gICogWW91IGNhbiBkZWNpZGUgd2hpY2ggdGVzdHMgdG8gcnVu
IHVzaW5nIG5hbWUgcGF0dGVybnMuICBUaGlzIHNhdmVzIHRpbWUgd2hlbiB5b3Ugd2FudCB0byBx
dWlja2x5IHJlcHJvZHVjZSBhIHRlc3QgZmFpbHVyZS4KLSAgKiBHb29nbGUgVGVzdCBjYW4gZ2Vu
ZXJhdGUgWE1MIHRlc3QgcmVzdWx0IHJlcG9ydHMgdGhhdCBjYW4gYmUgcGFyc2VkIGJ5IHBvcHVs
YXIgY29udGludW91cyBidWlsZCBzeXN0ZW0gbGlrZSBIdWRzb24uCi0gICogU2ltcGxlIHRoaW5n
cyBhcmUgZWFzeSBpbiBHb29nbGUgVGVzdCwgd2hpbGUgaGFyZCB0aGluZ3MgYXJlIHBvc3NpYmxl
OiBpbiBhZGRpdGlvbiB0byBhZHZhbmNlZCBmZWF0dXJlcyBsaWtlIFtnbG9iYWwgdGVzdCBlbnZp
cm9ubWVudHNdKEFkdmFuY2VkR3VpZGUubWQjZ2xvYmFsLXNldC11cC1hbmQtdGVhci1kb3duKSBh
bmQgdGVzdHMgcGFyYW1ldGVyaXplZCBieSBbdmFsdWVzXShBZHZhbmNlZEd1aWRlLm1kI3ZhbHVl
LXBhcmFtZXRlcml6ZWQtdGVzdHMpIG9yIFt0eXBlc10oZG9jcy9BZHZhbmNlZEd1aWRlLm1kI3R5
cGVkLXRlc3RzKSwgR29vZ2xlIFRlc3Qgc3VwcG9ydHMgdmFyaW91cyB3YXlzIGZvciB0aGUgdXNl
ciB0byBleHRlbmQgdGhlIGZyYW1ld29yayAtLSBpZiBHb29nbGUgVGVzdCBkb2Vzbid0IGRvIHNv
bWV0aGluZyBvdXQgb2YgdGhlIGJveCwgY2hhbmNlcyBhcmUgdGhhdCBhIHVzZXIgY2FuIGltcGxl
bWVudCB0aGUgZmVhdHVyZSB1c2luZyBHb29nbGUgVGVzdCdzIHB1YmxpYyBBUEksIHdpdGhvdXQg
Y2hhbmdpbmcgR29vZ2xlIFRlc3QgaXRzZWxmLiAgSW4gcGFydGljdWxhciwgeW91IGNhbjoKLSAg
ICAqIGV4cGFuZCB5b3VyIHRlc3Rpbmcgdm9jYWJ1bGFyeSBieSBkZWZpbmluZyBbY3VzdG9tIHBy
ZWRpY2F0ZXNdKEFkdmFuY2VkR3VpZGUubWQjcHJlZGljYXRlLWFzc2VydGlvbnMtZm9yLWJldHRl
ci1lcnJvci1tZXNzYWdlcyksCi0gICAgKiB0ZWFjaCBHb29nbGUgVGVzdCBob3cgdG8gW3ByaW50
IHlvdXIgdHlwZXNdKEFkdmFuY2VkR3VpZGUubWQjdGVhY2hpbmctZ29vZ2xlLXRlc3QtaG93LXRv
LXByaW50LXlvdXItdmFsdWVzKSwKLSAgICAqIGRlZmluZSB5b3VyIG93biB0ZXN0aW5nIG1hY3Jv
cyBvciB1dGlsaXRpZXMgYW5kIHZlcmlmeSB0aGVtIHVzaW5nIEdvb2dsZSBUZXN0J3MgW1NlcnZp
Y2UgUHJvdmlkZXIgSW50ZXJmYWNlXShBZHZhbmNlZEd1aWRlLm1kI2NhdGNoaW5nLWZhaWx1cmVz
KSwgYW5kCi0gICAgKiByZWZsZWN0IG9uIHRoZSB0ZXN0IGNhc2VzIG9yIGNoYW5nZSB0aGUgdGVz
dCBvdXRwdXQgZm9ybWF0IGJ5IGludGVyY2VwdGluZyB0aGUgW3Rlc3QgZXZlbnRzXShBZHZhbmNl
ZEd1aWRlLm1kI2V4dGVuZGluZy1nb29nbGUtdGVzdC1ieS1oYW5kbGluZy10ZXN0LWV2ZW50cyku
Ci0KLSMjIEknbSBnZXR0aW5nIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIEdvb2dsZSBUZXN0LiAg
V291bGQgeW91IGZpeCB0aGVtPyAjIwotCi1XZSBzdHJpdmUgdG8gbWluaW1pemUgY29tcGlsZXIg
d2FybmluZ3MgR29vZ2xlIFRlc3QgZ2VuZXJhdGVzLiAgQmVmb3JlIHJlbGVhc2luZyBhIG5ldyB2
ZXJzaW9uLCB3ZSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGl0IGRvZXNuJ3QgZ2VuZXJhdGUgd2Fy
bmluZ3Mgd2hlbiBjb21waWxlZCB1c2luZyBpdHMgQ01ha2Ugc2NyaXB0IG9uIFdpbmRvd3MsIExp
bnV4LCBhbmQgTWFjIE9TLgotCi1VbmZvcnR1bmF0ZWx5LCB0aGlzIGRvZXNuJ3QgbWVhbiB5b3Ug
YXJlIGd1YXJhbnRlZWQgdG8gc2VlIG5vIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIEdvb2dsZSBU
ZXN0IGluIHlvdXIgZW52aXJvbm1lbnQ6Ci0KLSAgKiBZb3UgbWF5IGJlIHVzaW5nIGEgZGlmZmVy
ZW50IGNvbXBpbGVyIGFzIHdlIHVzZSwgb3IgYSBkaWZmZXJlbnQgdmVyc2lvbiBvZiB0aGUgc2Ft
ZSBjb21waWxlci4gIFdlIGNhbm5vdCBwb3NzaWJseSB0ZXN0IGZvciBhbGwgY29tcGlsZXJzLgot
ICAqIFlvdSBtYXkgYmUgY29tcGlsaW5nIG9uIGEgZGlmZmVyZW50IHBsYXRmb3JtIGFzIHdlIGRv
LgotICAqIFlvdXIgcHJvamVjdCBtYXkgYmUgdXNpbmcgZGlmZmVyZW50IGNvbXBpbGVyIGZsYWdz
IGFzIHdlIGRvLgotCi1JdCBpcyBub3QgYWx3YXlzIHBvc3NpYmxlIHRvIG1ha2UgR29vZ2xlIFRl
c3Qgd2FybmluZy1mcmVlIGZvciBldmVyeW9uZS4gIE9yLCBpdCBtYXkgbm90IGJlIGRlc2lyYWJs
ZSBpZiB0aGUgd2FybmluZyBpcyByYXJlbHkgZW5hYmxlZCBhbmQgZml4aW5nIHRoZSB2aW9sYXRp
b25zIG1ha2VzIHRoZSBjb2RlIG1vcmUgY29tcGxleC4KLQotSWYgeW91IHNlZSB3YXJuaW5ncyB3
aGVuIGNvbXBpbGluZyBHb29nbGUgVGVzdCwgd2Ugc3VnZ2VzdCB0aGF0IHlvdSB1c2UgdGhlIGAt
aXN5c3RlbWAgZmxhZyAoYXNzdW1pbmcgeW91ciBhcmUgdXNpbmcgR0NDKSB0byBtYXJrIEdvb2ds
ZSBUZXN0IGhlYWRlcnMgYXMgc3lzdGVtIGhlYWRlcnMuICBUaGF0J2xsIHN1cHByZXNzIHdhcm5p
bmdzIGZyb20gR29vZ2xlIFRlc3QgaGVhZGVycy4KLQotIyMgV2h5IHNob3VsZCBub3QgdGVzdCBj
YXNlIG5hbWVzIGFuZCB0ZXN0IG5hbWVzIGNvbnRhaW4gdW5kZXJzY29yZT8gIyMKLQotVW5kZXJz
Y29yZSAoYF9gKSBpcyBzcGVjaWFsLCBhcyBDKysgcmVzZXJ2ZXMgdGhlIGZvbGxvd2luZyB0byBi
ZSB1c2VkIGJ5Ci10aGUgY29tcGlsZXIgYW5kIHRoZSBzdGFuZGFyZCBsaWJyYXJ5OgotCi0gIDEu
IGFueSBpZGVudGlmaWVyIHRoYXQgc3RhcnRzIHdpdGggYW4gYF9gIGZvbGxvd2VkIGJ5IGFuIHVw
cGVyLWNhc2UgbGV0dGVyLCBhbmQKLSAgMS4gYW55IGlkZW50aWZpZXIgdGhhdCBjb250YWlucyB0
d28gY29uc2VjdXRpdmUgdW5kZXJzY29yZXMgKGkuZS4gYF9fYCkgX2FueXdoZXJlXyBpbiBpdHMg
bmFtZS4KLQotVXNlciBjb2RlIGlzIF9wcm9oaWJpdGVkXyBmcm9tIHVzaW5nIHN1Y2ggaWRlbnRp
ZmllcnMuCi0KLU5vdyBsZXQncyBsb29rIGF0IHdoYXQgdGhpcyBtZWFucyBmb3IgYFRFU1RgIGFu
ZCBgVEVTVF9GYC4KLQotQ3VycmVudGx5IGBURVNUKFRlc3RDYXNlTmFtZSwgVGVzdE5hbWUpYCBn
ZW5lcmF0ZXMgYSBjbGFzcyBuYW1lZAotYFRlc3RDYXNlTmFtZV9UZXN0TmFtZV9UZXN0YC4gIFdo
YXQgaGFwcGVucyBpZiBgVGVzdENhc2VOYW1lYCBvciBgVGVzdE5hbWVgCi1jb250YWlucyBgX2A/
Ci0KLSAgMS4gSWYgYFRlc3RDYXNlTmFtZWAgc3RhcnRzIHdpdGggYW4gYF9gIGZvbGxvd2VkIGJ5
IGFuIHVwcGVyLWNhc2UgbGV0dGVyIChzYXksIGBfRm9vYCksIHdlIGVuZCB1cCB3aXRoIGBfRm9v
X1Rlc3ROYW1lX1Rlc3RgLCB3aGljaCBpcyByZXNlcnZlZCBhbmQgdGh1cyBpbnZhbGlkLgotICAx
LiBJZiBgVGVzdENhc2VOYW1lYCBlbmRzIHdpdGggYW4gYF9gIChzYXksIGBGb29fYCksIHdlIGdl
dCBgRm9vX19UZXN0TmFtZV9UZXN0YCwgd2hpY2ggaXMgaW52YWxpZC4KLSAgMS4gSWYgYFRlc3RO
YW1lYCBzdGFydHMgd2l0aCBhbiBgX2AgKHNheSwgYF9CYXJgKSwgd2UgZ2V0IGBUZXN0Q2FzZU5h
bWVfX0Jhcl9UZXN0YCwgd2hpY2ggaXMgaW52YWxpZC4KLSAgMS4gSWYgYFRlc3ROYW1lYCBlbmRz
IHdpdGggYW4gYF9gIChzYXksIGBCYXJfYCksIHdlIGdldCBgVGVzdENhc2VOYW1lX0Jhcl9fVGVz
dGAsIHdoaWNoIGlzIGludmFsaWQuCi0KLVNvIGNsZWFybHkgYFRlc3RDYXNlTmFtZWAgYW5kIGBU
ZXN0TmFtZWAgY2Fubm90IHN0YXJ0IG9yIGVuZCB3aXRoIGBfYAotKEFjdHVhbGx5LCBgVGVzdENh
c2VOYW1lYCBjYW4gc3RhcnQgd2l0aCBgX2AgLS0gYXMgbG9uZyBhcyB0aGUgYF9gIGlzbid0Ci1m
b2xsb3dlZCBieSBhbiB1cHBlci1jYXNlIGxldHRlci4gIEJ1dCB0aGF0J3MgZ2V0dGluZyBjb21w
bGljYXRlZC4gIFNvCi1mb3Igc2ltcGxpY2l0eSB3ZSBqdXN0IHNheSB0aGF0IGl0IGNhbm5vdCBz
dGFydCB3aXRoIGBfYC4pLgotCi1JdCBtYXkgc2VlbSBmaW5lIGZvciBgVGVzdENhc2VOYW1lYCBh
bmQgYFRlc3ROYW1lYCB0byBjb250YWluIGBfYCBpbiB0aGUKLW1pZGRsZS4gIEhvd2V2ZXIsIGNv
bnNpZGVyIHRoaXM6Ci1gYGAgY3BwCi1URVNUKFRpbWUsIEZsaWVzX0xpa2VfQW5fQXJyb3cpIHsg
Li4uIH0KLVRFU1QoVGltZV9GbGllcywgTGlrZV9Bbl9BcnJvdykgeyAuLi4gfQotYGBgCi0KLU5v
dywgdGhlIHR3byBgVEVTVGBzIHdpbGwgYm90aCBnZW5lcmF0ZSB0aGUgc2FtZSBjbGFzcwotKGBU
aW1lX0ZpbGVzX0xpa2VfQW5fQXJyb3dfVGVzdGApLiAgVGhhdCdzIG5vdCBnb29kLgotCi1TbyBm
b3Igc2ltcGxpY2l0eSwgd2UganVzdCBhc2sgdGhlIHVzZXJzIHRvIGF2b2lkIGBfYCBpbiBgVGVz
dENhc2VOYW1lYAotYW5kIGBUZXN0TmFtZWAuICBUaGUgcnVsZSBpcyBtb3JlIGNvbnN0cmFpbmlu
ZyB0aGFuIG5lY2Vzc2FyeSwgYnV0IGl0J3MKLXNpbXBsZSBhbmQgZWFzeSB0byByZW1lbWJlci4g
IEl0IGFsc28gZ2l2ZXMgR29vZ2xlIFRlc3Qgc29tZSB3aWdnbGUKLXJvb20gaW4gY2FzZSBpdHMg
aW1wbGVtZW50YXRpb24gbmVlZHMgdG8gY2hhbmdlIGluIHRoZSBmdXR1cmUuCi0KLUlmIHlvdSB2
aW9sYXRlIHRoZSBydWxlLCB0aGVyZSBtYXkgbm90IGJlIGltbWVkaWF0ZWx5IGNvbnNlcXVlbmNl
cywKLWJ1dCB5b3VyIHRlc3QgbWF5IChqdXN0IG1heSkgYnJlYWsgd2l0aCBhIG5ldyBjb21waWxl
ciAob3IgYSBuZXcKLXZlcnNpb24gb2YgdGhlIGNvbXBpbGVyIHlvdSBhcmUgdXNpbmcpIG9yIHdp
dGggYSBuZXcgdmVyc2lvbiBvZiBHb29nbGUKLVRlc3QuICBUaGVyZWZvcmUgaXQncyBiZXN0IHRv
IGZvbGxvdyB0aGUgcnVsZS4KLQotIyMgV2h5IGlzIGl0IG5vdCByZWNvbW1lbmRlZCB0byBpbnN0
YWxsIGEgcHJlLWNvbXBpbGVkIGNvcHkgb2YgR29vZ2xlIFRlc3QgKGZvciBleGFtcGxlLCBpbnRv
IC91c3IvbG9jYWwpPyAjIwotCi1JbiB0aGUgZWFybHkgZGF5cywgd2Ugc2FpZCB0aGF0IHlvdSBj
b3VsZCBpbnN0YWxsCi1jb21waWxlZCBHb29nbGUgVGVzdCBsaWJyYXJpZXMgb24gYCpgbml4IHN5
c3RlbXMgdXNpbmcgYG1ha2UgaW5zdGFsbGAuCi1UaGVuIGV2ZXJ5IHVzZXIgb2YgeW91ciBtYWNo
aW5lIGNhbiB3cml0ZSB0ZXN0cyB3aXRob3V0Ci1yZWNvbXBpbGluZyBHb29nbGUgVGVzdC4KLQot
VGhpcyBzZWVtZWQgbGlrZSBhIGdvb2QgaWRlYSwgYnV0IGl0IGhhcyBhCi1nb3QtY2hhOiBldmVy
eSB1c2VyIG5lZWRzIHRvIGNvbXBpbGUgdGhlaXIgdGVzdHMgdXNpbmcgdGhlIF9zYW1lXyBjb21w
aWxlcgotZmxhZ3MgdXNlZCB0byBjb21waWxlIHRoZSBpbnN0YWxsZWQgR29vZ2xlIFRlc3QgbGli
cmFyaWVzOyBvdGhlcndpc2UKLXRoZXkgbWF5IHJ1biBpbnRvIHVuZGVmaW5lZCBiZWhhdmlvcnMg
KGkuZS4gdGhlIHRlc3RzIGNhbiBiZWhhdmUKLXN0cmFuZ2VseSBhbmQgbWF5IGV2ZW4gY3Jhc2gg
Zm9yIG5vIG9idmlvdXMgcmVhc29ucykuCi0KLVdoeT8gIEJlY2F1c2UgQysrIGhhcyB0aGlzIHRo
aW5nIGNhbGxlZCB0aGUgT25lLURlZmluaXRpb24gUnVsZTogaWYKLXR3byBDKysgc291cmNlIGZp
bGVzIGNvbnRhaW4gZGlmZmVyZW50IGRlZmluaXRpb25zIG9mIHRoZSBzYW1lCi1jbGFzcy9mdW5j
dGlvbi92YXJpYWJsZSwgYW5kIHlvdSBsaW5rIHRoZW0gdG9nZXRoZXIsIHlvdSB2aW9sYXRlIHRo
ZQotcnVsZS4gIFRoZSBsaW5rZXIgbWF5IG9yIG1heSBub3QgY2F0Y2ggdGhlIGVycm9yIChpbiBt
YW55IGNhc2VzIGl0J3MKLW5vdCByZXF1aXJlZCBieSB0aGUgQysrIHN0YW5kYXJkIHRvIGNhdGNo
IHRoZSB2aW9sYXRpb24pLiAgSWYgaXQKLWRvZXNuJ3QsIHlvdSBnZXQgc3RyYW5nZSBydW4tdGlt
ZSBiZWhhdmlvcnMgdGhhdCBhcmUgdW5leHBlY3RlZCBhbmQKLWhhcmQgdG8gZGVidWcuCi0KLUlm
IHlvdSBjb21waWxlIEdvb2dsZSBUZXN0IGFuZCB5b3VyIHRlc3QgY29kZSB1c2luZyBkaWZmZXJl
bnQgY29tcGlsZXIKLWZsYWdzLCB0aGV5IG1heSBzZWUgZGlmZmVyZW50IGRlZmluaXRpb25zIG9m
IHRoZSBzYW1lCi1jbGFzcy9mdW5jdGlvbi92YXJpYWJsZSAoZS5nLiBkdWUgdG8gdGhlIHVzZSBv
ZiBgI2lmYCBpbiBHb29nbGUgVGVzdCkuCi1UaGVyZWZvcmUsIGZvciB5b3VyIHNhbml0eSwgd2Ug
cmVjb21tZW5kIHRvIGF2b2lkIGluc3RhbGxpbmcgcHJlLWNvbXBpbGVkCi1Hb29nbGUgVGVzdCBs
aWJyYXJpZXMuICBJbnN0ZWFkLCBlYWNoIHByb2plY3Qgc2hvdWxkIGNvbXBpbGUKLUdvb2dsZSBU
ZXN0IGl0c2VsZiBzdWNoIHRoYXQgaXQgY2FuIGJlIHN1cmUgdGhhdCB0aGUgc2FtZSBmbGFncyBh
cmUKLXVzZWQgZm9yIGJvdGggR29vZ2xlIFRlc3QgYW5kIHRoZSB0ZXN0cy4KLQotIyMgSG93IGRv
IEkgZ2VuZXJhdGUgNjQtYml0IGJpbmFyaWVzIG9uIFdpbmRvd3MgKHVzaW5nIFZpc3VhbCBTdHVk
aW8gMjAwOCk/ICMjCi0KLShBbnN3ZXJlZCBieSBUcmV2b3IgUm9iaW5zb24pCi0KLUxvYWQgdGhl
IHN1cHBsaWVkIFZpc3VhbCBTdHVkaW8gc29sdXRpb24gZmlsZSwgZWl0aGVyIGBtc3ZjXGd0ZXN0
LW1kLnNsbmAgb3IKLWBtc3ZjXGd0ZXN0LnNsbmAuIEdvIHRocm91Z2ggdGhlIG1pZ3JhdGlvbiB3
aXphcmQgdG8gbWlncmF0ZSB0aGUKLXNvbHV0aW9uIGFuZCBwcm9qZWN0IGZpbGVzIHRvIFZpc3Vh
bCBTdHVkaW8gMjAwOC4gU2VsZWN0Ci1gQ29uZmlndXJhdGlvbiBNYW5hZ2VyLi4uYCBmcm9tIHRo
ZSBgQnVpbGRgIG1lbnUuIFNlbGVjdCBgPE5ldy4uLj5gIGZyb20KLXRoZSBgQWN0aXZlIHNvbHV0
aW9uIHBsYXRmb3JtYCBkcm9wZG93bi4gIFNlbGVjdCBgeDY0YCBmcm9tIHRoZSBuZXcKLXBsYXRm
b3JtIGRyb3Bkb3duLCBsZWF2ZSBgQ29weSBzZXR0aW5ncyBmcm9tYCBzZXQgdG8gYFdpbjMyYCBh
bmQKLWBDcmVhdGUgbmV3IHByb2plY3QgcGxhdGZvcm1zYCBjaGVja2VkLCB0aGVuIGNsaWNrIGBP
S2AuIFlvdSBub3cgaGF2ZQotYFdpbjMyYCBhbmQgYHg2NGAgcGxhdGZvcm0gY29uZmlndXJhdGlv
bnMsIHNlbGVjdGFibGUgZnJvbSB0aGUKLWBTdGFuZGFyZGAgdG9vbGJhciwgd2hpY2ggYWxsb3cg
eW91IHRvIHRvZ2dsZSBiZXR3ZWVuIGJ1aWxkaW5nIDMyLWJpdCBvcgotNjQtYml0IGJpbmFyaWVz
IChvciBib3RoIGF0IG9uY2UgdXNpbmcgQmF0Y2ggQnVpbGQpLgotCi1JbiBvcmRlciB0byBwcmV2
ZW50IGJ1aWxkIG91dHB1dCBmaWxlcyBmcm9tIG92ZXJ3cml0aW5nIG9uZSBhbm90aGVyLAoteW91
J2xsIG5lZWQgdG8gY2hhbmdlIHRoZSBgSW50ZXJtZWRpYXRlIERpcmVjdG9yeWAgc2V0dGluZ3Mg
Zm9yIHRoZQotbmV3bHkgY3JlYXRlZCBwbGF0Zm9ybSBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwg
dGhlIHByb2plY3RzLiBUbyBkbwotdGhpcywgbXVsdGktc2VsZWN0IChlLmcuIHVzaW5nIHNoaWZ0
LWNsaWNrKSBhbGwgcHJvamVjdHMgKGJ1dCBub3QgdGhlCi1zb2x1dGlvbikgaW4gdGhlIGBTb2x1
dGlvbiBFeHBsb3JlcmAuIFJpZ2h0LWNsaWNrIG9uZSBvZiB0aGVtIGFuZAotc2VsZWN0IGBQcm9w
ZXJ0aWVzYC4gSW4gdGhlIGxlZnQgcGFuZSwgc2VsZWN0IGBDb25maWd1cmF0aW9uIFByb3BlcnRp
ZXNgLAotYW5kIGZyb20gdGhlIGBDb25maWd1cmF0aW9uYCBkcm9wZG93biwgc2VsZWN0IGBBbGwg
Q29uZmlndXJhdGlvbnNgLgotTWFrZSBzdXJlIHRoZSBzZWxlY3RlZCBwbGF0Zm9ybSBpcyBgeDY0
YC4gRm9yIHRoZQotYEludGVybWVkaWF0ZSBEaXJlY3RvcnlgIHNldHRpbmcsIGNoYW5nZSB0aGUg
dmFsdWUgZnJvbQotYCQoUGxhdGZvcm1OYW1lKVwkKENvbmZpZ3VyYXRpb25OYW1lKWAgdG8KLWAk
KE91dERpcilcJChQcm9qZWN0TmFtZSlgLiBDbGljayBgT0tgIGFuZCB0aGVuIGJ1aWxkIHRoZQot
c29sdXRpb24uIFdoZW4gdGhlIGJ1aWxkIGlzIGNvbXBsZXRlLCB0aGUgNjQtYml0IGJpbmFyaWVz
IHdpbGwgYmUgaW4KLXRoZSBgbXN2Y1x4NjRcRGVidWdgIGRpcmVjdG9yeS4KLQotIyMgQ2FuIEkg
dXNlIEdvb2dsZSBUZXN0IG9uIE1pbkdXPyAjIwotCi1XZSBoYXZlbid0IHRlc3RlZCB0aGlzIG91
cnNlbHZlcywgYnV0IFBlciBBYnJhaGFtc2VuIHJlcG9ydGVkIHRoYXQgaGUKLXdhcyBhYmxlIHRv
IGNvbXBpbGUgYW5kIGluc3RhbGwgR29vZ2xlIFRlc3Qgc3VjY2Vzc2Z1bGx5IHdoZW4gdXNpbmcK
LU1pbkdXIGZyb20gQ3lnd2luLiAgWW91J2xsIG5lZWQgdG8gY29uZmlndXJlIGl0IHdpdGg6Ci0K
LWBQQVRIL1RPL2NvbmZpZ3VyZSBDQz0iZ2NjIC1tbm8tY3lnd2luIiBDWFg9ImcrKyAtbW5vLWN5
Z3dpbiJgCi0KLVlvdSBzaG91bGQgYmUgYWJsZSB0byByZXBsYWNlIHRoZSBgLW1uby1jeWd3aW5g
IG9wdGlvbiB3aXRoIGRpcmVjdCBsaW5rcwotdG8gdGhlIHJlYWwgTWluR1cgYmluYXJpZXMsIGJ1
dCB3ZSBoYXZlbid0IHRyaWVkIHRoYXQuCi0KLUNhdmVhdHM6Ci0KLSAgKiBUaGVyZSBhcmUgbWFu
eSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZy4KLSAgKiBgbWFrZSBjaGVja2Agd2lsbCBwcm9kdWNl
IHNvbWUgZXJyb3JzIGFzIG5vdCBhbGwgdGVzdHMgZm9yIEdvb2dsZSBUZXN0IGl0c2VsZiBhcmUg
Y29tcGF0aWJsZSB3aXRoIE1pbkdXLgotCi1XZSBhbHNvIGhhdmUgcmVwb3J0cyBvbiBzdWNjZXNz
ZnVsIGNyb3NzIGNvbXBpbGF0aW9uIG9mIEdvb2dsZSBUZXN0Ci1NaW5HVyBiaW5hcmllcyBvbiBM
aW51eCB1c2luZwotW3RoZXNlIGluc3RydWN0aW9uc10oaHR0cDovL3dpa2kud3h3aWRnZXRzLm9y
Zy9Dcm9zcy1Db21waWxpbmdfVW5kZXJfTGludXgjQ3Jvc3MtY29tcGlsaW5nX3VuZGVyX0xpbnV4
X2Zvcl9NU19XaW5kb3dzKQotb24gdGhlIFd4V2lkZ2V0cyBzaXRlLgotCi1QbGVhc2UgY29udGFj
dCBgZ29vZ2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tYCBpZiB5b3UgYXJlCi1pbnRl
cmVzdGVkIGluIGltcHJvdmluZyB0aGUgc3VwcG9ydCBmb3IgTWluR1cuCi0KLSMjIFdoeSBkb2Vz
IEdvb2dsZSBUZXN0IHN1cHBvcnQgRVhQRUNUXF9FUShOVUxMLCBwdHIpIGFuZCBBU1NFUlRcX0VR
KE5VTEwsIHB0cikgYnV0IG5vdCBFWFBFQ1RcX05FKE5VTEwsIHB0cikgYW5kIEFTU0VSVFxfTkUo
TlVMTCwgcHRyKT8gIyMKLQotRHVlIHRvIHNvbWUgcGVjdWxpYXJpdHkgb2YgQysrLCBpdCByZXF1
aXJlcyBzb21lIG5vbi10cml2aWFsIHRlbXBsYXRlCi1tZXRhIHByb2dyYW1taW5nIHRyaWNrcyB0
byBzdXBwb3J0IHVzaW5nIGBOVUxMYCBhcyBhbiBhcmd1bWVudCBvZiB0aGUKLWBFWFBFQ1RfWFgo
KWAgYW5kIGBBU1NFUlRfWFgoKWAgbWFjcm9zLiBUaGVyZWZvcmUgd2Ugb25seSBkbyBpdCB3aGVy
ZQotaXQncyBtb3N0IG5lZWRlZCAob3RoZXJ3aXNlIHdlIG1ha2UgdGhlIGltcGxlbWVudGF0aW9u
IG9mIEdvb2dsZSBUZXN0Ci1oYXJkZXIgdG8gbWFpbnRhaW4gYW5kIG1vcmUgZXJyb3ItcHJvbmUg
dGhhbiBuZWNlc3NhcnkpLgotCi1UaGUgYEVYUEVDVF9FUSgpYCBtYWNybyB0YWtlcyB0aGUgX2V4
cGVjdGVkXyB2YWx1ZSBhcyBpdHMgZmlyc3QKLWFyZ3VtZW50IGFuZCB0aGUgX2FjdHVhbF8gdmFs
dWUgYXMgdGhlIHNlY29uZC4gSXQncyByZWFzb25hYmxlIHRoYXQKLXNvbWVvbmUgd2FudHMgdG8g
d3JpdGUgYEVYUEVDVF9FUShOVUxMLCBzb21lX2V4cHJlc3Npb24pYCwgYW5kIHRoaXMKLWluZGVl
ZCB3YXMgcmVxdWVzdGVkIHNldmVyYWwgdGltZXMuIFRoZXJlZm9yZSB3ZSBpbXBsZW1lbnRlZCBp
dC4KLQotVGhlIG5lZWQgZm9yIGBFWFBFQ1RfTkUoTlVMTCwgcHRyKWAgaXNuJ3QgbmVhcmx5IGFz
IHN0cm9uZy4gV2hlbiB0aGUKLWFzc2VydGlvbiBmYWlscywgeW91IGFscmVhZHkga25vdyB0aGF0
IGBwdHJgIG11c3QgYmUgYE5VTExgLCBzbyBpdAotZG9lc24ndCBhZGQgYW55IGluZm9ybWF0aW9u
IHRvIHByaW50IHB0ciBpbiB0aGlzIGNhc2UuIFRoYXQgbWVhbnMKLWBFWFBFQ1RfVFJVRShwdHIg
IT0gTlVMTClgIHdvcmtzIGp1c3QgYXMgd2VsbC4KLQotSWYgd2Ugd2VyZSB0byBzdXBwb3J0IGBF
WFBFQ1RfTkUoTlVMTCwgcHRyKWAsIGZvciBjb25zaXN0ZW5jeSB3ZSdsbAotaGF2ZSB0byBzdXBw
b3J0IGBFWFBFQ1RfTkUocHRyLCBOVUxMKWAgYXMgd2VsbCwgYXMgdW5saWtlIGBFWFBFQ1RfRVFg
LAotd2UgZG9uJ3QgaGF2ZSBhIGNvbnZlbnRpb24gb24gdGhlIG9yZGVyIG9mIHRoZSB0d28gYXJn
dW1lbnRzIGZvcgotYEVYUEVDVF9ORWAuIFRoaXMgbWVhbnMgdXNpbmcgdGhlIHRlbXBsYXRlIG1l
dGEgcHJvZ3JhbW1pbmcgdHJpY2tzCi10d2ljZSBpbiB0aGUgaW1wbGVtZW50YXRpb24sIG1ha2lu
ZyBpdCBldmVuIGhhcmRlciB0byB1bmRlcnN0YW5kIGFuZAotbWFpbnRhaW4uIFdlIGJlbGlldmUg
dGhlIGJlbmVmaXQgZG9lc24ndCBqdXN0aWZ5IHRoZSBjb3N0LgotCi1GaW5hbGx5LCB3aXRoIHRo
ZSBncm93dGggb2YgR29vZ2xlIE1vY2sncyBbbWF0Y2hlcl0oLi4vLi4vZ29vZ2xlbW9jay9kb2Nz
L0Nvb2tCb29rLm1kI3VzaW5nLW1hdGNoZXJzLWluLWdvb2dsZS10ZXN0LWFzc2VydGlvbnMpIGxp
YnJhcnksIHdlIGFyZQotZW5jb3VyYWdpbmcgcGVvcGxlIHRvIHVzZSB0aGUgdW5pZmllZCBgRVhQ
RUNUX1RIQVQodmFsdWUsIG1hdGNoZXIpYAotc3ludGF4IG1vcmUgb2Z0ZW4gaW4gdGVzdHMuIE9u
ZSBzaWduaWZpY2FudCBhZHZhbnRhZ2Ugb2YgdGhlIG1hdGNoZXIKLWFwcHJvYWNoIGlzIHRoYXQg
bWF0Y2hlcnMgY2FuIGJlIGVhc2lseSBjb21iaW5lZCB0byBmb3JtIG5ldyBtYXRjaGVycywKLXdo
aWxlIHRoZSBgRVhQRUNUX05FYCwgZXRjLCBtYWNyb3MgY2Fubm90IGJlIGVhc2lseQotY29tYmlu
ZWQuIFRoZXJlZm9yZSB3ZSB3YW50IHRvIGludmVzdCBtb3JlIGluIHRoZSBtYXRjaGVycyB0aGFu
IGluIHRoZQotYEVYUEVDVF9YWCgpYCBtYWNyb3MuCi0KLSMjIERvZXMgR29vZ2xlIFRlc3Qgc3Vw
cG9ydCBydW5uaW5nIHRlc3RzIGluIHBhcmFsbGVsPyAjIwotCi1UZXN0IHJ1bm5lcnMgdGVuZCB0
byBiZSB0aWdodGx5IGNvdXBsZWQgd2l0aCB0aGUgYnVpbGQvdGVzdAotZW52aXJvbm1lbnQsIGFu
ZCBHb29nbGUgVGVzdCBkb2Vzbid0IHRyeSB0byBzb2x2ZSB0aGUgcHJvYmxlbSBvZgotcnVubmlu
ZyB0ZXN0cyBpbiBwYXJhbGxlbC4gIEluc3RlYWQsIHdlIHRyaWVkIHRvIG1ha2UgR29vZ2xlIFRl
c3Qgd29yawotbmljZWx5IHdpdGggdGVzdCBydW5uZXJzLiAgRm9yIGV4YW1wbGUsIEdvb2dsZSBU
ZXN0J3MgWE1MIHJlcG9ydAotY29udGFpbnMgdGhlIHRpbWUgc3BlbnQgb24gZWFjaCB0ZXN0LCBh
bmQgaXRzIGBndGVzdF9saXN0X3Rlc3RzYCBhbmQKLWBndGVzdF9maWx0ZXJgIGZsYWdzIGNhbiBi
ZSB1c2VkIGZvciBzcGxpdHRpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0ZXN0Ci1tZXRob2RzIGludG8g
bXVsdGlwbGUgcHJvY2Vzc2VzLiAgVGhlc2UgZnVuY3Rpb25hbGl0aWVzIGNhbiBoZWxwIHRoZQot
dGVzdCBydW5uZXIgcnVuIHRoZSB0ZXN0cyBpbiBwYXJhbGxlbC4KLQotIyMgV2h5IGRvbid0IEdv
b2dsZSBUZXN0IHJ1biB0aGUgdGVzdHMgaW4gZGlmZmVyZW50IHRocmVhZHMgdG8gc3BlZWQgdGhp
bmdzIHVwPyAjIwotCi1JdCdzIGRpZmZpY3VsdCB0byB3cml0ZSB0aHJlYWQtc2FmZSBjb2RlLiAg
TW9zdCB0ZXN0cyBhcmUgbm90IHdyaXR0ZW4KLXdpdGggdGhyZWFkLXNhZmV0eSBpbiBtaW5kLCBh
bmQgdGh1cyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IGluIGEKLW11bHRpLXRocmVhZGVkIHNldHRp
bmcuCi0KLUlmIHlvdSB0aGluayBhYm91dCBpdCwgaXQncyBhbHJlYWR5IGhhcmQgdG8gbWFrZSB5
b3VyIGNvZGUgd29yayB3aGVuCi15b3Uga25vdyB3aGF0IG90aGVyIHRocmVhZHMgYXJlIGRvaW5n
LiAgSXQncyBtdWNoIGhhcmRlciwgYW5kCi1zb21ldGltZXMgZXZlbiBpbXBvc3NpYmxlLCB0byBt
YWtlIHlvdXIgY29kZSB3b3JrIHdoZW4geW91IGRvbid0IGtub3cKLXdoYXQgb3RoZXIgdGhyZWFk
cyBhcmUgZG9pbmcgKHJlbWVtYmVyIHRoYXQgdGVzdCBtZXRob2RzIGNhbiBiZSBhZGRlZCwKLWRl
bGV0ZWQsIG9yIG1vZGlmaWVkIGFmdGVyIHlvdXIgdGVzdCB3YXMgd3JpdHRlbikuICBJZiB5b3Ug
d2FudCB0byBydW4KLXRoZSB0ZXN0cyBpbiBwYXJhbGxlbCwgeW91J2QgYmV0dGVyIHJ1biB0aGVt
IGluIGRpZmZlcmVudCBwcm9jZXNzZXMuCi0KLSMjIFdoeSBhcmVuJ3QgR29vZ2xlIFRlc3QgYXNz
ZXJ0aW9ucyBpbXBsZW1lbnRlZCB1c2luZyBleGNlcHRpb25zPyAjIwotCi1PdXIgb3JpZ2luYWwg
bW90aXZhdGlvbiB3YXMgdG8gYmUgYWJsZSB0byB1c2UgR29vZ2xlIFRlc3QgaW4gcHJvamVjdHMK
LXRoYXQgZGlzYWJsZSBleGNlcHRpb25zLiAgTGF0ZXIgd2UgcmVhbGl6ZWQgc29tZSBhZGRpdGlv
bmFsIGJlbmVmaXRzCi1vZiB0aGlzIGFwcHJvYWNoOgotCi0gIDEuIFRocm93aW5nIGluIGEgZGVz
dHJ1Y3RvciBpcyB1bmRlZmluZWQgYmVoYXZpb3IgaW4gQysrLiAgTm90IHVzaW5nIGV4Y2VwdGlv
bnMgbWVhbnMgR29vZ2xlIFRlc3QncyBhc3NlcnRpb25zIGFyZSBzYWZlIHRvIHVzZSBpbiBkZXN0
cnVjdG9ycy4KLSAgMS4gVGhlIGBFWFBFQ1RfKmAgZmFtaWx5IG9mIG1hY3JvcyB3aWxsIGNvbnRp
bnVlIGV2ZW4gYWZ0ZXIgYSBmYWlsdXJlLCBhbGxvd2luZyBtdWx0aXBsZSBmYWlsdXJlcyBpbiBh
IGBURVNUYCB0byBiZSByZXBvcnRlZCBpbiBhIHNpbmdsZSBydW4uIFRoaXMgaXMgYSBwb3B1bGFy
IGZlYXR1cmUsIGFzIGluIEMrKyB0aGUgZWRpdC1jb21waWxlLXRlc3QgY3ljbGUgaXMgdXN1YWxs
eSBxdWl0ZSBsb25nIGFuZCBiZWluZyBhYmxlIHRvIGZpeGluZyBtb3JlIHRoYW4gb25lIHRoaW5n
IGF0IGEgdGltZSBpcyBhIGJsZXNzaW5nLgotICAxLiBJZiBhc3NlcnRpb25zIGFyZSBpbXBsZW1l
bnRlZCB1c2luZyBleGNlcHRpb25zLCBhIHRlc3QgbWF5IGZhbHNlbHkgaWdub3JlIGEgZmFpbHVy
ZSBpZiBpdCdzIGNhdWdodCBieSB1c2VyIGNvZGU6Ci1gYGAgY3BwCi10cnkgeyAuLi4gQVNTRVJU
X1RSVUUoLi4uKSAuLi4gfQotY2F0Y2ggKC4uLikgeyAuLi4gfQotYGBgCi1UaGUgYWJvdmUgY29k
ZSB3aWxsIHBhc3MgZXZlbiBpZiB0aGUgYEFTU0VSVF9UUlVFYCB0aHJvd3MuICBXaGlsZSBpdCdz
IHVubGlrZWx5IGZvciBzb21lb25lIHRvIHdyaXRlIHRoaXMgaW4gYSB0ZXN0LCBpdCdzIHBvc3Np
YmxlIHRvIHJ1biBpbnRvIHRoaXMgcGF0dGVybiB3aGVuIHlvdSB3cml0ZSBhc3NlcnRpb25zIGlu
IGNhbGxiYWNrcyB0aGF0IGFyZSBjYWxsZWQgYnkgdGhlIGNvZGUgdW5kZXIgdGVzdC4KLQotVGhl
IGRvd25zaWRlIG9mIG5vdCB1c2luZyBleGNlcHRpb25zIGlzIHRoYXQgYEFTU0VSVF8qYCAoaW1w
bGVtZW50ZWQKLXVzaW5nIGByZXR1cm5gKSB3aWxsIG9ubHkgYWJvcnQgdGhlIGN1cnJlbnQgZnVu
Y3Rpb24sIG5vdCB0aGUgY3VycmVudAotYFRFU1RgLgotCi0jIyBXaHkgZG8gd2UgdXNlIHR3byBk
aWZmZXJlbnQgbWFjcm9zIGZvciB0ZXN0cyB3aXRoIGFuZCB3aXRob3V0IGZpeHR1cmVzPyAjIwot
Ci1VbmZvcnR1bmF0ZWx5LCBDKysncyBtYWNybyBzeXN0ZW0gZG9lc24ndCBhbGxvdyB1cyB0byB1
c2UgdGhlIHNhbWUKLW1hY3JvIGZvciBib3RoIGNhc2VzLiAgT25lIHBvc3NpYmlsaXR5IGlzIHRv
IHByb3ZpZGUgb25seSBvbmUgbWFjcm8KLWZvciB0ZXN0cyB3aXRoIGZpeHR1cmVzLCBhbmQgcmVx
dWlyZSB0aGUgdXNlciB0byBkZWZpbmUgYW4gZW1wdHkKLWZpeHR1cmUgc29tZXRpbWVzOgotCi1g
YGAgY3BwCi1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsKLQotVEVT
VF9GKEZvb1Rlc3QsIERvZXNUaGlzKSB7IC4uLiB9Ci1gYGAKLW9yCi1gYGAgY3BwCi10eXBlZGVm
IDo6dGVzdGluZzo6VGVzdCBGb29UZXN0OwotCi1URVNUX0YoRm9vVGVzdCwgRG9lc1RoYXQpIHsg
Li4uIH0KLWBgYAotCi1ZZXQsIG1hbnkgcGVvcGxlIHRoaW5rIHRoaXMgaXMgb25lIGxpbmUgdG9v
IG1hbnkuIDotKSBPdXIgZ29hbCB3YXMgdG8KLW1ha2UgaXQgcmVhbGx5IGVhc3kgdG8gd3JpdGUg
dGVzdHMsIHNvIHdlIHRyaWVkIHRvIG1ha2Ugc2ltcGxlIHRlc3RzCi10cml2aWFsIHRvIGNyZWF0
ZS4gIFRoYXQgbWVhbnMgdXNpbmcgYSBzZXBhcmF0ZSBtYWNybyBmb3Igc3VjaCB0ZXN0cy4KLQot
V2UgdGhpbmsgbmVpdGhlciBhcHByb2FjaCBpcyBpZGVhbCwgeWV0IGVpdGhlciBvZiB0aGVtIGlz
IHJlYXNvbmFibGUuCi1JbiB0aGUgZW5kLCBpdCBwcm9iYWJseSBkb2Vzbid0IG1hdHRlciBtdWNo
IGVpdGhlciB3YXkuCi0KLSMjIFdoeSBkb24ndCB3ZSB1c2Ugc3RydWN0cyBhcyB0ZXN0IGZpeHR1
cmVzPyAjIwotCi1XZSBsaWtlIHRvIHVzZSBzdHJ1Y3RzIG9ubHkgd2hlbiByZXByZXNlbnRpbmcg
cGFzc2l2ZSBkYXRhLiAgVGhpcwotZGlzdGluY3Rpb24gYmV0d2VlbiBzdHJ1Y3RzIGFuZCBjbGFz
c2VzIGlzIGdvb2QgZm9yIGRvY3VtZW50aW5nIHRoZQotaW50ZW50IG9mIHRoZSBjb2RlJ3MgYXV0
aG9yLiAgU2luY2UgdGVzdCBmaXh0dXJlcyBoYXZlIGxvZ2ljIGxpa2UKLWBTZXRVcCgpYCBhbmQg
YFRlYXJEb3duKClgLCB0aGV5IGFyZSBiZXR0ZXIgZGVmaW5lZCBhcyBjbGFzc2VzLgotCi0jIyBX
aHkgYXJlIGRlYXRoIHRlc3RzIGltcGxlbWVudGVkIGFzIGFzc2VydGlvbnMgaW5zdGVhZCBvZiB1
c2luZyBhIHRlc3QgcnVubmVyPyAjIwotCi1PdXIgZ29hbCB3YXMgdG8gbWFrZSBkZWF0aCB0ZXN0
cyBhcyBjb252ZW5pZW50IGZvciBhIHVzZXIgYXMgQysrCi1wb3NzaWJseSBhbGxvd3MuICBJbiBw
YXJ0aWN1bGFyOgotCi0gICogVGhlIHJ1bm5lci1zdHlsZSByZXF1aXJlcyB0byBzcGxpdCB0aGUg
aW5mb3JtYXRpb24gaW50byB0d28gcGllY2VzOiB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZGVhdGgg
dGVzdCBpdHNlbGYsIGFuZCB0aGUgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHJ1bm5lciBvbiBob3cg
dG8gcnVuIHRoZSBkZWF0aCB0ZXN0IGFuZCB3aGF0IHRvIGV4cGVjdC4gIFRoZSBkZWF0aCB0ZXN0
IHdvdWxkIGJlIHdyaXR0ZW4gaW4gQysrLCB3aGlsZSB0aGUgcnVubmVyIHNwZWMgbWF5IG9yIG1h
eSBub3QgYmUuICBBIHVzZXIgbmVlZHMgdG8gY2FyZWZ1bGx5IGtlZXAgdGhlIHR3byBpbiBzeW5j
LiBgQVNTRVJUX0RFQVRIKHN0YXRlbWVudCwgZXhwZWN0ZWRfbWVzc2FnZSlgIHNwZWNpZmllcyBh
bGwgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGluIG9uZSBwbGFjZSwgaW4gb25lIGxhbmd1YWdlLCB3
aXRob3V0IGJvaWxlcnBsYXRlIGNvZGUuIEl0IGlzIHZlcnkgZGVjbGFyYXRpdmUuCi0gICogYEFT
U0VSVF9ERUFUSGAgaGFzIGEgc2ltaWxhciBzeW50YXggYW5kIGVycm9yLXJlcG9ydGluZyBzZW1h
bnRpY3MgYXMgb3RoZXIgR29vZ2xlIFRlc3QgYXNzZXJ0aW9ucywgYW5kIHRodXMgaXMgZWFzeSB0
byBsZWFybi4KLSAgKiBgQVNTRVJUX0RFQVRIYCBjYW4gYmUgbWl4ZWQgd2l0aCBvdGhlciBhc3Nl
cnRpb25zIGFuZCBvdGhlciBsb2dpYyBhdCB5b3VyIHdpbGwuICBZb3UgYXJlIG5vdCBsaW1pdGVk
IHRvIG9uZSBkZWF0aCB0ZXN0IHBlciB0ZXN0IG1ldGhvZC4gRm9yIGV4YW1wbGUsIHlvdSBjYW4g
d3JpdGUgc29tZXRoaW5nIGxpa2U6Ci1gYGAgY3BwCi0gICAgaWYgKEZvb0NvbmRpdGlvbigpKSB7
Ci0gICAgICBBU1NFUlRfREVBVEgoQmFyKCksICJibGFoIik7Ci0gICAgfSBlbHNlIHsKLSAgICAg
IEFTU0VSVF9FUSg1LCBCYXIoKSk7Ci0gICAgfQotYGBgCi1JZiB5b3UgcHJlZmVyIG9uZSBkZWF0
aCB0ZXN0IHBlciB0ZXN0IG1ldGhvZCwgeW91IGNhbiB3cml0ZSB5b3VyIHRlc3RzIGluIHRoYXQg
c3R5bGUgdG9vLCBidXQgd2UgZG9uJ3Qgd2FudCB0byBpbXBvc2UgdGhhdCBvbiB0aGUgdXNlcnMu
ICBUaGUgZmV3ZXIgYXJ0aWZpY2lhbCBsaW1pdGF0aW9ucyB0aGUgYmV0dGVyLgotICAqIGBBU1NF
UlRfREVBVEhgIGNhbiByZWZlcmVuY2UgbG9jYWwgdmFyaWFibGVzIGluIHRoZSBjdXJyZW50IGZ1
bmN0aW9uLCBhbmQgeW91IGNhbiBkZWNpZGUgaG93IG1hbnkgZGVhdGggdGVzdHMgeW91IHdhbnQg
YmFzZWQgb24gcnVuLXRpbWUgaW5mb3JtYXRpb24uICBGb3IgZXhhbXBsZSwKLWBgYCBjcHAKLSAg
ICBjb25zdCBpbnQgY291bnQgPSBHZXRDb3VudCgpOyAgLy8gT25seSBrbm93biBhdCBydW4gdGlt
ZS4KLSAgICBmb3IgKGludCBpID0gMTsgaSA8PSBjb3VudDsgaSsrKSB7Ci0gICAgICBBU1NFUlRf
REVBVEgoewotICAgICAgICBkb3VibGUqIGJ1ZmZlciA9IG5ldyBkb3VibGVbaV07Ci0gICAgICAg
IC4uLiBpbml0aWFsaXplcyBidWZmZXIgLi4uCi0gICAgICAgIEZvbyhidWZmZXIsIGkpCi0gICAg
ICB9LCAiYmxhaCBibGFoIik7Ci0gICAgfQotYGBgCi1UaGUgcnVubmVyLWJhc2VkIGFwcHJvYWNo
IHRlbmRzIHRvIGJlIG1vcmUgc3RhdGljIGFuZCBsZXNzIGZsZXhpYmxlLCBvciByZXF1aXJlcyBt
b3JlIHVzZXIgZWZmb3J0IHRvIGdldCB0aGlzIGtpbmQgb2YgZmxleGliaWxpdHkuCi0KLUFub3Ro
ZXIgaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgYEFTU0VSVF9ERUFUSGAgaXMgdGhhdCBpdCBjYWxs
cyBgZm9yaygpYAotdG8gY3JlYXRlIGEgY2hpbGQgcHJvY2VzcyB0byBydW4gdGhlIGRlYXRoIHRl
c3QuICBUaGlzIGlzIGxpZ2h0ZW5pbmcKLWZhc3QsIGFzIGBmb3JrKClgIHVzZXMgY29weS1vbi13
cml0ZSBwYWdlcyBhbmQgaW5jdXJzIGFsbW9zdCB6ZXJvCi1vdmVyaGVhZCwgYW5kIHRoZSBjaGls
ZCBwcm9jZXNzIHN0YXJ0cyBmcm9tIHRoZSB1c2VyLXN1cHBsaWVkCi1zdGF0ZW1lbnQgZGlyZWN0
bHksIHNraXBwaW5nIGFsbCBnbG9iYWwgYW5kIGxvY2FsIGluaXRpYWxpemF0aW9uIGFuZAotYW55
IGNvZGUgbGVhZGluZyB0byB0aGUgZ2l2ZW4gc3RhdGVtZW50LiAgSWYgeW91IGxhdW5jaCB0aGUg
Y2hpbGQKLXByb2Nlc3MgZnJvbSBzY3JhdGNoLCBpdCBjYW4gdGFrZSBzZWNvbmRzIGp1c3QgdG8g
bG9hZCBldmVyeXRoaW5nIGFuZAotc3RhcnQgcnVubmluZyBpZiB0aGUgdGVzdCBsaW5rcyB0byBt
YW55IGxpYnJhcmllcyBkeW5hbWljYWxseS4KLQotIyMgTXkgZGVhdGggdGVzdCBtb2RpZmllcyBz
b21lIHN0YXRlLCBidXQgdGhlIGNoYW5nZSBzZWVtcyBsb3N0IGFmdGVyIHRoZSBkZWF0aCB0ZXN0
IGZpbmlzaGVzLiBXaHk/ICMjCi0KLURlYXRoIHRlc3RzIChgRVhQRUNUX0RFQVRIYCwgZXRjKSBh
cmUgZXhlY3V0ZWQgaW4gYSBzdWItcHJvY2VzcyBzLnQuIHRoZQotZXhwZWN0ZWQgY3Jhc2ggd29u
J3Qga2lsbCB0aGUgdGVzdCBwcm9ncmFtIChpLmUuIHRoZSBwYXJlbnQgcHJvY2VzcykuIEFzIGEK
LXJlc3VsdCwgYW55IGluLW1lbW9yeSBzaWRlIGVmZmVjdHMgdGhleSBpbmN1ciBhcmUgb2JzZXJ2
YWJsZSBpbiB0aGVpcgotcmVzcGVjdGl2ZSBzdWItcHJvY2Vzc2VzLCBidXQgbm90IGluIHRoZSBw
YXJlbnQgcHJvY2Vzcy4gWW91IGNhbiB0aGluayBvZiB0aGVtCi1hcyBydW5uaW5nIGluIGEgcGFy
YWxsZWwgdW5pdmVyc2UsIG1vcmUgb3IgbGVzcy4KLQotIyMgVGhlIGNvbXBpbGVyIGNvbXBsYWlu
cyBhYm91dCAidW5kZWZpbmVkIHJlZmVyZW5jZXMiIHRvIHNvbWUgc3RhdGljIGNvbnN0IG1lbWJl
ciB2YXJpYWJsZXMsIGJ1dCBJIGRpZCBkZWZpbmUgdGhlbSBpbiB0aGUgY2xhc3MgYm9keS4gV2hh
dCdzIHdyb25nPyAjIwotCi1JZiB5b3VyIGNsYXNzIGhhcyBhIHN0YXRpYyBkYXRhIG1lbWJlcjoK
LQotYGBgIGNwcAotLy8gZm9vLmgKLWNsYXNzIEZvbyB7Ci0gIC4uLgotICBzdGF0aWMgY29uc3Qg
aW50IGtCYXIgPSAxMDA7Ci19OwotYGBgCi0KLVlvdSBhbHNvIG5lZWQgdG8gZGVmaW5lIGl0IF9v
dXRzaWRlXyBvZiB0aGUgY2xhc3MgYm9keSBpbiBgZm9vLmNjYDoKLQotYGBgIGNwcAotY29uc3Qg
aW50IEZvbzo6a0JhcjsgIC8vIE5vIGluaXRpYWxpemVyIGhlcmUuCi1gYGAKLQotT3RoZXJ3aXNl
IHlvdXIgY29kZSBpcyAqKmludmFsaWQgQysrKiosIGFuZCBtYXkgYnJlYWsgaW4gdW5leHBlY3Rl
ZCB3YXlzLiBJbgotcGFydGljdWxhciwgdXNpbmcgaXQgaW4gR29vZ2xlIFRlc3QgY29tcGFyaXNv
biBhc3NlcnRpb25zIChgRVhQRUNUX0VRYCwgZXRjKQotd2lsbCBnZW5lcmF0ZSBhbiAidW5kZWZp
bmVkIHJlZmVyZW5jZSIgbGlua2VyIGVycm9yLgotCi0jIyBJIGhhdmUgYW4gaW50ZXJmYWNlIHRo
YXQgaGFzIHNldmVyYWwgaW1wbGVtZW50YXRpb25zLiBDYW4gSSB3cml0ZSBhIHNldCBvZiB0ZXN0
cyBvbmNlIGFuZCByZXBlYXQgdGhlbSBvdmVyIGFsbCB0aGUgaW1wbGVtZW50YXRpb25zPyAjIwot
Ci1Hb29nbGUgVGVzdCBkb2Vzbid0IHlldCBoYXZlIGdvb2Qgc3VwcG9ydCBmb3IgdGhpcyBraW5k
IG9mIHRlc3RzLCBvcgotZGF0YS1kcml2ZW4gdGVzdHMgaW4gZ2VuZXJhbC4gV2UgaG9wZSB0byBi
ZSBhYmxlIHRvIG1ha2UgaW1wcm92ZW1lbnRzIGluIHRoaXMKLWFyZWEgc29vbi4KLQotIyMgQ2Fu
IEkgZGVyaXZlIGEgdGVzdCBmaXh0dXJlIGZyb20gYW5vdGhlcj8gIyMKLQotWWVzLgotCi1FYWNo
IHRlc3QgZml4dHVyZSBoYXMgYSBjb3JyZXNwb25kaW5nIGFuZCBzYW1lIG5hbWVkIHRlc3QgY2Fz
ZS4gVGhpcyBtZWFucyBvbmx5Ci1vbmUgdGVzdCBjYXNlIGNhbiB1c2UgYSBwYXJ0aWN1bGFyIGZp
eHR1cmUuIFNvbWV0aW1lcywgaG93ZXZlciwgbXVsdGlwbGUgdGVzdAotY2FzZXMgbWF5IHdhbnQg
dG8gdXNlIHRoZSBzYW1lIG9yIHNsaWdodGx5IGRpZmZlcmVudCBmaXh0dXJlcy4gRm9yIGV4YW1w
bGUsIHlvdQotbWF5IHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIG9mIGEgR1VJIGxpYnJhcnkn
cyB0ZXN0IGNhc2VzIGRvbid0IGxlYWsKLWltcG9ydGFudCBzeXN0ZW0gcmVzb3VyY2VzIGxpa2Ug
Zm9udHMgYW5kIGJydXNoZXMuCi0KLUluIEdvb2dsZSBUZXN0LCB5b3Ugc2hhcmUgYSBmaXh0dXJl
IGFtb25nIHRlc3QgY2FzZXMgYnkgcHV0dGluZyB0aGUgc2hhcmVkCi1sb2dpYyBpbiBhIGJhc2Ug
dGVzdCBmaXh0dXJlLCB0aGVuIGRlcml2aW5nIGZyb20gdGhhdCBiYXNlIGEgc2VwYXJhdGUgZml4
dHVyZQotZm9yIGVhY2ggdGVzdCBjYXNlIHRoYXQgd2FudHMgdG8gdXNlIHRoaXMgY29tbW9uIGxv
Z2ljLiBZb3UgdGhlbiB1c2UgYFRFU1RfRigpYAotdG8gd3JpdGUgdGVzdHMgdXNpbmcgZWFjaCBk
ZXJpdmVkIGZpeHR1cmUuCi0KLVR5cGljYWxseSwgeW91ciBjb2RlIGxvb2tzIGxpa2UgdGhpczoK
LQotYGBgIGNwcAotLy8gRGVmaW5lcyBhIGJhc2UgdGVzdCBmaXh0dXJlLgotY2xhc3MgQmFzZVRl
c3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSAgcHJvdGVjdGVkOgotICAgLi4uCi19Owot
Ci0vLyBEZXJpdmVzIGEgZml4dHVyZSBGb29UZXN0IGZyb20gQmFzZVRlc3QuCi1jbGFzcyBGb29U
ZXN0IDogcHVibGljIEJhc2VUZXN0IHsKLSAgcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBT
ZXRVcCgpIHsKLSAgICAgIEJhc2VUZXN0OjpTZXRVcCgpOyAgLy8gU2V0cyB1cCB0aGUgYmFzZSBm
aXh0dXJlIGZpcnN0LgotICAgICAgLi4uIGFkZGl0aW9uYWwgc2V0LXVwIHdvcmsgLi4uCi0gICAg
fQotICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICAgIC4uLiBjbGVhbi11cCB3b3Jr
IGZvciBGb29UZXN0IC4uLgotICAgICAgQmFzZVRlc3Q6OlRlYXJEb3duKCk7ICAvLyBSZW1lbWJl
ciB0byB0ZWFyIGRvd24gdGhlIGJhc2UgZml4dHVyZQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBhZnRlciBjbGVhbmluZyB1cCBGb29UZXN0IQotICAgIH0KLSAgICAuLi4gZnVuY3Rp
b25zIGFuZCB2YXJpYWJsZXMgZm9yIEZvb1Rlc3QgLi4uCi19OwotCi0vLyBUZXN0cyB0aGF0IHVz
ZSB0aGUgZml4dHVyZSBGb29UZXN0LgotVEVTVF9GKEZvb1Rlc3QsIEJhcikgeyAuLi4gfQotVEVT
VF9GKEZvb1Rlc3QsIEJheikgeyAuLi4gfQotCi0uLi4gYWRkaXRpb25hbCBmaXh0dXJlcyBkZXJp
dmVkIGZyb20gQmFzZVRlc3QgLi4uCi1gYGAKLQotSWYgbmVjZXNzYXJ5LCB5b3UgY2FuIGNvbnRp
bnVlIHRvIGRlcml2ZSB0ZXN0IGZpeHR1cmVzIGZyb20gYSBkZXJpdmVkIGZpeHR1cmUuCi1Hb29n
bGUgVGVzdCBoYXMgbm8gbGltaXQgb24gaG93IGRlZXAgdGhlIGhpZXJhcmNoeSBjYW4gYmUuCi0K
LUZvciBhIGNvbXBsZXRlIGV4YW1wbGUgdXNpbmcgZGVyaXZlZCB0ZXN0IGZpeHR1cmVzLCBzZWUK
LVtzYW1wbGU1XSguLi9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MpLgotCi0jIyBNeSBjb21w
aWxlciBjb21wbGFpbnMgInZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUu
IiBXaGF0IGRvZXMgdGhpcyBtZWFuPyAjIwotCi1Zb3UncmUgcHJvYmFibHkgdXNpbmcgYW4gYEFT
U0VSVF8qKClgIGluIGEgZnVuY3Rpb24gdGhhdCBkb2Vzbid0IHJldHVybiBgdm9pZGAuCi1gQVNT
RVJUXyooKWAgY2FuIG9ubHkgYmUgdXNlZCBpbiBgdm9pZGAgZnVuY3Rpb25zLgotCi0jIyBNeSBk
ZWF0aCB0ZXN0IGhhbmdzIChvciBzZWctZmF1bHRzKS4gSG93IGRvIEkgZml4IGl0PyAjIwotCi1J
biBHb29nbGUgVGVzdCwgZGVhdGggdGVzdHMgYXJlIHJ1biBpbiBhIGNoaWxkIHByb2Nlc3MgYW5k
IHRoZSB3YXkgdGhleSB3b3JrIGlzCi1kZWxpY2F0ZS4gVG8gd3JpdGUgZGVhdGggdGVzdHMgeW91
IHJlYWxseSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkgd29yay4KLVBsZWFzZSBtYWtlIHN1
cmUgeW91IGhhdmUgcmVhZCB0aGlzLgotCi1JbiBwYXJ0aWN1bGFyLCBkZWF0aCB0ZXN0cyBkb24n
dCBsaWtlIGhhdmluZyBtdWx0aXBsZSB0aHJlYWRzIGluIHRoZSBwYXJlbnQKLXByb2Nlc3MuIFNv
IHRoZSBmaXJzdCB0aGluZyB5b3UgY2FuIHRyeSBpcyB0byBlbGltaW5hdGUgY3JlYXRpbmcgdGhy
ZWFkcwotb3V0c2lkZSBvZiBgRVhQRUNUX0RFQVRIKClgLgotCi1Tb21ldGltZXMgdGhpcyBpcyBp
bXBvc3NpYmxlIGFzIHNvbWUgbGlicmFyeSB5b3UgbXVzdCB1c2UgbWF5IGJlIGNyZWF0aW5nCi10
aHJlYWRzIGJlZm9yZSBgbWFpbigpYCBpcyBldmVuIHJlYWNoZWQuIEluIHRoaXMgY2FzZSwgeW91
IGNhbiB0cnkgdG8gbWluaW1pemUKLXRoZSBjaGFuY2Ugb2YgY29uZmxpY3RzIGJ5IGVpdGhlciBt
b3ZpbmcgYXMgbWFueSBhY3Rpdml0aWVzIGFzIHBvc3NpYmxlIGluc2lkZQotYEVYUEVDVF9ERUFU
SCgpYCAoaW4gdGhlIGV4dHJlbWUgY2FzZSwgeW91IHdhbnQgdG8gbW92ZSBldmVyeXRoaW5nIGlu
c2lkZSksIG9yCi1sZWF2aW5nIGFzIGZldyB0aGluZ3MgYXMgcG9zc2libGUgaW4gaXQuIEFsc28s
IHlvdSBjYW4gdHJ5IHRvIHNldCB0aGUgZGVhdGgKLXRlc3Qgc3R5bGUgdG8gYCJ0aHJlYWRzYWZl
ImAsIHdoaWNoIGlzIHNhZmVyIGJ1dCBzbG93ZXIsIGFuZCBzZWUgaWYgaXQgaGVscHMuCi0KLUlm
IHlvdSBnbyB3aXRoIHRocmVhZC1zYWZlIGRlYXRoIHRlc3RzLCByZW1lbWJlciB0aGF0IHRoZXkg
cmVydW4gdGhlIHRlc3QKLXByb2dyYW0gZnJvbSB0aGUgYmVnaW5uaW5nIGluIHRoZSBjaGlsZCBw
cm9jZXNzLiBUaGVyZWZvcmUgbWFrZSBzdXJlIHlvdXIKLXByb2dyYW0gY2FuIHJ1biBzaWRlLWJ5
LXNpZGUgd2l0aCBpdHNlbGYgYW5kIGlzIGRldGVybWluaXN0aWMuCi0KLUluIHRoZSBlbmQsIHRo
aXMgYm9pbHMgZG93biB0byBnb29kIGNvbmN1cnJlbnQgcHJvZ3JhbW1pbmcuIFlvdSBoYXZlIHRv
IG1ha2UKLXN1cmUgdGhhdCB0aGVyZSBpcyBubyByYWNlIGNvbmRpdGlvbnMgb3IgZGVhZCBsb2Nr
cyBpbiB5b3VyIHByb2dyYW0uIE5vIHNpbHZlcgotYnVsbGV0IC0gc29ycnkhCi0KLSMjIFNob3Vs
ZCBJIHVzZSB0aGUgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciBvZiB0aGUgdGVzdCBmaXh0dXJlIG9y
IHRoZSBzZXQtdXAvdGVhci1kb3duIGZ1bmN0aW9uPyAjIwotCi1UaGUgZmlyc3QgdGhpbmcgdG8g
cmVtZW1iZXIgaXMgdGhhdCBHb29nbGUgVGVzdCBkb2VzIG5vdCByZXVzZSB0aGUKLXNhbWUgdGVz
dCBmaXh0dXJlIG9iamVjdCBhY3Jvc3MgbXVsdGlwbGUgdGVzdHMuIEZvciBlYWNoIGBURVNUX0Zg
LAotR29vZ2xlIFRlc3Qgd2lsbCBjcmVhdGUgYSBmcmVzaCB0ZXN0IGZpeHR1cmUgb2JqZWN0LCBf
aW1tZWRpYXRlbHlfCi1jYWxsIGBTZXRVcCgpYCwgcnVuIHRoZSB0ZXN0IGJvZHksIGNhbGwgYFRl
YXJEb3duKClgLCBhbmQgdGhlbgotX2ltbWVkaWF0ZWx5XyBkZWxldGUgdGhlIHRlc3QgZml4dHVy
ZSBvYmplY3QuCi0KLVdoZW4geW91IG5lZWQgdG8gd3JpdGUgcGVyLXRlc3Qgc2V0LXVwIGFuZCB0
ZWFyLWRvd24gbG9naWMsIHlvdSBoYXZlCi10aGUgY2hvaWNlIGJldHdlZW4gdXNpbmcgdGhlIHRl
c3QgZml4dHVyZSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIG9yCi1gU2V0VXAoKS9UZWFyRG93bigp
YC4gVGhlIGZvcm1lciBpcyB1c3VhbGx5IHByZWZlcnJlZCwgYXMgaXQgaGFzIHRoZQotZm9sbG93
aW5nIGJlbmVmaXRzOgotCi0gICogQnkgaW5pdGlhbGl6aW5nIGEgbWVtYmVyIHZhcmlhYmxlIGlu
IHRoZSBjb25zdHJ1Y3Rvciwgd2UgaGF2ZSB0aGUgb3B0aW9uIHRvIG1ha2UgaXQgYGNvbnN0YCwg
d2hpY2ggaGVscHMgcHJldmVudCBhY2NpZGVudGFsIGNoYW5nZXMgdG8gaXRzIHZhbHVlIGFuZCBt
YWtlcyB0aGUgdGVzdHMgbW9yZSBvYnZpb3VzbHkgY29ycmVjdC4KLSAgKiBJbiBjYXNlIHdlIG5l
ZWQgdG8gc3ViY2xhc3MgdGhlIHRlc3QgZml4dHVyZSBjbGFzcywgdGhlIHN1YmNsYXNzJyBjb25z
dHJ1Y3RvciBpcyBndWFyYW50ZWVkIHRvIGNhbGwgdGhlIGJhc2UgY2xhc3MnIGNvbnN0cnVjdG9y
IGZpcnN0LCBhbmQgdGhlIHN1YmNsYXNzJyBkZXN0cnVjdG9yIGlzIGd1YXJhbnRlZWQgdG8gY2Fs
bCB0aGUgYmFzZSBjbGFzcycgZGVzdHJ1Y3RvciBhZnRlcndhcmQuIFdpdGggYFNldFVwKCkvVGVh
ckRvd24oKWAsIGEgc3ViY2xhc3MgbWF5IG1ha2UgdGhlIG1pc3Rha2Ugb2YgZm9yZ2V0dGluZyB0
byBjYWxsIHRoZSBiYXNlIGNsYXNzJyBgU2V0VXAoKS9UZWFyRG93bigpYCBvciBjYWxsIHRoZW0g
YXQgdGhlIHdyb25nIG1vbWVudC4KLQotWW91IG1heSBzdGlsbCB3YW50IHRvIHVzZSBgU2V0VXAo
KS9UZWFyRG93bigpYCBpbiB0aGUgZm9sbG93aW5nIHJhcmUgY2FzZXM6Ci0gICogSWYgdGhlIHRl
YXItZG93biBvcGVyYXRpb24gY291bGQgdGhyb3cgYW4gZXhjZXB0aW9uLCB5b3UgbXVzdCB1c2Ug
YFRlYXJEb3duKClgIGFzIG9wcG9zZWQgdG8gdGhlIGRlc3RydWN0b3IsIGFzIHRocm93aW5nIGlu
IGEgZGVzdHJ1Y3RvciBsZWFkcyB0byB1bmRlZmluZWQgYmVoYXZpb3IgYW5kIHVzdWFsbHkgd2ls
bCBraWxsIHlvdXIgcHJvZ3JhbSByaWdodCBhd2F5LiBOb3RlIHRoYXQgbWFueSBzdGFuZGFyZCBs
aWJyYXJpZXMgKGxpa2UgU1RMKSBtYXkgdGhyb3cgd2hlbiBleGNlcHRpb25zIGFyZSBlbmFibGVk
IGluIHRoZSBjb21waWxlci4gVGhlcmVmb3JlIHlvdSBzaG91bGQgcHJlZmVyIGBUZWFyRG93bigp
YCBpZiB5b3Ugd2FudCB0byB3cml0ZSBwb3J0YWJsZSB0ZXN0cyB0aGF0IHdvcmsgd2l0aCBvciB3
aXRob3V0IGV4Y2VwdGlvbnMuCi0gICogVGhlIGFzc2VydGlvbiBtYWNyb3MgdGhyb3cgYW4gZXhj
ZXB0aW9uIHdoZW4gZmxhZyBgLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlYCBpcyBzcGVjaWZpZWQu
IFRoZXJlZm9yZSwgeW91IHNob3VsZG4ndCB1c2UgR29vZ2xlIFRlc3QgYXNzZXJ0aW9ucyBpbiBh
IGRlc3RydWN0b3IgaWYgeW91IHBsYW4gdG8gcnVuIHlvdXIgdGVzdHMgd2l0aCB0aGlzIGZsYWcu
Ci0gICogSW4gYSBjb25zdHJ1Y3RvciBvciBkZXN0cnVjdG9yLCB5b3UgY2Fubm90IG1ha2UgYSB2
aXJ0dWFsIGZ1bmN0aW9uIGNhbGwgb24gdGhpcyBvYmplY3QuIChZb3UgY2FuIGNhbGwgYSBtZXRo
b2QgZGVjbGFyZWQgYXMgdmlydHVhbCwgYnV0IGl0IHdpbGwgYmUgc3RhdGljYWxseSBib3VuZC4p
IFRoZXJlZm9yZSwgaWYgeW91IG5lZWQgdG8gY2FsbCBhIG1ldGhvZCB0aGF0IHdpbGwgYmUgb3Zl
cnJpZGVuIGluIGEgZGVyaXZlZCBjbGFzcywgeW91IGhhdmUgdG8gdXNlIGBTZXRVcCgpL1RlYXJE
b3duKClgLgotCi0jIyBUaGUgY29tcGlsZXIgY29tcGxhaW5zICJubyBtYXRjaGluZyBmdW5jdGlv
biB0byBjYWxsIiB3aGVuIEkgdXNlIEFTU0VSVFxfUFJFRG4uIEhvdyBkbyBJIGZpeCBpdD8gIyMK
LQotSWYgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiB5b3UgdXNlIGluIGBBU1NFUlRfUFJFRCpgIG9y
IGBFWFBFQ1RfUFJFRCpgIGlzCi1vdmVybG9hZGVkIG9yIGEgdGVtcGxhdGUsIHRoZSBjb21waWxl
ciB3aWxsIGhhdmUgdHJvdWJsZSBmaWd1cmluZyBvdXQgd2hpY2gKLW92ZXJsb2FkZWQgdmVyc2lv
biBpdCBzaG91bGQgdXNlLiBgQVNTRVJUX1BSRURfRk9STUFUKmAgYW5kCi1gRVhQRUNUX1BSRURf
Rk9STUFUKmAgZG9uJ3QgaGF2ZSB0aGlzIHByb2JsZW0uCi0KLUlmIHlvdSBzZWUgdGhpcyBlcnJv
ciwgeW91IG1pZ2h0IHdhbnQgdG8gc3dpdGNoIHRvCi1gKEFTU0VSVHxFWFBFQ1QpX1BSRURfRk9S
TUFUKmAsIHdoaWNoIHdpbGwgYWxzbyBnaXZlIHlvdSBhIGJldHRlciBmYWlsdXJlCi1tZXNzYWdl
LiBJZiwgaG93ZXZlciwgdGhhdCBpcyBub3QgYW4gb3B0aW9uLCB5b3UgY2FuIHJlc29sdmUgdGhl
IHByb2JsZW0gYnkKLWV4cGxpY2l0bHkgdGVsbGluZyB0aGUgY29tcGlsZXIgd2hpY2ggdmVyc2lv
biB0byBwaWNrLgotCi1Gb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgaGF2ZQotCi1gYGAgY3BwCi1i
b29sIElzUG9zaXRpdmUoaW50IG4pIHsKLSAgcmV0dXJuIG4gPiAwOwotfQotYm9vbCBJc1Bvc2l0
aXZlKGRvdWJsZSB4KSB7Ci0gIHJldHVybiB4ID4gMDsKLX0KLWBgYAotCi15b3Ugd2lsbCBnZXQg
YSBjb21waWxlciBlcnJvciBpZiB5b3Ugd3JpdGUKLQotYGBgIGNwcAotRVhQRUNUX1BSRUQxKElz
UG9zaXRpdmUsIDUpOwotYGBgCi0KLUhvd2V2ZXIsIHRoaXMgd2lsbCB3b3JrOgotCi1gYGAgY3Bw
Ci1FWFBFQ1RfUFJFRDEoc3RhdGljX2Nhc3Q8Ym9vbCAoKikoaW50KT4oSXNQb3NpdGl2ZSksIDUp
OwotYGBgCi0KLShUaGUgc3R1ZmYgaW5zaWRlIHRoZSBhbmdsZWQgYnJhY2tldHMgZm9yIHRoZSBg
c3RhdGljX2Nhc3RgIG9wZXJhdG9yIGlzIHRoZQotdHlwZSBvZiB0aGUgZnVuY3Rpb24gcG9pbnRl
ciBmb3IgdGhlIGBpbnRgLXZlcnNpb24gb2YgYElzUG9zaXRpdmUoKWAuKQotCi1BcyBhbm90aGVy
IGV4YW1wbGUsIHdoZW4geW91IGhhdmUgYSB0ZW1wbGF0ZSBmdW5jdGlvbgotCi1gYGAgY3BwCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWJvb2wgSXNOZWdhdGl2ZShUIHgpIHsKLSAgcmV0dXJuIHgg
PCAwOwotfQotYGBgCi0KLXlvdSBjYW4gdXNlIGl0IGluIGEgcHJlZGljYXRlIGFzc2VydGlvbiBs
aWtlIHRoaXM6Ci0KLWBgYCBjcHAKLUFTU0VSVF9QUkVEMShJc05lZ2F0aXZlPGludD4sIC01KTsK
LWBgYAotCi1UaGluZ3MgYXJlIG1vcmUgaW50ZXJlc3RpbmcgaWYgeW91ciB0ZW1wbGF0ZSBoYXMg
bW9yZSB0aGFuIG9uZSBwYXJhbWV0ZXJzLiBUaGUKLWZvbGxvd2luZyB3b24ndCBjb21waWxlOgot
Ci1gYGAgY3BwCi1BU1NFUlRfUFJFRDIoR3JlYXRlclRoYW48aW50LCBpbnQ+LCA1LCAwKTsKLWBg
YAotCi0KLWFzIHRoZSBDKysgcHJlLXByb2Nlc3NvciB0aGlua3MgeW91IGFyZSBnaXZpbmcgYEFT
U0VSVF9QUkVEMmAgNCBhcmd1bWVudHMsCi13aGljaCBpcyBvbmUgbW9yZSB0aGFuIGV4cGVjdGVk
LiBUaGUgd29ya2Fyb3VuZCBpcyB0byB3cmFwIHRoZSBwcmVkaWNhdGUKLWZ1bmN0aW9uIGluIHBh
cmVudGhlc2VzOgotCi1gYGAgY3BwCi1BU1NFUlRfUFJFRDIoKEdyZWF0ZXJUaGFuPGludCwgaW50
PiksIDUsIDApOwotYGBgCi0KLQotIyMgTXkgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0ICJpZ25v
cmluZyByZXR1cm4gdmFsdWUiIHdoZW4gSSBjYWxsIFJVTlxfQUxMXF9URVNUUygpLiBXaHk/ICMj
Ci0KLVNvbWUgcGVvcGxlIGhhZCBiZWVuIGlnbm9yaW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYFJV
Tl9BTExfVEVTVFMoKWAuIFRoYXQgaXMsCi1pbnN0ZWFkIG9mCi0KLWBgYCBjcHAKLXJldHVybiBS
VU5fQUxMX1RFU1RTKCk7Ci1gYGAKLQotdGhleSB3cml0ZQotCi1gYGAgY3BwCi1SVU5fQUxMX1RF
U1RTKCk7Ci1gYGAKLQotVGhpcyBpcyB3cm9uZyBhbmQgZGFuZ2Vyb3VzLiBBIHRlc3QgcnVubmVy
IG5lZWRzIHRvIHNlZSB0aGUgcmV0dXJuIHZhbHVlIG9mCi1gUlVOX0FMTF9URVNUUygpYCBpbiBv
cmRlciB0byBkZXRlcm1pbmUgaWYgYSB0ZXN0IGhhcyBwYXNzZWQuIElmIHlvdXIgYG1haW4oKWAK
LWZ1bmN0aW9uIGlnbm9yZXMgaXQsIHlvdXIgdGVzdCB3aWxsIGJlIGNvbnNpZGVyZWQgc3VjY2Vz
c2Z1bCBldmVuIGlmIGl0IGhhcyBhCi1Hb29nbGUgVGVzdCBhc3NlcnRpb24gZmFpbHVyZS4gVmVy
eSBiYWQuCi0KLVRvIGhlbHAgdGhlIHVzZXJzIGF2b2lkIHRoaXMgZGFuZ2Vyb3VzIGJ1ZywgdGhl
IGltcGxlbWVudGF0aW9uIG9mCi1gUlVOX0FMTF9URVNUUygpYCBjYXVzZXMgZ2NjIHRvIHJhaXNl
IHRoaXMgd2FybmluZywgd2hlbiB0aGUgcmV0dXJuIHZhbHVlIGlzCi1pZ25vcmVkLiBJZiB5b3Ug
c2VlIHRoaXMgd2FybmluZywgdGhlIGZpeCBpcyBzaW1wbGU6IGp1c3QgbWFrZSBzdXJlIGl0cyB2
YWx1ZQotaXMgdXNlZCBhcyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBtYWluKClgLgotCi0jIyBNeSBj
b21waWxlciBjb21wbGFpbnMgdGhhdCBhIGNvbnN0cnVjdG9yIChvciBkZXN0cnVjdG9yKSBjYW5u
b3QgcmV0dXJuIGEgdmFsdWUuIFdoYXQncyBnb2luZyBvbj8gIyMKLQotRHVlIHRvIGEgcGVjdWxp
YXJpdHkgb2YgQysrLCBpbiBvcmRlciB0byBzdXBwb3J0IHRoZSBzeW50YXggZm9yIHN0cmVhbWlu
ZwotbWVzc2FnZXMgdG8gYW4gYEFTU0VSVF8qYCwgZS5nLgotCi1gYGAgY3BwCi1BU1NFUlRfRVEo
MSwgRm9vKCkpIDw8ICJibGFoIGJsYWgiIDw8IGZvbzsKLWBgYAotCi13ZSBoYWQgdG8gZ2l2ZSB1
cCB1c2luZyBgQVNTRVJUKmAgYW5kIGBGQUlMKmAgKGJ1dCBub3QgYEVYUEVDVCpgIGFuZAotYEFE
RF9GQUlMVVJFKmApIGluIGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuIFRoZSB3b3JrYXJv
dW5kIGlzIHRvIG1vdmUgdGhlCi1jb250ZW50IG9mIHlvdXIgY29uc3RydWN0b3IvZGVzdHJ1Y3Rv
ciB0byBhIHByaXZhdGUgdm9pZCBtZW1iZXIgZnVuY3Rpb24sIG9yCi1zd2l0Y2ggdG8gYEVYUEVD
VF8qKClgIGlmIHRoYXQgd29ya3MuIFRoaXMgc2VjdGlvbiBpbiB0aGUgdXNlcidzIGd1aWRlIGV4
cGxhaW5zCi1pdC4KLQotIyMgTXkgc2V0LXVwIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQuIFdoeT8g
IyMKLQotQysrIGlzIGNhc2Utc2Vuc2l0aXZlLiBJdCBzaG91bGQgYmUgc3BlbGxlZCBhcyBgU2V0
VXAoKWAuICBEaWQgeW91Ci1zcGVsbCBpdCBhcyBgU2V0dXAoKWA/Ci0KLVNpbWlsYXJseSwgc29t
ZXRpbWVzIHBlb3BsZSBzcGVsbCBgU2V0VXBUZXN0Q2FzZSgpYCBhcyBgU2V0dXBUZXN0Q2FzZSgp
YCBhbmQKLXdvbmRlciB3aHkgaXQncyBuZXZlciBjYWxsZWQuCi0KLSMjIEhvdyBkbyBJIGp1bXAg
dG8gdGhlIGxpbmUgb2YgYSBmYWlsdXJlIGluIEVtYWNzIGRpcmVjdGx5PyAjIwotCi1Hb29nbGUg
VGVzdCdzIGZhaWx1cmUgbWVzc2FnZSBmb3JtYXQgaXMgdW5kZXJzdG9vZCBieSBFbWFjcyBhbmQg
bWFueSBvdGhlcgotSURFcywgbGlrZSBhY21lIGFuZCBYQ29kZS4gSWYgYSBHb29nbGUgVGVzdCBt
ZXNzYWdlIGlzIGluIGEgY29tcGlsYXRpb24gYnVmZmVyCi1pbiBFbWFjcywgdGhlbiBpdCdzIGNs
aWNrYWJsZS4gWW91IGNhbiBub3cgaGl0IGBlbnRlcmAgb24gYSBtZXNzYWdlIHRvIGp1bXAgdG8K
LXRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBjb2RlLCBvciB1c2UgYEMteCBgYCB0byBqdW1wIHRv
IHRoZSBuZXh0IGZhaWx1cmUuCi0KLSMjIEkgaGF2ZSBzZXZlcmFsIHRlc3QgY2FzZXMgd2hpY2gg
c2hhcmUgdGhlIHNhbWUgdGVzdCBmaXh0dXJlIGxvZ2ljLCBkbyBJIGhhdmUgdG8gZGVmaW5lIGEg
bmV3IHRlc3QgZml4dHVyZSBjbGFzcyBmb3IgZWFjaCBvZiB0aGVtPyBUaGlzIHNlZW1zIHByZXR0
eSB0ZWRpb3VzLiAjIwotCi1Zb3UgZG9uJ3QgaGF2ZSB0by4gSW5zdGVhZCBvZgotCi1gYGAgY3Bw
Ci1jbGFzcyBGb29UZXN0IDogcHVibGljIEJhc2VUZXN0IHt9OwotCi1URVNUX0YoRm9vVGVzdCwg
QWJjKSB7IC4uLiB9Ci1URVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4uLiB9Ci0KLWNsYXNzIEJhclRl
c3QgOiBwdWJsaWMgQmFzZVRlc3Qge307Ci0KLVRFU1RfRihCYXJUZXN0LCBBYmMpIHsgLi4uIH0K
LVRFU1RfRihCYXJUZXN0LCBEZWYpIHsgLi4uIH0KLWBgYAotCi15b3UgY2FuIHNpbXBseSBgdHlw
ZWRlZmAgdGhlIHRlc3QgZml4dHVyZXM6Ci1gYGAgY3BwCi10eXBlZGVmIEJhc2VUZXN0IEZvb1Rl
c3Q7Ci0KLVRFU1RfRihGb29UZXN0LCBBYmMpIHsgLi4uIH0KLVRFU1RfRihGb29UZXN0LCBEZWYp
IHsgLi4uIH0KLQotdHlwZWRlZiBCYXNlVGVzdCBCYXJUZXN0OwotCi1URVNUX0YoQmFyVGVzdCwg
QWJjKSB7IC4uLiB9Ci1URVNUX0YoQmFyVGVzdCwgRGVmKSB7IC4uLiB9Ci1gYGAKLQotIyMgVGhl
IEdvb2dsZSBUZXN0IG91dHB1dCBpcyBidXJpZWQgaW4gYSB3aG9sZSBidW5jaCBvZiBsb2cgbWVz
c2FnZXMuIFdoYXQgZG8gSSBkbz8gIyMKLQotVGhlIEdvb2dsZSBUZXN0IG91dHB1dCBpcyBtZWFu
dCB0byBiZSBhIGNvbmNpc2UgYW5kIGh1bWFuLWZyaWVuZGx5IHJlcG9ydC4gSWYKLXlvdXIgdGVz
dCBnZW5lcmF0ZXMgdGV4dHVhbCBvdXRwdXQgaXRzZWxmLCBpdCB3aWxsIG1peCB3aXRoIHRoZSBH
b29nbGUgVGVzdAotb3V0cHV0LCBtYWtpbmcgaXQgaGFyZCB0byByZWFkLiBIb3dldmVyLCB0aGVy
ZSBpcyBhbiBlYXN5IHNvbHV0aW9uIHRvIHRoaXMKLXByb2JsZW0uCi0KLVNpbmNlIG1vc3QgbG9n
IG1lc3NhZ2VzIGdvIHRvIHN0ZGVyciwgd2UgZGVjaWRlZCB0byBsZXQgR29vZ2xlIFRlc3Qgb3V0
cHV0IGdvCi10byBzdGRvdXQuIFRoaXMgd2F5LCB5b3UgY2FuIGVhc2lseSBzZXBhcmF0ZSB0aGUg
dHdvIHVzaW5nIHJlZGlyZWN0aW9uLiBGb3IKLWV4YW1wbGU6Ci1gYGAKLS4vbXlfdGVzdCA+IGdv
b2dsZXRlc3Rfb3V0cHV0LnR4dAotYGBgCi0KLSMjIFdoeSBzaG91bGQgSSBwcmVmZXIgdGVzdCBm
aXh0dXJlcyBvdmVyIGdsb2JhbCB2YXJpYWJsZXM/ICMjCi0KLVRoZXJlIGFyZSBzZXZlcmFsIGdv
b2QgcmVhc29uczoKLSAgMS4gSXQncyBsaWtlbHkgeW91ciB0ZXN0IG5lZWRzIHRvIGNoYW5nZSB0
aGUgc3RhdGVzIG9mIGl0cyBnbG9iYWwgdmFyaWFibGVzLiBUaGlzIG1ha2VzIGl0IGRpZmZpY3Vs
dCB0byBrZWVwIHNpZGUgZWZmZWN0cyBmcm9tIGVzY2FwaW5nIG9uZSB0ZXN0IGFuZCBjb250YW1p
bmF0aW5nIG90aGVycywgbWFraW5nIGRlYnVnZ2luZyBkaWZmaWN1bHQuIEJ5IHVzaW5nIGZpeHR1
cmVzLCBlYWNoIHRlc3QgaGFzIGEgZnJlc2ggc2V0IG9mIHZhcmlhYmxlcyB0aGF0J3MgZGlmZmVy
ZW50IChidXQgd2l0aCB0aGUgc2FtZSBuYW1lcykuIFRodXMsIHRlc3RzIGFyZSBrZXB0IGluZGVw
ZW5kZW50IG9mIGVhY2ggb3RoZXIuCi0gIDEuIEdsb2JhbCB2YXJpYWJsZXMgcG9sbHV0ZSB0aGUg
Z2xvYmFsIG5hbWVzcGFjZS4KLSAgMS4gVGVzdCBmaXh0dXJlcyBjYW4gYmUgcmV1c2VkIHZpYSBz
dWJjbGFzc2luZywgd2hpY2ggY2Fubm90IGJlIGRvbmUgZWFzaWx5IHdpdGggZ2xvYmFsIHZhcmlh
Ymxlcy4gVGhpcyBpcyB1c2VmdWwgaWYgbWFueSB0ZXN0IGNhc2VzIGhhdmUgc29tZXRoaW5nIGlu
IGNvbW1vbi4KLQotIyMgSG93IGRvIEkgdGVzdCBwcml2YXRlIGNsYXNzIG1lbWJlcnMgd2l0aG91
dCB3cml0aW5nIEZSSUVORFxfVEVTVCgpcz8gIyMKLQotWW91IHNob3VsZCB0cnkgdG8gd3JpdGUg
dGVzdGFibGUgY29kZSwgd2hpY2ggbWVhbnMgY2xhc3NlcyBzaG91bGQgYmUgZWFzaWx5Ci10ZXN0
ZWQgZnJvbSB0aGVpciBwdWJsaWMgaW50ZXJmYWNlLiBPbmUgd2F5IHRvIGFjaGlldmUgdGhpcyBp
cyB0aGUgUGltcGwgaWRpb206Ci15b3UgbW92ZSBhbGwgcHJpdmF0ZSBtZW1iZXJzIG9mIGEgY2xh
c3MgaW50byBhIGhlbHBlciBjbGFzcywgYW5kIG1ha2UgYWxsCi1tZW1iZXJzIG9mIHRoZSBoZWxw
ZXIgY2xhc3MgcHVibGljLgotCi1Zb3UgaGF2ZSBzZXZlcmFsIG90aGVyIG9wdGlvbnMgdGhhdCBk
b24ndCByZXF1aXJlIHVzaW5nIGBGUklFTkRfVEVTVGA6Ci0gICogV3JpdGUgdGhlIHRlc3RzIGFz
IG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUgY2xhc3M6Ci1gYGAgY3BwCi1jbGFzcyBGb28gewotICBm
cmllbmQgY2xhc3MgRm9vVGVzdDsKLSAgLi4uCi19OwotCi1jbGFzcyBGb29UZXN0IDogcHVibGlj
IDo6dGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAuLi4KLSAgdm9pZCBUZXN0MSgpIHsu
Li59IC8vIFRoaXMgYWNjZXNzZXMgcHJpdmF0ZSBtZW1iZXJzIG9mIGNsYXNzIEZvby4KLSAgdm9p
ZCBUZXN0MigpIHsuLi59IC8vIFNvIGRvZXMgdGhpcyBvbmUuCi19OwotCi1URVNUX0YoRm9vVGVz
dCwgVGVzdDEpIHsKLSAgVGVzdDEoKTsKLX0KLQotVEVTVF9GKEZvb1Rlc3QsIFRlc3QyKSB7Ci0g
IFRlc3QyKCk7Ci19Ci1gYGAKLSAgKiBJbiB0aGUgZml4dHVyZSBjbGFzcywgd3JpdGUgYWNjZXNz
b3JzIGZvciB0aGUgdGVzdGVkIGNsYXNzJyBwcml2YXRlIG1lbWJlcnMsIHRoZW4gdXNlIHRoZSBh
Y2Nlc3NvcnMgaW4geW91ciB0ZXN0czoKLWBgYCBjcHAKLWNsYXNzIEZvbyB7Ci0gIGZyaWVuZCBj
bGFzcyBGb29UZXN0OwotICAuLi4KLX07Ci0KLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0
aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIC4uLgotICBUMSBnZXRfcHJpdmF0ZV9tZW1iZXIx
KEZvbyogb2JqKSB7Ci0gICAgcmV0dXJuIG9iai0+cHJpdmF0ZV9tZW1iZXIxXzsKLSAgfQotfTsK
LQotVEVTVF9GKEZvb1Rlc3QsIFRlc3QxKSB7Ci0gIC4uLgotICBnZXRfcHJpdmF0ZV9tZW1iZXIx
KHgpCi0gIC4uLgotfQotYGBgCi0gICogSWYgdGhlIG1ldGhvZHMgYXJlIGRlY2xhcmVkICoqcHJv
dGVjdGVkKiosIHlvdSBjYW4gY2hhbmdlIHRoZWlyIGFjY2VzcyBsZXZlbCBpbiBhIHRlc3Qtb25s
eSBzdWJjbGFzczoKLWBgYCBjcHAKLWNsYXNzIFlvdXJDbGFzcyB7Ci0gIC4uLgotIHByb3RlY3Rl
ZDogLy8gcHJvdGVjdGVkIGFjY2VzcyBmb3IgdGVzdGFiaWxpdHkuCi0gIGludCBEb1NvbWV0aGlu
Z1JldHVybmluZ0ludCgpOwotICAuLi4KLX07Ci0KLS8vIGluIHRoZSB5b3VyX2NsYXNzX3Rlc3Qu
Y2MgZmlsZToKLWNsYXNzIFRlc3RhYmxlWW91ckNsYXNzIDogcHVibGljIFlvdXJDbGFzcyB7Ci0g
IC4uLgotIHB1YmxpYzogdXNpbmcgWW91ckNsYXNzOjpEb1NvbWV0aGluZ1JldHVybmluZ0ludDsg
Ly8gY2hhbmdlcyBhY2Nlc3MgcmlnaHRzCi0gIC4uLgotfTsKLQotVEVTVF9GKFlvdXJDbGFzc1Rl
c3QsIERvU29tZXRoaW5nVGVzdCkgewotICBUZXN0YWJsZVlvdXJDbGFzcyBvYmo7Ci0gIGFzc2Vy
dEVxdWFscyhleHBlY3RlZF92YWx1ZSwgb2JqLkRvU29tZXRoaW5nUmV0dXJuaW5nSW50KCkpOwot
fQotYGBgCi0KLSMjIEhvdyBkbyBJIHRlc3QgcHJpdmF0ZSBjbGFzcyBzdGF0aWMgbWVtYmVycyB3
aXRob3V0IHdyaXRpbmcgRlJJRU5EXF9URVNUKClzPyAjIwotCi1XZSBmaW5kIHByaXZhdGUgc3Rh
dGljIG1ldGhvZHMgY2x1dHRlciB0aGUgaGVhZGVyIGZpbGUuICBUaGV5IGFyZQotaW1wbGVtZW50
YXRpb24gZGV0YWlscyBhbmQgaWRlYWxseSBzaG91bGQgYmUga2VwdCBvdXQgb2YgYSAuaC4gU28g
b2Z0ZW4gSSBtYWtlCi10aGVtIGZyZWUgZnVuY3Rpb25zIGluc3RlYWQuCi0KLUluc3RlYWQgb2Y6
Ci1gYGAgY3BwCi0vLyBmb28uaAotY2xhc3MgRm9vIHsKLSAgLi4uCi0gcHJpdmF0ZToKLSAgc3Rh
dGljIGJvb2wgRnVuYyhpbnQgbik7Ci19OwotCi0vLyBmb28uY2MKLWJvb2wgRm9vOjpGdW5jKGlu
dCBuKSB7IC4uLiB9Ci0KLS8vIGZvb190ZXN0LmNjCi1FWFBFQ1RfVFJVRShGb286OkZ1bmMoMTIz
NDUpKTsKLWBgYAotCi1Zb3UgcHJvYmFibHkgc2hvdWxkIGJldHRlciB3cml0ZToKLWBgYCBjcHAK
LS8vIGZvby5oCi1jbGFzcyBGb28gewotICAuLi4KLX07Ci0KLS8vIGZvby5jYwotbmFtZXNwYWNl
IGludGVybmFsIHsKLSAgYm9vbCBGdW5jKGludCBuKSB7IC4uLiB9Ci19Ci0KLS8vIGZvb190ZXN0
LmNjCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotICBib29sIEZ1bmMoaW50IG4pOwotfQotCi1FWFBF
Q1RfVFJVRShpbnRlcm5hbDo6RnVuYygxMjM0NSkpOwotYGBgCi0KLSMjIEkgd291bGQgbGlrZSB0
byBydW4gYSB0ZXN0IHNldmVyYWwgdGltZXMgd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycy4gRG8g
SSBuZWVkIHRvIHdyaXRlIHNldmVyYWwgc2ltaWxhciBjb3BpZXMgb2YgaXQ/ICMjCi0KLU5vLiBZ
b3UgY2FuIHVzZSBhIGZlYXR1cmUgY2FsbGVkIFt2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzXShB
ZHZhbmNlZEd1aWRlLm1kI1ZhbHVlX1BhcmFtZXRlcml6ZWRfVGVzdHMpIHdoaWNoCi1sZXRzIHlv
dSByZXBlYXQgeW91ciB0ZXN0cyB3aXRoIGRpZmZlcmVudCBwYXJhbWV0ZXJzLCB3aXRob3V0IGRl
ZmluaW5nIGl0IG1vcmUgdGhhbiBvbmNlLgotCi0jIyBIb3cgZG8gSSB0ZXN0IGEgZmlsZSB0aGF0
IGRlZmluZXMgbWFpbigpPyAjIwotCi1UbyB0ZXN0IGEgYGZvby5jY2AgZmlsZSwgeW91IG5lZWQg
dG8gY29tcGlsZSBhbmQgbGluayBpdCBpbnRvIHlvdXIgdW5pdCB0ZXN0Ci1wcm9ncmFtLiBIb3dl
dmVyLCB3aGVuIHRoZSBmaWxlIGNvbnRhaW5zIGEgZGVmaW5pdGlvbiBmb3IgdGhlIGBtYWluKClg
Ci1mdW5jdGlvbiwgaXQgd2lsbCBjbGFzaCB3aXRoIHRoZSBgbWFpbigpYCBvZiB5b3VyIHVuaXQg
dGVzdCwgYW5kIHdpbGwgcmVzdWx0IGluCi1hIGJ1aWxkIGVycm9yLgotCi1UaGUgcmlnaHQgc29s
dXRpb24gaXMgdG8gc3BsaXQgaXQgaW50byB0aHJlZSBmaWxlczoKLSAgMS4gYGZvby5oYCB3aGlj
aCBjb250YWlucyB0aGUgZGVjbGFyYXRpb25zLAotICAxLiBgZm9vLmNjYCB3aGljaCBjb250YWlu
cyB0aGUgZGVmaW5pdGlvbnMgZXhjZXB0IGBtYWluKClgLCBhbmQKLSAgMS4gYGZvb19tYWluLmNj
YCB3aGljaCBjb250YWlucyBub3RoaW5nIGJ1dCB0aGUgZGVmaW5pdGlvbiBvZiBgbWFpbigpYC4K
LQotVGhlbiBgZm9vLmNjYCBjYW4gYmUgZWFzaWx5IHRlc3RlZC4KLQotSWYgeW91IGFyZSBhZGRp
bmcgdGVzdHMgdG8gYW4gZXhpc3RpbmcgZmlsZSBhbmQgZG9uJ3Qgd2FudCBhbiBpbnRydXNpdmUg
Y2hhbmdlCi1saWtlIHRoaXMsIHRoZXJlIGlzIGEgaGFjazoganVzdCBpbmNsdWRlIHRoZSBlbnRp
cmUgYGZvby5jY2AgZmlsZSBpbiB5b3VyIHVuaXQKLXRlc3QuIEZvciBleGFtcGxlOgotYGBgIGNw
cAotLy8gRmlsZSBmb29fdW5pdHRlc3QuY2MKLQotLy8gVGhlIGhlYWRlcnMgc2VjdGlvbgotLi4u
Ci0KLS8vIFJlbmFtZXMgbWFpbigpIGluIGZvby5jYyB0byBtYWtlIHJvb20gZm9yIHRoZSB1bml0
IHRlc3QgbWFpbigpCi0jZGVmaW5lIG1haW4gRm9vTWFpbgotCi0jaW5jbHVkZSAiYS9iL2Zvby5j
YyIKLQotLy8gVGhlIHRlc3RzIHN0YXJ0IGhlcmUuCi0uLi4KLWBgYAotCi0KLUhvd2V2ZXIsIHBs
ZWFzZSByZW1lbWJlciB0aGlzIGlzIGEgaGFjayBhbmQgc2hvdWxkIG9ubHkgYmUgdXNlZCBhcyB0
aGUgbGFzdAotcmVzb3J0LgotCi0jIyBXaGF0IGNhbiB0aGUgc3RhdGVtZW50IGFyZ3VtZW50IGlu
IEFTU0VSVFxfREVBVEgoKSBiZT8gIyMKLQotYEFTU0VSVF9ERUFUSChfc3RhdGVtZW50XywgX3Jl
Z2V4XylgIChvciBhbnkgZGVhdGggYXNzZXJ0aW9uIG1hY3JvKSBjYW4gYmUgdXNlZAotd2hlcmV2
ZXIgYF9zdGF0ZW1lbnRfYCBpcyB2YWxpZC4gU28gYmFzaWNhbGx5IGBfc3RhdGVtZW50X2AgY2Fu
IGJlIGFueSBDKysKLXN0YXRlbWVudCB0aGF0IG1ha2VzIHNlbnNlIGluIHRoZSBjdXJyZW50IGNv
bnRleHQuIEluIHBhcnRpY3VsYXIsIGl0IGNhbgotcmVmZXJlbmNlIGdsb2JhbCBhbmQvb3IgbG9j
YWwgdmFyaWFibGVzLCBhbmQgY2FuIGJlOgotICAqIGEgc2ltcGxlIGZ1bmN0aW9uIGNhbGwgKG9m
dGVuIHRoZSBjYXNlKSwKLSAgKiBhIGNvbXBsZXggZXhwcmVzc2lvbiwgb3IKLSAgKiBhIGNvbXBv
dW5kIHN0YXRlbWVudC4KLQotU29tZSBleGFtcGxlcyBhcmUgc2hvd24gaGVyZToKLQotYGBgIGNw
cAotLy8gQSBkZWF0aCB0ZXN0IGNhbiBiZSBhIHNpbXBsZSBmdW5jdGlvbiBjYWxsLgotVEVTVChN
eURlYXRoVGVzdCwgRnVuY3Rpb25DYWxsKSB7Ci0gIEFTU0VSVF9ERUFUSChYeXooNSksICJYeXog
ZmFpbGVkIik7Ci19Ci0KLS8vIE9yIGEgY29tcGxleCBleHByZXNzaW9uIHRoYXQgcmVmZXJlbmNl
cyB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9ucy4KLVRFU1QoTXlEZWF0aFRlc3QsIENvbXBsZXhFeHBy
ZXNzaW9uKSB7Ci0gIGNvbnN0IGJvb2wgYyA9IENvbmRpdGlvbigpOwotICBBU1NFUlRfREVBVEgo
KGMgPyBGdW5jMSgwKSA6IG9iamVjdDIuTWV0aG9kKCJ0ZXN0IikpLAotICAgICAgICAgICAgICAg
IihGdW5jMXxNZXRob2QpIGZhaWxlZCIpOwotfQotCi0vLyBEZWF0aCBhc3NlcnRpb25zIGNhbiBi
ZSB1c2VkIGFueSB3aGVyZSBpbiBhIGZ1bmN0aW9uLiBJbgotLy8gcGFydGljdWxhciwgdGhleSBj
YW4gYmUgaW5zaWRlIGEgbG9vcC4KLVRFU1QoTXlEZWF0aFRlc3QsIEluc2lkZUxvb3ApIHsKLSAg
Ly8gVmVyaWZpZXMgdGhhdCBGb28oMCksIEZvbygxKSwgLi4uLCBhbmQgRm9vKDQpIGFsbCBkaWUu
Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0gICAgRVhQRUNUX0RFQVRIX00oRm9v
KGkpLCAiRm9vIGhhcyBcXGQrIGVycm9ycyIsCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5n
OjpNZXNzYWdlKCkgPDwgIndoZXJlIGkgaXMgIiA8PCBpKTsKLSAgfQotfQotCi0vLyBBIGRlYXRo
IGFzc2VydGlvbiBjYW4gY29udGFpbiBhIGNvbXBvdW5kIHN0YXRlbWVudC4KLVRFU1QoTXlEZWF0
aFRlc3QsIENvbXBvdW5kU3RhdGVtZW50KSB7Ci0gIC8vIFZlcmlmaWVzIHRoYXQgYXQgbGVhc2Ug
b25lIG9mIEJhcigwKSwgQmFyKDEpLCAuLi4sIGFuZAotICAvLyBCYXIoNCkgZGllcy4KLSAgQVNT
RVJUX0RFQVRIKHsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDU7IGkrKykgewotICAgICAgQmFy
KGkpOwotICAgIH0KLSAgfSwKLSAgIkJhciBoYXMgXFxkKyBlcnJvcnMiKTt9Ci1gYGAKLQotYGdv
b2dsZXRlc3RfdW5pdHRlc3QuY2NgIGNvbnRhaW5zIG1vcmUgZXhhbXBsZXMgaWYgeW91IGFyZSBp
bnRlcmVzdGVkLgotCi0jIyBXaGF0IHN5bnRheCBkb2VzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24g
aW4gQVNTRVJUXF9ERUFUSCB1c2U/ICMjCi0KLU9uIFBPU0lYIHN5c3RlbXMsIEdvb2dsZSBUZXN0
IHVzZXMgdGhlIFBPU0lYIEV4dGVuZGVkIHJlZ3VsYXIKLWV4cHJlc3Npb24gc3ludGF4Ci0oaHR0
cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SZWd1bGFyX2V4cHJlc3Npb24jUE9TSVhfRXh0ZW5k
ZWRfUmVndWxhcl9FeHByZXNzaW9ucykuCi1PbiBXaW5kb3dzLCBpdCB1c2VzIGEgbGltaXRlZCB2
YXJpYW50IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbgotc3ludGF4LiBGb3IgbW9yZSBkZXRhaWxzLCBz
ZWUgdGhlCi1bcmVndWxhciBleHByZXNzaW9uIHN5bnRheF0oQWR2YW5jZWRHdWlkZS5tZCNSZWd1
bGFyX0V4cHJlc3Npb25fU3ludGF4KS4KLQotIyMgSSBoYXZlIGEgZml4dHVyZSBjbGFzcyBGb28s
IGJ1dCBURVNUXF9GKEZvbywgQmFyKSBnaXZlcyBtZSBlcnJvciAibm8gbWF0Y2hpbmcgZnVuY3Rp
b24gZm9yIGNhbGwgdG8gRm9vOjpGb28oKSIuIFdoeT8gIyMKLQotR29vZ2xlIFRlc3QgbmVlZHMg
dG8gYmUgYWJsZSB0byBjcmVhdGUgb2JqZWN0cyBvZiB5b3VyIHRlc3QgZml4dHVyZSBjbGFzcywg
c28KLWl0IG11c3QgaGF2ZSBhIGRlZmF1bHQgY29uc3RydWN0b3IuIE5vcm1hbGx5IHRoZSBjb21w
aWxlciB3aWxsIGRlZmluZSBvbmUgZm9yCi15b3UuIEhvd2V2ZXIsIHRoZXJlIGFyZSBjYXNlcyB3
aGVyZSB5b3UgaGF2ZSB0byBkZWZpbmUgeW91ciBvd246Ci0gICogSWYgeW91IGV4cGxpY2l0bHkg
ZGVjbGFyZSBhIG5vbi1kZWZhdWx0IGNvbnN0cnVjdG9yIGZvciBjbGFzcyBgRm9vYCwgdGhlbiB5
b3UgbmVlZCB0byBkZWZpbmUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yLCBldmVuIGlmIGl0IHdvdWxk
IGJlIGVtcHR5LgotICAqIElmIGBGb29gIGhhcyBhIGNvbnN0IG5vbi1zdGF0aWMgZGF0YSBtZW1i
ZXIsIHRoZW4geW91IGhhdmUgdG8gZGVmaW5lIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yIF9hbmRf
IGluaXRpYWxpemUgdGhlIGNvbnN0IG1lbWJlciBpbiB0aGUgaW5pdGlhbGl6ZXIgbGlzdCBvZiB0
aGUgY29uc3RydWN0b3IuIChFYXJseSB2ZXJzaW9ucyBvZiBgZ2NjYCBkb2Vzbid0IGZvcmNlIHlv
dSB0byBpbml0aWFsaXplIHRoZSBjb25zdCBtZW1iZXIuIEl0J3MgYSBidWcgdGhhdCBoYXMgYmVl
biBmaXhlZCBpbiBgZ2NjIDRgLikKLQotIyMgV2h5IGRvZXMgQVNTRVJUXF9ERUFUSCBjb21wbGFp
biBhYm91dCBwcmV2aW91cyB0aHJlYWRzIHRoYXQgd2VyZSBhbHJlYWR5IGpvaW5lZD8gIyMKLQot
V2l0aCB0aGUgTGludXggcHRocmVhZCBsaWJyYXJ5LCB0aGVyZSBpcyBubyB0dXJuaW5nIGJhY2sg
b25jZSB5b3UgY3Jvc3MgdGhlCi1saW5lIGZyb20gc2luZ2xlIHRocmVhZCB0byBtdWx0aXBsZSB0
aHJlYWRzLiBUaGUgZmlyc3QgdGltZSB5b3UgY3JlYXRlIGEKLXRocmVhZCwgYSBtYW5hZ2VyIHRo
cmVhZCBpcyBjcmVhdGVkIGluIGFkZGl0aW9uLCBzbyB5b3UgZ2V0IDMsIG5vdCAyLCB0aHJlYWRz
LgotTGF0ZXIgd2hlbiB0aGUgdGhyZWFkIHlvdSBjcmVhdGUgam9pbnMgdGhlIG1haW4gdGhyZWFk
LCB0aGUgdGhyZWFkIGNvdW50Ci1kZWNyZW1lbnRzIGJ5IDEsIGJ1dCB0aGUgbWFuYWdlciB0aHJl
YWQgd2lsbCBuZXZlciBiZSBraWxsZWQsIHNvIHlvdSBzdGlsbCBoYXZlCi0yIHRocmVhZHMsIHdo
aWNoIG1lYW5zIHlvdSBjYW5ub3Qgc2FmZWx5IHJ1biBhIGRlYXRoIHRlc3QuCi0KLVRoZSBuZXcg
TlBUTCB0aHJlYWQgbGlicmFyeSBkb2Vzbid0IHN1ZmZlciBmcm9tIHRoaXMgcHJvYmxlbSwgYXMg
aXQgZG9lc24ndAotY3JlYXRlIGEgbWFuYWdlciB0aHJlYWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24n
dCBjb250cm9sIHdoaWNoIG1hY2hpbmUgeW91ciB0ZXN0Ci1ydW5zIG9uLCB5b3Ugc2hvdWxkbid0
IGRlcGVuZCBvbiB0aGlzLgotCi0jIyBXaHkgZG9lcyBHb29nbGUgVGVzdCByZXF1aXJlIHRoZSBl
bnRpcmUgdGVzdCBjYXNlLCBpbnN0ZWFkIG9mIGluZGl2aWR1YWwgdGVzdHMsIHRvIGJlIG5hbWVk
IEZPT0RlYXRoVGVzdCB3aGVuIGl0IHVzZXMgQVNTRVJUXF9ERUFUSD8gIyMKLQotR29vZ2xlIFRl
c3QgZG9lcyBub3QgaW50ZXJsZWF2ZSB0ZXN0cyBmcm9tIGRpZmZlcmVudCB0ZXN0IGNhc2VzLiBU
aGF0IGlzLCBpdAotcnVucyBhbGwgdGVzdHMgaW4gb25lIHRlc3QgY2FzZSBmaXJzdCwgYW5kIHRo
ZW4gcnVucyBhbGwgdGVzdHMgaW4gdGhlIG5leHQgdGVzdAotY2FzZSwgYW5kIHNvIG9uLiBHb29n
bGUgVGVzdCBkb2VzIHRoaXMgYmVjYXVzZSBpdCBuZWVkcyB0byBzZXQgdXAgYSB0ZXN0IGNhc2UK
LWJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiBpdCBpcyBydW4sIGFuZCB0ZWFyIGl0IGRvd24gYWZ0
ZXJ3b3Jkcy4gU3BsaXR0aW5nIHVwCi10aGUgdGVzdCBjYXNlIHdvdWxkIHJlcXVpcmUgbXVsdGlw
bGUgc2V0LXVwIGFuZCB0ZWFyLWRvd24gcHJvY2Vzc2VzLCB3aGljaCBpcwotaW5lZmZpY2llbnQg
YW5kIG1ha2VzIHRoZSBzZW1hbnRpY3MgdW5jbGVhbi4KLQotSWYgd2Ugd2VyZSB0byBkZXRlcm1p
bmUgdGhlIG9yZGVyIG9mIHRlc3RzIGJhc2VkIG9uIHRlc3QgbmFtZSBpbnN0ZWFkIG9mIHRlc3QK
LWNhc2UgbmFtZSwgdGhlbiB3ZSB3b3VsZCBoYXZlIGEgcHJvYmxlbSB3aXRoIHRoZSBmb2xsb3dp
bmcgc2l0dWF0aW9uOgotCi1gYGAgY3BwCi1URVNUX0YoRm9vVGVzdCwgQWJjRGVhdGhUZXN0KSB7
IC4uLiB9Ci1URVNUX0YoRm9vVGVzdCwgVXZ3KSB7IC4uLiB9Ci0KLVRFU1RfRihCYXJUZXN0LCBE
ZWZEZWF0aFRlc3QpIHsgLi4uIH0KLVRFU1RfRihCYXJUZXN0LCBYeXopIHsgLi4uIH0KLWBgYAot
Ci1TaW5jZSBgRm9vVGVzdC5BYmNEZWF0aFRlc3RgIG5lZWRzIHRvIHJ1biBiZWZvcmUgYEJhclRl
c3QuWHl6YCwgYW5kIHdlIGRvbid0Ci1pbnRlcmxlYXZlIHRlc3RzIGZyb20gZGlmZmVyZW50IHRl
c3QgY2FzZXMsIHdlIG5lZWQgdG8gcnVuIGFsbCB0ZXN0cyBpbiB0aGUKLWBGb29UZXN0YCBjYXNl
IGJlZm9yZSBydW5uaW5nIGFueSB0ZXN0IGluIHRoZSBgQmFyVGVzdGAgY2FzZS4gVGhpcyBjb250
cmFkaWN0cwotd2l0aCB0aGUgcmVxdWlyZW1lbnQgdG8gcnVuIGBCYXJUZXN0LkRlZkRlYXRoVGVz
dGAgYmVmb3JlIGBGb29UZXN0LlV2d2AuCi0KLSMjIEJ1dCBJIGRvbid0IGxpa2UgY2FsbGluZyBt
eSBlbnRpcmUgdGVzdCBjYXNlIEZPT0RlYXRoVGVzdCB3aGVuIGl0IGNvbnRhaW5zIGJvdGggZGVh
dGggdGVzdHMgYW5kIG5vbi1kZWF0aCB0ZXN0cy4gV2hhdCBkbyBJIGRvPyAjIwotCi1Zb3UgZG9u
J3QgaGF2ZSB0bywgYnV0IGlmIHlvdSBsaWtlLCB5b3UgbWF5IHNwbGl0IHVwIHRoZSB0ZXN0IGNh
c2UgaW50bwotYEZvb1Rlc3RgIGFuZCBgRm9vRGVhdGhUZXN0YCwgd2hlcmUgdGhlIG5hbWVzIG1h
a2UgaXQgY2xlYXIgdGhhdCB0aGV5IGFyZQotcmVsYXRlZDoKLQotYGBgIGNwcAotY2xhc3MgRm9v
VGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeyAuLi4gfTsKLQotVEVTVF9GKEZvb1Rlc3Qs
IEFiYykgeyAuLi4gfQotVEVTVF9GKEZvb1Rlc3QsIERlZikgeyAuLi4gfQotCi10eXBlZGVmIEZv
b1Rlc3QgRm9vRGVhdGhUZXN0OwotCi1URVNUX0YoRm9vRGVhdGhUZXN0LCBVdncpIHsgLi4uIEVY
UEVDVF9ERUFUSCguLi4pIC4uLiB9Ci1URVNUX0YoRm9vRGVhdGhUZXN0LCBYeXopIHsgLi4uIEFT
U0VSVF9ERUFUSCguLi4pIC4uLiB9Ci1gYGAKLQotIyMgVGhlIGNvbXBpbGVyIGNvbXBsYWlucyBh
Ym91dCAibm8gbWF0Y2ggZm9yICdvcGVyYXRvcjw8JyIgd2hlbiBJIHVzZSBhbiBhc3NlcnRpb24u
IFdoYXQgZ2l2ZXM/ICMjCi0KLUlmIHlvdSB1c2UgYSB1c2VyLWRlZmluZWQgdHlwZSBgRm9vVHlw
ZWAgaW4gYW4gYXNzZXJ0aW9uLCB5b3UgbXVzdCBtYWtlIHN1cmUKLXRoZXJlIGlzIGFuIGBzdGQ6
Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiwgY29uc3QgRm9vVHlwZSYpYCBmdW5j
dGlvbgotZGVmaW5lZCBzdWNoIHRoYXQgd2UgY2FuIHByaW50IGEgdmFsdWUgb2YgYEZvb1R5cGVg
LgotCi1JbiBhZGRpdGlvbiwgaWYgYEZvb1R5cGVgIGlzIGRlY2xhcmVkIGluIGEgbmFtZSBzcGFj
ZSwgdGhlIGA8PGAgb3BlcmF0b3IgYWxzbwotbmVlZHMgdG8gYmUgZGVmaW5lZCBpbiB0aGUgX3Nh
bWVfIG5hbWUgc3BhY2UuCi0KLSMjIEhvdyBkbyBJIHN1cHByZXNzIHRoZSBtZW1vcnkgbGVhayBt
ZXNzYWdlcyBvbiBXaW5kb3dzPyAjIwotCi1TaW5jZSB0aGUgc3RhdGljYWxseSBpbml0aWFsaXpl
ZCBHb29nbGUgVGVzdCBzaW5nbGV0b24gcmVxdWlyZXMgYWxsb2NhdGlvbnMgb24KLXRoZSBoZWFw
LCB0aGUgVmlzdWFsIEMrKyBtZW1vcnkgbGVhayBkZXRlY3RvciB3aWxsIHJlcG9ydCBtZW1vcnkg
bGVha3MgYXQgdGhlCi1lbmQgb2YgdGhlIHByb2dyYW0gcnVuLiBUaGUgZWFzaWVzdCB3YXkgdG8g
YXZvaWQgdGhpcyBpcyB0byB1c2UgdGhlCi1gX0NydE1lbUNoZWNrcG9pbnRgIGFuZCBgX0NydE1l
bUR1bXBBbGxPYmplY3RzU2luY2VgIGNhbGxzIHRvIG5vdCByZXBvcnQgYW55Ci1zdGF0aWNhbGx5
IGluaXRpYWxpemVkIGhlYXAgb2JqZWN0cy4gU2VlIE1TRE4gZm9yIG1vcmUgZGV0YWlscyBhbmQg
YWRkaXRpb25hbAotaGVhcCBjaGVjay9kZWJ1ZyByb3V0aW5lcy4KLQotIyMgSSBhbSBidWlsZGlu
ZyBteSBwcm9qZWN0IHdpdGggR29vZ2xlIFRlc3QgaW4gVmlzdWFsIFN0dWRpbyBhbmQgYWxsIEkn
bSBnZXR0aW5nIGlzIGEgYnVuY2ggb2YgbGlua2VyIGVycm9ycyAob3Igd2FybmluZ3MpLiBIZWxw
ISAjIwotCi1Zb3UgbWF5IGdldCBhIG51bWJlciBvZiB0aGUgZm9sbG93aW5nIGxpbmtlciBlcnJv
ciBvciB3YXJuaW5ncyBpZiB5b3UKLWF0dGVtcHQgdG8gbGluayB5b3VyIHRlc3QgcHJvamVjdCB3
aXRoIHRoZSBHb29nbGUgVGVzdCBsaWJyYXJ5IHdoZW4KLXlvdXIgcHJvamVjdCBhbmQgdGhlIGFy
ZSBub3QgYnVpbHQgdXNpbmcgdGhlIHNhbWUgY29tcGlsZXIgc2V0dGluZ3MuCi0KLSAgKiBMTksy
MDA1OiBzeW1ib2wgYWxyZWFkeSBkZWZpbmVkIGluIG9iamVjdAotICAqIExOSzQyMTc6IGxvY2Fs
bHkgZGVmaW5lZCBzeW1ib2wgJ3N5bWJvbCcgaW1wb3J0ZWQgaW4gZnVuY3Rpb24gJ2Z1bmN0aW9u
JwotICAqIExOSzQwNDk6IGxvY2FsbHkgZGVmaW5lZCBzeW1ib2wgJ3N5bWJvbCcgaW1wb3J0ZWQK
LQotVGhlIEdvb2dsZSBUZXN0IHByb2plY3QgKGd0ZXN0LnZjcHJvaikgaGFzIHRoZSBSdW50aW1l
IExpYnJhcnkgb3B0aW9uCi1zZXQgdG8gL01UICh1c2UgbXVsdGktdGhyZWFkZWQgc3RhdGljIGxp
YnJhcmllcywgL01UZCBmb3IgZGVidWcpLiBJZgoteW91ciBwcm9qZWN0IHVzZXMgc29tZXRoaW5n
IGVsc2UsIGZvciBleGFtcGxlIC9NRCAodXNlIG11bHRpLXRocmVhZGVkCi1ETExzLCAvTURkIGZv
ciBkZWJ1ZyksIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgc2V0dGluZyBpbiB0aGUgR29vZ2xlCi1U
ZXN0IHByb2plY3QgdG8gbWF0Y2ggeW91ciBwcm9qZWN0J3MuCi0KLVRvIHVwZGF0ZSB0aGlzIHNl
dHRpbmcgb3BlbiB0aGUgcHJvamVjdCBwcm9wZXJ0aWVzIGluIHRoZSBWaXN1YWwKLVN0dWRpbyBJ
REUgdGhlbiBzZWxlY3QgdGhlIGJyYW5jaCBDb25maWd1cmF0aW9uIFByb3BlcnRpZXMgfCBDL0Mr
KyB8Ci1Db2RlIEdlbmVyYXRpb24gYW5kIGNoYW5nZSB0aGUgb3B0aW9uICJSdW50aW1lIExpYnJh
cnkiLiAgWW91IG1heSBhbHNvIHRyeQotdXNpbmcgZ3Rlc3QtbWQudmNwcm9qIGluc3RlYWQgb2Yg
Z3Rlc3QudmNwcm9qLgotCi0jIyBJIHB1dCBteSB0ZXN0cyBpbiBhIGxpYnJhcnkgYW5kIEdvb2ds
ZSBUZXN0IGRvZXNuJ3QgcnVuIHRoZW0uIFdoYXQncyBoYXBwZW5pbmc/ICMjCi1IYXZlIHlvdSBy
ZWFkIGEKLVt3YXJuaW5nXShQcmltZXIubWQjaW1wb3J0YW50LW5vdGUtZm9yLXZpc3VhbC1jLXVz
ZXJzKSBvbgotdGhlIEdvb2dsZSBUZXN0IFByaW1lciBwYWdlPwotCi0jIyBJIHdhbnQgdG8gdXNl
IEdvb2dsZSBUZXN0IHdpdGggVmlzdWFsIFN0dWRpbyBidXQgZG9uJ3Qga25vdyB3aGVyZSB0byBz
dGFydC4gIyMKLU1hbnkgcGVvcGxlIGFyZSBpbiB5b3VyIHBvc2l0aW9uIGFuZCBvbmUgb2YgdGhl
bSBwb3N0ZWQgaGlzIHNvbHV0aW9uIHRvIG91ciBtYWlsaW5nIGxpc3QuCi0KLSMjIEkgYW0gc2Vl
aW5nIGNvbXBpbGUgZXJyb3JzIG1lbnRpb25pbmcgc3RkOjp0eXBlXF90cmFpdHMgd2hlbiBJIHRy
eSB0byB1c2UgR29vZ2xlIFRlc3Qgb24gU29sYXJpcy4gIyMKLUdvb2dsZSBUZXN0IHVzZXMgcGFy
dHMgb2YgdGhlIHN0YW5kYXJkIEMrKyBsaWJyYXJ5IHRoYXQgU3VuU3R1ZGlvIGRvZXMgbm90IHN1
cHBvcnQuCi1PdXIgdXNlcnMgcmVwb3J0ZWQgc3VjY2VzcyB1c2luZyBhbHRlcm5hdGl2ZSBpbXBs
ZW1lbnRhdGlvbnMuIFRyeSBydW5uaW5nIHRoZSBidWlsZCBhZnRlciBydW5uaW5nIHRoaXMgY29t
bWFuZDoKLQotYGV4cG9ydCBDQz1jYyBDWFg9Q0MgQ1hYRkxBR1M9Jy1saWJyYXJ5PXN0bHBvcnQ0
J2AKLQotIyMgSG93IGNhbiBteSBjb2RlIGRldGVjdCBpZiBpdCBpcyBydW5uaW5nIGluIGEgdGVz
dD8gIyMKLQotSWYgeW91IHdyaXRlIGNvZGUgdGhhdCBzbmlmZnMgd2hldGhlciBpdCdzIHJ1bm5p
bmcgaW4gYSB0ZXN0IGFuZCBkb2VzCi1kaWZmZXJlbnQgdGhpbmdzIGFjY29yZGluZ2x5LCB5b3Ug
YXJlIGxlYWtpbmcgdGVzdC1vbmx5IGxvZ2ljIGludG8KLXByb2R1Y3Rpb24gY29kZSBhbmQgdGhl
cmUgaXMgbm8gZWFzeSB3YXkgdG8gZW5zdXJlIHRoYXQgdGhlIHRlc3Qtb25seQotY29kZSBwYXRo
cyBhcmVuJ3QgcnVuIGJ5IG1pc3Rha2UgaW4gcHJvZHVjdGlvbi4gIFN1Y2ggY2xldmVybmVzcyBh
bHNvCi1sZWFkcyB0bwotW0hlaXNlbmJ1Z3NdKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
VW51c3VhbF9zb2Z0d2FyZV9idWcjSGVpc2VuYnVnKS4KLVRoZXJlZm9yZSB3ZSBzdHJvbmdseSBh
ZHZpc2UgYWdhaW5zdCB0aGUgcHJhY3RpY2UsIGFuZCBHb29nbGUgVGVzdCBkb2Vzbid0Ci1wcm92
aWRlIGEgd2F5IHRvIGRvIGl0LgotCi1JbiBnZW5lcmFsLCB0aGUgcmVjb21tZW5kZWQgd2F5IHRv
IGNhdXNlIHRoZSBjb2RlIHRvIGJlaGF2ZQotZGlmZmVyZW50bHkgdW5kZXIgdGVzdCBpcyBbZGVw
ZW5kZW5jeSBpbmplY3Rpb25dKGh0dHA6Ly9qYW1lc3Nob3JlLmNvbS9CbG9nL0RlcGVuZGVuY3kt
SW5qZWN0aW9uLURlbXlzdGlmaWVkLmh0bWwpLgotWW91IGNhbiBpbmplY3QgZGlmZmVyZW50IGZ1
bmN0aW9uYWxpdHkgZnJvbSB0aGUgdGVzdCBhbmQgZnJvbSB0aGUKLXByb2R1Y3Rpb24gY29kZS4g
IFNpbmNlIHlvdXIgcHJvZHVjdGlvbiBjb2RlIGRvZXNuJ3QgbGluayBpbiB0aGUKLWZvci10ZXN0
IGxvZ2ljIGF0IGFsbCwgdGhlcmUgaXMgbm8gZGFuZ2VyIGluIGFjY2lkZW50YWxseSBydW5uaW5n
IGl0LgotCi1Ib3dldmVyLCBpZiB5b3UgX3JlYWxseV8sIF9yZWFsbHlfLCBfcmVhbGx5XyBoYXZl
IG5vIGNob2ljZSwgYW5kIGlmCi15b3UgZm9sbG93IHRoZSBydWxlIG9mIGVuZGluZyB5b3VyIHRl
c3QgcHJvZ3JhbSBuYW1lcyB3aXRoIGBfdGVzdGAsCi15b3UgY2FuIHVzZSB0aGUgX2hvcnJpYmxl
XyBoYWNrIG9mIHNuaWZmaW5nIHlvdXIgZXhlY3V0YWJsZSBuYW1lCi0oYGFyZ3ZbMF1gIGluIGBt
YWluKClgKSB0byBrbm93IHdoZXRoZXIgdGhlIGNvZGUgaXMgdW5kZXIgdGVzdC4KLQotIyMgR29v
Z2xlIFRlc3QgZGVmaW5lcyBhIG1hY3JvIHRoYXQgY2xhc2hlcyB3aXRoIG9uZSBkZWZpbmVkIGJ5
IGFub3RoZXIgbGlicmFyeS4gSG93IGRvIEkgZGVhbCB3aXRoIHRoYXQ/ICMjCi0KLUluIEMrKywg
bWFjcm9zIGRvbid0IG9iZXkgbmFtZXNwYWNlcy4gIFRoZXJlZm9yZSB0d28gbGlicmFyaWVzIHRo
YXQKLWJvdGggZGVmaW5lIGEgbWFjcm8gb2YgdGhlIHNhbWUgbmFtZSB3aWxsIGNsYXNoIGlmIHlv
dSBgI2luY2x1ZGVgIGJvdGgKLWRlZmluaXRpb25zLiAgSW4gY2FzZSBhIEdvb2dsZSBUZXN0IG1h
Y3JvIGNsYXNoZXMgd2l0aCBhbm90aGVyCi1saWJyYXJ5LCB5b3UgY2FuIGZvcmNlIEdvb2dsZSBU
ZXN0IHRvIHJlbmFtZSBpdHMgbWFjcm8gdG8gYXZvaWQgdGhlCi1jb25mbGljdC4KLQotU3BlY2lm
aWNhbGx5LCBpZiBib3RoIEdvb2dsZSBUZXN0IGFuZCBzb21lIG90aGVyIGNvZGUgZGVmaW5lIG1h
Y3JvCi1gRk9PYCwgeW91IGNhbiBhZGQKLWBgYAotICAtREdURVNUX0RPTlRfREVGSU5FX0ZPTz0x
Ci1gYGAKLXRvIHRoZSBjb21waWxlciBmbGFncyB0byB0ZWxsIEdvb2dsZSBUZXN0IHRvIGNoYW5n
ZSB0aGUgbWFjcm8ncyBuYW1lCi1mcm9tIGBGT09gIHRvIGBHVEVTVF9GT09gLiBGb3IgZXhhbXBs
ZSwgd2l0aCBgLURHVEVTVF9ET05UX0RFRklORV9URVNUPTFgLCB5b3UnbGwgbmVlZCB0byB3cml0
ZQotYGBgIGNwcAotICBHVEVTVF9URVNUKFNvbWVUZXN0LCBEb2VzVGhpcykgeyAuLi4gfQotYGBg
Ci1pbnN0ZWFkIG9mCi1gYGAgY3BwCi0gIFRFU1QoU29tZVRlc3QsIERvZXNUaGlzKSB7IC4uLiB9
Ci1gYGAKLWluIG9yZGVyIHRvIGRlZmluZSBhIHRlc3QuCi0KLUN1cnJlbnRseSwgdGhlIGZvbGxv
d2luZyBgVEVTVGAsIGBGQUlMYCwgYFNVQ0NFRURgLCBhbmQgdGhlIGJhc2ljIGNvbXBhcmlzb24g
YXNzZXJ0aW9uIG1hY3JvcyBjYW4gaGF2ZSAuIFlvdSBjYW4gc2VlIHRoZSBmdWxsIGxpc3Qgb2Yg
Y292ZXJlZCBtYWNyb3MgW2hlcmVdKC4uL2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCkuIE1vcmUgaW5m
b3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSAiQXZvaWRpbmcgTWFjcm8gTmFtZSBDbGFzaGVz
IiBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZmlsZS4KLQotCi0jIyBJcyBpdCBPSyBpZiBJIGhhdmUg
dHdvIHNlcGFyYXRlIGBURVNUKEZvbywgQmFyKWAgdGVzdCBtZXRob2RzIGRlZmluZWQgaW4gZGlm
ZmVyZW50IG5hbWVzcGFjZXM/ICMjCi0KLVllcy4KLQotVGhlIHJ1bGUgaXMgKiphbGwgdGVzdCBt
ZXRob2RzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBtdXN0IHVzZSB0aGUgc2FtZSBmaXh0dXJlIGNs
YXNzKiouIFRoaXMgbWVhbnMgdGhhdCB0aGUgZm9sbG93aW5nIGlzICoqYWxsb3dlZCoqIGJlY2F1
c2UgYm90aCB0ZXN0cyB1c2UgdGhlIHNhbWUgZml4dHVyZSBjbGFzcyAoYDo6dGVzdGluZzo6VGVz
dGApLgotCi1gYGAgY3BwCi1uYW1lc3BhY2UgZm9vIHsKLVRFU1QoQ29vbFRlc3QsIERvU29tZXRo
aW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNl
IGJhciB7Ci1URVNUKENvb2xUZXN0LCBEb1NvbWV0aGluZykgewotICBTVUNDRUVEKCk7Ci19Ci19
ICAvLyBuYW1lc3BhY2UgYmFyCi1gYGAKLQotSG93ZXZlciwgdGhlIGZvbGxvd2luZyBjb2RlIGlz
ICoqbm90IGFsbG93ZWQqKiBhbmQgd2lsbCBwcm9kdWNlIGEgcnVudGltZSBlcnJvciBmcm9tIEdv
b2dsZSBUZXN0IGJlY2F1c2UgdGhlIHRlc3QgbWV0aG9kcyBhcmUgdXNpbmcgZGlmZmVyZW50IHRl
c3QgZml4dHVyZSBjbGFzc2VzIHdpdGggdGhlIHNhbWUgdGVzdCBjYXNlIG5hbWUuCi0KLWBgYCBj
cHAKLW5hbWVzcGFjZSBmb28gewotY2xhc3MgQ29vbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpU
ZXN0IHt9OyAgLy8gRml4dHVyZSBmb286OkNvb2xUZXN0Ci1URVNUX0YoQ29vbFRlc3QsIERvU29t
ZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVzcGFjZSBmb28KLQotbmFtZXNw
YWNlIGJhciB7Ci1jbGFzcyBDb29sVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307ICAv
LyBGaXh0dXJlOiBiYXI6OkNvb2xUZXN0Ci1URVNUX0YoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7
Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVzcGFjZSBiYXIKLWBgYAotCi0jIyBIb3cgZG8g
SSBidWlsZCBHb29nbGUgVGVzdGluZyBGcmFtZXdvcmsgd2l0aCBYY29kZSA0PyAjIwotCi1JZiB5
b3UgdHJ5IHRvIGJ1aWxkIEdvb2dsZSBUZXN0J3MgWGNvZGUgcHJvamVjdCB3aXRoIFhjb2RlIDQu
MCBvciBsYXRlciwgeW91IG1heSBlbmNvdW50ZXIgYW4gZXJyb3IgbWVzc2FnZSB0aGF0IGxvb2tz
IGxpa2UKLSJNaXNzaW5nIFNESyBpbiB0YXJnZXQgZ3Rlc3RcX2ZyYW1ld29yazogL0RldmVsb3Bl
ci9TREtzL01hY09TWDEwLjR1LnNkayIuIFRoYXQgbWVhbnMgdGhhdCBYY29kZSBkb2VzIG5vdCBz
dXBwb3J0IHRoZSBTREsgdGhlIHByb2plY3QgaXMgdGFyZ2V0aW5nLiBTZWUgdGhlIFhjb2RlIHNl
Y3Rpb24gaW4gdGhlIFtSRUFETUVdKC4uL1JFQURNRS5tZCkgZmlsZSBvbiBob3cgdG8gcmVzb2x2
ZSB0aGlzLgotCi0jIyBIb3cgZG8gSSBlYXNpbHkgZGlzY292ZXIgdGhlIGZsYWdzIG5lZWRlZCBm
b3IgR29vZ2xlVGVzdD8gIyMKLQotR29vZ2xlVGVzdCAoYW5kIEdvb2dsZU1vY2spIG5vdyBzdXBw
b3J0IGRpc2NvdmVyaW5nIGFsbCBuZWNlc3NhcnkgZmxhZ3MgdXNpbmcgcGtnLWNvbmZpZy4KLVNl
ZSB0aGUgW3BrZy1jb25maWcgZ3VpZGVdKFBrZ2NvbmZpZy5tZCkgb24gaG93IHlvdSBjYW4gZWFz
aWx5IGRpc2NvdmVyIGFsbCBjb21waWxlciBhbmQKLWxpbmtlciBmbGFncyB1c2luZyBwa2ctY29u
ZmlnLgotCi0jIyBNeSBxdWVzdGlvbiBpcyBub3QgY292ZXJlZCBpbiB5b3VyIEZBUSEgIyMKLQot
SWYgeW91IGNhbm5vdCBmaW5kIHRoZSBhbnN3ZXIgdG8geW91ciBxdWVzdGlvbiBpbiB0aGlzIEZB
USwgdGhlcmUgYXJlCi1zb21lIG90aGVyIHJlc291cmNlcyB5b3UgY2FuIHVzZToKLQotICAxLiBy
ZWFkIG90aGVyIFt3aWtpIHBhZ2VzXSguLi9kb2NzKSwKLSAgMS4gc2VhcmNoIHRoZSBtYWlsaW5n
IGxpc3QgW2FyY2hpdmVdKGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vIyFmb3J1bS9n
b29nbGV0ZXN0ZnJhbWV3b3JrKSwKLSAgMS4gYXNrIGl0IG9uIFtnb29nbGV0ZXN0ZnJhbWV3b3Jr
QGdvb2dsZWdyb3Vwcy5jb21dKG1haWx0bzpnb29nbGV0ZXN0ZnJhbWV3b3JrQGdvb2dsZWdyb3Vw
cy5jb20pIGFuZCBzb21lb25lIHdpbGwgYW5zd2VyIGl0ICh0byBwcmV2ZW50IHNwYW0sIHdlIHJl
cXVpcmUgeW91IHRvIGpvaW4gdGhlIFtkaXNjdXNzaW9uIGdyb3VwXShodHRwOi8vZ3JvdXBzLmdv
b2dsZS5jb20vZ3JvdXAvZ29vZ2xldGVzdGZyYW1ld29yaykgYmVmb3JlIHlvdSBjYW4gcG9zdC4p
LgotCi1QbGVhc2Ugbm90ZSB0aGF0IGNyZWF0aW5nIGFuIGlzc3VlIGluIHRoZQotW2lzc3VlIHRy
YWNrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9pc3N1ZXMpIGlzIF9u
b3RfCi1hIGdvb2Qgd2F5IHRvIGdldCB5b3VyIGFuc3dlciwgYXMgaXQgaXMgbW9uaXRvcmVkIGlu
ZnJlcXVlbnRseSBieSBhCi12ZXJ5IHNtYWxsIG51bWJlciBvZiBwZW9wbGUuCi0KLVdoZW4gYXNr
aW5nIGEgcXVlc3Rpb24sIGl0J3MgaGVscGZ1bCB0byBwcm92aWRlIGFzIG11Y2ggb2YgdGhlCi1m
b2xsb3dpbmcgaW5mb3JtYXRpb24gYXMgcG9zc2libGUgKHBlb3BsZSBjYW5ub3QgaGVscCB5b3Ug
aWYgdGhlcmUncwotbm90IGVub3VnaCBpbmZvcm1hdGlvbiBpbiB5b3VyIHF1ZXN0aW9uKToKLQot
ICAqIHRoZSB2ZXJzaW9uIChvciB0aGUgY29tbWl0IGhhc2ggaWYgeW91IGNoZWNrIG91dCBmcm9t
IEdpdCBkaXJlY3RseSkgb2YgR29vZ2xlIFRlc3QgeW91IHVzZSAoR29vZ2xlIFRlc3QgaXMgdW5k
ZXIgYWN0aXZlIGRldmVsb3BtZW50LCBzbyBpdCdzIHBvc3NpYmxlIHRoYXQgeW91ciBwcm9ibGVt
IGhhcyBiZWVuIHNvbHZlZCBpbiBhIGxhdGVyIHZlcnNpb24pLAotICAqIHlvdXIgb3BlcmF0aW5n
IHN5c3RlbSwKLSAgKiB0aGUgbmFtZSBhbmQgdmVyc2lvbiBvZiB5b3VyIGNvbXBpbGVyLAotICAq
IHRoZSBjb21wbGV0ZSBjb21tYW5kIGxpbmUgZmxhZ3MgeW91IGdpdmUgdG8geW91ciBjb21waWxl
ciwKLSAgKiB0aGUgY29tcGxldGUgY29tcGlsZXIgZXJyb3IgbWVzc2FnZXMgKGlmIHRoZSBxdWVz
dGlvbiBpcyBhYm91dCBjb21waWxhdGlvbiksCi0gICogdGhlIF9hY3R1YWxfIGNvZGUgKGlkZWFs
bHksIGEgbWluaW1hbCBidXQgY29tcGxldGUgcHJvZ3JhbSkgdGhhdCBoYXMgdGhlIHByb2JsZW0g
eW91IGVuY291bnRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2Rv
Y3MvUGtnY29uZmlnLm1kIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvZG9jcy9Qa2djb25m
aWcubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NjEyODk0ZDJhM2M4ZWFkYjQ0
MmM1NTg3ODA0ZmI3Nzg1ZWFhNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvZG9jcy9Qa2djb25maWcubWQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotIyMgVXNpbmcgR29vZ2xlVGVzdCBmcm9t
IHZhcmlvdXMgYnVpbGQgc3lzdGVtcyAjIwotCi1Hb29nbGVUZXN0IGNvbWVzIHdpdGggcGtnLWNv
bmZpZyBmaWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSBhbGwKLW5lY2Vzc2FyeSBm
bGFncyBmb3IgY29tcGlsaW5nIGFuZCBsaW5raW5nIHRvIEdvb2dsZVRlc3QgKGFuZCBHb29nbGVN
b2NrKS4KLVBrZy1jb25maWcgaXMgYSBzdGFuZGFyZGlzZWQgcGxhaW4tdGV4dCBmb3JtYXQgY29u
dGFpbmluZwotCi0gICogdGhlIGluY2x1ZGVkaXIgKC1JKSBwYXRoCi0gICogbmVjZXNzYXJ5IG1h
Y3JvICgtRCkgZGVmaW5pdGlvbnMKLSAgKiBmdXJ0aGVyIHJlcXVpcmVkIGZsYWdzICgtcHRocmVh
ZCkKLSAgKiB0aGUgbGlicmFyeSAoLUwpIHBhdGgKLSAgKiB0aGUgbGlicmFyeSAoLWwpIHRvIGxp
bmsgdG8KLQotQWxsIGN1cnJlbnQgYnVpbGQgc3lzdGVtcyBzdXBwb3J0IHBrZy1jb25maWcgaW4g
b25lIHdheSBvciBhbm90aGVyLiBGb3IKLWFsbCBleGFtcGxlcyBoZXJlIHdlIGFzc3VtZSB5b3Ug
d2FudCB0byBjb21waWxlIHRoZSBzYW1wbGUKLWBzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2Ng
LgotCi0KLSMjIyBDTWFrZSAjIyMKLQotVXNpbmcgYHBrZy1jb25maWdgIGluIENNYWtlIGlzIGZh
aXJseSBlYXN5OgotCi1gYGAKLWNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjApCi0K
LWNtYWtlX3BvbGljeShTRVQgQ01QMDA0OCBORVcpCi1wcm9qZWN0KG15X2d0ZXN0X3BrZ2NvbmZp
ZyBWRVJTSU9OIDAuMC4xIExBTkdVQUdFUyBDWFgpCi0KLWZpbmRfcGFja2FnZShQa2dDb25maWcp
Ci1wa2dfc2VhcmNoX21vZHVsZShHVEVTVCBSRVFVSVJFRCBndGVzdF9tYWluKQotCi1hZGRfZXhl
Y3V0YWJsZSh0ZXN0YXBwIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYykKLXRhcmdldF9saW5r
X2xpYnJhcmllcyh0ZXN0YXBwICR7R1RFU1RfTERGTEFHU30pCi10YXJnZXRfY29tcGlsZV9vcHRp
b25zKHRlc3RhcHAgUFVCTElDICR7R1RFU1RfQ0ZMQUdTfSkKLQotaW5jbHVkZShDVGVzdCkKLWFk
ZF90ZXN0KGZpcnN0X2FuZF9vbmx5X3Rlc3QgdGVzdGFwcCkKLWBgYAotCi1JdCBpcyBnZW5lcmFs
bHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIGB0YXJnZXRfY29tcGlsZV9vcHRpb25zYCArIGBf
Q0ZMQUdTYAotb3ZlciBgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXNgICsgYF9JTkNMVURFX0RJ
UlNgIGFzIHRoZSBmb3JtZXIgaW5jbHVkZXMgbm90Ci1qdXN0IC1JIGZsYWdzIChHb29nbGVUZXN0
IG1pZ2h0IHJlcXVpcmUgYSBtYWNybyBpbmRpY2F0aW5nIHRvIGludGVybmFsIGhlYWRlcnMKLXRo
YXQgYWxsIGxpYnJhcmllcyBoYXZlIGJlZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRpbmcgZW5hYmxl
ZC4gSW4gYWRkaXRpb24sCi1Hb29nbGVUZXN0IG1pZ2h0IGFsc28gcmVxdWlyZSBgLXB0aHJlYWRg
IGluIHRoZSBjb21waWxpbmcgc3RlcCwgYW5kIGFzIHN1Y2gKLXNwbGl0dGluZyB0aGUgcGtnLWNv
bmZpZyBgQ2ZsYWdzYCB2YXJpYWJsZSBpbnRvIGluY2x1ZGUgZGlycyBhbmQgbWFjcm9zIGZvcgot
YHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKClgIG1pZ2h0IHN0aWxsIG1pc3MgdGhpcykuIFRo
ZSBzYW1lIHJlY29tbWVuZGF0aW9uCi1nb2VzIGZvciB1c2luZyBgX0xERkxBR1NgIG92ZXIgdGhl
IG1vcmUgY29tbW9ucGxhY2UgYF9MSUJSQVJJRVNgLCB3aGljaAotaGFwcGVucyB0byBkaXNjYXJk
IGAtTGAgZmxhZ3MgYW5kIGAtcHRocmVhZGAuCi0KLQotIyMjIEF1dG90b29scyAjIyMKLQotRmlu
ZGluZyBHb29nbGVUZXN0IGluIEF1dG9jb25mIGFuZCB1c2luZyBpdCBmcm9tIEF1dG9tYWtlIGlz
IGFsc28gZmFpcmx5IGVhc3k6Ci0KLUluIHlvdXIgYGNvbmZpZ3VyZS5hY2A6Ci0KLWBgYAotQUNf
UFJFUkVRKFsyLjY5XSkKLUFDX0lOSVQoW215X2d0ZXN0X3BrZ2NvbmZpZ10sIFswLjAuMV0pCi1B
Q19DT05GSUdfU1JDRElSKFtzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2NdKQotQUNfUFJPR19D
WFgKLQotUEtHX0NIRUNLX01PRFVMRVMoW0dURVNUXSwgW2d0ZXN0X21haW5dKQotCi1BTV9JTklU
X0FVVE9NQUtFKFtmb3JlaWduIHN1YmRpci1vYmplY3RzXSkKLUFDX0NPTkZJR19GSUxFUyhbTWFr
ZWZpbGVdKQotQUNfT1VUUFVUCi1gYGAKLQotYW5kIGluIHlvdXIgYE1ha2VmaWxlLmFtYDoKLQot
YGBgCi1jaGVja19QUk9HUkFNUyA9IHRlc3RhcHAKLVRFU1RTID0gJChjaGVja19QUk9HUkFNUykK
LQotdGVzdGFwcF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCi10ZXN0YXBw
X0NYWEZMQUdTID0gJChHVEVTVF9DRkxBR1MpCi10ZXN0YXBwX0xEQUREID0gJChHVEVTVF9MSUJT
KQotYGBgCi0KLQotIyMjIE1lc29uICMjIwotCi1NZXNvbiBuYXRpdmVseSB1c2VzIHBrZ2NvbmZp
ZyB0byBxdWVyeSBkZXBlbmRlbmNpZXM6Ci0KLWBgYAotcHJvamVjdCgnbXlfZ3Rlc3RfcGtnY29u
ZmlnJywgJ2NwcCcsIHZlcnNpb24gOiAnMC4wLjEnKQotCi1ndGVzdF9kZXAgPSBkZXBlbmRlbmN5
KCdndGVzdF9tYWluJykKLQotdGVzdGFwcCA9IGV4ZWN1dGFibGUoCi0gICd0ZXN0YXBwJywKLSAg
ZmlsZXMoWydzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MnXSksCi0gIGRlcGVuZGVuY2llcyA6
IGd0ZXN0X2RlcCwKLSAgaW5zdGFsbCA6IGZhbHNlKQotCi10ZXN0KCdmaXJzdF9hbmRfb25seV90
ZXN0JywgdGVzdGFwcCkKLWBgYAotCi0KLSMjIyBQbGFpbiBNYWtlZmlsZXMgIyMjCi0KLVNpbmNl
IGBwa2ctY29uZmlnYCBpcyBhIHNtYWxsIFVuaXggY29tbWFuZC1saW5lIHV0aWxpdHksIGl0IGNh
biBiZSB1c2VkCi1pbiBoYW5kd3JpdHRlbiBgTWFrZWZpbGVgcyB0b286Ci0KLWBgYAotR1RFU1Rf
Q0ZMQUdTID0gYHBrZy1jb25maWcgLS1jZmxhZ3MgZ3Rlc3RfbWFpbmAKLUdURVNUX0xJQlMgPSBg
cGtnLWNvbmZpZyAtLWxpYnMgZ3Rlc3RfbWFpbmAKLQotLlBIT05ZOiB0ZXN0cyBhbGwKLQotdGVz
dHM6IGFsbAotCS4vdGVzdGFwcAotCi1hbGw6IHRlc3RhcHAKLQotdGVzdGFwcDogdGVzdGFwcC5v
Ci0JJChDWFgpICQoQ1hYRkxBR1MpICQoTERGTEFHUykgJDwgLW8gJEAgJChHVEVTVF9MSUJTKQot
Ci10ZXN0YXBwLm86IHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYwotCSQoQ1hYKSAkKENQUEZM
QUdTKSAkKENYWEZMQUdTKSAkPCAtYyAtbyAkQCAkKEdURVNUX0NGTEFHUykKLWBgYAotCi0KLSMj
IyBIZWxwISBwa2ctY29uZmlnIGNhbid0IGZpbmQgR29vZ2xlVGVzdCEgIyMjCi0KLUxldCdzIHNh
eSB5b3UgaGF2ZSBhIGBDTWFrZUxpc3RzLnR4dGAgYWxvbmcgdGhlIGxpbmVzIG9mIHRoZSBvbmUg
aW4gdGhpcwotdHV0b3JpYWwgYW5kIHlvdSB0cnkgdG8gcnVuIGBjbWFrZWAuIEl0IGlzIHZlcnkg
cG9zc2libGUgdGhhdCB5b3UgZ2V0IGEKLWZhaWx1cmUgYWxvbmcgdGhlIGxpbmVzIG9mOgotCi1g
YGAKLS0tIENoZWNraW5nIGZvciBvbmUgb2YgdGhlIG1vZHVsZXMgJ2d0ZXN0X21haW4nCi1DTWFr
ZSBFcnJvciBhdCAvdXNyL3NoYXJlL2NtYWtlL01vZHVsZXMvRmluZFBrZ0NvbmZpZy5jbWFrZTo2
NDAgKG1lc3NhZ2UpOgotICBOb25lIG9mIHRoZSByZXF1aXJlZCAnZ3Rlc3RfbWFpbicgZm91bmQK
LWBgYAotCi1UaGVzZSBmYWlsdXJlcyBhcmUgY29tbW9uIGlmIHlvdSBpbnN0YWxsZWQgR29vZ2xl
VGVzdCB5b3Vyc2VsZiBhbmQgaGF2ZSBub3QKLXNvdXJjZWQgaXQgZnJvbSBhIGRpc3RybyBvciBv
dGhlciBwYWNrYWdlIG1hbmFnZXIuIElmIHNvLCB5b3UgbmVlZCB0byB0ZWxsCi1wa2ctY29uZmln
IHdoZXJlIGl0IGNhbiBmaW5kIHRoZSBgLnBjYCBmaWxlcyBjb250YWluaW5nIHRoZSBpbmZvcm1h
dGlvbi4KLVNheSB5b3UgaW5zdGFsbGVkIEdvb2dsZVRlc3QgdG8gYC91c3IvbG9jYWxgLCB0aGVu
IGl0IG1pZ2h0IGJlIHRoYXQgdGhlCi1gLnBjYCBmaWxlcyBhcmUgaW5zdGFsbGVkIHVuZGVyIGAv
dXNyL2xvY2FsL2xpYjY0L3BrZ2NvbmZpZ2AuIElmIHlvdSBzZXQKLQotYGBgCi1leHBvcnQgUEtH
X0NPTkZJR19QQVRIPS91c3IvbG9jYWwvbGliNjQvcGtnY29uZmlnCi1gYGAKLQotcGtnLWNvbmZp
ZyB3aWxsIGFsc28gdHJ5IHRvIGxvb2sgaW4gYFBLR19DT05GSUdfUEFUSGAgdG8gZmluZCBgZ3Rl
c3RfbWFpbi5wY2AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9kb2Nz
L1ByaW1lci5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3MvUHJpbWVyLm1kCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODRkNGQ2ZTk3ZTUyYzE3ZmIzOGE1YmEzYTYx
ZTMyYmMwNTBlYTMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3MvUHJpbWVyLm1kCisrKyAvZGV2L251
bGwKQEAgLTEsNTM2ICswLDAgQEAKLQotCi0jIEludHJvZHVjdGlvbjogV2h5IEdvb2dsZSBDKysg
VGVzdGluZyBGcmFtZXdvcms/ICMKLQotX0dvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmtfIGhl
bHBzIHlvdSB3cml0ZSBiZXR0ZXIgQysrIHRlc3RzLgotCi1ObyBtYXR0ZXIgd2hldGhlciB5b3Ug
d29yayBvbiBMaW51eCwgV2luZG93cywgb3IgYSBNYWMsIGlmIHlvdSB3cml0ZSBDKysgY29kZSwK
LUdvb2dsZSBUZXN0IGNhbiBoZWxwIHlvdS4KLQotU28gd2hhdCBtYWtlcyBhIGdvb2QgdGVzdCwg
YW5kIGhvdyBkb2VzIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgZml0IGluPyBXZSBiZWxp
ZXZlOgotICAxLiBUZXN0cyBzaG91bGQgYmUgX2luZGVwZW5kZW50XyBhbmQgX3JlcGVhdGFibGVf
LiBJdCdzIGEgcGFpbiB0byBkZWJ1ZyBhIHRlc3QgdGhhdCBzdWNjZWVkcyBvciBmYWlscyBhcyBh
IHJlc3VsdCBvZiBvdGhlciB0ZXN0cy4gIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgaXNv
bGF0ZXMgdGhlIHRlc3RzIGJ5IHJ1bm5pbmcgZWFjaCBvZiB0aGVtIG9uIGEgZGlmZmVyZW50IG9i
amVjdC4gV2hlbiBhIHRlc3QgZmFpbHMsIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgYWxs
b3dzIHlvdSB0byBydW4gaXQgaW4gaXNvbGF0aW9uIGZvciBxdWljayBkZWJ1Z2dpbmcuCi0gIDEu
IFRlc3RzIHNob3VsZCBiZSB3ZWxsIF9vcmdhbml6ZWRfIGFuZCByZWZsZWN0IHRoZSBzdHJ1Y3R1
cmUgb2YgdGhlIHRlc3RlZCBjb2RlLiAgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayBncm91
cHMgcmVsYXRlZCB0ZXN0cyBpbnRvIHRlc3QgY2FzZXMgdGhhdCBjYW4gc2hhcmUgZGF0YSBhbmQg
c3Vicm91dGluZXMuIFRoaXMgY29tbW9uIHBhdHRlcm4gaXMgZWFzeSB0byByZWNvZ25pemUgYW5k
IG1ha2VzIHRlc3RzIGVhc3kgdG8gbWFpbnRhaW4uIFN1Y2ggY29uc2lzdGVuY3kgaXMgZXNwZWNp
YWxseSBoZWxwZnVsIHdoZW4gcGVvcGxlIHN3aXRjaCBwcm9qZWN0cyBhbmQgc3RhcnQgdG8gd29y
ayBvbiBhIG5ldyBjb2RlIGJhc2UuCi0gIDEuIFRlc3RzIHNob3VsZCBiZSBfcG9ydGFibGVfIGFu
ZCBfcmV1c2FibGVfLiBUaGUgb3Blbi1zb3VyY2UgY29tbXVuaXR5IGhhcyBhIGxvdCBvZiBjb2Rl
IHRoYXQgaXMgcGxhdGZvcm0tbmV1dHJhbCwgaXRzIHRlc3RzIHNob3VsZCBhbHNvIGJlIHBsYXRm
b3JtLW5ldXRyYWwuICBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIHdvcmtzIG9uIGRpZmZl
cmVudCBPU2VzLCB3aXRoIGRpZmZlcmVudCBjb21waWxlcnMgKGdjYywgTVNWQywgYW5kIG90aGVy
cyksIHdpdGggb3Igd2l0aG91dCBleGNlcHRpb25zLCBzbyBHb29nbGUgQysrIFRlc3RpbmcgRnJh
bWV3b3JrIHRlc3RzIGNhbiBlYXNpbHkgd29yayB3aXRoIGEgdmFyaWV0eSBvZiBjb25maWd1cmF0
aW9ucy4gIChOb3RlIHRoYXQgdGhlIGN1cnJlbnQgcmVsZWFzZSBvbmx5IGNvbnRhaW5zIGJ1aWxk
IHNjcmlwdHMgZm9yIExpbnV4IC0gd2UgYXJlIGFjdGl2ZWx5IHdvcmtpbmcgb24gc2NyaXB0cyBm
b3Igb3RoZXIgcGxhdGZvcm1zLikKLSAgMS4gV2hlbiB0ZXN0cyBmYWlsLCB0aGV5IHNob3VsZCBw
cm92aWRlIGFzIG11Y2ggX2luZm9ybWF0aW9uXyBhYm91dCB0aGUgcHJvYmxlbSBhcyBwb3NzaWJs
ZS4gR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayBkb2Vzbid0IHN0b3AgYXQgdGhlIGZpcnN0
IHRlc3QgZmFpbHVyZS4gSW5zdGVhZCwgaXQgb25seSBzdG9wcyB0aGUgY3VycmVudCB0ZXN0IGFu
ZCBjb250aW51ZXMgd2l0aCB0aGUgbmV4dC4gWW91IGNhbiBhbHNvIHNldCB1cCB0ZXN0cyB0aGF0
IHJlcG9ydCBub24tZmF0YWwgZmFpbHVyZXMgYWZ0ZXIgd2hpY2ggdGhlIGN1cnJlbnQgdGVzdCBj
b250aW51ZXMuIFRodXMsIHlvdSBjYW4gZGV0ZWN0IGFuZCBmaXggbXVsdGlwbGUgYnVncyBpbiBh
IHNpbmdsZSBydW4tZWRpdC1jb21waWxlIGN5Y2xlLgotICAxLiBUaGUgdGVzdGluZyBmcmFtZXdv
cmsgc2hvdWxkIGxpYmVyYXRlIHRlc3Qgd3JpdGVycyBmcm9tIGhvdXNla2VlcGluZyBjaG9yZXMg
YW5kIGxldCB0aGVtIGZvY3VzIG9uIHRoZSB0ZXN0IF9jb250ZW50Xy4gIEdvb2dsZSBDKysgVGVz
dGluZyBGcmFtZXdvcmsgYXV0b21hdGljYWxseSBrZWVwcyB0cmFjayBvZiBhbGwgdGVzdHMgZGVm
aW5lZCwgYW5kIGRvZXNuJ3QgcmVxdWlyZSB0aGUgdXNlciB0byBlbnVtZXJhdGUgdGhlbSBpbiBv
cmRlciB0byBydW4gdGhlbS4KLSAgMS4gVGVzdHMgc2hvdWxkIGJlIF9mYXN0Xy4gV2l0aCBHb29n
bGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrLCB5b3UgY2FuIHJldXNlIHNoYXJlZCByZXNvdXJjZXMg
YWNyb3NzIHRlc3RzIGFuZCBwYXkgZm9yIHRoZSBzZXQtdXAvdGVhci1kb3duIG9ubHkgb25jZSwg
d2l0aG91dCBtYWtpbmcgdGVzdHMgZGVwZW5kIG9uIGVhY2ggb3RoZXIuCi0KLVNpbmNlIEdvb2ds
ZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgaXMgYmFzZWQgb24gdGhlIHBvcHVsYXIgeFVuaXQKLWFy
Y2hpdGVjdHVyZSwgeW91J2xsIGZlZWwgcmlnaHQgYXQgaG9tZSBpZiB5b3UndmUgdXNlZCBKVW5p
dCBvciBQeVVuaXQgYmVmb3JlLgotSWYgbm90LCBpdCB3aWxsIHRha2UgeW91IGFib3V0IDEwIG1p
bnV0ZXMgdG8gbGVhcm4gdGhlIGJhc2ljcyBhbmQgZ2V0IHN0YXJ0ZWQuCi1TbyBsZXQncyBnbyEK
LQotX05vdGU6XyBXZSBzb21ldGltZXMgcmVmZXIgdG8gR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1l
d29yayBpbmZvcm1hbGx5Ci1hcyBfR29vZ2xlIFRlc3RfLgotCi0jIEJld2FyZSBvZiB0aGUgbm9t
ZW5jbGF0dXJlICMKLQotX05vdGU6XyBUaGVyZSBtaWdodCBiZSBzb21lIGNvbmZ1c2lvbiBvZiBp
ZGVhIGR1ZSB0byBkaWZmZXJlbnQKLWRlZmluaXRpb25zIG9mIHRoZSB0ZXJtcyBfVGVzdF8sIF9U
ZXN0IENhc2VfIGFuZCBfVGVzdCBTdWl0ZV8sIHNvIGJld2FyZQotb2YgbWlzdW5kZXJzdGFuZGlu
ZyB0aGVzZS4KLQotSGlzdG9yaWNhbGx5LCB0aGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29y
ayBzdGFydGVkIHRvIHVzZSB0aGUgdGVybQotX1Rlc3QgQ2FzZV8gZm9yIGdyb3VwaW5nIHJlbGF0
ZWQgdGVzdHMsIHdoZXJlYXMgY3VycmVudCBwdWJsaWNhdGlvbnMKLWluY2x1ZGluZyB0aGUgSW50
ZXJuYXRpb25hbCBTb2Z0d2FyZSBUZXN0aW5nIFF1YWxpZmljYXRpb25zIEJvYXJkCi0oW0lTVFFC
XShodHRwOi8vd3d3LmlzdHFiLm9yZy8pKSBhbmQgdmFyaW91cyB0ZXh0Ym9va3Mgb24gU29mdHdh
cmUKLVF1YWxpdHkgdXNlIHRoZSB0ZXJtIF9bVGVzdAotU3VpdGVdKGh0dHA6Ly9nbG9zc2FyeS5p
c3RxYi5vcmcvc2VhcmNoL3Rlc3QlMjBzdWl0ZSlfIGZvciB0aGlzLgotCi1UaGUgcmVsYXRlZCB0
ZXJtIF9UZXN0XywgYXMgaXQgaXMgdXNlZCBpbiB0aGUgR29vZ2xlIEMrKyBUZXN0aW5nCi1GcmFt
ZXdvcmssIGlzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRlcm0gX1tUZXN0Ci1DYXNlXShodHRwOi8v
Z2xvc3NhcnkuaXN0cWIub3JnL3NlYXJjaC90ZXN0JTIwY2FzZSlfIG9mIElTVFFCIGFuZAotb3Ro
ZXJzLgotCi1UaGUgdGVybSBfVGVzdF8gaXMgY29tbW9ubHkgb2YgYnJvYWQgZW5vdWdoIHNlbnNl
LCBpbmNsdWRpbmcgSVNUUUIncwotZGVmaW5pdGlvbiBvZiBfVGVzdCBDYXNlXywgc28gaXQncyBu
b3QgbXVjaCBvZiBhIHByb2JsZW0gaGVyZS4gQnV0IHRoZQotdGVybSBfVGVzdCBDYXNlXyBhcyB1
c2VkIGluIEdvb2dsZSBUZXN0IGlzIG9mIGNvbnRyYWRpY3Rvcnkgc2Vuc2UgYW5kIHRodXMgY29u
ZnVzaW5nLgotCi1VbmZvcnR1bmF0ZWx5IHJlcGxhY2luZyB0aGUgdGVybSBfVGVzdCBDYXNlXyBi
eSBfVGVzdCBTdWl0ZV8gdGhyb3VnaG91dAotdGhlIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdv
cmsgaXMgbm90IGVhc3kgd2l0aG91dCBicmVha2luZyBkZXBlbmRlbnQKLXByb2plY3RzLCBhcyBg
VGVzdENhc2VgIGlzIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgYXQgdmFyaW91cyBwbGFjZXMuCi0K
LVNvIGZvciB0aGUgdGltZSBiZWluZywgcGxlYXNlIGJlIGF3YXJlIG9mIHRoZSBkaWZmZXJlbnQg
ZGVmaW5pdGlvbnMgb2YKLXRoZSB0ZXJtczoKLQotTWVhbmluZyB8IEdvb2dsZSBUZXN0IFRlcm0g
fCBbSVNUUUJdKGh0dHA6Ly93d3cuaXN0cWIub3JnLykgVGVybQotLS0tLS0tLSB8IC0tLS0tLS0t
LS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRXhlcmNpc2Ug
YSBwYXJ0aWN1bGFyIHByb2dyYW0gcGF0aCB3aXRoIHNwZWNpZmljIGlucHV0IHZhbHVlcyBhbmQg
dmVyaWZ5IHRoZSByZXN1bHRzIHwgW1RFU1QoKV0oI3NpbXBsZS10ZXN0cykgfCBbVGVzdCBDYXNl
XShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3JnL3NlYXJjaC90ZXN0JTIwY2FzZSkKLUEgc2V0IG9m
IHNldmVyYWwgdGVzdHMgcmVsYXRlZCB0byBvbmUgY29tcG9uZW50IHwgW1Rlc3QgQ2FzZV0oI2Jh
c2ljLWNvbmNlcHRzKSB8IFtUZXN0IFN1aXRlXShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3JnL3Nl
YXJjaC90ZXN0JTIwc3VpdGUpCi0KLSMgU2V0dGluZyB1cCBhIE5ldyBUZXN0IFByb2plY3QgIwot
Ci1UbyB3cml0ZSBhIHRlc3QgcHJvZ3JhbSB1c2luZyBHb29nbGUgVGVzdCwgeW91IG5lZWQgdG8g
Y29tcGlsZSBHb29nbGUKLVRlc3QgaW50byBhIGxpYnJhcnkgYW5kIGxpbmsgeW91ciB0ZXN0IHdp
dGggaXQuICBXZSBwcm92aWRlIGJ1aWxkCi1maWxlcyBmb3Igc29tZSBwb3B1bGFyIGJ1aWxkIHN5
c3RlbXM6IGBtc3ZjL2AgZm9yIFZpc3VhbCBTdHVkaW8sCi1geGNvZGUvYCBmb3IgTWFjIFhjb2Rl
LCBgbWFrZS9gIGZvciBHTlUgbWFrZSwgYGNvZGVnZWFyL2AgZm9yIEJvcmxhbmQKLUMrKyBCdWls
ZGVyLCBhbmQgdGhlIGF1dG90b29scyBzY3JpcHQgKGRlcHJlY2F0ZWQpIGFuZAotYENNYWtlTGlz
dHMudHh0YCBmb3IgQ01ha2UgKHJlY29tbWVuZGVkKSBpbiB0aGUgR29vZ2xlIFRlc3Qgcm9vdAot
ZGlyZWN0b3J5LiAgSWYgeW91ciBidWlsZCBzeXN0ZW0gaXMgbm90IG9uIHRoaXMgbGlzdCwgeW91
IGNhbiB0YWtlIGEKLWxvb2sgYXQgYG1ha2UvTWFrZWZpbGVgIHRvIGxlYXJuIGhvdyBHb29nbGUg
VGVzdCBzaG91bGQgYmUgY29tcGlsZWQKLShiYXNpY2FsbHkgeW91IHdhbnQgdG8gY29tcGlsZSBg
c3JjL2d0ZXN0LWFsbC5jY2Agd2l0aCBgR1RFU1RfUk9PVGAKLWFuZCBgR1RFU1RfUk9PVC9pbmNs
dWRlYCBpbiB0aGUgaGVhZGVyIHNlYXJjaCBwYXRoLCB3aGVyZSBgR1RFU1RfUk9PVGAKLWlzIHRo
ZSBHb29nbGUgVGVzdCByb290IGRpcmVjdG9yeSkuCi0KLU9uY2UgeW91IGFyZSBhYmxlIHRvIGNv
bXBpbGUgdGhlIEdvb2dsZSBUZXN0IGxpYnJhcnksIHlvdSBzaG91bGQKLWNyZWF0ZSBhIHByb2pl
Y3Qgb3IgYnVpbGQgdGFyZ2V0IGZvciB5b3VyIHRlc3QgcHJvZ3JhbS4gIE1ha2Ugc3VyZSB5b3UK
LWhhdmUgYEdURVNUX1JPT1QvaW5jbHVkZWAgaW4gdGhlIGhlYWRlciBzZWFyY2ggcGF0aCBzbyB0
aGF0IHRoZQotY29tcGlsZXIgY2FuIGZpbmQgYCJndGVzdC9ndGVzdC5oImAgd2hlbiBjb21waWxp
bmcgeW91ciB0ZXN0LiAgU2V0IHVwCi15b3VyIHRlc3QgcHJvamVjdCB0byBsaW5rIHdpdGggdGhl
IEdvb2dsZSBUZXN0IGxpYnJhcnkgKGZvciBleGFtcGxlLAotaW4gVmlzdWFsIFN0dWRpbywgdGhp
cyBpcyBkb25lIGJ5IGFkZGluZyBhIGRlcGVuZGVuY3kgb24KLWBndGVzdC52Y3Byb2pgKS4KLQot
SWYgeW91IHN0aWxsIGhhdmUgcXVlc3Rpb25zLCB0YWtlIGEgbG9vayBhdCBob3cgR29vZ2xlIFRl
c3QncyBvd24KLXRlc3RzIGFyZSBidWlsdCBhbmQgdXNlIHRoZW0gYXMgZXhhbXBsZXMuCi0KLSMg
QmFzaWMgQ29uY2VwdHMgIwotCi1XaGVuIHVzaW5nIEdvb2dsZSBUZXN0LCB5b3Ugc3RhcnQgYnkg
d3JpdGluZyBfYXNzZXJ0aW9uc18sIHdoaWNoIGFyZSBzdGF0ZW1lbnRzCi10aGF0IGNoZWNrIHdo
ZXRoZXIgYSBjb25kaXRpb24gaXMgdHJ1ZS4gQW4gYXNzZXJ0aW9uJ3MgcmVzdWx0IGNhbiBiZSBf
c3VjY2Vzc18sCi1fbm9uZmF0YWwgZmFpbHVyZV8sIG9yIF9mYXRhbCBmYWlsdXJlXy4gSWYgYSBm
YXRhbCBmYWlsdXJlIG9jY3VycywgaXQgYWJvcnRzCi10aGUgY3VycmVudCBmdW5jdGlvbjsgb3Ro
ZXJ3aXNlIHRoZSBwcm9ncmFtIGNvbnRpbnVlcyBub3JtYWxseS4KLQotX1Rlc3RzXyB1c2UgYXNz
ZXJ0aW9ucyB0byB2ZXJpZnkgdGhlIHRlc3RlZCBjb2RlJ3MgYmVoYXZpb3IuIElmIGEgdGVzdCBj
cmFzaGVzCi1vciBoYXMgYSBmYWlsZWQgYXNzZXJ0aW9uLCB0aGVuIGl0IF9mYWlsc187IG90aGVy
d2lzZSBpdCBfc3VjY2VlZHNfLgotCi1BIF90ZXN0IGNhc2VfIGNvbnRhaW5zIG9uZSBvciBtYW55
IHRlc3RzLiBZb3Ugc2hvdWxkIGdyb3VwIHlvdXIgdGVzdHMgaW50byB0ZXN0Ci1jYXNlcyB0aGF0
IHJlZmxlY3QgdGhlIHN0cnVjdHVyZSBvZiB0aGUgdGVzdGVkIGNvZGUuIFdoZW4gbXVsdGlwbGUg
dGVzdHMgaW4gYQotdGVzdCBjYXNlIG5lZWQgdG8gc2hhcmUgY29tbW9uIG9iamVjdHMgYW5kIHN1
YnJvdXRpbmVzLCB5b3UgY2FuIHB1dCB0aGVtIGludG8gYQotX3Rlc3QgZml4dHVyZV8gY2xhc3Mu
Ci0KLUEgX3Rlc3QgcHJvZ3JhbV8gY2FuIGNvbnRhaW4gbXVsdGlwbGUgdGVzdCBjYXNlcy4KLQot
V2UnbGwgbm93IGV4cGxhaW4gaG93IHRvIHdyaXRlIGEgdGVzdCBwcm9ncmFtLCBzdGFydGluZyBh
dCB0aGUgaW5kaXZpZHVhbAotYXNzZXJ0aW9uIGxldmVsIGFuZCBidWlsZGluZyB1cCB0byB0ZXN0
cyBhbmQgdGVzdCBjYXNlcy4KLQotIyBBc3NlcnRpb25zICMKLQotR29vZ2xlIFRlc3QgYXNzZXJ0
aW9ucyBhcmUgbWFjcm9zIHRoYXQgcmVzZW1ibGUgZnVuY3Rpb24gY2FsbHMuIFlvdSB0ZXN0IGEK
LWNsYXNzIG9yIGZ1bmN0aW9uIGJ5IG1ha2luZyBhc3NlcnRpb25zIGFib3V0IGl0cyBiZWhhdmlv
ci4gV2hlbiBhbiBhc3NlcnRpb24KLWZhaWxzLCBHb29nbGUgVGVzdCBwcmludHMgdGhlIGFzc2Vy
dGlvbidzIHNvdXJjZSBmaWxlIGFuZCBsaW5lIG51bWJlciBsb2NhdGlvbiwKLWFsb25nIHdpdGgg
YSBmYWlsdXJlIG1lc3NhZ2UuIFlvdSBtYXkgYWxzbyBzdXBwbHkgYSBjdXN0b20gZmFpbHVyZSBt
ZXNzYWdlCi13aGljaCB3aWxsIGJlIGFwcGVuZGVkIHRvIEdvb2dsZSBUZXN0J3MgbWVzc2FnZS4K
LQotVGhlIGFzc2VydGlvbnMgY29tZSBpbiBwYWlycyB0aGF0IHRlc3QgdGhlIHNhbWUgdGhpbmcg
YnV0IGhhdmUgZGlmZmVyZW50Ci1lZmZlY3RzIG9uIHRoZSBjdXJyZW50IGZ1bmN0aW9uLiBgQVNT
RVJUXypgIHZlcnNpb25zIGdlbmVyYXRlIGZhdGFsIGZhaWx1cmVzCi13aGVuIHRoZXkgZmFpbCwg
YW5kICoqYWJvcnQgdGhlIGN1cnJlbnQgZnVuY3Rpb24qKi4gYEVYUEVDVF8qYCB2ZXJzaW9ucyBn
ZW5lcmF0ZQotbm9uZmF0YWwgZmFpbHVyZXMsIHdoaWNoIGRvbid0IGFib3J0IHRoZSBjdXJyZW50
IGZ1bmN0aW9uLiBVc3VhbGx5IGBFWFBFQ1RfKmAKLWFyZSBwcmVmZXJyZWQsIGFzIHRoZXkgYWxs
b3cgbW9yZSB0aGFuIG9uZSBmYWlsdXJlcyB0byBiZSByZXBvcnRlZCBpbiBhIHRlc3QuCi1Ib3dl
dmVyLCB5b3Ugc2hvdWxkIHVzZSBgQVNTRVJUXypgIGlmIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0
byBjb250aW51ZSB3aGVuCi10aGUgYXNzZXJ0aW9uIGluIHF1ZXN0aW9uIGZhaWxzLgotCi1TaW5j
ZSBhIGZhaWxlZCBgQVNTRVJUXypgIHJldHVybnMgZnJvbSB0aGUgY3VycmVudCBmdW5jdGlvbiBp
bW1lZGlhdGVseSwKLXBvc3NpYmx5IHNraXBwaW5nIGNsZWFuLXVwIGNvZGUgdGhhdCBjb21lcyBh
ZnRlciBpdCwgaXQgbWF5IGNhdXNlIGEgc3BhY2UgbGVhay4KLURlcGVuZGluZyBvbiB0aGUgbmF0
dXJlIG9mIHRoZSBsZWFrLCBpdCBtYXkgb3IgbWF5IG5vdCBiZSB3b3J0aCBmaXhpbmcgLSBzbwot
a2VlcCB0aGlzIGluIG1pbmQgaWYgeW91IGdldCBhIGhlYXAgY2hlY2tlciBlcnJvciBpbiBhZGRp
dGlvbiB0byBhc3NlcnRpb24KLWVycm9ycy4KLQotVG8gcHJvdmlkZSBhIGN1c3RvbSBmYWlsdXJl
IG1lc3NhZ2UsIHNpbXBseSBzdHJlYW0gaXQgaW50byB0aGUgbWFjcm8gdXNpbmcgdGhlCi1gPDxg
IG9wZXJhdG9yLCBvciBhIHNlcXVlbmNlIG9mIHN1Y2ggb3BlcmF0b3JzLiBBbiBleGFtcGxlOgot
YGBgCi1BU1NFUlRfRVEoeC5zaXplKCksIHkuc2l6ZSgpKSA8PCAiVmVjdG9ycyB4IGFuZCB5IGFy
ZSBvZiB1bmVxdWFsIGxlbmd0aCI7Ci0KLWZvciAoaW50IGkgPSAwOyBpIDwgeC5zaXplKCk7ICsr
aSkgewotICBFWFBFQ1RfRVEoeFtpXSwgeVtpXSkgPDwgIlZlY3RvcnMgeCBhbmQgeSBkaWZmZXIg
YXQgaW5kZXggIiA8PCBpOwotfQotYGBgCi0KLUFueXRoaW5nIHRoYXQgY2FuIGJlIHN0cmVhbWVk
IHRvIGFuIGBvc3RyZWFtYCBjYW4gYmUgc3RyZWFtZWQgdG8gYW4gYXNzZXJ0aW9uCi1tYWNyby0t
aW4gcGFydGljdWxhciwgQyBzdHJpbmdzIGFuZCBgc3RyaW5nYCBvYmplY3RzLiBJZiBhIHdpZGUg
c3RyaW5nCi0oYHdjaGFyX3QqYCwgYFRDSEFSKmAgaW4gYFVOSUNPREVgIG1vZGUgb24gV2luZG93
cywgb3IgYHN0ZDo6d3N0cmluZ2ApIGlzCi1zdHJlYW1lZCB0byBhbiBhc3NlcnRpb24sIGl0IHdp
bGwgYmUgdHJhbnNsYXRlZCB0byBVVEYtOCB3aGVuIHByaW50ZWQuCi0KLSMjIEJhc2ljIEFzc2Vy
dGlvbnMgIyMKLQotVGhlc2UgYXNzZXJ0aW9ucyBkbyBiYXNpYyB0cnVlL2ZhbHNlIGNvbmRpdGlv
biB0ZXN0aW5nLgotCi18ICoqRmF0YWwgYXNzZXJ0aW9uKiogfCAqKk5vbmZhdGFsIGFzc2VydGlv
bioqIHwgKipWZXJpZmllcyoqIHwKLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tfAotfCBgQVNTRVJUX1RSVUUoYF9jb25kaXRpb25f
YClgOyAgfCBgRVhQRUNUX1RSVUUoYF9jb25kaXRpb25fYClgOyAgIHwgX2NvbmRpdGlvbl8gaXMg
dHJ1ZSB8Ci18IGBBU1NFUlRfRkFMU0UoYF9jb25kaXRpb25fYClgOyB8IGBFWFBFQ1RfRkFMU0Uo
YF9jb25kaXRpb25fYClgOyAgfCBfY29uZGl0aW9uXyBpcyBmYWxzZSB8Ci0KLVJlbWVtYmVyLCB3
aGVuIHRoZXkgZmFpbCwgYEFTU0VSVF8qYCB5aWVsZHMgYSBmYXRhbCBmYWlsdXJlIGFuZAotcmV0
dXJucyBmcm9tIHRoZSBjdXJyZW50IGZ1bmN0aW9uLCB3aGlsZSBgRVhQRUNUXypgIHlpZWxkcyBh
IG5vbmZhdGFsCi1mYWlsdXJlLCBhbGxvd2luZyB0aGUgZnVuY3Rpb24gdG8gY29udGludWUgcnVu
bmluZy4gSW4gZWl0aGVyIGNhc2UsIGFuCi1hc3NlcnRpb24gZmFpbHVyZSBtZWFucyBpdHMgY29u
dGFpbmluZyB0ZXN0IGZhaWxzLgotCi1fQXZhaWxhYmlsaXR5XzogTGludXgsIFdpbmRvd3MsIE1h
Yy4KLQotIyMgQmluYXJ5IENvbXBhcmlzb24gIyMKLQotVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBh
c3NlcnRpb25zIHRoYXQgY29tcGFyZSB0d28gdmFsdWVzLgotCi18ICoqRmF0YWwgYXNzZXJ0aW9u
KiogfCAqKk5vbmZhdGFsIGFzc2VydGlvbioqIHwgKipWZXJpZmllcyoqIHwKLXw6LS0tLS0tLS0t
LS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tfAotfGBB
U1NFUlRfRVEoYF92YWwxX2AsIGBfdmFsMl9gKTtgfGBFWFBFQ1RfRVEoYF92YWwxX2AsIGBfdmFs
Ml9gKTtgfCBfdmFsMV8gYD09YCBfdmFsMl8gfAotfGBBU1NFUlRfTkUoYF92YWwxX2AsIGBfdmFs
Ml9gKTtgfGBFWFBFQ1RfTkUoYF92YWwxX2AsIGBfdmFsMl9gKTtgfCBfdmFsMV8gYCE9YCBfdmFs
Ml8gfAotfGBBU1NFUlRfTFQoYF92YWwxX2AsIGBfdmFsMl9gKTtgfGBFWFBFQ1RfTFQoYF92YWwx
X2AsIGBfdmFsMl9gKTtgfCBfdmFsMV8gYDxgIF92YWwyXyB8Ci18YEFTU0VSVF9MRShgX3ZhbDFf
YCwgYF92YWwyX2ApO2B8YEVYUEVDVF9MRShgX3ZhbDFfYCwgYF92YWwyX2ApO2B8IF92YWwxXyBg
PD1gIF92YWwyXyB8Ci18YEFTU0VSVF9HVChgX3ZhbDFfYCwgYF92YWwyX2ApO2B8YEVYUEVDVF9H
VChgX3ZhbDFfYCwgYF92YWwyX2ApO2B8IF92YWwxXyBgPmAgX3ZhbDJfIHwKLXxgQVNTRVJUX0dF
KGBfdmFsMV9gLCBgX3ZhbDJfYCk7YHxgRVhQRUNUX0dFKGBfdmFsMV9gLCBgX3ZhbDJfYCk7YHwg
X3ZhbDFfIGA+PWAgX3ZhbDJfIHwKLQotSW4gdGhlIGV2ZW50IG9mIGEgZmFpbHVyZSwgR29vZ2xl
IFRlc3QgcHJpbnRzIGJvdGggX3ZhbDFfIGFuZCBfdmFsMl8uCi0KLVZhbHVlIGFyZ3VtZW50cyBt
dXN0IGJlIGNvbXBhcmFibGUgYnkgdGhlIGFzc2VydGlvbidzIGNvbXBhcmlzb24KLW9wZXJhdG9y
IG9yIHlvdSdsbCBnZXQgYSBjb21waWxlciBlcnJvci4gIFdlIHVzZWQgdG8gcmVxdWlyZSB0aGUK
LWFyZ3VtZW50cyB0byBzdXBwb3J0IHRoZSBgPDxgIG9wZXJhdG9yIGZvciBzdHJlYW1pbmcgdG8g
YW4gYG9zdHJlYW1gLAotYnV0IGl0J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBzaW5jZSB2MS42LjAg
KGlmIGA8PGAgaXMgc3VwcG9ydGVkLCBpdAotd2lsbCBiZSBjYWxsZWQgdG8gcHJpbnQgdGhlIGFy
Z3VtZW50cyB3aGVuIHRoZSBhc3NlcnRpb24gZmFpbHM7Ci1vdGhlcndpc2UgR29vZ2xlIFRlc3Qg
d2lsbCBhdHRlbXB0IHRvIHByaW50IHRoZW0gaW4gdGhlIGJlc3Qgd2F5IGl0Ci1jYW4uIEZvciBt
b3JlIGRldGFpbHMgYW5kIGhvdyB0byBjdXN0b21pemUgdGhlIHByaW50aW5nIG9mIHRoZQotYXJn
dW1lbnRzLCBzZWUgdGhpcyBHb29nbGUgTW9jayBbcmVjaXBlXSguLi8uLi9nb29nbGVtb2NrL2Rv
Y3MvQ29va0Jvb2subWQjdGVhY2hpbmctZ29vZ2xlLW1vY2staG93LXRvLXByaW50LXlvdXItdmFs
dWVzKS4pLgotCi1UaGVzZSBhc3NlcnRpb25zIGNhbiB3b3JrIHdpdGggYSB1c2VyLWRlZmluZWQg
dHlwZSwgYnV0IG9ubHkgaWYgeW91IGRlZmluZSB0aGUKLWNvcnJlc3BvbmRpbmcgY29tcGFyaXNv
biBvcGVyYXRvciAoZS5nLiBgPT1gLCBgPGAsIGV0YykuICBJZiB0aGUgY29ycmVzcG9uZGluZwot
b3BlcmF0b3IgaXMgZGVmaW5lZCwgcHJlZmVyIHVzaW5nIHRoZSBgQVNTRVJUXyooKWAgbWFjcm9z
IGJlY2F1c2UgdGhleSB3aWxsCi1wcmludCBvdXQgbm90IG9ubHkgdGhlIHJlc3VsdCBvZiB0aGUg
Y29tcGFyaXNvbiwgYnV0IHRoZSB0d28gb3BlcmFuZHMgYXMgd2VsbC4KLQotQXJndW1lbnRzIGFy
ZSBhbHdheXMgZXZhbHVhdGVkIGV4YWN0bHkgb25jZS4gVGhlcmVmb3JlLCBpdCdzIE9LIGZvciB0
aGUKLWFyZ3VtZW50cyB0byBoYXZlIHNpZGUgZWZmZWN0cy4gSG93ZXZlciwgYXMgd2l0aCBhbnkg
b3JkaW5hcnkgQy9DKysgZnVuY3Rpb24sCi10aGUgYXJndW1lbnRzJyBldmFsdWF0aW9uIG9yZGVy
IGlzIHVuZGVmaW5lZCAoaS5lLiB0aGUgY29tcGlsZXIgaXMgZnJlZSB0bwotY2hvb3NlIGFueSBv
cmRlcikgYW5kIHlvdXIgY29kZSBzaG91bGQgbm90IGRlcGVuZCBvbiBhbnkgcGFydGljdWxhciBh
cmd1bWVudAotZXZhbHVhdGlvbiBvcmRlci4KLQotYEFTU0VSVF9FUSgpYCBkb2VzIHBvaW50ZXIg
ZXF1YWxpdHkgb24gcG9pbnRlcnMuIElmIHVzZWQgb24gdHdvIEMgc3RyaW5ncywgaXQKLXRlc3Rz
IGlmIHRoZXkgYXJlIGluIHRoZSBzYW1lIG1lbW9yeSBsb2NhdGlvbiwgbm90IGlmIHRoZXkgaGF2
ZSB0aGUgc2FtZSB2YWx1ZS4KLVRoZXJlZm9yZSwgaWYgeW91IHdhbnQgdG8gY29tcGFyZSBDIHN0
cmluZ3MgKGUuZy4gYGNvbnN0IGNoYXIqYCkgYnkgdmFsdWUsIHVzZQotYEFTU0VSVF9TVFJFUSgp
YCAsIHdoaWNoIHdpbGwgYmUgZGVzY3JpYmVkIGxhdGVyIG9uLiBJbiBwYXJ0aWN1bGFyLCB0byBh
c3NlcnQKLXRoYXQgYSBDIHN0cmluZyBpcyBgTlVMTGAsIHVzZSBgQVNTRVJUX1NUUkVRKE5VTEws
IGNfc3RyaW5nKWAgLiBIb3dldmVyLCB0bwotY29tcGFyZSB0d28gYHN0cmluZ2Agb2JqZWN0cywg
eW91IHNob3VsZCB1c2UgYEFTU0VSVF9FUWAuCi0KLU1hY3JvcyBpbiB0aGlzIHNlY3Rpb24gd29y
ayB3aXRoIGJvdGggbmFycm93IGFuZCB3aWRlIHN0cmluZyBvYmplY3RzIChgc3RyaW5nYAotYW5k
IGB3c3RyaW5nYCkuCi0KLV9BdmFpbGFiaWxpdHlfOiBMaW51eCwgV2luZG93cywgTWFjLgotCi1f
SGlzdG9yaWNhbCBub3RlXzogQmVmb3JlIEZlYnJ1YXJ5IDIwMTYgYCpfRVFgIGhhZCBhIGNvbnZl
bnRpb24gb2YgY2FsbGluZyBpdCBhcwotYEFTU0VSVF9FUShleHBlY3RlZCwgYWN0dWFsKWAsIHNv
IGxvdHMgb2YgZXhpc3RpbmcgY29kZSB1c2VzIHRoaXMgb3JkZXIuCi1Ob3cgYCpfRVFgIHRyZWF0
cyBib3RoIHBhcmFtZXRlcnMgaW4gdGhlIHNhbWUgd2F5LgotCi0jIyBTdHJpbmcgQ29tcGFyaXNv
biAjIwotCi1UaGUgYXNzZXJ0aW9ucyBpbiB0aGlzIGdyb3VwIGNvbXBhcmUgdHdvICoqQyBzdHJp
bmdzKiouIElmIHlvdSB3YW50IHRvIGNvbXBhcmUKLXR3byBgc3RyaW5nYCBvYmplY3RzLCB1c2Ug
YEVYUEVDVF9FUWAsIGBFWFBFQ1RfTkVgLCBhbmQgZXRjIGluc3RlYWQuCi0KLXwgKipGYXRhbCBh
c3NlcnRpb24qKiB8ICoqTm9uZmF0YWwgYXNzZXJ0aW9uKiogfCAqKlZlcmlmaWVzKiogfAotfDot
LS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0t
LS18Ci18IGBBU1NFUlRfU1RSRVEoYF9zdHIxX2AsIGBfc3RyMl9gKTtgICAgIHwgYEVYUEVDVF9T
VFJFUShgX3N0cjFfYCwgYF9zdHIyX2ApO2AgICAgIHwgdGhlIHR3byBDIHN0cmluZ3MgaGF2ZSB0
aGUgc2FtZSBjb250ZW50IHwKLXwgYEFTU0VSVF9TVFJORShgX3N0cjFfYCwgYF9zdHIyX2ApO2Ag
ICAgfCBgRVhQRUNUX1NUUk5FKGBfc3RyMV9gLCBgX3N0cjJfYCk7YCAgICAgfCB0aGUgdHdvIEMg
c3RyaW5ncyBoYXZlIGRpZmZlcmVudCBjb250ZW50IHwKLXwgYEFTU0VSVF9TVFJDQVNFRVEoYF9z
dHIxX2AsIGBfc3RyMl9gKTtgfCBgRVhQRUNUX1NUUkNBU0VFUShgX3N0cjFfYCwgYF9zdHIyX2Ap
O2AgfCB0aGUgdHdvIEMgc3RyaW5ncyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQsIGlnbm9yaW5nIGNh
c2UgfAotfCBgQVNTRVJUX1NUUkNBU0VORShgX3N0cjFfYCwgYF9zdHIyX2ApO2B8IGBFWFBFQ1Rf
U1RSQ0FTRU5FKGBfc3RyMV9gLCBgX3N0cjJfYCk7YCB8IHRoZSB0d28gQyBzdHJpbmdzIGhhdmUg
ZGlmZmVyZW50IGNvbnRlbnQsIGlnbm9yaW5nIGNhc2UgfAotCi1Ob3RlIHRoYXQgIkNBU0UiIGlu
IGFuIGFzc2VydGlvbiBuYW1lIG1lYW5zIHRoYXQgY2FzZSBpcyBpZ25vcmVkLgotCi1gKlNUUkVR
KmAgYW5kIGAqU1RSTkUqYCBhbHNvIGFjY2VwdCB3aWRlIEMgc3RyaW5ncyAoYHdjaGFyX3QqYCku
IElmIGEKLWNvbXBhcmlzb24gb2YgdHdvIHdpZGUgc3RyaW5ncyBmYWlscywgdGhlaXIgdmFsdWVz
IHdpbGwgYmUgcHJpbnRlZCBhcyBVVEYtOAotbmFycm93IHN0cmluZ3MuCi0KLUEgYE5VTExgIHBv
aW50ZXIgYW5kIGFuIGVtcHR5IHN0cmluZyBhcmUgY29uc2lkZXJlZCBfZGlmZmVyZW50Xy4KLQot
X0F2YWlsYWJpbGl0eV86IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLVNlZSBhbHNvOiBGb3IgbW9y
ZSBzdHJpbmcgY29tcGFyaXNvbiB0cmlja3MgKHN1YnN0cmluZywgcHJlZml4LCBzdWZmaXgsIGFu
ZAotcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nLCBmb3IgZXhhbXBsZSksIHNlZSB0aGUgW0Fk
dmFuY2VkIEdvb2dsZSBUZXN0IEd1aWRlXShBZHZhbmNlZEd1aWRlLm1kKS4KLQotIyBTaW1wbGUg
VGVzdHMgIwotCi1UbyBjcmVhdGUgYSB0ZXN0OgotICAxLiBVc2UgdGhlIGBURVNUKClgIG1hY3Jv
IHRvIGRlZmluZSBhbmQgbmFtZSBhIHRlc3QgZnVuY3Rpb24sIFRoZXNlIGFyZSBvcmRpbmFyeSBD
KysgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgcmV0dXJuIGEgdmFsdWUuCi0gIDEuIEluIHRoaXMgZnVu
Y3Rpb24sIGFsb25nIHdpdGggYW55IHZhbGlkIEMrKyBzdGF0ZW1lbnRzIHlvdSB3YW50IHRvIGlu
Y2x1ZGUsIHVzZSB0aGUgdmFyaW91cyBHb29nbGUgVGVzdCBhc3NlcnRpb25zIHRvIGNoZWNrIHZh
bHVlcy4KLSAgMS4gVGhlIHRlc3QncyByZXN1bHQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXNzZXJ0
aW9uczsgaWYgYW55IGFzc2VydGlvbiBpbiB0aGUgdGVzdCBmYWlscyAoZWl0aGVyIGZhdGFsbHkg
b3Igbm9uLWZhdGFsbHkpLCBvciBpZiB0aGUgdGVzdCBjcmFzaGVzLCB0aGUgZW50aXJlIHRlc3Qg
ZmFpbHMuIE90aGVyd2lzZSwgaXQgc3VjY2VlZHMuCi0KLWBgYAotVEVTVCh0ZXN0X2Nhc2VfbmFt
ZSwgdGVzdF9uYW1lKSB7Ci0gLi4uIHRlc3QgYm9keSAuLi4KLX0KLWBgYAotCi0KLWBURVNUKClg
IGFyZ3VtZW50cyBnbyBmcm9tIGdlbmVyYWwgdG8gc3BlY2lmaWMuIFRoZSBfZmlyc3RfIGFyZ3Vt
ZW50IGlzIHRoZQotbmFtZSBvZiB0aGUgdGVzdCBjYXNlLCBhbmQgdGhlIF9zZWNvbmRfIGFyZ3Vt
ZW50IGlzIHRoZSB0ZXN0J3MgbmFtZSB3aXRoaW4gdGhlCi10ZXN0IGNhc2UuIEJvdGggbmFtZXMg
bXVzdCBiZSB2YWxpZCBDKysgaWRlbnRpZmllcnMsIGFuZCB0aGV5IHNob3VsZCBub3QgY29udGFp
biB1bmRlcnNjb3JlIChgX2ApLiBBIHRlc3QncyBfZnVsbCBuYW1lXyBjb25zaXN0cyBvZiBpdHMg
Y29udGFpbmluZyB0ZXN0IGNhc2UgYW5kIGl0cwotaW5kaXZpZHVhbCBuYW1lLiBUZXN0cyBmcm9t
IGRpZmZlcmVudCB0ZXN0IGNhc2VzIGNhbiBoYXZlIHRoZSBzYW1lIGluZGl2aWR1YWwKLW5hbWUu
Ci0KLUZvciBleGFtcGxlLCBsZXQncyB0YWtlIGEgc2ltcGxlIGludGVnZXIgZnVuY3Rpb246Ci1g
YGAKLWludCBGYWN0b3JpYWwoaW50IG4pOyAvLyBSZXR1cm5zIHRoZSBmYWN0b3JpYWwgb2Ygbgot
YGBgCi0KLUEgdGVzdCBjYXNlIGZvciB0aGlzIGZ1bmN0aW9uIG1pZ2h0IGxvb2sgbGlrZToKLWBg
YAotLy8gVGVzdHMgZmFjdG9yaWFsIG9mIDAuCi1URVNUKEZhY3RvcmlhbFRlc3QsIEhhbmRsZXNa
ZXJvSW5wdXQpIHsKLSAgRVhQRUNUX0VRKDEsIEZhY3RvcmlhbCgwKSk7Ci19Ci0KLS8vIFRlc3Rz
IGZhY3RvcmlhbCBvZiBwb3NpdGl2ZSBudW1iZXJzLgotVEVTVChGYWN0b3JpYWxUZXN0LCBIYW5k
bGVzUG9zaXRpdmVJbnB1dCkgewotICBFWFBFQ1RfRVEoMSwgRmFjdG9yaWFsKDEpKTsKLSAgRVhQ
RUNUX0VRKDIsIEZhY3RvcmlhbCgyKSk7Ci0gIEVYUEVDVF9FUSg2LCBGYWN0b3JpYWwoMykpOwot
ICBFWFBFQ1RfRVEoNDAzMjAsIEZhY3RvcmlhbCg4KSk7Ci19Ci1gYGAKLQotR29vZ2xlIFRlc3Qg
Z3JvdXBzIHRoZSB0ZXN0IHJlc3VsdHMgYnkgdGVzdCBjYXNlcywgc28gbG9naWNhbGx5LXJlbGF0
ZWQgdGVzdHMKLXNob3VsZCBiZSBpbiB0aGUgc2FtZSB0ZXN0IGNhc2U7IGluIG90aGVyIHdvcmRz
LCB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlaXIKLWBURVNUKClgIHNob3VsZCBiZSB0aGUgc2Ft
ZS4gSW4gdGhlIGFib3ZlIGV4YW1wbGUsIHdlIGhhdmUgdHdvIHRlc3RzLAotYEhhbmRsZXNaZXJv
SW5wdXRgIGFuZCBgSGFuZGxlc1Bvc2l0aXZlSW5wdXRgLCB0aGF0IGJlbG9uZyB0byB0aGUgc2Ft
ZSB0ZXN0Ci1jYXNlIGBGYWN0b3JpYWxUZXN0YC4KLQotX0F2YWlsYWJpbGl0eV86IExpbnV4LCBX
aW5kb3dzLCBNYWMuCi0KLSMgVGVzdCBGaXh0dXJlczogVXNpbmcgdGhlIFNhbWUgRGF0YSBDb25m
aWd1cmF0aW9uIGZvciBNdWx0aXBsZSBUZXN0cyAjCi0KLUlmIHlvdSBmaW5kIHlvdXJzZWxmIHdy
aXRpbmcgdHdvIG9yIG1vcmUgdGVzdHMgdGhhdCBvcGVyYXRlIG9uIHNpbWlsYXIgZGF0YSwKLXlv
dSBjYW4gdXNlIGEgX3Rlc3QgZml4dHVyZV8uIEl0IGFsbG93cyB5b3UgdG8gcmV1c2UgdGhlIHNh
bWUgY29uZmlndXJhdGlvbiBvZgotb2JqZWN0cyBmb3Igc2V2ZXJhbCBkaWZmZXJlbnQgdGVzdHMu
Ci0KLVRvIGNyZWF0ZSBhIGZpeHR1cmUsIGp1c3Q6Ci0gIDEuIERlcml2ZSBhIGNsYXNzIGZyb20g
YDo6dGVzdGluZzo6VGVzdGAgLiBTdGFydCBpdHMgYm9keSB3aXRoIGBwcm90ZWN0ZWQ6YCBvciBg
cHVibGljOmAgYXMgd2UnbGwgd2FudCB0byBhY2Nlc3MgZml4dHVyZSBtZW1iZXJzIGZyb20gc3Vi
LWNsYXNzZXMuCi0gIDEuIEluc2lkZSB0aGUgY2xhc3MsIGRlY2xhcmUgYW55IG9iamVjdHMgeW91
IHBsYW4gdG8gdXNlLgotICAxLiBJZiBuZWNlc3NhcnksIHdyaXRlIGEgZGVmYXVsdCBjb25zdHJ1
Y3RvciBvciBgU2V0VXAoKWAgZnVuY3Rpb24gdG8gcHJlcGFyZSB0aGUgb2JqZWN0cyBmb3IgZWFj
aCB0ZXN0LiBBIGNvbW1vbiBtaXN0YWtlIGlzIHRvIHNwZWxsIGBTZXRVcCgpYCBhcyBgU2V0dXAo
KWAgd2l0aCBhIHNtYWxsIGB1YCAtIGRvbid0IGxldCB0aGF0IGhhcHBlbiB0byB5b3UuCi0gIDEu
IElmIG5lY2Vzc2FyeSwgd3JpdGUgYSBkZXN0cnVjdG9yIG9yIGBUZWFyRG93bigpYCBmdW5jdGlv
biB0byByZWxlYXNlIGFueSByZXNvdXJjZXMgeW91IGFsbG9jYXRlZCBpbiBgU2V0VXAoKWAgLiBU
byBsZWFybiB3aGVuIHlvdSBzaG91bGQgdXNlIHRoZSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIGFu
ZCB3aGVuIHlvdSBzaG91bGQgdXNlIGBTZXRVcCgpL1RlYXJEb3duKClgLCByZWFkIHRoaXMgW0ZB
USBlbnRyeV0oRkFRLm1kI3Nob3VsZC1pLXVzZS10aGUtY29uc3RydWN0b3JkZXN0cnVjdG9yLW9m
LXRoZS10ZXN0LWZpeHR1cmUtb3ItdGhlLXNldC11cHRlYXItZG93bi1mdW5jdGlvbikuCi0gIDEu
IElmIG5lZWRlZCwgZGVmaW5lIHN1YnJvdXRpbmVzIGZvciB5b3VyIHRlc3RzIHRvIHNoYXJlLgot
Ci1XaGVuIHVzaW5nIGEgZml4dHVyZSwgdXNlIGBURVNUX0YoKWAgaW5zdGVhZCBvZiBgVEVTVCgp
YCBhcyBpdCBhbGxvd3MgeW91IHRvCi1hY2Nlc3Mgb2JqZWN0cyBhbmQgc3Vicm91dGluZXMgaW4g
dGhlIHRlc3QgZml4dHVyZToKLWBgYAotVEVTVF9GKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUp
IHsKLSAuLi4gdGVzdCBib2R5IC4uLgotfQotYGBgCi0KLUxpa2UgYFRFU1QoKWAsIHRoZSBmaXJz
dCBhcmd1bWVudCBpcyB0aGUgdGVzdCBjYXNlIG5hbWUsIGJ1dCBmb3IgYFRFU1RfRigpYAotdGhp
cyBtdXN0IGJlIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MuIFlvdSd2ZSBwcm9i
YWJseSBndWVzc2VkOiBgX0ZgCi1pcyBmb3IgZml4dHVyZS4KLQotVW5mb3J0dW5hdGVseSwgdGhl
IEMrKyBtYWNybyBzeXN0ZW0gZG9lcyBub3QgYWxsb3cgdXMgdG8gY3JlYXRlIGEgc2luZ2xlIG1h
Y3JvCi10aGF0IGNhbiBoYW5kbGUgYm90aCB0eXBlcyBvZiB0ZXN0cy4gVXNpbmcgdGhlIHdyb25n
IG1hY3JvIGNhdXNlcyBhIGNvbXBpbGVyCi1lcnJvci4KLQotQWxzbywgeW91IG11c3QgZmlyc3Qg
ZGVmaW5lIGEgdGVzdCBmaXh0dXJlIGNsYXNzIGJlZm9yZSB1c2luZyBpdCBpbiBhCi1gVEVTVF9G
KClgLCBvciB5b3UnbGwgZ2V0IHRoZSBjb21waWxlciBlcnJvciAiYHZpcnR1YWwgb3V0c2lkZSBj
bGFzcwotZGVjbGFyYXRpb25gIi4KLQotRm9yIGVhY2ggdGVzdCBkZWZpbmVkIHdpdGggYFRFU1Rf
RigpYCwgR29vZ2xlIFRlc3Qgd2lsbDoKLSAgMS4gQ3JlYXRlIGEgX2ZyZXNoXyB0ZXN0IGZpeHR1
cmUgYXQgcnVudGltZQotICAxLiBJbW1lZGlhdGVseSBpbml0aWFsaXplIGl0IHZpYSBgU2V0VXAo
KWAKLSAgMS4gUnVuIHRoZSB0ZXN0Ci0gIDEuIENsZWFuIHVwIGJ5IGNhbGxpbmcgYFRlYXJEb3du
KClgCi0gIDEuIERlbGV0ZSB0aGUgdGVzdCBmaXh0dXJlLiAgTm90ZSB0aGF0IGRpZmZlcmVudCB0
ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgaGF2ZSBkaWZmZXJlbnQgdGVzdCBmaXh0dXJlIG9i
amVjdHMsIGFuZCBHb29nbGUgVGVzdCBhbHdheXMgZGVsZXRlcyBhIHRlc3QgZml4dHVyZSBiZWZv
cmUgaXQgY3JlYXRlcyB0aGUgbmV4dCBvbmUuIEdvb2dsZSBUZXN0IGRvZXMgbm90IHJldXNlIHRo
ZSBzYW1lIHRlc3QgZml4dHVyZSBmb3IgbXVsdGlwbGUgdGVzdHMuIEFueSBjaGFuZ2VzIG9uZSB0
ZXN0IG1ha2VzIHRvIHRoZSBmaXh0dXJlIGRvIG5vdCBhZmZlY3Qgb3RoZXIgdGVzdHMuCi0KLUFz
IGFuIGV4YW1wbGUsIGxldCdzIHdyaXRlIHRlc3RzIGZvciBhIEZJRk8gcXVldWUgY2xhc3MgbmFt
ZWQgYFF1ZXVlYCwgd2hpY2gKLWhhcyB0aGUgZm9sbG93aW5nIGludGVyZmFjZToKLWBgYAotdGVt
cGxhdGUgPHR5cGVuYW1lIEU+IC8vIEUgaXMgdGhlIGVsZW1lbnQgdHlwZS4KLWNsYXNzIFF1ZXVl
IHsKLSBwdWJsaWM6Ci0gIFF1ZXVlKCk7Ci0gIHZvaWQgRW5xdWV1ZShjb25zdCBFJiBlbGVtZW50
KTsKLSAgRSogRGVxdWV1ZSgpOyAvLyBSZXR1cm5zIE5VTEwgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5
LgotICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotICAuLi4KLX07Ci1gYGAKLQotRmlyc3QsIGRlZmlu
ZSBhIGZpeHR1cmUgY2xhc3MuIEJ5IGNvbnZlbnRpb24sIHlvdSBzaG91bGQgZ2l2ZSBpdCB0aGUg
bmFtZQotYEZvb1Rlc3RgIHdoZXJlIGBGb29gIGlzIHRoZSBjbGFzcyBiZWluZyB0ZXN0ZWQuCi1g
YGAKLWNsYXNzIFF1ZXVlVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3Rl
ZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHExXy5FbnF1ZXVlKDEpOwotICAgIHEy
Xy5FbnF1ZXVlKDIpOwotICAgIHEyXy5FbnF1ZXVlKDMpOwotICB9Ci0KLSAgLy8gdmlydHVhbCB2
b2lkIFRlYXJEb3duKCkge30KLQotICBRdWV1ZTxpbnQ+IHEwXzsKLSAgUXVldWU8aW50PiBxMV87
Ci0gIFF1ZXVlPGludD4gcTJfOwotfTsKLWBgYAotCi1JbiB0aGlzIGNhc2UsIGBUZWFyRG93bigp
YCBpcyBub3QgbmVlZGVkIHNpbmNlIHdlIGRvbid0IGhhdmUgdG8gY2xlYW4gdXAgYWZ0ZXIKLWVh
Y2ggdGVzdCwgb3RoZXIgdGhhbiB3aGF0J3MgYWxyZWFkeSBkb25lIGJ5IHRoZSBkZXN0cnVjdG9y
LgotCi1Ob3cgd2UnbGwgd3JpdGUgdGVzdHMgdXNpbmcgYFRFU1RfRigpYCBhbmQgdGhpcyBmaXh0
dXJlLgotYGBgCi1URVNUX0YoUXVldWVUZXN0LCBJc0VtcHR5SW5pdGlhbGx5KSB7Ci0gIEVYUEVD
VF9FUSgwLCBxMF8uc2l6ZSgpKTsKLX0KLQotVEVTVF9GKFF1ZXVlVGVzdCwgRGVxdWV1ZVdvcmtz
KSB7Ci0gIGludCogbiA9IHEwXy5EZXF1ZXVlKCk7Ci0gIEVYUEVDVF9FUShOVUxMLCBuKTsKLQot
ICBuID0gcTFfLkRlcXVldWUoKTsKLSAgQVNTRVJUX1RSVUUobiAhPSBOVUxMKTsKLSAgRVhQRUNU
X0VRKDEsICpuKTsKLSAgRVhQRUNUX0VRKDAsIHExXy5zaXplKCkpOwotICBkZWxldGUgbjsKLQot
ICBuID0gcTJfLkRlcXVldWUoKTsKLSAgQVNTRVJUX1RSVUUobiAhPSBOVUxMKTsKLSAgRVhQRUNU
X0VRKDIsICpuKTsKLSAgRVhQRUNUX0VRKDEsIHEyXy5zaXplKCkpOwotICBkZWxldGUgbjsKLX0K
LWBgYAotCi1UaGUgYWJvdmUgdXNlcyBib3RoIGBBU1NFUlRfKmAgYW5kIGBFWFBFQ1RfKmAgYXNz
ZXJ0aW9ucy4gVGhlIHJ1bGUgb2YgdGh1bWIgaXMKLXRvIHVzZSBgRVhQRUNUXypgIHdoZW4geW91
IHdhbnQgdGhlIHRlc3QgdG8gY29udGludWUgdG8gcmV2ZWFsIG1vcmUgZXJyb3JzCi1hZnRlciB0
aGUgYXNzZXJ0aW9uIGZhaWx1cmUsIGFuZCB1c2UgYEFTU0VSVF8qYCB3aGVuIGNvbnRpbnVpbmcg
YWZ0ZXIgZmFpbHVyZQotZG9lc24ndCBtYWtlIHNlbnNlLiBGb3IgZXhhbXBsZSwgdGhlIHNlY29u
ZCBhc3NlcnRpb24gaW4gdGhlIGBEZXF1ZXVlYCB0ZXN0IGlzCi1gQVNTRVJUX1RSVUUobiAhPSBO
VUxMKWAsIGFzIHdlIG5lZWQgdG8gZGVyZWZlcmVuY2UgdGhlIHBvaW50ZXIgYG5gIGxhdGVyLAot
d2hpY2ggd291bGQgbGVhZCB0byBhIHNlZ2ZhdWx0IHdoZW4gYG5gIGlzIGBOVUxMYC4KLQotV2hl
biB0aGVzZSB0ZXN0cyBydW4sIHRoZSBmb2xsb3dpbmcgaGFwcGVuczoKLSAgMS4gR29vZ2xlIFRl
c3QgY29uc3RydWN0cyBhIGBRdWV1ZVRlc3RgIG9iamVjdCAobGV0J3MgY2FsbCBpdCBgdDFgICku
Ci0gIDEuIGB0MS5TZXRVcCgpYCBpbml0aWFsaXplcyBgdDFgIC4KLSAgMS4gVGhlIGZpcnN0IHRl
c3QgKCBgSXNFbXB0eUluaXRpYWxseWAgKSBydW5zIG9uIGB0MWAgLgotICAxLiBgdDEuVGVhckRv
d24oKWAgY2xlYW5zIHVwIGFmdGVyIHRoZSB0ZXN0IGZpbmlzaGVzLgotICAxLiBgdDFgIGlzIGRl
c3RydWN0ZWQuCi0gIDEuIFRoZSBhYm92ZSBzdGVwcyBhcmUgcmVwZWF0ZWQgb24gYW5vdGhlciBg
UXVldWVUZXN0YCBvYmplY3QsIHRoaXMgdGltZSBydW5uaW5nIHRoZSBgRGVxdWV1ZVdvcmtzYCB0
ZXN0LgotCi1fQXZhaWxhYmlsaXR5XzogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotX05vdGVfOiBH
b29nbGUgVGVzdCBhdXRvbWF0aWNhbGx5IHNhdmVzIGFsbCBfR29vZ2xlIFRlc3RfIGZsYWdzIHdo
ZW4gYSB0ZXN0Ci1vYmplY3QgaXMgY29uc3RydWN0ZWQsIGFuZCByZXN0b3JlcyB0aGVtIHdoZW4g
aXQgaXMgZGVzdHJ1Y3RlZC4KLQotIyBJbnZva2luZyB0aGUgVGVzdHMgIwotCi1gVEVTVCgpYCBh
bmQgYFRFU1RfRigpYCBpbXBsaWNpdGx5IHJlZ2lzdGVyIHRoZWlyIHRlc3RzIHdpdGggR29vZ2xl
IFRlc3QuIFNvLCB1bmxpa2Ugd2l0aCBtYW55IG90aGVyIEMrKyB0ZXN0aW5nIGZyYW1ld29ya3Ms
IHlvdSBkb24ndCBoYXZlIHRvIHJlLWxpc3QgYWxsIHlvdXIgZGVmaW5lZCB0ZXN0cyBpbiBvcmRl
ciB0byBydW4gdGhlbS4KLQotQWZ0ZXIgZGVmaW5pbmcgeW91ciB0ZXN0cywgeW91IGNhbiBydW4g
dGhlbSB3aXRoIGBSVU5fQUxMX1RFU1RTKClgICwgd2hpY2ggcmV0dXJucyBgMGAgaWYgYWxsIHRo
ZSB0ZXN0cyBhcmUgc3VjY2Vzc2Z1bCwgb3IgYDFgIG90aGVyd2lzZS4gTm90ZSB0aGF0IGBSVU5f
QUxMX1RFU1RTKClgIHJ1bnMgX2FsbCB0ZXN0c18gaW4geW91ciBsaW5rIHVuaXQgLS0gdGhleSBj
YW4gYmUgZnJvbSBkaWZmZXJlbnQgdGVzdCBjYXNlcywgb3IgZXZlbiBkaWZmZXJlbnQgc291cmNl
IGZpbGVzLgotCi1XaGVuIGludm9rZWQsIHRoZSBgUlVOX0FMTF9URVNUUygpYCBtYWNybzoKLSAg
MS4gU2F2ZXMgdGhlIHN0YXRlIG9mIGFsbCAgR29vZ2xlIFRlc3QgZmxhZ3MuCi0gIDEuIENyZWF0
ZXMgYSB0ZXN0IGZpeHR1cmUgb2JqZWN0IGZvciB0aGUgZmlyc3QgdGVzdC4KLSAgMS4gSW5pdGlh
bGl6ZXMgaXQgdmlhIGBTZXRVcCgpYC4KLSAgMS4gUnVucyB0aGUgdGVzdCBvbiB0aGUgZml4dHVy
ZSBvYmplY3QuCi0gIDEuIENsZWFucyB1cCB0aGUgZml4dHVyZSB2aWEgYFRlYXJEb3duKClgLgot
ICAxLiBEZWxldGVzIHRoZSBmaXh0dXJlLgotICAxLiBSZXN0b3JlcyB0aGUgc3RhdGUgb2YgYWxs
IEdvb2dsZSBUZXN0IGZsYWdzLgotICAxLiBSZXBlYXRzIHRoZSBhYm92ZSBzdGVwcyBmb3IgdGhl
IG5leHQgdGVzdCwgdW50aWwgYWxsIHRlc3RzIGhhdmUgcnVuLgotCi1JbiBhZGRpdGlvbiwgaWYg
dGhlIHRlc3QgZml4dHVyZSdzIGNvbnN0cnVjdG9yIGdlbmVyYXRlcyBhIGZhdGFsIGZhaWx1cmUg
aW4KLXN0ZXAgMiwgdGhlcmUgaXMgbm8gcG9pbnQgZm9yIHN0ZXAgMyAtIDUgYW5kIHRoZXkgYXJl
IHRodXMgc2tpcHBlZC4gU2ltaWxhcmx5LAotaWYgc3RlcCAzIGdlbmVyYXRlcyBhIGZhdGFsIGZh
aWx1cmUsIHN0ZXAgNCB3aWxsIGJlIHNraXBwZWQuCi0KLV9JbXBvcnRhbnRfOiBZb3UgbXVzdCBu
b3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAsIG9yIGBnY2Ng
Ci13aWxsIGdpdmUgeW91IGEgY29tcGlsZXIgZXJyb3IuIFRoZSByYXRpb25hbGUgZm9yIHRoaXMg
ZGVzaWduIGlzIHRoYXQgdGhlCi1hdXRvbWF0ZWQgdGVzdGluZyBzZXJ2aWNlIGRldGVybWluZXMg
d2hldGhlciBhIHRlc3QgaGFzIHBhc3NlZCBiYXNlZCBvbiBpdHMKLWV4aXQgY29kZSwgbm90IG9u
IGl0cyBzdGRvdXQvc3RkZXJyIG91dHB1dDsgdGh1cyB5b3VyIGBtYWluKClgIGZ1bmN0aW9uIG11
c3QKLXJldHVybiB0aGUgdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAuCi0KLUFsc28sIHlvdSBz
aG91bGQgY2FsbCBgUlVOX0FMTF9URVNUUygpYCBvbmx5ICoqb25jZSoqLiBDYWxsaW5nIGl0IG1v
cmUgdGhhbiBvbmNlCi1jb25mbGljdHMgd2l0aCBzb21lIGFkdmFuY2VkIEdvb2dsZSBUZXN0IGZl
YXR1cmVzIChlLmcuIHRocmVhZC1zYWZlIGRlYXRoCi10ZXN0cykgYW5kIHRodXMgaXMgbm90IHN1
cHBvcnRlZC4KLQotX0F2YWlsYWJpbGl0eV86IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMgV3Jp
dGluZyB0aGUgbWFpbigpIEZ1bmN0aW9uICMKLQotWW91IGNhbiBzdGFydCBmcm9tIHRoaXMgYm9p
bGVycGxhdGU6Ci1gYGAKLSNpbmNsdWRlICJ0aGlzL3BhY2thZ2UvZm9vLmgiCi0jaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QuaCIKLQotbmFtZXNwYWNlIHsKLQotLy8gVGhlIGZpeHR1cmUgZm9yIHRlc3Rp
bmcgY2xhc3MgRm9vLgotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qgewot
IHByb3RlY3RlZDoKLSAgLy8gWW91IGNhbiByZW1vdmUgYW55IG9yIGFsbCBvZiB0aGUgZm9sbG93
aW5nIGZ1bmN0aW9ucyBpZiBpdHMgYm9keQotICAvLyBpcyBlbXB0eS4KLQotICBGb29UZXN0KCkg
ewotICAgIC8vIFlvdSBjYW4gZG8gc2V0LXVwIHdvcmsgZm9yIGVhY2ggdGVzdCBoZXJlLgotICB9
Ci0KLSAgdmlydHVhbCB+Rm9vVGVzdCgpIHsKLSAgICAvLyBZb3UgY2FuIGRvIGNsZWFuLXVwIHdv
cmsgdGhhdCBkb2Vzbid0IHRocm93IGV4Y2VwdGlvbnMgaGVyZS4KLSAgfQotCi0gIC8vIElmIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBhcmUgbm90IGVub3VnaCBmb3Igc2V0dGluZyB1
cAotICAvLyBhbmQgY2xlYW5pbmcgdXAgZWFjaCB0ZXN0LCB5b3UgY2FuIGRlZmluZSB0aGUgZm9s
bG93aW5nIG1ldGhvZHM6Ci0KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIC8vIENvZGUg
aGVyZSB3aWxsIGJlIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgY29uc3RydWN0b3IgKHJp
Z2h0Ci0gICAgLy8gYmVmb3JlIGVhY2ggdGVzdCkuCi0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVh
ckRvd24oKSB7Ci0gICAgLy8gQ29kZSBoZXJlIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFm
dGVyIGVhY2ggdGVzdCAocmlnaHQKLSAgICAvLyBiZWZvcmUgdGhlIGRlc3RydWN0b3IpLgotICB9
Ci0KLSAgLy8gT2JqZWN0cyBkZWNsYXJlZCBoZXJlIGNhbiBiZSB1c2VkIGJ5IGFsbCB0ZXN0cyBp
biB0aGUgdGVzdCBjYXNlIGZvciBGb28uCi19OwotCi0vLyBUZXN0cyB0aGF0IHRoZSBGb286OkJh
cigpIG1ldGhvZCBkb2VzIEFiYy4KLVRFU1RfRihGb29UZXN0LCBNZXRob2RCYXJEb2VzQWJjKSB7
Ci0gIGNvbnN0IHN0cmluZyBpbnB1dF9maWxlcGF0aCA9ICJ0aGlzL3BhY2thZ2UvdGVzdGRhdGEv
bXlpbnB1dGZpbGUuZGF0IjsKLSAgY29uc3Qgc3RyaW5nIG91dHB1dF9maWxlcGF0aCA9ICJ0aGlz
L3BhY2thZ2UvdGVzdGRhdGEvbXlvdXRwdXRmaWxlLmRhdCI7Ci0gIEZvbyBmOwotICBFWFBFQ1Rf
RVEoMCwgZi5CYXIoaW5wdXRfZmlsZXBhdGgsIG91dHB1dF9maWxlcGF0aCkpOwotfQotCi0vLyBU
ZXN0cyB0aGF0IEZvbyBkb2VzIFh5ei4KLVRFU1RfRihGb29UZXN0LCBEb2VzWHl6KSB7Ci0gIC8v
IEV4ZXJjaXNlcyB0aGUgWHl6IGZlYXR1cmUgb2YgRm9vLgotfQotCi19ICAvLyBuYW1lc3BhY2UK
LQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIDo6dGVzdGluZzo6SW5pdEdv
b2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQotYGBg
Ci0KLVRoZSBgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgpYCBmdW5jdGlvbiBwYXJzZXMgdGhl
IGNvbW1hbmQgbGluZSBmb3IgR29vZ2xlCi1UZXN0IGZsYWdzLCBhbmQgcmVtb3ZlcyBhbGwgcmVj
b2duaXplZCBmbGFncy4gVGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8gY29udHJvbCBhCi10ZXN0IHBy
b2dyYW0ncyBiZWhhdmlvciB2aWEgdmFyaW91cyBmbGFncywgd2hpY2ggd2UnbGwgY292ZXIgaW4g
W0FkdmFuY2VkR3VpZGVdKEFkdmFuY2VkR3VpZGUubWQpLgotWW91IG11c3QgY2FsbCB0aGlzIGZ1
bmN0aW9uIGJlZm9yZSBjYWxsaW5nIGBSVU5fQUxMX1RFU1RTKClgLCBvciB0aGUgZmxhZ3MKLXdv
bid0IGJlIHByb3Blcmx5IGluaXRpYWxpemVkLgotCi1PbiBXaW5kb3dzLCBgSW5pdEdvb2dsZVRl
c3QoKWAgYWxzbyB3b3JrcyB3aXRoIHdpZGUgc3RyaW5ncywgc28gaXQgY2FuIGJlIHVzZWQKLWlu
IHByb2dyYW1zIGNvbXBpbGVkIGluIGBVTklDT0RFYCBtb2RlIGFzIHdlbGwuCi0KLUJ1dCBtYXli
ZSB5b3UgdGhpbmsgdGhhdCB3cml0aW5nIGFsbCB0aG9zZSBtYWluKCkgZnVuY3Rpb25zIGlzIHRv
byBtdWNoIHdvcms/IFdlIGFncmVlIHdpdGggeW91IGNvbXBsZXRlbHkgYW5kIHRoYXQncyB3aHkg
R29vZ2xlIFRlc3QgcHJvdmlkZXMgYSBiYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBtYWluKCkuIElm
IGl0IGZpdHMgeW91ciBuZWVkcywgdGhlbiBqdXN0IGxpbmsgeW91ciB0ZXN0IHdpdGggZ3Rlc3Rc
X21haW4gbGlicmFyeSBhbmQgeW91IGFyZSBnb29kIHRvIGdvLgotCi0jIyBJbXBvcnRhbnQgbm90
ZSBmb3IgVmlzdWFsIEMrKyB1c2VycyAjIwotSWYgeW91IHB1dCB5b3VyIHRlc3RzIGludG8gYSBs
aWJyYXJ5IGFuZCB5b3VyIGBtYWluKClgIGZ1bmN0aW9uIGlzIGluIGEgZGlmZmVyZW50IGxpYnJh
cnkgb3IgaW4geW91ciAuZXhlIGZpbGUsIHRob3NlIHRlc3RzIHdpbGwgbm90IHJ1bi4gVGhlIHJl
YXNvbiBpcyBhIFtidWddKGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL2ZlZWRiYWNrL3Zp
ZXdmZWVkYmFjay5hc3B4P0ZlZWRiYWNrSUQ9MjQ0NDEwJnNpdGVpZD0yMTApIGluIFZpc3VhbCBD
KysuIFdoZW4geW91IGRlZmluZSB5b3VyIHRlc3RzLCBHb29nbGUgVGVzdCBjcmVhdGVzIGNlcnRh
aW4gc3RhdGljIG9iamVjdHMgdG8gcmVnaXN0ZXIgdGhlbS4gVGhlc2Ugb2JqZWN0cyBhcmUgbm90
IHJlZmVyZW5jZWQgZnJvbSBlbHNld2hlcmUgYnV0IHRoZWlyIGNvbnN0cnVjdG9ycyBhcmUgc3Rp
bGwgc3VwcG9zZWQgdG8gcnVuLiBXaGVuIFZpc3VhbCBDKysgbGlua2VyIHNlZXMgdGhhdCBub3Ro
aW5nIGluIHRoZSBsaWJyYXJ5IGlzIHJlZmVyZW5jZWQgZnJvbSBvdGhlciBwbGFjZXMgaXQgdGhy
b3dzIHRoZSBsaWJyYXJ5IG91dC4gWW91IGhhdmUgdG8gcmVmZXJlbmNlIHlvdXIgbGlicmFyeSB3
aXRoIHRlc3RzIGZyb20geW91ciBtYWluIHByb2dyYW0gdG8ga2VlcCB0aGUgbGlua2VyIGZyb20g
ZGlzY2FyZGluZyBpdC4gSGVyZSBpcyBob3cgdG8gZG8gaXQuIFNvbWV3aGVyZSBpbiB5b3VyIGxp
YnJhcnkgY29kZSBkZWNsYXJlIGEgZnVuY3Rpb246Ci1gYGAKLV9fZGVjbHNwZWMoZGxsZXhwb3J0
KSBpbnQgUHVsbEluTXlMaWJyYXJ5KCkgeyByZXR1cm4gMDsgfQotYGBgCi1JZiB5b3UgcHV0IHlv
dXIgdGVzdHMgaW4gYSBzdGF0aWMgbGlicmFyeSAobm90IERMTCkgdGhlbiBgX19kZWNsc3BlYyhk
bGxleHBvcnQpYCBpcyBub3QgcmVxdWlyZWQuIE5vdywgaW4geW91ciBtYWluIHByb2dyYW0sIHdy
aXRlIGEgY29kZSB0aGF0IGludm9rZXMgdGhhdCBmdW5jdGlvbjoKLWBgYAotaW50IFB1bGxJbk15
TGlicmFyeSgpOwotc3RhdGljIGludCBkdW1teSA9IFB1bGxJbk15TGlicmFyeSgpOwotYGBgCi1U
aGlzIHdpbGwga2VlcCB5b3VyIHRlc3RzIHJlZmVyZW5jZWQgYW5kIHdpbGwgbWFrZSB0aGVtIHJl
Z2lzdGVyIHRoZW1zZWx2ZXMgYXQgc3RhcnR1cC4KLQotSW4gYWRkaXRpb24sIGlmIHlvdSBkZWZp
bmUgeW91ciB0ZXN0cyBpbiBhIHN0YXRpYyBsaWJyYXJ5LCBhZGQgYC9PUFQ6Tk9SRUZgIHRvIHlv
dXIgbWFpbiBwcm9ncmFtIGxpbmtlciBvcHRpb25zLiBJZiB5b3UgdXNlIE1TVkMrKyBJREUsIGdv
IHRvIHlvdXIgLmV4ZSBwcm9qZWN0IHByb3BlcnRpZXMvQ29uZmlndXJhdGlvbiBQcm9wZXJ0aWVz
L0xpbmtlci9PcHRpbWl6YXRpb24gYW5kIHNldCBSZWZlcmVuY2VzIHNldHRpbmcgdG8gYEtlZXAg
VW5yZWZlcmVuY2VkIERhdGEgKC9PUFQ6Tk9SRUYpYC4gVGhpcyB3aWxsIGtlZXAgVmlzdWFsIEMr
KyBsaW5rZXIgZnJvbSBkaXNjYXJkaW5nIGluZGl2aWR1YWwgc3ltYm9scyBnZW5lcmF0ZWQgYnkg
eW91ciB0ZXN0cyBmcm9tIHRoZSBmaW5hbCBleGVjdXRhYmxlLgotCi1UaGVyZSBpcyBvbmUgbW9y
ZSBwaXRmYWxsLCB0aG91Z2guIElmIHlvdSB1c2UgR29vZ2xlIFRlc3QgYXMgYSBzdGF0aWMgbGli
cmFyeSAodGhhdCdzIGhvdyBpdCBpcyBkZWZpbmVkIGluIGd0ZXN0LnZjcHJvaikgeW91ciB0ZXN0
cyBtdXN0IGFsc28gcmVzaWRlIGluIGEgc3RhdGljIGxpYnJhcnkuIElmIHlvdSBoYXZlIHRvIGhh
dmUgdGhlbSBpbiBhIERMTCwgeW91IF9tdXN0XyBjaGFuZ2UgR29vZ2xlIFRlc3QgdG8gYnVpbGQg
aW50byBhIERMTCBhcyB3ZWxsLiBPdGhlcndpc2UgeW91ciB0ZXN0cyB3aWxsIG5vdCBydW4gY29y
cmVjdGx5IG9yIHdpbGwgbm90IHJ1biBhdCBhbGwuIFRoZSBnZW5lcmFsIGNvbmNsdXNpb24gaGVy
ZSBpczogbWFrZSB5b3VyIGxpZmUgZWFzaWVyIC0gZG8gbm90IHdyaXRlIHlvdXIgdGVzdHMgaW4g
bGlicmFyaWVzIQotCi0jIFdoZXJlIHRvIEdvIGZyb20gSGVyZSAjCi0KLUNvbmdyYXR1bGF0aW9u
cyEgWW91J3ZlIGxlYXJuZWQgdGhlIEdvb2dsZSBUZXN0IGJhc2ljcy4gWW91IGNhbiBzdGFydCB3
cml0aW5nCi1hbmQgcnVubmluZyBHb29nbGUgVGVzdCB0ZXN0cywgcmVhZCBzb21lIFtzYW1wbGVz
XShTYW1wbGVzLm1kKSwgb3IgY29udGludWUgd2l0aAotW0FkdmFuY2VkR3VpZGVdKEFkdmFuY2Vk
R3VpZGUubWQpLCB3aGljaCBkZXNjcmliZXMgbWFueSBtb3JlIHVzZWZ1bCBHb29nbGUgVGVzdCBm
ZWF0dXJlcy4KLQotIyBLbm93biBMaW1pdGF0aW9ucyAjCi0KLUdvb2dsZSBUZXN0IGlzIGRlc2ln
bmVkIHRvIGJlIHRocmVhZC1zYWZlLiAgVGhlIGltcGxlbWVudGF0aW9uIGlzCi10aHJlYWQtc2Fm
ZSBvbiBzeXN0ZW1zIHdoZXJlIHRoZSBgcHRocmVhZHNgIGxpYnJhcnkgaXMgYXZhaWxhYmxlLiAg
SXQKLWlzIGN1cnJlbnRseSBfdW5zYWZlXyB0byB1c2UgR29vZ2xlIFRlc3QgYXNzZXJ0aW9ucyBm
cm9tIHR3byB0aHJlYWRzCi1jb25jdXJyZW50bHkgb24gb3RoZXIgc3lzdGVtcyAoZS5nLiBXaW5k
b3dzKS4gIEluIG1vc3QgdGVzdHMgdGhpcyBpcwotbm90IGFuIGlzc3VlIGFzIHVzdWFsbHkgdGhl
IGFzc2VydGlvbnMgYXJlIGRvbmUgaW4gdGhlIG1haW4gdGhyZWFkLiBJZgoteW91IHdhbnQgdG8g
aGVscCwgeW91IGNhbiB2b2x1bnRlZXIgdG8gaW1wbGVtZW50IHRoZSBuZWNlc3NhcnkKLXN5bmNo
cm9uaXphdGlvbiBwcmltaXRpdmVzIGluIGBndGVzdC1wb3J0LmhgIGZvciB5b3VyIHBsYXRmb3Jt
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvZG9jcy9QdW1wTWFudWFs
Lm1kIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvZG9jcy9QdW1wTWFudWFsLm1kCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjdiYjI0YjA0MmRjNTQzYWY0YzQwOWFkMDNlMTQ3
ZWE1OTQ5YjdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3MvUHVtcE1hbnVhbC5tZAorKysgL2Rldi9u
dWxsCkBAIC0xLDE3NyArMCwwIEBACi0KLQotPGI+UDwvYj51bXAgaXMgPGI+VTwvYj5zZWZ1bCBm
b3IgPGI+TTwvYj5ldGEgPGI+UDwvYj5yb2dyYW1taW5nLgotCi0jIFRoZSBQcm9ibGVtICMKLQot
VGVtcGxhdGUgYW5kIG1hY3JvIGxpYnJhcmllcyBvZnRlbiBuZWVkIHRvIGRlZmluZSBtYW55IGNs
YXNzZXMsCi1mdW5jdGlvbnMsIG9yIG1hY3JvcyB0aGF0IHZhcnkgb25seSAob3IgYWxtb3N0IG9u
bHkpIGluIHRoZSBudW1iZXIgb2YKLWFyZ3VtZW50cyB0aGV5IHRha2UuIEl0J3MgYSBsb3Qgb2Yg
cmVwZXRpdGl2ZSwgbWVjaGFuaWNhbCwgYW5kCi1lcnJvci1wcm9uZSB3b3JrLgotCi1WYXJpYWRp
YyB0ZW1wbGF0ZXMgYW5kIHZhcmlhZGljIG1hY3JvcyBjYW4gYWxsZXZpYXRlIHRoZSBwcm9ibGVt
LgotSG93ZXZlciwgd2hpbGUgYm90aCBhcmUgYmVpbmcgY29uc2lkZXJlZCBieSB0aGUgQysrIGNv
bW1pdHRlZSwgbmVpdGhlcgotaXMgaW4gdGhlIHN0YW5kYXJkIHlldCBvciB3aWRlbHkgc3VwcG9y
dGVkIGJ5IGNvbXBpbGVycy4gIFRodXMgdGhleQotYXJlIG9mdGVuIG5vdCBhIGdvb2QgY2hvaWNl
LCBlc3BlY2lhbGx5IHdoZW4geW91ciBjb2RlIG5lZWRzIHRvIGJlCi1wb3J0YWJsZS4gQW5kIHRo
ZWlyIGNhcGFiaWxpdGllcyBhcmUgc3RpbGwgbGltaXRlZC4KLQotQXMgYSByZXN1bHQsIGF1dGhv
cnMgb2Ygc3VjaCBsaWJyYXJpZXMgb2Z0ZW4gaGF2ZSB0byB3cml0ZSBzY3JpcHRzIHRvCi1nZW5l
cmF0ZSB0aGVpciBpbXBsZW1lbnRhdGlvbi4gSG93ZXZlciwgb3VyIGV4cGVyaWVuY2UgaXMgdGhh
dCBpdCdzCi10ZWRpb3VzIHRvIHdyaXRlIHN1Y2ggc2NyaXB0cywgd2hpY2ggdGVuZCB0byByZWZs
ZWN0IHRoZSBzdHJ1Y3R1cmUgb2YKLXRoZSBnZW5lcmF0ZWQgY29kZSBwb29ybHkgYW5kIGFyZSBv
ZnRlbiBoYXJkIHRvIHJlYWQgYW5kIGVkaXQuIEZvcgotZXhhbXBsZSwgYSBzbWFsbCBjaGFuZ2Ug
bmVlZGVkIGluIHRoZSBnZW5lcmF0ZWQgY29kZSBtYXkgcmVxdWlyZSBzb21lCi1ub24taW50dWl0
aXZlLCBub24tdHJpdmlhbCBjaGFuZ2VzIGluIHRoZSBzY3JpcHQuIFRoaXMgaXMgZXNwZWNpYWxs
eQotcGFpbmZ1bCB3aGVuIGV4cGVyaW1lbnRpbmcgd2l0aCB0aGUgY29kZS4KLQotIyBPdXIgU29s
dXRpb24gIwotCi1QdW1wIChmb3IgUHVtcCBpcyBVc2VmdWwgZm9yIE1ldGEgUHJvZ3JhbW1pbmcs
IFByZXR0eSBVc2VmdWwgZm9yIE1ldGEKLVByb2dyYW1taW5nLCBvciBQcmFjdGljYWwgVXRpbGl0
eSBmb3IgTWV0YSBQcm9ncmFtbWluZywgd2hpY2hldmVyIHlvdQotcHJlZmVyKSBpcyBhIHNpbXBs
ZSBtZXRhLXByb2dyYW1taW5nIHRvb2wgZm9yIEMrKy4gVGhlIGlkZWEgaXMgdGhhdCBhCi1wcm9n
cmFtbWVyIHdyaXRlcyBhIGBmb28ucHVtcGAgZmlsZSB3aGljaCBjb250YWlucyBDKysgY29kZSBw
bHVzIG1ldGEKLWNvZGUgdGhhdCBtYW5pcHVsYXRlcyB0aGUgQysrIGNvZGUuIFRoZSBtZXRhIGNv
ZGUgY2FuIGhhbmRsZQotaXRlcmF0aW9ucyBvdmVyIGEgcmFuZ2UsIG5lc3RlZCBpdGVyYXRpb25z
LCBsb2NhbCBtZXRhIHZhcmlhYmxlCi1kZWZpbml0aW9ucywgc2ltcGxlIGFyaXRobWV0aWMsIGFu
ZCBjb25kaXRpb25hbCBleHByZXNzaW9ucy4gWW91IGNhbgotdmlldyBpdCBhcyBhIHNtYWxsIERv
bWFpbi1TcGVjaWZpYyBMYW5ndWFnZS4gVGhlIG1ldGEgbGFuZ3VhZ2UgaXMKLWRlc2lnbmVkIHRv
IGJlIG5vbi1pbnRydXNpdmUgKHMudC4gaXQgd29uJ3QgY29uZnVzZSBFbWFjcycgQysrIG1vZGUs
Ci1mb3IgZXhhbXBsZSkgYW5kIGNvbmNpc2UsIG1ha2luZyBQdW1wIGNvZGUgaW50dWl0aXZlIGFu
ZCBlYXN5IHRvCi1tYWludGFpbi4KLQotIyMgSGlnaGxpZ2h0cyAjIwotCi0gICogVGhlIGltcGxl
bWVudGF0aW9uIGlzIGluIGEgc2luZ2xlIFB5dGhvbiBzY3JpcHQgYW5kIHRodXMgdWx0cmEgcG9y
dGFibGU6IG5vIGJ1aWxkIG9yIGluc3RhbGxhdGlvbiBpcyBuZWVkZWQgYW5kIGl0IHdvcmtzIGNy
b3NzIHBsYXRmb3Jtcy4KLSAgKiBQdW1wIHRyaWVzIHRvIGJlIHNtYXJ0IHdpdGggcmVzcGVjdCB0
byBbR29vZ2xlJ3Mgc3R5bGUgZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvc3R5bGVn
dWlkZSk6IGl0IGJyZWFrcyBsb25nIGxpbmVzIChlYXN5IHRvIGhhdmUgd2hlbiB0aGV5IGFyZSBn
ZW5lcmF0ZWQpIGF0IGFjY2VwdGFibGUgcGxhY2VzIHRvIGZpdCB3aXRoaW4gODAgY29sdW1ucyBh
bmQgaW5kZW50IHRoZSBjb250aW51YXRpb24gbGluZXMgY29ycmVjdGx5LgotICAqIFRoZSBmb3Jt
YXQgaXMgaHVtYW4tcmVhZGFibGUgYW5kIG1vcmUgY29uY2lzZSB0aGFuIFhNTC4KLSAgKiBUaGUg
Zm9ybWF0IHdvcmtzIHJlbGF0aXZlbHkgd2VsbCB3aXRoIEVtYWNzJyBDKysgbW9kZS4KLQotIyMg
RXhhbXBsZXMgIyMKLQotVGhlIGZvbGxvd2luZyBQdW1wIGNvZGUgKHdoZXJlIG1ldGEga2V5d29y
ZHMgc3RhcnQgd2l0aCBgJGAsIGBbW2AgYW5kIGBdXWAgYXJlIG1ldGEgYnJhY2tldHMsIGFuZCBg
JCRgIHN0YXJ0cyBhIG1ldGEgY29tbWVudCB0aGF0IGVuZHMgd2l0aCB0aGUgbGluZSk6Ci0KLWBg
YAotJHZhciBuID0gMyAgICAgJCQgRGVmaW5lcyBhIG1ldGEgdmFyaWFibGUgbi4KLSRyYW5nZSBp
IDAuLm4gICQkIERlY2xhcmVzIHRoZSByYW5nZSBvZiBtZXRhIGl0ZXJhdG9yIGkgKGluY2x1c2l2
ZSkuCi0kZm9yIGkgW1sKLSAgICAgICAgICAgICAgICQkIE1ldGEgbG9vcC4KLS8vIEZvbyRpIGRv
ZXMgYmxhaCBmb3IgJGktYXJ5IHByZWRpY2F0ZXMuCi0kcmFuZ2UgaiAxLi5pCi10ZW1wbGF0ZSA8
c2l6ZV90IE4gJGZvciBqIFtbLCB0eXBlbmFtZSBBJGpdXT4KLWNsYXNzIEZvbyRpIHsKLSRpZiBp
ID09IDAgW1sKLSAgYmxhaCBhOwotXV0gJGVsaWYgaSA8PSAyIFtbCi0gIGJsYWggYjsKLV1dICRl
bHNlIFtbCi0gIGJsYWggYzsKLV1dCi19OwotCi1dXQotYGBgCi0KLXdpbGwgYmUgdHJhbnNsYXRl
ZCBieSB0aGUgUHVtcCBjb21waWxlciB0bzoKLQotYGBgCi0vLyBGb28wIGRvZXMgYmxhaCBmb3Ig
MC1hcnkgcHJlZGljYXRlcy4KLXRlbXBsYXRlIDxzaXplX3QgTj4KLWNsYXNzIEZvbzAgewotICBi
bGFoIGE7Ci19OwotCi0vLyBGb28xIGRvZXMgYmxhaCBmb3IgMS1hcnkgcHJlZGljYXRlcy4KLXRl
bXBsYXRlIDxzaXplX3QgTiwgdHlwZW5hbWUgQTE+Ci1jbGFzcyBGb28xIHsKLSAgYmxhaCBiOwot
fTsKLQotLy8gRm9vMiBkb2VzIGJsYWggZm9yIDItYXJ5IHByZWRpY2F0ZXMuCi10ZW1wbGF0ZSA8
c2l6ZV90IE4sIHR5cGVuYW1lIEExLCB0eXBlbmFtZSBBMj4KLWNsYXNzIEZvbzIgewotICBibGFo
IGI7Ci19OwotCi0vLyBGb28zIGRvZXMgYmxhaCBmb3IgMy1hcnkgcHJlZGljYXRlcy4KLXRlbXBs
YXRlIDxzaXplX3QgTiwgdHlwZW5hbWUgQTEsIHR5cGVuYW1lIEEyLCB0eXBlbmFtZSBBMz4KLWNs
YXNzIEZvbzMgewotICBibGFoIGM7Ci19OwotYGBgCi0KLUluIGFub3RoZXIgZXhhbXBsZSwKLQot
YGBgCi0kcmFuZ2UgaSAxLi5uCi1GdW5jKCRmb3IgaSArIFtbYSRpXV0pOwotJCQgVGhlIHRleHQg
YmV0d2VlbiBpIGFuZCBbWyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gaXRlcmF0aW9ucy4KLWBg
YAotCi13aWxsIGdlbmVyYXRlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGxpbmVzICh3aXRob3V0IHRo
ZSBjb21tZW50cyksIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgYG5gOgotCi1gYGAKLUZ1bmMo
KTsgICAgICAgICAgICAgIC8vIElmIG4gaXMgMC4KLUZ1bmMoYTEpOyAgICAgICAgICAgIC8vIElm
IG4gaXMgMS4KLUZ1bmMoYTEgKyBhMik7ICAgICAgIC8vIElmIG4gaXMgMi4KLUZ1bmMoYTEgKyBh
MiArIGEzKTsgIC8vIElmIG4gaXMgMy4KLS8vIEFuZCBzbyBvbi4uLgotYGBgCi0KLSMjIENvbnN0
cnVjdHMgIyMKLQotV2Ugc3VwcG9ydCB0aGUgZm9sbG93aW5nIG1ldGEgcHJvZ3JhbW1pbmcgY29u
c3RydWN0czoKLQotfCBgJHZhciBpZCA9IGV4cGAgfCBEZWZpbmVzIGEgbmFtZWQgY29uc3RhbnQg
dmFsdWUuIGAkaWRgIGlzIHZhbGlkIHV0aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBtZXRhIGxl
eGljYWwgYmxvY2suIHwKLXw6LS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS18Ci18IGAkcmFuZ2UgaWQgZXhwLi5leHBgIHwgU2V0cyB0aGUgcmFu
Z2Ugb2YgYW4gaXRlcmF0aW9uIHZhcmlhYmxlLCB3aGljaCBjYW4gYmUgcmV1c2VkIGluIG11bHRp
cGxlIGxvb3BzIGxhdGVyLiAgICAgICAgICB8Ci18IGAkZm9yIGlkIHNlcCBbWyBjb2RlIF1dYCB8
IEl0ZXJhdGlvbi4gVGhlIHJhbmdlIG9mIGBpZGAgbXVzdCBoYXZlIGJlZW4gZGVmaW5lZCBlYXJs
aWVyLiBgJGlkYCBpcyB2YWxpZCBpbiBgY29kZWAuICAgICAgICAgfAotfCBgJCgkKWAgICAgICAg
ICAgfCBHZW5lcmF0ZXMgYSBzaW5nbGUgYCRgIGNoYXJhY3Rlci4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYCRpZGAgICAg
ICAgICAgIHwgVmFsdWUgb2YgdGhlIG5hbWVkIGNvbnN0YW50IG9yIGl0ZXJhdGlvbiB2YXJpYWJs
ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGAkKGV4
cClgICAgICAgICB8IFZhbHVlIG9mIHRoZSBleHByZXNzaW9uLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBg
JGlmIGV4cCBbWyBjb2RlIF1dIGVsc2VfYnJhbmNoYCB8IENvbmRpdGlvbmFsLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfAotfCBgW1sgY29kZSBdXWAgICAgfCBNZXRhIGxleGljYWwgYmxvY2su
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKLXwgYGNwcF9jb2RlYCAgICAgIHwgUmF3IEMrKyBjb2RlLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGAkJCBjb21tZW50YCAgICB8IE1ldGEgY29tbWVu
dC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotCi0qKk5vdGU6KiogVG8gZ2l2ZSB0aGUgdXNl
ciBzb21lIGZyZWVkb20gaW4gZm9ybWF0dGluZyB0aGUgUHVtcCBzb3VyY2UKLWNvZGUsIFB1bXAg
aWdub3JlcyBhIG5ldy1saW5lIGNoYXJhY3RlciBpZiBpdCdzIHJpZ2h0IGFmdGVyIGAkZm9yIGZv
b2AKLW9yIG5leHQgdG8gYFtbYCBvciBgXV1gLiBXaXRob3V0IHRoaXMgcnVsZSB5b3UnbGwgb2Z0
ZW4gYmUgZm9yY2VkIHRvIHdyaXRlCi12ZXJ5IGxvbmcgbGluZXMgdG8gZ2V0IHRoZSBkZXNpcmVk
IG91dHB1dC4gVGhlcmVmb3JlIHNvbWV0aW1lcyB5b3UgbWF5Ci1uZWVkIHRvIGluc2VydCBhbiBl
eHRyYSBuZXctbGluZSBpbiBzdWNoIHBsYWNlcyBmb3IgYSBuZXctbGluZSB0byBzaG93Ci11cCBp
biB5b3VyIG91dHB1dC4KLQotIyMgR3JhbW1hciAjIwotCi1gYGAKLWNvZGUgOjo9IGF0b21pY19j
b2RlKgotYXRvbWljX2NvZGUgOjo9ICR2YXIgaWQgPSBleHAKLSAgICB8ICR2YXIgaWQgPSBbWyBj
b2RlIF1dCi0gICAgfCAkcmFuZ2UgaWQgZXhwLi5leHAKLSAgICB8ICRmb3IgaWQgc2VwIFtbIGNv
ZGUgXV0KLSAgICB8ICQoJCkKLSAgICB8ICRpZAotICAgIHwgJChleHApCi0gICAgfCAkaWYgZXhw
IFtbIGNvZGUgXV0gZWxzZV9icmFuY2gKLSAgICB8IFtbIGNvZGUgXV0KLSAgICB8IGNwcF9jb2Rl
Ci1zZXAgOjo9IGNwcF9jb2RlIHwgZW1wdHlfc3RyaW5nCi1lbHNlX2JyYW5jaCA6Oj0gJGVsc2Ug
W1sgY29kZSBdXQotICAgIHwgJGVsaWYgZXhwIFtbIGNvZGUgXV0gZWxzZV9icmFuY2gKLSAgICB8
IGVtcHR5X3N0cmluZwotZXhwIDo6PSBzaW1wbGVfZXhwcmVzc2lvbl9pbl9QeXRob25fc3ludGF4
Ci1gYGAKLQotIyMgQ29kZSAjIwotCi1Zb3UgY2FuIGZpbmQgdGhlIHNvdXJjZSBjb2RlIG9mIFB1
bXAgaW4gW3NjcmlwdHMvcHVtcC5weV0oLi4vc2NyaXB0cy9wdW1wLnB5KS4gSXQgaXMgc3RpbGwK
LXZlcnkgdW5wb2xpc2hlZCBhbmQgbGFja3MgYXV0b21hdGVkIHRlc3RzLCBhbHRob3VnaCBpdCBo
YXMgYmVlbgotc3VjY2Vzc2Z1bGx5IHVzZWQgbWFueSB0aW1lcy4gSWYgeW91IGZpbmQgYSBjaGFu
Y2UgdG8gdXNlIGl0IGluIHlvdXIKLXByb2plY3QsIHBsZWFzZSBsZXQgdXMga25vdyB3aGF0IHlv
dSB0aGluayEgIFdlIGFsc28gd2VsY29tZSBoZWxwIG9uCi1pbXByb3ZpbmcgUHVtcC4KLQotIyMg
UmVhbCBFeGFtcGxlcyAjIwotCi1Zb3UgY2FuIGZpbmQgcmVhbC13b3JsZCBhcHBsaWNhdGlvbnMg
b2YgUHVtcCBpbiBbR29vZ2xlIFRlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xl
dGVzdC90cmVlL21hc3Rlci9nb29nbGV0ZXN0KSBhbmQgW0dvb2dsZSBNb2NrXShodHRwczovL2dp
dGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvdHJlZS9tYXN0ZXIvZ29vZ2xlbW9jaykuIFRoZSBz
b3VyY2UgZmlsZSBgZm9vLmgucHVtcGAgZ2VuZXJhdGVzIGBmb28uaGAuCi0KLSMjIFRpcHMgIyMK
LQotICAqIElmIGEgbWV0YSB2YXJpYWJsZSBpcyBmb2xsb3dlZCBieSBhIGxldHRlciBvciBkaWdp
dCwgeW91IGNhbiBzZXBhcmF0ZSB0aGVtIHVzaW5nIGBbW11dYCwgd2hpY2ggaW5zZXJ0cyBhbiBl
bXB0eSBzdHJpbmcuIEZvciBleGFtcGxlIGBGb28kaltbXV1IZWxwZXJgIGdlbmVyYXRlIGBGb28x
SGVscGVyYCB3aGVuIGBqYCBpcyAxLgotICAqIFRvIGF2b2lkIGV4dHJhLWxvbmcgUHVtcCBzb3Vy
Y2UgbGluZXMsIHlvdSBjYW4gYnJlYWsgYSBsaW5lIGFueXdoZXJlIHlvdSB3YW50IGJ5IGluc2Vy
dGluZyBgW1tdXWAgZm9sbG93ZWQgYnkgYSBuZXcgbGluZS4gU2luY2UgYW55IG5ldy1saW5lIGNo
YXJhY3RlciBuZXh0IHRvIGBbW2Agb3IgYF1dYCBpcyBpZ25vcmVkLCB0aGUgZ2VuZXJhdGVkIGNv
ZGUgd29uJ3QgY29udGFpbiB0aGlzIG5ldyBsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3Bh
cnR5L2dvb2dsZXRlc3QvZG9jcy9TYW1wbGVzLm1kIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRl
c3QvZG9jcy9TYW1wbGVzLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjFkMjAw
NTY3MzU0NTdmNmY0OWFlY2M2MTIxOWRhZDIyNjEyYmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3Mv
U2FtcGxlcy5tZAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLUlmIHlvdSdyZSBsaWtl
IHVzLCB5b3UnZCBsaWtlIHRvIGxvb2sgYXQgc29tZSBHb29nbGUgVGVzdCBzYW1wbGUgY29kZS4g
IFRoZQotW3NhbXBsZXMgZm9sZGVyXSguLi9zYW1wbGVzKSBoYXMgYSBudW1iZXIgb2Ygd2VsbC1j
b21tZW50ZWQgc2FtcGxlcyBzaG93aW5nIGhvdyB0byB1c2UgYQotdmFyaWV0eSBvZiBHb29nbGUg
VGVzdCBmZWF0dXJlcy4KLQotICAqIFtTYW1wbGUgIzFdKC4uL3NhbXBsZXMvc2FtcGxlMV91bml0
dGVzdC5jYykgc2hvd3MgdGhlIGJhc2ljIHN0ZXBzIG9mIHVzaW5nIEdvb2dsZSBUZXN0IHRvIHRl
c3QgQysrIGZ1bmN0aW9ucy4KLSAgKiBbU2FtcGxlICMyXSguLi9zYW1wbGVzL3NhbXBsZTJfdW5p
dHRlc3QuY2MpIHNob3dzIGEgbW9yZSBjb21wbGV4IHVuaXQgdGVzdCBmb3IgYSBjbGFzcyB3aXRo
IG11bHRpcGxlIG1lbWJlciBmdW5jdGlvbnMuCi0gICogW1NhbXBsZSAjM10oLi4vc2FtcGxlcy9z
YW1wbGUzX3VuaXR0ZXN0LmNjKSB1c2VzIGEgdGVzdCBmaXh0dXJlLgotICAqIFtTYW1wbGUgIzRd
KC4uL3NhbXBsZXMvc2FtcGxlNF91bml0dGVzdC5jYykgaXMgYW5vdGhlciBiYXNpYyBleGFtcGxl
IG9mIHVzaW5nIEdvb2dsZSBUZXN0LgotICAqIFtTYW1wbGUgIzVdKC4uL3NhbXBsZXMvc2FtcGxl
NV91bml0dGVzdC5jYykgdGVhY2hlcyBob3cgdG8gcmV1c2UgYSB0ZXN0IGZpeHR1cmUgaW4gbXVs
dGlwbGUgdGVzdCBjYXNlcyBieSBkZXJpdmluZyBzdWItZml4dHVyZXMgZnJvbSBpdC4KLSAgKiBb
U2FtcGxlICM2XSguLi9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MpIGRlbW9uc3RyYXRlcyB0
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0gICogW1NhbXBsZSAjN10oLi4vc2FtcGxlcy9zYW1w
bGU3X3VuaXR0ZXN0LmNjKSB0ZWFjaGVzIHRoZSBiYXNpY3Mgb2YgdmFsdWUtcGFyYW1ldGVyaXpl
ZCB0ZXN0cy4KLSAgKiBbU2FtcGxlICM4XSguLi9zYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2Mp
IHNob3dzIHVzaW5nIGBDb21iaW5lKClgIGluIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0g
ICogW1NhbXBsZSAjOV0oLi4vc2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjKSBzaG93cyB1c2Ug
b2YgdGhlIGxpc3RlbmVyIEFQSSB0byBtb2RpZnkgR29vZ2xlIFRlc3QncyBjb25zb2xlIG91dHB1
dCBhbmQgdGhlIHVzZSBvZiBpdHMgcmVmbGVjdGlvbiBBUEkgdG8gaW5zcGVjdCB0ZXN0IHJlc3Vs
dHMuCi0gICogW1NhbXBsZSAjMTBdKC4uL3NhbXBsZXMvc2FtcGxlMTBfdW5pdHRlc3QuY2MpIHNo
b3dzIHVzZSBvZiB0aGUgbGlzdGVuZXIgQVBJIHRvIGltcGxlbWVudCBhIHByaW1pdGl2ZSBtZW1v
cnkgbGVhayBjaGVja2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
ZG9jcy9YY29kZUd1aWRlLm1kIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvZG9jcy9YY29k
ZUd1aWRlLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTcyNjVjNTkwZWEzNzRh
ZmEzZmJlMjc3ZDQ5YTA1NjIyNWE1Y2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2RvY3MvWGNvZGVHdWlk
ZS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLQotCi1UaGlzIGd1aWRlIHdpbGwg
ZXhwbGFpbiBob3cgdG8gdXNlIHRoZSBHb29nbGUgVGVzdGluZyBGcmFtZXdvcmsgaW4geW91ciBY
Y29kZSBwcm9qZWN0cyBvbiBNYWMgT1MgWC4gVGhpcyB0dXRvcmlhbCBiZWdpbnMgYnkgcXVpY2ts
eSBleHBsYWluaW5nIHdoYXQgdG8gZG8gZm9yIGV4cGVyaWVuY2VkIHVzZXJzLiBBZnRlciB0aGUg
cXVpY2sgc3RhcnQsIHRoZSBndWlkZSBnb2VzIHByb3ZpZGVzIGFkZGl0aW9uYWwgZXhwbGFuYXRp
b24gYWJvdXQgZWFjaCBzdGVwLgotCi0jIFF1aWNrIFN0YXJ0ICMKLQotSGVyZSBpcyB0aGUgcXVp
Y2sgZ3VpZGUgZm9yIHVzaW5nIEdvb2dsZSBUZXN0IGluIHlvdXIgWGNvZGUgcHJvamVjdC4KLQot
ICAxLiBEb3dubG9hZCB0aGUgc291cmNlIGZyb20gdGhlIFt3ZWJzaXRlXShodHRwOi8vY29kZS5n
b29nbGUuY29tL3AvZ29vZ2xldGVzdCkgdXNpbmcgdGhpcyBjb21tYW5kOiBgc3ZuIGNoZWNrb3V0
IGh0dHA6Ly9nb29nbGV0ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVuay8gZ29vZ2xldGVzdC1y
ZWFkLW9ubHlgLgotICAxLiBPcGVuIHVwIHRoZSBgZ3Rlc3QueGNvZGVwcm9qYCBpbiB0aGUgYGdv
b2dsZXRlc3QtcmVhZC1vbmx5L3hjb2RlL2AgZGlyZWN0b3J5IGFuZCBidWlsZCB0aGUgZ3Rlc3Qu
ZnJhbWV3b3JrLgotICAxLiBDcmVhdGUgYSBuZXcgIlNoZWxsIFRvb2wiIHRhcmdldCBpbiB5b3Vy
IFhjb2RlIHByb2plY3QgY2FsbGVkIHNvbWV0aGluZyBsaWtlICJVbml0VGVzdHMiLgotICAxLiBB
ZGQgdGhlIGd0ZXN0LmZyYW1ld29yayB0byB5b3VyIHByb2plY3QgYW5kIGFkZCBpdCB0byB0aGUg
IkxpbmsgQmluYXJ5IHdpdGggTGlicmFyaWVzIiBidWlsZCBwaGFzZSBvZiAiVW5pdFRlc3RzIi4K
LSAgMS4gQWRkIHlvdXIgdW5pdCB0ZXN0IHNvdXJjZSBjb2RlIHRvIHRoZSAiQ29tcGlsZSBTb3Vy
Y2VzIiBidWlsZCBwaGFzZSBvZiAiVW5pdFRlc3RzIi4KLSAgMS4gRWRpdCB0aGUgIlVuaXRUZXN0
cyIgZXhlY3V0YWJsZSBhbmQgYWRkIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkICJEWUxE
XF9GUkFNRVdPUktcX1BBVEgiIHdpdGggYSB2YWx1ZSBlcXVhbCB0byB0aGUgcGF0aCB0byB0aGUg
ZnJhbWV3b3JrIGNvbnRhaW5pbmcgdGhlIGd0ZXN0LmZyYW1ld29yayByZWxhdGl2ZSB0byB0aGUg
Y29tcGlsZWQgZXhlY3V0YWJsZS4KLSAgMS4gQnVpbGQgYW5kIEdvLgotCi1UaGUgZm9sbG93aW5n
IHNlY3Rpb25zIGZ1cnRoZXIgZXhwbGFpbiBlYWNoIG9mIHRoZSBzdGVwcyBsaXN0ZWQgYWJvdmUg
aW4gZGVwdGgsIGRlc2NyaWJpbmcgaW4gbW9yZSBkZXRhaWwgaG93IHRvIGNvbXBsZXRlIGl0IGlu
Y2x1ZGluZyBzb21lIHZhcmlhdGlvbnMuCi0KLSMgR2V0IHRoZSBTb3VyY2UgIwotCi1DdXJyZW50
bHksIHRoZSBndGVzdC5mcmFtZXdvcmsgZGlzY3Vzc2VkIGhlcmUgaXNuJ3QgYXZhaWxhYmxlIGlu
IGEgdGFnZ2VkIHJlbGVhc2Ugb2YgR29vZ2xlIFRlc3QsIGl0IGlzIG9ubHkgYXZhaWxhYmxlIGlu
IHRoZSB0cnVuay4gQXMgZXhwbGFpbmVkIGF0IHRoZSBHb29nbGUgVGVzdCBbc2l0ZV0oaHR0cDov
L2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZXRlc3Qvc291cmNlL2NoZWNrb3V0Ij5zdm4pLCB5b3Ug
Y2FuIGdldCB0aGUgY29kZSBmcm9tIGFub255bW91cyBTVk4gd2l0aCB0aGlzIGNvbW1hbmQ6Ci0K
LWBgYAotc3ZuIGNoZWNrb3V0IGh0dHA6Ly9nb29nbGV0ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90
cnVuay8gZ29vZ2xldGVzdC1yZWFkLW9ubHkKLWBgYAotCi1BbHRlcm5hdGl2ZWx5LCBpZiB5b3Ug
YXJlIHdvcmtpbmcgd2l0aCBTdWJ2ZXJzaW9uIGluIHlvdXIgb3duIGNvZGUgYmFzZSwgeW91IGNh
biBhZGQgR29vZ2xlIFRlc3QgYXMgYW4gZXh0ZXJuYWwgZGVwZW5kZW5jeSB0byB5b3VyIG93biBT
dWJ2ZXJzaW9uIHJlcG9zaXRvcnkuIEJ5IGZvbGxvd2luZyB0aGlzIGFwcHJvYWNoLCBldmVyeW9u
ZSB0aGF0IGNoZWNrcyBvdXQgeW91ciBzdm4gcmVwb3NpdG9yeSB3aWxsIGFsc28gcmVjZWl2ZSBh
IGNvcHkgb2YgR29vZ2xlIFRlc3QgKGEgc3BlY2lmaWMgdmVyc2lvbiwgaWYgeW91IHdpc2gpIHdp
dGhvdXQgaGF2aW5nIHRvIGNoZWNrIGl0IG91dCBleHBsaWNpdGx5LiBUaGlzIG1ha2VzIHRoZSBz
ZXQgdXAgb2YgeW91ciBwcm9qZWN0IHNpbXBsZXIgYW5kIHJlZHVjZXMgdGhlIGNvcGllZCBjb2Rl
IGluIHRoZSByZXBvc2l0b3J5LgotCi1UbyB1c2UgYHN2bjpleHRlcm5hbHNgLCBkZWNpZGUgd2hl
cmUgeW91IHdvdWxkIGxpa2UgdG8gaGF2ZSB0aGUgZXh0ZXJuYWwgc291cmNlIHJlc2lkZS4gWW91
IG1pZ2h0IGNob29zZSB0byBwdXQgdGhlIGV4dGVybmFsIHNvdXJjZSBpbnNpZGUgdGhlIHRydW5r
LCBiZWNhdXNlIHlvdSB3YW50IGl0IHRvIGJlIHBhcnQgb2YgdGhlIGJyYW5jaCB3aGVuIHlvdSBt
YWtlIGEgcmVsZWFzZS4gSG93ZXZlciwga2VlcGluZyBpdCBvdXRzaWRlIHRoZSB0cnVuayBpbiBh
IHZlcnNpb24tdGFnZ2VkIGRpcmVjdG9yeSBjYWxsZWQgc29tZXRoaW5nIGxpa2UgYHRoaXJkLXBh
cnR5L2dvb2dsZXRlc3QvMS4wLjFgLCBpcyBhbm90aGVyIG9wdGlvbi4gT25jZSB0aGUgbG9jYXRp
b24gaXMgZXN0YWJsaXNoZWQsIHVzZSBgc3ZuIHByb3BlZGl0IHN2bjpleHRlcm5hbHMgX2RpcmVj
dG9yeV9gIHRvIHNldCB0aGUgc3ZuOmV4dGVybmFscyBwcm9wZXJ0eSBvbiBhIGRpcmVjdG9yeSBp
biB5b3VyIHJlcG9zaXRvcnkuIFRoaXMgZGlyZWN0b3J5IHdvbid0IGNvbnRhaW4gdGhlIGNvZGUs
IGJ1dCBiZSBpdHMgdmVyc2lvbmVkIHBhcmVudCBkaXJlY3RvcnkuCi0KLVRoZSBjb21tYW5kIGBz
dm4gcHJvcGVkaXRgIHdpbGwgYnJpbmcgdXAgeW91ciBTdWJ2ZXJzaW9uIGVkaXRvciwgbWFraW5n
IGVkaXRpbmcgdGhlIGxvbmcsIChwb3RlbnRpYWxseSBtdWx0aS1saW5lKSBwcm9wZXJ0eSBzaW1w
bGVyLiBUaGlzIHNhbWUgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNoZWNrIG91dCBhIHRhZ2dlZCBi
cmFuY2gsIGJ5IHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBVUkwgKGUuZy4gYGh0dHA6Ly9nb29nbGV0
ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90YWdzL3JlbGVhc2UtMS4wLjFgKS4gQWRkaXRpb25hbGx5
LCB0aGUgc3ZuOmV4dGVybmFscyBwcm9wZXJ0eSBhbGxvd3MgdGhlIHNwZWNpZmljYXRpb24gb2Yg
YSBwYXJ0aWN1bGFyIHJldmlzaW9uIG9mIHRoZSB0cnVuayB3aXRoIHRoZSBgLXJfIyNfYCBvcHRp
b24gKGUuZy4gYGV4dGVybmFscy9zcmMvZ29vZ2xldGVzdCAtcjYwIGh0dHA6Ly9nb29nbGV0ZXN0
Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVua2ApLgotCi1IZXJlIGlzIGFuIGV4YW1wbGUgb2YgdXNp
bmcgdGhlIHN2bjpleHRlcm5hbHMgcHJvcGVydGllcyBvbiBhIHRydW5rIChyZWFkIHZpYSBgc3Zu
IHByb3BnZXRgKSBvZiBhIHByb2plY3QuIFRoaXMgdmFsdWUgY2hlY2tzIG91dCBhIGNvcHkgb2Yg
R29vZ2xlIFRlc3QgaW50byB0aGUgYHRydW5rL2V4dGVybmFscy9zcmMvZ29vZ2xldGVzdC9gIGRp
cmVjdG9yeS4KLQotYGBgCi1bQ29tcHV0ZXI6c3ZuXSB1c2VyJCBzdm4gcHJvcGdldCBzdm46ZXh0
ZXJuYWxzIHRydW5rCi1leHRlcm5hbHMvc3JjL2dvb2dsZXRlc3QgaHR0cDovL2dvb2dsZXRlc3Qu
Z29vZ2xlY29kZS5jb20vc3ZuL3RydW5rCi1gYGAKLQotIyBBZGQgdGhlIEZyYW1ld29yayB0byBZ
b3VyIFByb2plY3QgIwotCi1UaGUgbmV4dCBzdGVwIGlzIHRvIGJ1aWxkIGFuZCBhZGQgdGhlIGd0
ZXN0LmZyYW1ld29yayB0byB5b3VyIG93biBwcm9qZWN0LiBUaGlzIGd1aWRlIGRlc2NyaWJlcyB0
d28gY29tbW9uIHdheXMgYmVsb3cuCi0KLSAgKiAqKk9wdGlvbiAxKiogLS0tIFRoZSBzaW1wbGVz
dCB3YXkgdG8gYWRkIEdvb2dsZSBUZXN0IHRvIHlvdXIgb3duIHByb2plY3QsIGlzIHRvIG9wZW4g
Z3Rlc3QueGNvZGVwcm9qIChmb3VuZCBpbiB0aGUgeGNvZGUvIGRpcmVjdG9yeSBvZiB0aGUgR29v
Z2xlIFRlc3QgdHJ1bmspIGFuZCBidWlsZCB0aGUgZnJhbWV3b3JrIG1hbnVhbGx5LiBUaGVuLCBh
ZGQgdGhlIGJ1aWx0IGZyYW1ld29yayBpbnRvIHlvdXIgcHJvamVjdCB1c2luZyB0aGUgIkFkZC0+
RXhpc3RpbmcgRnJhbWV3b3JrLi4uIiBmcm9tIHRoZSBjb250ZXh0IG1lbnUgb3IgIlByb2plY3Qt
PkFkZC4uLiIgZnJvbSB0aGUgbWFpbiBtZW51LiBUaGUgZ3Rlc3QuZnJhbWV3b3JrIGlzIHJlbG9j
YXRhYmxlIGFuZCBjb250YWlucyB0aGUgaGVhZGVycyBhbmQgb2JqZWN0IGNvZGUgdGhhdCB5b3Un
bGwgbmVlZCB0byBtYWtlIHRlc3RzLiBUaGlzIG1ldGhvZCByZXF1aXJlcyByZWJ1aWxkaW5nIGV2
ZXJ5IHRpbWUgeW91IHVwZ3JhZGUgR29vZ2xlIFRlc3QgaW4geW91ciBwcm9qZWN0LgotICAqICoq
T3B0aW9uIDIqKiAtLS0gSWYgeW91IGFyZSBnb2luZyB0byBiZSBsaXZpbmcgb2ZmIHRoZSB0cnVu
ayBvZiBHb29nbGUgVGVzdCwgaW5jb3Jwb3JhdGluZyBpdHMgbGF0ZXN0IGZlYXR1cmVzIGludG8g
eW91ciB1bml0IHRlc3RzIChvciBhcmUgYSBHb29nbGUgVGVzdCBkZXZlbG9wZXIgeW91cnNlbGYp
LiBZb3UnbGwgd2FudCB0byByZWJ1aWxkIHRoZSBmcmFtZXdvcmsgZXZlcnkgdGltZSB0aGUgc291
cmNlIHVwZGF0ZXMuIHRvIGRvIHRoaXMsIHlvdSdsbCBuZWVkIHRvIGFkZCB0aGUgZ3Rlc3QueGNv
ZGVwcm9qIGZpbGUsIG5vdCB0aGUgZnJhbWV3b3JrIGl0c2VsZiwgdG8geW91ciBvd24gWGNvZGUg
cHJvamVjdC4gVGhlbiwgZnJvbSB0aGUgYnVpbGQgcHJvZHVjdHMgdGhhdCBhcmUgcmV2ZWFsZWQg
YnkgdGhlIHByb2plY3QncyBkaXNjbG9zdXJlIHRyaWFuZ2xlLCB5b3UgY2FuIGZpbmQgdGhlIGd0
ZXN0LmZyYW1ld29yaywgd2hpY2ggY2FuIGJlIGFkZGVkIHRvIHlvdXIgdGFyZ2V0cyAoZGlzY3Vz
c2VkIGJlbG93KS4KLQotIyBNYWtlIGEgVGVzdCBUYXJnZXQgIwotCi1UbyBzdGFydCB3cml0aW5n
IHRlc3RzLCBtYWtlIGEgbmV3ICJTaGVsbCBUb29sIiB0YXJnZXQuIFRoaXMgdGFyZ2V0IHRlbXBs
YXRlIGlzIGF2YWlsYWJsZSB1bmRlciBCU0QsIENvY29hLCBvciBDYXJib24uIEFkZCB5b3VyIHVu
aXQgdGVzdCBzb3VyY2UgY29kZSB0byB0aGUgIkNvbXBpbGUgU291cmNlcyIgYnVpbGQgcGhhc2Ug
b2YgdGhlIHRhcmdldC4KLQotTmV4dCwgeW91J2xsIHdhbnQgdG8gYWRkIGd0ZXN0LmZyYW1ld29y
ayBpbiB0d28gZGlmZmVyZW50IHdheXMsIGRlcGVuZGluZyB1cG9uIHdoaWNoIG9wdGlvbiB5b3Ug
Y2hvc2UgYWJvdmUuCi0KLSAgKiAqKk9wdGlvbiAxKiogLS0tIER1cmluZyBjb21waWxhdGlvbiwg
WGNvZGUgd2lsbCBuZWVkIHRvIGtub3cgdGhhdCB5b3UgYXJlIGxpbmtpbmcgYWdhaW5zdCB0aGUg
Z3Rlc3QuZnJhbWV3b3JrLiBBZGQgdGhlIGd0ZXN0LmZyYW1ld29yayB0byB0aGUgIkxpbmsgQmlu
YXJ5IHdpdGggTGlicmFyaWVzIiBidWlsZCBwaGFzZSBvZiB5b3VyIHRlc3QgdGFyZ2V0LiBUaGlz
IHdpbGwgaW5jbHVkZSB0aGUgR29vZ2xlIFRlc3QgaGVhZGVycyBpbiB5b3VyIGhlYWRlciBzZWFy
Y2ggcGF0aCwgYW5kIHdpbGwgdGVsbCB0aGUgbGlua2VyIHdoZXJlIHRvIGZpbmQgdGhlIGxpYnJh
cnkuCi0gICogKipPcHRpb24gMioqIC0tLSBJZiB5b3VyIHdvcmtpbmcgb3V0IG9mIHRoZSB0cnVu
aywgeW91J2xsIGFsc28gd2FudCB0byBhZGQgZ3Rlc3QuZnJhbWV3b3JrIHRvIHlvdXIgIkxpbmsg
QmluYXJ5IHdpdGggTGlicmFyaWVzIiBidWlsZCBwaGFzZSBvZiB5b3VyIHRlc3QgdGFyZ2V0LiBJ
biBhZGRpdGlvbiwgeW91J2xsICB3YW50IHRvIGFkZCB0aGUgZ3Rlc3QuZnJhbWV3b3JrIGFzIGEg
ZGVwZW5kZW5jeSB0byB5b3VyIHVuaXQgdGVzdCB0YXJnZXQuIFRoaXMgd2F5LCBYY29kZSB3aWxs
IG1ha2Ugc3VyZSB0aGF0IGd0ZXN0LmZyYW1ld29yayBpcyB1cCB0byBkYXRlLCBldmVyeSB0aW1l
IHlvdXIgYnVpbGQgeW91ciB0YXJnZXQuIEZpbmFsbHksIGlmIHlvdSBkb24ndCBzaGFyZSBidWls
ZCBkaXJlY3RvcmllcyB3aXRoIEdvb2dsZSBUZXN0LCB5b3UnbGwgaGF2ZSB0byBjb3B5IHRoZSBn
dGVzdC5mcmFtZXdvcmsgaW50byB5b3VyIG93biBidWlsZCBwcm9kdWN0cyBkaXJlY3RvcnkgdXNp
bmcgYSAiUnVuIFNjcmlwdCIgYnVpbGQgcGhhc2UuCi0KLSMgU2V0IFVwIHRoZSBFeGVjdXRhYmxl
IFJ1biBFbnZpcm9ubWVudCAjCi0KLVNpbmNlIHRoZSB1bml0IHRlc3QgZXhlY3V0YWJsZSBpcyBh
IHNoZWxsIHRvb2wsIGl0IGRvZXNuJ3QgaGF2ZSBhIGJ1bmRsZSB3aXRoIGEgYENvbnRlbnRzL0Zy
YW1ld29ya3NgIGRpcmVjdG9yeSwgaW4gd2hpY2ggdG8gcGxhY2UgZ3Rlc3QuZnJhbWV3b3JrLiBJ
bnN0ZWFkLCB0aGUgZHluYW1pYyBsaW5rZXIgbXVzdCBiZSB0b2xkIGF0IHJ1bnRpbWUgdG8gc2Vh
cmNoIGZvciB0aGUgZnJhbWV3b3JrIGluIGFub3RoZXIgbG9jYXRpb24uIFRoaXMgY2FuIGJlIGFj
Y29tcGxpc2hlZCBieSBzZXR0aW5nIHRoZSAiRFlMRFxfRlJBTUVXT1JLXF9QQVRIIiBlbnZpcm9u
bWVudCB2YXJpYWJsZSBpbiB0aGUgIkVkaXQgQWN0aXZlIEV4ZWN1dGFibGUgLi4uIiBBcmd1bWVu
dHMgdGFiLCB1bmRlciAiVmFyaWFibGVzIHRvIGJlIHNldCBpbiB0aGUgZW52aXJvbm1lbnQ6Ii4g
VGhlIHBhdGggZm9yIHRoaXMgdmFsdWUgaXMgdGhlIHBhdGggKHJlbGF0aXZlIG9yIGFic29sdXRl
KSBvZiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGd0ZXN0LmZyYW1ld29yay4KLQotSWYg
eW91IGhhdmVuJ3Qgc2V0IHVwIHRoZSBEWUxEXF9GUkFNRVdPUktcX1BBVEgsIGNvcnJlY3RseSwg
eW91IG1pZ2h0IGdldCBhIG1lc3NhZ2UgbGlrZSB0aGlzOgotCi1gYGAKLVtTZXNzaW9uIHN0YXJ0
ZWQgYXQgMjAwOC0wOC0xNSAwNjoyMzo1NyAtMDYwMC5dCi0gIGR5bGQ6IExpYnJhcnkgbm90IGxv
YWRlZDogQGxvYWRlcl9wYXRoLy4uL0ZyYW1ld29ya3MvZ3Rlc3QuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvZ3Rlc3QKLSAgICBSZWZlcmVuY2VkIGZyb206IC9Vc2Vycy91c2VybmFtZS9Eb2N1bWVudHMv
U2FuZGJveC9ndGVzdFNhbXBsZS9idWlsZC9EZWJ1Zy9XaWRnZXRGcmFtZXdvcmtUZXN0Ci0gICAg
UmVhc29uOiBpbWFnZSBub3QgZm91bmQKLWBgYAotCi1UbyBjb3JyZWN0IHRoaXMgcHJvYmxlbSwg
Z28gdG8gdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBleGVjdXRhYmxlIG5hbWVkIGlu
ICJSZWZlcmVuY2VkIGZyb206IiB2YWx1ZSBpbiB0aGUgZXJyb3IgbWVzc2FnZSBhYm92ZS4gVGhl
biwgd2l0aCB0aGUgdGVybWluYWwgaW4gdGhpcyBsb2NhdGlvbiwgZmluZCB0aGUgcmVsYXRpdmUg
cGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGd0ZXN0LmZyYW1ld29yay4gVGhh
dCBpcyB0aGUgdmFsdWUgeW91J2xsIG5lZWQgdG8gc2V0IGFzIHRoZSBEWUxEXF9GUkFNRVdPUktc
X1BBVEguCi0KLSMgQnVpbGQgYW5kIEdvICMKLQotTm93LCB3aGVuIHlvdSBjbGljayAiQnVpbGQg
YW5kIEdvIiwgdGhlIHRlc3Qgd2lsbCBiZSBleGVjdXRlZC4gRHVtcGluZyBvdXQgc29tZXRoaW5n
IGxpa2UgdGhpczoKLQotYGBgCi1bU2Vzc2lvbiBzdGFydGVkIGF0IDIwMDgtMDgtMDYgMDY6MzY6
MTMgLTA2MDAuXQotWz09PT09PT09PT1dIFJ1bm5pbmcgMiB0ZXN0cyBmcm9tIDEgdGVzdCBjYXNl
LgotWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KLVstLS0tLS0t
LS0tXSAyIHRlc3RzIGZyb20gV2lkZ2V0SW5pdGlhbGl6ZXJUZXN0Ci1bIFJVTiAgICAgIF0gV2lk
Z2V0SW5pdGlhbGl6ZXJUZXN0LlRlc3RDb25zdHJ1Y3RvcgotWyAgICAgICBPSyBdIFdpZGdldElu
aXRpYWxpemVyVGVzdC5UZXN0Q29uc3RydWN0b3IKLVsgUlVOICAgICAgXSBXaWRnZXRJbml0aWFs
aXplclRlc3QuVGVzdENvbnZlcnNpb24KLVsgICAgICAgT0sgXSBXaWRnZXRJbml0aWFsaXplclRl
c3QuVGVzdENvbnZlcnNpb24KLVstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0
ZWFyLWRvd24KLVs9PT09PT09PT09XSAyIHRlc3RzIGZyb20gMSB0ZXN0IGNhc2UgcmFuLgotWyAg
UEFTU0VEICBdIDIgdGVzdHMuCi0KLVRoZSBEZWJ1Z2dlciBoYXMgZXhpdGVkIHdpdGggc3RhdHVz
IDAuICAKLWBgYAotCi0jIFN1bW1hcnkgIwotCi1Vbml0IHRlc3RpbmcgaXMgYSB2YWx1YWJsZSB3
YXkgdG8gZW5zdXJlIHlvdXIgZGF0YSBtb2RlbCBzdGF5cyB2YWxpZCBldmVuIGR1cmluZyByYXBp
ZCBkZXZlbG9wbWVudCBvciByZWZhY3RvcmluZy4gVGhlIEdvb2dsZSBUZXN0aW5nIEZyYW1ld29y
ayBpcyBhIGdyZWF0IHVuaXQgdGVzdGluZyBmcmFtZXdvcmsgZm9yIEMgYW5kIEMrKyB3aGljaCBp
bnRlZ3JhdGVzIHdlbGwgd2l0aCBhbiBYY29kZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5NTdhNjljNmE5ZTdiZWQ3ZDU3ZWJkNzg3MmZiMDQ3Zjk3MTc1
ZmMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oCisr
KyAvZGV2L251bGwKQEAgLTEsMjk0ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUg
SW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9u
ZyBXYW4pCi0vLwotLy8gVGhlIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgKEdvb2dsZSBU
ZXN0KQotLy8KLS8vIFRoaXMgaGVhZGVyIGZpbGUgZGVmaW5lcyB0aGUgcHVibGljIEFQSSBmb3Ig
ZGVhdGggdGVzdHMuICBJdCBpcwotLy8gI2luY2x1ZGVkIGJ5IGd0ZXN0Lmggc28gYSB1c2VyIGRv
ZXNuJ3QgbmVlZCB0byBpbmNsdWRlIHRoaXMKLS8vIGRpcmVjdGx5LgotCi0jaWZuZGVmIEdURVNU
X0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX0RFQVRIX1RFU1RfSF8KLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBU
aGlzIGZsYWcgY29udHJvbHMgdGhlIHN0eWxlIG9mIGRlYXRoIHRlc3RzLiAgVmFsaWQgdmFsdWVz
IGFyZSAidGhyZWFkc2FmZSIsCi0vLyBtZWFuaW5nIHRoYXQgdGhlIGRlYXRoIHRlc3QgY2hpbGQg
cHJvY2VzcyB3aWxsIHJlLWV4ZWN1dGUgdGhlIHRlc3QgYmluYXJ5Ci0vLyBmcm9tIHRoZSBzdGFy
dCwgcnVubmluZyBvbmx5IGEgc2luZ2xlIGRlYXRoIHRlc3QsIG9yICJmYXN0IiwKLS8vIG1lYW5p
bmcgdGhhdCB0aGUgY2hpbGQgcHJvY2VzcyB3aWxsIGV4ZWN1dGUgdGhlIHRlc3QgbG9naWMgaW1t
ZWRpYXRlbHkKLS8vIGFmdGVyIGZvcmtpbmcuCi1HVEVTVF9ERUNMQVJFX3N0cmluZ18oZGVhdGhf
dGVzdF9zdHlsZSk7Ci0KLSNpZiBHVEVTVF9IQVNfREVBVEhfVEVTVAotCi1uYW1lc3BhY2UgaW50
ZXJuYWwgewotCi0vLyBSZXR1cm5zIGEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhlIGNhbGxlciBpcyBjdXJyZW50bHkKLS8vIGV4ZWN1dGluZyBpbiB0aGUgY29udGV4dCBvZiB0
aGUgZGVhdGggdGVzdCBjaGlsZCBwcm9jZXNzLiAgVG9vbHMgc3VjaCBhcwotLy8gVmFsZ3JpbmQg
aGVhcCBjaGVja2VycyBtYXkgbmVlZCB0aGlzIHRvIG1vZGlmeSB0aGVpciBiZWhhdmlvciBpbiBk
ZWF0aAotLy8gdGVzdHMuICBJTVBPUlRBTlQ6IFRoaXMgaXMgYW4gaW50ZXJuYWwgdXRpbGl0eS4g
IFVzaW5nIGl0IG1heSBicmVhayB0aGUKLS8vIGltcGxlbWVudGF0aW9uIG9mIGRlYXRoIHRlc3Rz
LiAgVXNlciBjb2RlIE1VU1QgTk9UIHVzZSBpdC4KLUdURVNUX0FQSV8gYm9vbCBJbkRlYXRoVGVz
dENoaWxkKCk7Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBUaGUgZm9sbG93aW5n
IG1hY3JvcyBhcmUgdXNlZnVsIGZvciB3cml0aW5nIGRlYXRoIHRlc3RzLgotCi0vLyBIZXJlJ3Mg
d2hhdCBoYXBwZW5zIHdoZW4gYW4gQVNTRVJUX0RFQVRIKiBvciBFWFBFQ1RfREVBVEgqIGlzCi0v
LyBleGVjdXRlZDoKLS8vCi0vLyAgIDEuIEl0IGdlbmVyYXRlcyBhIHdhcm5pbmcgaWYgdGhlcmUg
aXMgbW9yZSB0aGFuIG9uZSBhY3RpdmUKLS8vICAgdGhyZWFkLiAgVGhpcyBpcyBiZWNhdXNlIGl0
J3Mgc2FmZSB0byBmb3JrKCkgb3IgY2xvbmUoKSBvbmx5Ci0vLyAgIHdoZW4gdGhlcmUgaXMgYSBz
aW5nbGUgdGhyZWFkLgotLy8KLS8vICAgMi4gVGhlIHBhcmVudCBwcm9jZXNzIGNsb25lKClzIGEg
c3ViLXByb2Nlc3MgYW5kIHJ1bnMgdGhlIGRlYXRoCi0vLyAgIHRlc3QgaW4gaXQ7IHRoZSBzdWIt
cHJvY2VzcyBleGl0cyB3aXRoIGNvZGUgMCBhdCB0aGUgZW5kIG9mIHRoZQotLy8gICBkZWF0aCB0
ZXN0LCBpZiBpdCBoYXNuJ3QgZXhpdGVkIGFscmVhZHkuCi0vLwotLy8gICAzLiBUaGUgcGFyZW50
IHByb2Nlc3Mgd2FpdHMgZm9yIHRoZSBzdWItcHJvY2VzcyB0byB0ZXJtaW5hdGUuCi0vLwotLy8g
ICA0LiBUaGUgcGFyZW50IHByb2Nlc3MgY2hlY2tzIHRoZSBleGl0IGNvZGUgYW5kIGVycm9yIG1l
c3NhZ2Ugb2YKLS8vICAgdGhlIHN1Yi1wcm9jZXNzLgotLy8KLS8vIEV4YW1wbGVzOgotLy8KLS8v
ICAgQVNTRVJUX0RFQVRIKHNlcnZlci5TZW5kTWVzc2FnZSg1NiwgIkhlbGxvIiksICJJbnZhbGlk
IHBvcnQgbnVtYmVyIik7Ci0vLyAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0vLyAg
ICAgRVhQRUNUX0RFQVRIKHNlcnZlci5Qcm9jZXNzUmVxdWVzdChpKSwKLS8vICAgICAgICAgICAg
ICAgICAgIkludmFsaWQgcmVxdWVzdCAuKiBpbiBQcm9jZXNzUmVxdWVzdCgpIikKLS8vICAgICAg
ICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBkaWUgb24gcmVxdWVzdCAiIDw8IGk7Ci0vLyAgIH0K
LS8vCi0vLyAgIEFTU0VSVF9FWElUKHNlcnZlci5FeGl0Tm93KCksIDo6dGVzdGluZzo6RXhpdGVk
V2l0aENvZGUoMCksICJFeGl0aW5nIik7Ci0vLwotLy8gICBib29sIEtpbGxlZEJ5U0lHSFVQKGlu
dCBleGl0X2NvZGUpIHsKLS8vICAgICByZXR1cm4gV0lGU0lHTkFMRUQoZXhpdF9jb2RlKSAmJiBX
VEVSTVNJRyhleGl0X2NvZGUpID09IFNJR0hVUDsKLS8vICAgfQotLy8KLS8vICAgQVNTRVJUX0VY
SVQoY2xpZW50LkhhbmdVcFNlcnZlcigpLCBLaWxsZWRCeVNJR0hVUCwgIkhhbmdpbmcgdXAhIik7
Ci0vLwotLy8gT24gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCBpbiBkZWF0aCB0ZXN0czoK
LS8vCi0vLyAgIE9uIFBPU0lYLWNvbXBsaWFudCBzeXN0ZW1zICgqbml4KSwgd2UgdXNlIHRoZSA8
cmVnZXguaD4gbGlicmFyeSwKLS8vICAgd2hpY2ggdXNlcyB0aGUgUE9TSVggZXh0ZW5kZWQgcmVn
ZXggc3ludGF4LgotLy8KLS8vICAgT24gb3RoZXIgcGxhdGZvcm1zIChlLmcuIFdpbmRvd3MpLCB3
ZSBvbmx5IHN1cHBvcnQgYSBzaW1wbGUgcmVnZXgKLS8vICAgc3ludGF4IGltcGxlbWVudGVkIGFz
IHBhcnQgb2YgR29vZ2xlIFRlc3QuICBUaGlzIGxpbWl0ZWQKLS8vICAgaW1wbGVtZW50YXRpb24g
c2hvdWxkIGJlIGVub3VnaCBtb3N0IG9mIHRoZSB0aW1lIHdoZW4gd3JpdGluZwotLy8gICBkZWF0
aCB0ZXN0czsgdGhvdWdoIGl0IGxhY2tzIG1hbnkgZmVhdHVyZXMgeW91IGNhbiBmaW5kIGluIFBD
UkUKLS8vICAgb3IgUE9TSVggZXh0ZW5kZWQgcmVnZXggc3ludGF4LiAgRm9yIGV4YW1wbGUsIHdl
IGRvbid0IHN1cHBvcnQKLS8vICAgdW5pb24gKCJ4fHkiKSwgZ3JvdXBpbmcgKCIoeHkpIiksIGJy
YWNrZXRzICgiW3h5XSIpLCBhbmQKLS8vICAgcmVwZXRpdGlvbiBjb3VudCAoInh7NSw3fSIpLCBh
bW9uZyBvdGhlcnMuCi0vLwotLy8gICBCZWxvdyBpcyB0aGUgc3ludGF4IHRoYXQgd2UgZG8gc3Vw
cG9ydC4gIFdlIGNob3NlIGl0IHRvIGJlIGEKLS8vICAgc3Vic2V0IG9mIGJvdGggUENSRSBhbmQg
UE9TSVggZXh0ZW5kZWQgcmVnZXgsIHNvIGl0J3MgZWFzeSB0bwotLy8gICBsZWFybiB3aGVyZXZl
ciB5b3UgY29tZSBmcm9tLiAgSW4gdGhlIGZvbGxvd2luZzogJ0EnIGRlbm90ZXMgYQotLy8gICBs
aXRlcmFsIGNoYXJhY3RlciwgcGVyaW9kICguKSwgb3IgYSBzaW5nbGUgXFwgZXNjYXBlIHNlcXVl
bmNlOwotLy8gICAneCcgYW5kICd5JyBkZW5vdGUgcmVndWxhciBleHByZXNzaW9uczsgJ20nIGFu
ZCAnbicgYXJlIGZvcgotLy8gICBuYXR1cmFsIG51bWJlcnMuCi0vLwotLy8gICAgIGMgICAgIG1h
dGNoZXMgYW55IGxpdGVyYWwgY2hhcmFjdGVyIGMKLS8vICAgICBcXGQgICBtYXRjaGVzIGFueSBk
ZWNpbWFsIGRpZ2l0Ci0vLyAgICAgXFxEICAgbWF0Y2hlcyBhbnkgY2hhcmFjdGVyIHRoYXQncyBu
b3QgYSBkZWNpbWFsIGRpZ2l0Ci0vLyAgICAgXFxmICAgbWF0Y2hlcyBcZgotLy8gICAgIFxcbiAg
IG1hdGNoZXMgXG4KLS8vICAgICBcXHIgICBtYXRjaGVzIFxyCi0vLyAgICAgXFxzICAgbWF0Y2hl
cyBhbnkgQVNDSUkgd2hpdGVzcGFjZSwgaW5jbHVkaW5nIFxuCi0vLyAgICAgXFxTICAgbWF0Y2hl
cyBhbnkgY2hhcmFjdGVyIHRoYXQncyBub3QgYSB3aGl0ZXNwYWNlCi0vLyAgICAgXFx0ICAgbWF0
Y2hlcyBcdAotLy8gICAgIFxcdiAgIG1hdGNoZXMgXHYKLS8vICAgICBcXHcgICBtYXRjaGVzIGFu
eSBsZXR0ZXIsIF8sIG9yIGRlY2ltYWwgZGlnaXQKLS8vICAgICBcXFcgICBtYXRjaGVzIGFueSBj
aGFyYWN0ZXIgdGhhdCBcXHcgZG9lc24ndCBtYXRjaAotLy8gICAgIFxcYyAgIG1hdGNoZXMgYW55
IGxpdGVyYWwgY2hhcmFjdGVyIGMsIHdoaWNoIG11c3QgYmUgYSBwdW5jdHVhdGlvbgotLy8gICAg
IC4gICAgIG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgZXhjZXB0IFxuCi0vLyAgICAgQT8g
ICAgbWF0Y2hlcyAwIG9yIDEgb2NjdXJyZW5jZXMgb2YgQQotLy8gICAgIEEqICAgIG1hdGNoZXMg
MCBvciBtYW55IG9jY3VycmVuY2VzIG9mIEEKLS8vICAgICBBKyAgICBtYXRjaGVzIDEgb3IgbWFu
eSBvY2N1cnJlbmNlcyBvZiBBCi0vLyAgICAgXiAgICAgbWF0Y2hlcyB0aGUgYmVnaW5uaW5nIG9m
IGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxpbmUpCi0vLyAgICAgJCAgICAgbWF0Y2hlcyB0
aGUgZW5kIG9mIGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxpbmUpCi0vLyAgICAgeHkgICAg
bWF0Y2hlcyB4IGZvbGxvd2VkIGJ5IHkKLS8vCi0vLyAgIElmIHlvdSBhY2NpZGVudGFsbHkgdXNl
IFBDUkUgb3IgUE9TSVggZXh0ZW5kZWQgcmVnZXggZmVhdHVyZXMKLS8vICAgbm90IGltcGxlbWVu
dGVkIGJ5IHVzLCB5b3Ugd2lsbCBnZXQgYSBydW4tdGltZSBmYWlsdXJlLiAgSW4gdGhhdAotLy8g
ICBjYXNlLCBwbGVhc2UgdHJ5IHRvIHJld3JpdGUgeW91ciByZWd1bGFyIGV4cHJlc3Npb24gd2l0
aGluIHRoZQotLy8gICBhYm92ZSBzeW50YXguCi0vLwotLy8gICBUaGlzIGltcGxlbWVudGF0aW9u
IGlzICpub3QqIG1lYW50IHRvIGJlIGFzIGhpZ2hseSB0dW5lZCBvciByb2J1c3QKLS8vICAgYXMg
YSBjb21waWxlZCByZWdleCBsaWJyYXJ5LCBidXQgc2hvdWxkIHBlcmZvcm0gd2VsbCBlbm91Z2gg
Zm9yIGEKLS8vICAgZGVhdGggdGVzdCwgd2hpY2ggYWxyZWFkeSBpbmN1cnMgc2lnbmlmaWNhbnQg
b3ZlcmhlYWQgYnkgbGF1bmNoaW5nCi0vLyAgIGEgY2hpbGQgcHJvY2Vzcy4KLS8vCi0vLyBLbm93
biBjYXZlYXRzOgotLy8KLS8vICAgQSAidGhyZWFkc2FmZSIgc3R5bGUgZGVhdGggdGVzdCBvYnRh
aW5zIHRoZSBwYXRoIHRvIHRoZSB0ZXN0Ci0vLyAgIHByb2dyYW0gZnJvbSBhcmd2WzBdIGFuZCBy
ZS1leGVjdXRlcyBpdCBpbiB0aGUgc3ViLXByb2Nlc3MuICBGb3IKLS8vICAgc2ltcGxpY2l0eSwg
dGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lc24ndCBzZWFyY2ggdGhlIFBBVEgKLS8vICAg
d2hlbiBsYXVuY2hpbmcgdGhlIHN1Yi1wcm9jZXNzLiAgVGhpcyBtZWFucyB0aGF0IHRoZSB1c2Vy
IG11c3QKLS8vICAgaW52b2tlIHRoZSB0ZXN0IHByb2dyYW0gdmlhIGEgcGF0aCB0aGF0IGNvbnRh
aW5zIGF0IGxlYXN0IG9uZQotLy8gICBwYXRoIHNlcGFyYXRvciAoZS5nLiBwYXRoL3RvL2Zvb190
ZXN0IGFuZAotLy8gICAvYWJzb2x1dGUvcGF0aC90by9iYXJfdGVzdCBhcmUgZmluZSwgYnV0IGZv
b190ZXN0IGlzIG5vdCkuICBUaGlzCi0vLyAgIGlzIHJhcmVseSBhIHByb2JsZW0gYXMgcGVvcGxl
IHVzdWFsbHkgZG9uJ3QgcHV0IHRoZSB0ZXN0IGJpbmFyeQotLy8gICBkaXJlY3RvcnkgaW4gUEFU
SC4KLS8vCi0vLyBUT0RPKHdhbkBnb29nbGUuY29tKTogbWFrZSB0aHJlYWQtc2FmZSBkZWF0aCB0
ZXN0cyBzZWFyY2ggdGhlIFBBVEguCi0KLS8vIEFzc2VydHMgdGhhdCBhIGdpdmVuIHN0YXRlbWVu
dCBjYXVzZXMgdGhlIHByb2dyYW0gdG8gZXhpdCwgd2l0aCBhbgotLy8gaW50ZWdlciBleGl0IHN0
YXR1cyB0aGF0IHNhdGlzZmllcyBwcmVkaWNhdGUsIGFuZCBlbWl0dGluZyBlcnJvciBvdXRwdXQK
LS8vIHRoYXQgbWF0Y2hlcyByZWdleC4KLSMgZGVmaW5lIEFTU0VSVF9FWElUKHN0YXRlbWVudCwg
cHJlZGljYXRlLCByZWdleCkgXAotICAgIEdURVNUX0RFQVRIX1RFU1RfKHN0YXRlbWVudCwgcHJl
ZGljYXRlLCByZWdleCwgR1RFU1RfRkFUQUxfRkFJTFVSRV8pCi0KLS8vIExpa2UgQVNTRVJUX0VY
SVQsIGJ1dCBjb250aW51ZXMgb24gdG8gc3VjY2Vzc2l2ZSB0ZXN0cyBpbiB0aGUKLS8vIHRlc3Qg
Y2FzZSwgaWYgYW55OgotIyBkZWZpbmUgRVhQRUNUX0VYSVQoc3RhdGVtZW50LCBwcmVkaWNhdGUs
IHJlZ2V4KSBcCi0gICAgR1RFU1RfREVBVEhfVEVTVF8oc3RhdGVtZW50LCBwcmVkaWNhdGUsIHJl
Z2V4LCBHVEVTVF9OT05GQVRBTF9GQUlMVVJFXykKLQotLy8gQXNzZXJ0cyB0aGF0IGEgZ2l2ZW4g
c3RhdGVtZW50IGNhdXNlcyB0aGUgcHJvZ3JhbSB0byBleGl0LCBlaXRoZXIgYnkKLS8vIGV4cGxp
Y2l0bHkgZXhpdGluZyB3aXRoIGEgbm9uemVybyBleGl0IGNvZGUgb3IgYmVpbmcga2lsbGVkIGJ5
IGEKLS8vIHNpZ25hbCwgYW5kIGVtaXR0aW5nIGVycm9yIG91dHB1dCB0aGF0IG1hdGNoZXMgcmVn
ZXguCi0jIGRlZmluZSBBU1NFUlRfREVBVEgoc3RhdGVtZW50LCByZWdleCkgXAotICAgIEFTU0VS
VF9FWElUKHN0YXRlbWVudCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RXhpdGVkVW5zdWNjZXNzZnVs
bHksIHJlZ2V4KQotCi0vLyBMaWtlIEFTU0VSVF9ERUFUSCwgYnV0IGNvbnRpbnVlcyBvbiB0byBz
dWNjZXNzaXZlIHRlc3RzIGluIHRoZQotLy8gdGVzdCBjYXNlLCBpZiBhbnk6Ci0jIGRlZmluZSBF
WFBFQ1RfREVBVEgoc3RhdGVtZW50LCByZWdleCkgXAotICAgIEVYUEVDVF9FWElUKHN0YXRlbWVu
dCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RXhpdGVkVW5zdWNjZXNzZnVsbHksIHJlZ2V4KQotCi0v
LyBUd28gcHJlZGljYXRlIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiB7QVNTRVJULEVYUEVD
VH1fRVhJVCo6Ci0KLS8vIFRlc3RzIHRoYXQgYW4gZXhpdCBjb2RlIGRlc2NyaWJlcyBhIG5vcm1h
bCBleGl0IHdpdGggYSBnaXZlbiBleGl0IGNvZGUuCi1jbGFzcyBHVEVTVF9BUElfIEV4aXRlZFdp
dGhDb2RlIHsKLSBwdWJsaWM6Ci0gIGV4cGxpY2l0IEV4aXRlZFdpdGhDb2RlKGludCBleGl0X2Nv
ZGUpOwotICBib29sIG9wZXJhdG9yKCkoaW50IGV4aXRfc3RhdHVzKSBjb25zdDsKLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IEV4aXRlZFdpdGhDb2RlJiBvdGhlcik7Ci0KLSAgY29uc3Qg
aW50IGV4aXRfY29kZV87Ci19OwotCi0jIGlmICFHVEVTVF9PU19XSU5ET1dTCi0vLyBUZXN0cyB0
aGF0IGFuIGV4aXQgY29kZSBkZXNjcmliZXMgYW4gZXhpdCBkdWUgdG8gdGVybWluYXRpb24gYnkg
YQotLy8gZ2l2ZW4gc2lnbmFsLgotY2xhc3MgR1RFU1RfQVBJXyBLaWxsZWRCeVNpZ25hbCB7Ci0g
cHVibGljOgotICBleHBsaWNpdCBLaWxsZWRCeVNpZ25hbChpbnQgc2lnbnVtKTsKLSAgYm9vbCBv
cGVyYXRvcigpKGludCBleGl0X3N0YXR1cykgY29uc3Q7Ci0gcHJpdmF0ZToKLSAgY29uc3QgaW50
IHNpZ251bV87Ci19OwotIyBlbmRpZiAgLy8gIUdURVNUX09TX1dJTkRPV1MKLQotLy8gRVhQRUNU
X0RFQlVHX0RFQVRIIGFzc2VydHMgdGhhdCB0aGUgZ2l2ZW4gc3RhdGVtZW50cyBkaWUgaW4gZGVi
dWcgbW9kZS4KLS8vIFRoZSBkZWF0aCB0ZXN0aW5nIGZyYW1ld29yayBjYXVzZXMgdGhpcyB0byBo
YXZlIGludGVyZXN0aW5nIHNlbWFudGljcywKLS8vIHNpbmNlIHRoZSBzaWRlZWZmZWN0cyBvZiB0
aGUgY2FsbCBhcmUgb25seSB2aXNpYmxlIGluIG9wdCBtb2RlLCBhbmQgbm90Ci0vLyBpbiBkZWJ1
ZyBtb2RlLgotLy8KLS8vIEluIHByYWN0aWNlLCB0aGlzIGNhbiBiZSB1c2VkIHRvIHRlc3QgZnVu
Y3Rpb25zIHRoYXQgdXRpbGl6ZSB0aGUKLS8vIExPRyhERkFUQUwpIG1hY3JvIHVzaW5nIHRoZSBm
b2xsb3dpbmcgc3R5bGU6Ci0vLwotLy8gaW50IERpZUluRGVidWdPcjEyKGludCogc2lkZWVmZmVj
dCkgewotLy8gICBpZiAoc2lkZWVmZmVjdCkgewotLy8gICAgICpzaWRlZWZmZWN0ID0gMTI7Ci0v
LyAgIH0KLS8vICAgTE9HKERGQVRBTCkgPDwgImRlYXRoIjsKLS8vICAgcmV0dXJuIDEyOwotLy8g
fQotLy8KLS8vIFRFU1QoVGVzdENhc2UsIFRlc3REaWVPcjEyV29ya3NJbkRnYkFuZE9wdCkgewot
Ly8gICBpbnQgc2lkZWVmZmVjdCA9IDA7Ci0vLyAgIC8vIE9ubHkgYXNzZXJ0cyBpbiBkYmcuCi0v
LyAgIEVYUEVDVF9ERUJVR19ERUFUSChEaWVJbkRlYnVnT3IxMigmc2lkZWVmZmVjdCksICJkZWF0
aCIpOwotLy8KLS8vICNpZmRlZiBOREVCVUcKLS8vICAgLy8gb3B0LW1vZGUgaGFzIHNpZGVlZmZl
Y3QgdmlzaWJsZS4KLS8vICAgRVhQRUNUX0VRKDEyLCBzaWRlZWZmZWN0KTsKLS8vICNlbHNlCi0v
LyAgIC8vIGRiZy1tb2RlIG5vIHZpc2libGUgc2lkZWVmZmVjdC4KLS8vICAgRVhQRUNUX0VRKDAs
IHNpZGVlZmZlY3QpOwotLy8gI2VuZGlmCi0vLyB9Ci0vLwotLy8gVGhpcyB3aWxsIGFzc2VydCB0
aGF0IERpZUluRGVidWdSZXR1cm4xMkluT3B0KCkgY3Jhc2hlcyBpbiBkZWJ1ZwotLy8gbW9kZSwg
dXN1YWxseSBkdWUgdG8gYSBEQ0hFQ0sgb3IgTE9HKERGQVRBTCksIGJ1dCByZXR1cm5zIHRoZQot
Ly8gYXBwcm9wcmlhdGUgZmFsbGJhY2sgdmFsdWUgKDEyIGluIHRoaXMgY2FzZSkgaW4gb3B0IG1v
ZGUuIElmIHlvdQotLy8gbmVlZCB0byB0ZXN0IHRoYXQgYSBmdW5jdGlvbiBoYXMgYXBwcm9wcmlh
dGUgc2lkZS1lZmZlY3RzIGluIG9wdAotLy8gbW9kZSwgaW5jbHVkZSBhc3NlcnRpb25zIGFnYWlu
c3QgdGhlIHNpZGUtZWZmZWN0cy4gIEEgZ2VuZXJhbAotLy8gcGF0dGVybiBmb3IgdGhpcyBpczoK
LS8vCi0vLyBFWFBFQ1RfREVCVUdfREVBVEgoewotLy8gICAvLyBTaWRlLWVmZmVjdHMgaGVyZSB3
aWxsIGhhdmUgYW4gZWZmZWN0IGFmdGVyIHRoaXMgc3RhdGVtZW50IGluCi0vLyAgIC8vIG9wdCBt
b2RlLCBidXQgbm9uZSBpbiBkZWJ1ZyBtb2RlLgotLy8gICBFWFBFQ1RfRVEoMTIsIERpZUluRGVi
dWdPcjEyKCZzaWRlZWZmZWN0KSk7Ci0vLyB9LCAiZGVhdGgiKTsKLS8vCi0jIGlmZGVmIE5ERUJV
RwotCi0jICBkZWZpbmUgRVhQRUNUX0RFQlVHX0RFQVRIKHN0YXRlbWVudCwgcmVnZXgpIFwKLSAg
R1RFU1RfRVhFQ1VURV9TVEFURU1FTlRfKHN0YXRlbWVudCwgcmVnZXgpCi0KLSMgIGRlZmluZSBB
U1NFUlRfREVCVUdfREVBVEgoc3RhdGVtZW50LCByZWdleCkgXAotICBHVEVTVF9FWEVDVVRFX1NU
QVRFTUVOVF8oc3RhdGVtZW50LCByZWdleCkKLQotIyBlbHNlCi0KLSMgIGRlZmluZSBFWFBFQ1Rf
REVCVUdfREVBVEgoc3RhdGVtZW50LCByZWdleCkgXAotICBFWFBFQ1RfREVBVEgoc3RhdGVtZW50
LCByZWdleCkKLQotIyAgZGVmaW5lIEFTU0VSVF9ERUJVR19ERUFUSChzdGF0ZW1lbnQsIHJlZ2V4
KSBcCi0gIEFTU0VSVF9ERUFUSChzdGF0ZW1lbnQsIHJlZ2V4KQotCi0jIGVuZGlmICAvLyBOREVC
VUcgZm9yIEVYUEVDVF9ERUJVR19ERUFUSAotI2VuZGlmICAvLyBHVEVTVF9IQVNfREVBVEhfVEVT
VAotCi0vLyBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKHN0YXRlbWVudCwgcmVnZXgpIGFuZAot
Ly8gQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRChzdGF0ZW1lbnQsIHJlZ2V4KSBleHBhbmQgdG8g
cmVhbCBkZWF0aCB0ZXN0cyBpZgotLy8gZGVhdGggdGVzdHMgYXJlIHN1cHBvcnRlZDsgb3RoZXJ3
aXNlIHRoZXkganVzdCBpc3N1ZSBhIHdhcm5pbmcuICBUaGlzIGlzCi0vLyB1c2VmdWwgd2hlbiB5
b3UgYXJlIGNvbWJpbmluZyBkZWF0aCB0ZXN0IGFzc2VydGlvbnMgd2l0aCBub3JtYWwgdGVzdAot
Ly8gYXNzZXJ0aW9ucyBpbiBvbmUgdGVzdC4KLSNpZiBHVEVTVF9IQVNfREVBVEhfVEVTVAotIyBk
ZWZpbmUgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChzdGF0ZW1lbnQsIHJlZ2V4KSBcCi0gICAg
RVhQRUNUX0RFQVRIKHN0YXRlbWVudCwgcmVnZXgpCi0jIGRlZmluZSBBU1NFUlRfREVBVEhfSUZf
U1VQUE9SVEVEKHN0YXRlbWVudCwgcmVnZXgpIFwKLSAgICBBU1NFUlRfREVBVEgoc3RhdGVtZW50
LCByZWdleCkKLSNlbHNlCi0jIGRlZmluZSBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKHN0YXRl
bWVudCwgcmVnZXgpIFwKLSAgICBHVEVTVF9VTlNVUFBPUlRFRF9ERUFUSF9URVNUXyhzdGF0ZW1l
bnQsIHJlZ2V4LCApCi0jIGRlZmluZSBBU1NFUlRfREVBVEhfSUZfU1VQUE9SVEVEKHN0YXRlbWVu
dCwgcmVnZXgpIFwKLSAgICBHVEVTVF9VTlNVUFBPUlRFRF9ERUFUSF9URVNUXyhzdGF0ZW1lbnQs
IHJlZ2V4LCByZXR1cm4pCi0jZW5kaWYKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2Vu
ZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0RFQVRIX1RFU1RfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2Fn
ZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tZXNz
YWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlODc5YmNhNzkyN2FmYWUyNDk5
YTYxMzdhYjI2ZjQ5OTFmYmJhY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVz
dC1tZXNzYWdlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNTAgKzAsMCBAQAotLy8gQ29weXJpZ2h0
IDIwMDUsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24u
Ci0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
Ly8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2ds
ZS5jb20gKFpoYW55b25nIFdhbikKLS8vCi0vLyBUaGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1l
d29yayAoR29vZ2xlIFRlc3QpCi0vLwotLy8gVGhpcyBoZWFkZXIgZmlsZSBkZWZpbmVzIHRoZSBN
ZXNzYWdlIGNsYXNzLgotLy8KLS8vIElNUE9SVEFOVCBOT1RFOiBEdWUgdG8gbGltaXRhdGlvbiBv
ZiB0aGUgQysrIGxhbmd1YWdlLCB3ZSBoYXZlIHRvCi0vLyBsZWF2ZSBzb21lIGludGVybmFsIGlt
cGxlbWVudGF0aW9uIGRldGFpbHMgaW4gdGhpcyBoZWFkZXIgZmlsZS4KLS8vIFRoZXkgYXJlIGNs
ZWFybHkgbWFya2VkIGJ5IGNvbW1lbnRzIGxpa2UgdGhpczoKLS8vCi0vLyAgIC8vIElOVEVSTkFM
IElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KLS8vCi0vLyBT
dWNoIGNvZGUgaXMgTk9UIG1lYW50IHRvIGJlIHVzZWQgYnkgYSB1c2VyIGRpcmVjdGx5LCBhbmQg
aXMgc3ViamVjdAotLy8gdG8gQ0hBTkdFIFdJVEhPVVQgTk9USUNFLiAgVGhlcmVmb3JlIERPIE5P
VCBERVBFTkQgT04gSVQgaW4gYSB1c2VyCi0vLyBwcm9ncmFtIQotCi0jaWZuZGVmIEdURVNUX0lO
Q0xVREVfR1RFU1RfR1RFU1RfTUVTU0FHRV9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX01FU1NBR0VfSF8KLQotI2luY2x1ZGUgPGxpbWl0cz4KLQotI2luY2x1ZGUgImd0ZXN0
L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotLy8gRW5zdXJlcyB0aGF0IHRoZXJlIGlzIGF0IGxl
YXN0IG9uZSBvcGVyYXRvcjw8IGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgotLy8gU2VlIE1lc3Nh
Z2UmIG9wZXJhdG9yPDwoLi4uKSBiZWxvdyBmb3Igd2h5Lgotdm9pZCBvcGVyYXRvcjw8KGNvbnN0
IHRlc3Rpbmc6OmludGVybmFsOjpTZWNyZXQmLCBpbnQpOwotCi1uYW1lc3BhY2UgdGVzdGluZyB7
Ci0KLS8vIFRoZSBNZXNzYWdlIGNsYXNzIHdvcmtzIGxpa2UgYW4gb3N0cmVhbSByZXBlYXRlci4K
LS8vCi0vLyBUeXBpY2FsIHVzYWdlOgotLy8KLS8vICAgMS4gWW91IHN0cmVhbSBhIGJ1bmNoIG9m
IHZhbHVlcyB0byBhIE1lc3NhZ2Ugb2JqZWN0LgotLy8gICAgICBJdCB3aWxsIHJlbWVtYmVyIHRo
ZSB0ZXh0IGluIGEgc3RyaW5nc3RyZWFtLgotLy8gICAyLiBUaGVuIHlvdSBzdHJlYW0gdGhlIE1l
c3NhZ2Ugb2JqZWN0IHRvIGFuIG9zdHJlYW0uCi0vLyAgICAgIFRoaXMgY2F1c2VzIHRoZSB0ZXh0
IGluIHRoZSBNZXNzYWdlIHRvIGJlIHN0cmVhbWVkCi0vLyAgICAgIHRvIHRoZSBvc3RyZWFtLgot
Ly8KLS8vIEZvciBleGFtcGxlOwotLy8KLS8vICAgdGVzdGluZzo6TWVzc2FnZSBmb287Ci0vLyAg
IGZvbyA8PCAxIDw8ICIgIT0gIiA8PCAyOwotLy8gICBzdGQ6OmNvdXQgPDwgZm9vOwotLy8KLS8v
IHdpbGwgcHJpbnQgIjEgIT0gMiIuCi0vLwotLy8gTWVzc2FnZSBpcyBub3QgaW50ZW5kZWQgdG8g
YmUgaW5oZXJpdGVkIGZyb20uICBJbiBwYXJ0aWN1bGFyLCBpdHMKLS8vIGRlc3RydWN0b3IgaXMg
bm90IHZpcnR1YWwuCi0vLwotLy8gTm90ZSB0aGF0IHN0cmluZ3N0cmVhbSBiZWhhdmVzIGRpZmZl
cmVudGx5IGluIGdjYyBhbmQgaW4gTVNWQy4gIFlvdQotLy8gY2FuIHN0cmVhbSBhIE5VTEwgY2hh
ciBwb2ludGVyIHRvIGl0IGluIHRoZSBmb3JtZXIsIGJ1dCBub3QgaW4gdGhlCi0vLyBsYXR0ZXIg
KGl0IGNhdXNlcyBhbiBhY2Nlc3MgdmlvbGF0aW9uIGlmIHlvdSBkbykuICBUaGUgTWVzc2FnZQot
Ly8gY2xhc3MgaGlkZXMgdGhpcyBkaWZmZXJlbmNlIGJ5IHRyZWF0aW5nIGEgTlVMTCBjaGFyIHBv
aW50ZXIgYXMKLS8vICIobnVsbCkiLgotY2xhc3MgR1RFU1RfQVBJXyBNZXNzYWdlIHsKLSBwcml2
YXRlOgotICAvLyBUaGUgdHlwZSBvZiBiYXNpYyBJTyBtYW5pcHVsYXRvcnMgKGVuZGwsIGVuZHMs
IGFuZCBmbHVzaCkgZm9yCi0gIC8vIG5hcnJvdyBzdHJlYW1zLgotICB0eXBlZGVmIHN0ZDo6b3N0
cmVhbSYgKCpCYXNpY05hcnJvd0lvTWFuaXApKHN0ZDo6b3N0cmVhbSYpOwotCi0gcHVibGljOgot
ICAvLyBDb25zdHJ1Y3RzIGFuIGVtcHR5IE1lc3NhZ2UuCi0gIE1lc3NhZ2UoKTsKLQotICAvLyBD
b3B5IGNvbnN0cnVjdG9yLgotICBNZXNzYWdlKGNvbnN0IE1lc3NhZ2UmIG1zZykgOiBzc18obmV3
IDo6c3RkOjpzdHJpbmdzdHJlYW0pIHsgIC8vIE5PTElOVAotICAgICpzc18gPDwgbXNnLkdldFN0
cmluZygpOwotICB9Ci0KLSAgLy8gQ29uc3RydWN0cyBhIE1lc3NhZ2UgZnJvbSBhIEMtc3RyaW5n
LgotICBleHBsaWNpdCBNZXNzYWdlKGNvbnN0IGNoYXIqIHN0cikgOiBzc18obmV3IDo6c3RkOjpz
dHJpbmdzdHJlYW0pIHsKLSAgICAqc3NfIDw8IHN0cjsKLSAgfQotCi0jaWYgR1RFU1RfT1NfU1lN
QklBTgotICAvLyBTdHJlYW1zIGEgdmFsdWUgKGVpdGhlciBhIHBvaW50ZXIgb3Igbm90KSB0byB0
aGlzIG9iamVjdC4KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIGlubGluZSBNZXNzYWdlJiBv
cGVyYXRvciA8PChjb25zdCBUJiB2YWx1ZSkgewotICAgIFN0cmVhbUhlbHBlcih0eXBlbmFtZSBp
bnRlcm5hbDo6aXNfcG9pbnRlcjxUPjo6dHlwZSgpLCB2YWx1ZSk7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0jZWxzZQotICAvLyBTdHJlYW1zIGEgbm9uLXBvaW50ZXIgdmFsdWUgdG8gdGhpcyBv
YmplY3QuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBpbmxpbmUgTWVzc2FnZSYgb3BlcmF0
b3IgPDwoY29uc3QgVCYgdmFsKSB7Ci0gICAgLy8gU29tZSBsaWJyYXJpZXMgb3ZlcmxvYWQgPDwg
Zm9yIFNUTCBjb250YWluZXJzLiAgVGhlc2UKLSAgICAvLyBvdmVybG9hZHMgYXJlIGRlZmluZWQg
aW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UgaW5zdGVhZCBvZiA6OnN0ZC4KLSAgICAvLwotICAgIC8v
IEMrKydzIHN5bWJvbCBsb29rdXAgcnVsZSAoaS5lLiBLb2VuaWcgbG9va3VwKSBzYXlzIHRoYXQg
dGhlc2UKLSAgICAvLyBvdmVybG9hZHMgYXJlIHZpc2libGUgaW4gZWl0aGVyIHRoZSBzdGQgbmFt
ZXNwYWNlIG9yIHRoZSBnbG9iYWwKLSAgICAvLyBuYW1lc3BhY2UsIGJ1dCBub3Qgb3RoZXIgbmFt
ZXNwYWNlcywgaW5jbHVkaW5nIHRoZSB0ZXN0aW5nCi0gICAgLy8gbmFtZXNwYWNlIHdoaWNoIEdv
b2dsZSBUZXN0J3MgTWVzc2FnZSBjbGFzcyBpcyBpbi4KLSAgICAvLwotICAgIC8vIFRvIGFsbG93
IFNUTCBjb250YWluZXJzIChhbmQgb3RoZXIgdHlwZXMgdGhhdCBoYXMgYSA8PCBvcGVyYXRvcgot
ICAgIC8vIGRlZmluZWQgaW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UpIHRvIGJlIHVzZWQgaW4gR29v
Z2xlIFRlc3QKLSAgICAvLyBhc3NlcnRpb25zLCB0ZXN0aW5nOjpNZXNzYWdlIG11c3QgYWNjZXNz
IHRoZSBjdXN0b20gPDwgb3BlcmF0b3IKLSAgICAvLyBmcm9tIHRoZSBnbG9iYWwgbmFtZXNwYWNl
LiAgV2l0aCB0aGlzIHVzaW5nIGRlY2xhcmF0aW9uLAotICAgIC8vIG92ZXJsb2FkcyBvZiA8PCBk
ZWZpbmVkIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGFuZCB0aG9zZQotICAgIC8vIHZpc2libGUg
dmlhIEtvZW5pZyBsb29rdXAgYXJlIGJvdGggZXhwb3NlZCBpbiB0aGlzIGZ1bmN0aW9uLgotICAg
IHVzaW5nIDo6b3BlcmF0b3IgPDw7Ci0gICAgKnNzXyA8PCB2YWw7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0KLSAgLy8gU3RyZWFtcyBhIHBvaW50ZXIgdmFsdWUgdG8gdGhpcyBvYmplY3QuCi0g
IC8vCi0gIC8vIFRoaXMgZnVuY3Rpb24gaXMgYW4gb3ZlcmxvYWQgb2YgdGhlIHByZXZpb3VzIG9u
ZS4gIFdoZW4geW91Ci0gIC8vIHN0cmVhbSBhIHBvaW50ZXIgdG8gYSBNZXNzYWdlLCB0aGlzIGRl
ZmluaXRpb24gd2lsbCBiZSB1c2VkIGFzIGl0Ci0gIC8vIGlzIG1vcmUgc3BlY2lhbGl6ZWQuICAo
VGhlIEMrKyBTdGFuZGFyZCwgc2VjdGlvbgotICAvLyBbdGVtcC5mdW5jLm9yZGVyXS4pICBJZiB5
b3Ugc3RyZWFtIGEgbm9uLXBvaW50ZXIsIHRoZW4gdGhlCi0gIC8vIHByZXZpb3VzIGRlZmluaXRp
b24gd2lsbCBiZSB1c2VkLgotICAvLwotICAvLyBUaGUgcmVhc29uIGZvciB0aGlzIG92ZXJsb2Fk
IGlzIHRoYXQgc3RyZWFtaW5nIGEgTlVMTCBwb2ludGVyIHRvCi0gIC8vIG9zdHJlYW0gaXMgdW5k
ZWZpbmVkIGJlaGF2aW9yLiAgRGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciwgeW91Ci0gIC8vIG1h
eSBnZXQgIjAiLCAiKG5pbCkiLCAiKG51bGwpIiwgb3IgYW4gYWNjZXNzIHZpb2xhdGlvbi4gIFRv
Ci0gIC8vIGVuc3VyZSBjb25zaXN0ZW50IHJlc3VsdCBhY3Jvc3MgY29tcGlsZXJzLCB3ZSBhbHdh
eXMgdHJlYXQgTlVMTAotICAvLyBhcyAiKG51bGwpIi4KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci0gIGlubGluZSBNZXNzYWdlJiBvcGVyYXRvciA8PChUKiBjb25zdCYgcG9pbnRlcikgeyAgLy8g
Tk9MSU5UCi0gICAgaWYgKHBvaW50ZXIgPT0gTlVMTCkgewotICAgICAgKnNzXyA8PCAiKG51bGwp
IjsKLSAgICB9IGVsc2UgewotICAgICAgKnNzXyA8PCBwb2ludGVyOwotICAgIH0KLSAgICByZXR1
cm4gKnRoaXM7Ci0gIH0KLSNlbmRpZiAgLy8gR1RFU1RfT1NfU1lNQklBTgotCi0gIC8vIFNpbmNl
IHRoZSBiYXNpYyBJTyBtYW5pcHVsYXRvcnMgYXJlIG92ZXJsb2FkZWQgZm9yIGJvdGggbmFycm93
Ci0gIC8vIGFuZCB3aWRlIHN0cmVhbXMsIHdlIGhhdmUgdG8gcHJvdmlkZSB0aGlzIHNwZWNpYWxp
emVkIGRlZmluaXRpb24KLSAgLy8gb2Ygb3BlcmF0b3IgPDwsIGV2ZW4gdGhvdWdoIGl0cyBib2R5
IGlzIHRoZSBzYW1lIGFzIHRoZQotICAvLyB0ZW1wbGF0aXplZCB2ZXJzaW9uIGFib3ZlLiAgV2l0
aG91dCB0aGlzIGRlZmluaXRpb24sIHN0cmVhbWluZwotICAvLyBlbmRsIG9yIG90aGVyIGJhc2lj
IElPIG1hbmlwdWxhdG9ycyB0byBNZXNzYWdlIHdpbGwgY29uZnVzZSB0aGUKLSAgLy8gY29tcGls
ZXIuCi0gIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KEJhc2ljTmFycm93SW9NYW5pcCB2YWwpIHsKLSAg
ICAqc3NfIDw8IHZhbDsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICAvLyBJbnN0ZWFkIG9m
IDEvMCwgd2Ugd2FudCB0byBzZWUgdHJ1ZS9mYWxzZSBmb3IgYm9vbCB2YWx1ZXMuCi0gIE1lc3Nh
Z2UmIG9wZXJhdG9yIDw8KGJvb2wgYikgewotICAgIHJldHVybiAqdGhpcyA8PCAoYiA/ICJ0cnVl
IiA6ICJmYWxzZSIpOwotICB9Ci0KLSAgLy8gVGhlc2UgdHdvIG92ZXJsb2FkcyBhbGxvdyBzdHJl
YW1pbmcgYSB3aWRlIEMgc3RyaW5nIHRvIGEgTWVzc2FnZQotICAvLyB1c2luZyB0aGUgVVRGLTgg
ZW5jb2RpbmcuCi0gIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KGNvbnN0IHdjaGFyX3QqIHdpZGVfY19z
dHIpOwotICBNZXNzYWdlJiBvcGVyYXRvciA8PCh3Y2hhcl90KiB3aWRlX2Nfc3RyKTsKLQotI2lm
IEdURVNUX0hBU19TVERfV1NUUklORwotICAvLyBDb252ZXJ0cyB0aGUgZ2l2ZW4gd2lkZSBzdHJp
bmcgdG8gYSBuYXJyb3cgc3RyaW5nIHVzaW5nIHRoZSBVVEYtOAotICAvLyBlbmNvZGluZywgYW5k
IHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotICBNZXNzYWdlJiBv
cGVyYXRvciA8PChjb25zdCA6OnN0ZDo6d3N0cmluZyYgd3N0cik7Ci0jZW5kaWYgIC8vIEdURVNU
X0hBU19TVERfV1NUUklORwotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0gIC8vIENv
bnZlcnRzIHRoZSBnaXZlbiB3aWRlIHN0cmluZyB0byBhIG5hcnJvdyBzdHJpbmcgdXNpbmcgdGhl
IFVURi04Ci0gIC8vIGVuY29kaW5nLCBhbmQgc3RyZWFtcyB0aGUgcmVzdWx0IHRvIHRoaXMgTWVz
c2FnZSBvYmplY3QuCi0gIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KGNvbnN0IDo6d3N0cmluZyYgd3N0
cik7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotCi0gIC8vIEdldHMgdGhl
IHRleHQgc3RyZWFtZWQgdG8gdGhpcyBvYmplY3Qgc28gZmFyIGFzIGFuIHN0ZDo6c3RyaW5nLgot
ICAvLyBFYWNoICdcMCcgY2hhcmFjdGVyIGluIHRoZSBidWZmZXIgaXMgcmVwbGFjZWQgd2l0aCAi
XFwwIi4KLSAgLy8KLSAgLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElO
IEEgVVNFUiBQUk9HUkFNLgotICBzdGQ6OnN0cmluZyBHZXRTdHJpbmcoKSBjb25zdDsKLQotIHBy
aXZhdGU6Ci0KLSNpZiBHVEVTVF9PU19TWU1CSUFOCi0gIC8vIFRoZXNlIGFyZSBuZWVkZWQgYXMg
dGhlIE5va2lhIFN5bWJpYW4gQ29tcGlsZXIgY2Fubm90IGRlY2lkZSBiZXR3ZWVuCi0gIC8vIGNv
bnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1bmN0aW9uIHRlbXBsYXRlLiBUaGUgTm9raWEgY29t
cGlsZXIgX2Nhbl8KLSAgLy8gZGVjaWRlIGJldHdlZW4gY2xhc3MgdGVtcGxhdGUgc3BlY2lhbGl6
YXRpb25zIGZvciBUIGFuZCBUKiwgc28gYQotICAvLyB0cjE6OnR5cGVfdHJhaXRzLWxpa2UgaXNf
cG9pbnRlciB3b3JrcywgYW5kIHdlIGNhbiBvdmVybG9hZCBvbiB0aGF0LgotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgaW5saW5lIHZvaWQgU3RyZWFtSGVscGVyKGludGVybmFsOjp0cnVlX3R5
cGUgLyppc19wb2ludGVyKi8sIFQqIHBvaW50ZXIpIHsKLSAgICBpZiAocG9pbnRlciA9PSBOVUxM
KSB7Ci0gICAgICAqc3NfIDw8ICIobnVsbCkiOwotICAgIH0gZWxzZSB7Ci0gICAgICAqc3NfIDw8
IHBvaW50ZXI7Ci0gICAgfQotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBpbmxpbmUg
dm9pZCBTdHJlYW1IZWxwZXIoaW50ZXJuYWw6OmZhbHNlX3R5cGUgLyppc19wb2ludGVyKi8sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUJiB2YWx1ZSkgewotICAgIC8vIFNlZSB0
aGUgY29tbWVudHMgaW4gTWVzc2FnZSYgb3BlcmF0b3IgPDwoY29uc3QgVCYpIGFib3ZlIGZvciB3
aHkKLSAgICAvLyB3ZSBuZWVkIHRoaXMgdXNpbmcgc3RhdGVtZW50LgotICAgIHVzaW5nIDo6b3Bl
cmF0b3IgPDw7Ci0gICAgKnNzXyA8PCB2YWx1ZTsKLSAgfQotI2VuZGlmICAvLyBHVEVTVF9PU19T
WU1CSUFOCi0KLSAgLy8gV2UnbGwgaG9sZCB0aGUgdGV4dCBzdHJlYW1lZCB0byB0aGlzIG9iamVj
dCBoZXJlLgotICBjb25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6OnN0cmluZ3N0cmVh
bT4gc3NfOwotCi0gIC8vIFdlIGRlY2xhcmUgKGJ1dCBkb24ndCBpbXBsZW1lbnQpIHRoaXMgdG8g
cHJldmVudCB0aGUgY29tcGlsZXIKLSAgLy8gZnJvbSBpbXBsZW1lbnRpbmcgdGhlIGFzc2lnbm1l
bnQgb3BlcmF0b3IuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IE1lc3NhZ2UmKTsKLX07Ci0KLS8v
IFN0cmVhbXMgYSBNZXNzYWdlIHRvIGFuIG9zdHJlYW0uCi1pbmxpbmUgc3RkOjpvc3RyZWFtJiBv
cGVyYXRvciA8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBNZXNzYWdlJiBzYikgewotICByZXR1
cm4gb3MgPDwgc2IuR2V0U3RyaW5nKCk7Ci19Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8v
IENvbnZlcnRzIGEgc3RyZWFtYWJsZSB2YWx1ZSB0byBhbiBzdGQ6OnN0cmluZy4gIEEgTlVMTCBw
b2ludGVyIGlzCi0vLyBjb252ZXJ0ZWQgdG8gIihudWxsKSIuICBXaGVuIHRoZSBpbnB1dCB2YWx1
ZSBpcyBhIDo6c3RyaW5nLAotLy8gOjpzdGQ6OnN0cmluZywgOjp3c3RyaW5nLCBvciA6OnN0ZDo6
d3N0cmluZyBvYmplY3QsIGVhY2ggTlVMCi0vLyBjaGFyYWN0ZXIgaW4gaXQgaXMgcmVwbGFjZWQg
d2l0aCAiXFwwIi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RkOjpzdHJpbmcgU3RyZWFtYWJs
ZVRvU3RyaW5nKGNvbnN0IFQmIHN0cmVhbWFibGUpIHsKLSAgcmV0dXJuIChNZXNzYWdlKCkgPDwg
c3RyZWFtYWJsZSkuR2V0U3RyaW5nKCk7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAot
fSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX01FU1NBR0VfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0
L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgzZGQ4ZGFhYWQyNGQzMWEzMzllMWI4YTZmNzgzOGJkMDViZmIzMGUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3Bh
cnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKKysrIC9kZXYv
bnVsbApAQCAtMSwxNDM3ICswLDAgQEAKLS8vIFRoaXMgZmlsZSB3YXMgR0VORVJBVEVEIGJ5IGNv
bW1hbmQ6Ci0vLyAgICAgcHVtcC5weSBndGVzdC1wYXJhbS10ZXN0LmgucHVtcAotLy8gRE8gTk9U
IEVESVQgQlkgSEFORCEhIQotCi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLS8vIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0v
LyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0v
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0vLwotLy8gQXV0aG9yczogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBMb3NldikKLS8v
Ci0vLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRlcml6ZWQg
dGVzdHMKLS8vIGluIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQot
Ly8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJUFQuICBETyBOT1QgRURJVCBC
WSBIQU5EIQotLy8KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNU
X0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXwotCi0K
LS8vIFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2Rl
IHdpdGggZGlmZmVyZW50Ci0vLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBj
b3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4KLS8vCi0vLyBIZXJlIGlzIGhvdyB5b3UgdXNlIHZhbHVl
LXBhcmFtZXRlcml6ZWQgdGVzdHM6Ci0KLSNpZiAwCi0KLS8vIFRvIHdyaXRlIHZhbHVlLXBhcmFt
ZXRlcml6ZWQgdGVzdHMsIGZpcnN0IHlvdSBzaG91bGQgZGVmaW5lIGEgZml4dHVyZQotLy8gY2xh
c3MuIEl0IGlzIHVzdWFsbHkgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08VD4g
KHNlZSBiZWxvdyBmb3IKLS8vIGFub3RoZXIgaW5oZXJpdGFuY2Ugc2NoZW1lIHRoYXQncyBzb21l
dGltZXMgdXNlZnVsIGluIG1vcmUgY29tcGxpY2F0ZWQKLS8vIGNsYXNzIGhpZXJhcmNoaWVzKSwg
d2hlcmUgdGhlIHR5cGUgb2YgeW91ciBwYXJhbWV0ZXIgdmFsdWVzLgotLy8gVGVzdFdpdGhQYXJh
bTxUPiBpcyBpdHNlbGYgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3QuIFQgY2FuIGJlIGFueQot
Ly8gY29weWFibGUgdHlwZS4gSWYgaXQncyBhIHJhdyBwb2ludGVyLCB5b3UgYXJlIHJlc3BvbnNp
YmxlIGZvciBtYW5hZ2luZyB0aGUKLS8vIGxpZmVzcGFuIG9mIHRoZSBwb2ludGVkIHZhbHVlcy4K
LQotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Y29uc3Qg
Y2hhcio+IHsKLSAgLy8gWW91IGNhbiBpbXBsZW1lbnQgYWxsIHRoZSB1c3VhbCBjbGFzcyBmaXh0
dXJlIG1lbWJlcnMgaGVyZS4KLX07Ci0KLS8vIFRoZW4sIHVzZSB0aGUgVEVTVF9QIG1hY3JvIHRv
IGRlZmluZSBhcyBtYW55IHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGZvciB0aGlzIGZpeHR1cmUg
YXMgeW91IHdhbnQuIFRoZSBfUCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIgotLy8gb3Ig
InBhdHRlcm4iLCB3aGljaGV2ZXIgeW91IHByZWZlciB0byB0aGluay4KLQotVEVTVF9QKEZvb1Rl
c3QsIERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIGFjY2VzcyB0aGUgdGVzdCBwYXJh
bWV0ZXIgd2l0aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAgLy8gb2YgdGhlIFRlc3RXaXRoUGFy
YW08VD4gY2xhc3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFoKEdldFBhcmFtKCkpKTsKLSAgLi4u
Ci19Ci0KLVRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewotICAuLi4KLX0KLQotLy8gRmlu
YWxseSwgeW91IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgdG8gaW5zdGFudGlhdGUg
dGhlIHRlc3QKLS8vIGNhc2Ugd2l0aCBhbnkgc2V0IG9mIHBhcmFtZXRlcnMgeW91IHdhbnQuIEdv
b2dsZSBUZXN0IGRlZmluZXMgYSBudW1iZXIKLS8vIG9mIGZ1bmN0aW9ucyBmb3IgZ2VuZXJhdGlu
ZyB0ZXN0IHBhcmFtZXRlcnMuIFRoZXkgcmV0dXJuIHdoYXQgd2UgY2FsbAotLy8gKHN1cnByaXNl
ISkgcGFyYW1ldGVyIGdlbmVyYXRvcnMuIEhlcmUgaXMgYSAgc3VtbWFyeSBvZiB0aGVtLCB3aGlj
aAotLy8gYXJlIGFsbCBpbiB0aGUgdGVzdGluZyBuYW1lc3BhY2U6Ci0vLwotLy8KLS8vICBSYW5n
ZShiZWdpbiwgZW5kIFssIHN0ZXBdKSAtIFlpZWxkcyB2YWx1ZXMge2JlZ2luLCBiZWdpbitzdGVw
LAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4rc3RlcCtzdGVwLCAuLi59
LiBUaGUgdmFsdWVzIGRvIG5vdAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5j
bHVkZSBlbmQuIHN0ZXAgZGVmYXVsdHMgdG8gMS4KLS8vICBWYWx1ZXModjEsIHYyLCAuLi4sIHZO
KSAgICAtIFlpZWxkcyB2YWx1ZXMge3YxLCB2MiwgLi4uLCB2Tn0uCi0vLyAgVmFsdWVzSW4oY29u
dGFpbmVyKSAgICAgICAgLSBZaWVsZHMgdmFsdWVzIGZyb20gYSBDLXN0eWxlIGFycmF5LCBhbiBT
VEwKLS8vICBWYWx1ZXNJbihiZWdpbixlbmQpICAgICAgICAgIGNvbnRhaW5lciwgb3IgYW4gaXRl
cmF0b3IgcmFuZ2UgW2JlZ2luLCBlbmQpLgotLy8gIEJvb2woKSAgICAgICAgICAgICAgICAgICAg
IC0gWWllbGRzIHNlcXVlbmNlIHtmYWxzZSwgdHJ1ZX0uCi0vLyAgQ29tYmluZShnMSwgZzIsIC4u
LiwgZ04pICAgLSBZaWVsZHMgYWxsIGNvbWJpbmF0aW9ucyAodGhlIENhcnRlc2lhbiBwcm9kdWN0
Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIG1hdGggc2F2dnkpIG9m
IHRoZSB2YWx1ZXMgZ2VuZXJhdGVkCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
eSB0aGUgTiBnZW5lcmF0b3JzLgotLy8KLS8vIEZvciBtb3JlIGRldGFpbHMsIHNlZSBjb21tZW50
cyBhdCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGJlbG93Ci0vLyBpbiB0aGlz
IGZpbGUuCi0vLwotLy8gVGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0
ZXN0cyBmcm9tIHRoZSBGb29UZXN0IHRlc3QgY2FzZQotLy8gZWFjaCB3aXRoIHBhcmFtZXRlciB2
YWx1ZXMgIm1lZW55IiwgIm1pbnkiLCBhbmQgIm1vZSIuCi0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKEluc3RhbnRpYXRpb25OYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7
Ci0KLS8vIFRvIGRpc3Rpbmd1aXNoIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgdGhlIHBhdHRlcm4s
ICh5ZXMsIHlvdQotLy8gY2FuIGluc3RhbnRpYXRlIGl0IG1vcmUgdGhlbiBvbmNlKSB0aGUgZmly
c3QgYXJndW1lbnQgdG8gdGhlCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBtYWNybyBpcyBh
IHByZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCi0vLyBhY3R1YWwgdGVzdCBjYXNlIG5h
bWUuIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvciBkaWZmZXJlbnQKLS8vIGlu
c3RhbnRpYXRpb25zLiBUaGUgdGVzdHMgZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBhYm92ZSB3aWxs
IGhhdmUKLS8vIHRoZXNlIG5hbWVzOgotLy8KLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5Eb2VzQmxhaC8wIGZvciAibWVlbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuRG9lc0JsYWgvMSBmb3IgIm1pbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuRG9lc0JsYWgvMiBmb3IgIm1vZSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5IYXNCbGFoQmxhaC8wIGZvciAibWVlbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1l
L0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMSBmb3IgIm1pbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25O
YW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMiBmb3IgIm1vZSIKLS8vCi0vLyBZb3UgY2FuIHVzZSB0
aGVzZSBuYW1lcyBpbiAtLWd0ZXN0X2ZpbHRlci4KLS8vCi0vLyBUaGlzIHN0YXRlbWVudCB3aWxs
IGluc3RhbnRpYXRlIGFsbCB0ZXN0cyBmcm9tIEZvb1Rlc3QgYWdhaW4sIGVhY2gKLS8vIHdpdGgg
cGFyYW1ldGVyIHZhbHVlcyAiY2F0IiBhbmQgImRvZyI6Ci0KLWNvbnN0IGNoYXIqIHBldHNbXSA9
IHsiY2F0IiwgImRvZyJ9OwotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQW5vdGhlckluc3RhbnRp
YXRpb25OYW1lLCBGb29UZXN0LCBWYWx1ZXNJbihwZXRzKSk7Ci0KLS8vIFRoZSB0ZXN0cyBmcm9t
IHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZSB0aGVzZSBuYW1lczoKLS8vCi0vLyAg
ICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzAgZm9yICJjYXQi
Ci0vLyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzEgZm9y
ICJkb2ciCi0vLyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhC
bGFoLzAgZm9yICJjYXQiCi0vLyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0
Lkhhc0JsYWhCbGFoLzEgZm9yICJkb2ciCi0vLwotLy8gUGxlYXNlIG5vdGUgdGhhdCBJTlNUQU5U
SUFURV9URVNUX0NBU0VfUCB3aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cwotLy8gaW4gdGhlIGdp
dmVuIHRlc3QgY2FzZSwgd2hldGhlciB0aGVpciBkZWZpbml0aW9ucyBjb21lIGJlZm9yZSBvcgot
Ly8gQUZURVIgdGhlIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHN0YXRlbWVudC4KLS8vCi0vLyBQ
bGVhc2UgYWxzbyBub3RlIHRoYXQgZ2VuZXJhdG9yIGV4cHJlc3Npb25zIChpbmNsdWRpbmcgcGFy
YW1ldGVycyB0byB0aGUKLS8vIGdlbmVyYXRvcnMpIGFyZSBldmFsdWF0ZWQgaW4gSW5pdEdvb2ds
ZVRlc3QoKSwgYWZ0ZXIgbWFpbigpIGhhcyBzdGFydGVkLgotLy8gVGhpcyBhbGxvd3MgdGhlIHVz
ZXIgb24gb25lIGhhbmQsIHRvIGFkanVzdCBnZW5lcmF0b3IgcGFyYW1ldGVycyBpbiBvcmRlcgot
Ly8gdG8gZHluYW1pY2FsbHkgZGV0ZXJtaW5lIGEgc2V0IG9mIHRlc3RzIHRvIHJ1biBhbmQgb24g
dGhlIG90aGVyIGhhbmQsCi0vLyBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvIGluc3BlY3QgdGhl
IGdlbmVyYXRlZCB0ZXN0cyB3aXRoIEdvb2dsZSBUZXN0Ci0vLyByZWZsZWN0aW9uIEFQSSBiZWZv
cmUgUlVOX0FMTF9URVNUUygpIGlzIGV4ZWN1dGVkLgotLy8KLS8vIFlvdSBjYW4gc2VlIHNhbXBs
ZXMvc2FtcGxlN191bml0dGVzdC5jYyBhbmQgc2FtcGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjCi0v
LyBmb3IgbW9yZSBleGFtcGxlcy4KLS8vCi0vLyBJbiB0aGUgZnV0dXJlLCB3ZSBwbGFuIHRvIHB1
Ymxpc2ggdGhlIEFQSSBmb3IgZGVmaW5pbmcgbmV3IHBhcmFtZXRlcgotLy8gZ2VuZXJhdG9ycy4g
QnV0IGZvciBub3cgdGhpcyBpbnRlcmZhY2UgcmVtYWlucyBwYXJ0IG9mIHRoZSBpbnRlcm5hbAot
Ly8gaW1wbGVtZW50YXRpb24gYW5kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgotLy8KLS8vCi0vLyBB
IHBhcmFtZXRlcml6ZWQgdGVzdCBmaXh0dXJlIG11c3QgYmUgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6
OlRlc3QgYW5kIGZyb20KLS8vIHRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxUPiwgd2hlcmUg
VCBpcyB0aGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVyCi0vLyB2YWx1ZXMuIEluaGVyaXRpbmcgZnJv
bSBUZXN0V2l0aFBhcmFtPFQ+IHNhdGlzZmllcyB0aGF0IHJlcXVpcmVtZW50IGJlY2F1c2UKLS8v
IFRlc3RXaXRoUGFyYW08VD4gaW5oZXJpdHMgZnJvbSBib3RoIFRlc3QgYW5kIFdpdGhQYXJhbUlu
dGVyZmFjZS4gSW4gbW9yZQotLy8gY29tcGxpY2F0ZWQgaGllcmFyY2hpZXMsIGhvd2V2ZXIsIGl0
IGlzIG9jY2FzaW9uYWxseSB1c2VmdWwgdG8gaW5oZXJpdAotLy8gc2VwYXJhdGVseSBmcm9tIFRl
c3QgYW5kIFdpdGhQYXJhbUludGVyZmFjZS4gRm9yIGV4YW1wbGU6Ci0KLWNsYXNzIEJhc2VUZXN0
IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gIC8vIFlvdSBjYW4gaW5oZXJpdCBhbGwgdGhl
IHVzdWFsIG1lbWJlcnMgZm9yIGEgbm9uLXBhcmFtZXRlcml6ZWQgdGVzdAotICAvLyBmaXh0dXJl
IGhlcmUuCi19OwotCi1jbGFzcyBEZXJpdmVkVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCwgcHVibGlj
IDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPGludD4gewotICAvLyBUaGUgdXN1YWwgdGVz
dCBmaXh0dXJlIG1lbWJlcnMgZ28gaGVyZSB0b28uCi19OwotCi1URVNUX0YoQmFzZVRlc3QsIEhh
c0ZvbykgewotICAvLyBUaGlzIGlzIGFuIG9yZGluYXJ5IG5vbi1wYXJhbWV0ZXJpemVkIHRlc3Qu
Ci19Ci0KLVRFU1RfUChEZXJpdmVkVGVzdCwgRG9lc0JsYWgpIHsKLSAgLy8gR2V0UGFyYW0gd29y
a3MganVzdCB0aGUgc2FtZSBoZXJlIGFzIGlmIHlvdSBpbmhlcml0IGZyb20gVGVzdFdpdGhQYXJh
bS4KLSAgRVhQRUNUX1RSVUUoZm9vLkJsYWgoR2V0UGFyYW0oKSkpOwotfQotCi0jZW5kaWYgIC8v
IDAKLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotI2lmICFHVEVT
VF9PU19TWU1CSUFOCi0jIGluY2x1ZGUgPHV0aWxpdHk+Ci0jZW5kaWYKLQotI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtcGFyYW0tdXRpbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFt
LXV0aWwtZ2VuZXJhdGVkLmgiCi0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotLy8gRnVuY3Rpb25z
IHByb2R1Y2luZyBwYXJhbWV0ZXIgZ2VuZXJhdG9ycy4KLS8vCi0vLyBHb29nbGUgVGVzdCB1c2Vz
IHRoZXNlIGdlbmVyYXRvcnMgdG8gcHJvZHVjZSBwYXJhbWV0ZXJzIGZvciB2YWx1ZS0KLS8vIHBh
cmFtZXRlcml6ZWQgdGVzdHMuIFdoZW4gYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBpcyBpbnN0
YW50aWF0ZWQKLS8vIHdpdGggYSBwYXJ0aWN1bGFyIGdlbmVyYXRvciwgR29vZ2xlIFRlc3QgY3Jl
YXRlcyBhbmQgcnVucyB0ZXN0cwotLy8gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgc2VxdWVuY2Ug
cHJvZHVjZWQgYnkgdGhlIGdlbmVyYXRvci4KLS8vCi0vLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBs
ZSwgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgRm9vVGVzdCBhcmUgaW5zdGFudGlhdGVkCi0vLyBlYWNo
IHRocmVlIHRpbWVzIHdpdGggcGFyYW1ldGVyIHZhbHVlcyAzLCA1LCBhbmQgODoKLS8vCi0vLyBj
bGFzcyBGb29UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7IC4uLiB9OwotLy8KLS8v
IFRFU1RfUChGb29UZXN0LCBUZXN0VGhpcykgewotLy8gfQotLy8gVEVTVF9QKEZvb1Rlc3QsIFRl
c3RUaGF0KSB7Ci0vLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChUZXN0U2VxdWVuY2Us
IEZvb1Rlc3QsIFZhbHVlcygzLCA1LCA4KSk7Ci0vLwotCi0vLyBSYW5nZSgpIHJldHVybnMgZ2Vu
ZXJhdG9ycyBwcm92aWRpbmcgc2VxdWVuY2VzIG9mIHZhbHVlcyBpbiBhIHJhbmdlLgotLy8KLS8v
IFN5bm9wc2lzOgotLy8gUmFuZ2Uoc3RhcnQsIGVuZCkKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJh
dG9yIHByb2R1Y2luZyBhIHNlcXVlbmNlIG9mIHZhbHVlcyB7c3RhcnQsIHN0YXJ0KzEsCi0vLyAg
ICAgc3RhcnQrMiwgLi4uLCB9LgotLy8gUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCkKLS8vICAgLSBy
ZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBhIHNlcXVlbmNlIG9mIHZhbHVlcyB7c3RhcnQs
IHN0YXJ0K3N0ZXAsCi0vLyAgICAgc3RhcnQrc3RlcCtzdGVwLCAuLi4sIH0uCi0vLyBOb3RlczoK
LS8vICAgKiBUaGUgZ2VuZXJhdGVkIHNlcXVlbmNlcyBuZXZlciBpbmNsdWRlIGVuZC4gRm9yIGV4
YW1wbGUsIFJhbmdlKDEsIDUpCi0vLyAgICAgcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcg
YSBzZXF1ZW5jZSB7MSwgMiwgMywgNH0uIFJhbmdlKDEsIDksIDIpCi0vLyAgICAgcmV0dXJucyBh
IGdlbmVyYXRvciBwcm9kdWNpbmcgezEsIDMsIDUsIDd9LgotLy8gICAqIHN0YXJ0IGFuZCBlbmQg
bXVzdCBoYXZlIHRoZSBzYW1lIHR5cGUuIFRoYXQgdHlwZSBtYXkgYmUgYW55IGludGVncmFsIG9y
Ci0vLyAgICAgZmxvYXRpbmctcG9pbnQgdHlwZSBvciBhIHVzZXIgZGVmaW5lZCB0eXBlIHNhdGlz
ZnlpbmcgdGhlc2UgY29uZGl0aW9uczoKLS8vICAgICAqIEl0IG11c3QgYmUgYXNzaWduYWJsZSAo
aGF2ZSBvcGVyYXRvcj0oKSBkZWZpbmVkKS4KLS8vICAgICAqIEl0IG11c3QgaGF2ZSBvcGVyYXRv
cisoKSAob3BlcmF0b3IrKGludC1jb21wYXRpYmxlIHR5cGUpIGZvcgotLy8gICAgICAgdHdvLW9w
ZXJhbmQgdmVyc2lvbikuCi0vLyAgICAgKiBJdCBtdXN0IGhhdmUgb3BlcmF0b3I8KCkgZGVmaW5l
ZC4KLS8vICAgICBFbGVtZW50cyBpbiB0aGUgcmVzdWx0aW5nIHNlcXVlbmNlcyB3aWxsIGFsc28g
aGF2ZSB0aGF0IHR5cGUuCi0vLyAgICogQ29uZGl0aW9uIHN0YXJ0IDwgZW5kIG11c3QgYmUgc2F0
aXNmaWVkIGluIG9yZGVyIGZvciByZXN1bHRpbmcgc2VxdWVuY2VzCi0vLyAgICAgdG8gY29udGFp
biBhbnkgZWxlbWVudHMuCi0vLwotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEluY3Jl
bWVudFQ+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQs
IEluY3JlbWVudFQgc3RlcCkgewotICByZXR1cm4gaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+
KAotICAgICAgbmV3IGludGVybmFsOjpSYW5nZUdlbmVyYXRvcjxULCBJbmNyZW1lbnRUPihzdGFy
dCwgZW5kLCBzdGVwKSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotaW50ZXJuYWw6OlBh
cmFtR2VuZXJhdG9yPFQ+IFJhbmdlKFQgc3RhcnQsIFQgZW5kKSB7Ci0gIHJldHVybiBSYW5nZShz
dGFydCwgZW5kLCAxKTsKLX0KLQotLy8gVmFsdWVzSW4oKSBmdW5jdGlvbiBhbGxvd3MgZ2VuZXJh
dGlvbiBvZiB0ZXN0cyB3aXRoIHBhcmFtZXRlcnMgY29taW5nIGZyb20KLS8vIGEgY29udGFpbmVy
LgotLy8KLS8vIFN5bm9wc2lzOgotLy8gVmFsdWVzSW4oY29uc3QgVCAoJmFycmF5KVtOXSkKLS8v
ICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50
cyBmcm9tCi0vLyAgICAgYSBDLXN0eWxlIGFycmF5LgotLy8gVmFsdWVzSW4oY29uc3QgQ29udGFp
bmVyJiBjb250YWluZXIpCi0vLyAgIC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2Vx
dWVuY2VzIHdpdGggZWxlbWVudHMgZnJvbQotLy8gICAgIGFuIFNUTC1zdHlsZSBjb250YWluZXIu
Ci0vLyBWYWx1ZXNJbihJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKQotLy8gICAtIHJldHVy
bnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIGZyb20KLS8v
ICAgICBhIHJhbmdlIFtiZWdpbiwgZW5kKSBkZWZpbmVkIGJ5IGEgcGFpciBvZiBTVEwtc3R5bGUg
aXRlcmF0b3JzLiBUaGVzZQotLy8gICAgIGl0ZXJhdG9ycyBjYW4gYWxzbyBiZSBwbGFpbiBDIHBv
aW50ZXJzLgotLy8KLS8vIFBsZWFzZSBub3RlIHRoYXQgVmFsdWVzSW4gY29waWVzIHRoZSB2YWx1
ZXMgZnJvbSB0aGUgY29udGFpbmVycwotLy8gcGFzc2VkIGluIGFuZCBrZWVwcyB0aGVtIHRvIGdl
bmVyYXRlIHRlc3RzIGluIFJVTl9BTExfVEVTVFMoKS4KLS8vCi0vLyBFeGFtcGxlczoKLS8vCi0v
LyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBTdHJpbmdUZXN0Ci0vLyBl
YWNoIHdpdGggQy1zdHJpbmcgdmFsdWVzIG9mICJmb28iLCAiYmFyIiwgYW5kICJiYXoiOgotLy8K
LS8vIGNvbnN0IGNoYXIqIHN0cmluZ3NbXSA9IHsiZm9vIiwgImJhciIsICJiYXoifTsKLS8vIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFN0cmluZ1NlcXVlbmNlLCBTcnRpbmdUZXN0LCBWYWx1ZXNJ
bihzdHJpbmdzKSk7Ci0vLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNh
c2UgU3RsU3RyaW5nVGVzdAotLy8gZWFjaCB3aXRoIFNUTCBzdHJpbmdzIHdpdGggdmFsdWVzICJh
IiBhbmQgImIiOgotLy8KLS8vIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IEdldFBhcmFt
ZXRlclN0cmluZ3MoKSB7Ci0vLyAgIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IHY7Ci0v
LyAgIHYucHVzaF9iYWNrKCJhIik7Ci0vLyAgIHYucHVzaF9iYWNrKCJiIik7Ci0vLyAgIHJldHVy
biB2OwotLy8gfQotLy8KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZSwK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgIFN0bFN0cmluZ1Rlc3QsCi0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICBWYWx1ZXNJbihHZXRQYXJhbWV0ZXJTdHJpbmdzKCkpKTsKLS8vCi0vLwot
Ly8gVGhpcyB3aWxsIGFsc28gaW5zdGFudGlhdGUgdGVzdHMgZnJvbSBDaGFyVGVzdAotLy8gZWFj
aCB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgJ2EnIGFuZCAnYic6Ci0vLwotLy8gOjpzdGQ6Omxpc3Q8
Y2hhcj4gR2V0UGFyYW1ldGVyQ2hhcnMoKSB7Ci0vLyAgIDo6c3RkOjpsaXN0PGNoYXI+IGxpc3Q7
Ci0vLyAgIGxpc3QucHVzaF9iYWNrKCdhJyk7Ci0vLyAgIGxpc3QucHVzaF9iYWNrKCdiJyk7Ci0v
LyAgIHJldHVybiBsaXN0OwotLy8gfQotLy8gOjpzdGQ6Omxpc3Q8Y2hhcj4gbCA9IEdldFBhcmFt
ZXRlckNoYXJzKCk7Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChDaGFyU2VxdWVuY2UyLAot
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgQ2hhclRlc3QsCi0vLyAgICAgICAgICAgICAgICAg
ICAgICAgICBWYWx1ZXNJbihsLmJlZ2luKCksIGwuZW5kKCkpKTsKLS8vCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgRm9yd2FyZEl0ZXJhdG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAotICB0eXBl
bmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+
Ojp2YWx1ZV90eXBlPgotVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRl
cmF0b3IgZW5kKSB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SXRl
cmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPgotICAgICAgOjp2YWx1ZV90eXBlIFBhcmFtVHlw
ZTsKLSAgcmV0dXJuIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxQYXJhbVR5cGU+KAotICAgICAg
bmV3IGludGVybmFsOjpWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3I8UGFyYW1UeXBlPihi
ZWdpbiwgZW5kKSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLWludGVy
bmFsOjpQYXJhbUdlbmVyYXRvcjxUPiBWYWx1ZXNJbihjb25zdCBUICgmYXJyYXkpW05dKSB7Ci0g
IHJldHVybiBWYWx1ZXNJbihhcnJheSwgYXJyYXkgKyBOKTsKLX0KLQotdGVtcGxhdGUgPGNsYXNz
IENvbnRhaW5lcj4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0eXBlbmFtZSBDb250YWluZXI6
OnZhbHVlX3R5cGU+IFZhbHVlc0luKAotICAgIGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKSB7
Ci0gIHJldHVybiBWYWx1ZXNJbihjb250YWluZXIuYmVnaW4oKSwgY29udGFpbmVyLmVuZCgpKTsK
LX0KLQotLy8gVmFsdWVzKCkgYWxsb3dzIGdlbmVyYXRpbmcgdGVzdHMgZnJvbSBleHBsaWNpdGx5
IHNwZWNpZmllZCBsaXN0IG9mCi0vLyBwYXJhbWV0ZXJzLgotLy8KLS8vIFN5bm9wc2lzOgotLy8g
VmFsdWVzKFQgdjEsIFQgdjIsIC4uLiwgVCB2TikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9y
IHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyB2MSwgdjIsIC4uLiwgdk4uCi0vLwot
Ly8gRm9yIGV4YW1wbGUsIHRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIEJh
clRlc3QgZWFjaAotLy8gd2l0aCB2YWx1ZXMgIm9uZSIsICJ0d28iLCBhbmQgInRocmVlIjoKLS8v
Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChOdW1TZXF1ZW5jZSwgQmFyVGVzdCwgVmFsdWVz
KCJvbmUiLCAidHdvIiwgInRocmVlIikpOwotLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3Rz
IGZyb20gdGVzdCBjYXNlIEJhelRlc3QgZWFjaCB3aXRoIHZhbHVlcyAxLCAyLCAzLjUuCi0vLyBU
aGUgZXhhY3QgdHlwZSBvZiB2YWx1ZXMgd2lsbCBkZXBlbmQgb24gdGhlIHR5cGUgb2YgcGFyYW1l
dGVyIGluIEJhelRlc3QuCi0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoRmxvYXRpbmdO
dW1iZXJzLCBCYXpUZXN0LCBWYWx1ZXMoMSwgMiwgMy41KSk7Ci0vLwotLy8gQ3VycmVudGx5LCBW
YWx1ZXMoKSBzdXBwb3J0cyBmcm9tIDEgdG8gNTAgcGFyYW1ldGVycy4KLS8vCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE8VDE+IFZhbHVlcyhUMSB2MSkgewot
ICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxPFQxPih2MSk7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI8VDEsIFQyPiBW
YWx1ZXMoVDEgdjEsIFQyIHYyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI8VDEs
IFQyPih2MSwgdjIpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMz4KLWludGVybmFsOjpWYWx1ZUFycmF5MzxUMSwgVDIsIFQzPiBWYWx1ZXMoVDEg
djEsIFQyIHYyLCBUMyB2MykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzPFQxLCBU
MiwgVDM+KHYxLCB2MiwgdjMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ8VDEs
IFQyLCBUMywgVDQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCkgewotICByZXR1
cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0PFQxLCBUMiwgVDMsIFQ0Pih2MSwgdjIsIHYzLCB2NCk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTU8VDEsIFQyLCBU
MywgVDQsIFQ1PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUp
IHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NTxUMSwgVDIsIFQzLCBUNCwgVDU+KHYx
LCB2MiwgdjMsIHY0LCB2NSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDY+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gVmFsdWVz
KFQxIHYxLCBUMiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1IHY1LCBUNiB2NikgewotICByZXR1
cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KHYxLCB2Miwg
djMsIHY0LCB2NSwgdjYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNz4KLWludGVybmFsOjpWYWx1ZUFycmF5NzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NzxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNz4odjEsIHYyLCB2MywgdjQsIHY1LAotICAgICAgdjYsIHY3KTsKLX0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOD4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTg8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4Pih2MSwgdjIsIHYzLCB2NCwKLSAgICAgIHY1LCB2Niwg
djcsIHY4KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWludGVybmFsOjpWYWx1ZUFycmF5OTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAot
ICAgIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5KSB7Ci0g
IHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOT4odjEsIHYyLCB2MywKLSAgICAgIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjkpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTEw
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gVmFsdWVzKFQxIHYxLAot
ICAgIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwgVDEwIHYxMCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxMDxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KHYxLAotICAgICAgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxMTxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsCi0gICAgVDExPiBWYWx1ZXMoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAg
ICBUMTAgdjEwLCBUMTEgdjExKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTExPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwKLSAgICAgIFQxMT4odjEsIHYy
LCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEpOwotfQotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTI+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTEyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLAotICAgIFQxMj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBU
NSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwg
VDEyIHYxMikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxMjxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMj4odjEsIHYyLCB2Mywg
djQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMik7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgIFQxMz4gVmFsdWVzKFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAg
VDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMykgewotICByZXR1cm4gaW50ZXJuYWw6
OlZhbHVlQXJyYXkxMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwKLSAgICAgIFQxMiwgVDEzPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2
MTAsIHYxMSwgdjEyLCB2MTMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0PiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0KSB7Ci0gIHJldHVybiBp
bnRlcm5hbDo6VmFsdWVBcnJheTE0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxND4odjEsIHYyLCB2MywgdjQsIHY1LCB2Niwg
djcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLAotICAgICAgdjE0KTsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXkxNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTU+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsCi0gICAgVDkgdjksIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUpIHsKLSAgcmV0dXJuIGludGVy
bmFsOjpWYWx1ZUFycmF5MTU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTU+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsCi0gICAgICB2MTMsIHYxNCwgdjE1KTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNj4KLWludGVybmFsOjpWYWx1ZUFycmF5MTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTY+IFZh
bHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAg
ICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2
MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXkxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2Nywgdjgs
IHY5LCB2MTAsIHYxMSwKLSAgICAgIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2KTsKLX0KLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxNzxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBU
MTUsIFQxNiwgVDE3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsCi0gICAgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYsIFQxNyB2MTcpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MTc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3Pih2
MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsCi0gICAgICB2MTEsIHYxMiwg
djEzLCB2MTQsIHYxNSwgdjE2LCB2MTcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOD4KLWludGVybmFsOjpWYWx1ZUFycmF5MTg8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwKLSAgICBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgp
IHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTg+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0gICAgICB2MTAs
IHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4KTsKLX0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOT4KLWludGVybmFsOjpW
YWx1ZUFycmF5MTk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+IFZhbHVlcyhUMSB2
MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsCi0gICAgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsCi0gICAg
VDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSkgewotICByZXR1cm4g
aW50ZXJuYWw6OlZhbHVlQXJyYXkxOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsCi0gICAgICB2OSwgdjEwLCB2MTEsIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5KTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwPgot
aW50ZXJuYWw6OlZhbHVlQXJyYXkyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LAotICAgIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjApIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjA8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2
NywKLSAgICAgIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcs
IHYxOCwgdjE5LCB2MjApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxPgotaW50
ZXJuYWw6OlZhbHVlQXJyYXkyMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjE+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsCi0gICAgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5
IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXky
MTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQx
MiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMT4odjEsIHYyLCB2
MywgdjQsIHY1LCB2NiwKLSAgICAgIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0
LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjI+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTIyPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyPiBWYWx1ZXMoVDEg
djEsIFQyIHYyLCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgs
IFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLAotICAgIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsCi0g
ICAgVDIxIHYyMSwgVDIyIHYyMikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMjxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyPih2MSwgdjIs
IHYzLCB2NCwKLSAgICAgIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2
MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LAotICAgICAgdjIwLCB2MjEsIHYyMik7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkyMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjEx
LCBUMTIgdjEyLAotICAgIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsCi0gICAgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMzxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjM+KHYxLCB2MiwgdjMsCi0gICAg
ICB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2
MTYsIHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAsIHYyMSwgdjIyLCB2MjMpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkyNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIs
Ci0gICAgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwg
VDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVB
cnJheTI0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAg
ICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0Pih2MSwgdjIsCi0gICAgICB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEw
LCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwKLSAgICAgIHYxOSwgdjIw
LCB2MjEsIHYyMiwgdjIzLCB2MjQpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+
Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1PiBWYWx1ZXMoVDEgdjEsCi0gICAgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEw
LCBUMTEgdjExLAotICAgIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksCi0gICAgVDIwIHYyMCwgVDIxIHYyMSwgVDIy
IHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZh
bHVlQXJyYXkyNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwK
LSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1Pih2MSwKLSAgICAgIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4
LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsCi0gICAgICB2MTgs
IHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQs
IHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjY+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI2
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywK
LSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LAotICAgIFQyNj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEy
IHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICBU
MTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQg
djI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFy
cmF5MjY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAg
ICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNj4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4
LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwKLSAgICAgIHYxNiwgdjE3LCB2MTgs
IHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2KTsKLX0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3PgotaW50
ZXJuYWw6OlZhbHVlQXJyYXkyNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgIFQyNz4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0g
ICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwg
VDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2
MjcpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5Mjc8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQy
NiwgVDI3Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEy
LCB2MTMsIHYxNCwKLSAgICAgIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIy
LCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4PgotaW50
ZXJuYWw6OlZhbHVlQXJyYXkyODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgVDI4PiBWYWx1ZXMoVDEg
djEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUg
djE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQy
MSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwg
VDI3IHYyNywgVDI4IHYyOCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyODxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LAotICAgICAgVDI2LCBUMjcsIFQyOD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4
LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLAotICAgICAgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgs
IHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsCi0gICAgICB2Mjgp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5PgotaW50ZXJuYWw6OlZhbHVl
QXJyYXkyOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjk+IFZhbHVlcyhUMSB2MSwgVDIg
djIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3
LCBUMjggdjI4LCBUMjkgdjI5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI5PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjk+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsCi0gICAgICB2MTMsIHYxNCwgdjE1LCB2MTYsIHYx
NywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwKLSAgICAgIHYy
NywgdjI4LCB2MjkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzA+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgIFQyOSwgVDMwPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsIFQ4IHY4LAotICAgIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LAotICAgIFQxNyB2MTcsIFQxOCB2
MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQs
Ci0gICAgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYz
MCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzMDxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzA+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjks
IHYxMCwgdjExLAotICAgICAgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTks
IHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsCi0gICAgICB2MjYsIHYyNywgdjI4LCB2Mjks
IHYzMCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTMxPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzE+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYx
NiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4
LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVB
cnJheTMxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAg
ICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxPih2MSwg
djIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsCi0gICAgICB2MTEsIHYxMiwgdjEz
LCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwK
LSAgICAgIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSk7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MzI8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsCi0gICAgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYs
IFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsCi0gICAgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwg
VDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwKLSAgICBUMzIgdjMyKSB7Ci0gIHJldHVybiBpbnRl
cm5hbDo6VmFsdWVBcnJheTMyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQz
MCwgVDMxLCBUMzI+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0gICAgICB2
MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIx
LCB2MjIsIHYyMywKLSAgICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMx
LCB2MzIpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMz4KLWludGVy
bmFsOjpWYWx1ZUFycmF5MzM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LAotICAgIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQg
djI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMw
LCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQzMyB2MzMpIHsKLSAgcmV0dXJuIGludGVybmFsOjpW
YWx1ZUFycmF5MzM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
Ci0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsCi0gICAgICB2OSwgdjEw
LCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwg
djIyLCB2MjMsCi0gICAgICB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwg
djMyLCB2MzMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LAotICAgIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAg
djEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LAotICAgIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2
MjIsCi0gICAgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4
IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwKLSAgICBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBU
MzQgdjM0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM0PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAg
ICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0Pih2MSwgdjIsIHYz
LCB2NCwgdjUsIHY2LCB2NywKLSAgICAgIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQs
IHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLAotICAgICAgdjIzLCB2MjQs
IHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCk7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNT4KLWludGVybmFsOjpWYWx1ZUFycmF5MzU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1PiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0g
ICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywg
VDI4IHYyOCwgVDI5IHYyOSwKLSAgICBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMz
LCBUMzQgdjM0LCBUMzUgdjM1KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM1PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzU+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsCi0gICAgICB2NywgdjgsIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLAotICAg
ICAgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIs
IHYzMywgdjM0LCB2MzUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2PgotaW50ZXJu
YWw6OlZhbHVlQXJyYXkzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LAotICAgIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDEx
IHYxMSwgVDEyIHYxMiwgVDEzIHYxMywKLSAgICBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBU
MTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLAotICAgIFQyMiB2MjIs
IFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjksCi0gICAgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwg
VDM1IHYzNSwgVDM2IHYzNikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzNjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzY+KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAs
IHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAs
IHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2
MzIsIHYzMywKLSAgICAgIHYzNCwgdjM1LCB2MzYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzc+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTM3PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
Mzc+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLAotICAgIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYx
OSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LAotICAgIFQyOSB2MjksIFQzMCB2MzAsIFQz
MSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsCi0gICAg
VDM3IHYzNykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzNzxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAg
ICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNz4odjEsIHYyLCB2MywKLSAgICAgIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjEx
LCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIx
LCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwg
djMzLAotICAgICAgdjM0LCB2MzUsIHYzNiwgdjM3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgs
IHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUg
VDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVu
YW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzg+Ci1pbnRlcm5hbDo6VmFsdWVBcnJh
eTM4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOD4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsCi0gICAg
VDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1
IHYzNSwgVDM2IHYzNiwKLSAgICBUMzcgdjM3LCBUMzggdjM4KSB7Ci0gIHJldHVybiBpbnRlcm5h
bDo6VmFsdWVBcnJheTM4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+KHYxLCB2MiwKLSAgICAgIHYz
LCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2
MTYsIHYxNywgdjE4LAotICAgICAgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2
MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsCi0gICAgICB2MzMsIHYzNCwgdjM1LCB2
MzYsIHYzNywgdjM4KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOT4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzk8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LAotICAg
IFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQz
NSB2MzUsIFQzNiB2MzYsCi0gICAgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSkgewotICByZXR1
cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+KHYx
LAotICAgICAgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywKLSAgICAgIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2
MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLAotICAgICAgdjMyLCB2
MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBl
bmFtZSBUNDA+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDA+IFZhbHVlcyhUMSB2MSwKLSAgICBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsCi0gICAgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5
IHYxOSwKLSAgICBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBU
MjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LAotICAgIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAs
IFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsCi0gICAgVDM2IHYz
NiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCkgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXk0MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDA+
KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywg
djE0LCB2MTUsCi0gICAgICB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywg
djI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwKLSAgICAgIHYzMCwgdjMxLCB2MzIsIHYzMywg
djM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MT4KLWludGVybmFsOjpWYWx1ZUFycmF5NDE8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICBUNDE+IFZhbHVlcyhUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIy
IHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBU
MjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAg
IFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0
MCB2NDAsIFQ0MSB2NDEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDE8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDE+KHYxLCB2MiwgdjMsIHY0LCB2
NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LAotICAgICAgdjE1LCB2
MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3
LCB2MjgsCi0gICAgICB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3
LCB2MzgsIHYzOSwgdjQwLCB2NDEpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDI+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQyPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICBUNDI+IFZhbHVlcyhUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAot
ICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYy
MSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcg
djI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMz
LAotICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2
MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgVDQyIHY0MikgewotICByZXR1cm4gaW50ZXJuYWw6
OlZhbHVlQXJyYXk0MjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0
MSwgVDQyPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEy
LCB2MTMsCi0gICAgICB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIy
LCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywKLSAgICAgIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMy
LCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksIHY0MCwgdjQxLAotICAgICAgdjQy
KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAot
ICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQz
NCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFt
ZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlw
ZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDM+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgIFQ0Mz4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0g
ICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwg
VDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2
MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMs
Ci0gICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYz
OSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICBUNDIgdjQyLCBUNDMgdjQzKSB7Ci0gIHJldHVybiBp
bnRlcm5hbDo6VmFsdWVBcnJheTQzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAg
IFQ0MCwgVDQxLCBUNDIsIFQ0Mz4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwg
djEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwg
djIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LAotICAgICAgdjI3LCB2MjgsIHYyOSwg
djMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDAsCi0g
ICAgICB2NDEsIHY0MiwgdjQzKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBl
bmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwg
dHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAot
ICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQy
OSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFt
ZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlw
ZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAg
IHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0ND4K
LWludGVybmFsOjpWYWx1ZUFycmF5NDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsIFQ0MywKLSAgICBUNDQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0g
ICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywg
VDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5
LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgIFQzNCB2MzQsIFQzNSB2
MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEs
Ci0gICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZh
bHVlQXJyYXk0NDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwK
LSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwg
VDQyLCBUNDMsIFQ0ND4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2
MTEsCi0gICAgICB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2
MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwKLSAgICAgIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2
MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LAotICAgICAgdjQwLCB2
NDEsIHY0MiwgdjQzLCB2NDQpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAg
dHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0
eXBlbmFtZSBUNDU+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ1PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDU+IFZhbHVlcyhUMSB2MSwgVDIg
djIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsCi0gICAgVDkgdjks
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsCi0gICAgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwKLSAgICBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3
LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLAotICAgIFQzMyB2
MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2Mzks
IFQ0MCB2NDAsCi0gICAgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0
NSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1Pih2MSwgdjIsIHYz
LCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsCi0gICAgICB2MTEsIHYxMiwgdjEzLCB2MTQs
IHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwKLSAgICAg
IHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCwgdjM1LCB2
MzYsIHYzNywgdjM4LAotICAgICAgdjM5LCB2NDAsIHY0MSwgdjQyLCB2NDMsIHY0NCwgdjQ1KTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlw
ZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAg
IHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwg
dHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBU
MzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5h
bWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5
cGVuYW1lIFQ0Nj4KLWludGVybmFsOjpWYWx1ZUFycmF5NDY8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
Ci0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2PiBWYWx1ZXMoVDEgdjEs
IFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsCi0gICAgVDggdjgsIFQ5
IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1
LAotICAgIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2
MjEsIFQyMiB2MjIsIFQyMyB2MjMsCi0gICAgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3
IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwKLSAgICBUMzIgdjMyLCBU
MzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkg
djM5LAotICAgIFQ0MCB2NDAsIFQ0MSB2NDEsIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0
NSB2NDUsIFQ0NiB2NDYpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDY8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0
NSwgVDQ2Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LAotICAgICAgdjEwLCB2
MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIy
LCB2MjMsCi0gICAgICB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMy
LCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywKLSAgICAgIHYzOCwgdjM5LCB2NDAsIHY0MSwgdjQy
LCB2NDMsIHY0NCwgdjQ1LCB2NDYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0
LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDc+Ci1pbnRlcm5h
bDo6VmFsdWVBcnJheTQ3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBU
NDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsCi0gICAgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYs
IFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsCi0gICAgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwg
VDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwKLSAgICBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0
LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LAotICAgIFQ0MCB2
NDAsIFQ0MSB2NDEsIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYs
IFQ0NyB2NDcpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDc8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAg
ICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2
LCBUNDc+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIs
IHYyMywKLSAgICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIs
IHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LAotICAgICAgdjM4LCB2MzksIHY0MCwgdjQxLCB2NDIs
IHY0MywgdjQ0LCB2NDUsIHY0NiwgdjQ3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1l
IFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBl
bmFtZSBUNDg+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IFZhbHVl
cyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LAotICAgIFQ3IHY3LCBU
OCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYy
MCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYg
djI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQz
MiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2
MzgsIFQzOSB2MzksCi0gICAgVDQwIHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0
IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NiwgVDQ3IHY0NywKLSAgICBUNDggdjQ4KSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTQ4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAg
ICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+KHYxLCB2Miwg
djMsIHY0LCB2NSwgdjYsIHY3LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYx
NCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsCi0gICAgICB2MjMsIHYy
NCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUs
IHYzNiwKLSAgICAgIHYzNywgdjM4LCB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2NDUs
IHY0NiwgdjQ3LCB2NDgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFt
ZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlw
ZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBl
bmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwg
dHlwZW5hbWUgVDQ5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0OTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgs
IFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBU
NDk+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsCi0gICAgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsCi0gICAgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYx
OSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwKLSAgICBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLAotICAgIFQz
MSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2
MzcsIFQzOCB2MzgsCi0gICAgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQz
IHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NiwKLSAgICBUNDcgdjQ3LCBUNDggdjQ4LCBU
NDkgdjQ5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQ5PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAg
ICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0Niwg
VDQ3LCBUNDgsIFQ0OT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwKLSAgICAgIHY3LCB2OCwgdjks
IHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2
MjEsCi0gICAgICB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2
MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwKLSAgICAgIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2
NDEsIHY0MiwgdjQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsIHY0OCwgdjQ5KTsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVu
YW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0
eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQz
MSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1
LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1l
IFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBl
bmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0Niwg
dHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OSwgdHlwZW5hbWUgVDUwPgot
aW50ZXJuYWw6OlZhbHVlQXJyYXk1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgVDQzLAotICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gVmFsdWVz
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LAotICAgIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywKLSAgICBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxLAotICAgIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2
MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksCi0gICAgVDMwIHYzMCwgVDMxIHYzMSwgVDMy
IHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywKLSAgICBU
MzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQg
djQ0LCBUNDUgdjQ1LAotICAgIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDksIFQ1
MCB2NTApIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NTA8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBU
NDcsIFQ0OCwgVDQ5LCBUNTA+KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2Nywgdjgs
IHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksCi0g
ICAgICB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYz
MCwgdjMxLCB2MzIsIHYzMywKLSAgICAgIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksIHY0
MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2NDUsIHY0NiwgdjQ3LAotICAgICAgdjQ4LCB2NDksIHY1
MCk7Ci19Ci0KLS8vIEJvb2woKSBhbGxvd3MgZ2VuZXJhdGluZyB0ZXN0cyB3aXRoIHBhcmFtZXRl
cnMgaW4gYSBzZXQgb2YgKGZhbHNlLCB0cnVlKS4KLS8vCi0vLyBTeW5vcHNpczoKLS8vIEJvb2wo
KQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVs
ZW1lbnRzIHtmYWxzZSwgdHJ1ZX0uCi0vLwotLy8gSXQgaXMgdXNlZnVsIHdoZW4gdGVzdGluZyBj
b2RlIHRoYXQgZGVwZW5kcyBvbiBCb29sZWFuIGZsYWdzLiBDb21iaW5hdGlvbnMKLS8vIG9mIG11
bHRpcGxlIGZsYWdzIGNhbiBiZSB0ZXN0ZWQgd2hlbiBzZXZlcmFsIEJvb2woKSdzIGFyZSBjb21i
aW5lZCB1c2luZwotLy8gQ29tYmluZSgpIGZ1bmN0aW9uLgotLy8KLS8vIEluIHRoZSBmb2xsb3dp
bmcgZXhhbXBsZSBhbGwgdGVzdHMgaW4gdGhlIHRlc3QgY2FzZSBGbGFnRGVwZW5kZW50VGVzdAot
Ly8gd2lsbCBiZSBpbnN0YW50aWF0ZWQgdHdpY2Ugd2l0aCBwYXJhbWV0ZXJzIGZhbHNlIGFuZCB0
cnVlLgotLy8KLS8vIGNsYXNzIEZsYWdEZXBlbmRlbnRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3RXaXRoUGFyYW08Ym9vbD4gewotLy8gICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0vLyAgICAg
ZXh0ZXJuYWxfZmxhZyA9IEdldFBhcmFtKCk7Ci0vLyAgIH0KLS8vIH0KLS8vIElOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKEJvb2xTZXF1ZW5jZSwgRmxhZ0RlcGVuZGVudFRlc3QsIEJvb2woKSk7Ci0v
LwotaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxib29sPiBCb29sKCkgewotICByZXR1
cm4gVmFsdWVzKGZhbHNlLCB0cnVlKTsKLX0KLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8g
Q29tYmluZSgpIGFsbG93cyB0aGUgdXNlciB0byBjb21iaW5lIHR3byBvciBtb3JlIHNlcXVlbmNl
cyB0byBwcm9kdWNlCi0vLyB2YWx1ZXMgb2YgYSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiB0aG9zZSBz
ZXF1ZW5jZXMnIGVsZW1lbnRzLgotLy8KLS8vIFN5bm9wc2lzOgotLy8gQ29tYmluZShnZW4xLCBn
ZW4yLCAuLi4sIGdlbk4pCi0vLyAgIC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2Vx
dWVuY2VzIHdpdGggZWxlbWVudHMgY29taW5nIGZyb20KLS8vICAgICB0aGUgQ2FydGVzaWFuIHBy
b2R1Y3Qgb2YgZWxlbWVudHMgZnJvbSB0aGUgc2VxdWVuY2VzIGdlbmVyYXRlZCBieQotLy8gICAg
IGdlbjEsIGdlbjIsIC4uLiwgZ2VuTi4gVGhlIHNlcXVlbmNlIGVsZW1lbnRzIHdpbGwgaGF2ZSBh
IHR5cGUgb2YKLS8vICAgICB0dXBsZTxUMSwgVDIsIC4uLiwgVE4+IHdoZXJlIFQxLCBUMiwgLi4u
LCBUTiBhcmUgdGhlIHR5cGVzCi0vLyAgICAgb2YgZWxlbWVudHMgZnJvbSBzZXF1ZW5jZXMgcHJv
ZHVjZXMgYnkgZ2VuMSwgZ2VuMiwgLi4uLCBnZW5OLgotLy8KLS8vIENvbWJpbmUgY2FuIGhhdmUg
dXAgdG8gMTAgYXJndW1lbnRzLiBUaGlzIG51bWJlciBpcyBjdXJyZW50bHkgbGltaXRlZAotLy8g
YnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB0dXBsZSBpbXBsZW1lbnRh
dGlvbiB1c2VkIGJ5IEdvb2dsZQotLy8gVGVzdC4KLS8vCi0vLyBFeGFtcGxlOgotLy8KLS8vIFRo
aXMgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBpbiB0ZXN0IGNhc2UgQW5pbWFsVGVzdCBlYWNoIG9u
ZSB3aXRoCi0vLyB0aGUgcGFyYW1ldGVyIHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxBQ0spLCB0dXBs
ZSgiY2F0IiwgV0hJVEUpLAotLy8gdHVwbGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1cGxlKCJkb2ci
LCBXSElURSk6Ci0vLwotLy8gZW51bSBDb2xvciB7IEJMQUNLLCBHUkFZLCBXSElURSB9OwotLy8g
Y2xhc3MgQW5pbWFsVGVzdAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08
dHVwbGU8Y29uc3QgY2hhciosIENvbG9yPiA+IHsuLi59OwotLy8KLS8vIFRFU1RfUChBbmltYWxU
ZXN0LCBBbmltYWxMb29rc05pY2UpIHsuLi59Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AoQW5pbWFsVmFyaWF0aW9ucywgQW5pbWFsVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgIENvbWJpbmUoVmFsdWVzKCJjYXQiLCAiZG9nIiksCi0vLyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcyhCTEFDSywgV0hJVEUpKSk7Ci0vLwotLy8gVGhpcyB3aWxsIGlu
c3RhbnRpYXRlIHRlc3RzIGluIEZsYWdEZXBlbmRlbnRUZXN0IHdpdGggYWxsIHZhcmlhdGlvbnMg
b2YgdHdvCi0vLyBCb29sZWFuIGZsYWdzOgotLy8KLS8vIGNsYXNzIEZsYWdEZXBlbmRlbnRUZXN0
Ci0vLyAgICAgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTx0dXBsZTxib29sLCBib29s
PiA+IHsKLS8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotLy8gICAgIC8vIEFzc2lnbnMgZXh0
ZXJuYWxfZmxhZ18xIGFuZCBleHRlcm5hbF9mbGFnXzIgdmFsdWVzIGZyb20gdGhlIHR1cGxlLgot
Ly8gICAgIHRpZShleHRlcm5hbF9mbGFnXzEsIGV4dGVybmFsX2ZsYWdfMikgPSBHZXRQYXJhbSgp
OwotLy8gICB9Ci0vLyB9OwotLy8KLS8vIFRFU1RfUChGbGFnRGVwZW5kZW50VGVzdCwgVGVzdEZl
YXR1cmUxKSB7Ci0vLyAgIC8vIFRlc3QgeW91ciBjb2RlIHVzaW5nIGV4dGVybmFsX2ZsYWdfMSBh
bmQgZXh0ZXJuYWxfZmxhZ18yIGhlcmUuCi0vLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0Vf
UChUd29Cb29sU2VxdWVuY2UsIEZsYWdEZXBlbmRlbnRUZXN0LAotLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgQ29tYmluZShCb29sKCksIEJvb2woKSkpOwotLy8KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyPgotaW50ZXJuYWw6OkNhcnRlc2lhblBy
b2R1Y3RIb2xkZXIyPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjI+IENvbWJpbmUoCi0gICAgY29uc3Qg
R2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyKSB7Ci0gIHJldHVybiBpbnRlcm5h
bDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjI8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMj4oCi0gICAg
ICBnMSwgZzIpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUg
R2VuZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJhdG9yMz4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyMzxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzPiBDb21iaW5lKAot
ICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2Vu
ZXJhdG9yMyYgZzMpIHsKLSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
MzxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzPigKLSAgICAgIGcxLCBnMiwgZzMp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9y
MiwgdHlwZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0PgotaW50ZXJu
YWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI0PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVy
YXRvcjMsCi0gICAgR2VuZXJhdG9yND4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBn
MSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBj
b25zdCBHZW5lcmF0b3I0JiBnNCkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1
Y3RIb2xkZXI0PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5l
cmF0b3I0PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0g
ICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9yNT4KLWludGVybmFsOjpD
YXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNTxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3Iz
LAotICAgIEdlbmVyYXRvcjQsIEdlbmVyYXRvcjU+IENvbWJpbmUoCi0gICAgY29uc3QgR2VuZXJh
dG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywKLSAg
ICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1KSB7Ci0gIHJl
dHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjU8R2VuZXJhdG9yMSwgR2VuZXJh
dG9yMiwgR2VuZXJhdG9yMywKLSAgICAgIEdlbmVyYXRvcjQsIEdlbmVyYXRvcjU+KAotICAgICAg
ZzEsIGcyLCBnMywgZzQsIGc1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEs
IHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUg
R2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNj4KLWlu
dGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNjxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBH
ZW5lcmF0b3IzLAotICAgIEdlbmVyYXRvcjQsIEdlbmVyYXRvcjUsIEdlbmVyYXRvcjY+IENvbWJp
bmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25z
dCBHZW5lcmF0b3IzJiBnMywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdl
bmVyYXRvcjUmIGc1LCBjb25zdCBHZW5lcmF0b3I2JiBnNikgewotICByZXR1cm4gaW50ZXJuYWw6
OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI2PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRv
cjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2PigKLSAgICAgIGcx
LCBnMiwgZzMsIGc0LCBnNSwgZzYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9y
MSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBlbmFt
ZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAot
ICAgIHR5cGVuYW1lIEdlbmVyYXRvcjc+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRl
cjc8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBH
ZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3PiBDb21iaW5lKAotICAgIGNvbnN0IEdl
bmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9yMyYgZzMs
Ci0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSwgY29u
c3QgR2VuZXJhdG9yNiYgZzYsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjcmIGc3KSB7Ci0gIHJl
dHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjc8R2VuZXJhdG9yMSwgR2VuZXJh
dG9yMiwgR2VuZXJhdG9yMywKLSAgICAgIEdlbmVyYXRvcjQsIEdlbmVyYXRvcjUsIEdlbmVyYXRv
cjYsIEdlbmVyYXRvcjc+KAotICAgICAgZzEsIGcyLCBnMywgZzQsIGc1LCBnNiwgZzcpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlw
ZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5l
cmF0b3I1LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjcsIHR5
cGVuYW1lIEdlbmVyYXRvcjg+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjg8R2Vu
ZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0
b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4PiBDb21iaW5lKAotICAgIGNv
bnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9y
MyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBn
NSwgY29uc3QgR2VuZXJhdG9yNiYgZzYsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjcmIGc3LCBj
b25zdCBHZW5lcmF0b3I4JiBnOCkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1
Y3RIb2xkZXI4PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5l
cmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4PigK
LSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYsIGc3LCBnOCk7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0
b3IzLAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjUsIHR5cGVu
YW1lIEdlbmVyYXRvcjYsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNywgdHlwZW5hbWUgR2VuZXJh
dG9yOCwgdHlwZW5hbWUgR2VuZXJhdG9yOT4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyOTxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgIEdlbmVyYXRvcjQs
IEdlbmVyYXRvcjUsIEdlbmVyYXRvcjYsIEdlbmVyYXRvcjcsIEdlbmVyYXRvcjgsCi0gICAgR2Vu
ZXJhdG9yOT4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJh
dG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0
JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAg
ICBjb25zdCBHZW5lcmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgsIGNvbnN0IEdlbmVy
YXRvcjkmIGc5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjk8
R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICAgIEdlbmVyYXRvcjQsIEdl
bmVyYXRvcjUsIEdlbmVyYXRvcjYsIEdlbmVyYXRvcjcsIEdlbmVyYXRvcjgsIEdlbmVyYXRvcjk+
KAotICAgICAgZzEsIGcyLCBnMywgZzQsIGc1LCBnNiwgZzcsIGc4LCBnOSk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBH
ZW5lcmF0b3IzLAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjUs
IHR5cGVuYW1lIEdlbmVyYXRvcjYsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNywgdHlwZW5hbWUg
R2VuZXJhdG9yOCwgdHlwZW5hbWUgR2VuZXJhdG9yOSwKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3Ix
MD4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMTA8R2VuZXJhdG9yMSwgR2VuZXJh
dG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2
LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5LAotICAgIEdlbmVyYXRvcjEwPiBD
b21iaW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwg
Y29uc3QgR2VuZXJhdG9yMyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25z
dCBHZW5lcmF0b3I1JiBnNSwgY29uc3QgR2VuZXJhdG9yNiYgZzYsCi0gICAgICAgIGNvbnN0IEdl
bmVyYXRvcjcmIGc3LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwgY29uc3QgR2VuZXJhdG9yOSYgZzks
Ci0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjEwJiBnMTApIHsKLSAgcmV0dXJuIGludGVybmFsOjpD
YXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMTA8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9y
MywKLSAgICAgIEdlbmVyYXRvcjQsIEdlbmVyYXRvcjUsIEdlbmVyYXRvcjYsIEdlbmVyYXRvcjcs
IEdlbmVyYXRvcjgsIEdlbmVyYXRvcjksCi0gICAgICBHZW5lcmF0b3IxMD4oCi0gICAgICBnMSwg
ZzIsIGczLCBnNCwgZzUsIGc2LCBnNywgZzgsIGc5LCBnMTApOwotfQotIyBlbmRpZiAgLy8gR1RF
U1RfSEFTX0NPTUJJTkUKLQotCi0KLSMgZGVmaW5lIFRFU1RfUCh0ZXN0X2Nhc2VfbmFtZSwgdGVz
dF9uYW1lKSBcCi0gIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUs
IHRlc3RfbmFtZSkgXAotICAgICAgOiBwdWJsaWMgdGVzdF9jYXNlX25hbWUgeyBcCi0gICBwdWJs
aWM6IFwKLSAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25h
bWUpKCkge30gXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyBcCi0gICBwcml2YXRlOiBc
Ci0gICAgc3RhdGljIGludCBBZGRUb1JlZ2lzdHJ5KCkgeyBcCi0gICAgICA6OnRlc3Rpbmc6OlVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAot
ICAgICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAg
ICAgICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJ
TkVfXykpLT5BZGRUZXN0UGF0dGVybihcCi0gICAgICAgICAgICAgICAgICAgICAgI3Rlc3RfY2Fz
ZV9uYW1lLCBcCi0gICAgICAgICAgICAgICAgICAgICAgI3Rlc3RfbmFtZSwgXAotICAgICAgICAg
ICAgICAgICAgICAgIG5ldyA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0TWV0YUZhY3Rvcnk8IFwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyhcCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKT4oKSk7
IFwKLSAgICAgIHJldHVybiAwOyBcCi0gICAgfSBcCi0gICAgc3RhdGljIGludCBndGVzdF9yZWdp
c3RlcmluZ19kdW1teV8gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF87IFwKLSAgICBHVEVTVF9ESVNB
TExPV19DT1BZX0FORF9BU1NJR05fKFwKLSAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0
ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSk7IFwKLSAgfTsgXAotICBpbnQgR1RFU1RfVEVTVF9D
TEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X25hbWUpOjpndGVzdF9yZWdpc3RlcmluZ19kdW1teV8gPSBcCi0gICAgICBHVEVTVF9U
RVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpOjpBZGRUb1JlZ2lzdHJ5
KCk7IFwKLSAgdm9pZCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0
X25hbWUpOjpUZXN0Qm9keSgpCi0KLS8vIFRoZSBvcHRpb25hbCBsYXN0IGFyZ3VtZW50IHRvIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QIGFsbG93cyB0aGUgdXNlcgotLy8gdG8gc3BlY2lmeSBhIGZ1
bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCBnZW5lcmF0ZXMgY3VzdG9tIHRlc3QgbmFtZSBzdWZmaXhl
cwotLy8gYmFzZWQgb24gdGhlIHRlc3QgcGFyYW1ldGVycy4gVGhlIGZ1bmN0aW9uIHNob3VsZCBh
Y2NlcHQgb25lIGFyZ3VtZW50IG9mCi0vLyB0eXBlIHRlc3Rpbmc6OlRlc3RQYXJhbUluZm88Y2xh
c3MgUGFyYW1UeXBlPiwgYW5kIHJldHVybiBzdGQ6OnN0cmluZy4KLS8vCi0vLyB0ZXN0aW5nOjpQ
cmludFRvU3RyaW5nUGFyYW1OYW1lIGlzIGEgYnVpbHRpbiB0ZXN0IHN1ZmZpeCBnZW5lcmF0b3Ig
dGhhdAotLy8gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGVzdGluZzo6UHJpbnRUb1N0cmluZyhHZXRQ
YXJhbSgpKS4KLS8vCi0vLyBOb3RlOiB0ZXN0IG5hbWVzIG11c3QgYmUgbm9uLWVtcHR5LCB1bmlx
dWUsIGFuZCBtYXkgb25seSBjb250YWluIEFTQ0lJCi0vLyBhbHBoYW51bWVyaWMgY2hhcmFjdGVy
cyBvciB1bmRlcnNjb3JlLiBCZWNhdXNlIFByaW50VG9TdHJpbmcgYWRkcyBxdW90ZXMKLS8vIHRv
IHN0ZDo6c3RyaW5nIGFuZCBDIHN0cmluZ3MsIGl0IHdvbid0IHdvcmsgZm9yIHRoZXNlIHR5cGVz
LgotCi0jIGRlZmluZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUChwcmVmaXgsIHRlc3RfY2FzZV9u
YW1lLCBnZW5lcmF0b3IsIC4uLikgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UGFy
YW1HZW5lcmF0b3I8dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgZ3Rlc3RfIyNw
cmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7IHJldHVybiBnZW5lcmF0
b3I7IH0gXAotICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNl
X25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXyggXAotICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0
UGFyYW1JbmZvPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7IFwKLSAgICByZXR1
cm4gOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0UGFyYW1OYW1lR2VuPHRlc3RfY2FzZV9uYW1lOjpQ
YXJhbVR5cGU+IFwKLSAgICAgICAgKF9fVkFfQVJHU19fKShpbmZvKTsgXAotICB9IFwKLSAgc3Rh
dGljIGludCBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19kdW1teV8gR1RFU1RfQVRU
UklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5j
ZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdldFRlc3RD
YXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAjdGVzdF9j
YXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0
aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRUZXN0Q2Fz
ZUluc3RhbnRpYXRpb24oXAotICAgICAgICAgICAgICAgICAgICAgICNwcmVmaXgsIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdl
bmVyYXRvcl8sIFwKLSAgICAgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rf
Y2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRlTmFtZV8sIFwKLSAgICAgICAgICAgICAgICAgICAgICBf
X0ZJTEVfXywgX19MSU5FX18pCi0KLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0KLSNlbmRpZiAg
Ly8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3Qu
aC5wdW1wIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1w
YXJhbS10ZXN0LmgucHVtcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA0YjdkMWI4
ODgyMzBmZTdiYWM3MmQ5ZDgzODgxODY5NGYyYWQ1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRl
L2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsNTAzICsw
LDAgQEAKLSQkIC0qLSBtb2RlOiBjKys7IC0qLQotJHZhciBuID0gNTAgICQkIE1heGltdW0gbGVu
Z3RoIG9mIFZhbHVlcyBhcmd1bWVudHMgd2Ugd2FudCB0byBzdXBwb3J0LgotJHZhciBtYXh0dXBs
ZSA9IDEwICAkJCBNYXhpbXVtIG51bWJlciBvZiBDb21iaW5lIGFyZ3VtZW50cyB3ZSB3YW50IHRv
IHN1cHBvcnQuCi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0v
LwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8v
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8v
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0v
LwotLy8gQXV0aG9yczogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBMb3NldikKLS8vCi0vLyBNYWNy
b3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8v
IGluIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQotLy8KLS8vIFRo
aXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJUFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQot
Ly8KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCi0jZGVm
aW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXwotCi0KLS8vIFZhbHVl
LXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlm
ZmVyZW50Ci0vLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBjb3BpZXMgb2Yg
dGhlIHNhbWUgdGVzdC4KLS8vCi0vLyBIZXJlIGlzIGhvdyB5b3UgdXNlIHZhbHVlLXBhcmFtZXRl
cml6ZWQgdGVzdHM6Ci0KLSNpZiAwCi0KLS8vIFRvIHdyaXRlIHZhbHVlLXBhcmFtZXRlcml6ZWQg
dGVzdHMsIGZpcnN0IHlvdSBzaG91bGQgZGVmaW5lIGEgZml4dHVyZQotLy8gY2xhc3MuIEl0IGlz
IHVzdWFsbHkgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08VD4gKHNlZSBiZWxv
dyBmb3IKLS8vIGFub3RoZXIgaW5oZXJpdGFuY2Ugc2NoZW1lIHRoYXQncyBzb21ldGltZXMgdXNl
ZnVsIGluIG1vcmUgY29tcGxpY2F0ZWQKLS8vIGNsYXNzIGhpZXJhcmNoaWVzKSwgd2hlcmUgdGhl
IHR5cGUgb2YgeW91ciBwYXJhbWV0ZXIgdmFsdWVzLgotLy8gVGVzdFdpdGhQYXJhbTxUPiBpcyBp
dHNlbGYgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3QuIFQgY2FuIGJlIGFueQotLy8gY29weWFi
bGUgdHlwZS4gSWYgaXQncyBhIHJhdyBwb2ludGVyLCB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBt
YW5hZ2luZyB0aGUKLS8vIGxpZmVzcGFuIG9mIHRoZSBwb2ludGVkIHZhbHVlcy4KLQotY2xhc3Mg
Rm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Y29uc3QgY2hhcio+IHsK
LSAgLy8gWW91IGNhbiBpbXBsZW1lbnQgYWxsIHRoZSB1c3VhbCBjbGFzcyBmaXh0dXJlIG1lbWJl
cnMgaGVyZS4KLX07Ci0KLS8vIFRoZW4sIHVzZSB0aGUgVEVTVF9QIG1hY3JvIHRvIGRlZmluZSBh
cyBtYW55IHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGZvciB0aGlzIGZpeHR1cmUgYXMgeW91IHdh
bnQuIFRoZSBfUCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIgotLy8gb3IgInBhdHRlcm4i
LCB3aGljaGV2ZXIgeW91IHByZWZlciB0byB0aGluay4KLQotVEVTVF9QKEZvb1Rlc3QsIERvZXNC
bGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIGFjY2VzcyB0aGUgdGVzdCBwYXJhbWV0ZXIgd2l0
aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAgLy8gb2YgdGhlIFRlc3RXaXRoUGFyYW08VD4gY2xh
c3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFoKEdldFBhcmFtKCkpKTsKLSAgLi4uCi19Ci0KLVRF
U1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewotICAuLi4KLX0KLQotLy8gRmluYWxseSwgeW91
IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgdG8gaW5zdGFudGlhdGUgdGhlIHRlc3QK
LS8vIGNhc2Ugd2l0aCBhbnkgc2V0IG9mIHBhcmFtZXRlcnMgeW91IHdhbnQuIEdvb2dsZSBUZXN0
IGRlZmluZXMgYSBudW1iZXIKLS8vIG9mIGZ1bmN0aW9ucyBmb3IgZ2VuZXJhdGluZyB0ZXN0IHBh
cmFtZXRlcnMuIFRoZXkgcmV0dXJuIHdoYXQgd2UgY2FsbAotLy8gKHN1cnByaXNlISkgcGFyYW1l
dGVyIGdlbmVyYXRvcnMuIEhlcmUgaXMgYSAgc3VtbWFyeSBvZiB0aGVtLCB3aGljaAotLy8gYXJl
IGFsbCBpbiB0aGUgdGVzdGluZyBuYW1lc3BhY2U6Ci0vLwotLy8KLS8vICBSYW5nZShiZWdpbiwg
ZW5kIFssIHN0ZXBdKSAtIFlpZWxkcyB2YWx1ZXMge2JlZ2luLCBiZWdpbitzdGVwLAotLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4rc3RlcCtzdGVwLCAuLi59LiBUaGUgdmFs
dWVzIGRvIG5vdAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBlbmQu
IHN0ZXAgZGVmYXVsdHMgdG8gMS4KLS8vICBWYWx1ZXModjEsIHYyLCAuLi4sIHZOKSAgICAtIFlp
ZWxkcyB2YWx1ZXMge3YxLCB2MiwgLi4uLCB2Tn0uCi0vLyAgVmFsdWVzSW4oY29udGFpbmVyKSAg
ICAgICAgLSBZaWVsZHMgdmFsdWVzIGZyb20gYSBDLXN0eWxlIGFycmF5LCBhbiBTVEwKLS8vICBW
YWx1ZXNJbihiZWdpbixlbmQpICAgICAgICAgIGNvbnRhaW5lciwgb3IgYW4gaXRlcmF0b3IgcmFu
Z2UgW2JlZ2luLCBlbmQpLgotLy8gIEJvb2woKSAgICAgICAgICAgICAgICAgICAgIC0gWWllbGRz
IHNlcXVlbmNlIHtmYWxzZSwgdHJ1ZX0uCi0vLyAgQ29tYmluZShnMSwgZzIsIC4uLiwgZ04pICAg
LSBZaWVsZHMgYWxsIGNvbWJpbmF0aW9ucyAodGhlIENhcnRlc2lhbiBwcm9kdWN0Ci0vLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIG1hdGggc2F2dnkpIG9mIHRoZSB2YWx1
ZXMgZ2VuZXJhdGVkCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSB0aGUgTiBn
ZW5lcmF0b3JzLgotLy8KLS8vIEZvciBtb3JlIGRldGFpbHMsIHNlZSBjb21tZW50cyBhdCB0aGUg
ZGVmaW5pdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGJlbG93Ci0vLyBpbiB0aGlzIGZpbGUuCi0v
LwotLy8gVGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9t
IHRoZSBGb29UZXN0IHRlc3QgY2FzZQotLy8gZWFjaCB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgIm1l
ZW55IiwgIm1pbnkiLCBhbmQgIm1vZSIuCi0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEluc3Rh
bnRpYXRpb25OYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7Ci0KLS8vIFRv
IGRpc3Rpbmd1aXNoIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgdGhlIHBhdHRlcm4sICh5ZXMsIHlv
dQotLy8gY2FuIGluc3RhbnRpYXRlIGl0IG1vcmUgdGhlbiBvbmNlKSB0aGUgZmlyc3QgYXJndW1l
bnQgdG8gdGhlCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBtYWNybyBpcyBhIHByZWZpeCB0
aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCi0vLyBhY3R1YWwgdGVzdCBjYXNlIG5hbWUuIFJlbWVt
YmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvciBkaWZmZXJlbnQKLS8vIGluc3RhbnRpYXRp
b25zLiBUaGUgdGVzdHMgZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBhYm92ZSB3aWxsIGhhdmUKLS8v
IHRoZXNlIG5hbWVzOgotLy8KLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2Vz
QmxhaC8wIGZvciAibWVlbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9l
c0JsYWgvMSBmb3IgIm1pbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9l
c0JsYWgvMiBmb3IgIm1vZSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNC
bGFoQmxhaC8wIGZvciAibWVlbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3Qu
SGFzQmxhaEJsYWgvMSBmb3IgIm1pbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rl
c3QuSGFzQmxhaEJsYWgvMiBmb3IgIm1vZSIKLS8vCi0vLyBZb3UgY2FuIHVzZSB0aGVzZSBuYW1l
cyBpbiAtLWd0ZXN0X2ZpbHRlci4KLS8vCi0vLyBUaGlzIHN0YXRlbWVudCB3aWxsIGluc3RhbnRp
YXRlIGFsbCB0ZXN0cyBmcm9tIEZvb1Rlc3QgYWdhaW4sIGVhY2gKLS8vIHdpdGggcGFyYW1ldGVy
IHZhbHVlcyAiY2F0IiBhbmQgImRvZyI6Ci0KLWNvbnN0IGNoYXIqIHBldHNbXSA9IHsiY2F0Iiwg
ImRvZyJ9OwotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQW5vdGhlckluc3RhbnRpYXRpb25OYW1l
LCBGb29UZXN0LCBWYWx1ZXNJbihwZXRzKSk7Ci0KLS8vIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0
YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZSB0aGVzZSBuYW1lczoKLS8vCi0vLyAgICAqIEFub3Ro
ZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzAgZm9yICJjYXQiCi0vLyAgICAq
IEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzEgZm9yICJkb2ciCi0v
LyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzAgZm9y
ICJjYXQiCi0vLyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhC
bGFoLzEgZm9yICJkb2ciCi0vLwotLy8gUGxlYXNlIG5vdGUgdGhhdCBJTlNUQU5USUFURV9URVNU
X0NBU0VfUCB3aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cwotLy8gaW4gdGhlIGdpdmVuIHRlc3Qg
Y2FzZSwgd2hldGhlciB0aGVpciBkZWZpbml0aW9ucyBjb21lIGJlZm9yZSBvcgotLy8gQUZURVIg
dGhlIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHN0YXRlbWVudC4KLS8vCi0vLyBQbGVhc2UgYWxz
byBub3RlIHRoYXQgZ2VuZXJhdG9yIGV4cHJlc3Npb25zIChpbmNsdWRpbmcgcGFyYW1ldGVycyB0
byB0aGUKLS8vIGdlbmVyYXRvcnMpIGFyZSBldmFsdWF0ZWQgaW4gSW5pdEdvb2dsZVRlc3QoKSwg
YWZ0ZXIgbWFpbigpIGhhcyBzdGFydGVkLgotLy8gVGhpcyBhbGxvd3MgdGhlIHVzZXIgb24gb25l
IGhhbmQsIHRvIGFkanVzdCBnZW5lcmF0b3IgcGFyYW1ldGVycyBpbiBvcmRlcgotLy8gdG8gZHlu
YW1pY2FsbHkgZGV0ZXJtaW5lIGEgc2V0IG9mIHRlc3RzIHRvIHJ1biBhbmQgb24gdGhlIG90aGVy
IGhhbmQsCi0vLyBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvIGluc3BlY3QgdGhlIGdlbmVyYXRl
ZCB0ZXN0cyB3aXRoIEdvb2dsZSBUZXN0Ci0vLyByZWZsZWN0aW9uIEFQSSBiZWZvcmUgUlVOX0FM
TF9URVNUUygpIGlzIGV4ZWN1dGVkLgotLy8KLS8vIFlvdSBjYW4gc2VlIHNhbXBsZXMvc2FtcGxl
N191bml0dGVzdC5jYyBhbmQgc2FtcGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjCi0vLyBmb3IgbW9y
ZSBleGFtcGxlcy4KLS8vCi0vLyBJbiB0aGUgZnV0dXJlLCB3ZSBwbGFuIHRvIHB1Ymxpc2ggdGhl
IEFQSSBmb3IgZGVmaW5pbmcgbmV3IHBhcmFtZXRlcgotLy8gZ2VuZXJhdG9ycy4gQnV0IGZvciBu
b3cgdGhpcyBpbnRlcmZhY2UgcmVtYWlucyBwYXJ0IG9mIHRoZSBpbnRlcm5hbAotLy8gaW1wbGVt
ZW50YXRpb24gYW5kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgotLy8KLS8vCi0vLyBBIHBhcmFtZXRl
cml6ZWQgdGVzdCBmaXh0dXJlIG11c3QgYmUgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3QgYW5k
IGZyb20KLS8vIHRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxUPiwgd2hlcmUgVCBpcyB0aGUg
dHlwZSBvZiB0aGUgcGFyYW1ldGVyCi0vLyB2YWx1ZXMuIEluaGVyaXRpbmcgZnJvbSBUZXN0V2l0
aFBhcmFtPFQ+IHNhdGlzZmllcyB0aGF0IHJlcXVpcmVtZW50IGJlY2F1c2UKLS8vIFRlc3RXaXRo
UGFyYW08VD4gaW5oZXJpdHMgZnJvbSBib3RoIFRlc3QgYW5kIFdpdGhQYXJhbUludGVyZmFjZS4g
SW4gbW9yZQotLy8gY29tcGxpY2F0ZWQgaGllcmFyY2hpZXMsIGhvd2V2ZXIsIGl0IGlzIG9jY2Fz
aW9uYWxseSB1c2VmdWwgdG8gaW5oZXJpdAotLy8gc2VwYXJhdGVseSBmcm9tIFRlc3QgYW5kIFdp
dGhQYXJhbUludGVyZmFjZS4gRm9yIGV4YW1wbGU6Ci0KLWNsYXNzIEJhc2VUZXN0IDogcHVibGlj
IDo6dGVzdGluZzo6VGVzdCB7Ci0gIC8vIFlvdSBjYW4gaW5oZXJpdCBhbGwgdGhlIHVzdWFsIG1l
bWJlcnMgZm9yIGEgbm9uLXBhcmFtZXRlcml6ZWQgdGVzdAotICAvLyBmaXh0dXJlIGhlcmUuCi19
OwotCi1jbGFzcyBEZXJpdmVkVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCwgcHVibGljIDo6dGVzdGlu
Zzo6V2l0aFBhcmFtSW50ZXJmYWNlPGludD4gewotICAvLyBUaGUgdXN1YWwgdGVzdCBmaXh0dXJl
IG1lbWJlcnMgZ28gaGVyZSB0b28uCi19OwotCi1URVNUX0YoQmFzZVRlc3QsIEhhc0Zvbykgewot
ICAvLyBUaGlzIGlzIGFuIG9yZGluYXJ5IG5vbi1wYXJhbWV0ZXJpemVkIHRlc3QuCi19Ci0KLVRF
U1RfUChEZXJpdmVkVGVzdCwgRG9lc0JsYWgpIHsKLSAgLy8gR2V0UGFyYW0gd29ya3MganVzdCB0
aGUgc2FtZSBoZXJlIGFzIGlmIHlvdSBpbmhlcml0IGZyb20gVGVzdFdpdGhQYXJhbS4KLSAgRVhQ
RUNUX1RSVUUoZm9vLkJsYWgoR2V0UGFyYW0oKSkpOwotfQotCi0jZW5kaWYgIC8vIDAKLQotI2lu
Y2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotI2lmICFHVEVTVF9PU19TWU1C
SUFOCi0jIGluY2x1ZGUgPHV0aWxpdHk+Ci0jZW5kaWYKLQotI2luY2x1ZGUgImd0ZXN0L2ludGVy
bmFsL2d0ZXN0LWludGVybmFsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFy
YW0tdXRpbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwtZ2Vu
ZXJhdGVkLmgiCi0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotLy8gRnVuY3Rpb25zIHByb2R1Y2lu
ZyBwYXJhbWV0ZXIgZ2VuZXJhdG9ycy4KLS8vCi0vLyBHb29nbGUgVGVzdCB1c2VzIHRoZXNlIGdl
bmVyYXRvcnMgdG8gcHJvZHVjZSBwYXJhbWV0ZXJzIGZvciB2YWx1ZS0KLS8vIHBhcmFtZXRlcml6
ZWQgdGVzdHMuIFdoZW4gYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBpcyBpbnN0YW50aWF0ZWQK
LS8vIHdpdGggYSBwYXJ0aWN1bGFyIGdlbmVyYXRvciwgR29vZ2xlIFRlc3QgY3JlYXRlcyBhbmQg
cnVucyB0ZXN0cwotLy8gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgc2VxdWVuY2UgcHJvZHVjZWQg
YnkgdGhlIGdlbmVyYXRvci4KLS8vCi0vLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBsZSwgdGVzdHMg
ZnJvbSB0ZXN0IGNhc2UgRm9vVGVzdCBhcmUgaW5zdGFudGlhdGVkCi0vLyBlYWNoIHRocmVlIHRp
bWVzIHdpdGggcGFyYW1ldGVyIHZhbHVlcyAzLCA1LCBhbmQgODoKLS8vCi0vLyBjbGFzcyBGb29U
ZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7IC4uLiB9OwotLy8KLS8vIFRFU1RfUChG
b29UZXN0LCBUZXN0VGhpcykgewotLy8gfQotLy8gVEVTVF9QKEZvb1Rlc3QsIFRlc3RUaGF0KSB7
Ci0vLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChUZXN0U2VxdWVuY2UsIEZvb1Rlc3Qs
IFZhbHVlcygzLCA1LCA4KSk7Ci0vLwotCi0vLyBSYW5nZSgpIHJldHVybnMgZ2VuZXJhdG9ycyBw
cm92aWRpbmcgc2VxdWVuY2VzIG9mIHZhbHVlcyBpbiBhIHJhbmdlLgotLy8KLS8vIFN5bm9wc2lz
OgotLy8gUmFuZ2Uoc3RhcnQsIGVuZCkKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1
Y2luZyBhIHNlcXVlbmNlIG9mIHZhbHVlcyB7c3RhcnQsIHN0YXJ0KzEsCi0vLyAgICAgc3RhcnQr
MiwgLi4uLCB9LgotLy8gUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCkKLS8vICAgLSByZXR1cm5zIGEg
Z2VuZXJhdG9yIHByb2R1Y2luZyBhIHNlcXVlbmNlIG9mIHZhbHVlcyB7c3RhcnQsIHN0YXJ0K3N0
ZXAsCi0vLyAgICAgc3RhcnQrc3RlcCtzdGVwLCAuLi4sIH0uCi0vLyBOb3RlczoKLS8vICAgKiBU
aGUgZ2VuZXJhdGVkIHNlcXVlbmNlcyBuZXZlciBpbmNsdWRlIGVuZC4gRm9yIGV4YW1wbGUsIFJh
bmdlKDEsIDUpCi0vLyAgICAgcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgYSBzZXF1ZW5j
ZSB7MSwgMiwgMywgNH0uIFJhbmdlKDEsIDksIDIpCi0vLyAgICAgcmV0dXJucyBhIGdlbmVyYXRv
ciBwcm9kdWNpbmcgezEsIDMsIDUsIDd9LgotLy8gICAqIHN0YXJ0IGFuZCBlbmQgbXVzdCBoYXZl
IHRoZSBzYW1lIHR5cGUuIFRoYXQgdHlwZSBtYXkgYmUgYW55IGludGVncmFsIG9yCi0vLyAgICAg
ZmxvYXRpbmctcG9pbnQgdHlwZSBvciBhIHVzZXIgZGVmaW5lZCB0eXBlIHNhdGlzZnlpbmcgdGhl
c2UgY29uZGl0aW9uczoKLS8vICAgICAqIEl0IG11c3QgYmUgYXNzaWduYWJsZSAoaGF2ZSBvcGVy
YXRvcj0oKSBkZWZpbmVkKS4KLS8vICAgICAqIEl0IG11c3QgaGF2ZSBvcGVyYXRvcisoKSAob3Bl
cmF0b3IrKGludC1jb21wYXRpYmxlIHR5cGUpIGZvcgotLy8gICAgICAgdHdvLW9wZXJhbmQgdmVy
c2lvbikuCi0vLyAgICAgKiBJdCBtdXN0IGhhdmUgb3BlcmF0b3I8KCkgZGVmaW5lZC4KLS8vICAg
ICBFbGVtZW50cyBpbiB0aGUgcmVzdWx0aW5nIHNlcXVlbmNlcyB3aWxsIGFsc28gaGF2ZSB0aGF0
IHR5cGUuCi0vLyAgICogQ29uZGl0aW9uIHN0YXJ0IDwgZW5kIG11c3QgYmUgc2F0aXNmaWVkIGlu
IG9yZGVyIGZvciByZXN1bHRpbmcgc2VxdWVuY2VzCi0vLyAgICAgdG8gY29udGFpbiBhbnkgZWxl
bWVudHMuCi0vLwotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEluY3JlbWVudFQ+Ci1p
bnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQsIEluY3JlbWVu
dFQgc3RlcCkgewotICByZXR1cm4gaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+KAotICAgICAg
bmV3IGludGVybmFsOjpSYW5nZUdlbmVyYXRvcjxULCBJbmNyZW1lbnRUPihzdGFydCwgZW5kLCBz
dGVwKSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJh
dG9yPFQ+IFJhbmdlKFQgc3RhcnQsIFQgZW5kKSB7Ci0gIHJldHVybiBSYW5nZShzdGFydCwgZW5k
LCAxKTsKLX0KLQotLy8gVmFsdWVzSW4oKSBmdW5jdGlvbiBhbGxvd3MgZ2VuZXJhdGlvbiBvZiB0
ZXN0cyB3aXRoIHBhcmFtZXRlcnMgY29taW5nIGZyb20KLS8vIGEgY29udGFpbmVyLgotLy8KLS8v
IFN5bm9wc2lzOgotLy8gVmFsdWVzSW4oY29uc3QgVCAoJmFycmF5KVtOXSkKLS8vICAgLSByZXR1
cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyBmcm9tCi0v
LyAgICAgYSBDLXN0eWxlIGFycmF5LgotLy8gVmFsdWVzSW4oY29uc3QgQ29udGFpbmVyJiBjb250
YWluZXIpCi0vLyAgIC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdp
dGggZWxlbWVudHMgZnJvbQotLy8gICAgIGFuIFNUTC1zdHlsZSBjb250YWluZXIuCi0vLyBWYWx1
ZXNJbihJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKQotLy8gICAtIHJldHVybnMgYSBnZW5l
cmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIGZyb20KLS8vICAgICBhIHJh
bmdlIFtiZWdpbiwgZW5kKSBkZWZpbmVkIGJ5IGEgcGFpciBvZiBTVEwtc3R5bGUgaXRlcmF0b3Jz
LiBUaGVzZQotLy8gICAgIGl0ZXJhdG9ycyBjYW4gYWxzbyBiZSBwbGFpbiBDIHBvaW50ZXJzLgot
Ly8KLS8vIFBsZWFzZSBub3RlIHRoYXQgVmFsdWVzSW4gY29waWVzIHRoZSB2YWx1ZXMgZnJvbSB0
aGUgY29udGFpbmVycwotLy8gcGFzc2VkIGluIGFuZCBrZWVwcyB0aGVtIHRvIGdlbmVyYXRlIHRl
c3RzIGluIFJVTl9BTExfVEVTVFMoKS4KLS8vCi0vLyBFeGFtcGxlczoKLS8vCi0vLyBUaGlzIGlu
c3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBTdHJpbmdUZXN0Ci0vLyBlYWNoIHdpdGgg
Qy1zdHJpbmcgdmFsdWVzIG9mICJmb28iLCAiYmFyIiwgYW5kICJiYXoiOgotLy8KLS8vIGNvbnN0
IGNoYXIqIHN0cmluZ3NbXSA9IHsiZm9vIiwgImJhciIsICJiYXoifTsKLS8vIElOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKFN0cmluZ1NlcXVlbmNlLCBTcnRpbmdUZXN0LCBWYWx1ZXNJbihzdHJpbmdz
KSk7Ci0vLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgU3RsU3Ry
aW5nVGVzdAotLy8gZWFjaCB3aXRoIFNUTCBzdHJpbmdzIHdpdGggdmFsdWVzICJhIiBhbmQgImIi
OgotLy8KLS8vIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IEdldFBhcmFtZXRlclN0cmlu
Z3MoKSB7Ci0vLyAgIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IHY7Ci0vLyAgIHYucHVz
aF9iYWNrKCJhIik7Ci0vLyAgIHYucHVzaF9iYWNrKCJiIik7Ci0vLyAgIHJldHVybiB2OwotLy8g
fQotLy8KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZSwKLS8vICAgICAg
ICAgICAgICAgICAgICAgICAgIFN0bFN0cmluZ1Rlc3QsCi0vLyAgICAgICAgICAgICAgICAgICAg
ICAgICBWYWx1ZXNJbihHZXRQYXJhbWV0ZXJTdHJpbmdzKCkpKTsKLS8vCi0vLwotLy8gVGhpcyB3
aWxsIGFsc28gaW5zdGFudGlhdGUgdGVzdHMgZnJvbSBDaGFyVGVzdAotLy8gZWFjaCB3aXRoIHBh
cmFtZXRlciB2YWx1ZXMgJ2EnIGFuZCAnYic6Ci0vLwotLy8gOjpzdGQ6Omxpc3Q8Y2hhcj4gR2V0
UGFyYW1ldGVyQ2hhcnMoKSB7Ci0vLyAgIDo6c3RkOjpsaXN0PGNoYXI+IGxpc3Q7Ci0vLyAgIGxp
c3QucHVzaF9iYWNrKCdhJyk7Ci0vLyAgIGxpc3QucHVzaF9iYWNrKCdiJyk7Ci0vLyAgIHJldHVy
biBsaXN0OwotLy8gfQotLy8gOjpzdGQ6Omxpc3Q8Y2hhcj4gbCA9IEdldFBhcmFtZXRlckNoYXJz
KCk7Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChDaGFyU2VxdWVuY2UyLAotLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgQ2hhclRlc3QsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZXNJbihsLmJlZ2luKCksIGwuZW5kKCkpKTsKLS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRm9y
d2FyZEl0ZXJhdG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAotICB0eXBlbmFtZSA6OnRl
c3Rpbmc6OmludGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90
eXBlPgotVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5k
KSB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SXRlcmF0b3JUcmFp
dHM8Rm9yd2FyZEl0ZXJhdG9yPgotICAgICAgOjp2YWx1ZV90eXBlIFBhcmFtVHlwZTsKLSAgcmV0
dXJuIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxQYXJhbVR5cGU+KAotICAgICAgbmV3IGludGVy
bmFsOjpWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3I8UGFyYW1UeXBlPihiZWdpbiwgZW5k
KSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLWludGVybmFsOjpQYXJh
bUdlbmVyYXRvcjxUPiBWYWx1ZXNJbihjb25zdCBUICgmYXJyYXkpW05dKSB7Ci0gIHJldHVybiBW
YWx1ZXNJbihhcnJheSwgYXJyYXkgKyBOKTsKLX0KLQotdGVtcGxhdGUgPGNsYXNzIENvbnRhaW5l
cj4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0eXBlbmFtZSBDb250YWluZXI6OnZhbHVlX3R5
cGU+IFZhbHVlc0luKAotICAgIGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKSB7Ci0gIHJldHVy
biBWYWx1ZXNJbihjb250YWluZXIuYmVnaW4oKSwgY29udGFpbmVyLmVuZCgpKTsKLX0KLQotLy8g
VmFsdWVzKCkgYWxsb3dzIGdlbmVyYXRpbmcgdGVzdHMgZnJvbSBleHBsaWNpdGx5IHNwZWNpZmll
ZCBsaXN0IG9mCi0vLyBwYXJhbWV0ZXJzLgotLy8KLS8vIFN5bm9wc2lzOgotLy8gVmFsdWVzKFQg
djEsIFQgdjIsIC4uLiwgVCB2TikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2lu
ZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyB2MSwgdjIsIC4uLiwgdk4uCi0vLwotLy8gRm9yIGV4
YW1wbGUsIHRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIEJhclRlc3QgZWFj
aAotLy8gd2l0aCB2YWx1ZXMgIm9uZSIsICJ0d28iLCBhbmQgInRocmVlIjoKLS8vCi0vLyBJTlNU
QU5USUFURV9URVNUX0NBU0VfUChOdW1TZXF1ZW5jZSwgQmFyVGVzdCwgVmFsdWVzKCJvbmUiLCAi
dHdvIiwgInRocmVlIikpOwotLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVz
dCBjYXNlIEJhelRlc3QgZWFjaCB3aXRoIHZhbHVlcyAxLCAyLCAzLjUuCi0vLyBUaGUgZXhhY3Qg
dHlwZSBvZiB2YWx1ZXMgd2lsbCBkZXBlbmQgb24gdGhlIHR5cGUgb2YgcGFyYW1ldGVyIGluIEJh
elRlc3QuCi0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoRmxvYXRpbmdOdW1iZXJzLCBC
YXpUZXN0LCBWYWx1ZXMoMSwgMiwgMy41KSk7Ci0vLwotLy8gQ3VycmVudGx5LCBWYWx1ZXMoKSBz
dXBwb3J0cyBmcm9tIDEgdG8gJG4gcGFyYW1ldGVycy4KLS8vCi0kcmFuZ2UgaSAxLi5uCi0kZm9y
IGkgW1sKLSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFtZSBUJGpd
XT4KLWludGVybmFsOjpWYWx1ZUFycmF5JGk8JGZvciBqLCBbW1Qkal1dPiBWYWx1ZXMoJGZvciBq
LCBbW1QkaiB2JGpdXSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkkaTwkZm9yIGos
IFtbVCRqXV0+KCRmb3IgaiwgW1t2JGpdXSk7Ci19Ci0KLV1dCi0KLS8vIEJvb2woKSBhbGxvd3Mg
Z2VuZXJhdGluZyB0ZXN0cyB3aXRoIHBhcmFtZXRlcnMgaW4gYSBzZXQgb2YgKGZhbHNlLCB0cnVl
KS4KLS8vCi0vLyBTeW5vcHNpczoKLS8vIEJvb2woKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0
b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHtmYWxzZSwgdHJ1ZX0uCi0vLwot
Ly8gSXQgaXMgdXNlZnVsIHdoZW4gdGVzdGluZyBjb2RlIHRoYXQgZGVwZW5kcyBvbiBCb29sZWFu
IGZsYWdzLiBDb21iaW5hdGlvbnMKLS8vIG9mIG11bHRpcGxlIGZsYWdzIGNhbiBiZSB0ZXN0ZWQg
d2hlbiBzZXZlcmFsIEJvb2woKSdzIGFyZSBjb21iaW5lZCB1c2luZwotLy8gQ29tYmluZSgpIGZ1
bmN0aW9uLgotLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhbGwgdGVzdHMgaW4gdGhl
IHRlc3QgY2FzZSBGbGFnRGVwZW5kZW50VGVzdAotLy8gd2lsbCBiZSBpbnN0YW50aWF0ZWQgdHdp
Y2Ugd2l0aCBwYXJhbWV0ZXJzIGZhbHNlIGFuZCB0cnVlLgotLy8KLS8vIGNsYXNzIEZsYWdEZXBl
bmRlbnRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Ym9vbD4gewotLy8gICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0vLyAgICAgZXh0ZXJuYWxfZmxhZyA9IEdldFBhcmFtKCk7
Ci0vLyAgIH0KLS8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEJvb2xTZXF1ZW5jZSwg
RmxhZ0RlcGVuZGVudFRlc3QsIEJvb2woKSk7Ci0vLwotaW5saW5lIGludGVybmFsOjpQYXJhbUdl
bmVyYXRvcjxib29sPiBCb29sKCkgewotICByZXR1cm4gVmFsdWVzKGZhbHNlLCB0cnVlKTsKLX0K
LQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8gQ29tYmluZSgpIGFsbG93cyB0aGUgdXNlciB0
byBjb21iaW5lIHR3byBvciBtb3JlIHNlcXVlbmNlcyB0byBwcm9kdWNlCi0vLyB2YWx1ZXMgb2Yg
YSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiB0aG9zZSBzZXF1ZW5jZXMnIGVsZW1lbnRzLgotLy8KLS8v
IFN5bm9wc2lzOgotLy8gQ29tYmluZShnZW4xLCBnZW4yLCAuLi4sIGdlbk4pCi0vLyAgIC0gcmV0
dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVudHMgY29taW5n
IGZyb20KLS8vICAgICB0aGUgQ2FydGVzaWFuIHByb2R1Y3Qgb2YgZWxlbWVudHMgZnJvbSB0aGUg
c2VxdWVuY2VzIGdlbmVyYXRlZCBieQotLy8gICAgIGdlbjEsIGdlbjIsIC4uLiwgZ2VuTi4gVGhl
IHNlcXVlbmNlIGVsZW1lbnRzIHdpbGwgaGF2ZSBhIHR5cGUgb2YKLS8vICAgICB0dXBsZTxUMSwg
VDIsIC4uLiwgVE4+IHdoZXJlIFQxLCBUMiwgLi4uLCBUTiBhcmUgdGhlIHR5cGVzCi0vLyAgICAg
b2YgZWxlbWVudHMgZnJvbSBzZXF1ZW5jZXMgcHJvZHVjZXMgYnkgZ2VuMSwgZ2VuMiwgLi4uLCBn
ZW5OLgotLy8KLS8vIENvbWJpbmUgY2FuIGhhdmUgdXAgdG8gJG1heHR1cGxlIGFyZ3VtZW50cy4g
VGhpcyBudW1iZXIgaXMgY3VycmVudGx5IGxpbWl0ZWQKLS8vIGJ5IHRoZSBtYXhpbXVtIG51bWJl
ciBvZiBlbGVtZW50cyBpbiB0aGUgdHVwbGUgaW1wbGVtZW50YXRpb24gdXNlZCBieSBHb29nbGUK
LS8vIFRlc3QuCi0vLwotLy8gRXhhbXBsZToKLS8vCi0vLyBUaGlzIHdpbGwgaW5zdGFudGlhdGUg
dGVzdHMgaW4gdGVzdCBjYXNlIEFuaW1hbFRlc3QgZWFjaCBvbmUgd2l0aAotLy8gdGhlIHBhcmFt
ZXRlciB2YWx1ZXMgdHVwbGUoImNhdCIsIEJMQUNLKSwgdHVwbGUoImNhdCIsIFdISVRFKSwKLS8v
IHR1cGxlKCJkb2ciLCBCTEFDSyksIGFuZCB0dXBsZSgiZG9nIiwgV0hJVEUpOgotLy8KLS8vIGVu
dW0gQ29sb3IgeyBCTEFDSywgR1JBWSwgV0hJVEUgfTsKLS8vIGNsYXNzIEFuaW1hbFRlc3QKLS8v
ICAgICA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHR1cGxlPGNvbnN0IGNoYXIqLCBD
b2xvcj4gPiB7Li4ufTsKLS8vCi0vLyBURVNUX1AoQW5pbWFsVGVzdCwgQW5pbWFsTG9va3NOaWNl
KSB7Li4ufQotLy8KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFuaW1hbFZhcmlhdGlvbnMs
IEFuaW1hbFRlc3QsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5lKFZhbHVlcygi
Y2F0IiwgImRvZyIpLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMo
QkxBQ0ssIFdISVRFKSkpOwotLy8KLS8vIFRoaXMgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBpbiBG
bGFnRGVwZW5kZW50VGVzdCB3aXRoIGFsbCB2YXJpYXRpb25zIG9mIHR3bwotLy8gQm9vbGVhbiBm
bGFnczoKLS8vCi0vLyBjbGFzcyBGbGFnRGVwZW5kZW50VGVzdAotLy8gICAgIDogcHVibGljIHRl
c3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Ym9vbCwgYm9vbD4gPiB7Ci0vLyAgIHZpcnR1YWwg
dm9pZCBTZXRVcCgpIHsKLS8vICAgICAvLyBBc3NpZ25zIGV4dGVybmFsX2ZsYWdfMSBhbmQgZXh0
ZXJuYWxfZmxhZ18yIHZhbHVlcyBmcm9tIHRoZSB0dXBsZS4KLS8vICAgICB0aWUoZXh0ZXJuYWxf
ZmxhZ18xLCBleHRlcm5hbF9mbGFnXzIpID0gR2V0UGFyYW0oKTsKLS8vICAgfQotLy8gfTsKLS8v
Ci0vLyBURVNUX1AoRmxhZ0RlcGVuZGVudFRlc3QsIFRlc3RGZWF0dXJlMSkgewotLy8gICAvLyBU
ZXN0IHlvdXIgY29kZSB1c2luZyBleHRlcm5hbF9mbGFnXzEgYW5kIGV4dGVybmFsX2ZsYWdfMiBo
ZXJlLgotLy8gfQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoVHdvQm9vbFNlcXVlbmNlLCBG
bGFnRGVwZW5kZW50VGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoQm9v
bCgpLCBCb29sKCkpKTsKLS8vCi0kcmFuZ2UgaSAyLi5tYXh0dXBsZQotJGZvciBpIFtbCi0kcmFu
Z2UgaiAxLi5pCi0KLXRlbXBsYXRlIDwkZm9yIGosIFtbdHlwZW5hbWUgR2VuZXJhdG9yJGpdXT4K
LWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyJGk8JGZvciBqLCBbW0dlbmVyYXRvciRq
XV0+IENvbWJpbmUoCi0gICAgJGZvciBqLCBbW2NvbnN0IEdlbmVyYXRvciRqJiBnJGpdXSkgewot
ICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIkaTwkZm9yIGosIFtbR2Vu
ZXJhdG9yJGpdXT4oCi0gICAgICAkZm9yIGosIFtbZyRqXV0pOwotfQotCi1dXQotIyBlbmRpZiAg
Ly8gR1RFU1RfSEFTX0NPTUJJTkUKLQotCi0KLSMgZGVmaW5lIFRFU1RfUCh0ZXN0X2Nhc2VfbmFt
ZSwgdGVzdF9uYW1lKSBcCi0gIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNl
X25hbWUsIHRlc3RfbmFtZSkgXAotICAgICAgOiBwdWJsaWMgdGVzdF9jYXNlX25hbWUgeyBcCi0g
ICBwdWJsaWM6IFwKLSAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0
ZXN0X25hbWUpKCkge30gXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyBcCi0gICBwcml2
YXRlOiBcCi0gICAgc3RhdGljIGludCBBZGRUb1JlZ2lzdHJ5KCkgeyBcCi0gICAgICA6OnRlc3Rp
bmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnko
KS4gXAotICAgICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4o
XAotICAgICAgICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklMRV9f
LCBfX0xJTkVfXykpLT5BZGRUZXN0UGF0dGVybihcCi0gICAgICAgICAgICAgICAgICAgICAgI3Rl
c3RfY2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgICAgICAgICAgI3Rlc3RfbmFtZSwgXAotICAg
ICAgICAgICAgICAgICAgICAgIG5ldyA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0TWV0YUZhY3Rv
cnk8IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyhc
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1l
KT4oKSk7IFwKLSAgICAgIHJldHVybiAwOyBcCi0gICAgfSBcCi0gICAgc3RhdGljIGludCBndGVz
dF9yZWdpc3RlcmluZ19kdW1teV8gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF87IFwKLSAgICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFwKLSAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19O
QU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSk7IFwKLSAgfTsgXAotICBpbnQgR1RFU1Rf
VEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgXAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X25hbWUpOjpndGVzdF9yZWdpc3RlcmluZ19kdW1teV8gPSBcCi0gICAgICBH
VEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpOjpBZGRUb1Jl
Z2lzdHJ5KCk7IFwKLSAgdm9pZCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1l
LCB0ZXN0X25hbWUpOjpUZXN0Qm9keSgpCi0KLS8vIFRoZSBvcHRpb25hbCBsYXN0IGFyZ3VtZW50
IHRvIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIGFsbG93cyB0aGUgdXNlcgotLy8gdG8gc3BlY2lm
eSBhIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCBnZW5lcmF0ZXMgY3VzdG9tIHRlc3QgbmFtZSBz
dWZmaXhlcwotLy8gYmFzZWQgb24gdGhlIHRlc3QgcGFyYW1ldGVycy4gVGhlIGZ1bmN0aW9uIHNo
b3VsZCBhY2NlcHQgb25lIGFyZ3VtZW50IG9mCi0vLyB0eXBlIHRlc3Rpbmc6OlRlc3RQYXJhbUlu
Zm88Y2xhc3MgUGFyYW1UeXBlPiwgYW5kIHJldHVybiBzdGQ6OnN0cmluZy4KLS8vCi0vLyB0ZXN0
aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lIGlzIGEgYnVpbHRpbiB0ZXN0IHN1ZmZpeCBnZW5l
cmF0b3IgdGhhdAotLy8gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGVzdGluZzo6UHJpbnRUb1N0cmlu
ZyhHZXRQYXJhbSgpKS4KLS8vCi0vLyBOb3RlOiB0ZXN0IG5hbWVzIG11c3QgYmUgbm9uLWVtcHR5
LCB1bmlxdWUsIGFuZCBtYXkgb25seSBjb250YWluIEFTQ0lJCi0vLyBhbHBoYW51bWVyaWMgY2hh
cmFjdGVycyBvciB1bmRlcnNjb3JlLiBCZWNhdXNlIFByaW50VG9TdHJpbmcgYWRkcyBxdW90ZXMK
LS8vIHRvIHN0ZDo6c3RyaW5nIGFuZCBDIHN0cmluZ3MsIGl0IHdvbid0IHdvcmsgZm9yIHRoZXNl
IHR5cGVzLgotCi0jIGRlZmluZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUChwcmVmaXgsIHRlc3Rf
Y2FzZV9uYW1lLCBnZW5lcmF0b3IsIC4uLikgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6UGFyYW1HZW5lcmF0b3I8dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgZ3Rl
c3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7IHJldHVybiBn
ZW5lcmF0b3I7IH0gXAotICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBndGVzdF8jI3ByZWZpeCMjdGVz
dF9jYXNlX25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXyggXAotICAgICAgY29uc3QgOjp0ZXN0aW5n
OjpUZXN0UGFyYW1JbmZvPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7IFwKLSAg
ICByZXR1cm4gOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0UGFyYW1OYW1lR2VuPHRlc3RfY2FzZV9u
YW1lOjpQYXJhbVR5cGU+IFwKLSAgICAgICAgKF9fVkFfQVJHU19fKShpbmZvKTsgXAotICB9IFwK
LSAgc3RhdGljIGludCBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19kdW1teV8gR1RF
U1RfQVRUUklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJ
bnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdl
dFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAj
dGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29k
ZUxvY2F0aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRU
ZXN0Q2FzZUluc3RhbnRpYXRpb24oXAotICAgICAgICAgICAgICAgICAgICAgICNwcmVmaXgsIFwK
LSAgICAgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNf
RXZhbEdlbmVyYXRvcl8sIFwKLSAgICAgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgj
I3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRlTmFtZV8sIFwKLSAgICAgICAgICAgICAgICAg
ICAgICBfX0ZJTEVfXywgX19MSU5FX18pCi0KLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0KLSNl
bmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXByaW50
ZXJzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXBy
aW50ZXJzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4YzYzZDI1NTgwZmQwMjdh
MDQwMGYwYjI4NTU4MjE3ZTFkMGEwYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9n
dGVzdC1wcmludGVycy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAwNSArMCwwIEBACi0vLyBDb3B5
cmlnaHQgMjAwNywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8g
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1
dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3YW5A
Z29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0vLyBHb29nbGUgVGVzdCAtIFRoZSBHb29nbGUg
QysrIFRlc3RpbmcgRnJhbWV3b3JrCi0vLwotLy8gVGhpcyBmaWxlIGltcGxlbWVudHMgYSB1bml2
ZXJzYWwgdmFsdWUgcHJpbnRlciB0aGF0IGNhbiBwcmludCBhCi0vLyB2YWx1ZSBvZiBhbnkgdHlw
ZSBUOgotLy8KLS8vICAgdm9pZCA6OnRlc3Rpbmc6OmludGVybmFsOjpVbml2ZXJzYWxQcmludGVy
PFQ+OjpQcmludCh2YWx1ZSwgb3N0cmVhbV9wdHIpOwotLy8KLS8vIEEgdXNlciBjYW4gdGVhY2gg
dGhpcyBmdW5jdGlvbiBob3cgdG8gcHJpbnQgYSBjbGFzcyB0eXBlIFQgYnkKLS8vIGRlZmluaW5n
IGVpdGhlciBvcGVyYXRvcjw8KCkgb3IgUHJpbnRUbygpIGluIHRoZSBuYW1lc3BhY2UgdGhhdAot
Ly8gZGVmaW5lcyBULiAgTW9yZSBzcGVjaWZpY2FsbHksIHRoZSBGSVJTVCBkZWZpbmVkIGZ1bmN0
aW9uIGluIHRoZQotLy8gZm9sbG93aW5nIGxpc3Qgd2lsbCBiZSB1c2VkIChhc3N1bWluZyBUIGlz
IGRlZmluZWQgaW4gbmFtZXNwYWNlCi0vLyBmb28pOgotLy8KLS8vICAgMS4gZm9vOjpQcmludFRv
KGNvbnN0IFQmLCBvc3RyZWFtKikKLS8vICAgMi4gb3BlcmF0b3I8PChvc3RyZWFtJiwgY29uc3Qg
VCYpIGRlZmluZWQgaW4gZWl0aGVyIGZvbyBvciB0aGUKLS8vICAgICAgZ2xvYmFsIG5hbWVzcGFj
ZS4KLS8vCi0vLyBJZiBub25lIG9mIHRoZSBhYm92ZSBpcyBkZWZpbmVkLCBpdCB3aWxsIHByaW50
IHRoZSBkZWJ1ZyBzdHJpbmcgb2YKLS8vIHRoZSB2YWx1ZSBpZiBpdCBpcyBhIHByb3RvY29sIGJ1
ZmZlciwgb3IgcHJpbnQgdGhlIHJhdyBieXRlcyBpbiB0aGUKLS8vIHZhbHVlIG90aGVyd2lzZS4K
LS8vCi0vLyBUbyBhaWQgZGVidWdnaW5nOiB3aGVuIFQgaXMgYSByZWZlcmVuY2UgdHlwZSwgdGhl
IGFkZHJlc3Mgb2YgdGhlCi0vLyB2YWx1ZSBpcyBhbHNvIHByaW50ZWQ7IHdoZW4gVCBpcyBhIChj
b25zdCkgY2hhciBwb2ludGVyLCBib3RoIHRoZQotLy8gcG9pbnRlciB2YWx1ZSBhbmQgdGhlIE5V
TC10ZXJtaW5hdGVkIHN0cmluZyBpdCBwb2ludHMgdG8gYXJlCi0vLyBwcmludGVkLgotLy8KLS8v
IFdlIGFsc28gcHJvdmlkZSBzb21lIGNvbnZlbmllbnQgd3JhcHBlcnM6Ci0vLwotLy8gICAvLyBQ
cmludHMgYSB2YWx1ZSB0byBhIHN0cmluZy4gIEZvciBhIChjb25zdCBvciBub3QpIGNoYXIKLS8v
ICAgLy8gcG9pbnRlciwgdGhlIE5VTC10ZXJtaW5hdGVkIHN0cmluZyAoYnV0IG5vdCB0aGUgcG9p
bnRlcikgaXMKLS8vICAgLy8gcHJpbnRlZC4KLS8vICAgc3RkOjpzdHJpbmcgOjp0ZXN0aW5nOjpQ
cmludFRvU3RyaW5nKGNvbnN0IFQmIHZhbHVlKTsKLS8vCi0vLyAgIC8vIFByaW50cyBhIHZhbHVl
IHRlcnNlbHk6IGZvciBhIHJlZmVyZW5jZSB0eXBlLCB0aGUgcmVmZXJlbmNlZAotLy8gICAvLyB2
YWx1ZSAoYnV0IG5vdCB0aGUgYWRkcmVzcykgaXMgcHJpbnRlZDsgZm9yIGEgKGNvbnN0IG9yIG5v
dCkgY2hhcgotLy8gICAvLyBwb2ludGVyLCB0aGUgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nIChidXQg
bm90IHRoZSBwb2ludGVyKSBpcwotLy8gICAvLyBwcmludGVkLgotLy8gICB2b2lkIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OlVuaXZlcnNhbFRlcnNlUHJpbnQoY29uc3QgVCYgdmFsdWUsIG9zdHJlYW0q
KTsKLS8vCi0vLyAgIC8vIFByaW50cyB2YWx1ZSB1c2luZyB0aGUgdHlwZSBpbmZlcnJlZCBieSB0
aGUgY29tcGlsZXIuICBUaGUgZGlmZmVyZW5jZQotLy8gICAvLyBmcm9tIFVuaXZlcnNhbFRlcnNl
UHJpbnQoKSBpcyB0aGF0IHRoaXMgZnVuY3Rpb24gcHJpbnRzIGJvdGggdGhlCi0vLyAgIC8vIHBv
aW50ZXIgYW5kIHRoZSBOVUwtdGVybWluYXRlZCBzdHJpbmcgZm9yIGEgKGNvbnN0IG9yIG5vdCkg
Y2hhciBwb2ludGVyLgotLy8gICB2b2lkIDo6dGVzdGluZzo6aW50ZXJuYWw6OlVuaXZlcnNhbFBy
aW50KGNvbnN0IFQmIHZhbHVlLCBvc3RyZWFtKik7Ci0vLwotLy8gICAvLyBQcmludHMgdGhlIGZp
ZWxkcyBvZiBhIHR1cGxlIHRlcnNlbHkgdG8gYSBzdHJpbmcgdmVjdG9yLCBvbmUKLS8vICAgLy8g
ZWxlbWVudCBmb3IgZWFjaCBmaWVsZC4gVHVwbGUgc3VwcG9ydCBtdXN0IGJlIGVuYWJsZWQgaW4K
LS8vICAgLy8gZ3Rlc3QtcG9ydC5oLgotLy8gICBzdGQ6OnZlY3RvcjxzdHJpbmc+IFVuaXZlcnNh
bFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLS8vICAgICAgIGNvbnN0IFR1cGxlJiB2
YWx1ZSk7Ci0vLwotLy8gS25vd24gbGltaXRhdGlvbjoKLS8vCi0vLyBUaGUgcHJpbnQgcHJpbWl0
aXZlcyBwcmludCB0aGUgZWxlbWVudHMgb2YgYW4gU1RMLXN0eWxlIGNvbnRhaW5lcgotLy8gdXNp
bmcgdGhlIGNvbXBpbGVyLWluZmVycmVkIHR5cGUgb2YgKml0ZXIgd2hlcmUgaXRlciBpcyBhCi0v
LyBjb25zdF9pdGVyYXRvciBvZiB0aGUgY29udGFpbmVyLiAgV2hlbiBjb25zdF9pdGVyYXRvciBp
cyBhbiBpbnB1dAotLy8gaXRlcmF0b3IgYnV0IG5vdCBhIGZvcndhcmQgaXRlcmF0b3IsIHRoaXMg
aW5mZXJyZWQgdHlwZSBtYXkgbm90Ci0vLyBtYXRjaCB2YWx1ZV90eXBlLCBhbmQgdGhlIHByaW50
IG91dHB1dCBtYXkgYmUgaW5jb3JyZWN0LiAgSW4KLS8vIHByYWN0aWNlLCB0aGlzIGlzIHJhcmVs
eSBhIHByb2JsZW0gYXMgZm9yIG1vc3QgY29udGFpbmVycwotLy8gY29uc3RfaXRlcmF0b3IgaXMg
YSBmb3J3YXJkIGl0ZXJhdG9yLiAgV2UnbGwgZml4IHRoaXMgaWYgdGhlcmUncyBhbgotLy8gYWN0
dWFsIG5lZWQgZm9yIGl0LiAgTm90ZSB0aGF0IHRoaXMgZml4IGNhbm5vdCByZWx5IG9uIHZhbHVl
X3R5cGUKLS8vIGJlaW5nIGRlZmluZWQgYXMgbWFueSB1c2VyLWRlZmluZWQgY29udGFpbmVyIHR5
cGVzIGRvbid0IGhhdmUKLS8vIHZhbHVlX3R5cGUuCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9H
VEVTVF9HVEVTVF9QUklOVEVSU19IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1BSSU5URVJTX0hfCi0KLSNpbmNsdWRlIDxvc3RyZWFtPiAgLy8gTk9MSU5UCi0jaW5jbHVkZSA8
c3N0cmVhbT4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRl
IDx2ZWN0b3I+Ci0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotI2luY2x1
ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgiCi0KLSNpZiBHVEVTVF9IQVNfU1RE
X1RVUExFXwotIyBpbmNsdWRlIDx0dXBsZT4KLSNlbmRpZgotCi1uYW1lc3BhY2UgdGVzdGluZyB7
Ci0KLS8vIERlZmluaXRpb25zIGluIHRoZSAnaW50ZXJuYWwnIGFuZCAnaW50ZXJuYWwyJyBuYW1l
IHNwYWNlcyBhcmUKLS8vIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhvdXQgbm90aWNlLiAgRE8gTk9U
IFVTRSBUSEVNIElOIFVTRVIgQ09ERSEKLW5hbWVzcGFjZSBpbnRlcm5hbDIgewotCi0vLyBQcmlu
dHMgdGhlIGdpdmVuIG51bWJlciBvZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0IHRvIHRoZSBn
aXZlbgotLy8gb3N0cmVhbS4KLUdURVNUX0FQSV8gdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhj
b25zdCB1bnNpZ25lZCBjaGFyKiBvYmpfYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcyk7Ci0KLS8vIEZvciBzZWxlY3Rpbmcgd2hpY2ggcHJp
bnRlciB0byB1c2Ugd2hlbiBhIGdpdmVuIHR5cGUgaGFzIG5laXRoZXIgPDwKLS8vIG5vciBQcmlu
dFRvKCkuCi1lbnVtIFR5cGVLaW5kIHsKLSAga1Byb3RvYnVmLCAgICAgICAgICAgICAgLy8gYSBw
cm90b2J1ZiB0eXBlCi0gIGtDb252ZXJ0aWJsZVRvSW50ZWdlciwgIC8vIGEgdHlwZSBpbXBsaWNp
dGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dlc3RJbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gKGUuZy4gYSBuYW1lZCBvciB1bm5hbWVkIGVudW0gdHlwZSkKLSAga090aGVyVHlwZSAgICAg
ICAgICAgICAgLy8gYW55dGhpbmcgZWxzZQotfTsKLQotLy8gVHlwZVdpdGhvdXRGb3JtYXR0ZXI8
VCwga1R5cGVLaW5kPjo6UHJpbnRWYWx1ZSh2YWx1ZSwgb3MpIGlzIGNhbGxlZAotLy8gYnkgdGhl
IHVuaXZlcnNhbCBwcmludGVyIHRvIHByaW50IGEgdmFsdWUgb2YgdHlwZSBUIHdoZW4gbmVpdGhl
cgotLy8gb3BlcmF0b3I8PCBub3IgUHJpbnRUbygpIGlzIGRlZmluZWQgZm9yIFQsIHdoZXJlIGtU
eXBlS2luZCBpcyB0aGUKLS8vICJraW5kIiBvZiBUIGFzIGRlZmluZWQgYnkgZW51bSBUeXBlS2lu
ZC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBUeXBlS2luZCBrVHlwZUtpbmQ+Ci1jbGFzcyBUeXBl
V2l0aG91dEZvcm1hdHRlciB7Ci0gcHVibGljOgotICAvLyBUaGlzIGRlZmF1bHQgdmVyc2lvbiBp
cyBjYWxsZWQgd2hlbiBrVHlwZUtpbmQgaXMga090aGVyVHlwZS4KLSAgc3RhdGljIHZvaWQgUHJp
bnRWYWx1ZShjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgUHJpbnRC
eXRlc0luT2JqZWN0VG8oc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQgKj4oJnZh
bHVlKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZhbHVlKSwgb3MpOwotICB9
Ci19OwotCi0vLyBXZSBwcmludCBhIHByb3RvYnVmIHVzaW5nIGl0cyBTaG9ydERlYnVnU3RyaW5n
KCkgd2hlbiB0aGUgc3RyaW5nCi0vLyBkb2Vzbid0IGV4Y2VlZCB0aGlzIG1hbnkgY2hhcmFjdGVy
czsgb3RoZXJ3aXNlIHdlIHByaW50IGl0IHVzaW5nCi0vLyBEZWJ1Z1N0cmluZygpIGZvciBiZXR0
ZXIgcmVhZGFiaWxpdHkuCi1jb25zdCBzaXplX3Qga1Byb3RvYnVmT25lTGluZXJNYXhMZW5ndGgg
PSA1MDsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBUeXBlV2l0aG91dEZvcm1hdHRl
cjxULCBrUHJvdG9idWY+IHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29u
c3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIHN0ZDo6c3RyaW5nIHByZXR0
eV9zdHIgPSB2YWx1ZS5TaG9ydERlYnVnU3RyaW5nKCk7Ci0gICAgaWYgKHByZXR0eV9zdHIubGVu
Z3RoKCkgPiBrUHJvdG9idWZPbmVMaW5lck1heExlbmd0aCkgewotICAgICAgcHJldHR5X3N0ciA9
ICJcbiIgKyB2YWx1ZS5EZWJ1Z1N0cmluZygpOwotICAgIH0KLSAgICAqb3MgPDwgKCI8IiArIHBy
ZXR0eV9zdHIgKyAiPiIpOwotICB9Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNz
IFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIGtDb252ZXJ0aWJsZVRvSW50ZWdlcj4gewotIHB1Ymxp
YzoKLSAgLy8gU2luY2UgVCBoYXMgbm8gPDwgb3BlcmF0b3Igb3IgUHJpbnRUbygpIGJ1dCBjYW4g
YmUgaW1wbGljaXRseQotICAvLyBjb252ZXJ0ZWQgdG8gQmlnZ2VzdEludCwgd2UgcHJpbnQgaXQg
YXMgYSBCaWdnZXN0SW50LgotICAvLwotICAvLyBNb3N0IGxpa2VseSBUIGlzIGFuIGVudW0gdHlw
ZSAoZWl0aGVyIG5hbWVkIG9yIHVubmFtZWQpLCBpbiB3aGljaAotICAvLyBjYXNlIHByaW50aW5n
IGl0IGFzIGFuIGludGVnZXIgaXMgdGhlIGRlc2lyZWQgYmVoYXZpb3IuICBJbiBjYXNlCi0gIC8v
IFQgaXMgbm90IGFuIGVudW0sIHByaW50aW5nIGl0IGFzIGFuIGludGVnZXIgaXMgdGhlIGJlc3Qg
d2UgY2FuIGRvCi0gIC8vIGdpdmVuIHRoYXQgaXQgaGFzIG5vIHVzZXItZGVmaW5lZCBwcmludGVy
LgotICBzdGF0aWMgdm9pZCBQcmludFZhbHVlKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKLSAgICBjb25zdCBpbnRlcm5hbDo6QmlnZ2VzdEludCBrQmlnSW50ID0gdmFsdWU7
Ci0gICAgKm9zIDw8IGtCaWdJbnQ7Ci0gIH0KLX07Ci0KLS8vIFByaW50cyB0aGUgZ2l2ZW4gdmFs
dWUgdG8gdGhlIGdpdmVuIG9zdHJlYW0uICBJZiB0aGUgdmFsdWUgaXMgYQotLy8gcHJvdG9jb2wg
bWVzc2FnZSwgaXRzIGRlYnVnIHN0cmluZyBpcyBwcmludGVkOyBpZiBpdCdzIGFuIGVudW0gb3IK
LS8vIG9mIGEgdHlwZSBpbXBsaWNpdGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dlc3RJbnQsIGl0J3Mg
cHJpbnRlZCBhcyBhbgotLy8gaW50ZWdlcjsgb3RoZXJ3aXNlIHRoZSBieXRlcyBpbiB0aGUgdmFs
dWUgYXJlIHByaW50ZWQuICBUaGlzIGlzCi0vLyB3aGF0IFVuaXZlcnNhbFByaW50ZXI8VD46OlBy
aW50KCkgZG9lcyB3aGVuIGl0IGtub3dzIG5vdGhpbmcgYWJvdXQKLS8vIHR5cGUgVCBhbmQgVCBo
YXMgbmVpdGhlciA8PCBvcGVyYXRvciBub3IgUHJpbnRUbygpLgotLy8KLS8vIEEgdXNlciBjYW4g
b3ZlcnJpZGUgdGhpcyBiZWhhdmlvciBmb3IgYSBjbGFzcyB0eXBlIEZvbyBieSBkZWZpbmluZwot
Ly8gYSA8PCBvcGVyYXRvciBpbiB0aGUgbmFtZXNwYWNlIHdoZXJlIEZvbyBpcyBkZWZpbmVkLgot
Ly8KLS8vIFdlIHB1dCB0aGlzIG9wZXJhdG9yIGluIG5hbWVzcGFjZSAnaW50ZXJuYWwyJyBpbnN0
ZWFkIG9mICdpbnRlcm5hbCcKLS8vIHRvIHNpbXBsaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbiwgYXMg
bXVjaCBjb2RlIGluICdpbnRlcm5hbCcgbmVlZHMgdG8KLS8vIHVzZSA8PCBpbiBTVEwsIHdoaWNo
IHdvdWxkIGNvbmZsaWN0IHdpdGggb3VyIG93biA8PCB3ZXJlIGl0IGRlZmluZWQKLS8vIGluICdp
bnRlcm5hbCcuCi0vLwotLy8gTm90ZSB0aGF0IHRoaXMgb3BlcmF0b3I8PCB0YWtlcyBhIGdlbmVy
aWMgc3RkOjpiYXNpY19vc3RyZWFtPENoYXIsCi0vLyBDaGFyVHJhaXRzPiB0eXBlIGluc3RlYWQg
b2YgdGhlIG1vcmUgcmVzdHJpY3RlZCBzdGQ6Om9zdHJlYW0uICBJZgotLy8gd2UgZGVmaW5lIGl0
IHRvIHRha2UgYW4gc3RkOjpvc3RyZWFtIGluc3RlYWQsIHdlJ2xsIGdldCBhbgotLy8gImFtYmln
dW91cyBvdmVybG9hZHMiIGNvbXBpbGVyIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHByaW50IGEgdHlw
ZQotLy8gRm9vIHRoYXQgc3VwcG9ydHMgc3RyZWFtaW5nIHRvIHN0ZDo6YmFzaWNfb3N0cmVhbTxD
aGFyLAotLy8gQ2hhclRyYWl0cz4sIGFzIHRoZSBjb21waWxlciBjYW5ub3QgdGVsbCB3aGV0aGVy
Ci0vLyBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYsIGNvbnN0IFQmKSBvcgotLy8gb3BlcmF0b3I8
PChzdGQ6OmJhc2ljX3N0cmVhbTxDaGFyLCBDaGFyVHJhaXRzPiwgY29uc3QgRm9vJikgaXMgbW9y
ZQotLy8gc3BlY2lmaWMuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhciwgdHlwZW5hbWUgQ2hhclRy
YWl0cywgdHlwZW5hbWUgVD4KLTo6c3RkOjpiYXNpY19vc3RyZWFtPENoYXIsIENoYXJUcmFpdHM+
JiBvcGVyYXRvcjw8KAotICAgIDo6c3RkOjpiYXNpY19vc3RyZWFtPENoYXIsIENoYXJUcmFpdHM+
JiBvcywgY29uc3QgVCYgeCkgewotICBUeXBlV2l0aG91dEZvcm1hdHRlcjxULAotICAgICAgKGlu
dGVybmFsOjpJc0FQcm90b2NvbE1lc3NhZ2U8VD46OnZhbHVlID8ga1Byb3RvYnVmIDoKLSAgICAg
ICBpbnRlcm5hbDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPGNvbnN0IFQmLCBpbnRlcm5hbDo6Qmln
Z2VzdEludD46OnZhbHVlID8KLSAgICAgICBrQ29udmVydGlibGVUb0ludGVnZXIgOiBrT3RoZXJU
eXBlKT46OlByaW50VmFsdWUoeCwgJm9zKTsKLSAgcmV0dXJuIG9zOwotfQotCi19ICAvLyBuYW1l
c3BhY2UgaW50ZXJuYWwyCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0vLyBUaGlzIG5hbWVz
cGFjZSBNVVNUIE5PVCBCRSBORVNURUQgSU4gOjp0ZXN0aW5nLCBvciB0aGUgbmFtZSBsb29rLXVw
Ci0vLyBtYWdpYyBuZWVkZWQgZm9yIGltcGxlbWVudGluZyBVbml2ZXJzYWxQcmludGVyIHdvbid0
IHdvcmsuCi1uYW1lc3BhY2UgdGVzdGluZ19pbnRlcm5hbCB7Ci0KLS8vIFVzZWQgdG8gcHJpbnQg
YSB2YWx1ZSB0aGF0IGlzIG5vdCBhbiBTVEwtc3R5bGUgY29udGFpbmVyIHdoZW4gdGhlCi0vLyB1
c2VyIGRvZXNuJ3QgZGVmaW5lIFByaW50VG8oKSBmb3IgaXQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLXZvaWQgRGVmYXVsdFByaW50Tm9uQ29udGFpbmVyVG8oY29uc3QgVCYgdmFsdWUsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgewotICAvLyBXaXRoIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50LCBkdXJp
bmcgdW5xdWFsaWZpZWQgbmFtZSBsb29rdXAsCi0gIC8vIHRlc3Rpbmc6OmludGVybmFsMjo6b3Bl
cmF0b3I8PCBhcHBlYXJzIGFzIGlmIGl0IHdhcyBkZWNsYXJlZCBpbgotICAvLyB0aGUgbmVhcmVz
dCBlbmNsb3NpbmcgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgYm90aAotICAvLyA6OnRlc3Rpbmdf
aW50ZXJuYWwgYW5kIDo6dGVzdGluZzo6aW50ZXJuYWwyLCBpLmUuIHRoZSBnbG9iYWwKLSAgLy8g
bmFtZXNwYWNlLiAgRm9yIG1vcmUgZGV0YWlscywgcmVmZXIgdG8gdGhlIEMrKyBTdGFuZGFyZCBz
ZWN0aW9uCi0gIC8vIDcuMy40LTEgW25hbWVzcGFjZS51ZGlyXS4gIFRoaXMgYWxsb3dzIHVzIHRv
IGZhbGwgYmFjayBvbnRvCi0gIC8vIHRlc3Rpbmc6OmludGVybmFsMjo6b3BlcmF0b3I8PCBpbiBj
YXNlIFQgZG9lc24ndCBjb21lIHdpdGggYSA8PAotICAvLyBvcGVyYXRvci4KLSAgLy8KLSAgLy8g
V2UgY2Fubm90IHdyaXRlICd1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsMjo6b3BlcmF0b3I8PDsn
LCB3aGljaAotICAvLyBnY2MgMy4zIGZhaWxzIHRvIGNvbXBpbGUgZHVlIHRvIGEgY29tcGlsZXIg
YnVnLgotICB1c2luZyBuYW1lc3BhY2UgOjp0ZXN0aW5nOjppbnRlcm5hbDI7ICAvLyBOT0xJTlQK
LQotICAvLyBBc3N1bWluZyBUIGlzIGRlZmluZWQgaW4gbmFtZXNwYWNlIGZvbywgaW4gdGhlIG5l
eHQgc3RhdGVtZW50LAotICAvLyB0aGUgY29tcGlsZXIgd2lsbCBjb25zaWRlciBhbGwgb2Y6Ci0g
IC8vCi0gIC8vICAgMS4gZm9vOjpvcGVyYXRvcjw8ICh0aGFua3MgdG8gS29lbmlnIGxvb2stdXAp
LAotICAvLyAgIDIuIDo6b3BlcmF0b3I8PCAoYXMgdGhlIGN1cnJlbnQgbmFtZXNwYWNlIGlzIGVu
Y2xvc2VkIGluIDo6KSwKLSAgLy8gICAzLiB0ZXN0aW5nOjppbnRlcm5hbDI6Om9wZXJhdG9yPDwg
KHRoYW5rcyB0byB0aGUgdXNpbmcgc3RhdGVtZW50IGFib3ZlKS4KLSAgLy8KLSAgLy8gVGhlIG9w
ZXJhdG9yPDwgd2hvc2UgdHlwZSBtYXRjaGVzIFQgYmVzdCB3aWxsIGJlIHBpY2tlZC4KLSAgLy8K
LSAgLy8gV2UgZGVsaWJlcmF0ZWx5IGFsbG93ICMyIHRvIGJlIGEgY2FuZGlkYXRlLCBhcyBzb21l
dGltZXMgaXQncwotICAvLyBpbXBvc3NpYmxlIHRvIGRlZmluZSAjMSAoZS5nLiB3aGVuIGZvbyBp
cyA6OnN0ZCwgZGVmaW5pbmcKLSAgLy8gYW55dGhpbmcgaW4gaXQgaXMgdW5kZWZpbmVkIGJlaGF2
aW9yIHVubGVzcyB5b3UgYXJlIGEgY29tcGlsZXIKLSAgLy8gdmVuZG9yLikuCi0gICpvcyA8PCB2
YWx1ZTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwKLQotbmFtZXNwYWNl
IHRlc3RpbmcgewotbmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8gRm9ybWF0Rm9yQ29tcGFyaXNv
bjxUb1ByaW50LCBPdGhlck9wZXJhbmQ+OjpGb3JtYXQodmFsdWUpIGZvcm1hdHMgYQotLy8gdmFs
dWUgb2YgdHlwZSBUb1ByaW50IHRoYXQgaXMgYW4gb3BlcmFuZCBvZiBhIGNvbXBhcmlzb24gYXNz
ZXJ0aW9uCi0vLyAoZS5nLiBBU1NFUlRfRVEpLiAgT3RoZXJPcGVyYW5kIGlzIHRoZSB0eXBlIG9m
IHRoZSBvdGhlciBvcGVyYW5kIGluCi0vLyB0aGUgY29tcGFyaXNvbiwgYW5kIGlzIHVzZWQgdG8g
aGVscCBkZXRlcm1pbmUgdGhlIGJlc3Qgd2F5IHRvCi0vLyBmb3JtYXQgdGhlIHZhbHVlLiAgSW4g
cGFydGljdWxhciwgd2hlbiB0aGUgdmFsdWUgaXMgYSBDIHN0cmluZwotLy8gKGNoYXIgcG9pbnRl
cikgYW5kIHRoZSBvdGhlciBvcGVyYW5kIGlzIGFuIFNUTCBzdHJpbmcgb2JqZWN0LCB3ZQotLy8g
d2FudCB0byBmb3JtYXQgdGhlIEMgc3RyaW5nIGFzIGEgc3RyaW5nLCBzaW5jZSB3ZSBrbm93IGl0
IGlzCi0vLyBjb21wYXJlZCBieSB2YWx1ZSB3aXRoIHRoZSBzdHJpbmcgb2JqZWN0LiAgSWYgdGhl
IHZhbHVlIGlzIGEgY2hhcgotLy8gcG9pbnRlciBidXQgdGhlIG90aGVyIG9wZXJhbmQgaXMgbm90
IGFuIFNUTCBzdHJpbmcgb2JqZWN0LCB3ZSBkb24ndAotLy8ga25vdyB3aGV0aGVyIHRoZSBwb2lu
dGVyIGlzIHN1cHBvc2VkIHRvIHBvaW50IHRvIGEgTlVMLXRlcm1pbmF0ZWQKLS8vIHN0cmluZywg
YW5kIHRodXMgd2FudCB0byBwcmludCBpdCBhcyBhIHBvaW50ZXIgdG8gYmUgc2FmZS4KLS8vCi0v
LyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gQSBVU0VSIFBST0dSQU0u
Ci0KLS8vIFRoZSBkZWZhdWx0IGNhc2UuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVG9QcmludCwgdHlw
ZW5hbWUgT3RoZXJPcGVyYW5kPgotY2xhc3MgRm9ybWF0Rm9yQ29tcGFyaXNvbiB7Ci0gcHVibGlj
OgotICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBGb3JtYXQoY29uc3QgVG9QcmludCYgdmFsdWUpIHsK
LSAgICByZXR1cm4gOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHZhbHVlKTsKLSAgfQotfTsKLQot
Ly8gQXJyYXkuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVG9QcmludCwgc2l6ZV90IE4sIHR5cGVuYW1l
IE90aGVyT3BlcmFuZD4KLWNsYXNzIEZvcm1hdEZvckNvbXBhcmlzb248VG9QcmludFtOXSwgT3Ro
ZXJPcGVyYW5kPiB7Ci0gcHVibGljOgotICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBGb3JtYXQoY29u
c3QgVG9QcmludCogdmFsdWUpIHsKLSAgICByZXR1cm4gRm9ybWF0Rm9yQ29tcGFyaXNvbjxjb25z
dCBUb1ByaW50KiwgT3RoZXJPcGVyYW5kPjo6Rm9ybWF0KHZhbHVlKTsKLSAgfQotfTsKLQotLy8g
QnkgZGVmYXVsdCwgcHJpbnQgQyBzdHJpbmcgYXMgcG9pbnRlcnMgdG8gYmUgc2FmZSwgYXMgd2Ug
ZG9uJ3Qga25vdwotLy8gd2hldGhlciB0aGV5IGFjdHVhbGx5IHBvaW50IHRvIGEgTlVMLXRlcm1p
bmF0ZWQgc3RyaW5nLgotCi0jZGVmaW5lIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BP
SU5URVJfKENoYXJUeXBlKSAgICAgICAgICAgICAgICBcCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBP
dGhlck9wZXJhbmQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIGNs
YXNzIEZvcm1hdEZvckNvbXBhcmlzb248Q2hhclR5cGUqLCBPdGhlck9wZXJhbmQ+IHsgICAgICAg
ICAgICAgICAgICBcCi0gICBwdWJsaWM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgc3RhdGljIDo6c3RkOjpzdHJpbmcg
Rm9ybWF0KENoYXJUeXBlKiB2YWx1ZSkgeyAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBy
ZXR1cm4gOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPih2
YWx1ZSkpOyBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIH0KLQotR1RFU1RfSU1QTF9GT1JNQVRfQ19T
VFJJTkdfQVNfUE9JTlRFUl8oY2hhcik7Ci1HVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19Q
T0lOVEVSXyhjb25zdCBjaGFyKTsKLUdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5U
RVJfKHdjaGFyX3QpOwotR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY29u
c3Qgd2NoYXJfdCk7Ci0KLSN1bmRlZiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lO
VEVSXwotCi0vLyBJZiBhIEMgc3RyaW5nIGlzIGNvbXBhcmVkIHdpdGggYW4gU1RMIHN0cmluZyBv
YmplY3QsIHdlIGtub3cgaXQncyBtZWFudAotLy8gdG8gcG9pbnQgdG8gYSBOVUwtdGVybWluYXRl
ZCBzdHJpbmcsIGFuZCB0aHVzIGNhbiBwcmludCBpdCBhcyBhIHN0cmluZy4KLQotI2RlZmluZSBH
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKENoYXJUeXBlLCBPdGhlclN0cmlu
Z1R5cGUpIFwKLSAgdGVtcGxhdGUgPD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgY2xhc3MgRm9ybWF0Rm9yQ29tcGFyaXNvbjxD
aGFyVHlwZSosIE90aGVyU3RyaW5nVHlwZT4geyAgICAgICAgICAgICAgIFwKLSAgIHB1YmxpYzog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBGb3JtYXQoQ2hhclR5cGUqIHZhbHVlKSB7
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHJldHVybiA6OnRlc3Rpbmc6OlByaW50VG9T
dHJpbmcodmFsdWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgfQotCi1HVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNoYXIsIDo6
c3RkOjpzdHJpbmcpOwotR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjb25z
dCBjaGFyLCA6OnN0ZDo6c3RyaW5nKTsKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi1H
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNoYXIsIDo6c3RyaW5nKTsKLUdU
RVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29uc3QgY2hhciwgOjpzdHJpbmcp
OwotI2VuZGlmCi0KLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLUdURVNUX0lNUExfRk9S
TUFUX0NfU1RSSU5HX0FTX1NUUklOR18od2NoYXJfdCwgOjp3c3RyaW5nKTsKLUdURVNUX0lNUExf
Rk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29uc3Qgd2NoYXJfdCwgOjp3c3RyaW5nKTsKLSNl
bmRpZgotCi0jaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCi1HVEVTVF9JTVBMX0ZPUk1BVF9DX1NU
UklOR19BU19TVFJJTkdfKHdjaGFyX3QsIDo6c3RkOjp3c3RyaW5nKTsKLUdURVNUX0lNUExfRk9S
TUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29uc3Qgd2NoYXJfdCwgOjpzdGQ6OndzdHJpbmcpOwot
I2VuZGlmCi0KLSN1bmRlZiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfCi0K
LS8vIEZvcm1hdHMgYSBjb21wYXJpc29uIGFzc2VydGlvbiAoZS5nLiBBU1NFUlRfRVEsIEVYUEVD
VF9MVCwgYW5kIGV0YykKLS8vIG9wZXJhbmQgdG8gYmUgdXNlZCBpbiBhIGZhaWx1cmUgbWVzc2Fn
ZS4gIFRoZSB0eXBlIChidXQgbm90IHZhbHVlKQotLy8gb2YgdGhlIG90aGVyIG9wZXJhbmQgbWF5
IGFmZmVjdCB0aGUgZm9ybWF0LiAgVGhpcyBhbGxvd3MgdXMgdG8KLS8vIHByaW50IGEgY2hhciog
YXMgYSByYXcgcG9pbnRlciB3aGVuIGl0IGlzIGNvbXBhcmVkIGFnYWluc3QgYW5vdGhlcgotLy8g
Y2hhciogb3Igdm9pZCosIGFuZCBwcmludCBpdCBhcyBhIEMgc3RyaW5nIHdoZW4gaXQgaXMgY29t
cGFyZWQKLS8vIGFnYWluc3QgYW4gc3RkOjpzdHJpbmcgb2JqZWN0LCBmb3IgZXhhbXBsZS4KLS8v
Ci0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gQSBVU0VSIFBST0dS
QU0uCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotc3RkOjpzdHJpbmcgRm9y
bWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKAotICAgIGNvbnN0IFQxJiB2YWx1ZSwgY29u
c3QgVDImIC8qIG90aGVyX29wZXJhbmQgKi8pIHsKLSAgcmV0dXJuIEZvcm1hdEZvckNvbXBhcmlz
b248VDEsIFQyPjo6Rm9ybWF0KHZhbHVlKTsKLX0KLQotLy8gVW5pdmVyc2FsUHJpbnRlcjxUPjo6
UHJpbnQodmFsdWUsIG9zdHJlYW1fcHRyKSBwcmludHMgdGhlIGdpdmVuCi0vLyB2YWx1ZSB0byB0
aGUgZ2l2ZW4gb3N0cmVhbS4gIFRoZSBjYWxsZXIgbXVzdCBlbnN1cmUgdGhhdAotLy8gJ29zdHJl
YW1fcHRyJyBpcyBub3QgTlVMTCwgb3IgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS8vCi0v
LyBXZSBkZWZpbmUgVW5pdmVyc2FsUHJpbnRlciBhcyBhIGNsYXNzIHRlbXBsYXRlIChhcyBvcHBv
c2VkIHRvIGEKLS8vIGZ1bmN0aW9uIHRlbXBsYXRlKSwgYXMgd2UgbmVlZCB0byBwYXJ0aWFsbHkg
c3BlY2lhbGl6ZSBpdCBmb3IKLS8vIHJlZmVyZW5jZSB0eXBlcywgd2hpY2ggY2Fubm90IGJlIGRv
bmUgd2l0aCBmdW5jdGlvbiB0ZW1wbGF0ZXMuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNz
IFVuaXZlcnNhbFByaW50ZXI7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBVbml2ZXJz
YWxQcmludChjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLQotZW51bSBEZWZh
dWx0UHJpbnRlclR5cGUgewotICBrUHJpbnRDb250YWluZXIsCi0gIGtQcmludFBvaW50ZXIsCi0g
IGtQcmludEZ1bmN0aW9uUG9pbnRlciwKLSAga1ByaW50T3RoZXIsCi19OwotdGVtcGxhdGUgPERl
ZmF1bHRQcmludGVyVHlwZSB0eXBlPiBzdHJ1Y3QgV3JhcFByaW50ZXJUeXBlIHt9OwotCi0vLyBV
c2VkIHRvIHByaW50IGFuIFNUTC1zdHlsZSBjb250YWluZXIgd2hlbiB0aGUgdXNlciBkb2Vzbid0
IGRlZmluZQotLy8gYSBQcmludFRvKCkgZm9yIGl0LgotdGVtcGxhdGUgPHR5cGVuYW1lIEM+Ci12
b2lkIERlZmF1bHRQcmludFRvKFdyYXBQcmludGVyVHlwZTxrUHJpbnRDb250YWluZXI+IC8qIGR1
bW15ICovLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBDJiBjb250YWluZXIsIDo6c3RkOjpv
c3RyZWFtKiBvcykgewotICBjb25zdCBzaXplX3Qga01heENvdW50ID0gMzI7ICAvLyBUaGUgbWF4
aW11bSBudW1iZXIgb2YgZWxlbWVudHMgdG8gcHJpbnQuCi0gICpvcyA8PCAneyc7Ci0gIHNpemVf
dCBjb3VudCA9IDA7Ci0gIGZvciAodHlwZW5hbWUgQzo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjb250
YWluZXIuYmVnaW4oKTsKLSAgICAgICBpdCAhPSBjb250YWluZXIuZW5kKCk7ICsraXQsICsrY291
bnQpIHsKLSAgICBpZiAoY291bnQgPiAwKSB7Ci0gICAgICAqb3MgPDwgJywnOwotICAgICAgaWYg
KGNvdW50ID09IGtNYXhDb3VudCkgeyAgLy8gRW5vdWdoIGhhcyBiZWVuIHByaW50ZWQuCi0gICAg
ICAgICpvcyA8PCAiIC4uLiI7Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0KLSAgICAq
b3MgPDwgJyAnOwotICAgIC8vIFdlIGNhbm5vdCBjYWxsIFByaW50VG8oKml0LCBvcykgaGVyZSBh
cyBQcmludFRvKCkgZG9lc24ndAotICAgIC8vIGhhbmRsZSAqaXQgYmVpbmcgYSBuYXRpdmUgYXJy
YXkuCi0gICAgaW50ZXJuYWw6OlVuaXZlcnNhbFByaW50KCppdCwgb3MpOwotICB9Ci0KLSAgaWYg
KGNvdW50ID4gMCkgewotICAgICpvcyA8PCAnICc7Ci0gIH0KLSAgKm9zIDw8ICd9JzsKLX0KLQot
Ly8gVXNlZCB0byBwcmludCBhIHBvaW50ZXIgdGhhdCBpcyBuZWl0aGVyIGEgY2hhciBwb2ludGVy
IG5vciBhIG1lbWJlcgotLy8gcG9pbnRlciwgd2hlbiB0aGUgdXNlciBkb2Vzbid0IGRlZmluZSBQ
cmludFRvKCkgZm9yIGl0LiAgKEEgbWVtYmVyCi0vLyB2YXJpYWJsZSBwb2ludGVyIG9yIG1lbWJl
ciBmdW5jdGlvbiBwb2ludGVyIGRvZXNuJ3QgcmVhbGx5IHBvaW50IHRvCi0vLyBhIGxvY2F0aW9u
IGluIHRoZSBhZGRyZXNzIHNwYWNlLiAgVGhlaXIgcmVwcmVzZW50YXRpb24gaXMKLS8vIGltcGxl
bWVudGF0aW9uLWRlZmluZWQuICBUaGVyZWZvcmUgdGhleSB3aWxsIGJlIHByaW50ZWQgYXMgcmF3
Ci0vLyBieXRlcy4pCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQgRGVmYXVsdFByaW50VG8o
V3JhcFByaW50ZXJUeXBlPGtQcmludFBvaW50ZXI+IC8qIGR1bW15ICovLAotICAgICAgICAgICAg
ICAgICAgICBUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgaWYgKHAgPT0gTlVMTCkgewot
ICAgICpvcyA8PCAiTlVMTCI7Ci0gIH0gZWxzZSB7Ci0gICAgLy8gVCBpcyBub3QgYSBmdW5jdGlv
biB0eXBlLiAgV2UganVzdCBjYWxsIDw8IHRvIHByaW50IHAsCi0gICAgLy8gcmVseWluZyBvbiBB
REwgdG8gcGljayB1cCB1c2VyLWRlZmluZWQgPDwgZm9yIHRoZWlyIHBvaW50ZXIKLSAgICAvLyB0
eXBlcywgaWYgYW55LgotICAgICpvcyA8PCBwOwotICB9Ci19Ci10ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLXZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQcmludEZ1bmN0aW9uUG9p
bnRlcj4gLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgIFQqIHAsIDo6c3RkOjpvc3Ry
ZWFtKiBvcykgewotICBpZiAocCA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBl
bHNlIHsKLSAgICAvLyBUIGlzIGEgZnVuY3Rpb24gdHlwZSwgc28gJypvcyA8PCBwJyBkb2Vzbid0
IGRvIHdoYXQgd2Ugd2FudAotICAgIC8vIChpdCBqdXN0IHByaW50cyBwIGFzIGJvb2wpLiAgQ2Fz
dCBwIHRvIGNvbnN0IHZvaWQqIHRvIHByaW50IGl0LgotICAgICpvcyA8PCByZWludGVycHJldF9j
YXN0PGNvbnN0IHZvaWQqPihwKTsKLSAgfQotfQotCi0vLyBVc2VkIHRvIHByaW50IGEgbm9uLWNv
bnRhaW5lciwgbm9uLXBvaW50ZXIgdmFsdWUgd2hlbiB0aGUgdXNlcgotLy8gZG9lc24ndCBkZWZp
bmUgUHJpbnRUbygpIGZvciBpdC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0
UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50T3RoZXI+IC8qIGR1bW15ICovLAotICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIDo6
dGVzdGluZ19pbnRlcm5hbDo6RGVmYXVsdFByaW50Tm9uQ29udGFpbmVyVG8odmFsdWUsIG9zKTsK
LX0KLQotLy8gUHJpbnRzIHRoZSBnaXZlbiB2YWx1ZSB1c2luZyB0aGUgPDwgb3BlcmF0b3IgaWYg
aXQgaGFzIG9uZTsKLS8vIG90aGVyd2lzZSBwcmludHMgdGhlIGJ5dGVzIGluIGl0LiAgVGhpcyBp
cyB3aGF0Ci0vLyBVbml2ZXJzYWxQcmludGVyPFQ+OjpQcmludCgpIGRvZXMgd2hlbiBQcmludFRv
KCkgaXMgbm90IHNwZWNpYWxpemVkCi0vLyBvciBvdmVybG9hZGVkIGZvciB0eXBlIFQuCi0vLwot
Ly8gQSB1c2VyIGNhbiBvdmVycmlkZSB0aGlzIGJlaGF2aW9yIGZvciBhIGNsYXNzIHR5cGUgRm9v
IGJ5IGRlZmluaW5nCi0vLyBhbiBvdmVybG9hZCBvZiBQcmludFRvKCkgaW4gdGhlIG5hbWVzcGFj
ZSB3aGVyZSBGb28gaXMgZGVmaW5lZC4gIFdlCi0vLyBnaXZlIHRoZSB1c2VyIHRoaXMgb3B0aW9u
IGFzIHNvbWV0aW1lcyBkZWZpbmluZyBhIDw8IG9wZXJhdG9yIGZvcgotLy8gRm9vIGlzIG5vdCBk
ZXNpcmFibGUgKGUuZy4gdGhlIGNvZGluZyBzdHlsZSBtYXkgcHJldmVudCBkb2luZyBpdCwKLS8v
IG9yIHRoZXJlIGlzIGFscmVhZHkgYSA8PCBvcGVyYXRvciBidXQgaXQgZG9lc24ndCBkbyB3aGF0
IHRoZSB1c2VyCi0vLyB3YW50cykuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQgUHJpbnRU
byhjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIC8vIERlZmF1bHRQcmlu
dFRvKCkgaXMgb3ZlcmxvYWRlZC4gIFRoZSB0eXBlIG9mIGl0cyBmaXJzdCBhcmd1bWVudAotICAv
LyBkZXRlcm1pbmVzIHdoaWNoIHZlcnNpb24gd2lsbCBiZSBwaWNrZWQuCi0gIC8vCi0gIC8vIE5v
dGUgdGhhdCB3ZSBjaGVjayBmb3IgcmVjdXJzaXZlIGFuZCBvdGhlciBjb250YWluZXIgdHlwZXMg
aGVyZSwgcHJpb3IgCi0gIC8vIHRvIHdlIGNoZWNrIGZvciBwcm90b2NvbCBtZXNzYWdlIHR5cGVz
IGluIG91ciBvcGVyYXRvcjw8LiAgVGhlIHJhdGlvbmFsZSBpczoKLSAgLy8KLSAgLy8gRm9yIHBy
b3RvY29sIG1lc3NhZ2VzLCB3ZSB3YW50IHRvIGdpdmUgcGVvcGxlIGEgY2hhbmNlIHRvCi0gIC8v
IG92ZXJyaWRlIEdvb2dsZSBNb2NrJ3MgZm9ybWF0IGJ5IGRlZmluaW5nIGEgUHJpbnRUbygpIG9y
Ci0gIC8vIG9wZXJhdG9yPDwuICBGb3IgU1RMIGNvbnRhaW5lcnMsIG90aGVyIGZvcm1hdHMgY2Fu
IGJlCi0gIC8vIGluY29tcGF0aWJsZSB3aXRoIEdvb2dsZSBNb2NrJ3MgZm9ybWF0IGZvciB0aGUg
Y29udGFpbmVyCi0gIC8vIGVsZW1lbnRzOyB0aGVyZWZvcmUgd2UgY2hlY2sgZm9yIGNvbnRhaW5l
ciB0eXBlcyBoZXJlIHRvIGVuc3VyZQotICAvLyB0aGF0IG91ciBmb3JtYXQgaXMgdXNlZC4gVG8g
cHJldmVudCBhbiBpbmZpbml0ZSBydW50aW1lIHJlY3Vyc2lvbgotICAvLyBkdXJpbmcgdGhlIG91
dHB1dCBvZiByZWN1cnNpdmUgY29udGFpbmVyIHR5cGVzLCB3ZSBjaGVjayBmaXJzdCBmb3IKLSAg
Ly8gdGhvc2UuCi0gIC8vCi0gIC8vIE5vdGUgdGhhdCBNU1ZDIGFuZCBjbGFuZy1jbCBkbyBhbGxv
dyBhbiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20KLSAgLy8gcG9pbnRlci10by1mdW5jdGlvbiB0
byBwb2ludGVyLXRvLW9iamVjdCwgYnV0IGNsYW5nLWNsIHdhcm5zIG9uIGl0LgotICAvLyBTbyBk
b24ndCB1c2UgSW1wbGljaXRseUNvbnZlcnRpYmxlIGlmIGl0IGNhbiBiZSBoZWxwZWQgc2luY2Ug
aXQgd2lsbAotICAvLyBjYXVzZSB0aGlzIHdhcm5pbmcsIGFuZCB1c2UgYSBzZXBhcmF0ZSBvdmVy
bG9hZCBvZiBEZWZhdWx0UHJpbnRUbyBmb3IKLSAgLy8gZnVuY3Rpb24gcG9pbnRlcnMgc28gdGhh
dCB0aGUgYCpvcyA8PCBwYCBpbiB0aGUgb2JqZWN0IHBvaW50ZXIgb3ZlcmxvYWQKLSAgLy8gZG9l
c24ndCBjYXVzZSB0aGF0IHdhcm5pbmcgZWl0aGVyLgotICBEZWZhdWx0UHJpbnRUbygKLSAgICAg
IFdyYXBQcmludGVyVHlwZTwKLSAgICAgICAgICAoc2l6ZW9mKElzQ29udGFpbmVyVGVzdDxUPigw
KSkgPT0gc2l6ZW9mKElzQ29udGFpbmVyKSkgJiYgIUlzUmVjdXJzaXZlQ29udGFpbmVyPFQ+Ojp2
YWx1ZQotICAgICAgICAgICAgPyBrUHJpbnRDb250YWluZXIgOiAhaXNfcG9pbnRlcjxUPjo6dmFs
dWUKLSAgICAgICAgICAgICAgPyBrUHJpbnRPdGhlcgotI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSAg
ICAgICAgICAgICAgICA6IHN0ZDo6aXNfZnVuY3Rpb248dHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9p
bnRlcjxUPjo6dHlwZT46OnZhbHVlCi0jZWxzZQotICAgICAgICAgICAgICAgIDogIWludGVybmFs
OjpJbXBsaWNpdGx5Q29udmVydGlibGU8VCwgY29uc3Qgdm9pZCo+Ojp2YWx1ZQotI2VuZGlmCi0g
ICAgICAgICAgICAgICAgICAgID8ga1ByaW50RnVuY3Rpb25Qb2ludGVyCi0gICAgICAgICAgICAg
ICAgICAgIDoga1ByaW50UG9pbnRlcj4oKSwKLSAgICAgIHZhbHVlLCBvcyk7Ci19Ci0KLS8vIFRo
ZSBmb2xsb3dpbmcgbGlzdCBvZiBQcmludFRvKCkgb3ZlcmxvYWRzIHRlbGxzCi0vLyBVbml2ZXJz
YWxQcmludGVyPFQ+OjpQcmludCgpIGhvdyB0byBwcmludCBzdGFuZGFyZCB0eXBlcyAoYnVpbHQt
aW4KLS8vIHR5cGVzLCBzdHJpbmdzLCBwbGFpbiBhcnJheXMsIGFuZCBwb2ludGVycykuCi0KLS8v
IE92ZXJsb2FkcyBmb3IgdmFyaW91cyBjaGFyIHR5cGVzLgotR1RFU1RfQVBJXyB2b2lkIFByaW50
VG8odW5zaWduZWQgY2hhciBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotR1RFU1RfQVBJXyB2b2lk
IFByaW50VG8oc2lnbmVkIGNoYXIgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLWlubGluZSB2b2lk
IFByaW50VG8oY2hhciBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgLy8gV2hlbiBwcmludGlu
ZyBhIHBsYWluIGNoYXIsIHdlIGFsd2F5cyB0cmVhdCBpdCBhcyB1bnNpZ25lZC4gIFRoaXMKLSAg
Ly8gd2F5LCB0aGUgb3V0cHV0IHdvbid0IGJlIGFmZmVjdGVkIGJ5IHdoZXRoZXIgdGhlIGNvbXBp
bGVyIHRoaW5rcwotICAvLyBjaGFyIGlzIHNpZ25lZCBvciBub3QuCi0gIFByaW50VG8oc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhcj4oYyksIG9zKTsKLX0KLQotLy8gT3ZlcmxvYWRzIGZvciBvdGhl
ciBzaW1wbGUgYnVpbHQtaW4gdHlwZXMuCi1pbmxpbmUgdm9pZCBQcmludFRvKGJvb2wgeCwgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICpvcyA8PCAoeCA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotfQot
Ci0vLyBPdmVybG9hZCBmb3Igd2NoYXJfdCB0eXBlLgotLy8gUHJpbnRzIGEgd2NoYXJfdCBhcyBh
IHN5bWJvbCBpZiBpdCBpcyBwcmludGFibGUgb3IgYXMgaXRzIGludGVybmFsCi0vLyBjb2RlIG90
aGVyd2lzZSBhbmQgYWxzbyBhcyBpdHMgZGVjaW1hbCBjb2RlIChleGNlcHQgZm9yIEwnXDAnKS4K
LS8vIFRoZSBMJ1wwJyBjaGFyIGlzIHByaW50ZWQgYXMgIkwnXFwwJyIuIFRoZSBkZWNpbWFsIGNv
ZGUgaXMgcHJpbnRlZAotLy8gYXMgc2lnbmVkIGludGVnZXIgd2hlbiB3Y2hhcl90IGlzIGltcGxl
bWVudGVkIGJ5IHRoZSBjb21waWxlcgotLy8gYXMgYSBzaWduZWQgdHlwZSBhbmQgaXMgcHJpbnRl
ZCBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHdoZW4gd2NoYXJfdAotLy8gaXMgaW1wbGVtZW50ZWQg
YXMgYW4gdW5zaWduZWQgdHlwZS4KLUdURVNUX0FQSV8gdm9pZCBQcmludFRvKHdjaGFyX3Qgd2Ms
IDo6c3RkOjpvc3RyZWFtKiBvcyk7Ci0KLS8vIE92ZXJsb2FkcyBmb3IgQyBzdHJpbmdzLgotR1RF
U1RfQVBJXyB2b2lkIFByaW50VG8oY29uc3QgY2hhciogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsK
LWlubGluZSB2b2lkIFByaW50VG8oY2hhciogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFBy
aW50VG8oSW1wbGljaXRDYXN0Xzxjb25zdCBjaGFyKj4ocyksIG9zKTsKLX0KLQotLy8gc2lnbmVk
L3Vuc2lnbmVkIGNoYXIgaXMgb2Z0ZW4gdXNlZCBmb3IgcmVwcmVzZW50aW5nIGJpbmFyeSBkYXRh
LCBzbwotLy8gd2UgcHJpbnQgcG9pbnRlcnMgdG8gaXQgYXMgdm9pZCogdG8gYmUgc2FmZS4KLWlu
bGluZSB2b2lkIFByaW50VG8oY29uc3Qgc2lnbmVkIGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBv
cykgewotICBQcmludFRvKEltcGxpY2l0Q2FzdF88Y29uc3Qgdm9pZCo+KHMpLCBvcyk7Ci19Ci1p
bmxpbmUgdm9pZCBQcmludFRvKHNpZ25lZCBjaGFyKiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsK
LSAgUHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQqPihzKSwgb3MpOwotfQotaW5saW5l
IHZvaWQgUHJpbnRUbyhjb25zdCB1bnNpZ25lZCBjaGFyKiBzLCA6OnN0ZDo6b3N0cmVhbSogb3Mp
IHsKLSAgUHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQqPihzKSwgb3MpOwotfQotaW5s
aW5lIHZvaWQgUHJpbnRUbyh1bnNpZ25lZCBjaGFyKiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsK
LSAgUHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQqPihzKSwgb3MpOwotfQotCi0vLyBN
U1ZDIGNhbiBiZSBjb25maWd1cmVkIHRvIGRlZmluZSB3Y2hhcl90IGFzIGEgdHlwZWRlZiBvZiB1
bnNpZ25lZAotLy8gc2hvcnQuICBJdCBkZWZpbmVzIF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEIHdo
ZW4gd2NoYXJfdCBpcyBhIG5hdGl2ZQotLy8gdHlwZS4gIFdoZW4gd2NoYXJfdCBpcyBhIHR5cGVk
ZWYsIGRlZmluaW5nIGFuIG92ZXJsb2FkIGZvciBjb25zdAotLy8gd2NoYXJfdCogd291bGQgY2F1
c2UgdW5zaWduZWQgc2hvcnQqIGJlIHByaW50ZWQgYXMgYSB3aWRlIHN0cmluZywKLS8vIHBvc3Np
Ymx5IGNhdXNpbmcgaW52YWxpZCBtZW1vcnkgYWNjZXNzZXMuCi0jaWYgIWRlZmluZWQoX01TQ19W
RVIpIHx8IGRlZmluZWQoX05BVElWRV9XQ0hBUl9UX0RFRklORUQpCi0vLyBPdmVybG9hZHMgZm9y
IHdpZGUgQyBzdHJpbmdzCi1HVEVTVF9BUElfIHZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBz
LCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5saW5lIHZvaWQgUHJpbnRUbyh3Y2hhcl90KiBzLCA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHdjaGFy
X3QqPihzKSwgb3MpOwotfQotI2VuZGlmCi0KLS8vIE92ZXJsb2FkIGZvciBDIGFycmF5cy4gIE11
bHRpLWRpbWVuc2lvbmFsIGFycmF5cyBhcmUgcHJpbnRlZAotLy8gcHJvcGVybHkuCi0KLS8vIFBy
aW50cyB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzIGluIGFuIGFycmF5LCB3aXRob3V0IHBy
aW50aW5nCi0vLyB0aGUgY3VybHkgYnJhY2VzLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12b2lk
IFByaW50UmF3QXJyYXlUbyhjb25zdCBUIGFbXSwgc2l6ZV90IGNvdW50LCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKLSAgVW5pdmVyc2FsUHJpbnQoYVswXSwgb3MpOwotICBmb3IgKHNpemVfdCBpID0g
MTsgaSAhPSBjb3VudDsgaSsrKSB7Ci0gICAgKm9zIDw8ICIsICI7Ci0gICAgVW5pdmVyc2FsUHJp
bnQoYVtpXSwgb3MpOwotICB9Ci19Ci0KLS8vIE92ZXJsb2FkcyBmb3IgOjpzdHJpbmcgYW5kIDo6
c3RkOjpzdHJpbmcuCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLUdURVNUX0FQSV8gdm9p
ZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6c3RyaW5nJnMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7Ci1p
bmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3Mp
IHsKLSAgUHJpbnRTdHJpbmdUbyhzLCBvcyk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9C
QUxfU1RSSU5HCi0KLUdURVNUX0FQSV8gdm9pZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6c3RkOjpz
dHJpbmcmcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLWlubGluZSB2b2lkIFByaW50VG8oY29uc3Qg
OjpzdGQ6OnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50U3RyaW5nVG8o
cywgb3MpOwotfQotCi0vLyBPdmVybG9hZHMgZm9yIDo6d3N0cmluZyBhbmQgOjpzdGQ6OndzdHJp
bmcuCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi1HVEVTVF9BUElfIHZvaWQgUHJpbnRX
aWRlU3RyaW5nVG8oY29uc3QgOjp3c3RyaW5nJnMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7Ci1pbmxp
bmUgdm9pZCBQcmludFRvKGNvbnN0IDo6d3N0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
Ci0gIFByaW50V2lkZVN0cmluZ1RvKHMsIG9zKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dM
T0JBTF9XU1RSSU5HCi0KLSNpZiBHVEVTVF9IQVNfU1REX1dTVFJJTkcKLUdURVNUX0FQSV8gdm9p
ZCBQcmludFdpZGVTdHJpbmdUbyhjb25zdCA6OnN0ZDo6d3N0cmluZyZzLCA6OnN0ZDo6b3N0cmVh
bSogb3MpOwotaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6d3N0cmluZyYgcywgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50V2lkZVN0cmluZ1RvKHMsIG9zKTsKLX0KLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCi0KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8
IEdURVNUX0hBU19TVERfVFVQTEVfCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHByaW50aW5nIGEg
dHVwbGUuICBUIG11c3QgYmUgaW5zdGFudGlhdGVkIHdpdGgKLS8vIGEgdHVwbGUgdHlwZS4KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBQcmludFR1cGxlVG8oY29uc3QgVCYgdCwgOjpzdGQ6
Om9zdHJlYW0qIG9zKTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9I
QVNfU1REX1RVUExFXwotCi0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRQotLy8gT3ZlcmxvYWQgZm9y
IDo6c3RkOjp0cjE6OnR1cGxlLiAgTmVlZGVkIGZvciBwcmludGluZyBmdW5jdGlvbiBhcmd1bWVu
dHMsCi0vLyB3aGljaCBhcmUgcGFja2VkIGFzIHR1cGxlcy4KLQotLy8gT3ZlcmxvYWRlZCBQcmlu
dFRvKCkgZm9yIHR1cGxlcyBvZiB2YXJpb3VzIGFyaXRpZXMuICBXZSBzdXBwb3J0Ci0vLyB0dXBs
ZXMgb2YgdXAtdG8gMTAgZmllbGRzLiAgVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRhdGlvbiB3b3Jr
cwotLy8gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRyMTo6dHVwbGUgaXMgaW1wbGVtZW50ZWQgdXNp
bmcgdGhlCi0vLyBub24tc3RhbmRhcmQgdmFyaWFkaWMgdGVtcGxhdGUgZmVhdHVyZSBvciBub3Qu
Ci0KLWlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8PiYgdCwgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMT4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMT4m
IHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotdm9pZCBQcmludFRvKGNvbnN0IDo6
c3RkOjp0cjE6OnR1cGxlPFQxLCBUMj4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmlu
dFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMz4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwg
VDIsIFQzPiYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUND4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIs
IFQzLCBUND4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3Mp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6
OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJl
YW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgICAgICAgdHlwZW5hbWUgVDY+Ci12b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6
dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3Pgotdm9pZCBQcmludFRvKGNv
bnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiYgdCwKLSAg
ICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDk+Ci12b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJl
YW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4KLXZvaWQgUHJpbnRUbygKLSAgICBjb25zdCA6OnN0ZDo6dHIx
Ojp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+JiB0LAotICAg
IDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotI2VuZGlm
ICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLSNpZiBHVEVTVF9IQVNfU1REX1RVUExFXwotdGVt
cGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0dXBs
ZTxUeXBlcy4uLj4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwg
b3MpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1RVUExFXwotCi0vLyBPdmVybG9hZCBm
b3Igc3RkOjpwYWlyLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQg
UHJpbnRUbyhjb25zdCA6OnN0ZDo6cGFpcjxUMSwgVDI+JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7Ci0gICpvcyA8PCAnKCc7Ci0gIC8vIFdlIGNhbm5vdCB1c2UgVW5pdmVyc2FsUHJpbnQo
dmFsdWUuZmlyc3QsIG9zKSBoZXJlLCBhcyBUMSBtYXkgYmUKLSAgLy8gYSByZWZlcmVuY2UgdHlw
ZS4gIFRoZSBzYW1lIGZvciBwcmludGluZyB2YWx1ZS5zZWNvbmQuCi0gIFVuaXZlcnNhbFByaW50
ZXI8VDE+OjpQcmludCh2YWx1ZS5maXJzdCwgb3MpOwotICAqb3MgPDwgIiwgIjsKLSAgVW5pdmVy
c2FsUHJpbnRlcjxUMj46OlByaW50KHZhbHVlLnNlY29uZCwgb3MpOwotICAqb3MgPDwgJyknOwot
fQotCi0vLyBJbXBsZW1lbnRzIHByaW50aW5nIGEgbm9uLXJlZmVyZW5jZSB0eXBlIFQgYnkgbGV0
dGluZyB0aGUgY29tcGlsZXIKLS8vIHBpY2sgdGhlIHJpZ2h0IG92ZXJsb2FkIG9mIFByaW50VG8o
KSBmb3IgVC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVW5pdmVyc2FsUHJpbnRlciB7
Ci0gcHVibGljOgotICAvLyBNU1ZDIHdhcm5zIGFib3V0IGFkZGluZyBjb25zdCB0byBhIGZ1bmN0
aW9uIHR5cGUsIHNvIHdlIHdhbnQgdG8KLSAgLy8gZGlzYWJsZSB0aGUgd2FybmluZy4KLSAgR1RF
U1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDE4MCkKLQotICAvLyBOb3RlOiB3ZSBkZWxp
YmVyYXRlbHkgZG9uJ3QgY2FsbCB0aGlzIFByaW50VG8oKSwgYXMgdGhhdCBuYW1lCi0gIC8vIGNv
bmZsaWN0cyB3aXRoIDo6dGVzdGluZzo6aW50ZXJuYWw6OlByaW50VG8gaW4gdGhlIGJvZHkgb2Yg
dGhlCi0gIC8vIGZ1bmN0aW9uLgotICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBUJiB2YWx1ZSwg
OjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgLy8gQnkgZGVmYXVsdCwgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6UHJpbnRUbygpIGlzIHVzZWQgZm9yIHByaW50aW5nCi0gICAgLy8gdGhlIHZhbHVlLgot
ICAgIC8vCi0gICAgLy8gVGhhbmtzIHRvIEtvZW5pZyBsb29rLXVwLCBpZiBUIGlzIGEgY2xhc3Mg
YW5kIGhhcyBpdHMgb3duCi0gICAgLy8gUHJpbnRUbygpIGZ1bmN0aW9uIGRlZmluZWQgaW4gaXRz
IG5hbWVzcGFjZSwgdGhhdCBmdW5jdGlvbiB3aWxsCi0gICAgLy8gYmUgdmlzaWJsZSBoZXJlLiAg
U2luY2UgaXQgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIHRoZSBnZW5lcmljIG9uZXMKLSAgICAvLyBp
biA6OnRlc3Rpbmc6OmludGVybmFsLCBpdCB3aWxsIGJlIHBpY2tlZCBieSB0aGUgY29tcGlsZXIg
aW4gdGhlCi0gICAgLy8gZm9sbG93aW5nIHN0YXRlbWVudCAtIGV4YWN0bHkgd2hhdCB3ZSB3YW50
LgotICAgIFByaW50VG8odmFsdWUsIG9zKTsKLSAgfQotCi0gIEdURVNUX0RJU0FCTEVfTVNDX1dB
Uk5JTkdTX1BPUF8oKQotfTsKLQotLy8gVW5pdmVyc2FsUHJpbnRBcnJheShiZWdpbiwgbGVuLCBv
cykgcHJpbnRzIGFuIGFycmF5IG9mICdsZW4nCi0vLyBlbGVtZW50cywgc3RhcnRpbmcgYXQgYWRk
cmVzcyAnYmVnaW4nLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12b2lkIFVuaXZlcnNhbFByaW50
QXJyYXkoY29uc3QgVCogYmVnaW4sIHNpemVfdCBsZW4sIDo6c3RkOjpvc3RyZWFtKiBvcykgewot
ICBpZiAobGVuID09IDApIHsKLSAgICAqb3MgPDwgInt9IjsKLSAgfSBlbHNlIHsKLSAgICAqb3Mg
PDwgInsgIjsKLSAgICBjb25zdCBzaXplX3Qga1RocmVzaG9sZCA9IDE4OwotICAgIGNvbnN0IHNp
emVfdCBrQ2h1bmtTaXplID0gODsKLSAgICAvLyBJZiB0aGUgYXJyYXkgaGFzIG1vcmUgdGhhbiBr
VGhyZXNob2xkIGVsZW1lbnRzLCB3ZSdsbCBoYXZlIHRvCi0gICAgLy8gb21pdCBzb21lIGRldGFp
bHMgYnkgcHJpbnRpbmcgb25seSB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0Ci0gICAgLy8ga0NodW5r
U2l6ZSBlbGVtZW50cy4KLSAgICAvLyBUT0RPKHdhbkBnb29nbGUuY29tKTogbGV0IHRoZSB1c2Vy
IGNvbnRyb2wgdGhlIHRocmVzaG9sZCB1c2luZyBhIGZsYWcuCi0gICAgaWYgKGxlbiA8PSBrVGhy
ZXNob2xkKSB7Ci0gICAgICBQcmludFJhd0FycmF5VG8oYmVnaW4sIGxlbiwgb3MpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBQcmludFJhd0FycmF5VG8oYmVnaW4sIGtDaHVua1NpemUsIG9zKTsKLSAg
ICAgICpvcyA8PCAiLCAuLi4sICI7Ci0gICAgICBQcmludFJhd0FycmF5VG8oYmVnaW4gKyBsZW4g
LSBrQ2h1bmtTaXplLCBrQ2h1bmtTaXplLCBvcyk7Ci0gICAgfQotICAgICpvcyA8PCAiIH0iOwot
ICB9Ci19Ci0vLyBUaGlzIG92ZXJsb2FkIHByaW50cyBhIChjb25zdCkgY2hhciBhcnJheSBjb21w
YWN0bHkuCi1HVEVTVF9BUElfIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheSgKLSAgICBjb25zdCBj
aGFyKiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLQotLy8gVGhpcyBv
dmVybG9hZCBwcmludHMgYSAoY29uc3QpIHdjaGFyX3QgYXJyYXkgY29tcGFjdGx5LgotR1RFU1Rf
QVBJXyB2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoCi0gICAgY29uc3Qgd2NoYXJfdCogYmVnaW4s
IHNpemVfdCBsZW4sIDo6c3RkOjpvc3RyZWFtKiBvcyk7Ci0KLS8vIEltcGxlbWVudHMgcHJpbnRp
bmcgYW4gYXJyYXkgdHlwZSBUW05dLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgot
Y2xhc3MgVW5pdmVyc2FsUHJpbnRlcjxUW05dPiB7Ci0gcHVibGljOgotICAvLyBQcmludHMgdGhl
IGdpdmVuIGFycmF5LCBvbWl0dGluZyBzb21lIGVsZW1lbnRzIHdoZW4gdGhlcmUgYXJlIHRvbwot
ICAvLyBtYW55LgotICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBUICgmYSlbTl0sIDo6c3RkOjpv
c3RyZWFtKiBvcykgewotICAgIFVuaXZlcnNhbFByaW50QXJyYXkoYSwgTiwgb3MpOwotICB9Ci19
OwotCi0vLyBJbXBsZW1lbnRzIHByaW50aW5nIGEgcmVmZXJlbmNlIHR5cGUgVCYuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFVuaXZlcnNhbFByaW50ZXI8VCY+IHsKLSBwdWJsaWM6Ci0g
IC8vIE1TVkMgd2FybnMgYWJvdXQgYWRkaW5nIGNvbnN0IHRvIGEgZnVuY3Rpb24gdHlwZSwgc28g
d2Ugd2FudCB0bwotICAvLyBkaXNhYmxlIHRoZSB3YXJuaW5nLgotICBHVEVTVF9ESVNBQkxFX01T
Q19XQVJOSU5HU19QVVNIXyg0MTgwKQotCi0gIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IFQmIHZh
bHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICAvLyBQcmludHMgdGhlIGFkZHJlc3Mgb2Yg
dGhlIHZhbHVlLiAgV2UgdXNlIHJlaW50ZXJwcmV0X2Nhc3QgaGVyZQotICAgIC8vIGFzIHN0YXRp
Y19jYXN0IGRvZXNuJ3QgY29tcGlsZSB3aGVuIFQgaXMgYSBmdW5jdGlvbiB0eXBlLgotICAgICpv
cyA8PCAiQCIgPDwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oJnZhbHVlKSA8PCAiICI7
Ci0KLSAgICAvLyBUaGVuIHByaW50cyB0aGUgdmFsdWUgaXRzZWxmLgotICAgIFVuaXZlcnNhbFBy
aW50KHZhbHVlLCBvcyk7Ci0gIH0KLQotICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1Bf
KCkKLX07Ci0KLS8vIFByaW50cyBhIHZhbHVlIHRlcnNlbHk6IGZvciBhIHJlZmVyZW5jZSB0eXBl
LCB0aGUgcmVmZXJlbmNlZCB2YWx1ZQotLy8gKGJ1dCBub3QgdGhlIGFkZHJlc3MpIGlzIHByaW50
ZWQ7IGZvciBhIChjb25zdCkgY2hhciBwb2ludGVyLCB0aGUKLS8vIE5VTC10ZXJtaW5hdGVkIHN0
cmluZyAoYnV0IG5vdCB0aGUgcG9pbnRlcikgaXMgcHJpbnRlZC4KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1jbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXIgewotIHB1YmxpYzoKLSAgc3RhdGlj
IHZvaWQgUHJpbnQoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIFVu
aXZlcnNhbFByaW50KHZhbHVlLCBvcyk7Ci0gIH0KLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
LWNsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxUJj4gewotIHB1YmxpYzoKLSAgc3RhdGljIHZv
aWQgUHJpbnQoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIFVuaXZl
cnNhbFByaW50KHZhbHVlLCBvcyk7Ci0gIH0KLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6
ZV90IE4+Ci1jbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8VFtOXT4gewotIHB1YmxpYzoKLSAg
c3RhdGljIHZvaWQgUHJpbnQoY29uc3QgVCAoJnZhbHVlKVtOXSwgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7Ci0gICAgVW5pdmVyc2FsUHJpbnRlcjxUW05dPjo6UHJpbnQodmFsdWUsIG9zKTsKLSAgfQot
fTsKLXRlbXBsYXRlIDw+Ci1jbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcio+
IHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IGNoYXIqIHN0ciwgOjpzdGQ6
Om9zdHJlYW0qIG9zKSB7Ci0gICAgaWYgKHN0ciA9PSBOVUxMKSB7Ci0gICAgICAqb3MgPDwgIk5V
TEwiOwotICAgIH0gZWxzZSB7Ci0gICAgICBVbml2ZXJzYWxQcmludChzdGQ6OnN0cmluZyhzdHIp
LCBvcyk7Ci0gICAgfQotICB9Ci19OwotdGVtcGxhdGUgPD4KLWNsYXNzIFVuaXZlcnNhbFRlcnNl
UHJpbnRlcjxjaGFyKj4gewotIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQoY2hhciogc3Ry
LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3Qg
Y2hhcio+OjpQcmludChzdHIsIG9zKTsKLSAgfQotfTsKLQotI2lmIEdURVNUX0hBU19TVERfV1NU
UklORwotdGVtcGxhdGUgPD4KLWNsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjb25zdCB3Y2hh
cl90Kj4gewotIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3Qgd2NoYXJfdCogc3Ry
LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBpZiAoc3RyID09IE5VTEwpIHsKLSAgICAgICpv
cyA8PCAiTlVMTCI7Ci0gICAgfSBlbHNlIHsKLSAgICAgIFVuaXZlcnNhbFByaW50KDo6c3RkOjp3
c3RyaW5nKHN0ciksIG9zKTsKLSAgICB9Ci0gIH0KLX07Ci0jZW5kaWYKLQotdGVtcGxhdGUgPD4K
LWNsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjx3Y2hhcl90Kj4gewotIHB1YmxpYzoKLSAgc3Rh
dGljIHZvaWQgUHJpbnQod2NoYXJfdCogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBV
bml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3Qgd2NoYXJfdCo+OjpQcmludChzdHIsIG9zKTsKLSAg
fQotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12b2lkIFVuaXZlcnNhbFRlcnNlUHJpbnQo
Y29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBVbml2ZXJzYWxUZXJzZVBy
aW50ZXI8VD46OlByaW50KHZhbHVlLCBvcyk7Ci19Ci0KLS8vIFByaW50cyBhIHZhbHVlIHVzaW5n
IHRoZSB0eXBlIGluZmVycmVkIGJ5IHRoZSBjb21waWxlci4gIFRoZQotLy8gZGlmZmVyZW5jZSBi
ZXR3ZWVuIHRoaXMgYW5kIFVuaXZlcnNhbFRlcnNlUHJpbnQoKSBpcyB0aGF0IGZvciBhCi0vLyAo
Y29uc3QpIGNoYXIgcG9pbnRlciwgdGhpcyBwcmludHMgYm90aCB0aGUgcG9pbnRlciBhbmQgdGhl
Ci0vLyBOVUwtdGVybWluYXRlZCBzdHJpbmcuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQg
VW5pdmVyc2FsUHJpbnQoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAv
LyBBIHdvcmthcm9uZCBmb3IgdGhlIGJ1ZyBpbiBWQysrIDcuMSB0aGF0IHByZXZlbnRzIHVzIGZy
b20gaW5zdGFudGlhdGluZwotICAvLyBVbml2ZXJzYWxQcmludGVyIHdpdGggVCBkaXJlY3RseS4K
LSAgdHlwZWRlZiBUIFQxOwotICBVbml2ZXJzYWxQcmludGVyPFQxPjo6UHJpbnQodmFsdWUsIG9z
KTsKLX0KLQotdHlwZWRlZiA6OnN0ZDo6dmVjdG9yPHN0cmluZz4gU3RyaW5nczsKLQotLy8gVHVw
bGVQb2xpY3k8VHVwbGVUPiBtdXN0IHByb3ZpZGU6Ci0vLyAtIHR1cGxlX3NpemUKLS8vICAgICBz
aXplIG9mIHR1cGxlIFR1cGxlVC4KLS8vIC0gZ2V0PHNpemVfdCBJPihjb25zdCBUdXBsZVQmIHQp
Ci0vLyAgICAgc3RhdGljIGZ1bmN0aW9uIGV4dHJhY3RpbmcgZWxlbWVudCBJIG9mIHR1cGxlIFR1
cGxlVC4KLS8vIC0gdHVwbGVfZWxlbWVudDxzaXplX3QgST46OnR5cGUKLS8vICAgICB0eXBlIG9m
IGVsZW1lbnQgSSBvZiB0dXBsZSBUdXBsZVQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgot
c3RydWN0IFR1cGxlUG9saWN5OwotCi0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRQotdGVtcGxhdGUg
PHR5cGVuYW1lIFR1cGxlVD4KLXN0cnVjdCBUdXBsZVBvbGljeSB7Ci0gIHR5cGVkZWYgVHVwbGVU
IFR1cGxlOwotICBzdGF0aWMgY29uc3Qgc2l6ZV90IHR1cGxlX3NpemUgPSA6OnN0ZDo6dHIxOjp0
dXBsZV9zaXplPFR1cGxlPjo6dmFsdWU7Ci0KLSAgdGVtcGxhdGUgPHNpemVfdCBJPgotICBzdHJ1
Y3QgdHVwbGVfZWxlbWVudCA6IDo6c3RkOjp0cjE6OnR1cGxlX2VsZW1lbnQ8SSwgVHVwbGU+IHt9
OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RhdGljIHR5cGVuYW1lIEFkZFJlZmVyZW5j
ZTwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIDo6c3RkOjp0cjE6OnR1cGxlX2VsZW1lbnQ8SSwgVHVw
bGU+Ojp0eXBlPjo6dHlwZSBnZXQoCi0gICAgICBjb25zdCBUdXBsZSYgdHVwbGUpIHsKLSAgICBy
ZXR1cm4gOjpzdGQ6OnRyMTo6Z2V0PEk+KHR1cGxlKTsKLSAgfQotfTsKLXRlbXBsYXRlIDx0eXBl
bmFtZSBUdXBsZVQ+Ci1jb25zdCBzaXplX3QgVHVwbGVQb2xpY3k8VHVwbGVUPjo6dHVwbGVfc2l6
ZTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRQotCi0jaWYgR1RFU1RfSEFTX1NURF9U
VVBMRV8KLXRlbXBsYXRlIDx0eXBlbmFtZS4uLiBUeXBlcz4KLXN0cnVjdCBUdXBsZVBvbGljeTwg
OjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiA+IHsKLSAgdHlwZWRlZiA6OnN0ZDo6dHVwbGU8VHlwZXMu
Li4+IFR1cGxlOwotICBzdGF0aWMgY29uc3Qgc2l6ZV90IHR1cGxlX3NpemUgPSA6OnN0ZDo6dHVw
bGVfc2l6ZTxUdXBsZT46OnZhbHVlOwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RydWN0
IHR1cGxlX2VsZW1lbnQgOiA6OnN0ZDo6dHVwbGVfZWxlbWVudDxJLCBUdXBsZT4ge307Ci0KLSAg
dGVtcGxhdGUgPHNpemVfdCBJPgotICBzdGF0aWMgY29uc3QgdHlwZW5hbWUgOjpzdGQ6OnR1cGxl
X2VsZW1lbnQ8SSwgVHVwbGU+Ojp0eXBlJiBnZXQoCi0gICAgICBjb25zdCBUdXBsZSYgdHVwbGUp
IHsKLSAgICByZXR1cm4gOjpzdGQ6OmdldDxJPih0dXBsZSk7Ci0gIH0KLX07Ci10ZW1wbGF0ZSA8
dHlwZW5hbWUuLi4gVHlwZXM+Ci1jb25zdCBzaXplX3QgVHVwbGVQb2xpY3k8IDo6c3RkOjp0dXBs
ZTxUeXBlcy4uLj4gPjo6dHVwbGVfc2l6ZTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9UVVBM
RV8KLQotI2lmIEdURVNUX0hBU19UUjFfVFVQTEUgfHwgR1RFU1RfSEFTX1NURF9UVVBMRV8KLS8v
IFRoaXMgaGVscGVyIHRlbXBsYXRlIGFsbG93cyBQcmludFRvKCkgZm9yIHR1cGxlcyBhbmQKLS8v
IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygpIHRvIGJlIGRlZmluZWQg
YnkKLS8vIGluZHVjdGlvbiBvbiB0aGUgbnVtYmVyIG9mIHR1cGxlIGZpZWxkcy4gIFRoZSBpZGVh
IGlzIHRoYXQKLS8vIFR1cGxlUHJlZml4UHJpbnRlcjxOPjo6UHJpbnRQcmVmaXhUbyh0LCBvcykg
cHJpbnRzIHRoZSBmaXJzdCBOCi0vLyBmaWVsZHMgaW4gdHVwbGUgdCwgYW5kIGNhbiBiZSBkZWZp
bmVkIGluIHRlcm1zIG9mCi0vLyBUdXBsZVByZWZpeFByaW50ZXI8TiAtIDE+LgotLy8KLS8vIFRo
ZSBpbmR1Y3RpdmUgY2FzZS4KLXRlbXBsYXRlIDxzaXplX3QgTj4KLXN0cnVjdCBUdXBsZVByZWZp
eFByaW50ZXIgewotICAvLyBQcmludHMgdGhlIGZpcnN0IE4gZmllbGRzIG9mIGEgdHVwbGUuCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgUHJpbnRQcmVmaXhUbyhj
b25zdCBUdXBsZSYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgVHVwbGVQcmVmaXhQcmlu
dGVyPE4gLSAxPjo6UHJpbnRQcmVmaXhUbyh0LCBvcyk7Ci0gICAgR1RFU1RfSU5URU5USU9OQUxf
Q09OU1RfQ09ORF9QVVNIXygpCi0gICAgaWYgKE4gPiAxKSB7Ci0gICAgR1RFU1RfSU5URU5USU9O
QUxfQ09OU1RfQ09ORF9QT1BfKCkKLSAgICAgICpvcyA8PCAiLCAiOwotICAgIH0KLSAgICBVbml2
ZXJzYWxQcmludGVyPAotICAgICAgICB0eXBlbmFtZSBUdXBsZVBvbGljeTxUdXBsZT46OnRlbXBs
YXRlIHR1cGxlX2VsZW1lbnQ8TiAtIDE+Ojp0eXBlPgotICAgICAgICA6OlByaW50KFR1cGxlUG9s
aWN5PFR1cGxlPjo6dGVtcGxhdGUgZ2V0PE4gLSAxPih0KSwgb3MpOwotICB9Ci0KLSAgLy8gVGVy
c2VseSBwcmludHMgdGhlIGZpcnN0IE4gZmllbGRzIG9mIGEgdHVwbGUgdG8gYSBzdHJpbmcgdmVj
dG9yLAotICAvLyBvbmUgZWxlbWVudCBmb3IgZWFjaCBmaWVsZC4KLSAgdGVtcGxhdGUgPHR5cGVu
YW1lIFR1cGxlPgotICBzdGF0aWMgdm9pZCBUZXJzZVByaW50UHJlZml4VG9TdHJpbmdzKGNvbnN0
IFR1cGxlJiB0LCBTdHJpbmdzKiBzdHJpbmdzKSB7Ci0gICAgVHVwbGVQcmVmaXhQcmludGVyPE4g
LSAxPjo6VGVyc2VQcmludFByZWZpeFRvU3RyaW5ncyh0LCBzdHJpbmdzKTsKLSAgICA6OnN0ZDo6
c3RyaW5nc3RyZWFtIHNzOwotICAgIFVuaXZlcnNhbFRlcnNlUHJpbnQoVHVwbGVQb2xpY3k8VHVw
bGU+Ojp0ZW1wbGF0ZSBnZXQ8TiAtIDE+KHQpLCAmc3MpOwotICAgIHN0cmluZ3MtPnB1c2hfYmFj
ayhzcy5zdHIoKSk7Ci0gIH0KLX07Ci0KLS8vIEJhc2UgY2FzZS4KLXRlbXBsYXRlIDw+Ci1zdHJ1
Y3QgVHVwbGVQcmVmaXhQcmludGVyPDA+IHsKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlPgot
ICBzdGF0aWMgdm9pZCBQcmludFByZWZpeFRvKGNvbnN0IFR1cGxlJiwgOjpzdGQ6Om9zdHJlYW0q
KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgVGVyc2VQ
cmludFByZWZpeFRvU3RyaW5ncyhjb25zdCBUdXBsZSYsIFN0cmluZ3MqKSB7fQotfTsKLQotLy8g
SGVscGVyIGZ1bmN0aW9uIGZvciBwcmludGluZyBhIHR1cGxlLgotLy8gVHVwbGUgbXVzdCBiZSBl
aXRoZXIgc3RkOjp0cjE6OnR1cGxlIG9yIHN0ZDo6dHVwbGUgdHlwZS4KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUdXBsZT4KLXZvaWQgUHJpbnRUdXBsZVRvKGNvbnN0IFR1cGxlJiB0LCA6OnN0ZDo6b3N0
cmVhbSogb3MpIHsKLSAgKm9zIDw8ICIoIjsKLSAgVHVwbGVQcmVmaXhQcmludGVyPFR1cGxlUG9s
aWN5PFR1cGxlPjo6dHVwbGVfc2l6ZT46OlByaW50UHJlZml4VG8odCwgb3MpOwotICAqb3MgPDwg
IikiOwotfQotCi0vLyBQcmludHMgdGhlIGZpZWxkcyBvZiBhIHR1cGxlIHRlcnNlbHkgdG8gYSBz
dHJpbmcgdmVjdG9yLCBvbmUKLS8vIGVsZW1lbnQgZm9yIGVhY2ggZmllbGQuICBTZWUgdGhlIGNv
bW1lbnQgYmVmb3JlCi0vLyBVbml2ZXJzYWxUZXJzZVByaW50KCkgZm9yIGhvdyB3ZSBkZWZpbmUg
InRlcnNlbHkiLgotdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlPgotU3RyaW5ncyBVbml2ZXJzYWxU
ZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoY29uc3QgVHVwbGUmIHZhbHVlKSB7Ci0gIFN0
cmluZ3MgcmVzdWx0OwotICBUdXBsZVByZWZpeFByaW50ZXI8VHVwbGVQb2xpY3k8VHVwbGU+Ojp0
dXBsZV9zaXplPjo6Ci0gICAgICBUZXJzZVByaW50UHJlZml4VG9TdHJpbmdzKHZhbHVlLCAmcmVz
dWx0KTsKLSAgcmV0dXJuIHJlc3VsdDsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBM
RSB8fCBHVEVTVF9IQVNfU1REX1RVUExFXwotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci06OnN0ZDo6c3RyaW5nIFByaW50VG9TdHJpbmcoY29uc3Qg
VCYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLSAgaW50ZXJuYWw6OlVuaXZl
cnNhbFRlcnNlUHJpbnRlcjxUPjo6UHJpbnQodmFsdWUsICZzcyk7Ci0gIHJldHVybiBzcy5zdHIo
KTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotLy8gSW5jbHVkZSBhbnkgY3VzdG9t
IHByaW50ZXIgYWRkZWQgYnkgdGhlIGxvY2FsIGluc3RhbGxhdGlvbi4KLS8vIFdlIG11c3QgaW5j
bHVkZSB0aGlzIGhlYWRlciBhdCB0aGUgZW5kIHRvIG1ha2Ugc3VyZSBpdCBjYW4gdXNlIHRoZQot
Ly8gZGVjbGFyYXRpb25zIGZyb20gdGhpcyBmaWxlLgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2N1c3RvbS9ndGVzdC1wcmludGVycy5oIgotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RF
U1RfR1RFU1RfUFJJTlRFUlNfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qtc3BpLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwZTVjMTBjZjdjZDdkOTdjZWY0MjA3NzdlZTY0ZmY1NmVjNTk2NjMwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qtc3BpLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMzEgKzAs
MCBAQAotLy8gQ29weXJpZ2h0IDIwMDcsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8g
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8v
IEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLS8vCi0vLyBVdGlsaXRpZXMg
Zm9yIHRlc3RpbmcgR29vZ2xlIFRlc3QgaXRzZWxmIGFuZCBjb2RlIHRoYXQgdXNlcyBHb29nbGUg
VGVzdAotLy8gKGUuZy4gZnJhbWV3b3JrcyBidWlsdCBvbiB0b3Agb2YgR29vZ2xlIFRlc3QpLgot
Ci0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCi0jZGVmaW5lIEdURVNU
X0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCi0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgot
Ci1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIFRoaXMgaGVscGVyIGNsYXNzIGNhbiBiZSB1c2Vk
IHRvIG1vY2sgb3V0IEdvb2dsZSBUZXN0IGZhaWx1cmUgcmVwb3J0aW5nCi0vLyBzbyB0aGF0IHdl
IGNhbiB0ZXN0IEdvb2dsZSBUZXN0IG9yIGNvZGUgdGhhdCBidWlsZHMgb24gR29vZ2xlIFRlc3Qu
Ci0vLwotLy8gQW4gb2JqZWN0IG9mIHRoaXMgY2xhc3MgYXBwZW5kcyBhIFRlc3RQYXJ0UmVzdWx0
IG9iamVjdCB0byB0aGUKLS8vIFRlc3RQYXJ0UmVzdWx0QXJyYXkgb2JqZWN0IGdpdmVuIGluIHRo
ZSBjb25zdHJ1Y3RvciB3aGVuZXZlciBhIEdvb2dsZSBUZXN0Ci0vLyBmYWlsdXJlIGlzIHJlcG9y
dGVkLiBJdCBjYW4gZWl0aGVyIGludGVyY2VwdCBvbmx5IGZhaWx1cmVzIHRoYXQgYXJlCi0vLyBn
ZW5lcmF0ZWQgaW4gdGhlIHNhbWUgdGhyZWFkIHRoYXQgY3JlYXRlZCB0aGlzIG9iamVjdCBvciBp
dCBjYW4gaW50ZXJjZXB0Ci0vLyBhbGwgZ2VuZXJhdGVkIGZhaWx1cmVzLiBUaGUgc2NvcGUgb2Yg
dGhpcyBtb2NrIG9iamVjdCBjYW4gYmUgY29udHJvbGxlZCB3aXRoCi0vLyB0aGUgc2Vjb25kIGFy
Z3VtZW50IHRvIHRoZSB0d28gYXJndW1lbnRzIGNvbnN0cnVjdG9yLgotY2xhc3MgR1RFU1RfQVBJ
XyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcgotICAgIDogcHVibGljIFRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UgewotIHB1YmxpYzoKLSAgLy8gVGhlIHR3byBwb3NzaWJs
ZSBtb2NraW5nIG1vZGVzIG9mIHRoaXMgb2JqZWN0LgotICBlbnVtIEludGVyY2VwdE1vZGUgewot
ICAgIElOVEVSQ0VQVF9PTkxZX0NVUlJFTlRfVEhSRUFELCAgLy8gSW50ZXJjZXB0cyBvbmx5IHRo
cmVhZCBsb2NhbCBmYWlsdXJlcy4KLSAgICBJTlRFUkNFUFRfQUxMX1RIUkVBRFMgICAgICAgICAg
IC8vIEludGVyY2VwdHMgYWxsIGZhaWx1cmVzLgotICB9OwotCi0gIC8vIFRoZSBjJ3RvciBzZXRz
IHRoaXMgb2JqZWN0IGFzIHRoZSB0ZXN0IHBhcnQgcmVzdWx0IHJlcG9ydGVyIHVzZWQKLSAgLy8g
YnkgR29vZ2xlIFRlc3QuICBUaGUgJ3Jlc3VsdCcgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGVyZSB0
byByZXBvcnQgdGhlCi0gIC8vIHJlc3VsdHMuIFRoaXMgcmVwb3J0ZXIgd2lsbCBvbmx5IGNhdGNo
IGZhaWx1cmVzIGdlbmVyYXRlZCBpbiB0aGUgY3VycmVudAotICAvLyB0aHJlYWQuIERFUFJFQ0FU
RUQKLSAgZXhwbGljaXQgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoVGVzdFBhcnRS
ZXN1bHRBcnJheSogcmVzdWx0KTsKLQotICAvLyBTYW1lIGFzIGFib3ZlLCBidXQgeW91IGNhbiBj
aG9vc2UgdGhlIGludGVyY2VwdGlvbiBzY29wZSBvZiB0aGlzIG9iamVjdC4KLSAgU2NvcGVkRmFr
ZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoSW50ZXJjZXB0TW9kZSBpbnRlcmNlcHRfbW9kZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFBhcnRSZXN1bHRBcnJheSogcmVz
dWx0KTsKLQotICAvLyBUaGUgZCd0b3IgcmVzdG9yZXMgdGhlIHByZXZpb3VzIHRlc3QgcGFydCBy
ZXN1bHQgcmVwb3J0ZXIuCi0gIHZpcnR1YWwgflNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9y
dGVyKCk7Ci0KLSAgLy8gQXBwZW5kcyB0aGUgVGVzdFBhcnRSZXN1bHQgb2JqZWN0IHRvIHRoZSBU
ZXN0UGFydFJlc3VsdEFycmF5Ci0gIC8vIHJlY2VpdmVkIGluIHRoZSBjb25zdHJ1Y3Rvci4KLSAg
Ly8KLSAgLy8gVGhpcyBtZXRob2QgaXMgZnJvbSB0aGUgVGVzdFBhcnRSZXN1bHRSZXBvcnRlcklu
dGVyZmFjZQotICAvLyBpbnRlcmZhY2UuCi0gIHZpcnR1YWwgdm9pZCBSZXBvcnRUZXN0UGFydFJl
c3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLSBwcml2YXRlOgotICB2b2lkIElu
aXQoKTsKLQotICBjb25zdCBJbnRlcmNlcHRNb2RlIGludGVyY2VwdF9tb2RlXzsKLSAgVGVzdFBh
cnRSZXN1bHRSZXBvcnRlckludGVyZmFjZSogb2xkX3JlcG9ydGVyXzsKLSAgVGVzdFBhcnRSZXN1
bHRBcnJheSogY29uc3QgcmVzdWx0XzsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJ
R05fKFNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyKTsKLX07Ci0KLW5hbWVzcGFjZSBp
bnRlcm5hbCB7Ci0KLS8vIEEgaGVscGVyIGNsYXNzIGZvciBpbXBsZW1lbnRpbmcgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoKSBhbmQKLS8vIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKCkuICBJdHMgZGVz
dHJ1Y3RvciB2ZXJpZmllcyB0aGF0IHRoZSBnaXZlbgotLy8gVGVzdFBhcnRSZXN1bHRBcnJheSBj
b250YWlucyBleGFjdGx5IG9uZSBmYWlsdXJlIHRoYXQgaGFzIHRoZSBnaXZlbgotLy8gdHlwZSBh
bmQgY29udGFpbnMgdGhlIGdpdmVuIHN1YnN0cmluZy4gIElmIHRoYXQncyBub3QgdGhlIGNhc2Us
IGEKLS8vIG5vbi1mYXRhbCBmYWlsdXJlIHdpbGwgYmUgZ2VuZXJhdGVkLgotY2xhc3MgR1RFU1Rf
QVBJXyBTaW5nbGVGYWlsdXJlQ2hlY2tlciB7Ci0gcHVibGljOgotICAvLyBUaGUgY29uc3RydWN0
b3IgcmVtZW1iZXJzIHRoZSBhcmd1bWVudHMuCi0gIFNpbmdsZUZhaWx1cmVDaGVja2VyKGNvbnN0
IFRlc3RQYXJ0UmVzdWx0QXJyYXkqIHJlc3VsdHMsCi0gICAgICAgICAgICAgICAgICAgICAgIFRl
c3RQYXJ0UmVzdWx0OjpUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdWJzdHIpOwotICB+
U2luZ2xlRmFpbHVyZUNoZWNrZXIoKTsKLSBwcml2YXRlOgotICBjb25zdCBUZXN0UGFydFJlc3Vs
dEFycmF5KiBjb25zdCByZXN1bHRzXzsKLSAgY29uc3QgVGVzdFBhcnRSZXN1bHQ6OlR5cGUgdHlw
ZV87Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIHN1YnN0cl87Ci0KLSAgR1RFU1RfRElTQUxMT1dfQ09Q
WV9BTkRfQVNTSUdOXyhTaW5nbGVGYWlsdXJlQ2hlY2tlcik7Ci19OwotCi19ICAvLyBuYW1lc3Bh
Y2UgaW50ZXJuYWwKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotLy8gQSBzZXQgb2YgbWFj
cm9zIGZvciB0ZXN0aW5nIEdvb2dsZSBUZXN0IGFzc2VydGlvbnMgb3IgY29kZSB0aGF0J3MgZXhw
ZWN0ZWQKLS8vIHRvIGdlbmVyYXRlIEdvb2dsZSBUZXN0IGZhdGFsIGZhaWx1cmVzLiAgSXQgdmVy
aWZpZXMgdGhhdCB0aGUgZ2l2ZW4KLS8vIHN0YXRlbWVudCB3aWxsIGNhdXNlIGV4YWN0bHkgb25l
IGZhdGFsIEdvb2dsZSBUZXN0IGZhaWx1cmUgd2l0aCAnc3Vic3RyJwotLy8gYmVpbmcgcGFydCBv
ZiB0aGUgZmFpbHVyZSBtZXNzYWdlLgotLy8KLS8vIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHZl
cnNpb25zIG9mIHRoaXMgbWFjcm8uIEVYUEVDVF9GQVRBTF9GQUlMVVJFIG9ubHkKLS8vIGFmZmVj
dHMgYW5kIGNvbnNpZGVycyBmYWlsdXJlcyBnZW5lcmF0ZWQgaW4gdGhlIGN1cnJlbnQgdGhyZWFk
IGFuZAotLy8gRVhQRUNUX0ZBVEFMX0ZBSUxVUkVfT05fQUxMX1RIUkVBRFMgZG9lcyB0aGUgc2Ft
ZSBidXQgZm9yIGFsbCB0aHJlYWRzLgotLy8KLS8vIFRoZSB2ZXJpZmljYXRpb24gb2YgdGhlIGFz
c2VydGlvbiBpcyBkb25lIGNvcnJlY3RseSBldmVuIHdoZW4gdGhlIHN0YXRlbWVudAotLy8gdGhy
b3dzIGFuIGV4Y2VwdGlvbiBvciBhYm9ydHMgdGhlIGN1cnJlbnQgZnVuY3Rpb24uCi0vLwotLy8g
S25vd24gcmVzdHJpY3Rpb25zOgotLy8gICAtICdzdGF0ZW1lbnQnIGNhbm5vdCByZWZlcmVuY2Ug
bG9jYWwgbm9uLXN0YXRpYyB2YXJpYWJsZXMgb3IKLS8vICAgICBub24tc3RhdGljIG1lbWJlcnMg
b2YgdGhlIGN1cnJlbnQgb2JqZWN0LgotLy8gICAtICdzdGF0ZW1lbnQnIGNhbm5vdCByZXR1cm4g
YSB2YWx1ZS4KLS8vICAgLSBZb3UgY2Fubm90IHN0cmVhbSBhIGZhaWx1cmUgbWVzc2FnZSB0byB0
aGlzIG1hY3JvLgotLy8KLS8vIE5vdGUgdGhhdCBldmVuIHRob3VnaCB0aGUgaW1wbGVtZW50YXRp
b25zIG9mIHRoZSBmb2xsb3dpbmcgdHdvCi0vLyBtYWNyb3MgYXJlIG11Y2ggYWxpa2UsIHdlIGNh
bm5vdCByZWZhY3RvciB0aGVtIHRvIHVzZSBhIGNvbW1vbgotLy8gaGVscGVyIG1hY3JvLCBkdWUg
dG8gc29tZSBwZWN1bGlhcml0eSBpbiBob3cgdGhlIHByZXByb2Nlc3NvcgotLy8gd29ya3MuICBU
aGUgQWNjZXB0c01hY3JvVGhhdEV4cGFuZHNUb1VucHJvdGVjdGVkQ29tbWEgdGVzdCBpbgotLy8g
Z3Rlc3RfdW5pdHRlc3QuY2Mgd2lsbCBmYWlsIHRvIGNvbXBpbGUgaWYgd2UgZG8gdGhhdC4KLSNk
ZWZpbmUgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoc3RhdGVtZW50LCBzdWJzdHIpIFwKLSAgZG8geyBc
Ci0gICAgY2xhc3MgR1Rlc3RFeHBlY3RGYXRhbEZhaWx1cmVIZWxwZXIge1wKLSAgICAgcHVibGlj
OlwKLSAgICAgIHN0YXRpYyB2b2lkIEV4ZWN1dGUoKSB7IHN0YXRlbWVudDsgfVwKLSAgICB9O1wK
LSAgICA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0QXJyYXkgZ3Rlc3RfZmFpbHVyZXM7XAotICAg
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlNpbmdsZUZhaWx1cmVDaGVja2VyIGd0ZXN0X2NoZWNrZXIo
XAotICAgICAgICAmZ3Rlc3RfZmFpbHVyZXMsIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ6OmtG
YXRhbEZhaWx1cmUsIChzdWJzdHIpKTtcCi0gICAge1wKLSAgICAgIDo6dGVzdGluZzo6U2NvcGVk
RmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIgZ3Rlc3RfcmVwb3J0ZXIoXAotICAgICAgICAgIDo6
dGVzdGluZzo6U2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI6OiBcCi0gICAgICAgICAg
SU5URVJDRVBUX09OTFlfQ1VSUkVOVF9USFJFQUQsICZndGVzdF9mYWlsdXJlcyk7XAotICAgICAg
R1Rlc3RFeHBlY3RGYXRhbEZhaWx1cmVIZWxwZXI6OkV4ZWN1dGUoKTtcCi0gICAgfVwKLSAgfSB3
aGlsZSAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzRmFsc2UoKSkKLQotI2RlZmluZSBFWFBF
Q1RfRkFUQUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyhzdGF0ZW1lbnQsIHN1YnN0cikgXAotICBk
byB7IFwKLSAgICBjbGFzcyBHVGVzdEV4cGVjdEZhdGFsRmFpbHVyZUhlbHBlciB7XAotICAgICBw
dWJsaWM6XAotICAgICAgc3RhdGljIHZvaWQgRXhlY3V0ZSgpIHsgc3RhdGVtZW50OyB9XAotICAg
IH07XAotICAgIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHRBcnJheSBndGVzdF9mYWlsdXJlcztc
Ci0gICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6U2luZ2xlRmFpbHVyZUNoZWNrZXIgZ3Rlc3RfY2hl
Y2tlcihcCi0gICAgICAgICZndGVzdF9mYWlsdXJlcywgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3Vs
dDo6a0ZhdGFsRmFpbHVyZSwgKHN1YnN0cikpO1wKLSAgICB7XAotICAgICAgOjp0ZXN0aW5nOjpT
Y29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlciBndGVzdF9yZXBvcnRlcihcCi0gICAgICAg
ICAgOjp0ZXN0aW5nOjpTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjo6IFwKLSAgICAg
ICAgICBJTlRFUkNFUFRfQUxMX1RIUkVBRFMsICZndGVzdF9mYWlsdXJlcyk7XAotICAgICAgR1Rl
c3RFeHBlY3RGYXRhbEZhaWx1cmVIZWxwZXI6OkV4ZWN1dGUoKTtcCi0gICAgfVwKLSAgfSB3aGls
ZSAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzRmFsc2UoKSkKLQotLy8gQSBtYWNybyBmb3Ig
dGVzdGluZyBHb29nbGUgVGVzdCBhc3NlcnRpb25zIG9yIGNvZGUgdGhhdCdzIGV4cGVjdGVkIHRv
Ci0vLyBnZW5lcmF0ZSBHb29nbGUgVGVzdCBub24tZmF0YWwgZmFpbHVyZXMuICBJdCBhc3NlcnRz
IHRoYXQgdGhlIGdpdmVuCi0vLyBzdGF0ZW1lbnQgd2lsbCBjYXVzZSBleGFjdGx5IG9uZSBub24t
ZmF0YWwgR29vZ2xlIFRlc3QgZmFpbHVyZSB3aXRoICdzdWJzdHInCi0vLyBiZWluZyBwYXJ0IG9m
IHRoZSBmYWlsdXJlIG1lc3NhZ2UuCi0vLwotLy8gVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgdmVy
c2lvbnMgb2YgdGhpcyBtYWNyby4gRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUgb25seQotLy8gYWZm
ZWN0cyBhbmQgY29uc2lkZXJzIGZhaWx1cmVzIGdlbmVyYXRlZCBpbiB0aGUgY3VycmVudCB0aHJl
YWQgYW5kCi0vLyBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyBkb2VzIHRo
ZSBzYW1lIGJ1dCBmb3IgYWxsIHRocmVhZHMuCi0vLwotLy8gJ3N0YXRlbWVudCcgaXMgYWxsb3dl
ZCB0byByZWZlcmVuY2UgbG9jYWwgdmFyaWFibGVzIGFuZCBtZW1iZXJzIG9mCi0vLyB0aGUgY3Vy
cmVudCBvYmplY3QuCi0vLwotLy8gVGhlIHZlcmlmaWNhdGlvbiBvZiB0aGUgYXNzZXJ0aW9uIGlz
IGRvbmUgY29ycmVjdGx5IGV2ZW4gd2hlbiB0aGUgc3RhdGVtZW50Ci0vLyB0aHJvd3MgYW4gZXhj
ZXB0aW9uIG9yIGFib3J0cyB0aGUgY3VycmVudCBmdW5jdGlvbi4KLS8vCi0vLyBLbm93biByZXN0
cmljdGlvbnM6Ci0vLyAgIC0gWW91IGNhbm5vdCBzdHJlYW0gYSBmYWlsdXJlIG1lc3NhZ2UgdG8g
dGhpcyBtYWNyby4KLS8vCi0vLyBOb3RlIHRoYXQgZXZlbiB0aG91Z2ggdGhlIGltcGxlbWVudGF0
aW9ucyBvZiB0aGUgZm9sbG93aW5nIHR3bwotLy8gbWFjcm9zIGFyZSBtdWNoIGFsaWtlLCB3ZSBj
YW5ub3QgcmVmYWN0b3IgdGhlbSB0byB1c2UgYSBjb21tb24KLS8vIGhlbHBlciBtYWNybywgZHVl
IHRvIHNvbWUgcGVjdWxpYXJpdHkgaW4gaG93IHRoZSBwcmVwcm9jZXNzb3IKLS8vIHdvcmtzLiAg
SWYgd2UgZG8gdGhhdCwgdGhlIGNvZGUgd29uJ3QgY29tcGlsZSB3aGVuIHRoZSB1c2VyIGdpdmVz
Ci0vLyBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgpIGEgc3RhdGVtZW50IHRoYXQgY29udGFpbnMg
YSBtYWNybyB0aGF0Ci0vLyBleHBhbmRzIHRvIGNvZGUgY29udGFpbmluZyBhbiB1bnByb3RlY3Rl
ZCBjb21tYS4gIFRoZQotLy8gQWNjZXB0c01hY3JvVGhhdEV4cGFuZHNUb1VucHJvdGVjdGVkQ29t
bWEgdGVzdCBpbiBndGVzdF91bml0dGVzdC5jYwotLy8gY2F0Y2hlcyB0aGF0LgotLy8KLS8vIEZv
ciB0aGUgc2FtZSByZWFzb24sIHdlIGhhdmUgdG8gd3JpdGUKLS8vICAgaWYgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyBzdGF0ZW1lbnQ7IH0KLS8vIGluc3RlYWQgb2YKLS8v
ICAgR1RFU1RfU1VQUFJFU1NfVU5SRUFDSEFCTEVfQ09ERV9XQVJOSU5HX0JFTE9XXyhzdGF0ZW1l
bnQpCi0vLyB0byBhdm9pZCBhbiBNU1ZDIHdhcm5pbmcgb24gdW5yZWFjaGFibGUgY29kZS4KLSNk
ZWZpbmUgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoc3RhdGVtZW50LCBzdWJzdHIpIFwKLSAgZG8g
e1wKLSAgICA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0QXJyYXkgZ3Rlc3RfZmFpbHVyZXM7XAot
ICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlNpbmdsZUZhaWx1cmVDaGVja2VyIGd0ZXN0X2NoZWNr
ZXIoXAotICAgICAgICAmZ3Rlc3RfZmFpbHVyZXMsIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ6
OmtOb25GYXRhbEZhaWx1cmUsIFwKLSAgICAgICAgKHN1YnN0cikpO1wKLSAgICB7XAotICAgICAg
Ojp0ZXN0aW5nOjpTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlciBndGVzdF9yZXBvcnRl
cihcCi0gICAgICAgICAgOjp0ZXN0aW5nOjpTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRl
cjo6IFwKLSAgICAgICAgICBJTlRFUkNFUFRfT05MWV9DVVJSRU5UX1RIUkVBRCwgJmd0ZXN0X2Zh
aWx1cmVzKTtcCi0gICAgICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1ZSgpKSB7
IHN0YXRlbWVudDsgfVwKLSAgICB9XAotICB9IHdoaWxlICg6OnRlc3Rpbmc6OmludGVybmFsOjpB
bHdheXNGYWxzZSgpKQotCi0jZGVmaW5lIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFX09OX0FMTF9U
SFJFQURTKHN0YXRlbWVudCwgc3Vic3RyKSBcCi0gIGRvIHtcCi0gICAgOjp0ZXN0aW5nOjpUZXN0
UGFydFJlc3VsdEFycmF5IGd0ZXN0X2ZhaWx1cmVzO1wKLSAgICA6OnRlc3Rpbmc6OmludGVybmFs
OjpTaW5nbGVGYWlsdXJlQ2hlY2tlciBndGVzdF9jaGVja2VyKFwKLSAgICAgICAgJmd0ZXN0X2Zh
aWx1cmVzLCA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLCBcCi0g
ICAgICAgIChzdWJzdHIpKTtcCi0gICAge1wKLSAgICAgIDo6dGVzdGluZzo6U2NvcGVkRmFrZVRl
c3RQYXJ0UmVzdWx0UmVwb3J0ZXIgZ3Rlc3RfcmVwb3J0ZXIoXAotICAgICAgICAgIDo6dGVzdGlu
Zzo6U2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI6OklOVEVSQ0VQVF9BTExfVEhSRUFE
UywgXAotICAgICAgICAgICZndGVzdF9mYWlsdXJlcyk7XAotICAgICAgaWYgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyBzdGF0ZW1lbnQ7IH1cCi0gICAgfVwKLSAgfSB3aGls
ZSAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzRmFsc2UoKSkKLQotI2VuZGlmICAvLyBHVEVT
VF9JTkNMVURFX0dURVNUX0dURVNUX1NQSV9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0LXBhcnQuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9w
YXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3ZWI4NDQ4MzlkODkyN2EyOTNkMjU3MDRkZjliMTcwN2E0
MjczYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0LXBhcnQuaAor
KysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xl
IEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiBtaGV1bGVAZ29vZ2xlLmNvbSAoTWFy
a3VzIEhldWxlKQotLy8KLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1Rf
UEFSVF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXwot
Ci0jaW5jbHVkZSA8aW9zZndkPgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlICJndGVzdC9p
bnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0
LXN0cmluZy5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIEEgY29weWFibGUgb2JqZWN0
IHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IG9mIGEgdGVzdCBwYXJ0IChpLmUuIGFuCi0vLyBhc3Nl
cnRpb24gb3IgYW4gZXhwbGljaXQgRkFJTCgpLCBBRERfRkFJTFVSRSgpLCBvciBTVUNDRVNTKCkp
LgotLy8KLS8vIERvbid0IGluaGVyaXQgZnJvbSBUZXN0UGFydFJlc3VsdCBhcyBpdHMgZGVzdHJ1
Y3RvciBpcyBub3QgdmlydHVhbC4KLWNsYXNzIEdURVNUX0FQSV8gVGVzdFBhcnRSZXN1bHQgewot
IHB1YmxpYzoKLSAgLy8gVGhlIHBvc3NpYmxlIG91dGNvbWVzIG9mIGEgdGVzdCBwYXJ0IChpLmUu
IGFuIGFzc2VydGlvbiBvciBhbgotICAvLyBleHBsaWNpdCBTVUNDRUVEKCksIEZBSUwoKSwgb3Ig
QUREX0ZBSUxVUkUoKSkuCi0gIGVudW0gVHlwZSB7Ci0gICAga1N1Y2Nlc3MsICAgICAgICAgIC8v
IFN1Y2NlZWRlZC4KLSAgICBrTm9uRmF0YWxGYWlsdXJlLCAgLy8gRmFpbGVkIGJ1dCB0aGUgdGVz
dCBjYW4gY29udGludWUuCi0gICAga0ZhdGFsRmFpbHVyZSAgICAgIC8vIEZhaWxlZCBhbmQgdGhl
IHRlc3Qgc2hvdWxkIGJlIHRlcm1pbmF0ZWQuCi0gIH07Ci0KLSAgLy8gQyd0b3IuICBUZXN0UGFy
dFJlc3VsdCBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KLSAgLy8gQWx3YXlz
IHVzZSB0aGlzIGNvbnN0cnVjdG9yICh3aXRoIHBhcmFtZXRlcnMpIHRvIGNyZWF0ZSBhCi0gIC8v
IFRlc3RQYXJ0UmVzdWx0IG9iamVjdC4KLSAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5cGUsCi0g
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfZmlsZV9uYW1lLAotICAgICAgICAgICAgICAg
ICBpbnQgYV9saW5lX251bWJlciwKLSAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYV9tZXNz
YWdlKQotICAgICAgOiB0eXBlXyhhX3R5cGUpLAotICAgICAgICBmaWxlX25hbWVfKGFfZmlsZV9u
YW1lID09IE5VTEwgPyAiIiA6IGFfZmlsZV9uYW1lKSwKLSAgICAgICAgbGluZV9udW1iZXJfKGFf
bGluZV9udW1iZXIpLAotICAgICAgICBzdW1tYXJ5XyhFeHRyYWN0U3VtbWFyeShhX21lc3NhZ2Up
KSwKLSAgICAgICAgbWVzc2FnZV8oYV9tZXNzYWdlKSB7Ci0gIH0KLQotICAvLyBHZXRzIHRoZSBv
dXRjb21lIG9mIHRoZSB0ZXN0IHBhcnQuCi0gIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5
cGVfOyB9Ci0KLSAgLy8gR2V0cyB0aGUgbmFtZSBvZiB0aGUgc291cmNlIGZpbGUgd2hlcmUgdGhl
IHRlc3QgcGFydCB0b29rIHBsYWNlLCBvcgotICAvLyBOVUxMIGlmIGl0J3MgdW5rbm93bi4KLSAg
Y29uc3QgY2hhciogZmlsZV9uYW1lKCkgY29uc3QgewotICAgIHJldHVybiBmaWxlX25hbWVfLmVt
cHR5KCkgPyBOVUxMIDogZmlsZV9uYW1lXy5jX3N0cigpOwotICB9Ci0KLSAgLy8gR2V0cyB0aGUg
bGluZSBpbiB0aGUgc291cmNlIGZpbGUgd2hlcmUgdGhlIHRlc3QgcGFydCB0b29rIHBsYWNlLAot
ICAvLyBvciAtMSBpZiBpdCdzIHVua25vd24uCi0gIGludCBsaW5lX251bWJlcigpIGNvbnN0IHsg
cmV0dXJuIGxpbmVfbnVtYmVyXzsgfQotCi0gIC8vIEdldHMgdGhlIHN1bW1hcnkgb2YgdGhlIGZh
aWx1cmUgbWVzc2FnZS4KLSAgY29uc3QgY2hhciogc3VtbWFyeSgpIGNvbnN0IHsgcmV0dXJuIHN1
bW1hcnlfLmNfc3RyKCk7IH0KLQotICAvLyBHZXRzIHRoZSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0
aCB0aGUgdGVzdCBwYXJ0LgotICBjb25zdCBjaGFyKiBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4g
bWVzc2FnZV8uY19zdHIoKTsgfQotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFy
dCBwYXNzZWQuCi0gIGJvb2wgcGFzc2VkKCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga1N1Y2Nl
c3M7IH0KLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBhcnQgZmFpbGVkLgotICBi
b29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfICE9IGtTdWNjZXNzOyB9Ci0KLSAgLy8g
UmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4KLSAgYm9v
bCBub25mYXRhbGx5X2ZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IGtOb25GYXRhbEZh
aWx1cmU7IH0KLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBhcnQgZmF0YWxseSBm
YWlsZWQuCi0gIGJvb2wgZmF0YWxseV9mYWlsZWQoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBr
RmF0YWxGYWlsdXJlOyB9Ci0KLSBwcml2YXRlOgotICBUeXBlIHR5cGVfOwotCi0gIC8vIEdldHMg
dGhlIHN1bW1hcnkgb2YgdGhlIGZhaWx1cmUgbWVzc2FnZSBieSBvbWl0dGluZyB0aGUgc3RhY2sK
LSAgLy8gdHJhY2UgaW4gaXQuCi0gIHN0YXRpYyBzdGQ6OnN0cmluZyBFeHRyYWN0U3VtbWFyeShj
b25zdCBjaGFyKiBtZXNzYWdlKTsKLQotICAvLyBUaGUgbmFtZSBvZiB0aGUgc291cmNlIGZpbGUg
d2hlcmUgdGhlIHRlc3QgcGFydCB0b29rIHBsYWNlLCBvcgotICAvLyAiIiBpZiB0aGUgc291cmNl
IGZpbGUgaXMgdW5rbm93bi4KLSAgc3RkOjpzdHJpbmcgZmlsZV9uYW1lXzsKLSAgLy8gVGhlIGxp
bmUgaW4gdGhlIHNvdXJjZSBmaWxlIHdoZXJlIHRoZSB0ZXN0IHBhcnQgdG9vayBwbGFjZSwgb3Ig
LTEKLSAgLy8gaWYgdGhlIGxpbmUgbnVtYmVyIGlzIHVua25vd24uCi0gIGludCBsaW5lX251bWJl
cl87Ci0gIHN0ZDo6c3RyaW5nIHN1bW1hcnlfOyAgLy8gVGhlIHRlc3QgZmFpbHVyZSBzdW1tYXJ5
LgotICBzdGQ6OnN0cmluZyBtZXNzYWdlXzsgIC8vIFRoZSB0ZXN0IGZhaWx1cmUgbWVzc2FnZS4K
LX07Ci0KLS8vIFByaW50cyBhIFRlc3RQYXJ0UmVzdWx0IG9iamVjdC4KLXN0ZDo6b3N0cmVhbSYg
b3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0
KTsKLQotLy8gQW4gYXJyYXkgb2YgVGVzdFBhcnRSZXN1bHQgb2JqZWN0cy4KLS8vCi0vLyBEb24n
dCBpbmhlcml0IGZyb20gVGVzdFBhcnRSZXN1bHRBcnJheSBhcyBpdHMgZGVzdHJ1Y3RvciBpcyBu
b3QKLS8vIHZpcnR1YWwuCi1jbGFzcyBHVEVTVF9BUElfIFRlc3RQYXJ0UmVzdWx0QXJyYXkgewot
IHB1YmxpYzoKLSAgVGVzdFBhcnRSZXN1bHRBcnJheSgpIHt9Ci0KLSAgLy8gQXBwZW5kcyB0aGUg
Z2l2ZW4gVGVzdFBhcnRSZXN1bHQgdG8gdGhlIGFycmF5LgotICB2b2lkIEFwcGVuZChjb25zdCBU
ZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLQotICAvLyBSZXR1cm5zIHRoZSBUZXN0UGFydFJlc3Vs
dCBhdCB0aGUgZ2l2ZW4gaW5kZXggKDAtYmFzZWQpLgotICBjb25zdCBUZXN0UGFydFJlc3VsdCYg
R2V0VGVzdFBhcnRSZXN1bHQoaW50IGluZGV4KSBjb25zdDsKLQotICAvLyBSZXR1cm5zIHRoZSBu
dW1iZXIgb2YgVGVzdFBhcnRSZXN1bHQgb2JqZWN0cyBpbiB0aGUgYXJyYXkuCi0gIGludCBzaXpl
KCkgY29uc3Q7Ci0KLSBwcml2YXRlOgotICBzdGQ6OnZlY3RvcjxUZXN0UGFydFJlc3VsdD4gYXJy
YXlfOwotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVGVzdFBhcnRSZXN1bHRB
cnJheSk7Ci19OwotCi0vLyBUaGlzIGludGVyZmFjZSBrbm93cyBob3cgdG8gcmVwb3J0IGEgdGVz
dCBwYXJ0IHJlc3VsdC4KLWNsYXNzIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2Ugewot
IHB1YmxpYzoKLSAgdmlydHVhbCB+VGVzdFBhcnRSZXN1bHRSZXBvcnRlckludGVyZmFjZSgpIHt9
Ci0KLSAgdmlydHVhbCB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVz
dWx0JiByZXN1bHQpID0gMDsKLX07Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIFRoaXMg
aGVscGVyIGNsYXNzIGlzIHVzZWQgYnkge0FTU0VSVHxFWFBFQ1R9X05PX0ZBVEFMX0ZBSUxVUkUg
dG8gY2hlY2sgaWYgYQotLy8gc3RhdGVtZW50IGdlbmVyYXRlcyBuZXcgZmF0YWwgZmFpbHVyZXMu
IFRvIGRvIHNvIGl0IHJlZ2lzdGVycyBpdHNlbGYgYXMgdGhlCi0vLyBjdXJyZW50IHRlc3QgcGFy
dCByZXN1bHQgcmVwb3J0ZXIuIEJlc2lkZXMgY2hlY2tpbmcgaWYgZmF0YWwgZmFpbHVyZXMgd2Vy
ZQotLy8gcmVwb3J0ZWQsIGl0IG9ubHkgZGVsZWdhdGVzIHRoZSByZXBvcnRpbmcgdG8gdGhlIGZv
cm1lciByZXN1bHQgcmVwb3J0ZXIuCi0vLyBUaGUgb3JpZ2luYWwgcmVzdWx0IHJlcG9ydGVyIGlz
IHJlc3RvcmVkIGluIHRoZSBkZXN0cnVjdG9yLgotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04g
LSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9HUkFNLgotY2xhc3MgR1RFU1RfQVBJXyBIYXNOZXdG
YXRhbEZhaWx1cmVIZWxwZXIKLSAgICA6IHB1YmxpYyBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50
ZXJmYWNlIHsKLSBwdWJsaWM6Ci0gIEhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlcigpOwotICB2aXJ0
dWFsIH5IYXNOZXdGYXRhbEZhaWx1cmVIZWxwZXIoKTsKLSAgdmlydHVhbCB2b2lkIFJlcG9ydFRl
c3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpOwotICBib29sIGhhc19u
ZXdfZmF0YWxfZmFpbHVyZSgpIGNvbnN0IHsgcmV0dXJuIGhhc19uZXdfZmF0YWxfZmFpbHVyZV87
IH0KLSBwcml2YXRlOgotICBib29sIGhhc19uZXdfZmF0YWxfZmFpbHVyZV87Ci0gIFRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UqIG9yaWdpbmFsX3JlcG9ydGVyXzsKLQotICBHVEVTVF9E
SVNBTExPV19DT1BZX0FORF9BU1NJR05fKEhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlcik7Ci19Owot
Ci19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC10eXBl
ZC10ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0
LXR5cGVkLXRlc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA3MjZiMmNkNWJm
YzJkYWFiODI3NWZhMGU1NGU4Y2E5MTFmODYxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0LXR5cGVkLXRlc3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDI2NCArMCwwIEBACi0v
LyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLgotLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8v
Ci0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlz
dHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
Ly8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6
IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9H
VEVTVF9HVEVTVF9UWVBFRF9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfVFlQRURfVEVTVF9IXwotCi0vLyBUaGlzIGhlYWRlciBpbXBsZW1lbnRzIHR5cGVkIHRlc3Rz
IGFuZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0KLS8vIFR5cGVkIChha2EgdHlwZS1kcml2
ZW4pIHRlc3RzIHJlcGVhdCB0aGUgc2FtZSB0ZXN0IGZvciB0eXBlcyBpbiBhCi0vLyBsaXN0LiAg
WW91IG11c3Qga25vdyB3aGljaCB0eXBlcyB5b3Ugd2FudCB0byB0ZXN0IHdpdGggd2hlbiB3cml0
aW5nCi0vLyB0eXBlZCB0ZXN0cy4gSGVyZSdzIGhvdyB5b3UgZG8gaXQ6Ci0KLSNpZiAwCi0KLS8v
IEZpcnN0LCBkZWZpbmUgYSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRlLiAgSXQgc2hvdWxkIGJlIHBh
cmFtZXRlcml6ZWQKLS8vIGJ5IGEgdHlwZS4gIFJlbWVtYmVyIHRvIGRlcml2ZSBpdCBmcm9tIHRl
c3Rpbmc6OlRlc3QuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIEZvb1Rlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdCB7Ci0gcHVibGljOgotICAuLi4KLSAgdHlwZWRlZiBzdGQ6Omxpc3Q8
VD4gTGlzdDsKLSAgc3RhdGljIFQgc2hhcmVkXzsKLSAgVCB2YWx1ZV87Ci19OwotCi0vLyBOZXh0
LCBhc3NvY2lhdGUgYSBsaXN0IG9mIHR5cGVzIHdpdGggdGhlIHRlc3QgY2FzZSwgd2hpY2ggd2ls
bCBiZQotLy8gcmVwZWF0ZWQgZm9yIGVhY2ggdHlwZSBpbiB0aGUgbGlzdC4gIFRoZSB0eXBlZGVm
IGlzIG5lY2Vzc2FyeSBmb3IKLS8vIHRoZSBtYWNybyB0byBwYXJzZSBjb3JyZWN0bHkuCi10eXBl
ZGVmIHRlc3Rpbmc6OlR5cGVzPGNoYXIsIGludCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOwotVFlQ
RURfVEVTVF9DQVNFKEZvb1Rlc3QsIE15VHlwZXMpOwotCi0vLyBJZiB0aGUgdHlwZSBsaXN0IGNv
bnRhaW5zIG9ubHkgb25lIHR5cGUsIHlvdSBjYW4gd3JpdGUgdGhhdCB0eXBlCi0vLyBkaXJlY3Rs
eSB3aXRob3V0IFR5cGVzPC4uLj46Ci0vLyAgIFRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBpbnQp
OwotCi0vLyBUaGVuLCB1c2UgVFlQRURfVEVTVCgpIGluc3RlYWQgb2YgVEVTVF9GKCkgdG8gZGVm
aW5lIGFzIG1hbnkgdHlwZWQKLS8vIHRlc3RzIGZvciB0aGlzIHRlc3QgY2FzZSBhcyB5b3Ugd2Fu
dC4KLVRZUEVEX1RFU1QoRm9vVGVzdCwgRG9lc0JsYWgpIHsKLSAgLy8gSW5zaWRlIGEgdGVzdCwg
cmVmZXIgdG8gVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJhbWV0ZXIuCi0gIC8vIFNpbmNl
IHdlIGFyZSBpbnNpZGUgYSBkZXJpdmVkIGNsYXNzIHRlbXBsYXRlLCBDKysgcmVxdWlyZXMgdXNl
IHRvCi0gIC8vIHZpc2l0IHRoZSBtZW1iZXJzIG9mIEZvb1Rlc3QgdmlhICd0aGlzJy4KLSAgVHlw
ZVBhcmFtIG4gPSB0aGlzLT52YWx1ZV87Ci0KLSAgLy8gVG8gdmlzaXQgc3RhdGljIG1lbWJlcnMg
b2YgdGhlIGZpeHR1cmUsIGFkZCB0aGUgVGVzdEZpeHR1cmU6OgotICAvLyBwcmVmaXguCi0gIG4g
Kz0gVGVzdEZpeHR1cmU6OnNoYXJlZF87Ci0KLSAgLy8gVG8gcmVmZXIgdG8gdHlwZWRlZnMgaW4g
dGhlIGZpeHR1cmUsIGFkZCB0aGUgInR5cGVuYW1lCi0gIC8vIFRlc3RGaXh0dXJlOjoiIHByZWZp
eC4KLSAgdHlwZW5hbWUgVGVzdEZpeHR1cmU6Okxpc3QgdmFsdWVzOwotICB2YWx1ZXMucHVzaF9i
YWNrKG4pOwotICAuLi4KLX0KLQotVFlQRURfVEVTVChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsg
Li4uIH0KLQotI2VuZGlmICAvLyAwCi0KLS8vIFR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUg
YWJzdHJhY3QgdGVzdCBwYXR0ZXJucyBwYXJhbWV0ZXJpemVkCi0vLyBieSBhIHR5cGUuICBDb21w
YXJlZCB3aXRoIHR5cGVkIHRlc3RzLCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGFsbG93
IHlvdSB0byBkZWZpbmUgdGhlIHRlc3QgcGF0dGVybiB3aXRob3V0IGtub3dpbmcgd2hhdCB0aGUg
dHlwZQotLy8gcGFyYW1ldGVycyBhcmUuICBUaGUgZGVmaW5lZCBwYXR0ZXJuIGNhbiBiZSBpbnN0
YW50aWF0ZWQgd2l0aAotLy8gZGlmZmVyZW50IHR5cGVzIGFueSBudW1iZXIgb2YgdGltZXMsIGlu
IGFueSBudW1iZXIgb2YgdHJhbnNsYXRpb24KLS8vIHVuaXRzLgotLy8KLS8vIElmIHlvdSBhcmUg
ZGVzaWduaW5nIGFuIGludGVyZmFjZSBvciBjb25jZXB0LCB5b3UgY2FuIGRlZmluZSBhCi0vLyBz
dWl0ZSBvZiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgdG8gdmVyaWZ5IHByb3BlcnRpZXMgdGhh
dCBhbnkKLS8vIHZhbGlkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBpbnRlcmZhY2UvY29uY2VwdCBz
aG91bGQgaGF2ZS4gIFRoZW4sCi0vLyBlYWNoIGltcGxlbWVudGF0aW9uIGNhbiBlYXNpbHkgaW5z
dGFudGlhdGUgdGhlIHRlc3Qgc3VpdGUgdG8gdmVyaWZ5Ci0vLyB0aGF0IGl0IGNvbmZvcm1zIHRv
IHRoZSByZXF1aXJlbWVudHMsIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlCi0vLyBzaW1pbGFyIHRl
c3RzIHJlcGVhdGVkbHkuICBIZXJlJ3MgYW4gZXhhbXBsZToKLQotI2lmIDAKLQotLy8gRmlyc3Qs
IGRlZmluZSBhIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUuICBJdCBzaG91bGQgYmUgcGFyYW1ldGVy
aXplZAotLy8gYnkgYSB0eXBlLiAgUmVtZW1iZXIgdG8gZGVyaXZlIGl0IGZyb20gdGVzdGluZzo6
VGVzdC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0IHsKLSAgLi4uCi19OwotCi0vLyBOZXh0LCBkZWNsYXJlIHRoYXQgeW91IHdpbGwg
ZGVmaW5lIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZQotLy8gKHRoZSBfUCBzdWZmaXgg
aXMgZm9yICJwYXJhbWV0ZXJpemVkIiBvciAicGF0dGVybiIsIHdoaWNoZXZlciB5b3UKLS8vIHBy
ZWZlcik6Ci1UWVBFRF9URVNUX0NBU0VfUChGb29UZXN0KTsKLQotLy8gVGhlbiwgdXNlIFRZUEVE
X1RFU1RfUCgpIHRvIGRlZmluZSBhcyBtYW55IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cwotLy8g
Zm9yIHRoaXMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBhcyB5b3Ugd2FudC4KLVRZUEVE
X1RFU1RfUChGb29UZXN0LCBEb2VzQmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0
byBUeXBlUGFyYW0gdG8gZ2V0IHRoZSB0eXBlIHBhcmFtZXRlci4KLSAgVHlwZVBhcmFtIG4gPSAw
OwotICAuLi4KLX0KLQotVFlQRURfVEVTVF9QKEZvb1Rlc3QsIEhhc1Byb3BlcnR5QSkgeyAuLi4g
fQotCi0vLyBOb3cgdGhlIHRyaWNreSBwYXJ0OiB5b3UgbmVlZCB0byByZWdpc3RlciBhbGwgdGVz
dCBwYXR0ZXJucyBiZWZvcmUKLS8vIHlvdSBjYW4gaW5zdGFudGlhdGUgdGhlbS4gIFRoZSBmaXJz
dCBhcmd1bWVudCBvZiB0aGUgbWFjcm8gaXMgdGhlCi0vLyB0ZXN0IGNhc2UgbmFtZTsgdGhlIHJl
c3QgYXJlIHRoZSBuYW1lcyBvZiB0aGUgdGVzdHMgaW4gdGhpcyB0ZXN0Ci0vLyBjYXNlLgotUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRm9vVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERvZXNCbGFoLCBIYXNQcm9wZXJ0eUEpOwotCi0vLyBGaW5hbGx5LCB5b3UgYXJlIGZyZWUg
dG8gaW5zdGFudGlhdGUgdGhlIHBhdHRlcm4gd2l0aCB0aGUgdHlwZXMgeW91Ci0vLyB3YW50LiAg
SWYgeW91IHB1dCB0aGUgYWJvdmUgY29kZSBpbiBhIGhlYWRlciBmaWxlLCB5b3UgY2FuICNpbmNs
dWRlCi0vLyBpdCBpbiBtdWx0aXBsZSBDKysgc291cmNlIGZpbGVzIGFuZCBpbnN0YW50aWF0ZSBp
dCBtdWx0aXBsZSB0aW1lcy4KLS8vCi0vLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFu
Y2VzIG9mIHRoZSBwYXR0ZXJuLCB0aGUgZmlyc3QKLS8vIGFyZ3VtZW50IHRvIHRoZSBJTlNUQU5U
SUFURV8qIG1hY3JvIGlzIGEgcHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZAotLy8gdG8gdGhlIGFj
dHVhbCB0ZXN0IGNhc2UgbmFtZS4gIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZv
cgotLy8gZGlmZmVyZW50IGluc3RhbmNlcy4KLXR5cGVkZWYgdGVzdGluZzo6VHlwZXM8Y2hhciwg
aW50LCB1bnNpZ25lZCBpbnQ+IE15VHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0Vf
UChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7Ci0KLS8vIElmIHRoZSB0eXBlIGxpc3QgY29udGFpbnMg
b25seSBvbmUgdHlwZSwgeW91IGNhbiB3cml0ZSB0aGF0IHR5cGUKLS8vIGRpcmVjdGx5IHdpdGhv
dXQgVHlwZXM8Li4uPjoKLS8vICAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIEZv
b1Rlc3QsIGludCk7Ci0KLSNlbmRpZiAgLy8gMAotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtcG9ydC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5o
IgotCi0vLyBJbXBsZW1lbnRzIHR5cGVkIHRlc3RzLgotCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RF
U1QKLQotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09E
RS4KLS8vCi0vLyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9mIHRoZSB0eXBlZGVmIGZvciB0aGUgdHlw
ZSBwYXJhbWV0ZXJzIG9mIHRoZQotLy8gZ2l2ZW4gdGVzdCBjYXNlLgotIyBkZWZpbmUgR1RFU1Rf
VFlQRV9QQVJBTVNfKFRlc3RDYXNlTmFtZSkgZ3Rlc3RfdHlwZV9wYXJhbXNfIyNUZXN0Q2FzZU5h
bWUjI18KLQotLy8gVGhlICdUeXBlcycgdGVtcGxhdGUgYXJndW1lbnQgYmVsb3cgbXVzdCBoYXZl
IHNwYWNlcyBhcm91bmQgaXQKLS8vIHNpbmNlIHNvbWUgY29tcGlsZXJzIG1heSBjaG9rZSBvbiAn
Pj4nIHdoZW4gcGFzc2luZyBhIHRlbXBsYXRlCi0vLyBpbnN0YW5jZSAoZS5nLiBUeXBlczxpbnQ+
KQotIyBkZWZpbmUgVFlQRURfVEVTVF9DQVNFKENhc2VOYW1lLCBUeXBlcykgXAotICB0eXBlZGVm
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0PCBUeXBlcyA+Ojp0eXBlIFwKLSAgICAgIEdU
RVNUX1RZUEVfUEFSQU1TXyhDYXNlTmFtZSkKLQotIyBkZWZpbmUgVFlQRURfVEVTVChDYXNlTmFt
ZSwgVGVzdE5hbWUpIFwKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+IFwK
LSAgY2xhc3MgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyhDYXNlTmFtZSwgVGVzdE5hbWUpIFwKLSAg
ICAgIDogcHVibGljIENhc2VOYW1lPGd0ZXN0X1R5cGVQYXJhbV8+IHsgXAotICAgcHJpdmF0ZTog
XAotICAgIHR5cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4gVGVzdEZpeHR1cmU7IFwK
LSAgICB0eXBlZGVmIGd0ZXN0X1R5cGVQYXJhbV8gVHlwZVBhcmFtOyBcCi0gICAgdmlydHVhbCB2
b2lkIFRlc3RCb2R5KCk7IFwKLSAgfTsgXAotICBib29sIGd0ZXN0XyMjQ2FzZU5hbWUjI18jI1Rl
c3ROYW1lIyNfcmVnaXN0ZXJlZF8gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICA6
OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlUGFyYW1ldGVyaXplZFRlc3Q8IFwKLSAgICAgICAgICBD
YXNlTmFtZSwgXAotICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlbXBsYXRlU2VsPCBc
Ci0gICAgICAgICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oQ2FzZU5hbWUsIFRlc3ROYW1l
KT4sIFwKLSAgICAgICAgICBHVEVTVF9UWVBFX1BBUkFNU18oQ2FzZU5hbWUpPjo6UmVnaXN0ZXIo
XAotICAgICAgICAgICAgICAiIiwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9f
RklMRV9fLCBfX0xJTkVfXyksIFwKLSAgICAgICAgICAgICAgI0Nhc2VOYW1lLCAjVGVzdE5hbWUs
IDApOyBcCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBlUGFyYW1fPiBcCi0gIHZvaWQg
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyhDYXNlTmFtZSwgVGVzdE5hbWUpPGd0ZXN0X1R5cGVQYXJh
bV8+OjpUZXN0Qm9keSgpCi0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotLy8g
SW1wbGVtZW50cyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0KLSNpZiBHVEVTVF9IQVNfVFlQ
RURfVEVTVF9QCi0KLS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBV
U0VSIENPREUuCi0vLwotLy8gRXhwYW5kcyB0byB0aGUgbmFtZXNwYWNlIG5hbWUgdGhhdCB0aGUg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGZvcgotLy8gdGhlIGdpdmVuIHR5cGUtcGFyYW1ldGVy
aXplZCB0ZXN0IGNhc2UgYXJlIGRlZmluZWQgaW4uICBUaGUgZXhhY3QKLS8vIG5hbWUgb2YgdGhl
IG5hbWVzcGFjZSBpcyBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4KLSMgZGVmaW5l
IEdURVNUX0NBU0VfTkFNRVNQQUNFXyhUZXN0Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfY2FzZV8jI1Rl
c3RDYXNlTmFtZSMjXwotCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0Ug
SU4gVVNFUiBDT0RFLgotLy8KLS8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxl
IHVzZWQgdG8gcmVtZW1iZXIgdGhlIG5hbWVzIG9mCi0vLyB0aGUgZGVmaW5lZCB0ZXN0cyBpbiB0
aGUgZ2l2ZW4gdGVzdCBjYXNlLgotIyBkZWZpbmUgR1RFU1RfVFlQRURfVEVTVF9DQVNFX1BfU1RB
VEVfKFRlc3RDYXNlTmFtZSkgXAotICBndGVzdF90eXBlZF90ZXN0X2Nhc2VfcF9zdGF0ZV8jI1Rl
c3RDYXNlTmFtZSMjXwotCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0Ug
SU4gVVNFUiBDT0RFIERJUkVDVExZLgotLy8KLS8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhl
IHZhcmlhYmxlIHVzZWQgdG8gcmVtZW1iZXIgdGhlIG5hbWVzIG9mCi0vLyB0aGUgcmVnaXN0ZXJl
ZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4gdGVzdCBjYXNlLgotIyBkZWZpbmUgR1RFU1RfUkVHSVNURVJF
RF9URVNUX05BTUVTXyhUZXN0Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfcmVnaXN0ZXJlZF90ZXN0X25h
bWVzXyMjVGVzdENhc2VOYW1lIyNfCi0KLS8vIFRoZSB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgbWFjcm9zIGFyZQotLy8gc3RhdGljIGFzIHR5cGljYWxs
eSB0aGVzZSBtYWNyb3MgYXJlIHVzZWQgaW4gYSAuaCBmaWxlIHRoYXQgY2FuIGJlCi0vLyAjaW5j
bHVkZWQgaW4gbXVsdGlwbGUgdHJhbnNsYXRpb24gdW5pdHMgbGlua2VkIHRvZ2V0aGVyLgotIyBk
ZWZpbmUgVFlQRURfVEVTVF9DQVNFX1AoQ2FzZU5hbWUpIFwKLSAgc3RhdGljIDo6dGVzdGluZzo6
aW50ZXJuYWw6OlR5cGVkVGVzdENhc2VQU3RhdGUgXAotICAgICAgR1RFU1RfVFlQRURfVEVTVF9D
QVNFX1BfU1RBVEVfKENhc2VOYW1lKQotCi0jIGRlZmluZSBUWVBFRF9URVNUX1AoQ2FzZU5hbWUs
IFRlc3ROYW1lKSBcCi0gIG5hbWVzcGFjZSBHVEVTVF9DQVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUp
IHsgXAotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgZ3Rlc3RfVHlwZVBhcmFtXz4gXAotICBjbGFzcyBU
ZXN0TmFtZSA6IHB1YmxpYyBDYXNlTmFtZTxndGVzdF9UeXBlUGFyYW1fPiB7IFwKLSAgIHByaXZh
dGU6IFwKLSAgICB0eXBlZGVmIENhc2VOYW1lPGd0ZXN0X1R5cGVQYXJhbV8+IFRlc3RGaXh0dXJl
OyBcCi0gICAgdHlwZWRlZiBndGVzdF9UeXBlUGFyYW1fIFR5cGVQYXJhbTsgXAotICAgIHZpcnR1
YWwgdm9pZCBUZXN0Qm9keSgpOyBcCi0gIH07IFwKLSAgc3RhdGljIGJvb2wgZ3Rlc3RfIyNUZXN0
TmFtZSMjX2RlZmluZWRfIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0gXAotICAgICAgR1RFU1Rf
VFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKS5BZGRUZXN0TmFtZShcCi0gICAgICAg
ICAgX19GSUxFX18sIF9fTElORV9fLCAjQ2FzZU5hbWUsICNUZXN0TmFtZSk7IFwKLSAgfSBcCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBlUGFyYW1fPiBcCi0gIHZvaWQgR1RFU1RfQ0FT
RV9OQU1FU1BBQ0VfKENhc2VOYW1lKTo6VGVzdE5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz46OlRlc3RC
b2R5KCkKLQotIyBkZWZpbmUgUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoQ2FzZU5hbWUsIC4u
LikgXAotICBuYW1lc3BhY2UgR1RFU1RfQ0FTRV9OQU1FU1BBQ0VfKENhc2VOYW1lKSB7IFwKLSAg
dHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpUZW1wbGF0ZXM8X19WQV9BUkdTX18+Ojp0eXBl
IGd0ZXN0X0FsbFRlc3RzXzsgXAotICB9IFwKLSAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEdU
RVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oQ2FzZU5hbWUpIFwKLSAgICAgIEdURVNUX0FUVFJJ
QlVURV9VTlVTRURfID0gXAotICAgICAgICAgIEdURVNUX1RZUEVEX1RFU1RfQ0FTRV9QX1NUQVRF
XyhDYXNlTmFtZSkuVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcyhcCi0gICAgICAgICAgICAgIF9f
RklMRV9fLCBfX0xJTkVfXywgI19fVkFfQVJHU19fKQotCi0vLyBUaGUgJ1R5cGVzJyB0ZW1wbGF0
ZSBhcmd1bWVudCBiZWxvdyBtdXN0IGhhdmUgc3BhY2VzIGFyb3VuZCBpdAotLy8gc2luY2Ugc29t
ZSBjb21waWxlcnMgbWF5IGNob2tlIG9uICc+Picgd2hlbiBwYXNzaW5nIGEgdGVtcGxhdGUKLS8v
IGluc3RhbmNlIChlLmcuIFR5cGVzPGludD4pCi0jIGRlZmluZSBJTlNUQU5USUFURV9UWVBFRF9U
RVNUX0NBU0VfUChQcmVmaXgsIENhc2VOYW1lLCBUeXBlcykgXAotICBib29sIGd0ZXN0XyMjUHJl
Zml4IyNfIyNDYXNlTmFtZSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9IFwKLSAgICAgIDo6dGVz
dGluZzo6aW50ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Q2FzZU5hbWUsIFwKLSAg
ICAgICAgICBHVEVTVF9DQVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpOjpndGVzdF9BbGxUZXN0c18s
IFwKLSAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlTGlzdDwgVHlwZXMgPjo6dHlw
ZT46OlJlZ2lzdGVyKFwKLSAgICAgICAgICAgICAgI1ByZWZpeCwgXAotICAgICAgICAgICAgICA6
OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgXAot
ICAgICAgICAgICAgICAmR1RFU1RfVFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKSwg
XAotICAgICAgICAgICAgICAjQ2FzZU5hbWUsIEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18o
Q2FzZU5hbWUpKQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotI2VuZGlm
ICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RZUEVEX1RFU1RfSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmFkNWEwY2I0MmRiYjFlNjkwOGU3MzE2MmY2Y2Y1NjE4ZTkwODQ4
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgKKysrIC9kZXYvbnVsbApA
QCAtMSwyMjM4ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUgSW5jLgotLy8gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8v
IG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8v
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0v
LyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0vLwot
Ly8gVGhlIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQotLy8KLS8v
IFRoaXMgaGVhZGVyIGZpbGUgZGVmaW5lcyB0aGUgcHVibGljIEFQSSBmb3IgR29vZ2xlIFRlc3Qu
ICBJdCBzaG91bGQgYmUKLS8vIGluY2x1ZGVkIGJ5IGFueSB0ZXN0IHByb2dyYW0gdGhhdCB1c2Vz
IEdvb2dsZSBUZXN0LgotLy8KLS8vIElNUE9SVEFOVCBOT1RFOiBEdWUgdG8gbGltaXRhdGlvbiBv
ZiB0aGUgQysrIGxhbmd1YWdlLCB3ZSBoYXZlIHRvCi0vLyBsZWF2ZSBzb21lIGludGVybmFsIGlt
cGxlbWVudGF0aW9uIGRldGFpbHMgaW4gdGhpcyBoZWFkZXIgZmlsZS4KLS8vIFRoZXkgYXJlIGNs
ZWFybHkgbWFya2VkIGJ5IGNvbW1lbnRzIGxpa2UgdGhpczoKLS8vCi0vLyAgIC8vIElOVEVSTkFM
IElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KLS8vCi0vLyBT
dWNoIGNvZGUgaXMgTk9UIG1lYW50IHRvIGJlIHVzZWQgYnkgYSB1c2VyIGRpcmVjdGx5LCBhbmQg
aXMgc3ViamVjdAotLy8gdG8gQ0hBTkdFIFdJVEhPVVQgTk9USUNFLiAgVGhlcmVmb3JlIERPIE5P
VCBERVBFTkQgT04gSVQgaW4gYSB1c2VyCi0vLyBwcm9ncmFtIQotLy8KLS8vIEFja25vd2xlZGdt
ZW50OiBHb29nbGUgVGVzdCBib3Jyb3dlZCB0aGUgaWRlYSBvZiBhdXRvbWF0aWMgdGVzdAotLy8g
cmVnaXN0cmF0aW9uIGZyb20gQmFydGhlbGVteSBEYWdlbmFpcycgKGJhcnRoZWxlbXlAcHJvbG9n
aXF1ZS5jb20pCi0vLyBlYXN5VW5pdCBmcmFtZXdvcmsuCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCi0K
LSNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5jbHVkZSA8b3N0cmVhbT4KLSNpbmNsdWRlIDx2ZWN0b3I+
Ci0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgotI2luY2x1ZGUg
Imd0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LWRl
YXRoLXRlc3QuaCIKLSNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgiCi0jaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJz
LmgiCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3RfcHJvZC5oIgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0
LXRlc3QtcGFydC5oIgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXR5cGVkLXRlc3QuaCIKLQotLy8g
RGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSwgZGlmZmVyZW50IHN0cmluZyBjbGFzc2VzIGFyZSBh
dmFpbGFibGUuCi0vLyBPbiBMaW51eCwgaW4gYWRkaXRpb24gdG8gOjpzdGQ6OnN0cmluZywgR29v
Z2xlIGFsc28gbWFrZXMgdXNlIG9mCi0vLyBjbGFzcyA6OnN0cmluZywgd2hpY2ggaGFzIHRoZSBz
YW1lIGludGVyZmFjZSBhcyA6OnN0ZDo6c3RyaW5nLCBidXQKLS8vIGhhcyBhIGRpZmZlcmVudCBp
bXBsZW1lbnRhdGlvbi4KLS8vCi0vLyBZb3UgY2FuIGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NU
UklORyB0byAxIHRvIGluZGljYXRlIHRoYXQKLS8vIDo6c3RyaW5nIGlzIGF2YWlsYWJsZSBBTkQg
aXMgYSBkaXN0aW5jdCB0eXBlIHRvIDo6c3RkOjpzdHJpbmcsIG9yCi0vLyBkZWZpbmUgaXQgdG8g
MCB0byBpbmRpY2F0ZSBvdGhlcndpc2UuCi0vLwotLy8gSWYgOjpzdGQ6OnN0cmluZyBhbmQgOjpz
dHJpbmcgYXJlIHRoZSBzYW1lIGNsYXNzIG9uIHlvdXIgcGxhdGZvcm0KLS8vIGR1ZSB0byBhbGlh
c2luZywgeW91IHNob3VsZCBkZWZpbmUgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcgdG8gMC4KLS8v
Ci0vLyBJZiB5b3UgZG8gbm90IGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORywgaXQgaXMg
ZGVmaW5lZAotLy8gaGV1cmlzdGljYWxseS4KLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBE
ZWNsYXJlcyB0aGUgZmxhZ3MuCi0KLS8vIFRoaXMgZmxhZyB0ZW1wb3JhcnkgZW5hYmxlcyB0aGUg
ZGlzYWJsZWQgdGVzdHMuCi1HVEVTVF9ERUNMQVJFX2Jvb2xfKGFsc29fcnVuX2Rpc2FibGVkX3Rl
c3RzKTsKLQotLy8gVGhpcyBmbGFnIGJyaW5ncyB0aGUgZGVidWdnZXIgb24gYW4gYXNzZXJ0aW9u
IGZhaWx1cmUuCi1HVEVTVF9ERUNMQVJFX2Jvb2xfKGJyZWFrX29uX2ZhaWx1cmUpOwotCi0vLyBU
aGlzIGZsYWcgY29udHJvbHMgd2hldGhlciBHb29nbGUgVGVzdCBjYXRjaGVzIGFsbCB0ZXN0LXRo
cm93biBleGNlcHRpb25zCi0vLyBhbmQgbG9ncyB0aGVtIGFzIGZhaWx1cmVzLgotR1RFU1RfREVD
TEFSRV9ib29sXyhjYXRjaF9leGNlcHRpb25zKTsKLQotLy8gVGhpcyBmbGFnIGVuYWJsZXMgdXNp
bmcgY29sb3JzIGluIHRlcm1pbmFsIG91dHB1dC4gQXZhaWxhYmxlIHZhbHVlcyBhcmUKLS8vICJ5
ZXMiIHRvIGVuYWJsZSBjb2xvcnMsICJubyIgKGRpc2FibGUgY29sb3JzKSwgb3IgImF1dG8iICh0
aGUgZGVmYXVsdCkKLS8vIHRvIGxldCBHb29nbGUgVGVzdCBkZWNpZGUuCi1HVEVTVF9ERUNMQVJF
X3N0cmluZ18oY29sb3IpOwotCi0vLyBUaGlzIGZsYWcgc2V0cyB1cCB0aGUgZmlsdGVyIHRvIHNl
bGVjdCBieSBuYW1lIHVzaW5nIGEgZ2xvYiBwYXR0ZXJuCi0vLyB0aGUgdGVzdHMgdG8gcnVuLiBJ
ZiB0aGUgZmlsdGVyIGlzIG5vdCBnaXZlbiBhbGwgdGVzdHMgYXJlIGV4ZWN1dGVkLgotR1RFU1Rf
REVDTEFSRV9zdHJpbmdfKGZpbHRlcik7Ci0KLS8vIFRoaXMgZmxhZyBjYXVzZXMgdGhlIEdvb2ds
ZSBUZXN0IHRvIGxpc3QgdGVzdHMuIE5vbmUgb2YgdGhlIHRlc3RzIGxpc3RlZAotLy8gYXJlIGFj
dHVhbGx5IHJ1biBpZiB0aGUgZmxhZyBpcyBwcm92aWRlZC4KLUdURVNUX0RFQ0xBUkVfYm9vbF8o
bGlzdF90ZXN0cyk7Ci0KLS8vIFRoaXMgZmxhZyBjb250cm9scyB3aGV0aGVyIEdvb2dsZSBUZXN0
IGVtaXRzIGEgZGV0YWlsZWQgWE1MIHJlcG9ydCB0byBhIGZpbGUKLS8vIGluIGFkZGl0aW9uIHRv
IGl0cyBub3JtYWwgdGV4dHVhbCBvdXRwdXQuCi1HVEVTVF9ERUNMQVJFX3N0cmluZ18ob3V0cHV0
KTsKLQotLy8gVGhpcyBmbGFncyBjb250cm9sIHdoZXRoZXIgR29vZ2xlIFRlc3QgcHJpbnRzIHRo
ZSBlbGFwc2VkIHRpbWUgZm9yIGVhY2gKLS8vIHRlc3QuCi1HVEVTVF9ERUNMQVJFX2Jvb2xfKHBy
aW50X3RpbWUpOwotCi0vLyBUaGlzIGZsYWcgc3BlY2lmaWVzIHRoZSByYW5kb20gbnVtYmVyIHNl
ZWQuCi1HVEVTVF9ERUNMQVJFX2ludDMyXyhyYW5kb21fc2VlZCk7Ci0KLS8vIFRoaXMgZmxhZyBz
ZXRzIGhvdyBtYW55IHRpbWVzIHRoZSB0ZXN0cyBhcmUgcmVwZWF0ZWQuIFRoZSBkZWZhdWx0IHZh
bHVlCi0vLyBpcyAxLiBJZiB0aGUgdmFsdWUgaXMgLTEgdGhlIHRlc3RzIGFyZSByZXBlYXRpbmcg
Zm9yZXZlci4KLUdURVNUX0RFQ0xBUkVfaW50MzJfKHJlcGVhdCk7Ci0KLS8vIFRoaXMgZmxhZyBj
b250cm9scyB3aGV0aGVyIEdvb2dsZSBUZXN0IGluY2x1ZGVzIEdvb2dsZSBUZXN0IGludGVybmFs
Ci0vLyBzdGFjayBmcmFtZXMgaW4gZmFpbHVyZSBzdGFjayB0cmFjZXMuCi1HVEVTVF9ERUNMQVJF
X2Jvb2xfKHNob3dfaW50ZXJuYWxfc3RhY2tfZnJhbWVzKTsKLQotLy8gV2hlbiB0aGlzIGZsYWcg
aXMgc3BlY2lmaWVkLCB0ZXN0cycgb3JkZXIgaXMgcmFuZG9taXplZCBvbiBldmVyeSBpdGVyYXRp
b24uCi1HVEVTVF9ERUNMQVJFX2Jvb2xfKHNodWZmbGUpOwotCi0vLyBUaGlzIGZsYWcgc3BlY2lm
aWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzdGFjayBmcmFtZXMgdG8gYmUKLS8vIHByaW50ZWQg
aW4gYSBmYWlsdXJlIG1lc3NhZ2UuCi1HVEVTVF9ERUNMQVJFX2ludDMyXyhzdGFja190cmFjZV9k
ZXB0aCk7Ci0KLS8vIFdoZW4gdGhpcyBmbGFnIGlzIHNwZWNpZmllZCwgYSBmYWlsZWQgYXNzZXJ0
aW9uIHdpbGwgdGhyb3cgYW4KLS8vIGV4Y2VwdGlvbiBpZiBleGNlcHRpb25zIGFyZSBlbmFibGVk
LCBvciBleGl0IHRoZSBwcm9ncmFtIHdpdGggYQotLy8gbm9uLXplcm8gY29kZSBvdGhlcndpc2Uu
Ci1HVEVTVF9ERUNMQVJFX2Jvb2xfKHRocm93X29uX2ZhaWx1cmUpOwotCi0vLyBXaGVuIHRoaXMg
ZmxhZyBpcyBzZXQgd2l0aCBhICJob3N0OnBvcnQiIHN0cmluZywgb24gc3VwcG9ydGVkCi0vLyBw
bGF0Zm9ybXMgdGVzdCByZXN1bHRzIGFyZSBzdHJlYW1lZCB0byB0aGUgc3BlY2lmaWVkIHBvcnQg
b24KLS8vIHRoZSBzcGVjaWZpZWQgaG9zdCBtYWNoaW5lLgotR1RFU1RfREVDTEFSRV9zdHJpbmdf
KHN0cmVhbV9yZXN1bHRfdG8pOwotCi0vLyBUaGUgdXBwZXIgbGltaXQgZm9yIHZhbGlkIHN0YWNr
IHRyYWNlIGRlcHRocy4KLWNvbnN0IGludCBrTWF4U3RhY2tUcmFjZURlcHRoID0gMTAwOwotCi1u
YW1lc3BhY2UgaW50ZXJuYWwgewotCi1jbGFzcyBBc3NlcnRIZWxwZXI7Ci1jbGFzcyBEZWZhdWx0
R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjsKLWNsYXNzIEV4ZWNEZWF0aFRlc3Q7Ci1jbGFz
cyBOb0V4ZWNEZWF0aFRlc3Q7Ci1jbGFzcyBGaW5hbFN1Y2Nlc3NDaGVja2VyOwotY2xhc3MgR1Rl
c3RGbGFnU2F2ZXI7Ci1jbGFzcyBTdHJlYW1pbmdMaXN0ZW5lclRlc3Q7Ci1jbGFzcyBUZXN0UmVz
dWx0QWNjZXNzb3I7Ci1jbGFzcyBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3NvcjsKLWNsYXNzIFRl
c3RFdmVudFJlcGVhdGVyOwotY2xhc3MgVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3RIZWxwZXI7
Ci1jbGFzcyBXaW5kb3dzRGVhdGhUZXN0OwotY2xhc3MgVW5pdFRlc3RJbXBsKiBHZXRVbml0VGVz
dEltcGwoKTsKLXZvaWQgUmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKFRlc3RQYXJ0UmVz
dWx0OjpUeXBlIHJlc3VsdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpOwotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJu
YWwKLQotLy8gVGhlIGZyaWVuZCByZWxhdGlvbnNoaXAgb2Ygc29tZSBvZiB0aGVzZSBjbGFzc2Vz
IGlzIGN5Y2xpYy4KLS8vIElmIHdlIGRvbid0IGZvcndhcmQgZGVjbGFyZSB0aGVtIHRoZSBjb21w
aWxlciBtaWdodCBjb25mdXNlIHRoZSBjbGFzc2VzCi0vLyBpbiBmcmllbmRzaGlwIGNsYXVzZXMg
d2l0aCBzYW1lIG5hbWVkIGNsYXNzZXMgb24gdGhlIHNjb3BlLgotY2xhc3MgVGVzdDsKLWNsYXNz
IFRlc3RDYXNlOwotY2xhc3MgVGVzdEluZm87Ci1jbGFzcyBVbml0VGVzdDsKLQotLy8gQSBjbGFz
cyBmb3IgaW5kaWNhdGluZyB3aGV0aGVyIGFuIGFzc2VydGlvbiB3YXMgc3VjY2Vzc2Z1bC4gIFdo
ZW4KLS8vIHRoZSBhc3NlcnRpb24gd2Fzbid0IHN1Y2Nlc3NmdWwsIHRoZSBBc3NlcnRpb25SZXN1
bHQgb2JqZWN0Ci0vLyByZW1lbWJlcnMgYSBub24tZW1wdHkgbWVzc2FnZSB0aGF0IGRlc2NyaWJl
cyBob3cgaXQgZmFpbGVkLgotLy8KLS8vIFRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGlzIGNs
YXNzLCB1c2Ugb25lIG9mIHRoZSBmYWN0b3J5IGZ1bmN0aW9ucwotLy8gKEFzc2VydGlvblN1Y2Nl
c3MoKSBhbmQgQXNzZXJ0aW9uRmFpbHVyZSgpKS4KLS8vCi0vLyBUaGlzIGNsYXNzIGlzIHVzZWZ1
bCBmb3IgdHdvIHB1cnBvc2VzOgotLy8gICAxLiBEZWZpbmluZyBwcmVkaWNhdGUgZnVuY3Rpb25z
IHRvIGJlIHVzZWQgd2l0aCBCb29sZWFuIHRlc3QgYXNzZXJ0aW9ucwotLy8gICAgICBFWFBFQ1Rf
VFJVRS9FWFBFQ1RfRkFMU0UgYW5kIHRoZWlyIEFTU0VSVF8gY291bnRlcnBhcnRzCi0vLyAgIDIu
IERlZmluaW5nIHByZWRpY2F0ZS1mb3JtYXQgZnVuY3Rpb25zIHRvIGJlCi0vLyAgICAgIHVzZWQg
d2l0aCBwcmVkaWNhdGUgYXNzZXJ0aW9ucyAoQVNTRVJUX1BSRURfRk9STUFUKiwgZXRjKS4KLS8v
Ci0vLyBGb3IgZXhhbXBsZSwgaWYgeW91IGRlZmluZSBJc0V2ZW4gcHJlZGljYXRlOgotLy8KLS8v
ICAgdGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IElzRXZlbihpbnQgbikgewotLy8gICAgIGlmICgo
biAlIDIpID09IDApCi0vLyAgICAgICByZXR1cm4gdGVzdGluZzo6QXNzZXJ0aW9uU3VjY2Vzcygp
OwotLy8gICAgIGVsc2UKLS8vICAgICAgIHJldHVybiB0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJl
KCkgPDwgbiA8PCAiIGlzIG9kZCI7Ci0vLyAgIH0KLS8vCi0vLyBUaGVuIHRoZSBmYWlsZWQgZXhw
ZWN0YXRpb24gRVhQRUNUX1RSVUUoSXNFdmVuKEZpYig1KSkpCi0vLyB3aWxsIHByaW50IHRoZSBt
ZXNzYWdlCi0vLwotLy8gICBWYWx1ZSBvZjogSXNFdmVuKEZpYig1KSkKLS8vICAgICBBY3R1YWw6
IGZhbHNlICg1IGlzIG9kZCkKLS8vICAgRXhwZWN0ZWQ6IHRydWUKLS8vCi0vLyBpbnN0ZWFkIG9m
IGEgbW9yZSBvcGFxdWUKLS8vCi0vLyAgIFZhbHVlIG9mOiBJc0V2ZW4oRmliKDUpKQotLy8gICAg
IEFjdHVhbDogZmFsc2UKLS8vICAgRXhwZWN0ZWQ6IHRydWUKLS8vCi0vLyBpbiBjYXNlIElzRXZl
biBpcyBhIHNpbXBsZSBCb29sZWFuIHByZWRpY2F0ZS4KLS8vCi0vLyBJZiB5b3UgZXhwZWN0IHlv
dXIgcHJlZGljYXRlIHRvIGJlIHJldXNlZCBhbmQgd2FudCB0byBzdXBwb3J0IGluZm9ybWF0aXZl
Ci0vLyBtZXNzYWdlcyBpbiBFWFBFQ1RfRkFMU0UgYW5kIEFTU0VSVF9GQUxTRSAobmVnYXRpdmUg
YXNzZXJ0aW9ucyBzaG93IHVwCi0vLyBhYm91dCBoYWxmIGFzIG9mdGVuIGFzIHBvc2l0aXZlIG9u
ZXMgaW4gb3VyIHRlc3RzKSwgc3VwcGx5IG1lc3NhZ2VzIGZvcgotLy8gYm90aCBzdWNjZXNzIGFu
ZCBmYWlsdXJlIGNhc2VzOgotLy8KLS8vICAgdGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IElzRXZl
bihpbnQgbikgewotLy8gICAgIGlmICgobiAlIDIpID09IDApCi0vLyAgICAgICByZXR1cm4gdGVz
dGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpIDw8IG4gPDwgIiBpcyBldmVuIjsKLS8vICAgICBlbHNl
Ci0vLyAgICAgICByZXR1cm4gdGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG4gPDwgIiBp
cyBvZGQiOwotLy8gICB9Ci0vLwotLy8gVGhlbiBhIHN0YXRlbWVudCBFWFBFQ1RfRkFMU0UoSXNF
dmVuKEZpYig2KSkpIHdpbGwgcHJpbnQKLS8vCi0vLyAgIFZhbHVlIG9mOiBJc0V2ZW4oRmliKDYp
KQotLy8gICAgIEFjdHVhbDogdHJ1ZSAoOCBpcyBldmVuKQotLy8gICBFeHBlY3RlZDogZmFsc2UK
LS8vCi0vLyBOQjogUHJlZGljYXRlcyB0aGF0IHN1cHBvcnQgbmVnYXRpdmUgQm9vbGVhbiBhc3Nl
cnRpb25zIGhhdmUgcmVkdWNlZAotLy8gcGVyZm9ybWFuY2UgaW4gcG9zaXRpdmUgb25lcyBzbyBi
ZSBjYXJlZnVsIG5vdCB0byB1c2UgdGhlbSBpbiB0ZXN0cwotLy8gdGhhdCBoYXZlIGxvdHMgKHRl
bnMgb2YgdGhvdXNhbmRzKSBvZiBwb3NpdGl2ZSBCb29sZWFuIGFzc2VydGlvbnMuCi0vLwotLy8g
VG8gdXNlIHRoaXMgY2xhc3Mgd2l0aCBFWFBFQ1RfUFJFRF9GT1JNQVQgYXNzZXJ0aW9ucyBzdWNo
IGFzOgotLy8KLS8vICAgLy8gVmVyaWZpZXMgdGhhdCBGb28oKSByZXR1cm5zIGFuIGV2ZW4gbnVt
YmVyLgotLy8gICBFWFBFQ1RfUFJFRF9GT1JNQVQxKElzRXZlbiwgRm9vKCkpOwotLy8KLS8vIHlv
dSBuZWVkIHRvIGRlZmluZToKLS8vCi0vLyAgIHRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBJc0V2
ZW4oY29uc3QgY2hhciogZXhwciwgaW50IG4pIHsKLS8vICAgICBpZiAoKG4gJSAyKSA9PSAwKQot
Ly8gICAgICAgcmV0dXJuIHRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsKLS8vICAgICBlbHNl
Ci0vLyAgICAgICByZXR1cm4gdGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpCi0vLyAgICAgICAg
IDw8ICJFeHBlY3RlZDogIiA8PCBleHByIDw8ICIgaXMgZXZlblxuICBBY3R1YWw6IGl0J3MgIiA8
PCBuOwotLy8gICB9Ci0vLwotLy8gSWYgRm9vKCkgcmV0dXJucyA1LCB5b3Ugd2lsbCBzZWUgdGhl
IGZvbGxvd2luZyBtZXNzYWdlOgotLy8KLS8vICAgRXhwZWN0ZWQ6IEZvbygpIGlzIGV2ZW4KLS8v
ICAgICBBY3R1YWw6IGl0J3MgNQotLy8KLWNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0
IHsKLSBwdWJsaWM6Ci0gIC8vIENvcHkgY29uc3RydWN0b3IuCi0gIC8vIFVzZWQgaW4gRVhQRUNU
X1RSVUUvRkFMU0UoYXNzZXJ0aW9uX3Jlc3VsdCkuCi0gIEFzc2VydGlvblJlc3VsdChjb25zdCBB
c3NlcnRpb25SZXN1bHQmIG90aGVyKTsKLQotI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0Nf
VkVSIDwgMTkxMAotICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0ODAwIC8qIGZv
cmNpbmcgdmFsdWUgdG8gYm9vbCAqLykKLSNlbmRpZgotCi0gIC8vIFVzZWQgaW4gdGhlIEVYUEVD
VF9UUlVFL0ZBTFNFKGJvb2xfZXhwcmVzc2lvbikuCi0gIC8vCi0gIC8vIFQgbXVzdCBiZSBjb250
ZXh0dWFsbHkgY29udmVydGlibGUgdG8gYm9vbC4KLSAgLy8KLSAgLy8gVGhlIHNlY29uZCBwYXJh
bWV0ZXIgcHJldmVudHMgdGhpcyBvdmVybG9hZCBmcm9tIGJlaW5nIGNvbnNpZGVyZWQgaWYKLSAg
Ly8gdGhlIGFyZ3VtZW50IGlzIGltcGxpY2l0bHkgY29udmVydGlibGUgdG8gQXNzZXJ0aW9uUmVz
dWx0LiBJbiB0aGF0IGNhc2UKLSAgLy8gd2Ugd2FudCBBc3NlcnRpb25SZXN1bHQncyBjb3B5IGNv
bnN0cnVjdG9yIHRvIGJlIHVzZWQuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBleHBsaWNp
dCBBc3NlcnRpb25SZXN1bHQoCi0gICAgICBjb25zdCBUJiBzdWNjZXNzLAotICAgICAgdHlwZW5h
bWUgaW50ZXJuYWw6OkVuYWJsZUlmPAotICAgICAgICAgICFpbnRlcm5hbDo6SW1wbGljaXRseUNv
bnZlcnRpYmxlPFQsIEFzc2VydGlvblJlc3VsdD46OnZhbHVlPjo6dHlwZSoKLSAgICAgICAgICAv
KmVuYWJsZXIqLyA9IE5VTEwpCi0gICAgICA6IHN1Y2Nlc3NfKHN1Y2Nlc3MpIHt9Ci0KLSNpZiBk
ZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE5MTAKLSAgR1RFU1RfRElTQUJMRV9NU0Nf
V0FSTklOR1NfUE9QXygpCi0jZW5kaWYKLQotICAvLyBBc3NpZ25tZW50IG9wZXJhdG9yLgotICBB
c3NlcnRpb25SZXN1bHQmIG9wZXJhdG9yPShBc3NlcnRpb25SZXN1bHQgb3RoZXIpIHsKLSAgICBz
d2FwKG90aGVyKTsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRydWUg
aWZmIHRoZSBhc3NlcnRpb24gc3VjY2VlZGVkLgotICBvcGVyYXRvciBib29sKCkgY29uc3QgeyBy
ZXR1cm4gc3VjY2Vzc187IH0gIC8vIE5PTElOVAotCi0gIC8vIFJldHVybnMgdGhlIGFzc2VydGlv
bidzIG5lZ2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9GQUxTRS4KLSAgQXNzZXJ0aW9u
UmVzdWx0IG9wZXJhdG9yISgpIGNvbnN0OwotCi0gIC8vIFJldHVybnMgdGhlIHRleHQgc3RyZWFt
ZWQgaW50byB0aGlzIEFzc2VydGlvblJlc3VsdC4gVGVzdCBhc3NlcnRpb25zCi0gIC8vIHVzZSBp
dCB3aGVuIHRoZXkgZmFpbCAoaS5lLiwgdGhlIHByZWRpY2F0ZSdzIG91dGNvbWUgZG9lc24ndCBt
YXRjaCB0aGUKLSAgLy8gYXNzZXJ0aW9uJ3MgZXhwZWN0YXRpb24pLiBXaGVuIG5vdGhpbmcgaGFz
IGJlZW4gc3RyZWFtZWQgaW50byB0aGUKLSAgLy8gb2JqZWN0LCByZXR1cm5zIGFuIGVtcHR5IHN0
cmluZy4KLSAgY29uc3QgY2hhciogbWVzc2FnZSgpIGNvbnN0IHsKLSAgICByZXR1cm4gbWVzc2Fn
ZV8uZ2V0KCkgIT0gTlVMTCA/ICBtZXNzYWdlXy0+Y19zdHIoKSA6ICIiOwotICB9Ci0gIC8vIFRP
RE8odmxhZGxAZ29vZ2xlLmNvbSk6IFJlbW92ZSB0aGlzIGFmdGVyIG1ha2luZyBzdXJlIG5vIGNs
aWVudHMgdXNlIGl0LgotICAvLyBEZXByZWNhdGVkOyBwbGVhc2UgdXNlIG1lc3NhZ2UoKSBpbnN0
ZWFkLgotICBjb25zdCBjaGFyKiBmYWlsdXJlX21lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtZXNz
YWdlKCk7IH0KLQotICAvLyBTdHJlYW1zIGEgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZSBpbnRvIHRo
aXMgb2JqZWN0LgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gQXNzZXJ0aW9uUmVzdWx0JiBvcGVy
YXRvcjw8KGNvbnN0IFQmIHZhbHVlKSB7Ci0gICAgQXBwZW5kTWVzc2FnZShNZXNzYWdlKCkgPDwg
dmFsdWUpOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIC8vIEFsbG93cyBzdHJlYW1pbmcg
YmFzaWMgb3V0cHV0IG1hbmlwdWxhdG9ycyBzdWNoIGFzIGVuZGwgb3IgZmx1c2ggaW50bwotICAv
LyB0aGlzIG9iamVjdC4KLSAgQXNzZXJ0aW9uUmVzdWx0JiBvcGVyYXRvcjw8KAotICAgICAgOjpz
dGQ6Om9zdHJlYW0mICgqYmFzaWNfbWFuaXB1bGF0b3IpKDo6c3RkOjpvc3RyZWFtJiBzdHJlYW0p
KSB7Ci0gICAgQXBwZW5kTWVzc2FnZShNZXNzYWdlKCkgPDwgYmFzaWNfbWFuaXB1bGF0b3IpOwot
ICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gQXBwZW5kcyB0aGUgY29u
dGVudHMgb2YgbWVzc2FnZSB0byBtZXNzYWdlXy4KLSAgdm9pZCBBcHBlbmRNZXNzYWdlKGNvbnN0
IE1lc3NhZ2UmIGFfbWVzc2FnZSkgewotICAgIGlmIChtZXNzYWdlXy5nZXQoKSA9PSBOVUxMKQot
ICAgICAgbWVzc2FnZV8ucmVzZXQobmV3IDo6c3RkOjpzdHJpbmcpOwotICAgIG1lc3NhZ2VfLT5h
cHBlbmQoYV9tZXNzYWdlLkdldFN0cmluZygpLmNfc3RyKCkpOwotICB9Ci0KLSAgLy8gU3dhcCB0
aGUgY29udGVudHMgb2YgdGhpcyBBc3NlcnRpb25SZXN1bHQgd2l0aCBvdGhlci4KLSAgdm9pZCBz
d2FwKEFzc2VydGlvblJlc3VsdCYgb3RoZXIpOwotCi0gIC8vIFN0b3JlcyByZXN1bHQgb2YgdGhl
IGFzc2VydGlvbiBwcmVkaWNhdGUuCi0gIGJvb2wgc3VjY2Vzc187Ci0gIC8vIFN0b3JlcyB0aGUg
bWVzc2FnZSBkZXNjcmliaW5nIHRoZSBjb25kaXRpb24gaW4gY2FzZSB0aGUgZXhwZWN0YXRpb24K
LSAgLy8gY29uc3RydWN0IGlzIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgcHJlZGljYXRlJ3Mgb3V0
Y29tZS4KLSAgLy8gUmVmZXJlbmNlZCB2aWEgYSBwb2ludGVyIHRvIGF2b2lkIHRha2luZyB0b28g
bXVjaCBzdGFjayBmcmFtZSBzcGFjZQotICAvLyB3aXRoIHRlc3QgYXNzZXJ0aW9ucy4KLSAgaW50
ZXJuYWw6OnNjb3BlZF9wdHI8IDo6c3RkOjpzdHJpbmc+IG1lc3NhZ2VfOwotfTsKLQotLy8gTWFr
ZXMgYSBzdWNjZXNzZnVsIGFzc2VydGlvbiByZXN1bHQuCi1HVEVTVF9BUElfIEFzc2VydGlvblJl
c3VsdCBBc3NlcnRpb25TdWNjZXNzKCk7Ci0KLS8vIE1ha2VzIGEgZmFpbGVkIGFzc2VydGlvbiBy
ZXN1bHQuCi1HVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCBBc3NlcnRpb25GYWlsdXJlKCk7Ci0K
LS8vIE1ha2VzIGEgZmFpbGVkIGFzc2VydGlvbiByZXN1bHQgd2l0aCB0aGUgZ2l2ZW4gZmFpbHVy
ZSBtZXNzYWdlLgotLy8gRGVwcmVjYXRlZDsgdXNlIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBtc2cu
Ci1HVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCBBc3NlcnRpb25GYWlsdXJlKGNvbnN0IE1lc3Nh
Z2UmIG1zZyk7Ci0KLS8vIFRoZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGFsbCB0ZXN0cyBpbmhlcml0
IGZyb20uCi0vLwotLy8gSW4gR29vZ2xlIFRlc3QsIGEgdW5pdCB0ZXN0IHByb2dyYW0gY29udGFp
bnMgb25lIG9yIG1hbnkgVGVzdENhc2VzLCBhbmQKLS8vIGVhY2ggVGVzdENhc2UgY29udGFpbnMg
b25lIG9yIG1hbnkgVGVzdHMuCi0vLwotLy8gV2hlbiB5b3UgZGVmaW5lIGEgdGVzdCB1c2luZyB0
aGUgVEVTVCBtYWNybywgeW91IGRvbid0IG5lZWQgdG8KLS8vIGV4cGxpY2l0bHkgZGVyaXZlIGZy
b20gVGVzdCAtIHRoZSBURVNUIG1hY3JvIGF1dG9tYXRpY2FsbHkgZG9lcwotLy8gdGhpcyBmb3Ig
eW91LgotLy8KLS8vIFRoZSBvbmx5IHRpbWUgeW91IGRlcml2ZSBmcm9tIFRlc3QgaXMgd2hlbiBk
ZWZpbmluZyBhIHRlc3QgZml4dHVyZQotLy8gdG8gYmUgdXNlZCBhIFRFU1RfRi4gIEZvciBleGFt
cGxlOgotLy8KLS8vICAgY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLS8v
ICAgIHByb3RlY3RlZDoKLS8vICAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyAuLi4gfQotLy8g
ICAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IC4uLiB9Ci0vLyAgICAgLi4uCi0vLyAgIH07
Ci0vLwotLy8gICBURVNUX0YoRm9vVGVzdCwgQmFyKSB7IC4uLiB9Ci0vLyAgIFRFU1RfRihGb29U
ZXN0LCBCYXopIHsgLi4uIH0KLS8vCi0vLyBUZXN0IGlzIG5vdCBjb3B5YWJsZS4KLWNsYXNzIEdU
RVNUX0FQSV8gVGVzdCB7Ci0gcHVibGljOgotICBmcmllbmQgY2xhc3MgVGVzdEluZm87Ci0KLSAg
Ly8gRGVmaW5lcyB0eXBlcyBmb3IgcG9pbnRlcnMgdG8gZnVuY3Rpb25zIHRoYXQgc2V0IHVwIGFu
ZCB0ZWFyIGRvd24KLSAgLy8gYSB0ZXN0IGNhc2UuCi0gIHR5cGVkZWYgaW50ZXJuYWw6OlNldFVw
VGVzdENhc2VGdW5jIFNldFVwVGVzdENhc2VGdW5jOwotICB0eXBlZGVmIGludGVybmFsOjpUZWFy
RG93blRlc3RDYXNlRnVuYyBUZWFyRG93blRlc3RDYXNlRnVuYzsKLQotICAvLyBUaGUgZCd0b3Ig
aXMgdmlydHVhbCBhcyB3ZSBpbnRlbmQgdG8gaW5oZXJpdCBmcm9tIFRlc3QuCi0gIHZpcnR1YWwg
flRlc3QoKTsKLQotICAvLyBTZXRzIHVwIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGlu
IHRoaXMgdGVzdCBjYXNlLgotICAvLwotICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpT
ZXRVcFRlc3RDYXNlKCkgYmVmb3JlIHJ1bm5pbmcgdGhlIGZpcnN0Ci0gIC8vIHRlc3QgaW4gdGVz
dCBjYXNlIEZvby4gIEhlbmNlIGEgc3ViLWNsYXNzIGNhbiBkZWZpbmUgaXRzIG93bgotICAvLyBT
ZXRVcFRlc3RDYXNlKCkgbWV0aG9kIHRvIHNoYWRvdyB0aGUgb25lIGRlZmluZWQgaW4gdGhlIHN1
cGVyCi0gIC8vIGNsYXNzLgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkge30KLQotICAv
LyBUZWFycyBkb3duIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBj
YXNlLgotICAvLwotICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpUZWFyRG93blRlc3RD
YXNlKCkgYWZ0ZXIgcnVubmluZyB0aGUgbGFzdAotICAvLyB0ZXN0IGluIHRlc3QgY2FzZSBGb28u
ICBIZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KLSAgLy8gVGVhckRvd25UZXN0
Q2FzZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgotICAv
LyBjbGFzcy4KLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHt9Ci0KLSAgLy8gUmV0
dXJucyB0cnVlIGlmZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIGZhdGFsIGZhaWx1cmUuCi0gIHN0
YXRpYyBib29sIEhhc0ZhdGFsRmFpbHVyZSgpOwotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhl
IGN1cnJlbnQgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4KLSAgc3RhdGljIGJvb2wgSGFz
Tm9uZmF0YWxGYWlsdXJlKCk7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgY3VycmVudCB0
ZXN0IGhhcyBhIChlaXRoZXIgZmF0YWwgb3IKLSAgLy8gbm9uLWZhdGFsKSBmYWlsdXJlLgotICBz
dGF0aWMgYm9vbCBIYXNGYWlsdXJlKCkgeyByZXR1cm4gSGFzRmF0YWxGYWlsdXJlKCkgfHwgSGFz
Tm9uZmF0YWxGYWlsdXJlKCk7IH0KLQotICAvLyBMb2dzIGEgcHJvcGVydHkgZm9yIHRoZSBjdXJy
ZW50IHRlc3QsIHRlc3QgY2FzZSwgb3IgZm9yIHRoZSBlbnRpcmUKLSAgLy8gaW52b2NhdGlvbiBv
ZiB0aGUgdGVzdCBwcm9ncmFtIHdoZW4gdXNlZCBvdXRzaWRlIG9mIHRoZSBjb250ZXh0IG9mIGEK
LSAgLy8gdGVzdCBjYXNlLiAgT25seSB0aGUgbGFzdCB2YWx1ZSBmb3IgYSBnaXZlbiBrZXkgaXMg
cmVtZW1iZXJlZC4gIFRoZXNlCi0gIC8vIGFyZSBwdWJsaWMgc3RhdGljIHNvIHRoZXkgY2FuIGJl
IGNhbGxlZCBmcm9tIHV0aWxpdHkgZnVuY3Rpb25zIHRoYXQgYXJlCi0gIC8vIG5vdCBtZW1iZXJz
IG9mIHRoZSB0ZXN0IGZpeHR1cmUuICBDYWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGR1cmlu
ZwotICAvLyBsaWZlc3BhbiBvZiB0aGUgdGVzdCAoZnJvbSB0aGUgbW9tZW50IGl0cyBjb25zdHJ1
Y3RvciBzdGFydHMgdG8gdGhlCi0gIC8vIG1vbWVudCBpdHMgZGVzdHJ1Y3RvciBmaW5pc2hlcykg
d2lsbCBiZSBvdXRwdXQgaW4gWE1MIGFzIGF0dHJpYnV0ZXMgb2YKLSAgLy8gdGhlIDx0ZXN0Y2Fz
ZT4gZWxlbWVudC4gIFByb3BlcnRpZXMgcmVjb3JkZWQgZnJvbSBmaXh0dXJlJ3MKLSAgLy8gU2V0
VXBUZXN0Q2FzZSBvciBUZWFyRG93blRlc3RDYXNlIGFyZSBsb2dnZWQgYXMgYXR0cmlidXRlcyBv
ZiB0aGUKLSAgLy8gY29ycmVzcG9uZGluZyA8dGVzdHN1aXRlPiBlbGVtZW50LiAgQ2FsbHMgdG8g
UmVjb3JkUHJvcGVydHkgbWFkZSBpbiB0aGUKLSAgLy8gZ2xvYmFsIGNvbnRleHQgKGJlZm9yZSBv
ciBhZnRlciBpbnZvY2F0aW9uIG9mIFJVTl9BTExfVEVTVFMgYW5kIGZyb20KLSAgLy8gU2V0VXAv
VGVhckRvd24gbWV0aG9kIG9mIEVudmlyb25tZW50IG9iamVjdHMgcmVnaXN0ZXJlZCB3aXRoIEdv
b2dsZQotICAvLyBUZXN0KSB3aWxsIGJlIG91dHB1dCBhcyBhdHRyaWJ1dGVzIG9mIHRoZSA8dGVz
dHN1aXRlcz4gZWxlbWVudC4KLSAgc3RhdGljIHZvaWQgUmVjb3JkUHJvcGVydHkoY29uc3Qgc3Rk
OjpzdHJpbmcmIGtleSwgY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKLSAgc3RhdGljIHZvaWQg
UmVjb3JkUHJvcGVydHkoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSwgaW50IHZhbHVlKTsKLQotIHBy
b3RlY3RlZDoKLSAgLy8gQ3JlYXRlcyBhIFRlc3Qgb2JqZWN0LgotICBUZXN0KCk7Ci0KLSAgLy8g
U2V0cyB1cCB0aGUgdGVzdCBmaXh0dXJlLgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKTsKLQotICAv
LyBUZWFycyBkb3duIHRoZSB0ZXN0IGZpeHR1cmUuCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigp
OwotCi0gcHJpdmF0ZToKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgY3VycmVudCB0ZXN0IGhh
cyB0aGUgc2FtZSBmaXh0dXJlIGNsYXNzIGFzCi0gIC8vIHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBj
dXJyZW50IHRlc3QgY2FzZS4KLSAgc3RhdGljIGJvb2wgSGFzU2FtZUZpeHR1cmVDbGFzcygpOwot
Ci0gIC8vIFJ1bnMgdGhlIHRlc3QgYWZ0ZXIgdGhlIHRlc3QgZml4dHVyZSBoYXMgYmVlbiBzZXQg
dXAuCi0gIC8vCi0gIC8vIEEgc3ViLWNsYXNzIG11c3QgaW1wbGVtZW50IHRoaXMgdG8gZGVmaW5l
IHRoZSB0ZXN0IGxvZ2ljLgotICAvLwotICAvLyBETyBOT1QgT1ZFUlJJREUgVEhJUyBGVU5DVElP
TiBESVJFQ1RMWSBJTiBBIFVTRVIgUFJPR1JBTS4KLSAgLy8gSW5zdGVhZCwgdXNlIHRoZSBURVNU
IG9yIFRFU1RfRiBtYWNyby4KLSAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCkgPSAwOwotCi0gIC8v
IFNldHMgdXAsIGV4ZWN1dGVzLCBhbmQgdGVhcnMgZG93biB0aGUgdGVzdC4KLSAgdm9pZCBSdW4o
KTsKLQotICAvLyBEZWxldGVzIHNlbGYuICBXZSBkZWxpYmVyYXRlbHkgcGljayBhbiB1bnVzdWFs
IG5hbWUgZm9yIHRoaXMKLSAgLy8gaW50ZXJuYWwgbWV0aG9kIHRvIGF2b2lkIGNsYXNoaW5nIHdp
dGggbmFtZXMgdXNlZCBpbiB1c2VyIFRFU1RzLgotICB2b2lkIERlbGV0ZVNlbGZfKCkgeyBkZWxl
dGUgdGhpczsgfQotCi0gIGNvbnN0IGludGVybmFsOjpzY29wZWRfcHRyPCBHVEVTVF9GTEFHX1NB
VkVSXyA+IGd0ZXN0X2ZsYWdfc2F2ZXJfOwotCi0gIC8vIE9mdGVuIGEgdXNlciBtaXNzcGVsbHMg
U2V0VXAoKSBhcyBTZXR1cCgpIGFuZCBzcGVuZHMgYSBsb25nIHRpbWUKLSAgLy8gd29uZGVyaW5n
IHdoeSBpdCBpcyBuZXZlciBjYWxsZWQgYnkgR29vZ2xlIFRlc3QuICBUaGUgZGVjbGFyYXRpb24g
b2YKLSAgLy8gdGhlIGZvbGxvd2luZyBtZXRob2QgaXMgc29sZWx5IGZvciBjYXRjaGluZyBzdWNo
IGFuIGVycm9yIGF0Ci0gIC8vIGNvbXBpbGUgdGltZToKLSAgLy8KLSAgLy8gICAtIFRoZSByZXR1
cm4gdHlwZSBpcyBkZWxpYmVyYXRlbHkgY2hvc2VuIHRvIGJlIG5vdCB2b2lkLCBzbyBpdAotICAv
LyAgIHdpbGwgYmUgYSBjb25mbGljdCBpZiB2b2lkIFNldHVwKCkgaXMgZGVjbGFyZWQgaW4gdGhl
IHVzZXIncwotICAvLyAgIHRlc3QgZml4dHVyZS4KLSAgLy8KLSAgLy8gICAtIFRoaXMgbWV0aG9k
IGlzIHByaXZhdGUsIHNvIGl0IHdpbGwgYmUgYW5vdGhlciBjb21waWxlciBlcnJvcgotICAvLyAg
IGlmIHRoZSBtZXRob2QgaXMgY2FsbGVkIGZyb20gdGhlIHVzZXIncyB0ZXN0IGZpeHR1cmUuCi0g
IC8vCi0gIC8vIERPIE5PVCBPVkVSUklERSBUSElTIEZVTkNUSU9OLgotICAvLwotICAvLyBJZiB5
b3Ugc2VlIGFuIGVycm9yIGFib3V0IG92ZXJyaWRpbmcgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBv
cgotICAvLyBhYm91dCBpdCBiZWluZyBwcml2YXRlLCB5b3UgaGF2ZSBtaXMtc3BlbGxlZCBTZXRV
cCgpIGFzIFNldHVwKCkuCi0gIHN0cnVjdCBTZXR1cF9zaG91bGRfYmVfc3BlbGxlZF9TZXRVcCB7
fTsKLSAgdmlydHVhbCBTZXR1cF9zaG91bGRfYmVfc3BlbGxlZF9TZXRVcCogU2V0dXAoKSB7IHJl
dHVybiBOVUxMOyB9Ci0KLSAgLy8gV2UgZGlzYWxsb3cgY29weWluZyBUZXN0cy4KLSAgR1RFU1Rf
RElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUZXN0KTsKLX07Ci0KLXR5cGVkZWYgaW50ZXJuYWw6
OlRpbWVJbk1pbGxpcyBUaW1lSW5NaWxsaXM7Ci0KLS8vIEEgY29weWFibGUgb2JqZWN0IHJlcHJl
c2VudGluZyBhIHVzZXIgc3BlY2lmaWVkIHRlc3QgcHJvcGVydHkgd2hpY2ggY2FuIGJlCi0vLyBv
dXRwdXQgYXMgYSBrZXkvdmFsdWUgc3RyaW5nIHBhaXIuCi0vLwotLy8gRG9uJ3QgaW5oZXJpdCBm
cm9tIFRlc3RQcm9wZXJ0eSBhcyBpdHMgZGVzdHJ1Y3RvciBpcyBub3QgdmlydHVhbC4KLWNsYXNz
IFRlc3RQcm9wZXJ0eSB7Ci0gcHVibGljOgotICAvLyBDJ3Rvci4gIFRlc3RQcm9wZXJ0eSBkb2Vz
IE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KLSAgLy8gQWx3YXlzIHVzZSB0aGlzIGNv
bnN0cnVjdG9yICh3aXRoIHBhcmFtZXRlcnMpIHRvIGNyZWF0ZSBhCi0gIC8vIFRlc3RQcm9wZXJ0
eSBvYmplY3QuCi0gIFRlc3RQcm9wZXJ0eShjb25zdCBzdGQ6OnN0cmluZyYgYV9rZXksIGNvbnN0
IHN0ZDo6c3RyaW5nJiBhX3ZhbHVlKSA6Ci0gICAga2V5XyhhX2tleSksIHZhbHVlXyhhX3ZhbHVl
KSB7Ci0gIH0KLQotICAvLyBHZXRzIHRoZSB1c2VyIHN1cHBsaWVkIGtleS4KLSAgY29uc3QgY2hh
cioga2V5KCkgY29uc3QgewotICAgIHJldHVybiBrZXlfLmNfc3RyKCk7Ci0gIH0KLQotICAvLyBH
ZXRzIHRoZSB1c2VyIHN1cHBsaWVkIHZhbHVlLgotICBjb25zdCBjaGFyKiB2YWx1ZSgpIGNvbnN0
IHsKLSAgICByZXR1cm4gdmFsdWVfLmNfc3RyKCk7Ci0gIH0KLQotICAvLyBTZXRzIGEgbmV3IHZh
bHVlLCBvdmVycmlkaW5nIHRoZSBvbmUgc3VwcGxpZWQgaW4gdGhlIGNvbnN0cnVjdG9yLgotICB2
b2lkIFNldFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuZXdfdmFsdWUpIHsKLSAgICB2YWx1ZV8g
PSBuZXdfdmFsdWU7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIFRoZSBrZXkgc3VwcGxpZWQgYnkg
dGhlIHVzZXIuCi0gIHN0ZDo6c3RyaW5nIGtleV87Ci0gIC8vIFRoZSB2YWx1ZSBzdXBwbGllZCBi
eSB0aGUgdXNlci4KLSAgc3RkOjpzdHJpbmcgdmFsdWVfOwotfTsKLQotLy8gVGhlIHJlc3VsdCBv
ZiBhIHNpbmdsZSBUZXN0LiAgVGhpcyBpbmNsdWRlcyBhIGxpc3Qgb2YKLS8vIFRlc3RQYXJ0UmVz
dWx0cywgYSBsaXN0IG9mIFRlc3RQcm9wZXJ0aWVzLCBhIGNvdW50IG9mIGhvdyBtYW55Ci0vLyBk
ZWF0aCB0ZXN0cyB0aGVyZSBhcmUgaW4gdGhlIFRlc3QsIGFuZCBob3cgbXVjaCB0aW1lIGl0IHRv
b2sgdG8gcnVuCi0vLyB0aGUgVGVzdC4KLS8vCi0vLyBUZXN0UmVzdWx0IGlzIG5vdCBjb3B5YWJs
ZS4KLWNsYXNzIEdURVNUX0FQSV8gVGVzdFJlc3VsdCB7Ci0gcHVibGljOgotICAvLyBDcmVhdGVz
IGFuIGVtcHR5IFRlc3RSZXN1bHQuCi0gIFRlc3RSZXN1bHQoKTsKLQotICAvLyBEJ3Rvci4gIERv
IG5vdCBpbmhlcml0IGZyb20gVGVzdFJlc3VsdC4KLSAgflRlc3RSZXN1bHQoKTsKLQotICAvLyBH
ZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3QgcGFydHMuICBUaGlzIGlzIHRoZSBzdW0gb2YgdGhl
IG51bWJlcgotICAvLyBvZiBzdWNjZXNzZnVsIHRlc3QgcGFydHMgYW5kIHRoZSBudW1iZXIgb2Yg
ZmFpbGVkIHRlc3QgcGFydHMuCi0gIGludCB0b3RhbF9wYXJ0X2NvdW50KCkgY29uc3Q7Ci0KLSAg
Ly8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSB0ZXN0IHByb3BlcnRpZXMuCi0gIGludCB0ZXN0
X3Byb3BlcnR5X2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVz
dCBwYXNzZWQgKGkuZS4gbm8gdGVzdCBwYXJ0IGZhaWxlZCkuCi0gIGJvb2wgUGFzc2VkKCkgY29u
c3QgeyByZXR1cm4gIUZhaWxlZCgpOyB9Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVz
dCBmYWlsZWQuCi0gIGJvb2wgRmFpbGVkKCkgY29uc3Q7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlm
ZiB0aGUgdGVzdCBmYXRhbGx5IGZhaWxlZC4KLSAgYm9vbCBIYXNGYXRhbEZhaWx1cmUoKSBjb25z
dDsKLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGhhcyBhIG5vbi1mYXRhbCBmYWls
dXJlLgotICBib29sIEhhc05vbmZhdGFsRmFpbHVyZSgpIGNvbnN0OwotCi0gIC8vIFJldHVybnMg
dGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlzZWNvbmRzLgotICBUaW1lSW5NaWxsaXMgZWxhcHNl
ZF90aW1lKCkgY29uc3QgeyByZXR1cm4gZWxhcHNlZF90aW1lXzsgfQotCi0gIC8vIFJldHVybnMg
dGhlIGktdGggdGVzdCBwYXJ0IHJlc3VsdCBhbW9uZyBhbGwgdGhlIHJlc3VsdHMuIGkgY2FuIHJh
bmdlCi0gIC8vIGZyb20gMCB0byB0ZXN0X3Byb3BlcnR5X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5v
dCBpbiB0aGF0IHJhbmdlLCBhYm9ydHMKLSAgLy8gdGhlIHByb2dyYW0uCi0gIGNvbnN0IFRlc3RQ
YXJ0UmVzdWx0JiBHZXRUZXN0UGFydFJlc3VsdChpbnQgaSkgY29uc3Q7Ci0KLSAgLy8gUmV0dXJu
cyB0aGUgaS10aCB0ZXN0IHByb3BlcnR5LiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdGVz
dF9wcm9wZXJ0eV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgYWJvcnRz
IHRoZQotICAvLyBwcm9ncmFtLgotICBjb25zdCBUZXN0UHJvcGVydHkmIEdldFRlc3RQcm9wZXJ0
eShpbnQgaSkgY29uc3Q7Ci0KLSBwcml2YXRlOgotICBmcmllbmQgY2xhc3MgVGVzdEluZm87Ci0g
IGZyaWVuZCBjbGFzcyBUZXN0Q2FzZTsKLSAgZnJpZW5kIGNsYXNzIFVuaXRUZXN0OwotICBmcmll
bmQgY2xhc3MgaW50ZXJuYWw6OkRlZmF1bHRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyOwot
ICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OkV4ZWNEZWF0aFRlc3Q7Ci0gIGZyaWVuZCBjbGFzcyBp
bnRlcm5hbDo6VGVzdFJlc3VsdEFjY2Vzc29yOwotICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlVu
aXRUZXN0SW1wbDsKLSAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpXaW5kb3dzRGVhdGhUZXN0Owot
Ci0gIC8vIEdldHMgdGhlIHZlY3RvciBvZiBUZXN0UGFydFJlc3VsdHMuCi0gIGNvbnN0IHN0ZDo6
dmVjdG9yPFRlc3RQYXJ0UmVzdWx0PiYgdGVzdF9wYXJ0X3Jlc3VsdHMoKSBjb25zdCB7Ci0gICAg
cmV0dXJuIHRlc3RfcGFydF9yZXN1bHRzXzsKLSAgfQotCi0gIC8vIEdldHMgdGhlIHZlY3RvciBv
ZiBUZXN0UHJvcGVydGllcy4KLSAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFByb3BlcnR5PiYgdGVz
dF9wcm9wZXJ0aWVzKCkgY29uc3QgewotICAgIHJldHVybiB0ZXN0X3Byb3BlcnRpZXNfOwotICB9
Ci0KLSAgLy8gU2V0cyB0aGUgZWxhcHNlZCB0aW1lLgotICB2b2lkIHNldF9lbGFwc2VkX3RpbWUo
VGltZUluTWlsbGlzIGVsYXBzZWQpIHsgZWxhcHNlZF90aW1lXyA9IGVsYXBzZWQ7IH0KLQotICAv
LyBBZGRzIGEgdGVzdCBwcm9wZXJ0eSB0byB0aGUgbGlzdC4gVGhlIHByb3BlcnR5IGlzIHZhbGlk
YXRlZCBhbmQgbWF5IGFkZAotICAvLyBhIG5vbi1mYXRhbCBmYWlsdXJlIGlmIGludmFsaWQgKGUu
Zy4sIGlmIGl0IGNvbmZsaWN0cyB3aXRoIHJlc2VydmVkCi0gIC8vIGtleSBuYW1lcykuIElmIGEg
cHJvcGVydHkgaXMgYWxyZWFkeSByZWNvcmRlZCBmb3IgdGhlIHNhbWUga2V5LCB0aGUKLSAgLy8g
dmFsdWUgd2lsbCBiZSB1cGRhdGVkLCByYXRoZXIgdGhhbiBzdG9yaW5nIG11bHRpcGxlIHZhbHVl
cyBmb3IgdGhlIHNhbWUKLSAgLy8ga2V5LiAgeG1sX2VsZW1lbnQgc3BlY2lmaWVzIHRoZSBlbGVt
ZW50IGZvciB3aGljaCB0aGUgcHJvcGVydHkgaXMgYmVpbmcKLSAgLy8gcmVjb3JkZWQgYW5kIGlz
IHVzZWQgZm9yIHZhbGlkYXRpb24uCi0gIHZvaWQgUmVjb3JkUHJvcGVydHkoY29uc3Qgc3RkOjpz
dHJpbmcmIHhtbF9lbGVtZW50LAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RQcm9w
ZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7Ci0KLSAgLy8gQWRkcyBhIGZhaWx1cmUgaWYgdGhlIGtleSBp
cyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBvZiBHb29nbGUgVGVzdAotICAvLyB0ZXN0Y2FzZSB0YWdz
LiAgUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wZXJ0eSBpcyB2YWxpZC4KLSAgLy8gVE9ETyhydXNz
cik6IFZhbGlkYXRlIGF0dHJpYnV0ZSBuYW1lcyBhcmUgbGVnYWwgYW5kIGh1bWFuIHJlYWRhYmxl
LgotICBzdGF0aWMgYm9vbCBWYWxpZGF0ZVRlc3RQcm9wZXJ0eShjb25zdCBzdGQ6OnN0cmluZyYg
eG1sX2VsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRl
c3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7Ci0KLSAgLy8gQWRkcyBhIHRlc3QgcGFydCByZXN1
bHQgdG8gdGhlIGxpc3QuCi0gIHZvaWQgQWRkVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRS
ZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpOwotCi0gIC8vIFJldHVybnMgdGhlIGRlYXRoIHRlc3Qg
Y291bnQuCi0gIGludCBkZWF0aF90ZXN0X2NvdW50KCkgY29uc3QgeyByZXR1cm4gZGVhdGhfdGVz
dF9jb3VudF87IH0KLQotICAvLyBJbmNyZW1lbnRzIHRoZSBkZWF0aCB0ZXN0IGNvdW50LCByZXR1
cm5pbmcgdGhlIG5ldyBjb3VudC4KLSAgaW50IGluY3JlbWVudF9kZWF0aF90ZXN0X2NvdW50KCkg
eyByZXR1cm4gKytkZWF0aF90ZXN0X2NvdW50XzsgfQotCi0gIC8vIENsZWFycyB0aGUgdGVzdCBw
YXJ0IHJlc3VsdHMuCi0gIHZvaWQgQ2xlYXJUZXN0UGFydFJlc3VsdHMoKTsKLQotICAvLyBDbGVh
cnMgdGhlIG9iamVjdC4KLSAgdm9pZCBDbGVhcigpOwotCi0gIC8vIFByb3RlY3RzIG11dGFibGUg
c3RhdGUgb2YgdGhlIHByb3BlcnR5IHZlY3RvciBhbmQgb2Ygb3duZWQKLSAgLy8gcHJvcGVydGll
cywgd2hvc2UgdmFsdWVzIG1heSBiZSB1cGRhdGVkLgotICBpbnRlcm5hbDo6TXV0ZXggdGVzdF9w
cm9wZXJpdGVzX211dGV4XzsKLQotICAvLyBUaGUgdmVjdG9yIG9mIFRlc3RQYXJ0UmVzdWx0cwot
ICBzdGQ6OnZlY3RvcjxUZXN0UGFydFJlc3VsdD4gdGVzdF9wYXJ0X3Jlc3VsdHNfOwotICAvLyBU
aGUgdmVjdG9yIG9mIFRlc3RQcm9wZXJ0aWVzCi0gIHN0ZDo6dmVjdG9yPFRlc3RQcm9wZXJ0eT4g
dGVzdF9wcm9wZXJ0aWVzXzsKLSAgLy8gUnVubmluZyBjb3VudCBvZiBkZWF0aCB0ZXN0cy4KLSAg
aW50IGRlYXRoX3Rlc3RfY291bnRfOwotICAvLyBUaGUgZWxhcHNlZCB0aW1lLCBpbiBtaWxsaXNl
Y29uZHMuCi0gIFRpbWVJbk1pbGxpcyBlbGFwc2VkX3RpbWVfOwotCi0gIC8vIFdlIGRpc2FsbG93
IGNvcHlpbmcgVGVzdFJlc3VsdC4KLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhU
ZXN0UmVzdWx0KTsKLX07ICAvLyBjbGFzcyBUZXN0UmVzdWx0Ci0KLS8vIEEgVGVzdEluZm8gb2Jq
ZWN0IHN0b3JlcyB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgdGVzdDoKLS8vCi0v
LyAgIFRlc3QgY2FzZSBuYW1lCi0vLyAgIFRlc3QgbmFtZQotLy8gICBXaGV0aGVyIHRoZSB0ZXN0
IHNob3VsZCBiZSBydW4KLS8vICAgQSBmdW5jdGlvbiBwb2ludGVyIHRoYXQgY3JlYXRlcyB0aGUg
dGVzdCBvYmplY3Qgd2hlbiBpbnZva2VkCi0vLyAgIFRlc3QgcmVzdWx0Ci0vLwotLy8gVGhlIGNv
bnN0cnVjdG9yIG9mIFRlc3RJbmZvIHJlZ2lzdGVycyBpdHNlbGYgd2l0aCB0aGUgVW5pdFRlc3QK
LS8vIHNpbmdsZXRvbiBzdWNoIHRoYXQgdGhlIFJVTl9BTExfVEVTVFMoKSBtYWNybyBrbm93cyB3
aGljaCB0ZXN0cyB0bwotLy8gcnVuLgotY2xhc3MgR1RFU1RfQVBJXyBUZXN0SW5mbyB7Ci0gcHVi
bGljOgotICAvLyBEZXN0cnVjdHMgYSBUZXN0SW5mbyBvYmplY3QuICBUaGlzIGZ1bmN0aW9uIGlz
IG5vdCB2aXJ0dWFsLCBzbwotICAvLyBkb24ndCBpbmhlcml0IGZyb20gVGVzdEluZm8uCi0gIH5U
ZXN0SW5mbygpOwotCi0gIC8vIFJldHVybnMgdGhlIHRlc3QgY2FzZSBuYW1lLgotICBjb25zdCBj
aGFyKiB0ZXN0X2Nhc2VfbmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3RfY2FzZV9uYW1lXy5jX3N0
cigpOyB9Ci0KLSAgLy8gUmV0dXJucyB0aGUgdGVzdCBuYW1lLgotICBjb25zdCBjaGFyKiBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbmFtZV8uY19zdHIoKTsgfQotCi0gIC8vIFJldHVybnMgdGhlIG5h
bWUgb2YgdGhlIHBhcmFtZXRlciB0eXBlLCBvciBOVUxMIGlmIHRoaXMgaXMgbm90IGEgdHlwZWQK
LSAgLy8gb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4KLSAgY29uc3QgY2hhciogdHlwZV9w
YXJhbSgpIGNvbnN0IHsKLSAgICBpZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAg
IHJldHVybiB0eXBlX3BhcmFtXy0+Y19zdHIoKTsKLSAgICByZXR1cm4gTlVMTDsKLSAgfQotCi0g
IC8vIFJldHVybnMgdGhlIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIHBhcmFtZXRl
ciwgb3IgTlVMTCBpZiB0aGlzCi0gIC8vIGlzIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVz
dC4KLSAgY29uc3QgY2hhciogdmFsdWVfcGFyYW0oKSBjb25zdCB7Ci0gICAgaWYgKHZhbHVlX3Bh
cmFtXy5nZXQoKSAhPSBOVUxMKQotICAgICAgcmV0dXJuIHZhbHVlX3BhcmFtXy0+Y19zdHIoKTsK
LSAgICByZXR1cm4gTlVMTDsKLSAgfQotCi0gIC8vIFJldHVybnMgdGhlIGZpbGUgbmFtZSB3aGVy
ZSB0aGlzIHRlc3QgaXMgZGVmaW5lZC4KLSAgY29uc3QgY2hhciogZmlsZSgpIGNvbnN0IHsgcmV0
dXJuIGxvY2F0aW9uXy5maWxlLmNfc3RyKCk7IH0KLQotICAvLyBSZXR1cm5zIHRoZSBsaW5lIHdo
ZXJlIHRoaXMgdGVzdCBpcyBkZWZpbmVkLgotICBpbnQgbGluZSgpIGNvbnN0IHsgcmV0dXJuIGxv
Y2F0aW9uXy5saW5lOyB9Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgdGVzdCBzaG91bGQg
cnVuLCB0aGF0IGlzIGlmIHRoZSB0ZXN0IGlzIG5vdAotICAvLyBkaXNhYmxlZCAob3IgaXQgaXMg
ZGlzYWJsZWQgYnV0IHRoZSBhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyBmbGFnIGhhcwotICAvLyBi
ZWVuIHNwZWNpZmllZCkgYW5kIGl0cyBmdWxsIG5hbWUgbWF0Y2hlcyB0aGUgdXNlci1zcGVjaWZp
ZWQgZmlsdGVyLgotICAvLwotICAvLyBHb29nbGUgVGVzdCBhbGxvd3MgdGhlIHVzZXIgdG8gZmls
dGVyIHRoZSB0ZXN0cyBieSB0aGVpciBmdWxsIG5hbWVzLgotICAvLyBUaGUgZnVsbCBuYW1lIG9m
IGEgdGVzdCBCYXIgaW4gdGVzdCBjYXNlIEZvbyBpcyBkZWZpbmVkIGFzCi0gIC8vICJGb28uQmFy
Ii4gIE9ubHkgdGhlIHRlc3RzIHRoYXQgbWF0Y2ggdGhlIGZpbHRlciB3aWxsIHJ1bi4KLSAgLy8K
LSAgLy8gQSBmaWx0ZXIgaXMgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBnbG9iIChub3QgcmVn
ZXgpIHBhdHRlcm5zLAotICAvLyBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5IGEgJy0nIGFuZCBhIGNv
bG9uLXNlcGFyYXRlZCBsaXN0IG9mCi0gIC8vIG5lZ2F0aXZlIHBhdHRlcm5zICh0ZXN0cyB0byBl
eGNsdWRlKS4gIEEgdGVzdCBpcyBydW4gaWYgaXQKLSAgLy8gbWF0Y2hlcyBvbmUgb2YgdGhlIHBv
c2l0aXZlIHBhdHRlcm5zIGFuZCBkb2VzIG5vdCBtYXRjaCBhbnkgb2YKLSAgLy8gdGhlIG5lZ2F0
aXZlIHBhdHRlcm5zLgotICAvLwotICAvLyBGb3IgZXhhbXBsZSwgKkEqOkZvby4qIGlzIGEgZmls
dGVyIHRoYXQgbWF0Y2hlcyBhbnkgc3RyaW5nIHRoYXQKLSAgLy8gY29udGFpbnMgdGhlIGNoYXJh
Y3RlciAnQScgb3Igc3RhcnRzIHdpdGggIkZvby4iLgotICBib29sIHNob3VsZF9ydW4oKSBjb25z
dCB7IHJldHVybiBzaG91bGRfcnVuXzsgfQotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhpcyB0
ZXN0IHdpbGwgYXBwZWFyIGluIHRoZSBYTUwgcmVwb3J0LgotICBib29sIGlzX3JlcG9ydGFibGUo
KSBjb25zdCB7Ci0gICAgLy8gRm9yIG5vdywgdGhlIFhNTCByZXBvcnQgaW5jbHVkZXMgYWxsIHRl
c3RzIG1hdGNoaW5nIHRoZSBmaWx0ZXIuCi0gICAgLy8gSW4gdGhlIGZ1dHVyZSwgd2UgbWF5IHRy
aW0gdGVzdHMgdGhhdCBhcmUgZXhjbHVkZWQgYmVjYXVzZSBvZgotICAgIC8vIHNoYXJkaW5nLgot
ICAgIHJldHVybiBtYXRjaGVzX2ZpbHRlcl87Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRoZSByZXN1
bHQgb2YgdGhlIHRlc3QuCi0gIGNvbnN0IFRlc3RSZXN1bHQqIHJlc3VsdCgpIGNvbnN0IHsgcmV0
dXJuICZyZXN1bHRfOyB9Ci0KLSBwcml2YXRlOgotI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCi0g
IGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6RGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk7Ci0jZW5kaWYg
IC8vIEdURVNUX0hBU19ERUFUSF9URVNUCi0gIGZyaWVuZCBjbGFzcyBUZXN0OwotICBmcmllbmQg
Y2xhc3MgVGVzdENhc2U7Ci0gIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsOwot
ICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlN0cmVhbWluZ0xpc3RlbmVyVGVzdDsKLSAgZnJpZW5k
IFRlc3RJbmZvKiBpbnRlcm5hbDo6TWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8oCi0gICAgICBjb25z
dCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgICBj
b25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAgY29uc3QgY2hhciogdmFsdWVfcGFyYW0sCi0g
ICAgICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24sCi0gICAgICBpbnRlcm5h
bDo6VHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0gICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVu
YyBzZXRfdXBfdGMsCi0gICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25f
dGMsCi0gICAgICBpbnRlcm5hbDo6VGVzdEZhY3RvcnlCYXNlKiBmYWN0b3J5KTsKLQotICAvLyBD
b25zdHJ1Y3RzIGEgVGVzdEluZm8gb2JqZWN0LiBUaGUgbmV3bHkgY29uc3RydWN0ZWQgaW5zdGFu
Y2UgYXNzdW1lcwotICAvLyBvd25lcnNoaXAgb2YgdGhlIGZhY3Rvcnkgb2JqZWN0LgotICBUZXN0
SW5mbyhjb25zdCBzdGQ6OnN0cmluZyYgdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgIGNvbnN0
IHN0ZDo6c3RyaW5nJiBuYW1lLAotICAgICAgICAgICBjb25zdCBjaGFyKiBhX3R5cGVfcGFyYW0s
ICAgLy8gTlVMTCBpZiBub3QgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdAotICAgICAgICAgICBj
b25zdCBjaGFyKiBhX3ZhbHVlX3BhcmFtLCAgLy8gTlVMTCBpZiBub3QgYSB2YWx1ZS1wYXJhbWV0
ZXJpemVkIHRlc3QKLSAgICAgICAgICAgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBhX2NvZGVfbG9j
YXRpb24sCi0gICAgICAgICAgIGludGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwKLSAg
ICAgICAgICAgaW50ZXJuYWw6OlRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSk7Ci0KLSAgLy8gSW5j
cmVtZW50cyB0aGUgbnVtYmVyIG9mIGRlYXRoIHRlc3RzIGVuY291bnRlcmVkIGluIHRoaXMgdGVz
dCBzbwotICAvLyBmYXIuCi0gIGludCBpbmNyZW1lbnRfZGVhdGhfdGVzdF9jb3VudCgpIHsKLSAg
ICByZXR1cm4gcmVzdWx0Xy5pbmNyZW1lbnRfZGVhdGhfdGVzdF9jb3VudCgpOwotICB9Ci0KLSAg
Ly8gQ3JlYXRlcyB0aGUgdGVzdCBvYmplY3QsIHJ1bnMgaXQsIHJlY29yZHMgaXRzIHJlc3VsdCwg
YW5kIHRoZW4KLSAgLy8gZGVsZXRlcyBpdC4KLSAgdm9pZCBSdW4oKTsKLQotICBzdGF0aWMgdm9p
ZCBDbGVhclRlc3RSZXN1bHQoVGVzdEluZm8qIHRlc3RfaW5mbykgewotICAgIHRlc3RfaW5mby0+
cmVzdWx0Xy5DbGVhcigpOwotICB9Ci0KLSAgLy8gVGhlc2UgZmllbGRzIGFyZSBpbW11dGFibGUg
cHJvcGVydGllcyBvZiB0aGUgdGVzdC4KLSAgY29uc3Qgc3RkOjpzdHJpbmcgdGVzdF9jYXNlX25h
bWVfOyAgICAgLy8gVGVzdCBjYXNlIG5hbWUKLSAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZV87ICAg
ICAgICAgICAgICAgLy8gVGVzdCBuYW1lCi0gIC8vIE5hbWUgb2YgdGhlIHBhcmFtZXRlciB0eXBl
LCBvciBOVUxMIGlmIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYQotICAvLyB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdC4KLSAgY29uc3QgaW50ZXJuYWw6OnNjb3BlZF9wdHI8Y29uc3QgOjpzdGQ6OnN0
cmluZz4gdHlwZV9wYXJhbV87Ci0gIC8vIFRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVl
IHBhcmFtZXRlciwgb3IgTlVMTCBpZiB0aGlzIGlzIG5vdCBhCi0gIC8vIHZhbHVlLXBhcmFtZXRl
cml6ZWQgdGVzdC4KLSAgY29uc3QgaW50ZXJuYWw6OnNjb3BlZF9wdHI8Y29uc3QgOjpzdGQ6OnN0
cmluZz4gdmFsdWVfcGFyYW1fOwotICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGxvY2F0aW9uXzsK
LSAgY29uc3QgaW50ZXJuYWw6OlR5cGVJZCBmaXh0dXJlX2NsYXNzX2lkXzsgICAvLyBJRCBvZiB0
aGUgdGVzdCBmaXh0dXJlIGNsYXNzCi0gIGJvb2wgc2hvdWxkX3J1bl87ICAgICAgICAgICAgICAg
ICAvLyBUcnVlIGlmZiB0aGlzIHRlc3Qgc2hvdWxkIHJ1bgotICBib29sIGlzX2Rpc2FibGVkXzsg
ICAgICAgICAgICAgICAgLy8gVHJ1ZSBpZmYgdGhpcyB0ZXN0IGlzIGRpc2FibGVkCi0gIGJvb2wg
bWF0Y2hlc19maWx0ZXJfOyAgICAgICAgICAgICAvLyBUcnVlIGlmIHRoaXMgdGVzdCBtYXRjaGVz
IHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNlci1zcGVjaWZp
ZWQgZmlsdGVyLgotICBpbnRlcm5hbDo6VGVzdEZhY3RvcnlCYXNlKiBjb25zdCBmYWN0b3J5Xzsg
IC8vIFRoZSBmYWN0b3J5IHRoYXQgY3JlYXRlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHRoZSB0ZXN0IG9iamVjdAotCi0gIC8vIFRoaXMgZmllbGQg
aXMgbXV0YWJsZSBhbmQgbmVlZHMgdG8gYmUgcmVzZXQgYmVmb3JlIHJ1bm5pbmcgdGhlCi0gIC8v
IHRlc3QgZm9yIHRoZSBzZWNvbmQgdGltZS4KLSAgVGVzdFJlc3VsdCByZXN1bHRfOwotCi0gIEdU
RVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVGVzdEluZm8pOwotfTsKLQotLy8gQSB0ZXN0
IGNhc2UsIHdoaWNoIGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9mIFRlc3RJbmZvcy4KLS8vCi0vLyBU
ZXN0Q2FzZSBpcyBub3QgY29weWFibGUuCi1jbGFzcyBHVEVTVF9BUElfIFRlc3RDYXNlIHsKLSBw
dWJsaWM6Ci0gIC8vIENyZWF0ZXMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgotICAv
LwotICAvLyBUZXN0Q2FzZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gIEFs
d2F5cyB1c2UgdGhpcwotICAvLyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBUZXN0Q2FzZSBvYmpl
Y3QuCi0gIC8vCi0gIC8vIEFyZ3VtZW50czoKLSAgLy8KLSAgLy8gICBuYW1lOiAgICAgICAgIG5h
bWUgb2YgdGhlIHRlc3QgY2FzZQotICAvLyAgIGFfdHlwZV9wYXJhbTogdGhlIG5hbWUgb2YgdGhl
IHRlc3QncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgotICAvLyAgICAgICAgICAgICAgICAg
dGhpcyBpcyBub3QgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4KLSAgLy8gICBzZXRfdXBfdGM6
ICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0g
IC8vICAgdGVhcl9kb3duX3RjOiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRv
d24gdGhlIHRlc3QgY2FzZQotICBUZXN0Q2FzZShjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFy
KiBhX3R5cGVfcGFyYW0sCi0gICAgICAgICAgIFRlc3Q6OlNldFVwVGVzdENhc2VGdW5jIHNldF91
cF90YywKLSAgICAgICAgICAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3Rj
KTsKLQotICAvLyBEZXN0cnVjdG9yIG9mIFRlc3RDYXNlLgotICB2aXJ0dWFsIH5UZXN0Q2FzZSgp
OwotCi0gIC8vIEdldHMgdGhlIG5hbWUgb2YgdGhlIFRlc3RDYXNlLgotICBjb25zdCBjaGFyKiBu
YW1lKCkgY29uc3QgeyByZXR1cm4gbmFtZV8uY19zdHIoKTsgfQotCi0gIC8vIFJldHVybnMgdGhl
IG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0eXBlLCBvciBOVUxMIGlmIHRoaXMgaXMgbm90IGEKLSAg
Ly8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLSAgY29uc3QgY2hhciogdHlwZV9wYXJh
bSgpIGNvbnN0IHsKLSAgICBpZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAgIHJl
dHVybiB0eXBlX3BhcmFtXy0+Y19zdHIoKTsKLSAgICByZXR1cm4gTlVMTDsKLSAgfQotCi0gIC8v
IFJldHVybnMgdHJ1ZSBpZiBhbnkgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBzaG91bGQgcnVuLgot
ICBib29sIHNob3VsZF9ydW4oKSBjb25zdCB7IHJldHVybiBzaG91bGRfcnVuXzsgfQotCi0gIC8v
IEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgot
ICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgaW50IGZhaWxlZF90ZXN0
X2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGRpc2FibGVkIHRlc3Rz
IHRoYXQgd2lsbCBiZSByZXBvcnRlZCBpbiB0aGUgWE1MIHJlcG9ydC4KLSAgaW50IHJlcG9ydGFi
bGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0OwotCi0gIC8vIEdldHMgdGhlIG51bWJlciBv
ZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgaW50IGRpc2FibGVkX3Rlc3Rf
Y291bnQoKSBjb25zdDsKLQotICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdG8gYmUgcHJp
bnRlZCBpbiB0aGUgWE1MIHJlcG9ydC4KLSAgaW50IHJlcG9ydGFibGVfdGVzdF9jb3VudCgpIGNv
bnN0OwotCi0gIC8vIEdldCB0aGUgbnVtYmVyIG9mIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlIHRo
YXQgc2hvdWxkIHJ1bi4KLSAgaW50IHRlc3RfdG9fcnVuX2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgaW50IHRv
dGFsX3Rlc3RfY291bnQoKSBjb25zdDsKLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0
IGNhc2UgcGFzc2VkLgotICBib29sIFBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFGYWlsZWQoKTsg
fQotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBmYWlsZWQuCi0gIGJvb2wg
RmFpbGVkKCkgY29uc3QgeyByZXR1cm4gZmFpbGVkX3Rlc3RfY291bnQoKSA+IDA7IH0KLQotICAv
LyBSZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KLSAgVGltZUluTWls
bGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVsYXBzZWRfdGltZV87IH0KLQotICAv
LyBSZXR1cm5zIHRoZSBpLXRoIHRlc3QgYW1vbmcgYWxsIHRoZSB0ZXN0cy4gaSBjYW4gcmFuZ2Ug
ZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRo
YXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KLSAgY29uc3QgVGVzdEluZm8qIEdldFRlc3RJbmZvKGlu
dCBpKSBjb25zdDsKLQotICAvLyBSZXR1cm5zIHRoZSBUZXN0UmVzdWx0IHRoYXQgaG9sZHMgdGVz
dCBwcm9wZXJ0aWVzIHJlY29yZGVkIGR1cmluZwotICAvLyBleGVjdXRpb24gb2YgU2V0VXBUZXN0
Q2FzZSBhbmQgVGVhckRvd25UZXN0Q2FzZS4KLSAgY29uc3QgVGVzdFJlc3VsdCYgYWRfaG9jX3Rl
c3RfcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gYWRfaG9jX3Rlc3RfcmVzdWx0XzsgfQotCi0gcHJp
dmF0ZToKLSAgZnJpZW5kIGNsYXNzIFRlc3Q7Ci0gIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6VW5p
dFRlc3RJbXBsOwotCi0gIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2ZWN0b3Igb2YgVGVzdEluZm9z
IGluIHRoaXMgVGVzdENhc2UuCi0gIHN0ZDo6dmVjdG9yPFRlc3RJbmZvKj4mIHRlc3RfaW5mb19s
aXN0KCkgeyByZXR1cm4gdGVzdF9pbmZvX2xpc3RfOyB9Ci0KLSAgLy8gR2V0cyB0aGUgKGltbXV0
YWJsZSkgdmVjdG9yIG9mIFRlc3RJbmZvcyBpbiB0aGlzIFRlc3RDYXNlLgotICBjb25zdCBzdGQ6
OnZlY3RvcjxUZXN0SW5mbyo+JiB0ZXN0X2luZm9fbGlzdCgpIGNvbnN0IHsKLSAgICByZXR1cm4g
dGVzdF9pbmZvX2xpc3RfOwotICB9Ci0KLSAgLy8gUmV0dXJucyB0aGUgaS10aCB0ZXN0IGFtb25n
IGFsbCB0aGUgdGVzdHMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwotICAvLyB0b3RhbF90ZXN0X2Nv
dW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0gIFRl
c3RJbmZvKiBHZXRNdXRhYmxlVGVzdEluZm8oaW50IGkpOwotCi0gIC8vIFNldHMgdGhlIHNob3Vs
ZF9ydW4gbWVtYmVyLgotICB2b2lkIHNldF9zaG91bGRfcnVuKGJvb2wgc2hvdWxkKSB7IHNob3Vs
ZF9ydW5fID0gc2hvdWxkOyB9Ci0KLSAgLy8gQWRkcyBhIFRlc3RJbmZvIHRvIHRoaXMgdGVzdCBj
YXNlLiAgV2lsbCBkZWxldGUgdGhlIFRlc3RJbmZvIHVwb24KLSAgLy8gZGVzdHJ1Y3Rpb24gb2Yg
dGhlIFRlc3RDYXNlIG9iamVjdC4KLSAgdm9pZCBBZGRUZXN0SW5mbyhUZXN0SW5mbyAqIHRlc3Rf
aW5mbyk7Ci0KLSAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0ZXN0cyBpbiB0aGlzIHRl
c3QgY2FzZS4KLSAgdm9pZCBDbGVhclJlc3VsdCgpOwotCi0gIC8vIENsZWFycyB0aGUgcmVzdWx0
cyBvZiBhbGwgdGVzdHMgaW4gdGhlIGdpdmVuIHRlc3QgY2FzZS4KLSAgc3RhdGljIHZvaWQgQ2xl
YXJUZXN0Q2FzZVJlc3VsdChUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAgdGVzdF9jYXNlLT5D
bGVhclJlc3VsdCgpOwotICB9Ci0KLSAgLy8gUnVucyBldmVyeSB0ZXN0IGluIHRoaXMgVGVzdENh
c2UuCi0gIHZvaWQgUnVuKCk7Ci0KLSAgLy8gUnVucyBTZXRVcFRlc3RDYXNlKCkgZm9yIHRoaXMg
VGVzdENhc2UuICBUaGlzIHdyYXBwZXIgaXMgbmVlZGVkCi0gIC8vIGZvciBjYXRjaGluZyBleGNl
cHRpb25zIHRocm93biBmcm9tIFNldFVwVGVzdENhc2UoKS4KLSAgdm9pZCBSdW5TZXRVcFRlc3RD
YXNlKCkgeyAoKnNldF91cF90Y18pKCk7IH0KLQotICAvLyBSdW5zIFRlYXJEb3duVGVzdENhc2Uo
KSBmb3IgdGhpcyBUZXN0Q2FzZS4gIFRoaXMgd3JhcHBlciBpcwotICAvLyBuZWVkZWQgZm9yIGNh
dGNoaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGZyb20gVGVhckRvd25UZXN0Q2FzZSgpLgotICB2b2lk
IFJ1blRlYXJEb3duVGVzdENhc2UoKSB7ICgqdGVhcl9kb3duX3RjXykoKTsgfQotCi0gIC8vIFJl
dHVybnMgdHJ1ZSBpZmYgdGVzdCBwYXNzZWQuCi0gIHN0YXRpYyBib29sIFRlc3RQYXNzZWQoY29u
c3QgVGVzdEluZm8qIHRlc3RfaW5mbykgewotICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9y
dW4oKSAmJiB0ZXN0X2luZm8tPnJlc3VsdCgpLT5QYXNzZWQoKTsKLSAgfQotCi0gIC8vIFJldHVy
bnMgdHJ1ZSBpZmYgdGVzdCBmYWlsZWQuCi0gIHN0YXRpYyBib29sIFRlc3RGYWlsZWQoY29uc3Qg
VGVzdEluZm8qIHRlc3RfaW5mbykgewotICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4o
KSAmJiB0ZXN0X2luZm8tPnJlc3VsdCgpLT5GYWlsZWQoKTsKLSAgfQotCi0gIC8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIHRlc3QgaXMgZGlzYWJsZWQgYW5kIHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhl
IFhNTAotICAvLyByZXBvcnQuCi0gIHN0YXRpYyBib29sIFRlc3RSZXBvcnRhYmxlRGlzYWJsZWQo
Y29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbykgewotICAgIHJldHVybiB0ZXN0X2luZm8tPmlzX3Jl
cG9ydGFibGUoKSAmJiB0ZXN0X2luZm8tPmlzX2Rpc2FibGVkXzsKLSAgfQotCi0gIC8vIFJldHVy
bnMgdHJ1ZSBpZmYgdGVzdCBpcyBkaXNhYmxlZC4KLSAgc3RhdGljIGJvb2wgVGVzdERpc2FibGVk
KGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8pIHsKLSAgICByZXR1cm4gdGVzdF9pbmZvLT5pc19k
aXNhYmxlZF87Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoaXMgdGVzdCB3aWxsIGFw
cGVhciBpbiB0aGUgWE1MIHJlcG9ydC4KLSAgc3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGUoY29u
c3QgVGVzdEluZm8qIHRlc3RfaW5mbykgewotICAgIHJldHVybiB0ZXN0X2luZm8tPmlzX3JlcG9y
dGFibGUoKTsKLSAgfQotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGVzdCBzaG91
bGQgcnVuLgotICBzdGF0aWMgYm9vbCBTaG91bGRSdW5UZXN0KGNvbnN0IFRlc3RJbmZvKiB0ZXN0
X2luZm8pIHsKLSAgICByZXR1cm4gdGVzdF9pbmZvLT5zaG91bGRfcnVuKCk7Ci0gIH0KLQotICAv
LyBTaHVmZmxlcyB0aGUgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCi0gIHZvaWQgU2h1ZmZsZVRl
c3RzKGludGVybmFsOjpSYW5kb20qIHJhbmRvbSk7Ci0KLSAgLy8gUmVzdG9yZXMgdGhlIHRlc3Qg
b3JkZXIgdG8gYmVmb3JlIHRoZSBmaXJzdCBzaHVmZmxlLgotICB2b2lkIFVuc2h1ZmZsZVRlc3Rz
KCk7Ci0KLSAgLy8gTmFtZSBvZiB0aGUgdGVzdCBjYXNlLgotICBzdGQ6OnN0cmluZyBuYW1lXzsK
LSAgLy8gTmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhpcyBpcyBub3Qg
YSB0eXBlZCBvciBhCi0gIC8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotICBjb25zdCBpbnRl
cm5hbDo6c2NvcGVkX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5nPiB0eXBlX3BhcmFtXzsKLSAgLy8g
VGhlIHZlY3RvciBvZiBUZXN0SW5mb3MgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuICBJdCBvd25z
IHRoZQotICAvLyBlbGVtZW50cyBpbiB0aGUgdmVjdG9yLgotICBzdGQ6OnZlY3RvcjxUZXN0SW5m
byo+IHRlc3RfaW5mb19saXN0XzsKLSAgLy8gUHJvdmlkZXMgYSBsZXZlbCBvZiBpbmRpcmVjdGlv
biBmb3IgdGhlIHRlc3QgbGlzdCB0byBhbGxvdyBlYXN5Ci0gIC8vIHNodWZmbGluZyBhbmQgcmVz
dG9yaW5nIHRoZSB0ZXN0IG9yZGVyLiAgVGhlIGktdGggZWxlbWVudCBpbiB0aGlzCi0gIC8vIHZl
Y3RvciBpcyB0aGUgaW5kZXggb2YgdGhlIGktdGggdGVzdCBpbiB0aGUgc2h1ZmZsZWQgdGVzdCBs
aXN0LgotICBzdGQ6OnZlY3RvcjxpbnQ+IHRlc3RfaW5kaWNlc187Ci0gIC8vIFBvaW50ZXIgdG8g
dGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlLgotICBUZXN0OjpTZXRVcFRl
c3RDYXNlRnVuYyBzZXRfdXBfdGNfOwotICAvLyBQb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0
IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZS4KLSAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMg
dGVhcl9kb3duX3RjXzsKLSAgLy8gVHJ1ZSBpZmYgYW55IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2Ug
c2hvdWxkIHJ1bi4KLSAgYm9vbCBzaG91bGRfcnVuXzsKLSAgLy8gRWxhcHNlZCB0aW1lLCBpbiBt
aWxsaXNlY29uZHMuCi0gIFRpbWVJbk1pbGxpcyBlbGFwc2VkX3RpbWVfOwotICAvLyBIb2xkcyB0
ZXN0IHByb3BlcnRpZXMgcmVjb3JkZWQgZHVyaW5nIGV4ZWN1dGlvbiBvZiBTZXRVcFRlc3RDYXNl
IGFuZAotICAvLyBUZWFyRG93blRlc3RDYXNlLgotICBUZXN0UmVzdWx0IGFkX2hvY190ZXN0X3Jl
c3VsdF87Ci0KLSAgLy8gV2UgZGlzYWxsb3cgY29weWluZyBUZXN0Q2FzZXMuCi0gIEdURVNUX0RJ
U0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVGVzdENhc2UpOwotfTsKLQotLy8gQW4gRW52aXJvbm1l
bnQgb2JqZWN0IGlzIGNhcGFibGUgb2Ygc2V0dGluZyB1cCBhbmQgdGVhcmluZyBkb3duIGFuCi0v
LyBlbnZpcm9ubWVudC4gIFlvdSBzaG91bGQgc3ViY2xhc3MgdGhpcyB0byBkZWZpbmUgeW91ciBv
d24KLS8vIGVudmlyb25tZW50KHMpLgotLy8KLS8vIEFuIEVudmlyb25tZW50IG9iamVjdCBkb2Vz
IHRoZSBzZXQtdXAgYW5kIHRlYXItZG93biBpbiB2aXJ0dWFsCi0vLyBtZXRob2RzIFNldFVwKCkg
YW5kIFRlYXJEb3duKCkgaW5zdGVhZCBvZiB0aGUgY29uc3RydWN0b3IgYW5kIHRoZQotLy8gZGVz
dHJ1Y3RvciwgYXM6Ci0vLwotLy8gICAxLiBZb3UgY2Fubm90IHNhZmVseSB0aHJvdyBmcm9tIGEg
ZGVzdHJ1Y3Rvci4gIFRoaXMgaXMgYSBwcm9ibGVtCi0vLyAgICAgIGFzIGluIHNvbWUgY2FzZXMg
R29vZ2xlIFRlc3QgaXMgdXNlZCB3aGVyZSBleGNlcHRpb25zIGFyZSBlbmFibGVkLCBhbmQKLS8v
ICAgICAgd2UgbWF5IHdhbnQgdG8gaW1wbGVtZW50IEFTU0VSVF8qIHVzaW5nIGV4Y2VwdGlvbnMg
d2hlcmUgdGhleSBhcmUKLS8vICAgICAgYXZhaWxhYmxlLgotLy8gICAyLiBZb3UgY2Fubm90IHVz
ZSBBU1NFUlRfKiBkaXJlY3RseSBpbiBhIGNvbnN0cnVjdG9yIG9yCi0vLyAgICAgIGRlc3RydWN0
b3IuCi1jbGFzcyBFbnZpcm9ubWVudCB7Ci0gcHVibGljOgotICAvLyBUaGUgZCd0b3IgaXMgdmly
dHVhbCBhcyB3ZSBuZWVkIHRvIHN1YmNsYXNzIEVudmlyb25tZW50LgotICB2aXJ0dWFsIH5FbnZp
cm9ubWVudCgpIHt9Ci0KLSAgLy8gT3ZlcnJpZGUgdGhpcyB0byBkZWZpbmUgaG93IHRvIHNldCB1
cCB0aGUgZW52aXJvbm1lbnQuCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9Ci0KLSAgLy8gT3Zl
cnJpZGUgdGhpcyB0byBkZWZpbmUgaG93IHRvIHRlYXIgZG93biB0aGUgZW52aXJvbm1lbnQuCi0g
IHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9Ci0gcHJpdmF0ZToKLSAgLy8gSWYgeW91IHNlZSBh
biBlcnJvciBhYm91dCBvdmVycmlkaW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gb3IKLSAgLy8g
YWJvdXQgaXQgYmVpbmcgcHJpdmF0ZSwgeW91IGhhdmUgbWlzLXNwZWxsZWQgU2V0VXAoKSBhcyBT
ZXR1cCgpLgotICBzdHJ1Y3QgU2V0dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAge307Ci0gIHZp
cnR1YWwgU2V0dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAqIFNldHVwKCkgeyByZXR1cm4gTlVM
TDsgfQotfTsKLQotLy8gVGhlIGludGVyZmFjZSBmb3IgdHJhY2luZyBleGVjdXRpb24gb2YgdGVz
dHMuIFRoZSBtZXRob2RzIGFyZSBvcmdhbml6ZWQgaW4KLS8vIHRoZSBvcmRlciB0aGUgY29ycmVz
cG9uZGluZyBldmVudHMgYXJlIGZpcmVkLgotY2xhc3MgVGVzdEV2ZW50TGlzdGVuZXIgewotIHB1
YmxpYzoKLSAgdmlydHVhbCB+VGVzdEV2ZW50TGlzdGVuZXIoKSB7fQotCi0gIC8vIEZpcmVkIGJl
Zm9yZSBhbnkgdGVzdCBhY3Rpdml0eSBzdGFydHMuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9n
cmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgPSAwOwotCi0gIC8vIEZpcmVkIGJl
Zm9yZSBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBzdGFydHMuICBUaGVyZSBtYXkgYmUgbW9yZSB0
aGFuCi0gIC8vIG9uZSBpdGVyYXRpb24gaWYgR1RFU1RfRkxBRyhyZXBlYXQpIGlzIHNldC4gaXRl
cmF0aW9uIGlzIHRoZSBpdGVyYXRpb24KLSAgLy8gaW5kZXgsIHN0YXJ0aW5nIGZyb20gMC4KLSAg
dmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rl
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlcmF0aW9uKSA9
IDA7Ci0KLSAgLy8gRmlyZWQgYmVmb3JlIGVudmlyb25tZW50IHNldC11cCBmb3IgZWFjaCBpdGVy
YXRpb24gb2YgdGVzdHMgc3RhcnRzLgotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRV
cFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpID0gMDsKLQotICAvLyBGaXJlZCBhZnRl
ciBlbnZpcm9ubWVudCBzZXQtdXAgZm9yIGVhY2ggaXRlcmF0aW9uIG9mIHRlc3RzIGVuZHMuCi0g
IHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QpID0gMDsKLQotICAvLyBGaXJlZCBiZWZvcmUgdGhlIHRlc3QgY2FzZSBzdGFydHMuCi0g
IHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkg
PSAwOwotCi0gIC8vIEZpcmVkIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuCi0gIHZpcnR1YWwgdm9p
ZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSA9IDA7Ci0KLSAgLy8gRmly
ZWQgYWZ0ZXIgYSBmYWlsZWQgYXNzZXJ0aW9uIG9yIGEgU1VDQ0VFRCgpIGludm9jYXRpb24uCi0g
IHZpcnR1YWwgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0
X3BhcnRfcmVzdWx0KSA9IDA7Ci0KLSAgLy8gRmlyZWQgYWZ0ZXIgdGhlIHRlc3QgZW5kcy4KLSAg
dmlydHVhbCB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSA9IDA7Ci0K
LSAgLy8gRmlyZWQgYWZ0ZXIgdGhlIHRlc3QgY2FzZSBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25U
ZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSA9IDA7Ci0KLSAgLy8gRmlyZWQg
YmVmb3JlIGVudmlyb25tZW50IHRlYXItZG93biBmb3IgZWFjaCBpdGVyYXRpb24gb2YgdGVzdHMg
c3RhcnRzLgotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0
IFVuaXRUZXN0JiB1bml0X3Rlc3QpID0gMDsKLQotICAvLyBGaXJlZCBhZnRlciBlbnZpcm9ubWVu
dCB0ZWFyLWRvd24gZm9yIGVhY2ggaXRlcmF0aW9uIG9mIHRlc3RzIGVuZHMuCi0gIHZpcnR1YWwg
dm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3Qp
ID0gMDsKLQotICAvLyBGaXJlZCBhZnRlciBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBmaW5pc2hl
cy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5p
dF90ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24p
ID0gMDsKLQotICAvLyBGaXJlZCBhZnRlciBhbGwgdGVzdCBhY3Rpdml0aWVzIGhhdmUgZW5kZWQu
Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rl
c3QpID0gMDsKLX07Ci0KLS8vIFRoZSBjb252ZW5pZW5jZSBjbGFzcyBmb3IgdXNlcnMgd2hvIG5l
ZWQgdG8gb3ZlcnJpZGUganVzdCBvbmUgb3IgdHdvCi0vLyBtZXRob2RzIGFuZCBhcmUgbm90IGNv
bmNlcm5lZCB0aGF0IGEgcG9zc2libGUgY2hhbmdlIHRvIGEgc2lnbmF0dXJlIG9mCi0vLyB0aGUg
bWV0aG9kcyB0aGV5IG92ZXJyaWRlIHdpbGwgbm90IGJlIGNhdWdodCBkdXJpbmcgdGhlIGJ1aWxk
LiAgRm9yCi0vLyBjb21tZW50cyBhYm91dCBlYWNoIG1ldGhvZCBwbGVhc2Ugc2VlIHRoZSBkZWZp
bml0aW9uIG9mIFRlc3RFdmVudExpc3RlbmVyCi0vLyBhYm92ZS4KLWNsYXNzIEVtcHR5VGVzdEV2
ZW50TGlzdGVuZXIgOiBwdWJsaWMgVGVzdEV2ZW50TGlzdGVuZXIgewotIHB1YmxpYzoKLSAgdmly
dHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3Qq
Lykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IC8qaXRlcmF0aW9uKi8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3Rh
cnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPbkVu
dmlyb25tZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2
aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSov
KSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9p
bmZvKi8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0
UmVzdWx0JiAvKnRlc3RfcGFydF9yZXN1bHQqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEVu
ZChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVz
dENhc2VFbmQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIHt9Ci0gIHZpcnR1YWwgdm9p
ZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0
Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9u
RW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0
UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLX07Ci0KLS8vIFRl
c3RFdmVudExpc3RlbmVycyBsZXRzIHVzZXJzIGFkZCBsaXN0ZW5lcnMgdG8gdHJhY2sgZXZlbnRz
IGluIEdvb2dsZSBUZXN0LgotY2xhc3MgR1RFU1RfQVBJXyBUZXN0RXZlbnRMaXN0ZW5lcnMgewot
IHB1YmxpYzoKLSAgVGVzdEV2ZW50TGlzdGVuZXJzKCk7Ci0gIH5UZXN0RXZlbnRMaXN0ZW5lcnMo
KTsKLQotICAvLyBBcHBlbmRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBlbmQgb2YgdGhlIGxp
c3QuIEdvb2dsZSBUZXN0IGFzc3VtZXMKLSAgLy8gdGhlIG93bmVyc2hpcCBvZiB0aGUgbGlzdGVu
ZXIgKGkuZS4gaXQgd2lsbCBkZWxldGUgdGhlIGxpc3RlbmVyIHdoZW4KLSAgLy8gdGhlIHRlc3Qg
cHJvZ3JhbSBmaW5pc2hlcykuCi0gIHZvaWQgQXBwZW5kKFRlc3RFdmVudExpc3RlbmVyKiBsaXN0
ZW5lcik7Ci0KLSAgLy8gUmVtb3ZlcyB0aGUgZ2l2ZW4gZXZlbnQgbGlzdGVuZXIgZnJvbSB0aGUg
bGlzdCBhbmQgcmV0dXJucyBpdC4gIEl0IHRoZW4KLSAgLy8gYmVjb21lcyB0aGUgY2FsbGVyJ3Mg
cmVzcG9uc2liaWxpdHkgdG8gZGVsZXRlIHRoZSBsaXN0ZW5lci4gUmV0dXJucwotICAvLyBOVUxM
IGlmIHRoZSBsaXN0ZW5lciBpcyBub3QgZm91bmQgaW4gdGhlIGxpc3QuCi0gIFRlc3RFdmVudExp
c3RlbmVyKiBSZWxlYXNlKFRlc3RFdmVudExpc3RlbmVyKiBsaXN0ZW5lcik7Ci0KLSAgLy8gUmV0
dXJucyB0aGUgc3RhbmRhcmQgbGlzdGVuZXIgcmVzcG9uc2libGUgZm9yIHRoZSBkZWZhdWx0IGNv
bnNvbGUKLSAgLy8gb3V0cHV0LiAgQ2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgbGlzdGVuZXJzIGxp
c3QgdG8gc2h1dCBkb3duIGRlZmF1bHQKLSAgLy8gY29uc29sZSBvdXRwdXQuICBOb3RlIHRoYXQg
cmVtb3ZpbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgbGlzdGVuZXIgbGlzdAotICAvLyB3aXRoIFJl
bGVhc2UgdHJhbnNmZXJzIGl0cyBvd25lcnNoaXAgdG8gdGhlIGNhbGxlciBhbmQgbWFrZXMgdGhp
cwotICAvLyBmdW5jdGlvbiByZXR1cm4gTlVMTCB0aGUgbmV4dCB0aW1lLgotICBUZXN0RXZlbnRM
aXN0ZW5lciogZGVmYXVsdF9yZXN1bHRfcHJpbnRlcigpIGNvbnN0IHsKLSAgICByZXR1cm4gZGVm
YXVsdF9yZXN1bHRfcHJpbnRlcl87Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRoZSBzdGFuZGFyZCBs
aXN0ZW5lciByZXNwb25zaWJsZSBmb3IgdGhlIGRlZmF1bHQgWE1MIG91dHB1dAotICAvLyBjb250
cm9sbGVkIGJ5IHRoZSAtLWd0ZXN0X291dHB1dD14bWwgZmxhZy4gIENhbiBiZSByZW1vdmVkIGZy
b20gdGhlCi0gIC8vIGxpc3RlbmVycyBsaXN0IGJ5IHVzZXJzIHdobyB3YW50IHRvIHNodXQgZG93
biB0aGUgZGVmYXVsdCBYTUwgb3V0cHV0Ci0gIC8vIGNvbnRyb2xsZWQgYnkgdGhpcyBmbGFnIGFu
ZCBzdWJzdGl0dXRlIGl0IHdpdGggY3VzdG9tIG9uZS4gIE5vdGUgdGhhdAotICAvLyByZW1vdmlu
ZyB0aGlzIG9iamVjdCBmcm9tIHRoZSBsaXN0ZW5lciBsaXN0IHdpdGggUmVsZWFzZSB0cmFuc2Zl
cnMgaXRzCi0gIC8vIG93bmVyc2hpcCB0byB0aGUgY2FsbGVyIGFuZCBtYWtlcyB0aGlzIGZ1bmN0
aW9uIHJldHVybiBOVUxMIHRoZSBuZXh0Ci0gIC8vIHRpbWUuCi0gIFRlc3RFdmVudExpc3RlbmVy
KiBkZWZhdWx0X3htbF9nZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgcmV0dXJuIGRlZmF1bHRfeG1s
X2dlbmVyYXRvcl87Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGZyaWVuZCBjbGFzcyBUZXN0Q2FzZTsK
LSAgZnJpZW5kIGNsYXNzIFRlc3RJbmZvOwotICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OkRlZmF1
bHRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyOwotICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6
Ok5vRXhlY0RlYXRoVGVzdDsKLSAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpUZXN0RXZlbnRMaXN0
ZW5lcnNBY2Nlc3NvcjsKLSAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpVbml0VGVzdEltcGw7Ci0K
LSAgLy8gUmV0dXJucyByZXBlYXRlciB0aGF0IGJyb2FkY2FzdHMgdGhlIFRlc3RFdmVudExpc3Rl
bmVyIGV2ZW50cyB0byBhbGwKLSAgLy8gc3Vic2NyaWJlcnMuCi0gIFRlc3RFdmVudExpc3RlbmVy
KiByZXBlYXRlcigpOwotCi0gIC8vIFNldHMgdGhlIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIgYXR0
cmlidXRlIHRvIHRoZSBwcm92aWRlZCBsaXN0ZW5lci4KLSAgLy8gVGhlIGxpc3RlbmVyIGlzIGFs
c28gYWRkZWQgdG8gdGhlIGxpc3RlbmVyIGxpc3QgYW5kIHByZXZpb3VzCi0gIC8vIGRlZmF1bHRf
cmVzdWx0X3ByaW50ZXIgaXMgcmVtb3ZlZCBmcm9tIGl0IGFuZCBkZWxldGVkLiBUaGUgbGlzdGVu
ZXIgY2FuCi0gIC8vIGFsc28gYmUgTlVMTCBpbiB3aGljaCBjYXNlIGl0IHdpbGwgbm90IGJlIGFk
ZGVkIHRvIHRoZSBsaXN0LiBEb2VzCi0gIC8vIG5vdGhpbmcgaWYgdGhlIHByZXZpb3VzIGFuZCB0
aGUgY3VycmVudCBsaXN0ZW5lciBvYmplY3RzIGFyZSB0aGUgc2FtZS4KLSAgdm9pZCBTZXREZWZh
dWx0UmVzdWx0UHJpbnRlcihUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpOwotCi0gIC8vIFNl
dHMgdGhlIGRlZmF1bHRfeG1sX2dlbmVyYXRvciBhdHRyaWJ1dGUgdG8gdGhlIHByb3ZpZGVkIGxp
c3RlbmVyLiAgVGhlCi0gIC8vIGxpc3RlbmVyIGlzIGFsc28gYWRkZWQgdG8gdGhlIGxpc3RlbmVy
IGxpc3QgYW5kIHByZXZpb3VzCi0gIC8vIGRlZmF1bHRfeG1sX2dlbmVyYXRvciBpcyByZW1vdmVk
IGZyb20gaXQgYW5kIGRlbGV0ZWQuIFRoZSBsaXN0ZW5lciBjYW4KLSAgLy8gYWxzbyBiZSBOVUxM
IGluIHdoaWNoIGNhc2UgaXQgd2lsbCBub3QgYmUgYWRkZWQgdG8gdGhlIGxpc3QuIERvZXMKLSAg
Ly8gbm90aGluZyBpZiB0aGUgcHJldmlvdXMgYW5kIHRoZSBjdXJyZW50IGxpc3RlbmVyIG9iamVj
dHMgYXJlIHRoZSBzYW1lLgotICB2b2lkIFNldERlZmF1bHRYbWxHZW5lcmF0b3IoVGVzdEV2ZW50
TGlzdGVuZXIqIGxpc3RlbmVyKTsKLQotICAvLyBDb250cm9scyB3aGV0aGVyIGV2ZW50cyB3aWxs
IGJlIGZvcndhcmRlZCBieSB0aGUgcmVwZWF0ZXIgdG8gdGhlCi0gIC8vIGxpc3RlbmVycyBpbiB0
aGUgbGlzdC4KLSAgYm9vbCBFdmVudEZvcndhcmRpbmdFbmFibGVkKCkgY29uc3Q7Ci0gIHZvaWQg
U3VwcHJlc3NFdmVudEZvcndhcmRpbmcoKTsKLQotICAvLyBUaGUgYWN0dWFsIGxpc3Qgb2YgbGlz
dGVuZXJzLgotICBpbnRlcm5hbDo6VGVzdEV2ZW50UmVwZWF0ZXIqIHJlcGVhdGVyXzsKLSAgLy8g
TGlzdGVuZXIgcmVzcG9uc2libGUgZm9yIHRoZSBzdGFuZGFyZCByZXN1bHQgb3V0cHV0LgotICBU
ZXN0RXZlbnRMaXN0ZW5lciogZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl87Ci0gIC8vIExpc3RlbmVy
IHJlc3BvbnNpYmxlIGZvciB0aGUgY3JlYXRpb24gb2YgdGhlIFhNTCBvdXRwdXQgZmlsZS4KLSAg
VGVzdEV2ZW50TGlzdGVuZXIqIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl87Ci0KLSAgLy8gV2UgZGlz
YWxsb3cgY29weWluZyBUZXN0RXZlbnRMaXN0ZW5lcnMuCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlf
QU5EX0FTU0lHTl8oVGVzdEV2ZW50TGlzdGVuZXJzKTsKLX07Ci0KLS8vIEEgVW5pdFRlc3QgY29u
c2lzdHMgb2YgYSB2ZWN0b3Igb2YgVGVzdENhc2VzLgotLy8KLS8vIFRoaXMgaXMgYSBzaW5nbGV0
b24gY2xhc3MuICBUaGUgb25seSBpbnN0YW5jZSBvZiBVbml0VGVzdCBpcwotLy8gY3JlYXRlZCB3
aGVuIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpIGlzIGZpcnN0IGNhbGxlZC4gIFRoaXMKLS8vIGlu
c3RhbmNlIGlzIG5ldmVyIGRlbGV0ZWQuCi0vLwotLy8gVW5pdFRlc3QgaXMgbm90IGNvcHlhYmxl
LgotLy8KLS8vIFRoaXMgY2xhc3MgaXMgdGhyZWFkLXNhZmUgYXMgbG9uZyBhcyB0aGUgbWV0aG9k
cyBhcmUgY2FsbGVkCi0vLyBhY2NvcmRpbmcgdG8gdGhlaXIgc3BlY2lmaWNhdGlvbi4KLWNsYXNz
IEdURVNUX0FQSV8gVW5pdFRlc3QgewotIHB1YmxpYzoKLSAgLy8gR2V0cyB0aGUgc2luZ2xldG9u
IFVuaXRUZXN0IG9iamVjdC4gIFRoZSBmaXJzdCB0aW1lIHRoaXMgbWV0aG9kCi0gIC8vIGlzIGNh
bGxlZCwgYSBVbml0VGVzdCBvYmplY3QgaXMgY29uc3RydWN0ZWQgYW5kIHJldHVybmVkLgotICAv
LyBDb25zZWN1dGl2ZSBjYWxscyB3aWxsIHJldHVybiB0aGUgc2FtZSBvYmplY3QuCi0gIHN0YXRp
YyBVbml0VGVzdCogR2V0SW5zdGFuY2UoKTsKLQotICAvLyBSdW5zIGFsbCB0ZXN0cyBpbiB0aGlz
IFVuaXRUZXN0IG9iamVjdCBhbmQgcHJpbnRzIHRoZSByZXN1bHQuCi0gIC8vIFJldHVybnMgMCBp
ZiBzdWNjZXNzZnVsLCBvciAxIG90aGVyd2lzZS4KLSAgLy8KLSAgLy8gVGhpcyBtZXRob2QgY2Fu
IG9ubHkgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgotICAvLwotICAvLyBJTlRFUk5B
TCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gQSBVU0VSIFBST0dSQU0uCi0gIGludCBS
dW4oKSBHVEVTVF9NVVNUX1VTRV9SRVNVTFRfOwotCi0gIC8vIFJldHVybnMgdGhlIHdvcmtpbmcg
ZGlyZWN0b3J5IHdoZW4gdGhlIGZpcnN0IFRFU1QoKSBvciBURVNUX0YoKQotICAvLyB3YXMgZXhl
Y3V0ZWQuICBUaGUgVW5pdFRlc3Qgb2JqZWN0IG93bnMgdGhlIHN0cmluZy4KLSAgY29uc3QgY2hh
ciogb3JpZ2luYWxfd29ya2luZ19kaXIoKSBjb25zdDsKLQotICAvLyBSZXR1cm5zIHRoZSBUZXN0
Q2FzZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKLSAgLy8g
b3IgTlVMTCBpZiBubyB0ZXN0IGlzIHJ1bm5pbmcuCi0gIGNvbnN0IFRlc3RDYXNlKiBjdXJyZW50
X3Rlc3RfY2FzZSgpIGNvbnN0Ci0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pOwot
Ci0gIC8vIFJldHVybnMgdGhlIFRlc3RJbmZvIG9iamVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1
cnJlbnRseSBydW5uaW5nLAotICAvLyBvciBOVUxMIGlmIG5vIHRlc3QgaXMgcnVubmluZy4KLSAg
Y29uc3QgVGVzdEluZm8qIGN1cnJlbnRfdGVzdF9pbmZvKCkgY29uc3QKLSAgICAgIEdURVNUX0xP
Q0tfRVhDTFVERURfKG11dGV4Xyk7Ci0KLSAgLy8gUmV0dXJucyB0aGUgcmFuZG9tIHNlZWQgdXNl
ZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgdGVzdCBydW4uCi0gIGludCByYW5kb21fc2Vl
ZCgpIGNvbnN0OwotCi0gIC8vIFJldHVybnMgdGhlIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lz
dHJ5IG9iamVjdCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YKLSAgLy8gdmFsdWUtcGFyYW1ldGVyaXpl
ZCB0ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5kIHJlZ2lzdGVyIHRoZW0uCi0gIC8vCi0gIC8vIElO
VEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KLSAg
aW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5JiBwYXJhbWV0ZXJpemVkX3Rl
c3RfcmVnaXN0cnkoKQotICAgICAgR1RFU1RfTE9DS19FWENMVURFRF8obXV0ZXhfKTsKLQotICAv
LyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IGNhc2VzLgotICBpbnQgc3VjY2Vz
c2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdDsKLQotICAvLyBHZXRzIHRoZSBudW1iZXIgb2Yg
ZmFpbGVkIHRlc3QgY2FzZXMuCi0gIGludCBmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7
Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90YWxf
dGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0
ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAotICAvLyB0aGF0IHNob3Vs
ZCBydW4uCi0gIGludCB0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8gR2V0
cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdHMuCi0gIGludCBzdWNjZXNzZnVsX3Rlc3Rf
Y291bnQoKSBjb25zdDsKLQotICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgot
ICBpbnQgZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKLQotICAvLyBHZXRzIHRoZSBudW1iZXIg
b2YgZGlzYWJsZWQgdGVzdHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSBYTUwgcmVwb3J0
LgotICBpbnQgcmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIGRpc2FibGVkIHRlc3RzLgotICBpbnQgZGlzYWJsZWRfdGVzdF9j
b3VudCgpIGNvbnN0OwotCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0byBiZSBwcmlu
dGVkIGluIHRoZSBYTUwgcmVwb3J0LgotICBpbnQgcmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgY29u
c3Q7Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0cy4KLSAgaW50IHRvdGFsX3Rl
c3RfY291bnQoKSBjb25zdDsKLQotICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBz
aG91bGQgcnVuLgotICBpbnQgdGVzdF90b19ydW5fY291bnQoKSBjb25zdDsKLQotICAvLyBHZXRz
IHRoZSB0aW1lIG9mIHRoZSB0ZXN0IHByb2dyYW0gc3RhcnQsIGluIG1zIGZyb20gdGhlIHN0YXJ0
IG9mIHRoZQotICAvLyBVTklYIGVwb2NoLgotICBUaW1lSW5NaWxsaXMgc3RhcnRfdGltZXN0YW1w
KCkgY29uc3Q7Ci0KLSAgLy8gR2V0cyB0aGUgZWxhcHNlZCB0aW1lLCBpbiBtaWxsaXNlY29uZHMu
Ci0gIFRpbWVJbk1pbGxpcyBlbGFwc2VkX3RpbWUoKSBjb25zdDsKLQotICAvLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSB1bml0IHRlc3QgcGFzc2VkIChpLmUuIGFsbCB0ZXN0IGNhc2VzIHBhc3NlZCku
Ci0gIGJvb2wgUGFzc2VkKCkgY29uc3Q7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdW5p
dCB0ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRlc3QgY2FzZSBmYWlsZWQKLSAgLy8gb3Igc29tZXRo
aW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCi0gIGJvb2wgRmFpbGVkKCkgY29uc3Q7
Ci0KLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2Vz
LiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAx
LiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0gIGNvbnN0IFRlc3RD
YXNlKiBHZXRUZXN0Q2FzZShpbnQgaSkgY29uc3Q7Ci0KLSAgLy8gUmV0dXJucyB0aGUgVGVzdFJl
c3VsdCBjb250YWluaW5nIGluZm9ybWF0aW9uIG9uIHRlc3QgZmFpbHVyZXMgYW5kCi0gIC8vIHBy
b3BlcnRpZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVhbCB0ZXN0IGNhc2VzLgotICBjb25z
dCBUZXN0UmVzdWx0JiBhZF9ob2NfdGVzdF9yZXN1bHQoKSBjb25zdDsKLQotICAvLyBSZXR1cm5z
IHRoZSBsaXN0IG9mIGV2ZW50IGxpc3RlbmVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIHRyYWNrIGV2
ZW50cwotICAvLyBpbnNpZGUgR29vZ2xlIFRlc3QuCi0gIFRlc3RFdmVudExpc3RlbmVycyYgbGlz
dGVuZXJzKCk7Ci0KLSBwcml2YXRlOgotICAvLyBSZWdpc3RlcnMgYW5kIHJldHVybnMgYSBnbG9i
YWwgdGVzdCBlbnZpcm9ubWVudC4gIFdoZW4gYSB0ZXN0Ci0gIC8vIHByb2dyYW0gaXMgcnVuLCBh
bGwgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnRzIHdpbGwgYmUgc2V0LXVwIGluCi0gIC8vIHRoZSBv
cmRlciB0aGV5IHdlcmUgcmVnaXN0ZXJlZC4gIEFmdGVyIGFsbCB0ZXN0cyBpbiB0aGUgcHJvZ3Jh
bQotICAvLyBoYXZlIGZpbmlzaGVkLCBhbGwgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnRzIHdpbGwg
YmUgdG9ybi1kb3duIGluCi0gIC8vIHRoZSAqcmV2ZXJzZSogb3JkZXIgdGhleSB3ZXJlIHJlZ2lz
dGVyZWQuCi0gIC8vCi0gIC8vIFRoZSBVbml0VGVzdCBvYmplY3QgdGFrZXMgb3duZXJzaGlwIG9m
IHRoZSBnaXZlbiBlbnZpcm9ubWVudC4KLSAgLy8KLSAgLy8gVGhpcyBtZXRob2QgY2FuIG9ubHkg
YmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgotICBFbnZpcm9ubWVudCogQWRkRW52aXJv
bm1lbnQoRW52aXJvbm1lbnQqIGVudik7Ci0KLSAgLy8gQWRkcyBhIFRlc3RQYXJ0UmVzdWx0IHRv
IHRoZSBjdXJyZW50IFRlc3RSZXN1bHQgb2JqZWN0LiAgQWxsCi0gIC8vIEdvb2dsZSBUZXN0IGFz
c2VydGlvbiBtYWNyb3MgKGUuZy4gQVNTRVJUX1RSVUUsIEVYUEVDVF9FUSwgZXRjKQotICAvLyBl
dmVudHVhbGx5IGNhbGwgdGhpcyB0byByZXBvcnQgdGhlaXIgcmVzdWx0cy4gIFRoZSB1c2VyIGNv
ZGUKLSAgLy8gc2hvdWxkIHVzZSB0aGUgYXNzZXJ0aW9uIG1hY3JvcyBpbnN0ZWFkIG9mIGNhbGxp
bmcgdGhpcyBkaXJlY3RseS4KLSAgdm9pZCBBZGRUZXN0UGFydFJlc3VsdChUZXN0UGFydFJlc3Vs
dDo6VHlwZSByZXN1bHRfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiBmaWxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVfbnVtYmVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvc19zdGFja190cmFjZSkK
LSAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4Xyk7Ci0KLSAgLy8gQWRkcyBhIFRlc3RQ
cm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgZnJv
bQotICAvLyBpbnNpZGUgYSB0ZXN0LCB0byBjdXJyZW50IFRlc3RDYXNlJ3MgYWRfaG9jX3Rlc3Rf
cmVzdWx0XyB3aGVuIGludm9rZWQKLSAgLy8gZnJvbSBTZXRVcFRlc3RDYXNlIG9yIFRlYXJEb3du
VGVzdENhc2UsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0Ci0gIC8vIHdoZW4gaW52b2tl
ZCBlbHNld2hlcmUuICBJZiB0aGUgcmVzdWx0IGFscmVhZHkgY29udGFpbnMgYSBwcm9wZXJ0eSB3
aXRoCi0gIC8vIHRoZSBzYW1lIGtleSwgdGhlIHZhbHVlIHdpbGwgYmUgdXBkYXRlZC4KLSAgdm9p
ZCBSZWNvcmRQcm9wZXJ0eShjb25zdCBzdGQ6OnN0cmluZyYga2V5LCBjb25zdCBzdGQ6OnN0cmlu
ZyYgdmFsdWUpOwotCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNlIGFtb25nIGFsbCB0aGUg
dGVzdCBjYXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rlc3RfY2FzZV9j
b3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgotICBU
ZXN0Q2FzZSogR2V0TXV0YWJsZVRlc3RDYXNlKGludCBpKTsKLQotICAvLyBBY2Nlc3NvcnMgZm9y
IHRoZSBpbXBsZW1lbnRhdGlvbiBvYmplY3QuCi0gIGludGVybmFsOjpVbml0VGVzdEltcGwqIGlt
cGwoKSB7IHJldHVybiBpbXBsXzsgfQotICBjb25zdCBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBp
bXBsKCkgY29uc3QgeyByZXR1cm4gaW1wbF87IH0KLQotICAvLyBUaGVzZSBjbGFzc2VzIGFuZCBm
dW5jdGlvbnMgYXJlIGZyaWVuZHMgYXMgdGhleSBuZWVkIHRvIGFjY2VzcyBwcml2YXRlCi0gIC8v
IG1lbWJlcnMgb2YgVW5pdFRlc3QuCi0gIGZyaWVuZCBjbGFzcyBUZXN0OwotICBmcmllbmQgY2xh
c3MgaW50ZXJuYWw6OkFzc2VydEhlbHBlcjsKLSAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpTY29w
ZWRUcmFjZTsKLSAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpTdHJlYW1pbmdMaXN0ZW5lclRlc3Q7
Ci0gIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6VW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3RIZWxw
ZXI7Ci0gIGZyaWVuZCBFbnZpcm9ubWVudCogQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KEVudmly
b25tZW50KiBlbnYpOwotICBmcmllbmQgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCogaW50ZXJuYWw6
OkdldFVuaXRUZXN0SW1wbCgpOwotICBmcmllbmQgdm9pZCBpbnRlcm5hbDo6UmVwb3J0RmFpbHVy
ZUluVW5rbm93bkxvY2F0aW9uKAotICAgICAgVGVzdFBhcnRSZXN1bHQ6OlR5cGUgcmVzdWx0X3R5
cGUsCi0gICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7Ci0KLSAgLy8gQ3JlYXRlcyBh
biBlbXB0eSBVbml0VGVzdC4KLSAgVW5pdFRlc3QoKTsKLQotICAvLyBEJ3RvcgotICB2aXJ0dWFs
IH5Vbml0VGVzdCgpOwotCi0gIC8vIFB1c2hlcyBhIHRyYWNlIGRlZmluZWQgYnkgU0NPUEVEX1RS
QUNFKCkgb24gdG8gdGhlIHBlci10aHJlYWQKLSAgLy8gR29vZ2xlIFRlc3QgdHJhY2Ugc3RhY2su
Ci0gIHZvaWQgUHVzaEdUZXN0VHJhY2UoY29uc3QgaW50ZXJuYWw6OlRyYWNlSW5mbyYgdHJhY2Up
Ci0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pOwotCi0gIC8vIFBvcHMgYSB0cmFj
ZSBmcm9tIHRoZSBwZXItdGhyZWFkIEdvb2dsZSBUZXN0IHRyYWNlIHN0YWNrLgotICB2b2lkIFBv
cEdUZXN0VHJhY2UoKQotICAgICAgR1RFU1RfTE9DS19FWENMVURFRF8obXV0ZXhfKTsKLQotICAv
LyBQcm90ZWN0cyBtdXRhYmxlIHN0YXRlIGluICppbXBsXy4gIFRoaXMgaXMgbXV0YWJsZSBhcyBz
b21lIGNvbnN0Ci0gIC8vIG1ldGhvZHMgbmVlZCB0byBsb2NrIGl0IHRvby4KLSAgbXV0YWJsZSBp
bnRlcm5hbDo6TXV0ZXggbXV0ZXhfOwotCi0gIC8vIE9wYXF1ZSBpbXBsZW1lbnRhdGlvbiBvYmpl
Y3QuICBUaGlzIGZpZWxkIGlzIG5ldmVyIGNoYW5nZWQgb25jZQotICAvLyB0aGUgb2JqZWN0IGlz
IGNvbnN0cnVjdGVkLiAgV2UgZG9uJ3QgbWFyayBpdCBhcyBjb25zdCBoZXJlLCBhcwotICAvLyBk
b2luZyBzbyB3aWxsIGNhdXNlIGEgd2FybmluZyBpbiB0aGUgY29uc3RydWN0b3Igb2YgVW5pdFRl
c3QuCi0gIC8vIE11dGFibGUgc3RhdGUgaW4gKmltcGxfIGlzIHByb3RlY3RlZCBieSBtdXRleF8u
Ci0gIGludGVybmFsOjpVbml0VGVzdEltcGwqIGltcGxfOwotCi0gIC8vIFdlIGRpc2FsbG93IGNv
cHlpbmcgVW5pdFRlc3QuCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVW5pdFRl
c3QpOwotfTsKLQotLy8gQSBjb252ZW5pZW50IHdyYXBwZXIgZm9yIGFkZGluZyBhbiBlbnZpcm9u
bWVudCBmb3IgdGhlIHRlc3QKLS8vIHByb2dyYW0uCi0vLwotLy8gWW91IHNob3VsZCBjYWxsIHRo
aXMgYmVmb3JlIFJVTl9BTExfVEVTVFMoKSBpcyBjYWxsZWQsIHByb2JhYmx5IGluCi0vLyBtYWlu
KCkuICBJZiB5b3UgdXNlIGd0ZXN0X21haW4sIHlvdSBuZWVkIHRvIGNhbGwgdGhpcyBiZWZvcmUg
bWFpbigpCi0vLyBzdGFydHMgZm9yIGl0IHRvIHRha2UgZWZmZWN0LiAgRm9yIGV4YW1wbGUsIHlv
dSBjYW4gZGVmaW5lIGEgZ2xvYmFsCi0vLyB2YXJpYWJsZSBsaWtlIHRoaXM6Ci0vLwotLy8gICB0
ZXN0aW5nOjpFbnZpcm9ubWVudCogY29uc3QgZm9vX2VudiA9Ci0vLyAgICAgICB0ZXN0aW5nOjpB
ZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IEZvb0Vudmlyb25tZW50KTsKLS8vCi0vLyBIb3dl
dmVyLCB3ZSBzdHJvbmdseSByZWNvbW1lbmQgeW91IHRvIHdyaXRlIHlvdXIgb3duIG1haW4oKSBh
bmQKLS8vIGNhbGwgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KCkgdGhlcmUsIGFzIHJlbHlpbmcg
b24gaW5pdGlhbGl6YXRpb24KLS8vIG9mIGdsb2JhbCB2YXJpYWJsZXMgbWFrZXMgdGhlIGNvZGUg
aGFyZGVyIHRvIHJlYWQgYW5kIG1heSBjYXVzZQotLy8gcHJvYmxlbXMgd2hlbiB5b3UgcmVnaXN0
ZXIgbXVsdGlwbGUgZW52aXJvbm1lbnRzIGZyb20gZGlmZmVyZW50Ci0vLyB0cmFuc2xhdGlvbiB1
bml0cyBhbmQgdGhlIGVudmlyb25tZW50cyBoYXZlIGRlcGVuZGVuY2llcyBhbW9uZyB0aGVtCi0v
LyAocmVtZW1iZXIgdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCBndWFyYW50ZWUgdGhlIG9yZGVy
IGluIHdoaWNoCi0vLyBnbG9iYWwgdmFyaWFibGVzIGZyb20gZGlmZmVyZW50IHRyYW5zbGF0aW9u
IHVuaXRzIGFyZSBpbml0aWFsaXplZCkuCi1pbmxpbmUgRW52aXJvbm1lbnQqIEFkZEdsb2JhbFRl
c3RFbnZpcm9ubWVudChFbnZpcm9ubWVudCogZW52KSB7Ci0gIHJldHVybiBVbml0VGVzdDo6R2V0
SW5zdGFuY2UoKS0+QWRkRW52aXJvbm1lbnQoZW52KTsKLX0KLQotLy8gSW5pdGlhbGl6ZXMgR29v
Z2xlIFRlc3QuICBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nCi0vLyBSVU5fQUxM
X1RFU1RTKCkuICBJbiBwYXJ0aWN1bGFyLCBpdCBwYXJzZXMgYSBjb21tYW5kIGxpbmUgZm9yIHRo
ZQotLy8gZmxhZ3MgdGhhdCBHb29nbGUgVGVzdCByZWNvZ25pemVzLiAgV2hlbmV2ZXIgYSBHb29n
bGUgVGVzdCBmbGFnIGlzCi0vLyBzZWVuLCBpdCBpcyByZW1vdmVkIGZyb20gYXJndiwgYW5kICph
cmdjIGlzIGRlY3JlbWVudGVkLgotLy8KLS8vIE5vIHZhbHVlIGlzIHJldHVybmVkLiAgSW5zdGVh
ZCwgdGhlIEdvb2dsZSBUZXN0IGZsYWcgdmFyaWFibGVzIGFyZQotLy8gdXBkYXRlZC4KLS8vCi0v
LyBDYWxsaW5nIHRoZSBmdW5jdGlvbiBmb3IgdGhlIHNlY29uZCB0aW1lIGhhcyBubyB1c2VyLXZp
c2libGUgZWZmZWN0LgotR1RFU1RfQVBJXyB2b2lkIEluaXRHb29nbGVUZXN0KGludCogYXJnYywg
Y2hhcioqIGFyZ3YpOwotCi0vLyBUaGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4gYmUgdXNlZCBp
biBXaW5kb3dzIHByb2dyYW1zIGNvbXBpbGVkIGluCi0vLyBVTklDT0RFIG1vZGUuCi1HVEVTVF9B
UElfIHZvaWQgSW5pdEdvb2dsZVRlc3QoaW50KiBhcmdjLCB3Y2hhcl90KiogYXJndik7Ci0KLW5h
bWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIFNlcGFyYXRlIHRoZSBlcnJvciBnZW5lcmF0aW5nIGNv
ZGUgZnJvbSB0aGUgY29kZSBwYXRoIHRvIHJlZHVjZSB0aGUgc3RhY2sKLS8vIGZyYW1lIHNpemUg
b2YgQ21wSGVscGVyRVEuIFRoaXMgaGVscHMgcmVkdWNlIHRoZSBvdmVyaGVhZCBvZiBzb21lIHNh
bml0aXplcnMKLS8vIHdoZW4gY2FsbGluZyBFWFBFQ1RfKiBpbiBhIHRpZ2h0IGxvb3AuCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBl
ckVRRmFpbHVyZShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQxJiBsaHMsIGNvbnN0IFQyJiByaHMpIHsK
LSAgcmV0dXJuIEVxRmFpbHVyZShsaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICBy
aHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFp
bHVyZU1lc3NhZ2UobGhzLCByaHMpLAotICAgICAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBh
cmlzb25GYWlsdXJlTWVzc2FnZShyaHMsIGxocyksCi0gICAgICAgICAgICAgICAgICAgZmFsc2Up
OwotfQotCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fRVEuCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotQXNzZXJ0aW9uUmVzdWx0IENtcEhl
bHBlckVRKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFQxJiBsaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VDImIHJocykgewotICBpZiAobGhzID09IHJocykgewotICAgIHJldHVybiBBc3NlcnRpb25TdWNj
ZXNzKCk7Ci0gIH0KLQotICByZXR1cm4gQ21wSGVscGVyRVFGYWlsdXJlKGxoc19leHByZXNzaW9u
LCByaHNfZXhwcmVzc2lvbiwgbGhzLCByaHMpOwotfQotCi0vLyBXaXRoIHRoaXMgb3ZlcmxvYWRl
ZCB2ZXJzaW9uLCB3ZSBhbGxvdyBhbm9ueW1vdXMgZW51bXMgdG8gYmUgdXNlZAotLy8gaW4ge0FT
U0VSVHxFWFBFQ1R9X0VRIHdoZW4gY29tcGlsZWQgd2l0aCBnY2MgNCwgYXMgYW5vbnltb3VzIGVu
dW1zCi0vLyBjYW4gYmUgaW1wbGljaXRseSBjYXN0IHRvIEJpZ2dlc3RJbnQuCi1HVEVTVF9BUElf
IEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJoc19l
eHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlnZ2Vz
dEludCBsaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWdnZXN0
SW50IHJocyk7Ci0KLS8vIFRoZSBoZWxwZXIgY2xhc3MgZm9yIHtBU1NFUlR8RVhQRUNUfV9FUS4g
IFRoZSB0ZW1wbGF0ZSBhcmd1bWVudAotLy8gbGhzX2lzX251bGxfbGl0ZXJhbCBpcyB0cnVlIGlm
ZiB0aGUgZmlyc3QgYXJndW1lbnQgdG8gQVNTRVJUX0VRKCkKLS8vIGlzIGEgbnVsbCBwb2ludGVy
IGxpdGVyYWwuICBUaGUgZm9sbG93aW5nIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMKLS8vIGZv
ciBsaHNfaXNfbnVsbF9saXRlcmFsIGJlaW5nIGZhbHNlLgotdGVtcGxhdGUgPGJvb2wgbGhzX2lz
X251bGxfbGl0ZXJhbD4KLWNsYXNzIEVxSGVscGVyIHsKLSBwdWJsaWM6Ci0gIC8vIFRoaXMgdGVt
cGxhdGl6ZWQgdmVyc2lvbiBpcyBmb3IgdGhlIGdlbmVyYWwgY2FzZS4KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLSAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBDb21wYXJl
KGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBUMSYgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVDImIHJocykgewotICAgIHJldHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lv
biwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKLSAgfQotCi0gIC8vIFdpdGggdGhpcyBvdmVy
bG9hZGVkIHZlcnNpb24sIHdlIGFsbG93IGFub255bW91cyBlbnVtcyB0byBiZSB1c2VkCi0gIC8v
IGluIHtBU1NFUlR8RVhQRUNUfV9FUSB3aGVuIGNvbXBpbGVkIHdpdGggZ2NjIDQsIGFzIGFub255
bW91cwotICAvLyBlbnVtcyBjYW4gYmUgaW1wbGljaXRseSBjYXN0IHRvIEJpZ2dlc3RJbnQuCi0g
IC8vCi0gIC8vIEV2ZW4gdGhvdWdoIGl0cyBib2R5IGxvb2tzIHRoZSBzYW1lIGFzIHRoZSBhYm92
ZSB2ZXJzaW9uLCB3ZQotICAvLyBjYW5ub3QgbWVyZ2UgdGhlIHR3bywgYXMgaXQgd2lsbCBtYWtl
IGFub255bW91cyBlbnVtcyB1bmhhcHB5LgotICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENvbXBh
cmUoY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQmlnZ2VzdEludCByaHMpIHsKLSAgICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4cHJl
c3Npb24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7Ci0gIH0KLX07Ci0KLS8vIFRoaXMgc3Bl
Y2lhbGl6YXRpb24gaXMgdXNlZCB3aGVuIHRoZSBmaXJzdCBhcmd1bWVudCB0byBBU1NFUlRfRVEo
KQotLy8gaXMgYSBudWxsIHBvaW50ZXIgbGl0ZXJhbCwgbGlrZSBOVUxMLCBmYWxzZSwgb3IgMC4K
LXRlbXBsYXRlIDw+Ci1jbGFzcyBFcUhlbHBlcjx0cnVlPiB7Ci0gcHVibGljOgotICAvLyBXZSBk
ZWZpbmUgdHdvIG92ZXJsb2FkZWQgdmVyc2lvbnMgb2YgQ29tcGFyZSgpLiAgVGhlIGZpcnN0Ci0g
IC8vIHZlcnNpb24gd2lsbCBiZSBwaWNrZWQgd2hlbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIEFT
U0VSVF9FUSgpIGlzCi0gIC8vIE5PVCBhIHBvaW50ZXIsIGUuZy4gQVNTRVJUX0VRKDAsIEFuSW50
RnVuY3Rpb24oKSkgb3IKLSAgLy8gRVhQRUNUX0VRKGZhbHNlLCBhX2Jvb2wpLgotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENv
bXBhcmUoCi0gICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgIGNvbnN0IGNo
YXIqIHJoc19leHByZXNzaW9uLAotICAgICAgY29uc3QgVDEmIGxocywKLSAgICAgIGNvbnN0IFQy
JiByaHMsCi0gICAgICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgcHJldmVudHMgdGhpcyBvdmVybG9h
ZCBmcm9tIGJlaW5nIGNvbnNpZGVyZWQgaWYgVDIKLSAgICAgIC8vIGlzIG5vdCBhIHBvaW50ZXIg
dHlwZS4gIFdlIG5lZWQgdGhpcyBiZWNhdXNlIEFTU0VSVF9FUShOVUxMLCBteV9wdHIpCi0gICAg
ICAvLyBleHBhbmRzIHRvIENvbXBhcmUoIiIsICIiLCBOVUxMLCBteV9wdHIpLCB3aGljaCByZXF1
aXJlcyBhIGNvbnZlcnNpb24KLSAgICAgIC8vIHRvIG1hdGNoIHRoZSBTZWNyZXQqIGluIHRoZSBv
dGhlciBvdmVybG9hZCwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIG1ha2UKLSAgICAgIC8vIHRoaXMg
dGVtcGxhdGUgbWF0Y2ggYmV0dGVyLgotICAgICAgdHlwZW5hbWUgRW5hYmxlSWY8IWlzX3BvaW50
ZXI8VDI+Ojp2YWx1ZT46OnR5cGUqID0gMCkgewotICAgIHJldHVybiBDbXBIZWxwZXJFUShsaHNf
ZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKLSAgfQotCi0gIC8vIFRoaXMg
dmVyc2lvbiB3aWxsIGJlIHBpY2tlZCB3aGVuIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gQVNTRVJU
X0VRKCkgaXMgYQotICAvLyBwb2ludGVyLCBlLmcuIEFTU0VSVF9FUShOVUxMLCBhX3BvaW50ZXIp
LgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBDb21w
YXJlKAotICAgICAgY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICBjb25zdCBjaGFy
KiByaHNfZXhwcmVzc2lvbiwKLSAgICAgIC8vIFdlIHVzZWQgdG8gaGF2ZSBhIHNlY29uZCB0ZW1w
bGF0ZSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBTZWNyZXQqLiAgVGhhdAotICAgICAgLy8gdGVtcGxh
dGUgcGFyYW1ldGVyIHdvdWxkIGRlZHVjZSB0byAnbG9uZycsIG1ha2luZyB0aGlzIGEgYmV0dGVy
IG1hdGNoCi0gICAgICAvLyB0aGFuIHRoZSBmaXJzdCBvdmVybG9hZCBldmVuIHdpdGhvdXQgdGhl
IGZpcnN0IG92ZXJsb2FkJ3MgRW5hYmxlSWYuCi0gICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBnY2Mg
d2l0aCAtV2NvbnZlcnNpb24tbnVsbCB3YXJucyB3aGVuICJwYXNzaW5nIE5VTEwgdG8KLSAgICAg
IC8vIG5vbi1wb2ludGVyIGFyZ3VtZW50IiAoZXZlbiBhIGRlZHVjZWQgaW50ZWdyYWwgYXJndW1l
bnQpLCBzbyB0aGUgb2xkCi0gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYXVzZWQgd2FybmluZ3Mg
aW4gdXNlciBjb2RlLgotICAgICAgU2VjcmV0KiAvKiBsaHMgKE5VTEwpICovLAotICAgICAgVCog
cmhzKSB7Ci0gICAgLy8gV2UgYWxyZWFkeSBrbm93IHRoYXQgJ2xocycgaXMgYSBudWxsIHBvaW50
ZXIuCi0gICAgcmV0dXJuIENtcEhlbHBlckVRKGxoc19leHByZXNzaW9uLCByaHNfZXhwcmVzc2lv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VCo+KE5VTEwpLCByaHMpOwot
ICB9Ci19OwotCi0vLyBTZXBhcmF0ZSB0aGUgZXJyb3IgZ2VuZXJhdGluZyBjb2RlIGZyb20gdGhl
IGNvZGUgcGF0aCB0byByZWR1Y2UgdGhlIHN0YWNrCi0vLyBmcmFtZSBzaXplIG9mIENtcEhlbHBl
ck9QLiBUaGlzIGhlbHBzIHJlZHVjZSB0aGUgb3ZlcmhlYWQgb2Ygc29tZSBzYW5pdGl6ZXJzCi0v
LyB3aGVuIGNhbGxpbmcgRVhQRUNUX09QIGluIGEgdGlnaHQgbG9vcC4KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1Bc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyT3BGYWlsdXJl
KGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBjaGFyKiBleHByMiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVDEmIHZhbDEsIGNvbnN0IFQyJiB2YWwyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBvcCkgewotICByZXR1cm4g
QXNzZXJ0aW9uRmFpbHVyZSgpCi0gICAgICAgICA8PCAiRXhwZWN0ZWQ6ICgiIDw8IGV4cHIxIDw8
ICIpICIgPDwgb3AgPDwgIiAoIiA8PCBleHByMgotICAgICAgICAgPDwgIiksIGFjdHVhbDogIiA8
PCBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UodmFsMSwgdmFsMikKLSAgICAgICAg
IDw8ICIgdnMgIiA8PCBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UodmFsMiwgdmFs
MSk7Ci19Ci0KLS8vIEEgbWFjcm8gZm9yIGltcGxlbWVudGluZyB0aGUgaGVscGVyIGZ1bmN0aW9u
cyBuZWVkZWQgdG8gaW1wbGVtZW50Ci0vLyBBU1NFUlRfPz8gYW5kIEVYUEVDVF8/Py4gIEl0IGlz
IGhlcmUganVzdCB0byBhdm9pZCBjb3B5LWFuZC1wYXN0ZQotLy8gb2Ygc2ltaWxhciBjb2RlLgot
Ly8KLS8vIEZvciBlYWNoIHRlbXBsYXRpemVkIGhlbHBlciBmdW5jdGlvbiwgd2UgYWxzbyBkZWZp
bmUgYW4gb3ZlcmxvYWRlZAotLy8gdmVyc2lvbiBmb3IgQmlnZ2VzdEludCBpbiBvcmRlciB0byBy
ZWR1Y2UgY29kZSBibG9hdCBhbmQgYWxsb3cKLS8vIGFub255bW91cyBlbnVtcyB0byBiZSB1c2Vk
IHdpdGgge0FTU0VSVHxFWFBFQ1R9Xz8/IHdoZW4gY29tcGlsZWQKLS8vIHdpdGggZ2NjIDQuCi0v
LwotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9H
UkFNLgotCi0jZGVmaW5lIEdURVNUX0lNUExfQ01QX0hFTFBFUl8ob3BfbmFtZSwgb3ApXAotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj5cCi1Bc3NlcnRpb25SZXN1bHQgQ21wSGVs
cGVyIyNvcF9uYW1lKGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBjaGFyKiBleHByMiwgXAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUMSYgdmFsMSwgY29uc3QgVDIm
IHZhbDIpIHtcCi0gIGlmICh2YWwxIG9wIHZhbDIpIHtcCi0gICAgcmV0dXJuIEFzc2VydGlvblN1
Y2Nlc3MoKTtcCi0gIH0gZWxzZSB7XAotICAgIHJldHVybiBDbXBIZWxwZXJPcEZhaWx1cmUoZXhw
cjEsIGV4cHIyLCB2YWwxLCB2YWwyLCAjb3ApO1wKLSAgfVwKLX1cCi1HVEVTVF9BUElfIEFzc2Vy
dGlvblJlc3VsdCBDbXBIZWxwZXIjI29wX25hbWUoXAotICAgIGNvbnN0IGNoYXIqIGV4cHIxLCBj
b25zdCBjaGFyKiBleHByMiwgQmlnZ2VzdEludCB2YWwxLCBCaWdnZXN0SW50IHZhbDIpCi0KLS8v
IElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4K
LQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1f
TkUKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTkUsICE9KTsKLS8vIEltcGxlbWVudHMgdGhlIGhl
bHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X0xFCi1HVEVTVF9JTVBMX0NNUF9IRUxQ
RVJfKExFLCA8PSk7Ci0vLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NF
UlR8RVhQRUNUfV9MVAotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMVCwgPCk7Ci0vLyBJbXBsZW1l
bnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9HRQotR1RFU1RfSU1Q
TF9DTVBfSEVMUEVSXyhHRSwgPj0pOwotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9u
IGZvciB7QVNTRVJUfEVYUEVDVH1fR1QKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oR1QsID4pOwot
Ci0jdW5kZWYgR1RFU1RfSU1QTF9DTVBfSEVMUEVSXwotCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9u
IGZvciB7QVNTRVJUfEVYUEVDVH1fU1RSRVEuCi0vLwotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJ
T04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9HUkFNLgotR1RFU1RfQVBJXyBBc3NlcnRpb25S
ZXN1bHQgQ21wSGVscGVyU1RSRVEoY29uc3QgY2hhciogczFfZXhwcmVzc2lvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHMyX2V4cHJlc3Np
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiBzMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIHMyKTsKLQotLy8gVGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X1NU
UkNBU0VFUS4KLS8vCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4g
QSBVU0VSIFBST0dSQU0uCi1HVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJD
QVNFRVEoY29uc3QgY2hhciogczFfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzMl9leHByZXNzaW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHMxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IHMyKTsKLQotLy8gVGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X1NUUk5F
LgotLy8KLS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIg
UFJPR1JBTS4KLUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlclNUUk5FKGNvbnN0
IGNoYXIqIHMxX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBzMl9leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogczEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzMik7Ci0KLS8vIFRoZSBoZWxwZXIg
ZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9TVFJDQVNFTkUuCi0vLwotLy8gSU5URVJOQUwg
SU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9HUkFNLgotR1RFU1RfQVBJ
XyBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyU1RSQ0FTRU5FKGNvbnN0IGNoYXIqIHMxX2V4cHJl
c3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogczJfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzMik7Ci0KLQotLy8gSGVscGVyIGZ1bmN0
aW9uIGZvciAqX1NUUkVRIG9uIHdpZGUgc3RyaW5ncy4KLS8vCi0vLyBJTlRFUk5BTCBJTVBMRU1F
TlRBVElPTiAtIERPIE5PVCBVU0UgSU4gQSBVU0VSIFBST0dSQU0uCi1HVEVTVF9BUElfIEFzc2Vy
dGlvblJlc3VsdCBDbXBIZWxwZXJTVFJFUShjb25zdCBjaGFyKiBzMV9leHByZXNzaW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogczJfZXhw
cmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHdjaGFyX3QqIHMxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgd2NoYXJfdCogczIpOwotCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yICpfU1RSTkUgb24g
d2lkZSBzdHJpbmdzLgotLy8KLS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVT
RSBJTiBBIFVTRVIgUFJPR1JBTS4KLUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBl
clNUUk5FKGNvbnN0IGNoYXIqIHMxX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzMl9leHByZXNzaW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2NoYXJfdCogczEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3Y2hhcl90KiBzMik7
Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBJc1N1YnN0cmluZygpIGFuZCBJc05v
dFN1YnN0cmluZygpIGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIHRoZQotLy8gZmlyc3QgYXJn
dW1lbnQgdG8ge0VYUEVDVCxBU1NFUlR9X1BSRURfRk9STUFUMigpLCBub3QgYnkKLS8vIHRoZW1z
ZWx2ZXMuICBUaGV5IGNoZWNrIHdoZXRoZXIgbmVlZGxlIGlzIGEgc3Vic3RyaW5nIG9mIGhheXN0
YWNrCi0vLyAoTlVMTCBpcyBjb25zaWRlcmVkIGEgc3Vic3RyaW5nIG9mIGl0c2VsZiBvbmx5KSwg
YW5kIHJldHVybiBhbgotLy8gYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZXkgZmFp
bC4KLS8vCi0vLyBUaGUge25lZWRsZSxoYXlzdGFja31fZXhwciBhcmd1bWVudHMgYXJlIHRoZSBz
dHJpbmdpZmllZAotLy8gZXhwcmVzc2lvbnMgdGhhdCBnZW5lcmF0ZWQgdGhlIHR3byByZWFsIGFy
Z3VtZW50cy4KLUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IElzU3Vic3RyaW5nKAotICAgIGNv
bnN0IGNoYXIqIG5lZWRsZV9leHByLCBjb25zdCBjaGFyKiBoYXlzdGFja19leHByLAotICAgIGNv
bnN0IGNoYXIqIG5lZWRsZSwgY29uc3QgY2hhciogaGF5c3RhY2spOwotR1RFU1RfQVBJXyBBc3Nl
cnRpb25SZXN1bHQgSXNTdWJzdHJpbmcoCi0gICAgY29uc3QgY2hhciogbmVlZGxlX2V4cHIsIGNv
bnN0IGNoYXIqIGhheXN0YWNrX2V4cHIsCi0gICAgY29uc3Qgd2NoYXJfdCogbmVlZGxlLCBjb25z
dCB3Y2hhcl90KiBoYXlzdGFjayk7Ci1HVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCBJc05vdFN1
YnN0cmluZygKLSAgICBjb25zdCBjaGFyKiBuZWVkbGVfZXhwciwgY29uc3QgY2hhciogaGF5c3Rh
Y2tfZXhwciwKLSAgICBjb25zdCBjaGFyKiBuZWVkbGUsIGNvbnN0IGNoYXIqIGhheXN0YWNrKTsK
LUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IElzTm90U3Vic3RyaW5nKAotICAgIGNvbnN0IGNo
YXIqIG5lZWRsZV9leHByLCBjb25zdCBjaGFyKiBoYXlzdGFja19leHByLAotICAgIGNvbnN0IHdj
aGFyX3QqIG5lZWRsZSwgY29uc3Qgd2NoYXJfdCogaGF5c3RhY2spOwotR1RFU1RfQVBJXyBBc3Nl
cnRpb25SZXN1bHQgSXNTdWJzdHJpbmcoCi0gICAgY29uc3QgY2hhciogbmVlZGxlX2V4cHIsIGNv
bnN0IGNoYXIqIGhheXN0YWNrX2V4cHIsCi0gICAgY29uc3QgOjpzdGQ6OnN0cmluZyYgbmVlZGxl
LCBjb25zdCA6OnN0ZDo6c3RyaW5nJiBoYXlzdGFjayk7Ci1HVEVTVF9BUElfIEFzc2VydGlvblJl
c3VsdCBJc05vdFN1YnN0cmluZygKLSAgICBjb25zdCBjaGFyKiBuZWVkbGVfZXhwciwgY29uc3Qg
Y2hhciogaGF5c3RhY2tfZXhwciwKLSAgICBjb25zdCA6OnN0ZDo6c3RyaW5nJiBuZWVkbGUsIGNv
bnN0IDo6c3RkOjpzdHJpbmcmIGhheXN0YWNrKTsKLQotI2lmIEdURVNUX0hBU19TVERfV1NUUklO
RwotR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgSXNTdWJzdHJpbmcoCi0gICAgY29uc3QgY2hh
ciogbmVlZGxlX2V4cHIsIGNvbnN0IGNoYXIqIGhheXN0YWNrX2V4cHIsCi0gICAgY29uc3QgOjpz
dGQ6OndzdHJpbmcmIG5lZWRsZSwgY29uc3QgOjpzdGQ6OndzdHJpbmcmIGhheXN0YWNrKTsKLUdU
RVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IElzTm90U3Vic3RyaW5nKAotICAgIGNvbnN0IGNoYXIq
IG5lZWRsZV9leHByLCBjb25zdCBjaGFyKiBoYXlzdGFja19leHByLAotICAgIGNvbnN0IDo6c3Rk
Ojp3c3RyaW5nJiBuZWVkbGUsIGNvbnN0IDo6c3RkOjp3c3RyaW5nJiBoYXlzdGFjayk7Ci0jZW5k
aWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0v
LyBIZWxwZXIgdGVtcGxhdGUgZnVuY3Rpb24gZm9yIGNvbXBhcmluZyBmbG9hdGluZy1wb2ludHMu
Ci0vLwotLy8gVGVtcGxhdGUgcGFyYW1ldGVyOgotLy8KLS8vICAgUmF3VHlwZTogdGhlIHJhdyBm
bG9hdGluZy1wb2ludCB0eXBlIChlaXRoZXIgZmxvYXQgb3IgZG91YmxlKQotLy8KLS8vIElOVEVS
TkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KLXRlbXBs
YXRlIDx0eXBlbmFtZSBSYXdUeXBlPgotQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlckZsb2F0aW5n
UG9pbnRFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmhzX2V4cHJlc3Npb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhd1R5cGUgbGhzX3ZhbHVlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXdUeXBlIHJoc192YWx1ZSkg
ewotICBjb25zdCBGbG9hdGluZ1BvaW50PFJhd1R5cGU+IGxocyhsaHNfdmFsdWUpLCByaHMocmhz
X3ZhbHVlKTsKLQotICBpZiAobGhzLkFsbW9zdEVxdWFscyhyaHMpKSB7Ci0gICAgcmV0dXJuIEFz
c2VydGlvblN1Y2Nlc3MoKTsKLSAgfQotCi0gIDo6c3RkOjpzdHJpbmdzdHJlYW0gbGhzX3NzOwot
ICBsaHNfc3MgPDwgc3RkOjpzZXRwcmVjaXNpb24oc3RkOjpudW1lcmljX2xpbWl0czxSYXdUeXBl
Pjo6ZGlnaXRzMTAgKyAyKQotICAgICAgICAgPDwgbGhzX3ZhbHVlOwotCi0gIDo6c3RkOjpzdHJp
bmdzdHJlYW0gcmhzX3NzOwotICByaHNfc3MgPDwgc3RkOjpzZXRwcmVjaXNpb24oc3RkOjpudW1l
cmljX2xpbWl0czxSYXdUeXBlPjo6ZGlnaXRzMTAgKyAyKQotICAgICAgICAgPDwgcmhzX3ZhbHVl
OwotCi0gIHJldHVybiBFcUZhaWx1cmUobGhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAg
ICAgcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgU3RyaW5nU3RyZWFtVG9TdHJp
bmcoJmxoc19zcyksCi0gICAgICAgICAgICAgICAgICAgU3RyaW5nU3RyZWFtVG9TdHJpbmcoJnJo
c19zcyksCi0gICAgICAgICAgICAgICAgICAgZmFsc2UpOwotfQotCi0vLyBIZWxwZXIgZnVuY3Rp
b24gZm9yIGltcGxlbWVudGluZyBBU1NFUlRfTkVBUi4KLS8vCi0vLyBJTlRFUk5BTCBJTVBMRU1F
TlRBVElPTiAtIERPIE5PVCBVU0UgSU4gQSBVU0VSIFBST0dSQU0uCi1HVEVTVF9BUElfIEFzc2Vy
dGlvblJlc3VsdCBEb3VibGVOZWFyUHJlZEZvcm1hdChjb25zdCBjaGFyKiBleHByMSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4
cHIyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogYWJzX2Vycm9yX2V4cHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkb3VibGUgdmFsMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB2YWwyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGFic19lcnJvcik7Ci0KLS8vIElOVEVS
TkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLyBBIGNsYXNz
IHRoYXQgZW5hYmxlcyBvbmUgdG8gc3RyZWFtIG1lc3NhZ2VzIHRvIGFzc2VydGlvbiBtYWNyb3MK
LWNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0SGVscGVyIHsKLSBwdWJsaWM6Ci0gIC8vIENvbnN0cnVj
dG9yLgotICBBc3NlcnRIZWxwZXIoVGVzdFBhcnRSZXN1bHQ6OlR5cGUgdHlwZSwKLSAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsCi0gICAgICAgICAgICAgICBpbnQgbGluZSwKLSAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwotICB+QXNzZXJ0SGVscGVyKCk7Ci0KLSAg
Ly8gTWVzc2FnZSBhc3NpZ25tZW50IGlzIGEgc2VtYW50aWMgdHJpY2sgdG8gZW5hYmxlIGFzc2Vy
dGlvbgotICAvLyBzdHJlYW1pbmc7IHNlZSB0aGUgR1RFU1RfTUVTU0FHRV8gbWFjcm8gYmVsb3cu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IE1lc3NhZ2UmIG1lc3NhZ2UpIGNvbnN0OwotCi0gcHJp
dmF0ZToKLSAgLy8gV2UgcHV0IG91ciBkYXRhIGluIGEgc3RydWN0IHNvIHRoYXQgdGhlIHNpemUg
b2YgdGhlIEFzc2VydEhlbHBlciBjbGFzcyBjYW4KLSAgLy8gYmUgYXMgc21hbGwgYXMgcG9zc2li
bGUuICBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIGdjYyBpcyBpbmNhcGFibGUgb2YKLSAgLy8g
cmUtdXNpbmcgc3RhY2sgc3BhY2UgZXZlbiBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcywgc28gZXZl
cnkgRVhQRUNUX0VRCi0gIC8vIHJlc2VydmVzIHN0YWNrIHNwYWNlIGZvciBhbm90aGVyIEFzc2Vy
dEhlbHBlci4KLSAgc3RydWN0IEFzc2VydEhlbHBlckRhdGEgewotICAgIEFzc2VydEhlbHBlckRh
dGEoVGVzdFBhcnRSZXN1bHQ6OlR5cGUgdCwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIHNyY2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICBpbnQgbGluZV9udW0sCi0gICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cpCi0gICAgICAgIDogdHlwZSh0KSwgZmlsZShz
cmNmaWxlKSwgbGluZShsaW5lX251bSksIG1lc3NhZ2UobXNnKSB7IH0KLQotICAgIFRlc3RQYXJ0
UmVzdWx0OjpUeXBlIGNvbnN0IHR5cGU7Ci0gICAgY29uc3QgY2hhciogY29uc3QgZmlsZTsKLSAg
ICBpbnQgY29uc3QgbGluZTsKLSAgICBzdGQ6OnN0cmluZyBjb25zdCBtZXNzYWdlOwotCi0gICBw
cml2YXRlOgotICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oQXNzZXJ0SGVscGVy
RGF0YSk7Ci0gIH07Ci0KLSAgQXNzZXJ0SGVscGVyRGF0YSogY29uc3QgZGF0YV87Ci0KLSAgR1RF
U1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhBc3NlcnRIZWxwZXIpOwotfTsKLQotfSAgLy8g
bmFtZXNwYWNlIGludGVybmFsCi0KLS8vIFRoZSBwdXJlIGludGVyZmFjZSBjbGFzcyB0aGF0IGFs
bCB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGluaGVyaXQgZnJvbS4KLS8vIEEgdmFsdWUtcGFy
YW1ldGVyaXplZCBjbGFzcyBtdXN0IGluaGVyaXQgZnJvbSBib3RoIDo6dGVzdGluZzo6VGVzdCBh
bmQKLS8vIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlLiBJbiBtb3N0IGNhc2VzIHRoYXQg
anVzdCBtZWFucyBpbmhlcml0aW5nCi0vLyBmcm9tIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbSwg
YnV0IG1vcmUgY29tcGxpY2F0ZWQgdGVzdCBoaWVyYXJjaGllcwotLy8gbWF5IG5lZWQgdG8gaW5o
ZXJpdCBmcm9tIFRlc3QgYW5kIFdpdGhQYXJhbUludGVyZmFjZSBhdCBkaWZmZXJlbnQgbGV2ZWxz
LgotLy8KLS8vIFRoaXMgaW50ZXJmYWNlIGhhcyBzdXBwb3J0IGZvciBhY2Nlc3NpbmcgdGhlIHRl
c3QgcGFyYW1ldGVyIHZhbHVlIHZpYQotLy8gdGhlIEdldFBhcmFtKCkgbWV0aG9kLgotLy8KLS8v
IFVzZSBpdCB3aXRoIG9uZSBvZiB0aGUgcGFyYW1ldGVyIGdlbmVyYXRvciBkZWZpbmluZyBmdW5j
dGlvbnMsIGxpa2UgUmFuZ2UoKSwKLS8vIFZhbHVlcygpLCBWYWx1ZXNJbigpLCBCb29sKCksIGFu
ZCBDb21iaW5lKCkuCi0vLwotLy8gY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRl
c3RXaXRoUGFyYW08aW50PiB7Ci0vLyAgcHJvdGVjdGVkOgotLy8gICBGb29UZXN0KCkgewotLy8g
ICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgotLy8gICB9Ci0vLyAgIHZpcnR1YWwgfkZv
b1Rlc3QoKSB7Ci0vLyAgICAgLy8gQ2FuIHVzZSBHZXRQYXJhbSgpIGhlcmUuCi0vLyAgIH0KLS8v
ICAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBo
ZXJlLgotLy8gICB9Ci0vLyAgIHZpcnR1YWwgdm9pZCBUZWFyRG93biB7Ci0vLyAgICAgLy8gQ2Fu
IHVzZSBHZXRQYXJhbSgpIGhlcmUuCi0vLyAgIH0KLS8vIH07Ci0vLyBURVNUX1AoRm9vVGVzdCwg
RG9lc0JhcikgewotLy8gICAvLyBDYW4gdXNlIEdldFBhcmFtKCkgbWV0aG9kIGhlcmUuCi0vLyAg
IEZvbyBmb287Ci0vLyAgIEFTU0VSVF9UUlVFKGZvby5Eb2VzQmFyKEdldFBhcmFtKCkpKTsKLS8v
IH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE9uZVRvVGVuUmFuZ2UsIEZvb1Rlc3QsIDo6
dGVzdGluZzo6UmFuZ2UoMSwgMTApKTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBX
aXRoUGFyYW1JbnRlcmZhY2UgewotIHB1YmxpYzoKLSAgdHlwZWRlZiBUIFBhcmFtVHlwZTsKLSAg
dmlydHVhbCB+V2l0aFBhcmFtSW50ZXJmYWNlKCkge30KLQotICAvLyBUaGUgY3VycmVudCBwYXJh
bWV0ZXIgdmFsdWUuIElzIGFsc28gYXZhaWxhYmxlIGluIHRoZSB0ZXN0IGZpeHR1cmUncwotICAv
LyBjb25zdHJ1Y3Rvci4gVGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgbm9uLXN0YXRpYywgZXZlbiB0
aG91Z2ggaXQgb25seQotICAvLyByZWZlcmVuY2VzIHN0YXRpYyBkYXRhLCB0byByZWR1Y2UgdGhl
IG9wcG9ydHVuaXR5IGZvciBpbmNvcnJlY3QgdXNlcwotICAvLyBsaWtlIHdyaXRpbmcgJ1dpdGhQ
YXJhbUludGVyZmFjZTxib29sPjo6R2V0UGFyYW0oKScgZm9yIGEgdGVzdCB0aGF0Ci0gIC8vIHVz
ZXMgYSBmaXh0dXJlIHdob3NlIHBhcmFtZXRlciB0eXBlIGlzIGludC4KLSAgY29uc3QgUGFyYW1U
eXBlJiBHZXRQYXJhbSgpIGNvbnN0IHsKLSAgICBHVEVTVF9DSEVDS18ocGFyYW1ldGVyXyAhPSBO
VUxMKQotICAgICAgICA8PCAiR2V0UGFyYW0oKSBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEg
dmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0ICIKLSAgICAgICAgPDwgIi0tIGRpZCB5b3UgaW50ZW5k
IHRvIHdyaXRlIFRFU1RfUCBpbnN0ZWFkIG9mIFRFU1RfRj8iOwotICAgIHJldHVybiAqcGFyYW1l
dGVyXzsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gU2V0cyBwYXJhbWV0ZXIgdmFsdWUuIFRoZSBj
YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIG1ha2luZyBzdXJlIHRoZSB2YWx1ZQotICAvLyByZW1h
aW5zIGFsaXZlIGFuZCB1bmNoYW5nZWQgdGhyb3VnaG91dCB0aGUgY3VycmVudCB0ZXN0LgotICBz
dGF0aWMgdm9pZCBTZXRQYXJhbShjb25zdCBQYXJhbVR5cGUqIHBhcmFtZXRlcikgewotICAgIHBh
cmFtZXRlcl8gPSBwYXJhbWV0ZXI7Ci0gIH0KLQotICAvLyBTdGF0aWMgdmFsdWUgdXNlZCBmb3Ig
YWNjZXNzaW5nIHBhcmFtZXRlciBkdXJpbmcgYSB0ZXN0IGxpZmV0aW1lLgotICBzdGF0aWMgY29u
c3QgUGFyYW1UeXBlKiBwYXJhbWV0ZXJfOwotCi0gIC8vIFRlc3RDbGFzcyBtdXN0IGJlIGEgc3Vi
Y2xhc3Mgb2YgV2l0aFBhcmFtSW50ZXJmYWNlPFQ+IGFuZCBUZXN0LgotICB0ZW1wbGF0ZSA8Y2xh
c3MgVGVzdENsYXNzPiBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0RmFj
dG9yeTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY29uc3QgVCogV2l0aFBhcmFtSW50
ZXJmYWNlPFQ+OjpwYXJhbWV0ZXJfID0gTlVMTDsKLQotLy8gTW9zdCB2YWx1ZS1wYXJhbWV0ZXJp
emVkIGNsYXNzZXMgY2FuIGlnbm9yZSB0aGUgZXhpc3RlbmNlIG9mCi0vLyBXaXRoUGFyYW1JbnRl
cmZhY2UsIGFuZCBjYW4ganVzdCBpbmhlcml0IGZyb20gOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFt
LgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFRlc3RXaXRoUGFyYW0gOiBwdWJsaWMg
VGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7Ci19OwotCi0KLS8vIE1hY3JvcyBm
b3IgaW5kaWNhdGluZyBzdWNjZXNzL2ZhaWx1cmUgaW4gdGVzdCBjb2RlLgotCi0vLyBBRERfRkFJ
TFVSRSB1bmNvbmRpdGlvbmFsbHkgYWRkcyBhIGZhaWx1cmUgdG8gdGhlIGN1cnJlbnQgdGVzdC4K
LS8vIFNVQ0NFRUQgZ2VuZXJhdGVzIGEgc3VjY2VzcyAtIGl0IGRvZXNuJ3QgYXV0b21hdGljYWxs
eSBtYWtlIHRoZQotLy8gY3VycmVudCB0ZXN0IHN1Y2Nlc3NmdWwsIGFzIGEgdGVzdCBpcyBvbmx5
IHN1Y2Nlc3NmdWwgd2hlbiBpdCBoYXMKLS8vIG5vIGZhaWx1cmUuCi0vLwotLy8gRVhQRUNUXyog
dmVyaWZpZXMgdGhhdCBhIGNlcnRhaW4gY29uZGl0aW9uIGlzIHNhdGlzZmllZC4gIElmIG5vdCwK
LS8vIGl0IGJlaGF2ZXMgbGlrZSBBRERfRkFJTFVSRS4gIEluIHBhcnRpY3VsYXI6Ci0vLwotLy8g
ICBFWFBFQ1RfVFJVRSAgdmVyaWZpZXMgdGhhdCBhIEJvb2xlYW4gY29uZGl0aW9uIGlzIHRydWUu
Ci0vLyAgIEVYUEVDVF9GQUxTRSB2ZXJpZmllcyB0aGF0IGEgQm9vbGVhbiBjb25kaXRpb24gaXMg
ZmFsc2UuCi0vLwotLy8gRkFJTCBhbmQgQVNTRVJUXyogYXJlIHNpbWlsYXIgdG8gQUREX0ZBSUxV
UkUgYW5kIEVYUEVDVF8qLCBleGNlcHQKLS8vIHRoYXQgdGhleSB3aWxsIGFsc28gYWJvcnQgdGhl
IGN1cnJlbnQgZnVuY3Rpb24gb24gZmFpbHVyZS4gIFBlb3BsZQotLy8gdXN1YWxseSB3YW50IHRo
ZSBmYWlsLWZhc3QgYmVoYXZpb3Igb2YgRkFJTCBhbmQgQVNTRVJUXyosIGJ1dCB0aG9zZQotLy8g
d3JpdGluZyBkYXRhLWRyaXZlbiB0ZXN0cyBvZnRlbiBmaW5kIHRoZW1zZWx2ZXMgdXNpbmcgQURE
X0ZBSUxVUkUKLS8vIGFuZCBFWFBFQ1RfKiBtb3JlLgotCi0vLyBHZW5lcmF0ZXMgYSBub25mYXRh
bCBmYWlsdXJlIHdpdGggYSBnZW5lcmljIG1lc3NhZ2UuCi0jZGVmaW5lIEFERF9GQUlMVVJFKCkg
R1RFU1RfTk9ORkFUQUxfRkFJTFVSRV8oIkZhaWxlZCIpCi0KLS8vIEdlbmVyYXRlcyBhIG5vbmZh
dGFsIGZhaWx1cmUgYXQgdGhlIGdpdmVuIHNvdXJjZSBmaWxlIGxvY2F0aW9uIHdpdGgKLS8vIGEg
Z2VuZXJpYyBtZXNzYWdlLgotI2RlZmluZSBBRERfRkFJTFVSRV9BVChmaWxlLCBsaW5lKSBcCi0g
IEdURVNUX01FU1NBR0VfQVRfKGZpbGUsIGxpbmUsICJGYWlsZWQiLCBcCi0gICAgICAgICAgICAg
ICAgICAgIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ6OmtOb25GYXRhbEZhaWx1cmUpCi0KLS8v
IEdlbmVyYXRlcyBhIGZhdGFsIGZhaWx1cmUgd2l0aCBhIGdlbmVyaWMgbWVzc2FnZS4KLSNkZWZp
bmUgR1RFU1RfRkFJTCgpIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKCJGYWlsZWQiKQotCi0vLyBEZWZp
bmUgdGhpcyBtYWNybyB0byAxIHRvIG9taXQgdGhlIGRlZmluaXRpb24gb2YgRkFJTCgpLCB3aGlj
aCBpcyBhCi0vLyBnZW5lcmljIG5hbWUgYW5kIGNsYXNoZXMgd2l0aCBzb21lIG90aGVyIGxpYnJh
cmllcy4KLSNpZiAhR1RFU1RfRE9OVF9ERUZJTkVfRkFJTAotIyBkZWZpbmUgRkFJTCgpIEdURVNU
X0ZBSUwoKQotI2VuZGlmCi0KLS8vIEdlbmVyYXRlcyBhIHN1Y2Nlc3Mgd2l0aCBhIGdlbmVyaWMg
bWVzc2FnZS4KLSNkZWZpbmUgR1RFU1RfU1VDQ0VFRCgpIEdURVNUX1NVQ0NFU1NfKCJTdWNjZWVk
ZWQiKQotCi0vLyBEZWZpbmUgdGhpcyBtYWNybyB0byAxIHRvIG9taXQgdGhlIGRlZmluaXRpb24g
b2YgU1VDQ0VFRCgpLCB3aGljaAotLy8gaXMgYSBnZW5lcmljIG5hbWUgYW5kIGNsYXNoZXMgd2l0
aCBzb21lIG90aGVyIGxpYnJhcmllcy4KLSNpZiAhR1RFU1RfRE9OVF9ERUZJTkVfU1VDQ0VFRAot
IyBkZWZpbmUgU1VDQ0VFRCgpIEdURVNUX1NVQ0NFRUQoKQotI2VuZGlmCi0KLS8vIE1hY3JvcyBm
b3IgdGVzdGluZyBleGNlcHRpb25zLgotLy8KLS8vICAgICoge0FTU0VSVHxFWFBFQ1R9X1RIUk9X
KHN0YXRlbWVudCwgZXhwZWN0ZWRfZXhjZXB0aW9uKToKLS8vICAgICAgICAgVGVzdHMgdGhhdCB0
aGUgc3RhdGVtZW50IHRocm93cyB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLgotLy8gICAgKiB7QVNT
RVJUfEVYUEVDVH1fTk9fVEhST1coc3RhdGVtZW50KToKLS8vICAgICAgICAgVGVzdHMgdGhhdCB0
aGUgc3RhdGVtZW50IGRvZXNuJ3QgdGhyb3cgYW55IGV4Y2VwdGlvbi4KLS8vICAgICoge0FTU0VS
VHxFWFBFQ1R9X0FOWV9USFJPVyhzdGF0ZW1lbnQpOgotLy8gICAgICAgICBUZXN0cyB0aGF0IHRo
ZSBzdGF0ZW1lbnQgdGhyb3dzIGFuIGV4Y2VwdGlvbi4KLQotI2RlZmluZSBFWFBFQ1RfVEhST1co
c3RhdGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24pIFwKLSAgR1RFU1RfVEVTVF9USFJPV18oc3Rh
dGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24sIEdURVNUX05PTkZBVEFMX0ZBSUxVUkVfKQotI2Rl
ZmluZSBFWFBFQ1RfTk9fVEhST1coc3RhdGVtZW50KSBcCi0gIEdURVNUX1RFU1RfTk9fVEhST1df
KHN0YXRlbWVudCwgR1RFU1RfTk9ORkFUQUxfRkFJTFVSRV8pCi0jZGVmaW5lIEVYUEVDVF9BTllf
VEhST1coc3RhdGVtZW50KSBcCi0gIEdURVNUX1RFU1RfQU5ZX1RIUk9XXyhzdGF0ZW1lbnQsIEdU
RVNUX05PTkZBVEFMX0ZBSUxVUkVfKQotI2RlZmluZSBBU1NFUlRfVEhST1coc3RhdGVtZW50LCBl
eHBlY3RlZF9leGNlcHRpb24pIFwKLSAgR1RFU1RfVEVTVF9USFJPV18oc3RhdGVtZW50LCBleHBl
Y3RlZF9leGNlcHRpb24sIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKQotI2RlZmluZSBBU1NFUlRfTk9f
VEhST1coc3RhdGVtZW50KSBcCi0gIEdURVNUX1RFU1RfTk9fVEhST1dfKHN0YXRlbWVudCwgR1RF
U1RfRkFUQUxfRkFJTFVSRV8pCi0jZGVmaW5lIEFTU0VSVF9BTllfVEhST1coc3RhdGVtZW50KSBc
Ci0gIEdURVNUX1RFU1RfQU5ZX1RIUk9XXyhzdGF0ZW1lbnQsIEdURVNUX0ZBVEFMX0ZBSUxVUkVf
KQotCi0vLyBCb29sZWFuIGFzc2VydGlvbnMuIENvbmRpdGlvbiBjYW4gYmUgZWl0aGVyIGEgQm9v
bGVhbiBleHByZXNzaW9uIG9yIGFuCi0vLyBBc3NlcnRpb25SZXN1bHQuIEZvciBtb3JlIGluZm9y
bWF0aW9uIG9uIGhvdyB0byB1c2UgQXNzZXJ0aW9uUmVzdWx0IHdpdGgKLS8vIHRoZXNlIG1hY3Jv
cyBzZWUgY29tbWVudHMgb24gdGhhdCBjbGFzcy4KLSNkZWZpbmUgRVhQRUNUX1RSVUUoY29uZGl0
aW9uKSBcCi0gIEdURVNUX1RFU1RfQk9PTEVBTl8oKGNvbmRpdGlvbiksICNjb25kaXRpb24sIGZh
bHNlLCB0cnVlLCBcCi0gICAgICAgICAgICAgICAgICAgICAgR1RFU1RfTk9ORkFUQUxfRkFJTFVS
RV8pCi0jZGVmaW5lIEVYUEVDVF9GQUxTRShjb25kaXRpb24pIFwKLSAgR1RFU1RfVEVTVF9CT09M
RUFOXyghKGNvbmRpdGlvbiksICNjb25kaXRpb24sIHRydWUsIGZhbHNlLCBcCi0gICAgICAgICAg
ICAgICAgICAgICAgR1RFU1RfTk9ORkFUQUxfRkFJTFVSRV8pCi0jZGVmaW5lIEFTU0VSVF9UUlVF
KGNvbmRpdGlvbikgXAotICBHVEVTVF9URVNUX0JPT0xFQU5fKChjb25kaXRpb24pLCAjY29uZGl0
aW9uLCBmYWxzZSwgdHJ1ZSwgXAotICAgICAgICAgICAgICAgICAgICAgIEdURVNUX0ZBVEFMX0ZB
SUxVUkVfKQotI2RlZmluZSBBU1NFUlRfRkFMU0UoY29uZGl0aW9uKSBcCi0gIEdURVNUX1RFU1Rf
Qk9PTEVBTl8oIShjb25kaXRpb24pLCAjY29uZGl0aW9uLCB0cnVlLCBmYWxzZSwgXAotICAgICAg
ICAgICAgICAgICAgICAgIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKQotCi0vLyBJbmNsdWRlcyB0aGUg
YXV0by1nZW5lcmF0ZWQgaGVhZGVyIHRoYXQgaW1wbGVtZW50cyBhIGZhbWlseSBvZgotLy8gZ2Vu
ZXJpYyBwcmVkaWNhdGUgYXNzZXJ0aW9uIG1hY3Jvcy4KLSNpbmNsdWRlICJndGVzdC9ndGVzdF9w
cmVkX2ltcGwuaCIKLQotLy8gTWFjcm9zIGZvciB0ZXN0aW5nIGVxdWFsaXRpZXMgYW5kIGluZXF1
YWxpdGllcy4KLS8vCi0vLyAgICAqIHtBU1NFUlR8RVhQRUNUfV9FUSh2MSwgdjIpOiBUZXN0cyB0
aGF0IHYxID09IHYyCi0vLyAgICAqIHtBU1NFUlR8RVhQRUNUfV9ORSh2MSwgdjIpOiBUZXN0cyB0
aGF0IHYxICE9IHYyCi0vLyAgICAqIHtBU1NFUlR8RVhQRUNUfV9MVCh2MSwgdjIpOiBUZXN0cyB0
aGF0IHYxIDwgdjIKLS8vICAgICoge0FTU0VSVHxFWFBFQ1R9X0xFKHYxLCB2Mik6IFRlc3RzIHRo
YXQgdjEgPD0gdjIKLS8vICAgICoge0FTU0VSVHxFWFBFQ1R9X0dUKHYxLCB2Mik6IFRlc3RzIHRo
YXQgdjEgPiB2MgotLy8gICAgKiB7QVNTRVJUfEVYUEVDVH1fR0UodjEsIHYyKTogVGVzdHMgdGhh
dCB2MSA+PSB2MgotLy8KLS8vIFdoZW4gdGhleSBhcmUgbm90LCBHb29nbGUgVGVzdCBwcmludHMg
Ym90aCB0aGUgdGVzdGVkIGV4cHJlc3Npb25zIGFuZAotLy8gdGhlaXIgYWN0dWFsIHZhbHVlcy4g
IFRoZSB2YWx1ZXMgbXVzdCBiZSBjb21wYXRpYmxlIGJ1aWx0LWluIHR5cGVzLAotLy8gb3IgeW91
IHdpbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3IuICBCeSAiY29tcGF0aWJsZSIgd2UgbWVhbiB0aGF0
IHRoZQotLy8gdmFsdWVzIGNhbiBiZSBjb21wYXJlZCBieSB0aGUgcmVzcGVjdGl2ZSBvcGVyYXRv
ci4KLS8vCi0vLyBOb3RlOgotLy8KLS8vICAgMS4gSXQgaXMgcG9zc2libGUgdG8gbWFrZSBhIHVz
ZXItZGVmaW5lZCB0eXBlIHdvcmsgd2l0aAotLy8gICB7QVNTRVJUfEVYUEVDVH1fPz8oKSwgYnV0
IHRoYXQgcmVxdWlyZXMgb3ZlcmxvYWRpbmcgdGhlCi0vLyAgIGNvbXBhcmlzb24gb3BlcmF0b3Jz
IGFuZCBpcyB0aHVzIGRpc2NvdXJhZ2VkIGJ5IHRoZSBHb29nbGUgQysrCi0vLyAgIFVzYWdlIEd1
aWRlLiAgVGhlcmVmb3JlLCB5b3UgYXJlIGFkdmlzZWQgdG8gdXNlIHRoZQotLy8gICB7QVNTRVJU
fEVYUEVDVH1fVFJVRSgpIG1hY3JvIHRvIGFzc2VydCB0aGF0IHR3byBvYmplY3RzIGFyZQotLy8g
ICBlcXVhbC4KLS8vCi0vLyAgIDIuIFRoZSB7QVNTRVJUfEVYUEVDVH1fPz8oKSBtYWNyb3MgZG8g
cG9pbnRlciBjb21wYXJpc29ucyBvbgotLy8gICBwb2ludGVycyAoaW4gcGFydGljdWxhciwgQyBz
dHJpbmdzKS4gIFRoZXJlZm9yZSwgaWYgeW91IHVzZSBpdAotLy8gICB3aXRoIHR3byBDIHN0cmlu
Z3MsIHlvdSBhcmUgdGVzdGluZyBob3cgdGhlaXIgbG9jYXRpb25zIGluIG1lbW9yeQotLy8gICBh
cmUgcmVsYXRlZCwgbm90IGhvdyB0aGVpciBjb250ZW50IGlzIHJlbGF0ZWQuICBUbyBjb21wYXJl
IHR3byBDCi0vLyAgIHN0cmluZ3MgYnkgY29udGVudCwgdXNlIHtBU1NFUlR8RVhQRUNUfV9TVFIq
KCkuCi0vLwotLy8gICAzLiB7QVNTRVJUfEVYUEVDVH1fRVEodjEsIHYyKSBpcyBwcmVmZXJyZWQg
dG8KLS8vICAge0FTU0VSVHxFWFBFQ1R9X1RSVUUodjEgPT0gdjIpLCBhcyB0aGUgZm9ybWVyIHRl
bGxzIHlvdQotLy8gICB3aGF0IHRoZSBhY3R1YWwgdmFsdWUgaXMgd2hlbiBpdCBmYWlscywgYW5k
IHNpbWlsYXJseSBmb3IgdGhlCi0vLyAgIG90aGVyIGNvbXBhcmlzb25zLgotLy8KLS8vICAgNC4g
RG8gbm90IGRlcGVuZCBvbiB0aGUgb3JkZXIgaW4gd2hpY2gge0FTU0VSVHxFWFBFQ1R9Xz8/KCkK
LS8vICAgZXZhbHVhdGUgdGhlaXIgYXJndW1lbnRzLCB3aGljaCBpcyB1bmRlZmluZWQuCi0vLwot
Ly8gICA1LiBUaGVzZSBtYWNyb3MgZXZhbHVhdGUgdGhlaXIgYXJndW1lbnRzIGV4YWN0bHkgb25j
ZS4KLS8vCi0vLyBFeGFtcGxlczoKLS8vCi0vLyAgIEVYUEVDVF9ORSg1LCBGb28oKSk7Ci0vLyAg
IEVYUEVDVF9FUShOVUxMLCBhX3BvaW50ZXIpOwotLy8gICBBU1NFUlRfTFQoaSwgYXJyYXlfc2l6
ZSk7Ci0vLyAgIEFTU0VSVF9HVChyZWNvcmRzLnNpemUoKSwgMCkgPDwgIlRoZXJlIGlzIG5vIHJl
Y29yZCBsZWZ0LiI7Ci0KLSNkZWZpbmUgRVhQRUNUX0VRKHZhbDEsIHZhbDIpIFwKLSAgRVhQRUNU
X1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAgICAg
ICAgIEVxSGVscGVyPEdURVNUX0lTX05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBcCi0g
ICAgICAgICAgICAgICAgICAgICAgdmFsMSwgdmFsMikKLSNkZWZpbmUgRVhQRUNUX05FKHZhbDEs
IHZhbDIpIFwKLSAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBI
ZWxwZXJORSwgdmFsMSwgdmFsMikKLSNkZWZpbmUgRVhQRUNUX0xFKHZhbDEsIHZhbDIpIFwKLSAg
RVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJMRSwgdmFs
MSwgdmFsMikKLSNkZWZpbmUgRVhQRUNUX0xUKHZhbDEsIHZhbDIpIFwKLSAgRVhQRUNUX1BSRURf
Rk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJMVCwgdmFsMSwgdmFsMikKLSNk
ZWZpbmUgRVhQRUNUX0dFKHZhbDEsIHZhbDIpIFwKLSAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRl
c3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJHRSwgdmFsMSwgdmFsMikKLSNkZWZpbmUgRVhQRUNU
X0dUKHZhbDEsIHZhbDIpIFwKLSAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVy
bmFsOjpDbXBIZWxwZXJHVCwgdmFsMSwgdmFsMikKLQotI2RlZmluZSBHVEVTVF9BU1NFUlRfRVEo
dmFsMSwgdmFsMikgXAotICBBU1NFUlRfUFJFRF9GT1JNQVQyKDo6dGVzdGluZzo6aW50ZXJuYWw6
OiBcCi0gICAgICAgICAgICAgICAgICAgICAgRXFIZWxwZXI8R1RFU1RfSVNfTlVMTF9MSVRFUkFM
Xyh2YWwxKT46OkNvbXBhcmUsIFwKLSAgICAgICAgICAgICAgICAgICAgICB2YWwxLCB2YWwyKQot
I2RlZmluZSBHVEVTVF9BU1NFUlRfTkUodmFsMSwgdmFsMikgXAotICBBU1NFUlRfUFJFRF9GT1JN
QVQyKDo6dGVzdGluZzo6aW50ZXJuYWw6OkNtcEhlbHBlck5FLCB2YWwxLCB2YWwyKQotI2RlZmlu
ZSBHVEVTVF9BU1NFUlRfTEUodmFsMSwgdmFsMikgXAotICBBU1NFUlRfUFJFRF9GT1JNQVQyKDo6
dGVzdGluZzo6aW50ZXJuYWw6OkNtcEhlbHBlckxFLCB2YWwxLCB2YWwyKQotI2RlZmluZSBHVEVT
VF9BU1NFUlRfTFQodmFsMSwgdmFsMikgXAotICBBU1NFUlRfUFJFRF9GT1JNQVQyKDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkNtcEhlbHBlckxULCB2YWwxLCB2YWwyKQotI2RlZmluZSBHVEVTVF9BU1NF
UlRfR0UodmFsMSwgdmFsMikgXAotICBBU1NFUlRfUFJFRF9GT1JNQVQyKDo6dGVzdGluZzo6aW50
ZXJuYWw6OkNtcEhlbHBlckdFLCB2YWwxLCB2YWwyKQotI2RlZmluZSBHVEVTVF9BU1NFUlRfR1Qo
dmFsMSwgdmFsMikgXAotICBBU1NFUlRfUFJFRF9GT1JNQVQyKDo6dGVzdGluZzo6aW50ZXJuYWw6
OkNtcEhlbHBlckdULCB2YWwxLCB2YWwyKQotCi0vLyBEZWZpbmUgbWFjcm8gR1RFU1RfRE9OVF9E
RUZJTkVfQVNTRVJUX1hZIHRvIDEgdG8gb21pdCB0aGUgZGVmaW5pdGlvbiBvZgotLy8gQVNTRVJU
X1hZKCksIHdoaWNoIGNsYXNoZXMgd2l0aCBzb21lIHVzZXJzJyBvd24gY29kZS4KLQotI2lmICFH
VEVTVF9ET05UX0RFRklORV9BU1NFUlRfRVEKLSMgZGVmaW5lIEFTU0VSVF9FUSh2YWwxLCB2YWwy
KSBHVEVTVF9BU1NFUlRfRVEodmFsMSwgdmFsMikKLSNlbmRpZgotCi0jaWYgIUdURVNUX0RPTlRf
REVGSU5FX0FTU0VSVF9ORQotIyBkZWZpbmUgQVNTRVJUX05FKHZhbDEsIHZhbDIpIEdURVNUX0FT
U0VSVF9ORSh2YWwxLCB2YWwyKQotI2VuZGlmCi0KLSNpZiAhR1RFU1RfRE9OVF9ERUZJTkVfQVNT
RVJUX0xFCi0jIGRlZmluZSBBU1NFUlRfTEUodmFsMSwgdmFsMikgR1RFU1RfQVNTRVJUX0xFKHZh
bDEsIHZhbDIpCi0jZW5kaWYKLQotI2lmICFHVEVTVF9ET05UX0RFRklORV9BU1NFUlRfTFQKLSMg
ZGVmaW5lIEFTU0VSVF9MVCh2YWwxLCB2YWwyKSBHVEVTVF9BU1NFUlRfTFQodmFsMSwgdmFsMikK
LSNlbmRpZgotCi0jaWYgIUdURVNUX0RPTlRfREVGSU5FX0FTU0VSVF9HRQotIyBkZWZpbmUgQVNT
RVJUX0dFKHZhbDEsIHZhbDIpIEdURVNUX0FTU0VSVF9HRSh2YWwxLCB2YWwyKQotI2VuZGlmCi0K
LSNpZiAhR1RFU1RfRE9OVF9ERUZJTkVfQVNTRVJUX0dUCi0jIGRlZmluZSBBU1NFUlRfR1QodmFs
MSwgdmFsMikgR1RFU1RfQVNTRVJUX0dUKHZhbDEsIHZhbDIpCi0jZW5kaWYKLQotLy8gQy1zdHJp
bmcgQ29tcGFyaXNvbnMuICBBbGwgdGVzdHMgdHJlYXQgTlVMTCBhbmQgYW55IG5vbi1OVUxMIHN0
cmluZwotLy8gYXMgZGlmZmVyZW50LiAgVHdvIE5VTExzIGFyZSBlcXVhbC4KLS8vCi0vLyAgICAq
IHtBU1NFUlR8RVhQRUNUfV9TVFJFUShzMSwgczIpOiAgICAgVGVzdHMgdGhhdCBzMSA9PSBzMgot
Ly8gICAgKiB7QVNTRVJUfEVYUEVDVH1fU1RSTkUoczEsIHMyKTogICAgIFRlc3RzIHRoYXQgczEg
IT0gczIKLS8vICAgICoge0FTU0VSVHxFWFBFQ1R9X1NUUkNBU0VFUShzMSwgczIpOiBUZXN0cyB0
aGF0IHMxID09IHMyLCBpZ25vcmluZyBjYXNlCi0vLyAgICAqIHtBU1NFUlR8RVhQRUNUfV9TVFJD
QVNFTkUoczEsIHMyKTogVGVzdHMgdGhhdCBzMSAhPSBzMiwgaWdub3JpbmcgY2FzZQotLy8KLS8v
IEZvciB3aWRlIG9yIG5hcnJvdyBzdHJpbmcgb2JqZWN0cywgeW91IGNhbiB1c2UgdGhlCi0vLyB7
QVNTRVJUfEVYUEVDVH1fPz8oKSBtYWNyb3MuCi0vLwotLy8gRG9uJ3QgZGVwZW5kIG9uIHRoZSBv
cmRlciBpbiB3aGljaCB0aGUgYXJndW1lbnRzIGFyZSBldmFsdWF0ZWQsCi0vLyB3aGljaCBpcyB1
bmRlZmluZWQuCi0vLwotLy8gVGhlc2UgbWFjcm9zIGV2YWx1YXRlIHRoZWlyIGFyZ3VtZW50cyBl
eGFjdGx5IG9uY2UuCi0KLSNkZWZpbmUgRVhQRUNUX1NUUkVRKHMxLCBzMikgXAotICBFWFBFQ1Rf
UFJFRF9GT1JNQVQyKDo6dGVzdGluZzo6aW50ZXJuYWw6OkNtcEhlbHBlclNUUkVRLCBzMSwgczIp
Ci0jZGVmaW5lIEVYUEVDVF9TVFJORShzMSwgczIpIFwKLSAgRVhQRUNUX1BSRURfRk9STUFUMig6
OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJTVFJORSwgczEsIHMyKQotI2RlZmluZSBFWFBF
Q1RfU1RSQ0FTRUVRKHMxLCBzMikgXAotICBFWFBFQ1RfUFJFRF9GT1JNQVQyKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkNtcEhlbHBlclNUUkNBU0VFUSwgczEsIHMyKQotI2RlZmluZSBFWFBFQ1RfU1RS
Q0FTRU5FKHMxLCBzMilcCi0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjppbnRlcm5h
bDo6Q21wSGVscGVyU1RSQ0FTRU5FLCBzMSwgczIpCi0KLSNkZWZpbmUgQVNTRVJUX1NUUkVRKHMx
LCBzMikgXAotICBBU1NFUlRfUFJFRF9GT1JNQVQyKDo6dGVzdGluZzo6aW50ZXJuYWw6OkNtcEhl
bHBlclNUUkVRLCBzMSwgczIpCi0jZGVmaW5lIEFTU0VSVF9TVFJORShzMSwgczIpIFwKLSAgQVNT
RVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJTVFJORSwgczEs
IHMyKQotI2RlZmluZSBBU1NFUlRfU1RSQ0FTRUVRKHMxLCBzMikgXAotICBBU1NFUlRfUFJFRF9G
T1JNQVQyKDo6dGVzdGluZzo6aW50ZXJuYWw6OkNtcEhlbHBlclNUUkNBU0VFUSwgczEsIHMyKQot
I2RlZmluZSBBU1NFUlRfU1RSQ0FTRU5FKHMxLCBzMilcCi0gIEFTU0VSVF9QUkVEX0ZPUk1BVDIo
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6Q21wSGVscGVyU1RSQ0FTRU5FLCBzMSwgczIpCi0KLS8vIE1h
Y3JvcyBmb3IgY29tcGFyaW5nIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuCi0vLwotLy8gICAgKiB7
QVNTRVJUfEVYUEVDVH1fRkxPQVRfRVEodmFsMSwgdmFsMik6Ci0vLyAgICAgICAgIFRlc3RzIHRo
YXQgdHdvIGZsb2F0IHZhbHVlcyBhcmUgYWxtb3N0IGVxdWFsLgotLy8gICAgKiB7QVNTRVJUfEVY
UEVDVH1fRE9VQkxFX0VRKHZhbDEsIHZhbDIpOgotLy8gICAgICAgICBUZXN0cyB0aGF0IHR3byBk
b3VibGUgdmFsdWVzIGFyZSBhbG1vc3QgZXF1YWwuCi0vLyAgICAqIHtBU1NFUlR8RVhQRUNUfV9O
RUFSKHYxLCB2MiwgYWJzX2Vycm9yKToKLS8vICAgICAgICAgVGVzdHMgdGhhdCB2MSBhbmQgdjIg
YXJlIHdpdGhpbiB0aGUgZ2l2ZW4gZGlzdGFuY2UgdG8gZWFjaCBvdGhlci4KLS8vCi0vLyBHb29n
bGUgVGVzdCB1c2VzIFVMUC1iYXNlZCBjb21wYXJpc29uIHRvIGF1dG9tYXRpY2FsbHkgcGljayBh
IGRlZmF1bHQKLS8vIGVycm9yIGJvdW5kIHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBvcGVy
YW5kcy4gIFNlZSB0aGUKLS8vIEZsb2F0aW5nUG9pbnQgdGVtcGxhdGUgY2xhc3MgaW4gZ3Rlc3Qt
aW50ZXJuYWwuaCBpZiB5b3UgYXJlCi0vLyBpbnRlcmVzdGVkIGluIHRoZSBpbXBsZW1lbnRhdGlv
biBkZXRhaWxzLgotCi0jZGVmaW5lIEVYUEVDVF9GTE9BVF9FUSh2YWwxLCB2YWwyKVwKLSAgRVhQ
RUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJGbG9hdGluZ1Bv
aW50RVE8ZmxvYXQ+LCBcCi0gICAgICAgICAgICAgICAgICAgICAgdmFsMSwgdmFsMikKLQotI2Rl
ZmluZSBFWFBFQ1RfRE9VQkxFX0VRKHZhbDEsIHZhbDIpXAotICBFWFBFQ1RfUFJFRF9GT1JNQVQy
KDo6dGVzdGluZzo6aW50ZXJuYWw6OkNtcEhlbHBlckZsb2F0aW5nUG9pbnRFUTxkb3VibGU+LCBc
Ci0gICAgICAgICAgICAgICAgICAgICAgdmFsMSwgdmFsMikKLQotI2RlZmluZSBBU1NFUlRfRkxP
QVRfRVEodmFsMSwgdmFsMilcCi0gIEFTU0VSVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjppbnRl
cm5hbDo6Q21wSGVscGVyRmxvYXRpbmdQb2ludEVRPGZsb2F0PiwgXAotICAgICAgICAgICAgICAg
ICAgICAgIHZhbDEsIHZhbDIpCi0KLSNkZWZpbmUgQVNTRVJUX0RPVUJMRV9FUSh2YWwxLCB2YWwy
KVwKLSAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJG
bG9hdGluZ1BvaW50RVE8ZG91YmxlPiwgXAotICAgICAgICAgICAgICAgICAgICAgIHZhbDEsIHZh
bDIpCi0KLSNkZWZpbmUgRVhQRUNUX05FQVIodmFsMSwgdmFsMiwgYWJzX2Vycm9yKVwKLSAgRVhQ
RUNUX1BSRURfRk9STUFUMyg6OnRlc3Rpbmc6OmludGVybmFsOjpEb3VibGVOZWFyUHJlZEZvcm1h
dCwgXAotICAgICAgICAgICAgICAgICAgICAgIHZhbDEsIHZhbDIsIGFic19lcnJvcikKLQotI2Rl
ZmluZSBBU1NFUlRfTkVBUih2YWwxLCB2YWwyLCBhYnNfZXJyb3IpXAotICBBU1NFUlRfUFJFRF9G
T1JNQVQzKDo6dGVzdGluZzo6aW50ZXJuYWw6OkRvdWJsZU5lYXJQcmVkRm9ybWF0LCBcCi0gICAg
ICAgICAgICAgICAgICAgICAgdmFsMSwgdmFsMiwgYWJzX2Vycm9yKQotCi0vLyBUaGVzZSBwcmVk
aWNhdGUgZm9ybWF0IGZ1bmN0aW9ucyB3b3JrIG9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcywgYW5k
Ci0vLyBjYW4gYmUgdXNlZCBpbiB7QVNTRVJUfEVYUEVDVH1fUFJFRF9GT1JNQVQyKigpLCBlLmcu
Ci0vLwotLy8gICBFWFBFQ1RfUFJFRF9GT1JNQVQyKHRlc3Rpbmc6OkRvdWJsZUxFLCBGb28oKSwg
NS4wKTsKLQotLy8gQXNzZXJ0cyB0aGF0IHZhbDEgaXMgbGVzcyB0aGFuLCBvciBhbG1vc3QgZXF1
YWwgdG8sIHZhbDIuICBGYWlscwotLy8gb3RoZXJ3aXNlLiAgSW4gcGFydGljdWxhciwgaXQgZmFp
bHMgaWYgZWl0aGVyIHZhbDEgb3IgdmFsMiBpcyBOYU4uCi1HVEVTVF9BUElfIEFzc2VydGlvblJl
c3VsdCBGbG9hdExFKGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBjaGFyKiBleHByMiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdmFsMSwgZmxvYXQgdmFsMik7Ci1H
VEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCBEb3VibGVMRShjb25zdCBjaGFyKiBleHByMSwgY29u
c3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3Vi
bGUgdmFsMSwgZG91YmxlIHZhbDIpOwotCi0KLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0KLS8vIE1h
Y3JvcyB0aGF0IHRlc3QgZm9yIEhSRVNVTFQgZmFpbHVyZSBhbmQgc3VjY2VzcywgdGhlc2UgYXJl
IG9ubHkgdXNlZnVsCi0vLyBvbiBXaW5kb3dzLCBhbmQgcmVseSBvbiBXaW5kb3dzIFNESyBtYWNy
b3MgYW5kIEFQSXMgdG8gY29tcGlsZS4KLS8vCi0vLyAgICAqIHtBU1NFUlR8RVhQRUNUfV9IUkVT
VUxUX3tTVUNDRUVERUR8RkFJTEVEfShleHByKQotLy8KLS8vIFdoZW4gZXhwciB1bmV4cGVjdGVk
bHkgZmFpbHMgb3Igc3VjY2VlZHMsIEdvb2dsZSBUZXN0IHByaW50cyB0aGUKLS8vIGV4cGVjdGVk
IHJlc3VsdCBhbmQgdGhlIGFjdHVhbCByZXN1bHQgd2l0aCBib3RoIGEgaHVtYW4tcmVhZGFibGUK
LS8vIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXJyb3IsIGlmIGF2YWlsYWJsZSwgYXMg
d2VsbCBhcyB0aGUKLS8vIGhleCByZXN1bHQgY29kZS4KLSMgZGVmaW5lIEVYUEVDVF9IUkVTVUxU
X1NVQ0NFRURFRChleHByKSBcCi0gICAgRVhQRUNUX1BSRURfRk9STUFUMSg6OnRlc3Rpbmc6Omlu
dGVybmFsOjpJc0hSRVNVTFRTdWNjZXNzLCAoZXhwcikpCi0KLSMgZGVmaW5lIEFTU0VSVF9IUkVT
VUxUX1NVQ0NFRURFRChleHByKSBcCi0gICAgQVNTRVJUX1BSRURfRk9STUFUMSg6OnRlc3Rpbmc6
OmludGVybmFsOjpJc0hSRVNVTFRTdWNjZXNzLCAoZXhwcikpCi0KLSMgZGVmaW5lIEVYUEVDVF9I
UkVTVUxUX0ZBSUxFRChleHByKSBcCi0gICAgRVhQRUNUX1BSRURfRk9STUFUMSg6OnRlc3Rpbmc6
OmludGVybmFsOjpJc0hSRVNVTFRGYWlsdXJlLCAoZXhwcikpCi0KLSMgZGVmaW5lIEFTU0VSVF9I
UkVTVUxUX0ZBSUxFRChleHByKSBcCi0gICAgQVNTRVJUX1BSRURfRk9STUFUMSg6OnRlc3Rpbmc6
OmludGVybmFsOjpJc0hSRVNVTFRGYWlsdXJlLCAoZXhwcikpCi0KLSNlbmRpZiAgLy8gR1RFU1Rf
T1NfV0lORE9XUwotCi0vLyBNYWNyb3MgdGhhdCBleGVjdXRlIHN0YXRlbWVudCBhbmQgY2hlY2sg
dGhhdCBpdCBkb2Vzbid0IGdlbmVyYXRlIG5ldyBmYXRhbAotLy8gZmFpbHVyZXMgaW4gdGhlIGN1
cnJlbnQgdGhyZWFkLgotLy8KLS8vICAgKiB7QVNTRVJUfEVYUEVDVH1fTk9fRkFUQUxfRkFJTFVS
RShzdGF0ZW1lbnQpOwotLy8KLS8vIEV4YW1wbGVzOgotLy8KLS8vICAgRVhQRUNUX05PX0ZBVEFM
X0ZBSUxVUkUoUHJvY2VzcygpKTsKLS8vICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoUHJvY2Vz
cygpKSA8PCAiUHJvY2VzcygpIGZhaWxlZCI7Ci0vLwotI2RlZmluZSBBU1NFUlRfTk9fRkFUQUxf
RkFJTFVSRShzdGF0ZW1lbnQpIFwKLSAgICBHVEVTVF9URVNUX05PX0ZBVEFMX0ZBSUxVUkVfKHN0
YXRlbWVudCwgR1RFU1RfRkFUQUxfRkFJTFVSRV8pCi0jZGVmaW5lIEVYUEVDVF9OT19GQVRBTF9G
QUlMVVJFKHN0YXRlbWVudCkgXAotICAgIEdURVNUX1RFU1RfTk9fRkFUQUxfRkFJTFVSRV8oc3Rh
dGVtZW50LCBHVEVTVF9OT05GQVRBTF9GQUlMVVJFXykKLQotLy8gQ2F1c2VzIGEgdHJhY2UgKGlu
Y2x1ZGluZyB0aGUgc291cmNlIGZpbGUgcGF0aCwgdGhlIGN1cnJlbnQgbGluZQotLy8gbnVtYmVy
LCBhbmQgdGhlIGdpdmVuIG1lc3NhZ2UpIHRvIGJlIGluY2x1ZGVkIGluIGV2ZXJ5IHRlc3QgZmFp
bHVyZQotLy8gbWVzc2FnZSBnZW5lcmF0ZWQgYnkgY29kZSBpbiB0aGUgY3VycmVudCBzY29wZS4g
IFRoZSBlZmZlY3QgaXMKLS8vIHVuZG9uZSB3aGVuIHRoZSBjb250cm9sIGxlYXZlcyB0aGUgY3Vy
cmVudCBzY29wZS4KLS8vCi0vLyBUaGUgbWVzc2FnZSBhcmd1bWVudCBjYW4gYmUgYW55dGhpbmcg
c3RyZWFtYWJsZSB0byBzdGQ6Om9zdHJlYW0uCi0vLwotLy8gSW4gdGhlIGltcGxlbWVudGF0aW9u
LCB3ZSBpbmNsdWRlIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIGFzIHBhcnQKLS8vIG9mIHRoZSBk
dW1teSB2YXJpYWJsZSBuYW1lLCB0aHVzIGFsbG93aW5nIG11bHRpcGxlIFNDT1BFRF9UUkFDRSgp
cwotLy8gdG8gYXBwZWFyIGluIHRoZSBzYW1lIGJsb2NrIC0gYXMgbG9uZyBhcyB0aGV5IGFyZSBv
biBkaWZmZXJlbnQKLS8vIGxpbmVzLgotI2RlZmluZSBTQ09QRURfVFJBQ0UobWVzc2FnZSkgXAot
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpTY29wZWRUcmFjZSBHVEVTVF9DT05DQVRfVE9LRU5fKGd0
ZXN0X3RyYWNlXywgX19MSU5FX18pKFwKLSAgICBfX0ZJTEVfXywgX19MSU5FX18sIDo6dGVzdGlu
Zzo6TWVzc2FnZSgpIDw8IChtZXNzYWdlKSkKLQotLy8gQ29tcGlsZS10aW1lIGFzc2VydGlvbiBm
b3IgdHlwZSBlcXVhbGl0eS4KLS8vIFN0YXRpY0Fzc2VydFR5cGVFcTx0eXBlMSwgdHlwZTI+KCkg
Y29tcGlsZXMgaWZmIHR5cGUxIGFuZCB0eXBlMiBhcmUKLS8vIHRoZSBzYW1lIHR5cGUuICBUaGUg
dmFsdWUgaXQgcmV0dXJucyBpcyBub3QgaW50ZXJlc3RpbmcuCi0vLwotLy8gSW5zdGVhZCBvZiBt
YWtpbmcgU3RhdGljQXNzZXJ0VHlwZUVxIGEgY2xhc3MgdGVtcGxhdGUsIHdlIG1ha2UgaXQgYQot
Ly8gZnVuY3Rpb24gdGVtcGxhdGUgdGhhdCBpbnZva2VzIGEgaGVscGVyIGNsYXNzIHRlbXBsYXRl
LiAgVGhpcwotLy8gcHJldmVudHMgYSB1c2VyIGZyb20gbWlzdXNpbmcgU3RhdGljQXNzZXJ0VHlw
ZUVxPFQxLCBUMj4gYnkKLS8vIGRlZmluaW5nIG9iamVjdHMgb2YgdGhhdCB0eXBlLgotLy8KLS8v
IENBVkVBVDoKLS8vCi0vLyBXaGVuIHVzZWQgaW5zaWRlIGEgbWV0aG9kIG9mIGEgY2xhc3MgdGVt
cGxhdGUsCi0vLyBTdGF0aWNBc3NlcnRUeXBlRXE8VDEsIFQyPigpIGlzIGVmZmVjdGl2ZSBPTkxZ
IElGIHRoZSBtZXRob2QgaXMKLS8vIGluc3RhbnRpYXRlZC4gIEZvciBleGFtcGxlLCBnaXZlbjoK
LS8vCi0vLyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBGb28gewotLy8gICAgcHVibGlj
OgotLy8gICAgIHZvaWQgQmFyKCkgeyB0ZXN0aW5nOjpTdGF0aWNBc3NlcnRUeXBlRXE8aW50LCBU
PigpOyB9Ci0vLyAgIH07Ci0vLwotLy8gdGhlIGNvZGU6Ci0vLwotLy8gICB2b2lkIFRlc3QxKCkg
eyBGb288Ym9vbD4gZm9vOyB9Ci0vLwotLy8gd2lsbCBOT1QgZ2VuZXJhdGUgYSBjb21waWxlciBl
cnJvciwgYXMgRm9vPGJvb2w+OjpCYXIoKSBpcyBuZXZlcgotLy8gYWN0dWFsbHkgaW5zdGFudGlh
dGVkLiAgSW5zdGVhZCwgeW91IG5lZWQ6Ci0vLwotLy8gICB2b2lkIFRlc3QyKCkgeyBGb288Ym9v
bD4gZm9vOyBmb28uQmFyKCk7IH0KLS8vCi0vLyB0byBjYXVzZSBhIGNvbXBpbGVyIGVycm9yLgot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLWJvb2wgU3RhdGljQXNzZXJ0VHlw
ZUVxKCkgewotICAodm9pZClpbnRlcm5hbDo6U3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQxLCBU
Mj4oKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLS8vIERlZmluZXMgYSB0ZXN0LgotLy8KLS8vIFRo
ZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSwgYW5kIHRoZSBz
ZWNvbmQKLS8vIHBhcmFtZXRlciBpcyB0aGUgbmFtZSBvZiB0aGUgdGVzdCB3aXRoaW4gdGhlIHRl
c3QgY2FzZS4KLS8vCi0vLyBUaGUgY29udmVudGlvbiBpcyB0byBlbmQgdGhlIHRlc3QgY2FzZSBu
YW1lIHdpdGggIlRlc3QiLiAgRm9yCi0vLyBleGFtcGxlLCBhIHRlc3QgY2FzZSBmb3IgdGhlIEZv
byBjbGFzcyBjYW4gYmUgbmFtZWQgRm9vVGVzdC4KLS8vCi0vLyBUZXN0IGNvZGUgc2hvdWxkIGFw
cGVhciBiZXR3ZWVuIGJyYWNlcyBhZnRlciBhbiBpbnZvY2F0aW9uIG9mCi0vLyB0aGlzIG1hY3Jv
LiAgRXhhbXBsZToKLS8vCi0vLyAgIFRFU1QoRm9vVGVzdCwgSW5pdGlhbGl6ZXNDb3JyZWN0bHkp
IHsKLS8vICAgICBGb28gZm9vOwotLy8gICAgIEVYUEVDVF9UUlVFKGZvby5TdGF0dXNJc09LKCkp
OwotLy8gICB9Ci0KLS8vIE5vdGUgdGhhdCB3ZSBjYWxsIEdldFRlc3RUeXBlSWQoKSBpbnN0ZWFk
IG9mIEdldFR5cGVJZDwKLS8vIDo6dGVzdGluZzo6VGVzdD4oKSBoZXJlIHRvIGdldCB0aGUgdHlw
ZSBJRCBvZiB0ZXN0aW5nOjpUZXN0LiAgVGhpcwotLy8gaXMgdG8gd29yayBhcm91bmQgYSBzdXNw
ZWN0ZWQgbGlua2VyIGJ1ZyB3aGVuIHVzaW5nIEdvb2dsZSBUZXN0IGFzCi0vLyBhIGZyYW1ld29y
ayBvbiBNYWMgT1MgWC4gIFRoZSBidWcgY2F1c2VzIEdldFR5cGVJZDwKLS8vIDo6dGVzdGluZzo6
VGVzdD4oKSB0byByZXR1cm4gZGlmZmVyZW50IHZhbHVlcyBkZXBlbmRpbmcgb24gd2hldGhlcgot
Ly8gdGhlIGNhbGwgaXMgZnJvbSB0aGUgR29vZ2xlIFRlc3QgZnJhbWV3b3JrIGl0c2VsZiBvciBm
cm9tIHVzZXIgdGVzdAotLy8gY29kZS4gIEdldFRlc3RUeXBlSWQoKSBpcyBndWFyYW50ZWVkIHRv
IGFsd2F5cyByZXR1cm4gdGhlIHNhbWUKLS8vIHZhbHVlLCBhcyBpdCBhbHdheXMgY2FsbHMgR2V0
VHlwZUlkPD4oKSBmcm9tIHRoZSBHb29nbGUgVGVzdAotLy8gZnJhbWV3b3JrLgotI2RlZmluZSBH
VEVTVF9URVNUKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpXAotICBHVEVTVF9URVNUXyh0ZXN0
X2Nhc2VfbmFtZSwgdGVzdF9uYW1lLCBcCi0gICAgICAgICAgICAgIDo6dGVzdGluZzo6VGVzdCwg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGVzdFR5cGVJZCgpKQotCi0vLyBEZWZpbmUgdGhpcyBt
YWNybyB0byAxIHRvIG9taXQgdGhlIGRlZmluaXRpb24gb2YgVEVTVCgpLCB3aGljaAotLy8gaXMg
YSBnZW5lcmljIG5hbWUgYW5kIGNsYXNoZXMgd2l0aCBzb21lIG90aGVyIGxpYnJhcmllcy4KLSNp
ZiAhR1RFU1RfRE9OVF9ERUZJTkVfVEVTVAotIyBkZWZpbmUgVEVTVCh0ZXN0X2Nhc2VfbmFtZSwg
dGVzdF9uYW1lKSBHVEVTVF9URVNUKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpCi0jZW5kaWYK
LQotLy8gRGVmaW5lcyBhIHRlc3QgdGhhdCB1c2VzIGEgdGVzdCBmaXh0dXJlLgotLy8KLS8vIFRo
ZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFzcywg
d2hpY2gKLS8vIGFsc28gZG91YmxlcyBhcyB0aGUgdGVzdCBjYXNlIG5hbWUuICBUaGUgc2Vjb25k
IHBhcmFtZXRlciBpcyB0aGUKLS8vIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0ZXN0IGNh
c2UuCi0vLwotLy8gQSB0ZXN0IGZpeHR1cmUgY2xhc3MgbXVzdCBiZSBkZWNsYXJlZCBlYXJsaWVy
LiAgVGhlIHVzZXIgc2hvdWxkIHB1dAotLy8gdGhlIHRlc3QgY29kZSBiZXR3ZWVuIGJyYWNlcyBh
ZnRlciB1c2luZyB0aGlzIG1hY3JvLiAgRXhhbXBsZToKLS8vCi0vLyAgIGNsYXNzIEZvb1Rlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0vLyAgICBwcm90ZWN0ZWQ6Ci0vLyAgICAgdmlydHVh
bCB2b2lkIFNldFVwKCkgeyBiXy5BZGRFbGVtZW50KDMpOyB9Ci0vLwotLy8gICAgIEZvbyBhXzsK
LS8vICAgICBGb28gYl87Ci0vLyAgIH07Ci0vLwotLy8gICBURVNUX0YoRm9vVGVzdCwgSW5pdGlh
bGl6ZXNDb3JyZWN0bHkpIHsKLS8vICAgICBFWFBFQ1RfVFJVRShhXy5TdGF0dXNJc09LKCkpOwot
Ly8gICB9Ci0vLwotLy8gICBURVNUX0YoRm9vVGVzdCwgUmV0dXJuc0VsZW1lbnRDb3VudENvcnJl
Y3RseSkgewotLy8gICAgIEVYUEVDVF9FUSgwLCBhXy5zaXplKCkpOwotLy8gICAgIEVYUEVDVF9F
USgxLCBiXy5zaXplKCkpOwotLy8gICB9Ci0KLSNkZWZpbmUgVEVTVF9GKHRlc3RfZml4dHVyZSwg
dGVzdF9uYW1lKVwKLSAgR1RFU1RfVEVTVF8odGVzdF9maXh0dXJlLCB0ZXN0X25hbWUsIHRlc3Rf
Zml4dHVyZSwgXAotICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpHZXRUeXBlSWQ8
dGVzdF9maXh0dXJlPigpKQotCi0vLyBSZXR1cm5zIGEgcGF0aCB0byB0ZW1wb3JhcnkgZGlyZWN0
b3J5LgotLy8gVHJpZXMgdG8gZGV0ZXJtaW5lIGFuIGFwcHJvcHJpYXRlIGRpcmVjdG9yeSBmb3Ig
dGhlIHBsYXRmb3JtLgotR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBUZW1wRGlyKCk7Ci0KLX0gIC8v
IG5hbWVzcGFjZSB0ZXN0aW5nCi0KLS8vIFVzZSB0aGlzIGZ1bmN0aW9uIGluIG1haW4oKSB0byBy
dW4gYWxsIHRlc3RzLiAgSXQgcmV0dXJucyAwIGlmIGFsbAotLy8gdGVzdHMgYXJlIHN1Y2Nlc3Nm
dWwsIG9yIDEgb3RoZXJ3aXNlLgotLy8KLS8vIFJVTl9BTExfVEVTVFMoKSBzaG91bGQgYmUgaW52
b2tlZCBhZnRlciB0aGUgY29tbWFuZCBsaW5lIGhhcyBiZWVuCi0vLyBwYXJzZWQgYnkgSW5pdEdv
b2dsZVRlc3QoKS4KLS8vCi0vLyBUaGlzIGZ1bmN0aW9uIHdhcyBmb3JtZXJseSBhIG1hY3JvOyB0
aHVzLCBpdCBpcyBpbiB0aGUgZ2xvYmFsCi0vLyBuYW1lc3BhY2UgYW5kIGhhcyBhbiBhbGwtY2Fw
cyBuYW1lLgotaW50IFJVTl9BTExfVEVTVFMoKSBHVEVTVF9NVVNUX1VTRV9SRVNVTFRfOwotCi1p
bmxpbmUgaW50IFJVTl9BTExfVEVTVFMoKSB7Ci0gIHJldHVybiA6OnRlc3Rpbmc6OlVuaXRUZXN0
OjpHZXRJbnN0YW5jZSgpLT5SdW4oKTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNs
dWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
aW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzBhZTcxMmY1MGVkM2Q4ZTg0NDZlNDQ5NWFmOWIxYWJlY2FiMmU4Ni4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMzU4ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgotLy8gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotLy8gVGhpcyBmaWxlIGlzIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIG9uIDEwLzMxLzIw
MTEgYnkgY29tbWFuZAotLy8gJ2dlbl9ndGVzdF9wcmVkX2ltcGwucHkgNScuICBETyBOT1QgRURJ
VCBCWSBIQU5EIQotLy8KLS8vIEltcGxlbWVudHMgYSBmYW1pbHkgb2YgZ2VuZXJpYyBwcmVkaWNh
dGUgYXNzZXJ0aW9uIG1hY3Jvcy4KLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1BSRURfSU1QTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1Q
TF9IXwotCi0vLyBNYWtlcyBzdXJlIHRoaXMgaGVhZGVyIGlzIG5vdCBpbmNsdWRlZCBiZWZvcmUg
Z3Rlc3QuaC4KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9IXwotIyBlcnJvciBE
byBub3QgaW5jbHVkZSBndGVzdF9wcmVkX2ltcGwuaCBkaXJlY3RseS4gIEluY2x1ZGUgZ3Rlc3Qu
aCBpbnN0ZWFkLgotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCi0KLS8v
IFRoaXMgaGVhZGVyIGltcGxlbWVudHMgYSBmYW1pbHkgb2YgZ2VuZXJpYyBwcmVkaWNhdGUgYXNz
ZXJ0aW9uCi0vLyBtYWNyb3M6Ci0vLwotLy8gICBBU1NFUlRfUFJFRF9GT1JNQVQxKHByZWRfZm9y
bWF0LCB2MSkKLS8vICAgQVNTRVJUX1BSRURfRk9STUFUMihwcmVkX2Zvcm1hdCwgdjEsIHYyKQot
Ly8gICAuLi4KLS8vCi0vLyB3aGVyZSBwcmVkX2Zvcm1hdCBpcyBhIGZ1bmN0aW9uIG9yIGZ1bmN0
b3IgdGhhdCB0YWtlcyBuIChpbiB0aGUKLS8vIGNhc2Ugb2YgQVNTRVJUX1BSRURfRk9STUFUbikg
dmFsdWVzIGFuZCB0aGVpciBzb3VyY2UgZXhwcmVzc2lvbgotLy8gdGV4dCwgYW5kIHJldHVybnMg
YSB0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQuICBTZWUgdGhlIGRlZmluaXRpb24KLS8vIG9mIEFT
U0VSVF9FUSBpbiBndGVzdC5oIGZvciBhbiBleGFtcGxlLgotLy8KLS8vIElmIHlvdSBkb24ndCBj
YXJlIGFib3V0IGZvcm1hdHRpbmcsIHlvdSBjYW4gdXNlIHRoZSBtb3JlCi0vLyByZXN0cmljdGl2
ZSB2ZXJzaW9uOgotLy8KLS8vICAgQVNTRVJUX1BSRUQxKHByZWQsIHYxKQotLy8gICBBU1NFUlRf
UFJFRDIocHJlZCwgdjEsIHYyKQotLy8gICAuLi4KLS8vCi0vLyB3aGVyZSBwcmVkIGlzIGFuIG4t
YXJ5IGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCByZXR1cm5zIGJvb2wsCi0vLyBhbmQgdGhlIHZh
bHVlcyB2MSwgdjIsIC4uLiwgbXVzdCBzdXBwb3J0IHRoZSA8PCBvcGVyYXRvciBmb3IKLS8vIHN0
cmVhbWluZyB0byBzdGQ6Om9zdHJlYW0uCi0vLwotLy8gV2UgYWxzbyBkZWZpbmUgdGhlIEVYUEVD
VF8qIHZhcmlhdGlvbnMuCi0vLwotLy8gRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQgcHJlZGljYXRl
cyB3aG9zZSBhcml0eSBpcyBhdCBtb3N0IDUuCi0vLyBQbGVhc2UgZW1haWwgZ29vZ2xldGVzdGZy
YW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkCi0vLyBzdXBwb3J0IGZvciBoaWdo
ZXIgYXJpdGllcy4KLQotLy8gR1RFU1RfQVNTRVJUXyBpcyB0aGUgYmFzaWMgc3RhdGVtZW50IHRv
IHdoaWNoIGFsbCBvZiB0aGUgYXNzZXJ0aW9ucwotLy8gaW4gdGhpcyBmaWxlIHJlZHVjZS4gIERv
bid0IHVzZSB0aGlzIGluIHlvdXIgY29kZS4KLQotI2RlZmluZSBHVEVTVF9BU1NFUlRfKGV4cHJl
c3Npb24sIG9uX2ZhaWx1cmUpIFwKLSAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gXAot
ICBpZiAoY29uc3QgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgZ3Rlc3RfYXIgPSAoZXhwcmVz
c2lvbikpIFwKLSAgICA7IFwKLSAgZWxzZSBcCi0gICAgb25fZmFpbHVyZShndGVzdF9hci5mYWls
dXJlX21lc3NhZ2UoKSkKLQotCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGltcGxlbWVudGluZyB7
RVhQRUNUfEFTU0VSVH1fUFJFRDEuICBEb24ndCB1c2UKLS8vIHRoaXMgaW4geW91ciBjb2RlLgot
dGVtcGxhdGUgPHR5cGVuYW1lIFByZWQsCi0gICAgICAgICAgdHlwZW5hbWUgVDE+Ci1Bc3NlcnRp
b25SZXN1bHQgQXNzZXJ0UHJlZDFIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGUxLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFByZWQgcHJlZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBUMSYgdjEpIHsKLSAgaWYgKHByZWQodjEpKSByZXR1cm4gQXNzZXJ0
aW9uU3VjY2VzcygpOwotCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJlZF90ZXh0
IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIpIGV2YWx1YXRl
cyB0byBmYWxzZSwgd2hlcmUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8
PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYxOwotfQotCi0vLyBJbnRlcm5hbCBtYWNybyBm
b3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDEuCi0vLyBEb24ndCB1
c2UgdGhpcyBpbiB5b3VyIGNvZGUuCi0jZGVmaW5lIEdURVNUX1BSRURfRk9STUFUMV8ocHJlZF9m
b3JtYXQsIHYxLCBvbl9mYWlsdXJlKVwKLSAgR1RFU1RfQVNTRVJUXyhwcmVkX2Zvcm1hdCgjdjEs
IHYxKSwgXAotICAgICAgICAgICAgICAgIG9uX2ZhaWx1cmUpCi0KLS8vIEludGVybmFsIG1hY3Jv
IGZvciBpbXBsZW1lbnRpbmcge0VYUEVDVHxBU1NFUlR9X1BSRUQxLiAgRG9uJ3QgdXNlCi0vLyB0
aGlzIGluIHlvdXIgY29kZS4KLSNkZWZpbmUgR1RFU1RfUFJFRDFfKHByZWQsIHYxLCBvbl9mYWls
dXJlKVwKLSAgR1RFU1RfQVNTRVJUXyg6OnRlc3Rpbmc6OkFzc2VydFByZWQxSGVscGVyKCNwcmVk
LCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdjEsIFwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWQsIFwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxKSwgb25fZmFpbHVy
ZSkKLQotLy8gVW5hcnkgcHJlZGljYXRlIGFzc2VydGlvbiBtYWNyb3MuCi0jZGVmaW5lIEVYUEVD
VF9QUkVEX0ZPUk1BVDEocHJlZF9mb3JtYXQsIHYxKSBcCi0gIEdURVNUX1BSRURfRk9STUFUMV8o
cHJlZF9mb3JtYXQsIHYxLCBHVEVTVF9OT05GQVRBTF9GQUlMVVJFXykKLSNkZWZpbmUgRVhQRUNU
X1BSRUQxKHByZWQsIHYxKSBcCi0gIEdURVNUX1BSRUQxXyhwcmVkLCB2MSwgR1RFU1RfTk9ORkFU
QUxfRkFJTFVSRV8pCi0jZGVmaW5lIEFTU0VSVF9QUkVEX0ZPUk1BVDEocHJlZF9mb3JtYXQsIHYx
KSBcCi0gIEdURVNUX1BSRURfRk9STUFUMV8ocHJlZF9mb3JtYXQsIHYxLCBHVEVTVF9GQVRBTF9G
QUlMVVJFXykKLSNkZWZpbmUgQVNTRVJUX1BSRUQxKHByZWQsIHYxKSBcCi0gIEdURVNUX1BSRUQx
XyhwcmVkLCB2MSwgR1RFU1RfRkFUQUxfRkFJTFVSRV8pCi0KLQotCi0vLyBIZWxwZXIgZnVuY3Rp
b24gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRDIuICBEb24ndCB1c2UKLS8v
IHRoaXMgaW4geW91ciBjb2RlLgotdGVtcGxhdGUgPHR5cGVuYW1lIFByZWQsCi0gICAgICAgICAg
dHlwZW5hbWUgVDEsCi0gICAgICAgICAgdHlwZW5hbWUgVDI+Ci1Bc3NlcnRpb25SZXN1bHQgQXNz
ZXJ0UHJlZDJIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGUxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGUyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFByZWQgcHJlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
MSYgdjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDImIHYyKSB7
Ci0gIGlmIChwcmVkKHYxLCB2MikpIHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7Ci0KLSAgcmV0
dXJuIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBwcmVkX3RleHQgPDwgIigiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgZTEgPDwgIiwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IGUyIDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwgd2hlcmUiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgIlxuIiA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYxCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0byAi
IDw8IHYyOwotfQotCi0vLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8
QVNTRVJUfV9QUkVEX0ZPUk1BVDIuCi0vLyBEb24ndCB1c2UgdGhpcyBpbiB5b3VyIGNvZGUuCi0j
ZGVmaW5lIEdURVNUX1BSRURfRk9STUFUMl8ocHJlZF9mb3JtYXQsIHYxLCB2Miwgb25fZmFpbHVy
ZSlcCi0gIEdURVNUX0FTU0VSVF8ocHJlZF9mb3JtYXQoI3YxLCAjdjIsIHYxLCB2MiksIFwKLSAg
ICAgICAgICAgICAgICBvbl9mYWlsdXJlKQotCi0vLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVt
ZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVEMi4gIERvbid0IHVzZQotLy8gdGhpcyBpbiB5b3Vy
IGNvZGUuCi0jZGVmaW5lIEdURVNUX1BSRUQyXyhwcmVkLCB2MSwgdjIsIG9uX2ZhaWx1cmUpXAot
ICBHVEVTVF9BU1NFUlRfKDo6dGVzdGluZzo6QXNzZXJ0UHJlZDJIZWxwZXIoI3ByZWQsIFwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2MSwgXAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3YyLCBcCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVkLCBcCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MSwgXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdjIpLCBvbl9mYWlsdXJlKQotCi0vLyBCaW5hcnkg
cHJlZGljYXRlIGFzc2VydGlvbiBtYWNyb3MuCi0jZGVmaW5lIEVYUEVDVF9QUkVEX0ZPUk1BVDIo
cHJlZF9mb3JtYXQsIHYxLCB2MikgXAotICBHVEVTVF9QUkVEX0ZPUk1BVDJfKHByZWRfZm9ybWF0
LCB2MSwgdjIsIEdURVNUX05PTkZBVEFMX0ZBSUxVUkVfKQotI2RlZmluZSBFWFBFQ1RfUFJFRDIo
cHJlZCwgdjEsIHYyKSBcCi0gIEdURVNUX1BSRUQyXyhwcmVkLCB2MSwgdjIsIEdURVNUX05PTkZB
VEFMX0ZBSUxVUkVfKQotI2RlZmluZSBBU1NFUlRfUFJFRF9GT1JNQVQyKHByZWRfZm9ybWF0LCB2
MSwgdjIpIFwKLSAgR1RFU1RfUFJFRF9GT1JNQVQyXyhwcmVkX2Zvcm1hdCwgdjEsIHYyLCBHVEVT
VF9GQVRBTF9GQUlMVVJFXykKLSNkZWZpbmUgQVNTRVJUX1BSRUQyKHByZWQsIHYxLCB2MikgXAot
ICBHVEVTVF9QUkVEMl8ocHJlZCwgdjEsIHYyLCBHVEVTVF9GQVRBTF9GQUlMVVJFXykKLQotCi0K
LS8vIEhlbHBlciBmdW5jdGlvbiBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVE
My4gIERvbid0IHVzZQotLy8gdGhpcyBpbiB5b3VyIGNvZGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
UHJlZCwKLSAgICAgICAgICB0eXBlbmFtZSBUMSwKLSAgICAgICAgICB0eXBlbmFtZSBUMiwKLSAg
ICAgICAgICB0eXBlbmFtZSBUMz4KLUFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVkM0hlbHBlcihj
b25zdCBjaGFyKiBwcmVkX3RleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogZTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
ZTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlZCBwcmVkLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQxJiB2MSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBUMiYgdjIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVDMmIHYzKSB7Ci0gIGlmIChwcmVkKHYxLCB2MiwgdjMpKSByZXR1
cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwotCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwg
cHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIs
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUxIDw8ICIgZXZhbHVhdGVz
IHRvICIgPDwgdjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUyIDw8
ICIgZXZhbHVhdGVzIHRvICIgPDwgdjIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAi
XG4iIDw8IGUzIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjM7Ci19Ci0KLS8vIEludGVybmFsIG1h
Y3JvIGZvciBpbXBsZW1lbnRpbmcge0VYUEVDVHxBU1NFUlR9X1BSRURfRk9STUFUMy4KLS8vIERv
bid0IHVzZSB0aGlzIGluIHlvdXIgY29kZS4KLSNkZWZpbmUgR1RFU1RfUFJFRF9GT1JNQVQzXyhw
cmVkX2Zvcm1hdCwgdjEsIHYyLCB2Mywgb25fZmFpbHVyZSlcCi0gIEdURVNUX0FTU0VSVF8ocHJl
ZF9mb3JtYXQoI3YxLCAjdjIsICN2MywgdjEsIHYyLCB2MyksIFwKLSAgICAgICAgICAgICAgICBv
bl9mYWlsdXJlKQotCi0vLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8
QVNTRVJUfV9QUkVEMy4gIERvbid0IHVzZQotLy8gdGhpcyBpbiB5b3VyIGNvZGUuCi0jZGVmaW5l
IEdURVNUX1BSRUQzXyhwcmVkLCB2MSwgdjIsIHYzLCBvbl9mYWlsdXJlKVwKLSAgR1RFU1RfQVNT
RVJUXyg6OnRlc3Rpbmc6OkFzc2VydFByZWQzSGVscGVyKCNwcmVkLCBcCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdjEsIFwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2MiwgXAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgI3YzLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmVkLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2MSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdjIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHYzKSwgb25fZmFpbHVyZSkKLQotLy8gVGVybmFyeSBwcmVkaWNhdGUgYXNzZXJ0aW9u
IG1hY3Jvcy4KLSNkZWZpbmUgRVhQRUNUX1BSRURfRk9STUFUMyhwcmVkX2Zvcm1hdCwgdjEsIHYy
LCB2MykgXAotICBHVEVTVF9QUkVEX0ZPUk1BVDNfKHByZWRfZm9ybWF0LCB2MSwgdjIsIHYzLCBH
VEVTVF9OT05GQVRBTF9GQUlMVVJFXykKLSNkZWZpbmUgRVhQRUNUX1BSRUQzKHByZWQsIHYxLCB2
MiwgdjMpIFwKLSAgR1RFU1RfUFJFRDNfKHByZWQsIHYxLCB2MiwgdjMsIEdURVNUX05PTkZBVEFM
X0ZBSUxVUkVfKQotI2RlZmluZSBBU1NFUlRfUFJFRF9GT1JNQVQzKHByZWRfZm9ybWF0LCB2MSwg
djIsIHYzKSBcCi0gIEdURVNUX1BSRURfRk9STUFUM18ocHJlZF9mb3JtYXQsIHYxLCB2MiwgdjMs
IEdURVNUX0ZBVEFMX0ZBSUxVUkVfKQotI2RlZmluZSBBU1NFUlRfUFJFRDMocHJlZCwgdjEsIHYy
LCB2MykgXAotICBHVEVTVF9QUkVEM18ocHJlZCwgdjEsIHYyLCB2MywgR1RFU1RfRkFUQUxfRkFJ
TFVSRV8pCi0KLQotCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGltcGxlbWVudGluZyB7RVhQRUNU
fEFTU0VSVH1fUFJFRDQuICBEb24ndCB1c2UKLS8vIHRoaXMgaW4geW91ciBjb2RlLgotdGVtcGxh
dGUgPHR5cGVuYW1lIFByZWQsCi0gICAgICAgICAgdHlwZW5hbWUgVDEsCi0gICAgICAgICAgdHlw
ZW5hbWUgVDIsCi0gICAgICAgICAgdHlwZW5hbWUgVDMsCi0gICAgICAgICAgdHlwZW5hbWUgVDQ+
Ci1Bc3NlcnRpb25SZXN1bHQgQXNzZXJ0UHJlZDRIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGUxLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGUyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGUzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGU0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFByZWQgcHJlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBUMSYgdjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VDImIHYyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQzJiB2MywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUNCYgdjQpIHsKLSAgaWYg
KHByZWQodjEsIHYyLCB2MywgdjQpKSByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwotCi0gIHJl
dHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8PCBlMiA8PCAiLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwg
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGU0IDw8ICIpIGV2YWx1YXRlcyB0byBm
YWxzZSwgd2hlcmUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMSA8
PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwg
IlxuIiA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYyCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPDwgIlxuIiA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYzCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlNCA8PCAiIGV2YWx1YXRlcyB0byAiIDw8
IHY0OwotfQotCi0vLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNT
RVJUfV9QUkVEX0ZPUk1BVDQuCi0vLyBEb24ndCB1c2UgdGhpcyBpbiB5b3VyIGNvZGUuCi0jZGVm
aW5lIEdURVNUX1BSRURfRk9STUFUNF8ocHJlZF9mb3JtYXQsIHYxLCB2MiwgdjMsIHY0LCBvbl9m
YWlsdXJlKVwKLSAgR1RFU1RfQVNTRVJUXyhwcmVkX2Zvcm1hdCgjdjEsICN2MiwgI3YzLCAjdjQs
IHYxLCB2MiwgdjMsIHY0KSwgXAotICAgICAgICAgICAgICAgIG9uX2ZhaWx1cmUpCi0KLS8vIElu
dGVybmFsIG1hY3JvIGZvciBpbXBsZW1lbnRpbmcge0VYUEVDVHxBU1NFUlR9X1BSRUQ0LiAgRG9u
J3QgdXNlCi0vLyB0aGlzIGluIHlvdXIgY29kZS4KLSNkZWZpbmUgR1RFU1RfUFJFRDRfKHByZWQs
IHYxLCB2MiwgdjMsIHY0LCBvbl9mYWlsdXJlKVwKLSAgR1RFU1RfQVNTRVJUXyg6OnRlc3Rpbmc6
OkFzc2VydFByZWQ0SGVscGVyKCNwcmVkLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjdjEsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICN2MiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgI3YzLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjdjQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByZWQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYx
LCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MiwgXAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjMsIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY0KSwgb25fZmFpbHVyZSkK
LQotLy8gNC1hcnkgcHJlZGljYXRlIGFzc2VydGlvbiBtYWNyb3MuCi0jZGVmaW5lIEVYUEVDVF9Q
UkVEX0ZPUk1BVDQocHJlZF9mb3JtYXQsIHYxLCB2MiwgdjMsIHY0KSBcCi0gIEdURVNUX1BSRURf
Rk9STUFUNF8ocHJlZF9mb3JtYXQsIHYxLCB2MiwgdjMsIHY0LCBHVEVTVF9OT05GQVRBTF9GQUlM
VVJFXykKLSNkZWZpbmUgRVhQRUNUX1BSRUQ0KHByZWQsIHYxLCB2MiwgdjMsIHY0KSBcCi0gIEdU
RVNUX1BSRUQ0XyhwcmVkLCB2MSwgdjIsIHYzLCB2NCwgR1RFU1RfTk9ORkFUQUxfRkFJTFVSRV8p
Ci0jZGVmaW5lIEFTU0VSVF9QUkVEX0ZPUk1BVDQocHJlZF9mb3JtYXQsIHYxLCB2MiwgdjMsIHY0
KSBcCi0gIEdURVNUX1BSRURfRk9STUFUNF8ocHJlZF9mb3JtYXQsIHYxLCB2MiwgdjMsIHY0LCBH
VEVTVF9GQVRBTF9GQUlMVVJFXykKLSNkZWZpbmUgQVNTRVJUX1BSRUQ0KHByZWQsIHYxLCB2Miwg
djMsIHY0KSBcCi0gIEdURVNUX1BSRUQ0XyhwcmVkLCB2MSwgdjIsIHYzLCB2NCwgR1RFU1RfRkFU
QUxfRkFJTFVSRV8pCi0KLQotCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGltcGxlbWVudGluZyB7
RVhQRUNUfEFTU0VSVH1fUFJFRDUuICBEb24ndCB1c2UKLS8vIHRoaXMgaW4geW91ciBjb2RlLgot
dGVtcGxhdGUgPHR5cGVuYW1lIFByZWQsCi0gICAgICAgICAgdHlwZW5hbWUgVDEsCi0gICAgICAg
ICAgdHlwZW5hbWUgVDIsCi0gICAgICAgICAgdHlwZW5hbWUgVDMsCi0gICAgICAgICAgdHlwZW5h
bWUgVDQsCi0gICAgICAgICAgdHlwZW5hbWUgVDU+Ci1Bc3NlcnRpb25SZXN1bHQgQXNzZXJ0UHJl
ZDVIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGUxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIGUyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGUzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIGU0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGU1
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByZWQgcHJlZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUMSYgdjEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVDImIHYyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFQzJiB2MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBUNCYgdjQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VDUmIHY1KSB7Ci0gIGlmIChwcmVkKHYxLCB2MiwgdjMsIHY0LCB2NSkpIHJldHVybiBBc3NlcnRp
b25TdWNjZXNzKCk7Ci0KLSAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBwcmVkX3RleHQg
PDwgIigiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTEgPDwgIiwgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8IGUyIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCBlMyA8PCAiLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTQg
PDwgIiwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGU1IDw8ICIpIGV2YWx1YXRl
cyB0byBmYWxzZSwgd2hlcmUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8
PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYxCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgIlxuIiA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYyCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYzCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlNCA8PCAiIGV2YWx1YXRlcyB0
byAiIDw8IHY0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlNSA8PCAi
IGV2YWx1YXRlcyB0byAiIDw8IHY1OwotfQotCi0vLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVt
ZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDUuCi0vLyBEb24ndCB1c2UgdGhpcyBp
biB5b3VyIGNvZGUuCi0jZGVmaW5lIEdURVNUX1BSRURfRk9STUFUNV8ocHJlZF9mb3JtYXQsIHYx
LCB2MiwgdjMsIHY0LCB2NSwgb25fZmFpbHVyZSlcCi0gIEdURVNUX0FTU0VSVF8ocHJlZF9mb3Jt
YXQoI3YxLCAjdjIsICN2MywgI3Y0LCAjdjUsIHYxLCB2MiwgdjMsIHY0LCB2NSksIFwKLSAgICAg
ICAgICAgICAgICBvbl9mYWlsdXJlKQotCi0vLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50
aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVENS4gIERvbid0IHVzZQotLy8gdGhpcyBpbiB5b3VyIGNv
ZGUuCi0jZGVmaW5lIEdURVNUX1BSRUQ1XyhwcmVkLCB2MSwgdjIsIHYzLCB2NCwgdjUsIG9uX2Zh
aWx1cmUpXAotICBHVEVTVF9BU1NFUlRfKDo6dGVzdGluZzo6QXNzZXJ0UHJlZDVIZWxwZXIoI3By
ZWQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2MSwg
XAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3YyLCBcCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdjMsIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2NCwgXAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Y1LCBcCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVkLCBcCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MSwgXAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdjIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHYzLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2NCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdjUpLCBvbl9mYWlsdXJlKQotCi0vLyA1LWFyeSBwcmVkaWNhdGUgYXNzZXJ0aW9u
IG1hY3Jvcy4KLSNkZWZpbmUgRVhQRUNUX1BSRURfRk9STUFUNShwcmVkX2Zvcm1hdCwgdjEsIHYy
LCB2MywgdjQsIHY1KSBcCi0gIEdURVNUX1BSRURfRk9STUFUNV8ocHJlZF9mb3JtYXQsIHYxLCB2
MiwgdjMsIHY0LCB2NSwgR1RFU1RfTk9ORkFUQUxfRkFJTFVSRV8pCi0jZGVmaW5lIEVYUEVDVF9Q
UkVENShwcmVkLCB2MSwgdjIsIHYzLCB2NCwgdjUpIFwKLSAgR1RFU1RfUFJFRDVfKHByZWQsIHYx
LCB2MiwgdjMsIHY0LCB2NSwgR1RFU1RfTk9ORkFUQUxfRkFJTFVSRV8pCi0jZGVmaW5lIEFTU0VS
VF9QUkVEX0ZPUk1BVDUocHJlZF9mb3JtYXQsIHYxLCB2MiwgdjMsIHY0LCB2NSkgXAotICBHVEVT
VF9QUkVEX0ZPUk1BVDVfKHByZWRfZm9ybWF0LCB2MSwgdjIsIHYzLCB2NCwgdjUsIEdURVNUX0ZB
VEFMX0ZBSUxVUkVfKQotI2RlZmluZSBBU1NFUlRfUFJFRDUocHJlZCwgdjEsIHYyLCB2MywgdjQs
IHY1KSBcCi0gIEdURVNUX1BSRUQ1XyhwcmVkLCB2MSwgdjIsIHYzLCB2NCwgdjUsIEdURVNUX0ZB
VEFMX0ZBSUxVUkVfKQotCi0KLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1BSRURfSU1QTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5j
bHVkZS9ndGVzdC9ndGVzdF9wcm9kLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNs
dWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE4
MGRkYzZjNzBlZTJkYzc3M2VkNjc2NWE0Zjg5ZGZhOGNiMzhlOC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9p
bmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAK
LS8vIENvcHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8g
ZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8v
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRo
b3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0vLwotLy8gR29vZ2xlIEMrKyBUZXN0
aW5nIEZyYW1ld29yayBkZWZpbml0aW9ucyB1c2VmdWwgaW4gcHJvZHVjdGlvbiBjb2RlLgotCi0j
aWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJPRF9IXwotI2RlZmluZSBHVEVTVF9J
TkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KLQotLy8gV2hlbiB5b3UgbmVlZCB0byB0ZXN0IHRo
ZSBwcml2YXRlIG9yIHByb3RlY3RlZCBtZW1iZXJzIG9mIGEgY2xhc3MsCi0vLyB1c2UgdGhlIEZS
SUVORF9URVNUIG1hY3JvIHRvIGRlY2xhcmUgeW91ciB0ZXN0cyBhcyBmcmllbmRzIG9mIHRoZQot
Ly8gY2xhc3MuICBGb3IgZXhhbXBsZToKLS8vCi0vLyBjbGFzcyBNeUNsYXNzIHsKLS8vICBwcml2
YXRlOgotLy8gICB2b2lkIE15TWV0aG9kKCk7Ci0vLyAgIEZSSUVORF9URVNUKE15Q2xhc3NUZXN0
LCBNeU1ldGhvZCk7Ci0vLyB9OwotLy8KLS8vIGNsYXNzIE15Q2xhc3NUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewotLy8gICAvLyAuLi4KLS8vIH07Ci0vLwotLy8gVEVTVF9GKE15Q2xhc3NU
ZXN0LCBNeU1ldGhvZCkgewotLy8gICAvLyBDYW4gY2FsbCBNeUNsYXNzOjpNeU1ldGhvZCgpIGhl
cmUuCi0vLyB9Ci0KLSNkZWZpbmUgRlJJRU5EX1RFU1QodGVzdF9jYXNlX25hbWUsIHRlc3RfbmFt
ZSlcCi1mcmllbmQgY2xhc3MgdGVzdF9jYXNlX25hbWUjI18jI3Rlc3RfbmFtZSMjX1Rlc3QKLQot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9t
L2d0ZXN0LXBvcnQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzg1ZjVkNTg0NzdiZTI3OTA0MmFiNGZmYjE1NGZiMDEyYjU3NWU3Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wb3J0LmgKKysrIC9kZXYv
bnVsbApAQCAtMSw3MiArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNSwgR29vZ2xlIEluYy4KLS8v
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8v
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0vLwotLy8gSW5qZWN0aW9uIHBvaW50IGZvciBjdXN0b20gdXNlciBjb25maWd1
cmF0aW9ucy4KLS8vIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGNhbiBiZSBkZWZpbmVkOgotLy8KLS8v
ICAgRmxhZyByZWxhdGVkIG1hY3JvczoKLS8vICAgICBHVEVTVF9GTEFHKGZsYWdfbmFtZSkKLS8v
ICAgICBHVEVTVF9VU0VfT1dOX0ZMQUdGSUxFX0ZMQUdfICAtIERlZmluZSB0byAwIHdoZW4gdGhl
IHN5c3RlbSBwcm92aWRlcyBpdHMKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG93biBmbGFnZmlsZSBmbGFnIHBhcnNpbmcuCi0vLyAgICAgR1RFU1RfREVDTEFSRV9ib29s
XyhuYW1lKQotLy8gICAgIEdURVNUX0RFQ0xBUkVfaW50MzJfKG5hbWUpCi0vLyAgICAgR1RFU1Rf
REVDTEFSRV9zdHJpbmdfKG5hbWUpCi0vLyAgICAgR1RFU1RfREVGSU5FX2Jvb2xfKG5hbWUsIGRl
ZmF1bHRfdmFsLCBkb2MpCi0vLyAgICAgR1RFU1RfREVGSU5FX2ludDMyXyhuYW1lLCBkZWZhdWx0
X3ZhbCwgZG9jKQotLy8gICAgIEdURVNUX0RFRklORV9zdHJpbmdfKG5hbWUsIGRlZmF1bHRfdmFs
LCBkb2MpCi0vLwotLy8gICBUZXN0IGZpbHRlcmluZzoKLS8vICAgICBHVEVTVF9URVNUX0ZJTFRF
Ul9FTlZfVkFSXyAtIFRoZSBuYW1lIG9mIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRoYXQKLS8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgdXNlZCBpZiAtLUdURVNU
X0ZMQUcodGVzdF9maWx0ZXIpCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
cyBub3QgcHJvdmlkZWQuCi0vLwotLy8gICBMb2dnaW5nOgotLy8gICAgIEdURVNUX0xPR18oc2V2
ZXJpdHkpCi0vLyAgICAgR1RFU1RfQ0hFQ0tfKGNvbmRpdGlvbikKLS8vICAgICBGdW5jdGlvbnMg
TG9nVG9TdGRlcnIoKSBhbmQgRmx1c2hJbmZvTG9nKCkgaGF2ZSB0byBiZSBwcm92aWRlZCB0b28u
Ci0vLwotLy8gICBUaHJlYWRpbmc6Ci0vLyAgICAgR1RFU1RfSEFTX05PVElGSUNBVElPTl8gLSBF
bmFibGVkIGlmIE5vdGlmaWNhdGlvbiBpcyBhbHJlYWR5IHByb3ZpZGVkLgotLy8gICAgIEdURVNU
X0hBU19NVVRFWF9BTkRfVEhSRUFEX0xPQ0FMXyAtIEVuYWJsZWQgaWYgTXV0ZXggYW5kIFRocmVh
ZExvY2FsIGFyZQotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFs
cmVhZHkgcHJvdmlkZWQuCi0vLyAgICAgTXVzdCBhbHNvIHByb3ZpZGUgR1RFU1RfREVDTEFSRV9T
VEFUSUNfTVVURVhfKG11dGV4KSBhbmQKLS8vICAgICBHVEVTVF9ERUZJTkVfU1RBVElDX01VVEVY
XyhtdXRleCkKLS8vCi0vLyAgICAgR1RFU1RfRVhDTFVTSVZFX0xPQ0tfUkVRVUlSRURfKGxvY2tz
KQotLy8gICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKGxvY2tzKQotLy8KLS8vICAgRXhwb3J0aW5n
IEFQSSBzeW1ib2xzOgotLy8gICAgIEdURVNUX0FQSV8gLSBTcGVjaWZpZXIgZm9yIGV4cG9ydGVk
IHN5bWJvbHMuCi0vLwotLy8gKiogQ3VzdG9tIGltcGxlbWVudGF0aW9uIHN0YXJ0cyBoZXJlICoq
Ci0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUE9S
VF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9Q
T1JUX0hfCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01f
R1RFU1RfUE9SVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcHJpbnRlcnMuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9w
YXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXByaW50
ZXJzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwYzFlYTA1MGI2MWU5M2JmY2Yx
NDZlNjExMWJmYTUwMzE1YzgyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9jdXN0b20vZ3Rlc3QtcHJpbnRlcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAg
QEAKLS8vIENvcHlyaWdodCAyMDE1LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
Ly8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBU
aGlzIGZpbGUgcHJvdmlkZXMgYW4gaW5qZWN0aW9uIHBvaW50IGZvciBjdXN0b20gcHJpbnRlcnMg
aW4gYSBsb2NhbAotLy8gaW5zdGFsbGF0aW9uIG9mIGdUZXN0LgotLy8gSXQgd2lsbCBiZSBpbmNs
dWRlZCBmcm9tIGd0ZXN0LXByaW50ZXJzLmggYW5kIHRoZSBvdmVycmlkZXMgaW4gdGhpcyBmaWxl
Ci0vLyB3aWxsIGJlIHZpc2libGUgdG8gZXZlcnlvbmUuCi0vLyBTZWUgZG9jdW1lbnRhdGlvbiBh
dCBndGVzdC9ndGVzdC1wcmludGVycy5oIGZvciBkZXRhaWxzIG9uIGhvdyB0byBkZWZpbmUgYQot
Ly8gY3VzdG9tIHByaW50ZXIuCi0vLwotLy8gKiogQ3VzdG9tIGltcGxlbWVudGF0aW9uIHN0YXJ0
cyBoZXJlICoqCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01f
R1RFU1RfUFJJTlRFUlNfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9D
VVNUT01fR1RFU1RfUFJJTlRFUlNfSF8KLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNU
X0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9t
L2d0ZXN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3YTFjMGI3ZDlhOTZlNzZi
YjNmYzhmMGU1MTI4YTQ1NDViZjViNWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9p
bnRlcm5hbC9jdXN0b20vZ3Rlc3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8v
IENvcHlyaWdodCAyMDE1LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8v
Ci0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlz
dHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
Ly8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBJbmplY3Rp
b24gcG9pbnQgZm9yIGN1c3RvbSB1c2VyIGNvbmZpZ3VyYXRpb25zLgotLy8gVGhlIGZvbGxvd2lu
ZyBtYWNyb3MgY2FuIGJlIGRlZmluZWQ6Ci0vLwotLy8gR1RFU1RfT1NfU1RBQ0tfVFJBQ0VfR0VU
VEVSXyAgLSBUaGUgbmFtZSBvZiBhbiBpbXBsZW1lbnRhdGlvbiBvZgotLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2UuCi0vLwotLy8g
R1RFU1RfQ1VTVE9NX1RFTVBESVJfRlVOQ1RJT05fIC0gQW4gb3ZlcnJpZGUgZm9yIHRlc3Rpbmc6
OlRlbXBEaXIoKS4KLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlZSB0ZXN0
aW5nOjpUZW1wRGlyIGZvciBzZW1hbnRpY3MgYW5kCi0vLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaWduYXR1cmUuCi0vLyAKLS8vICoqIEN1c3RvbSBpbXBsZW1lbnRhdGlvbiBz
dGFydHMgaGVyZSAqKgotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VT
VE9NX0dURVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9N
X0dURVNUX0hfCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNU
T01fR1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1kZWF0aC10ZXN0
LWludGVybmFsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiM2E3OGY1YmY4NjMy
OGZjMWJmNThmMTY4MmM5ZWU0NGE1MDU3YzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9ndGVzdC1kZWF0aC10ZXN0LWludGVybmFsLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwzMTkgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDUsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmln
aHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0
OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8v
Ci0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotLy8KLS8vIEF1dGhvcnM6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pLCBlZWZhY21A
Z21haWwuY29tIChTZWFuIE1jYWZlZSkKLS8vCi0vLyBUaGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZy
YW1ld29yayAoR29vZ2xlIFRlc3QpCi0vLwotLy8gVGhpcyBoZWFkZXIgZmlsZSBkZWZpbmVzIGlu
dGVybmFsIHV0aWxpdGllcyBuZWVkZWQgZm9yIGltcGxlbWVudGluZwotLy8gZGVhdGggdGVzdHMu
ICBUaGV5IGFyZSBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4KLQotI2lmbmRlZiBH
VEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0RFQVRIX1RFU1RfSU5URVJOQUxfSF8K
LSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lO
VEVSTkFMX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgot
Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLQotbmFtZXNwYWNlIHRlc3RpbmcgewotbmFtZXNwYWNlIGlu
dGVybmFsIHsKLQotR1RFU1RfREVDTEFSRV9zdHJpbmdfKGludGVybmFsX3J1bl9kZWF0aF90ZXN0
KTsKLQotLy8gTmFtZXMgb2YgdGhlIGZsYWdzIChuZWVkZWQgZm9yIHBhcnNpbmcgR29vZ2xlIFRl
c3QgZmxhZ3MpLgotY29uc3QgY2hhciBrRGVhdGhUZXN0U3R5bGVGbGFnW10gPSAiZGVhdGhfdGVz
dF9zdHlsZSI7Ci1jb25zdCBjaGFyIGtEZWF0aFRlc3RVc2VGb3JrW10gPSAiZGVhdGhfdGVzdF91
c2VfZm9yayI7Ci1jb25zdCBjaGFyIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWdbXSA9ICJpbnRl
cm5hbF9ydW5fZGVhdGhfdGVzdCI7Ci0KLSNpZiBHVEVTVF9IQVNfREVBVEhfVEVTVAotCi0vLyBE
ZWF0aFRlc3QgaXMgYSBjbGFzcyB0aGF0IGhpZGVzIG11Y2ggb2YgdGhlIGNvbXBsZXhpdHkgb2Yg
dGhlCi0vLyBHVEVTVF9ERUFUSF9URVNUXyBtYWNyby4gIEl0IGlzIGFic3RyYWN0OyBpdHMgc3Rh
dGljIENyZWF0ZSBtZXRob2QKLS8vIHJldHVybnMgYSBjb25jcmV0ZSBjbGFzcyB0aGF0IGRlcGVu
ZHMgb24gdGhlIHByZXZhaWxpbmcgZGVhdGggdGVzdAotLy8gc3R5bGUsIGFzIGRlZmluZWQgYnkg
dGhlIC0tZ3Rlc3RfZGVhdGhfdGVzdF9zdHlsZSBhbmQvb3IKLS8vIC0tZ3Rlc3RfaW50ZXJuYWxf
cnVuX2RlYXRoX3Rlc3QgZmxhZ3MuCi0KLS8vIEluIGRlc2NyaWJpbmcgdGhlIHJlc3VsdHMgb2Yg
ZGVhdGggdGVzdHMsIHRoZXNlIHRlcm1zIGFyZSB1c2VkIHdpdGgKLS8vIHRoZSBjb3JyZXNwb25k
aW5nIGRlZmluaXRpb25zOgotLy8KLS8vIGV4aXQgc3RhdHVzOiAgVGhlIGludGVnZXIgZXhpdCBp
bmZvcm1hdGlvbiBpbiB0aGUgZm9ybWF0IHNwZWNpZmllZAotLy8gICAgICAgICAgICAgICBieSB3
YWl0KDIpCi0vLyBleGl0IGNvZGU6ICAgIFRoZSBpbnRlZ2VyIGNvZGUgcGFzc2VkIHRvIGV4aXQo
MyksIF9leGl0KDIpLCBvcgotLy8gICAgICAgICAgICAgICByZXR1cm5lZCBmcm9tIG1haW4oKQot
Y2xhc3MgR1RFU1RfQVBJXyBEZWF0aFRlc3QgewotIHB1YmxpYzoKLSAgLy8gQ3JlYXRlIHJldHVy
bnMgZmFsc2UgaWYgdGhlcmUgd2FzIGFuIGVycm9yIGRldGVybWluaW5nIHRoZQotICAvLyBhcHBy
b3ByaWF0ZSBhY3Rpb24gdG8gdGFrZSBmb3IgdGhlIGN1cnJlbnQgZGVhdGggdGVzdDsgZm9yIGV4
YW1wbGUsCi0gIC8vIGlmIHRoZSBndGVzdF9kZWF0aF90ZXN0X3N0eWxlIGZsYWcgaXMgc2V0IHRv
IGFuIGludmFsaWQgdmFsdWUuCi0gIC8vIFRoZSBMYXN0TWVzc2FnZSBtZXRob2Qgd2lsbCByZXR1
cm4gYSBtb3JlIGRldGFpbGVkIG1lc3NhZ2UgaW4gdGhhdAotICAvLyBjYXNlLiAgT3RoZXJ3aXNl
LCB0aGUgRGVhdGhUZXN0IHBvaW50ZXIgcG9pbnRlZCB0byBieSB0aGUgInRlc3QiCi0gIC8vIGFy
Z3VtZW50IGlzIHNldC4gIElmIHRoZSBkZWF0aCB0ZXN0IHNob3VsZCBiZSBza2lwcGVkLCB0aGUg
cG9pbnRlcgotICAvLyBpcyBzZXQgdG8gTlVMTDsgb3RoZXJ3aXNlLCBpdCBpcyBzZXQgdG8gdGhl
IGFkZHJlc3Mgb2YgYSBuZXcgY29uY3JldGUKLSAgLy8gRGVhdGhUZXN0IG9iamVjdCB0aGF0IGNv
bnRyb2xzIHRoZSBleGVjdXRpb24gb2YgdGhlIGN1cnJlbnQgdGVzdC4KLSAgc3RhdGljIGJvb2wg
Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAotICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3Qp
OwotICBEZWF0aFRlc3QoKTsKLSAgdmlydHVhbCB+RGVhdGhUZXN0KCkgeyB9Ci0KLSAgLy8gQSBo
ZWxwZXIgY2xhc3MgdGhhdCBhYm9ydHMgYSBkZWF0aCB0ZXN0IHdoZW4gaXQncyBkZWxldGVkLgot
ICBjbGFzcyBSZXR1cm5TZW50aW5lbCB7Ci0gICBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmV0dXJu
U2VudGluZWwoRGVhdGhUZXN0KiB0ZXN0KSA6IHRlc3RfKHRlc3QpIHsgfQotICAgIH5SZXR1cm5T
ZW50aW5lbCgpIHsgdGVzdF8tPkFib3J0KFRFU1RfRU5DT1VOVEVSRURfUkVUVVJOX1NUQVRFTUVO
VCk7IH0KLSAgIHByaXZhdGU6Ci0gICAgRGVhdGhUZXN0KiBjb25zdCB0ZXN0XzsKLSAgICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFJldHVyblNlbnRpbmVsKTsKLSAgfSBHVEVTVF9B
VFRSSUJVVEVfVU5VU0VEXzsKLQotICAvLyBBbiBlbnVtZXJhdGlvbiBvZiBwb3NzaWJsZSByb2xl
cyB0aGF0IG1heSBiZSB0YWtlbiB3aGVuIGEgZGVhdGgKLSAgLy8gdGVzdCBpcyBlbmNvdW50ZXJl
ZC4gIEVYRUNVVEUgbWVhbnMgdGhhdCB0aGUgZGVhdGggdGVzdCBsb2dpYyBzaG91bGQKLSAgLy8g
YmUgZXhlY3V0ZWQgaW1tZWRpYXRlbHkuICBPVkVSU0VFIG1lYW5zIHRoYXQgdGhlIHByb2dyYW0g
c2hvdWxkIHByZXBhcmUKLSAgLy8gdGhlIGFwcHJvcHJpYXRlIGVudmlyb25tZW50IGZvciBhIGNo
aWxkIHByb2Nlc3MgdG8gZXhlY3V0ZSB0aGUgZGVhdGgKLSAgLy8gdGVzdCwgdGhlbiB3YWl0IGZv
ciBpdCB0byBjb21wbGV0ZS4KLSAgZW51bSBUZXN0Um9sZSB7IE9WRVJTRUVfVEVTVCwgRVhFQ1VU
RV9URVNUIH07Ci0KLSAgLy8gQW4gZW51bWVyYXRpb24gb2YgdGhlIHRocmVlIHJlYXNvbnMgdGhh
dCBhIHRlc3QgbWlnaHQgYmUgYWJvcnRlZC4KLSAgZW51bSBBYm9ydFJlYXNvbiB7Ci0gICAgVEVT
VF9FTkNPVU5URVJFRF9SRVRVUk5fU1RBVEVNRU5ULAotICAgIFRFU1RfVEhSRVdfRVhDRVBUSU9O
LAotICAgIFRFU1RfRElEX05PVF9ESUUKLSAgfTsKLQotICAvLyBBc3N1bWVzIG9uZSBvZiB0aGUg
YWJvdmUgcm9sZXMuCi0gIHZpcnR1YWwgVGVzdFJvbGUgQXNzdW1lUm9sZSgpID0gMDsKLQotICAv
LyBXYWl0cyBmb3IgdGhlIGRlYXRoIHRlc3QgdG8gZmluaXNoIGFuZCByZXR1cm5zIGl0cyBzdGF0
dXMuCi0gIHZpcnR1YWwgaW50IFdhaXQoKSA9IDA7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBkZWF0aCB0ZXN0IHBhc3NlZDsgdGhhdCBpcywgdGhlIHRlc3QgcHJvY2VzcwotICAvLyBleGl0
ZWQgZHVyaW5nIHRoZSB0ZXN0LCBpdHMgZXhpdCBzdGF0dXMgbWF0Y2hlcyBhIHVzZXItc3VwcGxp
ZWQKLSAgLy8gcHJlZGljYXRlLCBhbmQgaXRzIHN0ZGVyciBvdXRwdXQgbWF0Y2hlcyBhIHVzZXIt
c3VwcGxpZWQgcmVndWxhcgotICAvLyBleHByZXNzaW9uLgotICAvLyBUaGUgdXNlci1zdXBwbGll
ZCBwcmVkaWNhdGUgbWF5IGJlIGEgbWFjcm8gZXhwcmVzc2lvbiByYXRoZXIKLSAgLy8gdGhhbiBh
IGZ1bmN0aW9uIHBvaW50ZXIgb3IgZnVuY3Rvciwgb3IgZWxzZSBXYWl0IGFuZCBQYXNzZWQgY291
bGQKLSAgLy8gYmUgY29tYmluZWQuCi0gIHZpcnR1YWwgYm9vbCBQYXNzZWQoYm9vbCBleGl0X3N0
YXR1c19vaykgPSAwOwotCi0gIC8vIFNpZ25hbHMgdGhhdCB0aGUgZGVhdGggdGVzdCBkaWQgbm90
IGRpZSBhcyBleHBlY3RlZC4KLSAgdmlydHVhbCB2b2lkIEFib3J0KEFib3J0UmVhc29uIHJlYXNv
bikgPSAwOwotCi0gIC8vIFJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBvdXRjb21lIG1lc3NhZ2Ug
cmVnYXJkaW5nIHRoZSBvdXRjb21lIG9mCi0gIC8vIHRoZSBsYXN0IGRlYXRoIHRlc3QuCi0gIHN0
YXRpYyBjb25zdCBjaGFyKiBMYXN0TWVzc2FnZSgpOwotCi0gIHN0YXRpYyB2b2lkIHNldF9sYXN0
X2RlYXRoX3Rlc3RfbWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7Ci0KLSBwcml2
YXRlOgotICAvLyBBIHN0cmluZyBjb250YWluaW5nIGEgZGVzY3JpcHRpb24gb2YgdGhlIG91dGNv
bWUgb2YgdGhlIGxhc3QgZGVhdGggdGVzdC4KLSAgc3RhdGljIHN0ZDo6c3RyaW5nIGxhc3RfZGVh
dGhfdGVzdF9tZXNzYWdlXzsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKERl
YXRoVGVzdCk7Ci19OwotCi0vLyBGYWN0b3J5IGludGVyZmFjZSBmb3IgZGVhdGggdGVzdHMuICBN
YXkgYmUgbW9ja2VkIG91dCBmb3IgdGVzdGluZy4KLWNsYXNzIERlYXRoVGVzdEZhY3Rvcnkgewot
IHB1YmxpYzoKLSAgdmlydHVhbCB+RGVhdGhUZXN0RmFjdG9yeSgpIHsgfQotICB2aXJ0dWFsIGJv
b2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAotICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0
ZXN0KSA9IDA7Ci19OwotCi0vLyBBIGNvbmNyZXRlIERlYXRoVGVzdEZhY3RvcnkgaW1wbGVtZW50
YXRpb24gZm9yIG5vcm1hbCB1c2UuCi1jbGFzcyBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeSA6IHB1
YmxpYyBEZWF0aFRlc3RGYWN0b3J5IHsKLSBwdWJsaWM6Ci0gIHZpcnR1YWwgYm9vbCBDcmVhdGUo
Y29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCi0gICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpOwotfTsK
LQotLy8gUmV0dXJucyB0cnVlIGlmIGV4aXRfc3RhdHVzIGRlc2NyaWJlcyBhIHByb2Nlc3MgdGhh
dCB3YXMgdGVybWluYXRlZAotLy8gYnkgYSBzaWduYWwsIG9yIGV4aXRlZCBub3JtYWxseSB3aXRo
IGEgbm9uemVybyBleGl0IGNvZGUuCi1HVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNzZnVs
bHkoaW50IGV4aXRfc3RhdHVzKTsKLQotLy8gVHJhcHMgQysrIGV4Y2VwdGlvbnMgZXNjYXBpbmcg
c3RhdGVtZW50IGFuZCByZXBvcnRzIHRoZW0gYXMgdGVzdAotLy8gZmFpbHVyZXMuIE5vdGUgdGhh
dCB0cmFwcGluZyBTRUggZXhjZXB0aW9ucyBpcyBub3QgaW1wbGVtZW50ZWQgaGVyZS4KLSMgaWYg
R1RFU1RfSEFTX0VYQ0VQVElPTlMKLSMgIGRlZmluZSBHVEVTVF9FWEVDVVRFX0RFQVRIX1RFU1Rf
U1RBVEVNRU5UXyhzdGF0ZW1lbnQsIGRlYXRoX3Rlc3QpIFwKLSAgdHJ5IHsgXAotICAgIEdURVNU
X1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAot
ICB9IGNhdGNoIChjb25zdCA6OnN0ZDo6ZXhjZXB0aW9uJiBndGVzdF9leGNlcHRpb24pIHsgXAot
ICAgIGZwcmludGYoXAotICAgICAgICBzdGRlcnIsIFwKLSAgICAgICAgIlxuJXM6IENhdWdodCBz
dGQ6OmV4Y2VwdGlvbi1kZXJpdmVkIGV4Y2VwdGlvbiBlc2NhcGluZyB0aGUgIiBcCi0gICAgICAg
ICJkZWF0aCB0ZXN0IHN0YXRlbWVudC4gRXhjZXB0aW9uIG1lc3NhZ2U6ICVzXG4iLCBcCi0gICAg
ICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkZvcm1hdEZpbGVMb2NhdGlvbihfX0ZJTEVfXywgX19M
SU5FX18pLmNfc3RyKCksIFwKLSAgICAgICAgZ3Rlc3RfZXhjZXB0aW9uLndoYXQoKSk7IFwKLSAg
ICBmZmx1c2goc3RkZXJyKTsgXAotICAgIGRlYXRoX3Rlc3QtPkFib3J0KDo6dGVzdGluZzo6aW50
ZXJuYWw6OkRlYXRoVGVzdDo6VEVTVF9USFJFV19FWENFUFRJT04pOyBcCi0gIH0gY2F0Y2ggKC4u
LikgeyBcCi0gICAgZGVhdGhfdGVzdC0+QWJvcnQoOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhU
ZXN0OjpURVNUX1RIUkVXX0VYQ0VQVElPTik7IFwKLSAgfQotCi0jIGVsc2UKLSMgIGRlZmluZSBH
VEVTVF9FWEVDVVRFX0RFQVRIX1RFU1RfU1RBVEVNRU5UXyhzdGF0ZW1lbnQsIGRlYXRoX3Rlc3Qp
IFwKLSAgR1RFU1RfU1VQUFJFU1NfVU5SRUFDSEFCTEVfQ09ERV9XQVJOSU5HX0JFTE9XXyhzdGF0
ZW1lbnQpCi0KLSMgZW5kaWYKLQotLy8gVGhpcyBtYWNybyBpcyBmb3IgaW1wbGVtZW50aW5nIEFT
U0VSVF9ERUFUSCosIEVYUEVDVF9ERUFUSCosCi0vLyBBU1NFUlRfRVhJVCosIGFuZCBFWFBFQ1Rf
RVhJVCouCi0jIGRlZmluZSBHVEVTVF9ERUFUSF9URVNUXyhzdGF0ZW1lbnQsIHByZWRpY2F0ZSwg
cmVnZXgsIGZhaWwpIFwKLSAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gXAotICBpZiAo
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1ZSgpKSB7IFwKLSAgICBjb25zdCA6OnRlc3Rp
bmc6OmludGVybmFsOjpSRSYgZ3Rlc3RfcmVnZXggPSAocmVnZXgpOyBcCi0gICAgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6RGVhdGhUZXN0KiBndGVzdF9kdDsgXAotICAgIGlmICghOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6RGVhdGhUZXN0OjpDcmVhdGUoI3N0YXRlbWVudCwgJmd0ZXN0X3JlZ2V4LCBcCi0g
ICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgJmd0ZXN0X2R0KSkgeyBcCi0gICAgICBnb3RvIEdU
RVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAg
ICBpZiAoZ3Rlc3RfZHQgIT0gTlVMTCkgeyBcCi0gICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpz
Y29wZWRfcHRyPCA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q+IFwKLSAgICAgICAgICBn
dGVzdF9kdF9wdHIoZ3Rlc3RfZHQpOyBcCi0gICAgICBzd2l0Y2ggKGd0ZXN0X2R0LT5Bc3N1bWVS
b2xlKCkpIHsgXAotICAgICAgICBjYXNlIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6
T1ZFUlNFRV9URVNUOiBcCi0gICAgICAgICAgaWYgKCFndGVzdF9kdC0+UGFzc2VkKHByZWRpY2F0
ZShndGVzdF9kdC0+V2FpdCgpKSkpIHsgXAotICAgICAgICAgICAgZ290byBHVEVTVF9DT05DQVRf
VE9LRU5fKGd0ZXN0X2xhYmVsXywgX19MSU5FX18pOyBcCi0gICAgICAgICAgfSBcCi0gICAgICAg
ICAgYnJlYWs7IFwKLSAgICAgICAgY2FzZSA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6
OkVYRUNVVEVfVEVTVDogeyBcCi0gICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhU
ZXN0OjpSZXR1cm5TZW50aW5lbCBcCi0gICAgICAgICAgICAgIGd0ZXN0X3NlbnRpbmVsKGd0ZXN0
X2R0KTsgXAotICAgICAgICAgIEdURVNUX0VYRUNVVEVfREVBVEhfVEVTVF9TVEFURU1FTlRfKHN0
YXRlbWVudCwgZ3Rlc3RfZHQpOyBcCi0gICAgICAgICAgZ3Rlc3RfZHQtPkFib3J0KDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6VEVTVF9ESURfTk9UX0RJRSk7IFwKLSAgICAgICAgICBi
cmVhazsgXAotICAgICAgICB9IFwKLSAgICAgICAgZGVmYXVsdDogXAotICAgICAgICAgIGJyZWFr
OyBcCi0gICAgICB9IFwKLSAgICB9IFwKLSAgfSBlbHNlIFwKLSAgICBHVEVTVF9DT05DQVRfVE9L
RU5fKGd0ZXN0X2xhYmVsXywgX19MSU5FX18pOiBcCi0gICAgICBmYWlsKDo6dGVzdGluZzo6aW50
ZXJuYWw6OkRlYXRoVGVzdDo6TGFzdE1lc3NhZ2UoKSkKLS8vIFRoZSBzeW1ib2wgImZhaWwiIGhl
cmUgZXhwYW5kcyB0byBzb21ldGhpbmcgaW50byB3aGljaCBhIG1lc3NhZ2UKLS8vIGNhbiBiZSBz
dHJlYW1lZC4KLQotLy8gVGhpcyBtYWNybyBpcyBmb3IgaW1wbGVtZW50aW5nIEFTU0VSVC9FWFBF
Q1RfREVCVUdfREVBVEggd2hlbiBjb21waWxlZCBpbgotLy8gTkRFQlVHIG1vZGUuIEluIHRoaXMg
Y2FzZSB3ZSBuZWVkIHRoZSBzdGF0ZW1lbnRzIHRvIGJlIGV4ZWN1dGVkLCB0aGUgcmVnZXggaXMK
LS8vIGlnbm9yZWQsIGFuZCB0aGUgbWFjcm8gbXVzdCBhY2NlcHQgYSBzdHJlYW1lZCBtZXNzYWdl
IGV2ZW4gdGhvdWdoIHRoZSBtZXNzYWdlCi0vLyBpcyBuZXZlciBwcmludGVkLgotIyBkZWZpbmUg
R1RFU1RfRVhFQ1VURV9TVEFURU1FTlRfKHN0YXRlbWVudCwgcmVnZXgpIFwKLSAgR1RFU1RfQU1C
SUdVT1VTX0VMU0VfQkxPQ0tFUl8gXAotICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlz
VHJ1ZSgpKSB7IFwKLSAgICAgR1RFU1RfU1VQUFJFU1NfVU5SRUFDSEFCTEVfQ09ERV9XQVJOSU5H
X0JFTE9XXyhzdGF0ZW1lbnQpOyBcCi0gIH0gZWxzZSBcCi0gICAgOjp0ZXN0aW5nOjpNZXNzYWdl
KCkKLQotLy8gQSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBjb250ZW50cyBvZiB0aGUK
LS8vIC0tZ3Rlc3RfaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QgZmxhZywgYXMgaXQgZXhpc3RlZCB3
aGVuCi0vLyBSVU5fQUxMX1RFU1RTIHdhcyBjYWxsZWQuCi1jbGFzcyBJbnRlcm5hbFJ1bkRlYXRo
VGVzdEZsYWcgewotIHB1YmxpYzoKLSAgSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKGNvbnN0IHN0
ZDo6c3RyaW5nJiBhX2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYV9saW5l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFuX2luZGV4LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IGFfd3JpdGVfZmQpCi0gICAgICA6IGZpbGVfKGFfZmlsZSksIGxp
bmVfKGFfbGluZSksIGluZGV4Xyhhbl9pbmRleCksCi0gICAgICAgIHdyaXRlX2ZkXyhhX3dyaXRl
X2ZkKSB7fQotCi0gIH5JbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcoKSB7Ci0gICAgaWYgKHdyaXRl
X2ZkXyA+PSAwKQotICAgICAgcG9zaXg6OkNsb3NlKHdyaXRlX2ZkXyk7Ci0gIH0KLQotICBjb25z
dCBzdGQ6OnN0cmluZyYgZmlsZSgpIGNvbnN0IHsgcmV0dXJuIGZpbGVfOyB9Ci0gIGludCBsaW5l
KCkgY29uc3QgeyByZXR1cm4gbGluZV87IH0KLSAgaW50IGluZGV4KCkgY29uc3QgeyByZXR1cm4g
aW5kZXhfOyB9Ci0gIGludCB3cml0ZV9mZCgpIGNvbnN0IHsgcmV0dXJuIHdyaXRlX2ZkXzsgfQot
Ci0gcHJpdmF0ZToKLSAgc3RkOjpzdHJpbmcgZmlsZV87Ci0gIGludCBsaW5lXzsKLSAgaW50IGlu
ZGV4XzsKLSAgaW50IHdyaXRlX2ZkXzsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJ
R05fKEludGVybmFsUnVuRGVhdGhUZXN0RmxhZyk7Ci19OwotCi0vLyBSZXR1cm5zIGEgbmV3bHkg
Y3JlYXRlZCBJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcgb2JqZWN0IHdpdGggZmllbGRzCi0vLyBp
bml0aWFsaXplZCBmcm9tIHRoZSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSBm
bGFnIGlmCi0vLyB0aGUgZmxhZyBpcyBzcGVjaWZpZWQ7IG90aGVyd2lzZSByZXR1cm5zIE5VTEwu
Ci1JbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcqIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFn
KCk7Ci0KLSNlbHNlICAvLyBHVEVTVF9IQVNfREVBVEhfVEVTVAotCi0vLyBUaGlzIG1hY3JvIGlz
IHVzZWQgZm9yIGltcGxlbWVudGluZyBtYWNyb3Mgc3VjaCBhcwotLy8gRVhQRUNUX0RFQVRIX0lG
X1NVUFBPUlRFRCBhbmQgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRCBvbiBzeXN0ZW1zIHdoZXJl
Ci0vLyBkZWF0aCB0ZXN0cyBhcmUgbm90IHN1cHBvcnRlZC4gVGhvc2UgbWFjcm9zIG11c3QgY29t
cGlsZSBvbiBzdWNoIHN5c3RlbXMKLS8vIGlmZiBFWFBFQ1RfREVBVEggYW5kIEFTU0VSVF9ERUFU
SCBjb21waWxlIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycyBvbgotLy8gc3lzdGVtcyB0aGF0IHN1
cHBvcnQgZGVhdGggdGVzdHMuIFRoaXMgYWxsb3dzIG9uZSB0byB3cml0ZSBzdWNoIGEgbWFjcm8K
LS8vIG9uIGEgc3lzdGVtIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBkZWF0aCB0ZXN0cyBhbmQgYmUg
c3VyZSB0aGF0IGl0IHdpbGwKLS8vIGNvbXBpbGUgb24gYSBkZWF0aC10ZXN0IHN1cHBvcnRpbmcg
c3lzdGVtLgotLy8KLS8vIFBhcmFtZXRlcnM6Ci0vLyAgIHN0YXRlbWVudCAtICBBIHN0YXRlbWVu
dCB0aGF0IGEgbWFjcm8gc3VjaCBhcyBFWFBFQ1RfREVBVEggd291bGQgdGVzdAotLy8gICAgICAg
ICAgICAgICAgZm9yIHByb2dyYW0gdGVybWluYXRpb24uIFRoaXMgbWFjcm8gaGFzIHRvIG1ha2Ug
c3VyZSB0aGlzCi0vLyAgICAgICAgICAgICAgICBzdGF0ZW1lbnQgaXMgY29tcGlsZWQgYnV0IG5v
dCBleGVjdXRlZCwgdG8gZW5zdXJlIHRoYXQKLS8vICAgICAgICAgICAgICAgIEVYUEVDVF9ERUFU
SF9JRl9TVVBQT1JURUQgY29tcGlsZXMgd2l0aCBhIGNlcnRhaW4KLS8vICAgICAgICAgICAgICAg
IHBhcmFtZXRlciBpZmYgRVhQRUNUX0RFQVRIIGNvbXBpbGVzIHdpdGggaXQuCi0vLyAgIHJlZ2V4
ICAgICAtICBBIHJlZ2V4IHRoYXQgYSBtYWNybyBzdWNoIGFzIEVYUEVDVF9ERUFUSCB3b3VsZCB1
c2UgdG8gdGVzdAotLy8gICAgICAgICAgICAgICAgdGhlIG91dHB1dCBvZiBzdGF0ZW1lbnQuICBU
aGlzIHBhcmFtZXRlciBoYXMgdG8gYmUKLS8vICAgICAgICAgICAgICAgIGNvbXBpbGVkIGJ1dCBu
b3QgZXZhbHVhdGVkIGJ5IHRoaXMgbWFjcm8sIHRvIGVuc3VyZSB0aGF0Ci0vLyAgICAgICAgICAg
ICAgICB0aGlzIG1hY3JvIG9ubHkgYWNjZXB0cyBleHByZXNzaW9ucyB0aGF0IGEgbWFjcm8gc3Vj
aCBhcwotLy8gICAgICAgICAgICAgICAgRVhQRUNUX0RFQVRIIHdvdWxkIGFjY2VwdC4KLS8vICAg
dGVybWluYXRvciAtIE11c3QgYmUgYW4gZW1wdHkgc3RhdGVtZW50IGZvciBFWFBFQ1RfREVBVEhf
SUZfU1VQUE9SVEVECi0vLyAgICAgICAgICAgICAgICBhbmQgYSByZXR1cm4gc3RhdGVtZW50IGZv
ciBBU1NFUlRfREVBVEhfSUZfU1VQUE9SVEVELgotLy8gICAgICAgICAgICAgICAgVGhpcyBlbnN1
cmVzIHRoYXQgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRCB3aWxsIG5vdAotLy8gICAgICAgICAg
ICAgICAgY29tcGlsZSBpbnNpZGUgZnVuY3Rpb25zIHdoZXJlIEFTU0VSVF9ERUFUSCBkb2Vzbid0
Ci0vLyAgICAgICAgICAgICAgICBjb21waWxlLgotLy8KLS8vICBUaGUgYnJhbmNoIHRoYXQgaGFz
IGFuIGFsd2F5cyBmYWxzZSBjb25kaXRpb24gaXMgdXNlZCB0byBlbnN1cmUgdGhhdAotLy8gIHN0
YXRlbWVudCBhbmQgcmVnZXggYXJlIGNvbXBpbGVkIChhbmQgdGh1cyBzeW50YWN0aWNhbGx5IGNv
cnJlY3QpIGJ1dAotLy8gIG5ldmVyIGV4ZWN1dGVkLiBUaGUgdW5yZWFjaGFibGUgY29kZSBtYWNy
byBwcm90ZWN0cyB0aGUgdGVybWluYXRvcgotLy8gIHN0YXRlbWVudCBmcm9tIGdlbmVyYXRpbmcg
YW4gJ3VucmVhY2hhYmxlIGNvZGUnIHdhcm5pbmcgaW4gY2FzZQotLy8gIHN0YXRlbWVudCB1bmNv
bmRpdGlvbmFsbHkgcmV0dXJucyBvciB0aHJvd3MuIFRoZSBNZXNzYWdlIGNvbnN0cnVjdG9yIGF0
Ci0vLyAgdGhlIGVuZCBhbGxvd3MgdGhlIHN5bnRheCBvZiBzdHJlYW1pbmcgYWRkaXRpb25hbCBt
ZXNzYWdlcyBpbnRvIHRoZQotLy8gIG1hY3JvLCBmb3IgY29tcGlsYXRpb25hbCBjb21wYXRpYmls
aXR5IHdpdGggRVhQRUNUX0RFQVRIL0FTU0VSVF9ERUFUSC4KLSMgZGVmaW5lIEdURVNUX1VOU1VQ
UE9SVEVEX0RFQVRIX1RFU1RfKHN0YXRlbWVudCwgcmVnZXgsIHRlcm1pbmF0b3IpIFwKLSAgICBH
VEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gICAgaWYgKDo6dGVzdGluZzo6aW50ZXJu
YWw6OkFsd2F5c1RydWUoKSkgeyBcCi0gICAgICBHVEVTVF9MT0dfKFdBUk5JTkcpIFwKLSAgICAg
ICAgICA8PCAiRGVhdGggdGVzdHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS5c
biIgXAotICAgICAgICAgIDw8ICJTdGF0ZW1lbnQgJyIgI3N0YXRlbWVudCAiJyBjYW5ub3QgYmUg
dmVyaWZpZWQuIjsgXAotICAgIH0gZWxzZSBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlz
RmFsc2UoKSkgeyBcCi0gICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpSRTo6UGFydGlhbE1hdGNo
KCIuKiIsIChyZWdleCkpOyBcCi0gICAgICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJMRV9DT0RF
X1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVudCk7IFwKLSAgICAgIHRlcm1pbmF0b3I7IFwKLSAgICB9
IGVsc2UgXAotICAgICAgOjp0ZXN0aW5nOjpNZXNzYWdlKCkKLQotI2VuZGlmICAvLyBHVEVTVF9I
QVNfREVBVEhfVEVTVAotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFj
ZSB0ZXN0aW5nCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRo
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhMTNiNGIwZGU2MDgzYmJmZTY5NjNm
OGMwZWQxNmUyN2RlNzcwMTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9ndGVzdC1maWxlcGF0aC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA2ICswLDAgQEAKLS8vIENv
cHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0v
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJp
YnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8g
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IGtl
aXRoLnJheUBnbWFpbC5jb20gKEtlaXRoIFJheSkKLS8vCi0vLyBHb29nbGUgVGVzdCBmaWxlcGF0
aCB1dGlsaXRpZXMKLS8vCi0vLyBUaGlzIGhlYWRlciBmaWxlIGRlY2xhcmVzIGNsYXNzZXMgYW5k
IGZ1bmN0aW9ucyB1c2VkIGludGVybmFsbHkgYnkKLS8vIEdvb2dsZSBUZXN0LiAgVGhleSBhcmUg
c3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCi0vLwotLy8gVGhpcyBmaWxlIGlzICNp
bmNsdWRlZCBpbiA8Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaD4uCi0vLyBEbyBub3Qg
aW5jbHVkZSB0aGlzIGhlYWRlciBmaWxlIHNlcGFyYXRlbHkhCi0KLSNpZm5kZWYgR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXwotI2RlZmluZSBHVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0ZJTEVQQVRIX0hfCi0KLSNpbmNsdWRlICJndGVzdC9p
bnRlcm5hbC9ndGVzdC1zdHJpbmcuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotbmFtZXNwYWNl
IGludGVybmFsIHsKLQotLy8gRmlsZVBhdGggLSBhIGNsYXNzIGZvciBmaWxlIGFuZCBkaXJlY3Rv
cnkgcGF0aG5hbWUgbWFuaXB1bGF0aW9uIHdoaWNoCi0vLyBoYW5kbGVzIHBsYXRmb3JtLXNwZWNp
ZmljIGNvbnZlbnRpb25zIChsaWtlIHRoZSBwYXRobmFtZSBzZXBhcmF0b3IpLgotLy8gVXNlZCBm
b3IgaGVscGVyIGZ1bmN0aW9ucyBmb3IgbmFtaW5nIGZpbGVzIGluIGEgZGlyZWN0b3J5IGZvciB4
bWwgb3V0cHV0LgotLy8gRXhjZXB0IGZvciBTZXQgbWV0aG9kcywgYWxsIG1ldGhvZHMgYXJlIGNv
bnN0IG9yIHN0YXRpYywgd2hpY2ggcHJvdmlkZXMgYW4KLS8vICJpbW11dGFibGUgdmFsdWUgb2Jq
ZWN0IiAtLSB1c2VmdWwgZm9yIHBlYWNlIG9mIG1pbmQuCi0vLyBBIEZpbGVQYXRoIHdpdGggYSB2
YWx1ZSBlbmRpbmcgaW4gYSBwYXRoIHNlcGFyYXRvciAoImxpa2UvdGhpcy8iKSByZXByZXNlbnRz
Ci0vLyBhIGRpcmVjdG9yeSwgb3RoZXJ3aXNlIGl0IGlzIGFzc3VtZWQgdG8gcmVwcmVzZW50IGEg
ZmlsZS4gSW4gZWl0aGVyIGNhc2UsCi0vLyBpdCBtYXkgb3IgbWF5IG5vdCByZXByZXNlbnQgYW4g
YWN0dWFsIGZpbGUgb3IgZGlyZWN0b3J5IGluIHRoZSBmaWxlIHN5c3RlbS4KLS8vIE5hbWVzIGFy
ZSBOT1QgY2hlY2tlZCBmb3Igc3ludGF4IGNvcnJlY3RuZXNzIC0tIG5vIGNoZWNraW5nIGZvciBp
bGxlZ2FsCi0vLyBjaGFyYWN0ZXJzLCBtYWxmb3JtZWQgcGF0aHMsIGV0Yy4KLQotY2xhc3MgR1RF
U1RfQVBJXyBGaWxlUGF0aCB7Ci0gcHVibGljOgotICBGaWxlUGF0aCgpIDogcGF0aG5hbWVfKCIi
KSB7IH0KLSAgRmlsZVBhdGgoY29uc3QgRmlsZVBhdGgmIHJocykgOiBwYXRobmFtZV8ocmhzLnBh
dGhuYW1lXykgeyB9Ci0KLSAgZXhwbGljaXQgRmlsZVBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBh
dGhuYW1lKSA6IHBhdGhuYW1lXyhwYXRobmFtZSkgewotICAgIE5vcm1hbGl6ZSgpOwotICB9Ci0K
LSAgRmlsZVBhdGgmIG9wZXJhdG9yPShjb25zdCBGaWxlUGF0aCYgcmhzKSB7Ci0gICAgU2V0KHJo
cyk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgdm9pZCBTZXQoY29uc3QgRmlsZVBhdGgm
IHJocykgewotICAgIHBhdGhuYW1lXyA9IHJocy5wYXRobmFtZV87Ci0gIH0KLQotICBjb25zdCBz
dGQ6OnN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gcGF0aG5hbWVfOyB9Ci0gIGNvbnN0
IGNoYXIqIGNfc3RyKCkgY29uc3QgeyByZXR1cm4gcGF0aG5hbWVfLmNfc3RyKCk7IH0KLQotICAv
LyBSZXR1cm5zIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LCBvciAiIiBpZiB1bnN1Y2Nl
c3NmdWwuCi0gIHN0YXRpYyBGaWxlUGF0aCBHZXRDdXJyZW50RGlyKCk7Ci0KLSAgLy8gR2l2ZW4g
ZGlyZWN0b3J5ID0gImRpciIsIGJhc2VfbmFtZSA9ICJ0ZXN0IiwgbnVtYmVyID0gMCwKLSAgLy8g
ZXh0ZW5zaW9uID0gInhtbCIsIHJldHVybnMgImRpci90ZXN0LnhtbCIuIElmIG51bWJlciBpcyBn
cmVhdGVyCi0gIC8vIHRoYW4gemVybyAoZS5nLiwgMTIpLCByZXR1cm5zICJkaXIvdGVzdF8xMi54
bWwiLgotICAvLyBPbiBXaW5kb3dzIHBsYXRmb3JtLCB1c2VzIFwgYXMgdGhlIHNlcGFyYXRvciBy
YXRoZXIgdGhhbiAvLgotICBzdGF0aWMgRmlsZVBhdGggTWFrZUZpbGVOYW1lKGNvbnN0IEZpbGVQ
YXRoJiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmls
ZVBhdGgmIGJhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVt
YmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lv
bik7Ci0KLSAgLy8gR2l2ZW4gZGlyZWN0b3J5ID0gImRpciIsIHJlbGF0aXZlX3BhdGggPSAidGVz
dC54bWwiLAotICAvLyByZXR1cm5zICJkaXIvdGVzdC54bWwiLgotICAvLyBPbiBXaW5kb3dzLCB1
c2VzIFwgYXMgdGhlIHNlcGFyYXRvciByYXRoZXIgdGhhbiAvLgotICBzdGF0aWMgRmlsZVBhdGgg
Q29uY2F0UGF0aHMoY29uc3QgRmlsZVBhdGgmIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEZpbGVQYXRoJiByZWxhdGl2ZV9wYXRoKTsKLQotICAvLyBSZXR1
cm5zIGEgcGF0aG5hbWUgZm9yIGEgZmlsZSB0aGF0IGRvZXMgbm90IGN1cnJlbnRseSBleGlzdC4g
VGhlIHBhdGhuYW1lCi0gIC8vIHdpbGwgYmUgZGlyZWN0b3J5L2Jhc2VfbmFtZS5leHRlbnNpb24g
b3IKLSAgLy8gZGlyZWN0b3J5L2Jhc2VfbmFtZV88bnVtYmVyPi5leHRlbnNpb24gaWYgZGlyZWN0
b3J5L2Jhc2VfbmFtZS5leHRlbnNpb24KLSAgLy8gYWxyZWFkeSBleGlzdHMuIFRoZSBudW1iZXIg
d2lsbCBiZSBpbmNyZW1lbnRlZCB1bnRpbCBhIHBhdGhuYW1lIGlzIGZvdW5kCi0gIC8vIHRoYXQg
ZG9lcyBub3QgYWxyZWFkeSBleGlzdC4KLSAgLy8gRXhhbXBsZXM6ICdkaXIvZm9vX3Rlc3QueG1s
JyBvciAnZGlyL2Zvb190ZXN0XzEueG1sJy4KLSAgLy8gVGhlcmUgY291bGQgYmUgYSByYWNlIGNv
bmRpdGlvbiBpZiB0d28gb3IgbW9yZSBwcm9jZXNzZXMgYXJlIGNhbGxpbmcgdGhpcwotICAvLyBm
dW5jdGlvbiBhdCB0aGUgc2FtZSB0aW1lIC0tIHRoZXkgY291bGQgYm90aCBwaWNrIHRoZSBzYW1l
IGZpbGVuYW1lLgotICBzdGF0aWMgRmlsZVBhdGggR2VuZXJhdGVVbmlxdWVGaWxlTmFtZShjb25z
dCBGaWxlUGF0aCYgZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBGaWxlUGF0aCYgYmFzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHRlbnNpb24pOwotCi0gIC8vIFJldHVy
bnMgdHJ1ZSBpZmYgdGhlIHBhdGggaXMgIiIuCi0gIGJvb2wgSXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuIHBhdGhuYW1lXy5lbXB0eSgpOyB9Ci0KLSAgLy8gSWYgaW5wdXQgbmFtZSBoYXMgYSB0cmFp
bGluZyBzZXBhcmF0b3IgY2hhcmFjdGVyLCByZW1vdmVzIGl0IGFuZCByZXR1cm5zCi0gIC8vIHRo
ZSBuYW1lLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBuYW1lIHN0cmluZyB1bm1vZGlmaWVkLgotICAv
LyBPbiBXaW5kb3dzIHBsYXRmb3JtLCB1c2VzIFwgYXMgdGhlIHNlcGFyYXRvciwgb3RoZXIgcGxh
dGZvcm1zIHVzZSAvLgotICBGaWxlUGF0aCBSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKSBj
b25zdDsKLQotICAvLyBSZXR1cm5zIGEgY29weSBvZiB0aGUgRmlsZVBhdGggd2l0aCB0aGUgZGly
ZWN0b3J5IHBhcnQgcmVtb3ZlZC4KLSAgLy8gRXhhbXBsZTogRmlsZVBhdGgoInBhdGgvdG8vZmls
ZSIpLlJlbW92ZURpcmVjdG9yeU5hbWUoKSByZXR1cm5zCi0gIC8vIEZpbGVQYXRoKCJmaWxlIiku
IElmIHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBwYXJ0ICgianVzdF9hX2ZpbGUiKSwgaXQgcmV0dXJu
cwotICAvLyB0aGUgRmlsZVBhdGggdW5tb2RpZmllZC4gSWYgdGhlcmUgaXMgbm8gZmlsZSBwYXJ0
ICgianVzdF9hX2Rpci8iKSBpdAotICAvLyByZXR1cm5zIGFuIGVtcHR5IEZpbGVQYXRoICgiIiku
Ci0gIC8vIE9uIFdpbmRvd3MgcGxhdGZvcm0sICdcJyBpcyB0aGUgcGF0aCBzZXBhcmF0b3IsIG90
aGVyd2lzZSBpdCBpcyAnLycuCi0gIEZpbGVQYXRoIFJlbW92ZURpcmVjdG9yeU5hbWUoKSBjb25z
dDsKLQotICAvLyBSZW1vdmVGaWxlTmFtZSByZXR1cm5zIHRoZSBkaXJlY3RvcnkgcGF0aCB3aXRo
IHRoZSBmaWxlbmFtZSByZW1vdmVkLgotICAvLyBFeGFtcGxlOiBGaWxlUGF0aCgicGF0aC90by9m
aWxlIikuUmVtb3ZlRmlsZU5hbWUoKSByZXR1cm5zICJwYXRoL3RvLyIuCi0gIC8vIElmIHRoZSBG
aWxlUGF0aCBpcyAiYV9maWxlIiBvciAiL2FfZmlsZSIsIFJlbW92ZUZpbGVOYW1lIHJldHVybnMK
LSAgLy8gRmlsZVBhdGgoIi4vIikgb3IsIG9uIFdpbmRvd3MsIEZpbGVQYXRoKCIuXFwiKS4gSWYg
dGhlIGZpbGVwYXRoIGRvZXMKLSAgLy8gbm90IGhhdmUgYSBmaWxlLCBsaWtlICJqdXN0L2EvZGly
LyIsIGl0IHJldHVybnMgdGhlIEZpbGVQYXRoIHVubW9kaWZpZWQuCi0gIC8vIE9uIFdpbmRvd3Mg
cGxhdGZvcm0sICdcJyBpcyB0aGUgcGF0aCBzZXBhcmF0b3IsIG90aGVyd2lzZSBpdCBpcyAnLycu
Ci0gIEZpbGVQYXRoIFJlbW92ZUZpbGVOYW1lKCkgY29uc3Q7Ci0KLSAgLy8gUmV0dXJucyBhIGNv
cHkgb2YgdGhlIEZpbGVQYXRoIHdpdGggdGhlIGNhc2UtaW5zZW5zaXRpdmUgZXh0ZW5zaW9uIHJl
bW92ZWQuCi0gIC8vIEV4YW1wbGU6IEZpbGVQYXRoKCJkaXIvZmlsZS5leGUiKS5SZW1vdmVFeHRl
bnNpb24oIkVYRSIpIHJldHVybnMKLSAgLy8gRmlsZVBhdGgoImRpci9maWxlIikuIElmIGEgY2Fz
ZS1pbnNlbnNpdGl2ZSBleHRlbnNpb24gaXMgbm90Ci0gIC8vIGZvdW5kLCByZXR1cm5zIGEgY29w
eSBvZiB0aGUgb3JpZ2luYWwgRmlsZVBhdGguCi0gIEZpbGVQYXRoIFJlbW92ZUV4dGVuc2lvbihj
b25zdCBjaGFyKiBleHRlbnNpb24pIGNvbnN0OwotCi0gIC8vIENyZWF0ZXMgZGlyZWN0b3JpZXMg
c28gdGhhdCBwYXRoIGV4aXN0cy4gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwgb3IgaWYKLSAg
Ly8gdGhlIGRpcmVjdG9yaWVzIGFscmVhZHkgZXhpc3Q7IHJldHVybnMgZmFsc2UgaWYgdW5hYmxl
IHRvIGNyZWF0ZQotICAvLyBkaXJlY3RvcmllcyBmb3IgYW55IHJlYXNvbi4gV2lsbCBhbHNvIHJl
dHVybiBmYWxzZSBpZiB0aGUgRmlsZVBhdGggZG9lcwotICAvLyBub3QgcmVwcmVzZW50IGEgZGly
ZWN0b3J5ICh0aGF0IGlzLCBpdCBkb2Vzbid0IGVuZCB3aXRoIGEgcGF0aCBzZXBhcmF0b3IpLgot
ICBib29sIENyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSBjb25zdDsKLQotICAvLyBDcmVh
dGUgdGhlIGRpcmVjdG9yeSBzbyB0aGF0IHBhdGggZXhpc3RzLiBSZXR1cm5zIHRydWUgaWYgc3Vj
Y2Vzc2Z1bCBvcgotICAvLyBpZiB0aGUgZGlyZWN0b3J5IGFscmVhZHkgZXhpc3RzOyByZXR1cm5z
IGZhbHNlIGlmIHVuYWJsZSB0byBjcmVhdGUgdGhlCi0gIC8vIGRpcmVjdG9yeSBmb3IgYW55IHJl
YXNvbiwgaW5jbHVkaW5nIGlmIHRoZSBwYXJlbnQgZGlyZWN0b3J5IGRvZXMgbm90Ci0gIC8vIGV4
aXN0LiBOb3QgbmFtZWQgIkNyZWF0ZURpcmVjdG9yeSIgYmVjYXVzZSB0aGF0J3MgYSBtYWNybyBv
biBXaW5kb3dzLgotICBib29sIENyZWF0ZUZvbGRlcigpIGNvbnN0OwotCi0gIC8vIFJldHVybnMg
dHJ1ZSBpZiBGaWxlUGF0aCBkZXNjcmliZXMgc29tZXRoaW5nIGluIHRoZSBmaWxlLXN5c3RlbSwK
LSAgLy8gZWl0aGVyIGEgZmlsZSwgZGlyZWN0b3J5LCBvciB3aGF0ZXZlciwgYW5kIHRoYXQgc29t
ZXRoaW5nIGV4aXN0cy4KLSAgYm9vbCBGaWxlT3JEaXJlY3RvcnlFeGlzdHMoKSBjb25zdDsKLQot
ICAvLyBSZXR1cm5zIHRydWUgaWYgcGF0aG5hbWUgZGVzY3JpYmVzIGEgZGlyZWN0b3J5IGluIHRo
ZSBmaWxlLXN5c3RlbQotICAvLyB0aGF0IGV4aXN0cy4KLSAgYm9vbCBEaXJlY3RvcnlFeGlzdHMo
KSBjb25zdDsKLQotICAvLyBSZXR1cm5zIHRydWUgaWYgRmlsZVBhdGggZW5kcyB3aXRoIGEgcGF0
aCBzZXBhcmF0b3IsIHdoaWNoIGluZGljYXRlcyB0aGF0Ci0gIC8vIGl0IGlzIGludGVuZGVkIHRv
IHJlcHJlc2VudCBhIGRpcmVjdG9yeS4gUmV0dXJucyBmYWxzZSBvdGhlcndpc2UuCi0gIC8vIFRo
aXMgZG9lcyBOT1QgY2hlY2sgdGhhdCBhIGRpcmVjdG9yeSAob3IgZmlsZSkgYWN0dWFsbHkgZXhp
c3RzLgotICBib29sIElzRGlyZWN0b3J5KCkgY29uc3Q7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlm
IHBhdGhuYW1lIGRlc2NyaWJlcyBhIHJvb3QgZGlyZWN0b3J5LiAoV2luZG93cyBoYXMgb25lCi0g
IC8vIHJvb3QgZGlyZWN0b3J5IHBlciBkaXNrIGRyaXZlLikKLSAgYm9vbCBJc1Jvb3REaXJlY3Rv
cnkoKSBjb25zdDsKLQotICAvLyBSZXR1cm5zIHRydWUgaWYgcGF0aG5hbWUgZGVzY3JpYmVzIGFu
IGFic29sdXRlIHBhdGguCi0gIGJvb2wgSXNBYnNvbHV0ZVBhdGgoKSBjb25zdDsKLQotIHByaXZh
dGU6Ci0gIC8vIFJlcGxhY2VzIG11bHRpcGxlIGNvbnNlY3V0aXZlIHNlcGFyYXRvcnMgd2l0aCBh
IHNpbmdsZSBzZXBhcmF0b3IuCi0gIC8vIEZvciBleGFtcGxlLCAiYmFyLy8vZm9vIiBiZWNvbWVz
ICJiYXIvZm9vIi4gRG9lcyBub3QgZWxpbWluYXRlIG90aGVyCi0gIC8vIHJlZHVuZGFuY2llcyB0
aGF0IG1pZ2h0IGJlIGluIGEgcGF0aG5hbWUgaW52b2x2aW5nICIuIiBvciAiLi4iLgotICAvLwot
ICAvLyBBIHBhdGhuYW1lIHdpdGggbXVsdGlwbGUgY29uc2VjdXRpdmUgc2VwYXJhdG9ycyBtYXkg
b2NjdXIgZWl0aGVyIHRocm91Z2gKLSAgLy8gdXNlciBlcnJvciBvciBhcyBhIHJlc3VsdCBvZiBz
b21lIHNjcmlwdHMgb3IgQVBJcyB0aGF0IGdlbmVyYXRlIGEgcGF0aG5hbWUKLSAgLy8gd2l0aCBh
IHRyYWlsaW5nIHNlcGFyYXRvci4gT24gb3RoZXIgcGxhdGZvcm1zIHRoZSBzYW1lIEFQSSBvciBz
Y3JpcHQKLSAgLy8gbWF5IE5PVCBnZW5lcmF0ZSBhIHBhdGhuYW1lIHdpdGggYSB0cmFpbGluZyAi
LyIuIFRoZW4gZWxzZXdoZXJlIHRoYXQKLSAgLy8gcGF0aG5hbWUgbWF5IGhhdmUgYW5vdGhlciAi
LyIgYW5kIHBhdGhuYW1lIGNvbXBvbmVudHMgYWRkZWQgdG8gaXQsCi0gIC8vIHdpdGhvdXQgY2hl
Y2tpbmcgZm9yIHRoZSBzZXBhcmF0b3IgYWxyZWFkeSBiZWluZyB0aGVyZS4KLSAgLy8gVGhlIHNj
cmlwdCBsYW5ndWFnZSBhbmQgb3BlcmF0aW5nIHN5c3RlbSBtYXkgYWxsb3cgcGF0aHMgbGlrZSAi
Zm9vLy9iYXIiCi0gIC8vIGJ1dCBzb21lIG9mIHRoZSBmdW5jdGlvbnMgaW4gRmlsZVBhdGggd2ls
bCBub3QgaGFuZGxlIHRoYXQgY29ycmVjdGx5LiBJbgotICAvLyBwYXJ0aWN1bGFyLCBSZW1vdmVU
cmFpbGluZ1BhdGhTZXBhcmF0b3IoKSBvbmx5IHJlbW92ZXMgb25lIHNlcGFyYXRvciwgYW5kCi0g
IC8vIGl0IGlzIGNhbGxlZCBpbiBDcmVhdGVEaXJlY3Rvcmllc1JlY3Vyc2l2ZWx5KCkgYXNzdW1p
bmcgdGhhdCBpdCB3aWxsIGNoYW5nZQotICAvLyBhIHBhdGhuYW1lIGZyb20gZGlyZWN0b3J5IHN5
bnRheCAodHJhaWxpbmcgc2VwYXJhdG9yKSB0byBmaWxlbmFtZSBzeW50YXguCi0gIC8vCi0gIC8v
IE9uIFdpbmRvd3MgdGhpcyBtZXRob2QgYWxzbyByZXBsYWNlcyB0aGUgYWx0ZXJuYXRlIHBhdGgg
c2VwYXJhdG9yICcvJyB3aXRoCi0gIC8vIHRoZSBwcmltYXJ5IHBhdGggc2VwYXJhdG9yICdcXCcs
IHNvIHRoYXQgZm9yIGV4YW1wbGUgImJhclxcL1xcZm9vIiBiZWNvbWVzCi0gIC8vICJiYXJcXGZv
byIuCi0KLSAgdm9pZCBOb3JtYWxpemUoKTsKLQotICAvLyBSZXR1cm5zIGEgcG9pbnRlciB0byB0
aGUgbGFzdCBvY2N1cmVuY2Ugb2YgYSB2YWxpZCBwYXRoIHNlcGFyYXRvciBpbgotICAvLyB0aGUg
RmlsZVBhdGguIE9uIFdpbmRvd3MsIGZvciBleGFtcGxlLCBib3RoICcvJyBhbmQgJ1wnIGFyZSB2
YWxpZCBwYXRoCi0gIC8vIHNlcGFyYXRvcnMuIFJldHVybnMgTlVMTCBpZiBubyBwYXRoIHNlcGFy
YXRvciB3YXMgZm91bmQuCi0gIGNvbnN0IGNoYXIqIEZpbmRMYXN0UGF0aFNlcGFyYXRvcigpIGNv
bnN0OwotCi0gIHN0ZDo6c3RyaW5nIHBhdGhuYW1lXzsKLX07ICAvLyBjbGFzcyBGaWxlUGF0aAot
Ci19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0KLSNl
bmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9ndGVzdC1pbnRlcm5hbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyYTZlNGRhZDFkMThiNjUwN2MwZjZkZjA5ZTQ1ZThlM2UyOWI0YmQ5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9n
b29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaAorKysgL2Rl
di9udWxsCkBAIC0xLDEyNjQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDUsIEdvb2dsZSBJbmMu
Ci0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0v
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcnM6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBX
YW4pLCBlZWZhY21AZ21haWwuY29tIChTZWFuIE1jYWZlZSkKLS8vCi0vLyBUaGUgR29vZ2xlIEMr
KyBUZXN0aW5nIEZyYW1ld29yayAoR29vZ2xlIFRlc3QpCi0vLwotLy8gVGhpcyBoZWFkZXIgZmls
ZSBkZWNsYXJlcyBmdW5jdGlvbnMgYW5kIG1hY3JvcyB1c2VkIGludGVybmFsbHkgYnkKLS8vIEdv
b2dsZSBUZXN0LiAgVGhleSBhcmUgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCi0K
LSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9JTlRFUk5BTF9IXwot
I2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0lOVEVSTkFMX0hfCi0K
LSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCi0KLSNpZiBHVEVTVF9PU19M
SU5VWAotIyBpbmNsdWRlIDxzdGRsaWIuaD4KLSMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jIGlu
Y2x1ZGUgPHN5cy93YWl0Lmg+Ci0jIGluY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmICAvLyBHVEVT
VF9PU19MSU5VWAotCi0jaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKLSMgaW5jbHVkZSA8c3RkZXhj
ZXB0PgotI2VuZGlmCi0KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2luY2x1ZGUgPGZsb2F0Lmg+Ci0j
aW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8aW9tYW5pcD4KLSNpbmNsdWRlIDxsaW1pdHM+
Ci0jaW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPHNldD4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0jaW5j
bHVkZSA8dmVjdG9yPgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oIgotI2luY2x1
ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVy
bmFsL2d0ZXN0LWZpbGVwYXRoLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlw
ZS11dGlsLmgiCi0KLS8vIER1ZSB0byBDKysgcHJlcHJvY2Vzc29yIHdlaXJkbmVzcywgd2UgbmVl
ZCBkb3VibGUgaW5kaXJlY3Rpb24gdG8KLS8vIGNvbmNhdGVuYXRlIHR3byB0b2tlbnMgd2hlbiBv
bmUgb2YgdGhlbSBpcyBfX0xJTkVfXy4gIFdyaXRpbmcKLS8vCi0vLyAgIGZvbyAjIyBfX0xJTkVf
XwotLy8KLS8vIHdpbGwgcmVzdWx0IGluIHRoZSB0b2tlbiBmb29fX0xJTkVfXywgaW5zdGVhZCBv
ZiBmb28gZm9sbG93ZWQgYnkKLS8vIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyLiAgRm9yIG1vcmUg
ZGV0YWlscywgc2VlCi0vLyBodHRwOi8vd3d3LnBhcmFzaGlmdC5jb20vYysrLWZhcS1saXRlL21p
c2MtdGVjaG5pY2FsLWlzc3Vlcy5odG1sI2ZhcS0zOS42Ci0jZGVmaW5lIEdURVNUX0NPTkNBVF9U
T0tFTl8oZm9vLCBiYXIpIEdURVNUX0NPTkNBVF9UT0tFTl9JTVBMXyhmb28sIGJhcikKLSNkZWZp
bmUgR1RFU1RfQ09OQ0FUX1RPS0VOX0lNUExfKGZvbywgYmFyKSBmb28gIyMgYmFyCi0KLWNsYXNz
IFByb3RvY29sTWVzc2FnZTsKLW5hbWVzcGFjZSBwcm90bzIgeyBjbGFzcyBNZXNzYWdlOyB9Ci0K
LW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMuCi0KLWNsYXNz
IEFzc2VydGlvblJlc3VsdDsgICAgICAgICAgICAgICAgIC8vIFJlc3VsdCBvZiBhbiBhc3NlcnRp
b24uCi1jbGFzcyBNZXNzYWdlOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnRz
IGEgZmFpbHVyZSBtZXNzYWdlLgotY2xhc3MgVGVzdDsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gUmVwcmVzZW50cyBhIHRlc3QuCi1jbGFzcyBUZXN0SW5mbzsgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBJbmZvcm1hdGlvbiBhYm91dCBhIHRlc3QuCi1jbGFzcyBUZXN0UGFydFJlc3Vs
dDsgICAgICAgICAgICAgICAgICAvLyBSZXN1bHQgb2YgYSB0ZXN0IHBhcnQuCi1jbGFzcyBVbml0
VGVzdDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIGNvbGxlY3Rpb24gb2YgdGVzdCBjYXNl
cy4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci06OnN0ZDo6c3RyaW5nIFByaW50VG9TdHJpbmco
Y29uc3QgVCYgdmFsdWUpOwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi1zdHJ1Y3QgVHJhY2VJ
bmZvOyAgICAgICAgICAgICAgICAgICAgICAvLyBJbmZvcm1hdGlvbiBhYm91dCBhIHRyYWNlIHBv
aW50LgotY2xhc3MgU2NvcGVkVHJhY2U7ICAgICAgICAgICAgICAgICAgICAgLy8gSW1wbGVtZW50
cyBzY29wZWQgdHJhY2UuCi1jbGFzcyBUZXN0SW5mb0ltcGw7ICAgICAgICAgICAgICAgICAgICAv
LyBPcGFxdWUgaW1wbGVtZW50YXRpb24gb2YgVGVzdEluZm8KLWNsYXNzIFVuaXRUZXN0SW1wbDsg
ICAgICAgICAgICAgICAgICAgIC8vIE9wYXF1ZSBpbXBsZW1lbnRhdGlvbiBvZiBVbml0VGVzdAot
Ci0vLyBUaGUgdGV4dCB1c2VkIGluIGZhaWx1cmUgbWVzc2FnZXMgdG8gaW5kaWNhdGUgdGhlIHN0
YXJ0IG9mIHRoZQotLy8gc3RhY2sgdHJhY2UuCi1HVEVTVF9BUElfIGV4dGVybiBjb25zdCBjaGFy
IGtTdGFja1RyYWNlTWFya2VyW107Ci0KLS8vIFR3byBvdmVybG9hZGVkIGhlbHBlcnMgZm9yIGNo
ZWNraW5nIGF0IGNvbXBpbGUgdGltZSB3aGV0aGVyIGFuCi0vLyBleHByZXNzaW9uIGlzIGEgbnVs
bCBwb2ludGVyIGxpdGVyYWwgKGkuZS4gTlVMTCBvciBhbnkgMC12YWx1ZWQKLS8vIGNvbXBpbGUt
dGltZSBpbnRlZ3JhbCBjb25zdGFudCkuICBUaGVpciByZXR1cm4gdmFsdWVzIGhhdmUKLS8vIGRp
ZmZlcmVudCBzaXplcywgc28gd2UgY2FuIHVzZSBzaXplb2YoKSB0byB0ZXN0IHdoaWNoIHZlcnNp
b24gaXMKLS8vIHBpY2tlZCBieSB0aGUgY29tcGlsZXIuICBUaGVzZSBoZWxwZXJzIGhhdmUgbm8g
aW1wbGVtZW50YXRpb25zLCBhcwotLy8gd2Ugb25seSBuZWVkIHRoZWlyIHNpZ25hdHVyZXMuCi0v
LwotLy8gR2l2ZW4gSXNOdWxsTGl0ZXJhbEhlbHBlcih4KSwgdGhlIGNvbXBpbGVyIHdpbGwgcGlj
ayB0aGUgZmlyc3QKLS8vIHZlcnNpb24gaWYgeCBjYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQg
dG8gU2VjcmV0KiwgYW5kIHBpY2sgdGhlCi0vLyBzZWNvbmQgdmVyc2lvbiBvdGhlcndpc2UuICBT
aW5jZSBTZWNyZXQgaXMgYSBzZWNyZXQgYW5kIGluY29tcGxldGUKLS8vIHR5cGUsIHRoZSBvbmx5
IGV4cHJlc3Npb24gYSB1c2VyIGNhbiB3cml0ZSB0aGF0IGhhcyB0eXBlIFNlY3JldCogaXMKLS8v
IGEgbnVsbCBwb2ludGVyIGxpdGVyYWwuICBUaGVyZWZvcmUsIHdlIGtub3cgdGhhdCB4IGlzIGEg
bnVsbAotLy8gcG9pbnRlciBsaXRlcmFsIGlmIGFuZCBvbmx5IGlmIHRoZSBmaXJzdCB2ZXJzaW9u
IGlzIHBpY2tlZCBieSB0aGUKLS8vIGNvbXBpbGVyLgotY2hhciBJc051bGxMaXRlcmFsSGVscGVy
KFNlY3JldCogcCk7Ci1jaGFyICgmSXNOdWxsTGl0ZXJhbEhlbHBlciguLi4pKVsyXTsgIC8vIE5P
TElOVAotCi0vLyBBIGNvbXBpbGUtdGltZSBib29sIGNvbnN0YW50IHRoYXQgaXMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB4IGlzIGEKLS8vIG51bGwgcG9pbnRlciBsaXRlcmFsIChpLmUuIE5VTEwgb3Ig
YW55IDAtdmFsdWVkIGNvbXBpbGUtdGltZQotLy8gaW50ZWdyYWwgY29uc3RhbnQpLgotI2lmZGVm
IEdURVNUX0VMTElQU0lTX05FRURTX1BPRF8KLS8vIFdlIGxvc2Ugc3VwcG9ydCBmb3IgTlVMTCBk
ZXRlY3Rpb24gd2hlcmUgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgbGlrZQotLy8gcGFzc2luZyBub24t
UE9EIGNsYXNzZXMgdGhyb3VnaCBlbGxpcHNpcyAoLi4uKS4KLSMgZGVmaW5lIEdURVNUX0lTX05V
TExfTElURVJBTF8oeCkgZmFsc2UKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9JU19OVUxMX0xJVEVS
QUxfKHgpIFwKLSAgICAoc2l6ZW9mKDo6dGVzdGluZzo6aW50ZXJuYWw6OklzTnVsbExpdGVyYWxI
ZWxwZXIoeCkpID09IDEpCi0jZW5kaWYgIC8vIEdURVNUX0VMTElQU0lTX05FRURTX1BPRF8KLQot
Ly8gQXBwZW5kcyB0aGUgdXNlci1zdXBwbGllZCBtZXNzYWdlIHRvIHRoZSBHb29nbGUtVGVzdC1n
ZW5lcmF0ZWQgbWVzc2FnZS4KLUdURVNUX0FQSV8gc3RkOjpzdHJpbmcgQXBwZW5kVXNlck1lc3Nh
Z2UoCi0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIGd0ZXN0X21zZywgY29uc3QgTWVzc2FnZSYgdXNl
cl9tc2cpOwotCi0jaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKLQotLy8gVGhpcyBleGNlcHRpb24g
aXMgdGhyb3duIGJ5IChhbmQgb25seSBieSkgYSBmYWlsZWQgR29vZ2xlIFRlc3QKLS8vIGFzc2Vy
dGlvbiB3aGVuIEdURVNUX0ZMQUcodGhyb3dfb25fZmFpbHVyZSkgaXMgdHJ1ZSAoaWYgZXhjZXB0
aW9ucwotLy8gYXJlIGVuYWJsZWQpLiAgV2UgZGVyaXZlIGl0IGZyb20gc3RkOjpydW50aW1lX2Vy
cm9yLCB3aGljaCBpcyBmb3IKLS8vIGVycm9ycyBwcmVzdW1hYmx5IGRldGVjdGFibGUgb25seSBh
dCBydW4gdGltZS4gIFNpbmNlCi0vLyBzdGQ6OnJ1bnRpbWVfZXJyb3IgaW5oZXJpdHMgZnJvbSBz
dGQ6OmV4Y2VwdGlvbiwgbWFueSB0ZXN0aW5nCi0vLyBmcmFtZXdvcmtzIGtub3cgaG93IHRvIGV4
dHJhY3QgYW5kIHByaW50IHRoZSBtZXNzYWdlIGluc2lkZSBpdC4KLWNsYXNzIEdURVNUX0FQSV8g
R29vZ2xlVGVzdEZhaWx1cmVFeGNlcHRpb24gOiBwdWJsaWMgOjpzdGQ6OnJ1bnRpbWVfZXJyb3Ig
ewotIHB1YmxpYzoKLSAgZXhwbGljaXQgR29vZ2xlVGVzdEZhaWx1cmVFeGNlcHRpb24oY29uc3Qg
VGVzdFBhcnRSZXN1bHQmIGZhaWx1cmUpOwotfTsKLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhD
RVBUSU9OUwotCi0vLyBBIGhlbHBlciBjbGFzcyBmb3IgY3JlYXRpbmcgc2NvcGVkIHRyYWNlcyBp
biB1c2VyIHByb2dyYW1zLgotY2xhc3MgR1RFU1RfQVBJXyBTY29wZWRUcmFjZSB7Ci0gcHVibGlj
OgotICAvLyBUaGUgYyd0b3IgcHVzaGVzIHRoZSBnaXZlbiBzb3VyY2UgZmlsZSBsb2NhdGlvbiBh
bmQgbWVzc2FnZSBvbnRvCi0gIC8vIGEgdHJhY2Ugc3RhY2sgbWFpbnRhaW5lZCBieSBHb29nbGUg
VGVzdC4KLSAgU2NvcGVkVHJhY2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IE1l
c3NhZ2UmIG1lc3NhZ2UpOwotCi0gIC8vIFRoZSBkJ3RvciBwb3BzIHRoZSBpbmZvIHB1c2hlZCBi
eSB0aGUgYyd0b3IuCi0gIC8vCi0gIC8vIE5vdGUgdGhhdCB0aGUgZCd0b3IgaXMgbm90IHZpcnR1
YWwgaW4gb3JkZXIgdG8gYmUgZWZmaWNpZW50LgotICAvLyBEb24ndCBpbmhlcml0IGZyb20gU2Nv
cGVkVHJhY2UhCi0gIH5TY29wZWRUcmFjZSgpOwotCi0gcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxM
T1dfQ09QWV9BTkRfQVNTSUdOXyhTY29wZWRUcmFjZSk7Ci19IEdURVNUX0FUVFJJQlVURV9VTlVT
RURfOyAgLy8gQSBTY29wZWRUcmFjZSBvYmplY3QgZG9lcyBpdHMgam9iIGluIGl0cwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIGMndG9yIGFuZCBkJ3Rvci4gIFRoZXJlZm9yZSBpdCBk
b2Vzbid0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byBiZSB1c2VkIG90
aGVyd2lzZS4KLQotbmFtZXNwYWNlIGVkaXRfZGlzdGFuY2UgewotLy8gUmV0dXJucyB0aGUgb3B0
aW1hbCBlZGl0cyB0byBnbyBmcm9tICdsZWZ0JyB0byAncmlnaHQnLgotLy8gQWxsIGVkaXRzIGNv
c3QgdGhlIHNhbWUsIHdpdGggcmVwbGFjZSBoYXZpbmcgbG93ZXIgcHJpb3JpdHkgdGhhbgotLy8g
YWRkL3JlbW92ZS4KLS8vIFNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgV2FnbmVyLUZpc2No
ZXIgYWxnb3JpdGhtLgotLy8gU2VlIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2FnbmVy
LUZpc2NoZXJfYWxnb3JpdGhtCi1lbnVtIEVkaXRUeXBlIHsga01hdGNoLCBrQWRkLCBrUmVtb3Zl
LCBrUmVwbGFjZSB9OwotR1RFU1RfQVBJXyBzdGQ6OnZlY3RvcjxFZGl0VHlwZT4gQ2FsY3VsYXRl
T3B0aW1hbEVkaXRzKAotICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHNpemVfdD4mIGxlZnQsIGNvbnN0
IHN0ZDo6dmVjdG9yPHNpemVfdD4mIHJpZ2h0KTsKLQotLy8gU2FtZSBhcyBhYm92ZSwgYnV0IHRo
ZSBpbnB1dCBpcyByZXByZXNlbnRlZCBhcyBzdHJpbmdzLgotR1RFU1RfQVBJXyBzdGQ6OnZlY3Rv
cjxFZGl0VHlwZT4gQ2FsY3VsYXRlT3B0aW1hbEVkaXRzKAotICAgIGNvbnN0IHN0ZDo6dmVjdG9y
PHN0ZDo6c3RyaW5nPiYgbGVmdCwKLSAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4m
IHJpZ2h0KTsKLQotLy8gQ3JlYXRlIGEgZGlmZiBvZiB0aGUgaW5wdXQgc3RyaW5ncyBpbiBVbmlm
aWVkIGRpZmYgZm9ybWF0LgotR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBDcmVhdGVVbmlmaWVkRGlm
Zihjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIGxlZnQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYg
cmlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBj
b250ZXh0ID0gMik7Ci0KLX0gIC8vIG5hbWVzcGFjZSBlZGl0X2Rpc3RhbmNlCi0KLS8vIENhbGN1
bGF0ZSB0aGUgZGlmZiBiZXR3ZWVuICdsZWZ0JyBhbmQgJ3JpZ2h0JyBhbmQgcmV0dXJuIGl0IGlu
IHVuaWZpZWQgZGlmZgotLy8gZm9ybWF0LgotLy8gSWYgbm90IG51bGwsIHN0b3JlcyBpbiAndG90
YWxfbGluZV9jb3VudCcgdGhlIHRvdGFsIG51bWJlciBvZiBsaW5lcyBmb3VuZAotLy8gaW4gbGVm
dCArIHJpZ2h0LgotR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBEaWZmU3RyaW5ncyhjb25zdCBzdGQ6
OnN0cmluZyYgbGVmdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcmIHJpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QqIHRvdGFsX2xpbmVfY291bnQpOwotCi0vLyBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIHRo
ZSBtZXNzYWdlIGZvciBhbiBlcXVhbGl0eSBhc3NlcnRpb24KLS8vIChlLmcuIEFTU0VSVF9FUSwg
RVhQRUNUX1NUUkVRLCBldGMpIGZhaWx1cmUuCi0vLwotLy8gVGhlIGZpcnN0IGZvdXIgcGFyYW1l
dGVycyBhcmUgdGhlIGV4cHJlc3Npb25zIHVzZWQgaW4gdGhlIGFzc2VydGlvbgotLy8gYW5kIHRo
ZWlyIHZhbHVlcywgYXMgc3RyaW5ncy4gIEZvciBleGFtcGxlLCBmb3IgQVNTRVJUX0VRKGZvbywg
YmFyKQotLy8gd2hlcmUgZm9vIGlzIDUgYW5kIGJhciBpcyA2LCB3ZSBoYXZlOgotLy8KLS8vICAg
ZXhwZWN0ZWRfZXhwcmVzc2lvbjogImZvbyIKLS8vICAgYWN0dWFsX2V4cHJlc3Npb246ICAgImJh
ciIKLS8vICAgZXhwZWN0ZWRfdmFsdWU6ICAgICAgIjUiCi0vLyAgIGFjdHVhbF92YWx1ZTogICAg
ICAgICI2IgotLy8KLS8vIFRoZSBpZ25vcmluZ19jYXNlIHBhcmFtZXRlciBpcyB0cnVlIGlmZiB0
aGUgYXNzZXJ0aW9uIGlzIGEKLS8vICpfU1RSQ0FTRUVRKi4gIFdoZW4gaXQncyB0cnVlLCB0aGUg
c3RyaW5nICIgKGlnbm9yaW5nIGNhc2UpIiB3aWxsCi0vLyBiZSBpbnNlcnRlZCBpbnRvIHRoZSBt
ZXNzYWdlLgotR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgRXFGYWlsdXJlKGNvbnN0IGNoYXIq
IGV4cGVjdGVkX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogYWN0dWFsX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkX3ZhbHVlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBhY3R1YWxf
dmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpZ25vcmlu
Z19jYXNlKTsKLQotLy8gQ29uc3RydWN0cyBhIGZhaWx1cmUgbWVzc2FnZSBmb3IgQm9vbGVhbiBh
c3NlcnRpb25zIHN1Y2ggYXMgRVhQRUNUX1RSVUUuCi1HVEVTVF9BUElfIHN0ZDo6c3RyaW5nIEdl
dEJvb2xBc3NlcnRpb25GYWlsdXJlTWVzc2FnZSgKLSAgICBjb25zdCBBc3NlcnRpb25SZXN1bHQm
IGFzc2VydGlvbl9yZXN1bHQsCi0gICAgY29uc3QgY2hhciogZXhwcmVzc2lvbl90ZXh0LAotICAg
IGNvbnN0IGNoYXIqIGFjdHVhbF9wcmVkaWNhdGVfdmFsdWUsCi0gICAgY29uc3QgY2hhciogZXhw
ZWN0ZWRfcHJlZGljYXRlX3ZhbHVlKTsKLQotLy8gVGhpcyB0ZW1wbGF0ZSBjbGFzcyByZXByZXNl
bnRzIGFuIElFRUUgZmxvYXRpbmctcG9pbnQgbnVtYmVyCi0vLyAoZWl0aGVyIHNpbmdsZS1wcmVj
aXNpb24gb3IgZG91YmxlLXByZWNpc2lvbiwgZGVwZW5kaW5nIG9uIHRoZQotLy8gdGVtcGxhdGUg
cGFyYW1ldGVycykuCi0vLwotLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyBjbGFzcyBpcyB0byBkbyBt
b3JlIHNvcGhpc3RpY2F0ZWQgbnVtYmVyCi0vLyBjb21wYXJpc29uLiAgKER1ZSB0byByb3VuZC1v
ZmYgZXJyb3IsIGV0YywgaXQncyB2ZXJ5IHVubGlrZWx5IHRoYXQKLS8vIHR3byBmbG9hdGluZy1w
b2ludHMgd2lsbCBiZSBlcXVhbCBleGFjdGx5LiAgSGVuY2UgYSBuYWl2ZQotLy8gY29tcGFyaXNv
biBieSB0aGUgPT0gb3BlcmF0aW9uIG9mdGVuIGRvZXNuJ3Qgd29yay4pCi0vLwotLy8gRm9ybWF0
IG9mIElFRUUgZmxvYXRpbmctcG9pbnQ6Ci0vLwotLy8gICBUaGUgbW9zdC1zaWduaWZpY2FudCBi
aXQgYmVpbmcgdGhlIGxlZnRtb3N0LCBhbiBJRUVFCi0vLyAgIGZsb2F0aW5nLXBvaW50IGxvb2tz
IGxpa2UKLS8vCi0vLyAgICAgc2lnbl9iaXQgZXhwb25lbnRfYml0cyBmcmFjdGlvbl9iaXRzCi0v
LwotLy8gICBIZXJlLCBzaWduX2JpdCBpcyBhIHNpbmdsZSBiaXQgdGhhdCBkZXNpZ25hdGVzIHRo
ZSBzaWduIG9mIHRoZQotLy8gICBudW1iZXIuCi0vLwotLy8gICBGb3IgZmxvYXQsIHRoZXJlIGFy
ZSA4IGV4cG9uZW50IGJpdHMgYW5kIDIzIGZyYWN0aW9uIGJpdHMuCi0vLwotLy8gICBGb3IgZG91
YmxlLCB0aGVyZSBhcmUgMTEgZXhwb25lbnQgYml0cyBhbmQgNTIgZnJhY3Rpb24gYml0cy4KLS8v
Ci0vLyAgIE1vcmUgZGV0YWlscyBjYW4gYmUgZm91bmQgYXQKLS8vICAgaHR0cDovL2VuLndpa2lw
ZWRpYS5vcmcvd2lraS9JRUVFX2Zsb2F0aW5nLXBvaW50X3N0YW5kYXJkLgotLy8KLS8vIFRlbXBs
YXRlIHBhcmFtZXRlcjoKLS8vCi0vLyAgIFJhd1R5cGU6IHRoZSByYXcgZmxvYXRpbmctcG9pbnQg
dHlwZSAoZWl0aGVyIGZsb2F0IG9yIGRvdWJsZSkKLXRlbXBsYXRlIDx0eXBlbmFtZSBSYXdUeXBl
PgotY2xhc3MgRmxvYXRpbmdQb2ludCB7Ci0gcHVibGljOgotICAvLyBEZWZpbmVzIHRoZSB1bnNp
Z25lZCBpbnRlZ2VyIHR5cGUgdGhhdCBoYXMgdGhlIHNhbWUgc2l6ZSBhcyB0aGUKLSAgLy8gZmxv
YXRpbmcgcG9pbnQgbnVtYmVyLgotICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVXaXRoU2l6ZTxzaXpl
b2YoUmF3VHlwZSk+OjpVSW50IEJpdHM7Ci0KLSAgLy8gQ29uc3RhbnRzLgotCi0gIC8vICMgb2Yg
Yml0cyBpbiBhIG51bWJlci4KLSAgc3RhdGljIGNvbnN0IHNpemVfdCBrQml0Q291bnQgPSA4KnNp
emVvZihSYXdUeXBlKTsKLQotICAvLyAjIG9mIGZyYWN0aW9uIGJpdHMgaW4gYSBudW1iZXIuCi0g
IHN0YXRpYyBjb25zdCBzaXplX3Qga0ZyYWN0aW9uQml0Q291bnQgPQotICAgIHN0ZDo6bnVtZXJp
Y19saW1pdHM8UmF3VHlwZT46OmRpZ2l0cyAtIDE7Ci0KLSAgLy8gIyBvZiBleHBvbmVudCBiaXRz
IGluIGEgbnVtYmVyLgotICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtFeHBvbmVudEJpdENvdW50ID0g
a0JpdENvdW50IC0gMSAtIGtGcmFjdGlvbkJpdENvdW50OwotCi0gIC8vIFRoZSBtYXNrIGZvciB0
aGUgc2lnbiBiaXQuCi0gIHN0YXRpYyBjb25zdCBCaXRzIGtTaWduQml0TWFzayA9IHN0YXRpY19j
YXN0PEJpdHM+KDEpIDw8IChrQml0Q291bnQgLSAxKTsKLQotICAvLyBUaGUgbWFzayBmb3IgdGhl
IGZyYWN0aW9uIGJpdHMuCi0gIHN0YXRpYyBjb25zdCBCaXRzIGtGcmFjdGlvbkJpdE1hc2sgPQot
ICAgIH5zdGF0aWNfY2FzdDxCaXRzPigwKSA+PiAoa0V4cG9uZW50Qml0Q291bnQgKyAxKTsKLQot
ICAvLyBUaGUgbWFzayBmb3IgdGhlIGV4cG9uZW50IGJpdHMuCi0gIHN0YXRpYyBjb25zdCBCaXRz
IGtFeHBvbmVudEJpdE1hc2sgPSB+KGtTaWduQml0TWFzayB8IGtGcmFjdGlvbkJpdE1hc2spOwot
Ci0gIC8vIEhvdyBtYW55IFVMUCdzIChVbml0cyBpbiB0aGUgTGFzdCBQbGFjZSkgd2Ugd2FudCB0
byB0b2xlcmF0ZSB3aGVuCi0gIC8vIGNvbXBhcmluZyB0d28gbnVtYmVycy4gIFRoZSBsYXJnZXIg
dGhlIHZhbHVlLCB0aGUgbW9yZSBlcnJvciB3ZQotICAvLyBhbGxvdy4gIEEgMCB2YWx1ZSBtZWFu
cyB0aGF0IHR3byBudW1iZXJzIG11c3QgYmUgZXhhY3RseSB0aGUgc2FtZQotICAvLyB0byBiZSBj
b25zaWRlcmVkIGVxdWFsLgotICAvLwotICAvLyBUaGUgbWF4aW11bSBlcnJvciBvZiBhIHNpbmds
ZSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb24gaXMgMC41Ci0gIC8vIHVuaXRzIGluIHRoZSBsYXN0
IHBsYWNlLiAgT24gSW50ZWwgQ1BVJ3MsIGFsbCBmbG9hdGluZy1wb2ludAotICAvLyBjYWxjdWxh
dGlvbnMgYXJlIGRvbmUgd2l0aCA4MC1iaXQgcHJlY2lzaW9uLCB3aGlsZSBkb3VibGUgaGFzIDY0
Ci0gIC8vIGJpdHMuICBUaGVyZWZvcmUsIDQgc2hvdWxkIGJlIGVub3VnaCBmb3Igb3JkaW5hcnkg
dXNlLgotICAvLwotICAvLyBTZWUgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZvciBtb3JlIGRldGFp
bHMgb24gVUxQOgotICAvLyBodHRwOi8vcmFuZG9tYXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAy
LzI1L2NvbXBhcmluZy1mbG9hdGluZy1wb2ludC1udW1iZXJzLTIwMTItZWRpdGlvbi8KLSAgc3Rh
dGljIGNvbnN0IHNpemVfdCBrTWF4VWxwcyA9IDQ7Ci0KLSAgLy8gQ29uc3RydWN0cyBhIEZsb2F0
aW5nUG9pbnQgZnJvbSBhIHJhdyBmbG9hdGluZy1wb2ludCBudW1iZXIuCi0gIC8vCi0gIC8vIE9u
IGFuIEludGVsIENQVSwgcGFzc2luZyBhIG5vbi1ub3JtYWxpemVkIE5BTiAoTm90IGEgTnVtYmVy
KQotICAvLyBhcm91bmQgbWF5IGNoYW5nZSBpdHMgYml0cywgYWx0aG91Z2ggdGhlIG5ldyB2YWx1
ZSBpcyBndWFyYW50ZWVkCi0gIC8vIHRvIGJlIGFsc28gYSBOQU4uICBUaGVyZWZvcmUsIGRvbid0
IGV4cGVjdCB0aGlzIGNvbnN0cnVjdG9yIHRvCi0gIC8vIHByZXNlcnZlIHRoZSBiaXRzIGluIHgg
d2hlbiB4IGlzIGEgTkFOLgotICBleHBsaWNpdCBGbG9hdGluZ1BvaW50KGNvbnN0IFJhd1R5cGUm
IHgpIHsgdV8udmFsdWVfID0geDsgfQotCi0gIC8vIFN0YXRpYyBtZXRob2RzCi0KLSAgLy8gUmVp
bnRlcnByZXRzIGEgYml0IHBhdHRlcm4gYXMgYSBmbG9hdGluZy1wb2ludCBudW1iZXIuCi0gIC8v
Ci0gIC8vIFRoaXMgZnVuY3Rpb24gaXMgbmVlZGVkIHRvIHRlc3QgdGhlIEFsbW9zdEVxdWFscygp
IG1ldGhvZC4KLSAgc3RhdGljIFJhd1R5cGUgUmVpbnRlcnByZXRCaXRzKGNvbnN0IEJpdHMgYml0
cykgewotICAgIEZsb2F0aW5nUG9pbnQgZnAoMCk7Ci0gICAgZnAudV8uYml0c18gPSBiaXRzOwot
ICAgIHJldHVybiBmcC51Xy52YWx1ZV87Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRoZSBmbG9hdGlu
Zy1wb2ludCBudW1iZXIgdGhhdCByZXByZXNlbnQgcG9zaXRpdmUgaW5maW5pdHkuCi0gIHN0YXRp
YyBSYXdUeXBlIEluZmluaXR5KCkgewotICAgIHJldHVybiBSZWludGVycHJldEJpdHMoa0V4cG9u
ZW50Qml0TWFzayk7Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRoZSBtYXhpbXVtIHJlcHJlc2VudGFi
bGUgZmluaXRlIGZsb2F0aW5nLXBvaW50IG51bWJlci4KLSAgc3RhdGljIFJhd1R5cGUgTWF4KCk7
Ci0KLSAgLy8gTm9uLXN0YXRpYyBtZXRob2RzCi0KLSAgLy8gUmV0dXJucyB0aGUgYml0cyB0aGF0
IHJlcHJlc2VudHMgdGhpcyBudW1iZXIuCi0gIGNvbnN0IEJpdHMgJmJpdHMoKSBjb25zdCB7IHJl
dHVybiB1Xy5iaXRzXzsgfQotCi0gIC8vIFJldHVybnMgdGhlIGV4cG9uZW50IGJpdHMgb2YgdGhp
cyBudW1iZXIuCi0gIEJpdHMgZXhwb25lbnRfYml0cygpIGNvbnN0IHsgcmV0dXJuIGtFeHBvbmVu
dEJpdE1hc2sgJiB1Xy5iaXRzXzsgfQotCi0gIC8vIFJldHVybnMgdGhlIGZyYWN0aW9uIGJpdHMg
b2YgdGhpcyBudW1iZXIuCi0gIEJpdHMgZnJhY3Rpb25fYml0cygpIGNvbnN0IHsgcmV0dXJuIGtG
cmFjdGlvbkJpdE1hc2sgJiB1Xy5iaXRzXzsgfQotCi0gIC8vIFJldHVybnMgdGhlIHNpZ24gYml0
IG9mIHRoaXMgbnVtYmVyLgotICBCaXRzIHNpZ25fYml0KCkgY29uc3QgeyByZXR1cm4ga1NpZ25C
aXRNYXNrICYgdV8uYml0c187IH0KLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoaXMgaXMgTkFO
IChub3QgYSBudW1iZXIpLgotICBib29sIGlzX25hbigpIGNvbnN0IHsKLSAgICAvLyBJdCdzIGEg
TkFOIGlmIHRoZSBleHBvbmVudCBiaXRzIGFyZSBhbGwgb25lcyBhbmQgdGhlIGZyYWN0aW9uCi0g
ICAgLy8gYml0cyBhcmUgbm90IGVudGlyZWx5IHplcm9zLgotICAgIHJldHVybiAoZXhwb25lbnRf
Yml0cygpID09IGtFeHBvbmVudEJpdE1hc2spICYmIChmcmFjdGlvbl9iaXRzKCkgIT0gMCk7Ci0g
IH0KLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoaXMgbnVtYmVyIGlzIGF0IG1vc3Qga01heFVs
cHMgVUxQJ3MgYXdheSBmcm9tCi0gIC8vIHJocy4gIEluIHBhcnRpY3VsYXIsIHRoaXMgZnVuY3Rp
b246Ci0gIC8vCi0gIC8vICAgLSByZXR1cm5zIGZhbHNlIGlmIGVpdGhlciBudW1iZXIgaXMgKG9y
IGJvdGggYXJlKSBOQU4uCi0gIC8vICAgLSB0cmVhdHMgcmVhbGx5IGxhcmdlIG51bWJlcnMgYXMg
YWxtb3N0IGVxdWFsIHRvIGluZmluaXR5LgotICAvLyAgIC0gdGhpbmtzICswLjAgYW5kIC0wLjAg
YXJlIDAgRExQJ3MgYXBhcnQuCi0gIGJvb2wgQWxtb3N0RXF1YWxzKGNvbnN0IEZsb2F0aW5nUG9p
bnQmIHJocykgY29uc3QgewotICAgIC8vIFRoZSBJRUVFIHN0YW5kYXJkIHNheXMgdGhhdCBhbnkg
Y29tcGFyaXNvbiBvcGVyYXRpb24gaW52b2x2aW5nCi0gICAgLy8gYSBOQU4gbXVzdCByZXR1cm4g
ZmFsc2UuCi0gICAgaWYgKGlzX25hbigpIHx8IHJocy5pc19uYW4oKSkgcmV0dXJuIGZhbHNlOwot
Ci0gICAgcmV0dXJuIERpc3RhbmNlQmV0d2VlblNpZ25BbmRNYWduaXR1ZGVOdW1iZXJzKHVfLmJp
dHNfLCByaHMudV8uYml0c18pCi0gICAgICAgIDw9IGtNYXhVbHBzOwotICB9Ci0KLSBwcml2YXRl
OgotICAvLyBUaGUgZGF0YSB0eXBlIHVzZWQgdG8gc3RvcmUgdGhlIGFjdHVhbCBmbG9hdGluZy1w
b2ludCBudW1iZXIuCi0gIHVuaW9uIEZsb2F0aW5nUG9pbnRVbmlvbiB7Ci0gICAgUmF3VHlwZSB2
YWx1ZV87ICAvLyBUaGUgcmF3IGZsb2F0aW5nLXBvaW50IG51bWJlci4KLSAgICBCaXRzIGJpdHNf
OyAgICAgIC8vIFRoZSBiaXRzIHRoYXQgcmVwcmVzZW50IHRoZSBudW1iZXIuCi0gIH07Ci0KLSAg
Ly8gQ29udmVydHMgYW4gaW50ZWdlciBmcm9tIHRoZSBzaWduLWFuZC1tYWduaXR1ZGUgcmVwcmVz
ZW50YXRpb24gdG8KLSAgLy8gdGhlIGJpYXNlZCByZXByZXNlbnRhdGlvbi4gIE1vcmUgcHJlY2lz
ZWx5LCBsZXQgTiBiZSAyIHRvIHRoZQotICAvLyBwb3dlciBvZiAoa0JpdENvdW50IC0gMSksIGFu
IGludGVnZXIgeCBpcyByZXByZXNlbnRlZCBieSB0aGUKLSAgLy8gdW5zaWduZWQgbnVtYmVyIHgg
KyBOLgotICAvLwotICAvLyBGb3IgaW5zdGFuY2UsCi0gIC8vCi0gIC8vICAgLU4gKyAxICh0aGUg
bW9zdCBuZWdhdGl2ZSBudW1iZXIgcmVwcmVzZW50YWJsZSB1c2luZwotICAvLyAgICAgICAgICBz
aWduLWFuZC1tYWduaXR1ZGUpIGlzIHJlcHJlc2VudGVkIGJ5IDE7Ci0gIC8vICAgMCAgICAgIGlz
IHJlcHJlc2VudGVkIGJ5IE47IGFuZAotICAvLyAgIE4gLSAxICAodGhlIGJpZ2dlc3QgbnVtYmVy
IHJlcHJlc2VudGFibGUgdXNpbmcKLSAgLy8gICAgICAgICAgc2lnbi1hbmQtbWFnbml0dWRlKSBp
cyByZXByZXNlbnRlZCBieSAyTiAtIDEuCi0gIC8vCi0gIC8vIFJlYWQgaHR0cDovL2VuLndpa2lw
ZWRpYS5vcmcvd2lraS9TaWduZWRfbnVtYmVyX3JlcHJlc2VudGF0aW9ucwotICAvLyBmb3IgbW9y
ZSBkZXRhaWxzIG9uIHNpZ25lZCBudW1iZXIgcmVwcmVzZW50YXRpb25zLgotICBzdGF0aWMgQml0
cyBTaWduQW5kTWFnbml0dWRlVG9CaWFzZWQoY29uc3QgQml0cyAmc2FtKSB7Ci0gICAgaWYgKGtT
aWduQml0TWFzayAmIHNhbSkgewotICAgICAgLy8gc2FtIHJlcHJlc2VudHMgYSBuZWdhdGl2ZSBu
dW1iZXIuCi0gICAgICByZXR1cm4gfnNhbSArIDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgIC8vIHNh
bSByZXByZXNlbnRzIGEgcG9zaXRpdmUgbnVtYmVyLgotICAgICAgcmV0dXJuIGtTaWduQml0TWFz
ayB8IHNhbTsKLSAgICB9Ci0gIH0KLQotICAvLyBHaXZlbiB0d28gbnVtYmVycyBpbiB0aGUgc2ln
bi1hbmQtbWFnbml0dWRlIHJlcHJlc2VudGF0aW9uLAotICAvLyByZXR1cm5zIHRoZSBkaXN0YW5j
ZSBiZXR3ZWVuIHRoZW0gYXMgYW4gdW5zaWduZWQgbnVtYmVyLgotICBzdGF0aWMgQml0cyBEaXN0
YW5jZUJldHdlZW5TaWduQW5kTWFnbml0dWRlTnVtYmVycyhjb25zdCBCaXRzICZzYW0xLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBC
aXRzICZzYW0yKSB7Ci0gICAgY29uc3QgQml0cyBiaWFzZWQxID0gU2lnbkFuZE1hZ25pdHVkZVRv
Qmlhc2VkKHNhbTEpOwotICAgIGNvbnN0IEJpdHMgYmlhc2VkMiA9IFNpZ25BbmRNYWduaXR1ZGVU
b0JpYXNlZChzYW0yKTsKLSAgICByZXR1cm4gKGJpYXNlZDEgPj0gYmlhc2VkMikgPyAoYmlhc2Vk
MSAtIGJpYXNlZDIpIDogKGJpYXNlZDIgLSBiaWFzZWQxKTsKLSAgfQotCi0gIEZsb2F0aW5nUG9p
bnRVbmlvbiB1XzsKLX07Ci0KLS8vIFdlIGNhbm5vdCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxU
Pjo6bWF4KCkgYXMgaXQgY2xhc2hlcyB3aXRoIHRoZSBtYXgoKQotLy8gbWFjcm8gZGVmaW5lZCBi
eSA8d2luZG93cy5oPi4KLXRlbXBsYXRlIDw+Ci1pbmxpbmUgZmxvYXQgRmxvYXRpbmdQb2ludDxm
bG9hdD46Ok1heCgpIHsgcmV0dXJuIEZMVF9NQVg7IH0KLXRlbXBsYXRlIDw+Ci1pbmxpbmUgZG91
YmxlIEZsb2F0aW5nUG9pbnQ8ZG91YmxlPjo6TWF4KCkgeyByZXR1cm4gREJMX01BWDsgfQotCi0v
LyBUeXBlZGVmcyB0aGUgaW5zdGFuY2VzIG9mIHRoZSBGbG9hdGluZ1BvaW50IHRlbXBsYXRlIGNs
YXNzIHRoYXQgd2UKLS8vIGNhcmUgdG8gdXNlLgotdHlwZWRlZiBGbG9hdGluZ1BvaW50PGZsb2F0
PiBGbG9hdDsKLXR5cGVkZWYgRmxvYXRpbmdQb2ludDxkb3VibGU+IERvdWJsZTsKLQotLy8gSW4g
b3JkZXIgdG8gY2F0Y2ggdGhlIG1pc3Rha2Ugb2YgcHV0dGluZyB0ZXN0cyB0aGF0IHVzZSBkaWZm
ZXJlbnQKLS8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSwgd2Ug
bmVlZCB0byBhc3NpZ24KLS8vIHVuaXF1ZSBJRHMgdG8gZml4dHVyZSBjbGFzc2VzIGFuZCBjb21w
YXJlIHRoZW0uICBUaGUgVHlwZUlkIHR5cGUgaXMKLS8vIHVzZWQgdG8gaG9sZCBzdWNoIElEcy4g
IFRoZSB1c2VyIHNob3VsZCB0cmVhdCBUeXBlSWQgYXMgYW4gb3BhcXVlCi0vLyB0eXBlOiB0aGUg
b25seSBvcGVyYXRpb24gYWxsb3dlZCBvbiBUeXBlSWQgdmFsdWVzIGlzIHRvIGNvbXBhcmUKLS8v
IHRoZW0gZm9yIGVxdWFsaXR5IHVzaW5nIHRoZSA9PSBvcGVyYXRvci4KLXR5cGVkZWYgY29uc3Qg
dm9pZCogVHlwZUlkOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFR5cGVJZEhlbHBl
ciB7Ci0gcHVibGljOgotICAvLyBkdW1teV8gbXVzdCBub3QgaGF2ZSBhIGNvbnN0IHR5cGUuICBP
dGhlcndpc2UgYW4gb3Zlcmx5IGVhZ2VyCi0gIC8vIGNvbXBpbGVyIChlLmcuIE1TVkMgNy4xICYg
OC4wKSBtYXkgdHJ5IHRvIG1lcmdlCi0gIC8vIFR5cGVJZEhlbHBlcjxUPjo6ZHVtbXlfIGZvciBk
aWZmZXJlbnQgVHMgYXMgYW4gIm9wdGltaXphdGlvbiIuCi0gIHN0YXRpYyBib29sIGR1bW15XzsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotYm9vbCBUeXBlSWRIZWxwZXI8VD46OmR1bW15
XyA9IGZhbHNlOwotCi0vLyBHZXRUeXBlSWQ8VD4oKSByZXR1cm5zIHRoZSBJRCBvZiB0eXBlIFQu
ICBEaWZmZXJlbnQgdmFsdWVzIHdpbGwgYmUKLS8vIHJldHVybmVkIGZvciBkaWZmZXJlbnQgdHlw
ZXMuICBDYWxsaW5nIHRoZSBmdW5jdGlvbiB0d2ljZSB3aXRoIHRoZQotLy8gc2FtZSB0eXBlIGFy
Z3VtZW50IGlzIGd1YXJhbnRlZWQgdG8gcmV0dXJuIHRoZSBzYW1lIElELgotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1UeXBlSWQgR2V0VHlwZUlkKCkgewotICAvLyBUaGUgY29tcGlsZXIgaXMgcmVx
dWlyZWQgdG8gYWxsb2NhdGUgYSBkaWZmZXJlbnQKLSAgLy8gVHlwZUlkSGVscGVyPFQ+OjpkdW1t
eV8gdmFyaWFibGUgZm9yIGVhY2ggVCB1c2VkIHRvIGluc3RhbnRpYXRlCi0gIC8vIHRoZSB0ZW1w
bGF0ZS4gIFRoZXJlZm9yZSwgdGhlIGFkZHJlc3Mgb2YgZHVtbXlfIGlzIGd1YXJhbnRlZWQgdG8K
LSAgLy8gYmUgdW5pcXVlLgotICByZXR1cm4gJihUeXBlSWRIZWxwZXI8VD46OmR1bW15Xyk7Ci19
Ci0KLS8vIFJldHVybnMgdGhlIHR5cGUgSUQgb2YgOjp0ZXN0aW5nOjpUZXN0LiAgQWx3YXlzIGNh
bGwgdGhpcyBpbnN0ZWFkCi0vLyBvZiBHZXRUeXBlSWQ8IDo6dGVzdGluZzo6VGVzdD4oKSB0byBn
ZXQgdGhlIHR5cGUgSUQgb2YKLS8vIDo6dGVzdGluZzo6VGVzdCwgYXMgdGhlIGxhdHRlciBtYXkg
Z2l2ZSB0aGUgd3JvbmcgcmVzdWx0IGR1ZSB0byBhCi0vLyBzdXNwZWN0ZWQgbGlua2VyIGJ1ZyB3
aGVuIGNvbXBpbGluZyBHb29nbGUgVGVzdCBhcyBhIE1hYyBPUyBYCi0vLyBmcmFtZXdvcmsuCi1H
VEVTVF9BUElfIFR5cGVJZCBHZXRUZXN0VHlwZUlkKCk7Ci0KLS8vIERlZmluZXMgdGhlIGFic3Ry
YWN0IGZhY3RvcnkgaW50ZXJmYWNlIHRoYXQgY3JlYXRlcyBpbnN0YW5jZXMKLS8vIG9mIGEgVGVz
dCBvYmplY3QuCi1jbGFzcyBUZXN0RmFjdG9yeUJhc2UgewotIHB1YmxpYzoKLSAgdmlydHVhbCB+
VGVzdEZhY3RvcnlCYXNlKCkge30KLQotICAvLyBDcmVhdGVzIGEgdGVzdCBpbnN0YW5jZSB0byBy
dW4uIFRoZSBpbnN0YW5jZSBpcyBib3RoIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZAotICAvLyB3aXRo
aW4gVGVzdEluZm9JbXBsOjpSdW4oKQotICB2aXJ0dWFsIFRlc3QqIENyZWF0ZVRlc3QoKSA9IDA7
Ci0KLSBwcm90ZWN0ZWQ6Ci0gIFRlc3RGYWN0b3J5QmFzZSgpIHt9Ci0KLSBwcml2YXRlOgotICBH
VEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RGYWN0b3J5QmFzZSk7Ci19OwotCi0v
LyBUaGlzIGNsYXNzIHByb3ZpZGVzIGltcGxlbWVudGF0aW9uIG9mIFRlYXN0RmFjdG9yeUJhc2Ug
aW50ZXJmYWNlLgotLy8gSXQgaXMgdXNlZCBpbiBURVNUIGFuZCBURVNUX0YgbWFjcm9zLgotdGVt
cGxhdGUgPGNsYXNzIFRlc3RDbGFzcz4KLWNsYXNzIFRlc3RGYWN0b3J5SW1wbCA6IHB1YmxpYyBU
ZXN0RmFjdG9yeUJhc2UgewotIHB1YmxpYzoKLSAgdmlydHVhbCBUZXN0KiBDcmVhdGVUZXN0KCkg
eyByZXR1cm4gbmV3IFRlc3RDbGFzczsgfQotfTsKLQotI2lmIEdURVNUX09TX1dJTkRPV1MKLQot
Ly8gUHJlZGljYXRlLWZvcm1hdHRlcnMgZm9yIGltcGxlbWVudGluZyB0aGUgSFJFU1VMVCBjaGVj
a2luZyBtYWNyb3MKLS8vIHtBU1NFUlR8RVhQRUNUfV9IUkVTVUxUX3tTVUNDRUVERUR8RkFJTEVE
fQotLy8gV2UgcGFzcyBhIGxvbmcgaW5zdGVhZCBvZiBIUkVTVUxUIHRvIGF2b2lkIGNhdXNpbmcg
YW4KLS8vIGluY2x1ZGUgZGVwZW5kZW5jeSBmb3IgdGhlIEhSRVNVTFQgdHlwZS4KLUdURVNUX0FQ
SV8gQXNzZXJ0aW9uUmVzdWx0IElzSFJFU1VMVFN1Y2Nlc3MoY29uc3QgY2hhciogZXhwciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBocik7ICAvLyBO
T0xJTlQKLUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IElzSFJFU1VMVEZhaWx1cmUoY29uc3Qg
Y2hhciogZXhwciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9uZyBocik7ICAvLyBOT0xJTlQKLQotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLS8v
IFR5cGVzIG9mIFNldFVwVGVzdENhc2UoKSBhbmQgVGVhckRvd25UZXN0Q2FzZSgpIGZ1bmN0aW9u
cy4KLXR5cGVkZWYgdm9pZCAoKlNldFVwVGVzdENhc2VGdW5jKSgpOwotdHlwZWRlZiB2b2lkICgq
VGVhckRvd25UZXN0Q2FzZUZ1bmMpKCk7Ci0KLXN0cnVjdCBDb2RlTG9jYXRpb24gewotICBDb2Rl
TG9jYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGFfZmlsZSwgaW50IGFfbGluZSkKLSAgICAgIDog
ZmlsZShhX2ZpbGUpLCBsaW5lKGFfbGluZSkge30KLQotICBzdGQ6OnN0cmluZyBmaWxlOwotICBp
bnQgbGluZTsKLX07Ci0KLS8vIENyZWF0ZXMgYSBuZXcgVGVzdEluZm8gb2JqZWN0IGFuZCByZWdp
c3RlcnMgaXQgd2l0aCBHb29nbGUgVGVzdDsKLS8vIHJldHVybnMgdGhlIGNyZWF0ZWQgb2JqZWN0
LgotLy8KLS8vIEFyZ3VtZW50czoKLS8vCi0vLyAgIHRlc3RfY2FzZV9uYW1lOiAgIG5hbWUgb2Yg
dGhlIHRlc3QgY2FzZQotLy8gICBuYW1lOiAgICAgICAgICAgICBuYW1lIG9mIHRoZSB0ZXN0Ci0v
LyAgIHR5cGVfcGFyYW0gICAgICAgIHRoZSBuYW1lIG9mIHRoZSB0ZXN0J3MgdHlwZSBwYXJhbWV0
ZXIsIG9yIE5VTEwgaWYKLS8vICAgICAgICAgICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBl
ZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotLy8gICB2YWx1ZV9wYXJhbSAgICAgICB0
ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0ZXN0J3MgdmFsdWUgcGFyYW1ldGVyLAotLy8gICAg
ICAgICAgICAgICAgICAgICBvciBOVUxMIGlmIHRoaXMgaXMgbm90IGEgdHlwZS1wYXJhbWV0ZXJp
emVkIHRlc3QuCi0vLyAgIGNvZGVfbG9jYXRpb246ICAgIGNvZGUgbG9jYXRpb24gd2hlcmUgdGhl
IHRlc3QgaXMgZGVmaW5lZAotLy8gICBmaXh0dXJlX2NsYXNzX2lkOiBJRCBvZiB0aGUgdGVzdCBm
aXh0dXJlIGNsYXNzCi0vLyAgIHNldF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0
aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICAgIHBv
aW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCi0vLyAg
IGZhY3Rvcnk6ICAgICAgICAgIHBvaW50ZXIgdG8gdGhlIGZhY3RvcnkgdGhhdCBjcmVhdGVzIGEg
dGVzdCBvYmplY3QuCi0vLyAgICAgICAgICAgICAgICAgICAgIFRoZSBuZXdseSBjcmVhdGVkIFRl
c3RJbmZvIGluc3RhbmNlIHdpbGwgYXNzdW1lCi0vLyAgICAgICAgICAgICAgICAgICAgIG93bmVy
c2hpcCBvZiB0aGUgZmFjdG9yeSBvYmplY3QuCi1HVEVTVF9BUElfIFRlc3RJbmZvKiBNYWtlQW5k
UmVnaXN0ZXJUZXN0SW5mbygKLSAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICBj
b25zdCBjaGFyKiBuYW1lLAotICAgIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCi0gICAgY29uc3Qg
Y2hhciogdmFsdWVfcGFyYW0sCi0gICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24sCi0gICAg
VHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0gICAgU2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3Rj
LAotICAgIFRlYXJEb3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90YywKLSAgICBUZXN0RmFjdG9y
eUJhc2UqIGZhY3RvcnkpOwotCi0vLyBJZiAqcHN0ciBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gcHJl
Zml4LCBtb2RpZmllcyAqcHN0ciB0byBiZSByaWdodAotLy8gcGFzdCB0aGUgcHJlZml4IGFuZCBy
ZXR1cm5zIHRydWU7IG90aGVyd2lzZSBsZWF2ZXMgKnBzdHIgdW5jaGFuZ2VkCi0vLyBhbmQgcmV0
dXJucyBmYWxzZS4gIE5vbmUgb2YgcHN0ciwgKnBzdHIsIGFuZCBwcmVmaXggY2FuIGJlIE5VTEwu
Ci1HVEVTVF9BUElfIGJvb2wgU2tpcFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IGNo
YXIqKiBwc3RyKTsKLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBF
RF9URVNUX1AKLQotLy8gU3RhdGUgb2YgdGhlIGRlZmluaXRpb24gb2YgYSB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdCBjYXNlLgotY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRlIHsK
LSBwdWJsaWM6Ci0gIFR5cGVkVGVzdENhc2VQU3RhdGUoKSA6IHJlZ2lzdGVyZWRfKGZhbHNlKSB7
fQotCi0gIC8vIEFkZHMgdGhlIGdpdmVuIHRlc3QgbmFtZSB0byBkZWZpbmVkX3Rlc3RfbmFtZXNf
IGFuZCByZXR1cm4gdHJ1ZQotICAvLyBpZiB0aGUgdGVzdCBjYXNlIGhhc24ndCBiZWVuIHJlZ2lz
dGVyZWQ7IG90aGVyd2lzZSBhYm9ydHMgdGhlCi0gIC8vIHByb2dyYW0uCi0gIGJvb2wgQWRkVGVz
dE5hbWUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSwK
LSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X25hbWUpIHsKLSAgICBpZiAocmVn
aXN0ZXJlZF8pIHsKLSAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgVGVzdCAlcyBtdXN0IGJlIGRl
ZmluZWQgYmVmb3JlICIKLSAgICAgICAgICAgICAgIlJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9Q
KCVzLCAuLi4pLlxuIiwKLSAgICAgICAgICAgICAgRm9ybWF0RmlsZUxvY2F0aW9uKGZpbGUsIGxp
bmUpLmNfc3RyKCksIHRlc3RfbmFtZSwgY2FzZV9uYW1lKTsKLSAgICAgIGZmbHVzaChzdGRlcnIp
OwotICAgICAgcG9zaXg6OkFib3J0KCk7Ci0gICAgfQotICAgIHJlZ2lzdGVyZWRfdGVzdHNfLmlu
c2VydCgKLSAgICAgICAgOjpzdGQ6Om1ha2VfcGFpcih0ZXN0X25hbWUsIENvZGVMb2NhdGlvbihm
aWxlLCBsaW5lKSkpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci0KLSAgYm9vbCBUZXN0RXhpc3Rz
KGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X25hbWUpIGNvbnN0IHsKLSAgICByZXR1cm4gcmVnaXN0
ZXJlZF90ZXN0c18uY291bnQodGVzdF9uYW1lKSA+IDA7Ci0gIH0KLQotICBjb25zdCBDb2RlTG9j
YXRpb24mIEdldENvZGVMb2NhdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdF9uYW1lKSBjb25z
dCB7Ci0gICAgUmVnaXN0ZXJlZFRlc3RzTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHJlZ2lzdGVy
ZWRfdGVzdHNfLmZpbmQodGVzdF9uYW1lKTsKLSAgICBHVEVTVF9DSEVDS18oaXQgIT0gcmVnaXN0
ZXJlZF90ZXN0c18uZW5kKCkpOwotICAgIHJldHVybiBpdC0+c2Vjb25kOwotICB9Ci0KLSAgLy8g
VmVyaWZpZXMgdGhhdCByZWdpc3RlcmVkX3Rlc3RzIG1hdGNoIHRoZSB0ZXN0IG5hbWVzIGluCi0g
IC8vIGRlZmluZWRfdGVzdF9uYW1lc187IHJldHVybnMgcmVnaXN0ZXJlZF90ZXN0cyBpZiBzdWNj
ZXNzZnVsLCBvcgotICAvLyBhYm9ydHMgdGhlIHByb2dyYW0gb3RoZXJ3aXNlLgotICBjb25zdCBj
aGFyKiBWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAotICAgICAgY29uc3QgY2hhciogZmlsZSwg
aW50IGxpbmUsIGNvbnN0IGNoYXIqIHJlZ2lzdGVyZWRfdGVzdHMpOwotCi0gcHJpdmF0ZToKLSAg
dHlwZWRlZiA6OnN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBDb2RlTG9jYXRpb24+IFJlZ2lzdGVyZWRU
ZXN0c01hcDsKLQotICBib29sIHJlZ2lzdGVyZWRfOwotICBSZWdpc3RlcmVkVGVzdHNNYXAgcmVn
aXN0ZXJlZF90ZXN0c187Ci19OwotCi0vLyBTa2lwcyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNo
YXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbW1hIGluICdzdHInOwotLy8gcmV0dXJucyBOVUxMIGlmIG5v
IGNvbW1hIGlzIGZvdW5kIGluICdzdHInLgotaW5saW5lIGNvbnN0IGNoYXIqIFNraXBDb21tYShj
b25zdCBjaGFyKiBzdHIpIHsKLSAgY29uc3QgY2hhciogY29tbWEgPSBzdHJjaHIoc3RyLCAnLCcp
OwotICBpZiAoY29tbWEgPT0gTlVMTCkgewotICAgIHJldHVybiBOVUxMOwotICB9Ci0gIHdoaWxl
IChJc1NwYWNlKCooKytjb21tYSkpKSB7fQotICByZXR1cm4gY29tbWE7Ci19Ci0KLS8vIFJldHVy
bnMgdGhlIHByZWZpeCBvZiAnc3RyJyBiZWZvcmUgdGhlIGZpcnN0IGNvbW1hIGluIGl0OyByZXR1
cm5zCi0vLyB0aGUgZW50aXJlIHN0cmluZyBpZiBpdCBjb250YWlucyBubyBjb21tYS4KLWlubGlu
ZSBzdGQ6OnN0cmluZyBHZXRQcmVmaXhVbnRpbENvbW1hKGNvbnN0IGNoYXIqIHN0cikgewotICBj
b25zdCBjaGFyKiBjb21tYSA9IHN0cmNocihzdHIsICcsJyk7Ci0gIHJldHVybiBjb21tYSA9PSBO
VUxMID8gc3RyIDogc3RkOjpzdHJpbmcoc3RyLCBjb21tYSk7Ci19Ci0KLS8vIFNwbGl0cyBhIGdp
dmVuIHN0cmluZyBvbiBhIGdpdmVuIGRlbGltaXRlciwgcG9wdWxhdGluZyBhIGdpdmVuCi0vLyB2
ZWN0b3Igd2l0aCB0aGUgZmllbGRzLgotdm9pZCBTcGxpdFN0cmluZyhjb25zdCA6OnN0ZDo6c3Ry
aW5nJiBzdHIsIGNoYXIgZGVsaW1pdGVyLAotICAgICAgICAgICAgICAgICA6OnN0ZDo6dmVjdG9y
PCA6OnN0ZDo6c3RyaW5nPiogZGVzdCk7Ci0KLS8vIFR5cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0
dXJlLCBUZXN0U2VsLCBUeXBlcz46OlJlZ2lzdGVyKCkKLS8vIHJlZ2lzdGVycyBhIGxpc3Qgb2Yg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIHdpdGggR29vZ2xlIFRlc3QuICBUaGUKLS8vIHJldHVy
biB2YWx1ZSBpcyBpbnNpZ25pZmljYW50IC0gd2UganVzdCBuZWVkIHRvIHJldHVybiBzb21ldGhp
bmcKLS8vIHN1Y2ggdGhhdCB3ZSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uIGluIGEgbmFtZXNwYWNl
IHNjb3BlLgotLy8KLS8vIEltcGxlbWVudGF0aW9uIG5vdGU6IFRoZSBHVEVTVF9URU1QTEFURV8g
bWFjcm8gZGVjbGFyZXMgYSB0ZW1wbGF0ZQotLy8gdGVtcGxhdGUgcGFyYW1ldGVyLiAgSXQncyBk
ZWZpbmVkIGluIGd0ZXN0LXR5cGUtdXRpbC5oLgotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBG
aXh0dXJlLCBjbGFzcyBUZXN0U2VsLCB0eXBlbmFtZSBUeXBlcz4KLWNsYXNzIFR5cGVQYXJhbWV0
ZXJpemVkVGVzdCB7Ci0gcHVibGljOgotICAvLyAnaW5kZXgnIGlzIHRoZSBpbmRleCBvZiB0aGUg
dGVzdCBpbiB0aGUgdHlwZSBsaXN0ICdUeXBlcycKLSAgLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfQ0FTRV9QKFByZWZpeCwgVGVzdENhc2UsCi0gIC8vIFR5cGVzKS4gIFZh
bGlkIHZhbHVlcyBmb3IgJ2luZGV4JyBhcmUgWzAsIE4gLSAxXSB3aGVyZSBOIGlzIHRoZQotICAv
LyBsZW5ndGggb2YgVHlwZXMuCi0gIHN0YXRpYyBib29sIFJlZ2lzdGVyKGNvbnN0IGNoYXIqIHBy
ZWZpeCwKLSAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSwgY29uc3QgY2hh
ciogdGVzdF9uYW1lcywKLSAgICAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4KSB7Ci0gICAg
dHlwZWRlZiB0eXBlbmFtZSBUeXBlczo6SGVhZCBUeXBlOwotICAgIHR5cGVkZWYgRml4dHVyZTxU
eXBlPiBGaXh0dXJlQ2xhc3M7Ci0gICAgdHlwZWRlZiB0eXBlbmFtZSBHVEVTVF9CSU5EXyhUZXN0
U2VsLCBUeXBlKSBUZXN0Q2xhc3M7Ci0KLSAgICAvLyBGaXJzdCwgcmVnaXN0ZXJzIHRoZSBmaXJz
dCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBpbiB0aGUgdHlwZQotICAgIC8vIGxpc3QuCi0gICAg
TWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8oCi0gICAgICAgIChzdGQ6OnN0cmluZyhwcmVmaXgpICsg
KHByZWZpeFswXSA9PSAnXDAnID8gIiIgOiAiLyIpICsgY2FzZV9uYW1lICsgIi8iCi0gICAgICAg
ICArIFN0cmVhbWFibGVUb1N0cmluZyhpbmRleCkpLmNfc3RyKCksCi0gICAgICAgIFN0cmlwVHJh
aWxpbmdTcGFjZXMoR2V0UHJlZml4VW50aWxDb21tYSh0ZXN0X25hbWVzKSkuY19zdHIoKSwKLSAg
ICAgICAgR2V0VHlwZU5hbWU8VHlwZT4oKS5jX3N0cigpLAotICAgICAgICBOVUxMLCAgLy8gTm8g
dmFsdWUgcGFyYW1ldGVyLgotICAgICAgICBjb2RlX2xvY2F0aW9uLAotICAgICAgICBHZXRUeXBl
SWQ8Rml4dHVyZUNsYXNzPigpLAotICAgICAgICBUZXN0Q2xhc3M6OlNldFVwVGVzdENhc2UsCi0g
ICAgICAgIFRlc3RDbGFzczo6VGVhckRvd25UZXN0Q2FzZSwKLSAgICAgICAgbmV3IFRlc3RGYWN0
b3J5SW1wbDxUZXN0Q2xhc3M+KTsKLQotICAgIC8vIE5leHQsIHJlY3Vyc2VzIChhdCBjb21waWxl
IHRpbWUpIHdpdGggdGhlIHRhaWwgb2YgdGhlIHR5cGUgbGlzdC4KLSAgICByZXR1cm4gVHlwZVBh
cmFtZXRlcml6ZWRUZXN0PEZpeHR1cmUsIFRlc3RTZWwsIHR5cGVuYW1lIFR5cGVzOjpUYWlsPgot
ICAgICAgICA6OlJlZ2lzdGVyKHByZWZpeCwgY29kZV9sb2NhdGlvbiwgY2FzZV9uYW1lLCB0ZXN0
X25hbWVzLCBpbmRleCArIDEpOwotICB9Ci19OwotCi0vLyBUaGUgYmFzZSBjYXNlIGZvciB0aGUg
Y29tcGlsZSB0aW1lIHJlY3Vyc2lvbi4KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gRml4dHVy
ZSwgY2xhc3MgVGVzdFNlbD4KLWNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0dXJlLCBU
ZXN0U2VsLCBUeXBlczA+IHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyBib29sIFJlZ2lzdGVyKGNvbnN0
IGNoYXIqIC8qcHJlZml4Ki8sIENvZGVMb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogLypjYXNlX25hbWUqLywgY29uc3QgY2hhciogLyp0ZXN0X25hbWVzKi8sCi0g
ICAgICAgICAgICAgICAgICAgICAgIGludCAvKmluZGV4Ki8pIHsKLSAgICByZXR1cm4gdHJ1ZTsK
LSAgfQotfTsKLQotLy8gVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTxGaXh0dXJlLCBUZXN0cywg
VHlwZXM+OjpSZWdpc3RlcigpCi0vLyByZWdpc3RlcnMgKmFsbCBjb21iaW5hdGlvbnMqIG9mICdU
ZXN0cycgYW5kICdUeXBlcycgd2l0aCBHb29nbGUKLS8vIFRlc3QuICBUaGUgcmV0dXJuIHZhbHVl
IGlzIGluc2lnbmlmaWNhbnQgLSB3ZSBqdXN0IG5lZWQgdG8gcmV0dXJuCi0vLyBzb21ldGhpbmcg
c3VjaCB0aGF0IHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gaW4gYSBuYW1lc3BhY2Ugc2NvcGUu
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIEZpeHR1cmUsIHR5cGVuYW1lIFRlc3RzLCB0eXBl
bmFtZSBUeXBlcz4KLWNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UgewotIHB1YmxpYzoK
LSAgc3RhdGljIGJvb2wgUmVnaXN0ZXIoY29uc3QgY2hhciogcHJlZml4LCBDb2RlTG9jYXRpb24g
Y29kZV9sb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHlwZWRUZXN0Q2Fz
ZVBTdGF0ZSogc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGNhc2Vf
bmFtZSwgY29uc3QgY2hhciogdGVzdF9uYW1lcykgewotICAgIHN0ZDo6c3RyaW5nIHRlc3RfbmFt
ZSA9IFN0cmlwVHJhaWxpbmdTcGFjZXMoCi0gICAgICAgIEdldFByZWZpeFVudGlsQ29tbWEodGVz
dF9uYW1lcykpOwotICAgIGlmICghc3RhdGUtPlRlc3RFeGlzdHModGVzdF9uYW1lKSkgewotICAg
ICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZ2V0IGNvZGUgbG9jYXRpb24gZm9yIHRlc3Qg
JXMuJXMgYXQgJXMuIiwKLSAgICAgICAgICAgICAgY2FzZV9uYW1lLCB0ZXN0X25hbWUuY19zdHIo
KSwKLSAgICAgICAgICAgICAgRm9ybWF0RmlsZUxvY2F0aW9uKGNvZGVfbG9jYXRpb24uZmlsZS5j
X3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9sb2NhdGlvbi5s
aW5lKS5jX3N0cigpKTsKLSAgICAgIGZmbHVzaChzdGRlcnIpOwotICAgICAgcG9zaXg6OkFib3J0
KCk7Ci0gICAgfQotICAgIGNvbnN0IENvZGVMb2NhdGlvbiYgdGVzdF9sb2NhdGlvbiA9IHN0YXRl
LT5HZXRDb2RlTG9jYXRpb24odGVzdF9uYW1lKTsKLQotICAgIHR5cGVkZWYgdHlwZW5hbWUgVGVz
dHM6OkhlYWQgSGVhZDsKLQotICAgIC8vIEZpcnN0LCByZWdpc3RlciB0aGUgZmlyc3QgdGVzdCBp
biAnVGVzdCcgZm9yIGVhY2ggdHlwZSBpbiAnVHlwZXMnLgotICAgIFR5cGVQYXJhbWV0ZXJpemVk
VGVzdDxGaXh0dXJlLCBIZWFkLCBUeXBlcz46OlJlZ2lzdGVyKAotICAgICAgICBwcmVmaXgsIHRl
c3RfbG9jYXRpb24sIGNhc2VfbmFtZSwgdGVzdF9uYW1lcywgMCk7Ci0KLSAgICAvLyBOZXh0LCBy
ZWN1cnNlcyAoYXQgY29tcGlsZSB0aW1lKSB3aXRoIHRoZSB0YWlsIG9mIHRoZSB0ZXN0IGxpc3Qu
Ci0gICAgcmV0dXJuIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgdHlwZW5hbWUg
VGVzdHM6OlRhaWwsIFR5cGVzPgotICAgICAgICA6OlJlZ2lzdGVyKHByZWZpeCwgY29kZV9sb2Nh
dGlvbiwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgY2FzZV9uYW1lLCBTa2lwQ29tbWEodGVz
dF9uYW1lcykpOwotICB9Ci19OwotCi0vLyBUaGUgYmFzZSBjYXNlIGZvciB0aGUgY29tcGlsZSB0
aW1lIHJlY3Vyc2lvbi4KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gRml4dHVyZSwgdHlwZW5h
bWUgVHlwZXM+Ci1jbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlPEZpeHR1cmUsIFRlbXBs
YXRlczAsIFR5cGVzPiB7Ci0gcHVibGljOgotICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBj
aGFyKiAvKnByZWZpeCovLCBDb2RlTG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFR5cGVkVGVzdENhc2VQU3RhdGUqIC8qc3RhdGUqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogLypjYXNlX25hbWUqLywgY29uc3QgY2hhciogLyp0ZXN0X25hbWVzKi8p
IHsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfTsKLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQ
RURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLS8vIFJldHVybnMgdGhlIGN1cnJl
bnQgT1Mgc3RhY2sgdHJhY2UgYXMgYW4gc3RkOjpzdHJpbmcuCi0vLwotLy8gVGhlIG1heGltdW0g
bnVtYmVyIG9mIHN0YWNrIGZyYW1lcyB0byBiZSBpbmNsdWRlZCBpcyBzcGVjaWZpZWQgYnkKLS8v
IHRoZSBndGVzdF9zdGFja190cmFjZV9kZXB0aCBmbGFnLiAgVGhlIHNraXBfY291bnQgcGFyYW1l
dGVyCi0vLyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiB0b3AgZnJhbWVzIHRvIGJlIHNraXBwZWQs
IHdoaWNoIGRvZXNuJ3QKLS8vIGNvdW50IGFnYWluc3QgdGhlIG51bWJlciBvZiBmcmFtZXMgdG8g
YmUgaW5jbHVkZWQuCi0vLwotLy8gRm9yIGV4YW1wbGUsIGlmIEZvbygpIGNhbGxzIEJhcigpLCB3
aGljaCBpbiB0dXJuIGNhbGxzCi0vLyBHZXRDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9wKC4u
LiwgMSksIEZvbygpIHdpbGwgYmUgaW5jbHVkZWQgaW4KLS8vIHRoZSB0cmFjZSBidXQgQmFyKCkg
YW5kIEdldEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3AoKSB3b24ndC4KLUdURVNUX0FQSV8g
c3RkOjpzdHJpbmcgR2V0Q3VycmVudE9zU3RhY2tUcmFjZUV4Y2VwdFRvcCgKLSAgICBVbml0VGVz
dCogdW5pdF90ZXN0LCBpbnQgc2tpcF9jb3VudCk7Ci0KLS8vIEhlbHBlcnMgZm9yIHN1cHByZXNz
aW5nIHdhcm5pbmdzIG9uIHVucmVhY2hhYmxlIGNvZGUgb3IgY29uc3RhbnQKLS8vIGNvbmRpdGlv
bi4KLQotLy8gQWx3YXlzIHJldHVybnMgdHJ1ZS4KLUdURVNUX0FQSV8gYm9vbCBBbHdheXNUcnVl
KCk7Ci0KLS8vIEFsd2F5cyByZXR1cm5zIGZhbHNlLgotaW5saW5lIGJvb2wgQWx3YXlzRmFsc2Uo
KSB7IHJldHVybiAhQWx3YXlzVHJ1ZSgpOyB9Ci0KLS8vIEhlbHBlciBmb3Igc3VwcHJlc3Npbmcg
ZmFsc2Ugd2FybmluZyBmcm9tIENsYW5nIG9uIGEgY29uc3QgY2hhcioKLS8vIHZhcmlhYmxlIGRl
Y2xhcmVkIGluIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBhbHdheXMgYmVpbmcgTlVMTCBpbgot
Ly8gdGhlIGVsc2UgYnJhbmNoLgotc3RydWN0IEdURVNUX0FQSV8gQ29uc3RDaGFyUHRyIHsKLSAg
Q29uc3RDaGFyUHRyKGNvbnN0IGNoYXIqIHN0cikgOiB2YWx1ZShzdHIpIHt9Ci0gIG9wZXJhdG9y
IGJvb2woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gIGNvbnN0IGNoYXIqIHZhbHVlOwotfTsK
LQotLy8gQSBzaW1wbGUgTGluZWFyIENvbmdydWVudGlhbCBHZW5lcmF0b3IgZm9yIGdlbmVyYXRp
bmcgcmFuZG9tCi0vLyBudW1iZXJzIHdpdGggYSB1bmlmb3JtIGRpc3RyaWJ1dGlvbi4gIFVubGlr
ZSByYW5kKCkgYW5kIHNyYW5kKCksIGl0Ci0vLyBkb2Vzbid0IHVzZSBnbG9iYWwgc3RhdGUgKGFu
ZCB0aGVyZWZvcmUgY2FuJ3QgaW50ZXJmZXJlIHdpdGggdXNlcgotLy8gY29kZSkuICBVbmxpa2Ug
cmFuZF9yKCksIGl0J3MgcG9ydGFibGUuICBBbiBMQ0cgaXNuJ3QgdmVyeSByYW5kb20sCi0vLyBi
dXQgaXQncyBnb29kIGVub3VnaCBmb3Igb3VyIHB1cnBvc2VzLgotY2xhc3MgR1RFU1RfQVBJXyBS
YW5kb20gewotIHB1YmxpYzoKLSAgc3RhdGljIGNvbnN0IFVJbnQzMiBrTWF4UmFuZ2UgPSAxdSA8
PCAzMTsKLQotICBleHBsaWNpdCBSYW5kb20oVUludDMyIHNlZWQpIDogc3RhdGVfKHNlZWQpIHt9
Ci0KLSAgdm9pZCBSZXNlZWQoVUludDMyIHNlZWQpIHsgc3RhdGVfID0gc2VlZDsgfQotCi0gIC8v
IEdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgZnJvbSBbMCwgcmFuZ2UpLiAgQ3Jhc2hlcyBpZiAn
cmFuZ2UnIGlzCi0gIC8vIDAgb3IgZ3JlYXRlciB0aGFuIGtNYXhSYW5nZS4KLSAgVUludDMyIEdl
bmVyYXRlKFVJbnQzMiByYW5nZSk7Ci0KLSBwcml2YXRlOgotICBVSW50MzIgc3RhdGVfOwotICBH
VEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFJhbmRvbSk7Ci19OwotCi0vLyBEZWZpbmlu
ZyBhIHZhcmlhYmxlIG9mIHR5cGUgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8VDEsIFQyPiB3aWxs
IGNhdXNlIGEKLS8vIGNvbXBpbGVyIGVycm9yIGlmZiBUMSBhbmQgVDIgYXJlIGRpZmZlcmVudCB0
eXBlcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgQ29tcGls
ZUFzc2VydFR5cGVzRXF1YWw7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IENvbXBp
bGVBc3NlcnRUeXBlc0VxdWFsPFQsIFQ+IHsKLX07Ci0KLS8vIFJlbW92ZXMgdGhlIHJlZmVyZW5j
ZSBmcm9tIGEgdHlwZSBpZiBpdCBpcyBhIHJlZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3aXNlIGxl
YXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFzCi0vLyB0cjE6OnJlbW92ZV9y
ZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotc3RydWN0IFJlbW92ZVJlZmVyZW5jZSB7IHR5cGVkZWYgVCB0eXBlOyB9OyAg
Ly8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBSZW1vdmVSZWZlcmVuY2U8
VCY+IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVy
IGFyb3VuZCBSZW1vdmVSZWZlcmVuY2UgdGhhdCB3b3JrcyB3aGVuIHRoZSBhcmd1bWVudAotLy8g
VCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0jZGVmaW5lIEdURVNUX1JFTU9WRV9S
RUZFUkVOQ0VfKFQpIFwKLSAgICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVS
ZWZlcmVuY2U8VD46OnR5cGUKLQotLy8gUmVtb3ZlcyBjb25zdCBmcm9tIGEgdHlwZSBpZiBpdCBp
cyBhIGNvbnN0IHR5cGUsIG90aGVyd2lzZSBsZWF2ZXMKLS8vIGl0IHVuY2hhbmdlZC4gIFRoaXMg
aXMgdGhlIHNhbWUgYXMgdHIxOjpyZW1vdmVfY29uc3QsIHdoaWNoIGlzIG5vdAotLy8gd2lkZWx5
IGF2YWlsYWJsZSB5ZXQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBSZW1vdmVDb25z
dCB7IHR5cGVkZWYgVCB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
LXN0cnVjdCBSZW1vdmVDb25zdDxjb25zdCBUPiB7IHR5cGVkZWYgVCB0eXBlOyB9OyAgLy8gTk9M
SU5UCi0KLS8vIE1TVkMgOC4wLCBTdW4gQysrLCBhbmQgSUJNIFhMIEMrKyBoYXZlIGEgYnVnIHdo
aWNoIGNhdXNlcyB0aGUgYWJvdmUKLS8vIGRlZmluaXRpb24gdG8gZmFpbCB0byByZW1vdmUgdGhl
IGNvbnN0IGluICdjb25zdCBpbnRbM10nIGFuZCAnY29uc3QKLS8vIGNoYXJbM11bNF0nLiAgVGhl
IGZvbGxvd2luZyBzcGVjaWFsaXphdGlvbiB3b3JrcyBhcm91bmQgdGhlIGJ1Zy4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLXN0cnVjdCBSZW1vdmVDb25zdDxjb25zdCBUW05dPiB7
Ci0gIHR5cGVkZWYgdHlwZW5hbWUgUmVtb3ZlQ29uc3Q8VD46OnR5cGUgdHlwZVtOXTsKLX07Ci0K
LSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE0MDAKLS8vIFRoaXMgaXMgdGhl
IG9ubHkgc3BlY2lhbGl6YXRpb24gdGhhdCBhbGxvd3MgVkMrKyA3LjEgdG8gcmVtb3ZlIGNvbnN0
IGluCi0vLyAnY29uc3QgaW50WzNdIGFuZCAnY29uc3QgaW50WzNdWzRdJy4gIEhvd2V2ZXIsIGl0
IGNhdXNlcyB0cm91YmxlIHdpdGggR0NDCi0vLyBhbmQgdGh1cyBuZWVkcyB0byBiZSBjb25kaXRp
b25hbGx5IGNvbXBpbGVkLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotc3RydWN0
IFJlbW92ZUNvbnN0PFRbTl0+IHsKLSAgdHlwZWRlZiB0eXBlbmFtZSBSZW1vdmVDb25zdDxUPjo6
dHlwZSB0eXBlW05dOwotfTsKLSNlbmRpZgotCi0vLyBBIGhhbmR5IHdyYXBwZXIgYXJvdW5kIFJl
bW92ZUNvbnN0IHRoYXQgd29ya3Mgd2hlbiB0aGUgYXJndW1lbnQKLS8vIFQgZGVwZW5kcyBvbiB0
ZW1wbGF0ZSBwYXJhbWV0ZXJzLgotI2RlZmluZSBHVEVTVF9SRU1PVkVfQ09OU1RfKFQpIFwKLSAg
ICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVDb25zdDxUPjo6dHlwZQotCi0v
LyBUdXJucyBjb25zdCBVJiwgVSYsIGNvbnN0IFUsIGFuZCBVIGFsbCBpbnRvIFUuCi0jZGVmaW5l
IEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUKSBcCi0gICAgR1RFU1RfUkVNT1ZF
X0NPTlNUXyhHVEVTVF9SRU1PVkVfUkVGRVJFTkNFXyhUKSkKLQotLy8gQWRkcyByZWZlcmVuY2Ug
dG8gYSB0eXBlIGlmIGl0IGlzIG5vdCBhIHJlZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3aXNlIGxl
YXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFzCi0vLyB0cjE6OmFkZF9yZWZl
cmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotc3RydWN0IEFkZFJlZmVyZW5jZSB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5P
TElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQWRkUmVmZXJlbmNlPFQmPiB7IHR5
cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhhbmR5IHdyYXBwZXIgYXJvdW5k
IEFkZFJlZmVyZW5jZSB0aGF0IHdvcmtzIHdoZW4gdGhlIGFyZ3VtZW50IFQKLS8vIGRlcGVuZHMg
b24gdGVtcGxhdGUgcGFyYW1ldGVycy4KLSNkZWZpbmUgR1RFU1RfQUREX1JFRkVSRU5DRV8oVCkg
XAotICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkFkZFJlZmVyZW5jZTxUPjo6dHlw
ZQotCi0vLyBBZGRzIGEgcmVmZXJlbmNlIHRvIGNvbnN0IG9uIHRvcCBvZiBUIGFzIG5lY2Vzc2Fy
eS4gIEZvciBleGFtcGxlLAotLy8gaXQgdHJhbnNmb3JtcwotLy8KLS8vICAgY2hhciAgICAgICAg
ID09PiBjb25zdCBjaGFyJgotLy8gICBjb25zdCBjaGFyICAgPT0+IGNvbnN0IGNoYXImCi0vLyAg
IGNoYXImICAgICAgICA9PT4gY29uc3QgY2hhciYKLS8vICAgY29uc3QgY2hhciYgID09PiBjb25z
dCBjaGFyJgotLy8KLS8vIFRoZSBhcmd1bWVudCBUIG11c3QgZGVwZW5kIG9uIHNvbWUgdGVtcGxh
dGUgcGFyYW1ldGVycy4KLSNkZWZpbmUgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUKSBcCi0g
ICAgR1RFU1RfQUREX1JFRkVSRU5DRV8oY29uc3QgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV8oVCkp
Ci0KLS8vIEltcGxpY2l0bHlDb252ZXJ0aWJsZTxGcm9tLCBUbz46OnZhbHVlIGlzIGEgY29tcGls
ZS10aW1lIGJvb2wKLS8vIGNvbnN0YW50IHRoYXQncyB0cnVlIGlmZiB0eXBlIEZyb20gY2FuIGJl
IGltcGxpY2l0bHkgY29udmVydGVkIHRvCi0vLyB0eXBlIFRvLgotdGVtcGxhdGUgPHR5cGVuYW1l
IEZyb20sIHR5cGVuYW1lIFRvPgotY2xhc3MgSW1wbGljaXRseUNvbnZlcnRpYmxlIHsKLSBwcml2
YXRlOgotICAvLyBXZSBuZWVkIHRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBvbmx5IGZv
ciB0aGVpciB0eXBlcy4KLSAgLy8gVGhleSBoYXZlIG5vIGltcGxlbWVudGF0aW9ucy4KLQotICAv
LyBNYWtlRnJvbSgpIGlzIGFuIGV4cHJlc3Npb24gd2hvc2UgdHlwZSBpcyBGcm9tLiAgV2UgY2Fu
bm90IHNpbXBseQotICAvLyB1c2UgRnJvbSgpLCBhcyB0aGUgdHlwZSBGcm9tIG1heSBub3QgaGF2
ZSBhIHB1YmxpYyBkZWZhdWx0Ci0gIC8vIGNvbnN0cnVjdG9yLgotICBzdGF0aWMgdHlwZW5hbWUg
QWRkUmVmZXJlbmNlPEZyb20+Ojp0eXBlIE1ha2VGcm9tKCk7Ci0KLSAgLy8gVGhlc2UgdHdvIGZ1
bmN0aW9ucyBhcmUgb3ZlcmxvYWRlZC4gIEdpdmVuIGFuIGV4cHJlc3Npb24KLSAgLy8gSGVscGVy
KHgpLCB0aGUgY29tcGlsZXIgd2lsbCBwaWNrIHRoZSBmaXJzdCB2ZXJzaW9uIGlmIHggY2FuIGJl
Ci0gIC8vIGltcGxpY2l0bHkgY29udmVydGVkIHRvIHR5cGUgVG87IG90aGVyd2lzZSBpdCB3aWxs
IHBpY2sgdGhlCi0gIC8vIHNlY29uZCB2ZXJzaW9uLgotICAvLwotICAvLyBUaGUgZmlyc3QgdmVy
c2lvbiByZXR1cm5zIGEgdmFsdWUgb2Ygc2l6ZSAxLCBhbmQgdGhlIHNlY29uZAotICAvLyB2ZXJz
aW9uIHJldHVybnMgYSB2YWx1ZSBvZiBzaXplIDIuICBUaGVyZWZvcmUsIGJ5IGNoZWNraW5nIHRo
ZQotICAvLyBzaXplIG9mIEhlbHBlcih4KSwgd2hpY2ggY2FuIGJlIGRvbmUgYXQgY29tcGlsZSB0
aW1lLCB3ZSBjYW4gdGVsbAotICAvLyB3aGljaCB2ZXJzaW9uIG9mIEhlbHBlcigpIGlzIHVzZWQs
IGFuZCBoZW5jZSB3aGV0aGVyIHggY2FuIGJlCi0gIC8vIGltcGxpY2l0bHkgY29udmVydGVkIHRv
IHR5cGUgVG8uCi0gIHN0YXRpYyBjaGFyIEhlbHBlcihUbyk7Ci0gIHN0YXRpYyBjaGFyICgmSGVs
cGVyKC4uLikpWzJdOyAgLy8gTk9MSU5UCi0KLSAgLy8gV2UgaGF2ZSB0byBwdXQgdGhlICdwdWJs
aWMnIHNlY3Rpb24gYWZ0ZXIgdGhlICdwcml2YXRlJyBzZWN0aW9uLAotICAvLyBvciBNU1ZDIHJl
ZnVzZXMgdG8gY29tcGlsZSB0aGUgY29kZS4KLSBwdWJsaWM6Ci0jaWYgZGVmaW5lZChfX0JPUkxB
TkRDX18pCi0gIC8vIEMrK0J1aWxkZXIgY2Fubm90IHVzZSBtZW1iZXIgb3ZlcmxvYWQgcmVzb2x1
dGlvbiBkdXJpbmcgdGVtcGxhdGUKLSAgLy8gaW5zdGFudGlhdGlvbi4gIFRoZSBzaW1wbGVzdCB3
b3JrYXJvdW5kIGlzIHRvIHVzZSBpdHMgQysrMHggdHlwZSB0cmFpdHMKLSAgLy8gZnVuY3Rpb25z
IChDKytCdWlsZGVyIDIwMDkgYW5kIGFib3ZlIG9ubHkpLgotICBzdGF0aWMgY29uc3QgYm9vbCB2
YWx1ZSA9IF9faXNfY29udmVydGlibGUoRnJvbSwgVG8pOwotI2Vsc2UKLSAgLy8gTVNWQyB3YXJu
cyBhYm91dCBpbXBsaWNpdGx5IGNvbnZlcnRpbmcgZnJvbSBkb3VibGUgdG8gaW50IGZvcgotICAv
LyBwb3NzaWJsZSBsb3NzIG9mIGRhdGEsIHNvIHdlIG5lZWQgdG8gdGVtcG9yYXJpbHkgZGlzYWJs
ZSB0aGUKLSAgLy8gd2FybmluZy4KLSAgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8o
NDI0NCkKLSAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPQotICAgICAgc2l6ZW9mKEhlbHBlcihJ
bXBsaWNpdGx5Q29udmVydGlibGU6Ok1ha2VGcm9tKCkpKSA9PSAxOwotICBHVEVTVF9ESVNBQkxF
X01TQ19XQVJOSU5HU19QT1BfKCkKLSNlbmRpZiAgLy8gX19CT1JMQU5EQ19fCi19OwotdGVtcGxh
dGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgotY29uc3QgYm9vbCBJbXBsaWNpdGx5Q29u
dmVydGlibGU8RnJvbSwgVG8+Ojp2YWx1ZTsKLQotLy8gSXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2
YWx1ZSBpcyBhIGNvbXBpbGUtdGltZSBib29sIGNvbnN0YW50IHRoYXQncwotLy8gdHJ1ZSBpZmYg
VCBpcyB0eXBlIFByb3RvY29sTWVzc2FnZSwgcHJvdG8yOjpNZXNzYWdlLCBvciBhIHN1YmNsYXNz
Ci0vLyBvZiB0aG9zZS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IElzQVByb3RvY29s
TWVzc2FnZQotICAgIDogcHVibGljIGJvb2xfY29uc3RhbnQ8Ci0gIEltcGxpY2l0bHlDb252ZXJ0
aWJsZTxjb25zdCBUKiwgY29uc3QgOjpQcm90b2NvbE1lc3NhZ2UqPjo6dmFsdWUgfHwKLSAgSW1w
bGljaXRseUNvbnZlcnRpYmxlPGNvbnN0IFQqLCBjb25zdCA6OnByb3RvMjo6TWVzc2FnZSo+Ojp2
YWx1ZT4gewotfTsKLQotLy8gV2hlbiB0aGUgY29tcGlsZXIgc2VlcyBleHByZXNzaW9uIElzQ29u
dGFpbmVyVGVzdDxDPigwKSwgaWYgQyBpcyBhbgotLy8gU1RMLXN0eWxlIGNvbnRhaW5lciBjbGFz
cywgdGhlIGZpcnN0IG92ZXJsb2FkIG9mIElzQ29udGFpbmVyVGVzdAotLy8gd2lsbCBiZSB2aWFi
bGUgKHNpbmNlIGJvdGggQzo6aXRlcmF0b3IqIGFuZCBDOjpjb25zdF9pdGVyYXRvciogYXJlCi0v
LyB2YWxpZCB0eXBlcyBhbmQgTlVMTCBjYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gdGhl
bSkuICBJdCB3aWxsCi0vLyBiZSBwaWNrZWQgb3ZlciB0aGUgc2Vjb25kIG92ZXJsb2FkIGFzICdp
bnQnIGlzIGEgcGVyZmVjdCBtYXRjaCBmb3IKLS8vIHRoZSB0eXBlIG9mIGFyZ3VtZW50IDAuICBJ
ZiBDOjppdGVyYXRvciBvciBDOjpjb25zdF9pdGVyYXRvciBpcyBub3QKLS8vIGEgdmFsaWQgdHlw
ZSwgdGhlIGZpcnN0IG92ZXJsb2FkIGlzIG5vdCB2aWFibGUsIGFuZCB0aGUgc2Vjb25kCi0vLyBv
dmVybG9hZCB3aWxsIGJlIHBpY2tlZC4gIFRoZXJlZm9yZSwgd2UgY2FuIGRldGVybWluZSB3aGV0
aGVyIEMgaXMKLS8vIGEgY29udGFpbmVyIGNsYXNzIGJ5IGNoZWNraW5nIHRoZSB0eXBlIG9mIElz
Q29udGFpbmVyVGVzdDxDPigwKS4KLS8vIFRoZSB2YWx1ZSBvZiB0aGUgZXhwcmVzc2lvbiBpcyBp
bnNpZ25pZmljYW50LgotLy8KLS8vIE5vdGUgdGhhdCB3ZSBsb29rIGZvciBib3RoIEM6Oml0ZXJh
dG9yIGFuZCBDOjpjb25zdF9pdGVyYXRvci4gIFRoZQotLy8gcmVhc29uIGlzIHRoYXQgQysrIGlu
amVjdHMgdGhlIG5hbWUgb2YgYSBjbGFzcyBhcyBhIG1lbWJlciBvZiB0aGUKLS8vIGNsYXNzIGl0
c2VsZiAoZS5nLiB5b3UgY2FuIHJlZmVyIHRvIGNsYXNzIGl0ZXJhdG9yIGFzIGVpdGhlcgotLy8g
J2l0ZXJhdG9yJyBvciAnaXRlcmF0b3I6Oml0ZXJhdG9yJykuICBJZiB3ZSBsb29rIGZvciBDOjpp
dGVyYXRvcgotLy8gb25seSwgZm9yIGV4YW1wbGUsIHdlIHdvdWxkIG1pc3Rha2VubHkgdGhpbmsg
dGhhdCBhIGNsYXNzIG5hbWVkCi0vLyBpdGVyYXRvciBpcyBhbiBTVEwgY29udGFpbmVyLgotLy8K
LS8vIEFsc28gbm90ZSB0aGF0IHRoZSBzaW1wbGVyIGFwcHJvYWNoIG9mIG92ZXJsb2FkaW5nCi0v
LyBJc0NvbnRhaW5lclRlc3QodHlwZW5hbWUgQzo6Y29uc3RfaXRlcmF0b3IqKSBhbmQKLS8vIElz
Q29udGFpbmVyVGVzdCguLi4pIGRvZXNuJ3Qgd29yayB3aXRoIFZpc3VhbCBBZ2UgQysrIGFuZCBT
dW4gQysrLgotdHlwZWRlZiBpbnQgSXNDb250YWluZXI7Ci10ZW1wbGF0ZSA8Y2xhc3MgQz4KLUlz
Q29udGFpbmVyIElzQ29udGFpbmVyVGVzdChpbnQgLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZW5hbWUgQzo6aXRlcmF0b3IqIC8qIGl0ICovID0gTlVMTCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciogLyog
Y29uc3RfaXQgKi8gPSBOVUxMKSB7Ci0gIHJldHVybiAwOwotfQotCi10eXBlZGVmIGNoYXIgSXNO
b3RDb250YWluZXI7Ci10ZW1wbGF0ZSA8Y2xhc3MgQz4KLUlzTm90Q29udGFpbmVyIElzQ29udGFp
bmVyVGVzdChsb25nIC8qIGR1bW15ICovKSB7IHJldHVybiAnXDAnOyB9Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBDLCBib29sID0gCi0gIHNpemVvZihJc0NvbnRhaW5lclRlc3Q8Qz4oMCkpID09IHNp
emVvZihJc0NvbnRhaW5lcikKLT4KLXN0cnVjdCBJc1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw7Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBDPgotc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxD
LCBmYWxzZT4gOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIEM+
Ci1zdHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsPEMsIHRydWU+IHsKLSAgdHlwZWRlZgot
ICAgIHR5cGVuYW1lIEl0ZXJhdG9yVHJhaXRzPHR5cGVuYW1lIEM6Oml0ZXJhdG9yPjo6dmFsdWVf
dHlwZQotICB2YWx1ZV90eXBlOwotICB0eXBlZGVmIGlzX3NhbWU8dmFsdWVfdHlwZSwgQz4gdHlw
ZTsKLX07Ci0KLS8vIElzUmVjdXJzaXZlQ29udGFpbmVyPFR5cGU+IGlzIGEgdW5hcnkgY29tcGls
ZS10aW1lIHByZWRpY2F0ZSB0aGF0Ci0vLyBldmFsdWF0ZXMgd2hldGhlciBDIGlzIGEgcmVjdXJz
aXZlIGNvbnRhaW5lciB0eXBlLiBBIHJlY3Vyc2l2ZSBjb250YWluZXIgCi0vLyB0eXBlIGlzIGEg
Y29udGFpbmVyIHR5cGUgd2hvc2UgdmFsdWVfdHlwZSBpcyBlcXVhbCB0byB0aGUgY29udGFpbmVy
IHR5cGUKLS8vIGl0c2VsZi4gQW4gZXhhbXBsZSBmb3IgYSByZWN1cnNpdmUgY29udGFpbmVyIHR5
cGUgaXMgCi0vLyBib29zdDo6ZmlsZXN5c3RlbTo6cGF0aCwgd2hvc2UgaXRlcmF0b3IgaGFzIGEg
dmFsdWVfdHlwZSB0aGF0IGlzIGVxdWFsIHRvIAotLy8gYm9vc3Q6OmZpbGVzeXN0ZW06OnBhdGgu
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBDPgotc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVyIDogcHVi
bGljIElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxDPjo6dHlwZSB7fTsKLQotLy8gRW5hYmxlSWY8
Y29uZGl0aW9uPjo6dHlwZSBpcyB2b2lkIHdoZW4gJ0NvbmQnIGlzIHRydWUsIGFuZAotLy8gdW5k
ZWZpbmVkIHdoZW4gJ0NvbmQnIGlzIGZhbHNlLiAgVG8gdXNlIFNGSU5BRSB0byBtYWtlIGEgZnVu
Y3Rpb24KLS8vIG92ZXJsb2FkIG9ubHkgYXBwbHkgd2hlbiBhIHBhcnRpY3VsYXIgZXhwcmVzc2lv
biBpcyB0cnVlLCBhZGQKLS8vICJ0eXBlbmFtZSBFbmFibGVJZjxleHByZXNzaW9uPjo6dHlwZSog
PSAwIiBhcyB0aGUgbGFzdCBwYXJhbWV0ZXIuCi10ZW1wbGF0ZTxib29sPiBzdHJ1Y3QgRW5hYmxl
SWY7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBFbmFibGVJZjx0cnVlPiB7IHR5cGVkZWYgdm9pZCB0eXBl
OyB9OyAgLy8gTk9MSU5UCi0KLS8vIFV0aWxpdGllcyBmb3IgbmF0aXZlIGFycmF5cy4KLQotLy8g
QXJyYXlFcSgpIGNvbXBhcmVzIHR3byBrLWRpbWVuc2lvbmFsIG5hdGl2ZSBhcnJheXMgdXNpbmcg
dGhlCi0vLyBlbGVtZW50cycgb3BlcmF0b3I9PSwgd2hlcmUgayBjYW4gYmUgYW55IGludGVnZXIg
Pj0gMC4gIFdoZW4gayBpcwotLy8gMCwgQXJyYXlFcSgpIGRlZ2VuZXJhdGVzIGludG8gY29tcGFy
aW5nIGEgc2luZ2xlIHBhaXIgb2YgdmFsdWVzLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4KLWJvb2wgQXJyYXlFcShjb25zdCBUKiBsaHMsIHNpemVfdCBzaXplLCBjb25zdCBV
KiByaHMpOwotCi0vLyBUaGlzIGdlbmVyaWMgdmVyc2lvbiBpcyB1c2VkIHdoZW4gayBpcyAwLgot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1pbmxpbmUgYm9vbCBBcnJheUVxKGNv
bnN0IFQmIGxocywgY29uc3QgVSYgcmhzKSB7IHJldHVybiBsaHMgPT0gcmhzOyB9Ci0KLS8vIFRo
aXMgb3ZlcmxvYWQgaXMgdXNlZCB3aGVuIGsgPj0gMS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVLCBzaXplX3QgTj4KLWlubGluZSBib29sIEFycmF5RXEoY29uc3QgVCgmbGhzKVtO
XSwgY29uc3QgVSgmcmhzKVtOXSkgewotICByZXR1cm4gaW50ZXJuYWw6OkFycmF5RXEobGhzLCBO
LCByaHMpOwotfQotCi0vLyBUaGlzIGhlbHBlciByZWR1Y2VzIGNvZGUgYmxvYXQuICBJZiB3ZSBp
bnN0ZWFkIHB1dCBpdHMgbG9naWMgaW5zaWRlCi0vLyB0aGUgcHJldmlvdXMgQXJyYXlFcSgpIGZ1
bmN0aW9uLCBhcnJheXMgd2l0aCBkaWZmZXJlbnQgc2l6ZXMgd291bGQKLS8vIGxlYWQgdG8gZGlm
ZmVyZW50IGNvcGllcyBvZiB0aGUgdGVtcGxhdGUgY29kZS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPgotYm9vbCBBcnJheUVxKGNvbnN0IFQqIGxocywgc2l6ZV90IHNpemUsIGNv
bnN0IFUqIHJocykgewotICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSBzaXplOyBpKyspIHsKLSAg
ICBpZiAoIWludGVybmFsOjpBcnJheUVxKGxoc1tpXSwgcmhzW2ldKSkKLSAgICAgIHJldHVybiBm
YWxzZTsKLSAgfQotICByZXR1cm4gdHJ1ZTsKLX0KLQotLy8gRmluZHMgdGhlIGZpcnN0IGVsZW1l
bnQgaW4gdGhlIGl0ZXJhdG9yIHJhbmdlIFtiZWdpbiwgZW5kKSB0aGF0Ci0vLyBlcXVhbHMgZWxl
bS4gIEVsZW1lbnQgbWF5IGJlIGEgbmF0aXZlIGFycmF5IHR5cGUgaXRzZWxmLgotdGVtcGxhdGUg
PHR5cGVuYW1lIEl0ZXIsIHR5cGVuYW1lIEVsZW1lbnQ+Ci1JdGVyIEFycmF5QXdhcmVGaW5kKEl0
ZXIgYmVnaW4sIEl0ZXIgZW5kLCBjb25zdCBFbGVtZW50JiBlbGVtKSB7Ci0gIGZvciAoSXRlciBp
dCA9IGJlZ2luOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICBpZiAoaW50ZXJuYWw6OkFycmF5RXEo
Kml0LCBlbGVtKSkKLSAgICAgIHJldHVybiBpdDsKLSAgfQotICByZXR1cm4gZW5kOwotfQotCi0v
LyBDb3B5QXJyYXkoKSBjb3BpZXMgYSBrLWRpbWVuc2lvbmFsIG5hdGl2ZSBhcnJheSB1c2luZyB0
aGUgZWxlbWVudHMnCi0vLyBvcGVyYXRvcj0sIHdoZXJlIGsgY2FuIGJlIGFueSBpbnRlZ2VyID49
IDAuICBXaGVuIGsgaXMgMCwKLS8vIENvcHlBcnJheSgpIGRlZ2VuZXJhdGVzIGludG8gY29weWlu
ZyBhIHNpbmdsZSB2YWx1ZS4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci12
b2lkIENvcHlBcnJheShjb25zdCBUKiBmcm9tLCBzaXplX3Qgc2l6ZSwgVSogdG8pOwotCi0vLyBU
aGlzIGdlbmVyaWMgdmVyc2lvbiBpcyB1c2VkIHdoZW4gayBpcyAwLgotdGVtcGxhdGUgPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFU+Ci1pbmxpbmUgdm9pZCBDb3B5QXJyYXkoY29uc3QgVCYgZnJvbSwg
VSogdG8pIHsgKnRvID0gZnJvbTsgfQotCi0vLyBUaGlzIG92ZXJsb2FkIGlzIHVzZWQgd2hlbiBr
ID49IDEuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgc2l6ZV90IE4+Ci1pbmxp
bmUgdm9pZCBDb3B5QXJyYXkoY29uc3QgVCgmZnJvbSlbTl0sIFUoKnRvKVtOXSkgewotICBpbnRl
cm5hbDo6Q29weUFycmF5KGZyb20sIE4sICp0byk7Ci19Ci0KLS8vIFRoaXMgaGVscGVyIHJlZHVj
ZXMgY29kZSBibG9hdC4gIElmIHdlIGluc3RlYWQgcHV0IGl0cyBsb2dpYyBpbnNpZGUKLS8vIHRo
ZSBwcmV2aW91cyBDb3B5QXJyYXkoKSBmdW5jdGlvbiwgYXJyYXlzIHdpdGggZGlmZmVyZW50IHNp
emVzCi0vLyB3b3VsZCBsZWFkIHRvIGRpZmZlcmVudCBjb3BpZXMgb2YgdGhlIHRlbXBsYXRlIGNv
ZGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KLXZvaWQgQ29weUFycmF5KGNv
bnN0IFQqIGZyb20sIHNpemVfdCBzaXplLCBVKiB0bykgewotICBmb3IgKHNpemVfdCBpID0gMDsg
aSAhPSBzaXplOyBpKyspIHsKLSAgICBpbnRlcm5hbDo6Q29weUFycmF5KGZyb21baV0sIHRvICsg
aSk7Ci0gIH0KLX0KLQotLy8gVGhlIHJlbGF0aW9uIGJldHdlZW4gYW4gTmF0aXZlQXJyYXkgb2Jq
ZWN0IChzZWUgYmVsb3cpIGFuZCB0aGUKLS8vIG5hdGl2ZSBhcnJheSBpdCByZXByZXNlbnRzLgot
Ly8gV2UgdXNlIDIgZGlmZmVyZW50IHN0cnVjdHMgdG8gYWxsb3cgbm9uLWNvcHlhYmxlIHR5cGVz
IHRvIGJlIHVzZWQsIGFzIGxvbmcKLS8vIGFzIFJlbGF0aW9uVG9Tb3VyY2VSZWZlcmVuY2UoKSBp
cyBwYXNzZWQuCi1zdHJ1Y3QgUmVsYXRpb25Ub1NvdXJjZVJlZmVyZW5jZSB7fTsKLXN0cnVjdCBS
ZWxhdGlvblRvU291cmNlQ29weSB7fTsKLQotLy8gQWRhcHRzIGEgbmF0aXZlIGFycmF5IHRvIGEg
cmVhZC1vbmx5IFNUTC1zdHlsZSBjb250YWluZXIuICBJbnN0ZWFkCi0vLyBvZiB0aGUgY29tcGxl
dGUgU1RMIGNvbnRhaW5lciBjb25jZXB0LCB0aGlzIGFkYXB0b3Igb25seSBpbXBsZW1lbnRzCi0v
LyBtZW1iZXJzIHVzZWZ1bCBmb3IgR29vZ2xlIE1vY2sncyBjb250YWluZXIgbWF0Y2hlcnMuICBO
ZXcgbWVtYmVycwotLy8gc2hvdWxkIGJlIGFkZGVkIGFzIG5lZWRlZC4gIFRvIHNpbXBsaWZ5IHRo
ZSBpbXBsZW1lbnRhdGlvbiwgd2Ugb25seQotLy8gc3VwcG9ydCBFbGVtZW50IGJlaW5nIGEgcmF3
IHR5cGUgKGkuZS4gaGF2aW5nIG5vIHRvcC1sZXZlbCBjb25zdCBvcgotLy8gcmVmZXJlbmNlIG1v
ZGlmaWVyKS4gIEl0J3MgdGhlIGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIHNhdGlzZnkKLS8v
IHRoaXMgcmVxdWlyZW1lbnQuICBFbGVtZW50IGNhbiBiZSBhbiBhcnJheSB0eXBlIGl0c2VsZiAo
aGVuY2UKLS8vIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5cyBhcmUgc3VwcG9ydGVkKS4KLXRlbXBs
YXRlIDx0eXBlbmFtZSBFbGVtZW50PgotY2xhc3MgTmF0aXZlQXJyYXkgewotIHB1YmxpYzoKLSAg
Ly8gU1RMLXN0eWxlIGNvbnRhaW5lciB0eXBlZGVmcy4KLSAgdHlwZWRlZiBFbGVtZW50IHZhbHVl
X3R5cGU7Ci0gIHR5cGVkZWYgRWxlbWVudCogaXRlcmF0b3I7Ci0gIHR5cGVkZWYgY29uc3QgRWxl
bWVudCogY29uc3RfaXRlcmF0b3I7Ci0KLSAgLy8gQ29uc3RydWN0cyBmcm9tIGEgbmF0aXZlIGFy
cmF5LiBSZWZlcmVuY2VzIHRoZSBzb3VyY2UuCi0gIE5hdGl2ZUFycmF5KGNvbnN0IEVsZW1lbnQq
IGFycmF5LCBzaXplX3QgY291bnQsIFJlbGF0aW9uVG9Tb3VyY2VSZWZlcmVuY2UpIHsKLSAgICBJ
bml0UmVmKGFycmF5LCBjb3VudCk7Ci0gIH0KLQotICAvLyBDb25zdHJ1Y3RzIGZyb20gYSBuYXRp
dmUgYXJyYXkuIENvcGllcyB0aGUgc291cmNlLgotICBOYXRpdmVBcnJheShjb25zdCBFbGVtZW50
KiBhcnJheSwgc2l6ZV90IGNvdW50LCBSZWxhdGlvblRvU291cmNlQ29weSkgewotICAgIEluaXRD
b3B5KGFycmF5LCBjb3VudCk7Ci0gIH0KLQotICAvLyBDb3B5IGNvbnN0cnVjdG9yLgotICBOYXRp
dmVBcnJheShjb25zdCBOYXRpdmVBcnJheSYgcmhzKSB7Ci0gICAgKHRoaXMtPipyaHMuY2xvbmVf
KShyaHMuYXJyYXlfLCByaHMuc2l6ZV8pOwotICB9Ci0KLSAgfk5hdGl2ZUFycmF5KCkgewotICAg
IGlmIChjbG9uZV8gIT0gJk5hdGl2ZUFycmF5OjpJbml0UmVmKQotICAgICAgZGVsZXRlW10gYXJy
YXlfOwotICB9Ci0KLSAgLy8gU1RMLXN0eWxlIGNvbnRhaW5lciBtZXRob2RzLgotICBzaXplX3Qg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHNpemVfOyB9Ci0gIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkg
Y29uc3QgeyByZXR1cm4gYXJyYXlfOyB9Ci0gIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsg
cmV0dXJuIGFycmF5XyArIHNpemVfOyB9Ci0gIGJvb2wgb3BlcmF0b3I9PShjb25zdCBOYXRpdmVB
cnJheSYgcmhzKSBjb25zdCB7Ci0gICAgcmV0dXJuIHNpemUoKSA9PSByaHMuc2l6ZSgpICYmCi0g
ICAgICAgIEFycmF5RXEoYmVnaW4oKSwgc2l6ZSgpLCByaHMuYmVnaW4oKSk7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIGVudW0gewotICAgIGtDaGVja1R5cGVJc05vdENvbnN0T3JBUmVmZXJlbmNlID0g
U3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPAotICAgICAgICBFbGVtZW50LCBHVEVTVF9SRU1PVkVf
UkVGRVJFTkNFX0FORF9DT05TVF8oRWxlbWVudCk+Ojp2YWx1ZSwKLSAgfTsKLQotICAvLyBJbml0
aWFsaXplcyB0aGlzIG9iamVjdCB3aXRoIGEgY29weSBvZiB0aGUgaW5wdXQuCi0gIHZvaWQgSW5p
dENvcHkoY29uc3QgRWxlbWVudCogYXJyYXksIHNpemVfdCBhX3NpemUpIHsKLSAgICBFbGVtZW50
KiBjb25zdCBjb3B5ID0gbmV3IEVsZW1lbnRbYV9zaXplXTsKLSAgICBDb3B5QXJyYXkoYXJyYXks
IGFfc2l6ZSwgY29weSk7Ci0gICAgYXJyYXlfID0gY29weTsKLSAgICBzaXplXyA9IGFfc2l6ZTsK
LSAgICBjbG9uZV8gPSAmTmF0aXZlQXJyYXk6OkluaXRDb3B5OwotICB9Ci0KLSAgLy8gSW5pdGlh
bGl6ZXMgdGhpcyBvYmplY3Qgd2l0aCBhIHJlZmVyZW5jZSBvZiB0aGUgaW5wdXQuCi0gIHZvaWQg
SW5pdFJlZihjb25zdCBFbGVtZW50KiBhcnJheSwgc2l6ZV90IGFfc2l6ZSkgewotICAgIGFycmF5
XyA9IGFycmF5OwotICAgIHNpemVfID0gYV9zaXplOwotICAgIGNsb25lXyA9ICZOYXRpdmVBcnJh
eTo6SW5pdFJlZjsKLSAgfQotCi0gIGNvbnN0IEVsZW1lbnQqIGFycmF5XzsKLSAgc2l6ZV90IHNp
emVfOwotICB2b2lkIChOYXRpdmVBcnJheTo6KmNsb25lXykoY29uc3QgRWxlbWVudCosIHNpemVf
dCk7Ci0KLSAgR1RFU1RfRElTQUxMT1dfQVNTSUdOXyhOYXRpdmVBcnJheSk7Ci19OwotCi19ICAv
LyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0KLSNkZWZpbmUg
R1RFU1RfTUVTU0FHRV9BVF8oZmlsZSwgbGluZSwgbWVzc2FnZSwgcmVzdWx0X3R5cGUpIFwKLSAg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6QXNzZXJ0SGVscGVyKHJlc3VsdF90eXBlLCBmaWxlLCBsaW5l
LCBtZXNzYWdlKSBcCi0gICAgPSA6OnRlc3Rpbmc6Ok1lc3NhZ2UoKQotCi0jZGVmaW5lIEdURVNU
X01FU1NBR0VfKG1lc3NhZ2UsIHJlc3VsdF90eXBlKSBcCi0gIEdURVNUX01FU1NBR0VfQVRfKF9f
RklMRV9fLCBfX0xJTkVfXywgbWVzc2FnZSwgcmVzdWx0X3R5cGUpCi0KLSNkZWZpbmUgR1RFU1Rf
RkFUQUxfRkFJTFVSRV8obWVzc2FnZSkgXAotICByZXR1cm4gR1RFU1RfTUVTU0FHRV8obWVzc2Fn
ZSwgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSkKLQotI2RlZmluZSBH
VEVTVF9OT05GQVRBTF9GQUlMVVJFXyhtZXNzYWdlKSBcCi0gIEdURVNUX01FU1NBR0VfKG1lc3Nh
Z2UsIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ6OmtOb25GYXRhbEZhaWx1cmUpCi0KLSNkZWZp
bmUgR1RFU1RfU1VDQ0VTU18obWVzc2FnZSkgXAotICBHVEVTVF9NRVNTQUdFXyhtZXNzYWdlLCA6
OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcykKLQotLy8gU3VwcHJlc3NlcyBNU1ZD
IHdhcm5pbmdzIDQwNzIgKHVucmVhY2hhYmxlIGNvZGUpIGZvciB0aGUgY29kZSBmb2xsb3dpbmcK
LS8vIHN0YXRlbWVudCBpZiBpdCByZXR1cm5zIG9yIHRocm93cyAob3IgZG9lc24ndCByZXR1cm4g
b3IgdGhyb3cgaW4gc29tZQotLy8gc2l0dWF0aW9ucykuCi0jZGVmaW5lIEdURVNUX1NVUFBSRVNT
X1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KSBcCi0gIGlmICg6OnRl
c3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgc3RhdGVtZW50OyB9Ci0KLSNkZWZpbmUg
R1RFU1RfVEVTVF9USFJPV18oc3RhdGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24sIGZhaWwpIFwK
LSAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gXAotICBpZiAoOjp0ZXN0aW5nOjppbnRl
cm5hbDo6Q29uc3RDaGFyUHRyIGd0ZXN0X21zZyA9ICIiKSB7IFwKLSAgICBib29sIGd0ZXN0X2Nh
dWdodF9leHBlY3RlZCA9IGZhbHNlOyBcCi0gICAgdHJ5IHsgXAotICAgICAgR1RFU1RfU1VQUFJF
U1NfVU5SRUFDSEFCTEVfQ09ERV9XQVJOSU5HX0JFTE9XXyhzdGF0ZW1lbnQpOyBcCi0gICAgfSBc
Ci0gICAgY2F0Y2ggKGV4cGVjdGVkX2V4Y2VwdGlvbiBjb25zdCYpIHsgXAotICAgICAgZ3Rlc3Rf
Y2F1Z2h0X2V4cGVjdGVkID0gdHJ1ZTsgXAotICAgIH0gXAotICAgIGNhdGNoICguLi4pIHsgXAot
ICAgICAgZ3Rlc3RfbXNnLnZhbHVlID0gXAotICAgICAgICAgICJFeHBlY3RlZDogIiAjc3RhdGVt
ZW50ICIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0eXBlICIgXAotICAgICAgICAgICNleHBlY3Rl
ZF9leGNlcHRpb24gIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iOyBc
Ci0gICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdHRocm93Xywg
X19MSU5FX18pOyBcCi0gICAgfSBcCi0gICAgaWYgKCFndGVzdF9jYXVnaHRfZXhwZWN0ZWQpIHsg
XAotICAgICAgZ3Rlc3RfbXNnLnZhbHVlID0gXAotICAgICAgICAgICJFeHBlY3RlZDogIiAjc3Rh
dGVtZW50ICIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0eXBlICIgXAotICAgICAgICAgICNleHBl
Y3RlZF9leGNlcHRpb24gIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3Mgbm90aGluZy4iOyBcCi0gICAg
ICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdHRocm93XywgX19MSU5F
X18pOyBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0gICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVz
dF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk6IFwKLSAgICAgIGZhaWwoZ3Rlc3RfbXNnLnZh
bHVlKQotCi0jZGVmaW5lIEdURVNUX1RFU1RfTk9fVEhST1dfKHN0YXRlbWVudCwgZmFpbCkgXAot
ICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVy
bmFsOjpBbHdheXNUcnVlKCkpIHsgXAotICAgIHRyeSB7IFwKLSAgICAgIEdURVNUX1NVUFBSRVNT
X1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAotICAgIH0gXAot
ICAgIGNhdGNoICguLi4pIHsgXAotICAgICAgZ290byBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0
X2xhYmVsX3Rlc3Rub3Rocm93XywgX19MSU5FX18pOyBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0g
ICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0bm90aHJvd18sIF9fTElORV9f
KTogXAotICAgICAgZmFpbCgiRXhwZWN0ZWQ6ICIgI3N0YXRlbWVudCAiIGRvZXNuJ3QgdGhyb3cg
YW4gZXhjZXB0aW9uLlxuIiBcCi0gICAgICAgICAgICIgIEFjdHVhbDogaXQgdGhyb3dzLiIpCi0K
LSNkZWZpbmUgR1RFU1RfVEVTVF9BTllfVEhST1dfKHN0YXRlbWVudCwgZmFpbCkgXAotICBHVEVT
VF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpB
bHdheXNUcnVlKCkpIHsgXAotICAgIGJvb2wgZ3Rlc3RfY2F1Z2h0X2FueSA9IGZhbHNlOyBcCi0g
ICAgdHJ5IHsgXAotICAgICAgR1RFU1RfU1VQUFJFU1NfVU5SRUFDSEFCTEVfQ09ERV9XQVJOSU5H
X0JFTE9XXyhzdGF0ZW1lbnQpOyBcCi0gICAgfSBcCi0gICAgY2F0Y2ggKC4uLikgeyBcCi0gICAg
ICBndGVzdF9jYXVnaHRfYW55ID0gdHJ1ZTsgXAotICAgIH0gXAotICAgIGlmICghZ3Rlc3RfY2F1
Z2h0X2FueSkgeyBcCi0gICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxf
dGVzdGFueXRocm93XywgX19MSU5FX18pOyBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0gICAgR1RF
U1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0YW55dGhyb3dfLCBfX0xJTkVfXyk6IFwK
LSAgICAgIGZhaWwoIkV4cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9u
LlxuIiBcCi0gICAgICAgICAgICIgIEFjdHVhbDogaXQgZG9lc24ndC4iKQotCi0KLS8vIEltcGxl
bWVudHMgQm9vbGVhbiB0ZXN0IGFzc2VydGlvbnMgc3VjaCBhcyBFWFBFQ1RfVFJVRS4gZXhwcmVz
c2lvbiBjYW4gYmUKLS8vIGVpdGhlciBhIGJvb2xlYW4gZXhwcmVzc2lvbiBvciBhbiBBc3NlcnRp
b25SZXN1bHQuIHRleHQgaXMgYSB0ZXh0dWFsCi0vLyByZXByZXNlbmF0aW9uIG9mIGV4cHJlc3Np
b24gYXMgaXQgd2FzIHBhc3NlZCBpbnRvIHRoZSBFWFBFQ1RfVFJVRS4KLSNkZWZpbmUgR1RFU1Rf
VEVTVF9CT09MRUFOXyhleHByZXNzaW9uLCB0ZXh0LCBhY3R1YWwsIGV4cGVjdGVkLCBmYWlsKSBc
Ci0gIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NLRVJfIFwKLSAgaWYgKGNvbnN0IDo6dGVzdGlu
Zzo6QXNzZXJ0aW9uUmVzdWx0IGd0ZXN0X2FyXyA9IFwKLSAgICAgIDo6dGVzdGluZzo6QXNzZXJ0
aW9uUmVzdWx0KGV4cHJlc3Npb24pKSBcCi0gICAgOyBcCi0gIGVsc2UgXAotICAgIGZhaWwoOjp0
ZXN0aW5nOjppbnRlcm5hbDo6R2V0Qm9vbEFzc2VydGlvbkZhaWx1cmVNZXNzYWdlKFwKLSAgICAg
ICAgZ3Rlc3RfYXJfLCB0ZXh0LCAjYWN0dWFsLCAjZXhwZWN0ZWQpLmNfc3RyKCkpCi0KLSNkZWZp
bmUgR1RFU1RfVEVTVF9OT19GQVRBTF9GQUlMVVJFXyhzdGF0ZW1lbnQsIGZhaWwpIFwKLSAgR1RF
U1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gXAotICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6
QWx3YXlzVHJ1ZSgpKSB7IFwKLSAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpIYXNOZXdGYXRhbEZh
aWx1cmVIZWxwZXIgZ3Rlc3RfZmF0YWxfZmFpbHVyZV9jaGVja2VyOyBcCi0gICAgR1RFU1RfU1VQ
UFJFU1NfVU5SRUFDSEFCTEVfQ09ERV9XQVJOSU5HX0JFTE9XXyhzdGF0ZW1lbnQpOyBcCi0gICAg
aWYgKGd0ZXN0X2ZhdGFsX2ZhaWx1cmVfY2hlY2tlci5oYXNfbmV3X2ZhdGFsX2ZhaWx1cmUoKSkg
eyBcCi0gICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdG5vZmF0
YWxfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgfSBlbHNlIFwKLSAgICBHVEVTVF9DT05DQVRf
VE9LRU5fKGd0ZXN0X2xhYmVsX3Rlc3Rub2ZhdGFsXywgX19MSU5FX18pOiBcCi0gICAgICBmYWls
KCJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICIgZG9lc24ndCBnZW5lcmF0ZSBuZXcgZmF0YWwgIiBc
Ci0gICAgICAgICAgICJmYWlsdXJlcyBpbiB0aGUgY3VycmVudCB0aHJlYWQuXG4iIFwKLSAgICAg
ICAgICAgIiAgQWN0dWFsOiBpdCBkb2VzLiIpCi0KLS8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2Yg
dGhlIGNsYXNzIHRoYXQgaW1wbGVtZW50cyB0aGUgZ2l2ZW4gdGVzdC4KLSNkZWZpbmUgR1RFU1Rf
VEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSBcCi0gIHRlc3RfY2Fz
ZV9uYW1lIyNfIyN0ZXN0X25hbWUjI19UZXN0Ci0KLS8vIEhlbHBlciBtYWNybyBmb3IgZGVmaW5p
bmcgdGVzdHMuCi0jZGVmaW5lIEdURVNUX1RFU1RfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUs
IHBhcmVudF9jbGFzcywgcGFyZW50X2lkKVwKLWNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkgOiBwdWJsaWMgcGFyZW50X2NsYXNzIHtcCi0gcHVi
bGljOlwKLSAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1l
KSgpIHt9XAotIHByaXZhdGU6XAotICB2aXJ0dWFsIHZvaWQgVGVzdEJvZHkoKTtcCi0gIHN0YXRp
YyA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm9fIEdURVNUX0FUVFJJQlVURV9V
TlVTRURfO1wKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhcCi0gICAgICBHVEVT
VF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpKTtcCi19O1wKLVwK
LTo6dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9j
YXNlX25hbWUsIHRlc3RfbmFtZSlcCi0gIDo6dGVzdF9pbmZvXyA9XAotICAgIDo6dGVzdGluZzo6
aW50ZXJuYWw6Ok1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKFwKLSAgICAgICAgI3Rlc3RfY2FzZV9u
YW1lLCAjdGVzdF9uYW1lLCBOVUxMLCBOVUxMLCBcCi0gICAgICAgIDo6dGVzdGluZzo6aW50ZXJu
YWw6OkNvZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pLCBcCi0gICAgICAgIChwYXJlbnRf
aWQpLCBcCi0gICAgICAgIHBhcmVudF9jbGFzczo6U2V0VXBUZXN0Q2FzZSwgXAotICAgICAgICBw
YXJlbnRfY2xhc3M6OlRlYXJEb3duVGVzdENhc2UsIFwKLSAgICAgICAgbmV3IDo6dGVzdGluZzo6
aW50ZXJuYWw6OlRlc3RGYWN0b3J5SW1wbDxcCi0gICAgICAgICAgICBHVEVTVF9URVNUX0NMQVNT
X05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpPik7XAotdm9pZCBHVEVTVF9URVNUX0NM
QVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpOjpUZXN0Qm9keSgpCi0KLSNlbmRp
ZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9JTlRFUk5BTF9IXwotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LWxpbmtlZF9wdHIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzNjAyOTQyMjE3NGYyMTU4NDg2ODFkYjExMTBiY2RiMjM1MzhhMTJlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0ci5oCisr
KyAvZGV2L251bGwKQEAgLTEsMjQzICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDAzIEdvb2dsZSBJ
bmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0v
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcnM6IERhbiBFZ25vciAoZWdub3JAZ29vZ2xl
LmNvbSkKLS8vCi0vLyBBICJzbWFydCIgcG9pbnRlciB0eXBlIHdpdGggcmVmZXJlbmNlIHRyYWNr
aW5nLiAgRXZlcnkgcG9pbnRlciB0byBhCi0vLyBwYXJ0aWN1bGFyIG9iamVjdCBpcyBrZXB0IG9u
IGEgY2lyY3VsYXIgbGlua2VkIGxpc3QuICBXaGVuIHRoZSBsYXN0IHBvaW50ZXIKLS8vIHRvIGFu
IG9iamVjdCBpcyBkZXN0cm95ZWQgb3IgcmVhc3NpZ25lZCwgdGhlIG9iamVjdCBpcyBkZWxldGVk
LgotLy8KLS8vIFVzZWQgcHJvcGVybHksIHRoaXMgZGVsZXRlcyB0aGUgb2JqZWN0IHdoZW4gdGhl
IGxhc3QgcmVmZXJlbmNlIGdvZXMgYXdheS4KLS8vIFRoZXJlIGFyZSBzZXZlcmFsIGNhdmVhdHM6
Ci0vLyAtIExpa2UgYWxsIHJlZmVyZW5jZSBjb3VudGluZyBzY2hlbWVzLCBjeWNsZXMgbGVhZCB0
byBsZWFrcy4KLS8vIC0gRWFjaCBzbWFydCBwb2ludGVyIGlzIGFjdHVhbGx5IHR3byBwb2ludGVy
cyAoOCBieXRlcyBpbnN0ZWFkIG9mIDQpLgotLy8gLSBFdmVyeSB0aW1lIGEgcG9pbnRlciBpcyBh
c3NpZ25lZCwgdGhlIGVudGlyZSBsaXN0IG9mIHBvaW50ZXJzIHRvIHRoYXQKLS8vICAgb2JqZWN0
IGlzIHRyYXZlcnNlZC4gIFRoaXMgY2xhc3MgaXMgdGhlcmVmb3JlIE5PVCBTVUlUQUJMRSB3aGVu
IHRoZXJlCi0vLyAgIHdpbGwgb2Z0ZW4gYmUgbW9yZSB0aGFuIHR3byBvciB0aHJlZSBwb2ludGVy
cyB0byBhIHBhcnRpY3VsYXIgb2JqZWN0LgotLy8gLSBSZWZlcmVuY2VzIGFyZSBvbmx5IHRyYWNr
ZWQgYXMgbG9uZyBhcyBsaW5rZWRfcHRyPD4gb2JqZWN0cyBhcmUgY29waWVkLgotLy8gICBJZiBh
IGxpbmtlZF9wdHI8PiBpcyBjb252ZXJ0ZWQgdG8gYSByYXcgcG9pbnRlciBhbmQgYmFjaywgQkFE
IFRISU5HUwotLy8gICB3aWxsIGhhcHBlbiAoZG91YmxlIGRlbGV0aW9uKS4KLS8vCi0vLyBBIGdv
b2QgdXNlIG9mIHRoaXMgY2xhc3MgaXMgc3RvcmluZyBvYmplY3QgcmVmZXJlbmNlcyBpbiBTVEwg
Y29udGFpbmVycy4KLS8vIFlvdSBjYW4gc2FmZWx5IHB1dCBsaW5rZWRfcHRyPD4gaW4gYSB2ZWN0
b3I8Pi4KLS8vIE90aGVyIHVzZXMgbWF5IG5vdCBiZSBhcyBnb29kLgotLy8KLS8vIE5vdGU6IElm
IHlvdSB1c2UgYW4gaW5jb21wbGV0ZSB0eXBlIHdpdGggbGlua2VkX3B0cjw+LCB0aGUgY2xhc3MK
LS8vICpjb250YWluaW5nKiBsaW5rZWRfcHRyPD4gbXVzdCBoYXZlIGEgY29uc3RydWN0b3IgYW5k
IGRlc3RydWN0b3IgKGV2ZW4KLS8vIGlmIHRoZXkgZG8gbm90aGluZyEpLgotLy8KLS8vIEJpbGwg
R2liYm9ucyBzdWdnZXN0ZWQgd2UgdXNlIHNvbWV0aGluZyBsaWtlIHRoaXMuCi0vLwotLy8gVGhy
ZWFkIFNhZmV0eToKLS8vICAgVW5saWtlIG90aGVyIGxpbmtlZF9wdHIgaW1wbGVtZW50YXRpb25z
LCBpbiB0aGlzIGltcGxlbWVudGF0aW9uCi0vLyAgIGEgbGlua2VkX3B0ciBvYmplY3QgaXMgdGhy
ZWFkLXNhZmUgaW4gdGhlIHNlbnNlIHRoYXQ6Ci0vLyAgICAgLSBpdCdzIHNhZmUgdG8gY29weSBs
aW5rZWRfcHRyIG9iamVjdHMgY29uY3VycmVudGx5LAotLy8gICAgIC0gaXQncyBzYWZlIHRvIGNv
cHkgKmZyb20qIGEgbGlua2VkX3B0ciBhbmQgcmVhZCBpdHMgdW5kZXJseWluZwotLy8gICAgICAg
cmF3IHBvaW50ZXIgKGUuZy4gdmlhIGdldCgpKSBjb25jdXJyZW50bHksIGFuZAotLy8gICAgIC0g
aXQncyBzYWZlIHRvIHdyaXRlIHRvIHR3byBsaW5rZWRfcHRycyB0aGF0IHBvaW50IHRvIHRoZSBz
YW1lCi0vLyAgICAgICBzaGFyZWQgb2JqZWN0IGNvbmN1cnJlbnRseS4KLS8vIFRPRE8od2FuQGdv
b2dsZS5jb20pOiByZW5hbWUgdGhpcyB0byBzYWZlX2xpbmtlZF9wdHIgdG8gYXZvaWQKLS8vIGNv
bmZ1c2lvbiB3aXRoIG5vcm1hbCBsaW5rZWRfcHRyLgotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVf
R1RFU1RfSU5URVJOQUxfR1RFU1RfTElOS0VEX1BUUl9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURF
X0dURVNUX0lOVEVSTkFMX0dURVNUX0xJTktFRF9QVFJfSF8KLQotI2luY2x1ZGUgPHN0ZGxpYi5o
PgotI2luY2x1ZGUgPGFzc2VydC5oPgotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
cG9ydC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0v
LyBQcm90ZWN0cyBjb3B5aW5nIG9mIGFsbCBsaW5rZWRfcHRyIG9iamVjdHMuCi1HVEVTVF9BUElf
IEdURVNUX0RFQ0xBUkVfU1RBVElDX01VVEVYXyhnX2xpbmtlZF9wdHJfbXV0ZXgpOwotCi0vLyBU
aGlzIGlzIHVzZWQgaW50ZXJuYWxseSBieSBhbGwgaW5zdGFuY2VzIG9mIGxpbmtlZF9wdHI8Pi4g
IEl0IG5lZWRzIHRvIGJlCi0vLyBhIG5vbi10ZW1wbGF0ZSBjbGFzcyBiZWNhdXNlIGRpZmZlcmVu
dCB0eXBlcyBvZiBsaW5rZWRfcHRyPD4gY2FuIHJlZmVyIHRvCi0vLyB0aGUgc2FtZSBvYmplY3Qg
KGxpbmtlZF9wdHI8U3VwZXJjbGFzcz4ob2JqKSB2cyBsaW5rZWRfcHRyPFN1YmNsYXNzPihvYmop
KS4KLS8vIFNvLCBpdCBuZWVkcyB0byBiZSBwb3NzaWJsZSBmb3IgZGlmZmVyZW50IHR5cGVzIG9m
IGxpbmtlZF9wdHIgdG8gcGFydGljaXBhdGUKLS8vIGluIHRoZSBzYW1lIGNpcmN1bGFyIGxpbmtl
ZCBsaXN0LCBzbyB3ZSBuZWVkIGEgc2luZ2xlIGNsYXNzIHR5cGUgaGVyZS4KLS8vCi0vLyBETyBO
T1QgVVNFIFRISVMgQ0xBU1MgRElSRUNUTFkgWU9VUlNFTEYuICBVc2UgbGlua2VkX3B0cjxUPi4K
LWNsYXNzIGxpbmtlZF9wdHJfaW50ZXJuYWwgewotIHB1YmxpYzoKLSAgLy8gQ3JlYXRlIGEgbmV3
IGNpcmNsZSB0aGF0IGluY2x1ZGVzIG9ubHkgdGhpcyBpbnN0YW5jZS4KLSAgdm9pZCBqb2luX25l
dygpIHsKLSAgICBuZXh0XyA9IHRoaXM7Ci0gIH0KLQotICAvLyBNYW55IGxpbmtlZF9wdHIgb3Bl
cmF0aW9ucyBtYXkgY2hhbmdlIHAubGlua18gZm9yIHNvbWUgbGlua2VkX3B0cgotICAvLyB2YXJp
YWJsZSBwIGluIHRoZSBzYW1lIGNpcmNsZSBhcyB0aGlzIG9iamVjdC4gIFRoZXJlZm9yZSB3ZSBu
ZWVkCi0gIC8vIHRvIHByZXZlbnQgdHdvIHN1Y2ggb3BlcmF0aW9ucyBmcm9tIG9jY3VycmluZyBj
b25jdXJyZW50bHkuCi0gIC8vCi0gIC8vIE5vdGUgdGhhdCBkaWZmZXJlbnQgdHlwZXMgb2YgbGlu
a2VkX3B0ciBvYmplY3RzIGNhbiBjb2V4aXN0IGluIGEKLSAgLy8gY2lyY2xlIChlLmcuIGxpbmtl
ZF9wdHI8QmFzZT4sIGxpbmtlZF9wdHI8RGVyaXZlZDE+LCBhbmQKLSAgLy8gbGlua2VkX3B0cjxE
ZXJpdmVkMj4pLiAgVGhlcmVmb3JlIHdlIG11c3QgdXNlIGEgc2luZ2xlIG11dGV4IHRvCi0gIC8v
IHByb3RlY3QgYWxsIGxpbmtlZF9wdHIgb2JqZWN0cy4gIFRoaXMgY2FuIGNyZWF0ZSBzZXJpb3Vz
Ci0gIC8vIGNvbnRlbnRpb24gaW4gcHJvZHVjdGlvbiBjb2RlLCBidXQgaXMgYWNjZXB0YWJsZSBp
biBhIHRlc3RpbmcKLSAgLy8gZnJhbWV3b3JrLgotCi0gIC8vIEpvaW4gYW4gZXhpc3RpbmcgY2ly
Y2xlLgotICB2b2lkIGpvaW4obGlua2VkX3B0cl9pbnRlcm5hbCBjb25zdCogcHRyKQotICAgICAg
R1RFU1RfTE9DS19FWENMVURFRF8oZ19saW5rZWRfcHRyX211dGV4KSB7Ci0gICAgTXV0ZXhMb2Nr
IGxvY2soJmdfbGlua2VkX3B0cl9tdXRleCk7Ci0KLSAgICBsaW5rZWRfcHRyX2ludGVybmFsIGNv
bnN0KiBwID0gcHRyOwotICAgIHdoaWxlIChwLT5uZXh0XyAhPSBwdHIpIHsKLSAgICAgIGFzc2Vy
dChwLT5uZXh0XyAhPSB0aGlzICYmCi0gICAgICAgICAgICAgIlRyeWluZyB0byBqb2luKCkgYSBs
aW5rZWQgcmluZyB3ZSBhcmUgYWxyZWFkeSBpbi4gIgotICAgICAgICAgICAgICJJcyBHTW9jayB0
aHJlYWQgc2FmZXR5IGVuYWJsZWQ/Iik7Ci0gICAgICBwID0gcC0+bmV4dF87Ci0gICAgfQotICAg
IHAtPm5leHRfID0gdGhpczsKLSAgICBuZXh0XyA9IHB0cjsKLSAgfQotCi0gIC8vIExlYXZlIHdo
YXRldmVyIGNpcmNsZSB3ZSdyZSBwYXJ0IG9mLiAgUmV0dXJucyB0cnVlIGlmIHdlIHdlcmUgdGhl
Ci0gIC8vIGxhc3QgbWVtYmVyIG9mIHRoZSBjaXJjbGUuICBPbmNlIHRoaXMgaXMgZG9uZSwgeW91
IGNhbiBqb2luKCkgYW5vdGhlci4KLSAgYm9vbCBkZXBhcnQoKQotICAgICAgR1RFU1RfTE9DS19F
WENMVURFRF8oZ19saW5rZWRfcHRyX211dGV4KSB7Ci0gICAgTXV0ZXhMb2NrIGxvY2soJmdfbGlu
a2VkX3B0cl9tdXRleCk7Ci0KLSAgICBpZiAobmV4dF8gPT0gdGhpcykgcmV0dXJuIHRydWU7Ci0g
ICAgbGlua2VkX3B0cl9pbnRlcm5hbCBjb25zdCogcCA9IG5leHRfOwotICAgIHdoaWxlIChwLT5u
ZXh0XyAhPSB0aGlzKSB7Ci0gICAgICBhc3NlcnQocC0+bmV4dF8gIT0gbmV4dF8gJiYKLSAgICAg
ICAgICAgICAiVHJ5aW5nIHRvIGRlcGFydCgpIGEgbGlua2VkIHJpbmcgd2UgYXJlIG5vdCBpbi4g
IgotICAgICAgICAgICAgICJJcyBHTW9jayB0aHJlYWQgc2FmZXR5IGVuYWJsZWQ/Iik7Ci0gICAg
ICBwID0gcC0+bmV4dF87Ci0gICAgfQotICAgIHAtPm5leHRfID0gbmV4dF87Ci0gICAgcmV0dXJu
IGZhbHNlOwotICB9Ci0KLSBwcml2YXRlOgotICBtdXRhYmxlIGxpbmtlZF9wdHJfaW50ZXJuYWwg
Y29uc3QqIG5leHRfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBsaW5rZWRf
cHRyIHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgVCBlbGVtZW50X3R5cGU7Ci0KLSAgLy8gVGFrZSBv
dmVyIG93bmVyc2hpcCBvZiBhIHJhdyBwb2ludGVyLiAgVGhpcyBzaG91bGQgaGFwcGVuIGFzIHNv
b24gYXMKLSAgLy8gcG9zc2libGUgYWZ0ZXIgdGhlIG9iamVjdCBpcyBjcmVhdGVkLgotICBleHBs
aWNpdCBsaW5rZWRfcHRyKFQqIHB0ciA9IE5VTEwpIHsgY2FwdHVyZShwdHIpOyB9Ci0gIH5saW5r
ZWRfcHRyKCkgeyBkZXBhcnQoKTsgfQotCi0gIC8vIENvcHkgYW4gZXhpc3RpbmcgbGlua2VkX3B0
cjw+LCBhZGRpbmcgb3Vyc2VsdmVzIHRvIHRoZSBsaXN0IG9mIHJlZmVyZW5jZXMuCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBVPiBsaW5rZWRfcHRyKGxpbmtlZF9wdHI8VT4gY29uc3QmIHB0cikgeyBj
b3B5KCZwdHIpOyB9Ci0gIGxpbmtlZF9wdHIobGlua2VkX3B0ciBjb25zdCYgcHRyKSB7ICAvLyBO
T0xJTlQKLSAgICBhc3NlcnQoJnB0ciAhPSB0aGlzKTsKLSAgICBjb3B5KCZwdHIpOwotICB9Ci0K
LSAgLy8gQXNzaWdubWVudCByZWxlYXNlcyB0aGUgb2xkIHZhbHVlIGFuZCBhY3F1aXJlcyB0aGUg
bmV3LgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gbGlua2VkX3B0ciYgb3BlcmF0b3I9KGxpbmtl
ZF9wdHI8VT4gY29uc3QmIHB0cikgewotICAgIGRlcGFydCgpOwotICAgIGNvcHkoJnB0cik7Ci0g
ICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgbGlua2VkX3B0ciYgb3BlcmF0b3I9KGxpbmtlZF9w
dHIgY29uc3QmIHB0cikgewotICAgIGlmICgmcHRyICE9IHRoaXMpIHsKLSAgICAgIGRlcGFydCgp
OwotICAgICAgY29weSgmcHRyKTsKLSAgICB9Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAg
Ly8gU21hcnQgcG9pbnRlciBtZW1iZXJzLgotICB2b2lkIHJlc2V0KFQqIHB0ciA9IE5VTEwpIHsK
LSAgICBkZXBhcnQoKTsKLSAgICBjYXB0dXJlKHB0cik7Ci0gIH0KLSAgVCogZ2V0KCkgY29uc3Qg
eyByZXR1cm4gdmFsdWVfOyB9Ci0gIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiB2YWx1
ZV87IH0KLSAgVCYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKnZhbHVlXzsgfQotCi0gIGJv
b2wgb3BlcmF0b3I9PShUKiBwKSBjb25zdCB7IHJldHVybiB2YWx1ZV8gPT0gcDsgfQotICBib29s
IG9wZXJhdG9yIT0oVCogcCkgY29uc3QgeyByZXR1cm4gdmFsdWVfICE9IHA7IH0KLSAgdGVtcGxh
dGUgPHR5cGVuYW1lIFU+Ci0gIGJvb2wgb3BlcmF0b3I9PShsaW5rZWRfcHRyPFU+IGNvbnN0JiBw
dHIpIGNvbnN0IHsKLSAgICByZXR1cm4gdmFsdWVfID09IHB0ci5nZXQoKTsKLSAgfQotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4KLSAgYm9vbCBvcGVyYXRvciE9KGxpbmtlZF9wdHI8VT4gY29uc3Qm
IHB0cikgY29uc3QgewotICAgIHJldHVybiB2YWx1ZV8gIT0gcHRyLmdldCgpOwotICB9Ci0KLSBw
cml2YXRlOgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KLSAgZnJpZW5kIGNsYXNzIGxpbmtlZF9w
dHI7Ci0KLSAgVCogdmFsdWVfOwotICBsaW5rZWRfcHRyX2ludGVybmFsIGxpbmtfOwotCi0gIHZv
aWQgZGVwYXJ0KCkgewotICAgIGlmIChsaW5rXy5kZXBhcnQoKSkgZGVsZXRlIHZhbHVlXzsKLSAg
fQotCi0gIHZvaWQgY2FwdHVyZShUKiBwdHIpIHsKLSAgICB2YWx1ZV8gPSBwdHI7Ci0gICAgbGlu
a18uam9pbl9uZXcoKTsKLSAgfQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiB2b2lkIGNvcHko
bGlua2VkX3B0cjxVPiBjb25zdCogcHRyKSB7Ci0gICAgdmFsdWVfID0gcHRyLT5nZXQoKTsKLSAg
ICBpZiAodmFsdWVfKQotICAgICAgbGlua18uam9pbigmcHRyLT5saW5rXyk7Ci0gICAgZWxzZQot
ICAgICAgbGlua18uam9pbl9uZXcoKTsKLSAgfQotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lCi1ib29sIG9wZXJhdG9yPT0oVCogcHRyLCBjb25zdCBsaW5rZWRfcHRyPFQ+JiB4KSB7
Ci0gIHJldHVybiBwdHIgPT0geC5nZXQoKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5s
aW5lCi1ib29sIG9wZXJhdG9yIT0oVCogcHRyLCBjb25zdCBsaW5rZWRfcHRyPFQ+JiB4KSB7Ci0g
IHJldHVybiBwdHIgIT0geC5nZXQoKTsKLX0KLQotLy8gQSBmdW5jdGlvbiB0byBjb252ZXJ0IFQq
IGludG8gbGlua2VkX3B0cjxUPgotLy8gRG9pbmcgZS5nLiBtYWtlX2xpbmtlZF9wdHIobmV3IEZv
b0JhckJhejx0eXBlPihhcmcpKSBpcyBhIHNob3J0ZXIgbm90YXRpb24KLS8vIGZvciBsaW5rZWRf
cHRyPEZvb0JhckJhejx0eXBlPiA+KG5ldyBGb29CYXJCYXo8dHlwZT4oYXJnKSkKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotbGlua2VkX3B0cjxUPiBtYWtlX2xpbmtlZF9wdHIoVCogcHRyKSB7Ci0g
IHJldHVybiBsaW5rZWRfcHRyPFQ+KHB0cik7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5h
bAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX0xJTktFRF9QVFJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9w
YXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1n
ZW5lcmF0ZWQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzRiZDBkZGZiM2JkZjcyOGNkOGI5MTcyMzE1MGE3MWNkMGIxMzNiZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJh
dGVkLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MTM5ICswLDAgQEAKLS8vIFRoaXMgZmlsZSB3YXMg
R0VORVJBVEVEIGJ5IGNvbW1hbmQ6Ci0vLyAgICAgcHVtcC5weSBndGVzdC1wYXJhbS11dGlsLWdl
bmVyYXRlZC5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQotLy8gQ29weXJpZ2h0
IDIwMDggR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4K
LS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0v
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB2bGFkbEBnb29n
bGUuY29tIChWbGFkIExvc2V2KQotCi0vLyBUeXBlIGFuZCBmdW5jdGlvbiB1dGlsaXRpZXMgZm9y
IGltcGxlbWVudGluZyBwYXJhbWV0ZXJpemVkIHRlc3RzLgotLy8gVGhpcyBmaWxlIGlzIGdlbmVy
YXRlZCBieSBhIFNDUklQVC4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gQ3VycmVudGx5
IEdvb2dsZSBUZXN0IHN1cHBvcnRzIGF0IG1vc3QgNTAgYXJndW1lbnRzIGluIFZhbHVlcywKLS8v
IGFuZCBhdCBtb3N0IDEwIGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29udGFjdAotLy8g
Z29vZ2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkIG1vcmUuCi0v
LyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENvbWJpbmUgaXMg
bGltaXRlZAotLy8gYnkgdGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9m
IHR1cGxlIHdoaWNoIGlzCi0vLyBjdXJyZW50bHkgc2V0IGF0IDEwLgotCi0jaWZuZGVmIEdURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KLSNk
ZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVS
QVRFRF9IXwotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIgot
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotbmFtZXNwYWNlIHRlc3Rp
bmcgewotCi0vLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBp
bXBsZW1lbnRlZCBpbgotLy8gaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9y
PAotICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJk
SXRlcmF0b3I+Ojp2YWx1ZV90eXBlPgotVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBG
b3J3YXJkSXRlcmF0b3IgZW5kKTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgot
aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0p
OwotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29udGFpbmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9y
PHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29u
dGFpbmVyJiBjb250YWluZXIpOwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0vLyBVc2VkIGlu
IHRoZSBWYWx1ZXMoKSBmdW5jdGlvbiB0byBwcm92aWRlIHBvbHltb3JwaGljIGNhcGFiaWxpdGll
cy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLWNsYXNzIFZhbHVlQXJyYXkxIHsKLSBwdWJsaWM6
Ci0gIGV4cGxpY2l0IFZhbHVlQXJyYXkxKFQxIHYxKSA6IHYxXyh2MSkge30KLQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0g
ICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyl9OwotICAgIHJldHVybiBW
YWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9u
IC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFs
dWVBcnJheTEmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotY2xhc3MgVmFsdWVBcnJheTIgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTIoVDEgdjEsIFQyIHYyKSA6IHYxXyh2MSksIHYyXyh2Mikge30KLQotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7
Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0
PFQ+KHYyXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTImIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzPgotY2xhc3MgVmFsdWVBcnJheTMgewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTMoVDEgdjEsIFQyIHYyLCBUMyB2MykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMp
IHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9y
PFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8p
LCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlQXJyYXkzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBU
MiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLWNsYXNzIFZhbHVlQXJyYXk0IHsK
LSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSA6IHYx
Xyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpIHt9Ci0KLSAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAg
IGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2
Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pfTsK
LSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXk0JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25z
dCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNT4KLWNsYXNzIFZhbHVlQXJyYXk1IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk1
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2
M18odjMpLAotICAgICAgdjRfKHY0KSwgdjVfKHY1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NSYgb3RoZXIpOwotCi0gIGNvbnN0IFQx
IHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsK
LSAgY29uc3QgVDUgdjVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
Nj4KLWNsYXNzIFZhbHVlQXJyYXk2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk2KFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAg
ICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2Nikge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAg
Y29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0
YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2Xyl9OwotICAgIHJl
dHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgVmFsdWVBcnJheTYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDc+Ci1jbGFzcyBWYWx1ZUFycmF5NyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5
NyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NykgOiB2MV8o
djEpLAotICAgICAgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwg
djdfKHY3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdl
bmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8
VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNf
KSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKX07Ci0gICAgcmV0dXJuIFZhbHVl
c0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFy
cmF5NyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLWNsYXNzIFZhbHVlQXJyYXk4IHsKLSBw
dWJsaWM6Ci0gIFZhbHVlQXJyYXk4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LAotICAgICAgVDggdjgpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwg
djRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCkge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4Xyl9OwotICAgIHJldHVy
biBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsK
LSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29u
c3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDk+Ci1jbGFzcyBWYWx1ZUFycmF5OSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5
OShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgs
Ci0gICAgICBUOSB2OSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8o
djUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSB7fQotCi0gIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0
IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nh
c3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4o
djRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwg
c3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5OSYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0
XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAg
Y29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTA+Ci1jbGFzcyBWYWx1ZUFycmF5MTAgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTEwKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksCi0gICAgICBUMTAgdjEwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0
Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkp
LCB2MTBfKHYxMCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFy
YW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19j
YXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+
KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8p
fTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxMCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAg
Y29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3Qg
VDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhf
OwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMT4KLWNsYXNzIFZhbHVlQXJyYXkx
MSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQs
IFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2
MTEpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2
KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEp
IHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9y
PFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8p
LCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0
aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nh
c3Q8VD4odjExXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZh
dGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4K
LSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTExJiBvdGhlcik7Ci0KLSAgY29uc3Qg
VDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRf
OwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBj
b25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0
IFQxMSB2MTFfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyPgotY2xhc3MgVmFsdWVBcnJheTEyIHsKLSBwdWJsaWM6
Ci0gIFZhbHVlQXJyYXkxMihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMikg
OiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZf
KHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYx
Ml8odjEyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdl
bmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8
VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNf
KSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0
YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKX07Ci0gICAg
cmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVt
ZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShj
b25zdCBWYWx1ZUFycmF5MTImIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQy
IHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsK
LSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29u
c3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0
IFQxMiB2MTJfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTM+Ci1jbGFzcyBWYWx1ZUFycmF5
MTMgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTEzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksCi0gICAgICB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwKLSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKX07
Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8g
aW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJh
dG9yPShjb25zdCBWYWx1ZUFycmF5MTMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNv
bnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1
IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsK
LSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0g
IGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQ+Ci1jbGFzcyBWYWx1ZUFycmF5MTQgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTE0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMg
djEzLCBUMTQgdjE0KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQp
LCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCks
Ci0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCkge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2
MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18p
LCBzdGF0aWNfY2FzdDxUPih2MTRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTQmIG90aGVyKTsK
LQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBj
b25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBU
NyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEw
XzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEz
XzsKLSAgY29uc3QgVDE0IHYxNF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTU+Ci1jbGFzcyBWYWx1ZUFycmF5MTUgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTE1KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMg
djEzLCBUMTQgdjE0LCBUMTUgdjE1KSA6IHYxXyh2MSksIHYyXyh2MiksCi0gICAgICB2M18odjMp
LCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYx
NCksIHYxNV8odjE1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQ
YXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGlj
X2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8
VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEw
XyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwg
c3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTUmIG90aGVyKTsKLQotICBj
b25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBU
NCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187
Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAg
Y29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAg
Y29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNj4KLWNs
YXNzIFZhbHVlQXJyYXkxNiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTYoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2
NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCks
IHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAot
ICAgICAgdjE2Xyh2MTYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9y
IFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0
aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2Fz
dDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2
MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8p
LCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKX07Ci0gICAgcmV0dXJuIFZh
bHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MTYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNz4KLWNs
YXNzIFZhbHVlQXJyYXkxNyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTcoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsCi0gICAgICBUMTcgdjE3KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAg
ICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNykge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYx
Nl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsK
LSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTcmIG90aGVy
KTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwot
ICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25z
dCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAg
djEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMg
djEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYg
djE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOD4KLWNsYXNzIFZhbHVlQXJyYXkxOCB7Ci0gcHVibGljOgotICBWYWx1ZUFy
cmF5MTgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQx
NCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4KSA6IHYxXyh2
MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2Nyks
Ci0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIp
LCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdf
KHYxNyksIHYxOF8odjE4KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRv
ciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3Rh
dGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4o
djEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJf
KSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+
KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKX07Ci0gICAgcmV0dXJuIFZhbHVl
c0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFy
cmF5MTgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29u
c3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYg
djZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwot
ICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwot
ICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwot
ICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OT4KLWNsYXNzIFZhbHVlQXJyYXkxOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTkoVDEgdjEs
IFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwK
LSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2
MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5KSA6IHYxXyh2MSks
IHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2N18o
djcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2
MTNfKHYxMyksCi0gICAgICB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYx
NyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTkmIG90aGVyKTsKLQotICBjb25zdCBU
MSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87
Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNv
bnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3Qg
VDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3Qg
VDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3Qg
VDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMD4KLWNsYXNzIFZhbHVlQXJyYXkyMCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjAo
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAg
djIwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksCi0gICAg
ICB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjEx
KSwgdjEyXyh2MTIpLAotICAgICAgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2
Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwKLSAgICAgIHYxOV8odjE5KSwgdjIwXyh2MjAp
IHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9y
PFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8p
LCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0
aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nh
c3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxU
Pih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
NV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8
VD4odjIwXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIwJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEg
djFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwot
ICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25z
dCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQx
MSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQx
NCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQx
NyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQy
MCB2MjBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLWNsYXNzIFZhbHVl
QXJyYXkyMSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjEoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxKSA6IHYxXyh2
MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksCi0gICAgICB2NV8odjUpLCB2Nl8odjYpLCB2
N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwKLSAgICAgIHYx
Ml8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdf
KHYxNyksCi0gICAgICB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSkg
e30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyks
IHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+
KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1
XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0g
YXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVB
cnJheTIxJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNv
bnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2
IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsK
LSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsK
LSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsK
LSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsK
LSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMj4KLWNsYXNz
IFZhbHVlQXJyYXkyMiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjIoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8o
djUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAg
ICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwg
djE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2
MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
ICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5
W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4o
djVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwg
c3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGlj
X2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRp
Y19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nh
c3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJh
eSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVu
dCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIyJiBv
dGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYz
XzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAg
Y29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3Qg
VDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3Qg
VDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3Qg
VDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3Qg
VDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3Qg
VDIyIHYyMl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMz4KLWNsYXNzIFZhbHVlQXJyYXkyMyB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5MjMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkg
djE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzKSA6IHYxXyh2MSksIHYyXyh2
MiksCi0gICAgICB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2
OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwg
djEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2
MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIy
KSwKLSAgICAgIHYyM18odjIzKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7
c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8
VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0
PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4o
djE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFf
KSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pfTsKLSAgICByZXR1
cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXkyMyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQ+Ci1jbGFzcyBWYWx1ZUFycmF5MjQgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTI0
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIw
IHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCkgOiB2MV8odjEpLAotICAg
ICAgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwg
djhfKHY4KSwgdjlfKHY5KSwKLSAgICAgIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiks
IHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksCi0gICAgICB2MTZfKHYxNiksIHYxN18o
djE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLAotICAgICAg
djIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MjQm
IG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMg
djNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwot
ICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25z
dCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25z
dCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25z
dCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25z
dCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25z
dCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1PgotY2xhc3MgVmFsdWVBcnJheTI1IHsKLSBwdWJs
aWM6Ci0gIFZhbHVlQXJyYXkyNShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYx
MiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQx
OCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2
MjQsCi0gICAgICBUMjUgdjI1KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCks
IHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBf
KHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAg
IHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2
MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYy
NCksIHYyNV8odjI1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQ
YXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGlj
X2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8
VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEw
XyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwg
c3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYx
N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5Xyks
IHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJ
bihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNz
aWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJh
eTI1JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0
IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2
XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAg
Y29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAg
Y29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAg
Y29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAg
Y29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAg
Y29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAg
Y29uc3QgVDI1IHYyNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2PgotY2xhc3MgVmFsdWVBcnJheTI2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJy
YXkyNihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTks
IFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0g
ICAgICBUMjYgdjI2KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2
NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCks
IHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8o
djE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYy
MCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYy
NV8odjI1KSwgdjI2Xyh2MjYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNf
Y2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8
VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2
MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8p
LCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4o
djI2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0g
IC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9p
ZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTI2JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFf
OwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBj
b25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBU
OCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2
MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2
MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2
MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2
MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2
MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2
MjZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3PgotY2xhc3MgVmFsdWVBcnJheTI3IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXkyNyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywg
VDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUs
Ci0gICAgICBUMjYgdjI2LCBUMjcgdjI3KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0
Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2N18odjcpLCB2OF8odjgpLCB2OV8odjkp
LCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksCi0gICAgICB2MTRf
KHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2
MTkpLAotICAgICAgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2
MjRfKHYyNCksIHYyNV8odjI1KSwKLSAgICAgIHYyNl8odjI2KSwgdjI3Xyh2MjcpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwg
c3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0
aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyN18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQx
IHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsK
LSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29u
c3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBU
MTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBU
MTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBU
MTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBU
MjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBU
MjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBU
MjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOD4KLWNs
YXNzIFZhbHVlQXJyYXkyOCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjgoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3
IHYyNywgVDI4IHYyOCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8o
djUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTAp
LCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVf
KHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYxOSks
IHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLAot
ICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwg
c3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0
aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5Mjgm
IG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMg
djNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwot
ICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25z
dCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25z
dCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25z
dCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25z
dCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25z
dCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25z
dCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25z
dCBUMjggdjI4XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1jbGFz
cyBWYWx1ZUFycmF5MjkgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTI5KFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYg
djE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2
MjcsIFQyOCB2MjgsIFQyOSB2MjkpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0
KSwKLSAgICAgIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYx
MF8odjEwKSwgdjExXyh2MTEpLAotICAgICAgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0
KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwKLSAgICAgIHYxOF8odjE4KSwgdjE5
Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksCi0gICAg
ICB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwg
djI5Xyh2MjkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFt
R2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2Fz
dDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2
OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwg
c3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0
aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI5Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTI5JiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwPgotY2xhc3MgVmFsdWVBcnJheTMwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkz
MChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgs
IFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYx
NCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQy
MCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAg
ICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwKSA6IHYxXyh2MSks
IHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18o
djcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8o
djEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAg
djE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYy
Ml8odjIyKSwKLSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2
KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyks
IHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzAm
IG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMg
djNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwot
ICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25z
dCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25z
dCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25z
dCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25z
dCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25z
dCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25z
dCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25z
dCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMT4KLWNsYXNzIFZhbHVlQXJyYXkzMSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzEo
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAg
djIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAg
VDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSkgOiB2
MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2
KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEp
LCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwK
LSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2
MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2
MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLAotICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYz
MCksIHYzMV8odjMxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQ
YXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGlj
X2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8
VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEw
XyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwg
c3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYx
N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5Xyks
IHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0
YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGlj
X2Nhc3Q8VD4odjMxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTMxJiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFt
ZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlw
ZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzI+Ci1jbGFzcyBWYWx1ZUFycmF5MzIgewotIHB1YmxpYzoK
LSAgVmFsdWVBcnJheTMyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwg
VDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2
MzAsIFQzMSB2MzEsIFQzMiB2MzIpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2Myks
IHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0g
ICAgICB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0
KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5
Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMp
LCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksCi0gICAgICB2Mjhf
KHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSB7fQotCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNv
bnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8
VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZf
KSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYx
MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyks
IHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0
YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRp
Y19jYXN0PFQ+KHYzMl8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBw
cml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0
ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzMiYgb3RoZXIpOwotCi0gIGNv
bnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0
IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsK
LSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBj
b25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBj
b25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBj
b25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBj
b25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBj
b25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBj
b25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBj
b25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBj
b25zdCBUMzIgdjMyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
PgotY2xhc3MgVmFsdWVBcnJheTMzIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkzMyhUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAot
ICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYx
NSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQy
MSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2
LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLAot
ICAgICAgVDMzIHYzMykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8o
djUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTAp
LCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVf
KHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2
MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2
MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYy
OSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYzMykge30K
LQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4o
KSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0
YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19j
YXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxU
Pih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYx
M18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1Xyks
IHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2
MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8p
LCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0
YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2Mjlf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBz
dGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyl9OwotICAg
IHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxl
bWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBU
MiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87
Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNv
bnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25z
dCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25z
dCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25z
dCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25z
dCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25z
dCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25z
dCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25z
dCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25z
dCBUMzMgdjMzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVu
YW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0
eXBlbmFtZSBUMzQ+Ci1jbGFzcyBWYWx1ZUFycmF5MzQgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTM0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAg
ICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEs
IFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0KSA6IHYxXyh2MSksIHYyXyh2MiksIHYz
Xyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgp
LCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYx
NF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4
KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIz
Xyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2Mjcp
LCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwK
LSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJy
YXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxU
Pih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18p
LCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0
aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2Fz
dDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5MzQmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQy
NyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQz
MCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQz
MyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4KLWNsYXNzIFZhbHVlQXJy
YXkzNSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzUoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYy
OCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQz
NCB2MzQsIFQzNSB2MzUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVf
KHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEw
KSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwKLSAgICAgIHYxNF8odjE0KSwgdjE1
Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAg
ICB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwg
djI1Xyh2MjUpLAotICAgICAgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2
MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwKLSAgICAgIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2
MzRfKHYzNCksIHYzNV8odjM1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7
c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8
VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0
PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4o
djE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFf
KSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+
KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4
XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwg
c3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYz
NV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzNSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsK
LSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29u
c3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDgg
djhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjEx
XzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0
XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3
XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIw
XzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIz
XzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2
XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5
XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMy
XzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1
XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzY+Ci1jbGFzcyBWYWx1ZUFycmF5MzYg
ewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM2KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBU
NSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjEx
LCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAot
ICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYy
MywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0
LCBUMzUgdjM1LCBUMzYgdjM2KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCks
IHY1Xyh2NSksCi0gICAgICB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBf
KHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLAotICAgICAgdjEzXyh2MTMpLCB2MTRfKHYxNCks
IHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwKLSAgICAgIHYxOV8o
djE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYy
NCksCi0gICAgICB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYy
OV8odjI5KSwgdjMwXyh2MzApLAotICAgICAgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMz
KSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25z
dCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8
VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlf
KSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+
KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2
XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwg
c3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYy
M18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1Xyks
IHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0
YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKX07Ci0gICAg
cmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVt
ZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShj
b25zdCBWYWx1ZUFycmF5MzYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQy
IHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsK
LSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29u
c3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0
IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0
IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0
IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0
IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0
IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0
IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0
IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0
IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0
IFQzNiB2MzZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUg
VDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVu
YW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5h
bWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5
cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3
PgotY2xhc3MgVmFsdWVBcnJheTM3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkzNyhUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAot
ICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYx
NSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQy
MSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2
LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBU
MzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNykgOiB2MV8o
djEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAotICAgICAgdjVfKHY1KSwgdjZfKHY2KSwg
djdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksCi0gICAgICB2
MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3
Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEp
LCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZf
KHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksCi0gICAgICB2MzBfKHYzMCks
IHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLAot
ICAgICAgdjM2Xyh2MzYpLCB2MzdfKHYzNykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
LSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJh
eVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+
KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3Xyks
IHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRp
Y19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0
aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19j
YXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0
PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2Fz
dDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+
KHYzN18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgot
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYx
XzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAg
Y29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3Qg
VDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEg
djExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQg
djE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcg
djE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAg
djIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMg
djIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYg
djI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkg
djI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIg
djMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUg
djM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVu
YW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0
eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQz
MSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1
LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzg+Ci1jbGFzcyBW
YWx1ZUFycmF5MzggewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM4KFQxIHYxLCBUMiB2MiwgVDMg
djMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAg
djEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2
LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIy
IHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2Mjcs
IFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0g
ICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4KSA6IHYxXyh2
MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2
N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYx
Ml8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAg
ICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSks
IHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8o
djI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwg
djMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2
MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8
VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2
MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8p
LCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4o
djIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVf
KSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBz
dGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwg
c3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0
aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4Xyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0g
YXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVB
cnJheTM4JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNv
bnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2
IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsK
LSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsK
LSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsK
LSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsK
LSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsK
LSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsK
LSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsK
LSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsK
LSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsK
LSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsK
LSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAg
IHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOT4K
LWNsYXNzIFZhbHVlQXJyYXkzOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzkoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAg
ICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEg
djIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwg
VDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMz
IHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2Mzgs
IFQzOSB2MzkpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1
Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwKLSAg
ICAgIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUp
LCB2MTZfKHYxNiksCi0gICAgICB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBf
KHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLAotICAgICAgdjIzXyh2MjMpLCB2MjRfKHYyNCks
IHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwKLSAgICAgIHYyOV8o
djI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYz
NCksCi0gICAgICB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksIHYz
OV8odjM5KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdl
bmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8
VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNf
KSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0
YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGlj
X2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRp
Y19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nh
c3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19j
YXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8
VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0
PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKX07Ci0gICAgcmV0dXJuIFZh
bHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MzkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThf
OwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFf
OwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRf
OwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2Mjdf
OwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBf
OwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNf
OwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZf
OwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2Mzlf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAot
ICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQz
NCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFt
ZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwPgotY2xhc3MgVmFsdWVBcnJheTQwIHsK
LSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUg
djUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwg
VDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAg
ICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMs
IFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkg
djI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwg
VDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCkgOiB2
MV8odjEpLAotICAgICAgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2
KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwKLSAgICAgIHYxMF8odjEwKSwgdjExXyh2MTEp
LCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksCi0gICAgICB2MTZf
KHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2
MjEpLAotICAgICAgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2
MjZfKHYyNiksIHYyN18odjI3KSwKLSAgICAgIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYz
MCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksCi0gICAgICB2MzRfKHYzNCksIHYz
NV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLAotICAg
ICAgdjQwXyh2NDApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNf
Y2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxU
Pih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBf
KSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBz
dGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwg
c3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0
aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNf
Y2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2Fz
dDxUPih2NDBfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDAmIG90aGVyKTsKLQotICBjb25zdCBU
MSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87
Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNv
bnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3Qg
VDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3Qg
VDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3Qg
VDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3Qg
VDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3Qg
VDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3Qg
VDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3Qg
VDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3Qg
VDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3Qg
VDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3Qg
VDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0
eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQy
NywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFt
ZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1l
IFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBl
bmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+Ci1jbGFzcyBWYWx1ZUFy
cmF5NDEgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQxKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2
MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBU
MzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAg
djQwLAotICAgICAgVDQxIHY0MSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQp
LCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEw
Xyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAg
ICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwg
djIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2
MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2
MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYz
MyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2Mzgp
LAotICAgICAgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSB7fQotCi0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAg
ICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4o
djJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19j
YXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8
VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0
PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4o
djI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Mjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+
KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0
XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwg
c3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0
MV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0MSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsK
LSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29u
c3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDgg
djhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjEx
XzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0
XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3
XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIw
XzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIz
XzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2
XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5
XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMy
XzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1
XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4
XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQx
XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5
cGVuYW1lIFQ0Mj4KLWNsYXNzIFZhbHVlQXJyYXk0MiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5
NDIoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2
MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBU
MjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAg
ICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwg
VDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2
MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyKSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFf
KHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2
MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2
MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYz
NSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0gICAgICB2MzlfKHYzOSksIHY0
MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0Mikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBh
cnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0
PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3
XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0
YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBz
dGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRp
Y19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0
aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19j
YXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0
PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjQyXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0g
IH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1
bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQyJiBvdGhlcik7
Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAg
Y29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3Qg
VDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYx
MF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYx
M187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYx
Nl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYx
OV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYy
Ml87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYy
NV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYy
OF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYz
MV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYz
NF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYz
N187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0
MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwK
LSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBU
MzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5h
bWUgVDQzPgotY2xhc3MgVmFsdWVBcnJheTQzIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MyhU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5
IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwg
VDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2
MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBU
MjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIg
djMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywg
VDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2
NDMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2
KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEp
LCB2MTJfKHYxMiksIHYxM18odjEzKSwKLSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZf
KHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBfKHYyMCks
IHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLAot
ICAgICAgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYz
MCksIHYzMV8odjMxKSwKLSAgICAgIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYz
NV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksCi0gICAgICB2MzhfKHYzOCksIHYzOV8odjM5
KSwgdjQwXyh2NDApLCB2NDFfKHY0MSksIHY0Ml8odjQyKSwgdjQzXyh2NDMpIHt9Ci0KLSAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3Qg
ewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2Fz
dDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2
NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBz
dGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2Fz
dDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nh
c3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxU
Pih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
Nl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8
VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0Ml8pLCBzdGF0aWNfY2FzdDxUPih2
NDNfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAg
Ly8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lk
IG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87
Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNv
bnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4
IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYx
MV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYx
NF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYx
N187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYy
MF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYy
M187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYy
Nl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYy
OV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYz
Ml87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYz
NV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYz
OF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0
MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwK
LSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBU
MzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5h
bWUgVDQzLCB0eXBlbmFtZSBUNDQ+Ci1jbGFzcyBWYWx1ZUFycmF5NDQgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTQ0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMg
djEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwg
VDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1
IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAs
IFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYg
djM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAg
VDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2
NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0
Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAg
ICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwg
djI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2
MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2
MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksCi0gICAgICB2MzdfKHYz
NyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIp
LAotICAgICAgdjQzXyh2NDMpLCB2NDRfKHY0NCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBh
cnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0
PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3
XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0
YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBz
dGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRp
Y19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0
aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19j
YXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0
PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2Fz
dDxUPih2NDRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDQmIG90aGVyKTsKLQotICBjb25zdCBU
MSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87
Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNv
bnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3Qg
VDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3Qg
VDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3Qg
VDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3Qg
VDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3Qg
VDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3Qg
VDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3Qg
VDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3Qg
VDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3Qg
VDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3Qg
VDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3Qg
VDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3Qg
VDQ0IHY0NF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcs
IHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUg
VDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBU
NDU+Ci1jbGFzcyBWYWx1ZUFycmF5NDUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ1KFQxIHYx
LCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjks
Ci0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUg
djE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwg
VDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2
MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIs
IFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzgg
djM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0Mywg
VDQ0IHY0NCwgVDQ1IHY0NSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAot
ICAgICAgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2
MTApLCB2MTFfKHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2
MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYx
OSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYy
NF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2Mjlf
KHYyOSksCi0gICAgICB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyks
IHYzNF8odjM0KSwgdjM1Xyh2MzUpLAotICAgICAgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8o
djM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwKLSAgICAgIHY0Ml8odjQyKSwg
djQzXyh2NDMpLCB2NDRfKHY0NCksIHY0NV8odjQ1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0
YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRp
Y19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nh
c3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19j
YXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKX07Ci0gICAgcmV0dXJu
IFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRp
b24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBW
YWx1ZUFycmF5NDUmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsK
LSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29u
c3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkg
djlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2
MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2
MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2
MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2
MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2
MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2
MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2
MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2
MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2
MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2
MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2
NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2
NDVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1l
IFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBl
bmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwg
dHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAot
ICAgIHR5cGVuYW1lIFQ0Nj4KLWNsYXNzIFZhbHVlQXJyYXk0NiB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5NDYoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkg
djE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1
LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMx
IHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYs
IFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIg
djQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2KSA6IHYxXyh2MSksIHYyXyh2
MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2
OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwg
djEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2
MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIy
KSwKLSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3
Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEp
LCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZf
KHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksIHY0MF8odjQwKSwKLSAgICAg
IHY0MV8odjQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2NDUpLCB2
NDZfKHY0Nikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1H
ZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0
PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
XyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBz
dGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRp
Y19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0
aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19j
YXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0
PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2Fz
dDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+
KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQy
XyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8pfTsKLSAgICByZXR1cm4g
VmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXk0NiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwot
ICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25z
dCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2
OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYx
Ml87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYx
NV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYx
OF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYy
MV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYy
NF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYy
N187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYz
MF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYz
M187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYz
Nl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5IHYz
OV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQxXzsKLSAgY29uc3QgVDQyIHY0
Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQgdjQ0XzsKLSAgY29uc3QgVDQ1IHY0
NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAot
ICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0
NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3PgotY2xhc3Mg
VmFsdWVBcnJheTQ3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0NyhUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYx
NiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQy
MiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3
LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAot
ICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYz
OSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0
NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAgICAgIHYzXyh2
MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSks
IHYxMF8odjEwKSwKLSAgICAgIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8o
djE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksCi0gICAgICB2MTdfKHYxNyksIHYxOF8odjE4KSwg
djE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLAotICAgICAgdjIzXyh2
MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4
KSwKLSAgICAgIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwgdjMz
Xyh2MzMpLCB2MzRfKHYzNCksCi0gICAgICB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2Mzcp
LCB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLAotICAgICAgdjQxXyh2NDEpLCB2NDJf
KHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLCB2NDVfKHY0NSksIHY0Nl8odjQ2KSwKLSAgICAg
IHY0N18odjQ3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0
YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nh
c3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19j
YXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8
VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0
PFQ+KHY0N18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0NyYgb3RoZXIpOwotCi0gIGNvbnN0IFQx
IHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsK
LSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29u
c3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBU
MTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBU
MTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBU
MTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBU
MjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBU
MjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBU
MjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBU
MjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBU
MzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBU
MzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBU
MzggdjM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBU
NDEgdjQxXzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBU
NDQgdjQ0XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotICBjb25zdCBU
NDcgdjQ3XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywg
dHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBU
NDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0
NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4PgotY2xhc3Mg
VmFsdWVBcnJheTQ4IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0OChUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYx
NiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQy
MiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3
LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAot
ICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYz
OSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0
NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2
MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCks
IHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYx
MyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYx
OF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwKLSAgICAgIHYyMl8odjIy
KSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyks
Ci0gICAgICB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8o
djMyKSwgdjMzXyh2MzMpLAotICAgICAgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwg
djM3Xyh2MzcpLCB2MzhfKHYzOCksIHYzOV8odjM5KSwKLSAgICAgIHY0MF8odjQwKSwgdjQxXyh2
NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLCB2NDVfKHY0NSksCi0gICAgICB2
NDZfKHY0NiksIHY0N18odjQ3KSwgdjQ4Xyh2NDgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQg
YXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2Fz
dDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2
N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBz
dGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwg
c3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0
aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNf
Y2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2Fz
dDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY0Ml8pLCBzdGF0aWNfY2FzdDxUPih2NDNfKSwgc3RhdGljX2Nh
c3Q8VD4odjQ0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0NV8pLCBzdGF0aWNfY2FzdDxU
Pih2NDZfKSwgc3RhdGljX2Nhc3Q8VD4odjQ3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0
OF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0OCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsK
LSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29u
c3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDgg
djhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjEx
XzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0
XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3
XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIw
XzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIz
XzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2
XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5
XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMy
XzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1
XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4
XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQx
XzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQgdjQ0
XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotICBjb25zdCBUNDcgdjQ3
XzsKLSAgY29uc3QgVDQ4IHY0OF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0
LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1l
IFQ0OCwgdHlwZW5hbWUgVDQ5PgotY2xhc3MgVmFsdWVBcnJheTQ5IHsKLSBwdWJsaWM6Ci0gIFZh
bHVlQXJyYXk0OShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2
NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYx
MywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQx
OSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2
MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBU
MzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYz
NiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0
MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2
NDgsCi0gICAgICBUNDkgdjQ5KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCks
IHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBf
KHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAg
IHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2
MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYy
NCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYy
OV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMz
KSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCks
Ci0gICAgICB2MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0M18o
djQzKSwgdjQ0Xyh2NDQpLAotICAgICAgdjQ1Xyh2NDUpLCB2NDZfKHY0NiksIHY0N18odjQ3KSwg
djQ4Xyh2NDgpLCB2NDlfKHY0OSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3Bl
cmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0g
e3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRp
Y19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0
PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2Fz
dDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+
KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIx
XyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYy
OF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyks
IHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2
MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18p
LCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0
YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8pLCBz
dGF0aWNfY2FzdDxUPih2NDdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ4XyksIHN0YXRp
Y19jYXN0PFQ+KHY0OV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBw
cml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0
ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0OSYgb3RoZXIpOwotCi0gIGNv
bnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0
IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsK
LSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBj
b25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBj
b25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBj
b25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBj
b25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBj
b25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBj
b25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBj
b25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBj
b25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBj
b25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBj
b25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBj
b25zdCBUNDEgdjQxXzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBj
b25zdCBUNDQgdjQ0XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotICBj
b25zdCBUNDcgdjQ3XzsKLSAgY29uc3QgVDQ4IHY0OF87Ci0gIGNvbnN0IFQ0OSB2NDlfOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5h
bWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5
cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlw
ZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgs
IHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUg
VDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVu
YW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OSwgdHlwZW5h
bWUgVDUwPgotY2xhc3MgVmFsdWVBcnJheTUwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk1MChU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5
IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwg
VDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2
MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBU
MjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIg
djMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywg
VDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2
NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDks
Ci0gICAgICBUNTAgdjUwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1
Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBf
KHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCks
IHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8o
djI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwg
djM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0g
ICAgICB2MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0M18odjQz
KSwgdjQ0Xyh2NDQpLAotICAgICAgdjQ1Xyh2NDUpLCB2NDZfKHY0NiksIHY0N18odjQ3KSwgdjQ4
Xyh2NDgpLCB2NDlfKHY0OSksIHY1MF8odjUwKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0
YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19j
YXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8
VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0
PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4o
djQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDhf
KSwgc3RhdGljX2Nhc3Q8VD4odjQ5XyksIHN0YXRpY19jYXN0PFQ+KHY1MF8pfTsKLSAgICByZXR1
cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXk1MCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0
IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3
IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMw
IHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMz
IHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2
IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5
IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQxXzsKLSAgY29uc3QgVDQy
IHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQgdjQ0XzsKLSAgY29uc3QgVDQ1
IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotICBjb25zdCBUNDcgdjQ3XzsKLSAgY29uc3QgVDQ4
IHY0OF87Ci0gIGNvbnN0IFQ0OSB2NDlfOwotICBjb25zdCBUNTAgdjUwXzsKLX07Ci0KLSMgaWYg
R1RFU1RfSEFTX0NPTUJJTkUKLS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVT
RSBJTiBVU0VSIENPREUuCi0vLwotLy8gR2VuZXJhdGVzIHZhbHVlcyBmcm9tIHRoZSBDYXJ0ZXNp
YW4gcHJvZHVjdCBvZiB2YWx1ZXMgcHJvZHVjZWQKLS8vIGJ5IHRoZSBhcmd1bWVudCBnZW5lcmF0
b3JzLgotLy8KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1jbGFzcyBDYXJ0
ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMgotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6
dGVzdGluZzo6dHVwbGU8VDEsIFQyPiBQYXJhbVR5cGU7Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdl
bmVyYXRvcjIoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQyPiYgZzIpCi0gICAgICA6IGcxXyhnMSksIGcyXyhnMikge30KLSAgdmlydHVh
bCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjIoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3
IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2luKCksIGcyXywgZzJfLmJlZ2luKCkpOwotICB9
Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25z
dCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBn
Ml8uZW5kKCkpOwotICB9Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQ
YXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJh
dG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAg
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciYgY3VycmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMj4mIGcyLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+
OjppdGVyYXRvciYgY3VycmVudDIpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAg
YmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEp
LAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVu
dDJfKGN1cnJlbnQyKSAgICB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAg
IHJldHVybiBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxl
ZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0
ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFs
IHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJl
bnQyXzsKLSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJf
ID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRl
Q3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFj
ZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3Io
KnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNv
bnN0IHsgcmV0dXJuICZjdXJyZW50X3ZhbHVlXzsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMo
Y29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3Qgewot
ICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0
aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNh
biBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIu
QmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8g
Y29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0
b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0K
LSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZv
dGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBi
b3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQg
Y2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZl
IHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhl
ci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDJfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRl
cmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVn
aW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAg
ICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdp
bjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3Ro
ZXIuY3VycmVudDJfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0g
ICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAg
ICAgICBjdXJyZW50X3ZhbHVlXyA9IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfKTsK
LSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0
IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0g
ICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJh
bmdlLgotICAgICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAg
ICAgICAgY3VycmVudDJfID09IGVuZDJfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25z
dCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRl
ZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJy
ZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgUGFyYW1UeXBlIGN1cnJl
bnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjI6Okl0
ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMiYg
b3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQyPiBnMl87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
cjIKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4K
LWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzCi0gICAgOiBwdWJsaWMgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPiB7Ci0gcHVibGlj
OgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gUGFyYW1UeXBlOwotCi0g
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEs
Ci0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMz4mIGczKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpIHt9Ci0gIHZpcnR1
YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5l
dyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18s
Ci0gICAgICAgIGczXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3Io
dGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSk7Ci0g
IH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFy
YW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
MT46Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYg
ZzIsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBj
dXJyZW50MiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50MykKLSAgICAg
ICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhn
MS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdp
bigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJl
Z2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSAg
ICB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0
ZXJhdG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsK
LSAgICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2Yt
cmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJl
IGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgp
IHsKLSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQzXzsKLSAgICAgIGlm
IChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAg
ICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJf
KSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwot
ICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFs
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAg
ICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQ
YXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiAmY3VycmVudF92YWx1ZV87IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1U
eXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhhdmluZyB0aGUgc2FtZSBiYXNlIGdlbmVy
YXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0gICAgICAvLyBpdGVyYXRvciBpcyBvZiB0
aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCi0gICAgICBHVEVTVF9DSEVDS18oQmFz
ZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKLSAgICAgICAgICA8PCAiVGhl
IHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIKLSAgICAgICAgICA8PCAi
ZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAgIGNvbnN0IEl0
ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAgQ2hlY2tlZERvd25jYXN0VG9BY3R1YWxU
eXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRl
cmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlvbmQgdGhlaXIKLSAgICAgIC8vIHJl
c3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4gYSB2YXJpZXR5IG9mIGZhc2hpb25z
LAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0RW5kKCkuCi0gICAgICByZXR1cm4g
KEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkpIHx8Ci0gICAgICAgICAoCi0gICAgICAg
ICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJyZW50MV8gJiYKLSAgICAgICAgICBjdXJy
ZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAmJgotICAgICAgICAgIGN1cnJlbnQzXyA9
PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRl
cmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2Vf
KSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIu
ZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVn
aW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAg
ICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdp
bjNfKSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3Ro
ZXIuY3VycmVudDNfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0g
ICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAg
ICAgICBjdXJyZW50X3ZhbHVlXyA9IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAq
Y3VycmVudDNfKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdl
IG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRo
ZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBl
bmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVu
ZDFfIHx8Ci0gICAgICAgICAgY3VycmVudDJfID09IGVuZDJfIHx8Ci0gICAgICAgICAgY3VycmVu
dDNfID09IGVuZDNfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYg
b3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiog
Y29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10
aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0
aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+
OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgUGFyYW1UeXBlIGN1cnJlbnRfdmFsdWVfOwotICB9
OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjM6Okl0ZXJhdG9yCi0KLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMyYgb3RoZXIpOwotCi0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiBn
Ml87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci19OyAgLy8gY2xhc3MgQ2FydGVz
aWFuUHJvZHVjdEdlbmVyYXRvcjMKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yNAotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPCA6OnRlc3Rpbmc6
OnR1cGxlPFQxLCBUMiwgVDMsIFQ0PiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5n
Ojp0dXBsZTxUMSwgVDIsIFQzLCBUND4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I0KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwg
ZzNfKGczKSwgZzRfKGc0KSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
NCgpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJl
Z2luKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uYmVn
aW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNfLAotICAgICAgICBnM18uYmVnaW4oKSwgZzRfLCBn
NF8uYmVnaW4oKSk7Ci0gIH0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFt
VHlwZT4qIEVuZCgpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywg
ZzFfLmVuZCgpLCBnMl8sIGcyXy5lbmQoKSwgZzNfLCBnM18uZW5kKCksCi0gICAgICAgIGc0Xywg
ZzRfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVy
YXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQy
Pjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBn
MywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1
cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0KQotICAgICAg
ICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcx
LmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2lu
KCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVn
aW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAot
ICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRf
KGN1cnJlbnQ0KSAgICB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAg
IHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJl
dHVybiBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBv
biBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJh
dG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZv
aWQgQWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQ0
XzsKLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5kNF8pIHsKLSAgICAgICAgY3VycmVudDRfID0g
YmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVu
dDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJlbnQzXyA9IGJlZ2luM187Ci0gICAgICAgICsr
Y3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQyXyA9PSBlbmQyXykgewotICAg
ICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAgICAgICArK2N1cnJlbnQxXzsKLSAgICAgIH0K
LSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENsb25lKCkgY29uc3QgewotICAgICAgcmV0dXJu
IG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1UeXBl
KiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gJmN1cnJlbnRfdmFsdWVfOyB9Ci0gICAgdmlydHVh
bCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90
aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3Vh
cmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUg
dHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0
b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFt
IGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlm
ZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciog
dHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25z
dCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBl
cXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZl
IHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAg
IC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgp
ICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJl
bnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09
IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYKLSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAgICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDRfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRl
cmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVn
aW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAg
ICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdp
bjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3Ro
ZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAgICAgICAg
ZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVudDNfKSwK
LSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3RoZXIuZW5k
NF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSB7Ci0gICAgICBDb21wdXRl
Q3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkg
ewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXyA9IFBhcmFtVHlw
ZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJl
bnQ0Xyk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0
IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9m
IHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9m
IGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8
fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9
PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XzsKLSAgICB9Ci0KLSAgICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9p
ZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ld
XyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJz
ZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9y
LgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4x
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFf
OwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwot
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsK
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwot
ICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAg
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIFBhcmFt
VHlwZSBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5l
cmF0b3I0OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdl
bmVyYXRvcjQmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4g
ZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotfTsgIC8vIGNsYXNzIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I0Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KLWNsYXNzIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I1Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZh
Y2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1PiA+IHsKLSBwdWJsaWM6Ci0g
IHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDU+IFBhcmFtVHlwZTsK
LQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNShjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4m
IGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUpCi0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhn
MyksIGc0XyhnNCksIGc1XyhnNSkge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcjUoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFf
LmJlZ2luKCksIGcyXywgZzJfLmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0
XywgZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5l
dyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNf
LmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCkpOwotICB9Ci0K
LSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+Ojpp
dGVyYXRvciYgY3VycmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAot
ICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVu
dDIsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDQ+OjppdGVyYXRvciYgY3VycmVudDQsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUNT4mIGc1LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVy
YXRvciYgY3VycmVudDUpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAgYmVnaW4x
XyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEpLAotICAg
ICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVudDJfKGN1
cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQoKSks
IGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40XyhnNC5iZWdpbigpKSwgZW5k
NF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpLAotICAgICAgICAgIGJlZ2luNV8oZzUu
YmVnaW4oKSksIGVuZDVfKGc1LmVuZCgpKSwgY3VycmVudDVfKGN1cnJlbnQ1KSAgICB7Ci0gICAg
ICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkg
e30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBl
PiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAgICB9Ci0g
ICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRl
cmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBl
bmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAg
IGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIGlmIChjdXJyZW50
NV8gPT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytj
dXJyZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAg
ICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQot
ICAgICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdp
bjNfOwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8g
PT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJy
ZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAg
IHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0
IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFs
IGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuICZjdXJyZW50X3ZhbHVl
XzsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFj
ZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJh
c2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9y
IGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NI
RUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAg
IDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAg
ICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAg
Y29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RU
b0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJl
cG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAg
ICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2Yg
ZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAg
IHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgK
LSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAg
ICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3Vy
cmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8g
PT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBl
ZF9vdGhlci0+Y3VycmVudDVfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3Io
Y29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAg
ICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8p
LAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhv
dGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJy
ZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwK
LSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3Vy
cmVudDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8o
b3RoZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAg
ICAgYmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAot
ICAgICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVu
dFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAg
ICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXyA9IFBhcmFtVHlwZSgqY3Vy
cmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0Xywg
KmN1cnJlbnQ1Xyk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBX
ZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0
aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUg
ZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBl
bmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJl
bnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAg
ICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
SXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBh
cmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZp
bmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVu
dFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVfOwotICAgIFBhcmFtVHlwZSBjdXJyZW50X3ZhbHVlXzsK
LSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1OjpJdGVyYXRvcgotCi0g
IC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9p
ZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjUmIG90aGVyKTsKLQot
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
Mj4gZzJfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUND4gZzRfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotfTsgIC8v
IGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNj4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2Ci0gICAg
OiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQsIFQ1LAotICAgICAgICBUNj4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVz
dGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gUGFyYW1UeXBlOwotCi0gIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I2KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAg
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4m
IGczLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYpCi0gICAg
ICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2XyhnNikg
e30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjYoKSB7fQotCi0gIHZpcnR1
YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAg
ICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2luKCksIGcyXywgZzJfLmJl
Z2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0XywgZzRfLmJlZ2luKCksIGc1Xywg
ZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJ
dGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNfLmVu
ZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCksIGc2XywgZzZfLmVu
ZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihj
b25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRl
cmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQz
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0
b3ImIGN1cnJlbnQ2KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8o
ZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAg
ICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJy
ZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBj
dXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRf
KGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJl
Z2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAg
YmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYp
ICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+
SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFj
ZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2Vf
OwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1v
Zi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3Qg
YmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNl
KCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDZfOwotICAgICAg
aWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8gPSBiZWdpbjZfOwot
ICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NV8gPT0gZW5k
NV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytjdXJyZW50NF87
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAgICAgIGN1cnJl
bnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQotICAgICAgaWYg
KGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdpbjNfOwotICAg
ICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5kMl8p
IHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87Ci0g
ICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAg
IHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBh
cmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuICZjdXJyZW50X3ZhbHVlXzsgfQotICAg
IHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJh
dG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRo
ZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNl
R2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUg
cHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJm
cm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRl
cmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5
cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVy
YXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVz
cGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMs
Ci0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAo
QXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAg
ICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJl
bnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNfID09
IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290aGVyLT5jdXJyZW50
Nl8pOwotICAgIH0KLQotICAgcHJpdmF0ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYg
b3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90
aGVyLmJlZ2luMV8pLAotICAgICAgICBlbmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJl
bnQxXyhvdGhlci5jdXJyZW50MV8pLAotICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAot
ICAgICAgICBlbmQyXyhvdGhlci5lbmQyXyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJy
ZW50Ml8pLAotICAgICAgICBiZWdpbjNfKG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQzXyhv
dGhlci5lbmQzXyksCi0gICAgICAgIGN1cnJlbnQzXyhvdGhlci5jdXJyZW50M18pLAotICAgICAg
ICBiZWdpbjRfKG90aGVyLmJlZ2luNF8pLAotICAgICAgICBlbmQ0XyhvdGhlci5lbmQ0XyksCi0g
ICAgICAgIGN1cnJlbnQ0XyhvdGhlci5jdXJyZW50NF8pLAotICAgICAgICBiZWdpbjVfKG90aGVy
LmJlZ2luNV8pLAotICAgICAgICBlbmQ1XyhvdGhlci5lbmQ1XyksCi0gICAgICAgIGN1cnJlbnQ1
XyhvdGhlci5jdXJyZW50NV8pLAotICAgICAgICBiZWdpbjZfKG90aGVyLmJlZ2luNl8pLAotICAg
ICAgICBlbmQ2XyhvdGhlci5lbmQ2XyksCi0gICAgICAgIGN1cnJlbnQ2XyhvdGhlci5jdXJyZW50
Nl8pIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIENv
bXB1dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0gICAgICAgIGN1cnJl
bnRfdmFsdWVfID0gUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18s
Ci0gICAgICAgICAgICAqY3VycmVudDRfLCAqY3VycmVudDVfLCAqY3VycmVudDZfKTsKLSAgICB9
Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJh
dG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAv
LyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgot
ICAgICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAg
Y3VycmVudDJfID09IGVuZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNfIHx8Ci0g
ICAgICAgICAgY3VycmVudDRfID09IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVudDVfID09IGVu
ZDVfIHx8Ci0gICAgICAgICAgY3VycmVudDZfID09IGVuZDZfOwotICAgIH0KLQotICAgIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFu
ZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4K
LSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0g
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwot
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0g
ICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBjdXJyZW50Nl87Ci0gICAgUGFyYW1UeXBlIGN1cnJl
bnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjY6Okl0
ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNiYg
b3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQyPiBnMl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiBnNF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBn
NV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiBnNl87Ci19OyAgLy8gY2xhc3MgQ2FydGVz
aWFuUHJvZHVjdEdlbmVyYXRvcjYKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNz4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3Ci0gICAg
OiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDc+ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6
OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiBQYXJhbVR5cGU7Ci0K
LSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjcoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBn
MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LCBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUNT4mIGc1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBn
NiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNykKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcy
KSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSB7fQotICB2aXJ0
dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNygpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uYmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNf
LAotICAgICAgICBnM18uYmVnaW4oKSwgZzRfLCBnNF8uYmVnaW4oKSwgZzVfLCBnNV8uYmVnaW4o
KSwgZzZfLCBnNl8uYmVnaW4oKSwgZzdfLAotICAgICAgICBnN18uYmVnaW4oKSk7Ci0gIH0KLSAg
dmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IHsK
LSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmVuZCgpLCBnMl8sIGcyXy5l
bmQoKSwgZzNfLCBnM18uZW5kKCksCi0gICAgICAgIGc0XywgZzRfLmVuZCgpLCBnNV8sIGc1Xy5l
bmQoKSwgZzZfLCBnNl8uZW5kKCksIGc3XywgZzdfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToK
LSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBn
MSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1
cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6
aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJl
bnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAot
ICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFf
KGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQo
KSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwg
ZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8o
ZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAg
ICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJy
ZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBj
dXJyZW50Nl8oY3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVnaW4oKSksIGVuZDdf
KGc3LmVuZCgpKSwgY3VycmVudDdfKGN1cnJlbnQ3KSAgICB7Ci0gICAgICBDb21wdXRlQ3VycmVu
dFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAgIHZpcnR1
YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRv
cigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2YW5jZSBz
aG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8g
c28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVp
dGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCghQXRFbmQo
KSk7Ci0gICAgICArK2N1cnJlbnQ3XzsKLSAgICAgIGlmIChjdXJyZW50N18gPT0gZW5kN18pIHsK
LSAgICAgICAgY3VycmVudDdfID0gYmVnaW43XzsKLSAgICAgICAgKytjdXJyZW50Nl87Ci0gICAg
ICB9Ci0gICAgICBpZiAoY3VycmVudDZfID09IGVuZDZfKSB7Ci0gICAgICAgIGN1cnJlbnQ2XyA9
IGJlZ2luNl87Ci0gICAgICAgICsrY3VycmVudDVfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJl
bnQ1XyA9PSBlbmQ1XykgewotICAgICAgICBjdXJyZW50NV8gPSBiZWdpbjVfOwotICAgICAgICAr
K2N1cnJlbnQ0XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5kNF8pIHsKLSAg
ICAgICAgY3VycmVudDRfID0gYmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187Ci0gICAgICB9
Ci0gICAgICBpZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJlbnQzXyA9IGJl
Z2luM187Ci0gICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQy
XyA9PSBlbmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAgICAgICArK2N1
cnJlbnQxXzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0g
ICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENsb25lKCkgY29u
c3QgewotICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1
YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gJmN1cnJlbnRfdmFs
dWVfOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhlIHNhbWUg
YmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8gaXRlcmF0
b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAgR1RFU1Rf
Q0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0gICAgICAg
ICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAiCi0gICAg
ICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAg
ICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNrZWREb3duY2Fz
dFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdlIG11c3Qg
cmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRoZWlyCi0g
ICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFyaWV0eSBv
ZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgpLgotICAg
ICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAgICAgICAg
KAotICAgICAgICAgIGN1cnJlbnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDFfICYmCi0gICAg
ICAgICAgY3VycmVudDJfID09IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYKLSAgICAgICAgICBj
dXJyZW50M18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAgICAgIGN1cnJlbnQ0
XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDRfICYmCi0gICAgICAgICAgY3VycmVudDVfID09IHR5
cGVkX290aGVyLT5jdXJyZW50NV8gJiYKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQ2XyAmJgotICAgICAgICAgIGN1cnJlbnQ3XyA9PSB0eXBlZF9vdGhlci0+Y3Vy
cmVudDdfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0
b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4x
XyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBj
dXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJf
KSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIu
Y3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAgICAgICAgZW5k
M18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVudDNfKSwKLSAg
ICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3RoZXIuZW5kNF8p
LAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAgICAgYmVnaW41Xyhv
dGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAotICAgICAgICBjdXJy
ZW50NV8ob3RoZXIuY3VycmVudDVfKSwKLSAgICAgICAgYmVnaW42XyhvdGhlci5iZWdpbjZfKSwK
LSAgICAgICAgZW5kNl8ob3RoZXIuZW5kNl8pLAotICAgICAgICBjdXJyZW50Nl8ob3RoZXIuY3Vy
cmVudDZfKSwKLSAgICAgICAgYmVnaW43XyhvdGhlci5iZWdpbjdfKSwKLSAgICAgICAgZW5kN18o
b3RoZXIuZW5kN18pLAotICAgICAgICBjdXJyZW50N18ob3RoZXIuY3VycmVudDdfKSB7Ci0gICAg
ICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVu
dFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXyA9
IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAg
ICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3Xyk7Ci0gICAg
fQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVy
YXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAg
Ly8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4K
LSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAg
IGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAot
ICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBl
bmQ1XyB8fAotICAgICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAotICAgICAgICAgIGN1cnJl
bnQ3XyA9PSBlbmQ3XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3Im
IG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4q
IGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGkt
dGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMg
dGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQz
Pjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6
aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1
Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
NT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRl
cmF0b3IgY3VycmVudDVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6
aXRlcmF0b3IgYmVnaW42XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46
Oml0ZXJhdG9yIGVuZDZfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0
b3IgY3VycmVudDZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRl
cmF0b3IgYmVnaW43XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0
ZXJhdG9yIGVuZDdfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3Ig
Y3VycmVudDdfOwotICAgIFBhcmFtVHlwZSBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjcmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRf
OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUNj4gZzZfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4gZzdfOwotfTsgIC8vIGNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4PgotY2xhc3MgQ2FydGVzaWFuUHJv
ZHVjdEdlbmVyYXRvcjgKLSAgICA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0
ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LAotICAgICAgICBUNywgVDg+ID4g
ewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOD4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4
KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiYg
ZzcsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4mIGc4KQotICAgICAgOiBnMV8oZzEp
LCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLAot
ICAgICAgICAgIGc4XyhnOCkge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
cjgoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBC
ZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJl
Z2luKCksIGcyXywgZzJfLmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0Xywg
ZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2luKCksIGc3XywKLSAg
ICAgICAgZzdfLmJlZ2luKCksIGc4XywgZzhfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJu
IG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGczXywg
ZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCksIGc2Xywg
ZzZfLmVuZCgpLCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBnOF8uZW5kKCkpOwotICB9
Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFt
R2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+
OjppdGVyYXRvciYgY3VycmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcy
LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3Vy
cmVudDIsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDQ+OjppdGVyYXRvciYgY3VycmVudDQsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNT4mIGc1LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+Ojpp
dGVyYXRvciYgY3VycmVudDUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LAot
ICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciYgY3VycmVu
dDYsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciYgY3VycmVudDcsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUOD4mIGc4LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDg+OjppdGVyYXRvciYgY3VycmVudDgpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0g
ICAgICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8o
Y3VycmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgp
KSwgY3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBl
bmQzXyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40Xyhn
NC5iZWdpbigpKSwgZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpLAotICAgICAg
ICAgIGJlZ2luNV8oZzUuYmVnaW4oKSksIGVuZDVfKGc1LmVuZCgpKSwgY3VycmVudDVfKGN1cnJl
bnQ1KSwKLSAgICAgICAgICBiZWdpbjZfKGc2LmJlZ2luKCkpLCBlbmQ2XyhnNi5lbmQoKSksIGN1
cnJlbnQ2XyhjdXJyZW50NiksCi0gICAgICAgICAgYmVnaW43XyhnNy5iZWdpbigpKSwgZW5kN18o
ZzcuZW5kKCkpLCBjdXJyZW50N18oY3VycmVudDcpLAotICAgICAgICAgIGJlZ2luOF8oZzguYmVn
aW4oKSksIGVuZDhfKGc4LmVuZCgpKSwgY3VycmVudDhfKGN1cnJlbnQ4KSAgICB7Ci0gICAgICBD
b21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30K
LQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiog
QmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAgICB9Ci0gICAg
Ly8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0
b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQg
b2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIGFz
c2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQ4XzsKLSAgICAgIGlmIChjdXJyZW50OF8g
PT0gZW5kOF8pIHsKLSAgICAgICAgY3VycmVudDhfID0gYmVnaW44XzsKLSAgICAgICAgKytjdXJy
ZW50N187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDdfID09IGVuZDdfKSB7Ci0gICAgICAg
IGN1cnJlbnQ3XyA9IGJlZ2luN187Ci0gICAgICAgICsrY3VycmVudDZfOwotICAgICAgfQotICAg
ICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8gPSBiZWdpbjZf
OwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NV8gPT0g
ZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytjdXJyZW50
NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAgICAgIGN1
cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQotICAgICAg
aWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdpbjNfOwot
ICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5k
Ml8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87
Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1
YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAg
ICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0
IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuICZjdXJyZW50X3ZhbHVlXzsgfQot
ICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2Vu
ZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9m
IHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhC
YXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJU
aGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8
ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3Qg
SXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVh
bFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBp
dGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8g
cmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlv
bnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVy
biAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAg
ICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1
cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNf
ID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlw
ZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhl
ci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ3XyAm
JgotICAgICAgICAgIGN1cnJlbnQ4XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDhfKTsKLSAgICB9
Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAg
ICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFf
KSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIu
Y3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5k
Ml8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAg
ICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18p
LAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVudDNfKSwKLSAgICAgICAgYmVnaW40Xyhv
dGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3RoZXIuZW5kNF8pLAotICAgICAgICBjdXJy
ZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAgICAgYmVnaW41XyhvdGhlci5iZWdpbjVfKSwK
LSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAotICAgICAgICBjdXJyZW50NV8ob3RoZXIuY3Vy
cmVudDVfKSwKLSAgICAgICAgYmVnaW42XyhvdGhlci5iZWdpbjZfKSwKLSAgICAgICAgZW5kNl8o
b3RoZXIuZW5kNl8pLAotICAgICAgICBjdXJyZW50Nl8ob3RoZXIuY3VycmVudDZfKSwKLSAgICAg
ICAgYmVnaW43XyhvdGhlci5iZWdpbjdfKSwKLSAgICAgICAgZW5kN18ob3RoZXIuZW5kN18pLAot
ICAgICAgICBjdXJyZW50N18ob3RoZXIuY3VycmVudDdfKSwKLSAgICAgICAgYmVnaW44XyhvdGhl
ci5iZWdpbjhfKSwKLSAgICAgICAgZW5kOF8ob3RoZXIuZW5kOF8pLAotICAgICAgICBjdXJyZW50
OF8ob3RoZXIuY3VycmVudDhfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAg
fQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgp
KQotICAgICAgICBjdXJyZW50X3ZhbHVlXyA9IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVu
dDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1
cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1cnJlbnQ4Xyk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQo
KSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQg
b2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJh
dG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAg
ICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQy
XyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0
XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAg
IGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAotICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAot
ICAgICAgICAgIGN1cnJlbnQ4XyA9PSBlbmQ4XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ld
XyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8g
Y3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgYmVnaW42XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGVuZDZfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ2Pjo6aXRlcmF0b3IgY3VycmVudDZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgYmVnaW43XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUNz46Oml0ZXJhdG9yIGVuZDdfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ3Pjo6aXRlcmF0b3IgY3VycmVudDdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ4Pjo6aXRlcmF0b3IgYmVnaW44XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUOD46Oml0ZXJhdG9yIGVuZDhfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4
Pjo6aXRlcmF0b3IgY3VycmVudDhfOwotICAgIFBhcmFtVHlwZSBjdXJyZW50X3ZhbHVlXzsKLSAg
fTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4OjpJdGVyYXRvcgotCi0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjgmIG90aGVyKTsKLQotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4g
ZzJfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUND4gZzRfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUNj4gZzZfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4gZzdfOwot
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4gZzhfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I4Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I5Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6
dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDcsIFQ4LCBU
OT4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I5KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBn
NSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYsIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQ3PiYgZzcsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4mIGc4LCBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUOT4mIGc5KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMp
LCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLCBnOF8oZzgpLAotICAgICAgICAg
IGc5XyhnOSkge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkoKSB7fQot
Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNv
bnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2luKCksIGcy
XywgZzJfLmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0XywgZzRfLmJlZ2lu
KCksIGc1XywgZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2luKCksIGc3XywKLSAgICAgICAgZzdf
LmJlZ2luKCksIGc4XywgZzhfLmJlZ2luKCksIGc5XywgZzlfLmJlZ2luKCkpOwotICB9Ci0gIHZp
cnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0g
ICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5k
KCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5k
KCksIGc2XywgZzZfLmVuZCgpLCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBnOF8uZW5k
KCksIGc5XywgZzlfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3Ig
OiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoK
LSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBi
YXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRl
cmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0
b3ImIGN1cnJlbnQ3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4LAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3ImIGN1cnJlbnQ5KQotICAgICAgICA6IGJhc2Vf
KGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwg
Y3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQy
XyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5i
ZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAg
IGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0
KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJl
bnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYu
ZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVnaW4o
KSksIGVuZDdfKGc3LmVuZCgpKSwgY3VycmVudDdfKGN1cnJlbnQ3KSwKLSAgICAgICAgICBiZWdp
bjhfKGc4LmJlZ2luKCkpLCBlbmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4XyhjdXJyZW50OCksCi0g
ICAgICAgICAgYmVnaW45XyhnOS5iZWdpbigpKSwgZW5kOV8oZzkuZW5kKCkpLCBjdXJyZW50OV8o
Y3VycmVudDkpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAg
dmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0
dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9u
IGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0
b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9p
ZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDlf
OwotICAgICAgaWYgKGN1cnJlbnQ5XyA9PSBlbmQ5XykgewotICAgICAgICBjdXJyZW50OV8gPSBi
ZWdpbjlfOwotICAgICAgICArK2N1cnJlbnQ4XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50
OF8gPT0gZW5kOF8pIHsKLSAgICAgICAgY3VycmVudDhfID0gYmVnaW44XzsKLSAgICAgICAgKytj
dXJyZW50N187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDdfID09IGVuZDdfKSB7Ci0gICAg
ICAgIGN1cnJlbnQ3XyA9IGJlZ2luN187Ci0gICAgICAgICsrY3VycmVudDZfOwotICAgICAgfQot
ICAgICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8gPSBiZWdp
bjZfOwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NV8g
PT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytjdXJy
ZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAgICAg
IGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQotICAg
ICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdpbjNf
OwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8gPT0g
ZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50
MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZp
cnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsK
LSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNv
bnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuICZjdXJyZW50X3ZhbHVlXzsg
fQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2Ug
Z2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlz
IG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNL
XyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8
ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAg
IDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29u
c3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0Fj
dHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9y
dCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAg
Ly8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFz
aGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJl
dHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAg
ICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAg
IGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVu
dDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0g
dHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9v
dGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290aGVyLT5j
dXJyZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ3
XyAmJgotICAgICAgICAgIGN1cnJlbnQ4XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDhfICYmCi0g
ICAgICAgICAgY3VycmVudDlfID09IHR5cGVkX290aGVyLT5jdXJyZW50OV8pOwotICAgIH0KLQot
ICAgcHJpdmF0ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAg
IDogYmFzZV8ob3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2luMV8pLAot
ICAgICAgICBlbmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhlci5jdXJy
ZW50MV8pLAotICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBlbmQyXyhv
dGhlci5lbmQyXyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAotICAgICAg
ICBiZWdpbjNfKG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQzXyksCi0g
ICAgICAgIGN1cnJlbnQzXyhvdGhlci5jdXJyZW50M18pLAotICAgICAgICBiZWdpbjRfKG90aGVy
LmJlZ2luNF8pLAotICAgICAgICBlbmQ0XyhvdGhlci5lbmQ0XyksCi0gICAgICAgIGN1cnJlbnQ0
XyhvdGhlci5jdXJyZW50NF8pLAotICAgICAgICBiZWdpbjVfKG90aGVyLmJlZ2luNV8pLAotICAg
ICAgICBlbmQ1XyhvdGhlci5lbmQ1XyksCi0gICAgICAgIGN1cnJlbnQ1XyhvdGhlci5jdXJyZW50
NV8pLAotICAgICAgICBiZWdpbjZfKG90aGVyLmJlZ2luNl8pLAotICAgICAgICBlbmQ2XyhvdGhl
ci5lbmQ2XyksCi0gICAgICAgIGN1cnJlbnQ2XyhvdGhlci5jdXJyZW50Nl8pLAotICAgICAgICBi
ZWdpbjdfKG90aGVyLmJlZ2luN18pLAotICAgICAgICBlbmQ3XyhvdGhlci5lbmQ3XyksCi0gICAg
ICAgIGN1cnJlbnQ3XyhvdGhlci5jdXJyZW50N18pLAotICAgICAgICBiZWdpbjhfKG90aGVyLmJl
Z2luOF8pLAotICAgICAgICBlbmQ4XyhvdGhlci5lbmQ4XyksCi0gICAgICAgIGN1cnJlbnQ4Xyhv
dGhlci5jdXJyZW50OF8pLAotICAgICAgICBiZWdpbjlfKG90aGVyLmJlZ2luOV8pLAotICAgICAg
ICBlbmQ5XyhvdGhlci5lbmQ5XyksCi0gICAgICAgIGN1cnJlbnQ5XyhvdGhlci5jdXJyZW50OV8p
IHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIENvbXB1
dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0gICAgICAgIGN1cnJlbnRf
dmFsdWVfID0gUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18sCi0g
ICAgICAgICAgICAqY3VycmVudDRfLCAqY3VycmVudDVfLCAqY3VycmVudDZfLCAqY3VycmVudDdf
LCAqY3VycmVudDhfLAotICAgICAgICAgICAgKmN1cnJlbnQ5Xyk7Ci0gICAgfQotICAgIGJvb2wg
QXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRo
ZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50
IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVy
bgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9
PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1
cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAg
ICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAotICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3
XyB8fAotICAgICAgICAgIGN1cnJlbnQ4XyA9PSBlbmQ4XyB8fAotICAgICAgICAgIGN1cnJlbnQ5
XyA9PSBlbmQ5XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1l
bnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90
aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNv
bnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGgg
cmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhl
IGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQy
Pjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6
aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0
Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
ND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRl
cmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6
aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46
Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0
b3IgY3VycmVudDVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRl
cmF0b3IgYmVnaW42XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0
ZXJhdG9yIGVuZDZfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3Ig
Y3VycmVudDZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0
b3IgYmVnaW43XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJh
dG9yIGVuZDdfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgY3Vy
cmVudDdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3Ig
YmVnaW44XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9y
IGVuZDhfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgY3VycmVu
dDhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3IgYmVn
aW45XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOT46Oml0ZXJhdG9yIGVu
ZDlfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3IgY3VycmVudDlf
OwotICAgIFBhcmFtVHlwZSBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3I5OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0g
YXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVz
aWFuUHJvZHVjdEdlbmVyYXRvcjkmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
MT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4gZzZf
OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4gZzdfOwotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUOD4gZzhfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOT4gZzlfOwotfTsgIC8vIGNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwCi0gICAgOiBwdWJsaWMg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwKLSAgICAgICAgVDcsIFQ4LCBUOSwgVDEwPiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVk
ZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTA+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMTAoY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIs
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUND4mIGc0LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4mIGc1LAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDY+JiBnNiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiYgZzgsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ5PiYg
ZzksCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMTA+JiBnMTApCi0gICAgICA6IGcxXyhn
MSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2XyhnNiksIGc3XyhnNyks
IGc4XyhnOCksCi0gICAgICAgICAgZzlfKGc5KSwgZzEwXyhnMTApIHt9Ci0gIHZpcnR1YWwgfkNh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMCgpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRl
cmF0b3IodGhpcywgZzFfLCBnMV8uYmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNfLAotICAg
ICAgICBnM18uYmVnaW4oKSwgZzRfLCBnNF8uYmVnaW4oKSwgZzVfLCBnNV8uYmVnaW4oKSwgZzZf
LCBnNl8uYmVnaW4oKSwgZzdfLAotICAgICAgICBnN18uYmVnaW4oKSwgZzhfLCBnOF8uYmVnaW4o
KSwgZzlfLCBnOV8uYmVnaW4oKSwgZzEwXywgZzEwXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFs
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJl
dHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBn
M18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpLCBn
Nl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCksIGc4XywKLSAgICAgICAgZzhfLmVuZCgpLCBn
OV8sIGc5Xy5lbmQoKSwgZzEwXywgZzEwXy5lbmQoKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNs
YXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7
Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0g
ICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yJiBjdXJyZW50
MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsCi0gICAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJyZW50MiwKLSAgICAgIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50MywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQ0PiYgZzQsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJh
dG9yJiBjdXJyZW50NCwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yJiBjdXJyZW50NSwK
LSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYsCi0gICAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yJiBjdXJyZW50NiwKLSAgICAgIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ3PiYgZzcsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUNz46Oml0ZXJhdG9yJiBjdXJyZW50NywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4
PiYgZzgsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9y
JiBjdXJyZW50OCwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ5PiYgZzksCi0gICAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOT46Oml0ZXJhdG9yJiBjdXJyZW50OSwKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxMD4mIGcxMCwKLSAgICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQxMD46Oml0ZXJhdG9yJiBjdXJyZW50MTApCi0gICAgICAgIDogYmFz
ZV8oYmFzZSksCi0gICAgICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkp
LCBjdXJyZW50MV8oY3VycmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVu
ZDJfKGcyLmVuZCgpKSwgY3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGcz
LmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAg
ICAgYmVnaW40XyhnNC5iZWdpbigpKSwgZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVu
dDQpLAotICAgICAgICAgIGJlZ2luNV8oZzUuYmVnaW4oKSksIGVuZDVfKGc1LmVuZCgpKSwgY3Vy
cmVudDVfKGN1cnJlbnQ1KSwKLSAgICAgICAgICBiZWdpbjZfKGc2LmJlZ2luKCkpLCBlbmQ2Xyhn
Ni5lbmQoKSksIGN1cnJlbnQ2XyhjdXJyZW50NiksCi0gICAgICAgICAgYmVnaW43XyhnNy5iZWdp
bigpKSwgZW5kN18oZzcuZW5kKCkpLCBjdXJyZW50N18oY3VycmVudDcpLAotICAgICAgICAgIGJl
Z2luOF8oZzguYmVnaW4oKSksIGVuZDhfKGc4LmVuZCgpKSwgY3VycmVudDhfKGN1cnJlbnQ4KSwK
LSAgICAgICAgICBiZWdpbjlfKGc5LmJlZ2luKCkpLCBlbmQ5XyhnOS5lbmQoKSksIGN1cnJlbnQ5
XyhjdXJyZW50OSksCi0gICAgICAgICAgYmVnaW4xMF8oZzEwLmJlZ2luKCkpLCBlbmQxMF8oZzEw
LmVuZCgpKSwgY3VycmVudDEwXyhjdXJyZW50MTApICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50
VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVh
bCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9y
KCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNo
b3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBz
byBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0
aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgp
KTsKLSAgICAgICsrY3VycmVudDEwXzsKLSAgICAgIGlmIChjdXJyZW50MTBfID09IGVuZDEwXykg
ewotICAgICAgICBjdXJyZW50MTBfID0gYmVnaW4xMF87Ci0gICAgICAgICsrY3VycmVudDlfOwot
ICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ5XyA9PSBlbmQ5XykgewotICAgICAgICBjdXJyZW50
OV8gPSBiZWdpbjlfOwotICAgICAgICArK2N1cnJlbnQ4XzsKLSAgICAgIH0KLSAgICAgIGlmIChj
dXJyZW50OF8gPT0gZW5kOF8pIHsKLSAgICAgICAgY3VycmVudDhfID0gYmVnaW44XzsKLSAgICAg
ICAgKytjdXJyZW50N187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDdfID09IGVuZDdfKSB7
Ci0gICAgICAgIGN1cnJlbnQ3XyA9IGJlZ2luN187Ci0gICAgICAgICsrY3VycmVudDZfOwotICAg
ICAgfQotICAgICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8g
PSBiZWdpbjZfOwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJy
ZW50NV8gPT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAg
KytjdXJyZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0g
ICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAg
fQotICAgICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBi
ZWdpbjNfOwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50
Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytj
dXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNv
bnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0
dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuICZjdXJyZW50X3Zh
bHVlXzsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1l
IGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJh
dG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNU
X0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAg
ICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAg
ICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAg
ICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNh
c3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0
IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgot
ICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkg
b2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAg
ICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAg
ICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAg
ICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAg
Y3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50
NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0
eXBlZF9vdGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290
aGVyLT5jdXJyZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXItPmN1
cnJlbnQ3XyAmJgotICAgICAgICAgIGN1cnJlbnQ4XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDhf
ICYmCi0gICAgICAgICAgY3VycmVudDlfID09IHR5cGVkX290aGVyLT5jdXJyZW50OV8gJiYKLSAg
ICAgICAgICBjdXJyZW50MTBfID09IHR5cGVkX290aGVyLT5jdXJyZW50MTBfKTsKLSAgICB9Ci0K
LSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAg
ICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwK
LSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3Vy
cmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8o
b3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAg
ICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAot
ICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVudDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhl
ci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3RoZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50
NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAgICAgYmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAg
ICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAotICAgICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVu
dDVfKSwKLSAgICAgICAgYmVnaW42XyhvdGhlci5iZWdpbjZfKSwKLSAgICAgICAgZW5kNl8ob3Ro
ZXIuZW5kNl8pLAotICAgICAgICBjdXJyZW50Nl8ob3RoZXIuY3VycmVudDZfKSwKLSAgICAgICAg
YmVnaW43XyhvdGhlci5iZWdpbjdfKSwKLSAgICAgICAgZW5kN18ob3RoZXIuZW5kN18pLAotICAg
ICAgICBjdXJyZW50N18ob3RoZXIuY3VycmVudDdfKSwKLSAgICAgICAgYmVnaW44XyhvdGhlci5i
ZWdpbjhfKSwKLSAgICAgICAgZW5kOF8ob3RoZXIuZW5kOF8pLAotICAgICAgICBjdXJyZW50OF8o
b3RoZXIuY3VycmVudDhfKSwKLSAgICAgICAgYmVnaW45XyhvdGhlci5iZWdpbjlfKSwKLSAgICAg
ICAgZW5kOV8ob3RoZXIuZW5kOV8pLAotICAgICAgICBjdXJyZW50OV8ob3RoZXIuY3VycmVudDlf
KSwKLSAgICAgICAgYmVnaW4xMF8ob3RoZXIuYmVnaW4xMF8pLAotICAgICAgICBlbmQxMF8ob3Ro
ZXIuZW5kMTBfKSwKLSAgICAgICAgY3VycmVudDEwXyhvdGhlci5jdXJyZW50MTBfKSB7Ci0gICAg
ICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVu
dFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXyA9
IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAg
ICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1cnJl
bnQ4XywKLSAgICAgICAgICAgICpjdXJyZW50OV8sICpjdXJyZW50MTBfKTsKLSAgICB9Ci0gICAg
Ym9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBh
c3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21w
b25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAg
cmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3VycmVu
dDJfID09IGVuZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNfIHx8Ci0gICAgICAg
ICAgY3VycmVudDRfID09IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVudDVfID09IGVuZDVfIHx8
Ci0gICAgICAgICAgY3VycmVudDZfID09IGVuZDZfIHx8Ci0gICAgICAgICAgY3VycmVudDdfID09
IGVuZDdfIHx8Ci0gICAgICAgICAgY3VycmVudDhfID09IGVuZDhfIHx8Ci0gICAgICAgICAgY3Vy
cmVudDlfID09IGVuZDlfIHx8Ci0gICAgICAgICAgY3VycmVudDEwXyA9PSBlbmQxMF87Ci0gICAg
fQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25z
dCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAv
LyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0
b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2lu
ZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJh
dG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVy
YXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1
cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9y
IGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRv
ciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJl
bnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJl
Z2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBl
bmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQz
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2lu
NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0
XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsK
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGJlZ2luNV87
Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBlbmQ1XzsK
LSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGN1cnJlbnQ1XzsKLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGJlZ2luNl87Ci0g
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBlbmQ2XzsKLSAg
ICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGN1cnJlbnQ2XzsKLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGJlZ2luN187Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBlbmQ3XzsKLSAgICB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGN1cnJlbnQ3XzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yIGJlZ2luOF87Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBlbmQ4XzsKLSAgICB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yIGN1cnJlbnQ4XzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOT46Oml0ZXJhdG9yIGJlZ2luOV87Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBlbmQ5XzsKLSAgICB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUOT46Oml0ZXJhdG9yIGN1cnJlbnQ5XzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMTA+OjppdGVyYXRvciBiZWdpbjEwXzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMTA+OjppdGVyYXRvciBlbmQxMF87Ci0gICAgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3IgY3VycmVudDEwXzsKLSAgICBQYXJhbVR5
cGUgY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJh
dG9yMTA6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yMTAmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4g
ZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNT4gZzVfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4gZzZfOwotICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUNz4gZzdfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4gZzhfOwot
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOT4gZzlfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
MTA+IGcxMF87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwCi0KLQot
Ly8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8v
Ci0vLyBIZWxwZXIgY2xhc3NlcyBwcm92aWRpbmcgQ29tYmluZSgpIHdpdGggcG9seW1vcnBoaWMg
ZmVhdHVyZXMuIFRoZXkgYWxsb3cKLS8vIGNhc3RpbmcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
ck48VD4gdG8gUGFyYW1HZW5lcmF0b3I8VT4gaWYgVCBpcwotLy8gY29udmVydGlibGUgdG8gVS4K
LS8vCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMj4KLWNsYXNz
IENhcnRlc2lhblByb2R1Y3RIb2xkZXIyIHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyMihjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIpCi0gICAgICA6
IGcxXyhnMSksIGcyXyhnMikge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
Mj4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyPiA+
KCkgY29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxU
MSwgVDI+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMjxUMSwgVDI+
KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMj4gPihnMl8pKSk7Ci0gIH0KLQotIHByaXZh
dGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4K
LSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjImIG90aGVyKTsK
LQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci19OyAg
Ly8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjIKLQotdGVtcGxhdGUgPGNsYXNzIEdlbmVy
YXRvcjEsIGNsYXNzIEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjM+Ci1jbGFzcyBDYXJ0ZXNp
YW5Qcm9kdWN0SG9sZGVyMyB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjMoY29u
c3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVy
YXRvcjMmIGczKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpIHt9Ci0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgotICBvcGVyYXRvciBQ
YXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzPiA+KCkgY29uc3Qgewot
ICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzPiA+
KAotICAgICAgICBuZXcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjM8VDEsIFQyLCBUMz4oCi0g
ICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8g
aW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJh
dG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMyYgb3RoZXIpOwotCi0gIGNvbnN0IEdl
bmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9y
MyBnM187Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjMKLQotdGVtcGxhdGUg
PGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0g
ICAgY2xhc3MgR2VuZXJhdG9yND4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI0IHsKLSBw
dWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNChjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29u
c3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVy
YXRvcjQmIGc0KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpIHt9
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUND4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyLCBUMywgVDQ+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRl
c3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0PiA+KAotICAgICAgICBuZXcgQ2FydGVzaWFuUHJv
ZHVjdEdlbmVyYXRvcjQ8VDEsIFQyLCBUMywgVDQ+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJh
bUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRv
cjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihn
M18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pKSk7Ci0g
IH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1
bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRl
cjQmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9y
MiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotICBjb25zdCBHZW5lcmF0b3I0IGc0XzsK
LX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNAotCi10ZW1wbGF0ZSA8Y2xhc3Mg
R2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBjbGFz
cyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhv
bGRlcjUgewotIHB1YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXI1KGNvbnN0IEdlbmVyYXRv
cjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywg
Y29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1KQotICAgICAgOiBnMV8o
ZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpIHt9Ci0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDU+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBU
MiwgVDMsIFQ0LCBUNT4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6
dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1PiA+KAotICAgICAgICBuZXcgQ2FydGVz
aWFuUHJvZHVjdEdlbmVyYXRvcjU8VDEsIFQyLCBUMywgVDQsIFQ1PigKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4o
ZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVfKSkpOwot
ICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xk
ZXI1JiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRv
cjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87
Ci0gIGNvbnN0IEdlbmVyYXRvcjUgZzVfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RI
b2xkZXI1Ci0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBj
bGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUs
IGNsYXNzIEdlbmVyYXRvcjY+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNiB7Ci0gcHVi
bGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0
IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0
b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYp
Ci0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2
XyhnNikge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2PgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2PiA+KCkgY29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0
dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiA+KAotICAgICAgICBuZXcgQ2FydGVzaWFuUHJv
ZHVjdEdlbmVyYXRvcjY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4oCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFt
R2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9y
PFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2XykpKTsKLSAgfQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNiYgb3RoZXIp
OwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAg
Y29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBH
ZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJhdG9yNiBnNl87Ci19OyAgLy8gY2xhc3MgQ2Fy
dGVzaWFuUHJvZHVjdEhvbGRlcjYKLQotdGVtcGxhdGUgPGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNz
IEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0gICAgY2xhc3MgR2VuZXJhdG9yNCwgY2xh
c3MgR2VuZXJhdG9yNSwgY2xhc3MgR2VuZXJhdG9yNiwgY2xhc3MgR2VuZXJhdG9yNz4KLWNsYXNz
IENhcnRlc2lhblByb2R1Y3RIb2xkZXI3IHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyNyhjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29u
c3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1
JiBnNSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBnNiwgY29uc3QgR2VuZXJhdG9yNyYgZzcpCi0g
ICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2Xyhn
NiksIGc3XyhnNykge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNz4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgIFQ3PiA+KCkgY29uc3QgewotICAgIHJldHVy
biBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNz4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8
VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDY+ID4oZzZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDc+ID4oZzdfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENh
cnRlc2lhblByb2R1Y3RIb2xkZXI3JiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87
Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGczXzsKLSAgY29u
c3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVyYXRvcjUgZzVfOwotICBjb25zdCBHZW5l
cmF0b3I2IGc2XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBnN187Ci19OyAgLy8gY2xhc3MgQ2FydGVz
aWFuUHJvZHVjdEhvbGRlcjcKLQotdGVtcGxhdGUgPGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdl
bmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0gICAgY2xhc3MgR2VuZXJhdG9yNCwgY2xhc3Mg
R2VuZXJhdG9yNSwgY2xhc3MgR2VuZXJhdG9yNiwgY2xhc3MgR2VuZXJhdG9yNywKLSAgICBjbGFz
cyBHZW5lcmF0b3I4PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjggewotIHB1YmxpYzoK
LUNhcnRlc2lhblByb2R1Y3RIb2xkZXI4KGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5l
cmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJhdG9yNCYg
ZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1LAotICAgIGNvbnN0IEdlbmVyYXRvcjYmIGc2LCBjb25z
dCBHZW5lcmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgpCi0gICAgICA6IGcxXyhnMSks
IGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2XyhnNiksIGc3XyhnNyksCi0g
ICAgICAgICAgZzhfKGc4KSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsCi0gICAgICBUOD4g
PigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiA+KAotICAgICAgICBuZXcgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvcjg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PigKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4o
ZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDY+ID4oZzZfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDc+ID4oZzdfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+ID4oZzhfKSkpOwotICB9Ci0KLSBwcml2YXRlOgot
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI4JiBvdGhlcik7Ci0KLSAg
Y29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBH
ZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVyYXRv
cjUgZzVfOwotICBjb25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBnN187
Ci0gIGNvbnN0IEdlbmVyYXRvcjggZzhfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RI
b2xkZXI4Ci0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBj
bGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUs
IGNsYXNzIEdlbmVyYXRvcjYsIGNsYXNzIEdlbmVyYXRvcjcsCi0gICAgY2xhc3MgR2VuZXJhdG9y
OCwgY2xhc3MgR2VuZXJhdG9yOT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI5IHsKLSBw
dWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOShjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29u
c3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVy
YXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBn
NiwgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4LAotICAgIGNvbnN0
IEdlbmVyYXRvcjkmIGc5KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8o
ZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLCBnOF8oZzgpLAotICAgICAgICAgIGc5Xyhn
OSkge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjwg
Ojp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsCi0gICAgICBU
OT4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVw
bGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LAotICAgICAgICBUOT4gPigKLSAgICAg
ICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDk+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4gPihn
MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMj4gPihnMl8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihnM18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQ
YXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVy
YXRvcjxUNj4gPihnNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNz4g
PihnN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUOD4gPihnOF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUOT4gPihnOV8pKSk7Ci0gIH0KLQot
IHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBv
cnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjkmIG90
aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87
Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotICBjb25zdCBHZW5lcmF0b3I0IGc0XzsKLSAgY29u
c3QgR2VuZXJhdG9yNSBnNV87Ci0gIGNvbnN0IEdlbmVyYXRvcjYgZzZfOwotICBjb25zdCBHZW5l
cmF0b3I3IGc3XzsKLSAgY29uc3QgR2VuZXJhdG9yOCBnOF87Ci0gIGNvbnN0IEdlbmVyYXRvcjkg
ZzlfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI5Ci0KLXRlbXBsYXRlIDxj
bGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAotICAg
IGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUsIGNsYXNzIEdlbmVyYXRvcjYsIGNs
YXNzIEdlbmVyYXRvcjcsCi0gICAgY2xhc3MgR2VuZXJhdG9yOCwgY2xhc3MgR2VuZXJhdG9yOSwg
Y2xhc3MgR2VuZXJhdG9yMTA+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMTAgewotIHB1
YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXIxMChjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29u
c3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVy
YXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBn
NiwgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4LAotICAgIGNvbnN0
IEdlbmVyYXRvcjkmIGc5LCBjb25zdCBHZW5lcmF0b3IxMCYgZzEwKQotICAgICAgOiBnMV8oZzEp
LCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLCBn
OF8oZzgpLAotICAgICAgICAgIGc5XyhnOSksIGcxMF8oZzEwKSB7fQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGlu
Zzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwKLSAgICAgIFQxMD4g
PigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwKLSAgICAgICAgVDEwPiA+KAotICAg
ICAgICBuZXcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksCi0gICAgICAgICAgICBUMTA+KAotICAgICAgICBzdGF0aWNfY2FzdDxQ
YXJhbUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVy
YXRvcjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4g
PihnM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNj4gPihnNl8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxQYXJhbUdlbmVyYXRvcjxUNz4gPihnN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdl
bmVyYXRvcjxUOD4gPihnOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxU
OT4gPihnOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMTA+ID4oZzEw
XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyMTAmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3Qg
R2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotICBjb25zdCBHZW5lcmF0
b3I0IGc0XzsKLSAgY29uc3QgR2VuZXJhdG9yNSBnNV87Ci0gIGNvbnN0IEdlbmVyYXRvcjYgZzZf
OwotICBjb25zdCBHZW5lcmF0b3I3IGc3XzsKLSAgY29uc3QgR2VuZXJhdG9yOCBnOF87Ci0gIGNv
bnN0IEdlbmVyYXRvcjkgZzlfOwotICBjb25zdCBHZW5lcmF0b3IxMCBnMTBfOwotfTsgIC8vIGNs
YXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIxMAotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09N
QklORQotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5n
Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9V
VElMX0dFTkVSQVRFRF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgucHVtcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2ZjZjRjZTg2M2YzMWZhNmZjYWQ3YzAxOWY3MjhlZWEwYzNkOTJhOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgu
cHVtcAorKysgL2Rldi9udWxsCkBAIC0xLDI3OSArMCwwIEBACi0kJCAtKi0gbW9kZTogYysrOyAt
Ki0KLSR2YXIgbiA9IDUwICAkJCBNYXhpbXVtIGxlbmd0aCBvZiBWYWx1ZXMgYXJndW1lbnRzIHdl
IHdhbnQgdG8gc3VwcG9ydC4KLSR2YXIgbWF4dHVwbGUgPSAxMCAgJCQgTWF4aW11bSBudW1iZXIg
b2YgQ29tYmluZSBhcmd1bWVudHMgd2Ugd2FudCB0byBzdXBwb3J0LgotLy8gQ29weXJpZ2h0IDIw
MDggR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8v
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0v
LyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB2bGFkbEBnb29nbGUu
Y29tIChWbGFkIExvc2V2KQotCi0vLyBUeXBlIGFuZCBmdW5jdGlvbiB1dGlsaXRpZXMgZm9yIGlt
cGxlbWVudGluZyBwYXJhbWV0ZXJpemVkIHRlc3RzLgotLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRl
ZCBieSBhIFNDUklQVC4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gQ3VycmVudGx5IEdv
b2dsZSBUZXN0IHN1cHBvcnRzIGF0IG1vc3QgJG4gYXJndW1lbnRzIGluIFZhbHVlcywKLS8vIGFu
ZCBhdCBtb3N0ICRtYXh0dXBsZSBhcmd1bWVudHMgaW4gQ29tYmluZS4gUGxlYXNlIGNvbnRhY3QK
LS8vIGdvb2dsZXRlc3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZCBtb3Jl
LgotLy8gUGxlYXNlIG5vdGUgdGhhdCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBDb21iaW5l
IGlzIGxpbWl0ZWQKLS8vIGJ5IHRoZSBtYXhpbXVtIGFyaXR5IG9mIHRoZSBpbXBsZW1lbnRhdGlv
biBvZiB0dXBsZSB3aGljaCBpcwotLy8gY3VycmVudGx5IHNldCBhdCAkbWF4dHVwbGUuCi0KLSNp
Zm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVS
QVRFRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFN
X1VUSUxfR0VORVJBVEVEX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJh
bS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi1uYW1l
c3BhY2UgdGVzdGluZyB7Ci0KLS8vIEZvcndhcmQgZGVjbGFyYXRpb25zIG9mIFZhbHVlc0luKCks
IHdoaWNoIGlzIGltcGxlbWVudGVkIGluCi0vLyBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRl
c3QuaC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3I+Ci1pbnRlcm5hbDo6UGFy
YW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJh
aXRzPEZvcndhcmRJdGVyYXRvcj46OnZhbHVlX3R5cGU+Ci1WYWx1ZXNJbihGb3J3YXJkSXRlcmF0
b3IgYmVnaW4sIEZvcndhcmRJdGVyYXRvciBlbmQpOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwg
c2l6ZV90IE4+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gVmFsdWVzSW4oY29uc3QgVCAo
JmFycmF5KVtOXSk7Ci0KLXRlbXBsYXRlIDxjbGFzcyBDb250YWluZXI+Ci1pbnRlcm5hbDo6UGFy
YW1HZW5lcmF0b3I8dHlwZW5hbWUgQ29udGFpbmVyOjp2YWx1ZV90eXBlPiBWYWx1ZXNJbigKLSAg
ICBjb25zdCBDb250YWluZXImIGNvbnRhaW5lcik7Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0K
LS8vIFVzZWQgaW4gdGhlIFZhbHVlcygpIGZ1bmN0aW9uIHRvIHByb3ZpZGUgcG9seW1vcnBoaWMg
Y2FwYWJpbGl0aWVzLgotJHJhbmdlIGkgMS4ubgotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0K
LXRlbXBsYXRlIDwkZm9yIGosIFtbdHlwZW5hbWUgVCRqXV0+Ci1jbGFzcyBWYWx1ZUFycmF5JGkg
ewotIHB1YmxpYzoKLSAgJGlmIGk9PTEgW1tleHBsaWNpdCBdXVZhbHVlQXJyYXkkaSgkZm9yIGos
IFtbVCRqIHYkal1dKSA6ICRmb3IgaiwgW1t2JChqKV8odiRqKV1dIHt9Ci0KLSAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAg
IGNvbnN0IFQgYXJyYXlbXSA9IHskZm9yIGosIFtbc3RhdGljX2Nhc3Q8VD4odiQoailfKV1dfTsK
LSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXkkaSYgb3RoZXIpOwotCi0kZm9yIGogW1sKLQotICBjb25zdCBU
JGogdiQoailfOwotXV0KLQotfTsKLQotXV0KLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8g
SU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8vCi0v
LyBHZW5lcmF0ZXMgdmFsdWVzIGZyb20gdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9mIHZhbHVlcyBw
cm9kdWNlZAotLy8gYnkgdGhlIGFyZ3VtZW50IGdlbmVyYXRvcnMuCi0vLwotJHJhbmdlIGkgMi4u
bWF4dHVwbGUKLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgMi4uaQotCi10ZW1w
bGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1lIFQkal1dPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdl
bmVyYXRvciRpCi0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGlu
Zzo6dHVwbGU8JGZvciBqLCBbW1Qkal1dPiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0
aW5nOjp0dXBsZTwkZm9yIGosIFtbVCRqXV0+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yJGkoJGZvciBqLCBbW2NvbnN0IFBhcmFtR2VuZXJhdG9yPFQkaj4mIGckal1d
KQotICAgICAgOiAkZm9yIGosIFtbZyQoailfKGckaildXSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNp
YW5Qcm9kdWN0R2VuZXJhdG9yJGkoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9y
KHRoaXMsICRmb3IgaiwgW1tnJChqKV8sIGckKGopXy5iZWdpbigpXV0pOwotICB9Ci0gIHZpcnR1
YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAg
cmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCAkZm9yIGosIFtbZyQoailfLCBnJChqKV8uZW5kKCld
XSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29u
c3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwgJGZvciBqLCBbWwot
Ci0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUJGo+JiBnJGosCi0gICAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUJGo+OjppdGVyYXRvciYgY3VycmVudCQoaildXSkKLSAgICAg
ICAgOiBiYXNlXyhiYXNlKSwKLSRmb3IgaiwgW1sKLQotICAgICAgICAgIGJlZ2luJChqKV8oZyRq
LmJlZ2luKCkpLCBlbmQkKGopXyhnJGouZW5kKCkpLCBjdXJyZW50JChqKV8oY3VycmVudCRqKQot
XV0gICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFs
IH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFz
ZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25k
LW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVz
dCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFu
Y2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50JChpKV87Ci0K
LSRmb3IgayBbWwotICAgICAgaWYgKGN1cnJlbnQkKGkrMi1rKV8gPT0gZW5kJChpKzItaylfKSB7
Ci0gICAgICAgIGN1cnJlbnQkKGkrMi1rKV8gPSBiZWdpbiQoaSsyLWspXzsKLSAgICAgICAgKytj
dXJyZW50JChpKzItay0xKV87Ci0gICAgICB9Ci0KLV1dCi0gICAgICBDb21wdXRlQ3VycmVudFZh
bHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwot
ICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0
dXJuICZjdXJyZW50X3ZhbHVlXzsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8g
SGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIK
LSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2Fz
dC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVy
YXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBp
dGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwg
c3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAg
ICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0g
ICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50
IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBl
biBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1
bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQo
KSkgfHwKLSAgICAgICAgICgkZm9yIGogICYmIFtbCi0KLSAgICAgICAgICBjdXJyZW50JChqKV8g
PT0gdHlwZWRfb3RoZXItPmN1cnJlbnQkKGopXwotXV0pOwotICAgIH0KLQotICAgcHJpdmF0ZToK
LSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3Ro
ZXIuYmFzZV8pLCAkZm9yIGosIFtbCi0KLSAgICAgICAgYmVnaW4kKGopXyhvdGhlci5iZWdpbiQo
ailfKSwKLSAgICAgICAgZW5kJChqKV8ob3RoZXIuZW5kJChqKV8pLAotICAgICAgICBjdXJyZW50
JChqKV8ob3RoZXIuY3VycmVudCQoailfKQotXV0gewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1
ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlm
ICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8gPSBQYXJhbVR5cGUoJGZvciBqLCBb
WypjdXJyZW50JChqKV9dXSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAg
ICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdo
ZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hl
ZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotJGZvciBqICB8fCBbWwotCi0g
ICAgICAgICAgY3VycmVudCQoailfID09IGVuZCQoailfCi1dXTsKLSAgICB9Ci0KLSAgICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBh
bmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMu
Ci0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgot
JGZvciBqIFtbCi0KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUJGo+OjppdGVy
YXRvciBiZWdpbiQoailfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQkaj46
Oml0ZXJhdG9yIGVuZCQoailfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQkaj46Oml0
ZXJhdG9yIGN1cnJlbnQkKGopXzsKLV1dCi0KLSAgICBQYXJhbVR5cGUgY3VycmVudF92YWx1ZV87
Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGk6Okl0ZXJhdG9yCi0K
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGkmIG90aGVyKTsK
LQotCi0kZm9yIGogW1sKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VCRqPiBnJChqKV87Ci0KLV1d
Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvciRpCi0KLQotXV0KLQotLy8g
SU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8vCi0v
LyBIZWxwZXIgY2xhc3NlcyBwcm92aWRpbmcgQ29tYmluZSgpIHdpdGggcG9seW1vcnBoaWMgZmVh
dHVyZXMuIFRoZXkgYWxsb3cKLS8vIGNhc3RpbmcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvck48
VD4gdG8gUGFyYW1HZW5lcmF0b3I8VT4gaWYgVCBpcwotLy8gY29udmVydGlibGUgdG8gVS4KLS8v
Ci0kcmFuZ2UgaSAyLi5tYXh0dXBsZQotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0KLXRlbXBs
YXRlIDwkZm9yIGosIFtbY2xhc3MgR2VuZXJhdG9yJGpdXT4KLWNsYXNzIENhcnRlc2lhblByb2R1
Y3RIb2xkZXIkaSB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlciRpKCRmb3Igaiwg
W1tjb25zdCBHZW5lcmF0b3IkaiYgZyRqXV0pCi0gICAgICA6ICRmb3IgaiwgW1tnJChqKV8oZyRq
KV1dIHt9Ci0gIHRlbXBsYXRlIDwkZm9yIGosIFtbdHlwZW5hbWUgVCRqXV0+Ci0gIG9wZXJhdG9y
IFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPCRmb3IgaiwgW1tUJGpdXT4gPigpIGNv
bnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8JGZvciBq
LCBbW1Qkal1dPiA+KAotICAgICAgICBuZXcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvciRpPCRm
b3IgaiwgW1tUJGpdXT4oCi0kZm9yIGosW1sKLQotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdl
bmVyYXRvcjxUJGo+ID4oZyQoailfKQotXV0pKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8g
aW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJh
dG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyJGkmIG90aGVyKTsKLQotCi0kZm9yIGog
W1sKLSAgY29uc3QgR2VuZXJhdG9yJGogZyQoailfOwotCi1dXQotfTsgIC8vIGNsYXNzIENhcnRl
c2lhblByb2R1Y3RIb2xkZXIkaQotCi1dXQotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklO
RQotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0K
LSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElM
X0dFTkVSQVRFRF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M4MDg2M2NkZTBhYmZjNWMxODA3ODlmNjE5YTdm
MTE0NTQ2MjNlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXBhcmFtLXV0aWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDcyMyArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAwOCBHb29nbGUgSW5jLgotLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8g
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9u
LgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8g
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHZsYWRsQGdv
b2dsZS5jb20gKFZsYWQgTG9zZXYpCi0KLS8vIFR5cGUgYW5kIGZ1bmN0aW9uIHV0aWxpdGllcyBm
b3IgaW1wbGVtZW50aW5nIHBhcmFtZXRlcml6ZWQgdGVzdHMuCi0KLSNpZm5kZWYgR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0hfCi0jZGVmaW5lIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9IXwotCi0jaW5jbHVkZSA8Y3R5
cGUuaD4KLQotI2luY2x1ZGUgPGl0ZXJhdG9yPgotI2luY2x1ZGUgPHNldD4KLSNpbmNsdWRlIDx1
dGlsaXR5PgotI2luY2x1ZGUgPHZlY3Rvcj4KLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LWludGVybmFsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0
ci5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLSNpbmNsdWRlICJn
dGVzdC9ndGVzdC1wcmludGVycy5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIElucHV0
IHRvIGEgcGFyYW1ldGVyaXplZCB0ZXN0IG5hbWUgZ2VuZXJhdG9yLCBkZXNjcmliaW5nIGEgdGVz
dCBwYXJhbWV0ZXIuCi0vLyBDb25zaXN0cyBvZiB0aGUgcGFyYW1ldGVyIHZhbHVlIGFuZCB0aGUg
aW50ZWdlciBwYXJhbWV0ZXIgaW5kZXguCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlPgotc3Ry
dWN0IFRlc3RQYXJhbUluZm8gewotICBUZXN0UGFyYW1JbmZvKGNvbnN0IFBhcmFtVHlwZSYgYV9w
YXJhbSwgc2l6ZV90IGFuX2luZGV4KSA6Ci0gICAgcGFyYW0oYV9wYXJhbSksCi0gICAgaW5kZXgo
YW5faW5kZXgpIHt9Ci0gIFBhcmFtVHlwZSBwYXJhbTsKLSAgc2l6ZV90IGluZGV4OwotfTsKLQot
Ly8gQSBidWlsdGluIHBhcmFtZXRlcml6ZWQgdGVzdCBuYW1lIGdlbmVyYXRvciB3aGljaCByZXR1
cm5zIHRoZSByZXN1bHQgb2YKLS8vIHRlc3Rpbmc6OlByaW50VG9TdHJpbmcuCi1zdHJ1Y3QgUHJp
bnRUb1N0cmluZ1BhcmFtTmFtZSB7Ci0gIHRlbXBsYXRlIDxjbGFzcyBQYXJhbVR5cGU+Ci0gIHN0
ZDo6c3RyaW5nIG9wZXJhdG9yKCkoY29uc3QgVGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+JiBpbmZv
KSBjb25zdCB7Ci0gICAgcmV0dXJuIFByaW50VG9TdHJpbmcoaW5mby5wYXJhbSk7Ci0gIH0KLX07
Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0g
RE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gT3V0cHV0cyBhIG1lc3NhZ2UgZXhwbGFp
bmluZyBpbnZhbGlkIHJlZ2lzdHJhdGlvbiBvZiBkaWZmZXJlbnQKLS8vIGZpeHR1cmUgY2xhc3Mg
Zm9yIHRoZSBzYW1lIHRlc3QgY2FzZS4gVGhpcyBtYXkgaGFwcGVuIHdoZW4KLS8vIFRFU1RfUCBt
YWNybyBpcyB1c2VkIHRvIGRlZmluZSB0d28gdGVzdHMgd2l0aCB0aGUgc2FtZSBuYW1lCi0vLyBi
dXQgaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMuCi1HVEVTVF9BUElfIHZvaWQgUmVwb3J0SW52YWxp
ZFRlc3RDYXNlVHlwZShjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lPiBjbGFzcyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTsKLXRl
bXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUGFyYW1HZW5lcmF0b3I7Ci0KLS8vIEludGVyZmFjZSBm
b3IgaXRlcmF0aW5nIG92ZXIgZWxlbWVudHMgcHJvdmlkZWQgYnkgYW4gaW1wbGVtZW50YXRpb24K
LS8vIG9mIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+LgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1jbGFzcyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlIHsKLSBwdWJsaWM6Ci0gIHZpcnR1YWwgflBh
cmFtSXRlcmF0b3JJbnRlcmZhY2UoKSB7fQotICAvLyBBIHBvaW50ZXIgdG8gdGhlIGJhc2UgZ2Vu
ZXJhdG9yIGluc3RhbmNlLgotICAvLyBVc2VkIG9ubHkgZm9yIHRoZSBwdXJwb3NlcyBvZiBpdGVy
YXRvciBjb21wYXJpc29uCi0gIC8vIHRvIG1ha2Ugc3VyZSB0aGF0IHR3byBpdGVyYXRvcnMgYmVs
b25nIHRvIHRoZSBzYW1lIGdlbmVyYXRvci4KLSAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0ID0gMDsKLSAgLy8gQWR2YW5jZXMg
aXRlcmF0b3IgdG8gcG9pbnQgdG8gdGhlIG5leHQgZWxlbWVudAotICAvLyBwcm92aWRlZCBieSB0
aGUgZ2VuZXJhdG9yLiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlCi0gIC8vIGZvciBub3QgY2Fs
bGluZyBBZHZhbmNlKCkgb24gYW4gaXRlcmF0b3IgZXF1YWwgdG8KLSAgLy8gQmFzZUdlbmVyYXRv
cigpLT5FbmQoKS4KLSAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSA9IDA7Ci0gIC8vIENsb25lcyB0
aGUgaXRlcmF0b3Igb2JqZWN0LiBVc2VkIGZvciBpbXBsZW1lbnRpbmcgY29weSBzZW1hbnRpY3MK
LSAgLy8gb2YgUGFyYW1JdGVyYXRvcjxUPi4KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJm
YWNlKiBDbG9uZSgpIGNvbnN0ID0gMDsKLSAgLy8gRGVyZWZlcmVuY2VzIHRoZSBjdXJyZW50IGl0
ZXJhdG9yIGFuZCBwcm92aWRlcyAocmVhZC1vbmx5KSBhY2Nlc3MKLSAgLy8gdG8gdGhlIHBvaW50
ZWQgdmFsdWUuIEl0IGlzIHRoZSBjYWxsZXIncyByZXNwb25zaWJpbGl0eSBub3QgdG8gY2FsbAot
ICAvLyBDdXJyZW50KCkgb24gYW4gaXRlcmF0b3IgZXF1YWwgdG8gQmFzZUdlbmVyYXRvcigpLT5F
bmQoKS4KLSAgLy8gVXNlZCBmb3IgaW1wbGVtZW50aW5nIFBhcmFtR2VuZXJhdG9yPFQ+OjpvcGVy
YXRvciooKS4KLSAgdmlydHVhbCBjb25zdCBUKiBDdXJyZW50KCkgY29uc3QgPSAwOwotICAvLyBE
ZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGdpdmVuIGl0ZXJhdG9yIGFuZCBvdGhlciBwb2ludCB0byB0
aGUgc2FtZQotICAvLyBlbGVtZW50IGluIHRoZSBzZXF1ZW5jZSBnZW5lcmF0ZWQgYnkgdGhlIGdl
bmVyYXRvci4KLSAgLy8gVXNlZCBmb3IgaW1wbGVtZW50aW5nIFBhcmFtR2VuZXJhdG9yPFQ+Ojpv
cGVyYXRvcj09KCkuCi0gIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvcklu
dGVyZmFjZSYgb3RoZXIpIGNvbnN0ID0gMDsKLX07Ci0KLS8vIENsYXNzIGl0ZXJhdGluZyBvdmVy
IGVsZW1lbnRzIHByb3ZpZGVkIGJ5IGFuIGltcGxlbWVudGF0aW9uIG9mCi0vLyBQYXJhbUdlbmVy
YXRvckludGVyZmFjZTxUPi4gSXQgd3JhcHMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPgotLy8g
YW5kIGltcGxlbWVudHMgdGhlIGNvbnN0IGZvcndhcmQgaXRlcmF0b3IgY29uY2VwdC4KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgUGFyYW1JdGVyYXRvciB7Ci0gcHVibGljOgotICB0eXBl
ZGVmIFQgdmFsdWVfdHlwZTsKLSAgdHlwZWRlZiBjb25zdCBUJiByZWZlcmVuY2U7Ci0gIHR5cGVk
ZWYgcHRyZGlmZl90IGRpZmZlcmVuY2VfdHlwZTsKLQotICAvLyBQYXJhbUl0ZXJhdG9yIGFzc3Vt
ZXMgb3duZXJzaGlwIG9mIHRoZSBpbXBsXyBwb2ludGVyLgotICBQYXJhbUl0ZXJhdG9yKGNvbnN0
IFBhcmFtSXRlcmF0b3ImIG90aGVyKSA6IGltcGxfKG90aGVyLmltcGxfLT5DbG9uZSgpKSB7fQot
ICBQYXJhbUl0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgUGFyYW1JdGVyYXRvciYgb3RoZXIpIHsK
LSAgICBpZiAodGhpcyAhPSAmb3RoZXIpCi0gICAgICBpbXBsXy5yZXNldChvdGhlci5pbXBsXy0+
Q2xvbmUoKSk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgY29uc3QgVCYgb3BlcmF0b3Iq
KCkgY29uc3QgeyByZXR1cm4gKmltcGxfLT5DdXJyZW50KCk7IH0KLSAgY29uc3QgVCogb3BlcmF0
b3ItPigpIGNvbnN0IHsgcmV0dXJuIGltcGxfLT5DdXJyZW50KCk7IH0KLSAgLy8gUHJlZml4IHZl
cnNpb24gb2Ygb3BlcmF0b3IrKy4KLSAgUGFyYW1JdGVyYXRvciYgb3BlcmF0b3IrKygpIHsKLSAg
ICBpbXBsXy0+QWR2YW5jZSgpOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotICAvLyBQb3N0Zml4
IHZlcnNpb24gb2Ygb3BlcmF0b3IrKy4KLSAgUGFyYW1JdGVyYXRvciBvcGVyYXRvcisrKGludCAv
KnVudXNlZCovKSB7Ci0gICAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogY2xvbmUgPSBpbXBs
Xy0+Q2xvbmUoKTsKLSAgICBpbXBsXy0+QWR2YW5jZSgpOwotICAgIHJldHVybiBQYXJhbUl0ZXJh
dG9yKGNsb25lKTsKLSAgfQotICBib29sIG9wZXJhdG9yPT0oY29uc3QgUGFyYW1JdGVyYXRvciYg
b3RoZXIpIGNvbnN0IHsKLSAgICByZXR1cm4gaW1wbF8uZ2V0KCkgPT0gb3RoZXIuaW1wbF8uZ2V0
KCkgfHwgaW1wbF8tPkVxdWFscygqb3RoZXIuaW1wbF8pOwotICB9Ci0gIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBQYXJhbUl0ZXJhdG9yJiBvdGhlcikgY29uc3QgewotICAgIHJldHVybiAhKCp0aGlz
ID09IG90aGVyKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgZnJpZW5kIGNsYXNzIFBhcmFtR2VuZXJh
dG9yPFQ+OwotICBleHBsaWNpdCBQYXJhbUl0ZXJhdG9yKFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
VD4qIGltcGwpIDogaW1wbF8oaW1wbCkge30KLSAgc2NvcGVkX3B0cjxQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFQ+ID4gaW1wbF87Ci19OwotCi0vLyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiBp
cyB0aGUgYmluYXJ5IGludGVyZmFjZSB0byBhY2Nlc3MgZ2VuZXJhdG9ycwotLy8gZGVmaW5lZCBp
biBvdGhlciB0cmFuc2xhdGlvbiB1bml0cy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3Mg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2UgewotIHB1YmxpYzoKLSAgdHlwZWRlZiBUIFBhcmFtVHlw
ZTsKLQotICB2aXJ0dWFsIH5QYXJhbUdlbmVyYXRvckludGVyZmFjZSgpIHt9Ci0KLSAgLy8gR2Vu
ZXJhdG9yIGludGVyZmFjZSBkZWZpbml0aW9uCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxUPiogQmVnaW4oKSBjb25zdCA9IDA7Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxUPiogRW5kKCkgY29uc3QgPSAwOwotfTsKLQotLy8gV3JhcHMgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8VD4gYW5kIHByb3ZpZGVzIGdlbmVyYWwgZ2VuZXJhdG9yIHN5bnRheAotLy8gY29t
cGF0aWJsZSB3aXRoIHRoZSBTVEwgQ29udGFpbmVyIGNvbmNlcHQuCi0vLyBUaGlzIGNsYXNzIGlt
cGxlbWVudHMgY29weSBpbml0aWFsaXphdGlvbiBzZW1hbnRpY3MgYW5kIHRoZSBjb250YWluZWQK
LS8vIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IGluc3RhbmNlIGlzIHNoYXJlZCBhbW9uZyBh
bGwgY29waWVzCi0vLyBvZiB0aGUgb3JpZ2luYWwgb2JqZWN0LiBUaGlzIGlzIHBvc3NpYmxlIGJl
Y2F1c2UgdGhhdCBpbnN0YW5jZSBpcyBpbW11dGFibGUuCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgot
Y2xhc3MgUGFyYW1HZW5lcmF0b3IgewotIHB1YmxpYzoKLSAgdHlwZWRlZiBQYXJhbUl0ZXJhdG9y
PFQ+IGl0ZXJhdG9yOwotCi0gIGV4cGxpY2l0IFBhcmFtR2VuZXJhdG9yKFBhcmFtR2VuZXJhdG9y
SW50ZXJmYWNlPFQ+KiBpbXBsKSA6IGltcGxfKGltcGwpIHt9Ci0gIFBhcmFtR2VuZXJhdG9yKGNv
bnN0IFBhcmFtR2VuZXJhdG9yJiBvdGhlcikgOiBpbXBsXyhvdGhlci5pbXBsXykge30KLQotICBQ
YXJhbUdlbmVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFBhcmFtR2VuZXJhdG9yJiBvdGhlcikgewot
ICAgIGltcGxfID0gb3RoZXIuaW1wbF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgaXRl
cmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihpbXBsXy0+QmVnaW4oKSk7IH0K
LSAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IoaW1wbF8tPkVuZCgpKTsg
fQotCi0gcHJpdmF0ZToKLSAgbGlua2VkX3B0cjxjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFj
ZTxUPiA+IGltcGxfOwotfTsKLQotLy8gR2VuZXJhdGVzIHZhbHVlcyBmcm9tIGEgcmFuZ2Ugb2Yg
dHdvIGNvbXBhcmFibGUgdmFsdWVzLiBDYW4gYmUgdXNlZCB0bwotLy8gZ2VuZXJhdGUgc2VxdWVu
Y2VzIG9mIHVzZXItZGVmaW5lZCB0eXBlcyB0aGF0IGltcGxlbWVudCBvcGVyYXRvcisoKSBhbmQK
LS8vIG9wZXJhdG9yPCgpLgotLy8gVGhpcyBjbGFzcyBpcyB1c2VkIGluIHRoZSBSYW5nZSgpIGZ1
bmN0aW9uLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEluY3JlbWVudFQ+Ci1jbGFz
cyBSYW5nZUdlbmVyYXRvciA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7Ci0g
cHVibGljOgotICBSYW5nZUdlbmVyYXRvcihUIGJlZ2luLCBUIGVuZCwgSW5jcmVtZW50VCBzdGVw
KQotICAgICAgOiBiZWdpbl8oYmVnaW4pLCBlbmRfKGVuZCksCi0gICAgICAgIHN0ZXBfKHN0ZXAp
LCBlbmRfaW5kZXhfKENhbGN1bGF0ZUVuZEluZGV4KGJlZ2luLCBlbmQsIHN0ZXApKSB7fQotICB2
aXJ0dWFsIH5SYW5nZUdlbmVyYXRvcigpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFQ+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMs
IGJlZ2luXywgMCwgc3RlcF8pOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFj
ZTxUPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZW5kXywg
ZW5kX2luZGV4Xywgc3RlcF8pOwotICB9Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6
IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVy
YXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogYmFzZSwgVCB2YWx1ZSwgaW50
IGluZGV4LAotICAgICAgICAgICAgIEluY3JlbWVudFQgc3RlcCkKLSAgICAgICAgOiBiYXNlXyhi
YXNlKSwgdmFsdWVfKHZhbHVlKSwgaW5kZXhfKGluZGV4KSwgc3RlcF8oc3RlcCkge30KLSAgICB2
aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9y
SW50ZXJmYWNlPFQ+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2Vf
OwotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIHZhbHVlXyA9IHN0
YXRpY19jYXN0PFQ+KHZhbHVlXyArIHN0ZXBfKTsKLSAgICAgIGluZGV4XysrOwotICAgIH0KLSAg
ICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIENsb25lKCkgY29uc3QgewotICAg
ICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1YWwgY29uc3Qg
VCogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuICZ2YWx1ZV87IH0KLSAgICB2aXJ0dWFsIGJvb2wg
RXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4mIG90aGVyKSBjb25zdCB7Ci0g
ICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRo
ZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2Fu
IGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5C
YXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBj
b21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRv
cnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBpbnQgb3RoZXJfaW5kZXggPQotICAgICAg
ICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKS0+
aW5kZXhfOwotICAgICAgcmV0dXJuIGluZGV4XyA9PSBvdGhlcl9pbmRleDsKLSAgICB9Ci0KLSAg
IHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4oKSwKLSAgICAgICAgICBiYXNlXyhvdGhlci5iYXNl
XyksIHZhbHVlXyhvdGhlci52YWx1ZV8pLCBpbmRleF8ob3RoZXIuaW5kZXhfKSwKLSAgICAgICAg
ICBzdGVwXyhvdGhlci5zdGVwXykge30KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNz
aWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRv
ciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4qIGNvbnN0
IGJhc2VfOwotICAgIFQgdmFsdWVfOwotICAgIGludCBpbmRleF87Ci0gICAgY29uc3QgSW5jcmVt
ZW50VCBzdGVwXzsKLSAgfTsgIC8vIGNsYXNzIFJhbmdlR2VuZXJhdG9yOjpJdGVyYXRvcgotCi0g
IHN0YXRpYyBpbnQgQ2FsY3VsYXRlRW5kSW5kZXgoY29uc3QgVCYgYmVnaW4sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVCYgZW5kLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEluY3JlbWVudFQmIHN0ZXApIHsKLSAgICBpbnQgZW5kX2luZGV4ID0g
MDsKLSAgICBmb3IgKFQgaSA9IGJlZ2luOyBpIDwgZW5kOyBpID0gc3RhdGljX2Nhc3Q8VD4oaSAr
IHN0ZXApKQotICAgICAgZW5kX2luZGV4Kys7Ci0gICAgcmV0dXJuIGVuZF9pbmRleDsKLSAgfQot
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgUmFuZ2VHZW5lcmF0b3ImIG90aGVyKTsKLQotICBjb25zdCBU
IGJlZ2luXzsKLSAgY29uc3QgVCBlbmRfOwotICBjb25zdCBJbmNyZW1lbnRUIHN0ZXBfOwotICAv
LyBUaGUgaW5kZXggZm9yIHRoZSBlbmQoKSBpdGVyYXRvci4gQWxsIHRoZSBlbGVtZW50cyBpbiB0
aGUgZ2VuZXJhdGVkCi0gIC8vIHNlcXVlbmNlIGFyZSBpbmRleGVkICgwLWJhc2VkKSB0byBhaWQg
aXRlcmF0b3IgY29tcGFyaXNvbi4KLSAgY29uc3QgaW50IGVuZF9pbmRleF87Ci19OyAgLy8gY2xh
c3MgUmFuZ2VHZW5lcmF0b3IKLQotCi0vLyBHZW5lcmF0ZXMgdmFsdWVzIGZyb20gYSBwYWlyIG9m
IFNUTC1zdHlsZSBpdGVyYXRvcnMuIFVzZWQgaW4gdGhlCi0vLyBWYWx1ZXNJbigpIGZ1bmN0aW9u
LiBUaGUgZWxlbWVudHMgYXJlIGNvcGllZCBmcm9tIHRoZSBzb3VyY2UgcmFuZ2UKLS8vIHNpbmNl
IHRoZSBzb3VyY2UgY2FuIGJlIGxvY2F0ZWQgb24gdGhlIHN0YWNrLCBhbmQgdGhlIGdlbmVyYXRv
cgotLy8gaXMgbGlrZWx5IHRvIHBlcnNpc3QgYmV5b25kIHRoYXQgc3RhY2sgZnJhbWUuCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvciA6
IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yPgotICBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5l
cmF0b3IoRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKQotICAgICAg
OiBjb250YWluZXJfKGJlZ2luLCBlbmQpIHt9Ci0gIHZpcnR1YWwgflZhbHVlc0luSXRlcmF0b3JS
YW5nZUdlbmVyYXRvcigpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+
KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGNvbnRhaW5l
cl8uYmVnaW4oKSk7Ci0gIH0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBF
bmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBjb250YWluZXJfLmVu
ZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgdHlwZWRlZiB0eXBlbmFtZSA6OnN0ZDo6dmVjdG9y
PFQ+IENvbnRhaW5lclR5cGU7Ci0KLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxUPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1H
ZW5lcmF0b3JJbnRlcmZhY2U8VD4qIGJhc2UsCi0gICAgICAgICAgICAgdHlwZW5hbWUgQ29udGFp
bmVyVHlwZTo6Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3IpCi0gICAgICAgIDogYmFzZV8oYmFzZSks
IGl0ZXJhdG9yXyhpdGVyYXRvcikge30KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+KiBCYXNlR2VuZXJhdG9y
KCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQg
QWR2YW5jZSgpIHsKLSAgICAgICsraXRlcmF0b3JfOwotICAgICAgdmFsdWVfLnJlc2V0KCk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQ2xvbmUoKSBjb25z
dCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgLy8gV2Ug
bmVlZCB0byB1c2UgY2FjaGVkIHZhbHVlIHJlZmVyZW5jZWQgYnkgaXRlcmF0b3JfIGJlY2F1c2Ug
Kml0ZXJhdG9yXwotICAgIC8vIGNhbiByZXR1cm4gYSB0ZW1wb3Jhcnkgb2JqZWN0IChhbmQgb2Yg
dHlwZSBvdGhlciB0aGVuIFQpLCBzbyBqdXN0Ci0gICAgLy8gaGF2aW5nICJyZXR1cm4gJippdGVy
YXRvcl87IiBkb2Vzbid0IHdvcmsuCi0gICAgLy8gdmFsdWVfIGlzIHVwZGF0ZWQgaGVyZSBhbmQg
bm90IGluIEFkdmFuY2UoKSBiZWNhdXNlIEFkdmFuY2UoKQotICAgIC8vIGNhbiBhZHZhbmNlIGl0
ZXJhdG9yXyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UsIGFuZCB3ZSBjYW5ub3QKLSAgICAv
LyBkZXRlY3QgdGhhdCBmYWN0LiBUaGUgY2xpZW50IGNvZGUsIG9uIHRoZSBvdGhlciBoYW5kLCBp
cwotICAgIC8vIHJlc3BvbnNpYmxlIGZvciBub3QgY2FsbGluZyBDdXJyZW50KCkgb24gYW4gb3V0
LW9mLXJhbmdlIGl0ZXJhdG9yLgotICAgIHZpcnR1YWwgY29uc3QgVCogQ3VycmVudCgpIGNvbnN0
IHsKLSAgICAgIGlmICh2YWx1ZV8uZ2V0KCkgPT0gTlVMTCkKLSAgICAgICAgdmFsdWVfLnJlc2V0
KG5ldyBUKCppdGVyYXRvcl8pKTsKLSAgICAgIHJldHVybiB2YWx1ZV8uZ2V0KCk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiYg
b3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhhdmluZyB0aGUgc2FtZSBiYXNlIGdlbmVyYXRvciBn
dWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0gICAgICAvLyBpdGVyYXRvciBpcyBvZiB0aGUgc2Ft
ZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCi0gICAgICBHVEVTVF9DSEVDS18oQmFzZUdlbmVy
YXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKLSAgICAgICAgICA8PCAiVGhlIHByb2dy
YW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIKLSAgICAgICAgICA8PCAiZnJvbSBk
aWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAgIHJldHVybiBpdGVyYXRv
cl8gPT0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0
b3I+KCZvdGhlciktPml0ZXJhdG9yXzsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0
b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICAgIC8vIFRoZSBleHBsaWNpdCBjb25z
dHJ1Y3RvciBjYWxsIHN1cHByZXNzZXMgYSBmYWxzZSB3YXJuaW5nCi0gICAgICAgICAgLy8gZW1p
dHRlZCBieSBnY2Mgd2hlbiBzdXBwbGllZCB3aXRoIHRoZSAtV2V4dHJhIG9wdGlvbi4KLSAgICAg
ICAgOiBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KCksCi0gICAgICAgICAgYmFzZV8ob3RoZXIu
YmFzZV8pLAotICAgICAgICAgIGl0ZXJhdG9yXyhvdGhlci5pdGVyYXRvcl8pIHt9Ci0KLSAgICBj
b25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogY29uc3QgYmFzZV87Ci0gICAgdHlwZW5h
bWUgQ29udGFpbmVyVHlwZTo6Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3JfOwotICAgIC8vIEEgY2Fj
aGVkIHZhbHVlIG9mICppdGVyYXRvcl8uIFdlIGtlZXAgaXQgaGVyZSB0byBhbGxvdyBhY2Nlc3Mg
YnkKLSAgICAvLyBwb2ludGVyIGluIHRoZSB3cmFwcGluZyBpdGVyYXRvcidzIG9wZXJhdG9yLT4o
KS4KLSAgICAvLyB2YWx1ZV8gbmVlZHMgdG8gYmUgbXV0YWJsZSB0byBiZSBhY2Nlc3NlZCBpbiBD
dXJyZW50KCkuCi0gICAgLy8gVXNlIG9mIHNjb3BlZF9wdHIgaGVscHMgbWFuYWdlIGNhY2hlZCB2
YWx1ZSdzIGxpZmV0aW1lLAotICAgIC8vIHdoaWNoIGlzIGJvdW5kIGJ5IHRoZSBsaWZlc3BhbiBv
ZiB0aGUgaXRlcmF0b3IgaXRzZWxmLgotICAgIG11dGFibGUgc2NvcGVkX3B0cjxjb25zdCBUPiB2
YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3I6Okl0
ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0
b3ImIG90aGVyKTsKLQotICBjb25zdCBDb250YWluZXJUeXBlIGNvbnRhaW5lcl87Ci19OyAgLy8g
Y2xhc3MgVmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yCi0KLS8vIElOVEVSTkFMIElNUExF
TUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gRGVmYXVsdCBwYXJh
bWV0ZXJpemVkIHRlc3QgbmFtZSBnZW5lcmF0b3IsIHJldHVybnMgYSBzdHJpbmcgY29udGFpbmlu
ZyB0aGUKLS8vIGludGVnZXIgdGVzdCBwYXJhbWV0ZXIgaW5kZXguCi10ZW1wbGF0ZSA8Y2xhc3Mg
UGFyYW1UeXBlPgotc3RkOjpzdHJpbmcgRGVmYXVsdFBhcmFtTmFtZShjb25zdCBUZXN0UGFyYW1J
bmZvPFBhcmFtVHlwZT4mIGluZm8pIHsKLSAgTWVzc2FnZSBuYW1lX3N0cmVhbTsKLSAgbmFtZV9z
dHJlYW0gPDwgaW5mby5pbmRleDsKLSAgcmV0dXJuIG5hbWVfc3RyZWFtLkdldFN0cmluZygpOwot
fQotCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RF
LgotLy8KLS8vIFBhcmFtZXRlcml6ZWQgdGVzdCBuYW1lIG92ZXJsb2FkIGhlbHBlcnMsIHdoaWNo
IGhlbHAgdGhlCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBtYWNybyBjaG9vc2UgYmV0d2Vl
biB0aGUgZGVmYXVsdCBwYXJhbWV0ZXJpemVkCi0vLyB0ZXN0IG5hbWUgZ2VuZXJhdG9yIGFuZCB1
c2VyIHBhcmFtIG5hbWUgZ2VuZXJhdG9yLgotdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlwZSwgY2xh
c3MgUGFyYW1OYW1lR2VuRnVuY3Rvcj4KLVBhcmFtTmFtZUdlbkZ1bmN0b3IgR2V0UGFyYW1OYW1l
R2VuKFBhcmFtTmFtZUdlbkZ1bmN0b3IgZnVuYykgewotICByZXR1cm4gZnVuYzsKLX0KLQotdGVt
cGxhdGUgPGNsYXNzIFBhcmFtVHlwZT4KLXN0cnVjdCBQYXJhbU5hbWVHZW5GdW5jIHsKLSAgdHlw
ZWRlZiBzdGQ6OnN0cmluZyBUeXBlKGNvbnN0IFRlc3RQYXJhbUluZm88UGFyYW1UeXBlPiYpOwot
fTsKLQotdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlwZT4KLXR5cGVuYW1lIFBhcmFtTmFtZUdlbkZ1
bmM8UGFyYW1UeXBlPjo6VHlwZSAqR2V0UGFyYW1OYW1lR2VuKCkgewotICByZXR1cm4gRGVmYXVs
dFBhcmFtTmFtZTsKLX0KLQotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNF
IElOIFVTRVIgQ09ERS4KLS8vCi0vLyBTdG9yZXMgYSBwYXJhbWV0ZXIgdmFsdWUgYW5kIGxhdGVy
IGNyZWF0ZXMgdGVzdHMgcGFyYW1ldGVyaXplZCB3aXRoIHRoYXQKLS8vIHZhbHVlLgotdGVtcGxh
dGUgPGNsYXNzIFRlc3RDbGFzcz4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0RmFjdG9yeSA6IHB1
YmxpYyBUZXN0RmFjdG9yeUJhc2UgewotIHB1YmxpYzoKLSAgdHlwZWRlZiB0eXBlbmFtZSBUZXN0
Q2xhc3M6OlBhcmFtVHlwZSBQYXJhbVR5cGU7Ci0gIGV4cGxpY2l0IFBhcmFtZXRlcml6ZWRUZXN0
RmFjdG9yeShQYXJhbVR5cGUgcGFyYW1ldGVyKSA6Ci0gICAgICBwYXJhbWV0ZXJfKHBhcmFtZXRl
cikge30KLSAgdmlydHVhbCBUZXN0KiBDcmVhdGVUZXN0KCkgewotICAgIFRlc3RDbGFzczo6U2V0
UGFyYW0oJnBhcmFtZXRlcl8pOwotICAgIHJldHVybiBuZXcgVGVzdENsYXNzKCk7Ci0gIH0KLQot
IHByaXZhdGU6Ci0gIGNvbnN0IFBhcmFtVHlwZSBwYXJhbWV0ZXJfOwotCi0gIEdURVNUX0RJU0FM
TE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RGYWN0b3J5KTsKLX07Ci0KLS8v
IElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwot
Ly8gVGVzdE1ldGFGYWN0b3J5QmFzZSBpcyBhIGJhc2UgY2xhc3MgZm9yIG1ldGEtZmFjdG9yaWVz
IHRoYXQgY3JlYXRlCi0vLyB0ZXN0IGZhY3RvcmllcyBmb3IgcGFzc2luZyBpbnRvIE1ha2VBbmRS
ZWdpc3RlclRlc3RJbmZvIGZ1bmN0aW9uLgotdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlwZT4KLWNs
YXNzIFRlc3RNZXRhRmFjdG9yeUJhc2UgewotIHB1YmxpYzoKLSAgdmlydHVhbCB+VGVzdE1ldGFG
YWN0b3J5QmFzZSgpIHt9Ci0KLSAgdmlydHVhbCBUZXN0RmFjdG9yeUJhc2UqIENyZWF0ZVRlc3RG
YWN0b3J5KFBhcmFtVHlwZSBwYXJhbWV0ZXIpID0gMDsKLX07Ci0KLS8vIElOVEVSTkFMIElNUExF
TUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gVGVzdE1ldGFGYWN0
b3J5IGNyZWF0ZXMgdGVzdCBmYWN0b3JpZXMgZm9yIHBhc3NpbmcgaW50bwotLy8gTWFrZUFuZFJl
Z2lzdGVyVGVzdEluZm8gZnVuY3Rpb24uIFNpbmNlIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvIHJl
Y2VpdmVzCi0vLyBvd25lcnNoaXAgb2YgdGVzdCBmYWN0b3J5IHBvaW50ZXIsIHNhbWUgZmFjdG9y
eSBvYmplY3QgY2Fubm90IGJlIHBhc3NlZAotLy8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4gQnV0
IFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gaXMgZ29pbmcgdG8gY2FsbAotLy8gaXQgZm9yIGVh
Y2ggVGVzdC9QYXJhbWV0ZXIgdmFsdWUgY29tYmluYXRpb24uIFRodXMgaXQgbmVlZHMgbWV0YSBm
YWN0b3J5Ci0vLyBjcmVhdG9yIGNsYXNzLgotdGVtcGxhdGUgPGNsYXNzIFRlc3RDYXNlPgotY2xh
c3MgVGVzdE1ldGFGYWN0b3J5Ci0gICAgOiBwdWJsaWMgVGVzdE1ldGFGYWN0b3J5QmFzZTx0eXBl
bmFtZSBUZXN0Q2FzZTo6UGFyYW1UeXBlPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIHR5cGVuYW1l
IFRlc3RDYXNlOjpQYXJhbVR5cGUgUGFyYW1UeXBlOwotCi0gIFRlc3RNZXRhRmFjdG9yeSgpIHt9
Ci0KLSAgdmlydHVhbCBUZXN0RmFjdG9yeUJhc2UqIENyZWF0ZVRlc3RGYWN0b3J5KFBhcmFtVHlw
ZSBwYXJhbWV0ZXIpIHsKLSAgICByZXR1cm4gbmV3IFBhcmFtZXRlcml6ZWRUZXN0RmFjdG9yeTxU
ZXN0Q2FzZT4ocGFyYW1ldGVyKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1df
Q09QWV9BTkRfQVNTSUdOXyhUZXN0TWV0YUZhY3RvcnkpOwotfTsKLQotLy8gSU5URVJOQUwgSU1Q
TEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8vCi0vLyBQYXJhbWV0ZXJp
emVkVGVzdENhc2VJbmZvQmFzZSBpcyBhIGdlbmVyaWMgaW50ZXJmYWNlCi0vLyB0byBQYXJhbWV0
ZXJpemVkVGVzdENhc2VJbmZvIGNsYXNzZXMuIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNl
Ci0vLyBhY2N1bXVsYXRlcyB0ZXN0IGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IFRFU1RfUCBtYWNy
byBpbnZvY2F0aW9ucwotLy8gYW5kIGdlbmVyYXRvcnMgcHJvdmlkZWQgYnkgSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AgbWFjcm8gaW52b2NhdGlvbnMKLS8vIGFuZCB1c2VzIHRoYXQgaW5mb3JtYXRp
b24gdG8gcmVnaXN0ZXIgYWxsIHJlc3VsdGluZyB0ZXN0IGluc3RhbmNlcwotLy8gaW4gUmVnaXN0
ZXJUZXN0cyBtZXRob2QuIFRoZSBQYXJhbWV0ZXJpemVUZXN0Q2FzZVJlZ2lzdHJ5IGNsYXNzIGhv
bGRzCi0vLyBhIGNvbGxlY3Rpb24gb2YgcG9pbnRlcnMgdG8gdGhlIFBhcmFtZXRlcml6ZWRUZXN0
Q2FzZUluZm8gb2JqZWN0cwotLy8gYW5kIGNhbGxzIFJlZ2lzdGVyVGVzdHMoKSBvbiBlYWNoIG9m
IHRoZW0gd2hlbiBhc2tlZC4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIHsK
LSBwdWJsaWM6Ci0gIHZpcnR1YWwgflBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlKCkge30K
LQotICAvLyBCYXNlIHBhcnQgb2YgdGVzdCBjYXNlIG5hbWUgZm9yIGRpc3BsYXkgcHVycG9zZXMu
Ci0gIHZpcnR1YWwgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRlc3RDYXNlTmFtZSgpIGNvbnN0ID0g
MDsKLSAgLy8gVGVzdCBjYXNlIGlkIHRvIHZlcmlmeSBpZGVudGl0eS4KLSAgdmlydHVhbCBUeXBl
SWQgR2V0VGVzdENhc2VUeXBlSWQoKSBjb25zdCA9IDA7Ci0gIC8vIFVuaXRUZXN0IGNsYXNzIGlu
dm9rZXMgdGhpcyBtZXRob2QgdG8gcmVnaXN0ZXIgdGVzdHMgaW4gdGhpcwotICAvLyB0ZXN0IGNh
c2UgcmlnaHQgYmVmb3JlIHJ1bm5pbmcgdGhlbSBpbiBSVU5fQUxMX1RFU1RTIG1hY3JvLgotICAv
LyBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBtb3JlIHRoZW4gb25jZSBvbiBhbnkg
c2luZ2xlCi0gIC8vIGluc3RhbmNlIG9mIGEgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2Ug
ZGVyaXZlZCBjbGFzcy4KLSAgdmlydHVhbCB2b2lkIFJlZ2lzdGVyVGVzdHMoKSA9IDA7Ci0KLSBw
cm90ZWN0ZWQ6Ci0gIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlKCkge30KLQotIHByaXZh
dGU6Ci0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RD
YXNlSW5mb0Jhc2UpOwotfTsKLQotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1Qg
VVNFIElOIFVTRVIgQ09ERS4KLS8vCi0vLyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvIGFjY3Vt
dWxhdGVzIHRlc3RzIG9idGFpbmVkIGZyb20gVEVTVF9QCi0vLyBtYWNybyBpbnZvY2F0aW9ucyBm
b3IgYSBwYXJ0aWN1bGFyIHRlc3QgY2FzZSBhbmQgZ2VuZXJhdG9ycwotLy8gb2J0YWluZWQgZnJv
bSBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBtYWNybyBpbnZvY2F0aW9ucyBmb3IgdGhhdAotLy8g
dGVzdCBjYXNlLiBJdCByZWdpc3RlcnMgdGVzdHMgd2l0aCBhbGwgdmFsdWVzIGdlbmVyYXRlZCBi
eSBhbGwKLS8vIGdlbmVyYXRvcnMgd2hlbiBhc2tlZC4KLXRlbXBsYXRlIDxjbGFzcyBUZXN0Q2Fz
ZT4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gOiBwdWJsaWMgUGFyYW1ldGVyaXpl
ZFRlc3RDYXNlSW5mb0Jhc2UgewotIHB1YmxpYzoKLSAgLy8gUGFyYW1UeXBlIGFuZCBHZW5lcmF0
b3JDcmVhdGlvbkZ1bmMgYXJlIHByaXZhdGUgdHlwZXMgYnV0IGFyZSByZXF1aXJlZAotICAvLyBm
b3IgZGVjbGFyYXRpb25zIG9mIHB1YmxpYyBtZXRob2RzIEFkZFRlc3RQYXR0ZXJuKCkgYW5kCi0g
IC8vIEFkZFRlc3RDYXNlSW5zdGFudGlhdGlvbigpLgotICB0eXBlZGVmIHR5cGVuYW1lIFRlc3RD
YXNlOjpQYXJhbVR5cGUgUGFyYW1UeXBlOwotICAvLyBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBh
biBpbnN0YW5jZSBvZiBhcHByb3ByaWF0ZSBnZW5lcmF0b3IgdHlwZS4KLSAgdHlwZWRlZiBQYXJh
bUdlbmVyYXRvcjxQYXJhbVR5cGU+KEdlbmVyYXRvckNyZWF0aW9uRnVuYykoKTsKLSAgdHlwZWRl
ZiB0eXBlbmFtZSBQYXJhbU5hbWVHZW5GdW5jPFBhcmFtVHlwZT46OlR5cGUgUGFyYW1OYW1lR2Vu
ZXJhdG9yRnVuYzsKLQotICBleHBsaWNpdCBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvKAotICAg
ICAgY29uc3QgY2hhciogbmFtZSwgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pCi0gICAgICA6
IHRlc3RfY2FzZV9uYW1lXyhuYW1lKSwgY29kZV9sb2NhdGlvbl8oY29kZV9sb2NhdGlvbikge30K
LQotICAvLyBUZXN0IGNhc2UgYmFzZSBuYW1lIGZvciBkaXNwbGF5IHB1cnBvc2VzLgotICB2aXJ0
dWFsIGNvbnN0IHN0ZDo6c3RyaW5nJiBHZXRUZXN0Q2FzZU5hbWUoKSBjb25zdCB7IHJldHVybiB0
ZXN0X2Nhc2VfbmFtZV87IH0KLSAgLy8gVGVzdCBjYXNlIGlkIHRvIHZlcmlmeSBpZGVudGl0eS4K
LSAgdmlydHVhbCBUeXBlSWQgR2V0VGVzdENhc2VUeXBlSWQoKSBjb25zdCB7IHJldHVybiBHZXRU
eXBlSWQ8VGVzdENhc2U+KCk7IH0KLSAgLy8gVEVTVF9QIG1hY3JvIHVzZXMgQWRkVGVzdFBhdHRl
cm4oKSB0byByZWNvcmQgaW5mb3JtYXRpb24KLSAgLy8gYWJvdXQgYSBzaW5nbGUgdGVzdCBpbiBh
IExvY2FsVGVzdEluZm8gc3RydWN0dXJlLgotICAvLyB0ZXN0X2Nhc2VfbmFtZSBpcyB0aGUgYmFz
ZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UgKHdpdGhvdXQgaW52b2NhdGlvbgotICAvLyBwcmVmaXgp
LiB0ZXN0X2Jhc2VfbmFtZSBpcyB0aGUgbmFtZSBvZiBhbiBpbmRpdmlkdWFsIHRlc3Qgd2l0aG91
dAotICAvLyBwYXJhbWV0ZXIgaW5kZXguIEZvciB0aGUgdGVzdCBTZXF1ZW5jZUEvRm9vVGVzdC5E
b0Jhci8xIEZvb1Rlc3QgaXMKLSAgLy8gdGVzdCBjYXNlIGJhc2UgbmFtZSBhbmQgRG9CYXIgaXMg
dGVzdCBiYXNlIG5hbWUuCi0gIHZvaWQgQWRkVGVzdFBhdHRlcm4oY29uc3QgY2hhciogdGVzdF9j
YXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9iYXNlX25h
bWUsCi0gICAgICAgICAgICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQYXJhbVR5cGU+
KiBtZXRhX2ZhY3RvcnkpIHsKLSAgICB0ZXN0c18ucHVzaF9iYWNrKGxpbmtlZF9wdHI8VGVzdElu
Zm8+KG5ldyBUZXN0SW5mbyh0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Jhc2VfbmFtZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhX2ZhY3Rv
cnkpKSk7Ci0gIH0KLSAgLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgbWFjcm8gdXNlcyBBZGRH
ZW5lcmF0b3IoKSB0byByZWNvcmQgaW5mb3JtYXRpb24KLSAgLy8gYWJvdXQgYSBnZW5lcmF0b3Iu
Ci0gIGludCBBZGRUZXN0Q2FzZUluc3RhbnRpYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGluc3Rh
bnRpYXRpb25fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0b3JD
cmVhdGlvbkZ1bmMqIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1O
YW1lR2VuZXJhdG9yRnVuYyogbmFtZV9mdW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7Ci0gICAgaW5zdGFudGlhdGlvbnNfLnB1
c2hfYmFjaygKLSAgICAgICAgSW5zdGFudGlhdGlvbkluZm8oaW5zdGFudGlhdGlvbl9uYW1lLCBm
dW5jLCBuYW1lX2Z1bmMsIGZpbGUsIGxpbmUpKTsKLSAgICByZXR1cm4gMDsgIC8vIFJldHVybiB2
YWx1ZSB1c2VkIG9ubHkgdG8gcnVuIHRoaXMgbWV0aG9kIGluIG5hbWVzcGFjZSBzY29wZS4KLSAg
fQotICAvLyBVbml0VGVzdCBjbGFzcyBpbnZva2VzIHRoaXMgbWV0aG9kIHRvIHJlZ2lzdGVyIHRl
c3RzIGluIHRoaXMgdGVzdCBjYXNlCi0gIC8vIHRlc3QgY2FzZXMgcmlnaHQgYmVmb3JlIHJ1bm5p
bmcgdGVzdHMgaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KLSAgLy8gVGhpcyBtZXRob2Qgc2hvdWxk
IG5vdCBiZSBjYWxsZWQgbW9yZSB0aGVuIG9uY2Ugb24gYW55IHNpbmdsZQotICAvLyBpbnN0YW5j
ZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIGRlcml2ZWQgY2xhc3MuCi0gIC8v
IFVuaXRUZXN0IGhhcyBhIGd1YXJkIHRvIHByZXZlbnQgZnJvbSBjYWxsaW5nIHRoaXMgbWV0aG9k
IG1vcmUgdGhlbiBvbmNlLgotICB2aXJ0dWFsIHZvaWQgUmVnaXN0ZXJUZXN0cygpIHsKLSAgICBm
b3IgKHR5cGVuYW1lIFRlc3RJbmZvQ29udGFpbmVyOjppdGVyYXRvciB0ZXN0X2l0ID0gdGVzdHNf
LmJlZ2luKCk7Ci0gICAgICAgICB0ZXN0X2l0ICE9IHRlc3RzXy5lbmQoKTsgKyt0ZXN0X2l0KSB7
Ci0gICAgICBsaW5rZWRfcHRyPFRlc3RJbmZvPiB0ZXN0X2luZm8gPSAqdGVzdF9pdDsKLSAgICAg
IGZvciAodHlwZW5hbWUgSW5zdGFudGlhdGlvbkNvbnRhaW5lcjo6aXRlcmF0b3IgZ2VuX2l0ID0K
LSAgICAgICAgICAgICAgIGluc3RhbnRpYXRpb25zXy5iZWdpbigpOyBnZW5faXQgIT0gaW5zdGFu
dGlhdGlvbnNfLmVuZCgpOwotICAgICAgICAgICAgICAgKytnZW5faXQpIHsKLSAgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIGluc3RhbnRpYXRpb25fbmFtZSA9IGdlbl9pdC0+bmFtZTsKLSAgICAg
ICAgUGFyYW1HZW5lcmF0b3I8UGFyYW1UeXBlPiBnZW5lcmF0b3IoKCpnZW5faXQtPmdlbmVyYXRv
cikoKSk7Ci0gICAgICAgIFBhcmFtTmFtZUdlbmVyYXRvckZ1bmMqIG5hbWVfZnVuYyA9IGdlbl9p
dC0+bmFtZV9mdW5jOwotICAgICAgICBjb25zdCBjaGFyKiBmaWxlID0gZ2VuX2l0LT5maWxlOwot
ICAgICAgICBpbnQgbGluZSA9IGdlbl9pdC0+bGluZTsKLQotICAgICAgICBzdGQ6OnN0cmluZyB0
ZXN0X2Nhc2VfbmFtZTsKLSAgICAgICAgaWYgKCAhaW5zdGFudGlhdGlvbl9uYW1lLmVtcHR5KCkg
KQotICAgICAgICAgIHRlc3RfY2FzZV9uYW1lID0gaW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOwot
ICAgICAgICB0ZXN0X2Nhc2VfbmFtZSArPSB0ZXN0X2luZm8tPnRlc3RfY2FzZV9iYXNlX25hbWU7
Ci0KLSAgICAgICAgc2l6ZV90IGkgPSAwOwotICAgICAgICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4g
dGVzdF9wYXJhbV9uYW1lczsKLSAgICAgICAgZm9yICh0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxQ
YXJhbVR5cGU+OjppdGVyYXRvciBwYXJhbV9pdCA9Ci0gICAgICAgICAgICAgICAgIGdlbmVyYXRv
ci5iZWdpbigpOwotICAgICAgICAgICAgIHBhcmFtX2l0ICE9IGdlbmVyYXRvci5lbmQoKTsgKytw
YXJhbV9pdCwgKytpKSB7Ci0gICAgICAgICAgTWVzc2FnZSB0ZXN0X25hbWVfc3RyZWFtOwotCi0g
ICAgICAgICAgc3RkOjpzdHJpbmcgcGFyYW1fbmFtZSA9IG5hbWVfZnVuYygKLSAgICAgICAgICAg
ICAgVGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+KCpwYXJhbV9pdCwgaSkpOwotCi0gICAgICAgICAg
R1RFU1RfQ0hFQ0tfKElzVmFsaWRQYXJhbU5hbWUocGFyYW1fbmFtZSkpCi0gICAgICAgICAgICAg
IDw8ICJQYXJhbWV0ZXJpemVkIHRlc3QgbmFtZSAnIiA8PCBwYXJhbV9uYW1lCi0gICAgICAgICAg
ICAgIDw8ICInIGlzIGludmFsaWQsIGluICIgPDwgZmlsZQotICAgICAgICAgICAgICA8PCAiIGxp
bmUgIiA8PCBsaW5lIDw8IHN0ZDo6ZW5kbDsKLQotICAgICAgICAgIEdURVNUX0NIRUNLXyh0ZXN0
X3BhcmFtX25hbWVzLmNvdW50KHBhcmFtX25hbWUpID09IDApCi0gICAgICAgICAgICAgIDw8ICJE
dXBsaWNhdGUgcGFyYW1ldGVyaXplZCB0ZXN0IG5hbWUgJyIgPDwgcGFyYW1fbmFtZQotICAgICAg
ICAgICAgICA8PCAiJywgaW4gIiA8PCBmaWxlIDw8ICIgbGluZSAiIDw8IGxpbmUgPDwgc3RkOjpl
bmRsOwotCi0gICAgICAgICAgdGVzdF9wYXJhbV9uYW1lcy5pbnNlcnQocGFyYW1fbmFtZSk7Ci0K
LSAgICAgICAgICB0ZXN0X25hbWVfc3RyZWFtIDw8IHRlc3RfaW5mby0+dGVzdF9iYXNlX25hbWUg
PDwgIi8iIDw8IHBhcmFtX25hbWU7Ci0gICAgICAgICAgTWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8o
Ci0gICAgICAgICAgICAgIHRlc3RfY2FzZV9uYW1lLmNfc3RyKCksCi0gICAgICAgICAgICAgIHRl
c3RfbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCkuY19zdHIoKSwKLSAgICAgICAgICAgICAgTlVMTCwg
IC8vIE5vIHR5cGUgcGFyYW1ldGVyLgotICAgICAgICAgICAgICBQcmludFRvU3RyaW5nKCpwYXJh
bV9pdCkuY19zdHIoKSwKLSAgICAgICAgICAgICAgY29kZV9sb2NhdGlvbl8sCi0gICAgICAgICAg
ICAgIEdldFRlc3RDYXNlVHlwZUlkKCksCi0gICAgICAgICAgICAgIFRlc3RDYXNlOjpTZXRVcFRl
c3RDYXNlLAotICAgICAgICAgICAgICBUZXN0Q2FzZTo6VGVhckRvd25UZXN0Q2FzZSwKLSAgICAg
ICAgICAgICAgdGVzdF9pbmZvLT50ZXN0X21ldGFfZmFjdG9yeS0+Q3JlYXRlVGVzdEZhY3Rvcnko
KnBhcmFtX2l0KSk7Ci0gICAgICAgIH0gIC8vIGZvciBwYXJhbV9pdAotICAgICAgfSAgLy8gZm9y
IGdlbl9pdAotICAgIH0gIC8vIGZvciB0ZXN0X2l0Ci0gIH0gIC8vIFJlZ2lzdGVyVGVzdHMKLQot
IHByaXZhdGU6Ci0gIC8vIExvY2FsVGVzdEluZm8gc3RydWN0dXJlIGtlZXBzIGluZm9ybWF0aW9u
IGFib3V0IGEgc2luZ2xlIHRlc3QgcmVnaXN0ZXJlZAotICAvLyB3aXRoIFRFU1RfUCBtYWNyby4K
LSAgc3RydWN0IFRlc3RJbmZvIHsKLSAgICBUZXN0SW5mbyhjb25zdCBjaGFyKiBhX3Rlc3RfY2Fz
ZV9iYXNlX25hbWUsCi0gICAgICAgICAgICAgY29uc3QgY2hhciogYV90ZXN0X2Jhc2VfbmFtZSwK
LSAgICAgICAgICAgICBUZXN0TWV0YUZhY3RvcnlCYXNlPFBhcmFtVHlwZT4qIGFfdGVzdF9tZXRh
X2ZhY3RvcnkpIDoKLSAgICAgICAgdGVzdF9jYXNlX2Jhc2VfbmFtZShhX3Rlc3RfY2FzZV9iYXNl
X25hbWUpLAotICAgICAgICB0ZXN0X2Jhc2VfbmFtZShhX3Rlc3RfYmFzZV9uYW1lKSwKLSAgICAg
ICAgdGVzdF9tZXRhX2ZhY3RvcnkoYV90ZXN0X21ldGFfZmFjdG9yeSkge30KLQotICAgIGNvbnN0
IHN0ZDo6c3RyaW5nIHRlc3RfY2FzZV9iYXNlX25hbWU7Ci0gICAgY29uc3Qgc3RkOjpzdHJpbmcg
dGVzdF9iYXNlX25hbWU7Ci0gICAgY29uc3Qgc2NvcGVkX3B0cjxUZXN0TWV0YUZhY3RvcnlCYXNl
PFBhcmFtVHlwZT4gPiB0ZXN0X21ldGFfZmFjdG9yeTsKLSAgfTsKLSAgdHlwZWRlZiA6OnN0ZDo6
dmVjdG9yPGxpbmtlZF9wdHI8VGVzdEluZm8+ID4gVGVzdEluZm9Db250YWluZXI7Ci0gIC8vIFJl
Y29yZHMgZGF0YSByZWNlaXZlZCBmcm9tIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvczoK
LSAgLy8gIDxJbnN0YW50aWF0aW9uIG5hbWUsIFNlcXVlbmNlIGdlbmVyYXRvciBjcmVhdGlvbiBm
dW5jdGlvbiwKLSAgLy8gICAgIE5hbWUgZ2VuZXJhdG9yIGZ1bmN0aW9uLCBTb3VyY2UgZmlsZSwg
U291cmNlIGxpbmU+Ci0gIHN0cnVjdCBJbnN0YW50aWF0aW9uSW5mbyB7Ci0gICAgICBJbnN0YW50
aWF0aW9uSW5mbyhjb25zdCBzdGQ6OnN0cmluZyAmbmFtZV9pbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIEdlbmVyYXRvckNyZWF0aW9uRnVuYyogZ2VuZXJhdG9yX2luLAotICAgICAgICAgICAg
ICAgICAgICAgICAgUGFyYW1OYW1lR2VuZXJhdG9yRnVuYyogbmFtZV9mdW5jX2luLAotICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZV9pbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBsaW5lX2luKQotICAgICAgICAgIDogbmFtZShuYW1lX2luKSwKLSAgICAgICAg
ICAgIGdlbmVyYXRvcihnZW5lcmF0b3JfaW4pLAotICAgICAgICAgICAgbmFtZV9mdW5jKG5hbWVf
ZnVuY19pbiksCi0gICAgICAgICAgICBmaWxlKGZpbGVfaW4pLAotICAgICAgICAgICAgbGluZShs
aW5lX2luKSB7fQotCi0gICAgICBzdGQ6OnN0cmluZyBuYW1lOwotICAgICAgR2VuZXJhdG9yQ3Jl
YXRpb25GdW5jKiBnZW5lcmF0b3I7Ci0gICAgICBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBuYW1l
X2Z1bmM7Ci0gICAgICBjb25zdCBjaGFyKiBmaWxlOwotICAgICAgaW50IGxpbmU7Ci0gIH07Ci0g
IHR5cGVkZWYgOjpzdGQ6OnZlY3RvcjxJbnN0YW50aWF0aW9uSW5mbz4gSW5zdGFudGlhdGlvbkNv
bnRhaW5lcjsKLQotICBzdGF0aWMgYm9vbCBJc1ZhbGlkUGFyYW1OYW1lKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBuYW1lKSB7Ci0gICAgLy8gQ2hlY2sgZm9yIGVtcHR5IHN0cmluZwotICAgIGlmIChuYW1l
LmVtcHR5KCkpCi0gICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBDaGVjayBmb3IgaW52YWxp
ZCBjaGFyYWN0ZXJzCi0gICAgZm9yIChzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGluZGV4ID0gMDsg
aW5kZXggPCBuYW1lLnNpemUoKTsgKytpbmRleCkgewotICAgICAgaWYgKCFpc2FsbnVtKG5hbWVb
aW5kZXhdKSAmJiBuYW1lW2luZGV4XSAhPSAnXycpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3Rf
Y2FzZV9uYW1lXzsKLSAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb25fOwotICBUZXN0SW5mb0Nv
bnRhaW5lciB0ZXN0c187Ci0gIEluc3RhbnRpYXRpb25Db250YWluZXIgaW5zdGFudGlhdGlvbnNf
OwotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RD
YXNlSW5mbyk7Ci19OyAgLy8gY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbwotCi0vLyBJ
TlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KLS8v
IFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IGNvbnRhaW5zIGEgbWFwIG9mIFBhcmFtZXRl
cml6ZWRUZXN0Q2FzZUluZm9CYXNlCi0vLyBjbGFzc2VzIGFjY2Vzc2VkIGJ5IHRlc3QgY2FzZSBu
YW1lcy4gVEVTVF9QIGFuZCBJTlNUQU5USUFURV9URVNUX0NBU0VfUAotLy8gbWFjcm9zIHVzZSBp
dCB0byBsb2NhdGUgdGhlaXIgY29ycmVzcG9uZGluZyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZv
Ci0vLyBkZXNjcmlwdG9ycy4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IHsK
LSBwdWJsaWM6Ci0gIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5KCkge30KLSAgflBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5KCkgewotICAgIGZvciAoVGVzdENhc2VJbmZvQ29udGFp
bmVyOjppdGVyYXRvciBpdCA9IHRlc3RfY2FzZV9pbmZvc18uYmVnaW4oKTsKLSAgICAgICAgIGl0
ICE9IHRlc3RfY2FzZV9pbmZvc18uZW5kKCk7ICsraXQpIHsKLSAgICAgIGRlbGV0ZSAqaXQ7Ci0g
ICAgfQotICB9Ci0KLSAgLy8gTG9va3MgdXAgb3IgY3JlYXRlcyBhbmQgcmV0dXJucyBhIHN0cnVj
dHVyZSBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0Ci0gIC8vIHRlc3RzIGFuZCBpbnN0YW50
aWF0aW9ucyBvZiBhIHBhcnRpY3VsYXIgdGVzdCBjYXNlLgotICB0ZW1wbGF0ZSA8Y2xhc3MgVGVz
dENhc2U+Ci0gIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm88VGVzdENhc2U+KiBHZXRUZXN0Q2Fz
ZVBhdHRlcm5Ib2xkZXIoCi0gICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAg
IENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7Ci0gICAgUGFyYW1ldGVyaXplZFRlc3RDYXNl
SW5mbzxUZXN0Q2FzZT4qIHR5cGVkX3Rlc3RfaW5mbyA9IE5VTEw7Ci0gICAgZm9yIChUZXN0Q2Fz
ZUluZm9Db250YWluZXI6Oml0ZXJhdG9yIGl0ID0gdGVzdF9jYXNlX2luZm9zXy5iZWdpbigpOwot
ICAgICAgICAgaXQgIT0gdGVzdF9jYXNlX2luZm9zXy5lbmQoKTsgKytpdCkgewotICAgICAgaWYg
KCgqaXQpLT5HZXRUZXN0Q2FzZU5hbWUoKSA9PSB0ZXN0X2Nhc2VfbmFtZSkgewotICAgICAgICBp
ZiAoKCppdCktPkdldFRlc3RDYXNlVHlwZUlkKCkgIT0gR2V0VHlwZUlkPFRlc3RDYXNlPigpKSB7
Ci0gICAgICAgICAgLy8gQ29tcGxhaW4gYWJvdXQgaW5jb3JyZWN0IHVzYWdlIG9mIEdvb2dsZSBU
ZXN0IGZhY2lsaXRpZXMKLSAgICAgICAgICAvLyBhbmQgdGVybWluYXRlIHRoZSBwcm9ncmFtIHNp
bmNlIHdlIGNhbm5vdCBndWFyYW50eSBjb3JyZWN0Ci0gICAgICAgICAgLy8gdGVzdCBjYXNlIHNl
dHVwIGFuZCB0ZWFyLWRvd24gaW4gdGhpcyBjYXNlLgotICAgICAgICAgIFJlcG9ydEludmFsaWRU
ZXN0Q2FzZVR5cGUodGVzdF9jYXNlX25hbWUsIGNvZGVfbG9jYXRpb24pOwotICAgICAgICAgIHBv
c2l4OjpBYm9ydCgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIEF0IHRoaXMgcG9p
bnQgd2UgYXJlIHN1cmUgdGhhdCB0aGUgb2JqZWN0IHdlIGZvdW5kIGlzIG9mIHRoZSBzYW1lCi0g
ICAgICAgICAgLy8gdHlwZSB3ZSBhcmUgbG9va2luZyBmb3IsIHNvIHdlIGRvd25jYXN0IGl0IHRv
IHRoYXQgdHlwZQotICAgICAgICAgIC8vIHdpdGhvdXQgZnVydGhlciBjaGVja3MuCi0gICAgICAg
ICAgdHlwZWRfdGVzdF9pbmZvID0gQ2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPAotICAgICAg
ICAgICAgICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvPFRlc3RDYXNlPiA+KCppdCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotICAgIGlmICh0eXBlZF90ZXN0
X2luZm8gPT0gTlVMTCkgewotICAgICAgdHlwZWRfdGVzdF9pbmZvID0gbmV3IFBhcmFtZXRlcml6
ZWRUZXN0Q2FzZUluZm88VGVzdENhc2U+KAotICAgICAgICAgIHRlc3RfY2FzZV9uYW1lLCBjb2Rl
X2xvY2F0aW9uKTsKLSAgICAgIHRlc3RfY2FzZV9pbmZvc18ucHVzaF9iYWNrKHR5cGVkX3Rlc3Rf
aW5mbyk7Ci0gICAgfQotICAgIHJldHVybiB0eXBlZF90ZXN0X2luZm87Ci0gIH0KLSAgdm9pZCBS
ZWdpc3RlclRlc3RzKCkgewotICAgIGZvciAoVGVzdENhc2VJbmZvQ29udGFpbmVyOjppdGVyYXRv
ciBpdCA9IHRlc3RfY2FzZV9pbmZvc18uYmVnaW4oKTsKLSAgICAgICAgIGl0ICE9IHRlc3RfY2Fz
ZV9pbmZvc18uZW5kKCk7ICsraXQpIHsKLSAgICAgICgqaXQpLT5SZWdpc3RlclRlc3RzKCk7Ci0g
ICAgfQotICB9Ci0KLSBwcml2YXRlOgotICB0eXBlZGVmIDo6c3RkOjp2ZWN0b3I8UGFyYW1ldGVy
aXplZFRlc3RDYXNlSW5mb0Jhc2UqPiBUZXN0Q2FzZUluZm9Db250YWluZXI7Ci0KLSAgVGVzdENh
c2VJbmZvQ29udGFpbmVyIHRlc3RfY2FzZV9pbmZvc187Ci0KLSAgR1RFU1RfRElTQUxMT1dfQ09Q
WV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJpemVkVGVzdENhc2VSZWdpc3RyeSk7Ci19OwotCi19ICAv
LyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0KLSNlbmRpZiAg
Ly8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LXBvcnQtYXJjaC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYmIyMDYxNjdiYTI2NzQ4MjQ4ZjBjYmNiNjE5Y2UwOGRlYzBiOTk4NS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oCisrKyAvZGV2
L251bGwKQEAgLTEsOTcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTUsIEdvb2dsZSBJbmMuCi0v
LyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotLy8KLS8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29n
bGUgVGVzdCkKLS8vCi0vLyBUaGlzIGhlYWRlciBmaWxlIGRlZmluZXMgdGhlIEdURVNUX09TXyog
bWFjcm8uCi0vLyBJdCBpcyBzZXBhcmF0ZSBmcm9tIGd0ZXN0LXBvcnQuaCBzbyB0aGF0IGN1c3Rv
bS9ndGVzdC1wb3J0LmggY2FuIGluY2x1ZGUgaXQuCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KLQotLy8gRGV0ZXJtaW5lcyB0aGUgcGxh
dGZvcm0gb24gd2hpY2ggR29vZ2xlIFRlc3QgaXMgY29tcGlsZWQuCi0jaWZkZWYgX19DWUdXSU5f
XwotIyBkZWZpbmUgR1RFU1RfT1NfQ1lHV0lOIDEKLSNlbGlmIGRlZmluZWQgX19TWU1CSUFOMzJf
XwotIyBkZWZpbmUgR1RFU1RfT1NfU1lNQklBTiAxCi0jZWxpZiBkZWZpbmVkIF9XSU4zMgotIyBk
ZWZpbmUgR1RFU1RfT1NfV0lORE9XUyAxCi0jIGlmZGVmIF9XSU4zMl9XQ0UKLSMgIGRlZmluZSBH
VEVTVF9PU19XSU5ET1dTX01PQklMRSAxCi0jIGVsaWYgZGVmaW5lZChfX01JTkdXX18pIHx8IGRl
ZmluZWQoX19NSU5HVzMyX18pCi0jICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAxCi0j
IGVsaWYgZGVmaW5lZChXSU5BUElfRkFNSUxZKQotIyAgaW5jbHVkZSA8d2luYXBpZmFtaWx5Lmg+
Ci0jICBpZiBXSU5BUElfRkFNSUxZX1BBUlRJVElPTihXSU5BUElfUEFSVElUSU9OX0RFU0tUT1Ap
Ci0jICAgZGVmaW5lIEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAxCi0jICBlbGlmIFdJTkFQSV9G
QU1JTFlfUEFSVElUSU9OKFdJTkFQSV9QQVJUSVRJT05fUEhPTkVfQVBQKQotIyAgIGRlZmluZSBH
VEVTVF9PU19XSU5ET1dTX1BIT05FIDEKLSMgIGVsaWYgV0lOQVBJX0ZBTUlMWV9QQVJUSVRJT04o
V0lOQVBJX1BBUlRJVElPTl9BUFApCi0jICAgZGVmaW5lIEdURVNUX09TX1dJTkRPV1NfUlQgMQot
IyAgZWxzZQotICAgIC8vIFdJTkFQSV9GQU1JTFkgZGVmaW5lZCBidXQgbm8ga25vd24gcGFydGl0
aW9uIG1hdGNoZWQuCi0gICAgLy8gRGVmYXVsdCB0byBkZXNrdG9wLgotIyAgIGRlZmluZSBHVEVT
VF9PU19XSU5ET1dTX0RFU0tUT1AgMQotIyAgZW5kaWYKLSMgZWxzZQotIyAgZGVmaW5lIEdURVNU
X09TX1dJTkRPV1NfREVTS1RPUCAxCi0jIGVuZGlmICAvLyBfV0lOMzJfV0NFCi0jZWxpZiBkZWZp
bmVkIF9fQVBQTEVfXwotIyBkZWZpbmUgR1RFU1RfT1NfTUFDIDEKLSMgaWYgVEFSR0VUX09TX0lQ
SE9ORQotIyAgZGVmaW5lIEdURVNUX09TX0lPUyAxCi0jIGVuZGlmCi0jZWxpZiBkZWZpbmVkIF9f
RnJlZUJTRF9fCi0jIGRlZmluZSBHVEVTVF9PU19GUkVFQlNEIDEKLSNlbGlmIGRlZmluZWQgX19G
dWNoc2lhX18KLSMgZGVmaW5lIEdURVNUX09TX0ZVQ0hTSUEgMQotI2VsaWYgZGVmaW5lZCBfX2xp
bnV4X18KLSMgZGVmaW5lIEdURVNUX09TX0xJTlVYIDEKLSMgaWYgZGVmaW5lZCBfX0FORFJPSURf
XwotIyAgZGVmaW5lIEdURVNUX09TX0xJTlVYX0FORFJPSUQgMQotIyBlbmRpZgotI2VsaWYgZGVm
aW5lZCBfX01WU19fCi0jIGRlZmluZSBHVEVTVF9PU19aT1MgMQotI2VsaWYgZGVmaW5lZChfX3N1
bikgJiYgZGVmaW5lZChfX1NWUjQpCi0jIGRlZmluZSBHVEVTVF9PU19TT0xBUklTIDEKLSNlbGlm
IGRlZmluZWQoX0FJWCkKLSMgZGVmaW5lIEdURVNUX09TX0FJWCAxCi0jZWxpZiBkZWZpbmVkKF9f
aHB1eCkKLSMgZGVmaW5lIEdURVNUX09TX0hQVVggMQotI2VsaWYgZGVmaW5lZCBfX25hdGl2ZV9j
bGllbnRfXwotIyBkZWZpbmUgR1RFU1RfT1NfTkFDTCAxCi0jZWxpZiBkZWZpbmVkIF9fTmV0QlNE
X18KLSMgZGVmaW5lIEdURVNUX09TX05FVEJTRCAxCi0jZWxpZiBkZWZpbmVkIF9fT3BlbkJTRF9f
Ci0jIGRlZmluZSBHVEVTVF9PU19PUEVOQlNEIDEKLSNlbGlmIGRlZmluZWQgX19RTlhfXwotIyBk
ZWZpbmUgR1RFU1RfT1NfUU5YIDEKLSNlbmRpZiAgLy8gX19DWUdXSU5fXwotCi0jZW5kaWYgIC8v
IEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9BUkNIX0hfCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcG9ydC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGFiN2Zk
ZjExZTEzZTNhOWU4N2EzZDFhNjVlMzE3Nzc2MWU4NDc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjU5NyAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNSwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0v
LyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwot
Ly8gQXV0aG9yczogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLS8vCi0vLyBMb3ctbGV2
ZWwgdHlwZXMgYW5kIHV0aWxpdGllcyBmb3IgcG9ydGluZyBHb29nbGUgVGVzdCB0byB2YXJpb3Vz
Ci0vLyBwbGF0Zm9ybXMuICBBbGwgbWFjcm9zIGVuZGluZyB3aXRoIF8gYW5kIHN5bWJvbHMgZGVm
aW5lZCBpbiBhbgotLy8gaW50ZXJuYWwgbmFtZXNwYWNlIGFyZSBzdWJqZWN0IHRvIGNoYW5nZSB3
aXRob3V0IG5vdGljZS4gIENvZGUKLS8vIG91dHNpZGUgR29vZ2xlIFRlc3QgTVVTVCBOT1QgVVNF
IFRIRU0gRElSRUNUTFkuICBNYWNyb3MgdGhhdCBkb24ndAotLy8gZW5kIHdpdGggXyBhcmUgcGFy
dCBvZiBHb29nbGUgVGVzdCdzIHB1YmxpYyBBUEkgYW5kIGNhbiBiZSB1c2VkIGJ5Ci0vLyBjb2Rl
IG91dHNpZGUgR29vZ2xlIFRlc3QuCi0vLwotLy8gVGhpcyBmaWxlIGlzIGZ1bmRhbWVudGFsIHRv
IEdvb2dsZSBUZXN0LiAgQWxsIG90aGVyIEdvb2dsZSBUZXN0IHNvdXJjZQotLy8gZmlsZXMgYXJl
IGV4cGVjdGVkIHRvICNpbmNsdWRlIHRoaXMuICBUaGVyZWZvcmUsIGl0IGNhbm5vdCAjaW5jbHVk
ZQotLy8gYW55IG90aGVyIEdvb2dsZSBUZXN0IGhlYWRlci4KLQotI2lmbmRlZiBHVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0hfCi0KLS8vIEVudmlyb25tZW50LWRlc2NyaWJpbmcg
bWFjcm9zCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8KLS8vIEdvb2dsZSBU
ZXN0IGNhbiBiZSB1c2VkIGluIG1hbnkgZGlmZmVyZW50IGVudmlyb25tZW50cy4gIE1hY3JvcyBp
bgotLy8gdGhpcyBzZWN0aW9uIHRlbGwgR29vZ2xlIFRlc3Qgd2hhdCBraW5kIG9mIGVudmlyb25t
ZW50IGl0IGlzIGJlaW5nCi0vLyB1c2VkIGluLCBzdWNoIHRoYXQgR29vZ2xlIFRlc3QgY2FuIHBy
b3ZpZGUgZW52aXJvbm1lbnQtc3BlY2lmaWMKLS8vIGZlYXR1cmVzIGFuZCBpbXBsZW1lbnRhdGlv
bnMuCi0vLwotLy8gR29vZ2xlIFRlc3QgdHJpZXMgdG8gYXV0b21hdGljYWxseSBkZXRlY3QgdGhl
IHByb3BlcnRpZXMgb2YgaXRzCi0vLyBlbnZpcm9ubWVudCwgc28gdXNlcnMgdXN1YWxseSBkb24n
dCBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZXNlCi0vLyBtYWNyb3MuICBIb3dldmVyLCB0aGUgYXV0
b21hdGljIGRldGVjdGlvbiBpcyBub3QgcGVyZmVjdC4KLS8vIFNvbWV0aW1lcyBpdCdzIG5lY2Vz
c2FyeSBmb3IgYSB1c2VyIHRvIGRlZmluZSBzb21lIG9mIHRoZSBmb2xsb3dpbmcKLS8vIG1hY3Jv
cyBpbiB0aGUgYnVpbGQgc2NyaXB0IHRvIG92ZXJyaWRlIEdvb2dsZSBUZXN0J3MgZGVjaXNpb25z
LgotLy8KLS8vIElmIHRoZSB1c2VyIGRvZXNuJ3QgZGVmaW5lIGEgbWFjcm8gaW4gdGhlIGxpc3Qs
IEdvb2dsZSBUZXN0IHdpbGwKLS8vIHByb3ZpZGUgYSBkZWZhdWx0IGRlZmluaXRpb24uICBBZnRl
ciB0aGlzIGhlYWRlciBpcyAjaW5jbHVkZWQsIGFsbAotLy8gbWFjcm9zIGluIHRoaXMgbGlzdCB3
aWxsIGJlIGRlZmluZWQgdG8gZWl0aGVyIDEgb3IgMC4KLS8vCi0vLyBOb3RlcyB0byBtYWludGFp
bmVyczoKLS8vICAgLSBFYWNoIG1hY3JvIGhlcmUgaXMgYSB1c2VyLXR3ZWFrYWJsZSBrbm9iOyBk
byBub3QgZ3JvdyB0aGUgbGlzdAotLy8gICAgIGxpZ2h0bHkuCi0vLyAgIC0gVXNlICNpZiB0byBr
ZXkgb2ZmIHRoZXNlIG1hY3Jvcy4gIERvbid0IHVzZSAjaWZkZWYgb3IgIiNpZgotLy8gICAgIGRl
ZmluZWQoLi4uKSIsIHdoaWNoIHdpbGwgbm90IHdvcmsgYXMgdGhlc2UgbWFjcm9zIGFyZSBBTFdB
WVMKLS8vICAgICBkZWZpbmVkLgotLy8KLS8vICAgR1RFU1RfSEFTX0NMT05FICAgICAgICAgIC0g
RGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0IGNsb25lKDIpCi0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlzL2lzbid0IGF2YWlsYWJsZS4KLS8vICAgR1RFU1RfSEFTX0VY
Q0VQVElPTlMgICAgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0IGV4Y2VwdGlv
bnMKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIGVuYWJsZWQuCi0vLyAgIEdU
RVNUX0hBU19HTE9CQUxfU1RSSU5HICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhh
dCA6OnN0cmluZwotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFp
bGFibGUgKHNvbWUgc3lzdGVtcyBkZWZpbmUKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOjpzdHJpbmcsIHdoaWNoIGlzIGRpZmZlcmVudCB0byBzdGQ6OnN0cmluZykuCi0vLyAgIEdU
RVNUX0hBU19HTE9CQUxfV1NUUklORyAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhh
dCA6OnN0cmluZwotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFp
bGFibGUgKHNvbWUgc3lzdGVtcyBkZWZpbmUKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOjp3c3RyaW5nLCB3aGljaCBpcyBkaWZmZXJlbnQgdG8gc3RkOjp3c3RyaW5nKS4KLS8vICAg
R1RFU1RfSEFTX1BPU0lYX1JFICAgICAgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0
aGF0IFBPU0lYIHJlZ3VsYXIKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVz
c2lvbnMgYXJlL2FyZW4ndCBhdmFpbGFibGUuCi0vLyAgIEdURVNUX0hBU19QVEhSRUFEICAgICAg
ICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA8cHRocmVhZC5oPgotLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFpbGFibGUuCi0vLyAgIEdURVNU
X0hBU19SVFRJICAgICAgICAgICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCBS
VFRJIGlzL2lzbid0Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQuCi0v
LyAgIEdURVNUX0hBU19TVERfV1NUUklORyAgICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNh
dGUgdGhhdAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OndzdHJpbmcgZG9l
cy9kb2Vzbid0IHdvcmsgKEdvb2dsZSBUZXN0IGNhbgotLy8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBiZSB1c2VkIHdoZXJlIHN0ZDo6d3N0cmluZyBpcyB1bmF2YWlsYWJsZSkuCi0vLyAg
IEdURVNUX0hBU19UUjFfVFVQTEUgICAgICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUg
dHIxOjp0dXBsZQotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFp
bGFibGUuCi0vLyAgIEdURVNUX0hBU19TRUggICAgICAgICAgICAtIERlZmluZSBpdCB0byAxLzAg
dG8gaW5kaWNhdGUgd2hldGhlciB0aGUKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29tcGlsZXIgc3VwcG9ydHMgTWljcm9zb2Z0J3MgIlN0cnVjdHVyZWQKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uIEhhbmRsaW5nIi4KLS8vICAgR1RFU1RfSEFTX1NU
UkVBTV9SRURJUkVDVElPTgotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBEZWZpbmUg
aXQgdG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCi0vLyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBsYXRmb3JtIHN1cHBvcnRzIEkvTyBzdHJlYW0gcmVkaXJlY3Rpb24gdXNpbmcK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwKCkgYW5kIGR1cDIoKS4KLS8vICAg
R1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB3
aGV0aGVyIEdvb2dsZQotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0J3Mgb3du
IHRyMSB0dXBsZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUKLS8vICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXNlZC4gIFVudXNlZCB3aGVuIHRoZSB1c2VyIHNldHMKLS8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1RFU1RfSEFTX1RSMV9UVVBMRSB0byAwLgotLy8gICBHVEVT
VF9MQU5HX0NYWDExICAgICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRoYXQg
R29vZ2xlIFRlc3QKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgYnVpbGRpbmcg
aW4gQysrMTEvQysrOTggbW9kZS4KLS8vICAgR1RFU1RfTElOS0VEX0FTX1NIQVJFRF9MSUJSQVJZ
Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIERlZmluZSB0byAxIHdoZW4gY29tcGls
aW5nIHRlc3RzIHRoYXQgdXNlCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdvb2ds
ZSBUZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtub3duIGFzCi0vLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERMTCBvbiBXaW5kb3dzKS4KLS8vICAgR1RFU1RfQ1JFQVRFX1NIQVJFRF9M
SUJSQVJZCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIERlZmluZSB0byAxIHdoZW4g
Y29tcGlsaW5nIEdvb2dsZSBUZXN0IGl0c2VsZgotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhcyBhIHNoYXJlZCBsaWJyYXJ5LgotCi0vLyBQbGF0Zm9ybS1pbmRpY2F0aW5nIG1hY3Jv
cwotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vCi0vLyBNYWNyb3MgaW5kaWNhdGlu
ZyB0aGUgcGxhdGZvcm0gb24gd2hpY2ggR29vZ2xlIFRlc3QgaXMgYmVpbmcgdXNlZAotLy8gKGEg
bWFjcm8gaXMgZGVmaW5lZCB0byAxIGlmIGNvbXBpbGVkIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybTsK
LS8vIG90aGVyd2lzZSBVTkRFRklORUQgLS0gaXQncyBuZXZlciBkZWZpbmVkIHRvIDAuKS4gIEdv
b2dsZSBUZXN0Ci0vLyBkZWZpbmVzIHRoZXNlIG1hY3JvcyBhdXRvbWF0aWNhbGx5LiAgQ29kZSBv
dXRzaWRlIEdvb2dsZSBUZXN0IE1VU1QKLS8vIE5PVCBkZWZpbmUgdGhlbS4KLS8vCi0vLyAgIEdU
RVNUX09TX0FJWCAgICAgIC0gSUJNIEFJWAotLy8gICBHVEVTVF9PU19DWUdXSU4gICAtIEN5Z3dp
bgotLy8gICBHVEVTVF9PU19GUkVFQlNEICAtIEZyZWVCU0QKLS8vICAgR1RFU1RfT1NfRlVDSFNJ
QSAgLSBGdWNoc2lhCi0vLyAgIEdURVNUX09TX0hQVVggICAgIC0gSFAtVVgKLS8vICAgR1RFU1Rf
T1NfTElOVVggICAgLSBMaW51eAotLy8gICAgIEdURVNUX09TX0xJTlVYX0FORFJPSUQgLSBHb29n
bGUgQW5kcm9pZAotLy8gICBHVEVTVF9PU19NQUMgICAgICAtIE1hYyBPUyBYCi0vLyAgICAgR1RF
U1RfT1NfSU9TICAgIC0gaU9TCi0vLyAgIEdURVNUX09TX05BQ0wgICAgIC0gR29vZ2xlIE5hdGl2
ZSBDbGllbnQgKE5hQ2wpCi0vLyAgIEdURVNUX09TX05FVEJTRCAgIC0gTmV0QlNECi0vLyAgIEdU
RVNUX09TX09QRU5CU0QgIC0gT3BlbkJTRAotLy8gICBHVEVTVF9PU19RTlggICAgICAtIFFOWAot
Ly8gICBHVEVTVF9PU19TT0xBUklTICAtIFN1biBTb2xhcmlzCi0vLyAgIEdURVNUX09TX1NZTUJJ
QU4gIC0gU3ltYmlhbgotLy8gICBHVEVTVF9PU19XSU5ET1dTICAtIFdpbmRvd3MgKERlc2t0b3As
IE1pbkdXLCBvciBNb2JpbGUpCi0vLyAgICAgR1RFU1RfT1NfV0lORE9XU19ERVNLVE9QICAtIFdp
bmRvd3MgRGVza3RvcAotLy8gICAgIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgICAgLSBNaW5HVwot
Ly8gICAgIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFICAgLSBXaW5kb3dzIE1vYmlsZQotLy8gICAg
IEdURVNUX09TX1dJTkRPV1NfUEhPTkUgICAgLSBXaW5kb3dzIFBob25lCi0vLyAgICAgR1RFU1Rf
T1NfV0lORE9XU19SVCAgICAgICAtIFdpbmRvd3MgU3RvcmUgQXBwL1dpblJUCi0vLyAgIEdURVNU
X09TX1pPUyAgICAgIC0gei9PUwotLy8KLS8vIEFtb25nIHRoZSBwbGF0Zm9ybXMsIEN5Z3dpbiwg
TGludXgsIE1heCBPUyBYLCBhbmQgV2luZG93cyBoYXZlIHRoZQotLy8gbW9zdCBzdGFibGUgc3Vw
cG9ydC4gIFNpbmNlIGNvcmUgbWVtYmVycyBvZiB0aGUgR29vZ2xlIFRlc3QgcHJvamVjdAotLy8g
ZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gb3RoZXIgcGxhdGZvcm1zLCBzdXBwb3J0IGZvciB0aGVtIG1h
eSBiZSBsZXNzCi0vLyBzdGFibGUuICBJZiB5b3Ugbm90aWNlIGFueSBwcm9ibGVtcyBvbiB5b3Vy
IHBsYXRmb3JtLCBwbGVhc2Ugbm90aWZ5Ci0vLyBnb29nbGV0ZXN0ZnJhbWV3b3JrQGdvb2dsZWdy
b3Vwcy5jb20gKHBhdGNoZXMgZm9yIGZpeGluZyB0aGVtIGFyZQotLy8gZXZlbiBtb3JlIHdlbGNv
bWUhKS4KLS8vCi0vLyBJdCBpcyBwb3NzaWJsZSB0aGF0IG5vbmUgb2YgdGhlIEdURVNUX09TXyog
bWFjcm9zIGFyZSBkZWZpbmVkLgotCi0vLyBGZWF0dXJlLWluZGljYXRpbmcgbWFjcm9zCi0vLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLwotLy8gTWFjcm9zIGluZGljYXRpbmcgd2hpY2gg
R29vZ2xlIFRlc3QgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSAoYSBtYWNybwotLy8gaXMgZGVmaW5l
ZCB0byAxIGlmIHRoZSBjb3JyZXNwb25kaW5nIGZlYXR1cmUgaXMgc3VwcG9ydGVkOwotLy8gb3Ro
ZXJ3aXNlIFVOREVGSU5FRCAtLSBpdCdzIG5ldmVyIGRlZmluZWQgdG8gMC4pLiAgR29vZ2xlIFRl
c3QKLS8vIGRlZmluZXMgdGhlc2UgbWFjcm9zIGF1dG9tYXRpY2FsbHkuICBDb2RlIG91dHNpZGUg
R29vZ2xlIFRlc3QgTVVTVAotLy8gTk9UIGRlZmluZSB0aGVtLgotLy8KLS8vIFRoZXNlIG1hY3Jv
cyBhcmUgcHVibGljIHNvIHRoYXQgcG9ydGFibGUgdGVzdHMgY2FuIGJlIHdyaXR0ZW4uCi0vLyBT
dWNoIHRlc3RzIHR5cGljYWxseSBzdXJyb3VuZCBjb2RlIHVzaW5nIGEgZmVhdHVyZSB3aXRoIGFu
ICNpZgotLy8gd2hpY2ggY29udHJvbHMgdGhhdCBjb2RlLiAgRm9yIGV4YW1wbGU6Ci0vLwotLy8g
I2lmIEdURVNUX0hBU19ERUFUSF9URVNUCi0vLyAgIEVYUEVDVF9ERUFUSChEb1NvbWV0aGluZ0Rl
YWRseSgpKTsKLS8vICNlbmRpZgotLy8KLS8vICAgR1RFU1RfSEFTX0NPTUJJTkUgICAgICAtIHRo
ZSBDb21iaW5lKCkgZnVuY3Rpb24gKGZvciB2YWx1ZS1wYXJhbWV0ZXJpemVkCi0vLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0cykKLS8vICAgR1RFU1RfSEFTX0RFQVRIX1RFU1QgICAt
IGRlYXRoIHRlc3RzCi0vLyAgIEdURVNUX0hBU19UWVBFRF9URVNUICAgLSB0eXBlZCB0ZXN0cwot
Ly8gICBHVEVTVF9IQVNfVFlQRURfVEVTVF9QIC0gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzCi0v
LyAgIEdURVNUX0lTX1RIUkVBRFNBRkUgICAgLSBHb29nbGUgVGVzdCBpcyB0aHJlYWQtc2FmZS4K
LS8vICAgR1RFU1RfVVNFU19QT1NJWF9SRSAgICAtIGVuaGFuY2VkIFBPU0lYIHJlZ2V4IGlzIHVz
ZWQuIERvIG5vdCBjb25mdXNlIHdpdGgKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdU
RVNUX0hBU19QT1NJWF9SRSAoc2VlIGFib3ZlKSB3aGljaCB1c2VycyBjYW4KLS8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlZmluZSB0aGVtc2VsdmVzLgotLy8gICBHVEVTVF9VU0VTX1NJ
TVBMRV9SRSAgIC0gb3VyIG93biBzaW1wbGUgcmVnZXggaXMgdXNlZDsKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoZSBhYm92ZSB0d28gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KLS8v
ICAgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTCAtIGFjY2VwdHMgdW50eXBlZCBOVUxMIGluIEVYUEVD
VF9FUSgpLgotCi0vLyBNaXNjIHB1YmxpYyBtYWNyb3MKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLQot
Ly8KLS8vICAgR1RFU1RfRkxBRyhmbGFnX25hbWUpICAtIHJlZmVyZW5jZXMgdGhlIHZhcmlhYmxl
IGNvcnJlc3BvbmRpbmcgdG8KLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZl
biBHb29nbGUgVGVzdCBmbGFnLgotCi0vLyBJbnRlcm5hbCB1dGlsaXRpZXMKLS8vIC0tLS0tLS0t
LS0tLS0tLS0tLQotLy8KLS8vIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGFuZCB1dGlsaXRpZXMgYXJl
IGZvciBHb29nbGUgVGVzdCdzIElOVEVSTkFMCi0vLyB1c2Ugb25seS4gIENvZGUgb3V0c2lkZSBH
b29nbGUgVGVzdCBNVVNUIE5PVCBVU0UgVEhFTSBESVJFQ1RMWS4KLS8vCi0vLyBNYWNyb3MgZm9y
IGJhc2ljIEMrKyBjb2Rpbmc6Ci0vLyAgIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NLRVJfIC0g
Zm9yIGRpc2FibGluZyBhIGdjYyB3YXJuaW5nLgotLy8gICBHVEVTVF9BVFRSSUJVVEVfVU5VU0VE
XyAgLSBkZWNsYXJlcyB0aGF0IGEgY2xhc3MnIGluc3RhbmNlcyBvciBhCi0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlIGRvbid0IGhhdmUgdG8gYmUgdXNlZC4KLS8vICAg
R1RFU1RfRElTQUxMT1dfQVNTSUdOXyAgIC0gZGlzYWJsZXMgb3BlcmF0b3I9LgotLy8gICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fIC0gZGlzYWJsZXMgY29weSBjdG9yIGFuZCBvcGVy
YXRvcj0uCi0vLyAgIEdURVNUX01VU1RfVVNFX1JFU1VMVF8gICAtIGRlY2xhcmVzIHRoYXQgYSBm
dW5jdGlvbidzIHJlc3VsdCBtdXN0IGJlIHVzZWQuCi0vLyAgIEdURVNUX0lOVEVOVElPTkFMX0NP
TlNUX0NPTkRfUFVTSF8gLSBzdGFydCBjb2RlIHNlY3Rpb24gd2hlcmUgTVNWQyBDNDEyNyBpcwot
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3NlZCAoY29u
c3RhbnQgY29uZGl0aW9uYWwpLgotLy8gICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BP
UF8gIC0gZmluaXNoIGNvZGUgc2VjdGlvbiB3aGVyZSBNU1ZDIEM0MTI3Ci0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBzdXBwcmVzc2VkLgotLy8KLS8vIEMrKzEx
IGZlYXR1cmUgd3JhcHBlcnM6Ci0vLwotLy8gICB0ZXN0aW5nOjppbnRlcm5hbDo6bW92ZSAgLSBw
b3J0YWJpbGl0eSB3cmFwcGVyIGZvciBzdGQ6Om1vdmUuCi0vLwotLy8gU3luY2hyb25pemF0aW9u
OgotLy8gICBNdXRleCwgTXV0ZXhMb2NrLCBUaHJlYWRMb2NhbCwgR2V0VGhyZWFkQ291bnQoKQot
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZl
cy4KLS8vCi0vLyBUZW1wbGF0ZSBtZXRhIHByb2dyYW1taW5nOgotLy8gICBpc19wb2ludGVyICAg
ICAtIGFzIGluIFRSMTsgbmVlZGVkIG9uIFN5bWJpYW4gYW5kIElCTSBYTCBDL0MrKyBvbmx5Lgot
Ly8gICBJdGVyYXRvclRyYWl0cyAtIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2Ygc3RkOjppdGVy
YXRvcl90cmFpdHMsIHdoaWNoCi0vLyAgICAgICAgICAgICAgICAgICAgaXMgbm90IGF2YWlsYWJs
ZSBpbiBsaWJDc3RkIHdoZW4gY29tcGlsZWQgd2l0aCBTdW4gQysrLgotLy8KLS8vIFNtYXJ0IHBv
aW50ZXJzOgotLy8gICBzY29wZWRfcHRyICAgICAtIGFzIGluIFRSMi4KLS8vCi0vLyBSZWd1bGFy
IGV4cHJlc3Npb25zOgotLy8gICBSRSAgICAgICAgICAgICAtIGEgc2ltcGxlIHJlZ3VsYXIgZXhw
cmVzc2lvbiBjbGFzcyB1c2luZyB0aGUgUE9TSVgKLS8vICAgICAgICAgICAgICAgICAgICBFeHRl
bmRlZCBSZWd1bGFyIEV4cHJlc3Npb24gc3ludGF4IG9uIFVOSVgtbGlrZQotLy8gICAgICAgICAg
ICAgICAgICAgIHBsYXRmb3Jtcywgb3IgYSByZWR1Y2VkIHJlZ3VsYXIgZXhjZXB0aW9uIHN5bnRh
eCBvbgotLy8gICAgICAgICAgICAgICAgICAgIG90aGVyIHBsYXRmb3JtcywgaW5jbHVkaW5nIFdp
bmRvd3MuCi0vLwotLy8gTG9nZ2luZzoKLS8vICAgR1RFU1RfTE9HXygpICAgLSBsb2dzIG1lc3Nh
Z2VzIGF0IHRoZSBzcGVjaWZpZWQgc2V2ZXJpdHkgbGV2ZWwuCi0vLyAgIExvZ1RvU3RkZXJyKCkg
IC0gZGlyZWN0cyBhbGwgbG9nIG1lc3NhZ2VzIHRvIHN0ZGVyci4KLS8vICAgRmx1c2hJbmZvTG9n
KCkgLSBmbHVzaGVzIGluZm9ybWF0aW9uYWwgbG9nIG1lc3NhZ2VzLgotLy8KLS8vIFN0ZG91dCBh
bmQgc3RkZXJyIGNhcHR1cmluZzoKLS8vICAgQ2FwdHVyZVN0ZG91dCgpICAgICAtIHN0YXJ0cyBj
YXB0dXJpbmcgc3Rkb3V0LgotLy8gICBHZXRDYXB0dXJlZFN0ZG91dCgpIC0gc3RvcHMgY2FwdHVy
aW5nIHN0ZG91dCBhbmQgcmV0dXJucyB0aGUgY2FwdHVyZWQKLS8vICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cmluZy4KLS8vICAgQ2FwdHVyZVN0ZGVycigpICAgICAtIHN0YXJ0cyBjYXB0dXJp
bmcgc3RkZXJyLgotLy8gICBHZXRDYXB0dXJlZFN0ZGVycigpIC0gc3RvcHMgY2FwdHVyaW5nIHN0
ZGVyciBhbmQgcmV0dXJucyB0aGUgY2FwdHVyZWQKLS8vICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cmluZy4KLS8vCi0vLyBJbnRlZ2VyIHR5cGVzOgotLy8gICBUeXBlV2l0aFNpemUgICAtIG1h
cHMgYW4gaW50ZWdlciB0byBhIGludCB0eXBlLgotLy8gICBJbnQzMiwgVUludDMyLCBJbnQ2NCwg
VUludDY0LCBUaW1lSW5NaWxsaXMKLS8vICAgICAgICAgICAgICAgICAgLSBpbnRlZ2VycyBvZiBr
bm93biBzaXplcy4KLS8vICAgQmlnZ2VzdEludCAgICAgLSB0aGUgYmlnZ2VzdCBzaWduZWQgaW50
ZWdlciB0eXBlLgotLy8KLS8vIENvbW1hbmQtbGluZSB1dGlsaXRpZXM6Ci0vLyAgIEdURVNUX0RF
Q0xBUkVfKigpICAtIGRlY2xhcmVzIGEgZmxhZy4KLS8vICAgR1RFU1RfREVGSU5FXyooKSAgIC0g
ZGVmaW5lcyBhIGZsYWcuCi0vLyAgIEdldEluamVjdGFibGVBcmd2cygpIC0gcmV0dXJucyB0aGUg
Y29tbWFuZCBsaW5lIGFzIGEgdmVjdG9yIG9mIHN0cmluZ3MuCi0vLwotLy8gRW52aXJvbm1lbnQg
dmFyaWFibGUgdXRpbGl0aWVzOgotLy8gICBHZXRFbnYoKSAgICAgICAgICAgICAtIGdldHMgdGhl
IHZhbHVlIG9mIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgotLy8gICBCb29sRnJvbUdUZXN0RW52
KCkgICAtIHBhcnNlcyBhIGJvb2wgZW52aXJvbm1lbnQgdmFyaWFibGUuCi0vLyAgIEludDMyRnJv
bUdUZXN0RW52KCkgIC0gcGFyc2VzIGFuIEludDMyIGVudmlyb25tZW50IHZhcmlhYmxlLgotLy8g
ICBTdHJpbmdGcm9tR1Rlc3RFbnYoKSAtIHBhcnNlcyBhIHN0cmluZyBlbnZpcm9ubWVudCB2YXJp
YWJsZS4KLQotI2luY2x1ZGUgPGN0eXBlLmg+ICAgLy8gZm9yIGlzc3BhY2UsIGV0YwotI2luY2x1
ZGUgPHN0ZGRlZi5oPiAgLy8gZm9yIHB0cmRpZmZfdAotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2lu
Y2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaWZuZGVmIF9XSU4zMl9XQ0UK
LSMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYg
IC8vICFfV0lOMzJfV0NFCi0KLSNpZiBkZWZpbmVkIF9fQVBQTEVfXwotIyBpbmNsdWRlIDxBdmFp
bGFiaWxpdHlNYWNyb3MuaD4KLSMgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+Ci0jZW5k
aWYKLQotI2luY2x1ZGUgPGFsZ29yaXRobT4gIC8vIE5PTElOVAotI2luY2x1ZGUgPGlvc3RyZWFt
PiAgLy8gTk9MSU5UCi0jaW5jbHVkZSA8c3N0cmVhbT4gIC8vIE5PTElOVAotI2luY2x1ZGUgPHN0
cmluZz4gIC8vIE5PTElOVAotI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8dmVjdG9yPiAg
Ly8gTk9MSU5UCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCIK
LSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oIgotCi0jaWYgIWRl
ZmluZWQoR1RFU1RfREVWX0VNQUlMXykKLSMgZGVmaW5lIEdURVNUX0RFVl9FTUFJTF8gImdvb2ds
ZXRlc3RmcmFtZXdvcmtAQGdvb2dsZWdyb3Vwcy5jb20iCi0jIGRlZmluZSBHVEVTVF9GTEFHX1BS
RUZJWF8gImd0ZXN0XyIKLSMgZGVmaW5lIEdURVNUX0ZMQUdfUFJFRklYX0RBU0hfICJndGVzdC0i
Ci0jIGRlZmluZSBHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIkdURVNUXyIKLSMgZGVmaW5lIEdU
RVNUX05BTUVfICJHb29nbGUgVGVzdCIKLSMgZGVmaW5lIEdURVNUX1BST0pFQ1RfVVJMXyAiaHR0
cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0LyIKLSNlbmRpZiAgLy8gIWRlZmluZWQo
R1RFU1RfREVWX0VNQUlMXykKLQotI2lmICFkZWZpbmVkKEdURVNUX0lOSVRfR09PR0xFX1RFU1Rf
TkFNRV8pCi0jIGRlZmluZSBHVEVTVF9JTklUX0dPT0dMRV9URVNUX05BTUVfICJ0ZXN0aW5nOjpJ
bml0R29vZ2xlVGVzdCIKLSNlbmRpZiAgLy8gIWRlZmluZWQoR1RFU1RfSU5JVF9HT09HTEVfVEVT
VF9OQU1FXykKLQotLy8gRGV0ZXJtaW5lcyB0aGUgdmVyc2lvbiBvZiBnY2MgdGhhdCBpcyB1c2Vk
IHRvIGNvbXBpbGUgdGhpcy4KLSNpZmRlZiBfX0dOVUNfXwotLy8gNDAzMDIgbWVhbnMgdmVyc2lv
biA0LjMuMi4KLSMgZGVmaW5lIEdURVNUX0dDQ19WRVJfIFwKLSAgICAoX19HTlVDX18qMTAwMDAg
KyBfX0dOVUNfTUlOT1JfXyoxMDAgKyBfX0dOVUNfUEFUQ0hMRVZFTF9fKQotI2VuZGlmICAvLyBf
X0dOVUNfXwotCi0vLyBNYWNyb3MgZm9yIGRpc2FibGluZyBNaWNyb3NvZnQgVmlzdWFsIEMrKyB3
YXJuaW5ncy4KLS8vCi0vLyAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQ4MDAg
NDM4NSkKLS8vICAgLyogY29kZSB0aGF0IHRyaWdnZXJzIHdhcm5pbmdzIEM0ODAwIGFuZCBDNDM4
NSAqLwotLy8gICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLSNpZiBfTVNDX1ZF
UiA+PSAxNTAwCi0jIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyh3YXJu
aW5ncykgXAotICAgIF9fcHJhZ21hKHdhcm5pbmcocHVzaCkpICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIF9fcHJhZ21hKHdhcm5pbmcoZGlzYWJsZTogd2FybmluZ3MpKQotIyBkZWZpbmUg
R1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAgICAgICAgIFwKLSAgICBfX3ByYWdt
YSh3YXJuaW5nKHBvcCkpCi0jZWxzZQotLy8gT2xkZXIgdmVyc2lvbnMgb2YgTVNWQyBkb24ndCBo
YXZlIF9fcHJhZ21hLgotIyBkZWZpbmUgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8o
d2FybmluZ3MpCi0jIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLSNl
bmRpZgotCi0jaWZuZGVmIEdURVNUX0xBTkdfQ1hYMTEKLS8vIGdjYyBhbmQgY2xhbmcgZGVmaW5l
IF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fIHdoZW4KLS8vIC1zdGQ9e2MsZ251fSsrezB4LDEx
fSBpcyBwYXNzZWQuICBUaGUgQysrMTEgc3RhbmRhcmQgc3BlY2lmaWVzIGEKLS8vIHZhbHVlIGZv
ciBfX2NwbHVzcGx1cywgYW5kIHJlY2VudCB2ZXJzaW9ucyBvZiBjbGFuZywgZ2NjLCBhbmQKLS8v
IHByb2JhYmx5IG90aGVyIGNvbXBpbGVycyBzZXQgdGhhdCB0b28gaW4gQysrMTEgbW9kZS4KLSMg
aWYgX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18gfHwgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCB8
fCBfTVNDX1ZFUiA+PSAxOTAwCi0vLyBDb21waWxpbmcgaW4gYXQgbGVhc3QgQysrMTEgbW9kZS4K
LSMgIGRlZmluZSBHVEVTVF9MQU5HX0NYWDExIDEKLSMgZWxzZQotIyAgZGVmaW5lIEdURVNUX0xB
TkdfQ1hYMTEgMAotIyBlbmRpZgotI2VuZGlmCi0KLS8vIERpc3RpbmN0IGZyb20gQysrMTEgbGFu
Z3VhZ2Ugc3VwcG9ydCwgc29tZSBlbnZpcm9ubWVudHMgZG9uJ3QgcHJvdmlkZQotLy8gcHJvcGVy
IEMrKzExIGxpYnJhcnkgc3VwcG9ydC4gTm90YWJseSwgaXQncyBwb3NzaWJsZSB0byBidWlsZCBp
bgotLy8gQysrMTEgbW9kZSB3aGVuIHRhcmdldGluZyBNYWMgT1MgWCAxMC42LCB3aGljaCBoYXMg
YW4gb2xkIGxpYnN0ZGMrKwotLy8gd2l0aCBubyBDKysxMSBzdXBwb3J0LgotLy8KLS8vIGxpYnN0
ZGMrKyBoYXMgc3VmZmljaWVudCBDKysxMSBzdXBwb3J0IGFzIG9mIEdDQyA0LjYuMCwgX19HTElC
Q1hYX18KLS8vIDIwMTEwMzI1LCBidXQgbWFpbnRlbmFuY2UgcmVsZWFzZXMgaW4gdGhlIDQuNCBh
bmQgNC41IHNlcmllcyBmb2xsb3dlZAotLy8gdGhpcyBkYXRlLCBzbyBjaGVjayBmb3IgdGhvc2Ug
dmVyc2lvbnMgYnkgdGhlaXIgZGF0ZSBzdGFtcHMuCi0vLyBodHRwczovL2djYy5nbnUub3JnL29u
bGluZWRvY3MvbGlic3RkYysrL21hbnVhbC9hYmkuaHRtbCNhYmkudmVyc2lvbmluZwotI2lmIEdU
RVNUX0xBTkdfQ1hYMTEgJiYgXAotICAgICghZGVmaW5lZChfX0dMSUJDWFhfXykgfHwgKCBcCi0g
ICAgICAgIF9fR0xJQkNYWF9fID49IDIwMTEwMzI1dWwgJiYgIC8qIEdDQyA+PSA0LjYuMCAqLyBc
Ci0gICAgICAgIC8qIEJsYWNrbGlzdCBvZiBwYXRjaCByZWxlYXNlcyBvZiBvbGRlciBicmFuY2hl
czogKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDExMDQxNnVsICYmICAvKiBHQ0MgNC40
LjYgKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDEyMDMxM3VsICYmICAvKiBHQ0MgNC40
LjcgKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDExMDQyOHVsICYmICAvKiBHQ0MgNC41
LjMgKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDEyMDcwMnVsKSkgICAvKiBHQ0MgNC41
LjQgKi8KLSMgZGVmaW5lIEdURVNUX1NURExJQl9DWFgxMSAxCi0jZW5kaWYKLQotLy8gT25seSB1
c2UgQysrMTEgbGlicmFyeSBmZWF0dXJlcyBpZiB0aGUgbGlicmFyeSBwcm92aWRlcyB0aGVtLgot
I2lmIEdURVNUX1NURExJQl9DWFgxMQotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9CRUdJTl9BTkRf
RU5EXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX0ZPUldBUkRfTElTVF8gMQotIyBpZiAhZGVm
aW5lZChfTVNDX1ZFUikgfHwgKF9NU0NfRlVMTF9WRVIgPj0gMTkwMDIzODI0KSAvLyB3b3JrcyBv
bmx5IHdpdGggVlMyMDE1VTIgYW5kIGJldHRlcgotIyAgIGRlZmluZSBHVEVTVF9IQVNfU1REX0ZV
TkNUSU9OXyAxCi0jIGVuZGlmCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX0lOSVRJQUxJWkVSX0xJ
U1RfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfTU9WRV8gMQotIyBkZWZpbmUgR1RFU1RfSEFT
X1NURF9TSEFSRURfUFRSXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX1RZUEVfVFJBSVRTXyAx
Ci0jIGRlZmluZSBHVEVTVF9IQVNfU1REX1VOSVFVRV9QVFJfIDEKLSMgZGVmaW5lIEdURVNUX0hB
U19VTk9SREVSRURfTUFQXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8gMQot
I2VuZGlmCi0KLS8vIEMrKzExIHNwZWNpZmllcyB0aGF0IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0
dXBsZS4KLS8vIFNvbWUgcGxhdGZvcm1zIHN0aWxsIG1pZ2h0IG5vdCBoYXZlIGl0LCBob3dldmVy
LgotI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfVFVQTEVfIDEK
LSMgaWYgZGVmaW5lZChfX2NsYW5nX18pCi0vLyBJbnNwaXJlZCBieSBodHRwOi8vY2xhbmcubGx2
bS5vcmcvZG9jcy9MYW5ndWFnZUV4dGVuc2lvbnMuaHRtbCNfX2hhc19pbmNsdWRlCi0jICBpZiBk
ZWZpbmVkKF9faGFzX2luY2x1ZGUpICYmICFfX2hhc19pbmNsdWRlKDx0dXBsZT4pCi0jICAgdW5k
ZWYgR1RFU1RfSEFTX1NURF9UVVBMRV8KLSMgIGVuZGlmCi0jIGVsaWYgZGVmaW5lZChfTVNDX1ZF
UikKLS8vIEluc3BpcmVkIGJ5IGJvb3N0L2NvbmZpZy9zdGRsaWIvZGlua3Vtd2FyZS5ocHAKLSMg
IGlmIGRlZmluZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSIDwgNTIwCi0jICAgdW5kZWYg
R1RFU1RfSEFTX1NURF9UVVBMRV8KLSMgIGVuZGlmCi0jIGVsaWYgZGVmaW5lZChfX0dMSUJDWFhf
XykKLS8vIEluc3BpcmVkIGJ5IGJvb3N0L2NvbmZpZy9zdGRsaWIvbGlic3RkY3BwMy5ocHAsCi0v
LyBodHRwOi8vZ2NjLmdudS5vcmcvZ2NjLTQuMi9jaGFuZ2VzLmh0bWwgYW5kCi0vLyBodHRwOi8v
Z2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvbWFudWFsL2JrMDFwdDAxY2gwMS5odG1s
I21hbnVhbC5pbnRyby5zdGF0dXMuc3RhbmRhcmQuMjAweAotIyAgaWYgX19HTlVDX18gPCA0IHx8
IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgMikKLSMgICB1bmRlZiBHVEVTVF9I
QVNfU1REX1RVUExFXwotIyAgZW5kaWYKLSMgZW5kaWYKLSNlbmRpZgotCi0vLyBCcmluZ3MgaW4g
ZGVmaW5pdGlvbnMgZm9yIGZ1bmN0aW9ucyB1c2VkIGluIHRoZSB0ZXN0aW5nOjppbnRlcm5hbDo6
cG9zaXgKLS8vIG5hbWVzcGFjZSAocmVhZCwgd3JpdGUsIGNsb3NlLCBjaGRpciwgaXNhdHR5LCBz
dGF0KS4gV2UgZG8gbm90IGN1cnJlbnRseQotLy8gdXNlIHRoZW0gb24gV2luZG93cyBNb2JpbGUu
Ci0jaWYgR1RFU1RfT1NfV0lORE9XUwotIyBpZiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLSMg
IGluY2x1ZGUgPGRpcmVjdC5oPgotIyAgaW5jbHVkZSA8aW8uaD4KLSMgZW5kaWYKLS8vIEluIG9y
ZGVyIHRvIGF2b2lkIGhhdmluZyB0byBpbmNsdWRlIDx3aW5kb3dzLmg+LCB1c2UgZm9yd2FyZCBk
ZWNsYXJhdGlvbgotI2lmIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgJiYgIWRlZmluZWQoX19NSU5H
VzY0X1ZFUlNJT05fTUFKT1IpCi0vLyBNaW5HVyBkZWZpbmVkIF9DUklUSUNBTF9TRUNUSU9OIGFu
ZCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gYXMgdHdvCi0vLyBzZXBhcmF0ZSAoZXF1aXZhbGVudCkg
c3RydWN0cywgaW5zdGVhZCBvZiB1c2luZyB0eXBlZGVmCi10eXBlZGVmIHN0cnVjdCBfQ1JJVElD
QUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwotI2Vsc2UKLS8vIEFzc3VtZSBDUklU
SUNBTF9TRUNUSU9OIGlzIGEgdHlwZWRlZiBvZiBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04uCi0vLyBU
aGlzIGFzc3VtcHRpb24gaXMgdmVyaWZpZWQgYnkKLS8vIFdpbmRvd3NUeXBlc1Rlc3QuQ1JJVElD
QUxfU0VDVElPTklzX1JUTF9DUklUSUNBTF9TRUNUSU9OLgotdHlwZWRlZiBzdHJ1Y3QgX1JUTF9D
UklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047Ci0jZW5kaWYKLSNlbHNlCi0v
LyBUaGlzIGFzc3VtZXMgdGhhdCBub24tV2luZG93cyBPU2VzIHByb3ZpZGUgdW5pc3RkLmguIEZv
ciBPU2VzIHdoZXJlIHRoaXMKLS8vIGlzIG5vdCB0aGUgY2FzZSwgd2UgbmVlZCB0byBpbmNsdWRl
IGhlYWRlcnMgdGhhdCBwcm92aWRlIHRoZSBmdW5jdGlvbnMKLS8vIG1lbnRpb25lZCBhYm92ZS4K
LSMgaW5jbHVkZSA8dW5pc3RkLmg+Ci0jIGluY2x1ZGUgPHN0cmluZ3MuaD4KLSNlbmRpZiAgLy8g
R1RFU1RfT1NfV0lORE9XUwotCi0jaWYgR1RFU1RfT1NfTElOVVhfQU5EUk9JRAotLy8gVXNlZCB0
byBkZWZpbmUgX19BTkRST0lEX0FQSV9fIG1hdGNoaW5nIHRoZSB0YXJnZXQgTkRLIEFQSSBsZXZl
bC4KLSMgIGluY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+ICAvLyBOT0xJTlQKLSNlbmRpZgot
Ci0vLyBEZWZpbmVzIHRoaXMgdG8gdHJ1ZSBpZmYgR29vZ2xlIFRlc3QgY2FuIHVzZSBQT1NJWCBy
ZWd1bGFyIGV4cHJlc3Npb25zLgotI2lmbmRlZiBHVEVTVF9IQVNfUE9TSVhfUkUKLSMgaWYgR1RF
U1RfT1NfTElOVVhfQU5EUk9JRAotLy8gT24gQW5kcm9pZCwgPHJlZ2V4Lmg+IGlzIG9ubHkgYXZh
aWxhYmxlIHN0YXJ0aW5nIHdpdGggR2luZ2VyYnJlYWQuCi0jICBkZWZpbmUgR1RFU1RfSEFTX1BP
U0lYX1JFIChfX0FORFJPSURfQVBJX18gPj0gOSkKLSMgZWxzZQotIyAgZGVmaW5lIEdURVNUX0hB
U19QT1NJWF9SRSAoIUdURVNUX09TX1dJTkRPV1MpCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIEdU
RVNUX1VTRVNfUENSRQotLy8gVGhlIGFwcHJvcHJpYXRlIGhlYWRlcnMgaGF2ZSBhbHJlYWR5IGJl
ZW4gaW5jbHVkZWQuCi0KLSNlbGlmIEdURVNUX0hBU19QT1NJWF9SRQotCi0vLyBPbiBzb21lIHBs
YXRmb3JtcywgPHJlZ2V4Lmg+IG5lZWRzIHNvbWVvbmUgdG8gZGVmaW5lIHNpemVfdCwgYW5kCi0v
LyB3b24ndCBjb21waWxlIG90aGVyd2lzZS4gIFdlIGNhbiAjaW5jbHVkZSBpdCBoZXJlIGFzIHdl
IGFscmVhZHkKLS8vIGluY2x1ZGVkIDxzdGRsaWIuaD4sIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8g
ZGVmaW5lIHNpemVfdCB0aHJvdWdoCi0vLyA8c3RkZGVmLmg+LgotIyBpbmNsdWRlIDxyZWdleC5o
PiAgLy8gTk9MSU5UCi0KLSMgZGVmaW5lIEdURVNUX1VTRVNfUE9TSVhfUkUgMQotCi0jZWxpZiBH
VEVTVF9PU19XSU5ET1dTCi0KLS8vIDxyZWdleC5oPiBpcyBub3QgYXZhaWxhYmxlIG9uIFdpbmRv
d3MuICBVc2Ugb3VyIG93biBzaW1wbGUgcmVnZXgKLS8vIGltcGxlbWVudGF0aW9uIGluc3RlYWQu
Ci0jIGRlZmluZSBHVEVTVF9VU0VTX1NJTVBMRV9SRSAxCi0KLSNlbHNlCi0KLS8vIDxyZWdleC5o
PiBtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3JtLiAgVXNlIG91ciBvd24KLS8v
IHNpbXBsZSByZWdleCBpbXBsZW1lbnRhdGlvbiBpbnN0ZWFkLgotIyBkZWZpbmUgR1RFU1RfVVNF
U19TSU1QTEVfUkUgMQotCi0jZW5kaWYgIC8vIEdURVNUX1VTRVNfUENSRQotCi0jaWZuZGVmIEdU
RVNUX0hBU19FWENFUFRJT05TCi0vLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3aGV0aGVyIGV4
Y2VwdGlvbnMgYXJlIGVuYWJsZWQsIHNvIHdlIG5lZWQKLS8vIHRvIGZpZ3VyZSBpdCBvdXQuCi0j
IGlmIGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKQotLy8gTVNWQydz
IGFuZCBDKytCdWlsZGVyJ3MgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBTVEwgdXNlIHRoZSBfSEFT
X0VYQ0VQVElPTlMKLS8vIG1hY3JvIHRvIGVuYWJsZSBleGNlcHRpb25zLCBzbyB3ZSdsbCBkbyB0
aGUgc2FtZS4KLS8vIEFzc3VtZXMgdGhhdCBleGNlcHRpb25zIGFyZSBlbmFibGVkIGJ5IGRlZmF1
bHQuCi0jICBpZm5kZWYgX0hBU19FWENFUFRJT05TCi0jICAgZGVmaW5lIF9IQVNfRVhDRVBUSU9O
UyAxCi0jICBlbmRpZiAgLy8gX0hBU19FWENFUFRJT05TCi0jICBkZWZpbmUgR1RFU1RfSEFTX0VY
Q0VQVElPTlMgX0hBU19FWENFUFRJT05TCi0jIGVsaWYgZGVmaW5lZChfX2NsYW5nX18pCi0vLyBj
bGFuZyBkZWZpbmVzIF9fRVhDRVBUSU9OUyBpZmYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZCBiZWZv
cmUgY2xhbmcgMjIwNzE0LAotLy8gYnV0IGlmZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRlciB0
aGF0LiBJbiBPYmotQysrIGZpbGVzLCB0aGVyZSBjYW4gYmUKLS8vIGNsZWFudXBzIGZvciBPYmpD
IGV4Y2VwdGlvbnMgd2hpY2ggYWxzbyBuZWVkIGNsZWFudXBzLCBldmVuIGlmIEMrKyBleGNlcHRp
b25zCi0vLyBhcmUgZGlzYWJsZWQuIGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRp
b25zKSB3aGljaCBjaGVja3MgZm9yIEMrKwotLy8gZXhjZXB0aW9ucyBzdGFydGluZyBhdCBjbGFu
ZyByMjA2MzUyLCBidXQgd2hpY2ggY2hlY2tlZCBmb3IgY2xlYW51cHMgcHJpb3IgdG8KLS8vIHRo
YXQuIFRvIHJlbGlhYmx5IGNoZWNrIGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3aXRo
IGNsYW5nLCBjaGVjayBmb3IKLS8vIF9fRVhDRVBUSU9OUyAmJiBfX2hhc19mZWF0dXJlKGN4eF9l
eGNlcHRpb25zKS4KLSMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAoX19FWENFUFRJT05T
ICYmIF9faGFzX2ZlYXR1cmUoY3h4X2V4Y2VwdGlvbnMpKQotIyBlbGlmIGRlZmluZWQoX19HTlVD
X18pICYmIF9fRVhDRVBUSU9OUwotLy8gZ2NjIGRlZmluZXMgX19FWENFUFRJT05TIHRvIDEgaWZm
IGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQuCi0jICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMg
MQotIyBlbGlmIGRlZmluZWQoX19TVU5QUk9fQ0MpCi0vLyBTdW4gUHJvIENDIHN1cHBvcnRzIGV4
Y2VwdGlvbnMuICBIb3dldmVyLCB0aGVyZSBpcyBubyBjb21waWxlLXRpbWUgd2F5IG9mCi0vLyBk
ZXRlY3Rpbmcgd2hldGhlciB0aGV5IGFyZSBlbmFibGVkIG9yIG5vdC4gIFRoZXJlZm9yZSwgd2Ug
YXNzdW1lIHRoYXQKLS8vIHRoZXkgYXJlIGVuYWJsZWQgdW5sZXNzIHRoZSB1c2VyIHRlbGxzIHVz
IG90aGVyd2lzZS4KLSMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCi0jIGVsaWYgZGVm
aW5lZChfX0lCTUNQUF9fKSAmJiBfX0VYQ0VQVElPTlMKLS8vIHhsQyBkZWZpbmVzIF9fRVhDRVBU
SU9OUyB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgotIyAgZGVmaW5lIEdURVNUX0hB
U19FWENFUFRJT05TIDEKLSMgZWxpZiBkZWZpbmVkKF9fSFBfYUNDKQotLy8gRXhjZXB0aW9uIGhh
bmRsaW5nIGlzIGluIGVmZmVjdCBieSBkZWZhdWx0IGluIEhQIGFDQyBjb21waWxlci4gSXQgaGFz
IHRvCi0vLyBiZSB0dXJuZWQgb2YgYnkgK25vZWggY29tcGlsZXIgb3B0aW9uIGlmIGRlc2lyZWQu
Ci0jICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgMQotIyBlbHNlCi0vLyBGb3Igb3RoZXIg
Y29tcGlsZXJzLCB3ZSBhc3N1bWUgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQgdG8gYmUKLS8vIGNv
bnNlcnZhdGl2ZS4KLSMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAwCi0jIGVuZGlmICAv
LyBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykKLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX0VYQ0VQVElPTlMKLQotI2lmICFkZWZpbmVkKEdURVNUX0hBU19TVERfU1RSSU5H
KQotLy8gRXZlbiB0aG91Z2ggd2UgZG9uJ3QgdXNlIHRoaXMgbWFjcm8gYW55IGxvbmdlciwgd2Ug
a2VlcCBpdCBpbiBjYXNlCi0vLyBzb21lIGNsaWVudHMgc3RpbGwgZGVwZW5kIG9uIGl0LgotIyBk
ZWZpbmUgR1RFU1RfSEFTX1NURF9TVFJJTkcgMQotI2VsaWYgIUdURVNUX0hBU19TVERfU1RSSU5H
Ci0vLyBUaGUgdXNlciB0b2xkIHVzIHRoYXQgOjpzdGQ6OnN0cmluZyBpc24ndCBhdmFpbGFibGUu
Ci0jIGVycm9yICJHb29nbGUgVGVzdCBjYW5ub3QgYmUgdXNlZCB3aGVyZSA6OnN0ZDo6c3RyaW5n
IGlzbid0IGF2YWlsYWJsZS4iCi0jZW5kaWYgIC8vICFkZWZpbmVkKEdURVNUX0hBU19TVERfU1RS
SU5HKQotCi0jaWZuZGVmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyBUaGUgdXNlciBkaWRu
J3QgdGVsbCB1cyB3aGV0aGVyIDo6c3RyaW5nIGlzIGF2YWlsYWJsZSwgc28gd2UgbmVlZAotLy8g
dG8gZmlndXJlIGl0IG91dC4KLQotIyBkZWZpbmUgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcgMAot
Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KLSNpZm5kZWYgR1RFU1RfSEFT
X1NURF9XU1RSSU5HCi0vLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3aGV0aGVyIDo6c3RkOjp3
c3RyaW5nIGlzIGF2YWlsYWJsZSwgc28gd2UgbmVlZAotLy8gdG8gZmlndXJlIGl0IG91dC4KLS8v
IFRPRE8od2FuQGdvb2dsZS5jb20pOiB1c2VzIGF1dG9jb25mIHRvIGRldGVjdCB3aGV0aGVyIDo6
c3RkOjp3c3RyaW5nCi0vLyAgIGlzIGF2YWlsYWJsZS4KLQotLy8gQ3lnd2luIDEuNyBhbmQgYmVs
b3cgZG9lc24ndCBzdXBwb3J0IDo6c3RkOjp3c3RyaW5nLgotLy8gU29sYXJpcycgbGliYysrIGRv
ZXNuJ3Qgc3VwcG9ydCBpdCBlaXRoZXIuICBBbmRyb2lkIGhhcwotLy8gbm8gc3VwcG9ydCBmb3Ig
aXQgYXQgbGVhc3QgYXMgcmVjZW50IGFzIEZyb3lvICgyLjIpLgotIyBkZWZpbmUgR1RFU1RfSEFT
X1NURF9XU1RSSU5HIFwKLSAgICAoIShHVEVTVF9PU19MSU5VWF9BTkRST0lEIHx8IEdURVNUX09T
X0NZR1dJTiB8fCBHVEVTVF9PU19TT0xBUklTKSkKLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1RE
X1dTVFJJTkcKLQotI2lmbmRlZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIFRoZSB1c2Vy
IGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgOjp3c3RyaW5nIGlzIGF2YWlsYWJsZSwgc28gd2UgbmVl
ZAotLy8gdG8gZmlndXJlIGl0IG91dC4KLSMgZGVmaW5lIEdURVNUX0hBU19HTE9CQUxfV1NUUklO
RyBcCi0gICAgKEdURVNUX0hBU19TVERfV1NUUklORyAmJiBHVEVTVF9IQVNfR0xPQkFMX1NUUklO
RykKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0KLS8vIERldGVybWluZXMg
d2hldGhlciBSVFRJIGlzIGF2YWlsYWJsZS4KLSNpZm5kZWYgR1RFU1RfSEFTX1JUVEkKLS8vIFRo
ZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgUlRUSSBpcyBlbmFibGVkLCBzbyB3ZSBuZWVk
IHRvCi0vLyBmaWd1cmUgaXQgb3V0LgotCi0jIGlmZGVmIF9NU0NfVkVSCi0KLSMgIGlmZGVmIF9D
UFBSVFRJICAvLyBNU1ZDIGRlZmluZXMgdGhpcyBtYWNybyBpZmYgUlRUSSBpcyBlbmFibGVkLgot
IyAgIGRlZmluZSBHVEVTVF9IQVNfUlRUSSAxCi0jICBlbHNlCi0jICAgZGVmaW5lIEdURVNUX0hB
U19SVFRJIDAKLSMgIGVuZGlmCi0KLS8vIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiA0LjMuMiwgZ2Nj
IGRlZmluZXMgX19HWFhfUlRUSSBpZmYgUlRUSSBpcyBlbmFibGVkLgotIyBlbGlmIGRlZmluZWQo
X19HTlVDX18pICYmIChHVEVTVF9HQ0NfVkVSXyA+PSA0MDMwMikKLQotIyAgaWZkZWYgX19HWFhf
UlRUSQotLy8gV2hlbiBidWlsZGluZyBhZ2FpbnN0IFNUTHBvcnQgd2l0aCB0aGUgQW5kcm9pZCBO
REsgYW5kIHdpdGgKLS8vIC1mcnR0aSAtZm5vLWV4Y2VwdGlvbnMsIHRoZSBidWlsZCBmYWlscyBh
dCBsaW5rIHRpbWUgd2l0aCB1bmRlZmluZWQKLS8vIHJlZmVyZW5jZXMgdG8gX19jeGFfYmFkX3R5
cGVpZC4gTm90ZSBzdXJlIGlmIFNUTCBvciB0b29sY2hhaW4gYnVnLAotLy8gc28gZGlzYWJsZSBS
VFRJIHdoZW4gZGV0ZWN0ZWQuCi0jICAgaWYgR1RFU1RfT1NfTElOVVhfQU5EUk9JRCAmJiBkZWZp
bmVkKF9TVExQT1JUX01BSk9SKSAmJiBcCi0gICAgICAgIWRlZmluZWQoX19FWENFUFRJT05TKQot
IyAgICBkZWZpbmUgR1RFU1RfSEFTX1JUVEkgMAotIyAgIGVsc2UKLSMgICAgZGVmaW5lIEdURVNU
X0hBU19SVFRJIDEKLSMgICBlbmRpZiAgLy8gR1RFU1RfT1NfTElOVVhfQU5EUk9JRCAmJiBfX1NU
TFBPUlRfTUFKT1IgJiYgIV9fRVhDRVBUSU9OUwotIyAgZWxzZQotIyAgIGRlZmluZSBHVEVTVF9I
QVNfUlRUSSAwCi0jICBlbmRpZiAgLy8gX19HWFhfUlRUSQotCi0vLyBDbGFuZyBkZWZpbmVzIF9f
R1hYX1JUVEkgc3RhcnRpbmcgd2l0aCB2ZXJzaW9uIDMuMCwgYnV0IGl0cyBtYW51YWwgcmVjb21t
ZW5kcwotLy8gdXNpbmcgaGFzX2ZlYXR1cmUgaW5zdGVhZC4gaGFzX2ZlYXR1cmUoY3h4X3J0dGkp
IGlzIHN1cHBvcnRlZCBzaW5jZSAyLjcsIHRoZQotLy8gZmlyc3QgdmVyc2lvbiB3aXRoIEMrKyBz
dXBwb3J0LgotIyBlbGlmIGRlZmluZWQoX19jbGFuZ19fKQotCi0jICBkZWZpbmUgR1RFU1RfSEFT
X1JUVEkgX19oYXNfZmVhdHVyZShjeHhfcnR0aSkKLQotLy8gU3RhcnRpbmcgd2l0aCB2ZXJzaW9u
IDkuMCBJQk0gVmlzdWFsIEFnZSBkZWZpbmVzIF9fUlRUSV9BTExfXyB0byAxIGlmCi0vLyBib3Ro
IHRoZSB0eXBlaWQgYW5kIGR5bmFtaWNfY2FzdCBmZWF0dXJlcyBhcmUgcHJlc2VudC4KLSMgZWxp
ZiBkZWZpbmVkKF9fSUJNQ1BQX18pICYmIChfX0lCTUNQUF9fID49IDkwMCkKLQotIyAgaWZkZWYg
X19SVFRJX0FMTF9fCi0jICAgZGVmaW5lIEdURVNUX0hBU19SVFRJIDEKLSMgIGVsc2UKLSMgICBk
ZWZpbmUgR1RFU1RfSEFTX1JUVEkgMAotIyAgZW5kaWYKLQotIyBlbHNlCi0KLS8vIEZvciBhbGwg
b3RoZXIgY29tcGlsZXJzLCB3ZSBhc3N1bWUgUlRUSSBpcyBlbmFibGVkLgotIyAgZGVmaW5lIEdU
RVNUX0hBU19SVFRJIDEKLQotIyBlbmRpZiAgLy8gX01TQ19WRVIKLQotI2VuZGlmICAvLyBHVEVT
VF9IQVNfUlRUSQotCi0vLyBJdCdzIHRoaXMgaGVhZGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gI2lu
Y2x1ZGUgPHR5cGVpbmZvPiB3aGVuIFJUVEkKLS8vIGlzIGVuYWJsZWQuCi0jaWYgR1RFU1RfSEFT
X1JUVEkKLSMgaW5jbHVkZSA8dHlwZWluZm8+Ci0jZW5kaWYKLQotLy8gRGV0ZXJtaW5lcyB3aGV0
aGVyIEdvb2dsZSBUZXN0IGNhbiB1c2UgdGhlIHB0aHJlYWRzIGxpYnJhcnkuCi0jaWZuZGVmIEdU
RVNUX0hBU19QVEhSRUFECi0vLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyBleHBsaWNpdGx5LCBz
byB3ZSBtYWtlIHJlYXNvbmFibGUgYXNzdW1wdGlvbnMgYWJvdXQKLS8vIHdoaWNoIHBsYXRmb3Jt
cyBoYXZlIHB0aHJlYWRzIHN1cHBvcnQuCi0vLwotLy8gVG8gZGlzYWJsZSB0aHJlYWRpbmcgc3Vw
cG9ydCBpbiBHb29nbGUgVGVzdCwgYWRkIC1ER1RFU1RfSEFTX1BUSFJFQUQ9MAotLy8gdG8geW91
ciBjb21waWxlciBmbGFncy4KLSNkZWZpbmUgR1RFU1RfSEFTX1BUSFJFQUQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIChHVEVTVF9PU19M
SU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfSFBVWCB8fCBHVEVTVF9PU19RTlggfHwg
ICAgICAgICAgXAotICAgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19OQUNMIHx8IEdURVNU
X09TX05FVEJTRCB8fCBHVEVTVF9PU19GVUNIU0lBKQotI2VuZGlmICAvLyBHVEVTVF9IQVNfUFRI
UkVBRAotCi0jaWYgR1RFU1RfSEFTX1BUSFJFQUQKLS8vIGd0ZXN0LXBvcnQuaCBndWFyYW50ZWVz
IHRvICNpbmNsdWRlIDxwdGhyZWFkLmg+IHdoZW4gR1RFU1RfSEFTX1BUSFJFQUQgaXMKLS8vIHRy
dWUuCi0jIGluY2x1ZGUgPHB0aHJlYWQuaD4gIC8vIE5PTElOVAotCi0vLyBGb3IgdGltZXNwZWMg
YW5kIG5hbm9zbGVlcCwgdXNlZCBiZWxvdy4KLSMgaW5jbHVkZSA8dGltZS5oPiAgLy8gTk9MSU5U
Ci0jZW5kaWYKLQotLy8gRGV0ZXJtaW5lcyBpZiBoYXNoX21hcC9oYXNoX3NldCBhcmUgYXZhaWxh
YmxlLgotLy8gT25seSB1c2VkIGZvciB0ZXN0aW5nIGFnYWluc3QgdGhvc2UgY29udGFpbmVycy4K
LSNpZiAhZGVmaW5lZChHVEVTVF9IQVNfSEFTSF9NQVBfKQotIyBpZiBkZWZpbmVkKF9NU0NfVkVS
KSAmJiAoX01TQ19WRVIgPCAxOTAwKQotIyAgZGVmaW5lIEdURVNUX0hBU19IQVNIX01BUF8gMSAg
Ly8gSW5kaWNhdGVzIHRoYXQgaGFzaF9tYXAgaXMgYXZhaWxhYmxlLgotIyAgZGVmaW5lIEdURVNU
X0hBU19IQVNIX1NFVF8gMSAgLy8gSW5kaWNhdGVzIHRoYXQgaGFzaF9zZXQgaXMgYXZhaWxhYmxl
LgotIyBlbmRpZiAgLy8gX01TQ19WRVIKLSNlbmRpZiAgLy8gIWRlZmluZWQoR1RFU1RfSEFTX0hB
U0hfTUFQXykKLQotLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIEdvb2dsZSBUZXN0IGNhbiB1c2UgdHIx
L3R1cGxlLiAgWW91IGNhbiBkZWZpbmUKLS8vIHRoaXMgbWFjcm8gdG8gMCB0byBwcmV2ZW50IEdv
b2dsZSBUZXN0IGZyb20gdXNpbmcgdHVwbGUgKGFueQotLy8gZmVhdHVyZSBkZXBlbmRpbmcgb24g
dHVwbGUgd2l0aCBiZSBkaXNhYmxlZCBpbiB0aGlzIG1vZGUpLgotI2lmbmRlZiBHVEVTVF9IQVNf
VFIxX1RVUExFCi0jIGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQgJiYgZGVmaW5lZChfU1RMUE9S
VF9NQUpPUikKLS8vIFNUTHBvcnQsIHByb3ZpZGVkIHdpdGggdGhlIEFuZHJvaWQgTkRLLCBoYXMg
bmVpdGhlciA8dHIxL3R1cGxlPiBvciA8dHVwbGU+LgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFf
VFVQTEUgMAotIyBlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxOTEwKQot
Ly8gUHJldmVudCBgd2FybmluZyBDNDk5NjogJ3N0ZDo6dHIxJzogd2FybmluZyBTVEw0MDAyOiBU
aGUgbm9uLVN0YW5kYXJkIHN0ZDo6dHIxIG5hbWVzcGFjZSBhbmQgVFIxLW9ubHkgbWFjaGluZXJ5
IGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFJFTU9WRUQuYAotIyAgZGVmaW5lIEdURVNUX0hB
U19UUjFfVFVQTEUgMAotIyBlbHNlCi0vLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyBub3QgdG8g
ZG8gaXQsIHNvIHdlIGFzc3VtZSBpdCdzIE9LLgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQ
TEUgMQotIyBlbmRpZgotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLS8vIERldGVy
bWluZXMgd2hldGhlciBHb29nbGUgVGVzdCdzIG93biB0cjEgdHVwbGUgaW1wbGVtZW50YXRpb24K
LS8vIHNob3VsZCBiZSB1c2VkLgotI2lmbmRlZiBHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotLy8g
VGhlIHVzZXIgZGlkbid0IHRlbGwgdXMsIHNvIHdlIG5lZWQgdG8gZmlndXJlIGl0IG91dC4KLQot
Ly8gV2UgdXNlIG91ciBvd24gVFIxIHR1cGxlIGlmIHdlIGFyZW4ndCBzdXJlIHRoZSB1c2VyIGhh
cyBhbgotLy8gaW1wbGVtZW50YXRpb24gb2YgaXQgYWxyZWFkeS4gIEF0IHRoaXMgdGltZSwgbGli
c3RkYysrIDQuMC4wKyBhbmQKLS8vIE1TVkMgMjAxMCBhcmUgdGhlIG9ubHkgbWFpbnN0cmVhbSBz
dGFuZGFyZCBsaWJyYXJpZXMgdGhhdCBjb21lCi0vLyB3aXRoIGEgVFIxIHR1cGxlIGltcGxlbWVu
dGF0aW9uLiAgTlZJRElBJ3MgQ1VEQSBOVkNDIGNvbXBpbGVyCi0vLyBwcmV0ZW5kcyB0byBiZSBH
Q0MgYnkgZGVmaW5pbmcgX19HTlVDX18gYW5kIGZyaWVuZHMsIGJ1dCBjYW5ub3QKLS8vIGNvbXBp
bGUgR0NDJ3MgdHVwbGUgaW1wbGVtZW50YXRpb24uICBNU1ZDIDIwMDggKDkuMCkgcHJvdmlkZXMg
VFIxCi0vLyB0dXBsZSBpbiBhIDMyMyBNQiBGZWF0dXJlIFBhY2sgZG93bmxvYWQsIHdoaWNoIHdl
IGNhbm5vdCBhc3N1bWUgdGhlCi0vLyB1c2VyIGhhcy4gIFFOWCdzIFFDQyBjb21waWxlciBpcyBh
IG1vZGlmaWVkIEdDQyBidXQgaXQgZG9lc24ndAotLy8gc3VwcG9ydCBUUjEgdHVwbGUuICBsaWJj
Kysgb25seSBwcm92aWRlcyBzdGQ6OnR1cGxlLCBpbiBDKysxMSBtb2RlLAotLy8gYW5kIGl0IGNh
biBiZSB1c2VkIHdpdGggc29tZSBjb21waWxlcnMgdGhhdCBkZWZpbmUgX19HTlVDX18uCi0jIGlm
IChkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX0NVREFDQ19fKSAmJiAoR1RFU1RfR0ND
X1ZFUl8gPj0gNDAwMDApIFwKLSAgICAgICYmICFHVEVTVF9PU19RTlggJiYgIWRlZmluZWQoX0xJ
QkNQUF9WRVJTSU9OKSkgXAotICAgICAgfHwgKF9NU0NfVkVSID49IDE2MDAgJiYgX01TQ19WRVIg
PCAxOTAwKQotIyAgZGVmaW5lIEdURVNUX0VOVl9IQVNfVFIxX1RVUExFXyAxCi0jIGVuZGlmCi0K
LS8vIEMrKzExIHNwZWNpZmllcyB0aGF0IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4gVXNl
IHRoYXQgaWYgZ3Rlc3QgaXMgdXNlZAotLy8gaW4gQysrMTEgbW9kZSBhbmQgbGlic3RkYysrIGlz
bid0IHZlcnkgb2xkIChiaW5hcmllcyB0YXJnZXRpbmcgT1MgWCAxMC42Ci0vLyBjYW4gYnVpbGQg
d2l0aCBjbGFuZyBidXQgbmVlZCB0byB1c2UgZ2NjNC4yJ3MgbGlic3RkYysrKS4KLSMgaWYgR1RF
U1RfTEFOR19DWFgxMSAmJiAoIWRlZmluZWQoX19HTElCQ1hYX18pIHx8IF9fR0xJQkNYWF9fID4g
MjAxMTAzMjUpCi0jICBkZWZpbmUgR1RFU1RfRU5WX0hBU19TVERfVFVQTEVfIDEKLSMgZW5kaWYK
LQotIyBpZiBHVEVTVF9FTlZfSEFTX1RSMV9UVVBMRV8gfHwgR1RFU1RfRU5WX0hBU19TVERfVFVQ
TEVfCi0jICBkZWZpbmUgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgMAotIyBlbHNlCi0jICBkZWZp
bmUgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgMQotIyBlbmRpZgotCi0jZW5kaWYgIC8vIEdURVNU
X1VTRV9PV05fVFIxX1RVUExFCi0KLS8vIFRvIGF2b2lkIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9u
IGV2ZXJ5d2hlcmUsIHdlIG1ha2UgaXQKLS8vIGd0ZXN0LXBvcnQuaCdzIHJlc3BvbnNpYmlsaXR5
IHRvICNpbmNsdWRlIHRoZSBoZWFkZXIgaW1wbGVtZW50aW5nCi0vLyB0dXBsZS4KLSNpZiBHVEVT
VF9IQVNfU1REX1RVUExFXwotIyBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBv
cnQKLSMgZGVmaW5lIEdURVNUX1RVUExFX05BTUVTUEFDRV8gOjpzdGQKLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX1NURF9UVVBMRV8KLQotLy8gV2UgaW5jbHVkZSB0cjE6OnR1cGxlIGV2ZW4gaWYgc3Rk
Ojp0dXBsZSBpcyBhdmFpbGFibGUgdG8gZGVmaW5lIHByaW50ZXJzIGZvcgotLy8gdGhlbS4KLSNp
ZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0jIGlmbmRlZiBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfCi0j
ICBkZWZpbmUgR1RFU1RfVFVQTEVfTkFNRVNQQUNFXyA6OnN0ZDo6dHIxCi0jIGVuZGlmICAvLyBH
VEVTVF9UVVBMRV9OQU1FU1BBQ0VfCi0KLSMgaWYgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUKLSMg
IGluY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiICAvLyBJV1lVIHByYWdtYTog
ZXhwb3J0ICAvLyBOT0xJTlQKLSMgZWxpZiBHVEVTVF9FTlZfSEFTX1NURF9UVVBMRV8KLSMgIGlu
Y2x1ZGUgPHR1cGxlPgotLy8gQysrMTEgcHV0cyBpdHMgdHVwbGUgaW50byB0aGUgOjpzdGQgbmFt
ZXNwYWNlIHJhdGhlciB0aGFuCi0vLyA6OnN0ZDo6dHIxLiAgZ3Rlc3QgZXhwZWN0cyB0dXBsZSB0
byBsaXZlIGluIDo6c3RkOjp0cjEsIHNvIHB1dCBpdCB0aGVyZS4KLS8vIFRoaXMgY2F1c2VzIHVu
ZGVmaW5lZCBiZWhhdmlvciwgYnV0IHN1cHBvcnRlZCBjb21waWxlcnMgcmVhY3QgaW4KLS8vIHRo
ZSB3YXkgd2UgaW50ZW5kLgotbmFtZXNwYWNlIHN0ZCB7Ci1uYW1lc3BhY2UgdHIxIHsKLXVzaW5n
IDo6c3RkOjpnZXQ7Ci11c2luZyA6OnN0ZDo6bWFrZV90dXBsZTsKLXVzaW5nIDo6c3RkOjp0dXBs
ZTsKLXVzaW5nIDo6c3RkOjp0dXBsZV9lbGVtZW50OwotdXNpbmcgOjpzdGQ6OnR1cGxlX3NpemU7
Ci19Ci19Ci0KLSMgZWxpZiBHVEVTVF9PU19TWU1CSUFOCi0KLS8vIE9uIFN5bWJpYW4sIEJPT1NU
X0hBU19UUjFfVFVQTEUgY2F1c2VzIEJvb3N0J3MgVFIxIHR1cGxlIGxpYnJhcnkgdG8KLS8vIHVz
ZSBTVExwb3J0J3MgdHVwbGUgaW1wbGVtZW50YXRpb24sIHdoaWNoIHVuZm9ydHVuYXRlbHkgZG9l
c24ndAotLy8gd29yayBhcyB0aGUgY29weSBvZiBTVExwb3J0IGRpc3RyaWJ1dGVkIHdpdGggU3lt
YmlhbiBpcyBpbmNvbXBsZXRlLgotLy8gQnkgbWFraW5nIHN1cmUgQk9PU1RfSEFTX1RSMV9UVVBM
RSBpcyB1bmRlZmluZWQsIHdlIGZvcmNlIEJvb3N0IHRvCi0vLyB1c2UgaXRzIG93biB0dXBsZSBp
bXBsZW1lbnRhdGlvbi4KLSMgIGlmZGVmIEJPT1NUX0hBU19UUjFfVFVQTEUKLSMgICB1bmRlZiBC
T09TVF9IQVNfVFIxX1RVUExFCi0jICBlbmRpZiAgLy8gQk9PU1RfSEFTX1RSMV9UVVBMRQotCi0v
LyBUaGlzIHByZXZlbnRzIDxib29zdC90cjEvZGV0YWlsL2NvbmZpZy5ocHA+LCB3aGljaCBkZWZp
bmVzCi0vLyBCT09TVF9IQVNfVFIxX1RVUExFLCBmcm9tIGJlaW5nICNpbmNsdWRlZCBieSBCb29z
dCdzIDx0dXBsZT4uCi0jICBkZWZpbmUgQk9PU1RfVFIxX0RFVEFJTF9DT05GSUdfSFBQX0lOQ0xV
REVECi0jICBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQgIC8vIE5PTElO
VAotCi0jIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKEdURVNUX0dDQ19WRVJfID49IDQwMDAw
KQotLy8gR0NDIDQuMCsgaW1wbGVtZW50cyB0cjEvdHVwbGUgaW4gdGhlIDx0cjEvdHVwbGU+IGhl
YWRlci4gIFRoaXMgZG9lcwotLy8gbm90IGNvbmZvcm0gdG8gdGhlIFRSMSBzcGVjLCB3aGljaCBy
ZXF1aXJlcyB0aGUgaGVhZGVyIHRvIGJlIDx0dXBsZT4uCi0KLSMgIGlmICFHVEVTVF9IQVNfUlRU
SSAmJiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0vLyBVbnRpbCB2ZXJzaW9uIDQuMy4yLCBnY2Mg
aGFzIGEgYnVnIHRoYXQgY2F1c2VzIDx0cjEvZnVuY3Rpb25hbD4sCi0vLyB3aGljaCBpcyAjaW5j
bHVkZWQgYnkgPHRyMS90dXBsZT4sIHRvIG5vdCBjb21waWxlIHdoZW4gUlRUSSBpcwotLy8gZGlz
YWJsZWQuICBfVFIxX0ZVTkNUSU9OQUwgaXMgdGhlIGhlYWRlciBndWFyZCBmb3IKLS8vIDx0cjEv
ZnVuY3Rpb25hbD4uICBIZW5jZSB0aGUgZm9sbG93aW5nICNkZWZpbmUgaXMgYSBoYWNrIHRvIHBy
ZXZlbnQKLS8vIDx0cjEvZnVuY3Rpb25hbD4gZnJvbSBiZWluZyBpbmNsdWRlZC4KLSMgICBkZWZp
bmUgX1RSMV9GVU5DVElPTkFMIDEKLSMgICBpbmNsdWRlIDx0cjEvdHVwbGU+Ci0jICAgdW5kZWYg
X1RSMV9GVU5DVElPTkFMICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gI2luY2x1ZGUKLSAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIDx0cjEvZnVuY3Rpb25hbD4gaWYgdGhleSBjaG9vc2UgdG8uCi0j
ICBlbHNlCi0jICAgaW5jbHVkZSA8dHIxL3R1cGxlPiAgLy8gTk9MSU5UCi0jICBlbmRpZiAgLy8g
IUdURVNUX0hBU19SVFRJICYmIEdURVNUX0dDQ19WRVJfIDwgNDAzMDIKLQotIyBlbHNlCi0vLyBJ
ZiB0aGUgY29tcGlsZXIgaXMgbm90IEdDQyA0LjArLCB3ZSBhc3N1bWUgdGhlIHVzZXIgaXMgdXNp
bmcgYQotLy8gc3BlYy1jb25mb3JtaW5nIFRSMSBpbXBsZW1lbnRhdGlvbi4KLSMgIGluY2x1ZGUg
PHR1cGxlPiAgLy8gSVdZVSBwcmFnbWE6IGV4cG9ydCAgLy8gTk9MSU5UCi0jIGVuZGlmICAvLyBH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUK
LQotLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGNsb25lKDIpIGlzIHN1cHBvcnRlZC4KLS8vIFVzdWFs
bHkgaXQgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBvbiBMaW51eCwgZXhjbHVkaW5nCi0vLyBMaW51
eCBvbiB0aGUgSXRhbml1bSBhcmNoaXRlY3R1cmUuCi0vLyBBbHNvIHNlZSBodHRwOi8vbGludXgu
ZGllLm5ldC9tYW4vMi9jbG9uZS4KLSNpZm5kZWYgR1RFU1RfSEFTX0NMT05FCi0vLyBUaGUgdXNl
ciBkaWRuJ3QgdGVsbCB1cywgc28gd2UgbmVlZCB0byBmaWd1cmUgaXQgb3V0LgotCi0jIGlmIEdU
RVNUX09TX0xJTlVYICYmICFkZWZpbmVkKF9faWE2NF9fKQotIyAgaWYgR1RFU1RfT1NfTElOVVhf
QU5EUk9JRAotLy8gT24gQW5kcm9pZCwgY2xvbmUoKSBiZWNhbWUgYXZhaWxhYmxlIGF0IGRpZmZl
cmVudCBBUEkgbGV2ZWxzIGZvciBlYWNoIDMyLWJpdAotLy8gYXJjaGl0ZWN0dXJlLgotIyAgICBp
ZiBkZWZpbmVkKF9fTFA2NF9fKSB8fCBcCi0gICAgICAgIChkZWZpbmVkKF9fYXJtX18pICYmIF9f
QU5EUk9JRF9BUElfXyA+PSA5KSB8fCBcCi0gICAgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBf
X0FORFJPSURfQVBJX18gPj0gMTIpIHx8IFwKLSAgICAgICAgKGRlZmluZWQoX19pMzg2X18pICYm
IF9fQU5EUk9JRF9BUElfXyA+PSAxNykKLSMgICAgIGRlZmluZSBHVEVTVF9IQVNfQ0xPTkUgMQot
IyAgICBlbHNlCi0jICAgICBkZWZpbmUgR1RFU1RfSEFTX0NMT05FIDAKLSMgICAgZW5kaWYKLSMg
IGVsc2UKLSMgICBkZWZpbmUgR1RFU1RfSEFTX0NMT05FIDEKLSMgIGVuZGlmCi0jIGVsc2UKLSMg
IGRlZmluZSBHVEVTVF9IQVNfQ0xPTkUgMAotIyBlbmRpZiAgLy8gR1RFU1RfT1NfTElOVVggJiYg
IWRlZmluZWQoX19pYTY0X18pCi0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0NMT05FCi0KLS8vIERl
dGVybWluZXMgd2hldGhlciB0byBzdXBwb3J0IHN0cmVhbSByZWRpcmVjdGlvbi4gVGhpcyBpcyB1
c2VkIHRvIHRlc3QKLS8vIG91dHB1dCBjb3JyZWN0bmVzcyBhbmQgdG8gaW1wbGVtZW50IGRlYXRo
IHRlc3RzLgotI2lmbmRlZiBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OCi0vLyBCeSBkZWZh
dWx0LCB3ZSBhc3N1bWUgdGhhdCBzdHJlYW0gcmVkaXJlY3Rpb24gaXMgc3VwcG9ydGVkIG9uIGFs
bAotLy8gcGxhdGZvcm1zIGV4Y2VwdCBrbm93biBtb2JpbGUgb25lcy4KLSMgaWYgR1RFU1RfT1Nf
V0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfU1lNQklBTiB8fCBcCi0gICAgR1RFU1RfT1NfV0lO
RE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCi0jICBkZWZpbmUgR1RFU1RfSEFTX1NU
UkVBTV9SRURJUkVDVElPTiAwCi0jIGVsc2UKLSMgIGRlZmluZSBHVEVTVF9IQVNfU1RSRUFNX1JF
RElSRUNUSU9OIDEKLSMgZW5kaWYgIC8vICFHVEVTVF9PU19XSU5ET1dTX01PQklMRSAmJiAhR1RF
U1RfT1NfU1lNQklBTgotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OCi0K
LS8vIERldGVybWluZXMgd2hldGhlciB0byBzdXBwb3J0IGRlYXRoIHRlc3RzLgotLy8gR29vZ2xl
IFRlc3QgZG9lcyBub3Qgc3VwcG9ydCBkZWF0aCB0ZXN0cyBmb3IgVkMgNy4xIGFuZCBlYXJsaWVy
IGFzCi0vLyBhYm9ydCgpIGluIGEgVkMgNy4xIGFwcGxpY2F0aW9uIGNvbXBpbGVkIGFzIEdVSSBp
biBkZWJ1ZyBjb25maWcKLS8vIHBvcHMgdXAgYSBkaWFsb2cgd2luZG93IHRoYXQgY2Fubm90IGJl
IHN1cHByZXNzZWQgcHJvZ3JhbW1hdGljYWxseS4KLSNpZiAoR1RFU1RfT1NfTElOVVggfHwgR1RF
U1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NPTEFSSVMgfHwgXAotICAgICAoR1RFU1RfT1NfTUFD
ICYmICFHVEVTVF9PU19JT1MpIHx8IFwKLSAgICAgKEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAm
JiBfTVNDX1ZFUiA+PSAxNDAwKSB8fCBcCi0gICAgIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgfHwg
R1RFU1RfT1NfQUlYIHx8IEdURVNUX09TX0hQVVggfHwgXAotICAgICBHVEVTVF9PU19PUEVOQlNE
IHx8IEdURVNUX09TX1FOWCB8fCBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX05FVEJTRCkK
LSMgZGVmaW5lIEdURVNUX0hBU19ERUFUSF9URVNUIDEKLSNlbmRpZgotCi0vLyBEZXRlcm1pbmVz
IHdoZXRoZXIgdG8gc3VwcG9ydCB0eXBlLWRyaXZlbiB0ZXN0cy4KLQotLy8gVHlwZWQgdGVzdHMg
bmVlZCA8dHlwZWluZm8+IGFuZCB2YXJpYWRpYyBtYWNyb3MsIHdoaWNoIEdDQywgVkMrKyA4LjAs
Ci0vLyBTdW4gUHJvIENDLCBJQk0gVmlzdWFsIEFnZSwgYW5kIEhQIGFDQyBzdXBwb3J0LgotI2lm
IGRlZmluZWQoX19HTlVDX18pIHx8IChfTVNDX1ZFUiA+PSAxNDAwKSB8fCBkZWZpbmVkKF9fU1VO
UFJPX0NDKSB8fCBcCi0gICAgZGVmaW5lZChfX0lCTUNQUF9fKSB8fCBkZWZpbmVkKF9fSFBfYUND
KQotIyBkZWZpbmUgR1RFU1RfSEFTX1RZUEVEX1RFU1QgMQotIyBkZWZpbmUgR1RFU1RfSEFTX1RZ
UEVEX1RFU1RfUCAxCi0jZW5kaWYKLQotLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHN1cHBvcnQg
Q29tYmluZSgpLgotLy8gVGhlIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgd29yayBvbiBTdW4gU3R1
ZGlvIHNpbmNlIGl0IGRvZXNuJ3QKLS8vIHVuZGVyc3RhbmQgdGVtcGxhdGVkIGNvbnZlcnNpb24g
b3BlcmF0b3JzLgotI2lmIChHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19TVERfVFVQ
TEVfKSAmJiAhZGVmaW5lZChfX1NVTlBST19DQykKLSMgZGVmaW5lIEdURVNUX0hBU19DT01CSU5F
IDEKLSNlbmRpZgotCi0vLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHN5c3RlbSBjb21waWxlciB1
c2VzIFVURi0xNiBmb3IgZW5jb2Rpbmcgd2lkZSBzdHJpbmdzLgotI2RlZmluZSBHVEVTVF9XSURF
X1NUUklOR19VU0VTX1VURjE2XyBcCi0gICAgKEdURVNUX09TX1dJTkRPV1MgfHwgR1RFU1RfT1Nf
Q1lHV0lOIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfQUlYKQotCi0vLyBEZXRlcm1p
bmVzIHdoZXRoZXIgdGVzdCByZXN1bHRzIGNhbiBiZSBzdHJlYW1lZCB0byBhIHNvY2tldC4KLSNp
ZiBHVEVTVF9PU19MSU5VWAotIyBkZWZpbmUgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXyAxCi0j
ZW5kaWYKLQotLy8gRGVmaW5lcyBzb21lIHV0aWxpdHkgbWFjcm9zLgotCi0vLyBUaGUgR05VIGNv
bXBpbGVyIGVtaXRzIGEgd2FybmluZyBpZiBuZXN0ZWQgImlmIiBzdGF0ZW1lbnRzIGFyZSBmb2xs
b3dlZCBieQotLy8gYW4gImVsc2UiIHN0YXRlbWVudCBhbmQgYnJhY2VzIGFyZSBub3QgdXNlZCB0
byBleHBsaWNpdGx5IGRpc2FtYmlndWF0ZSB0aGUKLS8vICJlbHNlIiBiaW5kaW5nLiAgVGhpcyBs
ZWFkcyB0byBwcm9ibGVtcyB3aXRoIGNvZGUgbGlrZToKLS8vCi0vLyAgIGlmIChnYXRlKQotLy8g
ICAgIEFTU0VSVF8qKGNvbmRpdGlvbikgPDwgIlNvbWUgbWVzc2FnZSI7Ci0vLwotLy8gVGhlICJz
d2l0Y2ggKDApIGNhc2UgMDoiIGlkaW9tIGlzIHVzZWQgdG8gc3VwcHJlc3MgdGhpcy4KLSNpZmRl
ZiBfX0lOVEVMX0NPTVBJTEVSCi0jIGRlZmluZSBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VS
XwotI2Vsc2UKLSMgZGVmaW5lIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NLRVJfIHN3aXRjaCAo
MCkgY2FzZSAwOiBkZWZhdWx0OiAgLy8gTk9MSU5UCi0jZW5kaWYKLQotLy8gVXNlIHRoaXMgYW5u
b3RhdGlvbiBhdCB0aGUgZW5kIG9mIGEgc3RydWN0L2NsYXNzIGRlZmluaXRpb24gdG8KLS8vIHBy
ZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gb3B0aW1pemluZyBhd2F5IGluc3RhbmNlcyB0aGF0IGFy
ZSBuZXZlcgotLy8gdXNlZC4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gYWxsIGludGVyZXN0aW5nIGxv
Z2ljIGhhcHBlbnMgaW5zaWRlIHRoZQotLy8gYyd0b3IgYW5kIC8gb3IgZCd0b3IuICBFeGFtcGxl
OgotLy8KLS8vICAgc3RydWN0IEZvbyB7Ci0vLyAgICAgRm9vKCkgeyAuLi4gfQotLy8gICB9IEdU
RVNUX0FUVFJJQlVURV9VTlVTRURfOwotLy8KLS8vIEFsc28gdXNlIGl0IGFmdGVyIGEgdmFyaWFi
bGUgb3IgcGFyYW1ldGVyIGRlY2xhcmF0aW9uIHRvIHRlbGwgdGhlCi0vLyBjb21waWxlciB0aGUg
dmFyaWFibGUvcGFyYW1ldGVyIGRvZXMgbm90IGhhdmUgdG8gYmUgdXNlZC4KLSNpZiBkZWZpbmVk
KF9fR05VQ19fKSAmJiAhZGVmaW5lZChDT01QSUxFUl9JQ0MpCi0jIGRlZmluZSBHVEVTVF9BVFRS
SUJVVEVfVU5VU0VEXyBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkKLSNlbGlmIGRlZmluZWQoX19j
bGFuZ19fKQotIyBpZiBfX2hhc19hdHRyaWJ1dGUodW51c2VkKQotIyAgZGVmaW5lIEdURVNUX0FU
VFJJQlVURV9VTlVTRURfIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKQotIyBlbmRpZgotI2VuZGlm
Ci0jaWZuZGVmIEdURVNUX0FUVFJJQlVURV9VTlVTRURfCi0jIGRlZmluZSBHVEVTVF9BVFRSSUJV
VEVfVU5VU0VEXwotI2VuZGlmCi0KLS8vIFVzZSB0aGlzIGFubm90YXRpb24gYmVmb3JlIGEgZnVu
Y3Rpb24gdGhhdCB0YWtlcyBhIHByaW50ZiBmb3JtYXQgc3RyaW5nLgotI2lmIChkZWZpbmVkKF9f
R05VQ19fKSB8fCBkZWZpbmVkKF9fY2xhbmdfXykpICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykK
LSMgaWYgZGVmaW5lZChfX01JTkdXX1BSSU5URl9GT1JNQVQpCi0vLyBNaW5HVyBoYXMgdHdvIGRp
ZmZlcmVudCBwcmludGYgaW1wbGVtZW50YXRpb25zLiBFbnN1cmUgdGhlIGZvcm1hdCBtYWNybwot
Ly8gbWF0Y2hlcyB0aGUgc2VsZWN0ZWQgaW1wbGVtZW50YXRpb24uIFNlZQotLy8gaHR0cHM6Ly9z
b3VyY2Vmb3JnZS5uZXQvcC9taW5ndy13NjQvd2lraTIvZ251JTIwcHJpbnRmLy4KLSMgIGRlZmlu
ZSBHVEVTVF9BVFRSSUJVVEVfUFJJTlRGXyhzdHJpbmdfaW5kZXgsIGZpcnN0X3RvX2NoZWNrKSBc
Ci0gICAgICAgX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhfX01JTkdXX1BSSU5URl9GT1JNQVQs
IHN0cmluZ19pbmRleCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Rf
dG9fY2hlY2spKSkKLSMgZWxzZQotIyAgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9QUklOVEZfKHN0
cmluZ19pbmRleCwgZmlyc3RfdG9fY2hlY2spIFwKLSAgICAgICBfX2F0dHJpYnV0ZV9fKChfX2Zv
cm1hdF9fKF9fcHJpbnRmX18sIHN0cmluZ19pbmRleCwgZmlyc3RfdG9fY2hlY2spKSkKLSMgZW5k
aWYKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9BVFRSSUJVVEVfUFJJTlRGXyhzdHJpbmdfaW5kZXgs
IGZpcnN0X3RvX2NoZWNrKQotI2VuZGlmCi0KLS8vIEEgbWFjcm8gdG8gZGlzYWxsb3cgb3BlcmF0
b3I9Ci0vLyBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMg
Zm9yIGEgY2xhc3MuCi0jZGVmaW5lIEdURVNUX0RJU0FMTE9XX0FTU0lHTl8odHlwZSlcCi0gIHZv
aWQgb3BlcmF0b3I9KHR5cGUgY29uc3QgJikKLQotLy8gQSBtYWNybyB0byBkaXNhbGxvdyBjb3B5
IGNvbnN0cnVjdG9yIGFuZCBvcGVyYXRvcj0KLS8vIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gdGhl
IHByaXZhdGU6IGRlY2xhcmF0aW9ucyBmb3IgYSBjbGFzcy4KLSNkZWZpbmUgR1RFU1RfRElTQUxM
T1dfQ09QWV9BTkRfQVNTSUdOXyh0eXBlKVwKLSAgdHlwZSh0eXBlIGNvbnN0ICYpO1wKLSAgR1RF
U1RfRElTQUxMT1dfQVNTSUdOXyh0eXBlKQotCi0vLyBUZWxsIHRoZSBjb21waWxlciB0byB3YXJu
IGFib3V0IHVudXNlZCByZXR1cm4gdmFsdWVzIGZvciBmdW5jdGlvbnMgZGVjbGFyZWQKLS8vIHdp
dGggdGhpcyBtYWNyby4gIFRoZSBtYWNybyBzaG91bGQgYmUgdXNlZCBvbiBmdW5jdGlvbiBkZWNs
YXJhdGlvbnMKLS8vIGZvbGxvd2luZyB0aGUgYXJndW1lbnQgbGlzdDoKLS8vCi0vLyAgIFNwcm9j
a2V0KiBBbGxvY2F0ZVNwcm9ja2V0KCkgR1RFU1RfTVVTVF9VU0VfUkVTVUxUXzsKLSNpZiBkZWZp
bmVkKF9fR05VQ19fKSAmJiAoR1RFU1RfR0NDX1ZFUl8gPj0gMzA0MDApICYmICFkZWZpbmVkKENP
TVBJTEVSX0lDQykKLSMgZGVmaW5lIEdURVNUX01VU1RfVVNFX1JFU1VMVF8gX19hdHRyaWJ1dGVf
XyAoKHdhcm5fdW51c2VkX3Jlc3VsdCkpCi0jZWxzZQotIyBkZWZpbmUgR1RFU1RfTVVTVF9VU0Vf
UkVTVUxUXwotI2VuZGlmICAvLyBfX0dOVUNfXyAmJiAoR1RFU1RfR0NDX1ZFUl8gPj0gMzA0MDAp
ICYmICFDT01QSUxFUl9JQ0MKLQotLy8gTVMgQysrIGNvbXBpbGVyIGVtaXRzIHdhcm5pbmcgd2hl
biBhIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gaXMgY29tcGlsZSB0aW1lCi0vLyBjb25zdGFudC4g
SW4gc29tZSBjb250ZXh0cyB0aGlzIHdhcm5pbmcgaXMgZmFsc2UgcG9zaXRpdmUgYW5kIG5lZWRz
IHRvIGJlCi0vLyBzdXBwcmVzc2VkLiBVc2UgdGhlIGZvbGxvd2luZyB0d28gbWFjcm9zIGluIHN1
Y2ggY2FzZXM6Ci0vLwotLy8gR1RFU1RfSU5URU5USU9OQUxfQ09OU1RfQ09ORF9QVVNIXygpCi0v
LyB3aGlsZSAodHJ1ZSkgewotLy8gR1RFU1RfSU5URU5USU9OQUxfQ09OU1RfQ09ORF9QT1BfKCkK
LS8vIH0KLSMgZGVmaW5lIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKSBcCi0g
ICAgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDEyNykKLSMgZGVmaW5lIEdURVNU
X0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUE9QXygpIFwKLSAgICBHVEVTVF9ESVNBQkxFX01TQ19X
QVJOSU5HU19QT1BfKCkKLQotLy8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBv
cnRzIE1pY3Jvc29mdCdzIFN0cnVjdHVyZWQgRXhjZXB0aW9uCi0vLyBIYW5kbGluZy4gIFRoaXMg
aXMgc3VwcG9ydGVkIGJ5IHNldmVyYWwgV2luZG93cyBjb21waWxlcnMgYnV0IGdlbmVyYWxseQot
Ly8gZG9lcyBub3QgZXhpc3Qgb24gYW55IG90aGVyIHN5c3RlbS4KLSNpZm5kZWYgR1RFU1RfSEFT
X1NFSAotLy8gVGhlIHVzZXIgZGlkbid0IHRlbGwgdXMsIHNvIHdlIG5lZWQgdG8gZmlndXJlIGl0
IG91dC4KLQotIyBpZiBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykK
LS8vIFRoZXNlIHR3byBjb21waWxlcnMgYXJlIGtub3duIHRvIHN1cHBvcnQgU0VILgotIyAgZGVm
aW5lIEdURVNUX0hBU19TRUggMQotIyBlbHNlCi0vLyBBc3N1bWUgbm8gU0VILgotIyAgZGVmaW5l
IEdURVNUX0hBU19TRUggMAotIyBlbmRpZgotCi0jZGVmaW5lIEdURVNUX0lTX1RIUkVBRFNBRkUg
XAotICAgIChHVEVTVF9IQVNfTVVURVhfQU5EX1RIUkVBRF9MT0NBTF8gXAotICAgICB8fCAoR1RF
U1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19QSE9ORSAmJiAhR1RFU1RfT1NfV0lO
RE9XU19SVCkgXAotICAgICB8fCBHVEVTVF9IQVNfUFRIUkVBRCkKLQotI2VuZGlmICAvLyBHVEVT
VF9IQVNfU0VICi0KLS8vIEdURVNUX0FQSV8gcXVhbGlmaWVzIGFsbCBzeW1ib2xzIHRoYXQgbXVz
dCBiZSBleHBvcnRlZC4gVGhlIGRlZmluaXRpb25zIGJlbG93Ci0vLyBhcmUgZ3VhcmRlZCBieSAj
aWZuZGVmIHRvIGdpdmUgZW1iZWRkZXJzIGEgY2hhbmNlIHRvIGRlZmluZSBHVEVTVF9BUElfIGlu
Ci0vLyBndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCi0jaWZuZGVmIEdURVNUX0FQ
SV8KLQotI2lmZGVmIF9NU0NfVkVSCi0jIGlmIEdURVNUX0xJTktFRF9BU19TSEFSRURfTElCUkFS
WQotIyAgZGVmaW5lIEdURVNUX0FQSV8gX19kZWNsc3BlYyhkbGxpbXBvcnQpCi0jIGVsaWYgR1RF
U1RfQ1JFQVRFX1NIQVJFRF9MSUJSQVJZCi0jICBkZWZpbmUgR1RFU1RfQVBJXyBfX2RlY2xzcGVj
KGRsbGV4cG9ydCkKLSMgZW5kaWYKLSNlbGlmIF9fR05VQ19fID49IDQgfHwgZGVmaW5lZChfX2Ns
YW5nX18pCi0jIGRlZmluZSBHVEVTVF9BUElfIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkgKCJk
ZWZhdWx0IikpKQotI2VuZGlmIC8vIF9NU0NfVkVSCi0KLSNlbmRpZiAvLyBHVEVTVF9BUElfCi0K
LSNpZm5kZWYgR1RFU1RfQVBJXwotIyBkZWZpbmUgR1RFU1RfQVBJXwotI2VuZGlmIC8vIEdURVNU
X0FQSV8KLQotI2lmZGVmIF9fR05VQ19fCi0vLyBBc2sgdGhlIGNvbXBpbGVyIHRvIG5ldmVyIGlu
bGluZSBhIGdpdmVuIGZ1bmN0aW9uLgotIyBkZWZpbmUgR1RFU1RfTk9fSU5MSU5FXyBfX2F0dHJp
YnV0ZV9fKChub2lubGluZSkpCi0jZWxzZQotIyBkZWZpbmUgR1RFU1RfTk9fSU5MSU5FXwotI2Vu
ZGlmCi0KLS8vIF9MSUJDUFBfVkVSU0lPTiBpcyBkZWZpbmVkIGJ5IHRoZSBsaWJjKysgbGlicmFy
eSBmcm9tIHRoZSBMTFZNIHByb2plY3QuCi0jaWYgZGVmaW5lZChfX0dMSUJDWFhfXykgfHwgZGVm
aW5lZChfTElCQ1BQX1ZFUlNJT04pCi0jIGRlZmluZSBHVEVTVF9IQVNfQ1hYQUJJX0hfIDEKLSNl
bHNlCi0jIGRlZmluZSBHVEVTVF9IQVNfQ1hYQUJJX0hfIDAKLSNlbmRpZgotCi0vLyBBIGZ1bmN0
aW9uIGxldmVsIGF0dHJpYnV0ZSB0byBkaXNhYmxlIGNoZWNraW5nIGZvciB1c2Ugb2YgdW5pbml0
aWFsaXplZAotLy8gbWVtb3J5IHdoZW4gYnVpbHQgd2l0aCBNZW1vcnlTYW5pdGl6ZXIuCi0jaWYg
ZGVmaW5lZChfX2NsYW5nX18pCi0jIGlmIF9faGFzX2ZlYXR1cmUobWVtb3J5X3Nhbml0aXplcikK
LSMgIGRlZmluZSBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfTUVNT1JZXyBcCi0gICAgICAg
X19hdHRyaWJ1dGVfXygobm9fc2FuaXRpemVfbWVtb3J5KSkKLSMgZWxzZQotIyAgZGVmaW5lIEdU
RVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1PUllfCi0jIGVuZGlmICAvLyBfX2hhc19mZWF0
dXJlKG1lbW9yeV9zYW5pdGl6ZXIpCi0jZWxzZQotIyBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX05P
X1NBTklUSVpFX01FTU9SWV8KLSNlbmRpZiAgLy8gX19jbGFuZ19fCi0KLS8vIEEgZnVuY3Rpb24g
bGV2ZWwgYXR0cmlidXRlIHRvIGRpc2FibGUgQWRkcmVzc1Nhbml0aXplciBpbnN0cnVtZW50YXRp
b24uCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jIGlmIF9faGFzX2ZlYXR1cmUoYWRkcmVzc19z
YW5pdGl6ZXIpCi0jICBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX0FERFJFU1Nf
IFwKLSAgICAgICBfX2F0dHJpYnV0ZV9fKChub19zYW5pdGl6ZV9hZGRyZXNzKSkKLSMgZWxzZQot
IyAgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXwotIyBlbmRpZiAg
Ly8gX19oYXNfZmVhdHVyZShhZGRyZXNzX3Nhbml0aXplcikKLSNlbHNlCi0jIGRlZmluZSBHVEVT
VF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KLSNlbmRpZiAgLy8gX19jbGFuZ19fCi0K
LS8vIEEgZnVuY3Rpb24gbGV2ZWwgYXR0cmlidXRlIHRvIGRpc2FibGUgVGhyZWFkU2FuaXRpemVy
IGluc3RydW1lbnRhdGlvbi4KLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSMgaWYgX19oYXNfZmVh
dHVyZSh0aHJlYWRfc2FuaXRpemVyKQotIyAgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9OT19TQU5J
VElaRV9USFJFQURfIFwKLSAgICAgICBfX2F0dHJpYnV0ZV9fKChub19zYW5pdGl6ZV90aHJlYWQp
KQotIyBlbHNlCi0jICBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX1RIUkVBRF8K
LSMgZW5kaWYgIC8vIF9faGFzX2ZlYXR1cmUodGhyZWFkX3Nhbml0aXplcikKLSNlbHNlCi0jIGRl
ZmluZSBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFEXwotI2VuZGlmICAvLyBfX2Ns
YW5nX18KLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi1jbGFzcyBNZXNzYWdlOwotCi0jaWYgZGVm
aW5lZChHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfKQotLy8gSW1wb3J0IHR1cGxlIGFuZCBmcmllbmRz
IGludG8gdGhlIDo6dGVzdGluZyBuYW1lc3BhY2UuCi0vLyBJdCBpcyBwYXJ0IG9mIG91ciBpbnRl
cmZhY2UsIGhhdmluZyB0aGVtIGluIDo6dGVzdGluZyBhbGxvd3MgdXMgdG8gY2hhbmdlCi0vLyB0
aGVpciB0eXBlcyBhcyBuZWVkZWQuCi11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjpnZXQ7
Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjptYWtlX3R1cGxlOwotdXNpbmcgR1RFU1Rf
VFVQTEVfTkFNRVNQQUNFXzo6dHVwbGU7Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjp0
dXBsZV9zaXplOwotdXNpbmcgR1RFU1RfVFVQTEVfTkFNRVNQQUNFXzo6dHVwbGVfZWxlbWVudDsK
LSNlbmRpZiAgLy8gZGVmaW5lZChHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfKQotCi1uYW1lc3BhY2Ug
aW50ZXJuYWwgewotCi0vLyBBIHNlY3JldCB0eXBlIHRoYXQgR29vZ2xlIFRlc3QgdXNlcnMgZG9u
J3Qga25vdyBhYm91dC4gIEl0IGhhcyBubwotLy8gZGVmaW5pdGlvbiBvbiBwdXJwb3NlLiAgVGhl
cmVmb3JlIGl0J3MgaW1wb3NzaWJsZSB0byBjcmVhdGUgYQotLy8gU2VjcmV0IG9iamVjdCwgd2hp
Y2ggaXMgd2hhdCB3ZSB3YW50LgotY2xhc3MgU2VjcmV0OwotCi0vLyBUaGUgR1RFU1RfQ09NUElM
RV9BU1NFUlRfIG1hY3JvIGNhbiBiZSB1c2VkIHRvIHZlcmlmeSB0aGF0IGEgY29tcGlsZSB0aW1l
Ci0vLyBleHByZXNzaW9uIGlzIHRydWUuIEZvciBleGFtcGxlLCB5b3UgY291bGQgdXNlIGl0IHRv
IHZlcmlmeSB0aGUKLS8vIHNpemUgb2YgYSBzdGF0aWMgYXJyYXk6Ci0vLwotLy8gICBHVEVTVF9D
T01QSUxFX0FTU0VSVF8oR1RFU1RfQVJSQVlfU0laRV8obmFtZXMpID09IE5VTV9OQU1FUywKLS8v
ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX2luY29ycmVjdF9zaXplKTsKLS8vCi0vLyBv
ciB0byBtYWtlIHN1cmUgYSBzdHJ1Y3QgaXMgc21hbGxlciB0aGFuIGEgY2VydGFpbiBzaXplOgot
Ly8KLS8vICAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKHNpemVvZihmb28pIDwgMTI4LCBmb29fdG9v
X2xhcmdlKTsKLS8vCi0vLyBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBtYWNybyBpcyB0aGUg
bmFtZSBvZiB0aGUgdmFyaWFibGUuIElmCi0vLyB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZSwgbW9z
dCBjb21waWxlcnMgd2lsbCBpc3N1ZSBhIHdhcm5pbmcvZXJyb3IKLS8vIGNvbnRhaW5pbmcgdGhl
IG5hbWUgb2YgdGhlIHZhcmlhYmxlLgotCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotIyBkZWZpbmUg
R1RFU1RfQ09NUElMRV9BU1NFUlRfKGV4cHIsIG1zZykgc3RhdGljX2Fzc2VydChleHByLCAjbXNn
KQotI2Vsc2UgIC8vICFHVEVTVF9MQU5HX0NYWDExCi10ZW1wbGF0ZSA8Ym9vbD4KLSAgc3RydWN0
IENvbXBpbGVBc3NlcnQgewotfTsKLQotIyBkZWZpbmUgR1RFU1RfQ09NUElMRV9BU1NFUlRfKGV4
cHIsIG1zZykgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvbXBpbGVBc3NlcnQ8
KHN0YXRpY19jYXN0PGJvb2w+KGV4cHIpKT4gXAotICAgICAgbXNnW3N0YXRpY19jYXN0PGJvb2w+
KGV4cHIpID8gMSA6IC0xXSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXwotI2VuZGlmICAvLyAhR1RF
U1RfTEFOR19DWFgxMQotCi0vLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIEdURVNUX0NPTVBJ
TEVfQVNTRVJUXzoKLS8vCi0vLyAoSW4gQysrMTEsIHdlIHNpbXBseSB1c2Ugc3RhdGljX2Fzc2Vy
dCBpbnN0ZWFkIG9mIHRoZSBmb2xsb3dpbmcpCi0vLwotLy8gLSBHVEVTVF9DT01QSUxFX0FTU0VS
VF8gd29ya3MgYnkgZGVmaW5pbmcgYW4gYXJyYXkgdHlwZSB0aGF0IGhhcyAtMQotLy8gICBlbGVt
ZW50cyAoYW5kIHRodXMgaXMgaW52YWxpZCkgd2hlbiB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZS4K
LS8vCi0vLyAtIFRoZSBzaW1wbGVyIGRlZmluaXRpb24KLS8vCi0vLyAgICAjZGVmaW5lIEdURVNU
X0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHR5cGVkZWYgY2hhciBtc2dbKGV4cHIpID8gMSA6
IC0xXQotLy8KLS8vICAgZG9lcyBub3Qgd29yaywgYXMgZ2NjIHN1cHBvcnRzIHZhcmlhYmxlLWxl
bmd0aCBhcnJheXMgd2hvc2Ugc2l6ZXMKLS8vICAgYXJlIGRldGVybWluZWQgYXQgcnVuLXRpbWUg
KHRoaXMgaXMgZ2NjJ3MgZXh0ZW5zaW9uIGFuZCBub3QgcGFydAotLy8gICBvZiB0aGUgQysrIHN0
YW5kYXJkKS4gIEFzIGEgcmVzdWx0LCBnY2MgZmFpbHMgdG8gcmVqZWN0IHRoZQotLy8gICBmb2xs
b3dpbmcgY29kZSB3aXRoIHRoZSBzaW1wbGUgZGVmaW5pdGlvbjoKLS8vCi0vLyAgICAgaW50IGZv
bzsKLS8vICAgICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oZm9vLCBtc2cpOyAvLyBub3Qgc3VwcG9z
ZWQgdG8gY29tcGlsZSBhcyBmb28gaXMKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBub3QgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi0vLwotLy8gLSBCeSB1c2lu
ZyB0aGUgdHlwZSBDb21waWxlQXNzZXJ0PChib29sKGV4cHIpKT4sIHdlIGVuc3VyZXMgdGhhdAot
Ly8gICBleHByIGlzIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LiAgKFRlbXBsYXRlIGFyZ3VtZW50
cyBtdXN0IGJlCi0vLyAgIGRldGVybWluZWQgYXQgY29tcGlsZS10aW1lLikKLS8vCi0vLyAtIFRo
ZSBvdXR0ZXIgcGFyZW50aGVzZXMgaW4gQ29tcGlsZUFzc2VydDwoYm9vbChleHByKSk+IGFyZSBu
ZWNlc3NhcnkKLS8vICAgdG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDMuNC40IGFuZCA0LjAu
MS4gIElmIHdlIGhhZCB3cml0dGVuCi0vLwotLy8gICAgIENvbXBpbGVBc3NlcnQ8Ym9vbChleHBy
KT4KLS8vCi0vLyAgIGluc3RlYWQsIHRoZXNlIGNvbXBpbGVycyB3aWxsIHJlZnVzZSB0byBjb21w
aWxlCi0vLwotLy8gICAgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyg1ID4gMCwgc29tZV9tZXNzYWdl
KTsKLS8vCi0vLyAgIChUaGV5IHNlZW0gdG8gdGhpbmsgdGhlICI+IiBpbiAiNSA+IDAiIG1hcmtz
IHRoZSBlbmQgb2YgdGhlCi0vLyAgIHRlbXBsYXRlIGFyZ3VtZW50IGxpc3QuKQotLy8KLS8vIC0g
VGhlIGFycmF5IHNpemUgaXMgKGJvb2woZXhwcikgPyAxIDogLTEpLCBpbnN0ZWFkIG9mIHNpbXBs
eQotLy8KLS8vICAgICAoKGV4cHIpID8gMSA6IC0xKS4KLS8vCi0vLyAgIFRoaXMgaXMgdG8gYXZv
aWQgcnVubmluZyBpbnRvIGEgYnVnIGluIE1TIFZDIDcuMSwgd2hpY2gKLS8vICAgY2F1c2VzICgo
MC4wKSA/IDEgOiAtMSkgdG8gaW5jb3JyZWN0bHkgZXZhbHVhdGUgdG8gMS4KLQotLy8gU3RhdGlj
QXNzZXJ0VHlwZUVxSGVscGVyIGlzIHVzZWQgYnkgU3RhdGljQXNzZXJ0VHlwZUVxIGRlZmluZWQg
aW4gZ3Rlc3QuaC4KLS8vCi0vLyBUaGlzIHRlbXBsYXRlIGlzIGRlY2xhcmVkLCBidXQgaW50ZW50
aW9uYWxseSB1bmRlZmluZWQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgot
c3RydWN0IFN0YXRpY0Fzc2VydFR5cGVFcUhlbHBlcjsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdHJ1Y3QgU3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQsIFQ+IHsKLSAgZW51bSB7IHZhbHVl
ID0gdHJ1ZSB9OwotfTsKLQotLy8gRXZhbHVhdGVzIHRvIHRoZSBudW1iZXIgb2YgZWxlbWVudHMg
aW4gJ2FycmF5Jy4KLSNkZWZpbmUgR1RFU1RfQVJSQVlfU0laRV8oYXJyYXkpIChzaXplb2YoYXJy
YXkpIC8gc2l6ZW9mKGFycmF5WzBdKSkKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi10
eXBlZGVmIDo6c3RyaW5nIHN0cmluZzsKLSNlbHNlCi10eXBlZGVmIDo6c3RkOjpzdHJpbmcgc3Ry
aW5nOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCi0jaWYgR1RFU1RfSEFT
X0dMT0JBTF9XU1RSSU5HCi10eXBlZGVmIDo6d3N0cmluZyB3c3RyaW5nOwotI2VsaWYgR1RFU1Rf
SEFTX1NURF9XU1RSSU5HCi10eXBlZGVmIDo6c3RkOjp3c3RyaW5nIHdzdHJpbmc7Ci0jZW5kaWYg
IC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotCi0vLyBBIGhlbHBlciBmb3Igc3VwcHJlc3Np
bmcgd2FybmluZ3Mgb24gY29uc3RhbnQgY29uZGl0aW9uLiAgSXQganVzdAotLy8gcmV0dXJucyAn
Y29uZGl0aW9uJy4KLUdURVNUX0FQSV8gYm9vbCBJc1RydWUoYm9vbCBjb25kaXRpb24pOwotCi0v
LyBEZWZpbmVzIHNjb3BlZF9wdHIuCi0KLS8vIFRoaXMgaW1wbGVtZW50YXRpb24gb2Ygc2NvcGVk
X3B0ciBpcyBQQVJUSUFMIC0gaXQgb25seSBjb250YWlucwotLy8gZW5vdWdoIHN0dWZmIHRvIHNh
dGlzZnkgR29vZ2xlIFRlc3QncyBuZWVkLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBz
Y29wZWRfcHRyIHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgVCBlbGVtZW50X3R5cGU7Ci0KLSAgZXhw
bGljaXQgc2NvcGVkX3B0cihUKiBwID0gTlVMTCkgOiBwdHJfKHApIHt9Ci0gIH5zY29wZWRfcHRy
KCkgeyByZXNldCgpOyB9Ci0KLSAgVCYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKnB0cl87
IH0KLSAgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIHB0cl87IH0KLSAgVCogZ2V0KCkg
Y29uc3QgeyByZXR1cm4gcHRyXzsgfQotCi0gIFQqIHJlbGVhc2UoKSB7Ci0gICAgVCogY29uc3Qg
cHRyID0gcHRyXzsKLSAgICBwdHJfID0gTlVMTDsKLSAgICByZXR1cm4gcHRyOwotICB9Ci0KLSAg
dm9pZCByZXNldChUKiBwID0gTlVMTCkgewotICAgIGlmIChwICE9IHB0cl8pIHsKLSAgICAgIGlm
IChJc1RydWUoc2l6ZW9mKFQpID4gMCkpIHsgIC8vIE1ha2VzIHN1cmUgVCBpcyBhIGNvbXBsZXRl
IHR5cGUuCi0gICAgICAgIGRlbGV0ZSBwdHJfOwotICAgICAgfQotICAgICAgcHRyXyA9IHA7Ci0g
ICAgfQotICB9Ci0KLSAgZnJpZW5kIHZvaWQgc3dhcChzY29wZWRfcHRyJiBhLCBzY29wZWRfcHRy
JiBiKSB7Ci0gICAgdXNpbmcgc3RkOjpzd2FwOwotICAgIHN3YXAoYS5wdHJfLCBiLnB0cl8pOwot
ICB9Ci0KLSBwcml2YXRlOgotICBUKiBwdHJfOwotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5E
X0FTU0lHTl8oc2NvcGVkX3B0cik7Ci19OwotCi0vLyBEZWZpbmVzIFJFLgotCi0vLyBBIHNpbXBs
ZSBDKysgd3JhcHBlciBmb3IgPHJlZ2V4Lmg+LiAgSXQgdXNlcyB0aGUgUE9TSVggRXh0ZW5kZWQK
LS8vIFJlZ3VsYXIgRXhwcmVzc2lvbiBzeW50YXguCi1jbGFzcyBHVEVTVF9BUElfIFJFIHsKLSBw
dWJsaWM6Ci0gIC8vIEEgY29weSBjb25zdHJ1Y3RvciBpcyByZXF1aXJlZCBieSB0aGUgU3RhbmRh
cmQgdG8gaW5pdGlhbGl6ZSBvYmplY3QKLSAgLy8gcmVmZXJlbmNlcyBmcm9tIHItdmFsdWVzLgot
ICBSRShjb25zdCBSRSYgb3RoZXIpIHsgSW5pdChvdGhlci5wYXR0ZXJuKCkpOyB9Ci0KLSAgLy8g
Q29uc3RydWN0cyBhbiBSRSBmcm9tIGEgc3RyaW5nLgotICBSRShjb25zdCA6OnN0ZDo6c3RyaW5n
JiByZWdleCkgeyBJbml0KHJlZ2V4LmNfc3RyKCkpOyB9ICAvLyBOT0xJTlQKLQotI2lmIEdURVNU
X0hBU19HTE9CQUxfU1RSSU5HCi0KLSAgUkUoY29uc3QgOjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQo
cmVnZXguY19zdHIoKSk7IH0gIC8vIE5PTElOVAotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9C
QUxfU1RSSU5HCi0KLSAgUkUoY29uc3QgY2hhciogcmVnZXgpIHsgSW5pdChyZWdleCk7IH0gIC8v
IE5PTElOVAotICB+UkUoKTsKLQotICAvLyBSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRp
b24gb2YgdGhlIHJlZ2V4LgotICBjb25zdCBjaGFyKiBwYXR0ZXJuKCkgY29uc3QgeyByZXR1cm4g
cGF0dGVybl87IH0KLQotICAvLyBGdWxsTWF0Y2goc3RyLCByZSkgcmV0dXJucyB0cnVlIGlmZiBy
ZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcwotICAvLyB0aGUgZW50aXJlIHN0ci4KLSAgLy8g
UGFydGlhbE1hdGNoKHN0ciwgcmUpIHJldHVybnMgdHJ1ZSBpZmYgcmVndWxhciBleHByZXNzaW9u
IHJlCi0gIC8vIG1hdGNoZXMgYSBzdWJzdHJpbmcgb2Ygc3RyIChpbmNsdWRpbmcgc3RyIGl0c2Vs
ZikuCi0gIC8vCi0gIC8vIFRPRE8od2FuQGdvb2dsZS5jb20pOiBtYWtlIEZ1bGxNYXRjaCgpIGFu
ZCBQYXJ0aWFsTWF0Y2goKSB3b3JrCi0gIC8vIHdoZW4gc3RyIGNvbnRhaW5zIE5VTCBjaGFyYWN0
ZXJzLgotICBzdGF0aWMgYm9vbCBGdWxsTWF0Y2goY29uc3QgOjpzdGQ6OnN0cmluZyYgc3RyLCBj
b25zdCBSRSYgcmUpIHsKLSAgICByZXR1cm4gRnVsbE1hdGNoKHN0ci5jX3N0cigpLCByZSk7Ci0g
IH0KLSAgc3RhdGljIGJvb2wgUGFydGlhbE1hdGNoKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0ciwg
Y29uc3QgUkUmIHJlKSB7Ci0gICAgcmV0dXJuIFBhcnRpYWxNYXRjaChzdHIuY19zdHIoKSwgcmUp
OwotICB9Ci0KLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCi0gIHN0YXRpYyBib29sIEZ1
bGxNYXRjaChjb25zdCA6OnN0cmluZyYgc3RyLCBjb25zdCBSRSYgcmUpIHsKLSAgICByZXR1cm4g
RnVsbE1hdGNoKHN0ci5jX3N0cigpLCByZSk7Ci0gIH0KLSAgc3RhdGljIGJvb2wgUGFydGlhbE1h
dGNoKGNvbnN0IDo6c3RyaW5nJiBzdHIsIGNvbnN0IFJFJiByZSkgewotICAgIHJldHVybiBQYXJ0
aWFsTWF0Y2goc3RyLmNfc3RyKCksIHJlKTsKLSAgfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19H
TE9CQUxfU1RSSU5HCi0KLSAgc3RhdGljIGJvb2wgRnVsbE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwg
Y29uc3QgUkUmIHJlKTsKLSAgc3RhdGljIGJvb2wgUGFydGlhbE1hdGNoKGNvbnN0IGNoYXIqIHN0
ciwgY29uc3QgUkUmIHJlKTsKLQotIHByaXZhdGU6Ci0gIHZvaWQgSW5pdChjb25zdCBjaGFyKiBy
ZWdleCk7Ci0KLSAgLy8gV2UgdXNlIGEgY29uc3QgY2hhciogaW5zdGVhZCBvZiBhbiBzdGQ6OnN0
cmluZywgYXMgR29vZ2xlIFRlc3QgdXNlZCB0byBiZQotICAvLyB1c2VkIHdoZXJlIHN0ZDo6c3Ry
aW5nIGlzIG5vdCBhdmFpbGFibGUuICBUT0RPKHdhbkBnb29nbGUuY29tKTogY2hhbmdlIHRvCi0g
IC8vIHN0ZDo6c3RyaW5nLgotICBjb25zdCBjaGFyKiBwYXR0ZXJuXzsKLSAgYm9vbCBpc192YWxp
ZF87Ci0KLSNpZiBHVEVTVF9VU0VTX1BPU0lYX1JFCi0KLSAgcmVnZXhfdCBmdWxsX3JlZ2V4Xzsg
ICAgIC8vIEZvciBGdWxsTWF0Y2goKS4KLSAgcmVnZXhfdCBwYXJ0aWFsX3JlZ2V4XzsgIC8vIEZv
ciBQYXJ0aWFsTWF0Y2goKS4KLQotI2Vsc2UgIC8vIEdURVNUX1VTRVNfU0lNUExFX1JFCi0KLSAg
Y29uc3QgY2hhciogZnVsbF9wYXR0ZXJuXzsgIC8vIEZvciBGdWxsTWF0Y2goKTsKLQotI2VuZGlm
Ci0KLSAgR1RFU1RfRElTQUxMT1dfQVNTSUdOXyhSRSk7Ci19OwotCi0vLyBGb3JtYXRzIGEgc291
cmNlIGZpbGUgcGF0aCBhbmQgYSBsaW5lIG51bWJlciBhcyB0aGV5IHdvdWxkIGFwcGVhcgotLy8g
aW4gYW4gZXJyb3IgbWVzc2FnZSBmcm9tIHRoZSBjb21waWxlciB1c2VkIHRvIGNvbXBpbGUgdGhp
cyBjb2RlLgotR1RFU1RfQVBJXyA6OnN0ZDo6c3RyaW5nIEZvcm1hdEZpbGVMb2NhdGlvbihjb25z
dCBjaGFyKiBmaWxlLCBpbnQgbGluZSk7Ci0KLS8vIEZvcm1hdHMgYSBmaWxlIGxvY2F0aW9uIGZv
ciBjb21waWxlci1pbmRlcGVuZGVudCBYTUwgb3V0cHV0LgotLy8gQWx0aG91Z2ggdGhpcyBmdW5j
dGlvbiBpcyBub3QgcGxhdGZvcm0gZGVwZW5kZW50LCB3ZSBwdXQgaXQgbmV4dCB0bwotLy8gRm9y
bWF0RmlsZUxvY2F0aW9uIGluIG9yZGVyIHRvIGNvbnRyYXN0IHRoZSB0d28gZnVuY3Rpb25zLgot
R1RFU1RfQVBJXyA6OnN0ZDo6c3RyaW5nIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9j
YXRpb24oY29uc3QgY2hhciogZmlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lKTsKLQotLy8gRGVmaW5lcyBs
b2dnaW5nIHV0aWxpdGllczoKLS8vICAgR1RFU1RfTE9HXyhzZXZlcml0eSkgLSBsb2dzIG1lc3Nh
Z2VzIGF0IHRoZSBzcGVjaWZpZWQgc2V2ZXJpdHkgbGV2ZWwuIFRoZQotLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgaXRzZWxmIGlzIHN0cmVhbWVkIGludG8gdGhlIG1hY3JvLgot
Ly8gICBMb2dUb1N0ZGVycigpICAtIGRpcmVjdHMgYWxsIGxvZyBtZXNzYWdlcyB0byBzdGRlcnIu
Ci0vLyAgIEZsdXNoSW5mb0xvZygpIC0gZmx1c2hlcyBpbmZvcm1hdGlvbmFsIGxvZyBtZXNzYWdl
cy4KLQotZW51bSBHVGVzdExvZ1NldmVyaXR5IHsKLSAgR1RFU1RfSU5GTywKLSAgR1RFU1RfV0FS
TklORywKLSAgR1RFU1RfRVJST1IsCi0gIEdURVNUX0ZBVEFMCi19OwotCi0vLyBGb3JtYXRzIGxv
ZyBlbnRyeSBzZXZlcml0eSwgcHJvdmlkZXMgYSBzdHJlYW0gb2JqZWN0IGZvciBzdHJlYW1pbmcg
dGhlCi0vLyBsb2cgbWVzc2FnZSwgYW5kIHRlcm1pbmF0ZXMgdGhlIG1lc3NhZ2Ugd2l0aCBhIG5l
d2xpbmUgd2hlbiBnb2luZyBvdXQgb2YKLS8vIHNjb3BlLgotY2xhc3MgR1RFU1RfQVBJXyBHVGVz
dExvZyB7Ci0gcHVibGljOgotICBHVGVzdExvZyhHVGVzdExvZ1NldmVyaXR5IHNldmVyaXR5LCBj
b25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSk7Ci0KLSAgLy8gRmx1c2hlcyB0aGUgYnVmZmVycyBh
bmQsIGlmIHNldmVyaXR5IGlzIEdURVNUX0ZBVEFMLCBhYm9ydHMgdGhlIHByb2dyYW0uCi0gIH5H
VGVzdExvZygpOwotCi0gIDo6c3RkOjpvc3RyZWFtJiBHZXRTdHJlYW0oKSB7IHJldHVybiA6OnN0
ZDo6Y2VycjsgfQotCi0gcHJpdmF0ZToKLSAgY29uc3QgR1Rlc3RMb2dTZXZlcml0eSBzZXZlcml0
eV87Ci0KLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhHVGVzdExvZyk7Ci19Owot
Ci0jaWYgIWRlZmluZWQoR1RFU1RfTE9HXykKLQotIyBkZWZpbmUgR1RFU1RfTE9HXyhzZXZlcml0
eSkgXAotICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0TG9nKDo6dGVzdGluZzo6aW50ZXJu
YWw6OkdURVNUXyMjc2V2ZXJpdHksIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfX0ZJTEVfXywgX19MSU5FX18pLkdldFN0cmVhbSgpCi0KLWlubGluZSB2b2lkIExvZ1RvU3Rk
ZXJyKCkge30KLWlubGluZSB2b2lkIEZsdXNoSW5mb0xvZygpIHsgZmZsdXNoKE5VTEwpOyB9Ci0K
LSNlbmRpZiAgLy8gIWRlZmluZWQoR1RFU1RfTE9HXykKLQotI2lmICFkZWZpbmVkKEdURVNUX0NI
RUNLXykKLS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRS4KLS8vCi0vLyBH
VEVTVF9DSEVDS18gaXMgYW4gYWxsLW1vZGUgYXNzZXJ0LiBJdCBhYm9ydHMgdGhlIHByb2dyYW0g
aWYgdGhlIGNvbmRpdGlvbgotLy8gaXMgbm90IHNhdGlzZmllZC4KLS8vICBTeW5vcHN5czoKLS8v
ICAgIEdURVNUX0NIRUNLXyhib29sZWFuX2NvbmRpdGlvbik7Ci0vLyAgICAgb3IKLS8vICAgIEdU
RVNUX0NIRUNLXyhib29sZWFuX2NvbmRpdGlvbikgPDwgIkFkZGl0aW9uYWwgbWVzc2FnZSI7Ci0v
LwotLy8gICAgVGhpcyBjaGVja3MgdGhlIGNvbmRpdGlvbiBhbmQgaWYgdGhlIGNvbmRpdGlvbiBp
cyBub3Qgc2F0aXNmaWVkCi0vLyAgICBpdCBwcmludHMgbWVzc2FnZSBhYm91dCB0aGUgY29uZGl0
aW9uIHZpb2xhdGlvbiwgaW5jbHVkaW5nIHRoZQotLy8gICAgY29uZGl0aW9uIGl0c2VsZiwgcGx1
cyBhZGRpdGlvbmFsIG1lc3NhZ2Ugc3RyZWFtZWQgaW50byBpdCwgaWYgYW55LAotLy8gICAgYW5k
IHRoZW4gaXQgYWJvcnRzIHRoZSBwcm9ncmFtLiBJdCBhYm9ydHMgdGhlIHByb2dyYW0gaXJyZXNw
ZWN0aXZlIG9mCi0vLyAgICB3aGV0aGVyIGl0IGlzIGJ1aWx0IGluIHRoZSBkZWJ1ZyBtb2RlIG9y
IG5vdC4KLSMgZGVmaW5lIEdURVNUX0NIRUNLXyhjb25kaXRpb24pIFwKLSAgICBHVEVTVF9BTUJJ
R1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gICAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OklzVHJ1
ZShjb25kaXRpb24pKSBcCi0gICAgICA7IFwKLSAgICBlbHNlIFwKLSAgICAgIEdURVNUX0xPR18o
RkFUQUwpIDw8ICJDb25kaXRpb24gIiAjY29uZGl0aW9uICIgZmFpbGVkLiAiCi0jZW5kaWYgIC8v
ICFkZWZpbmVkKEdURVNUX0NIRUNLXykKLQotLy8gQW4gYWxsLW1vZGUgYXNzZXJ0IHRvIHZlcmlm
eSB0aGF0IHRoZSBnaXZlbiBQT1NJWC1zdHlsZSBmdW5jdGlvbgotLy8gY2FsbCByZXR1cm5zIDAg
KGluZGljYXRpbmcgc3VjY2VzcykuICBLbm93biBsaW1pdGF0aW9uOiB0aGlzCi0vLyBkb2Vzbid0
IGV4cGFuZCB0byBhIGJhbGFuY2VkICdpZicgc3RhdGVtZW50LCBzbyBlbmNsb3NlIHRoZSBtYWNy
bwotLy8gaW4ge30gaWYgeW91IG5lZWQgdG8gdXNlIGl0IGFzIHRoZSBvbmx5IHN0YXRlbWVudCBp
biBhbiAnaWYnCi0vLyBicmFuY2guCi0jZGVmaW5lIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1Nf
KHBvc2l4X2NhbGwpIFwKLSAgaWYgKGNvbnN0IGludCBndGVzdF9lcnJvciA9IChwb3NpeF9jYWxs
KSkgXAotICAgIEdURVNUX0xPR18oRkFUQUwpIDw8ICNwb3NpeF9jYWxsIDw8ICJmYWlsZWQgd2l0
aCBlcnJvciAiIFwKLSAgICAgICAgICAgICAgICAgICAgICA8PCBndGVzdF9lcnJvcgotCi0jaWYg
R1RFU1RfSEFTX1NURF9NT1ZFXwotdXNpbmcgc3RkOjptb3ZlOwotI2Vsc2UgIC8vIEdURVNUX0hB
U19TVERfTU9WRV8KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY29uc3QgVCYgbW92ZShjb25zdCBU
JiB0KSB7Ci0gIHJldHVybiB0OwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX01PVkVfCi0K
LS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0v
LwotLy8gVXNlIEltcGxpY2l0Q2FzdF8gYXMgYSBzYWZlIHZlcnNpb24gb2Ygc3RhdGljX2Nhc3Qg
Zm9yIHVwY2FzdGluZyBpbgotLy8gdGhlIHR5cGUgaGllcmFyY2h5IChlLmcuIGNhc3RpbmcgYSBG
b28qIHRvIGEgU3VwZXJjbGFzc09mRm9vKiBvciBhCi0vLyBjb25zdCBGb28qKS4gIFdoZW4geW91
IHVzZSBJbXBsaWNpdENhc3RfLCB0aGUgY29tcGlsZXIgY2hlY2tzIHRoYXQKLS8vIHRoZSBjYXN0
IGlzIHNhZmUuICBTdWNoIGV4cGxpY2l0IEltcGxpY2l0Q2FzdF9zIGFyZSBuZWNlc3NhcnkgaW4K
LS8vIHN1cnByaXNpbmdseSBtYW55IHNpdHVhdGlvbnMgd2hlcmUgQysrIGRlbWFuZHMgYW4gZXhh
Y3QgdHlwZSBtYXRjaAotLy8gaW5zdGVhZCBvZiBhbiBhcmd1bWVudCB0eXBlIGNvbnZlcnRhYmxl
IHRvIGEgdGFyZ2V0IHR5cGUuCi0vLwotLy8gVGhlIHN5bnRheCBmb3IgdXNpbmcgSW1wbGljaXRD
YXN0XyBpcyB0aGUgc2FtZSBhcyBmb3Igc3RhdGljX2Nhc3Q6Ci0vLwotLy8gICBJbXBsaWNpdENh
c3RfPFRvVHlwZT4oZXhwcikKLS8vCi0vLyBJbXBsaWNpdENhc3RfIHdvdWxkIGhhdmUgYmVlbiBw
YXJ0IG9mIHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSwKLS8vIGJ1dCB0aGUgcHJvcG9zYWwgd2Fz
IHN1Ym1pdHRlZCB0b28gbGF0ZS4gIEl0IHdpbGwgcHJvYmFibHkgbWFrZQotLy8gaXRzIHdheSBp
bnRvIHRoZSBsYW5ndWFnZSBpbiB0aGUgZnV0dXJlLgotLy8KLS8vIFRoaXMgcmVsYXRpdmVseSB1
Z2x5IG5hbWUgaXMgaW50ZW50aW9uYWwuIEl0IHByZXZlbnRzIGNsYXNoZXMgd2l0aAotLy8gc2lt
aWxhciBmdW5jdGlvbnMgdXNlcnMgbWF5IGhhdmUgKGUuZy4sIGltcGxpY2l0X2Nhc3QpLiBUaGUg
aW50ZXJuYWwKLS8vIG5hbWVzcGFjZSBhbG9uZSBpcyBub3QgZW5vdWdoIGJlY2F1c2UgdGhlIGZ1
bmN0aW9uIGNhbiBiZSBmb3VuZCBieSBBREwuCi10ZW1wbGF0ZTx0eXBlbmFtZSBUbz4KLWlubGlu
ZSBUbyBJbXBsaWNpdENhc3RfKFRvIHgpIHsgcmV0dXJuIHg7IH0KLQotLy8gV2hlbiB5b3UgdXBj
YXN0ICh0aGF0IGlzLCBjYXN0IGEgcG9pbnRlciBmcm9tIHR5cGUgRm9vIHRvIHR5cGUKLS8vIFN1
cGVyY2xhc3NPZkZvbyksIGl0J3MgZmluZSB0byB1c2UgSW1wbGljaXRDYXN0Xzw+LCBzaW5jZSB1
cGNhc3RzCi0vLyBhbHdheXMgc3VjY2VlZC4gIFdoZW4geW91IGRvd25jYXN0ICh0aGF0IGlzLCBj
YXN0IGEgcG9pbnRlciBmcm9tCi0vLyB0eXBlIEZvbyB0byB0eXBlIFN1YmNsYXNzT2ZGb28pLCBz
dGF0aWNfY2FzdDw+IGlzbid0IHNhZmUsIGJlY2F1c2UKLS8vIGhvdyBkbyB5b3Uga25vdyB0aGUg
cG9pbnRlciBpcyByZWFsbHkgb2YgdHlwZSBTdWJjbGFzc09mRm9vPyAgSXQKLS8vIGNvdWxkIGJl
IGEgYmFyZSBGb28sIG9yIG9mIHR5cGUgRGlmZmVyZW50U3ViY2xhc3NPZkZvby4gIFRodXMsCi0v
LyB3aGVuIHlvdSBkb3duY2FzdCwgeW91IHNob3VsZCB1c2UgdGhpcyBtYWNyby4gIEluIGRlYnVn
IG1vZGUsIHdlCi0vLyB1c2UgZHluYW1pY19jYXN0PD4gdG8gZG91YmxlLWNoZWNrIHRoZSBkb3du
Y2FzdCBpcyBsZWdhbCAod2UgZGllCi0vLyBpZiBpdCdzIG5vdCkuICBJbiBub3JtYWwgbW9kZSwg
d2UgZG8gdGhlIGVmZmljaWVudCBzdGF0aWNfY2FzdDw+Ci0vLyBpbnN0ZWFkLiAgVGh1cywgaXQn
cyBpbXBvcnRhbnQgdG8gdGVzdCBpbiBkZWJ1ZyBtb2RlIHRvIG1ha2Ugc3VyZQotLy8gdGhlIGNh
c3QgaXMgbGVnYWwhCi0vLyAgICBUaGlzIGlzIHRoZSBvbmx5IHBsYWNlIGluIHRoZSBjb2RlIHdl
IHNob3VsZCB1c2UgZHluYW1pY19jYXN0PD4uCi0vLyBJbiBwYXJ0aWN1bGFyLCB5b3UgU0hPVUxE
TidUIGJlIHVzaW5nIGR5bmFtaWNfY2FzdDw+IGluIG9yZGVyIHRvCi0vLyBkbyBSVFRJIChlZyBj
b2RlIGxpa2UgdGhpczoKLS8vICAgIGlmIChkeW5hbWljX2Nhc3Q8U3ViY2xhc3MxPihmb28pKSBI
YW5kbGVBU3ViY2xhc3MxT2JqZWN0KGZvbyk7Ci0vLyAgICBpZiAoZHluYW1pY19jYXN0PFN1YmNs
YXNzMj4oZm9vKSkgSGFuZGxlQVN1YmNsYXNzMk9iamVjdChmb28pOwotLy8gWW91IHNob3VsZCBk
ZXNpZ24gdGhlIGNvZGUgc29tZSBvdGhlciB3YXkgbm90IHRvIG5lZWQgdGhpcy4KLS8vCi0vLyBU
aGlzIHJlbGF0aXZlbHkgdWdseSBuYW1lIGlzIGludGVudGlvbmFsLiBJdCBwcmV2ZW50cyBjbGFz
aGVzIHdpdGgKLS8vIHNpbWlsYXIgZnVuY3Rpb25zIHVzZXJzIG1heSBoYXZlIChlLmcuLCBkb3du
X2Nhc3QpLiBUaGUgaW50ZXJuYWwKLS8vIG5hbWVzcGFjZSBhbG9uZSBpcyBub3QgZW5vdWdoIGJl
Y2F1c2UgdGhlIGZ1bmN0aW9uIGNhbiBiZSBmb3VuZCBieSBBREwuCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBUbywgdHlwZW5hbWUgRnJvbT4gIC8vIHVzZSBsaWtlIHRoaXM6IERvd25DYXN0XzxUKj4oZm9v
KTsKLWlubGluZSBUbyBEb3duQ2FzdF8oRnJvbSogZikgeyAgLy8gc28gd2Ugb25seSBhY2NlcHQg
cG9pbnRlcnMKLSAgLy8gRW5zdXJlcyB0aGF0IFRvIGlzIGEgc3ViLXR5cGUgb2YgRnJvbSAqLiAg
VGhpcyB0ZXN0IGlzIGhlcmUgb25seQotICAvLyBmb3IgY29tcGlsZS10aW1lIHR5cGUgY2hlY2tp
bmcsIGFuZCBoYXMgbm8gb3ZlcmhlYWQgaW4gYW4KLSAgLy8gb3B0aW1pemVkIGJ1aWxkIGF0IHJ1
bi10aW1lLCBhcyBpdCB3aWxsIGJlIG9wdGltaXplZCBhd2F5Ci0gIC8vIGNvbXBsZXRlbHkuCi0g
IEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKQotICBpZiAoZmFsc2UpIHsKLSAg
R1RFU1RfSU5URU5USU9OQUxfQ09OU1RfQ09ORF9QT1BfKCkKLSAgICBjb25zdCBUbyB0byA9IE5V
TEw7Ci0gICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SW1wbGljaXRDYXN0XzxGcm9tKj4odG8pOwot
ICB9Ci0KLSNpZiBHVEVTVF9IQVNfUlRUSQotICAvLyBSVFRJOiBkZWJ1ZyBtb2RlIG9ubHkhCi0g
IEdURVNUX0NIRUNLXyhmID09IE5VTEwgfHwgZHluYW1pY19jYXN0PFRvPihmKSAhPSBOVUxMKTsK
LSNlbmRpZgotICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGYpOwotfQotCi0vLyBEb3duY2FzdHMg
dGhlIHBvaW50ZXIgb2YgdHlwZSBCYXNlIHRvIERlcml2ZWQuCi0vLyBEZXJpdmVkIG11c3QgYmUg
YSBzdWJjbGFzcyBvZiBCYXNlLiBUaGUgcGFyYW1ldGVyIE1VU1QKLS8vIHBvaW50IHRvIGEgY2xh
c3Mgb2YgdHlwZSBEZXJpdmVkLCBub3QgYW55IHN1YmNsYXNzIG9mIGl0LgotLy8gV2hlbiBSVFRJ
IGlzIGF2YWlsYWJsZSwgdGhlIGZ1bmN0aW9uIHBlcmZvcm1zIGEgcnVudGltZQotLy8gY2hlY2sg
dG8gZW5mb3JjZSB0aGlzLgotdGVtcGxhdGUgPGNsYXNzIERlcml2ZWQsIGNsYXNzIEJhc2U+Ci1E
ZXJpdmVkKiBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGUoQmFzZSogYmFzZSkgewotI2lmIEdU
RVNUX0hBU19SVFRJCi0gIEdURVNUX0NIRUNLXyh0eXBlaWQoKmJhc2UpID09IHR5cGVpZChEZXJp
dmVkKSk7Ci0jZW5kaWYKLQotI2lmIEdURVNUX0hBU19ET1dOQ0FTVF8KLSAgcmV0dXJuIDo6ZG93
bl9jYXN0PERlcml2ZWQqPihiYXNlKTsKLSNlbGlmIEdURVNUX0hBU19SVFRJCi0gIHJldHVybiBk
eW5hbWljX2Nhc3Q8RGVyaXZlZCo+KGJhc2UpOyAgLy8gTk9MSU5UCi0jZWxzZQotICByZXR1cm4g
c3RhdGljX2Nhc3Q8RGVyaXZlZCo+KGJhc2UpOyAgLy8gUG9vciBtYW4ncyBkb3duY2FzdC4KLSNl
bmRpZgotfQotCi0jaWYgR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElPTgotCi0vLyBEZWZpbmVz
IHRoZSBzdGRlcnIgY2FwdHVyZXI6Ci0vLyAgIENhcHR1cmVTdGRvdXQgICAgIC0gc3RhcnRzIGNh
cHR1cmluZyBzdGRvdXQuCi0vLyAgIEdldENhcHR1cmVkU3Rkb3V0IC0gc3RvcHMgY2FwdHVyaW5n
IHN0ZG91dCBhbmQgcmV0dXJucyB0aGUgY2FwdHVyZWQgc3RyaW5nLgotLy8gICBDYXB0dXJlU3Rk
ZXJyICAgICAtIHN0YXJ0cyBjYXB0dXJpbmcgc3RkZXJyLgotLy8gICBHZXRDYXB0dXJlZFN0ZGVy
ciAtIHN0b3BzIGNhcHR1cmluZyBzdGRlcnIgYW5kIHJldHVybnMgdGhlIGNhcHR1cmVkIHN0cmlu
Zy4KLS8vCi1HVEVTVF9BUElfIHZvaWQgQ2FwdHVyZVN0ZG91dCgpOwotR1RFU1RfQVBJXyBzdGQ6
OnN0cmluZyBHZXRDYXB0dXJlZFN0ZG91dCgpOwotR1RFU1RfQVBJXyB2b2lkIENhcHR1cmVTdGRl
cnIoKTsKLUdURVNUX0FQSV8gc3RkOjpzdHJpbmcgR2V0Q2FwdHVyZWRTdGRlcnIoKTsKLQotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OCi0KLS8vIFJldHVybnMgdGhlIHNp
emUgKGluIGJ5dGVzKSBvZiBhIGZpbGUuCi1HVEVTVF9BUElfIHNpemVfdCBHZXRGaWxlU2l6ZShG
SUxFKiBmaWxlKTsKLQotLy8gUmVhZHMgdGhlIGVudGlyZSBjb250ZW50IG9mIGEgZmlsZSBhcyBh
IHN0cmluZy4KLUdURVNUX0FQSV8gc3RkOjpzdHJpbmcgUmVhZEVudGlyZUZpbGUoRklMRSogZmls
ZSk7Ci0KLS8vIEFsbCBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgotR1RFU1RfQVBJXyBjb25zdCA6
OnN0ZDo6dmVjdG9yPHRlc3Rpbmc6OmludGVybmFsOjpzdHJpbmc+JiBHZXRBcmd2cygpOwotCi0j
aWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotY29uc3QgOjpzdGQ6OnZlY3Rvcjx0ZXN0aW5nOjpp
bnRlcm5hbDo6c3RyaW5nPiYgR2V0SW5qZWN0YWJsZUFyZ3ZzKCk7Ci12b2lkIFNldEluamVjdGFi
bGVBcmd2cyhjb25zdCA6OnN0ZDo6dmVjdG9yPHRlc3Rpbmc6OmludGVybmFsOjpzdHJpbmc+Kgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfYXJndnMpOwotCi0KLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotLy8gRGVmaW5lcyBzeW5jaHJvbml6YXRpb24gcHJpbWl0
aXZlcy4KLSNpZiBHVEVTVF9JU19USFJFQURTQUZFCi0jIGlmIEdURVNUX0hBU19QVEhSRUFECi0v
LyBTbGVlcHMgZm9yIChyb3VnaGx5KSBuIG1pbGxpc2Vjb25kcy4gIFRoaXMgZnVuY3Rpb24gaXMg
b25seSBmb3IgdGVzdGluZwotLy8gR29vZ2xlIFRlc3QncyBvd24gY29uc3RydWN0cy4gIERvbid0
IHVzZSBpdCBpbiB1c2VyIHRlc3RzLCBlaXRoZXIKLS8vIGRpcmVjdGx5IG9yIGluZGlyZWN0bHku
Ci1pbmxpbmUgdm9pZCBTbGVlcE1pbGxpc2Vjb25kcyhpbnQgbikgewotICBjb25zdCB0aW1lc3Bl
YyB0aW1lID0gewotICAgIDAsICAgICAgICAgICAgICAgICAgLy8gMCBzZWNvbmRzLgotICAgIG4g
KiAxMDAwTCAqIDEwMDBMLCAgLy8gQW5kIG4gbXMuCi0gIH07Ci0gIG5hbm9zbGVlcCgmdGltZSwg
TlVMTCk7Ci19Ci0jIGVuZGlmICAvLyBHVEVTVF9IQVNfUFRIUkVBRAotCi0jIGlmIEdURVNUX0hB
U19OT1RJRklDQVRJT05fCi0vLyBOb3RpZmljYXRpb24gaGFzIGFscmVhZHkgYmVlbiBpbXBvcnRl
ZCBpbnRvIHRoZSBuYW1lc3BhY2UuCi0vLyBOb3RoaW5nIHRvIGRvIGhlcmUuCi0KLSMgZWxpZiBH
VEVTVF9IQVNfUFRIUkVBRAotLy8gQWxsb3dzIGEgY29udHJvbGxlciB0aHJlYWQgdG8gcGF1c2Ug
ZXhlY3V0aW9uIG9mIG5ld2x5IGNyZWF0ZWQKLS8vIHRocmVhZHMgdW50aWwgbm90aWZpZWQuICBJ
bnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBtdXN0IGJlIGNyZWF0ZWQKLS8vIGFuZCBkZXN0cm95ZWQg
aW4gdGhlIGNvbnRyb2xsZXIgdGhyZWFkLgotLy8KLS8vIFRoaXMgY2xhc3MgaXMgb25seSBmb3Ig
dGVzdGluZyBHb29nbGUgVGVzdCdzIG93biBjb25zdHJ1Y3RzLiBEbyBub3QKLS8vIHVzZSBpdCBp
biB1c2VyIHRlc3RzLCBlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4KLWNsYXNzIE5vdGlm
aWNhdGlvbiB7Ci0gcHVibGljOgotICBOb3RpZmljYXRpb24oKSA6IG5vdGlmaWVkXyhmYWxzZSkg
ewotICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0
ZXhfLCBOVUxMKSk7Ci0gIH0KLSAgfk5vdGlmaWNhdGlvbigpIHsKLSAgICBwdGhyZWFkX211dGV4
X2Rlc3Ryb3koJm11dGV4Xyk7Ci0gIH0KLQotICAvLyBOb3RpZmllcyBhbGwgdGhyZWFkcyBjcmVh
dGVkIHdpdGggdGhpcyBub3RpZmljYXRpb24gdG8gc3RhcnQuIE11c3QKLSAgLy8gYmUgY2FsbGVk
IGZyb20gdGhlIGNvbnRyb2xsZXIgdGhyZWFkLgotICB2b2lkIE5vdGlmeSgpIHsKLSAgICBwdGhy
ZWFkX211dGV4X2xvY2soJm11dGV4Xyk7Ci0gICAgbm90aWZpZWRfID0gdHJ1ZTsKLSAgICBwdGhy
ZWFkX211dGV4X3VubG9jaygmbXV0ZXhfKTsKLSAgfQotCi0gIC8vIEJsb2NrcyB1bnRpbCB0aGUg
Y29udHJvbGxlciB0aHJlYWQgbm90aWZpZXMuIE11c3QgYmUgY2FsbGVkIGZyb20gYSB0ZXN0Ci0g
IC8vIHRocmVhZC4KLSAgdm9pZCBXYWl0Rm9yTm90aWZpY2F0aW9uKCkgewotICAgIGZvciAoOzsp
IHsKLSAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXhfKTsKLSAgICAgIGNvbnN0IGJvb2wg
bm90aWZpZWQgPSBub3RpZmllZF87Ci0gICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXhf
KTsKLSAgICAgIGlmIChub3RpZmllZCkKLSAgICAgICAgYnJlYWs7Ci0gICAgICBTbGVlcE1pbGxp
c2Vjb25kcygxMCk7Ci0gICAgfQotICB9Ci0KLSBwcml2YXRlOgotICBwdGhyZWFkX211dGV4X3Qg
bXV0ZXhfOwotICBib29sIG5vdGlmaWVkXzsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9B
U1NJR05fKE5vdGlmaWNhdGlvbik7Ci19OwotCi0jIGVsaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAh
R1RFU1RfT1NfV0lORE9XU19QSE9ORSAmJiAhR1RFU1RfT1NfV0lORE9XU19SVAotCi1HVEVTVF9B
UElfIHZvaWQgU2xlZXBNaWxsaXNlY29uZHMoaW50IG4pOwotCi0vLyBQcm92aWRlcyBsZWFrLXNh
ZmUgV2luZG93cyBrZXJuZWwgaGFuZGxlIG93bmVyc2hpcC4KLS8vIFVzZWQgaW4gZGVhdGggdGVz
dHMgYW5kIGluIHRocmVhZGluZyBzdXBwb3J0LgotY2xhc3MgR1RFU1RfQVBJXyBBdXRvSGFuZGxl
IHsKLSBwdWJsaWM6Ci0gIC8vIEFzc3VtZSB0aGF0IFdpbjMyIEhBTkRMRSB0eXBlIGlzIGVxdWl2
YWxlbnQgdG8gdm9pZCouIERvaW5nIHNvIGFsbG93cyB1cyB0bwotICAvLyBhdm9pZCBpbmNsdWRp
bmcgPHdpbmRvd3MuaD4gaW4gdGhpcyBoZWFkZXIgZmlsZS4gSW5jbHVkaW5nIDx3aW5kb3dzLmg+
IGlzCi0gIC8vIHVuZGVzaXJhYmxlIGJlY2F1c2UgaXQgZGVmaW5lcyBhIGxvdCBvZiBzeW1ib2xz
IGFuZCBtYWNyb3MgdGhhdCB0ZW5kIHRvCi0gIC8vIGNvbmZsaWN0IHdpdGggY2xpZW50IGNvZGUu
IFRoaXMgYXNzdW1wdGlvbiBpcyB2ZXJpZmllZCBieQotICAvLyBXaW5kb3dzVHlwZXNUZXN0LkhB
TkRMRUlzVm9pZFN0YXIuCi0gIHR5cGVkZWYgdm9pZCogSGFuZGxlOwotICBBdXRvSGFuZGxlKCk7
Ci0gIGV4cGxpY2l0IEF1dG9IYW5kbGUoSGFuZGxlIGhhbmRsZSk7Ci0KLSAgfkF1dG9IYW5kbGUo
KTsKLQotICBIYW5kbGUgR2V0KCkgY29uc3Q7Ci0gIHZvaWQgUmVzZXQoKTsKLSAgdm9pZCBSZXNl
dChIYW5kbGUgaGFuZGxlKTsKLQotIHByaXZhdGU6Ci0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhl
IGhhbmRsZSBpcyBhIHZhbGlkIGhhbmRsZSBvYmplY3QgdGhhdCBjYW4gYmUgY2xvc2VkLgotICBi
b29sIElzQ2xvc2VhYmxlKCkgY29uc3Q7Ci0KLSAgSGFuZGxlIGhhbmRsZV87Ci0KLSAgR1RFU1Rf
RElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhBdXRvSGFuZGxlKTsKLX07Ci0KLS8vIEFsbG93cyBh
IGNvbnRyb2xsZXIgdGhyZWFkIHRvIHBhdXNlIGV4ZWN1dGlvbiBvZiBuZXdseSBjcmVhdGVkCi0v
LyB0aHJlYWRzIHVudGlsIG5vdGlmaWVkLiAgSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgbXVzdCBi
ZSBjcmVhdGVkCi0vLyBhbmQgZGVzdHJveWVkIGluIHRoZSBjb250cm9sbGVyIHRocmVhZC4KLS8v
Ci0vLyBUaGlzIGNsYXNzIGlzIG9ubHkgZm9yIHRlc3RpbmcgR29vZ2xlIFRlc3QncyBvd24gY29u
c3RydWN0cy4gRG8gbm90Ci0vLyB1c2UgaXQgaW4gdXNlciB0ZXN0cywgZWl0aGVyIGRpcmVjdGx5
IG9yIGluZGlyZWN0bHkuCi1jbGFzcyBHVEVTVF9BUElfIE5vdGlmaWNhdGlvbiB7Ci0gcHVibGlj
OgotICBOb3RpZmljYXRpb24oKTsKLSAgdm9pZCBOb3RpZnkoKTsKLSAgdm9pZCBXYWl0Rm9yTm90
aWZpY2F0aW9uKCk7Ci0KLSBwcml2YXRlOgotICBBdXRvSGFuZGxlIGV2ZW50XzsKLQotICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKE5vdGlmaWNhdGlvbik7Ci19OwotIyBlbmRpZiAg
Ly8gR1RFU1RfSEFTX05PVElGSUNBVElPTl8KLQotLy8gT24gTWluR1csIHdlIGNhbiBoYXZlIGJv
dGggR1RFU1RfT1NfV0lORE9XUyBhbmQgR1RFU1RfSEFTX1BUSFJFQUQKLS8vIGRlZmluZWQsIGJ1
dCB3ZSBkb24ndCB3YW50IHRvIHVzZSBNaW5HVydzIHB0aHJlYWRzIGltcGxlbWVudGF0aW9uLCB3
aGljaAotLy8gaGFzIGNvbmZvcm1hbmNlIHByb2JsZW1zIHdpdGggc29tZSB2ZXJzaW9ucyBvZiB0
aGUgUE9TSVggc3RhbmRhcmQuCi0jIGlmIEdURVNUX0hBU19QVEhSRUFEICYmICFHVEVTVF9PU19X
SU5ET1dTX01JTkdXCi0KLS8vIEFzIGEgQy1mdW5jdGlvbiwgVGhyZWFkRnVuY1dpdGhDTGlua2Fn
ZSBjYW5ub3QgYmUgdGVtcGxhdGVkIGl0c2VsZi4KLS8vIENvbnNlcXVlbnRseSwgaXQgY2Fubm90
IHNlbGVjdCBhIGNvcnJlY3QgaW5zdGFudGlhdGlvbiBvZiBUaHJlYWRXaXRoUGFyYW0KLS8vIGlu
IG9yZGVyIHRvIGNhbGwgaXRzIFJ1bigpLiBJbnRyb2R1Y2luZyBUaHJlYWRXaXRoUGFyYW1CYXNl
IGFzIGEKLS8vIG5vbi10ZW1wbGF0ZWQgYmFzZSBjbGFzcyBmb3IgVGhyZWFkV2l0aFBhcmFtIGFs
bG93cyB1cyB0byBieXBhc3MgdGhpcwotLy8gcHJvYmxlbS4KLWNsYXNzIFRocmVhZFdpdGhQYXJh
bUJhc2UgewotIHB1YmxpYzoKLSAgdmlydHVhbCB+VGhyZWFkV2l0aFBhcmFtQmFzZSgpIHt9Ci0g
IHZpcnR1YWwgdm9pZCBSdW4oKSA9IDA7Ci19OwotCi0vLyBwdGhyZWFkX2NyZWF0ZSgpIGFjY2Vw
dHMgYSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdHlwZSB3aXRoIHRoZSBDIGxpbmthZ2UuCi0vLyBB
Y2NvcmRpbmcgdG8gdGhlIFN0YW5kYXJkICg3LjUvMSksIGZ1bmN0aW9uIHR5cGVzIHdpdGggZGlm
ZmVyZW50IGxpbmthZ2VzCi0vLyBhcmUgZGlmZmVyZW50IGV2ZW4gaWYgdGhleSBhcmUgb3RoZXJ3
aXNlIGlkZW50aWNhbC4gIFNvbWUgY29tcGlsZXJzIChmb3IKLS8vIGV4YW1wbGUsIFN1blN0dWRp
bykgdHJlYXQgdGhlbSBhcyBkaWZmZXJlbnQgdHlwZXMuICBTaW5jZSBjbGFzcyBtZXRob2RzCi0v
LyBjYW5ub3QgYmUgZGVmaW5lZCB3aXRoIEMtbGlua2FnZSB3ZSBuZWVkIHRvIGRlZmluZSBhIGZy
ZWUgQy1mdW5jdGlvbiB0bwotLy8gcGFzcyBpbnRvIHB0aHJlYWRfY3JlYXRlKCkuCi1leHRlcm4g
IkMiIGlubGluZSB2b2lkKiBUaHJlYWRGdW5jV2l0aENMaW5rYWdlKHZvaWQqIHRocmVhZCkgewot
ICBzdGF0aWNfY2FzdDxUaHJlYWRXaXRoUGFyYW1CYXNlKj4odGhyZWFkKS0+UnVuKCk7Ci0gIHJl
dHVybiBOVUxMOwotfQotCi0vLyBIZWxwZXIgY2xhc3MgZm9yIHRlc3RpbmcgR29vZ2xlIFRlc3Qn
cyBtdWx0aS10aHJlYWRpbmcgY29uc3RydWN0cy4KLS8vIFRvIHVzZSBpdCwgd3JpdGU6Ci0vLwot
Ly8gICB2b2lkIFRocmVhZEZ1bmMoaW50IHBhcmFtKSB7IC8qIERvIHRoaW5ncyB3aXRoIHBhcmFt
ICovIH0KLS8vICAgTm90aWZpY2F0aW9uIHRocmVhZF9jYW5fc3RhcnQ7Ci0vLyAgIC4uLgotLy8g
ICAvLyBUaGUgdGhyZWFkX2Nhbl9zdGFydCBwYXJhbWV0ZXIgaXMgb3B0aW9uYWw7IHlvdSBjYW4g
c3VwcGx5IE5VTEwuCi0vLyAgIFRocmVhZFdpdGhQYXJhbTxpbnQ+IHRocmVhZCgmVGhyZWFkRnVu
YywgNSwgJnRocmVhZF9jYW5fc3RhcnQpOwotLy8gICB0aHJlYWRfY2FuX3N0YXJ0Lk5vdGlmeSgp
OwotLy8KLS8vIFRoZXNlIGNsYXNzZXMgYXJlIG9ubHkgZm9yIHRlc3RpbmcgR29vZ2xlIFRlc3Qn
cyBvd24gY29uc3RydWN0cy4gRG8KLS8vIG5vdCB1c2UgdGhlbSBpbiB1c2VyIHRlc3RzLCBlaXRo
ZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3Mg
VGhyZWFkV2l0aFBhcmFtIDogcHVibGljIFRocmVhZFdpdGhQYXJhbUJhc2UgewotIHB1YmxpYzoK
LSAgdHlwZWRlZiB2b2lkIFVzZXJUaHJlYWRGdW5jKFQpOwotCi0gIFRocmVhZFdpdGhQYXJhbShV
c2VyVGhyZWFkRnVuYyogZnVuYywgVCBwYXJhbSwgTm90aWZpY2F0aW9uKiB0aHJlYWRfY2FuX3N0
YXJ0KQotICAgICAgOiBmdW5jXyhmdW5jKSwKLSAgICAgICAgcGFyYW1fKHBhcmFtKSwKLSAgICAg
ICAgdGhyZWFkX2Nhbl9zdGFydF8odGhyZWFkX2Nhbl9zdGFydCksCi0gICAgICAgIGZpbmlzaGVk
XyhmYWxzZSkgewotICAgIFRocmVhZFdpdGhQYXJhbUJhc2UqIGNvbnN0IGJhc2UgPSB0aGlzOwot
ICAgIC8vIFRoZSB0aHJlYWQgY2FuIGJlIGNyZWF0ZWQgb25seSBhZnRlciBhbGwgZmllbGRzIGV4
Y2VwdCB0aHJlYWRfCi0gICAgLy8gaGF2ZSBiZWVuIGluaXRpYWxpemVkLgotICAgIEdURVNUX0NI
RUNLX1BPU0lYX1NVQ0NFU1NfKAotICAgICAgICBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkXywgMCwg
JlRocmVhZEZ1bmNXaXRoQ0xpbmthZ2UsIGJhc2UpKTsKLSAgfQotICB+VGhyZWFkV2l0aFBhcmFt
KCkgeyBKb2luKCk7IH0KLQotICB2b2lkIEpvaW4oKSB7Ci0gICAgaWYgKCFmaW5pc2hlZF8pIHsK
LSAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfam9pbih0aHJlYWRfLCAw
KSk7Ci0gICAgICBmaW5pc2hlZF8gPSB0cnVlOwotICAgIH0KLSAgfQotCi0gIHZpcnR1YWwgdm9p
ZCBSdW4oKSB7Ci0gICAgaWYgKHRocmVhZF9jYW5fc3RhcnRfICE9IE5VTEwpCi0gICAgICB0aHJl
YWRfY2FuX3N0YXJ0Xy0+V2FpdEZvck5vdGlmaWNhdGlvbigpOwotICAgIGZ1bmNfKHBhcmFtXyk7
Ci0gIH0KLQotIHByaXZhdGU6Ci0gIFVzZXJUaHJlYWRGdW5jKiBjb25zdCBmdW5jXzsgIC8vIFVz
ZXItc3VwcGxpZWQgdGhyZWFkIGZ1bmN0aW9uLgotICBjb25zdCBUIHBhcmFtXzsgIC8vIFVzZXIt
c3VwcGxpZWQgcGFyYW1ldGVyIHRvIHRoZSB0aHJlYWQgZnVuY3Rpb24uCi0gIC8vIFdoZW4gbm9u
LU5VTEwsIHVzZWQgdG8gYmxvY2sgZXhlY3V0aW9uIHVudGlsIHRoZSBjb250cm9sbGVyIHRocmVh
ZAotICAvLyBub3RpZmllcy4KLSAgTm90aWZpY2F0aW9uKiBjb25zdCB0aHJlYWRfY2FuX3N0YXJ0
XzsKLSAgYm9vbCBmaW5pc2hlZF87ICAvLyB0cnVlIGlmZiB3ZSBrbm93IHRoYXQgdGhlIHRocmVh
ZCBmdW5jdGlvbiBoYXMgZmluaXNoZWQuCi0gIHB0aHJlYWRfdCB0aHJlYWRfOyAgLy8gVGhlIG5h
dGl2ZSB0aHJlYWQgb2JqZWN0LgotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8o
VGhyZWFkV2l0aFBhcmFtKTsKLX07Ci0jIGVuZGlmICAvLyAhR1RFU1RfT1NfV0lORE9XUyAmJiBH
VEVTVF9IQVNfUFRIUkVBRCB8fAotICAgICAgICAgLy8gR1RFU1RfSEFTX01VVEVYX0FORF9USFJF
QURfTE9DQUxfCi0KLSMgaWYgR1RFU1RfSEFTX01VVEVYX0FORF9USFJFQURfTE9DQUxfCi0vLyBN
dXRleCBhbmQgVGhyZWFkTG9jYWwgaGF2ZSBhbHJlYWR5IGJlZW4gaW1wb3J0ZWQgaW50byB0aGUg
bmFtZXNwYWNlLgotLy8gTm90aGluZyB0byBkbyBoZXJlLgotCi0jIGVsaWYgR1RFU1RfT1NfV0lO
RE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19QSE9ORSAmJiAhR1RFU1RfT1NfV0lORE9XU19SVAot
Ci0vLyBNdXRleCBpbXBsZW1lbnRzIG11dGV4IG9uIFdpbmRvd3MgcGxhdGZvcm1zLiAgSXQgaXMg
dXNlZCBpbiBjb25qdW5jdGlvbgotLy8gd2l0aCBjbGFzcyBNdXRleExvY2s6Ci0vLwotLy8gICBN
dXRleCBtdXRleDsKLS8vICAgLi4uCi0vLyAgIE11dGV4TG9jayBsb2NrKCZtdXRleCk7ICAvLyBB
Y3F1aXJlcyB0aGUgbXV0ZXggYW5kIHJlbGVhc2VzIGl0IGF0IHRoZQotLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gZW5kIG9mIHRoZSBjdXJyZW50IHNjb3BlLgotLy8KLS8vIEEgc3Rh
dGljIE11dGV4ICptdXN0KiBiZSBkZWZpbmVkIG9yIGRlY2xhcmVkIHVzaW5nIG9uZSBvZiB0aGUg
Zm9sbG93aW5nCi0vLyBtYWNyb3M6Ci0vLyAgIEdURVNUX0RFRklORV9TVEFUSUNfTVVURVhfKGdf
c29tZV9tdXRleCk7Ci0vLyAgIEdURVNUX0RFQ0xBUkVfU1RBVElDX01VVEVYXyhnX3NvbWVfbXV0
ZXgpOwotLy8KLS8vIChBIG5vbi1zdGF0aWMgTXV0ZXggaXMgZGVmaW5lZC9kZWNsYXJlZCBpbiB0
aGUgdXN1YWwgd2F5KS4KLWNsYXNzIEdURVNUX0FQSV8gTXV0ZXggewotIHB1YmxpYzoKLSAgZW51
bSBNdXRleFR5cGUgeyBrU3RhdGljID0gMCwga0R5bmFtaWMgPSAxIH07Ci0gIC8vIFdlIHJlbHkg
b24ga1N0YXRpY011dGV4IGJlaW5nIDAgYXMgaXQgaXMgdG8gd2hhdCB0aGUgbGlua2VyIGluaXRp
YWxpemVzCi0gIC8vIHR5cGVfIGluIHN0YXRpYyBtdXRleGVzLiAgY3JpdGljYWxfc2VjdGlvbl8g
d2lsbCBiZSBpbml0aWFsaXplZCBsYXppbHkKLSAgLy8gaW4gVGhyZWFkU2FmZUxhenlJbml0KCku
Ci0gIGVudW0gU3RhdGljQ29uc3RydWN0b3JTZWxlY3RvciB7IGtTdGF0aWNNdXRleCA9IDAgfTsK
LQotICAvLyBUaGlzIGNvbnN0cnVjdG9yIGludGVudGlvbmFsbHkgZG9lcyBub3RoaW5nLiAgSXQg
cmVsaWVzIG9uIHR5cGVfIGJlaW5nCi0gIC8vIHN0YXRpY2FsbHkgaW5pdGlhbGl6ZWQgdG8gMCAo
ZWZmZWN0aXZlbHkgc2V0dGluZyBpdCB0byBrU3RhdGljKSBhbmQgb24KLSAgLy8gVGhyZWFkU2Fm
ZUxhenlJbml0KCkgdG8gbGF6aWx5IGluaXRpYWxpemUgdGhlIHJlc3Qgb2YgdGhlIG1lbWJlcnMu
Ci0gIGV4cGxpY2l0IE11dGV4KFN0YXRpY0NvbnN0cnVjdG9yU2VsZWN0b3IgLypkdW1teSovKSB7
fQotCi0gIE11dGV4KCk7Ci0gIH5NdXRleCgpOwotCi0gIHZvaWQgTG9jaygpOwotCi0gIHZvaWQg
VW5sb2NrKCk7Ci0KLSAgLy8gRG9lcyBub3RoaW5nIGlmIHRoZSBjdXJyZW50IHRocmVhZCBob2xk
cyB0aGUgbXV0ZXguIE90aGVyd2lzZSwgY3Jhc2hlcwotICAvLyB3aXRoIGhpZ2ggcHJvYmFiaWxp
dHkuCi0gIHZvaWQgQXNzZXJ0SGVsZCgpOwotCi0gcHJpdmF0ZToKLSAgLy8gSW5pdGlhbGl6ZXMg
b3duZXJfdGhyZWFkX2lkXyBhbmQgY3JpdGljYWxfc2VjdGlvbl8gaW4gc3RhdGljIG11dGV4ZXMu
Ci0gIHZvaWQgVGhyZWFkU2FmZUxhenlJbml0KCk7Ci0KLSAgLy8gUGVyIGh0dHA6Ly9ibG9ncy5t
c2RuLmNvbS9iL29sZG5ld3RoaW5nL2FyY2hpdmUvMjAwNC8wMi8yMy83ODM5NS5hc3B4LAotICAv
LyB3ZSBhc3N1bWUgdGhhdCAwIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRocmVhZCBJRHMuCi0g
IHVuc2lnbmVkIGludCBvd25lcl90aHJlYWRfaWRfOwotCi0gIC8vIEZvciBzdGF0aWMgbXV0ZXhl
cywgd2UgcmVseSBvbiB0aGVzZSBtZW1iZXJzIGJlaW5nIGluaXRpYWxpemVkIHRvIHplcm9zCi0g
IC8vIGJ5IHRoZSBsaW5rZXIuCi0gIE11dGV4VHlwZSB0eXBlXzsKLSAgbG9uZyBjcml0aWNhbF9z
ZWN0aW9uX2luaXRfcGhhc2VfOyAgLy8gTk9MSU5UCi0gIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT04q
IGNyaXRpY2FsX3NlY3Rpb25fOwotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8o
TXV0ZXgpOwotfTsKLQotIyBkZWZpbmUgR1RFU1RfREVDTEFSRV9TVEFUSUNfTVVURVhfKG11dGV4
KSBcCi0gICAgZXh0ZXJuIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok11dGV4IG11dGV4Ci0KLSMgZGVm
aW5lIEdURVNUX0RFRklORV9TVEFUSUNfTVVURVhfKG11dGV4KSBcCi0gICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6TXV0ZXggbXV0ZXgoOjp0ZXN0aW5nOjppbnRlcm5hbDo6TXV0ZXg6OmtTdGF0aWNN
dXRleCkKLQotLy8gV2UgY2Fubm90IG5hbWUgdGhpcyBjbGFzcyBNdXRleExvY2sgYmVjYXVzZSB0
aGUgY3RvciBkZWNsYXJhdGlvbiB3b3VsZAotLy8gY29uZmxpY3Qgd2l0aCBhIG1hY3JvIG5hbWVk
IE11dGV4TG9jaywgd2hpY2ggaXMgZGVmaW5lZCBvbiBzb21lCi0vLyBwbGF0Zm9ybXMuIFRoYXQg
bWFjcm8gaXMgdXNlZCBhcyBhIGRlZmVuc2l2ZSBtZWFzdXJlIHRvIHByZXZlbnQgYWdhaW5zdAot
Ly8gaW5hZHZlcnRlbnQgbWlzdXNlcyBvZiBNdXRleExvY2sgbGlrZSAiTXV0ZXhMb2NrKCZtdSki
IHJhdGhlciB0aGFuCi0vLyAiTXV0ZXhMb2NrIGwoJm11KSIuICBIZW5jZSB0aGUgdHlwZWRlZiB0
cmljayBiZWxvdy4KLWNsYXNzIEdUZXN0TXV0ZXhMb2NrIHsKLSBwdWJsaWM6Ci0gIGV4cGxpY2l0
IEdUZXN0TXV0ZXhMb2NrKE11dGV4KiBtdXRleCkKLSAgICAgIDogbXV0ZXhfKG11dGV4KSB7IG11
dGV4Xy0+TG9jaygpOyB9Ci0KLSAgfkdUZXN0TXV0ZXhMb2NrKCkgeyBtdXRleF8tPlVubG9jaygp
OyB9Ci0KLSBwcml2YXRlOgotICBNdXRleCogY29uc3QgbXV0ZXhfOwotCi0gIEdURVNUX0RJU0FM
TE9XX0NPUFlfQU5EX0FTU0lHTl8oR1Rlc3RNdXRleExvY2spOwotfTsKLQotdHlwZWRlZiBHVGVz
dE11dGV4TG9jayBNdXRleExvY2s7Ci0KLS8vIEJhc2UgY2xhc3MgZm9yIFZhbHVlSG9sZGVyPFQ+
LiAgQWxsb3dzIGEgY2FsbGVyIHRvIGhvbGQgYW5kIGRlbGV0ZSBhIHZhbHVlCi0vLyB3aXRob3V0
IGtub3dpbmcgaXRzIHR5cGUuCi1jbGFzcyBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSB7Ci0g
cHVibGljOgotICB2aXJ0dWFsIH5UaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSgpIHt9Ci19Owot
Ci0vLyBQcm92aWRlcyBhIHdheSBmb3IgYSB0aHJlYWQgdG8gc2VuZCBub3RpZmljYXRpb25zIHRv
IGEgVGhyZWFkTG9jYWwKLS8vIHJlZ2FyZGxlc3Mgb2YgaXRzIHBhcmFtZXRlciB0eXBlLgotY2xh
c3MgVGhyZWFkTG9jYWxCYXNlIHsKLSBwdWJsaWM6Ci0gIC8vIENyZWF0ZXMgYSBuZXcgVmFsdWVI
b2xkZXI8VD4gb2JqZWN0IGhvbGRpbmcgYSBkZWZhdWx0IHZhbHVlIHBhc3NlZCB0bwotICAvLyB0
aGlzIFRocmVhZExvY2FsPFQ+J3MgY29uc3RydWN0b3IgYW5kIHJldHVybnMgaXQuICBJdCBpcyB0
aGUgY2FsbGVyJ3MKLSAgLy8gcmVzcG9uc2liaWxpdHkgbm90IHRvIGNhbGwgdGhpcyB3aGVuIHRo
ZSBUaHJlYWRMb2NhbDxUPiBpbnN0YW5jZSBhbHJlYWR5Ci0gIC8vIGhhcyBhIHZhbHVlIG9uIHRo
ZSBjdXJyZW50IHRocmVhZC4KLSAgdmlydHVhbCBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSog
TmV3VmFsdWVGb3JDdXJyZW50VGhyZWFkKCkgY29uc3QgPSAwOwotCi0gcHJvdGVjdGVkOgotICBU
aHJlYWRMb2NhbEJhc2UoKSB7fQotICB2aXJ0dWFsIH5UaHJlYWRMb2NhbEJhc2UoKSB7fQotCi0g
cHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUaHJlYWRMb2NhbEJh
c2UpOwotfTsKLQotLy8gTWFwcyBhIHRocmVhZCB0byBhIHNldCBvZiBUaHJlYWRMb2NhbHMgdGhh
dCBoYXZlIHZhbHVlcyBpbnN0YW50aWF0ZWQgb24gdGhhdAotLy8gdGhyZWFkIGFuZCBub3RpZmll
cyB0aGVtIHdoZW4gdGhlIHRocmVhZCBleGl0cy4gIEEgVGhyZWFkTG9jYWwgaW5zdGFuY2UgaXMK
LS8vIGV4cGVjdGVkIHRvIHBlcnNpc3QgdW50aWwgYWxsIHRocmVhZHMgaXQgaGFzIHZhbHVlcyBv
biBoYXZlIHRlcm1pbmF0ZWQuCi1jbGFzcyBHVEVTVF9BUElfIFRocmVhZExvY2FsUmVnaXN0cnkg
ewotIHB1YmxpYzoKLSAgLy8gUmVnaXN0ZXJzIHRocmVhZF9sb2NhbF9pbnN0YW5jZSBhcyBoYXZp
bmcgdmFsdWUgb24gdGhlIGN1cnJlbnQgdGhyZWFkLgotICAvLyBSZXR1cm5zIGEgdmFsdWUgdGhh
dCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgdGhyZWFkIGZyb20gb3RoZXIgdGhyZWFkcy4K
LSAgc3RhdGljIFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlKiBHZXRWYWx1ZU9uQ3VycmVudFRo
cmVhZCgKLSAgICAgIGNvbnN0IFRocmVhZExvY2FsQmFzZSogdGhyZWFkX2xvY2FsX2luc3RhbmNl
KTsKLQotICAvLyBJbnZva2VkIHdoZW4gYSBUaHJlYWRMb2NhbCBpbnN0YW5jZSBpcyBkZXN0cm95
ZWQuCi0gIHN0YXRpYyB2b2lkIE9uVGhyZWFkTG9jYWxEZXN0cm95ZWQoCi0gICAgICBjb25zdCBU
aHJlYWRMb2NhbEJhc2UqIHRocmVhZF9sb2NhbF9pbnN0YW5jZSk7Ci19OwotCi1jbGFzcyBHVEVT
VF9BUElfIFRocmVhZFdpdGhQYXJhbUJhc2UgewotIHB1YmxpYzoKLSAgdm9pZCBKb2luKCk7Ci0K
LSBwcm90ZWN0ZWQ6Ci0gIGNsYXNzIFJ1bm5hYmxlIHsKLSAgIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5SdW5uYWJsZSgpIHt9Ci0gICAgdmlydHVhbCB2b2lkIFJ1bigpID0gMDsKLSAgfTsKLQotICBU
aHJlYWRXaXRoUGFyYW1CYXNlKFJ1bm5hYmxlICpydW5uYWJsZSwgTm90aWZpY2F0aW9uKiB0aHJl
YWRfY2FuX3N0YXJ0KTsKLSAgdmlydHVhbCB+VGhyZWFkV2l0aFBhcmFtQmFzZSgpOwotCi0gcHJp
dmF0ZToKLSAgQXV0b0hhbmRsZSB0aHJlYWRfOwotfTsKLQotLy8gSGVscGVyIGNsYXNzIGZvciB0
ZXN0aW5nIEdvb2dsZSBUZXN0J3MgbXVsdGktdGhyZWFkaW5nIGNvbnN0cnVjdHMuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFRocmVhZFdpdGhQYXJhbSA6IHB1YmxpYyBUaHJlYWRXaXRo
UGFyYW1CYXNlIHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgdm9pZCBVc2VyVGhyZWFkRnVuYyhUKTsK
LQotICBUaHJlYWRXaXRoUGFyYW0oVXNlclRocmVhZEZ1bmMqIGZ1bmMsIFQgcGFyYW0sIE5vdGlm
aWNhdGlvbiogdGhyZWFkX2Nhbl9zdGFydCkKLSAgICAgIDogVGhyZWFkV2l0aFBhcmFtQmFzZShu
ZXcgUnVubmFibGVJbXBsKGZ1bmMsIHBhcmFtKSwgdGhyZWFkX2Nhbl9zdGFydCkgewotICB9Ci0g
IHZpcnR1YWwgflRocmVhZFdpdGhQYXJhbSgpIHt9Ci0KLSBwcml2YXRlOgotICBjbGFzcyBSdW5u
YWJsZUltcGwgOiBwdWJsaWMgUnVubmFibGUgewotICAgcHVibGljOgotICAgIFJ1bm5hYmxlSW1w
bChVc2VyVGhyZWFkRnVuYyogZnVuYywgVCBwYXJhbSkKLSAgICAgICAgOiBmdW5jXyhmdW5jKSwK
LSAgICAgICAgICBwYXJhbV8ocGFyYW0pIHsKLSAgICB9Ci0gICAgdmlydHVhbCB+UnVubmFibGVJ
bXBsKCkge30KLSAgICB2aXJ0dWFsIHZvaWQgUnVuKCkgewotICAgICAgZnVuY18ocGFyYW1fKTsK
LSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgVXNlclRocmVhZEZ1bmMqIGNvbnN0IGZ1bmNfOwot
ICAgIGNvbnN0IFQgcGFyYW1fOwotCi0gICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdO
XyhSdW5uYWJsZUltcGwpOwotICB9OwotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lH
Tl8oVGhyZWFkV2l0aFBhcmFtKTsKLX07Ci0KLS8vIEltcGxlbWVudHMgdGhyZWFkLWxvY2FsIHN0
b3JhZ2Ugb24gV2luZG93cyBzeXN0ZW1zLgotLy8KLS8vICAgLy8gVGhyZWFkIDEKLS8vICAgVGhy
ZWFkTG9jYWw8aW50PiB0bCgxMDApOyAgLy8gMTAwIGlzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciBl
YWNoIHRocmVhZC4KLS8vCi0vLyAgIC8vIFRocmVhZCAyCi0vLyAgIHRsLnNldCgxNTApOyAgLy8g
Q2hhbmdlcyB0aGUgdmFsdWUgZm9yIHRocmVhZCAyIG9ubHkuCi0vLyAgIEVYUEVDVF9FUSgxNTAs
IHRsLmdldCgpKTsKLS8vCi0vLyAgIC8vIFRocmVhZCAxCi0vLyAgIEVYUEVDVF9FUSgxMDAsIHRs
LmdldCgpKTsgIC8vIEluIHRocmVhZCAxLCB0bCBoYXMgdGhlIG9yaWdpbmFsIHZhbHVlLgotLy8g
ICB0bC5zZXQoMjAwKTsKLS8vICAgRVhQRUNUX0VRKDIwMCwgdGwuZ2V0KCkpOwotLy8KLS8vIFRo
ZSB0ZW1wbGF0ZSB0eXBlIGFyZ3VtZW50IFQgbXVzdCBoYXZlIGEgcHVibGljIGNvcHkgY29uc3Ry
dWN0b3IuCi0vLyBJbiBhZGRpdGlvbiwgdGhlIGRlZmF1bHQgVGhyZWFkTG9jYWwgY29uc3RydWN0
b3IgcmVxdWlyZXMgVCB0byBoYXZlCi0vLyBhIHB1YmxpYyBkZWZhdWx0IGNvbnN0cnVjdG9yLgot
Ly8KLS8vIFRoZSB1c2VycyBvZiBhIFRoZWFkTG9jYWwgaW5zdGFuY2UgaGF2ZSB0byBtYWtlIHN1
cmUgdGhhdCBhbGwgYnV0IG9uZQotLy8gdGhyZWFkcyAoaW5jbHVkaW5nIHRoZSBtYWluIG9uZSkg
dXNpbmcgdGhhdCBpbnN0YW5jZSBoYXZlIGV4aXRlZCBiZWZvcmUKLS8vIGRlc3Ryb3lpbmcgaXQu
IE90aGVyd2lzZSwgdGhlIHBlci10aHJlYWQgb2JqZWN0cyBtYW5hZ2VkIGZvciB0aGVtIGJ5IHRo
ZQotLy8gVGhyZWFkTG9jYWwgaW5zdGFuY2UgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGRlc3Ry
b3llZCBvbiBhbGwgcGxhdGZvcm1zLgotLy8KLS8vIEdvb2dsZSBUZXN0IG9ubHkgdXNlcyBnbG9i
YWwgVGhyZWFkTG9jYWwgb2JqZWN0cy4gIFRoYXQgbWVhbnMgdGhleQotLy8gd2lsbCBkaWUgYWZ0
ZXIgbWFpbigpIGhhcyByZXR1cm5lZC4gIFRoZXJlZm9yZSwgbm8gcGVyLXRocmVhZAotLy8gb2Jq
ZWN0IG1hbmFnZWQgYnkgR29vZ2xlIFRlc3Qgd2lsbCBiZSBsZWFrZWQgYXMgbG9uZyBhcyBhbGwg
dGhyZWFkcwotLy8gdXNpbmcgR29vZ2xlIFRlc3QgaGF2ZSBleGl0ZWQgd2hlbiBtYWluKCkgcmV0
dXJucy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVGhyZWFkTG9jYWwgOiBwdWJsaWMg
VGhyZWFkTG9jYWxCYXNlIHsKLSBwdWJsaWM6Ci0gIFRocmVhZExvY2FsKCkgOiBkZWZhdWx0X2Zh
Y3RvcnlfKG5ldyBEZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KCkpIHt9Ci0gIGV4cGxpY2l0IFRo
cmVhZExvY2FsKGNvbnN0IFQmIHZhbHVlKQotICAgICAgOiBkZWZhdWx0X2ZhY3RvcnlfKG5ldyBJ
bnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeSh2YWx1ZSkpIHt9Ci0KLSAgflRocmVhZExvY2FsKCkg
eyBUaHJlYWRMb2NhbFJlZ2lzdHJ5OjpPblRocmVhZExvY2FsRGVzdHJveWVkKHRoaXMpOyB9Ci0K
LSAgVCogcG9pbnRlcigpIHsgcmV0dXJuIEdldE9yQ3JlYXRlVmFsdWUoKTsgfQotICBjb25zdCBU
KiBwb2ludGVyKCkgY29uc3QgeyByZXR1cm4gR2V0T3JDcmVhdGVWYWx1ZSgpOyB9Ci0gIGNvbnN0
IFQmIGdldCgpIGNvbnN0IHsgcmV0dXJuICpwb2ludGVyKCk7IH0KLSAgdm9pZCBzZXQoY29uc3Qg
VCYgdmFsdWUpIHsgKnBvaW50ZXIoKSA9IHZhbHVlOyB9Ci0KLSBwcml2YXRlOgotICAvLyBIb2xk
cyBhIHZhbHVlIG9mIFQuICBDYW4gYmUgZGVsZXRlZCB2aWEgaXRzIGJhc2UgY2xhc3Mgd2l0aG91
dCB0aGUgY2FsbGVyCi0gIC8vIGtub3dpbmcgdGhlIHR5cGUgb2YgVC4KLSAgY2xhc3MgVmFsdWVI
b2xkZXIgOiBwdWJsaWMgVGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2UgewotICAgcHVibGljOgot
ICAgIFZhbHVlSG9sZGVyKCkgOiB2YWx1ZV8oKSB7fQotICAgIGV4cGxpY2l0IFZhbHVlSG9sZGVy
KGNvbnN0IFQmIHZhbHVlKSA6IHZhbHVlXyh2YWx1ZSkge30KLQotICAgIFQqIHBvaW50ZXIoKSB7
IHJldHVybiAmdmFsdWVfOyB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgVCB2YWx1ZV87Ci0gICAgR1RF
U1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhWYWx1ZUhvbGRlcik7Ci0gIH07Ci0KLQotICBU
KiBHZXRPckNyZWF0ZVZhbHVlKCkgY29uc3QgewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxWYWx1
ZUhvbGRlcio+KAotICAgICAgICBUaHJlYWRMb2NhbFJlZ2lzdHJ5OjpHZXRWYWx1ZU9uQ3VycmVu
dFRocmVhZCh0aGlzKSktPnBvaW50ZXIoKTsKLSAgfQotCi0gIHZpcnR1YWwgVGhyZWFkTG9jYWxW
YWx1ZUhvbGRlckJhc2UqIE5ld1ZhbHVlRm9yQ3VycmVudFRocmVhZCgpIGNvbnN0IHsKLSAgICBy
ZXR1cm4gZGVmYXVsdF9mYWN0b3J5Xy0+TWFrZU5ld0hvbGRlcigpOwotICB9Ci0KLSAgY2xhc3Mg
VmFsdWVIb2xkZXJGYWN0b3J5IHsKLSAgIHB1YmxpYzoKLSAgICBWYWx1ZUhvbGRlckZhY3Rvcnko
KSB7fQotICAgIHZpcnR1YWwgflZhbHVlSG9sZGVyRmFjdG9yeSgpIHt9Ci0gICAgdmlydHVhbCBW
YWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0ID0gMDsKLQotICAgcHJpdmF0ZToKLSAg
ICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFZhbHVlSG9sZGVyRmFjdG9yeSk7Ci0g
IH07Ci0KLSAgY2xhc3MgRGVmYXVsdFZhbHVlSG9sZGVyRmFjdG9yeSA6IHB1YmxpYyBWYWx1ZUhv
bGRlckZhY3RvcnkgewotICAgcHVibGljOgotICAgIERlZmF1bHRWYWx1ZUhvbGRlckZhY3Rvcnko
KSB7fQotICAgIHZpcnR1YWwgVmFsdWVIb2xkZXIqIE1ha2VOZXdIb2xkZXIoKSBjb25zdCB7IHJl
dHVybiBuZXcgVmFsdWVIb2xkZXIoKTsgfQotCi0gICBwcml2YXRlOgotICAgIEdURVNUX0RJU0FM
TE9XX0NPUFlfQU5EX0FTU0lHTl8oRGVmYXVsdFZhbHVlSG9sZGVyRmFjdG9yeSk7Ci0gIH07Ci0K
LSAgY2xhc3MgSW5zdGFuY2VWYWx1ZUhvbGRlckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJG
YWN0b3J5IHsKLSAgIHB1YmxpYzoKLSAgICBleHBsaWNpdCBJbnN0YW5jZVZhbHVlSG9sZGVyRmFj
dG9yeShjb25zdCBUJiB2YWx1ZSkgOiB2YWx1ZV8odmFsdWUpIHt9Ci0gICAgdmlydHVhbCBWYWx1
ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVI
b2xkZXIodmFsdWVfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgY29uc3QgVCB2YWx1ZV87
ICAvLyBUaGUgdmFsdWUgZm9yIGVhY2ggdGhyZWFkLgotCi0gICAgR1RFU1RfRElTQUxMT1dfQ09Q
WV9BTkRfQVNTSUdOXyhJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeSk7Ci0gIH07Ci0KLSAgc2Nv
cGVkX3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+IGRlZmF1bHRfZmFjdG9yeV87Ci0KLSAgR1RFU1Rf
RElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUaHJlYWRMb2NhbCk7Ci19OwotCi0jIGVsaWYgR1RF
U1RfSEFTX1BUSFJFQUQKLQotLy8gTXV0ZXhCYXNlIGFuZCBNdXRleCBpbXBsZW1lbnQgbXV0ZXgg
b24gcHRocmVhZHMtYmFzZWQgcGxhdGZvcm1zLgotY2xhc3MgTXV0ZXhCYXNlIHsKLSBwdWJsaWM6
Ci0gIC8vIEFjcXVpcmVzIHRoaXMgbXV0ZXguCi0gIHZvaWQgTG9jaygpIHsKLSAgICBHVEVTVF9D
SEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X2xvY2soJm11dGV4XykpOwotICAgIG93
bmVyXyA9IHB0aHJlYWRfc2VsZigpOwotICAgIGhhc19vd25lcl8gPSB0cnVlOwotICB9Ci0KLSAg
Ly8gUmVsZWFzZXMgdGhpcyBtdXRleC4KLSAgdm9pZCBVbmxvY2soKSB7Ci0gICAgLy8gU2luY2Ug
dGhlIGxvY2sgaXMgYmVpbmcgcmVsZWFzZWQgdGhlIG93bmVyXyBmaWVsZCBzaG91bGQgbm8gbG9u
Z2VyIGJlCi0gICAgLy8gY29uc2lkZXJlZCB2YWxpZC4gV2UgZG9uJ3QgcHJvdGVjdCB3cml0aW5n
IHRvIGhhc19vd25lcl8gaGVyZSwgYXMgaXQncwotICAgIC8vIHRoZSBjYWxsZXIncyByZXNwb25z
aWJpbGl0eSB0byBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCB0aHJlYWQgaG9sZHMgdGhlCi0gICAg
Ly8gbXV0ZXggd2hlbiB0aGlzIGlzIGNhbGxlZC4KLSAgICBoYXNfb3duZXJfID0gZmFsc2U7Ci0g
ICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4
XykpOwotICB9Ci0KLSAgLy8gRG9lcyBub3RoaW5nIGlmIHRoZSBjdXJyZW50IHRocmVhZCBob2xk
cyB0aGUgbXV0ZXguIE90aGVyd2lzZSwgY3Jhc2hlcwotICAvLyB3aXRoIGhpZ2ggcHJvYmFiaWxp
dHkuCi0gIHZvaWQgQXNzZXJ0SGVsZCgpIGNvbnN0IHsKLSAgICBHVEVTVF9DSEVDS18oaGFzX293
bmVyXyAmJiBwdGhyZWFkX2VxdWFsKG93bmVyXywgcHRocmVhZF9zZWxmKCkpKQotICAgICAgICA8
PCAiVGhlIGN1cnJlbnQgdGhyZWFkIGlzIG5vdCBob2xkaW5nIHRoZSBtdXRleCBAIiA8PCB0aGlz
OwotICB9Ci0KLSAgLy8gQSBzdGF0aWMgbXV0ZXggbWF5IGJlIHVzZWQgYmVmb3JlIG1haW4oKSBp
cyBlbnRlcmVkLiAgSXQgbWF5IGV2ZW4KLSAgLy8gYmUgdXNlZCBiZWZvcmUgdGhlIGR5bmFtaWMg
aW5pdGlhbGl6YXRpb24gc3RhZ2UuICBUaGVyZWZvcmUgd2UKLSAgLy8gbXVzdCBiZSBhYmxlIHRv
IGluaXRpYWxpemUgYSBzdGF0aWMgbXV0ZXggb2JqZWN0IGF0IGxpbmsgdGltZS4KLSAgLy8gVGhp
cyBtZWFucyBNdXRleEJhc2UgaGFzIHRvIGJlIGEgUE9EIGFuZCBpdHMgbWVtYmVyIHZhcmlhYmxl
cwotICAvLyBoYXZlIHRvIGJlIHB1YmxpYy4KLSBwdWJsaWM6Ci0gIHB0aHJlYWRfbXV0ZXhfdCBt
dXRleF87ICAvLyBUaGUgdW5kZXJseWluZyBwdGhyZWFkIG11dGV4LgotICAvLyBoYXNfb3duZXJf
IGluZGljYXRlcyB3aGV0aGVyIHRoZSBvd25lcl8gZmllbGQgYmVsb3cgY29udGFpbnMgYSB2YWxp
ZCB0aHJlYWQKLSAgLy8gSUQgYW5kIGlzIHRoZXJlZm9yZSBzYWZlIHRvIGluc3BlY3QgKGUuZy4s
IHRvIHVzZSBpbiBwdGhyZWFkX2VxdWFsKCkpLiBBbGwKLSAgLy8gYWNjZXNzZXMgdG8gdGhlIG93
bmVyXyBmaWVsZCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGEgY2hlY2sgb2YgdGhpcyBmaWVsZC4K
LSAgLy8gQW4gYWx0ZXJuYXRpdmUgbWlnaHQgYmUgdG8gbWVtc2V0KCkgb3duZXJfIHRvIGFsbCB6
ZXJvcywgYnV0IHRoZXJlJ3Mgbm8KLSAgLy8gZ3VhcmFudGVlIHRoYXQgYSB6ZXJvJ2QgcHRocmVh
ZF90IGlzIG5lY2Vzc2FyaWx5IGludmFsaWQgb3IgZXZlbiBkaWZmZXJlbnQKLSAgLy8gZnJvbSBw
dGhyZWFkX3NlbGYoKS4KLSAgYm9vbCBoYXNfb3duZXJfOwotICBwdGhyZWFkX3Qgb3duZXJfOyAg
Ly8gVGhlIHRocmVhZCBob2xkaW5nIHRoZSBtdXRleC4KLX07Ci0KLS8vIEZvcndhcmQtZGVjbGFy
ZXMgYSBzdGF0aWMgbXV0ZXguCi0jICBkZWZpbmUgR1RFU1RfREVDTEFSRV9TVEFUSUNfTVVURVhf
KG11dGV4KSBcCi0gICAgIGV4dGVybiA6OnRlc3Rpbmc6OmludGVybmFsOjpNdXRleEJhc2UgbXV0
ZXgKLQotLy8gRGVmaW5lcyBhbmQgc3RhdGljYWxseSAoaS5lLiBhdCBsaW5rIHRpbWUpIGluaXRp
YWxpemVzIGEgc3RhdGljIG11dGV4LgotIyAgZGVmaW5lIEdURVNUX0RFRklORV9TVEFUSUNfTVVU
RVhfKG11dGV4KSBcCi0gICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok11dGV4QmFzZSBtdXRleCA9
IHsgUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUiwgZmFsc2UsIHB0aHJlYWRfdCgpIH0KLQotLy8g
VGhlIE11dGV4IGNsYXNzIGNhbiBvbmx5IGJlIHVzZWQgZm9yIG11dGV4ZXMgY3JlYXRlZCBhdCBy
dW50aW1lLiBJdAotLy8gc2hhcmVzIGl0cyBBUEkgd2l0aCBNdXRleEJhc2Ugb3RoZXJ3aXNlLgot
Y2xhc3MgTXV0ZXggOiBwdWJsaWMgTXV0ZXhCYXNlIHsKLSBwdWJsaWM6Ci0gIE11dGV4KCkgewot
ICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXhf
LCBOVUxMKSk7Ci0gICAgaGFzX293bmVyXyA9IGZhbHNlOwotICB9Ci0gIH5NdXRleCgpIHsKLSAg
ICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X2Rlc3Ryb3koJm11dGV4
XykpOwotICB9Ci0KLSBwcml2YXRlOgotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KE11dGV4KTsKLX07Ci0KLS8vIFdlIGNhbm5vdCBuYW1lIHRoaXMgY2xhc3MgTXV0ZXhMb2NrIGJl
Y2F1c2UgdGhlIGN0b3IgZGVjbGFyYXRpb24gd291bGQKLS8vIGNvbmZsaWN0IHdpdGggYSBtYWNy
byBuYW1lZCBNdXRleExvY2ssIHdoaWNoIGlzIGRlZmluZWQgb24gc29tZQotLy8gcGxhdGZvcm1z
LiBUaGF0IG1hY3JvIGlzIHVzZWQgYXMgYSBkZWZlbnNpdmUgbWVhc3VyZSB0byBwcmV2ZW50IGFn
YWluc3QKLS8vIGluYWR2ZXJ0ZW50IG1pc3VzZXMgb2YgTXV0ZXhMb2NrIGxpa2UgIk11dGV4TG9j
aygmbXUpIiByYXRoZXIgdGhhbgotLy8gIk11dGV4TG9jayBsKCZtdSkiLiAgSGVuY2UgdGhlIHR5
cGVkZWYgdHJpY2sgYmVsb3cuCi1jbGFzcyBHVGVzdE11dGV4TG9jayB7Ci0gcHVibGljOgotICBl
eHBsaWNpdCBHVGVzdE11dGV4TG9jayhNdXRleEJhc2UqIG11dGV4KQotICAgICAgOiBtdXRleF8o
bXV0ZXgpIHsgbXV0ZXhfLT5Mb2NrKCk7IH0KLQotICB+R1Rlc3RNdXRleExvY2soKSB7IG11dGV4
Xy0+VW5sb2NrKCk7IH0KLQotIHByaXZhdGU6Ci0gIE11dGV4QmFzZSogY29uc3QgbXV0ZXhfOwot
Ci0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oR1Rlc3RNdXRleExvY2spOwotfTsK
LQotdHlwZWRlZiBHVGVzdE11dGV4TG9jayBNdXRleExvY2s7Ci0KLS8vIEhlbHBlcnMgZm9yIFRo
cmVhZExvY2FsLgotCi0vLyBwdGhyZWFkX2tleV9jcmVhdGUoKSByZXF1aXJlcyBEZWxldGVUaHJl
YWRMb2NhbFZhbHVlKCkgdG8gaGF2ZQotLy8gQy1saW5rYWdlLiAgVGhlcmVmb3JlIGl0IGNhbm5v
dCBiZSB0ZW1wbGF0aXplZCB0byBhY2Nlc3MKLS8vIFRocmVhZExvY2FsPFQ+LiAgSGVuY2UgdGhl
IG5lZWQgZm9yIGNsYXNzCi0vLyBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZS4KLWNsYXNzIFRo
cmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlIHsKLSBwdWJsaWM6Ci0gIHZpcnR1YWwgflRocmVhZExv
Y2FsVmFsdWVIb2xkZXJCYXNlKCkge30KLX07Ci0KLS8vIENhbGxlZCBieSBwdGhyZWFkIHRvIGRl
bGV0ZSB0aHJlYWQtbG9jYWwgZGF0YSBzdG9yZWQgYnkKLS8vIHB0aHJlYWRfc2V0c3BlY2lmaWMo
KS4KLWV4dGVybiAiQyIgaW5saW5lIHZvaWQgRGVsZXRlVGhyZWFkTG9jYWxWYWx1ZSh2b2lkKiB2
YWx1ZV9ob2xkZXIpIHsKLSAgZGVsZXRlIHN0YXRpY19jYXN0PFRocmVhZExvY2FsVmFsdWVIb2xk
ZXJCYXNlKj4odmFsdWVfaG9sZGVyKTsKLX0KLQotLy8gSW1wbGVtZW50cyB0aHJlYWQtbG9jYWwg
c3RvcmFnZSBvbiBwdGhyZWFkcy1iYXNlZCBzeXN0ZW1zLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1jbGFzcyBHVEVTVF9BUElfIFRocmVhZExvY2FsIHsKLSBwdWJsaWM6Ci0gIFRocmVhZExvY2Fs
KCkKLSAgICAgIDoga2V5XyhDcmVhdGVLZXkoKSksIGRlZmF1bHRfZmFjdG9yeV8obmV3IERlZmF1
bHRWYWx1ZUhvbGRlckZhY3RvcnkoKSkge30KLSAgZXhwbGljaXQgVGhyZWFkTG9jYWwoY29uc3Qg
VCYgdmFsdWUpCi0gICAgICA6IGtleV8oQ3JlYXRlS2V5KCkpLAotICAgICAgICBkZWZhdWx0X2Zh
Y3RvcnlfKG5ldyBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeSh2YWx1ZSkpIHt9Ci0KLSAgflRo
cmVhZExvY2FsKCkgewotICAgIC8vIERlc3Ryb3lzIHRoZSBtYW5hZ2VkIG9iamVjdCBmb3IgdGhl
IGN1cnJlbnQgdGhyZWFkLCBpZiBhbnkuCi0gICAgRGVsZXRlVGhyZWFkTG9jYWxWYWx1ZShwdGhy
ZWFkX2dldHNwZWNpZmljKGtleV8pKTsKLQotICAgIC8vIFJlbGVhc2VzIHJlc291cmNlcyBhc3Nv
Y2lhdGVkIHdpdGggdGhlIGtleS4gIFRoaXMgd2lsbCAqbm90KgotICAgIC8vIGRlbGV0ZSBtYW5h
Z2VkIG9iamVjdHMgZm9yIG90aGVyIHRocmVhZHMuCi0gICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VD
Q0VTU18ocHRocmVhZF9rZXlfZGVsZXRlKGtleV8pKTsKLSAgfQotCi0gIFQqIHBvaW50ZXIoKSB7
IHJldHVybiBHZXRPckNyZWF0ZVZhbHVlKCk7IH0KLSAgY29uc3QgVCogcG9pbnRlcigpIGNvbnN0
IHsgcmV0dXJuIEdldE9yQ3JlYXRlVmFsdWUoKTsgfQotICBjb25zdCBUJiBnZXQoKSBjb25zdCB7
IHJldHVybiAqcG9pbnRlcigpOyB9Ci0gIHZvaWQgc2V0KGNvbnN0IFQmIHZhbHVlKSB7ICpwb2lu
dGVyKCkgPSB2YWx1ZTsgfQotCi0gcHJpdmF0ZToKLSAgLy8gSG9sZHMgYSB2YWx1ZSBvZiB0eXBl
IFQuCi0gIGNsYXNzIFZhbHVlSG9sZGVyIDogcHVibGljIFRocmVhZExvY2FsVmFsdWVIb2xkZXJC
YXNlIHsKLSAgIHB1YmxpYzoKLSAgICBWYWx1ZUhvbGRlcigpIDogdmFsdWVfKCkge30KLSAgICBl
eHBsaWNpdCBWYWx1ZUhvbGRlcihjb25zdCBUJiB2YWx1ZSkgOiB2YWx1ZV8odmFsdWUpIHt9Ci0K
LSAgICBUKiBwb2ludGVyKCkgeyByZXR1cm4gJnZhbHVlXzsgfQotCi0gICBwcml2YXRlOgotICAg
IFQgdmFsdWVfOwotICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVmFsdWVIb2xk
ZXIpOwotICB9OwotCi0gIHN0YXRpYyBwdGhyZWFkX2tleV90IENyZWF0ZUtleSgpIHsKLSAgICBw
dGhyZWFkX2tleV90IGtleTsKLSAgICAvLyBXaGVuIGEgdGhyZWFkIGV4aXRzLCBEZWxldGVUaHJl
YWRMb2NhbFZhbHVlKCkgd2lsbCBiZSBjYWxsZWQgb24KLSAgICAvLyB0aGUgb2JqZWN0IG1hbmFn
ZWQgZm9yIHRoYXQgdGhyZWFkLgotICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKAotICAg
ICAgICBwdGhyZWFkX2tleV9jcmVhdGUoJmtleSwgJkRlbGV0ZVRocmVhZExvY2FsVmFsdWUpKTsK
LSAgICByZXR1cm4ga2V5OwotICB9Ci0KLSAgVCogR2V0T3JDcmVhdGVWYWx1ZSgpIGNvbnN0IHsK
LSAgICBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSogY29uc3QgaG9sZGVyID0KLSAgICAgICAg
c3RhdGljX2Nhc3Q8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2UqPihwdGhyZWFkX2dldHNwZWNp
ZmljKGtleV8pKTsKLSAgICBpZiAoaG9sZGVyICE9IE5VTEwpIHsKLSAgICAgIHJldHVybiBDaGVj
a2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8VmFsdWVIb2xkZXI+KGhvbGRlciktPnBvaW50ZXIoKTsK
LSAgICB9Ci0KLSAgICBWYWx1ZUhvbGRlciogY29uc3QgbmV3X2hvbGRlciA9IGRlZmF1bHRfZmFj
dG9yeV8tPk1ha2VOZXdIb2xkZXIoKTsKLSAgICBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSog
Y29uc3QgaG9sZGVyX2Jhc2UgPSBuZXdfaG9sZGVyOwotICAgIEdURVNUX0NIRUNLX1BPU0lYX1NV
Q0NFU1NfKHB0aHJlYWRfc2V0c3BlY2lmaWMoa2V5XywgaG9sZGVyX2Jhc2UpKTsKLSAgICByZXR1
cm4gbmV3X2hvbGRlci0+cG9pbnRlcigpOwotICB9Ci0KLSAgY2xhc3MgVmFsdWVIb2xkZXJGYWN0
b3J5IHsKLSAgIHB1YmxpYzoKLSAgICBWYWx1ZUhvbGRlckZhY3RvcnkoKSB7fQotICAgIHZpcnR1
YWwgflZhbHVlSG9sZGVyRmFjdG9yeSgpIHt9Ci0gICAgdmlydHVhbCBWYWx1ZUhvbGRlciogTWFr
ZU5ld0hvbGRlcigpIGNvbnN0ID0gMDsKLQotICAgcHJpdmF0ZToKLSAgICBHVEVTVF9ESVNBTExP
V19DT1BZX0FORF9BU1NJR05fKFZhbHVlSG9sZGVyRmFjdG9yeSk7Ci0gIH07Ci0KLSAgY2xhc3Mg
RGVmYXVsdFZhbHVlSG9sZGVyRmFjdG9yeSA6IHB1YmxpYyBWYWx1ZUhvbGRlckZhY3Rvcnkgewot
ICAgcHVibGljOgotICAgIERlZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkoKSB7fQotICAgIHZpcnR1
YWwgVmFsdWVIb2xkZXIqIE1ha2VOZXdIb2xkZXIoKSBjb25zdCB7IHJldHVybiBuZXcgVmFsdWVI
b2xkZXIoKTsgfQotCi0gICBwcml2YXRlOgotICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FT
U0lHTl8oRGVmYXVsdFZhbHVlSG9sZGVyRmFjdG9yeSk7Ci0gIH07Ci0KLSAgY2xhc3MgSW5zdGFu
Y2VWYWx1ZUhvbGRlckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKLSAgIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeShjb25zdCBUJiB2
YWx1ZSkgOiB2YWx1ZV8odmFsdWUpIHt9Ci0gICAgdmlydHVhbCBWYWx1ZUhvbGRlciogTWFrZU5l
d0hvbGRlcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVIb2xkZXIodmFsdWVfKTsK
LSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgY29uc3QgVCB2YWx1ZV87ICAvLyBUaGUgdmFsdWUg
Zm9yIGVhY2ggdGhyZWFkLgotCi0gICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhJ
bnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeSk7Ci0gIH07Ci0KLSAgLy8gQSBrZXkgcHRocmVhZHMg
dXNlcyBmb3IgbG9va2luZyB1cCBwZXItdGhyZWFkIHZhbHVlcy4KLSAgY29uc3QgcHRocmVhZF9r
ZXlfdCBrZXlfOwotICBzY29wZWRfcHRyPFZhbHVlSG9sZGVyRmFjdG9yeT4gZGVmYXVsdF9mYWN0
b3J5XzsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRocmVhZExvY2FsKTsK
LX07Ci0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19NVVRFWF9BTkRfVEhSRUFEX0xPQ0FMXwotCi0j
ZWxzZSAgLy8gR1RFU1RfSVNfVEhSRUFEU0FGRQotCi0vLyBBIGR1bW15IGltcGxlbWVudGF0aW9u
IG9mIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzIChtdXRleCwgbG9jaywKLS8vIGFuZCB0aHJl
YWQtbG9jYWwgdmFyaWFibGUpLiAgTmVjZXNzYXJ5IGZvciBjb21waWxpbmcgR29vZ2xlIFRlc3Qg
d2hlcmUKLS8vIG11dGV4IGlzIG5vdCBzdXBwb3J0ZWQgLSB1c2luZyBHb29nbGUgVGVzdCBpbiBt
dWx0aXBsZSB0aHJlYWRzIGlzIG5vdAotLy8gc3VwcG9ydGVkIG9uIHN1Y2ggcGxhdGZvcm1zLgot
Ci1jbGFzcyBNdXRleCB7Ci0gcHVibGljOgotICBNdXRleCgpIHt9Ci0gIHZvaWQgTG9jaygpIHt9
Ci0gIHZvaWQgVW5sb2NrKCkge30KLSAgdm9pZCBBc3NlcnRIZWxkKCkgY29uc3Qge30KLX07Ci0K
LSMgZGVmaW5lIEdURVNUX0RFQ0xBUkVfU1RBVElDX01VVEVYXyhtdXRleCkgXAotICBleHRlcm4g
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6TXV0ZXggbXV0ZXgKLQotIyBkZWZpbmUgR1RFU1RfREVGSU5F
X1NUQVRJQ19NVVRFWF8obXV0ZXgpIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok11dGV4IG11dGV4Ci0K
LS8vIFdlIGNhbm5vdCBuYW1lIHRoaXMgY2xhc3MgTXV0ZXhMb2NrIGJlY2F1c2UgdGhlIGN0b3Ig
ZGVjbGFyYXRpb24gd291bGQKLS8vIGNvbmZsaWN0IHdpdGggYSBtYWNybyBuYW1lZCBNdXRleExv
Y2ssIHdoaWNoIGlzIGRlZmluZWQgb24gc29tZQotLy8gcGxhdGZvcm1zLiBUaGF0IG1hY3JvIGlz
IHVzZWQgYXMgYSBkZWZlbnNpdmUgbWVhc3VyZSB0byBwcmV2ZW50IGFnYWluc3QKLS8vIGluYWR2
ZXJ0ZW50IG1pc3VzZXMgb2YgTXV0ZXhMb2NrIGxpa2UgIk11dGV4TG9jaygmbXUpIiByYXRoZXIg
dGhhbgotLy8gIk11dGV4TG9jayBsKCZtdSkiLiAgSGVuY2UgdGhlIHR5cGVkZWYgdHJpY2sgYmVs
b3cuCi1jbGFzcyBHVGVzdE11dGV4TG9jayB7Ci0gcHVibGljOgotICBleHBsaWNpdCBHVGVzdE11
dGV4TG9jayhNdXRleCopIHt9ICAvLyBOT0xJTlQKLX07Ci0KLXR5cGVkZWYgR1Rlc3RNdXRleExv
Y2sgTXV0ZXhMb2NrOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIEdURVNUX0FQSV8g
VGhyZWFkTG9jYWwgewotIHB1YmxpYzoKLSAgVGhyZWFkTG9jYWwoKSA6IHZhbHVlXygpIHt9Ci0g
IGV4cGxpY2l0IFRocmVhZExvY2FsKGNvbnN0IFQmIHZhbHVlKSA6IHZhbHVlXyh2YWx1ZSkge30K
LSAgVCogcG9pbnRlcigpIHsgcmV0dXJuICZ2YWx1ZV87IH0KLSAgY29uc3QgVCogcG9pbnRlcigp
IGNvbnN0IHsgcmV0dXJuICZ2YWx1ZV87IH0KLSAgY29uc3QgVCYgZ2V0KCkgY29uc3QgeyByZXR1
cm4gdmFsdWVfOyB9Ci0gIHZvaWQgc2V0KGNvbnN0IFQmIHZhbHVlKSB7IHZhbHVlXyA9IHZhbHVl
OyB9Ci0gcHJpdmF0ZToKLSAgVCB2YWx1ZV87Ci19OwotCi0jZW5kaWYgIC8vIEdURVNUX0lTX1RI
UkVBRFNBRkUKLQotLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgcnVubmluZyBpbiB0
aGUgcHJvY2Vzcywgb3IgMCB0byBpbmRpY2F0ZSB0aGF0Ci0vLyB3ZSBjYW5ub3QgZGV0ZWN0IGl0
LgotR1RFU1RfQVBJXyBzaXplX3QgR2V0VGhyZWFkQ291bnQoKTsKLQotLy8gUGFzc2luZyBub24t
UE9EIGNsYXNzZXMgdGhyb3VnaCBlbGxpcHNpcyAoLi4uKSBjcmFzaGVzIHRoZSBBUk0KLS8vIGNv
bXBpbGVyIGFuZCBnZW5lcmF0ZXMgYSB3YXJuaW5nIGluIFN1biBTdHVkaW8gYmVmb3JlIDEydTQu
IFRoZSBOb2tpYSBTeW1iaWFuCi0vLyBhbmQgdGhlIElCTSBYTCBDL0MrKyBjb21waWxlciB0cnkg
dG8gaW5zdGFudGlhdGUgYSBjb3B5IGNvbnN0cnVjdG9yCi0vLyBmb3Igb2JqZWN0cyBwYXNzZWQg
dGhyb3VnaCBlbGxpcHNpcyAoLi4uKSwgZmFpbGluZyBmb3IgdW5jb3B5YWJsZQotLy8gb2JqZWN0
cy4gIFdlIGRlZmluZSB0aGlzIHRvIGVuc3VyZSB0aGF0IG9ubHkgUE9EIGlzIHBhc3NlZCB0aHJv
dWdoCi0vLyBlbGxpcHNpcyBvbiB0aGVzZSBzeXN0ZW1zLgotI2lmIGRlZmluZWQoX19TWU1CSUFO
MzJfXykgfHwgZGVmaW5lZChfX0lCTUNQUF9fKSB8fCBcCi0gICAgIChkZWZpbmVkKF9fU1VOUFJP
X0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTEzMCkKLS8vIFdlIGxvc2Ugc3VwcG9ydCBmb3IgTlVM
TCBkZXRlY3Rpb24gd2hlcmUgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgbGlrZQotLy8gcGFzc2luZyBu
b24tUE9EIGNsYXNzZXMgdGhyb3VnaCBlbGxpcHNpcyAoLi4uKS4KLSMgZGVmaW5lIEdURVNUX0VM
TElQU0lTX05FRURTX1BPRF8gMQotI2Vsc2UKLSMgZGVmaW5lIEdURVNUX0NBTl9DT01QQVJFX05V
TEwgMQotI2VuZGlmCi0KLS8vIFRoZSBOb2tpYSBTeW1iaWFuIGFuZCBJQk0gWEwgQy9DKysgY29t
cGlsZXJzIGNhbm5vdCBkZWNpZGUgYmV0d2VlbgotLy8gY29uc3QgVCYgYW5kIGNvbnN0IFQqIGlu
IGEgZnVuY3Rpb24gdGVtcGxhdGUuICBUaGVzZSBjb21waWxlcnMKLS8vIF9jYW5fIGRlY2lkZSBi
ZXR3ZWVuIGNsYXNzIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyBmb3IgVCBhbmQgVCosCi0vLyBz
byBhIHRyMTo6dHlwZV90cmFpdHMtbGlrZSBpc19wb2ludGVyIHdvcmtzLgotI2lmIGRlZmluZWQo
X19TWU1CSUFOMzJfXykgfHwgZGVmaW5lZChfX0lCTUNQUF9fKQotIyBkZWZpbmUgR1RFU1RfTkVF
RFNfSVNfUE9JTlRFUl8gMQotI2VuZGlmCi0KLXRlbXBsYXRlIDxib29sIGJvb2xfdmFsdWU+Ci1z
dHJ1Y3QgYm9vbF9jb25zdGFudCB7Ci0gIHR5cGVkZWYgYm9vbF9jb25zdGFudDxib29sX3ZhbHVl
PiB0eXBlOwotICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGJvb2xfdmFsdWU7Ci19OwotdGVt
cGxhdGUgPGJvb2wgYm9vbF92YWx1ZT4gY29uc3QgYm9vbCBib29sX2NvbnN0YW50PGJvb2xfdmFs
dWU+Ojp2YWx1ZTsKLQotdHlwZWRlZiBib29sX2NvbnN0YW50PGZhbHNlPiBmYWxzZV90eXBlOwot
dHlwZWRlZiBib29sX2NvbnN0YW50PHRydWU+IHRydWVfdHlwZTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFU+Ci1zdHJ1Y3QgaXNfc2FtZSA6IHB1YmxpYyBmYWxzZV90eXBlIHt9
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBpc19zYW1lPFQsIFQ+IDogcHVibGlj
IHRydWVfdHlwZSB7fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfcG9pbnRl
ciA6IHB1YmxpYyBmYWxzZV90eXBlIHt9OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVj
dCBpc19wb2ludGVyPFQqPiA6IHB1YmxpYyB0cnVlX3R5cGUge307Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBJdGVyYXRvcj4KLXN0cnVjdCBJdGVyYXRvclRyYWl0cyB7Ci0gIHR5cGVkZWYgdHlwZW5h
bWUgSXRlcmF0b3I6OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotc3RydWN0IEl0ZXJhdG9yVHJhaXRzPFQqPiB7Ci0gIHR5cGVkZWYgVCB2YWx1ZV90
eXBlOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgSXRlcmF0b3JUcmFpdHM8
Y29uc3QgVCo+IHsKLSAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Ci19OwotCi0jaWYgR1RFU1RfT1Nf
V0lORE9XUwotIyBkZWZpbmUgR1RFU1RfUEFUSF9TRVBfICJcXCIKLSMgZGVmaW5lIEdURVNUX0hB
U19BTFRfUEFUSF9TRVBfIDEKLS8vIFRoZSBiaWdnZXN0IHNpZ25lZCBpbnRlZ2VyIHR5cGUgdGhl
IGNvbXBpbGVyIHN1cHBvcnRzLgotdHlwZWRlZiBfX2ludDY0IEJpZ2dlc3RJbnQ7Ci0jZWxzZQot
IyBkZWZpbmUgR1RFU1RfUEFUSF9TRVBfICIvIgotIyBkZWZpbmUgR1RFU1RfSEFTX0FMVF9QQVRI
X1NFUF8gMAotdHlwZWRlZiBsb25nIGxvbmcgQmlnZ2VzdEludDsgIC8vIE5PTElOVAotI2VuZGlm
ICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLS8vIFV0aWxpdGllcyBmb3IgY2hhci4KLQotLy8gaXNz
cGFjZShpbnQgY2gpIGFuZCBmcmllbmRzIGFjY2VwdCBhbiB1bnNpZ25lZCBjaGFyIG9yIEVPRi4g
IGNoYXIKLS8vIG1heSBiZSBzaWduZWQsIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgKG9yIGNv
bXBpbGVyIGZsYWdzKS4KLS8vIFRoZXJlZm9yZSB3ZSBuZWVkIHRvIGNhc3QgYSBjaGFyIHRvIHVu
c2lnbmVkIGNoYXIgYmVmb3JlIGNhbGxpbmcKLS8vIGlzc3BhY2UoKSwgZXRjLgotCi1pbmxpbmUg
Ym9vbCBJc0FscGhhKGNoYXIgY2gpIHsKLSAgcmV0dXJuIGlzYWxwaGEoc3RhdGljX2Nhc3Q8dW5z
aWduZWQgY2hhcj4oY2gpKSAhPSAwOwotfQotaW5saW5lIGJvb2wgSXNBbE51bShjaGFyIGNoKSB7
Ci0gIHJldHVybiBpc2FsbnVtKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKSkgIT0gMDsK
LX0KLWlubGluZSBib29sIElzRGlnaXQoY2hhciBjaCkgewotICByZXR1cm4gaXNkaWdpdChzdGF0
aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjaCkpICE9IDA7Ci19Ci1pbmxpbmUgYm9vbCBJc0xvd2Vy
KGNoYXIgY2gpIHsKLSAgcmV0dXJuIGlzbG93ZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4o
Y2gpKSAhPSAwOwotfQotaW5saW5lIGJvb2wgSXNTcGFjZShjaGFyIGNoKSB7Ci0gIHJldHVybiBp
c3NwYWNlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKSkgIT0gMDsKLX0KLWlubGluZSBi
b29sIElzVXBwZXIoY2hhciBjaCkgewotICByZXR1cm4gaXN1cHBlcihzdGF0aWNfY2FzdDx1bnNp
Z25lZCBjaGFyPihjaCkpICE9IDA7Ci19Ci1pbmxpbmUgYm9vbCBJc1hEaWdpdChjaGFyIGNoKSB7
Ci0gIHJldHVybiBpc3hkaWdpdChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjaCkpICE9IDA7
Ci19Ci1pbmxpbmUgYm9vbCBJc1hEaWdpdCh3Y2hhcl90IGNoKSB7Ci0gIGNvbnN0IHVuc2lnbmVk
IGNoYXIgbG93X2J5dGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjaCk7Ci0gIHJldHVy
biBjaCA9PSBsb3dfYnl0ZSAmJiBpc3hkaWdpdChsb3dfYnl0ZSkgIT0gMDsKLX0KLQotaW5saW5l
IGNoYXIgVG9Mb3dlcihjaGFyIGNoKSB7Ci0gIHJldHVybiBzdGF0aWNfY2FzdDxjaGFyPih0b2xv
d2VyKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKSkpOwotfQotaW5saW5lIGNoYXIgVG9V
cHBlcihjaGFyIGNoKSB7Ci0gIHJldHVybiBzdGF0aWNfY2FzdDxjaGFyPih0b3VwcGVyKHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKSkpOwotfQotCi1pbmxpbmUgc3RkOjpzdHJpbmcgU3Ry
aXBUcmFpbGluZ1NwYWNlcyhzdGQ6OnN0cmluZyBzdHIpIHsKLSAgc3RkOjpzdHJpbmc6Oml0ZXJh
dG9yIGl0ID0gc3RyLmVuZCgpOwotICB3aGlsZSAoaXQgIT0gc3RyLmJlZ2luKCkgJiYgSXNTcGFj
ZSgqLS1pdCkpCi0gICAgaXQgPSBzdHIuZXJhc2UoaXQpOwotICByZXR1cm4gc3RyOwotfQotCi0v
LyBUaGUgdGVzdGluZzo6aW50ZXJuYWw6OnBvc2l4IG5hbWVzcGFjZSBob2xkcyB3cmFwcGVycyBm
b3IgY29tbW9uCi0vLyBQT1NJWCBmdW5jdGlvbnMuICBUaGVzZSB3cmFwcGVycyBoaWRlIHRoZSBk
aWZmZXJlbmNlcyBiZXR3ZWVuCi0vLyBXaW5kb3dzL01TVkMgYW5kIFBPU0lYIHN5c3RlbXMuICBT
aW5jZSBzb21lIGNvbXBpbGVycyBkZWZpbmUgdGhlc2UKLS8vIHN0YW5kYXJkIGZ1bmN0aW9ucyBh
cyBtYWNyb3MsIHRoZSB3cmFwcGVyIGNhbm5vdCBoYXZlIHRoZSBzYW1lIG5hbWUKLS8vIGFzIHRo
ZSB3cmFwcGVkIGZ1bmN0aW9uLgotCi1uYW1lc3BhY2UgcG9zaXggewotCi0vLyBGdW5jdGlvbnMg
d2l0aCBhIGRpZmZlcmVudCBuYW1lIG9uIFdpbmRvd3MuCi0KLSNpZiBHVEVTVF9PU19XSU5ET1dT
Ci0KLXR5cGVkZWYgc3RydWN0IF9zdGF0IFN0YXRTdHJ1Y3Q7Ci0KLSMgaWZkZWYgX19CT1JMQU5E
Q19fCi1pbmxpbmUgaW50IElzQVRUWShpbnQgZmQpIHsgcmV0dXJuIGlzYXR0eShmZCk7IH0KLWlu
bGluZSBpbnQgU3RyQ2FzZUNtcChjb25zdCBjaGFyKiBzMSwgY29uc3QgY2hhciogczIpIHsKLSAg
cmV0dXJuIHN0cmljbXAoczEsIHMyKTsKLX0KLWlubGluZSBjaGFyKiBTdHJEdXAoY29uc3QgY2hh
ciogc3JjKSB7IHJldHVybiBzdHJkdXAoc3JjKTsgfQotIyBlbHNlICAvLyAhX19CT1JMQU5EQ19f
Ci0jICBpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQotaW5saW5lIGludCBJc0FUVFkoaW50IC8q
IGZkICovKSB7IHJldHVybiAwOyB9Ci0jICBlbHNlCi1pbmxpbmUgaW50IElzQVRUWShpbnQgZmQp
IHsgcmV0dXJuIF9pc2F0dHkoZmQpOyB9Ci0jICBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19N
T0JJTEUKLWlubGluZSBpbnQgU3RyQ2FzZUNtcChjb25zdCBjaGFyKiBzMSwgY29uc3QgY2hhciog
czIpIHsKLSAgcmV0dXJuIF9zdHJpY21wKHMxLCBzMik7Ci19Ci1pbmxpbmUgY2hhciogU3RyRHVw
KGNvbnN0IGNoYXIqIHNyYykgeyByZXR1cm4gX3N0cmR1cChzcmMpOyB9Ci0jIGVuZGlmICAvLyBf
X0JPUkxBTkRDX18KLQotIyBpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQotaW5saW5lIGludCBG
aWxlTm8oRklMRSogZmlsZSkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxpbnQ+KF9maWxlbm8o
ZmlsZSkpOyB9Ci0vLyBTdGF0KCksIFJtRGlyKCksIGFuZCBJc0RpcigpIGFyZSBub3QgbmVlZGVk
IG9uIFdpbmRvd3MgQ0UgYXQgdGhpcwotLy8gdGltZSBhbmQgdGh1cyBub3QgZGVmaW5lZCB0aGVy
ZS4KLSMgZWxzZQotaW5saW5lIGludCBGaWxlTm8oRklMRSogZmlsZSkgeyByZXR1cm4gX2ZpbGVu
byhmaWxlKTsgfQotaW5saW5lIGludCBTdGF0KGNvbnN0IGNoYXIqIHBhdGgsIFN0YXRTdHJ1Y3Qq
IGJ1ZikgeyByZXR1cm4gX3N0YXQocGF0aCwgYnVmKTsgfQotaW5saW5lIGludCBSbURpcihjb25z
dCBjaGFyKiBkaXIpIHsgcmV0dXJuIF9ybWRpcihkaXIpOyB9Ci1pbmxpbmUgYm9vbCBJc0Rpcihj
b25zdCBTdGF0U3RydWN0JiBzdCkgewotICByZXR1cm4gKF9TX0lGRElSICYgc3Quc3RfbW9kZSkg
IT0gMDsKLX0KLSMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0KLSNlbHNlCi0K
LXR5cGVkZWYgc3RydWN0IHN0YXQgU3RhdFN0cnVjdDsKLQotaW5saW5lIGludCBGaWxlTm8oRklM
RSogZmlsZSkgeyByZXR1cm4gZmlsZW5vKGZpbGUpOyB9Ci1pbmxpbmUgaW50IElzQVRUWShpbnQg
ZmQpIHsgcmV0dXJuIGlzYXR0eShmZCk7IH0KLWlubGluZSBpbnQgU3RhdChjb25zdCBjaGFyKiBw
YXRoLCBTdGF0U3RydWN0KiBidWYpIHsgcmV0dXJuIHN0YXQocGF0aCwgYnVmKTsgfQotaW5saW5l
IGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikgewotICByZXR1
cm4gc3RyY2FzZWNtcChzMSwgczIpOwotfQotaW5saW5lIGNoYXIqIFN0ckR1cChjb25zdCBjaGFy
KiBzcmMpIHsgcmV0dXJuIHN0cmR1cChzcmMpOyB9Ci1pbmxpbmUgaW50IFJtRGlyKGNvbnN0IGNo
YXIqIGRpcikgeyByZXR1cm4gcm1kaXIoZGlyKTsgfQotaW5saW5lIGJvb2wgSXNEaXIoY29uc3Qg
U3RhdFN0cnVjdCYgc3QpIHsgcmV0dXJuIFNfSVNESVIoc3Quc3RfbW9kZSk7IH0KLQotI2VuZGlm
ICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLS8vIEZ1bmN0aW9ucyBkZXByZWNhdGVkIGJ5IE1TVkMg
OC4wLgotCi1HVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0OTk2IC8qIGRlcHJlY2F0
ZWQgZnVuY3Rpb24gKi8pCi0KLWlubGluZSBjb25zdCBjaGFyKiBTdHJOQ3B5KGNoYXIqIGRlc3Qs
IGNvbnN0IGNoYXIqIHNyYywgc2l6ZV90IG4pIHsKLSAgcmV0dXJuIHN0cm5jcHkoZGVzdCwgc3Jj
LCBuKTsKLX0KLQotLy8gQ2hEaXIoKSwgRlJlb3BlbigpLCBGRE9wZW4oKSwgUmVhZCgpLCBXcml0
ZSgpLCBDbG9zZSgpLCBhbmQKLS8vIFN0ckVycm9yKCkgYXJlbid0IG5lZWRlZCBvbiBXaW5kb3dz
IENFIGF0IHRoaXMgdGltZSBhbmQgdGh1cyBub3QKLS8vIGRlZmluZWQgdGhlcmUuCi0KLSNpZiAh
R1RFU1RfT1NfV0lORE9XU19NT0JJTEUgJiYgIUdURVNUX09TX1dJTkRPV1NfUEhPTkUgJiYgIUdU
RVNUX09TX1dJTkRPV1NfUlQKLWlubGluZSBpbnQgQ2hEaXIoY29uc3QgY2hhciogZGlyKSB7IHJl
dHVybiBjaGRpcihkaXIpOyB9Ci0jZW5kaWYKLWlubGluZSBGSUxFKiBGT3Blbihjb25zdCBjaGFy
KiBwYXRoLCBjb25zdCBjaGFyKiBtb2RlKSB7Ci0gIHJldHVybiBmb3BlbihwYXRoLCBtb2RlKTsK
LX0KLSNpZiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLWlubGluZSBGSUxFICpGUmVvcGVuKGNv
bnN0IGNoYXIqIHBhdGgsIGNvbnN0IGNoYXIqIG1vZGUsIEZJTEUqIHN0cmVhbSkgewotICByZXR1
cm4gZnJlb3BlbihwYXRoLCBtb2RlLCBzdHJlYW0pOwotfQotaW5saW5lIEZJTEUqIEZET3Blbihp
bnQgZmQsIGNvbnN0IGNoYXIqIG1vZGUpIHsgcmV0dXJuIGZkb3BlbihmZCwgbW9kZSk7IH0KLSNl
bmRpZgotaW5saW5lIGludCBGQ2xvc2UoRklMRSogZnApIHsgcmV0dXJuIGZjbG9zZShmcCk7IH0K
LSNpZiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLWlubGluZSBpbnQgUmVhZChpbnQgZmQsIHZv
aWQqIGJ1ZiwgdW5zaWduZWQgaW50IGNvdW50KSB7Ci0gIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KHJlYWQoZmQsIGJ1ZiwgY291bnQpKTsKLX0KLWlubGluZSBpbnQgV3JpdGUoaW50IGZkLCBjb25z
dCB2b2lkKiBidWYsIHVuc2lnbmVkIGludCBjb3VudCkgewotICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50Pih3cml0ZShmZCwgYnVmLCBjb3VudCkpOwotfQotaW5saW5lIGludCBDbG9zZShpbnQgZmQp
IHsgcmV0dXJuIGNsb3NlKGZkKTsgfQotaW5saW5lIGNvbnN0IGNoYXIqIFN0ckVycm9yKGludCBl
cnJudW0pIHsgcmV0dXJuIHN0cmVycm9yKGVycm51bSk7IH0KLSNlbmRpZgotaW5saW5lIGNvbnN0
IGNoYXIqIEdldEVudihjb25zdCBjaGFyKiBuYW1lKSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XU19N
T0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCi0g
IC8vIFdlIGFyZSBvbiBXaW5kb3dzIENFLCB3aGljaCBoYXMgbm8gZW52aXJvbm1lbnQgdmFyaWFi
bGVzLgotICBzdGF0aWNfY2FzdDx2b2lkPihuYW1lKTsgIC8vIFRvIHByZXZlbnQgJ3VudXNlZCBh
cmd1bWVudCcgd2FybmluZy4KLSAgcmV0dXJuIE5VTEw7Ci0jZWxpZiBkZWZpbmVkKF9fQk9STEFO
RENfXykgfHwgZGVmaW5lZChfX1N1bk9TXzVfOCkgfHwgZGVmaW5lZChfX1N1bk9TXzVfOSkKLSAg
Ly8gRW52aXJvbm1lbnQgdmFyaWFibGVzIHdoaWNoIHdlIHByb2dyYW1tYXRpY2FsbHkgY2xlYXIg
d2lsbCBiZSBzZXQgdG8gdGhlCi0gIC8vIGVtcHR5IHN0cmluZyByYXRoZXIgdGhhbiB1bnNldCAo
TlVMTCkuICBIYW5kbGUgdGhhdCBjYXNlLgotICBjb25zdCBjaGFyKiBjb25zdCBlbnYgPSBnZXRl
bnYobmFtZSk7Ci0gIHJldHVybiAoZW52ICE9IE5VTEwgJiYgZW52WzBdICE9ICdcMCcpID8gZW52
IDogTlVMTDsKLSNlbHNlCi0gIHJldHVybiBnZXRlbnYobmFtZSk7Ci0jZW5kaWYKLX0KLQotR1RF
U1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpCi0KLSNpZiBHVEVTVF9PU19XSU5ET1dTX01P
QklMRQotLy8gV2luZG93cyBDRSBoYXMgbm8gQyBsaWJyYXJ5LiBUaGUgYWJvcnQoKSBmdW5jdGlv
biBpcyB1c2VkIGluCi0vLyBzZXZlcmFsIHBsYWNlcyBpbiBHb29nbGUgVGVzdC4gVGhpcyBpbXBs
ZW1lbnRhdGlvbiBwcm92aWRlcyBhIHJlYXNvbmFibGUKLS8vIGltaXRhdGlvbiBvZiBzdGFuZGFy
ZCBiZWhhdmlvdXIuCi12b2lkIEFib3J0KCk7Ci0jZWxzZQotaW5saW5lIHZvaWQgQWJvcnQoKSB7
IGFib3J0KCk7IH0KLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLQotfSAgLy8g
bmFtZXNwYWNlIHBvc2l4Ci0KLS8vIE1TVkMgImRlcHJlY2F0ZXMiIHNucHJpbnRmIGFuZCBpc3N1
ZXMgd2FybmluZ3Mgd2hlcmV2ZXIgaXQgaXMgdXNlZC4gIEluCi0vLyBvcmRlciB0byBhdm9pZCB0
aGVzZSB3YXJuaW5ncywgd2UgbmVlZCB0byB1c2UgX3NucHJpbnRmIG9yIF9zbnByaW50Zl9zIG9u
Ci0vLyBNU1ZDLWJhc2VkIHBsYXRmb3Jtcy4gIFdlIG1hcCB0aGUgR1RFU1RfU05QUklOVEZfIG1h
Y3JvIHRvIHRoZSBhcHByb3ByaWF0ZQotLy8gZnVuY3Rpb24gaW4gb3JkZXIgdG8gYWNoaWV2ZSB0
aGF0LiAgV2UgdXNlIG1hY3JvIGRlZmluaXRpb24gaGVyZSBiZWNhdXNlCi0vLyBzbnByaW50ZiBp
cyBhIHZhcmlhZGljIGZ1bmN0aW9uLgotI2lmIF9NU0NfVkVSID49IDE0MDAgJiYgIUdURVNUX09T
X1dJTkRPV1NfTU9CSUxFCi0vLyBNU1ZDIDIwMDUgYW5kIGFib3ZlIHN1cHBvcnQgdmFyaWFkaWMg
bWFjcm9zLgotIyBkZWZpbmUgR1RFU1RfU05QUklOVEZfKGJ1ZmZlciwgc2l6ZSwgZm9ybWF0LCAu
Li4pIFwKLSAgICAgX3NucHJpbnRmX3MoYnVmZmVyLCBzaXplLCBzaXplLCBmb3JtYXQsIF9fVkFf
QVJHU19fKQotI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKLS8vIFdpbmRvd3MgQ0UgZG9lcyBub3Qg
ZGVmaW5lIF9zbnByaW50Zl9zIGFuZCBNU1ZDIHByaW9yIHRvIDIwMDUgZG9lc24ndAotLy8gY29t
cGxhaW4gYWJvdXQgX3NucHJpbnRmLgotIyBkZWZpbmUgR1RFU1RfU05QUklOVEZfIF9zbnByaW50
ZgotI2Vsc2UKLSMgZGVmaW5lIEdURVNUX1NOUFJJTlRGXyBzbnByaW50ZgotI2VuZGlmCi0KLS8v
IFRoZSBtYXhpbXVtIG51bWJlciBhIEJpZ2dlc3RJbnQgY2FuIHJlcHJlc2VudC4gIFRoaXMgZGVm
aW5pdGlvbgotLy8gd29ya3Mgbm8gbWF0dGVyIEJpZ2dlc3RJbnQgaXMgcmVwcmVzZW50ZWQgaW4g
b25lJ3MgY29tcGxlbWVudCBvcgotLy8gdHdvJ3MgY29tcGxlbWVudC4KLS8vCi0vLyBXZSBjYW5u
b3QgcmVseSBvbiBudW1lcmljX2xpbWl0cyBpbiBTVEwsIGFzIF9faW50NjQgYW5kIGxvbmcgbG9u
ZwotLy8gYXJlIG5vdCBwYXJ0IG9mIHN0YW5kYXJkIEMrKyBhbmQgbnVtZXJpY19saW1pdHMgZG9l
c24ndCBuZWVkIHRvIGJlCi0vLyBkZWZpbmVkIGZvciB0aGVtLgotY29uc3QgQmlnZ2VzdEludCBr
TWF4QmlnZ2VzdEludCA9Ci0gICAgfihzdGF0aWNfY2FzdDxCaWdnZXN0SW50PigxKSA8PCAoOCpz
aXplb2YoQmlnZ2VzdEludCkgLSAxKSk7Ci0KLS8vIFRoaXMgdGVtcGxhdGUgY2xhc3Mgc2VydmVz
IGFzIGEgY29tcGlsZS10aW1lIGZ1bmN0aW9uIGZyb20gc2l6ZSB0bwotLy8gdHlwZS4gIEl0IG1h
cHMgYSBzaXplIGluIGJ5dGVzIHRvIGEgcHJpbWl0aXZlIHR5cGUgd2l0aCB0aGF0Ci0vLyBzaXpl
LiBlLmcuCi0vLwotLy8gICBUeXBlV2l0aFNpemU8ND46OlVJbnQKLS8vCi0vLyBpcyB0eXBlZGVm
LWVkIHRvIGJlIHVuc2lnbmVkIGludCAodW5zaWduZWQgaW50ZWdlciBtYWRlIHVwIG9mIDQKLS8v
IGJ5dGVzKS4KLS8vCi0vLyBTdWNoIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGJlbG9uZyB0byBTVEws
IGJ1dCBJIGNhbm5vdCBmaW5kIGl0Ci0vLyB0aGVyZS4KLS8vCi0vLyBHb29nbGUgVGVzdCB1c2Vz
IHRoaXMgY2xhc3MgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIGZsb2F0aW5nLXBvaW50Ci0vLyBj
b21wYXJpc29uLgotLy8KLS8vIEZvciBub3cgaXQgb25seSBoYW5kbGVzIFVJbnQgKHVuc2lnbmVk
IGludCkgYXMgdGhhdCdzIGFsbCBHb29nbGUgVGVzdAotLy8gbmVlZHMuICBPdGhlciB0eXBlcyBj
YW4gYmUgZWFzaWx5IGFkZGVkIGluIHRoZSBmdXR1cmUgaWYgbmVlZAotLy8gYXJpc2VzLgotdGVt
cGxhdGUgPHNpemVfdCBzaXplPgotY2xhc3MgVHlwZVdpdGhTaXplIHsKLSBwdWJsaWM6Ci0gIC8v
IFRoaXMgcHJldmVudHMgdGhlIHVzZXIgZnJvbSB1c2luZyBUeXBlV2l0aFNpemU8Tj4gd2l0aCBp
bmNvcnJlY3QKLSAgLy8gdmFsdWVzIG9mIE4uCi0gIHR5cGVkZWYgdm9pZCBVSW50OwotfTsKLQot
Ly8gVGhlIHNwZWNpYWxpemF0aW9uIGZvciBzaXplIDQuCi10ZW1wbGF0ZSA8PgotY2xhc3MgVHlw
ZVdpdGhTaXplPDQ+IHsKLSBwdWJsaWM6Ci0gIC8vIHVuc2lnbmVkIGludCBoYXMgc2l6ZSA0IGlu
IGJvdGggZ2NjIGFuZCBNU1ZDLgotICAvLwotICAvLyBBcyBiYXNlL2Jhc2ljdHlwZXMuaCBkb2Vz
bid0IGNvbXBpbGUgb24gV2luZG93cywgd2UgY2Fubm90IHVzZQotICAvLyB1aW50MzIsIHVpbnQ2
NCwgYW5kIGV0YyBoZXJlLgotICB0eXBlZGVmIGludCBJbnQ7Ci0gIHR5cGVkZWYgdW5zaWduZWQg
aW50IFVJbnQ7Ci19OwotCi0vLyBUaGUgc3BlY2lhbGl6YXRpb24gZm9yIHNpemUgOC4KLXRlbXBs
YXRlIDw+Ci1jbGFzcyBUeXBlV2l0aFNpemU8OD4gewotIHB1YmxpYzoKLSNpZiBHVEVTVF9PU19X
SU5ET1dTCi0gIHR5cGVkZWYgX19pbnQ2NCBJbnQ7Ci0gIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2
NCBVSW50OwotI2Vsc2UKLSAgdHlwZWRlZiBsb25nIGxvbmcgSW50OyAgLy8gTk9MSU5UCi0gIHR5
cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIFVJbnQ7ICAvLyBOT0xJTlQKLSNlbmRpZiAgLy8gR1RF
U1RfT1NfV0lORE9XUwotfTsKLQotLy8gSW50ZWdlciB0eXBlcyBvZiBrbm93biBzaXplcy4KLXR5
cGVkZWYgVHlwZVdpdGhTaXplPDQ+OjpJbnQgSW50MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6ZTw0
Pjo6VUludCBVSW50MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6ZTw4Pjo6SW50IEludDY0OwotdHlw
ZWRlZiBUeXBlV2l0aFNpemU8OD46OlVJbnQgVUludDY0OwotdHlwZWRlZiBUeXBlV2l0aFNpemU8
OD46OkludCBUaW1lSW5NaWxsaXM7ICAvLyBSZXByZXNlbnRzIHRpbWUgaW4gbWlsbGlzZWNvbmRz
LgotCi0vLyBVdGlsaXRpZXMgZm9yIGNvbW1hbmQgbGluZSBmbGFncyBhbmQgZW52aXJvbm1lbnQg
dmFyaWFibGVzLgotCi0vLyBNYWNybyBmb3IgcmVmZXJlbmNpbmcgZmxhZ3MuCi0jaWYgIWRlZmlu
ZWQoR1RFU1RfRkxBRykKLSMgZGVmaW5lIEdURVNUX0ZMQUcobmFtZSkgRkxBR1NfZ3Rlc3RfIyNu
YW1lCi0jZW5kaWYgIC8vICFkZWZpbmVkKEdURVNUX0ZMQUcpCi0KLSNpZiAhZGVmaW5lZChHVEVT
VF9VU0VfT1dOX0ZMQUdGSUxFX0ZMQUdfKQotIyBkZWZpbmUgR1RFU1RfVVNFX09XTl9GTEFHRklM
RV9GTEFHXyAxCi0jZW5kaWYgIC8vICFkZWZpbmVkKEdURVNUX1VTRV9PV05fRkxBR0ZJTEVfRkxB
R18pCi0KLSNpZiAhZGVmaW5lZChHVEVTVF9ERUNMQVJFX2Jvb2xfKQotIyBkZWZpbmUgR1RFU1Rf
RkxBR19TQVZFUl8gOjp0ZXN0aW5nOjppbnRlcm5hbDo6R1Rlc3RGbGFnU2F2ZXIKLQotLy8gTWFj
cm9zIGZvciBkZWNsYXJpbmcgZmxhZ3MuCi0jIGRlZmluZSBHVEVTVF9ERUNMQVJFX2Jvb2xfKG5h
bWUpIEdURVNUX0FQSV8gZXh0ZXJuIGJvb2wgR1RFU1RfRkxBRyhuYW1lKQotIyBkZWZpbmUgR1RF
U1RfREVDTEFSRV9pbnQzMl8obmFtZSkgXAotICAgIEdURVNUX0FQSV8gZXh0ZXJuIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkludDMyIEdURVNUX0ZMQUcobmFtZSkKLSNkZWZpbmUgR1RFU1RfREVDTEFS
RV9zdHJpbmdfKG5hbWUpIFwKLSAgICBHVEVTVF9BUElfIGV4dGVybiA6OnN0ZDo6c3RyaW5nIEdU
RVNUX0ZMQUcobmFtZSkKLQotLy8gTWFjcm9zIGZvciBkZWZpbmluZyBmbGFncy4KLSNkZWZpbmUg
R1RFU1RfREVGSU5FX2Jvb2xfKG5hbWUsIGRlZmF1bHRfdmFsLCBkb2MpIFwKLSAgICBHVEVTVF9B
UElfIGJvb2wgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZhdWx0X3ZhbCkKLSNkZWZpbmUgR1RFU1Rf
REVGSU5FX2ludDMyXyhuYW1lLCBkZWZhdWx0X3ZhbCwgZG9jKSBcCi0gICAgR1RFU1RfQVBJXyA6
OnRlc3Rpbmc6OmludGVybmFsOjpJbnQzMiBHVEVTVF9GTEFHKG5hbWUpID0gKGRlZmF1bHRfdmFs
KQotI2RlZmluZSBHVEVTVF9ERUZJTkVfc3RyaW5nXyhuYW1lLCBkZWZhdWx0X3ZhbCwgZG9jKSBc
Ci0gICAgR1RFU1RfQVBJXyA6OnN0ZDo6c3RyaW5nIEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVs
dF92YWwpCi0KLSNlbmRpZiAgLy8gIWRlZmluZWQoR1RFU1RfREVDTEFSRV9ib29sXykKLQotLy8g
VGhyZWFkIGFubm90YXRpb25zCi0jaWYgIWRlZmluZWQoR1RFU1RfRVhDTFVTSVZFX0xPQ0tfUkVR
VUlSRURfKQotIyBkZWZpbmUgR1RFU1RfRVhDTFVTSVZFX0xPQ0tfUkVRVUlSRURfKGxvY2tzKQot
IyBkZWZpbmUgR1RFU1RfTE9DS19FWENMVURFRF8obG9ja3MpCi0jZW5kaWYgIC8vICFkZWZpbmVk
KEdURVNUX0VYQ0xVU0lWRV9MT0NLX1JFUVVJUkVEXykKLQotLy8gUGFyc2VzICdzdHInIGZvciBh
IDMyLWJpdCBzaWduZWQgaW50ZWdlci4gIElmIHN1Y2Nlc3NmdWwsIHdyaXRlcyB0aGUgcmVzdWx0
Ci0vLyB0byAqdmFsdWUgYW5kIHJldHVybnMgdHJ1ZTsgb3RoZXJ3aXNlIGxlYXZlcyAqdmFsdWUg
dW5jaGFuZ2VkIGFuZCByZXR1cm5zCi0vLyBmYWxzZS4KLS8vIFRPRE8oY2hhbmRsZXJjKTogRmlu
ZCBhIGJldHRlciB3YXkgdG8gcmVmYWN0b3IgZmxhZyBhbmQgZW52aXJvbm1lbnQgcGFyc2luZwot
Ly8gb3V0IG9mIGJvdGggZ3Rlc3QtcG9ydC5jYyBhbmQgZ3Rlc3QuY2MgdG8gYXZvaWQgZXhwb3J0
aW5nIHRoaXMgdXRpbGl0eQotLy8gZnVuY3Rpb24uCi1ib29sIFBhcnNlSW50MzIoY29uc3QgTWVz
c2FnZSYgc3JjX3RleHQsIGNvbnN0IGNoYXIqIHN0ciwgSW50MzIqIHZhbHVlKTsKLQotLy8gUGFy
c2VzIGEgYm9vbC9JbnQzMi9zdHJpbmcgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKLS8v
IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIEdvb2dsZSBUZXN0IGZsYWcuCi1ib29sIEJvb2xG
cm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgYm9vbCBkZWZhdWx0X3ZhbCk7Ci1HVEVTVF9B
UElfIEludDMyIEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1
bHRfdmFsKTsKLXN0ZDo6c3RyaW5nIFN0cmluZ0Zyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFn
LCBjb25zdCBjaGFyKiBkZWZhdWx0X3ZhbCk7Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAot
Ci19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RF
U1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3ZjFhN2ZkZDJjMGNjNDRjM2ExNDhmMGYx
ZWNkY2JkZmU5YmFjNmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9n
dGVzdC1zdHJpbmcuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2NyArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAwNSwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8v
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlv
bi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8v
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yczogd2FuQGdv
b2dsZS5jb20gKFpoYW55b25nIFdhbiksIGVlZmFjbUBnbWFpbC5jb20gKFNlYW4gTWNhZmVlKQot
Ly8KLS8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKLS8v
Ci0vLyBUaGlzIGhlYWRlciBmaWxlIGRlY2xhcmVzIHRoZSBTdHJpbmcgY2xhc3MgYW5kIGZ1bmN0
aW9ucyB1c2VkIGludGVybmFsbHkgYnkKLS8vIEdvb2dsZSBUZXN0LiAgVGhleSBhcmUgc3ViamVj
dCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuIFRoZXkgc2hvdWxkIG5vdCB1c2VkCi0vLyBieSBj
b2RlIGV4dGVybmFsIHRvIEdvb2dsZSBUZXN0LgotLy8KLS8vIFRoaXMgaGVhZGVyIGZpbGUgaXMg
I2luY2x1ZGVkIGJ5IDxndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oPi4KLS8vIEl0IHNo
b3VsZCBub3QgYmUgI2luY2x1ZGVkIGJ5IG90aGVyIGZpbGVzLgotCi0jaWZuZGVmIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCi0KLSNpZmRlZiBfX0JPUkxBTkRDX18K
LS8vIHN0cmluZy5oIGlzIG5vdCBndWFyYW50ZWVkIHRvIHByb3ZpZGUgc3RyY3B5IG9uIEMrKyBC
dWlsZGVyLgotIyBpbmNsdWRlIDxtZW0uaD4KLSNlbmRpZgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+
Ci0jaW5jbHVkZSA8c3RyaW5nPgotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9y
dC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0vLyBT
dHJpbmcgLSBhbiBhYnN0cmFjdCBjbGFzcyBob2xkaW5nIHN0YXRpYyBzdHJpbmcgdXRpbGl0aWVz
LgotY2xhc3MgR1RFU1RfQVBJXyBTdHJpbmcgewotIHB1YmxpYzoKLSAgLy8gU3RhdGljIHV0aWxp
dHkgbWV0aG9kcwotCi0gIC8vIENsb25lcyBhIDAtdGVybWluYXRlZCBDIHN0cmluZywgYWxsb2Nh
dGluZyBtZW1vcnkgdXNpbmcgbmV3LiAgVGhlCi0gIC8vIGNhbGxlciBpcyByZXNwb25zaWJsZSBm
b3IgZGVsZXRpbmcgdGhlIHJldHVybiB2YWx1ZSB1c2luZwotICAvLyBkZWxldGVbXS4gIFJldHVy
bnMgdGhlIGNsb25lZCBzdHJpbmcsIG9yIE5VTEwgaWYgdGhlIGlucHV0IGlzCi0gIC8vIE5VTEwu
Ci0gIC8vCi0gIC8vIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gc3RyZHVwKCkgaW4gc3RyaW5nLmgs
IHdoaWNoIGFsbG9jYXRlcwotICAvLyBtZW1vcnkgdXNpbmcgbWFsbG9jKCkuCi0gIHN0YXRpYyBj
b25zdCBjaGFyKiBDbG9uZUNTdHJpbmcoY29uc3QgY2hhciogY19zdHIpOwotCi0jaWYgR1RFU1Rf
T1NfV0lORE9XU19NT0JJTEUKLSAgLy8gV2luZG93cyBDRSBkb2VzIG5vdCBoYXZlIHRoZSAnQU5T
SScgdmVyc2lvbnMgb2YgV2luMzIgQVBJcy4gVG8gYmUKLSAgLy8gYWJsZSB0byBwYXNzIHN0cmlu
Z3MgdG8gV2luMzIgQVBJcyBvbiBDRSB3ZSBuZWVkIHRvIGNvbnZlcnQgdGhlbQotICAvLyB0byAn
VW5pY29kZScsIFVURi0xNi4KLQotICAvLyBDcmVhdGVzIGEgVVRGLTE2IHdpZGUgc3RyaW5nIGZy
b20gdGhlIGdpdmVuIEFOU0kgc3RyaW5nLCBhbGxvY2F0aW5nCi0gIC8vIG1lbW9yeSB1c2luZyBu
ZXcuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSByZXR1cm4KLSAg
Ly8gdmFsdWUgdXNpbmcgZGVsZXRlW10uIFJldHVybnMgdGhlIHdpZGUgc3RyaW5nLCBvciBOVUxM
IGlmIHRoZQotICAvLyBpbnB1dCBpcyBOVUxMLgotICAvLwotICAvLyBUaGUgd2lkZSBzdHJpbmcg
aXMgY3JlYXRlZCB1c2luZyB0aGUgQU5TSSBjb2RlcGFnZSAoQ1BfQUNQKSB0bwotICAvLyBtYXRj
aCB0aGUgYmVoYXZpb3VyIG9mIHRoZSBBTlNJIHZlcnNpb25zIG9mIFdpbjMyIGNhbGxzIGFuZCB0
aGUKLSAgLy8gQyBydW50aW1lLgotICBzdGF0aWMgTFBDV1NUUiBBbnNpVG9VdGYxNihjb25zdCBj
aGFyKiBjX3N0cik7Ci0KLSAgLy8gQ3JlYXRlcyBhbiBBTlNJIHN0cmluZyBmcm9tIHRoZSBnaXZl
biB3aWRlIHN0cmluZywgYWxsb2NhdGluZwotICAvLyBtZW1vcnkgdXNpbmcgbmV3LiBUaGUgY2Fs
bGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyB0aGUgcmV0dXJuCi0gIC8vIHZhbHVlIHVz
aW5nIGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSBBTlNJIHN0cmluZywgb3IgTlVMTCBpZiB0aGUKLSAg
Ly8gaW5wdXQgaXMgTlVMTC4KLSAgLy8KLSAgLy8gVGhlIHJldHVybmVkIHN0cmluZyBpcyBjcmVh
dGVkIHVzaW5nIHRoZSBBTlNJIGNvZGVwYWdlIChDUF9BQ1ApIHRvCi0gIC8vIG1hdGNoIHRoZSBi
ZWhhdmlvdXIgb2YgdGhlIEFOU0kgdmVyc2lvbnMgb2YgV2luMzIgY2FsbHMgYW5kIHRoZQotICAv
LyBDIHJ1bnRpbWUuCi0gIHN0YXRpYyBjb25zdCBjaGFyKiBVdGYxNlRvQW5zaShMUENXU1RSIHV0
ZjE2X3N0cik7Ci0jZW5kaWYKLQotICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJu
cyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4KLSAgLy8KLSAgLy8gVW5saWtl
IHN0cmNtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVudChzKS4gIEEK
LSAgLy8gTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5V
TEwgQyBzdHJpbmcsCi0gIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgotICBzdGF0aWMg
Ym9vbCBDU3RyaW5nRXF1YWxzKGNvbnN0IGNoYXIqIGxocywgY29uc3QgY2hhciogcmhzKTsKLQot
ICAvLyBDb252ZXJ0cyBhIHdpZGUgQyBzdHJpbmcgdG8gYSBTdHJpbmcgdXNpbmcgdGhlIFVURi04
IGVuY29kaW5nLgotICAvLyBOVUxMIHdpbGwgYmUgY29udmVydGVkIHRvICIobnVsbCkiLiAgSWYg
YW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nCi0gIC8vIHRoZSBjb252ZXJzaW9uLCAiKGZhaWxlZCB0
byBjb252ZXJ0IGZyb20gd2lkZSBzdHJpbmcpIiBpcwotICAvLyByZXR1cm5lZC4KLSAgc3RhdGlj
IHN0ZDo6c3RyaW5nIFNob3dXaWRlQ1N0cmluZyhjb25zdCB3Y2hhcl90KiB3aWRlX2Nfc3RyKTsK
LQotICAvLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWZmIHRo
ZXkgaGF2ZSB0aGUgc2FtZQotICAvLyBjb250ZW50LgotICAvLwotICAvLyBVbmxpa2Ugd2NzY21w
KCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLiAgQQotICAvLyBO
VUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0
cmluZywKLSAgLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCi0gIHN0YXRpYyBib29sIFdp
ZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxocywgY29uc3Qgd2NoYXJfdCogcmhzKTsK
LQotICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAgUmV0dXJucyB0
cnVlIGlmZiB0aGV5Ci0gIC8vIGhhdmUgdGhlIHNhbWUgY29udGVudC4KLSAgLy8KLSAgLy8gVW5s
aWtlIHN0cmNhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQo
cykuCi0gIC8vIEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkg
bm9uLU5VTEwgQyBzdHJpbmcsCi0gIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgotICBz
dGF0aWMgYm9vbCBDYXNlSW5zZW5zaXRpdmVDU3RyaW5nRXF1YWxzKGNvbnN0IGNoYXIqIGxocywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBy
aHMpOwotCi0gIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4g
IFJldHVybnMgdHJ1ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCi0gIC8v
Ci0gIC8vIFVubGlrZSB3Y3NjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxM
IGFyZ3VtZW50KHMpLgotICAvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJl
bnQgdG8gYW55IG5vbi1OVUxMIHdpZGUgQyBzdHJpbmcsCi0gIC8vIGluY2x1ZGluZyB0aGUgZW1w
dHkgc3RyaW5nLgotICAvLyBOQjogVGhlIGltcGxlbWVudGF0aW9ucyBvbiBkaWZmZXJlbnQgcGxh
dGZvcm1zIHNsaWdodGx5IGRpZmZlci4KLSAgLy8gT24gd2luZG93cywgdGhpcyBtZXRob2QgdXNl
cyBfd2NzaWNtcCB3aGljaCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUKLSAgLy8gZW52
aXJvbm1lbnQgdmFyaWFibGUuIE9uIEdOVSBwbGF0Zm9ybSB0aGlzIG1ldGhvZCB1c2VzIHdjc2Nh
c2VjbXAKLSAgLy8gd2hpY2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NUWVBFIGNhdGVnb3J5
IG9mIHRoZSBjdXJyZW50IGxvY2FsZS4KLSAgLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3dsb3dl
ciwgd2hpY2ggYWxzbyB1c2VzIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZQotICAvLyBjdXJyZW50
IGxvY2FsZS4KLSAgc3RhdGljIGJvb2wgQ2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMo
Y29uc3Qgd2NoYXJfdCogbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCB3Y2hhcl90KiByaHMpOwotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYg
dGhlIGdpdmVuIHN0cmluZyBlbmRzIHdpdGggdGhlIGdpdmVuIHN1ZmZpeCwgaWdub3JpbmcKLSAg
Ly8gY2FzZS4gQW55IHN0cmluZyBpcyBjb25zaWRlcmVkIHRvIGVuZCB3aXRoIGFuIGVtcHR5IHN1
ZmZpeC4KLSAgc3RhdGljIGJvb2wgRW5kc1dpdGhDYXNlSW5zZW5zaXRpdmUoCi0gICAgICBjb25z
dCBzdGQ6OnN0cmluZyYgc3RyLCBjb25zdCBzdGQ6OnN0cmluZyYgc3VmZml4KTsKLQotICAvLyBG
b3JtYXRzIGFuIGludCB2YWx1ZSBhcyAiJTAyZCIuCi0gIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3Jt
YXRJbnRXaWR0aDIoaW50IHZhbHVlKTsgIC8vICIlMDJkIiBmb3Igd2lkdGggPT0gMgotCi0gIC8v
IEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIuCi0gIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3Jt
YXRIZXhJbnQoaW50IHZhbHVlKTsKLQotICAvLyBGb3JtYXRzIGEgYnl0ZSBhcyAiJTAyWCIuCi0g
IHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFsdWUpOwotCi0g
cHJpdmF0ZToKLSAgU3RyaW5nKCk7ICAvLyBOb3QgbWVhbnQgdG8gYmUgaW5zdGFudGlhdGVkLgot
fTsgIC8vIGNsYXNzIFN0cmluZwotCi0vLyBHZXRzIHRoZSBjb250ZW50IG9mIHRoZSBzdHJpbmdz
dHJlYW0ncyBidWZmZXIgYXMgYW4gc3RkOjpzdHJpbmcuICBFYWNoICdcMCcKLS8vIGNoYXJhY3Rl
ciBpbiB0aGUgYnVmZmVyIGlzIHJlcGxhY2VkIHdpdGggIlxcMCIuCi1HVEVTVF9BUElfIHN0ZDo6
c3RyaW5nIFN0cmluZ1N0cmVhbVRvU3RyaW5nKDo6c3RkOjpzdHJpbmdzdHJlYW0qIHN0cmVhbSk7
Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1NUUklOR19IXwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9ndGVzdC10dXBsZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC10dXBsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOWI0MDUzNDBhODU1ZjYwMjU4YjEzNDAyNmJlN2IxMzYxMmViZTFlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDEwMjAgKzAsMCBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQgYnkgY29tbWFuZDoK
LS8vICAgICBwdW1wLnB5IGd0ZXN0LXR1cGxlLmgucHVtcAotLy8gRE8gTk9UIEVESVQgQlkgSEFO
RCEhIQotCi0vLyBDb3B5cmlnaHQgMjAwOSBHb29nbGUgSW5jLgotLy8gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0v
LyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8v
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0v
LyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0KLS8vIEltcGxlbWVudHMg
YSBzdWJzZXQgb2YgVFIxIHR1cGxlIG5lZWRlZCBieSBHb29nbGUgVGVzdCBhbmQgR29vZ2xlIE1v
Y2suCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9I
XwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RVUExFX0hfCi0K
LSNpbmNsdWRlIDx1dGlsaXR5PiAgLy8gRm9yIDo6c3RkOjpwYWlyLgotCi0vLyBUaGUgY29tcGls
ZXIgdXNlZCBpbiBTeW1iaWFuIGhhcyBhIGJ1ZyB0aGF0IHByZXZlbnRzIHVzIGZyb20gZGVjbGFy
aW5nIHRoZQotLy8gdHVwbGUgdGVtcGxhdGUgYXMgYSBmcmllbmQgKGl0IGNvbXBsYWlucyB0aGF0
IHR1cGxlIGlzIHJlZGVmaW5lZCkuICBUaGlzCi0vLyBoYWNrIGJ5cGFzc2VzIHRoZSBidWcgYnkg
ZGVjbGFyaW5nIHRoZSBtZW1iZXJzIHRoYXQgc2hvdWxkIG90aGVyd2lzZSBiZQotLy8gcHJpdmF0
ZSBhcyBwdWJsaWMuCi0vLyBTdW4gU3R1ZGlvIHZlcnNpb25zIDwgMTIgYWxzbyBoYXZlIHRoZSBh
Ym92ZSBidWcuCi0jaWYgZGVmaW5lZChfX1NZTUJJQU4zMl9fKSB8fCAoZGVmaW5lZChfX1NVTlBS
T19DQykgJiYgX19TVU5QUk9fQ0MgPCAweDU5MCkKLSMgZGVmaW5lIEdURVNUX0RFQ0xBUkVfVFVQ
TEVfQVNfRlJJRU5EXyBwdWJsaWM6Ci0jZWxzZQotIyBkZWZpbmUgR1RFU1RfREVDTEFSRV9UVVBM
RV9BU19GUklFTkRfIFwKLSAgICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4gZnJp
ZW5kIGNsYXNzIHR1cGxlOyBcCi0gICBwcml2YXRlOgotI2VuZGlmCi0KLS8vIFZpc3VhbCBTdHVk
aW8gMjAxMCwgMjAxMiwgYW5kIDIwMTMgZGVmaW5lIHN5bWJvbHMgaW4gc3RkOjp0cjEgdGhhdCBj
b25mbGljdAotLy8gd2l0aCBvdXIgb3duIGRlZmluaXRpb25zLiBUaGVyZWZvcmUgdXNpbmcgb3Vy
IG93biB0dXBsZSBkb2VzIG5vdCB3b3JrIG9uCi0vLyB0aG9zZSBjb21waWxlcnMuCi0jaWYgZGVm
aW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTYwMCAgLyogMTYwMCBpcyBWaXN1YWwgU3R1
ZGlvIDIwMTAgKi8KLSMgZXJyb3IgImd0ZXN0J3MgdHVwbGUgZG9lc24ndCBjb21waWxlIG9uIFZp
c3VhbCBTdHVkaW8gMjAxMCBvciBsYXRlci4gXAotR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgbXVz
dCBiZSBzZXQgdG8gMCBvbiB0aG9zZSBjb21waWxlcnMuIgotI2VuZGlmCi0KLS8vIEdURVNUX25f
VFVQTEVfKFQpIGlzIHRoZSB0eXBlIG9mIGFuIG4tdHVwbGUuCi0jZGVmaW5lIEdURVNUXzBfVFVQ
TEVfKFQpIHR1cGxlPD4KLSNkZWZpbmUgR1RFU1RfMV9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgdm9p
ZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgXAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+
Ci0jZGVmaW5lIEdURVNUXzJfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIHZvaWQsIHZvaWQs
IHZvaWQsIHZvaWQsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lkPgotI2RlZmluZSBHVEVT
VF8zX1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCB2b2lkLCB2b2lkLCB2b2lkLCB2
b2lkLCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfNF9UVVBMRV8oVCkg
dHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgdm9pZCwgdm9pZCwgdm9pZCwgXAotICAgIHZv
aWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzVfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQj
IzEsIFQjIzIsIFQjIzMsIFQjIzQsIHZvaWQsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lk
PgotI2RlZmluZSBHVEVTVF82X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCBUIyMz
LCBUIyM0LCBUIyM1LCB2b2lkLCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RF
U1RfN19UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgVCMjNSwg
VCMjNiwgXAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzhfVFVQTEVfKFQp
IHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIFQjIzYsIFwKLSAgICBU
IyM3LCB2b2lkLCB2b2lkPgotI2RlZmluZSBHVEVTVF85X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBU
IyMxLCBUIyMyLCBUIyMzLCBUIyM0LCBUIyM1LCBUIyM2LCBcCi0gICAgVCMjNywgVCMjOCwgdm9p
ZD4KLSNkZWZpbmUgR1RFU1RfMTBfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQj
IzMsIFQjIzQsIFQjIzUsIFQjIzYsIFwKLSAgICBUIyM3LCBUIyM4LCBUIyM5PgotCi0vLyBHVEVT
VF9uX1RZUEVOQU1FU18oVCkgZGVjbGFyZXMgYSBsaXN0IG9mIG4gdHlwZW5hbWVzLgotI2RlZmlu
ZSBHVEVTVF8wX1RZUEVOQU1FU18oVCkKLSNkZWZpbmUgR1RFU1RfMV9UWVBFTkFNRVNfKFQpIHR5
cGVuYW1lIFQjIzAKLSNkZWZpbmUgR1RFU1RfMl9UWVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAs
IHR5cGVuYW1lIFQjIzEKLSNkZWZpbmUgR1RFU1RfM19UWVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQj
IzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIKLSNkZWZpbmUgR1RFU1RfNF9UWVBFTkFN
RVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAg
ICB0eXBlbmFtZSBUIyMzCi0jZGVmaW5lIEdURVNUXzVfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBU
IyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywg
dHlwZW5hbWUgVCMjNAotI2RlZmluZSBHVEVTVF82X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMj
MCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMsIHR5
cGVuYW1lIFQjIzQsIHR5cGVuYW1lIFQjIzUKLSNkZWZpbmUgR1RFU1RfN19UWVBFTkFNRVNfKFQp
IHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAgICB0eXBl
bmFtZSBUIyMzLCB0eXBlbmFtZSBUIyM0LCB0eXBlbmFtZSBUIyM1LCB0eXBlbmFtZSBUIyM2Ci0j
ZGVmaW5lIEdURVNUXzhfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMx
LCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlw
ZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgdHlwZW5hbWUgVCMjNwotI2RlZmluZSBHVEVTVF85
X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMj
MiwgXAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQjIzQsIHR5cGVuYW1lIFQjIzUsIHR5
cGVuYW1lIFQjIzYsIFwKLSAgICB0eXBlbmFtZSBUIyM3LCB0eXBlbmFtZSBUIyM4Ci0jZGVmaW5l
IEdURVNUXzEwX1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlw
ZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQjIzQsIHR5cGVuYW1l
IFQjIzUsIHR5cGVuYW1lIFQjIzYsIFwKLSAgICB0eXBlbmFtZSBUIyM3LCB0eXBlbmFtZSBUIyM4
LCB0eXBlbmFtZSBUIyM5Ci0KLS8vIEluIHRoZW9yeSwgZGVmaW5pbmcgc3R1ZmYgaW4gdGhlIDo6
c3RkIG5hbWVzcGFjZSBpcyB1bmRlZmluZWQKLS8vIGJlaGF2aW9yLiAgV2UgY2FuIGRvIHRoaXMg
YXMgd2UgYXJlIHBsYXlpbmcgdGhlIHJvbGUgb2YgYSBzdGFuZGFyZAotLy8gbGlicmFyeSB2ZW5k
b3IuCi1uYW1lc3BhY2Ugc3RkIHsKLW5hbWVzcGFjZSB0cjEgewotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDAgPSB2b2lkLCB0eXBlbmFtZSBUMSA9IHZvaWQsIHR5cGVuYW1lIFQyID0gdm9pZCwKLSAg
ICB0eXBlbmFtZSBUMyA9IHZvaWQsIHR5cGVuYW1lIFQ0ID0gdm9pZCwgdHlwZW5hbWUgVDUgPSB2
b2lkLAotICAgIHR5cGVuYW1lIFQ2ID0gdm9pZCwgdHlwZW5hbWUgVDcgPSB2b2lkLCB0eXBlbmFt
ZSBUOCA9IHZvaWQsCi0gICAgdHlwZW5hbWUgVDkgPSB2b2lkPgotY2xhc3MgdHVwbGU7Ci0KLS8v
IEFueXRoaW5nIGluIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCBpcyBHb29nbGUgVGVzdCdzIElO
VEVSTkFMCi0vLyBJTVBMRU1FTlRBVElPTiBERVRBSUwgYW5kIE1VU1QgTk9UIEJFIFVTRUQgRElS
RUNUTFkgaW4gdXNlciBjb2RlLgotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotLy8gQnlS
ZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhlcndpc2UgaXQncyBjb25z
dCBUJi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVmIHsgdHlwZWRlZiBjb25z
dCBUJiB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBC
eVJlZjxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3
cmFwcGVyIGZvciBCeVJlZi4KLSNkZWZpbmUgR1RFU1RfQllfUkVGXyhUKSB0eXBlbmFtZSA6OnN0
ZDo6dHIxOjpndGVzdF9pbnRlcm5hbDo6QnlSZWY8VD46OnR5cGUKLQotLy8gQWRkUmVmPFQ+Ojp0
eXBlIGlzIFQgaWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0J3MgVCYuICBUaGlzCi0v
LyBpcyB0aGUgc2FtZSBhcyB0cjE6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLXN0cnVjdCBBZGRSZWYgeyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJ
TlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZjxUJj4geyB0eXBlZGVmIFQm
IHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGZvciBBZGRSZWYuCi0j
ZGVmaW5lIEdURVNUX0FERF9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVy
bmFsOjpBZGRSZWY8VD46OnR5cGUKLQotLy8gQSBoZWxwZXIgZm9yIGltcGxlbWVudGluZyBnZXQ8
az4oKS4KLXRlbXBsYXRlIDxpbnQgaz4gY2xhc3MgR2V0OwotCi0vLyBBIGhlbHBlciBmb3IgaW1w
bGVtZW50aW5nIHR1cGxlX2VsZW1lbnQ8aywgVD4uICBrSW5kZXhWYWxpZCBpcyB0cnVlCi0vLyBp
ZmYgayA8IHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlIHR5cGUgVC4KLXRlbXBsYXRlIDxi
b29sIGtJbmRleFZhbGlkLCBpbnQga0luZGV4LCBjbGFzcyBUdXBsZT4KLXN0cnVjdCBUdXBsZUVs
ZW1lbnQ7Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCAwLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDAgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCAxLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDEgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCAyLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDIgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCAzLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDMgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCA0LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDQgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCA1LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDUgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCA2LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDYgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCA3LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDcgdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCA4LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDggdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxl
RWxlbWVudDx0cnVlLCA5LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVDkgdHlw
ZTsKLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbAotCi10ZW1wbGF0ZSA8Pgot
Y2xhc3MgdHVwbGU8PiB7Ci0gcHVibGljOgotICB0dXBsZSgpIHt9Ci0gIHR1cGxlKGNvbnN0IHR1
cGxlJiAvKiB0ICovKSAge30KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgLyogdCAq
LykgeyByZXR1cm4gKnRoaXM7IH0KLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xX1RZUEVOQU1FU18o
VCk+Ci1jbGFzcyBHVEVTVF8xX1RVUExFXyhUKSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50
IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8o
KSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwKSA6IGYwXyhmMCkg
e30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pIHt9Ci0KLSAgdGVtcGxh
dGUgPEdURVNUXzFfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfMV9UVVBMRV8o
VSkmIHQpIDogZjBfKHQuZjBfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUm
IHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5B
TUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8xX1RVUExFXyhVKSYgdCkg
ewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVf
QVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF8xX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxl
JiBDb3B5RnJvbShjb25zdCBHVEVTVF8xX1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBf
OwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLX07Ci0KLXRlbXBsYXRlIDxH
VEVTVF8yX1RZUEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVTVF8yX1RVUExFXyhUKSB7Ci0gcHVibGlj
OgotICB0ZW1wbGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0Owot
Ci0gIHR1cGxlKCkgOiBmMF8oKSwgZjFfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9C
WV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEpIDogZjBfKGYwKSwKLSAgICAgIGYx
XyhmMSkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29u
c3QgR1RFU1RfMl9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSB7fQotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBsZShjb25zdCA6OnN0ZDo6
cGFpcjxVMCwgVTE+JiBwKSA6IGYwXyhwLmZpcnN0KSwgZjFfKHAuc2Vjb25kKSB7fQotCi0gIHR1
cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0K
LSAgdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShj
b25zdCBHVEVTVF8yX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAg
fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBsZSYgb3BlcmF0
b3I9KGNvbnN0IDo6c3RkOjpwYWlyPFUwLCBVMT4mIHApIHsKLSAgICBmMF8gPSBwLmZpcnN0Owot
ICAgIGYxXyA9IHAuc2Vjb25kOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIEdURVNUX0RF
Q0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF8yX1RZUEVOQU1FU18o
VSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF8yX1RVUExFXyhVKSYgdCkgewotICAg
IGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQot
Ci0gIFQwIGYwXzsKLSAgVDEgZjFfOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVT
XyhUKT4KLWNsYXNzIEdURVNUXzNfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxp
bnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYw
XygpLCBmMV8oKSwgZjJfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQw
KSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMikg
OiBmMF8oZjApLCBmMV8oZjEpLCBmMl8oZjIpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQp
IDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSB7fQotCi0gIHRlbXBsYXRlIDxH
VEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzNfVFVQTEVfKFUpJiB0
KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXykge30KLQotICB0dXBsZSYgb3Bl
cmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQotCi0gIHRlbXBs
YXRlIDxHVEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgR1RF
U1RfM19UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQotICBH
VEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfM19UWVBF
TkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfM19UVVBMRV8oVSkmIHQp
IHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8gPSB0LmYyXzsK
LSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJf
OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzRfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzRf
VFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0
ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSwgZjJfKCksIGYz
XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZ
X1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8o
VDMpIGYzKSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksCi0gICAgICBmM18oZjMpIHt9Ci0K
LSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQu
ZjJfKSwgZjNfKHQuZjNfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1FU18oVSk+
Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzRfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0
LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18pIHt9Ci0KLSAgdHVwbGUmIG9wZXJh
dG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0
ZSA8R1RFU1RfNF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNU
XzRfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RF
U1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzRfVFlQRU5B
TUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzRfVFVQTEVfKFUpJiB0KSB7
Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgZjJfID0gdC5mMl87Ci0g
ICAgZjNfID0gdC5mM187Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBU
MSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzVfVFlQ
RU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzVfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBs
YXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUo
KSA6IGYwXygpLCBmMV8oKSwgZjJfKCksIGYzXygpLCBmNF8oKSB7fQotCi0gIGV4cGxpY2l0IHR1
cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdU
RVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9CWV9SRUZfKFQzKSBmMywKLSAgICAgIEdURVNUX0JZ
X1JFRl8oVDQpIGY0KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksIGYzXyhmMyksIGY0Xyhm
NCkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8p
LCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRfKSB7fQotCi0gIHRlbXBs
YXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzVfVFVQTEVf
KFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18o
dC5mM18pLCBmNF8odC5mNF8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYg
dCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFN
RVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzVfVFVQTEVfKFUpJiB0KSB7
Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9B
U19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzVfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUm
IENvcHlGcm9tKGNvbnN0IEdURVNUXzVfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87
Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgZjJfID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187Ci0g
ICAgZjRfID0gdC5mNF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBU
MSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfNl9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfNl9UVVBMRV8oVCkgewotIHB1Ymxp
YzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsK
LQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSB7
fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZf
KFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9CWV9SRUZfKFQzKSBm
MywgR1RFU1RfQllfUkVGXyhUNCkgZjQsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQ1KSBmNSkgOiBm
MF8oZjApLCBmMV8oZjEpLCBmMl8oZjIpLCBmM18oZjMpLCBmNF8oZjQpLAotICAgICAgZjVfKGY1
KSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyks
IGYyXyh0LmYyXyksIGYzXyh0LmYzXyksCi0gICAgICBmNF8odC5mNF8pLCBmNV8odC5mNV8pIHt9
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RF
U1RfNl9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwK
LSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0XyksIGY1Xyh0LmY1Xykge30KLQotICB0dXBsZSYg
b3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQotCi0gIHRl
bXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3Qg
R1RFU1RfNl9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQot
ICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNl9U
WVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfNl9UVVBMRV8oVSkm
IHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8gPSB0LmYy
XzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAgICBmNV8gPSB0LmY1XzsK
LSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJf
OwotICBUMyBmM187Ci0gIFQ0IGY0XzsKLSAgVDUgZjVfOwotfTsKLQotdGVtcGxhdGUgPEdURVNU
XzdfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzdfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0g
IHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAg
dHVwbGUoKSA6IGYwXygpLCBmMV8oKSwgZjJfKCksIGYzXygpLCBmNF8oKSwgZjVfKCksIGY2Xygp
IHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZX1JF
Rl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8oVDMp
IGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDUpIGY1LCBH
VEVTVF9CWV9SRUZfKFQ2KSBmNikgOiBmMF8oZjApLCBmMV8oZjEpLCBmMl8oZjIpLAotICAgICAg
ZjNfKGYzKSwgZjRfKGY0KSwgZjVfKGY1KSwgZjZfKGY2KSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1
cGxlJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksIGYzXyh0LmYzXyks
Ci0gICAgICBmNF8odC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8pIHt9Ci0KLSAgdGVtcGxh
dGUgPEdURVNUXzdfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfN19UVVBMRV8o
VSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0
LmYzXyksIGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2Xykge30KLQotICB0dXBsZSYg
b3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQotCi0gIHRl
bXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3Qg
R1RFU1RfN19UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQot
ICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfN19U
WVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfN19UVVBMRV8oVSkm
IHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8gPSB0LmYy
XzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAgICBmNV8gPSB0LmY1XzsK
LSAgICBmNl8gPSB0LmY2XzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87Ci0g
IFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0IGY0XzsKLSAgVDUgZjVfOwotICBU
NiBmNl87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RF
U1RfOF9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xh
c3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8o
KSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCksIGY3XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVw
bGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RF
U1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0
KSBmNCwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDUpIGY1LCBHVEVTVF9CWV9SRUZfKFQ2KSBmNiwK
LSAgICAgIEdURVNUX0JZX1JFRl8oVDcpIGY3KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiks
IGYzXyhmMyksIGY0XyhmNCksCi0gICAgICBmNV8oZjUpLCBmNl8oZjYpLCBmN18oZjcpIHt9Ci0K
LSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQu
ZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2
XyksIGY3Xyh0LmY3Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFUpPgot
ICB0dXBsZShjb25zdCBHVEVTVF84X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pLCBmMl8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVfKHQuZjVf
KSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3Qg
dHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzhf
VFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF84X1RVUExFXyhV
KSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVf
VFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18oVSk+Ci0g
IHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF84X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9
IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQu
ZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZf
OwotICAgIGY3XyA9IHQuZjdfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsK
LSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87Ci0g
IFQ2IGY2XzsKLSAgVDcgZjdfOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhU
KT4KLWNsYXNzIEdURVNUXzlfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQg
az4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygp
LCBmMV8oKSwgZjJfKCksIGYzXygpLCBmNF8oKSwgZjVfKCksIGY2XygpLCBmN18oKSwgZjhfKCkg
e30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVG
XyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RFU1RfQllfUkVGXyhUMykg
ZjMsIEdURVNUX0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllfUkVGXyhUNSkgZjUsIEdU
RVNUX0JZX1JFRl8oVDYpIGY2LCBHVEVTVF9CWV9SRUZfKFQ3KSBmNywKLSAgICAgIEdURVNUX0JZ
X1JFRl8oVDgpIGY4KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksIGYzXyhmMyksIGY0Xyhm
NCksCi0gICAgICBmNV8oZjUpLCBmNl8oZjYpLCBmN18oZjcpLCBmOF8oZjgpIHt9Ci0KLSAgdHVw
bGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwg
ZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2XyksIGY3
Xyh0LmY3XyksIGY4Xyh0LmY4Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNf
KFUpPgotICB0dXBsZShjb25zdCBHVEVTVF85X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBm
MV8odC5mMV8pLCBmMl8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVf
KHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSB7fQotCi0gIHR1cGxl
JiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAg
dGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25z
dCBHVEVTVF85X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQot
Ci0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF85
X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF85X1RVUExFXyhV
KSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQu
ZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1XyA9IHQuZjVf
OwotICAgIGY2XyA9IHQuZjZfOwotICAgIGY3XyA9IHQuZjdfOwotICAgIGY4XyA9IHQuZjhfOwot
ICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87
Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87Ci0gIFQ2IGY2XzsKLSAgVDcgZjdfOwot
ICBUOCBmOF87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKT4KLWNsYXNz
IHR1cGxlIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0
X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSwgZjJfKCksIGYzXygp
LCBmNF8oKSwgZjVfKCksIGY2XygpLCBmN18oKSwgZjhfKCksCi0gICAgICBmOV8oKSB7fQotCi0g
IGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBm
MSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9CWV9SRUZfKFQzKSBmMywgR1RF
U1RfQllfUkVGXyhUNCkgZjQsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQ1KSBmNSwgR1RFU1RfQllf
UkVGXyhUNikgZjYsIEdURVNUX0JZX1JFRl8oVDcpIGY3LAotICAgICAgR1RFU1RfQllfUkVGXyhU
OCkgZjgsIEdURVNUX0JZX1JFRl8oVDkpIGY5KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiks
Ci0gICAgICBmM18oZjMpLCBmNF8oZjQpLCBmNV8oZjUpLCBmNl8oZjYpLCBmN18oZjcpLCBmOF8o
ZjgpLCBmOV8oZjkpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwg
ZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1
Xyh0LmY1XyksIGY2Xyh0LmY2XyksIGY3Xyh0LmY3XyksIGY4Xyh0LmY4XyksIGY5Xyh0LmY5Xykg
e30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3Qg
R1RFU1RfMTBfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYy
XyksCi0gICAgICBmM18odC5mM18pLCBmNF8odC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8p
LCBmN18odC5mN18pLCBmOF8odC5mOF8pLAotICAgICAgZjlfKHQuZjlfKSB7fQotCi0gIHR1cGxl
JiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAg
dGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29u
c3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9
Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNU
XzEwX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF8xMF9UVVBM
RV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8g
PSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAgICBmNV8gPSB0
LmY1XzsKLSAgICBmNl8gPSB0LmY2XzsKLSAgICBmN18gPSB0LmY3XzsKLSAgICBmOF8gPSB0LmY4
XzsKLSAgICBmOV8gPSB0LmY5XzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87
Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0IGY0XzsKLSAgVDUgZjVfOwot
ICBUNiBmNl87Ci0gIFQ3IGY3XzsKLSAgVDggZjhfOwotICBUOSBmOV87Ci19OwotCi0vLyA2LjEu
My4yIFR1cGxlIGNyZWF0aW9uIGZ1bmN0aW9ucy4KLQotLy8gS25vd24gbGltaXRhdGlvbnM6IHdl
IGRvbid0IHN1cHBvcnQgcGFzc2luZyBhbgotLy8gc3RkOjp0cjE6OnJlZmVyZW5jZV93cmFwcGVy
PFQ+IHRvIG1ha2VfdHVwbGUoKS4gIEFuZCB3ZSBkb24ndAotLy8gaW1wbGVtZW50IHRpZSgpLgot
Ci1pbmxpbmUgdHVwbGU8PiBtYWtlX3R1cGxlKCkgeyByZXR1cm4gdHVwbGU8PigpOyB9Ci0KLXRl
bXBsYXRlIDxHVEVTVF8xX1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfMV9UVVBMRV8oVCkg
bWFrZV90dXBsZShjb25zdCBUMCYgZjApIHsKLSAgcmV0dXJuIEdURVNUXzFfVFVQTEVfKFQpKGYw
KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF8y
X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYxKSB7Ci0gIHJl
dHVybiBHVEVTVF8yX1RVUExFXyhUKShmMCwgZjEpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfM19U
WVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzNfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3Qg
VDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMikgewotICByZXR1cm4gR1RFU1RfM19U
VVBMRV8oVCkoZjAsIGYxLCBmMik7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1FU18o
VCk+Ci1pbmxpbmUgR1RFU1RfNF9UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNv
bnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBmMykgewotICByZXR1cm4g
R1RFU1RfNF9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1Rf
NV9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzVfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29u
c3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMs
IGNvbnN0IFQ0JiBmNCkgewotICByZXR1cm4gR1RFU1RfNV9UVVBMRV8oVCkoZjAsIGYxLCBmMiwg
ZjMsIGY0KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBH
VEVTVF82X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBj
b25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYzLCBjb25zdCBUNCYgZjQsIGNvbnN0IFQ1JiBm
NSkgewotICByZXR1cm4gR1RFU1RfNl9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMsIGY0LCBmNSk7
Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfN19U
VVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDIm
IGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0LCBjb25zdCBUNSYgZjUsIGNvbnN0
IFQ2JiBmNikgewotICByZXR1cm4gR1RFU1RfN19UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMsIGY0
LCBmNSwgZjYpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFQpPgotaW5saW5l
IEdURVNUXzhfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEs
IGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwgY29uc3QgVDUm
IGY1LCBjb25zdCBUNiYgZjYsIGNvbnN0IFQ3JiBmNykgewotICByZXR1cm4gR1RFU1RfOF9UVVBM
RV8oVCkoZjAsIGYxLCBmMiwgZjMsIGY0LCBmNSwgZjYsIGY3KTsKLX0KLQotdGVtcGxhdGUgPEdU
RVNUXzlfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF85X1RVUExFXyhUKSBtYWtlX3R1cGxl
KGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMm
IGYzLCBjb25zdCBUNCYgZjQsIGNvbnN0IFQ1JiBmNSwgY29uc3QgVDYmIGY2LCBjb25zdCBUNyYg
ZjcsCi0gICAgY29uc3QgVDgmIGY4KSB7Ci0gIHJldHVybiBHVEVTVF85X1RVUExFXyhUKShmMCwg
ZjEsIGYyLCBmMywgZjQsIGY1LCBmNiwgZjcsIGY4KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzEw
X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfMTBfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29u
c3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMs
IGNvbnN0IFQ0JiBmNCwgY29uc3QgVDUmIGY1LCBjb25zdCBUNiYgZjYsIGNvbnN0IFQ3JiBmNywK
LSAgICBjb25zdCBUOCYgZjgsIGNvbnN0IFQ5JiBmOSkgewotICByZXR1cm4gR1RFU1RfMTBfVFVQ
TEVfKFQpKGYwLCBmMSwgZjIsIGYzLCBmNCwgZjUsIGY2LCBmNywgZjgsIGY5KTsKLX0KLQotLy8g
Ni4xLjMuMyBUdXBsZSBoZWxwZXIgY2xhc3Nlcy4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxl
PiBzdHJ1Y3QgdHVwbGVfc2l6ZTsKLQotdGVtcGxhdGUgPEdURVNUXzBfVFlQRU5BTUVTXyhUKT4K
LXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzBfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3Qg
aW50IHZhbHVlID0gMDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8xX1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0IGlu
dCB2YWx1ZSA9IDE7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFQpPgotc3Ry
dWN0IHR1cGxlX3NpemU8R1RFU1RfMl9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQg
dmFsdWUgPSAyOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhUKT4KLXN0cnVj
dCB0dXBsZV9zaXplPEdURVNUXzNfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50IHZh
bHVlID0gMzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3Qg
dHVwbGVfc2l6ZTxHVEVTVF80X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0IGludCB2YWx1
ZSA9IDQ7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1
cGxlX3NpemU8R1RFU1RfNV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUg
PSA1OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBs
ZV9zaXplPEdURVNUXzZfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0g
NjsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVf
c2l6ZTxHVEVTVF83X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDc7
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3Np
emU8R1RFU1RfOF9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSA4Owot
fTsKLQotdGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXpl
PEdURVNUXzlfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gOTsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8
R1RFU1RfMTBfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMTA7Ci19
OwotCi10ZW1wbGF0ZSA8aW50IGssIGNsYXNzIFR1cGxlPgotc3RydWN0IHR1cGxlX2VsZW1lbnQg
ewotICB0eXBlZGVmIHR5cGVuYW1lIGd0ZXN0X2ludGVybmFsOjpUdXBsZUVsZW1lbnQ8Ci0gICAg
ICBrIDwgKHR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1ZSksIGssIFR1cGxlPjo6dHlwZSB0eXBlOwot
fTsKLQotI2RlZmluZSBHVEVTVF9UVVBMRV9FTEVNRU5UXyhrLCBUdXBsZSkgdHlwZW5hbWUgdHVw
bGVfZWxlbWVudDxrLCBUdXBsZSA+Ojp0eXBlCi0KLS8vIDYuMS4zLjQgRWxlbWVudCBhY2Nlc3Mu
Ci0KLW5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8
MD4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1Rf
QUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMCwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYg
dCkgeyByZXR1cm4gdC5mMF87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBs
ZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMCwgVHVwbGUp
KQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmYwXzsgfQotfTsKLQot
dGVtcGxhdGUgPD4KLWNsYXNzIEdldDwxPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3Mg
VHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygxLCBU
dXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYxXzsgfSAgLy8gTk9MSU5UCi0K
LSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9U
VVBMRV9FTEVNRU5UXygxLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsg
cmV0dXJuIHQuZjFfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDI+IHsKLSBwdWJs
aWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdU
RVNUX1RVUExFX0VMRU1FTlRfKDIsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJu
IHQuZjJfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRp
YyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDIsIFR1cGxlKSkKLSAgQ29uc3RG
aWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mMl87IH0KLX07Ci0KLXRlbXBsYXRlIDw+
Ci1jbGFzcyBHZXQ8Mz4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBz
dGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMywgVHVwbGUpKQotICBG
aWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mM187IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRl
IDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVO
VF8oMywgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmYz
XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw0PiB7Ci0gcHVibGljOgotICB0ZW1w
bGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9F
TEVNRU5UXyg0LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmY0XzsgfSAg
Ly8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllf
UkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg0LCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3Qg
VHVwbGUmIHQpIHsgcmV0dXJuIHQuZjRfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0
PDU+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNU
X0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDUsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUm
IHQpIHsgcmV0dXJuIHQuZjVfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVw
bGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDUsIFR1cGxl
KSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mNV87IH0KLX07Ci0K
LXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8Nj4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNz
IFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oNiwg
VHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mNl87IH0gIC8vIE5PTElOVAot
Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1Rf
VFVQTEVfRUxFTUVOVF8oNiwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7
IHJldHVybiB0LmY2XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw3PiB7Ci0gcHVi
bGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhH
VEVTVF9UVVBMRV9FTEVNRU5UXyg3LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVy
biB0LmY3XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0
aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg3LCBUdXBsZSkpCi0gIENvbnN0
RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjdfOyB9Ci19OwotCi10ZW1wbGF0ZSA8
PgotY2xhc3MgR2V0PDg+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAg
c3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDgsIFR1cGxlKSkKLSAg
RmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjhfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0
ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1F
TlRfKDgsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5m
OF87IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8OT4gewotIHB1YmxpYzoKLSAgdGVt
cGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVf
RUxFTUVOVF8oOSwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mOV87IH0g
IC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZ
X1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oOSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0
IFR1cGxlJiB0KSB7IHJldHVybiB0LmY5XzsgfQotfTsKLQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0
X2ludGVybmFsCi0KLXRlbXBsYXRlIDxpbnQgaywgR1RFU1RfMTBfVFlQRU5BTUVTXyhUKT4KLUdU
RVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGssIEdURVNUXzEwX1RVUExFXyhUKSkp
Ci1nZXQoR1RFU1RfMTBfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVybiBndGVzdF9pbnRlcm5hbDo6
R2V0PGs+OjpGaWVsZCh0KTsKLX0KLQotdGVtcGxhdGUgPGludCBrLCBHVEVTVF8xMF9UWVBFTkFN
RVNfKFQpPgotR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyhrLCAgR1RFU1RfMTBf
VFVQTEVfKFQpKSkKLWdldChjb25zdCBHVEVTVF8xMF9UVVBMRV8oVCkmIHQpIHsKLSAgcmV0dXJu
IGd0ZXN0X2ludGVybmFsOjpHZXQ8az46OkNvbnN0RmllbGQodCk7Ci19Ci0KLS8vIDYuMS4zLjUg
UmVsYXRpb25hbCBvcGVyYXRvcnMKLQotLy8gV2Ugb25seSBpbXBsZW1lbnQgPT0gYW5kICE9LCBh
cyB3ZSBkb24ndCBoYXZlIGEgbmVlZCBmb3IgdGhlIHJlc3QgeWV0LgotCi1uYW1lc3BhY2UgZ3Rl
c3RfaW50ZXJuYWwgewotCi0vLyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrLCBrPjo6
RXEodDEsIHQyKSByZXR1cm5zIHRydWUgaWYgdGhlCi0vLyBmaXJzdCBrIGZpZWxkcyBvZiB0MSBl
cXVhbHMgdGhlIGZpcnN0IGsgZmllbGRzIG9mIHQyLgotLy8gU2FtZVNpemVUdXBsZVByZWZpeENv
bXBhcmF0b3IoazEsIGsyKSB3b3VsZCBiZSBhIGNvbXBpbGVyIGVycm9yIGlmCi0vLyBrMSAhPSBr
Mi4KLXRlbXBsYXRlIDxpbnQga1NpemUxLCBpbnQga1NpemUyPgotc3RydWN0IFNhbWVTaXplVHVw
bGVQcmVmaXhDb21wYXJhdG9yOwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFNhbWVTaXplVHVwbGVQ
cmVmaXhDb21wYXJhdG9yPDAsIDA+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlMSwgY2xhc3Mg
VHVwbGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIC8qIHQxICovLCBjb25zdCBU
dXBsZTImIC8qIHQyICovKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX07Ci0KLXRlbXBsYXRl
IDxpbnQgaz4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrLCBrPiB7Ci0g
IHRlbXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNzIFR1cGxlMj4KLSAgc3RhdGljIGJvb2wgRXEo
Y29uc3QgVHVwbGUxJiB0MSwgY29uc3QgVHVwbGUyJiB0MikgewotICAgIHJldHVybiBTYW1lU2l6
ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrIC0gMSwgayAtIDE+OjpFcSh0MSwgdDIpICYmCi0gICAg
ICAgIDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDEpID09IDo6c3RkOjp0cjE6OmdldDxrIC0gMT4o
dDIpOwotICB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxh
dGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCksIEdURVNUXzEwX1RZUEVOQU1FU18oVSk+Ci1pbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdURVNUXzEwX1RVUExFXyhUKSYgdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB1KSB7Ci0gIHJldHVybiBn
dGVzdF9pbnRlcm5hbDo6U2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8Ci0gICAgICB0dXBs
ZV9zaXplPEdURVNUXzEwX1RVUExFXyhUKSA+Ojp2YWx1ZSwKLSAgICAgIHR1cGxlX3NpemU8R1RF
U1RfMTBfVFVQTEVfKFUpID46OnZhbHVlPjo6RXEodCwgdSk7Ci19Ci0KLXRlbXBsYXRlIDxHVEVT
VF8xMF9UWVBFTkFNRVNfKFQpLCBHVEVTVF8xMF9UWVBFTkFNRVNfKFUpPgotaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVCkmIHQsCi0gICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEdURVNUXzEwX1RVUExFXyhVKSYgdSkgeyByZXR1cm4gISh0ID09IHUpOyB9
Ci0KLS8vIDYuMS40IFBhaXJzLgotLy8gVW5pbXBsZW1lbnRlZC4KLQotfSAgLy8gbmFtZXNwYWNl
IHRyMQotfSAgLy8gbmFtZXNwYWNlIHN0ZAotCi0jdW5kZWYgR1RFU1RfMF9UVVBMRV8KLSN1bmRl
ZiBHVEVTVF8xX1RVUExFXwotI3VuZGVmIEdURVNUXzJfVFVQTEVfCi0jdW5kZWYgR1RFU1RfM19U
VVBMRV8KLSN1bmRlZiBHVEVTVF80X1RVUExFXwotI3VuZGVmIEdURVNUXzVfVFVQTEVfCi0jdW5k
ZWYgR1RFU1RfNl9UVVBMRV8KLSN1bmRlZiBHVEVTVF83X1RVUExFXwotI3VuZGVmIEdURVNUXzhf
VFVQTEVfCi0jdW5kZWYgR1RFU1RfOV9UVVBMRV8KLSN1bmRlZiBHVEVTVF8xMF9UVVBMRV8KLQot
I3VuZGVmIEdURVNUXzBfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzFfVFlQRU5BTUVTXwotI3Vu
ZGVmIEdURVNUXzJfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzNfVFlQRU5BTUVTXwotI3VuZGVm
IEdURVNUXzRfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzVfVFlQRU5BTUVTXwotI3VuZGVmIEdU
RVNUXzZfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzdfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNU
XzhfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzlfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzEw
X1RZUEVOQU1FU18KLQotI3VuZGVmIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotI3Vu
ZGVmIEdURVNUX0JZX1JFRl8KLSN1bmRlZiBHVEVTVF9BRERfUkVGXwotI3VuZGVmIEdURVNUX1RV
UExFX0VMRU1FTlRfCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9H
VEVTVF9UVVBMRV9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10dXBsZS5oLnB1bXAgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgucHVtcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDI5ZGRmZWVjYWE3NGU3MWE5ZDg5ZWM1NjhlOTg1
ODFiNzY2MmIwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXR1cGxlLmgucHVtcAorKysgL2Rldi9udWxsCkBAIC0xLDM0NyArMCwwIEBACi0kJCAtKi0gbW9k
ZTogYysrOyAtKi0KLSR2YXIgbiA9IDEwICAkJCBNYXhpbXVtIG51bWJlciBvZiB0dXBsZSBmaWVs
ZHMgd2Ugd2FudCB0byBzdXBwb3J0LgotJCQgVGhpcyBtZXRhIGNvbW1lbnQgZml4ZXMgYXV0by1p
bmRlbnRhdGlvbiBpbiBFbWFjcy4gfX0KLS8vIENvcHlyaWdodCAyMDA5IEdvb2dsZSBJbmMuCi0v
LyBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikK
LQotLy8gSW1wbGVtZW50cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUgbmVlZGVkIGJ5IEdvb2dsZSBU
ZXN0IGFuZCBHb29nbGUgTW9jay4KLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVS
TkFMX0dURVNUX1RVUExFX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfVFVQTEVfSF8KLQotI2luY2x1ZGUgPHV0aWxpdHk+ICAvLyBGb3IgOjpzdGQ6OnBhaXIu
Ci0KLS8vIFRoZSBjb21waWxlciB1c2VkIGluIFN5bWJpYW4gaGFzIGEgYnVnIHRoYXQgcHJldmVu
dHMgdXMgZnJvbSBkZWNsYXJpbmcgdGhlCi0vLyB0dXBsZSB0ZW1wbGF0ZSBhcyBhIGZyaWVuZCAo
aXQgY29tcGxhaW5zIHRoYXQgdHVwbGUgaXMgcmVkZWZpbmVkKS4gIFRoaXMKLS8vIGhhY2sgYnlw
YXNzZXMgdGhlIGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhhdCBzaG91bGQgb3RoZXJ3
aXNlIGJlCi0vLyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVkaW8gdmVyc2lvbnMgPCAx
MiBhbHNvIGhhdmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8
IChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTkwKQotIyBkZWZpbmUg
R1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNlbHNlCi0jIGRlZmluZSBH
VEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBsYXRlIDxHVEVTVF8kKG4p
X1RZUEVOQU1FU18oVSk+IGZyaWVuZCBjbGFzcyB0dXBsZTsgXAotICAgcHJpdmF0ZToKLSNlbmRp
ZgotCi0vLyBWaXN1YWwgU3R1ZGlvIDIwMTAsIDIwMTIsIGFuZCAyMDEzIGRlZmluZSBzeW1ib2xz
IGluIHN0ZDo6dHIxIHRoYXQgY29uZmxpY3QKLS8vIHdpdGggb3VyIG93biBkZWZpbml0aW9ucy4g
VGhlcmVmb3JlIHVzaW5nIG91ciBvd24gdHVwbGUgZG9lcyBub3Qgd29yayBvbgotLy8gdGhvc2Ug
Y29tcGlsZXJzLgotI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgIC8q
IDE2MDAgaXMgVmlzdWFsIFN0dWRpbyAyMDEwICovCi0jIGVycm9yICJndGVzdCdzIHR1cGxlIGRv
ZXNuJ3QgY29tcGlsZSBvbiBWaXN1YWwgU3R1ZGlvIDIwMTAgb3IgbGF0ZXIuIFwKLUdURVNUX1VT
RV9PV05fVFIxX1RVUExFIG11c3QgYmUgc2V0IHRvIDAgb24gdGhvc2UgY29tcGlsZXJzLiIKLSNl
bmRpZgotCi0KLSRyYW5nZSBpIDAuLm4tMQotJHJhbmdlIGogMC4ubgotJHJhbmdlIGsgMS4ubgot
Ly8gR1RFU1Rfbl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10dXBsZS4KLSNkZWZpbmUg
R1RFU1RfMF9UVVBMRV8oVCkgdHVwbGU8PgotCi0kZm9yIGsgW1sKLSRyYW5nZSBtIDAuLmstMQot
JHJhbmdlIG0yIGsuLm4tMQotI2RlZmluZSBHVEVTVF8kKGspX1RVUExFXyhUKSB0dXBsZTwkZm9y
IG0sIFtbVCMjJG1dXSRmb3IgbTIgW1ssIHZvaWRdXT4KLQotXV0KLQotLy8gR1RFU1Rfbl9UWVBF
TkFNRVNfKFQpIGRlY2xhcmVzIGEgbGlzdCBvZiBuIHR5cGVuYW1lcy4KLQotJGZvciBqIFtbCi0k
cmFuZ2UgbSAwLi5qLTEKLSNkZWZpbmUgR1RFU1RfJChqKV9UWVBFTkFNRVNfKFQpICRmb3IgbSwg
W1t0eXBlbmFtZSBUIyMkbV1dCi0KLQotXV0KLQotLy8gSW4gdGhlb3J5LCBkZWZpbmluZyBzdHVm
ZiBpbiB0aGUgOjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8gYmVoYXZpb3IuICBXZSBj
YW4gZG8gdGhpcyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBhIHN0YW5kYXJkCi0vLyBs
aWJyYXJ5IHZlbmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNlIHRyMSB7Ci0KLXRlbXBs
YXRlIDwkZm9yIGksIFtbdHlwZW5hbWUgVCRpID0gdm9pZF1dPgotY2xhc3MgdHVwbGU7Ci0KLS8v
IEFueXRoaW5nIGluIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCBpcyBHb29nbGUgVGVzdCdzIElO
VEVSTkFMCi0vLyBJTVBMRU1FTlRBVElPTiBERVRBSUwgYW5kIE1VU1QgTk9UIEJFIFVTRUQgRElS
RUNUTFkgaW4gdXNlciBjb2RlLgotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotLy8gQnlS
ZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhlcndpc2UgaXQncyBjb25z
dCBUJi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVmIHsgdHlwZWRlZiBjb25z
dCBUJiB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBC
eVJlZjxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3
cmFwcGVyIGZvciBCeVJlZi4KLSNkZWZpbmUgR1RFU1RfQllfUkVGXyhUKSB0eXBlbmFtZSA6OnN0
ZDo6dHIxOjpndGVzdF9pbnRlcm5hbDo6QnlSZWY8VD46OnR5cGUKLQotLy8gQWRkUmVmPFQ+Ojp0
eXBlIGlzIFQgaWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0J3MgVCYuICBUaGlzCi0v
LyBpcyB0aGUgc2FtZSBhcyB0cjE6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLXN0cnVjdCBBZGRSZWYgeyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJ
TlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZjxUJj4geyB0eXBlZGVmIFQm
IHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGZvciBBZGRSZWYuCi0j
ZGVmaW5lIEdURVNUX0FERF9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVy
bmFsOjpBZGRSZWY8VD46OnR5cGUKLQotLy8gQSBoZWxwZXIgZm9yIGltcGxlbWVudGluZyBnZXQ8
az4oKS4KLXRlbXBsYXRlIDxpbnQgaz4gY2xhc3MgR2V0OwotCi0vLyBBIGhlbHBlciBmb3IgaW1w
bGVtZW50aW5nIHR1cGxlX2VsZW1lbnQ8aywgVD4uICBrSW5kZXhWYWxpZCBpcyB0cnVlCi0vLyBp
ZmYgayA8IHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlIHR5cGUgVC4KLXRlbXBsYXRlIDxi
b29sIGtJbmRleFZhbGlkLCBpbnQga0luZGV4LCBjbGFzcyBUdXBsZT4KLXN0cnVjdCBUdXBsZUVs
ZW1lbnQ7Ci0KLQotJGZvciBpIFtbCi10ZW1wbGF0ZSA8R1RFU1RfJChuKV9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCAkaSwgR1RFU1RfJChuKV9UVVBMRV8oVCkgPiB7
Ci0gIHR5cGVkZWYgVCRpIHR5cGU7Ci19OwotCi0KLV1dCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3Rf
aW50ZXJuYWwKLQotdGVtcGxhdGUgPD4KLWNsYXNzIHR1cGxlPD4gewotIHB1YmxpYzoKLSAgdHVw
bGUoKSB7fQotICB0dXBsZShjb25zdCB0dXBsZSYgLyogdCAqLykgIHt9Ci0gIHR1cGxlJiBvcGVy
YXRvcj0oY29uc3QgdHVwbGUmIC8qIHQgKi8pIHsgcmV0dXJuICp0aGlzOyB9Ci19OwotCi0KLSRm
b3IgayBbWwotJHJhbmdlIG0gMC4uay0xCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFNRVNf
KFQpPgotY2xhc3MgJGlmIGsgPCBuIFtbR1RFU1RfJChrKV9UVVBMRV8oVCldXSAkZWxzZSBbW3R1
cGxlXV0gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3Rf
aW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogJGZvciBtLCBbW2YkKG0pXygpXV0ge30KLQot
ICBleHBsaWNpdCB0dXBsZSgkZm9yIG0sIFtbR1RFU1RfQllfUkVGXyhUJG0pIGYkbV1dKSA6IFtb
XV0KLSRmb3IgbSwgW1tmJChtKV8oZiRtKV1dIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQp
IDogJGZvciBtLCBbW2YkKG0pXyh0LmYkKG0pXyldXSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF8k
KGspX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0
KSA6ICRmb3IgbSwgW1tmJChtKV8odC5mJChtKV8pXV0ge30KLQotJGlmIGsgPT0gMiBbWwotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBsZShjb25zdCA6OnN0ZDo6
cGFpcjxVMCwgVTE+JiBwKSA6IGYwXyhwLmZpcnN0KSwgZjFfKHAuc2Vjb25kKSB7fQotCi1dXQot
Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQp
OyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9w
ZXJhdG9yPShjb25zdCBHVEVTVF8kKGspX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5
RnJvbSh0KTsKLSAgfQotCi0kaWYgayA9PSAyIFtbCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwg
dHlwZW5hbWUgVTE+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8VTAsIFUx
PiYgcCkgewotICAgIGYwXyA9IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0gICAgcmV0
dXJuICp0aGlzOwotICB9Ci0KLV1dCi0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRf
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlG
cm9tKGNvbnN0IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0KSB7Ci0KLSRmb3IgbSBbWwotICAgIGYk
KG0pXyA9IHQuZiQobSlfOwotCi1dXQotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0KLSRmb3Ig
bSBbWwotICBUJG0gZiQobSlfOwotCi1dXQotfTsKLQotCi1dXQotLy8gNi4xLjMuMiBUdXBsZSBj
cmVhdGlvbiBmdW5jdGlvbnMuCi0KLS8vIEtub3duIGxpbWl0YXRpb25zOiB3ZSBkb24ndCBzdXBw
b3J0IHBhc3NpbmcgYW4KLS8vIHN0ZDo6dHIxOjpyZWZlcmVuY2Vfd3JhcHBlcjxUPiB0byBtYWtl
X3R1cGxlKCkuICBBbmQgd2UgZG9uJ3QKLS8vIGltcGxlbWVudCB0aWUoKS4KLQotaW5saW5lIHR1
cGxlPD4gbWFrZV90dXBsZSgpIHsgcmV0dXJuIHR1cGxlPD4oKTsgfQotCi0kZm9yIGsgW1sKLSRy
YW5nZSBtIDAuLmstMQotCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFNRVNfKFQpPgotaW5s
aW5lIEdURVNUXyQoaylfVFVQTEVfKFQpIG1ha2VfdHVwbGUoJGZvciBtLCBbW2NvbnN0IFQkbSYg
ZiRtXV0pIHsKLSAgcmV0dXJuIEdURVNUXyQoaylfVFVQTEVfKFQpKCRmb3IgbSwgW1tmJG1dXSk7
Ci19Ci0KLV1dCi0KLS8vIDYuMS4zLjMgVHVwbGUgaGVscGVyIGNsYXNzZXMuCi0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUdXBsZT4gc3RydWN0IHR1cGxlX3NpemU7Ci0KLQotJGZvciBqIFtbCi10ZW1w
bGF0ZSA8R1RFU1RfJChqKV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1Rf
JChqKV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAkajsKLX07Ci0K
LQotXV0KLXRlbXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgdHVwbGVfZWxlbWVu
dCB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJuYWw6OlR1cGxlRWxlbWVudDwKLSAg
ICAgIGsgPCAodHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwgaywgVHVwbGU+Ojp0eXBlIHR5cGU7
Ci19OwotCi0jZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRfKGssIFR1cGxlKSB0eXBlbmFtZSB0
dXBsZV9lbGVtZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8gNi4xLjMuNCBFbGVtZW50IGFjY2Vz
cy4KLQotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotCi0kZm9yIGkgW1sKLXRlbXBsYXRl
IDw+Ci1jbGFzcyBHZXQ8JGk+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4K
LSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKCRpLCBUdXBsZSkp
Ci0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYkKGkpXzsgfSAgLy8gTk9MSU5UCi0KLSAg
dGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBM
RV9FTEVNRU5UXygkaSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJl
dHVybiB0LmYkKGkpXzsgfQotfTsKLQotCi1dXQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2ludGVy
bmFsCi0KLXRlbXBsYXRlIDxpbnQgaywgR1RFU1RfJChuKV9UWVBFTkFNRVNfKFQpPgotR1RFU1Rf
QUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oaywgR1RFU1RfJChuKV9UVVBMRV8oVCkpKQot
Z2V0KEdURVNUXyQobilfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVybiBndGVzdF9pbnRlcm5hbDo6
R2V0PGs+OjpGaWVsZCh0KTsKLX0KLQotdGVtcGxhdGUgPGludCBrLCBHVEVTVF8kKG4pX1RZUEVO
QU1FU18oVCk+Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGssICBHVEVTVF8k
KG4pX1RVUExFXyhUKSkpCi1nZXQoY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVCkmIHQpIHsKLSAg
cmV0dXJuIGd0ZXN0X2ludGVybmFsOjpHZXQ8az46OkNvbnN0RmllbGQodCk7Ci19Ci0KLS8vIDYu
MS4zLjUgUmVsYXRpb25hbCBvcGVyYXRvcnMKLQotLy8gV2Ugb25seSBpbXBsZW1lbnQgPT0gYW5k
ICE9LCBhcyB3ZSBkb24ndCBoYXZlIGEgbmVlZCBmb3IgdGhlIHJlc3QgeWV0LgotCi1uYW1lc3Bh
Y2UgZ3Rlc3RfaW50ZXJuYWwgewotCi0vLyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxr
LCBrPjo6RXEodDEsIHQyKSByZXR1cm5zIHRydWUgaWYgdGhlCi0vLyBmaXJzdCBrIGZpZWxkcyBv
ZiB0MSBlcXVhbHMgdGhlIGZpcnN0IGsgZmllbGRzIG9mIHQyLgotLy8gU2FtZVNpemVUdXBsZVBy
ZWZpeENvbXBhcmF0b3IoazEsIGsyKSB3b3VsZCBiZSBhIGNvbXBpbGVyIGVycm9yIGlmCi0vLyBr
MSAhPSBrMi4KLXRlbXBsYXRlIDxpbnQga1NpemUxLCBpbnQga1NpemUyPgotc3RydWN0IFNhbWVT
aXplVHVwbGVQcmVmaXhDb21wYXJhdG9yOwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFNhbWVTaXpl
VHVwbGVQcmVmaXhDb21wYXJhdG9yPDAsIDA+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlMSwg
Y2xhc3MgVHVwbGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIC8qIHQxICovLCBj
b25zdCBUdXBsZTImIC8qIHQyICovKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX07Ci0KLXRl
bXBsYXRlIDxpbnQgaz4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrLCBr
PiB7Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNzIFR1cGxlMj4KLSAgc3RhdGljIGJv
b2wgRXEoY29uc3QgVHVwbGUxJiB0MSwgY29uc3QgVHVwbGUyJiB0MikgewotICAgIHJldHVybiBT
YW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrIC0gMSwgayAtIDE+OjpFcSh0MSwgdDIpICYm
Ci0gICAgICAgIDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDEpID09IDo6c3RkOjp0cjE6OmdldDxr
IC0gMT4odDIpOwotICB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQot
dGVtcGxhdGUgPEdURVNUXyQobilfVFlQRU5BTUVTXyhUKSwgR1RFU1RfJChuKV9UWVBFTkFNRVNf
KFUpPgotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHVEVTVF8kKG4pX1RVUExFXyhUKSYg
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVSkmIHUp
IHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRv
cjwKLSAgICAgIHR1cGxlX3NpemU8R1RFU1RfJChuKV9UVVBMRV8oVCkgPjo6dmFsdWUsCi0gICAg
ICB0dXBsZV9zaXplPEdURVNUXyQobilfVFVQTEVfKFUpID46OnZhbHVlPjo6RXEodCwgdSk7Ci19
Ci0KLXRlbXBsYXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCksIEdURVNUXyQobilfVFlQRU5B
TUVTXyhVKT4KLWlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgR1RFU1RfJChuKV9UVVBMRV8o
VCkmIHQsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdURVNUXyQobilfVFVQTEVfKFUp
JiB1KSB7IHJldHVybiAhKHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0vLyBVbmltcGxl
bWVudGVkLgotCi19ICAvLyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ugc3RkCi0KLQot
JGZvciBqIFtbCi0jdW5kZWYgR1RFU1RfJChqKV9UVVBMRV8KLQotXV0KLQotCi0kZm9yIGogW1sK
LSN1bmRlZiBHVEVTVF8kKGopX1RZUEVOQU1FU18KLQotXV0KLQotI3VuZGVmIEdURVNUX0RFQ0xB
UkVfVFVQTEVfQVNfRlJJRU5EXwotI3VuZGVmIEdURVNUX0JZX1JFRl8KLSN1bmRlZiBHVEVTVF9B
RERfUkVGXwotI3VuZGVmIEdURVNUX1RVUExFX0VMRU1FTlRfCi0KLSNlbmRpZiAgLy8gR1RFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0
aWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtdHlwZS11dGlsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0NmY3Y2Zj
YjQ4M2E5NTUxYzIwYWRhMjNiNzdmOTg4MDQwNWY0ZmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDMz
MzEgKzAsMCBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQgYnkgY29tbWFuZDoKLS8vICAg
ICBwdW1wLnB5IGd0ZXN0LXR5cGUtdXRpbC5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQh
ISEKLQotLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8g
QXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0vLyBUeXBlIHV0aWxpdGll
cyBuZWVkZWQgZm9yIGltcGxlbWVudGluZyB0eXBlZCBhbmQgdHlwZS1wYXJhbWV0ZXJpemVkCi0v
LyB0ZXN0cy4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJUFQuICBETyBOT1QgRURJ
VCBCWSBIQU5EIQotLy8KLS8vIEN1cnJlbnRseSB3ZSBzdXBwb3J0IGF0IG1vc3QgNTAgdHlwZXMg
aW4gYSBsaXN0LCBhbmQgYXQgbW9zdCA1MAotLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGlu
IG9uZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlLgotLy8gUGxlYXNlIGNvbnRhY3QgZ29v
Z2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkCi0vLyBtb3JlLgot
Ci0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hf
Ci0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hf
Ci0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCi0KLS8vICNpZmRlZiBf
X0dOVUNfXyBpcyB0b28gZ2VuZXJhbCBoZXJlLiAgSXQgaXMgcG9zc2libGUgdG8gdXNlIGdjYyB3
aXRob3V0IHVzaW5nCi0vLyBsaWJzdGRjKysgKHdoaWNoIGlzIHdoZXJlIGN4eGFiaS5oIGNvbWVz
IGZyb20pLgotIyBpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfCi0jICBpbmNsdWRlIDxjeHhhYmkuaD4K
LSMgZWxpZiBkZWZpbmVkKF9fSFBfYUNDKQotIyAgaW5jbHVkZSA8YWN4eF9kZW1hbmdsZS5oPgot
IyBlbmRpZiAgLy8gR1RFU1RfSEFTSF9DWFhBQklfSF8KLQotbmFtZXNwYWNlIHRlc3Rpbmcgewot
bmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8gR2V0VHlwZU5hbWU8VD4oKSByZXR1cm5zIGEgaHVt
YW4tcmVhZGFibGUgbmFtZSBvZiB0eXBlIFQuCi0vLyBOQjogVGhpcyBmdW5jdGlvbiBpcyBhbHNv
IHVzZWQgaW4gR29vZ2xlIE1vY2ssIHNvIGRvbid0IG1vdmUgaXQgaW5zaWRlIG9mCi0vLyB0aGUg
dHlwZWQtdGVzdC1vbmx5IHNlY3Rpb24gYmVsb3cuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
ZDo6c3RyaW5nIEdldFR5cGVOYW1lKCkgewotIyBpZiBHVEVTVF9IQVNfUlRUSQotCi0gIGNvbnN0
IGNoYXIqIGNvbnN0IG5hbWUgPSB0eXBlaWQoVCkubmFtZSgpOwotIyAgaWYgR1RFU1RfSEFTX0NY
WEFCSV9IXyB8fCBkZWZpbmVkKF9fSFBfYUNDKQotICBpbnQgc3RhdHVzID0gMDsKLSAgLy8gZ2Nj
J3MgaW1wbGVtZW50YXRpb24gb2YgdHlwZWlkKFQpLm5hbWUoKSBtYW5nbGVzIHRoZSB0eXBlIG5h
bWUsCi0gIC8vIHNvIHdlIGhhdmUgdG8gZGVtYW5nbGUgaXQuCi0jICAgaWYgR1RFU1RfSEFTX0NY
WEFCSV9IXwotICB1c2luZyBhYmk6Ol9fY3hhX2RlbWFuZ2xlOwotIyAgIGVuZGlmICAvLyBHVEVT
VF9IQVNfQ1hYQUJJX0hfCi0gIGNoYXIqIGNvbnN0IHJlYWRhYmxlX25hbWUgPSBfX2N4YV9kZW1h
bmdsZShuYW1lLCAwLCAwLCAmc3RhdHVzKTsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZV9zdHIo
c3RhdHVzID09IDAgPyByZWFkYWJsZV9uYW1lIDogbmFtZSk7Ci0gIGZyZWUocmVhZGFibGVfbmFt
ZSk7Ci0gIHJldHVybiBuYW1lX3N0cjsKLSMgIGVsc2UKLSAgcmV0dXJuIG5hbWU7Ci0jICBlbmRp
ZiAgLy8gR1RFU1RfSEFTX0NYWEFCSV9IXyB8fCBfX0hQX2FDQwotCi0jIGVsc2UKLQotICByZXR1
cm4gIjx0eXBlPiI7Ci0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCi19Ci0KLSNpZiBHVEVT
VF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLS8vIEFzc2VydHlU
eXBlRXE8VDEsIFQyPjo6dHlwZSBpcyBkZWZpbmVkIGlmZiBUMSBhbmQgVDIgYXJlIHRoZSBzYW1l
Ci0vLyB0eXBlLiAgVGhpcyBjYW4gYmUgdXNlZCBhcyBhIGNvbXBpbGUtdGltZSBhc3NlcnRpb24g
dG8gZW5zdXJlIHRoYXQKLS8vIHR3byB0eXBlcyBhcmUgZXF1YWwuCi0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgQXNzZXJ0VHlwZUVxOwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLXN0cnVjdCBBc3NlcnRUeXBlRXE8VCwgVD4gewotICB0eXBlZGVmIGJvb2wg
dHlwZTsKLX07Ci0KLS8vIEEgdW5pcXVlIHR5cGUgdXNlZCBhcyB0aGUgZGVmYXVsdCB2YWx1ZSBm
b3IgdGhlIGFyZ3VtZW50cyBvZiBjbGFzcwotLy8gdGVtcGxhdGUgVHlwZXMuICBUaGlzIGFsbG93
cyB1cyB0byBzaW11bGF0ZSB2YXJpYWRpYyB0ZW1wbGF0ZXMKLS8vIChlLmcuIFR5cGVzPGludD4s
IFR5cGU8aW50LCBkb3VibGU+LCBhbmQgZXRjKSwgd2hpY2ggQysrIGRvZXNuJ3QKLS8vIHN1cHBv
cnQgZGlyZWN0bHkuCi1zdHJ1Y3QgTm9uZSB7fTsKLQotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkg
b2Ygc3RydWN0IGFuZCBzdHJ1Y3QgdGVtcGxhdGVzIGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQg
dHlwZSBsaXN0cy4gIEluIHBhcnRpY3VsYXIsIFR5cGVzTjxUMSwgVDIsIC4uLiwgVE4+Ci0vLyBy
ZXByZXNlbnRzIGEgdHlwZSBsaXN0IHdpdGggTiB0eXBlcyAoVDEsIFQyLCAuLi4sIGFuZCBUTikg
aW4gaXQuCi0vLyBFeGNlcHQgZm9yIFR5cGVzMCwgZXZlcnkgc3RydWN0IGluIHRoZSBmYW1pbHkg
aGFzIHR3byBtZW1iZXIgdHlwZXM6Ci0vLyBIZWFkIGZvciB0aGUgZmlyc3QgdHlwZSBpbiB0aGUg
bGlzdCwgYW5kIFRhaWwgZm9yIHRoZSByZXN0IG9mIHRoZQotLy8gbGlzdC4KLQotLy8gVGhlIGVt
cHR5IHR5cGUgbGlzdC4KLXN0cnVjdCBUeXBlczAge307Ci0KLS8vIFR5cGUgbGlzdHMgb2YgbGVu
Z3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxPgotc3RydWN0
IFR5cGVzMSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczAgVGFpbDsKLX07
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotc3RydWN0IFR5cGVzMiB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczE8VDI+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLXN0cnVjdCBUeXBl
czMgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyPFQyLCBUMz4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUND4KLXN0cnVjdCBUeXBlczQgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVk
ZWYgVHlwZXMzPFQyLCBUMywgVDQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1Pgotc3Ry
dWN0IFR5cGVzNSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQ8VDIsIFQz
LCBUNCwgVDU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
Pgotc3RydWN0IFR5cGVzNiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczU8
VDIsIFQzLCBUNCwgVDUsIFQ2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+Ci1zdHJ1Y3QgVHlwZXM3IHsKLSAgdHlwZWRlZiBUMSBI
ZWFkOwotICB0eXBlZGVmIFR5cGVzNjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4Pgotc3RydWN0IFR5cGVzOCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBU
eXBlczc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5Pgotc3RydWN0IFR5cGVzOSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBU
eXBlczg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwPgotc3RydWN0IFR5cGVzMTAgewotICB0eXBlZGVmIFQx
IEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMT4KLXN0cnVjdCBUeXBlczExIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzMTA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMj4KLXN0cnVjdCBUeXBlczEyIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwot
ICB0eXBlZGVmIFR5cGVzMTE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTM+Ci1zdHJ1Y3QgVHlwZXMx
MyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczEyPFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzPiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxND4KLXN0cnVjdCBUeXBlczE0IHsKLSAgdHlwZWRl
ZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNT4KLXN0cnVjdCBUeXBlczE1IHsKLSAg
dHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTQ8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNT4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTY+Ci1zdHJ1Y3QgVHlwZXMxNiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAg
dHlwZWRlZiBUeXBlczE1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNz4KLXN0cnVjdCBUeXBlczE3IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0
eXBlZGVmIFR5cGVzMTY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTc+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOD4KLXN0cnVjdCBUeXBlczE4IHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQx
OD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTk+Ci1zdHJ1Y3QgVHlwZXMxOSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlczE4PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOT4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMD4KLXN0cnVjdCBUeXBlczIwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzMTk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxPgotc3RydWN0IFR5cGVzMjEgewotICB0
eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyPgotc3RydWN0IFR5cGVzMjIgewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXMyMTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMz4KLXN0cnVjdCBUeXBlczIzIHsKLSAgdHlwZWRlZiBUMSBI
ZWFkOwotICB0eXBlZGVmIFR5cGVzMjI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0Pgotc3RydWN0IFR5
cGVzMjQgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyMzxUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
ICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0PiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1Pgotc3RydWN0IFR5cGVzMjUgewotICB0eXBl
ZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjU+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2Pgotc3RydWN0IFR5cGVzMjYg
ewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyNTxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNj4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNz4KLXN0cnVjdCBUeXBlczI3IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzMjY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
Pgotc3RydWN0IFR5cGVzMjggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMy
NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlw
ZW5hbWUgVDI5Pgotc3RydWN0IFR5cGVzMjkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVk
ZWYgVHlwZXMyODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjk+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBU
MjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzA+Ci1zdHJ1Y3QgVHlw
ZXMzMCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI5PFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LAotICAgICAgVDMwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgs
IHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMT4KLXN0cnVjdCBU
eXBlczMxIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzA8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAg
ICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMj4KLXN0cnVjdCBUeXBlczMyIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzMzE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMy
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzM+Ci1zdHJ1
Y3QgVHlwZXMzMyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczMyPFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwK
LSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzPiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5h
bWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5
cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzND4KLXN0
cnVjdCBUeXBlczM0IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzM8VDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzND4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNT4KLXN0cnVjdCBUeXBlczM1IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwot
ICB0eXBlZGVmIFR5cGVzMzQ8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5
cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMy
LCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1l
IFQzNj4KLXN0cnVjdCBUeXBlczM2IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzMzU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzc+Ci1zdHJ1Y3QgVHlwZXMzNyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlczM2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLXN0cnVjdCBUeXBlczM4IHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzc8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVu
YW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0
eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOT4KLXN0cnVjdCBUeXBlczM5IHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
ICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1l
IFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDA+Ci1zdHJ1Y3QgVHlwZXM0MCB7Ci0gIHR5
cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczM5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxPgotc3RydWN0IFR5cGVzNDEgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYg
VHlwZXM0MDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDE+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBU
MjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5h
bWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFt
ZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlw
ZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDI+
Ci1zdHJ1Y3QgVHlwZXM0MiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQx
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyPiBUYWlsOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUg
VDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVu
YW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0
eXBlbmFtZSBUNDM+Ci1zdHJ1Y3QgVHlwZXM0MyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlczQyPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAg
ICAgVDQzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVu
YW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0ND4KLXN0cnVj
dCBUeXBlczQ0IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDM8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0ND4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAg
ICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQs
IHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUg
VDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVu
YW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NT4KLXN0cnVj
dCBUeXBlczQ1IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDQ8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1PiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1l
IFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBl
bmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwg
dHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAot
ICAgIHR5cGVuYW1lIFQ0Nj4KLXN0cnVjdCBUeXBlczQ2IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwot
ICB0eXBlZGVmIFR5cGVzNDU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIs
IFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBl
bmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mywg
dHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBU
NDc+Ci1zdHJ1Y3QgVHlwZXM0NyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBl
czQ2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgICBU
NDQsIFQ0NSwgVDQ2LCBUNDc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5
cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2
LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAs
Ci0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUg
VDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVu
YW1lIFQ0OD4KLXN0cnVjdCBUeXBlczQ4IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVm
IFR5cGVzNDc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAg
ICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUg
VDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OT4KLXN0cnVjdCBUeXBlczQ5IHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
Ci0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQx
LCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUs
Ci0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUg
VDQ5LCB0eXBlbmFtZSBUNTA+Ci1zdHJ1Y3QgVHlwZXM1MCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsK
LSAgdHlwZWRlZiBUeXBlczQ5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQy
LCBUNDMsCi0gICAgICBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+IFRhaWw7Ci19
OwotCi0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBXZSBkb24ndCB3YW50IHRvIHJl
cXVpcmUgdGhlIHVzZXJzIHRvIHdyaXRlIFR5cGVzTjwuLi4+IGRpcmVjdGx5LAotLy8gYXMgdGhh
dCB3b3VsZCByZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4gIFR5cGVzPC4uLj4gaXMg
bXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1lc3NhZ2Vz
IHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3RzIG9uIHBy
aW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBpdCBoYXMgdGhl
IGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVHlwZXM8aW50PgotLy8gd2lsbCBhcHBlYXIgYXMg
VHlwZXM8aW50LCBOb25lLCBOb25lLCAuLi4sIE5vbmU+IGluIHRoZSBjb21waWxlcgotLy8gZXJy
b3JzKS4KLS8vCi0vLyBPdXIgc29sdXRpb24gaXMgdG8gY29tYmluZSB0aGUgYmVzdCBwYXJ0IG9m
IHRoZSB0d28gYXBwcm9hY2hlczogYQotLy8gdXNlciB3b3VsZCB3cml0ZSBUeXBlczxUMSwgLi4u
LCBUTj4sIGFuZCBHb29nbGUgVGVzdCB3aWxsIHRyYW5zbGF0ZQotLy8gdGhhdCB0byBUeXBlc048
VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFi
bGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUK
LS8vIFR5cGVzIHRlbXBsYXRlLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQxID0gaW50ZXJuYWw6Ok5v
bmUsIHR5cGVuYW1lIFQyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDMgPSBpbnRl
cm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBU
NSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNiA9IGludGVybmFsOjpOb25lLAotICAgIHR5
cGVuYW1lIFQ3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ4ID0gaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgdHlwZW5hbWUgVDkgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDEwID0gaW50ZXJu
YWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDExID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQx
MiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQxMyA9IGludGVybmFsOjpOb25lLCB0
eXBlbmFtZSBUMTQgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMTUgPSBpbnRlcm5h
bDo6Tm9uZSwgdHlwZW5hbWUgVDE2ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDE3
ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQxOCA9IGludGVybmFsOjpOb25lLAotICAgIHR5
cGVuYW1lIFQxOSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMjAgPSBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICB0eXBlbmFtZSBUMjEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDIyID0gaW50
ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDIzID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1l
IFQyNCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQyNSA9IGludGVybmFsOjpOb25l
LCB0eXBlbmFtZSBUMjYgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjcgPSBpbnRl
cm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDI4ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUg
VDI5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQzMCA9IGludGVybmFsOjpOb25lLAotICAg
IHR5cGVuYW1lIFQzMSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMzIgPSBpbnRlcm5hbDo6
Tm9uZSwKLSAgICB0eXBlbmFtZSBUMzMgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDM0ID0g
aW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDM1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVu
YW1lIFQzNiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQzNyA9IGludGVybmFsOjpO
b25lLCB0eXBlbmFtZSBUMzggPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMzkgPSBp
bnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQwID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5h
bWUgVDQxID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ0MiA9IGludGVybmFsOjpOb25lLAot
ICAgIHR5cGVuYW1lIFQ0MyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNDQgPSBpbnRlcm5h
bDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNDUgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQ2
ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDQ3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5
cGVuYW1lIFQ0OCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ0OSA9IGludGVybmFs
OjpOb25lLCB0eXBlbmFtZSBUNTAgPSBpbnRlcm5hbDo6Tm9uZT4KLXN0cnVjdCBUeXBlcyB7Ci0g
IHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgs
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5LCBU
NTA+IHR5cGU7Ci19OwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFR5cGVzPGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBl
ZGVmIGludGVybmFsOjpUeXBlczAgdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTxUMT4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczI8VDEs
IFQyPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBp
bnRlcm5hbDo6VHlwZXMzPFQxLCBUMiwgVDM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0Pgotc3RydWN0IFR5cGVz
PFQxLCBUMiwgVDMsIFQ0LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0PFQxLCBUMiwgVDMsIFQ0PiB0
eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVy
bmFsOjpUeXBlczU8VDEsIFQyLCBUMywgVDQsIFQ1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczY8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAg
dHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4g
dHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYg
aW50ZXJuYWw6OlR5cGVzOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiB0eXBl
OwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4KLXN0cnVjdCBUeXBlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBp
bnRlcm5hbDo6VHlwZXMxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyPgotc3RydWN0IFR5cGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTI8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTI+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTM+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJu
YWw6OlR5cGVzMTQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwKLSAgICAgIFQxMywgVDE0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMx
NTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAg
ICAgVDEzLCBUMTQsIFQxNT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2Pgotc3RydWN0IFR5cGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgVDE2LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlw
ZXMxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAot
ICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGlu
dGVybmFsOjpUeXBlczE3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNz4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOD4KLXN0cnVjdCBUeXBlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgIFQxNiwgVDE3LCBUMTgsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTk8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAg
IFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjA+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjE+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGlu
dGVybmFsOjpUeXBlczIxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
Mj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczIyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjM+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJu
YWw6OlR5cGVzMjM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQx
NSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBl
ZGVmIGludGVybmFsOjpUeXBlczI0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0
eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjY+Ci1zdHJ1Y3QgVHlw
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czI2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsCi0gICAgICBUMjY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3Pgotc3RydWN0IFR5cGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjc8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LAotICAgICAgVDI3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4Pgotc3RydWN0IFR5cGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczI4PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAg
IFQyNywgVDI4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczI5PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAg
IFQyNywgVDI4LCBUMjk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBl
bmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwg
dHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAot
ICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQy
OSwgdHlwZW5hbWUgVDMwPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
IFQzMCwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczMwPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAg
ICAgIFQyNywgVDI4LCBUMjksIFQzMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlw
ZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxPgotc3RydWN0IFR5cGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzMTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMT4gdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBU
MjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5h
bWUgVDMxLCB0eXBlbmFtZSBUMzI+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
IFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlw
ZWRlZiBpbnRlcm5hbDo6VHlwZXMzMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAg
ICBUMzEsIFQzMiwgVDMzLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczMzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMz4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEs
IFQzMiwgVDMzLCBUMzQsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzNDxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAg
ICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzND4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzU+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5
cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1l
IFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBl
bmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAg
dHlwZW5hbWUgVDM2Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQz
MCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlw
ZWRlZiBpbnRlcm5hbDo6VHlwZXMzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzY+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBl
bmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwg
dHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAot
ICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBU
MjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzc+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5h
bWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5
cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlw
ZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzg+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzg8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFt
ZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUs
Ci0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXMzOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVu
YW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0
eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQz
MSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1
LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1l
IFQzOSwgdHlwZW5hbWUgVDQwPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDA8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAot
ICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LAotICAgICAgVDQwPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1l
IFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4g
ewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywg
VDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLAotICAgICAgVDQxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBU
MjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQy
NSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFt
ZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlw
ZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYs
IHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwK
LSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0Mj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewot
ICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4
LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLAotICAgICAgVDQxLCBUNDI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDM+Ci1zdHJ1Y3Qg
VHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
PiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3
LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQs
IHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUg
VDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVu
YW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0
eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5
cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQz
LCB0eXBlbmFtZSBUNDQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwg
VDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0
MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQ0PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQz
NiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0MywgVDQ0PiB0eXBlOwot
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5
cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4
LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1l
IFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NT4KLXN0cnVjdCBU
eXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0
NSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczQ1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBU
MzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBU
NDIsIFQ0MywgVDQ0LCBUNDU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAot
ICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0
NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0Nj4KLXN0cnVjdCBUeXBlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQz
NiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwKLSAgICBUNDYs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDY8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAg
ICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcs
IFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2PiB0eXBl
OwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAg
ICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQs
IHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUg
VDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVu
YW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0
eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwKLSAgICBUNDYsIFQ0NywgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVm
IGludGVybmFsOjpUeXBlczQ3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAg
ICAgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3PiB0eXBlOwotfTsKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwK
LSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBU
MzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5h
bWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5
cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywg
VDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBUNDgs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpU
eXBlczQ4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
Ci0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIs
IFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUg
VDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwKLSAgICBUNDYsIFQ0
NywgVDQ4LCBUNDksIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
NDk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAg
ICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQz
LCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5PiB0eXBlOwotfTsKLQotbmFtZXNwYWNlIGlu
dGVybmFsIHsKLQotIyBkZWZpbmUgR1RFU1RfVEVNUExBVEVfIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBjbGFzcwotCi0vLyBUaGUgdGVtcGxhdGUgInNlbGVjdG9yIiBzdHJ1Y3QgVGVtcGxhdGVTZWw8
VG1wbD4gaXMgdXNlZCB0bwotLy8gcmVwcmVzZW50IFRtcGwsIHdoaWNoIG11c3QgYmUgYSBjbGFz
cyB0ZW1wbGF0ZSB3aXRoIG9uZSB0eXBlCi0vLyBwYXJhbWV0ZXIsIGFzIGEgdHlwZS4gIFRlbXBs
YXRlU2VsPFRtcGw+OjpCaW5kPFQ+Ojp0eXBlIGlzIGRlZmluZWQKLS8vIGFzIHRoZSB0eXBlIFRt
cGw8VD4uICBUaGlzIGFsbG93cyB1cyB0byBhY3R1YWxseSBpbnN0YW50aWF0ZSB0aGUKLS8vIHRl
bXBsYXRlICJzZWxlY3RlZCIgYnkgVGVtcGxhdGVTZWw8VG1wbD4uCi0vLwotLy8gVGhpcyB0cmlj
ayBpcyBuZWNlc3NhcnkgZm9yIHNpbXVsYXRpbmcgdHlwZWRlZiBmb3IgY2xhc3MgdGVtcGxhdGVz
LAotLy8gd2hpY2ggQysrIGRvZXNuJ3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVG1wbD4KLXN0cnVjdCBUZW1wbGF0ZVNlbCB7Ci0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotICBzdHJ1Y3QgQmluZCB7Ci0gICAgdHlwZWRlZiBUbXBsPFQ+IHR5cGU7Ci0gIH07
Ci19OwotCi0jIGRlZmluZSBHVEVTVF9CSU5EXyhUbXBsU2VsLCBUKSBcCi0gIFRtcGxTZWw6OnRl
bXBsYXRlIEJpbmQ8VD46OnR5cGUKLQotLy8gQSB1bmlxdWUgc3RydWN0IHRlbXBsYXRlIHVzZWQg
YXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZQotLy8gYXJndW1lbnRzIG9mIGNsYXNzIHRlbXBs
YXRlIFRlbXBsYXRlcy4gIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRlCi0vLyB2YXJpYWRpYyB0
ZW1wbGF0ZXMgKGUuZy4gVGVtcGxhdGVzPGludD4sIFRlbXBsYXRlczxpbnQsIGRvdWJsZT4sCi0v
LyBhbmQgZXRjKSwgd2hpY2ggQysrIGRvZXNuJ3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotc3RydWN0IE5vbmVUIHt9OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWls
eSBvZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2Vu
dCB0ZW1wbGF0ZSBsaXN0cy4gIEluIHBhcnRpY3VsYXIsIFRlbXBsYXRlc048VDEsIFQyLCAuLi4s
Ci0vLyBUTj4gcmVwcmVzZW50cyBhIGxpc3Qgb2YgTiB0ZW1wbGF0ZXMgKFQxLCBUMiwgLi4uLCBh
bmQgVE4pLiAgRXhjZXB0Ci0vLyBmb3IgVGVtcGxhdGVzMCwgZXZlcnkgc3RydWN0IGluIHRoZSBm
YW1pbHkgaGFzIHR3byBtZW1iZXIgdHlwZXM6Ci0vLyBIZWFkIGZvciB0aGUgc2VsZWN0b3Igb2Yg
dGhlIGZpcnN0IHRlbXBsYXRlIGluIHRoZSBsaXN0LCBhbmQgVGFpbAotLy8gZm9yIHRoZSByZXN0
IG9mIHRoZSBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdGVtcGxhdGUgbGlzdC4KLXN0cnVjdCBUZW1w
bGF0ZXMwIHt9OwotCi0vLyBUZW1wbGF0ZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNv
IG9uLgotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczEg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczAg
VGFpbDsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8g
VDI+Ci1zdHJ1Y3QgVGVtcGxhdGVzMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTxUMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzPgotc3Ry
dWN0IFRlbXBsYXRlczMgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczI8VDIsIFQzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0Pgotc3RydWN0IFRlbXBsYXRlczQgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczM8VDIsIFQzLCBUND4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1Pgotc3RydWN0IFRlbXBsYXRlczUgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFk
OwotICB0eXBlZGVmIFRlbXBsYXRlczQ8VDIsIFQzLCBUNCwgVDU+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBM
QVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RF
U1RfVEVNUExBVEVfIFQ2Pgotc3RydWN0IFRlbXBsYXRlczYgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczU8VDIsIFQzLCBUNCwgVDUsIFQ2PiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDc+
Ci1zdHJ1Y3QgVGVtcGxhdGVzNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzNjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9U
RU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUs
IEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBM
QVRFXyBUOD4KLXN0cnVjdCBUZW1wbGF0ZXM4IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM3PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5Pgotc3RydWN0IFRlbXBsYXRl
czkgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTA+Ci1zdHJ1Y3QgVGVt
cGxhdGVzMTAgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRl
bXBsYXRlczk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMT4KLXN0cnVjdCBUZW1wbGF0ZXMxMSB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTA8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyPgotc3RydWN0IFRlbXBsYXRlczEyIHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzPgot
c3RydWN0IFRlbXBsYXRlczEzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXMxMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1Q
TEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQ+
Ci1zdHJ1Y3QgVGVtcGxhdGVzMTQgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwot
ICB0eXBlZGVmIFRlbXBsYXRlczEzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1Rf
VEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBU
MTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1Rf
VEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNT4KLXN0cnVjdCBUZW1wbGF0ZXMxNSB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTQ8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNj4KLXN0cnVjdCBUZW1w
bGF0ZXMxNiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMTU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3Pgotc3RydWN0IFRlbXBsYXRlczE3IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxNjxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBU
MTYsIFQxNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNU
X1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8g
VDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNU
X1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVf
IFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOD4KLXN0cnVjdCBUZW1wbGF0ZXMxOCB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTc8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQx
NSwgVDE2LCBUMTcsIFQxOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBU
MTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1Rf
VEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE5Pgotc3RydWN0IFRlbXBsYXRlczE5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVh
ZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMD4KLXN0cnVjdCBUZW1wbGF0ZXMyMCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+
IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVT
VF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVf
IFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVT
VF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRF
XyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RF
U1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMT4KLXN0cnVjdCBUZW1wbGF0ZXMy
MSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MjA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMT4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjI+Ci1zdHJ1Y3QgVGVtcGxh
dGVzMjIgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBs
YXRlczIxPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBU
MiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVN
UExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBH
VEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBU
MTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1Rf
VEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8g
VDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNU
X1RFTVBMQVRFXyBUMjM+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjMgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczIyPFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBM
QVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RF
U1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRF
XyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RF
U1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBU
MjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1Rf
VEVNUExBVEVfIFQyND4KLXN0cnVjdCBUZW1wbGF0ZXMyNCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgs
IEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1Q
TEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMs
IEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFU
RV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdU
RVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNT4KLXN0cnVjdCBUZW1w
bGF0ZXMyNSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMjQ8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBM
QVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwg
R1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1Q
TEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTks
IEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2Pgotc3RydWN0IFRlbXBs
YXRlczI2IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMyNTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBU
MTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1Rf
VEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVN
UExBVEVfIFQyNz4KLXN0cnVjdCBUZW1wbGF0ZXMyNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNz4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEw
LCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExB
VEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBH
VEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBM
QVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwg
R1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI4Pgotc3RydWN0IFRlbXBsYXRlczI4IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExB
VEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVT
VF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExB
VEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBH
VEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBM
QVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwg
R1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjk+Ci1zdHJ1Y3QgVGVtcGxh
dGVzMjkgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBs
YXRlczI4PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOT4gVGFpbDsKLX07Ci0KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMs
IEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVN
UExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4
LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwPgotc3RydWN0IFRlbXBs
YXRlczMwIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMyOTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMD4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzE+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzEgewotICB0eXBlZGVmIFRlbXBs
YXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczMwPFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OCwKLSAgICAgIFQyOSwgVDMwLCBUMzE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyPgotc3RydWN0IFRlbXBsYXRlczMyIHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzMTxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1Rf
VEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzPgotc3RydWN0IFRl
bXBsYXRlczMzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXMzMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RF
TVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQx
NywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9U
RU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1Q
TEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIs
IEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzND4KLXN0cnVjdCBU
ZW1wbGF0ZXMzNCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMzM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RF
U1RfVEVNUExBVEVfIFQzNT4KLXN0cnVjdCBUZW1wbGF0ZXMzNSB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzQ8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1PiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9U
RU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUs
IEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBM
QVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdU
RVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8g
VDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNU
X1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVf
IFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVT
VF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQz
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9U
RU1QTEFURV8gVDM2Pgotc3RydWN0IFRlbXBsYXRlczM2IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNl
bDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3Pgotc3RydWN0IFRlbXBsYXRl
czM3IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXMzNjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVf
IFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNU
X1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVf
IFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVT
VF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQy
NCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9U
RU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBU
MjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1Rf
VEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzg+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzgg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczM3
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
Ci0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RF
U1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBU
MjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1Rf
VEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8g
VDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNU
X1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5
Pgotc3RydWN0IFRlbXBsYXRlczM5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMzODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEw
LCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExB
VEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBH
VEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBM
QVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwg
R1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRF
XyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RF
U1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFU
RV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDA+Ci1z
dHJ1Y3QgVGVtcGxhdGVzNDAgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0
eXBlZGVmIFRlbXBsYXRlczM5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDA+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdU
RVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExB
VEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBH
VEVTVF9URU1QTEFURV8gVDQxPgotc3RydWN0IFRlbXBsYXRlczQxIHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MDxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLCBUNDE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8g
VDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1Rf
VEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8g
VDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNU
X1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RF
TVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQy
OSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9U
RU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1Q
TEFURV8gVDQyPgotc3RydWN0IFRlbXBsYXRlczQyIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAg
ICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsCi0gICAgICBUNDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8g
VDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNU
X1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVf
IFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVT
VF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQz
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9U
RU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDM+Ci1zdHJ1Y3QgVGVtcGxhdGVz
NDMgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czQyPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzPiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8g
VDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNU
X1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0Pgotc3RydWN0IFRlbXBsYXRlczQ0
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0
MzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExB
VEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVT
VF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExB
VEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBH
VEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBM
QVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwg
R1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRF
XyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RF
U1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFU
RV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdU
RVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8g
VDQ1Pgotc3RydWN0IFRlbXBsYXRlczQ1IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVh
ZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBU
NDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1Rf
VEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVN
UExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQx
LCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RF
TVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
Nj4KLXN0cnVjdCBUZW1wbGF0ZXM0NiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1LCBUNDY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVf
IFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVT
VF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRF
XyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RF
U1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBU
MzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1Rf
VEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8g
VDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNU
X1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0Nz4KLXN0cnVjdCBUZW1wbGF0ZXM0NyB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDY8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1LCBUNDYs
IFQ0Nz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RF
TVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQx
NywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9U
RU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1Q
TEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIs
IEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVN
UExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3
LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExB
VEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBH
VEVTVF9URU1QTEFURV8gVDQ4Pgotc3RydWN0IFRlbXBsYXRlczQ4IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NzxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBU
NDg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExB
VEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBH
VEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBM
QVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywg
R1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRF
XyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0NywgR1RF
U1RfVEVNUExBVEVfIFQ0OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5Pgotc3RydWN0IFRlbXBs
YXRlczQ5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXM0ODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0
MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxH
VEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQz
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1Q
TEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdU
RVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFU
RV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdU
RVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8g
VDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNU
X1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVf
IFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVT
VF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQz
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9U
RU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBU
NDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1Rf
VEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNDksIEdURVNUX1RFTVBMQVRFXyBUNTA+Ci1zdHJ1Y3QgVGVtcGxhdGVzNTAg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQ5
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
Ci0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQs
IFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+IFRhaWw7Ci19OwotCi0KLS8vIFdlIGRvbid0
IHdhbnQgdG8gcmVxdWlyZSB0aGUgdXNlcnMgdG8gd3JpdGUgVGVtcGxhdGVzTjwuLi4+IGRpcmVj
dGx5LAotLy8gYXMgdGhhdCB3b3VsZCByZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4g
IFRlbXBsYXRlczwuLi4+IGlzIG11Y2gKLS8vIGVhc2llciB0byB3cml0ZSwgYnV0IGdlbmVyYXRl
cyBob3JyaWJsZSBtZXNzYWdlcyB3aGVuIHRoZXJlIGlzIGEKLS8vIGNvbXBpbGVyIGVycm9yLCBh
cyBnY2MgaW5zaXN0cyBvbiBwcmludGluZyBvdXQgZWFjaCB0ZW1wbGF0ZQotLy8gYXJndW1lbnQs
IGV2ZW4gaWYgaXQgaGFzIHRoZSBkZWZhdWx0IHZhbHVlICh0aGlzIG1lYW5zIFRlbXBsYXRlczxs
aXN0PgotLy8gd2lsbCBhcHBlYXIgYXMgVGVtcGxhdGVzPGxpc3QsIE5vbmVULCBOb25lVCwgLi4u
LCBOb25lVD4gaW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgotLy8KLS8vIE91ciBzb2x1dGlv
biBpcyB0byBjb21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3byBhcHByb2FjaGVzOiBhCi0v
LyB1c2VyIHdvdWxkIHdyaXRlIFRlbXBsYXRlczxUMSwgLi4uLCBUTj4sIGFuZCBHb29nbGUgVGVz
dCB3aWxsIHRyYW5zbGF0ZQotLy8gdGhhdCB0byBUZW1wbGF0ZXNOPFQxLCAuLi4sIFROPiBpbnRl
cm5hbGx5IHRvIG1ha2UgZXJyb3IgbWVzc2FnZXMKLS8vIHJlYWRhYmxlLiAgVGhlIHRyYW5zbGF0
aW9uIGlzIGRvbmUgYnkgdGhlICd0eXBlJyBtZW1iZXIgb2YgdGhlCi0vLyBUZW1wbGF0ZXMgdGVt
cGxhdGUuCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxID0gTm9uZVQsIEdURVNUX1RFTVBM
QVRFXyBUMiA9IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUMyA9IE5vbmVULCBHVEVTVF9U
RU1QTEFURV8gVDQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDUgPSBOb25lVCwgR1RF
U1RfVEVNUExBVEVfIFQ2ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3ID0gTm9uZVQs
IEdURVNUX1RFTVBMQVRFXyBUOCA9IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUOSA9IE5v
bmVULCBHVEVTVF9URU1QTEFURV8gVDEwID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDEyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDE0ID0gTm9uZVQsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDE2ID0gTm9uZVQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDE4ID0gTm9uZVQs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDIwID0g
Tm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8g
VDIyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMyA9IE5vbmVULCBHVEVTVF9URU1Q
TEFURV8gVDI0ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSA9IE5vbmVULCBHVEVT
VF9URU1QTEFURV8gVDI2ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNyA9IE5vbmVU
LCBHVEVTVF9URU1QTEFURV8gVDI4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOSA9
IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDMwID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzMSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDMyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzMyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDM0ID0gTm9uZVQsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzNSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDM2ID0gTm9uZVQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzNyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDM4ID0gTm9u
ZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzOSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDQw
ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MSA9IE5vbmVULCBHVEVTVF9URU1QTEFU
RV8gVDQyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MyA9IE5vbmVULCBHVEVTVF9U
RU1QTEFURV8gVDQ0ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NSA9IE5vbmVULCBH
VEVTVF9URU1QTEFURV8gVDQ2ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NyA9IE5v
bmVULCBHVEVTVF9URU1QTEFURV8gVDQ4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
OSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDUwID0gTm9uZVQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0
MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1
MD4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgVGVtcGxhdGVzPE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMwIHR5cGU7Ci19Owot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczE8VDE+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyPgotc3Ry
dWN0IFRlbXBsYXRlczxUMSwgVDIsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMjxUMSwgVDI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDM+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzxUMSwgVDIsIFQzPiB0
eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBU
MiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUND4KLXN0cnVjdCBU
ZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0PFQxLCBUMiwg
VDMsIFQ0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0
eXBlZGVmIFRlbXBsYXRlczU8VDEsIFQyLCBUMywgVDQsIFQ1PiB0eXBlOwotfTsKLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDY+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4g
ewotICB0eXBlZGVmIFRlbXBsYXRlczc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXM4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiB0eXBlOwotfTsKLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwPgotc3RydWN0
IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTE+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8g
VDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1Rf
VEVNUExBVEVfIFQxMj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyPiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTM+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczEzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTM+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxND4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVm
IFRlbXBsYXRlczE0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICAgIFQxND4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBU
MTUsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czE1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICAgIFQxNCwgVDE1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBU
MTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNj4KLXN0cnVj
dCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNj4gdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RF
TVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwg
R1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExB
VEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RF
U1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTc+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXMxNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTc+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4Pgotc3Ry
dWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewot
ICB0eXBlZGVmIFRlbXBsYXRlczE4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4PiB0eXBl
OwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5Pgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXMxOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5PiB0eXBlOwotfTsKLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwPgotc3RydWN0IFRl
bXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMjA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPiB0eXBl
OwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczIxPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8g
VDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNU
X1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIx
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjI+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczIyPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBM
QVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMz4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBl
ZGVmIFRlbXBsYXRlczIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0Pgotc3Ry
dWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRl
bXBsYXRlczI0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNT4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBM
QVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RF
U1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVf
IFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1Rf
VEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVN
UExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIz
LCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RF
TVBMQVRFXyBUMjY+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMyNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjY+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRF
XyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RF
U1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFU
RV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI3PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAg
IFQyNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyOD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBU
Mjg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExB
VEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVT
VF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExB
VEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBH
VEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBM
QVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwg
R1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjk+Ci1zdHJ1Y3QgVGVtcGxh
dGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyOTxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywKLSAgICAgIFQyOCwgVDI5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwg
VDI5LCBUMzA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RF
TVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMT4KLXN0cnVjdCBUZW1wbGF0ZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczMxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAg
ICAgVDI4LCBUMjksIFQzMCwgVDMxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RF
U1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBU
MjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1Rf
VEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8g
VDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNU
X1RFTVBMQVRFXyBUMzI+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksCi0gICAgVDMwLCBUMzEsIFQzMiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMzI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQz
Mj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwg
VDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMzMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3
LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RF
TVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
MiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBM
QVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwg
R1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0Pgotc3RydWN0IFRl
bXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0g
ICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBM
QVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywg
R1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1Q
TEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgs
IEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1Pgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAg
VDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBM
QVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywg
R1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1Q
TEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgs
IEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFU
RV8gVDM2Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAg
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNjxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3
LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RF
TVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
MiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBM
QVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwg
R1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1Q
TEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzc+
Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNzxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
Nz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
IFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzODxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RF
U1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBU
MjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1Rf
VEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8g
VDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNU
X1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzOTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywK
LSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RF
TVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQz
MiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9U
RU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0MD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQy
OSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQwPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdU
RVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8g
VDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDE+Ci1zdHJ1
Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
PiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgs
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsCi0gICAgICBUNDE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBM
QVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwg
R1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1Q
TEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTks
IEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFU
RV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdU
RVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExB
VEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBH
VEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVf
IFQ0Mj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDI8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0g
ICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0Mj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQx
MSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9U
RU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1Q
TEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYs
IEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVN
UExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMx
LCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExB
VEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBH
VEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDM+Ci1zdHJ1Y3QgVGVt
cGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXM0MzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAot
ICAgICAgVDQyLCBUNDM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBM
QVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwg
R1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1Q
TEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTks
IEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFU
RV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdU
RVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExB
VEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBH
VEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVf
IFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0Pgotc3Ry
dWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBU
MzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQz
LCBUNDQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewot
ICB0eXBlZGVmIFRlbXBsYXRlczQ0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBU
NDEsCi0gICAgICBUNDIsIFQ0MywgVDQ0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdU
RVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8g
VDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNU
X1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVf
IFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LAotICAgIFQ0NSwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDU8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQsIFQ0
NT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBU
NDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Nj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LAotICAgIFQ0NSwgVDQ2LCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQ2PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAgICBUNDIsIFQ0MywgVDQ0LCBU
NDUsIFQ0Nj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQx
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9U
RU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBU
MTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1Rf
VEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVN
UExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMy
LCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RF
TVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
NywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBM
QVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0Nz4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIs
IFQ0MywgVDQ0LAotICAgIFQ0NSwgVDQ2LCBUNDcsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXM0NzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0Nz4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBH
VEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBM
QVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwg
R1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRF
XyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RF
U1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFU
RV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdU
RVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0OD4KLXN0cnVj
dCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0Mywg
VDQ0LAotICAgIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzNDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAg
IFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVf
IFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVT
VF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRF
XyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RF
U1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBU
MzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1Rf
VEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8g
VDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNU
X1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0OCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQ5Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwg
VDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDks
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAg
ICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwg
VDQ5PiB0eXBlOwotfTsKLQotLy8gVGhlIFR5cGVMaXN0IHRlbXBsYXRlIG1ha2VzIGl0IHBvc3Np
YmxlIHRvIHVzZSBlaXRoZXIgYSBzaW5nbGUgdHlwZQotLy8gb3IgYSBUeXBlczwuLi4+IGxpc3Qg
aW4gVFlQRURfVEVTVF9DQVNFKCkgYW5kCi0vLyBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0Vf
UCgpLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBUeXBlTGlzdCB7Ci0gIHR5cGVk
ZWYgVHlwZXMxPFQ+IHR5cGU7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAg
dHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0
eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0
OCwgdHlwZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1zdHJ1Y3QgVHlwZUxpc3Q8VHlwZXM8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwg
VDQ2LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+ID4gewotICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0MywgVDQ0
LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPjo6dHlwZSB0eXBlOwotfTsKLQotI2VuZGlm
ICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLX0g
IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlm
ICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9IXwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9ndGVzdC10eXBlLXV0aWwuaC5wdW1wIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaC5wdW1wCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNTFmZGYwMjViMmM1MzExZmFmOTVlODZlMzMwZmU5MjFjNjBkYWRi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGls
LmgucHVtcAorKysgL2Rldi9udWxsCkBAIC0xLDI5NyArMCwwIEBACi0kJCAtKi0gbW9kZTogYysr
OyAtKi0KLSR2YXIgbiA9IDUwICAkJCBNYXhpbXVtIGxlbmd0aCBvZiB0eXBlIGxpc3RzIHdlIHdh
bnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuCi0vLyBBbGwgUmln
aHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0
OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8v
Ci0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotLy8gVHlw
ZSB1dGlsaXRpZXMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgdHlwZWQgYW5kIHR5cGUtcGFyYW1l
dGVyaXplZAotLy8gdGVzdHMuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAg
RE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBhdCBtb3N0
ICRuIHR5cGVzIGluIGEgbGlzdCwgYW5kIGF0IG1vc3QgJG4KLS8vIHR5cGUtcGFyYW1ldGVyaXpl
ZCB0ZXN0cyBpbiBvbmUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vIFBsZWFzZSBj
b250YWN0IGdvb2dsZXRlc3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAot
Ly8gbW9yZS4KLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZ
UEVfVVRJTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZ
UEVfVVRJTF9IXwotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi0v
LyAjaWZkZWYgX19HTlVDX18gaXMgdG9vIGdlbmVyYWwgaGVyZS4gIEl0IGlzIHBvc3NpYmxlIHRv
IHVzZSBnY2Mgd2l0aG91dCB1c2luZwotLy8gbGlic3RkYysrICh3aGljaCBpcyB3aGVyZSBjeHhh
YmkuaCBjb21lcyBmcm9tKS4KLSMgaWYgR1RFU1RfSEFTX0NYWEFCSV9IXwotIyAgaW5jbHVkZSA8
Y3h4YWJpLmg+Ci0jIGVsaWYgZGVmaW5lZChfX0hQX2FDQykKLSMgIGluY2x1ZGUgPGFjeHhfZGVt
YW5nbGUuaD4KLSMgZW5kaWYgIC8vIEdURVNUX0hBU0hfQ1hYQUJJX0hfCi0KLW5hbWVzcGFjZSB0
ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIEdldFR5cGVOYW1lPFQ+KCkgcmV0
dXJucyBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdHlwZSBULgotLy8gTkI6IFRoaXMgZnVuY3Rp
b24gaXMgYWxzbyB1c2VkIGluIEdvb2dsZSBNb2NrLCBzbyBkb24ndCBtb3ZlIGl0IGluc2lkZSBv
ZgotLy8gdGhlIHR5cGVkLXRlc3Qtb25seSBzZWN0aW9uIGJlbG93LgotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1zdGQ6OnN0cmluZyBHZXRUeXBlTmFtZSgpIHsKLSMgaWYgR1RFU1RfSEFTX1JUVEkK
LQotICBjb25zdCBjaGFyKiBjb25zdCBuYW1lID0gdHlwZWlkKFQpLm5hbWUoKTsKLSMgIGlmIEdU
RVNUX0hBU19DWFhBQklfSF8gfHwgZGVmaW5lZChfX0hQX2FDQykKLSAgaW50IHN0YXR1cyA9IDA7
Ci0gIC8vIGdjYydzIGltcGxlbWVudGF0aW9uIG9mIHR5cGVpZChUKS5uYW1lKCkgbWFuZ2xlcyB0
aGUgdHlwZSBuYW1lLAotICAvLyBzbyB3ZSBoYXZlIHRvIGRlbWFuZ2xlIGl0LgotIyAgIGlmIEdU
RVNUX0hBU19DWFhBQklfSF8KLSAgdXNpbmcgYWJpOjpfX2N4YV9kZW1hbmdsZTsKLSMgICBlbmRp
ZiAgLy8gR1RFU1RfSEFTX0NYWEFCSV9IXwotICBjaGFyKiBjb25zdCByZWFkYWJsZV9uYW1lID0g
X19jeGFfZGVtYW5nbGUobmFtZSwgMCwgMCwgJnN0YXR1cyk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5n
IG5hbWVfc3RyKHN0YXR1cyA9PSAwID8gcmVhZGFibGVfbmFtZSA6IG5hbWUpOwotICBmcmVlKHJl
YWRhYmxlX25hbWUpOwotICByZXR1cm4gbmFtZV9zdHI7Ci0jICBlbHNlCi0gIHJldHVybiBuYW1l
OwotIyAgZW5kaWYgIC8vIEdURVNUX0hBU19DWFhBQklfSF8gfHwgX19IUF9hQ0MKLQotIyBlbHNl
Ci0KLSAgcmV0dXJuICI8dHlwZT4iOwotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQotfQot
Ci0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QgfHwgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCi0v
LyBBc3NlcnR5VHlwZUVxPFQxLCBUMj46OnR5cGUgaXMgZGVmaW5lZCBpZmYgVDEgYW5kIFQyIGFy
ZSB0aGUgc2FtZQotLy8gdHlwZS4gIFRoaXMgY2FuIGJlIHVzZWQgYXMgYSBjb21waWxlLXRpbWUg
YXNzZXJ0aW9uIHRvIGVuc3VyZSB0aGF0Ci0vLyB0d28gdHlwZXMgYXJlIGVxdWFsLgotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotc3RydWN0IEFzc2VydFR5cGVFcTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQXNzZXJ0VHlwZUVxPFQsIFQ+IHsKLSAgdHlw
ZWRlZiBib29sIHR5cGU7Ci19OwotCi0vLyBBIHVuaXF1ZSB0eXBlIHVzZWQgYXMgdGhlIGRlZmF1
bHQgdmFsdWUgZm9yIHRoZSBhcmd1bWVudHMgb2YgY2xhc3MKLS8vIHRlbXBsYXRlIFR5cGVzLiAg
VGhpcyBhbGxvd3MgdXMgdG8gc2ltdWxhdGUgdmFyaWFkaWMgdGVtcGxhdGVzCi0vLyAoZS5nLiBU
eXBlczxpbnQ+LCBUeXBlPGludCwgZG91YmxlPiwgYW5kIGV0YyksIHdoaWNoIEMrKyBkb2Vzbid0
Ci0vLyBzdXBwb3J0IGRpcmVjdGx5Lgotc3RydWN0IE5vbmUge307Ci0KLS8vIFRoZSBmb2xsb3dp
bmcgZmFtaWx5IG9mIHN0cnVjdCBhbmQgc3RydWN0IHRlbXBsYXRlcyBhcmUgdXNlZCB0bwotLy8g
cmVwcmVzZW50IHR5cGUgbGlzdHMuICBJbiBwYXJ0aWN1bGFyLCBUeXBlc048VDEsIFQyLCAuLi4s
IFROPgotLy8gcmVwcmVzZW50cyBhIHR5cGUgbGlzdCB3aXRoIE4gdHlwZXMgKFQxLCBUMiwgLi4u
LCBhbmQgVE4pIGluIGl0LgotLy8gRXhjZXB0IGZvciBUeXBlczAsIGV2ZXJ5IHN0cnVjdCBpbiB0
aGUgZmFtaWx5IGhhcyB0d28gbWVtYmVyIHR5cGVzOgotLy8gSGVhZCBmb3IgdGhlIGZpcnN0IHR5
cGUgaW4gdGhlIGxpc3QsIGFuZCBUYWlsIGZvciB0aGUgcmVzdCBvZiB0aGUKLS8vIGxpc3QuCi0K
LS8vIFRoZSBlbXB0eSB0eXBlIGxpc3QuCi1zdHJ1Y3QgVHlwZXMwIHt9OwotCi0vLyBUeXBlIGxp
c3RzIG9mIGxlbmd0aCAxLCAyLCAzLCBhbmQgc28gb24uCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MT4KLXN0cnVjdCBUeXBlczEgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMw
IFRhaWw7Ci19OwotCi0kcmFuZ2UgaSAyLi5uCi0KLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQot
JHJhbmdlIGsgMi4uaQotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFtZSBUJGpdXT4KLXN0cnVj
dCBUeXBlcyRpIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzJChpLTEpPCRm
b3IgaywgW1tUJGtdXT4gVGFpbDsKLX07Ci0KLQotXV0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVy
bmFsCi0KLS8vIFdlIGRvbid0IHdhbnQgdG8gcmVxdWlyZSB0aGUgdXNlcnMgdG8gd3JpdGUgVHlw
ZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3Vu
dCB0aGUgbGVuZ3RoLiAgVHlwZXM8Li4uPiBpcyBtdWNoCi0vLyBlYXNpZXIgdG8gd3JpdGUsIGJ1
dCBnZW5lcmF0ZXMgaG9ycmlibGUgbWVzc2FnZXMgd2hlbiB0aGVyZSBpcyBhCi0vLyBjb21waWxl
ciBlcnJvciwgYXMgZ2NjIGluc2lzdHMgb24gcHJpbnRpbmcgb3V0IGVhY2ggdGVtcGxhdGUKLS8v
IGFyZ3VtZW50LCBldmVuIGlmIGl0IGhhcyB0aGUgZGVmYXVsdCB2YWx1ZSAodGhpcyBtZWFucyBU
eXBlczxpbnQ+Ci0vLyB3aWxsIGFwcGVhciBhcyBUeXBlczxpbnQsIE5vbmUsIE5vbmUsIC4uLiwg
Tm9uZT4gaW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgotLy8KLS8vIE91ciBzb2x1dGlvbiBp
cyB0byBjb21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3byBhcHByb2FjaGVzOiBhCi0vLyB1
c2VyIHdvdWxkIHdyaXRlIFR5cGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0IHdpbGwg
dHJhbnNsYXRlCi0vLyB0aGF0IHRvIFR5cGVzTjxUMSwgLi4uLCBUTj4gaW50ZXJuYWxseSB0byBt
YWtlIGVycm9yIG1lc3NhZ2VzCi0vLyByZWFkYWJsZS4gIFRoZSB0cmFuc2xhdGlvbiBpcyBkb25l
IGJ5IHRoZSAndHlwZScgbWVtYmVyIG9mIHRoZQotLy8gVHlwZXMgdGVtcGxhdGUuCi0KLSRyYW5n
ZSBpIDEuLm4KLXRlbXBsYXRlIDwkZm9yIGksIFtbdHlwZW5hbWUgVCRpID0gaW50ZXJuYWw6Ok5v
bmVdXT4KLXN0cnVjdCBUeXBlcyB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzJG48JGZvciBp
LCBbW1QkaV1dPiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPD4KLXN0cnVjdCBUeXBlczwkZm9yIGks
IFtbaW50ZXJuYWw6Ok5vbmVdXT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczAgdHlwZTsK
LX07Ci0KLSRyYW5nZSBpIDEuLm4tMQotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0kcmFuZ2Ug
ayBpKzEuLm4KLXRlbXBsYXRlIDwkZm9yIGosIFtbdHlwZW5hbWUgVCRqXV0+Ci1zdHJ1Y3QgVHlw
ZXM8JGZvciBqLCBbW1Qkal1dJGZvciBrW1ssIGludGVybmFsOjpOb25lXV0+IHsKLSAgdHlwZWRl
ZiBpbnRlcm5hbDo6VHlwZXMkaTwkZm9yIGosIFtbVCRqXV0+IHR5cGU7Ci19OwotCi1dXQotCi1u
YW1lc3BhY2UgaW50ZXJuYWwgewotCi0jIGRlZmluZSBHVEVTVF9URU1QTEFURV8gdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IGNsYXNzCi0KLS8vIFRoZSB0ZW1wbGF0ZSAic2VsZWN0b3IiIHN0cnVjdCBU
ZW1wbGF0ZVNlbDxUbXBsPiBpcyB1c2VkIHRvCi0vLyByZXByZXNlbnQgVG1wbCwgd2hpY2ggbXVz
dCBiZSBhIGNsYXNzIHRlbXBsYXRlIHdpdGggb25lIHR5cGUKLS8vIHBhcmFtZXRlciwgYXMgYSB0
eXBlLiAgVGVtcGxhdGVTZWw8VG1wbD46OkJpbmQ8VD46OnR5cGUgaXMgZGVmaW5lZAotLy8gYXMg
dGhlIHR5cGUgVG1wbDxUPi4gIFRoaXMgYWxsb3dzIHVzIHRvIGFjdHVhbGx5IGluc3RhbnRpYXRl
IHRoZQotLy8gdGVtcGxhdGUgInNlbGVjdGVkIiBieSBUZW1wbGF0ZVNlbDxUbXBsPi4KLS8vCi0v
LyBUaGlzIHRyaWNrIGlzIG5lY2Vzc2FyeSBmb3Igc2ltdWxhdGluZyB0eXBlZGVmIGZvciBjbGFz
cyB0ZW1wbGF0ZXMsCi0vLyB3aGljaCBDKysgZG9lc24ndCBzdXBwb3J0IGRpcmVjdGx5LgotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUbXBsPgotc3RydWN0IFRlbXBsYXRlU2VsIHsKLSAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIHN0cnVjdCBCaW5kIHsKLSAgICB0eXBlZGVmIFRtcGw8VD4g
dHlwZTsKLSAgfTsKLX07Ci0KLSMgZGVmaW5lIEdURVNUX0JJTkRfKFRtcGxTZWwsIFQpIFwKLSAg
VG1wbFNlbDo6dGVtcGxhdGUgQmluZDxUPjo6dHlwZQotCi0vLyBBIHVuaXF1ZSBzdHJ1Y3QgdGVt
cGxhdGUgdXNlZCBhcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlCi0vLyBhcmd1bWVudHMgb2Yg
Y2xhc3MgdGVtcGxhdGUgVGVtcGxhdGVzLiAgVGhpcyBhbGxvd3MgdXMgdG8gc2ltdWxhdGUKLS8v
IHZhcmlhZGljIHRlbXBsYXRlcyAoZS5nLiBUZW1wbGF0ZXM8aW50PiwgVGVtcGxhdGVzPGludCwg
ZG91YmxlPiwKLS8vIGFuZCBldGMpLCB3aGljaCBDKysgZG9lc24ndCBzdXBwb3J0IGRpcmVjdGx5
LgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgTm9uZVQge307Ci0KLS8vIFRoZSBmb2xs
b3dpbmcgZmFtaWx5IG9mIHN0cnVjdCBhbmQgc3RydWN0IHRlbXBsYXRlcyBhcmUgdXNlZCB0bwot
Ly8gcmVwcmVzZW50IHRlbXBsYXRlIGxpc3RzLiAgSW4gcGFydGljdWxhciwgVGVtcGxhdGVzTjxU
MSwgVDIsIC4uLiwKLS8vIFROPiByZXByZXNlbnRzIGEgbGlzdCBvZiBOIHRlbXBsYXRlcyAoVDEs
IFQyLCAuLi4sIGFuZCBUTikuICBFeGNlcHQKLS8vIGZvciBUZW1wbGF0ZXMwLCBldmVyeSBzdHJ1
Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0eXBlczoKLS8vIEhlYWQgZm9yIHRoZSBz
ZWxlY3RvciBvZiB0aGUgZmlyc3QgdGVtcGxhdGUgaW4gdGhlIGxpc3QsIGFuZCBUYWlsCi0vLyBm
b3IgdGhlIHJlc3Qgb2YgdGhlIGxpc3QuCi0KLS8vIFRoZSBlbXB0eSB0ZW1wbGF0ZSBsaXN0Lgot
c3RydWN0IFRlbXBsYXRlczAge307Ci0KLS8vIFRlbXBsYXRlIGxpc3RzIG9mIGxlbmd0aCAxLCAy
LCAzLCBhbmQgc28gb24uCi0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDE+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzMSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMCBUYWlsOwotfTsKLQotJHJhbmdlIGkgMi4ubgotCi0kZm9yIGkgW1sKLSRyYW5n
ZSBqIDEuLmkKLSRyYW5nZSBrIDIuLmkKLXRlbXBsYXRlIDwkZm9yIGosIFtbR1RFU1RfVEVNUExB
VEVfIFQkal1dPgotc3RydWN0IFRlbXBsYXRlcyRpIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMkKGktMSk8JGZvciBrLCBbW1Qka11dPiBUYWls
OwotfTsKLQotCi1dXQotCi0vLyBXZSBkb24ndCB3YW50IHRvIHJlcXVpcmUgdGhlIHVzZXJzIHRv
IHdyaXRlIFRlbXBsYXRlc048Li4uPiBkaXJlY3RseSwKLS8vIGFzIHRoYXQgd291bGQgcmVxdWly
ZSB0aGVtIHRvIGNvdW50IHRoZSBsZW5ndGguICBUZW1wbGF0ZXM8Li4uPiBpcyBtdWNoCi0vLyBl
YXNpZXIgdG8gd3JpdGUsIGJ1dCBnZW5lcmF0ZXMgaG9ycmlibGUgbWVzc2FnZXMgd2hlbiB0aGVy
ZSBpcyBhCi0vLyBjb21waWxlciBlcnJvciwgYXMgZ2NjIGluc2lzdHMgb24gcHJpbnRpbmcgb3V0
IGVhY2ggdGVtcGxhdGUKLS8vIGFyZ3VtZW50LCBldmVuIGlmIGl0IGhhcyB0aGUgZGVmYXVsdCB2
YWx1ZSAodGhpcyBtZWFucyBUZW1wbGF0ZXM8bGlzdD4KLS8vIHdpbGwgYXBwZWFyIGFzIFRlbXBs
YXRlczxsaXN0LCBOb25lVCwgTm9uZVQsIC4uLiwgTm9uZVQ+IGluIHRoZSBjb21waWxlcgotLy8g
ZXJyb3JzKS4KLS8vCi0vLyBPdXIgc29sdXRpb24gaXMgdG8gY29tYmluZSB0aGUgYmVzdCBwYXJ0
IG9mIHRoZSB0d28gYXBwcm9hY2hlczogYQotLy8gdXNlciB3b3VsZCB3cml0ZSBUZW1wbGF0ZXM8
VDEsIC4uLiwgVE4+LCBhbmQgR29vZ2xlIFRlc3Qgd2lsbCB0cmFuc2xhdGUKLS8vIHRoYXQgdG8g
VGVtcGxhdGVzTjxUMSwgLi4uLCBUTj4gaW50ZXJuYWxseSB0byBtYWtlIGVycm9yIG1lc3NhZ2Vz
Ci0vLyByZWFkYWJsZS4gIFRoZSB0cmFuc2xhdGlvbiBpcyBkb25lIGJ5IHRoZSAndHlwZScgbWVt
YmVyIG9mIHRoZQotLy8gVGVtcGxhdGVzIHRlbXBsYXRlLgotCi0kcmFuZ2UgaSAxLi5uCi10ZW1w
bGF0ZSA8JGZvciBpLCBbW0dURVNUX1RFTVBMQVRFXyBUJGkgPSBOb25lVF1dPgotc3RydWN0IFRl
bXBsYXRlcyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzJG48JGZvciBpLCBbW1QkaV1dPiB0eXBlOwot
fTsKLQotdGVtcGxhdGUgPD4KLXN0cnVjdCBUZW1wbGF0ZXM8JGZvciBpLCBbW05vbmVUXV0+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMwIHR5cGU7Ci19OwotCi0kcmFuZ2UgaSAxLi5uLTEKLSRmb3Ig
aSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgaSsxLi5uCi10ZW1wbGF0ZSA8JGZvciBqLCBb
W0dURVNUX1RFTVBMQVRFXyBUJGpdXT4KLXN0cnVjdCBUZW1wbGF0ZXM8JGZvciBqLCBbW1Qkal1d
JGZvciBrW1ssIE5vbmVUXV0+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMkaTwkZm9yIGosIFtbVCRq
XV0+IHR5cGU7Ci19OwotCi1dXQotCi0vLyBUaGUgVHlwZUxpc3QgdGVtcGxhdGUgbWFrZXMgaXQg
cG9zc2libGUgdG8gdXNlIGVpdGhlciBhIHNpbmdsZSB0eXBlCi0vLyBvciBhIFR5cGVzPC4uLj4g
bGlzdCBpbiBUWVBFRF9URVNUX0NBU0UoKSBhbmQKLS8vIElOU1RBTlRJQVRFX1RZUEVEX1RFU1Rf
Q0FTRV9QKCkuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFR5cGVMaXN0IHsKLSAg
dHlwZWRlZiBUeXBlczE8VD4gdHlwZTsKLX07Ci0KLQotJHJhbmdlIGkgMS4ubgotdGVtcGxhdGUg
PCRmb3IgaSwgW1t0eXBlbmFtZSBUJGldXT4KLXN0cnVjdCBUeXBlTGlzdDxUeXBlczwkZm9yIGks
IFtbVCRpXV0+ID4gewotICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzPCRmb3IgaSwgW1tUJGldXT46
OnR5cGUgdHlwZTsKLX07Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QgfHwgR1RF
U1RfSEFTX1RZUEVEX1RFU1RfUAotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5h
bWVzcGFjZSB0ZXN0aW5nCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5B
TF9HVEVTVF9UWVBFX1VUSUxfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L200L2FjeF9wdGhyZWFkLm00IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvbTQvYWN4
X3B0aHJlYWQubTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjZjIwZGUxNDRhMTFi
ZTJhYTYwM2IwNGVhNTExMjQ0MTkxMDM3YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvbTQvYWN4X3B0aHJl
YWQubTQKKysrIC9kZXYvbnVsbApAQCAtMSwzNjMgKzAsMCBAQAotIyBUaGlzIHdhcyByZXRyaWV2
ZWQgZnJvbQotIyAgICBodHRwOi8vc3ZuLjBwb2ludGVyLmRlL3ZpZXd2Yy90cnVuay9jb21tb24v
YWN4X3B0aHJlYWQubTQ/cmV2aXNpb249MTI3NyZyb290PWF2YWhpCi0jIFNlZSBhbHNvIChwZXJo
YXBzIGZvciBuZXcgdmVyc2lvbnM/KQotIyAgICBodHRwOi8vc3ZuLjBwb2ludGVyLmRlL3ZpZXd2
Yy90cnVuay9jb21tb24vYWN4X3B0aHJlYWQubTQ/cm9vdD1hdmFoaQotIwotIyBXZSd2ZSByZXdy
aXR0ZW4gdGhlIGluY29uc2lzdGVuY3kgY2hlY2sgY29kZSAoZnJvbSBhdmFoaSksIHRvIHdvcmsK
LSMgbW9yZSBicm9hZGx5LiAgSW4gcGFydGljdWxhciwgaXQgbm8gbG9uZ2VyIGFzc3VtZXMgbGQg
YWNjZXB0cyAtemRlZnMuCi0jIFRoaXMgY2F1c2VkIGEgcmVzdHJ1Y3Rpbmcgb2YgdGhlIGNvZGUs
IGJ1dCB0aGUgZnVuY3Rpb25hbGl0eSBoYXMgb25seQotIyBjaGFuZ2VkIGEgbGl0dGxlLgotCi1k
bmwgQHN5bm9wc2lzIEFDWF9QVEhSRUFEKFtBQ1RJT04tSUYtRk9VTkRbLCBBQ1RJT04tSUYtTk9U
LUZPVU5EXV0pCi1kbmwKLWRubCBAc3VtbWFyeSBmaWd1cmUgb3V0IGhvdyB0byBidWlsZCBDIHBy
b2dyYW1zIHVzaW5nIFBPU0lYIHRocmVhZHMKLWRubAotZG5sIFRoaXMgbWFjcm8gZmlndXJlcyBv
dXQgaG93IHRvIGJ1aWxkIEMgcHJvZ3JhbXMgdXNpbmcgUE9TSVggdGhyZWFkcy4KLWRubCBJdCBz
ZXRzIHRoZSBQVEhSRUFEX0xJQlMgb3V0cHV0IHZhcmlhYmxlIHRvIHRoZSB0aHJlYWRzIGxpYnJh
cnkgYW5kCi1kbmwgbGlua2VyIGZsYWdzLCBhbmQgdGhlIFBUSFJFQURfQ0ZMQUdTIG91dHB1dCB2
YXJpYWJsZSB0byBhbnkgc3BlY2lhbAotZG5sIEMgY29tcGlsZXIgZmxhZ3MgdGhhdCBhcmUgbmVl
ZGVkLiAoVGhlIHVzZXIgY2FuIGFsc28gZm9yY2UgY2VydGFpbgotZG5sIGNvbXBpbGVyIGZsYWdz
L2xpYnMgdG8gYmUgdGVzdGVkIGJ5IHNldHRpbmcgdGhlc2UgZW52aXJvbm1lbnQKLWRubCB2YXJp
YWJsZXMuKQotZG5sCi1kbmwgQWxzbyBzZXRzIFBUSFJFQURfQ0MgdG8gYW55IHNwZWNpYWwgQyBj
b21waWxlciB0aGF0IGlzIG5lZWRlZCBmb3IKLWRubCBtdWx0aS10aHJlYWRlZCBwcm9ncmFtcyAo
ZGVmYXVsdHMgdG8gdGhlIHZhbHVlIG9mIENDIG90aGVyd2lzZSkuCi1kbmwgKFRoaXMgaXMgbmVj
ZXNzYXJ5IG9uIEFJWCB0byB1c2UgdGhlIHNwZWNpYWwgY2NfciBjb21waWxlciBhbGlhcy4pCi1k
bmwKLWRubCBOT1RFOiBZb3UgYXJlIGFzc3VtZWQgdG8gbm90IG9ubHkgY29tcGlsZSB5b3VyIHBy
b2dyYW0gd2l0aCB0aGVzZQotZG5sIGZsYWdzLCBidXQgYWxzbyBsaW5rIGl0IHdpdGggdGhlbSBh
cyB3ZWxsLiBlLmcuIHlvdSBzaG91bGQgbGluawotZG5sIHdpdGggJFBUSFJFQURfQ0MgJENGTEFH
UyAkUFRIUkVBRF9DRkxBR1MgJExERkxBR1MgLi4uICRQVEhSRUFEX0xJQlMKLWRubCAkTElCUwot
ZG5sCi1kbmwgSWYgeW91IGFyZSBvbmx5IGJ1aWxkaW5nIHRocmVhZHMgcHJvZ3JhbXMsIHlvdSBt
YXkgd2lzaCB0byB1c2UKLWRubCB0aGVzZSB2YXJpYWJsZXMgaW4geW91ciBkZWZhdWx0IExJQlMs
IENGTEFHUywgYW5kIENDOgotZG5sCi1kbmwgICAgICAgIExJQlM9IiRQVEhSRUFEX0xJQlMgJExJ
QlMiCi1kbmwgICAgICAgIENGTEFHUz0iJENGTEFHUyAkUFRIUkVBRF9DRkxBR1MiCi1kbmwgICAg
ICAgIENDPSIkUFRIUkVBRF9DQyIKLWRubAotZG5sIEluIGFkZGl0aW9uLCBpZiB0aGUgUFRIUkVB
RF9DUkVBVEVfSk9JTkFCTEUgdGhyZWFkLWF0dHJpYnV0ZQotZG5sIGNvbnN0YW50IGhhcyBhIG5v
bnN0YW5kYXJkIG5hbWUsIGRlZmluZXMgUFRIUkVBRF9DUkVBVEVfSk9JTkFCTEUgdG8KLWRubCB0
aGF0IG5hbWUgKGUuZy4gUFRIUkVBRF9DUkVBVEVfVU5ERVRBQ0hFRCBvbiBBSVgpLgotZG5sCi1k
bmwgQUNUSU9OLUlGLUZPVU5EIGlzIGEgbGlzdCBvZiBzaGVsbCBjb21tYW5kcyB0byBydW4gaWYg
YSB0aHJlYWRzCi1kbmwgbGlicmFyeSBpcyBmb3VuZCwgYW5kIEFDVElPTi1JRi1OT1QtRk9VTkQg
aXMgYSBsaXN0IG9mIGNvbW1hbmRzIHRvCi1kbmwgcnVuIGl0IGlmIGl0IGlzIG5vdCBmb3VuZC4g
SWYgQUNUSU9OLUlGLUZPVU5EIGlzIG5vdCBzcGVjaWZpZWQsIHRoZQotZG5sIGRlZmF1bHQgYWN0
aW9uIHdpbGwgZGVmaW5lIEhBVkVfUFRIUkVBRC4KLWRubAotZG5sIFBsZWFzZSBsZXQgdGhlIGF1
dGhvcnMga25vdyBpZiB0aGlzIG1hY3JvIGZhaWxzIG9uIGFueSBwbGF0Zm9ybSwgb3IKLWRubCBp
ZiB5b3UgaGF2ZSBhbnkgb3RoZXIgc3VnZ2VzdGlvbnMgb3IgY29tbWVudHMuIFRoaXMgbWFjcm8g
d2FzIGJhc2VkCi1kbmwgb24gd29yayBieSBTR0ogb24gYXV0b2NvbmYgc2NyaXB0cyBmb3IgRkZU
VyAod3d3LmZmdHcub3JnKSAod2l0aAotZG5sIGhlbHAgZnJvbSBNLiBGcmlnbyksIGFzIHdlbGwg
YXMgYWNfcHRocmVhZCBhbmQgaGJfcHRocmVhZCBtYWNyb3MKLWRubCBwb3N0ZWQgYnkgQWxlamFu
ZHJvIEZvcmVybyBDdWVydm8gdG8gdGhlIGF1dG9jb25mIG1hY3JvIHJlcG9zaXRvcnkuCi1kbmwg
V2UgYXJlIGFsc28gZ3JhdGVmdWwgZm9yIHRoZSBoZWxwZnVsIGZlZWRiYWNrIG9mIG51bWVyb3Vz
IHVzZXJzLgotZG5sCi1kbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCi1kbmwgQGF1dGhv
ciBTdGV2ZW4gRy4gSm9obnNvbiA8c3RldmVuakBhbHVtLm1pdC5lZHU+Ci1kbmwgQHZlcnNpb24g
MjAwNi0wNS0yOQotZG5sIEBsaWNlbnNlIEdQTFdpdGhBQ0V4Y2VwdGlvbgotZG5sIAotZG5sIENo
ZWNrcyBmb3IgR0NDIHNoYXJlZC9wdGhyZWFkIGluY29uc2lzdGVuY3kgYmFzZWQgb24gd29yayBi
eQotZG5sIE1hcmNpbiBPd3NpYW55IDxtYXJjaW5Ab3dzaWFueS5wbD4KLQotCi1BQ19ERUZVTihb
QUNYX1BUSFJFQURdLCBbCi1BQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCi1BQ19MQU5H
X1NBVkUKLUFDX0xBTkdfQwotYWN4X3B0aHJlYWRfb2s9bm8KLQotIyBXZSB1c2VkIHRvIGNoZWNr
IGZvciBwdGhyZWFkLmggZmlyc3QsIGJ1dCB0aGlzIGZhaWxzIGlmIHB0aHJlYWQuaAotIyByZXF1
aXJlcyBzcGVjaWFsIGNvbXBpbGVyIGZsYWdzIChlLmcuIG9uIFRydWU2NCBvciBTZXF1ZW50KS4K
LSMgSXQgZ2V0cyBjaGVja2VkIGZvciBpbiB0aGUgbGluayB0ZXN0IGFueXdheS4KLQotIyBGaXJz
dCBvZiBhbGwsIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBzZXQgYW55IG9mIHRoZSBQVEhSRUFEX0xJ
QlMsCi0jIGV0Y2V0ZXJhIGVudmlyb25tZW50IHZhcmlhYmxlcywgYW5kIGlmIHRocmVhZHMgbGlu
a2luZyB3b3JrcyB1c2luZwotIyB0aGVtOgotaWYgdGVzdCB4IiRQVEhSRUFEX0xJQlMkUFRIUkVB
RF9DRkxBR1MiICE9IHg7IHRoZW4KLSAgICAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0gICAg
ICAgIENGTEFHUz0iJENGTEFHUyAkUFRIUkVBRF9DRkxBR1MiCi0gICAgICAgIHNhdmVfTElCUz0i
JExJQlMiCi0gICAgICAgIExJQlM9IiRQVEhSRUFEX0xJQlMgJExJQlMiCi0gICAgICAgIEFDX01T
R19DSEVDS0lORyhbZm9yIHB0aHJlYWRfam9pbiBpbiBMSUJTPSRQVEhSRUFEX0xJQlMgd2l0aCBD
RkxBR1M9JFBUSFJFQURfQ0ZMQUdTXSkKLSAgICAgICAgQUNfVFJZX0xJTktfRlVOQyhwdGhyZWFk
X2pvaW4sIGFjeF9wdGhyZWFkX29rPXllcykKLSAgICAgICAgQUNfTVNHX1JFU1VMVCgkYWN4X3B0
aHJlYWRfb2spCi0gICAgICAgIGlmIHRlc3QgeCIkYWN4X3B0aHJlYWRfb2siID0geG5vOyB0aGVu
Ci0gICAgICAgICAgICAgICAgUFRIUkVBRF9MSUJTPSIiCi0gICAgICAgICAgICAgICAgUFRIUkVB
RF9DRkxBR1M9IiIKLSAgICAgICAgZmkKLSAgICAgICAgTElCUz0iJHNhdmVfTElCUyIKLSAgICAg
ICAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCi1maQotCi0jIFdlIG11c3QgY2hlY2sgZm9yIHRoZSB0
aHJlYWRzIGxpYnJhcnkgdW5kZXIgYSBudW1iZXIgb2YgZGlmZmVyZW50Ci0jIG5hbWVzOyB0aGUg
b3JkZXJpbmcgaXMgdmVyeSBpbXBvcnRhbnQgYmVjYXVzZSBzb21lIHN5c3RlbXMKLSMgKGUuZy4g
REVDKSBoYXZlIGJvdGggLWxwdGhyZWFkIGFuZCAtbHB0aHJlYWRzLCB3aGVyZSBvbmUgb2YgdGhl
Ci0jIGxpYnJhcmllcyBpcyBicm9rZW4gKG5vbi1QT1NJWCkuCi0KLSMgQ3JlYXRlIGEgbGlzdCBv
ZiB0aHJlYWQgZmxhZ3MgdG8gdHJ5LiAgSXRlbXMgc3RhcnRpbmcgd2l0aCBhICItIiBhcmUKLSMg
QyBjb21waWxlciBmbGFncywgYW5kIG90aGVyIGl0ZW1zIGFyZSBsaWJyYXJ5IG5hbWVzLCBleGNl
cHQgZm9yICJub25lIgotIyB3aGljaCBpbmRpY2F0ZXMgdGhhdCB3ZSB0cnkgd2l0aG91dCBhbnkg
ZmxhZ3MgYXQgYWxsLCBhbmQgInB0aHJlYWQtY29uZmlnIgotIyB3aGljaCBpcyBhIHByb2dyYW0g
cmV0dXJuaW5nIHRoZSBmbGFncyBmb3IgdGhlIFB0aCBlbXVsYXRpb24gbGlicmFyeS4KLQotYWN4
X3B0aHJlYWRfZmxhZ3M9InB0aHJlYWRzIG5vbmUgLUt0aHJlYWQgLWt0aHJlYWQgbHRocmVhZCAt
cHRocmVhZCAtcHRocmVhZHMgLW10aHJlYWRzIHB0aHJlYWQgLS10aHJlYWQtc2FmZSAtbXQgcHRo
cmVhZC1jb25maWciCi0KLSMgVGhlIG9yZGVyaW5nICppcyogKHNvbWV0aW1lcykgaW1wb3J0YW50
LiAgU29tZSBub3RlcyBvbiB0aGUKLSMgaW5kaXZpZHVhbCBpdGVtcyBmb2xsb3c6Ci0KLSMgcHRo
cmVhZHM6IEFJWCAobXVzdCBjaGVjayB0aGlzIGJlZm9yZSAtbHB0aHJlYWQpCi0jIG5vbmU6IGlu
IGNhc2UgdGhyZWFkcyBhcmUgaW4gbGliYzsgc2hvdWxkIGJlIHRyaWVkIGJlZm9yZSAtS3RocmVh
ZCBhbmQKLSMgICAgICAgb3RoZXIgY29tcGlsZXIgZmxhZ3MgdG8gcHJldmVudCBjb250aW51YWwg
Y29tcGlsZXIgd2FybmluZ3MKLSMgLUt0aHJlYWQ6IFNlcXVlbnQgKHRocmVhZHMgaW4gbGliYywg
YnV0IC1LdGhyZWFkIG5lZWRlZCBmb3IgcHRocmVhZC5oKQotIyAta3RocmVhZDogRnJlZUJTRCBr
ZXJuZWwgdGhyZWFkcyAocHJlZmVycmVkIHRvIC1wdGhyZWFkIHNpbmNlIFNNUC1hYmxlKQotIyBs
dGhyZWFkOiBMaW51eFRocmVhZHMgcG9ydCBvbiBGcmVlQlNEIChhbHNvIHByZWZlcnJlZCB0byAt
cHRocmVhZCkKLSMgLXB0aHJlYWQ6IExpbnV4L2djYyAoa2VybmVsIHRocmVhZHMpLCBCU0QvZ2Nj
ICh1c2VybGFuZCB0aHJlYWRzKQotIyAtcHRocmVhZHM6IFNvbGFyaXMvZ2NjCi0jIC1tdGhyZWFk
czogTWluZ3czMi9nY2MsIEx5bngvZ2NjCi0jIC1tdDogU3VuIFdvcmtzaG9wIEMgKG1heSBvbmx5
IGxpbmsgU3VuT1MgdGhyZWFkcyBbLWx0aHJlYWRdLCBidXQgaXQKLSMgICAgICBkb2Vzbid0IGh1
cnQgdG8gY2hlY2sgc2luY2UgdGhpcyBzb21ldGltZXMgZGVmaW5lcyBwdGhyZWFkcyB0b287Ci0j
ICAgICAgYWxzbyBkZWZpbmVzIC1EX1JFRU5UUkFOVCkKLSMgICAgICAuLi4gLW10IGlzIGFsc28g
dGhlIHB0aHJlYWRzIGZsYWcgZm9yIEhQL2FDQwotIyBwdGhyZWFkOiBMaW51eCwgZXRjZXRlcmEK
LSMgLS10aHJlYWQtc2FmZTogS0FJIEMrKwotIyBwdGhyZWFkLWNvbmZpZzogdXNlIHB0aHJlYWQt
Y29uZmlnIHByb2dyYW0gKGZvciBHTlUgUHRoIGxpYnJhcnkpCi0KLWNhc2UgIiR7aG9zdF9jcHV9
LSR7aG9zdF9vc30iIGluCi0gICAgICAgICpzb2xhcmlzKikKLQotICAgICAgICAjIE9uIFNvbGFy
aXMgKGF0IGxlYXN0LCBmb3Igc29tZSB2ZXJzaW9ucyksIGxpYmMgY29udGFpbnMgc3R1YmJlZAot
ICAgICAgICAjIChub24tZnVuY3Rpb25hbCkgdmVyc2lvbnMgb2YgdGhlIHB0aHJlYWRzIHJvdXRp
bmVzLCBzbyBsaW5rLWJhc2VkCi0gICAgICAgICMgdGVzdHMgd2lsbCBlcnJvbmVvdXNseSBzdWNj
ZWVkLiAgKFdlIG5lZWQgdG8gbGluayB3aXRoIC1wdGhyZWFkcy8tbXQvCi0gICAgICAgICMgLWxw
dGhyZWFkLikgIChUaGUgc3R1YnMgYXJlIG1pc3NpbmcgcHRocmVhZF9jbGVhbnVwX3B1c2gsIG9y
IHJhdGhlcgotICAgICAgICAjIGEgZnVuY3Rpb24gY2FsbGVkIGJ5IHRoaXMgbWFjcm8sIHNvIHdl
IGNvdWxkIGNoZWNrIGZvciB0aGF0LCBidXQKLSAgICAgICAgIyB3aG8ga25vd3Mgd2hldGhlciB0
aGV5J2xsIHN0dWIgdGhhdCB0b28gaW4gYSBmdXR1cmUgbGliYy4pICBTbywKLSAgICAgICAgIyB3
ZSdsbCBqdXN0IGxvb2sgZm9yIC1wdGhyZWFkcyBhbmQgLWxwdGhyZWFkIGZpcnN0OgotCi0gICAg
ICAgIGFjeF9wdGhyZWFkX2ZsYWdzPSItcHRocmVhZHMgcHRocmVhZCAtbXQgLXB0aHJlYWQgJGFj
eF9wdGhyZWFkX2ZsYWdzIgotICAgICAgICA7OwotZXNhYwotCi1pZiB0ZXN0IHgiJGFjeF9wdGhy
ZWFkX29rIiA9IHhubzsgdGhlbgotZm9yIGZsYWcgaW4gJGFjeF9wdGhyZWFkX2ZsYWdzOyBkbwot
Ci0gICAgICAgIGNhc2UgJGZsYWcgaW4KLSAgICAgICAgICAgICAgICBub25lKQotICAgICAgICAg
ICAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciBwdGhyZWFkcyB3b3JrIHdpdGhvdXQgYW55
IGZsYWdzXSkKLSAgICAgICAgICAgICAgICA7OwotCi0gICAgICAgICAgICAgICAgLSopCi0gICAg
ICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHB0aHJlYWRzIHdvcmsgd2l0aCAk
ZmxhZ10pCi0gICAgICAgICAgICAgICAgUFRIUkVBRF9DRkxBR1M9IiRmbGFnIgotICAgICAgICAg
ICAgICAgIDs7Ci0KLQkJcHRocmVhZC1jb25maWcpCi0JCUFDX0NIRUNLX1BST0coYWN4X3B0aHJl
YWRfY29uZmlnLCBwdGhyZWFkLWNvbmZpZywgeWVzLCBubykKLQkJaWYgdGVzdCB4IiRhY3hfcHRo
cmVhZF9jb25maWciID0geG5vOyB0aGVuIGNvbnRpbnVlOyBmaQotCQlQVEhSRUFEX0NGTEFHUz0i
YHB0aHJlYWQtY29uZmlnIC0tY2ZsYWdzYCIKLQkJUFRIUkVBRF9MSUJTPSJgcHRocmVhZC1jb25m
aWcgLS1sZGZsYWdzYCBgcHRocmVhZC1jb25maWcgLS1saWJzYCIKLQkJOzsKLQotICAgICAgICAg
ICAgICAgICopCi0gICAgICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgdGhlIHB0aHJl
YWRzIGxpYnJhcnkgLWwkZmxhZ10pCi0gICAgICAgICAgICAgICAgUFRIUkVBRF9MSUJTPSItbCRm
bGFnIgotICAgICAgICAgICAgICAgIDs7Ci0gICAgICAgIGVzYWMKLQotICAgICAgICBzYXZlX0xJ
QlM9IiRMSUJTIgotICAgICAgICBzYXZlX0NGTEFHUz0iJENGTEFHUyIKLSAgICAgICAgTElCUz0i
JFBUSFJFQURfTElCUyAkTElCUyIKLSAgICAgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRQVEhSRUFEX0NG
TEFHUyIKLQotICAgICAgICAjIENoZWNrIGZvciB2YXJpb3VzIGZ1bmN0aW9ucy4gIFdlIG11c3Qg
aW5jbHVkZSBwdGhyZWFkLmgsCi0gICAgICAgICMgc2luY2Ugc29tZSBmdW5jdGlvbnMgbWF5IGJl
IG1hY3Jvcy4gIChPbiB0aGUgU2VxdWVudCwgd2UKLSAgICAgICAgIyBuZWVkIGEgc3BlY2lhbCBm
bGFnIC1LdGhyZWFkIHRvIG1ha2UgdGhpcyBoZWFkZXIgY29tcGlsZS4pCi0gICAgICAgICMgV2Ug
Y2hlY2sgZm9yIHB0aHJlYWRfam9pbiBiZWNhdXNlIGl0IGlzIGluIC1scHRocmVhZCBvbiBJUklY
Ci0gICAgICAgICMgd2hpbGUgcHRocmVhZF9jcmVhdGUgaXMgaW4gbGliYy4gIFdlIGNoZWNrIGZv
ciBwdGhyZWFkX2F0dHJfaW5pdAotICAgICAgICAjIGR1ZSB0byBERUMgY3JhemluZXNzIHdpdGgg
LWxwdGhyZWFkcy4gIFdlIGNoZWNrIGZvcgotICAgICAgICAjIHB0aHJlYWRfY2xlYW51cF9wdXNo
IGJlY2F1c2UgaXQgaXMgb25lIG9mIHRoZSBmZXcgcHRocmVhZAotICAgICAgICAjIGZ1bmN0aW9u
cyBvbiBTb2xhcmlzIHRoYXQgZG9lc24ndCBoYXZlIGEgbm9uLWZ1bmN0aW9uYWwgbGliYyBzdHVi
LgotICAgICAgICAjIFdlIHRyeSBwdGhyZWFkX2NyZWF0ZSBvbiBnZW5lcmFsIHByaW5jaXBsZXMu
Ci0gICAgICAgIEFDX1RSWV9MSU5LKFsjaW5jbHVkZSA8cHRocmVhZC5oPl0sCi0gICAgICAgICAg
ICAgICAgICAgIFtwdGhyZWFkX3QgdGg7IHB0aHJlYWRfam9pbih0aCwgMCk7Ci0gICAgICAgICAg
ICAgICAgICAgICBwdGhyZWFkX2F0dHJfaW5pdCgwKTsgcHRocmVhZF9jbGVhbnVwX3B1c2goMCwg
MCk7Ci0gICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX2NyZWF0ZSgwLDAsMCwwKTsgcHRocmVh
ZF9jbGVhbnVwX3BvcCgwKTsgXSwKLSAgICAgICAgICAgICAgICAgICAgW2FjeF9wdGhyZWFkX29r
PXllc10pCi0KLSAgICAgICAgTElCUz0iJHNhdmVfTElCUyIKLSAgICAgICAgQ0ZMQUdTPSIkc2F2
ZV9DRkxBR1MiCi0KLSAgICAgICAgQUNfTVNHX1JFU1VMVCgkYWN4X3B0aHJlYWRfb2spCi0gICAg
ICAgIGlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2siID0geHllczsgdGhlbgotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBmaQotCi0gICAgICAgIFBUSFJFQURfTElCUz0iIgotICAgICAg
ICBQVEhSRUFEX0NGTEFHUz0iIgotZG9uZQotZmkKLQotIyBWYXJpb3VzIG90aGVyIGNoZWNrczoK
LWlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2siID0geHllczsgdGhlbgotICAgICAgICBzYXZlX0xJ
QlM9IiRMSUJTIgotICAgICAgICBMSUJTPSIkUFRIUkVBRF9MSUJTICRMSUJTIgotICAgICAgICBz
YXZlX0NGTEFHUz0iJENGTEFHUyIKLSAgICAgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRQVEhSRUFEX0NG
TEFHUyIKLQotICAgICAgICAjIERldGVjdCBBSVggbG9zc2FnZTogSk9JTkFCTEUgYXR0cmlidXRl
IGlzIGNhbGxlZCBVTkRFVEFDSEVELgotCUFDX01TR19DSEVDS0lORyhbZm9yIGpvaW5hYmxlIHB0
aHJlYWQgYXR0cmlidXRlXSkKLQlhdHRyX25hbWU9dW5rbm93bgotCWZvciBhdHRyIGluIFBUSFJF
QURfQ1JFQVRFX0pPSU5BQkxFIFBUSFJFQURfQ1JFQVRFX1VOREVUQUNIRUQ7IGRvCi0JICAgIEFD
X1RSWV9MSU5LKFsjaW5jbHVkZSA8cHRocmVhZC5oPl0sIFtpbnQgYXR0cj0kYXR0cjsgcmV0dXJu
IGF0dHI7XSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyX25hbWU9JGF0dHI7IGJyZWFr
XSkKLQlkb25lCi0gICAgICAgIEFDX01TR19SRVNVTFQoJGF0dHJfbmFtZSkKLSAgICAgICAgaWYg
dGVzdCAiJGF0dHJfbmFtZSIgIT0gUFRIUkVBRF9DUkVBVEVfSk9JTkFCTEU7IHRoZW4KLSAgICAg
ICAgICAgIEFDX0RFRklORV9VTlFVT1RFRChQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSwgJGF0dHJf
bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmaW5lIHRvIG5lY2Vzc2Fy
eSBzeW1ib2wgaWYgdGhpcyBjb25zdGFudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1c2VzIGEgbm9uLXN0YW5kYXJkIG5hbWUgb24geW91ciBzeXN0ZW0uXSkKLSAgICAgICAgZmkK
LQotICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIG1vcmUgc3BlY2lhbCBmbGFncyBhcmUgcmVx
dWlyZWQgZm9yIHB0aHJlYWRzXSkKLSAgICAgICAgZmxhZz1ubwotICAgICAgICBjYXNlICIke2hv
c3RfY3B1fS0ke2hvc3Rfb3N9IiBpbgotICAgICAgICAgICAgKi1haXgqIHwgKi1mcmVlYnNkKiB8
ICotZGFyd2luKikgZmxhZz0iLURfVEhSRUFEX1NBRkUiOzsKLSAgICAgICAgICAgICpzb2xhcmlz
KiB8ICotb3NmKiB8ICotaHB1eCopIGZsYWc9Ii1EX1JFRU5UUkFOVCI7OwotICAgICAgICBlc2Fj
Ci0gICAgICAgIEFDX01TR19SRVNVTFQoJHtmbGFnfSkKLSAgICAgICAgaWYgdGVzdCAieCRmbGFn
IiAhPSB4bm87IHRoZW4KLSAgICAgICAgICAgIFBUSFJFQURfQ0ZMQUdTPSIkZmxhZyAkUFRIUkVB
RF9DRkxBR1MiCi0gICAgICAgIGZpCi0KLSAgICAgICAgTElCUz0iJHNhdmVfTElCUyIKLSAgICAg
ICAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCi0gICAgICAgICMgTW9yZSBBSVggbG9zc2FnZTogbXVz
dCBjb21waWxlIHdpdGggeGxjX3Igb3IgY2NfcgotCWlmIHRlc3QgeCIkR0NDIiAhPSB4eWVzOyB0
aGVuCi0gICAgICAgICAgQUNfQ0hFQ0tfUFJPR1MoUFRIUkVBRF9DQywgeGxjX3IgY2NfciwgJHtD
Q30pCi0gICAgICAgIGVsc2UKLSAgICAgICAgICBQVEhSRUFEX0NDPSRDQwotCWZpCi0KLQkjIFRo
ZSBuZXh0IHBhcnQgdHJpZXMgdG8gZGV0ZWN0IEdDQyBpbmNvbnNpc3RlbmN5IHdpdGggLXNoYXJl
ZCBvbiBzb21lCi0JIyBhcmNoaXRlY3R1cmVzIGFuZCBzeXN0ZW1zLiBUaGUgcHJvYmxlbSBpcyB0
aGF0IGluIGNlcnRhaW4KLQkjIGNvbmZpZ3VyYXRpb25zLCB3aGVuIC1zaGFyZWQgaXMgc3BlY2lm
aWVkLCBHQ0MgImZvcmdldHMiIHRvCi0JIyBpbnRlcm5hbGx5IHVzZSB2YXJpb3VzIGZsYWdzIHdo
aWNoIGFyZSBzdGlsbCBuZWNlc3NhcnkuCi0JCi0JIwotCSMgUHJlcGFyZSB0aGUgZmxhZ3MKLQkj
Ci0Jc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0Jc2F2ZV9MSUJTPSIkTElCUyIKLQlzYXZlX0NDPSIk
Q0MiCi0JCi0JIyBUcnkgd2l0aCB0aGUgZmxhZ3MgZGV0ZXJtaW5lZCBieSB0aGUgZWFybGllciBj
aGVja3MuCi0JIwotCSMgLVdsLC16LGRlZnMgZm9yY2VzIGxpbmstdGltZSBzeW1ib2wgcmVzb2x1
dGlvbiwgc28gdGhhdCB0aGUKLQkjIGxpbmtpbmcgY2hlY2tzIHdpdGggLXNoYXJlZCBhY3R1YWxs
eSBoYXZlIGFueSB2YWx1ZQotCSMKLQkjIEZJWE1FOiAtZlBJQyBpcyByZXF1aXJlZCBmb3IgLXNo
YXJlZCBvbiBtYW55IGFyY2hpdGVjdHVyZXMsCi0JIyBzbyB3ZSBzcGVjaWZ5IGl0IGhlcmUsIGJ1
dCB0aGUgcmlnaHQgd2F5IHdvdWxkIHByb2JhYmx5IGJlIHRvCi0JIyBwcm9wZXJseSBkZXRlY3Qg
d2hldGhlciBpdCBpcyBhY3R1YWxseSByZXF1aXJlZC4KLQlDRkxBR1M9Ii1zaGFyZWQgLWZQSUMg
LVdsLC16LGRlZnMgJENGTEFHUyAkUFRIUkVBRF9DRkxBR1MiCi0JTElCUz0iJFBUSFJFQURfTElC
UyAkTElCUyIKLQlDQz0iJFBUSFJFQURfQ0MiCi0JCi0JIyBJbiBvcmRlciBub3QgdG8gY3JlYXRl
IHNldmVyYWwgbGV2ZWxzIG9mIGluZGVudGF0aW9uLCB3ZSB0ZXN0Ci0JIyB0aGUgdmFsdWUgb2Yg
IiRkb25lIiB1bnRpbCB3ZSBmaW5kIHRoZSBjdXJlIG9yIHJ1biBvdXQgb2YgaWRlYXMuCi0JZG9u
ZT0ibm8iCi0JCi0JIyBGaXJzdCwgbWFrZSBzdXJlIHRoZSBDRkxBR1Mgd2UgYWRkZWQgYXJlIGFj
dHVhbGx5IGFjY2VwdGVkIGJ5IG91cgotCSMgY29tcGlsZXIuICBJZiBub3QgKGFuZCBPUyBYJ3Mg
bGQsIGZvciBpbnN0YW5jZSwgZG9lcyBub3QgYWNjZXB0IC16KSwKLQkjIHRoZW4gd2UgY2FuJ3Qg
ZG8gdGhpcyB0ZXN0LgotCWlmIHRlc3QgeCIkZG9uZSIgPSB4bm87IHRoZW4KLQkgICBBQ19NU0df
Q0hFQ0tJTkcoW3doZXRoZXIgdG8gY2hlY2sgZm9yIEdDQyBwdGhyZWFkL3NoYXJlZCBpbmNvbnNp
c3RlbmNpZXNdKQotCSAgIEFDX1RSWV9MSU5LKCwsICwgW2RvbmU9eWVzXSkKLQkKLQkgICBpZiB0
ZXN0ICJ4JGRvbmUiID0geHllcyA7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0J
ICAgZWxzZQotCSAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0JICAgZmkKLQlmaQotCQotCWlm
IHRlc3QgeCIkZG9uZSIgPSB4bm87IHRoZW4KLQkgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIg
LXB0aHJlYWQgaXMgc3VmZmljaWVudCB3aXRoIC1zaGFyZWRdKQotCSAgIEFDX1RSWV9MSU5LKFsj
aW5jbHVkZSA8cHRocmVhZC5oPl0sCi0JICAgICAgW3B0aHJlYWRfdCB0aDsgcHRocmVhZF9qb2lu
KHRoLCAwKTsKLQkgICAgICBwdGhyZWFkX2F0dHJfaW5pdCgwKTsgcHRocmVhZF9jbGVhbnVwX3B1
c2goMCwgMCk7Ci0JICAgICAgcHRocmVhZF9jcmVhdGUoMCwwLDAsMCk7IHB0aHJlYWRfY2xlYW51
cF9wb3AoMCk7IF0sCi0JICAgICAgW2RvbmU9eWVzXSkKLQkgICAKLQkgICBpZiB0ZXN0ICJ4JGRv
bmUiID0geHllczsgdGhlbgotCSAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0JICAgZWxzZQot
CSAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLQkgICBmaQotCWZpCi0JCi0JIwotCSMgTGludXgg
Z2NjIG9uIHNvbWUgYXJjaGl0ZWN0dXJlcyBzdWNoIGFzIG1pcHMvbWlwc2VsIGZvcmdldHMKLQkj
IGFib3V0IC1scHRocmVhZAotCSMKLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAg
QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIC1scHRocmVhZCBmaXhlcyB0aGF0XSkKLQkgICBMSUJT
PSItbHB0aHJlYWQgJFBUSFJFQURfTElCUyAkc2F2ZV9MSUJTIgotCSAgIEFDX1RSWV9MSU5LKFsj
aW5jbHVkZSA8cHRocmVhZC5oPl0sCi0JICAgICAgW3B0aHJlYWRfdCB0aDsgcHRocmVhZF9qb2lu
KHRoLCAwKTsKLQkgICAgICBwdGhyZWFkX2F0dHJfaW5pdCgwKTsgcHRocmVhZF9jbGVhbnVwX3B1
c2goMCwgMCk7Ci0JICAgICAgcHRocmVhZF9jcmVhdGUoMCwwLDAsMCk7IHB0aHJlYWRfY2xlYW51
cF9wb3AoMCk7IF0sCi0JICAgICAgW2RvbmU9eWVzXSkKLQkKLQkgICBpZiB0ZXN0ICJ4JGRvbmUi
ID0geHllczsgdGhlbgotCSAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0JICAgICAgUFRIUkVB
RF9MSUJTPSItbHB0aHJlYWQgJFBUSFJFQURfTElCUyIKLQkgICBlbHNlCi0JICAgICAgQUNfTVNH
X1JFU1VMVChbbm9dKQotCSAgIGZpCi0JZmkKLQkjCi0JIyBGcmVlQlNEIDQuMTAgZ2NjIGZvcmdl
dHMgdG8gdXNlIC1sY19yIGluc3RlYWQgb2YgLWxjCi0JIwotCWlmIHRlc3QgeCIkZG9uZSIgPSB4
bm87IHRoZW4KLQkgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgLWxjX3IgZml4ZXMgdGhhdF0p
Ci0JICAgTElCUz0iLWxjX3IgJFBUSFJFQURfTElCUyAkc2F2ZV9MSUJTIgotCSAgIEFDX1RSWV9M
SU5LKFsjaW5jbHVkZSA8cHRocmVhZC5oPl0sCi0JICAgICAgIFtwdGhyZWFkX3QgdGg7IHB0aHJl
YWRfam9pbih0aCwgMCk7Ci0JICAgICAgICBwdGhyZWFkX2F0dHJfaW5pdCgwKTsgcHRocmVhZF9j
bGVhbnVwX3B1c2goMCwgMCk7Ci0JICAgICAgICBwdGhyZWFkX2NyZWF0ZSgwLDAsMCwwKTsgcHRo
cmVhZF9jbGVhbnVwX3BvcCgwKTsgXSwKLQkgICAgICAgW2RvbmU9eWVzXSkKLQkKLQkgICBpZiB0
ZXN0ICJ4JGRvbmUiID0geHllczsgdGhlbgotCSAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0J
ICAgICAgUFRIUkVBRF9MSUJTPSItbGNfciAkUFRIUkVBRF9MSUJTIgotCSAgIGVsc2UKLQkgICAg
ICBBQ19NU0dfUkVTVUxUKFtub10pCi0JICAgZmkKLQlmaQotCWlmIHRlc3QgeCIkZG9uZSIgPSB4
bm87IHRoZW4KLQkgICAjIE9LLCB3ZSBoYXZlIHJ1biBvdXQgb2YgaWRlYXMKLQkgICBBQ19NU0df
V0FSTihbSW1wb3NzaWJsZSB0byBkZXRlcm1pbmUgaG93IHRvIHVzZSBwdGhyZWFkcyB3aXRoIHNo
YXJlZCBsaWJyYXJpZXNdKQotCQotCSAgICMgc28gaXQncyBub3Qgc2FmZSB0byBhc3N1bWUgdGhh
dCB3ZSBtYXkgdXNlIHB0aHJlYWRzCi0JICAgYWN4X3B0aHJlYWRfb2s9bm8KLQlmaQotCQotCUNG
TEFHUz0iJHNhdmVfQ0ZMQUdTIgotCUxJQlM9IiRzYXZlX0xJQlMiCi0JQ0M9IiRzYXZlX0NDIgot
ZWxzZQotICAgICAgICBQVEhSRUFEX0NDPSIkQ0MiCi1maQotCi1BQ19TVUJTVChQVEhSRUFEX0xJ
QlMpCi1BQ19TVUJTVChQVEhSRUFEX0NGTEFHUykKLUFDX1NVQlNUKFBUSFJFQURfQ0MpCi0KLSMg
RmluYWxseSwgZXhlY3V0ZSBBQ1RJT04tSUYtRk9VTkQvQUNUSU9OLUlGLU5PVC1GT1VORDoKLWlm
IHRlc3QgeCIkYWN4X3B0aHJlYWRfb2siID0geHllczsgdGhlbgotICAgICAgICBpZmVsc2UoWyQx
XSwsQUNfREVGSU5FKEhBVkVfUFRIUkVBRCwxLFtEZWZpbmUgaWYgeW91IGhhdmUgUE9TSVggdGhy
ZWFkcyBsaWJyYXJpZXMgYW5kIGhlYWRlciBmaWxlcy5dKSxbJDFdKQotICAgICAgICA6Ci1lbHNl
Ci0gICAgICAgIGFjeF9wdGhyZWFkX29rPW5vCi0gICAgICAgICQyCi1maQotQUNfTEFOR19SRVNU
T1JFCi1dKWRubCBBQ1hfUFRIUkVBRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvbTQvZ3Rlc3QubTQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9tNC9ndGVzdC5t
NApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU5OGJhNzVhNGQ3ZjJjNDg2NjMyYzZk
ZGRjMGRlNTE3OGQyOTBlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9tNC9ndGVzdC5tNAorKysgL2Rldi9u
dWxsCkBAIC0xLDc0ICswLDAgQEAKLWRubCBHVEVTVF9MSUJfQ0hFQ0soW21pbmltdW0gdmVyc2lv
biBbLAotZG5sICAgICAgICAgICAgICAgICAgYWN0aW9uIGlmIGZvdW5kIFssYWN0aW9uIGlmIG5v
dCBmb3VuZF1dXSkKLWRubAotZG5sIENoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIEdvb2ds
ZSBUZXN0IGxpYnJhcnksIG9wdGlvbmFsbHkgYXQgYSBtaW5pbXVtCi1kbmwgdmVyc2lvbiwgYW5k
IGluZGljYXRlIGEgdmlhYmxlIHZlcnNpb24gd2l0aCB0aGUgSEFWRV9HVEVTVCBmbGFnLiBJdCBk
ZWZpbmVzCi1kbmwgc3RhbmRhcmQgdmFyaWFibGVzIGZvciBzdWJzdGl0dXRpb24gaW5jbHVkaW5n
IEdURVNUX0NQUEZMQUdTLAotZG5sIEdURVNUX0NYWEZMQUdTLCBHVEVTVF9MREZMQUdTLCBhbmQg
R1RFU1RfTElCUy4gSXQgYWxzbyBkZWZpbmVzCi1kbmwgR1RFU1RfVkVSU0lPTiBhcyB0aGUgdmVy
c2lvbiBvZiBHb29nbGUgVGVzdCBmb3VuZC4gRmluYWxseSwgaXQgcHJvdmlkZXMKLWRubCBvcHRp
b25hbCBjdXN0b20gYWN0aW9uIHNsb3RzIGluIHRoZSBldmVudCBHVEVTVCBpcyBmb3VuZCBvciBu
b3QuCi1BQ19ERUZVTihbR1RFU1RfTElCX0NIRUNLXSwKLVsKLWRubCBQcm92aWRlIGEgZmxhZyB0
byBlbmFibGUgb3IgZGlzYWJsZSBHb29nbGUgVGVzdCB1c2FnZS4KLUFDX0FSR19FTkFCTEUoW2d0
ZXN0XSwKLSAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1ndGVzdF0sCi0gICAgICAgICAgICAg
ICAgICBbRW5hYmxlIHRlc3RzIHVzaW5nIHRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3Jr
LgotICAgICAgICAgICAgICAgICAgKERlZmF1bHQgaXMgZW5hYmxlZC4pXSldLAotICBbXSwKLSAg
W2VuYWJsZV9ndGVzdD1dKQotQUNfQVJHX1ZBUihbR1RFU1RfQ09ORklHXSwKLSAgICAgICAgICAg
W1RoZSBleGFjdCBwYXRoIG9mIEdvb2dsZSBUZXN0J3MgJ2d0ZXN0LWNvbmZpZycgc2NyaXB0Ll0p
Ci1BQ19BUkdfVkFSKFtHVEVTVF9DUFBGTEFHU10sCi0gICAgICAgICAgIFtDLWxpa2UgcHJlcHJv
Y2Vzc29yIGZsYWdzIGZvciBHb29nbGUgVGVzdC5dKQotQUNfQVJHX1ZBUihbR1RFU1RfQ1hYRkxB
R1NdLAotICAgICAgICAgICBbQysrIGNvbXBpbGUgZmxhZ3MgZm9yIEdvb2dsZSBUZXN0Ll0pCi1B
Q19BUkdfVkFSKFtHVEVTVF9MREZMQUdTXSwKLSAgICAgICAgICAgW0xpbmtlciBwYXRoIGFuZCBv
cHRpb24gZmxhZ3MgZm9yIEdvb2dsZSBUZXN0Ll0pCi1BQ19BUkdfVkFSKFtHVEVTVF9MSUJTXSwK
LSAgICAgICAgICAgW0xpYnJhcnkgbGlua2luZyBmbGFncyBmb3IgR29vZ2xlIFRlc3QuXSkKLUFD
X0FSR19WQVIoW0dURVNUX1ZFUlNJT05dLAotICAgICAgICAgICBbVGhlIHZlcnNpb24gb2YgR29v
Z2xlIFRlc3QgYXZhaWxhYmxlLl0pCi1IQVZFX0dURVNUPSJubyIKLUFTX0lGKFt0ZXN0ICJ4JHtl
bmFibGVfZ3Rlc3R9IiAhPSAieG5vIl0sCi0gIFtBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAnZ3Rlc3Qt
Y29uZmlnJ10pCi0gICBBU19JRihbdGVzdCAieCR7ZW5hYmxlX2d0ZXN0fSIgIT0gInh5ZXMiXSwK
LSAgICAgW0FTX0lGKFt0ZXN0IC14ICIke2VuYWJsZV9ndGVzdH0vc2NyaXB0cy9ndGVzdC1jb25m
aWciXSwKLSAgICAgICAgW0dURVNUX0NPTkZJRz0iJHtlbmFibGVfZ3Rlc3R9L3NjcmlwdHMvZ3Rl
c3QtY29uZmlnIl0sCi0gICAgICAgIFtHVEVTVF9DT05GSUc9IiR7ZW5hYmxlX2d0ZXN0fS9iaW4v
Z3Rlc3QtY29uZmlnIl0pCi0gICAgICBBU19JRihbdGVzdCAteCAiJHtHVEVTVF9DT05GSUd9Il0s
IFtdLAotICAgICAgICBbQUNfTVNHX1JFU1VMVChbbm9dKQotICAgICAgICAgQUNfTVNHX0VSUk9S
KFtkbmwKLVVuYWJsZSB0byBsb2NhdGUgZWl0aGVyIGEgYnVpbHQgb3IgaW5zdGFsbGVkIEdvb2ds
ZSBUZXN0LgotVGhlIHNwZWNpZmljIGxvY2F0aW9uICcke2VuYWJsZV9ndGVzdH0nIHdhcyBwcm92
aWRlZCBmb3IgYSBidWlsdCBvciBpbnN0YWxsZWQKLUdvb2dsZSBUZXN0LCBidXQgbm8gJ2d0ZXN0
LWNvbmZpZycgc2NyaXB0IGNvdWxkIGJlIGZvdW5kIGF0IHRoaXMgbG9jYXRpb24uXSkKLSAgICAg
ICAgIF0pXSwKLSAgICAgW0FDX1BBVEhfUFJPRyhbR1RFU1RfQ09ORklHXSwgW2d0ZXN0LWNvbmZp
Z10pXSkKLSAgIEFTX0lGKFt0ZXN0IC14ICIke0dURVNUX0NPTkZJR30iXSwKLSAgICAgW0FDX01T
R19SRVNVTFQoWyR7R1RFU1RfQ09ORklHfV0pCi0gICAgICBtNF9pZnZhbChbJDFdLAotICAgICAg
ICBbX2d0ZXN0X21pbl92ZXJzaW9uPSItLW1pbi12ZXJzaW9uPSQxIgotICAgICAgICAgQUNfTVNH
X0NIRUNLSU5HKFtmb3IgR29vZ2xlIFRlc3QgYXQgbGVhc3QgdmVyc2lvbiA+PSAkMV0pXSwKLSAg
ICAgICAgW19ndGVzdF9taW5fdmVyc2lvbj0iLS1taW4tdmVyc2lvbj0wIgotICAgICAgICAgQUNf
TVNHX0NIRUNLSU5HKFtmb3IgR29vZ2xlIFRlc3RdKV0pCi0gICAgICBBU19JRihbJHtHVEVTVF9D
T05GSUd9ICR7X2d0ZXN0X21pbl92ZXJzaW9ufV0sCi0gICAgICAgIFtBQ19NU0dfUkVTVUxUKFt5
ZXNdKQotICAgICAgICAgSEFWRV9HVEVTVD0neWVzJ10sCi0gICAgICAgIFtBQ19NU0dfUkVTVUxU
KFtub10pXSldLAotICAgICBbQUNfTVNHX1JFU1VMVChbbm9dKV0pCi0gICBBU19JRihbdGVzdCAi
eCR7SEFWRV9HVEVTVH0iID0gInh5ZXMiXSwKLSAgICAgW0dURVNUX0NQUEZMQUdTPWAke0dURVNU
X0NPTkZJR30gLS1jcHBmbGFnc2AKLSAgICAgIEdURVNUX0NYWEZMQUdTPWAke0dURVNUX0NPTkZJ
R30gLS1jeHhmbGFnc2AKLSAgICAgIEdURVNUX0xERkxBR1M9YCR7R1RFU1RfQ09ORklHfSAtLWxk
ZmxhZ3NgCi0gICAgICBHVEVTVF9MSUJTPWAke0dURVNUX0NPTkZJR30gLS1saWJzYAotICAgICAg
R1RFU1RfVkVSU0lPTj1gJHtHVEVTVF9DT05GSUd9IC0tdmVyc2lvbmAKLSAgICAgIEFDX0RFRklO
RShbSEFWRV9HVEVTVF0sWzFdLFtEZWZpbmVkIHdoZW4gR29vZ2xlIFRlc3QgaXMgYXZhaWxhYmxl
Ll0pXSwKLSAgICAgW0FTX0lGKFt0ZXN0ICJ4JHtlbmFibGVfZ3Rlc3R9IiA9ICJ4eWVzIl0sCi0g
ICAgICAgIFtBQ19NU0dfRVJST1IoW2RubAotR29vZ2xlIFRlc3Qgd2FzIGVuYWJsZWQsIGJ1dCBu
byB2aWFibGUgdmVyc2lvbiBjb3VsZCBiZSBmb3VuZC5dKQotICAgICAgICAgXSldKV0pCi1BQ19T
VUJTVChbSEFWRV9HVEVTVF0pCi1BTV9DT05ESVRJT05BTChbSEFWRV9HVEVTVF0sW3Rlc3QgIngk
SEFWRV9HVEVTVCIgPSAieHllcyJdKQotQVNfSUYoW3Rlc3QgIngkSEFWRV9HVEVTVCIgPSAieHll
cyJdLAotICBbbTRfaWZ2YWwoWyQyXSwgWyQyXSldLAotICBbbTRfaWZ2YWwoWyQzXSwgWyQzXSld
KQotXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L21ha2UvTWFrZWZp
bGUgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9tYWtlL01ha2VmaWxlCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5YWM3NDQ5M2JhNTUyNDY1OTdlOTBiODk4ZmFlODQ3YWUzNThl
YWI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L21ha2UvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSw4
MiArMCwwIEBACi0jIEEgc2FtcGxlIE1ha2VmaWxlIGZvciBidWlsZGluZyBHb29nbGUgVGVzdCBh
bmQgdXNpbmcgaXQgaW4gdXNlcgotIyB0ZXN0cy4gIFBsZWFzZSB0d2VhayBpdCB0byBzdWl0IHlv
dXIgZW52aXJvbm1lbnQgYW5kIHByb2plY3QuICBZb3UKLSMgbWF5IHdhbnQgdG8gbW92ZSBpdCB0
byB5b3VyIHByb2plY3QncyByb290IGRpcmVjdG9yeS4KLSMKLSMgU1lOT1BTSVM6Ci0jCi0jICAg
bWFrZSBbYWxsXSAgLSBtYWtlcyBldmVyeXRoaW5nLgotIyAgIG1ha2UgVEFSR0VUIC0gbWFrZXMg
dGhlIGdpdmVuIHRhcmdldC4KLSMgICBtYWtlIGNsZWFuICAtIHJlbW92ZXMgYWxsIGZpbGVzIGdl
bmVyYXRlZCBieSBtYWtlLgotCi0jIFBsZWFzZSB0d2VhayB0aGUgZm9sbG93aW5nIHZhcmlhYmxl
IGRlZmluaXRpb25zIGFzIG5lZWRlZCBieSB5b3VyCi0jIHByb2plY3QsIGV4Y2VwdCBHVEVTVF9I
RUFERVJTLCB3aGljaCB5b3UgY2FuIHVzZSBpbiB5b3VyIG93biB0YXJnZXRzCi0jIGJ1dCBzaG91
bGRuJ3QgbW9kaWZ5LgotCi0jIFBvaW50cyB0byB0aGUgcm9vdCBvZiBHb29nbGUgVGVzdCwgcmVs
YXRpdmUgdG8gd2hlcmUgdGhpcyBmaWxlIGlzLgotIyBSZW1lbWJlciB0byB0d2VhayB0aGlzIGlm
IHlvdSBtb3ZlIHRoaXMgZmlsZS4KLUdURVNUX0RJUiA9IC4uCi0KLSMgV2hlcmUgdG8gZmluZCB1
c2VyIGNvZGUuCi1VU0VSX0RJUiA9IC4uL3NhbXBsZXMKLQotIyBGbGFncyBwYXNzZWQgdG8gdGhl
IHByZXByb2Nlc3Nvci4KLSMgU2V0IEdvb2dsZSBUZXN0J3MgaGVhZGVyIGRpcmVjdG9yeSBhcyBh
IHN5c3RlbSBkaXJlY3RvcnksIHN1Y2ggdGhhdAotIyB0aGUgY29tcGlsZXIgZG9lc24ndCBnZW5l
cmF0ZSB3YXJuaW5ncyBpbiBHb29nbGUgVGVzdCBoZWFkZXJzLgotQ1BQRkxBR1MgKz0gLWlzeXN0
ZW0gJChHVEVTVF9ESVIpL2luY2x1ZGUKLQotIyBGbGFncyBwYXNzZWQgdG8gdGhlIEMrKyBjb21w
aWxlci4KLUNYWEZMQUdTICs9IC1nIC1XYWxsIC1XZXh0cmEgLXB0aHJlYWQKLQotIyBBbGwgdGVz
dHMgcHJvZHVjZWQgYnkgdGhpcyBNYWtlZmlsZS4gIFJlbWVtYmVyIHRvIGFkZCBuZXcgdGVzdHMg
eW91Ci0jIGNyZWF0ZWQgdG8gdGhlIGxpc3QuCi1URVNUUyA9IHNhbXBsZTFfdW5pdHRlc3QKLQot
IyBBbGwgR29vZ2xlIFRlc3QgaGVhZGVycy4gIFVzdWFsbHkgeW91IHNob3VsZG4ndCBjaGFuZ2Ug
dGhpcwotIyBkZWZpbml0aW9uLgotR1RFU1RfSEVBREVSUyA9ICQoR1RFU1RfRElSKS9pbmNsdWRl
L2d0ZXN0LyouaCBcCi0gICAgICAgICAgICAgICAgJChHVEVTVF9ESVIpL2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvKi5oCi0KLSMgSG91c2Uta2VlcGluZyBidWlsZCB0YXJnZXRzLgotCi1hbGwgOiAk
KFRFU1RTKQotCi1jbGVhbiA6Ci0Jcm0gLWYgJChURVNUUykgZ3Rlc3QuYSBndGVzdF9tYWluLmEg
Ki5vCi0KLSMgQnVpbGRzIGd0ZXN0LmEgYW5kIGd0ZXN0X21haW4uYS4KLQotIyBVc3VhbGx5IHlv
dSBzaG91bGRuJ3QgdHdlYWsgc3VjaCBpbnRlcm5hbCB2YXJpYWJsZXMsIGluZGljYXRlZCBieSBh
Ci0jIHRyYWlsaW5nIF8uCi1HVEVTVF9TUkNTXyA9ICQoR1RFU1RfRElSKS9zcmMvKi5jYyAkKEdU
RVNUX0RJUikvc3JjLyouaCAkKEdURVNUX0hFQURFUlMpCi0KLSMgRm9yIHNpbXBsaWNpdHkgYW5k
IHRvIGF2b2lkIGRlcGVuZGluZyBvbiBHb29nbGUgVGVzdCdzCi0jIGltcGxlbWVudGF0aW9uIGRl
dGFpbHMsIHRoZSBkZXBlbmRlbmNpZXMgc3BlY2lmaWVkIGJlbG93IGFyZQotIyBjb25zZXJ2YXRp
dmUgYW5kIG5vdCBvcHRpbWl6ZWQuICBUaGlzIGlzIGZpbmUgYXMgR29vZ2xlIFRlc3QKLSMgY29t
cGlsZXMgZmFzdCBhbmQgZm9yIG9yZGluYXJ5IHVzZXJzIGl0cyBzb3VyY2UgcmFyZWx5IGNoYW5n
ZXMuCi1ndGVzdC1hbGwubyA6ICQoR1RFU1RfU1JDU18pCi0JJChDWFgpICQoQ1BQRkxBR1MpIC1J
JChHVEVTVF9ESVIpICQoQ1hYRkxBR1MpIC1jIFwKLSAgICAgICAgICAgICQoR1RFU1RfRElSKS9z
cmMvZ3Rlc3QtYWxsLmNjCi0KLWd0ZXN0X21haW4ubyA6ICQoR1RFU1RfU1JDU18pCi0JJChDWFgp
ICQoQ1BQRkxBR1MpIC1JJChHVEVTVF9ESVIpICQoQ1hYRkxBR1MpIC1jIFwKLSAgICAgICAgICAg
ICQoR1RFU1RfRElSKS9zcmMvZ3Rlc3RfbWFpbi5jYwotCi1ndGVzdC5hIDogZ3Rlc3QtYWxsLm8K
LQkkKEFSKSAkKEFSRkxBR1MpICRAICReCi0KLWd0ZXN0X21haW4uYSA6IGd0ZXN0LWFsbC5vIGd0
ZXN0X21haW4ubwotCSQoQVIpICQoQVJGTEFHUykgJEAgJF4KLQotIyBCdWlsZHMgYSBzYW1wbGUg
dGVzdC4gIEEgdGVzdCBzaG91bGQgbGluayB3aXRoIGVpdGhlciBndGVzdC5hIG9yCi0jIGd0ZXN0
X21haW4uYSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQgZGVmaW5lcyBpdHMgb3duIG1haW4oKQot
IyBmdW5jdGlvbi4KLQotc2FtcGxlMS5vIDogJChVU0VSX0RJUikvc2FtcGxlMS5jYyAkKFVTRVJf
RElSKS9zYW1wbGUxLmggJChHVEVTVF9IRUFERVJTKQotCSQoQ1hYKSAkKENQUEZMQUdTKSAkKENY
WEZMQUdTKSAtYyAkKFVTRVJfRElSKS9zYW1wbGUxLmNjCi0KLXNhbXBsZTFfdW5pdHRlc3QubyA6
ICQoVVNFUl9ESVIpL3NhbXBsZTFfdW5pdHRlc3QuY2MgXAotICAgICAgICAgICAgICAgICAgICAg
JChVU0VSX0RJUikvc2FtcGxlMS5oICQoR1RFU1RfSEVBREVSUykKLQkkKENYWCkgJChDUFBGTEFH
UykgJChDWFhGTEFHUykgLWMgJChVU0VSX0RJUikvc2FtcGxlMV91bml0dGVzdC5jYwotCi1zYW1w
bGUxX3VuaXR0ZXN0IDogc2FtcGxlMS5vIHNhbXBsZTFfdW5pdHRlc3QubyBndGVzdF9tYWluLmEK
LQkkKENYWCkgJChDUFBGTEFHUykgJChDWFhGTEFHUykgLWxwdGhyZWFkICReIC1vICRACmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3ByaW1lX3RhYmxlcy5o
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9wcmltZV90YWJsZXMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTVhM2I0NGVmZDg1NzIxNTY1NTNhYmMxOTIxNmRh
ZDY2MmYyNzNiOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3ByaW1lX3RhYmxlcy5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMu
Ci0vLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0v
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdh
bikKLS8vIEF1dGhvcjogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBMb3NldikKLQotLy8gVGhpcyBw
cm92aWRlcyBpbnRlcmZhY2UgUHJpbWVUYWJsZSB0aGF0IGRldGVybWluZXMgd2hldGhlciBhIG51
bWJlciBpcyBhCi0vLyBwcmltZSBhbmQgZGV0ZXJtaW5lcyBhIG5leHQgcHJpbWUgbnVtYmVyLiBU
aGlzIGludGVyZmFjZSBpcyB1c2VkCi0vLyBpbiBHb29nbGUgVGVzdCBzYW1wbGVzIGRlbW9uc3Ry
YXRpbmcgdXNlIG9mIHBhcmFtZXRlcml6ZWQgdGVzdHMuCi0KLSNpZm5kZWYgR1RFU1RfU0FNUExF
U19QUklNRV9UQUJMRVNfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19QUklNRV9UQUJMRVNfSF8K
LQotI2luY2x1ZGUgPGFsZ29yaXRobT4KLQotLy8gVGhlIHByaW1lIHRhYmxlIGludGVyZmFjZS4K
LWNsYXNzIFByaW1lVGFibGUgewotIHB1YmxpYzoKLSAgdmlydHVhbCB+UHJpbWVUYWJsZSgpIHt9
Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiBuIGlzIGEgcHJpbWUgbnVtYmVyLgotICB2aXJ0dWFs
IGJvb2wgSXNQcmltZShpbnQgbikgY29uc3QgPSAwOwotCi0gIC8vIFJldHVybnMgdGhlIHNtYWxs
ZXN0IHByaW1lIG51bWJlciBncmVhdGVyIHRoYW4gcDsgb3IgcmV0dXJucyAtMQotICAvLyBpZiB0
aGUgbmV4dCBwcmltZSBpcyBiZXlvbmQgdGhlIGNhcGFjaXR5IG9mIHRoZSB0YWJsZS4KLSAgdmly
dHVhbCBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25zdCA9IDA7Ci19OwotCi0vLyBJbXBsZW1l
bnRhdGlvbiAjMSBjYWxjdWxhdGVzIHRoZSBwcmltZXMgb24tdGhlLWZseS4KLWNsYXNzIE9uVGhl
Rmx5UHJpbWVUYWJsZSA6IHB1YmxpYyBQcmltZVRhYmxlIHsKLSBwdWJsaWM6Ci0gIHZpcnR1YWwg
Ym9vbCBJc1ByaW1lKGludCBuKSBjb25zdCB7Ci0gICAgaWYgKG4gPD0gMSkgcmV0dXJuIGZhbHNl
OwotCi0gICAgZm9yIChpbnQgaSA9IDI7IGkqaSA8PSBuOyBpKyspIHsKLSAgICAgIC8vIG4gaXMg
ZGl2aXNpYmxlIGJ5IGFuIGludGVnZXIgb3RoZXIgdGhhbiAxIGFuZCBpdHNlbGYuCi0gICAgICBp
ZiAoKG4gJSBpKSA9PSAwKSByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7
Ci0gIH0KLQotICB2aXJ0dWFsIGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IHsKLSAgICBm
b3IgKGludCBuID0gcCArIDE7IG4gPiAwOyBuKyspIHsKLSAgICAgIGlmIChJc1ByaW1lKG4pKSBy
ZXR1cm4gbjsKLSAgICB9Ci0KLSAgICByZXR1cm4gLTE7Ci0gIH0KLX07Ci0KLS8vIEltcGxlbWVu
dGF0aW9uICMyIHByZS1jYWxjdWxhdGVzIHRoZSBwcmltZXMgYW5kIHN0b3JlcyB0aGUgcmVzdWx0
Ci0vLyBpbiBhbiBhcnJheS4KLWNsYXNzIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlIDogcHVibGlj
IFByaW1lVGFibGUgewotIHB1YmxpYzoKLSAgLy8gJ21heCcgc3BlY2lmaWVzIHRoZSBtYXhpbXVt
IG51bWJlciB0aGUgcHJpbWUgdGFibGUgaG9sZHMuCi0gIGV4cGxpY2l0IFByZUNhbGN1bGF0ZWRQ
cmltZVRhYmxlKGludCBtYXgpCi0gICAgICA6IGlzX3ByaW1lX3NpemVfKG1heCArIDEpLCBpc19w
cmltZV8obmV3IGJvb2xbbWF4ICsgMV0pIHsKLSAgICBDYWxjdWxhdGVQcmltZXNVcFRvKG1heCk7
Ci0gIH0KLSAgdmlydHVhbCB+UHJlQ2FsY3VsYXRlZFByaW1lVGFibGUoKSB7IGRlbGV0ZVtdIGlz
X3ByaW1lXzsgfQotCi0gIHZpcnR1YWwgYm9vbCBJc1ByaW1lKGludCBuKSBjb25zdCB7Ci0gICAg
cmV0dXJuIDAgPD0gbiAmJiBuIDwgaXNfcHJpbWVfc2l6ZV8gJiYgaXNfcHJpbWVfW25dOwotICB9
Ci0KLSAgdmlydHVhbCBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25zdCB7Ci0gICAgZm9yIChp
bnQgbiA9IHAgKyAxOyBuIDwgaXNfcHJpbWVfc2l6ZV87IG4rKykgewotICAgICAgaWYgKGlzX3By
aW1lX1tuXSkgcmV0dXJuIG47Ci0gICAgfQotCi0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSBwcml2
YXRlOgotICB2b2lkIENhbGN1bGF0ZVByaW1lc1VwVG8oaW50IG1heCkgewotICAgIDo6c3RkOjpm
aWxsKGlzX3ByaW1lXywgaXNfcHJpbWVfICsgaXNfcHJpbWVfc2l6ZV8sIHRydWUpOwotICAgIGlz
X3ByaW1lX1swXSA9IGlzX3ByaW1lX1sxXSA9IGZhbHNlOwotCi0gICAgLy8gQ2hlY2tzIGV2ZXJ5
IGNhbmRpZGF0ZSBmb3IgcHJpbWUgbnVtYmVyICh3ZSBrbm93IHRoYXQgMiBpcyB0aGUgb25seSBl
dmVuCi0gICAgLy8gcHJpbWUpLgotICAgIGZvciAoaW50IGkgPSAyOyBpKmkgPD0gbWF4OyBpICs9
IGklMisxKSB7Ci0gICAgICBpZiAoIWlzX3ByaW1lX1tpXSkgY29udGludWU7Ci0KLSAgICAgIC8v
IE1hcmtzIGFsbCBtdWx0aXBsZXMgb2YgaSAoZXhjZXB0IGkgaXRzZWxmKSBhcyBub24tcHJpbWUu
Ci0gICAgICAvLyBXZSBhcmUgc3RhcnRpbmcgaGVyZSBmcm9tIGktdGggbXVsdGlwbGllciwgYmVj
YXVzZSBhbGwgc21hbGxlcgotICAgICAgLy8gY29tcGxleCBudW1iZXJzIHdlcmUgYWxyZWFkeSBt
YXJrZWQuCi0gICAgICBmb3IgKGludCBqID0gaSppOyBqIDw9IG1heDsgaiArPSBpKSB7Ci0gICAg
ICAgIGlzX3ByaW1lX1tqXSA9IGZhbHNlOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIGNvbnN0
IGludCBpc19wcmltZV9zaXplXzsKLSAgYm9vbCogY29uc3QgaXNfcHJpbWVfOwotCi0gIC8vIERp
c2FibGVzIGNvbXBpbGVyIHdhcm5pbmcgImFzc2lnbm1lbnQgb3BlcmF0b3IgY291bGQgbm90IGJl
IGdlbmVyYXRlZC4iCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFByZUNhbGN1bGF0ZWRQcmltZVRh
YmxlJiByaHMpOwotfTsKLQotI2VuZGlmICAvLyBHVEVTVF9TQU1QTEVTX1BSSU1FX1RBQkxFU19I
XwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUx
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUxLmNjCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzA4YjI4ZjNiNmIyMzhkN2Q5NGEyNmMwZTlkZjdi
Y2RiY2U4YmQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlMS5jYworKysgL2Rldi9u
dWxsCkBAIC0xLDY4ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUgSW5jLgotLy8g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8g
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2ds
ZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0vLwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAo
WmhhbnlvbmcgV2FuKQotCi0jaW5jbHVkZSAic2FtcGxlMS5oIgotCi0vLyBSZXR1cm5zIG4hICh0
aGUgZmFjdG9yaWFsIG9mIG4pLiAgRm9yIG5lZ2F0aXZlIG4sIG4hIGlzIGRlZmluZWQgdG8gYmUg
MS4KLWludCBGYWN0b3JpYWwoaW50IG4pIHsKLSAgaW50IHJlc3VsdCA9IDE7Ci0gIGZvciAoaW50
IGkgPSAxOyBpIDw9IG47IGkrKykgewotICAgIHJlc3VsdCAqPSBpOwotICB9Ci0KLSAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotLy8gUmV0dXJucyB0cnVlIGlmZiBuIGlzIGEgcHJpbWUgbnVtYmVyLgot
Ym9vbCBJc1ByaW1lKGludCBuKSB7Ci0gIC8vIFRyaXZpYWwgY2FzZSAxOiBzbWFsbCBudW1iZXJz
Ci0gIGlmIChuIDw9IDEpIHJldHVybiBmYWxzZTsKLQotICAvLyBUcml2aWFsIGNhc2UgMjogZXZl
biBudW1iZXJzCi0gIGlmIChuICUgMiA9PSAwKSByZXR1cm4gbiA9PSAyOwotCi0gIC8vIE5vdywg
d2UgaGF2ZSB0aGF0IG4gaXMgb2RkIGFuZCBuID49IDMuCi0KLSAgLy8gVHJ5IHRvIGRpdmlkZSBu
IGJ5IGV2ZXJ5IG9kZCBudW1iZXIgaSwgc3RhcnRpbmcgZnJvbSAzCi0gIGZvciAoaW50IGkgPSAz
OyA7IGkgKz0gMikgewotICAgIC8vIFdlIG9ubHkgaGF2ZSB0byB0cnkgaSB1cCB0byB0aGUgc3F1
YXJlIHJvb3Qgb2YgbgotICAgIGlmIChpID4gbi9pKSBicmVhazsKLQotICAgIC8vIE5vdywgd2Ug
aGF2ZSBpIDw9IG4vaSA8IG4uCi0gICAgLy8gSWYgbiBpcyBkaXZpc2libGUgYnkgaSwgbiBpcyBu
b3QgcHJpbWUuCi0gICAgaWYgKG4gJSBpID09IDApIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIC8v
IG4gaGFzIG5vIGludGVnZXIgZmFjdG9yIGluIHRoZSByYW5nZSAoMSwgbiksIGFuZCB0aHVzIGlz
IHByaW1lLgotICByZXR1cm4gdHJ1ZTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9n
b29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
c2FtcGxlcy9zYW1wbGUxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkZmViOThj
NDUwMzAxNDVmOWVhMThkNzk1MzFjOTFjODFlZTg0OWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxl
cy9zYW1wbGUxLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vLyBDb3B5cmlnaHQg
MjAwNSwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4K
LS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0v
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLS8vIEEgc2FtcGxlIHByb2dyYW0gZGVt
b25zdHJhdGluZyB1c2luZyBHb29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrLgotLy8KLS8vIEF1
dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotI2lmbmRlZiBHVEVTVF9TQU1Q
TEVTX1NBTVBMRTFfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19TQU1QTEUxX0hfCi0KLS8vIFJl
dHVybnMgbiEgKHRoZSBmYWN0b3JpYWwgb2YgbikuICBGb3IgbmVnYXRpdmUgbiwgbiEgaXMgZGVm
aW5lZCB0byBiZSAxLgotaW50IEZhY3RvcmlhbChpbnQgbik7Ci0KLS8vIFJldHVybnMgdHJ1ZSBp
ZmYgbiBpcyBhIHByaW1lIG51bWJlci4KLWJvb2wgSXNQcmltZShpbnQgbik7Ci0KLSNlbmRpZiAg
Ly8gR1RFU1RfU0FNUExFU19TQU1QTEUxX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTBhYTc2MjBmMGM3ZDUxNjcwODc5ODMyNDNmZGYyMzlhNThjODAwYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRf
cGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjCisrKyAvZGV2L251
bGwKQEAgLTEsMTQwICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA5IEdvb2dsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBt
ZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
Ly8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8g
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0vLwotLy8gQXV0aG9yOiB2bGFkbEBnb29nbGUuY29tIChWbGFkIExvc2V2KQotCi0vLyBU
aGlzIHNhbXBsZSBzaG93cyBob3cgdG8gdXNlIEdvb2dsZSBUZXN0IGxpc3RlbmVyIEFQSSB0byBp
bXBsZW1lbnQKLS8vIGEgcHJpbWl0aXZlIGxlYWsgY2hlY2tlci4KLQotI2luY2x1ZGUgPHN0ZGlv
Lmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotdXNp
bmcgOjp0ZXN0aW5nOjpFbXB0eVRlc3RFdmVudExpc3RlbmVyOwotdXNpbmcgOjp0ZXN0aW5nOjpJ
bml0R29vZ2xlVGVzdDsKLXVzaW5nIDo6dGVzdGluZzo6VGVzdDsKLXVzaW5nIDo6dGVzdGluZzo6
VGVzdEV2ZW50TGlzdGVuZXJzOwotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0SW5mbzsKLXVzaW5nIDo6
dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ7Ci11c2luZyA6OnRlc3Rpbmc6OlVuaXRUZXN0OwotCi1u
YW1lc3BhY2UgewotLy8gV2Ugd2lsbCB0cmFjayBtZW1vcnkgdXNlZCBieSB0aGlzIGNsYXNzLgot
Y2xhc3MgV2F0ZXIgewotIHB1YmxpYzoKLSAgLy8gTm9ybWFsIFdhdGVyIGRlY2xhcmF0aW9ucyBn
byBoZXJlLgotCi0gIC8vIG9wZXJhdG9yIG5ldyBhbmQgb3BlcmF0b3IgZGVsZXRlIGhlbHAgdXMg
Y29udHJvbCB3YXRlciBhbGxvY2F0aW9uLgotICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90IGFs
bG9jYXRpb25fc2l6ZSkgewotICAgIGFsbG9jYXRlZF8rKzsKLSAgICByZXR1cm4gbWFsbG9jKGFs
bG9jYXRpb25fc2l6ZSk7Ci0gIH0KLQotICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBibG9j
aywgc2l6ZV90IC8qIGFsbG9jYXRpb25fc2l6ZSAqLykgewotICAgIGFsbG9jYXRlZF8tLTsKLSAg
ICBmcmVlKGJsb2NrKTsKLSAgfQotCi0gIHN0YXRpYyBpbnQgYWxsb2NhdGVkKCkgeyByZXR1cm4g
YWxsb2NhdGVkXzsgfQotCi0gcHJpdmF0ZToKLSAgc3RhdGljIGludCBhbGxvY2F0ZWRfOwotfTsK
LQotaW50IFdhdGVyOjphbGxvY2F0ZWRfID0gMDsKLQotLy8gVGhpcyBldmVudCBsaXN0ZW5lciBt
b25pdG9ycyBob3cgbWFueSBXYXRlciBvYmplY3RzIGFyZSBjcmVhdGVkIGFuZAotLy8gZGVzdHJv
eWVkIGJ5IGVhY2ggdGVzdCwgYW5kIHJlcG9ydHMgYSBmYWlsdXJlIGlmIGEgdGVzdCBsZWFrcyBz
b21lIFdhdGVyCi0vLyBvYmplY3RzLiBJdCBkb2VzIHRoaXMgYnkgY29tcGFyaW5nIHRoZSBudW1i
ZXIgb2YgbGl2ZSBXYXRlciBvYmplY3RzIGF0Ci0vLyB0aGUgYmVnaW5uaW5nIG9mIGEgdGVzdCBh
bmQgYXQgdGhlIGVuZCBvZiBhIHRlc3QuCi1jbGFzcyBMZWFrQ2hlY2tlciA6IHB1YmxpYyBFbXB0
eVRlc3RFdmVudExpc3RlbmVyIHsKLSBwcml2YXRlOgotICAvLyBDYWxsZWQgYmVmb3JlIGEgdGVz
dCBzdGFydHMuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyog
dGVzdF9pbmZvICovKSB7Ci0gICAgaW5pdGlhbGx5X2FsbG9jYXRlZF8gPSBXYXRlcjo6YWxsb2Nh
dGVkKCk7Ci0gIH0KLQotICAvLyBDYWxsZWQgYWZ0ZXIgYSB0ZXN0IGVuZHMuCi0gIHZpcnR1YWwg
dm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qIHRlc3RfaW5mbyAqLykgewotICAgIGlu
dCBkaWZmZXJlbmNlID0gV2F0ZXI6OmFsbG9jYXRlZCgpIC0gaW5pdGlhbGx5X2FsbG9jYXRlZF87
Ci0KLSAgICAvLyBZb3UgY2FuIGdlbmVyYXRlIGEgZmFpbHVyZSBpbiBhbnkgZXZlbnQgaGFuZGxl
ciBleGNlcHQKLSAgICAvLyBPblRlc3RQYXJ0UmVzdWx0LiBKdXN0IHVzZSBhbiBhcHByb3ByaWF0
ZSBHb29nbGUgVGVzdCBhc3NlcnRpb24gdG8gZG8KLSAgICAvLyBpdC4KLSAgICBFWFBFQ1RfTEUo
ZGlmZmVyZW5jZSwgMCkgPDwgIkxlYWtlZCAiIDw8IGRpZmZlcmVuY2UgPDwgIiB1bml0KHMpIG9m
IFdhdGVyISI7Ci0gIH0KLQotICBpbnQgaW5pdGlhbGx5X2FsbG9jYXRlZF87Ci19OwotCi1URVNU
KExpc3RlbmVyc1Rlc3QsIERvZXNOb3RMZWFrKSB7Ci0gIFdhdGVyKiB3YXRlciA9IG5ldyBXYXRl
cjsKLSAgZGVsZXRlIHdhdGVyOwotfQotCi0vLyBUaGlzIHNob3VsZCBmYWlsIHdoZW4gdGhlIC0t
Y2hlY2tfZm9yX2xlYWtzIGNvbW1hbmQgbGluZSBmbGFnIGlzCi0vLyBzcGVjaWZpZWQuCi1URVNU
KExpc3RlbmVyc1Rlc3QsIExlYWtzV2F0ZXIpIHsKLSAgV2F0ZXIqIHdhdGVyID0gbmV3IFdhdGVy
OwotICBFWFBFQ1RfVFJVRSh3YXRlciAhPSBOVUxMKTsKLX0KLX0gIC8vIG5hbWVzcGFjZQotCi1p
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgSW5pdEdvb2dsZVRlc3QoJmFyZ2Ms
IGFyZ3YpOwotCi0gIGJvb2wgY2hlY2tfZm9yX2xlYWtzID0gZmFsc2U7Ci0gIGlmIChhcmdjID4g
MSAmJiBzdHJjbXAoYXJndlsxXSwgIi0tY2hlY2tfZm9yX2xlYWtzIikgPT0gMCApCi0gICAgY2hl
Y2tfZm9yX2xlYWtzID0gdHJ1ZTsKLSAgZWxzZQotICAgIHByaW50ZigiJXNcbiIsICJSdW4gdGhp
cyBwcm9ncmFtIHdpdGggLS1jaGVja19mb3JfbGVha3MgdG8gZW5hYmxlICIKLSAgICAgICAgICAg
ImN1c3RvbSBsZWFrIGNoZWNraW5nIGluIHRoZSB0ZXN0cy4iKTsKLQotICAvLyBJZiB3ZSBhcmUg
Z2l2ZW4gdGhlIC0tY2hlY2tfZm9yX2xlYWtzIGNvbW1hbmQgbGluZSBmbGFnLCBpbnN0YWxscyB0
aGUKLSAgLy8gbGVhayBjaGVja2VyLgotICBpZiAoY2hlY2tfZm9yX2xlYWtzKSB7Ci0gICAgVGVz
dEV2ZW50TGlzdGVuZXJzJiBsaXN0ZW5lcnMgPSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+bGlz
dGVuZXJzKCk7Ci0KLSAgICAvLyBBZGRzIHRoZSBsZWFrIGNoZWNrZXIgdG8gdGhlIGVuZCBvZiB0
aGUgdGVzdCBldmVudCBsaXN0ZW5lciBsaXN0LAotICAgIC8vIGFmdGVyIHRoZSBkZWZhdWx0IHRl
eHQgb3V0cHV0IHByaW50ZXIgYW5kIHRoZSBkZWZhdWx0IFhNTCByZXBvcnQKLSAgICAvLyBnZW5l
cmF0b3IuCi0gICAgLy8KLSAgICAvLyBUaGUgb3JkZXIgaXMgaW1wb3J0YW50IC0gaXQgZW5zdXJl
cyB0aGF0IGZhaWx1cmVzIGdlbmVyYXRlZCBpbiB0aGUKLSAgICAvLyBsZWFrIGNoZWNrZXIncyBP
blRlc3RFbmQoKSBtZXRob2QgYXJlIHByb2Nlc3NlZCBieSB0aGUgdGV4dCBhbmQgWE1MCi0gICAg
Ly8gcHJpbnRlcnMgKmJlZm9yZSogdGhlaXIgT25UZXN0RW5kKCkgbWV0aG9kcyBhcmUgY2FsbGVk
LCBzdWNoIHRoYXQKLSAgICAvLyB0aGV5IGFyZSBhdHRyaWJ1dGVkIHRvIHRoZSByaWdodCB0ZXN0
LiBSZW1lbWJlciB0aGF0IGEgbGlzdGVuZXIKLSAgICAvLyByZWNlaXZlcyBhbiBPblh5elN0YXJ0
IGV2ZW50ICphZnRlciogbGlzdGVuZXJzIHByZWNlZGluZyBpdCBpbiB0aGUKLSAgICAvLyBsaXN0
IHJlY2VpdmVkIHRoYXQgZXZlbnQsIGFuZCByZWNlaXZlcyBhbiBPblh5ekVuZCBldmVudCAqYmVm
b3JlKgotICAgIC8vIGxpc3RlbmVycyBwcmVjZWRpbmcgaXQuCi0gICAgLy8KLSAgICAvLyBXZSBk
b24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGRlbGV0aW5nIHRoZSBuZXcgbGlzdGVuZXIgbGF0ZXIs
IGFzCi0gICAgLy8gR29vZ2xlIFRlc3Qgd2lsbCBkbyBpdC4KLSAgICBsaXN0ZW5lcnMuQXBwZW5k
KG5ldyBMZWFrQ2hlY2tlcik7Ci0gIH0KLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlMV91bml0
dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlMV91bml0
dGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM3NmJiNDMxMDc1ZWZmMWQ0
MTVhNDRlNDQ5YjE1ODk0YjkxZjUxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTFf
dW5pdHRlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotLy8gQ29weXJpZ2h0
IDIwMDUsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24u
Ci0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
Ly8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0vLyBBIHNhbXBsZSBwcm9ncmFtIGRl
bW9uc3RyYXRpbmcgdXNpbmcgR29vZ2xlIEMrKyB0ZXN0aW5nIGZyYW1ld29yay4KLS8vCi0vLyBB
dXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0KLQotLy8gVGhpcyBzYW1wbGUg
c2hvd3MgaG93IHRvIHdyaXRlIGEgc2ltcGxlIHVuaXQgdGVzdCBmb3IgYSBmdW5jdGlvbiwKLS8v
IHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0vLwotLy8gV3JpdGluZyBhIHVu
aXQgdGVzdCB1c2luZyBHb29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrIGlzIGVhc3kgYXMgMS0y
LTM6Ci0KLQotLy8gU3RlcCAxLiBJbmNsdWRlIG5lY2Vzc2FyeSBoZWFkZXIgZmlsZXMgc3VjaCB0
aGF0IHRoZSBzdHVmZiB5b3VyCi0vLyB0ZXN0IGxvZ2ljIG5lZWRzIGlzIGRlY2xhcmVkLgotLy8K
LS8vIERvbid0IGZvcmdldCBndGVzdC5oLCB3aGljaCBkZWNsYXJlcyB0aGUgdGVzdGluZyBmcmFt
ZXdvcmsuCi0KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlICJzYW1wbGUxLmgiCi0jaW5j
bHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLW5hbWVzcGFjZSB7Ci0KLS8vIFN0ZXAgMi4gVXNlIHRoZSBU
RVNUIG1hY3JvIHRvIGRlZmluZSB5b3VyIHRlc3RzLgotLy8KLS8vIFRFU1QgaGFzIHR3byBwYXJh
bWV0ZXJzOiB0aGUgdGVzdCBjYXNlIG5hbWUgYW5kIHRoZSB0ZXN0IG5hbWUuCi0vLyBBZnRlciB1
c2luZyB0aGUgbWFjcm8sIHlvdSBzaG91bGQgZGVmaW5lIHlvdXIgdGVzdCBsb2dpYyBiZXR3ZWVu
IGEKLS8vIHBhaXIgb2YgYnJhY2VzLiAgWW91IGNhbiB1c2UgYSBidW5jaCBvZiBtYWNyb3MgdG8g
aW5kaWNhdGUgdGhlCi0vLyBzdWNjZXNzIG9yIGZhaWx1cmUgb2YgYSB0ZXN0LiAgRVhQRUNUX1RS
VUUgYW5kIEVYUEVDVF9FUSBhcmUKLS8vIGV4YW1wbGVzIG9mIHN1Y2ggbWFjcm9zLiAgRm9yIGEg
Y29tcGxldGUgbGlzdCwgc2VlIGd0ZXN0LmguCi0vLwotLy8gPFRlY2huaWNhbERldGFpbHM+Ci0v
LwotLy8gSW4gR29vZ2xlIFRlc3QsIHRlc3RzIGFyZSBncm91cGVkIGludG8gdGVzdCBjYXNlcy4g
IFRoaXMgaXMgaG93IHdlCi0vLyBrZWVwIHRlc3QgY29kZSBvcmdhbml6ZWQuICBZb3Ugc2hvdWxk
IHB1dCBsb2dpY2FsbHkgcmVsYXRlZCB0ZXN0cwotLy8gaW50byB0aGUgc2FtZSB0ZXN0IGNhc2Uu
Ci0vLwotLy8gVGhlIHRlc3QgY2FzZSBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lIHNob3VsZCBib3Ro
IGJlIHZhbGlkIEMrKwotLy8gaWRlbnRpZmllcnMuICBBbmQgeW91IHNob3VsZCBub3QgdXNlIHVu
ZGVyc2NvcmUgKF8pIGluIHRoZSBuYW1lcy4KLS8vCi0vLyBHb29nbGUgVGVzdCBndWFyYW50ZWVz
IHRoYXQgZWFjaCB0ZXN0IHlvdSBkZWZpbmUgaXMgcnVuIGV4YWN0bHkKLS8vIG9uY2UsIGJ1dCBp
dCBtYWtlcyBubyBndWFyYW50ZWUgb24gdGhlIG9yZGVyIHRoZSB0ZXN0cyBhcmUKLS8vIGV4ZWN1
dGVkLiAgVGhlcmVmb3JlLCB5b3Ugc2hvdWxkIHdyaXRlIHlvdXIgdGVzdHMgaW4gc3VjaCBhIHdh
eQotLy8gdGhhdCB0aGVpciByZXN1bHRzIGRvbid0IGRlcGVuZCBvbiB0aGVpciBvcmRlci4KLS8v
Ci0vLyA8L1RlY2huaWNhbERldGFpbHM+Ci0KLQotLy8gVGVzdHMgRmFjdG9yaWFsKCkuCi0KLS8v
IFRlc3RzIGZhY3RvcmlhbCBvZiBuZWdhdGl2ZSBudW1iZXJzLgotVEVTVChGYWN0b3JpYWxUZXN0
LCBOZWdhdGl2ZSkgewotICAvLyBUaGlzIHRlc3QgaXMgbmFtZWQgIk5lZ2F0aXZlIiwgYW5kIGJl
bG9uZ3MgdG8gdGhlICJGYWN0b3JpYWxUZXN0IgotICAvLyB0ZXN0IGNhc2UuCi0gIEVYUEVDVF9F
USgxLCBGYWN0b3JpYWwoLTUpKTsKLSAgRVhQRUNUX0VRKDEsIEZhY3RvcmlhbCgtMSkpOwotICBF
WFBFQ1RfR1QoRmFjdG9yaWFsKC0xMCksIDApOwotCi0gIC8vIDxUZWNobmljYWxEZXRhaWxzPgot
ICAvLwotICAvLyBFWFBFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgaXMgdGhlIHNhbWUgYXMKLSAg
Ly8KLSAgLy8gICBFWFBFQ1RfVFJVRSgoZXhwZWN0ZWQpID09IChhY3R1YWwpKQotICAvLwotICAv
LyBleGNlcHQgdGhhdCBpdCB3aWxsIHByaW50IGJvdGggdGhlIGV4cGVjdGVkIHZhbHVlIGFuZCB0
aGUgYWN0dWFsCi0gIC8vIHZhbHVlIHdoZW4gdGhlIGFzc2VydGlvbiBmYWlscy4gIFRoaXMgaXMg
dmVyeSBoZWxwZnVsIGZvcgotICAvLyBkZWJ1Z2dpbmcuICBUaGVyZWZvcmUgaW4gdGhpcyBjYXNl
IEVYUEVDVF9FUSBpcyBwcmVmZXJyZWQuCi0gIC8vCi0gIC8vIE9uIHRoZSBvdGhlciBoYW5kLCBF
WFBFQ1RfVFJVRSBhY2NlcHRzIGFueSBCb29sZWFuIGV4cHJlc3Npb24sCi0gIC8vIGFuZCBpcyB0
aHVzIG1vcmUgZ2VuZXJhbC4KLSAgLy8KLSAgLy8gPC9UZWNobmljYWxEZXRhaWxzPgotfQotCi0v
LyBUZXN0cyBmYWN0b3JpYWwgb2YgMC4KLVRFU1QoRmFjdG9yaWFsVGVzdCwgWmVybykgewotICBF
WFBFQ1RfRVEoMSwgRmFjdG9yaWFsKDApKTsKLX0KLQotLy8gVGVzdHMgZmFjdG9yaWFsIG9mIHBv
c2l0aXZlIG51bWJlcnMuCi1URVNUKEZhY3RvcmlhbFRlc3QsIFBvc2l0aXZlKSB7Ci0gIEVYUEVD
VF9FUSgxLCBGYWN0b3JpYWwoMSkpOwotICBFWFBFQ1RfRVEoMiwgRmFjdG9yaWFsKDIpKTsKLSAg
RVhQRUNUX0VRKDYsIEZhY3RvcmlhbCgzKSk7Ci0gIEVYUEVDVF9FUSg0MDMyMCwgRmFjdG9yaWFs
KDgpKTsKLX0KLQotCi0vLyBUZXN0cyBJc1ByaW1lKCkKLQotLy8gVGVzdHMgbmVnYXRpdmUgaW5w
dXQuCi1URVNUKElzUHJpbWVUZXN0LCBOZWdhdGl2ZSkgewotICAvLyBUaGlzIHRlc3QgYmVsb25n
cyB0byB0aGUgSXNQcmltZVRlc3QgdGVzdCBjYXNlLgotCi0gIEVYUEVDVF9GQUxTRShJc1ByaW1l
KC0xKSk7Ci0gIEVYUEVDVF9GQUxTRShJc1ByaW1lKC0yKSk7Ci0gIEVYUEVDVF9GQUxTRShJc1By
aW1lKElOVF9NSU4pKTsKLX0KLQotLy8gVGVzdHMgc29tZSB0cml2aWFsIGNhc2VzLgotVEVTVChJ
c1ByaW1lVGVzdCwgVHJpdmlhbCkgewotICBFWFBFQ1RfRkFMU0UoSXNQcmltZSgwKSk7Ci0gIEVY
UEVDVF9GQUxTRShJc1ByaW1lKDEpKTsKLSAgRVhQRUNUX1RSVUUoSXNQcmltZSgyKSk7Ci0gIEVY
UEVDVF9UUlVFKElzUHJpbWUoMykpOwotfQotCi0vLyBUZXN0cyBwb3NpdGl2ZSBpbnB1dC4KLVRF
U1QoSXNQcmltZVRlc3QsIFBvc2l0aXZlKSB7Ci0gIEVYUEVDVF9GQUxTRShJc1ByaW1lKDQpKTsK
LSAgRVhQRUNUX1RSVUUoSXNQcmltZSg1KSk7Ci0gIEVYUEVDVF9GQUxTRShJc1ByaW1lKDYpKTsK
LSAgRVhQRUNUX1RSVUUoSXNQcmltZSgyMykpOwotfQotfSAgLy8gbmFtZXNwYWNlCi0KLS8vIFN0
ZXAgMy4gQ2FsbCBSVU5fQUxMX1RFU1RTKCkgaW4gbWFpbigpLgotLy8KLS8vIFdlIGRvIHRoaXMg
YnkgbGlua2luZyBpbiBzcmMvZ3Rlc3RfbWFpbi5jYyBmaWxlLCB3aGljaCBjb25zaXN0cyBvZgot
Ly8gYSBtYWluKCkgZnVuY3Rpb24gd2hpY2ggY2FsbHMgUlVOX0FMTF9URVNUUygpIGZvciB1cy4K
LS8vCi0vLyBUaGlzIHJ1bnMgYWxsIHRoZSB0ZXN0cyB5b3UndmUgZGVmaW5lZCwgcHJpbnRzIHRo
ZSByZXN1bHQsIGFuZAotLy8gcmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgb3RoZXJ3aXNl
LgotLy8KLS8vIERpZCB5b3Ugbm90aWNlIHRoYXQgd2UgZGlkbid0IHJlZ2lzdGVyIHRoZSB0ZXN0
cz8gIFRoZQotLy8gUlVOX0FMTF9URVNUUygpIG1hY3JvIG1hZ2ljYWxseSBrbm93cyBhYm91dCBh
bGwgdGhlIHRlc3RzIHdlCi0vLyBkZWZpbmVkLiAgSXNuJ3QgdGhpcyBjb252ZW5pZW50PwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUyLmNjIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUyLmNjCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1Zjc2M2I5YmRmOGQ3YWJjMTNjNjFjNTY4MzMxZDIxYjlmYTQ5
NzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlMi5jYworKysgL2Rldi9udWxsCkBA
IC0xLDU2ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUgSW5jLgotLy8gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysg
dGVzdGluZyBmcmFtZXdvcmsuCi0vLwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlv
bmcgV2FuKQotCi0jaW5jbHVkZSAic2FtcGxlMi5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0K
LS8vIENsb25lcyBhIDAtdGVybWluYXRlZCBDIHN0cmluZywgYWxsb2NhdGluZyBtZW1vcnkgdXNp
bmcgbmV3LgotY29uc3QgY2hhciogTXlTdHJpbmc6OkNsb25lQ1N0cmluZyhjb25zdCBjaGFyKiBh
X2Nfc3RyaW5nKSB7Ci0gIGlmIChhX2Nfc3RyaW5nID09IE5VTEwpIHJldHVybiBOVUxMOwotCi0g
IGNvbnN0IHNpemVfdCBsZW4gPSBzdHJsZW4oYV9jX3N0cmluZyk7Ci0gIGNoYXIqIGNvbnN0IGNs
b25lID0gbmV3IGNoYXJbIGxlbiArIDEgXTsKLSAgbWVtY3B5KGNsb25lLCBhX2Nfc3RyaW5nLCBs
ZW4gKyAxKTsKLQotICByZXR1cm4gY2xvbmU7Ci19Ci0KLS8vIFNldHMgdGhlIDAtdGVybWluYXRl
ZCBDIHN0cmluZyB0aGlzIE15U3RyaW5nIG9iamVjdAotLy8gcmVwcmVzZW50cy4KLXZvaWQgTXlT
dHJpbmc6OlNldChjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSB7Ci0gIC8vIE1ha2VzIHN1cmUgdGhp
cyB3b3JrcyB3aGVuIGNfc3RyaW5nID09IGNfc3RyaW5nXwotICBjb25zdCBjaGFyKiBjb25zdCB0
ZW1wID0gTXlTdHJpbmc6OkNsb25lQ1N0cmluZyhhX2Nfc3RyaW5nKTsKLSAgZGVsZXRlW10gY19z
dHJpbmdfOwotICBjX3N0cmluZ18gPSB0ZW1wOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3Bh
cnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC9zYW1wbGVzL3NhbXBsZTIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2I0
ODVjNzBmYjMzYWQ3ZDg0MDVmNjZhOGEyNzQ0MTJkZTA0ODUyOS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9z
YW1wbGVzL3NhbXBsZTIuaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8vIENvcHly
aWdodCAyMDA1LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
Ly8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0
aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
Ly8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotLy8gQSBzYW1wbGUgcHJvZ3Jh
bSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0vLwot
Ly8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0jaWZuZGVmIEdURVNU
X1NBTVBMRVNfU0FNUExFMl9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KLQot
I2luY2x1ZGUgPHN0cmluZy5oPgotCi0KLS8vIEEgc2ltcGxlIHN0cmluZyBjbGFzcy4KLWNsYXNz
IE15U3RyaW5nIHsKLSBwcml2YXRlOgotICBjb25zdCBjaGFyKiBjX3N0cmluZ187Ci0gIGNvbnN0
IE15U3RyaW5nJiBvcGVyYXRvcj0oY29uc3QgTXlTdHJpbmcmIHJocyk7Ci0KLSBwdWJsaWM6Ci0g
IC8vIENsb25lcyBhIDAtdGVybWluYXRlZCBDIHN0cmluZywgYWxsb2NhdGluZyBtZW1vcnkgdXNp
bmcgbmV3LgotICBzdGF0aWMgY29uc3QgY2hhciogQ2xvbmVDU3RyaW5nKGNvbnN0IGNoYXIqIGFf
Y19zdHJpbmcpOwotCi0gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotICAvLwotICAvLyBDJ3RvcnMKLQotICAvLyBUaGUgZGVmYXVs
dCBjJ3RvciBjb25zdHJ1Y3RzIGEgTlVMTCBzdHJpbmcuCi0gIE15U3RyaW5nKCkgOiBjX3N0cmlu
Z18oTlVMTCkge30KLQotICAvLyBDb25zdHJ1Y3RzIGEgTXlTdHJpbmcgYnkgY2xvbmluZyBhIDAt
dGVybWluYXRlZCBDIHN0cmluZy4KLSAgZXhwbGljaXQgTXlTdHJpbmcoY29uc3QgY2hhciogYV9j
X3N0cmluZykgOiBjX3N0cmluZ18oTlVMTCkgewotICAgIFNldChhX2Nfc3RyaW5nKTsKLSAgfQot
Ci0gIC8vIENvcHkgYyd0b3IKLSAgTXlTdHJpbmcoY29uc3QgTXlTdHJpbmcmIHN0cmluZykgOiBj
X3N0cmluZ18oTlVMTCkgewotICAgIFNldChzdHJpbmcuY19zdHJpbmdfKTsKLSAgfQotCi0gIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotICAvLwotICAvLyBEJ3Rvci4gIE15U3RyaW5nIGlzIGludGVuZGVkIHRvIGJlIGEgZmluYWwg
Y2xhc3MsIHNvIHRoZSBkJ3RvcgotICAvLyBkb2Vzbid0IG5lZWQgdG8gYmUgdmlydHVhbC4KLSAg
fk15U3RyaW5nKCkgeyBkZWxldGVbXSBjX3N0cmluZ187IH0KLQotICAvLyBHZXRzIHRoZSAwLXRl
cm1pbmF0ZWQgQyBzdHJpbmcgdGhpcyBNeVN0cmluZyBvYmplY3QgcmVwcmVzZW50cy4KLSAgY29u
c3QgY2hhciogY19zdHJpbmcoKSBjb25zdCB7IHJldHVybiBjX3N0cmluZ187IH0KLQotICBzaXpl
X3QgTGVuZ3RoKCkgY29uc3QgewotICAgIHJldHVybiBjX3N0cmluZ18gPT0gTlVMTCA/IDAgOiBz
dHJsZW4oY19zdHJpbmdfKTsKLSAgfQotCi0gIC8vIFNldHMgdGhlIDAtdGVybWluYXRlZCBDIHN0
cmluZyB0aGlzIE15U3RyaW5nIG9iamVjdCByZXByZXNlbnRzLgotICB2b2lkIFNldChjb25zdCBj
aGFyKiBjX3N0cmluZyk7Ci19OwotCi0KLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEUy
X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBs
ZTJfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBs
ZTJfdW5pdHRlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmNTIyZGE1NDgy
NDNjZjM4NmUzOWFjYTg2MDFiNGYxZmIyMzkyODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9z
YW1wbGUyX3VuaXR0ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLS8vIENv
cHlyaWdodCAyMDA1LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0v
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJp
YnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8g
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotLy8gQSBzYW1wbGUgcHJv
Z3JhbSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0v
LwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0KLS8vIFRoaXMg
c2FtcGxlIHNob3dzIGhvdyB0byB3cml0ZSBhIG1vcmUgY29tcGxleCB1bml0IHRlc3QgZm9yIGEg
Y2xhc3MKLS8vIHRoYXQgaGFzIG11bHRpcGxlIG1lbWJlciBmdW5jdGlvbnMuCi0vLwotLy8gVXN1
YWxseSwgaXQncyBhIGdvb2QgaWRlYSB0byBoYXZlIG9uZSB0ZXN0IGZvciBlYWNoIG1ldGhvZCBp
biB5b3VyCi0vLyBjbGFzcy4gIFlvdSBkb24ndCBoYXZlIHRvIGRvIHRoYXQgZXhhY3RseSwgYnV0
IGl0IGhlbHBzIHRvIGtlZXAKLS8vIHlvdXIgdGVzdHMgb3JnYW5pemVkLiAgWW91IG1heSBhbHNv
IHRocm93IGluIGFkZGl0aW9uYWwgdGVzdHMgYXMKLS8vIG5lZWRlZC4KLQotI2luY2x1ZGUgInNh
bXBsZTIuaCIKLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotbmFtZXNwYWNlIHsKLS8vIEluIHRo
aXMgZXhhbXBsZSwgd2UgdGVzdCB0aGUgTXlTdHJpbmcgY2xhc3MgKGEgc2ltcGxlIHN0cmluZyku
Ci0KLS8vIFRlc3RzIHRoZSBkZWZhdWx0IGMndG9yLgotVEVTVChNeVN0cmluZywgRGVmYXVsdENv
bnN0cnVjdG9yKSB7Ci0gIGNvbnN0IE15U3RyaW5nIHM7Ci0KLSAgLy8gQXNzZXJ0cyB0aGF0IHMu
Y19zdHJpbmcoKSByZXR1cm5zIE5VTEwuCi0gIC8vCi0gIC8vIDxUZWNobmljYWxEZXRhaWxzPgot
ICAvLwotICAvLyBJZiB3ZSB3cml0ZSBOVUxMIGluc3RlYWQgb2YKLSAgLy8KLSAgLy8gICBzdGF0
aWNfY2FzdDxjb25zdCBjaGFyICo+KE5VTEwpCi0gIC8vCi0gIC8vIGluIHRoaXMgYXNzZXJ0aW9u
LCBpdCB3aWxsIGdlbmVyYXRlIGEgd2FybmluZyBvbiBnY2MgMy40LiAgVGhlCi0gIC8vIHJlYXNv
biBpcyB0aGF0IEVYUEVDVF9FUSBuZWVkcyB0byBrbm93IHRoZSB0eXBlcyBvZiBpdHMKLSAgLy8g
YXJndW1lbnRzIGluIG9yZGVyIHRvIHByaW50IHRoZW0gd2hlbiBpdCBmYWlscy4gIFNpbmNlIE5V
TEwgaXMKLSAgLy8gI2RlZmluZWQgYXMgMCwgdGhlIGNvbXBpbGVyIHdpbGwgdXNlIHRoZSBmb3Jt
YXR0ZXIgZnVuY3Rpb24gZm9yCi0gIC8vIGludCB0byBwcmludCBpdC4gIEhvd2V2ZXIsIGdjYyB0
aGlua3MgdGhhdCBOVUxMIHNob3VsZCBiZSB1c2VkIGFzCi0gIC8vIGEgcG9pbnRlciwgbm90IGFu
IGludCwgYW5kIHRoZXJlZm9yZSBjb21wbGFpbnMuCi0gIC8vCi0gIC8vIFRoZSByb290IG9mIHRo
ZSBwcm9ibGVtIGlzIEMrKydzIGxhY2sgb2YgZGlzdGluY3Rpb24gYmV0d2VlbiB0aGUKLSAgLy8g
aW50ZWdlciBudW1iZXIgMCBhbmQgdGhlIG51bGwgcG9pbnRlciBjb25zdGFudC4gIFVuZm9ydHVu
YXRlbHksCi0gIC8vIHdlIGhhdmUgdG8gbGl2ZSB3aXRoIHRoaXMgZmFjdC4KLSAgLy8KLSAgLy8g
PC9UZWNobmljYWxEZXRhaWxzPgotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcy5jX3N0cmluZygpKTsK
LQotICBFWFBFQ1RfRVEoMHUsIHMuTGVuZ3RoKCkpOwotfQotCi1jb25zdCBjaGFyIGtIZWxsb1N0
cmluZ1tdID0gIkhlbGxvLCB3b3JsZCEiOwotCi0vLyBUZXN0cyB0aGUgYyd0b3IgdGhhdCBhY2Nl
cHRzIGEgQyBzdHJpbmcuCi1URVNUKE15U3RyaW5nLCBDb25zdHJ1Y3RvckZyb21DU3RyaW5nKSB7
Ci0gIGNvbnN0IE15U3RyaW5nIHMoa0hlbGxvU3RyaW5nKTsKLSAgRVhQRUNUX0VRKDAsIHN0cmNt
cChzLmNfc3RyaW5nKCksIGtIZWxsb1N0cmluZykpOwotICBFWFBFQ1RfRVEoc2l6ZW9mKGtIZWxs
b1N0cmluZykvc2l6ZW9mKGtIZWxsb1N0cmluZ1swXSkgLSAxLAotICAgICAgICAgICAgcy5MZW5n
dGgoKSk7Ci19Ci0KLS8vIFRlc3RzIHRoZSBjb3B5IGMndG9yLgotVEVTVChNeVN0cmluZywgQ29w
eUNvbnN0cnVjdG9yKSB7Ci0gIGNvbnN0IE15U3RyaW5nIHMxKGtIZWxsb1N0cmluZyk7Ci0gIGNv
bnN0IE15U3RyaW5nIHMyID0gczE7Ci0gIEVYUEVDVF9FUSgwLCBzdHJjbXAoczIuY19zdHJpbmco
KSwga0hlbGxvU3RyaW5nKSk7Ci19Ci0KLS8vIFRlc3RzIHRoZSBTZXQgbWV0aG9kLgotVEVTVChN
eVN0cmluZywgU2V0KSB7Ci0gIE15U3RyaW5nIHM7Ci0KLSAgcy5TZXQoa0hlbGxvU3RyaW5nKTsK
LSAgRVhQRUNUX0VRKDAsIHN0cmNtcChzLmNfc3RyaW5nKCksIGtIZWxsb1N0cmluZykpOwotCi0g
IC8vIFNldCBzaG91bGQgd29yayB3aGVuIHRoZSBpbnB1dCBwb2ludGVyIGlzIHRoZSBzYW1lIGFz
IHRoZSBvbmUKLSAgLy8gYWxyZWFkeSBpbiB0aGUgTXlTdHJpbmcgb2JqZWN0LgotICBzLlNldChz
LmNfc3RyaW5nKCkpOwotICBFWFBFQ1RfRVEoMCwgc3RyY21wKHMuY19zdHJpbmcoKSwga0hlbGxv
U3RyaW5nKSk7Ci0KLSAgLy8gQ2FuIHdlIHNldCB0aGUgTXlTdHJpbmcgdG8gTlVMTD8KLSAgcy5T
ZXQoTlVMTCk7Ci0gIEVYUEVDVF9TVFJFUShOVUxMLCBzLmNfc3RyaW5nKCkpOwotfQotfSAgLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVz
L3NhbXBsZTMtaW5sLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBs
ZTMtaW5sLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMzA4NGQ2Mzg1ZGY4OTdm
ZTU5MjQ4ZjQ5NmJiYzkxYTE3Njg5NTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUz
LWlubC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTcyICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1
LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8g
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0
cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0vLwotLy8gQXV0aG9y
OiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNf
U0FNUExFM19JTkxfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19TQU1QTEUzX0lOTF9IXwotCi0j
aW5jbHVkZSA8c3RkZGVmLmg+Ci0KLQotLy8gUXVldWUgaXMgYSBzaW1wbGUgcXVldWUgaW1wbGVt
ZW50ZWQgYXMgYSBzaW5nbGVkLWxpbmtlZCBsaXN0LgotLy8KLS8vIFRoZSBlbGVtZW50IHR5cGUg
bXVzdCBzdXBwb3J0IGNvcHkgY29uc3RydWN0b3IuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRT4gIC8v
IEUgaXMgdGhlIGVsZW1lbnQgdHlwZQotY2xhc3MgUXVldWU7Ci0KLS8vIFF1ZXVlTm9kZSBpcyBh
IG5vZGUgaW4gYSBRdWV1ZSwgd2hpY2ggY29uc2lzdHMgb2YgYW4gZWxlbWVudCBvZgotLy8gdHlw
ZSBFIGFuZCBhIHBvaW50ZXIgdG8gdGhlIG5leHQgbm9kZS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBF
PiAgLy8gRSBpcyB0aGUgZWxlbWVudCB0eXBlCi1jbGFzcyBRdWV1ZU5vZGUgewotICBmcmllbmQg
Y2xhc3MgUXVldWU8RT47Ci0KLSBwdWJsaWM6Ci0gIC8vIEdldHMgdGhlIGVsZW1lbnQgaW4gdGhp
cyBub2RlLgotICBjb25zdCBFJiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZWxlbWVudF87IH0K
LQotICAvLyBHZXRzIHRoZSBuZXh0IG5vZGUgaW4gdGhlIHF1ZXVlLgotICBRdWV1ZU5vZGUqIG5l
eHQoKSB7IHJldHVybiBuZXh0XzsgfQotICBjb25zdCBRdWV1ZU5vZGUqIG5leHQoKSBjb25zdCB7
IHJldHVybiBuZXh0XzsgfQotCi0gcHJpdmF0ZToKLSAgLy8gQ3JlYXRlcyBhIG5vZGUgd2l0aCBh
IGdpdmVuIGVsZW1lbnQgdmFsdWUuICBUaGUgbmV4dCBwb2ludGVyIGlzCi0gIC8vIHNldCB0byBO
VUxMLgotICBleHBsaWNpdCBRdWV1ZU5vZGUoY29uc3QgRSYgYW5fZWxlbWVudCkgOiBlbGVtZW50
Xyhhbl9lbGVtZW50KSwgbmV4dF8oTlVMTCkge30KLQotICAvLyBXZSBkaXNhYmxlIHRoZSBkZWZh
dWx0IGFzc2lnbm1lbnQgb3BlcmF0b3IgYW5kIGNvcHkgYyd0b3IuCi0gIGNvbnN0IFF1ZXVlTm9k
ZSYgb3BlcmF0b3IgPSAoY29uc3QgUXVldWVOb2RlJik7Ci0gIFF1ZXVlTm9kZShjb25zdCBRdWV1
ZU5vZGUmKTsKLQotICBFIGVsZW1lbnRfOwotICBRdWV1ZU5vZGUqIG5leHRfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIEU+ICAvLyBFIGlzIHRoZSBlbGVtZW50IHR5cGUuCi1jbGFzcyBRdWV1
ZSB7Ci0gcHVibGljOgotICAvLyBDcmVhdGVzIGFuIGVtcHR5IHF1ZXVlLgotICBRdWV1ZSgpIDog
aGVhZF8oTlVMTCksIGxhc3RfKE5VTEwpLCBzaXplXygwKSB7fQotCi0gIC8vIEQndG9yLiAgQ2xl
YXJzIHRoZSBxdWV1ZS4KLSAgflF1ZXVlKCkgeyBDbGVhcigpOyB9Ci0KLSAgLy8gQ2xlYXJzIHRo
ZSBxdWV1ZS4KLSAgdm9pZCBDbGVhcigpIHsKLSAgICBpZiAoc2l6ZV8gPiAwKSB7Ci0gICAgICAv
LyAxLiBEZWxldGVzIGV2ZXJ5IG5vZGUuCi0gICAgICBRdWV1ZU5vZGU8RT4qIG5vZGUgPSBoZWFk
XzsKLSAgICAgIFF1ZXVlTm9kZTxFPiogbmV4dCA9IG5vZGUtPm5leHQoKTsKLSAgICAgIGZvciAo
OyA7KSB7Ci0gICAgICAgIGRlbGV0ZSBub2RlOwotICAgICAgICBub2RlID0gbmV4dDsKLSAgICAg
ICAgaWYgKG5vZGUgPT0gTlVMTCkgYnJlYWs7Ci0gICAgICAgIG5leHQgPSBub2RlLT5uZXh0KCk7
Ci0gICAgICB9Ci0KLSAgICAgIC8vIDIuIFJlc2V0cyB0aGUgbWVtYmVyIHZhcmlhYmxlcy4KLSAg
ICAgIGhlYWRfID0gbGFzdF8gPSBOVUxMOwotICAgICAgc2l6ZV8gPSAwOwotICAgIH0KLSAgfQot
Ci0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBlbGVtZW50cy4KLSAgc2l6ZV90IFNpemUoKSBjb25z
dCB7IHJldHVybiBzaXplXzsgfQotCi0gIC8vIEdldHMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhl
IHF1ZXVlLCBvciBOVUxMIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eS4KLSAgUXVldWVOb2RlPEU+KiBI
ZWFkKCkgeyByZXR1cm4gaGVhZF87IH0KLSAgY29uc3QgUXVldWVOb2RlPEU+KiBIZWFkKCkgY29u
c3QgeyByZXR1cm4gaGVhZF87IH0KLQotICAvLyBHZXRzIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhl
IHF1ZXVlLCBvciBOVUxMIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eS4KLSAgUXVldWVOb2RlPEU+KiBM
YXN0KCkgeyByZXR1cm4gbGFzdF87IH0KLSAgY29uc3QgUXVldWVOb2RlPEU+KiBMYXN0KCkgY29u
c3QgeyByZXR1cm4gbGFzdF87IH0KLQotICAvLyBBZGRzIGFuIGVsZW1lbnQgdG8gdGhlIGVuZCBv
ZiB0aGUgcXVldWUuICBBIGNvcHkgb2YgdGhlIGVsZW1lbnQgaXMKLSAgLy8gY3JlYXRlZCB1c2lu
ZyB0aGUgY29weSBjb25zdHJ1Y3RvciwgYW5kIHRoZW4gc3RvcmVkIGluIHRoZSBxdWV1ZS4KLSAg
Ly8gQ2hhbmdlcyBtYWRlIHRvIHRoZSBlbGVtZW50IGluIHRoZSBxdWV1ZSBkb2Vzbid0IGFmZmVj
dCB0aGUgc291cmNlCi0gIC8vIG9iamVjdCwgYW5kIHZpY2UgdmVyc2EuCi0gIHZvaWQgRW5xdWV1
ZShjb25zdCBFJiBlbGVtZW50KSB7Ci0gICAgUXVldWVOb2RlPEU+KiBuZXdfbm9kZSA9IG5ldyBR
dWV1ZU5vZGU8RT4oZWxlbWVudCk7Ci0KLSAgICBpZiAoc2l6ZV8gPT0gMCkgewotICAgICAgaGVh
ZF8gPSBsYXN0XyA9IG5ld19ub2RlOwotICAgICAgc2l6ZV8gPSAxOwotICAgIH0gZWxzZSB7Ci0g
ICAgICBsYXN0Xy0+bmV4dF8gPSBuZXdfbm9kZTsKLSAgICAgIGxhc3RfID0gbmV3X25vZGU7Ci0g
ICAgICBzaXplXysrOwotICAgIH0KLSAgfQotCi0gIC8vIFJlbW92ZXMgdGhlIGhlYWQgb2YgdGhl
IHF1ZXVlIGFuZCByZXR1cm5zIGl0LiAgUmV0dXJucyBOVUxMIGlmCi0gIC8vIHRoZSBxdWV1ZSBp
cyBlbXB0eS4KLSAgRSogRGVxdWV1ZSgpIHsKLSAgICBpZiAoc2l6ZV8gPT0gMCkgewotICAgICAg
cmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgY29uc3QgUXVldWVOb2RlPEU+KiBjb25zdCBvbGRf
aGVhZCA9IGhlYWRfOwotICAgIGhlYWRfID0gaGVhZF8tPm5leHRfOwotICAgIHNpemVfLS07Ci0g
ICAgaWYgKHNpemVfID09IDApIHsKLSAgICAgIGxhc3RfID0gTlVMTDsKLSAgICB9Ci0KLSAgICBF
KiBlbGVtZW50ID0gbmV3IEUob2xkX2hlYWQtPmVsZW1lbnQoKSk7Ci0gICAgZGVsZXRlIG9sZF9o
ZWFkOwotCi0gICAgcmV0dXJuIGVsZW1lbnQ7Ci0gIH0KLQotICAvLyBBcHBsaWVzIGEgZnVuY3Rp
b24vZnVuY3RvciBvbiBlYWNoIGVsZW1lbnQgb2YgdGhlIHF1ZXVlLCBhbmQKLSAgLy8gcmV0dXJu
cyB0aGUgcmVzdWx0IGluIGEgbmV3IHF1ZXVlLiAgVGhlIG9yaWdpbmFsIHF1ZXVlIGlzIG5vdAot
ICAvLyBhZmZlY3RlZC4KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+Ci0gIFF1ZXVlKiBNYXAoRiBm
dW5jdGlvbikgY29uc3QgewotICAgIFF1ZXVlKiBuZXdfcXVldWUgPSBuZXcgUXVldWUoKTsKLSAg
ICBmb3IgKGNvbnN0IFF1ZXVlTm9kZTxFPiogbm9kZSA9IGhlYWRfOyBub2RlICE9IE5VTEw7IG5v
ZGUgPSBub2RlLT5uZXh0XykgewotICAgICAgbmV3X3F1ZXVlLT5FbnF1ZXVlKGZ1bmN0aW9uKG5v
ZGUtPmVsZW1lbnQoKSkpOwotICAgIH0KLQotICAgIHJldHVybiBuZXdfcXVldWU7Ci0gIH0KLQot
IHByaXZhdGU6Ci0gIFF1ZXVlTm9kZTxFPiogaGVhZF87ICAvLyBUaGUgZmlyc3Qgbm9kZSBvZiB0
aGUgcXVldWUuCi0gIFF1ZXVlTm9kZTxFPiogbGFzdF87ICAvLyBUaGUgbGFzdCBub2RlIG9mIHRo
ZSBxdWV1ZS4KLSAgc2l6ZV90IHNpemVfOyAgLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0
aGUgcXVldWUuCi0KLSAgLy8gV2UgZGlzYWxsb3cgY29weWluZyBhIHF1ZXVlLgotICBRdWV1ZShj
b25zdCBRdWV1ZSYpOwotICBjb25zdCBRdWV1ZSYgb3BlcmF0b3IgPSAoY29uc3QgUXVldWUmKTsK
LX07Ci0KLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEUzX0lOTF9IXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNj
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjUxZmQ4OWMwYmI4ZDNjNTE4Yjk5MWUz
ODk5Yjk0ZmVhZDI0ZjYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlM191bml0dGVz
dC5jYworKysgL2Rldi9udWxsCkBAIC0xLDE1MiArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNSwg
R29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0v
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLS8vIEEgc2FtcGxlIHByb2dyYW0gZGVtb25zdHJh
dGluZyB1c2luZyBHb29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrLgotLy8KLS8vIEF1dGhvcjog
d2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotCi0vLyBJbiB0aGlzIGV4YW1wbGUsIHdl
IHVzZSBhIG1vcmUgYWR2YW5jZWQgZmVhdHVyZSBvZiBHb29nbGUgVGVzdCBjYWxsZWQKLS8vIHRl
c3QgZml4dHVyZS4KLS8vCi0vLyBBIHRlc3QgZml4dHVyZSBpcyBhIHBsYWNlIHRvIGhvbGQgb2Jq
ZWN0cyBhbmQgZnVuY3Rpb25zIHNoYXJlZCBieQotLy8gYWxsIHRlc3RzIGluIGEgdGVzdCBjYXNl
LiAgVXNpbmcgYSB0ZXN0IGZpeHR1cmUgYXZvaWRzIGR1cGxpY2F0aW5nCi0vLyB0aGUgdGVzdCBj
b2RlIG5lY2Vzc2FyeSB0byBpbml0aWFsaXplIGFuZCBjbGVhbnVwIHRob3NlIGNvbW1vbgotLy8g
b2JqZWN0cyBmb3IgZWFjaCB0ZXN0LiAgSXQgaXMgYWxzbyB1c2VmdWwgZm9yIGRlZmluaW5nIHN1
Yi1yb3V0aW5lcwotLy8gdGhhdCB5b3VyIHRlc3RzIG5lZWQgdG8gaW52b2tlIGEgbG90LgotLy8K
LS8vIDxUZWNobmljYWxEZXRhaWxzPgotLy8KLS8vIFRoZSB0ZXN0cyBzaGFyZSB0aGUgdGVzdCBm
aXh0dXJlIGluIHRoZSBzZW5zZSBvZiBjb2RlIHNoYXJpbmcsIG5vdAotLy8gZGF0YSBzaGFyaW5n
LiAgRWFjaCB0ZXN0IGlzIGdpdmVuIGl0cyBvd24gZnJlc2ggY29weSBvZiB0aGUKLS8vIGZpeHR1
cmUuICBZb3UgY2Fubm90IGV4cGVjdCB0aGUgZGF0YSBtb2RpZmllZCBieSBvbmUgdGVzdCB0byBi
ZQotLy8gcGFzc2VkIG9uIHRvIGFub3RoZXIgdGVzdCwgd2hpY2ggaXMgYSBiYWQgaWRlYS4KLS8v
Ci0vLyBUaGUgcmVhc29uIGZvciB0aGlzIGRlc2lnbiBpcyB0aGF0IHRlc3RzIHNob3VsZCBiZSBp
bmRlcGVuZGVudCBhbmQKLS8vIHJlcGVhdGFibGUuICBJbiBwYXJ0aWN1bGFyLCBhIHRlc3Qgc2hv
dWxkIG5vdCBmYWlsIGFzIHRoZSByZXN1bHQgb2YKLS8vIGFub3RoZXIgdGVzdCdzIGZhaWx1cmUu
ICBJZiBvbmUgdGVzdCBkZXBlbmRzIG9uIGluZm8gcHJvZHVjZWQgYnkKLS8vIGFub3RoZXIgdGVz
dCwgdGhlbiB0aGUgdHdvIHRlc3RzIHNob3VsZCByZWFsbHkgYmUgb25lIGJpZyB0ZXN0LgotLy8K
LS8vIFRoZSBtYWNyb3MgZm9yIGluZGljYXRpbmcgdGhlIHN1Y2Nlc3MvZmFpbHVyZSBvZiBhIHRl
c3QKLS8vIChFWFBFQ1RfVFJVRSwgRkFJTCwgZXRjKSBuZWVkIHRvIGtub3cgd2hhdCB0aGUgY3Vy
cmVudCB0ZXN0IGlzCi0vLyAod2hlbiBHb29nbGUgVGVzdCBwcmludHMgdGhlIHRlc3QgcmVzdWx0
LCBpdCB0ZWxscyB5b3Ugd2hpY2ggdGVzdAotLy8gZWFjaCBmYWlsdXJlIGJlbG9uZ3MgdG8pLiAg
VGVjaG5pY2FsbHksIHRoZXNlIG1hY3JvcyBpbnZva2UgYQotLy8gbWVtYmVyIGZ1bmN0aW9uIG9m
IHRoZSBUZXN0IGNsYXNzLiAgVGhlcmVmb3JlLCB5b3UgY2Fubm90IHVzZSB0aGVtCi0vLyBpbiBh
IGdsb2JhbCBmdW5jdGlvbi4gIFRoYXQncyB3aHkgeW91IHNob3VsZCBwdXQgdGVzdCBzdWItcm91
dGluZXMKLS8vIGluIGEgdGVzdCBmaXh0dXJlLgotLy8KLS8vIDwvVGVjaG5pY2FsRGV0YWlscz4K
LQotI2luY2x1ZGUgInNhbXBsZTMtaW5sLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLW5h
bWVzcGFjZSB7Ci0vLyBUbyB1c2UgYSB0ZXN0IGZpeHR1cmUsIGRlcml2ZSBhIGNsYXNzIGZyb20g
dGVzdGluZzo6VGVzdC4KLWNsYXNzIFF1ZXVlVGVzdFNtcGwzIDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgewotIHByb3RlY3RlZDogIC8vIFlvdSBzaG91bGQgbWFrZSB0aGUgbWVtYmVycyBwcm90ZWN0
ZWQgcy50LiB0aGV5IGNhbiBiZQotICAgICAgICAgICAgIC8vIGFjY2Vzc2VkIGZyb20gc3ViLWNs
YXNzZXMuCi0KLSAgLy8gdmlydHVhbCB2b2lkIFNldFVwKCkgd2lsbCBiZSBjYWxsZWQgYmVmb3Jl
IGVhY2ggdGVzdCBpcyBydW4uICBZb3UKLSAgLy8gc2hvdWxkIGRlZmluZSBpdCBpZiB5b3UgbmVl
ZCB0byBpbml0aWFsaXplIHRoZSB2YXJpYWJsZXMuCi0gIC8vIE90aGVyd2lzZSwgdGhpcyBjYW4g
YmUgc2tpcHBlZC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHExXy5FbnF1ZXVlKDEp
OwotICAgIHEyXy5FbnF1ZXVlKDIpOwotICAgIHEyXy5FbnF1ZXVlKDMpOwotICB9Ci0KLSAgLy8g
dmlydHVhbCB2b2lkIFRlYXJEb3duKCkgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgZWFjaCB0ZXN0IGlz
IHJ1bi4KLSAgLy8gWW91IHNob3VsZCBkZWZpbmUgaXQgaWYgdGhlcmUgaXMgY2xlYW51cCB3b3Jr
IHRvIGRvLiAgT3RoZXJ3aXNlLAotICAvLyB5b3UgZG9uJ3QgaGF2ZSB0byBwcm92aWRlIGl0Lgot
ICAvLwotICAvLyB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gIC8vIH0KLQotICAvLyBBIGhl
bHBlciBmdW5jdGlvbiB0aGF0IHNvbWUgdGVzdCB1c2VzLgotICBzdGF0aWMgaW50IERvdWJsZShp
bnQgbikgewotICAgIHJldHVybiAyKm47Ci0gIH0KLQotICAvLyBBIGhlbHBlciBmdW5jdGlvbiBm
b3IgdGVzdGluZyBRdWV1ZTo6TWFwKCkuCi0gIHZvaWQgTWFwVGVzdGVyKGNvbnN0IFF1ZXVlPGlu
dD4gKiBxKSB7Ci0gICAgLy8gQ3JlYXRlcyBhIG5ldyBxdWV1ZSwgd2hlcmUgZWFjaCBlbGVtZW50
IGlzIHR3aWNlIGFzIGJpZyBhcyB0aGUKLSAgICAvLyBjb3JyZXNwb25kaW5nIG9uZSBpbiBxLgot
ICAgIGNvbnN0IFF1ZXVlPGludD4gKiBjb25zdCBuZXdfcSA9IHEtPk1hcChEb3VibGUpOwotCi0g
ICAgLy8gVmVyaWZpZXMgdGhhdCB0aGUgbmV3IHF1ZXVlIGhhcyB0aGUgc2FtZSBzaXplIGFzIHEu
Ci0gICAgQVNTRVJUX0VRKHEtPlNpemUoKSwgbmV3X3EtPlNpemUoKSk7Ci0KLSAgICAvLyBWZXJp
ZmllcyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGVsZW1lbnRzIG9mIHRoZSB0d28gcXVl
dWVzLgotICAgIGZvciAoIGNvbnN0IFF1ZXVlTm9kZTxpbnQ+ICogbjEgPSBxLT5IZWFkKCksICog
bjIgPSBuZXdfcS0+SGVhZCgpOwotICAgICAgICAgIG4xICE9IE5VTEw7IG4xID0gbjEtPm5leHQo
KSwgbjIgPSBuMi0+bmV4dCgpICkgewotICAgICAgRVhQRUNUX0VRKDIgKiBuMS0+ZWxlbWVudCgp
LCBuMi0+ZWxlbWVudCgpKTsKLSAgICB9Ci0KLSAgICBkZWxldGUgbmV3X3E7Ci0gIH0KLQotICAv
LyBEZWNsYXJlcyB0aGUgdmFyaWFibGVzIHlvdXIgdGVzdHMgd2FudCB0byB1c2UuCi0gIFF1ZXVl
PGludD4gcTBfOwotICBRdWV1ZTxpbnQ+IHExXzsKLSAgUXVldWU8aW50PiBxMl87Ci19OwotCi0v
LyBXaGVuIHlvdSBoYXZlIGEgdGVzdCBmaXh0dXJlLCB5b3UgZGVmaW5lIGEgdGVzdCB1c2luZyBU
RVNUX0YKLS8vIGluc3RlYWQgb2YgVEVTVC4KLQotLy8gVGVzdHMgdGhlIGRlZmF1bHQgYyd0b3Iu
Ci1URVNUX0YoUXVldWVUZXN0U21wbDMsIERlZmF1bHRDb25zdHJ1Y3RvcikgewotICAvLyBZb3Ug
Y2FuIGFjY2VzcyBkYXRhIGluIHRoZSB0ZXN0IGZpeHR1cmUgaGVyZS4KLSAgRVhQRUNUX0VRKDB1
LCBxMF8uU2l6ZSgpKTsKLX0KLQotLy8gVGVzdHMgRGVxdWV1ZSgpLgotVEVTVF9GKFF1ZXVlVGVz
dFNtcGwzLCBEZXF1ZXVlKSB7Ci0gIGludCAqIG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1Rf
VFJVRShuID09IE5VTEwpOwotCi0gIG4gPSBxMV8uRGVxdWV1ZSgpOwotICBBU1NFUlRfVFJVRShu
ICE9IE5VTEwpOwotICBFWFBFQ1RfRVEoMSwgKm4pOwotICBFWFBFQ1RfRVEoMHUsIHExXy5TaXpl
KCkpOwotICBkZWxldGUgbjsKLQotICBuID0gcTJfLkRlcXVldWUoKTsKLSAgQVNTRVJUX1RSVUUo
biAhPSBOVUxMKTsKLSAgRVhQRUNUX0VRKDIsICpuKTsKLSAgRVhQRUNUX0VRKDF1LCBxMl8uU2l6
ZSgpKTsKLSAgZGVsZXRlIG47Ci19Ci0KLS8vIFRlc3RzIHRoZSBRdWV1ZTo6TWFwKCkgZnVuY3Rp
b24uCi1URVNUX0YoUXVldWVUZXN0U21wbDMsIE1hcCkgewotICBNYXBUZXN0ZXIoJnEwXyk7Ci0g
IE1hcFRlc3RlcigmcTFfKTsKLSAgTWFwVGVzdGVyKCZxMl8pOwotfQotfSAgLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTQu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTQuY2MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlNDRiZGE2ZjFiYWQ1M2ZmM2M2ZjE0ZTAzMDJiZDNi
YjMwOWNiYTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGU0LmNjCisrKyAvZGV2L251
bGwKQEAgLTEsNDYgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDUsIEdvb2dsZSBJbmMuCi0vLyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
Ly8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
Ly8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0vLyBBIHNhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgdXNpbmcgR29vZ2xl
IEMrKyB0ZXN0aW5nIGZyYW1ld29yay4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tICha
aGFueW9uZyBXYW4pCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotCi0jaW5jbHVkZSAic2FtcGxlNC5o
IgotCi0vLyBSZXR1cm5zIHRoZSBjdXJyZW50IGNvdW50ZXIgdmFsdWUsIGFuZCBpbmNyZW1lbnRz
IGl0LgotaW50IENvdW50ZXI6OkluY3JlbWVudCgpIHsKLSAgcmV0dXJuIGNvdW50ZXJfKys7Ci19
Ci0KLS8vIFByaW50cyB0aGUgY3VycmVudCBjb3VudGVyIHZhbHVlIHRvIFNURE9VVC4KLXZvaWQg
Q291bnRlcjo6UHJpbnQoKSBjb25zdCB7Ci0gIHByaW50ZigiJWQiLCBjb3VudGVyXyk7Ci19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTQuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlNC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjZDYwZjBkZDJkMTg2MDczN2I3ZjBlYTQ1YzU2NzVhM2E4ZWE3
MjFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlNC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDUsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmln
aHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0
OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8v
Ci0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0vLyBBIHNhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgdXNpbmcgR29vZ2xlIEMrKyB0
ZXN0aW5nIGZyYW1ld29yay4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9u
ZyBXYW4pCi0KLSNpZm5kZWYgR1RFU1RfU0FNUExFU19TQU1QTEU0X0hfCi0jZGVmaW5lIEdURVNU
X1NBTVBMRVNfU0FNUExFNF9IXwotCi0vLyBBIHNpbXBsZSBtb25vdG9uaWMgY291bnRlci4KLWNs
YXNzIENvdW50ZXIgewotIHByaXZhdGU6Ci0gIGludCBjb3VudGVyXzsKLQotIHB1YmxpYzoKLSAg
Ly8gQ3JlYXRlcyBhIGNvdW50ZXIgdGhhdCBzdGFydHMgYXQgMC4KLSAgQ291bnRlcigpIDogY291
bnRlcl8oMCkge30KLQotICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IGNvdW50ZXIgdmFsdWUsIGFu
ZCBpbmNyZW1lbnRzIGl0LgotICBpbnQgSW5jcmVtZW50KCk7Ci0KLSAgLy8gUHJpbnRzIHRoZSBj
dXJyZW50IGNvdW50ZXIgdmFsdWUgdG8gU1RET1VULgotICB2b2lkIFByaW50KCkgY29uc3Q7Ci19
OwotCi0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FNUExFNF9IXwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDgyNjZlODg0Njk4MzQwMmQ0N2U5N2Y2NzNhN2Fk
ODdiMmRkZDMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlNF91bml0dGVzdC5jYwor
KysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUg
SW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9u
ZyBXYW4pCi0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotI2luY2x1ZGUgInNhbXBsZTQuaCIK
LW5hbWVzcGFjZSB7Ci0vLyBUZXN0cyB0aGUgSW5jcmVtZW50KCkgbWV0aG9kLgotVEVTVChDb3Vu
dGVyLCBJbmNyZW1lbnQpIHsKLSAgQ291bnRlciBjOwotCi0gIC8vIEVYUEVDVF9FUSgpIGV2YWx1
YXRlcyBpdHMgYXJndW1lbnRzIGV4YWN0bHkgb25jZSwgc28gdGhleQotICAvLyBjYW4gaGF2ZSBz
aWRlIGVmZmVjdHMuCi0KLSAgRVhQRUNUX0VRKDAsIGMuSW5jcmVtZW50KCkpOwotICBFWFBFQ1Rf
RVEoMSwgYy5JbmNyZW1lbnQoKSk7Ci0gIEVYUEVDVF9FUSgyLCBjLkluY3JlbWVudCgpKTsKLX0K
LX0gIC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
c2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
c2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzMDk5OTMwN2ZkYzI3NTZhNzRlYzJhZDU2YTYzZTI4NGRiNjlkZjcwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3NhbXBsZXMvc2FtcGxlNV91bml0dGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDE5OSAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNSwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0v
LyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwot
Ly8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0vLyBUaGlzIHNhbXBs
ZSB0ZWFjaGVzIGhvdyB0byByZXVzZSBhIHRlc3QgZml4dHVyZSBpbiBtdWx0aXBsZSB0ZXN0Ci0v
LyBjYXNlcyBieSBkZXJpdmluZyBzdWItZml4dHVyZXMgZnJvbSBpdC4KLS8vCi0vLyBXaGVuIHlv
dSBkZWZpbmUgYSB0ZXN0IGZpeHR1cmUsIHlvdSBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSB0ZXN0
Ci0vLyBjYXNlIHRoYXQgd2lsbCB1c2UgdGhpcyBmaXh0dXJlLiAgVGhlcmVmb3JlLCBhIHRlc3Qg
Zml4dHVyZSBjYW4KLS8vIGJlIHVzZWQgYnkgb25seSBvbmUgdGVzdCBjYXNlLgotLy8KLS8vIFNv
bWV0aW1lcywgbW9yZSB0aGFuIG9uZSB0ZXN0IGNhc2VzIG1heSB3YW50IHRvIHVzZSB0aGUgc2Ft
ZSBvcgotLy8gc2xpZ2h0bHkgZGlmZmVyZW50IHRlc3QgZml4dHVyZXMuICBGb3IgZXhhbXBsZSwg
eW91IG1heSB3YW50IHRvCi0vLyBtYWtlIHN1cmUgdGhhdCBhbGwgdGVzdHMgZm9yIGEgR1VJIGxp
YnJhcnkgZG9uJ3QgbGVhayBpbXBvcnRhbnQKLS8vIHN5c3RlbSByZXNvdXJjZXMgbGlrZSBmb250
cyBhbmQgYnJ1c2hlcy4gIEluIEdvb2dsZSBUZXN0LCB5b3UgZG8KLS8vIHRoaXMgYnkgcHV0dGlu
ZyB0aGUgc2hhcmVkIGxvZ2ljIGluIGEgc3VwZXIgKGFzIGluICJzdXBlciBjbGFzcyIpCi0vLyB0
ZXN0IGZpeHR1cmUsIGFuZCB0aGVuIGhhdmUgZWFjaCB0ZXN0IGNhc2UgdXNlIGEgZml4dHVyZSBk
ZXJpdmVkCi0vLyBmcm9tIHRoaXMgc3VwZXIgZml4dHVyZS4KLQotI2luY2x1ZGUgPGxpbWl0cy5o
PgotI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNsdWRlICJzYW1wbGUzLWlubC5oIgotI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAic2FtcGxlMS5oIgotbmFtZXNwYWNlIHsKLS8vIElu
IHRoaXMgc2FtcGxlLCB3ZSB3YW50IHRvIGVuc3VyZSB0aGF0IGV2ZXJ5IHRlc3QgZmluaXNoZXMg
d2l0aGluCi0vLyB+NSBzZWNvbmRzLiAgSWYgYSB0ZXN0IHRha2VzIGxvbmdlciB0byBydW4sIHdl
IGNvbnNpZGVyIGl0IGEKLS8vIGZhaWx1cmUuCi0vLwotLy8gV2UgcHV0IHRoZSBjb2RlIGZvciB0
aW1pbmcgYSB0ZXN0IGluIGEgdGVzdCBmaXh0dXJlIGNhbGxlZAotLy8gIlF1aWNrVGVzdCIuICBR
dWlja1Rlc3QgaXMgaW50ZW5kZWQgdG8gYmUgdGhlIHN1cGVyIGZpeHR1cmUgdGhhdAotLy8gb3Ro
ZXIgZml4dHVyZXMgZGVyaXZlIGZyb20sIHRoZXJlZm9yZSB0aGVyZSBpcyBubyB0ZXN0IGNhc2Ug
d2l0aAotLy8gdGhlIG5hbWUgIlF1aWNrVGVzdCIuICBUaGlzIGlzIE9LLgotLy8KLS8vIExhdGVy
LCB3ZSB3aWxsIGRlcml2ZSBtdWx0aXBsZSB0ZXN0IGZpeHR1cmVzIGZyb20gUXVpY2tUZXN0Lgot
Y2xhc3MgUXVpY2tUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAg
Ly8gUmVtZW1iZXIgdGhhdCBTZXRVcCgpIGlzIHJ1biBpbW1lZGlhdGVseSBiZWZvcmUgYSB0ZXN0
IHN0YXJ0cy4KLSAgLy8gVGhpcyBpcyBhIGdvb2QgcGxhY2UgdG8gcmVjb3JkIHRoZSBzdGFydCB0
aW1lLgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgc3RhcnRfdGltZV8gPSB0aW1lKE5V
TEwpOwotICB9Ci0KLSAgLy8gVGVhckRvd24oKSBpcyBpbnZva2VkIGltbWVkaWF0ZWx5IGFmdGVy
IGEgdGVzdCBmaW5pc2hlcy4gIEhlcmUgd2UKLSAgLy8gY2hlY2sgaWYgdGhlIHRlc3Qgd2FzIHRv
byBzbG93LgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgLy8gR2V0cyB0aGUgdGlt
ZSB3aGVuIHRoZSB0ZXN0IGZpbmlzaGVzCi0gICAgY29uc3QgdGltZV90IGVuZF90aW1lID0gdGlt
ZShOVUxMKTsKLQotICAgIC8vIEFzc2VydHMgdGhhdCB0aGUgdGVzdCB0b29rIG5vIG1vcmUgdGhh
biB+NSBzZWNvbmRzLiAgRGlkIHlvdQotICAgIC8vIGtub3cgdGhhdCB5b3UgY2FuIHVzZSBhc3Nl
cnRpb25zIGluIFNldFVwKCkgYW5kIFRlYXJEb3duKCkgYXMKLSAgICAvLyB3ZWxsPwotICAgIEVY
UEVDVF9UUlVFKGVuZF90aW1lIC0gc3RhcnRfdGltZV8gPD0gNSkgPDwgIlRoZSB0ZXN0IHRvb2sg
dG9vIGxvbmcuIjsKLSAgfQotCi0gIC8vIFRoZSBVVEMgdGltZSAoaW4gc2Vjb25kcykgd2hlbiB0
aGUgdGVzdCBzdGFydHMKLSAgdGltZV90IHN0YXJ0X3RpbWVfOwotfTsKLQotCi0vLyBXZSBkZXJp
dmUgYSBmaXh0dXJlIG5hbWVkIEludGVnZXJGdW5jdGlvblRlc3QgZnJvbSB0aGUgUXVpY2tUZXN0
Ci0vLyBmaXh0dXJlLiAgQWxsIHRlc3RzIHVzaW5nIHRoaXMgZml4dHVyZSB3aWxsIGJlIGF1dG9t
YXRpY2FsbHkKLS8vIHJlcXVpcmVkIHRvIGJlIHF1aWNrLgotY2xhc3MgSW50ZWdlckZ1bmN0aW9u
VGVzdCA6IHB1YmxpYyBRdWlja1Rlc3QgewotICAvLyBXZSBkb24ndCBuZWVkIGFueSBtb3JlIGxv
Z2ljIHRoYW4gYWxyZWFkeSBpbiB0aGUgUXVpY2tUZXN0IGZpeHR1cmUuCi0gIC8vIFRoZXJlZm9y
ZSB0aGUgYm9keSBpcyBlbXB0eS4KLX07Ci0KLQotLy8gTm93IHdlIGNhbiB3cml0ZSB0ZXN0cyBp
biB0aGUgSW50ZWdlckZ1bmN0aW9uVGVzdCB0ZXN0IGNhc2UuCi0KLS8vIFRlc3RzIEZhY3Rvcmlh
bCgpCi1URVNUX0YoSW50ZWdlckZ1bmN0aW9uVGVzdCwgRmFjdG9yaWFsKSB7Ci0gIC8vIFRlc3Rz
IGZhY3RvcmlhbCBvZiBuZWdhdGl2ZSBudW1iZXJzLgotICBFWFBFQ1RfRVEoMSwgRmFjdG9yaWFs
KC01KSk7Ci0gIEVYUEVDVF9FUSgxLCBGYWN0b3JpYWwoLTEpKTsKLSAgRVhQRUNUX0dUKEZhY3Rv
cmlhbCgtMTApLCAwKTsKLQotICAvLyBUZXN0cyBmYWN0b3JpYWwgb2YgMC4KLSAgRVhQRUNUX0VR
KDEsIEZhY3RvcmlhbCgwKSk7Ci0KLSAgLy8gVGVzdHMgZmFjdG9yaWFsIG9mIHBvc2l0aXZlIG51
bWJlcnMuCi0gIEVYUEVDVF9FUSgxLCBGYWN0b3JpYWwoMSkpOwotICBFWFBFQ1RfRVEoMiwgRmFj
dG9yaWFsKDIpKTsKLSAgRVhQRUNUX0VRKDYsIEZhY3RvcmlhbCgzKSk7Ci0gIEVYUEVDVF9FUSg0
MDMyMCwgRmFjdG9yaWFsKDgpKTsKLX0KLQotCi0vLyBUZXN0cyBJc1ByaW1lKCkKLVRFU1RfRihJ
bnRlZ2VyRnVuY3Rpb25UZXN0LCBJc1ByaW1lKSB7Ci0gIC8vIFRlc3RzIG5lZ2F0aXZlIGlucHV0
LgotICBFWFBFQ1RfRkFMU0UoSXNQcmltZSgtMSkpOwotICBFWFBFQ1RfRkFMU0UoSXNQcmltZSgt
MikpOwotICBFWFBFQ1RfRkFMU0UoSXNQcmltZShJTlRfTUlOKSk7Ci0KLSAgLy8gVGVzdHMgc29t
ZSB0cml2aWFsIGNhc2VzLgotICBFWFBFQ1RfRkFMU0UoSXNQcmltZSgwKSk7Ci0gIEVYUEVDVF9G
QUxTRShJc1ByaW1lKDEpKTsKLSAgRVhQRUNUX1RSVUUoSXNQcmltZSgyKSk7Ci0gIEVYUEVDVF9U
UlVFKElzUHJpbWUoMykpOwotCi0gIC8vIFRlc3RzIHBvc2l0aXZlIGlucHV0LgotICBFWFBFQ1Rf
RkFMU0UoSXNQcmltZSg0KSk7Ci0gIEVYUEVDVF9UUlVFKElzUHJpbWUoNSkpOwotICBFWFBFQ1Rf
RkFMU0UoSXNQcmltZSg2KSk7Ci0gIEVYUEVDVF9UUlVFKElzUHJpbWUoMjMpKTsKLX0KLQotCi0v
LyBUaGUgbmV4dCB0ZXN0IGNhc2UgKG5hbWVkICJRdWV1ZVRlc3QiKSBhbHNvIG5lZWRzIHRvIGJl
IHF1aWNrLCBzbwotLy8gd2UgZGVyaXZlIGFub3RoZXIgZml4dHVyZSBmcm9tIFF1aWNrVGVzdC4K
LS8vCi0vLyBUaGUgUXVldWVUZXN0IHRlc3QgZml4dHVyZSBoYXMgc29tZSBsb2dpYyBhbmQgc2hh
cmVkIG9iamVjdHMgaW4KLS8vIGFkZGl0aW9uIHRvIHdoYXQncyBpbiBRdWlja1Rlc3QgYWxyZWFk
eS4gIFdlIGRlZmluZSB0aGUgYWRkaXRpb25hbAotLy8gc3R1ZmYgaW5zaWRlIHRoZSBib2R5IG9m
IHRoZSB0ZXN0IGZpeHR1cmUsIGFzIHVzdWFsLgotY2xhc3MgUXVldWVUZXN0IDogcHVibGljIFF1
aWNrVGVzdCB7Ci0gcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgLy8g
Rmlyc3QsIHdlIG5lZWQgdG8gc2V0IHVwIHRoZSBzdXBlciBmaXh0dXJlIChRdWlja1Rlc3QpLgot
ICAgIFF1aWNrVGVzdDo6U2V0VXAoKTsKLQotICAgIC8vIFNlY29uZCwgc29tZSBhZGRpdGlvbmFs
IHNldHVwIGZvciB0aGlzIGZpeHR1cmUuCi0gICAgcTFfLkVucXVldWUoMSk7Ci0gICAgcTJfLkVu
cXVldWUoMik7Ci0gICAgcTJfLkVucXVldWUoMyk7Ci0gIH0KLQotICAvLyBCeSBkZWZhdWx0LCBU
ZWFyRG93bigpIGluaGVyaXRzIHRoZSBiZWhhdmlvciBvZgotICAvLyBRdWlja1Rlc3Q6OlRlYXJE
b3duKCkuICBBcyB3ZSBoYXZlIG5vIGFkZGl0aW9uYWwgY2xlYW5pbmcgd29yawotICAvLyBmb3Ig
UXVldWVUZXN0LCB3ZSBvbWl0IGl0IGhlcmUuCi0gIC8vCi0gIC8vIHZpcnR1YWwgdm9pZCBUZWFy
RG93bigpIHsKLSAgLy8gICBRdWlja1Rlc3Q6OlRlYXJEb3duKCk7Ci0gIC8vIH0KLQotICBRdWV1
ZTxpbnQ+IHEwXzsKLSAgUXVldWU8aW50PiBxMV87Ci0gIFF1ZXVlPGludD4gcTJfOwotfTsKLQot
Ci0vLyBOb3csIGxldCdzIHdyaXRlIHRlc3RzIHVzaW5nIHRoZSBRdWV1ZVRlc3QgZml4dHVyZS4K
LQotLy8gVGVzdHMgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCi1URVNUX0YoUXVldWVUZXN0LCBE
ZWZhdWx0Q29uc3RydWN0b3IpIHsKLSAgRVhQRUNUX0VRKDB1LCBxMF8uU2l6ZSgpKTsKLX0KLQot
Ly8gVGVzdHMgRGVxdWV1ZSgpLgotVEVTVF9GKFF1ZXVlVGVzdCwgRGVxdWV1ZSkgewotICBpbnQq
IG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfVFJVRShuID09IE5VTEwpOwotCi0gIG4gPSBx
MV8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfVFJVRShuICE9IE5VTEwpOwotICBFWFBFQ1RfRVEoMSwg
Km4pOwotICBFWFBFQ1RfRVEoMHUsIHExXy5TaXplKCkpOwotICBkZWxldGUgbjsKLQotICBuID0g
cTJfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUobiAhPSBOVUxMKTsKLSAgRVhQRUNUX0VRKDIs
ICpuKTsKLSAgRVhQRUNUX0VRKDF1LCBxMl8uU2l6ZSgpKTsKLSAgZGVsZXRlIG47Ci19Ci19ICAv
LyBuYW1lc3BhY2UKLS8vIElmIG5lY2Vzc2FyeSwgeW91IGNhbiBkZXJpdmUgZnVydGhlciB0ZXN0
IGZpeHR1cmVzIGZyb20gYSBkZXJpdmVkCi0vLyBmaXh0dXJlIGl0c2VsZi4gIEZvciBleGFtcGxl
LCB5b3UgY2FuIGRlcml2ZSBhbm90aGVyIGZpeHR1cmUgZnJvbQotLy8gUXVldWVUZXN0LiAgR29v
Z2xlIFRlc3QgaW1wb3NlcyBubyBsaW1pdCBvbiBob3cgZGVlcCB0aGUgaGllcmFyY2h5Ci0vLyBj
YW4gYmUuICBJbiBwcmFjdGljZSwgaG93ZXZlciwgeW91IHByb2JhYmx5IGRvbid0IHdhbnQgaXQg
dG8gYmUgdG9vCi0vLyBkZWVwIGFzIHRvIGJlIGNvbmZ1c2luZy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWZhZjBjM2QzYmFmMTYzYzVhYzMxZjI3ZmJmYmJmZTlm
NmViNjVjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MKKysr
IC9kZXYvbnVsbApAQCAtMSwyMjUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIElu
Yy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcg
V2FuKQotCi0vLyBUaGlzIHNhbXBsZSBzaG93cyBob3cgdG8gdGVzdCBjb21tb24gcHJvcGVydGll
cyBvZiBtdWx0aXBsZQotLy8gaW1wbGVtZW50YXRpb25zIG9mIHRoZSBzYW1lIGludGVyZmFjZSAo
YWthIGludGVyZmFjZSB0ZXN0cykuCi0KLS8vIFRoZSBpbnRlcmZhY2UgYW5kIGl0cyBpbXBsZW1l
bnRhdGlvbnMgYXJlIGluIHRoaXMgaGVhZGVyLgotI2luY2x1ZGUgInByaW1lX3RhYmxlcy5oIgot
Ci0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLW5hbWVzcGFjZSB7Ci0vLyBGaXJzdCwgd2UgZGVm
aW5lIHNvbWUgZmFjdG9yeSBmdW5jdGlvbnMgZm9yIGNyZWF0aW5nIGluc3RhbmNlcyBvZgotLy8g
dGhlIGltcGxlbWVudGF0aW9ucy4gIFlvdSBtYXkgYmUgYWJsZSB0byBza2lwIHRoaXMgc3RlcCBp
ZiBhbGwgeW91cgotLy8gaW1wbGVtZW50YXRpb25zIGNhbiBiZSBjb25zdHJ1Y3RlZCB0aGUgc2Ft
ZSB3YXkuCi0KLXRlbXBsYXRlIDxjbGFzcyBUPgotUHJpbWVUYWJsZSogQ3JlYXRlUHJpbWVUYWJs
ZSgpOwotCi10ZW1wbGF0ZSA8PgotUHJpbWVUYWJsZSogQ3JlYXRlUHJpbWVUYWJsZTxPblRoZUZs
eVByaW1lVGFibGU+KCkgewotICByZXR1cm4gbmV3IE9uVGhlRmx5UHJpbWVUYWJsZTsKLX0KLQot
dGVtcGxhdGUgPD4KLVByaW1lVGFibGUqIENyZWF0ZVByaW1lVGFibGU8UHJlQ2FsY3VsYXRlZFBy
aW1lVGFibGU+KCkgewotICByZXR1cm4gbmV3IFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlKDEwMDAw
KTsKLX0KLQotLy8gVGhlbiB3ZSBkZWZpbmUgYSB0ZXN0IGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUu
Ci10ZW1wbGF0ZSA8Y2xhc3MgVD4KLWNsYXNzIFByaW1lVGFibGVUZXN0IDogcHVibGljIHRlc3Rp
bmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLy8gVGhlIGN0b3IgY2FsbHMgdGhlIGZhY3Rvcnkg
ZnVuY3Rpb24gdG8gY3JlYXRlIGEgcHJpbWUgdGFibGUKLSAgLy8gaW1wbGVtZW50ZWQgYnkgVC4K
LSAgUHJpbWVUYWJsZVRlc3QoKSA6IHRhYmxlXyhDcmVhdGVQcmltZVRhYmxlPFQ+KCkpIHt9Ci0K
LSAgdmlydHVhbCB+UHJpbWVUYWJsZVRlc3QoKSB7IGRlbGV0ZSB0YWJsZV87IH0KLQotICAvLyBO
b3RlIHRoYXQgd2UgdGVzdCBhbiBpbXBsZW1lbnRhdGlvbiB2aWEgdGhlIGJhc2UgaW50ZXJmYWNl
Ci0gIC8vIGluc3RlYWQgb2YgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBjbGFzcy4gIFRoaXMg
aXMgaW1wb3J0YW50Ci0gIC8vIGZvciBrZWVwaW5nIHRoZSB0ZXN0cyBjbG9zZSB0byB0aGUgcmVh
bCB3b3JsZCBzY2VuYXJpbywgd2hlcmUgdGhlCi0gIC8vIGltcGxlbWVudGF0aW9uIGlzIGludm9r
ZWQgdmlhIHRoZSBiYXNlIGludGVyZmFjZS4gIEl0IGF2b2lkcwotICAvLyBnb3QteWFzIHdoZXJl
IHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcyBoYXMgYSBtZXRob2QgdGhhdCBzaGFkb3dzCi0gIC8v
IGEgbWV0aG9kIHdpdGggdGhlIHNhbWUgbmFtZSAoYnV0IHNsaWdodGx5IGRpZmZlcmVudCBhcmd1
bWVudAotICAvLyB0eXBlcykgaW4gdGhlIGJhc2UgaW50ZXJmYWNlLCBmb3IgZXhhbXBsZS4KLSAg
UHJpbWVUYWJsZSogY29uc3QgdGFibGVfOwotfTsKLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNU
Ci0KLXVzaW5nIHRlc3Rpbmc6OlR5cGVzOwotCi0vLyBHb29nbGUgVGVzdCBvZmZlcnMgdHdvIHdh
eXMgZm9yIHJldXNpbmcgdGVzdHMgZm9yIGRpZmZlcmVudCB0eXBlcy4KLS8vIFRoZSBmaXJzdCBp
cyBjYWxsZWQgInR5cGVkIHRlc3RzIi4gIFlvdSBzaG91bGQgdXNlIGl0IGlmIHlvdQotLy8gYWxy
ZWFkeSBrbm93ICphbGwqIHRoZSB0eXBlcyB5b3UgYXJlIGdvbm5hIGV4ZXJjaXNlIHdoZW4geW91
IHdyaXRlCi0vLyB0aGUgdGVzdHMuCi0KLS8vIFRvIHdyaXRlIGEgdHlwZWQgdGVzdCBjYXNlLCBm
aXJzdCB1c2UKLS8vCi0vLyAgIFRZUEVEX1RFU1RfQ0FTRShUZXN0Q2FzZU5hbWUsIFR5cGVMaXN0
KTsKLS8vCi0vLyB0byBkZWNsYXJlIGl0IGFuZCBzcGVjaWZ5IHRoZSB0eXBlIHBhcmFtZXRlcnMu
ICBBcyB3aXRoIFRFU1RfRiwKLS8vIFRlc3RDYXNlTmFtZSBtdXN0IG1hdGNoIHRoZSB0ZXN0IGZp
eHR1cmUgbmFtZS4KLQotLy8gVGhlIGxpc3Qgb2YgdHlwZXMgd2Ugd2FudCB0byB0ZXN0LgotdHlw
ZWRlZiBUeXBlczxPblRoZUZseVByaW1lVGFibGUsIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPiBJ
bXBsZW1lbnRhdGlvbnM7Ci0KLVRZUEVEX1RFU1RfQ0FTRShQcmltZVRhYmxlVGVzdCwgSW1wbGVt
ZW50YXRpb25zKTsKLQotLy8gVGhlbiB1c2UgVFlQRURfVEVTVChUZXN0Q2FzZU5hbWUsIFRlc3RO
YW1lKSB0byBkZWZpbmUgYSB0eXBlZCB0ZXN0LAotLy8gc2ltaWxhciB0byBURVNUX0YuCi1UWVBF
RF9URVNUKFByaW1lVGFibGVUZXN0LCBSZXR1cm5zRmFsc2VGb3JOb25QcmltZXMpIHsKLSAgLy8g
SW5zaWRlIHRoZSB0ZXN0IGJvZHksIHlvdSBjYW4gcmVmZXIgdG8gdGhlIHR5cGUgcGFyYW1ldGVy
IGJ5Ci0gIC8vIFR5cGVQYXJhbSwgYW5kIHJlZmVyIHRvIHRoZSBmaXh0dXJlIGNsYXNzIGJ5IFRl
c3RGaXh0dXJlLiAgV2UKLSAgLy8gZG9uJ3QgbmVlZCB0aGVtIGluIHRoaXMgZXhhbXBsZS4KLQot
ICAvLyBTaW5jZSB3ZSBhcmUgaW4gdGhlIHRlbXBsYXRlIHdvcmxkLCBDKysgcmVxdWlyZXMgZXhw
bGljaXRseQotICAvLyB3cml0aW5nICd0aGlzLT4nIHdoZW4gcmVmZXJyaW5nIHRvIG1lbWJlcnMg
b2YgdGhlIGZpeHR1cmUgY2xhc3MuCi0gIC8vIFRoaXMgaXMgc29tZXRoaW5nIHlvdSBoYXZlIHRv
IGxlYXJuIHRvIGxpdmUgd2l0aC4KLSAgRVhQRUNUX0ZBTFNFKHRoaXMtPnRhYmxlXy0+SXNQcmlt
ZSgtNSkpOwotICBFWFBFQ1RfRkFMU0UodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDApKTsKLSAgRVhQ
RUNUX0ZBTFNFKHRoaXMtPnRhYmxlXy0+SXNQcmltZSgxKSk7Ci0gIEVYUEVDVF9GQUxTRSh0aGlz
LT50YWJsZV8tPklzUHJpbWUoNCkpOwotICBFWFBFQ1RfRkFMU0UodGhpcy0+dGFibGVfLT5Jc1By
aW1lKDYpKTsKLSAgRVhQRUNUX0ZBTFNFKHRoaXMtPnRhYmxlXy0+SXNQcmltZSgxMDApKTsKLX0K
LQotVFlQRURfVEVTVChQcmltZVRhYmxlVGVzdCwgUmV0dXJuc1RydWVGb3JQcmltZXMpIHsKLSAg
RVhQRUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDIpKTsKLSAgRVhQRUNUX1RSVUUodGhp
cy0+dGFibGVfLT5Jc1ByaW1lKDMpKTsKLSAgRVhQRUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1By
aW1lKDUpKTsKLSAgRVhQRUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDcpKTsKLSAgRVhQ
RUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDExKSk7Ci0gIEVYUEVDVF9UUlVFKHRoaXMt
PnRhYmxlXy0+SXNQcmltZSgxMzEpKTsKLX0KLQotVFlQRURfVEVTVChQcmltZVRhYmxlVGVzdCwg
Q2FuR2V0TmV4dFByaW1lKSB7Ci0gIEVYUEVDVF9FUSgyLCB0aGlzLT50YWJsZV8tPkdldE5leHRQ
cmltZSgwKSk7Ci0gIEVYUEVDVF9FUSgzLCB0aGlzLT50YWJsZV8tPkdldE5leHRQcmltZSgyKSk7
Ci0gIEVYUEVDVF9FUSg1LCB0aGlzLT50YWJsZV8tPkdldE5leHRQcmltZSgzKSk7Ci0gIEVYUEVD
VF9FUSg3LCB0aGlzLT50YWJsZV8tPkdldE5leHRQcmltZSg1KSk7Ci0gIEVYUEVDVF9FUSgxMSwg
dGhpcy0+dGFibGVfLT5HZXROZXh0UHJpbWUoNykpOwotICBFWFBFQ1RfRVEoMTMxLCB0aGlzLT50
YWJsZV8tPkdldE5leHRQcmltZSgxMjgpKTsKLX0KLQotLy8gVGhhdCdzIGl0ISAgR29vZ2xlIFRl
c3Qgd2lsbCByZXBlYXQgZWFjaCBUWVBFRF9URVNUIGZvciBlYWNoIHR5cGUKLS8vIGluIHRoZSB0
eXBlIGxpc3Qgc3BlY2lmaWVkIGluIFRZUEVEX1RFU1RfQ0FTRS4gIFNpdCBiYWNrIGFuZCBiZQot
Ly8gaGFwcHkgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBkZWZpbmUgdGhlbSBtdWx0aXBsZSB0aW1l
cy4KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVAotCi0jaWYgR1RFU1RfSEFTX1RZ
UEVEX1RFU1RfUAotCi11c2luZyB0ZXN0aW5nOjpUeXBlczsKLQotLy8gU29tZXRpbWVzLCBob3dl
dmVyLCB5b3UgZG9uJ3QgeWV0IGtub3cgYWxsIHRoZSB0eXBlcyB0aGF0IHlvdSB3YW50Ci0vLyB0
byB0ZXN0IHdoZW4geW91IHdyaXRlIHRoZSB0ZXN0cy4gIEZvciBleGFtcGxlLCBpZiB5b3UgYXJl
IHRoZQotLy8gYXV0aG9yIG9mIGFuIGludGVyZmFjZSBhbmQgZXhwZWN0IG90aGVyIHBlb3BsZSB0
byBpbXBsZW1lbnQgaXQsIHlvdQotLy8gbWlnaHQgd2FudCB0byB3cml0ZSBhIHNldCBvZiB0ZXN0
cyB0byBtYWtlIHN1cmUgZWFjaCBpbXBsZW1lbnRhdGlvbgotLy8gY29uZm9ybXMgdG8gc29tZSBi
YXNpYyByZXF1aXJlbWVudHMsIGJ1dCB5b3UgZG9uJ3Qga25vdyB3aGF0Ci0vLyBpbXBsZW1lbnRh
dGlvbnMgd2lsbCBiZSB3cml0dGVuIGluIHRoZSBmdXR1cmUuCi0vLwotLy8gSG93IGNhbiB5b3Ug
d3JpdGUgdGhlIHRlc3RzIHdpdGhvdXQgY29tbWl0dGluZyB0byB0aGUgdHlwZQotLy8gcGFyYW1l
dGVycz8gIFRoYXQncyB3aGF0ICJ0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMiIGNhbiBkbyBmb3Ig
eW91LgotLy8gSXQgaXMgYSBiaXQgbW9yZSBpbnZvbHZlZCB0aGFuIHR5cGVkIHRlc3RzLCBidXQg
aW4gcmV0dXJuIHlvdSBnZXQgYQotLy8gdGVzdCBwYXR0ZXJuIHRoYXQgY2FuIGJlIHJldXNlZCBp
biBtYW55IGNvbnRleHRzLCB3aGljaCBpcyBhIGJpZwotLy8gd2luLiAgSGVyZSdzIGhvdyB5b3Ug
ZG8gaXQ6Ci0KLS8vIEZpcnN0LCBkZWZpbmUgYSB0ZXN0IGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUu
ICBIZXJlIHdlIGp1c3QgcmV1c2UKLS8vIHRoZSBQcmltZVRhYmxlVGVzdCBmaXh0dXJlIGRlZmlu
ZWQgZWFybGllcjoKLQotdGVtcGxhdGUgPGNsYXNzIFQ+Ci1jbGFzcyBQcmltZVRhYmxlVGVzdDIg
OiBwdWJsaWMgUHJpbWVUYWJsZVRlc3Q8VD4gewotfTsKLQotLy8gVGhlbiwgZGVjbGFyZSB0aGUg
dGVzdCBjYXNlLiAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0Ci0vLyBmaXh0
dXJlLCBhbmQgYWxzbyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlIChhcyB1c3VhbCkuICBUaGUg
X1AKLS8vIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQiIG9yICJwYXR0ZXJuIi4KLVRZUEVE
X1RFU1RfQ0FTRV9QKFByaW1lVGFibGVUZXN0Mik7Ci0KLS8vIE5leHQsIHVzZSBUWVBFRF9URVNU
X1AoVGVzdENhc2VOYW1lLCBUZXN0TmFtZSkgdG8gZGVmaW5lIGEgdGVzdCwKLS8vIHNpbWlsYXIg
dG8gd2hhdCB5b3UgZG8gd2l0aCBURVNUX0YuCi1UWVBFRF9URVNUX1AoUHJpbWVUYWJsZVRlc3Qy
LCBSZXR1cm5zRmFsc2VGb3JOb25QcmltZXMpIHsKLSAgRVhQRUNUX0ZBTFNFKHRoaXMtPnRhYmxl
Xy0+SXNQcmltZSgtNSkpOwotICBFWFBFQ1RfRkFMU0UodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDAp
KTsKLSAgRVhQRUNUX0ZBTFNFKHRoaXMtPnRhYmxlXy0+SXNQcmltZSgxKSk7Ci0gIEVYUEVDVF9G
QUxTRSh0aGlzLT50YWJsZV8tPklzUHJpbWUoNCkpOwotICBFWFBFQ1RfRkFMU0UodGhpcy0+dGFi
bGVfLT5Jc1ByaW1lKDYpKTsKLSAgRVhQRUNUX0ZBTFNFKHRoaXMtPnRhYmxlXy0+SXNQcmltZSgx
MDApKTsKLX0KLQotVFlQRURfVEVTVF9QKFByaW1lVGFibGVUZXN0MiwgUmV0dXJuc1RydWVGb3JQ
cmltZXMpIHsKLSAgRVhQRUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDIpKTsKLSAgRVhQ
RUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDMpKTsKLSAgRVhQRUNUX1RSVUUodGhpcy0+
dGFibGVfLT5Jc1ByaW1lKDUpKTsKLSAgRVhQRUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1ByaW1l
KDcpKTsKLSAgRVhQRUNUX1RSVUUodGhpcy0+dGFibGVfLT5Jc1ByaW1lKDExKSk7Ci0gIEVYUEVD
VF9UUlVFKHRoaXMtPnRhYmxlXy0+SXNQcmltZSgxMzEpKTsKLX0KLQotVFlQRURfVEVTVF9QKFBy
aW1lVGFibGVUZXN0MiwgQ2FuR2V0TmV4dFByaW1lKSB7Ci0gIEVYUEVDVF9FUSgyLCB0aGlzLT50
YWJsZV8tPkdldE5leHRQcmltZSgwKSk7Ci0gIEVYUEVDVF9FUSgzLCB0aGlzLT50YWJsZV8tPkdl
dE5leHRQcmltZSgyKSk7Ci0gIEVYUEVDVF9FUSg1LCB0aGlzLT50YWJsZV8tPkdldE5leHRQcmlt
ZSgzKSk7Ci0gIEVYUEVDVF9FUSg3LCB0aGlzLT50YWJsZV8tPkdldE5leHRQcmltZSg1KSk7Ci0g
IEVYUEVDVF9FUSgxMSwgdGhpcy0+dGFibGVfLT5HZXROZXh0UHJpbWUoNykpOwotICBFWFBFQ1Rf
RVEoMTMxLCB0aGlzLT50YWJsZV8tPkdldE5leHRQcmltZSgxMjgpKTsKLX0KLQotLy8gVHlwZS1w
YXJhbWV0ZXJpemVkIHRlc3RzIGludm9sdmUgb25lIGV4dHJhIHN0ZXA6IHlvdSBoYXZlIHRvCi0v
LyBlbnVtZXJhdGUgdGhlIHRlc3RzIHlvdSBkZWZpbmVkOgotUkVHSVNURVJfVFlQRURfVEVTVF9D
QVNFX1AoCi0gICAgUHJpbWVUYWJsZVRlc3QyLCAgLy8gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRo
ZSB0ZXN0IGNhc2UgbmFtZS4KLSAgICAvLyBUaGUgcmVzdCBvZiB0aGUgYXJndW1lbnRzIGFyZSB0
aGUgdGVzdCBuYW1lcy4KLSAgICBSZXR1cm5zRmFsc2VGb3JOb25QcmltZXMsIFJldHVybnNUcnVl
Rm9yUHJpbWVzLCBDYW5HZXROZXh0UHJpbWUpOwotCi0vLyBBdCB0aGlzIHBvaW50IHRoZSB0ZXN0
IHBhdHRlcm4gaXMgZG9uZS4gIEhvd2V2ZXIsIHlvdSBkb24ndCBoYXZlCi0vLyBhbnkgcmVhbCB0
ZXN0IHlldCBhcyB5b3UgaGF2ZW4ndCBzYWlkIHdoaWNoIHR5cGVzIHlvdSB3YW50IHRvIHJ1bgot
Ly8gdGhlIHRlc3RzIHdpdGguCi0KLS8vIFRvIHR1cm4gdGhlIGFic3RyYWN0IHRlc3QgcGF0dGVy
biBpbnRvIHJlYWwgdGVzdHMsIHlvdSBpbnN0YW50aWF0ZQotLy8gaXQgd2l0aCBhIGxpc3Qgb2Yg
dHlwZXMuICBVc3VhbGx5IHRoZSB0ZXN0IHBhdHRlcm4gd2lsbCBiZSBkZWZpbmVkCi0vLyBpbiBh
IC5oIGZpbGUsIGFuZCBhbnlvbmUgY2FuICNpbmNsdWRlIGFuZCBpbnN0YW50aWF0ZSBpdC4gIFlv
dSBjYW4KLS8vIGV2ZW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUg
cHJvZ3JhbS4gIFRvIHRlbGwKLS8vIGRpZmZlcmVudCBpbnN0YW5jZXMgYXBhcnQsIHlvdSBnaXZl
IGVhY2ggb2YgdGhlbSBhIG5hbWUsIHdoaWNoIHdpbGwKLS8vIGJlY29tZSBwYXJ0IG9mIHRoZSB0
ZXN0IGNhc2UgbmFtZSBhbmQgY2FuIGJlIHVzZWQgaW4gdGVzdCBmaWx0ZXJzLgotCi0vLyBUaGUg
bGlzdCBvZiB0eXBlcyB3ZSB3YW50IHRvIHRlc3QuICBOb3RlIHRoYXQgaXQgZG9lc24ndCBoYXZl
IHRvIGJlCi0vLyBkZWZpbmVkIGF0IHRoZSB0aW1lIHdlIHdyaXRlIHRoZSBUWVBFRF9URVNUX1Ao
KXMuCi10eXBlZGVmIFR5cGVzPE9uVGhlRmx5UHJpbWVUYWJsZSwgUHJlQ2FsY3VsYXRlZFByaW1l
VGFibGU+Ci0gICAgUHJpbWVUYWJsZUltcGxlbWVudGF0aW9uczsKLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKE9uVGhlRmx5QW5kUHJlQ2FsY3VsYXRlZCwgICAgLy8gSW5zdGFuY2UgbmFt
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbWVUYWJsZVRlc3QyLCAgICAgICAg
ICAgICAvLyBUZXN0IGNhc2UgbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJp
bWVUYWJsZUltcGxlbWVudGF0aW9ucyk7ICAvLyBUeXBlIGxpc3QKLQotI2VuZGlmICAvLyBHVEVT
VF9IQVNfVFlQRURfVEVTVF9QCi19ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlN191bml0dGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L3NhbXBsZXMvc2FtcGxlN191bml0dGVzdC5jYwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWZhOTcyODk5ZWMwMDYwNmY4MDM1YTZjYzUxMGU2ZWFjYmFm
MTU2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4K
LS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB2bGFkbEBnb29nbGUuY29tIChWbGFkIExvc2V2
KQotCi0vLyBUaGlzIHNhbXBsZSBzaG93cyBob3cgdG8gdGVzdCBjb21tb24gcHJvcGVydGllcyBv
ZiBtdWx0aXBsZQotLy8gaW1wbGVtZW50YXRpb25zIG9mIGFuIGludGVyZmFjZSAoYWthIGludGVy
ZmFjZSB0ZXN0cykgdXNpbmcKLS8vIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMuIEVhY2ggdGVz
dCBpbiB0aGUgdGVzdCBjYXNlIGhhcwotLy8gYSBwYXJhbWV0ZXIgdGhhdCBpcyBhbiBpbnRlcmZh
Y2UgcG9pbnRlciB0byBhbiBpbXBsZW1lbnRhdGlvbgotLy8gdGVzdGVkLgotCi0vLyBUaGUgaW50
ZXJmYWNlIGFuZCBpdHMgaW1wbGVtZW50YXRpb25zIGFyZSBpbiB0aGlzIGhlYWRlci4KLSNpbmNs
dWRlICJwcmltZV90YWJsZXMuaCIKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi1uYW1lc3Bh
Y2UgewotCi11c2luZyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW07Ci11c2luZyA6OnRlc3Rpbmc6
OlZhbHVlczsKLQotLy8gQXMgYSBnZW5lcmFsIHJ1bGUsIHRvIHByZXZlbnQgYSB0ZXN0IGZyb20g
YWZmZWN0aW5nIHRoZSB0ZXN0cyB0aGF0IGNvbWUKLS8vIGFmdGVyIGl0LCB5b3Ugc2hvdWxkIGNy
ZWF0ZSBhbmQgZGVzdHJveSB0aGUgdGVzdGVkIG9iamVjdHMgZm9yIGVhY2ggdGVzdAotLy8gaW5z
dGVhZCBvZiByZXVzaW5nIHRoZW0uICBJbiB0aGlzIHNhbXBsZSB3ZSB3aWxsIGRlZmluZSBhIHNp
bXBsZSBmYWN0b3J5Ci0vLyBmdW5jdGlvbiBmb3IgUHJpbWVUYWJsZSBvYmplY3RzLiAgV2Ugd2ls
bCBpbnN0YW50aWF0ZSBvYmplY3RzIGluIHRlc3QncwotLy8gU2V0VXAoKSBtZXRob2QgYW5kIGRl
bGV0ZSB0aGVtIGluIFRlYXJEb3duKCkgbWV0aG9kLgotdHlwZWRlZiBQcmltZVRhYmxlKiBDcmVh
dGVQcmltZVRhYmxlRnVuYygpOwotCi1QcmltZVRhYmxlKiBDcmVhdGVPblRoZUZseVByaW1lVGFi
bGUoKSB7Ci0gIHJldHVybiBuZXcgT25UaGVGbHlQcmltZVRhYmxlKCk7Ci19Ci0KLXRlbXBsYXRl
IDxzaXplX3QgbWF4X3ByZWNhbGN1bGF0ZWQ+Ci1QcmltZVRhYmxlKiBDcmVhdGVQcmVDYWxjdWxh
dGVkUHJpbWVUYWJsZSgpIHsKLSAgcmV0dXJuIG5ldyBQcmVDYWxjdWxhdGVkUHJpbWVUYWJsZSht
YXhfcHJlY2FsY3VsYXRlZCk7Ci19Ci0KLS8vIEluc2lkZSB0aGUgdGVzdCBib2R5LCBmaXh0dXJl
IGNvbnN0cnVjdG9yLCBTZXRVcCgpLCBhbmQgVGVhckRvd24oKSB5b3UKLS8vIGNhbiByZWZlciB0
byB0aGUgdGVzdCBwYXJhbWV0ZXIgYnkgR2V0UGFyYW0oKS4gIEluIHRoaXMgY2FzZSwgdGhlIHRl
c3QKLS8vIHBhcmFtZXRlciBpcyBhIGZhY3RvcnkgZnVuY3Rpb24gd2hpY2ggd2UgY2FsbCBpbiBm
aXh0dXJlJ3MgU2V0VXAoKSB0bwotLy8gY3JlYXRlIGFuZCBzdG9yZSBhbiBpbnN0YW5jZSBvZiBQ
cmltZVRhYmxlLgotY2xhc3MgUHJpbWVUYWJsZVRlc3RTbXBsNyA6IHB1YmxpYyBUZXN0V2l0aFBh
cmFtPENyZWF0ZVByaW1lVGFibGVGdW5jKj4gewotIHB1YmxpYzoKLSAgdmlydHVhbCB+UHJpbWVU
YWJsZVRlc3RTbXBsNygpIHsgZGVsZXRlIHRhYmxlXzsgfQotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7IHRhYmxlXyA9ICgqR2V0UGFyYW0oKSkoKTsgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7Ci0gICAgZGVsZXRlIHRhYmxlXzsKLSAgICB0YWJsZV8gPSBOVUxMOwotICB9Ci0KLSBwcm90
ZWN0ZWQ6Ci0gIFByaW1lVGFibGUqIHRhYmxlXzsKLX07Ci0KLVRFU1RfUChQcmltZVRhYmxlVGVz
dFNtcGw3LCBSZXR1cm5zRmFsc2VGb3JOb25QcmltZXMpIHsKLSAgRVhQRUNUX0ZBTFNFKHRhYmxl
Xy0+SXNQcmltZSgtNSkpOwotICBFWFBFQ1RfRkFMU0UodGFibGVfLT5Jc1ByaW1lKDApKTsKLSAg
RVhQRUNUX0ZBTFNFKHRhYmxlXy0+SXNQcmltZSgxKSk7Ci0gIEVYUEVDVF9GQUxTRSh0YWJsZV8t
PklzUHJpbWUoNCkpOwotICBFWFBFQ1RfRkFMU0UodGFibGVfLT5Jc1ByaW1lKDYpKTsKLSAgRVhQ
RUNUX0ZBTFNFKHRhYmxlXy0+SXNQcmltZSgxMDApKTsKLX0KLQotVEVTVF9QKFByaW1lVGFibGVU
ZXN0U21wbDcsIFJldHVybnNUcnVlRm9yUHJpbWVzKSB7Ci0gIEVYUEVDVF9UUlVFKHRhYmxlXy0+
SXNQcmltZSgyKSk7Ci0gIEVYUEVDVF9UUlVFKHRhYmxlXy0+SXNQcmltZSgzKSk7Ci0gIEVYUEVD
VF9UUlVFKHRhYmxlXy0+SXNQcmltZSg1KSk7Ci0gIEVYUEVDVF9UUlVFKHRhYmxlXy0+SXNQcmlt
ZSg3KSk7Ci0gIEVYUEVDVF9UUlVFKHRhYmxlXy0+SXNQcmltZSgxMSkpOwotICBFWFBFQ1RfVFJV
RSh0YWJsZV8tPklzUHJpbWUoMTMxKSk7Ci19Ci0KLVRFU1RfUChQcmltZVRhYmxlVGVzdFNtcGw3
LCBDYW5HZXROZXh0UHJpbWUpIHsKLSAgRVhQRUNUX0VRKDIsIHRhYmxlXy0+R2V0TmV4dFByaW1l
KDApKTsKLSAgRVhQRUNUX0VRKDMsIHRhYmxlXy0+R2V0TmV4dFByaW1lKDIpKTsKLSAgRVhQRUNU
X0VRKDUsIHRhYmxlXy0+R2V0TmV4dFByaW1lKDMpKTsKLSAgRVhQRUNUX0VRKDcsIHRhYmxlXy0+
R2V0TmV4dFByaW1lKDUpKTsKLSAgRVhQRUNUX0VRKDExLCB0YWJsZV8tPkdldE5leHRQcmltZSg3
KSk7Ci0gIEVYUEVDVF9FUSgxMzEsIHRhYmxlXy0+R2V0TmV4dFByaW1lKDEyOCkpOwotfQotCi0v
LyBJbiBvcmRlciB0byBydW4gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cywgeW91IG5lZWQgdG8g
aW5zdGFudGlhdGUgdGhlbSwKLS8vIG9yIGJpbmQgdGhlbSB0byBhIGxpc3Qgb2YgdmFsdWVzIHdo
aWNoIHdpbGwgYmUgdXNlZCBhcyB0ZXN0IHBhcmFtZXRlcnMuCi0vLyBZb3UgY2FuIGluc3RhbnRp
YXRlIHRoZW0gaW4gYSBkaWZmZXJlbnQgdHJhbnNsYXRpb24gbW9kdWxlLCBvciBldmVuCi0vLyBp
bnN0YW50aWF0ZSB0aGVtIHNldmVyYWwgdGltZXMuCi0vLwotLy8gSGVyZSwgd2UgaW5zdGFudGlh
dGUgb3VyIHRlc3RzIHdpdGggYSBsaXN0IG9mIHR3byBQcmltZVRhYmxlIG9iamVjdAotLy8gZmFj
dG9yeSBmdW5jdGlvbnM6Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChPblRoZUZseUFuZFByZUNh
bGN1bGF0ZWQsIFByaW1lVGFibGVUZXN0U21wbDcsCi0gICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZXMoJkNyZWF0ZU9uVGhlRmx5UHJpbWVUYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmQ3JlYXRlUHJlQ2FsY3VsYXRlZFByaW1lVGFibGU8MTAwMD4pKTsKLQotfSAgLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVz
L3NhbXBsZThfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zYW1wbGVz
L3NhbXBsZThfdW5pdHRlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwZmYy
ZDFmZGMzNmE1YTNiOTMxNzEyMTc2NDEzZjUyMTYyMzMwNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2Ft
cGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMTc0ICswLDAgQEAK
LS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuCi0vLyBBbGwgUmlnaHRzIFJlc2VydmVkLgot
Ly8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBk
aXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8g
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhv
cjogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBMb3NldikKLQotLy8gVGhpcyBzYW1wbGUgc2hvd3Mg
aG93IHRvIHRlc3QgY29kZSByZWx5aW5nIG9uIHNvbWUgZ2xvYmFsIGZsYWcgdmFyaWFibGVzLgot
Ly8gQ29tYmluZSgpIGhlbHBzIHdpdGggZ2VuZXJhdGluZyBhbGwgcG9zc2libGUgY29tYmluYXRp
b25zIG9mIHN1Y2ggZmxhZ3MsCi0vLyBhbmQgZWFjaCB0ZXN0IGlzIGdpdmVuIG9uZSBjb21iaW5h
dGlvbiBhcyBhIHBhcmFtZXRlci4KLQotLy8gVXNlIGNsYXNzIGRlZmluaXRpb25zIHRvIHRlc3Qg
ZnJvbSB0aGlzIGhlYWRlci4KLSNpbmNsdWRlICJwcmltZV90YWJsZXMuaCIKLQotI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCi1uYW1lc3BhY2UgewotI2lmIEdURVNUX0hBU19DT01CSU5FCi0KLS8v
IFN1cHBvc2Ugd2Ugd2FudCB0byBpbnRyb2R1Y2UgYSBuZXcsIGltcHJvdmVkIGltcGxlbWVudGF0
aW9uIG9mIFByaW1lVGFibGUKLS8vIHdoaWNoIGNvbWJpbmVzIHNwZWVkIG9mIFByZWNhbGNQcmlt
ZVRhYmxlIGFuZCB2ZXJzYXRpbGl0eSBvZgotLy8gT25UaGVGbHlQcmltZVRhYmxlIChzZWUgcHJp
bWVfdGFibGVzLmgpLiBJbnNpZGUgaXQgaW5zdGFudGlhdGVzIGJvdGgKLS8vIFByZWNhbGNQcmlt
ZVRhYmxlIGFuZCBPblRoZUZseVByaW1lVGFibGUgYW5kIHVzZXMgdGhlIG9uZSB0aGF0IGlzIG1v
cmUKLS8vIGFwcHJvcHJpYXRlIHVuZGVyIHRoZSBjaXJjdW1zdGFuY2VzLiBCdXQgaW4gbG93IG1l
bW9yeSBjb25kaXRpb25zLCBpdCBjYW4gYmUKLS8vIHRvbGQgdG8gaW5zdGFudGlhdGUgd2l0aG91
dCBQcmVjYWxjUHJpbWVUYWJsZSBpbnN0YW5jZSBhdCBhbGwgYW5kIHVzZSBvbmx5Ci0vLyBPblRo
ZUZseVByaW1lVGFibGUuCi1jbGFzcyBIeWJyaWRQcmltZVRhYmxlIDogcHVibGljIFByaW1lVGFi
bGUgewotIHB1YmxpYzoKLSAgSHlicmlkUHJpbWVUYWJsZShib29sIGZvcmNlX29uX3RoZV9mbHks
IGludCBtYXhfcHJlY2FsY3VsYXRlZCkKLSAgICAgIDogb25fdGhlX2ZseV9pbXBsXyhuZXcgT25U
aGVGbHlQcmltZVRhYmxlKSwKLSAgICAgICAgcHJlY2FsY19pbXBsXyhmb3JjZV9vbl90aGVfZmx5
ID8gTlVMTCA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQcmVDYWxjdWxhdGVkUHJp
bWVUYWJsZShtYXhfcHJlY2FsY3VsYXRlZCkpLAotICAgICAgICBtYXhfcHJlY2FsY3VsYXRlZF8o
bWF4X3ByZWNhbGN1bGF0ZWQpIHt9Ci0gIHZpcnR1YWwgfkh5YnJpZFByaW1lVGFibGUoKSB7Ci0g
ICAgZGVsZXRlIG9uX3RoZV9mbHlfaW1wbF87Ci0gICAgZGVsZXRlIHByZWNhbGNfaW1wbF87Ci0g
IH0KLQotICB2aXJ0dWFsIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3QgewotICAgIGlmIChwcmVj
YWxjX2ltcGxfICE9IE5VTEwgJiYgbiA8IG1heF9wcmVjYWxjdWxhdGVkXykKLSAgICAgIHJldHVy
biBwcmVjYWxjX2ltcGxfLT5Jc1ByaW1lKG4pOwotICAgIGVsc2UKLSAgICAgIHJldHVybiBvbl90
aGVfZmx5X2ltcGxfLT5Jc1ByaW1lKG4pOwotICB9Ci0KLSAgdmlydHVhbCBpbnQgR2V0TmV4dFBy
aW1lKGludCBwKSBjb25zdCB7Ci0gICAgaW50IG5leHRfcHJpbWUgPSAtMTsKLSAgICBpZiAocHJl
Y2FsY19pbXBsXyAhPSBOVUxMICYmIHAgPCBtYXhfcHJlY2FsY3VsYXRlZF8pCi0gICAgICBuZXh0
X3ByaW1lID0gcHJlY2FsY19pbXBsXy0+R2V0TmV4dFByaW1lKHApOwotCi0gICAgcmV0dXJuIG5l
eHRfcHJpbWUgIT0gLTEgPyBuZXh0X3ByaW1lIDogb25fdGhlX2ZseV9pbXBsXy0+R2V0TmV4dFBy
aW1lKHApOwotICB9Ci0KLSBwcml2YXRlOgotICBPblRoZUZseVByaW1lVGFibGUqIG9uX3RoZV9m
bHlfaW1wbF87Ci0gIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlKiBwcmVjYWxjX2ltcGxfOwotICBp
bnQgbWF4X3ByZWNhbGN1bGF0ZWRfOwotfTsKLQotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0V2l0aFBh
cmFtOwotdXNpbmcgOjp0ZXN0aW5nOjpCb29sOwotdXNpbmcgOjp0ZXN0aW5nOjpWYWx1ZXM7Ci11
c2luZyA6OnRlc3Rpbmc6OkNvbWJpbmU7Ci0KLS8vIFRvIHRlc3QgYWxsIGNvZGUgcGF0aHMgZm9y
IEh5YnJpZFByaW1lVGFibGUgd2UgbXVzdCB0ZXN0IGl0IHdpdGggbnVtYmVycwotLy8gYm90aCB3
aXRoaW4gYW5kIG91dHNpZGUgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGUncyBjYXBhY2l0eSBhbmQg
YWxzbyB3aXRoCi0vLyBQcmVDYWxjdWxhdGVkUHJpbWVUYWJsZSBkaXNhYmxlZC4gV2UgZG8gdGhp
cyBieSBkZWZpbmluZyBmaXh0dXJlIHdoaWNoIHdpbGwKLS8vIGFjY2VwdCBkaWZmZXJlbnQgY29t
YmluYXRpb25zIG9mIHBhcmFtZXRlcnMgZm9yIGluc3RhbnRpYXRpbmcgYQotLy8gSHlicmlkUHJp
bWVUYWJsZSBpbnN0YW5jZS4KLWNsYXNzIFByaW1lVGFibGVUZXN0IDogcHVibGljIFRlc3RXaXRo
UGFyYW08IDo6dGVzdGluZzo6dHVwbGU8Ym9vbCwgaW50PiA+IHsKLSBwcm90ZWN0ZWQ6Ci0gIHZp
cnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICAvLyBUaGlzIGNhbiBiZSB3cml0dGVuIGFzCi0gICAg
Ly8KLSAgICAvLyBib29sIGZvcmNlX29uX3RoZV9mbHk7Ci0gICAgLy8gaW50IG1heF9wcmVjYWxj
dWxhdGVkOwotICAgIC8vIHRpZShmb3JjZV9vbl90aGVfZmx5LCBtYXhfcHJlY2FsY3VsYXRlZCkg
PSBHZXRQYXJhbSgpOwotICAgIC8vCi0gICAgLy8gb25jZSB0aGUgR29vZ2xlIEMrKyBTdHlsZSBH
dWlkZSBhbGxvd3MgdXNlIG9mIDo6c3RkOjp0cjE6OnRpZS4KLSAgICAvLwotICAgIGJvb2wgZm9y
Y2Vfb25fdGhlX2ZseSA9IDo6dGVzdGluZzo6Z2V0PDA+KEdldFBhcmFtKCkpOwotICAgIGludCBt
YXhfcHJlY2FsY3VsYXRlZCA9IDo6dGVzdGluZzo6Z2V0PDE+KEdldFBhcmFtKCkpOwotICAgIHRh
YmxlXyA9IG5ldyBIeWJyaWRQcmltZVRhYmxlKGZvcmNlX29uX3RoZV9mbHksIG1heF9wcmVjYWxj
dWxhdGVkKTsKLSAgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgZGVsZXRlIHRh
YmxlXzsKLSAgICB0YWJsZV8gPSBOVUxMOwotICB9Ci0gIEh5YnJpZFByaW1lVGFibGUqIHRhYmxl
XzsKLX07Ci0KLVRFU1RfUChQcmltZVRhYmxlVGVzdCwgUmV0dXJuc0ZhbHNlRm9yTm9uUHJpbWVz
KSB7Ci0gIC8vIEluc2lkZSB0aGUgdGVzdCBib2R5LCB5b3UgY2FuIHJlZmVyIHRvIHRoZSB0ZXN0
IHBhcmFtZXRlciBieSBHZXRQYXJhbSgpLgotICAvLyBJbiB0aGlzIGNhc2UsIHRoZSB0ZXN0IHBh
cmFtZXRlciBpcyBhIFByaW1lVGFibGUgaW50ZXJmYWNlIHBvaW50ZXIgd2hpY2gKLSAgLy8gd2Ug
Y2FuIHVzZSBkaXJlY3RseS4KLSAgLy8gUGxlYXNlIG5vdGUgdGhhdCB5b3UgY2FuIGFsc28gc2F2
ZSBpdCBpbiB0aGUgZml4dHVyZSdzIFNldFVwKCkgbWV0aG9kCi0gIC8vIG9yIGNvbnN0cnVjdG9y
IGFuZCB1c2Ugc2F2ZWQgY29weSBpbiB0aGUgdGVzdHMuCi0KLSAgRVhQRUNUX0ZBTFNFKHRhYmxl
Xy0+SXNQcmltZSgtNSkpOwotICBFWFBFQ1RfRkFMU0UodGFibGVfLT5Jc1ByaW1lKDApKTsKLSAg
RVhQRUNUX0ZBTFNFKHRhYmxlXy0+SXNQcmltZSgxKSk7Ci0gIEVYUEVDVF9GQUxTRSh0YWJsZV8t
PklzUHJpbWUoNCkpOwotICBFWFBFQ1RfRkFMU0UodGFibGVfLT5Jc1ByaW1lKDYpKTsKLSAgRVhQ
RUNUX0ZBTFNFKHRhYmxlXy0+SXNQcmltZSgxMDApKTsKLX0KLQotVEVTVF9QKFByaW1lVGFibGVU
ZXN0LCBSZXR1cm5zVHJ1ZUZvclByaW1lcykgewotICBFWFBFQ1RfVFJVRSh0YWJsZV8tPklzUHJp
bWUoMikpOwotICBFWFBFQ1RfVFJVRSh0YWJsZV8tPklzUHJpbWUoMykpOwotICBFWFBFQ1RfVFJV
RSh0YWJsZV8tPklzUHJpbWUoNSkpOwotICBFWFBFQ1RfVFJVRSh0YWJsZV8tPklzUHJpbWUoNykp
OwotICBFWFBFQ1RfVFJVRSh0YWJsZV8tPklzUHJpbWUoMTEpKTsKLSAgRVhQRUNUX1RSVUUodGFi
bGVfLT5Jc1ByaW1lKDEzMSkpOwotfQotCi1URVNUX1AoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5l
eHRQcmltZSkgewotICBFWFBFQ1RfRVEoMiwgdGFibGVfLT5HZXROZXh0UHJpbWUoMCkpOwotICBF
WFBFQ1RfRVEoMywgdGFibGVfLT5HZXROZXh0UHJpbWUoMikpOwotICBFWFBFQ1RfRVEoNSwgdGFi
bGVfLT5HZXROZXh0UHJpbWUoMykpOwotICBFWFBFQ1RfRVEoNywgdGFibGVfLT5HZXROZXh0UHJp
bWUoNSkpOwotICBFWFBFQ1RfRVEoMTEsIHRhYmxlXy0+R2V0TmV4dFByaW1lKDcpKTsKLSAgRVhQ
RUNUX0VRKDEzMSwgdGFibGVfLT5HZXROZXh0UHJpbWUoMTI4KSk7Ci19Ci0KLS8vIEluIG9yZGVy
IHRvIHJ1biB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzLCB5b3UgbmVlZCB0byBpbnN0YW50aWF0
ZSB0aGVtLAotLy8gb3IgYmluZCB0aGVtIHRvIGEgbGlzdCBvZiB2YWx1ZXMgd2hpY2ggd2lsbCBi
ZSB1c2VkIGFzIHRlc3QgcGFyYW1ldGVycy4KLS8vIFlvdSBjYW4gaW5zdGFudGlhdGUgdGhlbSBp
biBhIGRpZmZlcmVudCB0cmFuc2xhdGlvbiBtb2R1bGUsIG9yIGV2ZW4KLS8vIGluc3RhbnRpYXRl
IHRoZW0gc2V2ZXJhbCB0aW1lcy4KLS8vCi0vLyBIZXJlLCB3ZSBpbnN0YW50aWF0ZSBvdXIgdGVz
dHMgd2l0aCBhIGxpc3Qgb2YgcGFyYW1ldGVycy4gV2UgbXVzdCBjb21iaW5lCi0vLyBhbGwgdmFy
aWF0aW9ucyBvZiB0aGUgYm9vbGVhbiBmbGFnIHN1cHByZXNzaW5nIFByZWNhbGNQcmltZVRhYmxl
IGFuZCBzb21lCi0vLyBtZWFuaW5nZnVsIHZhbHVlcyBmb3IgdGVzdHMuIFdlIGNob29zZSBhIHNt
YWxsIHZhbHVlICgxKSwgYW5kIGEgdmFsdWUgdGhhdAotLy8gd2lsbCBwdXQgc29tZSBvZiB0aGUg
dGVzdGVkIG51bWJlcnMgYmV5b25kIHRoZSBjYXBhYmlsaXR5IG9mIHRoZQotLy8gUHJlY2FsY1By
aW1lVGFibGUgaW5zdGFuY2UgYW5kIHNvbWUgaW5zaWRlIGl0ICgxMCkuIENvbWJpbmUgd2lsbCBw
cm9kdWNlIGFsbAotLy8gcG9zc2libGUgY29tYmluYXRpb25zLgotSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AoTWVhbmluZ2Z1bFRlc3RQYXJhbWV0ZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAg
UHJpbWVUYWJsZVRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5lKEJvb2woKSwg
VmFsdWVzKDEsIDEwKSkpOwotCi0jZWxzZQotCi0vLyBHb29nbGUgVGVzdCBtYXkgbm90IHN1cHBv
cnQgQ29tYmluZSgpIHdpdGggc29tZSBjb21waWxlcnMuIElmIHdlCi0vLyB1c2UgY29uZGl0aW9u
YWwgY29tcGlsYXRpb24gdG8gY29tcGlsZSBvdXQgYWxsIGNvZGUgcmVmZXJyaW5nIHRvCi0vLyB0
aGUgZ3Rlc3RfbWFpbiBsaWJyYXJ5LCBNU1ZDIGxpbmtlciB3aWxsIG5vdCBsaW5rIHRoYXQgbGli
cmFyeSBhdAotLy8gYWxsIGFuZCBjb25zZXF1ZW50bHkgY29tcGxhaW4gYWJvdXQgbWlzc2luZyBl
bnRyeSBwb2ludCBkZWZpbmVkIGluCi0vLyB0aGF0IGxpYnJhcnkgKGZhdGFsIGVycm9yIExOSzE1
NjE6IGVudHJ5IHBvaW50IG11c3QgYmUKLS8vIGRlZmluZWQpLiBUaGlzIGR1bW15IHRlc3Qga2Vl
cHMgZ3Rlc3RfbWFpbiBsaW5rZWQgaW4uCi1URVNUKER1bW15VGVzdCwgQ29tYmluZUlzTm90U3Vw
cG9ydGVkT25UaGlzUGxhdGZvcm0pIHt9Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0NPTUJJTkUK
LX0gIC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
c2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
c2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3NTU4NGJiMDRhOGU2MmNiNzJlZDY0NDE0MTRjMzEzZjU2M2JkMTVhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDE1NyAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0v
LyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
Ly8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1
dGhvcjogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBMb3NldikKLQotLy8gVGhpcyBzYW1wbGUgc2hv
d3MgaG93IHRvIHVzZSBHb29nbGUgVGVzdCBsaXN0ZW5lciBBUEkgdG8gaW1wbGVtZW50Ci0vLyBh
biBhbHRlcm5hdGl2ZSBjb25zb2xlIG91dHB1dCBhbmQgaG93IHRvIHVzZSB0aGUgVW5pdFRlc3Qg
cmVmbGVjdGlvbiBBUEkKLS8vIHRvIGVudW1lcmF0ZSB0ZXN0IGNhc2VzIGFuZCB0ZXN0cyBhbmQg
dG8gaW5zcGVjdCB0aGVpciByZXN1bHRzLgotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLQotI2luY2x1
ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLXVzaW5nIDo6dGVzdGluZzo6RW1wdHlUZXN0RXZlbnRMaXN0
ZW5lcjsKLXVzaW5nIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3Q7Ci11c2luZyA6OnRlc3Rpbmc6
OlRlc3Q7Ci11c2luZyA6OnRlc3Rpbmc6OlRlc3RDYXNlOwotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0
RXZlbnRMaXN0ZW5lcnM7Ci11c2luZyA6OnRlc3Rpbmc6OlRlc3RJbmZvOwotdXNpbmcgOjp0ZXN0
aW5nOjpUZXN0UGFydFJlc3VsdDsKLXVzaW5nIDo6dGVzdGluZzo6VW5pdFRlc3Q7Ci1uYW1lc3Bh
Y2UgewotLy8gUHJvdmlkZXMgYWx0ZXJuYXRpdmUgb3V0cHV0IG1vZGUgd2hpY2ggcHJvZHVjZXMg
bWluaW1hbCBhbW91bnQgb2YKLS8vIGluZm9ybWF0aW9uIGFib3V0IHRlc3RzLgotY2xhc3MgVGVy
c2VQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewotIHByaXZhdGU6Ci0g
IC8vIENhbGxlZCBiZWZvcmUgYW55IHRlc3QgYWN0aXZpdHkgc3RhcnRzLgotICB2aXJ0dWFsIHZv
aWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0X3Rlc3QgKi8pIHt9
Ci0KLSAgLy8gQ2FsbGVkIGFmdGVyIGFsbCB0ZXN0IGFjdGl2aXRpZXMgaGF2ZSBlbmRlZC4KLSAg
dmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkg
ewotICAgIGZwcmludGYoc3Rkb3V0LCAiVEVTVCAlc1xuIiwgdW5pdF90ZXN0LlBhc3NlZCgpID8g
IlBBU1NFRCIgOiAiRkFJTEVEIik7Ci0gICAgZmZsdXNoKHN0ZG91dCk7Ci0gIH0KLQotICAvLyBD
YWxsZWQgYmVmb3JlIGEgdGVzdCBzdGFydHMuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RTdGFydChj
b25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gICAgZnByaW50ZihzdGRvdXQsCi0gICAgICAg
ICAgICAiKioqIFRlc3QgJXMuJXMgc3RhcnRpbmcuXG4iLAotICAgICAgICAgICAgdGVzdF9pbmZv
LnRlc3RfY2FzZV9uYW1lKCksCi0gICAgICAgICAgICB0ZXN0X2luZm8ubmFtZSgpKTsKLSAgICBm
Zmx1c2goc3Rkb3V0KTsKLSAgfQotCi0gIC8vIENhbGxlZCBhZnRlciBhIGZhaWxlZCBhc3NlcnRp
b24gb3IgYSBTVUNDRUVEKCkgaW52b2NhdGlvbi4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFBhcnRS
ZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIHsKLSAgICBmcHJp
bnRmKHN0ZG91dCwKLSAgICAgICAgICAgICIlcyBpbiAlczolZFxuJXNcbiIsCi0gICAgICAgICAg
ICB0ZXN0X3BhcnRfcmVzdWx0LmZhaWxlZCgpID8gIioqKiBGYWlsdXJlIiA6ICJTdWNjZXNzIiwK
LSAgICAgICAgICAgIHRlc3RfcGFydF9yZXN1bHQuZmlsZV9uYW1lKCksCi0gICAgICAgICAgICB0
ZXN0X3BhcnRfcmVzdWx0LmxpbmVfbnVtYmVyKCksCi0gICAgICAgICAgICB0ZXN0X3BhcnRfcmVz
dWx0LnN1bW1hcnkoKSk7Ci0gICAgZmZsdXNoKHN0ZG91dCk7Ci0gIH0KLQotICAvLyBDYWxsZWQg
YWZ0ZXIgYSB0ZXN0IGVuZHMuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdElu
Zm8mIHRlc3RfaW5mbykgewotICAgIGZwcmludGYoc3Rkb3V0LAotICAgICAgICAgICAgIioqKiBU
ZXN0ICVzLiVzIGVuZGluZy5cbiIsCi0gICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25h
bWUoKSwKLSAgICAgICAgICAgIHRlc3RfaW5mby5uYW1lKCkpOwotICAgIGZmbHVzaChzdGRvdXQp
OwotICB9Ci19OyAgLy8gY2xhc3MgVGVyc2VQcmludGVyCi0KLVRFU1QoQ3VzdG9tT3V0cHV0VGVz
dCwgUHJpbnRzTWVzc2FnZSkgewotICBwcmludGYoIlByaW50aW5nIHNvbWV0aGluZyBmcm9tIHRo
ZSB0ZXN0IGJvZHkuLi5cbiIpOwotfQotCi1URVNUKEN1c3RvbU91dHB1dFRlc3QsIFN1Y2NlZWRz
KSB7Ci0gIFNVQ0NFRUQoKSA8PCAiU1VDQ0VFRCgpIGhhcyBiZWVuIGludm9rZWQgZnJvbSBoZXJl
IjsKLX0KLQotVEVTVChDdXN0b21PdXRwdXRUZXN0LCBGYWlscykgewotICBFWFBFQ1RfRVEoMSwg
MikKLSAgICAgIDw8ICJUaGlzIHRlc3QgZmFpbHMgaW4gb3JkZXIgdG8gZGVtb25zdHJhdGUgYWx0
ZXJuYXRpdmUgZmFpbHVyZSBtZXNzYWdlcyI7Ci19Ci19ICAvLyBuYW1lc3BhY2UKLQotaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIEluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2
KTsKLQotICBib29sIHRlcnNlX291dHB1dCA9IGZhbHNlOwotICBpZiAoYXJnYyA+IDEgJiYgc3Ry
Y21wKGFyZ3ZbMV0sICItLXRlcnNlX291dHB1dCIpID09IDAgKQotICAgIHRlcnNlX291dHB1dCA9
IHRydWU7Ci0gIGVsc2UKLSAgICBwcmludGYoIiVzXG4iLCAiUnVuIHRoaXMgcHJvZ3JhbSB3aXRo
IC0tdGVyc2Vfb3V0cHV0IHRvIGNoYW5nZSB0aGUgd2F5ICIKLSAgICAgICAgICAgIml0IHByaW50
cyBpdHMgb3V0cHV0LiIpOwotCi0gIFVuaXRUZXN0JiB1bml0X3Rlc3QgPSAqVW5pdFRlc3Q6Okdl
dEluc3RhbmNlKCk7Ci0KLSAgLy8gSWYgd2UgYXJlIGdpdmVuIHRoZSAtLXRlcnNlX291dHB1dCBj
b21tYW5kIGxpbmUgZmxhZywgc3VwcHJlc3NlcyB0aGUKLSAgLy8gc3RhbmRhcmQgb3V0cHV0IGFu
ZCBhdHRhY2hlcyBvd24gcmVzdWx0IHByaW50ZXIuCi0gIGlmICh0ZXJzZV9vdXRwdXQpIHsKLSAg
ICBUZXN0RXZlbnRMaXN0ZW5lcnMmIGxpc3RlbmVycyA9IHVuaXRfdGVzdC5saXN0ZW5lcnMoKTsK
LQotICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgY29uc29sZSBvdXRwdXQgbGlzdGVuZXIgZnJv
bSB0aGUgbGlzdCBzbyBpdCB3aWxsCi0gICAgLy8gbm90IHJlY2VpdmUgZXZlbnRzIGZyb20gR29v
Z2xlIFRlc3QgYW5kIHdvbid0IHByaW50IGFueSBvdXRwdXQuIFNpbmNlCi0gICAgLy8gdGhpcyBv
cGVyYXRpb24gdHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgbGlzdGVuZXIgdG8gdGhlIGNhbGxl
ciB3ZQotICAgIC8vIGhhdmUgdG8gZGVsZXRlIGl0IGFzIHdlbGwuCi0gICAgZGVsZXRlIGxpc3Rl
bmVycy5SZWxlYXNlKGxpc3RlbmVycy5kZWZhdWx0X3Jlc3VsdF9wcmludGVyKCkpOwotCi0gICAg
Ly8gQWRkcyB0aGUgY3VzdG9tIG91dHB1dCBsaXN0ZW5lciB0byB0aGUgbGlzdC4gSXQgd2lsbCBu
b3cgcmVjZWl2ZQotICAgIC8vIGV2ZW50cyBmcm9tIEdvb2dsZSBUZXN0IGFuZCBwcmludCB0aGUg
YWx0ZXJuYXRpdmUgb3V0cHV0LiBXZSBkb24ndAotICAgIC8vIGhhdmUgdG8gd29ycnkgYWJvdXQg
ZGVsZXRpbmcgaXQgc2luY2UgR29vZ2xlIFRlc3QgYXNzdW1lcyBvd25lcnNoaXAKLSAgICAvLyBv
dmVyIGl0IGFmdGVyIGFkZGluZyBpdCB0byB0aGUgbGlzdC4KLSAgICBsaXN0ZW5lcnMuQXBwZW5k
KG5ldyBUZXJzZVByaW50ZXIpOwotICB9Ci0gIGludCByZXRfdmFsID0gUlVOX0FMTF9URVNUUygp
OwotCi0gIC8vIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiB1c2luZyB0aGUgVW5pdFRlc3QgcmVmbGVj
dGlvbiBBUEkgdG8gaW5zcGVjdCB0ZXN0Ci0gIC8vIHJlc3VsdHMuIEhlcmUgd2UgZGlzY291bnQg
ZmFpbHVyZXMgZnJvbSB0aGUgdGVzdHMgd2UgZXhwZWN0ZWQgdG8gZmFpbC4KLSAgaW50IHVuZXhw
ZWN0ZWRseV9mYWlsZWRfdGVzdHMgPSAwOwotICBmb3IgKGludCBpID0gMDsgaSA8IHVuaXRfdGVz
dC50b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsgKytpKSB7Ci0gICAgY29uc3QgVGVzdENhc2UmIHRl
c3RfY2FzZSA9ICp1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSk7Ci0gICAgZm9yIChpbnQgaiA9IDA7
IGogPCB0ZXN0X2Nhc2UudG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsKLSAgICAgIGNvbnN0IFRl
c3RJbmZvJiB0ZXN0X2luZm8gPSAqdGVzdF9jYXNlLkdldFRlc3RJbmZvKGopOwotICAgICAgLy8g
Q291bnRzIGZhaWxlZCB0ZXN0cyB0aGF0IHdlcmUgbm90IG1lYW50IHRvIGZhaWwgKHRob3NlIHdp
dGhvdXQKLSAgICAgIC8vICdGYWlscycgaW4gdGhlIG5hbWUpLgotICAgICAgaWYgKHRlc3RfaW5m
by5yZXN1bHQoKS0+RmFpbGVkKCkgJiYKLSAgICAgICAgICBzdHJjbXAodGVzdF9pbmZvLm5hbWUo
KSwgIkZhaWxzIikgIT0gMCkgewotICAgICAgICB1bmV4cGVjdGVkbHlfZmFpbGVkX3Rlc3RzKys7
Ci0gICAgICB9Ci0gICAgfQotICB9Ci0KLSAgLy8gVGVzdCB0aGF0IHdlcmUgbWVhbnQgdG8gZmFp
bCBzaG91bGQgbm90IGFmZmVjdCB0aGUgdGVzdCBwcm9ncmFtIG91dGNvbWUuCi0gIGlmICh1bmV4
cGVjdGVkbHlfZmFpbGVkX3Rlc3RzID09IDApCi0gICAgcmV0X3ZhbCA9IDA7Ci0KLSAgcmV0dXJu
IHJldF92YWw7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zY3Jp
cHRzL2NvbW1vbi5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NjcmlwdHMvY29tbW9u
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzAzNDdhNzViZGZmMzE4ODA5Nzc0
NTAxNWE1ODAzNzY0YWQ3NDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NjcmlwdHMvY29tbW9uLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMyBHb29nbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIiIiU2hhcmVkIHV0
aWxpdGllcyBmb3Igd3JpdGluZyBzY3JpcHRzIGZvciBHb29nbGUgVGVzdC9Nb2NrLiIiIgotCi1f
X2F1dGhvcl9fID0gJ3dhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pJwotCi0KLWltcG9ydCBv
cwotaW1wb3J0IHJlCi0KLQotIyBNYXRjaGVzIHRoZSBsaW5lIGZyb20gJ3N2biBpbmZvIC4nIG91
dHB1dCB0aGF0IGRlc2NyaWJlcyB3aGF0IFNWTgotIyBwYXRoIHRoZSBjdXJyZW50IGxvY2FsIGRp
cmVjdG9yeSBjb3JyZXNwb25kcyB0by4gIEZvciBleGFtcGxlLCBpbgotIyBhIGdvb2dsZXRlc3Qg
U1ZOIHdvcmtzcGFjZSdzIHRydW5rL3Rlc3QgZGlyZWN0b3J5LCB0aGUgb3V0cHV0IHdpbGwgYmU6
Ci0jCi0jIFVSTDogaHR0cHM6Ly9nb29nbGV0ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVuay90
ZXN0Ci1fU1ZOX0lORk9fVVJMX1JFID0gcmUuY29tcGlsZShyJ15VUkw6IGh0dHBzOi8vKFx3Kylc
Lmdvb2dsZWNvZGVcLmNvbS9zdm4oLiopJykKLQotCi1kZWYgR2V0Q29tbWFuZE91dHB1dChjb21t
YW5kKToKLSAgIiIiUnVucyB0aGUgc2hlbGwgY29tbWFuZCBhbmQgcmV0dXJucyBpdHMgc3Rkb3V0
IGFzIGEgbGlzdCBvZiBsaW5lcy4iIiIKLQotICBmID0gb3MucG9wZW4oY29tbWFuZCwgJ3InKQot
ICBsaW5lcyA9IFtsaW5lLnN0cmlwKCkgZm9yIGxpbmUgaW4gZi5yZWFkbGluZXMoKV0KLSAgZi5j
bG9zZSgpCi0gIHJldHVybiBsaW5lcwotCi0KLWRlZiBHZXRTdm5JbmZvKCk6Ci0gICIiIlJldHVy
bnMgdGhlIHByb2plY3QgbmFtZSBhbmQgdGhlIGN1cnJlbnQgU1ZOIHdvcmtzcGFjZSdzIHJvb3Qg
cGF0aC4iIiIKLQotICBmb3IgbGluZSBpbiBHZXRDb21tYW5kT3V0cHV0KCdzdm4gaW5mbyAuJyk6
Ci0gICAgbSA9IF9TVk5fSU5GT19VUkxfUkUubWF0Y2gobGluZSkKLSAgICBpZiBtOgotICAgICAg
cHJvamVjdCA9IG0uZ3JvdXAoMSkgICMgZ29vZ2xldGVzdCBvciBnb29nbGVtb2NrCi0gICAgICBy
ZWxfcGF0aCA9IG0uZ3JvdXAoMikKLSAgICAgIHJvb3QgPSBvcy5wYXRoLnJlYWxwYXRoKHJlbF9w
YXRoLmNvdW50KCcvJykgKiAnLi4vJykKLSAgICAgIHJldHVybiBwcm9qZWN0LCByb290Ci0KLSAg
cmV0dXJuIE5vbmUsIE5vbmUKLQotCi1kZWYgR2V0U3ZuVHJ1bmsoKToKLSAgIiIiUmV0dXJucyB0
aGUgY3VycmVudCBTVk4gd29ya3NwYWNlJ3MgdHJ1bmsgcm9vdCBwYXRoLiIiIgotCi0gIF8sIHJv
b3QgPSBHZXRTdm5JbmZvKCkKLSAgcmV0dXJuIHJvb3QgKyAnL3RydW5rJyBpZiByb290IGVsc2Ug
Tm9uZQotCi0KLWRlZiBJc0luR1Rlc3RTdm4oKToKLSAgcHJvamVjdCwgXyA9IEdldFN2bkluZm8o
KQotICByZXR1cm4gcHJvamVjdCA9PSAnZ29vZ2xldGVzdCcKLQotCi1kZWYgSXNJbkdNb2NrU3Zu
KCk6Ci0gIHByb2plY3QsIF8gPSBHZXRTdm5JbmZvKCkKLSAgcmV0dXJuIHByb2plY3QgPT0gJ2dv
b2dsZW1vY2snCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zY3JpcHRz
L2Z1c2VfZ3Rlc3RfZmlsZXMucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zY3JpcHRz
L2Z1c2VfZ3Rlc3RfZmlsZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhNWM4
ZDM2N2ZhNjg3YTBmYjQyOGY5OGJlNjIwYmMwODJkNTYxOGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2Ny
aXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjUzICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiImZ1c2VfZ3Rl
c3RfZmlsZXMucHkgdjAuMi4wCi1GdXNlcyBHb29nbGUgVGVzdCBzb3VyY2UgY29kZSBpbnRvIGEg
LmggZmlsZSBhbmQgYSAuY2MgZmlsZS4KLQotU1lOT1BTSVMKLSAgICAgICBmdXNlX2d0ZXN0X2Zp
bGVzLnB5IFtHVEVTVF9ST09UX0RJUl0gT1VUUFVUX0RJUgotCi0gICAgICAgU2NhbnMgR1RFU1Rf
Uk9PVF9ESVIgZm9yIEdvb2dsZSBUZXN0IHNvdXJjZSBjb2RlLCBhbmQgZ2VuZXJhdGVzCi0gICAg
ICAgdHdvIGZpbGVzOiBPVVRQVVRfRElSL2d0ZXN0L2d0ZXN0LmggYW5kIE9VVFBVVF9ESVIvZ3Rl
c3QvZ3Rlc3QtYWxsLmNjLgotICAgICAgIFRoZW4geW91IGNhbiBidWlsZCB5b3VyIHRlc3RzIGJ5
IGFkZGluZyBPVVRQVVRfRElSIHRvIHRoZSBpbmNsdWRlCi0gICAgICAgc2VhcmNoIHBhdGggYW5k
IGxpbmtpbmcgd2l0aCBPVVRQVVRfRElSL2d0ZXN0L2d0ZXN0LWFsbC5jYy4gIFRoZXNlCi0gICAg
ICAgdHdvIGZpbGVzIGNvbnRhaW4gZXZlcnl0aGluZyB5b3UgbmVlZCB0byB1c2UgR29vZ2xlIFRl
c3QuICBIZW5jZQotICAgICAgIHlvdSBjYW4gImluc3RhbGwiIEdvb2dsZSBUZXN0IGJ5IGNvcHlp
bmcgdGhlbSB0byB3aGVyZXZlciB5b3Ugd2FudC4KLQotICAgICAgIEdURVNUX1JPT1RfRElSIGNh
biBiZSBvbWl0dGVkIGFuZCBkZWZhdWx0cyB0byB0aGUgcGFyZW50Ci0gICAgICAgZGlyZWN0b3J5
IG9mIHRoZSBkaXJlY3RvcnkgaG9sZGluZyB0aGlzIHNjcmlwdC4KLQotRVhBTVBMRVMKLSAgICAg
ICAuL2Z1c2VfZ3Rlc3RfZmlsZXMucHkgZnVzZWRfZ3Rlc3QKLSAgICAgICAuL2Z1c2VfZ3Rlc3Rf
ZmlsZXMucHkgcGF0aC90by91bnBhY2tlZC9ndGVzdCBmdXNlZF9ndGVzdAotCi1UaGlzIHRvb2wg
aXMgZXhwZXJpbWVudGFsLiAgSW4gcGFydGljdWxhciwgaXQgYXNzdW1lcyB0aGF0IHRoZXJlIGlz
IG5vCi1jb25kaXRpb25hbCBpbmNsdXNpb24gb2YgR29vZ2xlIFRlc3QgaGVhZGVycy4gIFBsZWFz
ZSByZXBvcnQgYW55Ci1wcm9ibGVtcyB0byBnb29nbGV0ZXN0ZnJhbWV3b3JrQGdvb2dsZWdyb3Vw
cy5jb20uICBZb3UgY2FuIHJlYWQKLWh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVz
dC9ibG9iL21hc3Rlci9nb29nbGV0ZXN0L2RvY3MvQWR2YW5jZWRHdWlkZS5tZCBmb3IKLW1vcmUg
aW5mb3JtYXRpb24uCi0iIiIKLQotX19hdXRob3JfXyA9ICd3YW5AZ29vZ2xlLmNvbSAoWmhhbnlv
bmcgV2FuKScKLQotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLXRyeToKLSAgZnJvbSBzZXRzIGltcG9y
dCBTZXQgYXMgc2V0ICAjIEZvciBQeXRob24gMi4zIGNvbXBhdGliaWxpdHkKLWV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgcGFzcwotaW1wb3J0IHN5cwotCi0jIFdlIGFzc3VtZSB0aGF0IHRoaXMgZmls
ZSBpcyBpbiB0aGUgc2NyaXB0cy8gZGlyZWN0b3J5IGluIHRoZSBHb29nbGUKLSMgVGVzdCByb290
IGRpcmVjdG9yeS4KLURFRkFVTFRfR1RFU1RfUk9PVF9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJykKLQotIyBSZWdleCBmb3IgbWF0Y2hpbmcgJyNpbmNs
dWRlICJndGVzdC8uLi4iJy4KLUlOQ0xVREVfR1RFU1RfRklMRV9SRUdFWCA9IHJlLmNvbXBpbGUo
cideXHMqI1xzKmluY2x1ZGVccyoiKGd0ZXN0Ly4rKSInKQotCi0jIFJlZ2V4IGZvciBtYXRjaGlu
ZyAnI2luY2x1ZGUgInNyYy8uLi4iJy4KLUlOQ0xVREVfU1JDX0ZJTEVfUkVHRVggPSByZS5jb21w
aWxlKHInXlxzKiNccyppbmNsdWRlXHMqIihzcmMvLispIicpCi0KLSMgV2hlcmUgdG8gZmluZCB0
aGUgc291cmNlIHNlZWQgZmlsZXMuCi1HVEVTVF9IX1NFRUQgPSAnaW5jbHVkZS9ndGVzdC9ndGVz
dC5oJwotR1RFU1RfU1BJX0hfU0VFRCA9ICdpbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oJwotR1RF
U1RfQUxMX0NDX1NFRUQgPSAnc3JjL2d0ZXN0LWFsbC5jYycKLQotIyBXaGVyZSB0byBwdXQgdGhl
IGdlbmVyYXRlZCBmaWxlcy4KLUdURVNUX0hfT1VUUFVUID0gJ2d0ZXN0L2d0ZXN0LmgnCi1HVEVT
VF9BTExfQ0NfT1VUUFVUID0gJ2d0ZXN0L2d0ZXN0LWFsbC5jYycKLQotCi1kZWYgVmVyaWZ5Rmls
ZUV4aXN0cyhkaXJlY3RvcnksIHJlbGF0aXZlX3BhdGgpOgotICAiIiJWZXJpZmllcyB0aGF0IHRo
ZSBnaXZlbiBmaWxlIGV4aXN0czsgYWJvcnRzIG9uIGZhaWx1cmUuCi0KLSAgcmVsYXRpdmVfcGF0
aCBpcyB0aGUgZmlsZSBwYXRoIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBkaXJlY3RvcnkuCi0gICIi
IgotCi0gIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oZGlyZWN0b3J5LCByZWxh
dGl2ZV9wYXRoKSk6Ci0gICAgcHJpbnQoJ0VSUk9SOiBDYW5ub3QgZmluZCAlcyBpbiBkaXJlY3Rv
cnkgJXMuJyAlIChyZWxhdGl2ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5KSkKLSAgICBwcmludCgnUGxlYXNlIGVp
dGhlciBzcGVjaWZ5IGEgdmFsaWQgcHJvamVjdCByb290IGRpcmVjdG9yeSAnCi0gICAgICAgICAg
J29yIG9taXQgaXQgb24gdGhlIGNvbW1hbmQgbGluZS4nKQotICAgIHN5cy5leGl0KDEpCi0KLQot
ZGVmIFZhbGlkYXRlR1Rlc3RSb290RGlyKGd0ZXN0X3Jvb3QpOgotICAiIiJNYWtlcyBzdXJlIGd0
ZXN0X3Jvb3QgcG9pbnRzIHRvIGEgdmFsaWQgZ3Rlc3Qgcm9vdCBkaXJlY3RvcnkuCi0KLSAgVGhl
IGZ1bmN0aW9uIGFib3J0cyB0aGUgcHJvZ3JhbSBvbiBmYWlsdXJlLgotICAiIiIKLQotICBWZXJp
ZnlGaWxlRXhpc3RzKGd0ZXN0X3Jvb3QsIEdURVNUX0hfU0VFRCkKLSAgVmVyaWZ5RmlsZUV4aXN0
cyhndGVzdF9yb290LCBHVEVTVF9BTExfQ0NfU0VFRCkKLQotCi1kZWYgVmVyaWZ5T3V0cHV0Rmls
ZShvdXRwdXRfZGlyLCByZWxhdGl2ZV9wYXRoKToKLSAgIiIiVmVyaWZpZXMgdGhhdCB0aGUgZ2l2
ZW4gb3V0cHV0IGZpbGUgcGF0aCBpcyB2YWxpZC4KLQotICByZWxhdGl2ZV9wYXRoIGlzIHJlbGF0
aXZlIHRvIHRoZSBvdXRwdXRfZGlyIGRpcmVjdG9yeS4KLSAgIiIiCi0KLSAgIyBNYWtlcyBzdXJl
IHRoZSBvdXRwdXQgZmlsZSBlaXRoZXIgZG9lc24ndCBleGlzdCBvciBjYW4gYmUgb3ZlcndyaXR0
ZW4uCi0gIG91dHB1dF9maWxlID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsIHJlbGF0aXZlX3Bh
dGgpCi0gIGlmIG9zLnBhdGguZXhpc3RzKG91dHB1dF9maWxlKToKLSAgICAjIFRPRE8od2FuQGdv
b2dsZS5jb20pOiBUaGUgZm9sbG93aW5nIHVzZXItaW50ZXJhY3Rpb24gZG9lc24ndAotICAgICMg
d29yayB3aXRoIGF1dG9tYXRlZCBwcm9jZXNzZXMuICBXZSBzaG91bGQgcHJvdmlkZSBhIHdheSBm
b3IgdGhlCi0gICAgIyBNYWtlZmlsZSB0byBmb3JjZSBvdmVyd3JpdGluZyB0aGUgZmlsZXMuCi0g
ICAgcHJpbnQoJyVzIGFscmVhZHkgZXhpc3RzIGluIGRpcmVjdG9yeSAlcyAtIG92ZXJ3cml0ZSBp
dD8gKHkvTikgJyAlCi0gICAgICAgICAgKHJlbGF0aXZlX3BhdGgsIG91dHB1dF9kaXIpKQotICAg
IGFuc3dlciA9IHN5cy5zdGRpbi5yZWFkbGluZSgpLnN0cmlwKCkKLSAgICBpZiBhbnN3ZXIgbm90
IGluIFsneScsICdZJ106Ci0gICAgICBwcmludCgnQUJPUlRFRC4nKQotICAgICAgc3lzLmV4aXQo
MSkKLQotICAjIE1ha2VzIHN1cmUgdGhlIGRpcmVjdG9yeSBob2xkaW5nIHRoZSBvdXRwdXQgZmls
ZSBleGlzdHM7IGNyZWF0ZXMKLSAgIyBpdCBhbmQgYWxsIGl0cyBhbmNlc3RvcnMgaWYgbmVjZXNz
YXJ5LgotICBwYXJlbnRfZGlyZWN0b3J5ID0gb3MucGF0aC5kaXJuYW1lKG91dHB1dF9maWxlKQot
ICBpZiBub3Qgb3MucGF0aC5pc2RpcihwYXJlbnRfZGlyZWN0b3J5KToKLSAgICBvcy5tYWtlZGly
cyhwYXJlbnRfZGlyZWN0b3J5KQotCi0KLWRlZiBWYWxpZGF0ZU91dHB1dERpcihvdXRwdXRfZGly
KToKLSAgIiIiTWFrZXMgc3VyZSBvdXRwdXRfZGlyIHBvaW50cyB0byBhIHZhbGlkIG91dHB1dCBk
aXJlY3RvcnkuCi0KLSAgVGhlIGZ1bmN0aW9uIGFib3J0cyB0aGUgcHJvZ3JhbSBvbiBmYWlsdXJl
LgotICAiIiIKLQotICBWZXJpZnlPdXRwdXRGaWxlKG91dHB1dF9kaXIsIEdURVNUX0hfT1VUUFVU
KQotICBWZXJpZnlPdXRwdXRGaWxlKG91dHB1dF9kaXIsIEdURVNUX0FMTF9DQ19PVVRQVVQpCi0K
LQotZGVmIEZ1c2VHVGVzdEgoZ3Rlc3Rfcm9vdCwgb3V0cHV0X2Rpcik6Ci0gICIiIlNjYW5zIGZv
bGRlciBndGVzdF9yb290IHRvIGdlbmVyYXRlIGd0ZXN0L2d0ZXN0LmggaW4gb3V0cHV0X2Rpci4i
IiIKLQotICBvdXRwdXRfZmlsZSA9IG9wZW4ob3MucGF0aC5qb2luKG91dHB1dF9kaXIsIEdURVNU
X0hfT1VUUFVUKSwgJ3cnKQotICBwcm9jZXNzZWRfZmlsZXMgPSBzZXQoKSAgIyBIb2xkcyBhbGwg
Z3Rlc3QgaGVhZGVycyB3ZSd2ZSBwcm9jZXNzZWQuCi0KLSAgZGVmIFByb2Nlc3NGaWxlKGd0ZXN0
X2hlYWRlcl9wYXRoKToKLSAgICAiIiJQcm9jZXNzZXMgdGhlIGdpdmVuIGd0ZXN0IGhlYWRlciBm
aWxlLiIiIgotCi0gICAgIyBXZSBkb24ndCBwcm9jZXNzIHRoZSBzYW1lIGhlYWRlciB0d2ljZS4K
LSAgICBpZiBndGVzdF9oZWFkZXJfcGF0aCBpbiBwcm9jZXNzZWRfZmlsZXM6Ci0gICAgICByZXR1
cm4KLQotICAgIHByb2Nlc3NlZF9maWxlcy5hZGQoZ3Rlc3RfaGVhZGVyX3BhdGgpCi0KLSAgICAj
IFJlYWRzIGVhY2ggbGluZSBpbiB0aGUgZ2l2ZW4gZ3Rlc3QgaGVhZGVyLgotICAgIGZvciBsaW5l
IGluIG9wZW4ob3MucGF0aC5qb2luKGd0ZXN0X3Jvb3QsIGd0ZXN0X2hlYWRlcl9wYXRoKSwgJ3In
KToKLSAgICAgIG0gPSBJTkNMVURFX0dURVNUX0ZJTEVfUkVHRVgubWF0Y2gobGluZSkKLSAgICAg
IGlmIG06Ci0gICAgICAgICMgSXQncyAnI2luY2x1ZGUgImd0ZXN0Ly4uLiInIC0gbGV0J3MgcHJv
Y2VzcyBpdCByZWN1cnNpdmVseS4KLSAgICAgICAgUHJvY2Vzc0ZpbGUoJ2luY2x1ZGUvJyArIG0u
Z3JvdXAoMSkpCi0gICAgICBlbHNlOgotICAgICAgICAjIE90aGVyd2lzZSB3ZSBjb3B5IHRoZSBs
aW5lIHVuY2hhbmdlZCB0byB0aGUgb3V0cHV0IGZpbGUuCi0gICAgICAgIG91dHB1dF9maWxlLndy
aXRlKGxpbmUpCi0KLSAgUHJvY2Vzc0ZpbGUoR1RFU1RfSF9TRUVEKQotICBvdXRwdXRfZmlsZS5j
bG9zZSgpCi0KLQotZGVmIEZ1c2VHVGVzdEFsbENjVG9GaWxlKGd0ZXN0X3Jvb3QsIG91dHB1dF9m
aWxlKToKLSAgIiIiU2NhbnMgZm9sZGVyIGd0ZXN0X3Jvb3QgdG8gZ2VuZXJhdGUgZ3Rlc3QvZ3Rl
c3QtYWxsLmNjIGluIG91dHB1dF9maWxlLiIiIgotCi0gIHByb2Nlc3NlZF9maWxlcyA9IHNldCgp
Ci0KLSAgZGVmIFByb2Nlc3NGaWxlKGd0ZXN0X3NvdXJjZV9maWxlKToKLSAgICAiIiJQcm9jZXNz
ZXMgdGhlIGdpdmVuIGd0ZXN0IHNvdXJjZSBmaWxlLiIiIgotCi0gICAgIyBXZSBkb24ndCBwcm9j
ZXNzIHRoZSBzYW1lICNpbmNsdWRlZCBmaWxlIHR3aWNlLgotICAgIGlmIGd0ZXN0X3NvdXJjZV9m
aWxlIGluIHByb2Nlc3NlZF9maWxlczoKLSAgICAgIHJldHVybgotCi0gICAgcHJvY2Vzc2VkX2Zp
bGVzLmFkZChndGVzdF9zb3VyY2VfZmlsZSkKLQotICAgICMgUmVhZHMgZWFjaCBsaW5lIGluIHRo
ZSBnaXZlbiBndGVzdCBzb3VyY2UgZmlsZS4KLSAgICBmb3IgbGluZSBpbiBvcGVuKG9zLnBhdGgu
am9pbihndGVzdF9yb290LCBndGVzdF9zb3VyY2VfZmlsZSksICdyJyk6Ci0gICAgICBtID0gSU5D
TFVERV9HVEVTVF9GSUxFX1JFR0VYLm1hdGNoKGxpbmUpCi0gICAgICBpZiBtOgotICAgICAgICBp
ZiAnaW5jbHVkZS8nICsgbS5ncm91cCgxKSA9PSBHVEVTVF9TUElfSF9TRUVEOgotICAgICAgICAg
ICMgSXQncyAnI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXNwaS5oIicuICBUaGlzIGZpbGUgaXMgbm90
Ci0gICAgICAgICAgIyAjaW5jbHVkZWQgYnkgImd0ZXN0L2d0ZXN0LmgiLCBzbyB3ZSBuZWVkIHRv
IHByb2Nlc3MgaXQuCi0gICAgICAgICAgUHJvY2Vzc0ZpbGUoR1RFU1RfU1BJX0hfU0VFRCkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAjIEl0J3MgJyNpbmNsdWRlICJndGVzdC9mb28uaCInIHdo
ZXJlIGZvbyBpcyBub3QgZ3Rlc3Qtc3BpLgotICAgICAgICAgICMgV2UgdHJlYXQgaXQgYXMgJyNp
bmNsdWRlICJndGVzdC9ndGVzdC5oIicsIGFzIGFsbCBvdGhlcgotICAgICAgICAgICMgZ3Rlc3Qg
aGVhZGVycyBhcmUgYmVpbmcgZnVzZWQgaW50byBndGVzdC5oIGFuZCBjYW5ub3QgYmUKLSAgICAg
ICAgICAjICNpbmNsdWRlZCBkaXJlY3RseS4KLQotICAgICAgICAgICMgVGhlcmUgaXMgbm8gbmVl
ZCB0byAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIgbW9yZSB0aGFuIG9uY2UuCi0gICAgICAgICAg
aWYgbm90IEdURVNUX0hfU0VFRCBpbiBwcm9jZXNzZWRfZmlsZXM6Ci0gICAgICAgICAgICBwcm9j
ZXNzZWRfZmlsZXMuYWRkKEdURVNUX0hfU0VFRCkKLSAgICAgICAgICAgIG91dHB1dF9maWxlLndy
aXRlKCcjaW5jbHVkZSAiJXMiXG4nICUgKEdURVNUX0hfT1VUUFVULCkpCi0gICAgICBlbHNlOgot
ICAgICAgICBtID0gSU5DTFVERV9TUkNfRklMRV9SRUdFWC5tYXRjaChsaW5lKQotICAgICAgICBp
ZiBtOgotICAgICAgICAgICMgSXQncyAnI2luY2x1ZGUgInNyYy9mb28iJyAtIGxldCdzIHByb2Nl
c3MgaXQgcmVjdXJzaXZlbHkuCi0gICAgICAgICAgUHJvY2Vzc0ZpbGUobS5ncm91cCgxKSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICBvdXRwdXRfZmlsZS53cml0ZShsaW5lKQotCi0gIFByb2Nl
c3NGaWxlKEdURVNUX0FMTF9DQ19TRUVEKQotCi0KLWRlZiBGdXNlR1Rlc3RBbGxDYyhndGVzdF9y
b290LCBvdXRwdXRfZGlyKToKLSAgIiIiU2NhbnMgZm9sZGVyIGd0ZXN0X3Jvb3QgdG8gZ2VuZXJh
dGUgZ3Rlc3QvZ3Rlc3QtYWxsLmNjIGluIG91dHB1dF9kaXIuIiIiCi0KLSAgb3V0cHV0X2ZpbGUg
PSBvcGVuKG9zLnBhdGguam9pbihvdXRwdXRfZGlyLCBHVEVTVF9BTExfQ0NfT1VUUFVUKSwgJ3cn
KQotICBGdXNlR1Rlc3RBbGxDY1RvRmlsZShndGVzdF9yb290LCBvdXRwdXRfZmlsZSkKLSAgb3V0
cHV0X2ZpbGUuY2xvc2UoKQotCi0KLWRlZiBGdXNlR1Rlc3QoZ3Rlc3Rfcm9vdCwgb3V0cHV0X2Rp
cik6Ci0gICIiIkZ1c2VzIGd0ZXN0LmggYW5kIGd0ZXN0LWFsbC5jYy4iIiIKLQotICBWYWxpZGF0
ZUdUZXN0Um9vdERpcihndGVzdF9yb290KQotICBWYWxpZGF0ZU91dHB1dERpcihvdXRwdXRfZGly
KQotCi0gIEZ1c2VHVGVzdEgoZ3Rlc3Rfcm9vdCwgb3V0cHV0X2RpcikKLSAgRnVzZUdUZXN0QWxs
Q2MoZ3Rlc3Rfcm9vdCwgb3V0cHV0X2RpcikKLQotCi1kZWYgbWFpbigpOgotICBhcmdjID0gbGVu
KHN5cy5hcmd2KQotICBpZiBhcmdjID09IDI6Ci0gICAgIyBmdXNlX2d0ZXN0X2ZpbGVzLnB5IE9V
VFBVVF9ESVIKLSAgICBGdXNlR1Rlc3QoREVGQVVMVF9HVEVTVF9ST09UX0RJUiwgc3lzLmFyZ3Zb
MV0pCi0gIGVsaWYgYXJnYyA9PSAzOgotICAgICMgZnVzZV9ndGVzdF9maWxlcy5weSBHVEVTVF9S
T09UX0RJUiBPVVRQVVRfRElSCi0gICAgRnVzZUdUZXN0KHN5cy5hcmd2WzFdLCBzeXMuYXJndlsy
XSkKLSAgZWxzZToKLSAgICBwcmludChfX2RvY19fKQotICAgIHN5cy5leGl0KDEpCi0KLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRf
cGFydHkvZ29vZ2xldGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9wcmVkX2ltcGwucHkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9wcmVkX2ltcGwucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlN2FiMDQyZWFjYmExMzhhMmIyYTE3ODFhNzBiNzU0
YTdhYzI1YzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy9nZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNzMwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgot
IwotIyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiImdlbl9ndGVzdF9wcmVkX2ltcGwucHkgdjAuMQotCi1H
ZW5lcmF0ZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdvb2dsZSBUZXN0IHByZWRpY2F0ZSBhc3Nl
cnRpb25zIGFuZAotYWNjb21wYW55aW5nIHRlc3RzLgotCi1Vc2FnZToKLQotICBnZW5fZ3Rlc3Rf
cHJlZF9pbXBsLnB5IE1BWF9BUklUWQotCi13aGVyZSBNQVhfQVJJVFkgaXMgYSBwb3NpdGl2ZSBp
bnRlZ2VyLgotCi1UaGUgY29tbWFuZCBnZW5lcmF0ZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHVw
LXRvIE1BWF9BUklUWS1hcnkKLXByZWRpY2F0ZSBhc3NlcnRpb25zLCBhbmQgd3JpdGVzIGl0IHRv
IGZpbGUgZ3Rlc3RfcHJlZF9pbXBsLmggaW4gdGhlCi1kaXJlY3Rvcnkgd2hlcmUgdGhlIHNjcmlw
dCBpcy4gIEl0IGFsc28gZ2VuZXJhdGVzIHRoZSBhY2NvbXBhbnlpbmcKLXVuaXQgdGVzdCBpbiBm
aWxlIGd0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYy4KLSIiIgotCi1fX2F1dGhvcl9fID0gJ3dh
bkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pJwotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWlt
cG9ydCB0aW1lCi0KLSMgV2hlcmUgdGhpcyBzY3JpcHQgaXMuCi1TQ1JJUFRfRElSID0gb3MucGF0
aC5kaXJuYW1lKHN5cy5hcmd2WzBdKQotCi0jIFdoZXJlIHRvIHN0b3JlIHRoZSBnZW5lcmF0ZWQg
aGVhZGVyLgotSEVBREVSID0gb3MucGF0aC5qb2luKFNDUklQVF9ESVIsICcuLi9pbmNsdWRlL2d0
ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oJykKLQotIyBXaGVyZSB0byBzdG9yZSB0aGUgZ2VuZXJhdGVk
IHVuaXQgdGVzdC4KLVVOSVRfVEVTVCA9IG9zLnBhdGguam9pbihTQ1JJUFRfRElSLCAnLi4vdGVz
dC9ndGVzdF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MnKQotCi0KLWRlZiBIZWFkZXJQcmVhbWJsZShu
KToKLSAgIiIiUmV0dXJucyB0aGUgcHJlYW1ibGUgZm9yIHRoZSBoZWFkZXIgZmlsZS4KLQotICBB
cmdzOgotICAgIG46ICB0aGUgbWF4aW11bSBhcml0eSBvZiB0aGUgcHJlZGljYXRlIG1hY3JvcyB0
byBiZSBnZW5lcmF0ZWQuCi0gICIiIgotCi0gICMgQSBtYXAgdGhhdCBkZWZpbmVzIHRoZSB2YWx1
ZXMgdXNlZCBpbiB0aGUgcHJlYW1ibGUgdGVtcGxhdGUuCi0gIERFRlMgPSB7Ci0gICAgJ3RvZGF5
JyA6IHRpbWUuc3RyZnRpbWUoJyVtLyVkLyVZJyksCi0gICAgJ3llYXInIDogdGltZS5zdHJmdGlt
ZSgnJVknKSwKLSAgICAnY29tbWFuZCcgOiAnJXMgJXMnICUgKG9zLnBhdGguYmFzZW5hbWUoc3lz
LmFyZ3ZbMF0pLCBuKSwKLSAgICAnbicgOiBuCi0gICAgfQotCi0gIHJldHVybiAoCi0iIiIvLyBD
b3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwot
Ly8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3Ry
aWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8v
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLS8vIFRoaXMgZmlsZSBp
cyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAlKHRvZGF5KXMgYnkgY29tbWFuZAotLy8gJyUo
Y29tbWFuZClzJy4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gSW1wbGVtZW50cyBhIGZh
bWlseSBvZiBnZW5lcmljIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFjcm9zLgotCi0jaWZuZGVmIEdU
RVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJFRF9JTVBMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xV
REVfR1RFU1RfR1RFU1RfUFJFRF9JTVBMX0hfCi0KLS8vIE1ha2VzIHN1cmUgdGhpcyBoZWFkZXIg
aXMgbm90IGluY2x1ZGVkIGJlZm9yZSBndGVzdC5oLgotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX0hfCi0jIGVycm9yIERvIG5vdCBpbmNsdWRlIGd0ZXN0X3ByZWRfaW1wbC5oIGRp
cmVjdGx5LiAgSW5jbHVkZSBndGVzdC5oIGluc3RlYWQuCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xV
REVfR1RFU1RfR1RFU1RfSF8KLQotLy8gVGhpcyBoZWFkZXIgaW1wbGVtZW50cyBhIGZhbWlseSBv
ZiBnZW5lcmljIHByZWRpY2F0ZSBhc3NlcnRpb24KLS8vIG1hY3JvczoKLS8vCi0vLyAgIEFTU0VS
VF9QUkVEX0ZPUk1BVDEocHJlZF9mb3JtYXQsIHYxKQotLy8gICBBU1NFUlRfUFJFRF9GT1JNQVQy
KHByZWRfZm9ybWF0LCB2MSwgdjIpCi0vLyAgIC4uLgotLy8KLS8vIHdoZXJlIHByZWRfZm9ybWF0
IGlzIGEgZnVuY3Rpb24gb3IgZnVuY3RvciB0aGF0IHRha2VzIG4gKGluIHRoZQotLy8gY2FzZSBv
ZiBBU1NFUlRfUFJFRF9GT1JNQVRuKSB2YWx1ZXMgYW5kIHRoZWlyIHNvdXJjZSBleHByZXNzaW9u
Ci0vLyB0ZXh0LCBhbmQgcmV0dXJucyBhIHRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdC4gIFNlZSB0
aGUgZGVmaW5pdGlvbgotLy8gb2YgQVNTRVJUX0VRIGluIGd0ZXN0LmggZm9yIGFuIGV4YW1wbGUu
Ci0vLwotLy8gSWYgeW91IGRvbid0IGNhcmUgYWJvdXQgZm9ybWF0dGluZywgeW91IGNhbiB1c2Ug
dGhlIG1vcmUKLS8vIHJlc3RyaWN0aXZlIHZlcnNpb246Ci0vLwotLy8gICBBU1NFUlRfUFJFRDEo
cHJlZCwgdjEpCi0vLyAgIEFTU0VSVF9QUkVEMihwcmVkLCB2MSwgdjIpCi0vLyAgIC4uLgotLy8K
LS8vIHdoZXJlIHByZWQgaXMgYW4gbi1hcnkgZnVuY3Rpb24gb3IgZnVuY3RvciB0aGF0IHJldHVy
bnMgYm9vbCwKLS8vIGFuZCB0aGUgdmFsdWVzIHYxLCB2MiwgLi4uLCBtdXN0IHN1cHBvcnQgdGhl
IDw8IG9wZXJhdG9yIGZvcgotLy8gc3RyZWFtaW5nIHRvIHN0ZDo6b3N0cmVhbS4KLS8vCi0vLyBX
ZSBhbHNvIGRlZmluZSB0aGUgRVhQRUNUXyogdmFyaWF0aW9ucy4KLS8vCi0vLyBGb3Igbm93IHdl
IG9ubHkgc3VwcG9ydCBwcmVkaWNhdGVzIHdob3NlIGFyaXR5IGlzIGF0IG1vc3QgJShuKXMuCi0v
LyBQbGVhc2UgZW1haWwgZ29vZ2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlv
dSBuZWVkCi0vLyBzdXBwb3J0IGZvciBoaWdoZXIgYXJpdGllcy4KLQotLy8gR1RFU1RfQVNTRVJU
XyBpcyB0aGUgYmFzaWMgc3RhdGVtZW50IHRvIHdoaWNoIGFsbCBvZiB0aGUgYXNzZXJ0aW9ucwot
Ly8gaW4gdGhpcyBmaWxlIHJlZHVjZS4gIERvbid0IHVzZSB0aGlzIGluIHlvdXIgY29kZS4KLQot
I2RlZmluZSBHVEVTVF9BU1NFUlRfKGV4cHJlc3Npb24sIG9uX2ZhaWx1cmUpIFxcCi0gIEdURVNU
X0FNQklHVU9VU19FTFNFX0JMT0NLRVJfIFxcCi0gIGlmIChjb25zdCA6OnRlc3Rpbmc6OkFzc2Vy
dGlvblJlc3VsdCBndGVzdF9hciA9IChleHByZXNzaW9uKSkgXFwKLSAgICA7IFxcCi0gIGVsc2Ug
XFwKLSAgICBvbl9mYWlsdXJlKGd0ZXN0X2FyLmZhaWx1cmVfbWVzc2FnZSgpKQotIiIiICUgREVG
UykKLQotCi1kZWYgQXJpdHkobik6Ci0gICIiIlJldHVybnMgdGhlIEVuZ2xpc2ggbmFtZSBvZiB0
aGUgZ2l2ZW4gYXJpdHkuIiIiCi0KLSAgaWYgbiA8IDA6Ci0gICAgcmV0dXJuIE5vbmUKLSAgZWxp
ZiBuIDw9IDM6Ci0gICAgcmV0dXJuIFsnbnVsbGFyeScsICd1bmFyeScsICdiaW5hcnknLCAndGVy
bmFyeSddW25dCi0gIGVsc2U6Ci0gICAgcmV0dXJuICclcy1hcnknICUgbgotCi0KLWRlZiBUaXRs
ZSh3b3JkKToKLSAgIiIiUmV0dXJucyB0aGUgZ2l2ZW4gd29yZCBpbiB0aXRsZSBjYXNlLiAgVGhl
IGRpZmZlcmVuY2UgYmV0d2VlbgotICB0aGlzIGFuZCBzdHJpbmcncyB0aXRsZSgpIG1ldGhvZCBp
cyB0aGF0IFRpdGxlKCc0LWFyeScpIGlzICc0LWFyeScKLSAgd2hpbGUgJzQtYXJ5Jy50aXRsZSgp
IGlzICc0LUFyeScuIiIiCi0KLSAgcmV0dXJuIHdvcmRbMF0udXBwZXIoKSArIHdvcmRbMTpdCi0K
LQotZGVmIE9uZVRvKG4pOgotICAiIiJSZXR1cm5zIHRoZSBsaXN0IFsxLCAyLCAzLCAuLi4sIG5d
LiIiIgotCi0gIHJldHVybiByYW5nZSgxLCBuICsgMSkKLQotCi1kZWYgSXRlcihuLCBmb3JtYXQs
IHNlcD0nJyk6Ci0gICIiIkdpdmVuIGEgcG9zaXRpdmUgaW50ZWdlciBuLCBhIGZvcm1hdCBzdHJp
bmcgdGhhdCBjb250YWlucyAwIG9yCi0gIG1vcmUgJyVzJyBmb3JtYXQgc3BlY3MsIGFuZCBvcHRp
b25hbGx5IGEgc2VwYXJhdG9yIHN0cmluZywgcmV0dXJucwotICB0aGUgam9pbiBvZiBuIHN0cmlu
Z3MsIGVhY2ggZm9ybWF0dGVkIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcgb24gYW4KLSAgaXRlcmF0
b3IgcmFuZ2VkIGZyb20gMSB0byBuLgotCi0gIEV4YW1wbGU6Ci0KLSAgSXRlcigzLCAndiVzJywg
c2VwPScsICcpIHJldHVybnMgJ3YxLCB2MiwgdjMnLgotICAiIiIKLQotICAjIEhvdyBtYW55ICcl
cycgc3BlY3MgYXJlIGluIGZvcm1hdD8KLSAgc3BlY19jb3VudCA9IGxlbihmb3JtYXQuc3BsaXQo
JyVzJykpIC0gMQotICByZXR1cm4gc2VwLmpvaW4oW2Zvcm1hdCAlIChzcGVjX2NvdW50ICogKGks
KSkgZm9yIGkgaW4gT25lVG8obildKQotCi0KLWRlZiBJbXBsZW1lbnRhdGlvbkZvckFyaXR5KG4p
OgotICAiIiJSZXR1cm5zIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBuLWFyeSBwcmVkaWNhdGUgYXNz
ZXJ0aW9ucy4iIiIKLQotICAjIEEgbWFwIHRoZSBkZWZpbmVzIHRoZSB2YWx1ZXMgdXNlZCBpbiB0
aGUgaW1wbGVtZW50YXRpb24gdGVtcGxhdGUuCi0gIERFRlMgPSB7Ci0gICAgJ24nIDogc3RyKG4p
LAotICAgICd2cycgOiBJdGVyKG4sICd2JXMnLCBzZXA9JywgJyksCi0gICAgJ3Z0cycgOiBJdGVy
KG4sICcjdiVzJywgc2VwPScsICcpLAotICAgICdhcml0eScgOiBBcml0eShuKSwKLSAgICAnQXJp
dHknIDogVGl0bGUoQXJpdHkobikpCi0gICAgfQotCi0gIGltcGwgPSAiIiIKLQotLy8gSGVscGVy
IGZ1bmN0aW9uIGZvciBpbXBsZW1lbnRpbmcge0VYUEVDVHxBU1NFUlR9X1BSRUQlKG4pcy4gIERv
bid0IHVzZQotLy8gdGhpcyBpbiB5b3VyIGNvZGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgUHJlZCIi
IiAlIERFRlMKLQotICBpbXBsICs9IEl0ZXIobiwgIiIiLAotICAgICAgICAgIHR5cGVuYW1lIFQl
cyIiIikKLQotICBpbXBsICs9ICIiIj4KLUFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVkJShuKXNI
ZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0IiIiICUgREVGUwotCi0gIGltcGwgKz0gSXRlcihu
LCAiIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZSVz
IiIiKQotCi0gIGltcGwgKz0gIiIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFByZWQgcHJlZCIiIgotCi0gIGltcGwgKz0gSXRlcihuLCAiIiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVCVzJiB2JXMiIiIpCi0KLSAgaW1wbCArPSAiIiIpIHsK
LSAgaWYgKHByZWQoJSh2cylzKSkgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKLQotIiIiICUg
REVGUwotCi0gIGltcGwgKz0gJyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBwcmVkX3Rl
eHQgPDwgIigiJwotCi0gIGltcGwgKz0gSXRlcihuLCAiIiIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCBlJXMiIiIsIHNlcD0nIDw8ICIsICInKQotCi0gIGltcGwgKz0gJyA8PCAiKSBl
dmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIicKLQotICBpbXBsICs9IEl0ZXIobiwgIiIiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxcbiIgPDwgZSVzIDw8ICIgZXZhbHVhdGVzIHRv
ICIgPDwgdiVzIiIiKQotCi0gIGltcGwgKz0gIiIiOwotfQotCi0vLyBJbnRlcm5hbCBtYWNybyBm
b3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZPUk1BVCUobilzLgotLy8gRG9u
J3QgdXNlIHRoaXMgaW4geW91ciBjb2RlLgotI2RlZmluZSBHVEVTVF9QUkVEX0ZPUk1BVCUobilz
XyhwcmVkX2Zvcm1hdCwgJSh2cylzLCBvbl9mYWlsdXJlKVxcCi0gIEdURVNUX0FTU0VSVF8ocHJl
ZF9mb3JtYXQoJSh2dHMpcywgJSh2cylzKSwgXFwKLSAgICAgICAgICAgICAgICBvbl9mYWlsdXJl
KQotCi0vLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9Q
UkVEJShuKXMuICBEb24ndCB1c2UKLS8vIHRoaXMgaW4geW91ciBjb2RlLgotI2RlZmluZSBHVEVT
VF9QUkVEJShuKXNfKHByZWQsICUodnMpcywgb25fZmFpbHVyZSlcXAotICBHVEVTVF9BU1NFUlRf
KDo6dGVzdGluZzo6QXNzZXJ0UHJlZCUobilzSGVscGVyKCNwcmVkIiIiICUgREVGUwotCi0gIGlt
cGwgKz0gSXRlcihuLCAiIiIsIFxcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAjdiVzIiIiKQotCi0gIGltcGwgKz0gIiIiLCBcXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZCIiIgotCi0gIGltcGwgKz0gSXRlcihu
LCAiIiIsIFxcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
JXMiIiIpCi0KLSAgaW1wbCArPSAiIiIpLCBvbl9mYWlsdXJlKQotCi0vLyAlKEFyaXR5KXMgcHJl
ZGljYXRlIGFzc2VydGlvbiBtYWNyb3MuCi0jZGVmaW5lIEVYUEVDVF9QUkVEX0ZPUk1BVCUobilz
KHByZWRfZm9ybWF0LCAlKHZzKXMpIFxcCi0gIEdURVNUX1BSRURfRk9STUFUJShuKXNfKHByZWRf
Zm9ybWF0LCAlKHZzKXMsIEdURVNUX05PTkZBVEFMX0ZBSUxVUkVfKQotI2RlZmluZSBFWFBFQ1Rf
UFJFRCUobilzKHByZWQsICUodnMpcykgXFwKLSAgR1RFU1RfUFJFRCUobilzXyhwcmVkLCAlKHZz
KXMsIEdURVNUX05PTkZBVEFMX0ZBSUxVUkVfKQotI2RlZmluZSBBU1NFUlRfUFJFRF9GT1JNQVQl
KG4pcyhwcmVkX2Zvcm1hdCwgJSh2cylzKSBcXAotICBHVEVTVF9QUkVEX0ZPUk1BVCUobilzXyhw
cmVkX2Zvcm1hdCwgJSh2cylzLCBHVEVTVF9GQVRBTF9GQUlMVVJFXykKLSNkZWZpbmUgQVNTRVJU
X1BSRUQlKG4pcyhwcmVkLCAlKHZzKXMpIFxcCi0gIEdURVNUX1BSRUQlKG4pc18ocHJlZCwgJSh2
cylzLCBHVEVTVF9GQVRBTF9GQUlMVVJFXykKLQotIiIiICUgREVGUwotCi0gIHJldHVybiBpbXBs
Ci0KLQotZGVmIEhlYWRlclBvc3RhbWJsZSgpOgotICAiIiJSZXR1cm5zIHRoZSBwb3N0YW1ibGUg
Zm9yIHRoZSBoZWFkZXIgZmlsZS4iIiIKLQotICByZXR1cm4gIiIiCi0KLSNlbmRpZiAgLy8gR1RF
U1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUkVEX0lNUExfSF8KLSIiIgotCi0KLWRlZiBHZW5lcmF0
ZUZpbGUocGF0aCwgY29udGVudCk6Ci0gICIiIkdpdmVuIGEgZmlsZSBwYXRoIGFuZCBhIGNvbnRl
bnQgc3RyaW5nLCBvdmVyd3JpdGVzIGl0IHdpdGggdGhlCi0gIGdpdmVuIGNvbnRlbnQuIiIiCi0K
LSAgcHJpbnQgJ1VwZGF0aW5nIGZpbGUgJXMgLiAuIC4nICUgcGF0aAotCi0gIGYgPSBmaWxlKHBh
dGgsICd3KycpCi0gIHByaW50ID4+ZiwgY29udGVudCwKLSAgZi5jbG9zZSgpCi0KLSAgcHJpbnQg
J0ZpbGUgJXMgaGFzIGJlZW4gdXBkYXRlZC4nICUgcGF0aAotCi0KLWRlZiBHZW5lcmF0ZUhlYWRl
cihuKToKLSAgIiIiR2l2ZW4gdGhlIG1heGltdW0gYXJpdHkgbiwgdXBkYXRlcyB0aGUgaGVhZGVy
IGZpbGUgdGhhdCBpbXBsZW1lbnRzCi0gIHRoZSBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4iIiIKLQot
ICBHZW5lcmF0ZUZpbGUoSEVBREVSLAotICAgICAgICAgICAgICAgSGVhZGVyUHJlYW1ibGUobikK
LSAgICAgICAgICAgICAgICsgJycuam9pbihbSW1wbGVtZW50YXRpb25Gb3JBcml0eShpKSBmb3Ig
aSBpbiBPbmVUbyhuKV0pCi0gICAgICAgICAgICAgICArIEhlYWRlclBvc3RhbWJsZSgpKQotCi0K
LWRlZiBVbml0VGVzdFByZWFtYmxlKCk6Ci0gICIiIlJldHVybnMgdGhlIHByZWFtYmxlIGZvciB0
aGUgdW5pdCB0ZXN0IGZpbGUuIiIiCi0KLSAgIyBBIG1hcCB0aGF0IGRlZmluZXMgdGhlIHZhbHVl
cyB1c2VkIGluIHRoZSBwcmVhbWJsZSB0ZW1wbGF0ZS4KLSAgREVGUyA9IHsKLSAgICAndG9kYXkn
IDogdGltZS5zdHJmdGltZSgnJW0vJWQvJVknKSwKLSAgICAneWVhcicgOiB0aW1lLnN0cmZ0aW1l
KCclWScpLAotICAgICdjb21tYW5kJyA6ICclcyAlcycgJSAob3MucGF0aC5iYXNlbmFtZShzeXMu
YXJndlswXSksIHN5cy5hcmd2WzFdKSwKLSAgICB9Ci0KLSAgcmV0dXJuICgKLSIiIi8vIENvcHly
aWdodCAyMDA2LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
Ly8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0
aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
Ly8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotLy8gVGhpcyBmaWxlIGlzIEFV
VE9NQVRJQ0FMTFkgR0VORVJBVEVEIG9uICUodG9kYXkpcyBieSBjb21tYW5kCi0vLyAnJShjb21t
YW5kKXMnLiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLQotLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBn
dGVzdF9wcmVkX2ltcGwuaAotLy8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBzY3Jp
cHQgYW5kIHF1aXRlIGxvbmcuICBJZiB5b3UgaW50ZW5kIHRvCi0vLyBsZWFybiBob3cgR29vZ2xl
IFRlc3Qgd29ya3MgYnkgcmVhZGluZyBpdHMgdW5pdCB0ZXN0cywgcmVhZAotLy8gZ3Rlc3RfdW5p
dHRlc3QuY2MgaW5zdGVhZC4KLS8vCi0vLyBUaGlzIGlzIGludGVuZGVkIGFzIGEgcmVncmVzc2lv
biB0ZXN0IGZvciB0aGUgR29vZ2xlIFRlc3QgcHJlZGljYXRlCi0vLyBhc3NlcnRpb25zLiAgV2Ug
Y29tcGlsZSBpdCBhcyBwYXJ0IG9mIHRoZSBndGVzdF91bml0dGVzdCB0YXJnZXQKLS8vIG9ubHkg
dG8ga2VlcCB0aGUgaW1wbGVtZW50YXRpb24gdGlkeSBhbmQgY29tcGFjdCwgYXMgaXQgaXMgcXVp
dGUKLS8vIGludm9sdmVkIHRvIHNldCB1cCB0aGUgc3RhZ2UgZm9yIHRlc3RpbmcgR29vZ2xlIFRl
c3QgdXNpbmcgR29vZ2xlCi0vLyBUZXN0IGl0c2VsZi4KLS8vCi0vLyBDdXJyZW50bHksIGd0ZXN0
X3VuaXR0ZXN0IHRha2VzIH4xMSBzZWNvbmRzIHRvIHJ1biBpbiB0aGUgdGVzdGluZwotLy8gZGFl
bW9uLiAgSW4gdGhlIGZ1dHVyZSwgaWYgaXQgZ3Jvd3MgdG9vIGxhcmdlIGFuZCBuZWVkcyBtdWNo
IG1vcmUKLS8vIHRpbWUgdG8gZmluaXNoLCB3ZSBzaG91bGQgY29uc2lkZXIgc2VwYXJhdGluZyB0
aGlzIGZpbGUgaW50byBhCi0vLyBzdGFuZC1hbG9uZSByZWdyZXNzaW9uIHRlc3QuCi0KLSNpbmNs
dWRlIDxpb3N0cmVhbT4KLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAiZ3Rl
c3QvZ3Rlc3Qtc3BpLmgiCi0KLS8vIEEgdXNlci1kZWZpbmVkIGRhdGEgdHlwZS4KLXN0cnVjdCBC
b29sIHsKLSAgZXhwbGljaXQgQm9vbChpbnQgdmFsKSA6IHZhbHVlKHZhbCAhPSAwKSB7fQotCi0g
IGJvb2wgb3BlcmF0b3I+KGludCBuKSBjb25zdCB7IHJldHVybiB2YWx1ZSA+IEJvb2wobikudmFs
dWU7IH0KLQotICBCb29sIG9wZXJhdG9yKyhjb25zdCBCb29sJiByaHMpIGNvbnN0IHsgcmV0dXJu
IEJvb2wodmFsdWUgKyByaHMudmFsdWUpOyB9Ci0KLSAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJv
b2wmIHJocykgY29uc3QgeyByZXR1cm4gdmFsdWUgPT0gcmhzLnZhbHVlOyB9Ci0KLSAgYm9vbCB2
YWx1ZTsKLX07Ci0KLS8vIEVuYWJsZXMgQm9vbCB0byBiZSB1c2VkIGluIGFzc2VydGlvbnMuCi1z
dGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgQm9vbCYgeCkg
ewotICByZXR1cm4gb3MgPDwgKHgudmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLX0KLQotIiIi
ICUgREVGUykKLQotCi1kZWYgVGVzdHNGb3JBcml0eShuKToKLSAgIiIiUmV0dXJucyB0aGUgdGVz
dHMgZm9yIG4tYXJ5IHByZWRpY2F0ZSBhc3NlcnRpb25zLiIiIgotCi0gICMgQSBtYXAgdGhhdCBk
ZWZpbmVzIHRoZSB2YWx1ZXMgdXNlZCBpbiB0aGUgdGVtcGxhdGUgZm9yIHRoZSB0ZXN0cy4KLSAg
REVGUyA9IHsKLSAgICAnbicgOiBuLAotICAgICdlcycgOiBJdGVyKG4sICdlJXMnLCBzZXA9Jywg
JyksCi0gICAgJ3ZzJyA6IEl0ZXIobiwgJ3YlcycsIHNlcD0nLCAnKSwKLSAgICAndnRzJyA6IEl0
ZXIobiwgJyN2JXMnLCBzZXA9JywgJyksCi0gICAgJ3R2cycgOiBJdGVyKG4sICdUJXMgdiVzJywg
c2VwPScsICcpLAotICAgICdpbnRfdnMnIDogSXRlcihuLCAnaW50IHYlcycsIHNlcD0nLCAnKSwK
LSAgICAnQm9vbF92cycgOiBJdGVyKG4sICdCb29sIHYlcycsIHNlcD0nLCAnKSwKLSAgICAndHlw
ZXMnIDogSXRlcihuLCAndHlwZW5hbWUgVCVzJywgc2VwPScsICcpLAotICAgICd2X3N1bScgOiBJ
dGVyKG4sICd2JXMnLCBzZXA9JyArICcpLAotICAgICdhcml0eScgOiBBcml0eShuKSwKLSAgICAn
QXJpdHknIDogVGl0bGUoQXJpdHkobikpLAotICAgIH0KLQotICB0ZXN0cyA9ICgKLSIiIi8vIFNh
bXBsZSBmdW5jdGlvbnMvZnVuY3RvcnMgZm9yIHRlc3RpbmcgJShhcml0eSlzIHByZWRpY2F0ZSBh
c3NlcnRpb25zLgotCi0vLyBBICUoYXJpdHkpcyBwcmVkaWNhdGUgZnVuY3Rpb24uCi10ZW1wbGF0
ZSA8JSh0eXBlcylzPgotYm9vbCBQcmVkRnVuY3Rpb24lKG4pcyglKHR2cylzKSB7Ci0gIHJldHVy
biAlKHZfc3VtKXMgPiAwOwotfQotCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJl
IG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21l
dGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgot
Ym9vbCBQcmVkRnVuY3Rpb24lKG4pc0ludCglKGludF92cylzKSB7Ci0gIHJldHVybiAlKHZfc3Vt
KXMgPiAwOwotfQotYm9vbCBQcmVkRnVuY3Rpb24lKG4pc0Jvb2woJShCb29sX3ZzKXMpIHsKLSAg
cmV0dXJuICUodl9zdW0pcyA+IDA7Ci19Ci0iIiIgJSBERUZTKQotCi0gIHRlc3RzICs9ICIiIgot
Ly8gQSAlKGFyaXR5KXMgcHJlZGljYXRlIGZ1bmN0b3IuCi1zdHJ1Y3QgUHJlZEZ1bmN0b3IlKG4p
cyB7Ci0gIHRlbXBsYXRlIDwlKHR5cGVzKXM+Ci0gIGJvb2wgb3BlcmF0b3IoKSgiIiIgJSBERUZT
Ci0KLSAgdGVzdHMgKz0gSXRlcihuLCAnY29uc3QgVCVzJiB2JXMnLCBzZXA9IiIiLAotICAgICAg
ICAgICAgICAgICAgIiIiKQotCi0gIHRlc3RzICs9ICIiIikgewotICAgIHJldHVybiAlKHZfc3Vt
KXMgPiAwOwotICB9Ci19OwotIiIiICUgREVGUwotCi0gIHRlc3RzICs9ICIiIgotLy8gQSAlKGFy
aXR5KXMgcHJlZGljYXRlLWZvcm1hdHRlciBmdW5jdGlvbi4KLXRlbXBsYXRlIDwlKHR5cGVzKXM+
Ci10ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgUHJlZEZvcm1hdEZ1bmN0aW9uJShuKXMoIiIiICUg
REVGUwotCi0gIHRlc3RzICs9IEl0ZXIobiwgJ2NvbnN0IGNoYXIqIGUlcycsIHNlcD0iIiIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiIpCi0KLSAgdGVz
dHMgKz0gSXRlcihuLCAiIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUJXMmIHYlcyIiIikKLQotICB0ZXN0cyArPSAiIiIpIHsKLSAgaWYgKFBy
ZWRGdW5jdGlvbiUobilzKCUodnMpcykpCi0gICAgcmV0dXJuIHRlc3Rpbmc6OkFzc2VydGlvblN1
Y2Nlc3MoKTsKLQotICByZXR1cm4gdGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpCi0gICAgICA8
PCAiIiIgJSBERUZTCi0KLSAgdGVzdHMgKz0gSXRlcihuLCAnZSVzJywgc2VwPScgPDwgIiArICIg
PDwgJykKLQotICB0ZXN0cyArPSAiIiIKLSAgICAgIDw8ICIgaXMgZXhwZWN0ZWQgdG8gYmUgcG9z
aXRpdmUsIGJ1dCBldmFsdWF0ZXMgdG8gIgotICAgICAgPDwgJSh2X3N1bSlzIDw8ICIuIjsKLX0K
LSIiIiAlIERFRlMKLQotICB0ZXN0cyArPSAiIiIKLS8vIEEgJShhcml0eSlzIHByZWRpY2F0ZS1m
b3JtYXR0ZXIgZnVuY3Rvci4KLXN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvciUobilzIHsKLSAgdGVt
cGxhdGUgPCUodHlwZXMpcz4KLSAgdGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IG9wZXJhdG9yKCko
IiIiICUgREVGUwotCi0gIHRlc3RzICs9IEl0ZXIobiwgJ2NvbnN0IGNoYXIqIGUlcycsIHNlcD0i
IiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiIikKLQotICB0ZXN0
cyArPSBJdGVyKG4sICIiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVCVzJiB2JXMiIiIpCi0KLSAgdGVzdHMgKz0gIiIiKSBjb25zdCB7Ci0gICAgcmV0dXJu
IFByZWRGb3JtYXRGdW5jdGlvbiUobilzKCUoZXMpcywgJSh2cylzKTsKLSAgfQotfTsKLSIiIiAl
IERFRlMKLQotICB0ZXN0cyArPSAiIiIKLS8vIFRlc3RzIGZvciB7RVhQRUNUfEFTU0VSVH1fUFJF
RF9GT1JNQVQlKG4pcy4KLQotY2xhc3MgUHJlZGljYXRlJShuKXNUZXN0IDogcHVibGljIHRlc3Rp
bmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGV4
cGVjdGVkX3RvX2ZpbmlzaF8gPSB0cnVlOwotICAgIGZpbmlzaGVkXyA9IGZhbHNlOyIiIiAlIERF
RlMKLQotICB0ZXN0cyArPSAiIiIKLSAgICAiIiIgKyBJdGVyKG4sICduJXNfID0gJykgKyAiIiIw
OwotICB9Ci0iIiIKLQotICB0ZXN0cyArPSAiIiIKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkg
ewotICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRz
IHdhcyBldmFsdWF0ZWQKLSAgICAvLyBleGFjdGx5IG9uY2UuIiIiCi0KLSAgdGVzdHMgKz0gJycu
am9pbihbIiIiCi0gICAgRVhQRUNUX0VRKDEsIG4lc18pIDw8Ci0gICAgICAgICJUaGUgcHJlZGlj
YXRlIGFzc2VydGlvbiBkaWRuJ3QgZXZhbHVhdGUgYXJndW1lbnQgJXMgIgotICAgICAgICAiZXhh
Y3RseSBvbmNlLiI7IiIiICUgKGksIGkgKyAxKSBmb3IgaSBpbiBPbmVUbyhuKV0pCi0KLSAgdGVz
dHMgKz0gIiIiCi0KLSAgICAvLyBWZXJpZmllcyB0aGF0IHRoZSBjb250cm9sIGZsb3cgaW4gdGhl
IHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQuCi0gICAgaWYgKGV4cGVjdGVkX3RvX2ZpbmlzaF8g
JiYgIWZpbmlzaGVkXykgewotICAgICAgRkFJTCgpIDw8ICJUaGUgcHJlZGljYXRlIGFzc2VydGlv
biB1bmV4cGFjdGVkbHkgYWJvcnRlZCB0aGUgdGVzdC4iOwotICAgIH0gZWxzZSBpZiAoIWV4cGVj
dGVkX3RvX2ZpbmlzaF8gJiYgZmluaXNoZWRfKSB7Ci0gICAgICBGQUlMKCkgPDwgIlRoZSBmYWls
ZWQgcHJlZGljYXRlIGFzc2VydGlvbiBkaWRuJ3QgYWJvcnQgdGhlIHRlc3QgIgotICAgICAgICAg
ICAgICAgICJhcyBleHBlY3RlZC4iOwotICAgIH0KLSAgfQotCi0gIC8vIHRydWUgaWZmIHRoZSB0
ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCi0gIHN0YXRpYyBib29s
IGV4cGVjdGVkX3RvX2ZpbmlzaF87Ci0KLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24g
ZGlkIHJ1biB0byBmaW5pc2guCi0gIHN0YXRpYyBib29sIGZpbmlzaGVkXzsKLSIiIiAlIERFRlMK
LQotICB0ZXN0cyArPSBJdGVyKG4sICIiIgotICBzdGF0aWMgaW50IG4lc187IiIiKQotCi0gIHRl
c3RzICs9ICIiIgotfTsKLQotYm9vbCBQcmVkaWNhdGUlKG4pc1Rlc3Q6OmV4cGVjdGVkX3RvX2Zp
bmlzaF87Ci1ib29sIFByZWRpY2F0ZSUobilzVGVzdDo6ZmluaXNoZWRfOwotIiIiICUgREVGUwot
Ci0gIHRlc3RzICs9IEl0ZXIobiwgIiIiaW50IFByZWRpY2F0ZSUlKG4pc1Rlc3Q6Om4lc187Ci0i
IiIpICUgREVGUwotCi0gIHRlc3RzICs9ICIiIgotdHlwZWRlZiBQcmVkaWNhdGUlKG4pc1Rlc3Qg
RVhQRUNUX1BSRURfRk9STUFUJShuKXNUZXN0OwotdHlwZWRlZiBQcmVkaWNhdGUlKG4pc1Rlc3Qg
QVNTRVJUX1BSRURfRk9STUFUJShuKXNUZXN0OwotdHlwZWRlZiBQcmVkaWNhdGUlKG4pc1Rlc3Qg
RVhQRUNUX1BSRUQlKG4pc1Rlc3Q7Ci10eXBlZGVmIFByZWRpY2F0ZSUobilzVGVzdCBBU1NFUlRf
UFJFRCUobilzVGVzdDsKLSIiIiAlIERFRlMKLQotICBkZWYgR2VuVGVzdCh1c2VfZm9ybWF0LCB1
c2VfYXNzZXJ0LCBleHBlY3RfZmFpbHVyZSwKLSAgICAgICAgICAgICAgdXNlX2Z1bmN0b3IsIHVz
ZV91c2VyX3R5cGUpOgotICAgICIiIlJldHVybnMgdGhlIHRlc3QgZm9yIGEgcHJlZGljYXRlIGFz
c2VydGlvbiBtYWNyby4KLQotICAgIEFyZ3M6Ci0gICAgICB1c2VfZm9ybWF0OiAgICAgdHJ1ZSBp
ZmYgdGhlIGFzc2VydGlvbiBpcyBhICpfUFJFRF9GT1JNQVQqLgotICAgICAgdXNlX2Fzc2VydDog
ICAgIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYSBBU1NFUlRfKi4KLSAgICAgIGV4cGVjdF9m
YWlsdXJlOiB0cnVlIGlmZiB0aGUgYXNzZXJ0aW9uIGlzIGV4cGVjdGVkIHRvIGZhaWwuCi0gICAg
ICB1c2VfZnVuY3RvcjogICAgdHJ1ZSBpZmYgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBhc3Nl
cnRpb24gaXMKLSAgICAgICAgICAgICAgICAgICAgICBhIGZ1bmN0b3IgKGFzIG9wcG9zZWQgdG8g
YSBmdW5jdGlvbikKLSAgICAgIHVzZV91c2VyX3R5cGU6ICB0cnVlIGlmZiB0aGUgcHJlZGljYXRl
IGZ1bmN0b3IvZnVuY3Rpb24gdGFrZXMKLSAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudChz
KSBvZiBhIHVzZXItZGVmaW5lZCB0eXBlLgotCi0gICAgRXhhbXBsZToKLQotICAgICAgR2VuVGVz
dCgxLCAwLCAwLCAxLCAwKSByZXR1cm5zIGEgdGVzdCB0aGF0IHRlc3RzIHRoZSBiZWhhdmlvcgot
ICAgICAgb2YgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVEX0ZPUk1BVG4oKSB0aGF0IHRha2VzIGEg
ZnVuY3RvcgotICAgICAgd2hvc2UgYXJndW1lbnRzIGhhdmUgYnVpbHQtaW4gdHlwZXMuIiIiCi0K
LSAgICBpZiB1c2VfYXNzZXJ0OgotICAgICAgYXNzcnQgPSAnQVNTRVJUJyAgIyAnYXNzZXJ0JyBp
cyByZXNlcnZlZCwgc28gd2UgY2Fubm90IHVzZQotICAgICAgICAgICAgICAgICAgICAgICAgIyB0
aGF0IGlkZW50aWZpZXIgaGVyZS4KLSAgICBlbHNlOgotICAgICAgYXNzcnQgPSAnRVhQRUNUJwot
Ci0gICAgYXNzZXJ0aW9uID0gYXNzcnQgKyAnX1BSRUQnCi0KLSAgICBpZiB1c2VfZm9ybWF0Ogot
ICAgICAgcHJlZF9mb3JtYXQgPSAnUHJlZEZvcm1hdCcKLSAgICAgIGFzc2VydGlvbiArPSAnX0ZP
Uk1BVCcKLSAgICBlbHNlOgotICAgICAgcHJlZF9mb3JtYXQgPSAnUHJlZCcKLQotICAgIGFzc2Vy
dGlvbiArPSAnJShuKXMnICUgREVGUwotCi0gICAgaWYgdXNlX2Z1bmN0b3I6Ci0gICAgICBwcmVk
X2Zvcm1hdF90eXBlID0gJ2Z1bmN0b3InCi0gICAgICBwcmVkX2Zvcm1hdCArPSAnRnVuY3RvciUo
bilzKCknCi0gICAgZWxzZToKLSAgICAgIHByZWRfZm9ybWF0X3R5cGUgPSAnZnVuY3Rpb24nCi0g
ICAgICBwcmVkX2Zvcm1hdCArPSAnRnVuY3Rpb24lKG4pcycKLSAgICAgIGlmIG5vdCB1c2VfZm9y
bWF0OgotICAgICAgICBpZiB1c2VfdXNlcl90eXBlOgotICAgICAgICAgIHByZWRfZm9ybWF0ICs9
ICdCb29sJwotICAgICAgICBlbHNlOgotICAgICAgICAgIHByZWRfZm9ybWF0ICs9ICdJbnQnCi0K
LSAgICB0ZXN0X25hbWUgPSBwcmVkX2Zvcm1hdF90eXBlLnRpdGxlKCkKLQotICAgIGlmIHVzZV91
c2VyX3R5cGU6Ci0gICAgICBhcmdfdHlwZSA9ICd1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCknCi0g
ICAgICB0ZXN0X25hbWUgKz0gJ09uVXNlclR5cGUnCi0gICAgICBpZiBleHBlY3RfZmFpbHVyZToK
LSAgICAgICAgYXJnID0gJ0Jvb2wobiVzXysrKScKLSAgICAgIGVsc2U6Ci0gICAgICAgIGFyZyA9
ICdCb29sKCsrbiVzXyknCi0gICAgZWxzZToKLSAgICAgIGFyZ190eXBlID0gJ2J1aWx0LWluIHR5
cGUgKGludCknCi0gICAgICB0ZXN0X25hbWUgKz0gJ09uQnVpbHRJblR5cGUnCi0gICAgICBpZiBl
eHBlY3RfZmFpbHVyZToKLSAgICAgICAgYXJnID0gJ24lc18rKycKLSAgICAgIGVsc2U6Ci0gICAg
ICAgIGFyZyA9ICcrK24lc18nCi0KLSAgICBpZiBleHBlY3RfZmFpbHVyZToKLSAgICAgIHN1Y2Nl
c3NmdWxfb3JfZmFpbGVkID0gJ2ZhaWxlZCcKLSAgICAgIGV4cGVjdGVkX29yX25vdCA9ICdleHBl
Y3RlZC4nCi0gICAgICB0ZXN0X25hbWUgKz0gICdGYWlsdXJlJwotICAgIGVsc2U6Ci0gICAgICBz
dWNjZXNzZnVsX29yX2ZhaWxlZCA9ICdzdWNjZXNzZnVsJwotICAgICAgZXhwZWN0ZWRfb3Jfbm90
ID0gJ1VORVhQRUNURUQhJwotICAgICAgdGVzdF9uYW1lICs9ICAnU3VjY2VzcycKLQotICAgICMg
QSBtYXAgdGhhdCBkZWZpbmVzIHRoZSB2YWx1ZXMgdXNlZCBpbiB0aGUgdGVzdCB0ZW1wbGF0ZS4K
LSAgICBkZWZzID0gREVGUy5jb3B5KCkKLSAgICBkZWZzLnVwZGF0ZSh7Ci0gICAgICAnYXNzZXJ0
JyA6IGFzc3J0LAotICAgICAgJ2Fzc2VydGlvbicgOiBhc3NlcnRpb24sCi0gICAgICAndGVzdF9u
YW1lJyA6IHRlc3RfbmFtZSwKLSAgICAgICdwZl90eXBlJyA6IHByZWRfZm9ybWF0X3R5cGUsCi0g
ICAgICAncGYnIDogcHJlZF9mb3JtYXQsCi0gICAgICAnYXJnX3R5cGUnIDogYXJnX3R5cGUsCi0g
ICAgICAnYXJnJyA6IGFyZywKLSAgICAgICdzdWNjZXNzZnVsJyA6IHN1Y2Nlc3NmdWxfb3JfZmFp
bGVkLAotICAgICAgJ2V4cGVjdGVkJyA6IGV4cGVjdGVkX29yX25vdCwKLSAgICAgIH0pCi0KLSAg
ICB0ZXN0ID0gIiIiCi0vLyBUZXN0cyBhICUoc3VjY2Vzc2Z1bClzICUoYXNzZXJ0aW9uKXMgd2hl
cmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgJShwZl90eXBlKXMgb24gYSAlKGFy
Z190eXBlKXMuCi1URVNUX0YoJShhc3NlcnRpb24pc1Rlc3QsICUodGVzdF9uYW1lKXMpIHsiIiIg
JSBkZWZzCi0KLSAgICBpbmRlbnQgPSAobGVuKGFzc2VydGlvbikgKyAzKSonICcKLSAgICBleHRy
YV9pbmRlbnQgPSAnJwotCi0gICAgaWYgZXhwZWN0X2ZhaWx1cmU6Ci0gICAgICBleHRyYV9pbmRl
bnQgPSAnICAnCi0gICAgICBpZiB1c2VfYXNzZXJ0OgotICAgICAgICB0ZXN0ICs9ICIiIgotICBl
eHBlY3RlZF90b19maW5pc2hfID0gZmFsc2U7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8v
IE5PTElOVCIiIgotICAgICAgZWxzZToKLSAgICAgICAgdGVzdCArPSAiIiIKLSAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UIiIiCi0KLSAgICB0ZXN0ICs9ICdcbicgKyBleHRy
YV9pbmRlbnQgKyAiIiIgICUoYXNzZXJ0aW9uKXMoJShwZilzIiIiICUgZGVmcwotCi0gICAgdGVz
dCA9IHRlc3QgJSBkZWZzCi0gICAgdGVzdCArPSBJdGVyKG4sICcsXG4nICsgaW5kZW50ICsgZXh0
cmFfaW5kZW50ICsgJyUoYXJnKXMnICUgZGVmcykKLSAgICB0ZXN0ICs9ICcpO1xuJyArIGV4dHJh
X2luZGVudCArICcgIGZpbmlzaGVkXyA9IHRydWU7XG4nCi0KLSAgICBpZiBleHBlY3RfZmFpbHVy
ZToKLSAgICAgIHRlc3QgKz0gJyAgfSwgIiIpO1xuJwotCi0gICAgdGVzdCArPSAnfVxuJwotICAg
IHJldHVybiB0ZXN0Ci0KLSAgIyBHZW5lcmF0ZXMgdGVzdHMgZm9yIGFsbCAyKio2ID0gNjQgY29t
YmluYXRpb25zLgotICB0ZXN0cyArPSAnJy5qb2luKFtHZW5UZXN0KHVzZV9mb3JtYXQsIHVzZV9h
c3NlcnQsIGV4cGVjdF9mYWlsdXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9m
dW5jdG9yLCB1c2VfdXNlcl90eXBlKQotICAgICAgICAgICAgICAgICAgICBmb3IgdXNlX2Zvcm1h
dCBpbiBbMCwgMV0KLSAgICAgICAgICAgICAgICAgICAgZm9yIHVzZV9hc3NlcnQgaW4gWzAsIDFd
Ci0gICAgICAgICAgICAgICAgICAgIGZvciBleHBlY3RfZmFpbHVyZSBpbiBbMCwgMV0KLSAgICAg
ICAgICAgICAgICAgICAgZm9yIHVzZV9mdW5jdG9yIGluIFswLCAxXQotICAgICAgICAgICAgICAg
ICAgICBmb3IgdXNlX3VzZXJfdHlwZSBpbiBbMCwgMV0KLSAgICAgICAgICAgICAgICAgICAgXSkK
LQotICByZXR1cm4gdGVzdHMKLQotCi1kZWYgVW5pdFRlc3RQb3N0YW1ibGUoKToKLSAgIiIiUmV0
dXJucyB0aGUgcG9zdGFtYmxlIGZvciB0aGUgdGVzdHMuIiIiCi0KLSAgcmV0dXJuICcnCi0KLQot
ZGVmIEdlbmVyYXRlVW5pdFRlc3Qobik6Ci0gICIiIlJldHVybnMgdGhlIHRlc3RzIGZvciB1cC10
byBuLWFyeSBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4iIiIKLQotICBHZW5lcmF0ZUZpbGUoVU5JVF9U
RVNULAotICAgICAgICAgICAgICAgVW5pdFRlc3RQcmVhbWJsZSgpCi0gICAgICAgICAgICAgICAr
ICcnLmpvaW4oW1Rlc3RzRm9yQXJpdHkoaSkgZm9yIGkgaW4gT25lVG8obildKQotICAgICAgICAg
ICAgICAgKyBVbml0VGVzdFBvc3RhbWJsZSgpKQotCi0KLWRlZiBfTWFpbigpOgotICAiIiJUaGUg
ZW50cnkgcG9pbnQgb2YgdGhlIHNjcmlwdC4gIEdlbmVyYXRlcyB0aGUgaGVhZGVyIGZpbGUgYW5k
IGl0cwotICB1bml0IHRlc3QuIiIiCi0KLSAgaWYgbGVuKHN5cy5hcmd2KSAhPSAyOgotICAgIHBy
aW50IF9fZG9jX18KLSAgICBwcmludCAnQXV0aG9yOiAnICsgX19hdXRob3JfXwotICAgIHN5cy5l
eGl0KDEpCi0KLSAgbiA9IGludChzeXMuYXJndlsxXSkKLSAgR2VuZXJhdGVIZWFkZXIobikKLSAg
R2VuZXJhdGVVbml0VGVzdChuKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIF9N
YWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NjcmlwdHMvZ3Rl
c3QtY29uZmlnLmluIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy9ndGVzdC1j
b25maWcuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4MGY4NDMyZWZjYzFhZWVh
YWFkMDcwNjA4NmQzZmY2NDEyODViNjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy9ndGVzdC1j
b25maWcuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwyNzQgKzAsMCBAQAotIyEvYmluL3NoCi0KLSMg
VGhlc2UgdmFyaWFibGVzIGFyZSBhdXRvbWF0aWNhbGx5IGZpbGxlZCBpbiBieSB0aGUgY29uZmln
dXJlIHNjcmlwdC4KLW5hbWU9IkBQQUNLQUdFX1RBUk5BTUVAIgotdmVyc2lvbj0iQFBBQ0tBR0Vf
VkVSU0lPTkAiCi0KLXNob3dfdXNhZ2UoKQotewotICBlY2hvICJVc2FnZTogZ3Rlc3QtY29uZmln
IFtPUFRJT05TLi4uXSIKLX0KLQotc2hvd19oZWxwKCkKLXsKLSAgc2hvd191c2FnZQotICBjYXQg
PDxcRU9GCi0KLVRoZSBgZ3Rlc3QtY29uZmlnJyBzY3JpcHQgcHJvdmlkZXMgYWNjZXNzIHRvIHRo
ZSBuZWNlc3NhcnkgY29tcGlsZSBhbmQgbGlua2luZwotZmxhZ3MgdG8gY29ubmVjdCB3aXRoIEdv
b2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmssIGJvdGggaW4gYSBidWlsZCBwcmlvciB0bwotaW5z
dGFsbGF0aW9uLCBhbmQgb24gdGhlIHN5c3RlbSBwcm9wZXIgYWZ0ZXIgaW5zdGFsbGF0aW9uLiBU
aGUgaW5zdGFsbGF0aW9uCi1vdmVycmlkZXMgbWF5IGJlIGlzc3VlZCBpbiBjb21iaW5hdGlvbiB3
aXRoIGFueSBvdGhlciBxdWVyaWVzLCBidXQgd2lsbCBvbmx5Ci1hZmZlY3QgaW5zdGFsbGF0aW9u
IHF1ZXJpZXMgaWYgY2FsbGVkIG9uIGEgYnVpbHQgYnV0IG5vdCBpbnN0YWxsZWQgZ3Rlc3QuIFRo
ZQotaW5zdGFsbGF0aW9uIHF1ZXJpZXMgbWF5IG5vdCBiZSBpc3N1ZWQgd2l0aCBhbnkgb3RoZXIg
dHlwZXMgb2YgcXVlcmllcywgYW5kCi1vbmx5IG9uZSBpbnN0YWxsYXRpb24gcXVlcnkgbWF5IGJl
IG1hZGUgYXQgYSB0aW1lLiBUaGUgdmVyc2lvbiBxdWVyaWVzIGFuZAotY29tcGlsZXIgZmxhZyBx
dWVyaWVzIG1heSBiZSBjb21iaW5lZCBhcyBkZXNpcmVkIGJ1dCBub3QgbWl4ZWQuIERpZmZlcmVu
dAotdmVyc2lvbiBxdWVyaWVzIGFyZSBhbHdheXMgY29tYmluZWQgd2l0aCBsb2dpY2FsICJhbmQi
IHNlbWFudGljcywgYW5kIG9ubHkgdGhlCi1sYXN0IG9mIGFueSBwYXJ0aWN1bGFyIHF1ZXJ5IGlz
IHVzZWQgd2hpbGUgYWxsIHByZXZpb3VzIG9uZXMgaWdub3JlZC4gQWxsCi12ZXJzaW9ucyBtdXN0
IGJlIHNwZWNpZmllZCBhcyBhIHNlcXVlbmNlIG9mIG51bWJlcnMgc2VwYXJhdGVkIGJ5IHBlcmlv
ZHMuCi1Db21waWxlciBmbGFnIHF1ZXJpZXMgb3V0cHV0IHRoZSB1bmlvbiBvZiB0aGUgc2V0cyBv
ZiBmbGFncyB3aGVuIGNvbWJpbmVkLgotCi0gRXhhbXBsZXM6Ci0gIGd0ZXN0LWNvbmZpZyAtLW1p
bi12ZXJzaW9uPTEuMCB8fCBlY2hvICJJbnN1ZmZpY2llbnQgR29vZ2xlIFRlc3QgdmVyc2lvbi4i
Ci0KLSAgZysrICQoZ3Rlc3QtY29uZmlnIC0tY3BwZmxhZ3MgLS1jeHhmbGFncykgLW8gZm9vLm8g
LWMgZm9vLmNwcAotICBnKysgJChndGVzdC1jb25maWcgLS1sZGZsYWdzIC0tbGlicykgLW8gZm9v
IGZvby5vCi0KLSAgIyBXaGVuIHVzaW5nIGEgYnVpbHQgYnV0IG5vdCBpbnN0YWxsZWQgR29vZ2xl
IFRlc3Q6Ci0gIGcrKyAkKC4uLy4uL215X2d0ZXN0X2J1aWxkL3NjcmlwdHMvZ3Rlc3QtY29uZmln
IC4uLikgLi4uCi0KLSAgIyBXaGVuIHVzaW5nIGFuIGluc3RhbGxlZCBHb29nbGUgVGVzdCwgYnV0
IHdpdGggaW5zdGFsbGF0aW9uIG92ZXJyaWRlczoKLSAgZXhwb3J0IEdURVNUX1BSRUZJWD0iL29w
dCIKLSAgZysrICQoZ3Rlc3QtY29uZmlnIC0tbGliZGlyPSIvb3B0L2xpYjY0IiAuLi4pIC4uLgot
Ci0gSGVscDoKLSAgLS11c2FnZSAgICAgICAgICAgICAgICAgICAgYnJpZWYgdXNhZ2UgaW5mb3Jt
YXRpb24KLSAgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgbWVz
c2FnZQotCi0gSW5zdGFsbGF0aW9uIE92ZXJyaWRlczoKLSAgLS1wcmVmaXg9PGRpcj4gICAgICAg
ICAgICAgb3ZlcnJpZGVzIHRoZSBpbnN0YWxsYXRpb24gcHJlZml4Ci0gIC0tZXhlYy1wcmVmaXg9
PGRpcj4gICAgICAgIG92ZXJyaWRlcyB0aGUgZXhlY3V0YWJsZSBpbnN0YWxsYXRpb24gcHJlZml4
Ci0gIC0tbGliZGlyPTxkaXI+ICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGUgbGlicmFyeSBpbnN0
YWxsYXRpb24gcHJlZml4Ci0gIC0taW5jbHVkZWRpcj08ZGlyPiAgICAgICAgIG92ZXJyaWRlcyB0
aGUgaGVhZGVyIGZpbGUgaW5zdGFsbGF0aW9uIHByZWZpeAotCi0gSW5zdGFsbGF0aW9uIFF1ZXJp
ZXM6Ci0gIC0tcHJlZml4ICAgICAgICAgICAgICAgICAgIGluc3RhbGxhdGlvbiBwcmVmaXgKLSAg
LS1leGVjLXByZWZpeCAgICAgICAgICAgICAgZXhlY3V0YWJsZSBpbnN0YWxsYXRpb24gcHJlZml4
Ci0gIC0tbGliZGlyICAgICAgICAgICAgICAgICAgIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGRpcmVj
dG9yeQotICAtLWluY2x1ZGVkaXIgICAgICAgICAgICAgICBoZWFkZXIgZmlsZSBpbnN0YWxsYXRp
b24gZGlyZWN0b3J5Ci0gIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgIHRoZSB2ZXJzaW9uIG9m
IHRoZSBHb29nbGUgVGVzdCBpbnN0YWxsYXRpb24KLQotIFZlcnNpb24gUXVlcmllczoKLSAgLS1t
aW4tdmVyc2lvbj1WRVJTSU9OICAgICAgcmV0dXJuIDAgaWYgdGhlIHZlcnNpb24gaXMgYXQgbGVh
c3QgVkVSU0lPTgotICAtLWV4YWN0LXZlcnNpb249VkVSU0lPTiAgICByZXR1cm4gMCBpZiB0aGUg
dmVyc2lvbiBpcyBleGFjdGx5IFZFUlNJT04KLSAgLS1tYXgtdmVyc2lvbj1WRVJTSU9OICAgICAg
cmV0dXJuIDAgaWYgdGhlIHZlcnNpb24gaXMgYXQgbW9zdCBWRVJTSU9OCi0KLSBDb21waWxhdGlv
biBGbGFnIFF1ZXJpZXM6Ci0gIC0tY3BwZmxhZ3MgICAgICAgICAgICAgICAgIGNvbXBpbGUgZmxh
Z3Mgc3BlY2lmaWMgdG8gdGhlIEMtbGlrZSBwcmVwcm9jZXNzb3JzCi0gIC0tY3h4ZmxhZ3MgICAg
ICAgICAgICAgICAgIGNvbXBpbGUgZmxhZ3MgYXBwcm9wcmlhdGUgZm9yIEMrKyBwcm9ncmFtcwot
ICAtLWxkZmxhZ3MgICAgICAgICAgICAgICAgICBsaW5rZXIgZmxhZ3MKLSAgLS1saWJzICAgICAg
ICAgICAgICAgICAgICAgbGlicmFyaWVzIGZvciBsaW5raW5nCi0KLUVPRgotfQotCi0jIFRoaXMg
ZnVuY3Rpb24gYm91bmRzIG91ciB2ZXJzaW9uIHdpdGggYSBtaW4gYW5kIGEgbWF4LiBJdCB1c2Vz
IHNvbWUgY2xldmVyCi0jIFBPU0lYLWNvbXBsaWFudCB2YXJpYWJsZSBleHBhbnNpb24gdG8gcG9y
dGFibHkgZG8gYWxsIHRoZSB3b3JrIGluIHRoZSBzaGVsbAotIyBhbmQgYXZvaWQgYW55IGRlcGVu
ZGVuY3kgb24gYSBwYXJ0aWN1bGFyICJzZWQiIG9yICJhd2siIGltcGxlbWVudGF0aW9uLgotIyBO
b3RhYmxlIGlzIHRoYXQgaXQgd2lsbCBvbmx5IGV2ZXIgY29tcGFyZSB0aGUgZmlyc3QgMyBjb21w
b25lbnRzIG9mIHZlcnNpb25zLgotIyBGdXJ0aGVyIGNvbXBvbmVudHMgd2lsbCBiZSBjbGVhbmx5
IHN0cmlwcGVkIG9mZi4gQWxsIHZlcnNpb25zIG11c3QgYmUKLSMgdW5hZG9ybmVkLCBzbyAidjEu
MCIgd2lsbCAqbm90KiB3b3JrLiBUaGUgbWluaW11bSB2ZXJzaW9uIG11c3QgYmUgaW4gJDEsIGFu
ZAotIyB0aGUgbWF4IGluICQyLiBUT0RPKGNoYW5kbGVyY0Bnb29nbGUuY29tKTogSWYgdGhpcyBl
dmVyIGJyZWFrcywgd2Ugc2hvdWxkCi0jIGludmVzdGlnYXRlIGV4cGFuZGluZyB0aGlzIHZpYSBh
dXRvbTR0ZSBmcm9tIEFTX1ZFUlNJT05fQ09NUEFSRSByYXRoZXIgdGhhbgotIyBjb250aW51aW5n
IHRvIG1haW50YWluIG91ciBvd24gc2hlbGwgdmVyc2lvbi4KLWNoZWNrX3ZlcnNpb25zKCkKLXsK
LSAgbWFqb3JfdmVyc2lvbj0ke3ZlcnNpb24lJS4qfQotICBtaW5vcl92ZXJzaW9uPSIwIgotICBw
b2ludF92ZXJzaW9uPSIwIgotICBpZiB0ZXN0ICIke3ZlcnNpb24jKi59IiAhPSAiJHt2ZXJzaW9u
fSI7IHRoZW4KLSAgICBtaW5vcl92ZXJzaW9uPSR7dmVyc2lvbiMqLn0KLSAgICBtaW5vcl92ZXJz
aW9uPSR7bWlub3JfdmVyc2lvbiUlLip9Ci0gIGZpCi0gIGlmIHRlc3QgIiR7dmVyc2lvbiMqLiou
fSIgIT0gIiR7dmVyc2lvbn0iOyB0aGVuCi0gICAgcG9pbnRfdmVyc2lvbj0ke3ZlcnNpb24jKi4q
Ln0KLSAgICBwb2ludF92ZXJzaW9uPSR7cG9pbnRfdmVyc2lvbiUlLip9Ci0gIGZpCi0KLSAgbWlu
X3ZlcnNpb249IiQxIgotICBtaW5fbWFqb3JfdmVyc2lvbj0ke21pbl92ZXJzaW9uJSUuKn0KLSAg
bWluX21pbm9yX3ZlcnNpb249IjAiCi0gIG1pbl9wb2ludF92ZXJzaW9uPSIwIgotICBpZiB0ZXN0
ICIke21pbl92ZXJzaW9uIyoufSIgIT0gIiR7bWluX3ZlcnNpb259IjsgdGhlbgotICAgIG1pbl9t
aW5vcl92ZXJzaW9uPSR7bWluX3ZlcnNpb24jKi59Ci0gICAgbWluX21pbm9yX3ZlcnNpb249JHtt
aW5fbWlub3JfdmVyc2lvbiUlLip9Ci0gIGZpCi0gIGlmIHRlc3QgIiR7bWluX3ZlcnNpb24jKi4q
Ln0iICE9ICIke21pbl92ZXJzaW9ufSI7IHRoZW4KLSAgICBtaW5fcG9pbnRfdmVyc2lvbj0ke21p
bl92ZXJzaW9uIyouKi59Ci0gICAgbWluX3BvaW50X3ZlcnNpb249JHttaW5fcG9pbnRfdmVyc2lv
biUlLip9Ci0gIGZpCi0KLSAgbWF4X3ZlcnNpb249IiQyIgotICBtYXhfbWFqb3JfdmVyc2lvbj0k
e21heF92ZXJzaW9uJSUuKn0KLSAgbWF4X21pbm9yX3ZlcnNpb249IjAiCi0gIG1heF9wb2ludF92
ZXJzaW9uPSIwIgotICBpZiB0ZXN0ICIke21heF92ZXJzaW9uIyoufSIgIT0gIiR7bWF4X3ZlcnNp
b259IjsgdGhlbgotICAgIG1heF9taW5vcl92ZXJzaW9uPSR7bWF4X3ZlcnNpb24jKi59Ci0gICAg
bWF4X21pbm9yX3ZlcnNpb249JHttYXhfbWlub3JfdmVyc2lvbiUlLip9Ci0gIGZpCi0gIGlmIHRl
c3QgIiR7bWF4X3ZlcnNpb24jKi4qLn0iICE9ICIke21heF92ZXJzaW9ufSI7IHRoZW4KLSAgICBt
YXhfcG9pbnRfdmVyc2lvbj0ke21heF92ZXJzaW9uIyouKi59Ci0gICAgbWF4X3BvaW50X3ZlcnNp
b249JHttYXhfcG9pbnRfdmVyc2lvbiUlLip9Ci0gIGZpCi0KLSAgdGVzdCAkKCgkbWFqb3JfdmVy
c2lvbikpIC1sdCAkKCgkbWluX21ham9yX3ZlcnNpb24pKSAmJiBleGl0IDEKLSAgaWYgdGVzdCAk
KCgkbWFqb3JfdmVyc2lvbikpIC1lcSAkKCgkbWluX21ham9yX3ZlcnNpb24pKTsgdGhlbgotICAg
IHRlc3QgJCgoJG1pbm9yX3ZlcnNpb24pKSAtbHQgJCgoJG1pbl9taW5vcl92ZXJzaW9uKSkgJiYg
ZXhpdCAxCi0gICAgaWYgdGVzdCAkKCgkbWlub3JfdmVyc2lvbikpIC1lcSAkKCgkbWluX21pbm9y
X3ZlcnNpb24pKTsgdGhlbgotICAgICAgdGVzdCAkKCgkcG9pbnRfdmVyc2lvbikpIC1sdCAkKCgk
bWluX3BvaW50X3ZlcnNpb24pKSAmJiBleGl0IDEKLSAgICBmaQotICBmaQotCi0gIHRlc3QgJCgo
JG1ham9yX3ZlcnNpb24pKSAtZ3QgJCgoJG1heF9tYWpvcl92ZXJzaW9uKSkgJiYgZXhpdCAxCi0g
IGlmIHRlc3QgJCgoJG1ham9yX3ZlcnNpb24pKSAtZXEgJCgoJG1heF9tYWpvcl92ZXJzaW9uKSk7
IHRoZW4KLSAgICB0ZXN0ICQoKCRtaW5vcl92ZXJzaW9uKSkgLWd0ICQoKCRtYXhfbWlub3JfdmVy
c2lvbikpICYmIGV4aXQgMQotICAgIGlmIHRlc3QgJCgoJG1pbm9yX3ZlcnNpb24pKSAtZXEgJCgo
JG1heF9taW5vcl92ZXJzaW9uKSk7IHRoZW4KLSAgICAgIHRlc3QgJCgoJHBvaW50X3ZlcnNpb24p
KSAtZ3QgJCgoJG1heF9wb2ludF92ZXJzaW9uKSkgJiYgZXhpdCAxCi0gICAgZmkKLSAgZmkKLQot
ICBleGl0IDAKLX0KLQotIyBTaG93IHRoZSB1c2FnZSBsaW5lIHdoZW4gbm8gYXJndW1lbnRzIGFy
ZSBzcGVjaWZpZWQuCi1pZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCi0gIHNob3dfdXNhZ2UKLSAgZXhp
dCAxCi1maQotCi13aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbwotICBjYXNlICQxIGluCi0gICAgLS11
c2FnZSkgICAgICAgICAgc2hvd191c2FnZTsgICAgICAgICBleGl0IDA7OwotICAgIC0taGVscCkg
ICAgICAgICAgIHNob3dfaGVscDsgICAgICAgICAgZXhpdCAwOzsKLQotICAgICMgSW5zdGFsbGF0
aW9uIG92ZXJyaWRlcwotICAgIC0tcHJlZml4PSopICAgICAgIEdURVNUX1BSRUZJWD0kezEjLS1w
cmVmaXg9fTs7Ci0gICAgLS1leGVjLXByZWZpeD0qKSAgR1RFU1RfRVhFQ19QUkVGSVg9JHsxIy0t
ZXhlYy1wcmVmaXg9fTs7Ci0gICAgLS1saWJkaXI9KikgICAgICAgR1RFU1RfTElCRElSPSR7MSMt
LWxpYmRpcj19OzsKLSAgICAtLWluY2x1ZGVkaXI9KikgICBHVEVTVF9JTkNMVURFRElSPSR7MSMt
LWluY2x1ZGVkaXI9fTs7Ci0KLSAgICAjIEluc3RhbGxhdGlvbiBxdWVyaWVzCi0gICAgLS1wcmVm
aXh8LS1leGVjLXByZWZpeHwtLWxpYmRpcnwtLWluY2x1ZGVkaXJ8LS12ZXJzaW9uKQotICAgICAg
aWYgdGVzdCAtbiAiJHtkb19xdWVyeX0iOyB0aGVuCi0gICAgICAgIHNob3dfdXNhZ2UKLSAgICAg
ICAgZXhpdCAxCi0gICAgICBmaQotICAgICAgZG9fcXVlcnk9JHsxIy0tfQotICAgICAgOzsKLQot
ICAgICMgVmVyc2lvbiBjaGVja2luZwotICAgIC0tbWluLXZlcnNpb249KikKLSAgICAgIGRvX2No
ZWNrX3ZlcnNpb25zPXllcwotICAgICAgbWluX3ZlcnNpb249JHsxIy0tbWluLXZlcnNpb249fQot
ICAgICAgOzsKLSAgICAtLW1heC12ZXJzaW9uPSopCi0gICAgICBkb19jaGVja192ZXJzaW9ucz15
ZXMKLSAgICAgIG1heF92ZXJzaW9uPSR7MSMtLW1heC12ZXJzaW9uPX0KLSAgICAgIDs7Ci0gICAg
LS1leGFjdC12ZXJzaW9uPSopCi0gICAgICBkb19jaGVja192ZXJzaW9ucz15ZXMKLSAgICAgIGV4
YWN0X3ZlcnNpb249JHsxIy0tZXhhY3QtdmVyc2lvbj19Ci0gICAgICA7OwotCi0gICAgIyBDb21w
aWxlciBmbGFnIG91dHB1dAotICAgIC0tY3BwZmxhZ3MpICAgICAgIGVjaG9fY3BwZmxhZ3M9eWVz
OzsKLSAgICAtLWN4eGZsYWdzKSAgICAgICBlY2hvX2N4eGZsYWdzPXllczs7Ci0gICAgLS1sZGZs
YWdzKSAgICAgICAgZWNob19sZGZsYWdzPXllczs7Ci0gICAgLS1saWJzKSAgICAgICAgICAgZWNo
b19saWJzPXllczs7Ci0KLSAgICAjIEV2ZXJ5dGhpbmcgZWxzZSBpcyBhbiBlcnJvcgotICAgICop
ICAgICAgICAgICAgICAgIHNob3dfdXNhZ2U7ICAgICAgICAgZXhpdCAxOzsKLSAgZXNhYwotICBz
aGlmdAotZG9uZQotCi0jIFRoZXNlIGhhdmUgZGVmYXVsdHMgZmlsbGVkIGluIGJ5IHRoZSBjb25m
aWd1cmUgc2NyaXB0IGJ1dCBjYW4gYWxzbyBiZQotIyBvdmVycmlkZGVuIGJ5IGVudmlyb25tZW50
IHZhcmlhYmxlcyBvciBjb21tYW5kIGxpbmUgcGFyYW1ldGVycy4KLXByZWZpeD0iJHtHVEVTVF9Q
UkVGSVg6LUBwcmVmaXhAfSIKLWV4ZWNfcHJlZml4PSIke0dURVNUX0VYRUNfUFJFRklYOi1AZXhl
Y19wcmVmaXhAfSIKLWxpYmRpcj0iJHtHVEVTVF9MSUJESVI6LUBsaWJkaXJAfSIKLWluY2x1ZGVk
aXI9IiR7R1RFU1RfSU5DTFVERURJUjotQGluY2x1ZGVkaXJAfSIKLQotIyBXZSB0cnkgYW5kIGRl
dGVjdCBpZiBvdXIgYmluYXJ5IGlzIG5vdCBsb2NhdGVkIGF0IGl0cyBpbnN0YWxsZWQgbG9jYXRp
b24uIElmCi0jIGl0J3Mgbm90LCB3ZSBwcm92aWRlIHZhcmlhYmxlcyBwb2ludGluZyB0byB0aGUg
c291cmNlIGFuZCBidWlsZCB0cmVlIHJhdGhlcgotIyB0aGFuIHRvIHRoZSBpbnN0YWxsIHRyZWUu
IFRoaXMgYWxsb3dzIGJ1aWxkaW5nIGFnYWluc3QgYSBqdXN0LWJ1aWx0IGd0ZXN0Ci0jIHJhdGhl
ciB0aGFuIGFuIGluc3RhbGxlZCBndGVzdC4KLWJpbmRpcj0iQGJpbmRpckAiCi10aGlzX3JlbGF0
aXZlX2JpbmRpcj1gZGlybmFtZSAkMGAKLXRoaXNfYmluZGlyPWBjZCAke3RoaXNfcmVsYXRpdmVf
YmluZGlyfTsgcHdkIC1QYAotaWYgdGVzdCAiJHt0aGlzX2JpbmRpcn0iID0gIiR7dGhpc19iaW5k
aXIlJHtiaW5kaXJ9fSI7IHRoZW4KLSAgIyBUaGUgcGF0aCB0byB0aGUgc2NyaXB0IGRvZXNuJ3Qg
ZW5kIGluIHRoZSBiaW5kaXIgc2VxdWVuY2UgZnJvbSBBdXRvY29uZiwKLSAgIyBhc3N1bWUgdGhh
dCB3ZSBhcmUgaW4gYSBidWlsZCB0cmVlLgotICBidWlsZF9kaXI9YGRpcm5hbWUgJHt0aGlzX2Jp
bmRpcn1gCi0gIHNyY19kaXI9YGNkICR7dGhpc19iaW5kaXJ9OyBjZCBAdG9wX3NyY2RpckA7IHB3
ZCAtUGAKLQotICAjIFRPRE8oY2hhbmRsZXJjQGdvb2dsZS5jb20pOiBUaGlzIGlzIGEgZGFuZ2Vy
b3VzIGRlcGVuZGVuY3kgb24gbGlidG9vbCwgd2UKLSAgIyBzaG91bGQgd29yayB0byByZW1vdmUg
aXQsIGFuZC9vciByZW1vdmUgbGlidG9vbCBhbHRvZ2V0aGVyLCByZXBsYWNpbmcgaXQKLSAgIyB3
aXRoIGRpcmVjdCByZWZlcmVuY2VzIHRvIHRoZSBsaWJyYXJ5IGFuZCBhIGxpbmsgcGF0aC4KLSAg
Z3Rlc3RfbGlicz0iJHtidWlsZF9kaXJ9L2xpYi9saWJndGVzdC5sYSBAUFRIUkVBRF9DRkxBR1NA
IEBQVEhSRUFEX0xJQlNAIgotICBndGVzdF9sZGZsYWdzPSIiCi0KLSAgIyBXZSBwcm92aWRlIGhv
b2tzIHRvIGluY2x1ZGUgZnJvbSBlaXRoZXIgdGhlIHNvdXJjZSBvciBidWlsZCBkaXIsIHdoZXJl
IHRoZQotICAjIGJ1aWxkIGRpciBpcyBhbHdheXMgcHJlZmVycmVkLiBUaGlzIHdpbGwgcG90ZW50
aWFsbHkgYWxsb3cgdXMgdG8gd3JpdGUKLSAgIyBidWlsZCBydWxlcyBmb3IgZ2VuZXJhdGVkIGhl
YWRlcnMgYW5kIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IGJlIHByZWZlcnJlZAotICAjIG92ZXIg
cHJvdmlkZWQgdmVyc2lvbnMuCi0gIGd0ZXN0X2NwcGZsYWdzPSItSSR7YnVpbGRfZGlyfS9pbmNs
dWRlIC1JJHtzcmNfZGlyfS9pbmNsdWRlIgotICBndGVzdF9jeHhmbGFncz0iQFBUSFJFQURfQ0ZM
QUdTQCIKLWVsc2UKLSAgIyBXZSdyZSB1c2luZyBhbiBpbnN0YWxsZWQgZ3Rlc3QsIGFsdGhvdWdo
IGl0IG1heSBiZSBzdGFnZWQgdW5kZXIgc29tZQotICAjIHByZWZpeC4gQXNzdW1lIChhcyBvdXIg
b3duIGxpYnJhcmllcyBkbykgdGhhdCB3ZSBjYW4gcmVzb2x2ZSB0aGUgcHJlZml4LAotICAjIGFu
ZCBhcmUgcHJlc2VudCBpbiB0aGUgZHluYW1pYyBsaW5rIHBhdGhzLgotICBndGVzdF9sZGZsYWdz
PSItTCR7bGliZGlyfSIKLSAgZ3Rlc3RfbGlicz0iLWwke25hbWV9IEBQVEhSRUFEX0NGTEFHU0Ag
QFBUSFJFQURfTElCU0AiCi0gIGd0ZXN0X2NwcGZsYWdzPSItSSR7aW5jbHVkZWRpcn0iCi0gIGd0
ZXN0X2N4eGZsYWdzPSJAUFRIUkVBRF9DRkxBR1NAIgotZmkKLQotIyBEbyBhbiBpbnN0YWxsYXRp
b24gcXVlcnkgaWYgcmVxdWVzdGVkLgotaWYgdGVzdCAtbiAiJGRvX3F1ZXJ5IjsgdGhlbgotICBj
YXNlICRkb19xdWVyeSBpbgotICAgIHByZWZpeCkgICAgICAgICAgIGVjaG8gJHByZWZpeDsgICAg
ICAgZXhpdCAwOzsKLSAgICBleGVjLXByZWZpeCkgICAgICBlY2hvICRleGVjX3ByZWZpeDsgIGV4
aXQgMDs7Ci0gICAgbGliZGlyKSAgICAgICAgICAgZWNobyAkbGliZGlyOyAgICAgICBleGl0IDA7
OwotICAgIGluY2x1ZGVkaXIpICAgICAgIGVjaG8gJGluY2x1ZGVkaXI7ICAgZXhpdCAwOzsKLSAg
ICB2ZXJzaW9uKSAgICAgICAgICBlY2hvICR2ZXJzaW9uOyAgICAgIGV4aXQgMDs7Ci0gICAgKikg
ICAgICAgICAgICAgICAgc2hvd191c2FnZTsgICAgICAgICBleGl0IDE7OwotICBlc2FjCi1maQot
Ci0jIERvIGEgdmVyc2lvbiBjaGVjayBpZiByZXF1ZXN0ZWQuCi1pZiB0ZXN0ICIkZG9fY2hlY2tf
dmVyc2lvbnMiID0gInllcyI7IHRoZW4KLSAgIyBNYWtlIHN1cmUgd2UgZGlkbid0IHJlY2VpdmUg
YSBiYWQgY29tYmluYXRpb24gb2YgcGFyYW1ldGVycy4KLSAgdGVzdCAiJGVjaG9fY3BwZmxhZ3Mi
ID0gInllcyIgJiYgc2hvd191c2FnZSAmJiBleGl0IDEKLSAgdGVzdCAiJGVjaG9fY3h4ZmxhZ3Mi
ID0gInllcyIgJiYgc2hvd191c2FnZSAmJiBleGl0IDEKLSAgdGVzdCAiJGVjaG9fbGRmbGFncyIg
PSAieWVzIiAgJiYgc2hvd191c2FnZSAmJiBleGl0IDEKLSAgdGVzdCAiJGVjaG9fbGlicyIgPSAi
eWVzIiAgICAgJiYgc2hvd191c2FnZSAmJiBleGl0IDEKLQotICBpZiB0ZXN0ICIkZXhhY3RfdmVy
c2lvbiIgIT0gIiI7IHRoZW4KLSAgICBjaGVja192ZXJzaW9ucyAkZXhhY3RfdmVyc2lvbiAkZXhh
Y3RfdmVyc2lvbgotICAgICMgdW5yZWFjaGFibGUKLSAgZWxzZQotICAgIGNoZWNrX3ZlcnNpb25z
ICR7bWluX3ZlcnNpb246LTAuMC4wfSAke21heF92ZXJzaW9uOi05OTk5Ljk5OTkuOTk5OX0KLSAg
ICAjIHVucmVhY2hhYmxlCi0gIGZpCi1maQotCi0jIERvIHRoZSBvdXRwdXQgaW4gdGhlIGNvcnJl
Y3Qgb3JkZXIgc28gdGhhdCB0aGVzZSBjYW4gYmUgdXNlZCBpbi1saW5lIG9mCi0jIGEgY29tcGls
ZXIgaW52b2NhdGlvbi4KLW91dHB1dD0iIgotdGVzdCAiJGVjaG9fY3BwZmxhZ3MiID0gInllcyIg
JiYgb3V0cHV0PSIkb3V0cHV0ICRndGVzdF9jcHBmbGFncyIKLXRlc3QgIiRlY2hvX2N4eGZsYWdz
IiA9ICJ5ZXMiICYmIG91dHB1dD0iJG91dHB1dCAkZ3Rlc3RfY3h4ZmxhZ3MiCi10ZXN0ICIkZWNo
b19sZGZsYWdzIiA9ICJ5ZXMiICAmJiBvdXRwdXQ9IiRvdXRwdXQgJGd0ZXN0X2xkZmxhZ3MiCi10
ZXN0ICIkZWNob19saWJzIiA9ICJ5ZXMiICAgICAmJiBvdXRwdXQ9IiRvdXRwdXQgJGd0ZXN0X2xp
YnMiCi1lY2hvICRvdXRwdXQKLQotZXhpdCAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC9zY3JpcHRzL3B1bXAucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9z
Y3JpcHRzL3B1bXAucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlZmI2NTNjMjA3
ZDFmMWMyYWVjYzRkNjkwYmY3MzJlM2MxZDcxYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy9w
dW1wLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODU1ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5
dGhvbgotIwotIyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiInB1bXAgdjAuMi4wIC0gUHJldHR5IFVzZWZ1
bCBmb3IgTWV0YSBQcm9ncmFtbWluZy4KLQotQSB0b29sIGZvciBwcmVwcm9jZXNzb3IgbWV0YSBw
cm9ncmFtbWluZy4gIFVzZWZ1bCBmb3IgZ2VuZXJhdGluZwotcmVwZXRpdGl2ZSBib2lsZXJwbGF0
ZSBjb2RlLiAgRXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyaXRpbmcgQysrCi1jbGFzc2VzLCBmdW5j
dGlvbnMsIG1hY3JvcywgYW5kIHRlbXBsYXRlcyB0aGF0IG5lZWQgdG8gd29yayB3aXRoCi12YXJp
b3VzIG51bWJlciBvZiBhcmd1bWVudHMuCi0KLVVTQUdFOgotICAgICAgIHB1bXAucHkgU09VUkNF
X0ZJTEUKLQotRVhBTVBMRVM6Ci0gICAgICAgcHVtcC5weSBmb28uY2MucHVtcAotICAgICAgICAg
Q29udmVydHMgZm9vLmNjLnB1bXAgdG8gZm9vLmNjLgotCi1HUkFNTUFSOgotICAgICAgIENPREUg
Ojo9IEFUT01JQ19DT0RFKgotICAgICAgIEFUT01JQ19DT0RFIDo6PSAkdmFyIElEID0gRVhQUkVT
U0lPTgotICAgICAgICAgICB8ICR2YXIgSUQgPSBbWyBDT0RFIF1dCi0gICAgICAgICAgIHwgJHJh
bmdlIElEIEVYUFJFU1NJT04uLkVYUFJFU1NJT04KLSAgICAgICAgICAgfCAkZm9yIElEIFNFUEFS
QVRPUiBbWyBDT0RFIF1dCi0gICAgICAgICAgIHwgJCgkKQotICAgICAgICAgICB8ICRJRAotICAg
ICAgICAgICB8ICQoRVhQUkVTU0lPTikKLSAgICAgICAgICAgfCAkaWYgRVhQUkVTU0lPTiBbWyBD
T0RFIF1dIEVMU0VfQlJBTkNICi0gICAgICAgICAgIHwgW1sgQ09ERSBdXQotICAgICAgICAgICB8
IFJBV19DT0RFCi0gICAgICAgU0VQQVJBVE9SIDo6PSBSQVdfQ09ERSB8IEVNUFRZCi0gICAgICAg
RUxTRV9CUkFOQ0ggOjo9ICRlbHNlIFtbIENPREUgXV0KLSAgICAgICAgICAgfCAkZWxpZiBFWFBS
RVNTSU9OIFtbIENPREUgXV0gRUxTRV9CUkFOQ0gKLSAgICAgICAgICAgfCBFTVBUWQotICAgICAg
IEVYUFJFU1NJT04gaGFzIFB5dGhvbiBzeW50YXguCi0iIiIKLQotX19hdXRob3JfXyA9ICd3YW5A
Z29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKScKLQotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9y
dCBzeXMKLQotCi1UT0tFTl9UQUJMRSA9IFsKLSAgICAocmUuY29tcGlsZShyJ1wkdmFyXHMrJyks
ICckdmFyJyksCi0gICAgKHJlLmNvbXBpbGUocidcJGVsaWZccysnKSwgJyRlbGlmJyksCi0gICAg
KHJlLmNvbXBpbGUocidcJGVsc2VccysnKSwgJyRlbHNlJyksCi0gICAgKHJlLmNvbXBpbGUocidc
JGZvclxzKycpLCAnJGZvcicpLAotICAgIChyZS5jb21waWxlKHInXCRpZlxzKycpLCAnJGlmJyks
Ci0gICAgKHJlLmNvbXBpbGUocidcJHJhbmdlXHMrJyksICckcmFuZ2UnKSwKLSAgICAocmUuY29t
cGlsZShyJ1wkW19BLVphLXpdXHcqJyksICckaWQnKSwKLSAgICAocmUuY29tcGlsZShyJ1wkXChc
JFwpJyksICckKCQpJyksCi0gICAgKHJlLmNvbXBpbGUocidcJCcpLCAnJCcpLAotICAgIChyZS5j
b21waWxlKHInXFtcW1xuPycpLCAnW1snKSwKLSAgICAocmUuY29tcGlsZShyJ1xdXF1cbj8nKSwg
J11dJyksCi0gICAgXQotCi0KLWNsYXNzIEN1cnNvcjoKLSAgIiIiUmVwcmVzZW50cyBhIHBvc2l0
aW9uIChsaW5lIGFuZCBjb2x1bW4pIGluIGEgdGV4dCBmaWxlLiIiIgotCi0gIGRlZiBfX2luaXRf
XyhzZWxmLCBsaW5lPS0xLCBjb2x1bW49LTEpOgotICAgIHNlbGYubGluZSA9IGxpbmUKLSAgICBz
ZWxmLmNvbHVtbiA9IGNvbHVtbgotCi0gIGRlZiBfX2VxX18oc2VsZiwgcmhzKToKLSAgICByZXR1
cm4gc2VsZi5saW5lID09IHJocy5saW5lIGFuZCBzZWxmLmNvbHVtbiA9PSByaHMuY29sdW1uCi0K
LSAgZGVmIF9fbmVfXyhzZWxmLCByaHMpOgotICAgIHJldHVybiBub3Qgc2VsZiA9PSByaHMKLQot
ICBkZWYgX19sdF9fKHNlbGYsIHJocyk6Ci0gICAgcmV0dXJuIHNlbGYubGluZSA8IHJocy5saW5l
IG9yICgKLSAgICAgICAgc2VsZi5saW5lID09IHJocy5saW5lIGFuZCBzZWxmLmNvbHVtbiA8IHJo
cy5jb2x1bW4pCi0KLSAgZGVmIF9fbGVfXyhzZWxmLCByaHMpOgotICAgIHJldHVybiBzZWxmIDwg
cmhzIG9yIHNlbGYgPT0gcmhzCi0KLSAgZGVmIF9fZ3RfXyhzZWxmLCByaHMpOgotICAgIHJldHVy
biByaHMgPCBzZWxmCi0KLSAgZGVmIF9fZ2VfXyhzZWxmLCByaHMpOgotICAgIHJldHVybiByaHMg
PD0gc2VsZgotCi0gIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgIGlmIHNlbGYgPT0gRW9mKCk6Ci0g
ICAgICByZXR1cm4gJ0VPRicKLSAgICBlbHNlOgotICAgICAgcmV0dXJuICclcyglcyknICUgKHNl
bGYubGluZSArIDEsIHNlbGYuY29sdW1uKQotCi0gIGRlZiBfX2FkZF9fKHNlbGYsIG9mZnNldCk6
Ci0gICAgcmV0dXJuIEN1cnNvcihzZWxmLmxpbmUsIHNlbGYuY29sdW1uICsgb2Zmc2V0KQotCi0g
IGRlZiBfX3N1Yl9fKHNlbGYsIG9mZnNldCk6Ci0gICAgcmV0dXJuIEN1cnNvcihzZWxmLmxpbmUs
IHNlbGYuY29sdW1uIC0gb2Zmc2V0KQotCi0gIGRlZiBDbG9uZShzZWxmKToKLSAgICAiIiJSZXR1
cm5zIGEgY29weSBvZiBzZWxmLiIiIgotCi0gICAgcmV0dXJuIEN1cnNvcihzZWxmLmxpbmUsIHNl
bGYuY29sdW1uKQotCi0KLSMgU3BlY2lhbCBjdXJzb3IgdG8gaW5kaWNhdGUgdGhlIGVuZC1vZi1m
aWxlLgotZGVmIEVvZigpOgotICAiIiJSZXR1cm5zIHRoZSBzcGVjaWFsIGN1cnNvciB0byBkZW5v
dGUgdGhlIGVuZC1vZi1maWxlLiIiIgotICByZXR1cm4gQ3Vyc29yKC0xLCAtMSkKLQotCi1jbGFz
cyBUb2tlbjoKLSAgIiIiUmVwcmVzZW50cyBhIHRva2VuIGluIGEgUHVtcCBzb3VyY2UgZmlsZS4i
IiIKLQotICBkZWYgX19pbml0X18oc2VsZiwgc3RhcnQ9Tm9uZSwgZW5kPU5vbmUsIHZhbHVlPU5v
bmUsIHRva2VuX3R5cGU9Tm9uZSk6Ci0gICAgaWYgc3RhcnQgaXMgTm9uZToKLSAgICAgIHNlbGYu
c3RhcnQgPSBFb2YoKQotICAgIGVsc2U6Ci0gICAgICBzZWxmLnN0YXJ0ID0gc3RhcnQKLSAgICBp
ZiBlbmQgaXMgTm9uZToKLSAgICAgIHNlbGYuZW5kID0gRW9mKCkKLSAgICBlbHNlOgotICAgICAg
c2VsZi5lbmQgPSBlbmQKLSAgICBzZWxmLnZhbHVlID0gdmFsdWUKLSAgICBzZWxmLnRva2VuX3R5
cGUgPSB0b2tlbl90eXBlCi0KLSAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgcmV0dXJuICdUb2tl
biBAJXM6IFwnJXNcJyB0eXBlPSVzJyAlICgKLSAgICAgICAgc2VsZi5zdGFydCwgc2VsZi52YWx1
ZSwgc2VsZi50b2tlbl90eXBlKQotCi0gIGRlZiBDbG9uZShzZWxmKToKLSAgICAiIiJSZXR1cm5z
IGEgY29weSBvZiBzZWxmLiIiIgotCi0gICAgcmV0dXJuIFRva2VuKHNlbGYuc3RhcnQuQ2xvbmUo
KSwgc2VsZi5lbmQuQ2xvbmUoKSwgc2VsZi52YWx1ZSwKLSAgICAgICAgICAgICAgICAgc2VsZi50
b2tlbl90eXBlKQotCi0KLWRlZiBTdGFydHNXaXRoKGxpbmVzLCBwb3MsIHN0cmluZyk6Ci0gICIi
IlJldHVybnMgVHJ1ZSBpZmYgdGhlIGdpdmVuIHBvc2l0aW9uIGluIGxpbmVzIHN0YXJ0cyB3aXRo
ICdzdHJpbmcnLiIiIgotCi0gIHJldHVybiBsaW5lc1twb3MubGluZV1bcG9zLmNvbHVtbjpdLnN0
YXJ0c3dpdGgoc3RyaW5nKQotCi0KLWRlZiBGaW5kRmlyc3RJbkxpbmUobGluZSwgdG9rZW5fdGFi
bGUpOgotICBiZXN0X21hdGNoX3N0YXJ0ID0gLTEKLSAgZm9yIChyZWdleCwgdG9rZW5fdHlwZSkg
aW4gdG9rZW5fdGFibGU6Ci0gICAgbSA9IHJlZ2V4LnNlYXJjaChsaW5lKQotICAgIGlmIG06Ci0g
ICAgICAjIFdlIGZvdW5kIHJlZ2V4IGluIGxpbmVzCi0gICAgICBpZiBiZXN0X21hdGNoX3N0YXJ0
IDwgMCBvciBtLnN0YXJ0KCkgPCBiZXN0X21hdGNoX3N0YXJ0OgotICAgICAgICBiZXN0X21hdGNo
X3N0YXJ0ID0gbS5zdGFydCgpCi0gICAgICAgIGJlc3RfbWF0Y2hfbGVuZ3RoID0gbS5lbmQoKSAt
IG0uc3RhcnQoKQotICAgICAgICBiZXN0X21hdGNoX3Rva2VuX3R5cGUgPSB0b2tlbl90eXBlCi0K
LSAgaWYgYmVzdF9tYXRjaF9zdGFydCA8IDA6Ci0gICAgcmV0dXJuIE5vbmUKLQotICByZXR1cm4g
KGJlc3RfbWF0Y2hfc3RhcnQsIGJlc3RfbWF0Y2hfbGVuZ3RoLCBiZXN0X21hdGNoX3Rva2VuX3R5
cGUpCi0KLQotZGVmIEZpbmRGaXJzdChsaW5lcywgdG9rZW5fdGFibGUsIGN1cnNvcik6Ci0gICIi
IkZpbmRzIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGFueSBzdHJpbmcgaW4gc3RyaW5ncyBpbiBs
aW5lcy4iIiIKLQotICBzdGFydCA9IGN1cnNvci5DbG9uZSgpCi0gIGN1cl9saW5lX251bWJlciA9
IGN1cnNvci5saW5lCi0gIGZvciBsaW5lIGluIGxpbmVzW3N0YXJ0LmxpbmU6XToKLSAgICBpZiBj
dXJfbGluZV9udW1iZXIgPT0gc3RhcnQubGluZToKLSAgICAgIGxpbmUgPSBsaW5lW3N0YXJ0LmNv
bHVtbjpdCi0gICAgbSA9IEZpbmRGaXJzdEluTGluZShsaW5lLCB0b2tlbl90YWJsZSkKLSAgICBp
ZiBtOgotICAgICAgIyBXZSBmb3VuZCBhIHJlZ2V4IGluIGxpbmUuCi0gICAgICAoc3RhcnRfY29s
dW1uLCBsZW5ndGgsIHRva2VuX3R5cGUpID0gbQotICAgICAgaWYgY3VyX2xpbmVfbnVtYmVyID09
IHN0YXJ0LmxpbmU6Ci0gICAgICAgIHN0YXJ0X2NvbHVtbiArPSBzdGFydC5jb2x1bW4KLSAgICAg
IGZvdW5kX3N0YXJ0ID0gQ3Vyc29yKGN1cl9saW5lX251bWJlciwgc3RhcnRfY29sdW1uKQotICAg
ICAgZm91bmRfZW5kID0gZm91bmRfc3RhcnQgKyBsZW5ndGgKLSAgICAgIHJldHVybiBNYWtlVG9r
ZW4obGluZXMsIGZvdW5kX3N0YXJ0LCBmb3VuZF9lbmQsIHRva2VuX3R5cGUpCi0gICAgY3VyX2xp
bmVfbnVtYmVyICs9IDEKLSAgIyBXZSBmYWlsZWQgdG8gZmluZCBzdHIgaW4gbGluZXMKLSAgcmV0
dXJuIE5vbmUKLQotCi1kZWYgU3ViU3RyaW5nKGxpbmVzLCBzdGFydCwgZW5kKToKLSAgIiIiUmV0
dXJucyBhIHN1YnN0cmluZyBpbiBsaW5lcy4iIiIKLQotICBpZiBlbmQgPT0gRW9mKCk6Ci0gICAg
ZW5kID0gQ3Vyc29yKGxlbihsaW5lcykgLSAxLCBsZW4obGluZXNbLTFdKSkKLQotICBpZiBzdGFy
dCA+PSBlbmQ6Ci0gICAgcmV0dXJuICcnCi0KLSAgaWYgc3RhcnQubGluZSA9PSBlbmQubGluZToK
LSAgICByZXR1cm4gbGluZXNbc3RhcnQubGluZV1bc3RhcnQuY29sdW1uOmVuZC5jb2x1bW5dCi0K
LSAgcmVzdWx0X2xpbmVzID0gKFtsaW5lc1tzdGFydC5saW5lXVtzdGFydC5jb2x1bW46XV0gKwot
ICAgICAgICAgICAgICAgICAgbGluZXNbc3RhcnQubGluZSArIDE6ZW5kLmxpbmVdICsKLSAgICAg
ICAgICAgICAgICAgIFtsaW5lc1tlbmQubGluZV1bOmVuZC5jb2x1bW5dXSkKLSAgcmV0dXJuICcn
LmpvaW4ocmVzdWx0X2xpbmVzKQotCi0KLWRlZiBTdHJpcE1ldGFDb21tZW50cyhzdHIpOgotICAi
IiJTdHJpcCBtZXRhIGNvbW1lbnRzIGZyb20gZWFjaCBsaW5lIGluIHRoZSBnaXZlbiBzdHJpbmcu
IiIiCi0KLSAgIyBGaXJzdCwgY29tcGxldGVseSByZW1vdmUgbGluZXMgY29udGFpbmluZyBub3Ro
aW5nIGJ1dCBhIG1ldGEKLSAgIyBjb21tZW50LCBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nIFxuLgot
ICBzdHIgPSByZS5zdWIocideXHMqXCRcJC4qXG4nLCAnJywgc3RyKQotCi0gICMgVGhlbiwgcmVt
b3ZlIG1ldGEgY29tbWVudHMgZnJvbSBjb250ZW50ZnVsIGxpbmVzLgotICByZXR1cm4gcmUuc3Vi
KHInXHMqXCRcJC4qJywgJycsIHN0cikKLQotCi1kZWYgTWFrZVRva2VuKGxpbmVzLCBzdGFydCwg
ZW5kLCB0b2tlbl90eXBlKToKLSAgIiIiQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBUb2tlbi4i
IiIKLQotICByZXR1cm4gVG9rZW4oc3RhcnQsIGVuZCwgU3ViU3RyaW5nKGxpbmVzLCBzdGFydCwg
ZW5kKSwgdG9rZW5fdHlwZSkKLQotCi1kZWYgUGFyc2VUb2tlbihsaW5lcywgcG9zLCByZWdleCwg
dG9rZW5fdHlwZSk6Ci0gIGxpbmUgPSBsaW5lc1twb3MubGluZV1bcG9zLmNvbHVtbjpdCi0gIG0g
PSByZWdleC5zZWFyY2gobGluZSkKLSAgaWYgbSBhbmQgbm90IG0uc3RhcnQoKToKLSAgICByZXR1
cm4gTWFrZVRva2VuKGxpbmVzLCBwb3MsIHBvcyArIG0uZW5kKCksIHRva2VuX3R5cGUpCi0gIGVs
c2U6Ci0gICAgcHJpbnQgJ0VSUk9SOiAlcyBleHBlY3RlZCBhdCAlcy4nICUgKHRva2VuX3R5cGUs
IHBvcykKLSAgICBzeXMuZXhpdCgxKQotCi0KLUlEX1JFR0VYID0gcmUuY29tcGlsZShyJ1tfQS1a
YS16XVx3KicpCi1FUV9SRUdFWCA9IHJlLmNvbXBpbGUocic9JykKLVJFU1RfT0ZfTElORV9SRUdF
WCA9IHJlLmNvbXBpbGUocicuKj8oPz0kfFwkXCQpJykKLU9QVElPTkFMX1dISVRFX1NQQUNFU19S
RUdFWCA9IHJlLmNvbXBpbGUocidccyonKQotV0hJVEVfU1BBQ0VfUkVHRVggPSByZS5jb21waWxl
KHInXHMnKQotRE9UX0RPVF9SRUdFWCA9IHJlLmNvbXBpbGUocidcLlwuJykKLQotCi1kZWYgU2tp
cChsaW5lcywgcG9zLCByZWdleCk6Ci0gIGxpbmUgPSBsaW5lc1twb3MubGluZV1bcG9zLmNvbHVt
bjpdCi0gIG0gPSByZS5zZWFyY2gocmVnZXgsIGxpbmUpCi0gIGlmIG0gYW5kIG5vdCBtLnN0YXJ0
KCk6Ci0gICAgcmV0dXJuIHBvcyArIG0uZW5kKCkKLSAgZWxzZToKLSAgICByZXR1cm4gcG9zCi0K
LQotZGVmIFNraXBVbnRpbChsaW5lcywgcG9zLCByZWdleCwgdG9rZW5fdHlwZSk6Ci0gIGxpbmUg
PSBsaW5lc1twb3MubGluZV1bcG9zLmNvbHVtbjpdCi0gIG0gPSByZS5zZWFyY2gocmVnZXgsIGxp
bmUpCi0gIGlmIG06Ci0gICAgcmV0dXJuIHBvcyArIG0uc3RhcnQoKQotICBlbHNlOgotICAgIHBy
aW50ICgnRVJST1I6ICVzIGV4cGVjdGVkIG9uIGxpbmUgJXMgYWZ0ZXIgY29sdW1uICVzLicgJQot
ICAgICAgICAgICAodG9rZW5fdHlwZSwgcG9zLmxpbmUgKyAxLCBwb3MuY29sdW1uKSkKLSAgICBz
eXMuZXhpdCgxKQotCi0KLWRlZiBQYXJzZUV4cFRva2VuSW5QYXJlbnMobGluZXMsIHBvcyk6Ci0g
IGRlZiBQYXJzZUluUGFyZW5zKHBvcyk6Ci0gICAgcG9zID0gU2tpcChsaW5lcywgcG9zLCBPUFRJ
T05BTF9XSElURV9TUEFDRVNfUkVHRVgpCi0gICAgcG9zID0gU2tpcChsaW5lcywgcG9zLCByJ1wo
JykKLSAgICBwb3MgPSBQYXJzZShwb3MpCi0gICAgcG9zID0gU2tpcChsaW5lcywgcG9zLCByJ1wp
JykKLSAgICByZXR1cm4gcG9zCi0KLSAgZGVmIFBhcnNlKHBvcyk6Ci0gICAgcG9zID0gU2tpcFVu
dGlsKGxpbmVzLCBwb3MsIHInXCh8XCknLCAnKScpCi0gICAgaWYgU3ViU3RyaW5nKGxpbmVzLCBw
b3MsIHBvcyArIDEpID09ICcoJzoKLSAgICAgIHBvcyA9IFBhcnNlKHBvcyArIDEpCi0gICAgICBw
b3MgPSBTa2lwKGxpbmVzLCBwb3MsIHInXCknKQotICAgICAgcmV0dXJuIFBhcnNlKHBvcykKLSAg
ICBlbHNlOgotICAgICAgcmV0dXJuIHBvcwotCi0gIHN0YXJ0ID0gcG9zLkNsb25lKCkKLSAgcG9z
ID0gUGFyc2VJblBhcmVucyhwb3MpCi0gIHJldHVybiBNYWtlVG9rZW4obGluZXMsIHN0YXJ0LCBw
b3MsICdleHAnKQotCi0KLWRlZiBSU3RyaXBOZXdMaW5lRnJvbVRva2VuKHRva2VuKToKLSAgaWYg
dG9rZW4udmFsdWUuZW5kc3dpdGgoJ1xuJyk6Ci0gICAgcmV0dXJuIFRva2VuKHRva2VuLnN0YXJ0
LCB0b2tlbi5lbmQsIHRva2VuLnZhbHVlWzotMV0sIHRva2VuLnRva2VuX3R5cGUpCi0gIGVsc2U6
Ci0gICAgcmV0dXJuIHRva2VuCi0KLQotZGVmIFRva2VuaXplTGluZXMobGluZXMsIHBvcyk6Ci0g
IHdoaWxlIFRydWU6Ci0gICAgZm91bmQgPSBGaW5kRmlyc3QobGluZXMsIFRPS0VOX1RBQkxFLCBw
b3MpCi0gICAgaWYgbm90IGZvdW5kOgotICAgICAgeWllbGQgTWFrZVRva2VuKGxpbmVzLCBwb3Ms
IEVvZigpLCAnY29kZScpCi0gICAgICByZXR1cm4KLQotICAgIGlmIGZvdW5kLnN0YXJ0ID09IHBv
czoKLSAgICAgIHByZXZfdG9rZW4gPSBOb25lCi0gICAgICBwcmV2X3Rva2VuX3JzdHJpcHBlZCA9
IE5vbmUKLSAgICBlbHNlOgotICAgICAgcHJldl90b2tlbiA9IE1ha2VUb2tlbihsaW5lcywgcG9z
LCBmb3VuZC5zdGFydCwgJ2NvZGUnKQotICAgICAgcHJldl90b2tlbl9yc3RyaXBwZWQgPSBSU3Ry
aXBOZXdMaW5lRnJvbVRva2VuKHByZXZfdG9rZW4pCi0KLSAgICBpZiBmb3VuZC50b2tlbl90eXBl
ID09ICckdmFyJzoKLSAgICAgIGlmIHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVs
ZCBwcmV2X3Rva2VuX3JzdHJpcHBlZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rva2Vu
ID0gUGFyc2VUb2tlbihsaW5lcywgZm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAgIHlp
ZWxkIGlkX3Rva2VuCi0gICAgICBwb3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIE9QVElP
TkFMX1dISVRFX1NQQUNFU19SRUdFWCkKLQotICAgICAgZXFfdG9rZW4gPSBQYXJzZVRva2VuKGxp
bmVzLCBwb3MsIEVRX1JFR0VYLCAnPScpCi0gICAgICB5aWVsZCBlcV90b2tlbgotICAgICAgcG9z
ID0gU2tpcChsaW5lcywgZXFfdG9rZW4uZW5kLCByJ1xzKicpCi0KLSAgICAgIGlmIFN1YlN0cmlu
ZyhsaW5lcywgcG9zLCBwb3MgKyAyKSAhPSAnW1snOgotICAgICAgICBleHBfdG9rZW4gPSBQYXJz
ZVRva2VuKGxpbmVzLCBwb3MsIFJFU1RfT0ZfTElORV9SRUdFWCwgJ2V4cCcpCi0gICAgICAgIHlp
ZWxkIGV4cF90b2tlbgotICAgICAgICBwb3MgPSBDdXJzb3IoZXhwX3Rva2VuLmVuZC5saW5lICsg
MSwgMCkKLSAgICBlbGlmIGZvdW5kLnRva2VuX3R5cGUgPT0gJyRmb3InOgotICAgICAgaWYgcHJl
dl90b2tlbl9yc3RyaXBwZWQ6Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW5fcnN0cmlwcGVkCi0g
ICAgICB5aWVsZCBmb3VuZAotICAgICAgaWRfdG9rZW4gPSBQYXJzZVRva2VuKGxpbmVzLCBmb3Vu
ZC5lbmQsIElEX1JFR0VYLCAnaWQnKQotICAgICAgeWllbGQgaWRfdG9rZW4KLSAgICAgIHBvcyA9
IFNraXAobGluZXMsIGlkX3Rva2VuLmVuZCwgV0hJVEVfU1BBQ0VfUkVHRVgpCi0gICAgZWxpZiBm
b3VuZC50b2tlbl90eXBlID09ICckcmFuZ2UnOgotICAgICAgaWYgcHJldl90b2tlbl9yc3RyaXBw
ZWQ6Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW5fcnN0cmlwcGVkCi0gICAgICB5aWVsZCBmb3Vu
ZAotICAgICAgaWRfdG9rZW4gPSBQYXJzZVRva2VuKGxpbmVzLCBmb3VuZC5lbmQsIElEX1JFR0VY
LCAnaWQnKQotICAgICAgeWllbGQgaWRfdG9rZW4KLSAgICAgIHBvcyA9IFNraXAobGluZXMsIGlk
X3Rva2VuLmVuZCwgT1BUSU9OQUxfV0hJVEVfU1BBQ0VTX1JFR0VYKQotCi0gICAgICBkb3RzX3Bv
cyA9IFNraXBVbnRpbChsaW5lcywgcG9zLCBET1RfRE9UX1JFR0VYLCAnLi4nKQotICAgICAgeWll
bGQgTWFrZVRva2VuKGxpbmVzLCBwb3MsIGRvdHNfcG9zLCAnZXhwJykKLSAgICAgIHlpZWxkIE1h
a2VUb2tlbihsaW5lcywgZG90c19wb3MsIGRvdHNfcG9zICsgMiwgJy4uJykKLSAgICAgIHBvcyA9
IGRvdHNfcG9zICsgMgotICAgICAgbmV3X3BvcyA9IEN1cnNvcihwb3MubGluZSArIDEsIDApCi0g
ICAgICB5aWVsZCBNYWtlVG9rZW4obGluZXMsIHBvcywgbmV3X3BvcywgJ2V4cCcpCi0gICAgICBw
b3MgPSBuZXdfcG9zCi0gICAgZWxpZiBmb3VuZC50b2tlbl90eXBlID09ICckJzoKLSAgICAgIGlm
IHByZXZfdG9rZW46Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW4KLSAgICAgIHlpZWxkIGZvdW5k
Ci0gICAgICBleHBfdG9rZW4gPSBQYXJzZUV4cFRva2VuSW5QYXJlbnMobGluZXMsIGZvdW5kLmVu
ZCkKLSAgICAgIHlpZWxkIGV4cF90b2tlbgotICAgICAgcG9zID0gZXhwX3Rva2VuLmVuZAotICAg
IGVsaWYgKGZvdW5kLnRva2VuX3R5cGUgPT0gJ11dJyBvciBmb3VuZC50b2tlbl90eXBlID09ICck
aWYnIG9yCi0gICAgICAgICAgZm91bmQudG9rZW5fdHlwZSA9PSAnJGVsaWYnIG9yIGZvdW5kLnRv
a2VuX3R5cGUgPT0gJyRlbHNlJyk6Ci0gICAgICBpZiBwcmV2X3Rva2VuX3JzdHJpcHBlZDoKLSAg
ICAgICAgeWllbGQgcHJldl90b2tlbl9yc3RyaXBwZWQKLSAgICAgIHlpZWxkIGZvdW5kCi0gICAg
ICBwb3MgPSBmb3VuZC5lbmQKLSAgICBlbHNlOgotICAgICAgaWYgcHJldl90b2tlbjoKLSAgICAg
ICAgeWllbGQgcHJldl90b2tlbgotICAgICAgeWllbGQgZm91bmQKLSAgICAgIHBvcyA9IGZvdW5k
LmVuZAotCi0KLWRlZiBUb2tlbml6ZShzKToKLSAgIiIiQSBnZW5lcmF0b3IgdGhhdCB5aWVsZHMg
dGhlIHRva2VucyBpbiB0aGUgZ2l2ZW4gc3RyaW5nLiIiIgotICBpZiBzICE9ICcnOgotICAgIGxp
bmVzID0gcy5zcGxpdGxpbmVzKFRydWUpCi0gICAgZm9yIHRva2VuIGluIFRva2VuaXplTGluZXMo
bGluZXMsIEN1cnNvcigwLCAwKSk6Ci0gICAgICB5aWVsZCB0b2tlbgotCi0KLWNsYXNzIENvZGVO
b2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgYXRvbWljX2NvZGVfbGlzdD1Ob25lKToKLSAgICBz
ZWxmLmF0b21pY19jb2RlID0gYXRvbWljX2NvZGVfbGlzdAotCi0KLWNsYXNzIFZhck5vZGU6Ci0g
IGRlZiBfX2luaXRfXyhzZWxmLCBpZGVudGlmaWVyPU5vbmUsIGF0b21pY19jb2RlPU5vbmUpOgot
ICAgIHNlbGYuaWRlbnRpZmllciA9IGlkZW50aWZpZXIKLSAgICBzZWxmLmF0b21pY19jb2RlID0g
YXRvbWljX2NvZGUKLQotCi1jbGFzcyBSYW5nZU5vZGU6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCBp
ZGVudGlmaWVyPU5vbmUsIGV4cDE9Tm9uZSwgZXhwMj1Ob25lKToKLSAgICBzZWxmLmlkZW50aWZp
ZXIgPSBpZGVudGlmaWVyCi0gICAgc2VsZi5leHAxID0gZXhwMQotICAgIHNlbGYuZXhwMiA9IGV4
cDIKLQotCi1jbGFzcyBGb3JOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1O
b25lLCBzZXA9Tm9uZSwgY29kZT1Ob25lKToKLSAgICBzZWxmLmlkZW50aWZpZXIgPSBpZGVudGlm
aWVyCi0gICAgc2VsZi5zZXAgPSBzZXAKLSAgICBzZWxmLmNvZGUgPSBjb2RlCi0KLQotY2xhc3Mg
RWxzZU5vZGU6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCBlbHNlX2JyYW5jaD1Ob25lKToKLSAgICBz
ZWxmLmVsc2VfYnJhbmNoID0gZWxzZV9icmFuY2gKLQotCi1jbGFzcyBJZk5vZGU6Ci0gIGRlZiBf
X2luaXRfXyhzZWxmLCBleHA9Tm9uZSwgdGhlbl9icmFuY2g9Tm9uZSwgZWxzZV9icmFuY2g9Tm9u
ZSk6Ci0gICAgc2VsZi5leHAgPSBleHAKLSAgICBzZWxmLnRoZW5fYnJhbmNoID0gdGhlbl9icmFu
Y2gKLSAgICBzZWxmLmVsc2VfYnJhbmNoID0gZWxzZV9icmFuY2gKLQotCi1jbGFzcyBSYXdDb2Rl
Tm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRva2VuPU5vbmUpOgotICAgIHNlbGYucmF3X2Nv
ZGUgPSB0b2tlbgotCi0KLWNsYXNzIExpdGVyYWxEb2xsYXJOb2RlOgotICBkZWYgX19pbml0X18o
c2VsZiwgdG9rZW4pOgotICAgIHNlbGYudG9rZW4gPSB0b2tlbgotCi0KLWNsYXNzIEV4cE5vZGU6
Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCB0b2tlbiwgcHl0aG9uX2V4cCk6Ci0gICAgc2VsZi50b2tl
biA9IHRva2VuCi0gICAgc2VsZi5weXRob25fZXhwID0gcHl0aG9uX2V4cAotCi0KLWRlZiBQb3BG
cm9udChhX2xpc3QpOgotICBoZWFkID0gYV9saXN0WzBdCi0gIGFfbGlzdFs6MV0gPSBbXQotICBy
ZXR1cm4gaGVhZAotCi0KLWRlZiBQdXNoRnJvbnQoYV9saXN0LCBlbGVtKToKLSAgYV9saXN0Wzow
XSA9IFtlbGVtXQotCi0KLWRlZiBQb3BUb2tlbihhX2xpc3QsIHRva2VuX3R5cGU9Tm9uZSk6Ci0g
IHRva2VuID0gUG9wRnJvbnQoYV9saXN0KQotICBpZiB0b2tlbl90eXBlIGlzIG5vdCBOb25lIGFu
ZCB0b2tlbi50b2tlbl90eXBlICE9IHRva2VuX3R5cGU6Ci0gICAgcHJpbnQgJ0VSUk9SOiAlcyBl
eHBlY3RlZCBhdCAlcycgJSAodG9rZW5fdHlwZSwgdG9rZW4uc3RhcnQpCi0gICAgcHJpbnQgJ0VS
Uk9SOiAlcyBmb3VuZCBpbnN0ZWFkJyAlICh0b2tlbiwpCi0gICAgc3lzLmV4aXQoMSkKLQotICBy
ZXR1cm4gdG9rZW4KLQotCi1kZWYgUGVla1Rva2VuKGFfbGlzdCk6Ci0gIGlmIG5vdCBhX2xpc3Q6
Ci0gICAgcmV0dXJuIE5vbmUKLQotICByZXR1cm4gYV9saXN0WzBdCi0KLQotZGVmIFBhcnNlRXhw
Tm9kZSh0b2tlbik6Ci0gIHB5dGhvbl9leHAgPSByZS5zdWIocicoW19BLVphLXpdXHcqKScsIHIn
c2VsZi5HZXRWYWx1ZSgiXDEiKScsIHRva2VuLnZhbHVlKQotICByZXR1cm4gRXhwTm9kZSh0b2tl
biwgcHl0aG9uX2V4cCkKLQotCi1kZWYgUGFyc2VFbHNlTm9kZSh0b2tlbnMpOgotICBkZWYgUG9w
KHRva2VuX3R5cGU9Tm9uZSk6Ci0gICAgcmV0dXJuIFBvcFRva2VuKHRva2VucywgdG9rZW5fdHlw
ZSkKLQotICBuZXh0ID0gUGVla1Rva2VuKHRva2VucykKLSAgaWYgbm90IG5leHQ6Ci0gICAgcmV0
dXJuIE5vbmUKLSAgaWYgbmV4dC50b2tlbl90eXBlID09ICckZWxzZSc6Ci0gICAgUG9wKCckZWxz
ZScpCi0gICAgUG9wKCdbWycpCi0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMp
Ci0gICAgUG9wKCddXScpCi0gICAgcmV0dXJuIGNvZGVfbm9kZQotICBlbGlmIG5leHQudG9rZW5f
dHlwZSA9PSAnJGVsaWYnOgotICAgIFBvcCgnJGVsaWYnKQotICAgIGV4cCA9IFBvcCgnY29kZScp
Ci0gICAgUG9wKCdbWycpCi0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0g
ICAgUG9wKCddXScpCi0gICAgaW5uZXJfZWxzZV9ub2RlID0gUGFyc2VFbHNlTm9kZSh0b2tlbnMp
Ci0gICAgcmV0dXJuIENvZGVOb2RlKFtJZk5vZGUoUGFyc2VFeHBOb2RlKGV4cCksIGNvZGVfbm9k
ZSwgaW5uZXJfZWxzZV9ub2RlKV0pCi0gIGVsaWYgbm90IG5leHQudmFsdWUuc3RyaXAoKToKLSAg
ICBQb3AoJ2NvZGUnKQotICAgIHJldHVybiBQYXJzZUVsc2VOb2RlKHRva2VucykKLSAgZWxzZToK
LSAgICByZXR1cm4gTm9uZQotCi0KLWRlZiBQYXJzZUF0b21pY0NvZGVOb2RlKHRva2Vucyk6Ci0g
IGRlZiBQb3AodG9rZW5fdHlwZT1Ob25lKToKLSAgICByZXR1cm4gUG9wVG9rZW4odG9rZW5zLCB0
b2tlbl90eXBlKQotCi0gIGhlYWQgPSBQb3BGcm9udCh0b2tlbnMpCi0gIHQgPSBoZWFkLnRva2Vu
X3R5cGUKLSAgaWYgdCA9PSAnY29kZSc6Ci0gICAgcmV0dXJuIFJhd0NvZGVOb2RlKGhlYWQpCi0g
IGVsaWYgdCA9PSAnJHZhcic6Ci0gICAgaWRfdG9rZW4gPSBQb3AoJ2lkJykKLSAgICBQb3AoJz0n
KQotICAgIG5leHQgPSBQZWVrVG9rZW4odG9rZW5zKQotICAgIGlmIG5leHQudG9rZW5fdHlwZSA9
PSAnZXhwJzoKLSAgICAgIGV4cF90b2tlbiA9IFBvcCgpCi0gICAgICByZXR1cm4gVmFyTm9kZShp
ZF90b2tlbiwgUGFyc2VFeHBOb2RlKGV4cF90b2tlbikpCi0gICAgUG9wKCdbWycpCi0gICAgY29k
ZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9wKCddXScpCi0gICAgcmV0dXJu
IFZhck5vZGUoaWRfdG9rZW4sIGNvZGVfbm9kZSkKLSAgZWxpZiB0ID09ICckZm9yJzoKLSAgICBp
ZF90b2tlbiA9IFBvcCgnaWQnKQotICAgIG5leHRfdG9rZW4gPSBQZWVrVG9rZW4odG9rZW5zKQot
ICAgIGlmIG5leHRfdG9rZW4udG9rZW5fdHlwZSA9PSAnY29kZSc6Ci0gICAgICBzZXBfdG9rZW4g
PSBuZXh0X3Rva2VuCi0gICAgICBQb3AoJ2NvZGUnKQotICAgIGVsc2U6Ci0gICAgICBzZXBfdG9r
ZW4gPSBOb25lCi0gICAgUG9wKCdbWycpCi0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0
b2tlbnMpCi0gICAgUG9wKCddXScpCi0gICAgcmV0dXJuIEZvck5vZGUoaWRfdG9rZW4sIHNlcF90
b2tlbiwgY29kZV9ub2RlKQotICBlbGlmIHQgPT0gJyRpZic6Ci0gICAgZXhwX3Rva2VuID0gUG9w
KCdjb2RlJykKLSAgICBQb3AoJ1tbJykKLSAgICBjb2RlX25vZGUgPSBQYXJzZUNvZGVOb2RlKHRv
a2VucykKLSAgICBQb3AoJ11dJykKLSAgICBlbHNlX25vZGUgPSBQYXJzZUVsc2VOb2RlKHRva2Vu
cykKLSAgICByZXR1cm4gSWZOb2RlKFBhcnNlRXhwTm9kZShleHBfdG9rZW4pLCBjb2RlX25vZGUs
IGVsc2Vfbm9kZSkKLSAgZWxpZiB0ID09ICckcmFuZ2UnOgotICAgIGlkX3Rva2VuID0gUG9wKCdp
ZCcpCi0gICAgZXhwMV90b2tlbiA9IFBvcCgnZXhwJykKLSAgICBQb3AoJy4uJykKLSAgICBleHAy
X3Rva2VuID0gUG9wKCdleHAnKQotICAgIHJldHVybiBSYW5nZU5vZGUoaWRfdG9rZW4sIFBhcnNl
RXhwTm9kZShleHAxX3Rva2VuKSwKLSAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhwTm9kZShl
eHAyX3Rva2VuKSkKLSAgZWxpZiB0ID09ICckaWQnOgotICAgIHJldHVybiBQYXJzZUV4cE5vZGUo
VG9rZW4oaGVhZC5zdGFydCArIDEsIGhlYWQuZW5kLCBoZWFkLnZhbHVlWzE6XSwgJ2lkJykpCi0g
IGVsaWYgdCA9PSAnJCgkKSc6Ci0gICAgcmV0dXJuIExpdGVyYWxEb2xsYXJOb2RlKGhlYWQpCi0g
IGVsaWYgdCA9PSAnJCc6Ci0gICAgZXhwX3Rva2VuID0gUG9wKCdleHAnKQotICAgIHJldHVybiBQ
YXJzZUV4cE5vZGUoZXhwX3Rva2VuKQotICBlbGlmIHQgPT0gJ1tbJzoKLSAgICBjb2RlX25vZGUg
PSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAgICBQb3AoJ11dJykKLSAgICByZXR1cm4gY29kZV9u
b2RlCi0gIGVsc2U6Ci0gICAgUHVzaEZyb250KHRva2VucywgaGVhZCkKLSAgICByZXR1cm4gTm9u
ZQotCi0KLWRlZiBQYXJzZUNvZGVOb2RlKHRva2Vucyk6Ci0gIGF0b21pY19jb2RlX2xpc3QgPSBb
XQotICB3aGlsZSBUcnVlOgotICAgIGlmIG5vdCB0b2tlbnM6Ci0gICAgICBicmVhawotICAgIGF0
b21pY19jb2RlX25vZGUgPSBQYXJzZUF0b21pY0NvZGVOb2RlKHRva2VucykKLSAgICBpZiBhdG9t
aWNfY29kZV9ub2RlOgotICAgICAgYXRvbWljX2NvZGVfbGlzdC5hcHBlbmQoYXRvbWljX2NvZGVf
bm9kZSkKLSAgICBlbHNlOgotICAgICAgYnJlYWsKLSAgcmV0dXJuIENvZGVOb2RlKGF0b21pY19j
b2RlX2xpc3QpCi0KLQotZGVmIFBhcnNlVG9BU1QocHVtcF9zcmNfdGV4dCk6Ci0gICIiIkNvbnZl
cnQgdGhlIGdpdmVuIFB1bXAgc291cmNlIHRleHQgaW50byBhbiBBU1QuIiIiCi0gIHRva2VucyA9
IGxpc3QoVG9rZW5pemUocHVtcF9zcmNfdGV4dCkpCi0gIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5v
ZGUodG9rZW5zKQotICByZXR1cm4gY29kZV9ub2RlCi0KLQotY2xhc3MgRW52OgotICBkZWYgX19p
bml0X18oc2VsZik6Ci0gICAgc2VsZi52YXJpYWJsZXMgPSBbXQotICAgIHNlbGYucmFuZ2VzID0g
W10KLQotICBkZWYgQ2xvbmUoc2VsZik6Ci0gICAgY2xvbmUgPSBFbnYoKQotICAgIGNsb25lLnZh
cmlhYmxlcyA9IHNlbGYudmFyaWFibGVzWzpdCi0gICAgY2xvbmUucmFuZ2VzID0gc2VsZi5yYW5n
ZXNbOl0KLSAgICByZXR1cm4gY2xvbmUKLQotICBkZWYgUHVzaFZhcmlhYmxlKHNlbGYsIHZhciwg
dmFsdWUpOgotICAgICMgSWYgdmFsdWUgbG9va3MgbGlrZSBhbiBpbnQsIHN0b3JlIGl0IGFzIGFu
IGludC4KLSAgICB0cnk6Ci0gICAgICBpbnRfdmFsdWUgPSBpbnQodmFsdWUpCi0gICAgICBpZiAo
JyVzJyAlIGludF92YWx1ZSkgPT0gdmFsdWU6Ci0gICAgICAgIHZhbHVlID0gaW50X3ZhbHVlCi0g
ICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgIHBhc3MKLSAgICBzZWxmLnZhcmlhYmxlc1s6MF0g
PSBbKHZhciwgdmFsdWUpXQotCi0gIGRlZiBQb3BWYXJpYWJsZShzZWxmKToKLSAgICBzZWxmLnZh
cmlhYmxlc1s6MV0gPSBbXQotCi0gIGRlZiBQdXNoUmFuZ2Uoc2VsZiwgdmFyLCBsb3dlciwgdXBw
ZXIpOgotICAgIHNlbGYucmFuZ2VzWzowXSA9IFsodmFyLCBsb3dlciwgdXBwZXIpXQotCi0gIGRl
ZiBQb3BSYW5nZShzZWxmKToKLSAgICBzZWxmLnJhbmdlc1s6MV0gPSBbXQotCi0gIGRlZiBHZXRW
YWx1ZShzZWxmLCBpZGVudGlmaWVyKToKLSAgICBmb3IgKHZhciwgdmFsdWUpIGluIHNlbGYudmFy
aWFibGVzOgotICAgICAgaWYgaWRlbnRpZmllciA9PSB2YXI6Ci0gICAgICAgIHJldHVybiB2YWx1
ZQotCi0gICAgcHJpbnQgJ0VSUk9SOiBtZXRhIHZhcmlhYmxlICVzIGlzIHVuZGVmaW5lZC4nICUg
KGlkZW50aWZpZXIsKQotICAgIHN5cy5leGl0KDEpCi0KLSAgZGVmIEV2YWxFeHAoc2VsZiwgZXhw
KToKLSAgICB0cnk6Ci0gICAgICByZXN1bHQgPSBldmFsKGV4cC5weXRob25fZXhwKQotICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICBwcmludCAnRVJST1I6IGNhdWdodCBleGNlcHRpb24g
JXM6ICVzJyAlIChlLl9fY2xhc3NfXy5fX25hbWVfXywgZSkKLSAgICAgIHByaW50ICgnRVJST1I6
IGZhaWxlZCB0byBldmFsdWF0ZSBtZXRhIGV4cHJlc3Npb24gJXMgYXQgJXMnICUKLSAgICAgICAg
ICAgICAoZXhwLnB5dGhvbl9leHAsIGV4cC50b2tlbi5zdGFydCkpCi0gICAgICBzeXMuZXhpdCgx
KQotICAgIHJldHVybiByZXN1bHQKLQotICBkZWYgR2V0UmFuZ2Uoc2VsZiwgaWRlbnRpZmllcik6
Ci0gICAgZm9yICh2YXIsIGxvd2VyLCB1cHBlcikgaW4gc2VsZi5yYW5nZXM6Ci0gICAgICBpZiBp
ZGVudGlmaWVyID09IHZhcjoKLSAgICAgICAgcmV0dXJuIChsb3dlciwgdXBwZXIpCi0KLSAgICBw
cmludCAnRVJST1I6IHJhbmdlICVzIGlzIHVuZGVmaW5lZC4nICUgKGlkZW50aWZpZXIsKQotICAg
IHN5cy5leGl0KDEpCi0KLQotY2xhc3MgT3V0cHV0OgotICBkZWYgX19pbml0X18oc2VsZik6Ci0g
ICAgc2VsZi5zdHJpbmcgPSAnJwotCi0gIGRlZiBHZXRMYXN0TGluZShzZWxmKToKLSAgICBpbmRl
eCA9IHNlbGYuc3RyaW5nLnJmaW5kKCdcbicpCi0gICAgaWYgaW5kZXggPCAwOgotICAgICAgcmV0
dXJuICcnCi0KLSAgICByZXR1cm4gc2VsZi5zdHJpbmdbaW5kZXggKyAxOl0KLQotICBkZWYgQXBw
ZW5kKHNlbGYsIHMpOgotICAgIHNlbGYuc3RyaW5nICs9IHMKLQotCi1kZWYgUnVuQXRvbWljQ29k
ZShlbnYsIG5vZGUsIG91dHB1dCk6Ci0gIGlmIGlzaW5zdGFuY2Uobm9kZSwgVmFyTm9kZSk6Ci0g
ICAgaWRlbnRpZmllciA9IG5vZGUuaWRlbnRpZmllci52YWx1ZS5zdHJpcCgpCi0gICAgcmVzdWx0
ID0gT3V0cHV0KCkKLSAgICBSdW5BdG9taWNDb2RlKGVudi5DbG9uZSgpLCBub2RlLmF0b21pY19j
b2RlLCByZXN1bHQpCi0gICAgdmFsdWUgPSByZXN1bHQuc3RyaW5nCi0gICAgZW52LlB1c2hWYXJp
YWJsZShpZGVudGlmaWVyLCB2YWx1ZSkKLSAgZWxpZiBpc2luc3RhbmNlKG5vZGUsIFJhbmdlTm9k
ZSk6Ci0gICAgaWRlbnRpZmllciA9IG5vZGUuaWRlbnRpZmllci52YWx1ZS5zdHJpcCgpCi0gICAg
bG93ZXIgPSBpbnQoZW52LkV2YWxFeHAobm9kZS5leHAxKSkKLSAgICB1cHBlciA9IGludChlbnYu
RXZhbEV4cChub2RlLmV4cDIpKQotICAgIGVudi5QdXNoUmFuZ2UoaWRlbnRpZmllciwgbG93ZXIs
IHVwcGVyKQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgRm9yTm9kZSk6Ci0gICAgaWRlbnRpZmll
ciA9IG5vZGUuaWRlbnRpZmllci52YWx1ZS5zdHJpcCgpCi0gICAgaWYgbm9kZS5zZXAgaXMgTm9u
ZToKLSAgICAgIHNlcCA9ICcnCi0gICAgZWxzZToKLSAgICAgIHNlcCA9IG5vZGUuc2VwLnZhbHVl
Ci0gICAgKGxvd2VyLCB1cHBlcikgPSBlbnYuR2V0UmFuZ2UoaWRlbnRpZmllcikKLSAgICBmb3Ig
aSBpbiByYW5nZShsb3dlciwgdXBwZXIgKyAxKToKLSAgICAgIG5ld19lbnYgPSBlbnYuQ2xvbmUo
KQotICAgICAgbmV3X2Vudi5QdXNoVmFyaWFibGUoaWRlbnRpZmllciwgaSkKLSAgICAgIFJ1bkNv
ZGUobmV3X2Vudiwgbm9kZS5jb2RlLCBvdXRwdXQpCi0gICAgICBpZiBpICE9IHVwcGVyOgotICAg
ICAgICBvdXRwdXQuQXBwZW5kKHNlcCkKLSAgZWxpZiBpc2luc3RhbmNlKG5vZGUsIFJhd0NvZGVO
b2RlKToKLSAgICBvdXRwdXQuQXBwZW5kKG5vZGUucmF3X2NvZGUudmFsdWUpCi0gIGVsaWYgaXNp
bnN0YW5jZShub2RlLCBJZk5vZGUpOgotICAgIGNvbmQgPSBlbnYuRXZhbEV4cChub2RlLmV4cCkK
LSAgICBpZiBjb25kOgotICAgICAgUnVuQ29kZShlbnYuQ2xvbmUoKSwgbm9kZS50aGVuX2JyYW5j
aCwgb3V0cHV0KQotICAgIGVsaWYgbm9kZS5lbHNlX2JyYW5jaCBpcyBub3QgTm9uZToKLSAgICAg
IFJ1bkNvZGUoZW52LkNsb25lKCksIG5vZGUuZWxzZV9icmFuY2gsIG91dHB1dCkKLSAgZWxpZiBp
c2luc3RhbmNlKG5vZGUsIEV4cE5vZGUpOgotICAgIHZhbHVlID0gZW52LkV2YWxFeHAobm9kZSkK
LSAgICBvdXRwdXQuQXBwZW5kKCclcycgJSAodmFsdWUsKSkKLSAgZWxpZiBpc2luc3RhbmNlKG5v
ZGUsIExpdGVyYWxEb2xsYXJOb2RlKToKLSAgICBvdXRwdXQuQXBwZW5kKCckJykKLSAgZWxpZiBp
c2luc3RhbmNlKG5vZGUsIENvZGVOb2RlKToKLSAgICBSdW5Db2RlKGVudi5DbG9uZSgpLCBub2Rl
LCBvdXRwdXQpCi0gIGVsc2U6Ci0gICAgcHJpbnQgJ0JBRCcKLSAgICBwcmludCBub2RlCi0gICAg
c3lzLmV4aXQoMSkKLQotCi1kZWYgUnVuQ29kZShlbnYsIGNvZGVfbm9kZSwgb3V0cHV0KToKLSAg
Zm9yIGF0b21pY19jb2RlIGluIGNvZGVfbm9kZS5hdG9taWNfY29kZToKLSAgICBSdW5BdG9taWND
b2RlKGVudiwgYXRvbWljX2NvZGUsIG91dHB1dCkKLQotCi1kZWYgSXNTaW5nbGVMaW5lQ29tbWVu
dChjdXJfbGluZSk6Ci0gIHJldHVybiAnLy8nIGluIGN1cl9saW5lCi0KLQotZGVmIElzSW5QcmVw
cm9jZXNzb3JEaXJlY3RpdmUocHJldl9saW5lcywgY3VyX2xpbmUpOgotICBpZiBjdXJfbGluZS5s
c3RyaXAoKS5zdGFydHN3aXRoKCcjJyk6Ci0gICAgcmV0dXJuIFRydWUKLSAgcmV0dXJuIHByZXZf
bGluZXMgYW5kIHByZXZfbGluZXNbLTFdLmVuZHN3aXRoKCdcXCcpCi0KLQotZGVmIFdyYXBDb21t
ZW50KGxpbmUsIG91dHB1dCk6Ci0gIGxvYyA9IGxpbmUuZmluZCgnLy8nKQotICBiZWZvcmVfY29t
bWVudCA9IGxpbmVbOmxvY10ucnN0cmlwKCkKLSAgaWYgYmVmb3JlX2NvbW1lbnQgPT0gJyc6Ci0g
ICAgaW5kZW50ID0gbG9jCi0gIGVsc2U6Ci0gICAgb3V0cHV0LmFwcGVuZChiZWZvcmVfY29tbWVu
dCkKLSAgICBpbmRlbnQgPSBsZW4oYmVmb3JlX2NvbW1lbnQpIC0gbGVuKGJlZm9yZV9jb21tZW50
LmxzdHJpcCgpKQotICBwcmVmaXggPSBpbmRlbnQqJyAnICsgJy8vICcKLSAgbWF4X2xlbiA9IDgw
IC0gbGVuKHByZWZpeCkKLSAgY29tbWVudCA9IGxpbmVbbG9jICsgMjpdLnN0cmlwKCkKLSAgc2Vn
cyA9IFtzZWcgZm9yIHNlZyBpbiByZS5zcGxpdChyJyhcdytcVyopJywgY29tbWVudCkgaWYgc2Vn
ICE9ICcnXQotICBjdXJfbGluZSA9ICcnCi0gIGZvciBzZWcgaW4gc2VnczoKLSAgICBpZiBsZW4o
KGN1cl9saW5lICsgc2VnKS5yc3RyaXAoKSkgPCBtYXhfbGVuOgotICAgICAgY3VyX2xpbmUgKz0g
c2VnCi0gICAgZWxzZToKLSAgICAgIGlmIGN1cl9saW5lLnN0cmlwKCkgIT0gJyc6Ci0gICAgICAg
IG91dHB1dC5hcHBlbmQocHJlZml4ICsgY3VyX2xpbmUucnN0cmlwKCkpCi0gICAgICBjdXJfbGlu
ZSA9IHNlZy5sc3RyaXAoKQotICBpZiBjdXJfbGluZS5zdHJpcCgpICE9ICcnOgotICAgIG91dHB1
dC5hcHBlbmQocHJlZml4ICsgY3VyX2xpbmUuc3RyaXAoKSkKLQotCi1kZWYgV3JhcENvZGUobGlu
ZSwgbGluZV9jb25jYXQsIG91dHB1dCk6Ci0gIGluZGVudCA9IGxlbihsaW5lKSAtIGxlbihsaW5l
LmxzdHJpcCgpKQotICBwcmVmaXggPSBpbmRlbnQqJyAnICAjIFByZWZpeCBvZiB0aGUgY3VycmVu
dCBsaW5lCi0gIG1heF9sZW4gPSA4MCAtIGluZGVudCAtIGxlbihsaW5lX2NvbmNhdCkgICMgTWF4
aW11bSBsZW5ndGggb2YgdGhlIGN1cnJlbnQgbGluZQotICBuZXdfcHJlZml4ID0gcHJlZml4ICsg
NConICcgICMgUHJlZml4IG9mIGEgY29udGludWF0aW9uIGxpbmUKLSAgbmV3X21heF9sZW4gPSBt
YXhfbGVuIC0gNCAgIyBNYXhpbXVtIGxlbmd0aCBvZiBhIGNvbnRpbnVhdGlvbiBsaW5lCi0gICMg
UHJlZmVycyB0byB3cmFwIGEgbGluZSBhZnRlciBhICcsJyBvciAnOycuCi0gIHNlZ3MgPSBbc2Vn
IGZvciBzZWcgaW4gcmUuc3BsaXQocicoW14sO10rWyw7XT8pJywgbGluZS5zdHJpcCgpKSBpZiBz
ZWcgIT0gJyddCi0gIGN1cl9saW5lID0gJycgICMgVGhlIGN1cnJlbnQgbGluZSB3aXRob3V0IGxl
YWRpbmcgc3BhY2VzLgotICBmb3Igc2VnIGluIHNlZ3M6Ci0gICAgIyBJZiB0aGUgbGluZSBpcyBz
dGlsbCB0b28gbG9uZywgd3JhcCBhdCBhIHNwYWNlLgotICAgIHdoaWxlIGN1cl9saW5lID09ICcn
IGFuZCBsZW4oc2VnLnN0cmlwKCkpID4gbWF4X2xlbjoKLSAgICAgIHNlZyA9IHNlZy5sc3RyaXAo
KQotICAgICAgc3BsaXRfYXQgPSBzZWcucmZpbmQoJyAnLCAwLCBtYXhfbGVuKQotICAgICAgb3V0
cHV0LmFwcGVuZChwcmVmaXggKyBzZWdbOnNwbGl0X2F0XS5zdHJpcCgpICsgbGluZV9jb25jYXQp
Ci0gICAgICBzZWcgPSBzZWdbc3BsaXRfYXQgKyAxOl0KLSAgICAgIHByZWZpeCA9IG5ld19wcmVm
aXgKLSAgICAgIG1heF9sZW4gPSBuZXdfbWF4X2xlbgotCi0gICAgaWYgbGVuKChjdXJfbGluZSAr
IHNlZykucnN0cmlwKCkpIDwgbWF4X2xlbjoKLSAgICAgIGN1cl9saW5lID0gKGN1cl9saW5lICsg
c2VnKS5sc3RyaXAoKQotICAgIGVsc2U6Ci0gICAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1
cl9saW5lLnJzdHJpcCgpICsgbGluZV9jb25jYXQpCi0gICAgICBwcmVmaXggPSBuZXdfcHJlZml4
Ci0gICAgICBtYXhfbGVuID0gbmV3X21heF9sZW4KLSAgICAgIGN1cl9saW5lID0gc2VnLmxzdHJp
cCgpCi0gIGlmIGN1cl9saW5lLnN0cmlwKCkgIT0gJyc6Ci0gICAgb3V0cHV0LmFwcGVuZChwcmVm
aXggKyBjdXJfbGluZS5zdHJpcCgpKQotCi0KLWRlZiBXcmFwUHJlcHJvY2Vzc29yRGlyZWN0aXZl
KGxpbmUsIG91dHB1dCk6Ci0gIFdyYXBDb2RlKGxpbmUsICcgXFwnLCBvdXRwdXQpCi0KLQotZGVm
IFdyYXBQbGFpbkNvZGUobGluZSwgb3V0cHV0KToKLSAgV3JhcENvZGUobGluZSwgJycsIG91dHB1
dCkKLQotCi1kZWYgSXNNdWx0aUxpbmVJV1lVUHJhZ21hKGxpbmUpOgotICByZXR1cm4gcmUuc2Vh
cmNoKHInL1wqIElXWVUgcHJhZ21hOiAnLCBsaW5lKQotCi0KLWRlZiBJc0hlYWRlckd1YXJkSW5j
bHVkZU9yT25lTGluZUlXWVVQcmFnbWEobGluZSk6Ci0gIHJldHVybiAocmUubWF0Y2gocideIyhp
Zm5kZWZ8ZGVmaW5lfGVuZGlmXHMqLy8pXHMqW1x3X10rXHMqJCcsIGxpbmUpIG9yCi0gICAgICAg
ICAgcmUubWF0Y2gocideI2luY2x1ZGVccycsIGxpbmUpIG9yCi0gICAgICAgICAgIyBEb24ndCBi
cmVhayBJV1lVIHByYWdtYXMsIGVpdGhlcjsgdGhhdCBjYXVzZXMgaXd5dS5weSBwcm9ibGVtcy4K
LSAgICAgICAgICByZS5zZWFyY2gocicvLyBJV1lVIHByYWdtYTogJywgbGluZSkpCi0KLQotZGVm
IFdyYXBMb25nTGluZShsaW5lLCBvdXRwdXQpOgotICBsaW5lID0gbGluZS5yc3RyaXAoKQotICBp
ZiBsZW4obGluZSkgPD0gODA6Ci0gICAgb3V0cHV0LmFwcGVuZChsaW5lKQotICBlbGlmIElzU2lu
Z2xlTGluZUNvbW1lbnQobGluZSk6Ci0gICAgaWYgSXNIZWFkZXJHdWFyZEluY2x1ZGVPck9uZUxp
bmVJV1lVUHJhZ21hKGxpbmUpOgotICAgICAgIyBUaGUgc3R5bGUgZ3VpZGUgbWFkZSBhbiBleGNl
cHRpb24gdG8gYWxsb3cgbG9uZyBoZWFkZXIgZ3VhcmQgbGluZXMsCi0gICAgICAjIGluY2x1ZGVz
IGFuZCBJV1lVIHByYWdtYXMuCi0gICAgICBvdXRwdXQuYXBwZW5kKGxpbmUpCi0gICAgZWxzZToK
LSAgICAgIFdyYXBDb21tZW50KGxpbmUsIG91dHB1dCkKLSAgZWxpZiBJc0luUHJlcHJvY2Vzc29y
RGlyZWN0aXZlKG91dHB1dCwgbGluZSk6Ci0gICAgaWYgSXNIZWFkZXJHdWFyZEluY2x1ZGVPck9u
ZUxpbmVJV1lVUHJhZ21hKGxpbmUpOgotICAgICAgIyBUaGUgc3R5bGUgZ3VpZGUgbWFkZSBhbiBl
eGNlcHRpb24gdG8gYWxsb3cgbG9uZyBoZWFkZXIgZ3VhcmQgbGluZXMsCi0gICAgICAjIGluY2x1
ZGVzIGFuZCBJV1lVIHByYWdtYXMuCi0gICAgICBvdXRwdXQuYXBwZW5kKGxpbmUpCi0gICAgZWxz
ZToKLSAgICAgIFdyYXBQcmVwcm9jZXNzb3JEaXJlY3RpdmUobGluZSwgb3V0cHV0KQotICBlbGlm
IElzTXVsdGlMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgICBvdXRwdXQuYXBwZW5kKGxpbmUpCi0g
IGVsc2U6Ci0gICAgV3JhcFBsYWluQ29kZShsaW5lLCBvdXRwdXQpCi0KLQotZGVmIEJlYXV0aWZ5
Q29kZShzdHJpbmcpOgotICBsaW5lcyA9IHN0cmluZy5zcGxpdGxpbmVzKCkKLSAgb3V0cHV0ID0g
W10KLSAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAgV3JhcExvbmdMaW5lKGxpbmUsIG91dHB1dCkK
LSAgb3V0cHV0MiA9IFtsaW5lLnJzdHJpcCgpIGZvciBsaW5lIGluIG91dHB1dF0KLSAgcmV0dXJu
ICdcbicuam9pbihvdXRwdXQyKSArICdcbicKLQotCi1kZWYgQ29udmVydEZyb21QdW1wU291cmNl
KHNyY190ZXh0KToKLSAgIiIiUmV0dXJuIHRoZSB0ZXh0IGdlbmVyYXRlZCBmcm9tIHRoZSBnaXZl
biBQdW1wIHNvdXJjZSB0ZXh0LiIiIgotICBhc3QgPSBQYXJzZVRvQVNUKFN0cmlwTWV0YUNvbW1l
bnRzKHNyY190ZXh0KSkKLSAgb3V0cHV0ID0gT3V0cHV0KCkKLSAgUnVuQ29kZShFbnYoKSwgYXN0
LCBvdXRwdXQpCi0gIHJldHVybiBCZWF1dGlmeUNvZGUob3V0cHV0LnN0cmluZykKLQotCi1kZWYg
bWFpbihhcmd2KToKLSAgaWYgbGVuKGFyZ3YpID09IDE6Ci0gICAgcHJpbnQgX19kb2NfXwotICAg
IHN5cy5leGl0KDEpCi0KLSAgZmlsZV9wYXRoID0gYXJndlstMV0KLSAgb3V0cHV0X3N0ciA9IENv
bnZlcnRGcm9tUHVtcFNvdXJjZShmaWxlKGZpbGVfcGF0aCwgJ3InKS5yZWFkKCkpCi0gIGlmIGZp
bGVfcGF0aC5lbmRzd2l0aCgnLnB1bXAnKToKLSAgICBvdXRwdXRfZmlsZV9wYXRoID0gZmlsZV9w
YXRoWzotNV0KLSAgZWxzZToKLSAgICBvdXRwdXRfZmlsZV9wYXRoID0gJy0nCi0gIGlmIG91dHB1
dF9maWxlX3BhdGggPT0gJy0nOgotICAgIHByaW50IG91dHB1dF9zdHIsCi0gIGVsc2U6Ci0gICAg
b3V0cHV0X2ZpbGUgPSBmaWxlKG91dHB1dF9maWxlX3BhdGgsICd3JykKLSAgICBvdXRwdXRfZmls
ZS53cml0ZSgnLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQgYnkgY29tbWFuZDpcbicpCi0gICAg
b3V0cHV0X2ZpbGUud3JpdGUoJy8vICAgICAlcyAlc1xuJyAlCi0gICAgICAgICAgICAgICAgICAg
ICAgKG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pLCBvcy5wYXRoLmJhc2VuYW1lKGZpbGVfcGF0
aCkpKQotICAgIG91dHB1dF9maWxlLndyaXRlKCcvLyBETyBOT1QgRURJVCBCWSBIQU5EISEhXG5c
bicpCi0gICAgb3V0cHV0X2ZpbGUud3JpdGUob3V0cHV0X3N0cikKLSAgICBvdXRwdXRfZmlsZS5j
bG9zZSgpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgbWFpbihzeXMuYXJndikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NjcmlwdHMvcmVsZWFzZV9k
b2NzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy9yZWxlYXNlX2RvY3Mu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyOTEzNDdmNjc0YWZkN2FmODQ5NjE1
YTc1YjEzOGQ1MjkzZjljZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy9yZWxlYXNlX2RvY3Mu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNTggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0iIiJTY3JpcHQgZm9yIGJyYW5jaGluZyBHb29nbGUgVGVzdC9N
b2NrIHdpa2kgcGFnZXMgZm9yIGEgbmV3IHZlcnNpb24uCi0KLVNZTk9QU0lTCi0gICAgICAgcmVs
ZWFzZV9kb2NzLnB5IE5FV19SRUxFQVNFX1ZFUlNJT04KLQotICAgICAgIEdvb2dsZSBUZXN0IGFu
ZCBHb29nbGUgTW9jaydzIGV4dGVybmFsIHVzZXIgZG9jdW1lbnRhdGlvbiBpcyBpbgotICAgICAg
IGludGVybGlua2VkIHdpa2kgZmlsZXMuICBXaGVuIHdlIHJlbGVhc2UgYSBuZXcgdmVyc2lvbiBv
ZgotICAgICAgIEdvb2dsZSBUZXN0IG9yIEdvb2dsZSBNb2NrLCB3ZSBuZWVkIHRvIGJyYW5jaCB0
aGUgd2lraSBmaWxlcwotICAgICAgIHN1Y2ggdGhhdCB1c2VycyBvZiBhIHNwZWNpZmljIHZlcnNp
b24gb2YgR29vZ2xlIFRlc3QvTW9jayBjYW4KLSAgICAgICBsb29rIHVwIGRvY3VtZW5hdGlvbiBy
ZWxldmFudCBmb3IgdGhhdCB2ZXJzaW9uLiAgVGhpcyBzY3JpcHQKLSAgICAgICBhdXRvbWF0ZXMg
dGhhdCBwcm9jZXNzIGJ5OgotCi0gICAgICAgICAtIGJyYW5jaGluZyB0aGUgY3VycmVudCB3aWtp
IHBhZ2VzICh3aGljaCBkb2N1bWVudCB0aGUKLSAgICAgICAgICAgYmVoYXZpb3Igb2YgdGhlIFNW
TiB0cnVuayBoZWFkKSB0byBwYWdlcyBmb3IgdGhlIHNwZWNpZmllZAotICAgICAgICAgICB2ZXJz
aW9uIChlLmcuIGJyYW5jaGluZyBGQVEud2lraSB0byBWMl82X0ZBUS53aWtpIHdoZW4KLSAgICAg
ICAgICAgTkVXX1JFTEVBU0VfVkVSU0lPTiBpcyAyLjYpOwotICAgICAgICAgLSB1cGRhdGluZyB0
aGUgbGlua3MgaW4gdGhlIGJyYW5jaGVkIGZpbGVzIHRvIHBvaW50IHRvIHRoZSBicmFuY2hlZAot
ICAgICAgICAgICB2ZXJzaW9uIChlLmcuIGEgbGluayBpbiBWMl82X0ZBUS53aWtpIHRoYXQgcG9p
bnRlZCB0bwotICAgICAgICAgICBQcmltZXIud2lraSNBbmNob3Igd2lsbCBub3cgcG9pbnQgdG8g
VjJfNl9QcmltZXIud2lraSNBbmNob3IpLgotCi0gICAgICAgTk9URTogTkVXX1JFTEVBU0VfVkVS
U0lPTiBtdXN0IGJlIGEgTkVXIHZlcnNpb24gbnVtYmVyIGZvcgotICAgICAgIHdoaWNoIHRoZSB3
aWtpIHBhZ2VzIGRvbid0IHlldCBleGlzdDsgb3RoZXJ3aXNlIHlvdSdsbCBnZXQgU1ZOCi0gICAg
ICAgZXJyb3JzIGxpa2UgInN2bjogUGF0aCAnVjFfN19QdW1wTWFudWFsLndpa2knIGlzIG5vdCBh
Ci0gICAgICAgZGlyZWN0b3J5IiB3aGVuIHJ1bm5pbmcgdGhlIHNjcmlwdC4KLQotRVhBTVBMRQot
ICAgICAgICQgY2QgUEFUSC9UTy9HVEVTVF9TVk5fV09SS1NQQUNFL3RydW5rCi0gICAgICAgJCBz
Y3JpcHRzL3JlbGVhc2VfZG9jcy5weSAyLjYgICMgY3JlYXRlIHdpa2kgcGFnZXMgZm9yIHYyLjYK
LSAgICAgICAkIHN2biBzdGF0dXMgICAgICAgICAgICAgICAgICAgIyB2ZXJpZnkgdGhlIGZpbGUg
bGlzdAotICAgICAgICQgc3ZuIGRpZmYgICAgICAgICAgICAgICAgICAgICAjIHZlcmlmeSB0aGUg
ZmlsZSBjb250ZW50cwotICAgICAgICQgc3ZuIGNvbW1pdCAtbSAicmVsZWFzZSB3aWtpIHBhZ2Vz
IGZvciB2Mi42IgotIiIiCi0KLV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpoYW55b25n
IFdhbiknCi0KLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi0KLWltcG9ydCBjb21t
b24KLQotCi0jIFdpa2kgcGFnZXMgdGhhdCBzaG91bGRuJ3QgYmUgYnJhbmNoZWQgZm9yIGV2ZXJ5
IGd0ZXN0L2dtb2NrIHJlbGVhc2UuCi1HVEVTVF9VTlZFUlNJT05FRF9XSUtJUyA9IFsnRGV2R3Vp
ZGUud2lraSddCi1HTU9DS19VTlZFUlNJT05FRF9XSUtJUyA9IFsKLSAgICAnRGVzaWduRG9jLndp
a2knLAotICAgICdEZXZHdWlkZS53aWtpJywKLSAgICAnS25vd25Jc3N1ZXMud2lraScKLSAgICBd
Ci0KLQotZGVmIERyb3BXaWtpU3VmZml4KHdpa2lfZmlsZW5hbWUpOgotICAiIiJSZW1vdmVzIHRo
ZSAud2lraSBzdWZmaXggKGlmIGFueSkgZnJvbSB0aGUgZ2l2ZW4gZmlsZW5hbWUuIiIiCi0KLSAg
cmV0dXJuICh3aWtpX2ZpbGVuYW1lWzotbGVuKCcud2lraScpXSBpZiB3aWtpX2ZpbGVuYW1lLmVu
ZHN3aXRoKCcud2lraScpCi0gICAgICAgICAgZWxzZSB3aWtpX2ZpbGVuYW1lKQotCi0KLWNsYXNz
IFdpa2lCcmFuY2hlcihvYmplY3QpOgotICAiIiJCcmFuY2hlcyAuLi4iIiIKLQotICBkZWYgX19p
bml0X18oc2VsZiwgZG90X3ZlcnNpb24pOgotICAgIHNlbGYucHJvamVjdCwgc3ZuX3Jvb3RfcGF0
aCA9IGNvbW1vbi5HZXRTdm5JbmZvKCkKLSAgICBpZiBzZWxmLnByb2plY3Qgbm90IGluICgnZ29v
Z2xldGVzdCcsICdnb29nbGVtb2NrJyk6Ci0gICAgICBzeXMuZXhpdCgnVGhpcyBzY3JpcHQgbXVz
dCBiZSBydW4gaW4gYSBndGVzdCBvciBnbW9jayBTVk4gd29ya3NwYWNlLicpCi0gICAgc2VsZi53
aWtpX2RpciA9IHN2bl9yb290X3BhdGggKyAnL3dpa2knCi0gICAgIyBUdXJuICcyLjYnIHRvICdW
Ml82XycuCi0gICAgc2VsZi52ZXJzaW9uX3ByZWZpeCA9ICdWJyArIGRvdF92ZXJzaW9uLnJlcGxh
Y2UoJy4nLCAnXycpICsgJ18nCi0gICAgc2VsZi5maWxlc190b19icmFuY2ggPSBzZWxmLkdldEZp
bGVzVG9CcmFuY2goKQotICAgIHBhZ2VfbmFtZXMgPSBbRHJvcFdpa2lTdWZmaXgoZikgZm9yIGYg
aW4gc2VsZi5maWxlc190b19icmFuY2hdCi0gICAgIyBBIGxpbmsgdG8gRm9vLndpa2kgaXMgaW4g
b25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXM6Ci0gICAgIyAgIFtGb28gd29yZHNdCi0gICAgIyAg
IFtGb28jQW5jaG9yIHdvcmRzXQotICAgICMgICBbaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS8uLi4v
d2lraS9Gb28gd29yZHNdCi0gICAgIyAgIFtodHRwOi8vY29kZS5nb29nbGUuY29tLy4uLi93aWtp
L0ZvbyNBbmNob3Igd29yZHNdCi0gICAgIyBXZSB3YW50IHRvIHJlcGxhY2UgJ0Zvbycgd2l0aCAn
VjJfNl9Gb28nIGluIHRoZSBhYm92ZSBjYXNlcy4KLSAgICBzZWxmLnNlYXJjaF9mb3JfcmUgPSBy
ZS5jb21waWxlKAotICAgICAgICAjIFRoaXMgcmVnZXggbWF0Y2hlcyBlaXRoZXIKLSAgICAgICAg
IyAgIFtGb28KLSAgICAgICAgIyBvcgotICAgICAgICAjICAgL3dpa2kvRm9vCi0gICAgICAgICMg
Zm9sbG93ZWQgYnkgYSBzcGFjZSBvciBhICMsIHdoZXJlIEZvbyBpcyB0aGUgbmFtZSBvZiBhbgot
ICAgICAgICAjIHVudmVyc2lvbmVkIHdpa2kgcGFnZS4KLSAgICAgICAgcicoXFt8L3dpa2kvKSgl
cykoWyAjXSknICUgJ3wnLmpvaW4ocGFnZV9uYW1lcykpCi0gICAgc2VsZi5yZXBsYWNlX3dpdGgg
PSByJ1wxJXNcMlwzJyAlIChzZWxmLnZlcnNpb25fcHJlZml4LCkKLQotICBkZWYgR2V0RmlsZXNU
b0JyYW5jaChzZWxmKToKLSAgICAiIiJSZXR1cm5zIGEgbGlzdCBvZiAud2lraSBmaWxlIG5hbWVz
IHRoYXQgbmVlZCB0byBiZSBicmFuY2hlZC4iIiIKLQotICAgIHVudmVyc2lvbmVkX3dpa2lzID0g
KEdURVNUX1VOVkVSU0lPTkVEX1dJS0lTIGlmIHNlbGYucHJvamVjdCA9PSAnZ29vZ2xldGVzdCcK
LSAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIEdNT0NLX1VOVkVSU0lPTkVEX1dJS0lTKQot
ICAgIHJldHVybiBbZiBmb3IgZiBpbiBvcy5saXN0ZGlyKHNlbGYud2lraV9kaXIpCi0gICAgICAg
ICAgICBpZiAoZi5lbmRzd2l0aCgnLndpa2knKSBhbmQKLSAgICAgICAgICAgICAgICBub3QgcmUu
bWF0Y2gocideVlxkJywgZikgYW5kICAjIEV4Y2x1ZGVkIHZlcnNpb25lZCAud2lraSBmaWxlcy4K
LSAgICAgICAgICAgICAgICBmIG5vdCBpbiB1bnZlcnNpb25lZF93aWtpcyldCi0KLSAgZGVmIEJy
YW5jaEZpbGVzKHNlbGYpOgotICAgICIiIkJyYW5jaGVzIHRoZSAud2lraSBmaWxlcyBuZWVkZWQg
dG8gYmUgYnJhbmNoZWQuIiIiCi0KLSAgICBwcmludCAnQnJhbmNoaW5nICVkIC53aWtpIGZpbGVz
OicgJSAobGVuKHNlbGYuZmlsZXNfdG9fYnJhbmNoKSwpCi0gICAgb3MuY2hkaXIoc2VsZi53aWtp
X2RpcikKLSAgICBmb3IgZiBpbiBzZWxmLmZpbGVzX3RvX2JyYW5jaDoKLSAgICAgIGNvbW1hbmQg
PSAnc3ZuIGNwICVzICVzJXMnICUgKGYsIHNlbGYudmVyc2lvbl9wcmVmaXgsIGYpCi0gICAgICBw
cmludCBjb21tYW5kCi0gICAgICBvcy5zeXN0ZW0oY29tbWFuZCkKLQotICBkZWYgVXBkYXRlTGlu
a3NJbkJyYW5jaGVkRmlsZXMoc2VsZik6Ci0KLSAgICBmb3IgZiBpbiBzZWxmLmZpbGVzX3RvX2Jy
YW5jaDoKLSAgICAgIHNvdXJjZV9maWxlID0gb3MucGF0aC5qb2luKHNlbGYud2lraV9kaXIsIGYp
Ci0gICAgICB2ZXJzaW9uZWRfZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLndpa2lfZGlyLCBzZWxm
LnZlcnNpb25fcHJlZml4ICsgZikKLSAgICAgIHByaW50ICdVcGRhdGluZyBsaW5rcyBpbiAlcy4n
ICUgKHZlcnNpb25lZF9maWxlLCkKLSAgICAgIHRleHQgPSBmaWxlKHNvdXJjZV9maWxlLCAncicp
LnJlYWQoKQotICAgICAgbmV3X3RleHQgPSBzZWxmLnNlYXJjaF9mb3JfcmUuc3ViKHNlbGYucmVw
bGFjZV93aXRoLCB0ZXh0KQotICAgICAgZmlsZSh2ZXJzaW9uZWRfZmlsZSwgJ3cnKS53cml0ZShu
ZXdfdGV4dCkKLQotCi1kZWYgbWFpbigpOgotICBpZiBsZW4oc3lzLmFyZ3YpICE9IDI6Ci0gICAg
c3lzLmV4aXQoX19kb2NfXykKLQotICBicmFuY2hlciA9IFdpa2lCcmFuY2hlcihzeXMuYXJndlsx
XSkKLSAgYnJhbmNoZXIuQnJhbmNoRmlsZXMoKQotICBicmFuY2hlci5VcGRhdGVMaW5rc0luQnJh
bmNoZWRGaWxlcygpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgbWFpbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zY3JpcHRzL3Rlc3QvTWFrZWZp
bGUgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zY3JpcHRzL3Rlc3QvTWFrZWZpbGUKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkZmY1ODQ2MzdiN2E2ZTlkZjFmYTQzY2U4ZjU4
OGM0MzgxNWU1NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy90ZXN0L01ha2VmaWxlCisrKyAv
ZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotIyBBIE1ha2VmaWxlIGZvciBmdXNpbmcgR29vZ2xl
IFRlc3QgYW5kIGJ1aWxkaW5nIGEgc2FtcGxlIHRlc3QgYWdhaW5zdCBpdC4KLSMKLSMgU1lOT1BT
SVM6Ci0jCi0jICAgbWFrZSBbYWxsXSAgLSBtYWtlcyBldmVyeXRoaW5nLgotIyAgIG1ha2UgVEFS
R0VUIC0gbWFrZXMgdGhlIGdpdmVuIHRhcmdldC4KLSMgICBtYWtlIGNoZWNrICAtIG1ha2VzIGV2
ZXJ5dGhpbmcgYW5kIHJ1bnMgdGhlIGJ1aWx0IHNhbXBsZSB0ZXN0LgotIyAgIG1ha2UgY2xlYW4g
IC0gcmVtb3ZlcyBhbGwgZmlsZXMgZ2VuZXJhdGVkIGJ5IG1ha2UuCi0KLSMgUG9pbnRzIHRvIHRo
ZSByb290IG9mIGZ1c2VkIEdvb2dsZSBUZXN0LCByZWxhdGl2ZSB0byB3aGVyZSB0aGlzIGZpbGUg
aXMuCi1GVVNFRF9HVEVTVF9ESVIgPSBvdXRwdXQKLQotIyBQYXRocyB0byB0aGUgZnVzZWQgZ3Rl
c3QgZmlsZXMuCi1GVVNFRF9HVEVTVF9IID0gJChGVVNFRF9HVEVTVF9ESVIpL2d0ZXN0L2d0ZXN0
LmgKLUZVU0VEX0dURVNUX0FMTF9DQyA9ICQoRlVTRURfR1RFU1RfRElSKS9ndGVzdC9ndGVzdC1h
bGwuY2MKLQotIyBXaGVyZSB0byBmaW5kIHRoZSBzYW1wbGUgdGVzdC4KLVNBTVBMRV9ESVIgPSAu
Li8uLi9zYW1wbGVzCi0KLSMgV2hlcmUgdG8gZmluZCBndGVzdF9tYWluLmNjLgotR1RFU1RfTUFJ
Tl9DQyA9IC4uLy4uL3NyYy9ndGVzdF9tYWluLmNjCi0KLSMgRmxhZ3MgcGFzc2VkIHRvIHRoZSBw
cmVwcm9jZXNzb3IuCi0jIFdlIGhhdmUgbm8gaWRlYSBoZXJlIHdoZXRoZXIgcHRocmVhZHMgaXMg
YXZhaWxhYmxlIGluIHRoZSBzeXN0ZW0sIHNvCi0jIGRpc2FibGUgaXRzIHVzZS4KLUNQUEZMQUdT
ICs9IC1JJChGVVNFRF9HVEVTVF9ESVIpIC1ER1RFU1RfSEFTX1BUSFJFQUQ9MAotCi0jIEZsYWdz
IHBhc3NlZCB0byB0aGUgQysrIGNvbXBpbGVyLgotQ1hYRkxBR1MgKz0gLWcKLQotYWxsIDogc2Ft
cGxlMV91bml0dGVzdAotCi1jaGVjayA6IGFsbAotCS4vc2FtcGxlMV91bml0dGVzdAotCi1jbGVh
biA6Ci0Jcm0gLXJmICQoRlVTRURfR1RFU1RfRElSKSBzYW1wbGUxX3VuaXR0ZXN0ICoubwotCi0k
KEZVU0VEX0dURVNUX0gpIDoKLQkuLi9mdXNlX2d0ZXN0X2ZpbGVzLnB5ICQoRlVTRURfR1RFU1Rf
RElSKQotCi0kKEZVU0VEX0dURVNUX0FMTF9DQykgOgotCS4uL2Z1c2VfZ3Rlc3RfZmlsZXMucHkg
JChGVVNFRF9HVEVTVF9ESVIpCi0KLWd0ZXN0LWFsbC5vIDogJChGVVNFRF9HVEVTVF9IKSAkKEZV
U0VEX0dURVNUX0FMTF9DQykKLQkkKENYWCkgJChDUFBGTEFHUykgJChDWFhGTEFHUykgLWMgJChG
VVNFRF9HVEVTVF9ESVIpL2d0ZXN0L2d0ZXN0LWFsbC5jYwotCi1ndGVzdF9tYWluLm8gOiAkKEZV
U0VEX0dURVNUX0gpICQoR1RFU1RfTUFJTl9DQykKLQkkKENYWCkgJChDUFBGTEFHUykgJChDWFhG
TEFHUykgLWMgJChHVEVTVF9NQUlOX0NDKQotCi1zYW1wbGUxLm8gOiAkKFNBTVBMRV9ESVIpL3Nh
bXBsZTEuY2MgJChTQU1QTEVfRElSKS9zYW1wbGUxLmgKLQkkKENYWCkgJChDUFBGTEFHUykgJChD
WFhGTEFHUykgLWMgJChTQU1QTEVfRElSKS9zYW1wbGUxLmNjCi0KLXNhbXBsZTFfdW5pdHRlc3Qu
byA6ICQoU0FNUExFX0RJUikvc2FtcGxlMV91bml0dGVzdC5jYyBcCi0gICAgICAgICAgICAgICAg
ICAgICAkKFNBTVBMRV9ESVIpL3NhbXBsZTEuaCAkKEZVU0VEX0dURVNUX0gpCi0JJChDWFgpICQo
Q1BQRkxBR1MpICQoQ1hYRkxBR1MpIC1jICQoU0FNUExFX0RJUikvc2FtcGxlMV91bml0dGVzdC5j
YwotCi1zYW1wbGUxX3VuaXR0ZXN0IDogc2FtcGxlMS5vIHNhbXBsZTFfdW5pdHRlc3QubyBndGVz
dC1hbGwubyBndGVzdF9tYWluLm8KLQkkKENYWCkgJChDUFBGTEFHUykgJChDWFhGTEFHUykgJF4g
LW8gJEAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NjcmlwdHMvdXBs
b2FkLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy91cGxvYWQucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZThlMDRkNzI3NzEwYmRlM2E4MTdlZGE4NDA2
ZDZiNjM2ZmIyY2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy91cGxvYWQucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwxMzg3ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5
cmlnaHQgMjAwNyBHb29nbGUgSW5jLgotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5
IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgIGh0dHA6Ly93d3cuYXBh
Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBw
bGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMs
Ci0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRo
ZSBMaWNlbnNlLgotCi0iIiJUb29sIGZvciB1cGxvYWRpbmcgZGlmZnMgZnJvbSBhIHZlcnNpb24g
Y29udHJvbCBzeXN0ZW0gdG8gdGhlIGNvZGVyZXZpZXcgYXBwLgotCi1Vc2FnZSBzdW1tYXJ5OiB1
cGxvYWQucHkgW29wdGlvbnNdIFstLSBkaWZmX29wdGlvbnNdCi0KLURpZmYgb3B0aW9ucyBhcmUg
cGFzc2VkIHRvIHRoZSBkaWZmIGNvbW1hbmQgb2YgdGhlIHVuZGVybHlpbmcgc3lzdGVtLgotCi1T
dXBwb3J0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbXM6Ci0gIEdpdAotICBNZXJjdXJpYWwKLSAg
U3VidmVyc2lvbgotCi1JdCBpcyBpbXBvcnRhbnQgZm9yIEdpdC9NZXJjdXJpYWwgdXNlcnMgdG8g
c3BlY2lmeSBhIHRyZWUvbm9kZS9icmFuY2ggdG8gZGlmZgotYWdhaW5zdCBieSB1c2luZyB0aGUg
Jy0tcmV2JyBvcHRpb24uCi0iIiIKLSMgVGhpcyBjb2RlIGlzIGRlcml2ZWQgZnJvbSBhcHBjZmcu
cHkgaW4gdGhlIEFwcCBFbmdpbmUgU0RLIChvcGVuIHNvdXJjZSksCi0jIGFuZCBmcm9tIEFTUE4g
cmVjaXBlICMxNDYzMDYuCi0KLWltcG9ydCBjb29raWVsaWIKLWltcG9ydCBnZXRwYXNzCi1pbXBv
cnQgbG9nZ2luZwotaW1wb3J0IG1kNQotaW1wb3J0IG1pbWV0eXBlcwotaW1wb3J0IG9wdHBhcnNl
Ci1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN1YnByb2Nlc3MK
LWltcG9ydCBzeXMKLWltcG9ydCB1cmxsaWIKLWltcG9ydCB1cmxsaWIyCi1pbXBvcnQgdXJscGFy
c2UKLQotdHJ5OgotICBpbXBvcnQgcmVhZGxpbmUKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgcGFz
cwotCi0jIFRoZSBsb2dnaW5nIHZlcmJvc2l0eToKLSMgIDA6IEVycm9ycyBvbmx5LgotIyAgMTog
U3RhdHVzIG1lc3NhZ2VzLgotIyAgMjogSW5mbyBsb2dzLgotIyAgMzogRGVidWcgbG9ncy4KLXZl
cmJvc2l0eSA9IDEKLQotIyBNYXggc2l6ZSBvZiBwYXRjaCBvciBiYXNlIGZpbGUuCi1NQVhfVVBM
T0FEX1NJWkUgPSA5MDAgKiAxMDI0Ci0KLQotZGVmIEdldEVtYWlsKHByb21wdCk6Ci0gICIiIlBy
b21wdHMgdGhlIHVzZXIgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MgYW5kIHJldHVybnMgaXQuCi0K
LSAgVGhlIGxhc3QgdXNlZCBlbWFpbCBhZGRyZXNzIGlzIHNhdmVkIHRvIGEgZmlsZSBhbmQgb2Zm
ZXJlZCB1cCBhcyBhIHN1Z2dlc3Rpb24KLSAgdG8gdGhlIHVzZXIuIElmIHRoZSB1c2VyIHByZXNz
ZXMgZW50ZXIgd2l0aG91dCB0eXBpbmcgaW4gYW55dGhpbmcgdGhlIGxhc3QKLSAgdXNlZCBlbWFp
bCBhZGRyZXNzIGlzIHVzZWQuIElmIHRoZSB1c2VyIGVudGVycyBhIG5ldyBhZGRyZXNzLCBpdCBp
cyBzYXZlZAotICBmb3IgbmV4dCB0aW1lIHdlIHByb21wdC4KLQotICAiIiIKLSAgbGFzdF9lbWFp
bF9maWxlX25hbWUgPSBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vLmxhc3RfY29kZXJldmlld19lbWFp
bF9hZGRyZXNzIikKLSAgbGFzdF9lbWFpbCA9ICIiCi0gIGlmIG9zLnBhdGguZXhpc3RzKGxhc3Rf
ZW1haWxfZmlsZV9uYW1lKToKLSAgICB0cnk6Ci0gICAgICBsYXN0X2VtYWlsX2ZpbGUgPSBvcGVu
KGxhc3RfZW1haWxfZmlsZV9uYW1lLCAiciIpCi0gICAgICBsYXN0X2VtYWlsID0gbGFzdF9lbWFp
bF9maWxlLnJlYWRsaW5lKCkuc3RyaXAoIlxuIikKLSAgICAgIGxhc3RfZW1haWxfZmlsZS5jbG9z
ZSgpCi0gICAgICBwcm9tcHQgKz0gIiBbJXNdIiAlIGxhc3RfZW1haWwKLSAgICBleGNlcHQgSU9F
cnJvciwgZToKLSAgICAgIHBhc3MKLSAgZW1haWwgPSByYXdfaW5wdXQocHJvbXB0ICsgIjogIiku
c3RyaXAoKQotICBpZiBlbWFpbDoKLSAgICB0cnk6Ci0gICAgICBsYXN0X2VtYWlsX2ZpbGUgPSBv
cGVuKGxhc3RfZW1haWxfZmlsZV9uYW1lLCAidyIpCi0gICAgICBsYXN0X2VtYWlsX2ZpbGUud3Jp
dGUoZW1haWwpCi0gICAgICBsYXN0X2VtYWlsX2ZpbGUuY2xvc2UoKQotICAgIGV4Y2VwdCBJT0Vy
cm9yLCBlOgotICAgICAgcGFzcwotICBlbHNlOgotICAgIGVtYWlsID0gbGFzdF9lbWFpbAotICBy
ZXR1cm4gZW1haWwKLQotCi1kZWYgU3RhdHVzVXBkYXRlKG1zZyk6Ci0gICIiIlByaW50IGEgc3Rh
dHVzIG1lc3NhZ2UgdG8gc3Rkb3V0LgotCi0gIElmICd2ZXJib3NpdHknIGlzIGdyZWF0ZXIgdGhh
biAwLCBwcmludCB0aGUgbWVzc2FnZS4KLQotICBBcmdzOgotICAgIG1zZzogVGhlIHN0cmluZyB0
byBwcmludC4KLSAgIiIiCi0gIGlmIHZlcmJvc2l0eSA+IDA6Ci0gICAgcHJpbnQgbXNnCi0KLQot
ZGVmIEVycm9yRXhpdChtc2cpOgotICAiIiJQcmludCBhbiBlcnJvciBtZXNzYWdlIHRvIHN0ZGVy
ciBhbmQgZXhpdC4iIiIKLSAgcHJpbnQgPj5zeXMuc3RkZXJyLCBtc2cKLSAgc3lzLmV4aXQoMSkK
LQotCi1jbGFzcyBDbGllbnRMb2dpbkVycm9yKHVybGxpYjIuSFRUUEVycm9yKToKLSAgIiIiUmFp
c2VkIHRvIGluZGljYXRlIHRoZXJlIHdhcyBhbiBlcnJvciBhdXRoZW50aWNhdGluZyB3aXRoIENs
aWVudExvZ2luLiIiIgotCi0gIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwsIGNvZGUsIG1zZywgaGVh
ZGVycywgYXJncyk6Ci0gICAgdXJsbGliMi5IVFRQRXJyb3IuX19pbml0X18oc2VsZiwgdXJsLCBj
b2RlLCBtc2csIGhlYWRlcnMsIE5vbmUpCi0gICAgc2VsZi5hcmdzID0gYXJncwotICAgIHNlbGYu
cmVhc29uID0gYXJnc1siRXJyb3IiXQotCi0KLWNsYXNzIEFic3RyYWN0UnBjU2VydmVyKG9iamVj
dCk6Ci0gICIiIlByb3ZpZGVzIGEgY29tbW9uIGludGVyZmFjZSBmb3IgYSBzaW1wbGUgUlBDIHNl
cnZlci4iIiIKLQotICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgYXV0aF9mdW5jdGlvbiwgaG9z
dF9vdmVycmlkZT1Ob25lLCBleHRyYV9oZWFkZXJzPXt9LAotICAgICAgICAgICAgICAgc2F2ZV9j
b29raWVzPUZhbHNlKToKLSAgICAiIiJDcmVhdGVzIGEgbmV3IEh0dHBScGNTZXJ2ZXIuCi0KLSAg
ICBBcmdzOgotICAgICAgaG9zdDogVGhlIGhvc3QgdG8gc2VuZCByZXF1ZXN0cyB0by4KLSAgICAg
IGF1dGhfZnVuY3Rpb246IEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBubyBhcmd1bWVudHMgYW5kIHJl
dHVybnMgYW4KLSAgICAgICAgKGVtYWlsLCBwYXNzd29yZCkgdHVwbGUgd2hlbiBjYWxsZWQuIFdp
bGwgYmUgY2FsbGVkIGlmIGF1dGhlbnRpY2F0aW9uCi0gICAgICAgIGlzIHJlcXVpcmVkLgotICAg
ICAgaG9zdF9vdmVycmlkZTogVGhlIGhvc3QgaGVhZGVyIHRvIHNlbmQgdG8gdGhlIHNlcnZlciAo
ZGVmYXVsdHMgdG8gaG9zdCkuCi0gICAgICBleHRyYV9oZWFkZXJzOiBBIGRpY3Qgb2YgZXh0cmEg
aGVhZGVycyB0byBhcHBlbmQgdG8gZXZlcnkgcmVxdWVzdC4KLSAgICAgIHNhdmVfY29va2llczog
SWYgVHJ1ZSwgc2F2ZSB0aGUgYXV0aGVudGljYXRpb24gY29va2llcyB0byBsb2NhbCBkaXNrLgot
ICAgICAgICBJZiBGYWxzZSwgdXNlIGFuIGluLW1lbW9yeSBjb29raWVqYXIgaW5zdGVhZC4gIFN1
YmNsYXNzZXMgbXVzdAotICAgICAgICBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbmFsaXR5LiAgRGVm
YXVsdHMgdG8gRmFsc2UuCi0gICAgIiIiCi0gICAgc2VsZi5ob3N0ID0gaG9zdAotICAgIHNlbGYu
aG9zdF9vdmVycmlkZSA9IGhvc3Rfb3ZlcnJpZGUKLSAgICBzZWxmLmF1dGhfZnVuY3Rpb24gPSBh
dXRoX2Z1bmN0aW9uCi0gICAgc2VsZi5hdXRoZW50aWNhdGVkID0gRmFsc2UKLSAgICBzZWxmLmV4
dHJhX2hlYWRlcnMgPSBleHRyYV9oZWFkZXJzCi0gICAgc2VsZi5zYXZlX2Nvb2tpZXMgPSBzYXZl
X2Nvb2tpZXMKLSAgICBzZWxmLm9wZW5lciA9IHNlbGYuX0dldE9wZW5lcigpCi0gICAgaWYgc2Vs
Zi5ob3N0X292ZXJyaWRlOgotICAgICAgbG9nZ2luZy5pbmZvKCJTZXJ2ZXI6ICVzOyBIb3N0OiAl
cyIsIHNlbGYuaG9zdCwgc2VsZi5ob3N0X292ZXJyaWRlKQotICAgIGVsc2U6Ci0gICAgICBsb2dn
aW5nLmluZm8oIlNlcnZlcjogJXMiLCBzZWxmLmhvc3QpCi0KLSAgZGVmIF9HZXRPcGVuZXIoc2Vs
Zik6Ci0gICAgIiIiUmV0dXJucyBhbiBPcGVuZXJEaXJlY3RvciBmb3IgbWFraW5nIEhUVFAgcmVx
dWVzdHMuCi0KLSAgICBSZXR1cm5zOgotICAgICAgQSB1cmxsaWIyLk9wZW5lckRpcmVjdG9yIG9i
amVjdC4KLSAgICAiIiIKLSAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKLQotICBkZWYg
X0NyZWF0ZVJlcXVlc3Qoc2VsZiwgdXJsLCBkYXRhPU5vbmUpOgotICAgICIiIkNyZWF0ZXMgYSBu
ZXcgdXJsbGliIHJlcXVlc3QuIiIiCi0gICAgbG9nZ2luZy5kZWJ1ZygiQ3JlYXRpbmcgcmVxdWVz
dCBmb3I6ICclcycgd2l0aCBwYXlsb2FkOlxuJXMiLCB1cmwsIGRhdGEpCi0gICAgcmVxID0gdXJs
bGliMi5SZXF1ZXN0KHVybCwgZGF0YT1kYXRhKQotICAgIGlmIHNlbGYuaG9zdF9vdmVycmlkZToK
LSAgICAgIHJlcS5hZGRfaGVhZGVyKCJIb3N0Iiwgc2VsZi5ob3N0X292ZXJyaWRlKQotICAgIGZv
ciBrZXksIHZhbHVlIGluIHNlbGYuZXh0cmFfaGVhZGVycy5pdGVyaXRlbXMoKToKLSAgICAgIHJl
cS5hZGRfaGVhZGVyKGtleSwgdmFsdWUpCi0gICAgcmV0dXJuIHJlcQotCi0gIGRlZiBfR2V0QXV0
aFRva2VuKHNlbGYsIGVtYWlsLCBwYXNzd29yZCk6Ci0gICAgIiIiVXNlcyBDbGllbnRMb2dpbiB0
byBhdXRoZW50aWNhdGUgdGhlIHVzZXIsIHJldHVybmluZyBhbiBhdXRoIHRva2VuLgotCi0gICAg
QXJnczoKLSAgICAgIGVtYWlsOiAgICBUaGUgdXNlcidzIGVtYWlsIGFkZHJlc3MKLSAgICAgIHBh
c3N3b3JkOiBUaGUgdXNlcidzIHBhc3N3b3JkCi0KLSAgICBSYWlzZXM6Ci0gICAgICBDbGllbnRM
b2dpbkVycm9yOiBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgYXV0aGVudGljYXRpbmcgd2l0aCBDbGll
bnRMb2dpbi4KLSAgICAgIEhUVFBFcnJvcjogSWYgdGhlcmUgd2FzIHNvbWUgb3RoZXIgZm9ybSBv
ZiBIVFRQIGVycm9yLgotCi0gICAgUmV0dXJuczoKLSAgICAgIFRoZSBhdXRoZW50aWNhdGlvbiB0
b2tlbiByZXR1cm5lZCBieSBDbGllbnRMb2dpbi4KLSAgICAiIiIKLSAgICBhY2NvdW50X3R5cGUg
PSAiR09PR0xFIgotICAgIGlmIHNlbGYuaG9zdC5lbmRzd2l0aCgiLmdvb2dsZS5jb20iKToKLSAg
ICAgICMgTmVlZGVkIGZvciB1c2UgaW5zaWRlIEdvb2dsZS4KLSAgICAgIGFjY291bnRfdHlwZSA9
ICJIT1NURUQiCi0gICAgcmVxID0gc2VsZi5fQ3JlYXRlUmVxdWVzdCgKLSAgICAgICAgdXJsPSJo
dHRwczovL3d3dy5nb29nbGUuY29tL2FjY291bnRzL0NsaWVudExvZ2luIiwKLSAgICAgICAgZGF0
YT11cmxsaWIudXJsZW5jb2RlKHsKLSAgICAgICAgICAgICJFbWFpbCI6IGVtYWlsLAotICAgICAg
ICAgICAgIlBhc3N3ZCI6IHBhc3N3b3JkLAotICAgICAgICAgICAgInNlcnZpY2UiOiAiYWgiLAot
ICAgICAgICAgICAgInNvdXJjZSI6ICJyaWV0dmVsZC1jb2RlcmV2aWV3LXVwbG9hZCIsCi0gICAg
ICAgICAgICAiYWNjb3VudFR5cGUiOiBhY2NvdW50X3R5cGUsCi0gICAgICAgIH0pLAotICAgICkK
LSAgICB0cnk6Ci0gICAgICByZXNwb25zZSA9IHNlbGYub3BlbmVyLm9wZW4ocmVxKQotICAgICAg
cmVzcG9uc2VfYm9keSA9IHJlc3BvbnNlLnJlYWQoKQotICAgICAgcmVzcG9uc2VfZGljdCA9IGRp
Y3QoeC5zcGxpdCgiPSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiByZXNw
b25zZV9ib2R5LnNwbGl0KCJcbiIpIGlmIHgpCi0gICAgICByZXR1cm4gcmVzcG9uc2VfZGljdFsi
QXV0aCJdCi0gICAgZXhjZXB0IHVybGxpYjIuSFRUUEVycm9yLCBlOgotICAgICAgaWYgZS5jb2Rl
ID09IDQwMzoKLSAgICAgICAgYm9keSA9IGUucmVhZCgpCi0gICAgICAgIHJlc3BvbnNlX2RpY3Qg
PSBkaWN0KHguc3BsaXQoIj0iLCAxKSBmb3IgeCBpbiBib2R5LnNwbGl0KCJcbiIpIGlmIHgpCi0g
ICAgICAgIHJhaXNlIENsaWVudExvZ2luRXJyb3IocmVxLmdldF9mdWxsX3VybCgpLCBlLmNvZGUs
IGUubXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuaGVhZGVycywgcmVzcG9u
c2VfZGljdCkKLSAgICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlCi0KLSAgZGVmIF9HZXRBdXRoQ29v
a2llKHNlbGYsIGF1dGhfdG9rZW4pOgotICAgICIiIkZldGNoZXMgYXV0aGVudGljYXRpb24gY29v
a2llcyBmb3IgYW4gYXV0aGVudGljYXRpb24gdG9rZW4uCi0KLSAgICBBcmdzOgotICAgICAgYXV0
aF90b2tlbjogVGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuIHJldHVybmVkIGJ5IENsaWVudExvZ2lu
LgotCi0gICAgUmFpc2VzOgotICAgICAgSFRUUEVycm9yOiBJZiB0aGVyZSB3YXMgYW4gZXJyb3Ig
ZmV0Y2hpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIGNvb2tpZXMuCi0gICAgIiIiCi0gICAgIyBUaGlz
IGlzIGEgZHVtbXkgdmFsdWUgdG8gYWxsb3cgdXMgdG8gaWRlbnRpZnkgd2hlbiB3ZSdyZSBzdWNj
ZXNzZnVsLgotICAgIGNvbnRpbnVlX2xvY2F0aW9uID0gImh0dHA6Ly9sb2NhbGhvc3QvIgotICAg
IGFyZ3MgPSB7ImNvbnRpbnVlIjogY29udGludWVfbG9jYXRpb24sICJhdXRoIjogYXV0aF90b2tl
bn0KLSAgICByZXEgPSBzZWxmLl9DcmVhdGVSZXF1ZXN0KCJodHRwOi8vJXMvX2FoL2xvZ2luPyVz
IiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5ob3N0LCB1cmxsaWIudXJs
ZW5jb2RlKGFyZ3MpKSkKLSAgICB0cnk6Ci0gICAgICByZXNwb25zZSA9IHNlbGYub3BlbmVyLm9w
ZW4ocmVxKQotICAgIGV4Y2VwdCB1cmxsaWIyLkhUVFBFcnJvciwgZToKLSAgICAgIHJlc3BvbnNl
ID0gZQotICAgIGlmIChyZXNwb25zZS5jb2RlICE9IDMwMiBvcgotICAgICAgICByZXNwb25zZS5p
bmZvKClbImxvY2F0aW9uIl0gIT0gY29udGludWVfbG9jYXRpb24pOgotICAgICAgcmFpc2UgdXJs
bGliMi5IVFRQRXJyb3IocmVxLmdldF9mdWxsX3VybCgpLCByZXNwb25zZS5jb2RlLCByZXNwb25z
ZS5tc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLCBy
ZXNwb25zZS5mcCkKLSAgICBzZWxmLmF1dGhlbnRpY2F0ZWQgPSBUcnVlCi0KLSAgZGVmIF9BdXRo
ZW50aWNhdGUoc2VsZik6Ci0gICAgIiIiQXV0aGVudGljYXRlcyB0aGUgdXNlci4KLQotICAgIFRo
ZSBhdXRoZW50aWNhdGlvbiBwcm9jZXNzIHdvcmtzIGFzIGZvbGxvd3M6Ci0gICAgIDEpIFdlIGdl
dCBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmcm9tIHRoZSB1c2VyCi0gICAgIDIpIFdlIHVzZSBD
bGllbnRMb2dpbiB0byBvYnRhaW4gYW4gQVVUSCB0b2tlbiBmb3IgdGhlIHVzZXIKLSAgICAgICAg
KHNlZSBodHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvYWNjb3VudHMvQXV0aEZvckluc3RhbGxl
ZEFwcHMuaHRtbCkuCi0gICAgIDMpIFdlIHBhc3MgdGhlIGF1dGggdG9rZW4gdG8gL19haC9sb2dp
biBvbiB0aGUgc2VydmVyIHRvIG9idGFpbiBhbgotICAgICAgICBhdXRoZW50aWNhdGlvbiBjb29r
aWUuIElmIGxvZ2luIHdhcyBzdWNjZXNzZnVsLCBpdCB0cmllcyB0byByZWRpcmVjdAotICAgICAg
ICB1cyB0byB0aGUgVVJMIHdlIHByb3ZpZGVkLgotCi0gICAgSWYgd2UgYXR0ZW1wdCB0byBhY2Nl
c3MgdGhlIHVwbG9hZCBBUEkgd2l0aG91dCBmaXJzdCBvYnRhaW5pbmcgYW4KLSAgICBhdXRoZW50
aWNhdGlvbiBjb29raWUsIGl0IHJldHVybnMgYSA0MDEgcmVzcG9uc2UgYW5kIGRpcmVjdHMgdXMg
dG8KLSAgICBhdXRoZW50aWNhdGUgb3Vyc2VsdmVzIHdpdGggQ2xpZW50TG9naW4uCi0gICAgIiIi
Ci0gICAgZm9yIGkgaW4gcmFuZ2UoMyk6Ci0gICAgICBjcmVkZW50aWFscyA9IHNlbGYuYXV0aF9m
dW5jdGlvbigpCi0gICAgICB0cnk6Ci0gICAgICAgIGF1dGhfdG9rZW4gPSBzZWxmLl9HZXRBdXRo
VG9rZW4oY3JlZGVudGlhbHNbMF0sIGNyZWRlbnRpYWxzWzFdKQotICAgICAgZXhjZXB0IENsaWVu
dExvZ2luRXJyb3IsIGU6Ci0gICAgICAgIGlmIGUucmVhc29uID09ICJCYWRBdXRoZW50aWNhdGlv
biI6Ci0gICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAiSW52YWxpZCB1c2VybmFtZSBvciBw
YXNzd29yZC4iCi0gICAgICAgICAgY29udGludWUKLSAgICAgICAgaWYgZS5yZWFzb24gPT0gIkNh
cHRjaGFSZXF1aXJlZCI6Ci0gICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAoCi0gICAgICAg
ICAgICAgICJQbGVhc2UgZ28gdG9cbiIKLSAgICAgICAgICAgICAgImh0dHBzOi8vd3d3Lmdvb2ds
ZS5jb20vYWNjb3VudHMvRGlzcGxheVVubG9ja0NhcHRjaGFcbiIKLSAgICAgICAgICAgICAgImFu
ZCB2ZXJpZnkgeW91IGFyZSBhIGh1bWFuLiAgVGhlbiB0cnkgYWdhaW4uIikKLSAgICAgICAgICBi
cmVhawotICAgICAgICBpZiBlLnJlYXNvbiA9PSAiTm90VmVyaWZpZWQiOgotICAgICAgICAgIHBy
aW50ID4+c3lzLnN0ZGVyciwgIkFjY291bnQgbm90IHZlcmlmaWVkLiIKLSAgICAgICAgICBicmVh
awotICAgICAgICBpZiBlLnJlYXNvbiA9PSAiVGVybXNOb3RBZ3JlZWQiOgotICAgICAgICAgIHBy
aW50ID4+c3lzLnN0ZGVyciwgIlVzZXIgaGFzIG5vdCBhZ3JlZWQgdG8gVE9TLiIKLSAgICAgICAg
ICBicmVhawotICAgICAgICBpZiBlLnJlYXNvbiA9PSAiQWNjb3VudERlbGV0ZWQiOgotICAgICAg
ICAgIHByaW50ID4+c3lzLnN0ZGVyciwgIlRoZSB1c2VyIGFjY291bnQgaGFzIGJlZW4gZGVsZXRl
ZC4iCi0gICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgZS5yZWFzb24gPT0gIkFjY291bnREaXNh
YmxlZCI6Ci0gICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAiVGhlIHVzZXIgYWNjb3VudCBo
YXMgYmVlbiBkaXNhYmxlZC4iCi0gICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgZS5yZWFzb24g
PT0gIlNlcnZpY2VEaXNhYmxlZCI6Ci0gICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAoIlRo
ZSB1c2VyJ3MgYWNjZXNzIHRvIHRoZSBzZXJ2aWNlIGhhcyBiZWVuICIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGlzYWJsZWQuIikKLSAgICAgICAgICBicmVhawotICAgICAgICBp
ZiBlLnJlYXNvbiA9PSAiU2VydmljZVVuYXZhaWxhYmxlIjoKLSAgICAgICAgICBwcmludCA+PnN5
cy5zdGRlcnIsICJUaGUgc2VydmljZSBpcyBub3QgYXZhaWxhYmxlOyB0cnkgYWdhaW4gbGF0ZXIu
IgotICAgICAgICAgIGJyZWFrCi0gICAgICAgIHJhaXNlCi0gICAgICBzZWxmLl9HZXRBdXRoQ29v
a2llKGF1dGhfdG9rZW4pCi0gICAgICByZXR1cm4KLQotICBkZWYgU2VuZChzZWxmLCByZXF1ZXN0
X3BhdGgsIHBheWxvYWQ9Tm9uZSwKLSAgICAgICAgICAgY29udGVudF90eXBlPSJhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0iLAotICAgICAgICAgICB0aW1lb3V0PU5vbmUsCi0gICAgICAgICAgICoq
a3dhcmdzKToKLSAgICAiIiJTZW5kcyBhbiBSUEMgYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlLgot
Ci0gICAgQXJnczoKLSAgICAgIHJlcXVlc3RfcGF0aDogVGhlIHBhdGggdG8gc2VuZCB0aGUgcmVx
dWVzdCB0bywgZWcgL2FwaS9hcHB2ZXJzaW9uL2NyZWF0ZS4KLSAgICAgIHBheWxvYWQ6IFRoZSBi
b2R5IG9mIHRoZSByZXF1ZXN0LCBvciBOb25lIHRvIHNlbmQgYW4gZW1wdHkgcmVxdWVzdC4KLSAg
ICAgIGNvbnRlbnRfdHlwZTogVGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgdG8gdXNlLgotICAgICAg
dGltZW91dDogdGltZW91dCBpbiBzZWNvbmRzOyBkZWZhdWx0IE5vbmUgaS5lLiBubyB0aW1lb3V0
LgotICAgICAgICAoTm90ZTogZm9yIGxhcmdlIHJlcXVlc3RzIG9uIE9TIFgsIHRoZSB0aW1lb3V0
IGRvZXNuJ3Qgd29yayByaWdodC4pCi0gICAgICBrd2FyZ3M6IEFueSBrZXl3b3JkIGFyZ3VtZW50
cyBhcmUgY29udmVydGVkIGludG8gcXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMuCi0KLSAgICBSZXR1
cm5zOgotICAgICAgVGhlIHJlc3BvbnNlIGJvZHksIGFzIGEgc3RyaW5nLgotICAgICIiIgotICAg
ICMgVE9ETzogRG9uJ3QgcmVxdWlyZSBhdXRoZW50aWNhdGlvbi4gIExldCB0aGUgc2VydmVyIHNh
eQotICAgICMgd2hldGhlciBpdCBpcyBuZWNlc3NhcnkuCi0gICAgaWYgbm90IHNlbGYuYXV0aGVu
dGljYXRlZDoKLSAgICAgIHNlbGYuX0F1dGhlbnRpY2F0ZSgpCi0KLSAgICBvbGRfdGltZW91dCA9
IHNvY2tldC5nZXRkZWZhdWx0dGltZW91dCgpCi0gICAgc29ja2V0LnNldGRlZmF1bHR0aW1lb3V0
KHRpbWVvdXQpCi0gICAgdHJ5OgotICAgICAgdHJpZXMgPSAwCi0gICAgICB3aGlsZSBUcnVlOgot
ICAgICAgICB0cmllcyArPSAxCi0gICAgICAgIGFyZ3MgPSBkaWN0KGt3YXJncykKLSAgICAgICAg
dXJsID0gImh0dHA6Ly8lcyVzIiAlIChzZWxmLmhvc3QsIHJlcXVlc3RfcGF0aCkKLSAgICAgICAg
aWYgYXJnczoKLSAgICAgICAgICB1cmwgKz0gIj8iICsgdXJsbGliLnVybGVuY29kZShhcmdzKQot
ICAgICAgICByZXEgPSBzZWxmLl9DcmVhdGVSZXF1ZXN0KHVybD11cmwsIGRhdGE9cGF5bG9hZCkK
LSAgICAgICAgcmVxLmFkZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsIGNvbnRlbnRfdHlwZSkKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgIGYgPSBzZWxmLm9wZW5lci5vcGVuKHJlcSkKLSAgICAgICAg
ICByZXNwb25zZSA9IGYucmVhZCgpCi0gICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgICAgcmV0
dXJuIHJlc3BvbnNlCi0gICAgICAgIGV4Y2VwdCB1cmxsaWIyLkhUVFBFcnJvciwgZToKLSAgICAg
ICAgICBpZiB0cmllcyA+IDM6Ci0gICAgICAgICAgICByYWlzZQotICAgICAgICAgIGVsaWYgZS5j
b2RlID09IDQwMToKLSAgICAgICAgICAgIHNlbGYuX0F1dGhlbnRpY2F0ZSgpCi0jIyAgICAgICAg
ICAgZWxpZiBlLmNvZGUgPj0gNTAwIGFuZCBlLmNvZGUgPCA2MDA6Ci0jIyAgICAgICAgICAgICAj
IFNlcnZlciBFcnJvciAtIHRyeSBhZ2Fpbi4KLSMjICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlCi0gICAgZmluYWxseToKLSAgICAgIHNvY2tl
dC5zZXRkZWZhdWx0dGltZW91dChvbGRfdGltZW91dCkKLQotCi1jbGFzcyBIdHRwUnBjU2VydmVy
KEFic3RyYWN0UnBjU2VydmVyKToKLSAgIiIiUHJvdmlkZXMgYSBzaW1wbGlmaWVkIFJQQy1zdHls
ZSBpbnRlcmZhY2UgZm9yIEhUVFAgcmVxdWVzdHMuIiIiCi0KLSAgZGVmIF9BdXRoZW50aWNhdGUo
c2VsZik6Ci0gICAgIiIiU2F2ZSB0aGUgY29va2llIGphciBhZnRlciBhdXRoZW50aWNhdGlvbi4i
IiIKLSAgICBzdXBlcihIdHRwUnBjU2VydmVyLCBzZWxmKS5fQXV0aGVudGljYXRlKCkKLSAgICBp
ZiBzZWxmLnNhdmVfY29va2llczoKLSAgICAgIFN0YXR1c1VwZGF0ZSgiU2F2aW5nIGF1dGhlbnRp
Y2F0aW9uIGNvb2tpZXMgdG8gJXMiICUgc2VsZi5jb29raWVfZmlsZSkKLSAgICAgIHNlbGYuY29v
a2llX2phci5zYXZlKCkKLQotICBkZWYgX0dldE9wZW5lcihzZWxmKToKLSAgICAiIiJSZXR1cm5z
IGFuIE9wZW5lckRpcmVjdG9yIHRoYXQgc3VwcG9ydHMgY29va2llcyBhbmQgaWdub3JlcyByZWRp
cmVjdHMuCi0KLSAgICBSZXR1cm5zOgotICAgICAgQSB1cmxsaWIyLk9wZW5lckRpcmVjdG9yIG9i
amVjdC4KLSAgICAiIiIKLSAgICBvcGVuZXIgPSB1cmxsaWIyLk9wZW5lckRpcmVjdG9yKCkKLSAg
ICBvcGVuZXIuYWRkX2hhbmRsZXIodXJsbGliMi5Qcm94eUhhbmRsZXIoKSkKLSAgICBvcGVuZXIu
YWRkX2hhbmRsZXIodXJsbGliMi5Vbmtub3duSGFuZGxlcigpKQotICAgIG9wZW5lci5hZGRfaGFu
ZGxlcih1cmxsaWIyLkhUVFBIYW5kbGVyKCkpCi0gICAgb3BlbmVyLmFkZF9oYW5kbGVyKHVybGxp
YjIuSFRUUERlZmF1bHRFcnJvckhhbmRsZXIoKSkKLSAgICBvcGVuZXIuYWRkX2hhbmRsZXIodXJs
bGliMi5IVFRQU0hhbmRsZXIoKSkKLSAgICBvcGVuZXIuYWRkX2hhbmRsZXIodXJsbGliMi5IVFRQ
RXJyb3JQcm9jZXNzb3IoKSkKLSAgICBpZiBzZWxmLnNhdmVfY29va2llczoKLSAgICAgIHNlbGYu
Y29va2llX2ZpbGUgPSBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vLmNvZGVyZXZpZXdfdXBsb2FkX2Nv
b2tpZXMiKQotICAgICAgc2VsZi5jb29raWVfamFyID0gY29va2llbGliLk1vemlsbGFDb29raWVK
YXIoc2VsZi5jb29raWVfZmlsZSkKLSAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYuY29va2ll
X2ZpbGUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgc2VsZi5jb29raWVfamFyLmxvYWQoKQot
ICAgICAgICAgIHNlbGYuYXV0aGVudGljYXRlZCA9IFRydWUKLSAgICAgICAgICBTdGF0dXNVcGRh
dGUoIkxvYWRlZCBhdXRoZW50aWNhdGlvbiBjb29raWVzIGZyb20gJXMiICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5jb29raWVfZmlsZSkKLSAgICAgICAgZXhjZXB0IChjb29raWVsaWIu
TG9hZEVycm9yLCBJT0Vycm9yKToKLSAgICAgICAgICAjIEZhaWxlZCB0byBsb2FkIGNvb2tpZXMg
LSBqdXN0IGlnbm9yZSB0aGVtLgotICAgICAgICAgIHBhc3MKLSAgICAgIGVsc2U6Ci0gICAgICAg
ICMgQ3JlYXRlIGFuIGVtcHR5IGNvb2tpZSBmaWxlIHdpdGggbW9kZSA2MDAKLSAgICAgICAgZmQg
PSBvcy5vcGVuKHNlbGYuY29va2llX2ZpbGUsIG9zLk9fQ1JFQVQsIDA2MDApCi0gICAgICAgIG9z
LmNsb3NlKGZkKQotICAgICAgIyBBbHdheXMgY2htb2QgdGhlIGNvb2tpZSBmaWxlCi0gICAgICBv
cy5jaG1vZChzZWxmLmNvb2tpZV9maWxlLCAwNjAwKQotICAgIGVsc2U6Ci0gICAgICAjIERvbid0
IHNhdmUgY29va2llcyBhY3Jvc3MgcnVucyBvZiB1cGRhdGUucHkuCi0gICAgICBzZWxmLmNvb2tp
ZV9qYXIgPSBjb29raWVsaWIuQ29va2llSmFyKCkKLSAgICBvcGVuZXIuYWRkX2hhbmRsZXIodXJs
bGliMi5IVFRQQ29va2llUHJvY2Vzc29yKHNlbGYuY29va2llX2phcikpCi0gICAgcmV0dXJuIG9w
ZW5lcgotCi0KLXBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcih1c2FnZT0iJXByb2cgW29w
dGlvbnNdIFstLSBkaWZmX29wdGlvbnNdIikKLXBhcnNlci5hZGRfb3B0aW9uKCIteSIsICItLWFz
c3VtZV95ZXMiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgZGVzdD0i
YXNzdW1lX3llcyIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICBoZWxwPSJBc3N1
bWUgdGhhdCB0aGUgYW5zd2VyIHRvIHllcy9ubyBxdWVzdGlvbnMgaXMgJ3llcycuIikKLSMgTG9n
Z2luZwotZ3JvdXAgPSBwYXJzZXIuYWRkX29wdGlvbl9ncm91cCgiTG9nZ2luZyBvcHRpb25zIikK
LWdyb3VwLmFkZF9vcHRpb24oIi1xIiwgIi0tcXVpZXQiLCBhY3Rpb249InN0b3JlX2NvbnN0Iiwg
Y29uc3Q9MCwKLSAgICAgICAgICAgICAgICAgZGVzdD0idmVyYm9zZSIsIGhlbHA9IlByaW50IGVy
cm9ycyBvbmx5LiIpCi1ncm91cC5hZGRfb3B0aW9uKCItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249
InN0b3JlX2NvbnN0IiwgY29uc3Q9MiwKLSAgICAgICAgICAgICAgICAgZGVzdD0idmVyYm9zZSIs
IGRlZmF1bHQ9MSwKLSAgICAgICAgICAgICAgICAgaGVscD0iUHJpbnQgaW5mbyBsZXZlbCBsb2dz
IChkZWZhdWx0KS4iKQotZ3JvdXAuYWRkX29wdGlvbigiLS1ub2lzeSIsIGFjdGlvbj0ic3RvcmVf
Y29uc3QiLCBjb25zdD0zLAotICAgICAgICAgICAgICAgICBkZXN0PSJ2ZXJib3NlIiwgaGVscD0i
UHJpbnQgYWxsIGxvZ3MuIikKLSMgUmV2aWV3IHNlcnZlcgotZ3JvdXAgPSBwYXJzZXIuYWRkX29w
dGlvbl9ncm91cCgiUmV2aWV3IHNlcnZlciBvcHRpb25zIikKLWdyb3VwLmFkZF9vcHRpb24oIi1z
IiwgIi0tc2VydmVyIiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9InNlcnZlciIsCi0gICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9ImNvZGVyZXZpZXcuYXBwc3BvdC5jb20iLAotICAgICAgICAgICAgICAg
ICBtZXRhdmFyPSJTRVJWRVIiLAotICAgICAgICAgICAgICAgICBoZWxwPSgiVGhlIHNlcnZlciB0
byB1cGxvYWQgdG8uIFRoZSBmb3JtYXQgaXMgaG9zdFs6cG9ydF0uICIKLSAgICAgICAgICAgICAg
ICAgICAgICAgIkRlZmF1bHRzIHRvICdjb2RlcmV2aWV3LmFwcHNwb3QuY29tJy4iKSkKLWdyb3Vw
LmFkZF9vcHRpb24oIi1lIiwgIi0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZW1haWwi
LAotICAgICAgICAgICAgICAgICBtZXRhdmFyPSJFTUFJTCIsIGRlZmF1bHQ9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgaGVscD0iVGhlIHVzZXJuYW1lIHRvIHVzZS4gV2lsbCBwcm9tcHQgaWYgb21p
dHRlZC4iKQotZ3JvdXAuYWRkX29wdGlvbigiLUgiLCAiLS1ob3N0IiwgYWN0aW9uPSJzdG9yZSIs
IGRlc3Q9Imhvc3QiLAotICAgICAgICAgICAgICAgICBtZXRhdmFyPSJIT1NUIiwgZGVmYXVsdD1O
b25lLAotICAgICAgICAgICAgICAgICBoZWxwPSJPdmVycmlkZXMgdGhlIEhvc3QgaGVhZGVyIHNl
bnQgd2l0aCBhbGwgUlBDcy4iKQotZ3JvdXAuYWRkX29wdGlvbigiLS1ub19jb29raWVzIiwgYWN0
aW9uPSJzdG9yZV9mYWxzZSIsCi0gICAgICAgICAgICAgICAgIGRlc3Q9InNhdmVfY29va2llcyIs
IGRlZmF1bHQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgaGVscD0iRG8gbm90IHNhdmUgYXV0aGVu
dGljYXRpb24gY29va2llcyB0byBsb2NhbCBkaXNrLiIpCi0jIElzc3VlCi1ncm91cCA9IHBhcnNl
ci5hZGRfb3B0aW9uX2dyb3VwKCJJc3N1ZSBvcHRpb25zIikKLWdyb3VwLmFkZF9vcHRpb24oIi1k
IiwgIi0tZGVzY3JpcHRpb24iLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZGVzY3JpcHRpb24iLAot
ICAgICAgICAgICAgICAgICBtZXRhdmFyPSJERVNDUklQVElPTiIsIGRlZmF1bHQ9Tm9uZSwKLSAg
ICAgICAgICAgICAgICAgaGVscD0iT3B0aW9uYWwgZGVzY3JpcHRpb24gd2hlbiBjcmVhdGluZyBh
biBpc3N1ZS4iKQotZ3JvdXAuYWRkX29wdGlvbigiLWYiLCAiLS1kZXNjcmlwdGlvbl9maWxlIiwg
YWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgIGRlc3Q9ImRlc2NyaXB0aW9uX2ZpbGUi
LCBtZXRhdmFyPSJERVNDUklQVElPTl9GSUxFIiwKLSAgICAgICAgICAgICAgICAgZGVmYXVsdD1O
b25lLAotICAgICAgICAgICAgICAgICBoZWxwPSJPcHRpb25hbCBwYXRoIG9mIGEgZmlsZSB0aGF0
IGNvbnRhaW5zICIKLSAgICAgICAgICAgICAgICAgICAgICAidGhlIGRlc2NyaXB0aW9uIHdoZW4g
Y3JlYXRpbmcgYW4gaXNzdWUuIikKLWdyb3VwLmFkZF9vcHRpb24oIi1yIiwgIi0tcmV2aWV3ZXJz
IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9InJldmlld2VycyIsCi0gICAgICAgICAgICAgICAgIG1l
dGF2YXI9IlJFVklFV0VSUyIsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgaGVscD0i
QWRkIHJldmlld2VycyAoY29tbWEgc2VwYXJhdGVkIGVtYWlsIGFkZHJlc3NlcykuIikKLWdyb3Vw
LmFkZF9vcHRpb24oIi0tY2MiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iY2MiLAotICAgICAgICAg
ICAgICAgICBtZXRhdmFyPSJDQyIsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgaGVs
cD0iQWRkIENDIChjb21tYSBzZXBhcmF0ZWQgZW1haWwgYWRkcmVzc2VzKS4iKQotIyBVcGxvYWQg
b3B0aW9ucwotZ3JvdXAgPSBwYXJzZXIuYWRkX29wdGlvbl9ncm91cCgiUGF0Y2ggb3B0aW9ucyIp
Ci1ncm91cC5hZGRfb3B0aW9uKCItbSIsICItLW1lc3NhZ2UiLCBhY3Rpb249InN0b3JlIiwgZGVz
dD0ibWVzc2FnZSIsCi0gICAgICAgICAgICAgICAgIG1ldGF2YXI9Ik1FU1NBR0UiLCBkZWZhdWx0
PU5vbmUsCi0gICAgICAgICAgICAgICAgIGhlbHA9IkEgbWVzc2FnZSB0byBpZGVudGlmeSB0aGUg
cGF0Y2guICIKLSAgICAgICAgICAgICAgICAgICAgICAiV2lsbCBwcm9tcHQgaWYgb21pdHRlZC4i
KQotZ3JvdXAuYWRkX29wdGlvbigiLWkiLCAiLS1pc3N1ZSIsIHR5cGU9ImludCIsIGFjdGlvbj0i
c3RvcmUiLAotICAgICAgICAgICAgICAgICBtZXRhdmFyPSJJU1NVRSIsIGRlZmF1bHQ9Tm9uZSwK
LSAgICAgICAgICAgICAgICAgaGVscD0iSXNzdWUgbnVtYmVyIHRvIHdoaWNoIHRvIGFkZC4gRGVm
YXVsdHMgdG8gbmV3IGlzc3VlLiIpCi1ncm91cC5hZGRfb3B0aW9uKCItLWRvd25sb2FkX2Jhc2Ui
LCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICBkZXN0PSJkb3dubG9hZF9i
YXNlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgaGVscD0iQmFzZSBmaWxlcyB3
aWxsIGJlIGRvd25sb2FkZWQgYnkgdGhlIHNlcnZlciAiCi0gICAgICAgICAgICAgICAgICIoc2lk
ZS1ieS1zaWRlIGRpZmZzIG1heSBub3Qgd29yayBvbiBmaWxlcyB3aXRoIENScykuIikKLWdyb3Vw
LmFkZF9vcHRpb24oIi0tcmV2IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9InJldmlzaW9uIiwKLSAg
ICAgICAgICAgICAgICAgbWV0YXZhcj0iUkVWIiwgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAg
ICAgICBoZWxwPSJCcmFuY2gvdHJlZS9yZXZpc2lvbiB0byBkaWZmIGFnYWluc3QgKHVzZWQgYnkg
RFZDUykuIikKLWdyb3VwLmFkZF9vcHRpb24oIi0tc2VuZF9tYWlsIiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwKLSAgICAgICAgICAgICAgICAgZGVzdD0ic2VuZF9tYWlsIiwgZGVmYXVsdD1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgaGVscD0iU2VuZCBub3RpZmljYXRpb24gZW1haWwgdG8gcmV2aWV3
ZXJzLiIpCi0KLQotZGVmIEdldFJwY1NlcnZlcihvcHRpb25zKToKLSAgIiIiUmV0dXJucyBhbiBp
bnN0YW5jZSBvZiBhbiBBYnN0cmFjdFJwY1NlcnZlci4KLQotICBSZXR1cm5zOgotICAgIEEgbmV3
IEFic3RyYWN0UnBjU2VydmVyLCBvbiB3aGljaCBSUEMgY2FsbHMgY2FuIGJlIG1hZGUuCi0gICIi
IgotCi0gIHJwY19zZXJ2ZXJfY2xhc3MgPSBIdHRwUnBjU2VydmVyCi0KLSAgZGVmIEdldFVzZXJD
cmVkZW50aWFscygpOgotICAgICIiIlByb21wdHMgdGhlIHVzZXIgZm9yIGEgdXNlcm5hbWUgYW5k
IHBhc3N3b3JkLiIiIgotICAgIGVtYWlsID0gb3B0aW9ucy5lbWFpbAotICAgIGlmIGVtYWlsIGlz
IE5vbmU6Ci0gICAgICBlbWFpbCA9IEdldEVtYWlsKCJFbWFpbCAobG9naW4gZm9yIHVwbG9hZGlu
ZyB0byAlcykiICUgb3B0aW9ucy5zZXJ2ZXIpCi0gICAgcGFzc3dvcmQgPSBnZXRwYXNzLmdldHBh
c3MoIlBhc3N3b3JkIGZvciAlczogIiAlIGVtYWlsKQotICAgIHJldHVybiAoZW1haWwsIHBhc3N3
b3JkKQotCi0gICMgSWYgdGhpcyBpcyB0aGUgZGV2X2FwcHNlcnZlciwgdXNlIGZha2UgYXV0aGVu
dGljYXRpb24uCi0gIGhvc3QgPSAob3B0aW9ucy5ob3N0IG9yIG9wdGlvbnMuc2VydmVyKS5sb3dl
cigpCi0gIGlmIGhvc3QgPT0gImxvY2FsaG9zdCIgb3IgaG9zdC5zdGFydHN3aXRoKCJsb2NhbGhv
c3Q6Iik6Ci0gICAgZW1haWwgPSBvcHRpb25zLmVtYWlsCi0gICAgaWYgZW1haWwgaXMgTm9uZToK
LSAgICAgIGVtYWlsID0gInRlc3RAZXhhbXBsZS5jb20iCi0gICAgICBsb2dnaW5nLmluZm8oIlVz
aW5nIGRlYnVnIHVzZXIgJXMuICBPdmVycmlkZSB3aXRoIC0tZW1haWwiICUgZW1haWwpCi0gICAg
c2VydmVyID0gcnBjX3NlcnZlcl9jbGFzcygKLSAgICAgICAgb3B0aW9ucy5zZXJ2ZXIsCi0gICAg
ICAgIGxhbWJkYTogKGVtYWlsLCAicGFzc3dvcmQiKSwKLSAgICAgICAgaG9zdF9vdmVycmlkZT1v
cHRpb25zLmhvc3QsCi0gICAgICAgIGV4dHJhX2hlYWRlcnM9eyJDb29raWUiOgotICAgICAgICAg
ICAgICAgICAgICAgICAnZGV2X2FwcHNlcnZlcl9sb2dpbj0iJXM6RmFsc2UiJyAlIGVtYWlsfSwK
LSAgICAgICAgc2F2ZV9jb29raWVzPW9wdGlvbnMuc2F2ZV9jb29raWVzKQotICAgICMgRG9uJ3Qg
dHJ5IHRvIHRhbGsgdG8gQ2xpZW50TG9naW4uCi0gICAgc2VydmVyLmF1dGhlbnRpY2F0ZWQgPSBU
cnVlCi0gICAgcmV0dXJuIHNlcnZlcgotCi0gIHJldHVybiBycGNfc2VydmVyX2NsYXNzKG9wdGlv
bnMuc2VydmVyLCBHZXRVc2VyQ3JlZGVudGlhbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IGhvc3Rfb3ZlcnJpZGU9b3B0aW9ucy5ob3N0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBz
YXZlX2Nvb2tpZXM9b3B0aW9ucy5zYXZlX2Nvb2tpZXMpCi0KLQotZGVmIEVuY29kZU11bHRpcGFy
dEZvcm1EYXRhKGZpZWxkcywgZmlsZXMpOgotICAiIiJFbmNvZGUgZm9ybSBmaWVsZHMgZm9yIG11
bHRpcGFydC9mb3JtLWRhdGEuCi0KLSAgQXJnczoKLSAgICBmaWVsZHM6IEEgc2VxdWVuY2Ugb2Yg
KG5hbWUsIHZhbHVlKSBlbGVtZW50cyBmb3IgcmVndWxhciBmb3JtIGZpZWxkcy4KLSAgICBmaWxl
czogQSBzZXF1ZW5jZSBvZiAobmFtZSwgZmlsZW5hbWUsIHZhbHVlKSBlbGVtZW50cyBmb3IgZGF0
YSB0byBiZQotICAgICAgICAgICB1cGxvYWRlZCBhcyBmaWxlcy4KLSAgUmV0dXJuczoKLSAgICAo
Y29udGVudF90eXBlLCBib2R5KSByZWFkeSBmb3IgaHR0cGxpYi5IVFRQIGluc3RhbmNlLgotCi0g
IFNvdXJjZToKLSAgICBodHRwOi8vYXNwbi5hY3RpdmVzdGF0ZS5jb20vQVNQTi9Db29rYm9vay9Q
eXRob24vUmVjaXBlLzE0NjMwNgotICAiIiIKLSAgQk9VTkRBUlkgPSAnLU0tQS1HLUktQy0tLUIt
Ty1VLU4tRC1BLVItWS0nCi0gIENSTEYgPSAnXHJcbicKLSAgbGluZXMgPSBbXQotICBmb3IgKGtl
eSwgdmFsdWUpIGluIGZpZWxkczoKLSAgICBsaW5lcy5hcHBlbmQoJy0tJyArIEJPVU5EQVJZKQot
ICAgIGxpbmVzLmFwcGVuZCgnQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSIl
cyInICUga2V5KQotICAgIGxpbmVzLmFwcGVuZCgnJykKLSAgICBsaW5lcy5hcHBlbmQodmFsdWUp
Ci0gIGZvciAoa2V5LCBmaWxlbmFtZSwgdmFsdWUpIGluIGZpbGVzOgotICAgIGxpbmVzLmFwcGVu
ZCgnLS0nICsgQk9VTkRBUlkpCi0gICAgbGluZXMuYXBwZW5kKCdDb250ZW50LURpc3Bvc2l0aW9u
OiBmb3JtLWRhdGE7IG5hbWU9IiVzIjsgZmlsZW5hbWU9IiVzIicgJQotICAgICAgICAgICAgIChr
ZXksIGZpbGVuYW1lKSkKLSAgICBsaW5lcy5hcHBlbmQoJ0NvbnRlbnQtVHlwZTogJXMnICUgR2V0
Q29udGVudFR5cGUoZmlsZW5hbWUpKQotICAgIGxpbmVzLmFwcGVuZCgnJykKLSAgICBsaW5lcy5h
cHBlbmQodmFsdWUpCi0gIGxpbmVzLmFwcGVuZCgnLS0nICsgQk9VTkRBUlkgKyAnLS0nKQotICBs
aW5lcy5hcHBlbmQoJycpCi0gIGJvZHkgPSBDUkxGLmpvaW4obGluZXMpCi0gIGNvbnRlbnRfdHlw
ZSA9ICdtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0lcycgJSBCT1VOREFSWQotICByZXR1
cm4gY29udGVudF90eXBlLCBib2R5Ci0KLQotZGVmIEdldENvbnRlbnRUeXBlKGZpbGVuYW1lKToK
LSAgIiIiSGVscGVyIHRvIGd1ZXNzIHRoZSBjb250ZW50LXR5cGUgZnJvbSB0aGUgZmlsZW5hbWUu
IiIiCi0gIHJldHVybiBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShmaWxlbmFtZSlbMF0gb3IgJ2FwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbScKLQotCi0jIFVzZSBhIHNoZWxsIGZvciBzdWJjb21tYW5kcyBv
biBXaW5kb3dzIHRvIGdldCBhIFBBVEggc2VhcmNoLgotdXNlX3NoZWxsID0gc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoIndpbiIpCi0KLWRlZiBSdW5TaGVsbFdpdGhSZXR1cm5Db2RlKGNvbW1hbmQs
IHByaW50X291dHB1dD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNh
bF9uZXdsaW5lcz1UcnVlKToKLSAgIiIiRXhlY3V0ZXMgYSBjb21tYW5kIGFuZCByZXR1cm5zIHRo
ZSBvdXRwdXQgZnJvbSBzdGRvdXQgYW5kIHRoZSByZXR1cm4gY29kZS4KLQotICBBcmdzOgotICAg
IGNvbW1hbmQ6IENvbW1hbmQgdG8gZXhlY3V0ZS4KLSAgICBwcmludF9vdXRwdXQ6IElmIFRydWUs
IHRoZSBvdXRwdXQgaXMgcHJpbnRlZCB0byBzdGRvdXQuCi0gICAgICAgICAgICAgICAgICBJZiBG
YWxzZSwgYm90aCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgaWdub3JlZC4KLSAgICB1bml2ZXJzYWxf
bmV3bGluZXM6IFVzZSB1bml2ZXJzYWxfbmV3bGluZXMgZmxhZyAoZGVmYXVsdDogVHJ1ZSkuCi0K
LSAgUmV0dXJuczoKLSAgICBUdXBsZSAob3V0cHV0LCByZXR1cm4gY29kZSkKLSAgIiIiCi0gIGxv
Z2dpbmcuaW5mbygiUnVubmluZyAlcyIsIGNvbW1hbmQpCi0gIHAgPSBzdWJwcm9jZXNzLlBvcGVu
KGNvbW1hbmQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUs
Ci0gICAgICAgICAgICAgICAgICAgICAgIHNoZWxsPXVzZV9zaGVsbCwgdW5pdmVyc2FsX25ld2xp
bmVzPXVuaXZlcnNhbF9uZXdsaW5lcykKLSAgaWYgcHJpbnRfb3V0cHV0OgotICAgIG91dHB1dF9h
cnJheSA9IFtdCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgIGxpbmUgPSBwLnN0ZG91dC5yZWFkbGlu
ZSgpCi0gICAgICBpZiBub3QgbGluZToKLSAgICAgICAgYnJlYWsKLSAgICAgIHByaW50IGxpbmUu
c3RyaXAoIlxuIikKLSAgICAgIG91dHB1dF9hcnJheS5hcHBlbmQobGluZSkKLSAgICBvdXRwdXQg
PSAiIi5qb2luKG91dHB1dF9hcnJheSkKLSAgZWxzZToKLSAgICBvdXRwdXQgPSBwLnN0ZG91dC5y
ZWFkKCkKLSAgcC53YWl0KCkKLSAgZXJyb3V0ID0gcC5zdGRlcnIucmVhZCgpCi0gIGlmIHByaW50
X291dHB1dCBhbmQgZXJyb3V0OgotICAgIHByaW50ID4+c3lzLnN0ZGVyciwgZXJyb3V0Ci0gIHAu
c3Rkb3V0LmNsb3NlKCkKLSAgcC5zdGRlcnIuY2xvc2UoKQotICByZXR1cm4gb3V0cHV0LCBwLnJl
dHVybmNvZGUKLQotCi1kZWYgUnVuU2hlbGwoY29tbWFuZCwgc2lsZW50X29rPUZhbHNlLCB1bml2
ZXJzYWxfbmV3bGluZXM9VHJ1ZSwKLSAgICAgICAgICAgICBwcmludF9vdXRwdXQ9RmFsc2UpOgot
ICBkYXRhLCByZXRjb2RlID0gUnVuU2hlbGxXaXRoUmV0dXJuQ29kZShjb21tYW5kLCBwcmludF9v
dXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNh
bF9uZXdsaW5lcykKLSAgaWYgcmV0Y29kZToKLSAgICBFcnJvckV4aXQoIkdvdCBlcnJvciBzdGF0
dXMgZnJvbSAlczpcbiVzIiAlIChjb21tYW5kLCBkYXRhKSkKLSAgaWYgbm90IHNpbGVudF9vayBh
bmQgbm90IGRhdGE6Ci0gICAgRXJyb3JFeGl0KCJObyBvdXRwdXQgZnJvbSAlcyIgJSBjb21tYW5k
KQotICByZXR1cm4gZGF0YQotCi0KLWNsYXNzIFZlcnNpb25Db250cm9sU3lzdGVtKG9iamVjdCk6
Ci0gICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgcHJvdmlkaW5nIGFuIGludGVyZmFjZSB0byB0aGUg
VkNTLiIiIgotCi0gIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAiIiJDb25zdHJ1
Y3Rvci4KLQotICAgIEFyZ3M6Ci0gICAgICBvcHRpb25zOiBDb21tYW5kIGxpbmUgb3B0aW9ucy4K
LSAgICAiIiIKLSAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zCi0KLSAgZGVmIEdlbmVyYXRlRGlm
ZihzZWxmLCBhcmdzKToKLSAgICAiIiJSZXR1cm4gdGhlIGN1cnJlbnQgZGlmZiBhcyBhIHN0cmlu
Zy4KLQotICAgIEFyZ3M6Ci0gICAgICBhcmdzOiBFeHRyYSBhcmd1bWVudHMgdG8gcGFzcyB0byB0
aGUgZGlmZiBjb21tYW5kLgotICAgICIiIgotICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io
Ci0gICAgICAgICJhYnN0cmFjdCBtZXRob2QgLS0gc3ViY2xhc3MgJXMgbXVzdCBvdmVycmlkZSIg
JSBzZWxmLl9fY2xhc3NfXykKLQotICBkZWYgR2V0VW5rbm93bkZpbGVzKHNlbGYpOgotICAgICIi
IlJldHVybiBhIGxpc3Qgb2YgZmlsZXMgdW5rbm93biB0byB0aGUgVkNTLiIiIgotICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IoCi0gICAgICAgICJhYnN0cmFjdCBtZXRob2QgLS0gc3ViY2xh
c3MgJXMgbXVzdCBvdmVycmlkZSIgJSBzZWxmLl9fY2xhc3NfXykKLQotICBkZWYgQ2hlY2tGb3JV
bmtub3duRmlsZXMoc2VsZik6Ci0gICAgIiIiU2hvdyBhbiAiYXJlIHlvdSBzdXJlPyIgcHJvbXB0
IGlmIHRoZXJlIGFyZSB1bmtub3duIGZpbGVzLiIiIgotICAgIHVua25vd25fZmlsZXMgPSBzZWxm
LkdldFVua25vd25GaWxlcygpCi0gICAgaWYgdW5rbm93bl9maWxlczoKLSAgICAgIHByaW50ICJU
aGUgZm9sbG93aW5nIGZpbGVzIGFyZSBub3QgYWRkZWQgdG8gdmVyc2lvbiBjb250cm9sOiIKLSAg
ICAgIGZvciBsaW5lIGluIHVua25vd25fZmlsZXM6Ci0gICAgICAgIHByaW50IGxpbmUKLSAgICAg
IHByb21wdCA9ICJBcmUgeW91IHN1cmUgdG8gY29udGludWU/KHkvTikgIgotICAgICAgYW5zd2Vy
ID0gcmF3X2lucHV0KHByb21wdCkuc3RyaXAoKQotICAgICAgaWYgYW5zd2VyICE9ICJ5IjoKLSAg
ICAgICAgRXJyb3JFeGl0KCJVc2VyIGFib3J0ZWQiKQotCi0gIGRlZiBHZXRCYXNlRmlsZShzZWxm
LCBmaWxlbmFtZSk6Ci0gICAgIiIiR2V0IHRoZSBjb250ZW50IG9mIHRoZSB1cHN0cmVhbSB2ZXJz
aW9uIG9mIGEgZmlsZS4KLQotICAgIFJldHVybnM6Ci0gICAgICBBIHR1cGxlIChiYXNlX2NvbnRl
bnQsIG5ld19jb250ZW50LCBpc19iaW5hcnksIHN0YXR1cykKLSAgICAgICAgYmFzZV9jb250ZW50
OiBUaGUgY29udGVudHMgb2YgdGhlIGJhc2UgZmlsZS4KLSAgICAgICAgbmV3X2NvbnRlbnQ6IEZv
ciB0ZXh0IGZpbGVzLCB0aGlzIGlzIGVtcHR5LiAgRm9yIGJpbmFyeSBmaWxlcywgdGhpcyBpcwot
ICAgICAgICAgIHRoZSBjb250ZW50cyBvZiB0aGUgbmV3IGZpbGUsIHNpbmNlIHRoZSBkaWZmIG91
dHB1dCB3b24ndCBjb250YWluCi0gICAgICAgICAgaW5mb3JtYXRpb24gdG8gcmVjb25zdHJ1Y3Qg
dGhlIGN1cnJlbnQgZmlsZS4KLSAgICAgICAgaXNfYmluYXJ5OiBUcnVlIGlmZiB0aGUgZmlsZSBp
cyBiaW5hcnkuCi0gICAgICAgIHN0YXR1czogVGhlIHN0YXR1cyBvZiB0aGUgZmlsZS4KLSAgICAi
IiIKLQotICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoCi0gICAgICAgICJhYnN0cmFjdCBt
ZXRob2QgLS0gc3ViY2xhc3MgJXMgbXVzdCBvdmVycmlkZSIgJSBzZWxmLl9fY2xhc3NfXykKLQot
Ci0gIGRlZiBHZXRCYXNlRmlsZXMoc2VsZiwgZGlmZik6Ci0gICAgIiIiSGVscGVyIHRoYXQgY2Fs
bHMgR2V0QmFzZSBmaWxlIGZvciBlYWNoIGZpbGUgaW4gdGhlIHBhdGNoLgotCi0gICAgUmV0dXJu
czoKLSAgICAgIEEgZGljdGlvbmFyeSB0aGF0IG1hcHMgZnJvbSBmaWxlbmFtZSB0byBHZXRCYXNl
RmlsZSdzIHR1cGxlLiAgRmlsZW5hbWVzCi0gICAgICBhcmUgcmV0cmlldmVkIGJhc2VkIG9uIGxp
bmVzIHRoYXQgc3RhcnQgd2l0aCAiSW5kZXg6IiBvcgotICAgICAgIlByb3BlcnR5IGNoYW5nZXMg
b246Ii4KLSAgICAiIiIKLSAgICBmaWxlcyA9IHt9Ci0gICAgZm9yIGxpbmUgaW4gZGlmZi5zcGxp
dGxpbmVzKFRydWUpOgotICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdJbmRleDonKSBvciBsaW5l
LnN0YXJ0c3dpdGgoJ1Byb3BlcnR5IGNoYW5nZXMgb246Jyk6Ci0gICAgICAgIHVudXNlZCwgZmls
ZW5hbWUgPSBsaW5lLnNwbGl0KCc6JywgMSkKLSAgICAgICAgIyBPbiBXaW5kb3dzIGlmIGEgZmls
ZSBoYXMgcHJvcGVydHkgY2hhbmdlcyBpdHMgZmlsZW5hbWUgdXNlcyAnXCcKLSAgICAgICAgIyBp
bnN0ZWFkIG9mICcvJy4KLSAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZS5zdHJpcCgpLnJlcGxh
Y2UoJ1xcJywgJy8nKQotICAgICAgICBmaWxlc1tmaWxlbmFtZV0gPSBzZWxmLkdldEJhc2VGaWxl
KGZpbGVuYW1lKQotICAgIHJldHVybiBmaWxlcwotCi0KLSAgZGVmIFVwbG9hZEJhc2VGaWxlcyhz
ZWxmLCBpc3N1ZSwgcnBjX3NlcnZlciwgcGF0Y2hfbGlzdCwgcGF0Y2hzZXQsIG9wdGlvbnMsCi0g
ICAgICAgICAgICAgICAgICAgICAgZmlsZXMpOgotICAgICIiIlVwbG9hZHMgdGhlIGJhc2UgZmls
ZXMgKGFuZCBpZiBuZWNlc3NhcnksIHRoZSBjdXJyZW50IG9uZXMgYXMgd2VsbCkuIiIiCi0KLSAg
ICBkZWYgVXBsb2FkRmlsZShmaWxlbmFtZSwgZmlsZV9pZCwgY29udGVudCwgaXNfYmluYXJ5LCBz
dGF0dXMsIGlzX2Jhc2UpOgotICAgICAgIiIiVXBsb2FkcyBhIGZpbGUgdG8gdGhlIHNlcnZlci4i
IiIKLSAgICAgIGZpbGVfdG9vX2xhcmdlID0gRmFsc2UKLSAgICAgIGlmIGlzX2Jhc2U6Ci0gICAg
ICAgIHR5cGUgPSAiYmFzZSIKLSAgICAgIGVsc2U6Ci0gICAgICAgIHR5cGUgPSAiY3VycmVudCIK
LSAgICAgIGlmIGxlbihjb250ZW50KSA+IE1BWF9VUExPQURfU0laRToKLSAgICAgICAgcHJpbnQg
KCJOb3QgdXBsb2FkaW5nIHRoZSAlcyBmaWxlIGZvciAlcyBiZWNhdXNlIGl0J3MgdG9vIGxhcmdl
LiIgJQotICAgICAgICAgICAgICAgKHR5cGUsIGZpbGVuYW1lKSkKLSAgICAgICAgZmlsZV90b29f
bGFyZ2UgPSBUcnVlCi0gICAgICAgIGNvbnRlbnQgPSAiIgotICAgICAgY2hlY2tzdW0gPSBtZDUu
bmV3KGNvbnRlbnQpLmhleGRpZ2VzdCgpCi0gICAgICBpZiBvcHRpb25zLnZlcmJvc2UgPiAwIGFu
ZCBub3QgZmlsZV90b29fbGFyZ2U6Ci0gICAgICAgIHByaW50ICJVcGxvYWRpbmcgJXMgZmlsZSBm
b3IgJXMiICUgKHR5cGUsIGZpbGVuYW1lKQotICAgICAgdXJsID0gIi8lZC91cGxvYWRfY29udGVu
dC8lZC8lZCIgJSAoaW50KGlzc3VlKSwgaW50KHBhdGNoc2V0KSwgZmlsZV9pZCkKLSAgICAgIGZv
cm1fZmllbGRzID0gWygiZmlsZW5hbWUiLCBmaWxlbmFtZSksCi0gICAgICAgICAgICAgICAgICAg
ICAoInN0YXR1cyIsIHN0YXR1cyksCi0gICAgICAgICAgICAgICAgICAgICAoImNoZWNrc3VtIiwg
Y2hlY2tzdW0pLAotICAgICAgICAgICAgICAgICAgICAgKCJpc19iaW5hcnkiLCBzdHIoaXNfYmlu
YXJ5KSksCi0gICAgICAgICAgICAgICAgICAgICAoImlzX2N1cnJlbnQiLCBzdHIobm90IGlzX2Jh
c2UpKSwKLSAgICAgICAgICAgICAgICAgICAgXQotICAgICAgaWYgZmlsZV90b29fbGFyZ2U6Ci0g
ICAgICAgIGZvcm1fZmllbGRzLmFwcGVuZCgoImZpbGVfdG9vX2xhcmdlIiwgIjEiKSkKLSAgICAg
IGlmIG9wdGlvbnMuZW1haWw6Ci0gICAgICAgIGZvcm1fZmllbGRzLmFwcGVuZCgoInVzZXIiLCBv
cHRpb25zLmVtYWlsKSkKLSAgICAgIGN0eXBlLCBib2R5ID0gRW5jb2RlTXVsdGlwYXJ0Rm9ybURh
dGEoZm9ybV9maWVsZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsoImRhdGEiLCBmaWxlbmFtZSwgY29udGVudCldKQotICAgICAgcmVzcG9uc2VfYm9keSA9
IHJwY19zZXJ2ZXIuU2VuZCh1cmwsIGJvZHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRlbnRfdHlwZT1jdHlwZSkKLSAgICAgIGlmIG5vdCByZXNwb25zZV9ib2R5
LnN0YXJ0c3dpdGgoIk9LIik6Ci0gICAgICAgIFN0YXR1c1VwZGF0ZSgiICAtLT4gJXMiICUgcmVz
cG9uc2VfYm9keSkKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIHBhdGNoZXMgPSBkaWN0KCkK
LSAgICBbcGF0Y2hlcy5zZXRkZWZhdWx0KHYsIGspIGZvciBrLCB2IGluIHBhdGNoX2xpc3RdCi0g
ICAgZm9yIGZpbGVuYW1lIGluIHBhdGNoZXMua2V5cygpOgotICAgICAgYmFzZV9jb250ZW50LCBu
ZXdfY29udGVudCwgaXNfYmluYXJ5LCBzdGF0dXMgPSBmaWxlc1tmaWxlbmFtZV0KLSAgICAgIGZp
bGVfaWRfc3RyID0gcGF0Y2hlcy5nZXQoZmlsZW5hbWUpCi0gICAgICBpZiBmaWxlX2lkX3N0ci5m
aW5kKCJub2Jhc2UiKSAhPSAtMToKLSAgICAgICAgYmFzZV9jb250ZW50ID0gTm9uZQotICAgICAg
ICBmaWxlX2lkX3N0ciA9IGZpbGVfaWRfc3RyW2ZpbGVfaWRfc3RyLnJmaW5kKCJfIikgKyAxOl0K
LSAgICAgIGZpbGVfaWQgPSBpbnQoZmlsZV9pZF9zdHIpCi0gICAgICBpZiBiYXNlX2NvbnRlbnQg
IT0gTm9uZToKLSAgICAgICAgVXBsb2FkRmlsZShmaWxlbmFtZSwgZmlsZV9pZCwgYmFzZV9jb250
ZW50LCBpc19iaW5hcnksIHN0YXR1cywgVHJ1ZSkKLSAgICAgIGlmIG5ld19jb250ZW50ICE9IE5v
bmU6Ci0gICAgICAgIFVwbG9hZEZpbGUoZmlsZW5hbWUsIGZpbGVfaWQsIG5ld19jb250ZW50LCBp
c19iaW5hcnksIHN0YXR1cywgRmFsc2UpCi0KLSAgZGVmIElzSW1hZ2Uoc2VsZiwgZmlsZW5hbWUp
OgotICAgICIiIlJldHVybnMgdHJ1ZSBpZiB0aGUgZmlsZW5hbWUgaGFzIGFuIGltYWdlIGV4dGVu
c2lvbi4iIiIKLSAgICBtaW1ldHlwZSA9ICBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShmaWxlbmFtZSlb
MF0KLSAgICBpZiBub3QgbWltZXR5cGU6Ci0gICAgICByZXR1cm4gRmFsc2UKLSAgICByZXR1cm4g
bWltZXR5cGUuc3RhcnRzd2l0aCgiaW1hZ2UvIikKLQotCi1jbGFzcyBTdWJ2ZXJzaW9uVkNTKFZl
cnNpb25Db250cm9sU3lzdGVtKToKLSAgIiIiSW1wbGVtZW50YXRpb24gb2YgdGhlIFZlcnNpb25D
b250cm9sU3lzdGVtIGludGVyZmFjZSBmb3IgU3VidmVyc2lvbi4iIiIKLQotICBkZWYgX19pbml0
X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgc3VwZXIoU3VidmVyc2lvblZDUywgc2VsZikuX19pbml0
X18ob3B0aW9ucykKLSAgICBpZiBzZWxmLm9wdGlvbnMucmV2aXNpb246Ci0gICAgICBtYXRjaCA9
IHJlLm1hdGNoKHIiKFxkKykoOihcZCspKT8iLCBzZWxmLm9wdGlvbnMucmV2aXNpb24pCi0gICAg
ICBpZiBub3QgbWF0Y2g6Ci0gICAgICAgIEVycm9yRXhpdCgiSW52YWxpZCBTdWJ2ZXJzaW9uIHJl
dmlzaW9uICVzLiIgJSBzZWxmLm9wdGlvbnMucmV2aXNpb24pCi0gICAgICBzZWxmLnJldl9zdGFy
dCA9IG1hdGNoLmdyb3VwKDEpCi0gICAgICBzZWxmLnJldl9lbmQgPSBtYXRjaC5ncm91cCgzKQot
ICAgIGVsc2U6Ci0gICAgICBzZWxmLnJldl9zdGFydCA9IHNlbGYucmV2X2VuZCA9IE5vbmUKLSAg
ICAjIENhY2hlIG91dHB1dCBmcm9tICJzdm4gbGlzdCAtciBSRVZOTyBkaXJuYW1lIi4KLSAgICAj
IEtleXM6IGRpcm5hbWUsIFZhbHVlczogMi10dXBsZSAob3V0cHV0IGZvciBzdGFydCByZXYgYW5k
IGVuZCByZXYpLgotICAgIHNlbGYuc3ZubHNfY2FjaGUgPSB7fQotICAgICMgU1ZOIGJhc2UgVVJM
IGlzIHJlcXVpcmVkIHRvIGZldGNoIGZpbGVzIGRlbGV0ZWQgaW4gYW4gb2xkZXIgcmV2aXNpb24u
Ci0gICAgIyBSZXN1bHQgaXMgY2FjaGVkIHRvIG5vdCBndWVzcyBpdCBvdmVyIGFuZCBvdmVyIGFn
YWluIGluIEdldEJhc2VGaWxlKCkuCi0gICAgcmVxdWlyZWQgPSBzZWxmLm9wdGlvbnMuZG93bmxv
YWRfYmFzZSBvciBzZWxmLm9wdGlvbnMucmV2aXNpb24gaXMgbm90IE5vbmUKLSAgICBzZWxmLnN2
bl9iYXNlID0gc2VsZi5fR3Vlc3NCYXNlKHJlcXVpcmVkKQotCi0gIGRlZiBHdWVzc0Jhc2Uoc2Vs
ZiwgcmVxdWlyZWQpOgotICAgICIiIldyYXBwZXIgZm9yIF9HdWVzc0Jhc2UuIiIiCi0gICAgcmV0
dXJuIHNlbGYuc3ZuX2Jhc2UKLQotICBkZWYgX0d1ZXNzQmFzZShzZWxmLCByZXF1aXJlZCk6Ci0g
ICAgIiIiUmV0dXJucyB0aGUgU1ZOIGJhc2UgVVJMLgotCi0gICAgQXJnczoKLSAgICAgIHJlcXVp
cmVkOiBJZiB0cnVlLCBleGl0cyBpZiB0aGUgdXJsIGNhbid0IGJlIGd1ZXNzZWQsIG90aGVyd2lz
ZSBOb25lIGlzCi0gICAgICAgIHJldHVybmVkLgotICAgICIiIgotICAgIGluZm8gPSBSdW5TaGVs
bChbInN2biIsICJpbmZvIl0pCi0gICAgZm9yIGxpbmUgaW4gaW5mby5zcGxpdGxpbmVzKCk6Ci0g
ICAgICB3b3JkcyA9IGxpbmUuc3BsaXQoKQotICAgICAgaWYgbGVuKHdvcmRzKSA9PSAyIGFuZCB3
b3Jkc1swXSA9PSAiVVJMOiI6Ci0gICAgICAgIHVybCA9IHdvcmRzWzFdCi0gICAgICAgIHNjaGVt
ZSwgbmV0bG9jLCBwYXRoLCBwYXJhbXMsIHF1ZXJ5LCBmcmFnbWVudCA9IHVybHBhcnNlLnVybHBh
cnNlKHVybCkKLSAgICAgICAgdXNlcm5hbWUsIG5ldGxvYyA9IHVybGxpYi5zcGxpdHVzZXIobmV0
bG9jKQotICAgICAgICBpZiB1c2VybmFtZToKLSAgICAgICAgICBsb2dnaW5nLmluZm8oIlJlbW92
ZWQgdXNlcm5hbWUgZnJvbSBiYXNlIFVSTCIpCi0gICAgICAgIGlmIG5ldGxvYy5lbmRzd2l0aCgi
c3ZuLnB5dGhvbi5vcmciKToKLSAgICAgICAgICBpZiBuZXRsb2MgPT0gInN2bi5weXRob24ub3Jn
IjoKLSAgICAgICAgICAgIGlmIHBhdGguc3RhcnRzd2l0aCgiL3Byb2plY3RzLyIpOgotICAgICAg
ICAgICAgICBwYXRoID0gcGF0aFs5Ol0KLSAgICAgICAgICBlbGlmIG5ldGxvYyAhPSAicHl0aG9u
ZGV2QHN2bi5weXRob24ub3JnIjoKLSAgICAgICAgICAgIEVycm9yRXhpdCgiVW5yZWNvZ25pemVk
IFB5dGhvbiBVUkw6ICVzIiAlIHVybCkKLSAgICAgICAgICBiYXNlID0gImh0dHA6Ly9zdm4ucHl0
aG9uLm9yZy92aWV3LypjaGVja291dColcy8iICUgcGF0aAotICAgICAgICAgIGxvZ2dpbmcuaW5m
bygiR3Vlc3NlZCBQeXRob24gYmFzZSA9ICVzIiwgYmFzZSkKLSAgICAgICAgZWxpZiBuZXRsb2Mu
ZW5kc3dpdGgoInN2bi5jb2xsYWIubmV0Iik6Ci0gICAgICAgICAgaWYgcGF0aC5zdGFydHN3aXRo
KCIvcmVwb3MvIik6Ci0gICAgICAgICAgICBwYXRoID0gcGF0aFs2Ol0KLSAgICAgICAgICBiYXNl
ID0gImh0dHA6Ly9zdm4uY29sbGFiLm5ldC92aWV3dmMvKmNoZWNrb3V0KiVzLyIgJSBwYXRoCi0g
ICAgICAgICAgbG9nZ2luZy5pbmZvKCJHdWVzc2VkIENvbGxhYk5ldCBiYXNlID0gJXMiLCBiYXNl
KQotICAgICAgICBlbGlmIG5ldGxvYy5lbmRzd2l0aCgiLmdvb2dsZWNvZGUuY29tIik6Ci0gICAg
ICAgICAgcGF0aCA9IHBhdGggKyAiLyIKLSAgICAgICAgICBiYXNlID0gdXJscGFyc2UudXJsdW5w
YXJzZSgoImh0dHAiLCBuZXRsb2MsIHBhdGgsIHBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcXVlcnksIGZyYWdtZW50KSkKLSAgICAgICAgICBsb2dnaW5nLmlu
Zm8oIkd1ZXNzZWQgR29vZ2xlIENvZGUgYmFzZSA9ICVzIiwgYmFzZSkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICBwYXRoID0gcGF0aCArICIvIgotICAgICAgICAgIGJhc2UgPSB1cmxwYXJzZS51
cmx1bnBhcnNlKChzY2hlbWUsIG5ldGxvYywgcGF0aCwgcGFyYW1zLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSwgZnJhZ21lbnQpKQotICAgICAgICAgIGxvZ2dp
bmcuaW5mbygiR3Vlc3NlZCBiYXNlID0gJXMiLCBiYXNlKQotICAgICAgICByZXR1cm4gYmFzZQot
ICAgIGlmIHJlcXVpcmVkOgotICAgICAgRXJyb3JFeGl0KCJDYW4ndCBmaW5kIFVSTCBpbiBvdXRw
dXQgZnJvbSBzdm4gaW5mbyIpCi0gICAgcmV0dXJuIE5vbmUKLQotICBkZWYgR2VuZXJhdGVEaWZm
KHNlbGYsIGFyZ3MpOgotICAgIGNtZCA9IFsic3ZuIiwgImRpZmYiXQotICAgIGlmIHNlbGYub3B0
aW9ucy5yZXZpc2lvbjoKLSAgICAgIGNtZCArPSBbIi1yIiwgc2VsZi5vcHRpb25zLnJldmlzaW9u
XQotICAgIGNtZC5leHRlbmQoYXJncykKLSAgICBkYXRhID0gUnVuU2hlbGwoY21kKQotICAgIGNv
dW50ID0gMAotICAgIGZvciBsaW5lIGluIGRhdGEuc3BsaXRsaW5lcygpOgotICAgICAgaWYgbGlu
ZS5zdGFydHN3aXRoKCJJbmRleDoiKSBvciBsaW5lLnN0YXJ0c3dpdGgoIlByb3BlcnR5IGNoYW5n
ZXMgb246Iik6Ci0gICAgICAgIGNvdW50ICs9IDEKLSAgICAgICAgbG9nZ2luZy5pbmZvKGxpbmUp
Ci0gICAgaWYgbm90IGNvdW50OgotICAgICAgRXJyb3JFeGl0KCJObyB2YWxpZCBwYXRjaGVzIGZv
dW5kIGluIG91dHB1dCBmcm9tIHN2biBkaWZmIikKLSAgICByZXR1cm4gZGF0YQotCi0gIGRlZiBf
Q29sbGFwc2VLZXl3b3JkcyhzZWxmLCBjb250ZW50LCBrZXl3b3JkX3N0cik6Ci0gICAgIiIiQ29s
bGFwc2VzIFNWTiBrZXl3b3Jkcy4iIiIKLSAgICAjIHN2biBjYXQgdHJhbnNsYXRlcyBrZXl3b3Jk
cyBidXQgc3ZuIGRpZmYgZG9lc24ndC4gQXMgYSByZXN1bHQgb2YgdGhpcwotICAgICMgYmVoYXZp
b3IgcGF0Y2hpbmcuUGF0Y2hDaHVua3MoKSBmYWlscyB3aXRoIGEgY2h1bmsgbWlzbWF0Y2ggZXJy
b3IuCi0gICAgIyBUaGlzIHBhcnQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSB0aGUgUmV2aWV3
IEJvYXJkIGRldmVsb3BtZW50IHRlYW0KLSAgICAjIHdobyBoYWQgdGhlIHNhbWUgcHJvYmxlbSAo
aHR0cDovL3Jldmlld3MucmV2aWV3LWJvYXJkLm9yZy9yLzI3Ni8pLgotICAgICMgTWFwcGluZyBv
ZiBrZXl3b3JkcyB0byBrbm93biBhbGlhc2VzCi0gICAgc3ZuX2tleXdvcmRzID0gewotICAgICAg
IyBTdGFuZGFyZCBrZXl3b3JkcwotICAgICAgJ0RhdGUnOiAgICAgICAgICAgICAgICBbJ0RhdGUn
LCAnTGFzdENoYW5nZWREYXRlJ10sCi0gICAgICAnUmV2aXNpb24nOiAgICAgICAgICAgIFsnUmV2
aXNpb24nLCAnTGFzdENoYW5nZWRSZXZpc2lvbicsICdSZXYnXSwKLSAgICAgICdBdXRob3InOiAg
ICAgICAgICAgICAgWydBdXRob3InLCAnTGFzdENoYW5nZWRCeSddLAotICAgICAgJ0hlYWRVUkwn
OiAgICAgICAgICAgICBbJ0hlYWRVUkwnLCAnVVJMJ10sCi0gICAgICAnSWQnOiAgICAgICAgICAg
ICAgICAgIFsnSWQnXSwKLQotICAgICAgIyBBbGlhc2VzCi0gICAgICAnTGFzdENoYW5nZWREYXRl
JzogICAgIFsnTGFzdENoYW5nZWREYXRlJywgJ0RhdGUnXSwKLSAgICAgICdMYXN0Q2hhbmdlZFJl
dmlzaW9uJzogWydMYXN0Q2hhbmdlZFJldmlzaW9uJywgJ1JldicsICdSZXZpc2lvbiddLAotICAg
ICAgJ0xhc3RDaGFuZ2VkQnknOiAgICAgICBbJ0xhc3RDaGFuZ2VkQnknLCAnQXV0aG9yJ10sCi0g
ICAgICAnVVJMJzogICAgICAgICAgICAgICAgIFsnVVJMJywgJ0hlYWRVUkwnXSwKLSAgICB9Ci0K
LSAgICBkZWYgcmVwbChtKToKLSAgICAgICBpZiBtLmdyb3VwKDIpOgotICAgICAgICAgcmV0dXJu
ICIkJXM6OiVzJCIgJSAobS5ncm91cCgxKSwgIiAiICogbGVuKG0uZ3JvdXAoMykpKQotICAgICAg
IHJldHVybiAiJCVzJCIgJSBtLmdyb3VwKDEpCi0gICAga2V5d29yZHMgPSBba2V5d29yZAotICAg
ICAgICAgICAgICAgIGZvciBuYW1lIGluIGtleXdvcmRfc3RyLnNwbGl0KCIgIikKLSAgICAgICAg
ICAgICAgICBmb3Iga2V5d29yZCBpbiBzdm5fa2V5d29yZHMuZ2V0KG5hbWUsIFtdKV0KLSAgICBy
ZXR1cm4gcmUuc3ViKHIiXCQoJXMpOig6PykoW15cJF0rKVwkIiAlICd8Jy5qb2luKGtleXdvcmRz
KSwgcmVwbCwgY29udGVudCkKLQotICBkZWYgR2V0VW5rbm93bkZpbGVzKHNlbGYpOgotICAgIHN0
YXR1cyA9IFJ1blNoZWxsKFsic3ZuIiwgInN0YXR1cyIsICItLWlnbm9yZS1leHRlcm5hbHMiXSwg
c2lsZW50X29rPVRydWUpCi0gICAgdW5rbm93bl9maWxlcyA9IFtdCi0gICAgZm9yIGxpbmUgaW4g
c3RhdHVzLnNwbGl0KCJcbiIpOgotICAgICAgaWYgbGluZSBhbmQgbGluZVswXSA9PSAiPyI6Ci0g
ICAgICAgIHVua25vd25fZmlsZXMuYXBwZW5kKGxpbmUpCi0gICAgcmV0dXJuIHVua25vd25fZmls
ZXMKLQotICBkZWYgUmVhZEZpbGUoc2VsZiwgZmlsZW5hbWUpOgotICAgICIiIlJldHVybnMgdGhl
IGNvbnRlbnRzIG9mIGEgZmlsZS4iIiIKLSAgICBmaWxlID0gb3BlbihmaWxlbmFtZSwgJ3JiJykK
LSAgICByZXN1bHQgPSAiIgotICAgIHRyeToKLSAgICAgIHJlc3VsdCA9IGZpbGUucmVhZCgpCi0g
ICAgZmluYWxseToKLSAgICAgIGZpbGUuY2xvc2UoKQotICAgIHJldHVybiByZXN1bHQKLQotICBk
ZWYgR2V0U3RhdHVzKHNlbGYsIGZpbGVuYW1lKToKLSAgICAiIiJSZXR1cm5zIHRoZSBzdGF0dXMg
b2YgYSBmaWxlLiIiIgotICAgIGlmIG5vdCBzZWxmLm9wdGlvbnMucmV2aXNpb246Ci0gICAgICBz
dGF0dXMgPSBSdW5TaGVsbChbInN2biIsICJzdGF0dXMiLCAiLS1pZ25vcmUtZXh0ZXJuYWxzIiwg
ZmlsZW5hbWVdKQotICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgRXJyb3JFeGl0KCJzdm4g
c3RhdHVzIHJldHVybmVkIG5vIG91dHB1dCBmb3IgJXMiICUgZmlsZW5hbWUpCi0gICAgICBzdGF0
dXNfbGluZXMgPSBzdGF0dXMuc3BsaXRsaW5lcygpCi0gICAgICAjIElmIGZpbGUgaXMgaW4gYSBj
bCwgdGhlIG91dHB1dCB3aWxsIGJlZ2luIHdpdGgKLSAgICAgICMgIlxuLS0tIENoYW5nZWxpc3Qg
J2NsX25hbWUnOlxuIi4gIFNlZQotICAgICAgIyBodHRwOi8vc3ZuLmNvbGxhYi5uZXQvcmVwb3Mv
c3ZuL3RydW5rL25vdGVzL2NoYW5nZWxpc3QtZGVzaWduLnR4dAotICAgICAgaWYgKGxlbihzdGF0
dXNfbGluZXMpID09IDMgYW5kCi0gICAgICAgICAgbm90IHN0YXR1c19saW5lc1swXSBhbmQKLSAg
ICAgICAgICBzdGF0dXNfbGluZXNbMV0uc3RhcnRzd2l0aCgiLS0tIENoYW5nZWxpc3QiKSk6Ci0g
ICAgICAgIHN0YXR1cyA9IHN0YXR1c19saW5lc1syXQotICAgICAgZWxzZToKLSAgICAgICAgc3Rh
dHVzID0gc3RhdHVzX2xpbmVzWzBdCi0gICAgIyBJZiB3ZSBoYXZlIGEgcmV2aXNpb24gdG8gZGlm
ZiBhZ2FpbnN0IHdlIG5lZWQgdG8gcnVuICJzdm4gbGlzdCIKLSAgICAjIGZvciB0aGUgb2xkIGFu
ZCB0aGUgbmV3IHJldmlzaW9uIGFuZCBjb21wYXJlIHRoZSByZXN1bHRzIHRvIGdldAotICAgICMg
dGhlIGNvcnJlY3Qgc3RhdHVzIGZvciBhIGZpbGUuCi0gICAgZWxzZToKLSAgICAgIGRpcm5hbWUs
IHJlbGZpbGVuYW1lID0gb3MucGF0aC5zcGxpdChmaWxlbmFtZSkKLSAgICAgIGlmIGRpcm5hbWUg
bm90IGluIHNlbGYuc3ZubHNfY2FjaGU6Ci0gICAgICAgIGNtZCA9IFsic3ZuIiwgImxpc3QiLCAi
LXIiLCBzZWxmLnJldl9zdGFydCwgZGlybmFtZSBvciAiLiJdCi0gICAgICAgIG91dCwgcmV0dXJu
Y29kZSA9IFJ1blNoZWxsV2l0aFJldHVybkNvZGUoY21kKQotICAgICAgICBpZiByZXR1cm5jb2Rl
OgotICAgICAgICAgIEVycm9yRXhpdCgiRmFpbGVkIHRvIGdldCBzdGF0dXMgZm9yICVzLiIgJSBm
aWxlbmFtZSkKLSAgICAgICAgb2xkX2ZpbGVzID0gb3V0LnNwbGl0bGluZXMoKQotICAgICAgICBh
cmdzID0gWyJzdm4iLCAibGlzdCJdCi0gICAgICAgIGlmIHNlbGYucmV2X2VuZDoKLSAgICAgICAg
ICBhcmdzICs9IFsiLXIiLCBzZWxmLnJldl9lbmRdCi0gICAgICAgIGNtZCA9IGFyZ3MgKyBbZGly
bmFtZSBvciAiLiJdCi0gICAgICAgIG91dCwgcmV0dXJuY29kZSA9IFJ1blNoZWxsV2l0aFJldHVy
bkNvZGUoY21kKQotICAgICAgICBpZiByZXR1cm5jb2RlOgotICAgICAgICAgIEVycm9yRXhpdCgi
RmFpbGVkIHRvIHJ1biBjb21tYW5kICVzIiAlIGNtZCkKLSAgICAgICAgc2VsZi5zdm5sc19jYWNo
ZVtkaXJuYW1lXSA9IChvbGRfZmlsZXMsIG91dC5zcGxpdGxpbmVzKCkpCi0gICAgICBvbGRfZmls
ZXMsIG5ld19maWxlcyA9IHNlbGYuc3ZubHNfY2FjaGVbZGlybmFtZV0KLSAgICAgIGlmIHJlbGZp
bGVuYW1lIGluIG9sZF9maWxlcyBhbmQgcmVsZmlsZW5hbWUgbm90IGluIG5ld19maWxlczoKLSAg
ICAgICAgc3RhdHVzID0gIkQgICAiCi0gICAgICBlbGlmIHJlbGZpbGVuYW1lIGluIG9sZF9maWxl
cyBhbmQgcmVsZmlsZW5hbWUgaW4gbmV3X2ZpbGVzOgotICAgICAgICBzdGF0dXMgPSAiTSAgICIK
LSAgICAgIGVsc2U6Ci0gICAgICAgIHN0YXR1cyA9ICJBICAgIgotICAgIHJldHVybiBzdGF0dXMK
LQotICBkZWYgR2V0QmFzZUZpbGUoc2VsZiwgZmlsZW5hbWUpOgotICAgIHN0YXR1cyA9IHNlbGYu
R2V0U3RhdHVzKGZpbGVuYW1lKQotICAgIGJhc2VfY29udGVudCA9IE5vbmUKLSAgICBuZXdfY29u
dGVudCA9IE5vbmUKLQotICAgICMgSWYgYSBmaWxlIGlzIGNvcGllZCBpdHMgc3RhdHVzIHdpbGwg
YmUgIkEgICsiLCB3aGljaCBzaWduaWZpZXMKLSAgICAjICJhZGRpdGlvbi13aXRoLWhpc3Rvcnki
LiAgU2VlICJzdm4gc3QiIGZvciBtb3JlIGluZm9ybWF0aW9uLiAgV2UgbmVlZCB0bwotICAgICMg
dXBsb2FkIHRoZSBvcmlnaW5hbCBmaWxlIG9yIGVsc2UgZGlmZiBwYXJzaW5nIHdpbGwgZmFpbCBp
ZiB0aGUgZmlsZSB3YXMKLSAgICAjIGVkaXRlZC4KLSAgICBpZiBzdGF0dXNbMF0gPT0gIkEiIGFu
ZCBzdGF0dXNbM10gIT0gIisiOgotICAgICAgIyBXZSdsbCBuZWVkIHRvIHVwbG9hZCB0aGUgbmV3
IGNvbnRlbnQgaWYgd2UncmUgYWRkaW5nIGEgYmluYXJ5IGZpbGUKLSAgICAgICMgc2luY2UgZGlm
ZidzIG91dHB1dCB3b24ndCBjb250YWluIGl0LgotICAgICAgbWltZXR5cGUgPSBSdW5TaGVsbChb
InN2biIsICJwcm9wZ2V0IiwgInN2bjptaW1lLXR5cGUiLCBmaWxlbmFtZV0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpbGVudF9vaz1UcnVlKQotICAgICAgYmFzZV9jb250ZW50ID0gIiIK
LSAgICAgIGlzX2JpbmFyeSA9IG1pbWV0eXBlIGFuZCBub3QgbWltZXR5cGUuc3RhcnRzd2l0aCgi
dGV4dC8iKQotICAgICAgaWYgaXNfYmluYXJ5IGFuZCBzZWxmLklzSW1hZ2UoZmlsZW5hbWUpOgot
ICAgICAgICBuZXdfY29udGVudCA9IHNlbGYuUmVhZEZpbGUoZmlsZW5hbWUpCi0gICAgZWxpZiAo
c3RhdHVzWzBdIGluICgiTSIsICJEIiwgIlIiKSBvcgotICAgICAgICAgIChzdGF0dXNbMF0gPT0g
IkEiIGFuZCBzdGF0dXNbM10gPT0gIisiKSBvciAgIyBDb3BpZWQgZmlsZS4KLSAgICAgICAgICAo
c3RhdHVzWzBdID09ICIgIiBhbmQgc3RhdHVzWzFdID09ICJNIikpOiAgIyBQcm9wZXJ0eSBjaGFu
Z2UuCi0gICAgICBhcmdzID0gW10KLSAgICAgIGlmIHNlbGYub3B0aW9ucy5yZXZpc2lvbjoKLSAg
ICAgICAgdXJsID0gIiVzLyVzQCVzIiAlIChzZWxmLnN2bl9iYXNlLCBmaWxlbmFtZSwgc2VsZi5y
ZXZfc3RhcnQpCi0gICAgICBlbHNlOgotICAgICAgICAjIERvbid0IGNoYW5nZSBmaWxlbmFtZSwg
aXQncyBuZWVkZWQgbGF0ZXIuCi0gICAgICAgIHVybCA9IGZpbGVuYW1lCi0gICAgICAgIGFyZ3Mg
Kz0gWyItciIsICJCQVNFIl0KLSAgICAgIGNtZCA9IFsic3ZuIl0gKyBhcmdzICsgWyJwcm9wZ2V0
IiwgInN2bjptaW1lLXR5cGUiLCB1cmxdCi0gICAgICBtaW1ldHlwZSwgcmV0dXJuY29kZSA9IFJ1
blNoZWxsV2l0aFJldHVybkNvZGUoY21kKQotICAgICAgaWYgcmV0dXJuY29kZToKLSAgICAgICAg
IyBGaWxlIGRvZXMgbm90IGV4aXN0IGluIHRoZSByZXF1ZXN0ZWQgcmV2aXNpb24uCi0gICAgICAg
ICMgUmVzZXQgbWltZXR5cGUsIGl0IGNvbnRhaW5zIGFuIGVycm9yIG1lc3NhZ2UuCi0gICAgICAg
IG1pbWV0eXBlID0gIiIKLSAgICAgIGdldF9iYXNlID0gRmFsc2UKLSAgICAgIGlzX2JpbmFyeSA9
IG1pbWV0eXBlIGFuZCBub3QgbWltZXR5cGUuc3RhcnRzd2l0aCgidGV4dC8iKQotICAgICAgaWYg
c3RhdHVzWzBdID09ICIgIjoKLSAgICAgICAgIyBFbXB0eSBiYXNlIGNvbnRlbnQganVzdCB0byBm
b3JjZSBhbiB1cGxvYWQuCi0gICAgICAgIGJhc2VfY29udGVudCA9ICIiCi0gICAgICBlbGlmIGlz
X2JpbmFyeToKLSAgICAgICAgaWYgc2VsZi5Jc0ltYWdlKGZpbGVuYW1lKToKLSAgICAgICAgICBn
ZXRfYmFzZSA9IFRydWUKLSAgICAgICAgICBpZiBzdGF0dXNbMF0gPT0gIk0iOgotICAgICAgICAg
ICAgaWYgbm90IHNlbGYucmV2X2VuZDoKLSAgICAgICAgICAgICAgbmV3X2NvbnRlbnQgPSBzZWxm
LlJlYWRGaWxlKGZpbGVuYW1lKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgdXJs
ID0gIiVzLyVzQCVzIiAlIChzZWxmLnN2bl9iYXNlLCBmaWxlbmFtZSwgc2VsZi5yZXZfZW5kKQot
ICAgICAgICAgICAgICBuZXdfY29udGVudCA9IFJ1blNoZWxsKFsic3ZuIiwgImNhdCIsIHVybF0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdmVyc2FsX25ld2xpbmVz
PVRydWUsIHNpbGVudF9vaz1UcnVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgIGJhc2VfY29u
dGVudCA9ICIiCi0gICAgICBlbHNlOgotICAgICAgICBnZXRfYmFzZSA9IFRydWUKLQotICAgICAg
aWYgZ2V0X2Jhc2U6Ci0gICAgICAgIGlmIGlzX2JpbmFyeToKLSAgICAgICAgICB1bml2ZXJzYWxf
bmV3bGluZXMgPSBGYWxzZQotICAgICAgICBlbHNlOgotICAgICAgICAgIHVuaXZlcnNhbF9uZXds
aW5lcyA9IFRydWUKLSAgICAgICAgaWYgc2VsZi5yZXZfc3RhcnQ6Ci0gICAgICAgICAgIyAic3Zu
IGNhdCAtciBSRVYgZGVsZXRlX2ZpbGUudHh0IiBkb2Vzbid0IHdvcmsuIGNhdCByZXF1aXJlcwot
ICAgICAgICAgICMgdGhlIGZ1bGwgVVJMIHdpdGggIkBSRVYiIGFwcGVuZGVkIGluc3RlYWQgb2Yg
dXNpbmcgIi1yIiBvcHRpb24uCi0gICAgICAgICAgdXJsID0gIiVzLyVzQCVzIiAlIChzZWxmLnN2
bl9iYXNlLCBmaWxlbmFtZSwgc2VsZi5yZXZfc3RhcnQpCi0gICAgICAgICAgYmFzZV9jb250ZW50
ID0gUnVuU2hlbGwoWyJzdm4iLCAiY2F0IiwgdXJsXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXM9dW5pdmVyc2FsX25ld2xpbmVzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbGVudF9vaz1UcnVlKQotICAgICAgICBlbHNl
OgotICAgICAgICAgIGJhc2VfY29udGVudCA9IFJ1blNoZWxsKFsic3ZuIiwgImNhdCIsIGZpbGVu
YW1lXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGlu
ZXM9dW5pdmVyc2FsX25ld2xpbmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpbGVudF9vaz1UcnVlKQotICAgICAgICBpZiBub3QgaXNfYmluYXJ5OgotICAgICAgICAgIGFy
Z3MgPSBbXQotICAgICAgICAgIGlmIHNlbGYucmV2X3N0YXJ0OgotICAgICAgICAgICAgdXJsID0g
IiVzLyVzQCVzIiAlIChzZWxmLnN2bl9iYXNlLCBmaWxlbmFtZSwgc2VsZi5yZXZfc3RhcnQpCi0g
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHVybCA9IGZpbGVuYW1lCi0gICAgICAgICAgICBh
cmdzICs9IFsiLXIiLCAiQkFTRSJdCi0gICAgICAgICAgY21kID0gWyJzdm4iXSArIGFyZ3MgKyBb
InByb3BnZXQiLCAic3ZuOmtleXdvcmRzIiwgdXJsXQotICAgICAgICAgIGtleXdvcmRzLCByZXR1
cm5jb2RlID0gUnVuU2hlbGxXaXRoUmV0dXJuQ29kZShjbWQpCi0gICAgICAgICAgaWYga2V5d29y
ZHMgYW5kIG5vdCByZXR1cm5jb2RlOgotICAgICAgICAgICAgYmFzZV9jb250ZW50ID0gc2VsZi5f
Q29sbGFwc2VLZXl3b3JkcyhiYXNlX2NvbnRlbnQsIGtleXdvcmRzKQotICAgIGVsc2U6Ci0gICAg
ICBTdGF0dXNVcGRhdGUoInN2biBzdGF0dXMgcmV0dXJuZWQgdW5leHBlY3RlZCBvdXRwdXQ6ICVz
IiAlIHN0YXR1cykKLSAgICAgIHN5cy5leGl0KDEpCi0gICAgcmV0dXJuIGJhc2VfY29udGVudCwg
bmV3X2NvbnRlbnQsIGlzX2JpbmFyeSwgc3RhdHVzWzA6NV0KLQotCi1jbGFzcyBHaXRWQ1MoVmVy
c2lvbkNvbnRyb2xTeXN0ZW0pOgotICAiIiJJbXBsZW1lbnRhdGlvbiBvZiB0aGUgVmVyc2lvbkNv
bnRyb2xTeXN0ZW0gaW50ZXJmYWNlIGZvciBHaXQuIiIiCi0KLSAgZGVmIF9faW5pdF9fKHNlbGYs
IG9wdGlvbnMpOgotICAgIHN1cGVyKEdpdFZDUywgc2VsZikuX19pbml0X18ob3B0aW9ucykKLSAg
ICAjIE1hcCBvZiBmaWxlbmFtZSAtPiBoYXNoIG9mIGJhc2UgZmlsZS4KLSAgICBzZWxmLmJhc2Vf
aGFzaGVzID0ge30KLQotICBkZWYgR2VuZXJhdGVEaWZmKHNlbGYsIGV4dHJhX2FyZ3MpOgotICAg
ICMgVGhpcyBpcyBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gc3ZuJ3MgR2VuZXJhdGVEaWZmIGJlY2F1
c2Ugd2UgbXVzdCBjb252ZXJ0Ci0gICAgIyB0aGUgZGlmZiBvdXRwdXQgdG8gaW5jbHVkZSBhbiBz
dm4tc3R5bGUgIkluZGV4OiIgbGluZSBhcyB3ZWxsIGFzIHJlY29yZAotICAgICMgdGhlIGhhc2hl
cyBvZiB0aGUgYmFzZSBmaWxlcywgc28gd2UgY2FuIHVwbG9hZCB0aGVtIGFsb25nIHdpdGggb3Vy
IGRpZmYuCi0gICAgaWYgc2VsZi5vcHRpb25zLnJldmlzaW9uOgotICAgICAgZXh0cmFfYXJncyA9
IFtzZWxmLm9wdGlvbnMucmV2aXNpb25dICsgZXh0cmFfYXJncwotICAgIGdpdGRpZmYgPSBSdW5T
aGVsbChbImdpdCIsICJkaWZmIiwgIi0tZnVsbC1pbmRleCJdICsgZXh0cmFfYXJncykKLSAgICBz
dm5kaWZmID0gW10KLSAgICBmaWxlY291bnQgPSAwCi0gICAgZmlsZW5hbWUgPSBOb25lCi0gICAg
Zm9yIGxpbmUgaW4gZ2l0ZGlmZi5zcGxpdGxpbmVzKCk6Ci0gICAgICBtYXRjaCA9IHJlLm1hdGNo
KHIiZGlmZiAtLWdpdCBhLyguKikgYi8uKiQiLCBsaW5lKQotICAgICAgaWYgbWF0Y2g6Ci0gICAg
ICAgIGZpbGVjb3VudCArPSAxCi0gICAgICAgIGZpbGVuYW1lID0gbWF0Y2guZ3JvdXAoMSkKLSAg
ICAgICAgc3ZuZGlmZi5hcHBlbmQoIkluZGV4OiAlc1xuIiAlIGZpbGVuYW1lKQotICAgICAgZWxz
ZToKLSAgICAgICAgIyBUaGUgImluZGV4IiBsaW5lIGluIGEgZ2l0IGRpZmYgbG9va3MgbGlrZSB0
aGlzIChsb25nIGhhc2hlcyBlbGlkZWQpOgotICAgICAgICAjICAgaW5kZXggODJjMGQ0NC4uYjJj
ZWUzZiAxMDA3NTUKLSAgICAgICAgIyBXZSB3YW50IHRvIHNhdmUgdGhlIGxlZnQgaGFzaCwgYXMg
dGhhdCBpZGVudGlmaWVzIHRoZSBiYXNlIGZpbGUuCi0gICAgICAgIG1hdGNoID0gcmUubWF0Y2go
ciJpbmRleCAoXHcrKVwuXC4iLCBsaW5lKQotICAgICAgICBpZiBtYXRjaDoKLSAgICAgICAgICBz
ZWxmLmJhc2VfaGFzaGVzW2ZpbGVuYW1lXSA9IG1hdGNoLmdyb3VwKDEpCi0gICAgICBzdm5kaWZm
LmFwcGVuZChsaW5lICsgIlxuIikKLSAgICBpZiBub3QgZmlsZWNvdW50OgotICAgICAgRXJyb3JF
eGl0KCJObyB2YWxpZCBwYXRjaGVzIGZvdW5kIGluIG91dHB1dCBmcm9tIGdpdCBkaWZmIikKLSAg
ICByZXR1cm4gIiIuam9pbihzdm5kaWZmKQotCi0gIGRlZiBHZXRVbmtub3duRmlsZXMoc2VsZik6
Ci0gICAgc3RhdHVzID0gUnVuU2hlbGwoWyJnaXQiLCAibHMtZmlsZXMiLCAiLS1leGNsdWRlLXN0
YW5kYXJkIiwgIi0tb3RoZXJzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgc2lsZW50X29rPVRy
dWUpCi0gICAgcmV0dXJuIHN0YXR1cy5zcGxpdGxpbmVzKCkKLQotICBkZWYgR2V0QmFzZUZpbGUo
c2VsZiwgZmlsZW5hbWUpOgotICAgIGhhc2ggPSBzZWxmLmJhc2VfaGFzaGVzW2ZpbGVuYW1lXQot
ICAgIGJhc2VfY29udGVudCA9IE5vbmUKLSAgICBuZXdfY29udGVudCA9IE5vbmUKLSAgICBpc19i
aW5hcnkgPSBGYWxzZQotICAgIGlmIGhhc2ggPT0gIjAiICogNDA6ICAjIEFsbC16ZXJvIGhhc2gg
aW5kaWNhdGVzIG5vIGJhc2UgZmlsZS4KLSAgICAgIHN0YXR1cyA9ICJBIgotICAgICAgYmFzZV9j
b250ZW50ID0gIiIKLSAgICBlbHNlOgotICAgICAgc3RhdHVzID0gIk0iCi0gICAgICBiYXNlX2Nv
bnRlbnQsIHJldHVybmNvZGUgPSBSdW5TaGVsbFdpdGhSZXR1cm5Db2RlKFsiZ2l0IiwgInNob3ci
LCBoYXNoXSkKLSAgICAgIGlmIHJldHVybmNvZGU6Ci0gICAgICAgIEVycm9yRXhpdCgiR290IGVy
cm9yIHN0YXR1cyBmcm9tICdnaXQgc2hvdyAlcyciICUgaGFzaCkKLSAgICByZXR1cm4gKGJhc2Vf
Y29udGVudCwgbmV3X2NvbnRlbnQsIGlzX2JpbmFyeSwgc3RhdHVzKQotCi0KLWNsYXNzIE1lcmN1
cmlhbFZDUyhWZXJzaW9uQ29udHJvbFN5c3RlbSk6Ci0gICIiIkltcGxlbWVudGF0aW9uIG9mIHRo
ZSBWZXJzaW9uQ29udHJvbFN5c3RlbSBpbnRlcmZhY2UgZm9yIE1lcmN1cmlhbC4iIiIKLQotICBk
ZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcmVwb19kaXIpOgotICAgIHN1cGVyKE1lcmN1cmlh
bFZDUywgc2VsZikuX19pbml0X18ob3B0aW9ucykKLSAgICAjIEFic29sdXRlIHBhdGggdG8gcmVw
b3NpdG9yeSAod2UgY2FuIGJlIGluIGEgc3ViZGlyKQotICAgIHNlbGYucmVwb19kaXIgPSBvcy5w
YXRoLm5vcm1wYXRoKHJlcG9fZGlyKQotICAgICMgQ29tcHV0ZSB0aGUgc3ViZGlyCi0gICAgY3dk
ID0gb3MucGF0aC5ub3JtcGF0aChvcy5nZXRjd2QoKSkKLSAgICBhc3NlcnQgY3dkLnN0YXJ0c3dp
dGgoc2VsZi5yZXBvX2RpcikKLSAgICBzZWxmLnN1YmRpciA9IGN3ZFtsZW4oc2VsZi5yZXBvX2Rp
cik6XS5sc3RyaXAociJcLyIpCi0gICAgaWYgc2VsZi5vcHRpb25zLnJldmlzaW9uOgotICAgICAg
c2VsZi5iYXNlX3JldiA9IHNlbGYub3B0aW9ucy5yZXZpc2lvbgotICAgIGVsc2U6Ci0gICAgICBz
ZWxmLmJhc2VfcmV2ID0gUnVuU2hlbGwoWyJoZyIsICJwYXJlbnQiLCAiLXEiXSkuc3BsaXQoJzon
KVsxXS5zdHJpcCgpCi0KLSAgZGVmIF9HZXRSZWxQYXRoKHNlbGYsIGZpbGVuYW1lKToKLSAgICAi
IiJHZXQgcmVsYXRpdmUgcGF0aCBvZiBhIGZpbGUgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IGRp
cmVjdG9yeSwKLSAgICBnaXZlbiBpdHMgbG9naWNhbCBwYXRoIGluIHRoZSByZXBvLiIiIgotICAg
IGFzc2VydCBmaWxlbmFtZS5zdGFydHN3aXRoKHNlbGYuc3ViZGlyKSwgZmlsZW5hbWUKLSAgICBy
ZXR1cm4gZmlsZW5hbWVbbGVuKHNlbGYuc3ViZGlyKTpdLmxzdHJpcChyIlwvIikKLQotICBkZWYg
R2VuZXJhdGVEaWZmKHNlbGYsIGV4dHJhX2FyZ3MpOgotICAgICMgSWYgbm8gZmlsZSBzcGVjaWZp
ZWQsIHJlc3RyaWN0IHRvIHRoZSBjdXJyZW50IHN1YmRpcgotICAgIGV4dHJhX2FyZ3MgPSBleHRy
YV9hcmdzIG9yIFsiLiJdCi0gICAgY21kID0gWyJoZyIsICJkaWZmIiwgIi0tZ2l0IiwgIi1yIiwg
c2VsZi5iYXNlX3Jldl0gKyBleHRyYV9hcmdzCi0gICAgZGF0YSA9IFJ1blNoZWxsKGNtZCwgc2ls
ZW50X29rPVRydWUpCi0gICAgc3ZuZGlmZiA9IFtdCi0gICAgZmlsZWNvdW50ID0gMAotICAgIGZv
ciBsaW5lIGluIGRhdGEuc3BsaXRsaW5lcygpOgotICAgICAgbSA9IHJlLm1hdGNoKCJkaWZmIC0t
Z2l0IGEvKFxTKykgYi8oXFMrKSIsIGxpbmUpCi0gICAgICBpZiBtOgotICAgICAgICAjIE1vZGlm
eSBsaW5lIHRvIG1ha2UgaXQgbG9vayBsaWtlIGFzIGl0IGNvbWVzIGZyb20gc3ZuIGRpZmYuCi0g
ICAgICAgICMgV2l0aCB0aGlzIG1vZGlmaWNhdGlvbiBubyBjaGFuZ2VzIG9uIHRoZSBzZXJ2ZXIg
c2lkZSBhcmUgcmVxdWlyZWQKLSAgICAgICAgIyB0byBtYWtlIHVwbG9hZC5weSB3b3JrIHdpdGgg
TWVyY3VyaWFsIHJlcG9zLgotICAgICAgICAjIE5PVEU6IGZvciBwcm9wZXIgaGFuZGxpbmcgb2Yg
bW92ZWQvY29waWVkIGZpbGVzLCB3ZSBoYXZlIHRvIHVzZQotICAgICAgICAjIHRoZSBzZWNvbmQg
ZmlsZW5hbWUuCi0gICAgICAgIGZpbGVuYW1lID0gbS5ncm91cCgyKQotICAgICAgICBzdm5kaWZm
LmFwcGVuZCgiSW5kZXg6ICVzIiAlIGZpbGVuYW1lKQotICAgICAgICBzdm5kaWZmLmFwcGVuZCgi
PSIgKiA2NykKLSAgICAgICAgZmlsZWNvdW50ICs9IDEKLSAgICAgICAgbG9nZ2luZy5pbmZvKGxp
bmUpCi0gICAgICBlbHNlOgotICAgICAgICBzdm5kaWZmLmFwcGVuZChsaW5lKQotICAgIGlmIG5v
dCBmaWxlY291bnQ6Ci0gICAgICBFcnJvckV4aXQoIk5vIHZhbGlkIHBhdGNoZXMgZm91bmQgaW4g
b3V0cHV0IGZyb20gaGcgZGlmZiIpCi0gICAgcmV0dXJuICJcbiIuam9pbihzdm5kaWZmKSArICJc
biIKLQotICBkZWYgR2V0VW5rbm93bkZpbGVzKHNlbGYpOgotICAgICIiIlJldHVybiBhIGxpc3Qg
b2YgZmlsZXMgdW5rbm93biB0byB0aGUgVkNTLiIiIgotICAgIGFyZ3MgPSBbXQotICAgIHN0YXR1
cyA9IFJ1blNoZWxsKFsiaGciLCAic3RhdHVzIiwgIi0tcmV2Iiwgc2VsZi5iYXNlX3JldiwgIi11
IiwgIi4iXSwKLSAgICAgICAgc2lsZW50X29rPVRydWUpCi0gICAgdW5rbm93bl9maWxlcyA9IFtd
Ci0gICAgZm9yIGxpbmUgaW4gc3RhdHVzLnNwbGl0bGluZXMoKToKLSAgICAgIHN0LCBmbiA9IGxp
bmUuc3BsaXQoIiAiLCAxKQotICAgICAgaWYgc3QgPT0gIj8iOgotICAgICAgICB1bmtub3duX2Zp
bGVzLmFwcGVuZChmbikKLSAgICByZXR1cm4gdW5rbm93bl9maWxlcwotCi0gIGRlZiBHZXRCYXNl
RmlsZShzZWxmLCBmaWxlbmFtZSk6Ci0gICAgIyAiaGcgc3RhdHVzIiBhbmQgImhnIGNhdCIgYm90
aCB0YWtlIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBzdWJkaXIKLSAgICAjIHJhdGhl
ciB0aGFuIHRvIHRoZSByZXBvIHJvb3QsIGJ1dCAiaGcgZGlmZiIgaGFzIGdpdmVuIHVzIHRoZSBm
dWxsIHBhdGgKLSAgICAjIHRvIHRoZSByZXBvIHJvb3QuCi0gICAgYmFzZV9jb250ZW50ID0gIiIK
LSAgICBuZXdfY29udGVudCA9IE5vbmUKLSAgICBpc19iaW5hcnkgPSBGYWxzZQotICAgIG9sZHJl
bHBhdGggPSByZWxwYXRoID0gc2VsZi5fR2V0UmVsUGF0aChmaWxlbmFtZSkKLSAgICAjICJoZyBz
dGF0dXMgLUMiIHJldHVybnMgdHdvIGxpbmVzIGZvciBtb3ZlZC9jb3BpZWQgZmlsZXMsIG9uZSBv
dGhlcndpc2UKLSAgICBvdXQgPSBSdW5TaGVsbChbImhnIiwgInN0YXR1cyIsICItQyIsICItLXJl
diIsIHNlbGYuYmFzZV9yZXYsIHJlbHBhdGhdKQotICAgIG91dCA9IG91dC5zcGxpdGxpbmVzKCkK
LSAgICAjIEhBQ0s6IHN0cmlwIGVycm9yIG1lc3NhZ2UgYWJvdXQgbWlzc2luZyBmaWxlL2RpcmVj
dG9yeSBpZiBpdCBpc24ndCBpbgotICAgICMgdGhlIHdvcmtpbmcgY29weQotICAgIGlmIG91dFsw
XS5zdGFydHN3aXRoKCclczogJyAlIHJlbHBhdGgpOgotICAgICAgb3V0ID0gb3V0WzE6XQotICAg
IGlmIGxlbihvdXQpID4gMToKLSAgICAgICMgTW92ZWQvY29waWVkID0+IGNvbnNpZGVyZWQgYXMg
bW9kaWZpZWQsIHVzZSBvbGQgZmlsZW5hbWUgdG8KLSAgICAgICMgcmV0cmlldmUgYmFzZSBjb250
ZW50cwotICAgICAgb2xkcmVscGF0aCA9IG91dFsxXS5zdHJpcCgpCi0gICAgICBzdGF0dXMgPSAi
TSIKLSAgICBlbHNlOgotICAgICAgc3RhdHVzLCBfID0gb3V0WzBdLnNwbGl0KCcgJywgMSkKLSAg
ICBpZiBzdGF0dXMgIT0gIkEiOgotICAgICAgYmFzZV9jb250ZW50ID0gUnVuU2hlbGwoWyJoZyIs
ICJjYXQiLCAiLXIiLCBzZWxmLmJhc2VfcmV2LCBvbGRyZWxwYXRoXSwKLSAgICAgICAgc2lsZW50
X29rPVRydWUpCi0gICAgICBpc19iaW5hcnkgPSAiXDAiIGluIGJhc2VfY29udGVudCAgIyBNZXJj
dXJpYWwncyBoZXVyaXN0aWMKLSAgICBpZiBzdGF0dXMgIT0gIlIiOgotICAgICAgbmV3X2NvbnRl
bnQgPSBvcGVuKHJlbHBhdGgsICJyYiIpLnJlYWQoKQotICAgICAgaXNfYmluYXJ5ID0gaXNfYmlu
YXJ5IG9yICJcMCIgaW4gbmV3X2NvbnRlbnQKLSAgICBpZiBpc19iaW5hcnkgYW5kIGJhc2VfY29u
dGVudDoKLSAgICAgICMgRmV0Y2ggYWdhaW4gd2l0aG91dCBjb252ZXJ0aW5nIG5ld2xpbmVzCi0g
ICAgICBiYXNlX2NvbnRlbnQgPSBSdW5TaGVsbChbImhnIiwgImNhdCIsICItciIsIHNlbGYuYmFz
ZV9yZXYsIG9sZHJlbHBhdGhdLAotICAgICAgICBzaWxlbnRfb2s9VHJ1ZSwgdW5pdmVyc2FsX25l
d2xpbmVzPUZhbHNlKQotICAgIGlmIG5vdCBpc19iaW5hcnkgb3Igbm90IHNlbGYuSXNJbWFnZShy
ZWxwYXRoKToKLSAgICAgIG5ld19jb250ZW50ID0gTm9uZQotICAgIHJldHVybiBiYXNlX2NvbnRl
bnQsIG5ld19jb250ZW50LCBpc19iaW5hcnksIHN0YXR1cwotCi0KLSMgTk9URTogVGhlIFNwbGl0
UGF0Y2ggZnVuY3Rpb24gaXMgZHVwbGljYXRlZCBpbiBlbmdpbmUucHksIGtlZXAgdGhlbSBpbiBz
eW5jLgotZGVmIFNwbGl0UGF0Y2goZGF0YSk6Ci0gICIiIlNwbGl0cyBhIHBhdGNoIGludG8gc2Vw
YXJhdGUgcGllY2VzIGZvciBlYWNoIGZpbGUuCi0KLSAgQXJnczoKLSAgICBkYXRhOiBBIHN0cmlu
ZyBjb250YWluaW5nIHRoZSBvdXRwdXQgb2Ygc3ZuIGRpZmYuCi0KLSAgUmV0dXJuczoKLSAgICBB
IGxpc3Qgb2YgMi10dXBsZSAoZmlsZW5hbWUsIHRleHQpIHdoZXJlIHRleHQgaXMgdGhlIHN2biBk
aWZmIG91dHB1dAotICAgICAgcGVydGFpbmluZyB0byBmaWxlbmFtZS4KLSAgIiIiCi0gIHBhdGNo
ZXMgPSBbXQotICBmaWxlbmFtZSA9IE5vbmUKLSAgZGlmZiA9IFtdCi0gIGZvciBsaW5lIGluIGRh
dGEuc3BsaXRsaW5lcyhUcnVlKToKLSAgICBuZXdfZmlsZW5hbWUgPSBOb25lCi0gICAgaWYgbGlu
ZS5zdGFydHN3aXRoKCdJbmRleDonKToKLSAgICAgIHVudXNlZCwgbmV3X2ZpbGVuYW1lID0gbGlu
ZS5zcGxpdCgnOicsIDEpCi0gICAgICBuZXdfZmlsZW5hbWUgPSBuZXdfZmlsZW5hbWUuc3RyaXAo
KQotICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCdQcm9wZXJ0eSBjaGFuZ2VzIG9uOicpOgotICAg
ICAgdW51c2VkLCB0ZW1wX2ZpbGVuYW1lID0gbGluZS5zcGxpdCgnOicsIDEpCi0gICAgICAjIFdo
ZW4gYSBmaWxlIGlzIG1vZGlmaWVkLCBwYXRocyB1c2UgJy8nIGJldHdlZW4gZGlyZWN0b3JpZXMs
IGhvd2V2ZXIKLSAgICAgICMgd2hlbiBhIHByb3BlcnR5IGlzIG1vZGlmaWVkICdcJyBpcyB1c2Vk
IG9uIFdpbmRvd3MuICBNYWtlIHRoZW0gdGhlIHNhbWUKLSAgICAgICMgb3RoZXJ3aXNlIHRoZSBm
aWxlIHNob3dzIHVwIHR3aWNlLgotICAgICAgdGVtcF9maWxlbmFtZSA9IHRlbXBfZmlsZW5hbWUu
c3RyaXAoKS5yZXBsYWNlKCdcXCcsICcvJykKLSAgICAgIGlmIHRlbXBfZmlsZW5hbWUgIT0gZmls
ZW5hbWU6Ci0gICAgICAgICMgRmlsZSBoYXMgcHJvcGVydHkgY2hhbmdlcyBidXQgbm8gbW9kaWZp
Y2F0aW9ucywgY3JlYXRlIGEgbmV3IGRpZmYuCi0gICAgICAgIG5ld19maWxlbmFtZSA9IHRlbXBf
ZmlsZW5hbWUKLSAgICBpZiBuZXdfZmlsZW5hbWU6Ci0gICAgICBpZiBmaWxlbmFtZSBhbmQgZGlm
ZjoKLSAgICAgICAgcGF0Y2hlcy5hcHBlbmQoKGZpbGVuYW1lLCAnJy5qb2luKGRpZmYpKSkKLSAg
ICAgIGZpbGVuYW1lID0gbmV3X2ZpbGVuYW1lCi0gICAgICBkaWZmID0gW2xpbmVdCi0gICAgICBj
b250aW51ZQotICAgIGlmIGRpZmYgaXMgbm90IE5vbmU6Ci0gICAgICBkaWZmLmFwcGVuZChsaW5l
KQotICBpZiBmaWxlbmFtZSBhbmQgZGlmZjoKLSAgICBwYXRjaGVzLmFwcGVuZCgoZmlsZW5hbWUs
ICcnLmpvaW4oZGlmZikpKQotICByZXR1cm4gcGF0Y2hlcwotCi0KLWRlZiBVcGxvYWRTZXBhcmF0
ZVBhdGNoZXMoaXNzdWUsIHJwY19zZXJ2ZXIsIHBhdGNoc2V0LCBkYXRhLCBvcHRpb25zKToKLSAg
IiIiVXBsb2FkcyBhIHNlcGFyYXRlIHBhdGNoIGZvciBlYWNoIGZpbGUgaW4gdGhlIGRpZmYgb3V0
cHV0LgotCi0gIFJldHVybnMgYSBsaXN0IG9mIFtwYXRjaF9rZXksIGZpbGVuYW1lXSBmb3IgZWFj
aCBmaWxlLgotICAiIiIKLSAgcGF0Y2hlcyA9IFNwbGl0UGF0Y2goZGF0YSkKLSAgcnYgPSBbXQot
ICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKLSAgICBpZiBsZW4ocGF0Y2hbMV0pID4gTUFYX1VQTE9B
RF9TSVpFOgotICAgICAgcHJpbnQgKCJOb3QgdXBsb2FkaW5nIHRoZSBwYXRjaCBmb3IgIiArIHBh
dGNoWzBdICsKLSAgICAgICAgICAgICAiIGJlY2F1c2UgdGhlIGZpbGUgaXMgdG9vIGxhcmdlLiIp
Ci0gICAgICBjb250aW51ZQotICAgIGZvcm1fZmllbGRzID0gWygiZmlsZW5hbWUiLCBwYXRjaFsw
XSldCi0gICAgaWYgbm90IG9wdGlvbnMuZG93bmxvYWRfYmFzZToKLSAgICAgIGZvcm1fZmllbGRz
LmFwcGVuZCgoImNvbnRlbnRfdXBsb2FkIiwgIjEiKSkKLSAgICBmaWxlcyA9IFsoImRhdGEiLCAi
ZGF0YS5kaWZmIiwgcGF0Y2hbMV0pXQotICAgIGN0eXBlLCBib2R5ID0gRW5jb2RlTXVsdGlwYXJ0
Rm9ybURhdGEoZm9ybV9maWVsZHMsIGZpbGVzKQotICAgIHVybCA9ICIvJWQvdXBsb2FkX3BhdGNo
LyVkIiAlIChpbnQoaXNzdWUpLCBpbnQocGF0Y2hzZXQpKQotICAgIHByaW50ICJVcGxvYWRpbmcg
cGF0Y2ggZm9yICIgKyBwYXRjaFswXQotICAgIHJlc3BvbnNlX2JvZHkgPSBycGNfc2VydmVyLlNl
bmQodXJsLCBib2R5LCBjb250ZW50X3R5cGU9Y3R5cGUpCi0gICAgbGluZXMgPSByZXNwb25zZV9i
b2R5LnNwbGl0bGluZXMoKQotICAgIGlmIG5vdCBsaW5lcyBvciBsaW5lc1swXSAhPSAiT0siOgot
ICAgICAgU3RhdHVzVXBkYXRlKCIgIC0tPiAlcyIgJSByZXNwb25zZV9ib2R5KQotICAgICAgc3lz
LmV4aXQoMSkKLSAgICBydi5hcHBlbmQoW2xpbmVzWzFdLCBwYXRjaFswXV0pCi0gIHJldHVybiBy
dgotCi0KLWRlZiBHdWVzc1ZDUyhvcHRpb25zKToKLSAgIiIiSGVscGVyIHRvIGd1ZXNzIHRoZSB2
ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLgotCi0gIFRoaXMgZXhhbWluZXMgdGhlIGN1cnJlbnQgZGly
ZWN0b3J5LCBndWVzc2VzIHdoaWNoIFZlcnNpb25Db250cm9sU3lzdGVtCi0gIHdlJ3JlIHVzaW5n
LCBhbmQgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUgYXBwcm9wcmlhdGUgY2xhc3MuICBFeGl0
IHdpdGggYW4KLSAgZXJyb3IgaWYgd2UgY2FuJ3QgZmlndXJlIGl0IG91dC4KLQotICBSZXR1cm5z
OgotICAgIEEgVmVyc2lvbkNvbnRyb2xTeXN0ZW0gaW5zdGFuY2UuIEV4aXRzIGlmIHRoZSBWQ1Mg
Y2FuJ3QgYmUgZ3Vlc3NlZC4KLSAgIiIiCi0gICMgTWVyY3VyaWFsIGhhcyBhIGNvbW1hbmQgdG8g
Z2V0IHRoZSBiYXNlIGRpcmVjdG9yeSBvZiBhIHJlcG9zaXRvcnkKLSAgIyBUcnkgcnVubmluZyBp
dCwgYnV0IGRvbid0IGRpZSBpZiB3ZSBkb24ndCBoYXZlIGhnIGluc3RhbGxlZC4KLSAgIyBOT1RF
OiB3ZSB0cnkgTWVyY3VyaWFsIGZpcnN0IGFzIGl0IGNhbiBzaXQgb24gdG9wIG9mIGFuIFNWTiB3
b3JraW5nIGNvcHkuCi0gIHRyeToKLSAgICBvdXQsIHJldHVybmNvZGUgPSBSdW5TaGVsbFdpdGhS
ZXR1cm5Db2RlKFsiaGciLCAicm9vdCJdKQotICAgIGlmIHJldHVybmNvZGUgPT0gMDoKLSAgICAg
IHJldHVybiBNZXJjdXJpYWxWQ1Mob3B0aW9ucywgb3V0LnN0cmlwKCkpCi0gIGV4Y2VwdCBPU0Vy
cm9yLCAoZXJybm8sIG1lc3NhZ2UpOgotICAgIGlmIGVycm5vICE9IDI6ICAjIEVOT0VOVCAtLSB0
aGV5IGRvbid0IGhhdmUgaGcgaW5zdGFsbGVkLgotICAgICAgcmFpc2UKLQotICAjIFN1YnZlcnNp
b24gaGFzIGEgLnN2biBpbiBhbGwgd29ya2luZyBkaXJlY3Rvcmllcy4KLSAgaWYgb3MucGF0aC5p
c2RpcignLnN2bicpOgotICAgIGxvZ2dpbmcuaW5mbygiR3Vlc3NlZCBWQ1MgPSBTdWJ2ZXJzaW9u
IikKLSAgICByZXR1cm4gU3VidmVyc2lvblZDUyhvcHRpb25zKQotCi0gICMgR2l0IGhhcyBhIGNv
bW1hbmQgdG8gdGVzdCBpZiB5b3UncmUgaW4gYSBnaXQgdHJlZS4KLSAgIyBUcnkgcnVubmluZyBp
dCwgYnV0IGRvbid0IGRpZSBpZiB3ZSBkb24ndCBoYXZlIGdpdCBpbnN0YWxsZWQuCi0gIHRyeToK
LSAgICBvdXQsIHJldHVybmNvZGUgPSBSdW5TaGVsbFdpdGhSZXR1cm5Db2RlKFsiZ2l0IiwgInJl
di1wYXJzZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ii0taXMtaW5zaWRlLXdvcmstdHJlZSJdKQotICAgIGlmIHJldHVybmNvZGUgPT0gMDoKLSAgICAg
IHJldHVybiBHaXRWQ1Mob3B0aW9ucykKLSAgZXhjZXB0IE9TRXJyb3IsIChlcnJubywgbWVzc2Fn
ZSk6Ci0gICAgaWYgZXJybm8gIT0gMjogICMgRU5PRU5UIC0tIHRoZXkgZG9uJ3QgaGF2ZSBnaXQg
aW5zdGFsbGVkLgotICAgICAgcmFpc2UKLQotICBFcnJvckV4aXQoKCJDb3VsZCBub3QgZ3Vlc3Mg
dmVyc2lvbiBjb250cm9sIHN5c3RlbS4gIgotICAgICAgICAgICAgICJBcmUgeW91IGluIGEgd29y
a2luZyBjb3B5IGRpcmVjdG9yeT8iKSkKLQotCi1kZWYgUmVhbE1haW4oYXJndiwgZGF0YT1Ob25l
KToKLSAgIiIiVGhlIHJlYWwgbWFpbiBmdW5jdGlvbi4KLQotICBBcmdzOgotICAgIGFyZ3Y6IENv
bW1hbmQgbGluZSBhcmd1bWVudHMuCi0gICAgZGF0YTogRGlmZiBjb250ZW50cy4gSWYgTm9uZSAo
ZGVmYXVsdCkgdGhlIGRpZmYgaXMgZ2VuZXJhdGVkIGJ5Ci0gICAgICB0aGUgVmVyc2lvbkNvbnRy
b2xTeXN0ZW0gaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYnkgR3Vlc3NWQ1MoKS4KLQotICBSZXR1
cm5zOgotICAgIEEgMi10dXBsZSAoaXNzdWUgaWQsIHBhdGNoc2V0IGlkKS4KLSAgICBUaGUgcGF0
Y2hzZXQgaWQgaXMgTm9uZSBpZiB0aGUgYmFzZSBmaWxlcyBhcmUgbm90IHVwbG9hZGVkIGJ5IHRo
aXMKLSAgICBzY3JpcHQgKGFwcGxpZXMgb25seSB0byBTVk4gY2hlY2tvdXRzKS4KLSAgIiIiCi0g
IGxvZ2dpbmcuYmFzaWNDb25maWcoZm9ybWF0PSgiJShhc2N0aW1lKS4xOXMgJShsZXZlbG5hbWUp
cyAlKGZpbGVuYW1lKXM6IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiUobGluZW5v
KXMgJShtZXNzYWdlKXMgIikpCi0gIG9zLmVudmlyb25bJ0xDX0FMTCddID0gJ0MnCi0gIG9wdGlv
bnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmd2WzE6XSkKLSAgZ2xvYmFsIHZlcmJvc2l0
eQotICB2ZXJib3NpdHkgPSBvcHRpb25zLnZlcmJvc2UKLSAgaWYgdmVyYm9zaXR5ID49IDM6Ci0g
ICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQotICBlbGlmIHZl
cmJvc2l0eSA+PSAyOgotICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuc2V0TGV2ZWwobG9nZ2luZy5J
TkZPKQotICB2Y3MgPSBHdWVzc1ZDUyhvcHRpb25zKQotICBpZiBpc2luc3RhbmNlKHZjcywgU3Vi
dmVyc2lvblZDUyk6Ci0gICAgIyBiYXNlIGZpZWxkIGlzIG9ubHkgYWxsb3dlZCBmb3IgU3VidmVy
c2lvbi4KLSAgICAjIE5vdGU6IEZldGNoaW5nIGJhc2UgZmlsZXMgbWF5IGJlY29tZSBkZXByZWNh
dGVkIGluIGZ1dHVyZSByZWxlYXNlcy4KLSAgICBiYXNlID0gdmNzLkd1ZXNzQmFzZShvcHRpb25z
LmRvd25sb2FkX2Jhc2UpCi0gIGVsc2U6Ci0gICAgYmFzZSA9IE5vbmUKLSAgaWYgbm90IGJhc2Ug
YW5kIG9wdGlvbnMuZG93bmxvYWRfYmFzZToKLSAgICBvcHRpb25zLmRvd25sb2FkX2Jhc2UgPSBU
cnVlCi0gICAgbG9nZ2luZy5pbmZvKCJFbmFibGVkIHVwbG9hZCBvZiBiYXNlIGZpbGUiKQotICBp
ZiBub3Qgb3B0aW9ucy5hc3N1bWVfeWVzOgotICAgIHZjcy5DaGVja0ZvclVua25vd25GaWxlcygp
Ci0gIGlmIGRhdGEgaXMgTm9uZToKLSAgICBkYXRhID0gdmNzLkdlbmVyYXRlRGlmZihhcmdzKQot
ICBmaWxlcyA9IHZjcy5HZXRCYXNlRmlsZXMoZGF0YSkKLSAgaWYgdmVyYm9zaXR5ID49IDE6Ci0g
ICAgcHJpbnQgIlVwbG9hZCBzZXJ2ZXI6Iiwgb3B0aW9ucy5zZXJ2ZXIsICIoY2hhbmdlIHdpdGgg
LXMvLS1zZXJ2ZXIpIgotICBpZiBvcHRpb25zLmlzc3VlOgotICAgIHByb21wdCA9ICJNZXNzYWdl
IGRlc2NyaWJpbmcgdGhpcyBwYXRjaCBzZXQ6ICIKLSAgZWxzZToKLSAgICBwcm9tcHQgPSAiTmV3
IGlzc3VlIHN1YmplY3Q6ICIKLSAgbWVzc2FnZSA9IG9wdGlvbnMubWVzc2FnZSBvciByYXdfaW5w
dXQocHJvbXB0KS5zdHJpcCgpCi0gIGlmIG5vdCBtZXNzYWdlOgotICAgIEVycm9yRXhpdCgiQSBu
b24tZW1wdHkgbWVzc2FnZSBpcyByZXF1aXJlZCIpCi0gIHJwY19zZXJ2ZXIgPSBHZXRScGNTZXJ2
ZXIob3B0aW9ucykKLSAgZm9ybV9maWVsZHMgPSBbKCJzdWJqZWN0IiwgbWVzc2FnZSldCi0gIGlm
IGJhc2U6Ci0gICAgZm9ybV9maWVsZHMuYXBwZW5kKCgiYmFzZSIsIGJhc2UpKQotICBpZiBvcHRp
b25zLmlzc3VlOgotICAgIGZvcm1fZmllbGRzLmFwcGVuZCgoImlzc3VlIiwgc3RyKG9wdGlvbnMu
aXNzdWUpKSkKLSAgaWYgb3B0aW9ucy5lbWFpbDoKLSAgICBmb3JtX2ZpZWxkcy5hcHBlbmQoKCJ1
c2VyIiwgb3B0aW9ucy5lbWFpbCkpCi0gIGlmIG9wdGlvbnMucmV2aWV3ZXJzOgotICAgIGZvciBy
ZXZpZXdlciBpbiBvcHRpb25zLnJldmlld2Vycy5zcGxpdCgnLCcpOgotICAgICAgaWYgIkAiIGlu
IHJldmlld2VyIGFuZCBub3QgcmV2aWV3ZXIuc3BsaXQoIkAiKVsxXS5jb3VudCgiLiIpID09IDE6
Ci0gICAgICAgIEVycm9yRXhpdCgiSW52YWxpZCBlbWFpbCBhZGRyZXNzOiAlcyIgJSByZXZpZXdl
cikKLSAgICBmb3JtX2ZpZWxkcy5hcHBlbmQoKCJyZXZpZXdlcnMiLCBvcHRpb25zLnJldmlld2Vy
cykpCi0gIGlmIG9wdGlvbnMuY2M6Ci0gICAgZm9yIGNjIGluIG9wdGlvbnMuY2Muc3BsaXQoJywn
KToKLSAgICAgIGlmICJAIiBpbiBjYyBhbmQgbm90IGNjLnNwbGl0KCJAIilbMV0uY291bnQoIi4i
KSA9PSAxOgotICAgICAgICBFcnJvckV4aXQoIkludmFsaWQgZW1haWwgYWRkcmVzczogJXMiICUg
Y2MpCi0gICAgZm9ybV9maWVsZHMuYXBwZW5kKCgiY2MiLCBvcHRpb25zLmNjKSkKLSAgZGVzY3Jp
cHRpb24gPSBvcHRpb25zLmRlc2NyaXB0aW9uCi0gIGlmIG9wdGlvbnMuZGVzY3JpcHRpb25fZmls
ZToKLSAgICBpZiBvcHRpb25zLmRlc2NyaXB0aW9uOgotICAgICAgRXJyb3JFeGl0KCJDYW4ndCBz
cGVjaWZ5IGRlc2NyaXB0aW9uIGFuZCBkZXNjcmlwdGlvbl9maWxlIikKLSAgICBmaWxlID0gb3Bl
bihvcHRpb25zLmRlc2NyaXB0aW9uX2ZpbGUsICdyJykKLSAgICBkZXNjcmlwdGlvbiA9IGZpbGUu
cmVhZCgpCi0gICAgZmlsZS5jbG9zZSgpCi0gIGlmIGRlc2NyaXB0aW9uOgotICAgIGZvcm1fZmll
bGRzLmFwcGVuZCgoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pKQotICAjIFNlbmQgYSBoYXNo
IG9mIGFsbCB0aGUgYmFzZSBmaWxlIHNvIHRoZSBzZXJ2ZXIgY2FuIGRldGVybWluZSBpZiBhIGNv
cHkKLSAgIyBhbHJlYWR5IGV4aXN0cyBpbiBhbiBlYXJsaWVyIHBhdGNoc2V0LgotICBiYXNlX2hh
c2hlcyA9ICIiCi0gIGZvciBmaWxlLCBpbmZvIGluIGZpbGVzLml0ZXJpdGVtcygpOgotICAgIGlm
IG5vdCBpbmZvWzBdIGlzIE5vbmU6Ci0gICAgICBjaGVja3N1bSA9IG1kNS5uZXcoaW5mb1swXSku
aGV4ZGlnZXN0KCkKLSAgICAgIGlmIGJhc2VfaGFzaGVzOgotICAgICAgICBiYXNlX2hhc2hlcyAr
PSAifCIKLSAgICAgIGJhc2VfaGFzaGVzICs9IGNoZWNrc3VtICsgIjoiICsgZmlsZQotICBmb3Jt
X2ZpZWxkcy5hcHBlbmQoKCJiYXNlX2hhc2hlcyIsIGJhc2VfaGFzaGVzKSkKLSAgIyBJZiB3ZSdy
ZSB1cGxvYWRpbmcgYmFzZSBmaWxlcywgZG9uJ3Qgc2VuZCB0aGUgZW1haWwgYmVmb3JlIHRoZSB1
cGxvYWRzLCBzbwotICAjIHRoYXQgaXQgY29udGFpbnMgdGhlIGZpbGUgc3RhdHVzLgotICBpZiBv
cHRpb25zLnNlbmRfbWFpbCBhbmQgb3B0aW9ucy5kb3dubG9hZF9iYXNlOgotICAgIGZvcm1fZmll
bGRzLmFwcGVuZCgoInNlbmRfbWFpbCIsICIxIikpCi0gIGlmIG5vdCBvcHRpb25zLmRvd25sb2Fk
X2Jhc2U6Ci0gICAgZm9ybV9maWVsZHMuYXBwZW5kKCgiY29udGVudF91cGxvYWQiLCAiMSIpKQot
ICBpZiBsZW4oZGF0YSkgPiBNQVhfVVBMT0FEX1NJWkU6Ci0gICAgcHJpbnQgIlBhdGNoIGlzIGxh
cmdlLCBzbyB1cGxvYWRpbmcgZmlsZSBwYXRjaGVzIHNlcGFyYXRlbHkuIgotICAgIHVwbG9hZGVk
X2RpZmZfZmlsZSA9IFtdCi0gICAgZm9ybV9maWVsZHMuYXBwZW5kKCgic2VwYXJhdGVfcGF0Y2hl
cyIsICIxIikpCi0gIGVsc2U6Ci0gICAgdXBsb2FkZWRfZGlmZl9maWxlID0gWygiZGF0YSIsICJk
YXRhLmRpZmYiLCBkYXRhKV0KLSAgY3R5cGUsIGJvZHkgPSBFbmNvZGVNdWx0aXBhcnRGb3JtRGF0
YShmb3JtX2ZpZWxkcywgdXBsb2FkZWRfZGlmZl9maWxlKQotICByZXNwb25zZV9ib2R5ID0gcnBj
X3NlcnZlci5TZW5kKCIvdXBsb2FkIiwgYm9keSwgY29udGVudF90eXBlPWN0eXBlKQotICBwYXRj
aHNldCA9IE5vbmUKLSAgaWYgbm90IG9wdGlvbnMuZG93bmxvYWRfYmFzZSBvciBub3QgdXBsb2Fk
ZWRfZGlmZl9maWxlOgotICAgIGxpbmVzID0gcmVzcG9uc2VfYm9keS5zcGxpdGxpbmVzKCkKLSAg
ICBpZiBsZW4obGluZXMpID49IDI6Ci0gICAgICBtc2cgPSBsaW5lc1swXQotICAgICAgcGF0Y2hz
ZXQgPSBsaW5lc1sxXS5zdHJpcCgpCi0gICAgICBwYXRjaGVzID0gW3guc3BsaXQoIiAiLCAxKSBm
b3IgeCBpbiBsaW5lc1syOl1dCi0gICAgZWxzZToKLSAgICAgIG1zZyA9IHJlc3BvbnNlX2JvZHkK
LSAgZWxzZToKLSAgICBtc2cgPSByZXNwb25zZV9ib2R5Ci0gIFN0YXR1c1VwZGF0ZShtc2cpCi0g
IGlmIG5vdCByZXNwb25zZV9ib2R5LnN0YXJ0c3dpdGgoIklzc3VlIGNyZWF0ZWQuIikgYW5kIFwK
LSAgbm90IHJlc3BvbnNlX2JvZHkuc3RhcnRzd2l0aCgiSXNzdWUgdXBkYXRlZC4iKToKLSAgICBz
eXMuZXhpdCgwKQotICBpc3N1ZSA9IG1zZ1ttc2cucmZpbmQoIi8iKSsxOl0KLQotICBpZiBub3Qg
dXBsb2FkZWRfZGlmZl9maWxlOgotICAgIHJlc3VsdCA9IFVwbG9hZFNlcGFyYXRlUGF0Y2hlcyhp
c3N1ZSwgcnBjX3NlcnZlciwgcGF0Y2hzZXQsIGRhdGEsIG9wdGlvbnMpCi0gICAgaWYgbm90IG9w
dGlvbnMuZG93bmxvYWRfYmFzZToKLSAgICAgIHBhdGNoZXMgPSByZXN1bHQKLQotICBpZiBub3Qg
b3B0aW9ucy5kb3dubG9hZF9iYXNlOgotICAgIHZjcy5VcGxvYWRCYXNlRmlsZXMoaXNzdWUsIHJw
Y19zZXJ2ZXIsIHBhdGNoZXMsIHBhdGNoc2V0LCBvcHRpb25zLCBmaWxlcykKLSAgICBpZiBvcHRp
b25zLnNlbmRfbWFpbDoKLSAgICAgIHJwY19zZXJ2ZXIuU2VuZCgiLyIgKyBpc3N1ZSArICIvbWFp
bCIsIHBheWxvYWQ9IiIpCi0gIHJldHVybiBpc3N1ZSwgcGF0Y2hzZXQKLQotCi1kZWYgbWFpbigp
OgotICB0cnk6Ci0gICAgUmVhbE1haW4oc3lzLmFyZ3YpCi0gIGV4Y2VwdCBLZXlib2FyZEludGVy
cnVwdDoKLSAgICBwcmludAotICAgIFN0YXR1c1VwZGF0ZSgiSW50ZXJydXB0ZWQuIikKLSAgICBz
eXMuZXhpdCgxKQotCi0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gIG1haW4oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc2NyaXB0cy91cGxvYWRfZ3Rlc3Qu
cHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zY3JpcHRzL3VwbG9hZF9ndGVzdC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmUxOWFlODA5MTFjM2FkNjdlMTI3Mzc1MWM3
NDdjZDkxNTUyOGY5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zY3JpcHRzL3VwbG9hZF9ndGVzdC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwot
IyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLSIiInVwbG9hZF9ndGVzdC5weSB2MC4xLjAgLS0gdXBsb2FkcyBh
IEdvb2dsZSBUZXN0IHBhdGNoIGZvciByZXZpZXcuCi0KLVRoaXMgc2ltcGxlIHdyYXBwZXIgcGFz
c2VzIGFsbCBjb21tYW5kIGxpbmUgZmxhZ3MgYW5kCi0tLWNjPWdvb2dsZXRlc3RmcmFtZXdvcmtA
Z29vZ2xlZ3JvdXBzLmNvbSB0byB1cGxvYWQucHkuCi0KLVVTQUdFOiB1cGxvYWRfZ3Rlc3QucHkg
W29wdGlvbnMgZm9yIHVwbG9hZC5weV0KLSIiIgotCi1fX2F1dGhvcl9fID0gJ3dhbkBnb29nbGUu
Y29tIChaaGFueW9uZyBXYW4pJwotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQotQ0NfRkxBRyA9
ICctLWNjPScKLUdURVNUX0dST1VQID0gJ2dvb2dsZXRlc3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBz
LmNvbScKLQotCi1kZWYgbWFpbigpOgotICAjIEZpbmRzIHRoZSBwYXRoIHRvIHVwbG9hZC5weSwg
YXNzdW1pbmcgaXQgaXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5Ci0gICMgYXMgdGhpcyBmaWxlLgot
ICBteV9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKLSAg
dXBsb2FkX3B5X3BhdGggPSBvcy5wYXRoLmpvaW4obXlfZGlyLCAndXBsb2FkLnB5JykKLQotICAj
IEFkZHMgR29vZ2xlIFRlc3QgZGlzY3Vzc2lvbiBncm91cCB0byB0aGUgY2MgbGluZSBpZiBpdCdz
IG5vdCB0aGVyZQotICAjIGFscmVhZHkuCi0gIHVwbG9hZF9weV9hcmd2ID0gW3VwbG9hZF9weV9w
YXRoXQotICBmb3VuZF9jY19mbGFnID0gRmFsc2UKLSAgZm9yIGFyZyBpbiBzeXMuYXJndlsxOl06
Ci0gICAgaWYgYXJnLnN0YXJ0c3dpdGgoQ0NfRkxBRyk6Ci0gICAgICBmb3VuZF9jY19mbGFnID0g
VHJ1ZQotICAgICAgY2NfbGluZSA9IGFyZ1tsZW4oQ0NfRkxBRyk6XQotICAgICAgY2NfbGlzdCA9
IFthZGRyIGZvciBhZGRyIGluIGNjX2xpbmUuc3BsaXQoJywnKSBpZiBhZGRyXQotICAgICAgaWYg
R1RFU1RfR1JPVVAgbm90IGluIGNjX2xpc3Q6Ci0gICAgICAgIGNjX2xpc3QuYXBwZW5kKEdURVNU
X0dST1VQKQotICAgICAgdXBsb2FkX3B5X2FyZ3YuYXBwZW5kKENDX0ZMQUcgKyAnLCcuam9pbihj
Y19saXN0KSkKLSAgICBlbHNlOgotICAgICAgdXBsb2FkX3B5X2FyZ3YuYXBwZW5kKGFyZykKLQot
ICBpZiBub3QgZm91bmRfY2NfZmxhZzoKLSAgICB1cGxvYWRfcHlfYXJndi5hcHBlbmQoQ0NfRkxB
RyArIEdURVNUX0dST1VQKQotCi0gICMgSW52b2tlcyB1cGxvYWQucHkgd2l0aCB0aGUgbW9kaWZp
ZWQgY29tbWFuZCBsaW5lIGZsYWdzLgotICBvcy5leGVjdih1cGxvYWRfcHlfcGF0aCwgdXBsb2Fk
X3B5X2FyZ3YpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgbWFpbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QtYWxsLmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LWFsbC5jYwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMGE5Y2VlNTIyMzMzMjhiMWJhZmRjNGJjNDAyNjk5ZmExNDAzOGY3My4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRf
cGFydHkvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QtYWxsLmNjCisrKyAvZGV2L251bGwKQEAgLTEsNDgg
KzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8K
LS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
Ly8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8K
LS8vIEF1dGhvcjogbWhldWxlQGdvb2dsZS5jb20gKE1hcmt1cyBIZXVsZSkKLS8vCi0vLyBHb29n
bGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKLS8vCi0vLyBTb21ldGltZXMg
aXQncyBkZXNpcmFibGUgdG8gYnVpbGQgR29vZ2xlIFRlc3QgYnkgY29tcGlsaW5nIGEgc2luZ2xl
IGZpbGUuCi0vLyBUaGlzIGZpbGUgc2VydmVzIHRoaXMgcHVycG9zZS4KLQotLy8gVGhpcyBsaW5l
IGVuc3VyZXMgdGhhdCBndGVzdC5oIGNhbiBiZSBjb21waWxlZCBvbiBpdHMgb3duLCBldmVuCi0v
LyB3aGVuIGl0J3MgZnVzZWQuCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotLy8gVGhlIGZv
bGxvd2luZyBsaW5lcyBwdWxsIGluIHRoZSByZWFsIGd0ZXN0ICouY2MgZmlsZXMuCi0jaW5jbHVk
ZSAic3JjL2d0ZXN0LmNjIgotI2luY2x1ZGUgInNyYy9ndGVzdC1kZWF0aC10ZXN0LmNjIgotI2lu
Y2x1ZGUgInNyYy9ndGVzdC1maWxlcGF0aC5jYyIKLSNpbmNsdWRlICJzcmMvZ3Rlc3QtcG9ydC5j
YyIKLSNpbmNsdWRlICJzcmMvZ3Rlc3QtcHJpbnRlcnMuY2MiCi0jaW5jbHVkZSAic3JjL2d0ZXN0
LXRlc3QtcGFydC5jYyIKLSNpbmNsdWRlICJzcmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYyIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYmIxYmM5M2FmM2I2NjFlNzQ2YjFkZmFlZDNl
ODhlOWUwMTBlMzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKKysr
IC9kZXYvbnVsbApAQCAtMSwxMzM2ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUg
SW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9u
ZyBXYW4pLCB2bGFkbEBnb29nbGUuY29tIChWbGFkIExvc2V2KQotLy8KLS8vIFRoaXMgZmlsZSBp
bXBsZW1lbnRzIGRlYXRoIHRlc3RzLgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVz
dC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLSNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaCIKLQotI2lmIEdURVNUX0hBU19ERUFUSF9URVNU
Ci0KLSMgaWYgR1RFU1RfT1NfTUFDCi0jICBpbmNsdWRlIDxjcnRfZXh0ZXJucy5oPgotIyBlbmRp
ZiAgLy8gR1RFU1RfT1NfTUFDCi0KLSMgaW5jbHVkZSA8ZXJybm8uaD4KLSMgaW5jbHVkZSA8ZmNu
dGwuaD4KLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0KLSMgaWYgR1RFU1RfT1NfTElOVVgKLSMgIGlu
Y2x1ZGUgPHNpZ25hbC5oPgotIyBlbmRpZiAgLy8gR1RFU1RfT1NfTElOVVgKLQotIyBpbmNsdWRl
IDxzdGRhcmcuaD4KLQotIyBpZiBHVEVTVF9PU19XSU5ET1dTCi0jICBpbmNsdWRlIDx3aW5kb3dz
Lmg+Ci0jIGVsc2UKLSMgIGluY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jICBpbmNsdWRlIDxzeXMvd2Fp
dC5oPgotIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotCi0jIGlmIEdURVNUX09TX1FOWAot
IyAgaW5jbHVkZSA8c3Bhd24uaD4KLSMgZW5kaWYgIC8vIEdURVNUX09TX1FOWAotCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19ERUFUSF9URVNUCi0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdl
LmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgiCi0jaW5jbHVkZSAi
c3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIENv
bnN0YW50cy4KLQotLy8gVGhlIGRlZmF1bHQgZGVhdGggdGVzdCBzdHlsZS4KLXN0YXRpYyBjb25z
dCBjaGFyIGtEZWZhdWx0RGVhdGhUZXN0U3R5bGVbXSA9ICJmYXN0IjsKLQotR1RFU1RfREVGSU5F
X3N0cmluZ18oCi0gICAgZGVhdGhfdGVzdF9zdHlsZSwKLSAgICBpbnRlcm5hbDo6U3RyaW5nRnJv
bUdUZXN0RW52KCJkZWF0aF90ZXN0X3N0eWxlIiwga0RlZmF1bHREZWF0aFRlc3RTdHlsZSksCi0g
ICAgIkluZGljYXRlcyBob3cgdG8gcnVuIGEgZGVhdGggdGVzdCBpbiBhIGZvcmtlZCBjaGlsZCBw
cm9jZXNzOiAiCi0gICAgIlwidGhyZWFkc2FmZVwiIChjaGlsZCBwcm9jZXNzIHJlLWV4ZWN1dGVz
IHRoZSB0ZXN0IGJpbmFyeSAiCi0gICAgImZyb20gdGhlIGJlZ2lubmluZywgcnVubmluZyBvbmx5
IHRoZSBzcGVjaWZpYyBkZWF0aCB0ZXN0KSBvciAiCi0gICAgIlwiZmFzdFwiIChjaGlsZCBwcm9j
ZXNzIHJ1bnMgdGhlIGRlYXRoIHRlc3QgaW1tZWRpYXRlbHkgIgotICAgICJhZnRlciBmb3JraW5n
KS4iKTsKLQotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIGRlYXRoX3Rlc3RfdXNlX2ZvcmssCi0g
ICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoImRlYXRoX3Rlc3RfdXNlX2ZvcmsiLCBmYWxz
ZSksCi0gICAgIkluc3RydWN0cyB0byB1c2UgZm9yaygpL19leGl0KCkgaW5zdGVhZCBvZiBjbG9u
ZSgpIGluIGRlYXRoIHRlc3RzLiAiCi0gICAgIklnbm9yZWQgYW5kIGFsd2F5cyB1c2VzIGZvcmso
KSBvbiBQT1NJWCBzeXN0ZW1zIHdoZXJlIGNsb25lKCkgaXMgbm90ICIKLSAgICAiaW1wbGVtZW50
ZWQuIFVzZWZ1bCB3aGVuIHJ1bm5pbmcgdW5kZXIgdmFsZ3JpbmQgb3Igc2ltaWxhciB0b29scyBp
ZiAiCi0gICAgInRob3NlIGRvIG5vdCBzdXBwb3J0IGNsb25lKCkuIFZhbGdyaW5kIDMuMy4xIHdp
bGwganVzdCBmYWlsIGlmICIKLSAgICAiaXQgc2VlcyBhbiB1bnN1cHBvcnRlZCBjb21iaW5hdGlv
biBvZiBjbG9uZSgpIGZsYWdzLiAiCi0gICAgIkl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byB1c2Ug
dGhpcyBmbGFnIHcvbyB2YWxncmluZCB0aG91Z2ggaXQgd2lsbCAiCi0gICAgIndvcmsgaW4gOTkl
IG9mIHRoZSBjYXNlcy4gT25jZSB2YWxncmluZCBpcyBmaXhlZCwgdGhpcyBmbGFnIHdpbGwgIgot
ICAgICJtb3N0IGxpa2VseSBiZSByZW1vdmVkLiIpOwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewot
R1RFU1RfREVGSU5FX3N0cmluZ18oCi0gICAgaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QsICIiLAot
ICAgICJJbmRpY2F0ZXMgdGhlIGZpbGUsIGxpbmUgbnVtYmVyLCB0ZW1wb3JhbCBpbmRleCBvZiAi
Ci0gICAgInRoZSBzaW5nbGUgZGVhdGggdGVzdCB0byBydW4sIGFuZCBhIGZpbGUgZGVzY3JpcHRv
ciB0byAiCi0gICAgIndoaWNoIGEgc3VjY2VzcyBjb2RlIG1heSBiZSBzZW50LCBhbGwgc2VwYXJh
dGVkIGJ5ICIKLSAgICAidGhlICd8JyBjaGFyYWN0ZXJzLiAgVGhpcyBmbGFnIGlzIHNwZWNpZmll
ZCBpZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCAiCi0gICAgInByb2Nlc3MgaXMgYSBzdWItcHJv
Y2VzcyBsYXVuY2hlZCBmb3IgcnVubmluZyBhIHRocmVhZC1zYWZlICIKLSAgICAiZGVhdGggdGVz
dC4gIEZPUiBJTlRFUk5BTCBVU0UgT05MWS4iKTsKLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAot
Ci0jaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotbmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8g
VmFsaWQgb25seSBmb3IgZmFzdCBkZWF0aCB0ZXN0cy4gSW5kaWNhdGVzIHRoZSBjb2RlIGlzIHJ1
bm5pbmcgaW4gdGhlCi0vLyBjaGlsZCBwcm9jZXNzIG9mIGEgZmFzdCBzdHlsZSBkZWF0aCB0ZXN0
LgotIyBpZiAhR1RFU1RfT1NfV0lORE9XUwotc3RhdGljIGJvb2wgZ19pbl9mYXN0X2RlYXRoX3Rl
c3RfY2hpbGQgPSBmYWxzZTsKLSMgZW5kaWYKLQotLy8gUmV0dXJucyBhIEJvb2xlYW4gdmFsdWUg
aW5kaWNhdGluZyB3aGV0aGVyIHRoZSBjYWxsZXIgaXMgY3VycmVudGx5Ci0vLyBleGVjdXRpbmcg
aW4gdGhlIGNvbnRleHQgb2YgdGhlIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2Vzcy4gIFRvb2xzIHN1
Y2ggYXMKLS8vIFZhbGdyaW5kIGhlYXAgY2hlY2tlcnMgbWF5IG5lZWQgdGhpcyB0byBtb2RpZnkg
dGhlaXIgYmVoYXZpb3IgaW4gZGVhdGgKLS8vIHRlc3RzLiAgSU1QT1JUQU5UOiBUaGlzIGlzIGFu
IGludGVybmFsIHV0aWxpdHkuICBVc2luZyBpdCBtYXkgYnJlYWsgdGhlCi0vLyBpbXBsZW1lbnRh
dGlvbiBvZiBkZWF0aCB0ZXN0cy4gIFVzZXIgY29kZSBNVVNUIE5PVCB1c2UgaXQuCi1ib29sIElu
RGVhdGhUZXN0Q2hpbGQoKSB7Ci0jIGlmIEdURVNUX09TX1dJTkRPV1MKLQotICAvLyBPbiBXaW5k
b3dzLCBkZWF0aCB0ZXN0cyBhcmUgdGhyZWFkLXNhZmUgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUg
b2YgdGhlCi0gIC8vIGRlYXRoX3Rlc3Rfc3R5bGUgZmxhZy4KLSAgcmV0dXJuICFHVEVTVF9GTEFH
KGludGVybmFsX3J1bl9kZWF0aF90ZXN0KS5lbXB0eSgpOwotCi0jIGVsc2UKLQotICBpZiAoR1RF
U1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAidGhyZWFkc2FmZSIpCi0gICAgcmV0dXJuICFH
VEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KS5lbXB0eSgpOwotICBlbHNlCi0gICAg
cmV0dXJuIGdfaW5fZmFzdF9kZWF0aF90ZXN0X2NoaWxkOwotI2VuZGlmCi19Ci0KLX0gIC8vIG5h
bWVzcGFjZSBpbnRlcm5hbAotCi0vLyBFeGl0ZWRXaXRoQ29kZSBjb25zdHJ1Y3Rvci4KLUV4aXRl
ZFdpdGhDb2RlOjpFeGl0ZWRXaXRoQ29kZShpbnQgZXhpdF9jb2RlKSA6IGV4aXRfY29kZV8oZXhp
dF9jb2RlKSB7Ci19Ci0KLS8vIEV4aXRlZFdpdGhDb2RlIGZ1bmN0aW9uLWNhbGwgb3BlcmF0b3Iu
Ci1ib29sIEV4aXRlZFdpdGhDb2RlOjpvcGVyYXRvcigpKGludCBleGl0X3N0YXR1cykgY29uc3Qg
ewotIyBpZiBHVEVTVF9PU19XSU5ET1dTCi0KLSAgcmV0dXJuIGV4aXRfc3RhdHVzID09IGV4aXRf
Y29kZV87Ci0KLSMgZWxzZQotCi0gIHJldHVybiBXSUZFWElURUQoZXhpdF9zdGF0dXMpICYmIFdF
WElUU1RBVFVTKGV4aXRfc3RhdHVzKSA9PSBleGl0X2NvZGVfOwotCi0jIGVuZGlmICAvLyBHVEVT
VF9PU19XSU5ET1dTCi19Ci0KLSMgaWYgIUdURVNUX09TX1dJTkRPV1MKLS8vIEtpbGxlZEJ5U2ln
bmFsIGNvbnN0cnVjdG9yLgotS2lsbGVkQnlTaWduYWw6OktpbGxlZEJ5U2lnbmFsKGludCBzaWdu
dW0pIDogc2lnbnVtXyhzaWdudW0pIHsKLX0KLQotLy8gS2lsbGVkQnlTaWduYWwgZnVuY3Rpb24t
Y2FsbCBvcGVyYXRvci4KLWJvb2wgS2lsbGVkQnlTaWduYWw6Om9wZXJhdG9yKCkoaW50IGV4aXRf
c3RhdHVzKSBjb25zdCB7Ci0jICBpZiBkZWZpbmVkKEdURVNUX0tJTExFRF9CWV9TSUdOQUxfT1ZF
UlJJREVfKQotICB7Ci0gICAgYm9vbCByZXN1bHQ7Ci0gICAgaWYgKEdURVNUX0tJTExFRF9CWV9T
SUdOQUxfT1ZFUlJJREVfKHNpZ251bV8sIGV4aXRfc3RhdHVzLCAmcmVzdWx0KSkgewotICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gIH0KLSMgIGVuZGlmICAvLyBkZWZpbmVkKEdURVNUX0tJ
TExFRF9CWV9TSUdOQUxfT1ZFUlJJREVfKQotICByZXR1cm4gV0lGU0lHTkFMRUQoZXhpdF9zdGF0
dXMpICYmIFdURVJNU0lHKGV4aXRfc3RhdHVzKSA9PSBzaWdudW1fOwotfQotIyBlbmRpZiAgLy8g
IUdURVNUX09TX1dJTkRPV1MKLQotbmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8gVXRpbGl0aWVz
IG5lZWRlZCBmb3IgZGVhdGggdGVzdHMuCi0KLS8vIEdlbmVyYXRlcyBhIHRleHR1YWwgZGVzY3Jp
cHRpb24gb2YgYSBnaXZlbiBleGl0IGNvZGUsIGluIHRoZSBmb3JtYXQKLS8vIHNwZWNpZmllZCBi
eSB3YWl0KDIpLgotc3RhdGljIHN0ZDo6c3RyaW5nIEV4aXRTdW1tYXJ5KGludCBleGl0X2NvZGUp
IHsKLSAgTWVzc2FnZSBtOwotCi0jIGlmIEdURVNUX09TX1dJTkRPV1MKLQotICBtIDw8ICJFeGl0
ZWQgd2l0aCBleGl0IHN0YXR1cyAiIDw8IGV4aXRfY29kZTsKLQotIyBlbHNlCi0KLSAgaWYgKFdJ
RkVYSVRFRChleGl0X2NvZGUpKSB7Ci0gICAgbSA8PCAiRXhpdGVkIHdpdGggZXhpdCBzdGF0dXMg
IiA8PCBXRVhJVFNUQVRVUyhleGl0X2NvZGUpOwotICB9IGVsc2UgaWYgKFdJRlNJR05BTEVEKGV4
aXRfY29kZSkpIHsKLSAgICBtIDw8ICJUZXJtaW5hdGVkIGJ5IHNpZ25hbCAiIDw8IFdURVJNU0lH
KGV4aXRfY29kZSk7Ci0gIH0KLSMgIGlmZGVmIFdDT1JFRFVNUAotICBpZiAoV0NPUkVEVU1QKGV4
aXRfY29kZSkpIHsKLSAgICBtIDw8ICIgKGNvcmUgZHVtcGVkKSI7Ci0gIH0KLSMgIGVuZGlmCi0j
IGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLSAgcmV0dXJuIG0uR2V0U3RyaW5nKCk7Ci19
Ci0KLS8vIFJldHVybnMgdHJ1ZSBpZiBleGl0X3N0YXR1cyBkZXNjcmliZXMgYSBwcm9jZXNzIHRo
YXQgd2FzIHRlcm1pbmF0ZWQKLS8vIGJ5IGEgc2lnbmFsLCBvciBleGl0ZWQgbm9ybWFsbHkgd2l0
aCBhIG5vbnplcm8gZXhpdCBjb2RlLgotYm9vbCBFeGl0ZWRVbnN1Y2Nlc3NmdWxseShpbnQgZXhp
dF9zdGF0dXMpIHsKLSAgcmV0dXJuICFFeGl0ZWRXaXRoQ29kZSgwKShleGl0X3N0YXR1cyk7Ci19
Ci0KLSMgaWYgIUdURVNUX09TX1dJTkRPV1MKLS8vIEdlbmVyYXRlcyBhIHRleHR1YWwgZmFpbHVy
ZSBtZXNzYWdlIHdoZW4gYSBkZWF0aCB0ZXN0IGZpbmRzIG1vcmUgdGhhbgotLy8gb25lIHRocmVh
ZCBydW5uaW5nLCBvciBjYW5ub3QgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgdGhyZWFkcywgcHJp
b3IKLS8vIHRvIGV4ZWN1dGluZyB0aGUgZ2l2ZW4gc3RhdGVtZW50LiAgSXQgaXMgdGhlIHJlc3Bv
bnNpYmlsaXR5IG9mIHRoZQotLy8gY2FsbGVyIG5vdCB0byBwYXNzIGEgdGhyZWFkX2NvdW50IG9m
IDEuCi1zdGF0aWMgc3RkOjpzdHJpbmcgRGVhdGhUZXN0VGhyZWFkV2FybmluZyhzaXplX3QgdGhy
ZWFkX2NvdW50KSB7Ci0gIE1lc3NhZ2UgbXNnOwotICBtc2cgPDwgIkRlYXRoIHRlc3RzIHVzZSBm
b3JrKCksIHdoaWNoIGlzIHVuc2FmZSBwYXJ0aWN1bGFybHkiCi0gICAgICA8PCAiIGluIGEgdGhy
ZWFkZWQgY29udGV4dC4gRm9yIHRoaXMgdGVzdCwgIiA8PCBHVEVTVF9OQU1FXyA8PCAiICI7Ci0g
IGlmICh0aHJlYWRfY291bnQgPT0gMCkKLSAgICBtc2cgPDwgImNvdWxkbid0IGRldGVjdCB0aGUg
bnVtYmVyIG9mIHRocmVhZHMuIjsKLSAgZWxzZQotICAgIG1zZyA8PCAiZGV0ZWN0ZWQgIiA8PCB0
aHJlYWRfY291bnQgPDwgIiB0aHJlYWRzLiI7Ci0gIHJldHVybiBtc2cuR2V0U3RyaW5nKCk7Ci19
Ci0jIGVuZGlmICAvLyAhR1RFU1RfT1NfV0lORE9XUwotCi0vLyBGbGFnIGNoYXJhY3RlcnMgZm9y
IHJlcG9ydGluZyBhIGRlYXRoIHRlc3QgdGhhdCBkaWQgbm90IGRpZS4KLXN0YXRpYyBjb25zdCBj
aGFyIGtEZWF0aFRlc3RMaXZlZCA9ICdMJzsKLXN0YXRpYyBjb25zdCBjaGFyIGtEZWF0aFRlc3RS
ZXR1cm5lZCA9ICdSJzsKLXN0YXRpYyBjb25zdCBjaGFyIGtEZWF0aFRlc3RUaHJldyA9ICdUJzsK
LXN0YXRpYyBjb25zdCBjaGFyIGtEZWF0aFRlc3RJbnRlcm5hbEVycm9yID0gJ0knOwotCi0vLyBB
biBlbnVtZXJhdGlvbiBkZXNjcmliaW5nIGFsbCBvZiB0aGUgcG9zc2libGUgd2F5cyB0aGF0IGEg
ZGVhdGggdGVzdCBjYW4KLS8vIGNvbmNsdWRlLiAgRElFRCBtZWFucyB0aGF0IHRoZSBwcm9jZXNz
IGRpZWQgd2hpbGUgZXhlY3V0aW5nIHRoZSB0ZXN0Ci0vLyBjb2RlOyBMSVZFRCBtZWFucyB0aGF0
IHByb2Nlc3MgbGl2ZWQgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHRlc3QgY29kZTsKLS8vIFJFVFVS
TkVEIG1lYW5zIHRoYXQgdGhlIHRlc3Qgc3RhdGVtZW50IGF0dGVtcHRlZCB0byBleGVjdXRlIGEg
cmV0dXJuCi0vLyBzdGF0ZW1lbnQsIHdoaWNoIGlzIG5vdCBhbGxvd2VkOyBUSFJFVyBtZWFucyB0
aGF0IHRoZSB0ZXN0IHN0YXRlbWVudAotLy8gcmV0dXJuZWQgY29udHJvbCBieSB0aHJvd2luZyBh
biBleGNlcHRpb24uICBJTl9QUk9HUkVTUyBtZWFucyB0aGUgdGVzdAotLy8gaGFzIG5vdCB5ZXQg
Y29uY2x1ZGVkLgotLy8gVE9ETyh2bGFkbEBnb29nbGUuY29tKTogVW5pZnkgbmFtZXMgYW5kIHBv
c3NpYmx5IHZhbHVlcyBmb3IKLS8vIEFib3J0UmVhc29uLCBEZWF0aFRlc3RPdXRjb21lLCBhbmQg
ZmxhZyBjaGFyYWN0ZXJzIGFib3ZlLgotZW51bSBEZWF0aFRlc3RPdXRjb21lIHsgSU5fUFJPR1JF
U1MsIERJRUQsIExJVkVELCBSRVRVUk5FRCwgVEhSRVcgfTsKLQotLy8gUm91dGluZSBmb3IgYWJv
cnRpbmcgdGhlIHByb2dyYW0gd2hpY2ggaXMgc2FmZSB0byBjYWxsIGZyb20gYW4KLS8vIGV4ZWMt
c3R5bGUgZGVhdGggdGVzdCBjaGlsZCBwcm9jZXNzLCBpbiB3aGljaCBjYXNlIHRoZSBlcnJvcgot
Ly8gbWVzc2FnZSBpcyBwcm9wYWdhdGVkIGJhY2sgdG8gdGhlIHBhcmVudCBwcm9jZXNzLiAgT3Ro
ZXJ3aXNlLCB0aGUKLS8vIG1lc3NhZ2UgaXMgc2ltcGx5IHByaW50ZWQgdG8gc3RkZXJyLiAgSW4g
ZWl0aGVyIGNhc2UsIHRoZSBwcm9ncmFtCi0vLyB0aGVuIGV4aXRzIHdpdGggc3RhdHVzIDEuCi1z
dGF0aWMgdm9pZCBEZWF0aFRlc3RBYm9ydChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgewot
ICAvLyBPbiBhIFBPU0lYIHN5c3RlbSwgdGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGZyb20g
YSB0aHJlYWRzYWZlLXN0eWxlCi0gIC8vIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2Vzcywgd2hpY2gg
b3BlcmF0ZXMgb24gYSB2ZXJ5IHNtYWxsIHN0YWNrLiAgVXNlCi0gIC8vIHRoZSBoZWFwIGZvciBh
bnkgYWRkaXRpb25hbCBub24tbWludXNjdWxlIG1lbW9yeSByZXF1aXJlbWVudHMuCi0gIGNvbnN0
IEludGVybmFsUnVuRGVhdGhUZXN0RmxhZyogY29uc3QgZmxhZyA9Ci0gICAgICBHZXRVbml0VGVz
dEltcGwoKS0+aW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZygpOwotICBpZiAoZmxhZyAhPSBO
VUxMKSB7Ci0gICAgRklMRSogcGFyZW50ID0gcG9zaXg6OkZET3BlbihmbGFnLT53cml0ZV9mZCgp
LCAidyIpOwotICAgIGZwdXRjKGtEZWF0aFRlc3RJbnRlcm5hbEVycm9yLCBwYXJlbnQpOwotICAg
IGZwcmludGYocGFyZW50LCAiJXMiLCBtZXNzYWdlLmNfc3RyKCkpOwotICAgIGZmbHVzaChwYXJl
bnQpOwotICAgIF9leGl0KDEpOwotICB9IGVsc2UgewotICAgIGZwcmludGYoc3RkZXJyLCAiJXMi
LCBtZXNzYWdlLmNfc3RyKCkpOwotICAgIGZmbHVzaChzdGRlcnIpOwotICAgIHBvc2l4OjpBYm9y
dCgpOwotICB9Ci19Ci0KLS8vIEEgcmVwbGFjZW1lbnQgZm9yIENIRUNLIHRoYXQgY2FsbHMgRGVh
dGhUZXN0QWJvcnQgaWYgdGhlIGFzc2VydGlvbgotLy8gZmFpbHMuCi0jIGRlZmluZSBHVEVTVF9E
RUFUSF9URVNUX0NIRUNLXyhleHByZXNzaW9uKSBcCi0gIGRvIHsgXAotICAgIGlmICghOjp0ZXN0
aW5nOjppbnRlcm5hbDo6SXNUcnVlKGV4cHJlc3Npb24pKSB7IFwKLSAgICAgIERlYXRoVGVzdEFi
b3J0KCBcCi0gICAgICAgICAgOjpzdGQ6OnN0cmluZygiQ0hFQ0sgZmFpbGVkOiBGaWxlICIpICsg
X19GSUxFX18gKyAgIiwgbGluZSAiIFwKLSAgICAgICAgICArIDo6dGVzdGluZzo6aW50ZXJuYWw6
OlN0cmVhbWFibGVUb1N0cmluZyhfX0xJTkVfXykgKyAiOiAiIFwKLSAgICAgICAgICArICNleHBy
ZXNzaW9uKTsgXAotICAgIH0gXAotICB9IHdoaWxlICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdh
eXNGYWxzZSgpKQotCi0vLyBUaGlzIG1hY3JvIGlzIHNpbWlsYXIgdG8gR1RFU1RfREVBVEhfVEVT
VF9DSEVDS18sIGJ1dCBpdCBpcyBtZWFudCBmb3IKLS8vIGV2YWx1YXRpbmcgYW55IHN5c3RlbSBj
YWxsIHRoYXQgZnVsZmlsbHMgdHdvIGNvbmRpdGlvbnM6IGl0IG11c3QgcmV0dXJuCi0vLyAtMSBv
biBmYWlsdXJlLCBhbmQgc2V0IGVycm5vIHRvIEVJTlRSIHdoZW4gaXQgaXMgaW50ZXJydXB0ZWQg
YW5kCi0vLyBzaG91bGQgYmUgdHJpZWQgYWdhaW4uICBUaGUgbWFjcm8gZXhwYW5kcyB0byBhIGxv
b3AgdGhhdCByZXBlYXRlZGx5Ci0vLyBldmFsdWF0ZXMgdGhlIGV4cHJlc3Npb24gYXMgbG9uZyBh
cyBpdCBldmFsdWF0ZXMgdG8gLTEgYW5kIHNldHMKLS8vIGVycm5vIHRvIEVJTlRSLiAgSWYgdGhl
IGV4cHJlc3Npb24gZXZhbHVhdGVzIHRvIC0xIGJ1dCBlcnJubyBpcwotLy8gc29tZXRoaW5nIG90
aGVyIHRoYW4gRUlOVFIsIERlYXRoVGVzdEFib3J0IGlzIGNhbGxlZC4KLSMgZGVmaW5lIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfU1lTQ0FMTF8oZXhwcmVzc2lvbikgXAotICBkbyB7IFwKLSAgICBp
bnQgZ3Rlc3RfcmV0dmFsOyBcCi0gICAgZG8geyBcCi0gICAgICBndGVzdF9yZXR2YWwgPSAoZXhw
cmVzc2lvbik7IFwKLSAgICB9IHdoaWxlIChndGVzdF9yZXR2YWwgPT0gLTEgJiYgZXJybm8gPT0g
RUlOVFIpOyBcCi0gICAgaWYgKGd0ZXN0X3JldHZhbCA9PSAtMSkgeyBcCi0gICAgICBEZWF0aFRl
c3RBYm9ydCggXAotICAgICAgICAgIDo6c3RkOjpzdHJpbmcoIkNIRUNLIGZhaWxlZDogRmlsZSAi
KSArIF9fRklMRV9fICsgIiwgbGluZSAiIFwKLSAgICAgICAgICArIDo6dGVzdGluZzo6aW50ZXJu
YWw6OlN0cmVhbWFibGVUb1N0cmluZyhfX0xJTkVfXykgKyAiOiAiIFwKLSAgICAgICAgICArICNl
eHByZXNzaW9uICsgIiAhPSAtMSIpOyBcCi0gICAgfSBcCi0gIH0gd2hpbGUgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c0ZhbHNlKCkpCi0KLS8vIFJldHVybnMgdGhlIG1lc3NhZ2UgZGVzY3Jp
YmluZyB0aGUgbGFzdCBzeXN0ZW0gZXJyb3IgaW4gZXJybm8uCi1zdGQ6OnN0cmluZyBHZXRMYXN0
RXJybm9EZXNjcmlwdGlvbigpIHsKLSAgICByZXR1cm4gZXJybm8gPT0gMCA/ICIiIDogcG9zaXg6
OlN0ckVycm9yKGVycm5vKTsKLX0KLQotLy8gVGhpcyBpcyBjYWxsZWQgZnJvbSBhIGRlYXRoIHRl
c3QgcGFyZW50IHByb2Nlc3MgdG8gcmVhZCBhIGZhaWx1cmUKLS8vIG1lc3NhZ2UgZnJvbSB0aGUg
ZGVhdGggdGVzdCBjaGlsZCBwcm9jZXNzIGFuZCBsb2cgaXQgd2l0aCB0aGUgRkFUQUwKLS8vIHNl
dmVyaXR5LiBPbiBXaW5kb3dzLCB0aGUgbWVzc2FnZSBpcyByZWFkIGZyb20gYSBwaXBlIGhhbmRs
ZS4gT24gb3RoZXIKLS8vIHBsYXRmb3JtcywgaXQgaXMgcmVhZCBmcm9tIGEgZmlsZSBkZXNjcmlw
dG9yLgotc3RhdGljIHZvaWQgRmFpbEZyb21JbnRlcm5hbEVycm9yKGludCBmZCkgewotICBNZXNz
YWdlIGVycm9yOwotICBjaGFyIGJ1ZmZlclsyNTZdOwotICBpbnQgbnVtX3JlYWQ7Ci0KLSAgZG8g
ewotICAgIHdoaWxlICgobnVtX3JlYWQgPSBwb3NpeDo6UmVhZChmZCwgYnVmZmVyLCAyNTUpKSA+
IDApIHsKLSAgICAgIGJ1ZmZlcltudW1fcmVhZF0gPSAnXDAnOwotICAgICAgZXJyb3IgPDwgYnVm
ZmVyOwotICAgIH0KLSAgfSB3aGlsZSAobnVtX3JlYWQgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIp
OwotCi0gIGlmIChudW1fcmVhZCA9PSAwKSB7Ci0gICAgR1RFU1RfTE9HXyhGQVRBTCkgPDwgZXJy
b3IuR2V0U3RyaW5nKCk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uc3QgaW50IGxhc3RfZXJyb3IgPSBl
cnJubzsKLSAgICBHVEVTVF9MT0dfKEZBVEFMKSA8PCAiRXJyb3Igd2hpbGUgcmVhZGluZyBkZWF0
aCB0ZXN0IGludGVybmFsOiAiCi0gICAgICAgICAgICAgICAgICAgICAgPDwgR2V0TGFzdEVycm5v
RGVzY3JpcHRpb24oKSA8PCAiIFsiIDw8IGxhc3RfZXJyb3IgPDwgIl0iOwotICB9Ci19Ci0KLS8v
IERlYXRoIHRlc3QgY29uc3RydWN0b3IuICBJbmNyZW1lbnRzIHRoZSBydW5uaW5nIGRlYXRoIHRl
c3QgY291bnQKLS8vIGZvciB0aGUgY3VycmVudCB0ZXN0LgotRGVhdGhUZXN0OjpEZWF0aFRlc3Qo
KSB7Ci0gIFRlc3RJbmZvKiBjb25zdCBpbmZvID0gR2V0VW5pdFRlc3RJbXBsKCktPmN1cnJlbnRf
dGVzdF9pbmZvKCk7Ci0gIGlmIChpbmZvID09IE5VTEwpIHsKLSAgICBEZWF0aFRlc3RBYm9ydCgi
Q2Fubm90IHJ1biBhIGRlYXRoIHRlc3Qgb3V0c2lkZSBvZiBhIFRFU1Qgb3IgIgotICAgICAgICAg
ICAgICAgICAgICJURVNUX0YgY29uc3RydWN0Iik7Ci0gIH0KLX0KLQotLy8gQ3JlYXRlcyBhbmQg
cmV0dXJucyBhIGRlYXRoIHRlc3QgYnkgZGlzcGF0Y2hpbmcgdG8gdGhlIGN1cnJlbnQKLS8vIGRl
YXRoIHRlc3QgZmFjdG9yeS4KLWJvb2wgRGVhdGhUZXN0OjpDcmVhdGUoY29uc3QgY2hhciogc3Rh
dGVtZW50LCBjb25zdCBSRSogcmVnZXgsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIGZpbGUsIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSB7Ci0gIHJldHVybiBHZXRVbml0
VGVzdEltcGwoKS0+ZGVhdGhfdGVzdF9mYWN0b3J5KCktPkNyZWF0ZSgKLSAgICAgIHN0YXRlbWVu
dCwgcmVnZXgsIGZpbGUsIGxpbmUsIHRlc3QpOwotfQotCi1jb25zdCBjaGFyKiBEZWF0aFRlc3Q6
Okxhc3RNZXNzYWdlKCkgewotICByZXR1cm4gbGFzdF9kZWF0aF90ZXN0X21lc3NhZ2VfLmNfc3Ry
KCk7Ci19Ci0KLXZvaWQgRGVhdGhUZXN0OjpzZXRfbGFzdF9kZWF0aF90ZXN0X21lc3NhZ2UoY29u
c3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKLSAgbGFzdF9kZWF0aF90ZXN0X21lc3NhZ2VfID0g
bWVzc2FnZTsKLX0KLQotc3RkOjpzdHJpbmcgRGVhdGhUZXN0OjpsYXN0X2RlYXRoX3Rlc3RfbWVz
c2FnZV87Ci0KLS8vIFByb3ZpZGVzIGNyb3NzIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uIGZvciBz
b21lIGRlYXRoIGZ1bmN0aW9uYWxpdHkuCi1jbGFzcyBEZWF0aFRlc3RJbXBsIDogcHVibGljIERl
YXRoVGVzdCB7Ci0gcHJvdGVjdGVkOgotICBEZWF0aFRlc3RJbXBsKGNvbnN0IGNoYXIqIGFfc3Rh
dGVtZW50LCBjb25zdCBSRSogYV9yZWdleCkKLSAgICAgIDogc3RhdGVtZW50XyhhX3N0YXRlbWVu
dCksCi0gICAgICAgIHJlZ2V4XyhhX3JlZ2V4KSwKLSAgICAgICAgc3Bhd25lZF8oZmFsc2UpLAot
ICAgICAgICBzdGF0dXNfKC0xKSwKLSAgICAgICAgb3V0Y29tZV8oSU5fUFJPR1JFU1MpLAotICAg
ICAgICByZWFkX2ZkXygtMSksCi0gICAgICAgIHdyaXRlX2ZkXygtMSkge30KLQotICAvLyByZWFk
X2ZkXyBpcyBleHBlY3RlZCB0byBiZSBjbG9zZWQgYW5kIGNsZWFyZWQgYnkgYSBkZXJpdmVkIGNs
YXNzLgotICB+RGVhdGhUZXN0SW1wbCgpIHsgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18ocmVhZF9m
ZF8gPT0gLTEpOyB9Ci0KLSAgdm9pZCBBYm9ydChBYm9ydFJlYXNvbiByZWFzb24pOwotICB2aXJ0
dWFsIGJvb2wgUGFzc2VkKGJvb2wgc3RhdHVzX29rKTsKLQotICBjb25zdCBjaGFyKiBzdGF0ZW1l
bnQoKSBjb25zdCB7IHJldHVybiBzdGF0ZW1lbnRfOyB9Ci0gIGNvbnN0IFJFKiByZWdleCgpIGNv
bnN0IHsgcmV0dXJuIHJlZ2V4XzsgfQotICBib29sIHNwYXduZWQoKSBjb25zdCB7IHJldHVybiBz
cGF3bmVkXzsgfQotICB2b2lkIHNldF9zcGF3bmVkKGJvb2wgaXNfc3Bhd25lZCkgeyBzcGF3bmVk
XyA9IGlzX3NwYXduZWQ7IH0KLSAgaW50IHN0YXR1cygpIGNvbnN0IHsgcmV0dXJuIHN0YXR1c187
IH0KLSAgdm9pZCBzZXRfc3RhdHVzKGludCBhX3N0YXR1cykgeyBzdGF0dXNfID0gYV9zdGF0dXM7
IH0KLSAgRGVhdGhUZXN0T3V0Y29tZSBvdXRjb21lKCkgY29uc3QgeyByZXR1cm4gb3V0Y29tZV87
IH0KLSAgdm9pZCBzZXRfb3V0Y29tZShEZWF0aFRlc3RPdXRjb21lIGFuX291dGNvbWUpIHsgb3V0
Y29tZV8gPSBhbl9vdXRjb21lOyB9Ci0gIGludCByZWFkX2ZkKCkgY29uc3QgeyByZXR1cm4gcmVh
ZF9mZF87IH0KLSAgdm9pZCBzZXRfcmVhZF9mZChpbnQgZmQpIHsgcmVhZF9mZF8gPSBmZDsgfQot
ICBpbnQgd3JpdGVfZmQoKSBjb25zdCB7IHJldHVybiB3cml0ZV9mZF87IH0KLSAgdm9pZCBzZXRf
d3JpdGVfZmQoaW50IGZkKSB7IHdyaXRlX2ZkXyA9IGZkOyB9Ci0KLSAgLy8gQ2FsbGVkIGluIHRo
ZSBwYXJlbnQgcHJvY2VzcyBvbmx5LiBSZWFkcyB0aGUgcmVzdWx0IGNvZGUgb2YgdGhlIGRlYXRo
Ci0gIC8vIHRlc3QgY2hpbGQgcHJvY2VzcyB2aWEgYSBwaXBlLCBpbnRlcnByZXRzIGl0IHRvIHNl
dCB0aGUgb3V0Y29tZV8KLSAgLy8gbWVtYmVyLCBhbmQgY2xvc2VzIHJlYWRfZmRfLiAgT3V0cHV0
cyBkaWFnbm9zdGljcyBhbmQgdGVybWluYXRlcyBpbgotICAvLyBjYXNlIG9mIHVuZXhwZWN0ZWQg
Y29kZXMuCi0gIHZvaWQgUmVhZEFuZEludGVycHJldFN0YXR1c0J5dGUoKTsKLQotIHByaXZhdGU6
Ci0gIC8vIFRoZSB0ZXh0dWFsIGNvbnRlbnQgb2YgdGhlIGNvZGUgdGhpcyBvYmplY3QgaXMgdGVz
dGluZy4gIFRoaXMgY2xhc3MKLSAgLy8gZG9lc24ndCBvd24gdGhpcyBzdHJpbmcgYW5kIHNob3Vs
ZCBub3QgYXR0ZW1wdCB0byBkZWxldGUgaXQuCi0gIGNvbnN0IGNoYXIqIGNvbnN0IHN0YXRlbWVu
dF87Ci0gIC8vIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gd2hpY2ggdGVzdCBvdXRwdXQgbXVzdCBt
YXRjaC4gIERlYXRoVGVzdEltcGwKLSAgLy8gZG9lc24ndCBvd24gdGhpcyBvYmplY3QgYW5kIHNo
b3VsZCBub3QgYXR0ZW1wdCB0byBkZWxldGUgaXQuCi0gIGNvbnN0IFJFKiBjb25zdCByZWdleF87
Ci0gIC8vIFRydWUgaWYgdGhlIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2VzcyBoYXMgYmVlbiBzdWNj
ZXNzZnVsbHkgc3Bhd25lZC4KLSAgYm9vbCBzcGF3bmVkXzsKLSAgLy8gVGhlIGV4aXQgc3RhdHVz
IG9mIHRoZSBjaGlsZCBwcm9jZXNzLgotICBpbnQgc3RhdHVzXzsKLSAgLy8gSG93IHRoZSBkZWF0
aCB0ZXN0IGNvbmNsdWRlZC4KLSAgRGVhdGhUZXN0T3V0Y29tZSBvdXRjb21lXzsKLSAgLy8gRGVz
Y3JpcHRvciB0byB0aGUgcmVhZCBlbmQgb2YgdGhlIHBpcGUgdG8gdGhlIGNoaWxkIHByb2Nlc3Mu
ICBJdCBpcwotICAvLyBhbHdheXMgLTEgaW4gdGhlIGNoaWxkIHByb2Nlc3MuICBUaGUgY2hpbGQg
a2VlcHMgaXRzIHdyaXRlIGVuZCBvZiB0aGUKLSAgLy8gcGlwZSBpbiB3cml0ZV9mZF8uCi0gIGlu
dCByZWFkX2ZkXzsKLSAgLy8gRGVzY3JpcHRvciB0byB0aGUgY2hpbGQncyB3cml0ZSBlbmQgb2Yg
dGhlIHBpcGUgdG8gdGhlIHBhcmVudCBwcm9jZXNzLgotICAvLyBJdCBpcyBhbHdheXMgLTEgaW4g
dGhlIHBhcmVudCBwcm9jZXNzLiAgVGhlIHBhcmVudCBrZWVwcyBpdHMgZW5kIG9mIHRoZQotICAv
LyBwaXBlIGluIHJlYWRfZmRfLgotICBpbnQgd3JpdGVfZmRfOwotfTsKLQotLy8gQ2FsbGVkIGlu
IHRoZSBwYXJlbnQgcHJvY2VzcyBvbmx5LiBSZWFkcyB0aGUgcmVzdWx0IGNvZGUgb2YgdGhlIGRl
YXRoCi0vLyB0ZXN0IGNoaWxkIHByb2Nlc3MgdmlhIGEgcGlwZSwgaW50ZXJwcmV0cyBpdCB0byBz
ZXQgdGhlIG91dGNvbWVfCi0vLyBtZW1iZXIsIGFuZCBjbG9zZXMgcmVhZF9mZF8uICBPdXRwdXRz
IGRpYWdub3N0aWNzIGFuZCB0ZXJtaW5hdGVzIGluCi0vLyBjYXNlIG9mIHVuZXhwZWN0ZWQgY29k
ZXMuCi12b2lkIERlYXRoVGVzdEltcGw6OlJlYWRBbmRJbnRlcnByZXRTdGF0dXNCeXRlKCkgewot
ICBjaGFyIGZsYWc7Ci0gIGludCBieXRlc19yZWFkOwotCi0gIC8vIFRoZSByZWFkKCkgaGVyZSBi
bG9ja3MgdW50aWwgZGF0YSBpcyBhdmFpbGFibGUgKHNpZ25pZnlpbmcgdGhlCi0gIC8vIGZhaWx1
cmUgb2YgdGhlIGRlYXRoIHRlc3QpIG9yIHVudGlsIHRoZSBwaXBlIGlzIGNsb3NlZCAoc2lnbmlm
eWluZwotICAvLyBpdHMgc3VjY2VzcyksIHNvIGl0J3Mgb2theSB0byBjYWxsIHRoaXMgaW4gdGhl
IHBhcmVudCBiZWZvcmUKLSAgLy8gdGhlIGNoaWxkIHByb2Nlc3MgaGFzIGV4aXRlZC4KLSAgZG8g
ewotICAgIGJ5dGVzX3JlYWQgPSBwb3NpeDo6UmVhZChyZWFkX2ZkKCksICZmbGFnLCAxKTsKLSAg
fSB3aGlsZSAoYnl0ZXNfcmVhZCA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUik7Ci0KLSAgaWYgKGJ5
dGVzX3JlYWQgPT0gMCkgewotICAgIHNldF9vdXRjb21lKERJRUQpOwotICB9IGVsc2UgaWYgKGJ5
dGVzX3JlYWQgPT0gMSkgewotICAgIHN3aXRjaCAoZmxhZykgewotICAgICAgY2FzZSBrRGVhdGhU
ZXN0UmV0dXJuZWQ6Ci0gICAgICAgIHNldF9vdXRjb21lKFJFVFVSTkVEKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgICBjYXNlIGtEZWF0aFRlc3RUaHJldzoKLSAgICAgICAgc2V0X291dGNvbWUoVEhS
RVcpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2Uga0RlYXRoVGVzdExpdmVkOgotICAgICAg
ICBzZXRfb3V0Y29tZShMSVZFRCk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBrRGVhdGhU
ZXN0SW50ZXJuYWxFcnJvcjoKLSAgICAgICAgRmFpbEZyb21JbnRlcm5hbEVycm9yKHJlYWRfZmQo
KSk7ICAvLyBEb2VzIG5vdCByZXR1cm4uCi0gICAgICAgIGJyZWFrOwotICAgICAgZGVmYXVsdDoK
LSAgICAgICAgR1RFU1RfTE9HXyhGQVRBTCkgPDwgIkRlYXRoIHRlc3QgY2hpbGQgcHJvY2VzcyBy
ZXBvcnRlZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJ1bmV4cGVjdGVkIHN0YXR1
cyBieXRlICgiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXRpY19jYXN0PHVuc2ln
bmVkIGludD4oZmxhZykgPDwgIikiOwotICAgIH0KLSAgfSBlbHNlIHsKLSAgICBHVEVTVF9MT0df
KEZBVEFMKSA8PCAiUmVhZCBmcm9tIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2VzcyBmYWlsZWQ6ICIK
LSAgICAgICAgICAgICAgICAgICAgICA8PCBHZXRMYXN0RXJybm9EZXNjcmlwdGlvbigpOwotICB9
Ci0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfU1lTQ0FMTF8ocG9zaXg6OkNsb3NlKHJlYWRfZmQo
KSkpOwotICBzZXRfcmVhZF9mZCgtMSk7Ci19Ci0KLS8vIFNpZ25hbHMgdGhhdCB0aGUgZGVhdGgg
dGVzdCBjb2RlIHdoaWNoIHNob3VsZCBoYXZlIGV4aXRlZCwgZGlkbid0LgotLy8gU2hvdWxkIGJl
IGNhbGxlZCBvbmx5IGluIGEgZGVhdGggdGVzdCBjaGlsZCBwcm9jZXNzLgotLy8gV3JpdGVzIGEg
c3RhdHVzIGJ5dGUgdG8gdGhlIGNoaWxkJ3Mgc3RhdHVzIGZpbGUgZGVzY3JpcHRvciwgdGhlbgot
Ly8gY2FsbHMgX2V4aXQoMSkuCi12b2lkIERlYXRoVGVzdEltcGw6OkFib3J0KEFib3J0UmVhc29u
IHJlYXNvbikgewotICAvLyBUaGUgcGFyZW50IHByb2Nlc3MgY29uc2lkZXJzIHRoZSBkZWF0aCB0
ZXN0IHRvIGJlIGEgZmFpbHVyZSBpZgotICAvLyBpdCBmaW5kcyBhbnkgZGF0YSBpbiBvdXIgcGlw
ZS4gIFNvLCBoZXJlIHdlIHdyaXRlIGEgc2luZ2xlIGZsYWcgYnl0ZQotICAvLyB0byB0aGUgcGlw
ZSwgdGhlbiBleGl0LgotICBjb25zdCBjaGFyIHN0YXR1c19jaCA9Ci0gICAgICByZWFzb24gPT0g
VEVTVF9ESURfTk9UX0RJRSA/IGtEZWF0aFRlc3RMaXZlZCA6Ci0gICAgICByZWFzb24gPT0gVEVT
VF9USFJFV19FWENFUFRJT04gPyBrRGVhdGhUZXN0VGhyZXcgOiBrRGVhdGhUZXN0UmV0dXJuZWQ7
Ci0KLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS19TWVNDQUxMXyhwb3NpeDo6V3JpdGUod3JpdGVf
ZmQoKSwgJnN0YXR1c19jaCwgMSkpOwotICAvLyBXZSBhcmUgbGVha2luZyB0aGUgZGVzY3JpcHRv
ciBoZXJlIGJlY2F1c2Ugb24gc29tZSBwbGF0Zm9ybXMgKGkuZS4sCi0gIC8vIHdoZW4gYnVpbHQg
YXMgV2luZG93cyBETEwpLCBkZXN0cnVjdG9ycyBvZiBnbG9iYWwgb2JqZWN0cyB3aWxsIHN0aWxs
Ci0gIC8vIHJ1biBhZnRlciBjYWxsaW5nIF9leGl0KCkuIE9uIHN1Y2ggc3lzdGVtcywgd3JpdGVf
ZmRfIHdpbGwgYmUKLSAgLy8gaW5kaXJlY3RseSBjbG9zZWQgZnJvbSB0aGUgZGVzdHJ1Y3RvciBv
ZiBVbml0VGVzdEltcGwsIGNhdXNpbmcgZG91YmxlCi0gIC8vIGNsb3NlIGlmIGl0IGlzIGFsc28g
Y2xvc2VkIGhlcmUuIE9uIGRlYnVnIGNvbmZpZ3VyYXRpb25zLCBkb3VibGUgY2xvc2UKLSAgLy8g
bWF5IGFzc2VydC4gQXMgdGhlcmUgYXJlIG5vIGluLXByb2Nlc3MgYnVmZmVycyB0byBmbHVzaCBo
ZXJlLCB3ZSBhcmUKLSAgLy8gcmVseWluZyBvbiB0aGUgT1MgdG8gY2xvc2UgdGhlIGRlc2NyaXB0
b3IgYWZ0ZXIgdGhlIHByb2Nlc3MgdGVybWluYXRlcwotICAvLyB3aGVuIHRoZSBkZXN0cnVjdG9y
cyBhcmUgbm90IHJ1bi4KLSAgX2V4aXQoMSk7ICAvLyBFeGl0cyB3L28gYW55IG5vcm1hbCBleGl0
IGhvb2tzICh3ZSB3ZXJlIHN1cHBvc2VkIHRvIGNyYXNoKQotfQotCi0vLyBSZXR1cm5zIGFuIGlu
ZGVudGVkIGNvcHkgb2Ygc3RkZXJyIG91dHB1dCBmb3IgYSBkZWF0aCB0ZXN0LgotLy8gVGhpcyBt
YWtlcyBkaXN0aW5ndWlzaGluZyBkZWF0aCB0ZXN0IG91dHB1dCBsaW5lcyBmcm9tIHJlZ3VsYXIg
bG9nIGxpbmVzCi0vLyBtdWNoIGVhc2llci4KLXN0YXRpYyA6OnN0ZDo6c3RyaW5nIEZvcm1hdERl
YXRoVGVzdE91dHB1dChjb25zdCA6OnN0ZDo6c3RyaW5nJiBvdXRwdXQpIHsKLSAgOjpzdGQ6OnN0
cmluZyByZXQ7Ci0gIGZvciAoc2l6ZV90IGF0ID0gMDsgOyApIHsKLSAgICBjb25zdCBzaXplX3Qg
bGluZV9lbmQgPSBvdXRwdXQuZmluZCgnXG4nLCBhdCk7Ci0gICAgcmV0ICs9ICJbICBERUFUSCAg
IF0gIjsKLSAgICBpZiAobGluZV9lbmQgPT0gOjpzdGQ6OnN0cmluZzo6bnBvcykgewotICAgICAg
cmV0ICs9IG91dHB1dC5zdWJzdHIoYXQpOwotICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldCAr
PSBvdXRwdXQuc3Vic3RyKGF0LCBsaW5lX2VuZCArIDEgLSBhdCk7Ci0gICAgYXQgPSBsaW5lX2Vu
ZCArIDE7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLQotLy8gQXNzZXNzZXMgdGhlIHN1Y2Nlc3Mg
b3IgZmFpbHVyZSBvZiBhIGRlYXRoIHRlc3QsIHVzaW5nIGJvdGggcHJpdmF0ZQotLy8gbWVtYmVy
cyB3aGljaCBoYXZlIHByZXZpb3VzbHkgYmVlbiBzZXQsIGFuZCBvbmUgYXJndW1lbnQ6Ci0vLwot
Ly8gUHJpdmF0ZSBkYXRhIG1lbWJlcnM6Ci0vLyAgIG91dGNvbWU6ICBBbiBlbnVtZXJhdGlvbiBk
ZXNjcmliaW5nIGhvdyB0aGUgZGVhdGggdGVzdAotLy8gICAgICAgICAgICAgY29uY2x1ZGVkOiBE
SUVELCBMSVZFRCwgVEhSRVcsIG9yIFJFVFVSTkVELiAgVGhlIGRlYXRoIHRlc3QKLS8vICAgICAg
ICAgICAgIGZhaWxzIGluIHRoZSBsYXR0ZXIgdGhyZWUgY2FzZXMuCi0vLyAgIHN0YXR1czogICBU
aGUgZXhpdCBzdGF0dXMgb2YgdGhlIGNoaWxkIHByb2Nlc3MuIE9uICpuaXgsIGl0IGlzIGluIHRo
ZQotLy8gICAgICAgICAgICAgaW4gdGhlIGZvcm1hdCBzcGVjaWZpZWQgYnkgd2FpdCgyKS4gT24g
V2luZG93cywgdGhpcyBpcyB0aGUKLS8vICAgICAgICAgICAgIHZhbHVlIHN1cHBsaWVkIHRvIHRo
ZSBFeGl0UHJvY2VzcygpIEFQSSBvciBhIG51bWVyaWMgY29kZQotLy8gICAgICAgICAgICAgb2Yg
dGhlIGV4Y2VwdGlvbiB0aGF0IHRlcm1pbmF0ZWQgdGhlIHByb2dyYW0uCi0vLyAgIHJlZ2V4OiAg
ICBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBvYmplY3QgdG8gYmUgYXBwbGllZCB0bwotLy8gICAgICAg
ICAgICAgdGhlIHRlc3QncyBjYXB0dXJlZCBzdGFuZGFyZCBlcnJvciBvdXRwdXQ7IHRoZSBkZWF0
aCB0ZXN0Ci0vLyAgICAgICAgICAgICBmYWlscyBpZiBpdCBkb2VzIG5vdCBtYXRjaC4KLS8vCi0v
LyBBcmd1bWVudDoKLS8vICAgc3RhdHVzX29rOiB0cnVlIGlmIGV4aXRfc3RhdHVzIGlzIGFjY2Vw
dGFibGUgaW4gdGhlIGNvbnRleHQgb2YKLS8vICAgICAgICAgICAgICB0aGlzIHBhcnRpY3VsYXIg
ZGVhdGggdGVzdCwgd2hpY2ggZmFpbHMgaWYgaXQgaXMgZmFsc2UKLS8vCi0vLyBSZXR1cm5zIHRy
dWUgaWZmIGFsbCBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBhcmUgbWV0LiAgT3RoZXJ3aXNlLCB0
aGUKLS8vIGZpcnN0IGZhaWxpbmcgY29uZGl0aW9uLCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYWJvdmUs
IGlzIHRoZSBvbmUgdGhhdCBpcwotLy8gcmVwb3J0ZWQuIEFsc28gc2V0cyB0aGUgbGFzdCBkZWF0
aCB0ZXN0IG1lc3NhZ2Ugc3RyaW5nLgotYm9vbCBEZWF0aFRlc3RJbXBsOjpQYXNzZWQoYm9vbCBz
dGF0dXNfb2spIHsKLSAgaWYgKCFzcGF3bmVkKCkpCi0gICAgcmV0dXJuIGZhbHNlOwotCi0gIGNv
bnN0IHN0ZDo6c3RyaW5nIGVycm9yX21lc3NhZ2UgPSBHZXRDYXB0dXJlZFN0ZGVycigpOwotCi0g
IGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICBNZXNzYWdlIGJ1ZmZlcjsKLQotICBidWZmZXIgPDwg
IkRlYXRoIHRlc3Q6ICIgPDwgc3RhdGVtZW50KCkgPDwgIlxuIjsKLSAgc3dpdGNoIChvdXRjb21l
KCkpIHsKLSAgICBjYXNlIExJVkVEOgotICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiBmYWls
ZWQgdG8gZGllLlxuIgotICAgICAgICAgICAgIDw8ICIgRXJyb3IgbXNnOlxuIiA8PCBGb3JtYXRE
ZWF0aFRlc3RPdXRwdXQoZXJyb3JfbWVzc2FnZSk7Ci0gICAgICBicmVhazsKLSAgICBjYXNlIFRI
UkVXOgotICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiB0aHJldyBhbiBleGNlcHRpb24uXG4i
Ci0gICAgICAgICAgICAgPDwgIiBFcnJvciBtc2c6XG4iIDw8IEZvcm1hdERlYXRoVGVzdE91dHB1
dChlcnJvcl9tZXNzYWdlKTsKLSAgICAgIGJyZWFrOwotICAgIGNhc2UgUkVUVVJORUQ6Ci0gICAg
ICBidWZmZXIgPDwgIiAgICBSZXN1bHQ6IGlsbGVnYWwgcmV0dXJuIGluIHRlc3Qgc3RhdGVtZW50
LlxuIgotICAgICAgICAgICAgIDw8ICIgRXJyb3IgbXNnOlxuIiA8PCBGb3JtYXREZWF0aFRlc3RP
dXRwdXQoZXJyb3JfbWVzc2FnZSk7Ci0gICAgICBicmVhazsKLSAgICBjYXNlIERJRUQ6Ci0gICAg
ICBpZiAoc3RhdHVzX29rKSB7Ci0gICAgICAgIGNvbnN0IGJvb2wgbWF0Y2hlZCA9IFJFOjpQYXJ0
aWFsTWF0Y2goZXJyb3JfbWVzc2FnZS5jX3N0cigpLCAqcmVnZXgoKSk7Ci0gICAgICAgIGlmICht
YXRjaGVkKSB7Ci0gICAgICAgICAgc3VjY2VzcyA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiBkaWVkIGJ1dCBub3Qgd2l0aCBleHBlY3Rl
ZCBlcnJvci5cbiIKLSAgICAgICAgICAgICAgICAgPDwgIiAgRXhwZWN0ZWQ6ICIgPDwgcmVnZXgo
KS0+cGF0dGVybigpIDw8ICJcbiIKLSAgICAgICAgICAgICAgICAgPDwgIkFjdHVhbCBtc2c6XG4i
IDw8IEZvcm1hdERlYXRoVGVzdE91dHB1dChlcnJvcl9tZXNzYWdlKTsKLSAgICAgICAgfQotICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiBkaWVkIGJ1dCBub3Qg
d2l0aCBleHBlY3RlZCBleGl0IGNvZGU6XG4iCi0gICAgICAgICAgICAgICA8PCAiICAgICAgICAg
ICAgIiA8PCBFeGl0U3VtbWFyeShzdGF0dXMoKSkgPDwgIlxuIgotICAgICAgICAgICAgICAgPDwg
IkFjdHVhbCBtc2c6XG4iIDw8IEZvcm1hdERlYXRoVGVzdE91dHB1dChlcnJvcl9tZXNzYWdlKTsK
LSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgIGNhc2UgSU5fUFJPR1JFU1M6Ci0gICAgZGVmYXVs
dDoKLSAgICAgIEdURVNUX0xPR18oRkFUQUwpCi0gICAgICAgICAgPDwgIkRlYXRoVGVzdDo6UGFz
c2VkIHNvbWVob3cgY2FsbGVkIGJlZm9yZSBjb25jbHVzaW9uIG9mIHRlc3QiOwotICB9Ci0KLSAg
RGVhdGhUZXN0OjpzZXRfbGFzdF9kZWF0aF90ZXN0X21lc3NhZ2UoYnVmZmVyLkdldFN0cmluZygp
KTsKLSAgcmV0dXJuIHN1Y2Nlc3M7Ci19Ci0KLSMgaWYgR1RFU1RfT1NfV0lORE9XUwotLy8gV2lu
ZG93c0RlYXRoVGVzdCBpbXBsZW1lbnRzIGRlYXRoIHRlc3RzIG9uIFdpbmRvd3MuIER1ZSB0byB0
aGUKLS8vIHNwZWNpZmljcyBvZiBzdGFydGluZyBuZXcgcHJvY2Vzc2VzIG9uIFdpbmRvd3MsIGRl
YXRoIHRlc3RzIHRoZXJlIGFyZQotLy8gYWx3YXlzIHRocmVhZHNhZmUsIGFuZCBHb29nbGUgVGVz
dCBjb25zaWRlcnMgdGhlCi0vLyAtLWd0ZXN0X2RlYXRoX3Rlc3Rfc3R5bGU9ZmFzdCBzZXR0aW5n
IHRvIGJlIGVxdWl2YWxlbnQgdG8KLS8vIC0tZ3Rlc3RfZGVhdGhfdGVzdF9zdHlsZT10aHJlYWRz
YWZlIHRoZXJlLgotLy8KLS8vIEEgZmV3IGltcGxlbWVudGF0aW9uIG5vdGVzOiAgTGlrZSB0aGUg
TGludXggdmVyc2lvbiwgdGhlIFdpbmRvd3MKLS8vIGltcGxlbWVudGF0aW9uIHVzZXMgcGlwZXMg
Zm9yIGNoaWxkLXRvLXBhcmVudCBjb21tdW5pY2F0aW9uLiBCdXQgZHVlIHRvCi0vLyB0aGUgc3Bl
Y2lmaWNzIG9mIHBpcGVzIG9uIFdpbmRvd3MsIHNvbWUgZXh0cmEgc3RlcHMgYXJlIHJlcXVpcmVk
OgotLy8KLS8vIDEuIFRoZSBwYXJlbnQgY3JlYXRlcyBhIGNvbW11bmljYXRpb24gcGlwZSBhbmQg
c3RvcmVzIGhhbmRsZXMgdG8gYm90aAotLy8gICAgZW5kcyBvZiBpdC4KLS8vIDIuIFRoZSBwYXJl
bnQgc3RhcnRzIHRoZSBjaGlsZCBhbmQgcHJvdmlkZXMgaXQgd2l0aCB0aGUgaW5mb3JtYXRpb24K
LS8vICAgIG5lY2Vzc2FyeSB0byBhY3F1aXJlIHRoZSBoYW5kbGUgdG8gdGhlIHdyaXRlIGVuZCBv
ZiB0aGUgcGlwZS4KLS8vIDMuIFRoZSBjaGlsZCBhY3F1aXJlcyB0aGUgd3JpdGUgZW5kIG9mIHRo
ZSBwaXBlIGFuZCBzaWduYWxzIHRoZSBwYXJlbnQKLS8vICAgIHVzaW5nIGEgV2luZG93cyBldmVu
dC4KLS8vIDQuIE5vdyB0aGUgcGFyZW50IGNhbiByZWxlYXNlIHRoZSB3cml0ZSBlbmQgb2YgdGhl
IHBpcGUgb24gaXRzIHNpZGUuIElmCi0vLyAgICB0aGlzIGlzIGRvbmUgYmVmb3JlIHN0ZXAgMywg
dGhlIG9iamVjdCdzIHJlZmVyZW5jZSBjb3VudCBnb2VzIGRvd24gdG8KLS8vICAgIDAgYW5kIGl0
IGlzIGRlc3Ryb3llZCwgcHJldmVudGluZyB0aGUgY2hpbGQgZnJvbSBhY3F1aXJpbmcgaXQuIFRo
ZQotLy8gICAgcGFyZW50IG5vdyBoYXMgdG8gcmVsZWFzZSBpdCwgb3IgcmVhZCBvcGVyYXRpb25z
IG9uIHRoZSByZWFkIGVuZCBvZgotLy8gICAgdGhlIHBpcGUgd2lsbCBub3QgcmV0dXJuIHdoZW4g
dGhlIGNoaWxkIHRlcm1pbmF0ZXMuCi0vLyA1LiBUaGUgcGFyZW50IHJlYWRzIGNoaWxkJ3Mgb3V0
cHV0IHRocm91Z2ggdGhlIHBpcGUgKG91dGNvbWUgY29kZSBhbmQKLS8vICAgIGFueSBwb3NzaWJs
ZSBlcnJvciBtZXNzYWdlcykgZnJvbSB0aGUgcGlwZSwgYW5kIGl0cyBzdGRlcnIgYW5kIHRoZW4K
LS8vICAgIGRldGVybWluZXMgd2hldGhlciB0byBmYWlsIHRoZSB0ZXN0LgotLy8KLS8vIE5vdGU6
IHRvIGRpc3Rpbmd1aXNoIFdpbjMyIEFQSSBjYWxscyBmcm9tIHRoZSBsb2NhbCBtZXRob2QgYW5k
IGZ1bmN0aW9uCi0vLyBjYWxscywgdGhlIGZvcm1lciBhcmUgZXhwbGljaXRseSByZXNvbHZlZCBp
biB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4KLS8vCi1jbGFzcyBXaW5kb3dzRGVhdGhUZXN0IDogcHVi
bGljIERlYXRoVGVzdEltcGwgewotIHB1YmxpYzoKLSAgV2luZG93c0RlYXRoVGVzdChjb25zdCBj
aGFyKiBhX3N0YXRlbWVudCwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBSRSogYV9yZWdleCwK
LSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLAotICAgICAgICAgICAgICAgICAg
IGludCBsaW5lKQotICAgICAgOiBEZWF0aFRlc3RJbXBsKGFfc3RhdGVtZW50LCBhX3JlZ2V4KSwg
ZmlsZV8oZmlsZSksIGxpbmVfKGxpbmUpIHt9Ci0KLSAgLy8gQWxsIG9mIHRoZXNlIHZpcnR1YWwg
ZnVuY3Rpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSBEZWF0aFRlc3QuCi0gIHZpcnR1YWwgaW50IFdh
aXQoKTsKLSAgdmlydHVhbCBUZXN0Um9sZSBBc3N1bWVSb2xlKCk7Ci0KLSBwcml2YXRlOgotICAv
LyBUaGUgbmFtZSBvZiB0aGUgZmlsZSBpbiB3aGljaCB0aGUgZGVhdGggdGVzdCBpcyBsb2NhdGVk
LgotICBjb25zdCBjaGFyKiBjb25zdCBmaWxlXzsKLSAgLy8gVGhlIGxpbmUgbnVtYmVyIG9uIHdo
aWNoIHRoZSBkZWF0aCB0ZXN0IGlzIGxvY2F0ZWQuCi0gIGNvbnN0IGludCBsaW5lXzsKLSAgLy8g
SGFuZGxlIHRvIHRoZSB3cml0ZSBlbmQgb2YgdGhlIHBpcGUgdG8gdGhlIGNoaWxkIHByb2Nlc3Mu
Ci0gIEF1dG9IYW5kbGUgd3JpdGVfaGFuZGxlXzsKLSAgLy8gQ2hpbGQgcHJvY2VzcyBoYW5kbGUu
Ci0gIEF1dG9IYW5kbGUgY2hpbGRfaGFuZGxlXzsKLSAgLy8gRXZlbnQgdGhlIGNoaWxkIHByb2Nl
c3MgdXNlcyB0byBzaWduYWwgdGhlIHBhcmVudCB0aGF0IGl0IGhhcwotICAvLyBhY3F1aXJlZCB0
aGUgaGFuZGxlIHRvIHRoZSB3cml0ZSBlbmQgb2YgdGhlIHBpcGUuIEFmdGVyIHNlZWluZyB0aGlz
Ci0gIC8vIGV2ZW50IHRoZSBwYXJlbnQgY2FuIHJlbGVhc2UgaXRzIG93biBoYW5kbGVzIHRvIG1h
a2Ugc3VyZSBpdHMKLSAgLy8gUmVhZEZpbGUoKSBjYWxscyByZXR1cm4gd2hlbiB0aGUgY2hpbGQg
dGVybWluYXRlcy4KLSAgQXV0b0hhbmRsZSBldmVudF9oYW5kbGVfOwotfTsKLQotLy8gV2FpdHMg
Zm9yIHRoZSBjaGlsZCBpbiBhIGRlYXRoIHRlc3QgdG8gZXhpdCwgcmV0dXJuaW5nIGl0cyBleGl0
Ci0vLyBzdGF0dXMsIG9yIDAgaWYgbm8gY2hpbGQgcHJvY2VzcyBleGlzdHMuICBBcyBhIHNpZGUg
ZWZmZWN0LCBzZXRzIHRoZQotLy8gb3V0Y29tZSBkYXRhIG1lbWJlci4KLWludCBXaW5kb3dzRGVh
dGhUZXN0OjpXYWl0KCkgewotICBpZiAoIXNwYXduZWQoKSkKLSAgICByZXR1cm4gMDsKLQotICAv
LyBXYWl0IHVudGlsIHRoZSBjaGlsZCBlaXRoZXIgc2lnbmFscyB0aGF0IGl0IGhhcyBhY3F1aXJl
ZCB0aGUgd3JpdGUgZW5kCi0gIC8vIG9mIHRoZSBwaXBlIG9yIGl0IGRpZXMuCi0gIGNvbnN0IEhB
TkRMRSB3YWl0X2hhbmRsZXNbMl0gPSB7IGNoaWxkX2hhbmRsZV8uR2V0KCksIGV2ZW50X2hhbmRs
ZV8uR2V0KCkgfTsKLSAgc3dpdGNoICg6OldhaXRGb3JNdWx0aXBsZU9iamVjdHMoMiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdF9oYW5kbGVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwgIC8vIFdhaXRzIGZvciBhbnkgb2YgdGhlIGhh
bmRsZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElORklOSVRFKSkgewot
ICAgIGNhc2UgV0FJVF9PQkpFQ1RfMDoKLSAgICBjYXNlIFdBSVRfT0JKRUNUXzAgKyAxOgotICAg
ICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGZh
bHNlKTsgIC8vIFNob3VsZCBub3QgZ2V0IGhlcmUuCi0gIH0KLQotICAvLyBUaGUgY2hpbGQgaGFz
IGFjcXVpcmVkIHRoZSB3cml0ZSBlbmQgb2YgdGhlIHBpcGUgb3IgZXhpdGVkLgotICAvLyBXZSBy
ZWxlYXNlIHRoZSBoYW5kbGUgb24gb3VyIHNpZGUgYW5kIGNvbnRpbnVlLgotICB3cml0ZV9oYW5k
bGVfLlJlc2V0KCk7Ci0gIGV2ZW50X2hhbmRsZV8uUmVzZXQoKTsKLQotICBSZWFkQW5kSW50ZXJw
cmV0U3RhdHVzQnl0ZSgpOwotCi0gIC8vIFdhaXRzIGZvciB0aGUgY2hpbGQgcHJvY2VzcyB0byBl
eGl0IGlmIGl0IGhhdmVuJ3QgYWxyZWFkeS4gVGhpcwotICAvLyByZXR1cm5zIGltbWVkaWF0ZWx5
IGlmIHRoZSBjaGlsZCBoYXMgYWxyZWFkeSBleGl0ZWQsIHJlZ2FyZGxlc3Mgb2YKLSAgLy8gd2hl
dGhlciBwcmV2aW91cyBjYWxscyB0byBXYWl0Rm9yTXVsdGlwbGVPYmplY3RzIHN5bmNocm9uaXpl
ZCBvbiB0aGlzCi0gIC8vIGhhbmRsZSBvciBub3QuCi0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tf
KAotICAgICAgV0FJVF9PQkpFQ1RfMCA9PSA6OldhaXRGb3JTaW5nbGVPYmplY3QoY2hpbGRfaGFu
ZGxlXy5HZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElORklOSVRFKSk7Ci0gIERXT1JEIHN0YXR1c19jb2RlOwotICBHVEVTVF9ERUFUSF9URVNUX0NI
RUNLXygKLSAgICAgIDo6R2V0RXhpdENvZGVQcm9jZXNzKGNoaWxkX2hhbmRsZV8uR2V0KCksICZz
dGF0dXNfY29kZSkgIT0gRkFMU0UpOwotICBjaGlsZF9oYW5kbGVfLlJlc2V0KCk7Ci0gIHNldF9z
dGF0dXMoc3RhdGljX2Nhc3Q8aW50PihzdGF0dXNfY29kZSkpOwotICByZXR1cm4gc3RhdHVzKCk7
Ci19Ci0KLS8vIFRoZSBBc3N1bWVSb2xlIHByb2Nlc3MgZm9yIGEgV2luZG93cyBkZWF0aCB0ZXN0
LiAgSXQgY3JlYXRlcyBhIGNoaWxkCi0vLyBwcm9jZXNzIHdpdGggdGhlIHNhbWUgZXhlY3V0YWJs
ZSBhcyB0aGUgY3VycmVudCBwcm9jZXNzIHRvIHJ1biB0aGUKLS8vIGRlYXRoIHRlc3QuICBUaGUg
Y2hpbGQgcHJvY2VzcyBpcyBnaXZlbiB0aGUgLS1ndGVzdF9maWx0ZXIgYW5kCi0vLyAtLWd0ZXN0
X2ludGVybmFsX3J1bl9kZWF0aF90ZXN0IGZsYWdzIHN1Y2ggdGhhdCBpdCBrbm93cyB0byBydW4g
dGhlCi0vLyBjdXJyZW50IGRlYXRoIHRlc3Qgb25seS4KLURlYXRoVGVzdDo6VGVzdFJvbGUgV2lu
ZG93c0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKLSAgY29uc3QgVW5pdFRlc3RJbXBsKiBjb25z
dCBpbXBsID0gR2V0VW5pdFRlc3RJbXBsKCk7Ci0gIGNvbnN0IEludGVybmFsUnVuRGVhdGhUZXN0
RmxhZyogY29uc3QgZmxhZyA9Ci0gICAgICBpbXBsLT5pbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF9m
bGFnKCk7Ci0gIGNvbnN0IFRlc3RJbmZvKiBjb25zdCBpbmZvID0gaW1wbC0+Y3VycmVudF90ZXN0
X2luZm8oKTsKLSAgY29uc3QgaW50IGRlYXRoX3Rlc3RfaW5kZXggPSBpbmZvLT5yZXN1bHQoKS0+
ZGVhdGhfdGVzdF9jb3VudCgpOwotCi0gIGlmIChmbGFnICE9IE5VTEwpIHsKLSAgICAvLyBQYXJz
ZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygpIGhhcyBwZXJmb3JtZWQgYWxsIHRoZSBuZWNlc3Nh
cnkKLSAgICAvLyBwcm9jZXNzaW5nLgotICAgIHNldF93cml0ZV9mZChmbGFnLT53cml0ZV9mZCgp
KTsKLSAgICByZXR1cm4gRVhFQ1VURV9URVNUOwotICB9Ci0KLSAgLy8gV2luZG93c0RlYXRoVGVz
dCB1c2VzIGFuIGFub255bW91cyBwaXBlIHRvIGNvbW11bmljYXRlIHJlc3VsdHMgb2YKLSAgLy8g
YSBkZWF0aCB0ZXN0LgotICBTRUNVUklUWV9BVFRSSUJVVEVTIGhhbmRsZXNfYXJlX2luaGVyaXRh
YmxlID0gewotICAgIHNpemVvZihTRUNVUklUWV9BVFRSSUJVVEVTKSwgTlVMTCwgVFJVRSB9Owot
ICBIQU5ETEUgcmVhZF9oYW5kbGUsIHdyaXRlX2hhbmRsZTsKLSAgR1RFU1RfREVBVEhfVEVTVF9D
SEVDS18oCi0gICAgICA6OkNyZWF0ZVBpcGUoJnJlYWRfaGFuZGxlLCAmd3JpdGVfaGFuZGxlLCAm
aGFuZGxlc19hcmVfaW5oZXJpdGFibGUsCi0gICAgICAgICAgICAgICAgICAgMCkgIC8vIERlZmF1
bHQgYnVmZmVyIHNpemUuCi0gICAgICAhPSBGQUxTRSk7Ci0gIHNldF9yZWFkX2ZkKDo6X29wZW5f
b3NmaGFuZGxlKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHJlYWRfaGFuZGxlKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT19SRE9OTFkpKTsKLSAgd3JpdGVfaGFuZGxlXy5S
ZXNldCh3cml0ZV9oYW5kbGUpOwotICBldmVudF9oYW5kbGVfLlJlc2V0KDo6Q3JlYXRlRXZlbnQo
Ci0gICAgICAmaGFuZGxlc19hcmVfaW5oZXJpdGFibGUsCi0gICAgICBUUlVFLCAgICAvLyBUaGUg
ZXZlbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc2V0IHRvIG5vbi1zaWduYWxlZCBzdGF0ZS4KLSAg
ICAgIEZBTFNFLCAgIC8vIFRoZSBpbml0aWFsIHN0YXRlIGlzIG5vbi1zaWduYWxsZWQuCi0gICAg
ICBOVUxMKSk7ICAvLyBUaGUgZXZlbiBpcyB1bm5hbWVkLgotICBHVEVTVF9ERUFUSF9URVNUX0NI
RUNLXyhldmVudF9oYW5kbGVfLkdldCgpICE9IE5VTEwpOwotICBjb25zdCBzdGQ6OnN0cmluZyBm
aWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklY
XyArIGtGaWx0ZXJGbGFnICsgIj0iICsKLSAgICAgIGluZm8tPnRlc3RfY2FzZV9uYW1lKCkgKyAi
LiIgKyBpbmZvLT5uYW1lKCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGludGVybmFsX2ZsYWcgPQot
ICAgICAgc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKyBrSW50ZXJuYWxS
dW5EZWF0aFRlc3RGbGFnICsKLSAgICAgICI9IiArIGZpbGVfICsgInwiICsgU3RyZWFtYWJsZVRv
U3RyaW5nKGxpbmVfKSArICJ8IiArCi0gICAgICBTdHJlYW1hYmxlVG9TdHJpbmcoZGVhdGhfdGVz
dF9pbmRleCkgKyAifCIgKwotICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGludD4oOjpHZXRDdXJyZW50UHJvY2Vzc0lkKCkpKSArCi0gICAgICAvLyBzaXplX3Qg
aGFzIHRoZSBzYW1lIHdpZHRoIGFzIHBvaW50ZXJzIG9uIGJvdGggMzItYml0IGFuZCA2NC1iaXQK
LSAgICAgIC8vIFdpbmRvd3MgcGxhdGZvcm1zLgotICAgICAgLy8gU2VlIGh0dHA6Ly9tc2RuLm1p
Y3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS90Y3hmMWR3Ni5hc3B4LgotICAgICAgInwiICsgU3Ry
ZWFtYWJsZVRvU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pih3cml0ZV9oYW5kbGUpKSAr
Ci0gICAgICAifCIgKyBTdHJlYW1hYmxlVG9TdHJpbmcocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+
KGV2ZW50X2hhbmRsZV8uR2V0KCkpKTsKLQotICBjaGFyIGV4ZWN1dGFibGVfcGF0aFtfTUFYX1BB
VEggKyAxXTsgIC8vIE5PTElOVAotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXygKLSAgICAgIF9N
QVhfUEFUSCArIDEgIT0gOjpHZXRNb2R1bGVGaWxlTmFtZUEoTlVMTCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZV9wYXRoLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTUFYX1BBVEgpKTsKLQotICBzdGQ6
OnN0cmluZyBjb21tYW5kX2xpbmUgPQotICAgICAgc3RkOjpzdHJpbmcoOjpHZXRDb21tYW5kTGlu
ZUEoKSkgKyAiICIgKyBmaWx0ZXJfZmxhZyArICIgXCIiICsKLSAgICAgIGludGVybmFsX2ZsYWcg
KyAiXCIiOwotCi0gIERlYXRoVGVzdDo6c2V0X2xhc3RfZGVhdGhfdGVzdF9tZXNzYWdlKCIiKTsK
LQotICBDYXB0dXJlU3RkZXJyKCk7Ci0gIC8vIEZsdXNoIHRoZSBsb2cgYnVmZmVycyBzaW5jZSB0
aGUgbG9nIHN0cmVhbXMgYXJlIHNoYXJlZCB3aXRoIHRoZSBjaGlsZC4KLSAgRmx1c2hJbmZvTG9n
KCk7Ci0KLSAgLy8gVGhlIGNoaWxkIHByb2Nlc3Mgd2lsbCBzaGFyZSB0aGUgc3RhbmRhcmQgaGFu
ZGxlcyB3aXRoIHRoZSBwYXJlbnQuCi0gIFNUQVJUVVBJTkZPQSBzdGFydHVwX2luZm87Ci0gIG1l
bXNldCgmc3RhcnR1cF9pbmZvLCAwLCBzaXplb2YoU1RBUlRVUElORk8pKTsKLSAgc3RhcnR1cF9p
bmZvLmR3RmxhZ3MgPSBTVEFSVEZfVVNFU1RESEFORExFUzsKLSAgc3RhcnR1cF9pbmZvLmhTdGRJ
bnB1dCA9IDo6R2V0U3RkSGFuZGxlKFNURF9JTlBVVF9IQU5ETEUpOwotICBzdGFydHVwX2luZm8u
aFN0ZE91dHB1dCA9IDo6R2V0U3RkSGFuZGxlKFNURF9PVVRQVVRfSEFORExFKTsKLSAgc3RhcnR1
cF9pbmZvLmhTdGRFcnJvciA9IDo6R2V0U3RkSGFuZGxlKFNURF9FUlJPUl9IQU5ETEUpOwotCi0g
IFBST0NFU1NfSU5GT1JNQVRJT04gcHJvY2Vzc19pbmZvOwotICBHVEVTVF9ERUFUSF9URVNUX0NI
RUNLXyg6OkNyZWF0ZVByb2Nlc3NBKAotICAgICAgZXhlY3V0YWJsZV9wYXRoLAotICAgICAgY29u
c3RfY2FzdDxjaGFyKj4oY29tbWFuZF9saW5lLmNfc3RyKCkpLAotICAgICAgTlVMTCwgICAvLyBS
ZXR1bmVkIHByb2Nlc3MgaGFuZGxlIGlzIG5vdCBpbmhlcml0YWJsZS4KLSAgICAgIE5VTEwsICAg
Ly8gUmV0dW5lZCB0aHJlYWQgaGFuZGxlIGlzIG5vdCBpbmhlcml0YWJsZS4KLSAgICAgIFRSVUUs
ICAgLy8gQ2hpbGQgaW5oZXJpdHMgYWxsIGluaGVyaXRhYmxlIGhhbmRsZXMgKGZvciB3cml0ZV9o
YW5kbGVfKS4KLSAgICAgIDB4MCwgICAgLy8gRGVmYXVsdCBjcmVhdGlvbiBmbGFncy4KLSAgICAg
IE5VTEwsICAgLy8gSW5oZXJpdCB0aGUgcGFyZW50J3MgZW52aXJvbm1lbnQuCi0gICAgICBVbml0
VGVzdDo6R2V0SW5zdGFuY2UoKS0+b3JpZ2luYWxfd29ya2luZ19kaXIoKSwKLSAgICAgICZzdGFy
dHVwX2luZm8sCi0gICAgICAmcHJvY2Vzc19pbmZvKSAhPSBGQUxTRSk7Ci0gIGNoaWxkX2hhbmRs
ZV8uUmVzZXQocHJvY2Vzc19pbmZvLmhQcm9jZXNzKTsKLSAgOjpDbG9zZUhhbmRsZShwcm9jZXNz
X2luZm8uaFRocmVhZCk7Ci0gIHNldF9zcGF3bmVkKHRydWUpOwotICByZXR1cm4gT1ZFUlNFRV9U
RVNUOwotfQotIyBlbHNlICAvLyBXZSBhcmUgbm90IG9uIFdpbmRvd3MuCi0KLS8vIEZvcmtpbmdE
ZWF0aFRlc3QgcHJvdmlkZXMgaW1wbGVtZW50YXRpb25zIGZvciBtb3N0IG9mIHRoZSBhYnN0cmFj
dAotLy8gbWV0aG9kcyBvZiB0aGUgRGVhdGhUZXN0IGludGVyZmFjZS4gIE9ubHkgdGhlIEFzc3Vt
ZVJvbGUgbWV0aG9kIGlzCi0vLyBsZWZ0IHVuZGVmaW5lZC4KLWNsYXNzIEZvcmtpbmdEZWF0aFRl
c3QgOiBwdWJsaWMgRGVhdGhUZXN0SW1wbCB7Ci0gcHVibGljOgotICBGb3JraW5nRGVhdGhUZXN0
KGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4KTsKLQotICAvLyBBbGwgb2Yg
dGhlc2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIERlYXRoVGVzdC4KLSAg
dmlydHVhbCBpbnQgV2FpdCgpOwotCi0gcHJvdGVjdGVkOgotICB2b2lkIHNldF9jaGlsZF9waWQo
cGlkX3QgY2hpbGRfcGlkKSB7IGNoaWxkX3BpZF8gPSBjaGlsZF9waWQ7IH0KLQotIHByaXZhdGU6
Ci0gIC8vIFBJRCBvZiBjaGlsZCBwcm9jZXNzIGR1cmluZyBkZWF0aCB0ZXN0OyAwIGluIHRoZSBj
aGlsZCBwcm9jZXNzIGl0c2VsZi4KLSAgcGlkX3QgY2hpbGRfcGlkXzsKLX07Ci0KLS8vIENvbnN0
cnVjdHMgYSBGb3JraW5nRGVhdGhUZXN0LgotRm9ya2luZ0RlYXRoVGVzdDo6Rm9ya2luZ0RlYXRo
VGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgY29uc3QgUkUqIGFfcmVnZXgpCi0gICAgOiBE
ZWF0aFRlc3RJbXBsKGFfc3RhdGVtZW50LCBhX3JlZ2V4KSwKLSAgICAgIGNoaWxkX3BpZF8oLTEp
IHt9Ci0KLS8vIFdhaXRzIGZvciB0aGUgY2hpbGQgaW4gYSBkZWF0aCB0ZXN0IHRvIGV4aXQsIHJl
dHVybmluZyBpdHMgZXhpdAotLy8gc3RhdHVzLCBvciAwIGlmIG5vIGNoaWxkIHByb2Nlc3MgZXhp
c3RzLiAgQXMgYSBzaWRlIGVmZmVjdCwgc2V0cyB0aGUKLS8vIG91dGNvbWUgZGF0YSBtZW1iZXIu
Ci1pbnQgRm9ya2luZ0RlYXRoVGVzdDo6V2FpdCgpIHsKLSAgaWYgKCFzcGF3bmVkKCkpCi0gICAg
cmV0dXJuIDA7Ci0KLSAgUmVhZEFuZEludGVycHJldFN0YXR1c0J5dGUoKTsKLQotICBpbnQgc3Rh
dHVzX3ZhbHVlOwotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKHdhaXRwaWQoY2hp
bGRfcGlkXywgJnN0YXR1c192YWx1ZSwgMCkpOwotICBzZXRfc3RhdHVzKHN0YXR1c192YWx1ZSk7
Ci0gIHJldHVybiBzdGF0dXNfdmFsdWU7Ci19Ci0KLS8vIEEgY29uY3JldGUgZGVhdGggdGVzdCBj
bGFzcyB0aGF0IGZvcmtzLCB0aGVuIGltbWVkaWF0ZWx5IHJ1bnMgdGhlIHRlc3QKLS8vIGluIHRo
ZSBjaGlsZCBwcm9jZXNzLgotY2xhc3MgTm9FeGVjRGVhdGhUZXN0IDogcHVibGljIEZvcmtpbmdE
ZWF0aFRlc3QgewotIHB1YmxpYzoKLSAgTm9FeGVjRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3Rh
dGVtZW50LCBjb25zdCBSRSogYV9yZWdleCkgOgotICAgICAgRm9ya2luZ0RlYXRoVGVzdChhX3N0
YXRlbWVudCwgYV9yZWdleCkgeyB9Ci0gIHZpcnR1YWwgVGVzdFJvbGUgQXNzdW1lUm9sZSgpOwot
fTsKLQotLy8gVGhlIEFzc3VtZVJvbGUgcHJvY2VzcyBmb3IgYSBmb3JrLWFuZC1ydW4gZGVhdGgg
dGVzdC4gIEl0IGltcGxlbWVudHMgYQotLy8gc3RyYWlnaHRmb3J3YXJkIGZvcmssIHdpdGggYSBz
aW1wbGUgcGlwZSB0byB0cmFuc21pdCB0aGUgc3RhdHVzIGJ5dGUuCi1EZWF0aFRlc3Q6OlRlc3RS
b2xlIE5vRXhlY0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKLSAgY29uc3Qgc2l6ZV90IHRocmVh
ZF9jb3VudCA9IEdldFRocmVhZENvdW50KCk7Ci0gIGlmICh0aHJlYWRfY291bnQgIT0gMSkgewot
ICAgIEdURVNUX0xPR18oV0FSTklORykgPDwgRGVhdGhUZXN0VGhyZWFkV2FybmluZyh0aHJlYWRf
Y291bnQpOwotICB9Ci0KLSAgaW50IHBpcGVfZmRbMl07Ci0gIEdURVNUX0RFQVRIX1RFU1RfQ0hF
Q0tfKHBpcGUocGlwZV9mZCkgIT0gLTEpOwotCi0gIERlYXRoVGVzdDo6c2V0X2xhc3RfZGVhdGhf
dGVzdF9tZXNzYWdlKCIiKTsKLSAgQ2FwdHVyZVN0ZGVycigpOwotICAvLyBXaGVuIHdlIGZvcmsg
dGhlIHByb2Nlc3MgYmVsb3csIHRoZSBsb2cgZmlsZSBidWZmZXJzIGFyZSBjb3BpZWQsIGJ1dCB0
aGUKLSAgLy8gZmlsZSBkZXNjcmlwdG9ycyBhcmUgc2hhcmVkLiAgV2UgZmx1c2ggYWxsIGxvZyBm
aWxlcyBoZXJlIHNvIHRoYXQgY2xvc2luZwotICAvLyB0aGUgZmlsZSBkZXNjcmlwdG9ycyBpbiB0
aGUgY2hpbGQgcHJvY2VzcyBkb2Vzbid0IHRocm93IG9mZiB0aGUKLSAgLy8gc3luY2hyb25pemF0
aW9uIGJldHdlZW4gZGVzY3JpcHRvcnMgYW5kIGJ1ZmZlcnMgaW4gdGhlIHBhcmVudCBwcm9jZXNz
LgotICAvLyBUaGlzIGlzIGFzIGNsb3NlIHRvIHRoZSBmb3JrIGFzIHBvc3NpYmxlIHRvIGF2b2lk
IGEgcmFjZSBjb25kaXRpb24gaW4gY2FzZQotICAvLyB0aGVyZSBhcmUgbXVsdGlwbGUgdGhyZWFk
cyBydW5uaW5nIGJlZm9yZSB0aGUgZGVhdGggdGVzdCwgYW5kIGFub3RoZXIKLSAgLy8gdGhyZWFk
IHdyaXRlcyB0byB0aGUgbG9nIGZpbGUuCi0gIEZsdXNoSW5mb0xvZygpOwotCi0gIGNvbnN0IHBp
ZF90IGNoaWxkX3BpZCA9IGZvcmsoKTsKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oY2hpbGRf
cGlkICE9IC0xKTsKLSAgc2V0X2NoaWxkX3BpZChjaGlsZF9waWQpOwotICBpZiAoY2hpbGRfcGlk
ID09IDApIHsKLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKGNsb3NlKHBpcGVf
ZmRbMF0pKTsKLSAgICBzZXRfd3JpdGVfZmQocGlwZV9mZFsxXSk7Ci0gICAgLy8gUmVkaXJlY3Rz
IGFsbCBsb2dnaW5nIHRvIHN0ZGVyciBpbiB0aGUgY2hpbGQgcHJvY2VzcyB0byBwcmV2ZW50Ci0g
ICAgLy8gY29uY3VycmVudCB3cml0ZXMgdG8gdGhlIGxvZyBmaWxlcy4gIFdlIGNhcHR1cmUgc3Rk
ZXJyIGluIHRoZSBwYXJlbnQKLSAgICAvLyBwcm9jZXNzIGFuZCBhcHBlbmQgdGhlIGNoaWxkIHBy
b2Nlc3MnIG91dHB1dCB0byBhIGxvZy4KLSAgICBMb2dUb1N0ZGVycigpOwotICAgIC8vIEV2ZW50
IGZvcndhcmRpbmcgdG8gdGhlIGxpc3RlbmVycyBvZiBldmVudCBsaXN0ZW5lciBBUEkgbXVzaCBi
ZSBzaHV0Ci0gICAgLy8gZG93biBpbiBkZWF0aCB0ZXN0IHN1YnByb2Nlc3Nlcy4KLSAgICBHZXRV
bml0VGVzdEltcGwoKS0+bGlzdGVuZXJzKCktPlN1cHByZXNzRXZlbnRGb3J3YXJkaW5nKCk7Ci0g
ICAgZ19pbl9mYXN0X2RlYXRoX3Rlc3RfY2hpbGQgPSB0cnVlOwotICAgIHJldHVybiBFWEVDVVRF
X1RFU1Q7Ci0gIH0gZWxzZSB7Ci0gICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS19TWVNDQUxMXyhj
bG9zZShwaXBlX2ZkWzFdKSk7Ci0gICAgc2V0X3JlYWRfZmQocGlwZV9mZFswXSk7Ci0gICAgc2V0
X3NwYXduZWQodHJ1ZSk7Ci0gICAgcmV0dXJuIE9WRVJTRUVfVEVTVDsKLSAgfQotfQotCi0vLyBB
IGNvbmNyZXRlIGRlYXRoIHRlc3QgY2xhc3MgdGhhdCBmb3JrcyBhbmQgcmUtZXhlY3V0ZXMgdGhl
IG1haW4KLS8vIHByb2dyYW0gZnJvbSB0aGUgYmVnaW5uaW5nLCB3aXRoIGNvbW1hbmQtbGluZSBm
bGFncyBzZXQgdGhhdCBjYXVzZQotLy8gb25seSB0aGlzIHNwZWNpZmljIGRlYXRoIHRlc3QgdG8g
YmUgcnVuLgotY2xhc3MgRXhlY0RlYXRoVGVzdCA6IHB1YmxpYyBGb3JraW5nRGVhdGhUZXN0IHsK
LSBwdWJsaWM6Ci0gIEV4ZWNEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsIGNvbnN0
IFJFKiBhX3JlZ2V4LAotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5l
KSA6Ci0gICAgICBGb3JraW5nRGVhdGhUZXN0KGFfc3RhdGVtZW50LCBhX3JlZ2V4KSwgZmlsZV8o
ZmlsZSksIGxpbmVfKGxpbmUpIHsgfQotICB2aXJ0dWFsIFRlc3RSb2xlIEFzc3VtZVJvbGUoKTsK
LSBwcml2YXRlOgotICBzdGF0aWMgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0QXJndnNG
b3JEZWF0aFRlc3RDaGlsZFByb2Nlc3MoKSB7Ci0gICAgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu
Zz4gYXJncyA9IEdldEluamVjdGFibGVBcmd2cygpOwotIyAgaWYgZGVmaW5lZChHVEVTVF9FWFRS
QV9ERUFUSF9URVNUX0NPTU1BTkRfTElORV9BUkdTXykKLSAgICA6OnN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPiBleHRyYV9hcmdzID0KLSAgICAgICAgR1RFU1RfRVhUUkFfREVBVEhfVEVTVF9DT01N
QU5EX0xJTkVfQVJHU18oKTsKLSAgICBhcmdzLmluc2VydChhcmdzLmVuZCgpLCBleHRyYV9hcmdz
LmJlZ2luKCksIGV4dHJhX2FyZ3MuZW5kKCkpOwotIyAgZW5kaWYgIC8vIGRlZmluZWQoR1RFU1Rf
RVhUUkFfREVBVEhfVEVTVF9DT01NQU5EX0xJTkVfQVJHU18pCi0gICAgcmV0dXJuIGFyZ3M7Ci0g
IH0KLSAgLy8gVGhlIG5hbWUgb2YgdGhlIGZpbGUgaW4gd2hpY2ggdGhlIGRlYXRoIHRlc3QgaXMg
bG9jYXRlZC4KLSAgY29uc3QgY2hhciogY29uc3QgZmlsZV87Ci0gIC8vIFRoZSBsaW5lIG51bWJl
ciBvbiB3aGljaCB0aGUgZGVhdGggdGVzdCBpcyBsb2NhdGVkLgotICBjb25zdCBpbnQgbGluZV87
Ci19OwotCi0vLyBVdGlsaXR5IGNsYXNzIGZvciBhY2N1bXVsYXRpbmcgY29tbWFuZC1saW5lIGFy
Z3VtZW50cy4KLWNsYXNzIEFyZ3VtZW50cyB7Ci0gcHVibGljOgotICBBcmd1bWVudHMoKSB7Ci0g
ICAgYXJnc18ucHVzaF9iYWNrKE5VTEwpOwotICB9Ci0KLSAgfkFyZ3VtZW50cygpIHsKLSAgICBm
b3IgKHN0ZDo6dmVjdG9yPGNoYXIqPjo6aXRlcmF0b3IgaSA9IGFyZ3NfLmJlZ2luKCk7IGkgIT0g
YXJnc18uZW5kKCk7Ci0gICAgICAgICArK2kpIHsKLSAgICAgIGZyZWUoKmkpOwotICAgIH0KLSAg
fQotICB2b2lkIEFkZEFyZ3VtZW50KGNvbnN0IGNoYXIqIGFyZ3VtZW50KSB7Ci0gICAgYXJnc18u
aW5zZXJ0KGFyZ3NfLmVuZCgpIC0gMSwgcG9zaXg6OlN0ckR1cChhcmd1bWVudCkpOwotICB9Ci0K
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFN0cj4KLSAgdm9pZCBBZGRBcmd1bWVudHMoY29uc3QgOjpz
dGQ6OnZlY3RvcjxTdHI+JiBhcmd1bWVudHMpIHsKLSAgICBmb3IgKHR5cGVuYW1lIDo6c3RkOjp2
ZWN0b3I8U3RyPjo6Y29uc3RfaXRlcmF0b3IgaSA9IGFyZ3VtZW50cy5iZWdpbigpOwotICAgICAg
ICAgaSAhPSBhcmd1bWVudHMuZW5kKCk7Ci0gICAgICAgICArK2kpIHsKLSAgICAgIGFyZ3NfLmlu
c2VydChhcmdzXy5lbmQoKSAtIDEsIHBvc2l4OjpTdHJEdXAoaS0+Y19zdHIoKSkpOwotICAgIH0K
LSAgfQotICBjaGFyKiBjb25zdCogQXJndigpIHsKLSAgICByZXR1cm4gJmFyZ3NfWzBdOwotICB9
Ci0KLSBwcml2YXRlOgotICBzdGQ6OnZlY3RvcjxjaGFyKj4gYXJnc187Ci19OwotCi0vLyBBIHN0
cnVjdCB0aGF0IGVuY29tcGFzc2VzIHRoZSBhcmd1bWVudHMgdG8gdGhlIGNoaWxkIHByb2Nlc3Mg
b2YgYQotLy8gdGhyZWFkc2FmZS1zdHlsZSBkZWF0aCB0ZXN0IHByb2Nlc3MuCi1zdHJ1Y3QgRXhl
Y0RlYXRoVGVzdEFyZ3MgewotICBjaGFyKiBjb25zdCogYXJndjsgIC8vIENvbW1hbmQtbGluZSBh
cmd1bWVudHMgZm9yIHRoZSBjaGlsZCdzIGNhbGwgdG8gZXhlYwotICBpbnQgY2xvc2VfZmQ7ICAg
ICAgIC8vIEZpbGUgZGVzY3JpcHRvciB0byBjbG9zZTsgdGhlIHJlYWQgZW5kIG9mIGEgcGlwZQot
fTsKLQotIyAgaWYgR1RFU1RfT1NfTUFDCi1pbmxpbmUgY2hhcioqIEdldEVudmlyb24oKSB7Ci0g
IC8vIFdoZW4gR29vZ2xlIFRlc3QgaXMgYnVpbHQgYXMgYSBmcmFtZXdvcmsgb24gTWFjT1MgWCwg
dGhlIGVudmlyb24gdmFyaWFibGUKLSAgLy8gaXMgdW5hdmFpbGFibGUuIEFwcGxlJ3MgZG9jdW1l
bnRhdGlvbiAobWFuIGVudmlyb24pIHJlY29tbWVuZHMgdXNpbmcKLSAgLy8gX05TR2V0RW52aXJv
bigpIGluc3RlYWQuCi0gIHJldHVybiAqX05TR2V0RW52aXJvbigpOwotfQotIyAgZWxzZQotLy8g
U29tZSBQT1NJWCBwbGF0Zm9ybXMgZXhwZWN0IHlvdSB0byBkZWNsYXJlIGVudmlyb24uIGV4dGVy
biAiQyIgbWFrZXMKLS8vIGl0IHJlc2lkZSBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4KLWV4dGVy
biAiQyIgY2hhcioqIGVudmlyb247Ci1pbmxpbmUgY2hhcioqIEdldEVudmlyb24oKSB7IHJldHVy
biBlbnZpcm9uOyB9Ci0jICBlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCi0KLSMgIGlmICFHVEVTVF9P
U19RTlgKLS8vIFRoZSBtYWluIGZ1bmN0aW9uIGZvciBhIHRocmVhZHNhZmUtc3R5bGUgZGVhdGgg
dGVzdCBjaGlsZCBwcm9jZXNzLgotLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gYSBjbG9u
ZSgpLWVkIHByb2Nlc3MgYW5kIHRodXMgbXVzdCBhdm9pZAotLy8gYW55IHBvdGVudGlhbGx5IHVu
c2FmZSBvcGVyYXRpb25zIGxpa2UgbWFsbG9jIG9yIGxpYmMgZnVuY3Rpb25zLgotc3RhdGljIGlu
dCBFeGVjRGVhdGhUZXN0Q2hpbGRNYWluKHZvaWQqIGNoaWxkX2FyZykgewotICBFeGVjRGVhdGhU
ZXN0QXJncyogY29uc3QgYXJncyA9IHN0YXRpY19jYXN0PEV4ZWNEZWF0aFRlc3RBcmdzKj4oY2hp
bGRfYXJnKTsKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS19TWVNDQUxMXyhjbG9zZShhcmdzLT5j
bG9zZV9mZCkpOwotCi0gIC8vIFdlIG5lZWQgdG8gZXhlY3V0ZSB0aGUgdGVzdCBwcm9ncmFtIGlu
IHRoZSBzYW1lIGVudmlyb25tZW50IHdoZXJlCi0gIC8vIGl0IHdhcyBvcmlnaW5hbGx5IGludm9r
ZWQuICBUaGVyZWZvcmUgd2UgY2hhbmdlIHRvIHRoZSBvcmlnaW5hbAotICAvLyB3b3JraW5nIGRp
cmVjdG9yeSBmaXJzdC4KLSAgY29uc3QgY2hhciogY29uc3Qgb3JpZ2luYWxfZGlyID0KLSAgICAg
IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2RpcigpOwotICAvLyBX
ZSBjYW4gc2FmZWx5IGNhbGwgY2hkaXIoKSBhcyBpdCdzIGEgZGlyZWN0IHN5c3RlbSBjYWxsLgot
ICBpZiAoY2hkaXIob3JpZ2luYWxfZGlyKSAhPSAwKSB7Ci0gICAgRGVhdGhUZXN0QWJvcnQoc3Rk
OjpzdHJpbmcoImNoZGlyKFwiIikgKyBvcmlnaW5hbF9kaXIgKyAiXCIpIGZhaWxlZDogIiArCi0g
ICAgICAgICAgICAgICAgICAgR2V0TGFzdEVycm5vRGVzY3JpcHRpb24oKSk7Ci0gICAgcmV0dXJu
IEVYSVRfRkFJTFVSRTsKLSAgfQotCi0gIC8vIFdlIGNhbiBzYWZlbHkgY2FsbCBleGVjdmUoKSBh
cyBpdCdzIGEgZGlyZWN0IHN5c3RlbSBjYWxsLiAgV2UKLSAgLy8gY2Fubm90IHVzZSBleGVjdnAo
KSBhcyBpdCdzIGEgbGliYyBmdW5jdGlvbiBhbmQgdGh1cyBwb3RlbnRpYWxseQotICAvLyB1bnNh
ZmUuICBTaW5jZSBleGVjdmUoKSBkb2Vzbid0IHNlYXJjaCB0aGUgUEFUSCwgdGhlIHVzZXIgbXVz
dAotICAvLyBpbnZva2UgdGhlIHRlc3QgcHJvZ3JhbSB2aWEgYSB2YWxpZCBwYXRoIHRoYXQgY29u
dGFpbnMgYXQgbGVhc3QKLSAgLy8gb25lIHBhdGggc2VwYXJhdG9yLgotICBleGVjdmUoYXJncy0+
YXJndlswXSwgYXJncy0+YXJndiwgR2V0RW52aXJvbigpKTsKLSAgRGVhdGhUZXN0QWJvcnQoc3Rk
OjpzdHJpbmcoImV4ZWN2ZSgiKSArIGFyZ3MtPmFyZ3ZbMF0gKyAiLCAuLi4pIGluICIgKwotICAg
ICAgICAgICAgICAgICBvcmlnaW5hbF9kaXIgKyAiIGZhaWxlZDogIiArCi0gICAgICAgICAgICAg
ICAgIEdldExhc3RFcnJub0Rlc2NyaXB0aW9uKCkpOwotICByZXR1cm4gRVhJVF9GQUlMVVJFOwot
fQotIyAgZW5kaWYgIC8vICFHVEVTVF9PU19RTlgKLQotIyAgaWYgR1RFU1RfSEFTX0NMT05FCi0v
LyBUd28gdXRpbGl0eSByb3V0aW5lcyB0aGF0IHRvZ2V0aGVyIGRldGVybWluZSB0aGUgZGlyZWN0
aW9uIHRoZSBzdGFjawotLy8gZ3Jvd3MuCi0vLyBUaGlzIGNvdWxkIGJlIGFjY29tcGxpc2hlZCBt
b3JlIGVsZWdhbnRseSBieSBhIHNpbmdsZSByZWN1cnNpdmUKLS8vIGZ1bmN0aW9uLCBidXQgd2Ug
d2FudCB0byBndWFyZCBhZ2FpbnN0IHRoZSB1bmxpa2VseSBwb3NzaWJpbGl0eSBvZgotLy8gYSBz
bWFydCBjb21waWxlciBvcHRpbWl6aW5nIHRoZSByZWN1cnNpb24gYXdheS4KLS8vCi0vLyBHVEVT
VF9OT19JTkxJTkVfIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgR0NDIDQuNiBmcm9tIGlubGluaW5n
Ci0vLyBTdGFja0xvd2VyVGhhbkFkZHJlc3MgaW50byBTdGFja0dyb3dzRG93biwgd2hpY2ggdGhl
biBkb2Vzbid0IGdpdmUKLS8vIGNvcnJlY3QgYW5zd2VyLgotc3RhdGljIHZvaWQgU3RhY2tMb3dl
clRoYW5BZGRyZXNzKGNvbnN0IHZvaWQqIHB0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sKiByZXN1bHQpIEdURVNUX05PX0lOTElORV87Ci1zdGF0aWMgdm9pZCBTdGFj
a0xvd2VyVGhhbkFkZHJlc3MoY29uc3Qgdm9pZCogcHRyLCBib29sKiByZXN1bHQpIHsKLSAgaW50
IGR1bW15OwotICAqcmVzdWx0ID0gKCZkdW1teSA8IHB0cik7Ci19Ci0KLS8vIE1ha2Ugc3VyZSBB
ZGRyZXNzU2FuaXRpemVyIGRvZXMgbm90IHRhbXBlciB3aXRoIHRoZSBzdGFjayBoZXJlLgotR1RF
U1RfQVRUUklCVVRFX05PX1NBTklUSVpFX0FERFJFU1NfCi1zdGF0aWMgYm9vbCBTdGFja0dyb3dz
RG93bigpIHsKLSAgaW50IGR1bW15OwotICBib29sIHJlc3VsdDsKLSAgU3RhY2tMb3dlclRoYW5B
ZGRyZXNzKCZkdW1teSwgJnJlc3VsdCk7Ci0gIHJldHVybiByZXN1bHQ7Ci19Ci0jICBlbmRpZiAg
Ly8gR1RFU1RfSEFTX0NMT05FCi0KLS8vIFNwYXducyBhIGNoaWxkIHByb2Nlc3Mgd2l0aCB0aGUg
c2FtZSBleGVjdXRhYmxlIGFzIHRoZSBjdXJyZW50IHByb2Nlc3MgaW4KLS8vIGEgdGhyZWFkLXNh
ZmUgbWFubmVyIGFuZCBpbnN0cnVjdHMgaXQgdG8gcnVuIHRoZSBkZWF0aCB0ZXN0LiAgVGhlCi0v
LyBpbXBsZW1lbnRhdGlvbiB1c2VzIGZvcmsoMikgKyBleGVjLiAgT24gc3lzdGVtcyB3aGVyZSBj
bG9uZSgyKSBpcwotLy8gYXZhaWxhYmxlLCBpdCBpcyB1c2VkIGluc3RlYWQsIGJlaW5nIHNsaWdo
dGx5IG1vcmUgdGhyZWFkLXNhZmUuICBPbiBRTlgsCi0vLyBmb3JrIHN1cHBvcnRzIG9ubHkgc2lu
Z2xlLXRocmVhZGVkIGVudmlyb25tZW50cywgc28gdGhpcyBmdW5jdGlvbiB1c2VzCi0vLyBzcGF3
bigyKSB0aGVyZSBpbnN0ZWFkLiAgVGhlIGZ1bmN0aW9uIGRpZXMgd2l0aCBhbiBlcnJvciBtZXNz
YWdlIGlmCi0vLyBhbnl0aGluZyBnb2VzIHdyb25nLgotc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRl
c3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKLSAgRXhlY0Rl
YXRoVGVzdEFyZ3MgYXJncyA9IHsgYXJndiwgY2xvc2VfZmQgfTsKLSAgcGlkX3QgY2hpbGRfcGlk
ID0gLTE7Ci0KLSMgIGlmIEdURVNUX09TX1FOWAotICAvLyBPYnRhaW5zIHRoZSBjdXJyZW50IGRp
cmVjdG9yeSBhbmQgc2V0cyBpdCB0byBiZSBjbG9zZWQgaW4gdGhlIGNoaWxkCi0gIC8vIHByb2Nl
c3MuCi0gIGNvbnN0IGludCBjd2RfZmQgPSBvcGVuKCIuIiwgT19SRE9OTFkpOwotICBHVEVTVF9E
RUFUSF9URVNUX0NIRUNLXyhjd2RfZmQgIT0gLTEpOwotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNL
X1NZU0NBTExfKGZjbnRsKGN3ZF9mZCwgRl9TRVRGRCwgRkRfQ0xPRVhFQykpOwotICAvLyBXZSBu
ZWVkIHRvIGV4ZWN1dGUgdGhlIHRlc3QgcHJvZ3JhbSBpbiB0aGUgc2FtZSBlbnZpcm9ubWVudCB3
aGVyZQotICAvLyBpdCB3YXMgb3JpZ2luYWxseSBpbnZva2VkLiAgVGhlcmVmb3JlIHdlIGNoYW5n
ZSB0byB0aGUgb3JpZ2luYWwKLSAgLy8gd29ya2luZyBkaXJlY3RvcnkgZmlyc3QuCi0gIGNvbnN0
IGNoYXIqIGNvbnN0IG9yaWdpbmFsX2RpciA9Ci0gICAgICBVbml0VGVzdDo6R2V0SW5zdGFuY2Uo
KS0+b3JpZ2luYWxfd29ya2luZ19kaXIoKTsKLSAgLy8gV2UgY2FuIHNhZmVseSBjYWxsIGNoZGly
KCkgYXMgaXQncyBhIGRpcmVjdCBzeXN0ZW0gY2FsbC4KLSAgaWYgKGNoZGlyKG9yaWdpbmFsX2Rp
cikgIT0gMCkgewotICAgIERlYXRoVGVzdEFib3J0KHN0ZDo6c3RyaW5nKCJjaGRpcihcIiIpICsg
b3JpZ2luYWxfZGlyICsgIlwiKSBmYWlsZWQ6ICIgKwotICAgICAgICAgICAgICAgICAgIEdldExh
c3RFcnJub0Rlc2NyaXB0aW9uKCkpOwotICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gIH0KLQot
ICBpbnQgZmRfZmxhZ3M7Ci0gIC8vIFNldCBjbG9zZV9mZCB0byBiZSBjbG9zZWQgYWZ0ZXIgc3Bh
d24uCi0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfU1lTQ0FMTF8oZmRfZmxhZ3MgPSBmY250bChj
bG9zZV9mZCwgRl9HRVRGRCkpOwotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKGZj
bnRsKGNsb3NlX2ZkLCBGX1NFVEZELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZkX2ZsYWdzIHwgRkRfQ0xPRVhFQykpOwotICBzdHJ1Y3QgaW5oZXJpdGFuY2UgaW5o
ZXJpdCA9IHswfTsKLSAgLy8gc3Bhd24gaXMgYSBzeXN0ZW0gY2FsbC4KLSAgY2hpbGRfcGlkID0g
c3Bhd24oYXJncy5hcmd2WzBdLCAwLCBOVUxMLCAmaW5oZXJpdCwgYXJncy5hcmd2LCBHZXRFbnZp
cm9uKCkpOwotICAvLyBSZXN0b3JlcyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4KLSAg
R1RFU1RfREVBVEhfVEVTVF9DSEVDS18oZmNoZGlyKGN3ZF9mZCkgIT0gLTEpOwotICBHVEVTVF9E
RUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKGNsb3NlKGN3ZF9mZCkpOwotCi0jICBlbHNlICAgLy8g
R1RFU1RfT1NfUU5YCi0jICAgaWYgR1RFU1RfT1NfTElOVVgKLSAgLy8gV2hlbiBhIFNJR1BST0Yg
c2lnbmFsIGlzIHJlY2VpdmVkIHdoaWxlIGZvcmsoKSBvciBjbG9uZSgpIGFyZSBleGVjdXRpbmcs
Ci0gIC8vIHRoZSBwcm9jZXNzIG1heSBoYW5nLiBUbyBhdm9pZCB0aGlzLCB3ZSBpZ25vcmUgU0lH
UFJPRiBoZXJlIGFuZCByZS1lbmFibGUKLSAgLy8gaXQgYWZ0ZXIgdGhlIGNhbGwgdG8gZm9yaygp
L2Nsb25lKCkgaXMgY29tcGxldGUuCi0gIHN0cnVjdCBzaWdhY3Rpb24gc2F2ZWRfc2lncHJvZl9h
Y3Rpb247Ci0gIHN0cnVjdCBzaWdhY3Rpb24gaWdub3JlX3NpZ3Byb2ZfYWN0aW9uOwotICBtZW1z
ZXQoJmlnbm9yZV9zaWdwcm9mX2FjdGlvbiwgMCwgc2l6ZW9mKGlnbm9yZV9zaWdwcm9mX2FjdGlv
bikpOwotICBzaWdlbXB0eXNldCgmaWdub3JlX3NpZ3Byb2ZfYWN0aW9uLnNhX21hc2spOwotICBp
Z25vcmVfc2lncHJvZl9hY3Rpb24uc2FfaGFuZGxlciA9IFNJR19JR047Ci0gIEdURVNUX0RFQVRI
X1RFU1RfQ0hFQ0tfU1lTQ0FMTF8oc2lnYWN0aW9uKAotICAgICAgU0lHUFJPRiwgJmlnbm9yZV9z
aWdwcm9mX2FjdGlvbiwgJnNhdmVkX3NpZ3Byb2ZfYWN0aW9uKSk7Ci0jICAgZW5kaWYgIC8vIEdU
RVNUX09TX0xJTlVYCi0KLSMgICBpZiBHVEVTVF9IQVNfQ0xPTkUKLSAgY29uc3QgYm9vbCB1c2Vf
Zm9yayA9IEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yayk7Ci0KLSAgaWYgKCF1c2VfZm9y
aykgewotICAgIHN0YXRpYyBjb25zdCBib29sIHN0YWNrX2dyb3dzX2Rvd24gPSBTdGFja0dyb3dz
RG93bigpOwotICAgIGNvbnN0IHNpemVfdCBzdGFja19zaXplID0gZ2V0cGFnZXNpemUoKTsKLSAg
ICAvLyBNTUFQX0FOT05ZTU9VUyBpcyBub3QgZGVmaW5lZCBvbiBNYWMsIHNvIHdlIHVzZSBNQVBf
QU5PTiBpbnN0ZWFkLgotICAgIHZvaWQqIGNvbnN0IHN0YWNrID0gbW1hcChOVUxMLCBzdGFja19z
aXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNQVBfQU5PTiB8IE1BUF9QUklWQVRFLCAtMSwgMCk7Ci0gICAgR1RFU1RfREVBVEhfVEVTVF9D
SEVDS18oc3RhY2sgIT0gTUFQX0ZBSUxFRCk7Ci0KLSAgICAvLyBNYXhpbXVtIHN0YWNrIGFsaWdu
bWVudCBpbiBieXRlczogIEZvciBhIGRvd253YXJkLWdyb3dpbmcgc3RhY2ssIHRoaXMKLSAgICAv
LyBhbW91bnQgaXMgc3VidHJhY3RlZCBmcm9tIHNpemUgb2YgdGhlIHN0YWNrIHNwYWNlIHRvIGdl
dCBhbiBhZGRyZXNzCi0gICAgLy8gdGhhdCBpcyB3aXRoaW4gdGhlIHN0YWNrIHNwYWNlIGFuZCBp
cyBhbGlnbmVkIG9uIGFsbCBzeXN0ZW1zIHdlIGNhcmUKLSAgICAvLyBhYm91dC4gIEFzIGZhciBh
cyBJIGtub3cgdGhlcmUgaXMgbm8gQUJJIHdpdGggc3RhY2sgYWxpZ25tZW50IGdyZWF0ZXIKLSAg
ICAvLyB0aGFuIDY0LiAgV2UgYXNzdW1lIHN0YWNrIGFuZCBzdGFja19zaXplIGFscmVhZHkgaGF2
ZSBhbGlnbm1lbnQgb2YKLSAgICAvLyBrTWF4U3RhY2tBbGlnbm1lbnQuCi0gICAgY29uc3Qgc2l6
ZV90IGtNYXhTdGFja0FsaWdubWVudCA9IDY0OwotICAgIHZvaWQqIGNvbnN0IHN0YWNrX3RvcCA9
Ci0gICAgICAgIHN0YXRpY19jYXN0PGNoYXIqPihzdGFjaykgKwotICAgICAgICAgICAgKHN0YWNr
X2dyb3dzX2Rvd24gPyBzdGFja19zaXplIC0ga01heFN0YWNrQWxpZ25tZW50IDogMCk7Ci0gICAg
R1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhY2tfc2l6ZSA+IGtNYXhTdGFja0FsaWdubWVudCAm
JgotICAgICAgICByZWludGVycHJldF9jYXN0PGludHB0cl90PihzdGFja190b3ApICUga01heFN0
YWNrQWxpZ25tZW50ID09IDApOwotCi0gICAgY2hpbGRfcGlkID0gY2xvbmUoJkV4ZWNEZWF0aFRl
c3RDaGlsZE1haW4sIHN0YWNrX3RvcCwgU0lHQ0hMRCwgJmFyZ3MpOwotCi0gICAgR1RFU1RfREVB
VEhfVEVTVF9DSEVDS18obXVubWFwKHN0YWNrLCBzdGFja19zaXplKSAhPSAtMSk7Ci0gIH0KLSMg
ICBlbHNlCi0gIGNvbnN0IGJvb2wgdXNlX2ZvcmsgPSB0cnVlOwotIyAgIGVuZGlmICAvLyBHVEVT
VF9IQVNfQ0xPTkUKLQotICBpZiAodXNlX2ZvcmsgJiYgKGNoaWxkX3BpZCA9IGZvcmsoKSkgPT0g
MCkgewotICAgICAgRXhlY0RlYXRoVGVzdENoaWxkTWFpbigmYXJncyk7Ci0gICAgICBfZXhpdCgw
KTsKLSAgfQotIyAgZW5kaWYgIC8vIEdURVNUX09TX1FOWAotIyAgaWYgR1RFU1RfT1NfTElOVVgK
LSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS19TWVNDQUxMXygKLSAgICAgIHNpZ2FjdGlvbihTSUdQ
Uk9GLCAmc2F2ZWRfc2lncHJvZl9hY3Rpb24sIE5VTEwpKTsKLSMgIGVuZGlmICAvLyBHVEVTVF9P
U19MSU5VWAotCi0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGNoaWxkX3BpZCAhPSAtMSk7Ci0g
IHJldHVybiBjaGlsZF9waWQ7Ci19Ci0KLS8vIFRoZSBBc3N1bWVSb2xlIHByb2Nlc3MgZm9yIGEg
Zm9yay1hbmQtZXhlYyBkZWF0aCB0ZXN0LiAgSXQgcmUtZXhlY3V0ZXMgdGhlCi0vLyBtYWluIHBy
b2dyYW0gZnJvbSB0aGUgYmVnaW5uaW5nLCBzZXR0aW5nIHRoZSAtLWd0ZXN0X2ZpbHRlcgotLy8g
YW5kIC0tZ3Rlc3RfaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QgZmxhZ3MgdG8gY2F1c2Ugb25seSB0
aGUgY3VycmVudAotLy8gZGVhdGggdGVzdCB0byBiZSByZS1ydW4uCi1EZWF0aFRlc3Q6OlRlc3RS
b2xlIEV4ZWNEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7Ci0gIGNvbnN0IFVuaXRUZXN0SW1wbCog
Y29uc3QgaW1wbCA9IEdldFVuaXRUZXN0SW1wbCgpOwotICBjb25zdCBJbnRlcm5hbFJ1bkRlYXRo
VGVzdEZsYWcqIGNvbnN0IGZsYWcgPQotICAgICAgaW1wbC0+aW50ZXJuYWxfcnVuX2RlYXRoX3Rl
c3RfZmxhZygpOwotICBjb25zdCBUZXN0SW5mbyogY29uc3QgaW5mbyA9IGltcGwtPmN1cnJlbnRf
dGVzdF9pbmZvKCk7Ci0gIGNvbnN0IGludCBkZWF0aF90ZXN0X2luZGV4ID0gaW5mby0+cmVzdWx0
KCktPmRlYXRoX3Rlc3RfY291bnQoKTsKLQotICBpZiAoZmxhZyAhPSBOVUxMKSB7Ci0gICAgc2V0
X3dyaXRlX2ZkKGZsYWctPndyaXRlX2ZkKCkpOwotICAgIHJldHVybiBFWEVDVVRFX1RFU1Q7Ci0g
IH0KLQotICBpbnQgcGlwZV9mZFsyXTsKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18ocGlwZShw
aXBlX2ZkKSAhPSAtMSk7Ci0gIC8vIENsZWFyIHRoZSBjbG9zZS1vbi1leGVjIGZsYWcgb24gdGhl
IHdyaXRlIGVuZCBvZiB0aGUgcGlwZSwgbGVzdAotICAvLyBpdCBiZSBjbG9zZWQgd2hlbiB0aGUg
Y2hpbGQgcHJvY2VzcyBkb2VzIGFuIGV4ZWM6Ci0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGZj
bnRsKHBpcGVfZmRbMV0sIEZfU0VURkQsIDApICE9IC0xKTsKLQotICBjb25zdCBzdGQ6OnN0cmlu
ZyBmaWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJF
RklYXyArIGtGaWx0ZXJGbGFnICsgIj0iCi0gICAgICArIGluZm8tPnRlc3RfY2FzZV9uYW1lKCkg
KyAiLiIgKyBpbmZvLT5uYW1lKCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGludGVybmFsX2ZsYWcg
PQotICAgICAgc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKyBrSW50ZXJu
YWxSdW5EZWF0aFRlc3RGbGFnICsgIj0iCi0gICAgICArIGZpbGVfICsgInwiICsgU3RyZWFtYWJs
ZVRvU3RyaW5nKGxpbmVfKSArICJ8IgotICAgICAgKyBTdHJlYW1hYmxlVG9TdHJpbmcoZGVhdGhf
dGVzdF9pbmRleCkgKyAifCIKLSAgICAgICsgU3RyZWFtYWJsZVRvU3RyaW5nKHBpcGVfZmRbMV0p
OwotICBBcmd1bWVudHMgYXJnczsKLSAgYXJncy5BZGRBcmd1bWVudHMoR2V0QXJndnNGb3JEZWF0
aFRlc3RDaGlsZFByb2Nlc3MoKSk7Ci0gIGFyZ3MuQWRkQXJndW1lbnQoZmlsdGVyX2ZsYWcuY19z
dHIoKSk7Ci0gIGFyZ3MuQWRkQXJndW1lbnQoaW50ZXJuYWxfZmxhZy5jX3N0cigpKTsKLQotICBE
ZWF0aFRlc3Q6OnNldF9sYXN0X2RlYXRoX3Rlc3RfbWVzc2FnZSgiIik7Ci0KLSAgQ2FwdHVyZVN0
ZGVycigpOwotICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gTm9FeGVjRGVhdGhUZXN0OjpBc3N1bWVS
b2xlIGZvciB3aHkgdGhlIG5leHQgbGluZQotICAvLyBpcyBuZWNlc3NhcnkuCi0gIEZsdXNoSW5m
b0xvZygpOwotCi0gIGNvbnN0IHBpZF90IGNoaWxkX3BpZCA9IEV4ZWNEZWF0aFRlc3RTcGF3bkNo
aWxkKGFyZ3MuQXJndigpLCBwaXBlX2ZkWzBdKTsKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS19T
WVNDQUxMXyhjbG9zZShwaXBlX2ZkWzFdKSk7Ci0gIHNldF9jaGlsZF9waWQoY2hpbGRfcGlkKTsK
LSAgc2V0X3JlYWRfZmQocGlwZV9mZFswXSk7Ci0gIHNldF9zcGF3bmVkKHRydWUpOwotICByZXR1
cm4gT1ZFUlNFRV9URVNUOwotfQotCi0jIGVuZGlmICAvLyAhR1RFU1RfT1NfV0lORE9XUwotCi0v
LyBDcmVhdGVzIGEgY29uY3JldGUgRGVhdGhUZXN0LWRlcml2ZWQgY2xhc3MgdGhhdCBkZXBlbmRz
IG9uIHRoZQotLy8gLS1ndGVzdF9kZWF0aF90ZXN0X3N0eWxlIGZsYWcsIGFuZCBzZXRzIHRoZSBw
b2ludGVyIHBvaW50ZWQgdG8KLS8vIGJ5IHRoZSAidGVzdCIgYXJndW1lbnQgdG8gaXRzIGFkZHJl
c3MuICBJZiB0aGUgdGVzdCBzaG91bGQgYmUKLS8vIHNraXBwZWQsIHNldHMgdGhhdCBwb2ludGVy
IHRvIE5VTEwuICBSZXR1cm5zIHRydWUsIHVubGVzcyB0aGUKLS8vIGZsYWcgaXMgc2V0IHRvIGFu
IGludmFsaWQgdmFsdWUuCi1ib29sIERlZmF1bHREZWF0aFRlc3RGYWN0b3J5OjpDcmVhdGUoY29u
c3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVhdGhUZXN0KiogdGVzdCkgewotICBVbml0VGVz
dEltcGwqIGNvbnN0IGltcGwgPSBHZXRVbml0VGVzdEltcGwoKTsKLSAgY29uc3QgSW50ZXJuYWxS
dW5EZWF0aFRlc3RGbGFnKiBjb25zdCBmbGFnID0KLSAgICAgIGltcGwtPmludGVybmFsX3J1bl9k
ZWF0aF90ZXN0X2ZsYWcoKTsKLSAgY29uc3QgaW50IGRlYXRoX3Rlc3RfaW5kZXggPSBpbXBsLT5j
dXJyZW50X3Rlc3RfaW5mbygpCi0gICAgICAtPmluY3JlbWVudF9kZWF0aF90ZXN0X2NvdW50KCk7
Ci0KLSAgaWYgKGZsYWcgIT0gTlVMTCkgewotICAgIGlmIChkZWF0aF90ZXN0X2luZGV4ID4gZmxh
Zy0+aW5kZXgoKSkgewotICAgICAgRGVhdGhUZXN0OjpzZXRfbGFzdF9kZWF0aF90ZXN0X21lc3Nh
Z2UoCi0gICAgICAgICAgIkRlYXRoIHRlc3QgY291bnQgKCIgKyBTdHJlYW1hYmxlVG9TdHJpbmco
ZGVhdGhfdGVzdF9pbmRleCkKLSAgICAgICAgICArICIpIHNvbWVob3cgZXhjZWVkZWQgZXhwZWN0
ZWQgbWF4aW11bSAoIgotICAgICAgICAgICsgU3RyZWFtYWJsZVRvU3RyaW5nKGZsYWctPmluZGV4
KCkpICsgIikiKTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIShmbGFn
LT5maWxlKCkgPT0gZmlsZSAmJiBmbGFnLT5saW5lKCkgPT0gbGluZSAmJgotICAgICAgICAgIGZs
YWctPmluZGV4KCkgPT0gZGVhdGhfdGVzdF9pbmRleCkpIHsKLSAgICAgICp0ZXN0ID0gTlVMTDsK
LSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgfQotCi0jIGlmIEdURVNUX09TX1dJTkRPV1MK
LQotICBpZiAoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAidGhyZWFkc2FmZSIgfHwK
LSAgICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0gImZhc3QiKSB7Ci0gICAgKnRl
c3QgPSBuZXcgV2luZG93c0RlYXRoVGVzdChzdGF0ZW1lbnQsIHJlZ2V4LCBmaWxlLCBsaW5lKTsK
LSAgfQotCi0jIGVsc2UKLQotICBpZiAoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAi
dGhyZWFkc2FmZSIpIHsKLSAgICAqdGVzdCA9IG5ldyBFeGVjRGVhdGhUZXN0KHN0YXRlbWVudCwg
cmVnZXgsIGZpbGUsIGxpbmUpOwotICB9IGVsc2UgaWYgKEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9z
dHlsZSkgPT0gImZhc3QiKSB7Ci0gICAgKnRlc3QgPSBuZXcgTm9FeGVjRGVhdGhUZXN0KHN0YXRl
bWVudCwgcmVnZXgpOwotICB9Ci0KLSMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKLQotICBl
bHNlIHsgIC8vIE5PTElOVCAtIHRoaXMgaXMgbW9yZSByZWFkYWJsZSB0aGFuIHVuYmFsYW5jZWQg
YnJhY2tldHMgaW5zaWRlICNpZi4KLSAgICBEZWF0aFRlc3Q6OnNldF9sYXN0X2RlYXRoX3Rlc3Rf
bWVzc2FnZSgKLSAgICAgICAgIlVua25vd24gZGVhdGggdGVzdCBzdHlsZSBcIiIgKyBHVEVTVF9G
TEFHKGRlYXRoX3Rlc3Rfc3R5bGUpCi0gICAgICAgICsgIlwiIGVuY291bnRlcmVkIik7Ci0gICAg
cmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLSMgaWYgR1RFU1RfT1Nf
V0lORE9XUwotLy8gUmVjcmVhdGVzIHRoZSBwaXBlIGFuZCBldmVudCBoYW5kbGVzIGZyb20gdGhl
IHByb3ZpZGVkIHBhcmFtZXRlcnMsCi0vLyBzaWduYWxzIHRoZSBldmVudCwgYW5kIHJldHVybnMg
YSBmaWxlIGRlc2NyaXB0b3Igd3JhcHBlZCBhcm91bmQgdGhlIHBpcGUKLS8vIGhhbmRsZS4gVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gdGhlIGNoaWxkIHByb2Nlc3Mgb25seS4KLXN0YXRpYyBp
bnQgR2V0U3RhdHVzRmlsZURlc2NyaXB0b3IodW5zaWduZWQgaW50IHBhcmVudF9wcm9jZXNzX2lk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgd3JpdGVfaGFuZGxl
X2FzX3NpemVfdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGV2
ZW50X2hhbmRsZV9hc19zaXplX3QpIHsKLSAgQXV0b0hhbmRsZSBwYXJlbnRfcHJvY2Vzc19oYW5k
bGUoOjpPcGVuUHJvY2VzcyhQUk9DRVNTX0RVUF9IQU5ETEUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsICAvLyBOb24taW5oZXJpdGFibGUu
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50
X3Byb2Nlc3NfaWQpKTsKLSAgaWYgKHBhcmVudF9wcm9jZXNzX2hhbmRsZS5HZXQoKSA9PSBJTlZB
TElEX0hBTkRMRV9WQUxVRSkgewotICAgIERlYXRoVGVzdEFib3J0KCJVbmFibGUgdG8gb3BlbiBw
YXJlbnQgcHJvY2VzcyAiICsKLSAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmco
cGFyZW50X3Byb2Nlc3NfaWQpKTsKLSAgfQotCi0gIC8vIFRPRE8odmxhZGxAZ29vZ2xlLmNvbSk6
IFJlcGxhY2UgdGhlIGZvbGxvd2luZyBjaGVjayB3aXRoIGEKLSAgLy8gY29tcGlsZS10aW1lIGFz
c2VydGlvbiB3aGVuIGF2YWlsYWJsZS4KLSAgR1RFU1RfQ0hFQ0tfKHNpemVvZihIQU5ETEUpIDw9
IHNpemVvZihzaXplX3QpKTsKLQotICBjb25zdCBIQU5ETEUgd3JpdGVfaGFuZGxlID0KLSAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8SEFORExFPih3cml0ZV9oYW5kbGVfYXNfc2l6ZV90KTsKLSAgSEFO
RExFIGR1cF93cml0ZV9oYW5kbGU7Ci0KLSAgLy8gVGhlIG5ld2x5IGluaXRpYWxpemVkIGhhbmRs
ZSBpcyBhY2Nlc3NpYmxlIG9ubHkgaW4gdGhlIHBhcmVudAotICAvLyBwcm9jZXNzLiBUbyBvYnRh
aW4gb25lIGFjY2Vzc2libGUgd2l0aGluIHRoZSBjaGlsZCwgd2UgbmVlZCB0byB1c2UKLSAgLy8g
RHVwbGljYXRlSGFuZGxlLgotICBpZiAoITo6RHVwbGljYXRlSGFuZGxlKHBhcmVudF9wcm9jZXNz
X2hhbmRsZS5HZXQoKSwgd3JpdGVfaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgIDo6
R2V0Q3VycmVudFByb2Nlc3MoKSwgJmR1cF93cml0ZV9oYW5kbGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwLCAgICAvLyBSZXF1ZXN0ZWQgcHJpdmlsZWdlcyBpZ25vcmVkIHNpbmNlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEVVBMSUNBVEVfU0FNRV9BQ0NFU1Mg
aXMgdXNlZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwgIC8vIFJlcXVlc3Qgbm9u
LWluaGVyaXRhYmxlIGhhbmRsZXIuCi0gICAgICAgICAgICAgICAgICAgICAgICAgRFVQTElDQVRF
X1NBTUVfQUNDRVNTKSkgewotICAgIERlYXRoVGVzdEFib3J0KCJVbmFibGUgdG8gZHVwbGljYXRl
IHRoZSBwaXBlIGhhbmRsZSAiICsKLSAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJp
bmcod3JpdGVfaGFuZGxlX2FzX3NpemVfdCkgKwotICAgICAgICAgICAgICAgICAgICIgZnJvbSB0
aGUgcGFyZW50IHByb2Nlc3MgIiArCi0gICAgICAgICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3Ry
aW5nKHBhcmVudF9wcm9jZXNzX2lkKSk7Ci0gIH0KLQotICBjb25zdCBIQU5ETEUgZXZlbnRfaGFu
ZGxlID0gcmVpbnRlcnByZXRfY2FzdDxIQU5ETEU+KGV2ZW50X2hhbmRsZV9hc19zaXplX3QpOwot
ICBIQU5ETEUgZHVwX2V2ZW50X2hhbmRsZTsKLQotICBpZiAoITo6RHVwbGljYXRlSGFuZGxlKHBh
cmVudF9wcm9jZXNzX2hhbmRsZS5HZXQoKSwgZXZlbnRfaGFuZGxlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIDo6R2V0Q3VycmVudFByb2Nlc3MoKSwgJmR1cF9ldmVudF9oYW5kbGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwLAotICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNF
LAotICAgICAgICAgICAgICAgICAgICAgICAgIERVUExJQ0FURV9TQU1FX0FDQ0VTUykpIHsKLSAg
ICBEZWF0aFRlc3RBYm9ydCgiVW5hYmxlIHRvIGR1cGxpY2F0ZSB0aGUgZXZlbnQgaGFuZGxlICIg
KwotICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyhldmVudF9oYW5kbGVfYXNf
c2l6ZV90KSArCi0gICAgICAgICAgICAgICAgICAgIiBmcm9tIHRoZSBwYXJlbnQgcHJvY2VzcyAi
ICsKLSAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcocGFyZW50X3Byb2Nlc3Nf
aWQpKTsKLSAgfQotCi0gIGNvbnN0IGludCB3cml0ZV9mZCA9Ci0gICAgICA6Ol9vcGVuX29zZmhh
bmRsZShyZWludGVycHJldF9jYXN0PGludHB0cl90PihkdXBfd3JpdGVfaGFuZGxlKSwgT19BUFBF
TkQpOwotICBpZiAod3JpdGVfZmQgPT0gLTEpIHsKLSAgICBEZWF0aFRlc3RBYm9ydCgiVW5hYmxl
IHRvIGNvbnZlcnQgcGlwZSBoYW5kbGUgIiArCi0gICAgICAgICAgICAgICAgICAgU3RyZWFtYWJs
ZVRvU3RyaW5nKHdyaXRlX2hhbmRsZV9hc19zaXplX3QpICsKLSAgICAgICAgICAgICAgICAgICAi
IHRvIGEgZmlsZSBkZXNjcmlwdG9yIik7Ci0gIH0KLQotICAvLyBTaWduYWxzIHRoZSBwYXJlbnQg
dGhhdCB0aGUgd3JpdGUgZW5kIG9mIHRoZSBwaXBlIGhhcyBiZWVuIGFjcXVpcmVkCi0gIC8vIHNv
IHRoZSBwYXJlbnQgY2FuIHJlbGVhc2UgaXRzIG93biB3cml0ZSBlbmQuCi0gIDo6U2V0RXZlbnQo
ZHVwX2V2ZW50X2hhbmRsZSk7Ci0KLSAgcmV0dXJuIHdyaXRlX2ZkOwotfQotIyBlbmRpZiAgLy8g
R1RFU1RfT1NfV0lORE9XUwotCi0vLyBSZXR1cm5zIGEgbmV3bHkgY3JlYXRlZCBJbnRlcm5hbFJ1
bkRlYXRoVGVzdEZsYWcgb2JqZWN0IHdpdGggZmllbGRzCi0vLyBpbml0aWFsaXplZCBmcm9tIHRo
ZSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSBmbGFnIGlmCi0vLyB0aGUgZmxh
ZyBpcyBzcGVjaWZpZWQ7IG90aGVyd2lzZSByZXR1cm5zIE5VTEwuCi1JbnRlcm5hbFJ1bkRlYXRo
VGVzdEZsYWcqIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCkgewotICBpZiAoR1RFU1Rf
RkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgPT0gIiIpIHJldHVybiBOVUxMOwotCi0gIC8v
IEdURVNUX0hBU19ERUFUSF9URVNUIGltcGxpZXMgdGhhdCB3ZSBoYXZlIDo6c3RkOjpzdHJpbmcs
IHNvIHdlCi0gIC8vIGNhbiB1c2UgaXQgaGVyZS4KLSAgaW50IGxpbmUgPSAtMTsKLSAgaW50IGlu
ZGV4ID0gLTE7Ci0gIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IGZpZWxkczsKLSAgU3Bs
aXRTdHJpbmcoR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkuY19zdHIoKSwgJ3wn
LCAmZmllbGRzKTsKLSAgaW50IHdyaXRlX2ZkID0gLTE7Ci0KLSMgaWYgR1RFU1RfT1NfV0lORE9X
UwotCi0gIHVuc2lnbmVkIGludCBwYXJlbnRfcHJvY2Vzc19pZCA9IDA7Ci0gIHNpemVfdCB3cml0
ZV9oYW5kbGVfYXNfc2l6ZV90ID0gMDsKLSAgc2l6ZV90IGV2ZW50X2hhbmRsZV9hc19zaXplX3Qg
PSAwOwotCi0gIGlmIChmaWVsZHMuc2l6ZSgpICE9IDYKLSAgICAgIHx8ICFQYXJzZU5hdHVyYWxO
dW1iZXIoZmllbGRzWzFdLCAmbGluZSkKLSAgICAgIHx8ICFQYXJzZU5hdHVyYWxOdW1iZXIoZmll
bGRzWzJdLCAmaW5kZXgpCi0gICAgICB8fCAhUGFyc2VOYXR1cmFsTnVtYmVyKGZpZWxkc1szXSwg
JnBhcmVudF9wcm9jZXNzX2lkKQotICAgICAgfHwgIVBhcnNlTmF0dXJhbE51bWJlcihmaWVsZHNb
NF0sICZ3cml0ZV9oYW5kbGVfYXNfc2l6ZV90KQotICAgICAgfHwgIVBhcnNlTmF0dXJhbE51bWJl
cihmaWVsZHNbNV0sICZldmVudF9oYW5kbGVfYXNfc2l6ZV90KSkgewotICAgIERlYXRoVGVzdEFi
b3J0KCJCYWQgLS1ndGVzdF9pbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCBmbGFnOiAiICsKLSAgICAg
ICAgICAgICAgICAgICBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSk7Ci0gIH0K
LSAgd3JpdGVfZmQgPSBHZXRTdGF0dXNGaWxlRGVzY3JpcHRvcihwYXJlbnRfcHJvY2Vzc19pZCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZV9oYW5kbGVfYXNfc2l6
ZV90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50X2hhbmRsZV9h
c19zaXplX3QpOwotIyBlbHNlCi0KLSAgaWYgKGZpZWxkcy5zaXplKCkgIT0gNAotICAgICAgfHwg
IVBhcnNlTmF0dXJhbE51bWJlcihmaWVsZHNbMV0sICZsaW5lKQotICAgICAgfHwgIVBhcnNlTmF0
dXJhbE51bWJlcihmaWVsZHNbMl0sICZpbmRleCkKLSAgICAgIHx8ICFQYXJzZU5hdHVyYWxOdW1i
ZXIoZmllbGRzWzNdLCAmd3JpdGVfZmQpKSB7Ci0gICAgRGVhdGhUZXN0QWJvcnQoIkJhZCAtLWd0
ZXN0X2ludGVybmFsX3J1bl9kZWF0aF90ZXN0IGZsYWc6ICIKLSAgICAgICAgKyBHVEVTVF9GTEFH
KGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSk7Ci0gIH0KLQotIyBlbmRpZiAgLy8gR1RFU1RfT1Nf
V0lORE9XUwotCi0gIHJldHVybiBuZXcgSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKGZpZWxkc1sw
XSwgbGluZSwgaW5kZXgsIHdyaXRlX2ZkKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFs
Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotfSAgLy8gbmFtZXNwYWNlIHRl
c3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVzdC1m
aWxlcGF0aC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVzdC1maWxlcGF0
aC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI5MmRjMTE5NTdlYWEyMThiMzU4
ZjFmNzYxY2E0YTVjYjJmYWVhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QtZmlsZXBhdGgu
Y2MKKysrIC9kZXYvbnVsbApAQCAtMSwzODcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDgsIEdv
b2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0v
LyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0v
LyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcnM6IGtlaXRoLnJheUBnbWFpbC5j
b20gKEtlaXRoIFJheSkKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LW1lc3NhZ2UuaCIKLSNpbmNs
dWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oIgotI2luY2x1ZGUgImd0ZXN0L2lu
dGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0jaWYgR1RFU1Rf
T1NfV0lORE9XU19NT0JJTEUKLSMgaW5jbHVkZSA8d2luZG93cy5oPgotI2VsaWYgR1RFU1RfT1Nf
V0lORE9XUwotIyBpbmNsdWRlIDxkaXJlY3QuaD4KLSMgaW5jbHVkZSA8aW8uaD4KLSNlbGlmIEdU
RVNUX09TX1NZTUJJQU4KLS8vIFN5bWJpYW4gT3BlbkMgaGFzIFBBVEhfTUFYIGluIHN5cy9zeXNs
aW1pdHMuaAotIyBpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+Ci0jZWxzZQotIyBpbmNsdWRlIDxs
aW1pdHMuaD4KLSMgaW5jbHVkZSA8Y2xpbWl0cz4gIC8vIFNvbWUgTGludXggZGlzdHJpYnV0aW9u
cyBkZWZpbmUgUEFUSF9NQVggaGVyZS4KLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJ
TEUKLQotI2lmIEdURVNUX09TX1dJTkRPV1MKLSMgZGVmaW5lIEdURVNUX1BBVEhfTUFYXyBfTUFY
X1BBVEgKLSNlbGlmIGRlZmluZWQoUEFUSF9NQVgpCi0jIGRlZmluZSBHVEVTVF9QQVRIX01BWF8g
UEFUSF9NQVgKLSNlbGlmIGRlZmluZWQoX1hPUEVOX1BBVEhfTUFYKQotIyBkZWZpbmUgR1RFU1Rf
UEFUSF9NQVhfIF9YT1BFTl9QQVRIX01BWAotI2Vsc2UKLSMgZGVmaW5lIEdURVNUX1BBVEhfTUFY
XyBfUE9TSVhfUEFUSF9NQVgKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotCi0jaW5jbHVk
ZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgiCi0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsK
LW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0vLyBPbiBXaW5k
b3dzLCAnXFwnIGlzIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciwgYnV0IG1hbnkgdG9vbHMg
YW5kIHRoZQotLy8gV2luZG93cyBBUEkgYWxzbyBhY2NlcHQgJy8nIGFzIGFuIGFsdGVybmF0ZSBw
YXRoIHNlcGFyYXRvci4gVW5sZXNzIG90aGVyd2lzZQotLy8gbm90ZWQsIGEgZmlsZSBwYXRoIGNh
biBjb250YWluIGVpdGhlciBraW5kIG9mIHBhdGggc2VwYXJhdG9ycywgb3IgYSBtaXh0dXJlCi0v
LyBvZiB0aGVtLgotY29uc3QgY2hhciBrUGF0aFNlcGFyYXRvciA9ICdcXCc7Ci1jb25zdCBjaGFy
IGtBbHRlcm5hdGVQYXRoU2VwYXJhdG9yID0gJy8nOwotY29uc3QgY2hhciBrQWx0ZXJuYXRlUGF0
aFNlcGFyYXRvclN0cmluZ1tdID0gIi8iOwotIyBpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQot
Ly8gV2luZG93cyBDRSBkb2Vzbid0IGhhdmUgYSBjdXJyZW50IGRpcmVjdG9yeS4gWW91IHNob3Vs
ZCBub3QgdXNlCi0vLyB0aGUgY3VycmVudCBkaXJlY3RvcnkgaW4gdGVzdHMgb24gV2luZG93cyBD
RSwgYnV0IHRoaXMgYXQgbGVhc3QKLS8vIHByb3ZpZGVzIGEgcmVhc29uYWJsZSBmYWxsYmFjay4K
LWNvbnN0IGNoYXIga0N1cnJlbnREaXJlY3RvcnlTdHJpbmdbXSA9ICJcXCI7Ci0vLyBXaW5kb3dz
IENFIGRvZXNuJ3QgZGVmaW5lIElOVkFMSURfRklMRV9BVFRSSUJVVEVTCi1jb25zdCBEV09SRCBr
SW52YWxpZEZpbGVBdHRyaWJ1dGVzID0gMHhmZmZmZmZmZjsKLSMgZWxzZQotY29uc3QgY2hhciBr
Q3VycmVudERpcmVjdG9yeVN0cmluZ1tdID0gIi5cXCI7Ci0jIGVuZGlmICAvLyBHVEVTVF9PU19X
SU5ET1dTX01PQklMRQotI2Vsc2UKLWNvbnN0IGNoYXIga1BhdGhTZXBhcmF0b3IgPSAnLyc7Ci1j
b25zdCBjaGFyIGtDdXJyZW50RGlyZWN0b3J5U3RyaW5nW10gPSAiLi8iOwotI2VuZGlmICAvLyBH
VEVTVF9PU19XSU5ET1dTCi0KLS8vIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gY2hhcmFjdGVy
IGlzIGEgdmFsaWQgcGF0aCBzZXBhcmF0b3IuCi1zdGF0aWMgYm9vbCBJc1BhdGhTZXBhcmF0b3Io
Y2hhciBjKSB7Ci0jaWYgR1RFU1RfSEFTX0FMVF9QQVRIX1NFUF8KLSAgcmV0dXJuIChjID09IGtQ
YXRoU2VwYXJhdG9yKSB8fCAoYyA9PSBrQWx0ZXJuYXRlUGF0aFNlcGFyYXRvcik7Ci0jZWxzZQot
ICByZXR1cm4gYyA9PSBrUGF0aFNlcGFyYXRvcjsKLSNlbmRpZgotfQotCi0vLyBSZXR1cm5zIHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LCBvciAiIiBpZiB1bnN1Y2Nlc3NmdWwuCi1GaWxl
UGF0aCBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpIHsKLSNpZiBHVEVTVF9PU19XSU5ET1dTX01P
QklMRSB8fCBHVEVTVF9PU19XSU5ET1dTX1BIT05FIHx8IEdURVNUX09TX1dJTkRPV1NfUlQKLSAg
Ly8gV2luZG93cyBDRSBkb2Vzbid0IGhhdmUgYSBjdXJyZW50IGRpcmVjdG9yeSwgc28gd2UganVz
dCByZXR1cm4KLSAgLy8gc29tZXRoaW5nIHJlYXNvbmFibGUuCi0gIHJldHVybiBGaWxlUGF0aChr
Q3VycmVudERpcmVjdG9yeVN0cmluZyk7Ci0jZWxpZiBHVEVTVF9PU19XSU5ET1dTCi0gIGNoYXIg
Y3dkW0dURVNUX1BBVEhfTUFYXyArIDFdID0geyAnXDAnIH07Ci0gIHJldHVybiBGaWxlUGF0aChf
Z2V0Y3dkKGN3ZCwgc2l6ZW9mKGN3ZCkpID09IE5VTEwgPyAiIiA6IGN3ZCk7Ci0jZWxzZQotICBj
aGFyIGN3ZFtHVEVTVF9QQVRIX01BWF8gKyAxXSA9IHsgJ1wwJyB9OwotICBjaGFyKiByZXN1bHQg
PSBnZXRjd2QoY3dkLCBzaXplb2YoY3dkKSk7Ci0jIGlmIEdURVNUX09TX05BQ0wKLSAgLy8gZ2V0
Y3dkIHdpbGwgbGlrZWx5IGZhaWwgaW4gTmFDbCBkdWUgdG8gdGhlIHNhbmRib3gsIHNvIHJldHVy
biBzb21ldGhpbmcKLSAgLy8gcmVhc29uYWJsZS4gVGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQg
YSBzaGltIGltcGxlbWVudGF0aW9uIGZvciBnZXRjd2QsCi0gIC8vIGhvd2V2ZXIsIHNvIGZhbGxi
YWNrIG9ubHkgd2hlbiBmYWlsdXJlIGlzIGRldGVjdGVkLgotICByZXR1cm4gRmlsZVBhdGgocmVz
dWx0ID09IE5VTEwgPyBrQ3VycmVudERpcmVjdG9yeVN0cmluZyA6IGN3ZCk7Ci0jIGVuZGlmICAv
LyBHVEVTVF9PU19OQUNMCi0gIHJldHVybiBGaWxlUGF0aChyZXN1bHQgPT0gTlVMTCA/ICIiIDog
Y3dkKTsKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLX0KLQotLy8gUmV0dXJu
cyBhIGNvcHkgb2YgdGhlIEZpbGVQYXRoIHdpdGggdGhlIGNhc2UtaW5zZW5zaXRpdmUgZXh0ZW5z
aW9uIHJlbW92ZWQuCi0vLyBFeGFtcGxlOiBGaWxlUGF0aCgiZGlyL2ZpbGUuZXhlIikuUmVtb3Zl
RXh0ZW5zaW9uKCJFWEUiKSByZXR1cm5zCi0vLyBGaWxlUGF0aCgiZGlyL2ZpbGUiKS4gSWYgYSBj
YXNlLWluc2Vuc2l0aXZlIGV4dGVuc2lvbiBpcyBub3QKLS8vIGZvdW5kLCByZXR1cm5zIGEgY29w
eSBvZiB0aGUgb3JpZ2luYWwgRmlsZVBhdGguCi1GaWxlUGF0aCBGaWxlUGF0aDo6UmVtb3ZlRXh0
ZW5zaW9uKGNvbnN0IGNoYXIqIGV4dGVuc2lvbikgY29uc3QgewotICBjb25zdCBzdGQ6OnN0cmlu
ZyBkb3RfZXh0ZW5zaW9uID0gc3RkOjpzdHJpbmcoIi4iKSArIGV4dGVuc2lvbjsKLSAgaWYgKFN0
cmluZzo6RW5kc1dpdGhDYXNlSW5zZW5zaXRpdmUocGF0aG5hbWVfLCBkb3RfZXh0ZW5zaW9uKSkg
ewotICAgIHJldHVybiBGaWxlUGF0aChwYXRobmFtZV8uc3Vic3RyKAotICAgICAgICAwLCBwYXRo
bmFtZV8ubGVuZ3RoKCkgLSBkb3RfZXh0ZW5zaW9uLmxlbmd0aCgpKSk7Ci0gIH0KLSAgcmV0dXJu
ICp0aGlzOwotfQotCi0vLyBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbGFzdCBvY2N1cmVuY2Ug
b2YgYSB2YWxpZCBwYXRoIHNlcGFyYXRvciBpbgotLy8gdGhlIEZpbGVQYXRoLiBPbiBXaW5kb3dz
LCBmb3IgZXhhbXBsZSwgYm90aCAnLycgYW5kICdcJyBhcmUgdmFsaWQgcGF0aAotLy8gc2VwYXJh
dG9ycy4gUmV0dXJucyBOVUxMIGlmIG5vIHBhdGggc2VwYXJhdG9yIHdhcyBmb3VuZC4KLWNvbnN0
IGNoYXIqIEZpbGVQYXRoOjpGaW5kTGFzdFBhdGhTZXBhcmF0b3IoKSBjb25zdCB7Ci0gIGNvbnN0
IGNoYXIqIGNvbnN0IGxhc3Rfc2VwID0gc3RycmNocihjX3N0cigpLCBrUGF0aFNlcGFyYXRvcik7
Ci0jaWYgR1RFU1RfSEFTX0FMVF9QQVRIX1NFUF8KLSAgY29uc3QgY2hhciogY29uc3QgbGFzdF9h
bHRfc2VwID0gc3RycmNocihjX3N0cigpLCBrQWx0ZXJuYXRlUGF0aFNlcGFyYXRvcik7Ci0gIC8v
IENvbXBhcmluZyB0d28gcG9pbnRlcnMgb2Ygd2hpY2ggb25seSBvbmUgaXMgTlVMTCBpcyB1bmRl
ZmluZWQuCi0gIGlmIChsYXN0X2FsdF9zZXAgIT0gTlVMTCAmJgotICAgICAgKGxhc3Rfc2VwID09
IE5VTEwgfHwgbGFzdF9hbHRfc2VwID4gbGFzdF9zZXApKSB7Ci0gICAgcmV0dXJuIGxhc3RfYWx0
X3NlcDsKLSAgfQotI2VuZGlmCi0gIHJldHVybiBsYXN0X3NlcDsKLX0KLQotLy8gUmV0dXJucyBh
IGNvcHkgb2YgdGhlIEZpbGVQYXRoIHdpdGggdGhlIGRpcmVjdG9yeSBwYXJ0IHJlbW92ZWQuCi0v
LyBFeGFtcGxlOiBGaWxlUGF0aCgicGF0aC90by9maWxlIikuUmVtb3ZlRGlyZWN0b3J5TmFtZSgp
IHJldHVybnMKLS8vIEZpbGVQYXRoKCJmaWxlIikuIElmIHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBw
YXJ0ICgianVzdF9hX2ZpbGUiKSwgaXQgcmV0dXJucwotLy8gdGhlIEZpbGVQYXRoIHVubW9kaWZp
ZWQuIElmIHRoZXJlIGlzIG5vIGZpbGUgcGFydCAoImp1c3RfYV9kaXIvIikgaXQKLS8vIHJldHVy
bnMgYW4gZW1wdHkgRmlsZVBhdGggKCIiKS4KLS8vIE9uIFdpbmRvd3MgcGxhdGZvcm0sICdcJyBp
cyB0aGUgcGF0aCBzZXBhcmF0b3IsIG90aGVyd2lzZSBpdCBpcyAnLycuCi1GaWxlUGF0aCBGaWxl
UGF0aDo6UmVtb3ZlRGlyZWN0b3J5TmFtZSgpIGNvbnN0IHsKLSAgY29uc3QgY2hhciogY29uc3Qg
bGFzdF9zZXAgPSBGaW5kTGFzdFBhdGhTZXBhcmF0b3IoKTsKLSAgcmV0dXJuIGxhc3Rfc2VwID8g
RmlsZVBhdGgobGFzdF9zZXAgKyAxKSA6ICp0aGlzOwotfQotCi0vLyBSZW1vdmVGaWxlTmFtZSBy
ZXR1cm5zIHRoZSBkaXJlY3RvcnkgcGF0aCB3aXRoIHRoZSBmaWxlbmFtZSByZW1vdmVkLgotLy8g
RXhhbXBsZTogRmlsZVBhdGgoInBhdGgvdG8vZmlsZSIpLlJlbW92ZUZpbGVOYW1lKCkgcmV0dXJu
cyAicGF0aC90by8iLgotLy8gSWYgdGhlIEZpbGVQYXRoIGlzICJhX2ZpbGUiIG9yICIvYV9maWxl
IiwgUmVtb3ZlRmlsZU5hbWUgcmV0dXJucwotLy8gRmlsZVBhdGgoIi4vIikgb3IsIG9uIFdpbmRv
d3MsIEZpbGVQYXRoKCIuXFwiKS4gSWYgdGhlIGZpbGVwYXRoIGRvZXMKLS8vIG5vdCBoYXZlIGEg
ZmlsZSwgbGlrZSAianVzdC9hL2Rpci8iLCBpdCByZXR1cm5zIHRoZSBGaWxlUGF0aCB1bm1vZGlm
aWVkLgotLy8gT24gV2luZG93cyBwbGF0Zm9ybSwgJ1wnIGlzIHRoZSBwYXRoIHNlcGFyYXRvciwg
b3RoZXJ3aXNlIGl0IGlzICcvJy4KLUZpbGVQYXRoIEZpbGVQYXRoOjpSZW1vdmVGaWxlTmFtZSgp
IGNvbnN0IHsKLSAgY29uc3QgY2hhciogY29uc3QgbGFzdF9zZXAgPSBGaW5kTGFzdFBhdGhTZXBh
cmF0b3IoKTsKLSAgc3RkOjpzdHJpbmcgZGlyOwotICBpZiAobGFzdF9zZXApIHsKLSAgICBkaXIg
PSBzdGQ6OnN0cmluZyhjX3N0cigpLCBsYXN0X3NlcCArIDEgLSBjX3N0cigpKTsKLSAgfSBlbHNl
IHsKLSAgICBkaXIgPSBrQ3VycmVudERpcmVjdG9yeVN0cmluZzsKLSAgfQotICByZXR1cm4gRmls
ZVBhdGgoZGlyKTsKLX0KLQotLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgbmFtaW5nIGZpbGVzIGlu
IGEgZGlyZWN0b3J5IGZvciB4bWwgb3V0cHV0LgotCi0vLyBHaXZlbiBkaXJlY3RvcnkgPSAiZGly
IiwgYmFzZV9uYW1lID0gInRlc3QiLCBudW1iZXIgPSAwLAotLy8gZXh0ZW5zaW9uID0gInhtbCIs
IHJldHVybnMgImRpci90ZXN0LnhtbCIuIElmIG51bWJlciBpcyBncmVhdGVyCi0vLyB0aGFuIHpl
cm8gKGUuZy4sIDEyKSwgcmV0dXJucyAiZGlyL3Rlc3RfMTIueG1sIi4KLS8vIE9uIFdpbmRvd3Mg
cGxhdGZvcm0sIHVzZXMgXCBhcyB0aGUgc2VwYXJhdG9yIHJhdGhlciB0aGFuIC8uCi1GaWxlUGF0
aCBGaWxlUGF0aDo6TWFrZUZpbGVOYW1lKGNvbnN0IEZpbGVQYXRoJiBkaXJlY3RvcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZpbGVQYXRoJiBiYXNlX25hbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1iZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikgewotICBzdGQ6OnN0cmlu
ZyBmaWxlOwotICBpZiAobnVtYmVyID09IDApIHsKLSAgICBmaWxlID0gYmFzZV9uYW1lLnN0cmlu
ZygpICsgIi4iICsgZXh0ZW5zaW9uOwotICB9IGVsc2UgewotICAgIGZpbGUgPSBiYXNlX25hbWUu
c3RyaW5nKCkgKyAiXyIgKyBTdHJlYW1hYmxlVG9TdHJpbmcobnVtYmVyKQotICAgICAgICArICIu
IiArIGV4dGVuc2lvbjsKLSAgfQotICByZXR1cm4gQ29uY2F0UGF0aHMoZGlyZWN0b3J5LCBGaWxl
UGF0aChmaWxlKSk7Ci19Ci0KLS8vIEdpdmVuIGRpcmVjdG9yeSA9ICJkaXIiLCByZWxhdGl2ZV9w
YXRoID0gInRlc3QueG1sIiwgcmV0dXJucyAiZGlyL3Rlc3QueG1sIi4KLS8vIE9uIFdpbmRvd3Ms
IHVzZXMgXCBhcyB0aGUgc2VwYXJhdG9yIHJhdGhlciB0aGFuIC8uCi1GaWxlUGF0aCBGaWxlUGF0
aDo6Q29uY2F0UGF0aHMoY29uc3QgRmlsZVBhdGgmIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBGaWxlUGF0aCYgcmVsYXRpdmVfcGF0aCkgewotICBpZiAo
ZGlyZWN0b3J5LklzRW1wdHkoKSkKLSAgICByZXR1cm4gcmVsYXRpdmVfcGF0aDsKLSAgY29uc3Qg
RmlsZVBhdGggZGlyKGRpcmVjdG9yeS5SZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKSk7Ci0g
IHJldHVybiBGaWxlUGF0aChkaXIuc3RyaW5nKCkgKyBrUGF0aFNlcGFyYXRvciArIHJlbGF0aXZl
X3BhdGguc3RyaW5nKCkpOwotfQotCi0vLyBSZXR1cm5zIHRydWUgaWYgcGF0aG5hbWUgZGVzY3Jp
YmVzIHNvbWV0aGluZyBmaW5kYWJsZSBpbiB0aGUgZmlsZS1zeXN0ZW0sCi0vLyBlaXRoZXIgYSBm
aWxlLCBkaXJlY3RvcnksIG9yIHdoYXRldmVyLgotYm9vbCBGaWxlUGF0aDo6RmlsZU9yRGlyZWN0
b3J5RXhpc3RzKCkgY29uc3QgewotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0gIExQQ1dT
VFIgdW5pY29kZSA9IFN0cmluZzo6QW5zaVRvVXRmMTYocGF0aG5hbWVfLmNfc3RyKCkpOwotICBj
b25zdCBEV09SRCBhdHRyaWJ1dGVzID0gR2V0RmlsZUF0dHJpYnV0ZXModW5pY29kZSk7Ci0gIGRl
bGV0ZSBbXSB1bmljb2RlOwotICByZXR1cm4gYXR0cmlidXRlcyAhPSBrSW52YWxpZEZpbGVBdHRy
aWJ1dGVzOwotI2Vsc2UKLSAgcG9zaXg6OlN0YXRTdHJ1Y3QgZmlsZV9zdGF0OwotICByZXR1cm4g
cG9zaXg6OlN0YXQocGF0aG5hbWVfLmNfc3RyKCksICZmaWxlX3N0YXQpID09IDA7Ci0jZW5kaWYg
IC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi19Ci0KLS8vIFJldHVybnMgdHJ1ZSBpZiBwYXRo
bmFtZSBkZXNjcmliZXMgYSBkaXJlY3RvcnkgaW4gdGhlIGZpbGUtc3lzdGVtCi0vLyB0aGF0IGV4
aXN0cy4KLWJvb2wgRmlsZVBhdGg6OkRpcmVjdG9yeUV4aXN0cygpIGNvbnN0IHsKLSAgYm9vbCBy
ZXN1bHQgPSBmYWxzZTsKLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0gIC8vIERvbid0IHN0cmlwIG9m
ZiB0cmFpbGluZyBzZXBhcmF0b3IgaWYgcGF0aCBpcyBhIHJvb3QgZGlyZWN0b3J5IG9uCi0gIC8v
IFdpbmRvd3MgKGxpa2UgIkM6XFwiKS4KLSAgY29uc3QgRmlsZVBhdGgmIHBhdGgoSXNSb290RGly
ZWN0b3J5KCkgPyAqdGhpcyA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9yKCkpOwotI2Vsc2UKLSAgY29uc3QgRmls
ZVBhdGgmIHBhdGgoKnRoaXMpOwotI2VuZGlmCi0KLSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklM
RQotICBMUENXU1RSIHVuaWNvZGUgPSBTdHJpbmc6OkFuc2lUb1V0ZjE2KHBhdGguY19zdHIoKSk7
Ci0gIGNvbnN0IERXT1JEIGF0dHJpYnV0ZXMgPSBHZXRGaWxlQXR0cmlidXRlcyh1bmljb2RlKTsK
LSAgZGVsZXRlIFtdIHVuaWNvZGU7Ci0gIGlmICgoYXR0cmlidXRlcyAhPSBrSW52YWxpZEZpbGVB
dHRyaWJ1dGVzKSAmJgotICAgICAgKGF0dHJpYnV0ZXMgJiBGSUxFX0FUVFJJQlVURV9ESVJFQ1RP
UlkpKSB7Ci0gICAgcmVzdWx0ID0gdHJ1ZTsKLSAgfQotI2Vsc2UKLSAgcG9zaXg6OlN0YXRTdHJ1
Y3QgZmlsZV9zdGF0OwotICByZXN1bHQgPSBwb3NpeDo6U3RhdChwYXRoLmNfc3RyKCksICZmaWxl
X3N0YXQpID09IDAgJiYKLSAgICAgIHBvc2l4OjpJc0RpcihmaWxlX3N0YXQpOwotI2VuZGlmICAv
LyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQotCi0gIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8vIFJl
dHVybnMgdHJ1ZSBpZiBwYXRobmFtZSBkZXNjcmliZXMgYSByb290IGRpcmVjdG9yeS4gKFdpbmRv
d3MgaGFzIG9uZQotLy8gcm9vdCBkaXJlY3RvcnkgcGVyIGRpc2sgZHJpdmUuKQotYm9vbCBGaWxl
UGF0aDo6SXNSb290RGlyZWN0b3J5KCkgY29uc3QgewotI2lmIEdURVNUX09TX1dJTkRPV1MKLSAg
Ly8gVE9ETyh3YW5AZ29vZ2xlLmNvbSk6IG9uIFdpbmRvd3MgYSBuZXR3b3JrIHNoYXJlIGxpa2UK
LSAgLy8gXFxzZXJ2ZXJcc2hhcmUgY2FuIGJlIGEgcm9vdCBkaXJlY3RvcnksIGFsdGhvdWdoIGl0
IGNhbm5vdCBiZSB0aGUKLSAgLy8gY3VycmVudCBkaXJlY3RvcnkuICBIYW5kbGUgdGhpcyBwcm9w
ZXJseS4KLSAgcmV0dXJuIHBhdGhuYW1lXy5sZW5ndGgoKSA9PSAzICYmIElzQWJzb2x1dGVQYXRo
KCk7Ci0jZWxzZQotICByZXR1cm4gcGF0aG5hbWVfLmxlbmd0aCgpID09IDEgJiYgSXNQYXRoU2Vw
YXJhdG9yKHBhdGhuYW1lXy5jX3N0cigpWzBdKTsKLSNlbmRpZgotfQotCi0vLyBSZXR1cm5zIHRy
dWUgaWYgcGF0aG5hbWUgZGVzY3JpYmVzIGFuIGFic29sdXRlIHBhdGguCi1ib29sIEZpbGVQYXRo
OjpJc0Fic29sdXRlUGF0aCgpIGNvbnN0IHsKLSAgY29uc3QgY2hhciogY29uc3QgbmFtZSA9IHBh
dGhuYW1lXy5jX3N0cigpOwotI2lmIEdURVNUX09TX1dJTkRPV1MKLSAgcmV0dXJuIHBhdGhuYW1l
Xy5sZW5ndGgoKSA+PSAzICYmCi0gICAgICgobmFtZVswXSA+PSAnYScgJiYgbmFtZVswXSA8PSAn
eicpIHx8Ci0gICAgICAobmFtZVswXSA+PSAnQScgJiYgbmFtZVswXSA8PSAnWicpKSAmJgotICAg
ICBuYW1lWzFdID09ICc6JyAmJgotICAgICBJc1BhdGhTZXBhcmF0b3IobmFtZVsyXSk7Ci0jZWxz
ZQotICByZXR1cm4gSXNQYXRoU2VwYXJhdG9yKG5hbWVbMF0pOwotI2VuZGlmCi19Ci0KLS8vIFJl
dHVybnMgYSBwYXRobmFtZSBmb3IgYSBmaWxlIHRoYXQgZG9lcyBub3QgY3VycmVudGx5IGV4aXN0
LiBUaGUgcGF0aG5hbWUKLS8vIHdpbGwgYmUgZGlyZWN0b3J5L2Jhc2VfbmFtZS5leHRlbnNpb24g
b3IKLS8vIGRpcmVjdG9yeS9iYXNlX25hbWVfPG51bWJlcj4uZXh0ZW5zaW9uIGlmIGRpcmVjdG9y
eS9iYXNlX25hbWUuZXh0ZW5zaW9uCi0vLyBhbHJlYWR5IGV4aXN0cy4gVGhlIG51bWJlciB3aWxs
IGJlIGluY3JlbWVudGVkIHVudGlsIGEgcGF0aG5hbWUgaXMgZm91bmQKLS8vIHRoYXQgZG9lcyBu
b3QgYWxyZWFkeSBleGlzdC4KLS8vIEV4YW1wbGVzOiAnZGlyL2Zvb190ZXN0LnhtbCcgb3IgJ2Rp
ci9mb29fdGVzdF8xLnhtbCcuCi0vLyBUaGVyZSBjb3VsZCBiZSBhIHJhY2UgY29uZGl0aW9uIGlm
IHR3byBvciBtb3JlIHByb2Nlc3NlcyBhcmUgY2FsbGluZyB0aGlzCi0vLyBmdW5jdGlvbiBhdCB0
aGUgc2FtZSB0aW1lIC0tIHRoZXkgY291bGQgYm90aCBwaWNrIHRoZSBzYW1lIGZpbGVuYW1lLgot
RmlsZVBhdGggRmlsZVBhdGg6OkdlbmVyYXRlVW5pcXVlRmlsZU5hbWUoY29uc3QgRmlsZVBhdGgm
IGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IEZpbGVQYXRoJiBiYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiBleHRlbnNpb24pIHsKLSAgRmlsZVBhdGggZnVsbF9wYXRo
bmFtZTsKLSAgaW50IG51bWJlciA9IDA7Ci0gIGRvIHsKLSAgICBmdWxsX3BhdGhuYW1lLlNldChN
YWtlRmlsZU5hbWUoZGlyZWN0b3J5LCBiYXNlX25hbWUsIG51bWJlcisrLCBleHRlbnNpb24pKTsK
LSAgfSB3aGlsZSAoZnVsbF9wYXRobmFtZS5GaWxlT3JEaXJlY3RvcnlFeGlzdHMoKSk7Ci0gIHJl
dHVybiBmdWxsX3BhdGhuYW1lOwotfQotCi0vLyBSZXR1cm5zIHRydWUgaWYgRmlsZVBhdGggZW5k
cyB3aXRoIGEgcGF0aCBzZXBhcmF0b3IsIHdoaWNoIGluZGljYXRlcyB0aGF0Ci0vLyBpdCBpcyBp
bnRlbmRlZCB0byByZXByZXNlbnQgYSBkaXJlY3RvcnkuIFJldHVybnMgZmFsc2Ugb3RoZXJ3aXNl
LgotLy8gVGhpcyBkb2VzIE5PVCBjaGVjayB0aGF0IGEgZGlyZWN0b3J5IChvciBmaWxlKSBhY3R1
YWxseSBleGlzdHMuCi1ib29sIEZpbGVQYXRoOjpJc0RpcmVjdG9yeSgpIGNvbnN0IHsKLSAgcmV0
dXJuICFwYXRobmFtZV8uZW1wdHkoKSAmJgotICAgICAgICAgSXNQYXRoU2VwYXJhdG9yKHBhdGhu
YW1lXy5jX3N0cigpW3BhdGhuYW1lXy5sZW5ndGgoKSAtIDFdKTsKLX0KLQotLy8gQ3JlYXRlIGRp
cmVjdG9yaWVzIHNvIHRoYXQgcGF0aCBleGlzdHMuIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVs
IG9yIGlmCi0vLyB0aGUgZGlyZWN0b3JpZXMgYWxyZWFkeSBleGlzdDsgcmV0dXJucyBmYWxzZSBp
ZiB1bmFibGUgdG8gY3JlYXRlIGRpcmVjdG9yaWVzCi0vLyBmb3IgYW55IHJlYXNvbi4KLWJvb2wg
RmlsZVBhdGg6OkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSBjb25zdCB7Ci0gIGlmICgh
dGhpcy0+SXNEaXJlY3RvcnkoKSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGlmIChw
YXRobmFtZV8ubGVuZ3RoKCkgPT0gMCB8fCB0aGlzLT5EaXJlY3RvcnlFeGlzdHMoKSkgewotICAg
IHJldHVybiB0cnVlOwotICB9Ci0KLSAgY29uc3QgRmlsZVBhdGggcGFyZW50KHRoaXMtPlJlbW92
ZVRyYWlsaW5nUGF0aFNlcGFyYXRvcigpLlJlbW92ZUZpbGVOYW1lKCkpOwotICByZXR1cm4gcGFy
ZW50LkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSAmJiB0aGlzLT5DcmVhdGVGb2xkZXIo
KTsKLX0KLQotLy8gQ3JlYXRlIHRoZSBkaXJlY3Rvcnkgc28gdGhhdCBwYXRoIGV4aXN0cy4gUmV0
dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwgb3IKLS8vIGlmIHRoZSBkaXJlY3RvcnkgYWxyZWFkeSBl
eGlzdHM7IHJldHVybnMgZmFsc2UgaWYgdW5hYmxlIHRvIGNyZWF0ZSB0aGUKLS8vIGRpcmVjdG9y
eSBmb3IgYW55IHJlYXNvbiwgaW5jbHVkaW5nIGlmIHRoZSBwYXJlbnQgZGlyZWN0b3J5IGRvZXMg
bm90Ci0vLyBleGlzdC4gTm90IG5hbWVkICJDcmVhdGVEaXJlY3RvcnkiIGJlY2F1c2UgdGhhdCdz
IGEgbWFjcm8gb24gV2luZG93cy4KLWJvb2wgRmlsZVBhdGg6OkNyZWF0ZUZvbGRlcigpIGNvbnN0
IHsKLSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQotICBGaWxlUGF0aCByZW1vdmVkX3NlcCh0
aGlzLT5SZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKSk7Ci0gIExQQ1dTVFIgdW5pY29kZSA9
IFN0cmluZzo6QW5zaVRvVXRmMTYocmVtb3ZlZF9zZXAuY19zdHIoKSk7Ci0gIGludCByZXN1bHQg
PSBDcmVhdGVEaXJlY3RvcnkodW5pY29kZSwgTlVMTCkgPyAwIDogLTE7Ci0gIGRlbGV0ZSBbXSB1
bmljb2RlOwotI2VsaWYgR1RFU1RfT1NfV0lORE9XUwotICBpbnQgcmVzdWx0ID0gX21rZGlyKHBh
dGhuYW1lXy5jX3N0cigpKTsKLSNlbHNlCi0gIGludCByZXN1bHQgPSBta2RpcihwYXRobmFtZV8u
Y19zdHIoKSwgMDc3Nyk7Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0KLSAg
aWYgKHJlc3VsdCA9PSAtMSkgewotICAgIHJldHVybiB0aGlzLT5EaXJlY3RvcnlFeGlzdHMoKTsg
IC8vIEFuIGVycm9yIGlzIE9LIGlmIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgotICB9Ci0gIHJldHVy
biB0cnVlOyAgLy8gTm8gZXJyb3IuCi19Ci0KLS8vIElmIGlucHV0IG5hbWUgaGFzIGEgdHJhaWxp
bmcgc2VwYXJhdG9yIGNoYXJhY3RlciwgcmVtb3ZlIGl0IGFuZCByZXR1cm4gdGhlCi0vLyBuYW1l
LCBvdGhlcndpc2UgcmV0dXJuIHRoZSBuYW1lIHN0cmluZyB1bm1vZGlmaWVkLgotLy8gT24gV2lu
ZG93cyBwbGF0Zm9ybSwgdXNlcyBcIGFzIHRoZSBzZXBhcmF0b3IsIG90aGVyIHBsYXRmb3JtcyB1
c2UgLy4KLUZpbGVQYXRoIEZpbGVQYXRoOjpSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKSBj
b25zdCB7Ci0gIHJldHVybiBJc0RpcmVjdG9yeSgpCi0gICAgICA/IEZpbGVQYXRoKHBhdGhuYW1l
Xy5zdWJzdHIoMCwgcGF0aG5hbWVfLmxlbmd0aCgpIC0gMSkpCi0gICAgICA6ICp0aGlzOwotfQot
Ci0vLyBSZW1vdmVzIGFueSByZWR1bmRhbnQgc2VwYXJhdG9ycyB0aGF0IG1pZ2h0IGJlIGluIHRo
ZSBwYXRobmFtZS4KLS8vIEZvciBleGFtcGxlLCAiYmFyLy8vZm9vIiBiZWNvbWVzICJiYXIvZm9v
Ii4gRG9lcyBub3QgZWxpbWluYXRlIG90aGVyCi0vLyByZWR1bmRhbmNpZXMgdGhhdCBtaWdodCBi
ZSBpbiBhIHBhdGhuYW1lIGludm9sdmluZyAiLiIgb3IgIi4uIi4KLS8vIFRPRE8od2FuQGdvb2ds
ZS5jb20pOiBoYW5kbGUgV2luZG93cyBuZXR3b3JrIHNoYXJlcyAoZS5nLiBcXHNlcnZlclxzaGFy
ZSkuCi12b2lkIEZpbGVQYXRoOjpOb3JtYWxpemUoKSB7Ci0gIGlmIChwYXRobmFtZV8uY19zdHIo
KSA9PSBOVUxMKSB7Ci0gICAgcGF0aG5hbWVfID0gIiI7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGNv
bnN0IGNoYXIqIHNyYyA9IHBhdGhuYW1lXy5jX3N0cigpOwotICBjaGFyKiBjb25zdCBkZXN0ID0g
bmV3IGNoYXJbcGF0aG5hbWVfLmxlbmd0aCgpICsgMV07Ci0gIGNoYXIqIGRlc3RfcHRyID0gZGVz
dDsKLSAgbWVtc2V0KGRlc3RfcHRyLCAwLCBwYXRobmFtZV8ubGVuZ3RoKCkgKyAxKTsKLQotICB3
aGlsZSAoKnNyYyAhPSAnXDAnKSB7Ci0gICAgKmRlc3RfcHRyID0gKnNyYzsKLSAgICBpZiAoIUlz
UGF0aFNlcGFyYXRvcigqc3JjKSkgewotICAgICAgc3JjKys7Ci0gICAgfSBlbHNlIHsKLSNpZiBH
VEVTVF9IQVNfQUxUX1BBVEhfU0VQXwotICAgICAgaWYgKCpkZXN0X3B0ciA9PSBrQWx0ZXJuYXRl
UGF0aFNlcGFyYXRvcikgewotICAgICAgICAqZGVzdF9wdHIgPSBrUGF0aFNlcGFyYXRvcjsKLSAg
ICAgIH0KLSNlbmRpZgotICAgICAgd2hpbGUgKElzUGF0aFNlcGFyYXRvcigqc3JjKSkKLSAgICAg
ICAgc3JjKys7Ci0gICAgfQotICAgIGRlc3RfcHRyKys7Ci0gIH0KLSAgKmRlc3RfcHRyID0gJ1ww
JzsKLSAgcGF0aG5hbWVfID0gZGVzdDsKLSAgZGVsZXRlW10gZGVzdDsKLX0KLQotfSAgLy8gbmFt
ZXNwYWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LWludGVybmFsLWlubC5oIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LWludGVybmFsLWlubC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1ZWMwYWY5YmQ3ZTliNmM5MjI0MDE4MjFjODdkYzg3ZmUzOGE5
MGM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDExNzEgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDUsIEdvb2dsZSBJbmMuCi0v
LyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0vLyBVdGlsaXR5IGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyB1c2VkIGJ5IHRo
ZSBHb29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2ds
ZS5jb20gKFpoYW55b25nIFdhbikKLS8vCi0vLyBUaGlzIGZpbGUgY29udGFpbnMgcHVyZWx5IEdv
b2dsZSBUZXN0J3MgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uICBQbGVhc2UKLS8vIERPIE5PVCAj
SU5DTFVERSBJVCBJTiBBIFVTRVIgUFJPR1JBTS4KLQotI2lmbmRlZiBHVEVTVF9TUkNfR1RFU1Rf
SU5URVJOQUxfSU5MX0hfCi0jZGVmaW5lIEdURVNUX1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxfSF8K
LQotI2lmbmRlZiBfV0lOMzJfV0NFCi0jIGluY2x1ZGUgPGVycm5vLmg+Ci0jZW5kaWYgIC8vICFf
V0lOMzJfV0NFCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+ICAvLyBG
b3Igc3RydG9sbC9fc3RydG91bDY0L21hbGxvYy9mcmVlLgotI2luY2x1ZGUgPHN0cmluZy5oPiAg
Ly8gRm9yIG1lbW1vdmUuCi0KLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8c3RyaW5n
PgotI2luY2x1ZGUgPHZlY3Rvcj4KLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBv
cnQuaCIKLQotI2lmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KLSMgaW5jbHVkZSA8YXJwYS9p
bmV0Lmg+ICAvLyBOT0xJTlQKLSMgaW5jbHVkZSA8bmV0ZGIuaD4gIC8vIE5PTElOVAotI2VuZGlm
Ci0KLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0jIGluY2x1ZGUgPHdpbmRvd3MuaD4gIC8vIE5PTElO
VAotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5o
IiAgLy8gTk9MSU5UCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiCi0KLW5hbWVzcGFjZSB0
ZXN0aW5nIHsKLQotLy8gRGVjbGFyZXMgdGhlIGZsYWdzLgotLy8KLS8vIFdlIGRvbid0IHdhbnQg
dGhlIHVzZXJzIHRvIG1vZGlmeSB0aGlzIGZsYWcgaW4gdGhlIGNvZGUsIGJ1dCB3YW50Ci0vLyBH
b29nbGUgVGVzdCdzIG93biB1bml0IHRlc3RzIHRvIGJlIGFibGUgdG8gYWNjZXNzIGl0LiBUaGVy
ZWZvcmUgd2UKLS8vIGRlY2xhcmUgaXQgaGVyZSBhcyBvcHBvc2VkIHRvIGluIGd0ZXN0LmguCi1H
VEVTVF9ERUNMQVJFX2Jvb2xfKGRlYXRoX3Rlc3RfdXNlX2ZvcmspOwotCi1uYW1lc3BhY2UgaW50
ZXJuYWwgewotCi0vLyBUaGUgdmFsdWUgb2YgR2V0VGVzdFR5cGVJZCgpIGFzIHNlZW4gZnJvbSB3
aXRoaW4gdGhlIEdvb2dsZSBUZXN0Ci0vLyBsaWJyYXJ5LiAgVGhpcyBpcyBzb2xlbHkgZm9yIHRl
c3RpbmcgR2V0VGVzdFR5cGVJZCgpLgotR1RFU1RfQVBJXyBleHRlcm4gY29uc3QgVHlwZUlkIGtU
ZXN0VHlwZUlkSW5Hb29nbGVUZXN0OwotCi0vLyBOYW1lcyBvZiB0aGUgZmxhZ3MgKG5lZWRlZCBm
b3IgcGFyc2luZyBHb29nbGUgVGVzdCBmbGFncykuCi1jb25zdCBjaGFyIGtBbHNvUnVuRGlzYWJs
ZWRUZXN0c0ZsYWdbXSA9ICJhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyI7Ci1jb25zdCBjaGFyIGtC
cmVha09uRmFpbHVyZUZsYWdbXSA9ICJicmVha19vbl9mYWlsdXJlIjsKLWNvbnN0IGNoYXIga0Nh
dGNoRXhjZXB0aW9uc0ZsYWdbXSA9ICJjYXRjaF9leGNlcHRpb25zIjsKLWNvbnN0IGNoYXIga0Nv
bG9yRmxhZ1tdID0gImNvbG9yIjsKLWNvbnN0IGNoYXIga0ZpbHRlckZsYWdbXSA9ICJmaWx0ZXIi
OwotY29uc3QgY2hhciBrTGlzdFRlc3RzRmxhZ1tdID0gImxpc3RfdGVzdHMiOwotY29uc3QgY2hh
ciBrT3V0cHV0RmxhZ1tdID0gIm91dHB1dCI7Ci1jb25zdCBjaGFyIGtQcmludFRpbWVGbGFnW10g
PSAicHJpbnRfdGltZSI7Ci1jb25zdCBjaGFyIGtSYW5kb21TZWVkRmxhZ1tdID0gInJhbmRvbV9z
ZWVkIjsKLWNvbnN0IGNoYXIga1JlcGVhdEZsYWdbXSA9ICJyZXBlYXQiOwotY29uc3QgY2hhciBr
U2h1ZmZsZUZsYWdbXSA9ICJzaHVmZmxlIjsKLWNvbnN0IGNoYXIga1N0YWNrVHJhY2VEZXB0aEZs
YWdbXSA9ICJzdGFja190cmFjZV9kZXB0aCI7Ci1jb25zdCBjaGFyIGtTdHJlYW1SZXN1bHRUb0Zs
YWdbXSA9ICJzdHJlYW1fcmVzdWx0X3RvIjsKLWNvbnN0IGNoYXIga1Rocm93T25GYWlsdXJlRmxh
Z1tdID0gInRocm93X29uX2ZhaWx1cmUiOwotY29uc3QgY2hhciBrRmxhZ2ZpbGVGbGFnW10gPSAi
ZmxhZ2ZpbGUiOwotCi0vLyBBIHZhbGlkIHJhbmRvbSBzZWVkIG11c3QgYmUgaW4gWzEsIGtNYXhS
YW5kb21TZWVkXS4KLWNvbnN0IGludCBrTWF4UmFuZG9tU2VlZCA9IDk5OTk5OwotCi0vLyBnX2hl
bHBfZmxhZyBpcyB0cnVlIGlmZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3Jt
IGlzCi0vLyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KLUdURVNUX0FQSV8gZXh0ZXJu
IGJvb2wgZ19oZWxwX2ZsYWc7Ci0KLS8vIFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSBpbiBtaWxs
aXNlY29uZHMuCi1HVEVTVF9BUElfIFRpbWVJbk1pbGxpcyBHZXRUaW1lSW5NaWxsaXMoKTsKLQot
Ly8gUmV0dXJucyB0cnVlIGlmZiBHb29nbGUgVGVzdCBzaG91bGQgdXNlIGNvbG9ycyBpbiB0aGUg
b3V0cHV0LgotR1RFU1RfQVBJXyBib29sIFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rkb3V0X2lzX3R0
eSk7Ci0KLS8vIEZvcm1hdHMgdGhlIGdpdmVuIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIHNlY29u
ZHMuCi1HVEVTVF9BUElfIHN0ZDo6c3RyaW5nIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyhU
aW1lSW5NaWxsaXMgbXMpOwotCi0vLyBDb252ZXJ0cyB0aGUgZ2l2ZW4gdGltZSBpbiBtaWxsaXNl
Y29uZHMgdG8gYSBkYXRlIHN0cmluZyBpbiB0aGUgSVNPIDg2MDEKLS8vIGZvcm1hdCwgd2l0aG91
dCB0aGUgdGltZXpvbmUgaW5mb3JtYXRpb24uICBOLkIuOiBkdWUgdG8gdGhlIHVzZSB0aGUKLS8v
IG5vbi1yZWVudHJhbnQgbG9jYWx0aW1lKCkgZnVuY3Rpb24sIHRoaXMgZnVuY3Rpb24gaXMgbm90
IHRocmVhZCBzYWZlLiAgRG8KLS8vIG5vdCB1c2UgaXQgaW4gYW55IGNvZGUgdGhhdCBjYW4gYmUg
Y2FsbGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KLUdURVNUX0FQSV8gc3RkOjpzdHJpbmcgRm9y
bWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoVGltZUluTWlsbGlzIG1zKTsKLQotLy8gUGFy
c2VzIGEgc3RyaW5nIGZvciBhbiBJbnQzMiBmbGFnLCBpbiB0aGUgZm9ybSBvZiAiLS1mbGFnPXZh
bHVlIi4KLS8vCi0vLyBPbiBzdWNjZXNzLCBzdG9yZXMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGlu
ICp2YWx1ZSwgYW5kIHJldHVybnMKLS8vIHRydWUuICBPbiBmYWlsdXJlLCByZXR1cm5zIGZhbHNl
IHdpdGhvdXQgY2hhbmdpbmcgKnZhbHVlLgotR1RFU1RfQVBJXyBib29sIFBhcnNlSW50MzJGbGFn
KAotICAgIGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywgSW50MzIqIHZhbHVlKTsK
LQotLy8gUmV0dXJucyBhIHJhbmRvbSBzZWVkIGluIHJhbmdlIFsxLCBrTWF4UmFuZG9tU2VlZF0g
YmFzZWQgb24gdGhlCi0vLyBnaXZlbiAtLWd0ZXN0X3JhbmRvbV9zZWVkIGZsYWcgdmFsdWUuCi1p
bmxpbmUgaW50IEdldFJhbmRvbVNlZWRGcm9tRmxhZyhJbnQzMiByYW5kb21fc2VlZF9mbGFnKSB7
Ci0gIGNvbnN0IHVuc2lnbmVkIGludCByYXdfc2VlZCA9IChyYW5kb21fc2VlZF9mbGFnID09IDAp
ID8KLSAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oR2V0VGltZUluTWlsbGlzKCkpIDoK
LSAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4ocmFuZG9tX3NlZWRfZmxhZyk7Ci0KLSAg
Ly8gTm9ybWFsaXplcyB0aGUgYWN0dWFsIHNlZWQgdG8gcmFuZ2UgWzEsIGtNYXhSYW5kb21TZWVk
XSBzdWNoIHRoYXQKLSAgLy8gaXQncyBlYXN5IHRvIHR5cGUuCi0gIGNvbnN0IGludCBub3JtYWxp
emVkX3NlZWQgPQotICAgICAgc3RhdGljX2Nhc3Q8aW50PigocmF3X3NlZWQgLSAxVSkgJQotICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGtNYXhSYW5kb21T
ZWVkKSkgKyAxOwotICByZXR1cm4gbm9ybWFsaXplZF9zZWVkOwotfQotCi0vLyBSZXR1cm5zIHRo
ZSBmaXJzdCB2YWxpZCByYW5kb20gc2VlZCBhZnRlciAnc2VlZCcuICBUaGUgYmVoYXZpb3IgaXMK
LS8vIHVuZGVmaW5lZCBpZiAnc2VlZCcgaXMgaW52YWxpZC4gIFRoZSBzZWVkIGFmdGVyIGtNYXhS
YW5kb21TZWVkIGlzCi0vLyBjb25zaWRlcmVkIHRvIGJlIDEuCi1pbmxpbmUgaW50IEdldE5leHRS
YW5kb21TZWVkKGludCBzZWVkKSB7Ci0gIEdURVNUX0NIRUNLXygxIDw9IHNlZWQgJiYgc2VlZCA8
PSBrTWF4UmFuZG9tU2VlZCkKLSAgICAgIDw8ICJJbnZhbGlkIHJhbmRvbSBzZWVkICIgPDwgc2Vl
ZCA8PCAiIC0gbXVzdCBiZSBpbiBbMSwgIgotICAgICAgPDwga01heFJhbmRvbVNlZWQgPDwgIl0u
IjsKLSAgY29uc3QgaW50IG5leHRfc2VlZCA9IHNlZWQgKyAxOwotICByZXR1cm4gKG5leHRfc2Vl
ZCA+IGtNYXhSYW5kb21TZWVkKSA/IDEgOiBuZXh0X3NlZWQ7Ci19Ci0KLS8vIFRoaXMgY2xhc3Mg
c2F2ZXMgdGhlIHZhbHVlcyBvZiBhbGwgR29vZ2xlIFRlc3QgZmxhZ3MgaW4gaXRzIGMndG9yLCBh
bmQKLS8vIHJlc3RvcmVzIHRoZW0gaW4gaXRzIGQndG9yLgotY2xhc3MgR1Rlc3RGbGFnU2F2ZXIg
ewotIHB1YmxpYzoKLSAgLy8gVGhlIGMndG9yLgotICBHVGVzdEZsYWdTYXZlcigpIHsKLSAgICBh
bHNvX3J1bl9kaXNhYmxlZF90ZXN0c18gPSBHVEVTVF9GTEFHKGFsc29fcnVuX2Rpc2FibGVkX3Rl
c3RzKTsKLSAgICBicmVha19vbl9mYWlsdXJlXyA9IEdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVy
ZSk7Ci0gICAgY2F0Y2hfZXhjZXB0aW9uc18gPSBHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMp
OwotICAgIGNvbG9yXyA9IEdURVNUX0ZMQUcoY29sb3IpOwotICAgIGRlYXRoX3Rlc3Rfc3R5bGVf
ID0gR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKTsKLSAgICBkZWF0aF90ZXN0X3VzZV9mb3Jr
XyA9IEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yayk7Ci0gICAgZmlsdGVyXyA9IEdURVNU
X0ZMQUcoZmlsdGVyKTsKLSAgICBpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF8gPSBHVEVTVF9GTEFH
KGludGVybmFsX3J1bl9kZWF0aF90ZXN0KTsKLSAgICBsaXN0X3Rlc3RzXyA9IEdURVNUX0ZMQUco
bGlzdF90ZXN0cyk7Ci0gICAgb3V0cHV0XyA9IEdURVNUX0ZMQUcob3V0cHV0KTsKLSAgICBwcmlu
dF90aW1lXyA9IEdURVNUX0ZMQUcocHJpbnRfdGltZSk7Ci0gICAgcmFuZG9tX3NlZWRfID0gR1RF
U1RfRkxBRyhyYW5kb21fc2VlZCk7Ci0gICAgcmVwZWF0XyA9IEdURVNUX0ZMQUcocmVwZWF0KTsK
LSAgICBzaHVmZmxlXyA9IEdURVNUX0ZMQUcoc2h1ZmZsZSk7Ci0gICAgc3RhY2tfdHJhY2VfZGVw
dGhfID0gR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCk7Ci0gICAgc3RyZWFtX3Jlc3VsdF90
b18gPSBHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pOwotICAgIHRocm93X29uX2ZhaWx1cmVf
ID0gR1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKTsKLSAgfQotCi0gIC8vIFRoZSBkJ3RvciBp
cyBub3QgdmlydHVhbC4gIERPIE5PVCBJTkhFUklUIEZST00gVEhJUyBDTEFTUy4KLSAgfkdUZXN0
RmxhZ1NhdmVyKCkgewotICAgIEdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpID0g
YWxzb19ydW5fZGlzYWJsZWRfdGVzdHNfOwotICAgIEdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVy
ZSkgPSBicmVha19vbl9mYWlsdXJlXzsKLSAgICBHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMp
ID0gY2F0Y2hfZXhjZXB0aW9uc187Ci0gICAgR1RFU1RfRkxBRyhjb2xvcikgPSBjb2xvcl87Ci0g
ICAgR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9IGRlYXRoX3Rlc3Rfc3R5bGVfOwotICAg
IEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykgPSBkZWF0aF90ZXN0X3VzZV9mb3JrXzsK
LSAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSBmaWx0ZXJfOwotICAgIEdURVNUX0ZMQUcoaW50ZXJu
YWxfcnVuX2RlYXRoX3Rlc3QpID0gaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfOwotICAgIEdURVNU
X0ZMQUcobGlzdF90ZXN0cykgPSBsaXN0X3Rlc3RzXzsKLSAgICBHVEVTVF9GTEFHKG91dHB1dCkg
PSBvdXRwdXRfOwotICAgIEdURVNUX0ZMQUcocHJpbnRfdGltZSkgPSBwcmludF90aW1lXzsKLSAg
ICBHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSA9IHJhbmRvbV9zZWVkXzsKLSAgICBHVEVTVF9GTEFH
KHJlcGVhdCkgPSByZXBlYXRfOwotICAgIEdURVNUX0ZMQUcoc2h1ZmZsZSkgPSBzaHVmZmxlXzsK
LSAgICBHVEVTVF9GTEFHKHN0YWNrX3RyYWNlX2RlcHRoKSA9IHN0YWNrX3RyYWNlX2RlcHRoXzsK
LSAgICBHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pID0gc3RyZWFtX3Jlc3VsdF90b187Ci0g
ICAgR1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKSA9IHRocm93X29uX2ZhaWx1cmVfOwotICB9
Ci0KLSBwcml2YXRlOgotICAvLyBGaWVsZHMgZm9yIHNhdmluZyB0aGUgb3JpZ2luYWwgdmFsdWVz
IG9mIGZsYWdzLgotICBib29sIGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzXzsKLSAgYm9vbCBicmVh
a19vbl9mYWlsdXJlXzsKLSAgYm9vbCBjYXRjaF9leGNlcHRpb25zXzsKLSAgc3RkOjpzdHJpbmcg
Y29sb3JfOwotICBzdGQ6OnN0cmluZyBkZWF0aF90ZXN0X3N0eWxlXzsKLSAgYm9vbCBkZWF0aF90
ZXN0X3VzZV9mb3JrXzsKLSAgc3RkOjpzdHJpbmcgZmlsdGVyXzsKLSAgc3RkOjpzdHJpbmcgaW50
ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfOwotICBib29sIGxpc3RfdGVzdHNfOwotICBzdGQ6OnN0cmlu
ZyBvdXRwdXRfOwotICBib29sIHByaW50X3RpbWVfOwotICBpbnRlcm5hbDo6SW50MzIgcmFuZG9t
X3NlZWRfOwotICBpbnRlcm5hbDo6SW50MzIgcmVwZWF0XzsKLSAgYm9vbCBzaHVmZmxlXzsKLSAg
aW50ZXJuYWw6OkludDMyIHN0YWNrX3RyYWNlX2RlcHRoXzsKLSAgc3RkOjpzdHJpbmcgc3RyZWFt
X3Jlc3VsdF90b187Ci0gIGJvb2wgdGhyb3dfb25fZmFpbHVyZV87Ci19IEdURVNUX0FUVFJJQlVU
RV9VTlVTRURfOwotCi0vLyBDb252ZXJ0cyBhIFVuaWNvZGUgY29kZSBwb2ludCB0byBhIG5hcnJv
dyBzdHJpbmcgaW4gVVRGLTggZW5jb2RpbmcuCi0vLyBjb2RlX3BvaW50IHBhcmFtZXRlciBpcyBv
ZiB0eXBlIFVJbnQzMiBiZWNhdXNlIHdjaGFyX3QgbWF5IG5vdCBiZQotLy8gd2lkZSBlbm91Z2gg
dG8gY29udGFpbiBhIGNvZGUgcG9pbnQuCi0vLyBJZiB0aGUgY29kZV9wb2ludCBpcyBub3QgYSB2
YWxpZCBVbmljb2RlIGNvZGUgcG9pbnQKLS8vIChpLmUuIG91dHNpZGUgb2YgVW5pY29kZSByYW5n
ZSBVKzAgdG8gVSsxMEZGRkYpIGl0IHdpbGwgYmUgY29udmVydGVkCi0vLyB0byAiKEludmFsaWQg
VW5pY29kZSAweFhYWFhYWFhYKSIuCi1HVEVTVF9BUElfIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRv
VXRmOChVSW50MzIgY29kZV9wb2ludCk7Ci0KLS8vIENvbnZlcnRzIGEgd2lkZSBzdHJpbmcgdG8g
YSBuYXJyb3cgc3RyaW5nIGluIFVURi04IGVuY29kaW5nLgotLy8gVGhlIHdpZGUgc3RyaW5nIGlz
IGFzc3VtZWQgdG8gaGF2ZSB0aGUgZm9sbG93aW5nIGVuY29kaW5nOgotLy8gICBVVEYtMTYgaWYg
c2l6ZW9mKHdjaGFyX3QpID09IDIgKG9uIFdpbmRvd3MsIEN5Z3dpbiwgU3ltYmlhbiBPUykKLS8v
ICAgVVRGLTMyIGlmIHNpemVvZih3Y2hhcl90KSA9PSA0IChvbiBMaW51eCkKLS8vIFBhcmFtZXRl
ciBzdHIgcG9pbnRzIHRvIGEgbnVsbC10ZXJtaW5hdGVkIHdpZGUgc3RyaW5nLgotLy8gUGFyYW1l
dGVyIG51bV9jaGFycyBtYXkgYWRkaXRpb25hbGx5IGxpbWl0IHRoZSBudW1iZXIKLS8vIG9mIHdj
aGFyX3QgY2hhcmFjdGVycyBwcm9jZXNzZWQuIC0xIGlzIHVzZWQgd2hlbiB0aGUgZW50aXJlIHN0
cmluZwotLy8gc2hvdWxkIGJlIHByb2Nlc3NlZC4KLS8vIElmIHRoZSBzdHJpbmcgY29udGFpbnMg
Y29kZSBwb2ludHMgdGhhdCBhcmUgbm90IHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludHMKLS8vIChp
LmUuIG91dHNpZGUgb2YgVW5pY29kZSByYW5nZSBVKzAgdG8gVSsxMEZGRkYpIHRoZXkgd2lsbCBi
ZSBvdXRwdXQKLS8vIGFzICcoSW52YWxpZCBVbmljb2RlIDB4WFhYWFhYWFgpJy4gSWYgdGhlIHN0
cmluZyBpcyBpbiBVVEYxNiBlbmNvZGluZwotLy8gYW5kIGNvbnRhaW5zIGludmFsaWQgVVRGLTE2
IHN1cnJvZ2F0ZSBwYWlycywgdmFsdWVzIGluIHRob3NlIHBhaXJzCi0vLyB3aWxsIGJlIGVuY29k
ZWQgYXMgaW5kaXZpZHVhbCBVbmljb2RlIGNoYXJhY3RlcnMgZnJvbSBCYXNpYyBOb3JtYWwgUGxh
bmUuCi1HVEVTVF9BUElfIHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0ZjgoY29uc3Qgd2NoYXJf
dCogc3RyLCBpbnQgbnVtX2NoYXJzKTsKLQotLy8gUmVhZHMgdGhlIEdURVNUX1NIQVJEX1NUQVRV
U19GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlLCBhbmQgY3JlYXRlcyB0aGUgZmlsZQotLy8gaWYg
dGhlIHZhcmlhYmxlIGlzIHByZXNlbnQuIElmIGEgZmlsZSBhbHJlYWR5IGV4aXN0cyBhdCB0aGlz
IGxvY2F0aW9uLCB0aGlzCi0vLyBmdW5jdGlvbiB3aWxsIHdyaXRlIG92ZXIgaXQuIElmIHRoZSB2
YXJpYWJsZSBpcyBwcmVzZW50LCBidXQgdGhlIGZpbGUgY2Fubm90Ci0vLyBiZSBjcmVhdGVkLCBw
cmludHMgYW4gZXJyb3IgYW5kIGV4aXRzLgotdm9pZCBXcml0ZVRvU2hhcmRTdGF0dXNGaWxlSWZO
ZWVkZWQoKTsKLQotLy8gQ2hlY2tzIHdoZXRoZXIgc2hhcmRpbmcgaXMgZW5hYmxlZCBieSBleGFt
aW5pbmcgdGhlIHJlbGV2YW50Ci0vLyBlbnZpcm9ubWVudCB2YXJpYWJsZSB2YWx1ZXMuIElmIHRo
ZSB2YXJpYWJsZXMgYXJlIHByZXNlbnQsCi0vLyBidXQgaW5jb25zaXN0ZW50IChlLmcuLCBzaGFy
ZF9pbmRleCA+PSB0b3RhbF9zaGFyZHMpLCBwcmludHMKLS8vIGFuIGVycm9yIGFuZCBleGl0cy4g
SWYgaW5fc3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCwgc2hhcmRpbmcgaXMKLS8vIGRpc2FibGVk
IGJlY2F1c2UgaXQgbXVzdCBvbmx5IGJlIGFwcGxpZWQgdG8gdGhlIG9yaWdpbmFsIHRlc3QKLS8v
IHByb2Nlc3MuIE90aGVyd2lzZSwgd2UgY291bGQgZmlsdGVyIG91dCBkZWF0aCB0ZXN0cyB3ZSBp
bnRlbmRlZCB0byBleGVjdXRlLgotR1RFU1RfQVBJXyBib29sIFNob3VsZFNoYXJkKGNvbnN0IGNo
YXIqIHRvdGFsX3NoYXJkc19zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogc2hhcmRfaW5kZXhfc3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
aW5fc3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCk7Ci0KLS8vIFBhcnNlcyB0aGUgZW52aXJvbm1l
bnQgdmFyaWFibGUgdmFyIGFzIGFuIEludDMyLiBJZiBpdCBpcyB1bnNldCwKLS8vIHJldHVybnMg
ZGVmYXVsdF92YWwuIElmIGl0IGlzIG5vdCBhbiBJbnQzMiwgcHJpbnRzIGFuIGVycm9yIGFuZAot
Ly8gYW5kIGFib3J0cy4KLUdURVNUX0FQSV8gSW50MzIgSW50MzJGcm9tRW52T3JEaWUoY29uc3Qg
Y2hhciogZW52X3ZhciwgSW50MzIgZGVmYXVsdF92YWwpOwotCi0vLyBHaXZlbiB0aGUgdG90YWwg
bnVtYmVyIG9mIHNoYXJkcywgdGhlIHNoYXJkIGluZGV4LCBhbmQgdGhlIHRlc3QgaWQsCi0vLyBy
ZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhl
IHRlc3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGlu
dGVnZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0Ci0vLyBtZXRob2QuIEFzc3VtZXMgdGhhdCAwIDw9
IHNoYXJkX2luZGV4IDwgdG90YWxfc2hhcmRzLgotR1RFU1RfQVBJXyBib29sIFNob3VsZFJ1blRl
c3RPblNoYXJkKAotICAgIGludCB0b3RhbF9zaGFyZHMsIGludCBzaGFyZF9pbmRleCwgaW50IHRl
c3RfaWQpOwotCi0vLyBTVEwgY29udGFpbmVyIHV0aWxpdGllcy4KLQotLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBnaXZlbiBjb250YWluZXIgdGhhdCBzYXRpc2Z5Ci0v
LyB0aGUgZ2l2ZW4gcHJlZGljYXRlLgotdGVtcGxhdGUgPGNsYXNzIENvbnRhaW5lciwgdHlwZW5h
bWUgUHJlZGljYXRlPgotaW5saW5lIGludCBDb3VudElmKGNvbnN0IENvbnRhaW5lciYgYywgUHJl
ZGljYXRlIHByZWRpY2F0ZSkgewotICAvLyBJbXBsZW1lbnRlZCBhcyBhbiBleHBsaWNpdCBsb29w
IHNpbmNlIHN0ZDo6Y291bnRfaWYoKSBpbiBsaWJDc3RkIG9uCi0gIC8vIFNvbGFyaXMgaGFzIGEg
bm9uLXN0YW5kYXJkIHNpZ25hdHVyZS4KLSAgaW50IGNvdW50ID0gMDsKLSAgZm9yICh0eXBlbmFt
ZSBDb250YWluZXI6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYy5iZWdpbigpOyBpdCAhPSBjLmVuZCgp
OyArK2l0KSB7Ci0gICAgaWYgKHByZWRpY2F0ZSgqaXQpKQotICAgICAgKytjb3VudDsKLSAgfQot
ICByZXR1cm4gY291bnQ7Ci19Ci0KLS8vIEFwcGxpZXMgYSBmdW5jdGlvbi9mdW5jdG9yIHRvIGVh
Y2ggZWxlbWVudCBpbiB0aGUgY29udGFpbmVyLgotdGVtcGxhdGUgPGNsYXNzIENvbnRhaW5lciwg
dHlwZW5hbWUgRnVuY3Rvcj4KLXZvaWQgRm9yRWFjaChjb25zdCBDb250YWluZXImIGMsIEZ1bmN0
b3IgZnVuY3RvcikgewotICBzdGQ6OmZvcl9lYWNoKGMuYmVnaW4oKSwgYy5lbmQoKSwgZnVuY3Rv
cik7Ci19Ci0KLS8vIFJldHVybnMgdGhlIGktdGggZWxlbWVudCBvZiB0aGUgdmVjdG9yLCBvciBk
ZWZhdWx0X3ZhbHVlIGlmIGkgaXMgbm90Ci0vLyBpbiByYW5nZSBbMCwgdi5zaXplKCkpLgotdGVt
cGxhdGUgPHR5cGVuYW1lIEU+Ci1pbmxpbmUgRSBHZXRFbGVtZW50T3IoY29uc3Qgc3RkOjp2ZWN0
b3I8RT4mIHYsIGludCBpLCBFIGRlZmF1bHRfdmFsdWUpIHsKLSAgcmV0dXJuIChpIDwgMCB8fCBp
ID49IHN0YXRpY19jYXN0PGludD4odi5zaXplKCkpKSA/IGRlZmF1bHRfdmFsdWUgOiB2W2ldOwot
fQotCi0vLyBQZXJmb3JtcyBhbiBpbi1wbGFjZSBzaHVmZmxlIG9mIGEgcmFuZ2Ugb2YgdGhlIHZl
Y3RvcidzIGVsZW1lbnRzLgotLy8gJ2JlZ2luJyBhbmQgJ2VuZCcgYXJlIGVsZW1lbnQgaW5kaWNl
cyBhcyBhbiBTVEwtc3R5bGUgcmFuZ2U7Ci0vLyBpLmUuIFtiZWdpbiwgZW5kKSBhcmUgc2h1ZmZs
ZWQsIHdoZXJlICdlbmQnID09IHNpemUoKSBtZWFucyB0bwotLy8gc2h1ZmZsZSB0byB0aGUgZW5k
IG9mIHRoZSB2ZWN0b3IuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRT4KLXZvaWQgU2h1ZmZsZVJhbmdl
KGludGVybmFsOjpSYW5kb20qIHJhbmRvbSwgaW50IGJlZ2luLCBpbnQgZW5kLAotICAgICAgICAg
ICAgICAgICAgc3RkOjp2ZWN0b3I8RT4qIHYpIHsKLSAgY29uc3QgaW50IHNpemUgPSBzdGF0aWNf
Y2FzdDxpbnQ+KHYtPnNpemUoKSk7Ci0gIEdURVNUX0NIRUNLXygwIDw9IGJlZ2luICYmIGJlZ2lu
IDw9IHNpemUpCi0gICAgICA8PCAiSW52YWxpZCBzaHVmZmxlIHJhbmdlIHN0YXJ0ICIgPDwgYmVn
aW4gPDwgIjogbXVzdCBiZSBpbiByYW5nZSBbMCwgIgotICAgICAgPDwgc2l6ZSA8PCAiXS4iOwot
ICBHVEVTVF9DSEVDS18oYmVnaW4gPD0gZW5kICYmIGVuZCA8PSBzaXplKQotICAgICAgPDwgIklu
dmFsaWQgc2h1ZmZsZSByYW5nZSBmaW5pc2ggIiA8PCBlbmQgPDwgIjogbXVzdCBiZSBpbiByYW5n
ZSBbIgotICAgICAgPDwgYmVnaW4gPDwgIiwgIiA8PCBzaXplIDw8ICJdLiI7Ci0KLSAgLy8gRmlz
aGVyLVlhdGVzIHNodWZmbGUsIGZyb20KLSAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lr
aS9GaXNoZXItWWF0ZXNfc2h1ZmZsZQotICBmb3IgKGludCByYW5nZV93aWR0aCA9IGVuZCAtIGJl
Z2luOyByYW5nZV93aWR0aCA+PSAyOyByYW5nZV93aWR0aC0tKSB7Ci0gICAgY29uc3QgaW50IGxh
c3RfaW5fcmFuZ2UgPSBiZWdpbiArIHJhbmdlX3dpZHRoIC0gMTsKLSAgICBjb25zdCBpbnQgc2Vs
ZWN0ZWQgPSBiZWdpbiArIHJhbmRvbS0+R2VuZXJhdGUocmFuZ2Vfd2lkdGgpOwotICAgIHN0ZDo6
c3dhcCgoKnYpW3NlbGVjdGVkXSwgKCp2KVtsYXN0X2luX3JhbmdlXSk7Ci0gIH0KLX0KLQotLy8g
UGVyZm9ybXMgYW4gaW4tcGxhY2Ugc2h1ZmZsZSBvZiB0aGUgdmVjdG9yJ3MgZWxlbWVudHMuCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgRT4KLWlubGluZSB2b2lkIFNodWZmbGUoaW50ZXJuYWw6OlJhbmRv
bSogcmFuZG9tLCBzdGQ6OnZlY3RvcjxFPiogdikgewotICBTaHVmZmxlUmFuZ2UocmFuZG9tLCAw
LCBzdGF0aWNfY2FzdDxpbnQ+KHYtPnNpemUoKSksIHYpOwotfQotCi0vLyBBIGZ1bmN0aW9uIGZv
ciBkZWxldGluZyBhbiBvYmplY3QuICBIYW5keSBmb3IgYmVpbmcgdXNlZCBhcyBhCi0vLyBmdW5j
dG9yLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgdm9pZCBEZWxldGUoVCogeCkgewot
ICBkZWxldGUgeDsKLX0KLQotLy8gQSBwcmVkaWNhdGUgdGhhdCBjaGVja3MgdGhlIGtleSBvZiBh
IFRlc3RQcm9wZXJ0eSBhZ2FpbnN0IGEga25vd24ga2V5LgotLy8KLS8vIFRlc3RQcm9wZXJ0eUtl
eUlzIGlzIGNvcHlhYmxlLgotY2xhc3MgVGVzdFByb3BlcnR5S2V5SXMgewotIHB1YmxpYzoKLSAg
Ly8gQ29uc3RydWN0b3IuCi0gIC8vCi0gIC8vIFRlc3RQcm9wZXJ0eUtleUlzIGhhcyBOTyBkZWZh
dWx0IGNvbnN0cnVjdG9yLgotICBleHBsaWNpdCBUZXN0UHJvcGVydHlLZXlJcyhjb25zdCBzdGQ6
OnN0cmluZyYga2V5KSA6IGtleV8oa2V5KSB7fQotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhl
IHRlc3QgbmFtZSBvZiB0ZXN0IHByb3BlcnR5IG1hdGNoZXMgb24ga2V5Xy4KLSAgYm9vbCBvcGVy
YXRvcigpKGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSkgY29uc3QgewotICAgIHJl
dHVybiB0ZXN0X3Byb3BlcnR5LmtleSgpID09IGtleV87Ci0gIH0KLQotIHByaXZhdGU6Ci0gIHN0
ZDo6c3RyaW5nIGtleV87Ci19OwotCi0vLyBDbGFzcyBVbml0VGVzdE9wdGlvbnMuCi0vLwotLy8g
VGhpcyBjbGFzcyBjb250YWlucyBmdW5jdGlvbnMgZm9yIHByb2Nlc3Npbmcgb3B0aW9ucyB0aGUg
dXNlcgotLy8gc3BlY2lmaWVzIHdoZW4gcnVubmluZyB0aGUgdGVzdHMuICBJdCBoYXMgb25seSBz
dGF0aWMgbWVtYmVycy4KLS8vCi0vLyBJbiBtb3N0IGNhc2VzLCB0aGUgdXNlciBjYW4gc3BlY2lm
eSBhbiBvcHRpb24gdXNpbmcgZWl0aGVyIGFuCi0vLyBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciBh
IGNvbW1hbmQgbGluZSBmbGFnLiAgRS5nLiB5b3UgY2FuIHNldCB0aGUKLS8vIHRlc3QgZmlsdGVy
IHVzaW5nIGVpdGhlciBHVEVTVF9GSUxURVIgb3IgLS1ndGVzdF9maWx0ZXIuICBJZiBib3RoCi0v
LyB0aGUgdmFyaWFibGUgYW5kIHRoZSBmbGFnIGFyZSBwcmVzZW50LCB0aGUgbGF0dGVyIG92ZXJy
aWRlcyB0aGUKLS8vIGZvcm1lci4KLWNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RPcHRpb25zIHsK
LSBwdWJsaWM6Ci0gIC8vIEZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyB0aGUgZ3Rlc3Rfb3V0cHV0
IGZsYWcuCi0KLSAgLy8gUmV0dXJucyB0aGUgb3V0cHV0IGZvcm1hdCwgb3IgIiIgZm9yIG5vcm1h
bCBwcmludGVkIG91dHB1dC4KLSAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE91dHB1dEZvcm1hdCgp
OwotCi0gIC8vIFJldHVybnMgdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHJlcXVlc3RlZCBvdXRw
dXQgZmlsZSwgb3IgdGhlCi0gIC8vIGRlZmF1bHQgKHRlc3RfZGV0YWlsLnhtbCBpbiB0aGUgb3Jp
Z2luYWwgd29ya2luZyBkaXJlY3RvcnkpIGlmCi0gIC8vIG5vbmUgd2FzIGV4cGxpY2l0bHkgc3Bl
Y2lmaWVkLgotICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxl
KCk7Ci0KLSAgLy8gRnVuY3Rpb25zIGZvciBwcm9jZXNzaW5nIHRoZSBndGVzdF9maWx0ZXIgZmxh
Zy4KLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB3aWxkY2FyZCBwYXR0ZXJuIG1hdGNoZXMg
dGhlIHN0cmluZy4gIFRoZQotICAvLyBmaXJzdCAnOicgb3IgJ1wwJyBjaGFyYWN0ZXIgaW4gcGF0
dGVybiBtYXJrcyB0aGUgZW5kIG9mIGl0LgotICAvLwotICAvLyBUaGlzIHJlY3Vyc2l2ZSBhbGdv
cml0aG0gaXNuJ3QgdmVyeSBlZmZpY2llbnQsIGJ1dCBpcyBjbGVhciBhbmQKLSAgLy8gd29ya3Mg
d2VsbCBlbm91Z2ggZm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNoIGFyZSBzaG9ydC4KLSAg
c3RhdGljIGJvb2wgUGF0dGVybk1hdGNoZXNTdHJpbmcoY29uc3QgY2hhciAqcGF0dGVybiwgY29u
c3QgY2hhciAqc3RyKTsKLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1c2VyLXNwZWNpZmll
ZCBmaWx0ZXIgbWF0Y2hlcyB0aGUgdGVzdCBjYXNlCi0gIC8vIG5hbWUgYW5kIHRoZSB0ZXN0IG5h
bWUuCi0gIHN0YXRpYyBib29sIEZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nICZ0
ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcgJnRlc3RfbmFtZSk7Ci0KLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0gIC8vIEZ1bmN0
aW9uIGZvciBzdXBwb3J0aW5nIHRoZSBndGVzdF9jYXRjaF9leGNlcHRpb24gZmxhZy4KLQotICAv
LyBSZXR1cm5zIEVYQ0VQVElPTl9FWEVDVVRFX0hBTkRMRVIgaWYgR29vZ2xlIFRlc3Qgc2hvdWxk
IGhhbmRsZSB0aGUKLSAgLy8gZ2l2ZW4gU0VIIGV4Y2VwdGlvbiwgb3IgRVhDRVBUSU9OX0NPTlRJ
TlVFX1NFQVJDSCBvdGhlcndpc2UuCi0gIC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIGFzIGFu
IF9fZXhjZXB0IGNvbmRpdGlvbi4KLSAgc3RhdGljIGludCBHVGVzdFNob3VsZFByb2Nlc3NTRUgo
RFdPUkQgZXhjZXB0aW9uX2NvZGUpOwotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLSAg
Ly8gUmV0dXJucyB0cnVlIGlmICJuYW1lIiBtYXRjaGVzIHRoZSAnOicgc2VwYXJhdGVkIGxpc3Qg
b2YgZ2xvYi1zdHlsZQotICAvLyBmaWx0ZXJzIGluICJmaWx0ZXIiLgotICBzdGF0aWMgYm9vbCBN
YXRjaGVzRmlsdGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBjaGFyKiBmaWx0ZXIp
OwotfTsKLQotLy8gUmV0dXJucyB0aGUgY3VycmVudCBhcHBsaWNhdGlvbidzIG5hbWUsIHJlbW92
aW5nIGRpcmVjdG9yeSBwYXRoIGlmIHRoYXQKLS8vIGlzIHByZXNlbnQuICBVc2VkIGJ5IFVuaXRU
ZXN0T3B0aW9uczo6R2V0T3V0cHV0RmlsZS4KLUdURVNUX0FQSV8gRmlsZVBhdGggR2V0Q3VycmVu
dEV4ZWN1dGFibGVOYW1lKCk7Ci0KLS8vIFRoZSByb2xlIGludGVyZmFjZSBmb3IgZ2V0dGluZyB0
aGUgT1Mgc3RhY2sgdHJhY2UgYXMgYSBzdHJpbmcuCi1jbGFzcyBPc1N0YWNrVHJhY2VHZXR0ZXJJ
bnRlcmZhY2UgewotIHB1YmxpYzoKLSAgT3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlKCkge30K
LSAgdmlydHVhbCB+T3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlKCkge30KLQotICAvLyBSZXR1
cm5zIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNlIGFzIGFuIHN0ZDo6c3RyaW5nLiAgUGFyYW1l
dGVyczoKLSAgLy8KLSAgLy8gICBtYXhfZGVwdGggIC0gdGhlIG1heGltdW0gbnVtYmVyIG9mIHN0
YWNrIGZyYW1lcyB0byBiZSBpbmNsdWRlZAotICAvLyAgICAgICAgICAgICAgICBpbiB0aGUgdHJh
Y2UuCi0gIC8vICAgc2tpcF9jb3VudCAtIHRoZSBudW1iZXIgb2YgdG9wIGZyYW1lcyB0byBiZSBz
a2lwcGVkOyBkb2Vzbid0IGNvdW50Ci0gIC8vICAgICAgICAgICAgICAgIGFnYWluc3QgbWF4X2Rl
cHRoLgotICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIEN1cnJlbnRTdGFja1RyYWNlKGludCBtYXhfZGVw
dGgsIGludCBza2lwX2NvdW50KSA9IDA7Ci0KLSAgLy8gVXBvbkxlYXZpbmdHVGVzdCgpIHNob3Vs
ZCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIEdvb2dsZSBUZXN0IGNhbGxzCi0gIC8vIHVz
ZXIgY29kZS4gSXQgc2F2ZXMgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBzdGFj
ayB0aGF0Ci0gIC8vIEN1cnJlbnRTdGFja1RyYWNlKCkgd2lsbCB1c2UgdG8gZmluZCBhbmQgaGlk
ZSBHb29nbGUgVGVzdCBzdGFjayBmcmFtZXMuCi0gIHZpcnR1YWwgdm9pZCBVcG9uTGVhdmluZ0dU
ZXN0KCkgPSAwOwotCi0gIC8vIFRoaXMgc3RyaW5nIGlzIGluc2VydGVkIGluIHBsYWNlIG9mIHN0
YWNrIGZyYW1lcyB0aGF0IGFyZSBwYXJ0IG9mCi0gIC8vIEdvb2dsZSBUZXN0J3MgaW1wbGVtZW50
YXRpb24uCi0gIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBrRWxpZGVkRnJhbWVzTWFya2VyOwot
Ci0gcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhPc1N0YWNrVHJh
Y2VHZXR0ZXJJbnRlcmZhY2UpOwotfTsKLQotLy8gQSB3b3JraW5nIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2UgaW50ZXJmYWNlLgotY2xhc3MgT3NTdGFj
a1RyYWNlR2V0dGVyIDogcHVibGljIE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFjZSB7Ci0gcHVi
bGljOgotICBPc1N0YWNrVHJhY2VHZXR0ZXIoKSB7fQotCi0gIHZpcnR1YWwgc3RkOjpzdHJpbmcg
Q3VycmVudFN0YWNrVHJhY2UoaW50IG1heF9kZXB0aCwgaW50IHNraXBfY291bnQpOwotICB2aXJ0
dWFsIHZvaWQgVXBvbkxlYXZpbmdHVGVzdCgpOwotCi0gcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxM
T1dfQ09QWV9BTkRfQVNTSUdOXyhPc1N0YWNrVHJhY2VHZXR0ZXIpOwotfTsKLQotLy8gSW5mb3Jt
YXRpb24gYWJvdXQgYSBHb29nbGUgVGVzdCB0cmFjZSBwb2ludC4KLXN0cnVjdCBUcmFjZUluZm8g
ewotICBjb25zdCBjaGFyKiBmaWxlOwotICBpbnQgbGluZTsKLSAgc3RkOjpzdHJpbmcgbWVzc2Fn
ZTsKLX07Ci0KLS8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgZ2xvYmFsIHRlc3QgcGFydCByZXN1bHQg
cmVwb3J0ZXIgdXNlZCBpbiBVbml0VGVzdEltcGwuCi0vLyBUaGlzIGNsYXNzIHNob3VsZCBvbmx5
IGJlIHVzZWQgYnkgVW5pdFRlc3RJbXBsLgotY2xhc3MgRGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVz
dWx0UmVwb3J0ZXIKLSAgOiBwdWJsaWMgVGVzdFBhcnRSZXN1bHRSZXBvcnRlckludGVyZmFjZSB7
Ci0gcHVibGljOgotICBleHBsaWNpdCBEZWZhdWx0R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRl
cihVbml0VGVzdEltcGwqIHVuaXRfdGVzdCk7Ci0gIC8vIEltcGxlbWVudHMgdGhlIFRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UuIFJlcG9ydHMgdGhlIHRlc3QgcGFydAotICAvLyByZXN1
bHQgaW4gdGhlIGN1cnJlbnQgdGVzdC4KLSAgdmlydHVhbCB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVz
dWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpOwotCi0gcHJpdmF0ZToKLSAgVW5pdFRl
c3RJbXBsKiBjb25zdCB1bml0X3Rlc3RfOwotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FT
U0lHTl8oRGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIpOwotfTsKLQotLy8gVGhp
cyBpcyB0aGUgZGVmYXVsdCBwZXIgdGhyZWFkIHRlc3QgcGFydCByZXN1bHQgcmVwb3J0ZXIgdXNl
ZCBpbgotLy8gVW5pdFRlc3RJbXBsLiBUaGlzIGNsYXNzIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkg
VW5pdFRlc3RJbXBsLgotY2xhc3MgRGVmYXVsdFBlclRocmVhZFRlc3RQYXJ0UmVzdWx0UmVwb3J0
ZXIKLSAgICA6IHB1YmxpYyBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlIHsKLSBwdWJs
aWM6Ci0gIGV4cGxpY2l0IERlZmF1bHRQZXJUaHJlYWRUZXN0UGFydFJlc3VsdFJlcG9ydGVyKFVu
aXRUZXN0SW1wbCogdW5pdF90ZXN0KTsKLSAgLy8gSW1wbGVtZW50cyB0aGUgVGVzdFBhcnRSZXN1
bHRSZXBvcnRlckludGVyZmFjZS4gVGhlIGltcGxlbWVudGF0aW9uIGp1c3QKLSAgLy8gZGVsZWdh
dGVzIHRvIHRoZSBjdXJyZW50IGdsb2JhbCB0ZXN0IHBhcnQgcmVzdWx0IHJlcG9ydGVyIG9mICp1
bml0X3Rlc3RfLgotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVz
dFBhcnRSZXN1bHQmIHJlc3VsdCk7Ci0KLSBwcml2YXRlOgotICBVbml0VGVzdEltcGwqIGNvbnN0
IHVuaXRfdGVzdF87Ci0KLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhEZWZhdWx0
UGVyVGhyZWFkVGVzdFBhcnRSZXN1bHRSZXBvcnRlcik7Ci19OwotCi0vLyBUaGUgcHJpdmF0ZSBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgVW5pdFRlc3QgY2xhc3MuICBXZSBkb24ndCBwcm90ZWN0Ci0v
LyB0aGUgbWV0aG9kcyB1bmRlciBhIG11dGV4LCBhcyB0aGlzIGNsYXNzIGlzIG5vdCBhY2Nlc3Np
YmxlIGJ5IGEKLS8vIHVzZXIgYW5kIHRoZSBVbml0VGVzdCBjbGFzcyB0aGF0IGRlbGVnYXRlcyB3
b3JrIHRvIHRoaXMgY2xhc3MgZG9lcwotLy8gcHJvcGVyIGxvY2tpbmcuCi1jbGFzcyBHVEVTVF9B
UElfIFVuaXRUZXN0SW1wbCB7Ci0gcHVibGljOgotICBleHBsaWNpdCBVbml0VGVzdEltcGwoVW5p
dFRlc3QqIHBhcmVudCk7Ci0gIHZpcnR1YWwgflVuaXRUZXN0SW1wbCgpOwotCi0gIC8vIFRoZXJl
IGFyZSB0d28gZGlmZmVyZW50IHdheXMgdG8gcmVnaXN0ZXIgeW91ciBvd24gVGVzdFBhcnRSZXN1
bHRSZXBvcnRlci4KLSAgLy8gWW91IGNhbiByZWdpc3RlciB5b3VyIG93biByZXBvdGVyIHRvIGxp
c3RlbiBlaXRoZXIgb25seSBmb3IgdGVzdCByZXN1bHRzCi0gIC8vIGZyb20gdGhlIGN1cnJlbnQg
dGhyZWFkIG9yIGZvciByZXN1bHRzIGZyb20gYWxsIHRocmVhZHMuCi0gIC8vIEJ5IGRlZmF1bHQs
IGVhY2ggcGVyLXRocmVhZCB0ZXN0IHJlc3VsdCByZXBvdGVyIGp1c3QgcGFzc2VzIGEgbmV3Ci0g
IC8vIFRlc3RQYXJ0UmVzdWx0IHRvIHRoZSBnbG9iYWwgdGVzdCByZXN1bHQgcmVwb3J0ZXIsIHdo
aWNoIHJlZ2lzdGVycyB0aGUKLSAgLy8gdGVzdCBwYXJ0IHJlc3VsdCBmb3IgdGhlIGN1cnJlbnRs
eSBydW5uaW5nIHRlc3QuCi0KLSAgLy8gUmV0dXJucyB0aGUgZ2xvYmFsIHRlc3QgcGFydCByZXN1
bHQgcmVwb3J0ZXIuCi0gIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UqIEdldEdsb2Jh
bFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoKTsKLQotICAvLyBTZXRzIHRoZSBnbG9iYWwgdGVzdCBw
YXJ0IHJlc3VsdCByZXBvcnRlci4KLSAgdm9pZCBTZXRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9y
dGVyKAotICAgICAgVGVzdFBhcnRSZXN1bHRSZXBvcnRlckludGVyZmFjZSogcmVwb3J0ZXIpOwot
Ci0gIC8vIFJldHVybnMgdGhlIHRlc3QgcGFydCByZXN1bHQgcmVwb3J0ZXIgZm9yIHRoZSBjdXJy
ZW50IHRocmVhZC4KLSAgVGVzdFBhcnRSZXN1bHRSZXBvcnRlckludGVyZmFjZSogR2V0VGVzdFBh
cnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRUaHJlYWQoKTsKLQotICAvLyBTZXRzIHRoZSB0ZXN0
IHBhcnQgcmVzdWx0IHJlcG9ydGVyIGZvciB0aGUgY3VycmVudCB0aHJlYWQuCi0gIHZvaWQgU2V0
VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRUaHJlYWQoCi0gICAgICBUZXN0UGFydFJl
c3VsdFJlcG9ydGVySW50ZXJmYWNlKiByZXBvcnRlcik7Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIHN1Y2Nlc3NmdWwgdGVzdCBjYXNlcy4KLSAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2Nv
dW50KCkgY29uc3Q7Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IGNhc2Vz
LgotICBpbnQgZmFpbGVkX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0OwotCi0gIC8vIEdldHMgdGhl
IG51bWJlciBvZiBhbGwgdGVzdCBjYXNlcy4KLSAgaW50IHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgp
IGNvbnN0OwotCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBjYXNlcyB0aGF0IGNv
bnRhaW4gYXQgbGVhc3Qgb25lIHRlc3QKLSAgLy8gdGhhdCBzaG91bGQgcnVuLgotICBpbnQgdGVz
dF9jYXNlX3RvX3J1bl9jb3VudCgpIGNvbnN0OwotCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBz
dWNjZXNzZnVsIHRlc3RzLgotICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3Q7Ci0K
LSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cy4KLSAgaW50IGZhaWxlZF90ZXN0
X2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGRpc2FibGVkIHRlc3Rz
IHRoYXQgd2lsbCBiZSByZXBvcnRlZCBpbiB0aGUgWE1MIHJlcG9ydC4KLSAgaW50IHJlcG9ydGFi
bGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0OwotCi0gIC8vIEdldHMgdGhlIG51bWJlciBv
ZiBkaXNhYmxlZCB0ZXN0cy4KLSAgaW50IGRpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdDsKLQot
ICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdG8gYmUgcHJpbnRlZCBpbiB0aGUgWE1MIHJl
cG9ydC4KLSAgaW50IHJlcG9ydGFibGVfdGVzdF9jb3VudCgpIGNvbnN0OwotCi0gIC8vIEdldHMg
dGhlIG51bWJlciBvZiBhbGwgdGVzdHMuCi0gIGludCB0b3RhbF90ZXN0X2NvdW50KCkgY29uc3Q7
Ci0KLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgc2hvdWxkIHJ1bi4KLSAgaW50
IHRlc3RfdG9fcnVuX2NvdW50KCkgY29uc3Q7Ci0KLSAgLy8gR2V0cyB0aGUgdGltZSBvZiB0aGUg
dGVzdCBwcm9ncmFtIHN0YXJ0LCBpbiBtcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUKLSAgLy8gVU5J
WCBlcG9jaC4KLSAgVGltZUluTWlsbGlzIHN0YXJ0X3RpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJu
IHN0YXJ0X3RpbWVzdGFtcF87IH0KLQotICAvLyBHZXRzIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1p
bGxpc2Vjb25kcy4KLSAgVGltZUluTWlsbGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJu
IGVsYXBzZWRfdGltZV87IH0KLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3Qg
cGFzc2VkIChpLmUuIGFsbCB0ZXN0IGNhc2VzIHBhc3NlZCkuCi0gIGJvb2wgUGFzc2VkKCkgY29u
c3QgeyByZXR1cm4gIUZhaWxlZCgpOyB9Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdW5p
dCB0ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRlc3QgY2FzZSBmYWlsZWQKLSAgLy8gb3Igc29tZXRo
aW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCi0gIGJvb2wgRmFpbGVkKCkgY29uc3Qg
ewotICAgIHJldHVybiBmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgPiAwIHx8IGFkX2hvY190ZXN0
X3Jlc3VsdCgpLT5GYWlsZWQoKTsKLSAgfQotCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNl
IGFtb25nIGFsbCB0aGUgdGVzdCBjYXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRv
dGFsX3Rlc3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0
dXJucyBOVUxMLgotICBjb25zdCBUZXN0Q2FzZSogR2V0VGVzdENhc2UoaW50IGkpIGNvbnN0IHsK
LSAgICBjb25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3IodGVzdF9jYXNlX2luZGljZXNfLCBp
LCAtMSk7Ci0gICAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2Nhc2VzX1tpXTsKLSAg
fQotCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNlIGFtb25nIGFsbCB0aGUgdGVzdCBjYXNl
cy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIC0g
MS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgotICBUZXN0Q2FzZSog
R2V0TXV0YWJsZVRlc3RDYXNlKGludCBpKSB7Ci0gICAgY29uc3QgaW50IGluZGV4ID0gR2V0RWxl
bWVudE9yKHRlc3RfY2FzZV9pbmRpY2VzXywgaSwgLTEpOwotICAgIHJldHVybiBpbmRleCA8IDAg
PyBOVUxMIDogdGVzdF9jYXNlc19baW5kZXhdOwotICB9Ci0KLSAgLy8gUHJvdmlkZXMgYWNjZXNz
IHRvIHRoZSBldmVudCBsaXN0ZW5lciBsaXN0LgotICBUZXN0RXZlbnRMaXN0ZW5lcnMqIGxpc3Rl
bmVycygpIHsgcmV0dXJuICZsaXN0ZW5lcnNfOyB9Ci0KLSAgLy8gUmV0dXJucyB0aGUgVGVzdFJl
c3VsdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLCBvcgotICAvLyB0aGUg
VGVzdFJlc3VsdCBmb3IgdGhlIGFkIGhvYyB0ZXN0IGlmIG5vIHRlc3QgaXMgcnVubmluZy4KLSAg
VGVzdFJlc3VsdCogY3VycmVudF90ZXN0X3Jlc3VsdCgpOwotCi0gIC8vIFJldHVybnMgdGhlIFRl
c3RSZXN1bHQgZm9yIHRoZSBhZCBob2MgdGVzdC4KLSAgY29uc3QgVGVzdFJlc3VsdCogYWRfaG9j
X3Rlc3RfcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gJmFkX2hvY190ZXN0X3Jlc3VsdF87IH0KLQot
ICAvLyBTZXRzIHRoZSBPUyBzdGFjayB0cmFjZSBnZXR0ZXIuCi0gIC8vCi0gIC8vIERvZXMgbm90
aGluZyBpZiB0aGUgaW5wdXQgYW5kIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNlIGdldHRlcgot
ICAvLyBhcmUgdGhlIHNhbWU7IG90aGVyd2lzZSwgZGVsZXRlcyB0aGUgb2xkIGdldHRlciBhbmQg
bWFrZXMgdGhlCi0gIC8vIGlucHV0IHRoZSBjdXJyZW50IGdldHRlci4KLSAgdm9pZCBzZXRfb3Nf
c3RhY2tfdHJhY2VfZ2V0dGVyKE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFjZSogZ2V0dGVyKTsK
LQotICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNlIGdldHRlciBpZiBpdCBp
cyBub3QgTlVMTDsKLSAgLy8gb3RoZXJ3aXNlLCBjcmVhdGVzIGFuIE9zU3RhY2tUcmFjZUdldHRl
ciwgbWFrZXMgaXQgdGhlIGN1cnJlbnQKLSAgLy8gZ2V0dGVyLCBhbmQgcmV0dXJucyBpdC4KLSAg
T3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlKiBvc19zdGFja190cmFjZV9nZXR0ZXIoKTsKLQot
ICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNlIGFzIGFuIHN0ZDo6c3RyaW5n
LgotICAvLwotICAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RhY2sgZnJhbWVzIHRvIGJlIGlu
Y2x1ZGVkIGlzIHNwZWNpZmllZCBieQotICAvLyB0aGUgZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGgg
ZmxhZy4gIFRoZSBza2lwX2NvdW50IHBhcmFtZXRlcgotICAvLyBzcGVjaWZpZXMgdGhlIG51bWJl
ciBvZiB0b3AgZnJhbWVzIHRvIGJlIHNraXBwZWQsIHdoaWNoIGRvZXNuJ3QKLSAgLy8gY291bnQg
YWdhaW5zdCB0aGUgbnVtYmVyIG9mIGZyYW1lcyB0byBiZSBpbmNsdWRlZC4KLSAgLy8KLSAgLy8g
Rm9yIGV4YW1wbGUsIGlmIEZvbygpIGNhbGxzIEJhcigpLCB3aGljaCBpbiB0dXJuIGNhbGxzCi0g
IC8vIEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3AoMSksIEZvbygpIHdpbGwgYmUgaW5jbHVk
ZWQgaW4gdGhlCi0gIC8vIHRyYWNlIGJ1dCBCYXIoKSBhbmQgQ3VycmVudE9zU3RhY2tUcmFjZUV4
Y2VwdFRvcCgpIHdvbid0LgotICBzdGQ6OnN0cmluZyBDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0
VG9wKGludCBza2lwX2NvdW50KSBHVEVTVF9OT19JTkxJTkVfOwotCi0gIC8vIEZpbmRzIGFuZCBy
ZXR1cm5zIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIElmIG9uZSBkb2Vzbid0Ci0g
IC8vIGV4aXN0LCBjcmVhdGVzIG9uZSBhbmQgcmV0dXJucyBpdC4KLSAgLy8KLSAgLy8gQXJndW1l
bnRzOgotICAvLwotICAvLyAgIHRlc3RfY2FzZV9uYW1lOiBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UK
LSAgLy8gICB0eXBlX3BhcmFtOiAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3QncyB0eXBlIHBhcmFt
ZXRlciwgb3IgTlVMTCBpZgotICAvLyAgICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5
cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIC8vICAgc2V0X3VwX3RjOiAgICAg
IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0gIC8v
ICAgdGVhcl9kb3duX3RjOiAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93
biB0aGUgdGVzdCBjYXNlCi0gIFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShjb25zdCBjaGFyKiB0ZXN0
X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHR5cGVfcGFy
YW0sCi0gICAgICAgICAgICAgICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRf
dXBfdGMsCi0gICAgICAgICAgICAgICAgICAgICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVu
YyB0ZWFyX2Rvd25fdGMpOwotCi0gIC8vIEFkZHMgYSBUZXN0SW5mbyB0byB0aGUgdW5pdCB0ZXN0
LgotICAvLwotICAvLyBBcmd1bWVudHM6Ci0gIC8vCi0gIC8vICAgc2V0X3VwX3RjOiAgICBwb2lu
dGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3QgY2FzZQotICAvLyAgIHRl
YXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0
ZXN0IGNhc2UKLSAgLy8gICB0ZXN0X2luZm86ICAgIHRoZSBUZXN0SW5mbyBvYmplY3QKLSAgdm9p
ZCBBZGRUZXN0SW5mbyhUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgICAg
ICAgICAgICAgICAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjLAotICAg
ICAgICAgICAgICAgICAgIFRlc3RJbmZvKiB0ZXN0X2luZm8pIHsKLSAgICAvLyBJbiBvcmRlciB0
byBzdXBwb3J0IHRocmVhZC1zYWZlIGRlYXRoIHRlc3RzLCB3ZSBuZWVkIHRvCi0gICAgLy8gcmVt
ZW1iZXIgdGhlIG9yaWdpbmFsIHdvcmtpbmcgZGlyZWN0b3J5IHdoZW4gdGhlIHRlc3QgcHJvZ3Jh
bQotICAgIC8vIHdhcyBmaXJzdCBpbnZva2VkLiAgV2UgY2Fubm90IGRvIHRoaXMgaW4gUlVOX0FM
TF9URVNUUygpLCBhcwotICAgIC8vIHRoZSB1c2VyIG1heSBoYXZlIGNoYW5nZWQgdGhlIGN1cnJl
bnQgZGlyZWN0b3J5IGJlZm9yZSBjYWxsaW5nCi0gICAgLy8gUlVOX0FMTF9URVNUUygpLiAgVGhl
cmVmb3JlIHdlIGNhcHR1cmUgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGluCi0gICAgLy8gQWRkVGVz
dEluZm8oKSwgd2hpY2ggaXMgY2FsbGVkIHRvIHJlZ2lzdGVyIGEgVEVTVCBvciBURVNUX0YKLSAg
ICAvLyBiZWZvcmUgbWFpbigpIGlzIHJlYWNoZWQuCi0gICAgaWYgKG9yaWdpbmFsX3dvcmtpbmdf
ZGlyXy5Jc0VtcHR5KCkpIHsKLSAgICAgIG9yaWdpbmFsX3dvcmtpbmdfZGlyXy5TZXQoRmlsZVBh
dGg6OkdldEN1cnJlbnREaXIoKSk7Ci0gICAgICBHVEVTVF9DSEVDS18oIW9yaWdpbmFsX3dvcmtp
bmdfZGlyXy5Jc0VtcHR5KCkpCi0gICAgICAgICAgPDwgIkZhaWxlZCB0byBnZXQgdGhlIGN1cnJl
bnQgd29ya2luZyBkaXJlY3RvcnkuIjsKLSAgICB9Ci0KLSAgICBHZXRUZXN0Q2FzZSh0ZXN0X2lu
Zm8tPnRlc3RfY2FzZV9uYW1lKCksCi0gICAgICAgICAgICAgICAgdGVzdF9pbmZvLT50eXBlX3Bh
cmFtKCksCi0gICAgICAgICAgICAgICAgc2V0X3VwX3RjLAotICAgICAgICAgICAgICAgIHRlYXJf
ZG93bl90YyktPkFkZFRlc3RJbmZvKHRlc3RfaW5mbyk7Ci0gIH0KLQotICAvLyBSZXR1cm5zIFBh
cmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IG9iamVjdCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YK
LSAgLy8gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5kIHJlZ2lz
dGVyIHRoZW0uCi0gIGludGVybmFsOjpQYXJhbWV0ZXJpemVkVGVzdENhc2VSZWdpc3RyeSYgcGFy
YW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgewotICAgIHJldHVybiBwYXJhbWV0ZXJpemVkX3Rl
c3RfcmVnaXN0cnlfOwotICB9Ci0KLSAgLy8gU2V0cyB0aGUgVGVzdENhc2Ugb2JqZWN0IGZvciB0
aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcuCi0gIHZvaWQgc2V0X2N1cnJlbnRfdGVz
dF9jYXNlKFRlc3RDYXNlKiBhX2N1cnJlbnRfdGVzdF9jYXNlKSB7Ci0gICAgY3VycmVudF90ZXN0
X2Nhc2VfID0gYV9jdXJyZW50X3Rlc3RfY2FzZTsKLSAgfQotCi0gIC8vIFNldHMgdGhlIFRlc3RJ
bmZvIG9iamVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLiAgSWYKLSAg
Ly8gY3VycmVudF90ZXN0X2luZm8gaXMgTlVMTCwgdGhlIGFzc2VydGlvbiByZXN1bHRzIHdpbGwg
YmUgc3RvcmVkIGluCi0gIC8vIGFkX2hvY190ZXN0X3Jlc3VsdF8uCi0gIHZvaWQgc2V0X2N1cnJl
bnRfdGVzdF9pbmZvKFRlc3RJbmZvKiBhX2N1cnJlbnRfdGVzdF9pbmZvKSB7Ci0gICAgY3VycmVu
dF90ZXN0X2luZm9fID0gYV9jdXJyZW50X3Rlc3RfaW5mbzsKLSAgfQotCi0gIC8vIFJlZ2lzdGVy
cyBhbGwgcGFyYW1ldGVyaXplZCB0ZXN0cyBkZWZpbmVkIHVzaW5nIFRFU1RfUCBhbmQKLSAgLy8g
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AsIGNyZWF0aW5nIHJlZ3VsYXIgdGVzdHMgZm9yIGVhY2gg
dGVzdC9wYXJhbWV0ZXIKLSAgLy8gY29tYmluYXRpb24uIFRoaXMgbWV0aG9kIGNhbiBiZSBjYWxs
ZWQgbW9yZSB0aGVuIG9uY2U7IGl0IGhhcyBndWFyZHMKLSAgLy8gcHJvdGVjdGluZyBmcm9tIHJl
Z2lzdGVyaW5nIHRoZSB0ZXN0cyBtb3JlIHRoZW4gb25jZS4gIElmCi0gIC8vIHZhbHVlLXBhcmFt
ZXRlcml6ZWQgdGVzdHMgYXJlIGRpc2FibGVkLCBSZWdpc3RlclBhcmFtZXRlcml6ZWRUZXN0cyBp
cwotICAvLyBwcmVzZW50IGJ1dCBkb2VzIG5vdGhpbmcuCi0gIHZvaWQgUmVnaXN0ZXJQYXJhbWV0
ZXJpemVkVGVzdHMoKTsKLQotICAvLyBSdW5zIGFsbCB0ZXN0cyBpbiB0aGlzIFVuaXRUZXN0IG9i
amVjdCwgcHJpbnRzIHRoZSByZXN1bHQsIGFuZAotICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIHRl
c3RzIGFyZSBzdWNjZXNzZnVsLiAgSWYgYW55IGV4Y2VwdGlvbiBpcwotICAvLyB0aHJvd24gZHVy
aW5nIGEgdGVzdCwgdGhpcyB0ZXN0IGlzIGNvbnNpZGVyZWQgdG8gYmUgZmFpbGVkLCBidXQKLSAg
Ly8gdGhlIHJlc3Qgb2YgdGhlIHRlc3RzIHdpbGwgc3RpbGwgYmUgcnVuLgotICBib29sIFJ1bkFs
bFRlc3RzKCk7Ci0KLSAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0ZXN0cywgZXhjZXB0
IHRoZSBhZCBob2MgdGVzdHMuCi0gIHZvaWQgQ2xlYXJOb25BZEhvY1Rlc3RSZXN1bHQoKSB7Ci0g
ICAgRm9yRWFjaCh0ZXN0X2Nhc2VzXywgVGVzdENhc2U6OkNsZWFyVGVzdENhc2VSZXN1bHQpOwot
ICB9Ci0KLSAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFkLWhvYyB0ZXN0IGFzc2VydGlvbnMu
Ci0gIHZvaWQgQ2xlYXJBZEhvY1Rlc3RSZXN1bHQoKSB7Ci0gICAgYWRfaG9jX3Rlc3RfcmVzdWx0
Xy5DbGVhcigpOwotICB9Ci0KLSAgLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVu
dCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgaW4gYQotICAvLyBjb250ZXh0IG9mIGEg
dGVzdCBvciBhIHRlc3QgY2FzZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQuIElmIHRo
ZQotICAvLyByZXN1bHQgYWxyZWFkeSBjb250YWlucyBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUg
a2V5LCB0aGUgdmFsdWUgd2lsbCBiZQotICAvLyB1cGRhdGVkLgotICB2b2lkIFJlY29yZFByb3Bl
cnR5KGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7Ci0KLSAgZW51bSBSZWFjdGlv
blRvU2hhcmRpbmcgewotICAgIEhPTk9SX1NIQVJESU5HX1BST1RPQ09MLAotICAgIElHTk9SRV9T
SEFSRElOR19QUk9UT0NPTAotICB9OwotCi0gIC8vIE1hdGNoZXMgdGhlIGZ1bGwgbmFtZSBvZiBl
YWNoIHRlc3QgYWdhaW5zdCB0aGUgdXNlci1zcGVjaWZpZWQKLSAgLy8gZmlsdGVyIHRvIGRlY2lk
ZSB3aGV0aGVyIHRoZSB0ZXN0IHNob3VsZCBydW4sIHRoZW4gcmVjb3JkcyB0aGUKLSAgLy8gcmVz
dWx0IGluIGVhY2ggVGVzdENhc2UgYW5kIFRlc3RJbmZvIG9iamVjdC4KLSAgLy8gSWYgc2hhcmRf
dGVzdHMgPT0gSE9OT1JfU0hBUkRJTkdfUFJPVE9DT0wsIGZ1cnRoZXIgZmlsdGVycyB0ZXN0cwot
ICAvLyBiYXNlZCBvbiBzaGFyZGluZyB2YXJpYWJsZXMgaW4gdGhlIGVudmlyb25tZW50LgotICAv
LyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91bGQgcnVuLgotICBpbnQgRmls
dGVyVGVzdHMoUmVhY3Rpb25Ub1NoYXJkaW5nIHNoYXJkX3Rlc3RzKTsKLQotICAvLyBQcmludHMg
dGhlIG5hbWVzIG9mIHRoZSB0ZXN0cyBtYXRjaGluZyB0aGUgdXNlci1zcGVjaWZpZWQgZmlsdGVy
IGZsYWcuCi0gIHZvaWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoKTsKLQotICBjb25zdCBUZXN0
Q2FzZSogY3VycmVudF90ZXN0X2Nhc2UoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3Rlc3RfY2Fz
ZV87IH0KLSAgVGVzdEluZm8qIGN1cnJlbnRfdGVzdF9pbmZvKCkgeyByZXR1cm4gY3VycmVudF90
ZXN0X2luZm9fOyB9Ci0gIGNvbnN0IFRlc3RJbmZvKiBjdXJyZW50X3Rlc3RfaW5mbygpIGNvbnN0
IHsgcmV0dXJuIGN1cnJlbnRfdGVzdF9pbmZvXzsgfQotCi0gIC8vIFJldHVybnMgdGhlIHZlY3Rv
ciBvZiBlbnZpcm9ubWVudHMgdGhhdCBuZWVkIHRvIGJlIHNldC11cC90b3JuLWRvd24KLSAgLy8g
YmVmb3JlL2FmdGVyIHRoZSB0ZXN0cyBhcmUgcnVuLgotICBzdGQ6OnZlY3RvcjxFbnZpcm9ubWVu
dCo+JiBlbnZpcm9ubWVudHMoKSB7IHJldHVybiBlbnZpcm9ubWVudHNfOyB9Ci0KLSAgLy8gR2V0
dGVycyBmb3IgdGhlIHBlci10aHJlYWQgR29vZ2xlIFRlc3QgdHJhY2Ugc3RhY2suCi0gIHN0ZDo6
dmVjdG9yPFRyYWNlSW5mbz4mIGd0ZXN0X3RyYWNlX3N0YWNrKCkgewotICAgIHJldHVybiAqKGd0
ZXN0X3RyYWNlX3N0YWNrXy5wb2ludGVyKCkpOwotICB9Ci0gIGNvbnN0IHN0ZDo6dmVjdG9yPFRy
YWNlSW5mbz4mIGd0ZXN0X3RyYWNlX3N0YWNrKCkgY29uc3QgewotICAgIHJldHVybiBndGVzdF90
cmFjZV9zdGFja18uZ2V0KCk7Ci0gIH0KLQotI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCi0gIHZv
aWQgSW5pdERlYXRoVGVzdFN1YnByb2Nlc3NDb250cm9sSW5mbygpIHsKLSAgICBpbnRlcm5hbF9y
dW5fZGVhdGhfdGVzdF9mbGFnXy5yZXNldChQYXJzZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygp
KTsKLSAgfQotICAvLyBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgcGFyc2VkIC0tZ3Rlc3RfaW50
ZXJuYWxfcnVuX2RlYXRoX3Rlc3QKLSAgLy8gZmxhZywgb3IgTlVMTCBpZiB0aGF0IGZsYWcgd2Fz
IG5vdCBzcGVjaWZpZWQuCi0gIC8vIFRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZnVsIG9ubHkgaW4g
YSBkZWF0aCB0ZXN0IGNoaWxkIHByb2Nlc3MuCi0gIC8vIE11c3Qgbm90IGJlIGNhbGxlZCBiZWZv
cmUgYSBjYWxsIHRvIEluaXRHb29nbGVUZXN0LgotICBjb25zdCBJbnRlcm5hbFJ1bkRlYXRoVGVz
dEZsYWcqIGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWcoKSBjb25zdCB7Ci0gICAgcmV0dXJu
IGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfLmdldCgpOwotICB9Ci0KLSAgLy8gUmV0dXJu
cyBhIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgZGVhdGggdGVzdCBmYWN0b3J5LgotICBpbnRlcm5h
bDo6RGVhdGhUZXN0RmFjdG9yeSogZGVhdGhfdGVzdF9mYWN0b3J5KCkgewotICAgIHJldHVybiBk
ZWF0aF90ZXN0X2ZhY3RvcnlfLmdldCgpOwotICB9Ci0KLSAgdm9pZCBTdXBwcmVzc1Rlc3RFdmVu
dHNJZkluU3VicHJvY2VzcygpOwotCi0gIGZyaWVuZCBjbGFzcyBSZXBsYWNlRGVhdGhUZXN0RmFj
dG9yeTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotICAvLyBJbml0aWFsaXpl
cyB0aGUgZXZlbnQgbGlzdGVuZXIgcGVyZm9ybWluZyBYTUwgb3V0cHV0IGFzIHNwZWNpZmllZCBi
eQotICAvLyBVbml0VGVzdE9wdGlvbnMuIE11c3Qgbm90IGJlIGNhbGxlZCBiZWZvcmUgSW5pdEdv
b2dsZVRlc3QuCi0gIHZvaWQgQ29uZmlndXJlWG1sT3V0cHV0KCk7Ci0KLSNpZiBHVEVTVF9DQU5f
U1RSRUFNX1JFU1VMVFNfCi0gIC8vIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lciBmb3Ig
c3RyZWFtaW5nIHRlc3QgcmVzdWx0cyB0byBhIHNvY2tldC4KLSAgLy8gTXVzdCBub3QgYmUgY2Fs
bGVkIGJlZm9yZSBJbml0R29vZ2xlVGVzdC4KLSAgdm9pZCBDb25maWd1cmVTdHJlYW1pbmdPdXRw
dXQoKTsKLSNlbmRpZgotCi0gIC8vIFBlcmZvcm1zIGluaXRpYWxpemF0aW9uIGRlcGVuZGVudCB1
cG9uIGZsYWcgdmFsdWVzIG9idGFpbmVkIGluCi0gIC8vIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25s
eS4gIElzIGNhbGxlZCBmcm9tIEluaXRHb29nbGVUZXN0IGFmdGVyIHRoZSBjYWxsIHRvCi0gIC8v
IFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seS4gIEluIGNhc2UgYSB1c2VyIG5lZ2xlY3RzIHRvIGNh
bGwgSW5pdEdvb2dsZVRlc3QKLSAgLy8gdGhpcyBmdW5jdGlvbiBpcyBhbHNvIGNhbGxlZCBmcm9t
IFJ1bkFsbFRlc3RzLiAgU2luY2UgdGhpcyBmdW5jdGlvbiBjYW4gYmUKLSAgLy8gY2FsbGVkIG1v
cmUgdGhhbiBvbmNlLCBpdCBoYXMgdG8gYmUgaWRlbXBvdGVudC4KLSAgdm9pZCBQb3N0RmxhZ1Bh
cnNpbmdJbml0KCk7Ci0KLSAgLy8gR2V0cyB0aGUgcmFuZG9tIHNlZWQgdXNlZCBhdCB0aGUgc3Rh
cnQgb2YgdGhlIGN1cnJlbnQgdGVzdCBpdGVyYXRpb24uCi0gIGludCByYW5kb21fc2VlZCgpIGNv
bnN0IHsgcmV0dXJuIHJhbmRvbV9zZWVkXzsgfQotCi0gIC8vIEdldHMgdGhlIHJhbmRvbSBudW1i
ZXIgZ2VuZXJhdG9yLgotICBpbnRlcm5hbDo6UmFuZG9tKiByYW5kb20oKSB7IHJldHVybiAmcmFu
ZG9tXzsgfQotCi0gIC8vIFNodWZmbGVzIGFsbCB0ZXN0IGNhc2VzLCBhbmQgdGhlIHRlc3RzIHdp
dGhpbiBlYWNoIHRlc3QgY2FzZSwKLSAgLy8gbWFraW5nIHN1cmUgdGhhdCBkZWF0aCB0ZXN0cyBh
cmUgc3RpbGwgcnVuIGZpcnN0LgotICB2b2lkIFNodWZmbGVUZXN0cygpOwotCi0gIC8vIFJlc3Rv
cmVzIHRoZSB0ZXN0IGNhc2VzIGFuZCB0ZXN0cyB0byB0aGVpciBvcmRlciBiZWZvcmUgdGhlIGZp
cnN0IHNodWZmbGUuCi0gIHZvaWQgVW5zaHVmZmxlVGVzdHMoKTsKLQotICAvLyBSZXR1cm5zIHRo
ZSB2YWx1ZSBvZiBHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpIGF0IHRoZSBtb21lbnQKLSAg
Ly8gVW5pdFRlc3Q6OlJ1bigpIHN0YXJ0cy4KLSAgYm9vbCBjYXRjaF9leGNlcHRpb25zKCkgY29u
c3QgeyByZXR1cm4gY2F0Y2hfZXhjZXB0aW9uc187IH0KLQotIHByaXZhdGU6Ci0gIGZyaWVuZCBj
bGFzcyA6OnRlc3Rpbmc6OlVuaXRUZXN0OwotCi0gIC8vIFVzZWQgYnkgVW5pdFRlc3Q6OlJ1bigp
IHRvIGNhcHR1cmUgdGhlIHN0YXRlIG9mCi0gIC8vIEdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9u
cykgYXQgdGhlIG1vbWVudCBpdCBzdGFydHMuCi0gIHZvaWQgc2V0X2NhdGNoX2V4Y2VwdGlvbnMo
Ym9vbCB2YWx1ZSkgeyBjYXRjaF9leGNlcHRpb25zXyA9IHZhbHVlOyB9Ci0KLSAgLy8gVGhlIFVu
aXRUZXN0IG9iamVjdCB0aGF0IG93bnMgdGhpcyBpbXBsZW1lbnRhdGlvbiBvYmplY3QuCi0gIFVu
aXRUZXN0KiBjb25zdCBwYXJlbnRfOwotCi0gIC8vIFRoZSB3b3JraW5nIGRpcmVjdG9yeSB3aGVu
IHRoZSBmaXJzdCBURVNUKCkgb3IgVEVTVF9GKCkgd2FzCi0gIC8vIGV4ZWN1dGVkLgotICBpbnRl
cm5hbDo6RmlsZVBhdGggb3JpZ2luYWxfd29ya2luZ19kaXJfOwotCi0gIC8vIFRoZSBkZWZhdWx0
IHRlc3QgcGFydCByZXN1bHQgcmVwb3J0ZXJzLgotICBEZWZhdWx0R2xvYmFsVGVzdFBhcnRSZXN1
bHRSZXBvcnRlciBkZWZhdWx0X2dsb2JhbF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXzsKLSAg
RGVmYXVsdFBlclRocmVhZFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIKLSAgICAgIGRlZmF1bHRfcGVy
X3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXzsKLQotICAvLyBQb2ludHMgdG8gKGJ1
dCBkb2Vzbid0IG93bikgdGhlIGdsb2JhbCB0ZXN0IHBhcnQgcmVzdWx0IHJlcG9ydGVyLgotICBU
ZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlKiBnbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9y
ZXBvdGVyXzsKLQotICAvLyBQcm90ZWN0cyByZWFkIGFuZCB3cml0ZSBhY2Nlc3MgdG8gZ2xvYmFs
X3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfLgotICBpbnRlcm5hbDo6TXV0ZXggZ2xvYmFsX3Rl
c3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfbXV0ZXhfOwotCi0gIC8vIFBvaW50cyB0byAoYnV0IGRv
ZXNuJ3Qgb3duKSB0aGUgcGVyLXRocmVhZCB0ZXN0IHBhcnQgcmVzdWx0IHJlcG9ydGVyLgotICBp
bnRlcm5hbDo6VGhyZWFkTG9jYWw8VGVzdFBhcnRSZXN1bHRSZXBvcnRlckludGVyZmFjZSo+Ci0g
ICAgICBwZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfOwotCi0gIC8vIFRoZSB2
ZWN0b3Igb2YgZW52aXJvbm1lbnRzIHRoYXQgbmVlZCB0byBiZSBzZXQtdXAvdG9ybi1kb3duCi0g
IC8vIGJlZm9yZS9hZnRlciB0aGUgdGVzdHMgYXJlIHJ1bi4KLSAgc3RkOjp2ZWN0b3I8RW52aXJv
bm1lbnQqPiBlbnZpcm9ubWVudHNfOwotCi0gIC8vIFRoZSB2ZWN0b3Igb2YgVGVzdENhc2VzIGlu
IHRoZWlyIG9yaWdpbmFsIG9yZGVyLiAgSXQgb3ducyB0aGUKLSAgLy8gZWxlbWVudHMgaW4gdGhl
IHZlY3Rvci4KLSAgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiB0ZXN0X2Nhc2VzXzsKLQotICAvLyBQ
cm92aWRlcyBhIGxldmVsIG9mIGluZGlyZWN0aW9uIGZvciB0aGUgdGVzdCBjYXNlIGxpc3QgdG8g
YWxsb3cKLSAgLy8gZWFzeSBzaHVmZmxpbmcgYW5kIHJlc3RvcmluZyB0aGUgdGVzdCBjYXNlIG9y
ZGVyLiAgVGhlIGktdGgKLSAgLy8gZWxlbWVudCBvZiB0aGlzIHZlY3RvciBpcyB0aGUgaW5kZXgg
b2YgdGhlIGktdGggdGVzdCBjYXNlIGluIHRoZQotICAvLyBzaHVmZmxlZCBvcmRlci4KLSAgc3Rk
Ojp2ZWN0b3I8aW50PiB0ZXN0X2Nhc2VfaW5kaWNlc187Ci0KLSAgLy8gUGFyYW1ldGVyaXplZFRl
c3RSZWdpc3RyeSBvYmplY3QgdXNlZCB0byByZWdpc3RlciB2YWx1ZS1wYXJhbWV0ZXJpemVkCi0g
IC8vIHRlc3RzLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkgcGFy
YW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKLQotICAvLyBJbmRpY2F0ZXMgd2hldGhlciBSZWdp
c3RlclBhcmFtZXRlcml6ZWRUZXN0cygpIGhhcyBiZWVuIGNhbGxlZCBhbHJlYWR5LgotICBib29s
IHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF87Ci0KLSAgLy8gSW5kZXggb2YgdGhlIGxh
c3QgZGVhdGggdGVzdCBjYXNlIHJlZ2lzdGVyZWQuICBJbml0aWFsbHkgLTEuCi0gIGludCBsYXN0
X2RlYXRoX3Rlc3RfY2FzZV87Ci0KLSAgLy8gVGhpcyBwb2ludHMgdG8gdGhlIFRlc3RDYXNlIGZv
ciB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdC4gIEl0Ci0gIC8vIGNoYW5nZXMgYXMgR29vZ2xl
IFRlc3QgZ29lcyB0aHJvdWdoIG9uZSB0ZXN0IGNhc2UgYWZ0ZXIgYW5vdGhlci4KLSAgLy8gV2hl
biBubyB0ZXN0IGlzIHJ1bm5pbmcsIHRoaXMgaXMgc2V0IHRvIE5VTEwgYW5kIEdvb2dsZSBUZXN0
Ci0gIC8vIHN0b3JlcyBhc3NlcnRpb24gcmVzdWx0cyBpbiBhZF9ob2NfdGVzdF9yZXN1bHRfLiAg
SW5pdGlhbGx5IE5VTEwuCi0gIFRlc3RDYXNlKiBjdXJyZW50X3Rlc3RfY2FzZV87Ci0KLSAgLy8g
VGhpcyBwb2ludHMgdG8gdGhlIFRlc3RJbmZvIGZvciB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVz
dC4gIEl0Ci0gIC8vIGNoYW5nZXMgYXMgR29vZ2xlIFRlc3QgZ29lcyB0aHJvdWdoIG9uZSB0ZXN0
IGFmdGVyIGFub3RoZXIuICBXaGVuCi0gIC8vIG5vIHRlc3QgaXMgcnVubmluZywgdGhpcyBpcyBz
ZXQgdG8gTlVMTCBhbmQgR29vZ2xlIFRlc3Qgc3RvcmVzCi0gIC8vIGFzc2VydGlvbiByZXN1bHRz
IGluIGFkX2hvY190ZXN0X3Jlc3VsdF8uICBJbml0aWFsbHkgTlVMTC4KLSAgVGVzdEluZm8qIGN1
cnJlbnRfdGVzdF9pbmZvXzsKLQotICAvLyBOb3JtYWxseSwgYSB1c2VyIG9ubHkgd3JpdGVzIGFz
c2VydGlvbnMgaW5zaWRlIGEgVEVTVCBvciBURVNUX0YsCi0gIC8vIG9yIGluc2lkZSBhIGZ1bmN0
aW9uIGNhbGxlZCBieSBhIFRFU1Qgb3IgVEVTVF9GLiAgU2luY2UgR29vZ2xlCi0gIC8vIFRlc3Qg
a2VlcHMgdHJhY2sgb2Ygd2hpY2ggdGVzdCBpcyBjdXJyZW50IHJ1bm5pbmcsIGl0IGNhbgotICAv
LyBhc3NvY2lhdGUgc3VjaCBhbiBhc3NlcnRpb24gd2l0aCB0aGUgdGVzdCBpdCBiZWxvbmdzIHRv
LgotICAvLwotICAvLyBJZiBhbiBhc3NlcnRpb24gaXMgZW5jb3VudGVyZWQgd2hlbiBubyBURVNU
IG9yIFRFU1RfRiBpcyBydW5uaW5nLAotICAvLyBHb29nbGUgVGVzdCBhdHRyaWJ1dGVzIHRoZSBh
c3NlcnRpb24gcmVzdWx0IHRvIGFuIGltYWdpbmFyeSAiYWQgaG9jIgotICAvLyB0ZXN0LCBhbmQg
cmVjb3JkcyB0aGUgcmVzdWx0IGluIGFkX2hvY190ZXN0X3Jlc3VsdF8uCi0gIFRlc3RSZXN1bHQg
YWRfaG9jX3Rlc3RfcmVzdWx0XzsKLQotICAvLyBUaGUgbGlzdCBvZiBldmVudCBsaXN0ZW5lcnMg
dGhhdCBjYW4gYmUgdXNlZCB0byB0cmFjayBldmVudHMgaW5zaWRlCi0gIC8vIEdvb2dsZSBUZXN0
LgotICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzXzsKLQotICAvLyBUaGUgT1Mgc3RhY2sg
dHJhY2UgZ2V0dGVyLiAgV2lsbCBiZSBkZWxldGVkIHdoZW4gdGhlIFVuaXRUZXN0Ci0gIC8vIG9i
amVjdCBpcyBkZXN0cnVjdGVkLiAgQnkgZGVmYXVsdCwgYW4gT3NTdGFja1RyYWNlR2V0dGVyIGlz
IHVzZWQsCi0gIC8vIGJ1dCB0aGUgdXNlciBjYW4gc2V0IHRoaXMgZmllbGQgdG8gdXNlIGEgY3Vz
dG9tIGdldHRlciBpZiB0aGF0IGlzCi0gIC8vIGRlc2lyZWQuCi0gIE9zU3RhY2tUcmFjZUdldHRl
ckludGVyZmFjZSogb3Nfc3RhY2tfdHJhY2VfZ2V0dGVyXzsKLQotICAvLyBUcnVlIGlmZiBQb3N0
RmxhZ1BhcnNpbmdJbml0KCkgaGFzIGJlZW4gY2FsbGVkLgotICBib29sIHBvc3RfZmxhZ19wYXJz
ZV9pbml0X3BlcmZvcm1lZF87Ci0KLSAgLy8gVGhlIHJhbmRvbSBudW1iZXIgc2VlZCB1c2VkIGF0
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRlc3QgcnVuLgotICBpbnQgcmFuZG9tX3NlZWRfOwotCi0g
IC8vIE91ciByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4KLSAgaW50ZXJuYWw6OlJhbmRvbSByYW5k
b21fOwotCi0gIC8vIFRoZSB0aW1lIG9mIHRoZSB0ZXN0IHByb2dyYW0gc3RhcnQsIGluIG1zIGZy
b20gdGhlIHN0YXJ0IG9mIHRoZQotICAvLyBVTklYIGVwb2NoLgotICBUaW1lSW5NaWxsaXMgc3Rh
cnRfdGltZXN0YW1wXzsKLQotICAvLyBIb3cgbG9uZyB0aGUgdGVzdCB0b29rIHRvIHJ1biwgaW4g
bWlsbGlzZWNvbmRzLgotICBUaW1lSW5NaWxsaXMgZWxhcHNlZF90aW1lXzsKLQotI2lmIEdURVNU
X0hBU19ERUFUSF9URVNUCi0gIC8vIFRoZSBkZWNvbXBvc2VkIGNvbXBvbmVudHMgb2YgdGhlIGd0
ZXN0X2ludGVybmFsX3J1bl9kZWF0aF90ZXN0IGZsYWcsCi0gIC8vIHBhcnNlZCB3aGVuIFJVTl9B
TExfVEVTVFMgaXMgY2FsbGVkLgotICBpbnRlcm5hbDo6c2NvcGVkX3B0cjxJbnRlcm5hbFJ1bkRl
YXRoVGVzdEZsYWc+IGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfOwotICBpbnRlcm5hbDo6
c2NvcGVkX3B0cjxpbnRlcm5hbDo6RGVhdGhUZXN0RmFjdG9yeT4gZGVhdGhfdGVzdF9mYWN0b3J5
XzsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotICAvLyBBIHBlci10aHJlYWQg
c3RhY2sgb2YgdHJhY2VzIGNyZWF0ZWQgYnkgdGhlIFNDT1BFRF9UUkFDRSgpIG1hY3JvLgotICBp
bnRlcm5hbDo6VGhyZWFkTG9jYWw8c3RkOjp2ZWN0b3I8VHJhY2VJbmZvPiA+IGd0ZXN0X3RyYWNl
X3N0YWNrXzsKLQotICAvLyBUaGUgdmFsdWUgb2YgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25z
KSBhdCB0aGUgbW9tZW50IFJ1bkFsbFRlc3RzKCkKLSAgLy8gc3RhcnRzLgotICBib29sIGNhdGNo
X2V4Y2VwdGlvbnNfOwotCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVW5pdFRl
c3RJbXBsKTsKLX07ICAvLyBjbGFzcyBVbml0VGVzdEltcGwKLQotLy8gQ29udmVuaWVuY2UgZnVu
Y3Rpb24gZm9yIGFjY2Vzc2luZyB0aGUgZ2xvYmFsIFVuaXRUZXN0Ci0vLyBpbXBsZW1lbnRhdGlv
biBvYmplY3QuCi1pbmxpbmUgVW5pdFRlc3RJbXBsKiBHZXRVbml0VGVzdEltcGwoKSB7Ci0gIHJl
dHVybiBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+aW1wbCgpOwotfQotCi0jaWYgR1RFU1RfVVNF
U19TSU1QTEVfUkUKLQotLy8gSW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50
aW5nIHRoZSBzaW1wbGUgcmVndWxhcgotLy8gZXhwcmVzc2lvbiBtYXRjaGVyLgotR1RFU1RfQVBJ
XyBib29sIElzSW5TZXQoY2hhciBjaCwgY29uc3QgY2hhciogc3RyKTsKLUdURVNUX0FQSV8gYm9v
bCBJc0FzY2lpRGlnaXQoY2hhciBjaCk7Ci1HVEVTVF9BUElfIGJvb2wgSXNBc2NpaVB1bmN0KGNo
YXIgY2gpOwotR1RFU1RfQVBJXyBib29sIElzUmVwZWF0KGNoYXIgY2gpOwotR1RFU1RfQVBJXyBi
b29sIElzQXNjaWlXaGl0ZVNwYWNlKGNoYXIgY2gpOwotR1RFU1RfQVBJXyBib29sIElzQXNjaWlX
b3JkQ2hhcihjaGFyIGNoKTsKLUdURVNUX0FQSV8gYm9vbCBJc1ZhbGlkRXNjYXBlKGNoYXIgY2gp
OwotR1RFU1RfQVBJXyBib29sIEF0b21NYXRjaGVzQ2hhcihib29sIGVzY2FwZWQsIGNoYXIgcGF0
dGVybiwgY2hhciBjaCk7Ci1HVEVTVF9BUElfIGJvb2wgVmFsaWRhdGVSZWdleChjb25zdCBjaGFy
KiByZWdleCk7Ci1HVEVTVF9BUElfIGJvb2wgTWF0Y2hSZWdleEF0SGVhZChjb25zdCBjaGFyKiBy
ZWdleCwgY29uc3QgY2hhciogc3RyKTsKLUdURVNUX0FQSV8gYm9vbCBNYXRjaFJlcGV0aXRpb25B
bmRSZWdleEF0SGVhZCgKLSAgICBib29sIGVzY2FwZWQsIGNoYXIgY2gsIGNoYXIgcmVwZWF0LCBj
b25zdCBjaGFyKiByZWdleCwgY29uc3QgY2hhciogc3RyKTsKLUdURVNUX0FQSV8gYm9vbCBNYXRj
aFJlZ2V4QW55d2hlcmUoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cik7Ci0KLSNl
bmRpZiAgLy8gR1RFU1RfVVNFU19TSU1QTEVfUkUKLQotLy8gUGFyc2VzIHRoZSBjb21tYW5kIGxp
bmUgZm9yIEdvb2dsZSBUZXN0IGZsYWdzLCB3aXRob3V0IGluaXRpYWxpemluZwotLy8gb3RoZXIg
cGFydHMgb2YgR29vZ2xlIFRlc3QuCi1HVEVTVF9BUElfIHZvaWQgUGFyc2VHb29nbGVUZXN0Rmxh
Z3NPbmx5KGludCogYXJnYywgY2hhcioqIGFyZ3YpOwotR1RFU1RfQVBJXyB2b2lkIFBhcnNlR29v
Z2xlVGVzdEZsYWdzT25seShpbnQqIGFyZ2MsIHdjaGFyX3QqKiBhcmd2KTsKLQotI2lmIEdURVNU
X0hBU19ERUFUSF9URVNUCi0KLS8vIFJldHVybnMgdGhlIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUg
bGFzdCBzeXN0ZW0gZXJyb3IsIHJlZ2FyZGxlc3Mgb2YgdGhlCi0vLyBwbGF0Zm9ybS4KLUdURVNU
X0FQSV8gc3RkOjpzdHJpbmcgR2V0TGFzdEVycm5vRGVzY3JpcHRpb24oKTsKLQotLy8gQXR0ZW1w
dHMgdG8gcGFyc2UgYSBzdHJpbmcgaW50byBhIHBvc2l0aXZlIGludGVnZXIgcG9pbnRlZCB0byBi
eSB0aGUKLS8vIG51bWJlciBwYXJhbWV0ZXIuICBSZXR1cm5zIHRydWUgaWYgdGhhdCBpcyBwb3Nz
aWJsZS4KLS8vIEdURVNUX0hBU19ERUFUSF9URVNUIGltcGxpZXMgdGhhdCB3ZSBoYXZlIDo6c3Rk
OjpzdHJpbmcsIHNvIHdlIGNhbiB1c2UKLS8vIGl0IGhlcmUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
SW50ZWdlcj4KLWJvb2wgUGFyc2VOYXR1cmFsTnVtYmVyKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0
ciwgSW50ZWdlciogbnVtYmVyKSB7Ci0gIC8vIEZhaWwgZmFzdCBpZiB0aGUgZ2l2ZW4gc3RyaW5n
IGRvZXMgbm90IGJlZ2luIHdpdGggYSBkaWdpdDsKLSAgLy8gdGhpcyBieXBhc3NlcyBzdHJ0b1hY
WCdzICJvcHRpb25hbCBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIHBsdXMKLSAgLy8gb3IgbWludXMg
c2lnbiIgc2VtYW50aWNzLCB3aGljaCBhcmUgdW5kZXNpcmFibGUgaGVyZS4KLSAgaWYgKHN0ci5l
bXB0eSgpIHx8ICFJc0RpZ2l0KHN0clswXSkpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAg
ZXJybm8gPSAwOwotCi0gIGNoYXIqIGVuZDsKLSAgLy8gQmlnZ2VzdENvbnZlcnRpYmxlIGlzIHRo
ZSBsYXJnZXN0IGludGVnZXIgdHlwZSB0aGF0IHN5c3RlbS1wcm92aWRlZAotICAvLyBzdHJpbmct
dG8tbnVtYmVyIGNvbnZlcnNpb24gcm91dGluZXMgY2FuIHJldHVybi4KLQotIyBpZiBHVEVTVF9P
U19XSU5ET1dTICYmICFkZWZpbmVkKF9fR05VQ19fKQotCi0gIC8vIE1TVkMgYW5kIEMrKyBCdWls
ZGVyIGRlZmluZSBfX2ludDY0IGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIGxvbmcgbG9uZy4KLSAg
dHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IEJpZ2dlc3RDb252ZXJ0aWJsZTsKLSAgY29uc3QgQmln
Z2VzdENvbnZlcnRpYmxlIHBhcnNlZCA9IF9zdHJ0b3VpNjQoc3RyLmNfc3RyKCksICZlbmQsIDEw
KTsKLQotIyBlbHNlCi0KLSAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgQmlnZ2VzdENvbnZl
cnRpYmxlOyAgLy8gTk9MSU5UCi0gIGNvbnN0IEJpZ2dlc3RDb252ZXJ0aWJsZSBwYXJzZWQgPSBz
dHJ0b3VsbChzdHIuY19zdHIoKSwgJmVuZCwgMTApOwotCi0jIGVuZGlmICAvLyBHVEVTVF9PU19X
SU5ET1dTICYmICFkZWZpbmVkKF9fR05VQ19fKQotCi0gIGNvbnN0IGJvb2wgcGFyc2Vfc3VjY2Vz
cyA9ICplbmQgPT0gJ1wwJyAmJiBlcnJubyA9PSAwOwotCi0gIC8vIFRPRE8odmxhZGxAZ29vZ2xl
LmNvbSk6IENvbnZlcnQgdGhpcyB0byBjb21waWxlIHRpbWUgYXNzZXJ0aW9uIHdoZW4gaXQgaXMK
LSAgLy8gYXZhaWxhYmxlLgotICBHVEVTVF9DSEVDS18oc2l6ZW9mKEludGVnZXIpIDw9IHNpemVv
ZihwYXJzZWQpKTsKLQotICBjb25zdCBJbnRlZ2VyIHJlc3VsdCA9IHN0YXRpY19jYXN0PEludGVn
ZXI+KHBhcnNlZCk7Ci0gIGlmIChwYXJzZV9zdWNjZXNzICYmIHN0YXRpY19jYXN0PEJpZ2dlc3RD
b252ZXJ0aWJsZT4ocmVzdWx0KSA9PSBwYXJzZWQpIHsKLSAgICAqbnVtYmVyID0gcmVzdWx0Owot
ICAgIHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX0RFQVRIX1RFU1QKLQotLy8gVGVzdFJlc3VsdCBjb250YWlucyBzb21lIHByaXZhdGUg
bWV0aG9kcyB0aGF0IHNob3VsZCBiZSBoaWRkZW4gZnJvbQotLy8gR29vZ2xlIFRlc3QgdXNlciBi
dXQgYXJlIHJlcXVpcmVkIGZvciB0ZXN0aW5nLiBUaGlzIGNsYXNzIGFsbG93IG91ciB0ZXN0cwot
Ly8gdG8gYWNjZXNzIHRoZW0uCi0vLwotLy8gVGhpcyBjbGFzcyBpcyBzdXBwbGllZCBvbmx5IGZv
ciB0aGUgcHVycG9zZSBvZiB0ZXN0aW5nIEdvb2dsZSBUZXN0J3Mgb3duCi0vLyBjb25zdHJ1Y3Rz
LiBEbyBub3QgdXNlIGl0IGluIHVzZXIgdGVzdHMsIGVpdGhlciBkaXJlY3RseSBvciBpbmRpcmVj
dGx5LgotY2xhc3MgVGVzdFJlc3VsdEFjY2Vzc29yIHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lk
IFJlY29yZFByb3BlcnR5KFRlc3RSZXN1bHQqIHRlc3RfcmVzdWx0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgeG1sX2VsZW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RQcm9wZXJ0eSYgcHJvcGVydHkpIHsKLSAgICB0
ZXN0X3Jlc3VsdC0+UmVjb3JkUHJvcGVydHkoeG1sX2VsZW1lbnQsIHByb3BlcnR5KTsKLSAgfQot
Ci0gIHN0YXRpYyB2b2lkIENsZWFyVGVzdFBhcnRSZXN1bHRzKFRlc3RSZXN1bHQqIHRlc3RfcmVz
dWx0KSB7Ci0gICAgdGVzdF9yZXN1bHQtPkNsZWFyVGVzdFBhcnRSZXN1bHRzKCk7Ci0gIH0KLQot
ICBzdGF0aWMgY29uc3Qgc3RkOjp2ZWN0b3I8dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ+JiB0ZXN0
X3BhcnRfcmVzdWx0cygKLSAgICAgIGNvbnN0IFRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0KSB7Ci0g
ICAgcmV0dXJuIHRlc3RfcmVzdWx0LnRlc3RfcGFydF9yZXN1bHRzKCk7Ci0gIH0KLX07Ci0KLSNp
ZiBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfCi0KLS8vIFN0cmVhbXMgdGVzdCByZXN1bHRzIHRv
IHRoZSBnaXZlbiBwb3J0IG9uIHRoZSBnaXZlbiBob3N0IG1hY2hpbmUuCi1jbGFzcyBHVEVTVF9B
UElfIFN0cmVhbWluZ0xpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewot
IHB1YmxpYzoKLSAgLy8gQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3Igd3JpdGluZyBzdHJpbmdzIHRv
IGEgc29ja2V0LgotICBjbGFzcyBBYnN0cmFjdFNvY2tldFdyaXRlciB7Ci0gICBwdWJsaWM6Ci0g
ICAgdmlydHVhbCB+QWJzdHJhY3RTb2NrZXRXcml0ZXIoKSB7fQotCi0gICAgLy8gU2VuZHMgYSBz
dHJpbmcgdG8gdGhlIHNvY2tldC4KLSAgICB2aXJ0dWFsIHZvaWQgU2VuZChjb25zdCBzdGQ6OnN0
cmluZyYgbWVzc2FnZSkgPSAwOwotCi0gICAgLy8gQ2xvc2VzIHRoZSBzb2NrZXQuCi0gICAgdmly
dHVhbCB2b2lkIENsb3NlQ29ubmVjdGlvbigpIHt9Ci0KLSAgICAvLyBTZW5kcyBhIHN0cmluZyBh
bmQgYSBuZXdsaW5lIHRvIHRoZSBzb2NrZXQuCi0gICAgdm9pZCBTZW5kTG4oY29uc3Qgc3RkOjpz
dHJpbmcmIG1lc3NhZ2UpIHsgU2VuZChtZXNzYWdlICsgIlxuIik7IH0KLSAgfTsKLQotICAvLyBD
b25jcmV0ZSBjbGFzcyBmb3IgYWN0dWFsbHkgd3JpdGluZyBzdHJpbmdzIHRvIGEgc29ja2V0Lgot
ICBjbGFzcyBTb2NrZXRXcml0ZXIgOiBwdWJsaWMgQWJzdHJhY3RTb2NrZXRXcml0ZXIgewotICAg
cHVibGljOgotICAgIFNvY2tldFdyaXRlcihjb25zdCBzdGQ6OnN0cmluZyYgaG9zdCwgY29uc3Qg
c3RkOjpzdHJpbmcmIHBvcnQpCi0gICAgICAgIDogc29ja2ZkXygtMSksIGhvc3RfbmFtZV8oaG9z
dCksIHBvcnRfbnVtXyhwb3J0KSB7Ci0gICAgICBNYWtlQ29ubmVjdGlvbigpOwotICAgIH0KLQot
ICAgIHZpcnR1YWwgflNvY2tldFdyaXRlcigpIHsKLSAgICAgIGlmIChzb2NrZmRfICE9IC0xKQot
ICAgICAgICBDbG9zZUNvbm5lY3Rpb24oKTsKLSAgICB9Ci0KLSAgICAvLyBTZW5kcyBhIHN0cmlu
ZyB0byB0aGUgc29ja2V0LgotICAgIHZpcnR1YWwgdm9pZCBTZW5kKGNvbnN0IHN0ZDo6c3RyaW5n
JiBtZXNzYWdlKSB7Ci0gICAgICBHVEVTVF9DSEVDS18oc29ja2ZkXyAhPSAtMSkKLSAgICAgICAg
ICA8PCAiU2VuZCgpIGNhbiBiZSBjYWxsZWQgb25seSB3aGVuIHRoZXJlIGlzIGEgY29ubmVjdGlv
bi4iOwotCi0gICAgICBjb25zdCBpbnQgbGVuID0gc3RhdGljX2Nhc3Q8aW50PihtZXNzYWdlLmxl
bmd0aCgpKTsKLSAgICAgIGlmICh3cml0ZShzb2NrZmRfLCBtZXNzYWdlLmNfc3RyKCksIGxlbikg
IT0gbGVuKSB7Ci0gICAgICAgIEdURVNUX0xPR18oV0FSTklORykKLSAgICAgICAgICAgIDw8ICJz
dHJlYW1fcmVzdWx0X3RvOiBmYWlsZWQgdG8gc3RyZWFtIHRvICIKLSAgICAgICAgICAgIDw8IGhv
c3RfbmFtZV8gPDwgIjoiIDw8IHBvcnRfbnVtXzsKLSAgICAgIH0KLSAgICB9Ci0KLSAgIHByaXZh
dGU6Ci0gICAgLy8gQ3JlYXRlcyBhIGNsaWVudCBzb2NrZXQgYW5kIGNvbm5lY3RzIHRvIHRoZSBz
ZXJ2ZXIuCi0gICAgdm9pZCBNYWtlQ29ubmVjdGlvbigpOwotCi0gICAgLy8gQ2xvc2VzIHRoZSBz
b2NrZXQuCi0gICAgdm9pZCBDbG9zZUNvbm5lY3Rpb24oKSB7Ci0gICAgICBHVEVTVF9DSEVDS18o
c29ja2ZkXyAhPSAtMSkKLSAgICAgICAgICA8PCAiQ2xvc2VDb25uZWN0aW9uKCkgY2FuIGJlIGNh
bGxlZCBvbmx5IHdoZW4gdGhlcmUgaXMgYSBjb25uZWN0aW9uLiI7Ci0KLSAgICAgIGNsb3NlKHNv
Y2tmZF8pOwotICAgICAgc29ja2ZkXyA9IC0xOwotICAgIH0KLQotICAgIGludCBzb2NrZmRfOyAg
Ly8gc29ja2V0IGZpbGUgZGVzY3JpcHRvcgotICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGhvc3RfbmFt
ZV87Ci0gICAgY29uc3Qgc3RkOjpzdHJpbmcgcG9ydF9udW1fOwotCi0gICAgR1RFU1RfRElTQUxM
T1dfQ09QWV9BTkRfQVNTSUdOXyhTb2NrZXRXcml0ZXIpOwotICB9OyAgLy8gY2xhc3MgU29ja2V0
V3JpdGVyCi0KLSAgLy8gRXNjYXBlcyAnPScsICcmJywgJyUnLCBhbmQgJ1xuJyBjaGFyYWN0ZXJz
IGluIHN0ciBhcyAiJXh4Ii4KLSAgc3RhdGljIHN0ZDo6c3RyaW5nIFVybEVuY29kZShjb25zdCBj
aGFyKiBzdHIpOwotCi0gIFN0cmVhbWluZ0xpc3RlbmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBob3N0
LCBjb25zdCBzdGQ6OnN0cmluZyYgcG9ydCkKLSAgICAgIDogc29ja2V0X3dyaXRlcl8obmV3IFNv
Y2tldFdyaXRlcihob3N0LCBwb3J0KSkgewotICAgIFN0YXJ0KCk7Ci0gIH0KLQotICBleHBsaWNp
dCBTdHJlYW1pbmdMaXN0ZW5lcihBYnN0cmFjdFNvY2tldFdyaXRlciogc29ja2V0X3dyaXRlcikK
LSAgICAgIDogc29ja2V0X3dyaXRlcl8oc29ja2V0X3dyaXRlcikgeyBTdGFydCgpOyB9Ci0KLSAg
dm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLykg
ewotICAgIFNlbmRMbigiZXZlbnQ9VGVzdFByb2dyYW1TdGFydCIpOwotICB9Ci0KLSAgdm9pZCBP
blRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKLSAgICAvLyBOb3Rl
IHRoYXQgR29vZ2xlIFRlc3QgY3VycmVudCBvbmx5IHJlcG9ydCBlbGFwc2VkIHRpbWUgZm9yIGVh
Y2gKLSAgICAvLyB0ZXN0IGl0ZXJhdGlvbiwgbm90IGZvciB0aGUgZW50aXJlIHRlc3QgcHJvZ3Jh
bS4KLSAgICBTZW5kTG4oImV2ZW50PVRlc3RQcm9ncmFtRW5kJnBhc3NlZD0iICsgRm9ybWF0Qm9v
bCh1bml0X3Rlc3QuUGFzc2VkKCkpKTsKLQotICAgIC8vIE5vdGlmeSB0aGUgc3RyZWFtaW5nIHNl
cnZlciB0byBzdG9wLgotICAgIHNvY2tldF93cml0ZXJfLT5DbG9zZUNvbm5lY3Rpb24oKTsKLSAg
fQotCi0gIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRf
dGVzdCAqLywgaW50IGl0ZXJhdGlvbikgewotICAgIFNlbmRMbigiZXZlbnQ9VGVzdEl0ZXJhdGlv
blN0YXJ0Jml0ZXJhdGlvbj0iICsKLSAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKGl0ZXJh
dGlvbikpOwotICB9Ci0KLSAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCwgaW50IC8qIGl0ZXJhdGlvbiAqLykgewotICAgIFNlbmRMbigiZXZlbnQ9VGVz
dEl0ZXJhdGlvbkVuZCZwYXNzZWQ9IiArCi0gICAgICAgICAgIEZvcm1hdEJvb2wodW5pdF90ZXN0
LlBhc3NlZCgpKSArICImZWxhcHNlZF90aW1lPSIgKwotICAgICAgICAgICBTdHJlYW1hYmxlVG9T
dHJpbmcodW5pdF90ZXN0LmVsYXBzZWRfdGltZSgpKSArICJtcyIpOwotICB9Ci0KLSAgdm9pZCBP
blRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgewotICAgIFNlbmRMbihz
dGQ6OnN0cmluZygiZXZlbnQ9VGVzdENhc2VTdGFydCZuYW1lPSIpICsgdGVzdF9jYXNlLm5hbWUo
KSk7Ci0gIH0KLQotICB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2Fz
ZSkgewotICAgIFNlbmRMbigiZXZlbnQ9VGVzdENhc2VFbmQmcGFzc2VkPSIgKyBGb3JtYXRCb29s
KHRlc3RfY2FzZS5QYXNzZWQoKSkKLSAgICAgICAgICAgKyAiJmVsYXBzZWRfdGltZT0iICsgU3Ry
ZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSkKLSAgICAgICAgICAgKyAi
bXMiKTsKLSAgfQotCi0gIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5m
bykgewotICAgIFNlbmRMbihzdGQ6OnN0cmluZygiZXZlbnQ9VGVzdFN0YXJ0Jm5hbWU9IikgKyB0
ZXN0X2luZm8ubmFtZSgpKTsKLSAgfQotCi0gIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZv
JiB0ZXN0X2luZm8pIHsKLSAgICBTZW5kTG4oImV2ZW50PVRlc3RFbmQmcGFzc2VkPSIgKwotICAg
ICAgICAgICBGb3JtYXRCb29sKCh0ZXN0X2luZm8ucmVzdWx0KCkpLT5QYXNzZWQoKSkgKwotICAg
ICAgICAgICAiJmVsYXBzZWRfdGltZT0iICsKLSAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5n
KCh0ZXN0X2luZm8ucmVzdWx0KCkpLT5lbGFwc2VkX3RpbWUoKSkgKyAibXMiKTsKLSAgfQotCi0g
IHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jl
c3VsdCkgewotICAgIGNvbnN0IGNoYXIqIGZpbGVfbmFtZSA9IHRlc3RfcGFydF9yZXN1bHQuZmls
ZV9uYW1lKCk7Ci0gICAgaWYgKGZpbGVfbmFtZSA9PSBOVUxMKQotICAgICAgZmlsZV9uYW1lID0g
IiI7Ci0gICAgU2VuZExuKCJldmVudD1UZXN0UGFydFJlc3VsdCZmaWxlPSIgKyBVcmxFbmNvZGUo
ZmlsZV9uYW1lKSArCi0gICAgICAgICAgICImbGluZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRl
c3RfcGFydF9yZXN1bHQubGluZV9udW1iZXIoKSkgKwotICAgICAgICAgICAiJm1lc3NhZ2U9IiAr
IFVybEVuY29kZSh0ZXN0X3BhcnRfcmVzdWx0Lm1lc3NhZ2UoKSkpOwotICB9Ci0KLSBwcml2YXRl
OgotICAvLyBTZW5kcyB0aGUgZ2l2ZW4gbWVzc2FnZSBhbmQgYSBuZXdsaW5lIHRvIHRoZSBzb2Nr
ZXQuCi0gIHZvaWQgU2VuZExuKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7IHNvY2tldF93
cml0ZXJfLT5TZW5kTG4obWVzc2FnZSk7IH0KLQotICAvLyBDYWxsZWQgYXQgdGhlIHN0YXJ0IG9m
IHN0cmVhbWluZyB0byBub3RpZnkgdGhlIHJlY2VpdmVyIHdoYXQKLSAgLy8gcHJvdG9jb2wgd2Ug
YXJlIHVzaW5nLgotICB2b2lkIFN0YXJ0KCkgeyBTZW5kTG4oImd0ZXN0X3N0cmVhbWluZ19wcm90
b2NvbF92ZXJzaW9uPTEuMCIpOyB9Ci0KLSAgc3RkOjpzdHJpbmcgRm9ybWF0Qm9vbChib29sIHZh
bHVlKSB7IHJldHVybiB2YWx1ZSA/ICIxIiA6ICIwIjsgfQotCi0gIGNvbnN0IHNjb3BlZF9wdHI8
QWJzdHJhY3RTb2NrZXRXcml0ZXI+IHNvY2tldF93cml0ZXJfOwotCi0gIEdURVNUX0RJU0FMTE9X
X0NPUFlfQU5EX0FTU0lHTl8oU3RyZWFtaW5nTGlzdGVuZXIpOwotfTsgIC8vIGNsYXNzIFN0cmVh
bWluZ0xpc3RlbmVyCi0KLSNlbmRpZiAgLy8gR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotCi19
ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0KLSNlbmRp
ZiAgLy8gR1RFU1RfU1JDX0dURVNUX0lOVEVSTkFMX0lOTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LXBvcnQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDE3MTFmZGFmMmVkZDc4Y2EzYzYxN2JjYjQzMGJhODRlYTZlNmRlMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYworKysgL2Rldi9udWxsCkBAIC0xLDEyMzUgKzAsMCBAQAot
Ly8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
Ly8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBk
aXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8g
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhv
cjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotI2luY2x1ZGUgImd0ZXN0L2ludGVy
bmFsL2d0ZXN0LXBvcnQuaCIKLQotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0ZGxp
Yi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8
ZnN0cmVhbT4KLQotI2lmIEdURVNUX09TX1dJTkRPV1MKLSMgaW5jbHVkZSA8d2luZG93cy5oPgot
IyBpbmNsdWRlIDxpby5oPgotIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotIyBpbmNsdWRlIDxtYXA+
ICAvLyBVc2VkIGluIFRocmVhZExvY2FsLgotI2Vsc2UKLSMgaW5jbHVkZSA8dW5pc3RkLmg+Ci0j
ZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKLQotI2lmIEdURVNUX09TX01BQwotIyBpbmNsdWRl
IDxtYWNoL21hY2hfaW5pdC5oPgotIyBpbmNsdWRlIDxtYWNoL3Rhc2suaD4KLSMgaW5jbHVkZSA8
bWFjaC92bV9tYXAuaD4KLSNlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCi0KLSNpZiBHVEVTVF9PU19R
TlgKLSMgaW5jbHVkZSA8ZGV2Y3RsLmg+Ci0jIGluY2x1ZGUgPGZjbnRsLmg+Ci0jIGluY2x1ZGUg
PHN5cy9wcm9jZnMuaD4KLSNlbmRpZiAgLy8gR1RFU1RfT1NfUU5YCi0KLSNpZiBHVEVTVF9PU19B
SVgKLSMgaW5jbHVkZSA8cHJvY2luZm8uaD4KLSMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jZW5k
aWYgIC8vIEdURVNUX09TX0FJWAotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiCi0jaW5j
bHVkZSAiZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LWludGVybmFsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgi
Ci0jaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgotCi1uYW1lc3BhY2UgdGVzdGlu
ZyB7Ci1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVm
aW5lZChfX0JPUkxBTkRDX18pCi0vLyBNU1ZDIGFuZCBDKytCdWlsZGVyIGRvIG5vdCBwcm92aWRl
IGEgZGVmaW5pdGlvbiBvZiBTVERFUlJfRklMRU5PLgotY29uc3QgaW50IGtTdGRPdXRGaWxlbm8g
PSAxOwotY29uc3QgaW50IGtTdGRFcnJGaWxlbm8gPSAyOwotI2Vsc2UKLWNvbnN0IGludCBrU3Rk
T3V0RmlsZW5vID0gU1RET1VUX0ZJTEVOTzsKLWNvbnN0IGludCBrU3RkRXJyRmlsZW5vID0gU1RE
RVJSX0ZJTEVOTzsKLSNlbmRpZiAgLy8gX01TQ19WRVIKLQotI2lmIEdURVNUX09TX0xJTlVYCi0K
LW5hbWVzcGFjZSB7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLVQgUmVhZFByb2NGaWxlRmllbGQo
Y29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVuYW1lLCBpbnQgZmllbGQpIHsKLSAgc3RkOjpzdHJpbmcg
ZHVtbXk7Ci0gIHN0ZDo6aWZzdHJlYW0gZmlsZShmaWxlbmFtZS5jX3N0cigpKTsKLSAgd2hpbGUg
KGZpZWxkLS0gPiAwKSB7Ci0gICAgZmlsZSA+PiBkdW1teTsKLSAgfQotICBUIG91dHB1dCA9IDA7
Ci0gIGZpbGUgPj4gb3V0cHV0OwotICByZXR1cm4gb3V0cHV0OwotfQotfSAgLy8gbmFtZXNwYWNl
Ci0KLS8vIFJldHVybnMgdGhlIG51bWJlciBvZiBhY3RpdmUgdGhyZWFkcywgb3IgMCB3aGVuIHRo
ZXJlIGlzIGFuIGVycm9yLgotc2l6ZV90IEdldFRocmVhZENvdW50KCkgewotICBjb25zdCBzdGQ6
OnN0cmluZyBmaWxlbmFtZSA9Ci0gICAgICAoTWVzc2FnZSgpIDw8ICIvcHJvYy8iIDw8IGdldHBp
ZCgpIDw8ICIvc3RhdCIpLkdldFN0cmluZygpOwotICByZXR1cm4gUmVhZFByb2NGaWxlRmllbGQ8
aW50PihmaWxlbmFtZSwgMTkpOwotfQotCi0jZWxpZiBHVEVTVF9PU19NQUMKLQotc2l6ZV90IEdl
dFRocmVhZENvdW50KCkgewotICBjb25zdCB0YXNrX3QgdGFzayA9IG1hY2hfdGFza19zZWxmKCk7
Ci0gIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgdGhyZWFkX2NvdW50OwotICB0aHJlYWRfYWN0X2Fy
cmF5X3QgdGhyZWFkX2xpc3Q7Ci0gIGNvbnN0IGtlcm5fcmV0dXJuX3Qgc3RhdHVzID0gdGFza190
aHJlYWRzKHRhc2ssICZ0aHJlYWRfbGlzdCwgJnRocmVhZF9jb3VudCk7Ci0gIGlmIChzdGF0dXMg
PT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgLy8gdGFza190aHJlYWRzIGFsbG9jYXRlcyByZXNvdXJj
ZXMgaW4gdGhyZWFkX2xpc3QgYW5kIHdlIG5lZWQgdG8gZnJlZSB0aGVtCi0gICAgLy8gdG8gYXZv
aWQgbGVha3MuCi0gICAgdm1fZGVhbGxvY2F0ZSh0YXNrLAotICAgICAgICAgICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx2bV9hZGRyZXNzX3Q+KHRocmVhZF9saXN0KSwKLSAgICAgICAgICAgICAg
ICAgIHNpemVvZih0aHJlYWRfdCkgKiB0aHJlYWRfY291bnQpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxzaXplX3Q+KHRocmVhZF9jb3VudCk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIDA7Ci0g
IH0KLX0KLQotI2VsaWYgR1RFU1RfT1NfUU5YCi0KLS8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0
aHJlYWRzIHJ1bm5pbmcgaW4gdGhlIHByb2Nlc3MsIG9yIDAgdG8gaW5kaWNhdGUgdGhhdAotLy8g
d2UgY2Fubm90IGRldGVjdCBpdC4KLXNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKLSAgY29uc3Qg
aW50IGZkID0gb3BlbigiL3Byb2Mvc2VsZi9hcyIsIE9fUkRPTkxZKTsKLSAgaWYgKGZkIDwgMCkg
ewotICAgIHJldHVybiAwOwotICB9Ci0gIHByb2Nmc19pbmZvIHByb2Nlc3NfaW5mbzsKLSAgY29u
c3QgaW50IHN0YXR1cyA9Ci0gICAgICBkZXZjdGwoZmQsIERDTURfUFJPQ19JTkZPLCAmcHJvY2Vz
c19pbmZvLCBzaXplb2YocHJvY2Vzc19pbmZvKSwgTlVMTCk7Ci0gIGNsb3NlKGZkKTsKLSAgaWYg
KHN0YXR1cyA9PSBFT0spIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90Pihwcm9jZXNz
X2luZm8ubnVtX3RocmVhZHMpOwotICB9IGVsc2UgewotICAgIHJldHVybiAwOwotICB9Ci19Ci0K
LSNlbGlmIEdURVNUX09TX0FJWAotCi1zaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7Ci0gIHN0cnVj
dCBwcm9jZW50cnk2NCBlbnRyeTsKLSAgcGlkX3QgcGlkID0gZ2V0cGlkKCk7Ci0gIGludCBzdGF0
dXMgPSBnZXRwcm9jczY0KCZlbnRyeSwgc2l6ZW9mKGVudHJ5KSwgTlVMTCwgMCwgJnBpZCwgMSk7
Ci0gIGlmIChzdGF0dXMgPT0gMSkgewotICAgIHJldHVybiBlbnRyeS5waV90aGNvdW50OwotICB9
IGVsc2UgewotICAgIHJldHVybiAwOwotICB9Ci19Ci0KLSNlbHNlCi0KLXNpemVfdCBHZXRUaHJl
YWRDb3VudCgpIHsKLSAgLy8gVGhlcmUncyBubyBwb3J0YWJsZSB3YXkgdG8gZGV0ZWN0IHRoZSBu
dW1iZXIgb2YgdGhyZWFkcywgc28gd2UganVzdAotICAvLyByZXR1cm4gMCB0byBpbmRpY2F0ZSB0
aGF0IHdlIGNhbm5vdCBkZXRlY3QgaXQuCi0gIHJldHVybiAwOwotfQotCi0jZW5kaWYgIC8vIEdU
RVNUX09TX0xJTlVYCi0KLSNpZiBHVEVTVF9JU19USFJFQURTQUZFICYmIEdURVNUX09TX1dJTkRP
V1MKLQotdm9pZCBTbGVlcE1pbGxpc2Vjb25kcyhpbnQgbikgewotICA6OlNsZWVwKG4pOwotfQot
Ci1BdXRvSGFuZGxlOjpBdXRvSGFuZGxlKCkKLSAgICA6IGhhbmRsZV8oSU5WQUxJRF9IQU5ETEVf
VkFMVUUpIHt9Ci0KLUF1dG9IYW5kbGU6OkF1dG9IYW5kbGUoSGFuZGxlIGhhbmRsZSkKLSAgICA6
IGhhbmRsZV8oaGFuZGxlKSB7fQotCi1BdXRvSGFuZGxlOjp+QXV0b0hhbmRsZSgpIHsKLSAgUmVz
ZXQoKTsKLX0KLQotQXV0b0hhbmRsZTo6SGFuZGxlIEF1dG9IYW5kbGU6OkdldCgpIGNvbnN0IHsK
LSAgcmV0dXJuIGhhbmRsZV87Ci19Ci0KLXZvaWQgQXV0b0hhbmRsZTo6UmVzZXQoKSB7Ci0gIFJl
c2V0KElOVkFMSURfSEFORExFX1ZBTFVFKTsKLX0KLQotdm9pZCBBdXRvSGFuZGxlOjpSZXNldChI
QU5ETEUgaGFuZGxlKSB7Ci0gIC8vIFJlc2V0dGluZyB3aXRoIHRoZSBzYW1lIGhhbmRsZSB3ZSBh
bHJlYWR5IG93biBpcyBpbnZhbGlkLgotICBpZiAoaGFuZGxlXyAhPSBoYW5kbGUpIHsKLSAgICBp
ZiAoSXNDbG9zZWFibGUoKSkgewotICAgICAgOjpDbG9zZUhhbmRsZShoYW5kbGVfKTsKLSAgICB9
Ci0gICAgaGFuZGxlXyA9IGhhbmRsZTsKLSAgfSBlbHNlIHsKLSAgICBHVEVTVF9DSEVDS18oIUlz
Q2xvc2VhYmxlKCkpCi0gICAgICAgIDw8ICJSZXNldHRpbmcgYSB2YWxpZCBoYW5kbGUgdG8gaXRz
ZWxmIGlzIGxpa2VseSBhIHByb2dyYW1tZXIgZXJyb3IgIgotICAgICAgICAgICAgImFuZCB0aHVz
IG5vdCBhbGxvd2VkLiI7Ci0gIH0KLX0KLQotYm9vbCBBdXRvSGFuZGxlOjpJc0Nsb3NlYWJsZSgp
IGNvbnN0IHsKLSAgLy8gRGlmZmVyZW50IFdpbmRvd3MgQVBJcyBtYXkgdXNlIGVpdGhlciBvZiB0
aGVzZSB2YWx1ZXMgdG8gcmVwcmVzZW50IGFuCi0gIC8vIGludmFsaWQgaGFuZGxlLgotICByZXR1
cm4gaGFuZGxlXyAhPSBOVUxMICYmIGhhbmRsZV8gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7Ci19
Ci0KLU5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKCkKLSAgICA6IGV2ZW50Xyg6OkNyZWF0ZUV2
ZW50KE5VTEwsICAgLy8gRGVmYXVsdCBzZWN1cml0eSBhdHRyaWJ1dGVzLgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVFJVRSwgICAvLyBEbyBub3QgcmVzZXQgYXV0b21hdGljYWxseS4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLCAgLy8gSW5pdGlhbGx5IHVuc2V0LgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpIHsgIC8vIEFub255bW91cyBldmVudC4KLSAg
R1RFU1RfQ0hFQ0tfKGV2ZW50Xy5HZXQoKSAhPSBOVUxMKTsKLX0KLQotdm9pZCBOb3RpZmljYXRp
b246Ok5vdGlmeSgpIHsKLSAgR1RFU1RfQ0hFQ0tfKDo6U2V0RXZlbnQoZXZlbnRfLkdldCgpKSAh
PSBGQUxTRSk7Ci19Ci0KLXZvaWQgTm90aWZpY2F0aW9uOjpXYWl0Rm9yTm90aWZpY2F0aW9uKCkg
ewotICBHVEVTVF9DSEVDS18oCi0gICAgICA6OldhaXRGb3JTaW5nbGVPYmplY3QoZXZlbnRfLkdl
dCgpLCBJTkZJTklURSkgPT0gV0FJVF9PQkpFQ1RfMCk7Ci19Ci0KLU11dGV4OjpNdXRleCgpCi0g
ICAgOiBvd25lcl90aHJlYWRfaWRfKDApLAotICAgICAgdHlwZV8oa0R5bmFtaWMpLAotICAgICAg
Y3JpdGljYWxfc2VjdGlvbl9pbml0X3BoYXNlXygwKSwKLSAgICAgIGNyaXRpY2FsX3NlY3Rpb25f
KG5ldyBDUklUSUNBTF9TRUNUSU9OKSB7Ci0gIDo6SW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbihj
cml0aWNhbF9zZWN0aW9uXyk7Ci19Ci0KLU11dGV4Ojp+TXV0ZXgoKSB7Ci0gIC8vIFN0YXRpYyBt
dXRleGVzIGFyZSBsZWFrZWQgaW50ZW50aW9uYWxseS4gSXQgaXMgbm90IHRocmVhZC1zYWZlIHRv
IHRyeQotICAvLyB0byBjbGVhbiB0aGVtIHVwLgotICAvLyBUT0RPKHl1a2F3YSk6IFN3aXRjaCB0
byBTbGltIFJlYWRlci9Xcml0ZXIgKFNSVykgTG9ja3MsIHdoaWNoIHJlcXVpcmVzCi0gIC8vIG5v
dGhpbmcgdG8gY2xlYW4gaXQgdXAgYnV0IGlzIGF2YWlsYWJsZSBvbmx5IG9uIFZpc3RhIGFuZCBs
YXRlci4KLSAgLy8gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRv
d3MvZGVza3RvcC9hYTkwNDkzNy5hc3B4Ci0gIGlmICh0eXBlXyA9PSBrRHluYW1pYykgewotICAg
IDo6RGVsZXRlQ3JpdGljYWxTZWN0aW9uKGNyaXRpY2FsX3NlY3Rpb25fKTsKLSAgICBkZWxldGUg
Y3JpdGljYWxfc2VjdGlvbl87Ci0gICAgY3JpdGljYWxfc2VjdGlvbl8gPSBOVUxMOwotICB9Ci19
Ci0KLXZvaWQgTXV0ZXg6OkxvY2soKSB7Ci0gIFRocmVhZFNhZmVMYXp5SW5pdCgpOwotICA6OkVu
dGVyQ3JpdGljYWxTZWN0aW9uKGNyaXRpY2FsX3NlY3Rpb25fKTsKLSAgb3duZXJfdGhyZWFkX2lk
XyA9IDo6R2V0Q3VycmVudFRocmVhZElkKCk7Ci19Ci0KLXZvaWQgTXV0ZXg6OlVubG9jaygpIHsK
LSAgVGhyZWFkU2FmZUxhenlJbml0KCk7Ci0gIC8vIFdlIGRvbid0IHByb3RlY3Qgd3JpdGluZyB0
byBvd25lcl90aHJlYWRfaWRfIGhlcmUsIGFzIGl0J3MgdGhlCi0gIC8vIGNhbGxlcidzIHJlc3Bv
bnNpYmlsaXR5IHRvIGVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IHRocmVhZCBob2xkcyB0aGUKLSAg
Ly8gbXV0ZXggd2hlbiB0aGlzIGlzIGNhbGxlZC4KLSAgb3duZXJfdGhyZWFkX2lkXyA9IDA7Ci0g
IDo6TGVhdmVDcml0aWNhbFNlY3Rpb24oY3JpdGljYWxfc2VjdGlvbl8pOwotfQotCi0vLyBEb2Vz
IG5vdGhpbmcgaWYgdGhlIGN1cnJlbnQgdGhyZWFkIGhvbGRzIHRoZSBtdXRleC4gT3RoZXJ3aXNl
LCBjcmFzaGVzCi0vLyB3aXRoIGhpZ2ggcHJvYmFiaWxpdHkuCi12b2lkIE11dGV4OjpBc3NlcnRI
ZWxkKCkgewotICBUaHJlYWRTYWZlTGF6eUluaXQoKTsKLSAgR1RFU1RfQ0hFQ0tfKG93bmVyX3Ro
cmVhZF9pZF8gPT0gOjpHZXRDdXJyZW50VGhyZWFkSWQoKSkKLSAgICAgIDw8ICJUaGUgY3VycmVu
dCB0aHJlYWQgaXMgbm90IGhvbGRpbmcgdGhlIG11dGV4IEAiIDw8IHRoaXM7Ci19Ci0KLS8vIElu
aXRpYWxpemVzIG93bmVyX3RocmVhZF9pZF8gYW5kIGNyaXRpY2FsX3NlY3Rpb25fIGluIHN0YXRp
YyBtdXRleGVzLgotdm9pZCBNdXRleDo6VGhyZWFkU2FmZUxhenlJbml0KCkgewotICAvLyBEeW5h
bWljIG11dGV4ZXMgYXJlIGluaXRpYWxpemVkIGluIHRoZSBjb25zdHJ1Y3Rvci4KLSAgaWYgKHR5
cGVfID09IGtTdGF0aWMpIHsKLSAgICBzd2l0Y2ggKAotICAgICAgICA6OkludGVybG9ja2VkQ29t
cGFyZUV4Y2hhbmdlKCZjcml0aWNhbF9zZWN0aW9uX2luaXRfcGhhc2VfLCAxTCwgMEwpKSB7Ci0g
ICAgICBjYXNlIDA6Ci0gICAgICAgIC8vIElmIGNyaXRpY2FsX3NlY3Rpb25faW5pdF9waGFzZV8g
d2FzIDAgYmVmb3JlIHRoZSBleGNoYW5nZSwgd2UKLSAgICAgICAgLy8gYXJlIHRoZSBmaXJzdCB0
byB0ZXN0IGl0IGFuZCBuZWVkIHRvIHBlcmZvcm0gdGhlIGluaXRpYWxpemF0aW9uLgotICAgICAg
ICBvd25lcl90aHJlYWRfaWRfID0gMDsKLSAgICAgICAgY3JpdGljYWxfc2VjdGlvbl8gPSBuZXcg
Q1JJVElDQUxfU0VDVElPTjsKLSAgICAgICAgOjpJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uKGNy
aXRpY2FsX3NlY3Rpb25fKTsKLSAgICAgICAgLy8gVXBkYXRlcyB0aGUgY3JpdGljYWxfc2VjdGlv
bl9pbml0X3BoYXNlXyB0byAyIHRvIHNpZ25hbAotICAgICAgICAvLyBpbml0aWFsaXphdGlvbiBj
b21wbGV0ZS4KLSAgICAgICAgR1RFU1RfQ0hFQ0tfKDo6SW50ZXJsb2NrZWRDb21wYXJlRXhjaGFu
Z2UoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZjcml0aWNhbF9zZWN0aW9uX2luaXRfcGhh
c2VfLCAyTCwgMUwpID09Ci0gICAgICAgICAgICAgICAgICAgICAgMUwpOwotICAgICAgICBicmVh
azsKLSAgICAgIGNhc2UgMToKLSAgICAgICAgLy8gU29tZWJvZHkgZWxzZSBpcyBhbHJlYWR5IGlu
aXRpYWxpemluZyB0aGUgbXV0ZXg7IHNwaW4gdW50aWwgdGhleQotICAgICAgICAvLyBhcmUgZG9u
ZS4KLSAgICAgICAgd2hpbGUgKDo6SW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoJmNyaXRpY2Fs
X3NlY3Rpb25faW5pdF9waGFzZV8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDJMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyTCkgIT0gMkwpIHsKLSAgICAgICAgICAvLyBQb3NzaWJseSB5aWVsZHMgdGhlIHJlc3Qgb2Yg
dGhlIHRocmVhZCdzIHRpbWUgc2xpY2UgdG8gb3RoZXIKLSAgICAgICAgICAvLyB0aHJlYWRzLgot
ICAgICAgICAgIDo6U2xlZXAoMCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICAg
IGNhc2UgMjoKLSAgICAgICAgYnJlYWs7ICAvLyBUaGUgbXV0ZXggaXMgYWxyZWFkeSBpbml0aWFs
aXplZCBhbmQgcmVhZHkgZm9yIHVzZS4KLQotICAgICAgZGVmYXVsdDoKLSAgICAgICAgR1RFU1Rf
Q0hFQ0tfKGZhbHNlKQotICAgICAgICAgICAgPDwgIlVuZXhwZWN0ZWQgdmFsdWUgb2YgY3JpdGlj
YWxfc2VjdGlvbl9pbml0X3BoYXNlXyAiCi0gICAgICAgICAgICA8PCAid2hpbGUgaW5pdGlhbGl6
aW5nIGEgc3RhdGljIG11dGV4LiI7Ci0gICAgfQotICB9Ci19Ci0KLW5hbWVzcGFjZSB7Ci0KLWNs
YXNzIFRocmVhZFdpdGhQYXJhbVN1cHBvcnQgOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7
Ci0gcHVibGljOgotICBzdGF0aWMgSEFORExFIENyZWF0ZVRocmVhZChSdW5uYWJsZSogcnVubmFi
bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbiogdGhyZWFkX2Nh
bl9zdGFydCkgewotICAgIFRocmVhZE1haW5QYXJhbSogcGFyYW0gPSBuZXcgVGhyZWFkTWFpblBh
cmFtKHJ1bm5hYmxlLCB0aHJlYWRfY2FuX3N0YXJ0KTsKLSAgICBEV09SRCB0aHJlYWRfaWQ7Ci0g
ICAgLy8gVE9ETyh5dWthd2EpOiBDb25zaWRlciB0byB1c2UgX2JlZ2ludGhyZWFkZXggaW5zdGVh
ZC4KLSAgICBIQU5ETEUgdGhyZWFkX2hhbmRsZSA9IDo6Q3JlYXRlVGhyZWFkKAotICAgICAgICBO
VUxMLCAgICAvLyBEZWZhdWx0IHNlY3VyaXR5LgotICAgICAgICAwLCAgICAgICAvLyBEZWZhdWx0
IHN0YWNrIHNpemUuCi0gICAgICAgICZUaHJlYWRXaXRoUGFyYW1TdXBwb3J0OjpUaHJlYWRNYWlu
LAotICAgICAgICBwYXJhbSwgICAvLyBQYXJhbWV0ZXIgdG8gVGhyZWFkTWFpblN0YXRpYwotICAg
ICAgICAweDAsICAgICAvLyBEZWZhdWx0IGNyZWF0aW9uIGZsYWdzLgotICAgICAgICAmdGhyZWFk
X2lkKTsgIC8vIE5lZWQgYSB2YWxpZCBwb2ludGVyIGZvciB0aGUgY2FsbCB0byB3b3JrIHVuZGVy
IFdpbjk4LgotICAgIEdURVNUX0NIRUNLXyh0aHJlYWRfaGFuZGxlICE9IE5VTEwpIDw8ICJDcmVh
dGVUaHJlYWQgZmFpbGVkIHdpdGggZXJyb3IgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDo6R2V0TGFzdEVycm9yKCkgPDwgIi4iOwotICAgIGlmICh0aHJlYWRf
aGFuZGxlID09IE5VTEwpIHsKLSAgICAgIGRlbGV0ZSBwYXJhbTsKLSAgICB9Ci0gICAgcmV0dXJu
IHRocmVhZF9oYW5kbGU7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIHN0cnVjdCBUaHJlYWRNYWluUGFy
YW0gewotICAgIFRocmVhZE1haW5QYXJhbShSdW5uYWJsZSogcnVubmFibGUsIE5vdGlmaWNhdGlv
biogdGhyZWFkX2Nhbl9zdGFydCkKLSAgICAgICAgOiBydW5uYWJsZV8ocnVubmFibGUpLAotICAg
ICAgICAgIHRocmVhZF9jYW5fc3RhcnRfKHRocmVhZF9jYW5fc3RhcnQpIHsKLSAgICB9Ci0gICAg
c2NvcGVkX3B0cjxSdW5uYWJsZT4gcnVubmFibGVfOwotICAgIC8vIERvZXMgbm90IG93bi4KLSAg
ICBOb3RpZmljYXRpb24qIHRocmVhZF9jYW5fc3RhcnRfOwotICB9OwotCi0gIHN0YXRpYyBEV09S
RCBXSU5BUEkgVGhyZWFkTWFpbih2b2lkKiBwdHIpIHsKLSAgICAvLyBUcmFuc2ZlcnMgb3duZXJz
aGlwLgotICAgIHNjb3BlZF9wdHI8VGhyZWFkTWFpblBhcmFtPiBwYXJhbShzdGF0aWNfY2FzdDxU
aHJlYWRNYWluUGFyYW0qPihwdHIpKTsKLSAgICBpZiAocGFyYW0tPnRocmVhZF9jYW5fc3RhcnRf
ICE9IE5VTEwpCi0gICAgICBwYXJhbS0+dGhyZWFkX2Nhbl9zdGFydF8tPldhaXRGb3JOb3RpZmlj
YXRpb24oKTsKLSAgICBwYXJhbS0+cnVubmFibGVfLT5SdW4oKTsKLSAgICByZXR1cm4gMDsKLSAg
fQotCi0gIC8vIFByb2hpYml0IGluc3RhbnRpYXRpb24uCi0gIFRocmVhZFdpdGhQYXJhbVN1cHBv
cnQoKTsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRocmVhZFdpdGhQYXJh
bVN1cHBvcnQpOwotfTsKLQotfSAgLy8gbmFtZXNwYWNlCi0KLVRocmVhZFdpdGhQYXJhbUJhc2U6
OlRocmVhZFdpdGhQYXJhbUJhc2UoUnVubmFibGUgKnJ1bm5hYmxlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb24qIHRocmVhZF9jYW5fc3RhcnQp
Ci0gICAgICA6IHRocmVhZF8oVGhyZWFkV2l0aFBhcmFtU3VwcG9ydDo6Q3JlYXRlVGhyZWFkKHJ1
bm5hYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aHJlYWRfY2FuX3N0YXJ0KSkgewotfQotCi1UaHJlYWRXaXRoUGFyYW1CYXNlOjp+VGhy
ZWFkV2l0aFBhcmFtQmFzZSgpIHsKLSAgSm9pbigpOwotfQotCi12b2lkIFRocmVhZFdpdGhQYXJh
bUJhc2U6OkpvaW4oKSB7Ci0gIEdURVNUX0NIRUNLXyg6OldhaXRGb3JTaW5nbGVPYmplY3QodGhy
ZWFkXy5HZXQoKSwgSU5GSU5JVEUpID09IFdBSVRfT0JKRUNUXzApCi0gICAgICA8PCAiRmFpbGVk
IHRvIGpvaW4gdGhlIHRocmVhZCB3aXRoIGVycm9yICIgPDwgOjpHZXRMYXN0RXJyb3IoKSA8PCAi
LiI7Ci19Ci0KLS8vIE1hcHMgYSB0aHJlYWQgdG8gYSBzZXQgb2YgVGhyZWFkSWRUb1RocmVhZExv
Y2FscyB0aGF0IGhhdmUgdmFsdWVzCi0vLyBpbnN0YW50aWF0ZWQgb24gdGhhdCB0aHJlYWQgYW5k
IG5vdGlmaWVzIHRoZW0gd2hlbiB0aGUgdGhyZWFkIGV4aXRzLiAgQQotLy8gVGhyZWFkTG9jYWwg
aW5zdGFuY2UgaXMgZXhwZWN0ZWQgdG8gcGVyc2lzdCB1bnRpbCBhbGwgdGhyZWFkcyBpdCBoYXMK
LS8vIHZhbHVlcyBvbiBoYXZlIHRlcm1pbmF0ZWQuCi1jbGFzcyBUaHJlYWRMb2NhbFJlZ2lzdHJ5
SW1wbCB7Ci0gcHVibGljOgotICAvLyBSZWdpc3RlcnMgdGhyZWFkX2xvY2FsX2luc3RhbmNlIGFz
IGhhdmluZyB2YWx1ZSBvbiB0aGUgY3VycmVudCB0aHJlYWQuCi0gIC8vIFJldHVybnMgYSB2YWx1
ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0aHJlYWQgZnJvbSBvdGhlciB0aHJl
YWRzLgotICBzdGF0aWMgVGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2UqIEdldFZhbHVlT25DdXJy
ZW50VGhyZWFkKAotICAgICAgY29uc3QgVGhyZWFkTG9jYWxCYXNlKiB0aHJlYWRfbG9jYWxfaW5z
dGFuY2UpIHsKLSAgICBEV09SRCBjdXJyZW50X3RocmVhZCA9IDo6R2V0Q3VycmVudFRocmVhZElk
KCk7Ci0gICAgTXV0ZXhMb2NrIGxvY2soJm11dGV4Xyk7Ci0gICAgVGhyZWFkSWRUb1RocmVhZExv
Y2FscyogY29uc3QgdGhyZWFkX3RvX3RocmVhZF9sb2NhbHMgPQotICAgICAgICBHZXRUaHJlYWRM
b2NhbHNNYXBMb2NrZWQoKTsKLSAgICBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzOjppdGVyYXRvciB0
aHJlYWRfbG9jYWxfcG9zID0KLSAgICAgICAgdGhyZWFkX3RvX3RocmVhZF9sb2NhbHMtPmZpbmQo
Y3VycmVudF90aHJlYWQpOwotICAgIGlmICh0aHJlYWRfbG9jYWxfcG9zID09IHRocmVhZF90b190
aHJlYWRfbG9jYWxzLT5lbmQoKSkgewotICAgICAgdGhyZWFkX2xvY2FsX3BvcyA9IHRocmVhZF90
b190aHJlYWRfbG9jYWxzLT5pbnNlcnQoCi0gICAgICAgICAgc3RkOjptYWtlX3BhaXIoY3VycmVu
dF90aHJlYWQsIFRocmVhZExvY2FsVmFsdWVzKCkpKS5maXJzdDsKLSAgICAgIFN0YXJ0V2F0Y2hl
clRocmVhZEZvcihjdXJyZW50X3RocmVhZCk7Ci0gICAgfQotICAgIFRocmVhZExvY2FsVmFsdWVz
JiB0aHJlYWRfbG9jYWxfdmFsdWVzID0gdGhyZWFkX2xvY2FsX3Bvcy0+c2Vjb25kOwotICAgIFRo
cmVhZExvY2FsVmFsdWVzOjppdGVyYXRvciB2YWx1ZV9wb3MgPQotICAgICAgICB0aHJlYWRfbG9j
YWxfdmFsdWVzLmZpbmQodGhyZWFkX2xvY2FsX2luc3RhbmNlKTsKLSAgICBpZiAodmFsdWVfcG9z
ID09IHRocmVhZF9sb2NhbF92YWx1ZXMuZW5kKCkpIHsKLSAgICAgIHZhbHVlX3BvcyA9Ci0gICAg
ICAgICAgdGhyZWFkX2xvY2FsX3ZhbHVlcwotICAgICAgICAgICAgICAuaW5zZXJ0KHN0ZDo6bWFr
ZV9wYWlyKAotICAgICAgICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2luc3RhbmNlLAotICAgICAg
ICAgICAgICAgICAgbGlua2VkX3B0cjxUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZT4oCi0gICAg
ICAgICAgICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2luc3RhbmNlLT5OZXdWYWx1ZUZvckN1cnJl
bnRUaHJlYWQoKSkpKQotICAgICAgICAgICAgICAuZmlyc3Q7Ci0gICAgfQotICAgIHJldHVybiB2
YWx1ZV9wb3MtPnNlY29uZC5nZXQoKTsKLSAgfQotCi0gIHN0YXRpYyB2b2lkIE9uVGhyZWFkTG9j
YWxEZXN0cm95ZWQoCi0gICAgICBjb25zdCBUaHJlYWRMb2NhbEJhc2UqIHRocmVhZF9sb2NhbF9p
bnN0YW5jZSkgewotICAgIHN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhv
bGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKLSAgICAvLyBDbGVhbiB1cCB0aGUgVGhyZWFkTG9j
YWxWYWx1ZXMgZGF0YSBzdHJ1Y3R1cmUgd2hpbGUgaG9sZGluZyB0aGUgbG9jaywgYnV0Ci0gICAg
Ly8gZGVmZXIgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFz
ZXMuCi0gICAgewotICAgICAgTXV0ZXhMb2NrIGxvY2soJm11dGV4Xyk7Ci0gICAgICBUaHJlYWRJ
ZFRvVGhyZWFkTG9jYWxzKiBjb25zdCB0aHJlYWRfdG9fdGhyZWFkX2xvY2FscyA9Ci0gICAgICAg
ICAgR2V0VGhyZWFkTG9jYWxzTWFwTG9ja2VkKCk7Ci0gICAgICBmb3IgKFRocmVhZElkVG9UaHJl
YWRMb2NhbHM6Oml0ZXJhdG9yIGl0ID0KLSAgICAgICAgICB0aHJlYWRfdG9fdGhyZWFkX2xvY2Fs
cy0+YmVnaW4oKTsKLSAgICAgICAgICBpdCAhPSB0aHJlYWRfdG9fdGhyZWFkX2xvY2Fscy0+ZW5k
KCk7Ci0gICAgICAgICAgKytpdCkgewotICAgICAgICBUaHJlYWRMb2NhbFZhbHVlcyYgdGhyZWFk
X2xvY2FsX3ZhbHVlcyA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgIFRocmVhZExvY2FsVmFsdWVzOjpp
dGVyYXRvciB2YWx1ZV9wb3MgPQotICAgICAgICAgICAgdGhyZWFkX2xvY2FsX3ZhbHVlcy5maW5k
KHRocmVhZF9sb2NhbF9pbnN0YW5jZSk7Ci0gICAgICAgIGlmICh2YWx1ZV9wb3MgIT0gdGhyZWFk
X2xvY2FsX3ZhbHVlcy5lbmQoKSkgewotICAgICAgICAgIHZhbHVlX2hvbGRlcnMucHVzaF9iYWNr
KHZhbHVlX3Bvcy0+c2Vjb25kKTsKLSAgICAgICAgICB0aHJlYWRfbG9jYWxfdmFsdWVzLmVyYXNl
KHZhbHVlX3Bvcyk7Ci0gICAgICAgICAgLy8gVGhpcyAnaWYnIGNhbiBvbmx5IGJlIHN1Y2Nlc3Nm
dWwgYXQgbW9zdCBvbmNlLCBzbyB0aGVvcmV0aWNhbGx5IHdlCi0gICAgICAgICAgLy8gY291bGQg
YnJlYWsgb3V0IG9mIHRoZSBsb29wIGhlcmUsIGJ1dCB3ZSBkb24ndCBib3RoZXIgZG9pbmcgc28u
Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgLy8gT3V0c2lkZSB0aGUgbG9jaywgbGV0
IHRoZSBkZXN0cnVjdG9yIGZvciAndmFsdWVfaG9sZGVycycgZGVhbGxvY2F0ZSB0aGUKLSAgICAv
LyBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZXMuCi0gIH0KLQotICBzdGF0aWMgdm9pZCBPblRo
cmVhZEV4aXQoRFdPUkQgdGhyZWFkX2lkKSB7Ci0gICAgR1RFU1RfQ0hFQ0tfKHRocmVhZF9pZCAh
PSAwKSA8PCA6OkdldExhc3RFcnJvcigpOwotICAgIHN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8VGhy
ZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKLSAgICAvLyBDbGVhbiB1
cCB0aGUgVGhyZWFkSWRUb1RocmVhZExvY2FscyBkYXRhIHN0cnVjdHVyZSB3aGlsZSBob2xkaW5n
IHRoZQotICAgIC8vIGxvY2ssIGJ1dCBkZWZlciB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFRocmVh
ZExvY2FsVmFsdWVIb2xkZXJCYXNlcy4KLSAgICB7Ci0gICAgICBNdXRleExvY2sgbG9jaygmbXV0
ZXhfKTsKLSAgICAgIFRocmVhZElkVG9UaHJlYWRMb2NhbHMqIGNvbnN0IHRocmVhZF90b190aHJl
YWRfbG9jYWxzID0KLSAgICAgICAgICBHZXRUaHJlYWRMb2NhbHNNYXBMb2NrZWQoKTsKLSAgICAg
IFRocmVhZElkVG9UaHJlYWRMb2NhbHM6Oml0ZXJhdG9yIHRocmVhZF9sb2NhbF9wb3MgPQotICAg
ICAgICAgIHRocmVhZF90b190aHJlYWRfbG9jYWxzLT5maW5kKHRocmVhZF9pZCk7Ci0gICAgICBp
ZiAodGhyZWFkX2xvY2FsX3BvcyAhPSB0aHJlYWRfdG9fdGhyZWFkX2xvY2Fscy0+ZW5kKCkpIHsK
LSAgICAgICAgVGhyZWFkTG9jYWxWYWx1ZXMmIHRocmVhZF9sb2NhbF92YWx1ZXMgPSB0aHJlYWRf
bG9jYWxfcG9zLT5zZWNvbmQ7Ci0gICAgICAgIGZvciAoVGhyZWFkTG9jYWxWYWx1ZXM6Oml0ZXJh
dG9yIHZhbHVlX3BvcyA9Ci0gICAgICAgICAgICB0aHJlYWRfbG9jYWxfdmFsdWVzLmJlZ2luKCk7
Ci0gICAgICAgICAgICB2YWx1ZV9wb3MgIT0gdGhyZWFkX2xvY2FsX3ZhbHVlcy5lbmQoKTsKLSAg
ICAgICAgICAgICsrdmFsdWVfcG9zKSB7Ci0gICAgICAgICAgdmFsdWVfaG9sZGVycy5wdXNoX2Jh
Y2sodmFsdWVfcG9zLT5zZWNvbmQpOwotICAgICAgICB9Ci0gICAgICAgIHRocmVhZF90b190aHJl
YWRfbG9jYWxzLT5lcmFzZSh0aHJlYWRfbG9jYWxfcG9zKTsKLSAgICAgIH0KLSAgICB9Ci0gICAg
Ly8gT3V0c2lkZSB0aGUgbG9jaywgbGV0IHRoZSBkZXN0cnVjdG9yIGZvciAndmFsdWVfaG9sZGVy
cycgZGVhbGxvY2F0ZSB0aGUKLSAgICAvLyBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZXMuCi0g
IH0KLQotIHByaXZhdGU6Ci0gIC8vIEluIGEgcGFydGljdWxhciB0aHJlYWQsIG1hcHMgYSBUaHJl
YWRMb2NhbCBvYmplY3QgdG8gaXRzIHZhbHVlLgotICB0eXBlZGVmIHN0ZDo6bWFwPGNvbnN0IFRo
cmVhZExvY2FsQmFzZSosCi0gICAgICAgICAgICAgICAgICAgbGlua2VkX3B0cjxUaHJlYWRMb2Nh
bFZhbHVlSG9sZGVyQmFzZT4gPiBUaHJlYWRMb2NhbFZhbHVlczsKLSAgLy8gU3RvcmVzIGFsbCBU
aHJlYWRJZFRvVGhyZWFkTG9jYWxzIGhhdmluZyB2YWx1ZXMgaW4gYSB0aHJlYWQsIGluZGV4ZWQg
YnkKLSAgLy8gdGhyZWFkJ3MgSUQuCi0gIHR5cGVkZWYgc3RkOjptYXA8RFdPUkQsIFRocmVhZExv
Y2FsVmFsdWVzPiBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzOwotCi0gIC8vIEhvbGRzIHRoZSB0aHJl
YWQgaWQgYW5kIHRocmVhZCBoYW5kbGUgdGhhdCB3ZSBwYXNzIGZyb20KLSAgLy8gU3RhcnRXYXRj
aGVyVGhyZWFkRm9yIHRvIFdhdGNoZXJUaHJlYWRGdW5jLgotICB0eXBlZGVmIHN0ZDo6cGFpcjxE
V09SRCwgSEFORExFPiBUaHJlYWRJZEFuZEhhbmRsZTsKLQotICBzdGF0aWMgdm9pZCBTdGFydFdh
dGNoZXJUaHJlYWRGb3IoRFdPUkQgdGhyZWFkX2lkKSB7Ci0gICAgLy8gVGhlIHJldHVybmVkIGhh
bmRsZSB3aWxsIGJlIGtlcHQgaW4gdGhyZWFkX21hcCBhbmQgY2xvc2VkIGJ5Ci0gICAgLy8gd2F0
Y2hlcl90aHJlYWQgaW4gV2F0Y2hlclRocmVhZEZ1bmMuCi0gICAgSEFORExFIHRocmVhZCA9IDo6
T3BlblRocmVhZChTWU5DSFJPTklaRSB8IFRIUkVBRF9RVUVSWV9JTkZPUk1BVElPTiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyZWFkX2lkKTsKLSAgICBHVEVTVF9DSEVDS18odGhyZWFkICE9IE5VTEwp
OwotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBhIHZhbGlkIHRocmVhZCBJRCBwb2ludGVyIGludG8g
Q3JlYXRlVGhyZWFkIGZvciBpdAotICAgIC8vIHRvIHdvcmsgY29ycmVjdGx5IHVuZGVyIFdpbjk4
LgotICAgIERXT1JEIHdhdGNoZXJfdGhyZWFkX2lkOwotICAgIEhBTkRMRSB3YXRjaGVyX3RocmVh
ZCA9IDo6Q3JlYXRlVGhyZWFkKAotICAgICAgICBOVUxMLCAgIC8vIERlZmF1bHQgc2VjdXJpdHku
Ci0gICAgICAgIDAsICAgICAgLy8gRGVmYXVsdCBzdGFjayBzaXplCi0gICAgICAgICZUaHJlYWRM
b2NhbFJlZ2lzdHJ5SW1wbDo6V2F0Y2hlclRocmVhZEZ1bmMsCi0gICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8TFBWT0lEPihuZXcgVGhyZWFkSWRBbmRIYW5kbGUodGhyZWFkX2lkLCB0aHJlYWQpKSwK
LSAgICAgICAgQ1JFQVRFX1NVU1BFTkRFRCwKLSAgICAgICAgJndhdGNoZXJfdGhyZWFkX2lkKTsK
LSAgICBHVEVTVF9DSEVDS18od2F0Y2hlcl90aHJlYWQgIT0gTlVMTCk7Ci0gICAgLy8gR2l2ZSB0
aGUgd2F0Y2hlciB0aHJlYWQgdGhlIHNhbWUgcHJpb3JpdHkgYXMgb3VycyB0byBhdm9pZCBiZWlu
ZwotICAgIC8vIGJsb2NrZWQgYnkgaXQuCi0gICAgOjpTZXRUaHJlYWRQcmlvcml0eSh3YXRjaGVy
X3RocmVhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIDo6R2V0VGhyZWFkUHJpb3JpdHkoOjpH
ZXRDdXJyZW50VGhyZWFkKCkpKTsKLSAgICA6OlJlc3VtZVRocmVhZCh3YXRjaGVyX3RocmVhZCk7
Ci0gICAgOjpDbG9zZUhhbmRsZSh3YXRjaGVyX3RocmVhZCk7Ci0gIH0KLQotICAvLyBNb25pdG9y
cyBleGl0IGZyb20gYSBnaXZlbiB0aHJlYWQgYW5kIG5vdGlmaWVzIHRob3NlCi0gIC8vIFRocmVh
ZElkVG9UaHJlYWRMb2NhbHMgYWJvdXQgdGhyZWFkIHRlcm1pbmF0aW9uLgotICBzdGF0aWMgRFdP
UkQgV0lOQVBJIFdhdGNoZXJUaHJlYWRGdW5jKExQVk9JRCBwYXJhbSkgewotICAgIGNvbnN0IFRo
cmVhZElkQW5kSGFuZGxlKiB0YWggPQotICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IFRo
cmVhZElkQW5kSGFuZGxlKj4ocGFyYW0pOwotICAgIEdURVNUX0NIRUNLXygKLSAgICAgICAgOjpX
YWl0Rm9yU2luZ2xlT2JqZWN0KHRhaC0+c2Vjb25kLCBJTkZJTklURSkgPT0gV0FJVF9PQkpFQ1Rf
MCk7Ci0gICAgT25UaHJlYWRFeGl0KHRhaC0+Zmlyc3QpOwotICAgIDo6Q2xvc2VIYW5kbGUodGFo
LT5zZWNvbmQpOwotICAgIGRlbGV0ZSB0YWg7Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLQotICAvLyBS
ZXR1cm5zIG1hcCBvZiB0aHJlYWQgbG9jYWwgaW5zdGFuY2VzLgotICBzdGF0aWMgVGhyZWFkSWRU
b1RocmVhZExvY2FscyogR2V0VGhyZWFkTG9jYWxzTWFwTG9ja2VkKCkgewotICAgIG11dGV4Xy5B
c3NlcnRIZWxkKCk7Ci0gICAgc3RhdGljIFRocmVhZElkVG9UaHJlYWRMb2NhbHMqIG1hcCA9IG5l
dyBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzOwotICAgIHJldHVybiBtYXA7Ci0gIH0KLQotICAvLyBQ
cm90ZWN0cyBhY2Nlc3MgdG8gR2V0VGhyZWFkTG9jYWxzTWFwTG9ja2VkKCkgYW5kIGl0cyByZXR1
cm4gdmFsdWUuCi0gIHN0YXRpYyBNdXRleCBtdXRleF87Ci0gIC8vIFByb3RlY3RzIGFjY2VzcyB0
byBHZXRUaHJlYWRNYXBMb2NrZWQoKSBhbmQgaXRzIHJldHVybiB2YWx1ZS4KLSAgc3RhdGljIE11
dGV4IHRocmVhZF9tYXBfbXV0ZXhfOwotfTsKLQotTXV0ZXggVGhyZWFkTG9jYWxSZWdpc3RyeUlt
cGw6Om11dGV4XyhNdXRleDo6a1N0YXRpY011dGV4KTsKLU11dGV4IFRocmVhZExvY2FsUmVnaXN0
cnlJbXBsOjp0aHJlYWRfbWFwX211dGV4XyhNdXRleDo6a1N0YXRpY011dGV4KTsKLQotVGhyZWFk
TG9jYWxWYWx1ZUhvbGRlckJhc2UqIFRocmVhZExvY2FsUmVnaXN0cnk6OkdldFZhbHVlT25DdXJy
ZW50VGhyZWFkKAotICAgICAgY29uc3QgVGhyZWFkTG9jYWxCYXNlKiB0aHJlYWRfbG9jYWxfaW5z
dGFuY2UpIHsKLSAgcmV0dXJuIFRocmVhZExvY2FsUmVnaXN0cnlJbXBsOjpHZXRWYWx1ZU9uQ3Vy
cmVudFRocmVhZCgKLSAgICAgIHRocmVhZF9sb2NhbF9pbnN0YW5jZSk7Ci19Ci0KLXZvaWQgVGhy
ZWFkTG9jYWxSZWdpc3RyeTo6T25UaHJlYWRMb2NhbERlc3Ryb3llZCgKLSAgICAgIGNvbnN0IFRo
cmVhZExvY2FsQmFzZSogdGhyZWFkX2xvY2FsX2luc3RhbmNlKSB7Ci0gIFRocmVhZExvY2FsUmVn
aXN0cnlJbXBsOjpPblRocmVhZExvY2FsRGVzdHJveWVkKHRocmVhZF9sb2NhbF9pbnN0YW5jZSk7
Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSVNfVEhSRUFEU0FGRSAmJiBHVEVTVF9PU19XSU5ET1dT
Ci0KLSNpZiBHVEVTVF9VU0VTX1BPU0lYX1JFCi0KLS8vIEltcGxlbWVudHMgUkUuICBDdXJyZW50
bHkgb25seSBuZWVkZWQgZm9yIGRlYXRoIHRlc3RzLgotCi1SRTo6flJFKCkgewotICBpZiAoaXNf
dmFsaWRfKSB7Ci0gICAgLy8gcmVnZnJlZSdpbmcgYW4gaW52YWxpZCByZWdleCBtaWdodCBjcmFz
aCBiZWNhdXNlIHRoZSBjb250ZW50Ci0gICAgLy8gb2YgdGhlIHJlZ2V4IGlzIHVuZGVmaW5lZC4g
U2luY2UgdGhlIHJlZ2V4J3MgYXJlIGVzc2VudGlhbGx5Ci0gICAgLy8gdGhlIHNhbWUsIG9uZSBj
YW5ub3QgYmUgdmFsaWQgKG9yIGludmFsaWQpIHdpdGhvdXQgdGhlIG90aGVyCi0gICAgLy8gYmVp
bmcgc28gdG9vLgotICAgIHJlZ2ZyZWUoJnBhcnRpYWxfcmVnZXhfKTsKLSAgICByZWdmcmVlKCZm
dWxsX3JlZ2V4Xyk7Ci0gIH0KLSAgZnJlZShjb25zdF9jYXN0PGNoYXIqPihwYXR0ZXJuXykpOwot
fQotCi0vLyBSZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIHRo
ZSBlbnRpcmUgc3RyLgotYm9vbCBSRTo6RnVsbE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwgY29uc3Qg
UkUmIHJlKSB7Ci0gIGlmICghcmUuaXNfdmFsaWRfKSByZXR1cm4gZmFsc2U7Ci0KLSAgcmVnbWF0
Y2hfdCBtYXRjaDsKLSAgcmV0dXJuIHJlZ2V4ZWMoJnJlLmZ1bGxfcmVnZXhfLCBzdHIsIDEsICZt
YXRjaCwgMCkgPT0gMDsKLX0KLQotLy8gUmV0dXJucyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Np
b24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiBzdHIKLS8vIChpbmNsdWRpbmcgc3RyIGl0c2Vs
ZikuCi1ib29sIFJFOjpQYXJ0aWFsTWF0Y2goY29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUp
IHsKLSAgaWYgKCFyZS5pc192YWxpZF8pIHJldHVybiBmYWxzZTsKLQotICByZWdtYXRjaF90IG1h
dGNoOwotICByZXR1cm4gcmVnZXhlYygmcmUucGFydGlhbF9yZWdleF8sIHN0ciwgMSwgJm1hdGNo
LCAwKSA9PSAwOwotfQotCi0vLyBJbml0aWFsaXplcyBhbiBSRSBmcm9tIGl0cyBzdHJpbmcgcmVw
cmVzZW50YXRpb24uCi12b2lkIFJFOjpJbml0KGNvbnN0IGNoYXIqIHJlZ2V4KSB7Ci0gIHBhdHRl
cm5fID0gcG9zaXg6OlN0ckR1cChyZWdleCk7Ci0KLSAgLy8gUmVzZXJ2ZXMgZW5vdWdoIGJ5dGVz
IHRvIGhvbGQgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB1c2VkIGZvciBhCi0gIC8vIGZ1bGwgbWF0
Y2guCi0gIGNvbnN0IHNpemVfdCBmdWxsX3JlZ2V4X2xlbiA9IHN0cmxlbihyZWdleCkgKyAxMDsK
LSAgY2hhciogY29uc3QgZnVsbF9wYXR0ZXJuID0gbmV3IGNoYXJbZnVsbF9yZWdleF9sZW5dOwot
Ci0gIHNucHJpbnRmKGZ1bGxfcGF0dGVybiwgZnVsbF9yZWdleF9sZW4sICJeKCVzKSQiLCByZWdl
eCk7Ci0gIGlzX3ZhbGlkXyA9IHJlZ2NvbXAoJmZ1bGxfcmVnZXhfLCBmdWxsX3BhdHRlcm4sIFJF
R19FWFRFTkRFRCkgPT0gMDsKLSAgLy8gV2Ugd2FudCB0byBjYWxsIHJlZ2NvbXAoJnBhcnRpYWxf
cmVnZXhfLCAuLi4pIGV2ZW4gaWYgdGhlCi0gIC8vIHByZXZpb3VzIGV4cHJlc3Npb24gcmV0dXJu
cyBmYWxzZS4gIE90aGVyd2lzZSBwYXJ0aWFsX3JlZ2V4XyBtYXkKLSAgLy8gbm90IGJlIHByb3Bl
cmx5IGluaXRpYWxpemVkIGNhbiBtYXkgY2F1c2UgdHJvdWJsZSB3aGVuIGl0J3MKLSAgLy8gZnJl
ZWQuCi0gIC8vCi0gIC8vIFNvbWUgaW1wbGVtZW50YXRpb24gb2YgUE9TSVggcmVnZXggKGUuZy4g
b24gYXQgbGVhc3Qgc29tZQotICAvLyB2ZXJzaW9ucyBvZiBDeWd3aW4pIGRvZXNuJ3QgYWNjZXB0
IHRoZSBlbXB0eSBzdHJpbmcgYXMgYSB2YWxpZAotICAvLyByZWdleC4gIFdlIGNoYW5nZSBpdCB0
byBhbiBlcXVpdmFsZW50IGZvcm0gIigpIiB0byBiZSBzYWZlLgotICBpZiAoaXNfdmFsaWRfKSB7
Ci0gICAgY29uc3QgY2hhciogY29uc3QgcGFydGlhbF9yZWdleCA9ICgqcmVnZXggPT0gJ1wwJykg
PyAiKCkiIDogcmVnZXg7Ci0gICAgaXNfdmFsaWRfID0gcmVnY29tcCgmcGFydGlhbF9yZWdleF8s
IHBhcnRpYWxfcmVnZXgsIFJFR19FWFRFTkRFRCkgPT0gMDsKLSAgfQotICBFWFBFQ1RfVFJVRShp
c192YWxpZF8pCi0gICAgICA8PCAiUmVndWxhciBleHByZXNzaW9uIFwiIiA8PCByZWdleAotICAg
ICAgPDwgIlwiIGlzIG5vdCBhIHZhbGlkIFBPU0lYIEV4dGVuZGVkIHJlZ3VsYXIgZXhwcmVzc2lv
bi4iOwotCi0gIGRlbGV0ZVtdIGZ1bGxfcGF0dGVybjsKLX0KLQotI2VsaWYgR1RFU1RfVVNFU19T
SU1QTEVfUkUKLQotLy8gUmV0dXJucyB0cnVlIGlmZiBjaCBhcHBlYXJzIGFueXdoZXJlIGluIHN0
ciAoZXhjbHVkaW5nIHRoZQotLy8gdGVybWluYXRpbmcgJ1wwJyBjaGFyYWN0ZXIpLgotYm9vbCBJ
c0luU2V0KGNoYXIgY2gsIGNvbnN0IGNoYXIqIHN0cikgewotICByZXR1cm4gY2ggIT0gJ1wwJyAm
JiBzdHJjaHIoc3RyLCBjaCkgIT0gTlVMTDsKLX0KLQotLy8gUmV0dXJucyB0cnVlIGlmZiBjaCBi
ZWxvbmdzIHRvIHRoZSBnaXZlbiBjbGFzc2lmaWNhdGlvbi4gIFVubGlrZQotLy8gc2ltaWxhciBm
dW5jdGlvbnMgaW4gPGN0eXBlLmg+LCB0aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhlCi0vLyBj
dXJyZW50IGxvY2FsZS4KLWJvb2wgSXNBc2NpaURpZ2l0KGNoYXIgY2gpIHsgcmV0dXJuICcwJyA8
PSBjaCAmJiBjaCA8PSAnOSc7IH0KLWJvb2wgSXNBc2NpaVB1bmN0KGNoYXIgY2gpIHsKLSAgcmV0
dXJuIElzSW5TZXQoY2gsICJeLSFcIiMkJSYnKCkqKywuLzo7PD0+P0BbXFxdX2B7fH1+Iik7Ci19
Ci1ib29sIElzUmVwZWF0KGNoYXIgY2gpIHsgcmV0dXJuIElzSW5TZXQoY2gsICI/KisiKTsgfQot
Ym9vbCBJc0FzY2lpV2hpdGVTcGFjZShjaGFyIGNoKSB7IHJldHVybiBJc0luU2V0KGNoLCAiIFxm
XG5cclx0XHYiKTsgfQotYm9vbCBJc0FzY2lpV29yZENoYXIoY2hhciBjaCkgewotICByZXR1cm4g
KCdhJyA8PSBjaCAmJiBjaCA8PSAneicpIHx8ICgnQScgPD0gY2ggJiYgY2ggPD0gJ1onKSB8fAot
ICAgICAgKCcwJyA8PSBjaCAmJiBjaCA8PSAnOScpIHx8IGNoID09ICdfJzsKLX0KLQotLy8gUmV0
dXJucyB0cnVlIGlmZiAiXFxjIiBpcyBhIHN1cHBvcnRlZCBlc2NhcGUgc2VxdWVuY2UuCi1ib29s
IElzVmFsaWRFc2NhcGUoY2hhciBjKSB7Ci0gIHJldHVybiAoSXNBc2NpaVB1bmN0KGMpIHx8IElz
SW5TZXQoYywgImREZm5yc1N0dndXIikpOwotfQotCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBn
aXZlbiBhdG9tIChzcGVjaWZpZWQgYnkgZXNjYXBlZCBhbmQgcGF0dGVybikKLS8vIG1hdGNoZXMg
Y2guICBUaGUgcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiB0aGUgYXRvbSBpcyBpbnZhbGlkLgotYm9v
bCBBdG9tTWF0Y2hlc0NoYXIoYm9vbCBlc2NhcGVkLCBjaGFyIHBhdHRlcm5fY2hhciwgY2hhciBj
aCkgewotICBpZiAoZXNjYXBlZCkgeyAgLy8gIlxccCIgd2hlcmUgcCBpcyBwYXR0ZXJuX2NoYXIu
Ci0gICAgc3dpdGNoIChwYXR0ZXJuX2NoYXIpIHsKLSAgICAgIGNhc2UgJ2QnOiByZXR1cm4gSXNB
c2NpaURpZ2l0KGNoKTsKLSAgICAgIGNhc2UgJ0QnOiByZXR1cm4gIUlzQXNjaWlEaWdpdChjaCk7
Ci0gICAgICBjYXNlICdmJzogcmV0dXJuIGNoID09ICdcZic7Ci0gICAgICBjYXNlICduJzogcmV0
dXJuIGNoID09ICdcbic7Ci0gICAgICBjYXNlICdyJzogcmV0dXJuIGNoID09ICdccic7Ci0gICAg
ICBjYXNlICdzJzogcmV0dXJuIElzQXNjaWlXaGl0ZVNwYWNlKGNoKTsKLSAgICAgIGNhc2UgJ1Mn
OiByZXR1cm4gIUlzQXNjaWlXaGl0ZVNwYWNlKGNoKTsKLSAgICAgIGNhc2UgJ3QnOiByZXR1cm4g
Y2ggPT0gJ1x0JzsKLSAgICAgIGNhc2UgJ3YnOiByZXR1cm4gY2ggPT0gJ1x2JzsKLSAgICAgIGNh
c2UgJ3cnOiByZXR1cm4gSXNBc2NpaVdvcmRDaGFyKGNoKTsKLSAgICAgIGNhc2UgJ1cnOiByZXR1
cm4gIUlzQXNjaWlXb3JkQ2hhcihjaCk7Ci0gICAgfQotICAgIHJldHVybiBJc0FzY2lpUHVuY3Qo
cGF0dGVybl9jaGFyKSAmJiBwYXR0ZXJuX2NoYXIgPT0gY2g7Ci0gIH0KLQotICByZXR1cm4gKHBh
dHRlcm5fY2hhciA9PSAnLicgJiYgY2ggIT0gJ1xuJykgfHwgcGF0dGVybl9jaGFyID09IGNoOwot
fQotCi0vLyBIZWxwZXIgZnVuY3Rpb24gdXNlZCBieSBWYWxpZGF0ZVJlZ2V4KCkgdG8gZm9ybWF0
IGVycm9yIG1lc3NhZ2VzLgotc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFJlZ2V4U3ludGF4RXJy
b3IoY29uc3QgY2hhciogcmVnZXgsIGludCBpbmRleCkgewotICByZXR1cm4gKE1lc3NhZ2UoKSA8
PCAiU3ludGF4IGVycm9yIGF0IGluZGV4ICIgPDwgaW5kZXgKLSAgICAgICAgICA8PCAiIGluIHNp
bXBsZSByZWd1bGFyIGV4cHJlc3Npb24gXCIiIDw8IHJlZ2V4IDw8ICJcIjogIikuR2V0U3RyaW5n
KCk7Ci19Ci0KLS8vIEdlbmVyYXRlcyBub24tZmF0YWwgZmFpbHVyZXMgYW5kIHJldHVybnMgZmFs
c2UgaWYgcmVnZXggaXMgaW52YWxpZDsKLS8vIG90aGVyd2lzZSByZXR1cm5zIHRydWUuCi1ib29s
IFZhbGlkYXRlUmVnZXgoY29uc3QgY2hhciogcmVnZXgpIHsKLSAgaWYgKHJlZ2V4ID09IE5VTEwp
IHsKLSAgICAvLyBUT0RPKHdhbkBnb29nbGUuY29tKTogZml4IHRoZSBzb3VyY2UgZmlsZSBsb2Nh
dGlvbiBpbiB0aGUKLSAgICAvLyBhc3NlcnRpb24gZmFpbHVyZXMgdG8gbWF0Y2ggd2hlcmUgdGhl
IHJlZ2V4IGlzIHVzZWQgaW4gdXNlcgotICAgIC8vIGNvZGUuCi0gICAgQUREX0ZBSUxVUkUoKSA8
PCAiTlVMTCBpcyBub3QgYSB2YWxpZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9uLiI7Ci0gICAg
cmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgYm9vbCBpc192YWxpZCA9IHRydWU7Ci0KLSAgLy8gVHJ1
ZSBpZmYgPywgKiwgb3IgKyBjYW4gZm9sbG93IHRoZSBwcmV2aW91cyBhdG9tLgotICBib29sIHBy
ZXZfcmVwZWF0YWJsZSA9IGZhbHNlOwotICBmb3IgKGludCBpID0gMDsgcmVnZXhbaV07IGkrKykg
ewotICAgIGlmIChyZWdleFtpXSA9PSAnXFwnKSB7ICAvLyBBbiBlc2NhcGUgc2VxdWVuY2UKLSAg
ICAgIGkrKzsKLSAgICAgIGlmIChyZWdleFtpXSA9PSAnXDAnKSB7Ci0gICAgICAgIEFERF9GQUlM
VVJFKCkgPDwgRm9ybWF0UmVnZXhTeW50YXhFcnJvcihyZWdleCwgaSAtIDEpCi0gICAgICAgICAg
ICAgICAgICAgICAgPDwgIidcXCcgY2Fubm90IGFwcGVhciBhdCB0aGUgZW5kLiI7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgIH0KLQotICAgICAgaWYgKCFJc1ZhbGlkRXNjYXBlKHJlZ2V4
W2ldKSkgewotICAgICAgICBBRERfRkFJTFVSRSgpIDw8IEZvcm1hdFJlZ2V4U3ludGF4RXJyb3Io
cmVnZXgsIGkgLSAxKQotICAgICAgICAgICAgICAgICAgICAgIDw8ICJpbnZhbGlkIGVzY2FwZSBz
ZXF1ZW5jZSBcIlxcIiA8PCByZWdleFtpXSA8PCAiXCIuIjsKLSAgICAgICAgaXNfdmFsaWQgPSBm
YWxzZTsKLSAgICAgIH0KLSAgICAgIHByZXZfcmVwZWF0YWJsZSA9IHRydWU7Ci0gICAgfSBlbHNl
IHsgIC8vIE5vdCBhbiBlc2NhcGUgc2VxdWVuY2UuCi0gICAgICBjb25zdCBjaGFyIGNoID0gcmVn
ZXhbaV07Ci0KLSAgICAgIGlmIChjaCA9PSAnXicgJiYgaSA+IDApIHsKLSAgICAgICAgQUREX0ZB
SUxVUkUoKSA8PCBGb3JtYXRSZWdleFN5bnRheEVycm9yKHJlZ2V4LCBpKQotICAgICAgICAgICAg
ICAgICAgICAgIDw8ICInXicgY2FuIG9ubHkgYXBwZWFyIGF0IHRoZSBiZWdpbm5pbmcuIjsKLSAg
ICAgICAgaXNfdmFsaWQgPSBmYWxzZTsKLSAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJyQnICYmIHJl
Z2V4W2kgKyAxXSAhPSAnXDAnKSB7Ci0gICAgICAgIEFERF9GQUlMVVJFKCkgPDwgRm9ybWF0UmVn
ZXhTeW50YXhFcnJvcihyZWdleCwgaSkKLSAgICAgICAgICAgICAgICAgICAgICA8PCAiJyQnIGNh
biBvbmx5IGFwcGVhciBhdCB0aGUgZW5kLiI7Ci0gICAgICAgIGlzX3ZhbGlkID0gZmFsc2U7Ci0g
ICAgICB9IGVsc2UgaWYgKElzSW5TZXQoY2gsICIoKVtde318IikpIHsKLSAgICAgICAgQUREX0ZB
SUxVUkUoKSA8PCBGb3JtYXRSZWdleFN5bnRheEVycm9yKHJlZ2V4LCBpKQotICAgICAgICAgICAg
ICAgICAgICAgIDw8ICInIiA8PCBjaCA8PCAiJyBpcyB1bnN1cHBvcnRlZC4iOwotICAgICAgICBp
c192YWxpZCA9IGZhbHNlOwotICAgICAgfSBlbHNlIGlmIChJc1JlcGVhdChjaCkgJiYgIXByZXZf
cmVwZWF0YWJsZSkgewotICAgICAgICBBRERfRkFJTFVSRSgpIDw8IEZvcm1hdFJlZ2V4U3ludGF4
RXJyb3IocmVnZXgsIGkpCi0gICAgICAgICAgICAgICAgICAgICAgPDwgIiciIDw8IGNoIDw8ICIn
IGNhbiBvbmx5IGZvbGxvdyBhIHJlcGVhdGFibGUgdG9rZW4uIjsKLSAgICAgICAgaXNfdmFsaWQg
PSBmYWxzZTsKLSAgICAgIH0KLQotICAgICAgcHJldl9yZXBlYXRhYmxlID0gIUlzSW5TZXQoY2gs
ICJeJD8qKyIpOwotICAgIH0KLSAgfQotCi0gIHJldHVybiBpc192YWxpZDsKLX0KLQotLy8gTWF0
Y2hlcyBhIHJlcGVhdGVkIHJlZ2V4IGF0b20gZm9sbG93ZWQgYnkgYSB2YWxpZCBzaW1wbGUgcmVn
dWxhcgotLy8gZXhwcmVzc2lvbi4gIFRoZSByZWdleCBhdG9tIGlzIGRlZmluZWQgYXMgYyBpZiBl
c2NhcGVkIGlzIGZhbHNlLAotLy8gb3IgXGMgb3RoZXJ3aXNlLiAgcmVwZWF0IGlzIHRoZSByZXBl
dGl0aW9uIG1ldGEgY2hhcmFjdGVyICg/LCAqLAotLy8gb3IgKykuICBUaGUgYmVoYXZpb3IgaXMg
dW5kZWZpbmVkIGlmIHN0ciBjb250YWlucyB0b28gbWFueQotLy8gY2hhcmFjdGVycyB0byBiZSBp
bmRleGFibGUgYnkgc2l6ZV90LCBpbiB3aGljaCBjYXNlIHRoZSB0ZXN0IHdpbGwKLS8vIHByb2Jh
Ymx5IHRpbWUgb3V0IGFueXdheS4gIFdlIGFyZSBmaW5lIHdpdGggdGhpcyBsaW1pdGF0aW9uIGFz
Ci0vLyBzdGQ6OnN0cmluZyBoYXMgaXQgdG9vLgotYm9vbCBNYXRjaFJlcGV0aXRpb25BbmRSZWdl
eEF0SGVhZCgKLSAgICBib29sIGVzY2FwZWQsIGNoYXIgYywgY2hhciByZXBlYXQsIGNvbnN0IGNo
YXIqIHJlZ2V4LAotICAgIGNvbnN0IGNoYXIqIHN0cikgewotICBjb25zdCBzaXplX3QgbWluX2Nv
dW50ID0gKHJlcGVhdCA9PSAnKycpID8gMSA6IDA7Ci0gIGNvbnN0IHNpemVfdCBtYXhfY291bnQg
PSAocmVwZWF0ID09ICc/JykgPyAxIDoKLSAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oLTEpIC0g
MTsKLSAgLy8gV2UgY2Fubm90IGNhbGwgbnVtZXJpY19saW1pdHM6Om1heCgpIGFzIGl0IGNvbmZs
aWN0cyB3aXRoIHRoZQotICAvLyBtYXgoKSBtYWNybyBvbiBXaW5kb3dzLgotCi0gIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDw9IG1heF9jb3VudDsgKytpKSB7Ci0gICAgLy8gV2Uga25vdyB0aGF0IHRo
ZSBhdG9tIG1hdGNoZXMgZWFjaCBvZiB0aGUgZmlyc3QgaSBjaGFyYWN0ZXJzIGluIHN0ci4KLSAg
ICBpZiAoaSA+PSBtaW5fY291bnQgJiYgTWF0Y2hSZWdleEF0SGVhZChyZWdleCwgc3RyICsgaSkp
IHsKLSAgICAgIC8vIFdlIGhhdmUgZW5vdWdoIG1hdGNoZXMgYXQgdGhlIGhlYWQsIGFuZCB0aGUg
dGFpbCBtYXRjaGVzIHRvby4KLSAgICAgIC8vIFNpbmNlIHdlIG9ubHkgY2FyZSBhYm91dCAqd2hl
dGhlciogdGhlIHBhdHRlcm4gbWF0Y2hlcyBzdHIKLSAgICAgIC8vIChhcyBvcHBvc2VkIHRvICpo
b3cqIGl0IG1hdGNoZXMpLCB0aGVyZSBpcyBubyBuZWVkIHRvIGZpbmQgYQotICAgICAgLy8gZ3Jl
ZWR5IG1hdGNoLgotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChzdHJbaV0gPT0g
J1wwJyB8fCAhQXRvbU1hdGNoZXNDaGFyKGVzY2FwZWQsIGMsIHN0cltpXSkpCi0gICAgICByZXR1
cm4gZmFsc2U7Ci0gIH0KLSAgcmV0dXJuIGZhbHNlOwotfQotCi0vLyBSZXR1cm5zIHRydWUgaWZm
IHJlZ2V4IG1hdGNoZXMgYSBwcmVmaXggb2Ygc3RyLiAgcmVnZXggbXVzdCBiZSBhCi0vLyB2YWxp
ZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9uIGFuZCBub3Qgc3RhcnQgd2l0aCAiXiIsIG9yIHRo
ZQotLy8gcmVzdWx0IGlzIHVuZGVmaW5lZC4KLWJvb2wgTWF0Y2hSZWdleEF0SGVhZChjb25zdCBj
aGFyKiByZWdleCwgY29uc3QgY2hhciogc3RyKSB7Ci0gIGlmICgqcmVnZXggPT0gJ1wwJykgIC8v
IEFuIGVtcHR5IHJlZ2V4IG1hdGNoZXMgYSBwcmVmaXggb2YgYW55dGhpbmcuCi0gICAgcmV0dXJu
IHRydWU7Ci0KLSAgLy8gIiQiIG9ubHkgbWF0Y2hlcyB0aGUgZW5kIG9mIGEgc3RyaW5nLiAgTm90
ZSB0aGF0IHJlZ2V4IGJlaW5nCi0gIC8vIHZhbGlkIGd1YXJhbnRlZXMgdGhhdCB0aGVyZSdzIG5v
dGhpbmcgYWZ0ZXIgIiQiIGluIGl0LgotICBpZiAoKnJlZ2V4ID09ICckJykKLSAgICByZXR1cm4g
KnN0ciA9PSAnXDAnOwotCi0gIC8vIElzIHRoZSBmaXJzdCB0aGluZyBpbiByZWdleCBhbiBlc2Nh
cGUgc2VxdWVuY2U/Ci0gIGNvbnN0IGJvb2wgZXNjYXBlZCA9ICpyZWdleCA9PSAnXFwnOwotICBp
ZiAoZXNjYXBlZCkKLSAgICArK3JlZ2V4OwotICBpZiAoSXNSZXBlYXQocmVnZXhbMV0pKSB7Ci0g
ICAgLy8gTWF0Y2hSZXBldGl0aW9uQW5kUmVnZXhBdEhlYWQoKSBjYWxscyBNYXRjaFJlZ2V4QXRI
ZWFkKCksIHNvCi0gICAgLy8gaGVyZSdzIGFuIGluZGlyZWN0IHJlY3Vyc2lvbi4gIEl0IHRlcm1p
bmF0ZXMgYXMgdGhlIHJlZ2V4IGdldHMKLSAgICAvLyBzaG9ydGVyIGluIGVhY2ggcmVjdXJzaW9u
LgotICAgIHJldHVybiBNYXRjaFJlcGV0aXRpb25BbmRSZWdleEF0SGVhZCgKLSAgICAgICAgZXNj
YXBlZCwgcmVnZXhbMF0sIHJlZ2V4WzFdLCByZWdleCArIDIsIHN0cik7Ci0gIH0gZWxzZSB7Ci0g
ICAgLy8gcmVnZXggaXNuJ3QgZW1wdHksIGlzbid0ICIkIiwgYW5kIGRvZXNuJ3Qgc3RhcnQgd2l0
aCBhCi0gICAgLy8gcmVwZXRpdGlvbi4gIFdlIG1hdGNoIHRoZSBmaXJzdCBhdG9tIG9mIHJlZ2V4
IHdpdGggdGhlIGZpcnN0Ci0gICAgLy8gY2hhcmFjdGVyIG9mIHN0ciBhbmQgcmVjdXJzZS4KLSAg
ICByZXR1cm4gKCpzdHIgIT0gJ1wwJykgJiYgQXRvbU1hdGNoZXNDaGFyKGVzY2FwZWQsICpyZWdl
eCwgKnN0cikgJiYKLSAgICAgICAgTWF0Y2hSZWdleEF0SGVhZChyZWdleCArIDEsIHN0ciArIDEp
OwotICB9Ci19Ci0KLS8vIFJldHVybnMgdHJ1ZSBpZmYgcmVnZXggbWF0Y2hlcyBhbnkgc3Vic3Ry
aW5nIG9mIHN0ci4gIHJlZ2V4IG11c3QgYmUKLS8vIGEgdmFsaWQgc2ltcGxlIHJlZ3VsYXIgZXhw
cmVzc2lvbiwgb3IgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuCi0vLwotLy8gVGhlIGFsZ29yaXRo
bSBpcyByZWN1cnNpdmUsIGJ1dCB0aGUgcmVjdXJzaW9uIGRlcHRoIGRvZXNuJ3QgZXhjZWVkCi0v
LyB0aGUgcmVnZXggbGVuZ3RoLCBzbyB3ZSB3b24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IHJ1bm5p
bmcgb3V0IG9mCi0vLyBzdGFjayBzcGFjZSBub3JtYWxseS4gIEluIHJhcmUgY2FzZXMgdGhlIHRp
bWUgY29tcGxleGl0eSBjYW4gYmUKLS8vIGV4cG9uZW50aWFsIHdpdGggcmVzcGVjdCB0byB0aGUg
cmVnZXggbGVuZ3RoICsgdGhlIHN0cmluZyBsZW5ndGgsCi0vLyBidXQgdXN1YWxseSBpdCdzIG11
c3QgZmFzdGVyIChvZnRlbiBjbG9zZSB0byBsaW5lYXIpLgotYm9vbCBNYXRjaFJlZ2V4QW55d2hl
cmUoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikgewotICBpZiAocmVnZXggPT0g
TlVMTCB8fCBzdHIgPT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7Ci0KLSAgaWYgKCpyZWdleCA9
PSAnXicpCi0gICAgcmV0dXJuIE1hdGNoUmVnZXhBdEhlYWQocmVnZXggKyAxLCBzdHIpOwotCi0g
IC8vIEEgc3VjY2Vzc2Z1bCBtYXRjaCBjYW4gYmUgYW55d2hlcmUgaW4gc3RyLgotICBkbyB7Ci0g
ICAgaWYgKE1hdGNoUmVnZXhBdEhlYWQocmVnZXgsIHN0cikpCi0gICAgICByZXR1cm4gdHJ1ZTsK
LSAgfSB3aGlsZSAoKnN0cisrICE9ICdcMCcpOwotICByZXR1cm4gZmFsc2U7Ci19Ci0KLS8vIElt
cGxlbWVudHMgdGhlIFJFIGNsYXNzLgotCi1SRTo6flJFKCkgewotICBmcmVlKGNvbnN0X2Nhc3Q8
Y2hhcio+KHBhdHRlcm5fKSk7Ci0gIGZyZWUoY29uc3RfY2FzdDxjaGFyKj4oZnVsbF9wYXR0ZXJu
XykpOwotfQotCi0vLyBSZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRj
aGVzIHRoZSBlbnRpcmUgc3RyLgotYm9vbCBSRTo6RnVsbE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwg
Y29uc3QgUkUmIHJlKSB7Ci0gIHJldHVybiByZS5pc192YWxpZF8gJiYgTWF0Y2hSZWdleEFueXdo
ZXJlKHJlLmZ1bGxfcGF0dGVybl8sIHN0cik7Ci19Ci0KLS8vIFJldHVybnMgdHJ1ZSBpZmYgcmVn
dWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMgYSBzdWJzdHJpbmcgb2Ygc3RyCi0vLyAoaW5jbHVk
aW5nIHN0ciBpdHNlbGYpLgotYm9vbCBSRTo6UGFydGlhbE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwg
Y29uc3QgUkUmIHJlKSB7Ci0gIHJldHVybiByZS5pc192YWxpZF8gJiYgTWF0Y2hSZWdleEFueXdo
ZXJlKHJlLnBhdHRlcm5fLCBzdHIpOwotfQotCi0vLyBJbml0aWFsaXplcyBhbiBSRSBmcm9tIGl0
cyBzdHJpbmcgcmVwcmVzZW50YXRpb24uCi12b2lkIFJFOjpJbml0KGNvbnN0IGNoYXIqIHJlZ2V4
KSB7Ci0gIHBhdHRlcm5fID0gZnVsbF9wYXR0ZXJuXyA9IE5VTEw7Ci0gIGlmIChyZWdleCAhPSBO
VUxMKSB7Ci0gICAgcGF0dGVybl8gPSBwb3NpeDo6U3RyRHVwKHJlZ2V4KTsKLSAgfQotCi0gIGlz
X3ZhbGlkXyA9IFZhbGlkYXRlUmVnZXgocmVnZXgpOwotICBpZiAoIWlzX3ZhbGlkXykgewotICAg
IC8vIE5vIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBmdWxsIHBhdHRlcm4gd2hlbiB0aGUgcmVnZXgg
aXMgaW52YWxpZC4KLSAgICByZXR1cm47Ci0gIH0KLQotICBjb25zdCBzaXplX3QgbGVuID0gc3Ry
bGVuKHJlZ2V4KTsKLSAgLy8gUmVzZXJ2ZXMgZW5vdWdoIGJ5dGVzIHRvIGhvbGQgdGhlIHJlZ3Vs
YXIgZXhwcmVzc2lvbiB1c2VkIGZvciBhCi0gIC8vIGZ1bGwgbWF0Y2g6IHdlIG5lZWQgc3BhY2Ug
dG8gcHJlcGVuZCBhICdeJywgYXBwZW5kIGEgJyQnLCBhbmQKLSAgLy8gdGVybWluYXRlIHRoZSBz
dHJpbmcgd2l0aCAnXDAnLgotICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFs
bG9jKGxlbiArIDMpKTsKLSAgZnVsbF9wYXR0ZXJuXyA9IGJ1ZmZlcjsKLQotICBpZiAoKnJlZ2V4
ICE9ICdeJykKLSAgICAqYnVmZmVyKysgPSAnXic7ICAvLyBNYWtlcyBzdXJlIGZ1bGxfcGF0dGVy
bl8gc3RhcnRzIHdpdGggJ14nLgotCi0gIC8vIFdlIGRvbid0IHVzZSBzbnByaW50ZiBvciBzdHJu
Y3B5LCBhcyB0aGV5IHRyaWdnZXIgYSB3YXJuaW5nIHdoZW4KLSAgLy8gY29tcGlsZWQgd2l0aCBW
QysrIDguMC4KLSAgbWVtY3B5KGJ1ZmZlciwgcmVnZXgsIGxlbik7Ci0gIGJ1ZmZlciArPSBsZW47
Ci0KLSAgaWYgKGxlbiA9PSAwIHx8IHJlZ2V4W2xlbiAtIDFdICE9ICckJykKLSAgICAqYnVmZmVy
KysgPSAnJCc7ICAvLyBNYWtlcyBzdXJlIGZ1bGxfcGF0dGVybl8gZW5kcyB3aXRoICckJy4KLQot
ICAqYnVmZmVyID0gJ1wwJzsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9VU0VTX1BPU0lYX1JFCi0K
LWNvbnN0IGNoYXIga1Vua25vd25GaWxlW10gPSAidW5rbm93biBmaWxlIjsKLQotLy8gRm9ybWF0
cyBhIHNvdXJjZSBmaWxlIHBhdGggYW5kIGEgbGluZSBudW1iZXIgYXMgdGhleSB3b3VsZCBhcHBl
YXIKLS8vIGluIGFuIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUgY29tcGlsZXIgdXNlZCB0byBjb21w
aWxlIHRoaXMgY29kZS4KLUdURVNUX0FQSV8gOjpzdGQ6OnN0cmluZyBGb3JtYXRGaWxlTG9jYXRp
b24oY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgZmls
ZV9uYW1lKGZpbGUgPT0gTlVMTCA/IGtVbmtub3duRmlsZSA6IGZpbGUpOwotCi0gIGlmIChsaW5l
IDwgMCkgewotICAgIHJldHVybiBmaWxlX25hbWUgKyAiOiI7Ci0gIH0KLSNpZmRlZiBfTVNDX1ZF
UgotICByZXR1cm4gZmlsZV9uYW1lICsgIigiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGxpbmUpICsg
Iik6IjsKLSNlbHNlCi0gIHJldHVybiBmaWxlX25hbWUgKyAiOiIgKyBTdHJlYW1hYmxlVG9TdHJp
bmcobGluZSkgKyAiOiI7Ci0jZW5kaWYgIC8vIF9NU0NfVkVSCi19Ci0KLS8vIEZvcm1hdHMgYSBm
aWxlIGxvY2F0aW9uIGZvciBjb21waWxlci1pbmRlcGVuZGVudCBYTUwgb3V0cHV0LgotLy8gQWx0
aG91Z2ggdGhpcyBmdW5jdGlvbiBpcyBub3QgcGxhdGZvcm0gZGVwZW5kZW50LCB3ZSBwdXQgaXQg
bmV4dCB0bwotLy8gRm9ybWF0RmlsZUxvY2F0aW9uIGluIG9yZGVyIHRvIGNvbnRyYXN0IHRoZSB0
d28gZnVuY3Rpb25zLgotLy8gTm90ZSB0aGF0IEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxl
TG9jYXRpb24oKSBkb2VzIE5PVCBhcHBlbmQgY29sb24KLS8vIHRvIHRoZSBmaWxlIGxvY2F0aW9u
IGl0IHByb2R1Y2VzLCB1bmxpa2UgRm9ybWF0RmlsZUxvY2F0aW9uKCkuCi1HVEVTVF9BUElfIDo6
c3RkOjpzdHJpbmcgRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbigKLSAgICBj
b25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgewotICBjb25zdCBzdGQ6OnN0cmluZyBmaWxlX25h
bWUoZmlsZSA9PSBOVUxMID8ga1Vua25vd25GaWxlIDogZmlsZSk7Ci0KLSAgaWYgKGxpbmUgPCAw
KQotICAgIHJldHVybiBmaWxlX25hbWU7Ci0gIGVsc2UKLSAgICByZXR1cm4gZmlsZV9uYW1lICsg
IjoiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGxpbmUpOwotfQotCi1HVGVzdExvZzo6R1Rlc3RMb2co
R1Rlc3RMb2dTZXZlcml0eSBzZXZlcml0eSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCi0g
ICAgOiBzZXZlcml0eV8oc2V2ZXJpdHkpIHsKLSAgY29uc3QgY2hhciogY29uc3QgbWFya2VyID0K
LSAgICAgIHNldmVyaXR5ID09IEdURVNUX0lORk8gPyAgICAiWyAgSU5GTyBdIiA6Ci0gICAgICBz
ZXZlcml0eSA9PSBHVEVTVF9XQVJOSU5HID8gIltXQVJOSU5HXSIgOgotICAgICAgc2V2ZXJpdHkg
PT0gR1RFU1RfRVJST1IgPyAgICJbIEVSUk9SIF0iIDogIlsgRkFUQUwgXSI7Ci0gIEdldFN0cmVh
bSgpIDw8IDo6c3RkOjplbmRsIDw8IG1hcmtlciA8PCAiICIKLSAgICAgICAgICAgICAgPDwgRm9y
bWF0RmlsZUxvY2F0aW9uKGZpbGUsIGxpbmUpLmNfc3RyKCkgPDwgIjogIjsKLX0KLQotLy8gRmx1
c2hlcyB0aGUgYnVmZmVycyBhbmQsIGlmIHNldmVyaXR5IGlzIEdURVNUX0ZBVEFMLCBhYm9ydHMg
dGhlIHByb2dyYW0uCi1HVGVzdExvZzo6fkdUZXN0TG9nKCkgewotICBHZXRTdHJlYW0oKSA8PCA6
OnN0ZDo6ZW5kbDsKLSAgaWYgKHNldmVyaXR5XyA9PSBHVEVTVF9GQVRBTCkgewotICAgIGZmbHVz
aChzdGRlcnIpOwotICAgIHBvc2l4OjpBYm9ydCgpOwotICB9Ci19Ci0vLyBEaXNhYmxlIE1pY3Jv
c29mdCBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3IgUE9TSVggZnVuY3Rpb25zIGNhbGxlZCBmcm9t
Ci0vLyB0aGlzIGNsYXNzIChjcmVhdCwgZHVwLCBkdXAyLCBhbmQgY2xvc2UpCi1HVEVTVF9ESVNB
QkxFX01TQ19XQVJOSU5HU19QVVNIXyg0OTk2KQotCi0jaWYgR1RFU1RfSEFTX1NUUkVBTV9SRURJ
UkVDVElPTgotCi0vLyBPYmplY3QgdGhhdCBjYXB0dXJlcyBhbiBvdXRwdXQgc3RyZWFtIChzdGRv
dXQvc3RkZXJyKS4KLWNsYXNzIENhcHR1cmVkU3RyZWFtIHsKLSBwdWJsaWM6Ci0gIC8vIFRoZSBj
dG9yIHJlZGlyZWN0cyB0aGUgc3RyZWFtIHRvIGEgdGVtcG9yYXJ5IGZpbGUuCi0gIGV4cGxpY2l0
IENhcHR1cmVkU3RyZWFtKGludCBmZCkgOiBmZF8oZmQpLCB1bmNhcHR1cmVkX2ZkXyhkdXAoZmQp
KSB7Ci0jIGlmIEdURVNUX09TX1dJTkRPV1MKLSAgICBjaGFyIHRlbXBfZGlyX3BhdGhbTUFYX1BB
VEggKyAxXSA9IHsgJ1wwJyB9OyAgLy8gTk9MSU5UCi0gICAgY2hhciB0ZW1wX2ZpbGVfcGF0aFtN
QVhfUEFUSCArIDFdID0geyAnXDAnIH07ICAvLyBOT0xJTlQKLQotICAgIDo6R2V0VGVtcFBhdGhB
KHNpemVvZih0ZW1wX2Rpcl9wYXRoKSwgdGVtcF9kaXJfcGF0aCk7Ci0gICAgY29uc3QgVUlOVCBz
dWNjZXNzID0gOjpHZXRUZW1wRmlsZU5hbWVBKHRlbXBfZGlyX3BhdGgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJndGVzdF9yZWRpciIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAvLyBHZW5lcmF0ZSB1bmlxdWUg
ZmlsZSBuYW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZW1wX2ZpbGVfcGF0aCk7Ci0gICAgR1RFU1RfQ0hFQ0tfKHN1Y2Nlc3MgIT0gMCkKLSAgICAgICAg
PDwgIlVuYWJsZSB0byBjcmVhdGUgYSB0ZW1wb3JhcnkgZmlsZSBpbiAiIDw8IHRlbXBfZGlyX3Bh
dGg7Ci0gICAgY29uc3QgaW50IGNhcHR1cmVkX2ZkID0gY3JlYXQodGVtcF9maWxlX3BhdGgsIF9T
X0lSRUFEIHwgX1NfSVdSSVRFKTsKLSAgICBHVEVTVF9DSEVDS18oY2FwdHVyZWRfZmQgIT0gLTEp
IDw8ICJVbmFibGUgdG8gb3BlbiB0ZW1wb3JhcnkgZmlsZSAiCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8PCB0ZW1wX2ZpbGVfcGF0aDsKLSAgICBmaWxlbmFtZV8gPSB0ZW1w
X2ZpbGVfcGF0aDsKLSMgZWxzZQotICAgIC8vIFRoZXJlJ3Mgbm8gZ3VhcmFudGVlIHRoYXQgYSB0
ZXN0IGhhcyB3cml0ZSBhY2Nlc3MgdG8gdGhlIGN1cnJlbnQKLSAgICAvLyBkaXJlY3RvcnksIHNv
IHdlIGNyZWF0ZSB0aGUgdGVtcG9yYXJ5IGZpbGUgaW4gdGhlIC90bXAgZGlyZWN0b3J5Ci0gICAg
Ly8gaW5zdGVhZC4gV2UgdXNlIC90bXAgb24gbW9zdCBzeXN0ZW1zLCBhbmQgL3NkY2FyZCBvbiBB
bmRyb2lkLgotICAgIC8vIFRoYXQncyBiZWNhdXNlIEFuZHJvaWQgZG9lc24ndCBoYXZlIC90bXAu
Ci0jICBpZiBHVEVTVF9PU19MSU5VWF9BTkRST0lECi0gICAgLy8gTm90ZTogQW5kcm9pZCBhcHBs
aWNhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGNhbGwgdGhlIGZyYW1ld29yaydzCi0gICAgLy8gQ29u
dGV4dC5nZXRFeHRlcm5hbFN0b3JhZ2VEaXJlY3RvcnkoKSBtZXRob2QgdGhyb3VnaCBKTkkgdG8g
Z2V0Ci0gICAgLy8gdGhlIGxvY2F0aW9uIG9mIHRoZSB3b3JsZC13cml0YWJsZSBTRCBDYXJkIGRp
cmVjdG9yeS4gSG93ZXZlciwKLSAgICAvLyB0aGlzIHJlcXVpcmVzIGEgQ29udGV4dCBoYW5kbGUs
IHdoaWNoIGNhbm5vdCBiZSByZXRyaWV2ZWQKLSAgICAvLyBnbG9iYWxseSBmcm9tIG5hdGl2ZSBj
b2RlLiBEb2luZyBzbyBhbHNvIHByZWNsdWRlcyBydW5uaW5nIHRoZQotICAgIC8vIGNvZGUgYXMg
cGFydCBvZiBhIHJlZ3VsYXIgc3RhbmRhbG9uZSBleGVjdXRhYmxlLCB3aGljaCBkb2Vzbid0Ci0g
ICAgLy8gcnVuIGluIGEgRGFsdmlrIHByb2Nlc3MgKGUuZy4gd2hlbiBydW5uaW5nIGl0IHRocm91
Z2ggJ2FkYiBzaGVsbCcpLgotICAgIC8vCi0gICAgLy8gVGhlIGxvY2F0aW9uIC9zZGNhcmQgaXMg
ZGlyZWN0bHkgYWNjZXNzaWJsZSBmcm9tIG5hdGl2ZSBjb2RlCi0gICAgLy8gYW5kIGlzIHRoZSBv
bmx5IGxvY2F0aW9uICh1bm9mZmljaWFsbHkpIHN1cHBvcnRlZCBieSB0aGUgQW5kcm9pZAotICAg
IC8vIHRlYW0uIEl0J3MgZ2VuZXJhbGx5IGEgc3ltbGluayB0byB0aGUgcmVhbCBTRCBDYXJkIG1v
dW50IHBvaW50Ci0gICAgLy8gd2hpY2ggY2FuIGJlIC9tbnQvc2RjYXJkLCAvbW50L3NkY2FyZDAs
IC9zeXN0ZW0vbWVkaWEvc2RjYXJkLCBvcgotICAgIC8vIG90aGVyIE9FTS1jdXN0b21pemVkIGxv
Y2F0aW9ucy4gTmV2ZXIgcmVseSBvbiB0aGVzZSwgYW5kIGFsd2F5cwotICAgIC8vIHVzZSAvc2Rj
YXJkLgotICAgIGNoYXIgbmFtZV90ZW1wbGF0ZVtdID0gIi9zZGNhcmQvZ3Rlc3RfY2FwdHVyZWRf
c3RyZWFtLlhYWFhYWCI7Ci0jICBlbHNlCi0gICAgY2hhciBuYW1lX3RlbXBsYXRlW10gPSAiL3Rt
cC9jYXB0dXJlZF9zdHJlYW0uWFhYWFhYIjsKLSMgIGVuZGlmICAvLyBHVEVTVF9PU19MSU5VWF9B
TkRST0lECi0gICAgY29uc3QgaW50IGNhcHR1cmVkX2ZkID0gbWtzdGVtcChuYW1lX3RlbXBsYXRl
KTsKLSAgICBmaWxlbmFtZV8gPSBuYW1lX3RlbXBsYXRlOwotIyBlbmRpZiAgLy8gR1RFU1RfT1Nf
V0lORE9XUwotICAgIGZmbHVzaChOVUxMKTsKLSAgICBkdXAyKGNhcHR1cmVkX2ZkLCBmZF8pOwot
ICAgIGNsb3NlKGNhcHR1cmVkX2ZkKTsKLSAgfQotCi0gIH5DYXB0dXJlZFN0cmVhbSgpIHsKLSAg
ICByZW1vdmUoZmlsZW5hbWVfLmNfc3RyKCkpOwotICB9Ci0KLSAgc3RkOjpzdHJpbmcgR2V0Q2Fw
dHVyZWRTdHJpbmcoKSB7Ci0gICAgaWYgKHVuY2FwdHVyZWRfZmRfICE9IC0xKSB7Ci0gICAgICAv
LyBSZXN0b3JlcyB0aGUgb3JpZ2luYWwgc3RyZWFtLgotICAgICAgZmZsdXNoKE5VTEwpOwotICAg
ICAgZHVwMih1bmNhcHR1cmVkX2ZkXywgZmRfKTsKLSAgICAgIGNsb3NlKHVuY2FwdHVyZWRfZmRf
KTsKLSAgICAgIHVuY2FwdHVyZWRfZmRfID0gLTE7Ci0gICAgfQotCi0gICAgRklMRSogY29uc3Qg
ZmlsZSA9IHBvc2l4OjpGT3BlbihmaWxlbmFtZV8uY19zdHIoKSwgInIiKTsKLSAgICBjb25zdCBz
dGQ6OnN0cmluZyBjb250ZW50ID0gUmVhZEVudGlyZUZpbGUoZmlsZSk7Ci0gICAgcG9zaXg6OkZD
bG9zZShmaWxlKTsKLSAgICByZXR1cm4gY29udGVudDsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY29u
c3QgaW50IGZkXzsgIC8vIEEgc3RyZWFtIHRvIGNhcHR1cmUuCi0gIGludCB1bmNhcHR1cmVkX2Zk
XzsKLSAgLy8gTmFtZSBvZiB0aGUgdGVtcG9yYXJ5IGZpbGUgaG9sZGluZyB0aGUgc3RkZXJyIG91
dHB1dC4KLSAgOjpzdGQ6OnN0cmluZyBmaWxlbmFtZV87Ci0KLSAgR1RFU1RfRElTQUxMT1dfQ09Q
WV9BTkRfQVNTSUdOXyhDYXB0dXJlZFN0cmVhbSk7Ci19OwotCi1HVEVTVF9ESVNBQkxFX01TQ19X
QVJOSU5HU19QT1BfKCkKLQotc3RhdGljIENhcHR1cmVkU3RyZWFtKiBnX2NhcHR1cmVkX3N0ZGVy
ciA9IE5VTEw7Ci1zdGF0aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3Rkb3V0ID0gTlVM
TDsKLQotLy8gU3RhcnRzIGNhcHR1cmluZyBhbiBvdXRwdXQgc3RyZWFtIChzdGRvdXQvc3RkZXJy
KS4KLXN0YXRpYyB2b2lkIENhcHR1cmVTdHJlYW0oaW50IGZkLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBzdHJlYW1fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ2FwdHVyZWRTdHJlYW0qKiBzdHJlYW0pIHsKLSAgaWYgKCpzdHJlYW0gIT0gTlVMTCkgewot
ICAgIEdURVNUX0xPR18oRkFUQUwpIDw8ICJPbmx5IG9uZSAiIDw8IHN0cmVhbV9uYW1lCi0gICAg
ICAgICAgICAgICAgICAgICAgPDwgIiBjYXB0dXJlciBjYW4gZXhpc3QgYXQgYSB0aW1lLiI7Ci0g
IH0KLSAgKnN0cmVhbSA9IG5ldyBDYXB0dXJlZFN0cmVhbShmZCk7Ci19Ci0KLS8vIFN0b3BzIGNh
cHR1cmluZyB0aGUgb3V0cHV0IHN0cmVhbSBhbmQgcmV0dXJucyB0aGUgY2FwdHVyZWQgc3RyaW5n
Lgotc3RhdGljIHN0ZDo6c3RyaW5nIEdldENhcHR1cmVkU3RyZWFtKENhcHR1cmVkU3RyZWFtKiog
Y2FwdHVyZWRfc3RyZWFtKSB7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGNvbnRlbnQgPSAoKmNhcHR1
cmVkX3N0cmVhbSktPkdldENhcHR1cmVkU3RyaW5nKCk7Ci0KLSAgZGVsZXRlICpjYXB0dXJlZF9z
dHJlYW07Ci0gICpjYXB0dXJlZF9zdHJlYW0gPSBOVUxMOwotCi0gIHJldHVybiBjb250ZW50Owot
fQotCi0vLyBTdGFydHMgY2FwdHVyaW5nIHN0ZG91dC4KLXZvaWQgQ2FwdHVyZVN0ZG91dCgpIHsK
LSAgQ2FwdHVyZVN0cmVhbShrU3RkT3V0RmlsZW5vLCAic3Rkb3V0IiwgJmdfY2FwdHVyZWRfc3Rk
b3V0KTsKLX0KLQotLy8gU3RhcnRzIGNhcHR1cmluZyBzdGRlcnIuCi12b2lkIENhcHR1cmVTdGRl
cnIoKSB7Ci0gIENhcHR1cmVTdHJlYW0oa1N0ZEVyckZpbGVubywgInN0ZGVyciIsICZnX2NhcHR1
cmVkX3N0ZGVycik7Ci19Ci0KLS8vIFN0b3BzIGNhcHR1cmluZyBzdGRvdXQgYW5kIHJldHVybnMg
dGhlIGNhcHR1cmVkIHN0cmluZy4KLXN0ZDo6c3RyaW5nIEdldENhcHR1cmVkU3Rkb3V0KCkgewot
ICByZXR1cm4gR2V0Q2FwdHVyZWRTdHJlYW0oJmdfY2FwdHVyZWRfc3Rkb3V0KTsKLX0KLQotLy8g
U3RvcHMgY2FwdHVyaW5nIHN0ZGVyciBhbmQgcmV0dXJucyB0aGUgY2FwdHVyZWQgc3RyaW5nLgot
c3RkOjpzdHJpbmcgR2V0Q2FwdHVyZWRTdGRlcnIoKSB7Ci0gIHJldHVybiBHZXRDYXB0dXJlZFN0
cmVhbSgmZ19jYXB0dXJlZF9zdGRlcnIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19TVFJF
QU1fUkVESVJFQ1RJT04KLQotc2l6ZV90IEdldEZpbGVTaXplKEZJTEUqIGZpbGUpIHsKLSAgZnNl
ZWsoZmlsZSwgMCwgU0VFS19FTkQpOwotICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihmdGVs
bChmaWxlKSk7Ci19Ci0KLXN0ZDo6c3RyaW5nIFJlYWRFbnRpcmVGaWxlKEZJTEUqIGZpbGUpIHsK
LSAgY29uc3Qgc2l6ZV90IGZpbGVfc2l6ZSA9IEdldEZpbGVTaXplKGZpbGUpOwotICBjaGFyKiBj
b25zdCBidWZmZXIgPSBuZXcgY2hhcltmaWxlX3NpemVdOwotCi0gIHNpemVfdCBieXRlc19sYXN0
X3JlYWQgPSAwOyAgLy8gIyBvZiBieXRlcyByZWFkIGluIHRoZSBsYXN0IGZyZWFkKCkKLSAgc2l6
ZV90IGJ5dGVzX3JlYWQgPSAwOyAgICAgICAvLyAjIG9mIGJ5dGVzIHJlYWQgc28gZmFyCi0KLSAg
ZnNlZWsoZmlsZSwgMCwgU0VFS19TRVQpOwotCi0gIC8vIEtlZXBzIHJlYWRpbmcgdGhlIGZpbGUg
dW50aWwgd2UgY2Fubm90IHJlYWQgZnVydGhlciBvciB0aGUKLSAgLy8gcHJlLWRldGVybWluZWQg
ZmlsZSBzaXplIGlzIHJlYWNoZWQuCi0gIGRvIHsKLSAgICBieXRlc19sYXN0X3JlYWQgPSBmcmVh
ZChidWZmZXIrYnl0ZXNfcmVhZCwgMSwgZmlsZV9zaXplLWJ5dGVzX3JlYWQsIGZpbGUpOwotICAg
IGJ5dGVzX3JlYWQgKz0gYnl0ZXNfbGFzdF9yZWFkOwotICB9IHdoaWxlIChieXRlc19sYXN0X3Jl
YWQgPiAwICYmIGJ5dGVzX3JlYWQgPCBmaWxlX3NpemUpOwotCi0gIGNvbnN0IHN0ZDo6c3RyaW5n
IGNvbnRlbnQoYnVmZmVyLCBieXRlc19yZWFkKTsKLSAgZGVsZXRlW10gYnVmZmVyOwotCi0gIHJl
dHVybiBjb250ZW50OwotfQotCi0jaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotc3RhdGljIGNv
bnN0IDo6c3RkOjp2ZWN0b3I8dGVzdGluZzo6aW50ZXJuYWw6OnN0cmluZz4qIGdfaW5qZWN0ZWRf
dGVzdF9hcmd2cyA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TDsgIC8vIE93bmVkLgotCi12b2lkIFNldEluamVjdGFibGVBcmd2cyhjb25zdCA6OnN0ZDo6dmVj
dG9yPHRlc3Rpbmc6OmludGVybmFsOjpzdHJpbmc+KiBhcmd2cykgewotICBpZiAoZ19pbmplY3Rl
ZF90ZXN0X2FyZ3ZzICE9IGFyZ3ZzKQotICAgIGRlbGV0ZSBnX2luamVjdGVkX3Rlc3RfYXJndnM7
Ci0gIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9IGFyZ3ZzOwotfQotCi1jb25zdCA6OnN0ZDo6dmVj
dG9yPHRlc3Rpbmc6OmludGVybmFsOjpzdHJpbmc+JiBHZXRJbmplY3RhYmxlQXJndnMoKSB7Ci0g
IGlmIChnX2luamVjdGVkX3Rlc3RfYXJndnMgIT0gTlVMTCkgewotICAgIHJldHVybiAqZ19pbmpl
Y3RlZF90ZXN0X2FyZ3ZzOwotICB9Ci0gIHJldHVybiBHZXRBcmd2cygpOwotfQotI2VuZGlmICAv
LyBHVEVTVF9IQVNfREVBVEhfVEVTVAotCi0jaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLW5h
bWVzcGFjZSBwb3NpeCB7Ci12b2lkIEFib3J0KCkgewotICBEZWJ1Z0JyZWFrKCk7Ci0gIFRlcm1p
bmF0ZVByb2Nlc3MoR2V0Q3VycmVudFByb2Nlc3MoKSwgMSk7Ci19Ci19ICAvLyBuYW1lc3BhY2Ug
cG9zaXgKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLQotLy8gUmV0dXJucyB0
aGUgbmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgY29ycmVzcG9uZGluZyB0byB0aGUK
LS8vIGdpdmVuIGZsYWcuICBGb3IgZXhhbXBsZSwgRmxhZ1RvRW52VmFyKCJmb28iKSB3aWxsIHJl
dHVybgotLy8gIkdURVNUX0ZPTyIgaW4gdGhlIG9wZW4tc291cmNlIHZlcnNpb24uCi1zdGF0aWMg
c3RkOjpzdHJpbmcgRmxhZ1RvRW52VmFyKGNvbnN0IGNoYXIqIGZsYWcpIHsKLSAgY29uc3Qgc3Rk
OjpzdHJpbmcgZnVsbF9mbGFnID0KLSAgICAgIChNZXNzYWdlKCkgPDwgR1RFU1RfRkxBR19QUkVG
SVhfIDw8IGZsYWcpLkdldFN0cmluZygpOwotCi0gIE1lc3NhZ2UgZW52X3ZhcjsKLSAgZm9yIChz
aXplX3QgaSA9IDA7IGkgIT0gZnVsbF9mbGFnLmxlbmd0aCgpOyBpKyspIHsKLSAgICBlbnZfdmFy
IDw8IFRvVXBwZXIoZnVsbF9mbGFnLmNfc3RyKClbaV0pOwotICB9Ci0KLSAgcmV0dXJuIGVudl92
YXIuR2V0U3RyaW5nKCk7Ci19Ci0KLS8vIFBhcnNlcyAnc3RyJyBmb3IgYSAzMi1iaXQgc2lnbmVk
IGludGVnZXIuICBJZiBzdWNjZXNzZnVsLCB3cml0ZXMKLS8vIHRoZSByZXN1bHQgdG8gKnZhbHVl
IGFuZCByZXR1cm5zIHRydWU7IG90aGVyd2lzZSBsZWF2ZXMgKnZhbHVlCi0vLyB1bmNoYW5nZWQg
YW5kIHJldHVybnMgZmFsc2UuCi1ib29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3Rl
eHQsIGNvbnN0IGNoYXIqIHN0ciwgSW50MzIqIHZhbHVlKSB7Ci0gIC8vIFBhcnNlcyB0aGUgZW52
aXJvbm1lbnQgdmFyaWFibGUgYXMgYSBkZWNpbWFsIGludGVnZXIuCi0gIGNoYXIqIGVuZCA9IE5V
TEw7Ci0gIGNvbnN0IGxvbmcgbG9uZ192YWx1ZSA9IHN0cnRvbChzdHIsICZlbmQsIDEwKTsgIC8v
IE5PTElOVAotCi0gIC8vIEhhcyBzdHJ0b2woKSBjb25zdW1lZCBhbGwgY2hhcmFjdGVycyBpbiB0
aGUgc3RyaW5nPwotICBpZiAoKmVuZCAhPSAnXDAnKSB7Ci0gICAgLy8gTm8gLSBhbiBpbnZhbGlk
IGNoYXJhY3RlciB3YXMgZW5jb3VudGVyZWQuCi0gICAgTWVzc2FnZSBtc2c7Ci0gICAgbXNnIDw8
ICJXQVJOSU5HOiAiIDw8IHNyY190ZXh0Ci0gICAgICAgIDw8ICIgaXMgZXhwZWN0ZWQgdG8gYmUg
YSAzMi1iaXQgaW50ZWdlciwgYnV0IGFjdHVhbGx5IgotICAgICAgICA8PCAiIGhhcyB2YWx1ZSBc
IiIgPDwgc3RyIDw8ICJcIi5cbiI7Ci0gICAgcHJpbnRmKCIlcyIsIG1zZy5HZXRTdHJpbmcoKS5j
X3N0cigpKTsKLSAgICBmZmx1c2goc3Rkb3V0KTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQot
ICAvLyBJcyB0aGUgcGFyc2VkIHZhbHVlIGluIHRoZSByYW5nZSBvZiBhbiBJbnQzMj8KLSAgY29u
c3QgSW50MzIgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SW50MzI+KGxvbmdfdmFsdWUpOwotICBpZiAo
bG9uZ192YWx1ZSA9PSBMT05HX01BWCB8fCBsb25nX3ZhbHVlID09IExPTkdfTUlOIHx8Ci0gICAg
ICAvLyBUaGUgcGFyc2VkIHZhbHVlIG92ZXJmbG93cyBhcyBhIGxvbmcuICAoc3RydG9sKCkgcmV0
dXJucwotICAgICAgLy8gTE9OR19NQVggb3IgTE9OR19NSU4gd2hlbiB0aGUgaW5wdXQgb3ZlcmZs
b3dzLikKLSAgICAgIHJlc3VsdCAhPSBsb25nX3ZhbHVlCi0gICAgICAvLyBUaGUgcGFyc2VkIHZh
bHVlIG92ZXJmbG93cyBhcyBhbiBJbnQzMi4KLSAgICAgICkgewotICAgIE1lc3NhZ2UgbXNnOwot
ICAgIG1zZyA8PCAiV0FSTklORzogIiA8PCBzcmNfdGV4dAotICAgICAgICA8PCAiIGlzIGV4cGVj
dGVkIHRvIGJlIGEgMzItYml0IGludGVnZXIsIGJ1dCBhY3R1YWxseSIKLSAgICAgICAgPDwgIiBo
YXMgdmFsdWUgIiA8PCBzdHIgPDwgIiwgd2hpY2ggb3ZlcmZsb3dzLlxuIjsKLSAgICBwcmludGYo
IiVzIiwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwotICAgIGZmbHVzaChzdGRvdXQpOwotICAg
IHJldHVybiBmYWxzZTsKLSAgfQotCi0gICp2YWx1ZSA9IHJlc3VsdDsKLSAgcmV0dXJuIHRydWU7
Ci19Ci0KLS8vIFJlYWRzIGFuZCByZXR1cm5zIHRoZSBCb29sZWFuIGVudmlyb25tZW50IHZhcmlh
YmxlIGNvcnJlc3BvbmRpbmcgdG8KLS8vIHRoZSBnaXZlbiBmbGFnOyBpZiBpdCdzIG5vdCBzZXQs
IHJldHVybnMgZGVmYXVsdF92YWx1ZS4KLS8vCi0vLyBUaGUgdmFsdWUgaXMgY29uc2lkZXJlZCB0
cnVlIGlmZiBpdCdzIG5vdCAiMCIuCi1ib29sIEJvb2xGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciog
ZmxhZywgYm9vbCBkZWZhdWx0X3ZhbHVlKSB7Ci0jaWYgZGVmaW5lZChHVEVTVF9HRVRfQk9PTF9G
Uk9NX0VOVl8pCi0gIHJldHVybiBHVEVTVF9HRVRfQk9PTF9GUk9NX0VOVl8oZmxhZywgZGVmYXVs
dF92YWx1ZSk7Ci0jZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfR0VUX0JPT0xfRlJPTV9FTlZfKQot
ICBjb25zdCBzdGQ6OnN0cmluZyBlbnZfdmFyID0gRmxhZ1RvRW52VmFyKGZsYWcpOwotICBjb25z
dCBjaGFyKiBjb25zdCBzdHJpbmdfdmFsdWUgPSBwb3NpeDo6R2V0RW52KGVudl92YXIuY19zdHIo
KSk7Ci0gIHJldHVybiBzdHJpbmdfdmFsdWUgPT0gTlVMTCA/Ci0gICAgICBkZWZhdWx0X3ZhbHVl
IDogc3RyY21wKHN0cmluZ192YWx1ZSwgIjAiKSAhPSAwOwotfQotCi0vLyBSZWFkcyBhbmQgcmV0
dXJucyBhIDMyLWJpdCBpbnRlZ2VyIHN0b3JlZCBpbiB0aGUgZW52aXJvbm1lbnQKLS8vIHZhcmlh
YmxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGZsYWc7IGlmIGl0IGlzbid0IHNldCBvcgot
Ly8gZG9lc24ndCByZXByZXNlbnQgYSB2YWxpZCAzMi1iaXQgaW50ZWdlciwgcmV0dXJucyBkZWZh
dWx0X3ZhbHVlLgotSW50MzIgSW50MzJGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgSW50
MzIgZGVmYXVsdF92YWx1ZSkgewotI2lmIGRlZmluZWQoR1RFU1RfR0VUX0lOVDMyX0ZST01fRU5W
XykKLSAgcmV0dXJuIEdURVNUX0dFVF9JTlQzMl9GUk9NX0VOVl8oZmxhZywgZGVmYXVsdF92YWx1
ZSk7Ci0jZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfR0VUX0lOVDMyX0ZST01fRU5WXykKLSAgY29u
c3Qgc3RkOjpzdHJpbmcgZW52X3ZhciA9IEZsYWdUb0VudlZhcihmbGFnKTsKLSAgY29uc3QgY2hh
ciogY29uc3Qgc3RyaW5nX3ZhbHVlID0gcG9zaXg6OkdldEVudihlbnZfdmFyLmNfc3RyKCkpOwot
ICBpZiAoc3RyaW5nX3ZhbHVlID09IE5VTEwpIHsKLSAgICAvLyBUaGUgZW52aXJvbm1lbnQgdmFy
aWFibGUgaXMgbm90IHNldC4KLSAgICByZXR1cm4gZGVmYXVsdF92YWx1ZTsKLSAgfQotCi0gIElu
dDMyIHJlc3VsdCA9IGRlZmF1bHRfdmFsdWU7Ci0gIGlmICghUGFyc2VJbnQzMihNZXNzYWdlKCkg
PDwgIkVudmlyb25tZW50IHZhcmlhYmxlICIgPDwgZW52X3ZhciwKLSAgICAgICAgICAgICAgICAg
IHN0cmluZ192YWx1ZSwgJnJlc3VsdCkpIHsKLSAgICBwcmludGYoIlRoZSBkZWZhdWx0IHZhbHVl
ICVzIGlzIHVzZWQuXG4iLAotICAgICAgICAgICAoTWVzc2FnZSgpIDw8IGRlZmF1bHRfdmFsdWUp
LkdldFN0cmluZygpLmNfc3RyKCkpOwotICAgIGZmbHVzaChzdGRvdXQpOwotICAgIHJldHVybiBk
ZWZhdWx0X3ZhbHVlOwotICB9Ci0KLSAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLy8gUmVhZHMgYW5k
IHJldHVybnMgdGhlIHN0cmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRv
Ci0vLyB0aGUgZ2l2ZW4gZmxhZzsgaWYgaXQncyBub3Qgc2V0LCByZXR1cm5zIGRlZmF1bHRfdmFs
dWUuCi1zdGQ6OnN0cmluZyBTdHJpbmdGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgY29u
c3QgY2hhciogZGVmYXVsdF92YWx1ZSkgewotI2lmIGRlZmluZWQoR1RFU1RfR0VUX1NUUklOR19G
Uk9NX0VOVl8pCi0gIHJldHVybiBHVEVTVF9HRVRfU1RSSU5HX0ZST01fRU5WXyhmbGFnLCBkZWZh
dWx0X3ZhbHVlKTsKLSNlbmRpZiAgLy8gZGVmaW5lZChHVEVTVF9HRVRfU1RSSU5HX0ZST01fRU5W
XykKLSAgY29uc3Qgc3RkOjpzdHJpbmcgZW52X3ZhciA9IEZsYWdUb0VudlZhcihmbGFnKTsKLSAg
Y29uc3QgY2hhciogdmFsdWUgPSBwb3NpeDo6R2V0RW52KGVudl92YXIuY19zdHIoKSk7Ci0gIGlm
ICh2YWx1ZSAhPSBOVUxMKSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0KLSAgLy8gQXMgYSBz
cGVjaWFsIGNhc2UgZm9yIHRoZSAnb3V0cHV0JyBmbGFnLCBpZiBHVEVTVF9PVVRQVVQgaXMgbm90
Ci0gIC8vIHNldCwgd2UgbG9vayBmb3IgWE1MX09VVFBVVF9GSUxFLCB3aGljaCBpcyBzZXQgYnkg
dGhlIEJhemVsIGJ1aWxkCi0gIC8vIHN5c3RlbS4gIFRoZSB2YWx1ZSBvZiBYTUxfT1VUUFVUX0ZJ
TEUgaXMgYSBmaWxlbmFtZSB3aXRob3V0IHRoZQotICAvLyAieG1sOiIgcHJlZml4IG9mIEdURVNU
X09VVFBVVC4KLSAgLy8KLSAgLy8gVGhlIG5ldCBwcmlvcml0eSBvcmRlciBhZnRlciBmbGFnIHBy
b2Nlc3NpbmcgaXMgdGh1czoKLSAgLy8gICAtLWd0ZXN0X291dHB1dCBjb21tYW5kIGxpbmUgZmxh
ZwotICAvLyAgIEdURVNUX09VVFBVVCBlbnZpcm9ubWVudCB2YXJpYWJsZQotICAvLyAgIFhNTF9P
VVRQVVRfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZQotICAvLyAgICdkZWZhdWx0X3ZhbHVlJwot
ICBpZiAoc3RyY21wKGZsYWcsICJvdXRwdXQiKSA9PSAwKSB7Ci0gICAgdmFsdWUgPSBwb3NpeDo6
R2V0RW52KCJYTUxfT1VUUFVUX0ZJTEUiKTsKLSAgICBpZiAodmFsdWUgIT0gTlVMTCkgewotICAg
ICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJ4bWw6IikgKyB2YWx1ZTsKLSAgICB9Ci0gIH0KLSAgcmV0
dXJuIGRlZmF1bHRfdmFsdWU7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8g
bmFtZXNwYWNlIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0
L3NyYy9ndGVzdC1wcmludGVycy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9n
dGVzdC1wcmludGVycy5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQ2N2Y2NDU4
MjdmZDYxMWQ0NzBmMjgzMDA4YmNiMDAxMDg3YzY4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zcmMvZ3Rl
c3QtcHJpbnRlcnMuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzNzYgKzAsMCBAQAotLy8gQ29weXJp
Z2h0IDIwMDcsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0v
LyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRp
b24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0v
LyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdv
b2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotLy8gR29vZ2xlIFRlc3QgLSBUaGUgR29vZ2xlIEMr
KyBUZXN0aW5nIEZyYW1ld29yawotLy8KLS8vIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGEgdW5pdmVy
c2FsIHZhbHVlIHByaW50ZXIgdGhhdCBjYW4gcHJpbnQgYQotLy8gdmFsdWUgb2YgYW55IHR5cGUg
VDoKLS8vCi0vLyAgIHZvaWQgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnRlcjxU
Pjo6UHJpbnQodmFsdWUsIG9zdHJlYW1fcHRyKTsKLS8vCi0vLyBJdCB1c2VzIHRoZSA8PCBvcGVy
YXRvciB3aGVuIHBvc3NpYmxlLCBhbmQgcHJpbnRzIHRoZSBieXRlcyBpbiB0aGUKLS8vIG9iamVj
dCBvdGhlcndpc2UuICBBIHVzZXIgY2FuIG92ZXJyaWRlIGl0cyBiZWhhdmlvciBmb3IgYSBjbGFz
cwotLy8gdHlwZSBGb28gYnkgZGVmaW5pbmcgZWl0aGVyIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJl
YW0mLCBjb25zdCBGb28mKQotLy8gb3Igdm9pZCBQcmludFRvKGNvbnN0IEZvbyYsIDo6c3RkOjpv
c3RyZWFtKikgaW4gdGhlIG5hbWVzcGFjZSB0aGF0Ci0vLyBkZWZpbmVzIEZvby4KLQotI2luY2x1
ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCi0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRl
IDxzdGRpby5oPgotI2luY2x1ZGUgPGN3Y2hhcj4KLSNpbmNsdWRlIDxvc3RyZWFtPiAgLy8gTk9M
SU5UCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBv
cnQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi1uYW1lc3BhY2UgewotCi11c2luZyA6OnN0
ZDo6b3N0cmVhbTsKLQotLy8gUHJpbnRzIGEgc2VnbWVudCBvZiBieXRlcyBpbiB0aGUgZ2l2ZW4g
b2JqZWN0LgotR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX01FTU9SWV8KLUdURVNUX0FUVFJJ
QlVURV9OT19TQU5JVElaRV9BRERSRVNTXwotR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX1RI
UkVBRF8KLXZvaWQgUHJpbnRCeXRlU2VnbWVudEluT2JqZWN0VG8oY29uc3QgdW5zaWduZWQgY2hh
ciogb2JqX2J5dGVzLCBzaXplX3Qgc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBjb3VudCwgb3N0cmVhbSogb3MpIHsKLSAgY2hhciB0ZXh0WzVdID0gIiI7Ci0g
IGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IGNvdW50OyBpKyspIHsKLSAgICBjb25zdCBzaXplX3Qg
aiA9IHN0YXJ0ICsgaTsKLSAgICBpZiAoaSAhPSAwKSB7Ci0gICAgICAvLyBPcmdhbml6ZXMgdGhl
IGJ5dGVzIGludG8gZ3JvdXBzIG9mIDIgZm9yIGVhc3kgcGFyc2luZyBieQotICAgICAgLy8gaHVt
YW4uCi0gICAgICBpZiAoKGogJSAyKSA9PSAwKQotICAgICAgICAqb3MgPDwgJyAnOwotICAgICAg
ZWxzZQotICAgICAgICAqb3MgPDwgJy0nOwotICAgIH0KLSAgICBHVEVTVF9TTlBSSU5URl8odGV4
dCwgc2l6ZW9mKHRleHQpLCAiJTAyWCIsIG9ial9ieXRlc1tqXSk7Ci0gICAgKm9zIDw8IHRleHQ7
Ci0gIH0KLX0KLQotLy8gUHJpbnRzIHRoZSBieXRlcyBpbiB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhl
IGdpdmVuIG9zdHJlYW0uCi12b2lkIFByaW50Qnl0ZXNJbk9iamVjdFRvSW1wbChjb25zdCB1bnNp
Z25lZCBjaGFyKiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9zdHJlYW0qIG9zKSB7Ci0gIC8vIFRlbGxzIHRoZSB1c2VyIGhvdyBiaWcgdGhl
IG9iamVjdCBpcy4KLSAgKm9zIDw8IGNvdW50IDw8ICItYnl0ZSBvYmplY3QgPCI7Ci0KLSAgY29u
c3Qgc2l6ZV90IGtUaHJlc2hvbGQgPSAxMzI7Ci0gIGNvbnN0IHNpemVfdCBrQ2h1bmtTaXplID0g
NjQ7Ci0gIC8vIElmIHRoZSBvYmplY3Qgc2l6ZSBpcyBiaWdnZXIgdGhhbiBrVGhyZXNob2xkLCB3
ZSdsbCBoYXZlIHRvIG9taXQKLSAgLy8gc29tZSBkZXRhaWxzIGJ5IHByaW50aW5nIG9ubHkgdGhl
IGZpcnN0IGFuZCB0aGUgbGFzdCBrQ2h1bmtTaXplCi0gIC8vIGJ5dGVzLgotICAvLyBUT0RPKHdh
bik6IGxldCB0aGUgdXNlciBjb250cm9sIHRoZSB0aHJlc2hvbGQgdXNpbmcgYSBmbGFnLgotICBp
ZiAoY291bnQgPCBrVGhyZXNob2xkKSB7Ci0gICAgUHJpbnRCeXRlU2VnbWVudEluT2JqZWN0VG8o
b2JqX2J5dGVzLCAwLCBjb3VudCwgb3MpOwotICB9IGVsc2UgewotICAgIFByaW50Qnl0ZVNlZ21l
bnRJbk9iamVjdFRvKG9ial9ieXRlcywgMCwga0NodW5rU2l6ZSwgb3MpOwotICAgICpvcyA8PCAi
IC4uLiAiOwotICAgIC8vIFJvdW5kcyB1cCB0byAyLWJ5dGUgYm91bmRhcnkuCi0gICAgY29uc3Qg
c2l6ZV90IHJlc3VtZV9wb3MgPSAoY291bnQgLSBrQ2h1bmtTaXplICsgMSkvMioyOwotICAgIFBy
aW50Qnl0ZVNlZ21lbnRJbk9iamVjdFRvKG9ial9ieXRlcywgcmVzdW1lX3BvcywgY291bnQgLSBy
ZXN1bWVfcG9zLCBvcyk7Ci0gIH0KLSAgKm9zIDw8ICI+IjsKLX0KLQotfSAgLy8gbmFtZXNwYWNl
Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbDIgewotCi0vLyBEZWxlZ2F0ZXMgdG8gUHJpbnRCeXRlc0lu
T2JqZWN0VG9JbXBsKCkgdG8gcHJpbnQgdGhlIGJ5dGVzIGluIHRoZQotLy8gZ2l2ZW4gb2JqZWN0
LiAgVGhlIGRlbGVnYXRpb24gc2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24sIHdoaWNoCi0v
LyB1c2VzIHRoZSA8PCBvcGVyYXRvciBhbmQgdGh1cyBpcyBlYXNpZXIgZG9uZSBvdXRzaWRlIG9m
IHRoZQotLy8gOjp0ZXN0aW5nOjppbnRlcm5hbCBuYW1lc3BhY2UsIHdoaWNoIGNvbnRhaW5zIGEg
PDwgb3BlcmF0b3IgdGhhdAotLy8gc29tZXRpbWVzIGNvbmZsaWN0cyB3aXRoIHRoZSBvbmUgaW4g
U1RMLgotdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhjb25zdCB1bnNpZ25lZCBjaGFyKiBvYmpf
Ynl0ZXMsIHNpemVfdCBjb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3N0cmVhbSog
b3MpIHsKLSAgUHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKG9ial9ieXRlcywgY291bnQsIG9zKTsK
LX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsMgotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewot
Ci0vLyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIGEgY2hhciAob3Igd2NoYXJfdCksIHdlIHBy
aW50IGl0IGluIG9uZQotLy8gb2YgdGhyZWUgZm9ybWF0czoKLS8vICAgLSBhcyBpcyBpZiBpdCdz
IGEgcHJpbnRhYmxlIEFTQ0lJIChlLmcuICdhJywgJzInLCAnICcpLAotLy8gICAtIGFzIGEgaGV4
aWRlY2ltYWwgZXNjYXBlIHNlcXVlbmNlIChlLmcuICdceDdGJyksIG9yCi0vLyAgIC0gYXMgYSBz
cGVjaWFsIGVzY2FwZSBzZXF1ZW5jZSAoZS5nLiAnXHInLCAnXG4nKS4KLWVudW0gQ2hhckZvcm1h
dCB7Ci0gIGtBc0lzLAotICBrSGV4RXNjYXBlLAotICBrU3BlY2lhbEVzY2FwZQotfTsKLQotLy8g
UmV0dXJucyB0cnVlIGlmIGMgaXMgYSBwcmludGFibGUgQVNDSUkgY2hhcmFjdGVyLiAgV2UgdGVz
dCB0aGUKLS8vIHZhbHVlIG9mIGMgZGlyZWN0bHkgaW5zdGVhZCBvZiBjYWxsaW5nIGlzcHJpbnQo
KSwgd2hpY2ggaXMgYnVnZ3kgb24KLS8vIFdpbmRvd3MgTW9iaWxlLgotaW5saW5lIGJvb2wgSXNQ
cmludGFibGVBc2NpaSh3Y2hhcl90IGMpIHsKLSAgcmV0dXJuIDB4MjAgPD0gYyAmJiBjIDw9IDB4
N0U7Ci19Ci0KLS8vIFByaW50cyBhIHdpZGUgb3IgbmFycm93IGNoYXIgYyBhcyBhIGNoYXJhY3Rl
ciBsaXRlcmFsIHdpdGhvdXQgdGhlCi0vLyBxdW90ZXMsIGVzY2FwaW5nIGl0IHdoZW4gbmVjZXNz
YXJ5OyByZXR1cm5zIGhvdyBjIHdhcyBmb3JtYXR0ZWQuCi0vLyBUaGUgdGVtcGxhdGUgYXJndW1l
bnQgVW5zaWduZWRDaGFyIGlzIHRoZSB1bnNpZ25lZCB2ZXJzaW9uIG9mIENoYXIsCi0vLyB3aGlj
aCBpcyB0aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVuYW1lIFVuc2lnbmVkQ2hhciwgdHlw
ZW5hbWUgQ2hhcj4KLXN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNDaGFyTGl0ZXJhbFRvKENoYXIg
Yywgb3N0cmVhbSogb3MpIHsKLSAgc3dpdGNoIChzdGF0aWNfY2FzdDx3Y2hhcl90PihjKSkgewot
ICAgIGNhc2UgTCdcMCc6Ci0gICAgICAqb3MgPDwgIlxcMCI7Ci0gICAgICBicmVhazsKLSAgICBj
YXNlIEwnXCcnOgotICAgICAgKm9zIDw8ICJcXCciOwotICAgICAgYnJlYWs7Ci0gICAgY2FzZSBM
J1xcJzoKLSAgICAgICpvcyA8PCAiXFxcXCI7Ci0gICAgICBicmVhazsKLSAgICBjYXNlIEwnXGEn
OgotICAgICAgKm9zIDw8ICJcXGEiOwotICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMJ1xiJzoKLSAg
ICAgICpvcyA8PCAiXFxiIjsKLSAgICAgIGJyZWFrOwotICAgIGNhc2UgTCdcZic6Ci0gICAgICAq
b3MgPDwgIlxcZiI7Ci0gICAgICBicmVhazsKLSAgICBjYXNlIEwnXG4nOgotICAgICAgKm9zIDw8
ICJcXG4iOwotICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMJ1xyJzoKLSAgICAgICpvcyA8PCAiXFxy
IjsKLSAgICAgIGJyZWFrOwotICAgIGNhc2UgTCdcdCc6Ci0gICAgICAqb3MgPDwgIlxcdCI7Ci0g
ICAgICBicmVhazsKLSAgICBjYXNlIEwnXHYnOgotICAgICAgKm9zIDw8ICJcXHYiOwotICAgICAg
YnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgIGlmIChJc1ByaW50YWJsZUFzY2lpKGMpKSB7Ci0g
ICAgICAgICpvcyA8PCBzdGF0aWNfY2FzdDxjaGFyPihjKTsKLSAgICAgICAgcmV0dXJuIGtBc0lz
OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgb3N0cmVhbTo6Zm10ZmxhZ3MgZmxhZ3MgPSBvcy0+
ZmxhZ3MoKTsKLSAgICAgICAgKm9zIDw8ICJcXHgiIDw8IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJj
YXNlCi0gICAgICAgICAgICA8PCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRpY19jYXN0PFVuc2lnbmVk
Q2hhcj4oYykpOwotICAgICAgICBvcy0+ZmxhZ3MoZmxhZ3MpOwotICAgICAgICByZXR1cm4ga0hl
eEVzY2FwZTsKLSAgICAgIH0KLSAgfQotICByZXR1cm4ga1NwZWNpYWxFc2NhcGU7Ci19Ci0KLS8v
IFByaW50cyBhIHdjaGFyX3QgYyBhcyBpZiBpdCdzIHBhcnQgb2YgYSBzdHJpbmcgbGl0ZXJhbCwg
ZXNjYXBpbmcgaXQgd2hlbgotLy8gbmVjZXNzYXJ5OyByZXR1cm5zIGhvdyBjIHdhcyBmb3JtYXR0
ZWQuCi1zdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKHdjaGFyX3QgYywg
b3N0cmVhbSogb3MpIHsKLSAgc3dpdGNoIChjKSB7Ci0gICAgY2FzZSBMJ1wnJzoKLSAgICAgICpv
cyA8PCAiJyI7Ci0gICAgICByZXR1cm4ga0FzSXM7Ci0gICAgY2FzZSBMJyInOgotICAgICAgKm9z
IDw8ICJcXFwiIjsKLSAgICAgIHJldHVybiBrU3BlY2lhbEVzY2FwZTsKLSAgICBkZWZhdWx0Ogot
ICAgICAgcmV0dXJuIFByaW50QXNDaGFyTGl0ZXJhbFRvPHdjaGFyX3Q+KGMsIG9zKTsKLSAgfQot
fQotCi0vLyBQcmludHMgYSBjaGFyIGMgYXMgaWYgaXQncyBwYXJ0IG9mIGEgc3RyaW5nIGxpdGVy
YWwsIGVzY2FwaW5nIGl0IHdoZW4KLS8vIG5lY2Vzc2FyeTsgcmV0dXJucyBob3cgYyB3YXMgZm9y
bWF0dGVkLgotc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjaGFyIGMs
IG9zdHJlYW0qIG9zKSB7Ci0gIHJldHVybiBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKAotICAgICAg
c3RhdGljX2Nhc3Q8d2NoYXJfdD4oc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYykpLCBvcyk7
Ci19Ci0KLS8vIFByaW50cyBhIHdpZGUgb3IgbmFycm93IGNoYXJhY3RlciBjIGFuZCBpdHMgY29k
ZS4gICdcMCcgaXMgcHJpbnRlZAotLy8gYXMgIidcXDAnIiwgb3RoZXIgdW5wcmludGFibGUgY2hh
cmFjdGVycyBhcmUgYWxzbyBwcm9wZXJseSBlc2NhcGVkCi0vLyB1c2luZyB0aGUgc3RhbmRhcmQg
QysrIGVzY2FwZSBzZXF1ZW5jZS4gIFRoZSB0ZW1wbGF0ZSBhcmd1bWVudAotLy8gVW5zaWduZWRD
aGFyIGlzIHRoZSB1bnNpZ25lZCB2ZXJzaW9uIG9mIENoYXIsIHdoaWNoIGlzIHRoZSB0eXBlIG9m
IGMuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVW5zaWduZWRDaGFyLCB0eXBlbmFtZSBDaGFyPgotdm9p
ZCBQcmludENoYXJBbmRDb2RlVG8oQ2hhciBjLCBvc3RyZWFtKiBvcykgewotICAvLyBGaXJzdCwg
cHJpbnQgYyBhcyBhIGxpdGVyYWwgaW4gdGhlIG1vc3QgcmVhZGFibGUgZm9ybSB3ZSBjYW4gZmlu
ZC4KLSAgKm9zIDw8ICgoc2l6ZW9mKGMpID4gMSkgPyAiTCciIDogIiciKTsKLSAgY29uc3QgQ2hh
ckZvcm1hdCBmb3JtYXQgPSBQcmludEFzQ2hhckxpdGVyYWxUbzxVbnNpZ25lZENoYXI+KGMsIG9z
KTsKLSAgKm9zIDw8ICInIjsKLQotICAvLyBUbyBhaWQgdXNlciBkZWJ1Z2dpbmcsIHdlIGFsc28g
cHJpbnQgYydzIGNvZGUgaW4gZGVjaW1hbCwgdW5sZXNzCi0gIC8vIGl0J3MgMCAoaW4gd2hpY2gg
Y2FzZSBjIHdhcyBwcmludGVkIGFzICdcXDAnLCBtYWtpbmcgdGhlIGNvZGUKLSAgLy8gb2J2aW91
cykuCi0gIGlmIChjID09IDApCi0gICAgcmV0dXJuOwotICAqb3MgPDwgIiAoIiA8PCBzdGF0aWNf
Y2FzdDxpbnQ+KGMpOwotCi0gIC8vIEZvciBtb3JlIGNvbnZlbmllbmNlLCB3ZSBwcmludCBjJ3Mg
Y29kZSBhZ2FpbiBpbiBoZXhpZGVjaW1hbCwKLSAgLy8gdW5sZXNzIGMgd2FzIGFscmVhZHkgcHJp
bnRlZCBpbiB0aGUgZm9ybSAnXHgjIycgb3IgdGhlIGNvZGUgaXMgaW4KLSAgLy8gWzEsIDldLgot
ICBpZiAoZm9ybWF0ID09IGtIZXhFc2NhcGUgfHwgKDEgPD0gYyAmJiBjIDw9IDkpKSB7Ci0gICAg
Ly8gRG8gbm90aGluZy4KLSAgfSBlbHNlIHsKLSAgICAqb3MgPDwgIiwgMHgiIDw8IFN0cmluZzo6
Rm9ybWF0SGV4SW50KHN0YXRpY19jYXN0PFVuc2lnbmVkQ2hhcj4oYykpOwotICB9Ci0gICpvcyA8
PCAiKSI7Ci19Ci0KLXZvaWQgUHJpbnRUbyh1bnNpZ25lZCBjaGFyIGMsIDo6c3RkOjpvc3RyZWFt
KiBvcykgewotICBQcmludENoYXJBbmRDb2RlVG88dW5zaWduZWQgY2hhcj4oYywgb3MpOwotfQot
dm9pZCBQcmludFRvKHNpZ25lZCBjaGFyIGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmlu
dENoYXJBbmRDb2RlVG88dW5zaWduZWQgY2hhcj4oYywgb3MpOwotfQotCi0vLyBQcmludHMgYSB3
Y2hhcl90IGFzIGEgc3ltYm9sIGlmIGl0IGlzIHByaW50YWJsZSBvciBhcyBpdHMgaW50ZXJuYWwK
LS8vIGNvZGUgb3RoZXJ3aXNlIGFuZCBhbHNvIGFzIGl0cyBjb2RlLiAgTCdcMCcgaXMgcHJpbnRl
ZCBhcyAiTCdcXDAnIi4KLXZvaWQgUHJpbnRUbyh3Y2hhcl90IHdjLCBvc3RyZWFtKiBvcykgewot
ICBQcmludENoYXJBbmRDb2RlVG88d2NoYXJfdD4od2MsIG9zKTsKLX0KLQotLy8gUHJpbnRzIHRo
ZSBnaXZlbiBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIHRoZSBvc3RyZWFtLiAgQ2hhclR5cGUgbXVz
dCBiZSBlaXRoZXIKLS8vIGNoYXIgb3Igd2NoYXJfdC4KLS8vIFRoZSBhcnJheSBzdGFydHMgYXQg
YmVnaW4sIHRoZSBsZW5ndGggaXMgbGVuLCBpdCBtYXkgaW5jbHVkZSAnXDAnIGNoYXJhY3RlcnMK
LS8vIGFuZCBtYXkgbm90IGJlIE5VTC10ZXJtaW5hdGVkLgotdGVtcGxhdGUgPHR5cGVuYW1lIENo
YXJUeXBlPgotR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX01FTU9SWV8KLUdURVNUX0FUVFJJ
QlVURV9OT19TQU5JVElaRV9BRERSRVNTXwotR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX1RI
UkVBRF8KLXN0YXRpYyB2b2lkIFByaW50Q2hhcnNBc1N0cmluZ1RvKAotICAgIGNvbnN0IENoYXJU
eXBlKiBiZWdpbiwgc2l6ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsKLSAgY29uc3QgY2hhciogY29u
c3Qga1F1b3RlQmVnaW4gPSBzaXplb2YoQ2hhclR5cGUpID09IDEgPyAiXCIiIDogIkxcIiI7Ci0g
ICpvcyA8PCBrUXVvdGVCZWdpbjsKLSAgYm9vbCBpc19wcmV2aW91c19oZXggPSBmYWxzZTsKLSAg
Zm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGxlbjsgKytpbmRleCkgewotICAgIGNvbnN0
IENoYXJUeXBlIGN1ciA9IGJlZ2luW2luZGV4XTsKLSAgICBpZiAoaXNfcHJldmlvdXNfaGV4ICYm
IElzWERpZ2l0KGN1cikpIHsKLSAgICAgIC8vIFByZXZpb3VzIGNoYXJhY3RlciBpcyBvZiAnXHgu
LicgZm9ybSBhbmQgdGhpcyBjaGFyYWN0ZXIgY2FuIGJlCi0gICAgICAvLyBpbnRlcnByZXRlZCBh
cyBhbm90aGVyIGhleGFkZWNpbWFsIGRpZ2l0IGluIGl0cyBudW1iZXIuIEJyZWFrIHN0cmluZyB0
bwotICAgICAgLy8gZGlzYW1iaWd1YXRlLgotICAgICAgKm9zIDw8ICJcIiAiIDw8IGtRdW90ZUJl
Z2luOwotICAgIH0KLSAgICBpc19wcmV2aW91c19oZXggPSBQcmludEFzU3RyaW5nTGl0ZXJhbFRv
KGN1ciwgb3MpID09IGtIZXhFc2NhcGU7Ci0gIH0KLSAgKm9zIDw8ICJcIiI7Ci19Ci0KLS8vIFBy
aW50cyBhIChjb25zdCkgY2hhci93Y2hhcl90IGFycmF5IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFy
dGluZyBhdCBhZGRyZXNzCi0vLyAnYmVnaW4nLiAgQ2hhclR5cGUgbXVzdCBiZSBlaXRoZXIgY2hh
ciBvciB3Y2hhcl90LgotdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotR1RFU1RfQVRUUklC
VVRFX05PX1NBTklUSVpFX01FTU9SWV8KLUdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERS
RVNTXwotR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX1RIUkVBRF8KLXN0YXRpYyB2b2lkIFVu
aXZlcnNhbFByaW50Q2hhckFycmF5KAotICAgIGNvbnN0IENoYXJUeXBlKiBiZWdpbiwgc2l6ZV90
IGxlbiwgb3N0cmVhbSogb3MpIHsKLSAgLy8gVGhlIGNvZGUKLSAgLy8gICBjb25zdCBjaGFyIGtG
b29bXSA9ICJmb28iOwotICAvLyBnZW5lcmF0ZXMgYW4gYXJyYXkgb2YgNCwgbm90IDMsIGVsZW1l
bnRzLCB3aXRoIHRoZSBsYXN0IG9uZSBiZWluZyAnXDAnLgotICAvLwotICAvLyBUaGVyZWZvcmUg
d2hlbiBwcmludGluZyBhIGNoYXIgYXJyYXksIHdlIGRvbid0IHByaW50IHRoZSBsYXN0IGVsZW1l
bnQgaWYKLSAgLy8gaXQncyAnXDAnLCBzdWNoIHRoYXQgdGhlIG91dHB1dCBtYXRjaGVzIHRoZSBz
dHJpbmcgbGl0ZXJhbCBhcyBpdCdzCi0gIC8vIHdyaXR0ZW4gaW4gdGhlIHNvdXJjZSBjb2RlLgot
ICBpZiAobGVuID4gMCAmJiBiZWdpbltsZW4gLSAxXSA9PSAnXDAnKSB7Ci0gICAgUHJpbnRDaGFy
c0FzU3RyaW5nVG8oYmVnaW4sIGxlbiAtIDEsIG9zKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICAv
LyBJZiwgaG93ZXZlciwgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgaXMgbm90ICdcMCcs
IGUuZy4KLSAgLy8gICAgY29uc3QgY2hhciBrRm9vW10gPSB7ICdmJywgJ28nLCAnbycgfTsKLSAg
Ly8gd2UgbXVzdCBwcmludCB0aGUgZW50aXJlIGFycmF5LiAgV2UgYWxzbyBwcmludCBhIG1lc3Nh
Z2UgdG8gaW5kaWNhdGUKLSAgLy8gdGhhdCB0aGUgYXJyYXkgaXMgbm90IE5VTC10ZXJtaW5hdGVk
LgotICBQcmludENoYXJzQXNTdHJpbmdUbyhiZWdpbiwgbGVuLCBvcyk7Ci0gICpvcyA8PCAiIChu
byB0ZXJtaW5hdGluZyBOVUwpIjsKLX0KLQotLy8gUHJpbnRzIGEgKGNvbnN0KSBjaGFyIGFycmF5
IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRyZXNzICdiZWdpbicuCi12b2lkIFVu
aXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhciogYmVnaW4sIHNpemVfdCBsZW4sIG9zdHJlYW0q
IG9zKSB7Ci0gIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KGJlZ2luLCBsZW4sIG9zKTsKLX0KLQot
Ly8gUHJpbnRzIGEgKGNvbnN0KSB3Y2hhcl90IGFycmF5IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFy
dGluZyBhdCBhZGRyZXNzCi0vLyAnYmVnaW4nLgotdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNv
bnN0IHdjaGFyX3QqIGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBvcykgewotICBVbml2ZXJz
YWxQcmludENoYXJBcnJheShiZWdpbiwgbGVuLCBvcyk7Ci19Ci0KLS8vIFByaW50cyB0aGUgZ2l2
ZW4gQyBzdHJpbmcgdG8gdGhlIG9zdHJlYW0uCi12b2lkIFByaW50VG8oY29uc3QgY2hhciogcywg
b3N0cmVhbSogb3MpIHsKLSAgaWYgKHMgPT0gTlVMTCkgewotICAgICpvcyA8PCAiTlVMTCI7Ci0g
IH0gZWxzZSB7Ci0gICAgKm9zIDw8IEltcGxpY2l0Q2FzdF88Y29uc3Qgdm9pZCo+KHMpIDw8ICIg
cG9pbnRpbmcgdG8gIjsKLSAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdHJsZW4ocyksIG9z
KTsKLSAgfQotfQotCi0vLyBNU1ZDIGNvbXBpbGVyIGNhbiBiZSBjb25maWd1cmVkIHRvIGRlZmlu
ZSB3aGFyX3QgYXMgYSB0eXBlZGVmCi0vLyBvZiB1bnNpZ25lZCBzaG9ydC4gRGVmaW5pbmcgYW4g
b3ZlcmxvYWQgZm9yIGNvbnN0IHdjaGFyX3QqIGluIHRoYXQgY2FzZQotLy8gd291bGQgY2F1c2Ug
cG9pbnRlcnMgdG8gdW5zaWduZWQgc2hvcnRzIGJlIHByaW50ZWQgYXMgd2lkZSBzdHJpbmdzLAot
Ly8gcG9zc2libHkgYWNjZXNzaW5nIG1vcmUgbWVtb3J5IHRoYW4gaW50ZW5kZWQgYW5kIGNhdXNp
bmcgaW52YWxpZAotLy8gbWVtb3J5IGFjY2Vzc2VzLiBNU1ZDIGRlZmluZXMgX05BVElWRV9XQ0hB
Ul9UX0RFRklORUQgc3ltYm9sIHdoZW4KLS8vIHdjaGFyX3QgaXMgaW1wbGVtZW50ZWQgYXMgYSBu
YXRpdmUgdHlwZS4KLSNpZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfTkFUSVZFX1dD
SEFSX1RfREVGSU5FRCkKLS8vIFByaW50cyB0aGUgZ2l2ZW4gd2lkZSBDIHN0cmluZyB0byB0aGUg
b3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykgewot
ICBpZiAocyA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAgICAq
b3MgPDwgSW1wbGljaXRDYXN0Xzxjb25zdCB2b2lkKj4ocykgPDwgIiBwb2ludGluZyB0byAiOwot
ICAgIFByaW50Q2hhcnNBc1N0cmluZ1RvKHMsIHN0ZDo6d2NzbGVuKHMpLCBvcyk7Ci0gIH0KLX0K
LSNlbmRpZiAgLy8gd2NoYXJfdCBpcyBuYXRpdmUKLQotLy8gUHJpbnRzIGEgOjpzdHJpbmcgb2Jq
ZWN0LgotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi12b2lkIFByaW50U3RyaW5nVG8oY29u
c3QgOjpzdHJpbmcmIHMsIG9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhcnNBc1N0cmluZ1RvKHMu
ZGF0YSgpLCBzLnNpemUoKSwgb3MpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NU
UklORwotCi12b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnN0cmluZyYgcywgb3N0cmVh
bSogb3MpIHsKLSAgUHJpbnRDaGFyc0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7
Ci19Ci0KLS8vIFByaW50cyBhIDo6d3N0cmluZyBvYmplY3QuCi0jaWYgR1RFU1RfSEFTX0dMT0JB
TF9XU1RSSU5HCi12b2lkIFByaW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyYgcywgb3N0
cmVhbSogb3MpIHsKLSAgUHJpbnRDaGFyc0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgpLCBv
cyk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotCi0jaWYgR1RFU1Rf
SEFTX1NURF9XU1RSSU5HCi12b2lkIFByaW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6c3RkOjp3c3Ry
aW5nJiBzLCBvc3RyZWFtKiBvcykgewotICBQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwg
cy5zaXplKCksIG9zKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCi0KLX0g
IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LXRlc3QtcGFydC5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVzdC10ZXN0LXBhcnQuY2MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzOTI2YzgzNzY5NjE1MmY1NWM4YmY1OGRmYTYxYmRj
M2RjMTE5ZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LXRlc3QtcGFydC5jYworKysgL2Rl
di9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4K
LS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiBtaGV1bGVAZ29vZ2xlLmNvbSAoTWFya3VzIEhl
dWxlKQotLy8KLS8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVz
dCkKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oIgotI2luY2x1ZGUgInNyYy9n
dGVzdC1pbnRlcm5hbC1pbmwuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi11c2luZyBpbnRl
cm5hbDo6R2V0VW5pdFRlc3RJbXBsOwotCi0vLyBHZXRzIHRoZSBzdW1tYXJ5IG9mIHRoZSBmYWls
dXJlIG1lc3NhZ2UgYnkgb21pdHRpbmcgdGhlIHN0YWNrIHRyYWNlCi0vLyBpbiBpdC4KLXN0ZDo6
c3RyaW5nIFRlc3RQYXJ0UmVzdWx0OjpFeHRyYWN0U3VtbWFyeShjb25zdCBjaGFyKiBtZXNzYWdl
KSB7Ci0gIGNvbnN0IGNoYXIqIGNvbnN0IHN0YWNrX3RyYWNlID0gc3Ryc3RyKG1lc3NhZ2UsIGlu
dGVybmFsOjprU3RhY2tUcmFjZU1hcmtlcik7Ci0gIHJldHVybiBzdGFja190cmFjZSA9PSBOVUxM
ID8gbWVzc2FnZSA6Ci0gICAgICBzdGQ6OnN0cmluZyhtZXNzYWdlLCBzdGFja190cmFjZSk7Ci19
Ci0KLS8vIFByaW50cyBhIFRlc3RQYXJ0UmVzdWx0IG9iamVjdC4KLXN0ZDo6b3N0cmVhbSYgb3Bl
cmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSB7
Ci0gIHJldHVybiBvcwotICAgICAgPDwgcmVzdWx0LmZpbGVfbmFtZSgpIDw8ICI6IiA8PCByZXN1
bHQubGluZV9udW1iZXIoKSA8PCAiOiAiCi0gICAgICA8PCAocmVzdWx0LnR5cGUoKSA9PSBUZXN0
UGFydFJlc3VsdDo6a1N1Y2Nlc3MgPyAiU3VjY2VzcyIgOgotICAgICAgICAgIHJlc3VsdC50eXBl
KCkgPT0gVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUgPyAiRmF0YWwgZmFpbHVyZSIgOgot
ICAgICAgICAgICJOb24tZmF0YWwgZmFpbHVyZSIpIDw8ICI6XG4iCi0gICAgICA8PCByZXN1bHQu
bWVzc2FnZSgpIDw8IHN0ZDo6ZW5kbDsKLX0KLQotLy8gQXBwZW5kcyBhIFRlc3RQYXJ0UmVzdWx0
IHRvIHRoZSBhcnJheS4KLXZvaWQgVGVzdFBhcnRSZXN1bHRBcnJheTo6QXBwZW5kKGNvbnN0IFRl
c3RQYXJ0UmVzdWx0JiByZXN1bHQpIHsKLSAgYXJyYXlfLnB1c2hfYmFjayhyZXN1bHQpOwotfQot
Ci0vLyBSZXR1cm5zIHRoZSBUZXN0UGFydFJlc3VsdCBhdCB0aGUgZ2l2ZW4gaW5kZXggKDAtYmFz
ZWQpLgotY29uc3QgVGVzdFBhcnRSZXN1bHQmIFRlc3RQYXJ0UmVzdWx0QXJyYXk6OkdldFRlc3RQ
YXJ0UmVzdWx0KGludCBpbmRleCkgY29uc3QgewotICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49
IHNpemUoKSkgewotICAgIHByaW50ZigiXG5JbnZhbGlkIGluZGV4ICglZCkgaW50byBUZXN0UGFy
dFJlc3VsdEFycmF5LlxuIiwgaW5kZXgpOwotICAgIGludGVybmFsOjpwb3NpeDo6QWJvcnQoKTsK
LSAgfQotCi0gIHJldHVybiBhcnJheV9baW5kZXhdOwotfQotCi0vLyBSZXR1cm5zIHRoZSBudW1i
ZXIgb2YgVGVzdFBhcnRSZXN1bHQgb2JqZWN0cyBpbiB0aGUgYXJyYXkuCi1pbnQgVGVzdFBhcnRS
ZXN1bHRBcnJheTo6c2l6ZSgpIGNvbnN0IHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oYXJy
YXlfLnNpemUoKSk7Ci19Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLUhhc05ld0ZhdGFsRmFp
bHVyZUhlbHBlcjo6SGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyKCkKLSAgICA6IGhhc19uZXdfZmF0
YWxfZmFpbHVyZV8oZmFsc2UpLAotICAgICAgb3JpZ2luYWxfcmVwb3J0ZXJfKEdldFVuaXRUZXN0
SW1wbCgpLT4KLSAgICAgICAgICAgICAgICAgICAgICAgICBHZXRUZXN0UGFydFJlc3VsdFJlcG9y
dGVyRm9yQ3VycmVudFRocmVhZCgpKSB7Ci0gIEdldFVuaXRUZXN0SW1wbCgpLT5TZXRUZXN0UGFy
dFJlc3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVhZCh0aGlzKTsKLX0KLQotSGFzTmV3RmF0YWxG
YWlsdXJlSGVscGVyOjp+SGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyKCkgewotICBHZXRVbml0VGVz
dEltcGwoKS0+U2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRUaHJlYWQoCi0gICAg
ICBvcmlnaW5hbF9yZXBvcnRlcl8pOwotfQotCi12b2lkIEhhc05ld0ZhdGFsRmFpbHVyZUhlbHBl
cjo6UmVwb3J0VGVzdFBhcnRSZXN1bHQoCi0gICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3Vs
dCkgewotICBpZiAocmVzdWx0LmZhdGFsbHlfZmFpbGVkKCkpCi0gICAgaGFzX25ld19mYXRhbF9m
YWlsdXJlXyA9IHRydWU7Ci0gIG9yaWdpbmFsX3JlcG9ydGVyXy0+UmVwb3J0VGVzdFBhcnRSZXN1
bHQocmVzdWx0KTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi0KLX0gIC8vIG5hbWVz
cGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zcmMv
Z3Rlc3QtdHlwZWQtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVz
dC10eXBlZC10ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjFlZWY0NzU0
ZWZlYjZiYzA2NjIzOWIxY2NjM2JmZWViODk2MzEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVz
dC10eXBlZC10ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICswLDAgQEAKLS8vIENvcHly
aWdodCAyMDA4IEdvb2dsZSBJbmMuCi0vLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0v
LyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRp
b24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0v
LyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdv
b2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXR5cGVkLXRl
c3QuaCIKLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1u
YW1lc3BhY2UgaW50ZXJuYWwgewotCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCi0vLyBT
a2lwcyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgaW4gc3RyLiBSZXR1cm5zIGFuIGVtcHR5
IHN0cmluZyBpZiBzdHIKLS8vIGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgot
c3RhdGljIGNvbnN0IGNoYXIqIFNraXBTcGFjZXMoY29uc3QgY2hhciogc3RyKSB7Ci0gIHdoaWxl
IChJc1NwYWNlKCpzdHIpKQotICAgIHN0cisrOwotICByZXR1cm4gc3RyOwotfQotCi1zdGF0aWMg
c3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IFNwbGl0SW50b1Rlc3ROYW1lcyhjb25zdCBjaGFyKiBz
cmMpIHsKLSAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG5hbWVfdmVjOwotICBzcmMgPSBTa2lw
U3BhY2VzKHNyYyk7Ci0gIGZvciAoOyBzcmMgIT0gTlVMTDsgc3JjID0gU2tpcENvbW1hKHNyYykp
IHsKLSAgICBuYW1lX3ZlYy5wdXNoX2JhY2soU3RyaXBUcmFpbGluZ1NwYWNlcyhHZXRQcmVmaXhV
bnRpbENvbW1hKHNyYykpKTsKLSAgfQotICByZXR1cm4gbmFtZV92ZWM7Ci19Ci0KLS8vIFZlcmlm
aWVzIHRoYXQgcmVnaXN0ZXJlZF90ZXN0cyBtYXRjaCB0aGUgdGVzdCBuYW1lcyBpbgotLy8gcmVn
aXN0ZXJlZF90ZXN0c187IHJldHVybnMgcmVnaXN0ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVsLCBv
cgotLy8gYWJvcnRzIHRoZSBwcm9ncmFtIG90aGVyd2lzZS4KLWNvbnN0IGNoYXIqIFR5cGVkVGVz
dENhc2VQU3RhdGU6OlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoCi0gICAgY29uc3QgY2hhciog
ZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIHJlZ2lzdGVyZWRfdGVzdHMpIHsKLSAgdHlwZWRl
ZiBSZWdpc3RlcmVkVGVzdHNNYXA6OmNvbnN0X2l0ZXJhdG9yIFJlZ2lzdGVyZWRUZXN0SXRlcjsK
LSAgcmVnaXN0ZXJlZF8gPSB0cnVlOwotCi0gIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBuYW1l
X3ZlYyA9IFNwbGl0SW50b1Rlc3ROYW1lcyhyZWdpc3RlcmVkX3Rlc3RzKTsKLQotICBNZXNzYWdl
IGVycm9yczsKLQotICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gdGVzdHM7Ci0gIGZvciAoc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBuYW1lX2l0ID0gbmFtZV92ZWMuYmVn
aW4oKTsKLSAgICAgICBuYW1lX2l0ICE9IG5hbWVfdmVjLmVuZCgpOyArK25hbWVfaXQpIHsKLSAg
ICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICpuYW1lX2l0OwotICAgIGlmICh0ZXN0cy5jb3Vu
dChuYW1lKSAhPSAwKSB7Ci0gICAgICBlcnJvcnMgPDwgIlRlc3QgIiA8PCBuYW1lIDw8ICIgaXMg
bGlzdGVkIG1vcmUgdGhhbiBvbmNlLlxuIjsKLSAgICAgIGNvbnRpbnVlOwotICAgIH0KLQotICAg
IGJvb2wgZm91bmQgPSBmYWxzZTsKLSAgICBmb3IgKFJlZ2lzdGVyZWRUZXN0SXRlciBpdCA9IHJl
Z2lzdGVyZWRfdGVzdHNfLmJlZ2luKCk7Ci0gICAgICAgICBpdCAhPSByZWdpc3RlcmVkX3Rlc3Rz
Xy5lbmQoKTsKLSAgICAgICAgICsraXQpIHsKLSAgICAgIGlmIChuYW1lID09IGl0LT5maXJzdCkg
ewotICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0K
LQotICAgIGlmIChmb3VuZCkgewotICAgICAgdGVzdHMuaW5zZXJ0KG5hbWUpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICBlcnJvcnMgPDwgIk5vIHRlc3QgbmFtZWQgIiA8PCBuYW1lCi0gICAgICAgICAg
ICAgPDwgIiBjYW4gYmUgZm91bmQgaW4gdGhpcyB0ZXN0IGNhc2UuXG4iOwotICAgIH0KLSAgfQot
Ci0gIGZvciAoUmVnaXN0ZXJlZFRlc3RJdGVyIGl0ID0gcmVnaXN0ZXJlZF90ZXN0c18uYmVnaW4o
KTsKLSAgICAgICBpdCAhPSByZWdpc3RlcmVkX3Rlc3RzXy5lbmQoKTsKLSAgICAgICArK2l0KSB7
Ci0gICAgaWYgKHRlc3RzLmNvdW50KGl0LT5maXJzdCkgPT0gMCkgewotICAgICAgZXJyb3JzIDw8
ICJZb3UgZm9yZ290IHRvIGxpc3QgdGVzdCAiIDw8IGl0LT5maXJzdCA8PCAiLlxuIjsKLSAgICB9
Ci0gIH0KLQotICBjb25zdCBzdGQ6OnN0cmluZyYgZXJyb3JzX3N0ciA9IGVycm9ycy5HZXRTdHJp
bmcoKTsKLSAgaWYgKGVycm9yc19zdHIgIT0gIiIpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVz
ICVzIiwgRm9ybWF0RmlsZUxvY2F0aW9uKGZpbGUsIGxpbmUpLmNfc3RyKCksCi0gICAgICAgICAg
ICBlcnJvcnNfc3RyLmNfc3RyKCkpOwotICAgIGZmbHVzaChzdGRlcnIpOwotICAgIHBvc2l4OjpB
Ym9ydCgpOwotICB9Ci0KLSAgcmV0dXJuIHJlZ2lzdGVyZWRfdGVzdHM7Ci19Ci0KLSNlbmRpZiAg
Ly8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0g
IC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC9zcmMvZ3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zcmMvZ3Rlc3Qu
Y2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyZjA0ODQ0NWVlNjExMmU0Njc3M2M0
NzQ4OWQwY2Y0YTRiYjMwZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCisrKyAvZGV2
L251bGwKQEAgLTEsNTQxOSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNSwgR29vZ2xlIEluYy4K
LS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2Fu
KQotLy8KLS8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkK
LQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvY3Vz
dG9tL2d0ZXN0LmgiCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiCi0KLSNpbmNsdWRlIDxj
dHlwZS5oPgotI2luY2x1ZGUgPG1hdGguaD4KLSNpbmNsdWRlIDxzdGRhcmcuaD4KLSNpbmNsdWRl
IDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNs
dWRlIDx3Y2hhci5oPgotI2luY2x1ZGUgPHdjdHlwZS5oPgotCi0jaW5jbHVkZSA8YWxnb3JpdGht
PgotI2luY2x1ZGUgPGlvbWFuaXA+Ci0jaW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPGxpc3Q+
Ci0jaW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPG9zdHJlYW0+ICAvLyBOT0xJTlQKLSNpbmNsdWRl
IDxzc3RyZWFtPgotI2luY2x1ZGUgPHZlY3Rvcj4KLQotI2lmIEdURVNUX09TX0xJTlVYCi0KLS8v
IFRPRE8oa2VudG9uQGdvb2dsZS5jb20pOiBVc2UgYXV0b2NvbmYgdG8gZGV0ZWN0IGF2YWlsYWJp
bGl0eSBvZgotLy8gZ2V0dGltZW9mZGF5KCkuCi0jIGRlZmluZSBHVEVTVF9IQVNfR0VUVElNRU9G
REFZXyAxCi0KLSMgaW5jbHVkZSA8ZmNudGwuaD4gIC8vIE5PTElOVAotIyBpbmNsdWRlIDxsaW1p
dHMuaD4gIC8vIE5PTElOVAotIyBpbmNsdWRlIDxzY2hlZC5oPiAgLy8gTk9MSU5UCi0vLyBEZWNs
YXJlcyB2c25wcmludGYoKS4gIFRoaXMgaGVhZGVyIGlzIG5vdCBhdmFpbGFibGUgb24gV2luZG93
cy4KLSMgaW5jbHVkZSA8c3RyaW5ncy5oPiAgLy8gTk9MSU5UCi0jIGluY2x1ZGUgPHN5cy9tbWFu
Lmg+ICAvLyBOT0xJTlQKLSMgaW5jbHVkZSA8c3lzL3RpbWUuaD4gIC8vIE5PTElOVAotIyBpbmNs
dWRlIDx1bmlzdGQuaD4gIC8vIE5PTElOVAotIyBpbmNsdWRlIDxzdHJpbmc+Ci0KLSNlbGlmIEdU
RVNUX09TX1NZTUJJQU4KLSMgZGVmaW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEKLSMgaW5j
bHVkZSA8c3lzL3RpbWUuaD4gIC8vIE5PTElOVAotCi0jZWxpZiBHVEVTVF9PU19aT1MKLSMgZGVm
aW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEKLSMgaW5jbHVkZSA8c3lzL3RpbWUuaD4gIC8v
IE5PTElOVAotCi0vLyBPbiB6L09TIHdlIGFkZGl0aW9uYWxseSBuZWVkIHN0cmluZ3MuaCBmb3Ig
c3RyY2FzZWNtcC4KLSMgaW5jbHVkZSA8c3RyaW5ncy5oPiAgLy8gTk9MSU5UCi0KLSNlbGlmIEdU
RVNUX09TX1dJTkRPV1NfTU9CSUxFICAvLyBXZSBhcmUgb24gV2luZG93cyBDRS4KLQotIyBpbmNs
dWRlIDx3aW5kb3dzLmg+ICAvLyBOT0xJTlQKLSMgdW5kZWYgbWluCi0KLSNlbGlmIEdURVNUX09T
X1dJTkRPV1MgIC8vIFdlIGFyZSBvbiBXaW5kb3dzIHByb3Blci4KLQotIyBpbmNsdWRlIDxpby5o
PiAgLy8gTk9MSU5UCi0jIGluY2x1ZGUgPHN5cy90aW1lYi5oPiAgLy8gTk9MSU5UCi0jIGluY2x1
ZGUgPHN5cy90eXBlcy5oPiAgLy8gTk9MSU5UCi0jIGluY2x1ZGUgPHN5cy9zdGF0Lmg+ICAvLyBO
T0xJTlQKLQotIyBpZiBHVEVTVF9PU19XSU5ET1dTX01JTkdXCi0vLyBNaW5HVyBoYXMgZ2V0dGlt
ZW9mZGF5KCkgYnV0IG5vdCBfZnRpbWU2NCgpLgotLy8gVE9ETyhrZW50b25AZ29vZ2xlLmNvbSk6
IFVzZSBhdXRvY29uZiB0byBkZXRlY3QgYXZhaWxhYmlsaXR5IG9mCi0vLyAgIGdldHRpbWVvZmRh
eSgpLgotLy8gVE9ETyhrZW50b25AZ29vZ2xlLmNvbSk6IFRoZXJlIGFyZSBvdGhlciB3YXlzIHRv
IGdldCB0aGUgdGltZSBvbgotLy8gICBXaW5kb3dzLCBsaWtlIEdldFRpY2tDb3VudCgpIG9yIEdl
dFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCkuICBNaW5HVwotLy8gICBzdXBwb3J0cyB0aGVzZS4gIGNv
bnNpZGVyIHVzaW5nIHRoZW0gaW5zdGVhZC4KLSMgIGRlZmluZSBHVEVTVF9IQVNfR0VUVElNRU9G
REFZXyAxCi0jICBpbmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCi0jIGVuZGlmICAvLyBH
VEVTVF9PU19XSU5ET1dTX01JTkdXCi0KLS8vIGNwcGxpbnQgdGhpbmtzIHRoYXQgdGhlIGhlYWRl
ciBpcyBhbHJlYWR5IGluY2x1ZGVkLCBzbyB3ZSB3YW50IHRvCi0vLyBzaWxlbmNlIGl0LgotIyBp
bmNsdWRlIDx3aW5kb3dzLmg+ICAvLyBOT0xJTlQKLSMgdW5kZWYgbWluCi0KLSNlbHNlCi0KLS8v
IEFzc3VtZSBvdGhlciBwbGF0Zm9ybXMgaGF2ZSBnZXR0aW1lb2ZkYXkoKS4KLS8vIFRPRE8oa2Vu
dG9uQGdvb2dsZS5jb20pOiBVc2UgYXV0b2NvbmYgdG8gZGV0ZWN0IGF2YWlsYWJpbGl0eSBvZgot
Ly8gICBnZXR0aW1lb2ZkYXkoKS4KLSMgZGVmaW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEK
LQotLy8gY3BwbGludCB0aGlua3MgdGhhdCB0aGUgaGVhZGVyIGlzIGFscmVhZHkgaW5jbHVkZWQs
IHNvIHdlIHdhbnQgdG8KLS8vIHNpbGVuY2UgaXQuCi0jIGluY2x1ZGUgPHN5cy90aW1lLmg+ICAv
LyBOT0xJTlQKLSMgaW5jbHVkZSA8dW5pc3RkLmg+ICAvLyBOT0xJTlQKLQotI2VuZGlmICAvLyBH
VEVTVF9PU19MSU5VWAotCi0jaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKLSMgaW5jbHVkZSA8c3Rk
ZXhjZXB0PgotI2VuZGlmCi0KLSNpZiBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfCi0jIGluY2x1
ZGUgPGFycGEvaW5ldC5oPiAgLy8gTk9MSU5UCi0jIGluY2x1ZGUgPG5ldGRiLmg+ICAvLyBOT0xJ
TlQKLSMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPiAgLy8gTk9MSU5UCi0jIGluY2x1ZGUgPHN5cy90
eXBlcy5oPiAgLy8gTk9MSU5UCi0jZW5kaWYKLQotI2luY2x1ZGUgInNyYy9ndGVzdC1pbnRlcm5h
bC1pbmwuaCIKLQotI2lmIEdURVNUX09TX1dJTkRPV1MKLSMgZGVmaW5lIHZzbnByaW50ZiBfdnNu
cHJpbnRmCi0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKLQotbmFtZXNwYWNlIHRlc3Rpbmcg
ewotCi11c2luZyBpbnRlcm5hbDo6Q291bnRJZjsKLXVzaW5nIGludGVybmFsOjpGb3JFYWNoOwot
dXNpbmcgaW50ZXJuYWw6OkdldEVsZW1lbnRPcjsKLXVzaW5nIGludGVybmFsOjpTaHVmZmxlOwot
Ci0vLyBDb25zdGFudHMuCi0KLS8vIEEgdGVzdCB3aG9zZSB0ZXN0IGNhc2UgbmFtZSBvciB0ZXN0
IG5hbWUgbWF0Y2hlcyB0aGlzIGZpbHRlciBpcwotLy8gZGlzYWJsZWQgYW5kIG5vdCBydW4uCi1z
dGF0aWMgY29uc3QgY2hhciBrRGlzYWJsZVRlc3RGaWx0ZXJbXSA9ICJESVNBQkxFRF8qOiovRElT
QUJMRURfKiI7Ci0KLS8vIEEgdGVzdCBjYXNlIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGlzIGZpbHRl
ciBpcyBjb25zaWRlcmVkIGEgZGVhdGgKLS8vIHRlc3QgY2FzZSBhbmQgd2lsbCBiZSBydW4gYmVm
b3JlIHRlc3QgY2FzZXMgd2hvc2UgbmFtZSBkb2Vzbid0Ci0vLyBtYXRjaCB0aGlzIGZpbHRlci4K
LXN0YXRpYyBjb25zdCBjaGFyIGtEZWF0aFRlc3RDYXNlRmlsdGVyW10gPSAiKkRlYXRoVGVzdDoq
RGVhdGhUZXN0LyoiOwotCi0vLyBBIHRlc3QgZmlsdGVyIHRoYXQgbWF0Y2hlcyBldmVyeXRoaW5n
Lgotc3RhdGljIGNvbnN0IGNoYXIga1VuaXZlcnNhbEZpbHRlcltdID0gIioiOwotCi0vLyBUaGUg
ZGVmYXVsdCBvdXRwdXQgZmlsZSBmb3IgWE1MIG91dHB1dC4KLXN0YXRpYyBjb25zdCBjaGFyIGtE
ZWZhdWx0T3V0cHV0RmlsZVtdID0gInRlc3RfZGV0YWlsLnhtbCI7Ci0KLS8vIFRoZSBlbnZpcm9u
bWVudCB2YXJpYWJsZSBuYW1lIGZvciB0aGUgdGVzdCBzaGFyZCBpbmRleC4KLXN0YXRpYyBjb25z
dCBjaGFyIGtUZXN0U2hhcmRJbmRleFtdID0gIkdURVNUX1NIQVJEX0lOREVYIjsKLS8vIFRoZSBl
bnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGZvciB0aGUgdG90YWwgbnVtYmVyIG9mIHRlc3Qgc2hh
cmRzLgotc3RhdGljIGNvbnN0IGNoYXIga1Rlc3RUb3RhbFNoYXJkc1tdID0gIkdURVNUX1RPVEFM
X1NIQVJEUyI7Ci0vLyBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSBmb3IgdGhlIHRlc3Qg
c2hhcmQgc3RhdHVzIGZpbGUuCi1zdGF0aWMgY29uc3QgY2hhciBrVGVzdFNoYXJkU3RhdHVzRmls
ZVtdID0gIkdURVNUX1NIQVJEX1NUQVRVU19GSUxFIjsKLQotbmFtZXNwYWNlIGludGVybmFsIHsK
LQotLy8gVGhlIHRleHQgdXNlZCBpbiBmYWlsdXJlIG1lc3NhZ2VzIHRvIGluZGljYXRlIHRoZSBz
dGFydCBvZiB0aGUKLS8vIHN0YWNrIHRyYWNlLgotY29uc3QgY2hhciBrU3RhY2tUcmFjZU1hcmtl
cltdID0gIlxuU3RhY2sgdHJhY2U6XG4iOwotCi0vLyBnX2hlbHBfZmxhZyBpcyB0cnVlIGlmZiB0
aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3JtIGlzCi0vLyBzcGVjaWZpZWQgb24g
dGhlIGNvbW1hbmQgbGluZS4KLWJvb2wgZ19oZWxwX2ZsYWcgPSBmYWxzZTsKLQotfSAgLy8gbmFt
ZXNwYWNlIGludGVybmFsCi0KLXN0YXRpYyBjb25zdCBjaGFyKiBHZXREZWZhdWx0RmlsdGVyKCkg
ewotI2lmZGVmIEdURVNUX1RFU1RfRklMVEVSX0VOVl9WQVJfCi0gIGNvbnN0IGNoYXIqIGNvbnN0
IHRlc3RicmlkZ2VfdGVzdF9vbmx5ID0gZ2V0ZW52KEdURVNUX1RFU1RfRklMVEVSX0VOVl9WQVJf
KTsKLSAgaWYgKHRlc3RicmlkZ2VfdGVzdF9vbmx5ICE9IE5VTEwpIHsKLSAgICByZXR1cm4gdGVz
dGJyaWRnZV90ZXN0X29ubHk7Ci0gIH0KLSNlbmRpZiAgLy8gR1RFU1RfVEVTVF9GSUxURVJfRU5W
X1ZBUl8KLSAgcmV0dXJuIGtVbml2ZXJzYWxGaWx0ZXI7Ci19Ci0KLUdURVNUX0RFRklORV9ib29s
XygKLSAgICBhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cywKLSAgICBpbnRlcm5hbDo6Qm9vbEZyb21H
VGVzdEVudigiYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMiLCBmYWxzZSksCi0gICAgIlJ1biBkaXNh
YmxlZCB0ZXN0cyB0b28sIGluIGFkZGl0aW9uIHRvIHRoZSB0ZXN0cyBub3JtYWxseSBiZWluZyBy
dW4uIik7Ci0KLUdURVNUX0RFRklORV9ib29sXygKLSAgICBicmVha19vbl9mYWlsdXJlLAotICAg
IGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJicmVha19vbl9mYWlsdXJlIiwgZmFsc2UpLAot
ICAgICJUcnVlIGlmZiBhIGZhaWxlZCBhc3NlcnRpb24gc2hvdWxkIGJlIGEgZGVidWdnZXIgYnJl
YWstcG9pbnQuIik7Ci0KLUdURVNUX0RFRklORV9ib29sXygKLSAgICBjYXRjaF9leGNlcHRpb25z
LAotICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJjYXRjaF9leGNlcHRpb25zIiwgdHJ1
ZSksCi0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8KLSAgICAiIHNob3VsZCBjYXRjaCBleGNl
cHRpb25zIGFuZCB0cmVhdCB0aGVtIGFzIHRlc3QgZmFpbHVyZXMuIik7Ci0KLUdURVNUX0RFRklO
RV9zdHJpbmdfKAotICAgIGNvbG9yLAotICAgIGludGVybmFsOjpTdHJpbmdGcm9tR1Rlc3RFbnYo
ImNvbG9yIiwgImF1dG8iKSwKLSAgICAiV2hldGhlciB0byB1c2UgY29sb3JzIGluIHRoZSBvdXRw
dXQuICBWYWxpZCB2YWx1ZXM6IHllcywgbm8sICIKLSAgICAiYW5kIGF1dG8uICAnYXV0bycgbWVh
bnMgdG8gdXNlIGNvbG9ycyBpZiB0aGUgb3V0cHV0IGlzICIKLSAgICAiYmVpbmcgc2VudCB0byBh
IHRlcm1pbmFsIGFuZCB0aGUgVEVSTSBlbnZpcm9ubWVudCB2YXJpYWJsZSAiCi0gICAgImlzIHNl
dCB0byBhIHRlcm1pbmFsIHR5cGUgdGhhdCBzdXBwb3J0cyBjb2xvcnMuIik7Ci0KLUdURVNUX0RF
RklORV9zdHJpbmdfKAotICAgIGZpbHRlciwKLSAgICBpbnRlcm5hbDo6U3RyaW5nRnJvbUdUZXN0
RW52KCJmaWx0ZXIiLCBHZXREZWZhdWx0RmlsdGVyKCkpLAotICAgICJBIGNvbG9uLXNlcGFyYXRl
ZCBsaXN0IG9mIGdsb2IgKG5vdCByZWdleCkgcGF0dGVybnMgIgotICAgICJmb3IgZmlsdGVyaW5n
IHRoZSB0ZXN0cyB0byBydW4sIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgYSAiCi0gICAgIictJyBh
bmQgYSA6IHNlcGFyYXRlZCBsaXN0IG9mIG5lZ2F0aXZlIHBhdHRlcm5zICh0ZXN0cyB0byAiCi0g
ICAgImV4Y2x1ZGUpLiAgQSB0ZXN0IGlzIHJ1biBpZiBpdCBtYXRjaGVzIG9uZSBvZiB0aGUgcG9z
aXRpdmUgIgotICAgICJwYXR0ZXJucyBhbmQgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBuZWdh
dGl2ZSBwYXR0ZXJucy4iKTsKLQotR1RFU1RfREVGSU5FX2Jvb2xfKGxpc3RfdGVzdHMsIGZhbHNl
LAotICAgICAgICAgICAgICAgICAgICJMaXN0IGFsbCB0ZXN0cyB3aXRob3V0IHJ1bm5pbmcgdGhl
bS4iKTsKLQotR1RFU1RfREVGSU5FX3N0cmluZ18oCi0gICAgb3V0cHV0LAotICAgIGludGVybmFs
OjpTdHJpbmdGcm9tR1Rlc3RFbnYoIm91dHB1dCIsICIiKSwKLSAgICAiQSBmb3JtYXQgKGN1cnJl
bnRseSBtdXN0IGJlIFwieG1sXCIpLCBvcHRpb25hbGx5IGZvbGxvd2VkICIKLSAgICAiYnkgYSBj
b2xvbiBhbmQgYW4gb3V0cHV0IGZpbGUgbmFtZSBvciBkaXJlY3RvcnkuIEEgZGlyZWN0b3J5ICIK
LSAgICAiaXMgaW5kaWNhdGVkIGJ5IGEgdHJhaWxpbmcgcGF0aG5hbWUgc2VwYXJhdG9yLiAiCi0g
ICAgIkV4YW1wbGVzOiBcInhtbDpmaWxlbmFtZS54bWxcIiwgXCJ4bWw6OmRpcmVjdG9yeW5hbWUv
XCIuICIKLSAgICAiSWYgYSBkaXJlY3RvcnkgaXMgc3BlY2lmaWVkLCBvdXRwdXQgZmlsZXMgd2ls
bCBiZSBjcmVhdGVkICIKLSAgICAid2l0aGluIHRoYXQgZGlyZWN0b3J5LCB3aXRoIGZpbGUtbmFt
ZXMgYmFzZWQgb24gdGhlIHRlc3QgIgotICAgICJleGVjdXRhYmxlJ3MgbmFtZSBhbmQsIGlmIG5l
Y2Vzc2FyeSwgbWFkZSB1bmlxdWUgYnkgYWRkaW5nICIKLSAgICAiZGlnaXRzLiIpOwotCi1HVEVT
VF9ERUZJTkVfYm9vbF8oCi0gICAgcHJpbnRfdGltZSwKLSAgICBpbnRlcm5hbDo6Qm9vbEZyb21H
VGVzdEVudigicHJpbnRfdGltZSIsIHRydWUpLAotICAgICJUcnVlIGlmZiAiIEdURVNUX05BTUVf
Ci0gICAgIiBzaG91bGQgZGlzcGxheSBlbGFwc2VkIHRpbWUgaW4gdGV4dCBvdXRwdXQuIik7Ci0K
LUdURVNUX0RFRklORV9pbnQzMl8oCi0gICAgcmFuZG9tX3NlZWQsCi0gICAgaW50ZXJuYWw6Oklu
dDMyRnJvbUdUZXN0RW52KCJyYW5kb21fc2VlZCIsIDApLAotICAgICJSYW5kb20gbnVtYmVyIHNl
ZWQgdG8gdXNlIHdoZW4gc2h1ZmZsaW5nIHRlc3Qgb3JkZXJzLiAgTXVzdCBiZSBpbiByYW5nZSAi
Ci0gICAgIlsxLCA5OTk5OV0sIG9yIDAgdG8gdXNlIGEgc2VlZCBiYXNlZCBvbiB0aGUgY3VycmVu
dCB0aW1lLiIpOwotCi1HVEVTVF9ERUZJTkVfaW50MzJfKAotICAgIHJlcGVhdCwKLSAgICBpbnRl
cm5hbDo6SW50MzJGcm9tR1Rlc3RFbnYoInJlcGVhdCIsIDEpLAotICAgICJIb3cgbWFueSB0aW1l
cyB0byByZXBlYXQgZWFjaCB0ZXN0LiAgU3BlY2lmeSBhIG5lZ2F0aXZlIG51bWJlciAiCi0gICAg
ImZvciByZXBlYXRpbmcgZm9yZXZlci4gIFVzZWZ1bCBmb3Igc2hha2luZyBvdXQgZmxha3kgdGVz
dHMuIik7Ci0KLUdURVNUX0RFRklORV9ib29sXygKLSAgICBzaG93X2ludGVybmFsX3N0YWNrX2Zy
YW1lcywgZmFsc2UsCi0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8gIiBzaG91bGQgaW5jbHVk
ZSBpbnRlcm5hbCBzdGFjayBmcmFtZXMgd2hlbiAiCi0gICAgInByaW50aW5nIHRlc3QgZmFpbHVy
ZSBzdGFjayB0cmFjZXMuIik7Ci0KLUdURVNUX0RFRklORV9ib29sXygKLSAgICBzaHVmZmxlLAot
ICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJzaHVmZmxlIiwgZmFsc2UpLAotICAgICJU
cnVlIGlmZiAiIEdURVNUX05BTUVfCi0gICAgIiBzaG91bGQgcmFuZG9taXplIHRlc3RzJyBvcmRl
ciBvbiBldmVyeSBydW4uIik7Ci0KLUdURVNUX0RFRklORV9pbnQzMl8oCi0gICAgc3RhY2tfdHJh
Y2VfZGVwdGgsCi0gICAgaW50ZXJuYWw6OkludDMyRnJvbUdUZXN0RW52KCJzdGFja190cmFjZV9k
ZXB0aCIsIGtNYXhTdGFja1RyYWNlRGVwdGgpLAotICAgICJUaGUgbWF4aW11bSBudW1iZXIgb2Yg
c3RhY2sgZnJhbWVzIHRvIHByaW50IHdoZW4gYW4gIgotICAgICJhc3NlcnRpb24gZmFpbHMuICBU
aGUgdmFsaWQgcmFuZ2UgaXMgMCB0aHJvdWdoIDEwMCwgaW5jbHVzaXZlLiIpOwotCi1HVEVTVF9E
RUZJTkVfc3RyaW5nXygKLSAgICBzdHJlYW1fcmVzdWx0X3RvLAotICAgIGludGVybmFsOjpTdHJp
bmdGcm9tR1Rlc3RFbnYoInN0cmVhbV9yZXN1bHRfdG8iLCAiIiksCi0gICAgIlRoaXMgZmxhZyBz
cGVjaWZpZXMgdGhlIGhvc3QgbmFtZSBhbmQgdGhlIHBvcnQgbnVtYmVyIG9uIHdoaWNoIHRvIHN0
cmVhbSAiCi0gICAgInRlc3QgcmVzdWx0cy4gRXhhbXBsZTogXCJsb2NhbGhvc3Q6NTU1XCIuIFRo
ZSBmbGFnIGlzIGVmZmVjdGl2ZSBvbmx5IG9uICIKLSAgICAiTGludXguIik7Ci0KLUdURVNUX0RF
RklORV9ib29sXygKLSAgICB0aHJvd19vbl9mYWlsdXJlLAotICAgIGludGVybmFsOjpCb29sRnJv
bUdUZXN0RW52KCJ0aHJvd19vbl9mYWlsdXJlIiwgZmFsc2UpLAotICAgICJXaGVuIHRoaXMgZmxh
ZyBpcyBzcGVjaWZpZWQsIGEgZmFpbGVkIGFzc2VydGlvbiB3aWxsIHRocm93IGFuIGV4Y2VwdGlv
biAiCi0gICAgImlmIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQgb3IgZXhpdCB0aGUgcHJvZ3JhbSB3
aXRoIGEgbm9uLXplcm8gY29kZSAiCi0gICAgIm90aGVyd2lzZS4iKTsKLQotI2lmIEdURVNUX1VT
RV9PV05fRkxBR0ZJTEVfRkxBR18KLUdURVNUX0RFRklORV9zdHJpbmdfKAotICAgIGZsYWdmaWxl
LAotICAgIGludGVybmFsOjpTdHJpbmdGcm9tR1Rlc3RFbnYoImZsYWdmaWxlIiwgIiIpLAotICAg
ICJUaGlzIGZsYWcgc3BlY2lmaWVzIHRoZSBmbGFnZmlsZSB0byByZWFkIGNvbW1hbmQtbGluZSBm
bGFncyBmcm9tLiIpOwotI2VuZGlmICAvLyBHVEVTVF9VU0VfT1dOX0ZMQUdGSUxFX0ZMQUdfCi0K
LW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIEdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgZnJv
bSBbMCwgcmFuZ2UpLCB1c2luZyBhIExpbmVhcgotLy8gQ29uZ3J1ZW50aWFsIEdlbmVyYXRvciAo
TENHKS4gIENyYXNoZXMgaWYgJ3JhbmdlJyBpcyAwIG9yIGdyZWF0ZXIKLS8vIHRoYW4ga01heFJh
bmdlLgotVUludDMyIFJhbmRvbTo6R2VuZXJhdGUoVUludDMyIHJhbmdlKSB7Ci0gIC8vIFRoZXNl
IGNvbnN0YW50cyBhcmUgdGhlIHNhbWUgYXMgYXJlIHVzZWQgaW4gZ2xpYmMncyByYW5kKDMpLgot
ICAvLyBVc2Ugd2lkZXIgdHlwZXMgdGhhbiBuZWNlc3NhcnkgdG8gcHJldmVudCB1bnNpZ25lZCBv
dmVyZmxvdyBkaWFnbm9zdGljcy4KLSAgc3RhdGVfID0gc3RhdGljX2Nhc3Q8VUludDMyPigxMTAz
NTE1MjQ1VUxMKnN0YXRlXyArIDEyMzQ1VSkgJSBrTWF4UmFuZ2U7Ci0KLSAgR1RFU1RfQ0hFQ0tf
KHJhbmdlID4gMCkKLSAgICAgIDw8ICJDYW5ub3QgZ2VuZXJhdGUgYSBudW1iZXIgaW4gdGhlIHJh
bmdlIFswLCAwKS4iOwotICBHVEVTVF9DSEVDS18ocmFuZ2UgPD0ga01heFJhbmdlKQotICAgICAg
PDwgIkdlbmVyYXRpb24gb2YgYSBudW1iZXIgaW4gWzAsICIgPDwgcmFuZ2UgPDwgIikgd2FzIHJl
cXVlc3RlZCwgIgotICAgICAgPDwgImJ1dCB0aGlzIGNhbiBvbmx5IGdlbmVyYXRlIG51bWJlcnMg
aW4gWzAsICIgPDwga01heFJhbmdlIDw8ICIpLiI7Ci0KLSAgLy8gQ29udmVydGluZyB2aWEgbW9k
dWx1cyBpbnRyb2R1Y2VzIGEgYml0IG9mIGRvd253YXJkIGJpYXMsIGJ1dAotICAvLyBpdCdzIHNp
bXBsZSwgYW5kIGEgbGluZWFyIGNvbmdydWVudGlhbCBnZW5lcmF0b3IgaXNuJ3QgdG9vIGdvb2QK
LSAgLy8gdG8gYmVnaW4gd2l0aC4KLSAgcmV0dXJuIHN0YXRlXyAlIHJhbmdlOwotfQotCi0vLyBH
VGVzdElzSW5pdGlhbGl6ZWQoKSByZXR1cm5zIHRydWUgaWZmIHRoZSB1c2VyIGhhcyBpbml0aWFs
aXplZAotLy8gR29vZ2xlIFRlc3QuICBVc2VmdWwgZm9yIGNhdGNoaW5nIHRoZSB1c2VyIG1pc3Rh
a2Ugb2Ygbm90IGluaXRpYWxpemluZwotLy8gR29vZ2xlIFRlc3QgYmVmb3JlIGNhbGxpbmcgUlVO
X0FMTF9URVNUUygpLgotc3RhdGljIGJvb2wgR1Rlc3RJc0luaXRpYWxpemVkKCkgeyByZXR1cm4g
R2V0QXJndnMoKS5zaXplKCkgPiAwOyB9Ci0KLS8vIEl0ZXJhdGVzIG92ZXIgYSB2ZWN0b3Igb2Yg
VGVzdENhc2VzLCBrZWVwaW5nIGEgcnVubmluZyBzdW0gb2YgdGhlCi0vLyByZXN1bHRzIG9mIGNh
bGxpbmcgYSBnaXZlbiBpbnQtcmV0dXJuaW5nIG1ldGhvZCBvbiBlYWNoLgotLy8gUmV0dXJucyB0
aGUgc3VtLgotc3RhdGljIGludCBTdW1PdmVyVGVzdENhc2VMaXN0KGNvbnN0IHN0ZDo6dmVjdG9y
PFRlc3RDYXNlKj4mIGNhc2VfbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgKFRlc3RDYXNlOjoqbWV0aG9kKSgpIGNvbnN0KSB7Ci0gIGludCBzdW0gPSAwOwotICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNhc2VfbGlzdC5zaXplKCk7IGkrKykgewotICAgIHN1bSArPSAo
Y2FzZV9saXN0W2ldLT4qbWV0aG9kKSgpOwotICB9Ci0gIHJldHVybiBzdW07Ci19Ci0KLS8vIFJl
dHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBwYXNzZWQuCi1zdGF0aWMgYm9vbCBUZXN0Q2Fz
ZVBhc3NlZChjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gIHJldHVybiB0ZXN0X2Nhc2Ut
PnNob3VsZF9ydW4oKSAmJiB0ZXN0X2Nhc2UtPlBhc3NlZCgpOwotfQotCi0vLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSB0ZXN0IGNhc2UgZmFpbGVkLgotc3RhdGljIGJvb2wgVGVzdENhc2VGYWlsZWQo
Y29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgewotICByZXR1cm4gdGVzdF9jYXNlLT5zaG91bGRf
cnVuKCkgJiYgdGVzdF9jYXNlLT5GYWlsZWQoKTsKLX0KLQotLy8gUmV0dXJucyB0cnVlIGlmZiB0
ZXN0X2Nhc2UgY29udGFpbnMgYXQgbGVhc3Qgb25lIHRlc3QgdGhhdCBzaG91bGQKLS8vIHJ1bi4K
LXN0YXRpYyBib29sIFNob3VsZFJ1blRlc3RDYXNlKGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2Up
IHsKLSAgcmV0dXJuIHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpOwotfQotCi0vLyBBc3NlcnRIZWxw
ZXIgY29uc3RydWN0b3IuCi1Bc3NlcnRIZWxwZXI6OkFzc2VydEhlbHBlcihUZXN0UGFydFJlc3Vs
dDo6VHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmls
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogbWVzc2FnZSkKLSAgICA6IGRhdGFfKG5ldyBBc3NlcnRI
ZWxwZXJEYXRhKHR5cGUsIGZpbGUsIGxpbmUsIG1lc3NhZ2UpKSB7Ci19Ci0KLUFzc2VydEhlbHBl
cjo6fkFzc2VydEhlbHBlcigpIHsKLSAgZGVsZXRlIGRhdGFfOwotfQotCi0vLyBNZXNzYWdlIGFz
c2lnbm1lbnQsIGZvciBhc3NlcnRpb24gc3RyZWFtaW5nIHN1cHBvcnQuCi12b2lkIEFzc2VydEhl
bHBlcjo6b3BlcmF0b3I9KGNvbnN0IE1lc3NhZ2UmIG1lc3NhZ2UpIGNvbnN0IHsKLSAgVW5pdFRl
c3Q6OkdldEluc3RhbmNlKCktPgotICAgIEFkZFRlc3RQYXJ0UmVzdWx0KGRhdGFfLT50eXBlLCBk
YXRhXy0+ZmlsZSwgZGF0YV8tPmxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgQXBwZW5kVXNl
ck1lc3NhZ2UoZGF0YV8tPm1lc3NhZ2UsIG1lc3NhZ2UpLAotICAgICAgICAgICAgICAgICAgICAg
IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5pbXBsKCkKLSAgICAgICAgICAgICAgICAgICAgICAt
PkN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3AoMSkKLSAgICAgICAgICAgICAgICAgICAgICAv
LyBTa2lwcyB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgZnVuY3Rpb24gaXRzZWxmLgotICAgICAg
ICAgICAgICAgICAgICAgICk7ICAvLyBOT0xJTlQKLX0KLQotLy8gTXV0ZXggZm9yIGxpbmtlZCBw
b2ludGVycy4KLUdURVNUX0FQSV8gR1RFU1RfREVGSU5FX1NUQVRJQ19NVVRFWF8oZ19saW5rZWRf
cHRyX211dGV4KTsKLQotLy8gQSBjb3B5IG9mIGFsbCBjb21tYW5kIGxpbmUgYXJndW1lbnRzLiAg
U2V0IGJ5IEluaXRHb29nbGVUZXN0KCkuCi06OnN0ZDo6dmVjdG9yPHRlc3Rpbmc6OmludGVybmFs
OjpzdHJpbmc+IGdfYXJndnM7Ci0KLWNvbnN0IDo6c3RkOjp2ZWN0b3I8dGVzdGluZzo6aW50ZXJu
YWw6OnN0cmluZz4mIEdldEFyZ3ZzKCkgewotI2lmIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0dFVF9B
UkdWU18pCi0gIHJldHVybiBHVEVTVF9DVVNUT01fR0VUX0FSR1ZTXygpOwotI2Vsc2UgIC8vIGRl
ZmluZWQoR1RFU1RfQ1VTVE9NX0dFVF9BUkdWU18pCi0gIHJldHVybiBnX2FyZ3ZzOwotI2VuZGlm
ICAvLyBkZWZpbmVkKEdURVNUX0NVU1RPTV9HRVRfQVJHVlNfKQotfQotCi0vLyBSZXR1cm5zIHRo
ZSBjdXJyZW50IGFwcGxpY2F0aW9uJ3MgbmFtZSwgcmVtb3ZpbmcgZGlyZWN0b3J5IHBhdGggaWYg
dGhhdAotLy8gaXMgcHJlc2VudC4KLUZpbGVQYXRoIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgp
IHsKLSAgRmlsZVBhdGggcmVzdWx0OwotCi0jaWYgR1RFU1RfT1NfV0lORE9XUwotICByZXN1bHQu
U2V0KEZpbGVQYXRoKEdldEFyZ3ZzKClbMF0pLlJlbW92ZUV4dGVuc2lvbigiZXhlIikpOwotI2Vs
c2UKLSAgcmVzdWx0LlNldChGaWxlUGF0aChHZXRBcmd2cygpWzBdKSk7Ci0jZW5kaWYgIC8vIEdU
RVNUX09TX1dJTkRPV1MKLQotICByZXR1cm4gcmVzdWx0LlJlbW92ZURpcmVjdG9yeU5hbWUoKTsK
LX0KLQotLy8gRnVuY3Rpb25zIGZvciBwcm9jZXNzaW5nIHRoZSBndGVzdF9vdXRwdXQgZmxhZy4K
LQotLy8gUmV0dXJucyB0aGUgb3V0cHV0IGZvcm1hdCwgb3IgIiIgZm9yIG5vcm1hbCBwcmludGVk
IG91dHB1dC4KLXN0ZDo6c3RyaW5nIFVuaXRUZXN0T3B0aW9uczo6R2V0T3V0cHV0Rm9ybWF0KCkg
ewotICBjb25zdCBjaGFyKiBjb25zdCBndGVzdF9vdXRwdXRfZmxhZyA9IEdURVNUX0ZMQUcob3V0
cHV0KS5jX3N0cigpOwotICBpZiAoZ3Rlc3Rfb3V0cHV0X2ZsYWcgPT0gTlVMTCkgcmV0dXJuIHN0
ZDo6c3RyaW5nKCIiKTsKLQotICBjb25zdCBjaGFyKiBjb25zdCBjb2xvbiA9IHN0cmNocihndGVz
dF9vdXRwdXRfZmxhZywgJzonKTsKLSAgcmV0dXJuIChjb2xvbiA9PSBOVUxMKSA/Ci0gICAgICBz
dGQ6OnN0cmluZyhndGVzdF9vdXRwdXRfZmxhZykgOgotICAgICAgc3RkOjpzdHJpbmcoZ3Rlc3Rf
b3V0cHV0X2ZsYWcsIGNvbG9uIC0gZ3Rlc3Rfb3V0cHV0X2ZsYWcpOwotfQotCi0vLyBSZXR1cm5z
IHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgb3V0cHV0IGZpbGUsIG9yIHRoZSBkZWZhdWx0IGlm
IG5vbmUKLS8vIHdhcyBleHBsaWNpdGx5IHNwZWNpZmllZC4KLXN0ZDo6c3RyaW5nIFVuaXRUZXN0
T3B0aW9uczo6R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkgewotICBjb25zdCBjaGFyKiBj
b25zdCBndGVzdF9vdXRwdXRfZmxhZyA9IEdURVNUX0ZMQUcob3V0cHV0KS5jX3N0cigpOwotICBp
ZiAoZ3Rlc3Rfb3V0cHV0X2ZsYWcgPT0gTlVMTCkKLSAgICByZXR1cm4gIiI7Ci0KLSAgY29uc3Qg
Y2hhciogY29uc3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2ZsYWcsICc6Jyk7Ci0gIGlm
IChjb2xvbiA9PSBOVUxMKQotICAgIHJldHVybiBpbnRlcm5hbDo6RmlsZVBhdGg6OkNvbmNhdFBh
dGhzKAotICAgICAgICBpbnRlcm5hbDo6RmlsZVBhdGgoCi0gICAgICAgICAgICBVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKS0+b3JpZ2luYWxfd29ya2luZ19kaXIoKSksCi0gICAgICAgIGludGVybmFs
OjpGaWxlUGF0aChrRGVmYXVsdE91dHB1dEZpbGUpKS5zdHJpbmcoKTsKLQotICBpbnRlcm5hbDo6
RmlsZVBhdGggb3V0cHV0X25hbWUoY29sb24gKyAxKTsKLSAgaWYgKCFvdXRwdXRfbmFtZS5Jc0Fi
c29sdXRlUGF0aCgpKQotICAgIC8vIFRPRE8od2FuQGdvb2dsZS5jb20pOiBvbiBXaW5kb3dzIFxz
b21lXHBhdGggaXMgbm90IGFuIGFic29sdXRlCi0gICAgLy8gcGF0aCAoYXMgaXRzIG1lYW5pbmcg
ZGVwZW5kcyBvbiB0aGUgY3VycmVudCBkcml2ZSksIHlldCB0aGUKLSAgICAvLyBmb2xsb3dpbmcg
bG9naWMgZm9yIHR1cm5pbmcgaXQgaW50byBhbiBhYnNvbHV0ZSBwYXRoIGlzIHdyb25nLgotICAg
IC8vIEZpeCBpdC4KLSAgICBvdXRwdXRfbmFtZSA9IGludGVybmFsOjpGaWxlUGF0aDo6Q29uY2F0
UGF0aHMoCi0gICAgICAgIGludGVybmFsOjpGaWxlUGF0aChVbml0VGVzdDo6R2V0SW5zdGFuY2Uo
KS0+b3JpZ2luYWxfd29ya2luZ19kaXIoKSksCi0gICAgICAgIGludGVybmFsOjpGaWxlUGF0aChj
b2xvbiArIDEpKTsKLQotICBpZiAoIW91dHB1dF9uYW1lLklzRGlyZWN0b3J5KCkpCi0gICAgcmV0
dXJuIG91dHB1dF9uYW1lLnN0cmluZygpOwotCi0gIGludGVybmFsOjpGaWxlUGF0aCByZXN1bHQo
aW50ZXJuYWw6OkZpbGVQYXRoOjpHZW5lcmF0ZVVuaXF1ZUZpbGVOYW1lKAotICAgICAgb3V0cHV0
X25hbWUsIGludGVybmFsOjpHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKSwKLSAgICAgIEdldE91
dHB1dEZvcm1hdCgpLmNfc3RyKCkpKTsKLSAgcmV0dXJuIHJlc3VsdC5zdHJpbmcoKTsKLX0KLQot
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGUgd2lsZGNhcmQgcGF0dGVybiBtYXRjaGVzIHRoZSBzdHJp
bmcuICBUaGUKLS8vIGZpcnN0ICc6JyBvciAnXDAnIGNoYXJhY3RlciBpbiBwYXR0ZXJuIG1hcmtz
IHRoZSBlbmQgb2YgaXQuCi0vLwotLy8gVGhpcyByZWN1cnNpdmUgYWxnb3JpdGhtIGlzbid0IHZl
cnkgZWZmaWNpZW50LCBidXQgaXMgY2xlYXIgYW5kCi0vLyB3b3JrcyB3ZWxsIGVub3VnaCBmb3Ig
bWF0Y2hpbmcgdGVzdCBuYW1lcywgd2hpY2ggYXJlIHNob3J0LgotYm9vbCBVbml0VGVzdE9wdGlv
bnM6OlBhdHRlcm5NYXRjaGVzU3RyaW5nKGNvbnN0IGNoYXIgKnBhdHRlcm4sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3RyKSB7Ci0gIHN3
aXRjaCAoKnBhdHRlcm4pIHsKLSAgICBjYXNlICdcMCc6Ci0gICAgY2FzZSAnOic6ICAvLyBFaXRo
ZXIgJzonIG9yICdcMCcgbWFya3MgdGhlIGVuZCBvZiB0aGUgcGF0dGVybi4KLSAgICAgIHJldHVy
biAqc3RyID09ICdcMCc7Ci0gICAgY2FzZSAnPyc6ICAvLyBNYXRjaGVzIGFueSBzaW5nbGUgY2hh
cmFjdGVyLgotICAgICAgcmV0dXJuICpzdHIgIT0gJ1wwJyAmJiBQYXR0ZXJuTWF0Y2hlc1N0cmlu
ZyhwYXR0ZXJuICsgMSwgc3RyICsgMSk7Ci0gICAgY2FzZSAnKic6ICAvLyBNYXRjaGVzIGFueSBz
dHJpbmcgKHBvc3NpYmx5IGVtcHR5KSBvZiBjaGFyYWN0ZXJzLgotICAgICAgcmV0dXJuICgqc3Ry
ICE9ICdcMCcgJiYgUGF0dGVybk1hdGNoZXNTdHJpbmcocGF0dGVybiwgc3RyICsgMSkpIHx8Ci0g
ICAgICAgICAgUGF0dGVybk1hdGNoZXNTdHJpbmcocGF0dGVybiArIDEsIHN0cik7Ci0gICAgZGVm
YXVsdDogIC8vIE5vbi1zcGVjaWFsIGNoYXJhY3Rlci4gIE1hdGNoZXMgaXRzZWxmLgotICAgICAg
cmV0dXJuICpwYXR0ZXJuID09ICpzdHIgJiYKLSAgICAgICAgICBQYXR0ZXJuTWF0Y2hlc1N0cmlu
ZyhwYXR0ZXJuICsgMSwgc3RyICsgMSk7Ci0gIH0KLX0KLQotYm9vbCBVbml0VGVzdE9wdGlvbnM6
Ok1hdGNoZXNGaWx0ZXIoCi0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsIGNvbnN0IGNoYXIq
IGZpbHRlcikgewotICBjb25zdCBjaGFyICpjdXJfcGF0dGVybiA9IGZpbHRlcjsKLSAgZm9yICg7
OykgewotICAgIGlmIChQYXR0ZXJuTWF0Y2hlc1N0cmluZyhjdXJfcGF0dGVybiwgbmFtZS5jX3N0
cigpKSkgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgLy8gRmluZHMgdGhlIG5l
eHQgcGF0dGVybiBpbiB0aGUgZmlsdGVyLgotICAgIGN1cl9wYXR0ZXJuID0gc3RyY2hyKGN1cl9w
YXR0ZXJuLCAnOicpOwotCi0gICAgLy8gUmV0dXJucyBpZiBubyBtb3JlIHBhdHRlcm4gY2FuIGJl
IGZvdW5kLgotICAgIGlmIChjdXJfcGF0dGVybiA9PSBOVUxMKSB7Ci0gICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotCi0gICAgLy8gU2tpcHMgdGhlIHBhdHRlcm4gc2VwYXJhdGVyICh0aGUgJzon
IGNoYXJhY3RlcikuCi0gICAgY3VyX3BhdHRlcm4rKzsKLSAgfQotfQotCi0vLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIgbWF0Y2hlcyB0aGUgdGVzdCBjYXNlCi0v
LyBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lLgotYm9vbCBVbml0VGVzdE9wdGlvbnM6OkZpbHRlck1h
dGNoZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmdGVzdF9uYW1l
KSB7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nJiBmdWxsX25hbWUgPSB0ZXN0X2Nhc2VfbmFtZSArICIu
IiArIHRlc3RfbmFtZS5jX3N0cigpOwotCi0gIC8vIFNwbGl0IC0tZ3Rlc3RfZmlsdGVyIGF0ICct
JywgaWYgdGhlcmUgaXMgb25lLCB0byBzZXBhcmF0ZSBpbnRvCi0gIC8vIHBvc2l0aXZlIGZpbHRl
ciBhbmQgbmVnYXRpdmUgZmlsdGVyIHBvcnRpb25zCi0gIGNvbnN0IGNoYXIqIGNvbnN0IHAgPSBH
VEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKTsKLSAgY29uc3QgY2hhciogY29uc3QgZGFzaCA9IHN0
cmNocihwLCAnLScpOwotICBzdGQ6OnN0cmluZyBwb3NpdGl2ZTsKLSAgc3RkOjpzdHJpbmcgbmVn
YXRpdmU7Ci0gIGlmIChkYXNoID09IE5VTEwpIHsKLSAgICBwb3NpdGl2ZSA9IEdURVNUX0ZMQUco
ZmlsdGVyKS5jX3N0cigpOyAgLy8gV2hvbGUgc3RyaW5nIGlzIGEgcG9zaXRpdmUgZmlsdGVyCi0g
ICAgbmVnYXRpdmUgPSAiIjsKLSAgfSBlbHNlIHsKLSAgICBwb3NpdGl2ZSA9IHN0ZDo6c3RyaW5n
KHAsIGRhc2gpOyAgIC8vIEV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGRhc2gKLSAgICBuZWdhdGl2ZSA9
IHN0ZDo6c3RyaW5nKGRhc2ggKyAxKTsgIC8vIEV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGRhc2gKLSAg
ICBpZiAocG9zaXRpdmUuZW1wdHkoKSkgewotICAgICAgLy8gVHJlYXQgJy10ZXN0MScgYXMgdGhl
IHNhbWUgYXMgJyotdGVzdDEnCi0gICAgICBwb3NpdGl2ZSA9IGtVbml2ZXJzYWxGaWx0ZXI7Ci0g
ICAgfQotICB9Ci0KLSAgLy8gQSBmaWx0ZXIgaXMgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBw
YXR0ZXJucy4gIEl0IG1hdGNoZXMgYQotICAvLyB0ZXN0IGlmIGFueSBwYXR0ZXJuIGluIGl0IG1h
dGNoZXMgdGhlIHRlc3QuCi0gIHJldHVybiAoTWF0Y2hlc0ZpbHRlcihmdWxsX25hbWUsIHBvc2l0
aXZlLmNfc3RyKCkpICYmCi0gICAgICAgICAgIU1hdGNoZXNGaWx0ZXIoZnVsbF9uYW1lLCBuZWdh
dGl2ZS5jX3N0cigpKSk7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfU0VICi0vLyBSZXR1cm5zIEVYQ0VQ
VElPTl9FWEVDVVRFX0hBTkRMRVIgaWYgR29vZ2xlIFRlc3Qgc2hvdWxkIGhhbmRsZSB0aGUKLS8v
IGdpdmVuIFNFSCBleGNlcHRpb24sIG9yIEVYQ0VQVElPTl9DT05USU5VRV9TRUFSQ0ggb3RoZXJ3
aXNlLgotLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgYXMgYW4gX19leGNlcHQgY29uZGl0aW9u
LgotaW50IFVuaXRUZXN0T3B0aW9uczo6R1Rlc3RTaG91bGRQcm9jZXNzU0VIKERXT1JEIGV4Y2Vw
dGlvbl9jb2RlKSB7Ci0gIC8vIEdvb2dsZSBUZXN0IHNob3VsZCBoYW5kbGUgYSBTRUggZXhjZXB0
aW9uIGlmOgotICAvLyAgIDEuIHRoZSB1c2VyIHdhbnRzIGl0IHRvLCBBTkQKLSAgLy8gICAyLiB0
aGlzIGlzIG5vdCBhIGJyZWFrcG9pbnQgZXhjZXB0aW9uLCBBTkQKLSAgLy8gICAzLiB0aGlzIGlz
IG5vdCBhIEMrKyBleGNlcHRpb24gKFZDKysgaW1wbGVtZW50cyB0aGVtIHZpYSBTRUgsCi0gIC8v
ICAgICAgYXBwYXJlbnRseSkuCi0gIC8vCi0gIC8vIFNFSCBleGNlcHRpb24gY29kZSBmb3IgQysr
IGV4Y2VwdGlvbnMuCi0gIC8vIChzZWUgaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi8x
ODUyOTQgZm9yIG1vcmUgaW5mb3JtYXRpb24pLgotICBjb25zdCBEV09SRCBrQ3h4RXhjZXB0aW9u
Q29kZSA9IDB4ZTA2ZDczNjM7Ci0KLSAgYm9vbCBzaG91bGRfaGFuZGxlID0gdHJ1ZTsKLQotICBp
ZiAoIUdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykpCi0gICAgc2hvdWxkX2hhbmRsZSA9IGZh
bHNlOwotICBlbHNlIGlmIChleGNlcHRpb25fY29kZSA9PSBFWENFUFRJT05fQlJFQUtQT0lOVCkK
LSAgICBzaG91bGRfaGFuZGxlID0gZmFsc2U7Ci0gIGVsc2UgaWYgKGV4Y2VwdGlvbl9jb2RlID09
IGtDeHhFeGNlcHRpb25Db2RlKQotICAgIHNob3VsZF9oYW5kbGUgPSBmYWxzZTsKLQotICByZXR1
cm4gc2hvdWxkX2hhbmRsZSA/IEVYQ0VQVElPTl9FWEVDVVRFX0hBTkRMRVIgOiBFWENFUFRJT05f
Q09OVElOVUVfU0VBUkNIOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU0VICi0KLX0gIC8vIG5h
bWVzcGFjZSBpbnRlcm5hbAotCi0vLyBUaGUgYyd0b3Igc2V0cyB0aGlzIG9iamVjdCBhcyB0aGUg
dGVzdCBwYXJ0IHJlc3VsdCByZXBvcnRlciB1c2VkIGJ5Ci0vLyBHb29nbGUgVGVzdC4gIFRoZSAn
cmVzdWx0JyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoZXJlIHRvIHJlcG9ydCB0aGUKLS8vIHJlc3Vs
dHMuIEludGVyY2VwdHMgb25seSBmYWlsdXJlcyBmcm9tIHRoZSBjdXJyZW50IHRocmVhZC4KLVNj
b3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyOjpTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRS
ZXBvcnRlcigKLSAgICBUZXN0UGFydFJlc3VsdEFycmF5KiByZXN1bHQpCi0gICAgOiBpbnRlcmNl
cHRfbW9kZV8oSU5URVJDRVBUX09OTFlfQ1VSUkVOVF9USFJFQUQpLAotICAgICAgcmVzdWx0Xyhy
ZXN1bHQpIHsKLSAgSW5pdCgpOwotfQotCi0vLyBUaGUgYyd0b3Igc2V0cyB0aGlzIG9iamVjdCBh
cyB0aGUgdGVzdCBwYXJ0IHJlc3VsdCByZXBvcnRlciB1c2VkIGJ5Ci0vLyBHb29nbGUgVGVzdC4g
IFRoZSAncmVzdWx0JyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoZXJlIHRvIHJlcG9ydCB0aGUKLS8v
IHJlc3VsdHMuCi1TY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjo6U2NvcGVkRmFrZVRl
c3RQYXJ0UmVzdWx0UmVwb3J0ZXIoCi0gICAgSW50ZXJjZXB0TW9kZSBpbnRlcmNlcHRfbW9kZSwg
VGVzdFBhcnRSZXN1bHRBcnJheSogcmVzdWx0KQotICAgIDogaW50ZXJjZXB0X21vZGVfKGludGVy
Y2VwdF9tb2RlKSwKLSAgICAgIHJlc3VsdF8ocmVzdWx0KSB7Ci0gIEluaXQoKTsKLX0KLQotdm9p
ZCBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjo6SW5pdCgpIHsKLSAgaW50ZXJuYWw6
OlVuaXRUZXN0SW1wbCogY29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKTsK
LSAgaWYgKGludGVyY2VwdF9tb2RlXyA9PSBJTlRFUkNFUFRfQUxMX1RIUkVBRFMpIHsKLSAgICBv
bGRfcmVwb3J0ZXJfID0gaW1wbC0+R2V0R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRlcigpOwot
ICAgIGltcGwtPlNldEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIodGhpcyk7Ci0gIH0gZWxz
ZSB7Ci0gICAgb2xkX3JlcG9ydGVyXyA9IGltcGwtPkdldFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJG
b3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgaW1wbC0+U2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZv
ckN1cnJlbnRUaHJlYWQodGhpcyk7Ci0gIH0KLX0KLQotLy8gVGhlIGQndG9yIHJlc3RvcmVzIHRo
ZSB0ZXN0IHBhcnQgcmVzdWx0IHJlcG9ydGVyIHVzZWQgYnkgR29vZ2xlIFRlc3QKLS8vIGJlZm9y
ZS4KLVNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyOjp+U2NvcGVkRmFrZVRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXIoKSB7Ci0gIGludGVybmFsOjpVbml0VGVzdEltcGwqIGNvbnN0IGltcGwg
PSBpbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsKCk7Ci0gIGlmIChpbnRlcmNlcHRfbW9kZV8gPT0g
SU5URVJDRVBUX0FMTF9USFJFQURTKSB7Ci0gICAgaW1wbC0+U2V0R2xvYmFsVGVzdFBhcnRSZXN1
bHRSZXBvcnRlcihvbGRfcmVwb3J0ZXJfKTsKLSAgfSBlbHNlIHsKLSAgICBpbXBsLT5TZXRUZXN0
UGFydFJlc3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVhZChvbGRfcmVwb3J0ZXJfKTsKLSAgfQot
fQotCi0vLyBJbmNyZW1lbnRzIHRoZSB0ZXN0IHBhcnQgcmVzdWx0IGNvdW50IGFuZCByZW1lbWJl
cnMgdGhlIHJlc3VsdC4KLS8vIFRoaXMgbWV0aG9kIGlzIGZyb20gdGhlIFRlc3RQYXJ0UmVzdWx0
UmVwb3J0ZXJJbnRlcmZhY2UgaW50ZXJmYWNlLgotdm9pZCBTY29wZWRGYWtlVGVzdFBhcnRSZXN1
bHRSZXBvcnRlcjo6UmVwb3J0VGVzdFBhcnRSZXN1bHQoCi0gICAgY29uc3QgVGVzdFBhcnRSZXN1
bHQmIHJlc3VsdCkgewotICByZXN1bHRfLT5BcHBlbmQocmVzdWx0KTsKLX0KLQotbmFtZXNwYWNl
IGludGVybmFsIHsKLQotLy8gUmV0dXJucyB0aGUgdHlwZSBJRCBvZiA6OnRlc3Rpbmc6OlRlc3Qu
ICBXZSBzaG91bGQgYWx3YXlzIGNhbGwgdGhpcwotLy8gaW5zdGVhZCBvZiBHZXRUeXBlSWQ8IDo6
dGVzdGluZzo6VGVzdD4oKSB0byBnZXQgdGhlIHR5cGUgSUQgb2YKLS8vIHRlc3Rpbmc6OlRlc3Qu
ICBUaGlzIGlzIHRvIHdvcmsgYXJvdW5kIGEgc3VzcGVjdGVkIGxpbmtlciBidWcgd2hlbgotLy8g
dXNpbmcgR29vZ2xlIFRlc3QgYXMgYSBmcmFtZXdvcmsgb24gTWFjIE9TIFguICBUaGUgYnVnIGNh
dXNlcwotLy8gR2V0VHlwZUlkPCA6OnRlc3Rpbmc6OlRlc3Q+KCkgdG8gcmV0dXJuIGRpZmZlcmVu
dCB2YWx1ZXMgZGVwZW5kaW5nCi0vLyBvbiB3aGV0aGVyIHRoZSBjYWxsIGlzIGZyb20gdGhlIEdv
b2dsZSBUZXN0IGZyYW1ld29yayBpdHNlbGYgb3IKLS8vIGZyb20gdXNlciB0ZXN0IGNvZGUuICBH
ZXRUZXN0VHlwZUlkKCkgaXMgZ3VhcmFudGVlZCB0byBhbHdheXMKLS8vIHJldHVybiB0aGUgc2Ft
ZSB2YWx1ZSwgYXMgaXQgYWx3YXlzIGNhbGxzIEdldFR5cGVJZDw+KCkgZnJvbSB0aGUKLS8vIGd0
ZXN0LmNjLCB3aGljaCBpcyB3aXRoaW4gdGhlIEdvb2dsZSBUZXN0IGZyYW1ld29yay4KLVR5cGVJ
ZCBHZXRUZXN0VHlwZUlkKCkgewotICByZXR1cm4gR2V0VHlwZUlkPFRlc3Q+KCk7Ci19Ci0KLS8v
IFRoZSB2YWx1ZSBvZiBHZXRUZXN0VHlwZUlkKCkgYXMgc2VlbiBmcm9tIHdpdGhpbiB0aGUgR29v
Z2xlIFRlc3QKLS8vIGxpYnJhcnkuICBUaGlzIGlzIHNvbGVseSBmb3IgdGVzdGluZyBHZXRUZXN0
VHlwZUlkKCkuCi1leHRlcm4gY29uc3QgVHlwZUlkIGtUZXN0VHlwZUlkSW5Hb29nbGVUZXN0ID0g
R2V0VGVzdFR5cGVJZCgpOwotCi0vLyBUaGlzIHByZWRpY2F0ZS1mb3JtYXR0ZXIgY2hlY2tzIHRo
YXQgJ3Jlc3VsdHMnIGNvbnRhaW5zIGEgdGVzdCBwYXJ0Ci0vLyBmYWlsdXJlIG9mIHRoZSBnaXZl
biB0eXBlIGFuZCB0aGF0IHRoZSBmYWlsdXJlIG1lc3NhZ2UgY29udGFpbnMgdGhlCi0vLyBnaXZl
biBzdWJzdHJpbmcuCi1zdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IEhhc09uZUZhaWx1cmUoY29uc3Qg
Y2hhciogLyogcmVzdWx0c19leHByICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIC8qIHR5cGVfZXhwciAqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiAvKiBzdWJzdHJfZXhwciAqLywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UGFydFJlc3VsdEFycmF5JiBy
ZXN1bHRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RQYXJ0UmVz
dWx0OjpUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIHN1YnN0cikgewotICBjb25zdCBzdGQ6OnN0cmluZyBleHBlY3RlZCh0
eXBlID09IFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlID8KLSAgICAgICAgICAgICAgICAg
ICAgICAgICIxIGZhdGFsIGZhaWx1cmUiIDoKLSAgICAgICAgICAgICAgICAgICAgICAgICIxIG5v
bi1mYXRhbCBmYWlsdXJlIik7Ci0gIE1lc3NhZ2UgbXNnOwotICBpZiAocmVzdWx0cy5zaXplKCkg
IT0gMSkgewotICAgIG1zZyA8PCAiRXhwZWN0ZWQ6ICIgPDwgZXhwZWN0ZWQgPDwgIlxuIgotICAg
ICAgICA8PCAiICBBY3R1YWw6ICIgPDwgcmVzdWx0cy5zaXplKCkgPDwgIiBmYWlsdXJlcyI7Ci0g
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHRzLnNpemUoKTsgaSsrKSB7Ci0gICAgICBtc2cg
PDwgIlxuIiA8PCByZXN1bHRzLkdldFRlc3RQYXJ0UmVzdWx0KGkpOwotICAgIH0KLSAgICByZXR1
cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG1zZzsKLSAgfQotCi0gIGNvbnN0IFRlc3RQYXJ0UmVz
dWx0JiByID0gcmVzdWx0cy5HZXRUZXN0UGFydFJlc3VsdCgwKTsKLSAgaWYgKHIudHlwZSgpICE9
IHR5cGUpIHsKLSAgICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8ICJFeHBlY3RlZDogIiA8
PCBleHBlY3RlZCA8PCAiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiICBB
Y3R1YWw6XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCByOwotICB9Ci0KLSAg
aWYgKHN0cnN0cihyLm1lc3NhZ2UoKSwgc3Vic3RyLmNfc3RyKCkpID09IE5VTEwpIHsKLSAgICBy
ZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8ICJFeHBlY3RlZDogIiA8PCBleHBlY3RlZCA8PCAi
IGNvbnRhaW5pbmcgXCIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdWJzdHIg
PDwgIlwiXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiICBBY3R1YWw6XG4i
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCByOwotICB9Ci0KLSAgcmV0dXJuIEFz
c2VydGlvblN1Y2Nlc3MoKTsKLX0KLQotLy8gVGhlIGNvbnN0cnVjdG9yIG9mIFNpbmdsZUZhaWx1
cmVDaGVja2VyIHJlbWVtYmVycyB3aGVyZSB0byBsb29rIHVwCi0vLyB0ZXN0IHBhcnQgcmVzdWx0
cywgd2hhdCB0eXBlIG9mIGZhaWx1cmUgd2UgZXhwZWN0LCBhbmQgd2hhdAotLy8gc3Vic3RyaW5n
IHRoZSBmYWlsdXJlIG1lc3NhZ2Ugc2hvdWxkIGNvbnRhaW4uCi1TaW5nbGVGYWlsdXJlQ2hlY2tl
cjo6U2luZ2xlRmFpbHVyZUNoZWNrZXIoY29uc3QgVGVzdFBhcnRSZXN1bHRBcnJheSogcmVzdWx0
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0UGFydFJl
c3VsdDo6VHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdWJzdHIpCi0gICAgOiByZXN1bHRzXyhyZXN1bHRzKSwg
dHlwZV8odHlwZSksIHN1YnN0cl8oc3Vic3RyKSB7fQotCi0vLyBUaGUgZGVzdHJ1Y3RvciBvZiBT
aW5nbGVGYWlsdXJlQ2hlY2tlciB2ZXJpZmllcyB0aGF0IHRoZSBnaXZlbgotLy8gVGVzdFBhcnRS
ZXN1bHRBcnJheSBjb250YWlucyBleGFjdGx5IG9uZSBmYWlsdXJlIHRoYXQgaGFzIHRoZSBnaXZl
bgotLy8gdHlwZSBhbmQgY29udGFpbnMgdGhlIGdpdmVuIHN1YnN0cmluZy4gIElmIHRoYXQncyBu
b3QgdGhlIGNhc2UsIGEKLS8vIG5vbi1mYXRhbCBmYWlsdXJlIHdpbGwgYmUgZ2VuZXJhdGVkLgot
U2luZ2xlRmFpbHVyZUNoZWNrZXI6On5TaW5nbGVGYWlsdXJlQ2hlY2tlcigpIHsKLSAgRVhQRUNU
X1BSRURfRk9STUFUMyhIYXNPbmVGYWlsdXJlLCAqcmVzdWx0c18sIHR5cGVfLCBzdWJzdHJfKTsK
LX0KLQotRGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI6OkRlZmF1bHRHbG9iYWxU
ZXN0UGFydFJlc3VsdFJlcG9ydGVyKAotICAgIFVuaXRUZXN0SW1wbCogdW5pdF90ZXN0KSA6IHVu
aXRfdGVzdF8odW5pdF90ZXN0KSB7fQotCi12b2lkIERlZmF1bHRHbG9iYWxUZXN0UGFydFJlc3Vs
dFJlcG9ydGVyOjpSZXBvcnRUZXN0UGFydFJlc3VsdCgKLSAgICBjb25zdCBUZXN0UGFydFJlc3Vs
dCYgcmVzdWx0KSB7Ci0gIHVuaXRfdGVzdF8tPmN1cnJlbnRfdGVzdF9yZXN1bHQoKS0+QWRkVGVz
dFBhcnRSZXN1bHQocmVzdWx0KTsKLSAgdW5pdF90ZXN0Xy0+bGlzdGVuZXJzKCktPnJlcGVhdGVy
KCktPk9uVGVzdFBhcnRSZXN1bHQocmVzdWx0KTsKLX0KLQotRGVmYXVsdFBlclRocmVhZFRlc3RQ
YXJ0UmVzdWx0UmVwb3J0ZXI6OkRlZmF1bHRQZXJUaHJlYWRUZXN0UGFydFJlc3VsdFJlcG9ydGVy
KAotICAgIFVuaXRUZXN0SW1wbCogdW5pdF90ZXN0KSA6IHVuaXRfdGVzdF8odW5pdF90ZXN0KSB7
fQotCi12b2lkIERlZmF1bHRQZXJUaHJlYWRUZXN0UGFydFJlc3VsdFJlcG9ydGVyOjpSZXBvcnRU
ZXN0UGFydFJlc3VsdCgKLSAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSB7Ci0gIHVu
aXRfdGVzdF8tPkdldEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoKS0+UmVwb3J0VGVzdFBh
cnRSZXN1bHQocmVzdWx0KTsKLX0KLQotLy8gUmV0dXJucyB0aGUgZ2xvYmFsIHRlc3QgcGFydCBy
ZXN1bHQgcmVwb3J0ZXIuCi1UZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlKgotVW5pdFRl
c3RJbXBsOjpHZXRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyKCkgewotICBpbnRlcm5hbDo6
TXV0ZXhMb2NrIGxvY2soJmdsb2JhbF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyX211dGV4Xyk7
Ci0gIHJldHVybiBnbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvdGVyXzsKLX0KLQotLy8gU2V0
cyB0aGUgZ2xvYmFsIHRlc3QgcGFydCByZXN1bHQgcmVwb3J0ZXIuCi12b2lkIFVuaXRUZXN0SW1w
bDo6U2V0R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRlcigKLSAgICBUZXN0UGFydFJlc3VsdFJl
cG9ydGVySW50ZXJmYWNlKiByZXBvcnRlcikgewotICBpbnRlcm5hbDo6TXV0ZXhMb2NrIGxvY2so
Jmdsb2JhbF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyX211dGV4Xyk7Ci0gIGdsb2JhbF90ZXN0
X3BhcnRfcmVzdWx0X3JlcG90ZXJfID0gcmVwb3J0ZXI7Ci19Ci0KLS8vIFJldHVybnMgdGhlIHRl
c3QgcGFydCByZXN1bHQgcmVwb3J0ZXIgZm9yIHRoZSBjdXJyZW50IHRocmVhZC4KLVRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UqCi1Vbml0VGVzdEltcGw6OkdldFRlc3RQYXJ0UmVzdWx0
UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKCkgewotICByZXR1cm4gcGVyX3RocmVhZF90ZXN0X3Bh
cnRfcmVzdWx0X3JlcG9ydGVyXy5nZXQoKTsKLX0KLQotLy8gU2V0cyB0aGUgdGVzdCBwYXJ0IHJl
c3VsdCByZXBvcnRlciBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkLgotdm9pZCBVbml0VGVzdEltcGw6
OlNldFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKAotICAgIFRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UqIHJlcG9ydGVyKSB7Ci0gIHBlcl90aHJlYWRfdGVzdF9w
YXJ0X3Jlc3VsdF9yZXBvcnRlcl8uc2V0KHJlcG9ydGVyKTsKLX0KLQotLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVzdEltcGw6OnN1Y2Nlc3Nm
dWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0X2Nhc2Vz
XywgVGVzdENhc2VQYXNzZWQpOwotfQotCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRl
c3QgY2FzZXMuCi1pbnQgVW5pdFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29u
c3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0X2Nhc2VzXywgVGVzdENhc2VGYWlsZWQpOwotfQot
Ci0vLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3QgY2FzZXMuCi1pbnQgVW5pdFRlc3RJbXBs
Ojp0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQ+KHRlc3RfY2FzZXNfLnNpemUoKSk7Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwg
dGVzdCBjYXNlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRlc3QKLS8vIHRoYXQgc2hvdWxk
IHJ1bi4KLWludCBVbml0VGVzdEltcGw6OnRlc3RfY2FzZV90b19ydW5fY291bnQoKSBjb25zdCB7
Ci0gIHJldHVybiBDb3VudElmKHRlc3RfY2FzZXNfLCBTaG91bGRSdW5UZXN0Q2FzZSk7Ci19Ci0K
LS8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3RzLgotaW50IFVuaXRUZXN0SW1w
bDo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RD
YXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RDYXNlOjpzdWNjZXNzZnVsX3Rlc3RfY291bnQpOwot
fQotCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgotaW50IFVuaXRUZXN0SW1w
bDo6ZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VM
aXN0KHRlc3RfY2FzZXNfLCAmVGVzdENhc2U6OmZhaWxlZF90ZXN0X2NvdW50KTsKLX0KLQotLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIGRpc2FibGVkIHRlc3RzIHRoYXQgd2lsbCBiZSByZXBvcnRlZCBp
biB0aGUgWE1MIHJlcG9ydC4KLWludCBVbml0VGVzdEltcGw6OnJlcG9ydGFibGVfZGlzYWJsZWRf
dGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9j
YXNlc18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUZXN0Q2FzZTo6cmVwb3J0YWJs
ZV9kaXNhYmxlZF90ZXN0X2NvdW50KTsKLX0KLQotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGRpc2Fi
bGVkIHRlc3RzLgotaW50IFVuaXRUZXN0SW1wbDo6ZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0
IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2FzZTo6
ZGlzYWJsZWRfdGVzdF9jb3VudCk7Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0
byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFVuaXRUZXN0SW1wbDo6cmVwb3J0
YWJsZV90ZXN0X2NvdW50KCkgY29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0
ZXN0X2Nhc2VzXywgJlRlc3RDYXNlOjpyZXBvcnRhYmxlX3Rlc3RfY291bnQpOwotfQotCi0vLyBH
ZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3RzLgotaW50IFVuaXRUZXN0SW1wbDo6dG90YWxfdGVz
dF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNl
c18sICZUZXN0Q2FzZTo6dG90YWxfdGVzdF9jb3VudCk7Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJl
ciBvZiB0ZXN0cyB0aGF0IHNob3VsZCBydW4uCi1pbnQgVW5pdFRlc3RJbXBsOjp0ZXN0X3RvX3J1
bl9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNl
c18sICZUZXN0Q2FzZTo6dGVzdF90b19ydW5fY291bnQpOwotfQotCi0vLyBSZXR1cm5zIHRoZSBj
dXJyZW50IE9TIHN0YWNrIHRyYWNlIGFzIGFuIHN0ZDo6c3RyaW5nLgotLy8KLS8vIFRoZSBtYXhp
bXVtIG51bWJlciBvZiBzdGFjayBmcmFtZXMgdG8gYmUgaW5jbHVkZWQgaXMgc3BlY2lmaWVkIGJ5
Ci0vLyB0aGUgZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGggZmxhZy4gIFRoZSBza2lwX2NvdW50IHBh
cmFtZXRlcgotLy8gc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgdG9wIGZyYW1lcyB0byBiZSBza2lw
cGVkLCB3aGljaCBkb2Vzbid0Ci0vLyBjb3VudCBhZ2FpbnN0IHRoZSBudW1iZXIgb2YgZnJhbWVz
IHRvIGJlIGluY2x1ZGVkLgotLy8KLS8vIEZvciBleGFtcGxlLCBpZiBGb28oKSBjYWxscyBCYXIo
KSwgd2hpY2ggaW4gdHVybiBjYWxscwotLy8gQ3VycmVudE9zU3RhY2tUcmFjZUV4Y2VwdFRvcCgx
KSwgRm9vKCkgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUKLS8vIHRyYWNlIGJ1dCBCYXIoKSBhbmQg
Q3VycmVudE9zU3RhY2tUcmFjZUV4Y2VwdFRvcCgpIHdvbid0Lgotc3RkOjpzdHJpbmcgVW5pdFRl
c3RJbXBsOjpDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9wKGludCBza2lwX2NvdW50KSB7Ci0g
IHJldHVybiBvc19zdGFja190cmFjZV9nZXR0ZXIoKS0+Q3VycmVudFN0YWNrVHJhY2UoCi0gICAg
ICBzdGF0aWNfY2FzdDxpbnQ+KEdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpKSwKLSAgICAg
IHNraXBfY291bnQgKyAxCi0gICAgICAvLyBTa2lwcyB0aGUgdXNlci1zcGVjaWZpZWQgbnVtYmVy
IG9mIGZyYW1lcyBwbHVzIHRoaXMgZnVuY3Rpb24KLSAgICAgIC8vIGl0c2VsZi4KLSAgICAgICk7
ICAvLyBOT0xJTlQKLX0KLQotLy8gUmV0dXJucyB0aGUgY3VycmVudCB0aW1lIGluIG1pbGxpc2Vj
b25kcy4KLVRpbWVJbk1pbGxpcyBHZXRUaW1lSW5NaWxsaXMoKSB7Ci0jaWYgR1RFU1RfT1NfV0lO
RE9XU19NT0JJTEUgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIC8vIERpZmZlcmVuY2UgYmV0
d2VlbiAxOTcwLTAxLTAxIGFuZCAxNjAxLTAxLTAxIGluIG1pbGxpc2Vjb25kcy4KLSAgLy8gaHR0
cDovL2FuYWxvZ291cy5ibG9nc3BvdC5jb20vMjAwNS8wNC9lcG9jaC5odG1sCi0gIGNvbnN0IFRp
bWVJbk1pbGxpcyBrSmF2YUVwb2NoVG9XaW5GaWxlVGltZURlbHRhID0KLSAgICBzdGF0aWNfY2Fz
dDxUaW1lSW5NaWxsaXM+KDExNjQ0NDczNlVMKSAqIDEwMDAwMFVMOwotICBjb25zdCBEV09SRCBr
VGVudGhNaWNyb3NJbk1pbGxpU2Vjb25kID0gMTAwMDA7Ci0KLSAgU1lTVEVNVElNRSBub3dfc3lz
dGltZTsKLSAgRklMRVRJTUUgbm93X2ZpbGV0aW1lOwotICBVTEFSR0VfSU5URUdFUiBub3dfaW50
NjQ7Ci0gIC8vIFRPRE8oa2VudG9uQGdvb2dsZS5jb20pOiBTaG91bGRuJ3QgdGhpcyBqdXN0IHVz
ZQotICAvLyAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCk/Ci0gIEdldFN5c3RlbVRpbWUoJm5v
d19zeXN0aW1lKTsKLSAgaWYgKFN5c3RlbVRpbWVUb0ZpbGVUaW1lKCZub3dfc3lzdGltZSwgJm5v
d19maWxldGltZSkpIHsKLSAgICBub3dfaW50NjQuTG93UGFydCA9IG5vd19maWxldGltZS5kd0xv
d0RhdGVUaW1lOwotICAgIG5vd19pbnQ2NC5IaWdoUGFydCA9IG5vd19maWxldGltZS5kd0hpZ2hE
YXRlVGltZTsKLSAgICBub3dfaW50NjQuUXVhZFBhcnQgPSAobm93X2ludDY0LlF1YWRQYXJ0IC8g
a1RlbnRoTWljcm9zSW5NaWxsaVNlY29uZCkgLQotICAgICAga0phdmFFcG9jaFRvV2luRmlsZVRp
bWVEZWx0YTsKLSAgICByZXR1cm4gbm93X2ludDY0LlF1YWRQYXJ0OwotICB9Ci0gIHJldHVybiAw
OwotI2VsaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8KLSAg
X190aW1lYjY0IG5vdzsKLQotICAvLyBNU1ZDIDggZGVwcmVjYXRlcyBfZnRpbWU2NCgpLCBzbyB3
ZSB3YW50IHRvIHN1cHByZXNzIHdhcm5pbmcgNDk5NgotICAvLyAoZGVwcmVjYXRlZCBmdW5jdGlv
bikgdGhlcmUuCi0gIC8vIFRPRE8oa2VudG9uQGdvb2dsZS5jb20pOiBVc2UgR2V0VGlja0NvdW50
KCk/ICBPciB1c2UKLSAgLy8gICBTeXN0ZW1UaW1lVG9GaWxlVGltZSgpCi0gIEdURVNUX0RJU0FC
TEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQ5OTYpCi0gIF9mdGltZTY0KCZub3cpOwotICBHVEVTVF9E
SVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLQotICByZXR1cm4gc3RhdGljX2Nhc3Q8VGltZUlu
TWlsbGlzPihub3cudGltZSkgKiAxMDAwICsgbm93Lm1pbGxpdG07Ci0jZWxpZiBHVEVTVF9IQVNf
R0VUVElNRU9GREFZXwotICBzdHJ1Y3QgdGltZXZhbCBub3c7Ci0gIGdldHRpbWVvZmRheSgmbm93
LCBOVUxMKTsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PFRpbWVJbk1pbGxpcz4obm93LnR2X3NlYykg
KiAxMDAwICsgbm93LnR2X3VzZWMgLyAxMDAwOwotI2Vsc2UKLSMgZXJyb3IgIkRvbid0IGtub3cg
aG93IHRvIGdldCB0aGUgY3VycmVudCB0aW1lIG9uIHlvdXIgc3lzdGVtLiIKLSNlbmRpZgotfQot
Ci0vLyBVdGlsaXRpZXMKLQotLy8gY2xhc3MgU3RyaW5nLgotCi0jaWYgR1RFU1RfT1NfV0lORE9X
U19NT0JJTEUKLS8vIENyZWF0ZXMgYSBVVEYtMTYgd2lkZSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4g
QU5TSSBzdHJpbmcsIGFsbG9jYXRpbmcKLS8vIG1lbW9yeSB1c2luZyBuZXcuIFRoZSBjYWxsZXIg
aXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSByZXR1cm4KLS8vIHZhbHVlIHVzaW5nIGRl
bGV0ZVtdLiBSZXR1cm5zIHRoZSB3aWRlIHN0cmluZywgb3IgTlVMTCBpZiB0aGUKLS8vIGlucHV0
IGlzIE5VTEwuCi1MUENXU1RSIFN0cmluZzo6QW5zaVRvVXRmMTYoY29uc3QgY2hhciogYW5zaSkg
ewotICBpZiAoIWFuc2kpIHJldHVybiBOVUxMOwotICBjb25zdCBpbnQgbGVuZ3RoID0gc3RybGVu
KGFuc2kpOwotICBjb25zdCBpbnQgdW5pY29kZV9sZW5ndGggPQotICAgICAgTXVsdGlCeXRlVG9X
aWRlQ2hhcihDUF9BQ1AsIDAsIGFuc2ksIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCwgMCk7Ci0gIFdDSEFSKiB1bmljb2RlID0gbmV3IFdDSEFSW3VuaWNvZGVfbGVuZ3Ro
ICsgMV07Ci0gIE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBhbnNpLCBsZW5ndGgsCi0g
ICAgICAgICAgICAgICAgICAgICAgdW5pY29kZSwgdW5pY29kZV9sZW5ndGgpOwotICB1bmljb2Rl
W3VuaWNvZGVfbGVuZ3RoXSA9IDA7Ci0gIHJldHVybiB1bmljb2RlOwotfQotCi0vLyBDcmVhdGVz
IGFuIEFOU0kgc3RyaW5nIGZyb20gdGhlIGdpdmVuIHdpZGUgc3RyaW5nLCBhbGxvY2F0aW5nCi0v
LyBtZW1vcnkgdXNpbmcgbmV3LiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGlu
ZyB0aGUgcmV0dXJuCi0vLyB2YWx1ZSB1c2luZyBkZWxldGVbXS4gUmV0dXJucyB0aGUgQU5TSSBz
dHJpbmcsIG9yIE5VTEwgaWYgdGhlCi0vLyBpbnB1dCBpcyBOVUxMLgotY29uc3QgY2hhciogU3Ry
aW5nOjpVdGYxNlRvQW5zaShMUENXU1RSIHV0ZjE2X3N0cikgIHsKLSAgaWYgKCF1dGYxNl9zdHIp
IHJldHVybiBOVUxMOwotICBjb25zdCBpbnQgYW5zaV9sZW5ndGggPQotICAgICAgV2lkZUNoYXJU
b011bHRpQnl0ZShDUF9BQ1AsIDAsIHV0ZjE2X3N0ciwgLTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsIDAsIE5VTEwsIE5VTEwpOwotICBjaGFyKiBhbnNpID0gbmV3IGNoYXJbYW5z
aV9sZW5ndGggKyAxXTsKLSAgV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIHV0ZjE2X3N0
ciwgLTEsCi0gICAgICAgICAgICAgICAgICAgICAgYW5zaSwgYW5zaV9sZW5ndGgsIE5VTEwsIE5V
TEwpOwotICBhbnNpW2Fuc2lfbGVuZ3RoXSA9IDA7Ci0gIHJldHVybiBhbnNpOwotfQotCi0jZW5k
aWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0KLS8vIENvbXBhcmVzIHR3byBDIHN0cmlu
Z3MuICBSZXR1cm5zIHRydWUgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgotLy8KLS8v
IFVubGlrZSBzdHJjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQo
cykuICBBIE5VTEwKLS8vIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBu
b24tTlVMTCBDIHN0cmluZywKLS8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgotYm9vbCBT
dHJpbmc6OkNTdHJpbmdFcXVhbHMoY29uc3QgY2hhciAqIGxocywgY29uc3QgY2hhciAqIHJocykg
ewotICBpZiAoIGxocyA9PSBOVUxMICkgcmV0dXJuIHJocyA9PSBOVUxMOwotCi0gIGlmICggcmhz
ID09IE5VTEwgKSByZXR1cm4gZmFsc2U7Ci0KLSAgcmV0dXJuIHN0cmNtcChsaHMsIHJocykgPT0g
MDsKLX0KLQotI2lmIEdURVNUX0hBU19TVERfV1NUUklORyB8fCBHVEVTVF9IQVNfR0xPQkFMX1dT
VFJJTkcKLQotLy8gQ29udmVydHMgYW4gYXJyYXkgb2Ygd2lkZSBjaGFycyB0byBhIG5hcnJvdyBz
dHJpbmcgdXNpbmcgdGhlIFVURi04Ci0vLyBlbmNvZGluZywgYW5kIHN0cmVhbXMgdGhlIHJlc3Vs
dCB0byB0aGUgZ2l2ZW4gTWVzc2FnZSBvYmplY3QuCi1zdGF0aWMgdm9pZCBTdHJlYW1XaWRlQ2hh
cnNUb01lc3NhZ2UoY29uc3Qgd2NoYXJfdCogd3N0ciwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlKiBtc2cpIHsKLSAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgIT0gbGVuZ3RoOyApIHsgIC8vIE5PTElOVAotICAgIGlmICh3c3RyW2ldICE9
IEwnXDAnKSB7Ci0gICAgICAqbXNnIDw8IFdpZGVTdHJpbmdUb1V0Zjgod3N0ciArIGksIHN0YXRp
Y19jYXN0PGludD4obGVuZ3RoIC0gaSkpOwotICAgICAgd2hpbGUgKGkgIT0gbGVuZ3RoICYmIHdz
dHJbaV0gIT0gTCdcMCcpCi0gICAgICAgIGkrKzsKLSAgICB9IGVsc2UgewotICAgICAgKm1zZyA8
PCAnXDAnOwotICAgICAgaSsrOwotICAgIH0KLSAgfQotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hB
U19TVERfV1NUUklORyB8fCBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLQotdm9pZCBTcGxpdFN0
cmluZyhjb25zdCA6OnN0ZDo6c3RyaW5nJiBzdHIsIGNoYXIgZGVsaW1pdGVyLAotICAgICAgICAg
ICAgICAgICA6OnN0ZDo6dmVjdG9yPCA6OnN0ZDo6c3RyaW5nPiogZGVzdCkgewotICA6OnN0ZDo6
dmVjdG9yPCA6OnN0ZDo6c3RyaW5nPiBwYXJzZWQ7Ci0gIDo6c3RkOjpzdHJpbmc6OnNpemVfdHlw
ZSBwb3MgPSAwOwotICB3aGlsZSAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1ZSgpKSB7
Ci0gICAgY29uc3QgOjpzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGNvbG9uID0gc3RyLmZpbmQoZGVs
aW1pdGVyLCBwb3MpOwotICAgIGlmIChjb2xvbiA9PSA6OnN0ZDo6c3RyaW5nOjpucG9zKSB7Ci0g
ICAgICBwYXJzZWQucHVzaF9iYWNrKHN0ci5zdWJzdHIocG9zKSk7Ci0gICAgICBicmVhazsKLSAg
ICB9IGVsc2UgewotICAgICAgcGFyc2VkLnB1c2hfYmFjayhzdHIuc3Vic3RyKHBvcywgY29sb24g
LSBwb3MpKTsKLSAgICAgIHBvcyA9IGNvbG9uICsgMTsKLSAgICB9Ci0gIH0KLSAgZGVzdC0+c3dh
cChwYXJzZWQpOwotfQotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLQotLy8gQ29uc3RydWN0
cyBhbiBlbXB0eSBNZXNzYWdlLgotLy8gV2UgYWxsb2NhdGUgdGhlIHN0cmluZ3N0cmVhbSBzZXBh
cmF0ZWx5IGJlY2F1c2Ugb3RoZXJ3aXNlIGVhY2ggdXNlIG9mCi0vLyBBU1NFUlQvRVhQRUNUIGlu
IGEgcHJvY2VkdXJlIGFkZHMgb3ZlciAyMDAgYnl0ZXMgdG8gdGhlIHByb2NlZHVyZSdzCi0vLyBz
dGFjayBmcmFtZSBsZWFkaW5nIHRvIGh1Z2Ugc3RhY2sgZnJhbWVzIGluIHNvbWUgY2FzZXM7IGdj
YyBkb2VzIG5vdCByZXVzZQotLy8gdGhlIHN0YWNrIHNwYWNlLgotTWVzc2FnZTo6TWVzc2FnZSgp
IDogc3NfKG5ldyA6OnN0ZDo6c3RyaW5nc3RyZWFtKSB7Ci0gIC8vIEJ5IGRlZmF1bHQsIHdlIHdh
bnQgdGhlcmUgdG8gYmUgZW5vdWdoIHByZWNpc2lvbiB3aGVuIHByaW50aW5nCi0gIC8vIGEgZG91
YmxlIHRvIGEgTWVzc2FnZS4KLSAgKnNzXyA8PCBzdGQ6OnNldHByZWNpc2lvbihzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OmRpZ2l0czEwICsgMik7Ci19Ci0KLS8vIFRoZXNlIHR3byBvdmVy
bG9hZHMgYWxsb3cgc3RyZWFtaW5nIGEgd2lkZSBDIHN0cmluZyB0byBhIE1lc3NhZ2UKLS8vIHVz
aW5nIHRoZSBVVEYtOCBlbmNvZGluZy4KLU1lc3NhZ2UmIE1lc3NhZ2U6Om9wZXJhdG9yIDw8KGNv
bnN0IHdjaGFyX3QqIHdpZGVfY19zdHIpIHsKLSAgcmV0dXJuICp0aGlzIDw8IGludGVybmFsOjpT
dHJpbmc6OlNob3dXaWRlQ1N0cmluZyh3aWRlX2Nfc3RyKTsKLX0KLU1lc3NhZ2UmIE1lc3NhZ2U6
Om9wZXJhdG9yIDw8KHdjaGFyX3QqIHdpZGVfY19zdHIpIHsKLSAgcmV0dXJuICp0aGlzIDw8IGlu
dGVybmFsOjpTdHJpbmc6OlNob3dXaWRlQ1N0cmluZyh3aWRlX2Nfc3RyKTsKLX0KLQotI2lmIEdU
RVNUX0hBU19TVERfV1NUUklORwotLy8gQ29udmVydHMgdGhlIGdpdmVuIHdpZGUgc3RyaW5nIHRv
IGEgbmFycm93IHN0cmluZyB1c2luZyB0aGUgVVRGLTgKLS8vIGVuY29kaW5nLCBhbmQgc3RyZWFt
cyB0aGUgcmVzdWx0IHRvIHRoaXMgTWVzc2FnZSBvYmplY3QuCi1NZXNzYWdlJiBNZXNzYWdlOjpv
cGVyYXRvciA8PChjb25zdCA6OnN0ZDo6d3N0cmluZyYgd3N0cikgewotICBpbnRlcm5hbDo6U3Ry
ZWFtV2lkZUNoYXJzVG9NZXNzYWdlKHdzdHIuY19zdHIoKSwgd3N0ci5sZW5ndGgoKSwgdGhpcyk7
Ci0gIHJldHVybiAqdGhpczsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCi0K
LSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIENvbnZlcnRzIHRoZSBnaXZlbiB3aWRl
IHN0cmluZyB0byBhIG5hcnJvdyBzdHJpbmcgdXNpbmcgdGhlIFVURi04Ci0vLyBlbmNvZGluZywg
YW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotTWVzc2FnZSYg
TWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjp3c3RyaW5nJiB3c3RyKSB7Ci0gIGludGVybmFs
OjpTdHJlYW1XaWRlQ2hhcnNUb01lc3NhZ2Uod3N0ci5jX3N0cigpLCB3c3RyLmxlbmd0aCgpLCB0
aGlzKTsKLSAgcmV0dXJuICp0aGlzOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dT
VFJJTkcKLQotLy8gR2V0cyB0aGUgdGV4dCBzdHJlYW1lZCB0byB0aGlzIG9iamVjdCBzbyBmYXIg
YXMgYW4gc3RkOjpzdHJpbmcuCi0vLyBFYWNoICdcMCcgY2hhcmFjdGVyIGluIHRoZSBidWZmZXIg
aXMgcmVwbGFjZWQgd2l0aCAiXFwwIi4KLXN0ZDo6c3RyaW5nIE1lc3NhZ2U6OkdldFN0cmluZygp
IGNvbnN0IHsKLSAgcmV0dXJuIGludGVybmFsOjpTdHJpbmdTdHJlYW1Ub1N0cmluZyhzc18uZ2V0
KCkpOwotfQotCi0vLyBBc3NlcnRpb25SZXN1bHQgY29uc3RydWN0b3JzLgotLy8gVXNlZCBpbiBF
WFBFQ1RfVFJVRS9GQUxTRShhc3NlcnRpb25fcmVzdWx0KS4KLUFzc2VydGlvblJlc3VsdDo6QXNz
ZXJ0aW9uUmVzdWx0KGNvbnN0IEFzc2VydGlvblJlc3VsdCYgb3RoZXIpCi0gICAgOiBzdWNjZXNz
XyhvdGhlci5zdWNjZXNzXyksCi0gICAgICBtZXNzYWdlXyhvdGhlci5tZXNzYWdlXy5nZXQoKSAh
PSBOVUxMID8KLSAgICAgICAgICAgICAgIG5ldyA6OnN0ZDo6c3RyaW5nKCpvdGhlci5tZXNzYWdl
XykgOgotICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8IDo6c3RkOjpzdHJpbmcqPihOVUxMKSkg
ewotfQotCi0vLyBTd2FwcyB0d28gQXNzZXJ0aW9uUmVzdWx0cy4KLXZvaWQgQXNzZXJ0aW9uUmVz
dWx0Ojpzd2FwKEFzc2VydGlvblJlc3VsdCYgb3RoZXIpIHsKLSAgdXNpbmcgc3RkOjpzd2FwOwot
ICBzd2FwKHN1Y2Nlc3NfLCBvdGhlci5zdWNjZXNzXyk7Ci0gIHN3YXAobWVzc2FnZV8sIG90aGVy
Lm1lc3NhZ2VfKTsKLX0KLQotLy8gUmV0dXJucyB0aGUgYXNzZXJ0aW9uJ3MgbmVnYXRpb24uIFVz
ZWQgd2l0aCBFWFBFQ1QvQVNTRVJUX0ZBTFNFLgotQXNzZXJ0aW9uUmVzdWx0IEFzc2VydGlvblJl
c3VsdDo6b3BlcmF0b3IhKCkgY29uc3QgewotICBBc3NlcnRpb25SZXN1bHQgbmVnYXRpb24oIXN1
Y2Nlc3NfKTsKLSAgaWYgKG1lc3NhZ2VfLmdldCgpICE9IE5VTEwpCi0gICAgbmVnYXRpb24gPDwg
Km1lc3NhZ2VfOwotICByZXR1cm4gbmVnYXRpb247Ci19Ci0KLS8vIE1ha2VzIGEgc3VjY2Vzc2Z1
bCBhc3NlcnRpb24gcmVzdWx0LgotQXNzZXJ0aW9uUmVzdWx0IEFzc2VydGlvblN1Y2Nlc3MoKSB7
Ci0gIHJldHVybiBBc3NlcnRpb25SZXN1bHQodHJ1ZSk7Ci19Ci0KLS8vIE1ha2VzIGEgZmFpbGVk
IGFzc2VydGlvbiByZXN1bHQuCi1Bc3NlcnRpb25SZXN1bHQgQXNzZXJ0aW9uRmFpbHVyZSgpIHsK
LSAgcmV0dXJuIEFzc2VydGlvblJlc3VsdChmYWxzZSk7Ci19Ci0KLS8vIE1ha2VzIGEgZmFpbGVk
IGFzc2VydGlvbiByZXN1bHQgd2l0aCB0aGUgZ2l2ZW4gZmFpbHVyZSBtZXNzYWdlLgotLy8gRGVw
cmVjYXRlZDsgdXNlIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBtZXNzYWdlLgotQXNzZXJ0aW9uUmVz
dWx0IEFzc2VydGlvbkZhaWx1cmUoY29uc3QgTWVzc2FnZSYgbWVzc2FnZSkgewotICByZXR1cm4g
QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG1lc3NhZ2U7Ci19Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7
Ci0KLW5hbWVzcGFjZSBlZGl0X2Rpc3RhbmNlIHsKLXN0ZDo6dmVjdG9yPEVkaXRUeXBlPiBDYWxj
dWxhdGVPcHRpbWFsRWRpdHMoY29uc3Qgc3RkOjp2ZWN0b3I8c2l6ZV90PiYgbGVmdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8
c2l6ZV90PiYgcmlnaHQpIHsKLSAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8ZG91YmxlPiA+IGNv
c3RzKAotICAgICAgbGVmdC5zaXplKCkgKyAxLCBzdGQ6OnZlY3Rvcjxkb3VibGU+KHJpZ2h0LnNp
emUoKSArIDEpKTsKLSAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8RWRpdFR5cGU+ID4gYmVzdF9t
b3ZlKAotICAgICAgbGVmdC5zaXplKCkgKyAxLCBzdGQ6OnZlY3RvcjxFZGl0VHlwZT4ocmlnaHQu
c2l6ZSgpICsgMSkpOwotCi0gIC8vIFBvcHVsYXRlIGZvciBlbXB0eSByaWdodC4KLSAgZm9yIChz
aXplX3QgbF9pID0gMDsgbF9pIDwgY29zdHMuc2l6ZSgpOyArK2xfaSkgewotICAgIGNvc3RzW2xf
aV1bMF0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KGxfaSk7Ci0gICAgYmVzdF9tb3ZlW2xfaV1bMF0g
PSBrUmVtb3ZlOwotICB9Ci0gIC8vIFBvcHVsYXRlIGZvciBlbXB0eSBsZWZ0LgotICBmb3IgKHNp
emVfdCByX2kgPSAxOyByX2kgPCBjb3N0c1swXS5zaXplKCk7ICsrcl9pKSB7Ci0gICAgY29zdHNb
MF1bcl9pXSA9IHN0YXRpY19jYXN0PGRvdWJsZT4ocl9pKTsKLSAgICBiZXN0X21vdmVbMF1bcl9p
XSA9IGtBZGQ7Ci0gIH0KLQotICBmb3IgKHNpemVfdCBsX2kgPSAwOyBsX2kgPCBsZWZ0LnNpemUo
KTsgKytsX2kpIHsKLSAgICBmb3IgKHNpemVfdCByX2kgPSAwOyByX2kgPCByaWdodC5zaXplKCk7
ICsrcl9pKSB7Ci0gICAgICBpZiAobGVmdFtsX2ldID09IHJpZ2h0W3JfaV0pIHsKLSAgICAgICAg
Ly8gRm91bmQgYSBtYXRjaC4gQ29uc3VtZSBpdC4KLSAgICAgICAgY29zdHNbbF9pICsgMV1bcl9p
ICsgMV0gPSBjb3N0c1tsX2ldW3JfaV07Ci0gICAgICAgIGJlc3RfbW92ZVtsX2kgKyAxXVtyX2kg
KyAxXSA9IGtNYXRjaDsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0KLSAgICAgIGNvbnN0
IGRvdWJsZSBhZGQgPSBjb3N0c1tsX2kgKyAxXVtyX2ldOwotICAgICAgY29uc3QgZG91YmxlIHJl
bW92ZSA9IGNvc3RzW2xfaV1bcl9pICsgMV07Ci0gICAgICBjb25zdCBkb3VibGUgcmVwbGFjZSA9
IGNvc3RzW2xfaV1bcl9pXTsKLSAgICAgIGlmIChhZGQgPCByZW1vdmUgJiYgYWRkIDwgcmVwbGFj
ZSkgewotICAgICAgICBjb3N0c1tsX2kgKyAxXVtyX2kgKyAxXSA9IGFkZCArIDE7Ci0gICAgICAg
IGJlc3RfbW92ZVtsX2kgKyAxXVtyX2kgKyAxXSA9IGtBZGQ7Ci0gICAgICB9IGVsc2UgaWYgKHJl
bW92ZSA8IGFkZCAmJiByZW1vdmUgPCByZXBsYWNlKSB7Ci0gICAgICAgIGNvc3RzW2xfaSArIDFd
W3JfaSArIDFdID0gcmVtb3ZlICsgMTsKLSAgICAgICAgYmVzdF9tb3ZlW2xfaSArIDFdW3JfaSAr
IDFdID0ga1JlbW92ZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIG1ha2UgcmVwbGFj
ZSBhIGxpdHRsZSBtb3JlIGV4cGVuc2l2ZSB0aGFuIGFkZC9yZW1vdmUgdG8gbG93ZXIKLSAgICAg
ICAgLy8gdGhlaXIgcHJpb3JpdHkuCi0gICAgICAgIGNvc3RzW2xfaSArIDFdW3JfaSArIDFdID0g
cmVwbGFjZSArIDEuMDAwMDE7Ci0gICAgICAgIGJlc3RfbW92ZVtsX2kgKyAxXVtyX2kgKyAxXSA9
IGtSZXBsYWNlOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIC8vIFJlY29uc3RydWN0IHRoZSBi
ZXN0IHBhdGguIFdlIGRvIGl0IGluIHJldmVyc2Ugb3JkZXIuCi0gIHN0ZDo6dmVjdG9yPEVkaXRU
eXBlPiBiZXN0X3BhdGg7Ci0gIGZvciAoc2l6ZV90IGxfaSA9IGxlZnQuc2l6ZSgpLCByX2kgPSBy
aWdodC5zaXplKCk7IGxfaSA+IDAgfHwgcl9pID4gMDspIHsKLSAgICBFZGl0VHlwZSBtb3ZlID0g
YmVzdF9tb3ZlW2xfaV1bcl9pXTsKLSAgICBiZXN0X3BhdGgucHVzaF9iYWNrKG1vdmUpOwotICAg
IGxfaSAtPSBtb3ZlICE9IGtBZGQ7Ci0gICAgcl9pIC09IG1vdmUgIT0ga1JlbW92ZTsKLSAgfQot
ICBzdGQ6OnJldmVyc2UoYmVzdF9wYXRoLmJlZ2luKCksIGJlc3RfcGF0aC5lbmQoKSk7Ci0gIHJl
dHVybiBiZXN0X3BhdGg7Ci19Ci0KLW5hbWVzcGFjZSB7Ci0KLS8vIEhlbHBlciBjbGFzcyB0byBj
b252ZXJ0IHN0cmluZyBpbnRvIGlkcyB3aXRoIGRlZHVwbGljYXRpb24uCi1jbGFzcyBJbnRlcm5h
bFN0cmluZ3MgewotIHB1YmxpYzoKLSAgc2l6ZV90IEdldElkKGNvbnN0IHN0ZDo6c3RyaW5nJiBz
dHIpIHsKLSAgICBJZE1hcDo6aXRlcmF0b3IgaXQgPSBpZHNfLmZpbmQoc3RyKTsKLSAgICBpZiAo
aXQgIT0gaWRzXy5lbmQoKSkgcmV0dXJuIGl0LT5zZWNvbmQ7Ci0gICAgc2l6ZV90IGlkID0gaWRz
Xy5zaXplKCk7Ci0gICAgcmV0dXJuIGlkc19bc3RyXSA9IGlkOwotICB9Ci0KLSBwcml2YXRlOgot
ICB0eXBlZGVmIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzaXplX3Q+IElkTWFwOwotICBJZE1hcCBp
ZHNfOwotfTsKLQotfSAgLy8gbmFtZXNwYWNlCi0KLXN0ZDo6dmVjdG9yPEVkaXRUeXBlPiBDYWxj
dWxhdGVPcHRpbWFsRWRpdHMoCi0gICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBs
ZWZ0LAotICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgcmlnaHQpIHsKLSAgc3Rk
Ojp2ZWN0b3I8c2l6ZV90PiBsZWZ0X2lkcywgcmlnaHRfaWRzOwotICB7Ci0gICAgSW50ZXJuYWxT
dHJpbmdzIGludGVybl90YWJsZTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlZnQuc2l6
ZSgpOyArK2kpIHsKLSAgICAgIGxlZnRfaWRzLnB1c2hfYmFjayhpbnRlcm5fdGFibGUuR2V0SWQo
bGVmdFtpXSkpOwotICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJpZ2h0LnNpemUo
KTsgKytpKSB7Ci0gICAgICByaWdodF9pZHMucHVzaF9iYWNrKGludGVybl90YWJsZS5HZXRJZChy
aWdodFtpXSkpOwotICAgIH0KLSAgfQotICByZXR1cm4gQ2FsY3VsYXRlT3B0aW1hbEVkaXRzKGxl
ZnRfaWRzLCByaWdodF9pZHMpOwotfQotCi1uYW1lc3BhY2UgewotCi0vLyBIZWxwZXIgY2xhc3Mg
dGhhdCBob2xkcyB0aGUgc3RhdGUgZm9yIG9uZSBodW5rIGFuZCBwcmludHMgaXQgb3V0IHRvIHRo
ZQotLy8gc3RyZWFtLgotLy8gSXQgcmVvcmRlcnMgYWRkcy9yZW1vdmVzIHdoZW4gcG9zc2libGUg
dG8gZ3JvdXAgYWxsIHJlbW92ZXMgYmVmb3JlIGFsbAotLy8gYWRkcy4gSXQgYWxzbyBhZGRzIHRo
ZSBodW5rIGhlYWRlciBiZWZvcmUgcHJpbnRpbnQgaW50byB0aGUgc3RyZWFtLgotY2xhc3MgSHVu
ayB7Ci0gcHVibGljOgotICBIdW5rKHNpemVfdCBsZWZ0X3N0YXJ0LCBzaXplX3QgcmlnaHRfc3Rh
cnQpCi0gICAgICA6IGxlZnRfc3RhcnRfKGxlZnRfc3RhcnQpLAotICAgICAgICByaWdodF9zdGFy
dF8ocmlnaHRfc3RhcnQpLAotICAgICAgICBhZGRzXygpLAotICAgICAgICByZW1vdmVzXygpLAot
ICAgICAgICBjb21tb25fKCkge30KLQotICB2b2lkIFB1c2hMaW5lKGNoYXIgZWRpdCwgY29uc3Qg
Y2hhciogbGluZSkgewotICAgIHN3aXRjaCAoZWRpdCkgewotICAgICAgY2FzZSAnICc6Ci0gICAg
ICAgICsrY29tbW9uXzsKLSAgICAgICAgRmx1c2hFZGl0cygpOwotICAgICAgICBodW5rXy5wdXNo
X2JhY2soc3RkOjptYWtlX3BhaXIoJyAnLCBsaW5lKSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAg
Y2FzZSAnLSc6Ci0gICAgICAgICsrcmVtb3Zlc187Ci0gICAgICAgIGh1bmtfcmVtb3Zlc18ucHVz
aF9iYWNrKHN0ZDo6bWFrZV9wYWlyKCctJywgbGluZSkpOwotICAgICAgICBicmVhazsKLSAgICAg
IGNhc2UgJysnOgotICAgICAgICArK2FkZHNfOwotICAgICAgICBodW5rX2FkZHNfLnB1c2hfYmFj
ayhzdGQ6Om1ha2VfcGFpcignKycsIGxpbmUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICB9
Ci0KLSAgdm9pZCBQcmludFRvKHN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBQcmludEhlYWRlcihv
cyk7Ci0gICAgRmx1c2hFZGl0cygpOwotICAgIGZvciAoc3RkOjpsaXN0PHN0ZDo6cGFpcjxjaGFy
LCBjb25zdCBjaGFyKj4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPQotICAgICAgICAgICAgIGh1bmtf
LmJlZ2luKCk7Ci0gICAgICAgICBpdCAhPSBodW5rXy5lbmQoKTsgKytpdCkgewotICAgICAgKm9z
IDw8IGl0LT5maXJzdCA8PCBpdC0+c2Vjb25kIDw8ICJcbiI7Ci0gICAgfQotICB9Ci0KLSAgYm9v
bCBoYXNfZWRpdHMoKSBjb25zdCB7IHJldHVybiBhZGRzXyB8fCByZW1vdmVzXzsgfQotCi0gcHJp
dmF0ZToKLSAgdm9pZCBGbHVzaEVkaXRzKCkgewotICAgIGh1bmtfLnNwbGljZShodW5rXy5lbmQo
KSwgaHVua19yZW1vdmVzXyk7Ci0gICAgaHVua18uc3BsaWNlKGh1bmtfLmVuZCgpLCBodW5rX2Fk
ZHNfKTsKLSAgfQotCi0gIC8vIFByaW50IGEgdW5pZmllZCBkaWZmIGhlYWRlciBmb3Igb25lIGh1
bmsuCi0gIC8vIFRoZSBmb3JtYXQgaXMKLSAgLy8gICAiQEAgLTxsZWZ0X3N0YXJ0Piw8bGVmdF9s
ZW5ndGg+ICs8cmlnaHRfc3RhcnQ+LDxyaWdodF9sZW5ndGg+IEBAIgotICAvLyB3aGVyZSB0aGUg
bGVmdC9yaWdodCBwYXJ0cyBhcmUgb21pdHRlZCBpZiB1bm5lY2Vzc2FyeS4KLSAgdm9pZCBQcmlu
dEhlYWRlcihzdGQ6Om9zdHJlYW0qIHNzKSBjb25zdCB7Ci0gICAgKnNzIDw8ICJAQCAiOwotICAg
IGlmIChyZW1vdmVzXykgewotICAgICAgKnNzIDw8ICItIiA8PCBsZWZ0X3N0YXJ0XyA8PCAiLCIg
PDwgKHJlbW92ZXNfICsgY29tbW9uXyk7Ci0gICAgfQotICAgIGlmIChyZW1vdmVzXyAmJiBhZGRz
XykgewotICAgICAgKnNzIDw8ICIgIjsKLSAgICB9Ci0gICAgaWYgKGFkZHNfKSB7Ci0gICAgICAq
c3MgPDwgIisiIDw8IHJpZ2h0X3N0YXJ0XyA8PCAiLCIgPDwgKGFkZHNfICsgY29tbW9uXyk7Ci0g
ICAgfQotICAgICpzcyA8PCAiIEBAXG4iOwotICB9Ci0KLSAgc2l6ZV90IGxlZnRfc3RhcnRfLCBy
aWdodF9zdGFydF87Ci0gIHNpemVfdCBhZGRzXywgcmVtb3Zlc18sIGNvbW1vbl87Ci0gIHN0ZDo6
bGlzdDxzdGQ6OnBhaXI8Y2hhciwgY29uc3QgY2hhcio+ID4gaHVua18sIGh1bmtfYWRkc18sIGh1
bmtfcmVtb3Zlc187Ci19OwotCi19ICAvLyBuYW1lc3BhY2UKLQotLy8gQ3JlYXRlIGEgbGlzdCBv
ZiBkaWZmIGh1bmtzIGluIFVuaWZpZWQgZGlmZiBmb3JtYXQuCi0vLyBFYWNoIGh1bmsgaGFzIGEg
aGVhZGVyIGdlbmVyYXRlZCBieSBQcmludEhlYWRlciBhYm92ZSBwbHVzIGEgYm9keSB3aXRoCi0v
LyBsaW5lcyBwcmVmaXhlZCB3aXRoICcgJyBmb3Igbm8gY2hhbmdlLCAnLScgZm9yIGRlbGV0aW9u
IGFuZCAnKycgZm9yCi0vLyBhZGRpdGlvbi4KLS8vICdjb250ZXh0JyByZXByZXNlbnRzIHRoZSBk
ZXNpcmVkIHVuY2hhbmdlZCBwcmVmaXgvc3VmZml4IGFyb3VuZCB0aGUgZGlmZi4KLS8vIElmIHR3
byBodW5rcyBhcmUgY2xvc2UgZW5vdWdoIHRoYXQgdGhlaXIgY29udGV4dHMgb3ZlcmxhcCwgdGhl
biB0aGV5IGFyZQotLy8gam9pbmVkIGludG8gb25lIGh1bmsuCi1zdGQ6OnN0cmluZyBDcmVhdGVV
bmlmaWVkRGlmZihjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIGxlZnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIHJp
Z2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNvbnRleHQpIHsKLSAg
Y29uc3Qgc3RkOjp2ZWN0b3I8RWRpdFR5cGU+IGVkaXRzID0gQ2FsY3VsYXRlT3B0aW1hbEVkaXRz
KGxlZnQsIHJpZ2h0KTsKLQotICBzaXplX3QgbF9pID0gMCwgcl9pID0gMCwgZWRpdF9pID0gMDsK
LSAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7Ci0gIHdoaWxlIChlZGl0X2kgPCBlZGl0cy5zaXplKCkp
IHsKLSAgICAvLyBGaW5kIGZpcnN0IGVkaXQuCi0gICAgd2hpbGUgKGVkaXRfaSA8IGVkaXRzLnNp
emUoKSAmJiBlZGl0c1tlZGl0X2ldID09IGtNYXRjaCkgewotICAgICAgKytsX2k7Ci0gICAgICAr
K3JfaTsKLSAgICAgICsrZWRpdF9pOwotICAgIH0KLQotICAgIC8vIEZpbmQgdGhlIGZpcnN0IGxp
bmUgdG8gaW5jbHVkZSBpbiB0aGUgaHVuay4KLSAgICBjb25zdCBzaXplX3QgcHJlZml4X2NvbnRl
eHQgPSBzdGQ6Om1pbihsX2ksIGNvbnRleHQpOwotICAgIEh1bmsgaHVuayhsX2kgLSBwcmVmaXhf
Y29udGV4dCArIDEsIHJfaSAtIHByZWZpeF9jb250ZXh0ICsgMSk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IHByZWZpeF9jb250ZXh0OyBpID4gMDsgLS1pKSB7Ci0gICAgICBodW5rLlB1c2hMaW5lKCcg
JywgbGVmdFtsX2kgLSBpXS5jX3N0cigpKTsKLSAgICB9Ci0KLSAgICAvLyBJdGVyYXRlIHRoZSBl
ZGl0cyB1bnRpbCB3ZSBmb3VuZCBlbm91Z2ggc3VmZml4IGZvciB0aGUgaHVuayBvciB0aGUgaW5w
dXQKLSAgICAvLyBpcyBvdmVyLgotICAgIHNpemVfdCBuX3N1ZmZpeCA9IDA7Ci0gICAgZm9yICg7
IGVkaXRfaSA8IGVkaXRzLnNpemUoKTsgKytlZGl0X2kpIHsKLSAgICAgIGlmIChuX3N1ZmZpeCA+
PSBjb250ZXh0KSB7Ci0gICAgICAgIC8vIENvbnRpbnVlIG9ubHkgaWYgdGhlIG5leHQgaHVuayBp
cyB2ZXJ5IGNsb3NlLgotICAgICAgICBzdGQ6OnZlY3RvcjxFZGl0VHlwZT46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gZWRpdHMuYmVnaW4oKSArIGVkaXRfaTsKLSAgICAgICAgd2hpbGUgKGl0ICE9IGVk
aXRzLmVuZCgpICYmICppdCA9PSBrTWF0Y2gpICsraXQ7Ci0gICAgICAgIGlmIChpdCA9PSBlZGl0
cy5lbmQoKSB8fCAoaXQgLSBlZGl0cy5iZWdpbigpKSAtIGVkaXRfaSA+PSBjb250ZXh0KSB7Ci0g
ICAgICAgICAgLy8gVGhlcmUgaXMgbm8gbmV4dCBlZGl0IG9yIGl0IGlzIHRvbyBmYXIgYXdheS4K
LSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICBFZGl0VHlwZSBl
ZGl0ID0gZWRpdHNbZWRpdF9pXTsKLSAgICAgIC8vIFJlc2V0IGNvdW50IHdoZW4gYSBub24gbWF0
Y2ggaXMgZm91bmQuCi0gICAgICBuX3N1ZmZpeCA9IGVkaXQgPT0ga01hdGNoID8gbl9zdWZmaXgg
KyAxIDogMDsKLQotICAgICAgaWYgKGVkaXQgPT0ga01hdGNoIHx8IGVkaXQgPT0ga1JlbW92ZSB8
fCBlZGl0ID09IGtSZXBsYWNlKSB7Ci0gICAgICAgIGh1bmsuUHVzaExpbmUoZWRpdCA9PSBrTWF0
Y2ggPyAnICcgOiAnLScsIGxlZnRbbF9pXS5jX3N0cigpKTsKLSAgICAgIH0KLSAgICAgIGlmIChl
ZGl0ID09IGtBZGQgfHwgZWRpdCA9PSBrUmVwbGFjZSkgewotICAgICAgICBodW5rLlB1c2hMaW5l
KCcrJywgcmlnaHRbcl9pXS5jX3N0cigpKTsKLSAgICAgIH0KLQotICAgICAgLy8gQWR2YW5jZSBp
bmRpY2VzLCBkZXBlbmRpbmcgb24gZWRpdCB0eXBlLgotICAgICAgbF9pICs9IGVkaXQgIT0ga0Fk
ZDsKLSAgICAgIHJfaSArPSBlZGl0ICE9IGtSZW1vdmU7Ci0gICAgfQotCi0gICAgaWYgKCFodW5r
Lmhhc19lZGl0cygpKSB7Ci0gICAgICAvLyBXZSBhcmUgZG9uZS4gV2UgZG9uJ3Qgd2FudCB0aGlz
IGh1bmsuCi0gICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBodW5rLlByaW50VG8oJnNzKTsKLSAg
fQotICByZXR1cm4gc3Muc3RyKCk7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZSBlZGl0X2Rpc3RhbmNl
Ci0KLW5hbWVzcGFjZSB7Ci0KLS8vIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZh
bHVlcyByZWNlaXZlZCBpbiBFcUZhaWx1cmUoKSBhcmUgYWxyZWFkeQotLy8gZXNjYXBlZC4gU3Bs
aXQgdGhlbSBvbiBlc2NhcGVkICdcbicgYm91bmRhcmllcy4gTGVhdmUgYWxsIG90aGVyIGVzY2Fw
ZWQKLS8vIGNoYXJhY3RlcnMgdGhlIHNhbWUuCi1zdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gU3Bs
aXRFc2NhcGVkU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKLSAgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+IGxpbmVzOwotICBzaXplX3Qgc3RhcnQgPSAwLCBlbmQgPSBzdHIuc2l6ZSgp
OwotICBpZiAoZW5kID4gMiAmJiBzdHJbMF0gPT0gJyInICYmIHN0cltlbmQgLSAxXSA9PSAnIicp
IHsKLSAgICArK3N0YXJ0OwotICAgIC0tZW5kOwotICB9Ci0gIGJvb2wgZXNjYXBlZCA9IGZhbHNl
OwotICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgKyAxIDwgZW5kOyArK2kpIHsKLSAgICBpZiAo
ZXNjYXBlZCkgewotICAgICAgZXNjYXBlZCA9IGZhbHNlOwotICAgICAgaWYgKHN0cltpXSA9PSAn
bicpIHsKLSAgICAgICAgbGluZXMucHVzaF9iYWNrKHN0ci5zdWJzdHIoc3RhcnQsIGkgLSBzdGFy
dCAtIDEpKTsKLSAgICAgICAgc3RhcnQgPSBpICsgMTsKLSAgICAgIH0KLSAgICB9IGVsc2Ugewot
ICAgICAgZXNjYXBlZCA9IHN0cltpXSA9PSAnXFwnOwotICAgIH0KLSAgfQotICBsaW5lcy5wdXNo
X2JhY2soc3RyLnN1YnN0cihzdGFydCwgZW5kIC0gc3RhcnQpKTsKLSAgcmV0dXJuIGxpbmVzOwot
fQotCi19ICAvLyBuYW1lc3BhY2UKLQotLy8gQ29uc3RydWN0cyBhbmQgcmV0dXJucyB0aGUgbWVz
c2FnZSBmb3IgYW4gZXF1YWxpdHkgYXNzZXJ0aW9uCi0vLyAoZS5nLiBBU1NFUlRfRVEsIEVYUEVD
VF9TVFJFUSwgZXRjKSBmYWlsdXJlLgotLy8KLS8vIFRoZSBmaXJzdCBmb3VyIHBhcmFtZXRlcnMg
YXJlIHRoZSBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBhc3NlcnRpb24KLS8vIGFuZCB0aGVpciB2
YWx1ZXMsIGFzIHN0cmluZ3MuICBGb3IgZXhhbXBsZSwgZm9yIEFTU0VSVF9FUShmb28sIGJhcikK
LS8vIHdoZXJlIGZvbyBpcyA1IGFuZCBiYXIgaXMgNiwgd2UgaGF2ZToKLS8vCi0vLyAgIGxoc19l
eHByZXNzaW9uOiAiZm9vIgotLy8gICByaHNfZXhwcmVzc2lvbjogImJhciIKLS8vICAgbGhzX3Zh
bHVlOiAgICAgICI1IgotLy8gICByaHNfdmFsdWU6ICAgICAgIjYiCi0vLwotLy8gVGhlIGlnbm9y
aW5nX2Nhc2UgcGFyYW1ldGVyIGlzIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYQotLy8gKl9T
VFJDQVNFRVEqLiAgV2hlbiBpdCdzIHRydWUsIHRoZSBzdHJpbmcgIklnbm9yaW5nIGNhc2UiIHdp
bGwKLS8vIGJlIGluc2VydGVkIGludG8gdGhlIG1lc3NhZ2UuCi1Bc3NlcnRpb25SZXN1bHQgRXFG
YWlsdXJlKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxoc192YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcmIHJoc192YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBpZ25vcmluZ19jYXNlKSB7Ci0gIE1lc3NhZ2UgbXNnOwotICBtc2cgPDwgIkV4cGVj
dGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoiOwotICBtc2cgPDwgIlxuICAiIDw8IGxoc19l
eHByZXNzaW9uOwotICBpZiAobGhzX3ZhbHVlICE9IGxoc19leHByZXNzaW9uKSB7Ci0gICAgbXNn
IDw8ICJcbiAgICBXaGljaCBpczogIiA8PCBsaHNfdmFsdWU7Ci0gIH0KLSAgbXNnIDw8ICJcbiAg
IiA8PCByaHNfZXhwcmVzc2lvbjsKLSAgaWYgKHJoc192YWx1ZSAhPSByaHNfZXhwcmVzc2lvbikg
ewotICAgIG1zZyA8PCAiXG4gICAgV2hpY2ggaXM6ICIgPDwgcmhzX3ZhbHVlOwotICB9Ci0KLSAg
aWYgKGlnbm9yaW5nX2Nhc2UpIHsKLSAgICBtc2cgPDwgIlxuSWdub3JpbmcgY2FzZSI7Ci0gIH0K
LQotICBpZiAoIWxoc192YWx1ZS5lbXB0eSgpICYmICFyaHNfdmFsdWUuZW1wdHkoKSkgewotICAg
IGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBsaHNfbGluZXMgPQotICAgICAgICBTcGxp
dEVzY2FwZWRTdHJpbmcobGhzX3ZhbHVlKTsKLSAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4gcmhzX2xpbmVzID0KLSAgICAgICAgU3BsaXRFc2NhcGVkU3RyaW5nKHJoc192YWx1ZSk7
Ci0gICAgaWYgKGxoc19saW5lcy5zaXplKCkgPiAxIHx8IHJoc19saW5lcy5zaXplKCkgPiAxKSB7
Ci0gICAgICBtc2cgPDwgIlxuV2l0aCBkaWZmOlxuIgotICAgICAgICAgIDw8IGVkaXRfZGlzdGFu
Y2U6OkNyZWF0ZVVuaWZpZWREaWZmKGxoc19saW5lcywgcmhzX2xpbmVzKTsKLSAgICB9Ci0gIH0K
LQotICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG1zZzsKLX0KLQotLy8gQ29uc3RydWN0
cyBhIGZhaWx1cmUgbWVzc2FnZSBmb3IgQm9vbGVhbiBhc3NlcnRpb25zIHN1Y2ggYXMgRVhQRUNU
X1RSVUUuCi1zdGQ6OnN0cmluZyBHZXRCb29sQXNzZXJ0aW9uRmFpbHVyZU1lc3NhZ2UoCi0gICAg
Y29uc3QgQXNzZXJ0aW9uUmVzdWx0JiBhc3NlcnRpb25fcmVzdWx0LAotICAgIGNvbnN0IGNoYXIq
IGV4cHJlc3Npb25fdGV4dCwKLSAgICBjb25zdCBjaGFyKiBhY3R1YWxfcHJlZGljYXRlX3ZhbHVl
LAotICAgIGNvbnN0IGNoYXIqIGV4cGVjdGVkX3ByZWRpY2F0ZV92YWx1ZSkgewotICBjb25zdCBj
aGFyKiBhY3R1YWxfbWVzc2FnZSA9IGFzc2VydGlvbl9yZXN1bHQubWVzc2FnZSgpOwotICBNZXNz
YWdlIG1zZzsKLSAgbXNnIDw8ICJWYWx1ZSBvZjogIiA8PCBleHByZXNzaW9uX3RleHQKLSAgICAg
IDw8ICJcbiAgQWN0dWFsOiAiIDw8IGFjdHVhbF9wcmVkaWNhdGVfdmFsdWU7Ci0gIGlmIChhY3R1
YWxfbWVzc2FnZVswXSAhPSAnXDAnKQotICAgIG1zZyA8PCAiICgiIDw8IGFjdHVhbF9tZXNzYWdl
IDw8ICIpIjsKLSAgbXNnIDw8ICJcbkV4cGVjdGVkOiAiIDw8IGV4cGVjdGVkX3ByZWRpY2F0ZV92
YWx1ZTsKLSAgcmV0dXJuIG1zZy5HZXRTdHJpbmcoKTsKLX0KLQotLy8gSGVscGVyIGZ1bmN0aW9u
IGZvciBpbXBsZW1lbnRpbmcgQVNTRVJUX05FQVIuCi1Bc3NlcnRpb25SZXN1bHQgRG91YmxlTmVh
clByZWRGb3JtYXQoY29uc3QgY2hhciogZXhwcjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogYWJzX2Vycm9yX2V4cHIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbDEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZG91YmxlIHZhbDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG91YmxlIGFic19lcnJvcikgewotICBjb25zdCBkb3VibGUgZGlmZiA9IGZhYnMo
dmFsMSAtIHZhbDIpOwotICBpZiAoZGlmZiA8PSBhYnNfZXJyb3IpIHJldHVybiBBc3NlcnRpb25T
dWNjZXNzKCk7Ci0KLSAgLy8gVE9ETyh3YW4pOiBkbyBub3QgcHJpbnQgdGhlIHZhbHVlIG9mIGFu
IGV4cHJlc3Npb24gaWYgaXQncwotICAvLyBhbHJlYWR5IGEgbGl0ZXJhbC4KLSAgcmV0dXJuIEFz
c2VydGlvbkZhaWx1cmUoKQotICAgICAgPDwgIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gIiA8PCBl
eHByMSA8PCAiIGFuZCAiIDw8IGV4cHIyCi0gICAgICA8PCAiIGlzICIgPDwgZGlmZiA8PCAiLCB3
aGljaCBleGNlZWRzICIgPDwgYWJzX2Vycm9yX2V4cHIgPDwgIiwgd2hlcmVcbiIKLSAgICAgIDw8
IGV4cHIxIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdmFsMSA8PCAiLFxuIgotICAgICAgPDwgZXhw
cjIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2YWwyIDw8ICIsIGFuZFxuIgotICAgICAgPDwgYWJz
X2Vycm9yX2V4cHIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCBhYnNfZXJyb3IgPDwgIi4iOwotfQot
Ci0KLS8vIEhlbHBlciB0ZW1wbGF0ZSBmb3IgaW1wbGVtZW50aW5nIEZsb2F0TEUoKSBhbmQgRG91
YmxlTEUoKS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBSYXdUeXBlPgotQXNzZXJ0aW9uUmVzdWx0IEZs
b2F0aW5nUG9pbnRMRShjb25zdCBjaGFyKiBleHByMSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJhd1R5cGUgdmFsMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3VHlw
ZSB2YWwyKSB7Ci0gIC8vIFJldHVybnMgc3VjY2VzcyBpZiB2YWwxIGlzIGxlc3MgdGhhbiB2YWwy
LAotICBpZiAodmFsMSA8IHZhbDIpIHsKLSAgICByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwot
ICB9Ci0KLSAgLy8gb3IgaWYgdmFsMSBpcyBhbG1vc3QgZXF1YWwgdG8gdmFsMi4KLSAgY29uc3Qg
RmxvYXRpbmdQb2ludDxSYXdUeXBlPiBsaHModmFsMSksIHJocyh2YWwyKTsKLSAgaWYgKGxocy5B
bG1vc3RFcXVhbHMocmhzKSkgewotICAgIHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7Ci0gIH0K
LQotICAvLyBOb3RlIHRoYXQgdGhlIGFib3ZlIHR3byBjaGVja3Mgd2lsbCBib3RoIGZhaWwgaWYg
ZWl0aGVyIHZhbDEgb3IKLSAgLy8gdmFsMiBpcyBOYU4sIGFzIHRoZSBJRUVFIGZsb2F0aW5nLXBv
aW50IHN0YW5kYXJkIHJlcXVpcmVzIHRoYXQKLSAgLy8gYW55IHByZWRpY2F0ZSBpbnZvbHZpbmcg
YSBOYU4gbXVzdCByZXR1cm4gZmFsc2UuCi0KLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSB2YWwxX3Nz
OwotICB2YWwxX3NzIDw8IHN0ZDo6c2V0cHJlY2lzaW9uKHN0ZDo6bnVtZXJpY19saW1pdHM8UmF3
VHlwZT46OmRpZ2l0czEwICsgMikKLSAgICAgICAgICA8PCB2YWwxOwotCi0gIDo6c3RkOjpzdHJp
bmdzdHJlYW0gdmFsMl9zczsKLSAgdmFsMl9zcyA8PCBzdGQ6OnNldHByZWNpc2lvbihzdGQ6Om51
bWVyaWNfbGltaXRzPFJhd1R5cGU+OjpkaWdpdHMxMCArIDIpCi0gICAgICAgICAgPDwgdmFsMjsK
LQotICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpCi0gICAgICA8PCAiRXhwZWN0ZWQ6ICgiIDw8
IGV4cHIxIDw8ICIpIDw9ICgiIDw8IGV4cHIyIDw8ICIpXG4iCi0gICAgICA8PCAiICBBY3R1YWw6
ICIgPDwgU3RyaW5nU3RyZWFtVG9TdHJpbmcoJnZhbDFfc3MpIDw8ICIgdnMgIgotICAgICAgPDwg
U3RyaW5nU3RyZWFtVG9TdHJpbmcoJnZhbDJfc3MpOwotfQotCi19ICAvLyBuYW1lc3BhY2UgaW50
ZXJuYWwKLQotLy8gQXNzZXJ0cyB0aGF0IHZhbDEgaXMgbGVzcyB0aGFuLCBvciBhbG1vc3QgZXF1
YWwgdG8sIHZhbDIuICBGYWlscwotLy8gb3RoZXJ3aXNlLiAgSW4gcGFydGljdWxhciwgaXQgZmFp
bHMgaWYgZWl0aGVyIHZhbDEgb3IgdmFsMiBpcyBOYU4uCi1Bc3NlcnRpb25SZXN1bHQgRmxvYXRM
RShjb25zdCBjaGFyKiBleHByMSwgY29uc3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBmbG9hdCB2YWwxLCBmbG9hdCB2YWwyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Rmxv
YXRpbmdQb2ludExFPGZsb2F0PihleHByMSwgZXhwcjIsIHZhbDEsIHZhbDIpOwotfQotCi0vLyBB
c3NlcnRzIHRoYXQgdmFsMSBpcyBsZXNzIHRoYW4sIG9yIGFsbW9zdCBlcXVhbCB0bywgdmFsMi4g
IEZhaWxzCi0vLyBvdGhlcndpc2UuICBJbiBwYXJ0aWN1bGFyLCBpdCBmYWlscyBpZiBlaXRoZXIg
dmFsMSBvciB2YWwyIGlzIE5hTi4KLUFzc2VydGlvblJlc3VsdCBEb3VibGVMRShjb25zdCBjaGFy
KiBleHByMSwgY29uc3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZG91
YmxlIHZhbDEsIGRvdWJsZSB2YWwyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6RmxvYXRpbmdQb2lu
dExFPGRvdWJsZT4oZXhwcjEsIGV4cHIyLCB2YWwxLCB2YWwyKTsKLX0KLQotbmFtZXNwYWNlIGlu
dGVybmFsIHsKLQotLy8gVGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X0VR
IHdpdGggaW50IG9yIGVudW0KLS8vIGFyZ3VtZW50cy4KLUFzc2VydGlvblJlc3VsdCBDbXBIZWxw
ZXJFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCaWdnZXN0SW50IGxocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWdnZXN0
SW50IHJocykgewotICBpZiAobGhzID09IHJocykgewotICAgIHJldHVybiBBc3NlcnRpb25TdWNj
ZXNzKCk7Ci0gIH0KLQotICByZXR1cm4gRXFGYWlsdXJlKGxoc19leHByZXNzaW9uLAotICAgICAg
ICAgICAgICAgICAgIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgIEZvcm1hdEZv
ckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShsaHMsIHJocyksCi0gICAgICAgICAgICAgICAgICAg
Rm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHJocywgbGhzKSwKLSAgICAgICAgICAg
ICAgICAgICBmYWxzZSk7Ci19Ci0KLS8vIEEgbWFjcm8gZm9yIGltcGxlbWVudGluZyB0aGUgaGVs
cGVyIGZ1bmN0aW9ucyBuZWVkZWQgdG8gaW1wbGVtZW50Ci0vLyBBU1NFUlRfPz8gYW5kIEVYUEVD
VF8/PyB3aXRoIGludGVnZXIgb3IgZW51bSBhcmd1bWVudHMuICBJdCBpcyBoZXJlCi0vLyBqdXN0
IHRvIGF2b2lkIGNvcHktYW5kLXBhc3RlIG9mIHNpbWlsYXIgY29kZS4KLSNkZWZpbmUgR1RFU1Rf
SU1QTF9DTVBfSEVMUEVSXyhvcF9uYW1lLCBvcClcCi1Bc3NlcnRpb25SZXN1bHQgQ21wSGVscGVy
IyNvcF9uYW1lKGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBjaGFyKiBleHByMiwgXAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWdnZXN0SW50IHZhbDEsIEJpZ2dlc3RJbnQg
dmFsMikge1wKLSAgaWYgKHZhbDEgb3AgdmFsMikge1wKLSAgICByZXR1cm4gQXNzZXJ0aW9uU3Vj
Y2VzcygpO1wKLSAgfSBlbHNlIHtcCi0gICAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKSBcCi0g
ICAgICAgIDw8ICJFeHBlY3RlZDogKCIgPDwgZXhwcjEgPDwgIikgIiAjb3AgIiAoIiA8PCBleHBy
MlwKLSAgICAgICAgPDwgIiksIGFjdHVhbDogIiA8PCBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVy
ZU1lc3NhZ2UodmFsMSwgdmFsMilcCi0gICAgICAgIDw8ICIgdnMgIiA8PCBGb3JtYXRGb3JDb21w
YXJpc29uRmFpbHVyZU1lc3NhZ2UodmFsMiwgdmFsMSk7XAotICB9XAotfQotCi0vLyBJbXBsZW1l
bnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9ORSB3aXRoIGludCBv
cgotLy8gZW51bSBhcmd1bWVudHMuCi1HVEVTVF9JTVBMX0NNUF9IRUxQRVJfKE5FLCAhPSkKLS8v
IEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X0xFIHdp
dGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTEUs
IDw9KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVD
VH1fTFQgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1lbnRzLgotR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXyhMVCwgPCApCi0vLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NF
UlR8RVhQRUNUfV9HRSB3aXRoIGludCBvcgotLy8gZW51bSBhcmd1bWVudHMuCi1HVEVTVF9JTVBM
X0NNUF9IRUxQRVJfKEdFLCA+PSkKLS8vIEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBm
b3Ige0FTU0VSVHxFWFBFQ1R9X0dUIHdpdGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdU
RVNUX0lNUExfQ01QX0hFTFBFUl8oR1QsID4gKQotCi0jdW5kZWYgR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXwotCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fU1RSRVEu
Ci1Bc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyU1RSRVEoY29uc3QgY2hhciogbGhzX2V4cHJlc3Np
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmhzX2V4cHJl
c3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbGhzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJocykgewotICBpZiAo
U3RyaW5nOjpDU3RyaW5nRXF1YWxzKGxocywgcmhzKSkgewotICAgIHJldHVybiBBc3NlcnRpb25T
dWNjZXNzKCk7Ci0gIH0KLQotICByZXR1cm4gRXFGYWlsdXJlKGxoc19leHByZXNzaW9uLAotICAg
ICAgICAgICAgICAgICAgIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgIFByaW50
VG9TdHJpbmcobGhzKSwKLSAgICAgICAgICAgICAgICAgICBQcmludFRvU3RyaW5nKHJocyksCi0g
ICAgICAgICAgICAgICAgICAgZmFsc2UpOwotfQotCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZv
ciB7QVNTRVJUfEVYUEVDVH1fU1RSQ0FTRUVRLgotQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlclNU
UkNBU0VFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGxocywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmhzKSB7Ci0gIGlmIChTdHJpbmc6OkNhc2VJ
bnNlbnNpdGl2ZUNTdHJpbmdFcXVhbHMobGhzLCByaHMpKSB7Ci0gICAgcmV0dXJuIEFzc2VydGlv
blN1Y2Nlc3MoKTsKLSAgfQotCi0gIHJldHVybiBFcUZhaWx1cmUobGhzX2V4cHJlc3Npb24sCi0g
ICAgICAgICAgICAgICAgICAgcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgUHJp
bnRUb1N0cmluZyhsaHMpLAotICAgICAgICAgICAgICAgICAgIFByaW50VG9TdHJpbmcocmhzKSwK
LSAgICAgICAgICAgICAgICAgICB0cnVlKTsKLX0KLQotLy8gVGhlIGhlbHBlciBmdW5jdGlvbiBm
b3Ige0FTU0VSVHxFWFBFQ1R9X1NUUk5FLgotQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlclNUUk5F
KGNvbnN0IGNoYXIqIHMxX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogczJfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiBzMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyKiBzMikgewotICBpZiAoIVN0cmluZzo6Q1N0cmluZ0VxdWFscyhzMSwgczIpKSB7Ci0g
ICAgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gQXNz
ZXJ0aW9uRmFpbHVyZSgpIDw8ICJFeHBlY3RlZDogKCIgPDwgczFfZXhwcmVzc2lvbiA8PCAiKSAh
PSAoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgczJfZXhwcmVzc2lvbiA8PCAi
KSwgYWN0dWFsOiBcIiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHMxIDw8ICJc
IiB2cyBcIiIgPDwgczIgPDwgIlwiIjsKLSAgfQotfQotCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9u
IGZvciB7QVNTRVJUfEVYUEVDVH1fU1RSQ0FTRU5FLgotQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBl
clNUUkNBU0VORShjb25zdCBjaGFyKiBzMV9leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzMl9leHByZXNzaW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBzMSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogczIpIHsKLSAgaWYgKCFTdHJpbmc6OkNhc2VJ
bnNlbnNpdGl2ZUNTdHJpbmdFcXVhbHMoczEsIHMyKSkgewotICAgIHJldHVybiBBc3NlcnRpb25T
dWNjZXNzKCk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQotICAg
ICAgICA8PCAiRXhwZWN0ZWQ6ICgiIDw8IHMxX2V4cHJlc3Npb24gPDwgIikgIT0gKCIKLSAgICAg
ICAgPDwgczJfZXhwcmVzc2lvbiA8PCAiKSAoaWdub3JpbmcgY2FzZSksIGFjdHVhbDogXCIiCi0g
ICAgICAgIDw8IHMxIDw8ICJcIiB2cyBcIiIgPDwgczIgPDwgIlwiIjsKLSAgfQotfQotCi19ICAv
LyBuYW1lc3BhY2UgaW50ZXJuYWwKLQotbmFtZXNwYWNlIHsKLQotLy8gSGVscGVyIGZ1bmN0aW9u
cyBmb3IgaW1wbGVtZW50aW5nIElzU3ViU3RyaW5nKCkgYW5kIElzTm90U3Vic3RyaW5nKCkuCi0K
LS8vIFRoaXMgZ3JvdXAgb2Ygb3ZlcmxvYWRlZCBmdW5jdGlvbnMgcmV0dXJuIHRydWUgaWZmIG5l
ZWRsZSBpcyBhCi0vLyBzdWJzdHJpbmcgb2YgaGF5c3RhY2suICBOVUxMIGlzIGNvbnNpZGVyZWQg
YSBzdWJzdHJpbmcgb2YgaXRzZWxmCi0vLyBvbmx5LgotCi1ib29sIElzU3Vic3RyaW5nUHJlZChj
b25zdCBjaGFyKiBuZWVkbGUsIGNvbnN0IGNoYXIqIGhheXN0YWNrKSB7Ci0gIGlmIChuZWVkbGUg
PT0gTlVMTCB8fCBoYXlzdGFjayA9PSBOVUxMKQotICAgIHJldHVybiBuZWVkbGUgPT0gaGF5c3Rh
Y2s7Ci0KLSAgcmV0dXJuIHN0cnN0cihoYXlzdGFjaywgbmVlZGxlKSAhPSBOVUxMOwotfQotCi1i
b29sIElzU3Vic3RyaW5nUHJlZChjb25zdCB3Y2hhcl90KiBuZWVkbGUsIGNvbnN0IHdjaGFyX3Qq
IGhheXN0YWNrKSB7Ci0gIGlmIChuZWVkbGUgPT0gTlVMTCB8fCBoYXlzdGFjayA9PSBOVUxMKQot
ICAgIHJldHVybiBuZWVkbGUgPT0gaGF5c3RhY2s7Ci0KLSAgcmV0dXJuIHdjc3N0cihoYXlzdGFj
aywgbmVlZGxlKSAhPSBOVUxMOwotfQotCi0vLyBTdHJpbmdUeXBlIGhlcmUgY2FuIGJlIGVpdGhl
ciA6OnN0ZDo6c3RyaW5nIG9yIDo6c3RkOjp3c3RyaW5nLgotdGVtcGxhdGUgPHR5cGVuYW1lIFN0
cmluZ1R5cGU+Ci1ib29sIElzU3Vic3RyaW5nUHJlZChjb25zdCBTdHJpbmdUeXBlJiBuZWVkbGUs
Ci0gICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmdUeXBlJiBoYXlzdGFjaykgewotICBy
ZXR1cm4gaGF5c3RhY2suZmluZChuZWVkbGUpICE9IFN0cmluZ1R5cGU6Om5wb3M7Ci19Ci0KLS8v
IFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBlaXRoZXIgSXNTdWJzdHJpbmcoKSBvciBJc05vdFN1
YnN0cmluZygpLAotLy8gZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgZXhwZWN0ZWRfdG9f
YmVfc3Vic3RyaW5nIHBhcmFtZXRlci4KLS8vIFN0cmluZ1R5cGUgaGVyZSBjYW4gYmUgY29uc3Qg
Y2hhciosIGNvbnN0IHdjaGFyX3QqLCA6OnN0ZDo6c3RyaW5nLAotLy8gb3IgOjpzdGQ6OndzdHJp
bmcuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgU3RyaW5nVHlwZT4KLUFzc2VydGlvblJlc3VsdCBJc1N1
YnN0cmluZ0ltcGwoCi0gICAgYm9vbCBleHBlY3RlZF90b19iZV9zdWJzdHJpbmcsCi0gICAgY29u
c3QgY2hhciogbmVlZGxlX2V4cHIsIGNvbnN0IGNoYXIqIGhheXN0YWNrX2V4cHIsCi0gICAgY29u
c3QgU3RyaW5nVHlwZSYgbmVlZGxlLCBjb25zdCBTdHJpbmdUeXBlJiBoYXlzdGFjaykgewotICBp
ZiAoSXNTdWJzdHJpbmdQcmVkKG5lZWRsZSwgaGF5c3RhY2spID09IGV4cGVjdGVkX3RvX2JlX3N1
YnN0cmluZykKLSAgICByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwotCi0gIGNvbnN0IGJvb2wg
aXNfd2lkZV9zdHJpbmcgPSBzaXplb2YobmVlZGxlWzBdKSA+IDE7Ci0gIGNvbnN0IGNoYXIqIGNv
bnN0IGJlZ2luX3N0cmluZ19xdW90ZSA9IGlzX3dpZGVfc3RyaW5nID8gIkxcIiIgOiAiXCIiOwot
ICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpCi0gICAgICA8PCAiVmFsdWUgb2Y6ICIgPDwgbmVl
ZGxlX2V4cHIgPDwgIlxuIgotICAgICAgPDwgIiAgQWN0dWFsOiAiIDw8IGJlZ2luX3N0cmluZ19x
dW90ZSA8PCBuZWVkbGUgPDwgIlwiXG4iCi0gICAgICA8PCAiRXhwZWN0ZWQ6ICIgPDwgKGV4cGVj
dGVkX3RvX2JlX3N1YnN0cmluZyA/ICIiIDogIm5vdCAiKQotICAgICAgPDwgImEgc3Vic3RyaW5n
IG9mICIgPDwgaGF5c3RhY2tfZXhwciA8PCAiXG4iCi0gICAgICA8PCAiV2hpY2ggaXM6ICIgPDwg
YmVnaW5fc3RyaW5nX3F1b3RlIDw8IGhheXN0YWNrIDw8ICJcIiI7Ci19Ci0KLX0gIC8vIG5hbWVz
cGFjZQotCi0vLyBJc1N1YnN0cmluZygpIGFuZCBJc05vdFN1YnN0cmluZygpIGNoZWNrIHdoZXRo
ZXIgbmVlZGxlIGlzIGEKLS8vIHN1YnN0cmluZyBvZiBoYXlzdGFjayAoTlVMTCBpcyBjb25zaWRl
cmVkIGEgc3Vic3RyaW5nIG9mIGl0c2VsZgotLy8gb25seSksIGFuZCByZXR1cm4gYW4gYXBwcm9w
cmlhdGUgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZXkgZmFpbC4KLQotQXNzZXJ0aW9uUmVzdWx0IElz
U3Vic3RyaW5nKAotICAgIGNvbnN0IGNoYXIqIG5lZWRsZV9leHByLCBjb25zdCBjaGFyKiBoYXlz
dGFja19leHByLAotICAgIGNvbnN0IGNoYXIqIG5lZWRsZSwgY29uc3QgY2hhciogaGF5c3RhY2sp
IHsKLSAgcmV0dXJuIElzU3Vic3RyaW5nSW1wbCh0cnVlLCBuZWVkbGVfZXhwciwgaGF5c3RhY2tf
ZXhwciwgbmVlZGxlLCBoYXlzdGFjayk7Ci19Ci0KLUFzc2VydGlvblJlc3VsdCBJc1N1YnN0cmlu
ZygKLSAgICBjb25zdCBjaGFyKiBuZWVkbGVfZXhwciwgY29uc3QgY2hhciogaGF5c3RhY2tfZXhw
ciwKLSAgICBjb25zdCB3Y2hhcl90KiBuZWVkbGUsIGNvbnN0IHdjaGFyX3QqIGhheXN0YWNrKSB7
Ci0gIHJldHVybiBJc1N1YnN0cmluZ0ltcGwodHJ1ZSwgbmVlZGxlX2V4cHIsIGhheXN0YWNrX2V4
cHIsIG5lZWRsZSwgaGF5c3RhY2spOwotfQotCi1Bc3NlcnRpb25SZXN1bHQgSXNOb3RTdWJzdHJp
bmcoCi0gICAgY29uc3QgY2hhciogbmVlZGxlX2V4cHIsIGNvbnN0IGNoYXIqIGhheXN0YWNrX2V4
cHIsCi0gICAgY29uc3QgY2hhciogbmVlZGxlLCBjb25zdCBjaGFyKiBoYXlzdGFjaykgewotICBy
ZXR1cm4gSXNTdWJzdHJpbmdJbXBsKGZhbHNlLCBuZWVkbGVfZXhwciwgaGF5c3RhY2tfZXhwciwg
bmVlZGxlLCBoYXlzdGFjayk7Ci19Ci0KLUFzc2VydGlvblJlc3VsdCBJc05vdFN1YnN0cmluZygK
LSAgICBjb25zdCBjaGFyKiBuZWVkbGVfZXhwciwgY29uc3QgY2hhciogaGF5c3RhY2tfZXhwciwK
LSAgICBjb25zdCB3Y2hhcl90KiBuZWVkbGUsIGNvbnN0IHdjaGFyX3QqIGhheXN0YWNrKSB7Ci0g
IHJldHVybiBJc1N1YnN0cmluZ0ltcGwoZmFsc2UsIG5lZWRsZV9leHByLCBoYXlzdGFja19leHBy
LCBuZWVkbGUsIGhheXN0YWNrKTsKLX0KLQotQXNzZXJ0aW9uUmVzdWx0IElzU3Vic3RyaW5nKAot
ICAgIGNvbnN0IGNoYXIqIG5lZWRsZV9leHByLCBjb25zdCBjaGFyKiBoYXlzdGFja19leHByLAot
ICAgIGNvbnN0IDo6c3RkOjpzdHJpbmcmIG5lZWRsZSwgY29uc3QgOjpzdGQ6OnN0cmluZyYgaGF5
c3RhY2spIHsKLSAgcmV0dXJuIElzU3Vic3RyaW5nSW1wbCh0cnVlLCBuZWVkbGVfZXhwciwgaGF5
c3RhY2tfZXhwciwgbmVlZGxlLCBoYXlzdGFjayk7Ci19Ci0KLUFzc2VydGlvblJlc3VsdCBJc05v
dFN1YnN0cmluZygKLSAgICBjb25zdCBjaGFyKiBuZWVkbGVfZXhwciwgY29uc3QgY2hhciogaGF5
c3RhY2tfZXhwciwKLSAgICBjb25zdCA6OnN0ZDo6c3RyaW5nJiBuZWVkbGUsIGNvbnN0IDo6c3Rk
OjpzdHJpbmcmIGhheXN0YWNrKSB7Ci0gIHJldHVybiBJc1N1YnN0cmluZ0ltcGwoZmFsc2UsIG5l
ZWRsZV9leHByLCBoYXlzdGFja19leHByLCBuZWVkbGUsIGhheXN0YWNrKTsKLX0KLQotI2lmIEdU
RVNUX0hBU19TVERfV1NUUklORwotQXNzZXJ0aW9uUmVzdWx0IElzU3Vic3RyaW5nKAotICAgIGNv
bnN0IGNoYXIqIG5lZWRsZV9leHByLCBjb25zdCBjaGFyKiBoYXlzdGFja19leHByLAotICAgIGNv
bnN0IDo6c3RkOjp3c3RyaW5nJiBuZWVkbGUsIGNvbnN0IDo6c3RkOjp3c3RyaW5nJiBoYXlzdGFj
aykgewotICByZXR1cm4gSXNTdWJzdHJpbmdJbXBsKHRydWUsIG5lZWRsZV9leHByLCBoYXlzdGFj
a19leHByLCBuZWVkbGUsIGhheXN0YWNrKTsKLX0KLQotQXNzZXJ0aW9uUmVzdWx0IElzTm90U3Vi
c3RyaW5nKAotICAgIGNvbnN0IGNoYXIqIG5lZWRsZV9leHByLCBjb25zdCBjaGFyKiBoYXlzdGFj
a19leHByLAotICAgIGNvbnN0IDo6c3RkOjp3c3RyaW5nJiBuZWVkbGUsIGNvbnN0IDo6c3RkOjp3
c3RyaW5nJiBoYXlzdGFjaykgewotICByZXR1cm4gSXNTdWJzdHJpbmdJbXBsKGZhbHNlLCBuZWVk
bGVfZXhwciwgaGF5c3RhY2tfZXhwciwgbmVlZGxlLCBoYXlzdGFjayk7Ci19Ci0jZW5kaWYgIC8v
IEdURVNUX0hBU19TVERfV1NUUklORwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0jaWYgR1RF
U1RfT1NfV0lORE9XUwotCi1uYW1lc3BhY2UgewotCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIElz
SFJFU1VMVHtTdWNjZXNzRmFpbHVyZX0gcHJlZGljYXRlcwotQXNzZXJ0aW9uUmVzdWx0IEhSRVNV
TFRGYWlsdXJlSGVscGVyKGNvbnN0IGNoYXIqIGV4cHIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9uZyBocikgeyAgLy8gTk9MSU5UCi0jIGlmIEdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFCi0KLSAgLy8gV2luZG93cyBDRSBkb2Vzbid0IHN1cHBvcnQgRm9ybWF0TWVz
c2FnZS4KLSAgY29uc3QgY2hhciBlcnJvcl90ZXh0W10gPSAiIjsKLQotIyBlbHNlCi0KLSAgLy8g
TG9va3MgdXAgdGhlIGh1bWFuLXJlYWRhYmxlIHN5c3RlbSBtZXNzYWdlIGZvciB0aGUgSFJFU1VM
VCBjb2RlCi0gIC8vIGFuZCBzaW5jZSB3ZSdyZSBub3QgcGFzc2luZyBhbnkgcGFyYW1zIHRvIEZv
cm1hdE1lc3NhZ2UsIHdlIGRvbid0Ci0gIC8vIHdhbnQgaW5zZXJ0cyBleHBhbmRlZC4KLSAgY29u
c3QgRFdPUkQga0ZsYWdzID0gRk9STUFUX01FU1NBR0VfRlJPTV9TWVNURU0gfAotICAgICAgICAg
ICAgICAgICAgICAgICBGT1JNQVRfTUVTU0FHRV9JR05PUkVfSU5TRVJUUzsKLSAgY29uc3QgRFdP
UkQga0J1ZlNpemUgPSA0MDk2OwotICAvLyBHZXRzIHRoZSBzeXN0ZW0ncyBodW1hbiByZWFkYWJs
ZSBtZXNzYWdlIHN0cmluZyBmb3IgdGhpcyBIUkVTVUxULgotICBjaGFyIGVycm9yX3RleHRba0J1
ZlNpemVdID0geyAnXDAnIH07Ci0gIERXT1JEIG1lc3NhZ2VfbGVuZ3RoID0gOjpGb3JtYXRNZXNz
YWdlQShrRmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LCAgLy8gbm8gc291cmNlLCB3ZSdyZSBhc2tpbmcgc3lzdGVtCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBociwgIC8vIHRoZSBlcnJvcgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIC8vIG5vIGxpbmUgd2lkdGggcmVzdHJpY3Rp
b25zCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl90ZXh0
LCAgLy8gb3V0cHV0IGJ1ZmZlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga0J1ZlNpemUsICAvLyBidWYgc2l6ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCk7ICAvLyBubyBhcmd1bWVudHMgZm9yIGluc2VydHMKLSAgLy8g
VHJpbXMgdGFpbGluZyB3aGl0ZSBzcGFjZSAoRm9ybWF0TWVzc2FnZSBsZWF2ZXMgYSB0cmFpbGlu
ZyBDUi1MRikKLSAgZm9yICg7IG1lc3NhZ2VfbGVuZ3RoICYmIElzU3BhY2UoZXJyb3JfdGV4dFtt
ZXNzYWdlX2xlbmd0aCAtIDFdKTsKLSAgICAgICAgICAtLW1lc3NhZ2VfbGVuZ3RoKSB7Ci0gICAg
ZXJyb3JfdGV4dFttZXNzYWdlX2xlbmd0aCAtIDFdID0gJ1wwJzsKLSAgfQotCi0jIGVuZGlmICAv
LyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQotCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIGVycm9yX2hl
eCgiMHgiICsgU3RyaW5nOjpGb3JtYXRIZXhJbnQoaHIpKTsKLSAgcmV0dXJuIDo6dGVzdGluZzo6
QXNzZXJ0aW9uRmFpbHVyZSgpCi0gICAgICA8PCAiRXhwZWN0ZWQ6ICIgPDwgZXhwciA8PCAiICIg
PDwgZXhwZWN0ZWQgPDwgIi5cbiIKLSAgICAgIDw8ICIgIEFjdHVhbDogIiA8PCBlcnJvcl9oZXgg
PDwgIiAiIDw8IGVycm9yX3RleHQgPDwgIlxuIjsKLX0KLQotfSAgLy8gbmFtZXNwYWNlCi0KLUFz
c2VydGlvblJlc3VsdCBJc0hSRVNVTFRTdWNjZXNzKGNvbnN0IGNoYXIqIGV4cHIsIGxvbmcgaHIp
IHsgIC8vIE5PTElOVAotICBpZiAoU1VDQ0VFREVEKGhyKSkgewotICAgIHJldHVybiBBc3NlcnRp
b25TdWNjZXNzKCk7Ci0gIH0KLSAgcmV0dXJuIEhSRVNVTFRGYWlsdXJlSGVscGVyKGV4cHIsICJz
dWNjZWVkcyIsIGhyKTsKLX0KLQotQXNzZXJ0aW9uUmVzdWx0IElzSFJFU1VMVEZhaWx1cmUoY29u
c3QgY2hhciogZXhwciwgbG9uZyBocikgeyAgLy8gTk9MSU5UCi0gIGlmIChGQUlMRUQoaHIpKSB7
Ci0gICAgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKLSAgfQotICByZXR1cm4gSFJFU1VMVEZh
aWx1cmVIZWxwZXIoZXhwciwgImZhaWxzIiwgaHIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX09T
X1dJTkRPV1MKLQotLy8gVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVuY29kaW5nIFVuaWNvZGUgdGV4
dCAod2lkZSBzdHJpbmdzKSBpbgotLy8gVVRGLTguCi0KLS8vIEEgVW5pY29kZSBjb2RlLXBvaW50
IGNhbiBoYXZlIHVwdG8gMjEgYml0cywgYW5kIGlzIGVuY29kZWQgaW4gVVRGLTgKLS8vIGxpa2Ug
dGhpczoKLS8vCi0vLyBDb2RlLXBvaW50IGxlbmd0aCAgIEVuY29kaW5nCi0vLyAgIDAgLSAgNyBi
aXRzICAgICAgIDB4eHh4eHh4Ci0vLyAgIDggLSAxMSBiaXRzICAgICAgIDExMHh4eHh4IDEweHh4
eHh4Ci0vLyAgMTIgLSAxNiBiaXRzICAgICAgIDExMTB4eHh4IDEweHh4eHh4IDEweHh4eHh4Ci0v
LyAgMTcgLSAyMSBiaXRzICAgICAgIDExMTEweHh4IDEweHh4eHh4IDEweHh4eHh4IDEweHh4eHh4
Ci0KLS8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSBvbmUtYnl0ZSBVVEYtOCBzZXF1ZW5jZSBj
YW4gcmVwcmVzZW50LgotY29uc3QgVUludDMyIGtNYXhDb2RlUG9pbnQxID0gKHN0YXRpY19jYXN0
PFVJbnQzMj4oMSkgPDwgIDcpIC0gMTsKLQotLy8gVGhlIG1heGltdW0gY29kZS1wb2ludCBhIHR3
by1ieXRlIFVURi04IHNlcXVlbmNlIGNhbiByZXByZXNlbnQuCi1jb25zdCBVSW50MzIga01heENv
ZGVQb2ludDIgPSAoc3RhdGljX2Nhc3Q8VUludDMyPigxKSA8PCAoNSArIDYpKSAtIDE7Ci0KLS8v
IFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSB0aHJlZS1ieXRlIFVURi04IHNlcXVlbmNlIGNhbiBy
ZXByZXNlbnQuCi1jb25zdCBVSW50MzIga01heENvZGVQb2ludDMgPSAoc3RhdGljX2Nhc3Q8VUlu
dDMyPigxKSA8PCAoNCArIDIqNikpIC0gMTsKLQotLy8gVGhlIG1heGltdW0gY29kZS1wb2ludCBh
IGZvdXItYnl0ZSBVVEYtOCBzZXF1ZW5jZSBjYW4gcmVwcmVzZW50LgotY29uc3QgVUludDMyIGtN
YXhDb2RlUG9pbnQ0ID0gKHN0YXRpY19jYXN0PFVJbnQzMj4oMSkgPDwgKDMgKyAzKjYpKSAtIDE7
Ci0KLS8vIENob3BzIG9mZiB0aGUgbiBsb3dlc3QgYml0cyBmcm9tIGEgYml0IHBhdHRlcm4uICBS
ZXR1cm5zIHRoZSBuCi0vLyBsb3dlc3QgYml0cy4gIEFzIGEgc2lkZSBlZmZlY3QsIHRoZSBvcmln
aW5hbCBiaXQgcGF0dGVybiB3aWxsIGJlCi0vLyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSBuIGJp
dHMuCi1pbmxpbmUgVUludDMyIENob3BMb3dCaXRzKFVJbnQzMiogYml0cywgaW50IG4pIHsKLSAg
Y29uc3QgVUludDMyIGxvd19iaXRzID0gKmJpdHMgJiAoKHN0YXRpY19jYXN0PFVJbnQzMj4oMSkg
PDwgbikgLSAxKTsKLSAgKmJpdHMgPj49IG47Ci0gIHJldHVybiBsb3dfYml0czsKLX0KLQotLy8g
Q29udmVydHMgYSBVbmljb2RlIGNvZGUgcG9pbnQgdG8gYSBuYXJyb3cgc3RyaW5nIGluIFVURi04
IGVuY29kaW5nLgotLy8gY29kZV9wb2ludCBwYXJhbWV0ZXIgaXMgb2YgdHlwZSBVSW50MzIgYmVj
YXVzZSB3Y2hhcl90IG1heSBub3QgYmUKLS8vIHdpZGUgZW5vdWdoIHRvIGNvbnRhaW4gYSBjb2Rl
IHBvaW50LgotLy8gSWYgdGhlIGNvZGVfcG9pbnQgaXMgbm90IGEgdmFsaWQgVW5pY29kZSBjb2Rl
IHBvaW50Ci0vLyAoaS5lLiBvdXRzaWRlIG9mIFVuaWNvZGUgcmFuZ2UgVSswIHRvIFUrMTBGRkZG
KSBpdCB3aWxsIGJlIGNvbnZlcnRlZAotLy8gdG8gIihJbnZhbGlkIFVuaWNvZGUgMHhYWFhYWFhY
WCkiLgotc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4KFVJbnQzMiBjb2RlX3BvaW50KSB7Ci0g
IGlmIChjb2RlX3BvaW50ID4ga01heENvZGVQb2ludDQpIHsKLSAgICByZXR1cm4gIihJbnZhbGlk
IFVuaWNvZGUgMHgiICsgU3RyaW5nOjpGb3JtYXRIZXhJbnQoY29kZV9wb2ludCkgKyAiKSI7Ci0g
IH0KLQotICBjaGFyIHN0cls1XTsgIC8vIEJpZyBlbm91Z2ggZm9yIHRoZSBsYXJnZXN0IHZhbGlk
IGNvZGUgcG9pbnQuCi0gIGlmIChjb2RlX3BvaW50IDw9IGtNYXhDb2RlUG9pbnQxKSB7Ci0gICAg
c3RyWzFdID0gJ1wwJzsKLSAgICBzdHJbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPihjb2RlX3BvaW50
KTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDB4eHh4eHh4Ci0gIH0gZWxzZSBpZiAoY29k
ZV9wb2ludCA8PSBrTWF4Q29kZVBvaW50MikgewotICAgIHN0clsyXSA9ICdcMCc7Ci0gICAgc3Ry
WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IENob3BMb3dCaXRzKCZjb2RlX3BvaW50LCA2
KSk7ICAvLyAxMHh4eHh4eAotICAgIHN0clswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4QzAgfCBj
b2RlX3BvaW50KTsgICAgICAgICAgICAgICAgICAgLy8gMTEweHh4eHgKLSAgfSBlbHNlIGlmIChj
b2RlX3BvaW50IDw9IGtNYXhDb2RlUG9pbnQzKSB7Ci0gICAgc3RyWzNdID0gJ1wwJzsKLSAgICBz
dHJbMl0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgQ2hvcExvd0JpdHMoJmNvZGVfcG9pbnQs
IDYpKTsgIC8vIDEweHh4eHh4Ci0gICAgc3RyWzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8
IENob3BMb3dCaXRzKCZjb2RlX3BvaW50LCA2KSk7ICAvLyAxMHh4eHh4eAotICAgIHN0clswXSA9
IHN0YXRpY19jYXN0PGNoYXI+KDB4RTAgfCBjb2RlX3BvaW50KTsgICAgICAgICAgICAgICAgICAg
Ly8gMTExMHh4eHgKLSAgfSBlbHNlIHsgIC8vIGNvZGVfcG9pbnQgPD0ga01heENvZGVQb2ludDQK
LSAgICBzdHJbNF0gPSAnXDAnOwotICAgIHN0clszXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAg
fCBDaG9wTG93Qml0cygmY29kZV9wb2ludCwgNikpOyAgLy8gMTB4eHh4eHgKLSAgICBzdHJbMl0g
PSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgQ2hvcExvd0JpdHMoJmNvZGVfcG9pbnQsIDYpKTsg
IC8vIDEweHh4eHh4Ci0gICAgc3RyWzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IENob3BM
b3dCaXRzKCZjb2RlX3BvaW50LCA2KSk7ICAvLyAxMHh4eHh4eAotICAgIHN0clswXSA9IHN0YXRp
Y19jYXN0PGNoYXI+KDB4RjAgfCBjb2RlX3BvaW50KTsgICAgICAgICAgICAgICAgICAgLy8gMTEx
MTB4eHgKLSAgfQotICByZXR1cm4gc3RyOwotfQotCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5j
dGlvbnMgb25seSBtYWtlIHNlbnNlIGlmIHRoZSBzeXN0ZW0KLS8vIHVzZXMgVVRGLTE2IGZvciB3
aWRlIHN0cmluZyBlbmNvZGluZy4gQWxsIHN1cHBvcnRlZCBzeXN0ZW1zCi0vLyB3aXRoIDE2IGJp
dCB3Y2hhcl90IChXaW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpIGRvIHVzZSBVVEYtMTYuCi0K
LS8vIERldGVybWluZXMgaWYgdGhlIGFyZ3VtZW50cyBjb25zdGl0dXRlIFVURi0xNiBzdXJyb2dh
dGUgcGFpcgotLy8gYW5kIHRodXMgc2hvdWxkIGJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgVW5p
Y29kZSBjb2RlIHBvaW50Ci0vLyB1c2luZyBDcmVhdGVDb2RlUG9pbnRGcm9tVXRmMTZTdXJyb2dh
dGVQYWlyLgotaW5saW5lIGJvb2wgSXNVdGYxNlN1cnJvZ2F0ZVBhaXIod2NoYXJfdCBmaXJzdCwg
d2NoYXJfdCBzZWNvbmQpIHsKLSAgcmV0dXJuIHNpemVvZih3Y2hhcl90KSA9PSAyICYmCi0gICAg
ICAoZmlyc3QgJiAweEZDMDApID09IDB4RDgwMCAmJiAoc2Vjb25kICYgMHhGQzAwKSA9PSAweERD
MDA7Ci19Ci0KLS8vIENyZWF0ZXMgYSBVbmljb2RlIGNvZGUgcG9pbnQgZnJvbSBVVEYxNiBzdXJy
b2dhdGUgcGFpci4KLWlubGluZSBVSW50MzIgQ3JlYXRlQ29kZVBvaW50RnJvbVV0ZjE2U3Vycm9n
YXRlUGFpcih3Y2hhcl90IGZpcnN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdjaGFyX3Qgc2Vjb25kKSB7Ci0gIGNvbnN0IFVJbnQzMiBtYXNr
ID0gKDEgPDwgMTApIC0gMTsKLSAgcmV0dXJuIChzaXplb2Yod2NoYXJfdCkgPT0gMikgPwotICAg
ICAgKCgoZmlyc3QgJiBtYXNrKSA8PCAxMCkgfCAoc2Vjb25kICYgbWFzaykpICsgMHgxMDAwMCA6
Ci0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIHdoZW4gdGhlIGNv
bmRpdGlvbiBpcwotICAgICAgLy8gZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vuc2libGUgZGVm
YXVsdCBpbiBjYXNlIGl0IGlzLgotICAgICAgc3RhdGljX2Nhc3Q8VUludDMyPihmaXJzdCk7Ci19
Ci0KLS8vIENvbnZlcnRzIGEgd2lkZSBzdHJpbmcgdG8gYSBuYXJyb3cgc3RyaW5nIGluIFVURi04
IGVuY29kaW5nLgotLy8gVGhlIHdpZGUgc3RyaW5nIGlzIGFzc3VtZWQgdG8gaGF2ZSB0aGUgZm9s
bG93aW5nIGVuY29kaW5nOgotLy8gICBVVEYtMTYgaWYgc2l6ZW9mKHdjaGFyX3QpID09IDIgKG9u
IFdpbmRvd3MsIEN5Z3dpbiwgU3ltYmlhbiBPUykKLS8vICAgVVRGLTMyIGlmIHNpemVvZih3Y2hh
cl90KSA9PSA0IChvbiBMaW51eCkKLS8vIFBhcmFtZXRlciBzdHIgcG9pbnRzIHRvIGEgbnVsbC10
ZXJtaW5hdGVkIHdpZGUgc3RyaW5nLgotLy8gUGFyYW1ldGVyIG51bV9jaGFycyBtYXkgYWRkaXRp
b25hbGx5IGxpbWl0IHRoZSBudW1iZXIKLS8vIG9mIHdjaGFyX3QgY2hhcmFjdGVycyBwcm9jZXNz
ZWQuIC0xIGlzIHVzZWQgd2hlbiB0aGUgZW50aXJlIHN0cmluZwotLy8gc2hvdWxkIGJlIHByb2Nl
c3NlZC4KLS8vIElmIHRoZSBzdHJpbmcgY29udGFpbnMgY29kZSBwb2ludHMgdGhhdCBhcmUgbm90
IHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludHMKLS8vIChpLmUuIG91dHNpZGUgb2YgVW5pY29kZSBy
YW5nZSBVKzAgdG8gVSsxMEZGRkYpIHRoZXkgd2lsbCBiZSBvdXRwdXQKLS8vIGFzICcoSW52YWxp
ZCBVbmljb2RlIDB4WFhYWFhYWFgpJy4gSWYgdGhlIHN0cmluZyBpcyBpbiBVVEYxNiBlbmNvZGlu
ZwotLy8gYW5kIGNvbnRhaW5zIGludmFsaWQgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlycywgdmFsdWVz
IGluIHRob3NlIHBhaXJzCi0vLyB3aWxsIGJlIGVuY29kZWQgYXMgaW5kaXZpZHVhbCBVbmljb2Rl
IGNoYXJhY3RlcnMgZnJvbSBCYXNpYyBOb3JtYWwgUGxhbmUuCi1zdGQ6OnN0cmluZyBXaWRlU3Ry
aW5nVG9VdGY4KGNvbnN0IHdjaGFyX3QqIHN0ciwgaW50IG51bV9jaGFycykgewotICBpZiAobnVt
X2NoYXJzID09IC0xKQotICAgIG51bV9jaGFycyA9IHN0YXRpY19jYXN0PGludD4od2NzbGVuKHN0
cikpOwotCi0gIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBmb3IgKGludCBpID0gMDsg
aSA8IG51bV9jaGFyczsgKytpKSB7Ci0gICAgVUludDMyIHVuaWNvZGVfY29kZV9wb2ludDsKLQot
ICAgIGlmIChzdHJbaV0gPT0gTCdcMCcpIHsKLSAgICAgIGJyZWFrOwotICAgIH0gZWxzZSBpZiAo
aSArIDEgPCBudW1fY2hhcnMgJiYgSXNVdGYxNlN1cnJvZ2F0ZVBhaXIoc3RyW2ldLCBzdHJbaSAr
IDFdKSkgewotICAgICAgdW5pY29kZV9jb2RlX3BvaW50ID0gQ3JlYXRlQ29kZVBvaW50RnJvbVV0
ZjE2U3Vycm9nYXRlUGFpcihzdHJbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cltpICsgMV0pOwotICAgICAgaSsr
OwotICAgIH0gZWxzZSB7Ci0gICAgICB1bmljb2RlX2NvZGVfcG9pbnQgPSBzdGF0aWNfY2FzdDxV
SW50MzI+KHN0cltpXSk7Ci0gICAgfQotCi0gICAgc3RyZWFtIDw8IENvZGVQb2ludFRvVXRmOCh1
bmljb2RlX2NvZGVfcG9pbnQpOwotICB9Ci0gIHJldHVybiBTdHJpbmdTdHJlYW1Ub1N0cmluZygm
c3RyZWFtKTsKLX0KLQotLy8gQ29udmVydHMgYSB3aWRlIEMgc3RyaW5nIHRvIGFuIHN0ZDo6c3Ry
aW5nIHVzaW5nIHRoZSBVVEYtOCBlbmNvZGluZy4KLS8vIE5VTEwgd2lsbCBiZSBjb252ZXJ0ZWQg
dG8gIihudWxsKSIuCi1zdGQ6OnN0cmluZyBTdHJpbmc6OlNob3dXaWRlQ1N0cmluZyhjb25zdCB3
Y2hhcl90ICogd2lkZV9jX3N0cikgewotICBpZiAod2lkZV9jX3N0ciA9PSBOVUxMKSAgcmV0dXJu
ICIobnVsbCkiOwotCi0gIHJldHVybiBpbnRlcm5hbDo6V2lkZVN0cmluZ1RvVXRmOCh3aWRlX2Nf
c3RyLCAtMSk7Ci19Ci0KLS8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncy4gIFJldHVybnMg
dHJ1ZSBpZmYgdGhleSBoYXZlIHRoZSBzYW1lCi0vLyBjb250ZW50LgotLy8KLS8vIFVubGlrZSB3
Y3NjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuICBBIE5V
TEwKLS8vIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBD
IHN0cmluZywKLS8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgotYm9vbCBTdHJpbmc6Oldp
ZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QgKiBsaHMsIGNvbnN0IHdjaGFyX3QgKiByaHMp
IHsKLSAgaWYgKGxocyA9PSBOVUxMKSByZXR1cm4gcmhzID09IE5VTEw7Ci0KLSAgaWYgKHJocyA9
PSBOVUxMKSByZXR1cm4gZmFsc2U7Ci0KLSAgcmV0dXJuIHdjc2NtcChsaHMsIHJocykgPT0gMDsK
LX0KLQotLy8gSGVscGVyIGZ1bmN0aW9uIGZvciAqX1NUUkVRIG9uIHdpZGUgc3RyaW5ncy4KLUFz
c2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3Y2hhcl90KiBsaHMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2NoYXJfdCogcmhzKSB7Ci0gIGlm
IChTdHJpbmc6OldpZGVDU3RyaW5nRXF1YWxzKGxocywgcmhzKSkgewotICAgIHJldHVybiBBc3Nl
cnRpb25TdWNjZXNzKCk7Ci0gIH0KLQotICByZXR1cm4gRXFGYWlsdXJlKGxoc19leHByZXNzaW9u
LAotICAgICAgICAgICAgICAgICAgIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAg
IFByaW50VG9TdHJpbmcobGhzKSwKLSAgICAgICAgICAgICAgICAgICBQcmludFRvU3RyaW5nKHJo
cyksCi0gICAgICAgICAgICAgICAgICAgZmFsc2UpOwotfQotCi0vLyBIZWxwZXIgZnVuY3Rpb24g
Zm9yICpfU1RSTkUgb24gd2lkZSBzdHJpbmdzLgotQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlclNU
Uk5FKGNvbnN0IGNoYXIqIHMxX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogczJfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCB3Y2hhcl90KiBzMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCB3Y2hhcl90KiBzMikgewotICBpZiAoIVN0cmluZzo6V2lkZUNTdHJpbmdFcXVhbHMo
czEsIHMyKSkgewotICAgIHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7Ci0gIH0KLQotICByZXR1
cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8ICJFeHBlY3RlZDogKCIgPDwgczFfZXhwcmVzc2lvbiA8
PCAiKSAhPSAoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHMyX2V4cHJlc3Npb24g
PDwgIiksIGFjdHVhbDogIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFByaW50VG9T
dHJpbmcoczEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiB2cyAiIDw8IFByaW50
VG9TdHJpbmcoczIpOwotfQotCi0vLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBj
YXNlLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUKLS8vIHRoZSBzYW1lIGNvbnRlbnQuCi0v
LwotLy8gVW5saWtlIHN0cmNhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwg
YXJndW1lbnQocykuICBBCi0vLyBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50
IHRvIGFueSBub24tTlVMTCBDIHN0cmluZywKLS8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5n
LgotYm9vbCBTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZUNTdHJpbmdFcXVhbHMoY29uc3QgY2hhciAq
IGxocywgY29uc3QgY2hhciAqIHJocykgewotICBpZiAobGhzID09IE5VTEwpCi0gICAgcmV0dXJu
IHJocyA9PSBOVUxMOwotICBpZiAocmhzID09IE5VTEwpCi0gICAgcmV0dXJuIGZhbHNlOwotICBy
ZXR1cm4gcG9zaXg6OlN0ckNhc2VDbXAobGhzLCByaHMpID09IDA7Ci19Ci0KLSAgLy8gQ29tcGFy
ZXMgdHdvIHdpZGUgQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAgUmV0dXJucyB0cnVlIGlmZiB0
aGV5Ci0gIC8vIGhhdmUgdGhlIHNhbWUgY29udGVudC4KLSAgLy8KLSAgLy8gVW5saWtlIHdjc2Nh
c2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuCi0gIC8v
IEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5VTEwg
d2lkZSBDIHN0cmluZywKLSAgLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCi0gIC8vIE5C
OiBUaGUgaW1wbGVtZW50YXRpb25zIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgc2xpZ2h0bHkgZGlm
ZmVyLgotICAvLyBPbiB3aW5kb3dzLCB0aGlzIG1ldGhvZCB1c2VzIF93Y3NpY21wIHdoaWNoIGNv
bXBhcmVzIGFjY29yZGluZyB0byBMQ19DVFlQRQotICAvLyBlbnZpcm9ubWVudCB2YXJpYWJsZS4g
T24gR05VIHBsYXRmb3JtIHRoaXMgbWV0aG9kIHVzZXMgd2NzY2FzZWNtcAotICAvLyB3aGljaCBj
b21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUgY2F0ZWdvcnkgb2YgdGhlIGN1cnJlbnQgbG9j
YWxlLgotICAvLyBPbiBNYWNPUyBYLCBpdCB1c2VzIHRvd2xvd2VyLCB3aGljaCBhbHNvIHVzZXMg
TENfQ1RZUEUgY2F0ZWdvcnkgb2YgdGhlCi0gIC8vIGN1cnJlbnQgbG9jYWxlLgotYm9vbCBTdHJp
bmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxocywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3Y2hh
cl90KiByaHMpIHsKLSAgaWYgKGxocyA9PSBOVUxMKSByZXR1cm4gcmhzID09IE5VTEw7Ci0KLSAg
aWYgKHJocyA9PSBOVUxMKSByZXR1cm4gZmFsc2U7Ci0KLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0g
IHJldHVybiBfd2NzaWNtcChsaHMsIHJocykgPT0gMDsKLSNlbGlmIEdURVNUX09TX0xJTlVYICYm
ICFHVEVTVF9PU19MSU5VWF9BTkRST0lECi0gIHJldHVybiB3Y3NjYXNlY21wKGxocywgcmhzKSA9
PSAwOwotI2Vsc2UKLSAgLy8gQW5kcm9pZCwgTWFjIE9TIFggYW5kIEN5Z3dpbiBkb24ndCBkZWZp
bmUgd2NzY2FzZWNtcC4KLSAgLy8gT3RoZXIgdW5rbm93biBPU2VzIG1heSBub3QgZGVmaW5lIGl0
IGVpdGhlci4KLSAgd2ludF90IGxlZnQsIHJpZ2h0OwotICBkbyB7Ci0gICAgbGVmdCA9IHRvd2xv
d2VyKCpsaHMrKyk7Ci0gICAgcmlnaHQgPSB0b3dsb3dlcigqcmhzKyspOwotICB9IHdoaWxlIChs
ZWZ0ICYmIGxlZnQgPT0gcmlnaHQpOwotICByZXR1cm4gbGVmdCA9PSByaWdodDsKLSNlbmRpZiAg
Ly8gT1Mgc2VsZWN0b3IKLX0KLQotLy8gUmV0dXJucyB0cnVlIGlmZiBzdHIgZW5kcyB3aXRoIHRo
ZSBnaXZlbiBzdWZmaXgsIGlnbm9yaW5nIGNhc2UuCi0vLyBBbnkgc3RyaW5nIGlzIGNvbnNpZGVy
ZWQgdG8gZW5kIHdpdGggYW4gZW1wdHkgc3VmZml4LgotYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2Fz
ZUluc2Vuc2l0aXZlKAotICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBzdWZmaXgpIHsKLSAgY29uc3Qgc2l6ZV90IHN0cl9sZW4gPSBzdHIubGVuZ3RoKCk7Ci0g
IGNvbnN0IHNpemVfdCBzdWZmaXhfbGVuID0gc3VmZml4Lmxlbmd0aCgpOwotICByZXR1cm4gKHN0
cl9sZW4gPj0gc3VmZml4X2xlbikgJiYKLSAgICAgICAgIENhc2VJbnNlbnNpdGl2ZUNTdHJpbmdF
cXVhbHMoc3RyLmNfc3RyKCkgKyBzdHJfbGVuIC0gc3VmZml4X2xlbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4LmNfc3RyKCkpOwotfQotCi0vLyBGb3JtYXRz
IGFuIGludCB2YWx1ZSBhcyAiJTAyZCIuCi1zdGQ6OnN0cmluZyBTdHJpbmc6OkZvcm1hdEludFdp
ZHRoMihpbnQgdmFsdWUpIHsKLSAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7Ci0gIHNzIDw8IHN0ZDo6
c2V0ZmlsbCgnMCcpIDw8IHN0ZDo6c2V0dygyKSA8PCB2YWx1ZTsKLSAgcmV0dXJuIHNzLnN0cigp
OwotfQotCi0vLyBGb3JtYXRzIGFuIGludCB2YWx1ZSBhcyAiJVgiLgotc3RkOjpzdHJpbmcgU3Ry
aW5nOjpGb3JtYXRIZXhJbnQoaW50IHZhbHVlKSB7Ci0gIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwot
ICBzcyA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCB2YWx1ZTsKLSAgcmV0dXJuIHNz
LnN0cigpOwotfQotCi0vLyBGb3JtYXRzIGEgYnl0ZSBhcyAiJTAyWCIuCi1zdGQ6OnN0cmluZyBT
dHJpbmc6OkZvcm1hdEJ5dGUodW5zaWduZWQgY2hhciB2YWx1ZSkgewotICBzdGQ6OnN0cmluZ3N0
cmVhbSBzczsKLSAgc3MgPDwgc3RkOjpzZXRmaWxsKCcwJykgPDwgc3RkOjpzZXR3KDIpIDw8IHN0
ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlCi0gICAgIDw8IHN0YXRpY19jYXN0PHVuc2lnbmVkIGlu
dD4odmFsdWUpOwotICByZXR1cm4gc3Muc3RyKCk7Ci19Ci0KLS8vIENvbnZlcnRzIHRoZSBidWZm
ZXIgaW4gYSBzdHJpbmdzdHJlYW0gdG8gYW4gc3RkOjpzdHJpbmcsIGNvbnZlcnRpbmcgTlVMCi0v
LyBieXRlcyB0byAiXFwwIiBhbG9uZyB0aGUgd2F5Lgotc3RkOjpzdHJpbmcgU3RyaW5nU3RyZWFt
VG9TdHJpbmcoOjpzdGQ6OnN0cmluZ3N0cmVhbSogc3MpIHsKLSAgY29uc3QgOjpzdGQ6OnN0cmlu
ZyYgc3RyID0gc3MtPnN0cigpOwotICBjb25zdCBjaGFyKiBjb25zdCBzdGFydCA9IHN0ci5jX3N0
cigpOwotICBjb25zdCBjaGFyKiBjb25zdCBlbmQgPSBzdGFydCArIHN0ci5sZW5ndGgoKTsKLQot
ICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNlcnZlKDIgKiAoZW5kIC0gc3RhcnQp
KTsKLSAgZm9yIChjb25zdCBjaGFyKiBjaCA9IHN0YXJ0OyBjaCAhPSBlbmQ7ICsrY2gpIHsKLSAg
ICBpZiAoKmNoID09ICdcMCcpIHsKLSAgICAgIHJlc3VsdCArPSAiXFwwIjsgIC8vIFJlcGxhY2Vz
IE5VTCB3aXRoICJcXDAiOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXN1bHQgKz0gKmNoOwotICAg
IH0KLSAgfQotCi0gIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8vIEFwcGVuZHMgdGhlIHVzZXItc3Vw
cGxpZWQgbWVzc2FnZSB0byB0aGUgR29vZ2xlLVRlc3QtZ2VuZXJhdGVkIG1lc3NhZ2UuCi1zdGQ6
OnN0cmluZyBBcHBlbmRVc2VyTWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgZ3Rlc3RfbXNnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTWVzc2FnZSYgdXNlcl9tc2cpIHsK
LSAgLy8gQXBwZW5kcyB0aGUgdXNlciBtZXNzYWdlIGlmIGl0J3Mgbm9uLWVtcHR5LgotICBjb25z
dCBzdGQ6OnN0cmluZyB1c2VyX21zZ19zdHJpbmcgPSB1c2VyX21zZy5HZXRTdHJpbmcoKTsKLSAg
aWYgKHVzZXJfbXNnX3N0cmluZy5lbXB0eSgpKSB7Ci0gICAgcmV0dXJuIGd0ZXN0X21zZzsKLSAg
fQotCi0gIHJldHVybiBndGVzdF9tc2cgKyAiXG4iICsgdXNlcl9tc2dfc3RyaW5nOwotfQotCi19
ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLQotLy8gY2xhc3MgVGVzdFJlc3VsdAotCi0vLyBDcmVh
dGVzIGFuIGVtcHR5IFRlc3RSZXN1bHQuCi1UZXN0UmVzdWx0OjpUZXN0UmVzdWx0KCkKLSAgICA6
IGRlYXRoX3Rlc3RfY291bnRfKDApLAotICAgICAgZWxhcHNlZF90aW1lXygwKSB7Ci19Ci0KLS8v
IEQndG9yLgotVGVzdFJlc3VsdDo6flRlc3RSZXN1bHQoKSB7Ci19Ci0KLS8vIFJldHVybnMgdGhl
IGktdGggdGVzdCBwYXJ0IHJlc3VsdCBhbW9uZyBhbGwgdGhlIHJlc3VsdHMuIGkgY2FuCi0vLyBy
YW5nZSBmcm9tIDAgdG8gdG90YWxfcGFydF9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhh
dCByYW5nZSwKLS8vIGFib3J0cyB0aGUgcHJvZ3JhbS4KLWNvbnN0IFRlc3RQYXJ0UmVzdWx0JiBU
ZXN0UmVzdWx0OjpHZXRUZXN0UGFydFJlc3VsdChpbnQgaSkgY29uc3QgewotICBpZiAoaSA8IDAg
fHwgaSA+PSB0b3RhbF9wYXJ0X2NvdW50KCkpCi0gICAgaW50ZXJuYWw6OnBvc2l4OjpBYm9ydCgp
OwotICByZXR1cm4gdGVzdF9wYXJ0X3Jlc3VsdHNfLmF0KGkpOwotfQotCi0vLyBSZXR1cm5zIHRo
ZSBpLXRoIHRlc3QgcHJvcGVydHkuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwotLy8gdGVzdF9wcm9w
ZXJ0eV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgYWJvcnRzIHRoZQot
Ly8gcHJvZ3JhbS4KLWNvbnN0IFRlc3RQcm9wZXJ0eSYgVGVzdFJlc3VsdDo6R2V0VGVzdFByb3Bl
cnR5KGludCBpKSBjb25zdCB7Ci0gIGlmIChpIDwgMCB8fCBpID49IHRlc3RfcHJvcGVydHlfY291
bnQoKSkKLSAgICBpbnRlcm5hbDo6cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0X3Byb3Bl
cnRpZXNfLmF0KGkpOwotfQotCi0vLyBDbGVhcnMgdGhlIHRlc3QgcGFydCByZXN1bHRzLgotdm9p
ZCBUZXN0UmVzdWx0OjpDbGVhclRlc3RQYXJ0UmVzdWx0cygpIHsKLSAgdGVzdF9wYXJ0X3Jlc3Vs
dHNfLmNsZWFyKCk7Ci19Ci0KLS8vIEFkZHMgYSB0ZXN0IHBhcnQgcmVzdWx0IHRvIHRoZSBsaXN0
Lgotdm9pZCBUZXN0UmVzdWx0OjpBZGRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3Vs
dCYgdGVzdF9wYXJ0X3Jlc3VsdCkgewotICB0ZXN0X3BhcnRfcmVzdWx0c18ucHVzaF9iYWNrKHRl
c3RfcGFydF9yZXN1bHQpOwotfQotCi0vLyBBZGRzIGEgdGVzdCBwcm9wZXJ0eSB0byB0aGUgbGlz
dC4gSWYgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIGtleSBhcyB0aGUKLS8vIHN1cHBsaWVkIHBy
b3BlcnR5IGlzIGFscmVhZHkgcmVwcmVzZW50ZWQsIHRoZSB2YWx1ZSBvZiB0aGlzIHRlc3RfcHJv
cGVydHkKLS8vIHJlcGxhY2VzIHRoZSBvbGQgdmFsdWUgZm9yIHRoYXQga2V5Lgotdm9pZCBUZXN0
UmVzdWx0OjpSZWNvcmRQcm9wZXJ0eShjb25zdCBzdGQ6OnN0cmluZyYgeG1sX2VsZW1lbnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9w
cm9wZXJ0eSkgewotICBpZiAoIVZhbGlkYXRlVGVzdFByb3BlcnR5KHhtbF9lbGVtZW50LCB0ZXN0
X3Byb3BlcnR5KSkgewotICAgIHJldHVybjsKLSAgfQotICBpbnRlcm5hbDo6TXV0ZXhMb2NrIGxv
Y2soJnRlc3RfcHJvcGVyaXRlc19tdXRleF8pOwotICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0UHJv
cGVydHk+OjppdGVyYXRvciBwcm9wZXJ0eV93aXRoX21hdGNoaW5nX2tleSA9Ci0gICAgICBzdGQ6
OmZpbmRfaWYodGVzdF9wcm9wZXJ0aWVzXy5iZWdpbigpLCB0ZXN0X3Byb3BlcnRpZXNfLmVuZCgp
LAotICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpUZXN0UHJvcGVydHlLZXlJcyh0ZXN0X3By
b3BlcnR5LmtleSgpKSk7Ci0gIGlmIChwcm9wZXJ0eV93aXRoX21hdGNoaW5nX2tleSA9PSB0ZXN0
X3Byb3BlcnRpZXNfLmVuZCgpKSB7Ci0gICAgdGVzdF9wcm9wZXJ0aWVzXy5wdXNoX2JhY2sodGVz
dF9wcm9wZXJ0eSk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIHByb3BlcnR5X3dpdGhfbWF0Y2hpbmdf
a2V5LT5TZXRWYWx1ZSh0ZXN0X3Byb3BlcnR5LnZhbHVlKCkpOwotfQotCi0vLyBUaGUgbGlzdCBv
ZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0c3VpdGVzPiBlbGVtZW50IG9m
IFhNTAotLy8gb3V0cHV0Lgotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RT
dWl0ZXNBdHRyaWJ1dGVzW10gPSB7Ci0gICJkaXNhYmxlZCIsCi0gICJlcnJvcnMiLAotICAiZmFp
bHVyZXMiLAotICAibmFtZSIsCi0gICJyYW5kb21fc2VlZCIsCi0gICJ0ZXN0cyIsCi0gICJ0aW1l
IiwKLSAgInRpbWVzdGFtcCIKLX07Ci0KLS8vIFRoZSBsaXN0IG9mIHJlc2VydmVkIGF0dHJpYnV0
ZXMgdXNlZCBpbiB0aGUgPHRlc3RzdWl0ZT4gZWxlbWVudCBvZiBYTUwKLS8vIG91dHB1dC4KLXN0
YXRpYyBjb25zdCBjaGFyKiBjb25zdCBrUmVzZXJ2ZWRUZXN0U3VpdGVBdHRyaWJ1dGVzW10gPSB7
Ci0gICJkaXNhYmxlZCIsCi0gICJlcnJvcnMiLAotICAiZmFpbHVyZXMiLAotICAibmFtZSIsCi0g
ICJ0ZXN0cyIsCi0gICJ0aW1lIgotfTsKLQotLy8gVGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgYXR0cmli
dXRlcyB1c2VkIGluIHRoZSA8dGVzdGNhc2U+IGVsZW1lbnQgb2YgWE1MIG91dHB1dC4KLXN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBrUmVzZXJ2ZWRUZXN0Q2FzZUF0dHJpYnV0ZXNbXSA9IHsKLSAg
ImNsYXNzbmFtZSIsCi0gICJuYW1lIiwKLSAgInN0YXR1cyIsCi0gICJ0aW1lIiwKLSAgInR5cGVf
cGFyYW0iLAotICAidmFsdWVfcGFyYW0iCi19OwotCi10ZW1wbGF0ZSA8aW50IGtTaXplPgotc3Rk
Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+IEFycmF5QXNWZWN0b3IoY29uc3QgY2hhciogY29uc3QgKCZh
cnJheSlba1NpemVdKSB7Ci0gIHJldHVybiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4oYXJyYXks
IGFycmF5ICsga1NpemUpOwotfQotCi1zdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IEdl
dFJlc2VydmVkQXR0cmlidXRlc0ZvckVsZW1lbnQoCi0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIHht
bF9lbGVtZW50KSB7Ci0gIGlmICh4bWxfZWxlbWVudCA9PSAidGVzdHN1aXRlcyIpIHsKLSAgICBy
ZXR1cm4gQXJyYXlBc1ZlY3RvcihrUmVzZXJ2ZWRUZXN0U3VpdGVzQXR0cmlidXRlcyk7Ci0gIH0g
ZWxzZSBpZiAoeG1sX2VsZW1lbnQgPT0gInRlc3RzdWl0ZSIpIHsKLSAgICByZXR1cm4gQXJyYXlB
c1ZlY3RvcihrUmVzZXJ2ZWRUZXN0U3VpdGVBdHRyaWJ1dGVzKTsKLSAgfSBlbHNlIGlmICh4bWxf
ZWxlbWVudCA9PSAidGVzdGNhc2UiKSB7Ci0gICAgcmV0dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2Vy
dmVkVGVzdENhc2VBdHRyaWJ1dGVzKTsKLSAgfSBlbHNlIHsKLSAgICBHVEVTVF9DSEVDS18oZmFs
c2UpIDw8ICJVbnJlY29nbml6ZWQgeG1sX2VsZW1lbnQgcHJvdmlkZWQ6ICIgPDwgeG1sX2VsZW1l
bnQ7Ci0gIH0KLSAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIGJ1dCBzb21lIGNvbXBpbGVy
cyBtYXkgbm90IHJlYWxpemVzIHRoYXQuCi0gIHJldHVybiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu
Zz4oKTsKLX0KLQotc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFdvcmRMaXN0KGNvbnN0IHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiYgd29yZHMpIHsKLSAgTWVzc2FnZSB3b3JkX2xpc3Q7Ci0gIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHMuc2l6ZSgpOyArK2kpIHsKLSAgICBpZiAoaSA+IDAg
JiYgd29yZHMuc2l6ZSgpID4gMikgewotICAgICAgd29yZF9saXN0IDw8ICIsICI7Ci0gICAgfQot
ICAgIGlmIChpID09IHdvcmRzLnNpemUoKSAtIDEpIHsKLSAgICAgIHdvcmRfbGlzdCA8PCAiYW5k
ICI7Ci0gICAgfQotICAgIHdvcmRfbGlzdCA8PCAiJyIgPDwgd29yZHNbaV0gPDwgIiciOwotICB9
Ci0gIHJldHVybiB3b3JkX2xpc3QuR2V0U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyBib29sIFZhbGlk
YXRlVGVzdFByb3BlcnR5TmFtZSgKLSAgICBjb25zdCBzdGQ6OnN0cmluZyYgcHJvcGVydHlfbmFt
ZSwKLSAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIHJlc2VydmVkX25hbWVzKSB7
Ci0gIGlmIChzdGQ6OmZpbmQocmVzZXJ2ZWRfbmFtZXMuYmVnaW4oKSwgcmVzZXJ2ZWRfbmFtZXMu
ZW5kKCksIHByb3BlcnR5X25hbWUpICE9Ci0gICAgICAgICAgcmVzZXJ2ZWRfbmFtZXMuZW5kKCkp
IHsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJSZXNlcnZlZCBrZXkgdXNlZCBpbiBSZWNvcmRQcm9w
ZXJ0eSgpOiAiIDw8IHByb3BlcnR5X25hbWUKLSAgICAgICAgICAgICAgICAgIDw8ICIgKCIgPDwg
Rm9ybWF0V29yZExpc3QocmVzZXJ2ZWRfbmFtZXMpCi0gICAgICAgICAgICAgICAgICA8PCAiIGFy
ZSByZXNlcnZlZCBieSAiIDw8IEdURVNUX05BTUVfIDw8ICIpIjsKLSAgICByZXR1cm4gZmFsc2U7
Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLS8vIEFkZHMgYSBmYWlsdXJlIGlmIHRoZSBrZXkg
aXMgYSByZXNlcnZlZCBhdHRyaWJ1dGUgb2YgdGhlIGVsZW1lbnQgbmFtZWQKLS8vIHhtbF9lbGVt
ZW50LiAgUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wZXJ0eSBpcyB2YWxpZC4KLWJvb2wgVGVzdFJl
c3VsdDo6VmFsaWRhdGVUZXN0UHJvcGVydHkoY29uc3Qgc3RkOjpzdHJpbmcmIHhtbF9lbGVtZW50
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UHJvcGVy
dHkmIHRlc3RfcHJvcGVydHkpIHsKLSAgcmV0dXJuIFZhbGlkYXRlVGVzdFByb3BlcnR5TmFtZSh0
ZXN0X3Byb3BlcnR5LmtleSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdl
dFJlc2VydmVkQXR0cmlidXRlc0ZvckVsZW1lbnQoeG1sX2VsZW1lbnQpKTsKLX0KLQotLy8gQ2xl
YXJzIHRoZSBvYmplY3QuCi12b2lkIFRlc3RSZXN1bHQ6OkNsZWFyKCkgewotICB0ZXN0X3BhcnRf
cmVzdWx0c18uY2xlYXIoKTsKLSAgdGVzdF9wcm9wZXJ0aWVzXy5jbGVhcigpOwotICBkZWF0aF90
ZXN0X2NvdW50XyA9IDA7Ci0gIGVsYXBzZWRfdGltZV8gPSAwOwotfQotCi0vLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSB0ZXN0IGZhaWxlZC4KLWJvb2wgVGVzdFJlc3VsdDo6RmFpbGVkKCkgY29uc3Qg
ewotICBmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsX3BhcnRfY291bnQoKTsgKytpKSB7Ci0gICAg
aWYgKEdldFRlc3RQYXJ0UmVzdWx0KGkpLmZhaWxlZCgpKQotICAgICAgcmV0dXJuIHRydWU7Ci0g
IH0KLSAgcmV0dXJuIGZhbHNlOwotfQotCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBh
cnQgZmF0YWxseSBmYWlsZWQuCi1zdGF0aWMgYm9vbCBUZXN0UGFydEZhdGFsbHlGYWlsZWQoY29u
c3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgewotICByZXR1cm4gcmVzdWx0LmZhdGFsbHlfZmFp
bGVkKCk7Ci19Ci0KLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQu
Ci1ib29sIFRlc3RSZXN1bHQ6Okhhc0ZhdGFsRmFpbHVyZSgpIGNvbnN0IHsKLSAgcmV0dXJuIENv
dW50SWYodGVzdF9wYXJ0X3Jlc3VsdHNfLCBUZXN0UGFydEZhdGFsbHlGYWlsZWQpID4gMDsKLX0K
LQotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4K
LXN0YXRpYyBib29sIFRlc3RQYXJ0Tm9uZmF0YWxseUZhaWxlZChjb25zdCBUZXN0UGFydFJlc3Vs
dCYgcmVzdWx0KSB7Ci0gIHJldHVybiByZXN1bHQubm9uZmF0YWxseV9mYWlsZWQoKTsKLX0KLQot
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4KLWJv
b2wgVGVzdFJlc3VsdDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkgY29uc3QgewotICByZXR1cm4gQ291
bnRJZih0ZXN0X3BhcnRfcmVzdWx0c18sIFRlc3RQYXJ0Tm9uZmF0YWxseUZhaWxlZCkgPiAwOwot
fQotCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3QgcGFydHMuICBUaGlzIGlzIHRoZSBz
dW0gb2YgdGhlIG51bWJlcgotLy8gb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHBhcnRzIGFuZCB0aGUgbnVt
YmVyIG9mIGZhaWxlZCB0ZXN0IHBhcnRzLgotaW50IFRlc3RSZXN1bHQ6OnRvdGFsX3BhcnRfY291
bnQoKSBjb25zdCB7Ci0gIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHRlc3RfcGFydF9yZXN1bHRz
Xy5zaXplKCkpOwotfQotCi0vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIHRlc3QgcHJvcGVy
dGllcy4KLWludCBUZXN0UmVzdWx0Ojp0ZXN0X3Byb3BlcnR5X2NvdW50KCkgY29uc3QgewotICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X3Byb3BlcnRpZXNfLnNpemUoKSk7Ci19Ci0KLS8v
IGNsYXNzIFRlc3QKLQotLy8gQ3JlYXRlcyBhIFRlc3Qgb2JqZWN0LgotCi0vLyBUaGUgYyd0b3Ig
c2F2ZXMgdGhlIHN0YXRlcyBvZiBhbGwgZmxhZ3MuCi1UZXN0OjpUZXN0KCkKLSAgICA6IGd0ZXN0
X2ZsYWdfc2F2ZXJfKG5ldyBHVEVTVF9GTEFHX1NBVkVSXykgewotfQotCi0vLyBUaGUgZCd0b3Ig
cmVzdG9yZXMgdGhlIHN0YXRlcyBvZiBhbGwgZmxhZ3MuICBUaGUgYWN0dWFsIHdvcmsgaXMKLS8v
IGRvbmUgYnkgdGhlIGQndG9yIG9mIHRoZSBndGVzdF9mbGFnX3NhdmVyXyBmaWVsZCwgYW5kIHRo
dXMgbm90Ci0vLyB2aXNpYmxlIGhlcmUuCi1UZXN0Ojp+VGVzdCgpIHsKLX0KLQotLy8gU2V0cyB1
cCB0aGUgdGVzdCBmaXh0dXJlLgotLy8KLS8vIEEgc3ViLWNsYXNzIG1heSBvdmVycmlkZSB0aGlz
Lgotdm9pZCBUZXN0OjpTZXRVcCgpIHsKLX0KLQotLy8gVGVhcnMgZG93biB0aGUgdGVzdCBmaXh0
dXJlLgotLy8KLS8vIEEgc3ViLWNsYXNzIG1heSBvdmVycmlkZSB0aGlzLgotdm9pZCBUZXN0OjpU
ZWFyRG93bigpIHsKLX0KLQotLy8gQWxsb3dzIHVzZXIgc3VwcGxpZWQga2V5IHZhbHVlIHBhaXJz
IHRvIGJlIHJlY29yZGVkIGZvciBsYXRlciBvdXRwdXQuCi12b2lkIFRlc3Q6OlJlY29yZFByb3Bl
cnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewot
ICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+UmVjb3JkUHJvcGVydHkoa2V5LCB2YWx1ZSk7Ci19
Ci0KLS8vIEFsbG93cyB1c2VyIHN1cHBsaWVkIGtleSB2YWx1ZSBwYWlycyB0byBiZSByZWNvcmRl
ZCBmb3IgbGF0ZXIgb3V0cHV0Lgotdm9pZCBUZXN0OjpSZWNvcmRQcm9wZXJ0eShjb25zdCBzdGQ6
OnN0cmluZyYga2V5LCBpbnQgdmFsdWUpIHsKLSAgTWVzc2FnZSB2YWx1ZV9tZXNzYWdlOwotICB2
YWx1ZV9tZXNzYWdlIDw8IHZhbHVlOwotICBSZWNvcmRQcm9wZXJ0eShrZXksIHZhbHVlX21lc3Nh
Z2UuR2V0U3RyaW5nKCkuY19zdHIoKSk7Ci19Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLXZv
aWQgUmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHJl
c3VsdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcmIG1lc3NhZ2UpIHsKLSAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhIGZyaWVuZCBvZiBV
bml0VGVzdCBhbmQgYXMgc3VjaCBoYXMgYWNjZXNzIHRvCi0gIC8vIEFkZFRlc3RQYXJ0UmVzdWx0
LgotICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+QWRkVGVzdFBhcnRSZXN1bHQoCi0gICAgICBy
ZXN1bHRfdHlwZSwKLSAgICAgIE5VTEwsICAvLyBObyBpbmZvIGFib3V0IHRoZSBzb3VyY2UgZmls
ZSB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VycmVkLgotICAgICAgLTEsICAgIC8vIFdlIGhhdmUg
bm8gaW5mbyBvbiB3aGljaCBsaW5lIGNhdXNlZCB0aGUgZXhjZXB0aW9uLgotICAgICAgbWVzc2Fn
ZSwKLSAgICAgICIiKTsgICAvLyBObyBzdGFjayB0cmFjZSwgZWl0aGVyLgotfQotCi19ICAvLyBu
YW1lc3BhY2UgaW50ZXJuYWwKLQotLy8gR29vZ2xlIFRlc3QgcmVxdWlyZXMgYWxsIHRlc3RzIGlu
IHRoZSBzYW1lIHRlc3QgY2FzZSB0byB1c2UgdGhlIHNhbWUgdGVzdAotLy8gZml4dHVyZSBjbGFz
cy4gIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZQotLy8g
c2FtZSBmaXh0dXJlIGNsYXNzIGFzIHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50IHRlc3Qg
Y2FzZS4gIElmCi0vLyB5ZXMsIGl0IHJldHVybnMgdHJ1ZTsgb3RoZXJ3aXNlIGl0IGdlbmVyYXRl
cyBhIEdvb2dsZSBUZXN0IGZhaWx1cmUgYW5kCi0vLyByZXR1cm5zIGZhbHNlLgotYm9vbCBUZXN0
OjpIYXNTYW1lRml4dHVyZUNsYXNzKCkgewotICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25z
dCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwotICBjb25zdCBUZXN0Q2FzZSog
Y29uc3QgdGVzdF9jYXNlID0gaW1wbC0+Y3VycmVudF90ZXN0X2Nhc2UoKTsKLQotICAvLyBJbmZv
IGFib3V0IHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50IHRlc3QgY2FzZS4KLSAgY29uc3Qg
VGVzdEluZm8qIGNvbnN0IGZpcnN0X3Rlc3RfaW5mbyA9IHRlc3RfY2FzZS0+dGVzdF9pbmZvX2xp
c3QoKVswXTsKLSAgY29uc3QgaW50ZXJuYWw6OlR5cGVJZCBmaXJzdF9maXh0dXJlX2lkID0gZmly
c3RfdGVzdF9pbmZvLT5maXh0dXJlX2NsYXNzX2lkXzsKLSAgY29uc3QgY2hhciogY29uc3QgZmly
c3RfdGVzdF9uYW1lID0gZmlyc3RfdGVzdF9pbmZvLT5uYW1lKCk7Ci0KLSAgLy8gSW5mbyBhYm91
dCB0aGUgY3VycmVudCB0ZXN0LgotICBjb25zdCBUZXN0SW5mbyogY29uc3QgdGhpc190ZXN0X2lu
Zm8gPSBpbXBsLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBjb25zdCBpbnRlcm5hbDo6VHlwZUlk
IHRoaXNfZml4dHVyZV9pZCA9IHRoaXNfdGVzdF9pbmZvLT5maXh0dXJlX2NsYXNzX2lkXzsKLSAg
Y29uc3QgY2hhciogY29uc3QgdGhpc190ZXN0X25hbWUgPSB0aGlzX3Rlc3RfaW5mby0+bmFtZSgp
OwotCi0gIGlmICh0aGlzX2ZpeHR1cmVfaWQgIT0gZmlyc3RfZml4dHVyZV9pZCkgewotICAgIC8v
IElzIHRoZSBmaXJzdCB0ZXN0IGRlZmluZWQgdXNpbmcgVEVTVD8KLSAgICBjb25zdCBib29sIGZp
cnN0X2lzX1RFU1QgPSBmaXJzdF9maXh0dXJlX2lkID09IGludGVybmFsOjpHZXRUZXN0VHlwZUlk
KCk7Ci0gICAgLy8gSXMgdGhpcyB0ZXN0IGRlZmluZWQgdXNpbmcgVEVTVD8KLSAgICBjb25zdCBi
b29sIHRoaXNfaXNfVEVTVCA9IHRoaXNfZml4dHVyZV9pZCA9PSBpbnRlcm5hbDo6R2V0VGVzdFR5
cGVJZCgpOwotCi0gICAgaWYgKGZpcnN0X2lzX1RFU1QgfHwgdGhpc19pc19URVNUKSB7Ci0gICAg
ICAvLyBCb3RoIFRFU1QgYW5kIFRFU1RfRiBhcHBlYXIgaW4gc2FtZSB0ZXN0IGNhc2UsIHdoaWNo
IGlzIGluY29ycmVjdC4KLSAgICAgIC8vIFRlbGwgdGhlIHVzZXIgaG93IHRvIGZpeCB0aGlzLgot
Ci0gICAgICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBURVNUIGFuZCB0aGUgbmFtZSBvZiB0aGUg
VEVTVF9GLiAgTm90ZQotICAgICAgLy8gdGhhdCBmaXJzdF9pc19URVNUIGFuZCB0aGlzX2lzX1RF
U1QgY2Fubm90IGJvdGggYmUgdHJ1ZSwgYXMKLSAgICAgIC8vIHRoZSBmaXh0dXJlIElEcyBhcmUg
ZGlmZmVyZW50IGZvciB0aGUgdHdvIHRlc3RzLgotICAgICAgY29uc3QgY2hhciogY29uc3QgVEVT
VF9uYW1lID0KLSAgICAgICAgICBmaXJzdF9pc19URVNUID8gZmlyc3RfdGVzdF9uYW1lIDogdGhp
c190ZXN0X25hbWU7Ci0gICAgICBjb25zdCBjaGFyKiBjb25zdCBURVNUX0ZfbmFtZSA9Ci0gICAg
ICAgICAgZmlyc3RfaXNfVEVTVCA/IHRoaXNfdGVzdF9uYW1lIDogZmlyc3RfdGVzdF9uYW1lOwot
Ci0gICAgICBBRERfRkFJTFVSRSgpCi0gICAgICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2Ft
ZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCi0gICAgICAgICAg
PDwgImNsYXNzLCBzbyBtaXhpbmcgVEVTVF9GIGFuZCBURVNUIGluIHRoZSBzYW1lIHRlc3QgY2Fz
ZSBpc1xuIgotICAgICAgICAgIDw8ICJpbGxlZ2FsLiAgSW4gdGVzdCBjYXNlICIgPDwgdGhpc190
ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1lKCkKLSAgICAgICAgICA8PCAiLFxuIgotICAgICAgICAg
IDw8ICJ0ZXN0ICIgPDwgVEVTVF9GX25hbWUgPDwgIiBpcyBkZWZpbmVkIHVzaW5nIFRFU1RfRiBi
dXRcbiIKLSAgICAgICAgICA8PCAidGVzdCAiIDw8IFRFU1RfbmFtZSA8PCAiIGlzIGRlZmluZWQg
dXNpbmcgVEVTVC4gIFlvdSBwcm9iYWJseVxuIgotICAgICAgICAgIDw8ICJ3YW50IHRvIGNoYW5n
ZSB0aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3RcbiIKLSAgICAg
ICAgICA8PCAiY2FzZS4iOwotICAgIH0gZWxzZSB7Ci0gICAgICAvLyBUd28gZml4dHVyZSBjbGFz
c2VzIHdpdGggdGhlIHNhbWUgbmFtZSBhcHBlYXIgaW4gdHdvIGRpZmZlcmVudAotICAgICAgLy8g
bmFtZXNwYWNlcywgd2hpY2ggaXMgbm90IGFsbG93ZWQuIFRlbGwgdGhlIHVzZXIgaG93IHRvIGZp
eCB0aGlzLgotICAgICAgQUREX0ZBSUxVUkUoKQotICAgICAgICAgIDw8ICJBbGwgdGVzdHMgaW4g
dGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZVxuIgotICAg
ICAgICAgIDw8ICJjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSAiCi0gICAgICAgICAgPDwg
dGhpc190ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1lKCkgPDwgIixcbiIKLSAgICAgICAgICA8PCAi
eW91IGRlZmluZWQgdGVzdCAiIDw8IGZpcnN0X3Rlc3RfbmFtZQotICAgICAgICAgIDw8ICIgYW5k
IHRlc3QgIiA8PCB0aGlzX3Rlc3RfbmFtZSA8PCAiXG4iCi0gICAgICAgICAgPDwgInVzaW5nIHR3
byBkaWZmZXJlbnQgdGVzdCBmaXh0dXJlIGNsYXNzZXMuICBUaGlzIGNhbiBoYXBwZW4gaWZcbiIK
LSAgICAgICAgICA8PCAidGhlIHR3byBjbGFzc2VzIGFyZSBmcm9tIGRpZmZlcmVudCBuYW1lc3Bh
Y2VzIG9yIHRyYW5zbGF0aW9uXG4iCi0gICAgICAgICAgPDwgInVuaXRzIGFuZCBoYXZlIHRoZSBz
YW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmVcbiIKLSAgICAgICAgICA8
PCAib2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IGNh
c2VzLiI7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIHJldHVybiB0cnVlOwot
fQotCi0jaWYgR1RFU1RfSEFTX1NFSAotCi0vLyBBZGRzIGFuICJleGNlcHRpb24gdGhyb3duIiBm
YXRhbCBmYWlsdXJlIHRvIHRoZSBjdXJyZW50IHRlc3QuICBUaGlzCi0vLyBmdW5jdGlvbiByZXR1
cm5zIGl0cyByZXN1bHQgdmlhIGFuIG91dHB1dCBwYXJhbWV0ZXIgcG9pbnRlciBiZWNhdXNlIFZD
KysKLS8vIHByb2hpYml0cyBjcmVhdGlvbiBvZiBvYmplY3RzIHdpdGggZGVzdHJ1Y3RvcnMgb24g
c3RhY2sgaW4gZnVuY3Rpb25zCi0vLyB1c2luZyBfX3RyeSAoc2VlIGVycm9yIEMyNzEyKS4KLXN0
YXRpYyBzdGQ6OnN0cmluZyogRm9ybWF0U2VoRXhjZXB0aW9uTWVzc2FnZShEV09SRCBleGNlcHRp
b25fY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBsb2NhdGlvbikgewotICBNZXNzYWdlIG1lc3NhZ2U7Ci0gIG1lc3NhZ2UgPDwg
IlNFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4IiA8PCBzdGQ6OnNldGJhc2UoMTYpIDw8Ci0gICAg
ZXhjZXB0aW9uX2NvZGUgPDwgc3RkOjpzZXRiYXNlKDEwKSA8PCAiIHRocm93biBpbiAiIDw8IGxv
Y2F0aW9uIDw8ICIuIjsKLQotICByZXR1cm4gbmV3IHN0ZDo6c3RyaW5nKG1lc3NhZ2UuR2V0U3Ry
aW5nKCkpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19TRUgKLQotbmFtZXNwYWNlIGludGVy
bmFsIHsKLQotI2lmIEdURVNUX0hBU19FWENFUFRJT05TCi0KLS8vIEFkZHMgYW4gImV4Y2VwdGlv
biB0aHJvd24iIGZhdGFsIGZhaWx1cmUgdG8gdGhlIGN1cnJlbnQgdGVzdC4KLXN0YXRpYyBzdGQ6
OnN0cmluZyBGb3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogbG9jYXRpb24pIHsKLSAgTWVzc2FnZSBtZXNzYWdlOwotICBpZiAoZGVzY3JpcHRpb24gIT0g
TlVMTCkgewotICAgIG1lc3NhZ2UgPDwgIkMrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiBc
IiIgPDwgZGVzY3JpcHRpb24gPDwgIlwiIjsKLSAgfSBlbHNlIHsKLSAgICBtZXNzYWdlIDw8ICJV
bmtub3duIEMrKyBleGNlcHRpb24iOwotICB9Ci0gIG1lc3NhZ2UgPDwgIiB0aHJvd24gaW4gIiA8
PCBsb2NhdGlvbiA8PCAiLiI7Ci0KLSAgcmV0dXJuIG1lc3NhZ2UuR2V0U3RyaW5nKCk7Ci19Ci0K
LXN0YXRpYyBzdGQ6OnN0cmluZyBQcmludFRlc3RQYXJ0UmVzdWx0VG9TdHJpbmcoCi0gICAgY29u
c3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpOwotCi1Hb29nbGVUZXN0RmFpbHVy
ZUV4Y2VwdGlvbjo6R29vZ2xlVGVzdEZhaWx1cmVFeGNlcHRpb24oCi0gICAgY29uc3QgVGVzdFBh
cnRSZXN1bHQmIGZhaWx1cmUpCi0gICAgOiA6OnN0ZDo6cnVudGltZV9lcnJvcihQcmludFRlc3RQ
YXJ0UmVzdWx0VG9TdHJpbmcoZmFpbHVyZSkuY19zdHIoKSkge30KLQotI2VuZGlmICAvLyBHVEVT
VF9IQVNfRVhDRVBUSU9OUwotCi0vLyBXZSBwdXQgdGhlc2UgaGVscGVyIGZ1bmN0aW9ucyBpbiB0
aGUgaW50ZXJuYWwgbmFtZXNwYWNlIGFzIElCTSdzIHhsQwotLy8gY29tcGlsZXIgcmVqZWN0cyB0
aGUgY29kZSBpZiB0aGV5IHdlcmUgZGVjbGFyZWQgc3RhdGljLgotCi0vLyBSdW5zIHRoZSBnaXZl
biBtZXRob2QgYW5kIGhhbmRsZXMgU0VIIGV4Y2VwdGlvbnMgaXQgdGhyb3dzLCB3aGVuCi0vLyBT
RUggaXMgc3VwcG9ydGVkOyByZXR1cm5zIHRoZSAwLXZhbHVlIGZvciB0eXBlIFJlc3VsdCBpbiBj
YXNlIG9mIGFuCi0vLyBTRUggZXhjZXB0aW9uLiAgKE1pY3Jvc29mdCBjb21waWxlcnMgY2Fubm90
IGhhbmRsZSBTRUggYW5kIEMrKwotLy8gZXhjZXB0aW9ucyBpbiB0aGUgc2FtZSBmdW5jdGlvbi4g
IFRoZXJlZm9yZSwgd2UgcHJvdmlkZSBhIHNlcGFyYXRlCi0vLyB3cmFwcGVyIGZ1bmN0aW9uIGZv
ciBoYW5kbGluZyBTRUggZXhjZXB0aW9ucy4pCi10ZW1wbGF0ZSA8Y2xhc3MgVCwgdHlwZW5hbWUg
UmVzdWx0PgotUmVzdWx0IEhhbmRsZVNlaEV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAot
ICAgIFQqIG9iamVjdCwgUmVzdWx0IChUOjoqbWV0aG9kKSgpLCBjb25zdCBjaGFyKiBsb2NhdGlv
bikgewotI2lmIEdURVNUX0hBU19TRUgKLSAgX190cnkgewotICAgIHJldHVybiAob2JqZWN0LT4q
bWV0aG9kKSgpOwotICB9IF9fZXhjZXB0IChpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpHVGVz
dFNob3VsZFByb2Nlc3NTRUgoICAvLyBOT0xJTlQKLSAgICAgIEdldEV4Y2VwdGlvbkNvZGUoKSkp
IHsKLSAgICAvLyBXZSBjcmVhdGUgdGhlIGV4Y2VwdGlvbiBtZXNzYWdlIG9uIHRoZSBoZWFwIGJl
Y2F1c2UgVkMrKyBwcm9oaWJpdHMKLSAgICAvLyBjcmVhdGlvbiBvZiBvYmplY3RzIHdpdGggZGVz
dHJ1Y3RvcnMgb24gc3RhY2sgaW4gZnVuY3Rpb25zIHVzaW5nIF9fdHJ5Ci0gICAgLy8gKHNlZSBl
cnJvciBDMjcxMikuCi0gICAgc3RkOjpzdHJpbmcqIGV4Y2VwdGlvbl9tZXNzYWdlID0gRm9ybWF0
U2VoRXhjZXB0aW9uTWVzc2FnZSgKLSAgICAgICAgR2V0RXhjZXB0aW9uQ29kZSgpLCBsb2NhdGlv
bik7Ci0gICAgaW50ZXJuYWw6OlJlcG9ydEZhaWx1cmVJblVua25vd25Mb2NhdGlvbihUZXN0UGFy
dFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICpleGNlcHRpb25fbWVzc2FnZSk7Ci0gICAgZGVsZXRlIGV4Y2VwdGlvbl9t
ZXNzYWdlOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXN1bHQ+KDApOwotICB9Ci0jZWxzZQot
ICAodm9pZClsb2NhdGlvbjsKLSAgcmV0dXJuIChvYmplY3QtPiptZXRob2QpKCk7Ci0jZW5kaWYg
IC8vIEdURVNUX0hBU19TRUgKLX0KLQotLy8gUnVucyB0aGUgZ2l2ZW4gbWV0aG9kIGFuZCBjYXRj
aGVzIGFuZCByZXBvcnRzIEMrKyBhbmQvb3IgU0VILXN0eWxlCi0vLyBleGNlcHRpb25zLCBpZiB0
aGV5IGFyZSBzdXBwb3J0ZWQ7IHJldHVybnMgdGhlIDAtdmFsdWUgZm9yIHR5cGUKLS8vIFJlc3Vs
dCBpbiBjYXNlIG9mIGFuIFNFSCBleGNlcHRpb24uCi10ZW1wbGF0ZSA8Y2xhc3MgVCwgdHlwZW5h
bWUgUmVzdWx0PgotUmVzdWx0IEhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAot
ICAgIFQqIG9iamVjdCwgUmVzdWx0IChUOjoqbWV0aG9kKSgpLCBjb25zdCBjaGFyKiBsb2NhdGlv
bikgewotICAvLyBOT1RFOiBUaGUgdXNlciBjb2RlIGNhbiBhZmZlY3QgdGhlIHdheSBpbiB3aGlj
aCBHb29nbGUgVGVzdCBoYW5kbGVzCi0gIC8vIGV4Y2VwdGlvbnMgYnkgc2V0dGluZyBHVEVTVF9G
TEFHKGNhdGNoX2V4Y2VwdGlvbnMpLCBidXQgb25seSBiZWZvcmUKLSAgLy8gUlVOX0FMTF9URVNU
UygpIHN0YXJ0cy4gSXQgaXMgdGVjaG5pY2FsbHkgcG9zc2libGUgdG8gY2hlY2sgdGhlIGZsYWcK
LSAgLy8gYWZ0ZXIgdGhlIGV4Y2VwdGlvbiBpcyBjYXVnaHQgYW5kIGVpdGhlciByZXBvcnQgb3Ig
cmUtdGhyb3cgdGhlCi0gIC8vIGV4Y2VwdGlvbiBiYXNlZCBvbiB0aGUgZmxhZydzIHZhbHVlOgot
ICAvLwotICAvLyB0cnkgewotICAvLyAgIC8vIFBlcmZvcm0gdGhlIHRlc3QgbWV0aG9kLgotICAv
LyB9IGNhdGNoICguLi4pIHsKLSAgLy8gICBpZiAoR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25z
KSkKLSAgLy8gICAgIC8vIFJlcG9ydCB0aGUgZXhjZXB0aW9uIGFzIGZhaWx1cmUuCi0gIC8vICAg
ZWxzZQotICAvLyAgICAgdGhyb3c7ICAvLyBSZS10aHJvd3MgdGhlIG9yaWdpbmFsIGV4Y2VwdGlv
bi4KLSAgLy8gfQotICAvLwotICAvLyBIb3dldmVyLCB0aGUgcHVycG9zZSBvZiB0aGlzIGZsYWcg
aXMgdG8gYWxsb3cgdGhlIHByb2dyYW0gdG8gZHJvcCBpbnRvCi0gIC8vIHRoZSBkZWJ1Z2dlciB3
aGVuIHRoZSBleGNlcHRpb24gaXMgdGhyb3duLiBPbiBtb3N0IHBsYXRmb3Jtcywgb25jZSB0aGUK
LSAgLy8gY29udHJvbCBlbnRlcnMgdGhlIGNhdGNoIGJsb2NrLCB0aGUgZXhjZXB0aW9uIG9yaWdp
biBpbmZvcm1hdGlvbiBpcwotICAvLyBsb3N0IGFuZCB0aGUgZGVidWdnZXIgd2lsbCBzdG9wIHRo
ZSBwcm9ncmFtIGF0IHRoZSBwb2ludCBvZiB0aGUKLSAgLy8gcmUtdGhyb3cgaW4gdGhpcyBmdW5j
dGlvbiAtLSBpbnN0ZWFkIG9mIGF0IHRoZSBwb2ludCBvZiB0aGUgb3JpZ2luYWwKLSAgLy8gdGhy
b3cgc3RhdGVtZW50IGluIHRoZSBjb2RlIHVuZGVyIHRlc3QuICBGb3IgdGhpcyByZWFzb24sIHdl
IHBlcmZvcm0KLSAgLy8gdGhlIGNoZWNrIGVhcmx5LCBzYWNyaWZpY2luZyB0aGUgYWJpbGl0eSB0
byBhZmZlY3QgR29vZ2xlIFRlc3QncwotICAvLyBleGNlcHRpb24gaGFuZGxpbmcgaW4gdGhlIG1l
dGhvZCB3aGVyZSB0aGUgZXhjZXB0aW9uIGlzIHRocm93bi4KLSAgaWYgKGludGVybmFsOjpHZXRV
bml0VGVzdEltcGwoKS0+Y2F0Y2hfZXhjZXB0aW9ucygpKSB7Ci0jaWYgR1RFU1RfSEFTX0VYQ0VQ
VElPTlMKLSAgICB0cnkgewotICAgICAgcmV0dXJuIEhhbmRsZVNlaEV4Y2VwdGlvbnNJbk1ldGhv
ZElmU3VwcG9ydGVkKG9iamVjdCwgbWV0aG9kLCBsb2NhdGlvbik7Ci0gICAgfSBjYXRjaCAoY29u
c3QgaW50ZXJuYWw6Okdvb2dsZVRlc3RGYWlsdXJlRXhjZXB0aW9uJikgeyAgLy8gTk9MSU5UCi0g
ICAgICAvLyBUaGlzIGV4Y2VwdGlvbiB0eXBlIGNhbiBvbmx5IGJlIHRocm93biBieSBhIGZhaWxl
ZCBHb29nbGUKLSAgICAgIC8vIFRlc3QgYXNzZXJ0aW9uIHdpdGggdGhlIGludGVudGlvbiBvZiBs
ZXR0aW5nIGFub3RoZXIgdGVzdGluZwotICAgICAgLy8gZnJhbWV3b3JrIGNhdGNoIGl0LiAgVGhl
cmVmb3JlIHdlIGp1c3QgcmUtdGhyb3cgaXQuCi0gICAgICB0aHJvdzsKLSAgICB9IGNhdGNoIChj
b25zdCBzdGQ6OmV4Y2VwdGlvbiYgZSkgeyAgLy8gTk9MSU5UCi0gICAgICBpbnRlcm5hbDo6UmVw
b3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKAotICAgICAgICAgIFRlc3RQYXJ0UmVzdWx0Ojpr
RmF0YWxGYWlsdXJlLAotICAgICAgICAgIEZvcm1hdEN4eEV4Y2VwdGlvbk1lc3NhZ2UoZS53aGF0
KCksIGxvY2F0aW9uKSk7Ci0gICAgfSBjYXRjaCAoLi4uKSB7ICAvLyBOT0xJTlQKLSAgICAgIGlu
dGVybmFsOjpSZXBvcnRGYWlsdXJlSW5Vbmtub3duTG9jYXRpb24oCi0gICAgICAgICAgVGVzdFBh
cnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUsCi0gICAgICAgICAgRm9ybWF0Q3h4RXhjZXB0aW9uTWVz
c2FnZShOVUxMLCBsb2NhdGlvbikpOwotICAgIH0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVz
dWx0PigwKTsKLSNlbHNlCi0gICAgcmV0dXJuIEhhbmRsZVNlaEV4Y2VwdGlvbnNJbk1ldGhvZElm
U3VwcG9ydGVkKG9iamVjdCwgbWV0aG9kLCBsb2NhdGlvbik7Ci0jZW5kaWYgIC8vIEdURVNUX0hB
U19FWENFUFRJT05TCi0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIChvYmplY3QtPiptZXRob2QpKCk7
Ci0gIH0KLX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi0KLS8vIFJ1bnMgdGhlIHRlc3Qg
YW5kIHVwZGF0ZXMgdGhlIHRlc3QgcmVzdWx0Lgotdm9pZCBUZXN0OjpSdW4oKSB7Ci0gIGlmICgh
SGFzU2FtZUZpeHR1cmVDbGFzcygpKSByZXR1cm47Ci0KLSAgaW50ZXJuYWw6OlVuaXRUZXN0SW1w
bCogY29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKTsKLSAgaW1wbC0+b3Nf
c3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKLSAgaW50ZXJuYWw6Okhh
bmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKHRoaXMsICZUZXN0OjpTZXRVcCwgIlNl
dFVwKCkiKTsKLSAgLy8gV2Ugd2lsbCBydW4gdGhlIHRlc3Qgb25seSBpZiBTZXRVcCgpIHdhcyBz
dWNjZXNzZnVsLgotICBpZiAoIUhhc0ZhdGFsRmFpbHVyZSgpKSB7Ci0gICAgaW1wbC0+b3Nfc3Rh
Y2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKLSAgICBpbnRlcm5hbDo6SGFu
ZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQoCi0gICAgICAgIHRoaXMsICZUZXN0OjpU
ZXN0Qm9keSwgInRoZSB0ZXN0IGJvZHkiKTsKLSAgfQotCi0gIC8vIEhvd2V2ZXIsIHdlIHdhbnQg
dG8gY2xlYW4gdXAgYXMgbXVjaCBhcyBwb3NzaWJsZS4gIEhlbmNlIHdlIHdpbGwKLSAgLy8gYWx3
YXlzIGNhbGwgVGVhckRvd24oKSwgZXZlbiBpZiBTZXRVcCgpIG9yIHRoZSB0ZXN0IGJvZHkgaGFz
Ci0gIC8vIGZhaWxlZC4KLSAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2
aW5nR1Rlc3QoKTsKLSAgaW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9y
dGVkKAotICAgICAgdGhpcywgJlRlc3Q6OlRlYXJEb3duLCAiVGVhckRvd24oKSIpOwotfQotCi0v
LyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgZmF0YWwgZmFpbHVyZS4K
LWJvb2wgVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkgewotICByZXR1cm4gaW50ZXJuYWw6OkdldFVu
aXRUZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0KCktPkhhc0ZhdGFsRmFpbHVyZSgpOwot
fQotCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFs
IGZhaWx1cmUuCi1ib29sIFRlc3Q6Okhhc05vbmZhdGFsRmFpbHVyZSgpIHsKLSAgcmV0dXJuIGlu
dGVybmFsOjpHZXRVbml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X3Jlc3VsdCgpLT4KLSAgICAg
IEhhc05vbmZhdGFsRmFpbHVyZSgpOwotfQotCi0vLyBjbGFzcyBUZXN0SW5mbwotCi0vLyBDb25z
dHJ1Y3RzIGEgVGVzdEluZm8gb2JqZWN0LiBJdCBhc3N1bWVzIG93bmVyc2hpcCBvZiB0aGUgdGVz
dCBmYWN0b3J5Ci0vLyBvYmplY3QuCi1UZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qgc3RkOjpzdHJp
bmcmIGFfdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJp
bmcmIGFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhX3R5cGVfcGFyYW0s
Ci0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYV92YWx1ZV9wYXJhbSwKLSAgICAgICAg
ICAgICAgICAgICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGFfY29kZV9sb2NhdGlvbiwKLSAgICAg
ICAgICAgICAgICAgICBpbnRlcm5hbDo6VHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0gICAgICAg
ICAgICAgICAgICAgaW50ZXJuYWw6OlRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSkKLSAgICA6IHRl
c3RfY2FzZV9uYW1lXyhhX3Rlc3RfY2FzZV9uYW1lKSwKLSAgICAgIG5hbWVfKGFfbmFtZSksCi0g
ICAgICB0eXBlX3BhcmFtXyhhX3R5cGVfcGFyYW0gPyBuZXcgc3RkOjpzdHJpbmcoYV90eXBlX3Bh
cmFtKSA6IE5VTEwpLAotICAgICAgdmFsdWVfcGFyYW1fKGFfdmFsdWVfcGFyYW0gPyBuZXcgc3Rk
OjpzdHJpbmcoYV92YWx1ZV9wYXJhbSkgOiBOVUxMKSwKLSAgICAgIGxvY2F0aW9uXyhhX2NvZGVf
bG9jYXRpb24pLAotICAgICAgZml4dHVyZV9jbGFzc19pZF8oZml4dHVyZV9jbGFzc19pZCksCi0g
ICAgICBzaG91bGRfcnVuXyhmYWxzZSksCi0gICAgICBpc19kaXNhYmxlZF8oZmFsc2UpLAotICAg
ICAgbWF0Y2hlc19maWx0ZXJfKGZhbHNlKSwKLSAgICAgIGZhY3RvcnlfKGZhY3RvcnkpLAotICAg
ICAgcmVzdWx0XygpIHt9Ci0KLS8vIERlc3RydWN0cyBhIFRlc3RJbmZvIG9iamVjdC4KLVRlc3RJ
bmZvOjp+VGVzdEluZm8oKSB7IGRlbGV0ZSBmYWN0b3J5XzsgfQotCi1uYW1lc3BhY2UgaW50ZXJu
YWwgewotCi0vLyBDcmVhdGVzIGEgbmV3IFRlc3RJbmZvIG9iamVjdCBhbmQgcmVnaXN0ZXJzIGl0
IHdpdGggR29vZ2xlIFRlc3Q7Ci0vLyByZXR1cm5zIHRoZSBjcmVhdGVkIG9iamVjdC4KLS8vCi0v
LyBBcmd1bWVudHM6Ci0vLwotLy8gICB0ZXN0X2Nhc2VfbmFtZTogICBuYW1lIG9mIHRoZSB0ZXN0
IGNhc2UKLS8vICAgbmFtZTogICAgICAgICAgICAgbmFtZSBvZiB0aGUgdGVzdAotLy8gICB0eXBl
X3BhcmFtOiAgICAgICB0aGUgbmFtZSBvZiB0aGUgdGVzdCdzIHR5cGUgcGFyYW1ldGVyLCBvciBO
VUxMIGlmCi0vLyAgICAgICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4KLS8vICAgdmFsdWVfcGFyYW06ICAgICAgdGV4dCByZXBy
ZXNlbnRhdGlvbiBvZiB0aGUgdGVzdCdzIHZhbHVlIHBhcmFtZXRlciwKLS8vICAgICAgICAgICAg
ICAgICAgICAgb3IgTlVMTCBpZiB0aGlzIGlzIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVz
dC4KLS8vICAgY29kZV9sb2NhdGlvbjogICAgY29kZSBsb2NhdGlvbiB3aGVyZSB0aGUgdGVzdCBp
cyBkZWZpbmVkCi0vLyAgIGZpeHR1cmVfY2xhc3NfaWQ6IElEIG9mIHRoZSB0ZXN0IGZpeHR1cmUg
Y2xhc3MKLS8vICAgc2V0X3VwX3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhh
dCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAgdGVhcl9kb3duX3RjOiAgICAgcG9pbnRlciB0
byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNhc2UKLS8vICAgZmFjdG9y
eTogICAgICAgICAgcG9pbnRlciB0byB0aGUgZmFjdG9yeSB0aGF0IGNyZWF0ZXMgYSB0ZXN0IG9i
amVjdC4KLS8vICAgICAgICAgICAgICAgICAgICAgVGhlIG5ld2x5IGNyZWF0ZWQgVGVzdEluZm8g
aW5zdGFuY2Ugd2lsbCBhc3N1bWUKLS8vICAgICAgICAgICAgICAgICAgICAgb3duZXJzaGlwIG9m
IHRoZSBmYWN0b3J5IG9iamVjdC4KLVRlc3RJbmZvKiBNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygK
LSAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICBjb25zdCBjaGFyKiBuYW1lLAot
ICAgIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCi0gICAgY29uc3QgY2hhciogdmFsdWVfcGFyYW0s
Ci0gICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24sCi0gICAgVHlwZUlkIGZpeHR1cmVfY2xh
c3NfaWQsCi0gICAgU2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgIFRlYXJEb3duVGVz
dENhc2VGdW5jIHRlYXJfZG93bl90YywKLSAgICBUZXN0RmFjdG9yeUJhc2UqIGZhY3RvcnkpIHsK
LSAgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9Ci0gICAgICBuZXcgVGVzdEluZm8odGVzdF9j
YXNlX25hbWUsIG5hbWUsIHR5cGVfcGFyYW0sIHZhbHVlX3BhcmFtLAotICAgICAgICAgICAgICAg
ICAgIGNvZGVfbG9jYXRpb24sIGZpeHR1cmVfY2xhc3NfaWQsIGZhY3RvcnkpOwotICBHZXRVbml0
VGVzdEltcGwoKS0+QWRkVGVzdEluZm8oc2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMsIHRlc3RfaW5m
byk7Ci0gIHJldHVybiB0ZXN0X2luZm87Ci19Ci0KLXZvaWQgUmVwb3J0SW52YWxpZFRlc3RDYXNl
VHlwZShjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgewotICBNZXNzYWdlIGVycm9yczsK
LSAgZXJyb3JzCi0gICAgICA8PCAiQXR0ZW1wdGVkIHJlZGVmaW5pdGlvbiBvZiB0ZXN0IGNhc2Ug
IiA8PCB0ZXN0X2Nhc2VfbmFtZSA8PCAiLlxuIgotICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUg
c2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCi0gICAgICA8
PCAiY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IGNhc2UgIiA8PCB0ZXN0X2Nhc2VfbmFtZSA8PCAi
LCB5b3UgdHJpZWRcbiIKLSAgICAgIDw8ICJ0byBkZWZpbmUgYSB0ZXN0IHVzaW5nIGEgZml4dHVy
ZSBjbGFzcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lXG4iCi0gICAgICA8PCAidXNlZCBlYXJsaWVy
LiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHR3byBmaXh0dXJlIGNsYXNzZXMgYXJlXG4iCi0gICAg
ICA8PCAiZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiBZ
b3Ugc2hvdWxkXG4iCi0gICAgICA8PCAicHJvYmFibHkgcmVuYW1lIG9uZSBvZiB0aGUgY2xhc3Nl
cyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50XG4iCi0gICAgICA8PCAidGVzdCBjYXNl
cy4iOwotCi0gIEdURVNUX0xPR18oRVJST1IpCi0gICAgICAgPDwgRm9ybWF0RmlsZUxvY2F0aW9u
KGNvZGVfbG9jYXRpb24uZmlsZS5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb2RlX2xvY2F0aW9uLmxpbmUpCi0gICAgICAgPDwgIiAiIDw8IGVycm9ycy5HZXRTdHJpbmco
KTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi0KLW5hbWVzcGFjZSB7Ci0KLS8vIEEg
cHJlZGljYXRlIHRoYXQgY2hlY2tzIHRoZSB0ZXN0IG5hbWUgb2YgYSBUZXN0SW5mbyBhZ2FpbnN0
IGEga25vd24KLS8vIHZhbHVlLgotLy8KLS8vIFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRp
b24gb2YgdGhlIFRlc3RDYXNlIGNsYXNzIG9ubHkuICBXZSBwdXQKLS8vIGl0IGluIHRoZSBhbm9u
eW1vdXMgbmFtZXNwYWNlIHRvIHByZXZlbnQgcG9sbHV0aW5nIHRoZSBvdXRlcgotLy8gbmFtZXNw
YWNlLgotLy8KLS8vIFRlc3ROYW1lSXMgaXMgY29weWFibGUuCi1jbGFzcyBUZXN0TmFtZUlzIHsK
LSBwdWJsaWM6Ci0gIC8vIENvbnN0cnVjdG9yLgotICAvLwotICAvLyBUZXN0TmFtZUlzIGhhcyBO
TyBkZWZhdWx0IGNvbnN0cnVjdG9yLgotICBleHBsaWNpdCBUZXN0TmFtZUlzKGNvbnN0IGNoYXIq
IG5hbWUpCi0gICAgICA6IG5hbWVfKG5hbWUpIHt9Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0
aGUgdGVzdCBuYW1lIG9mIHRlc3RfaW5mbyBtYXRjaGVzIG5hbWVfLgotICBib29sIG9wZXJhdG9y
KCkoY29uc3QgVGVzdEluZm8gKiB0ZXN0X2luZm8pIGNvbnN0IHsKLSAgICByZXR1cm4gdGVzdF9p
bmZvICYmIHRlc3RfaW5mby0+bmFtZSgpID09IG5hbWVfOwotICB9Ci0KLSBwcml2YXRlOgotICBz
dGQ6OnN0cmluZyBuYW1lXzsKLX07Ci0KLX0gIC8vIG5hbWVzcGFjZQotCi1uYW1lc3BhY2UgaW50
ZXJuYWwgewotCi0vLyBUaGlzIG1ldGhvZCBleHBhbmRzIGFsbCBwYXJhbWV0ZXJpemVkIHRlc3Rz
IHJlZ2lzdGVyZWQgd2l0aCBtYWNyb3MgVEVTVF9QCi0vLyBhbmQgSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AgaW50byByZWd1bGFyIHRlc3RzIGFuZCByZWdpc3RlcnMgdGhvc2UuCi0vLyBUaGlzIHdp
bGwgYmUgZG9uZSBqdXN0IG9uY2UgZHVyaW5nIHRoZSBwcm9ncmFtIHJ1bnRpbWUuCi12b2lkIFVu
aXRUZXN0SW1wbDo6UmVnaXN0ZXJQYXJhbWV0ZXJpemVkVGVzdHMoKSB7Ci0gIGlmICghcGFyYW1l
dGVyaXplZF90ZXN0c19yZWdpc3RlcmVkXykgewotICAgIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdp
c3RyeV8uUmVnaXN0ZXJUZXN0cygpOwotICAgIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJl
ZF8gPSB0cnVlOwotICB9Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBDcmVh
dGVzIHRoZSB0ZXN0IG9iamVjdCwgcnVucyBpdCwgcmVjb3JkcyBpdHMgcmVzdWx0LCBhbmQgdGhl
bgotLy8gZGVsZXRlcyBpdC4KLXZvaWQgVGVzdEluZm86OlJ1bigpIHsKLSAgaWYgKCFzaG91bGRf
cnVuXykgcmV0dXJuOwotCi0gIC8vIFRlbGxzIFVuaXRUZXN0IHdoZXJlIHRvIHN0b3JlIHRlc3Qg
cmVzdWx0LgotICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6
OkdldFVuaXRUZXN0SW1wbCgpOwotICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2luZm8odGhpcyk7
Ci0KLSAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVhdGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNl
KCktPmxpc3RlbmVycygpLnJlcGVhdGVyKCk7Ci0KLSAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVz
dCBldmVudCBsaXN0ZW5lcnMgdGhhdCBhIHRlc3QgaXMgYWJvdXQgdG8gc3RhcnQuCi0gIHJlcGVh
dGVyLT5PblRlc3RTdGFydCgqdGhpcyk7Ci0KLSAgY29uc3QgVGltZUluTWlsbGlzIHN0YXJ0ID0g
aW50ZXJuYWw6OkdldFRpbWVJbk1pbGxpcygpOwotCi0gIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dl
dHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7Ci0KLSAgLy8gQ3JlYXRlcyB0aGUgdGVzdCBvYmpl
Y3QuCi0gIFRlc3QqIGNvbnN0IHRlc3QgPSBpbnRlcm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0
aG9kSWZTdXBwb3J0ZWQoCi0gICAgICBmYWN0b3J5XywgJmludGVybmFsOjpUZXN0RmFjdG9yeUJh
c2U6OkNyZWF0ZVRlc3QsCi0gICAgICAidGhlIHRlc3QgZml4dHVyZSdzIGNvbnN0cnVjdG9yIik7
Ci0KLSAgLy8gUnVucyB0aGUgdGVzdCBvbmx5IGlmIHRoZSB0ZXN0IG9iamVjdCB3YXMgY3JlYXRl
ZCBhbmQgaXRzCi0gIC8vIGNvbnN0cnVjdG9yIGRpZG4ndCBnZW5lcmF0ZSBhIGZhdGFsIGZhaWx1
cmUuCi0gIGlmICgodGVzdCAhPSBOVUxMKSAmJiAhVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsK
LSAgICAvLyBUaGlzIGRvZXNuJ3QgdGhyb3cgYXMgYWxsIHVzZXIgY29kZSB0aGF0IGNhbiB0aHJv
dyBhcmUgd3JhcHBlZCBpbnRvCi0gICAgLy8gZXhjZXB0aW9uIGhhbmRsaW5nIGNvZGUuCi0gICAg
dGVzdC0+UnVuKCk7Ci0gIH0KLQotICAvLyBEZWxldGVzIHRoZSB0ZXN0IG9iamVjdC4KLSAgaW1w
bC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKLSAgaW50ZXJu
YWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAotICAgICAgdGVzdCwgJlRl
c3Q6OkRlbGV0ZVNlbGZfLCAidGhlIHRlc3QgZml4dHVyZSdzIGRlc3RydWN0b3IiKTsKLQotICBy
ZXN1bHRfLnNldF9lbGFwc2VkX3RpbWUoaW50ZXJuYWw6OkdldFRpbWVJbk1pbGxpcygpIC0gc3Rh
cnQpOwotCi0gIC8vIE5vdGlmaWVzIHRoZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXIgdGhhdCBh
IHRlc3QgaGFzIGp1c3QgZmluaXNoZWQuCi0gIHJlcGVhdGVyLT5PblRlc3RFbmQoKnRoaXMpOwot
Ci0gIC8vIFRlbGxzIFVuaXRUZXN0IHRvIHN0b3AgYXNzb2NpYXRpbmcgYXNzZXJ0aW9uIHJlc3Vs
dHMgdG8gdGhpcwotICAvLyB0ZXN0LgotICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2luZm8oTlVM
TCk7Ci19Ci0KLS8vIGNsYXNzIFRlc3RDYXNlCi0KLS8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNj
ZXNzZnVsIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgotaW50IFRlc3RDYXNlOjpzdWNjZXNzZnVs
X3Rlc3RfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0Xywg
VGVzdFBhc3NlZCk7Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdHMgaW4g
dGhpcyB0ZXN0IGNhc2UuCi1pbnQgVGVzdENhc2U6OmZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3Qg
ewotICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFRlc3RGYWlsZWQpOwotfQotCi0v
LyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVk
IGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFRlc3RDYXNlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rl
c3RfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0XywgVGVz
dFJlcG9ydGFibGVEaXNhYmxlZCk7Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxl
ZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6ZGlzYWJsZWRfdGVzdF9j
b3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIENvdW50SWYodGVzdF9pbmZvX2xpc3RfLCBUZXN0RGlz
YWJsZWQpOwotfQotCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdG8gYmUgcHJpbnRlZCBp
biB0aGUgWE1MIHJlcG9ydC4KLWludCBUZXN0Q2FzZTo6cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkg
Y29uc3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFRlc3RSZXBvcnRhYmxl
KTsKLX0KLQotLy8gR2V0IHRoZSBudW1iZXIgb2YgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UgdGhh
dCBzaG91bGQgcnVuLgotaW50IFRlc3RDYXNlOjp0ZXN0X3RvX3J1bl9jb3VudCgpIGNvbnN0IHsK
LSAgcmV0dXJuIENvdW50SWYodGVzdF9pbmZvX2xpc3RfLCBTaG91bGRSdW5UZXN0KTsKLX0KLQot
Ly8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0cy4KLWludCBUZXN0Q2FzZTo6dG90YWxfdGVz
dF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odGVzdF9pbmZvX2xp
c3RfLnNpemUoKSk7Ci19Ci0KLS8vIENyZWF0ZXMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBu
YW1lLgotLy8KLS8vIEFyZ3VtZW50czoKLS8vCi0vLyAgIG5hbWU6ICAgICAgICAgbmFtZSBvZiB0
aGUgdGVzdCBjYXNlCi0vLyAgIGFfdHlwZV9wYXJhbTogdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2Fz
ZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCi0vLyAgICAgICAgICAgICAgICAgdGhpcyBp
cyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UuCi0vLyAgIHNl
dF91cF90YzogICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0
IGNhc2UKLS8vICAgdGVhcl9kb3duX3RjOiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRl
YXJzIGRvd24gdGhlIHRlc3QgY2FzZQotVGVzdENhc2U6OlRlc3RDYXNlKGNvbnN0IGNoYXIqIGFf
bmFtZSwgY29uc3QgY2hhciogYV90eXBlX3BhcmFtLAotICAgICAgICAgICAgICAgICAgIFRlc3Q6
OlNldFVwVGVzdENhc2VGdW5jIHNldF91cF90YywKLSAgICAgICAgICAgICAgICAgICBUZXN0OjpU
ZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMpCi0gICAgOiBuYW1lXyhhX25hbWUpLAot
ICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdHlwZV9w
YXJhbSkgOiBOVUxMKSwKLSAgICAgIHNldF91cF90Y18oc2V0X3VwX3RjKSwKLSAgICAgIHRlYXJf
ZG93bl90Y18odGVhcl9kb3duX3RjKSwKLSAgICAgIHNob3VsZF9ydW5fKGZhbHNlKSwKLSAgICAg
IGVsYXBzZWRfdGltZV8oMCkgewotfQotCi0vLyBEZXN0cnVjdG9yIG9mIFRlc3RDYXNlLgotVGVz
dENhc2U6On5UZXN0Q2FzZSgpIHsKLSAgLy8gRGVsZXRlcyBldmVyeSBUZXN0IGluIHRoZSBjb2xs
ZWN0aW9uLgotICBGb3JFYWNoKHRlc3RfaW5mb19saXN0XywgaW50ZXJuYWw6OkRlbGV0ZTxUZXN0
SW5mbz4pOwotfQotCi0vLyBSZXR1cm5zIHRoZSBpLXRoIHRlc3QgYW1vbmcgYWxsIHRoZSB0ZXN0
cy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0vLyB0b3RhbF90ZXN0X2NvdW50KCkgLSAxLiBJZiBp
IGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi1jb25zdCBUZXN0SW5mbyogVGVz
dENhc2U6OkdldFRlc3RJbmZvKGludCBpKSBjb25zdCB7Ci0gIGNvbnN0IGludCBpbmRleCA9IEdl
dEVsZW1lbnRPcih0ZXN0X2luZGljZXNfLCBpLCAtMSk7Ci0gIHJldHVybiBpbmRleCA8IDAgPyBO
VUxMIDogdGVzdF9pbmZvX2xpc3RfW2luZGV4XTsKLX0KLQotLy8gUmV0dXJucyB0aGUgaS10aCB0
ZXN0IGFtb25nIGFsbCB0aGUgdGVzdHMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwotLy8gdG90YWxf
dGVzdF9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxM
LgotVGVzdEluZm8qIFRlc3RDYXNlOjpHZXRNdXRhYmxlVGVzdEluZm8oaW50IGkpIHsKLSAgY29u
c3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRlc3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0
dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2luZm9fbGlzdF9baW5kZXhdOwotfQotCi0vLyBB
ZGRzIGEgdGVzdCB0byB0aGlzIHRlc3QgY2FzZS4gIFdpbGwgZGVsZXRlIHRoZSB0ZXN0IHVwb24K
LS8vIGRlc3RydWN0aW9uIG9mIHRoZSBUZXN0Q2FzZSBvYmplY3QuCi12b2lkIFRlc3RDYXNlOjpB
ZGRUZXN0SW5mbyhUZXN0SW5mbyAqIHRlc3RfaW5mbykgewotICB0ZXN0X2luZm9fbGlzdF8ucHVz
aF9iYWNrKHRlc3RfaW5mbyk7Ci0gIHRlc3RfaW5kaWNlc18ucHVzaF9iYWNrKHN0YXRpY19jYXN0
PGludD4odGVzdF9pbmRpY2VzXy5zaXplKCkpKTsKLX0KLQotLy8gUnVucyBldmVyeSB0ZXN0IGlu
IHRoaXMgVGVzdENhc2UuCi12b2lkIFRlc3RDYXNlOjpSdW4oKSB7Ci0gIGlmICghc2hvdWxkX3J1
bl8pIHJldHVybjsKLQotICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50
ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwotICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2Nhc2Uo
dGhpcyk7Ci0KLSAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVhdGVyID0gVW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPmxpc3RlbmVycygpLnJlcGVhdGVyKCk7Ci0KLSAgcmVwZWF0ZXItPk9uVGVzdENh
c2VTdGFydCgqdGhpcyk7Ci0gIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5VcG9uTGVh
dmluZ0dUZXN0KCk7Ci0gIGludGVybmFsOjpIYW5kbGVFeGNlcHRpb25zSW5NZXRob2RJZlN1cHBv
cnRlZCgKLSAgICAgIHRoaXMsICZUZXN0Q2FzZTo6UnVuU2V0VXBUZXN0Q2FzZSwgIlNldFVwVGVz
dENhc2UoKSIpOwotCi0gIGNvbnN0IGludGVybmFsOjpUaW1lSW5NaWxsaXMgc3RhcnQgPSBpbnRl
cm5hbDo6R2V0VGltZUluTWlsbGlzKCk7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxfdGVz
dF9jb3VudCgpOyBpKyspIHsKLSAgICBHZXRNdXRhYmxlVGVzdEluZm8oaSktPlJ1bigpOwotICB9
Ci0gIGVsYXBzZWRfdGltZV8gPSBpbnRlcm5hbDo6R2V0VGltZUluTWlsbGlzKCkgLSBzdGFydDsK
LQotICBpbXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+VXBvbkxlYXZpbmdHVGVzdCgpOwot
ICBpbnRlcm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQoCi0gICAgICB0
aGlzLCAmVGVzdENhc2U6OlJ1blRlYXJEb3duVGVzdENhc2UsICJUZWFyRG93blRlc3RDYXNlKCki
KTsKLQotICByZXBlYXRlci0+T25UZXN0Q2FzZUVuZCgqdGhpcyk7Ci0gIGltcGwtPnNldF9jdXJy
ZW50X3Rlc3RfY2FzZShOVUxMKTsKLX0KLQotLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0
ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLXZvaWQgVGVzdENhc2U6OkNsZWFyUmVzdWx0KCkgewot
ICBhZF9ob2NfdGVzdF9yZXN1bHRfLkNsZWFyKCk7Ci0gIEZvckVhY2godGVzdF9pbmZvX2xpc3Rf
LCBUZXN0SW5mbzo6Q2xlYXJUZXN0UmVzdWx0KTsKLX0KLQotLy8gU2h1ZmZsZXMgdGhlIHRlc3Rz
IGluIHRoaXMgdGVzdCBjYXNlLgotdm9pZCBUZXN0Q2FzZTo6U2h1ZmZsZVRlc3RzKGludGVybmFs
OjpSYW5kb20qIHJhbmRvbSkgewotICBTaHVmZmxlKHJhbmRvbSwgJnRlc3RfaW5kaWNlc18pOwot
fQotCi0vLyBSZXN0b3JlcyB0aGUgdGVzdCBvcmRlciB0byBiZWZvcmUgdGhlIGZpcnN0IHNodWZm
bGUuCi12b2lkIFRlc3RDYXNlOjpVbnNodWZmbGVUZXN0cygpIHsKLSAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0ZXN0X2luZGljZXNfLnNpemUoKTsgaSsrKSB7Ci0gICAgdGVzdF9pbmRpY2VzX1tp
XSA9IHN0YXRpY19jYXN0PGludD4oaSk7Ci0gIH0KLX0KLQotLy8gRm9ybWF0cyBhIGNvdW50YWJs
ZSBub3VuLiAgRGVwZW5kaW5nIG9uIGl0cyBxdWFudGl0eSwgZWl0aGVyIHRoZQotLy8gc2luZ3Vs
YXIgZm9ybSBvciB0aGUgcGx1cmFsIGZvcm0gaXMgdXNlZC4gZS5nLgotLy8KLS8vIEZvcm1hdENv
dW50YWJsZU5vdW4oMSwgImZvcm11bGEiLCAiZm9ybXVsaSIpIHJldHVybnMgIjEgZm9ybXVsYSIu
Ci0vLyBGb3JtYXRDb3VudGFibGVOb3VuKDUsICJib29rIiwgImJvb2tzIikgcmV0dXJucyAiNSBi
b29rcyIuCi1zdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0Q291bnRhYmxlTm91bihpbnQgY291bnQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogc2lu
Z3VsYXJfZm9ybSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKiBwbHVyYWxfZm9ybSkgewotICByZXR1cm4gaW50ZXJuYWw6OlN0cmVhbWFibGVUb1N0
cmluZyhjb3VudCkgKyAiICIgKwotICAgICAgKGNvdW50ID09IDEgPyBzaW5ndWxhcl9mb3JtIDog
cGx1cmFsX2Zvcm0pOwotfQotCi0vLyBGb3JtYXRzIHRoZSBjb3VudCBvZiB0ZXN0cy4KLXN0YXRp
YyBzdGQ6OnN0cmluZyBGb3JtYXRUZXN0Q291bnQoaW50IHRlc3RfY291bnQpIHsKLSAgcmV0dXJu
IEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9jb3VudCwgInRlc3QiLCAidGVzdHMiKTsKLX0KLQot
Ly8gRm9ybWF0cyB0aGUgY291bnQgb2YgdGVzdCBjYXNlcy4KLXN0YXRpYyBzdGQ6OnN0cmluZyBG
b3JtYXRUZXN0Q2FzZUNvdW50KGludCB0ZXN0X2Nhc2VfY291bnQpIHsKLSAgcmV0dXJuIEZvcm1h
dENvdW50YWJsZU5vdW4odGVzdF9jYXNlX2NvdW50LCAidGVzdCBjYXNlIiwgInRlc3QgY2FzZXMi
KTsKLX0KLQotLy8gQ29udmVydHMgYSBUZXN0UGFydFJlc3VsdDo6VHlwZSBlbnVtIHRvIGh1bWFu
LWZyaWVuZGx5IHN0cmluZwotLy8gcmVwcmVzZW50YXRpb24uICBCb3RoIGtOb25GYXRhbEZhaWx1
cmUgYW5kIGtGYXRhbEZhaWx1cmUgYXJlIHRyYW5zbGF0ZWQKLS8vIHRvICJGYWlsdXJlIiwgYXMg
dGhlIHVzZXIgdXN1YWxseSBkb2Vzbid0IGNhcmUgYWJvdXQgdGhlIGRpZmZlcmVuY2UKLS8vIGJl
dHdlZW4gdGhlIHR3byB3aGVuIHZpZXdpbmcgdGhlIHRlc3QgcmVzdWx0Lgotc3RhdGljIGNvbnN0
IGNoYXIgKiBUZXN0UGFydFJlc3VsdFR5cGVUb1N0cmluZyhUZXN0UGFydFJlc3VsdDo6VHlwZSB0
eXBlKSB7Ci0gIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgVGVzdFBhcnRSZXN1bHQ6OmtTdWNj
ZXNzOgotICAgICAgcmV0dXJuICJTdWNjZXNzIjsKLQotICAgIGNhc2UgVGVzdFBhcnRSZXN1bHQ6
OmtOb25GYXRhbEZhaWx1cmU6Ci0gICAgY2FzZSBUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVy
ZToKLSNpZmRlZiBfTVNDX1ZFUgotICAgICAgcmV0dXJuICJlcnJvcjogIjsKLSNlbHNlCi0gICAg
ICByZXR1cm4gIkZhaWx1cmVcbiI7Ci0jZW5kaWYKLSAgICBkZWZhdWx0OgotICAgICAgcmV0dXJu
ICJVbmtub3duIHJlc3VsdCB0eXBlIjsKLSAgfQotfQotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewot
Ci0vLyBQcmludHMgYSBUZXN0UGFydFJlc3VsdCB0byBhbiBzdGQ6OnN0cmluZy4KLXN0YXRpYyBz
dGQ6OnN0cmluZyBQcmludFRlc3RQYXJ0UmVzdWx0VG9TdHJpbmcoCi0gICAgY29uc3QgVGVzdFBh
cnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIHsKLSAgcmV0dXJuIChNZXNzYWdlKCkKLSAgICAg
ICAgICA8PCBpbnRlcm5hbDo6Rm9ybWF0RmlsZUxvY2F0aW9uKHRlc3RfcGFydF9yZXN1bHQuZmls
ZV9uYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X3BhcnRfcmVzdWx0LmxpbmVfbnVtYmVyKCkpCi0gICAgICAgICAgPDwgIiAiIDw8IFRlc3RQYXJ0
UmVzdWx0VHlwZVRvU3RyaW5nKHRlc3RfcGFydF9yZXN1bHQudHlwZSgpKQotICAgICAgICAgIDw8
IHRlc3RfcGFydF9yZXN1bHQubWVzc2FnZSgpKS5HZXRTdHJpbmcoKTsKLX0KLQotLy8gUHJpbnRz
IGEgVGVzdFBhcnRSZXN1bHQuCi1zdGF0aWMgdm9pZCBQcmludFRlc3RQYXJ0UmVzdWx0KGNvbnN0
IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSB7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5n
JiByZXN1bHQgPQotICAgICAgUHJpbnRUZXN0UGFydFJlc3VsdFRvU3RyaW5nKHRlc3RfcGFydF9y
ZXN1bHQpOwotICBwcmludGYoIiVzXG4iLCByZXN1bHQuY19zdHIoKSk7Ci0gIGZmbHVzaChzdGRv
dXQpOwotICAvLyBJZiB0aGUgdGVzdCBwcm9ncmFtIHJ1bnMgaW4gVmlzdWFsIFN0dWRpbyBvciBh
IGRlYnVnZ2VyLCB0aGUKLSAgLy8gZm9sbG93aW5nIHN0YXRlbWVudHMgYWRkIHRoZSB0ZXN0IHBh
cnQgcmVzdWx0IG1lc3NhZ2UgdG8gdGhlIE91dHB1dAotICAvLyB3aW5kb3cgc3VjaCB0aGF0IHRo
ZSB1c2VyIGNhbiBkb3VibGUtY2xpY2sgb24gaXQgdG8ganVtcCB0byB0aGUKLSAgLy8gY29ycmVz
cG9uZGluZyBzb3VyY2UgY29kZSBsb2NhdGlvbjsgb3RoZXJ3aXNlIHRoZXkgZG8gbm90aGluZy4K
LSNpZiBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQotICAvLyBX
ZSBkb24ndCBjYWxsIE91dHB1dERlYnVnU3RyaW5nKigpIG9uIFdpbmRvd3MgTW9iaWxlLCBhcyBw
cmludGluZwotICAvLyB0byBzdGRvdXQgaXMgZG9uZSBieSBPdXRwdXREZWJ1Z1N0cmluZygpIHRo
ZXJlIGFscmVhZHkgLSB3ZSBkb24ndAotICAvLyB3YW50IHRoZSBzYW1lIG1lc3NhZ2UgcHJpbnRl
ZCB0d2ljZS4KLSAgOjpPdXRwdXREZWJ1Z1N0cmluZ0EocmVzdWx0LmNfc3RyKCkpOwotICA6Ok91
dHB1dERlYnVnU3RyaW5nQSgiXG4iKTsKLSNlbmRpZgotfQotCi0vLyBjbGFzcyBQcmV0dHlVbml0
VGVzdFJlc3VsdFByaW50ZXIKLQotZW51bSBHVGVzdENvbG9yIHsKLSAgQ09MT1JfREVGQVVMVCwK
LSAgQ09MT1JfUkVELAotICBDT0xPUl9HUkVFTiwKLSAgQ09MT1JfWUVMTE9XCi19OwotCi0jaWYg
R1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgJiYgXAotICAgICFH
VEVTVF9PU19XSU5ET1dTX1BIT05FICYmICFHVEVTVF9PU19XSU5ET1dTX1JUICYmICFHVEVTVF9P
U19XSU5ET1dTX01JTkdXCi0KLS8vIFJldHVybnMgdGhlIGNoYXJhY3RlciBhdHRyaWJ1dGUgZm9y
IHRoZSBnaXZlbiBjb2xvci4KLXN0YXRpYyBXT1JEIEdldENvbG9yQXR0cmlidXRlKEdUZXN0Q29s
b3IgY29sb3IpIHsKLSAgc3dpdGNoIChjb2xvcikgewotICAgIGNhc2UgQ09MT1JfUkVEOiAgICBy
ZXR1cm4gRk9SRUdST1VORF9SRUQ7Ci0gICAgY2FzZSBDT0xPUl9HUkVFTjogIHJldHVybiBGT1JF
R1JPVU5EX0dSRUVOOwotICAgIGNhc2UgQ09MT1JfWUVMTE9XOiByZXR1cm4gRk9SRUdST1VORF9S
RUQgfCBGT1JFR1JPVU5EX0dSRUVOOwotICAgIGRlZmF1bHQ6ICAgICAgICAgICByZXR1cm4gMDsK
LSAgfQotfQotCi1zdGF0aWMgaW50IEdldEJpdE9mZnNldChXT1JEIGNvbG9yX21hc2spIHsKLSAg
aWYgKGNvbG9yX21hc2sgPT0gMCkgcmV0dXJuIDA7Ci0KLSAgaW50IGJpdE9mZnNldCA9IDA7Ci0g
IHdoaWxlKChjb2xvcl9tYXNrICYgMSkgPT0gMCkgewotICAgIGNvbG9yX21hc2sgPj49IDE7Ci0g
ICAgKytiaXRPZmZzZXQ7Ci0gIH0KLSAgcmV0dXJuIGJpdE9mZnNldDsKLX0KLQotc3RhdGljIFdP
UkQgR2V0TmV3Q29sb3IoR1Rlc3RDb2xvciBjb2xvciwgV09SRCBvbGRfY29sb3JfYXR0cnMpIHsK
LSAgLy8gTGV0J3MgcmV1c2UgdGhlIEJHCi0gIHN0YXRpYyBjb25zdCBXT1JEIGJhY2tncm91bmRf
bWFzayA9IEJBQ0tHUk9VTkRfQkxVRSB8IEJBQ0tHUk9VTkRfR1JFRU4gfCBCQUNLR1JPVU5EX1JF
RCB8IEJBQ0tHUk9VTkRfSU5URU5TSVRZOwotICBzdGF0aWMgY29uc3QgV09SRCBmb3JlZ3JvdW5k
X21hc2sgPSBGT1JFR1JPVU5EX0JMVUUgfCBGT1JFR1JPVU5EX0dSRUVOIHwgRk9SRUdST1VORF9S
RUQgfCBGT1JFR1JPVU5EX0lOVEVOU0lUWTsKLSAgY29uc3QgV09SRCBleGlzdGluZ19iZyA9IG9s
ZF9jb2xvcl9hdHRycyAmIGJhY2tncm91bmRfbWFzazsKLQotICBXT1JEIG5ld19jb2xvciA9IEdl
dENvbG9yQXR0cmlidXRlKGNvbG9yKSB8IGV4aXN0aW5nX2JnIHwgRk9SRUdST1VORF9JTlRFTlNJ
VFk7Ci0gIHN0YXRpYyBjb25zdCBpbnQgYmdfYml0T2Zmc2V0ID0gR2V0Qml0T2Zmc2V0KGJhY2tn
cm91bmRfbWFzayk7Ci0gIHN0YXRpYyBjb25zdCBpbnQgZmdfYml0T2Zmc2V0ID0gR2V0Qml0T2Zm
c2V0KGZvcmVncm91bmRfbWFzayk7Ci0KLSAgaWYgKCgobmV3X2NvbG9yICYgYmFja2dyb3VuZF9t
YXNrKSA+PiBiZ19iaXRPZmZzZXQpID09ICgobmV3X2NvbG9yICYgZm9yZWdyb3VuZF9tYXNrKSA+
PiBmZ19iaXRPZmZzZXQpKSB7Ci0gICAgbmV3X2NvbG9yIF49IEZPUkVHUk9VTkRfSU5URU5TSVRZ
OyAvL2ludmVydCBpbnRlbnNpdHkKLSAgfQotICByZXR1cm4gbmV3X2NvbG9yOwotfQotCi0jZWxz
ZQotCi0vLyBSZXR1cm5zIHRoZSBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZlbiBjb2xvci4g
IENPTE9SX0RFRkFVTFQgaXMKLS8vIGFuIGludmFsaWQgaW5wdXQuCi1zdGF0aWMgY29uc3QgY2hh
ciogR2V0QW5zaUNvbG9yQ29kZShHVGVzdENvbG9yIGNvbG9yKSB7Ci0gIHN3aXRjaCAoY29sb3Ip
IHsKLSAgICBjYXNlIENPTE9SX1JFRDogICAgIHJldHVybiAiMSI7Ci0gICAgY2FzZSBDT0xPUl9H
UkVFTjogICByZXR1cm4gIjIiOwotICAgIGNhc2UgQ09MT1JfWUVMTE9XOiAgcmV0dXJuICIzIjsK
LSAgICBkZWZhdWx0OiAgICAgICAgICAgIHJldHVybiBOVUxMOwotICB9OwotfQotCi0jZW5kaWYg
IC8vIEdURVNUX09TX1dJTkRPV1MgJiYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0KLS8vIFJl
dHVybnMgdHJ1ZSBpZmYgR29vZ2xlIFRlc3Qgc2hvdWxkIHVzZSBjb2xvcnMgaW4gdGhlIG91dHB1
dC4KLWJvb2wgU2hvdWxkVXNlQ29sb3IoYm9vbCBzdGRvdXRfaXNfdHR5KSB7Ci0gIGNvbnN0IGNo
YXIqIGNvbnN0IGd0ZXN0X2NvbG9yID0gR1RFU1RfRkxBRyhjb2xvcikuY19zdHIoKTsKLQotICBp
ZiAoU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVDU3RyaW5nRXF1YWxzKGd0ZXN0X2NvbG9yLCAiYXV0
byIpKSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NSU5HVwot
ICAgIC8vIE9uIFdpbmRvd3MgdGhlIFRFUk0gdmFyaWFibGUgaXMgdXN1YWxseSBub3Qgc2V0LCBi
dXQgdGhlCi0gICAgLy8gY29uc29sZSB0aGVyZSBkb2VzIHN1cHBvcnQgY29sb3JzLgotICAgIHJl
dHVybiBzdGRvdXRfaXNfdHR5OwotI2Vsc2UKLSAgICAvLyBPbiBub24tV2luZG93cyBwbGF0Zm9y
bXMsIHdlIHJlbHkgb24gdGhlIFRFUk0gdmFyaWFibGUuCi0gICAgY29uc3QgY2hhciogY29uc3Qg
dGVybSA9IHBvc2l4OjpHZXRFbnYoIlRFUk0iKTsKLSAgICBjb25zdCBib29sIHRlcm1fc3VwcG9y
dHNfY29sb3IgPQotICAgICAgICBTdHJpbmc6OkNTdHJpbmdFcXVhbHModGVybSwgInh0ZXJtIikg
fHwKLSAgICAgICAgU3RyaW5nOjpDU3RyaW5nRXF1YWxzKHRlcm0sICJ4dGVybS1jb2xvciIpIHx8
Ci0gICAgICAgIFN0cmluZzo6Q1N0cmluZ0VxdWFscyh0ZXJtLCAieHRlcm0tMjU2Y29sb3IiKSB8
fAotICAgICAgICBTdHJpbmc6OkNTdHJpbmdFcXVhbHModGVybSwgInNjcmVlbiIpIHx8Ci0gICAg
ICAgIFN0cmluZzo6Q1N0cmluZ0VxdWFscyh0ZXJtLCAic2NyZWVuLTI1NmNvbG9yIikgfHwKLSAg
ICAgICAgU3RyaW5nOjpDU3RyaW5nRXF1YWxzKHRlcm0sICJ0bXV4IikgfHwKLSAgICAgICAgU3Ry
aW5nOjpDU3RyaW5nRXF1YWxzKHRlcm0sICJ0bXV4LTI1NmNvbG9yIikgfHwKLSAgICAgICAgU3Ry
aW5nOjpDU3RyaW5nRXF1YWxzKHRlcm0sICJyeHZ0LXVuaWNvZGUiKSB8fAotICAgICAgICBTdHJp
bmc6OkNTdHJpbmdFcXVhbHModGVybSwgInJ4dnQtdW5pY29kZS0yNTZjb2xvciIpIHx8Ci0gICAg
ICAgIFN0cmluZzo6Q1N0cmluZ0VxdWFscyh0ZXJtLCAibGludXgiKSB8fAotICAgICAgICBTdHJp
bmc6OkNTdHJpbmdFcXVhbHModGVybSwgImN5Z3dpbiIpOwotICAgIHJldHVybiBzdGRvdXRfaXNf
dHR5ICYmIHRlcm1fc3VwcG9ydHNfY29sb3I7Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MK
LSAgfQotCi0gIHJldHVybiBTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZUNTdHJpbmdFcXVhbHMoZ3Rl
c3RfY29sb3IsICJ5ZXMiKSB8fAotICAgICAgU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVDU3RyaW5n
RXF1YWxzKGd0ZXN0X2NvbG9yLCAidHJ1ZSIpIHx8Ci0gICAgICBTdHJpbmc6OkNhc2VJbnNlbnNp
dGl2ZUNTdHJpbmdFcXVhbHMoZ3Rlc3RfY29sb3IsICJ0IikgfHwKLSAgICAgIFN0cmluZzo6Q1N0
cmluZ0VxdWFscyhndGVzdF9jb2xvciwgIjEiKTsKLSAgLy8gV2UgdGFrZSAieWVzIiwgInRydWUi
LCAidCIsIGFuZCAiMSIgYXMgbWVhbmluZyAieWVzIi4gIElmIHRoZQotICAvLyB2YWx1ZSBpcyBu
ZWl0aGVyIG9uZSBvZiB0aGVzZSBub3IgImF1dG8iLCB3ZSB0cmVhdCBpdCBhcyAibm8iIHRvCi0g
IC8vIGJlIGNvbnNlcnZhdGl2ZS4KLX0KLQotLy8gSGVscGVycyBmb3IgcHJpbnRpbmcgY29sb3Jl
ZCBzdHJpbmdzIHRvIHN0ZG91dC4gTm90ZSB0aGF0IG9uIFdpbmRvd3MsIHdlCi0vLyBjYW5ub3Qg
c2ltcGx5IGVtaXQgc3BlY2lhbCBjaGFyYWN0ZXJzIGFuZCBoYXZlIHRoZSB0ZXJtaW5hbCBjaGFu
Z2UgY29sb3JzLgotLy8gVGhpcyByb3V0aW5lIG11c3QgYWN0dWFsbHkgZW1pdCB0aGUgY2hhcmFj
dGVycyByYXRoZXIgdGhhbiByZXR1cm4gYSBzdHJpbmcKLS8vIHRoYXQgd291bGQgYmUgY29sb3Jl
ZCB3aGVuIHByaW50ZWQsIGFzIGNhbiBiZSBkb25lIG9uIExpbnV4LgotR1RFU1RfQVRUUklCVVRF
X1BSSU5URl8oMiwgMykKLXN0YXRpYyB2b2lkIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvciBjb2xv
ciwgY29uc3QgY2hhciogZm10LCAuLi4pIHsKLSAgdmFfbGlzdCBhcmdzOwotICB2YV9zdGFydChh
cmdzLCBmbXQpOwotCi0jaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfU1lN
QklBTiB8fCBHVEVTVF9PU19aT1MgfHwgXAotICAgIEdURVNUX09TX0lPUyB8fCBHVEVTVF9PU19X
SU5ET1dTX1BIT05FIHx8IEdURVNUX09TX1dJTkRPV1NfUlQKLSAgY29uc3QgYm9vbCB1c2VfY29s
b3IgPSBBbHdheXNGYWxzZSgpOwotI2Vsc2UKLSAgc3RhdGljIGNvbnN0IGJvb2wgaW5fY29sb3Jf
bW9kZSA9Ci0gICAgICBTaG91bGRVc2VDb2xvcihwb3NpeDo6SXNBVFRZKHBvc2l4OjpGaWxlTm8o
c3Rkb3V0KSkgIT0gMCk7Ci0gIGNvbnN0IGJvb2wgdXNlX2NvbG9yID0gaW5fY29sb3JfbW9kZSAm
JiAoY29sb3IgIT0gQ09MT1JfREVGQVVMVCk7Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1Nf
TU9CSUxFIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfWk9TCi0gIC8vIFRoZSAnIT0g
MCcgY29tcGFyaXNvbiBpcyBuZWNlc3NhcnkgdG8gc2F0aXNmeSBNU1ZDIDcuMS4KLQotICBpZiAo
IXVzZV9jb2xvcikgewotICAgIHZwcmludGYoZm10LCBhcmdzKTsKLSAgICB2YV9lbmQoYXJncyk7
Ci0gICAgcmV0dXJuOwotICB9Ci0KLSNpZiBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19X
SU5ET1dTX01PQklMRSAmJiBcCi0gICAgIUdURVNUX09TX1dJTkRPV1NfUEhPTkUgJiYgIUdURVNU
X09TX1dJTkRPV1NfUlQgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlOR1cKLSAgY29uc3QgSEFORExF
IHN0ZG91dF9oYW5kbGUgPSBHZXRTdGRIYW5kbGUoU1REX09VVFBVVF9IQU5ETEUpOwotCi0gIC8v
IEdldHMgdGhlIGN1cnJlbnQgdGV4dCBjb2xvci4KLSAgQ09OU09MRV9TQ1JFRU5fQlVGRkVSX0lO
Rk8gYnVmZmVyX2luZm87Ci0gIEdldENvbnNvbGVTY3JlZW5CdWZmZXJJbmZvKHN0ZG91dF9oYW5k
bGUsICZidWZmZXJfaW5mbyk7Ci0gIGNvbnN0IFdPUkQgb2xkX2NvbG9yX2F0dHJzID0gYnVmZmVy
X2luZm8ud0F0dHJpYnV0ZXM7Ci0gIGNvbnN0IFdPUkQgbmV3X2NvbG9yID0gR2V0TmV3Q29sb3Io
Y29sb3IsIG9sZF9jb2xvcl9hdHRycyk7Ci0KLSAgLy8gV2UgbmVlZCB0byBmbHVzaCB0aGUgc3Ry
ZWFtIGJ1ZmZlcnMgaW50byB0aGUgY29uc29sZSBiZWZvcmUgZWFjaAotICAvLyBTZXRDb25zb2xl
VGV4dEF0dHJpYnV0ZSBjYWxsIGxlc3QgaXQgYWZmZWN0IHRoZSB0ZXh0IHRoYXQgaXMgYWxyZWFk
eQotICAvLyBwcmludGVkIGJ1dCBoYXMgbm90IHlldCByZWFjaGVkIHRoZSBjb25zb2xlLgotICBm
Zmx1c2goc3Rkb3V0KTsKLSAgU2V0Q29uc29sZVRleHRBdHRyaWJ1dGUoc3Rkb3V0X2hhbmRsZSwg
bmV3X2NvbG9yKTsKLQotICB2cHJpbnRmKGZtdCwgYXJncyk7Ci0KLSAgZmZsdXNoKHN0ZG91dCk7
Ci0gIC8vIFJlc3RvcmVzIHRoZSB0ZXh0IGNvbG9yLgotICBTZXRDb25zb2xlVGV4dEF0dHJpYnV0
ZShzdGRvdXRfaGFuZGxlLCBvbGRfY29sb3JfYXR0cnMpOwotI2Vsc2UKLSAgcHJpbnRmKCJcMDMz
WzA7MyVzbSIsIEdldEFuc2lDb2xvckNvZGUoY29sb3IpKTsKLSAgdnByaW50ZihmbXQsIGFyZ3Mp
OwotICBwcmludGYoIlwwMzNbbSIpOyAgLy8gUmVzZXRzIHRoZSB0ZXJtaW5hbCB0byBkZWZhdWx0
LgotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklM
RQotICB2YV9lbmQoYXJncyk7Ci19Ci0KLS8vIFRleHQgcHJpbnRlZCBpbiBHb29nbGUgVGVzdCdz
IHRleHQgb3V0cHV0IGFuZCAtLWd1bml0X2xpc3RfdGVzdHMKLS8vIG91dHB1dCB0byBsYWJlbCB0
aGUgdHlwZSBwYXJhbWV0ZXIgYW5kIHZhbHVlIHBhcmFtZXRlciBmb3IgYSB0ZXN0Lgotc3RhdGlj
IGNvbnN0IGNoYXIga1R5cGVQYXJhbUxhYmVsW10gPSAiVHlwZVBhcmFtIjsKLXN0YXRpYyBjb25z
dCBjaGFyIGtWYWx1ZVBhcmFtTGFiZWxbXSA9ICJHZXRQYXJhbSgpIjsKLQotc3RhdGljIHZvaWQg
UHJpbnRGdWxsVGVzdENvbW1lbnRJZlByZXNlbnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykg
ewotICBjb25zdCBjaGFyKiBjb25zdCB0eXBlX3BhcmFtID0gdGVzdF9pbmZvLnR5cGVfcGFyYW0o
KTsKLSAgY29uc3QgY2hhciogY29uc3QgdmFsdWVfcGFyYW0gPSB0ZXN0X2luZm8udmFsdWVfcGFy
YW0oKTsKLQotICBpZiAodHlwZV9wYXJhbSAhPSBOVUxMIHx8IHZhbHVlX3BhcmFtICE9IE5VTEwp
IHsKLSAgICBwcmludGYoIiwgd2hlcmUgIik7Ci0gICAgaWYgKHR5cGVfcGFyYW0gIT0gTlVMTCkg
ewotICAgICAgcHJpbnRmKCIlcyA9ICVzIiwga1R5cGVQYXJhbUxhYmVsLCB0eXBlX3BhcmFtKTsK
LSAgICAgIGlmICh2YWx1ZV9wYXJhbSAhPSBOVUxMKQotICAgICAgICBwcmludGYoIiBhbmQgIik7
Ci0gICAgfQotICAgIGlmICh2YWx1ZV9wYXJhbSAhPSBOVUxMKSB7Ci0gICAgICBwcmludGYoIiVz
ID0gJXMiLCBrVmFsdWVQYXJhbUxhYmVsLCB2YWx1ZV9wYXJhbSk7Ci0gICAgfQotICB9Ci19Ci0K
LS8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgVGVzdEV2ZW50TGlzdGVuZXIgaW50ZXJmYWNl
LgotLy8KLS8vIENsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlciBpcyBjb3B5YWJsZS4K
LWNsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0
ZW5lciB7Ci0gcHVibGljOgotICBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXIoKSB7fQotICBz
dGF0aWMgdm9pZCBQcmludFRlc3ROYW1lKGNvbnN0IGNoYXIgKiB0ZXN0X2Nhc2UsIGNvbnN0IGNo
YXIgKiB0ZXN0KSB7Ci0gICAgcHJpbnRmKCIlcy4lcyIsIHRlc3RfY2FzZSwgdGVzdCk7Ci0gIH0K
LQotICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgb3ZlcnJpZGUgd2hhdCdzIGluIHRoZSBUZXN0
RXZlbnRMaXN0ZW5lciBjbGFzcy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0
ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwot
ICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1
bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBV
bml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFy
dChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0
KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJl
c3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENh
c2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmly
b25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1
YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRf
dGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJv
Z3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLQotIHByaXZhdGU6Ci0g
IHN0YXRpYyB2b2lkIFByaW50RmFpbGVkVGVzdHMoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7
Ci19OwotCi0gIC8vIEZpcmVkIGJlZm9yZSBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBzdGFydHMu
Ci12b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0SXRlcmF0aW9uU3RhcnQo
Ci0gICAgY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgewotICBpZiAo
R1RFU1RfRkxBRyhyZXBlYXQpICE9IDEpCi0gICAgcHJpbnRmKCJcblJlcGVhdGluZyBhbGwgdGVz
dHMgKGl0ZXJhdGlvbiAlZCkgLiAuIC5cblxuIiwgaXRlcmF0aW9uICsgMSk7Ci0KLSAgY29uc3Qg
Y2hhciogY29uc3QgZmlsdGVyID0gR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3RyKCk7Ci0KLSAgLy8g
UHJpbnRzIHRoZSBmaWx0ZXIgaWYgaXQncyBub3QgKi4gIFRoaXMgcmVtaW5kcyB0aGUgdXNlciB0
aGF0IHNvbWUKLSAgLy8gdGVzdHMgbWF5IGJlIHNraXBwZWQuCi0gIGlmICghU3RyaW5nOjpDU3Ry
aW5nRXF1YWxzKGZpbHRlciwga1VuaXZlcnNhbEZpbHRlcikpIHsKLSAgICBDb2xvcmVkUHJpbnRm
KENPTE9SX1lFTExPVywKLSAgICAgICAgICAgICAgICAgICJOb3RlOiAlcyBmaWx0ZXIgPSAlc1xu
IiwgR1RFU1RfTkFNRV8sIGZpbHRlcik7Ci0gIH0KLQotICBpZiAoaW50ZXJuYWw6OlNob3VsZFNo
YXJkKGtUZXN0VG90YWxTaGFyZHMsIGtUZXN0U2hhcmRJbmRleCwgZmFsc2UpKSB7Ci0gICAgY29u
c3QgSW50MzIgc2hhcmRfaW5kZXggPSBJbnQzMkZyb21FbnZPckRpZShrVGVzdFNoYXJkSW5kZXgs
IC0xKTsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1lFTExPVywKLSAgICAgICAgICAgICAgICAg
ICJOb3RlOiBUaGlzIGlzIHRlc3Qgc2hhcmQgJWQgb2YgJXMuXG4iLAotICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8aW50PihzaGFyZF9pbmRleCkgKyAxLAotICAgICAgICAgICAgICAgICAg
aW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoa1Rlc3RUb3RhbFNoYXJkcykpOwotICB9Ci0KLSAgaWYg
KEdURVNUX0ZMQUcoc2h1ZmZsZSkpIHsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1lFTExPVywK
LSAgICAgICAgICAgICAgICAgICJOb3RlOiBSYW5kb21pemluZyB0ZXN0cycgb3JkZXJzIHdpdGgg
YSBzZWVkIG9mICVkIC5cbiIsCi0gICAgICAgICAgICAgICAgICB1bml0X3Rlc3QucmFuZG9tX3Nl
ZWQoKSk7Ci0gIH0KLQotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAgIls9PT09PT09PT09
XSAiKTsKLSAgcHJpbnRmKCJSdW5uaW5nICVzIGZyb20gJXMuXG4iLAotICAgICAgICAgRm9ybWF0
VGVzdENvdW50KHVuaXRfdGVzdC50ZXN0X3RvX3J1bl9jb3VudCgpKS5jX3N0cigpLAotICAgICAg
ICAgRm9ybWF0VGVzdENhc2VDb3VudCh1bml0X3Rlc3QudGVzdF9jYXNlX3RvX3J1bl9jb3VudCgp
KS5jX3N0cigpKTsKLSAgZmZsdXNoKHN0ZG91dCk7Ci19Ci0KLXZvaWQgUHJldHR5VW5pdFRlc3RS
ZXN1bHRQcmludGVyOjpPbkVudmlyb25tZW50c1NldFVwU3RhcnQoCi0gICAgY29uc3QgVW5pdFRl
c3QmIC8qdW5pdF90ZXN0Ki8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbLS0t
LS0tLS0tLV0gIik7Ci0gIHByaW50ZigiR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgc2V0LXVwLlxu
Iik7Ci0gIGZmbHVzaChzdGRvdXQpOwotfQotCi12b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIHsKLSAgY29u
c3Qgc3RkOjpzdHJpbmcgY291bnRzID0KLSAgICAgIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9j
YXNlLnRlc3RfdG9fcnVuX2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7Ci0gIENvbG9yZWRQcmlu
dGYoQ09MT1JfR1JFRU4sICJbLS0tLS0tLS0tLV0gIik7Ci0gIHByaW50ZigiJXMgZnJvbSAlcyIs
IGNvdW50cy5jX3N0cigpLCB0ZXN0X2Nhc2UubmFtZSgpKTsKLSAgaWYgKHRlc3RfY2FzZS50eXBl
X3BhcmFtKCkgPT0gTlVMTCkgewotICAgIHByaW50ZigiXG4iKTsKLSAgfSBlbHNlIHsKLSAgICBw
cmludGYoIiwgd2hlcmUgJXMgPSAlc1xuIiwga1R5cGVQYXJhbUxhYmVsLCB0ZXN0X2Nhc2UudHlw
ZV9wYXJhbSgpKTsKLSAgfQotICBmZmx1c2goc3Rkb3V0KTsKLX0KLQotdm9pZCBQcmV0dHlVbml0
VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8p
IHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbIFJVTiAgICAgIF0gIik7Ci0gIFBy
aW50VGVzdE5hbWUodGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkp
OwotICBwcmludGYoIlxuIik7Ci0gIGZmbHVzaChzdGRvdXQpOwotfQotCi0vLyBDYWxsZWQgYWZ0
ZXIgYW4gYXNzZXJ0aW9uIGZhaWx1cmUuCi12b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRl
cjo6T25UZXN0UGFydFJlc3VsdCgKLSAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSB7
Ci0gIC8vIElmIHRoZSB0ZXN0IHBhcnQgc3VjY2VlZGVkLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFu
eXRoaW5nLgotICBpZiAocmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3Mp
Ci0gICAgcmV0dXJuOwotCi0gIC8vIFByaW50IGZhaWx1cmUgbWVzc2FnZSBmcm9tIHRoZSBhc3Nl
cnRpb24gKGUuZy4gZXhwZWN0ZWQgdGhpcyBhbmQgZ290IHRoYXQpLgotICBQcmludFRlc3RQYXJ0
UmVzdWx0KHJlc3VsdCk7Ci0gIGZmbHVzaChzdGRvdXQpOwotfQotCi12b2lkIFByZXR0eVVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsK
LSAgaWYgKHRlc3RfaW5mby5yZXN1bHQoKS0+UGFzc2VkKCkpIHsKLSAgICBDb2xvcmVkUHJpbnRm
KENPTE9SX0dSRUVOLCAiWyAgICAgICBPSyBdICIpOwotICB9IGVsc2UgewotICAgIENvbG9yZWRQ
cmludGYoQ09MT1JfUkVELCAiWyAgRkFJTEVEICBdICIpOwotICB9Ci0gIFByaW50VGVzdE5hbWUo
dGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwotICBpZiAodGVz
dF9pbmZvLnJlc3VsdCgpLT5GYWlsZWQoKSkKLSAgICBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJl
c2VudCh0ZXN0X2luZm8pOwotCi0gIGlmIChHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB7Ci0gICAg
cHJpbnRmKCIgKCVzIG1zKVxuIiwgaW50ZXJuYWw6OlN0cmVhbWFibGVUb1N0cmluZygKLSAgICAg
ICAgICAgdGVzdF9pbmZvLnJlc3VsdCgpLT5lbGFwc2VkX3RpbWUoKSkuY19zdHIoKSk7Ci0gIH0g
ZWxzZSB7Ci0gICAgcHJpbnRmKCJcbiIpOwotICB9Ci0gIGZmbHVzaChzdGRvdXQpOwotfQotCi12
b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZUVuZChjb25zdCBUZXN0
Q2FzZSYgdGVzdF9jYXNlKSB7Ci0gIGlmICghR1RFU1RfRkxBRyhwcmludF90aW1lKSkgcmV0dXJu
OwotCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIGNvdW50cyA9Ci0gICAgICBGb3JtYXRDb3VudGFibGVO
b3VuKHRlc3RfY2FzZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVzdCIsICJ0ZXN0cyIpOwotICBD
b2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAiWy0tLS0tLS0tLS1dICIpOwotICBwcmludGYoIiVz
IGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4iLAotICAgICAgICAgY291bnRzLmNfc3RyKCksIHRl
c3RfY2FzZS5uYW1lKCksCi0gICAgICAgICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHRl
c3RfY2FzZS5lbGFwc2VkX3RpbWUoKSkuY19zdHIoKSk7Ci0gIGZmbHVzaChzdGRvdXQpOwotfQot
Ci12b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVudHNUZWFyRG93
blN0YXJ0KAotICAgIGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gIENvbG9yZWRQ
cmludGYoQ09MT1JfR1JFRU4sICAiWy0tLS0tLS0tLS1dICIpOwotICBwcmludGYoIkdsb2JhbCB0
ZXN0IGVudmlyb25tZW50IHRlYXItZG93blxuIik7Ci0gIGZmbHVzaChzdGRvdXQpOwotfQotCi0v
LyBJbnRlcm5hbCBoZWxwZXIgZm9yIHByaW50aW5nIHRoZSBsaXN0IG9mIGZhaWxlZCB0ZXN0cy4K
LXZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludEZhaWxlZFRlc3RzKGNvbnN0
IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKLSAgY29uc3QgaW50IGZhaWxlZF90ZXN0X2NvdW50ID0g
dW5pdF90ZXN0LmZhaWxlZF90ZXN0X2NvdW50KCk7Ci0gIGlmIChmYWlsZWRfdGVzdF9jb3VudCA9
PSAwKSB7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rl
c3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGNvbnN0IFRlc3RDYXNlJiB0
ZXN0X2Nhc2UgPSAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpOwotICAgIGlmICghdGVzdF9jYXNl
LnNob3VsZF9ydW4oKSB8fCAodGVzdF9jYXNlLmZhaWxlZF90ZXN0X2NvdW50KCkgPT0gMCkpIHsK
LSAgICAgIGNvbnRpbnVlOwotICAgIH0KLSAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RfY2Fz
ZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraikgewotICAgICAgY29uc3QgVGVzdEluZm8mIHRlc3Rf
aW5mbyA9ICp0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaik7Ci0gICAgICBpZiAoIXRlc3RfaW5mby5z
aG91bGRfcnVuKCkgfHwgdGVzdF9pbmZvLnJlc3VsdCgpLT5QYXNzZWQoKSkgewotICAgICAgICBj
b250aW51ZTsKLSAgICAgIH0KLSAgICAgIENvbG9yZWRQcmludGYoQ09MT1JfUkVELCAiWyAgRkFJ
TEVEICBdICIpOwotICAgICAgcHJpbnRmKCIlcy4lcyIsIHRlc3RfY2FzZS5uYW1lKCksIHRlc3Rf
aW5mby5uYW1lKCkpOwotICAgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJZlByZXNlbnQodGVzdF9p
bmZvKTsKLSAgICAgIHByaW50ZigiXG4iKTsKLSAgICB9Ci0gIH0KLX0KLQotdm9pZCBQcmV0dHlV
bml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgewotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVO
LCAgIls9PT09PT09PT09XSAiKTsKLSAgcHJpbnRmKCIlcyBmcm9tICVzIHJhbi4iLAotICAgICAg
ICAgRm9ybWF0VGVzdENvdW50KHVuaXRfdGVzdC50ZXN0X3RvX3J1bl9jb3VudCgpKS5jX3N0cigp
LAotICAgICAgICAgRm9ybWF0VGVzdENhc2VDb3VudCh1bml0X3Rlc3QudGVzdF9jYXNlX3RvX3J1
bl9jb3VudCgpKS5jX3N0cigpKTsKLSAgaWYgKEdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHsKLSAg
ICBwcmludGYoIiAoJXMgbXMgdG90YWwpIiwKLSAgICAgICAgICAgaW50ZXJuYWw6OlN0cmVhbWFi
bGVUb1N0cmluZyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkpLmNfc3RyKCkpOwotICB9Ci0gIHBy
aW50ZigiXG4iKTsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbICBQQVNTRUQgIF0g
Iik7Ci0gIHByaW50ZigiJXMuXG4iLCBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnN1Y2Nlc3Nm
dWxfdGVzdF9jb3VudCgpKS5jX3N0cigpKTsKLQotICBpbnQgbnVtX2ZhaWx1cmVzID0gdW5pdF90
ZXN0LmZhaWxlZF90ZXN0X2NvdW50KCk7Ci0gIGlmICghdW5pdF90ZXN0LlBhc3NlZCgpKSB7Ci0g
ICAgY29uc3QgaW50IGZhaWxlZF90ZXN0X2NvdW50ID0gdW5pdF90ZXN0LmZhaWxlZF90ZXN0X2Nv
dW50KCk7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsICAiWyAgRkFJTEVEICBdICIpOwot
ICAgIHByaW50ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRlc3RDb3VudChmYWlsZWRf
dGVzdF9jb3VudCkuY19zdHIoKSk7Ci0gICAgUHJpbnRGYWlsZWRUZXN0cyh1bml0X3Rlc3QpOwot
ICAgIHByaW50ZigiXG4lMmQgRkFJTEVEICVzXG4iLCBudW1fZmFpbHVyZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBudW1fZmFpbHVyZXMgPT0gMSA/ICJURVNUIiA6ICJURVNUUyIpOwotICB9
Ci0KLSAgaW50IG51bV9kaXNhYmxlZCA9IHVuaXRfdGVzdC5yZXBvcnRhYmxlX2Rpc2FibGVkX3Rl
c3RfY291bnQoKTsKLSAgaWYgKG51bV9kaXNhYmxlZCAmJiAhR1RFU1RfRkxBRyhhbHNvX3J1bl9k
aXNhYmxlZF90ZXN0cykpIHsKLSAgICBpZiAoIW51bV9mYWlsdXJlcykgewotICAgICAgcHJpbnRm
KCJcbiIpOyAgLy8gQWRkIGEgc3BhY2VyIGlmIG5vIEZBSUxVUkUgYmFubmVyIGlzIGRpc3BsYXll
ZC4KLSAgICB9Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9ZRUxMT1csCi0gICAgICAgICAgICAg
ICAgICAiICBZT1UgSEFWRSAlZCBESVNBQkxFRCAlc1xuXG4iLAotICAgICAgICAgICAgICAgICAg
bnVtX2Rpc2FibGVkLAotICAgICAgICAgICAgICAgICAgbnVtX2Rpc2FibGVkID09IDEgPyAiVEVT
VCIgOiAiVEVTVFMiKTsKLSAgfQotICAvLyBFbnN1cmUgdGhhdCBHb29nbGUgVGVzdCBvdXRwdXQg
aXMgcHJpbnRlZCBiZWZvcmUsIGUuZy4sIGhlYXBjaGVja2VyIG91dHB1dC4KLSAgZmZsdXNoKHN0
ZG91dCk7Ci19Ci0KLS8vIEVuZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXIKLQotLy8gY2xh
c3MgVGVzdEV2ZW50UmVwZWF0ZXIKLS8vCi0vLyBUaGlzIGNsYXNzIGZvcndhcmRzIGV2ZW50cyB0
byBvdGhlciBldmVudCBsaXN0ZW5lcnMuCi1jbGFzcyBUZXN0RXZlbnRSZXBlYXRlciA6IHB1Ymxp
YyBUZXN0RXZlbnRMaXN0ZW5lciB7Ci0gcHVibGljOgotICBUZXN0RXZlbnRSZXBlYXRlcigpIDog
Zm9yd2FyZGluZ19lbmFibGVkXyh0cnVlKSB7fQotICB2aXJ0dWFsIH5UZXN0RXZlbnRSZXBlYXRl
cigpOwotICB2b2lkIEFwcGVuZChUZXN0RXZlbnRMaXN0ZW5lciAqbGlzdGVuZXIpOwotICBUZXN0
RXZlbnRMaXN0ZW5lciogUmVsZWFzZShUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpOwotCi0g
IC8vIENvbnRyb2xzIHdoZXRoZXIgZXZlbnRzIHdpbGwgYmUgZm9yd2FyZGVkIHRvIGxpc3RlbmVy
c18uIFNldCB0byBmYWxzZQotICAvLyBpbiBkZWF0aCB0ZXN0IGNoaWxkIHByb2Nlc3Nlcy4KLSAg
Ym9vbCBmb3J3YXJkaW5nX2VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmb3J3YXJkaW5nX2VuYWJs
ZWRfOyB9Ci0gIHZvaWQgc2V0X2ZvcndhcmRpbmdfZW5hYmxlZChib29sIGVuYWJsZSkgeyBmb3J3
YXJkaW5nX2VuYWJsZWRfID0gZW5hYmxlOyB9Ci0KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dy
YW1TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24p
OwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiB1bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25z
dCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFydChj
b25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNv
bnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3Vs
dChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEVu
ZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VF
bmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1YWwg
dm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3Qp
OwotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChj
b25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLQotIHByaXZhdGU6Ci0gIC8vIENvbnRyb2xzIHdo
ZXRoZXIgZXZlbnRzIHdpbGwgYmUgZm9yd2FyZGVkIHRvIGxpc3RlbmVyc18uIFNldCB0byBmYWxz
ZQotICAvLyBpbiBkZWF0aCB0ZXN0IGNoaWxkIHByb2Nlc3Nlcy4KLSAgYm9vbCBmb3J3YXJkaW5n
X2VuYWJsZWRfOwotICAvLyBUaGUgbGlzdCBvZiBsaXN0ZW5lcnMgdGhhdCByZWNlaXZlIGV2ZW50
cy4KLSAgc3RkOjp2ZWN0b3I8VGVzdEV2ZW50TGlzdGVuZXIqPiBsaXN0ZW5lcnNfOwotCi0gIEdU
RVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVGVzdEV2ZW50UmVwZWF0ZXIpOwotfTsKLQot
VGVzdEV2ZW50UmVwZWF0ZXI6On5UZXN0RXZlbnRSZXBlYXRlcigpIHsKLSAgRm9yRWFjaChsaXN0
ZW5lcnNfLCBEZWxldGU8VGVzdEV2ZW50TGlzdGVuZXI+KTsKLX0KLQotdm9pZCBUZXN0RXZlbnRS
ZXBlYXRlcjo6QXBwZW5kKFRlc3RFdmVudExpc3RlbmVyICpsaXN0ZW5lcikgewotICBsaXN0ZW5l
cnNfLnB1c2hfYmFjayhsaXN0ZW5lcik7Ci19Ci0KLS8vIFRPRE8odmxhZGxAZ29vZ2xlLmNvbSk6
IEZhY3RvciB0aGUgc2VhcmNoIGZ1bmN0aW9uYWxpdHkgaW50byBWZWN0b3I6OkZpbmQuCi1UZXN0
RXZlbnRMaXN0ZW5lciogVGVzdEV2ZW50UmVwZWF0ZXI6OlJlbGVhc2UoVGVzdEV2ZW50TGlzdGVu
ZXIgKmxpc3RlbmVyKSB7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzXy5zaXpl
KCk7ICsraSkgewotICAgIGlmIChsaXN0ZW5lcnNfW2ldID09IGxpc3RlbmVyKSB7Ci0gICAgICBs
aXN0ZW5lcnNfLmVyYXNlKGxpc3RlbmVyc18uYmVnaW4oKSArIGkpOwotICAgICAgcmV0dXJuIGxp
c3RlbmVyOwotICAgIH0KLSAgfQotCi0gIHJldHVybiBOVUxMOwotfQotCi0vLyBTaW5jZSBtb3N0
IG1ldGhvZHMgYXJlIHZlcnkgc2ltaWxhciwgdXNlIG1hY3JvcyB0byByZWR1Y2UgYm9pbGVycGxh
dGUuCi0vLyBUaGlzIGRlZmluZXMgYSBtZW1iZXIgdGhhdCBmb3J3YXJkcyB0aGUgY2FsbCB0byBh
bGwgbGlzdGVuZXJzLgotI2RlZmluZSBHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE5hbWUsIFR5cGUp
IFwKLXZvaWQgVGVzdEV2ZW50UmVwZWF0ZXI6Ok5hbWUoY29uc3QgVHlwZSYgcGFyYW1ldGVyKSB7
IFwKLSAgaWYgKGZvcndhcmRpbmdfZW5hYmxlZF8pIHsgXAotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGlzdGVuZXJzXy5zaXplKCk7IGkrKykgeyBcCi0gICAgICBsaXN0ZW5lcnNfW2ldLT5O
YW1lKHBhcmFtZXRlcik7IFwKLSAgICB9IFwKLSAgfSBcCi19Ci0vLyBUaGlzIGRlZmluZXMgYSBt
ZW1iZXIgdGhhdCBmb3J3YXJkcyB0aGUgY2FsbCB0byBhbGwgbGlzdGVuZXJzIGluIHJldmVyc2UK
LS8vIG9yZGVyLgotI2RlZmluZSBHVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oTmFtZSwg
VHlwZSkgXAotdm9pZCBUZXN0RXZlbnRSZXBlYXRlcjo6TmFtZShjb25zdCBUeXBlJiBwYXJhbWV0
ZXIpIHsgXAotICBpZiAoZm9yd2FyZGluZ19lbmFibGVkXykgeyBcCi0gICAgZm9yIChpbnQgaSA9
IHN0YXRpY19jYXN0PGludD4obGlzdGVuZXJzXy5zaXplKCkpIC0gMTsgaSA+PSAwOyBpLS0pIHsg
XAotICAgICAgbGlzdGVuZXJzX1tpXS0+TmFtZShwYXJhbWV0ZXIpOyBcCi0gICAgfSBcCi0gIH0g
XAotfQotCi1HVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFByb2dyYW1TdGFydCwgVW5pdFRl
c3QpCi1HVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCwgVW5p
dFRlc3QpCi1HVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VTdGFydCwgVGVzdENhc2Up
Ci1HVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFN0YXJ0LCBUZXN0SW5mbykKLUdURVNUX1JF
UEVBVEVSX01FVEhPRF8oT25UZXN0UGFydFJlc3VsdCwgVGVzdFBhcnRSZXN1bHQpCi1HVEVTVF9S
RVBFQVRFUl9NRVRIT0RfKE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCwgVW5pdFRlc3QpCi1H
VEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oT25FbnZpcm9ubWVudHNTZXRVcEVuZCwgVW5p
dFRlc3QpCi1HVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oT25FbnZpcm9ubWVudHNUZWFy
RG93bkVuZCwgVW5pdFRlc3QpCi1HVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oT25UZXN0
RW5kLCBUZXN0SW5mbykKLUdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RDYXNl
RW5kLCBUZXN0Q2FzZSkKLUdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RQcm9n
cmFtRW5kLCBVbml0VGVzdCkKLQotI3VuZGVmIEdURVNUX1JFUEVBVEVSX01FVEhPRF8KLSN1bmRl
ZiBHVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8KLQotdm9pZCBUZXN0RXZlbnRSZXBlYXRl
cjo6T25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIHsK
LSAgaWYgKGZvcndhcmRpbmdfZW5hYmxlZF8pIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxpc3RlbmVyc18uc2l6ZSgpOyBpKyspIHsKLSAgICAgIGxpc3RlbmVyc19baV0tPk9uVGVzdEl0
ZXJhdGlvblN0YXJ0KHVuaXRfdGVzdCwgaXRlcmF0aW9uKTsKLSAgICB9Ci0gIH0KLX0KLQotdm9p
ZCBUZXN0RXZlbnRSZXBlYXRlcjo6T25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1
bml0X3Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IGl0ZXJhdGlvbikgewotICBpZiAoZm9yd2FyZGluZ19lbmFibGVkXykgewotICAgIGZvciAoaW50
IGkgPSBzdGF0aWNfY2FzdDxpbnQ+KGxpc3RlbmVyc18uc2l6ZSgpKSAtIDE7IGkgPj0gMDsgaS0t
KSB7Ci0gICAgICBsaXN0ZW5lcnNfW2ldLT5PblRlc3RJdGVyYXRpb25FbmQodW5pdF90ZXN0LCBp
dGVyYXRpb24pOwotICAgIH0KLSAgfQotfQotCi0vLyBFbmQgVGVzdEV2ZW50UmVwZWF0ZXIKLQot
Ly8gVGhpcyBjbGFzcyBnZW5lcmF0ZXMgYW4gWE1MIG91dHB1dCBmaWxlLgotY2xhc3MgWG1sVW5p
dFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewotIHB1
YmxpYzoKLSAgZXhwbGljaXQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyKGNvbnN0IGNoYXIqIG91
dHB1dF9maWxlKTsKLQotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVu
aXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotCi0gcHJpdmF0ZToKLSAgLy8gSXMg
YyBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIHRoYXQgaXMgbm9ybWFsaXplZCB0byBhIHNwYWNlIGNo
YXJhY3RlcgotICAvLyB3aGVuIGl0IGFwcGVhcnMgaW4gYW4gWE1MIGF0dHJpYnV0ZSB2YWx1ZT8K
LSAgc3RhdGljIGJvb2wgSXNOb3JtYWxpemFibGVXaGl0ZXNwYWNlKGNoYXIgYykgewotICAgIHJl
dHVybiBjID09IDB4OSB8fCBjID09IDB4QSB8fCBjID09IDB4RDsKLSAgfQotCi0gIC8vIE1heSBj
IGFwcGVhciBpbiBhIHdlbGwtZm9ybWVkIFhNTCBkb2N1bWVudD8KLSAgc3RhdGljIGJvb2wgSXNW
YWxpZFhtbENoYXJhY3RlcihjaGFyIGMpIHsKLSAgICByZXR1cm4gSXNOb3JtYWxpemFibGVXaGl0
ZXNwYWNlKGMpIHx8IGMgPj0gMHgyMDsKLSAgfQotCi0gIC8vIFJldHVybnMgYW4gWE1MLWVzY2Fw
ZWQgY29weSBvZiB0aGUgaW5wdXQgc3RyaW5nIHN0ci4gIElmCi0gIC8vIGlzX2F0dHJpYnV0ZSBp
cyB0cnVlLCB0aGUgdGV4dCBpcyBtZWFudCB0byBhcHBlYXIgYXMgYW4gYXR0cmlidXRlCi0gIC8v
IHZhbHVlLCBhbmQgbm9ybWFsaXphYmxlIHdoaXRlc3BhY2UgaXMgcHJlc2VydmVkIGJ5IHJlcGxh
Y2luZyBpdAotICAvLyB3aXRoIGNoYXJhY3RlciByZWZlcmVuY2VzLgotICBzdGF0aWMgc3RkOjpz
dHJpbmcgRXNjYXBlWG1sKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIsIGJvb2wgaXNfYXR0cmlidXRl
KTsKLQotICAvLyBSZXR1cm5zIHRoZSBnaXZlbiBzdHJpbmcgd2l0aCBhbGwgY2hhcmFjdGVycyBp
bnZhbGlkIGluIFhNTCByZW1vdmVkLgotICBzdGF0aWMgc3RkOjpzdHJpbmcgUmVtb3ZlSW52YWxp
ZFhtbENoYXJhY3RlcnMoY29uc3Qgc3RkOjpzdHJpbmcmIHN0cik7Ci0KLSAgLy8gQ29udmVuaWVu
Y2Ugd3JhcHBlciBhcm91bmQgRXNjYXBlWG1sIHdoZW4gc3RyIGlzIGFuIGF0dHJpYnV0ZSB2YWx1
ZS4KLSAgc3RhdGljIHN0ZDo6c3RyaW5nIEVzY2FwZVhtbEF0dHJpYnV0ZShjb25zdCBzdGQ6OnN0
cmluZyYgc3RyKSB7Ci0gICAgcmV0dXJuIEVzY2FwZVhtbChzdHIsIHRydWUpOwotICB9Ci0KLSAg
Ly8gQ29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgRXNjYXBlWG1sIHdoZW4gc3RyIGlzIG5vdCBh
biBhdHRyaWJ1dGUgdmFsdWUuCi0gIHN0YXRpYyBzdGQ6OnN0cmluZyBFc2NhcGVYbWxUZXh0KGNv
bnN0IGNoYXIqIHN0cikgewotICAgIHJldHVybiBFc2NhcGVYbWwoc3RyLCBmYWxzZSk7Ci0gIH0K
LQotICAvLyBWZXJpZmllcyB0aGF0IHRoZSBnaXZlbiBhdHRyaWJ1dGUgYmVsb25ncyB0byB0aGUg
Z2l2ZW4gZWxlbWVudCBhbmQKLSAgLy8gc3RyZWFtcyB0aGUgYXR0cmlidXRlIGFzIFhNTC4KLSAg
c3RhdGljIHZvaWQgT3V0cHV0WG1sQXR0cmlidXRlKHN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGVsZW1lbnRf
bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n
JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJp
bmcmIHZhbHVlKTsKLQotICAvLyBTdHJlYW1zIGFuIFhNTCBDREFUQSBzZWN0aW9uLCBlc2NhcGlu
ZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQuCi0gIHN0YXRpYyB2b2lkIE91dHB1
dFhtbENEYXRhU2VjdGlvbig6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBjaGFyKiBkYXRh
KTsKLQotICAvLyBTdHJlYW1zIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZvIG9i
amVjdC4KLSAgc3RhdGljIHZvaWQgT3V0cHV0WG1sVGVzdEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0
cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9j
YXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RJbmZv
JiB0ZXN0X2luZm8pOwotCi0gIC8vIFByaW50cyBhbiBYTUwgcmVwcmVzZW50YXRpb24gb2YgYSBU
ZXN0Q2FzZSBvYmplY3QKLSAgc3RhdGljIHZvaWQgUHJpbnRYbWxUZXN0Q2FzZSg6OnN0ZDo6b3N0
cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RD
YXNlJiB0ZXN0X2Nhc2UpOwotCi0gIC8vIFByaW50cyBhbiBYTUwgc3VtbWFyeSBvZiB1bml0X3Rl
c3QgdG8gb3V0cHV0IHN0cmVhbSBvdXQuCi0gIHN0YXRpYyB2b2lkIFByaW50WG1sVW5pdFRlc3Qo
OjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLQotICAvLyBQcm9kdWNlcyBhIHN0cmluZyByZXBy
ZXNlbnRpbmcgdGhlIHRlc3QgcHJvcGVydGllcyBpbiBhIHJlc3VsdCBhcyBzcGFjZQotICAvLyBk
ZWxpbWl0ZWQgWE1MIGF0dHJpYnV0ZXMgYmFzZWQgb24gdGhlIHByb3BlcnR5IGtleT0idmFsdWUi
IHBhaXJzLgotICAvLyBXaGVuIHRoZSBzdGQ6OnN0cmluZyBpcyBub3QgZW1wdHksIGl0IGluY2x1
ZGVzIGEgc3BhY2UgYXQgdGhlIGJlZ2lubmluZywKLSAgLy8gdG8gZGVsaW1pdCB0aGlzIGF0dHJp
YnV0ZSBmcm9tIHByaW9yIGF0dHJpYnV0ZXMuCi0gIHN0YXRpYyBzdGQ6OnN0cmluZyBUZXN0UHJv
cGVydGllc0FzWG1sQXR0cmlidXRlcyhjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOwotCi0gIC8v
IFRoZSBvdXRwdXQgZmlsZS4KLSAgY29uc3Qgc3RkOjpzdHJpbmcgb3V0cHV0X2ZpbGVfOwotCi0g
IEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oWG1sVW5pdFRlc3RSZXN1bHRQcmludGVy
KTsKLX07Ci0KLS8vIENyZWF0ZXMgYSBuZXcgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyLgotWG1s
VW5pdFRlc3RSZXN1bHRQcmludGVyOjpYbWxVbml0VGVzdFJlc3VsdFByaW50ZXIoY29uc3QgY2hh
ciogb3V0cHV0X2ZpbGUpCi0gICAgOiBvdXRwdXRfZmlsZV8ob3V0cHV0X2ZpbGUpIHsKLSAgaWYg
KG91dHB1dF9maWxlXy5jX3N0cigpID09IE5VTEwgfHwgb3V0cHV0X2ZpbGVfLmVtcHR5KCkpIHsK
LSAgICBHVEVTVF9MT0dfKEZBVEFMKSA8PCAiWE1MIG91dHB1dCBmaWxlIG1heSBub3QgYmUgbnVs
bCI7Ci0gIH0KLX0KLQotLy8gQ2FsbGVkIGFmdGVyIHRoZSB1bml0IHRlc3QgZW5kcy4KLXZvaWQg
WG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRl
c3QmIHVuaXRfdGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIHsKLSAgRklMRSogeG1sb3V0ID0gTlVMTDsKLSAg
RmlsZVBhdGggb3V0cHV0X2ZpbGUob3V0cHV0X2ZpbGVfKTsKLSAgRmlsZVBhdGggb3V0cHV0X2Rp
cihvdXRwdXRfZmlsZS5SZW1vdmVGaWxlTmFtZSgpKTsKLQotICBpZiAob3V0cHV0X2Rpci5DcmVh
dGVEaXJlY3Rvcmllc1JlY3Vyc2l2ZWx5KCkpIHsKLSAgICB4bWxvdXQgPSBwb3NpeDo6Rk9wZW4o
b3V0cHV0X2ZpbGVfLmNfc3RyKCksICJ3Iik7Ci0gIH0KLSAgaWYgKHhtbG91dCA9PSBOVUxMKSB7
Ci0gICAgLy8gVE9ETyh3YW4pOiByZXBvcnQgdGhlIHJlYXNvbiBvZiB0aGUgZmFpbHVyZS4KLSAg
ICAvLwotICAgIC8vIFdlIGRvbid0IGRvIGl0IGZvciBub3cgYXM6Ci0gICAgLy8KLSAgICAvLyAg
IDEuIFRoZXJlIGlzIG5vIHVyZ2VudCBuZWVkIGZvciBpdC4KLSAgICAvLyAgIDIuIEl0J3MgYSBi
aXQgaW52b2x2ZWQgdG8gbWFrZSB0aGUgZXJybm8gdmFyaWFibGUgdGhyZWFkLXNhZmUgb24KLSAg
ICAvLyAgICAgIGFsbCB0aHJlZSBvcGVyYXRpbmcgc3lzdGVtcyAoTGludXgsIFdpbmRvd3MsIGFu
ZCBNYWMgT1MpLgotICAgIC8vICAgMy4gVG8gaW50ZXJwcmV0IHRoZSBtZWFuaW5nIG9mIGVycm5v
IGluIGEgdGhyZWFkLXNhZmUgd2F5LAotICAgIC8vICAgICAgd2UgbmVlZCB0aGUgc3RyZXJyb3Jf
cigpIGZ1bmN0aW9uLCB3aGljaCBpcyBub3QgYXZhaWxhYmxlIG9uCi0gICAgLy8gICAgICBXaW5k
b3dzLgotICAgIEdURVNUX0xPR18oRkFUQUwpIDw8ICJVbmFibGUgdG8gb3BlbiBmaWxlIFwiIgot
ICAgICAgICAgICAgICAgICAgICAgIDw8IG91dHB1dF9maWxlXyA8PCAiXCIiOwotICB9Ci0gIHN0
ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKLSAgUHJpbnRYbWxVbml0VGVzdCgmc3RyZWFtLCB1bml0
X3Rlc3QpOwotICBmcHJpbnRmKHhtbG91dCwgIiVzIiwgU3RyaW5nU3RyZWFtVG9TdHJpbmcoJnN0
cmVhbSkuY19zdHIoKSk7Ci0gIGZjbG9zZSh4bWxvdXQpOwotfQotCi0vLyBSZXR1cm5zIGFuIFhN
TC1lc2NhcGVkIGNvcHkgb2YgdGhlIGlucHV0IHN0cmluZyBzdHIuICBJZiBpc19hdHRyaWJ1dGUK
LS8vIGlzIHRydWUsIHRoZSB0ZXh0IGlzIG1lYW50IHRvIGFwcGVhciBhcyBhbiBhdHRyaWJ1dGUg
dmFsdWUsIGFuZAotLy8gbm9ybWFsaXphYmxlIHdoaXRlc3BhY2UgaXMgcHJlc2VydmVkIGJ5IHJl
cGxhY2luZyBpdCB3aXRoIGNoYXJhY3RlcgotLy8gcmVmZXJlbmNlcy4KLS8vCi0vLyBJbnZhbGlk
IFhNTCBjaGFyYWN0ZXJzIGluIHN0ciwgaWYgYW55LCBhcmUgc3RyaXBwZWQgZnJvbSB0aGUgb3V0
cHV0LgotLy8gSXQgaXMgZXhwZWN0ZWQgdGhhdCBtb3N0LCBpZiBub3QgYWxsLCBvZiB0aGUgdGV4
dCBwcm9jZXNzZWQgYnkgdGhpcwotLy8gbW9kdWxlIHdpbGwgY29uc2lzdCBvZiBvcmRpbmFyeSBF
bmdsaXNoIHRleHQuCi0vLyBJZiB0aGlzIG1vZHVsZSBpcyBldmVyIG1vZGlmaWVkIHRvIHByb2R1
Y2UgdmVyc2lvbiAxLjEgWE1MIG91dHB1dCwKLS8vIG1vc3QgaW52YWxpZCBjaGFyYWN0ZXJzIGNh
biBiZSByZXRhaW5lZCB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcy4KLS8vIFRPRE8od2FuKTog
SXQgbWlnaHQgYmUgbmljZSB0byBoYXZlIGEgbWluaW1hbGx5IGludmFzaXZlLCBodW1hbi1yZWFk
YWJsZQotLy8gZXNjYXBpbmcgc2NoZW1lIGZvciBpbnZhbGlkIGNoYXJhY3RlcnMsIHJhdGhlciB0
aGFuIGRyb3BwaW5nIHRoZW0uCi1zdGQ6OnN0cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6
OkVzY2FwZVhtbCgKLSAgICBjb25zdCBzdGQ6OnN0cmluZyYgc3RyLCBib29sIGlzX2F0dHJpYnV0
ZSkgewotICBNZXNzYWdlIG07Ci0KLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdHIuc2l6ZSgp
OyArK2kpIHsKLSAgICBjb25zdCBjaGFyIGNoID0gc3RyW2ldOwotICAgIHN3aXRjaCAoY2gpIHsK
LSAgICAgIGNhc2UgJzwnOgotICAgICAgICBtIDw8ICImbHQ7IjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgICBjYXNlICc+JzoKLSAgICAgICAgbSA8PCAiJmd0OyI7Ci0gICAgICAgIGJyZWFrOwotICAg
ICAgY2FzZSAnJic6Ci0gICAgICAgIG0gPDwgIiZhbXA7IjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
ICBjYXNlICdcJyc6Ci0gICAgICAgIGlmIChpc19hdHRyaWJ1dGUpCi0gICAgICAgICAgbSA8PCAi
JmFwb3M7IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgIG0gPDwgJ1wnJzsKLSAgICAgICAgYnJl
YWs7Ci0gICAgICBjYXNlICciJzoKLSAgICAgICAgaWYgKGlzX2F0dHJpYnV0ZSkKLSAgICAgICAg
ICBtIDw8ICImcXVvdDsiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgbSA8PCAnIic7Ci0gICAg
ICAgIGJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgaWYgKElzVmFsaWRYbWxDaGFyYWN0
ZXIoY2gpKSB7Ci0gICAgICAgICAgaWYgKGlzX2F0dHJpYnV0ZSAmJiBJc05vcm1hbGl6YWJsZVdo
aXRlc3BhY2UoY2gpKQotICAgICAgICAgICAgbSA8PCAiJiN4IiA8PCBTdHJpbmc6OkZvcm1hdEJ5
dGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpKQotICAgICAgICAgICAgICA8PCAiOyI7
Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgbSA8PCBjaDsKLSAgICAgICAgfQotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gbS5HZXRTdHJpbmcoKTsKLX0KLQotLy8g
UmV0dXJucyB0aGUgZ2l2ZW4gc3RyaW5nIHdpdGggYWxsIGNoYXJhY3RlcnMgaW52YWxpZCBpbiBY
TUwgcmVtb3ZlZC4KLS8vIEN1cnJlbnRseSBpbnZhbGlkIGNoYXJhY3RlcnMgYXJlIGRyb3BwZWQg
ZnJvbSB0aGUgc3RyaW5nLiBBbgotLy8gYWx0ZXJuYXRpdmUgaXMgdG8gcmVwbGFjZSB0aGVtIHdp
dGggY2VydGFpbiBjaGFyYWN0ZXJzIHN1Y2ggYXMgLiBvciA/Lgotc3RkOjpzdHJpbmcgWG1sVW5p
dFRlc3RSZXN1bHRQcmludGVyOjpSZW1vdmVJbnZhbGlkWG1sQ2hhcmFjdGVycygKLSAgICBjb25z
dCBzdGQ6OnN0cmluZyYgc3RyKSB7Ci0gIHN0ZDo6c3RyaW5nIG91dHB1dDsKLSAgb3V0cHV0LnJl
c2VydmUoc3RyLnNpemUoKSk7Ci0gIGZvciAoc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gc3RyLmJlZ2luKCk7IGl0ICE9IHN0ci5lbmQoKTsgKytpdCkKLSAgICBpZiAoSXNWYWxpZFht
bENoYXJhY3RlcigqaXQpKQotICAgICAgb3V0cHV0LnB1c2hfYmFjaygqaXQpOwotCi0gIHJldHVy
biBvdXRwdXQ7Ci19Ci0KLS8vIFRoZSBmb2xsb3dpbmcgcm91dGluZXMgZ2VuZXJhdGUgYW4gWE1M
IHJlcHJlc2VudGF0aW9uIG9mIGEgVW5pdFRlc3QKLS8vIG9iamVjdC4KLS8vCi0vLyBUaGlzIGlz
IGhvdyBHb29nbGUgVGVzdCBjb25jZXB0cyBtYXAgdG8gdGhlIERURDoKLS8vCi0vLyA8dGVzdHN1
aXRlcyBuYW1lPSJBbGxUZXN0cyI+ICAgICAgICA8LS0gY29ycmVzcG9uZHMgdG8gYSBVbml0VGVz
dCBvYmplY3QKLS8vICAgPHRlc3RzdWl0ZSBuYW1lPSJ0ZXN0Y2FzZS1uYW1lIj4gIDwtLSBjb3Jy
ZXNwb25kcyB0byBhIFRlc3RDYXNlIG9iamVjdAotLy8gICAgIDx0ZXN0Y2FzZSBuYW1lPSJ0ZXN0
LW5hbWUiPiAgICAgPC0tIGNvcnJlc3BvbmRzIHRvIGEgVGVzdEluZm8gb2JqZWN0Ci0vLyAgICAg
ICA8ZmFpbHVyZSBtZXNzYWdlPSIuLi4iPi4uLjwvZmFpbHVyZT4KLS8vICAgICAgIDxmYWlsdXJl
IG1lc3NhZ2U9Ii4uLiI+Li4uPC9mYWlsdXJlPgotLy8gICAgICAgPGZhaWx1cmUgbWVzc2FnZT0i
Li4uIj4uLi48L2ZhaWx1cmU+Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8LS0gaW5kaXZpZHVhbCBhc3NlcnRpb24gZmFpbHVyZXMKLS8vICAgICA8L3Rlc3RjYXNlPgot
Ly8gICA8L3Rlc3RzdWl0ZT4KLS8vIDwvdGVzdHN1aXRlcz4KLQotLy8gRm9ybWF0cyB0aGUgZ2l2
ZW4gdGltZSBpbiBtaWxsaXNlY29uZHMgYXMgc2Vjb25kcy4KLXN0ZDo6c3RyaW5nIEZvcm1hdFRp
bWVJbk1pbGxpc0FzU2Vjb25kcyhUaW1lSW5NaWxsaXMgbXMpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0
cmVhbSBzczsKLSAgc3MgPDwgKHN0YXRpY19jYXN0PGRvdWJsZT4obXMpICogMWUtMyk7Ci0gIHJl
dHVybiBzcy5zdHIoKTsKLX0KLQotc3RhdGljIGJvb2wgUG9ydGFibGVMb2NhbHRpbWUodGltZV90
IHNlY29uZHMsIHN0cnVjdCB0bSogb3V0KSB7Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSAgcmV0
dXJuIGxvY2FsdGltZV9zKG91dCwgJnNlY29uZHMpID09IDA7Ci0jZWxpZiBkZWZpbmVkKF9fTUlO
R1czMl9fKSB8fCBkZWZpbmVkKF9fTUlOR1c2NF9fKQotICAvLyBNSU5HVyA8dGltZS5oPiBwcm92
aWRlcyBuZWl0aGVyIGxvY2FsdGltZV9yIG5vciBsb2NhbHRpbWVfcywgYnV0IHVzZXMKLSAgLy8g
V2luZG93cycgbG9jYWx0aW1lKCksIHdoaWNoIGhhcyBhIHRocmVhZC1sb2NhbCB0bSBidWZmZXIu
Ci0gIHN0cnVjdCB0bSogdG1fcHRyID0gbG9jYWx0aW1lKCZzZWNvbmRzKTsgIC8vIE5PTElOVAot
ICBpZiAodG1fcHRyID09IE5VTEwpCi0gICAgcmV0dXJuIGZhbHNlOwotICAqb3V0ID0gKnRtX3B0
cjsKLSAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICByZXR1cm4gbG9jYWx0aW1lX3IoJnNlY29uZHMs
IG91dCkgIT0gTlVMTDsKLSNlbmRpZgotfQotCi0vLyBDb252ZXJ0cyB0aGUgZ2l2ZW4gZXBvY2gg
dGltZSBpbiBtaWxsaXNlY29uZHMgdG8gYSBkYXRlIHN0cmluZyBpbiB0aGUgSVNPCi0vLyA4NjAx
IGZvcm1hdCwgd2l0aG91dCB0aGUgdGltZXpvbmUgaW5mb3JtYXRpb24uCi1zdGQ6OnN0cmluZyBG
b3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShUaW1lSW5NaWxsaXMgbXMpIHsKLSAgc3Ry
dWN0IHRtIHRpbWVfc3RydWN0OwotICBpZiAoIVBvcnRhYmxlTG9jYWx0aW1lKHN0YXRpY19jYXN0
PHRpbWVfdD4obXMgLyAxMDAwKSwgJnRpbWVfc3RydWN0KSkKLSAgICByZXR1cm4gIiI7Ci0gIC8v
IFlZWVktTU0tRERUaGg6bW06c3MKLSAgcmV0dXJuIFN0cmVhbWFibGVUb1N0cmluZyh0aW1lX3N0
cnVjdC50bV95ZWFyICsgMTkwMCkgKyAiLSIgKwotICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0
aDIodGltZV9zdHJ1Y3QudG1fbW9uICsgMSkgKyAiLSIgKwotICAgICAgU3RyaW5nOjpGb3JtYXRJ
bnRXaWR0aDIodGltZV9zdHJ1Y3QudG1fbWRheSkgKyAiVCIgKwotICAgICAgU3RyaW5nOjpGb3Jt
YXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1faG91cikgKyAiOiIgKwotICAgICAgU3RyaW5nOjpG
b3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1fbWluKSArICI6IiArCi0gICAgICBTdHJpbmc6
OkZvcm1hdEludFdpZHRoMih0aW1lX3N0cnVjdC50bV9zZWMpOwotfQotCi0vLyBTdHJlYW1zIGFu
IFhNTCBDREFUQSBzZWN0aW9uLCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBu
ZWVkZWQuCi12b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sQ0RhdGFTZWN0
aW9uKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEpIHsKLSAgY29uc3QgY2hh
ciogc2VnbWVudCA9IGRhdGE7Ci0gICpzdHJlYW0gPDwgIjwhW0NEQVRBWyI7Ci0gIGZvciAoOzsp
IHsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBuZXh0X3NlZ21lbnQgPSBzdHJzdHIoc2VnbWVudCwg
Il1dPiIpOwotICAgIGlmIChuZXh0X3NlZ21lbnQgIT0gTlVMTCkgewotICAgICAgc3RyZWFtLT53
cml0ZSgKLSAgICAgICAgICBzZWdtZW50LCBzdGF0aWNfY2FzdDxzdGQ6OnN0cmVhbXNpemU+KG5l
eHRfc2VnbWVudCAtIHNlZ21lbnQpKTsKLSAgICAgICpzdHJlYW0gPDwgIl1dPl1dJmd0OzwhW0NE
QVRBWyI7Ci0gICAgICBzZWdtZW50ID0gbmV4dF9zZWdtZW50ICsgc3RybGVuKCJdXT4iKTsKLSAg
ICB9IGVsc2UgewotICAgICAgKnN0cmVhbSA8PCBzZWdtZW50OwotICAgICAgYnJlYWs7Ci0gICAg
fQotICB9Ci0gICpzdHJlYW0gPDwgIl1dPiI7Ci19Ci0KLXZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQ
cmludGVyOjpPdXRwdXRYbWxBdHRyaWJ1dGUoCi0gICAgc3RkOjpvc3RyZWFtKiBzdHJlYW0sCi0g
ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGVsZW1lbnRfbmFtZSwKLSAgICBjb25zdCBzdGQ6OnN0cmlu
ZyYgbmFtZSwKLSAgICBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKLSAgY29uc3Qgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+JiBhbGxvd2VkX25hbWVzID0KLSAgICAgIEdldFJlc2VydmVkQXR0
cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVudF9uYW1lKTsKLQotICBHVEVTVF9DSEVDS18oc3RkOjpm
aW5kKGFsbG93ZWRfbmFtZXMuYmVnaW4oKSwgYWxsb3dlZF9uYW1lcy5lbmQoKSwgbmFtZSkgIT0K
LSAgICAgICAgICAgICAgICAgICBhbGxvd2VkX25hbWVzLmVuZCgpKQotICAgICAgPDwgIkF0dHJp
YnV0ZSAiIDw8IG5hbWUgPDwgIiBpcyBub3QgYWxsb3dlZCBmb3IgZWxlbWVudCA8IiA8PCBlbGVt
ZW50X25hbWUKLSAgICAgIDw8ICI+LiI7Ci0KLSAgKnN0cmVhbSA8PCAiICIgPDwgbmFtZSA8PCAi
PVwiIiA8PCBFc2NhcGVYbWxBdHRyaWJ1dGUodmFsdWUpIDw8ICJcIiI7Ci19Ci0KLS8vIFByaW50
cyBhbiBYTUwgcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0SW5mbyBvYmplY3QuCi0vLyBUT0RPKHdh
bik6IFRoZXJlIGlzIGFsc28gdmFsdWUgaW4gcHJpbnRpbmcgcHJvcGVydGllcyB3aXRoIHRoZSBw
bGFpbiBwcmludGVyLgotdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dFhtbFRl
c3RJbmZvKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdElu
Zm8mIHRlc3RfaW5mbykgewotICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQgPSAqdGVzdF9pbmZv
LnJlc3VsdCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdGNhc2UgPSAidGVzdGNhc2UiOwot
Ci0gICpzdHJlYW0gPDwgIiAgICA8dGVzdGNhc2UiOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3Ry
ZWFtLCBrVGVzdGNhc2UsICJuYW1lIiwgdGVzdF9pbmZvLm5hbWUoKSk7Ci0KLSAgaWYgKHRlc3Rf
aW5mby52YWx1ZV9wYXJhbSgpICE9IE5VTEwpIHsKLSAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3Ry
ZWFtLCBrVGVzdGNhc2UsICJ2YWx1ZV9wYXJhbSIsCi0gICAgICAgICAgICAgICAgICAgICAgIHRl
c3RfaW5mby52YWx1ZV9wYXJhbSgpKTsKLSAgfQotICBpZiAodGVzdF9pbmZvLnR5cGVfcGFyYW0o
KSAhPSBOVUxMKSB7Ci0gICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RjYXNlLCAi
dHlwZV9wYXJhbSIsIHRlc3RfaW5mby50eXBlX3BhcmFtKCkpOwotICB9Ci0KLSAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwga1Rlc3RjYXNlLCAic3RhdHVzIiwKLSAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfaW5mby5zaG91bGRfcnVuKCkgPyAicnVuIiA6ICJub3RydW4iKTsKLSAgT3V0cHV0
WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RjYXNlLCAidGltZSIsCi0gICAgICAgICAgICAgICAg
ICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHMocmVzdWx0LmVsYXBzZWRfdGltZSgpKSk7
Ci0gIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgImNsYXNzbmFtZSIsIHRl
c3RfY2FzZV9uYW1lKTsKLSAgKnN0cmVhbSA8PCBUZXN0UHJvcGVydGllc0FzWG1sQXR0cmlidXRl
cyhyZXN1bHQpOwotCi0gIGludCBmYWlsdXJlcyA9IDA7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwg
cmVzdWx0LnRvdGFsX3BhcnRfY291bnQoKTsgKytpKSB7Ci0gICAgY29uc3QgVGVzdFBhcnRSZXN1
bHQmIHBhcnQgPSByZXN1bHQuR2V0VGVzdFBhcnRSZXN1bHQoaSk7Ci0gICAgaWYgKHBhcnQuZmFp
bGVkKCkpIHsKLSAgICAgIGlmICgrK2ZhaWx1cmVzID09IDEpIHsKLSAgICAgICAgKnN0cmVhbSA8
PCAiPlxuIjsKLSAgICAgIH0KLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGxvY2F0aW9uID0KLSAg
ICAgICAgICBpbnRlcm5hbDo6Rm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbihw
YXJ0LmZpbGVfbmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIoKSk7Ci0gICAgICBjb25zdCBzdGQ6
OnN0cmluZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5zdW1tYXJ5KCk7Ci0gICAg
ICAqc3RyZWFtIDw8ICIgICAgICA8ZmFpbHVyZSBtZXNzYWdlPVwiIgotICAgICAgICAgICAgICA8
PCBFc2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigpKQotICAgICAgICAgICAgICA8PCAi
XCIgdHlwZT1cIlwiPiI7Ci0gICAgICBjb25zdCBzdGQ6OnN0cmluZyBkZXRhaWwgPSBsb2NhdGlv
biArICJcbiIgKyBwYXJ0Lm1lc3NhZ2UoKTsKLSAgICAgIE91dHB1dFhtbENEYXRhU2VjdGlvbihz
dHJlYW0sIFJlbW92ZUludmFsaWRYbWxDaGFyYWN0ZXJzKGRldGFpbCkuY19zdHIoKSk7Ci0gICAg
ICAqc3RyZWFtIDw8ICI8L2ZhaWx1cmU+XG4iOwotICAgIH0KLSAgfQotCi0gIGlmIChmYWlsdXJl
cyA9PSAwKQotICAgICpzdHJlYW0gPDwgIiAvPlxuIjsKLSAgZWxzZQotICAgICpzdHJlYW0gPDwg
IiAgICA8L3Rlc3RjYXNlPlxuIjsKLX0KLQotLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlv
biBvZiBhIFRlc3RDYXNlIG9iamVjdAotdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OlBy
aW50WG1sVGVzdENhc2Uoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSB7
Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGUgPSAidGVzdHN1aXRlIjsKLSAgKnN0cmVh
bSA8PCAiICA8IiA8PCBrVGVzdHN1aXRlOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBr
VGVzdHN1aXRlLCAibmFtZSIsIHRlc3RfY2FzZS5uYW1lKCkpOwotICBPdXRwdXRYbWxBdHRyaWJ1
dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAidGVzdHMiLAotICAgICAgICAgICAgICAgICAgICAgU3Ry
ZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSkpOwotICBP
dXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZmFpbHVyZXMiLAotICAgICAg
ICAgICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5mYWlsZWRfdGVzdF9j
b3VudCgpKSk7Ci0gIE91dHB1dFhtbEF0dHJpYnV0ZSgKLSAgICAgIHN0cmVhbSwga1Rlc3RzdWl0
ZSwgImRpc2FibGVkIiwKLSAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVwb3J0
YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkpKTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVh
bSwga1Rlc3RzdWl0ZSwgImVycm9ycyIsICIwIik7Ci0gIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJl
YW0sIGtUZXN0c3VpdGUsICJ0aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJ
bk1pbGxpc0FzU2Vjb25kcyh0ZXN0X2Nhc2UuZWxhcHNlZF90aW1lKCkpKTsKLSAgKnN0cmVhbSA8
PCBUZXN0UHJvcGVydGllc0FzWG1sQXR0cmlidXRlcyh0ZXN0X2Nhc2UuYWRfaG9jX3Rlc3RfcmVz
dWx0KCkpCi0gICAgICAgICAgPDwgIj5cbiI7Ci0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0
X2Nhc2UudG90YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKLSAgICBpZiAodGVzdF9jYXNlLkdldFRl
c3RJbmZvKGkpLT5pc19yZXBvcnRhYmxlKCkpCi0gICAgICBPdXRwdXRYbWxUZXN0SW5mbyhzdHJl
YW0sIHRlc3RfY2FzZS5uYW1lKCksICp0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaSkpOwotICB9Ci0g
ICpzdHJlYW0gPDwgIiAgPC8iIDw8IGtUZXN0c3VpdGUgPDwgIj5cbiI7Ci19Ci0KLS8vIFByaW50
cyBhbiBYTUwgc3VtbWFyeSBvZiB1bml0X3Rlc3QgdG8gb3V0cHV0IHN0cmVhbSBvdXQuCi12b2lk
IFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0q
IHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3Rz
dWl0ZXMgPSAidGVzdHN1aXRlcyI7Ci0KLSAgKnN0cmVhbSA8PCAiPD94bWwgdmVyc2lvbj1cIjEu
MFwiIGVuY29kaW5nPVwiVVRGLThcIj8+XG4iOwotICAqc3RyZWFtIDw8ICI8IiA8PCBrVGVzdHN1
aXRlczsKLQotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgInRlc3Rz
IiwKLSAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh1bml0X3Rlc3QucmVw
b3J0YWJsZV90ZXN0X2NvdW50KCkpKTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rl
c3RzdWl0ZXMsICJmYWlsdXJlcyIsCi0gICAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9T
dHJpbmcodW5pdF90ZXN0LmZhaWxlZF90ZXN0X2NvdW50KCkpKTsKLSAgT3V0cHV0WG1sQXR0cmli
dXRlKAotICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlcywgImRpc2FibGVkIiwKLSAgICAgIFN0cmVh
bWFibGVUb1N0cmluZyh1bml0X3Rlc3QucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkp
KTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJlcnJvcnMiLCAi
MCIpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoCi0gICAgICBzdHJlYW0sIGtUZXN0c3VpdGVzLCAi
dGltZXN0YW1wIiwKLSAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKHVuaXRf
dGVzdC5zdGFydF90aW1lc3RhbXAoKSkpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBr
VGVzdHN1aXRlcywgInRpbWUiLAotICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWls
bGlzQXNTZWNvbmRzKHVuaXRfdGVzdC5lbGFwc2VkX3RpbWUoKSkpOwotCi0gIGlmIChHVEVTVF9G
TEFHKHNodWZmbGUpKSB7Ci0gICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0
ZXMsICJyYW5kb21fc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0
cmluZyh1bml0X3Rlc3QucmFuZG9tX3NlZWQoKSkpOwotICB9Ci0KLSAgKnN0cmVhbSA8PCBUZXN0
UHJvcGVydGllc0FzWG1sQXR0cmlidXRlcyh1bml0X3Rlc3QuYWRfaG9jX3Rlc3RfcmVzdWx0KCkp
OwotCi0gIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAibmFtZSIsICJB
bGxUZXN0cyIpOwotICAqc3RyZWFtIDw8ICI+XG4iOwotCi0gIGZvciAoaW50IGkgPSAwOyBpIDwg
dW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICBpZiAodW5pdF90
ZXN0LkdldFRlc3RDYXNlKGkpLT5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSA+IDApCi0gICAgICBQ
cmludFhtbFRlc3RDYXNlKHN0cmVhbSwgKnVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKSk7Ci0gIH0K
LSAgKnN0cmVhbSA8PCAiPC8iIDw8IGtUZXN0c3VpdGVzIDw8ICI+XG4iOwotfQotCi0vLyBQcm9k
dWNlcyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHRlc3QgcHJvcGVydGllcyBpbiBhIHJlc3Vs
dCBhcyBzcGFjZQotLy8gZGVsaW1pdGVkIFhNTCBhdHRyaWJ1dGVzIGJhc2VkIG9uIHRoZSBwcm9w
ZXJ0eSBrZXk9InZhbHVlIiBwYWlycy4KLXN0ZDo6c3RyaW5nIFhtbFVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6VGVzdFByb3BlcnRpZXNBc1htbEF0dHJpYnV0ZXMoCi0gICAgY29uc3QgVGVzdFJlc3Vs
dCYgcmVzdWx0KSB7Ci0gIE1lc3NhZ2UgYXR0cmlidXRlczsKLSAgZm9yIChpbnQgaSA9IDA7IGkg
PCByZXN1bHQudGVzdF9wcm9wZXJ0eV9jb3VudCgpOyArK2kpIHsKLSAgICBjb25zdCBUZXN0UHJv
cGVydHkmIHByb3BlcnR5ID0gcmVzdWx0LkdldFRlc3RQcm9wZXJ0eShpKTsKLSAgICBhdHRyaWJ1
dGVzIDw8ICIgIiA8PCBwcm9wZXJ0eS5rZXkoKSA8PCAiPSIKLSAgICAgICAgPDwgIlwiIiA8PCBF
c2NhcGVYbWxBdHRyaWJ1dGUocHJvcGVydHkudmFsdWUoKSkgPDwgIlwiIjsKLSAgfQotICByZXR1
cm4gYXR0cmlidXRlcy5HZXRTdHJpbmcoKTsKLX0KLQotLy8gRW5kIFhtbFVuaXRUZXN0UmVzdWx0
UHJpbnRlcgotCi0jaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotCi0vLyBDaGVja3MgaWYg
c3RyIGNvbnRhaW5zICc9JywgJyYnLCAnJScgb3IgJ1xuJyBjaGFyYWN0ZXJzLiBJZiB5ZXMsCi0v
LyByZXBsYWNlcyB0aGVtIGJ5ICIleHgiIHdoZXJlIHh4IGlzIHRoZWlyIGhleGFkZWNpbWFsIHZh
bHVlLiBGb3IKLS8vIGV4YW1wbGUsIHJlcGxhY2VzICI9IiB3aXRoICIlM0QiLiAgVGhpcyBhbGdv
cml0aG0gaXMgTyhzdHJsZW4oc3RyKSkKLS8vIGluIGJvdGggdGltZSBhbmQgc3BhY2UgLS0gaW1w
b3J0YW50IGFzIHRoZSBpbnB1dCBzdHIgbWF5IGNvbnRhaW4gYW4KLS8vIGFyYml0cmFyaWx5IGxv
bmcgdGVzdCBmYWlsdXJlIG1lc3NhZ2UgYW5kIHN0YWNrIHRyYWNlLgotc3RkOjpzdHJpbmcgU3Ry
ZWFtaW5nTGlzdGVuZXI6OlVybEVuY29kZShjb25zdCBjaGFyKiBzdHIpIHsKLSAgc3RkOjpzdHJp
bmcgcmVzdWx0OwotICByZXN1bHQucmVzZXJ2ZShzdHJsZW4oc3RyKSArIDEpOwotICBmb3IgKGNo
YXIgY2ggPSAqc3RyOyBjaCAhPSAnXDAnOyBjaCA9ICorK3N0cikgewotICAgIHN3aXRjaCAoY2gp
IHsKLSAgICAgIGNhc2UgJyUnOgotICAgICAgY2FzZSAnPSc6Ci0gICAgICBjYXNlICcmJzoKLSAg
ICAgIGNhc2UgJ1xuJzoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiJSIgKyBTdHJpbmc6OkZvcm1h
dEJ5dGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgcmVzdWx0LnB1c2hfYmFjayhjaCk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KLSAgfQotICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIFN0cmVhbWluZ0xp
c3RlbmVyOjpTb2NrZXRXcml0ZXI6Ok1ha2VDb25uZWN0aW9uKCkgewotICBHVEVTVF9DSEVDS18o
c29ja2ZkXyA9PSAtMSkKLSAgICAgIDw8ICJNYWtlQ29ubmVjdGlvbigpIGNhbid0IGJlIGNhbGxl
ZCB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSBjb25uZWN0aW9uLiI7Ci0KLSAgYWRkcmluZm8gaGlu
dHM7Ci0gIG1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOwotICBoaW50cy5haV9mYW1p
bHkgPSBBRl9VTlNQRUM7ICAgIC8vIFRvIGFsbG93IGJvdGggSVB2NCBhbmQgSVB2NiBhZGRyZXNz
ZXMuCi0gIGhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0gIGFkZHJpbmZvKiBzZXJ2
aW5mbyA9IE5VTEw7Ci0KLSAgLy8gVXNlIHRoZSBnZXRhZGRyaW5mbygpIHRvIGdldCBhIGxpbmtl
ZCBsaXN0IG9mIElQIGFkZHJlc3NlcyBmb3IKLSAgLy8gdGhlIGdpdmVuIGhvc3QgbmFtZS4KLSAg
Y29uc3QgaW50IGVycm9yX251bSA9IGdldGFkZHJpbmZvKAotICAgICAgaG9zdF9uYW1lXy5jX3N0
cigpLCBwb3J0X251bV8uY19zdHIoKSwgJmhpbnRzLCAmc2VydmluZm8pOwotICBpZiAoZXJyb3Jf
bnVtICE9IDApIHsKLSAgICBHVEVTVF9MT0dfKFdBUk5JTkcpIDw8ICJzdHJlYW1fcmVzdWx0X3Rv
OiBnZXRhZGRyaW5mbygpIGZhaWxlZDogIgotICAgICAgICAgICAgICAgICAgICAgICAgPDwgZ2Fp
X3N0cmVycm9yKGVycm9yX251bSk7Ci0gIH0KLQotICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBy
ZXN1bHRzIGFuZCBjb25uZWN0IHRvIHRoZSBmaXJzdCB3ZSBjYW4uCi0gIGZvciAoYWRkcmluZm8q
IGN1cl9hZGRyID0gc2VydmluZm87IHNvY2tmZF8gPT0gLTEgJiYgY3VyX2FkZHIgIT0gTlVMTDsK
LSAgICAgICBjdXJfYWRkciA9IGN1cl9hZGRyLT5haV9uZXh0KSB7Ci0gICAgc29ja2ZkXyA9IHNv
Y2tldCgKLSAgICAgICAgY3VyX2FkZHItPmFpX2ZhbWlseSwgY3VyX2FkZHItPmFpX3NvY2t0eXBl
LCBjdXJfYWRkci0+YWlfcHJvdG9jb2wpOwotICAgIGlmIChzb2NrZmRfICE9IC0xKSB7Ci0gICAg
ICAvLyBDb25uZWN0IHRoZSBjbGllbnQgc29ja2V0IHRvIHRoZSBzZXJ2ZXIgc29ja2V0LgotICAg
ICAgaWYgKGNvbm5lY3Qoc29ja2ZkXywgY3VyX2FkZHItPmFpX2FkZHIsIGN1cl9hZGRyLT5haV9h
ZGRybGVuKSA9PSAtMSkgewotICAgICAgICBjbG9zZShzb2NrZmRfKTsKLSAgICAgICAgc29ja2Zk
XyA9IC0xOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIGZyZWVhZGRyaW5mbyhzZXJ2aW5mbyk7
ICAvLyBhbGwgZG9uZSB3aXRoIHRoaXMgc3RydWN0dXJlCi0KLSAgaWYgKHNvY2tmZF8gPT0gLTEp
IHsKLSAgICBHVEVTVF9MT0dfKFdBUk5JTkcpIDw8ICJzdHJlYW1fcmVzdWx0X3RvOiBmYWlsZWQg
dG8gY29ubmVjdCB0byAiCi0gICAgICAgICAgICAgICAgICAgICAgICA8PCBob3N0X25hbWVfIDw8
ICI6IiA8PCBwb3J0X251bV87Ci0gIH0KLX0KLQotLy8gRW5kIG9mIGNsYXNzIFN0cmVhbWluZyBM
aXN0ZW5lcgotI2VuZGlmICAvLyBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfXwotCi0vLyBDbGFz
cyBTY29wZWRUcmFjZQotCi0vLyBQdXNoZXMgdGhlIGdpdmVuIHNvdXJjZSBmaWxlIGxvY2F0aW9u
IGFuZCBtZXNzYWdlIG9udG8gYSBwZXItdGhyZWFkCi0vLyB0cmFjZSBzdGFjayBtYWludGFpbmVk
IGJ5IEdvb2dsZSBUZXN0LgotU2NvcGVkVHJhY2U6OlNjb3BlZFRyYWNlKGNvbnN0IGNoYXIqIGZp
bGUsIGludCBsaW5lLCBjb25zdCBNZXNzYWdlJiBtZXNzYWdlKQotICAgIEdURVNUX0xPQ0tfRVhD
TFVERURfKCZVbml0VGVzdDo6bXV0ZXhfKSB7Ci0gIFRyYWNlSW5mbyB0cmFjZTsKLSAgdHJhY2Uu
ZmlsZSA9IGZpbGU7Ci0gIHRyYWNlLmxpbmUgPSBsaW5lOwotICB0cmFjZS5tZXNzYWdlID0gbWVz
c2FnZS5HZXRTdHJpbmcoKTsKLQotICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+UHVzaEdUZXN0
VHJhY2UodHJhY2UpOwotfQotCi0vLyBQb3BzIHRoZSBpbmZvIHB1c2hlZCBieSB0aGUgYyd0b3Iu
Ci1TY29wZWRUcmFjZTo6flNjb3BlZFRyYWNlKCkKLSAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXygm
VW5pdFRlc3Q6Om11dGV4XykgewotICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+UG9wR1Rlc3RU
cmFjZSgpOwotfQotCi0KLS8vIGNsYXNzIE9zU3RhY2tUcmFjZUdldHRlcgotCi1jb25zdCBjaGFy
KiBjb25zdCBPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2U6OmtFbGlkZWRGcmFtZXNNYXJrZXIg
PQotICAgICIuLi4gIiBHVEVTVF9OQU1FXyAiIGludGVybmFsIGZyYW1lcyAuLi4iOwotCi1zdGQ6
OnN0cmluZyBPc1N0YWNrVHJhY2VHZXR0ZXI6OkN1cnJlbnRTdGFja1RyYWNlKGludCAvKm1heF9k
ZXB0aCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgLypza2lwX2NvdW50Ki8pIHsKLSAgcmV0dXJuICIiOwotfQotCi12b2lkIE9zU3RhY2tU
cmFjZUdldHRlcjo6VXBvbkxlYXZpbmdHVGVzdCgpIHt9Ci0KLS8vIEEgaGVscGVyIGNsYXNzIHRo
YXQgY3JlYXRlcyB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBpbiBpdHMKLS8vIGNvbnN0cnVjdG9y
IGFuZCBkZWxldGVzIHRoZSBmaWxlIGluIGl0cyBkZXN0cnVjdG9yLgotY2xhc3MgU2NvcGVkUHJl
bWF0dXJlRXhpdEZpbGUgewotIHB1YmxpYzoKLSAgZXhwbGljaXQgU2NvcGVkUHJlbWF0dXJlRXhp
dEZpbGUoY29uc3QgY2hhciogcHJlbWF0dXJlX2V4aXRfZmlsZXBhdGgpCi0gICAgICA6IHByZW1h
dHVyZV9leGl0X2ZpbGVwYXRoXyhwcmVtYXR1cmVfZXhpdF9maWxlcGF0aCkgewotICAgIC8vIElm
IGEgcGF0aCB0byB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBpcyBzcGVjaWZpZWQuLi4KLSAgICBp
ZiAocHJlbWF0dXJlX2V4aXRfZmlsZXBhdGggIT0gTlVMTCAmJiAqcHJlbWF0dXJlX2V4aXRfZmls
ZXBhdGggIT0gJ1wwJykgewotICAgICAgLy8gY3JlYXRlIHRoZSBmaWxlIHdpdGggYSBzaW5nbGUg
IjAiIGNoYXJhY3RlciBpbiBpdC4gIEkvTwotICAgICAgLy8gZXJyb3JzIGFyZSBpZ25vcmVkIGFz
IHRoZXJlJ3Mgbm90aGluZyBiZXR0ZXIgd2UgY2FuIGRvIGFuZCB3ZQotICAgICAgLy8gZG9uJ3Qg
d2FudCB0byBmYWlsIHRoZSB0ZXN0IGJlY2F1c2Ugb2YgdGhpcy4KLSAgICAgIEZJTEUqIHBmaWxl
ID0gcG9zaXg6OkZPcGVuKHByZW1hdHVyZV9leGl0X2ZpbGVwYXRoLCAidyIpOwotICAgICAgZndy
aXRlKCIwIiwgMSwgMSwgcGZpbGUpOwotICAgICAgZmNsb3NlKHBmaWxlKTsKLSAgICB9Ci0gIH0K
LQotICB+U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUoKSB7Ci0gICAgaWYgKHByZW1hdHVyZV9leGl0
X2ZpbGVwYXRoXyAhPSBOVUxMICYmICpwcmVtYXR1cmVfZXhpdF9maWxlcGF0aF8gIT0gJ1wwJykg
ewotICAgICAgcmVtb3ZlKHByZW1hdHVyZV9leGl0X2ZpbGVwYXRoXyk7Ci0gICAgfQotICB9Ci0K
LSBwcml2YXRlOgotICBjb25zdCBjaGFyKiBjb25zdCBwcmVtYXR1cmVfZXhpdF9maWxlcGF0aF87
Ci0KLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhTY29wZWRQcmVtYXR1cmVFeGl0
RmlsZSk7Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLQotLy8gY2xhc3MgVGVzdEV2
ZW50TGlzdGVuZXJzCi0KLVRlc3RFdmVudExpc3RlbmVyczo6VGVzdEV2ZW50TGlzdGVuZXJzKCkK
LSAgICA6IHJlcGVhdGVyXyhuZXcgaW50ZXJuYWw6OlRlc3RFdmVudFJlcGVhdGVyKCkpLAotICAg
ICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8oTlVMTCksCi0gICAgICBkZWZhdWx0X3htbF9nZW5l
cmF0b3JfKE5VTEwpIHsKLX0KLQotVGVzdEV2ZW50TGlzdGVuZXJzOjp+VGVzdEV2ZW50TGlzdGVu
ZXJzKCkgeyBkZWxldGUgcmVwZWF0ZXJfOyB9Ci0KLS8vIFJldHVybnMgdGhlIHN0YW5kYXJkIGxp
c3RlbmVyIHJlc3BvbnNpYmxlIGZvciB0aGUgZGVmYXVsdCBjb25zb2xlCi0vLyBvdXRwdXQuICBD
YW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0ZW5lcnMgbGlzdCB0byBzaHV0IGRvd24gZGVmYXVs
dAotLy8gY29uc29sZSBvdXRwdXQuICBOb3RlIHRoYXQgcmVtb3ZpbmcgdGhpcyBvYmplY3QgZnJv
bSB0aGUgbGlzdGVuZXIgbGlzdAotLy8gd2l0aCBSZWxlYXNlIHRyYW5zZmVycyBpdHMgb3duZXJz
aGlwIHRvIHRoZSB1c2VyLgotdm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OkFwcGVuZChUZXN0RXZl
bnRMaXN0ZW5lciogbGlzdGVuZXIpIHsKLSAgcmVwZWF0ZXJfLT5BcHBlbmQobGlzdGVuZXIpOwot
fQotCi0vLyBSZW1vdmVzIHRoZSBnaXZlbiBldmVudCBsaXN0ZW5lciBmcm9tIHRoZSBsaXN0IGFu
ZCByZXR1cm5zIGl0LiAgSXQgdGhlbgotLy8gYmVjb21lcyB0aGUgY2FsbGVyJ3MgcmVzcG9uc2li
aWxpdHkgdG8gZGVsZXRlIHRoZSBsaXN0ZW5lci4gUmV0dXJucwotLy8gTlVMTCBpZiB0aGUgbGlz
dGVuZXIgaXMgbm90IGZvdW5kIGluIHRoZSBsaXN0LgotVGVzdEV2ZW50TGlzdGVuZXIqIFRlc3RF
dmVudExpc3RlbmVyczo6UmVsZWFzZShUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpIHsKLSAg
aWYgKGxpc3RlbmVyID09IGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfKQotICAgIGRlZmF1bHRfcmVz
dWx0X3ByaW50ZXJfID0gTlVMTDsKLSAgZWxzZSBpZiAobGlzdGVuZXIgPT0gZGVmYXVsdF94bWxf
Z2VuZXJhdG9yXykKLSAgICBkZWZhdWx0X3htbF9nZW5lcmF0b3JfID0gTlVMTDsKLSAgcmV0dXJu
IHJlcGVhdGVyXy0+UmVsZWFzZShsaXN0ZW5lcik7Ci19Ci0KLS8vIFJldHVybnMgcmVwZWF0ZXIg
dGhhdCBicm9hZGNhc3RzIHRoZSBUZXN0RXZlbnRMaXN0ZW5lciBldmVudHMgdG8gYWxsCi0vLyBz
dWJzY3JpYmVycy4KLVRlc3RFdmVudExpc3RlbmVyKiBUZXN0RXZlbnRMaXN0ZW5lcnM6OnJlcGVh
dGVyKCkgeyByZXR1cm4gcmVwZWF0ZXJfOyB9Ci0KLS8vIFNldHMgdGhlIGRlZmF1bHRfcmVzdWx0
X3ByaW50ZXIgYXR0cmlidXRlIHRvIHRoZSBwcm92aWRlZCBsaXN0ZW5lci4KLS8vIFRoZSBsaXN0
ZW5lciBpcyBhbHNvIGFkZGVkIHRvIHRoZSBsaXN0ZW5lciBsaXN0IGFuZCBwcmV2aW91cwotLy8g
ZGVmYXVsdF9yZXN1bHRfcHJpbnRlciBpcyByZW1vdmVkIGZyb20gaXQgYW5kIGRlbGV0ZWQuIFRo
ZSBsaXN0ZW5lciBjYW4KLS8vIGFsc28gYmUgTlVMTCBpbiB3aGljaCBjYXNlIGl0IHdpbGwgbm90
IGJlIGFkZGVkIHRvIHRoZSBsaXN0LiBEb2VzCi0vLyBub3RoaW5nIGlmIHRoZSBwcmV2aW91cyBh
bmQgdGhlIGN1cnJlbnQgbGlzdGVuZXIgb2JqZWN0cyBhcmUgdGhlIHNhbWUuCi12b2lkIFRlc3RF
dmVudExpc3RlbmVyczo6U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIoVGVzdEV2ZW50TGlzdGVuZXIq
IGxpc3RlbmVyKSB7Ci0gIGlmIChkZWZhdWx0X3Jlc3VsdF9wcmludGVyXyAhPSBsaXN0ZW5lcikg
ewotICAgIC8vIEl0IGlzIGFuIGVycm9yIHRvIHBhc3MgdGhpcyBtZXRob2QgYSBsaXN0ZW5lciB0
aGF0IGlzIGFscmVhZHkgaW4gdGhlCi0gICAgLy8gbGlzdC4KLSAgICBkZWxldGUgUmVsZWFzZShk
ZWZhdWx0X3Jlc3VsdF9wcmludGVyXyk7Ci0gICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8gPSBs
aXN0ZW5lcjsKLSAgICBpZiAobGlzdGVuZXIgIT0gTlVMTCkKLSAgICAgIEFwcGVuZChsaXN0ZW5l
cik7Ci0gIH0KLX0KLQotLy8gU2V0cyB0aGUgZGVmYXVsdF94bWxfZ2VuZXJhdG9yIGF0dHJpYnV0
ZSB0byB0aGUgcHJvdmlkZWQgbGlzdGVuZXIuICBUaGUKLS8vIGxpc3RlbmVyIGlzIGFsc28gYWRk
ZWQgdG8gdGhlIGxpc3RlbmVyIGxpc3QgYW5kIHByZXZpb3VzCi0vLyBkZWZhdWx0X3htbF9nZW5l
cmF0b3IgaXMgcmVtb3ZlZCBmcm9tIGl0IGFuZCBkZWxldGVkLiBUaGUgbGlzdGVuZXIgY2FuCi0v
LyBhbHNvIGJlIE5VTEwgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUg
bGlzdC4gRG9lcwotLy8gbm90aGluZyBpZiB0aGUgcHJldmlvdXMgYW5kIHRoZSBjdXJyZW50IGxp
c3RlbmVyIG9iamVjdHMgYXJlIHRoZSBzYW1lLgotdm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OlNl
dERlZmF1bHRYbWxHZW5lcmF0b3IoVGVzdEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKSB7Ci0gIGlm
IChkZWZhdWx0X3htbF9nZW5lcmF0b3JfICE9IGxpc3RlbmVyKSB7Ci0gICAgLy8gSXQgaXMgYW4g
ZXJyb3IgdG8gcGFzcyB0aGlzIG1ldGhvZCBhIGxpc3RlbmVyIHRoYXQgaXMgYWxyZWFkeSBpbiB0
aGUKLSAgICAvLyBsaXN0LgotICAgIGRlbGV0ZSBSZWxlYXNlKGRlZmF1bHRfeG1sX2dlbmVyYXRv
cl8pOwotICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8gPSBsaXN0ZW5lcjsKLSAgICBpZiAobGlz
dGVuZXIgIT0gTlVMTCkKLSAgICAgIEFwcGVuZChsaXN0ZW5lcik7Ci0gIH0KLX0KLQotLy8gQ29u
dHJvbHMgd2hldGhlciBldmVudHMgd2lsbCBiZSBmb3J3YXJkZWQgYnkgdGhlIHJlcGVhdGVyIHRv
IHRoZQotLy8gbGlzdGVuZXJzIGluIHRoZSBsaXN0LgotYm9vbCBUZXN0RXZlbnRMaXN0ZW5lcnM6
OkV2ZW50Rm9yd2FyZGluZ0VuYWJsZWQoKSBjb25zdCB7Ci0gIHJldHVybiByZXBlYXRlcl8tPmZv
cndhcmRpbmdfZW5hYmxlZCgpOwotfQotCi12b2lkIFRlc3RFdmVudExpc3RlbmVyczo6U3VwcHJl
c3NFdmVudEZvcndhcmRpbmcoKSB7Ci0gIHJlcGVhdGVyXy0+c2V0X2ZvcndhcmRpbmdfZW5hYmxl
ZChmYWxzZSk7Ci19Ci0KLS8vIGNsYXNzIFVuaXRUZXN0Ci0KLS8vIEdldHMgdGhlIHNpbmdsZXRv
biBVbml0VGVzdCBvYmplY3QuICBUaGUgZmlyc3QgdGltZSB0aGlzIG1ldGhvZCBpcwotLy8gY2Fs
bGVkLCBhIFVuaXRUZXN0IG9iamVjdCBpcyBjb25zdHJ1Y3RlZCBhbmQgcmV0dXJuZWQuICBDb25z
ZWN1dGl2ZQotLy8gY2FsbHMgd2lsbCByZXR1cm4gdGhlIHNhbWUgb2JqZWN0LgotLy8KLS8vIFdl
IGRvbid0IHByb3RlY3QgdGhpcyB1bmRlciBtdXRleF8gYXMgYSB1c2VyIGlzIG5vdCBzdXBwb3Nl
ZCB0bwotLy8gY2FsbCB0aGlzIGJlZm9yZSBtYWluKCkgc3RhcnRzLCBmcm9tIHdoaWNoIHBvaW50
IG9uIHRoZSByZXR1cm4KLS8vIHZhbHVlIHdpbGwgbmV2ZXIgY2hhbmdlLgotVW5pdFRlc3QqIFVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpIHsKLSAgLy8gV2hlbiBjb21waWxlZCB3aXRoIE1TVkMgNy4x
IGluIG9wdGltaXplZCBtb2RlLCBkZXN0cm95aW5nIHRoZQotICAvLyBVbml0VGVzdCBvYmplY3Qg
dXBvbiBleGl0aW5nIHRoZSBwcm9ncmFtIG1lc3NlcyB1cCB0aGUgZXhpdCBjb2RlLAotICAvLyBj
YXVzaW5nIHN1Y2Nlc3NmdWwgdGVzdHMgdG8gYXBwZWFyIGZhaWxlZC4gIFdlIGhhdmUgdG8gdXNl
IGEKLSAgLy8gZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIGluIHRoaXMgY2FzZSB0byBieXBhc3Mg
dGhlIGNvbXBpbGVyIGJ1Zy4KLSAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBtYWtlcyB0aGUgY29t
cGlsZXIgaGFwcHksIGF0IHRoZSBjb3N0IG9mCi0gIC8vIGxlYWtpbmcgdGhlIFVuaXRUZXN0IG9i
amVjdC4KLQotICAvLyBDb2RlR2VhciBDKytCdWlsZGVyIGluc2lzdHMgb24gYSBwdWJsaWMgZGVz
dHJ1Y3RvciBmb3IgdGhlCi0gIC8vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uICBVc2UgdGhpcyBp
bXBsZW1lbnRhdGlvbiB0byBrZWVwIGdvb2QgT08KLSAgLy8gZGVzaWduIHdpdGggcHJpdmF0ZSBk
ZXN0cnVjdG9yLgotCi0jaWYgKF9NU0NfVkVSID09IDEzMTAgJiYgIWRlZmluZWQoX0RFQlVHKSkg
fHwgZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIHN0YXRpYyBVbml0VGVzdCogY29uc3QgaW5zdGFu
Y2UgPSBuZXcgVW5pdFRlc3Q7Ci0gIHJldHVybiBpbnN0YW5jZTsKLSNlbHNlCi0gIHN0YXRpYyBV
bml0VGVzdCBpbnN0YW5jZTsKLSAgcmV0dXJuICZpbnN0YW5jZTsKLSNlbmRpZiAgLy8gKF9NU0Nf
VkVSID09IDEzMTAgJiYgIWRlZmluZWQoX0RFQlVHKSkgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18p
Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3QgY2FzZXMuCi1pbnQg
VW5pdFRlc3Q6OnN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4g
aW1wbCgpLT5zdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpOwotfQotCi0vLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZmFpbGVkIHRlc3QgY2FzZXMuCi1pbnQgVW5pdFRlc3Q6OmZhaWxlZF90ZXN0X2Nh
c2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCktPmZhaWxlZF90ZXN0X2Nhc2VfY291
bnQoKTsKLX0KLQotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotaW50IFVu
aXRUZXN0Ojp0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCkt
PnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOwotfQotCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxs
IHRlc3QgY2FzZXMgdGhhdCBjb250YWluIGF0IGxlYXN0IG9uZSB0ZXN0Ci0vLyB0aGF0IHNob3Vs
ZCBydW4uCi1pbnQgVW5pdFRlc3Q6OnRlc3RfY2FzZV90b19ydW5fY291bnQoKSBjb25zdCB7Ci0g
IHJldHVybiBpbXBsKCktPnRlc3RfY2FzZV90b19ydW5fY291bnQoKTsKLX0KLQotLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdHMuCi1pbnQgVW5pdFRlc3Q6OnN1Y2Nlc3NmdWxf
dGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X2Nv
dW50KCk7Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdHMuCi1pbnQgVW5p
dFRlc3Q6OmZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3QgeyByZXR1cm4gaW1wbCgpLT5mYWlsZWRf
dGVzdF9jb3VudCgpOyB9Ci0KLS8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB0
aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIFhNTCByZXBvcnQuCi1pbnQgVW5pdFRlc3Q6OnJl
cG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIGltcGwoKS0+
cmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCk7Ci19Ci0KLS8vIEdldHMgdGhlIG51bWJl
ciBvZiBkaXNhYmxlZCB0ZXN0cy4KLWludCBVbml0VGVzdDo6ZGlzYWJsZWRfdGVzdF9jb3VudCgp
IGNvbnN0IHsKLSAgcmV0dXJuIGltcGwoKS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpOwotfQotCi0v
LyBHZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdG8gYmUgcHJpbnRlZCBpbiB0aGUgWE1MIHJlcG9y
dC4KLWludCBVbml0VGVzdDo6cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgY29uc3QgewotICByZXR1
cm4gaW1wbCgpLT5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKTsKLX0KLQotLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIGFsbCB0ZXN0cy4KLWludCBVbml0VGVzdDo6dG90YWxfdGVzdF9jb3VudCgpIGNvbnN0
IHsgcmV0dXJuIGltcGwoKS0+dG90YWxfdGVzdF9jb3VudCgpOyB9Ci0KLS8vIEdldHMgdGhlIG51
bWJlciBvZiB0ZXN0cyB0aGF0IHNob3VsZCBydW4uCi1pbnQgVW5pdFRlc3Q6OnRlc3RfdG9fcnVu
X2NvdW50KCkgY29uc3QgeyByZXR1cm4gaW1wbCgpLT50ZXN0X3RvX3J1bl9jb3VudCgpOyB9Ci0K
LS8vIEdldHMgdGhlIHRpbWUgb2YgdGhlIHRlc3QgcHJvZ3JhbSBzdGFydCwgaW4gbXMgZnJvbSB0
aGUgc3RhcnQgb2YgdGhlCi0vLyBVTklYIGVwb2NoLgotaW50ZXJuYWw6OlRpbWVJbk1pbGxpcyBV
bml0VGVzdDo6c3RhcnRfdGltZXN0YW1wKCkgY29uc3QgewotICAgIHJldHVybiBpbXBsKCktPnN0
YXJ0X3RpbWVzdGFtcCgpOwotfQotCi0vLyBHZXRzIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxp
c2Vjb25kcy4KLWludGVybmFsOjpUaW1lSW5NaWxsaXMgVW5pdFRlc3Q6OmVsYXBzZWRfdGltZSgp
IGNvbnN0IHsKLSAgcmV0dXJuIGltcGwoKS0+ZWxhcHNlZF90aW1lKCk7Ci19Ci0KLS8vIFJldHVy
bnMgdHJ1ZSBpZmYgdGhlIHVuaXQgdGVzdCBwYXNzZWQgKGkuZS4gYWxsIHRlc3QgY2FzZXMgcGFz
c2VkKS4KLWJvb2wgVW5pdFRlc3Q6OlBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuIGltcGwoKS0+UGFz
c2VkKCk7IH0KLQotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdW5pdCB0ZXN0IGZhaWxlZCAoaS5l
LiBzb21lIHRlc3QgY2FzZSBmYWlsZWQKLS8vIG9yIHNvbWV0aGluZyBvdXRzaWRlIG9mIGFsbCB0
ZXN0cyBmYWlsZWQpLgotYm9vbCBVbml0VGVzdDo6RmFpbGVkKCkgY29uc3QgeyByZXR1cm4gaW1w
bCgpLT5GYWlsZWQoKTsgfQotCi0vLyBHZXRzIHRoZSBpLXRoIHRlc3QgY2FzZSBhbW9uZyBhbGwg
dGhlIHRlc3QgY2FzZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwotLy8gdG90YWxfdGVzdF9jYXNl
X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi1j
b25zdCBUZXN0Q2FzZSogVW5pdFRlc3Q6OkdldFRlc3RDYXNlKGludCBpKSBjb25zdCB7Ci0gIHJl
dHVybiBpbXBsKCktPkdldFRlc3RDYXNlKGkpOwotfQotCi0vLyBSZXR1cm5zIHRoZSBUZXN0UmVz
dWx0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb24gdGVzdCBmYWlsdXJlcyBhbmQKLS8vIHByb3Bl
cnRpZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVhbCB0ZXN0IGNhc2VzLgotY29uc3QgVGVz
dFJlc3VsdCYgVW5pdFRlc3Q6OmFkX2hvY190ZXN0X3Jlc3VsdCgpIGNvbnN0IHsKLSAgcmV0dXJu
ICppbXBsKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpOwotfQotCi0vLyBHZXRzIHRoZSBpLXRoIHRl
c3QgY2FzZSBhbW9uZyBhbGwgdGhlIHRlc3QgY2FzZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwot
Ly8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdl
LCByZXR1cm5zIE5VTEwuCi1UZXN0Q2FzZSogVW5pdFRlc3Q6OkdldE11dGFibGVUZXN0Q2FzZShp
bnQgaSkgewotICByZXR1cm4gaW1wbCgpLT5HZXRNdXRhYmxlVGVzdENhc2UoaSk7Ci19Ci0KLS8v
IFJldHVybnMgdGhlIGxpc3Qgb2YgZXZlbnQgbGlzdGVuZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8g
dHJhY2sgZXZlbnRzCi0vLyBpbnNpZGUgR29vZ2xlIFRlc3QuCi1UZXN0RXZlbnRMaXN0ZW5lcnMm
IFVuaXRUZXN0OjpsaXN0ZW5lcnMoKSB7Ci0gIHJldHVybiAqaW1wbCgpLT5saXN0ZW5lcnMoKTsK
LX0KLQotLy8gUmVnaXN0ZXJzIGFuZCByZXR1cm5zIGEgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnQu
ICBXaGVuIGEgdGVzdAotLy8gcHJvZ3JhbSBpcyBydW4sIGFsbCBnbG9iYWwgdGVzdCBlbnZpcm9u
bWVudHMgd2lsbCBiZSBzZXQtdXAgaW4gdGhlCi0vLyBvcmRlciB0aGV5IHdlcmUgcmVnaXN0ZXJl
ZC4gIEFmdGVyIGFsbCB0ZXN0cyBpbiB0aGUgcHJvZ3JhbSBoYXZlCi0vLyBmaW5pc2hlZCwgYWxs
IGdsb2JhbCB0ZXN0IGVudmlyb25tZW50cyB3aWxsIGJlIHRvcm4tZG93biBpbiB0aGUKLS8vICpy
ZXZlcnNlKiBvcmRlciB0aGV5IHdlcmUgcmVnaXN0ZXJlZC4KLS8vCi0vLyBUaGUgVW5pdFRlc3Qg
b2JqZWN0IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgZ2l2ZW4gZW52aXJvbm1lbnQuCi0vLwotLy8g
V2UgZG9uJ3QgcHJvdGVjdCB0aGlzIHVuZGVyIG11dGV4XywgYXMgd2Ugb25seSBzdXBwb3J0IGNh
bGxpbmcgaXQKLS8vIGZyb20gdGhlIG1haW4gdGhyZWFkLgotRW52aXJvbm1lbnQqIFVuaXRUZXN0
OjpBZGRFbnZpcm9ubWVudChFbnZpcm9ubWVudCogZW52KSB7Ci0gIGlmIChlbnYgPT0gTlVMTCkg
ewotICAgIHJldHVybiBOVUxMOwotICB9Ci0KLSAgaW1wbF8tPmVudmlyb25tZW50cygpLnB1c2hf
YmFjayhlbnYpOwotICByZXR1cm4gZW52OwotfQotCi0vLyBBZGRzIGEgVGVzdFBhcnRSZXN1bHQg
dG8gdGhlIGN1cnJlbnQgVGVzdFJlc3VsdCBvYmplY3QuICBBbGwgR29vZ2xlIFRlc3QKLS8vIGFz
c2VydGlvbiBtYWNyb3MgKGUuZy4gQVNTRVJUX1RSVUUsIEVYUEVDVF9FUSwgZXRjKSBldmVudHVh
bGx5IGNhbGwKLS8vIHRoaXMgdG8gcmVwb3J0IHRoZWlyIHJlc3VsdHMuICBUaGUgdXNlciBjb2Rl
IHNob3VsZCB1c2UgdGhlCi0vLyBhc3NlcnRpb24gbWFjcm9zIGluc3RlYWQgb2YgY2FsbGluZyB0
aGlzIGRpcmVjdGx5Lgotdm9pZCBVbml0VGVzdDo6QWRkVGVzdFBhcnRSZXN1bHQoCi0gICAgVGVz
dFBhcnRSZXN1bHQ6OlR5cGUgcmVzdWx0X3R5cGUsCi0gICAgY29uc3QgY2hhciogZmlsZV9uYW1l
LAotICAgIGludCBsaW5lX251bWJlciwKLSAgICBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwK
LSAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3Nfc3RhY2tfdHJhY2UpIEdURVNUX0xPQ0tfRVhDTFVE
RURfKG11dGV4XykgewotICBNZXNzYWdlIG1zZzsKLSAgbXNnIDw8IG1lc3NhZ2U7Ci0KLSAgaW50
ZXJuYWw6Ok11dGV4TG9jayBsb2NrKCZtdXRleF8pOwotICBpZiAoaW1wbF8tPmd0ZXN0X3RyYWNl
X3N0YWNrKCkuc2l6ZSgpID4gMCkgewotICAgIG1zZyA8PCAiXG4iIDw8IEdURVNUX05BTUVfIDw8
ICIgdHJhY2U6IjsKLQotICAgIGZvciAoaW50IGkgPSBzdGF0aWNfY2FzdDxpbnQ+KGltcGxfLT5n
dGVzdF90cmFjZV9zdGFjaygpLnNpemUoKSk7Ci0gICAgICAgICBpID4gMDsgLS1pKSB7Ci0gICAg
ICBjb25zdCBpbnRlcm5hbDo6VHJhY2VJbmZvJiB0cmFjZSA9IGltcGxfLT5ndGVzdF90cmFjZV9z
dGFjaygpW2kgLSAxXTsKLSAgICAgIG1zZyA8PCAiXG4iIDw8IGludGVybmFsOjpGb3JtYXRGaWxl
TG9jYXRpb24odHJhY2UuZmlsZSwgdHJhY2UubGluZSkKLSAgICAgICAgICA8PCAiICIgPDwgdHJh
Y2UubWVzc2FnZTsKLSAgICB9Ci0gIH0KLQotICBpZiAob3Nfc3RhY2tfdHJhY2UuY19zdHIoKSAh
PSBOVUxMICYmICFvc19zdGFja190cmFjZS5lbXB0eSgpKSB7Ci0gICAgbXNnIDw8IGludGVybmFs
OjprU3RhY2tUcmFjZU1hcmtlciA8PCBvc19zdGFja190cmFjZTsKLSAgfQotCi0gIGNvbnN0IFRl
c3RQYXJ0UmVzdWx0IHJlc3VsdCA9Ci0gICAgVGVzdFBhcnRSZXN1bHQocmVzdWx0X3R5cGUsIGZp
bGVfbmFtZSwgbGluZV9udW1iZXIsCi0gICAgICAgICAgICAgICAgICAgbXNnLkdldFN0cmluZygp
LmNfc3RyKCkpOwotICBpbXBsXy0+R2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRU
aHJlYWQoKS0+Ci0gICAgICBSZXBvcnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOwotCi0gIGlmIChy
ZXN1bHRfdHlwZSAhPSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MpIHsKLSAgICAvLyBndGVzdF9i
cmVha19vbl9mYWlsdXJlIHRha2VzIHByZWNlZGVuY2Ugb3ZlcgotICAgIC8vIGd0ZXN0X3Rocm93
X29uX2ZhaWx1cmUuICBUaGlzIGFsbG93cyBhIHVzZXIgdG8gc2V0IHRoZSBsYXR0ZXIKLSAgICAv
LyBpbiB0aGUgY29kZSAocGVyaGFwcyBpbiBvcmRlciB0byB1c2UgR29vZ2xlIFRlc3QgYXNzZXJ0
aW9ucwotICAgIC8vIHdpdGggYW5vdGhlciB0ZXN0aW5nIGZyYW1ld29yaykgYW5kIHNwZWNpZnkg
dGhlIGZvcm1lciBvbiB0aGUKLSAgICAvLyBjb21tYW5kIGxpbmUgZm9yIGRlYnVnZ2luZy4KLSAg
ICBpZiAoR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSkgewotI2lmIEdURVNUX09TX1dJTkRP
V1MgJiYgIUdURVNUX09TX1dJTkRPV1NfUEhPTkUgJiYgIUdURVNUX09TX1dJTkRPV1NfUlQKLSAg
ICAgIC8vIFVzaW5nIERlYnVnQnJlYWsgb24gV2luZG93cyBhbGxvd3MgZ3Rlc3QgdG8gc3RpbGwg
YnJlYWsgaW50byBhIGRlYnVnZ2VyCi0gICAgICAvLyB3aGVuIGEgZmFpbHVyZSBoYXBwZW5zIGFu
ZCBib3RoIHRoZSAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUgYW5kCi0gICAgICAvLyB0aGUgLS1n
dGVzdF9jYXRjaF9leGNlcHRpb25zIGZsYWdzIGFyZSBzcGVjaWZpZWQuCi0gICAgICBEZWJ1Z0Jy
ZWFrKCk7Ci0jZWxzZQotICAgICAgLy8gRGVyZWZlcmVuY2UgTlVMTCB0aHJvdWdoIGEgdm9sYXRp
bGUgcG9pbnRlciB0byBwcmV2ZW50IHRoZSBjb21waWxlcgotICAgICAgLy8gZnJvbSByZW1vdmlu
Zy4gV2UgdXNlIHRoaXMgcmF0aGVyIHRoYW4gYWJvcnQoKSBvciBfX2J1aWx0aW5fdHJhcCgpIGZv
cgotICAgICAgLy8gcG9ydGFiaWxpdHk6IFN5bWJpYW4gZG9lc24ndCBpbXBsZW1lbnQgYWJvcnQo
KSB3ZWxsLCBhbmQgc29tZSBkZWJ1Z2dlcnMKLSAgICAgIC8vIGRvbid0IGNvcnJlY3RseSB0cmFw
IGFib3J0KCkuCi0gICAgICAqc3RhdGljX2Nhc3Q8dm9sYXRpbGUgaW50Kj4oTlVMTCkgPSAxOwot
I2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0gICAgfSBlbHNlIGlmIChHVEVTVF9GTEFHKHRo
cm93X29uX2ZhaWx1cmUpKSB7Ci0jaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKLSAgICAgIHRocm93
IGludGVybmFsOjpHb29nbGVUZXN0RmFpbHVyZUV4Y2VwdGlvbihyZXN1bHQpOwotI2Vsc2UKLSAg
ICAgIC8vIFdlIGNhbm5vdCBjYWxsIGFib3J0KCkgYXMgaXQgZ2VuZXJhdGVzIGEgcG9wLXVwIGlu
IGRlYnVnIG1vZGUKLSAgICAgIC8vIHRoYXQgY2Fubm90IGJlIHN1cHByZXNzZWQgaW4gVkMgNy4x
IG9yIGJlbG93LgotICAgICAgZXhpdCgxKTsKLSNlbmRpZgotICAgIH0KLSAgfQotfQotCi0vLyBB
ZGRzIGEgVGVzdFByb3BlcnR5IHRvIHRoZSBjdXJyZW50IFRlc3RSZXN1bHQgb2JqZWN0IHdoZW4g
aW52b2tlZCBmcm9tCi0vLyBpbnNpZGUgYSB0ZXN0LCB0byBjdXJyZW50IFRlc3RDYXNlJ3MgYWRf
aG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKLS8vIGZyb20gU2V0VXBUZXN0Q2FzZSBvciBU
ZWFyRG93blRlc3RDYXNlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5IHNldAotLy8gd2hlbiBp
bnZva2VkIGVsc2V3aGVyZS4gIElmIHRoZSByZXN1bHQgYWxyZWFkeSBjb250YWlucyBhIHByb3Bl
cnR5IHdpdGgKLS8vIHRoZSBzYW1lIGtleSwgdGhlIHZhbHVlIHdpbGwgYmUgdXBkYXRlZC4KLXZv
aWQgVW5pdFRlc3Q6OlJlY29yZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKLSAg
aW1wbF8tPlJlY29yZFByb3BlcnR5KFRlc3RQcm9wZXJ0eShrZXksIHZhbHVlKSk7Ci19Ci0KLS8v
IFJ1bnMgYWxsIHRlc3RzIGluIHRoaXMgVW5pdFRlc3Qgb2JqZWN0IGFuZCBwcmludHMgdGhlIHJl
c3VsdC4KLS8vIFJldHVybnMgMCBpZiBzdWNjZXNzZnVsLCBvciAxIG90aGVyd2lzZS4KLS8vCi0v
LyBXZSBkb24ndCBwcm90ZWN0IHRoaXMgdW5kZXIgbXV0ZXhfLCBhcyB3ZSBvbmx5IHN1cHBvcnQg
Y2FsbGluZyBpdAotLy8gZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi1pbnQgVW5pdFRlc3Q6OlJ1bigp
IHsKLSAgY29uc3QgYm9vbCBpbl9kZWF0aF90ZXN0X2NoaWxkX3Byb2Nlc3MgPQotICAgICAgaW50
ZXJuYWw6OkdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpLmxlbmd0aCgpID4gMDsK
LQotICAvLyBHb29nbGUgVGVzdCBpbXBsZW1lbnRzIHRoaXMgcHJvdG9jb2wgZm9yIGNhdGNoaW5n
IHRoYXQgYSB0ZXN0Ci0gIC8vIHByb2dyYW0gZXhpdHMgYmVmb3JlIHJldHVybmluZyBjb250cm9s
IHRvIEdvb2dsZSBUZXN0OgotICAvLwotICAvLyAgIDEuIFVwb24gc3RhcnQsIEdvb2dsZSBUZXN0
IGNyZWF0ZXMgYSBmaWxlIHdob3NlIGFic29sdXRlIHBhdGgKLSAgLy8gICAgICBpcyBzcGVjaWZp
ZWQgYnkgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCi0gIC8vICAgICAgVEVTVF9QUkVNQVRVUkVf
RVhJVF9GSUxFLgotICAvLyAgIDIuIFdoZW4gR29vZ2xlIFRlc3QgaGFzIGZpbmlzaGVkIGl0cyB3
b3JrLCBpdCBkZWxldGVzIHRoZSBmaWxlLgotICAvLwotICAvLyBUaGlzIGFsbG93cyBhIHRlc3Qg
cnVubmVyIHRvIHNldCBURVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUgYmVmb3JlCi0gIC8vIHJ1bm5p
bmcgYSBHb29nbGUtVGVzdC1iYXNlZCB0ZXN0IHByb2dyYW0gYW5kIGNoZWNrIHRoZSBleGlzdGVu
Y2UKLSAgLy8gb2YgdGhlIGZpbGUgYXQgdGhlIGVuZCBvZiB0aGUgdGVzdCBleGVjdXRpb24gdG8g
c2VlIGlmIGl0IGhhcwotICAvLyBleGl0ZWQgcHJlbWF0dXJlbHkuCi0KLSAgLy8gSWYgd2UgYXJl
IGluIHRoZSBjaGlsZCBwcm9jZXNzIG9mIGEgZGVhdGggdGVzdCwgZG9uJ3QKLSAgLy8gY3JlYXRl
L2RlbGV0ZSB0aGUgcHJlbWF0dXJlIGV4aXQgZmlsZSwgYXMgZG9pbmcgc28gaXMgdW5uZWNlc3Nh
cnkKLSAgLy8gYW5kIHdpbGwgY29uZnVzZSB0aGUgcGFyZW50IHByb2Nlc3MuICBPdGhlcndpc2Us
IGNyZWF0ZS9kZWxldGUKLSAgLy8gdGhlIGZpbGUgdXBvbiBlbnRlcmluZy9sZWF2aW5nIHRoaXMg
ZnVuY3Rpb24uICBJZiB0aGUgcHJvZ3JhbQotICAvLyBzb21laG93IGV4aXRzIGJlZm9yZSB0aGlz
IGZ1bmN0aW9uIGhhcyBhIGNoYW5jZSB0byByZXR1cm4sIHRoZQotICAvLyBwcmVtYXR1cmUtZXhp
dCBmaWxlIHdpbGwgYmUgbGVmdCB1bmRlbGV0ZWQsIGNhdXNpbmcgYSB0ZXN0IHJ1bm5lcgotICAv
LyB0aGF0IHVuZGVyc3RhbmRzIHRoZSBwcmVtYXR1cmUtZXhpdC1maWxlIHByb3RvY29sIHRvIHJl
cG9ydCB0aGUKLSAgLy8gdGVzdCBhcyBoYXZpbmcgZmFpbGVkLgotICBjb25zdCBpbnRlcm5hbDo6
U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgcHJlbWF0dXJlX2V4aXRfZmlsZSgKLSAgICAgIGluX2Rl
YXRoX3Rlc3RfY2hpbGRfcHJvY2VzcyA/Ci0gICAgICBOVUxMIDogaW50ZXJuYWw6OnBvc2l4OjpH
ZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklMRSIpKTsKLQotICAvLyBDYXB0dXJlcyB0aGUg
dmFsdWUgb2YgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKS4gIFRoaXMgdmFsdWUgd2lsbCBi
ZQotICAvLyB1c2VkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHByb2dyYW0uCi0gIGltcGwoKS0+
c2V0X2NhdGNoX2V4Y2VwdGlvbnMoR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSk7Ci0KLSNp
ZiBHVEVTVF9IQVNfU0VICi0gIC8vIEVpdGhlciB0aGUgdXNlciB3YW50cyBHb29nbGUgVGVzdCB0
byBjYXRjaCBleGNlcHRpb25zIHRocm93biBieSB0aGUKLSAgLy8gdGVzdHMgb3IgdGhpcyBpcyBl
eGVjdXRpbmcgaW4gdGhlIGNvbnRleHQgb2YgZGVhdGggdGVzdCBjaGlsZAotICAvLyBwcm9jZXNz
LiBJbiBlaXRoZXIgY2FzZSB0aGUgdXNlciBkb2VzIG5vdCB3YW50IHRvIHNlZSBwb3AtdXAgZGlh
bG9ncwotICAvLyBhYm91dCBjcmFzaGVzIC0gdGhleSBhcmUgZXhwZWN0ZWQuCi0gIGlmIChpbXBs
KCktPmNhdGNoX2V4Y2VwdGlvbnMoKSB8fCBpbl9kZWF0aF90ZXN0X2NoaWxkX3Byb2Nlc3MpIHsK
LSMgaWYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFICYmICFHVEVTVF9PU19XSU5ET1dTX1BIT05F
ICYmICFHVEVTVF9PU19XSU5ET1dTX1JUCi0gICAgLy8gU2V0RXJyb3JNb2RlIGRvZXNuJ3QgZXhp
c3Qgb24gQ0UuCi0gICAgU2V0RXJyb3JNb2RlKFNFTV9GQUlMQ1JJVElDQUxFUlJPUlMgfCBTRU1f
Tk9BTElHTk1FTlRGQVVMVEVYQ0VQVCB8Ci0gICAgICAgICAgICAgICAgIFNFTV9OT0dQRkFVTFRF
UlJPUkJPWCB8IFNFTV9OT09QRU5GSUxFRVJST1JCT1gpOwotIyBlbmRpZiAgLy8gIUdURVNUX09T
X1dJTkRPV1NfTU9CSUxFCi0KLSMgaWYgKGRlZmluZWQoX01TQ19WRVIpIHx8IEdURVNUX09TX1dJ
TkRPV1NfTUlOR1cpICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQotICAgIC8vIERlYXRoIHRl
c3QgY2hpbGRyZW4gY2FuIGJlIHRlcm1pbmF0ZWQgd2l0aCBfYWJvcnQoKS4gIE9uIFdpbmRvd3Ms
Ci0gICAgLy8gX2Fib3J0KCkgY2FuIHNob3cgYSBkaWFsb2cgd2l0aCBhIHdhcm5pbmcgbWVzc2Fn
ZS4gIFRoaXMgZm9yY2VzIHRoZQotICAgIC8vIGFib3J0IG1lc3NhZ2UgdG8gZ28gdG8gc3RkZXJy
IGluc3RlYWQuCi0gICAgX3NldF9lcnJvcl9tb2RlKF9PVVRfVE9fU1RERVJSKTsKLSMgZW5kaWYK
LQotIyBpZiBfTVNDX1ZFUiA+PSAxNDAwICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQotICAg
IC8vIEluIHRoZSBkZWJ1ZyB2ZXJzaW9uLCBWaXN1YWwgU3R1ZGlvIHBvcHMgdXAgYSBzZXBhcmF0
ZSBkaWFsb2cKLSAgICAvLyBvZmZlcmluZyBhIGNob2ljZSB0byBkZWJ1ZyB0aGUgYWJvcnRlZCBw
cm9ncmFtLiBXZSBuZWVkIHRvIHN1cHByZXNzCi0gICAgLy8gdGhpcyBkaWFsb2cgb3IgaXQgd2ls
bCBwb3AgdXAgZm9yIGV2ZXJ5IEVYUEVDVC9BU1NFUlRfREVBVEggc3RhdGVtZW50Ci0gICAgLy8g
ZXhlY3V0ZWQuIEdvb2dsZSBUZXN0IHdpbGwgbm90aWZ5IHRoZSB1c2VyIG9mIGFueSB1bmV4cGVj
dGVkCi0gICAgLy8gZmFpbHVyZSB2aWEgc3RkZXJyLgotICAgIC8vCi0gICAgLy8gVkMrKyBkb2Vz
bid0IGRlZmluZSBfc2V0X2Fib3J0X2JlaGF2aW9yKCkgcHJpb3IgdG8gdGhlIHZlcnNpb24gOC4w
LgotICAgIC8vIFVzZXJzIG9mIHByaW9yIFZDIHZlcnNpb25zIHNoYWxsIHN1ZmZlciB0aGUgYWdv
bnkgYW5kIHBhaW4gb2YKLSAgICAvLyBjbGlja2luZyB0aHJvdWdoIHRoZSBjb3VudGxlc3MgZGVi
dWcgZGlhbG9ncy4KLSAgICAvLyBUT0RPKHZsYWRsQGdvb2dsZS5jb20pOiBmaW5kIGEgd2F5IHRv
IHN1cHByZXNzIHRoZSBhYm9ydCBkaWFsb2coKSBpbiB0aGUKLSAgICAvLyBkZWJ1ZyBtb2RlIHdo
ZW4gY29tcGlsZWQgd2l0aCBWQyA3LjEgb3IgbG93ZXIuCi0gICAgaWYgKCFHVEVTVF9GTEFHKGJy
ZWFrX29uX2ZhaWx1cmUpKQotICAgICAgX3NldF9hYm9ydF9iZWhhdmlvcigKLSAgICAgICAgICAw
eDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIGZvbGxv
d2luZyBmbGFnczoKLSAgICAgICAgICBfV1JJVEVfQUJPUlRfTVNHIHwgX0NBTExfUkVQT1JURkFV
TFQpOyAgLy8gcG9wLXVwIHdpbmRvdywgY29yZSBkdW1wLgotIyBlbmRpZgotICB9Ci0jZW5kaWYg
IC8vIEdURVNUX0hBU19TRUgKLQotICByZXR1cm4gaW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJ
bk1ldGhvZElmU3VwcG9ydGVkKAotICAgICAgaW1wbCgpLAotICAgICAgJmludGVybmFsOjpVbml0
VGVzdEltcGw6OlJ1bkFsbFRlc3RzLAotICAgICAgImF1eGlsaWFyeSB0ZXN0IGNvZGUgKGVudmly
b25tZW50cyBvciBldmVudCBsaXN0ZW5lcnMpIikgPyAwIDogMTsKLX0KLQotLy8gUmV0dXJucyB0
aGUgd29ya2luZyBkaXJlY3Rvcnkgd2hlbiB0aGUgZmlyc3QgVEVTVCgpIG9yIFRFU1RfRigpIHdh
cwotLy8gZXhlY3V0ZWQuCi1jb25zdCBjaGFyKiBVbml0VGVzdDo6b3JpZ2luYWxfd29ya2luZ19k
aXIoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsXy0+b3JpZ2luYWxfd29ya2luZ19kaXJfLmNfc3Ry
KCk7Ci19Ci0KLS8vIFJldHVybnMgdGhlIFRlc3RDYXNlIG9iamVjdCBmb3IgdGhlIHRlc3QgdGhh
dCdzIGN1cnJlbnRseSBydW5uaW5nLAotLy8gb3IgTlVMTCBpZiBubyB0ZXN0IGlzIHJ1bm5pbmcu
Ci1jb25zdCBUZXN0Q2FzZSogVW5pdFRlc3Q6OmN1cnJlbnRfdGVzdF9jYXNlKCkgY29uc3QKLSAg
ICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKLSAgaW50ZXJuYWw6Ok11dGV4TG9jayBs
b2NrKCZtdXRleF8pOwotICByZXR1cm4gaW1wbF8tPmN1cnJlbnRfdGVzdF9jYXNlKCk7Ci19Ci0K
LS8vIFJldHVybnMgdGhlIFRlc3RJbmZvIG9iamVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJl
bnRseSBydW5uaW5nLAotLy8gb3IgTlVMTCBpZiBubyB0ZXN0IGlzIHJ1bm5pbmcuCi1jb25zdCBU
ZXN0SW5mbyogVW5pdFRlc3Q6OmN1cnJlbnRfdGVzdF9pbmZvKCkgY29uc3QKLSAgICBHVEVTVF9M
T0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKLSAgaW50ZXJuYWw6Ok11dGV4TG9jayBsb2NrKCZtdXRl
eF8pOwotICByZXR1cm4gaW1wbF8tPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci19Ci0KLS8vIFJldHVy
bnMgdGhlIHJhbmRvbSBzZWVkIHVzZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IHRlc3Qg
cnVuLgotaW50IFVuaXRUZXN0OjpyYW5kb21fc2VlZCgpIGNvbnN0IHsgcmV0dXJuIGltcGxfLT5y
YW5kb21fc2VlZCgpOyB9Ci0KLS8vIFJldHVybnMgUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0
cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgotLy8gdmFsdWUtcGFyYW1ldGVyaXplZCB0
ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5kIHJlZ2lzdGVyIHRoZW0uCi1pbnRlcm5hbDo6UGFyYW1l
dGVyaXplZFRlc3RDYXNlUmVnaXN0cnkmCi0gICAgVW5pdFRlc3Q6OnBhcmFtZXRlcml6ZWRfdGVz
dF9yZWdpc3RyeSgpCi0gICAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4XykgewotICBy
ZXR1cm4gaW1wbF8tPnBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpOwotfQotCi0vLyBDcmVh
dGVzIGFuIGVtcHR5IFVuaXRUZXN0LgotVW5pdFRlc3Q6OlVuaXRUZXN0KCkgewotICBpbXBsXyA9
IG5ldyBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKHRoaXMpOwotfQotCi0vLyBEZXN0cnVjdG9yIG9m
IFVuaXRUZXN0LgotVW5pdFRlc3Q6On5Vbml0VGVzdCgpIHsKLSAgZGVsZXRlIGltcGxfOwotfQot
Ci0vLyBQdXNoZXMgYSB0cmFjZSBkZWZpbmVkIGJ5IFNDT1BFRF9UUkFDRSgpIG9uIHRvIHRoZSBw
ZXItdGhyZWFkCi0vLyBHb29nbGUgVGVzdCB0cmFjZSBzdGFjay4KLXZvaWQgVW5pdFRlc3Q6OlB1
c2hHVGVzdFRyYWNlKGNvbnN0IGludGVybmFsOjpUcmFjZUluZm8mIHRyYWNlKQotICAgIEdURVNU
X0xPQ0tfRVhDTFVERURfKG11dGV4XykgewotICBpbnRlcm5hbDo6TXV0ZXhMb2NrIGxvY2soJm11
dGV4Xyk7Ci0gIGltcGxfLT5ndGVzdF90cmFjZV9zdGFjaygpLnB1c2hfYmFjayh0cmFjZSk7Ci19
Ci0KLS8vIFBvcHMgYSB0cmFjZSBmcm9tIHRoZSBwZXItdGhyZWFkIEdvb2dsZSBUZXN0IHRyYWNl
IHN0YWNrLgotdm9pZCBVbml0VGVzdDo6UG9wR1Rlc3RUcmFjZSgpCi0gICAgR1RFU1RfTE9DS19F
WENMVURFRF8obXV0ZXhfKSB7Ci0gIGludGVybmFsOjpNdXRleExvY2sgbG9jaygmbXV0ZXhfKTsK
LSAgaW1wbF8tPmd0ZXN0X3RyYWNlX3N0YWNrKCkucG9wX2JhY2soKTsKLX0KLQotbmFtZXNwYWNl
IGludGVybmFsIHsKLQotVW5pdFRlc3RJbXBsOjpVbml0VGVzdEltcGwoVW5pdFRlc3QqIHBhcmVu
dCkKLSAgICA6IHBhcmVudF8ocGFyZW50KSwKLSAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5J
TkdTX1BVU0hfKDQzNTUgLyogdXNpbmcgdGhpcyBpbiBpbml0aWFsaXplciAqLykKLSAgICAgIGRl
ZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAotICAgICAgZGVm
YXVsdF9wZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAotICAgICAg
R1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpCi0gICAgICBnbG9iYWxfdGVzdF9wYXJ0
X3Jlc3VsdF9yZXBvdGVyXygKLSAgICAgICAgICAmZGVmYXVsdF9nbG9iYWxfdGVzdF9wYXJ0X3Jl
c3VsdF9yZXBvcnRlcl8pLAotICAgICAgcGVyX3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9y
dGVyXygKLSAgICAgICAgICAmZGVmYXVsdF9wZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1bHRfcmVw
b3J0ZXJfKSwKLSAgICAgIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV8oKSwKLSAgICAgIHBh
cmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8oZmFsc2UpLAotICAgICAgbGFzdF9kZWF0aF90
ZXN0X2Nhc2VfKC0xKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9jYXNlXyhOVUxMKSwKLSAgICAgIGN1
cnJlbnRfdGVzdF9pbmZvXyhOVUxMKSwKLSAgICAgIGFkX2hvY190ZXN0X3Jlc3VsdF8oKSwKLSAg
ICAgIG9zX3N0YWNrX3RyYWNlX2dldHRlcl8oTlVMTCksCi0gICAgICBwb3N0X2ZsYWdfcGFyc2Vf
aW5pdF9wZXJmb3JtZWRfKGZhbHNlKSwKLSAgICAgIHJhbmRvbV9zZWVkXygwKSwgIC8vIFdpbGwg
YmUgb3ZlcnJpZGRlbiBieSB0aGUgZmxhZyBiZWZvcmUgZmlyc3QgdXNlLgotICAgICAgcmFuZG9t
XygwKSwgIC8vIFdpbGwgYmUgcmVzZWVkZWQgYmVmb3JlIGZpcnN0IHVzZS4KLSAgICAgIHN0YXJ0
X3RpbWVzdGFtcF8oMCksCi0gICAgICBlbGFwc2VkX3RpbWVfKDApLAotI2lmIEdURVNUX0hBU19E
RUFUSF9URVNUCi0gICAgICBkZWF0aF90ZXN0X2ZhY3RvcnlfKG5ldyBEZWZhdWx0RGVhdGhUZXN0
RmFjdG9yeSksCi0jZW5kaWYKLSAgICAgIC8vIFdpbGwgYmUgb3ZlcnJpZGRlbiBieSB0aGUgZmxh
ZyBiZWZvcmUgZmlyc3QgdXNlLgotICAgICAgY2F0Y2hfZXhjZXB0aW9uc18oZmFsc2UpIHsKLSAg
bGlzdGVuZXJzKCktPlNldERlZmF1bHRSZXN1bHRQcmludGVyKG5ldyBQcmV0dHlVbml0VGVzdFJl
c3VsdFByaW50ZXIpOwotfQotCi1Vbml0VGVzdEltcGw6On5Vbml0VGVzdEltcGwoKSB7Ci0gIC8v
IERlbGV0ZXMgZXZlcnkgVGVzdENhc2UuCi0gIEZvckVhY2godGVzdF9jYXNlc18sIGludGVybmFs
OjpEZWxldGU8VGVzdENhc2U+KTsKLQotICAvLyBEZWxldGVzIGV2ZXJ5IEVudmlyb25tZW50Lgot
ICBGb3JFYWNoKGVudmlyb25tZW50c18sIGludGVybmFsOjpEZWxldGU8RW52aXJvbm1lbnQ+KTsK
LQotICBkZWxldGUgb3Nfc3RhY2tfdHJhY2VfZ2V0dGVyXzsKLX0KLQotLy8gQWRkcyBhIFRlc3RQ
cm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgaW4g
YQotLy8gY29udGV4dCBvZiBhIHRlc3QsIHRvIGN1cnJlbnQgdGVzdCBjYXNlJ3MgYWRfaG9jX3Rl
c3RfcmVzdWx0IHdoZW4gaW52b2tlCi0vLyBmcm9tIFNldFVwVGVzdENhc2UvVGVhckRvd25UZXN0
Q2FzZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKLS8vIG90aGVyd2lzZS4gIElmIHRo
ZSByZXN1bHQgYWxyZWFkeSBjb250YWlucyBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUga2V5LAot
Ly8gdGhlIHZhbHVlIHdpbGwgYmUgdXBkYXRlZC4KLXZvaWQgVW5pdFRlc3RJbXBsOjpSZWNvcmRQ
cm9wZXJ0eShjb25zdCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpIHsKLSAgc3RkOjpzdHJp
bmcgeG1sX2VsZW1lbnQ7Ci0gIFRlc3RSZXN1bHQqIHRlc3RfcmVzdWx0OyAgLy8gVGVzdFJlc3Vs
dCBhcHByb3ByaWF0ZSBmb3IgcHJvcGVydHkgcmVjb3JkaW5nLgotCi0gIGlmIChjdXJyZW50X3Rl
c3RfaW5mb18gIT0gTlVMTCkgewotICAgIHhtbF9lbGVtZW50ID0gInRlc3RjYXNlIjsKLSAgICB0
ZXN0X3Jlc3VsdCA9ICYoY3VycmVudF90ZXN0X2luZm9fLT5yZXN1bHRfKTsKLSAgfSBlbHNlIGlm
IChjdXJyZW50X3Rlc3RfY2FzZV8gIT0gTlVMTCkgewotICAgIHhtbF9lbGVtZW50ID0gInRlc3Rz
dWl0ZSI7Ci0gICAgdGVzdF9yZXN1bHQgPSAmKGN1cnJlbnRfdGVzdF9jYXNlXy0+YWRfaG9jX3Rl
c3RfcmVzdWx0Xyk7Ci0gIH0gZWxzZSB7Ci0gICAgeG1sX2VsZW1lbnQgPSAidGVzdHN1aXRlcyI7
Ci0gICAgdGVzdF9yZXN1bHQgPSAmYWRfaG9jX3Rlc3RfcmVzdWx0XzsKLSAgfQotICB0ZXN0X3Jl
c3VsdC0+UmVjb3JkUHJvcGVydHkoeG1sX2VsZW1lbnQsIHRlc3RfcHJvcGVydHkpOwotfQotCi0j
aWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLS8vIERpc2FibGVzIGV2ZW50IGZvcndhcmRpbmcgaWYg
dGhlIGNvbnRyb2wgaXMgY3VycmVudGx5IGluIGEgZGVhdGggdGVzdAotLy8gc3VicHJvY2Vzcy4g
TXVzdCBub3QgYmUgY2FsbGVkIGJlZm9yZSBJbml0R29vZ2xlVGVzdC4KLXZvaWQgVW5pdFRlc3RJ
bXBsOjpTdXBwcmVzc1Rlc3RFdmVudHNJZkluU3VicHJvY2VzcygpIHsKLSAgaWYgKGludGVybmFs
X3J1bl9kZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IE5VTEwpCi0gICAgbGlzdGVuZXJzKCktPlN1
cHByZXNzRXZlbnRGb3J3YXJkaW5nKCk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19ERUFUSF9U
RVNUCi0KLS8vIEluaXRpYWxpemVzIGV2ZW50IGxpc3RlbmVycyBwZXJmb3JtaW5nIFhNTCBvdXRw
dXQgYXMgc3BlY2lmaWVkIGJ5Ci0vLyBVbml0VGVzdE9wdGlvbnMuIE11c3Qgbm90IGJlIGNhbGxl
ZCBiZWZvcmUgSW5pdEdvb2dsZVRlc3QuCi12b2lkIFVuaXRUZXN0SW1wbDo6Q29uZmlndXJlWG1s
T3V0cHV0KCkgewotICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2Zvcm1hdCA9IFVuaXRUZXN0
T3B0aW9uczo6R2V0T3V0cHV0Rm9ybWF0KCk7Ci0gIGlmIChvdXRwdXRfZm9ybWF0ID09ICJ4bWwi
KSB7Ci0gICAgbGlzdGVuZXJzKCktPlNldERlZmF1bHRYbWxHZW5lcmF0b3IobmV3IFhtbFVuaXRU
ZXN0UmVzdWx0UHJpbnRlcigKLSAgICAgICAgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0ZVBh
dGhUb091dHB1dEZpbGUoKS5jX3N0cigpKSk7Ci0gIH0gZWxzZSBpZiAob3V0cHV0X2Zvcm1hdCAh
PSAiIikgewotICAgIEdURVNUX0xPR18oV0FSTklORykgPDwgIldBUk5JTkc6IHVucmVjb2duaXpl
ZCBvdXRwdXQgZm9ybWF0IFwiIgotICAgICAgICAgICAgICAgICAgICAgICAgPDwgb3V0cHV0X2Zv
cm1hdAotICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlwiIGlnbm9yZWQuIjsKLSAgfQotfQot
Ci0jaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotLy8gSW5pdGlhbGl6ZXMgZXZlbnQgbGlz
dGVuZXJzIGZvciBzdHJlYW1pbmcgdGVzdCByZXN1bHRzIGluIHN0cmluZyBmb3JtLgotLy8gTXVz
dCBub3QgYmUgY2FsbGVkIGJlZm9yZSBJbml0R29vZ2xlVGVzdC4KLXZvaWQgVW5pdFRlc3RJbXBs
OjpDb25maWd1cmVTdHJlYW1pbmdPdXRwdXQoKSB7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nJiB0YXJn
ZXQgPSBHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pOwotICBpZiAoIXRhcmdldC5lbXB0eSgp
KSB7Ci0gICAgY29uc3Qgc2l6ZV90IHBvcyA9IHRhcmdldC5maW5kKCc6Jyk7Ci0gICAgaWYgKHBv
cyAhPSBzdGQ6OnN0cmluZzo6bnBvcykgewotICAgICAgbGlzdGVuZXJzKCktPkFwcGVuZChuZXcg
U3RyZWFtaW5nTGlzdGVuZXIodGFyZ2V0LnN1YnN0cigwLCBwb3MpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnN1YnN0cihwb3MrMSkpKTsK
LSAgICB9IGVsc2UgewotICAgICAgR1RFU1RfTE9HXyhXQVJOSU5HKSA8PCAidW5yZWNvZ25pemVk
IHN0cmVhbWluZyB0YXJnZXQgXCIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHRhcmdl
dAotICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXCIgaWdub3JlZC4iOwotICAgIH0KLSAg
fQotfQotI2VuZGlmICAvLyBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfCi0KLS8vIFBlcmZvcm1z
IGluaXRpYWxpemF0aW9uIGRlcGVuZGVudCB1cG9uIGZsYWcgdmFsdWVzIG9idGFpbmVkIGluCi0v
LyBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHkuICBJcyBjYWxsZWQgZnJvbSBJbml0R29vZ2xlVGVz
dCBhZnRlciB0aGUgY2FsbCB0bwotLy8gUGFyc2VHb29nbGVUZXN0RmxhZ3NPbmx5LiAgSW4gY2Fz
ZSBhIHVzZXIgbmVnbGVjdHMgdG8gY2FsbCBJbml0R29vZ2xlVGVzdAotLy8gdGhpcyBmdW5jdGlv
biBpcyBhbHNvIGNhbGxlZCBmcm9tIFJ1bkFsbFRlc3RzLiAgU2luY2UgdGhpcyBmdW5jdGlvbiBj
YW4gYmUKLS8vIGNhbGxlZCBtb3JlIHRoYW4gb25jZSwgaXQgaGFzIHRvIGJlIGlkZW1wb3RlbnQu
Ci12b2lkIFVuaXRUZXN0SW1wbDo6UG9zdEZsYWdQYXJzaW5nSW5pdCgpIHsKLSAgLy8gRW5zdXJl
cyB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgZXhlY3V0ZSBtb3JlIHRoYW4gb25jZS4KLSAg
aWYgKCFwb3N0X2ZsYWdfcGFyc2VfaW5pdF9wZXJmb3JtZWRfKSB7Ci0gICAgcG9zdF9mbGFnX3Bh
cnNlX2luaXRfcGVyZm9ybWVkXyA9IHRydWU7Ci0KLSNpZiBkZWZpbmVkKEdURVNUX0NVU1RPTV9U
RVNUX0VWRU5UX0xJU1RFTkVSXykKLSAgICAvLyBSZWdpc3RlciB0byBzZW5kIG5vdGlmaWNhdGlv
bnMgYWJvdXQga2V5IHByb2Nlc3Mgc3RhdGUgY2hhbmdlcy4KLSAgICBsaXN0ZW5lcnMoKS0+QXBw
ZW5kKG5ldyBHVEVTVF9DVVNUT01fVEVTVF9FVkVOVF9MSVNURU5FUl8oKSk7Ci0jZW5kaWYgIC8v
IGRlZmluZWQoR1RFU1RfQ1VTVE9NX1RFU1RfRVZFTlRfTElTVEVORVJfKQotCi0jaWYgR1RFU1Rf
SEFTX0RFQVRIX1RFU1QKLSAgICBJbml0RGVhdGhUZXN0U3VicHJvY2Vzc0NvbnRyb2xJbmZvKCk7
Ci0gICAgU3VwcHJlc3NUZXN0RXZlbnRzSWZJblN1YnByb2Nlc3MoKTsKLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX0RFQVRIX1RFU1QKLQotICAgIC8vIFJlZ2lzdGVycyBwYXJhbWV0ZXJpemVkIHRlc3Rz
LiBUaGlzIG1ha2VzIHBhcmFtZXRlcml6ZWQgdGVzdHMKLSAgICAvLyBhdmFpbGFibGUgdG8gdGhl
IFVuaXRUZXN0IHJlZmxlY3Rpb24gQVBJIHdpdGhvdXQgcnVubmluZwotICAgIC8vIFJVTl9BTExf
VEVTVFMuCi0gICAgUmVnaXN0ZXJQYXJhbWV0ZXJpemVkVGVzdHMoKTsKLQotICAgIC8vIENvbmZp
Z3VyZXMgbGlzdGVuZXJzIGZvciBYTUwgb3V0cHV0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZv
ciB1c2VycwotICAgIC8vIHRvIHNodXQgZG93biB0aGUgZGVmYXVsdCBYTUwgb3V0cHV0IGJlZm9y
ZSBpbnZva2luZyBSVU5fQUxMX1RFU1RTLgotICAgIENvbmZpZ3VyZVhtbE91dHB1dCgpOwotCi0j
aWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotICAgIC8vIENvbmZpZ3VyZXMgbGlzdGVuZXJz
IGZvciBzdHJlYW1pbmcgdGVzdCByZXN1bHRzIHRvIHRoZSBzcGVjaWZpZWQgc2VydmVyLgotICAg
IENvbmZpZ3VyZVN0cmVhbWluZ091dHB1dCgpOwotI2VuZGlmICAvLyBHVEVTVF9DQU5fU1RSRUFN
X1JFU1VMVFNfCi0gIH0KLX0KLQotLy8gQSBwcmVkaWNhdGUgdGhhdCBjaGVja3MgdGhlIG5hbWUg
b2YgYSBUZXN0Q2FzZSBhZ2FpbnN0IGEga25vd24KLS8vIHZhbHVlLgotLy8KLS8vIFRoaXMgaXMg
dXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVuaXRUZXN0IGNsYXNzIG9ubHkuICBXZSBw
dXQKLS8vIGl0IGluIHRoZSBhbm9ueW1vdXMgbmFtZXNwYWNlIHRvIHByZXZlbnQgcG9sbHV0aW5n
IHRoZSBvdXRlcgotLy8gbmFtZXNwYWNlLgotLy8KLS8vIFRlc3RDYXNlTmFtZUlzIGlzIGNvcHlh
YmxlLgotY2xhc3MgVGVzdENhc2VOYW1lSXMgewotIHB1YmxpYzoKLSAgLy8gQ29uc3RydWN0b3Iu
Ci0gIGV4cGxpY2l0IFRlc3RDYXNlTmFtZUlzKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKQotICAg
ICAgOiBuYW1lXyhuYW1lKSB7fQotCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIG5hbWUgb2Yg
dGVzdF9jYXNlIG1hdGNoZXMgbmFtZV8uCi0gIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0Q2Fz
ZSogdGVzdF9jYXNlKSBjb25zdCB7Ci0gICAgcmV0dXJuIHRlc3RfY2FzZSAhPSBOVUxMICYmIHN0
cmNtcCh0ZXN0X2Nhc2UtPm5hbWUoKSwgbmFtZV8uY19zdHIoKSkgPT0gMDsKLSAgfQotCi0gcHJp
dmF0ZToKLSAgc3RkOjpzdHJpbmcgbmFtZV87Ci19OwotCi0vLyBGaW5kcyBhbmQgcmV0dXJucyBh
IFRlc3RDYXNlIHdpdGggdGhlIGdpdmVuIG5hbWUuICBJZiBvbmUgZG9lc24ndAotLy8gZXhpc3Qs
IGNyZWF0ZXMgb25lIGFuZCByZXR1cm5zIGl0LiAgSXQncyB0aGUgQ0FMTEVSJ1MKLS8vIFJFU1BP
TlNJQklMSVRZIHRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgV0hF
TiBUSEUKLS8vIFRFU1RTIEFSRSBOT1QgU0hVRkZMRUQuCi0vLwotLy8gQXJndW1lbnRzOgotLy8K
LS8vICAgdGVzdF9jYXNlX25hbWU6IG5hbWUgb2YgdGhlIHRlc3QgY2FzZQotLy8gICB0eXBlX3Bh
cmFtOiAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBO
VUxMIGlmCi0vLyAgICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlw
ZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vICAgc2V0X3VwX3RjOiAgICAgIHBvaW50ZXIg
dG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93
bl90YzogICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qg
Y2FzZQotVGVzdENhc2UqIFVuaXRUZXN0SW1wbDo6R2V0VGVzdENhc2UoY29uc3QgY2hhciogdGVz
dF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiB0eXBlX3BhcmFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVz
dDo6U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjKSB7Ci0g
IC8vIENhbiB3ZSBmaW5kIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZT8KLSAgY29uc3Qg
c3RkOjp2ZWN0b3I8VGVzdENhc2UqPjo6Y29uc3RfaXRlcmF0b3IgdGVzdF9jYXNlID0KLSAgICAg
IHN0ZDo6ZmluZF9pZih0ZXN0X2Nhc2VzXy5iZWdpbigpLCB0ZXN0X2Nhc2VzXy5lbmQoKSwKLSAg
ICAgICAgICAgICAgICAgICBUZXN0Q2FzZU5hbWVJcyh0ZXN0X2Nhc2VfbmFtZSkpOwotCi0gIGlm
ICh0ZXN0X2Nhc2UgIT0gdGVzdF9jYXNlc18uZW5kKCkpCi0gICAgcmV0dXJuICp0ZXN0X2Nhc2U7
Ci0KLSAgLy8gTm8uICBMZXQncyBjcmVhdGUgb25lLgotICBUZXN0Q2FzZSogY29uc3QgbmV3X3Rl
c3RfY2FzZSA9Ci0gICAgICBuZXcgVGVzdENhc2UodGVzdF9jYXNlX25hbWUsIHR5cGVfcGFyYW0s
IHNldF91cF90YywgdGVhcl9kb3duX3RjKTsKLQotICAvLyBJcyB0aGlzIGEgZGVhdGggdGVzdCBj
YXNlPwotICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcih0ZXN0
X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga0RlYXRoVGVzdENhc2VGaWx0ZXIpKSB7Ci0gICAgLy8gWWVzLiAgSW5zZXJ0cyB0aGUgdGVz
dCBjYXNlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3QgY2FzZQotICAgIC8vIGRlZmluZWQgc28g
ZmFyLiAgVGhpcyBvbmx5IHdvcmtzIHdoZW4gdGhlIHRlc3QgY2FzZXMgaGF2ZW4ndAotICAgIC8v
IGJlZW4gc2h1ZmZsZWQuICBPdGhlcndpc2Ugd2UgbWF5IGVuZCB1cCBydW5uaW5nIGEgZGVhdGgg
dGVzdAotICAgIC8vIGFmdGVyIGEgbm9uLWRlYXRoIHRlc3QuCi0gICAgKytsYXN0X2RlYXRoX3Rl
c3RfY2FzZV87Ci0gICAgdGVzdF9jYXNlc18uaW5zZXJ0KHRlc3RfY2FzZXNfLmJlZ2luKCkgKyBs
YXN0X2RlYXRoX3Rlc3RfY2FzZV8sCi0gICAgICAgICAgICAgICAgICAgICAgIG5ld190ZXN0X2Nh
c2UpOwotICB9IGVsc2UgewotICAgIC8vIE5vLiAgQXBwZW5kcyB0byB0aGUgZW5kIG9mIHRoZSBs
aXN0LgotICAgIHRlc3RfY2FzZXNfLnB1c2hfYmFjayhuZXdfdGVzdF9jYXNlKTsKLSAgfQotCi0g
IHRlc3RfY2FzZV9pbmRpY2VzXy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2Vf
aW5kaWNlc18uc2l6ZSgpKSk7Ci0gIHJldHVybiBuZXdfdGVzdF9jYXNlOwotfQotCi0vLyBIZWxw
ZXJzIGZvciBzZXR0aW5nIHVwIC8gdGVhcmluZyBkb3duIHRoZSBnaXZlbiBlbnZpcm9ubWVudC4g
IFRoZXkKLS8vIGFyZSBmb3IgdXNlIGluIHRoZSBGb3JFYWNoKCkgZnVuY3Rpb24uCi1zdGF0aWMg
dm9pZCBTZXRVcEVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpIHsgZW52LT5TZXRVcCgpOyB9
Ci1zdGF0aWMgdm9pZCBUZWFyRG93bkVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpIHsgZW52
LT5UZWFyRG93bigpOyB9Ci0KLS8vIFJ1bnMgYWxsIHRlc3RzIGluIHRoaXMgVW5pdFRlc3Qgb2Jq
ZWN0LCBwcmludHMgdGhlIHJlc3VsdCwgYW5kCi0vLyByZXR1cm5zIHRydWUgaWYgYWxsIHRlc3Rz
IGFyZSBzdWNjZXNzZnVsLiAgSWYgYW55IGV4Y2VwdGlvbiBpcwotLy8gdGhyb3duIGR1cmluZyBh
IHRlc3QsIHRoZSB0ZXN0IGlzIGNvbnNpZGVyZWQgdG8gYmUgZmFpbGVkLCBidXQgdGhlCi0vLyBy
ZXN0IG9mIHRoZSB0ZXN0cyB3aWxsIHN0aWxsIGJlIHJ1bi4KLS8vCi0vLyBXaGVuIHBhcmFtZXRl
cml6ZWQgdGVzdHMgYXJlIGVuYWJsZWQsIGl0IGV4cGFuZHMgYW5kIHJlZ2lzdGVycwotLy8gcGFy
YW1ldGVyaXplZCB0ZXN0cyBmaXJzdCBpbiBSZWdpc3RlclBhcmFtZXRlcml6ZWRUZXN0cygpLgot
Ly8gQWxsIG90aGVyIGZ1bmN0aW9ucyBjYWxsZWQgZnJvbSBSdW5BbGxUZXN0cygpIG1heSBzYWZl
bHkgYXNzdW1lIHRoYXQKLS8vIHBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIHJlYWR5IHRvIGJlIGNv
dW50ZWQgYW5kIHJ1bi4KLWJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKLSAgLy8g
TWFrZXMgc3VyZSBJbml0R29vZ2xlVGVzdCgpIHdhcyBjYWxsZWQuCi0gIGlmICghR1Rlc3RJc0lu
aXRpYWxpemVkKCkpIHsKLSAgICBHVEVTVF9MT0dfKEVSUk9SKSA8PAotICAgICAgIlxuVGhpcyB0
ZXN0IHByb2dyYW0gZGlkIE5PVCBjYWxsIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QgIgotICAg
ICAgImJlZm9yZSBjYWxsaW5nIFJVTl9BTExfVEVTVFMoKS4gIFBsZWFzZSBmaXggaXQuIjsKLSAg
ICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICAvLyBEbyBub3QgcnVuIGFueSB0ZXN0IGlmIHRoZSAt
LWhlbHAgZmxhZyB3YXMgc3BlY2lmaWVkLgotICBpZiAoZ19oZWxwX2ZsYWcpCi0gICAgcmV0dXJu
IHRydWU7Ci0KLSAgLy8gUmVwZWF0cyB0aGUgY2FsbCB0byB0aGUgcG9zdC1mbGFnIHBhcnNpbmcg
aW5pdGlhbGl6YXRpb24gaW4gY2FzZSB0aGUKLSAgLy8gdXNlciBkaWRuJ3QgY2FsbCBJbml0R29v
Z2xlVGVzdC4KLSAgUG9zdEZsYWdQYXJzaW5nSW5pdCgpOwotCi0gIC8vIEV2ZW4gaWYgc2hhcmRp
bmcgaXMgbm90IG9uLCB0ZXN0IHJ1bm5lcnMgbWF5IHdhbnQgdG8gdXNlIHRoZQotICAvLyBHVEVT
VF9TSEFSRF9TVEFUVVNfRklMRSB0byBxdWVyeSB3aGV0aGVyIHRoZSB0ZXN0IHN1cHBvcnRzIHRo
ZSBzaGFyZGluZwotICAvLyBwcm90b2NvbC4KLSAgaW50ZXJuYWw6OldyaXRlVG9TaGFyZFN0YXR1
c0ZpbGVJZk5lZWRlZCgpOwotCi0gIC8vIFRydWUgaWZmIHdlIGFyZSBpbiBhIHN1YnByb2Nlc3Mg
Zm9yIHJ1bm5pbmcgYSB0aHJlYWQtc2FmZS1zdHlsZQotICAvLyBkZWF0aCB0ZXN0LgotICBib29s
IGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QgPSBmYWxzZTsKLQotI2lmIEdURVNUX0hBU19E
RUFUSF9URVNUCi0gIGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QgPSAoaW50ZXJuYWxfcnVu
X2RlYXRoX3Rlc3RfZmxhZ18uZ2V0KCkgIT0gTlVMTCk7Ci0jIGlmIGRlZmluZWQoR1RFU1RfRVhU
UkFfREVBVEhfVEVTVF9DSElMRF9TRVRVUF8pCi0gIGlmIChpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0
aF90ZXN0KSB7Ci0gICAgR1RFU1RfRVhUUkFfREVBVEhfVEVTVF9DSElMRF9TRVRVUF8oKTsKLSAg
fQotIyBlbmRpZiAgLy8gZGVmaW5lZChHVEVTVF9FWFRSQV9ERUFUSF9URVNUX0NISUxEX1NFVFVQ
XykKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQotICBjb25zdCBib29sIHNob3Vs
ZF9zaGFyZCA9IFNob3VsZFNoYXJkKGtUZXN0VG90YWxTaGFyZHMsIGtUZXN0U2hhcmRJbmRleCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9zdWJwcm9jZXNzX2Zv
cl9kZWF0aF90ZXN0KTsKLQotICAvLyBDb21wYXJlcyB0aGUgZnVsbCB0ZXN0IG5hbWVzIHdpdGgg
dGhlIGZpbHRlciB0byBkZWNpZGUgd2hpY2gKLSAgLy8gdGVzdHMgdG8gcnVuLgotICBjb25zdCBi
b29sIGhhc190ZXN0c190b19ydW4gPSBGaWx0ZXJUZXN0cyhzaG91bGRfc2hhcmQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEhPTk9SX1NIQVJESU5HX1BS
T1RPQ09MCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBJ
R05PUkVfU0hBUkRJTkdfUFJPVE9DT0wpID4gMDsKLQotICAvLyBMaXN0cyB0aGUgdGVzdHMgYW5k
IGV4aXRzIGlmIHRoZSAtLWd0ZXN0X2xpc3RfdGVzdHMgZmxhZyB3YXMgc3BlY2lmaWVkLgotICBp
ZiAoR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkgewotICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQg
KmFmdGVyKiBGaWx0ZXJUZXN0cygpIGhhcyBiZWVuIGNhbGxlZC4KLSAgICBMaXN0VGVzdHNNYXRj
aGluZ0ZpbHRlcigpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci0KLSAgcmFuZG9tX3NlZWRfID0g
R1RFU1RfRkxBRyhzaHVmZmxlKSA/Ci0gICAgICBHZXRSYW5kb21TZWVkRnJvbUZsYWcoR1RFU1Rf
RkxBRyhyYW5kb21fc2VlZCkpIDogMDsKLQotICAvLyBUcnVlIGlmZiBhdCBsZWFzdCBvbmUgdGVz
dCBoYXMgZmFpbGVkLgotICBib29sIGZhaWxlZCA9IGZhbHNlOwotCi0gIFRlc3RFdmVudExpc3Rl
bmVyKiByZXBlYXRlciA9IGxpc3RlbmVycygpLT5yZXBlYXRlcigpOwotCi0gIHN0YXJ0X3RpbWVz
dGFtcF8gPSBHZXRUaW1lSW5NaWxsaXMoKTsKLSAgcmVwZWF0ZXItPk9uVGVzdFByb2dyYW1TdGFy
dCgqcGFyZW50Xyk7Ci0KLSAgLy8gSG93IG1hbnkgdGltZXMgdG8gcmVwZWF0IHRoZSB0ZXN0cz8g
IFdlIGRvbid0IHdhbnQgdG8gcmVwZWF0IHRoZW0KLSAgLy8gd2hlbiB3ZSBhcmUgaW5zaWRlIHRo
ZSBzdWJwcm9jZXNzIG9mIGEgZGVhdGggdGVzdC4KLSAgY29uc3QgaW50IHJlcGVhdCA9IGluX3N1
YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QgPyAxIDogR1RFU1RfRkxBRyhyZXBlYXQpOwotICAvLyBS
ZXBlYXRzIGZvcmV2ZXIgaWYgdGhlIHJlcGVhdCBjb3VudCBpcyBuZWdhdGl2ZS4KLSAgY29uc3Qg
Ym9vbCBmb3JldmVyID0gcmVwZWF0IDwgMDsKLSAgZm9yIChpbnQgaSA9IDA7IGZvcmV2ZXIgfHwg
aSAhPSByZXBlYXQ7IGkrKykgewotICAgIC8vIFdlIHdhbnQgdG8gcHJlc2VydmUgZmFpbHVyZXMg
Z2VuZXJhdGVkIGJ5IGFkLWhvYyB0ZXN0Ci0gICAgLy8gYXNzZXJ0aW9ucyBleGVjdXRlZCBiZWZv
cmUgUlVOX0FMTF9URVNUUygpLgotICAgIENsZWFyTm9uQWRIb2NUZXN0UmVzdWx0KCk7Ci0KLSAg
ICBjb25zdCBUaW1lSW5NaWxsaXMgc3RhcnQgPSBHZXRUaW1lSW5NaWxsaXMoKTsKLQotICAgIC8v
IFNodWZmbGVzIHRlc3QgY2FzZXMgYW5kIHRlc3RzIGlmIHJlcXVlc3RlZC4KLSAgICBpZiAoaGFz
X3Rlc3RzX3RvX3J1biAmJiBHVEVTVF9GTEFHKHNodWZmbGUpKSB7Ci0gICAgICByYW5kb20oKS0+
UmVzZWVkKHJhbmRvbV9zZWVkXyk7Ci0gICAgICAvLyBUaGlzIHNob3VsZCBiZSBkb25lIGJlZm9y
ZSBjYWxsaW5nIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KCksCi0gICAgICAvLyBzdWNoIHRoYXQgYSB0
ZXN0IGV2ZW50IGxpc3RlbmVyIGNhbiBzZWUgdGhlIGFjdHVhbCB0ZXN0IG9yZGVyCi0gICAgICAv
LyBpbiB0aGUgZXZlbnQuCi0gICAgICBTaHVmZmxlVGVzdHMoKTsKLSAgICB9Ci0KLSAgICAvLyBU
ZWxscyB0aGUgdW5pdCB0ZXN0IGV2ZW50IGxpc3RlbmVycyB0aGF0IHRoZSB0ZXN0cyBhcmUgYWJv
dXQgdG8gc3RhcnQuCi0gICAgcmVwZWF0ZXItPk9uVGVzdEl0ZXJhdGlvblN0YXJ0KCpwYXJlbnRf
LCBpKTsKLQotICAgIC8vIFJ1bnMgZWFjaCB0ZXN0IGNhc2UgaWYgdGhlcmUgaXMgYXQgbGVhc3Qg
b25lIHRlc3QgdG8gcnVuLgotICAgIGlmIChoYXNfdGVzdHNfdG9fcnVuKSB7Ci0gICAgICAvLyBT
ZXRzIHVwIGFsbCBlbnZpcm9ubWVudHMgYmVmb3JlaGFuZC4KLSAgICAgIHJlcGVhdGVyLT5PbkVu
dmlyb25tZW50c1NldFVwU3RhcnQoKnBhcmVudF8pOwotICAgICAgRm9yRWFjaChlbnZpcm9ubWVu
dHNfLCBTZXRVcEVudmlyb25tZW50KTsKLSAgICAgIHJlcGVhdGVyLT5PbkVudmlyb25tZW50c1Nl
dFVwRW5kKCpwYXJlbnRfKTsKLQotICAgICAgLy8gUnVucyB0aGUgdGVzdHMgb25seSBpZiB0aGVy
ZSB3YXMgbm8gZmF0YWwgZmFpbHVyZSBkdXJpbmcgZ2xvYmFsCi0gICAgICAvLyBzZXQtdXAuCi0g
ICAgICBpZiAoIVRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7Ci0gICAgICAgIGZvciAoaW50IHRl
c3RfaW5kZXggPSAwOyB0ZXN0X2luZGV4IDwgdG90YWxfdGVzdF9jYXNlX2NvdW50KCk7Ci0gICAg
ICAgICAgICAgdGVzdF9pbmRleCsrKSB7Ci0gICAgICAgICAgR2V0TXV0YWJsZVRlc3RDYXNlKHRl
c3RfaW5kZXgpLT5SdW4oKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBUZWFycyBk
b3duIGFsbCBlbnZpcm9ubWVudHMgaW4gcmV2ZXJzZSBvcmRlciBhZnRlcndhcmRzLgotICAgICAg
cmVwZWF0ZXItPk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCgqcGFyZW50Xyk7Ci0gICAgICBz
dGQ6OmZvcl9lYWNoKGVudmlyb25tZW50c18ucmJlZ2luKCksIGVudmlyb25tZW50c18ucmVuZCgp
LAotICAgICAgICAgICAgICAgICAgICBUZWFyRG93bkVudmlyb25tZW50KTsKLSAgICAgIHJlcGVh
dGVyLT5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kKCpwYXJlbnRfKTsKLSAgICB9Ci0KLSAgICBl
bGFwc2VkX3RpbWVfID0gR2V0VGltZUluTWlsbGlzKCkgLSBzdGFydDsKLQotICAgIC8vIFRlbGxz
IHRoZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXIgdGhhdCB0aGUgdGVzdHMgaGF2ZSBqdXN0IGZp
bmlzaGVkLgotICAgIHJlcGVhdGVyLT5PblRlc3RJdGVyYXRpb25FbmQoKnBhcmVudF8sIGkpOwot
Ci0gICAgLy8gR2V0cyB0aGUgcmVzdWx0IGFuZCBjbGVhcnMgaXQuCi0gICAgaWYgKCFQYXNzZWQo
KSkgewotICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICAvLyBSZXN0b3JlcyB0aGUg
b3JpZ2luYWwgdGVzdCBvcmRlciBhZnRlciB0aGUgaXRlcmF0aW9uLiAgVGhpcwotICAgIC8vIGFs
bG93cyB0aGUgdXNlciB0byBxdWlja2x5IHJlcHJvIGEgZmFpbHVyZSB0aGF0IGhhcHBlbnMgaW4g
dGhlCi0gICAgLy8gTi10aCBpdGVyYXRpb24gd2l0aG91dCByZXBlYXRpbmcgdGhlIGZpcnN0IChO
IC0gMSkgaXRlcmF0aW9ucy4KLSAgICAvLyBUaGlzIGlzIG5vdCBlbmNsb3NlZCBpbiAiaWYgKEdU
RVNUX0ZMQUcoc2h1ZmZsZSkpIHsgLi4uIH0iLCBpbgotICAgIC8vIGNhc2UgdGhlIHVzZXIgc29t
ZWhvdyBjaGFuZ2VzIHRoZSB2YWx1ZSBvZiB0aGUgZmxhZyBzb21ld2hlcmUKLSAgICAvLyAoaXQn
cyBhbHdheXMgc2FmZSB0byB1bnNodWZmbGUgdGhlIHRlc3RzKS4KLSAgICBVbnNodWZmbGVUZXN0
cygpOwotCi0gICAgaWYgKEdURVNUX0ZMQUcoc2h1ZmZsZSkpIHsKLSAgICAgIC8vIFBpY2tzIGEg
bmV3IHJhbmRvbSBzZWVkIGZvciBlYWNoIGl0ZXJhdGlvbi4KLSAgICAgIHJhbmRvbV9zZWVkXyA9
IEdldE5leHRSYW5kb21TZWVkKHJhbmRvbV9zZWVkXyk7Ci0gICAgfQotICB9Ci0KLSAgcmVwZWF0
ZXItPk9uVGVzdFByb2dyYW1FbmQoKnBhcmVudF8pOwotCi0gIHJldHVybiAhZmFpbGVkOwotfQot
Ci0vLyBSZWFkcyB0aGUgR1RFU1RfU0hBUkRfU1RBVFVTX0ZJTEUgZW52aXJvbm1lbnQgdmFyaWFi
bGUsIGFuZCBjcmVhdGVzIHRoZSBmaWxlCi0vLyBpZiB0aGUgdmFyaWFibGUgaXMgcHJlc2VudC4g
SWYgYSBmaWxlIGFscmVhZHkgZXhpc3RzIGF0IHRoaXMgbG9jYXRpb24sIHRoaXMKLS8vIGZ1bmN0
aW9uIHdpbGwgd3JpdGUgb3ZlciBpdC4gSWYgdGhlIHZhcmlhYmxlIGlzIHByZXNlbnQsIGJ1dCB0
aGUgZmlsZSBjYW5ub3QKLS8vIGJlIGNyZWF0ZWQsIHByaW50cyBhbiBlcnJvciBhbmQgZXhpdHMu
Ci12b2lkIFdyaXRlVG9TaGFyZFN0YXR1c0ZpbGVJZk5lZWRlZCgpIHsKLSAgY29uc3QgY2hhciog
Y29uc3QgdGVzdF9zaGFyZF9maWxlID0gcG9zaXg6OkdldEVudihrVGVzdFNoYXJkU3RhdHVzRmls
ZSk7Ci0gIGlmICh0ZXN0X3NoYXJkX2ZpbGUgIT0gTlVMTCkgewotICAgIEZJTEUqIGNvbnN0IGZp
bGUgPSBwb3NpeDo6Rk9wZW4odGVzdF9zaGFyZF9maWxlLCAidyIpOwotICAgIGlmIChmaWxlID09
IE5VTEwpIHsKLSAgICAgIENvbG9yZWRQcmludGYoQ09MT1JfUkVELAotICAgICAgICAgICAgICAg
ICAgICAiQ291bGQgbm90IHdyaXRlIHRvIHRoZSB0ZXN0IHNoYXJkIHN0YXR1cyBmaWxlIFwiJXNc
IiAiCi0gICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZWQgYnkgdGhlICVzIGVudmlyb25tZW50
IHZhcmlhYmxlLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgdGVzdF9zaGFyZF9maWxlLCBrVGVz
dFNoYXJkU3RhdHVzRmlsZSk7Ci0gICAgICBmZmx1c2goc3Rkb3V0KTsKLSAgICAgIGV4aXQoRVhJ
VF9GQUlMVVJFKTsKLSAgICB9Ci0gICAgZmNsb3NlKGZpbGUpOwotICB9Ci19Ci0KLS8vIENoZWNr
cyB3aGV0aGVyIHNoYXJkaW5nIGlzIGVuYWJsZWQgYnkgZXhhbWluaW5nIHRoZSByZWxldmFudAot
Ly8gZW52aXJvbm1lbnQgdmFyaWFibGUgdmFsdWVzLiBJZiB0aGUgdmFyaWFibGVzIGFyZSBwcmVz
ZW50LAotLy8gYnV0IGluY29uc2lzdGVudCAoaS5lLiwgc2hhcmRfaW5kZXggPj0gdG90YWxfc2hh
cmRzKSwgcHJpbnRzCi0vLyBhbiBlcnJvciBhbmQgZXhpdHMuIElmIGluX3N1YnByb2Nlc3NfZm9y
X2RlYXRoX3Rlc3QsIHNoYXJkaW5nIGlzCi0vLyBkaXNhYmxlZCBiZWNhdXNlIGl0IG11c3Qgb25s
eSBiZSBhcHBsaWVkIHRvIHRoZSBvcmlnaW5hbCB0ZXN0Ci0vLyBwcm9jZXNzLiBPdGhlcndpc2Us
IHdlIGNvdWxkIGZpbHRlciBvdXQgZGVhdGggdGVzdHMgd2UgaW50ZW5kZWQgdG8gZXhlY3V0ZS4K
LWJvb2wgU2hvdWxkU2hhcmQoY29uc3QgY2hhciogdG90YWxfc2hhcmRzX2VudiwKLSAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogc2hhcmRfaW5kZXhfZW52LAotICAgICAgICAgICAgICAgICBi
b29sIGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QpIHsKLSAgaWYgKGluX3N1YnByb2Nlc3Nf
Zm9yX2RlYXRoX3Rlc3QpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBjb25zdCBJbnQz
MiB0b3RhbF9zaGFyZHMgPSBJbnQzMkZyb21FbnZPckRpZSh0b3RhbF9zaGFyZHNfZW52LCAtMSk7
Ci0gIGNvbnN0IEludDMyIHNoYXJkX2luZGV4ID0gSW50MzJGcm9tRW52T3JEaWUoc2hhcmRfaW5k
ZXhfZW52LCAtMSk7Ci0KLSAgaWYgKHRvdGFsX3NoYXJkcyA9PSAtMSAmJiBzaGFyZF9pbmRleCA9
PSAtMSkgewotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIGlmICh0b3RhbF9zaGFyZHMgPT0g
LTEgJiYgc2hhcmRfaW5kZXggIT0gLTEpIHsKLSAgICBjb25zdCBNZXNzYWdlIG1zZyA9IE1lc3Nh
Z2UoKQotICAgICAgPDwgIkludmFsaWQgZW52aXJvbm1lbnQgdmFyaWFibGVzOiB5b3UgaGF2ZSAi
Ci0gICAgICA8PCBrVGVzdFNoYXJkSW5kZXggPDwgIiA9ICIgPDwgc2hhcmRfaW5kZXgKLSAgICAg
IDw8ICIsIGJ1dCBoYXZlIGxlZnQgIiA8PCBrVGVzdFRvdGFsU2hhcmRzIDw8ICIgdW5zZXQuXG4i
OwotICAgIENvbG9yZWRQcmludGYoQ09MT1JfUkVELCAiJXMiLCBtc2cuR2V0U3RyaW5nKCkuY19z
dHIoKSk7Ci0gICAgZmZsdXNoKHN0ZG91dCk7Ci0gICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICB9
IGVsc2UgaWYgKHRvdGFsX3NoYXJkcyAhPSAtMSAmJiBzaGFyZF9pbmRleCA9PSAtMSkgewotICAg
IGNvbnN0IE1lc3NhZ2UgbXNnID0gTWVzc2FnZSgpCi0gICAgICA8PCAiSW52YWxpZCBlbnZpcm9u
bWVudCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKLSAgICAgIDw8IGtUZXN0VG90YWxTaGFyZHMgPDwg
IiA9ICIgPDwgdG90YWxfc2hhcmRzCi0gICAgICA8PCAiLCBidXQgaGF2ZSBsZWZ0ICIgPDwga1Rl
c3RTaGFyZEluZGV4IDw8ICIgdW5zZXQuXG4iOwotICAgIENvbG9yZWRQcmludGYoQ09MT1JfUkVE
LCAiJXMiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7Ci0gICAgZmZsdXNoKHN0ZG91dCk7Ci0g
ICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICB9IGVsc2UgaWYgKHNoYXJkX2luZGV4IDwgMCB8fCBz
aGFyZF9pbmRleCA+PSB0b3RhbF9zaGFyZHMpIHsKLSAgICBjb25zdCBNZXNzYWdlIG1zZyA9IE1l
c3NhZ2UoKQotICAgICAgPDwgIkludmFsaWQgZW52aXJvbm1lbnQgdmFyaWFibGVzOiB3ZSByZXF1
aXJlIDAgPD0gIgotICAgICAgPDwga1Rlc3RTaGFyZEluZGV4IDw8ICIgPCAiIDw8IGtUZXN0VG90
YWxTaGFyZHMKLSAgICAgIDw8ICIsIGJ1dCB5b3UgaGF2ZSAiIDw8IGtUZXN0U2hhcmRJbmRleCA8
PCAiPSIgPDwgc2hhcmRfaW5kZXgKLSAgICAgIDw8ICIsICIgPDwga1Rlc3RUb3RhbFNoYXJkcyA8
PCAiPSIgPDwgdG90YWxfc2hhcmRzIDw8ICIuXG4iOwotICAgIENvbG9yZWRQcmludGYoQ09MT1Jf
UkVELCAiJXMiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7Ci0gICAgZmZsdXNoKHN0ZG91dCk7
Ci0gICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICB9Ci0KLSAgcmV0dXJuIHRvdGFsX3NoYXJkcyA+
IDE7Ci19Ci0KLS8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdmFyIGFzIGFuIElu
dDMyLiBJZiBpdCBpcyB1bnNldCwKLS8vIHJldHVybnMgZGVmYXVsdF92YWwuIElmIGl0IGlzIG5v
dCBhbiBJbnQzMiwgcHJpbnRzIGFuIGVycm9yCi0vLyBhbmQgYWJvcnRzLgotSW50MzIgSW50MzJG
cm9tRW52T3JEaWUoY29uc3QgY2hhciogdmFyLCBJbnQzMiBkZWZhdWx0X3ZhbCkgewotICBjb25z
dCBjaGFyKiBzdHJfdmFsID0gcG9zaXg6OkdldEVudih2YXIpOwotICBpZiAoc3RyX3ZhbCA9PSBO
VUxMKSB7Ci0gICAgcmV0dXJuIGRlZmF1bHRfdmFsOwotICB9Ci0KLSAgSW50MzIgcmVzdWx0Owot
ICBpZiAoIVBhcnNlSW50MzIoTWVzc2FnZSgpIDw8ICJUaGUgdmFsdWUgb2YgZW52aXJvbm1lbnQg
dmFyaWFibGUgIiA8PCB2YXIsCi0gICAgICAgICAgICAgICAgICBzdHJfdmFsLCAmcmVzdWx0KSkg
ewotICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgfQotICByZXR1cm4gcmVzdWx0OwotfQotCi0v
LyBHaXZlbiB0aGUgdG90YWwgbnVtYmVyIG9mIHNoYXJkcywgdGhlIHNoYXJkIGluZGV4LCBhbmQg
dGhlIHRlc3QgaWQsCi0vLyByZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4g
b24gdGhpcyBzaGFyZC4gVGhlIHRlc3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1bmlx
dWUgbm9uLW5lZ2F0aXZlIGludGVnZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0Ci0vLyBtZXRob2Qu
IEFzc3VtZXMgdGhhdCAwIDw9IHNoYXJkX2luZGV4IDwgdG90YWxfc2hhcmRzLgotYm9vbCBTaG91
bGRSdW5UZXN0T25TaGFyZChpbnQgdG90YWxfc2hhcmRzLCBpbnQgc2hhcmRfaW5kZXgsIGludCB0
ZXN0X2lkKSB7Ci0gIHJldHVybiAodGVzdF9pZCAlIHRvdGFsX3NoYXJkcykgPT0gc2hhcmRfaW5k
ZXg7Ci19Ci0KLS8vIENvbXBhcmVzIHRoZSBuYW1lIG9mIGVhY2ggdGVzdCB3aXRoIHRoZSB1c2Vy
LXNwZWNpZmllZCBmaWx0ZXIgdG8KLS8vIGRlY2lkZSB3aGV0aGVyIHRoZSB0ZXN0IHNob3VsZCBi
ZSBydW4sIHRoZW4gcmVjb3JkcyB0aGUgcmVzdWx0IGluCi0vLyBlYWNoIFRlc3RDYXNlIGFuZCBU
ZXN0SW5mbyBvYmplY3QuCi0vLyBJZiBzaGFyZF90ZXN0cyA9PSB0cnVlLCBmdXJ0aGVyIGZpbHRl
cnMgdGVzdHMgYmFzZWQgb24gc2hhcmRpbmcKLS8vIHZhcmlhYmxlcyBpbiB0aGUgZW52aXJvbm1l
bnQgLSBzZWUKLS8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21h
c3Rlci9nb29nbGV0ZXN0L2RvY3MvQWR2YW5jZWRHdWlkZS5tZCAuCi0vLyBSZXR1cm5zIHRoZSBu
dW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91bGQgcnVuLgotaW50IFVuaXRUZXN0SW1wbDo6RmlsdGVy
VGVzdHMoUmVhY3Rpb25Ub1NoYXJkaW5nIHNoYXJkX3Rlc3RzKSB7Ci0gIGNvbnN0IEludDMyIHRv
dGFsX3NoYXJkcyA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09MID8KLSAg
ICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0VG90YWxTaGFyZHMsIC0xKSA6IC0xOwotICBjb25z
dCBJbnQzMiBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RP
Q09MID8KLSAgICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpIDogLTE7
Ci0KLSAgLy8gbnVtX3J1bm5hYmxlX3Rlc3RzIGFyZSB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQg
d2lsbAotICAvLyBydW4gYWNyb3NzIGFsbCBzaGFyZHMgKGkuZS4sIG1hdGNoIGZpbHRlciBhbmQg
YXJlIG5vdCBkaXNhYmxlZCkuCi0gIC8vIG51bV9zZWxlY3RlZF90ZXN0cyBhcmUgdGhlIG51bWJl
ciBvZiB0ZXN0cyB0byBiZSBydW4gb24KLSAgLy8gdGhpcyBzaGFyZC4KLSAgaW50IG51bV9ydW5u
YWJsZV90ZXN0cyA9IDA7Ci0gIGludCBudW1fc2VsZWN0ZWRfdGVzdHMgPSAwOwotICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNpemUoKTsgaSsrKSB7Ci0gICAgVGVzdENhc2Uq
IGNvbnN0IHRlc3RfY2FzZSA9IHRlc3RfY2FzZXNfW2ldOwotICAgIGNvbnN0IHN0ZDo6c3RyaW5n
ICZ0ZXN0X2Nhc2VfbmFtZSA9IHRlc3RfY2FzZS0+bmFtZSgpOwotICAgIHRlc3RfY2FzZS0+c2V0
X3Nob3VsZF9ydW4oZmFsc2UpOwotCi0gICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB0ZXN0X2Nh
c2UtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsKLSAgICAgIFRlc3RJbmZvKiBjb25z
dCB0ZXN0X2luZm8gPSB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KClbal07Ci0gICAgICBjb25z
dCBzdGQ6OnN0cmluZyB0ZXN0X25hbWUodGVzdF9pbmZvLT5uYW1lKCkpOwotICAgICAgLy8gQSB0
ZXN0IGlzIGRpc2FibGVkIGlmIHRlc3QgY2FzZSBuYW1lIG9yIHRlc3QgbmFtZSBtYXRjaGVzCi0g
ICAgICAvLyBrRGlzYWJsZVRlc3RGaWx0ZXIuCi0gICAgICBjb25zdCBib29sIGlzX2Rpc2FibGVk
ID0KLSAgICAgICAgICBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKHRl
c3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga0Rpc2FibGVUZXN0RmlsdGVyKSB8fAotICAgICAgICAgIGludGVybmFsOjpVbml0
VGVzdE9wdGlvbnM6Ok1hdGNoZXNGaWx0ZXIodGVzdF9uYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0Rpc2FibGVUZXN0RmlsdGVyKTsKLSAg
ICAgIHRlc3RfaW5mby0+aXNfZGlzYWJsZWRfID0gaXNfZGlzYWJsZWQ7Ci0KLSAgICAgIGNvbnN0
IGJvb2wgbWF0Y2hlc19maWx0ZXIgPQotICAgICAgICAgIGludGVybmFsOjpVbml0VGVzdE9wdGlv
bnM6OkZpbHRlck1hdGNoZXNUZXN0KHRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSk7Ci0gICAgICB0
ZXN0X2luZm8tPm1hdGNoZXNfZmlsdGVyXyA9IG1hdGNoZXNfZmlsdGVyOwotCi0gICAgICBjb25z
dCBib29sIGlzX3J1bm5hYmxlID0KLSAgICAgICAgICAoR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNh
YmxlZF90ZXN0cykgfHwgIWlzX2Rpc2FibGVkKSAmJgotICAgICAgICAgIG1hdGNoZXNfZmlsdGVy
OwotCi0gICAgICBjb25zdCBib29sIGlzX3NlbGVjdGVkID0gaXNfcnVubmFibGUgJiYKLSAgICAg
ICAgICAoc2hhcmRfdGVzdHMgPT0gSUdOT1JFX1NIQVJESU5HX1BST1RPQ09MIHx8Ci0gICAgICAg
ICAgIFNob3VsZFJ1blRlc3RPblNoYXJkKHRvdGFsX3NoYXJkcywgc2hhcmRfaW5kZXgsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9ydW5uYWJsZV90ZXN0cykpOwotCi0gICAg
ICBudW1fcnVubmFibGVfdGVzdHMgKz0gaXNfcnVubmFibGU7Ci0gICAgICBudW1fc2VsZWN0ZWRf
dGVzdHMgKz0gaXNfc2VsZWN0ZWQ7Ci0KLSAgICAgIHRlc3RfaW5mby0+c2hvdWxkX3J1bl8gPSBp
c19zZWxlY3RlZDsKLSAgICAgIHRlc3RfY2FzZS0+c2V0X3Nob3VsZF9ydW4odGVzdF9jYXNlLT5z
aG91bGRfcnVuKCkgfHwgaXNfc2VsZWN0ZWQpOwotICAgIH0KLSAgfQotICByZXR1cm4gbnVtX3Nl
bGVjdGVkX3Rlc3RzOwotfQotCi0vLyBQcmludHMgdGhlIGdpdmVuIEMtc3RyaW5nIG9uIGEgc2lu
Z2xlIGxpbmUgYnkgcmVwbGFjaW5nIGFsbCAnXG4nCi0vLyBjaGFyYWN0ZXJzIHdpdGggc3RyaW5n
ICJcXG4iLiAgSWYgdGhlIG91dHB1dCB0YWtlcyBtb3JlIHRoYW4KLS8vIG1heF9sZW5ndGggY2hh
cmFjdGVycywgb25seSBwcmludHMgdGhlIGZpcnN0IG1heF9sZW5ndGggY2hhcmFjdGVycwotLy8g
YW5kICIuLi4iLgotc3RhdGljIHZvaWQgUHJpbnRPbk9uZUxpbmUoY29uc3QgY2hhciogc3RyLCBp
bnQgbWF4X2xlbmd0aCkgewotICBpZiAoc3RyICE9IE5VTEwpIHsKLSAgICBmb3IgKGludCBpID0g
MDsgKnN0ciAhPSAnXDAnOyArK3N0cikgewotICAgICAgaWYgKGkgPj0gbWF4X2xlbmd0aCkgewot
ICAgICAgICBwcmludGYoIi4uLiIpOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICAgIGlm
ICgqc3RyID09ICdcbicpIHsKLSAgICAgICAgcHJpbnRmKCJcXG4iKTsKLSAgICAgICAgaSArPSAy
OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcHJpbnRmKCIlYyIsICpzdHIpOwotICAgICAgICAr
K2k7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8vIFByaW50cyB0aGUgbmFtZXMgb2YgdGhl
IHRlc3RzIG1hdGNoaW5nIHRoZSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIgZmxhZy4KLXZvaWQgVW5p
dFRlc3RJbXBsOjpMaXN0VGVzdHNNYXRjaGluZ0ZpbHRlcigpIHsKLSAgLy8gUHJpbnQgYXQgbW9z
dCB0aGlzIG1hbnkgY2hhcmFjdGVycyBmb3IgZWFjaCB0eXBlL3ZhbHVlIHBhcmFtZXRlci4KLSAg
Y29uc3QgaW50IGtNYXhQYXJhbUxlbmd0aCA9IDI1MDsKLQotICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHRlc3RfY2FzZXNfLnNpemUoKTsgaSsrKSB7Ci0gICAgY29uc3QgVGVzdENhc2UqIGNvbnN0
IHRlc3RfY2FzZSA9IHRlc3RfY2FzZXNfW2ldOwotICAgIGJvb2wgcHJpbnRlZF90ZXN0X2Nhc2Vf
bmFtZSA9IGZhbHNlOwotCi0gICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB0ZXN0X2Nhc2UtPnRl
c3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsKLSAgICAgIGNvbnN0IFRlc3RJbmZvKiBjb25z
dCB0ZXN0X2luZm8gPQotICAgICAgICAgIHRlc3RfY2FzZS0+dGVzdF9pbmZvX2xpc3QoKVtqXTsK
LSAgICAgIGlmICh0ZXN0X2luZm8tPm1hdGNoZXNfZmlsdGVyXykgewotICAgICAgICBpZiAoIXBy
aW50ZWRfdGVzdF9jYXNlX25hbWUpIHsKLSAgICAgICAgICBwcmludGVkX3Rlc3RfY2FzZV9uYW1l
ID0gdHJ1ZTsKLSAgICAgICAgICBwcmludGYoIiVzLiIsIHRlc3RfY2FzZS0+bmFtZSgpKTsKLSAg
ICAgICAgICBpZiAodGVzdF9jYXNlLT50eXBlX3BhcmFtKCkgIT0gTlVMTCkgewotICAgICAgICAg
ICAgcHJpbnRmKCIgICMgJXMgPSAiLCBrVHlwZVBhcmFtTGFiZWwpOwotICAgICAgICAgICAgLy8g
V2UgcHJpbnQgdGhlIHR5cGUgcGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxpbmUgdG8gbWFrZQotICAg
ICAgICAgICAgLy8gdGhlIG91dHB1dCBlYXN5IHRvIHBhcnNlIGJ5IGEgcHJvZ3JhbS4KLSAgICAg
ICAgICAgIFByaW50T25PbmVMaW5lKHRlc3RfY2FzZS0+dHlwZV9wYXJhbSgpLCBrTWF4UGFyYW1M
ZW5ndGgpOwotICAgICAgICAgIH0KLSAgICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgICAgIH0K
LSAgICAgICAgcHJpbnRmKCIgICVzIiwgdGVzdF9pbmZvLT5uYW1lKCkpOwotICAgICAgICBpZiAo
dGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpICE9IE5VTEwpIHsKLSAgICAgICAgICBwcmludGYoIiAg
IyAlcyA9ICIsIGtWYWx1ZVBhcmFtTGFiZWwpOwotICAgICAgICAgIC8vIFdlIHByaW50IHRoZSB2
YWx1ZSBwYXJhbWV0ZXIgb24gYSBzaW5nbGUgbGluZSB0byBtYWtlIHRoZQotICAgICAgICAgIC8v
IG91dHB1dCBlYXN5IHRvIHBhcnNlIGJ5IGEgcHJvZ3JhbS4KLSAgICAgICAgICBQcmludE9uT25l
TGluZSh0ZXN0X2luZm8tPnZhbHVlX3BhcmFtKCksIGtNYXhQYXJhbUxlbmd0aCk7Ci0gICAgICAg
IH0KLSAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgICAgfQotICAgIH0KLSAgfQotICBmZmx1c2go
c3Rkb3V0KTsKLX0KLQotLy8gU2V0cyB0aGUgT1Mgc3RhY2sgdHJhY2UgZ2V0dGVyLgotLy8KLS8v
IERvZXMgbm90aGluZyBpZiB0aGUgaW5wdXQgYW5kIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNl
IGdldHRlciBhcmUKLS8vIHRoZSBzYW1lOyBvdGhlcndpc2UsIGRlbGV0ZXMgdGhlIG9sZCBnZXR0
ZXIgYW5kIG1ha2VzIHRoZSBpbnB1dCB0aGUKLS8vIGN1cnJlbnQgZ2V0dGVyLgotdm9pZCBVbml0
VGVzdEltcGw6OnNldF9vc19zdGFja190cmFjZV9nZXR0ZXIoCi0gICAgT3NTdGFja1RyYWNlR2V0
dGVySW50ZXJmYWNlKiBnZXR0ZXIpIHsKLSAgaWYgKG9zX3N0YWNrX3RyYWNlX2dldHRlcl8gIT0g
Z2V0dGVyKSB7Ci0gICAgZGVsZXRlIG9zX3N0YWNrX3RyYWNlX2dldHRlcl87Ci0gICAgb3Nfc3Rh
Y2tfdHJhY2VfZ2V0dGVyXyA9IGdldHRlcjsKLSAgfQotfQotCi0vLyBSZXR1cm5zIHRoZSBjdXJy
ZW50IE9TIHN0YWNrIHRyYWNlIGdldHRlciBpZiBpdCBpcyBub3QgTlVMTDsKLS8vIG90aGVyd2lz
ZSwgY3JlYXRlcyBhbiBPc1N0YWNrVHJhY2VHZXR0ZXIsIG1ha2VzIGl0IHRoZSBjdXJyZW50Ci0v
LyBnZXR0ZXIsIGFuZCByZXR1cm5zIGl0LgotT3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlKiBV
bml0VGVzdEltcGw6Om9zX3N0YWNrX3RyYWNlX2dldHRlcigpIHsKLSAgaWYgKG9zX3N0YWNrX3Ry
YWNlX2dldHRlcl8gPT0gTlVMTCkgewotI2lmZGVmIEdURVNUX09TX1NUQUNLX1RSQUNFX0dFVFRF
Ul8KLSAgICBvc19zdGFja190cmFjZV9nZXR0ZXJfID0gbmV3IEdURVNUX09TX1NUQUNLX1RSQUNF
X0dFVFRFUl87Ci0jZWxzZQotICAgIG9zX3N0YWNrX3RyYWNlX2dldHRlcl8gPSBuZXcgT3NTdGFj
a1RyYWNlR2V0dGVyOwotI2VuZGlmICAvLyBHVEVTVF9PU19TVEFDS19UUkFDRV9HRVRURVJfCi0g
IH0KLQotICByZXR1cm4gb3Nfc3RhY2tfdHJhY2VfZ2V0dGVyXzsKLX0KLQotLy8gUmV0dXJucyB0
aGUgVGVzdFJlc3VsdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLCBvcgot
Ly8gdGhlIFRlc3RSZXN1bHQgZm9yIHRoZSBhZCBob2MgdGVzdCBpZiBubyB0ZXN0IGlzIHJ1bm5p
bmcuCi1UZXN0UmVzdWx0KiBVbml0VGVzdEltcGw6OmN1cnJlbnRfdGVzdF9yZXN1bHQoKSB7Ci0g
IHJldHVybiBjdXJyZW50X3Rlc3RfaW5mb18gPwotICAgICAgJihjdXJyZW50X3Rlc3RfaW5mb18t
PnJlc3VsdF8pIDogJmFkX2hvY190ZXN0X3Jlc3VsdF87Ci19Ci0KLS8vIFNodWZmbGVzIGFsbCB0
ZXN0IGNhc2VzLCBhbmQgdGhlIHRlc3RzIHdpdGhpbiBlYWNoIHRlc3QgY2FzZSwKLS8vIG1ha2lu
ZyBzdXJlIHRoYXQgZGVhdGggdGVzdHMgYXJlIHN0aWxsIHJ1biBmaXJzdC4KLXZvaWQgVW5pdFRl
c3RJbXBsOjpTaHVmZmxlVGVzdHMoKSB7Ci0gIC8vIFNodWZmbGVzIHRoZSBkZWF0aCB0ZXN0IGNh
c2VzLgotICBTaHVmZmxlUmFuZ2UocmFuZG9tKCksIDAsIGxhc3RfZGVhdGhfdGVzdF9jYXNlXyAr
IDEsICZ0ZXN0X2Nhc2VfaW5kaWNlc18pOwotCi0gIC8vIFNodWZmbGVzIHRoZSBub24tZGVhdGgg
dGVzdCBjYXNlcy4KLSAgU2h1ZmZsZVJhbmdlKHJhbmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3RfY2Fz
ZV8gKyAxLAotICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2VzXy5zaXpl
KCkpLCAmdGVzdF9jYXNlX2luZGljZXNfKTsKLQotICAvLyBTaHVmZmxlcyB0aGUgdGVzdHMgaW5z
aWRlIGVhY2ggdGVzdCBjYXNlLgotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNf
LnNpemUoKTsgaSsrKSB7Ci0gICAgdGVzdF9jYXNlc19baV0tPlNodWZmbGVUZXN0cyhyYW5kb20o
KSk7Ci0gIH0KLX0KLQotLy8gUmVzdG9yZXMgdGhlIHRlc3QgY2FzZXMgYW5kIHRlc3RzIHRvIHRo
ZWlyIG9yZGVyIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KLXZvaWQgVW5pdFRlc3RJbXBsOjpV
bnNodWZmbGVUZXN0cygpIHsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X2Nhc2VzXy5z
aXplKCk7IGkrKykgewotICAgIC8vIFVuc2h1ZmZsZXMgdGhlIHRlc3RzIGluIGVhY2ggdGVzdCBj
YXNlLgotICAgIHRlc3RfY2FzZXNfW2ldLT5VbnNodWZmbGVUZXN0cygpOwotICAgIC8vIFJlc2V0
cyB0aGUgaW5kZXggb2YgZWFjaCB0ZXN0IGNhc2UuCi0gICAgdGVzdF9jYXNlX2luZGljZXNfW2ld
ID0gc3RhdGljX2Nhc3Q8aW50PihpKTsKLSAgfQotfQotCi0vLyBSZXR1cm5zIHRoZSBjdXJyZW50
IE9TIHN0YWNrIHRyYWNlIGFzIGFuIHN0ZDo6c3RyaW5nLgotLy8KLS8vIFRoZSBtYXhpbXVtIG51
bWJlciBvZiBzdGFjayBmcmFtZXMgdG8gYmUgaW5jbHVkZWQgaXMgc3BlY2lmaWVkIGJ5Ci0vLyB0
aGUgZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGggZmxhZy4gIFRoZSBza2lwX2NvdW50IHBhcmFtZXRl
cgotLy8gc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgdG9wIGZyYW1lcyB0byBiZSBza2lwcGVkLCB3
aGljaCBkb2Vzbid0Ci0vLyBjb3VudCBhZ2FpbnN0IHRoZSBudW1iZXIgb2YgZnJhbWVzIHRvIGJl
IGluY2x1ZGVkLgotLy8KLS8vIEZvciBleGFtcGxlLCBpZiBGb28oKSBjYWxscyBCYXIoKSwgd2hp
Y2ggaW4gdHVybiBjYWxscwotLy8gR2V0Q3VycmVudE9zU3RhY2tUcmFjZUV4Y2VwdFRvcCguLi4s
IDEpLCBGb28oKSB3aWxsIGJlIGluY2x1ZGVkIGluCi0vLyB0aGUgdHJhY2UgYnV0IEJhcigpIGFu
ZCBHZXRDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9wKCkgd29uJ3QuCi1zdGQ6OnN0cmluZyBH
ZXRDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9wKFVuaXRUZXN0KiAvKnVuaXRfdGVzdCovLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2tpcF9jb3Vu
dCkgewotICAvLyBXZSBwYXNzIHNraXBfY291bnQgKyAxIHRvIHNraXAgdGhpcyB3cmFwcGVyIGZ1
bmN0aW9uIGluIGFkZGl0aW9uCi0gIC8vIHRvIHdoYXQgdGhlIHVzZXIgcmVhbGx5IHdhbnRzIHRv
IHNraXAuCi0gIHJldHVybiBHZXRVbml0VGVzdEltcGwoKS0+Q3VycmVudE9zU3RhY2tUcmFjZUV4
Y2VwdFRvcChza2lwX2NvdW50ICsgMSk7Ci19Ci0KLS8vIFVzZWQgYnkgdGhlIEdURVNUX1NVUFBS
RVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18gbWFjcm8gdG8KLS8vIHN1cHByZXNz
IHVucmVhY2hhYmxlIGNvZGUgd2FybmluZ3MuCi1uYW1lc3BhY2UgewotY2xhc3MgQ2xhc3NVbmlx
dWVUb0Fsd2F5c1RydWUge307Ci19Ci0KLWJvb2wgSXNUcnVlKGJvb2wgY29uZGl0aW9uKSB7IHJl
dHVybiBjb25kaXRpb247IH0KLQotYm9vbCBBbHdheXNUcnVlKCkgewotI2lmIEdURVNUX0hBU19F
WENFUFRJT05TCi0gIC8vIFRoaXMgY29uZGl0aW9uIGlzIGFsd2F5cyBmYWxzZSBzbyBBbHdheXNU
cnVlKCkgbmV2ZXIgYWN0dWFsbHkgdGhyb3dzLAotICAvLyBidXQgaXQgbWFrZXMgdGhlIGNvbXBp
bGVyIHRoaW5rIHRoYXQgaXQgbWF5IHRocm93LgotICBpZiAoSXNUcnVlKGZhbHNlKSkKLSAgICB0
aHJvdyBDbGFzc1VuaXF1ZVRvQWx3YXlzVHJ1ZSgpOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhD
RVBUSU9OUwotICByZXR1cm4gdHJ1ZTsKLX0KLQotLy8gSWYgKnBzdHIgc3RhcnRzIHdpdGggdGhl
IGdpdmVuIHByZWZpeCwgbW9kaWZpZXMgKnBzdHIgdG8gYmUgcmlnaHQKLS8vIHBhc3QgdGhlIHBy
ZWZpeCBhbmQgcmV0dXJucyB0cnVlOyBvdGhlcndpc2UgbGVhdmVzICpwc3RyIHVuY2hhbmdlZAot
Ly8gYW5kIHJldHVybnMgZmFsc2UuICBOb25lIG9mIHBzdHIsICpwc3RyLCBhbmQgcHJlZml4IGNh
biBiZSBOVUxMLgotYm9vbCBTa2lwUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgY2hh
cioqIHBzdHIpIHsKLSAgY29uc3Qgc2l6ZV90IHByZWZpeF9sZW4gPSBzdHJsZW4ocHJlZml4KTsK
LSAgaWYgKHN0cm5jbXAoKnBzdHIsIHByZWZpeCwgcHJlZml4X2xlbikgPT0gMCkgewotICAgICpw
c3RyICs9IHByZWZpeF9sZW47Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLSAgcmV0dXJuIGZhbHNl
OwotfQotCi0vLyBQYXJzZXMgYSBzdHJpbmcgYXMgYSBjb21tYW5kIGxpbmUgZmxhZy4gIFRoZSBz
dHJpbmcgc2hvdWxkIGhhdmUKLS8vIHRoZSBmb3JtYXQgIi0tZmxhZz12YWx1ZSIuICBXaGVuIGRl
Zl9vcHRpb25hbCBpcyB0cnVlLCB0aGUgIj12YWx1ZSIKLS8vIHBhcnQgY2FuIGJlIG9taXR0ZWQu
Ci0vLwotLy8gUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZsYWcsIG9yIE5VTEwgaWYgdGhlIHBh
cnNpbmcgZmFpbGVkLgotc3RhdGljIGNvbnN0IGNoYXIqIFBhcnNlRmxhZ1ZhbHVlKGNvbnN0IGNo
YXIqIHN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBm
bGFnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGVmX29wdGlvbmFs
KSB7Ci0gIC8vIHN0ciBhbmQgZmxhZyBtdXN0IG5vdCBiZSBOVUxMLgotICBpZiAoc3RyID09IE5V
TEwgfHwgZmxhZyA9PSBOVUxMKSByZXR1cm4gTlVMTDsKLQotICAvLyBUaGUgZmxhZyBtdXN0IHN0
YXJ0IHdpdGggIi0tIiBmb2xsb3dlZCBieSBHVEVTVF9GTEFHX1BSRUZJWF8uCi0gIGNvbnN0IHN0
ZDo6c3RyaW5nIGZsYWdfc3RyID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJ
WF8gKyBmbGFnOwotICBjb25zdCBzaXplX3QgZmxhZ19sZW4gPSBmbGFnX3N0ci5sZW5ndGgoKTsK
LSAgaWYgKHN0cm5jbXAoc3RyLCBmbGFnX3N0ci5jX3N0cigpLCBmbGFnX2xlbikgIT0gMCkgcmV0
dXJuIE5VTEw7Ci0KLSAgLy8gU2tpcHMgdGhlIGZsYWcgbmFtZS4KLSAgY29uc3QgY2hhciogZmxh
Z19lbmQgPSBzdHIgKyBmbGFnX2xlbjsKLQotICAvLyBXaGVuIGRlZl9vcHRpb25hbCBpcyB0cnVl
LCBpdCdzIE9LIHRvIG5vdCBoYXZlIGEgIj12YWx1ZSIgcGFydC4KLSAgaWYgKGRlZl9vcHRpb25h
bCAmJiAoZmxhZ19lbmRbMF0gPT0gJ1wwJykpIHsKLSAgICByZXR1cm4gZmxhZ19lbmQ7Ci0gIH0K
LQotICAvLyBJZiBkZWZfb3B0aW9uYWwgaXMgdHJ1ZSBhbmQgdGhlcmUgYXJlIG1vcmUgY2hhcmFj
dGVycyBhZnRlciB0aGUKLSAgLy8gZmxhZyBuYW1lLCBvciBpZiBkZWZfb3B0aW9uYWwgaXMgZmFs
c2UsIHRoZXJlIG11c3QgYmUgYSAnPScgYWZ0ZXIKLSAgLy8gdGhlIGZsYWcgbmFtZS4KLSAgaWYg
KGZsYWdfZW5kWzBdICE9ICc9JykgcmV0dXJuIE5VTEw7Ci0KLSAgLy8gUmV0dXJucyB0aGUgc3Ry
aW5nIGFmdGVyICI9Ii4KLSAgcmV0dXJuIGZsYWdfZW5kICsgMTsKLX0KLQotLy8gUGFyc2VzIGEg
c3RyaW5nIGZvciBhIGJvb2wgZmxhZywgaW4gdGhlIGZvcm0gb2YgZWl0aGVyCi0vLyAiLS1mbGFn
PXZhbHVlIiBvciAiLS1mbGFnIi4KLS8vCi0vLyBJbiB0aGUgZm9ybWVyIGNhc2UsIHRoZSB2YWx1
ZSBpcyB0YWtlbiBhcyB0cnVlIGFzIGxvbmcgYXMgaXQgZG9lcwotLy8gbm90IHN0YXJ0IHdpdGgg
JzAnLCAnZicsIG9yICdGJy4KLS8vCi0vLyBJbiB0aGUgbGF0dGVyIGNhc2UsIHRoZSB2YWx1ZSBp
cyB0YWtlbiBhcyB0cnVlLgotLy8KLS8vIE9uIHN1Y2Nlc3MsIHN0b3JlcyB0aGUgdmFsdWUgb2Yg
dGhlIGZsYWcgaW4gKnZhbHVlLCBhbmQgcmV0dXJucwotLy8gdHJ1ZS4gIE9uIGZhaWx1cmUsIHJl
dHVybnMgZmFsc2Ugd2l0aG91dCBjaGFuZ2luZyAqdmFsdWUuCi1zdGF0aWMgYm9vbCBQYXJzZUJv
b2xGbGFnKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywgYm9vbCogdmFsdWUpIHsK
LSAgLy8gR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGZsYWcgYXMgYSBzdHJpbmcuCi0gIGNvbnN0IGNo
YXIqIGNvbnN0IHZhbHVlX3N0ciA9IFBhcnNlRmxhZ1ZhbHVlKHN0ciwgZmxhZywgdHJ1ZSk7Ci0K
LSAgLy8gQWJvcnRzIGlmIHRoZSBwYXJzaW5nIGZhaWxlZC4KLSAgaWYgKHZhbHVlX3N0ciA9PSBO
VUxMKSByZXR1cm4gZmFsc2U7Ci0KLSAgLy8gQ29udmVydHMgdGhlIHN0cmluZyB2YWx1ZSB0byBh
IGJvb2wuCi0gICp2YWx1ZSA9ICEoKnZhbHVlX3N0ciA9PSAnMCcgfHwgKnZhbHVlX3N0ciA9PSAn
ZicgfHwgKnZhbHVlX3N0ciA9PSAnRicpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotLy8gUGFyc2Vz
IGEgc3RyaW5nIGZvciBhbiBJbnQzMiBmbGFnLCBpbiB0aGUgZm9ybSBvZgotLy8gIi0tZmxhZz12
YWx1ZSIuCi0vLwotLy8gT24gc3VjY2Vzcywgc3RvcmVzIHRoZSB2YWx1ZSBvZiB0aGUgZmxhZyBp
biAqdmFsdWUsIGFuZCByZXR1cm5zCi0vLyB0cnVlLiAgT24gZmFpbHVyZSwgcmV0dXJucyBmYWxz
ZSB3aXRob3V0IGNoYW5naW5nICp2YWx1ZS4KLWJvb2wgUGFyc2VJbnQzMkZsYWcoY29uc3QgY2hh
ciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBJbnQzMiogdmFsdWUpIHsKLSAgLy8gR2V0cyB0aGUg
dmFsdWUgb2YgdGhlIGZsYWcgYXMgYSBzdHJpbmcuCi0gIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVl
X3N0ciA9IFBhcnNlRmxhZ1ZhbHVlKHN0ciwgZmxhZywgZmFsc2UpOwotCi0gIC8vIEFib3J0cyBp
ZiB0aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlmICh2YWx1ZV9zdHIgPT0gTlVMTCkgcmV0dXJuIGZh
bHNlOwotCi0gIC8vIFNldHMgKnZhbHVlIHRvIHRoZSB2YWx1ZSBvZiB0aGUgZmxhZy4KLSAgcmV0
dXJuIFBhcnNlSW50MzIoTWVzc2FnZSgpIDw8ICJUaGUgdmFsdWUgb2YgZmxhZyAtLSIgPDwgZmxh
ZywKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVfc3RyLCB2YWx1ZSk7Ci19Ci0KLS8vIFBhcnNl
cyBhIHN0cmluZyBmb3IgYSBzdHJpbmcgZmxhZywgaW4gdGhlIGZvcm0gb2YKLS8vICItLWZsYWc9
dmFsdWUiLgotLy8KLS8vIE9uIHN1Y2Nlc3MsIHN0b3JlcyB0aGUgdmFsdWUgb2YgdGhlIGZsYWcg
aW4gKnZhbHVlLCBhbmQgcmV0dXJucwotLy8gdHJ1ZS4gIE9uIGZhaWx1cmUsIHJldHVybnMgZmFs
c2Ugd2l0aG91dCBjaGFuZ2luZyAqdmFsdWUuCi1zdGF0aWMgYm9vbCBQYXJzZVN0cmluZ0ZsYWco
Y29uc3QgY2hhciogc3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IGZsYWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcqIHZhbHVlKSB7
Ci0gIC8vIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGFzIGEgc3RyaW5nLgotICBjb25zdCBj
aGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIsIGZsYWcsIGZhbHNlKTsK
LQotICAvLyBBYm9ydHMgaWYgdGhlIHBhcnNpbmcgZmFpbGVkLgotICBpZiAodmFsdWVfc3RyID09
IE5VTEwpIHJldHVybiBmYWxzZTsKLQotICAvLyBTZXRzICp2YWx1ZSB0byB0aGUgdmFsdWUgb2Yg
dGhlIGZsYWcuCi0gICp2YWx1ZSA9IHZhbHVlX3N0cjsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLS8v
IERldGVybWluZXMgd2hldGhlciBhIHN0cmluZyBoYXMgYSBwcmVmaXggdGhhdCBHb29nbGUgVGVz
dCB1c2VzIGZvciBpdHMKLS8vIGZsYWdzLCBpLmUuLCBzdGFydHMgd2l0aCBHVEVTVF9GTEFHX1BS
RUZJWF8gb3IgR1RFU1RfRkxBR19QUkVGSVhfREFTSF8uCi0vLyBJZiBHb29nbGUgVGVzdCBkZXRl
Y3RzIHRoYXQgYSBjb21tYW5kIGxpbmUgZmxhZyBoYXMgaXRzIHByZWZpeCBidXQgaXMgbm90Ci0v
LyByZWNvZ25pemVkLCBpdCB3aWxsIHByaW50IGl0cyBoZWxwIG1lc3NhZ2UuIEZsYWdzIHN0YXJ0
aW5nIHdpdGgKLS8vIEdURVNUX0lOVEVSTkFMX1BSRUZJWF8gZm9sbG93ZWQgYnkgImludGVybmFs
XyIgYXJlIGNvbnNpZGVyZWQgR29vZ2xlIFRlc3QKLS8vIGludGVybmFsIGZsYWdzIGFuZCBkbyBu
b3QgdHJpZ2dlciB0aGUgaGVscCBtZXNzYWdlLgotc3RhdGljIGJvb2wgSGFzR29vZ2xlVGVzdEZs
YWdQcmVmaXgoY29uc3QgY2hhciogc3RyKSB7Ci0gIHJldHVybiAoU2tpcFByZWZpeCgiLS0iLCAm
c3RyKSB8fAotICAgICAgICAgIFNraXBQcmVmaXgoIi0iLCAmc3RyKSB8fAotICAgICAgICAgIFNr
aXBQcmVmaXgoIi8iLCAmc3RyKSkgJiYKLSAgICAgICAgICFTa2lwUHJlZml4KEdURVNUX0ZMQUdf
UFJFRklYXyAiaW50ZXJuYWxfIiwgJnN0cikgJiYKLSAgICAgICAgIChTa2lwUHJlZml4KEdURVNU
X0ZMQUdfUFJFRklYXywgJnN0cikgfHwKLSAgICAgICAgICBTa2lwUHJlZml4KEdURVNUX0ZMQUdf
UFJFRklYX0RBU0hfLCAmc3RyKSk7Ci19Ci0KLS8vIFByaW50cyBhIHN0cmluZyBjb250YWluaW5n
IGNvZGUtZW5jb2RlZCB0ZXh0LiAgVGhlIGZvbGxvd2luZyBlc2NhcGUKLS8vIHNlcXVlbmNlcyBj
YW4gYmUgdXNlZCBpbiB0aGUgc3RyaW5nIHRvIGNvbnRyb2wgdGhlIHRleHQgY29sb3I6Ci0vLwot
Ly8gICBAQCAgICBwcmludHMgYSBzaW5nbGUgJ0AnIGNoYXJhY3Rlci4KLS8vICAgQFIgICAgY2hh
bmdlcyB0aGUgY29sb3IgdG8gcmVkLgotLy8gICBARyAgICBjaGFuZ2VzIHRoZSBjb2xvciB0byBn
cmVlbi4KLS8vICAgQFkgICAgY2hhbmdlcyB0aGUgY29sb3IgdG8geWVsbG93LgotLy8gICBARCAg
ICBjaGFuZ2VzIHRvIHRoZSBkZWZhdWx0IHRlcm1pbmFsIHRleHQgY29sb3IuCi0vLwotLy8gVE9E
Tyh3YW5AZ29vZ2xlLmNvbSk6IFdyaXRlIHRlc3RzIGZvciB0aGlzIG9uY2Ugd2UgYWRkIHN0ZG91
dAotLy8gY2FwdHVyaW5nIHRvIEdvb2dsZSBUZXN0Lgotc3RhdGljIHZvaWQgUHJpbnRDb2xvckVu
Y29kZWQoY29uc3QgY2hhciogc3RyKSB7Ci0gIEdUZXN0Q29sb3IgY29sb3IgPSBDT0xPUl9ERUZB
VUxUOyAgLy8gVGhlIGN1cnJlbnQgY29sb3IuCi0KLSAgLy8gQ29uY2VwdHVhbGx5LCB3ZSBzcGxp
dCB0aGUgc3RyaW5nIGludG8gc2VnbWVudHMgZGl2aWRlZCBieSBlc2NhcGUKLSAgLy8gc2VxdWVu
Y2VzLiAgVGhlbiB3ZSBwcmludCBvbmUgc2VnbWVudCBhdCBhIHRpbWUuICBBdCB0aGUgZW5kIG9m
Ci0gIC8vIGVhY2ggaXRlcmF0aW9uLCB0aGUgc3RyIHBvaW50ZXIgYWR2YW5jZXMgdG8gdGhlIGJl
Z2lubmluZyBvZiB0aGUKLSAgLy8gbmV4dCBzZWdtZW50LgotICBmb3IgKDs7KSB7Ci0gICAgY29u
c3QgY2hhciogcCA9IHN0cmNocihzdHIsICdAJyk7Ci0gICAgaWYgKHAgPT0gTlVMTCkgewotICAg
ICAgQ29sb3JlZFByaW50Zihjb2xvciwgIiVzIiwgc3RyKTsKLSAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBDb2xvcmVkUHJpbnRmKGNvbG9yLCAiJXMiLCBzdGQ6OnN0cmluZyhzdHIsIHApLmNf
c3RyKCkpOwotCi0gICAgY29uc3QgY2hhciBjaCA9IHBbMV07Ci0gICAgc3RyID0gcCArIDI7Ci0g
ICAgaWYgKGNoID09ICdAJykgewotICAgICAgQ29sb3JlZFByaW50Zihjb2xvciwgIkAiKTsKLSAg
ICB9IGVsc2UgaWYgKGNoID09ICdEJykgewotICAgICAgY29sb3IgPSBDT0xPUl9ERUZBVUxUOwot
ICAgIH0gZWxzZSBpZiAoY2ggPT0gJ1InKSB7Ci0gICAgICBjb2xvciA9IENPTE9SX1JFRDsKLSAg
ICB9IGVsc2UgaWYgKGNoID09ICdHJykgewotICAgICAgY29sb3IgPSBDT0xPUl9HUkVFTjsKLSAg
ICB9IGVsc2UgaWYgKGNoID09ICdZJykgewotICAgICAgY29sb3IgPSBDT0xPUl9ZRUxMT1c7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIC0tc3RyOwotICAgIH0KLSAgfQotfQotCi1zdGF0aWMgY29uc3Qg
Y2hhciBrQ29sb3JFbmNvZGVkSGVscE1lc3NhZ2VbXSA9Ci0iVGhpcyBwcm9ncmFtIGNvbnRhaW5z
IHRlc3RzIHdyaXR0ZW4gdXNpbmcgIiBHVEVTVF9OQU1FXyAiLiBZb3UgY2FuIHVzZSB0aGVcbiIK
LSJmb2xsb3dpbmcgY29tbWFuZCBsaW5lIGZsYWdzIHRvIGNvbnRyb2wgaXRzIGJlaGF2aW9yOlxu
IgotIlxuIgotIlRlc3QgU2VsZWN0aW9uOlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhf
ICJsaXN0X3Rlc3RzQERcbiIKLSIgICAgICBMaXN0IHRoZSBuYW1lcyBvZiBhbGwgdGVzdHMgaW5z
dGVhZCBvZiBydW5uaW5nIHRoZW0uIFRoZSBuYW1lIG9mXG4iCi0iICAgICAgVEVTVChGb28sIEJh
cikgaXMgXCJGb28uQmFyXCIuXG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImZpbHRl
cj1AWVBPU1RJVkVfUEFUVEVSTlMiCi0gICAgIltARy1AWU5FR0FUSVZFX1BBVFRFUk5TXUBEXG4i
Ci0iICAgICAgUnVuIG9ubHkgdGhlIHRlc3RzIHdob3NlIG5hbWUgbWF0Y2hlcyBvbmUgb2YgdGhl
IHBvc2l0aXZlIHBhdHRlcm5zIGJ1dFxuIgotIiAgICAgIG5vbmUgb2YgdGhlIG5lZ2F0aXZlIHBh
dHRlcm5zLiAnPycgbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlcjsgJyonXG4iCi0iICAgICAg
bWF0Y2hlcyBhbnkgc3Vic3RyaW5nOyAnOicgc2VwYXJhdGVzIHR3byBwYXR0ZXJucy5cbiIKLSIg
IEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiYWxzb19ydW5fZGlzYWJsZWRfdGVzdHNARFxuIgot
IiAgICAgIFJ1biBhbGwgZGlzYWJsZWQgdGVzdHMgdG9vLlxuIgotIlxuIgotIlRlc3QgRXhlY3V0
aW9uOlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJyZXBlYXQ9QFlbQ09VTlRdQERc
biIKLSIgICAgICBSdW4gdGhlIHRlc3RzIHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNvdW50
IHRvIHJlcGVhdCBmb3JldmVyLlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJzaHVm
ZmxlQERcbiIKLSIgICAgICBSYW5kb21pemUgdGVzdHMnIG9yZGVycyBvbiBldmVyeSBpdGVyYXRp
b24uXG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gInJhbmRvbV9zZWVkPUBZW05VTUJF
Ul1ARFxuIgotIiAgICAgIFJhbmRvbSBudW1iZXIgc2VlZCB0byB1c2UgZm9yIHNodWZmbGluZyB0
ZXN0IG9yZGVycyAoYmV0d2VlbiAxIGFuZFxuIgotIiAgICAgIDk5OTk5LCBvciAwIHRvIHVzZSBh
IHNlZWQgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSkuXG4iCi0iXG4iCi0iVGVzdCBPdXRwdXQ6
XG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImNvbG9yPUBZKEBHeWVzQFl8QEdub0BZ
fEBHYXV0b0BZKUBEXG4iCi0iICAgICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQuIFRo
ZSBkZWZhdWx0IGlzIEBHYXV0b0BELlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJw
cmludF90aW1lPTBARFxuIgotIiAgICAgIERvbid0IHByaW50IHRoZSBlbGFwc2VkIHRpbWUgb2Yg
ZWFjaCB0ZXN0LlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJvdXRwdXQ9eG1sQFlb
QEc6QFlESVJFQ1RPUllfUEFUSEBHIgotICAgIEdURVNUX1BBVEhfU0VQXyAiQFl8QEc6QFlGSUxF
X1BBVEhdQERcbiIKLSIgICAgICBHZW5lcmF0ZSBhbiBYTUwgcmVwb3J0IGluIHRoZSBnaXZlbiBk
aXJlY3Rvcnkgb3Igd2l0aCB0aGUgZ2l2ZW4gZmlsZVxuIgotIiAgICAgIG5hbWUuIEBZRklMRV9Q
QVRIQEQgZGVmYXVsdHMgdG8gQEd0ZXN0X2RldGFpbC54bWxARC5cbiIKLSNpZiBHVEVTVF9DQU5f
U1RSRUFNX1JFU1VMVFNfCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gInN0cmVhbV9yZXN1
bHRfdG89QFlIT1NUQEc6QFlQT1JUQERcbiIKLSIgICAgICBTdHJlYW0gdGVzdCByZXN1bHRzIHRv
IHRoZSBnaXZlbiBzZXJ2ZXIuXG4iCi0jZW5kaWYgIC8vIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxU
U18KLSJcbiIKLSJBc3NlcnRpb24gQmVoYXZpb3I6XG4iCi0jaWYgR1RFU1RfSEFTX0RFQVRIX1RF
U1QgJiYgIUdURVNUX09TX1dJTkRPV1MKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiZGVh
dGhfdGVzdF9zdHlsZT1AWShAR2Zhc3RAWXxAR3RocmVhZHNhZmVAWSlARFxuIgotIiAgICAgIFNl
dCB0aGUgZGVmYXVsdCBkZWF0aCB0ZXN0IHN0eWxlLlxuIgotI2VuZGlmICAvLyBHVEVTVF9IQVNf
REVBVEhfVEVTVCAmJiAhR1RFU1RfT1NfV0lORE9XUwotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVG
SVhfICJicmVha19vbl9mYWlsdXJlQERcbiIKLSIgICAgICBUdXJuIGFzc2VydGlvbiBmYWlsdXJl
cyBpbnRvIGRlYnVnZ2VyIGJyZWFrLXBvaW50cy5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJF
RklYXyAidGhyb3dfb25fZmFpbHVyZUBEXG4iCi0iICAgICAgVHVybiBhc3NlcnRpb24gZmFpbHVy
ZXMgaW50byBDKysgZXhjZXB0aW9ucy5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAi
Y2F0Y2hfZXhjZXB0aW9ucz0wQERcbiIKLSIgICAgICBEbyBub3QgcmVwb3J0IGV4Y2VwdGlvbnMg
YXMgdGVzdCBmYWlsdXJlcy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgotIiAgICAgIHRvIGNyYXNo
IHRoZSBwcm9ncmFtIG9yIHRocm93IGEgcG9wLXVwIChvbiBXaW5kb3dzKS5cbiIKLSJcbiIKLSJF
eGNlcHQgZm9yIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAibGlzdF90ZXN0c0BELCB5b3UgY2Fu
IGFsdGVybmF0aXZlbHkgc2V0ICIKLSAgICAidGhlIGNvcnJlc3BvbmRpbmdcbiIKLSJlbnZpcm9u
bWVudCB2YXJpYWJsZSBvZiBhIGZsYWcgKGFsbCBsZXR0ZXJzIGluIHVwcGVyLWNhc2UpLiBGb3Ig
ZXhhbXBsZSwgdG9cbiIKLSJkaXNhYmxlIGNvbG9yZWQgdGV4dCBvdXRwdXQsIHlvdSBjYW4gZWl0
aGVyIHNwZWNpZnkgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfCi0gICAgImNvbG9yPW5vQEQgb3Ig
c2V0XG4iCi0idGhlIEBHIiBHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIkNPTE9SQEQgZW52aXJv
bm1lbnQgdmFyaWFibGUgdG8gQEdub0BELlxuIgotIlxuIgotIkZvciBtb3JlIGluZm9ybWF0aW9u
LCBwbGVhc2UgcmVhZCB0aGUgIiBHVEVTVF9OQU1FXyAiIGRvY3VtZW50YXRpb24gYXRcbiIKLSJA
RyIgR1RFU1RfUFJPSkVDVF9VUkxfICJARC4gSWYgeW91IGZpbmQgYSBidWcgaW4gIiBHVEVTVF9O
QU1FXyAiXG4iCi0iKG5vdCBvbmUgaW4geW91ciBvd24gY29kZSBvciB0ZXN0cyksIHBsZWFzZSBy
ZXBvcnQgaXQgdG9cbiIKLSJARzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7Ci0KLXN0YXRp
YyBib29sIFBhcnNlR29vZ2xlVGVzdEZsYWcoY29uc3QgY2hhciogY29uc3QgYXJnKSB7Ci0gIHJl
dHVybiBQYXJzZUJvb2xGbGFnKGFyZywga0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZywKLSAgICAg
ICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpKSB8
fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtCcmVha09uRmFpbHVyZUZsYWcsCi0gICAgICAg
ICAgICAgICAgICAgICZHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKSB8fAotICAgICAgUGFy
c2VCb29sRmxhZyhhcmcsIGtDYXRjaEV4Y2VwdGlvbnNGbGFnLAotICAgICAgICAgICAgICAgICAg
ICAmR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSkgfHwKLSAgICAgIFBhcnNlU3RyaW5nRmxh
ZyhhcmcsIGtDb2xvckZsYWcsICZHVEVTVF9GTEFHKGNvbG9yKSkgfHwKLSAgICAgIFBhcnNlU3Ry
aW5nRmxhZyhhcmcsIGtEZWF0aFRlc3RTdHlsZUZsYWcsCi0gICAgICAgICAgICAgICAgICAgICAg
JkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFy
Zywga0RlYXRoVGVzdFVzZUZvcmssCi0gICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGRl
YXRoX3Rlc3RfdXNlX2ZvcmspKSB8fAotICAgICAgUGFyc2VTdHJpbmdGbGFnKGFyZywga0ZpbHRl
ckZsYWcsICZHVEVTVF9GTEFHKGZpbHRlcikpIHx8Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJn
LCBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnLAotICAgICAgICAgICAgICAgICAgICAgICZHVEVT
VF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWco
YXJnLCBrTGlzdFRlc3RzRmxhZywgJkdURVNUX0ZMQUcobGlzdF90ZXN0cykpIHx8Ci0gICAgICBQ
YXJzZVN0cmluZ0ZsYWcoYXJnLCBrT3V0cHV0RmxhZywgJkdURVNUX0ZMQUcob3V0cHV0KSkgfHwK
LSAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNUX0ZMQUcocHJp
bnRfdGltZSkpIHx8Ci0gICAgICBQYXJzZUludDMyRmxhZyhhcmcsIGtSYW5kb21TZWVkRmxhZywg
JkdURVNUX0ZMQUcocmFuZG9tX3NlZWQpKSB8fAotICAgICAgUGFyc2VJbnQzMkZsYWcoYXJnLCBr
UmVwZWF0RmxhZywgJkdURVNUX0ZMQUcocmVwZWF0KSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWco
YXJnLCBrU2h1ZmZsZUZsYWcsICZHVEVTVF9GTEFHKHNodWZmbGUpKSB8fAotICAgICAgUGFyc2VJ
bnQzMkZsYWcoYXJnLCBrU3RhY2tUcmFjZURlcHRoRmxhZywKLSAgICAgICAgICAgICAgICAgICAg
ICZHVEVTVF9GTEFHKHN0YWNrX3RyYWNlX2RlcHRoKSkgfHwKLSAgICAgIFBhcnNlU3RyaW5nRmxh
ZyhhcmcsIGtTdHJlYW1SZXN1bHRUb0ZsYWcsCi0gICAgICAgICAgICAgICAgICAgICAgJkdURVNU
X0ZMQUcoc3RyZWFtX3Jlc3VsdF90bykpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1Ro
cm93T25GYWlsdXJlRmxhZywKLSAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcodGhyb3df
b25fZmFpbHVyZSkpOwotfQotCi0jaWYgR1RFU1RfVVNFX09XTl9GTEFHRklMRV9GTEFHXwotc3Rh
dGljIHZvaWQgTG9hZEZsYWdzRnJvbUZpbGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpIHsKLSAg
RklMRSogZmxhZ2ZpbGUgPSBwb3NpeDo6Rk9wZW4ocGF0aC5jX3N0cigpLCAiciIpOwotICBpZiAo
IWZsYWdmaWxlKSB7Ci0gICAgR1RFU1RfTE9HXyhGQVRBTCkgPDwgIlVuYWJsZSB0byBvcGVuIGZp
bGUgXCIiCi0gICAgICAgICAgICAgICAgICAgICAgPDwgR1RFU1RfRkxBRyhmbGFnZmlsZSkKLSAg
ICAgICAgICAgICAgICAgICAgICA8PCAiXCIiOwotICB9Ci0gIHN0ZDo6c3RyaW5nIGNvbnRlbnRz
KFJlYWRFbnRpcmVGaWxlKGZsYWdmaWxlKSk7Ci0gIHBvc2l4OjpGQ2xvc2UoZmxhZ2ZpbGUpOwot
ICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gbGluZXM7Ci0gIFNwbGl0U3RyaW5nKGNvbnRlbnRz
LCAnXG4nLCAmbGluZXMpOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpbmVzLnNpemUoKTsg
KytpKSB7Ci0gICAgaWYgKGxpbmVzW2ldLmVtcHR5KCkpCi0gICAgICBjb250aW51ZTsKLSAgICBp
ZiAoIVBhcnNlR29vZ2xlVGVzdEZsYWcobGluZXNbaV0uY19zdHIoKSkpCi0gICAgICBnX2hlbHBf
ZmxhZyA9IHRydWU7Ci0gIH0KLX0KLSNlbmRpZiAgLy8gR1RFU1RfVVNFX09XTl9GTEFHRklMRV9G
TEFHXwotCi0vLyBQYXJzZXMgdGhlIGNvbW1hbmQgbGluZSBmb3IgR29vZ2xlIFRlc3QgZmxhZ3Ms
IHdpdGhvdXQgaW5pdGlhbGl6aW5nCi0vLyBvdGhlciBwYXJ0cyBvZiBHb29nbGUgVGVzdC4gIFRo
ZSB0eXBlIHBhcmFtZXRlciBDaGFyVHlwZSBjYW4gYmUKLS8vIGluc3RhbnRpYXRlZCB0byBlaXRo
ZXIgY2hhciBvciB3Y2hhcl90LgotdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotdm9pZCBQ
YXJzZUdvb2dsZVRlc3RGbGFnc09ubHlJbXBsKGludCogYXJnYywgQ2hhclR5cGUqKiBhcmd2KSB7
Ci0gIGZvciAoaW50IGkgPSAxOyBpIDwgKmFyZ2M7IGkrKykgewotICAgIGNvbnN0IHN0ZDo6c3Ry
aW5nIGFyZ19zdHJpbmcgPSBTdHJlYW1hYmxlVG9TdHJpbmcoYXJndltpXSk7Ci0gICAgY29uc3Qg
Y2hhciogY29uc3QgYXJnID0gYXJnX3N0cmluZy5jX3N0cigpOwotCi0gICAgdXNpbmcgaW50ZXJu
YWw6OlBhcnNlQm9vbEZsYWc7Ci0gICAgdXNpbmcgaW50ZXJuYWw6OlBhcnNlSW50MzJGbGFnOwot
ICAgIHVzaW5nIGludGVybmFsOjpQYXJzZVN0cmluZ0ZsYWc7Ci0KLSAgICBib29sIHJlbW92ZV9m
bGFnID0gZmFsc2U7Ci0gICAgaWYgKFBhcnNlR29vZ2xlVGVzdEZsYWcoYXJnKSkgewotICAgICAg
cmVtb3ZlX2ZsYWcgPSB0cnVlOwotI2lmIEdURVNUX1VTRV9PV05fRkxBR0ZJTEVfRkxBR18KLSAg
ICB9IGVsc2UgaWYgKFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtGbGFnZmlsZUZsYWcsICZHVEVTVF9G
TEFHKGZsYWdmaWxlKSkpIHsKLSAgICAgIExvYWRGbGFnc0Zyb21GaWxlKEdURVNUX0ZMQUcoZmxh
Z2ZpbGUpKTsKLSAgICAgIHJlbW92ZV9mbGFnID0gdHJ1ZTsKLSNlbmRpZiAgLy8gR1RFU1RfVVNF
X09XTl9GTEFHRklMRV9GTEFHXwotICAgIH0gZWxzZSBpZiAoYXJnX3N0cmluZyA9PSAiLS1oZWxw
IiB8fCBhcmdfc3RyaW5nID09ICItaCIgfHwKLSAgICAgICAgICAgICAgIGFyZ19zdHJpbmcgPT0g
Ii0/IiB8fCBhcmdfc3RyaW5nID09ICIvPyIgfHwKLSAgICAgICAgICAgICAgIEhhc0dvb2dsZVRl
c3RGbGFnUHJlZml4KGFyZykpIHsKLSAgICAgIC8vIEJvdGggaGVscCBmbGFnIGFuZCB1bnJlY29n
bml6ZWQgR29vZ2xlIFRlc3QgZmxhZ3MgKGV4Y2x1ZGluZwotICAgICAgLy8gaW50ZXJuYWwgb25l
cykgdHJpZ2dlciBoZWxwIGRpc3BsYXkuCi0gICAgICBnX2hlbHBfZmxhZyA9IHRydWU7Ci0gICAg
fQotCi0gICAgaWYgKHJlbW92ZV9mbGFnKSB7Ci0gICAgICAvLyBTaGlmdCB0aGUgcmVtYWluZGVy
IG9mIHRoZSBhcmd2IGxpc3QgbGVmdCBieSBvbmUuICBOb3RlCi0gICAgICAvLyB0aGF0IGFyZ3Yg
aGFzICgqYXJnYyArIDEpIGVsZW1lbnRzLCB0aGUgbGFzdCBvbmUgYWx3YXlzIGJlaW5nCi0gICAg
ICAvLyBOVUxMLiAgVGhlIGZvbGxvd2luZyBsb29wIG1vdmVzIHRoZSB0cmFpbGluZyBOVUxMIGVs
ZW1lbnQgYXMKLSAgICAgIC8vIHdlbGwuCi0gICAgICBmb3IgKGludCBqID0gaTsgaiAhPSAqYXJn
YzsgaisrKSB7Ci0gICAgICAgIGFyZ3Zbal0gPSBhcmd2W2ogKyAxXTsKLSAgICAgIH0KLQotICAg
ICAgLy8gRGVjcmVtZW50cyB0aGUgYXJndW1lbnQgY291bnQuCi0gICAgICAoKmFyZ2MpLS07Ci0K
LSAgICAgIC8vIFdlIGFsc28gbmVlZCB0byBkZWNyZW1lbnQgdGhlIGl0ZXJhdG9yIGFzIHdlIGp1
c3QgcmVtb3ZlZAotICAgICAgLy8gYW4gZWxlbWVudC4KLSAgICAgIGktLTsKLSAgICB9Ci0gIH0K
LQotICBpZiAoZ19oZWxwX2ZsYWcpIHsKLSAgICAvLyBXZSBwcmludCB0aGUgaGVscCBoZXJlIGlu
c3RlYWQgb2YgaW4gUlVOX0FMTF9URVNUUygpLCBhcyB0aGUKLSAgICAvLyBsYXR0ZXIgbWF5IG5v
dCBiZSBjYWxsZWQgYXQgYWxsIGlmIHRoZSB1c2VyIGlzIHVzaW5nIEdvb2dsZQotICAgIC8vIFRl
c3Qgd2l0aCBhbm90aGVyIHRlc3RpbmcgZnJhbWV3b3JrLgotICAgIFByaW50Q29sb3JFbmNvZGVk
KGtDb2xvckVuY29kZWRIZWxwTWVzc2FnZSk7Ci0gIH0KLX0KLQotLy8gUGFyc2VzIHRoZSBjb21t
YW5kIGxpbmUgZm9yIEdvb2dsZSBUZXN0IGZsYWdzLCB3aXRob3V0IGluaXRpYWxpemluZwotLy8g
b3RoZXIgcGFydHMgb2YgR29vZ2xlIFRlc3QuCi12b2lkIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25s
eShpbnQqIGFyZ2MsIGNoYXIqKiBhcmd2KSB7Ci0gIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seUlt
cGwoYXJnYywgYXJndik7Ci19Ci12b2lkIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seShpbnQqIGFy
Z2MsIHdjaGFyX3QqKiBhcmd2KSB7Ci0gIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seUltcGwoYXJn
YywgYXJndik7Ci19Ci0KLS8vIFRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvZiBJbml0R29v
Z2xlVGVzdCgpLgotLy8KLS8vIFRoZSB0eXBlIHBhcmFtZXRlciBDaGFyVHlwZSBjYW4gYmUgaW5z
dGFudGlhdGVkIHRvIGVpdGhlciBjaGFyIG9yCi0vLyB3Y2hhcl90LgotdGVtcGxhdGUgPHR5cGVu
YW1lIENoYXJUeXBlPgotdm9pZCBJbml0R29vZ2xlVGVzdEltcGwoaW50KiBhcmdjLCBDaGFyVHlw
ZSoqIGFyZ3YpIHsKLSAgLy8gV2UgZG9uJ3Qgd2FudCB0byBydW4gdGhlIGluaXRpYWxpemF0aW9u
IGNvZGUgdHdpY2UuCi0gIGlmIChHVGVzdElzSW5pdGlhbGl6ZWQoKSkgcmV0dXJuOwotCi0gIGlm
ICgqYXJnYyA8PSAwKSByZXR1cm47Ci0KLSAgZ19hcmd2cy5jbGVhcigpOwotICBmb3IgKGludCBp
ID0gMDsgaSAhPSAqYXJnYzsgaSsrKSB7Ci0gICAgZ19hcmd2cy5wdXNoX2JhY2soU3RyZWFtYWJs
ZVRvU3RyaW5nKGFyZ3ZbaV0pKTsKLSAgfQotCi0gIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seShh
cmdjLCBhcmd2KTsKLSAgR2V0VW5pdFRlc3RJbXBsKCktPlBvc3RGbGFnUGFyc2luZ0luaXQoKTsK
LX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi0KLS8vIEluaXRpYWxpemVzIEdvb2dsZSBU
ZXN0LiAgVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZwotLy8gUlVOX0FMTF9URVNU
UygpLiAgSW4gcGFydGljdWxhciwgaXQgcGFyc2VzIGEgY29tbWFuZCBsaW5lIGZvciB0aGUKLS8v
IGZsYWdzIHRoYXQgR29vZ2xlIFRlc3QgcmVjb2duaXplcy4gIFdoZW5ldmVyIGEgR29vZ2xlIFRl
c3QgZmxhZyBpcwotLy8gc2VlbiwgaXQgaXMgcmVtb3ZlZCBmcm9tIGFyZ3YsIGFuZCAqYXJnYyBp
cyBkZWNyZW1lbnRlZC4KLS8vCi0vLyBObyB2YWx1ZSBpcyByZXR1cm5lZC4gIEluc3RlYWQsIHRo
ZSBHb29nbGUgVGVzdCBmbGFnIHZhcmlhYmxlcyBhcmUKLS8vIHVwZGF0ZWQuCi0vLwotLy8gQ2Fs
bGluZyB0aGUgZnVuY3Rpb24gZm9yIHRoZSBzZWNvbmQgdGltZSBoYXMgbm8gdXNlci12aXNpYmxl
IGVmZmVjdC4KLXZvaWQgSW5pdEdvb2dsZVRlc3QoaW50KiBhcmdjLCBjaGFyKiogYXJndikgewot
I2lmIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05fKQotICBH
VEVTVF9DVVNUT01fSU5JVF9HT09HTEVfVEVTVF9GVU5DVElPTl8oYXJnYywgYXJndik7Ci0jZWxz
ZSAgLy8gZGVmaW5lZChHVEVTVF9DVVNUT01fSU5JVF9HT09HTEVfVEVTVF9GVU5DVElPTl8pCi0g
IGludGVybmFsOjpJbml0R29vZ2xlVGVzdEltcGwoYXJnYywgYXJndik7Ci0jZW5kaWYgIC8vIGRl
ZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05fKQotfQotCi0vLyBU
aGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4gYmUgdXNlZCBpbiBXaW5kb3dzIHByb2dyYW1zIGNv
bXBpbGVkIGluCi0vLyBVTklDT0RFIG1vZGUuCi12b2lkIEluaXRHb29nbGVUZXN0KGludCogYXJn
Yywgd2NoYXJfdCoqIGFyZ3YpIHsKLSNpZiBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dM
RV9URVNUX0ZVTkNUSU9OXykKLSAgR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJ
T05fKGFyZ2MsIGFyZ3YpOwotI2Vsc2UgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09P
R0xFX1RFU1RfRlVOQ1RJT05fKQotICBpbnRlcm5hbDo6SW5pdEdvb2dsZVRlc3RJbXBsKGFyZ2Ms
IGFyZ3YpOwotI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNU
X0ZVTkNUSU9OXykKLX0KLQotc3RkOjpzdHJpbmcgVGVtcERpcigpIHsKLSNpZiBkZWZpbmVkKEdU
RVNUX0NVU1RPTV9URU1QRElSX0ZVTkNUSU9OXykKLSAgICByZXR1cm4gR1RFU1RfQ1VTVE9NX1RF
TVBESVJfRlVOQ1RJT05fKCk7Ci0jZW5kaWYKLSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQot
ICByZXR1cm4gIlxcdGVtcFxcIjsKLSNlbGlmIEdURVNUX09TX1dJTkRPV1MKLSAgY29uc3QgY2hh
ciogdGVtcF9kaXIgPSBpbnRlcm5hbDo6cG9zaXg6OkdldEVudigiVEVNUCIpOwotICBpZiAodGVt
cF9kaXIgPT0gTlVMTCB8fCB0ZW1wX2RpclswXSA9PSAnXDAnKQotICAgIHJldHVybiAiXFx0ZW1w
XFwiOwotICBlbHNlIGlmICh0ZW1wX2RpcltzdHJsZW4odGVtcF9kaXIpIC0gMV0gPT0gJ1xcJykK
LSAgICByZXR1cm4gdGVtcF9kaXI7Ci0gIGVsc2UKLSAgICByZXR1cm4gc3RkOjpzdHJpbmcodGVt
cF9kaXIpICsgIlxcIjsKLSNlbGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQKLSAgcmV0dXJuICIv
c2RjYXJkLyI7Ci0jZWxzZQotICByZXR1cm4gIi90bXAvIjsKLSNlbmRpZiAgLy8gR1RFU1RfT1Nf
V0lORE9XU19NT0JJTEUKLX0KLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9ndGVzdF9tYWluLmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0X21haW4uY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYzMDI4MjI1NTIzMzA2ZWI5NjQ4Zjk0YmNiZTllM2E3ODAxNmJiN2UuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0X21haW4uY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww
IEBACi0vLyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpbmNs
dWRlIDxzdGRpby5oPgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotR1RFU1RfQVBJXyBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgcHJpbnRmKCJSdW5uaW5nIG1haW4o
KSBmcm9tIGd0ZXN0X21haW4uY2NcbiIpOwotICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJn
YywgYXJndik7Ci0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L0JVSUxELmJhemVsIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvdGVzdC9CVUlMRC5iYXplbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWRhYTE1NDQxMWRjNzA1YWQyNDhhY2Q0NzgzNjYxMmQwYzM4NTUwNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC90ZXN0L0JVSUxELmJhemVsCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICswLDAgQEAKLSMg
Q29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy4gCi0jIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0jCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotIwotIyBBdXRob3I6IG1pc3RlcmdAZ29vZ2xlLmNvbSAoR2VubmFk
aXkgQ2l2aWwpCi0jCi0jIEJhemVsIEJVSUxEIGZvciBUaGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZy
YW1ld29yayAoR29vZ2xlIFRlc3QpCi0KLWxpY2Vuc2VzKFsibm90aWNlIl0pCi0KLSIiIiBndGVz
dCBvd24gdGVzdHMgIiIiCi0KLSNvbiB3aW5kb3dzIGV4Y2x1ZGUgZ3Rlc3QtdHVwbGUuaCBhbmQg
Z3Rlc3QtdHVwbGVfdGVzdC5jYwotY2NfdGVzdCgKLSAgICBuYW1lID0gImd0ZXN0X2FsbF90ZXN0
IiwKLSAgICBzaXplID0gInNtYWxsIiwKLSAgICBzcmNzID0gIGdsb2IoCi0gICAgICAgICAgICAg
ICAgICAgIGluY2x1ZGUgPSBbCi0gICAgICAgICAgICAgICAgICAgICAgICAiZ3Rlc3QtKi5jYyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAiKi5oIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJnb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvKiovKi5oIiwKLSAgICAgICAgICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgICAgICAgICAgZXhjbHVkZSA9IFsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAiZ3Rlc3QtdHVwbGVfdGVzdC5jYyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZ29vZ2xl
dGVzdC9zcmMvZ3Rlc3QtYWxsLmNjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJndGVzdF9h
bGxfdGVzdC5jYyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZ3Rlc3QtZGVhdGgtdGVzdF9l
eF90ZXN0LmNjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJndGVzdC1saXN0ZW5lcl90ZXN0
LmNjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJndGVzdC11bml0dGVzdC1hcGlfdGVzdC5j
YyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0LmNjIiwK
LSAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICApICsgc2VsZWN0KHsKLSAg
ICAgICAgIi8vOndpbiI6IFtdLAotICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0g
ICAgICAgICAgICAiZ3Rlc3QtdHVwbGVfdGVzdC5jYyIsCi0gICAgICAgIF0sCi0gICAgICAgIH0p
LAotICAgIGNvcHRzID0gc2VsZWN0KHsKLSAgICAgICAgIi8vOndpbiI6IFsiLURHVEVTVF9VU0Vf
T1dOX1RSMV9UVVBMRT0wIl0sCi0gICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLURH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0xIl0sCi0gICAgfSksCi0gICAgaW5jbHVkZXMgPSBbCi0g
ICAgICAgICJnb29nbGV0ZXN0IiwKLSAgICAgICAgImdvb2dsZXRlc3QvaW5jbHVkZSIsCi0gICAg
ICAgICJnb29nbGV0ZXN0L2luY2x1ZGUvaW50ZXJuYWwiLAotICAgICAgICAiZ29vZ2xldGVzdC90
ZXN0IiwKLSAgICBdLAotICAgIGxpbmtvcHRzID0gc2VsZWN0KHsKLSAgICAgICAgIi8vOndpbiI6
IFtdLAotICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0gICAgICAgICAgICAiLXB0
aHJlYWQiLAotICAgICAgICBdLAotICAgIH0pLAotICAgIGRlcHMgPSBbIi8vOmd0ZXN0X21haW4i
XSwKLSkKLQotI1RoZXNlIGdvb2dsZXRlc3QgdGVzdHMgaGF2ZSB0aGVpciBvd24gbWFpbigpCi1j
Y190ZXN0KAotICAgIG5hbWUgPSAiZ3Rlc3QtbGlzdGVuZXJfdGVzdCIsCi0gICAgc2l6ZSA9ICJz
bWFsbCIsCi0gICAgc3JjcyA9IFsKLSAgICAgICAgImd0ZXN0LWxpc3RlbmVyX3Rlc3QuY2MiLAot
ICAgIF0sCi0gICAgZGVwcyA9IFsKLSAgICAgICAgIi8vOmd0ZXN0IiwKLSAgICBdLAotKQotCi1j
Y190ZXN0KAotICAgIG5hbWUgPSAiZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QiLAotICAgIHNpemUg
PSAic21hbGwiLAotICAgIHNyY3MgPSBbCi0gICAgICAgICJndGVzdC11bml0dGVzdC1hcGlfdGVz
dC5jYyIsCi0gICAgXSwKLSAgICBkZXBzID0gWwotICAgICAgICAiLy86Z3Rlc3QiLAotICAgIF0s
Ci0pCi0KLWNjX3Rlc3QoCi0gICAgbmFtZSA9ICJndGVzdC1wYXJhbS10ZXN0X3Rlc3QiLAotICAg
IHNpemUgPSAic21hbGwiLAotICAgIHNyY3MgPSBbCi0gICAgICAgICJndGVzdC1wYXJhbS10ZXN0
Ml90ZXN0LmNjIiwKLSAgICAgICAgImd0ZXN0LXBhcmFtLXRlc3RfdGVzdC5jYyIsCi0gICAgICAg
ICJndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaCIsCi0gICAgXSwKLSAgICBkZXBzID0gWwotICAgICAg
ICAiLy86Z3Rlc3QiLAotICAgIF0sCi0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC90ZXN0L2d0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiNTBhMTNkNWUyZTE0ZjQ2YzU1MmFiMmIxMDc2NDA5MWY4NWUy
NzViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjCisr
KyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTAsIEdvb2dsZSBJ
bmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0v
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBM
b3NldikKLS8vCi0vLyBUZXN0cyB0aGF0IHZlcmlmeSBpbnRlcmFjdGlvbiBvZiBleGNlcHRpb25z
IGFuZCBkZWF0aCB0ZXN0cy4KLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCIK
LSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotCi0jaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLQot
IyBpZiBHVEVTVF9IQVNfU0VICi0jICBpbmNsdWRlIDx3aW5kb3dzLmg+ICAgICAgICAgIC8vIEZv
ciBSYWlzZUV4Y2VwdGlvbigpLgotIyBlbmRpZgotCi0jIGluY2x1ZGUgImd0ZXN0L2d0ZXN0LXNw
aS5oIgotCi0jIGlmIEdURVNUX0hBU19FWENFUFRJT05TCi0KLSMgIGluY2x1ZGUgPGV4Y2VwdGlv
bj4gIC8vIEZvciBzdGQ6OmV4Y2VwdGlvbi4KLQotLy8gVGVzdHMgdGhhdCBkZWF0aCB0ZXN0cyBy
ZXBvcnQgdGhyb3duIGV4Y2VwdGlvbnMgYXMgZmFpbHVyZXMgYW5kIHRoYXQgdGhlCi0vLyBleGNl
cHRpb25zIGRvIG5vdCBlc2NhcGUgZGVhdGggdGVzdCBtYWNyb3MuCi1URVNUKEN4eEV4Y2VwdGlv
bkRlYXRoVGVzdCwgRXhjZXB0aW9uSXNGYWlsdXJlKSB7Ci0gIHRyeSB7Ci0gICAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0RFQVRIKHRocm93IDEsICIiKSwgInRocmV3IGFuIGV4Y2Vw
dGlvbiIpOwotICB9IGNhdGNoICguLi4pIHsgIC8vIE5PTElOVAotICAgIEZBSUwoKSA8PCAiQW4g
ZXhjZXB0aW9uIGVzY2FwZWQgYSBkZWF0aCB0ZXN0IG1hY3JvIGludm9jYXRpb24gIgotICAgICAg
ICAgICA8PCAid2l0aCBjYXRjaF9leGNlcHRpb25zICIKLSAgICAgICAgICAgPDwgKHRlc3Rpbmc6
OkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKTsK
LSAgfQotfQotCi1jbGFzcyBUZXN0RXhjZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsK
LSBwdWJsaWM6Ci0gIHZpcnR1YWwgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IHRocm93KCkgeyBy
ZXR1cm4gImV4Y2VwdGlvbmFsIG1lc3NhZ2UiOyB9Ci19OwotCi1URVNUKEN4eEV4Y2VwdGlvbkRl
YXRoVGVzdCwgUHJpbnRzTWVzc2FnZUZvclN0ZEV4Y2VwdGlvbnMpIHsKLSAgLy8gVmVyaWZpZXMg
dGhhdCB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgaXMgcXVvdGVkIGluIHRoZSBmYWlsdXJlIHRleHQu
Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ERUFUSCh0aHJvdyBUZXN0RXhjZXB0
aW9uKCksICIiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2VwdGlvbmFsIG1lc3Nh
Z2UiKTsKLSAgLy8gVmVyaWZpZXMgdGhhdCB0aGUgbG9jYXRpb24gaXMgbWVudGlvbmVkIGluIHRo
ZSBmYWlsdXJlIHRleHQuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ERUFUSCh0
aHJvdyBUZXN0RXhjZXB0aW9uKCksICIiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImd0
ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYyIpOwotfQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0VY
Q0VQVElPTlMKLQotIyBpZiBHVEVTVF9IQVNfU0VICi0vLyBUZXN0cyB0aGF0IGVuYWJsaW5nIGlu
dGVyY2VwdGlvbiBvZiBTRUggZXhjZXB0aW9ucyB3aXRoIHRoZQotLy8gY2F0Y2hfZXhjZXB0aW9u
cyBmbGFnIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIFNFSCBleGNlcHRpb25zIGJlaW5nCi0vLyB0
cmVhdGVkIGFzIGRlYXRoIGJ5IGRlYXRoIHRlc3RzLgotVEVTVChTZWhFeGNlcHRpb25EZWFzVGVz
dCwgQ2F0Y2hFeGNlcHRpb25zRG9lc05vdEludGVyZmVyZSkgewotICBFWFBFQ1RfREVBVEgoUmFp
c2VFeGNlcHRpb24oNDIsIDB4MCwgMCwgTlVMTCksICIiKQotICAgICAgPDwgIndpdGggY2F0Y2hf
ZXhjZXB0aW9ucyAiCi0gICAgICA8PCAodGVzdGluZzo6R1RFU1RfRkxBRyhjYXRjaF9leGNlcHRp
b25zKSA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCIpOwotfQotIyBlbmRpZgotCi0jZW5kaWYgIC8v
IEdURVNUX0hBU19ERUFUSF9URVNUCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikg
ewotICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0gIHRlc3Rpbmc6OkdU
RVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgPSBHVEVTVF9FTkFCTEVfQ0FUQ0hfRVhDRVBUSU9O
U18gIT0gMDsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdF90ZXN0LmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1kZWF0aC10ZXN0X3Rlc3QuY2MKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3ODQ2YjJjNzBjNTk5ZDE4NDliYmFjYjBmMTMw
OWNmNzE5N2UxMTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1kZWF0aC10ZXN0X3Rlc3Qu
Y2MKKysrIC9kZXYvbnVsbApAQCAtMSwxNDE5ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA1LCBH
b29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tICha
aGFueW9uZyBXYW4pCi0vLwotLy8gVGVzdHMgZm9yIGRlYXRoIHRlc3RzLgotCi0jaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oIgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZmlsZXBhdGguaCIKLQotdXNpbmcgdGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c0ZhbHNlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1Ry
dWU7Ci0KLSNpZiBHVEVTVF9IQVNfREVBVEhfVEVTVAotCi0jIGlmIEdURVNUX09TX1dJTkRPV1MK
LSMgIGluY2x1ZGUgPGRpcmVjdC5oPiAgICAgICAgICAvLyBGb3IgY2hkaXIoKS4KLSMgZWxzZQot
IyAgaW5jbHVkZSA8dW5pc3RkLmg+Ci0jICBpbmNsdWRlIDxzeXMvd2FpdC5oPiAgICAgICAgLy8g
Rm9yIHdhaXRwaWQuCi0jIGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLSMgaW5jbHVkZSA8
bGltaXRzLmg+Ci0jIGluY2x1ZGUgPHNpZ25hbC5oPgotIyBpbmNsdWRlIDxzdGRpby5oPgotCi0j
IGlmIEdURVNUX09TX0xJTlVYCi0jICBpbmNsdWRlIDxzeXMvdGltZS5oPgotIyBlbmRpZiAgLy8g
R1RFU1RfT1NfTElOVVgKLQotIyBpbmNsdWRlICJndGVzdC9ndGVzdC1zcGkuaCIKLSMgaW5jbHVk
ZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgotCi1uYW1lc3BhY2UgcG9zaXggPSA6OnRlc3Rp
bmc6OmludGVybmFsOjpwb3NpeDsKLQotdXNpbmcgdGVzdGluZzo6TWVzc2FnZTsKLXVzaW5nIHRl
c3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6RGVh
dGhUZXN0RmFjdG9yeTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGaWxlUGF0aDsKLXVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjpHZXRMYXN0RXJybm9EZXNjcmlwdGlvbjsKLXVzaW5nIHRlc3Rp
bmc6OmludGVybmFsOjpHZXRVbml0VGVzdEltcGw7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
SW5EZWF0aFRlc3RDaGlsZDsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpQYXJzZU5hdHVyYWxO
dW1iZXI7Ci0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8v
IEEgaGVscGVyIGNsYXNzIHdob3NlIG9iamVjdHMgcmVwbGFjZSB0aGUgZGVhdGggdGVzdCBmYWN0
b3J5IGZvciBhCi0vLyBzaW5nbGUgVW5pdFRlc3Qgb2JqZWN0IGR1cmluZyB0aGVpciBsaWZldGlt
ZXMuCi1jbGFzcyBSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeSB7Ci0gcHVibGljOgotICBleHBsaWNp
dCBSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeShEZWF0aFRlc3RGYWN0b3J5KiBuZXdfZmFjdG9yeSkK
LSAgICAgIDogdW5pdF90ZXN0X2ltcGxfKEdldFVuaXRUZXN0SW1wbCgpKSB7Ci0gICAgb2xkX2Zh
Y3RvcnlfID0gdW5pdF90ZXN0X2ltcGxfLT5kZWF0aF90ZXN0X2ZhY3RvcnlfLnJlbGVhc2UoKTsK
LSAgICB1bml0X3Rlc3RfaW1wbF8tPmRlYXRoX3Rlc3RfZmFjdG9yeV8ucmVzZXQobmV3X2ZhY3Rv
cnkpOwotICB9Ci0KLSAgflJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5KCkgewotICAgIHVuaXRfdGVz
dF9pbXBsXy0+ZGVhdGhfdGVzdF9mYWN0b3J5Xy5yZWxlYXNlKCk7Ci0gICAgdW5pdF90ZXN0X2lt
cGxfLT5kZWF0aF90ZXN0X2ZhY3RvcnlfLnJlc2V0KG9sZF9mYWN0b3J5Xyk7Ci0gIH0KLSBwcml2
YXRlOgotICAvLyBQcmV2ZW50cyBjb3B5aW5nIFJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5IG9iamVj
dHMuCi0gIFJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5KGNvbnN0IFJlcGxhY2VEZWF0aFRlc3RGYWN0
b3J5Jik7Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5Jik7
Ci0KLSAgVW5pdFRlc3RJbXBsKiB1bml0X3Rlc3RfaW1wbF87Ci0gIERlYXRoVGVzdEZhY3Rvcnkq
IG9sZF9mYWN0b3J5XzsKLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8gbmFt
ZXNwYWNlIHRlc3RpbmcKLQotdm9pZCBEaWVXaXRoTWVzc2FnZShjb25zdCA6OnN0ZDo6c3RyaW5n
JiBtZXNzYWdlKSB7Ci0gIGZwcmludGYoc3RkZXJyLCAiJXMiLCBtZXNzYWdlLmNfc3RyKCkpOwot
ICBmZmx1c2goc3RkZXJyKTsgIC8vIE1ha2Ugc3VyZSB0aGUgdGV4dCBpcyBwcmludGVkIGJlZm9y
ZSB0aGUgcHJvY2VzcyBleGl0cy4KLQotICAvLyBXZSBjYWxsIF9leGl0KCkgaW5zdGVhZCBvZiBl
eGl0KCksIGFzIHRoZSBmb3JtZXIgaXMgYSBkaXJlY3QKLSAgLy8gc3lzdGVtIGNhbGwgYW5kIHRo
dXMgc2FmZXIgaW4gdGhlIHByZXNlbmNlIG9mIHRocmVhZHMuICBleGl0KCkKLSAgLy8gd2lsbCBp
bnZva2UgdXNlci1kZWZpbmVkIGV4aXQtaG9va3MsIHdoaWNoIG1heSBkbyBkYW5nZXJvdXMKLSAg
Ly8gdGhpbmdzIHRoYXQgY29uZmxpY3Qgd2l0aCBkZWF0aCB0ZXN0cy4KLSAgLy8KLSAgLy8gU29t
ZSBjb21waWxlcnMgY2FuIHJlY29nbml6ZSB0aGF0IF9leGl0KCkgbmV2ZXIgcmV0dXJucyBhbmQg
aXNzdWUgdGhlCi0gIC8vICd1bnJlYWNoYWJsZSBjb2RlJyB3YXJuaW5nIGZvciBjb2RlIGZvbGxv
d2luZyB0aGlzIGZ1bmN0aW9uLCB1bmxlc3MKLSAgLy8gZm9vbGVkIGJ5IGEgZmFrZSBjb25kaXRp
b24uCi0gIGlmIChBbHdheXNUcnVlKCkpCi0gICAgX2V4aXQoMSk7Ci19Ci0KLXZvaWQgRGllSW5z
aWRlKGNvbnN0IDo6c3RkOjpzdHJpbmcmIGZ1bmN0aW9uKSB7Ci0gIERpZVdpdGhNZXNzYWdlKCJk
ZWF0aCBpbnNpZGUgIiArIGZ1bmN0aW9uICsgIigpLiIpOwotfQotCi0vLyBUZXN0cyB0aGF0IGRl
YXRoIHRlc3RzIHdvcmsuCi0KLWNsYXNzIFRlc3RGb3JEZWF0aFRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICBUZXN0Rm9yRGVhdGhUZXN0KCkgOiBvcmlnaW5hbF9k
aXJfKEZpbGVQYXRoOjpHZXRDdXJyZW50RGlyKCkpIHt9Ci0KLSAgdmlydHVhbCB+VGVzdEZvckRl
YXRoVGVzdCgpIHsKLSAgICBwb3NpeDo6Q2hEaXIob3JpZ2luYWxfZGlyXy5jX3N0cigpKTsKLSAg
fQotCi0gIC8vIEEgc3RhdGljIG1lbWJlciBmdW5jdGlvbiB0aGF0J3MgZXhwZWN0ZWQgdG8gZGll
LgotICBzdGF0aWMgdm9pZCBTdGF0aWNNZW1iZXJGdW5jdGlvbigpIHsgRGllSW5zaWRlKCJTdGF0
aWNNZW1iZXJGdW5jdGlvbiIpOyB9Ci0KLSAgLy8gQSBtZXRob2Qgb2YgdGhlIHRlc3QgZml4dHVy
ZSB0aGF0IG1heSBkaWUuCi0gIHZvaWQgTWVtYmVyRnVuY3Rpb24oKSB7Ci0gICAgaWYgKHNob3Vs
ZF9kaWVfKQotICAgICAgRGllSW5zaWRlKCJNZW1iZXJGdW5jdGlvbiIpOwotICB9Ci0KLSAgLy8g
VHJ1ZSBpZmYgTWVtYmVyRnVuY3Rpb24oKSBzaG91bGQgZGllLgotICBib29sIHNob3VsZF9kaWVf
OwotICBjb25zdCBGaWxlUGF0aCBvcmlnaW5hbF9kaXJfOwotfTsKLQotLy8gQSBjbGFzcyB3aXRo
IGEgbWVtYmVyIGZ1bmN0aW9uIHRoYXQgbWF5IGRpZS4KLWNsYXNzIE1heURpZSB7Ci0gcHVibGlj
OgotICBleHBsaWNpdCBNYXlEaWUoYm9vbCBzaG91bGRfZGllKSA6IHNob3VsZF9kaWVfKHNob3Vs
ZF9kaWUpIHt9Ci0KLSAgLy8gQSBtZW1iZXIgZnVuY3Rpb24gdGhhdCBtYXkgZGllLgotICB2b2lk
IE1lbWJlckZ1bmN0aW9uKCkgY29uc3QgewotICAgIGlmIChzaG91bGRfZGllXykKLSAgICAgIERp
ZUluc2lkZSgiTWF5RGllOjpNZW1iZXJGdW5jdGlvbiIpOwotICB9Ci0KLSBwcml2YXRlOgotICAv
LyBUcnVlIGlmZiBNZW1iZXJGdW5jdGlvbigpIHNob3VsZCBkaWUuCi0gIGJvb2wgc2hvdWxkX2Rp
ZV87Ci19OwotCi0vLyBBIGdsb2JhbCBmdW5jdGlvbiB0aGF0J3MgZXhwZWN0ZWQgdG8gZGllLgot
dm9pZCBHbG9iYWxGdW5jdGlvbigpIHsgRGllSW5zaWRlKCJHbG9iYWxGdW5jdGlvbiIpOyB9Ci0K
LS8vIEEgbm9uLXZvaWQgZnVuY3Rpb24gdGhhdCdzIGV4cGVjdGVkIHRvIGRpZS4KLWludCBOb25W
b2lkRnVuY3Rpb24oKSB7Ci0gIERpZUluc2lkZSgiTm9uVm9pZEZ1bmN0aW9uIik7Ci0gIHJldHVy
biAxOwotfQotCi0vLyBBIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgbWF5IGRpZS4KLXZvaWQgRGllSWYo
Ym9vbCBzaG91bGRfZGllKSB7Ci0gIGlmIChzaG91bGRfZGllKQotICAgIERpZUluc2lkZSgiRGll
SWYiKTsKLX0KLQotLy8gQSBiaW5hcnkgZnVuY3Rpb24gdGhhdCBtYXkgZGllLgotYm9vbCBEaWVJ
Zkxlc3NUaGFuKGludCB4LCBpbnQgeSkgewotICBpZiAoeCA8IHkpIHsKLSAgICBEaWVJbnNpZGUo
IkRpZUlmTGVzc1RoYW4iKTsKLSAgfQotICByZXR1cm4gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgdGhh
dCBBU1NFUlRfREVBVEggY2FuIGJlIHVzZWQgb3V0c2lkZSBhIFRFU1QsIFRFU1RfRiwgb3IgdGVz
dCBmaXh0dXJlLgotdm9pZCBEZWF0aFRlc3RTdWJyb3V0aW5lKCkgewotICBFWFBFQ1RfREVBVEgo
R2xvYmFsRnVuY3Rpb24oKSwgImRlYXRoLipHbG9iYWxGdW5jdGlvbiIpOwotICBBU1NFUlRfREVB
VEgoR2xvYmFsRnVuY3Rpb24oKSwgImRlYXRoLipHbG9iYWxGdW5jdGlvbiIpOwotfQotCi0vLyBE
ZWF0aCBpbiBkYmcsIG5vdCBvcHQuCi1pbnQgRGllSW5EZWJ1Z0Vsc2UxMihpbnQqIHNpZGVlZmZl
Y3QpIHsKLSAgaWYgKHNpZGVlZmZlY3QpICpzaWRlZWZmZWN0ID0gMTI7Ci0KLSMgaWZuZGVmIE5E
RUJVRwotCi0gIERpZUluc2lkZSgiRGllSW5EZWJ1Z0Vsc2UxMiIpOwotCi0jIGVuZGlmICAvLyBO
REVCVUcKLQotICByZXR1cm4gMTI7Ci19Ci0KLSMgaWYgR1RFU1RfT1NfV0lORE9XUwotCi0vLyBU
ZXN0cyB0aGUgRXhpdGVkV2l0aENvZGUgcHJlZGljYXRlLgotVEVTVChFeGl0U3RhdHVzUHJlZGlj
YXRlVGVzdCwgRXhpdGVkV2l0aENvZGUpIHsKLSAgLy8gT24gV2luZG93cywgdGhlIHByb2Nlc3Mn
cyBleGl0IGNvZGUgaXMgdGhlIHNhbWUgYXMgaXRzIGV4aXQgc3RhdHVzLAotICAvLyBzbyB0aGUg
cHJlZGljYXRlIGp1c3QgY29tcGFyZXMgdGhlIGl0cyBpbnB1dCB3aXRoIGl0cyBwYXJhbWV0ZXIu
Ci0gIEVYUEVDVF9UUlVFKHRlc3Rpbmc6OkV4aXRlZFdpdGhDb2RlKDApKDApKTsKLSAgRVhQRUNU
X1RSVUUodGVzdGluZzo6RXhpdGVkV2l0aENvZGUoMSkoMSkpOwotICBFWFBFQ1RfVFJVRSh0ZXN0
aW5nOjpFeGl0ZWRXaXRoQ29kZSg0MikoNDIpKTsKLSAgRVhQRUNUX0ZBTFNFKHRlc3Rpbmc6OkV4
aXRlZFdpdGhDb2RlKDApKDEpKTsKLSAgRVhQRUNUX0ZBTFNFKHRlc3Rpbmc6OkV4aXRlZFdpdGhD
b2RlKDEpKDApKTsKLX0KLQotIyBlbHNlCi0KLS8vIFJldHVybnMgdGhlIGV4aXQgc3RhdHVzIG9m
IGEgcHJvY2VzcyB0aGF0IGNhbGxzIF9leGl0KDIpIHdpdGggYQotLy8gZ2l2ZW4gZXhpdCBjb2Rl
LiAgVGhpcyBpcyBhIGhlbHBlciBmdW5jdGlvbiBmb3IgdGhlCi0vLyBFeGl0U3RhdHVzUHJlZGlj
YXRlVGVzdCB0ZXN0IHN1aXRlLgotc3RhdGljIGludCBOb3JtYWxFeGl0U3RhdHVzKGludCBleGl0
X2NvZGUpIHsKLSAgcGlkX3QgY2hpbGRfcGlkID0gZm9yaygpOwotICBpZiAoY2hpbGRfcGlkID09
IDApIHsKLSAgICBfZXhpdChleGl0X2NvZGUpOwotICB9Ci0gIGludCBzdGF0dXM7Ci0gIHdhaXRw
aWQoY2hpbGRfcGlkLCAmc3RhdHVzLCAwKTsKLSAgcmV0dXJuIHN0YXR1czsKLX0KLQotLy8gUmV0
dXJucyB0aGUgZXhpdCBzdGF0dXMgb2YgYSBwcm9jZXNzIHRoYXQgcmFpc2VzIGEgZ2l2ZW4gc2ln
bmFsLgotLy8gSWYgdGhlIHNpZ25hbCBkb2VzIG5vdCBjYXVzZSB0aGUgcHJvY2VzcyB0byBkaWUs
IHRoZW4gaXQgcmV0dXJucwotLy8gaW5zdGVhZCB0aGUgZXhpdCBzdGF0dXMgb2YgYSBwcm9jZXNz
IHRoYXQgZXhpdHMgbm9ybWFsbHkgd2l0aCBleGl0Ci0vLyBjb2RlIDEuICBUaGlzIGlzIGEgaGVs
cGVyIGZ1bmN0aW9uIGZvciB0aGUgRXhpdFN0YXR1c1ByZWRpY2F0ZVRlc3QKLS8vIHRlc3Qgc3Vp
dGUuCi1zdGF0aWMgaW50IEtpbGxlZEV4aXRTdGF0dXMoaW50IHNpZ251bSkgewotICBwaWRfdCBj
aGlsZF9waWQgPSBmb3JrKCk7Ci0gIGlmIChjaGlsZF9waWQgPT0gMCkgewotICAgIHJhaXNlKHNp
Z251bSk7Ci0gICAgX2V4aXQoMSk7Ci0gIH0KLSAgaW50IHN0YXR1czsKLSAgd2FpdHBpZChjaGls
ZF9waWQsICZzdGF0dXMsIDApOwotICByZXR1cm4gc3RhdHVzOwotfQotCi0vLyBUZXN0cyB0aGUg
RXhpdGVkV2l0aENvZGUgcHJlZGljYXRlLgotVEVTVChFeGl0U3RhdHVzUHJlZGljYXRlVGVzdCwg
RXhpdGVkV2l0aENvZGUpIHsKLSAgY29uc3QgaW50IHN0YXR1czAgID0gTm9ybWFsRXhpdFN0YXR1
cygwKTsKLSAgY29uc3QgaW50IHN0YXR1czEgID0gTm9ybWFsRXhpdFN0YXR1cygxKTsKLSAgY29u
c3QgaW50IHN0YXR1czQyID0gTm9ybWFsRXhpdFN0YXR1cyg0Mik7Ci0gIGNvbnN0IHRlc3Rpbmc6
OkV4aXRlZFdpdGhDb2RlIHByZWQwKDApOwotICBjb25zdCB0ZXN0aW5nOjpFeGl0ZWRXaXRoQ29k
ZSBwcmVkMSgxKTsKLSAgY29uc3QgdGVzdGluZzo6RXhpdGVkV2l0aENvZGUgcHJlZDQyKDQyKTsK
LSAgRVhQRUNUX1BSRUQxKHByZWQwLCAgc3RhdHVzMCk7Ci0gIEVYUEVDVF9QUkVEMShwcmVkMSwg
IHN0YXR1czEpOwotICBFWFBFQ1RfUFJFRDEocHJlZDQyLCBzdGF0dXM0Mik7Ci0gIEVYUEVDVF9G
QUxTRShwcmVkMChzdGF0dXMxKSk7Ci0gIEVYUEVDVF9GQUxTRShwcmVkNDIoc3RhdHVzMCkpOwot
ICBFWFBFQ1RfRkFMU0UocHJlZDEoc3RhdHVzNDIpKTsKLX0KLQotLy8gVGVzdHMgdGhlIEtpbGxl
ZEJ5U2lnbmFsIHByZWRpY2F0ZS4KLVRFU1QoRXhpdFN0YXR1c1ByZWRpY2F0ZVRlc3QsIEtpbGxl
ZEJ5U2lnbmFsKSB7Ci0gIGNvbnN0IGludCBzdGF0dXNfc2VndiA9IEtpbGxlZEV4aXRTdGF0dXMo
U0lHU0VHVik7Ci0gIGNvbnN0IGludCBzdGF0dXNfa2lsbCA9IEtpbGxlZEV4aXRTdGF0dXMoU0lH
S0lMTCk7Ci0gIGNvbnN0IHRlc3Rpbmc6OktpbGxlZEJ5U2lnbmFsIHByZWRfc2VndihTSUdTRUdW
KTsKLSAgY29uc3QgdGVzdGluZzo6S2lsbGVkQnlTaWduYWwgcHJlZF9raWxsKFNJR0tJTEwpOwot
ICBFWFBFQ1RfUFJFRDEocHJlZF9zZWd2LCBzdGF0dXNfc2Vndik7Ci0gIEVYUEVDVF9QUkVEMShw
cmVkX2tpbGwsIHN0YXR1c19raWxsKTsKLSAgRVhQRUNUX0ZBTFNFKHByZWRfc2VndihzdGF0dXNf
a2lsbCkpOwotICBFWFBFQ1RfRkFMU0UocHJlZF9raWxsKHN0YXR1c19zZWd2KSk7Ci19Ci0KLSMg
ZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKLQotLy8gVGVzdHMgdGhhdCB0aGUgZGVhdGggdGVz
dCBtYWNyb3MgZXhwYW5kIHRvIGNvZGUgd2hpY2ggbWF5IG9yIG1heSBub3QKLS8vIGJlIGZvbGxv
d2VkIGJ5IG9wZXJhdG9yPDwsIGFuZCB0aGF0IGluIGVpdGhlciBjYXNlIHRoZSBjb21wbGV0ZSB0
ZXh0Ci0vLyBjb21wcmlzZXMgb25seSBhIHNpbmdsZSBDKysgc3RhdGVtZW50LgotVEVTVF9GKFRl
c3RGb3JEZWF0aFRlc3QsIFNpbmdsZVN0YXRlbWVudCkgewotICBpZiAoQWx3YXlzRmFsc2UoKSkK
LSAgICAvLyBUaGlzIHdvdWxkIGZhaWwgaWYgZXhlY3V0ZWQ7IHRoaXMgaXMgYSBjb21waWxhdGlv
biB0ZXN0IG9ubHkKLSAgICBBU1NFUlRfREVBVEgocmV0dXJuLCAiIik7Ci0KLSAgaWYgKEFsd2F5
c1RydWUoKSkKLSAgICBFWFBFQ1RfREVBVEgoX2V4aXQoMSksICIiKTsKLSAgZWxzZQotICAgIC8v
IFRoaXMgZW1wdHkgImVsc2UiIGJyYW5jaCBpcyBtZWFudCB0byBlbnN1cmUgdGhhdCBFWFBFQ1Rf
REVBVEgKLSAgICAvLyBkb2Vzbid0IGV4cGFuZCBpbnRvIGFuICJpZiIgc3RhdGVtZW50IHdpdGhv
dXQgYW4gImVsc2UiCi0gICAgOwotCi0gIGlmIChBbHdheXNGYWxzZSgpKQotICAgIEFTU0VSVF9E
RUFUSChyZXR1cm4sICIiKSA8PCAiZGlkIG5vdCBkaWUiOwotCi0gIGlmIChBbHdheXNGYWxzZSgp
KQotICAgIDsKLSAgZWxzZQotICAgIEVYUEVDVF9ERUFUSChfZXhpdCgxKSwgIiIpIDw8IDEgPDwg
MiA8PCAzOwotfQotCi12b2lkIERpZVdpdGhFbWJlZGRlZE51bCgpIHsKLSAgZnByaW50ZihzdGRl
cnIsICJIZWxsbyVjbXkgbnVsbCB3b3JsZC5cbiIsICdcMCcpOwotICBmZmx1c2goc3RkZXJyKTsK
LSAgX2V4aXQoMSk7Ci19Ci0KLSMgaWYgR1RFU1RfVVNFU19QQ1JFCi0KLS8vIFRlc3RzIHRoYXQg
RVhQRUNUX0RFQVRIIGFuZCBBU1NFUlRfREVBVEggd29yayB3aGVuIHRoZSBlcnJvcgotLy8gbWVz
c2FnZSBoYXMgYSBOVUwgY2hhcmFjdGVyIGluIGl0LgotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3Qs
IEVtYmVkZGVkTnVsSW5NZXNzYWdlKSB7Ci0gIEVYUEVDVF9ERUFUSChEaWVXaXRoRW1iZWRkZWRO
dWwoKSwgIm15IG51bGwgd29ybGQiKTsKLSAgQVNTRVJUX0RFQVRIKERpZVdpdGhFbWJlZGRlZE51
bCgpLCAibXkgbnVsbCB3b3JsZCIpOwotfQotCi0jIGVuZGlmICAvLyBHVEVTVF9VU0VTX1BDUkUK
LQotLy8gVGVzdHMgdGhhdCBkZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBp
bnRlcmFjdHMgd2VsbCB3aXRoIHN3aXRjaAotLy8gc3RhdGVtZW50cy4KLVRFU1RfRihUZXN0Rm9y
RGVhdGhUZXN0LCBTd2l0Y2hTdGF0ZW1lbnQpIHsKLSAgLy8gTWljcm9zb2Z0IGNvbXBpbGVyIHVz
dWFsbHkgY29tcGxhaW5zIGFib3V0IHN3aXRjaCBzdGF0ZW1lbnRzIHdpdGhvdXQKLSAgLy8gY2Fz
ZSBsYWJlbHMuIFdlIHN1cHByZXNzIHRoYXQgd2FybmluZyBmb3IgdGhpcyB0ZXN0LgotICBHVEVT
VF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0MDY1KQotCi0gIHN3aXRjaCAoMCkKLSAgICBk
ZWZhdWx0OgotICAgICAgQVNTRVJUX0RFQVRIKF9leGl0KDEpLCAiIikgPDwgImV4aXQgaW4gZGVm
YXVsdCBzd2l0Y2ggaGFuZGxlciI7Ci0KLSAgc3dpdGNoICgwKQotICAgIGNhc2UgMDoKLSAgICAg
IEVYUEVDVF9ERUFUSChfZXhpdCgxKSwgIiIpIDw8ICJleGl0IGluIHN3aXRjaCBjYXNlIjsKLQot
ICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLX0KLQotLy8gVGVzdHMgdGhhdCBh
IHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gY2FuIGJlIHVzZWQgaW4gYSAiZmFzdCIgc3R5bGUKLS8v
IGRlYXRoIHRlc3QuCi1URVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgU3RhdGljTWVtYmVyRnVuY3Rp
b25GYXN0U3R5bGUpIHsKLSAgdGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9
ICJmYXN0IjsKLSAgQVNTRVJUX0RFQVRIKFN0YXRpY01lbWJlckZ1bmN0aW9uKCksICJkZWF0aC4q
U3RhdGljTWVtYmVyIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgYSBtZXRob2Qgb2YgdGhlIHRlc3Qg
Zml4dHVyZSBjYW4gYmUgdXNlZCBpbiBhICJmYXN0IgotLy8gc3R5bGUgZGVhdGggdGVzdC4KLVRF
U1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBNZW1iZXJGdW5jdGlvbkZhc3RTdHlsZSkgewotICB0ZXN0
aW5nOjpHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID0gImZhc3QiOwotICBzaG91bGRfZGll
XyA9IHRydWU7Ci0gIEVYUEVDVF9ERUFUSChNZW1iZXJGdW5jdGlvbigpLCAiaW5zaWRlLipNZW1i
ZXJGdW5jdGlvbiIpOwotfQotCi12b2lkIENoYW5nZVRvUm9vdERpcigpIHsgcG9zaXg6OkNoRGly
KEdURVNUX1BBVEhfU0VQXyk7IH0KLQotLy8gVGVzdHMgdGhhdCBkZWF0aCB0ZXN0cyB3b3JrIGV2
ZW4gaWYgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGhhcyBiZWVuCi0vLyBjaGFuZ2VkLgotVEVTVF9G
KFRlc3RGb3JEZWF0aFRlc3QsIEZhc3REZWF0aFRlc3RJbkNoYW5nZWREaXIpIHsKLSAgdGVzdGlu
Zzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9ICJmYXN0IjsKLQotICBDaGFuZ2VUb1Jv
b3REaXIoKTsKLSAgRVhQRUNUX0VYSVQoX2V4aXQoMSksIHRlc3Rpbmc6OkV4aXRlZFdpdGhDb2Rl
KDEpLCAiIik7Ci0KLSAgQ2hhbmdlVG9Sb290RGlyKCk7Ci0gIEFTU0VSVF9ERUFUSChfZXhpdCgx
KSwgIiIpOwotfQotCi0jIGlmIEdURVNUX09TX0xJTlVYCi12b2lkIFNpZ3Byb2ZBY3Rpb24oaW50
LCBzaWdpbmZvX3QqLCB2b2lkKikgeyAvKiBubyBvcCAqLyB9Ci0KLS8vIFNldHMgU0lHUFJPRiBh
Y3Rpb24gYW5kIElUSU1FUl9QUk9GIHRpbWVyIChpbnRlcnZhbDogMW1zKS4KLXZvaWQgU2V0U2ln
cHJvZkFjdGlvbkFuZFRpbWVyKCkgewotICBzdHJ1Y3QgaXRpbWVydmFsIHRpbWVyOwotICB0aW1l
ci5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOwotICB0aW1lci5pdF9pbnRlcnZhbC50dl91c2VjID0g
MTsKLSAgdGltZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKLSAgQVNTRVJUX0VRKDAs
IHNldGl0aW1lcihJVElNRVJfUFJPRiwgJnRpbWVyLCBOVUxMKSk7Ci0gIHN0cnVjdCBzaWdhY3Rp
b24gc2lnbmFsX2FjdGlvbjsKLSAgbWVtc2V0KCZzaWduYWxfYWN0aW9uLCAwLCBzaXplb2Yoc2ln
bmFsX2FjdGlvbikpOwotICBzaWdlbXB0eXNldCgmc2lnbmFsX2FjdGlvbi5zYV9tYXNrKTsKLSAg
c2lnbmFsX2FjdGlvbi5zYV9zaWdhY3Rpb24gPSBTaWdwcm9mQWN0aW9uOwotICBzaWduYWxfYWN0
aW9uLnNhX2ZsYWdzID0gU0FfUkVTVEFSVCB8IFNBX1NJR0lORk87Ci0gIEFTU0VSVF9FUSgwLCBz
aWdhY3Rpb24oU0lHUFJPRiwgJnNpZ25hbF9hY3Rpb24sIE5VTEwpKTsKLX0KLQotLy8gRGlzYWJs
ZXMgSVRJTUVSX1BST0YgdGltZXIgYW5kIGlnbm9yZXMgU0lHUFJPRiBzaWduYWwuCi12b2lkIERp
c2FibGVTaWdwcm9mQWN0aW9uQW5kVGltZXIoc3RydWN0IHNpZ2FjdGlvbiogb2xkX3NpZ25hbF9h
Y3Rpb24pIHsKLSAgc3RydWN0IGl0aW1lcnZhbCB0aW1lcjsKLSAgdGltZXIuaXRfaW50ZXJ2YWwu
dHZfc2VjID0gMDsKLSAgdGltZXIuaXRfaW50ZXJ2YWwudHZfdXNlYyA9IDA7Ci0gIHRpbWVyLml0
X3ZhbHVlID0gdGltZXIuaXRfaW50ZXJ2YWw7Ci0gIEFTU0VSVF9FUSgwLCBzZXRpdGltZXIoSVRJ
TUVSX1BST0YsICZ0aW1lciwgTlVMTCkpOwotICBzdHJ1Y3Qgc2lnYWN0aW9uIHNpZ25hbF9hY3Rp
b247Ci0gIG1lbXNldCgmc2lnbmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNpZ25hbF9hY3Rpb24pKTsK
LSAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rpb24uc2FfbWFzayk7Ci0gIHNpZ25hbF9hY3Rpb24u
c2FfaGFuZGxlciA9IFNJR19JR047Ci0gIEFTU0VSVF9FUSgwLCBzaWdhY3Rpb24oU0lHUFJPRiwg
JnNpZ25hbF9hY3Rpb24sIG9sZF9zaWduYWxfYWN0aW9uKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQg
ZGVhdGggdGVzdHMgd29yayB3aGVuIFNJR1BST0YgaGFuZGxlciBhbmQgdGltZXIgYXJlIHNldC4K
LVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBGYXN0U2lncHJvZkFjdGlvblNldCkgewotICB0ZXN0
aW5nOjpHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID0gImZhc3QiOwotICBTZXRTaWdwcm9m
QWN0aW9uQW5kVGltZXIoKTsKLSAgRVhQRUNUX0RFQVRIKF9leGl0KDEpLCAiIik7Ci0gIHN0cnVj
dCBzaWdhY3Rpb24gb2xkX3NpZ25hbF9hY3Rpb247Ci0gIERpc2FibGVTaWdwcm9mQWN0aW9uQW5k
VGltZXIoJm9sZF9zaWduYWxfYWN0aW9uKTsKLSAgRVhQRUNUX1RSVUUob2xkX3NpZ25hbF9hY3Rp
b24uc2Ffc2lnYWN0aW9uID09IFNpZ3Byb2ZBY3Rpb24pOwotfQotCi1URVNUX0YoVGVzdEZvckRl
YXRoVGVzdCwgVGhyZWFkU2FmZVNpZ3Byb2ZBY3Rpb25TZXQpIHsKLSAgdGVzdGluZzo6R1RFU1Rf
RkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9ICJ0aHJlYWRzYWZlIjsKLSAgU2V0U2lncHJvZkFjdGlv
bkFuZFRpbWVyKCk7Ci0gIEVYUEVDVF9ERUFUSChfZXhpdCgxKSwgIiIpOwotICBzdHJ1Y3Qgc2ln
YWN0aW9uIG9sZF9zaWduYWxfYWN0aW9uOwotICBEaXNhYmxlU2lncHJvZkFjdGlvbkFuZFRpbWVy
KCZvbGRfc2lnbmFsX2FjdGlvbik7Ci0gIEVYUEVDVF9UUlVFKG9sZF9zaWduYWxfYWN0aW9uLnNh
X3NpZ2FjdGlvbiA9PSBTaWdwcm9mQWN0aW9uKTsKLX0KLSMgZW5kaWYgIC8vIEdURVNUX09TX0xJ
TlVYCi0KLS8vIFJlcGVhdHMgYSByZXByZXNlbnRhdGl2ZSBzYW1wbGUgb2YgZGVhdGggdGVzdHMg
aW4gdGhlICJ0aHJlYWRzYWZlIiBzdHlsZToKLQotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIFN0
YXRpY01lbWJlckZ1bmN0aW9uVGhyZWFkc2FmZVN0eWxlKSB7Ci0gIHRlc3Rpbmc6OkdURVNUX0ZM
QUcoZGVhdGhfdGVzdF9zdHlsZSkgPSAidGhyZWFkc2FmZSI7Ci0gIEFTU0VSVF9ERUFUSChTdGF0
aWNNZW1iZXJGdW5jdGlvbigpLCAiZGVhdGguKlN0YXRpY01lbWJlciIpOwotfQotCi1URVNUX0Yo
VGVzdEZvckRlYXRoVGVzdCwgTWVtYmVyRnVuY3Rpb25UaHJlYWRzYWZlU3R5bGUpIHsKLSAgdGVz
dGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9ICJ0aHJlYWRzYWZlIjsKLSAgc2hv
dWxkX2RpZV8gPSB0cnVlOwotICBFWFBFQ1RfREVBVEgoTWVtYmVyRnVuY3Rpb24oKSwgImluc2lk
ZS4qTWVtYmVyRnVuY3Rpb24iKTsKLX0KLQotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIFRocmVh
ZHNhZmVEZWF0aFRlc3RJbkxvb3ApIHsKLSAgdGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0
X3N0eWxlKSA9ICJ0aHJlYWRzYWZlIjsKLQotICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkK
LSAgICBFWFBFQ1RfRVhJVChfZXhpdChpKSwgdGVzdGluZzo6RXhpdGVkV2l0aENvZGUoaSksICIi
KSA8PCAiOiBpID0gIiA8PCBpOwotfQotCi1URVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgVGhyZWFk
c2FmZURlYXRoVGVzdEluQ2hhbmdlZERpcikgewotICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRlYXRo
X3Rlc3Rfc3R5bGUpID0gInRocmVhZHNhZmUiOwotCi0gIENoYW5nZVRvUm9vdERpcigpOwotICBF
WFBFQ1RfRVhJVChfZXhpdCgxKSwgdGVzdGluZzo6RXhpdGVkV2l0aENvZGUoMSksICIiKTsKLQot
ICBDaGFuZ2VUb1Jvb3REaXIoKTsKLSAgQVNTRVJUX0RFQVRIKF9leGl0KDEpLCAiIik7Ci19Ci0K
LVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBNaXhlZFN0eWxlcykgewotICB0ZXN0aW5nOjpHVEVT
VF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID0gInRocmVhZHNhZmUiOwotICBFWFBFQ1RfREVBVEgo
X2V4aXQoMSksICIiKTsKLSAgdGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9
ICJmYXN0IjsKLSAgRVhQRUNUX0RFQVRIKF9leGl0KDEpLCAiIik7Ci19Ci0KLSMgaWYgR1RFU1Rf
SEFTX0NMT05FICYmIEdURVNUX0hBU19QVEhSRUFECi0KLW5hbWVzcGFjZSB7Ci0KLWJvb2wgcHRo
cmVhZF9mbGFnOwotCi12b2lkIFNldFB0aHJlYWRGbGFnKCkgewotICBwdGhyZWFkX2ZsYWcgPSB0
cnVlOwotfQotCi19ICAvLyBuYW1lc3BhY2UKLQotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIERv
ZXNOb3RFeGVjdXRlQXRmb3JrSG9va3MpIHsKLSAgaWYgKCF0ZXN0aW5nOjpHVEVTVF9GTEFHKGRl
YXRoX3Rlc3RfdXNlX2ZvcmspKSB7Ci0gICAgdGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0
X3N0eWxlKSA9ICJ0aHJlYWRzYWZlIjsKLSAgICBwdGhyZWFkX2ZsYWcgPSBmYWxzZTsKLSAgICBB
U1NFUlRfRVEoMCwgcHRocmVhZF9hdGZvcmsoJlNldFB0aHJlYWRGbGFnLCBOVUxMLCBOVUxMKSk7
Ci0gICAgQVNTRVJUX0RFQVRIKF9leGl0KDEpLCAiIik7Ci0gICAgQVNTRVJUX0ZBTFNFKHB0aHJl
YWRfZmxhZyk7Ci0gIH0KLX0KLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NMT05FICYmIEdURVNU
X0hBU19QVEhSRUFECi0KLS8vIFRlc3RzIHRoYXQgYSBtZXRob2Qgb2YgYW5vdGhlciBjbGFzcyBj
YW4gYmUgdXNlZCBpbiBhIGRlYXRoIHRlc3QuCi1URVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgTWV0
aG9kT2ZBbm90aGVyQ2xhc3MpIHsKLSAgY29uc3QgTWF5RGllIHgodHJ1ZSk7Ci0gIEFTU0VSVF9E
RUFUSCh4Lk1lbWJlckZ1bmN0aW9uKCksICJNYXlEaWVcXDpcXDpNZW1iZXJGdW5jdGlvbiIpOwot
fQotCi0vLyBUZXN0cyB0aGF0IGEgZ2xvYmFsIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGluIGEgZGVh
dGggdGVzdC4KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBHbG9iYWxGdW5jdGlvbikgewotICBF
WFBFQ1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgIkdsb2JhbEZ1bmN0aW9uIik7Ci19Ci0KLS8v
IFRlc3RzIHRoYXQgYW55IHZhbHVlIGNvbnZlcnRpYmxlIHRvIGFuIFJFIHdvcmtzIGFzIGEgc2Vj
b25kCi0vLyBhcmd1bWVudCB0byBFWFBFQ1RfREVBVEguCi1URVNUX0YoVGVzdEZvckRlYXRoVGVz
dCwgQWNjZXB0c0FueXRoaW5nQ29udmVydGlibGVUb1JFKSB7Ci0gIHN0YXRpYyBjb25zdCBjaGFy
IHJlZ2V4X2Nfc3RyW10gPSAiR2xvYmFsRnVuY3Rpb24iOwotICBFWFBFQ1RfREVBVEgoR2xvYmFs
RnVuY3Rpb24oKSwgcmVnZXhfY19zdHIpOwotCi0gIGNvbnN0IHRlc3Rpbmc6OmludGVybmFsOjpS
RSByZWdleChyZWdleF9jX3N0cik7Ci0gIEVYUEVDVF9ERUFUSChHbG9iYWxGdW5jdGlvbigpLCBy
ZWdleCk7Ci0KLSMgaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQotICBjb25zdCA6OnN0cmlu
ZyByZWdleF9zdHIocmVnZXhfY19zdHIpOwotICBFWFBFQ1RfREVBVEgoR2xvYmFsRnVuY3Rpb24o
KSwgcmVnZXhfc3RyKTsKLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQot
IyBpZiAhR1RFU1RfVVNFU19QQ1JFCi0KLSAgY29uc3QgOjpzdGQ6OnN0cmluZyByZWdleF9zdGRf
c3RyKHJlZ2V4X2Nfc3RyKTsKLSAgRVhQRUNUX0RFQVRIKEdsb2JhbEZ1bmN0aW9uKCksIHJlZ2V4
X3N0ZF9zdHIpOwotCi0jIGVuZGlmICAvLyAhR1RFU1RfVVNFU19QQ1JFCi19Ci0KLS8vIFRlc3Rz
IHRoYXQgYSBub24tdm9pZCBmdW5jdGlvbiBjYW4gYmUgdXNlZCBpbiBhIGRlYXRoIHRlc3QuCi1U
RVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgTm9uVm9pZEZ1bmN0aW9uKSB7Ci0gIEFTU0VSVF9ERUFU
SChOb25Wb2lkRnVuY3Rpb24oKSwgIk5vblZvaWRGdW5jdGlvbiIpOwotfQotCi0vLyBUZXN0cyB0
aGF0IGZ1bmN0aW9ucyB0aGF0IHRha2UgcGFyYW1ldGVyKHMpIGNhbiBiZSB1c2VkIGluIGEgZGVh
dGggdGVzdC4KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBGdW5jdGlvbldpdGhQYXJhbWV0ZXIp
IHsKLSAgRVhQRUNUX0RFQVRIKERpZUlmKHRydWUpLCAiRGllSWZcXChcXCkiKTsKLSAgRVhQRUNU
X0RFQVRIKERpZUlmTGVzc1RoYW4oMiwgMyksICJEaWVJZkxlc3NUaGFuIik7Ci19Ci0KLS8vIFRl
c3RzIHRoYXQgQVNTRVJUX0RFQVRIIGNhbiBiZSB1c2VkIG91dHNpZGUgYSBURVNULCBURVNUX0Ys
IG9yIHRlc3QgZml4dHVyZS4KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBPdXRzaWRlRml4dHVy
ZSkgewotICBEZWF0aFRlc3RTdWJyb3V0aW5lKCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgZGVhdGgg
dGVzdHMgY2FuIGJlIGRvbmUgaW5zaWRlIGEgbG9vcC4KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0
LCBJbnNpZGVMb29wKSB7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0gICAgRVhQ
RUNUX0RFQVRIKERpZUlmTGVzc1RoYW4oLTEsIGkpLCAiRGllSWZMZXNzVGhhbiIpIDw8ICJ3aGVy
ZSBpID09ICIgPDwgaTsKLSAgfQotfQotCi0vLyBUZXN0cyB0aGF0IGEgY29tcG91bmQgc3RhdGVt
ZW50IGNhbiBiZSB1c2VkIGluIGEgZGVhdGggdGVzdC4KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0
LCBDb21wb3VuZFN0YXRlbWVudCkgewotICBFWFBFQ1RfREVBVEgoeyAgLy8gTk9MSU5UCi0gICAg
Y29uc3QgaW50IHggPSAyOwotICAgIGNvbnN0IGludCB5ID0geCArIDE7Ci0gICAgRGllSWZMZXNz
VGhhbih4LCB5KTsKLSAgfSwKLSAgIkRpZUlmTGVzc1RoYW4iKTsKLX0KLQotLy8gVGVzdHMgdGhh
dCBjb2RlIHRoYXQgZG9lc24ndCBkaWUgY2F1c2VzIGEgZGVhdGggdGVzdCB0byBmYWlsLgotVEVT
VF9GKFRlc3RGb3JEZWF0aFRlc3QsIERvZXNOb3REaWUpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZB
SUxVUkUoRVhQRUNUX0RFQVRIKERpZUlmKGZhbHNlKSwgIkRpZUlmIiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICJmYWlsZWQgdG8gZGllIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgYSBkZWF0
aCB0ZXN0IGZhaWxzIHdoZW4gdGhlIGVycm9yIG1lc3NhZ2UgaXNuJ3QgZXhwZWN0ZWQuCi1URVNU
X0YoVGVzdEZvckRlYXRoVGVzdCwgRXJyb3JNZXNzYWdlTWlzbWF0Y2gpIHsKLSAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX0RFQVRIKERpZUlmKHRydWUp
LCAiRGllSWZMZXNzVGhhbiIpIDw8ICJFbmQgb2YgZGVhdGggdGVzdCBtZXNzYWdlLiI7Ci0gIH0s
ICJkaWVkIGJ1dCBub3Qgd2l0aCBleHBlY3RlZCBlcnJvciIpOwotfQotCi0vLyBPbiBleGl0LCAq
YWJvcnRlZCB3aWxsIGJlIHRydWUgaWZmIHRoZSBFWFBFQ1RfREVBVEgoKSBzdGF0ZW1lbnQKLS8v
IGFib3J0ZWQgdGhlIGZ1bmN0aW9uLgotdm9pZCBFeHBlY3REZWF0aFRlc3RIZWxwZXIoYm9vbCog
YWJvcnRlZCkgewotICAqYWJvcnRlZCA9IHRydWU7Ci0gIEVYUEVDVF9ERUFUSChEaWVJZihmYWxz
ZSksICJEaWVJZiIpOyAgLy8gVGhpcyBhc3NlcnRpb24gc2hvdWxkIGZhaWwuCi0gICphYm9ydGVk
ID0gZmFsc2U7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgRVhQRUNUX0RFQVRIIGRvZXNuJ3QgYWJvcnQg
dGhlIHRlc3Qgb24gZmFpbHVyZS4KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBFWFBFQ1RfREVB
VEgpIHsKLSAgYm9vbCBhYm9ydGVkID0gdHJ1ZTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
RXhwZWN0RGVhdGhUZXN0SGVscGVyKCZhYm9ydGVkKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgImZhaWxlZCB0byBkaWUiKTsKLSAgRVhQRUNUX0ZBTFNFKGFib3J0ZWQpOwotfQotCi0vLyBU
ZXN0cyB0aGF0IEFTU0VSVF9ERUFUSCBkb2VzIGFib3J0IHRoZSB0ZXN0IG9uIGZhaWx1cmUuCi1U
RVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgQVNTRVJUX0RFQVRIKSB7Ci0gIHN0YXRpYyBib29sIGFi
b3J0ZWQ7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIGFib3J0ZWQg
PSB0cnVlOwotICAgIEFTU0VSVF9ERUFUSChEaWVJZihmYWxzZSksICJEaWVJZiIpOyAgLy8gVGhp
cyBhc3NlcnRpb24gc2hvdWxkIGZhaWwuCi0gICAgYWJvcnRlZCA9IGZhbHNlOwotICB9LCAiZmFp
bGVkIHRvIGRpZSIpOwotICBFWFBFQ1RfVFJVRShhYm9ydGVkKTsKLX0KLQotLy8gVGVzdHMgdGhh
dCBFWFBFQ1RfREVBVEggZXZhbHVhdGVzIHRoZSBhcmd1bWVudHMgZXhhY3RseSBvbmNlLgotVEVT
VF9GKFRlc3RGb3JEZWF0aFRlc3QsIFNpbmdsZUV2YWx1YXRpb24pIHsKLSAgaW50IHggPSAzOwot
ICBFWFBFQ1RfREVBVEgoRGllSWYoKCsreCkgPT0gNCksICJEaWVJZiIpOwotCi0gIGNvbnN0IGNo
YXIqIHJlZ2V4ID0gIkRpZUlmIjsKLSAgY29uc3QgY2hhciogcmVnZXhfc2F2ZSA9IHJlZ2V4Owot
ICBFWFBFQ1RfREVBVEgoRGllSWZMZXNzVGhhbigzLCA0KSwgcmVnZXgrKyk7Ci0gIEVYUEVDVF9F
UShyZWdleF9zYXZlICsgMSwgcmVnZXgpOwotfQotCi0vLyBUZXN0cyB0aGF0IHJ1bi1hd2F5IGRl
YXRoIHRlc3RzIGFyZSByZXBvcnRlZCBhcyBmYWlsdXJlcy4KLVRFU1RfRihUZXN0Rm9yRGVhdGhU
ZXN0LCBSdW5hd2F5SXNGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVD
VF9ERUFUSChzdGF0aWNfY2FzdDx2b2lkPigwKSwgIkZvbyIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZmFpbGVkIHRvIGRpZS4iKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBkZWF0aCB0ZXN0
cyByZXBvcnQgZXhlY3V0aW5nICdyZXR1cm4nIGluIHRoZSBzdGF0ZW1lbnQgYXMKLS8vIGZhaWx1
cmUuCi1URVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgUmV0dXJuSXNGYWlsdXJlKSB7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ERUFUSChyZXR1cm4sICJCYXIiKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgImlsbGVnYWwgcmV0dXJuIGluIHRlc3Qgc3RhdGVtZW50LiIpOwotfQotCi0v
LyBUZXN0cyB0aGF0IEVYUEVDVF9ERUJVR19ERUFUSCB3b3JrcyBhcyBleHBlY3RlZCwgdGhhdCBp
cywgeW91IGNhbiBzdHJlYW0gYQotLy8gbWVzc2FnZSB0byBpdCwgYW5kIGluIGRlYnVnIG1vZGUg
aXQ6Ci0vLyAxLiBBc3NlcnRzIG9uIGRlYXRoLgotLy8gMi4gSGFzIG5vIHNpZGUgZWZmZWN0Lgot
Ly8KLS8vIEFuZCBpbiBvcHQgbW9kZSwgaXQ6Ci0vLyAxLiAgSGFzIHNpZGUgZWZmZWN0cyBidXQg
ZG9lcyBub3QgYXNzZXJ0LgotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIFRlc3RFeHBlY3REZWJ1
Z0RlYXRoKSB7Ci0gIGludCBzaWRlZWZmZWN0ID0gMDsKLQotICBFWFBFQ1RfREVCVUdfREVBVEgo
RGllSW5EZWJ1Z0Vsc2UxMigmc2lkZWVmZmVjdCksICJkZWF0aC4qRGllSW5EZWJ1Z0Vsc2UxMiIp
Ci0gICAgICA8PCAiTXVzdCBhY2NlcHQgYSBzdHJlYW1lZCBtZXNzYWdlIjsKLQotIyBpZmRlZiBO
REVCVUcKLQotICAvLyBDaGVja3MgdGhhdCB0aGUgYXNzaWdubWVudCBvY2N1cnMgaW4gb3B0IG1v
ZGUgKHNpZGVlZmZlY3QpLgotICBFWFBFQ1RfRVEoMTIsIHNpZGVlZmZlY3QpOwotCi0jIGVsc2UK
LQotICAvLyBDaGVja3MgdGhhdCB0aGUgYXNzaWdubWVudCBkb2VzIG5vdCBvY2N1ciBpbiBkYmcg
bW9kZSAobm8gc2lkZWVmZmVjdCkuCi0gIEVYUEVDVF9FUSgwLCBzaWRlZWZmZWN0KTsKLQotIyBl
bmRpZgotfQotCi0vLyBUZXN0cyB0aGF0IEFTU0VSVF9ERUJVR19ERUFUSCB3b3JrcyBhcyBleHBl
Y3RlZCwgdGhhdCBpcywgeW91IGNhbiBzdHJlYW0gYQotLy8gbWVzc2FnZSB0byBpdCwgYW5kIGlu
IGRlYnVnIG1vZGUgaXQ6Ci0vLyAxLiBBc3NlcnRzIG9uIGRlYXRoLgotLy8gMi4gSGFzIG5vIHNp
ZGUgZWZmZWN0LgotLy8KLS8vIEFuZCBpbiBvcHQgbW9kZSwgaXQ6Ci0vLyAxLiAgSGFzIHNpZGUg
ZWZmZWN0cyBidXQgZG9lcyBub3QgYXNzZXJ0LgotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIFRl
c3RBc3NlcnREZWJ1Z0RlYXRoKSB7Ci0gIGludCBzaWRlZWZmZWN0ID0gMDsKLQotICBBU1NFUlRf
REVCVUdfREVBVEgoRGllSW5EZWJ1Z0Vsc2UxMigmc2lkZWVmZmVjdCksICJkZWF0aC4qRGllSW5E
ZWJ1Z0Vsc2UxMiIpCi0gICAgICA8PCAiTXVzdCBhY2NlcHQgYSBzdHJlYW1lZCBtZXNzYWdlIjsK
LQotIyBpZmRlZiBOREVCVUcKLQotICAvLyBDaGVja3MgdGhhdCB0aGUgYXNzaWdubWVudCBvY2N1
cnMgaW4gb3B0IG1vZGUgKHNpZGVlZmZlY3QpLgotICBFWFBFQ1RfRVEoMTIsIHNpZGVlZmZlY3Qp
OwotCi0jIGVsc2UKLQotICAvLyBDaGVja3MgdGhhdCB0aGUgYXNzaWdubWVudCBkb2VzIG5vdCBv
Y2N1ciBpbiBkYmcgbW9kZSAobm8gc2lkZWVmZmVjdCkuCi0gIEVYUEVDVF9FUSgwLCBzaWRlZWZm
ZWN0KTsKLQotIyBlbmRpZgotfQotCi0jIGlmbmRlZiBOREVCVUcKLQotdm9pZCBFeHBlY3REZWJ1
Z0RlYXRoSGVscGVyKGJvb2wqIGFib3J0ZWQpIHsKLSAgKmFib3J0ZWQgPSB0cnVlOwotICBFWFBF
Q1RfREVCVUdfREVBVEgocmV0dXJuLCAiIikgPDwgIlRoaXMgaXMgZXhwZWN0ZWQgdG8gZmFpbC4i
OwotICAqYWJvcnRlZCA9IGZhbHNlOwotfQotCi0jICBpZiBHVEVTVF9PU19XSU5ET1dTCi1URVNU
KFBvcFVwRGVhdGhUZXN0LCBEb2VzTm90U2hvd1BvcFVwT25BYm9ydCkgewotICBwcmludGYoIlRo
aXMgdGVzdCBzaG91bGQgYmUgY29uc2lkZXJlZCBmYWlsaW5nIGlmIGl0IHNob3dzICIKLSAgICAg
ICAgICJhbnkgcG9wLXVwIGRpYWxvZ3MuXG4iKTsKLSAgZmZsdXNoKHN0ZG91dCk7Ci0KLSAgRVhQ
RUNUX0RFQVRIKHsKLSAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpID0g
ZmFsc2U7Ci0gICAgYWJvcnQoKTsKLSAgfSwgIiIpOwotfQotIyAgZW5kaWYgIC8vIEdURVNUX09T
X1dJTkRPV1MKLQotLy8gVGVzdHMgdGhhdCBFWFBFQ1RfREVCVUdfREVBVEggaW4gZGVidWcgbW9k
ZSBkb2VzIG5vdCBhYm9ydAotLy8gdGhlIGZ1bmN0aW9uLgotVEVTVF9GKFRlc3RGb3JEZWF0aFRl
c3QsIEV4cGVjdERlYnVnRGVhdGhEb2VzTm90QWJvcnQpIHsKLSAgYm9vbCBhYm9ydGVkID0gdHJ1
ZTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRXhwZWN0RGVidWdEZWF0aEhlbHBlcigmYWJv
cnRlZCksICIiKTsKLSAgRVhQRUNUX0ZBTFNFKGFib3J0ZWQpOwotfQotCi12b2lkIEFzc2VydERl
YnVnRGVhdGhIZWxwZXIoYm9vbCogYWJvcnRlZCkgewotICAqYWJvcnRlZCA9IHRydWU7Ci0gIEdU
RVNUX0xPR18oSU5GTykgPDwgIkJlZm9yZSBBU1NFUlRfREVCVUdfREVBVEgiOwotICBBU1NFUlRf
REVCVUdfREVBVEgoR1RFU1RfTE9HXyhJTkZPKSA8PCAiSW4gQVNTRVJUX0RFQlVHX0RFQVRIIjsg
cmV0dXJuLCAiIikKLSAgICAgIDw8ICJUaGlzIGlzIGV4cGVjdGVkIHRvIGZhaWwuIjsKLSAgR1RF
U1RfTE9HXyhJTkZPKSA8PCAiQWZ0ZXIgQVNTRVJUX0RFQlVHX0RFQVRIIjsKLSAgKmFib3J0ZWQg
PSBmYWxzZTsKLX0KLQotLy8gVGVzdHMgdGhhdCBBU1NFUlRfREVCVUdfREVBVEggaW4gZGVidWcg
bW9kZSBhYm9ydHMgdGhlIGZ1bmN0aW9uIG9uCi0vLyBmYWlsdXJlLgotVEVTVF9GKFRlc3RGb3JE
ZWF0aFRlc3QsIEFzc2VydERlYnVnRGVhdGhBYm9ydHMpIHsKLSAgc3RhdGljIGJvb2wgYWJvcnRl
ZDsKLSAgYWJvcnRlZCA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBc3NlcnREZWJ1
Z0RlYXRoSGVscGVyKCZhYm9ydGVkKSwgIiIpOwotICBFWFBFQ1RfVFJVRShhYm9ydGVkKTsKLX0K
LQotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIEFzc2VydERlYnVnRGVhdGhBYm9ydHMyKSB7Ci0g
IHN0YXRpYyBib29sIGFib3J0ZWQ7Ci0gIGFib3J0ZWQgPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFM
X0ZBSUxVUkUoQXNzZXJ0RGVidWdEZWF0aEhlbHBlcigmYWJvcnRlZCksICIiKTsKLSAgRVhQRUNU
X1RSVUUoYWJvcnRlZCk7Ci19Ci0KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBBc3NlcnREZWJ1
Z0RlYXRoQWJvcnRzMykgewotICBzdGF0aWMgYm9vbCBhYm9ydGVkOwotICBhYm9ydGVkID0gZmFs
c2U7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFzc2VydERlYnVnRGVhdGhIZWxwZXIoJmFib3J0
ZWQpLCAiIik7Ci0gIEVYUEVDVF9UUlVFKGFib3J0ZWQpOwotfQotCi1URVNUX0YoVGVzdEZvckRl
YXRoVGVzdCwgQXNzZXJ0RGVidWdEZWF0aEFib3J0czQpIHsKLSAgc3RhdGljIGJvb2wgYWJvcnRl
ZDsKLSAgYWJvcnRlZCA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBc3NlcnREZWJ1
Z0RlYXRoSGVscGVyKCZhYm9ydGVkKSwgIiIpOwotICBFWFBFQ1RfVFJVRShhYm9ydGVkKTsKLX0K
LQotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIEFzc2VydERlYnVnRGVhdGhBYm9ydHM1KSB7Ci0g
IHN0YXRpYyBib29sIGFib3J0ZWQ7Ci0gIGFib3J0ZWQgPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFM
X0ZBSUxVUkUoQXNzZXJ0RGVidWdEZWF0aEhlbHBlcigmYWJvcnRlZCksICIiKTsKLSAgRVhQRUNU
X1RSVUUoYWJvcnRlZCk7Ci19Ci0KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBBc3NlcnREZWJ1
Z0RlYXRoQWJvcnRzNikgewotICBzdGF0aWMgYm9vbCBhYm9ydGVkOwotICBhYm9ydGVkID0gZmFs
c2U7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFzc2VydERlYnVnRGVhdGhIZWxwZXIoJmFib3J0
ZWQpLCAiIik7Ci0gIEVYUEVDVF9UUlVFKGFib3J0ZWQpOwotfQotCi1URVNUX0YoVGVzdEZvckRl
YXRoVGVzdCwgQXNzZXJ0RGVidWdEZWF0aEFib3J0czcpIHsKLSAgc3RhdGljIGJvb2wgYWJvcnRl
ZDsKLSAgYWJvcnRlZCA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBc3NlcnREZWJ1
Z0RlYXRoSGVscGVyKCZhYm9ydGVkKSwgIiIpOwotICBFWFBFQ1RfVFJVRShhYm9ydGVkKTsKLX0K
LQotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIEFzc2VydERlYnVnRGVhdGhBYm9ydHM4KSB7Ci0g
IHN0YXRpYyBib29sIGFib3J0ZWQ7Ci0gIGFib3J0ZWQgPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFM
X0ZBSUxVUkUoQXNzZXJ0RGVidWdEZWF0aEhlbHBlcigmYWJvcnRlZCksICIiKTsKLSAgRVhQRUNU
X1RSVUUoYWJvcnRlZCk7Ci19Ci0KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBBc3NlcnREZWJ1
Z0RlYXRoQWJvcnRzOSkgewotICBzdGF0aWMgYm9vbCBhYm9ydGVkOwotICBhYm9ydGVkID0gZmFs
c2U7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFzc2VydERlYnVnRGVhdGhIZWxwZXIoJmFib3J0
ZWQpLCAiIik7Ci0gIEVYUEVDVF9UUlVFKGFib3J0ZWQpOwotfQotCi1URVNUX0YoVGVzdEZvckRl
YXRoVGVzdCwgQXNzZXJ0RGVidWdEZWF0aEFib3J0czEwKSB7Ci0gIHN0YXRpYyBib29sIGFib3J0
ZWQ7Ci0gIGFib3J0ZWQgPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQXNzZXJ0RGVi
dWdEZWF0aEhlbHBlcigmYWJvcnRlZCksICIiKTsKLSAgRVhQRUNUX1RSVUUoYWJvcnRlZCk7Ci19
Ci0KLSMgZW5kaWYgIC8vIF9OREVCVUcKLQotLy8gVGVzdHMgdGhlICpfRVhJVCBmYW1pbHkgb2Yg
bWFjcm9zLCB1c2luZyBhIHZhcmlldHkgb2YgcHJlZGljYXRlcy4KLXN0YXRpYyB2b2lkIFRlc3RF
eGl0TWFjcm9zKCkgewotICBFWFBFQ1RfRVhJVChfZXhpdCgxKSwgIHRlc3Rpbmc6OkV4aXRlZFdp
dGhDb2RlKDEpLCAgIiIpOwotICBBU1NFUlRfRVhJVChfZXhpdCg0MiksIHRlc3Rpbmc6OkV4aXRl
ZFdpdGhDb2RlKDQyKSwgIiIpOwotCi0jIGlmIEdURVNUX09TX1dJTkRPV1MKLQotICAvLyBPZiBh
bGwgc2lnbmFscyBlZmZlY3RzIG9uIHRoZSBwcm9jZXNzIGV4aXQgY29kZSwgb25seSB0aG9zZSBv
ZiBTSUdBQlJUCi0gIC8vIGFyZSBkb2N1bWVudGVkIG9uIFdpbmRvd3MuCi0gIC8vIFNlZSBodHRw
Oi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvZHd3emt0NGMoVlMuNzEpLmFzcHgu
Ci0gIEVYUEVDVF9FWElUKHJhaXNlKFNJR0FCUlQpLCB0ZXN0aW5nOjpFeGl0ZWRXaXRoQ29kZSgz
KSwgIiIpIDw8ICJiX2FyIjsKLQotIyBlbHNlCi0KLSAgRVhQRUNUX0VYSVQocmFpc2UoU0lHS0lM
TCksIHRlc3Rpbmc6OktpbGxlZEJ5U2lnbmFsKFNJR0tJTEwpLCAiIikgPDwgImZvbyI7Ci0gIEFT
U0VSVF9FWElUKHJhaXNlKFNJR1VTUjIpLCB0ZXN0aW5nOjpLaWxsZWRCeVNpZ25hbChTSUdVU1Iy
KSwgIiIpIDw8ICJiYXIiOwotCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAot
ICAgIEFTU0VSVF9FWElUKF9leGl0KDApLCB0ZXN0aW5nOjpLaWxsZWRCeVNpZ25hbChTSUdTRUdW
KSwgIiIpCi0gICAgICA8PCAiVGhpcyBmYWlsdXJlIGlzIGV4cGVjdGVkLCB0b28uIjsKLSAgfSwg
IlRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZCwgdG9vLiIpOwotCi0jIGVuZGlmICAvLyBHVEVTVF9P
U19XSU5ET1dTCi0KLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAg
RVhQRUNUX0VYSVQocmFpc2UoU0lHU0VHViksIHRlc3Rpbmc6OkV4aXRlZFdpdGhDb2RlKDApLCAi
IikKLSAgICAgIDw8ICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQuIjsKLSAgfSwgIlRoaXMgZmFp
bHVyZSBpcyBleHBlY3RlZC4iKTsKLX0KLQotVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIEV4aXRN
YWNyb3MpIHsKLSAgVGVzdEV4aXRNYWNyb3MoKTsKLX0KLQotVEVTVF9GKFRlc3RGb3JEZWF0aFRl
c3QsIEV4aXRNYWNyb3NVc2luZ0ZvcmspIHsKLSAgdGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90
ZXN0X3VzZV9mb3JrKSA9IHRydWU7Ci0gIFRlc3RFeGl0TWFjcm9zKCk7Ci19Ci0KLVRFU1RfRihU
ZXN0Rm9yRGVhdGhUZXN0LCBJbnZhbGlkU3R5bGUpIHsKLSAgdGVzdGluZzo6R1RFU1RfRkxBRyhk
ZWF0aF90ZXN0X3N0eWxlKSA9ICJyb2NvY28iOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7
ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfREVBVEgoX2V4aXQoMCksICIiKSA8PCAiVGhpcyBmYWls
dXJlIGlzIGV4cGVjdGVkLiI7Ci0gIH0sICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQuIik7Ci19
Ci0KLVRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBEZWF0aFRlc3RGYWlsZWRPdXRwdXQpIHsKLSAg
dGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9ICJmYXN0IjsKLSAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoCi0gICAgICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2UoImRl
YXRoXG4iKSwKLSAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgbWVzc2FnZSIpLAotICAgICAg
IkFjdHVhbCBtc2c6XG4iCi0gICAgICAiWyAgREVBVEggICBdIGRlYXRoXG4iKTsKLX0KLQotVEVT
VF9GKFRlc3RGb3JEZWF0aFRlc3QsIERlYXRoVGVzdFVuZXhwZWN0ZWRSZXR1cm5PdXRwdXQpIHsK
LSAgdGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9ICJmYXN0IjsKLSAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoCi0gICAgICBFWFBFQ1RfREVBVEgoewotICAgICAgICAgIGZw
cmludGYoc3RkZXJyLCAicmV0dXJuaW5nXG4iKTsKLSAgICAgICAgICBmZmx1c2goc3RkZXJyKTsK
LSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0sICIiKSwKLSAgICAgICIgICAgUmVzdWx0OiBp
bGxlZ2FsIHJldHVybiBpbiB0ZXN0IHN0YXRlbWVudC5cbiIKLSAgICAgICIgRXJyb3IgbXNnOlxu
IgotICAgICAgIlsgIERFQVRIICAgXSByZXR1cm5pbmdcbiIpOwotfQotCi1URVNUX0YoVGVzdEZv
ckRlYXRoVGVzdCwgRGVhdGhUZXN0QmFkRXhpdENvZGVPdXRwdXQpIHsKLSAgdGVzdGluZzo6R1RF
U1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9ICJmYXN0IjsKLSAgRVhQRUNUX05PTkZBVEFMX0ZB
SUxVUkUoCi0gICAgICBFWFBFQ1RfRVhJVChEaWVXaXRoTWVzc2FnZSgiZXhpdGluZyB3aXRoIHJj
IDFcbiIpLAotICAgICAgICAgICAgICAgICAgdGVzdGluZzo6RXhpdGVkV2l0aENvZGUoMyksCi0g
ICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgbWVzc2FnZSIpLAotICAgICAgIiAgICBSZXN1bHQ6
IGRpZWQgYnV0IG5vdCB3aXRoIGV4cGVjdGVkIGV4aXQgY29kZTpcbiIKLSAgICAgICIgICAgICAg
ICAgICBFeGl0ZWQgd2l0aCBleGl0IHN0YXR1cyAxXG4iCi0gICAgICAiQWN0dWFsIG1zZzpcbiIK
LSAgICAgICJbICBERUFUSCAgIF0gZXhpdGluZyB3aXRoIHJjIDFcbiIpOwotfQotCi1URVNUX0Yo
VGVzdEZvckRlYXRoVGVzdCwgRGVhdGhUZXN0TXVsdGlMaW5lTWF0Y2hGYWlsKSB7Ci0gIHRlc3Rp
bmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPSAiZmFzdCI7Ci0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKAotICAgICAgRVhQRUNUX0RFQVRIKERpZVdpdGhNZXNzYWdlKCJsaW5lIDFc
bmxpbmUgMlxubGluZSAzXG4iKSwKLSAgICAgICAgICAgICAgICAgICAibGluZSAxXG54eXpcbmxp
bmUgM1xuIiksCi0gICAgICAiQWN0dWFsIG1zZzpcbiIKLSAgICAgICJbICBERUFUSCAgIF0gbGlu
ZSAxXG4iCi0gICAgICAiWyAgREVBVEggICBdIGxpbmUgMlxuIgotICAgICAgIlsgIERFQVRIICAg
XSBsaW5lIDNcbiIpOwotfQotCi1URVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgRGVhdGhUZXN0TXVs
dGlMaW5lTWF0Y2hQYXNzKSB7Ci0gIHRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHls
ZSkgPSAiZmFzdCI7Ci0gIEVYUEVDVF9ERUFUSChEaWVXaXRoTWVzc2FnZSgibGluZSAxXG5saW5l
IDJcbmxpbmUgM1xuIiksCi0gICAgICAgICAgICAgICAibGluZSAxXG5saW5lIDJcbmxpbmUgM1xu
Iik7Ci19Ci0KLS8vIEEgRGVhdGhUZXN0RmFjdG9yeSB0aGF0IHJldHVybnMgTW9ja0RlYXRoVGVz
dHMuCi1jbGFzcyBNb2NrRGVhdGhUZXN0RmFjdG9yeSA6IHB1YmxpYyBEZWF0aFRlc3RGYWN0b3J5
IHsKLSBwdWJsaWM6Ci0gIE1vY2tEZWF0aFRlc3RGYWN0b3J5KCk7Ci0gIHZpcnR1YWwgYm9vbCBD
cmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFKiByZWdleCwKLSAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCk7Ci0KLSAgLy8gU2V0
cyB0aGUgcGFyYW1ldGVycyBmb3Igc3Vic2VxdWVudCBjYWxscyB0byBDcmVhdGUuCi0gIHZvaWQg
U2V0UGFyYW1ldGVycyhib29sIGNyZWF0ZSwgRGVhdGhUZXN0OjpUZXN0Um9sZSByb2xlLAotICAg
ICAgICAgICAgICAgICAgICAgaW50IHN0YXR1cywgYm9vbCBwYXNzZWQpOwotCi0gIC8vIEFjY2Vz
c29ycy4KLSAgaW50IEFzc3VtZVJvbGVDYWxscygpIGNvbnN0IHsgcmV0dXJuIGFzc3VtZV9yb2xl
X2NhbGxzXzsgfQotICBpbnQgV2FpdENhbGxzKCkgY29uc3QgeyByZXR1cm4gd2FpdF9jYWxsc187
IH0KLSAgc2l6ZV90IFBhc3NlZENhbGxzKCkgY29uc3QgeyByZXR1cm4gcGFzc2VkX2FyZ3NfLnNp
emUoKTsgfQotICBib29sIFBhc3NlZEFyZ3VtZW50KGludCBuKSBjb25zdCB7IHJldHVybiBwYXNz
ZWRfYXJnc19bbl07IH0KLSAgc2l6ZV90IEFib3J0Q2FsbHMoKSBjb25zdCB7IHJldHVybiBhYm9y
dF9hcmdzXy5zaXplKCk7IH0KLSAgRGVhdGhUZXN0OjpBYm9ydFJlYXNvbiBBYm9ydEFyZ3VtZW50
KGludCBuKSBjb25zdCB7Ci0gICAgcmV0dXJuIGFib3J0X2FyZ3NfW25dOwotICB9Ci0gIGJvb2wg
VGVzdERlbGV0ZWQoKSBjb25zdCB7IHJldHVybiB0ZXN0X2RlbGV0ZWRfOyB9Ci0KLSBwcml2YXRl
OgotICBmcmllbmQgY2xhc3MgTW9ja0RlYXRoVGVzdDsKLSAgLy8gSWYgdHJ1ZSwgQ3JlYXRlIHdp
bGwgcmV0dXJuIGEgTW9ja0RlYXRoVGVzdDsgb3RoZXJ3aXNlIGl0IHJldHVybnMKLSAgLy8gTlVM
TC4KLSAgYm9vbCBjcmVhdGVfOwotICAvLyBUaGUgdmFsdWUgYSBNb2NrRGVhdGhUZXN0IHdpbGwg
cmV0dXJuIGZyb20gaXRzIEFzc3VtZVJvbGUgbWV0aG9kLgotICBEZWF0aFRlc3Q6OlRlc3RSb2xl
IHJvbGVfOwotICAvLyBUaGUgdmFsdWUgYSBNb2NrRGVhdGhUZXN0IHdpbGwgcmV0dXJuIGZyb20g
aXRzIFdhaXQgbWV0aG9kLgotICBpbnQgc3RhdHVzXzsKLSAgLy8gVGhlIHZhbHVlIGEgTW9ja0Rl
YXRoVGVzdCB3aWxsIHJldHVybiBmcm9tIGl0cyBQYXNzZWQgbWV0aG9kLgotICBib29sIHBhc3Nl
ZF87Ci0KLSAgLy8gTnVtYmVyIG9mIHRpbWVzIEFzc3VtZVJvbGUgd2FzIGNhbGxlZC4KLSAgaW50
IGFzc3VtZV9yb2xlX2NhbGxzXzsKLSAgLy8gTnVtYmVyIG9mIHRpbWVzIFdhaXQgd2FzIGNhbGxl
ZC4KLSAgaW50IHdhaXRfY2FsbHNfOwotICAvLyBUaGUgYXJndW1lbnRzIHRvIHRoZSBjYWxscyB0
byBQYXNzZWQgc2luY2UgdGhlIGxhc3QgY2FsbCB0bwotICAvLyBTZXRQYXJhbWV0ZXJzLgotICBz
dGQ6OnZlY3Rvcjxib29sPiBwYXNzZWRfYXJnc187Ci0gIC8vIFRoZSBhcmd1bWVudHMgdG8gdGhl
IGNhbGxzIHRvIEFib3J0IHNpbmNlIHRoZSBsYXN0IGNhbGwgdG8KLSAgLy8gU2V0UGFyYW1ldGVy
cy4KLSAgc3RkOjp2ZWN0b3I8RGVhdGhUZXN0OjpBYm9ydFJlYXNvbj4gYWJvcnRfYXJnc187Ci0g
IC8vIFRydWUgaWYgdGhlIGxhc3QgTW9ja0RlYXRoVGVzdCByZXR1cm5lZCBieSBDcmVhdGUgaGFz
IGJlZW4KLSAgLy8gZGVsZXRlZC4KLSAgYm9vbCB0ZXN0X2RlbGV0ZWRfOwotfTsKLQotCi0vLyBB
IERlYXRoVGVzdCBpbXBsZW1lbnRhdGlvbiB1c2VmdWwgaW4gdGVzdGluZy4gIEl0IHJldHVybnMg
dmFsdWVzIHNldAotLy8gYXQgaXRzIGNyZWF0aW9uIGZyb20gaXRzIHZhcmlvdXMgaW5oZXJpdGVk
IERlYXRoVGVzdCBtZXRob2RzLCBhbmQKLS8vIHJlcG9ydHMgY2FsbHMgdG8gdGhvc2UgbWV0aG9k
cyB0byBpdHMgcGFyZW50IE1vY2tEZWF0aFRlc3RGYWN0b3J5Ci0vLyBvYmplY3QuCi1jbGFzcyBN
b2NrRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdCB7Ci0gcHVibGljOgotICBNb2NrRGVhdGhU
ZXN0KE1vY2tEZWF0aFRlc3RGYWN0b3J5ICpwYXJlbnQsCi0gICAgICAgICAgICAgICAgVGVzdFJv
bGUgcm9sZSwgaW50IHN0YXR1cywgYm9vbCBwYXNzZWQpIDoKLSAgICAgIHBhcmVudF8ocGFyZW50
KSwgcm9sZV8ocm9sZSksIHN0YXR1c18oc3RhdHVzKSwgcGFzc2VkXyhwYXNzZWQpIHsKLSAgfQot
ICB2aXJ0dWFsIH5Nb2NrRGVhdGhUZXN0KCkgewotICAgIHBhcmVudF8tPnRlc3RfZGVsZXRlZF8g
PSB0cnVlOwotICB9Ci0gIHZpcnR1YWwgVGVzdFJvbGUgQXNzdW1lUm9sZSgpIHsKLSAgICArK3Bh
cmVudF8tPmFzc3VtZV9yb2xlX2NhbGxzXzsKLSAgICByZXR1cm4gcm9sZV87Ci0gIH0KLSAgdmly
dHVhbCBpbnQgV2FpdCgpIHsKLSAgICArK3BhcmVudF8tPndhaXRfY2FsbHNfOwotICAgIHJldHVy
biBzdGF0dXNfOwotICB9Ci0gIHZpcnR1YWwgYm9vbCBQYXNzZWQoYm9vbCBleGl0X3N0YXR1c19v
aykgewotICAgIHBhcmVudF8tPnBhc3NlZF9hcmdzXy5wdXNoX2JhY2soZXhpdF9zdGF0dXNfb2sp
OwotICAgIHJldHVybiBwYXNzZWRfOwotICB9Ci0gIHZpcnR1YWwgdm9pZCBBYm9ydChBYm9ydFJl
YXNvbiByZWFzb24pIHsKLSAgICBwYXJlbnRfLT5hYm9ydF9hcmdzXy5wdXNoX2JhY2socmVhc29u
KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgTW9ja0RlYXRoVGVzdEZhY3RvcnkqIGNvbnN0IHBhcmVu
dF87Ci0gIGNvbnN0IFRlc3RSb2xlIHJvbGVfOwotICBjb25zdCBpbnQgc3RhdHVzXzsKLSAgY29u
c3QgYm9vbCBwYXNzZWRfOwotfTsKLQotCi0vLyBNb2NrRGVhdGhUZXN0RmFjdG9yeSBjb25zdHJ1
Y3Rvci4KLU1vY2tEZWF0aFRlc3RGYWN0b3J5OjpNb2NrRGVhdGhUZXN0RmFjdG9yeSgpCi0gICAg
OiBjcmVhdGVfKHRydWUpLAotICAgICAgcm9sZV8oRGVhdGhUZXN0OjpPVkVSU0VFX1RFU1QpLAot
ICAgICAgc3RhdHVzXygwKSwKLSAgICAgIHBhc3NlZF8odHJ1ZSksCi0gICAgICBhc3N1bWVfcm9s
ZV9jYWxsc18oMCksCi0gICAgICB3YWl0X2NhbGxzXygwKSwKLSAgICAgIHBhc3NlZF9hcmdzXygp
LAotICAgICAgYWJvcnRfYXJnc18oKSB7Ci19Ci0KLQotLy8gU2V0cyB0aGUgcGFyYW1ldGVycyBm
b3Igc3Vic2VxdWVudCBjYWxscyB0byBDcmVhdGUuCi12b2lkIE1vY2tEZWF0aFRlc3RGYWN0b3J5
OjpTZXRQYXJhbWV0ZXJzKGJvb2wgY3JlYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEZWF0aFRlc3Q6OlRlc3RSb2xlIHJvbGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGF0dXMsIGJvb2wgcGFzc2VkKSB7Ci0gIGNy
ZWF0ZV8gPSBjcmVhdGU7Ci0gIHJvbGVfID0gcm9sZTsKLSAgc3RhdHVzXyA9IHN0YXR1czsKLSAg
cGFzc2VkXyA9IHBhc3NlZDsKLQotICBhc3N1bWVfcm9sZV9jYWxsc18gPSAwOwotICB3YWl0X2Nh
bGxzXyA9IDA7Ci0gIHBhc3NlZF9hcmdzXy5jbGVhcigpOwotICBhYm9ydF9hcmdzXy5jbGVhcigp
OwotfQotCi0KLS8vIFNldHMgdGVzdCB0byBOVUxMIChpZiBjcmVhdGVfIGlzIGZhbHNlKSBvciB0
byB0aGUgYWRkcmVzcyBvZiBhIG5ldwotLy8gTW9ja0RlYXRoVGVzdCBvYmplY3Qgd2l0aCBwYXJh
bWV0ZXJzIHRha2VuIGZyb20gdGhlIGxhc3QgY2FsbAotLy8gdG8gU2V0UGFyYW1ldGVycyAoaWYg
Y3JlYXRlXyBpcyB0cnVlKS4gIEFsd2F5cyByZXR1cm5zIHRydWUuCi1ib29sIE1vY2tEZWF0aFRl
c3RGYWN0b3J5OjpDcmVhdGUoY29uc3QgY2hhciogLypzdGF0ZW1lbnQqLywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCA6OnRlc3Rpbmc6OmludGVybmFsOjpSRSogLypy
ZWdleCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIC8q
ZmlsZSovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKmxpbmUqLywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWF0aFRlc3QqKiB0ZXN0KSB7Ci0g
IHRlc3RfZGVsZXRlZF8gPSBmYWxzZTsKLSAgaWYgKGNyZWF0ZV8pIHsKLSAgICAqdGVzdCA9IG5l
dyBNb2NrRGVhdGhUZXN0KHRoaXMsIHJvbGVfLCBzdGF0dXNfLCBwYXNzZWRfKTsKLSAgfSBlbHNl
IHsKLSAgICAqdGVzdCA9IE5VTEw7Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLS8vIEEgdGVz
dCBmaXh0dXJlIGZvciB0ZXN0aW5nIHRoZSBsb2dpYyBvZiB0aGUgR1RFU1RfREVBVEhfVEVTVF8g
bWFjcm8uCi0vLyBJdCBpbnN0YWxscyBhIE1vY2tEZWF0aFRlc3RGYWN0b3J5IHRoYXQgaXMgdXNl
ZCBmb3IgdGhlIGR1cmF0aW9uCi0vLyBvZiB0aGUgdGVzdCBjYXNlLgotY2xhc3MgTWFjcm9Mb2dp
Y0RlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHN0YXRp
YyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVwbGFjZURlYXRoVGVzdEZhY3RvcnkqIHJlcGxhY2VyXzsK
LSAgc3RhdGljIE1vY2tEZWF0aFRlc3RGYWN0b3J5KiBmYWN0b3J5XzsKLQotICBzdGF0aWMgdm9p
ZCBTZXRVcFRlc3RDYXNlKCkgewotICAgIGZhY3RvcnlfID0gbmV3IE1vY2tEZWF0aFRlc3RGYWN0
b3J5OwotICAgIHJlcGxhY2VyXyA9IG5ldyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVwbGFjZURlYXRo
VGVzdEZhY3RvcnkoZmFjdG9yeV8pOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0
Q2FzZSgpIHsKLSAgICBkZWxldGUgcmVwbGFjZXJfOwotICAgIHJlcGxhY2VyXyA9IE5VTEw7Ci0g
ICAgZGVsZXRlIGZhY3RvcnlfOwotICAgIGZhY3RvcnlfID0gTlVMTDsKLSAgfQotCi0gIC8vIFJ1
bnMgYSBkZWF0aCB0ZXN0IHRoYXQgYnJlYWtzIHRoZSBydWxlcyBieSByZXR1cm5pbmcuICBTdWNo
IGEgZGVhdGgKLSAgLy8gdGVzdCBjYW5ub3QgYmUgcnVuIGRpcmVjdGx5IGZyb20gYSB0ZXN0IHJv
dXRpbmUgdGhhdCB1c2VzIGEKLSAgLy8gTW9ja0RlYXRoVGVzdCwgb3IgdGhlIHJlbWFpbmRlciBv
ZiB0aGUgcm91dGluZSB3aWxsIG5vdCBiZSBleGVjdXRlZC4KLSAgc3RhdGljIHZvaWQgUnVuUmV0
dXJuaW5nRGVhdGhUZXN0KGJvb2wqIGZsYWcpIHsKLSAgICBBU1NFUlRfREVBVEgoeyAgLy8gTk9M
SU5UCi0gICAgICAqZmxhZyA9IHRydWU7Ci0gICAgICByZXR1cm47Ci0gICAgfSwgIiIpOwotICB9
Ci19OwotCi10ZXN0aW5nOjppbnRlcm5hbDo6UmVwbGFjZURlYXRoVGVzdEZhY3RvcnkqIE1hY3Jv
TG9naWNEZWF0aFRlc3Q6OnJlcGxhY2VyXwotICAgID0gTlVMTDsKLU1vY2tEZWF0aFRlc3RGYWN0
b3J5KiBNYWNyb0xvZ2ljRGVhdGhUZXN0OjpmYWN0b3J5XyA9IE5VTEw7Ci0KLQotLy8gVGVzdCB0
aGF0IG5vdGhpbmcgaGFwcGVucyB3aGVuIHRoZSBmYWN0b3J5IGRvZXNuJ3QgcmV0dXJuIGEgRGVh
dGhUZXN0OgotVEVTVF9GKE1hY3JvTG9naWNEZWF0aFRlc3QsIE5vdGhpbmdIYXBwZW5zKSB7Ci0g
IGJvb2wgZmxhZyA9IGZhbHNlOwotICBmYWN0b3J5Xy0+U2V0UGFyYW1ldGVycyhmYWxzZSwgRGVh
dGhUZXN0OjpPVkVSU0VFX1RFU1QsIDAsIHRydWUpOwotICBFWFBFQ1RfREVBVEgoZmxhZyA9IHRy
dWUsICIiKTsKLSAgRVhQRUNUX0ZBTFNFKGZsYWcpOwotICBFWFBFQ1RfRVEoMCwgZmFjdG9yeV8t
PkFzc3VtZVJvbGVDYWxscygpKTsKLSAgRVhQRUNUX0VRKDAsIGZhY3RvcnlfLT5XYWl0Q2FsbHMo
KSk7Ci0gIEVYUEVDVF9FUSgwVSwgZmFjdG9yeV8tPlBhc3NlZENhbGxzKCkpOwotICBFWFBFQ1Rf
RVEoMFUsIGZhY3RvcnlfLT5BYm9ydENhbGxzKCkpOwotICBFWFBFQ1RfRkFMU0UoZmFjdG9yeV8t
PlRlc3REZWxldGVkKCkpOwotfQotCi0vLyBUZXN0IHRoYXQgdGhlIHBhcmVudCBwcm9jZXNzIGRv
ZXNuJ3QgcnVuIHRoZSBkZWF0aCB0ZXN0IGNvZGUsCi0vLyBhbmQgdGhhdCB0aGUgUGFzc2VkIG1l
dGhvZCByZXR1cm5zIGZhbHNlIHdoZW4gdGhlIChzaW11bGF0ZWQpCi0vLyBjaGlsZCBwcm9jZXNz
IGV4aXRzIHdpdGggc3RhdHVzIDA6Ci1URVNUX0YoTWFjcm9Mb2dpY0RlYXRoVGVzdCwgQ2hpbGRF
eGl0c1N1Y2Nlc3NmdWxseSkgewotICBib29sIGZsYWcgPSBmYWxzZTsKLSAgZmFjdG9yeV8tPlNl
dFBhcmFtZXRlcnModHJ1ZSwgRGVhdGhUZXN0OjpPVkVSU0VFX1RFU1QsIDAsIHRydWUpOwotICBF
WFBFQ1RfREVBVEgoZmxhZyA9IHRydWUsICIiKTsKLSAgRVhQRUNUX0ZBTFNFKGZsYWcpOwotICBF
WFBFQ1RfRVEoMSwgZmFjdG9yeV8tPkFzc3VtZVJvbGVDYWxscygpKTsKLSAgRVhQRUNUX0VRKDEs
IGZhY3RvcnlfLT5XYWl0Q2FsbHMoKSk7Ci0gIEFTU0VSVF9FUSgxVSwgZmFjdG9yeV8tPlBhc3Nl
ZENhbGxzKCkpOwotICBFWFBFQ1RfRkFMU0UoZmFjdG9yeV8tPlBhc3NlZEFyZ3VtZW50KDApKTsK
LSAgRVhQRUNUX0VRKDBVLCBmYWN0b3J5Xy0+QWJvcnRDYWxscygpKTsKLSAgRVhQRUNUX1RSVUUo
ZmFjdG9yeV8tPlRlc3REZWxldGVkKCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IHRoZSBQYXNzZWQg
bWV0aG9kIHdhcyBnaXZlbiB0aGUgYXJndW1lbnQgInRydWUiIHdoZW4KLS8vIHRoZSAoc2ltdWxh
dGVkKSBjaGlsZCBwcm9jZXNzIGV4aXRzIHdpdGggc3RhdHVzIDE6Ci1URVNUX0YoTWFjcm9Mb2dp
Y0RlYXRoVGVzdCwgQ2hpbGRFeGl0c1Vuc3VjY2Vzc2Z1bGx5KSB7Ci0gIGJvb2wgZmxhZyA9IGZh
bHNlOwotICBmYWN0b3J5Xy0+U2V0UGFyYW1ldGVycyh0cnVlLCBEZWF0aFRlc3Q6Ok9WRVJTRUVf
VEVTVCwgMSwgdHJ1ZSk7Ci0gIEVYUEVDVF9ERUFUSChmbGFnID0gdHJ1ZSwgIiIpOwotICBFWFBF
Q1RfRkFMU0UoZmxhZyk7Ci0gIEVYUEVDVF9FUSgxLCBmYWN0b3J5Xy0+QXNzdW1lUm9sZUNhbGxz
KCkpOwotICBFWFBFQ1RfRVEoMSwgZmFjdG9yeV8tPldhaXRDYWxscygpKTsKLSAgQVNTRVJUX0VR
KDFVLCBmYWN0b3J5Xy0+UGFzc2VkQ2FsbHMoKSk7Ci0gIEVYUEVDVF9UUlVFKGZhY3RvcnlfLT5Q
YXNzZWRBcmd1bWVudCgwKSk7Ci0gIEVYUEVDVF9FUSgwVSwgZmFjdG9yeV8tPkFib3J0Q2FsbHMo
KSk7Ci0gIEVYUEVDVF9UUlVFKGZhY3RvcnlfLT5UZXN0RGVsZXRlZCgpKTsKLX0KLQotLy8gVGVz
dHMgdGhhdCB0aGUgKHNpbXVsYXRlZCkgY2hpbGQgcHJvY2VzcyBleGVjdXRlcyB0aGUgZGVhdGgg
dGVzdAotLy8gY29kZSwgYW5kIGlzIGFib3J0ZWQgd2l0aCB0aGUgY29ycmVjdCBBYm9ydFJlYXNv
biBpZiBpdAotLy8gZXhlY3V0ZXMgYSByZXR1cm4gc3RhdGVtZW50LgotVEVTVF9GKE1hY3JvTG9n
aWNEZWF0aFRlc3QsIENoaWxkUGVyZm9ybXNSZXR1cm4pIHsKLSAgYm9vbCBmbGFnID0gZmFsc2U7
Ci0gIGZhY3RvcnlfLT5TZXRQYXJhbWV0ZXJzKHRydWUsIERlYXRoVGVzdDo6RVhFQ1VURV9URVNU
LCAwLCB0cnVlKTsKLSAgUnVuUmV0dXJuaW5nRGVhdGhUZXN0KCZmbGFnKTsKLSAgRVhQRUNUX1RS
VUUoZmxhZyk7Ci0gIEVYUEVDVF9FUSgxLCBmYWN0b3J5Xy0+QXNzdW1lUm9sZUNhbGxzKCkpOwot
ICBFWFBFQ1RfRVEoMCwgZmFjdG9yeV8tPldhaXRDYWxscygpKTsKLSAgRVhQRUNUX0VRKDBVLCBm
YWN0b3J5Xy0+UGFzc2VkQ2FsbHMoKSk7Ci0gIEVYUEVDVF9FUSgxVSwgZmFjdG9yeV8tPkFib3J0
Q2FsbHMoKSk7Ci0gIEVYUEVDVF9FUShEZWF0aFRlc3Q6OlRFU1RfRU5DT1VOVEVSRURfUkVUVVJO
X1NUQVRFTUVOVCwKLSAgICAgICAgICAgIGZhY3RvcnlfLT5BYm9ydEFyZ3VtZW50KDApKTsKLSAg
RVhQRUNUX1RSVUUoZmFjdG9yeV8tPlRlc3REZWxldGVkKCkpOwotfQotCi0vLyBUZXN0cyB0aGF0
IHRoZSAoc2ltdWxhdGVkKSBjaGlsZCBwcm9jZXNzIGlzIGFib3J0ZWQgd2l0aCB0aGUKLS8vIGNv
cnJlY3QgQWJvcnRSZWFzb24gaWYgaXQgZG9lcyBub3QgZGllLgotVEVTVF9GKE1hY3JvTG9naWNE
ZWF0aFRlc3QsIENoaWxkRG9lc05vdERpZSkgewotICBib29sIGZsYWcgPSBmYWxzZTsKLSAgZmFj
dG9yeV8tPlNldFBhcmFtZXRlcnModHJ1ZSwgRGVhdGhUZXN0OjpFWEVDVVRFX1RFU1QsIDAsIHRy
dWUpOwotICBFWFBFQ1RfREVBVEgoZmxhZyA9IHRydWUsICIiKTsKLSAgRVhQRUNUX1RSVUUoZmxh
Zyk7Ci0gIEVYUEVDVF9FUSgxLCBmYWN0b3J5Xy0+QXNzdW1lUm9sZUNhbGxzKCkpOwotICBFWFBF
Q1RfRVEoMCwgZmFjdG9yeV8tPldhaXRDYWxscygpKTsKLSAgRVhQRUNUX0VRKDBVLCBmYWN0b3J5
Xy0+UGFzc2VkQ2FsbHMoKSk7Ci0gIC8vIFRoaXMgdGltZSB0aGVyZSBhcmUgdHdvIGNhbGxzIHRv
IEFib3J0OiBvbmUgc2luY2UgdGhlIHRlc3QgZGlkbid0Ci0gIC8vIGRpZSwgYW5kIGFub3RoZXIg
ZnJvbSB0aGUgUmV0dXJuU2VudGluZWwgd2hlbiBpdCdzIGRlc3Ryb3llZC4gIFRoZQotICAvLyBz
ZW50aW5lbCBub3JtYWxseSBpc24ndCBkZXN0cm95ZWQgaWYgYSB0ZXN0IGRvZXNuJ3QgZGllLCBz
aW5jZQotICAvLyBfZXhpdCgyKSBpcyBjYWxsZWQgaW4gdGhhdCBjYXNlIGJ5IEZvcmtpbmdEZWF0
aFRlc3QsIGJ1dCBub3QgYnkKLSAgLy8gb3VyIE1vY2tEZWF0aFRlc3QuCi0gIEFTU0VSVF9FUSgy
VSwgZmFjdG9yeV8tPkFib3J0Q2FsbHMoKSk7Ci0gIEVYUEVDVF9FUShEZWF0aFRlc3Q6OlRFU1Rf
RElEX05PVF9ESUUsCi0gICAgICAgICAgICBmYWN0b3J5Xy0+QWJvcnRBcmd1bWVudCgwKSk7Ci0g
IEVYUEVDVF9FUShEZWF0aFRlc3Q6OlRFU1RfRU5DT1VOVEVSRURfUkVUVVJOX1NUQVRFTUVOVCwK
LSAgICAgICAgICAgIGZhY3RvcnlfLT5BYm9ydEFyZ3VtZW50KDEpKTsKLSAgRVhQRUNUX1RSVUUo
ZmFjdG9yeV8tPlRlc3REZWxldGVkKCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IGEgc3VjY2Vzc2Z1
bCBkZWF0aCB0ZXN0IGRvZXMgbm90IHJlZ2lzdGVyIGEgc3VjY2Vzc2Z1bAotLy8gdGVzdCBwYXJ0
LgotVEVTVChTdWNjZXNzUmVnaXN0cmF0aW9uRGVhdGhUZXN0LCBOb1N1Y2Nlc3NQYXJ0KSB7Ci0g
IEVYUEVDVF9ERUFUSChfZXhpdCgxKSwgIiIpOwotICBFWFBFQ1RfRVEoMCwgR2V0VW5pdFRlc3RJ
bXBsKCktPmN1cnJlbnRfdGVzdF9yZXN1bHQoKS0+dG90YWxfcGFydF9jb3VudCgpKTsKLX0KLQot
VEVTVChTdHJlYW1pbmdBc3NlcnRpb25zRGVhdGhUZXN0LCBEZWF0aFRlc3QpIHsKLSAgRVhQRUNU
X0RFQVRIKF9leGl0KDEpLCAiIikgPDwgInVuZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEFTU0VSVF9E
RUFUSChfZXhpdCgxKSwgIiIpIDw8ICJ1bmV4cGVjdGVkIGZhaWx1cmUiOwotICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfREVBVEgoX2V4aXQoMCksICIi
KSA8PCAiZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIH0sICJleHBlY3RlZCBmYWlsdXJlIik7Ci0gIEVY
UEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9ERUFUSChfZXhpdCgw
KSwgIiIpIDw8ICJleHBlY3RlZCBmYWlsdXJlIjsKLSAgfSwgImV4cGVjdGVkIGZhaWx1cmUiKTsK
LX0KLQotLy8gVGVzdHMgdGhhdCBHZXRMYXN0RXJybm9EZXNjcmlwdGlvbiByZXR1cm5zIGFuIGVt
cHR5IHN0cmluZyB3aGVuIHRoZQotLy8gbGFzdCBlcnJvciBpcyAwIGFuZCBub24tZW1wdHkgc3Ry
aW5nIHdoZW4gaXQgaXMgbm9uLXplcm8uCi1URVNUKEdldExhc3RFcnJub0Rlc2NyaXB0aW9uLCBH
ZXRMYXN0RXJybm9EZXNjcmlwdGlvbldvcmtzKSB7Ci0gIGVycm5vID0gRU5PRU5UOwotICBFWFBF
Q1RfU1RSTkUoIiIsIEdldExhc3RFcnJub0Rlc2NyaXB0aW9uKCkuY19zdHIoKSk7Ci0gIGVycm5v
ID0gMDsKLSAgRVhQRUNUX1NUUkVRKCIiLCBHZXRMYXN0RXJybm9EZXNjcmlwdGlvbigpLmNfc3Ry
KCkpOwotfQotCi0jIGlmIEdURVNUX09TX1dJTkRPV1MKLVRFU1QoQXV0b0hhbmRsZVRlc3QsIEF1
dG9IYW5kbGVXb3JrcykgewotICBIQU5ETEUgaGFuZGxlID0gOjpDcmVhdGVFdmVudChOVUxMLCBG
QUxTRSwgRkFMU0UsIE5VTEwpOwotICBBU1NFUlRfTkUoSU5WQUxJRF9IQU5ETEVfVkFMVUUsIGhh
bmRsZSk7Ci0KLSAgLy8gVGVzdHMgdGhhdCB0aGUgQXV0b0hhbmRsZSBpcyBjb3JyZWN0bHkgaW5p
dGlhbGl6ZWQgd2l0aCBhIGhhbmRsZS4KLSAgdGVzdGluZzo6aW50ZXJuYWw6OkF1dG9IYW5kbGUg
YXV0b19oYW5kbGUoaGFuZGxlKTsKLSAgRVhQRUNUX0VRKGhhbmRsZSwgYXV0b19oYW5kbGUuR2V0
KCkpOwotCi0gIC8vIFRlc3RzIHRoYXQgUmVzZXQgYXNzaWducyBJTlZBTElEX0hBTkRMRV9WQUxV
RS4KLSAgLy8gTm90ZSB0aGF0IHRoaXMgY2Fubm90IHZlcmlmeSB3aGV0aGVyIHRoZSBvcmlnaW5h
bCBoYW5kbGUgaXMgY2xvc2VkLgotICBhdXRvX2hhbmRsZS5SZXNldCgpOwotICBFWFBFQ1RfRVEo
SU5WQUxJRF9IQU5ETEVfVkFMVUUsIGF1dG9faGFuZGxlLkdldCgpKTsKLQotICAvLyBUZXN0cyB0
aGF0IFJlc2V0IGFzc2lnbnMgdGhlIG5ldyBoYW5kbGUuCi0gIC8vIE5vdGUgdGhhdCB0aGlzIGNh
bm5vdCB2ZXJpZnkgd2hldGhlciB0aGUgb3JpZ2luYWwgaGFuZGxlIGlzIGNsb3NlZC4KLSAgaGFu
ZGxlID0gOjpDcmVhdGVFdmVudChOVUxMLCBGQUxTRSwgRkFMU0UsIE5VTEwpOwotICBBU1NFUlRf
TkUoSU5WQUxJRF9IQU5ETEVfVkFMVUUsIGhhbmRsZSk7Ci0gIGF1dG9faGFuZGxlLlJlc2V0KGhh
bmRsZSk7Ci0gIEVYUEVDVF9FUShoYW5kbGUsIGF1dG9faGFuZGxlLkdldCgpKTsKLQotICAvLyBU
ZXN0cyB0aGF0IEF1dG9IYW5kbGUgY29udGFpbnMgSU5WQUxJRF9IQU5ETEVfVkFMVUUgYnkgZGVm
YXVsdC4KLSAgdGVzdGluZzo6aW50ZXJuYWw6OkF1dG9IYW5kbGUgYXV0b19oYW5kbGUyOwotICBF
WFBFQ1RfRVEoSU5WQUxJRF9IQU5ETEVfVkFMVUUsIGF1dG9faGFuZGxlMi5HZXQoKSk7Ci19Ci0j
IGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0KLSMgaWYgR1RFU1RfT1NfV0lORE9XUwotdHlw
ZWRlZiB1bnNpZ25lZCBfX2ludDY0IEJpZ2dlc3RQYXJzYWJsZTsKLXR5cGVkZWYgc2lnbmVkIF9f
aW50NjQgQmlnZ2VzdFNpZ25lZFBhcnNhYmxlOwotIyBlbHNlCi10eXBlZGVmIHVuc2lnbmVkIGxv
bmcgbG9uZyBCaWdnZXN0UGFyc2FibGU7Ci10eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgQmlnZ2Vz
dFNpZ25lZFBhcnNhYmxlOwotIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotCi0vLyBXZSBj
YW5ub3QgdXNlIHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpIGFzIGl0IGNsYXNoZXMgd2l0
aCB0aGUKLS8vIG1heCgpIG1hY3JvIGRlZmluZWQgYnkgPHdpbmRvd3MuaD4uCi1jb25zdCBCaWdn
ZXN0UGFyc2FibGUga0JpZ2dlc3RQYXJzYWJsZU1heCA9IFVMTE9OR19NQVg7Ci1jb25zdCBCaWdn
ZXN0U2lnbmVkUGFyc2FibGUga0JpZ2dlc3RTaWduZWRQYXJzYWJsZU1heCA9IExMT05HX01BWDsK
LQotVEVTVChQYXJzZU5hdHVyYWxOdW1iZXJUZXN0LCBSZWplY3RzSW52YWxpZEZvcm1hdCkgewot
ICBCaWdnZXN0UGFyc2FibGUgcmVzdWx0ID0gMDsKLQotICAvLyBSZWplY3RzIG5vbi1udW1iZXJz
LgotICBFWFBFQ1RfRkFMU0UoUGFyc2VOYXR1cmFsTnVtYmVyKCJub24tbnVtYmVyIHN0cmluZyIs
ICZyZXN1bHQpKTsKLQotICAvLyBSZWplY3RzIG51bWJlcnMgd2l0aCB3aGl0ZXNwYWNlIHByZWZp
eC4KLSAgRVhQRUNUX0ZBTFNFKFBhcnNlTmF0dXJhbE51bWJlcigiIDEyMyIsICZyZXN1bHQpKTsK
LQotICAvLyBSZWplY3RzIG5lZ2F0aXZlIG51bWJlcnMuCi0gIEVYUEVDVF9GQUxTRShQYXJzZU5h
dHVyYWxOdW1iZXIoIi0xMjMiLCAmcmVzdWx0KSk7Ci0KLSAgLy8gUmVqZWN0cyBudW1iZXJzIHN0
YXJ0aW5nIHdpdGggYSBwbHVzIHNpZ24uCi0gIEVYUEVDVF9GQUxTRShQYXJzZU5hdHVyYWxOdW1i
ZXIoIisxMjMiLCAmcmVzdWx0KSk7Ci0gIGVycm5vID0gMDsKLX0KLQotVEVTVChQYXJzZU5hdHVy
YWxOdW1iZXJUZXN0LCBSZWplY3RzT3ZlcmZsb3duTnVtYmVycykgewotICBCaWdnZXN0UGFyc2Fi
bGUgcmVzdWx0ID0gMDsKLQotICBFWFBFQ1RfRkFMU0UoUGFyc2VOYXR1cmFsTnVtYmVyKCI5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OSIsICZyZXN1bHQpKTsKLQotICBzaWduZWQgY2hhciBjaGFyX3Jl
c3VsdCA9IDA7Ci0gIEVYUEVDVF9GQUxTRShQYXJzZU5hdHVyYWxOdW1iZXIoIjIwMCIsICZjaGFy
X3Jlc3VsdCkpOwotICBlcnJubyA9IDA7Ci19Ci0KLVRFU1QoUGFyc2VOYXR1cmFsTnVtYmVyVGVz
dCwgQWNjZXB0c1ZhbGlkTnVtYmVycykgewotICBCaWdnZXN0UGFyc2FibGUgcmVzdWx0ID0gMDsK
LQotICByZXN1bHQgPSAwOwotICBBU1NFUlRfVFJVRShQYXJzZU5hdHVyYWxOdW1iZXIoIjEyMyIs
ICZyZXN1bHQpKTsKLSAgRVhQRUNUX0VRKDEyM1UsIHJlc3VsdCk7Ci0KLSAgLy8gQ2hlY2sgMCBh
cyBhbiBlZGdlIGNhc2UuCi0gIHJlc3VsdCA9IDE7Ci0gIEFTU0VSVF9UUlVFKFBhcnNlTmF0dXJh
bE51bWJlcigiMCIsICZyZXN1bHQpKTsKLSAgRVhQRUNUX0VRKDBVLCByZXN1bHQpOwotCi0gIHJl
c3VsdCA9IDE7Ci0gIEFTU0VSVF9UUlVFKFBhcnNlTmF0dXJhbE51bWJlcigiMDAwMDAiLCAmcmVz
dWx0KSk7Ci0gIEVYUEVDVF9FUSgwVSwgcmVzdWx0KTsKLX0KLQotVEVTVChQYXJzZU5hdHVyYWxO
dW1iZXJUZXN0LCBBY2NlcHRzVHlwZUxpbWl0cykgewotICBNZXNzYWdlIG1zZzsKLSAgbXNnIDw8
IGtCaWdnZXN0UGFyc2FibGVNYXg7Ci0KLSAgQmlnZ2VzdFBhcnNhYmxlIHJlc3VsdCA9IDA7Ci0g
IEVYUEVDVF9UUlVFKFBhcnNlTmF0dXJhbE51bWJlcihtc2cuR2V0U3RyaW5nKCksICZyZXN1bHQp
KTsKLSAgRVhQRUNUX0VRKGtCaWdnZXN0UGFyc2FibGVNYXgsIHJlc3VsdCk7Ci0KLSAgTWVzc2Fn
ZSBtc2cyOwotICBtc2cyIDw8IGtCaWdnZXN0U2lnbmVkUGFyc2FibGVNYXg7Ci0KLSAgQmlnZ2Vz
dFNpZ25lZFBhcnNhYmxlIHNpZ25lZF9yZXN1bHQgPSAwOwotICBFWFBFQ1RfVFJVRShQYXJzZU5h
dHVyYWxOdW1iZXIobXNnMi5HZXRTdHJpbmcoKSwgJnNpZ25lZF9yZXN1bHQpKTsKLSAgRVhQRUNU
X0VRKGtCaWdnZXN0U2lnbmVkUGFyc2FibGVNYXgsIHNpZ25lZF9yZXN1bHQpOwotCi0gIE1lc3Nh
Z2UgbXNnMzsKLSAgbXNnMyA8PCBJTlRfTUFYOwotCi0gIGludCBpbnRfcmVzdWx0ID0gMDsKLSAg
RVhQRUNUX1RSVUUoUGFyc2VOYXR1cmFsTnVtYmVyKG1zZzMuR2V0U3RyaW5nKCksICZpbnRfcmVz
dWx0KSk7Ci0gIEVYUEVDVF9FUShJTlRfTUFYLCBpbnRfcmVzdWx0KTsKLQotICBNZXNzYWdlIG1z
ZzQ7Ci0gIG1zZzQgPDwgVUlOVF9NQVg7Ci0KLSAgdW5zaWduZWQgaW50IHVpbnRfcmVzdWx0ID0g
MDsKLSAgRVhQRUNUX1RSVUUoUGFyc2VOYXR1cmFsTnVtYmVyKG1zZzQuR2V0U3RyaW5nKCksICZ1
aW50X3Jlc3VsdCkpOwotICBFWFBFQ1RfRVEoVUlOVF9NQVgsIHVpbnRfcmVzdWx0KTsKLX0KLQot
VEVTVChQYXJzZU5hdHVyYWxOdW1iZXJUZXN0LCBXb3Jrc0ZvclNob3J0ZXJJbnRlZ2Vycykgewot
ICBzaG9ydCBzaG9ydF9yZXN1bHQgPSAwOwotICBBU1NFUlRfVFJVRShQYXJzZU5hdHVyYWxOdW1i
ZXIoIjEyMyIsICZzaG9ydF9yZXN1bHQpKTsKLSAgRVhQRUNUX0VRKDEyMywgc2hvcnRfcmVzdWx0
KTsKLQotICBzaWduZWQgY2hhciBjaGFyX3Jlc3VsdCA9IDA7Ci0gIEFTU0VSVF9UUlVFKFBhcnNl
TmF0dXJhbE51bWJlcigiMTIzIiwgJmNoYXJfcmVzdWx0KSk7Ci0gIEVYUEVDVF9FUSgxMjMsIGNo
YXJfcmVzdWx0KTsKLX0KLQotIyBpZiBHVEVTVF9PU19XSU5ET1dTCi1URVNUKEVudmlyb25tZW50
VGVzdCwgSGFuZGxlRml0c0ludG9TaXplVCkgewotICAvLyBUT0RPKHZsYWRsQGdvb2dsZS5jb20p
OiBSZW1vdmUgdGhpcyB0ZXN0IGFmdGVyIHRoaXMgY29uZGl0aW9uIGlzIHZlcmlmaWVkCi0gIC8v
IGluIGEgc3RhdGljIGFzc2VydGlvbiBpbiBndGVzdC1kZWF0aC10ZXN0LmNjIGluIHRoZSBmdW5j
dGlvbgotICAvLyBHZXRTdGF0dXNGaWxlRGVzY3JpcHRvci4KLSAgQVNTRVJUX1RSVUUoc2l6ZW9m
KEhBTkRMRSkgPD0gc2l6ZW9mKHNpemVfdCkpOwotfQotIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lO
RE9XUwotCi0vLyBUZXN0cyB0aGF0IEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQvQVNTRVJUX0RF
QVRIX0lGX1NVUFBPUlRFRCB0cmlnZ2VyCi0vLyBmYWlsdXJlcyB3aGVuIGRlYXRoIHRlc3RzIGFy
ZSBhdmFpbGFibGUgb24gdGhlIHN5c3RlbS4KLVRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc0Rl
YXRoVGVzdCwgRXhwZWN0c0RlYXRoV2hlbkRlYXRoVGVzdHNBdmFpbGFibGUpIHsKLSAgRVhQRUNU
X0RFQVRIX0lGX1NVUFBPUlRFRChEaWVJbnNpZGUoIkNvbmREZWF0aFRlc3RFeHBlY3RNYWNybyIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWF0aCBpbnNpZGUgQ29uZERlYXRoVGVz
dEV4cGVjdE1hY3JvIik7Ci0gIEFTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQoRGllSW5zaWRlKCJD
b25kRGVhdGhUZXN0QXNzZXJ0TWFjcm8iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVhdGggaW5zaWRlIENvbmREZWF0aFRlc3RBc3NlcnRNYWNybyIpOwotCi0gIC8vIEVtcHR5IHN0
YXRlbWVudCB3aWxsIG5vdCBjcmFzaCwgd2hpY2ggbXVzdCB0cmlnZ2VyIGEgZmFpbHVyZS4KLSAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCg7LCAiIiks
ICIiKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRCg7
LCAiIiksICIiKTsKLX0KLQotVEVTVChJbkRlYXRoVGVzdENoaWxkRGVhdGhUZXN0LCBSZXBvcnRz
RGVhdGhUZXN0Q29ycmVjdGx5SW5GYXN0U3R5bGUpIHsKLSAgdGVzdGluZzo6R1RFU1RfRkxBRyhk
ZWF0aF90ZXN0X3N0eWxlKSA9ICJmYXN0IjsKLSAgRVhQRUNUX0ZBTFNFKEluRGVhdGhUZXN0Q2hp
bGQoKSk7Ci0gIEVYUEVDVF9ERUFUSCh7Ci0gICAgZnByaW50ZihzdGRlcnIsIEluRGVhdGhUZXN0
Q2hpbGQoKSA/ICJJbnNpZGUiIDogIk91dHNpZGUiKTsKLSAgICBmZmx1c2goc3RkZXJyKTsKLSAg
ICBfZXhpdCgxKTsKLSAgfSwgIkluc2lkZSIpOwotfQotCi1URVNUKEluRGVhdGhUZXN0Q2hpbGRE
ZWF0aFRlc3QsIFJlcG9ydHNEZWF0aFRlc3RDb3JyZWN0bHlJblRocmVhZFNhZmVTdHlsZSkgewot
ICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID0gInRocmVhZHNhZmUiOwot
ICBFWFBFQ1RfRkFMU0UoSW5EZWF0aFRlc3RDaGlsZCgpKTsKLSAgRVhQRUNUX0RFQVRIKHsKLSAg
ICBmcHJpbnRmKHN0ZGVyciwgSW5EZWF0aFRlc3RDaGlsZCgpID8gIkluc2lkZSIgOiAiT3V0c2lk
ZSIpOwotICAgIGZmbHVzaChzdGRlcnIpOwotICAgIF9leGl0KDEpOwotICB9LCAiSW5zaWRlIik7
Ci19Ci0KLSNlbHNlICAvLyAhR1RFU1RfSEFTX0RFQVRIX1RFU1QgZm9sbG93cwotCi11c2luZyB0
ZXN0aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0ZGVycjsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFs
OjpHZXRDYXB0dXJlZFN0ZGVycjsKLQotLy8gVGVzdHMgdGhhdCBFWFBFQ1RfREVBVEhfSUZfU1VQ
UE9SVEVEL0FTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQgYXJlIHN0aWxsCi0vLyBkZWZpbmVkIGJ1
dCBkbyBub3QgdHJpZ2dlciBmYWlsdXJlcyB3aGVuIGRlYXRoIHRlc3RzIGFyZSBub3QgYXZhaWxh
YmxlIG9uCi0vLyB0aGUgc3lzdGVtLgotVEVTVChDb25kaXRpb25hbERlYXRoTWFjcm9zVGVzdCwg
V2FybnNXaGVuRGVhdGhUZXN0c05vdEF2YWlsYWJsZSkgewotICAvLyBFbXB0eSBzdGF0ZW1lbnQg
d2lsbCBub3QgY3Jhc2gsIGJ1dCB0aGF0IHNob3VsZCBub3QgdHJpZ2dlciBhIGZhaWx1cmUKLSAg
Ly8gd2hlbiBkZWF0aCB0ZXN0cyBhcmUgbm90IHN1cHBvcnRlZC4KLSAgQ2FwdHVyZVN0ZGVycigp
OwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKDssICIiKTsKLSAgc3RkOjpzdHJpbmcgb3V0
cHV0ID0gR2V0Q2FwdHVyZWRTdGRlcnIoKTsKLSAgQVNTRVJUX1RSVUUoTlVMTCAhPSBzdHJzdHIo
b3V0cHV0LmNfc3RyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZWF0aCB0ZXN0
cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIikpOwotICBBU1NFUlRfVFJVRShO
VUxMICE9IHN0cnN0cihvdXRwdXQuY19zdHIoKSwgIjsiKSk7Ci0KLSAgLy8gVGhlIHN0cmVhbWVk
IG1lc3NhZ2Ugc2hvdWxkIG5vdCBiZSBwcmludGVkIGFzIHRoZXJlIGlzIG5vIHRlc3QgZmFpbHVy
ZS4KLSAgQ2FwdHVyZVN0ZGVycigpOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKDssICIi
KSA8PCAic3RyZWFtZWQgbWVzc2FnZSI7Ci0gIG91dHB1dCA9IEdldENhcHR1cmVkU3RkZXJyKCk7
Ci0gIEFTU0VSVF9UUlVFKE5VTEwgPT0gc3Ryc3RyKG91dHB1dC5jX3N0cigpLCAic3RyZWFtZWQg
bWVzc2FnZSIpKTsKLQotICBDYXB0dXJlU3RkZXJyKCk7Ci0gIEFTU0VSVF9ERUFUSF9JRl9TVVBQ
T1JURUQoOywgIiIpOyAgLy8gTk9MSU5UCi0gIG91dHB1dCA9IEdldENhcHR1cmVkU3RkZXJyKCk7
Ci0gIEFTU0VSVF9UUlVFKE5VTEwgIT0gc3Ryc3RyKG91dHB1dC5jX3N0cigpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiRGVhdGggdGVzdHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdGhp
cyBwbGF0Zm9ybSIpKTsKLSAgQVNTRVJUX1RSVUUoTlVMTCAhPSBzdHJzdHIob3V0cHV0LmNfc3Ry
KCksICI7IikpOwotCi0gIENhcHR1cmVTdGRlcnIoKTsKLSAgQVNTRVJUX0RFQVRIX0lGX1NVUFBP
UlRFRCg7LCAiIikgPDwgInN0cmVhbWVkIG1lc3NhZ2UiOyAgLy8gTk9MSU5UCi0gIG91dHB1dCA9
IEdldENhcHR1cmVkU3RkZXJyKCk7Ci0gIEFTU0VSVF9UUlVFKE5VTEwgPT0gc3Ryc3RyKG91dHB1
dC5jX3N0cigpLCAic3RyZWFtZWQgbWVzc2FnZSIpKTsKLX0KLQotdm9pZCBGdW5jV2l0aEFzc2Vy
dChpbnQqIG4pIHsKLSAgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRChyZXR1cm47LCAiIik7Ci0g
ICgqbikrKzsKLX0KLQotLy8gVGVzdHMgdGhhdCBBU1NFUlRfREVBVEhfSUZfU1VQUE9SVEVEIGRv
ZXMgbm90IHJldHVybiBmcm9tIHRoZSBjdXJyZW50Ci0vLyBmdW5jdGlvbiAoYXMgQVNTRVJUX0RF
QVRIIGRvZXMpIGlmIGRlYXRoIHRlc3RzIGFyZSBub3Qgc3VwcG9ydGVkLgotVEVTVChDb25kaXRp
b25hbERlYXRoTWFjcm9zVGVzdCwgQXNzZXJ0RGVhdERvZXNOb3RSZXR1cm5oSWZVbnN1cHBvcnRl
ZCkgewotICBpbnQgbiA9IDA7Ci0gIEZ1bmNXaXRoQXNzZXJ0KCZuKTsKLSAgRVhQRUNUX0VRKDEs
IG4pOwotfQotCi0jZW5kaWYgIC8vICFHVEVTVF9IQVNfREVBVEhfVEVTVAotCi0vLyBUZXN0cyB0
aGF0IHRoZSBkZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBtYXkgb3IgbWF5
IG5vdAotLy8gYmUgZm9sbG93ZWQgYnkgb3BlcmF0b3I8PCwgYW5kIHRoYXQgaW4gZWl0aGVyIGNh
c2UgdGhlIGNvbXBsZXRlIHRleHQKLS8vIGNvbXByaXNlcyBvbmx5IGEgc2luZ2xlIEMrKyBzdGF0
ZW1lbnQuCi0vLwotLy8gVGhlIHN5bnRheCBzaG91bGQgd29yayB3aGV0aGVyIGRlYXRoIHRlc3Rz
IGFyZSBhdmFpbGFibGUgb3Igbm90LgotVEVTVChDb25kaXRpb25hbERlYXRoTWFjcm9zU3ludGF4
RGVhdGhUZXN0LCBTaW5nbGVTdGF0ZW1lbnQpIHsKLSAgaWYgKEFsd2F5c0ZhbHNlKCkpCi0gICAg
Ly8gVGhpcyB3b3VsZCBmYWlsIGlmIGV4ZWN1dGVkOyB0aGlzIGlzIGEgY29tcGlsYXRpb24gdGVz
dCBvbmx5Ci0gICAgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRChyZXR1cm4sICIiKTsKLQotICBp
ZiAoQWx3YXlzVHJ1ZSgpKQotICAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoX2V4aXQoMSks
ICIiKTsKLSAgZWxzZQotICAgIC8vIFRoaXMgZW1wdHkgImVsc2UiIGJyYW5jaCBpcyBtZWFudCB0
byBlbnN1cmUgdGhhdCBFWFBFQ1RfREVBVEgKLSAgICAvLyBkb2Vzbid0IGV4cGFuZCBpbnRvIGFu
ICJpZiIgc3RhdGVtZW50IHdpdGhvdXQgYW4gImVsc2UiCi0gICAgOyAgLy8gTk9MSU5UCi0KLSAg
aWYgKEFsd2F5c0ZhbHNlKCkpCi0gICAgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRChyZXR1cm4s
ICIiKSA8PCAiZGlkIG5vdCBkaWUiOwotCi0gIGlmIChBbHdheXNGYWxzZSgpKQotICAgIDsgIC8v
IE5PTElOVAotICBlbHNlCi0gICAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChfZXhpdCgxKSwg
IiIpIDw8IDEgPDwgMiA8PCAzOwotfQotCi0vLyBUZXN0cyB0aGF0IGNvbmRpdGlvbmFsIGRlYXRo
IHRlc3QgbWFjcm9zIGV4cGFuZCB0byBjb2RlIHdoaWNoIGludGVyYWN0cwotLy8gd2VsbCB3aXRo
IHN3aXRjaCBzdGF0ZW1lbnRzLgotVEVTVChDb25kaXRpb25hbERlYXRoTWFjcm9zU3ludGF4RGVh
dGhUZXN0LCBTd2l0Y2hTdGF0ZW1lbnQpIHsKLSAgLy8gTWljcm9zb2Z0IGNvbXBpbGVyIHVzdWFs
bHkgY29tcGxhaW5zIGFib3V0IHN3aXRjaCBzdGF0ZW1lbnRzIHdpdGhvdXQKLSAgLy8gY2FzZSBs
YWJlbHMuIFdlIHN1cHByZXNzIHRoYXQgd2FybmluZyBmb3IgdGhpcyB0ZXN0LgotICBHVEVTVF9E
SVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0MDY1KQotCi0gIHN3aXRjaCAoMCkKLSAgICBkZWZh
dWx0OgotICAgICAgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRChfZXhpdCgxKSwgIiIpCi0gICAg
ICAgICAgPDwgImV4aXQgaW4gZGVmYXVsdCBzd2l0Y2ggaGFuZGxlciI7Ci0KLSAgc3dpdGNoICgw
KQotICAgIGNhc2UgMDoKLSAgICAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoX2V4aXQoMSks
ICIiKSA8PCAiZXhpdCBpbiBzd2l0Y2ggY2FzZSI7Ci0KLSAgR1RFU1RfRElTQUJMRV9NU0NfV0FS
TklOR1NfUE9QXygpCi19Ci0KLS8vIFRlc3RzIHRoYXQgYSB0ZXN0IGNhc2Ugd2hvc2UgbmFtZSBl
bmRzIHdpdGggIkRlYXRoVGVzdCIgd29ya3MgZmluZQotLy8gb24gV2luZG93cy4KLVRFU1QoTm90
QURlYXRoVGVzdCwgVGVzdCkgewotICBTVUNDRUVEKCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LWZpbGVwYXRoX3Rlc3QuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LWZpbGVwYXRoX3Rlc3QuY2MKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5Y2VhM2QxZTk1NjJlOTFlZTYxZTc5ZDdlYTFmNjlmMWI3
Y2MwNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1maWxlcGF0aF90ZXN0LmNjCisrKyAv
ZGV2L251bGwKQEAgLTEsNjUyICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5j
LgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8g
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLS8vCi0vLwotLy8gR29vZ2xlIFRlc3QgZmlsZXBhdGggdXRpbGl0aWVz
Ci0vLwotLy8gVGhpcyBmaWxlIHRlc3RzIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyB1c2VkIGludGVy
bmFsbHkgYnkKLS8vIEdvb2dsZSBUZXN0LiAgVGhleSBhcmUgc3ViamVjdCB0byBjaGFuZ2Ugd2l0
aG91dCBub3RpY2UuCi0vLwotLy8gVGhpcyBmaWxlIGlzICNpbmNsdWRlZCBmcm9tIGd0ZXN0LWlu
dGVybmFsLmguCi0vLyBEbyBub3QgI2luY2x1ZGUgdGhpcyBmaWxlIGFueXdoZXJlIGVsc2UhCi0K
LSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oIgotI2luY2x1ZGUgImd0
ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgotCi0jaWYg
R1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLSMgaW5jbHVkZSA8d2luZG93cy5oPiAgLy8gTk9MSU5U
Ci0jZWxpZiBHVEVTVF9PU19XSU5ET1dTCi0jIGluY2x1ZGUgPGRpcmVjdC5oPiAgLy8gTk9MSU5U
Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0KLW5hbWVzcGFjZSB0ZXN0aW5n
IHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci1uYW1lc3BhY2UgewotCi0jaWYgR1RFU1RfT1NfV0lO
RE9XU19NT0JJTEUKLS8vIFRPRE8od2FuQGdvb2dsZS5jb20pOiBNb3ZlIHRoZXNlIHRvIHRoZSBQ
T1NJWCBhZGFwdGVyIHNlY3Rpb24gaW4KLS8vIGd0ZXN0LXBvcnQuaC4KLQotLy8gV2luZG93cyBD
RSBkb2Vzbid0IGhhdmUgdGhlIHJlbW92ZSBDIGZ1bmN0aW9uLgotaW50IHJlbW92ZShjb25zdCBj
aGFyKiBwYXRoKSB7Ci0gIExQQ1dTVFIgd3BhdGggPSBTdHJpbmc6OkFuc2lUb1V0ZjE2KHBhdGgp
OwotICBpbnQgcmV0ID0gRGVsZXRlRmlsZSh3cGF0aCkgPyAwIDogLTE7Ci0gIGRlbGV0ZSBbXSB3
cGF0aDsKLSAgcmV0dXJuIHJldDsKLX0KLS8vIFdpbmRvd3MgQ0UgZG9lc24ndCBoYXZlIHRoZSBf
cm1kaXIgQyBmdW5jdGlvbi4KLWludCBfcm1kaXIoY29uc3QgY2hhciogcGF0aCkgewotICBGaWxl
UGF0aCBmaWxlcGF0aChwYXRoKTsKLSAgTFBDV1NUUiB3cGF0aCA9IFN0cmluZzo6QW5zaVRvVXRm
MTYoCi0gICAgICBmaWxlcGF0aC5SZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKS5jX3N0cigp
KTsKLSAgaW50IHJldCA9IFJlbW92ZURpcmVjdG9yeSh3cGF0aCkgPyAwIDogLTE7Ci0gIGRlbGV0
ZSBbXSB3cGF0aDsKLSAgcmV0dXJuIHJldDsKLX0KLQotI2Vsc2UKLQotVEVTVChHZXRDdXJyZW50
RGlyVGVzdCwgUmV0dXJuc0N1cnJlbnREaXIpIHsKLSAgY29uc3QgRmlsZVBhdGggb3JpZ2luYWxf
ZGlyID0gRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKTsKLSAgRVhQRUNUX0ZBTFNFKG9yaWdpbmFs
X2Rpci5Jc0VtcHR5KCkpOwotCi0gIHBvc2l4OjpDaERpcihHVEVTVF9QQVRIX1NFUF8pOwotICBj
b25zdCBGaWxlUGF0aCBjd2QgPSBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpOwotICBwb3NpeDo6
Q2hEaXIob3JpZ2luYWxfZGlyLmNfc3RyKCkpOwotCi0jIGlmIEdURVNUX09TX1dJTkRPV1MKLQot
ICAvLyBTa2lwcyB0aGUgIjoiLgotICBjb25zdCBjaGFyKiBjb25zdCBjd2Rfd2l0aG91dF9kcml2
ZSA9IHN0cmNocihjd2QuY19zdHIoKSwgJzonKTsKLSAgQVNTRVJUX1RSVUUoY3dkX3dpdGhvdXRf
ZHJpdmUgIT0gTlVMTCk7Ci0gIEVYUEVDVF9TVFJFUShHVEVTVF9QQVRIX1NFUF8sIGN3ZF93aXRo
b3V0X2RyaXZlICsgMSk7Ci0KLSMgZWxzZQotCi0gIEVYUEVDVF9FUShHVEVTVF9QQVRIX1NFUF8s
IGN3ZC5zdHJpbmcoKSk7Ci0KLSMgZW5kaWYKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5E
T1dTX01PQklMRQotCi1URVNUKElzRW1wdHlUZXN0LCBSZXR1cm5zVHJ1ZUZvckVtcHR5UGF0aCkg
ewotICBFWFBFQ1RfVFJVRShGaWxlUGF0aCgiIikuSXNFbXB0eSgpKTsKLX0KLQotVEVTVChJc0Vt
cHR5VGVzdCwgUmV0dXJuc0ZhbHNlRm9yTm9uRW1wdHlQYXRoKSB7Ci0gIEVYUEVDVF9GQUxTRShG
aWxlUGF0aCgiYSIpLklzRW1wdHkoKSk7Ci0gIEVYUEVDVF9GQUxTRShGaWxlUGF0aCgiLiIpLklz
RW1wdHkoKSk7Ci0gIEVYUEVDVF9GQUxTRShGaWxlUGF0aCgiYS9iIikuSXNFbXB0eSgpKTsKLSAg
RVhQRUNUX0ZBTFNFKEZpbGVQYXRoKCJhXFxiXFwiKS5Jc0VtcHR5KCkpOwotfQotCi0vLyBSZW1v
dmVEaXJlY3RvcnlOYW1lICIiIC0+ICIiCi1URVNUKFJlbW92ZURpcmVjdG9yeU5hbWVUZXN0LCBX
aGVuRW1wdHlOYW1lKSB7Ci0gIEVYUEVDVF9FUSgiIiwgRmlsZVBhdGgoIiIpLlJlbW92ZURpcmVj
dG9yeU5hbWUoKS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZURpcmVjdG9yeU5hbWUgImFmaWxl
IiAtPiAiYWZpbGUiCi1URVNUKFJlbW92ZURpcmVjdG9yeU5hbWVUZXN0LCBCdXROb0RpcmVjdG9y
eSkgewotICBFWFBFQ1RfRVEoImFmaWxlIiwKLSAgICAgIEZpbGVQYXRoKCJhZmlsZSIpLlJlbW92
ZURpcmVjdG9yeU5hbWUoKS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZURpcmVjdG9yeU5hbWUg
Ii9hZmlsZSIgLT4gImFmaWxlIgotVEVTVChSZW1vdmVEaXJlY3RvcnlOYW1lVGVzdCwgUm9vdEZp
bGVTaG91bGRHaXZlRmlsZU5hbWUpIHsKLSAgRVhQRUNUX0VRKCJhZmlsZSIsCi0gICAgICBGaWxl
UGF0aChHVEVTVF9QQVRIX1NFUF8gImFmaWxlIikuUmVtb3ZlRGlyZWN0b3J5TmFtZSgpLnN0cmlu
ZygpKTsKLX0KLQotLy8gUmVtb3ZlRGlyZWN0b3J5TmFtZSAiYWRpci8iIC0+ICIiCi1URVNUKFJl
bW92ZURpcmVjdG9yeU5hbWVUZXN0LCBXaGVyZVRoZXJlSXNOb0ZpbGVOYW1lKSB7Ci0gIEVYUEVD
VF9FUSgiIiwKLSAgICAgIEZpbGVQYXRoKCJhZGlyIiBHVEVTVF9QQVRIX1NFUF8pLlJlbW92ZURp
cmVjdG9yeU5hbWUoKS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZURpcmVjdG9yeU5hbWUgImFk
aXIvYWZpbGUiIC0+ICJhZmlsZSIKLVRFU1QoUmVtb3ZlRGlyZWN0b3J5TmFtZVRlc3QsIFNob3Vs
ZEdpdmVGaWxlTmFtZSkgewotICBFWFBFQ1RfRVEoImFmaWxlIiwKLSAgICAgIEZpbGVQYXRoKCJh
ZGlyIiBHVEVTVF9QQVRIX1NFUF8gImFmaWxlIikuUmVtb3ZlRGlyZWN0b3J5TmFtZSgpLnN0cmlu
ZygpKTsKLX0KLQotLy8gUmVtb3ZlRGlyZWN0b3J5TmFtZSAiYWRpci9zdWJkaXIvYWZpbGUiIC0+
ICJhZmlsZSIKLVRFU1QoUmVtb3ZlRGlyZWN0b3J5TmFtZVRlc3QsIFNob3VsZEFsc29HaXZlRmls
ZU5hbWUpIHsKLSAgRVhQRUNUX0VRKCJhZmlsZSIsCi0gICAgICBGaWxlUGF0aCgiYWRpciIgR1RF
U1RfUEFUSF9TRVBfICJzdWJkaXIiIEdURVNUX1BBVEhfU0VQXyAiYWZpbGUiKQotICAgICAgLlJl
bW92ZURpcmVjdG9yeU5hbWUoKS5zdHJpbmcoKSk7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfQUxUX1BB
VEhfU0VQXwotCi0vLyBUZXN0cyB0aGF0IFJlbW92ZURpcmVjdG9yeU5hbWUoKSB3b3JrcyB3aXRo
IHRoZSBhbHRlcm5hdGUgc2VwYXJhdG9yCi0vLyBvbiBXaW5kb3dzLgotCi0vLyBSZW1vdmVEaXJl
Y3RvcnlOYW1lKCIvYWZpbGUiKSAtPiAiYWZpbGUiCi1URVNUKFJlbW92ZURpcmVjdG9yeU5hbWVU
ZXN0LCBSb290RmlsZVNob3VsZEdpdmVGaWxlTmFtZUZvckFsdGVybmF0ZVNlcGFyYXRvcikgewot
ICBFWFBFQ1RfRVEoImFmaWxlIiwgRmlsZVBhdGgoIi9hZmlsZSIpLlJlbW92ZURpcmVjdG9yeU5h
bWUoKS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZURpcmVjdG9yeU5hbWUoImFkaXIvIikgLT4g
IiIKLVRFU1QoUmVtb3ZlRGlyZWN0b3J5TmFtZVRlc3QsIFdoZXJlVGhlcmVJc05vRmlsZU5hbWVG
b3JBbHRlcm5hdGVTZXBhcmF0b3IpIHsKLSAgRVhQRUNUX0VRKCIiLCBGaWxlUGF0aCgiYWRpci8i
KS5SZW1vdmVEaXJlY3RvcnlOYW1lKCkuc3RyaW5nKCkpOwotfQotCi0vLyBSZW1vdmVEaXJlY3Rv
cnlOYW1lKCJhZGlyL2FmaWxlIikgLT4gImFmaWxlIgotVEVTVChSZW1vdmVEaXJlY3RvcnlOYW1l
VGVzdCwgU2hvdWxkR2l2ZUZpbGVOYW1lRm9yQWx0ZXJuYXRlU2VwYXJhdG9yKSB7Ci0gIEVYUEVD
VF9FUSgiYWZpbGUiLCBGaWxlUGF0aCgiYWRpci9hZmlsZSIpLlJlbW92ZURpcmVjdG9yeU5hbWUo
KS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZURpcmVjdG9yeU5hbWUoImFkaXIvc3ViZGlyL2Fm
aWxlIikgLT4gImFmaWxlIgotVEVTVChSZW1vdmVEaXJlY3RvcnlOYW1lVGVzdCwgU2hvdWxkQWxz
b0dpdmVGaWxlTmFtZUZvckFsdGVybmF0ZVNlcGFyYXRvcikgewotICBFWFBFQ1RfRVEoImFmaWxl
IiwKLSAgICAgICAgICAgIEZpbGVQYXRoKCJhZGlyL3N1YmRpci9hZmlsZSIpLlJlbW92ZURpcmVj
dG9yeU5hbWUoKS5zdHJpbmcoKSk7Ci19Ci0KLSNlbmRpZgotCi0vLyBSZW1vdmVGaWxlTmFtZSAi
IiAtPiAiLi8iCi1URVNUKFJlbW92ZUZpbGVOYW1lVGVzdCwgRW1wdHlOYW1lKSB7Ci0jaWYgR1RF
U1RfT1NfV0lORE9XU19NT0JJTEUKLSAgLy8gT24gV2luZG93cyBDRSwgd2UgdXNlIHRoZSByb290
IGFzIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KLSAgRVhQRUNUX0VRKEdURVNUX1BBVEhfU0VQXywg
RmlsZVBhdGgoIiIpLlJlbW92ZUZpbGVOYW1lKCkuc3RyaW5nKCkpOwotI2Vsc2UKLSAgRVhQRUNU
X0VRKCIuIiBHVEVTVF9QQVRIX1NFUF8sIEZpbGVQYXRoKCIiKS5SZW1vdmVGaWxlTmFtZSgpLnN0
cmluZygpKTsKLSNlbmRpZgotfQotCi0vLyBSZW1vdmVGaWxlTmFtZSAiYWRpci8iIC0+ICJhZGly
LyIKLVRFU1QoUmVtb3ZlRmlsZU5hbWVUZXN0LCBCdXROb0ZpbGUpIHsKLSAgRVhQRUNUX0VRKCJh
ZGlyIiBHVEVTVF9QQVRIX1NFUF8sCi0gICAgICBGaWxlUGF0aCgiYWRpciIgR1RFU1RfUEFUSF9T
RVBfKS5SZW1vdmVGaWxlTmFtZSgpLnN0cmluZygpKTsKLX0KLQotLy8gUmVtb3ZlRmlsZU5hbWUg
ImFkaXIvYWZpbGUiIC0+ICJhZGlyLyIKLVRFU1QoUmVtb3ZlRmlsZU5hbWVUZXN0LCBHaXZlc0Rp
ck5hbWUpIHsKLSAgRVhQRUNUX0VRKCJhZGlyIiBHVEVTVF9QQVRIX1NFUF8sCi0gICAgICAgICAg
ICBGaWxlUGF0aCgiYWRpciIgR1RFU1RfUEFUSF9TRVBfICJhZmlsZSIpLlJlbW92ZUZpbGVOYW1l
KCkuc3RyaW5nKCkpOwotfQotCi0vLyBSZW1vdmVGaWxlTmFtZSAiYWRpci9zdWJkaXIvYWZpbGUi
IC0+ICJhZGlyL3N1YmRpci8iCi1URVNUKFJlbW92ZUZpbGVOYW1lVGVzdCwgR2l2ZXNEaXJBbmRT
dWJEaXJOYW1lKSB7Ci0gIEVYUEVDVF9FUSgiYWRpciIgR1RFU1RfUEFUSF9TRVBfICJzdWJkaXIi
IEdURVNUX1BBVEhfU0VQXywKLSAgICAgIEZpbGVQYXRoKCJhZGlyIiBHVEVTVF9QQVRIX1NFUF8g
InN1YmRpciIgR1RFU1RfUEFUSF9TRVBfICJhZmlsZSIpCi0gICAgICAuUmVtb3ZlRmlsZU5hbWUo
KS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZUZpbGVOYW1lICIvYWZpbGUiIC0+ICIvIgotVEVT
VChSZW1vdmVGaWxlTmFtZVRlc3QsIEdpdmVzUm9vdERpcikgewotICBFWFBFQ1RfRVEoR1RFU1Rf
UEFUSF9TRVBfLAotICAgICAgRmlsZVBhdGgoR1RFU1RfUEFUSF9TRVBfICJhZmlsZSIpLlJlbW92
ZUZpbGVOYW1lKCkuc3RyaW5nKCkpOwotfQotCi0jaWYgR1RFU1RfSEFTX0FMVF9QQVRIX1NFUF8K
LQotLy8gVGVzdHMgdGhhdCBSZW1vdmVGaWxlTmFtZSgpIHdvcmtzIHdpdGggdGhlIGFsdGVybmF0
ZSBzZXBhcmF0b3Igb24KLS8vIFdpbmRvd3MuCi0KLS8vIFJlbW92ZUZpbGVOYW1lKCJhZGlyLyIp
IC0+ICJhZGlyLyIKLVRFU1QoUmVtb3ZlRmlsZU5hbWVUZXN0LCBCdXROb0ZpbGVGb3JBbHRlcm5h
dGVTZXBhcmF0b3IpIHsKLSAgRVhQRUNUX0VRKCJhZGlyIiBHVEVTVF9QQVRIX1NFUF8sCi0gICAg
ICAgICAgICBGaWxlUGF0aCgiYWRpci8iKS5SZW1vdmVGaWxlTmFtZSgpLnN0cmluZygpKTsKLX0K
LQotLy8gUmVtb3ZlRmlsZU5hbWUoImFkaXIvYWZpbGUiKSAtPiAiYWRpci8iCi1URVNUKFJlbW92
ZUZpbGVOYW1lVGVzdCwgR2l2ZXNEaXJOYW1lRm9yQWx0ZXJuYXRlU2VwYXJhdG9yKSB7Ci0gIEVY
UEVDVF9FUSgiYWRpciIgR1RFU1RfUEFUSF9TRVBfLAotICAgICAgICAgICAgRmlsZVBhdGgoImFk
aXIvYWZpbGUiKS5SZW1vdmVGaWxlTmFtZSgpLnN0cmluZygpKTsKLX0KLQotLy8gUmVtb3ZlRmls
ZU5hbWUoImFkaXIvc3ViZGlyL2FmaWxlIikgLT4gImFkaXIvc3ViZGlyLyIKLVRFU1QoUmVtb3Zl
RmlsZU5hbWVUZXN0LCBHaXZlc0RpckFuZFN1YkRpck5hbWVGb3JBbHRlcm5hdGVTZXBhcmF0b3Ip
IHsKLSAgRVhQRUNUX0VRKCJhZGlyIiBHVEVTVF9QQVRIX1NFUF8gInN1YmRpciIgR1RFU1RfUEFU
SF9TRVBfLAotICAgICAgICAgICAgRmlsZVBhdGgoImFkaXIvc3ViZGlyL2FmaWxlIikuUmVtb3Zl
RmlsZU5hbWUoKS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZUZpbGVOYW1lKCIvYWZpbGUiKSAt
PiAiXCIKLVRFU1QoUmVtb3ZlRmlsZU5hbWVUZXN0LCBHaXZlc1Jvb3REaXJGb3JBbHRlcm5hdGVT
ZXBhcmF0b3IpIHsKLSAgRVhQRUNUX0VRKEdURVNUX1BBVEhfU0VQXywgRmlsZVBhdGgoIi9hZmls
ZSIpLlJlbW92ZUZpbGVOYW1lKCkuc3RyaW5nKCkpOwotfQotCi0jZW5kaWYKLQotVEVTVChNYWtl
RmlsZU5hbWVUZXN0LCBHZW5lcmF0ZVdoZW5OdW1iZXJJc1plcm8pIHsKLSAgRmlsZVBhdGggYWN0
dWFsID0gRmlsZVBhdGg6Ok1ha2VGaWxlTmFtZShGaWxlUGF0aCgiZm9vIiksIEZpbGVQYXRoKCJi
YXIiKSwKLSAgICAgIDAsICJ4bWwiKTsKLSAgRVhQRUNUX0VRKCJmb28iIEdURVNUX1BBVEhfU0VQ
XyAiYmFyLnhtbCIsIGFjdHVhbC5zdHJpbmcoKSk7Ci19Ci0KLVRFU1QoTWFrZUZpbGVOYW1lVGVz
dCwgR2VuZXJhdGVGaWxlTmFtZU51bWJlckd0WmVybykgewotICBGaWxlUGF0aCBhY3R1YWwgPSBG
aWxlUGF0aDo6TWFrZUZpbGVOYW1lKEZpbGVQYXRoKCJmb28iKSwgRmlsZVBhdGgoImJhciIpLAot
ICAgICAgMTIsICJ4bWwiKTsKLSAgRVhQRUNUX0VRKCJmb28iIEdURVNUX1BBVEhfU0VQXyAiYmFy
XzEyLnhtbCIsIGFjdHVhbC5zdHJpbmcoKSk7Ci19Ci0KLVRFU1QoTWFrZUZpbGVOYW1lVGVzdCwg
R2VuZXJhdGVGaWxlTmFtZVdpdGhTbGFzaE51bWJlcklzWmVybykgewotICBGaWxlUGF0aCBhY3R1
YWwgPSBGaWxlUGF0aDo6TWFrZUZpbGVOYW1lKEZpbGVQYXRoKCJmb28iIEdURVNUX1BBVEhfU0VQ
XyksCi0gICAgICBGaWxlUGF0aCgiYmFyIiksIDAsICJ4bWwiKTsKLSAgRVhQRUNUX0VRKCJmb28i
IEdURVNUX1BBVEhfU0VQXyAiYmFyLnhtbCIsIGFjdHVhbC5zdHJpbmcoKSk7Ci19Ci0KLVRFU1Qo
TWFrZUZpbGVOYW1lVGVzdCwgR2VuZXJhdGVGaWxlTmFtZVdpdGhTbGFzaE51bWJlckd0WmVybykg
ewotICBGaWxlUGF0aCBhY3R1YWwgPSBGaWxlUGF0aDo6TWFrZUZpbGVOYW1lKEZpbGVQYXRoKCJm
b28iIEdURVNUX1BBVEhfU0VQXyksCi0gICAgICBGaWxlUGF0aCgiYmFyIiksIDEyLCAieG1sIik7
Ci0gIEVYUEVDVF9FUSgiZm9vIiBHVEVTVF9QQVRIX1NFUF8gImJhcl8xMi54bWwiLCBhY3R1YWwu
c3RyaW5nKCkpOwotfQotCi1URVNUKE1ha2VGaWxlTmFtZVRlc3QsIEdlbmVyYXRlV2hlbk51bWJl
cklzWmVyb0FuZERpcklzRW1wdHkpIHsKLSAgRmlsZVBhdGggYWN0dWFsID0gRmlsZVBhdGg6Ok1h
a2VGaWxlTmFtZShGaWxlUGF0aCgiIiksIEZpbGVQYXRoKCJiYXIiKSwKLSAgICAgIDAsICJ4bWwi
KTsKLSAgRVhQRUNUX0VRKCJiYXIueG1sIiwgYWN0dWFsLnN0cmluZygpKTsKLX0KLQotVEVTVChN
YWtlRmlsZU5hbWVUZXN0LCBHZW5lcmF0ZVdoZW5OdW1iZXJJc05vdFplcm9BbmREaXJJc0VtcHR5
KSB7Ci0gIEZpbGVQYXRoIGFjdHVhbCA9IEZpbGVQYXRoOjpNYWtlRmlsZU5hbWUoRmlsZVBhdGgo
IiIpLCBGaWxlUGF0aCgiYmFyIiksCi0gICAgICAxNCwgInhtbCIpOwotICBFWFBFQ1RfRVEoImJh
cl8xNC54bWwiLCBhY3R1YWwuc3RyaW5nKCkpOwotfQotCi1URVNUKENvbmNhdFBhdGhzVGVzdCwg
V29ya3NXaGVuRGlyRG9lc05vdEVuZFdpdGhQYXRoU2VwKSB7Ci0gIEZpbGVQYXRoIGFjdHVhbCA9
IEZpbGVQYXRoOjpDb25jYXRQYXRocyhGaWxlUGF0aCgiZm9vIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlUGF0aCgiYmFyLnhtbCIpKTsKLSAgRVhQRUNU
X0VRKCJmb28iIEdURVNUX1BBVEhfU0VQXyAiYmFyLnhtbCIsIGFjdHVhbC5zdHJpbmcoKSk7Ci19
Ci0KLVRFU1QoQ29uY2F0UGF0aHNUZXN0LCBXb3Jrc1doZW5QYXRoMUVuZHNXaXRoUGF0aFNlcCkg
ewotICBGaWxlUGF0aCBhY3R1YWwgPSBGaWxlUGF0aDo6Q29uY2F0UGF0aHMoRmlsZVBhdGgoImZv
byIgR1RFU1RfUEFUSF9TRVBfKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZpbGVQYXRoKCJiYXIueG1sIikpOwotICBFWFBFQ1RfRVEoImZvbyIgR1RFU1RfUEFU
SF9TRVBfICJiYXIueG1sIiwgYWN0dWFsLnN0cmluZygpKTsKLX0KLQotVEVTVChDb25jYXRQYXRo
c1Rlc3QsIFBhdGgxQmVpbmdFbXB0eSkgewotICBGaWxlUGF0aCBhY3R1YWwgPSBGaWxlUGF0aDo6
Q29uY2F0UGF0aHMoRmlsZVBhdGgoIiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRmlsZVBhdGgoImJhci54bWwiKSk7Ci0gIEVYUEVDVF9FUSgiYmFyLnhtbCIs
IGFjdHVhbC5zdHJpbmcoKSk7Ci19Ci0KLVRFU1QoQ29uY2F0UGF0aHNUZXN0LCBQYXRoMkJlaW5n
RW1wdHkpIHsKLSAgRmlsZVBhdGggYWN0dWFsID0gRmlsZVBhdGg6OkNvbmNhdFBhdGhzKEZpbGVQ
YXRoKCJmb28iKSwgRmlsZVBhdGgoIiIpKTsKLSAgRVhQRUNUX0VRKCJmb28iIEdURVNUX1BBVEhf
U0VQXywgYWN0dWFsLnN0cmluZygpKTsKLX0KLQotVEVTVChDb25jYXRQYXRoc1Rlc3QsIEJvdGhQ
YXRoQmVpbmdFbXB0eSkgewotICBGaWxlUGF0aCBhY3R1YWwgPSBGaWxlUGF0aDo6Q29uY2F0UGF0
aHMoRmlsZVBhdGgoIiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRmlsZVBhdGgoIiIpKTsKLSAgRVhQRUNUX0VRKCIiLCBhY3R1YWwuc3RyaW5nKCkpOwotfQot
Ci1URVNUKENvbmNhdFBhdGhzVGVzdCwgUGF0aDFDb250YWluc1BhdGhTZXApIHsKLSAgRmlsZVBh
dGggYWN0dWFsID0gRmlsZVBhdGg6OkNvbmNhdFBhdGhzKEZpbGVQYXRoKCJmb28iIEdURVNUX1BB
VEhfU0VQXyAiYmFyIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGaWxlUGF0aCgiZm9vYmFyLnhtbCIpKTsKLSAgRVhQRUNUX0VRKCJmb28iIEdURVNUX1BBVEhf
U0VQXyAiYmFyIiBHVEVTVF9QQVRIX1NFUF8gImZvb2Jhci54bWwiLAotICAgICAgICAgICAgYWN0
dWFsLnN0cmluZygpKTsKLX0KLQotVEVTVChDb25jYXRQYXRoc1Rlc3QsIFBhdGgyQ29udGFpbnNQ
YXRoU2VwKSB7Ci0gIEZpbGVQYXRoIGFjdHVhbCA9IEZpbGVQYXRoOjpDb25jYXRQYXRocygKLSAg
ICAgIEZpbGVQYXRoKCJmb28iIEdURVNUX1BBVEhfU0VQXyksCi0gICAgICBGaWxlUGF0aCgiYmFy
IiBHVEVTVF9QQVRIX1NFUF8gImJhci54bWwiKSk7Ci0gIEVYUEVDVF9FUSgiZm9vIiBHVEVTVF9Q
QVRIX1NFUF8gImJhciIgR1RFU1RfUEFUSF9TRVBfICJiYXIueG1sIiwKLSAgICAgICAgICAgIGFj
dHVhbC5zdHJpbmcoKSk7Ci19Ci0KLVRFU1QoQ29uY2F0UGF0aHNUZXN0LCBQYXRoMkVuZHNXaXRo
UGF0aFNlcCkgewotICBGaWxlUGF0aCBhY3R1YWwgPSBGaWxlUGF0aDo6Q29uY2F0UGF0aHMoRmls
ZVBhdGgoImZvbyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RmlsZVBhdGgoImJhciIgR1RFU1RfUEFUSF9TRVBfKSk7Ci0gIEVYUEVDVF9FUSgiZm9vIiBHVEVT
VF9QQVRIX1NFUF8gImJhciIgR1RFU1RfUEFUSF9TRVBfLCBhY3R1YWwuc3RyaW5nKCkpOwotfQot
Ci0vLyBSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IgIiIgLT4gIiIKLVRFU1QoUmVtb3ZlVHJh
aWxpbmdQYXRoU2VwYXJhdG9yVGVzdCwgRW1wdHlTdHJpbmcpIHsKLSAgRVhQRUNUX0VRKCIiLCBG
aWxlUGF0aCgiIikuUmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9yKCkuc3RyaW5nKCkpOwotfQot
Ci0vLyBSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IgImZvbyIgLT4gImZvbyIKLVRFU1QoUmVt
b3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9yVGVzdCwgRmlsZU5vU2xhc2hTdHJpbmcpIHsKLSAgRVhQ
RUNUX0VRKCJmb28iLCBGaWxlUGF0aCgiZm9vIikuUmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9y
KCkuc3RyaW5nKCkpOwotfQotCi0vLyBSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IgImZvby8i
IC0+ICJmb28iCi1URVNUKFJlbW92ZVRyYWlsaW5nUGF0aFNlcGFyYXRvclRlc3QsIFNob3VsZFJl
bW92ZVRyYWlsaW5nU2VwYXJhdG9yKSB7Ci0gIEVYUEVDVF9FUSgiZm9vIiwKLSAgICAgIEZpbGVQ
YXRoKCJmb28iIEdURVNUX1BBVEhfU0VQXykuUmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9yKCku
c3RyaW5nKCkpOwotI2lmIEdURVNUX0hBU19BTFRfUEFUSF9TRVBfCi0gIEVYUEVDVF9FUSgiZm9v
IiwgRmlsZVBhdGgoImZvby8iKS5SZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKS5zdHJpbmco
KSk7Ci0jZW5kaWYKLX0KLQotLy8gUmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9yICJmb28vYmFy
LyIgLT4gImZvby9iYXIvIgotVEVTVChSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3JUZXN0LCBT
aG91bGRSZW1vdmVMYXN0U2VwYXJhdG9yKSB7Ci0gIEVYUEVDVF9FUSgiZm9vIiBHVEVTVF9QQVRI
X1NFUF8gImJhciIsCi0gICAgICAgICAgICBGaWxlUGF0aCgiZm9vIiBHVEVTVF9QQVRIX1NFUF8g
ImJhciIgR1RFU1RfUEFUSF9TRVBfKQotICAgICAgICAgICAgICAgIC5SZW1vdmVUcmFpbGluZ1Bh
dGhTZXBhcmF0b3IoKS5zdHJpbmcoKSk7Ci19Ci0KLS8vIFJlbW92ZVRyYWlsaW5nUGF0aFNlcGFy
YXRvciAiZm9vL2JhciIgLT4gImZvby9iYXIiCi1URVNUKFJlbW92ZVRyYWlsaW5nUGF0aFNlcGFy
YXRvclRlc3QsIFNob3VsZFJldHVyblVubW9kaWZpZWQpIHsKLSAgRVhQRUNUX0VRKCJmb28iIEdU
RVNUX1BBVEhfU0VQXyAiYmFyIiwKLSAgICAgICAgICAgIEZpbGVQYXRoKCJmb28iIEdURVNUX1BB
VEhfU0VQXyAiYmFyIikKLSAgICAgICAgICAgICAgICAuUmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJh
dG9yKCkuc3RyaW5nKCkpOwotfQotCi1URVNUKERpcmVjdG9yeVRlc3QsIFJvb3REaXJlY3RvcnlF
eGlzdHMpIHsKLSNpZiBHVEVTVF9PU19XSU5ET1dTICAvLyBXZSBhcmUgb24gV2luZG93cy4KLSAg
Y2hhciBjdXJyZW50X2RyaXZlW19NQVhfUEFUSF07ICAvLyBOT0xJTlQKLSAgY3VycmVudF9kcml2
ZVswXSA9IHN0YXRpY19jYXN0PGNoYXI+KF9nZXRkcml2ZSgpICsgJ0EnIC0gMSk7Ci0gIGN1cnJl
bnRfZHJpdmVbMV0gPSAnOic7Ci0gIGN1cnJlbnRfZHJpdmVbMl0gPSAnXFwnOwotICBjdXJyZW50
X2RyaXZlWzNdID0gJ1wwJzsKLSAgRVhQRUNUX1RSVUUoRmlsZVBhdGgoY3VycmVudF9kcml2ZSku
RGlyZWN0b3J5RXhpc3RzKCkpOwotI2Vsc2UKLSAgRVhQRUNUX1RSVUUoRmlsZVBhdGgoIi8iKS5E
aXJlY3RvcnlFeGlzdHMoKSk7Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKLX0KLQotI2lm
IEdURVNUX09TX1dJTkRPV1MKLVRFU1QoRGlyZWN0b3J5VGVzdCwgUm9vdE9mV3JvbmdEcml2ZURv
ZXNOb3RFeGlzdHMpIHsKLSAgY29uc3QgaW50IHNhdmVkX2RyaXZlXyA9IF9nZXRkcml2ZSgpOwot
ICAvLyBGaW5kIGEgZHJpdmUgdGhhdCBkb2Vzbid0IGV4aXN0LiBTdGFydCB3aXRoICdaJyB0byBh
dm9pZCBjb21tb24gb25lcy4KLSAgZm9yIChjaGFyIGRyaXZlID0gJ1onOyBkcml2ZSA+PSAnQSc7
IGRyaXZlLS0pCi0gICAgaWYgKF9jaGRyaXZlKGRyaXZlIC0gJ0EnICsgMSkgPT0gLTEpIHsKLSAg
ICAgIGNoYXIgbm9uX2RyaXZlW19NQVhfUEFUSF07ICAvLyBOT0xJTlQKLSAgICAgIG5vbl9kcml2
ZVswXSA9IGRyaXZlOwotICAgICAgbm9uX2RyaXZlWzFdID0gJzonOwotICAgICAgbm9uX2RyaXZl
WzJdID0gJ1xcJzsKLSAgICAgIG5vbl9kcml2ZVszXSA9ICdcMCc7Ci0gICAgICBFWFBFQ1RfRkFM
U0UoRmlsZVBhdGgobm9uX2RyaXZlKS5EaXJlY3RvcnlFeGlzdHMoKSk7Ci0gICAgICBicmVhazsK
LSAgICB9Ci0gIF9jaGRyaXZlKHNhdmVkX2RyaXZlXyk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX09T
X1dJTkRPV1MKLQotI2lmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQotLy8gV2luZG93cyBDRSBf
ZG9lc18gY29uc2lkZXIgYW4gZW1wdHkgZGlyZWN0b3J5IHRvIGV4aXN0LgotVEVTVChEaXJlY3Rv
cnlUZXN0LCBFbXB0eVBhdGhEaXJlY3RvcnlEb2VzTm90RXhpc3QpIHsKLSAgRVhQRUNUX0ZBTFNF
KEZpbGVQYXRoKCIiKS5EaXJlY3RvcnlFeGlzdHMoKSk7Ci19Ci0jZW5kaWYgIC8vICFHVEVTVF9P
U19XSU5ET1dTX01PQklMRQotCi1URVNUKERpcmVjdG9yeVRlc3QsIEN1cnJlbnREaXJlY3RvcnlF
eGlzdHMpIHsKLSNpZiBHVEVTVF9PU19XSU5ET1dTICAvLyBXZSBhcmUgb24gV2luZG93cy4KLSMg
aWZuZGVmIF9XSU4zMl9DRSAgLy8gV2luZG93cyBDRSBkb2Vzbid0IGhhdmUgYSBjdXJyZW50IGRp
cmVjdG9yeS4KLQotICBFWFBFQ1RfVFJVRShGaWxlUGF0aCgiLiIpLkRpcmVjdG9yeUV4aXN0cygp
KTsKLSAgRVhQRUNUX1RSVUUoRmlsZVBhdGgoIi5cXCIpLkRpcmVjdG9yeUV4aXN0cygpKTsKLQot
IyBlbmRpZiAgLy8gX1dJTjMyX0NFCi0jZWxzZQotICBFWFBFQ1RfVFJVRShGaWxlUGF0aCgiLiIp
LkRpcmVjdG9yeUV4aXN0cygpKTsKLSAgRVhQRUNUX1RSVUUoRmlsZVBhdGgoIi4vIikuRGlyZWN0
b3J5RXhpc3RzKCkpOwotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi19Ci0KLS8vICJmb28v
YmFyIiA9PSBmb28vL2JhciIgPT0gImZvby8vL2JhciIKLVRFU1QoTm9ybWFsaXplVGVzdCwgTXVs
dGlwbGVDb25zZWN1dGl2ZVNlcGFwYXJhdG9yc0luTWlkc3RyaW5nKSB7Ci0gIEVYUEVDVF9FUSgi
Zm9vIiBHVEVTVF9QQVRIX1NFUF8gImJhciIsCi0gICAgICAgICAgICBGaWxlUGF0aCgiZm9vIiBH
VEVTVF9QQVRIX1NFUF8gImJhciIpLnN0cmluZygpKTsKLSAgRVhQRUNUX0VRKCJmb28iIEdURVNU
X1BBVEhfU0VQXyAiYmFyIiwKLSAgICAgICAgICAgIEZpbGVQYXRoKCJmb28iIEdURVNUX1BBVEhf
U0VQXyBHVEVTVF9QQVRIX1NFUF8gImJhciIpLnN0cmluZygpKTsKLSAgRVhQRUNUX0VRKCJmb28i
IEdURVNUX1BBVEhfU0VQXyAiYmFyIiwKLSAgICAgICAgICAgIEZpbGVQYXRoKCJmb28iIEdURVNU
X1BBVEhfU0VQXyBHVEVTVF9QQVRIX1NFUF8KLSAgICAgICAgICAgICAgICAgICAgIEdURVNUX1BB
VEhfU0VQXyAiYmFyIikuc3RyaW5nKCkpOwotfQotCi0vLyAiL2JhciIgPT0gLy9iYXIiID09ICIv
Ly9iYXIiCi1URVNUKE5vcm1hbGl6ZVRlc3QsIE11bHRpcGxlQ29uc2VjdXRpdmVTZXBhcGFyYXRv
cnNBdFN0cmluZ1N0YXJ0KSB7Ci0gIEVYUEVDVF9FUShHVEVTVF9QQVRIX1NFUF8gImJhciIsCi0g
ICAgRmlsZVBhdGgoR1RFU1RfUEFUSF9TRVBfICJiYXIiKS5zdHJpbmcoKSk7Ci0gIEVYUEVDVF9F
UShHVEVTVF9QQVRIX1NFUF8gImJhciIsCi0gICAgRmlsZVBhdGgoR1RFU1RfUEFUSF9TRVBfIEdU
RVNUX1BBVEhfU0VQXyAiYmFyIikuc3RyaW5nKCkpOwotICBFWFBFQ1RfRVEoR1RFU1RfUEFUSF9T
RVBfICJiYXIiLAotICAgIEZpbGVQYXRoKEdURVNUX1BBVEhfU0VQXyBHVEVTVF9QQVRIX1NFUF8g
R1RFU1RfUEFUSF9TRVBfICJiYXIiKS5zdHJpbmcoKSk7Ci19Ci0KLS8vICJmb28vIiA9PSBmb28v
LyIgPT0gImZvby8vLyIKLVRFU1QoTm9ybWFsaXplVGVzdCwgTXVsdGlwbGVDb25zZWN1dGl2ZVNl
cGFwYXJhdG9yc0F0U3RyaW5nRW5kKSB7Ci0gIEVYUEVDVF9FUSgiZm9vIiBHVEVTVF9QQVRIX1NF
UF8sCi0gICAgRmlsZVBhdGgoImZvbyIgR1RFU1RfUEFUSF9TRVBfKS5zdHJpbmcoKSk7Ci0gIEVY
UEVDVF9FUSgiZm9vIiBHVEVTVF9QQVRIX1NFUF8sCi0gICAgRmlsZVBhdGgoImZvbyIgR1RFU1Rf
UEFUSF9TRVBfIEdURVNUX1BBVEhfU0VQXykuc3RyaW5nKCkpOwotICBFWFBFQ1RfRVEoImZvbyIg
R1RFU1RfUEFUSF9TRVBfLAotICAgIEZpbGVQYXRoKCJmb28iIEdURVNUX1BBVEhfU0VQXyBHVEVT
VF9QQVRIX1NFUF8gR1RFU1RfUEFUSF9TRVBfKS5zdHJpbmcoKSk7Ci19Ci0KLSNpZiBHVEVTVF9I
QVNfQUxUX1BBVEhfU0VQXwotCi0vLyBUZXN0cyB0aGF0IHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBv
ZiB0aGUgc3RyaW5nIGFyZSBub3JtYWxpemVkCi0vLyByZWdhcmRsZXNzIG9mIHRoZWlyIGNvbWJp
bmF0aW9uIChlLmcuICJmb29cIiA9PSJmb28vXCIgPT0KLS8vICJmb29cXC8iKS4KLVRFU1QoTm9y
bWFsaXplVGVzdCwgTWl4QWx0ZXJuYXRlU2VwYXJhdG9yQXRTdHJpbmdFbmQpIHsKLSAgRVhQRUNU
X0VRKCJmb28iIEdURVNUX1BBVEhfU0VQXywKLSAgICAgICAgICAgIEZpbGVQYXRoKCJmb28vIiku
c3RyaW5nKCkpOwotICBFWFBFQ1RfRVEoImZvbyIgR1RFU1RfUEFUSF9TRVBfLAotICAgICAgICAg
ICAgRmlsZVBhdGgoImZvbyIgR1RFU1RfUEFUSF9TRVBfICIvIikuc3RyaW5nKCkpOwotICBFWFBF
Q1RfRVEoImZvbyIgR1RFU1RfUEFUSF9TRVBfLAotICAgICAgICAgICAgRmlsZVBhdGgoImZvby8v
IiBHVEVTVF9QQVRIX1NFUF8pLnN0cmluZygpKTsKLX0KLQotI2VuZGlmCi0KLVRFU1QoQXNzaWdu
bWVudE9wZXJhdG9yVGVzdCwgRGVmYXVsdEFzc2lnbmVkVG9Ob25EZWZhdWx0KSB7Ci0gIEZpbGVQ
YXRoIGRlZmF1bHRfcGF0aDsKLSAgRmlsZVBhdGggbm9uX2RlZmF1bHRfcGF0aCgicGF0aCIpOwot
ICBub25fZGVmYXVsdF9wYXRoID0gZGVmYXVsdF9wYXRoOwotICBFWFBFQ1RfRVEoIiIsIG5vbl9k
ZWZhdWx0X3BhdGguc3RyaW5nKCkpOwotICBFWFBFQ1RfRVEoIiIsIGRlZmF1bHRfcGF0aC5zdHJp
bmcoKSk7ICAvLyBSSFMgdmFyIGlzIHVuY2hhbmdlZC4KLX0KLQotVEVTVChBc3NpZ25tZW50T3Bl
cmF0b3JUZXN0LCBOb25EZWZhdWx0QXNzaWduZWRUb0RlZmF1bHQpIHsKLSAgRmlsZVBhdGggbm9u
X2RlZmF1bHRfcGF0aCgicGF0aCIpOwotICBGaWxlUGF0aCBkZWZhdWx0X3BhdGg7Ci0gIGRlZmF1
bHRfcGF0aCA9IG5vbl9kZWZhdWx0X3BhdGg7Ci0gIEVYUEVDVF9FUSgicGF0aCIsIGRlZmF1bHRf
cGF0aC5zdHJpbmcoKSk7Ci0gIEVYUEVDVF9FUSgicGF0aCIsIG5vbl9kZWZhdWx0X3BhdGguc3Ry
aW5nKCkpOyAgLy8gUkhTIHZhciBpcyB1bmNoYW5nZWQuCi19Ci0KLVRFU1QoQXNzaWdubWVudE9w
ZXJhdG9yVGVzdCwgQ29uc3RBc3NpZ25lZFRvTm9uQ29uc3QpIHsKLSAgY29uc3QgRmlsZVBhdGgg
Y29uc3RfZGVmYXVsdF9wYXRoKCJjb25zdF9wYXRoIik7Ci0gIEZpbGVQYXRoIG5vbl9kZWZhdWx0
X3BhdGgoInBhdGgiKTsKLSAgbm9uX2RlZmF1bHRfcGF0aCA9IGNvbnN0X2RlZmF1bHRfcGF0aDsK
LSAgRVhQRUNUX0VRKCJjb25zdF9wYXRoIiwgbm9uX2RlZmF1bHRfcGF0aC5zdHJpbmcoKSk7Ci19
Ci0KLWNsYXNzIERpcmVjdG9yeUNyZWF0aW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwcm90ZWN0
ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICB0ZXN0ZGF0YV9wYXRoXy5TZXQoRmls
ZVBhdGgoCi0gICAgICAgIFRlbXBEaXIoKSArIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpLnN0
cmluZygpICsKLSAgICAgICAgIl9kaXJlY3RvcnlfY3JlYXRpb24iIEdURVNUX1BBVEhfU0VQXyAi
dGVzdCIgR1RFU1RfUEFUSF9TRVBfKSk7Ci0gICAgdGVzdGRhdGFfZmlsZV8uU2V0KHRlc3RkYXRh
X3BhdGhfLlJlbW92ZVRyYWlsaW5nUGF0aFNlcGFyYXRvcigpKTsKLQotICAgIHVuaXF1ZV9maWxl
MF8uU2V0KEZpbGVQYXRoOjpNYWtlRmlsZU5hbWUodGVzdGRhdGFfcGF0aF8sIEZpbGVQYXRoKCJ1
bmlxdWUiKSwKLSAgICAgICAgMCwgInR4dCIpKTsKLSAgICB1bmlxdWVfZmlsZTFfLlNldChGaWxl
UGF0aDo6TWFrZUZpbGVOYW1lKHRlc3RkYXRhX3BhdGhfLCBGaWxlUGF0aCgidW5pcXVlIiksCi0g
ICAgICAgIDEsICJ0eHQiKSk7Ci0KLSAgICByZW1vdmUodGVzdGRhdGFfZmlsZV8uY19zdHIoKSk7
Ci0gICAgcmVtb3ZlKHVuaXF1ZV9maWxlMF8uY19zdHIoKSk7Ci0gICAgcmVtb3ZlKHVuaXF1ZV9m
aWxlMV8uY19zdHIoKSk7Ci0gICAgcG9zaXg6OlJtRGlyKHRlc3RkYXRhX3BhdGhfLmNfc3RyKCkp
OwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIHJlbW92ZSh0ZXN0ZGF0
YV9maWxlXy5jX3N0cigpKTsKLSAgICByZW1vdmUodW5pcXVlX2ZpbGUwXy5jX3N0cigpKTsKLSAg
ICByZW1vdmUodW5pcXVlX2ZpbGUxXy5jX3N0cigpKTsKLSAgICBwb3NpeDo6Um1EaXIodGVzdGRh
dGFfcGF0aF8uY19zdHIoKSk7Ci0gIH0KLQotICB2b2lkIENyZWF0ZVRleHRGaWxlKGNvbnN0IGNo
YXIqIGZpbGVuYW1lKSB7Ci0gICAgRklMRSogZiA9IHBvc2l4OjpGT3BlbihmaWxlbmFtZSwgInci
KTsKLSAgICBmcHJpbnRmKGYsICJ0ZXh0XG4iKTsKLSAgICBmY2xvc2UoZik7Ci0gIH0KLQotICAv
LyBTdHJpbmdzIHJlcHJlc2VudGluZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlLCB3aXRoIGlkZW50
aWNhbCBwYXRocwotICAvLyBleGNlcHQgZm9yIHRoZSB0cmFpbGluZyBzZXBhcmF0b3IgY2hhcmFj
dGVyIHRoYXQgZGlzdGlucXVpc2hlcwotICAvLyBhIGRpcmVjdG9yeSBuYW1lZCAndGVzdCcgZnJv
bSBhIGZpbGUgbmFtZWQgJ3Rlc3QnLiBFeGFtcGxlIG5hbWVzOgotICBGaWxlUGF0aCB0ZXN0ZGF0
YV9wYXRoXzsgIC8vICIvdG1wL2RpcmVjdG9yeV9jcmVhdGlvbi90ZXN0LyIKLSAgRmlsZVBhdGgg
dGVzdGRhdGFfZmlsZV87ICAvLyAiL3RtcC9kaXJlY3RvcnlfY3JlYXRpb24vdGVzdCIKLSAgRmls
ZVBhdGggdW5pcXVlX2ZpbGUwXzsgIC8vICIvdG1wL2RpcmVjdG9yeV9jcmVhdGlvbi90ZXN0L3Vu
aXF1ZS50eHQiCi0gIEZpbGVQYXRoIHVuaXF1ZV9maWxlMV87ICAvLyAiL3RtcC9kaXJlY3Rvcnlf
Y3JlYXRpb24vdGVzdC91bmlxdWVfMS50eHQiCi19OwotCi1URVNUX0YoRGlyZWN0b3J5Q3JlYXRp
b25UZXN0LCBDcmVhdGVEaXJlY3Rvcmllc1JlY3Vyc2l2ZWx5KSB7Ci0gIEVYUEVDVF9GQUxTRSh0
ZXN0ZGF0YV9wYXRoXy5EaXJlY3RvcnlFeGlzdHMoKSkgPDwgdGVzdGRhdGFfcGF0aF8uc3RyaW5n
KCk7Ci0gIEVYUEVDVF9UUlVFKHRlc3RkYXRhX3BhdGhfLkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJz
aXZlbHkoKSk7Ci0gIEVYUEVDVF9UUlVFKHRlc3RkYXRhX3BhdGhfLkRpcmVjdG9yeUV4aXN0cygp
KTsKLX0KLQotVEVTVF9GKERpcmVjdG9yeUNyZWF0aW9uVGVzdCwgQ3JlYXRlRGlyZWN0b3JpZXNG
b3JBbHJlYWR5RXhpc3RpbmdQYXRoKSB7Ci0gIEVYUEVDVF9GQUxTRSh0ZXN0ZGF0YV9wYXRoXy5E
aXJlY3RvcnlFeGlzdHMoKSkgPDwgdGVzdGRhdGFfcGF0aF8uc3RyaW5nKCk7Ci0gIEVYUEVDVF9U
UlVFKHRlc3RkYXRhX3BhdGhfLkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSk7Ci0gIC8v
IENhbGwgJ2NyZWF0ZScgYWdhaW4uLi4gc2hvdWxkIHN0aWxsIHN1Y2NlZWQuCi0gIEVYUEVDVF9U
UlVFKHRlc3RkYXRhX3BhdGhfLkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSk7Ci19Ci0K
LVRFU1RfRihEaXJlY3RvcnlDcmVhdGlvblRlc3QsIENyZWF0ZURpcmVjdG9yaWVzQW5kVW5pcXVl
RmlsZW5hbWUpIHsKLSAgRmlsZVBhdGggZmlsZV9wYXRoKEZpbGVQYXRoOjpHZW5lcmF0ZVVuaXF1
ZUZpbGVOYW1lKHRlc3RkYXRhX3BhdGhfLAotICAgICAgRmlsZVBhdGgoInVuaXF1ZSIpLCAidHh0
IikpOwotICBFWFBFQ1RfRVEodW5pcXVlX2ZpbGUwXy5zdHJpbmcoKSwgZmlsZV9wYXRoLnN0cmlu
ZygpKTsKLSAgRVhQRUNUX0ZBTFNFKGZpbGVfcGF0aC5GaWxlT3JEaXJlY3RvcnlFeGlzdHMoKSk7
ICAvLyBmaWxlIG5vdCB0aGVyZQotCi0gIHRlc3RkYXRhX3BhdGhfLkNyZWF0ZURpcmVjdG9yaWVz
UmVjdXJzaXZlbHkoKTsKLSAgRVhQRUNUX0ZBTFNFKGZpbGVfcGF0aC5GaWxlT3JEaXJlY3RvcnlF
eGlzdHMoKSk7ICAvLyBmaWxlIHN0aWxsIG5vdCB0aGVyZQotICBDcmVhdGVUZXh0RmlsZShmaWxl
X3BhdGguY19zdHIoKSk7Ci0gIEVYUEVDVF9UUlVFKGZpbGVfcGF0aC5GaWxlT3JEaXJlY3RvcnlF
eGlzdHMoKSk7Ci0KLSAgRmlsZVBhdGggZmlsZV9wYXRoMihGaWxlUGF0aDo6R2VuZXJhdGVVbmlx
dWVGaWxlTmFtZSh0ZXN0ZGF0YV9wYXRoXywKLSAgICAgIEZpbGVQYXRoKCJ1bmlxdWUiKSwgInR4
dCIpKTsKLSAgRVhQRUNUX0VRKHVuaXF1ZV9maWxlMV8uc3RyaW5nKCksIGZpbGVfcGF0aDIuc3Ry
aW5nKCkpOwotICBFWFBFQ1RfRkFMU0UoZmlsZV9wYXRoMi5GaWxlT3JEaXJlY3RvcnlFeGlzdHMo
KSk7ICAvLyBmaWxlIG5vdCB0aGVyZQotICBDcmVhdGVUZXh0RmlsZShmaWxlX3BhdGgyLmNfc3Ry
KCkpOwotICBFWFBFQ1RfVFJVRShmaWxlX3BhdGgyLkZpbGVPckRpcmVjdG9yeUV4aXN0cygpKTsK
LX0KLQotVEVTVF9GKERpcmVjdG9yeUNyZWF0aW9uVGVzdCwgQ3JlYXRlRGlyZWN0b3JpZXNGYWls
KSB7Ci0gIC8vIGZvcmNlIGEgZmFpbHVyZSBieSBwdXR0aW5nIGEgZmlsZSB3aGVyZSB3ZSB3aWxs
IHRyeSB0byBjcmVhdGUgYSBkaXJlY3RvcnkuCi0gIENyZWF0ZVRleHRGaWxlKHRlc3RkYXRhX2Zp
bGVfLmNfc3RyKCkpOwotICBFWFBFQ1RfVFJVRSh0ZXN0ZGF0YV9maWxlXy5GaWxlT3JEaXJlY3Rv
cnlFeGlzdHMoKSk7Ci0gIEVYUEVDVF9GQUxTRSh0ZXN0ZGF0YV9maWxlXy5EaXJlY3RvcnlFeGlz
dHMoKSk7Ci0gIEVYUEVDVF9GQUxTRSh0ZXN0ZGF0YV9maWxlXy5DcmVhdGVEaXJlY3Rvcmllc1Jl
Y3Vyc2l2ZWx5KCkpOwotfQotCi1URVNUKE5vRGlyZWN0b3J5Q3JlYXRpb25UZXN0LCBDcmVhdGVO
b0RpcmVjdG9yaWVzRm9yRGVmYXVsdFhtbEZpbGUpIHsKLSAgY29uc3QgRmlsZVBhdGggdGVzdF9k
ZXRhaWxfeG1sKCJ0ZXN0X2RldGFpbC54bWwiKTsKLSAgRVhQRUNUX0ZBTFNFKHRlc3RfZGV0YWls
X3htbC5DcmVhdGVEaXJlY3Rvcmllc1JlY3Vyc2l2ZWx5KCkpOwotfQotCi1URVNUKEZpbGVQYXRo
VGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKSB7Ci0gIEZpbGVQYXRoIGZwOwotICBFWFBFQ1RfRVEo
IiIsIGZwLnN0cmluZygpKTsKLX0KLQotVEVTVChGaWxlUGF0aFRlc3QsIENoYXJBbmRDb3B5Q29u
c3RydWN0b3JzKSB7Ci0gIGNvbnN0IEZpbGVQYXRoIGZwKCJzcGljeSIpOwotICBFWFBFQ1RfRVEo
InNwaWN5IiwgZnAuc3RyaW5nKCkpOwotCi0gIGNvbnN0IEZpbGVQYXRoIGZwX2NvcHkoZnApOwot
ICBFWFBFQ1RfRVEoInNwaWN5IiwgZnBfY29weS5zdHJpbmcoKSk7Ci19Ci0KLVRFU1QoRmlsZVBh
dGhUZXN0LCBTdHJpbmdDb25zdHJ1Y3RvcikgewotICBjb25zdCBGaWxlUGF0aCBmcChzdGQ6OnN0
cmluZygiY2lkZXIiKSk7Ci0gIEVYUEVDVF9FUSgiY2lkZXIiLCBmcC5zdHJpbmcoKSk7Ci19Ci0K
LVRFU1QoRmlsZVBhdGhUZXN0LCBTZXQpIHsKLSAgY29uc3QgRmlsZVBhdGggYXBwbGUoImFwcGxl
Iik7Ci0gIEZpbGVQYXRoIG1hYygibWFjIik7Ci0gIG1hYy5TZXQoYXBwbGUpOyAgLy8gSW1wbGVt
ZW50IFNldCgpIHNpbmNlIG92ZXJsb2FkaW5nIG9wZXJhdG9yPSBpcyBmb3JiaWRkZW4uCi0gIEVY
UEVDVF9FUSgiYXBwbGUiLCBtYWMuc3RyaW5nKCkpOwotICBFWFBFQ1RfRVEoImFwcGxlIiwgYXBw
bGUuc3RyaW5nKCkpOwotfQotCi1URVNUKEZpbGVQYXRoVGVzdCwgVG9TdHJpbmcpIHsKLSAgY29u
c3QgRmlsZVBhdGggZmlsZSgiZHJpbmsiKTsKLSAgRVhQRUNUX0VRKCJkcmluayIsIGZpbGUuc3Ry
aW5nKCkpOwotfQotCi1URVNUKEZpbGVQYXRoVGVzdCwgUmVtb3ZlRXh0ZW5zaW9uKSB7Ci0gIEVY
UEVDVF9FUSgiYXBwIiwgRmlsZVBhdGgoImFwcC5jYyIpLlJlbW92ZUV4dGVuc2lvbigiY2MiKS5z
dHJpbmcoKSk7Ci0gIEVYUEVDVF9FUSgiYXBwIiwgRmlsZVBhdGgoImFwcC5leGUiKS5SZW1vdmVF
eHRlbnNpb24oImV4ZSIpLnN0cmluZygpKTsKLSAgRVhQRUNUX0VRKCJBUFAiLCBGaWxlUGF0aCgi
QVBQLkVYRSIpLlJlbW92ZUV4dGVuc2lvbigiZXhlIikuc3RyaW5nKCkpOwotfQotCi1URVNUKEZp
bGVQYXRoVGVzdCwgUmVtb3ZlRXh0ZW5zaW9uV2hlblRoZXJlSXNOb0V4dGVuc2lvbikgewotICBF
WFBFQ1RfRVEoImFwcCIsIEZpbGVQYXRoKCJhcHAiKS5SZW1vdmVFeHRlbnNpb24oImV4ZSIpLnN0
cmluZygpKTsKLX0KLQotVEVTVChGaWxlUGF0aFRlc3QsIElzRGlyZWN0b3J5KSB7Ci0gIEVYUEVD
VF9GQUxTRShGaWxlUGF0aCgiY29sYSIpLklzRGlyZWN0b3J5KCkpOwotICBFWFBFQ1RfVFJVRShG
aWxlUGF0aCgia29hbGEiIEdURVNUX1BBVEhfU0VQXykuSXNEaXJlY3RvcnkoKSk7Ci0jaWYgR1RF
U1RfSEFTX0FMVF9QQVRIX1NFUF8KLSAgRVhQRUNUX1RSVUUoRmlsZVBhdGgoImtvYWxhLyIpLklz
RGlyZWN0b3J5KCkpOwotI2VuZGlmCi19Ci0KLVRFU1QoRmlsZVBhdGhUZXN0LCBJc0Fic29sdXRl
UGF0aCkgewotICBFWFBFQ1RfRkFMU0UoRmlsZVBhdGgoImlzIiBHVEVTVF9QQVRIX1NFUF8gInJl
bGF0aXZlIikuSXNBYnNvbHV0ZVBhdGgoKSk7Ci0gIEVYUEVDVF9GQUxTRShGaWxlUGF0aCgiIiku
SXNBYnNvbHV0ZVBhdGgoKSk7Ci0jaWYgR1RFU1RfT1NfV0lORE9XUwotICBFWFBFQ1RfVFJVRShG
aWxlUGF0aCgiYzpcXCIgR1RFU1RfUEFUSF9TRVBfICJpc19ub3QiCi0gICAgICAgICAgICAgICAg
ICAgICAgIEdURVNUX1BBVEhfU0VQXyAicmVsYXRpdmUiKS5Jc0Fic29sdXRlUGF0aCgpKTsKLSAg
RVhQRUNUX0ZBTFNFKEZpbGVQYXRoKCJjOmZvbyIgR1RFU1RfUEFUSF9TRVBfICJiYXIiKS5Jc0Fi
c29sdXRlUGF0aCgpKTsKLSAgRVhQRUNUX1RSVUUoRmlsZVBhdGgoImM6LyIgR1RFU1RfUEFUSF9T
RVBfICJpc19ub3QiCi0gICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1BBVEhfU0VQXyAicmVs
YXRpdmUiKS5Jc0Fic29sdXRlUGF0aCgpKTsKLSNlbHNlCi0gIEVYUEVDVF9UUlVFKEZpbGVQYXRo
KEdURVNUX1BBVEhfU0VQXyAiaXNfbm90IiBHVEVTVF9QQVRIX1NFUF8gInJlbGF0aXZlIikKLSAg
ICAgICAgICAgICAgLklzQWJzb2x1dGVQYXRoKCkpOwotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5E
T1dTCi19Ci0KLVRFU1QoRmlsZVBhdGhUZXN0LCBJc1Jvb3REaXJlY3RvcnkpIHsKLSNpZiBHVEVT
VF9PU19XSU5ET1dTCi0gIEVYUEVDVF9UUlVFKEZpbGVQYXRoKCJhOlxcIikuSXNSb290RGlyZWN0
b3J5KCkpOwotICBFWFBFQ1RfVFJVRShGaWxlUGF0aCgiWjovIikuSXNSb290RGlyZWN0b3J5KCkp
OwotICBFWFBFQ1RfVFJVRShGaWxlUGF0aCgiZTovLyIpLklzUm9vdERpcmVjdG9yeSgpKTsKLSAg
RVhQRUNUX0ZBTFNFKEZpbGVQYXRoKCIiKS5Jc1Jvb3REaXJlY3RvcnkoKSk7Ci0gIEVYUEVDVF9G
QUxTRShGaWxlUGF0aCgiYjoiKS5Jc1Jvb3REaXJlY3RvcnkoKSk7Ci0gIEVYUEVDVF9GQUxTRShG
aWxlUGF0aCgiYjphIikuSXNSb290RGlyZWN0b3J5KCkpOwotICBFWFBFQ1RfRkFMU0UoRmlsZVBh
dGgoIjg6LyIpLklzUm9vdERpcmVjdG9yeSgpKTsKLSAgRVhQRUNUX0ZBTFNFKEZpbGVQYXRoKCJj
fC8iKS5Jc1Jvb3REaXJlY3RvcnkoKSk7Ci0jZWxzZQotICBFWFBFQ1RfVFJVRShGaWxlUGF0aCgi
LyIpLklzUm9vdERpcmVjdG9yeSgpKTsKLSAgRVhQRUNUX1RSVUUoRmlsZVBhdGgoIi8vIikuSXNS
b290RGlyZWN0b3J5KCkpOwotICBFWFBFQ1RfRkFMU0UoRmlsZVBhdGgoIiIpLklzUm9vdERpcmVj
dG9yeSgpKTsKLSAgRVhQRUNUX0ZBTFNFKEZpbGVQYXRoKCJcXCIpLklzUm9vdERpcmVjdG9yeSgp
KTsKLSAgRVhQRUNUX0ZBTFNFKEZpbGVQYXRoKCIveCIpLklzUm9vdERpcmVjdG9yeSgpKTsKLSNl
bmRpZgotfQotCi19ICAvLyBuYW1lc3BhY2UKLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAg
Ly8gbmFtZXNwYWNlIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvZ3Rlc3QtbGlua2VkX3B0cl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvdGVzdC9ndGVzdC1saW5rZWRfcHRyX3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZmY2Y1MTI0YThjMzFhZjg0OGZkMTA3N2E0NTFhN2M0MTg0NGM0MzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1saW5rZWRfcHRyX3Rlc3QuY2MKKysrIC9kZXYvbnVsbApA
QCAtMSwxNTQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDMsIEdvb2dsZSBJbmMuCi0vLyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8g
bWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8v
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotLy8KLS8vIEF1dGhvcnM6IERhbiBFZ25vciAoZWdub3JAZ29vZ2xlLmNvbSkKLS8vIFBv
cnRlZCB0byBXaW5kb3dzOiBWYWRpbSBCZXJtYW4gKHZhZGltYkBnb29nbGUuY29tKQotCi0jaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0ci5oIgotCi0jaW5jbHVkZSA8c3Rk
bGliLmg+Ci0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotbmFtZXNwYWNlIHsKLQotdXNpbmcg
dGVzdGluZzo6TWVzc2FnZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpsaW5rZWRfcHRyOwot
Ci1pbnQgbnVtOwotTWVzc2FnZSogaGlzdG9yeSA9IE5VTEw7Ci0KLS8vIENsYXNzIHdoaWNoIHRy
YWNrcyBhbGxvY2F0aW9uL2RlYWxsb2NhdGlvbgotY2xhc3MgQSB7Ci0gcHVibGljOgotICBBKCk6
IG15bnVtKG51bSsrKSB7ICpoaXN0b3J5IDw8ICJBIiA8PCBteW51bSA8PCAiIGN0b3JcbiI7IH0K
LSAgdmlydHVhbCB+QSgpIHsgKmhpc3RvcnkgPDwgIkEiIDw8IG15bnVtIDw8ICIgZHRvclxuIjsg
fQotICB2aXJ0dWFsIHZvaWQgVXNlKCkgeyAqaGlzdG9yeSA8PCAiQSIgPDwgbXludW0gPDwgIiB1
c2VcbiI7IH0KLSBwcm90ZWN0ZWQ6Ci0gIGludCBteW51bTsKLX07Ci0KLS8vIFN1YmNsYXNzCi1j
bGFzcyBCIDogcHVibGljIEEgewotIHB1YmxpYzoKLSAgQigpIHsgKmhpc3RvcnkgPDwgIkIiIDw8
IG15bnVtIDw8ICIgY3RvclxuIjsgfQotICB+QigpIHsgKmhpc3RvcnkgPDwgIkIiIDw8IG15bnVt
IDw8ICIgZHRvclxuIjsgfQotICB2aXJ0dWFsIHZvaWQgVXNlKCkgeyAqaGlzdG9yeSA8PCAiQiIg
PDwgbXludW0gPDwgIiB1c2VcbiI7IH0KLX07Ci0KLWNsYXNzIExpbmtlZFB0clRlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdCB7Ci0gcHVibGljOgotICBMaW5rZWRQdHJUZXN0KCkgewotICAgIG51
bSA9IDA7Ci0gICAgaGlzdG9yeSA9IG5ldyBNZXNzYWdlOwotICB9Ci0KLSAgdmlydHVhbCB+TGlu
a2VkUHRyVGVzdCgpIHsKLSAgICBkZWxldGUgaGlzdG9yeTsKLSAgICBoaXN0b3J5ID0gTlVMTDsK
LSAgfQotfTsKLQotVEVTVF9GKExpbmtlZFB0clRlc3QsIEdlbmVyYWxUZXN0KSB7Ci0gIHsKLSAg
ICBsaW5rZWRfcHRyPEE+IGEwLCBhMSwgYTI7Ci0gICAgLy8gVXNlIGV4cGxpY2l0IGZ1bmN0aW9u
IGNhbGwgbm90YXRpb24gaGVyZSB0byBzdXBwcmVzcyBzZWxmLWFzc2lnbiB3YXJuaW5nLgotICAg
IGEwLm9wZXJhdG9yPShhMCk7Ci0gICAgYTEgPSBhMjsKLSAgICBBU1NFUlRfRVEoYTAuZ2V0KCks
IHN0YXRpY19jYXN0PEEqPihOVUxMKSk7Ci0gICAgQVNTRVJUX0VRKGExLmdldCgpLCBzdGF0aWNf
Y2FzdDxBKj4oTlVMTCkpOwotICAgIEFTU0VSVF9FUShhMi5nZXQoKSwgc3RhdGljX2Nhc3Q8QSo+
KE5VTEwpKTsKLSAgICBBU1NFUlRfVFJVRShhMCA9PSBOVUxMKTsKLSAgICBBU1NFUlRfVFJVRShh
MSA9PSBOVUxMKTsKLSAgICBBU1NFUlRfVFJVRShhMiA9PSBOVUxMKTsKLQotICAgIHsKLSAgICAg
IGxpbmtlZF9wdHI8QT4gYTMobmV3IEEpOwotICAgICAgYTAgPSBhMzsKLSAgICAgIEFTU0VSVF9U
UlVFKGEwID09IGEzKTsKLSAgICAgIEFTU0VSVF9UUlVFKGEwICE9IE5VTEwpOwotICAgICAgQVNT
RVJUX1RSVUUoYTAuZ2V0KCkgPT0gYTMpOwotICAgICAgQVNTRVJUX1RSVUUoYTAgPT0gYTMuZ2V0
KCkpOwotICAgICAgbGlua2VkX3B0cjxBPiBhNChhMCk7Ci0gICAgICBhMSA9IGE0OwotICAgICAg
bGlua2VkX3B0cjxBPiBhNShuZXcgQSk7Ci0gICAgICBBU1NFUlRfVFJVRShhNS5nZXQoKSAhPSBh
Myk7Ci0gICAgICBBU1NFUlRfVFJVRShhNSAhPSBhMy5nZXQoKSk7Ci0gICAgICBhMiA9IGE1Owot
ICAgICAgbGlua2VkX3B0cjxCPiBiMChuZXcgQik7Ci0gICAgICBsaW5rZWRfcHRyPEE+IGE2KGIw
KTsKLSAgICAgIEFTU0VSVF9UUlVFKGIwID09IGE2KTsKLSAgICAgIEFTU0VSVF9UUlVFKGE2ID09
IGIwKTsKLSAgICAgIEFTU0VSVF9UUlVFKGIwICE9IE5VTEwpOwotICAgICAgYTUgPSBiMDsKLSAg
ICAgIGE1ID0gYjA7Ci0gICAgICBhMy0+VXNlKCk7Ci0gICAgICBhNC0+VXNlKCk7Ci0gICAgICBh
NS0+VXNlKCk7Ci0gICAgICBhNi0+VXNlKCk7Ci0gICAgICBiMC0+VXNlKCk7Ci0gICAgICAoKmIw
KS5Vc2UoKTsKLSAgICAgIGIwLmdldCgpLT5Vc2UoKTsKLSAgICB9Ci0KLSAgICBhMC0+VXNlKCk7
Ci0gICAgYTEtPlVzZSgpOwotICAgIGEyLT5Vc2UoKTsKLQotICAgIGExID0gYTI7Ci0gICAgYTIu
cmVzZXQobmV3IEEpOwotICAgIGEwLnJlc2V0KCk7Ci0KLSAgICBsaW5rZWRfcHRyPEE+IGE3Owot
ICB9Ci0KLSAgQVNTRVJUX1NUUkVRKAotICAgICJBMCBjdG9yXG4iCi0gICAgIkExIGN0b3JcbiIK
LSAgICAiQTIgY3RvclxuIgotICAgICJCMiBjdG9yXG4iCi0gICAgIkEwIHVzZVxuIgotICAgICJB
MCB1c2VcbiIKLSAgICAiQjIgdXNlXG4iCi0gICAgIkIyIHVzZVxuIgotICAgICJCMiB1c2VcbiIK
LSAgICAiQjIgdXNlXG4iCi0gICAgIkIyIHVzZVxuIgotICAgICJCMiBkdG9yXG4iCi0gICAgIkEy
IGR0b3JcbiIKLSAgICAiQTAgdXNlXG4iCi0gICAgIkEwIHVzZVxuIgotICAgICJBMSB1c2VcbiIK
LSAgICAiQTMgY3RvclxuIgotICAgICJBMCBkdG9yXG4iCi0gICAgIkEzIGR0b3JcbiIKLSAgICAi
QTEgZHRvclxuIiwKLSAgICBoaXN0b3J5LT5HZXRTdHJpbmcoKS5jX3N0cigpKTsKLX0KLQotfSAg
Ly8gVW5uYW1lZCBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvZ3Rlc3QtbGlzdGVuZXJfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvZ3Rlc3QtbGlzdGVuZXJfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTA3NDc2ODVmMDcyYjIyMTA4ZmNkMWMzMWQ1Y2NjNWQ0NjIyOTYzMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC90ZXN0L2d0ZXN0LWxpc3RlbmVyX3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwz
MTEgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0v
LyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8v
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0v
LyBBdXRob3I6IHZsYWRsQGdvb2dsZS5jb20gKFZsYWQgTG9zZXYpCi0vLwotLy8gVGhlIEdvb2ds
ZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQotLy8KLS8vIFRoaXMgZmlsZSB2
ZXJpZmllcyBHb29nbGUgVGVzdCBldmVudCBsaXN0ZW5lcnMgcmVjZWl2ZSBldmVudHMgYXQgdGhl
Ci0vLyByaWdodCB0aW1lcy4KLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSA8
dmVjdG9yPgotCi11c2luZyA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudDsKLXVz
aW5nIDo6dGVzdGluZzo6RW52aXJvbm1lbnQ7Ci11c2luZyA6OnRlc3Rpbmc6OkluaXRHb29nbGVU
ZXN0OwotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0OwotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0Q2FzZTsK
LXVzaW5nIDo6dGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXI7Ci11c2luZyA6OnRlc3Rpbmc6OlRl
c3RJbmZvOwotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDsKLXVzaW5nIDo6dGVzdGlu
Zzo6VW5pdFRlc3Q7Ci0KLS8vIFVzZWQgYnkgdGVzdHMgdG8gcmVnaXN0ZXIgdGhlaXIgZXZlbnRz
Lgotc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiBnX2V2ZW50cyA9IE5VTEw7Ci0KLW5hbWVzcGFj
ZSB0ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLWNsYXNzIEV2ZW50UmVjb3JkaW5n
TGlzdGVuZXIgOiBwdWJsaWMgVGVzdEV2ZW50TGlzdGVuZXIgewotIHB1YmxpYzoKLSAgZXhwbGlj
aXQgRXZlbnRSZWNvcmRpbmdMaXN0ZW5lcihjb25zdCBjaGFyKiBuYW1lKSA6IG5hbWVfKG5hbWUp
IHt9Ci0KLSBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdl
dEZ1bGxNZXRob2ROYW1lKCJPblRlc3RQcm9ncmFtU3RhcnQiKSk7Ci0gIH0KLQotICB2aXJ0dWFs
IHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlcmF0aW9uKSB7Ci0g
ICAgTWVzc2FnZSBtZXNzYWdlOwotICAgIG1lc3NhZ2UgPDwgR2V0RnVsbE1ldGhvZE5hbWUoIk9u
VGVzdEl0ZXJhdGlvblN0YXJ0IikKLSAgICAgICAgICAgIDw8ICIoIiA8PCBpdGVyYXRpb24gPDwg
IikiOwotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2sobWVzc2FnZS5HZXRTdHJpbmcoKSk7Ci0gIH0K
LQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9k
TmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IikpOwotICB9Ci0KLSAgdmlydHVhbCB2b2lk
IE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsK
LSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50
c1NldFVwRW5kIikpOwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25z
dCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0
RnVsbE1ldGhvZE5hbWUoIk9uVGVzdENhc2VTdGFydCIpKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9p
ZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgewotICAgIGdfZXZl
bnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFN0YXJ0IikpOwotICB9Ci0K
LSAgdmlydHVhbCB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIC8q
dGVzdF9wYXJ0X3Jlc3VsdCovKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0
aG9kTmFtZSgiT25UZXN0UGFydFJlc3VsdCIpKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBPblRl
c3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHsKLSAgICBnX2V2ZW50cy0+cHVz
aF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RFbmQiKSk7Ci0gIH0KLQotICB2aXJ0dWFs
IHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgewotICAg
IGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdENhc2VFbmQiKSk7
Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0
IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRG
dWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IikpOwotICB9Ci0KLSAg
dmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIC8q
dW5pdF90ZXN0Ki8pIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1l
KCJPbkVudmlyb25tZW50c1RlYXJEb3duRW5kIikpOwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIE9u
VGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlcmF0aW9uKSB7Ci0gICAgTWVzc2FnZSBt
ZXNzYWdlOwotICAgIG1lc3NhZ2UgPDwgR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdEl0ZXJhdGlv
bkVuZCIpCi0gICAgICAgICAgICA8PCAiKCIgIDw8IGl0ZXJhdGlvbiA8PCAiKSI7Ci0gICAgZ19l
dmVudHMtPnB1c2hfYmFjayhtZXNzYWdlLkdldFN0cmluZygpKTsKLSAgfQotCi0gIHZpcnR1YWwg
dm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0g
ICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0UHJvZ3JhbUVu
ZCIpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgc3RkOjpzdHJpbmcgR2V0RnVsbE1ldGhvZE5hbWUo
Y29uc3QgY2hhciogbmFtZSkgewotICAgIHJldHVybiBuYW1lXyArICIuIiArIG5hbWU7Ci0gIH0K
LQotICBzdGQ6OnN0cmluZyBuYW1lXzsKLX07Ci0KLWNsYXNzIEVudmlyb25tZW50SW52b2NhdGlv
bkNhdGNoZXIgOiBwdWJsaWMgRW52aXJvbm1lbnQgewotIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soIkVudmlyb25tZW50OjpTZXRV
cCIpOwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIGdfZXZlbnRzLT5w
dXNoX2JhY2soIkVudmlyb25tZW50OjpUZWFyRG93biIpOwotICB9Ci19OwotCi1jbGFzcyBMaXN0
ZW5lclRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHJvdGVjdGVkOgotICBzdGF0aWMgdm9pZCBTZXRV
cFRlc3RDYXNlKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0
VXBUZXN0Q2FzZSIpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsK
LSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdENhc2Ui
KTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9i
YWNrKCJMaXN0ZW5lclRlc3Q6OlNldFVwIik7Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRv
d24oKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIp
OwotICB9Ci19OwotCi1URVNUX0YoTGlzdGVuZXJUZXN0LCBEb2VzRm9vKSB7Ci0gIC8vIFRlc3Qg
ZXhlY3V0aW9uIG9yZGVyIHdpdGhpbiBhIHRlc3QgY2FzZSBpcyBub3QgZ3VhcmFudGVlZCBzbyB3
ZSBhcmUgbm90Ci0gIC8vIHJlY29yZGluZyB0aGUgdGVzdCBuYW1lLgotICBnX2V2ZW50cy0+cHVz
aF9iYWNrKCJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5Iik7Ci0gIFNVQ0NFRUQoKTsgIC8vIFRy
aWdnZXJzIE9uVGVzdFBhcnRSZXN1bHQuCi19Ci0KLVRFU1RfRihMaXN0ZW5lclRlc3QsIERvZXNC
YXIpIHsKLSAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIp
OwotICBTVUNDRUVEKCk7ICAvLyBUcmlnZ2VycyBPblRlc3RQYXJ0UmVzdWx0LgotfQotCi19ICAv
LyBuYW1lc3BhY2UgaW50ZXJuYWwKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotdXNpbmcg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6RW52aXJvbm1lbnRJbnZvY2F0aW9uQ2F0Y2hlcjsKLXVzaW5n
IDo6dGVzdGluZzo6aW50ZXJuYWw6OkV2ZW50UmVjb3JkaW5nTGlzdGVuZXI7Ci0KLXZvaWQgVmVy
aWZ5UmVzdWx0cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIGRhdGEsCi0gICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogY29uc3QqIGV4cGVjdGVkX2RhdGEsCi0gICAgICAgICAg
ICAgICAgICAgc2l6ZV90IGV4cGVjdGVkX2RhdGFfc2l6ZSkgewotICBjb25zdCBzaXplX3QgYWN0
dWFsX3NpemUgPSBkYXRhLnNpemUoKTsKLSAgLy8gSWYgdGhlIGZvbGxvd2luZyBhc3NlcnRpb24g
ZmFpbHMsIGEgbmV3IGVudHJ5IHdpbGwgYmUgYXBwZW5kZWQgdG8KLSAgLy8gZGF0YS4gIEhlbmNl
IHdlIHNhdmUgZGF0YS5zaXplKCkgZmlyc3QuCi0gIEVYUEVDVF9FUShleHBlY3RlZF9kYXRhX3Np
emUsIGFjdHVhbF9zaXplKTsKLQotICAvLyBDb21wYXJlcyB0aGUgY29tbW9uIHByZWZpeC4KLSAg
Y29uc3Qgc2l6ZV90IHNob3J0ZXJfc2l6ZSA9IGV4cGVjdGVkX2RhdGFfc2l6ZSA8PSBhY3R1YWxf
c2l6ZSA/Ci0gICAgICBleHBlY3RlZF9kYXRhX3NpemUgOiBhY3R1YWxfc2l6ZTsKLSAgc2l6ZV90
IGkgPSAwOwotICBmb3IgKDsgaSA8IHNob3J0ZXJfc2l6ZTsgKytpKSB7Ci0gICAgQVNTRVJUX1NU
UkVRKGV4cGVjdGVkX2RhdGFbaV0sIGRhdGFbaV0uY19zdHIoKSkKLSAgICAgICAgPDwgImF0IHBv
c2l0aW9uICIgPDwgaTsKLSAgfQotCi0gIC8vIFByaW50cyBleHRyYSBlbGVtZW50cyBpbiB0aGUg
YWN0dWFsIGRhdGEuCi0gIGZvciAoOyBpIDwgYWN0dWFsX3NpemU7ICsraSkgewotICAgIHByaW50
ZigiICBBY3R1YWwgZXZlbnQgIyVsdTogJXNcbiIsCi0gICAgICAgIHN0YXRpY19jYXN0PHVuc2ln
bmVkIGxvbmc+KGkpLCBkYXRhW2ldLmNfc3RyKCkpOwotICB9Ci19Ci0KLWludCBtYWluKGludCBh
cmdjLCBjaGFyICoqYXJndikgewotICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZXZlbnRzOwot
ICBnX2V2ZW50cyA9ICZldmVudHM7Ci0gIEluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKLQot
ICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+bGlzdGVuZXJzKCkuQXBwZW5kKAotICAgICAgbmV3
IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIoIjFzdCIpKTsKLSAgVW5pdFRlc3Q6OkdldEluc3RhbmNl
KCktPmxpc3RlbmVycygpLkFwcGVuZCgKLSAgICAgIG5ldyBFdmVudFJlY29yZGluZ0xpc3RlbmVy
KCIybmQiKSk7Ci0KLSAgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBFbnZpcm9ubWVudElu
dm9jYXRpb25DYXRjaGVyKTsKLQotICBHVEVTVF9DSEVDS18oZXZlbnRzLnNpemUoKSA9PSAwKQot
ICAgICAgPDwgIkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudCBzaG91bGQgbm90IGdlbmVyYXRlIGFu
eSBldmVudHMgaXRzZWxmLiI7Ci0KLSAgOjp0ZXN0aW5nOjpHVEVTVF9GTEFHKHJlcGVhdCkgPSAy
OwotICBpbnQgcmV0X3ZhbCA9IFJVTl9BTExfVEVTVFMoKTsKLQotICBjb25zdCBjaGFyKiBjb25z
dCBleHBlY3RlZF9ldmVudHNbXSA9IHsKLSAgICAiMXN0Lk9uVGVzdFByb2dyYW1TdGFydCIsCi0g
ICAgIjJuZC5PblRlc3RQcm9ncmFtU3RhcnQiLAotICAgICIxc3QuT25UZXN0SXRlcmF0aW9uU3Rh
cnQoMCkiLAotICAgICIybmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMCkiLAotICAgICIxc3QuT25F
bnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFy
dCIsCi0gICAgIkVudmlyb25tZW50OjpTZXRVcCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1Nl
dFVwRW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAotICAgICIxc3QuT25U
ZXN0Q2FzZVN0YXJ0IiwKLSAgICAiMm5kLk9uVGVzdENhc2VTdGFydCIsCi0gICAgIkxpc3RlbmVy
VGVzdDo6U2V0VXBUZXN0Q2FzZSIsCi0gICAgIjFzdC5PblRlc3RTdGFydCIsCi0gICAgIjJuZC5P
blRlc3RTdGFydCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAotICAgICJMaXN0ZW5lclRl
c3Q6OiogVGVzdCBCb2R5IiwKLSAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICIybmQu
T25UZXN0UGFydFJlc3VsdCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAotICAgICIy
bmQuT25UZXN0RW5kIiwKLSAgICAiMXN0Lk9uVGVzdEVuZCIsCi0gICAgIjFzdC5PblRlc3RTdGFy
dCIsCi0gICAgIjJuZC5PblRlc3RTdGFydCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAot
ICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKLSAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1
bHQiLAotICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6VGVh
ckRvd24iLAotICAgICIybmQuT25UZXN0RW5kIiwKLSAgICAiMXN0Lk9uVGVzdEVuZCIsCi0gICAg
Ikxpc3RlbmVyVGVzdDo6VGVhckRvd25UZXN0Q2FzZSIsCi0gICAgIjJuZC5PblRlc3RDYXNlRW5k
IiwKLSAgICAiMXN0Lk9uVGVzdENhc2VFbmQiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFy
RG93blN0YXJ0IiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCi0gICAg
IkVudmlyb25tZW50OjpUZWFyRG93biIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3du
RW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAotICAgICIybmQuT25U
ZXN0SXRlcmF0aW9uRW5kKDApIiwKLSAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCi0g
ICAgIjFzdC5PblRlc3RJdGVyYXRpb25TdGFydCgxKSIsCi0gICAgIjJuZC5PblRlc3RJdGVyYXRp
b25TdGFydCgxKSIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAotICAgICIy
bmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKLSAgICAiRW52aXJvbm1lbnQ6OlNldFVwIiwK
LSAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAotICAgICIxc3QuT25FbnZpcm9ubWVu
dHNTZXRVcEVuZCIsCi0gICAgIjFzdC5PblRlc3RDYXNlU3RhcnQiLAotICAgICIybmQuT25UZXN0
Q2FzZVN0YXJ0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcFRlc3RDYXNlIiwKLSAgICAiMXN0
Lk9uVGVzdFN0YXJ0IiwKLSAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKLSAgICAiTGlzdGVuZXJUZXN0
OjpTZXRVcCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAotICAgICIxc3QuT25U
ZXN0UGFydFJlc3VsdCIsCi0gICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiTGlzdGVu
ZXJUZXN0OjpUZWFyRG93biIsCi0gICAgIjJuZC5PblRlc3RFbmQiLAotICAgICIxc3QuT25UZXN0
RW5kIiwKLSAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKLSAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKLSAg
ICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHki
LAotICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCi0gICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0
IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCi0gICAgIjJuZC5PblRlc3RFbmQiLAot
ICAgICIxc3QuT25UZXN0RW5kIiwKLSAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93blRlc3RDYXNl
IiwKLSAgICAiMm5kLk9uVGVzdENhc2VFbmQiLAotICAgICIxc3QuT25UZXN0Q2FzZUVuZCIsCi0g
ICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAotICAgICIybmQuT25FbnZpcm9u
bWVudHNUZWFyRG93blN0YXJ0IiwKLSAgICAiRW52aXJvbm1lbnQ6OlRlYXJEb3duIiwKLSAgICAi
Mm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNU
ZWFyRG93bkVuZCIsCi0gICAgIjJuZC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAotICAgICIxc3Qu
T25UZXN0SXRlcmF0aW9uRW5kKDEpIiwKLSAgICAiMm5kLk9uVGVzdFByb2dyYW1FbmQiLAotICAg
ICIxc3QuT25UZXN0UHJvZ3JhbUVuZCIKLSAgfTsKLSAgVmVyaWZ5UmVzdWx0cyhldmVudHMsCi0g
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfZXZlbnRzLAotICAgICAgICAgICAgICAgIHNpemVvZihl
eHBlY3RlZF9ldmVudHMpL3NpemVvZihleHBlY3RlZF9ldmVudHNbMF0pKTsKLQotICAvLyBXZSBu
ZWVkIHRvIGNoZWNrIG1hbnVhbGx5IGZvciBhZCBob2MgdGVzdCBmYWlsdXJlcyB0aGF0IGhhcHBl
biBhZnRlcgotICAvLyBSVU5fQUxMX1RFU1RTIGZpbmlzaGVzLgotICBpZiAoVW5pdFRlc3Q6Okdl
dEluc3RhbmNlKCktPkZhaWxlZCgpKQotICAgIHJldF92YWwgPSAxOwotCi0gIHJldHVybiByZXRf
dmFsOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVz
dC1tZXNzYWdlX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0
LW1lc3NhZ2VfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc1MjM4ZWY0
ZTY0YWRiNGUxZjc4OGYxM2E0ZWQwNGQ2MDY1N2UxOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0
ZXN0LW1lc3NhZ2VfdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDE1OSArMCwwIEBACi0vLyBD
b3B5cmlnaHQgMjAwNSwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwot
Ly8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3Ry
aWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8v
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3
YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotLy8KLS8vIFRlc3RzIGZvciB0aGUgTWVzc2Fn
ZSBjbGFzcy4KLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LW1lc3NhZ2UuaCIKLQotI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLXVzaW5nIDo6dGVzdGluZzo6TWVzc2Fn
ZTsKLQotLy8gVGVzdHMgdGhlIHRlc3Rpbmc6Ok1lc3NhZ2UgY2xhc3MKLQotLy8gVGVzdHMgdGhl
IGRlZmF1bHQgY29uc3RydWN0b3IuCi1URVNUKE1lc3NhZ2VUZXN0LCBEZWZhdWx0Q29uc3RydWN0
b3IpIHsKLSAgY29uc3QgTWVzc2FnZSBtc2c7Ci0gIEVYUEVDVF9FUSgiIiwgbXNnLkdldFN0cmlu
ZygpKTsKLX0KLQotLy8gVGVzdHMgdGhlIGNvcHkgY29uc3RydWN0b3IuCi1URVNUKE1lc3NhZ2VU
ZXN0LCBDb3B5Q29uc3RydWN0b3IpIHsKLSAgY29uc3QgTWVzc2FnZSBtc2cxKCJIZWxsbyIpOwot
ICBjb25zdCBNZXNzYWdlIG1zZzIobXNnMSk7Ci0gIEVYUEVDVF9FUSgiSGVsbG8iLCBtc2cyLkdl
dFN0cmluZygpKTsKLX0KLQotLy8gVGVzdHMgY29uc3RydWN0aW5nIGEgTWVzc2FnZSBmcm9tIGEg
Qy1zdHJpbmcuCi1URVNUKE1lc3NhZ2VUZXN0LCBDb25zdHJ1Y3RzRnJvbUNTdHJpbmcpIHsKLSAg
TWVzc2FnZSBtc2coIkhlbGxvIik7Ci0gIEVYUEVDVF9FUSgiSGVsbG8iLCBtc2cuR2V0U3RyaW5n
KCkpOwotfQotCi0vLyBUZXN0cyBzdHJlYW1pbmcgYSBmbG9hdC4KLVRFU1QoTWVzc2FnZVRlc3Qs
IFN0cmVhbXNGbG9hdCkgewotICBjb25zdCBzdGQ6OnN0cmluZyBzID0gKE1lc3NhZ2UoKSA8PCAx
LjIzNDU2RiA8PCAiICIgPDwgMi4zNDU2N0YpLkdldFN0cmluZygpOwotICAvLyBCb3RoIG51bWJl
cnMgc2hvdWxkIGJlIHByaW50ZWQgd2l0aCBlbm91Z2ggcHJlY2lzaW9uLgotICBFWFBFQ1RfUFJF
RF9GT1JNQVQyKHRlc3Rpbmc6OklzU3Vic3RyaW5nLCAiMS4yMzQ1NjAiLCBzLmNfc3RyKCkpOwot
ICBFWFBFQ1RfUFJFRF9GT1JNQVQyKHRlc3Rpbmc6OklzU3Vic3RyaW5nLCAiIDIuMzQ1NjY5Iiwg
cy5jX3N0cigpKTsKLX0KLQotLy8gVGVzdHMgc3RyZWFtaW5nIGEgZG91YmxlLgotVEVTVChNZXNz
YWdlVGVzdCwgU3RyZWFtc0RvdWJsZSkgewotICBjb25zdCBzdGQ6OnN0cmluZyBzID0gKE1lc3Nh
Z2UoKSA8PCAxMjYwNTcwODgwLjQ1NTU0OTcgPDwgIiAiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTI2MDU3MjI2NS4xOTU0NTM0KS5HZXRTdHJpbmcoKTsKLSAgLy8gQm90
aCBudW1iZXJzIHNob3VsZCBiZSBwcmludGVkIHdpdGggZW5vdWdoIHByZWNpc2lvbi4KLSAgRVhQ
RUNUX1BSRURfRk9STUFUMih0ZXN0aW5nOjpJc1N1YnN0cmluZywgIjEyNjA1NzA4ODAuNDUiLCBz
LmNfc3RyKCkpOwotICBFWFBFQ1RfUFJFRF9GT1JNQVQyKHRlc3Rpbmc6OklzU3Vic3RyaW5nLCAi
IDEyNjA1NzIyNjUuMTkiLCBzLmNfc3RyKCkpOwotfQotCi0vLyBUZXN0cyBzdHJlYW1pbmcgYSBu
b24tY2hhciBwb2ludGVyLgotVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc1BvaW50ZXIpIHsKLSAg
aW50IG4gPSAwOwotICBpbnQqIHAgPSAmbjsKLSAgRVhQRUNUX05FKCIobnVsbCkiLCAoTWVzc2Fn
ZSgpIDw8IHApLkdldFN0cmluZygpKTsKLX0KLQotLy8gVGVzdHMgc3RyZWFtaW5nIGEgTlVMTCBu
b24tY2hhciBwb2ludGVyLgotVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc051bGxQb2ludGVyKSB7
Ci0gIGludCogcCA9IE5VTEw7Ci0gIEVYUEVDVF9FUSgiKG51bGwpIiwgKE1lc3NhZ2UoKSA8PCBw
KS5HZXRTdHJpbmcoKSk7Ci19Ci0KLS8vIFRlc3RzIHN0cmVhbWluZyBhIEMgc3RyaW5nLgotVEVT
VChNZXNzYWdlVGVzdCwgU3RyZWFtc0NTdHJpbmcpIHsKLSAgRVhQRUNUX0VRKCJGb28iLCAoTWVz
c2FnZSgpIDw8ICJGb28iKS5HZXRTdHJpbmcoKSk7Ci19Ci0KLS8vIFRlc3RzIHN0cmVhbWluZyBh
IE5VTEwgQyBzdHJpbmcuCi1URVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1zTnVsbENTdHJpbmcpIHsK
LSAgY2hhciogcCA9IE5VTEw7Ci0gIEVYUEVDVF9FUSgiKG51bGwpIiwgKE1lc3NhZ2UoKSA8PCBw
KS5HZXRTdHJpbmcoKSk7Ci19Ci0KLS8vIFRlc3RzIHN0cmVhbWluZyBzdGQ6OnN0cmluZy4KLVRF
U1QoTWVzc2FnZVRlc3QsIFN0cmVhbXNTdHJpbmcpIHsKLSAgY29uc3QgOjpzdGQ6OnN0cmluZyBz
dHIoIkhlbGxvIik7Ci0gIEVYUEVDVF9FUSgiSGVsbG8iLCAoTWVzc2FnZSgpIDw8IHN0cikuR2V0
U3RyaW5nKCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IHdlIGNhbiBvdXRwdXQgc3RyaW5ncyBjb250
YWluaW5nIGVtYmVkZGVkIE5VTHMuCi1URVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1zU3RyaW5nV2l0
aEVtYmVkZGVkTlVMKSB7Ci0gIGNvbnN0IGNoYXIgY2hhcl9hcnJheV93aXRoX251bFtdID0KLSAg
ICAgICJIZXJlJ3MgYSBOVUxcMCBhbmQgc29tZSBtb3JlIHN0cmluZyI7Ci0gIGNvbnN0IDo6c3Rk
OjpzdHJpbmcgc3RyaW5nX3dpdGhfbnVsKGNoYXJfYXJyYXlfd2l0aF9udWwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjaGFyX2FycmF5X3dpdGhfbnVsKSAt
IDEpOwotICBFWFBFQ1RfRVEoIkhlcmUncyBhIE5VTFxcMCBhbmQgc29tZSBtb3JlIHN0cmluZyIs
Ci0gICAgICAgICAgICAoTWVzc2FnZSgpIDw8IHN0cmluZ193aXRoX251bCkuR2V0U3RyaW5nKCkp
OwotfQotCi0vLyBUZXN0cyBzdHJlYW1pbmcgYSBOVUwgY2hhci4KLVRFU1QoTWVzc2FnZVRlc3Qs
IFN0cmVhbXNOVUxDaGFyKSB7Ci0gIEVYUEVDVF9FUSgiXFwwIiwgKE1lc3NhZ2UoKSA8PCAnXDAn
KS5HZXRTdHJpbmcoKSk7Ci19Ci0KLS8vIFRlc3RzIHN0cmVhbWluZyBpbnQuCi1URVNUKE1lc3Nh
Z2VUZXN0LCBTdHJlYW1zSW50KSB7Ci0gIEVYUEVDVF9FUSgiMTIzIiwgKE1lc3NhZ2UoKSA8PCAx
MjMpLkdldFN0cmluZygpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBiYXNpYyBJTyBtYW5pcHVsYXRv
cnMgKGVuZGwsIGVuZHMsIGFuZCBmbHVzaCkgY2FuIGJlCi0vLyBzdHJlYW1lZCB0byBNZXNzYWdl
LgotVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc0Jhc2ljSW9NYW5pcCkgewotICBFWFBFQ1RfRVEo
IkxpbmUgMS5cbkEgTlVMIGNoYXIgXFwwIGluIGxpbmUgMi4iLAotICAgICAgICAgICAgICAgKE1l
c3NhZ2UoKSA8PCAiTGluZSAxLiIgPDwgc3RkOjplbmRsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgIkEgTlVMIGNoYXIgIiA8PCBzdGQ6OmVuZHMgPDwgc3RkOjpmbHVzaAotICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8ICIgaW4gbGluZSAyLiIpLkdldFN0cmluZygpKTsKLX0KLQotLy8g
VGVzdHMgTWVzc2FnZTo6R2V0U3RyaW5nKCkKLVRFU1QoTWVzc2FnZVRlc3QsIEdldFN0cmluZykg
ewotICBNZXNzYWdlIG1zZzsKLSAgbXNnIDw8IDEgPDwgIiBsYW1iIjsKLSAgRVhQRUNUX0VRKCIx
IGxhbWIiLCBtc2cuR2V0U3RyaW5nKCkpOwotfQotCi0vLyBUZXN0cyBzdHJlYW1pbmcgYSBNZXNz
YWdlIG9iamVjdCB0byBhbiBvc3RyZWFtLgotVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc1RvT1N0
cmVhbSkgewotICBNZXNzYWdlIG1zZygiSGVsbG8iKTsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBz
czsKLSAgc3MgPDwgbXNnOwotICBFWFBFQ1RfRVEoIkhlbGxvIiwgdGVzdGluZzo6aW50ZXJuYWw6
OlN0cmluZ1N0cmVhbVRvU3RyaW5nKCZzcykpOwotfQotCi0vLyBUZXN0cyB0aGF0IGEgTWVzc2Fn
ZSBvYmplY3QgZG9lc24ndCB0YWtlIHVwIHRvbyBtdWNoIHN0YWNrIHNwYWNlLgotVEVTVChNZXNz
YWdlVGVzdCwgRG9lc05vdFRha2VVcE11Y2hTdGFja1NwYWNlKSB7Ci0gIEVYUEVDVF9MRShzaXpl
b2YoTWVzc2FnZSksIDE2VSk7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1vcHRpb25zX3Rlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LW9wdGlvbnNfdGVzdC5jYwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVjOWYzOTQxNGVmOGI1ODlhZjdlMWEzMWIzMjJkY2Rm
N2U2NmFhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LW9wdGlvbnNfdGVzdC5jYworKysg
L2Rldi9udWxsCkBAIC0xLDIwNyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIElu
Yy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0vLwotLy8KLS8vIEdvb2dsZSBUZXN0IFVuaXRUZXN0T3B0aW9ucyB0
ZXN0cwotLy8KLS8vIFRoaXMgZmlsZSB0ZXN0cyBjbGFzc2VzIGFuZCBmdW5jdGlvbnMgdXNlZCBp
bnRlcm5hbGx5IGJ5Ci0vLyBHb29nbGUgVGVzdC4gIFRoZXkgYXJlIHN1YmplY3QgdG8gY2hhbmdl
IHdpdGhvdXQgbm90aWNlLgotLy8KLS8vIFRoaXMgZmlsZSBpcyAjaW5jbHVkZWQgZnJvbSBndGVz
dC5jYywgdG8gYXZvaWQgY2hhbmdpbmcgYnVpbGQgb3IKLS8vIG1ha2UtZmlsZXMgb24gV2luZG93
cyBhbmQgb3RoZXIgcGxhdGZvcm1zLiBEbyBub3QgI2luY2x1ZGUgdGhpcyBmaWxlCi0vLyBhbnl3
aGVyZSBlbHNlIQotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotI2lmIEdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFCi0jIGluY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbGlmIEdURVNUX09TX1dJTkRP
V1MKLSMgaW5jbHVkZSA8ZGlyZWN0Lmg+Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9C
SUxFCi0KLSNpbmNsdWRlICJzcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgiCi0KLW5hbWVzcGFjZSB0
ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci1uYW1lc3BhY2UgewotCi0vLyBUdXJucyB0
aGUgZ2l2ZW4gcmVsYXRpdmUgcGF0aCBpbnRvIGFuIGFic29sdXRlIHBhdGguCi1GaWxlUGF0aCBH
ZXRBYnNvbHV0ZVBhdGhPZihjb25zdCBGaWxlUGF0aCYgcmVsYXRpdmVfcGF0aCkgewotICByZXR1
cm4gRmlsZVBhdGg6OkNvbmNhdFBhdGhzKEZpbGVQYXRoOjpHZXRDdXJyZW50RGlyKCksIHJlbGF0
aXZlX3BhdGgpOwotfQotCi0vLyBUZXN0aW5nIFVuaXRUZXN0T3B0aW9uczo6R2V0T3V0cHV0Rm9y
bWF0L0dldE91dHB1dEZpbGUuCi0KLVRFU1QoWG1sT3V0cHV0VGVzdCwgR2V0T3V0cHV0Rm9ybWF0
RGVmYXVsdCkgewotICBHVEVTVF9GTEFHKG91dHB1dCkgPSAiIjsKLSAgRVhQRUNUX1NUUkVRKCIi
LCBVbml0VGVzdE9wdGlvbnM6OkdldE91dHB1dEZvcm1hdCgpLmNfc3RyKCkpOwotfQotCi1URVNU
KFhtbE91dHB1dFRlc3QsIEdldE91dHB1dEZvcm1hdCkgewotICBHVEVTVF9GTEFHKG91dHB1dCkg
PSAieG1sOmZpbGVuYW1lIjsKLSAgRVhQRUNUX1NUUkVRKCJ4bWwiLCBVbml0VGVzdE9wdGlvbnM6
OkdldE91dHB1dEZvcm1hdCgpLmNfc3RyKCkpOwotfQotCi1URVNUKFhtbE91dHB1dFRlc3QsIEdl
dE91dHB1dEZpbGVEZWZhdWx0KSB7Ci0gIEdURVNUX0ZMQUcob3V0cHV0KSA9ICIiOwotICBFWFBF
Q1RfRVEoR2V0QWJzb2x1dGVQYXRoT2YoRmlsZVBhdGgoInRlc3RfZGV0YWlsLnhtbCIpKS5zdHJp
bmcoKSwKLSAgICAgICAgICAgIFVuaXRUZXN0T3B0aW9uczo6R2V0QWJzb2x1dGVQYXRoVG9PdXRw
dXRGaWxlKCkpOwotfQotCi1URVNUKFhtbE91dHB1dFRlc3QsIEdldE91dHB1dEZpbGVTaW5nbGVG
aWxlKSB7Ci0gIEdURVNUX0ZMQUcob3V0cHV0KSA9ICJ4bWw6ZmlsZW5hbWUuYWJjIjsKLSAgRVhQ
RUNUX0VRKEdldEFic29sdXRlUGF0aE9mKEZpbGVQYXRoKCJmaWxlbmFtZS5hYmMiKSkuc3RyaW5n
KCksCi0gICAgICAgICAgICBVbml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0
RmlsZSgpKTsKLX0KLQotVEVTVChYbWxPdXRwdXRUZXN0LCBHZXRPdXRwdXRGaWxlRnJvbURpcmVj
dG9yeVBhdGgpIHsKLSAgR1RFU1RfRkxBRyhvdXRwdXQpID0gInhtbDpwYXRoIiBHVEVTVF9QQVRI
X1NFUF87Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGV4cGVjdGVkX291dHB1dF9maWxlID0KLSAgICAg
IEdldEFic29sdXRlUGF0aE9mKAotICAgICAgICAgIEZpbGVQYXRoKHN0ZDo6c3RyaW5nKCJwYXRo
IikgKyBHVEVTVF9QQVRIX1NFUF8gKwotICAgICAgICAgICAgICAgICAgIEdldEN1cnJlbnRFeGVj
dXRhYmxlTmFtZSgpLnN0cmluZygpICsgIi54bWwiKSkuc3RyaW5nKCk7Ci0gIGNvbnN0IHN0ZDo6
c3RyaW5nJiBvdXRwdXRfZmlsZSA9Ci0gICAgICBVbml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRl
UGF0aFRvT3V0cHV0RmlsZSgpOwotI2lmIEdURVNUX09TX1dJTkRPV1MKLSAgRVhQRUNUX1NUUkNB
U0VFUShleHBlY3RlZF9vdXRwdXRfZmlsZS5jX3N0cigpLCBvdXRwdXRfZmlsZS5jX3N0cigpKTsK
LSNlbHNlCi0gIEVYUEVDVF9FUShleHBlY3RlZF9vdXRwdXRfZmlsZSwgb3V0cHV0X2ZpbGUuY19z
dHIoKSk7Ci0jZW5kaWYKLX0KLQotVEVTVChPdXRwdXRGaWxlSGVscGVyc1Rlc3QsIEdldEN1cnJl
bnRFeGVjdXRhYmxlTmFtZSkgewotICBjb25zdCBzdGQ6OnN0cmluZyBleGVfc3RyID0gR2V0Q3Vy
cmVudEV4ZWN1dGFibGVOYW1lKCkuc3RyaW5nKCk7Ci0jaWYgR1RFU1RfT1NfV0lORE9XUwotICBj
b25zdCBib29sIHN1Y2Nlc3MgPQotICAgICAgX3N0cmNtcGkoImd0ZXN0LW9wdGlvbnNfdGVzdCIs
IGV4ZV9zdHIuY19zdHIoKSkgPT0gMCB8fAotICAgICAgX3N0cmNtcGkoImd0ZXN0LW9wdGlvbnMt
ZXhfdGVzdCIsIGV4ZV9zdHIuY19zdHIoKSkgPT0gMCB8fAotICAgICAgX3N0cmNtcGkoImd0ZXN0
X2FsbF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwIHx8Ci0gICAgICBfc3RyY21waSgiZ3Rl
c3RfZGxsX3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDA7Ci0jZWxzZQotICAvLyBUT0RPKHdh
bkBnb29nbGUuY29tKTogcmVtb3ZlIHRoZSBoYXJkLWNvZGVkICJsdC0iIHByZWZpeCB3aGVuCi0g
IC8vICAgQ2hhbmRsZXIgQ2FycnV0aCdzIGxpYnRvb2wgcmVwbGFjZW1lbnQgaXMgcmVhZHkuCi0g
IGNvbnN0IGJvb2wgc3VjY2VzcyA9Ci0gICAgICBleGVfc3RyID09ICJndGVzdC1vcHRpb25zX3Rl
c3QiIHx8Ci0gICAgICBleGVfc3RyID09ICJndGVzdF9hbGxfdGVzdCIgfHwKLSAgICAgIGV4ZV9z
dHIgPT0gImx0LWd0ZXN0X2FsbF90ZXN0IiB8fAotICAgICAgZXhlX3N0ciA9PSAiZ3Rlc3RfZGxs
X3Rlc3QiOwotI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0gIGlmICghc3VjY2VzcykKLSAg
ICBGQUlMKCkgPDwgIkdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpIHJldHVybnMgIiA8PCBleGVf
c3RyOwotfQotCi1jbGFzcyBYbWxPdXRwdXRDaGFuZ2VEaXJUZXN0IDogcHVibGljIFRlc3Qgewot
IHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIG9yaWdpbmFsX3dvcmtp
bmdfZGlyXyA9IEZpbGVQYXRoOjpHZXRDdXJyZW50RGlyKCk7Ci0gICAgcG9zaXg6OkNoRGlyKCIu
LiIpOwotICAgIC8vIFRoaXMgd2lsbCBtYWtlIHRoZSB0ZXN0IGZhaWwgaWYgcnVuIGZyb20gdGhl
IHJvb3QgZGlyZWN0b3J5LgotICAgIEVYUEVDVF9ORShvcmlnaW5hbF93b3JraW5nX2Rpcl8uc3Ry
aW5nKCksCi0gICAgICAgICAgICAgIEZpbGVQYXRoOjpHZXRDdXJyZW50RGlyKCkuc3RyaW5nKCkp
OwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIHBvc2l4OjpDaERpcihv
cmlnaW5hbF93b3JraW5nX2Rpcl8uc3RyaW5nKCkuY19zdHIoKSk7Ci0gIH0KLQotICBGaWxlUGF0
aCBvcmlnaW5hbF93b3JraW5nX2Rpcl87Ci19OwotCi1URVNUX0YoWG1sT3V0cHV0Q2hhbmdlRGly
VGVzdCwgUHJlc2VydmVPcmlnaW5hbFdvcmtpbmdEaXJXaXRoRGVmYXVsdCkgewotICBHVEVTVF9G
TEFHKG91dHB1dCkgPSAiIjsKLSAgRVhQRUNUX0VRKEZpbGVQYXRoOjpDb25jYXRQYXRocyhvcmln
aW5hbF93b3JraW5nX2Rpcl8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmls
ZVBhdGgoInRlc3RfZGV0YWlsLnhtbCIpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgIFVuaXRUZXN0
T3B0aW9uczo6R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkpOwotfQotCi1URVNUX0YoWG1s
T3V0cHV0Q2hhbmdlRGlyVGVzdCwgUHJlc2VydmVPcmlnaW5hbFdvcmtpbmdEaXJXaXRoRGVmYXVs
dFhNTCkgewotICBHVEVTVF9GTEFHKG91dHB1dCkgPSAieG1sIjsKLSAgRVhQRUNUX0VRKEZpbGVQ
YXRoOjpDb25jYXRQYXRocyhvcmlnaW5hbF93b3JraW5nX2Rpcl8sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRmlsZVBhdGgoInRlc3RfZGV0YWlsLnhtbCIpKS5zdHJpbmcoKSwK
LSAgICAgICAgICAgIFVuaXRUZXN0T3B0aW9uczo6R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxl
KCkpOwotfQotCi1URVNUX0YoWG1sT3V0cHV0Q2hhbmdlRGlyVGVzdCwgUHJlc2VydmVPcmlnaW5h
bFdvcmtpbmdEaXJXaXRoUmVsYXRpdmVGaWxlKSB7Ci0gIEdURVNUX0ZMQUcob3V0cHV0KSA9ICJ4
bWw6ZmlsZW5hbWUuYWJjIjsKLSAgRVhQRUNUX0VRKEZpbGVQYXRoOjpDb25jYXRQYXRocyhvcmln
aW5hbF93b3JraW5nX2Rpcl8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmls
ZVBhdGgoImZpbGVuYW1lLmFiYyIpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgIFVuaXRUZXN0T3B0
aW9uczo6R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkpOwotfQotCi1URVNUX0YoWG1sT3V0
cHV0Q2hhbmdlRGlyVGVzdCwgUHJlc2VydmVPcmlnaW5hbFdvcmtpbmdEaXJXaXRoUmVsYXRpdmVQ
YXRoKSB7Ci0gIEdURVNUX0ZMQUcob3V0cHV0KSA9ICJ4bWw6cGF0aCIgR1RFU1RfUEFUSF9TRVBf
OwotICBjb25zdCBzdGQ6OnN0cmluZyBleHBlY3RlZF9vdXRwdXRfZmlsZSA9Ci0gICAgICBGaWxl
UGF0aDo6Q29uY2F0UGF0aHMoCi0gICAgICAgICAgb3JpZ2luYWxfd29ya2luZ19kaXJfLAotICAg
ICAgICAgIEZpbGVQYXRoKHN0ZDo6c3RyaW5nKCJwYXRoIikgKyBHVEVTVF9QQVRIX1NFUF8gKwot
ICAgICAgICAgICAgICAgICAgIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpLnN0cmluZygpICsg
Ii54bWwiKSkuc3RyaW5nKCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZmlsZSA9Ci0g
ICAgICBVbml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0RmlsZSgpOwotI2lm
IEdURVNUX09TX1dJTkRPV1MKLSAgRVhQRUNUX1NUUkNBU0VFUShleHBlY3RlZF9vdXRwdXRfZmls
ZS5jX3N0cigpLCBvdXRwdXRfZmlsZS5jX3N0cigpKTsKLSNlbHNlCi0gIEVYUEVDVF9FUShleHBl
Y3RlZF9vdXRwdXRfZmlsZSwgb3V0cHV0X2ZpbGUuY19zdHIoKSk7Ci0jZW5kaWYKLX0KLQotVEVT
VF9GKFhtbE91dHB1dENoYW5nZURpclRlc3QsIFByZXNlcnZlT3JpZ2luYWxXb3JraW5nRGlyV2l0
aEFic29sdXRlRmlsZSkgewotI2lmIEdURVNUX09TX1dJTkRPV1MKLSAgR1RFU1RfRkxBRyhvdXRw
dXQpID0gInhtbDpjOlxcdG1wXFxmaWxlbmFtZS5hYmMiOwotICBFWFBFQ1RfRVEoRmlsZVBhdGgo
ImM6XFx0bXBcXGZpbGVuYW1lLmFiYyIpLnN0cmluZygpLAotICAgICAgICAgICAgVW5pdFRlc3RP
cHRpb25zOjpHZXRBYnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKSk7Ci0jZWxzZQotICBHVEVTVF9G
TEFHKG91dHB1dCkgPSJ4bWw6L3RtcC9maWxlbmFtZS5hYmMiOwotICBFWFBFQ1RfRVEoRmlsZVBh
dGgoIi90bXAvZmlsZW5hbWUuYWJjIikuc3RyaW5nKCksCi0gICAgICAgICAgICBVbml0VGVzdE9w
dGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0RmlsZSgpKTsKLSNlbmRpZgotfQotCi1URVNU
X0YoWG1sT3V0cHV0Q2hhbmdlRGlyVGVzdCwgUHJlc2VydmVPcmlnaW5hbFdvcmtpbmdEaXJXaXRo
QWJzb2x1dGVQYXRoKSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XUwotICBjb25zdCBzdGQ6OnN0cmlu
ZyBwYXRoID0gImM6XFx0bXBcXCI7Ci0jZWxzZQotICBjb25zdCBzdGQ6OnN0cmluZyBwYXRoID0g
Ii90bXAvIjsKLSNlbmRpZgotCi0gIEdURVNUX0ZMQUcob3V0cHV0KSA9ICJ4bWw6IiArIHBhdGg7
Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGV4cGVjdGVkX291dHB1dF9maWxlID0KLSAgICAgIHBhdGgg
KyBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKS5zdHJpbmcoKSArICIueG1sIjsKLSAgY29uc3Qg
c3RkOjpzdHJpbmcmIG91dHB1dF9maWxlID0KLSAgICAgIFVuaXRUZXN0T3B0aW9uczo6R2V0QWJz
b2x1dGVQYXRoVG9PdXRwdXRGaWxlKCk7Ci0KLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0gIEVYUEVD
VF9TVFJDQVNFRVEoZXhwZWN0ZWRfb3V0cHV0X2ZpbGUuY19zdHIoKSwgb3V0cHV0X2ZpbGUuY19z
dHIoKSk7Ci0jZWxzZQotICBFWFBFQ1RfRVEoZXhwZWN0ZWRfb3V0cHV0X2ZpbGUsIG91dHB1dF9m
aWxlLmNfc3RyKCkpOwotI2VuZGlmCi19Ci0KLX0gIC8vIG5hbWVzcGFjZQotfSAgLy8gbmFtZXNw
YWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1wYXJhbS10ZXN0Ml90ZXN0LmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1wYXJhbS10ZXN0Ml90ZXN0LmNjCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzA5YjI3ZWY4MmJmYTZlNjdkMzA2ZDdiODll
OGJhMmIwZjg1MDhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdDJfdGVz
dC5jYworKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA4LCBH
b29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHZsYWRsQGdvb2dsZS5jb20g
KFZsYWQgTG9zZXYpCi0vLwotLy8gVGVzdHMgZm9yIEdvb2dsZSBUZXN0IGl0c2VsZi4gIFRoaXMg
dmVyaWZpZXMgdGhhdCB0aGUgYmFzaWMgY29uc3RydWN0cyBvZgotLy8gR29vZ2xlIFRlc3Qgd29y
ay4KLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLSNpbmNsdWRlICJ0ZXN0L2d0ZXN0LXBh
cmFtLXRlc3RfdGVzdC5oIgotCi11c2luZyA6OnRlc3Rpbmc6OlZhbHVlczsKLXVzaW5nIDo6dGVz
dGluZzo6aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yOwotCi0vLyBUZXN0cyB0aGF0IGdlbmVyYXRv
cnMgZGVmaW5lZCBpbiBhIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0Ci0vLyBhcmUgZnVuY3Rp
b25hbC4gVGhlIHRlc3QgdXNpbmcgZXh0ZXJuX2dlbiBpcyBkZWZpbmVkCi0vLyBpbiBndGVzdC1w
YXJhbS10ZXN0X3Rlc3QuY2MuCi1QYXJhbUdlbmVyYXRvcjxpbnQ+IGV4dGVybl9nZW4gPSBWYWx1
ZXMoMzMpOwotCi0vLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJl
IGRlZmluZWQgaW4gb25lIHRyYW5zbGF0aW9uIHVuaXQKLS8vIGFuZCBpbnN0YW50aWF0ZWQgaW4g
YW5vdGhlci4gVGhlIHRlc3QgaXMgZGVmaW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuY2MK
LS8vIGFuZCBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0IGZpeHR1cmUgY2xhc3MgaXMgZGVmaW5l
ZCBpbgotLy8gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0LmguCi1JTlNUQU5USUFURV9URVNUX0NBU0Vf
UChNdWx0aXBsZXNPZjMzLAotICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxJbnN0YW50
aWF0aW9uVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygzMywgNjYpKTsKLQot
Ly8gVGVzdHMgdGhhdCBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBpbnN0YW50aWF0
ZWQKLS8vIGluIG11bHRpcGxlIHRyYW5zbGF0aW9uIHVuaXRzLiBBbm90aGVyIGluc3RhbnRpYXRp
b24gaXMgZGVmaW5lZAotLy8gaW4gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0LmNjIGFuZCBJbnN0YW50
aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rlc3QKLS8vIGZpeHR1cmUgaXMgZGVmaW5l
ZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2Vx
dWVuY2UyLAotICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVU
cmFuc2xhaW9uVW5pdHNUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDQyKjMs
IDQyKjQsIDQyKjUpKTsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
dGVzdC9ndGVzdC1wYXJhbS10ZXN0X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC90ZXN0L2d0ZXN0LXBhcmFtLXRlc3RfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjBhYTRmOWIyNjhmMmQwMDQ0NjM5YmIxYmYyNWZhN2YyMjM3MDU3Ny4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC90ZXN0L2d0ZXN0LXBhcmFtLXRlc3RfdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0x
LDEwMzcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmln
aHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0
OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8v
Ci0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotLy8KLS8vIEF1dGhvcjogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBMb3NldikKLS8vCi0vLyBU
ZXN0cyBmb3IgR29vZ2xlIFRlc3QgaXRzZWxmLiBUaGlzIGZpbGUgdmVyaWZpZXMgdGhhdCB0aGUg
cGFyYW1ldGVyCi0vLyBnZW5lcmF0b3JzIG9iamVjdHMgcHJvZHVjZSBjb3JyZWN0IHBhcmFtZXRl
ciBzZXF1ZW5jZXMgYW5kIHRoYXQKLS8vIEdvb2dsZSBUZXN0IHJ1bnRpbWUgaW5zdGFudGlhdGVz
IGNvcnJlY3QgdGVzdHMgZnJvbSB0aG9zZSBzZXF1ZW5jZXMuCi0KLSNpbmNsdWRlICJndGVzdC9n
dGVzdC5oIgotCi0jIGluY2x1ZGUgPGFsZ29yaXRobT4KLSMgaW5jbHVkZSA8aW9zdHJlYW0+Ci0j
IGluY2x1ZGUgPGxpc3Q+Ci0jIGluY2x1ZGUgPHNzdHJlYW0+Ci0jIGluY2x1ZGUgPHN0cmluZz4K
LSMgaW5jbHVkZSA8dmVjdG9yPgotIyBpbmNsdWRlICJzcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgi
ICAvLyBmb3IgVW5pdFRlc3RPcHRpb25zCi0KLSMgaW5jbHVkZSAidGVzdC9ndGVzdC1wYXJhbS10
ZXN0X3Rlc3QuaCIKLQotdXNpbmcgOjpzdGQ6OnZlY3RvcjsKLXVzaW5nIDo6c3RkOjpzb3J0Owot
Ci11c2luZyA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudDsKLXVzaW5nIDo6dGVz
dGluZzo6Qm9vbDsKLXVzaW5nIDo6dGVzdGluZzo6TWVzc2FnZTsKLXVzaW5nIDo6dGVzdGluZzo6
UmFuZ2U7Ci11c2luZyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW07Ci11c2luZyA6OnRlc3Rpbmc6
OlZhbHVlczsKLXVzaW5nIDo6dGVzdGluZzo6VmFsdWVzSW47Ci0KLSMgaWYgR1RFU1RfSEFTX0NP
TUJJTkUKLXVzaW5nIDo6dGVzdGluZzo6Q29tYmluZTsKLXVzaW5nIDo6dGVzdGluZzo6Z2V0Owot
dXNpbmcgOjp0ZXN0aW5nOjptYWtlX3R1cGxlOwotdXNpbmcgOjp0ZXN0aW5nOjp0dXBsZTsKLSMg
ZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6
OlBhcmFtR2VuZXJhdG9yOwotdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VW5pdFRlc3RPcHRp
b25zOwotCi0vLyBQcmludHMgYSB2YWx1ZSB0byBhIHN0cmluZy4KLS8vCi0vLyBUT0RPKHdhbkBn
b29nbGUuY29tKTogcmVtb3ZlIFByaW50VmFsdWUoKSB3aGVuIHdlIG1vdmUgbWF0Y2hlcnMgYW5k
Ci0vLyBFWFBFQ1RfVEhBVCgpIGZyb20gR29vZ2xlIE1vY2sgdG8gR29vZ2xlIFRlc3QuICBBdCB0
aGF0IHRpbWUsIHdlCi0vLyBjYW4gd3JpdGUgRVhQRUNUX1RIQVQoeCwgRXEoeSkpIHRvIGNvbXBh
cmUgdHdvIHR1cGxlcyB4IGFuZCB5LCBhcwotLy8gRVhQRUNUX1RIQVQoKSBhbmQgdGhlIG1hdGNo
ZXJzIGtub3cgaG93IHRvIHByaW50IHR1cGxlcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotOjpz
dGQ6OnN0cmluZyBQcmludFZhbHVlKGNvbnN0IFQmIHZhbHVlKSB7Ci0gIDo6c3RkOjpzdHJpbmdz
dHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgdmFsdWU7Ci0gIHJldHVybiBzdHJlYW0uc3RyKCk7
Ci19Ci0KLSMgaWYgR1RFU1RfSEFTX0NPTUJJTkUKLQotLy8gVGhlc2Ugb3ZlcmxvYWRzIGFsbG93
IHByaW50aW5nIHR1cGxlcyBpbiBvdXIgdGVzdHMuICBXZSBjYW5ub3QKLS8vIGRlZmluZSBhbiBv
cGVyYXRvcjw8IGZvciB0dXBsZXMsIGFzIHRoYXQgZGVmaW5pdGlvbiBuZWVkcyB0byBiZSBpbgot
Ly8gdGhlIHN0ZCBuYW1lc3BhY2UgaW4gb3JkZXIgdG8gYmUgcGlja2VkIHVwIGJ5IEdvb2dsZSBU
ZXN0IHZpYQotLy8gQXJndW1lbnQtRGVwZW5kZW50IExvb2t1cCwgeWV0IGRlZmluaW5nIGFueXRo
aW5nIGluIHRoZSBzdGQKLS8vIG5hbWVzcGFjZSBpbiBub24tU1RMIGNvZGUgaXMgdW5kZWZpbmVk
IGJlaGF2aW9yLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotOjpzdGQ6
OnN0cmluZyBQcmludFZhbHVlKGNvbnN0IHR1cGxlPFQxLCBUMj4mIHZhbHVlKSB7Ci0gIDo6c3Rk
OjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8IGdldDwwPih2YWx1ZSkg
PDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpIDw8ICIpIjsKLSAgcmV0dXJuIHN0cmVhbS5zdHIoKTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Ci06
OnN0ZDo6c3RyaW5nIFByaW50VmFsdWUoY29uc3QgdHVwbGU8VDEsIFQyLCBUMz4mIHZhbHVlKSB7
Ci0gIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8IGdldDww
Pih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpCi0gICAgICAgICA8PCAiLCAiPDwgZ2V0
PDI+KHZhbHVlKSA8PCAiKSI7Ci0gIHJldHVybiBzdHJlYW0uc3RyKCk7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4KLTo6c3RkOjpzdHJpbmcgUHJpbnRWYWx1ZSgK
LSAgICBjb25zdCB0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+
JiB2YWx1ZSkgewotICA6OnN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKLSAgc3RyZWFtIDw8ICIo
IiA8PCBnZXQ8MD4odmFsdWUpIDw8ICIsICIgPDwgZ2V0PDE+KHZhbHVlKQotICAgICAgICAgPDwg
IiwgIjw8IGdldDwyPih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8Mz4odmFsdWUpCi0gICAgICAgICA8
PCAiLCAiPDwgZ2V0PDQ+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDw1Pih2YWx1ZSkKLSAgICAgICAg
IDw8ICIsICI8PCBnZXQ8Nj4odmFsdWUpIDw8ICIsICIgPDwgZ2V0PDc+KHZhbHVlKQotICAgICAg
ICAgPDwgIiwgIjw8IGdldDw4Pih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8OT4odmFsdWUpIDw8ICIp
IjsKLSAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKLX0KLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NP
TUJJTkUKLQotLy8gVmVyaWZpZXMgdGhhdCBhIHNlcXVlbmNlIGdlbmVyYXRlZCBieSB0aGUgZ2Vu
ZXJhdG9yIGFuZCBhY2Nlc3NlZAotLy8gdmlhIHRoZSBpdGVyYXRvciBvYmplY3QgbWF0Y2hlcyB0
aGUgZXhwZWN0ZWQgb25lIHVzaW5nIEdvb2dsZSBUZXN0Ci0vLyBhc3NlcnRpb25zLgotdGVtcGxh
dGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotdm9pZCBWZXJpZnlHZW5lcmF0b3IoY29uc3QgUGFy
YW1HZW5lcmF0b3I8VD4mIGdlbmVyYXRvciwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQg
KCZleHBlY3RlZF92YWx1ZXMpW05dKSB7Ci0gIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ+Ojpp
dGVyYXRvciBpdCA9IGdlbmVyYXRvci5iZWdpbigpOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IE47ICsraSkgewotICAgIEFTU0VSVF9GQUxTRShpdCA9PSBnZW5lcmF0b3IuZW5kKCkpCi0gICAg
ICAgIDw8ICJBdCBlbGVtZW50ICIgPDwgaSA8PCAiIHdoZW4gYWNjZXNzaW5nIHZpYSBhbiBpdGVy
YXRvciAiCi0gICAgICAgIDw8ICJjcmVhdGVkIHdpdGggdGhlIGNvcHkgY29uc3RydWN0b3IuXG4i
OwotICAgIC8vIFdlIGNhbm5vdCB1c2UgRVhQRUNUX0VRKCkgaGVyZSBhcyB0aGUgdmFsdWVzIG1h
eSBiZSB0dXBsZXMsCi0gICAgLy8gd2hpY2ggZG9uJ3Qgc3VwcG9ydCA8PC4KLSAgICBFWFBFQ1Rf
VFJVRShleHBlY3RlZF92YWx1ZXNbaV0gPT0gKml0KQotICAgICAgICA8PCAid2hlcmUgaSBpcyAi
IDw8IGkKLSAgICAgICAgPDwgIiwgZXhwZWN0ZWRfdmFsdWVzW2ldIGlzICIgPDwgUHJpbnRWYWx1
ZShleHBlY3RlZF92YWx1ZXNbaV0pCi0gICAgICAgIDw8ICIsICppdCBpcyAiIDw8IFByaW50VmFs
dWUoKml0KQotICAgICAgICA8PCAiLCBhbmQgJ2l0JyBpcyBhbiBpdGVyYXRvciBjcmVhdGVkIHdp
dGggdGhlIGNvcHkgY29uc3RydWN0b3IuXG4iOwotICAgICsraXQ7Ci0gIH0KLSAgRVhQRUNUX1RS
VUUoaXQgPT0gZ2VuZXJhdG9yLmVuZCgpKQotICAgICAgICA8PCAiQXQgdGhlIHByZXN1bWVkIGVu
ZCBvZiBzZXF1ZW5jZSB3aGVuIGFjY2Vzc2luZyB2aWEgYW4gaXRlcmF0b3IgIgotICAgICAgICA8
PCAiY3JlYXRlZCB3aXRoIHRoZSBjb3B5IGNvbnN0cnVjdG9yLlxuIjsKLQotICAvLyBUZXN0IHRo
ZSBpdGVyYXRvciBhc3NpZ25tZW50LiBUaGUgZm9sbG93aW5nIGxpbmVzIHZlcmlmeSB0aGF0Ci0g
IC8vIHRoZSBzZXF1ZW5jZSBhY2Nlc3NlZCB2aWEgYW4gaXRlcmF0b3IgaW5pdGlhbGl6ZWQgdmlh
IHRoZQotICAvLyBhc3NpZ25tZW50IG9wZXJhdG9yIChhcyBvcHBvc2VkIHRvIGEgY29weSBjb25z
dHJ1Y3RvcikgbWF0Y2hlcwotICAvLyBqdXN0IHRoZSBzYW1lLgotICBpdCA9IGdlbmVyYXRvci5i
ZWdpbigpOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE47ICsraSkgewotICAgIEFTU0VSVF9G
QUxTRShpdCA9PSBnZW5lcmF0b3IuZW5kKCkpCi0gICAgICAgIDw8ICJBdCBlbGVtZW50ICIgPDwg
aSA8PCAiIHdoZW4gYWNjZXNzaW5nIHZpYSBhbiBpdGVyYXRvciAiCi0gICAgICAgIDw8ICJjcmVh
dGVkIHdpdGggdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IuXG4iOwotICAgIEVYUEVDVF9UUlVFKGV4
cGVjdGVkX3ZhbHVlc1tpXSA9PSAqaXQpCi0gICAgICAgIDw8ICJ3aGVyZSBpIGlzICIgPDwgaQot
ICAgICAgICA8PCAiLCBleHBlY3RlZF92YWx1ZXNbaV0gaXMgIiA8PCBQcmludFZhbHVlKGV4cGVj
dGVkX3ZhbHVlc1tpXSkKLSAgICAgICAgPDwgIiwgKml0IGlzICIgPDwgUHJpbnRWYWx1ZSgqaXQp
Ci0gICAgICAgIDw8ICIsIGFuZCAnaXQnIGlzIGFuIGl0ZXJhdG9yIGNyZWF0ZWQgd2l0aCB0aGUg
Y29weSBjb25zdHJ1Y3Rvci5cbiI7Ci0gICAgKytpdDsKLSAgfQotICBFWFBFQ1RfVFJVRShpdCA9
PSBnZW5lcmF0b3IuZW5kKCkpCi0gICAgICAgIDw8ICJBdCB0aGUgcHJlc3VtZWQgZW5kIG9mIHNl
cXVlbmNlIHdoZW4gYWNjZXNzaW5nIHZpYSBhbiBpdGVyYXRvciAiCi0gICAgICAgIDw8ICJjcmVh
dGVkIHdpdGggdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IuXG4iOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLXZvaWQgVmVyaWZ5R2VuZXJhdG9ySXNFbXB0eShjb25zdCBQYXJhbUdlbmVyYXRv
cjxUPiYgZ2VuZXJhdG9yKSB7Ci0gIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRv
ciBpdCA9IGdlbmVyYXRvci5iZWdpbigpOwotICBFWFBFQ1RfVFJVRShpdCA9PSBnZW5lcmF0b3Iu
ZW5kKCkpOwotCi0gIGl0ID0gZ2VuZXJhdG9yLmJlZ2luKCk7Ci0gIEVYUEVDVF9UUlVFKGl0ID09
IGdlbmVyYXRvci5lbmQoKSk7Ci19Ci0KLS8vIEdlbmVyYXRvciB0ZXN0cy4gVGhleSB0ZXN0IHRo
YXQgZWFjaCBvZiB0aGUgcHJvdmlkZWQgZ2VuZXJhdG9yIGZ1bmN0aW9ucwotLy8gZ2VuZXJhdGVz
IGFuIGV4cGVjdGVkIHNlcXVlbmNlIG9mIHZhbHVlcy4gVGhlIGdlbmVyYWwgdGVzdCBwYXR0ZXJu
Ci0vLyBpbnN0YW50aWF0ZXMgYSBnZW5lcmF0b3IgdXNpbmcgb25lIG9mIHRoZSBnZW5lcmF0b3Ig
ZnVuY3Rpb25zLAotLy8gY2hlY2tzIHRoZSBzZXF1ZW5jZSBwcm9kdWNlZCBieSB0aGUgZ2VuZXJh
dG9yIHVzaW5nIGl0cyBpdGVyYXRvciBBUEksCi0vLyBhbmQgdGhlbiByZXNldHMgdGhlIGl0ZXJh
dG9yIGJhY2sgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VxdWVuY2UKLS8vIGFuZCBjaGVja3Mg
dGhlIHNlcXVlbmNlIGFnYWluLgotCi0vLyBUZXN0cyB0aGF0IGl0ZXJhdG9ycyBwcm9kdWNlZCBi
eSBnZW5lcmF0b3IgZnVuY3Rpb25zIGNvbmZvcm0gdG8gdGhlCi0vLyBGb3J3YXJkSXRlcmF0b3Ig
Y29uY2VwdC4KLVRFU1QoSXRlcmF0b3JUZXN0LCBQYXJhbUl0ZXJhdG9yQ29uZm9ybXNUb0Zvcndh
cmRJdGVyYXRvckNvbmNlcHQpIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8aW50PiBnZW4gPSBS
YW5nZSgwLCAxMCk7Ci0gIFBhcmFtR2VuZXJhdG9yPGludD46Oml0ZXJhdG9yIGl0ID0gZ2VuLmJl
Z2luKCk7Ci0KLSAgLy8gVmVyaWZpZXMgdGhhdCBpdGVyYXRvciBpbml0aWFsaXphdGlvbiB3b3Jr
cyBhcyBleHBlY3RlZC4KLSAgUGFyYW1HZW5lcmF0b3I8aW50Pjo6aXRlcmF0b3IgaXQyID0gaXQ7
Ci0gIEVYUEVDVF9UUlVFKCppdCA9PSAqaXQyKSA8PCAiSW5pdGlhbGl6ZWQgaXRlcmF0b3JzIG11
c3QgcG9pbnQgdG8gdGhlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJlbGVtZW50
IHNhbWUgYXMgaXRzIHNvdXJjZSBwb2ludHMgdG8iOwotCi0gIC8vIFZlcmlmaWVzIHRoYXQgaXRl
cmF0b3IgYXNzaWdubWVudCB3b3JrcyBhcyBleHBlY3RlZC4KLSAgKytpdDsKLSAgRVhQRUNUX0ZB
TFNFKCppdCA9PSAqaXQyKTsKLSAgaXQyID0gaXQ7Ci0gIEVYUEVDVF9UUlVFKCppdCA9PSAqaXQy
KSA8PCAiQXNzaWduZWQgaXRlcmF0b3JzIG11c3QgcG9pbnQgdG8gdGhlICIKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8ICJlbGVtZW50IHNhbWUgYXMgaXRzIHNvdXJjZSBwb2ludHMgdG8i
OwotCi0gIC8vIFZlcmlmaWVzIHRoYXQgcHJlZml4IG9wZXJhdG9yKysoKSByZXR1cm5zICp0aGlz
LgotICBFWFBFQ1RfRVEoJml0LCAmKCsraXQpKSA8PCAiUmVzdWx0IG9mIHRoZSBwcmVmaXggb3Bl
cmF0b3IrKyBtdXN0IGJlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgInJlZmVyIHRv
IHRoZSBvcmlnaW5hbCBvYmplY3QiOwotCi0gIC8vIFZlcmlmaWVzIHRoYXQgdGhlIHJlc3VsdCBv
ZiB0aGUgcG9zdGZpeCBvcGVyYXRvcisrIHBvaW50cyB0byB0aGUgdmFsdWUKLSAgLy8gcG9pbnRl
ZCB0byBieSB0aGUgb3JpZ2luYWwgaXRlcmF0b3IuCi0gIGludCBvcmlnaW5hbF92YWx1ZSA9ICpp
dDsgIC8vIEhhdmUgdG8gY29tcHV0ZSBpdCBvdXRzaWRlIG9mIG1hY3JvIGNhbGwgdG8gYmUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW5hZmZlY3RlZCBieSB0aGUgcGFyYW1ldGVy
IGV2YWx1YXRpb24gb3JkZXIuCi0gIEVYUEVDVF9FUShvcmlnaW5hbF92YWx1ZSwgKihpdCsrKSk7
Ci0KLSAgLy8gVmVyaWZpZXMgdGhhdCBwcmVmaXggYW5kIHBvc3RmaXggb3BlcmF0b3IrKygpIGFk
dmFuY2UgYW4gaXRlcmF0b3IKLSAgLy8gYWxsIHRoZSBzYW1lLgotICBpdDIgPSBpdDsKLSAgKytp
dDsKLSAgKytpdDI7Ci0gIEVYUEVDVF9UUlVFKCppdCA9PSAqaXQyKTsKLX0KLQotLy8gVGVzdHMg
dGhhdCBSYW5nZSgpIGdlbmVyYXRlcyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2UuCi1URVNUKFJhbmdl
VGVzdCwgSW50UmFuZ2VXaXRoRGVmYXVsdFN0ZXApIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
aW50PiBnZW4gPSBSYW5nZSgwLCAzKTsKLSAgY29uc3QgaW50IGV4cGVjdGVkX3ZhbHVlc1tdID0g
ezAsIDEsIDJ9OwotICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwotfQot
Ci0vLyBFZGdlIGNhc2UuIFRlc3RzIHRoYXQgUmFuZ2UoKSBnZW5lcmF0ZXMgdGhlIHNpbmdsZSBl
bGVtZW50IHNlcXVlbmNlCi0vLyBhcyBleHBlY3RlZCB3aGVuIHByb3ZpZGVkIHdpdGggcmFuZ2Ug
bGltaXRzIHRoYXQgYXJlIGVxdWFsLgotVEVTVChSYW5nZVRlc3QsIEludFJhbmdlU2luZ2xlVmFs
dWUpIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8aW50PiBnZW4gPSBSYW5nZSgwLCAxKTsKLSAg
Y29uc3QgaW50IGV4cGVjdGVkX3ZhbHVlc1tdID0gezB9OwotICBWZXJpZnlHZW5lcmF0b3IoZ2Vu
LCBleHBlY3RlZF92YWx1ZXMpOwotfQotCi0vLyBFZGdlIGNhc2UuIFRlc3RzIHRoYXQgUmFuZ2Uo
KSB3aXRoIGdlbmVyYXRlcyBlbXB0eSBzZXF1ZW5jZSB3aGVuCi0vLyBzdXBwbGllZCB3aXRoIGFu
IGVtcHR5IHJhbmdlLgotVEVTVChSYW5nZVRlc3QsIEludFJhbmdlRW1wdHkpIHsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8aW50PiBnZW4gPSBSYW5nZSgwLCAwKTsKLSAgVmVyaWZ5R2VuZXJhdG9y
SXNFbXB0eShnZW4pOwotfQotCi0vLyBUZXN0cyB0aGF0IFJhbmdlKCkgd2l0aCBjdXN0b20gc3Rl
cCAoZ3JlYXRlciB0aGVuIG9uZSkgZ2VuZXJhdGVzCi0vLyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2Uu
Ci1URVNUKFJhbmdlVGVzdCwgSW50UmFuZ2VXaXRoQ3VzdG9tU3RlcCkgewotICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxpbnQ+IGdlbiA9IFJhbmdlKDAsIDksIDMpOwotICBjb25zdCBpbnQgZXhwZWN0
ZWRfdmFsdWVzW10gPSB7MCwgMywgNn07Ci0gIFZlcmlmeUdlbmVyYXRvcihnZW4sIGV4cGVjdGVk
X3ZhbHVlcyk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgUmFuZ2UoKSB3aXRoIGN1c3RvbSBzdGVwIChn
cmVhdGVyIHRoZW4gb25lKSBnZW5lcmF0ZXMKLS8vIHRoZSBleHBlY3RlZCBzZXF1ZW5jZSB3aGVu
IHRoZSBsYXN0IGVsZW1lbnQgZG9lcyBub3QgZmFsbCBvbiB0aGUKLS8vIHVwcGVyIHJhbmdlIGxp
bWl0LiBTZXF1ZW5jZXMgZ2VuZXJhdGVkIGJ5IFJhbmdlKCkgbXVzdCBub3QgaGF2ZQotLy8gZWxl
bWVudHMgYmV5b25kIHRoZSByYW5nZSBsaW1pdHMuCi1URVNUKFJhbmdlVGVzdCwgSW50UmFuZ2VX
aXRoQ3VzdG9tU3RlcE92ZXJVcHBlckJvdW5kKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPGlu
dD4gZ2VuID0gUmFuZ2UoMCwgNCwgMyk7Ci0gIGNvbnN0IGludCBleHBlY3RlZF92YWx1ZXNbXSA9
IHswLCAzfTsKLSAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKLX0KLQot
Ly8gVmVyaWZpZXMgdGhhdCBSYW5nZSB3b3JrcyB3aXRoIHVzZXItZGVmaW5lZCB0eXBlcyB0aGF0
IGRlZmluZQotLy8gY29weSBjb25zdHJ1Y3Rvciwgb3BlcmF0b3I9KCksIG9wZXJhdG9yKygpLCBh
bmQgb3BlcmF0b3I8KCkuCi1jbGFzcyBEb2dBZGRlciB7Ci0gcHVibGljOgotICBleHBsaWNpdCBE
b2dBZGRlcihjb25zdCBjaGFyKiBhX3ZhbHVlKSA6IHZhbHVlXyhhX3ZhbHVlKSB7fQotICBEb2dB
ZGRlcihjb25zdCBEb2dBZGRlciYgb3RoZXIpIDogdmFsdWVfKG90aGVyLnZhbHVlXy5jX3N0cigp
KSB7fQotCi0gIERvZ0FkZGVyIG9wZXJhdG9yPShjb25zdCBEb2dBZGRlciYgb3RoZXIpIHsKLSAg
ICBpZiAodGhpcyAhPSAmb3RoZXIpCi0gICAgICB2YWx1ZV8gPSBvdGhlci52YWx1ZV87Ci0gICAg
cmV0dXJuICp0aGlzOwotICB9Ci0gIERvZ0FkZGVyIG9wZXJhdG9yKyhjb25zdCBEb2dBZGRlciYg
b3RoZXIpIGNvbnN0IHsKLSAgICBNZXNzYWdlIG1zZzsKLSAgICBtc2cgPDwgdmFsdWVfLmNfc3Ry
KCkgPDwgb3RoZXIudmFsdWVfLmNfc3RyKCk7Ci0gICAgcmV0dXJuIERvZ0FkZGVyKG1zZy5HZXRT
dHJpbmcoKS5jX3N0cigpKTsKLSAgfQotICBib29sIG9wZXJhdG9yPChjb25zdCBEb2dBZGRlciYg
b3RoZXIpIGNvbnN0IHsKLSAgICByZXR1cm4gdmFsdWVfIDwgb3RoZXIudmFsdWVfOwotICB9Ci0g
IGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQotCi0g
cHJpdmF0ZToKLSAgc3RkOjpzdHJpbmcgdmFsdWVfOwotfTsKLQotVEVTVChSYW5nZVRlc3QsIFdv
cmtzV2l0aEFDdXN0b21UeXBlKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPERvZ0FkZGVyPiBn
ZW4gPQotICAgICAgUmFuZ2UoRG9nQWRkZXIoImNhdCIpLCBEb2dBZGRlcigiY2F0ZG9nZG9nIiks
IERvZ0FkZGVyKCJkb2ciKSk7Ci0gIFBhcmFtR2VuZXJhdG9yPERvZ0FkZGVyPjo6aXRlcmF0b3Ig
aXQgPSBnZW4uYmVnaW4oKTsKLQotICBBU1NFUlRfRkFMU0UoaXQgPT0gZ2VuLmVuZCgpKTsKLSAg
RVhQRUNUX1NUUkVRKCJjYXQiLCBpdC0+dmFsdWUoKS5jX3N0cigpKTsKLQotICBBU1NFUlRfRkFM
U0UoKytpdCA9PSBnZW4uZW5kKCkpOwotICBFWFBFQ1RfU1RSRVEoImNhdGRvZyIsIGl0LT52YWx1
ZSgpLmNfc3RyKCkpOwotCi0gIEVYUEVDVF9UUlVFKCsraXQgPT0gZ2VuLmVuZCgpKTsKLX0KLQot
Y2xhc3MgSW50V3JhcHBlciB7Ci0gcHVibGljOgotICBleHBsaWNpdCBJbnRXcmFwcGVyKGludCBh
X3ZhbHVlKSA6IHZhbHVlXyhhX3ZhbHVlKSB7fQotICBJbnRXcmFwcGVyKGNvbnN0IEludFdyYXBw
ZXImIG90aGVyKSA6IHZhbHVlXyhvdGhlci52YWx1ZV8pIHt9Ci0KLSAgSW50V3JhcHBlciBvcGVy
YXRvcj0oY29uc3QgSW50V3JhcHBlciYgb3RoZXIpIHsKLSAgICB2YWx1ZV8gPSBvdGhlci52YWx1
ZV87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0gIC8vIG9wZXJhdG9yKygpIGFkZHMgYSBkaWZm
ZXJlbnQgdHlwZS4KLSAgSW50V3JhcHBlciBvcGVyYXRvcisoaW50IG90aGVyKSBjb25zdCB7IHJl
dHVybiBJbnRXcmFwcGVyKHZhbHVlXyArIG90aGVyKTsgfQotICBib29sIG9wZXJhdG9yPChjb25z
dCBJbnRXcmFwcGVyJiBvdGhlcikgY29uc3QgewotICAgIHJldHVybiB2YWx1ZV8gPCBvdGhlci52
YWx1ZV87Ci0gIH0KLSAgaW50IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVfOyB9Ci0KLSBw
cml2YXRlOgotICBpbnQgdmFsdWVfOwotfTsKLQotVEVTVChSYW5nZVRlc3QsIFdvcmtzV2l0aEFD
dXN0b21UeXBlV2l0aERpZmZlcmVudEluY3JlbWVudFR5cGUpIHsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8SW50V3JhcHBlcj4gZ2VuID0gUmFuZ2UoSW50V3JhcHBlcigwKSwgSW50V3JhcHBlcigy
KSk7Ci0gIFBhcmFtR2VuZXJhdG9yPEludFdyYXBwZXI+OjppdGVyYXRvciBpdCA9IGdlbi5iZWdp
bigpOwotCi0gIEFTU0VSVF9GQUxTRShpdCA9PSBnZW4uZW5kKCkpOwotICBFWFBFQ1RfRVEoMCwg
aXQtPnZhbHVlKCkpOwotCi0gIEFTU0VSVF9GQUxTRSgrK2l0ID09IGdlbi5lbmQoKSk7Ci0gIEVY
UEVDVF9FUSgxLCBpdC0+dmFsdWUoKSk7Ci0KLSAgRVhQRUNUX1RSVUUoKytpdCA9PSBnZW4uZW5k
KCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IFZhbHVlc0luKCkgd2l0aCBhbiBhcnJheSBwYXJhbWV0
ZXIgZ2VuZXJhdGVzCi0vLyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2UuCi1URVNUKFZhbHVlc0luVGVz
dCwgVmFsdWVzSW5BcnJheSkgewotICBpbnQgYXJyYXlbXSA9IHszLCA1LCA4fTsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8aW50PiBnZW4gPSBWYWx1ZXNJbihhcnJheSk7Ci0gIFZlcmlmeUdlbmVy
YXRvcihnZW4sIGFycmF5KTsKLX0KLQotLy8gVGVzdHMgdGhhdCBWYWx1ZXNJbigpIHdpdGggYSBj
b25zdCBhcnJheSBwYXJhbWV0ZXIgZ2VuZXJhdGVzCi0vLyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2Uu
Ci1URVNUKFZhbHVlc0luVGVzdCwgVmFsdWVzSW5Db25zdEFycmF5KSB7Ci0gIGNvbnN0IGludCBh
cnJheVtdID0gezMsIDUsIDh9OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxpbnQ+IGdlbiA9IFZh
bHVlc0luKGFycmF5KTsKLSAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgYXJyYXkpOwotfQotCi0vLyBF
ZGdlIGNhc2UuIFRlc3RzIHRoYXQgVmFsdWVzSW4oKSB3aXRoIGFuIGFycmF5IHBhcmFtZXRlciBj
b250YWluaW5nIGEKLS8vIHNpbmdsZSBlbGVtZW50IGdlbmVyYXRlcyB0aGUgc2luZ2xlIGVsZW1l
bnQgc2VxdWVuY2UuCi1URVNUKFZhbHVlc0luVGVzdCwgVmFsdWVzSW5TaW5nbGVFbGVtZW50QXJy
YXkpIHsKLSAgaW50IGFycmF5W10gPSB7NDJ9OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxpbnQ+
IGdlbiA9IFZhbHVlc0luKGFycmF5KTsKLSAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgYXJyYXkpOwot
fQotCi0vLyBUZXN0cyB0aGF0IFZhbHVlc0luKCkgZ2VuZXJhdGVzIHRoZSBleHBlY3RlZCBzZXF1
ZW5jZSBmb3IgYW4gU1RMCi0vLyBjb250YWluZXIgKHZlY3RvcikuCi1URVNUKFZhbHVlc0luVGVz
dCwgVmFsdWVzSW5WZWN0b3IpIHsKLSAgdHlwZWRlZiA6OnN0ZDo6dmVjdG9yPGludD4gQ29udGFp
bmVyVHlwZTsKLSAgQ29udGFpbmVyVHlwZSB2YWx1ZXM7Ci0gIHZhbHVlcy5wdXNoX2JhY2soMyk7
Ci0gIHZhbHVlcy5wdXNoX2JhY2soNSk7Ci0gIHZhbHVlcy5wdXNoX2JhY2soOCk7Ci0gIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPGludD4gZ2VuID0gVmFsdWVzSW4odmFsdWVzKTsKLQotICBjb25zdCBp
bnQgZXhwZWN0ZWRfdmFsdWVzW10gPSB7MywgNSwgOH07Ci0gIFZlcmlmeUdlbmVyYXRvcihnZW4s
IGV4cGVjdGVkX3ZhbHVlcyk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgVmFsdWVzSW4oKSBnZW5lcmF0
ZXMgdGhlIGV4cGVjdGVkIHNlcXVlbmNlLgotVEVTVChWYWx1ZXNJblRlc3QsIFZhbHVlc0luSXRl
cmF0b3JSYW5nZSkgewotICB0eXBlZGVmIDo6c3RkOjp2ZWN0b3I8aW50PiBDb250YWluZXJUeXBl
OwotICBDb250YWluZXJUeXBlIHZhbHVlczsKLSAgdmFsdWVzLnB1c2hfYmFjaygzKTsKLSAgdmFs
dWVzLnB1c2hfYmFjayg1KTsKLSAgdmFsdWVzLnB1c2hfYmFjayg4KTsKLSAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8aW50PiBnZW4gPSBWYWx1ZXNJbih2YWx1ZXMuYmVnaW4oKSwgdmFsdWVzLmVuZCgp
KTsKLQotICBjb25zdCBpbnQgZXhwZWN0ZWRfdmFsdWVzW10gPSB7MywgNSwgOH07Ci0gIFZlcmlm
eUdlbmVyYXRvcihnZW4sIGV4cGVjdGVkX3ZhbHVlcyk7Ci19Ci0KLS8vIEVkZ2UgY2FzZS4gVGVz
dHMgdGhhdCBWYWx1ZXNJbigpIHByb3ZpZGVkIHdpdGggYW4gaXRlcmF0b3IgcmFuZ2Ugc3BlY2lm
eWluZyBhCi0vLyBzaW5nbGUgdmFsdWUgZ2VuZXJhdGVzIGEgc2luZ2xlLWVsZW1lbnQgc2VxdWVu
Y2UuCi1URVNUKFZhbHVlc0luVGVzdCwgVmFsdWVzSW5TaW5nbGVFbGVtZW50SXRlcmF0b3JSYW5n
ZSkgewotICB0eXBlZGVmIDo6c3RkOjp2ZWN0b3I8aW50PiBDb250YWluZXJUeXBlOwotICBDb250
YWluZXJUeXBlIHZhbHVlczsKLSAgdmFsdWVzLnB1c2hfYmFjayg0Mik7Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPGludD4gZ2VuID0gVmFsdWVzSW4odmFsdWVzLmJlZ2luKCksIHZhbHVlcy5lbmQo
KSk7Ci0KLSAgY29uc3QgaW50IGV4cGVjdGVkX3ZhbHVlc1tdID0gezQyfTsKLSAgVmVyaWZ5R2Vu
ZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKLX0KLQotLy8gRWRnZSBjYXNlLiBUZXN0cyB0
aGF0IFZhbHVlc0luKCkgcHJvdmlkZWQgd2l0aCBhbiBlbXB0eSBpdGVyYXRvciByYW5nZQotLy8g
Z2VuZXJhdGVzIGFuIGVtcHR5IHNlcXVlbmNlLgotVEVTVChWYWx1ZXNJblRlc3QsIFZhbHVlc0lu
RW1wdHlJdGVyYXRvclJhbmdlKSB7Ci0gIHR5cGVkZWYgOjpzdGQ6OnZlY3RvcjxpbnQ+IENvbnRh
aW5lclR5cGU7Ci0gIENvbnRhaW5lclR5cGUgdmFsdWVzOwotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxpbnQ+IGdlbiA9IFZhbHVlc0luKHZhbHVlcy5iZWdpbigpLCB2YWx1ZXMuZW5kKCkpOwotCi0g
IFZlcmlmeUdlbmVyYXRvcklzRW1wdHkoZ2VuKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0aGUgVmFs
dWVzKCkgZ2VuZXJhdGVzIHRoZSBleHBlY3RlZCBzZXF1ZW5jZS4KLVRFU1QoVmFsdWVzVGVzdCwg
VmFsdWVzV29ya3MpIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8aW50PiBnZW4gPSBWYWx1ZXMo
MywgNSwgOCk7Ci0KLSAgY29uc3QgaW50IGV4cGVjdGVkX3ZhbHVlc1tdID0gezMsIDUsIDh9Owot
ICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwotfQotCi0vLyBUZXN0cyB0
aGF0IFZhbHVlcygpIGdlbmVyYXRlcyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2VzIGZyb20gZWxlbWVu
dHMgb2YKLS8vIGRpZmZlcmVudCB0eXBlcyBjb252ZXJ0aWJsZSB0byBQYXJhbUdlbmVyYXRvcidz
IHBhcmFtZXRlciB0eXBlLgotVEVTVChWYWx1ZXNUZXN0LCBWYWx1ZXNXb3Jrc0ZvclZhbHVlc09m
Q29tcGF0aWJsZVR5cGVzKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPGRvdWJsZT4gZ2VuID0g
VmFsdWVzKDMsIDUuMGYsIDguMCk7Ci0KLSAgY29uc3QgZG91YmxlIGV4cGVjdGVkX3ZhbHVlc1td
ID0gezMuMCwgNS4wLCA4LjB9OwotICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1
ZXMpOwotfQotCi1URVNUKFZhbHVlc1Rlc3QsIFZhbHVlc1dvcmtzRm9yTWF4TGVuZ3RoTGlzdCkg
ewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxpbnQ+IGdlbiA9IFZhbHVlcygKLSAgICAgIDEwLCAy
MCwgMzAsIDQwLCA1MCwgNjAsIDcwLCA4MCwgOTAsIDEwMCwKLSAgICAgIDExMCwgMTIwLCAxMzAs
IDE0MCwgMTUwLCAxNjAsIDE3MCwgMTgwLCAxOTAsIDIwMCwKLSAgICAgIDIxMCwgMjIwLCAyMzAs
IDI0MCwgMjUwLCAyNjAsIDI3MCwgMjgwLCAyOTAsIDMwMCwKLSAgICAgIDMxMCwgMzIwLCAzMzAs
IDM0MCwgMzUwLCAzNjAsIDM3MCwgMzgwLCAzOTAsIDQwMCwKLSAgICAgIDQxMCwgNDIwLCA0MzAs
IDQ0MCwgNDUwLCA0NjAsIDQ3MCwgNDgwLCA0OTAsIDUwMCk7Ci0KLSAgY29uc3QgaW50IGV4cGVj
dGVkX3ZhbHVlc1tdID0gewotICAgICAgMTAsIDIwLCAzMCwgNDAsIDUwLCA2MCwgNzAsIDgwLCA5
MCwgMTAwLAotICAgICAgMTEwLCAxMjAsIDEzMCwgMTQwLCAxNTAsIDE2MCwgMTcwLCAxODAsIDE5
MCwgMjAwLAotICAgICAgMjEwLCAyMjAsIDIzMCwgMjQwLCAyNTAsIDI2MCwgMjcwLCAyODAsIDI5
MCwgMzAwLAotICAgICAgMzEwLCAzMjAsIDMzMCwgMzQwLCAzNTAsIDM2MCwgMzcwLCAzODAsIDM5
MCwgNDAwLAotICAgICAgNDEwLCA0MjAsIDQzMCwgNDQwLCA0NTAsIDQ2MCwgNDcwLCA0ODAsIDQ5
MCwgNTAwfTsKLSAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKLX0KLQot
Ly8gRWRnZSBjYXNlIHRlc3QuIFRlc3RzIHRoYXQgc2luZ2xlLXBhcmFtZXRlciBWYWx1ZXMoKSBn
ZW5lcmF0ZXMgdGhlIHNlcXVlbmNlCi0vLyB3aXRoIHRoZSBzaW5nbGUgdmFsdWUuCi1URVNUKFZh
bHVlc1Rlc3QsIFZhbHVlc1dpdGhTaW5nbGVQYXJhbWV0ZXIpIHsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8aW50PiBnZW4gPSBWYWx1ZXMoNDIpOwotCi0gIGNvbnN0IGludCBleHBlY3RlZF92YWx1
ZXNbXSA9IHs0Mn07Ci0gIFZlcmlmeUdlbmVyYXRvcihnZW4sIGV4cGVjdGVkX3ZhbHVlcyk7Ci19
Ci0KLS8vIFRlc3RzIHRoYXQgQm9vbCgpIGdlbmVyYXRlcyBzZXF1ZW5jZSAoZmFsc2UsIHRydWUp
LgotVEVTVChCb29sVGVzdCwgQm9vbFdvcmtzKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPGJv
b2w+IGdlbiA9IEJvb2woKTsKLQotICBjb25zdCBib29sIGV4cGVjdGVkX3ZhbHVlc1tdID0ge2Zh
bHNlLCB0cnVlfTsKLSAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKLX0K
LQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotCi0vLyBUZXN0cyB0aGF0IENvbWJpbmUoKSB3aXRo
IHR3byBwYXJhbWV0ZXJzIGdlbmVyYXRlcyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2UuCi1URVNUKENv
bWJpbmVUZXN0LCBDb21iaW5lV2l0aFR3b1BhcmFtZXRlcnMpIHsKLSAgY29uc3QgY2hhciogZm9v
ID0gImZvbyI7Ci0gIGNvbnN0IGNoYXIqIGJhciA9ICJiYXIiOwotICBjb25zdCBQYXJhbUdlbmVy
YXRvcjx0dXBsZTxjb25zdCBjaGFyKiwgaW50PiA+IGdlbiA9Ci0gICAgICBDb21iaW5lKFZhbHVl
cyhmb28sIGJhciksIFZhbHVlcygzLCA0KSk7Ci0KLSAgdHVwbGU8Y29uc3QgY2hhciosIGludD4g
ZXhwZWN0ZWRfdmFsdWVzW10gPSB7Ci0gICAgbWFrZV90dXBsZShmb28sIDMpLCBtYWtlX3R1cGxl
KGZvbywgNCksCi0gICAgbWFrZV90dXBsZShiYXIsIDMpLCBtYWtlX3R1cGxlKGJhciwgNCl9Owot
ICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwotfQotCi0vLyBUZXN0cyB0
aGF0IENvbWJpbmUoKSB3aXRoIHRocmVlIHBhcmFtZXRlcnMgZ2VuZXJhdGVzIHRoZSBleHBlY3Rl
ZCBzZXF1ZW5jZS4KLVRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoVGhyZWVQYXJhbWV0ZXJz
KSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50LCBpbnQ+ID4gZ2VuID0g
Q29tYmluZShWYWx1ZXMoMCwgMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMywgNCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNSwgNikp
OwotICB0dXBsZTxpbnQsIGludCwgaW50PiBleHBlY3RlZF92YWx1ZXNbXSA9IHsKLSAgICBtYWtl
X3R1cGxlKDAsIDMsIDUpLCBtYWtlX3R1cGxlKDAsIDMsIDYpLAotICAgIG1ha2VfdHVwbGUoMCwg
NCwgNSksIG1ha2VfdHVwbGUoMCwgNCwgNiksCi0gICAgbWFrZV90dXBsZSgxLCAzLCA1KSwgbWFr
ZV90dXBsZSgxLCAzLCA2KSwKLSAgICBtYWtlX3R1cGxlKDEsIDQsIDUpLCBtYWtlX3R1cGxlKDEs
IDQsIDYpfTsKLSAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKLX0KLQot
Ly8gVGVzdHMgdGhhdCB0aGUgQ29tYmluZSgpIHdpdGggdGhlIGZpcnN0IHBhcmFtZXRlciBnZW5l
cmF0aW5nIGEgc2luZ2xlIHZhbHVlCi0vLyBzZXF1ZW5jZSBnZW5lcmF0ZXMgYSBzZXF1ZW5jZSB3
aXRoIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZXF1YWwgdG8gdGhlCi0vLyBudW1iZXIgb2YgZWxl
bWVudHMgaW4gdGhlIHNlcXVlbmNlIGdlbmVyYXRlZCBieSB0aGUgc2Vjb25kIHBhcmFtZXRlci4K
LVRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoRmlyc3RQYXJhbWV0ZXJTaW5nbGVWYWx1ZSkg
ewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludD4gPiBnZW4gPSBDb21iaW5l
KFZhbHVlcyg0MiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKDAsIDEpKTsKLQotICB0dXBsZTxpbnQsIGludD4gZXhwZWN0ZWRf
dmFsdWVzW10gPSB7bWFrZV90dXBsZSg0MiwgMCksIG1ha2VfdHVwbGUoNDIsIDEpfTsKLSAgVmVy
aWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0
aGUgQ29tYmluZSgpIHdpdGggdGhlIHNlY29uZCBwYXJhbWV0ZXIgZ2VuZXJhdGluZyBhIHNpbmds
ZSB2YWx1ZQotLy8gc2VxdWVuY2UgZ2VuZXJhdGVzIGEgc2VxdWVuY2Ugd2l0aCB0aGUgbnVtYmVy
IG9mIGVsZW1lbnRzIGVxdWFsIHRvIHRoZQotLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBz
ZXF1ZW5jZSBnZW5lcmF0ZWQgYnkgdGhlIGZpcnN0IHBhcmFtZXRlci4KLVRFU1QoQ29tYmluZVRl
c3QsIENvbWJpbmVXaXRoU2Vjb25kUGFyYW1ldGVyU2luZ2xlVmFsdWUpIHsKLSAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8dHVwbGU8aW50LCBpbnQ+ID4gZ2VuID0gQ29tYmluZShWYWx1ZXMoMCwgMSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzKDQyKSk7Ci0KLSAgdHVwbGU8aW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge21h
a2VfdHVwbGUoMCwgNDIpLCBtYWtlX3R1cGxlKDEsIDQyKX07Ci0gIFZlcmlmeUdlbmVyYXRvcihn
ZW4sIGV4cGVjdGVkX3ZhbHVlcyk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgd2hlbiB0aGUgZmlyc3Qg
cGFyYW1ldGVyIHByb2R1Y2VzIGFuIGVtcHR5IHNlcXVlbmNlLAotLy8gQ29tYmluZSgpIHByb2R1
Y2VzIGFuIGVtcHR5IHNlcXVlbmNlLCB0b28uCi1URVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0
aEZpcnN0UGFyYW1ldGVyRW1wdHlSYW5nZSkgewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBs
ZTxpbnQsIGludD4gPiBnZW4gPSBDb21iaW5lKFJhbmdlKDAsIDApLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygwLCAxKSk7Ci0g
IFZlcmlmeUdlbmVyYXRvcklzRW1wdHkoZ2VuKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB3aGVuIHRo
ZSBzZWNvbmQgcGFyYW1ldGVyIHByb2R1Y2VzIGFuIGVtcHR5IHNlcXVlbmNlLAotLy8gQ29tYmlu
ZSgpIHByb2R1Y2VzIGFuIGVtcHR5IHNlcXVlbmNlLCB0b28uCi1URVNUKENvbWJpbmVUZXN0LCBD
b21iaW5lV2l0aFNlY29uZFBhcmFtZXRlckVtcHR5UmFuZ2UpIHsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8dHVwbGU8aW50LCBpbnQ+ID4gZ2VuID0gQ29tYmluZShWYWx1ZXMoMCwgMSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZ2Uo
MSwgMSkpOwotICBWZXJpZnlHZW5lcmF0b3JJc0VtcHR5KGdlbik7Ci19Ci0KLS8vIEVkZ2UgY2Fz
ZS4gVGVzdHMgdGhhdCBjb21iaW5lIHdvcmtzIHdpdGggdGhlIG1heGltdW0gbnVtYmVyCi0vLyBv
ZiBwYXJhbWV0ZXJzIHN1cHBvcnRlZCBieSBHb29nbGUgVGVzdCAoY3VycmVudGx5IDEwKS4KLVRF
U1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoTWF4TnVtYmVyT2ZQYXJhbWV0ZXJzKSB7Ci0gIGNv
bnN0IGNoYXIqIGZvbyA9ICJmb28iOwotICBjb25zdCBjaGFyKiBiYXIgPSAiYmFyIjsKLSAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8dHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwg
aW50LCBpbnQsIGludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBpbnQ+ID4g
Z2VuID0gQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygxKSwgVmFsdWVzKDIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
cygzKSwgVmFsdWVzKDQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlcyg1KSwgVmFsdWVzKDYpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg3KSwgVmFsdWVzKDgp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcyg5KSk7Ci0KLSAgdHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwg
aW50LCBpbnQsIGludCwgaW50LCBpbnQ+Ci0gICAgICBleHBlY3RlZF92YWx1ZXNbXSA9IHttYWtl
X3R1cGxlKGZvbywgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYWtlX3R1cGxlKGJhciwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSl9Owot
ICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwotfQotCi0jIGVuZGlmICAv
LyBHVEVTVF9IQVNfQ09NQklORQotCi0vLyBUZXN0cyB0aGF0IGFuIGdlbmVyYXRvciBwcm9kdWNl
cyBjb3JyZWN0IHNlcXVlbmNlIGFmdGVyIGJlaW5nCi0vLyBhc3NpZ25lZCBmcm9tIGFub3RoZXIg
Z2VuZXJhdG9yLgotVEVTVChQYXJhbUdlbmVyYXRvclRlc3QsIEFzc2lnbm1lbnRXb3Jrcykgewot
ICBQYXJhbUdlbmVyYXRvcjxpbnQ+IGdlbiA9IFZhbHVlcygxLCAyKTsKLSAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8aW50PiBnZW4yID0gVmFsdWVzKDMsIDQpOwotICBnZW4gPSBnZW4yOwotCi0gIGNv
bnN0IGludCBleHBlY3RlZF92YWx1ZXNbXSA9IHszLCA0fTsKLSAgVmVyaWZ5R2VuZXJhdG9yKGdl
biwgZXhwZWN0ZWRfdmFsdWVzKTsKLX0KLQotLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhl
IHRlc3RzIGFyZSBleHBhbmRlZCBhbmQgcnVuIGFzIHNwZWNpZmllZDoKLS8vIG9uZSB0ZXN0IHBl
ciBlbGVtZW50IGZyb20gdGhlIHNlcXVlbmNlIHByb2R1Y2VkIGJ5IHRoZSBnZW5lcmF0b3IKLS8v
IHNwZWNpZmllZCBpbiBJTlNUQU5USUFURV9URVNUX0NBU0VfUC4gSXQgYWxzbyB2ZXJpZmllcyB0
aGF0IHRoZSB0ZXN0J3MKLS8vIGZpeHR1cmUgY29uc3RydWN0b3IsIFNldFVwKCksIGFuZCBUZWFy
RG93bigpIGhhdmUgcnVuIGFuZCBoYXZlIGJlZW4KLS8vIHN1cHBsaWVkIHdpdGggdGhlIGNvcnJl
Y3QgcGFyYW1ldGVycy4KLQotLy8gVGhlIHVzZSBvZiBlbnZpcm9ubWVudCBvYmplY3QgYWxsb3dz
IGRldGVjdGlvbiBvZiB0aGUgY2FzZSB3aGVyZSBubyB0ZXN0Ci0vLyBjYXNlIGZ1bmN0aW9uYWxp
dHkgaXMgcnVuIGF0IGFsbC4gSW4gdGhpcyBjYXNlIFRlc3RDYXNlVGVhckRvd24gd2lsbCBub3QK
LS8vIGJlIGFibGUgdG8gZGV0ZWN0IG1pc3NpbmcgdGVzdHMsIG5hdHVyYWxseS4KLXRlbXBsYXRl
IDxpbnQga0V4cGVjdGVkQ2FsbHM+Ci1jbGFzcyBUZXN0R2VuZXJhdGlvbkVudmlyb25tZW50IDog
cHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgewotIHB1YmxpYzoKLSAgc3RhdGljIFRlc3RH
ZW5lcmF0aW9uRW52aXJvbm1lbnQqIEluc3RhbmNlKCkgewotICAgIHN0YXRpYyBUZXN0R2VuZXJh
dGlvbkVudmlyb25tZW50KiBpbnN0YW5jZSA9IG5ldyBUZXN0R2VuZXJhdGlvbkVudmlyb25tZW50
OwotICAgIHJldHVybiBpbnN0YW5jZTsKLSAgfQotCi0gIHZvaWQgRml4dHVyZUNvbnN0cnVjdG9y
RXhlY3V0ZWQoKSB7IGZpeHR1cmVfY29uc3RydWN0b3JfY291bnRfKys7IH0KLSAgdm9pZCBTZXRV
cEV4ZWN1dGVkKCkgeyBzZXRfdXBfY291bnRfKys7IH0KLSAgdm9pZCBUZWFyRG93bkV4ZWN1dGVk
KCkgeyB0ZWFyX2Rvd25fY291bnRfKys7IH0KLSAgdm9pZCBUZXN0Qm9keUV4ZWN1dGVkKCkgeyB0
ZXN0X2JvZHlfY291bnRfKys7IH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAg
Ly8gSWYgYWxsIE11bHRpcGxlVGVzdEdlbmVyYXRpb25UZXN0IHRlc3RzIGhhdmUgYmVlbiBkZS1z
ZWxlY3RlZAotICAgIC8vIGJ5IHRoZSBmaWx0ZXIgZmxhZywgdGhlIGZvbGxvd2luZyBjaGVja3Mg
bWFrZSBubyBzZW5zZS4KLSAgICBib29sIHBlcmZvcm1fY2hlY2sgPSBmYWxzZTsKLQotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwga0V4cGVjdGVkQ2FsbHM7ICsraSkgewotICAgICAgTWVzc2FnZSBt
c2c7Ci0gICAgICBtc2cgPDwgIlRlc3RzRXhwYW5kZWRBbmRSdW4vIiA8PCBpOwotICAgICAgaWYg
KFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rlc3QoCi0gICAgICAgICAgICAgIlRlc3RF
eHBhbnNpb25Nb2R1bGUvTXVsdGlwbGVUZXN0R2VuZXJhdGlvblRlc3QiLAotICAgICAgICAgICAg
ICBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSkpIHsKLSAgICAgICAgcGVyZm9ybV9jaGVjayA9IHRy
dWU7Ci0gICAgICB9Ci0gICAgfQotICAgIGlmIChwZXJmb3JtX2NoZWNrKSB7Ci0gICAgICBFWFBF
Q1RfRVEoa0V4cGVjdGVkQ2FsbHMsIGZpeHR1cmVfY29uc3RydWN0b3JfY291bnRfKQotICAgICAg
ICAgIDw8ICJGaXh0dXJlIGNvbnN0cnVjdG9yIG9mIFBhcmFtVGVzdEdlbmVyYXRpb25UZXN0IHRl
c3QgY2FzZSAiCi0gICAgICAgICAgPDwgImhhcyBub3QgYmVlbiBydW4gYXMgZXhwZWN0ZWQuIjsK
LSAgICAgIEVYUEVDVF9FUShrRXhwZWN0ZWRDYWxscywgc2V0X3VwX2NvdW50XykKLSAgICAgICAg
ICA8PCAiRml4dHVyZSBTZXRVcCBtZXRob2Qgb2YgUGFyYW1UZXN0R2VuZXJhdGlvblRlc3QgdGVz
dCBjYXNlICIKLSAgICAgICAgICA8PCAiaGFzIG5vdCBiZWVuIHJ1biBhcyBleHBlY3RlZC4iOwot
ICAgICAgRVhQRUNUX0VRKGtFeHBlY3RlZENhbGxzLCB0ZWFyX2Rvd25fY291bnRfKQotICAgICAg
ICAgIDw8ICJGaXh0dXJlIFRlYXJEb3duIG1ldGhvZCBvZiBQYXJhbVRlc3RHZW5lcmF0aW9uVGVz
dCB0ZXN0IGNhc2UgIgotICAgICAgICAgIDw8ICJoYXMgbm90IGJlZW4gcnVuIGFzIGV4cGVjdGVk
LiI7Ci0gICAgICBFWFBFQ1RfRVEoa0V4cGVjdGVkQ2FsbHMsIHRlc3RfYm9keV9jb3VudF8pCi0g
ICAgICAgICAgPDwgIlRlc3QgaW4gUGFyYW1UZXN0R2VuZXJhdGlvblRlc3QgdGVzdCBjYXNlICIK
LSAgICAgICAgICA8PCAiaGFzIG5vdCBiZWVuIHJ1biBhcyBleHBlY3RlZC4iOwotICAgIH0KLSAg
fQotCi0gcHJpdmF0ZToKLSAgVGVzdEdlbmVyYXRpb25FbnZpcm9ubWVudCgpIDogZml4dHVyZV9j
b25zdHJ1Y3Rvcl9jb3VudF8oMCksIHNldF91cF9jb3VudF8oMCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlYXJfZG93bl9jb3VudF8oMCksIHRlc3RfYm9keV9jb3VudF8oMCkg
e30KLQotICBpbnQgZml4dHVyZV9jb25zdHJ1Y3Rvcl9jb3VudF87Ci0gIGludCBzZXRfdXBfY291
bnRfOwotICBpbnQgdGVhcl9kb3duX2NvdW50XzsKLSAgaW50IHRlc3RfYm9keV9jb3VudF87Ci0K
LSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUZXN0R2VuZXJhdGlvbkVudmlyb25t
ZW50KTsKLX07Ci0KLWNvbnN0IGludCB0ZXN0X2dlbmVyYXRpb25fcGFyYW1zW10gPSB7MzYsIDQy
LCA3Mn07Ci0KLWNsYXNzIFRlc3RHZW5lcmF0aW9uVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFt
PGludD4gewotIHB1YmxpYzoKLSAgZW51bSB7Ci0gICAgUEFSQU1FVEVSX0NPVU5UID0KLSAgICAg
ICAgc2l6ZW9mKHRlc3RfZ2VuZXJhdGlvbl9wYXJhbXMpL3NpemVvZih0ZXN0X2dlbmVyYXRpb25f
cGFyYW1zWzBdKQotICB9OwotCi0gIHR5cGVkZWYgVGVzdEdlbmVyYXRpb25FbnZpcm9ubWVudDxQ
QVJBTUVURVJfQ09VTlQ+IEVudmlyb25tZW50OwotCi0gIFRlc3RHZW5lcmF0aW9uVGVzdCgpIHsK
LSAgICBFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+Rml4dHVyZUNvbnN0cnVjdG9yRXhlY3V0ZWQo
KTsKLSAgICBjdXJyZW50X3BhcmFtZXRlcl8gPSBHZXRQYXJhbSgpOwotICB9Ci0gIHZpcnR1YWwg
dm9pZCBTZXRVcCgpIHsKLSAgICBFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+U2V0VXBFeGVjdXRl
ZCgpOwotICAgIEVYUEVDVF9FUShjdXJyZW50X3BhcmFtZXRlcl8sIEdldFBhcmFtKCkpOwotICB9
Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBFbnZpcm9ubWVudDo6SW5zdGFuY2Uo
KS0+VGVhckRvd25FeGVjdXRlZCgpOwotICAgIEVYUEVDVF9FUShjdXJyZW50X3BhcmFtZXRlcl8s
IEdldFBhcmFtKCkpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKLSAg
ICBib29sIGFsbF90ZXN0c19pbl90ZXN0X2Nhc2Vfc2VsZWN0ZWQgPSB0cnVlOwotCi0gICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBQQVJBTUVURVJfQ09VTlQ7ICsraSkgewotICAgICAgTWVzc2FnZSB0
ZXN0X25hbWU7Ci0gICAgICB0ZXN0X25hbWUgPDwgIlRlc3RzRXhwYW5kZWRBbmRSdW4vIiA8PCBp
OwotICAgICAgaWYgKCAhVW5pdFRlc3RPcHRpb25zOjpGaWx0ZXJNYXRjaGVzVGVzdCgKLSAgICAg
ICAgICAgICAgICAiVGVzdEV4cGFuc2lvbk1vZHVsZS9NdWx0aXBsZVRlc3RHZW5lcmF0aW9uVGVz
dCIsCi0gICAgICAgICAgICAgICAgdGVzdF9uYW1lLkdldFN0cmluZygpKSkgewotICAgICAgICBh
bGxfdGVzdHNfaW5fdGVzdF9jYXNlX3NlbGVjdGVkID0gZmFsc2U7Ci0gICAgICB9Ci0gICAgfQot
ICAgIEVYUEVDVF9UUlVFKGFsbF90ZXN0c19pbl90ZXN0X2Nhc2Vfc2VsZWN0ZWQpCi0gICAgICAg
IDw8ICJXaGVuIHJ1bm5pbmcgdGhlIFRlc3RHZW5lcmF0aW9uVGVzdCB0ZXN0IGNhc2UgYWxsIG9m
IGl0cyB0ZXN0c1xuIgotICAgICAgICA8PCAibXVzdCBiZSBzZWxlY3RlZCBieSB0aGUgZmlsdGVy
IGZsYWcgZm9yIHRoZSB0ZXN0IGNhc2UgdG8gcGFzcy5cbiIKLSAgICAgICAgPDwgIklmIG5vdCBh
bGwgb2YgdGhlbSBhcmUgZW5hYmxlZCwgd2UgY2FuJ3QgcmVsaWFibHkgY29uY2x1ZGVcbiIKLSAg
ICAgICAgPDwgInRoYXQgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHRlc3RzIGhhdmUgYmVlbiBnZW5l
cmF0ZWQuIjsKLQotICAgIGNvbGxlY3RlZF9wYXJhbWV0ZXJzXy5jbGVhcigpOwotICB9Ci0KLSAg
c3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKLSAgICB2ZWN0b3I8aW50PiBleHBlY3Rl
ZF92YWx1ZXModGVzdF9nZW5lcmF0aW9uX3BhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9nZW5lcmF0aW9uX3BhcmFtcyArIFBBUkFNRVRFUl9DT1VOVCk7Ci0gICAg
Ly8gVGVzdCBleGVjdXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQgYnkgR29vZ2xlIFRlc3Qs
Ci0gICAgLy8gc28gdGhlIG9yZGVyIG9mIHZhbHVlcyBpbiBjb2xsZWN0ZWRfcGFyYW1ldGVyc18g
Y2FuIGJlCi0gICAgLy8gZGlmZmVyZW50IGFuZCB3ZSBoYXZlIHRvIHNvcnQgdG8gY29tcGFyZS4K
LSAgICBzb3J0KGV4cGVjdGVkX3ZhbHVlcy5iZWdpbigpLCBleHBlY3RlZF92YWx1ZXMuZW5kKCkp
OwotICAgIHNvcnQoY29sbGVjdGVkX3BhcmFtZXRlcnNfLmJlZ2luKCksIGNvbGxlY3RlZF9wYXJh
bWV0ZXJzXy5lbmQoKSk7Ci0KLSAgICBFWFBFQ1RfVFJVRShjb2xsZWN0ZWRfcGFyYW1ldGVyc18g
PT0gZXhwZWN0ZWRfdmFsdWVzKTsKLSAgfQotCi0gcHJvdGVjdGVkOgotICBpbnQgY3VycmVudF9w
YXJhbWV0ZXJfOwotICBzdGF0aWMgdmVjdG9yPGludD4gY29sbGVjdGVkX3BhcmFtZXRlcnNfOwot
Ci0gcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUZXN0R2VuZXJh
dGlvblRlc3QpOwotfTsKLXZlY3RvcjxpbnQ+IFRlc3RHZW5lcmF0aW9uVGVzdDo6Y29sbGVjdGVk
X3BhcmFtZXRlcnNfOwotCi1URVNUX1AoVGVzdEdlbmVyYXRpb25UZXN0LCBUZXN0c0V4cGFuZGVk
QW5kUnVuKSB7Ci0gIEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5UZXN0Qm9keUV4ZWN1dGVkKCk7
Ci0gIEVYUEVDVF9FUShjdXJyZW50X3BhcmFtZXRlcl8sIEdldFBhcmFtKCkpOwotICBjb2xsZWN0
ZWRfcGFyYW1ldGVyc18ucHVzaF9iYWNrKEdldFBhcmFtKCkpOwotfQotSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1AoVGVzdEV4cGFuc2lvbk1vZHVsZSwgVGVzdEdlbmVyYXRpb25UZXN0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgVmFsdWVzSW4odGVzdF9nZW5lcmF0aW9uX3BhcmFtcykpOwotCi0v
LyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZWxlbWVudCBzZXF1ZW5jZSAodGhpcmQgcGFy
YW1ldGVyIG9mCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCkgaXMgZXZhbHVhdGVkIGluIElu
aXRHb29nbGVUZXN0KCkgYW5kIG5laXRoZXIgYXQKLS8vIHRoZSBjYWxsIHNpdGUgb2YgSU5TVEFO
VElBVEVfVEVTVF9DQVNFX1Agbm9yIGluIFJVTl9BTExfVEVTVFMoKS4gIEZvcgotLy8gdGhhdCwg
d2UgZGVjbGFyZSBwYXJhbV92YWx1ZV8gdG8gYmUgYSBzdGF0aWMgbWVtYmVyIG9mCi0vLyBHZW5l
cmF0b3JFdmFsdWF0aW9uVGVzdCBhbmQgaW5pdGlhbGl6ZSBpdCB0byAwLiAgV2Ugc2V0IGl0IHRv
IDEgaW4KLS8vIG1haW4oKSwganVzdCBiZWZvcmUgaW52b2NhdGlvbiBvZiBJbml0R29vZ2xlVGVz
dCgpLiAgQWZ0ZXIgY2FsbGluZwotLy8gSW5pdEdvb2dsZVRlc3QoKSwgd2Ugc2V0IHRoZSB2YWx1
ZSB0byAyLiAgSWYgdGhlIHNlcXVlbmNlIGlzIGV2YWx1YXRlZAotLy8gYmVmb3JlIG9yIGFmdGVy
IEluaXRHb29nbGVUZXN0LCBJTlNUQU5USUFURV9URVNUX0NBU0VfUCB3aWxsIGNyZWF0ZSBhCi0v
LyB0ZXN0IHdpdGggcGFyYW1ldGVyIG90aGVyIHRoYW4gMSwgYW5kIHRoZSB0ZXN0IGJvZHkgd2ls
bCBmYWlsIHRoZQotLy8gYXNzZXJ0aW9uLgotY2xhc3MgR2VuZXJhdG9yRXZhbHVhdGlvblRlc3Qg
OiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyBpbnQgcGFy
YW1fdmFsdWUoKSB7IHJldHVybiBwYXJhbV92YWx1ZV87IH0KLSAgc3RhdGljIHZvaWQgc2V0X3Bh
cmFtX3ZhbHVlKGludCBwYXJhbV92YWx1ZSkgeyBwYXJhbV92YWx1ZV8gPSBwYXJhbV92YWx1ZTsg
fQotCi0gcHJpdmF0ZToKLSAgc3RhdGljIGludCBwYXJhbV92YWx1ZV87Ci19OwotaW50IEdlbmVy
YXRvckV2YWx1YXRpb25UZXN0OjpwYXJhbV92YWx1ZV8gPSAwOwotCi1URVNUX1AoR2VuZXJhdG9y
RXZhbHVhdGlvblRlc3QsIEdlbmVyYXRvcnNFdmFsdWF0ZWRJbk1haW4pIHsKLSAgRVhQRUNUX0VR
KDEsIEdldFBhcmFtKCkpOwotfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoR2VuRXZhbE1vZHVs
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpwYXJh
bV92YWx1ZSgpKSk7Ci0KLS8vIFRlc3RzIHRoYXQgZ2VuZXJhdG9ycyBkZWZpbmVkIGluIGEgZGlm
ZmVyZW50IHRyYW5zbGF0aW9uIHVuaXQgYXJlCi0vLyBmdW5jdGlvbmFsLiBHZW5lcmF0b3IgZXh0
ZXJuX2dlbiBpcyBkZWZpbmVkIGluIGd0ZXN0LXBhcmFtLXRlc3RfdGVzdDIuY2MuCi1leHRlcm4g
UGFyYW1HZW5lcmF0b3I8aW50PiBleHRlcm5fZ2VuOwotY2xhc3MgRXh0ZXJuYWxHZW5lcmF0b3JU
ZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsKLVRFU1RfUChFeHRlcm5hbEdlbmVy
YXRvclRlc3QsIEV4dGVybmFsR2VuZXJhdG9yKSB7Ci0gIC8vIFNlcXVlbmNlIHByb2R1Y2VkIGJ5
IGV4dGVybl9nZW4gY29udGFpbnMgb25seSBhIHNpbmdsZSB2YWx1ZQotICAvLyB3aGljaCB3ZSB2
ZXJpZnkgaGVyZS4KLSAgRVhQRUNUX0VRKEdldFBhcmFtKCksIDMzKTsKLX0KLUlOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKEV4dGVybmFsR2VuZXJhdG9yTW9kdWxlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgRXh0ZXJuYWxHZW5lcmF0b3JUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgZXh0
ZXJuX2dlbik7Ci0KLS8vIFRlc3RzIHRoYXQgYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4g
YmUgZGVmaW5lZCBpbiBvbmUgdHJhbnNsYXRpb24KLS8vIHVuaXQgYW5kIGluc3RhbnRpYXRlZCBp
biBhbm90aGVyLiBUaGlzIHRlc3Qgd2lsbCBiZSBpbnN0YW50aWF0ZWQgaW4KLS8vIGd0ZXN0LXBh
cmFtLXRlc3RfdGVzdDIuY2MuIEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3QgZml4dHVyZSBjbGFz
cyBpcwotLy8gZGVmaW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaC4KLVRFU1RfUChFeHRl
cm5hbEluc3RhbnRpYXRpb25UZXN0LCBJc011bHRpcGxlT2YzMykgewotICBFWFBFQ1RfRVEoMCwg
R2V0UGFyYW0oKSAlIDMzKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBhIHBhcmFtZXRlcml6ZWQgdGVz
dCBjYXNlIGNhbiBiZSBpbnN0YW50aWF0ZWQgd2l0aCBtdWx0aXBsZQotLy8gZ2VuZXJhdG9ycy4K
LWNsYXNzIE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxp
bnQ+IHt9OwotVEVTVF9QKE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIEFsbG93c011bHRpcGxl
SW5zdGFuY2VzKSB7Ci19Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTEsIE11bHRp
cGxlSW5zdGFudGlhdGlvblRlc3QsIFZhbHVlcygxLCAyKSk7Ci1JTlNUQU5USUFURV9URVNUX0NB
U0VfUChTZXF1ZW5jZTIsIE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIFJhbmdlKDMsIDUpKTsK
LQotLy8gVGVzdHMgdGhhdCBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBpbnN0YW50
aWF0ZWQKLS8vIGluIG11bHRpcGxlIHRyYW5zbGF0aW9uIHVuaXRzLiBUaGlzIHRlc3Qgd2lsbCBi
ZSBpbnN0YW50aWF0ZWQKLS8vIGhlcmUgYW5kIGluIGd0ZXN0LXBhcmFtLXRlc3RfdGVzdDIuY2Mu
Ci0vLyBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGF0aW9uVW5pdHNUZXN0IGZpeHR1cmUg
Y2xhc3MKLS8vIGlzIGRlZmluZWQgaW4gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0LmguCi1URVNUX1Ao
SW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhaW9uVW5pdHNUZXN0LCBJc011bHRpcGxlT2Y0
MikgewotICBFWFBFQ1RfRVEoMCwgR2V0UGFyYW0oKSAlIDQyKTsKLX0KLUlOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QKFNlcXVlbmNlMSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3RhbnRpYXRp
b25Jbk11bHRpcGxlVHJhbnNsYWlvblVuaXRzVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcyg0MiwgNDIqMikpOwotCi0vLyBUZXN0cyB0aGF0IGVhY2ggaXRlcmF0aW9uIG9mIHBh
cmFtZXRlcml6ZWQgdGVzdCBydW5zIGluIGEgc2VwYXJhdGUgdGVzdAotLy8gb2JqZWN0LgotY2xh
c3MgU2VwYXJhdGVJbnN0YW5jZVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsKLSBw
dWJsaWM6Ci0gIFNlcGFyYXRlSW5zdGFuY2VUZXN0KCkgOiBjb3VudF8oMCkge30KLQotICBzdGF0
aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIEVYUEVDVF9HRShnbG9iYWxfY291bnRf
LCAyKQotICAgICAgICA8PCAiSWYgc29tZSAoYnV0IG5vdCBhbGwpIFNlcGFyYXRlSW5zdGFuY2VU
ZXN0IHRlc3RzIGhhdmUgYmVlbiAiCi0gICAgICAgIDw8ICJmaWx0ZXJlZCBvdXQgdGhpcyB0ZXN0
IHdpbGwgZmFpbC4gTWFrZSBzdXJlIHRoYXQgYWxsICIKLSAgICAgICAgPDwgIkdlbmVyYXRvckV2
YWx1YXRpb25UZXN0IGFyZSBzZWxlY3RlZCBvciBkZS1zZWxlY3RlZCB0b2dldGhlciAiCi0gICAg
ICAgIDw8ICJieSB0aGUgdGVzdCBmaWx0ZXIuIjsKLSAgfQotCi0gcHJvdGVjdGVkOgotICBpbnQg
Y291bnRfOwotICBzdGF0aWMgaW50IGdsb2JhbF9jb3VudF87Ci19OwotaW50IFNlcGFyYXRlSW5z
dGFuY2VUZXN0OjpnbG9iYWxfY291bnRfID0gMDsKLQotVEVTVF9QKFNlcGFyYXRlSW5zdGFuY2VU
ZXN0LCBUZXN0c1J1bkluU2VwYXJhdGVJbnN0YW5jZXMpIHsKLSAgRVhQRUNUX0VRKDAsIGNvdW50
XysrKTsKLSAgZ2xvYmFsX2NvdW50XysrOwotfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoRm91
ckVsZW1TZXF1ZW5jZSwgU2VwYXJhdGVJbnN0YW5jZVRlc3QsIFJhbmdlKDEsIDQpKTsKLQotLy8g
VGVzdHMgdGhhdCBhbGwgaW5zdGFudGlhdGlvbnMgb2YgYSB0ZXN0IGhhdmUgbmFtZWQgYXBwcm9w
cmlhdGVseS4gVGVzdAotLy8gZGVmaW5lZCB3aXRoIFRFU1RfUChUZXN0Q2FzZU5hbWUsIFRlc3RO
YW1lKSBhbmQgaW5zdGFudGlhdGVkIHdpdGgKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNl
cXVlbmNlTmFtZSwgVGVzdENhc2VOYW1lLCBnZW5lcmF0b3IpIG11c3QgYmUgbmFtZWQKLS8vIFNl
cXVlbmNlTmFtZS9UZXN0Q2FzZU5hbWUuVGVzdE5hbWUvaSwgd2hlcmUgaSBpcyB0aGUgMC1iYXNl
ZCBpbmRleCBvZiB0aGUKLS8vIHNlcXVlbmNlIGVsZW1lbnQgdXNlZCB0byBpbnN0YW50aWF0ZSB0
aGUgdGVzdC4KLWNsYXNzIE5hbWluZ1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9
OwotCi1URVNUX1AoTmFtaW5nVGVzdCwgVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXNBbmRQYXJhbWV0
ZXJzKSB7Ci0gIGNvbnN0IDo6dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9Ci0g
ICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZv
KCk7Ci0KLSAgRVhQRUNUX1NUUkVRKCJaZXJvVG9GaXZlU2VxdWVuY2UvTmFtaW5nVGVzdCIsIHRl
c3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci0KLSAgTWVzc2FnZSBpbmRleF9zdHJlYW07Ci0g
IGluZGV4X3N0cmVhbSA8PCAiVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXNBbmRQYXJhbWV0ZXJzLyIg
PDwgR2V0UGFyYW0oKTsKLSAgRVhQRUNUX1NUUkVRKGluZGV4X3N0cmVhbS5HZXRTdHJpbmcoKS5j
X3N0cigpLCB0ZXN0X2luZm8tPm5hbWUoKSk7Ci0KLSAgRVhQRUNUX0VRKDo6dGVzdGluZzo6UHJp
bnRUb1N0cmluZyhHZXRQYXJhbSgpKSwgdGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpKTsKLX0KLQot
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoWmVyb1RvRml2ZVNlcXVlbmNlLCBOYW1pbmdUZXN0LCBS
YW5nZSgwLCA1KSk7Ci0KLS8vIFRlc3RzIHRoYXQgdXNlciBzdXBwbGllZCBjdXN0b20gcGFyYW1l
dGVyIG5hbWVzIGFyZSB3b3JraW5nIGNvcnJlY3RseS4KLS8vIFJ1bnMgdGhlIHRlc3Qgd2l0aCBh
IGJ1aWx0aW4gaGVscGVyIG1ldGhvZCB3aGljaCB1c2VzIFByaW50VG9TdHJpbmcsCi0vLyBhcyB3
ZWxsIGFzIGEgY3VzdG9tIGZ1bmN0aW9uIGFuZCBjdXN0b20gZnVuY3RvciB0byBlbnN1cmUgYWxs
IHBvc3NpYmxlCi0vLyB1c2VzIHdvcmsgY29ycmVjdGx5LgotY2xhc3MgQ3VzdG9tRnVuY3Rvck5h
bWluZ1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxzdGQ6OnN0cmluZz4ge307Ci1URVNUX1Ao
Q3VzdG9tRnVuY3Rvck5hbWluZ1Rlc3QsIEN1c3RvbVRlc3ROYW1lcykge30KLQotc3RydWN0IEN1
c3RvbVBhcmFtTmFtZUZ1bmN0b3IgewotICBzdGQ6OnN0cmluZyBvcGVyYXRvcigpKGNvbnN0IDo6
dGVzdGluZzo6VGVzdFBhcmFtSW5mbzxzdGQ6OnN0cmluZz4mIGluZm8pIHsKLSAgICByZXR1cm4g
aW5mby5wYXJhbTsKLSAgfQotfTsKLQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ3VzdG9tUGFy
YW1OYW1lRnVuY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZ1bmN0b3JOYW1p
bmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6c3RyaW5nKCJGdW5j
dG9yTmFtZSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0
b3IoKSk7Ci0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFsbEFsbG93ZWRDaGFyYWN0ZXJzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRnVuY3Rvck5hbWluZ1Rlc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZXMoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwMTIzNDU2Nzg5MF8iKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0b3IoKSk7Ci0KLWlubGluZSBz
dGQ6OnN0cmluZyBDdXN0b21QYXJhbU5hbWVGdW5jdGlvbigKLSAgICBjb25zdCA6OnRlc3Rpbmc6
OlRlc3RQYXJhbUluZm88c3RkOjpzdHJpbmc+JiBpbmZvKSB7Ci0gIHJldHVybiBpbmZvLnBhcmFt
OwotfQotCi1jbGFzcyBDdXN0b21GdW5jdGlvbk5hbWluZ1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQ
YXJhbTxzdGQ6OnN0cmluZz4ge307Ci1URVNUX1AoQ3VzdG9tRnVuY3Rpb25OYW1pbmdUZXN0LCBD
dXN0b21UZXN0TmFtZXMpIHt9Ci0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEN1c3RvbVBhcmFt
TmFtZUZ1bmN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRnVuY3Rpb25OYW1p
bmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6c3RyaW5nKCJGdW5j
dGlvbk5hbWUiKSksCi0gICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21QYXJhbU5hbWVGdW5j
dGlvbik7Ci0KLSNpZiBHVEVTVF9MQU5HX0NYWDExCi0KLS8vIFRlc3QgY3VzdG9tIG5hbWluZyB3
aXRoIGEgbGFtYmRhCi0KLWNsYXNzIEN1c3RvbUxhbWJkYU5hbWluZ1Rlc3QgOiBwdWJsaWMgVGVz
dFdpdGhQYXJhbTxzdGQ6OnN0cmluZz4ge307Ci1URVNUX1AoQ3VzdG9tTGFtYmRhTmFtaW5nVGVz
dCwgQ3VzdG9tVGVzdE5hbWVzKSB7fQotCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChDdXN0b21Q
YXJhbU5hbWVMYW1iZGEsCi0gICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21MYW1iZGFOYW1p
bmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6c3RyaW5nKCJMYW1i
ZGFOYW1lIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3QgOjp0ZXN0aW5nOjpU
ZXN0UGFyYW1JbmZvPHN0ZDo6c3RyaW5nPiYgdHBpbmZvKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0cGluZm8ucGFyYW07Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsK
LQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCi0KLVRFU1QoQ3VzdG9tTmFtaW5nVGVzdCwg
Q2hlY2tOYW1lUmVnaXN0cnkpIHsKLSAgOjp0ZXN0aW5nOjpVbml0VGVzdCogdW5pdF90ZXN0ID0g
Ojp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKLSAgc3RkOjpzZXQ8c3RkOjpzdHJp
bmc+IHRlc3RfbmFtZXM7Ci0gIGZvciAoaW50IGNhc2VfbnVtID0gMDsKLSAgICAgICBjYXNlX251
bSA8IHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jYXNlX2NvdW50KCk7Ci0gICAgICAgKytjYXNlX251
bSkgewotICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdENhc2UqIHRlc3RfY2FzZSA9IHVuaXRfdGVz
dC0+R2V0VGVzdENhc2UoY2FzZV9udW0pOwotICAgIGZvciAoaW50IHRlc3RfbnVtID0gMDsKLSAg
ICAgICAgIHRlc3RfbnVtIDwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCk7Ci0gICAgICAg
ICArK3Rlc3RfbnVtKSB7Ci0gICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiB0ZXN0X2lu
Zm8gPSB0ZXN0X2Nhc2UtPkdldFRlc3RJbmZvKHRlc3RfbnVtKTsKLSAgICAgIHRlc3RfbmFtZXMu
aW5zZXJ0KHN0ZDo6c3RyaW5nKHRlc3RfaW5mby0+bmFtZSgpKSk7Ci0gICAgfQotICB9Ci0gIEVY
UEVDVF9FUSgxdSwgdGVzdF9uYW1lcy5jb3VudCgiQ3VzdG9tVGVzdE5hbWVzL0Z1bmN0b3JOYW1l
IikpOwotICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9G
dW5jdGlvbk5hbWUiKSk7Ci0jaWYgR1RFU1RfTEFOR19DWFgxMQotICBFWFBFQ1RfRVEoMXUsIHRl
c3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9MYW1iZGFOYW1lIikpOwotI2VuZGlmICAv
LyBHVEVTVF9MQU5HX0NYWDExCi19Ci0KLS8vIFRlc3QgYSBudW1lcmljIG5hbWUgdG8gZW5zdXJl
IFByaW50VG9TdHJpbmdQYXJhbU5hbWUgd29ya3MgY29ycmVjdGx5LgotCi1jbGFzcyBDdXN0b21J
bnRlZ2VyTmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPGludD4ge307Ci0KLVRFU1Rf
UChDdXN0b21JbnRlZ2VyTmFtaW5nVGVzdCwgVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXMpIHsKLSAg
Y29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KLSAgICAgOjp0ZXN0
aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgTWVz
c2FnZSB0ZXN0X25hbWVfc3RyZWFtOwotICB0ZXN0X25hbWVfc3RyZWFtIDw8ICJUZXN0c1JlcG9y
dENvcnJlY3ROYW1lcy8iIDw8IEdldFBhcmFtKCk7Ci0gIEVYUEVDVF9TVFJFUSh0ZXN0X25hbWVf
c3RyZWFtLkdldFN0cmluZygpLmNfc3RyKCksIHRlc3RfaW5mby0+bmFtZSgpKTsKLX0KLQotSU5T
VEFOVElBVEVfVEVTVF9DQVNFX1AoUHJpbnRUb1N0cmluZywKLSAgICAgICAgICAgICAgICAgICAg
ICAgIEN1c3RvbUludGVnZXJOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgUmFu
Z2UoMCwgNSksCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJp
bmdQYXJhbU5hbWUoKSk7Ci0KLS8vIFRlc3QgYSBjdXN0b20gc3RydWN0IHdpdGggUHJpbnRUb1N0
cmluZy4KLQotc3RydWN0IEN1c3RvbVN0cnVjdCB7Ci0gIGV4cGxpY2l0IEN1c3RvbVN0cnVjdChp
bnQgdmFsdWUpIDogeCh2YWx1ZSkge30KLSAgaW50IHg7Ci19OwotCi1zdGQ6Om9zdHJlYW0mIG9w
ZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBzdHJlYW0sIGNvbnN0IEN1c3RvbVN0cnVjdCYgdmFsKSB7
Ci0gIHN0cmVhbSA8PCB2YWwueDsKLSAgcmV0dXJuIHN0cmVhbTsKLX0KLQotY2xhc3MgQ3VzdG9t
U3RydWN0TmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPEN1c3RvbVN0cnVjdD4ge307
Ci0KLVRFU1RfUChDdXN0b21TdHJ1Y3ROYW1pbmdUZXN0LCBUZXN0c1JlcG9ydENvcnJlY3ROYW1l
cykgewotICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAg
ICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygp
OwotICBNZXNzYWdlIHRlc3RfbmFtZV9zdHJlYW07Ci0gIHRlc3RfbmFtZV9zdHJlYW0gPDwgIlRl
c3RzUmVwb3J0Q29ycmVjdE5hbWVzLyIgPDwgR2V0UGFyYW0oKTsKLSAgRVhQRUNUX1NUUkVRKHRl
c3RfbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCkuY19zdHIoKSwgdGVzdF9pbmZvLT5uYW1lKCkpOwot
fQotCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChQcmludFRvU3RyaW5nLAotICAgICAgICAgICAg
ICAgICAgICAgICAgQ3VzdG9tU3RydWN0TmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlcyhDdXN0b21TdHJ1Y3QoMCksIEN1c3RvbVN0cnVjdCgxKSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7Ci0KLS8v
IFRlc3QgdGhhdCB1c2luZyBhIHN0YXRlZnVsIHBhcmFtZXRlciBuYW1pbmcgZnVuY3Rpb24gd29y
a3MgYXMgZXhwZWN0ZWQuCi0KLXN0cnVjdCBTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IgewotICBTdGF0
ZWZ1bE5hbWluZ0Z1bmN0b3IoKSA6IHN1bSgwKSB7fQotICBzdGQ6OnN0cmluZyBvcGVyYXRvcigp
KGNvbnN0IDo6dGVzdGluZzo6VGVzdFBhcmFtSW5mbzxpbnQ+JiBpbmZvKSB7Ci0gICAgaW50IHZh
bHVlID0gaW5mby5wYXJhbSArIHN1bTsKLSAgICBzdW0gKz0gaW5mby5wYXJhbTsKLSAgICByZXR1
cm4gOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHZhbHVlKTsKLSAgfQotICBpbnQgc3VtOwotfTsK
LQotY2xhc3MgU3RhdGVmdWxOYW1pbmdUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQ
YXJhbTxpbnQ+IHsKLSBwcm90ZWN0ZWQ6Ci0gIFN0YXRlZnVsTmFtaW5nVGVzdCgpIDogc3VtXygw
KSB7fQotICBpbnQgc3VtXzsKLX07Ci0KLVRFU1RfUChTdGF0ZWZ1bE5hbWluZ1Rlc3QsIFRlc3Rz
UmVwb3J0Q29ycmVjdE5hbWVzKSB7Ci0gIGNvbnN0IDo6dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0
IHRlc3RfaW5mbyA9Ci0gICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1
cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIHN1bV8gKz0gR2V0UGFyYW0oKTsKLSAgTWVzc2FnZSB0ZXN0
X25hbWVfc3RyZWFtOwotICB0ZXN0X25hbWVfc3RyZWFtIDw8ICJUZXN0c1JlcG9ydENvcnJlY3RO
YW1lcy8iIDw8IHN1bV87Ci0gIEVYUEVDVF9TVFJFUSh0ZXN0X25hbWVfc3RyZWFtLkdldFN0cmlu
ZygpLmNfc3RyKCksIHRlc3RfaW5mby0+bmFtZSgpKTsKLX0KLQotSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AoU3RhdGVmdWxOYW1pbmdGdW5jdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgU3Rh
dGVmdWxOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgUmFuZ2UoMCwgNSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IoKSk7Ci0KLS8vIENs
YXNzIHRoYXQgY2Fubm90IGJlIHN0cmVhbWVkIGludG8gYW4gb3N0cmVhbS4gIEl0IG5lZWRzIHRv
IGJlIGNvcHlhYmxlCi0vLyAoYW5kLCBpbiBjYXNlIG9mIE1TVkMsIGFsc28gYXNzaWduYWJsZSkg
aW4gb3JkZXIgdG8gYmUgYSB0ZXN0IHBhcmFtZXRlcgotLy8gdHlwZS4gIEl0cyBkZWZhdWx0IGNv
cHkgY29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IgZG8gZXhhY3RseQotLy8gd2hh
dCB3ZSBuZWVkLgotY2xhc3MgVW5zdHJlYW1hYmxlIHsKLSBwdWJsaWM6Ci0gIGV4cGxpY2l0IFVu
c3RyZWFtYWJsZShpbnQgdmFsdWUpIDogdmFsdWVfKHZhbHVlKSB7fQotCi0gcHJpdmF0ZToKLSAg
aW50IHZhbHVlXzsKLX07Ci0KLWNsYXNzIENvbW1lbnRUZXN0IDogcHVibGljIFRlc3RXaXRoUGFy
YW08VW5zdHJlYW1hYmxlPiB7fTsKLQotVEVTVF9QKENvbW1lbnRUZXN0LCBUZXN0c0NvcnJlY3Rs
eVJlcG9ydFVuc3RyZWFtYWJsZVBhcmFtcykgewotICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZv
KiBjb25zdCB0ZXN0X2luZm8gPQotICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5j
ZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotCi0gIEVYUEVDVF9FUSg6OnRlc3Rpbmc6OlByaW50
VG9TdHJpbmcoR2V0UGFyYW0oKSksIHRlc3RfaW5mby0+dmFsdWVfcGFyYW0oKSk7Ci19Ci0KLUlO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEluc3RhbnRpYXRpb25XaXRoQ29tbWVudHMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBDb21tZW50VGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlcyhVbnN0cmVhbWFibGUoMSkpKTsKLQotLy8gVmVyaWZ5IHRoYXQgd2UgY2FuIGNyZWF0ZSBh
IGhpZXJhcmNoeSBvZiB0ZXN0IGZpeHR1cmVzLCB3aGVyZSB0aGUgYmFzZQotLy8gY2xhc3MgZml4
dHVyZSBpcyBub3QgcGFyYW1ldGVyaXplZCBhbmQgdGhlIGRlcml2ZWQgY2xhc3MgaXMuIEluIHRo
aXMgY2FzZQotLy8gUGFyYW1ldGVyaXplZERlcml2ZWRUZXN0IGluaGVyaXRzIGZyb20gTm9uUGFy
YW1ldGVyaXplZEJhc2VUZXN0LiAgV2UKLS8vIHBlcmZvcm0gc2ltcGxlIHRlc3RzIG9uIGJvdGgu
Ci1jbGFzcyBOb25QYXJhbWV0ZXJpemVkQmFzZVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0
IHsKLSBwdWJsaWM6Ci0gIE5vblBhcmFtZXRlcml6ZWRCYXNlVGVzdCgpIDogbl8oMTcpIHsgfQot
IHByb3RlY3RlZDoKLSAgaW50IG5fOwotfTsKLQotY2xhc3MgUGFyYW1ldGVyaXplZERlcml2ZWRU
ZXN0IDogcHVibGljIE5vblBhcmFtZXRlcml6ZWRCYXNlVGVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxpbnQ+
IHsKLSBwcm90ZWN0ZWQ6Ci0gIFBhcmFtZXRlcml6ZWREZXJpdmVkVGVzdCgpIDogY291bnRfKDAp
IHsgfQotICBpbnQgY291bnRfOwotICBzdGF0aWMgaW50IGdsb2JhbF9jb3VudF87Ci19OwotCi1p
bnQgUGFyYW1ldGVyaXplZERlcml2ZWRUZXN0OjpnbG9iYWxfY291bnRfID0gMDsKLQotVEVTVF9G
KE5vblBhcmFtZXRlcml6ZWRCYXNlVGVzdCwgRml4dHVyZUlzSW5pdGlhbGl6ZWQpIHsKLSAgRVhQ
RUNUX0VRKDE3LCBuXyk7Ci19Ci0KLVRFU1RfUChQYXJhbWV0ZXJpemVkRGVyaXZlZFRlc3QsIFNl
ZXNTZXF1ZW5jZSkgewotICBFWFBFQ1RfRVEoMTcsIG5fKTsKLSAgRVhQRUNUX0VRKDAsIGNvdW50
XysrKTsKLSAgRVhQRUNUX0VRKEdldFBhcmFtKCksIGdsb2JhbF9jb3VudF8rKyk7Ci19Ci0KLWNs
YXNzIFBhcmFtZXRlcml6ZWREZWF0aFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBh
cmFtPGludD4geyB9OwotCi1URVNUX0YoUGFyYW1ldGVyaXplZERlYXRoVGVzdCwgR2V0UGFyYW1E
aWVzRnJvbVRlc3RGKSB7Ci0gIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoR2V0UGFyYW0oKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiogdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0
IC4qIik7Ci19Ci0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFJhbmdlWmVyb1RvRml2ZSwgUGFy
YW1ldGVyaXplZERlcml2ZWRUZXN0LCBSYW5nZSgwLCA1KSk7Ci0KLWludCBtYWluKGludCBhcmdj
LCBjaGFyICoqYXJndikgewotICAvLyBVc2VkIGluIFRlc3RHZW5lcmF0aW9uVGVzdCB0ZXN0IGNh
c2UuCi0gIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChUZXN0R2VuZXJhdGlvblRlc3Q6OkVudmly
b25tZW50OjpJbnN0YW5jZSgpKTsKLSAgLy8gVXNlZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVz
dCB0ZXN0IGNhc2UuIFRlc3RzIHRoYXQgdGhlIHVwZGF0ZWQgdmFsdWUKLSAgLy8gd2lsbCBiZSBw
aWNrZWQgdXAgZm9yIGluc3RhbnRpYXRpbmcgdGVzdHMgaW4gR2VuZXJhdG9yRXZhbHVhdGlvblRl
c3QuCi0gIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpzZXRfcGFyYW1fdmFsdWUoMSk7Ci0KLSAg
Ojp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0KLSAgLy8gVXNlZCBpbiBH
ZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0ZXN0IGNhc2UuIFRlc3RzIHRoYXQgdmFsdWUgdXBkYXRl
ZAotICAvLyBoZXJlIHdpbGwgTk9UIGJlIHVzZWQgZm9yIGluc3RhbnRpYXRpbmcgdGVzdHMgaW4K
LSAgLy8gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QuCi0gIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0
OjpzZXRfcGFyYW1fdmFsdWUoMik7Ci0KLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtcGFyYW0tdGVz
dF90ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LXBhcmFtLXRl
c3RfdGVzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDljMDg5ZDlmODRiZGI2
MWUxMmNiMTllZjRlZWQ4YzFkZjNmZGJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtcGFy
YW0tdGVzdF90ZXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAwOCwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8v
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlv
bi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8v
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yczogdmxhZGxA
Z29vZ2xlLmNvbSAoVmxhZCBMb3NldikKLS8vCi0vLyBUaGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZy
YW1ld29yayAoR29vZ2xlIFRlc3QpCi0vLwotLy8gVGhpcyBoZWFkZXIgZmlsZSBwcm92aWRlcyBj
bGFzc2VzIGFuZCBmdW5jdGlvbnMgdXNlZCBpbnRlcm5hbGx5Ci0vLyBmb3IgdGVzdGluZyBHb29n
bGUgVGVzdCBpdHNlbGYuCi0KLSNpZm5kZWYgR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RF
U1RfSF8KLSNkZWZpbmUgR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KLQotI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLS8vIFRlc3QgZml4dHVyZSBmb3IgdGVzdGluZyBkZWZp
bml0aW9uIGFuZCBpbnN0YW50aWF0aW9uIG9mIGEgdGVzdAotLy8gaW4gc2VwYXJhdGUgdHJhbnNs
YXRpb24gdW5pdHMuCi1jbGFzcyBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0IDogcHVibGljIDo6
dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHsKLX07Ci0KLS8vIFRlc3QgZml4dHVyZSBmb3Ig
dGVzdGluZyBpbnN0YW50aWF0aW9uIG9mIGEgdGVzdCBpbiBtdWx0aXBsZQotLy8gdHJhbnNsYXRp
b24gdW5pdHMuCi1jbGFzcyBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rl
c3QKLSAgICA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50PiB7Ci19OwotCi0j
ZW5kaWYgIC8vIEdURVNUX1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9URVNUX0hfCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LXBvcnRfdGVzdC5jYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtcG9ydF90ZXN0LmNjCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWQ0YWZjYTQ2ZjU5NzQ3NTBlODdjMjZmOGIxMDBjOWJj
MTQ0ZmM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtcG9ydF90ZXN0LmNjCisrKyAvZGV2
L251bGwKQEAgLTEsMTMwMyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4K
LS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yczogdmxhZGxAZ29vZ2xlLmNvbSAoVmxhZCBMb3Nl
diksIHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0vLwotLy8gVGhpcyBmaWxlIHRlc3Rz
IHRoZSBpbnRlcm5hbCBjcm9zcy1wbGF0Zm9ybSBzdXBwb3J0IHV0aWxpdGllcy4KLQotI2luY2x1
ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0K
LSNpZiBHVEVTVF9PU19NQUMKLSMgaW5jbHVkZSA8dGltZS5oPgotI2VuZGlmICAvLyBHVEVTVF9P
U19NQUMKLQotI2luY2x1ZGUgPGxpc3Q+Ci0jaW5jbHVkZSA8dXRpbGl0eT4gIC8vIEZvciBzdGQ6
OnBhaXIgYW5kIHN0ZDo6bWFrZV9wYWlyLgotI2luY2x1ZGUgPHZlY3Rvcj4KLQotI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiCi0jaW5jbHVkZSAi
c3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgotCi11c2luZyBzdGQ6Om1ha2VfcGFpcjsKLXVzaW5n
IHN0ZDo6cGFpcjsKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotbmFtZXNwYWNlIGludGVybmFsIHsK
LQotVEVTVChJc1hEaWdpdFRlc3QsIFdvcmtzRm9yTmFycm93QXNjaWkpIHsKLSAgRVhQRUNUX1RS
VUUoSXNYRGlnaXQoJzAnKSk7Ci0gIEVYUEVDVF9UUlVFKElzWERpZ2l0KCc5JykpOwotICBFWFBF
Q1RfVFJVRShJc1hEaWdpdCgnQScpKTsKLSAgRVhQRUNUX1RSVUUoSXNYRGlnaXQoJ0YnKSk7Ci0g
IEVYUEVDVF9UUlVFKElzWERpZ2l0KCdhJykpOwotICBFWFBFQ1RfVFJVRShJc1hEaWdpdCgnZicp
KTsKLQotICBFWFBFQ1RfRkFMU0UoSXNYRGlnaXQoJy0nKSk7Ci0gIEVYUEVDVF9GQUxTRShJc1hE
aWdpdCgnZycpKTsKLSAgRVhQRUNUX0ZBTFNFKElzWERpZ2l0KCdHJykpOwotfQotCi1URVNUKElz
WERpZ2l0VGVzdCwgUmV0dXJuc0ZhbHNlRm9yTmFycm93Tm9uQXNjaWkpIHsKLSAgRVhQRUNUX0ZB
TFNFKElzWERpZ2l0KHN0YXRpY19jYXN0PGNoYXI+KDB4ODApKSk7Ci0gIEVYUEVDVF9GQUxTRShJ
c1hEaWdpdChzdGF0aWNfY2FzdDxjaGFyPignMCcgfCAweDgwKSkpOwotfQotCi1URVNUKElzWERp
Z2l0VGVzdCwgV29ya3NGb3JXaWRlQXNjaWkpIHsKLSAgRVhQRUNUX1RSVUUoSXNYRGlnaXQoTCcw
JykpOwotICBFWFBFQ1RfVFJVRShJc1hEaWdpdChMJzknKSk7Ci0gIEVYUEVDVF9UUlVFKElzWERp
Z2l0KEwnQScpKTsKLSAgRVhQRUNUX1RSVUUoSXNYRGlnaXQoTCdGJykpOwotICBFWFBFQ1RfVFJV
RShJc1hEaWdpdChMJ2EnKSk7Ci0gIEVYUEVDVF9UUlVFKElzWERpZ2l0KEwnZicpKTsKLQotICBF
WFBFQ1RfRkFMU0UoSXNYRGlnaXQoTCctJykpOwotICBFWFBFQ1RfRkFMU0UoSXNYRGlnaXQoTCdn
JykpOwotICBFWFBFQ1RfRkFMU0UoSXNYRGlnaXQoTCdHJykpOwotfQotCi1URVNUKElzWERpZ2l0
VGVzdCwgUmV0dXJuc0ZhbHNlRm9yV2lkZU5vbkFzY2lpKSB7Ci0gIEVYUEVDVF9GQUxTRShJc1hE
aWdpdChzdGF0aWNfY2FzdDx3Y2hhcl90PigweDgwKSkpOwotICBFWFBFQ1RfRkFMU0UoSXNYRGln
aXQoc3RhdGljX2Nhc3Q8d2NoYXJfdD4oTCcwJyB8IDB4ODApKSk7Ci0gIEVYUEVDVF9GQUxTRShJ
c1hEaWdpdChzdGF0aWNfY2FzdDx3Y2hhcl90PihMJzAnIHwgMHgxMDApKSk7Ci19Ci0KLWNsYXNz
IEJhc2UgewotIHB1YmxpYzoKLSAgLy8gQ29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBv
cGVyYXRvciBkbyBleGFjdGx5IHdoYXQgd2UgbmVlZCwgc28gd2UKLSAgLy8gdXNlIHRoZW0uCi0g
IEJhc2UoKSA6IG1lbWJlcl8oMCkge30KLSAgZXhwbGljaXQgQmFzZShpbnQgbikgOiBtZW1iZXJf
KG4pIHt9Ci0gIHZpcnR1YWwgfkJhc2UoKSB7fQotICBpbnQgbWVtYmVyKCkgeyByZXR1cm4gbWVt
YmVyXzsgfQotCi0gcHJpdmF0ZToKLSAgaW50IG1lbWJlcl87Ci19OwotCi1jbGFzcyBEZXJpdmVk
IDogcHVibGljIEJhc2UgewotIHB1YmxpYzoKLSAgZXhwbGljaXQgRGVyaXZlZChpbnQgbikgOiBC
YXNlKG4pIHt9Ci19OwotCi1URVNUKEltcGxpY2l0Q2FzdFRlc3QsIENvbnZlcnRzUG9pbnRlcnMp
IHsKLSAgRGVyaXZlZCBkZXJpdmVkKDApOwotICBFWFBFQ1RfVFJVRSgmZGVyaXZlZCA9PSA6OnRl
c3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENhc3RfPEJhc2UqPigmZGVyaXZlZCkpOwotfQotCi1U
RVNUKEltcGxpY2l0Q2FzdFRlc3QsIENhblVzZUluaGVyaXRhbmNlKSB7Ci0gIERlcml2ZWQgZGVy
aXZlZCgxKTsKLSAgQmFzZSBiYXNlID0gOjp0ZXN0aW5nOjppbnRlcm5hbDo6SW1wbGljaXRDYXN0
XzxCYXNlPihkZXJpdmVkKTsKLSAgRVhQRUNUX0VRKGRlcml2ZWQubWVtYmVyKCksIGJhc2UubWVt
YmVyKCkpOwotfQotCi1jbGFzcyBDYXN0YWJsZSB7Ci0gcHVibGljOgotICBleHBsaWNpdCBDYXN0
YWJsZShib29sKiBjb252ZXJ0ZWQpIDogY29udmVydGVkXyhjb252ZXJ0ZWQpIHt9Ci0gIG9wZXJh
dG9yIEJhc2UoKSB7Ci0gICAgKmNvbnZlcnRlZF8gPSB0cnVlOwotICAgIHJldHVybiBCYXNlKCk7
Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGJvb2wqIGNvbnZlcnRlZF87Ci19OwotCi1URVNUKEltcGxp
Y2l0Q2FzdFRlc3QsIENhblVzZU5vbkNvbnN0Q2FzdE9wZXJhdG9yKSB7Ci0gIGJvb2wgY29udmVy
dGVkID0gZmFsc2U7Ci0gIENhc3RhYmxlIGNhc3RhYmxlKCZjb252ZXJ0ZWQpOwotICBCYXNlIGJh
c2UgPSA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENhc3RfPEJhc2U+KGNhc3RhYmxlKTsK
LSAgRVhQRUNUX1RSVUUoY29udmVydGVkKTsKLX0KLQotY2xhc3MgQ29uc3RDYXN0YWJsZSB7Ci0g
cHVibGljOgotICBleHBsaWNpdCBDb25zdENhc3RhYmxlKGJvb2wqIGNvbnZlcnRlZCkgOiBjb252
ZXJ0ZWRfKGNvbnZlcnRlZCkge30KLSAgb3BlcmF0b3IgQmFzZSgpIGNvbnN0IHsKLSAgICAqY29u
dmVydGVkXyA9IHRydWU7Ci0gICAgcmV0dXJuIEJhc2UoKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAg
Ym9vbCogY29udmVydGVkXzsKLX07Ci0KLVRFU1QoSW1wbGljaXRDYXN0VGVzdCwgQ2FuVXNlQ29u
c3RDYXN0T3BlcmF0b3JPbkNvbnN0VmFsdWVzKSB7Ci0gIGJvb2wgY29udmVydGVkID0gZmFsc2U7
Ci0gIGNvbnN0IENvbnN0Q2FzdGFibGUgY29uc3RfY2FzdGFibGUoJmNvbnZlcnRlZCk7Ci0gIEJh
c2UgYmFzZSA9IDo6dGVzdGluZzo6aW50ZXJuYWw6OkltcGxpY2l0Q2FzdF88QmFzZT4oY29uc3Rf
Y2FzdGFibGUpOwotICBFWFBFQ1RfVFJVRShjb252ZXJ0ZWQpOwotfQotCi1jbGFzcyBDb25zdEFu
ZE5vbkNvbnN0Q2FzdGFibGUgewotIHB1YmxpYzoKLSAgQ29uc3RBbmROb25Db25zdENhc3RhYmxl
KGJvb2wqIGNvbnZlcnRlZCwgYm9vbCogY29uc3RfY29udmVydGVkKQotICAgICAgOiBjb252ZXJ0
ZWRfKGNvbnZlcnRlZCksIGNvbnN0X2NvbnZlcnRlZF8oY29uc3RfY29udmVydGVkKSB7fQotICBv
cGVyYXRvciBCYXNlKCkgewotICAgICpjb252ZXJ0ZWRfID0gdHJ1ZTsKLSAgICByZXR1cm4gQmFz
ZSgpOwotICB9Ci0gIG9wZXJhdG9yIEJhc2UoKSBjb25zdCB7Ci0gICAgKmNvbnN0X2NvbnZlcnRl
ZF8gPSB0cnVlOwotICAgIHJldHVybiBCYXNlKCk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGJvb2wq
IGNvbnZlcnRlZF87Ci0gIGJvb2wqIGNvbnN0X2NvbnZlcnRlZF87Ci19OwotCi1URVNUKEltcGxp
Y2l0Q2FzdFRlc3QsIENhblNlbGVjdEJldHdlZW5Db25zdEFuZE5vbkNvbnN0Q2FzckFwcHJvcHJp
YXRlbHkpIHsKLSAgYm9vbCBjb252ZXJ0ZWQgPSBmYWxzZTsKLSAgYm9vbCBjb25zdF9jb252ZXJ0
ZWQgPSBmYWxzZTsKLSAgQ29uc3RBbmROb25Db25zdENhc3RhYmxlIGNhc3RhYmxlKCZjb252ZXJ0
ZWQsICZjb25zdF9jb252ZXJ0ZWQpOwotICBCYXNlIGJhc2UgPSA6OnRlc3Rpbmc6OmludGVybmFs
OjpJbXBsaWNpdENhc3RfPEJhc2U+KGNhc3RhYmxlKTsKLSAgRVhQRUNUX1RSVUUoY29udmVydGVk
KTsKLSAgRVhQRUNUX0ZBTFNFKGNvbnN0X2NvbnZlcnRlZCk7Ci0KLSAgY29udmVydGVkID0gZmFs
c2U7Ci0gIGNvbnN0X2NvbnZlcnRlZCA9IGZhbHNlOwotICBjb25zdCBDb25zdEFuZE5vbkNvbnN0
Q2FzdGFibGUgY29uc3RfY2FzdGFibGUoJmNvbnZlcnRlZCwgJmNvbnN0X2NvbnZlcnRlZCk7Ci0g
IGJhc2UgPSA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENhc3RfPEJhc2U+KGNvbnN0X2Nh
c3RhYmxlKTsKLSAgRVhQRUNUX0ZBTFNFKGNvbnZlcnRlZCk7Ci0gIEVYUEVDVF9UUlVFKGNvbnN0
X2NvbnZlcnRlZCk7Ci19Ci0KLWNsYXNzIFRvIHsKLSBwdWJsaWM6Ci0gIFRvKGJvb2wqIGNvbnZl
cnRlZCkgeyAqY29udmVydGVkID0gdHJ1ZTsgfSAgLy8gTk9MSU5UCi19OwotCi1URVNUKEltcGxp
Y2l0Q2FzdFRlc3QsIENhblVzZUltcGxpY2l0Q29uc3RydWN0b3IpIHsKLSAgYm9vbCBjb252ZXJ0
ZWQgPSBmYWxzZTsKLSAgVG8gdG8gPSA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENhc3Rf
PFRvPigmY29udmVydGVkKTsKLSAgKHZvaWQpdG87Ci0gIEVYUEVDVF9UUlVFKGNvbnZlcnRlZCk7
Ci19Ci0KLVRFU1QoSXRlcmF0b3JUcmFpdHNUZXN0LCBXb3Jrc0ZvclNUTENvbnRhaW5lckl0ZXJh
dG9ycykgewotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50LAotICAgICAgSXRlcmF0b3JUcmFpdHM8
IDo6c3RkOjp2ZWN0b3I8aW50Pjo6Y29uc3RfaXRlcmF0b3I+Ojp2YWx1ZV90eXBlPigpOwotICBT
dGF0aWNBc3NlcnRUeXBlRXE8Ym9vbCwKLSAgICAgIEl0ZXJhdG9yVHJhaXRzPCA6OnN0ZDo6bGlz
dDxib29sPjo6aXRlcmF0b3I+Ojp2YWx1ZV90eXBlPigpOwotfQotCi1URVNUKEl0ZXJhdG9yVHJh
aXRzVGVzdCwgV29ya3NGb3JQb2ludGVyVG9Ob25Db25zdCkgewotICBTdGF0aWNBc3NlcnRUeXBl
RXE8Y2hhciwgSXRlcmF0b3JUcmFpdHM8Y2hhcio+Ojp2YWx1ZV90eXBlPigpOwotICBTdGF0aWNB
c3NlcnRUeXBlRXE8Y29uc3Qgdm9pZCosIEl0ZXJhdG9yVHJhaXRzPGNvbnN0IHZvaWQqKj46OnZh
bHVlX3R5cGU+KCk7Ci19Ci0KLVRFU1QoSXRlcmF0b3JUcmFpdHNUZXN0LCBXb3Jrc0ZvclBvaW50
ZXJUb0NvbnN0KSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxjaGFyLCBJdGVyYXRvclRyYWl0czxj
b25zdCBjaGFyKj46OnZhbHVlX3R5cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxjb25zdCB2
b2lkKiwKLSAgICAgIEl0ZXJhdG9yVHJhaXRzPGNvbnN0IHZvaWQqIGNvbnN0Kj46OnZhbHVlX3R5
cGU+KCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIGVsZW1lbnRfdHlwZSB0eXBlZGVmIGlzIGF2
YWlsYWJsZSBpbiBzY29wZWRfcHRyIGFuZCByZWZlcnMKLS8vIHRvIHRoZSBwYXJhbWV0ZXIgdHlw
ZS4KLVRFU1QoU2NvcGVkUHRyVGVzdCwgRGVmaW5lc0VsZW1lbnRUeXBlKSB7Ci0gIFN0YXRpY0Fz
c2VydFR5cGVFcTxpbnQsIDo6dGVzdGluZzo6aW50ZXJuYWw6OnNjb3BlZF9wdHI8aW50Pjo6ZWxl
bWVudF90eXBlPigpOwotfQotCi0vLyBUT0RPKHZsYWRsQGdvb2dsZS5jb20pOiBJbXBsZW1lbnQg
VEhFIFJFU1Qgb2Ygc2NvcGVkX3B0ciB0ZXN0cy4KLQotVEVTVChHdGVzdENoZWNrU3ludGF4VGVz
dCwgQmVoYXZlc0xpa2VBU2luZ2xlU3RhdGVtZW50KSB7Ci0gIGlmIChBbHdheXNGYWxzZSgpKQot
ICAgIEdURVNUX0NIRUNLXyhmYWxzZSkgPDwgIlRoaXMgc2hvdWxkIG5ldmVyIGJlIGV4ZWN1dGVk
OyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiSXQncyBhIGNvbXBpbGF0aW9uIHRlc3Qg
b25seS4iOwotCi0gIGlmIChBbHdheXNUcnVlKCkpCi0gICAgR1RFU1RfQ0hFQ0tfKHRydWUpOwot
ICBlbHNlCi0gICAgOyAgLy8gTk9MSU5UCi0KLSAgaWYgKEFsd2F5c0ZhbHNlKCkpCi0gICAgOyAg
Ly8gTk9MSU5UCi0gIGVsc2UKLSAgICBHVEVTVF9DSEVDS18odHJ1ZSkgPDwgIiI7Ci19Ci0KLVRF
U1QoR3Rlc3RDaGVja1N5bnRheFRlc3QsIFdvcmtzV2l0aFN3aXRjaCkgewotICBzd2l0Y2ggKDAp
IHsKLSAgICBjYXNlIDE6Ci0gICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgR1RFU1Rf
Q0hFQ0tfKHRydWUpOwotICB9Ci0KLSAgc3dpdGNoICgwKQotICAgIGNhc2UgMDoKLSAgICAgIEdU
RVNUX0NIRUNLXyh0cnVlKSA8PCAiQ2hlY2sgZmFpbGVkIGluIHN3aXRjaCBjYXNlIjsKLX0KLQot
Ly8gVmVyaWZpZXMgYmVoYXZpb3Igb2YgRm9ybWF0RmlsZUxvY2F0aW9uLgotVEVTVChGb3JtYXRG
aWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzRmlsZUxvY2F0aW9uKSB7Ci0gIEVYUEVDVF9QUkVEX0ZP
Uk1BVDIoSXNTdWJzdHJpbmcsICJmb28uY2MiLCBGb3JtYXRGaWxlTG9jYXRpb24oImZvby5jYyIs
IDQyKSk7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoSXNTdWJzdHJpbmcsICI0MiIsIEZvcm1hdEZp
bGVMb2NhdGlvbigiZm9vLmNjIiwgNDIpKTsKLX0KLQotVEVTVChGb3JtYXRGaWxlTG9jYXRpb25U
ZXN0LCBGb3JtYXRzVW5rbm93bkZpbGUpIHsKLSAgRVhQRUNUX1BSRURfRk9STUFUMigKLSAgICAg
IElzU3Vic3RyaW5nLCAidW5rbm93biBmaWxlIiwgRm9ybWF0RmlsZUxvY2F0aW9uKE5VTEwsIDQy
KSk7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoSXNTdWJzdHJpbmcsICI0MiIsIEZvcm1hdEZpbGVM
b2NhdGlvbihOVUxMLCA0MikpOwotfQotCi1URVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZv
cm1hdHNVa25vd25MaW5lKSB7Ci0gIEVYUEVDVF9FUSgiZm9vLmNjOiIsIEZvcm1hdEZpbGVMb2Nh
dGlvbigiZm9vLmNjIiwgLTEpKTsKLX0KLQotVEVTVChGb3JtYXRGaWxlTG9jYXRpb25UZXN0LCBG
b3JtYXRzVWtub3duRmlsZUFuZExpbmUpIHsKLSAgRVhQRUNUX0VRKCJ1bmtub3duIGZpbGU6Iiwg
Rm9ybWF0RmlsZUxvY2F0aW9uKE5VTEwsIC0xKSk7Ci19Ci0KLS8vIFZlcmlmaWVzIGJlaGF2aW9y
IG9mIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24uCi1URVNUKEZvcm1hdENv
bXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzRmlsZUxvY2F0aW9uKSB7
Ci0gIEVYUEVDVF9FUSgiZm9vLmNjOjQyIiwgRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVM
b2NhdGlvbigiZm9vLmNjIiwgNDIpKTsKLX0KLQotVEVTVChGb3JtYXRDb21waWxlckluZGVwZW5k
ZW50RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vrbm93bkZpbGUpIHsKLSAgRVhQRUNUX0VRKCJ1
bmtub3duIGZpbGU6NDIiLAotICAgICAgICAgICAgRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZp
bGVMb2NhdGlvbihOVUxMLCA0MikpOwotfQotCi1URVNUKEZvcm1hdENvbXBpbGVySW5kZXBlbmRl
bnRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzVWtub3duTGluZSkgewotICBFWFBFQ1RfRVEoImZv
by5jYyIsIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24oImZvby5jYyIsIC0x
KSk7Ci19Ci0KLVRFU1QoRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvblRlc3Qs
IEZvcm1hdHNVa25vd25GaWxlQW5kTGluZSkgewotICBFWFBFQ1RfRVEoInVua25vd24gZmlsZSIs
IEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24oTlVMTCwgLTEpKTsKLX0KLQot
I2lmIEdURVNUX09TX0xJTlVYIHx8IEdURVNUX09TX01BQyB8fCBHVEVTVF9PU19RTlgKLXZvaWQq
IFRocmVhZEZ1bmModm9pZCogZGF0YSkgewotICBpbnRlcm5hbDo6TXV0ZXgqIG11dGV4ID0gc3Rh
dGljX2Nhc3Q8aW50ZXJuYWw6Ok11dGV4Kj4oZGF0YSk7Ci0gIG11dGV4LT5Mb2NrKCk7Ci0gIG11
dGV4LT5VbmxvY2soKTsKLSAgcmV0dXJuIE5VTEw7Ci19Ci0KLVRFU1QoR2V0VGhyZWFkQ291bnRU
ZXN0LCBSZXR1cm5zQ29ycmVjdFZhbHVlKSB7Ci0gIGNvbnN0IHNpemVfdCBzdGFydGluZ19jb3Vu
dCA9IEdldFRocmVhZENvdW50KCk7Ci0gIHB0aHJlYWRfdCAgICAgICB0aHJlYWRfaWQ7Ci0KLSAg
aW50ZXJuYWw6Ok11dGV4IG11dGV4OwotICB7Ci0gICAgaW50ZXJuYWw6Ok11dGV4TG9jayBsb2Nr
KCZtdXRleCk7Ci0gICAgcHRocmVhZF9hdHRyX3QgIGF0dHI7Ci0gICAgQVNTRVJUX0VRKDAsIHB0
aHJlYWRfYXR0cl9pbml0KCZhdHRyKSk7Ci0gICAgQVNTRVJUX0VRKDAsIHB0aHJlYWRfYXR0cl9z
ZXRkZXRhY2hzdGF0ZSgmYXR0ciwgUFRIUkVBRF9DUkVBVEVfSk9JTkFCTEUpKTsKLQotICAgIGNv
bnN0IGludCBzdGF0dXMgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkX2lkLCAmYXR0ciwgJlRocmVh
ZEZ1bmMsICZtdXRleCk7Ci0gICAgQVNTRVJUX0VRKDAsIHB0aHJlYWRfYXR0cl9kZXN0cm95KCZh
dHRyKSk7Ci0gICAgQVNTRVJUX0VRKDAsIHN0YXR1cyk7Ci0gICAgRVhQRUNUX0VRKHN0YXJ0aW5n
X2NvdW50ICsgMSwgR2V0VGhyZWFkQ291bnQoKSk7Ci0gIH0KLQotICB2b2lkKiBkdW1teTsKLSAg
QVNTRVJUX0VRKDAsIHB0aHJlYWRfam9pbih0aHJlYWRfaWQsICZkdW1teSkpOwotCi0gIC8vIFRo
ZSBPUyBtYXkgbm90IGltbWVkaWF0ZWx5IHJlcG9ydCB0aGUgdXBkYXRlZCB0aHJlYWQgY291bnQg
YWZ0ZXIKLSAgLy8gam9pbmluZyBhIHRocmVhZCwgY2F1c2luZyBmbGFraW5lc3MgaW4gdGhpcyB0
ZXN0LiBUbyBjb3VudGVyIHRoYXQsIHdlCi0gIC8vIHdhaXQgZm9yIHVwIHRvIC41IHNlY29uZHMg
Zm9yIHRoZSBPUyB0byByZXBvcnQgdGhlIGNvcnJlY3QgdmFsdWUuCi0gIGZvciAoaW50IGkgPSAw
OyBpIDwgNTsgKytpKSB7Ci0gICAgaWYgKEdldFRocmVhZENvdW50KCkgPT0gc3RhcnRpbmdfY291
bnQpCi0gICAgICBicmVhazsKLQotICAgIFNsZWVwTWlsbGlzZWNvbmRzKDEwMCk7Ci0gIH0KLQot
ICBFWFBFQ1RfRVEoc3RhcnRpbmdfY291bnQsIEdldFRocmVhZENvdW50KCkpOwotfQotI2Vsc2UK
LVRFU1QoR2V0VGhyZWFkQ291bnRUZXN0LCBSZXR1cm5zWmVyb1doZW5VbmFibGVUb0NvdW50VGhy
ZWFkcykgewotICBFWFBFQ1RfRVEoMFUsIEdldFRocmVhZENvdW50KCkpOwotfQotI2VuZGlmICAv
LyBHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfUU5YCi0KLVRFU1Qo
R3Rlc3RDaGVja0RlYXRoVGVzdCwgRGllc1dpdGhDb3JyZWN0T3V0cHV0T25GYWlsdXJlKSB7Ci0g
IGNvbnN0IGJvb2wgYV9mYWxzZV9jb25kaXRpb24gPSBmYWxzZTsKLSAgY29uc3QgY2hhciByZWdl
eFtdID0KLSNpZmRlZiBfTVNDX1ZFUgotICAgICAiZ3Rlc3QtcG9ydF90ZXN0XFwuY2NcXChcXGQr
XFwpOiIKLSNlbGlmIEdURVNUX1VTRVNfUE9TSVhfUkUKLSAgICAgImd0ZXN0LXBvcnRfdGVzdFxc
LmNjOlswLTldKyIKLSNlbHNlCi0gICAgICJndGVzdC1wb3J0X3Rlc3RcXC5jYzpcXGQrIgotI2Vu
ZGlmICAvLyBfTVNDX1ZFUgotICAgICAiLiphX2ZhbHNlX2NvbmRpdGlvbi4qRXh0cmEgaW5mby4q
IjsKLQotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKEdURVNUX0NIRUNLXyhhX2ZhbHNlX2Nv
bmRpdGlvbikgPDwgIkV4dHJhIGluZm8iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Z2V4KTsKLX0KLQotI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCi0KLVRFU1QoR3Rlc3RDaGVja0Rl
YXRoVGVzdCwgTGl2ZXNTaWxlbnRseU9uU3VjY2VzcykgewotICBFWFBFQ1RfRVhJVCh7Ci0gICAg
ICBHVEVTVF9DSEVDS18odHJ1ZSkgPDwgIkV4dHJhIGluZm8iOwotICAgICAgOjpzdGQ6OmNlcnIg
PDwgIlN1Y2Nlc3NcbiI7Ci0gICAgICBleGl0KDApOyB9LAotICAgICAgOjp0ZXN0aW5nOjpFeGl0
ZWRXaXRoQ29kZSgwKSwgIlN1Y2Nlc3MiKTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfREVB
VEhfVEVTVAotCi0vLyBWZXJpZmllcyB0aGF0IEdvb2dsZSBUZXN0IGNob29zZSByZWd1bGFyIGV4
cHJlc3Npb24gZW5naW5lIGFwcHJvcHJpYXRlIHRvCi0vLyB0aGUgcGxhdGZvcm0uIFRoZSB0ZXN0
IHdpbGwgcHJvZHVjZSBjb21waWxlciBlcnJvcnMgaW4gY2FzZSBvZiBmYWlsdXJlLgotLy8gRm9y
IHNpbXBsaWNpdHksIHdlIG9ubHkgY292ZXIgdGhlIG1vc3QgaW1wb3J0YW50IHBsYXRmb3JtcyBo
ZXJlLgotVEVTVChSZWdleEVuZ2luZVNlbGVjdGlvblRlc3QsIFNlbGVjdHNDb3JyZWN0UmVnZXhF
bmdpbmUpIHsKLSNpZiAhR1RFU1RfVVNFU19QQ1JFCi0jIGlmIEdURVNUX0hBU19QT1NJWF9SRQot
Ci0gIEVYUEVDVF9UUlVFKEdURVNUX1VTRVNfUE9TSVhfUkUpOwotCi0jIGVsc2UKLQotICBFWFBF
Q1RfVFJVRShHVEVTVF9VU0VTX1NJTVBMRV9SRSk7Ci0KLSMgZW5kaWYKLSNlbmRpZiAgLy8gIUdU
RVNUX1VTRVNfUENSRQotfQotCi0jaWYgR1RFU1RfVVNFU19QT1NJWF9SRQotCi0jIGlmIEdURVNU
X0hBU19UWVBFRF9URVNUCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBTdHI+Ci1jbGFzcyBSRVRlc3Qg
OiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OwotCi0vLyBEZWZpbmVzIFN0cmluZ1R5cGVzIGFz
IHRoZSBsaXN0IG9mIGFsbCBzdHJpbmcgdHlwZXMgdGhhdCBjbGFzcyBSRQotLy8gc3VwcG9ydHMu
Ci10eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPAotICAgIDo6c3RkOjpzdHJpbmcsCi0jICBpZiBHVEVT
VF9IQVNfR0xPQkFMX1NUUklORwotICAgIDo6c3RyaW5nLAotIyAgZW5kaWYgIC8vIEdURVNUX0hB
U19HTE9CQUxfU1RSSU5HCi0gICAgY29uc3QgY2hhcio+IFN0cmluZ1R5cGVzOwotCi1UWVBFRF9U
RVNUX0NBU0UoUkVUZXN0LCBTdHJpbmdUeXBlcyk7Ci0KLS8vIFRlc3RzIFJFJ3MgaW1wbGljaXQg
Y29uc3RydWN0b3JzLgotVFlQRURfVEVTVChSRVRlc3QsIEltcGxpY2l0Q29uc3RydWN0b3JXb3Jr
cykgewotICBjb25zdCBSRSBlbXB0eShUeXBlUGFyYW0oIiIpKTsKLSAgRVhQRUNUX1NUUkVRKCIi
LCBlbXB0eS5wYXR0ZXJuKCkpOwotCi0gIGNvbnN0IFJFIHNpbXBsZShUeXBlUGFyYW0oImhlbGxv
IikpOwotICBFWFBFQ1RfU1RSRVEoImhlbGxvIiwgc2ltcGxlLnBhdHRlcm4oKSk7Ci0KLSAgY29u
c3QgUkUgbm9ybWFsKFR5cGVQYXJhbSgiLiooXFx3KykiKSk7Ci0gIEVYUEVDVF9TVFJFUSgiLioo
XFx3KykiLCBub3JtYWwucGF0dGVybigpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBSRSdzIGNvbnN0
cnVjdG9ycyByZWplY3QgaW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb25zLgotVFlQRURfVEVTVChS
RVRlc3QsIFJlamVjdHNJbnZhbGlkUmVnZXgpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
ewotICAgIGNvbnN0IFJFIGludmFsaWQoVHlwZVBhcmFtKCI/IikpOwotICB9LCAiXCI/XCIgaXMg
bm90IGEgdmFsaWQgUE9TSVggRXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9uLiIpOwotfQotCi0v
LyBUZXN0cyBSRTo6RnVsbE1hdGNoKCkuCi1UWVBFRF9URVNUKFJFVGVzdCwgRnVsbE1hdGNoV29y
a3MpIHsKLSAgY29uc3QgUkUgZW1wdHkoVHlwZVBhcmFtKCIiKSk7Ci0gIEVYUEVDVF9UUlVFKFJF
OjpGdWxsTWF0Y2goVHlwZVBhcmFtKCIiKSwgZW1wdHkpKTsKLSAgRVhQRUNUX0ZBTFNFKFJFOjpG
dWxsTWF0Y2goVHlwZVBhcmFtKCJhIiksIGVtcHR5KSk7Ci0KLSAgY29uc3QgUkUgcmUoVHlwZVBh
cmFtKCJhLip6IikpOwotICBFWFBFQ1RfVFJVRShSRTo6RnVsbE1hdGNoKFR5cGVQYXJhbSgiYXoi
KSwgcmUpKTsKLSAgRVhQRUNUX1RSVUUoUkU6OkZ1bGxNYXRjaChUeXBlUGFyYW0oImF4eXoiKSwg
cmUpKTsKLSAgRVhQRUNUX0ZBTFNFKFJFOjpGdWxsTWF0Y2goVHlwZVBhcmFtKCJiYXoiKSwgcmUp
KTsKLSAgRVhQRUNUX0ZBTFNFKFJFOjpGdWxsTWF0Y2goVHlwZVBhcmFtKCJhenkiKSwgcmUpKTsK
LX0KLQotLy8gVGVzdHMgUkU6OlBhcnRpYWxNYXRjaCgpLgotVFlQRURfVEVTVChSRVRlc3QsIFBh
cnRpYWxNYXRjaFdvcmtzKSB7Ci0gIGNvbnN0IFJFIGVtcHR5KFR5cGVQYXJhbSgiIikpOwotICBF
WFBFQ1RfVFJVRShSRTo6UGFydGlhbE1hdGNoKFR5cGVQYXJhbSgiIiksIGVtcHR5KSk7Ci0gIEVY
UEVDVF9UUlVFKFJFOjpQYXJ0aWFsTWF0Y2goVHlwZVBhcmFtKCJhIiksIGVtcHR5KSk7Ci0KLSAg
Y29uc3QgUkUgcmUoVHlwZVBhcmFtKCJhLip6IikpOwotICBFWFBFQ1RfVFJVRShSRTo6UGFydGlh
bE1hdGNoKFR5cGVQYXJhbSgiYXoiKSwgcmUpKTsKLSAgRVhQRUNUX1RSVUUoUkU6OlBhcnRpYWxN
YXRjaChUeXBlUGFyYW0oImF4eXoiKSwgcmUpKTsKLSAgRVhQRUNUX1RSVUUoUkU6OlBhcnRpYWxN
YXRjaChUeXBlUGFyYW0oImJheiIpLCByZSkpOwotICBFWFBFQ1RfVFJVRShSRTo6UGFydGlhbE1h
dGNoKFR5cGVQYXJhbSgiYXp5IiksIHJlKSk7Ci0gIEVYUEVDVF9GQUxTRShSRTo6UGFydGlhbE1h
dGNoKFR5cGVQYXJhbSgienphIiksIHJlKSk7Ci19Ci0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19U
WVBFRF9URVNUCi0KLSNlbGlmIEdURVNUX1VTRVNfU0lNUExFX1JFCi0KLVRFU1QoSXNJblNldFRl
c3QsIE51bENoYXJJc05vdEluQW55U2V0KSB7Ci0gIEVYUEVDVF9GQUxTRShJc0luU2V0KCdcMCcs
ICIiKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0luU2V0KCdcMCcsICJcMCIpKTsKLSAgRVhQRUNUX0ZB
TFNFKElzSW5TZXQoJ1wwJywgImEiKSk7Ci19Ci0KLVRFU1QoSXNJblNldFRlc3QsIFdvcmtzRm9y
Tm9uTnVsQ2hhcnMpIHsKLSAgRVhQRUNUX0ZBTFNFKElzSW5TZXQoJ2EnLCAiQWIiKSk7Ci0gIEVY
UEVDVF9GQUxTRShJc0luU2V0KCdjJywgIiIpKTsKLQotICBFWFBFQ1RfVFJVRShJc0luU2V0KCdi
JywgImJjZCIpKTsKLSAgRVhQRUNUX1RSVUUoSXNJblNldCgnYicsICJhYiIpKTsKLX0KLQotVEVT
VChJc0FzY2lpRGlnaXRUZXN0LCBJc0ZhbHNlRm9yTm9uRGlnaXQpIHsKLSAgRVhQRUNUX0ZBTFNF
KElzQXNjaWlEaWdpdCgnXDAnKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FzY2lpRGlnaXQoJyAnKSk7
Ci0gIEVYUEVDVF9GQUxTRShJc0FzY2lpRGlnaXQoJysnKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0Fz
Y2lpRGlnaXQoJy0nKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FzY2lpRGlnaXQoJy4nKSk7Ci0gIEVY
UEVDVF9GQUxTRShJc0FzY2lpRGlnaXQoJ2EnKSk7Ci19Ci0KLVRFU1QoSXNBc2NpaURpZ2l0VGVz
dCwgSXNUcnVlRm9yRGlnaXQpIHsKLSAgRVhQRUNUX1RSVUUoSXNBc2NpaURpZ2l0KCcwJykpOwot
ICBFWFBFQ1RfVFJVRShJc0FzY2lpRGlnaXQoJzEnKSk7Ci0gIEVYUEVDVF9UUlVFKElzQXNjaWlE
aWdpdCgnNScpKTsKLSAgRVhQRUNUX1RSVUUoSXNBc2NpaURpZ2l0KCc5JykpOwotfQotCi1URVNU
KElzQXNjaWlQdW5jdFRlc3QsIElzRmFsc2VGb3JOb25QdW5jdCkgewotICBFWFBFQ1RfRkFMU0Uo
SXNBc2NpaVB1bmN0KCdcMCcpKTsKLSAgRVhQRUNUX0ZBTFNFKElzQXNjaWlQdW5jdCgnICcpKTsK
LSAgRVhQRUNUX0ZBTFNFKElzQXNjaWlQdW5jdCgnXG4nKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0Fz
Y2lpUHVuY3QoJ2EnKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FzY2lpUHVuY3QoJzAnKSk7Ci19Ci0K
LVRFU1QoSXNBc2NpaVB1bmN0VGVzdCwgSXNUcnVlRm9yUHVuY3QpIHsKLSAgZm9yIChjb25zdCBj
aGFyKiBwID0gIl4tIVwiIyQlJicoKSorLC4vOjs8PT4/QFtcXF1fYHt8fX4iOyAqcDsgcCsrKSB7
Ci0gICAgRVhQRUNUX1BSRUQxKElzQXNjaWlQdW5jdCwgKnApOwotICB9Ci19Ci0KLVRFU1QoSXNS
ZXBlYXRUZXN0LCBJc0ZhbHNlRm9yTm9uUmVwZWF0Q2hhcikgewotICBFWFBFQ1RfRkFMU0UoSXNS
ZXBlYXQoJ1wwJykpOwotICBFWFBFQ1RfRkFMU0UoSXNSZXBlYXQoJyAnKSk7Ci0gIEVYUEVDVF9G
QUxTRShJc1JlcGVhdCgnYScpKTsKLSAgRVhQRUNUX0ZBTFNFKElzUmVwZWF0KCcxJykpOwotICBF
WFBFQ1RfRkFMU0UoSXNSZXBlYXQoJy0nKSk7Ci19Ci0KLVRFU1QoSXNSZXBlYXRUZXN0LCBJc1Ry
dWVGb3JSZXBlYXRDaGFyKSB7Ci0gIEVYUEVDVF9UUlVFKElzUmVwZWF0KCc/JykpOwotICBFWFBF
Q1RfVFJVRShJc1JlcGVhdCgnKicpKTsKLSAgRVhQRUNUX1RSVUUoSXNSZXBlYXQoJysnKSk7Ci19
Ci0KLVRFU1QoSXNBc2NpaVdoaXRlU3BhY2VUZXN0LCBJc0ZhbHNlRm9yTm9uV2hpdGVTcGFjZSkg
ewotICBFWFBFQ1RfRkFMU0UoSXNBc2NpaVdoaXRlU3BhY2UoJ1wwJykpOwotICBFWFBFQ1RfRkFM
U0UoSXNBc2NpaVdoaXRlU3BhY2UoJ2EnKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FzY2lpV2hpdGVT
cGFjZSgnMScpKTsKLSAgRVhQRUNUX0ZBTFNFKElzQXNjaWlXaGl0ZVNwYWNlKCcrJykpOwotICBF
WFBFQ1RfRkFMU0UoSXNBc2NpaVdoaXRlU3BhY2UoJ18nKSk7Ci19Ci0KLVRFU1QoSXNBc2NpaVdo
aXRlU3BhY2VUZXN0LCBJc1RydWVGb3JXaGl0ZVNwYWNlKSB7Ci0gIEVYUEVDVF9UUlVFKElzQXNj
aWlXaGl0ZVNwYWNlKCcgJykpOwotICBFWFBFQ1RfVFJVRShJc0FzY2lpV2hpdGVTcGFjZSgnXG4n
KSk7Ci0gIEVYUEVDVF9UUlVFKElzQXNjaWlXaGl0ZVNwYWNlKCdccicpKTsKLSAgRVhQRUNUX1RS
VUUoSXNBc2NpaVdoaXRlU3BhY2UoJ1x0JykpOwotICBFWFBFQ1RfVFJVRShJc0FzY2lpV2hpdGVT
cGFjZSgnXHYnKSk7Ci0gIEVYUEVDVF9UUlVFKElzQXNjaWlXaGl0ZVNwYWNlKCdcZicpKTsKLX0K
LQotVEVTVChJc0FzY2lpV29yZENoYXJUZXN0LCBJc0ZhbHNlRm9yTm9uV29yZENoYXIpIHsKLSAg
RVhQRUNUX0ZBTFNFKElzQXNjaWlXb3JkQ2hhcignXDAnKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0Fz
Y2lpV29yZENoYXIoJysnKSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FzY2lpV29yZENoYXIoJy4nKSk7
Ci0gIEVYUEVDVF9GQUxTRShJc0FzY2lpV29yZENoYXIoJyAnKSk7Ci0gIEVYUEVDVF9GQUxTRShJ
c0FzY2lpV29yZENoYXIoJ1xuJykpOwotfQotCi1URVNUKElzQXNjaWlXb3JkQ2hhclRlc3QsIElz
VHJ1ZUZvckxldHRlcikgewotICBFWFBFQ1RfVFJVRShJc0FzY2lpV29yZENoYXIoJ2EnKSk7Ci0g
IEVYUEVDVF9UUlVFKElzQXNjaWlXb3JkQ2hhcignYicpKTsKLSAgRVhQRUNUX1RSVUUoSXNBc2Np
aVdvcmRDaGFyKCdBJykpOwotICBFWFBFQ1RfVFJVRShJc0FzY2lpV29yZENoYXIoJ1onKSk7Ci19
Ci0KLVRFU1QoSXNBc2NpaVdvcmRDaGFyVGVzdCwgSXNUcnVlRm9yRGlnaXQpIHsKLSAgRVhQRUNU
X1RSVUUoSXNBc2NpaVdvcmRDaGFyKCcwJykpOwotICBFWFBFQ1RfVFJVRShJc0FzY2lpV29yZENo
YXIoJzEnKSk7Ci0gIEVYUEVDVF9UUlVFKElzQXNjaWlXb3JkQ2hhcignNycpKTsKLSAgRVhQRUNU
X1RSVUUoSXNBc2NpaVdvcmRDaGFyKCc5JykpOwotfQotCi1URVNUKElzQXNjaWlXb3JkQ2hhclRl
c3QsIElzVHJ1ZUZvclVuZGVyc2NvcmUpIHsKLSAgRVhQRUNUX1RSVUUoSXNBc2NpaVdvcmRDaGFy
KCdfJykpOwotfQotCi1URVNUKElzVmFsaWRFc2NhcGVUZXN0LCBJc0ZhbHNlRm9yTm9uUHJpbnRh
YmxlKSB7Ci0gIEVYUEVDVF9GQUxTRShJc1ZhbGlkRXNjYXBlKCdcMCcpKTsKLSAgRVhQRUNUX0ZB
TFNFKElzVmFsaWRFc2NhcGUoJ1wwMDcnKSk7Ci19Ci0KLVRFU1QoSXNWYWxpZEVzY2FwZVRlc3Qs
IElzRmFsc2VGb3JEaWdpdCkgewotICBFWFBFQ1RfRkFMU0UoSXNWYWxpZEVzY2FwZSgnMCcpKTsK
LSAgRVhQRUNUX0ZBTFNFKElzVmFsaWRFc2NhcGUoJzknKSk7Ci19Ci0KLVRFU1QoSXNWYWxpZEVz
Y2FwZVRlc3QsIElzRmFsc2VGb3JXaGl0ZVNwYWNlKSB7Ci0gIEVYUEVDVF9GQUxTRShJc1ZhbGlk
RXNjYXBlKCcgJykpOwotICBFWFBFQ1RfRkFMU0UoSXNWYWxpZEVzY2FwZSgnXG4nKSk7Ci19Ci0K
LVRFU1QoSXNWYWxpZEVzY2FwZVRlc3QsIElzRmFsc2VGb3JTb21lTGV0dGVyKSB7Ci0gIEVYUEVD
VF9GQUxTRShJc1ZhbGlkRXNjYXBlKCdhJykpOwotICBFWFBFQ1RfRkFMU0UoSXNWYWxpZEVzY2Fw
ZSgnWicpKTsKLX0KLQotVEVTVChJc1ZhbGlkRXNjYXBlVGVzdCwgSXNUcnVlRm9yUHVuY3QpIHsK
LSAgRVhQRUNUX1RSVUUoSXNWYWxpZEVzY2FwZSgnLicpKTsKLSAgRVhQRUNUX1RSVUUoSXNWYWxp
ZEVzY2FwZSgnLScpKTsKLSAgRVhQRUNUX1RSVUUoSXNWYWxpZEVzY2FwZSgnXicpKTsKLSAgRVhQ
RUNUX1RSVUUoSXNWYWxpZEVzY2FwZSgnJCcpKTsKLSAgRVhQRUNUX1RSVUUoSXNWYWxpZEVzY2Fw
ZSgnKCcpKTsKLSAgRVhQRUNUX1RSVUUoSXNWYWxpZEVzY2FwZSgnXScpKTsKLSAgRVhQRUNUX1RS
VUUoSXNWYWxpZEVzY2FwZSgneycpKTsKLSAgRVhQRUNUX1RSVUUoSXNWYWxpZEVzY2FwZSgnfCcp
KTsKLX0KLQotVEVTVChJc1ZhbGlkRXNjYXBlVGVzdCwgSXNUcnVlRm9yU29tZUxldHRlcikgewot
ICBFWFBFQ1RfVFJVRShJc1ZhbGlkRXNjYXBlKCdkJykpOwotICBFWFBFQ1RfVFJVRShJc1ZhbGlk
RXNjYXBlKCdEJykpOwotICBFWFBFQ1RfVFJVRShJc1ZhbGlkRXNjYXBlKCdzJykpOwotICBFWFBF
Q1RfVFJVRShJc1ZhbGlkRXNjYXBlKCdTJykpOwotICBFWFBFQ1RfVFJVRShJc1ZhbGlkRXNjYXBl
KCd3JykpOwotICBFWFBFQ1RfVFJVRShJc1ZhbGlkRXNjYXBlKCdXJykpOwotfQotCi1URVNUKEF0
b21NYXRjaGVzQ2hhclRlc3QsIEVzY2FwZWRQdW5jdCkgewotICBFWFBFQ1RfRkFMU0UoQXRvbU1h
dGNoZXNDaGFyKHRydWUsICdcXCcsICdcMCcpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVz
Q2hhcih0cnVlLCAnXFwnLCAnICcpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcih0
cnVlLCAnXycsICcuJykpOwotICBFWFBFQ1RfRkFMU0UoQXRvbU1hdGNoZXNDaGFyKHRydWUsICcu
JywgJ2EnKSk7Ci0KLSAgRVhQRUNUX1RSVUUoQXRvbU1hdGNoZXNDaGFyKHRydWUsICdcXCcsICdc
XCcpKTsKLSAgRVhQRUNUX1RSVUUoQXRvbU1hdGNoZXNDaGFyKHRydWUsICdfJywgJ18nKSk7Ci0g
IEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAnKycsICcrJykpOwotICBFWFBFQ1Rf
VFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJy4nLCAnLicpKTsKLX0KLQotVEVTVChBdG9tTWF0
Y2hlc0NoYXJUZXN0LCBFc2NhcGVkX2QpIHsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hh
cih0cnVlLCAnZCcsICdcMCcpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcih0cnVl
LCAnZCcsICdhJykpOwotICBFWFBFQ1RfRkFMU0UoQXRvbU1hdGNoZXNDaGFyKHRydWUsICdkJywg
Jy4nKSk7Ci0KLSAgRVhQRUNUX1RSVUUoQXRvbU1hdGNoZXNDaGFyKHRydWUsICdkJywgJzAnKSk7
Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAnZCcsICc5JykpOwotfQotCi1U
RVNUKEF0b21NYXRjaGVzQ2hhclRlc3QsIEVzY2FwZWRfRCkgewotICBFWFBFQ1RfRkFMU0UoQXRv
bU1hdGNoZXNDaGFyKHRydWUsICdEJywgJzAnKSk7Ci0gIEVYUEVDVF9GQUxTRShBdG9tTWF0Y2hl
c0NoYXIodHJ1ZSwgJ0QnLCAnOScpKTsKLQotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIo
dHJ1ZSwgJ0QnLCAnXDAnKSk7Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAn
RCcsICdhJykpOwotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ0QnLCAnLScp
KTsKLX0KLQotVEVTVChBdG9tTWF0Y2hlc0NoYXJUZXN0LCBFc2NhcGVkX3MpIHsKLSAgRVhQRUNU
X0ZBTFNFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAncycsICdcMCcpKTsKLSAgRVhQRUNUX0ZBTFNF
KEF0b21NYXRjaGVzQ2hhcih0cnVlLCAncycsICdhJykpOwotICBFWFBFQ1RfRkFMU0UoQXRvbU1h
dGNoZXNDaGFyKHRydWUsICdzJywgJy4nKSk7Ci0gIEVYUEVDVF9GQUxTRShBdG9tTWF0Y2hlc0No
YXIodHJ1ZSwgJ3MnLCAnOScpKTsKLQotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1
ZSwgJ3MnLCAnICcpKTsKLSAgRVhQRUNUX1RSVUUoQXRvbU1hdGNoZXNDaGFyKHRydWUsICdzJywg
J1xuJykpOwotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ3MnLCAnXHQnKSk7
Ci19Ci0KLVRFU1QoQXRvbU1hdGNoZXNDaGFyVGVzdCwgRXNjYXBlZF9TKSB7Ci0gIEVYUEVDVF9G
QUxTRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ1MnLCAnICcpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0
b21NYXRjaGVzQ2hhcih0cnVlLCAnUycsICdccicpKTsKLQotICBFWFBFQ1RfVFJVRShBdG9tTWF0
Y2hlc0NoYXIodHJ1ZSwgJ1MnLCAnXDAnKSk7Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hh
cih0cnVlLCAnUycsICdhJykpOwotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwg
J1MnLCAnOScpKTsKLX0KLQotVEVTVChBdG9tTWF0Y2hlc0NoYXJUZXN0LCBFc2NhcGVkX3cpIHsK
LSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAndycsICdcMCcpKTsKLSAgRVhQ
RUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAndycsICcrJykpOwotICBFWFBFQ1RfRkFM
U0UoQXRvbU1hdGNoZXNDaGFyKHRydWUsICd3JywgJyAnKSk7Ci0gIEVYUEVDVF9GQUxTRShBdG9t
TWF0Y2hlc0NoYXIodHJ1ZSwgJ3cnLCAnXG4nKSk7Ci0KLSAgRVhQRUNUX1RSVUUoQXRvbU1hdGNo
ZXNDaGFyKHRydWUsICd3JywgJzAnKSk7Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcih0
cnVlLCAndycsICdiJykpOwotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ3cn
LCAnQycpKTsKLSAgRVhQRUNUX1RSVUUoQXRvbU1hdGNoZXNDaGFyKHRydWUsICd3JywgJ18nKSk7
Ci19Ci0KLVRFU1QoQXRvbU1hdGNoZXNDaGFyVGVzdCwgRXNjYXBlZF9XKSB7Ci0gIEVYUEVDVF9G
QUxTRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ1cnLCAnQScpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0
b21NYXRjaGVzQ2hhcih0cnVlLCAnVycsICdiJykpOwotICBFWFBFQ1RfRkFMU0UoQXRvbU1hdGNo
ZXNDaGFyKHRydWUsICdXJywgJzknKSk7Ci0gIEVYUEVDVF9GQUxTRShBdG9tTWF0Y2hlc0NoYXIo
dHJ1ZSwgJ1cnLCAnXycpKTsKLQotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwg
J1cnLCAnXDAnKSk7Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAnVycsICcq
JykpOwotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ1cnLCAnXG4nKSk7Ci19
Ci0KLVRFU1QoQXRvbU1hdGNoZXNDaGFyVGVzdCwgRXNjYXBlZFdoaXRlU3BhY2UpIHsKLSAgRVhQ
RUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAnZicsICdcMCcpKTsKLSAgRVhQRUNUX0ZB
TFNFKEF0b21NYXRjaGVzQ2hhcih0cnVlLCAnZicsICdcbicpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0
b21NYXRjaGVzQ2hhcih0cnVlLCAnbicsICdcMCcpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRj
aGVzQ2hhcih0cnVlLCAnbicsICdccicpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hh
cih0cnVlLCAncicsICdcMCcpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcih0cnVl
LCAncicsICdhJykpOwotICBFWFBFQ1RfRkFMU0UoQXRvbU1hdGNoZXNDaGFyKHRydWUsICd0Jywg
J1wwJykpOwotICBFWFBFQ1RfRkFMU0UoQXRvbU1hdGNoZXNDaGFyKHRydWUsICd0JywgJ3QnKSk7
Ci0gIEVYUEVDVF9GQUxTRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ3YnLCAnXDAnKSk7Ci0gIEVY
UEVDVF9GQUxTRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ3YnLCAnXGYnKSk7Ci0KLSAgRVhQRUNU
X1RSVUUoQXRvbU1hdGNoZXNDaGFyKHRydWUsICdmJywgJ1xmJykpOwotICBFWFBFQ1RfVFJVRShB
dG9tTWF0Y2hlc0NoYXIodHJ1ZSwgJ24nLCAnXG4nKSk7Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRj
aGVzQ2hhcih0cnVlLCAncicsICdccicpKTsKLSAgRVhQRUNUX1RSVUUoQXRvbU1hdGNoZXNDaGFy
KHRydWUsICd0JywgJ1x0JykpOwotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIodHJ1ZSwg
J3YnLCAnXHYnKSk7Ci19Ci0KLVRFU1QoQXRvbU1hdGNoZXNDaGFyVGVzdCwgVW5lc2NhcGVkRG90
KSB7Ci0gIEVYUEVDVF9GQUxTRShBdG9tTWF0Y2hlc0NoYXIoZmFsc2UsICcuJywgJ1xuJykpOwot
Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcihmYWxzZSwgJy4nLCAnXDAnKSk7Ci0gIEVY
UEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcihmYWxzZSwgJy4nLCAnLicpKTsKLSAgRVhQRUNUX1RS
VUUoQXRvbU1hdGNoZXNDaGFyKGZhbHNlLCAnLicsICdhJykpOwotICBFWFBFQ1RfVFJVRShBdG9t
TWF0Y2hlc0NoYXIoZmFsc2UsICcuJywgJyAnKSk7Ci19Ci0KLVRFU1QoQXRvbU1hdGNoZXNDaGFy
VGVzdCwgVW5lc2NhcGVkQ2hhcikgewotICBFWFBFQ1RfRkFMU0UoQXRvbU1hdGNoZXNDaGFyKGZh
bHNlLCAnYScsICdcMCcpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcihmYWxzZSwg
J2EnLCAnYicpKTsKLSAgRVhQRUNUX0ZBTFNFKEF0b21NYXRjaGVzQ2hhcihmYWxzZSwgJyQnLCAn
YScpKTsKLQotICBFWFBFQ1RfVFJVRShBdG9tTWF0Y2hlc0NoYXIoZmFsc2UsICckJywgJyQnKSk7
Ci0gIEVYUEVDVF9UUlVFKEF0b21NYXRjaGVzQ2hhcihmYWxzZSwgJzUnLCAnNScpKTsKLSAgRVhQ
RUNUX1RSVUUoQXRvbU1hdGNoZXNDaGFyKGZhbHNlLCAnWicsICdaJykpOwotfQotCi1URVNUKFZh
bGlkYXRlUmVnZXhUZXN0LCBHZW5lcmF0ZXNGYWlsdXJlQW5kUmV0dXJuc0ZhbHNlRm9ySW52YWxp
ZCkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBU1NFUlRfRkFMU0UoVmFsaWRhdGVSZWdl
eChOVUxMKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJOVUxMIGlzIG5vdCBhIHZhbGlk
IHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24iKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
Ci0gICAgICBBU1NFUlRfRkFMU0UoVmFsaWRhdGVSZWdleCgiYVxcIikpLAotICAgICAgIlN5bnRh
eCBlcnJvciBhdCBpbmRleCAxIGluIHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24gXCJhXFxcIjog
Iik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFTU0VSVF9GQUxTRShWYWxpZGF0ZVJlZ2V4
KCJhXFwiKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICInXFwnIGNhbm5vdCBhcHBlYXIg
YXQgdGhlIGVuZCIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBU1NFUlRfRkFMU0UoVmFs
aWRhdGVSZWdleCgiXFxuXFwiKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICInXFwnIGNh
bm5vdCBhcHBlYXIgYXQgdGhlIGVuZCIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBU1NF
UlRfRkFMU0UoVmFsaWRhdGVSZWdleCgiXFxzXFxoYiIpKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgImludmFsaWQgZXNjYXBlIHNlcXVlbmNlIFwiXFxoXCIiKTsKLSAgRVhQRUNUX05PTkZB
VEFMX0ZBSUxVUkUoQVNTRVJUX0ZBTFNFKFZhbGlkYXRlUmVnZXgoIl5eIikpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAiJ14nIGNhbiBvbmx5IGFwcGVhciBhdCB0aGUgYmVnaW5uaW5nIik7
Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFTU0VSVF9GQUxTRShWYWxpZGF0ZVJlZ2V4KCIu
Kl5iIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiJ14nIGNhbiBvbmx5IGFwcGVhciBh
dCB0aGUgYmVnaW5uaW5nIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFTU0VSVF9GQUxT
RShWYWxpZGF0ZVJlZ2V4KCIkJCIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIickJyBj
YW4gb25seSBhcHBlYXIgYXQgdGhlIGVuZCIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShB
U1NFUlRfRkFMU0UoVmFsaWRhdGVSZWdleCgiXiRhIikpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAiJyQnIGNhbiBvbmx5IGFwcGVhciBhdCB0aGUgZW5kIik7Ci0gIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEFTU0VSVF9GQUxTRShWYWxpZGF0ZVJlZ2V4KCJhKGIiKSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICInKCcgaXMgdW5zdXBwb3J0ZWQiKTsKLSAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoQVNTRVJUX0ZBTFNFKFZhbGlkYXRlUmVnZXgoImFiKSIpKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIicpJyBpcyB1bnN1cHBvcnRlZCIpOwotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShBU1NFUlRfRkFMU0UoVmFsaWRhdGVSZWdleCgiW2FiIikpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAiJ1snIGlzIHVuc3VwcG9ydGVkIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEFTU0VSVF9GQUxTRShWYWxpZGF0ZVJlZ2V4KCJhezIiKSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICIneycgaXMgdW5zdXBwb3J0ZWQiKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZB
SUxVUkUoQVNTRVJUX0ZBTFNFKFZhbGlkYXRlUmVnZXgoIj8iKSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICInPycgY2FuIG9ubHkgZm9sbG93IGEgcmVwZWF0YWJsZSB0b2tlbiIpOwotICBF
WFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBU1NFUlRfRkFMU0UoVmFsaWRhdGVSZWdleCgiXioiKSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICInKicgY2FuIG9ubHkgZm9sbG93IGEgcmVwZWF0
YWJsZSB0b2tlbiIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBU1NFUlRfRkFMU0UoVmFs
aWRhdGVSZWdleCgiNSorIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiJysnIGNhbiBv
bmx5IGZvbGxvdyBhIHJlcGVhdGFibGUgdG9rZW4iKTsKLX0KLQotVEVTVChWYWxpZGF0ZVJlZ2V4
VGVzdCwgUmV0dXJuc1RydWVGb3JWYWxpZCkgewotICBFWFBFQ1RfVFJVRShWYWxpZGF0ZVJlZ2V4
KCIiKSk7Ci0gIEVYUEVDVF9UUlVFKFZhbGlkYXRlUmVnZXgoImEiKSk7Ci0gIEVYUEVDVF9UUlVF
KFZhbGlkYXRlUmVnZXgoIi4qIikpOwotICBFWFBFQ1RfVFJVRShWYWxpZGF0ZVJlZ2V4KCJeYV8r
IikpOwotICBFWFBFQ1RfVFJVRShWYWxpZGF0ZVJlZ2V4KCJeYVxcdFxcJj8iKSk7Ci0gIEVYUEVD
VF9UUlVFKFZhbGlkYXRlUmVnZXgoIjA5KiQiKSk7Ci0gIEVYUEVDVF9UUlVFKFZhbGlkYXRlUmVn
ZXgoIl5aJCIpKTsKLSAgRVhQRUNUX1RSVUUoVmFsaWRhdGVSZWdleCgiYVxcXlpcXCRcXChcXClc
XHxcXFtcXF1cXHtcXH0iKSk7Ci19Ci0KLVRFU1QoTWF0Y2hSZXBldGl0aW9uQW5kUmVnZXhBdEhl
YWRUZXN0LCBXb3Jrc0Zvclplcm9Pck9uZSkgewotICBFWFBFQ1RfRkFMU0UoTWF0Y2hSZXBldGl0
aW9uQW5kUmVnZXhBdEhlYWQoZmFsc2UsICdhJywgJz8nLCAiYSIsICJiYSIpKTsKLSAgLy8gUmVw
ZWF0aW5nIG1vcmUgdGhhbiBvbmNlLgotICBFWFBFQ1RfRkFMU0UoTWF0Y2hSZXBldGl0aW9uQW5k
UmVnZXhBdEhlYWQoZmFsc2UsICdhJywgJz8nLCAiYiIsICJhYWIiKSk7Ci0KLSAgLy8gUmVwZWF0
aW5nIHplcm8gdGltZXMuCi0gIEVYUEVDVF9UUlVFKE1hdGNoUmVwZXRpdGlvbkFuZFJlZ2V4QXRI
ZWFkKGZhbHNlLCAnYScsICc/JywgImIiLCAiYmEiKSk7Ci0gIC8vIFJlcGVhdGluZyBvbmNlLgot
ICBFWFBFQ1RfVFJVRShNYXRjaFJlcGV0aXRpb25BbmRSZWdleEF0SGVhZChmYWxzZSwgJ2EnLCAn
PycsICJiIiwgImFiIikpOwotICBFWFBFQ1RfVFJVRShNYXRjaFJlcGV0aXRpb25BbmRSZWdleEF0
SGVhZChmYWxzZSwgJyMnLCAnPycsICIuIiwgIiMjIikpOwotfQotCi1URVNUKE1hdGNoUmVwZXRp
dGlvbkFuZFJlZ2V4QXRIZWFkVGVzdCwgV29ya3NGb3JaZXJvT3JNYW55KSB7Ci0gIEVYUEVDVF9G
QUxTRShNYXRjaFJlcGV0aXRpb25BbmRSZWdleEF0SGVhZChmYWxzZSwgJy4nLCAnKicsICJhJCIs
ICJiYWFiIikpOwotCi0gIC8vIFJlcGVhdGluZyB6ZXJvIHRpbWVzLgotICBFWFBFQ1RfVFJVRShN
YXRjaFJlcGV0aXRpb25BbmRSZWdleEF0SGVhZChmYWxzZSwgJy4nLCAnKicsICJiIiwgImJjIikp
OwotICAvLyBSZXBlYXRpbmcgb25jZS4KLSAgRVhQRUNUX1RSVUUoTWF0Y2hSZXBldGl0aW9uQW5k
UmVnZXhBdEhlYWQoZmFsc2UsICcuJywgJyonLCAiYiIsICJhYmMiKSk7Ci0gIC8vIFJlcGVhdGlu
ZyBtb3JlIHRoYW4gb25jZS4KLSAgRVhQRUNUX1RSVUUoTWF0Y2hSZXBldGl0aW9uQW5kUmVnZXhB
dEhlYWQodHJ1ZSwgJ3cnLCAnKicsICItIiwgImFiXzEtZyIpKTsKLX0KLQotVEVTVChNYXRjaFJl
cGV0aXRpb25BbmRSZWdleEF0SGVhZFRlc3QsIFdvcmtzRm9yT25lT3JNYW55KSB7Ci0gIEVYUEVD
VF9GQUxTRShNYXRjaFJlcGV0aXRpb25BbmRSZWdleEF0SGVhZChmYWxzZSwgJy4nLCAnKycsICJh
JCIsICJiYWFiIikpOwotICAvLyBSZXBlYXRpbmcgemVybyB0aW1lcy4KLSAgRVhQRUNUX0ZBTFNF
KE1hdGNoUmVwZXRpdGlvbkFuZFJlZ2V4QXRIZWFkKGZhbHNlLCAnLicsICcrJywgImIiLCAiYmMi
KSk7Ci0KLSAgLy8gUmVwZWF0aW5nIG9uY2UuCi0gIEVYUEVDVF9UUlVFKE1hdGNoUmVwZXRpdGlv
bkFuZFJlZ2V4QXRIZWFkKGZhbHNlLCAnLicsICcrJywgImIiLCAiYWJjIikpOwotICAvLyBSZXBl
YXRpbmcgbW9yZSB0aGFuIG9uY2UuCi0gIEVYUEVDVF9UUlVFKE1hdGNoUmVwZXRpdGlvbkFuZFJl
Z2V4QXRIZWFkKHRydWUsICd3JywgJysnLCAiLSIsICJhYl8xLWciKSk7Ci19Ci0KLVRFU1QoTWF0
Y2hSZWdleEF0SGVhZFRlc3QsIFJldHVybnNUcnVlRm9yRW1wdHlSZWdleCkgewotICBFWFBFQ1Rf
VFJVRShNYXRjaFJlZ2V4QXRIZWFkKCIiLCAiIikpOwotICBFWFBFQ1RfVFJVRShNYXRjaFJlZ2V4
QXRIZWFkKCIiLCAiYWIiKSk7Ci19Ci0KLVRFU1QoTWF0Y2hSZWdleEF0SGVhZFRlc3QsIFdvcmtz
V2hlbkRvbGxhcklzSW5SZWdleCkgewotICBFWFBFQ1RfRkFMU0UoTWF0Y2hSZWdleEF0SGVhZCgi
JCIsICJhIikpOwotCi0gIEVYUEVDVF9UUlVFKE1hdGNoUmVnZXhBdEhlYWQoIiQiLCAiIikpOwot
ICBFWFBFQ1RfVFJVRShNYXRjaFJlZ2V4QXRIZWFkKCJhJCIsICJhIikpOwotfQotCi1URVNUKE1h
dGNoUmVnZXhBdEhlYWRUZXN0LCBXb3Jrc1doZW5SZWdleFN0YXJ0c1dpdGhFc2NhcGVTZXF1ZW5j
ZSkgewotICBFWFBFQ1RfRkFMU0UoTWF0Y2hSZWdleEF0SGVhZCgiXFx3IiwgIisiKSk7Ci0gIEVY
UEVDVF9GQUxTRShNYXRjaFJlZ2V4QXRIZWFkKCJcXFciLCAiYWIiKSk7Ci0KLSAgRVhQRUNUX1RS
VUUoTWF0Y2hSZWdleEF0SGVhZCgiXFxzYSIsICJcbmFiIikpOwotICBFWFBFQ1RfVFJVRShNYXRj
aFJlZ2V4QXRIZWFkKCJcXGQiLCAiMWEiKSk7Ci19Ci0KLVRFU1QoTWF0Y2hSZWdleEF0SGVhZFRl
c3QsIFdvcmtzV2hlblJlZ2V4U3RhcnRzV2l0aFJlcGV0aXRpb24pIHsKLSAgRVhQRUNUX0ZBTFNF
KE1hdGNoUmVnZXhBdEhlYWQoIi4rYSIsICJhYmMiKSk7Ci0gIEVYUEVDVF9GQUxTRShNYXRjaFJl
Z2V4QXRIZWFkKCJhP2IiLCAiYWFiIikpOwotCi0gIEVYUEVDVF9UUlVFKE1hdGNoUmVnZXhBdEhl
YWQoIi4qYSIsICJiYzEyLWFiIikpOwotICBFWFBFQ1RfVFJVRShNYXRjaFJlZ2V4QXRIZWFkKCJh
P2IiLCAiYiIpKTsKLSAgRVhQRUNUX1RSVUUoTWF0Y2hSZWdleEF0SGVhZCgiYT9iIiwgImFiIikp
OwotfQotCi1URVNUKE1hdGNoUmVnZXhBdEhlYWRUZXN0LAotICAgICBXb3Jrc1doZW5SZWdleFN0
YXJ0c1dpdGhSZXBldGlvbk9mRXNjYXBlU2VxdWVuY2UpIHsKLSAgRVhQRUNUX0ZBTFNFKE1hdGNo
UmVnZXhBdEhlYWQoIlxcLithIiwgImFiYyIpKTsKLSAgRVhQRUNUX0ZBTFNFKE1hdGNoUmVnZXhB
dEhlYWQoIlxccz9iIiwgIiAgYiIpKTsKLQotICBFWFBFQ1RfVFJVRShNYXRjaFJlZ2V4QXRIZWFk
KCJcXCgqYSIsICIoKCgoYWIiKSk7Ci0gIEVYUEVDVF9UUlVFKE1hdGNoUmVnZXhBdEhlYWQoIlxc
Xj9iIiwgIl5iIikpOwotICBFWFBFQ1RfVFJVRShNYXRjaFJlZ2V4QXRIZWFkKCJcXFxcP2IiLCAi
YiIpKTsKLSAgRVhQRUNUX1RSVUUoTWF0Y2hSZWdleEF0SGVhZCgiXFxcXD9iIiwgIlxcYiIpKTsK
LX0KLQotVEVTVChNYXRjaFJlZ2V4QXRIZWFkVGVzdCwgTWF0Y2hlc1NlcXVlbnRpYWxseSkgewot
ICBFWFBFQ1RfRkFMU0UoTWF0Y2hSZWdleEF0SGVhZCgiYWIuKmMiLCAiYWNhYmMiKSk7Ci0KLSAg
RVhQRUNUX1RSVUUoTWF0Y2hSZWdleEF0SGVhZCgiYWIuKmMiLCAiYWItZnNjIikpOwotfQotCi1U
RVNUKE1hdGNoUmVnZXhBbnl3aGVyZVRlc3QsIFJldHVybnNGYWxzZVdoZW5TdHJpbmdJc051bGwp
IHsKLSAgRVhQRUNUX0ZBTFNFKE1hdGNoUmVnZXhBbnl3aGVyZSgiIiwgTlVMTCkpOwotfQotCi1U
RVNUKE1hdGNoUmVnZXhBbnl3aGVyZVRlc3QsIFdvcmtzV2hlblJlZ2V4U3RhcnRzV2l0aENhcmV0
KSB7Ci0gIEVYUEVDVF9GQUxTRShNYXRjaFJlZ2V4QW55d2hlcmUoIl5hIiwgImJhIikpOwotICBF
WFBFQ1RfRkFMU0UoTWF0Y2hSZWdleEFueXdoZXJlKCJeJCIsICJhIikpOwotCi0gIEVYUEVDVF9U
UlVFKE1hdGNoUmVnZXhBbnl3aGVyZSgiXmEiLCAiYWIiKSk7Ci0gIEVYUEVDVF9UUlVFKE1hdGNo
UmVnZXhBbnl3aGVyZSgiXiIsICJhYiIpKTsKLSAgRVhQRUNUX1RSVUUoTWF0Y2hSZWdleEFueXdo
ZXJlKCJeJCIsICIiKSk7Ci19Ci0KLVRFU1QoTWF0Y2hSZWdleEFueXdoZXJlVGVzdCwgUmV0dXJu
c0ZhbHNlV2hlbk5vTWF0Y2gpIHsKLSAgRVhQRUNUX0ZBTFNFKE1hdGNoUmVnZXhBbnl3aGVyZSgi
YSIsICJiY2RlMTIzIikpOwotICBFWFBFQ1RfRkFMU0UoTWF0Y2hSZWdleEFueXdoZXJlKCJhLith
IiwgIi0tYWE4ODg4ODg4OCIpKTsKLX0KLQotVEVTVChNYXRjaFJlZ2V4QW55d2hlcmVUZXN0LCBS
ZXR1cm5zVHJ1ZVdoZW5NYXRjaGluZ1ByZWZpeCkgewotICBFWFBFQ1RfVFJVRShNYXRjaFJlZ2V4
QW55d2hlcmUoIlxcdysiLCAiYWIxXyAtIDUiKSk7Ci0gIEVYUEVDVF9UUlVFKE1hdGNoUmVnZXhB
bnl3aGVyZSgiLio9IiwgIj0iKSk7Ci0gIEVYUEVDVF9UUlVFKE1hdGNoUmVnZXhBbnl3aGVyZSgi
eC4qYWI/LipiYyIsICJ4YWFhYmMiKSk7Ci19Ci0KLVRFU1QoTWF0Y2hSZWdleEFueXdoZXJlVGVz
dCwgUmV0dXJuc1RydWVXaGVuTWF0Y2hpbmdOb25QcmVmaXgpIHsKLSAgRVhQRUNUX1RSVUUoTWF0
Y2hSZWdleEFueXdoZXJlKCJcXHcrIiwgIiQkJCBhYjFfIC0gNSIpKTsKLSAgRVhQRUNUX1RSVUUo
TWF0Y2hSZWdleEFueXdoZXJlKCJcXC4rPSIsICI9ICAuLi49IikpOwotfQotCi0vLyBUZXN0cyBS
RSdzIGltcGxpY2l0IGNvbnN0cnVjdG9ycy4KLVRFU1QoUkVUZXN0LCBJbXBsaWNpdENvbnN0cnVj
dG9yV29ya3MpIHsKLSAgY29uc3QgUkUgZW1wdHkoIiIpOwotICBFWFBFQ1RfU1RSRVEoIiIsIGVt
cHR5LnBhdHRlcm4oKSk7Ci0KLSAgY29uc3QgUkUgc2ltcGxlKCJoZWxsbyIpOwotICBFWFBFQ1Rf
U1RSRVEoImhlbGxvIiwgc2ltcGxlLnBhdHRlcm4oKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgUkUn
cyBjb25zdHJ1Y3RvcnMgcmVqZWN0IGludmFsaWQgcmVndWxhciBleHByZXNzaW9ucy4KLVRFU1Qo
UkVUZXN0LCBSZWplY3RzSW52YWxpZFJlZ2V4KSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KHsKLSAgICBjb25zdCBSRSBub3JtYWwoTlVMTCk7Ci0gIH0sICJOVUxMIGlzIG5vdCBhIHZhbGlk
IHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24iKTsKLQotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RSh7Ci0gICAgY29uc3QgUkUgbm9ybWFsKCIuKihcXHcrIik7Ci0gIH0sICInKCcgaXMgdW5zdXBw
b3J0ZWQiKTsKLQotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7Ci0gICAgY29uc3QgUkUgaW52
YWxpZCgiXj8iKTsKLSAgfSwgIic/JyBjYW4gb25seSBmb2xsb3cgYSByZXBlYXRhYmxlIHRva2Vu
Iik7Ci19Ci0KLS8vIFRlc3RzIFJFOjpGdWxsTWF0Y2goKS4KLVRFU1QoUkVUZXN0LCBGdWxsTWF0
Y2hXb3JrcykgewotICBjb25zdCBSRSBlbXB0eSgiIik7Ci0gIEVYUEVDVF9UUlVFKFJFOjpGdWxs
TWF0Y2goIiIsIGVtcHR5KSk7Ci0gIEVYUEVDVF9GQUxTRShSRTo6RnVsbE1hdGNoKCJhIiwgZW1w
dHkpKTsKLQotICBjb25zdCBSRSByZTEoImEiKTsKLSAgRVhQRUNUX1RSVUUoUkU6OkZ1bGxNYXRj
aCgiYSIsIHJlMSkpOwotCi0gIGNvbnN0IFJFIHJlKCJhLip6Iik7Ci0gIEVYUEVDVF9UUlVFKFJF
OjpGdWxsTWF0Y2goImF6IiwgcmUpKTsKLSAgRVhQRUNUX1RSVUUoUkU6OkZ1bGxNYXRjaCgiYXh5
eiIsIHJlKSk7Ci0gIEVYUEVDVF9GQUxTRShSRTo6RnVsbE1hdGNoKCJiYXoiLCByZSkpOwotICBF
WFBFQ1RfRkFMU0UoUkU6OkZ1bGxNYXRjaCgiYXp5IiwgcmUpKTsKLX0KLQotLy8gVGVzdHMgUkU6
OlBhcnRpYWxNYXRjaCgpLgotVEVTVChSRVRlc3QsIFBhcnRpYWxNYXRjaFdvcmtzKSB7Ci0gIGNv
bnN0IFJFIGVtcHR5KCIiKTsKLSAgRVhQRUNUX1RSVUUoUkU6OlBhcnRpYWxNYXRjaCgiIiwgZW1w
dHkpKTsKLSAgRVhQRUNUX1RSVUUoUkU6OlBhcnRpYWxNYXRjaCgiYSIsIGVtcHR5KSk7Ci0KLSAg
Y29uc3QgUkUgcmUoImEuKnoiKTsKLSAgRVhQRUNUX1RSVUUoUkU6OlBhcnRpYWxNYXRjaCgiYXoi
LCByZSkpOwotICBFWFBFQ1RfVFJVRShSRTo6UGFydGlhbE1hdGNoKCJheHl6IiwgcmUpKTsKLSAg
RVhQRUNUX1RSVUUoUkU6OlBhcnRpYWxNYXRjaCgiYmF6IiwgcmUpKTsKLSAgRVhQRUNUX1RSVUUo
UkU6OlBhcnRpYWxNYXRjaCgiYXp5IiwgcmUpKTsKLSAgRVhQRUNUX0ZBTFNFKFJFOjpQYXJ0aWFs
TWF0Y2goInp6YSIsIHJlKSk7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfVVNFU19QT1NJWF9SRQot
Ci0jaWYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0KLVRFU1QoQ2FwdHVyZVRlc3QsIENhcHR1
cmVzU3Rkb3V0KSB7Ci0gIENhcHR1cmVTdGRvdXQoKTsKLSAgZnByaW50ZihzdGRvdXQsICJhYmMi
KTsKLSAgRVhQRUNUX1NUUkVRKCJhYmMiLCBHZXRDYXB0dXJlZFN0ZG91dCgpLmNfc3RyKCkpOwot
Ci0gIENhcHR1cmVTdGRvdXQoKTsKLSAgZnByaW50ZihzdGRvdXQsICJkZWYlY2doaSIsICdcMCcp
OwotICBFWFBFQ1RfRVEoOjpzdGQ6OnN0cmluZygiZGVmXDBnaGkiLCA3KSwgOjpzdGQ6OnN0cmlu
ZyhHZXRDYXB0dXJlZFN0ZG91dCgpKSk7Ci19Ci0KLVRFU1QoQ2FwdHVyZVRlc3QsIENhcHR1cmVz
U3RkZXJyKSB7Ci0gIENhcHR1cmVTdGRlcnIoKTsKLSAgZnByaW50ZihzdGRlcnIsICJqa2wiKTsK
LSAgRVhQRUNUX1NUUkVRKCJqa2wiLCBHZXRDYXB0dXJlZFN0ZGVycigpLmNfc3RyKCkpOwotCi0g
IENhcHR1cmVTdGRlcnIoKTsKLSAgZnByaW50ZihzdGRlcnIsICJqa2wlY21ubyIsICdcMCcpOwot
ICBFWFBFQ1RfRVEoOjpzdGQ6OnN0cmluZygiamtsXDBtbm8iLCA3KSwgOjpzdGQ6OnN0cmluZyhH
ZXRDYXB0dXJlZFN0ZGVycigpKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgc3Rkb3V0IGFuZCBzdGRl
cnIgY2FwdHVyZSBkb24ndCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyLgotVEVTVChDYXB0dXJl
VGVzdCwgQ2FwdHVyZXNTdGRvdXRBbmRTdGRlcnIpIHsKLSAgQ2FwdHVyZVN0ZG91dCgpOwotICBD
YXB0dXJlU3RkZXJyKCk7Ci0gIGZwcmludGYoc3Rkb3V0LCAicHFyIik7Ci0gIGZwcmludGYoc3Rk
ZXJyLCAic3R1Iik7Ci0gIEVYUEVDVF9TVFJFUSgicHFyIiwgR2V0Q2FwdHVyZWRTdGRvdXQoKS5j
X3N0cigpKTsKLSAgRVhQRUNUX1NUUkVRKCJzdHUiLCBHZXRDYXB0dXJlZFN0ZGVycigpLmNfc3Ry
KCkpOwotfQotCi1URVNUKENhcHR1cmVEZWF0aFRlc3QsIENhbm5vdFJlZW50ZXJTdGRvdXRDYXB0
dXJlKSB7Ci0gIENhcHR1cmVTdGRvdXQoKTsKLSAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChD
YXB0dXJlU3Rkb3V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9ubHkgb25lIHN0
ZG91dCBjYXB0dXJlciBjYW4gZXhpc3QgYXQgYSB0aW1lIik7Ci0gIEdldENhcHR1cmVkU3Rkb3V0
KCk7Ci0KLSAgLy8gV2UgY2Fubm90IHRlc3Qgc3RkZXJyIGNhcHR1cmluZyB1c2luZyBkZWF0aCB0
ZXN0cyBhcyB0aGV5IHVzZSBpdAotICAvLyB0aGVtc2VsdmVzLgotfQotCi0jZW5kaWYgIC8vICFH
VEVTVF9PU19XSU5ET1dTX01PQklMRQotCi1URVNUKFRocmVhZExvY2FsVGVzdCwgRGVmYXVsdENv
bnN0cnVjdG9ySW5pdGlhbGl6ZXNUb0RlZmF1bHRWYWx1ZXMpIHsKLSAgVGhyZWFkTG9jYWw8aW50
PiB0MTsKLSAgRVhQRUNUX0VRKDAsIHQxLmdldCgpKTsKLQotICBUaHJlYWRMb2NhbDx2b2lkKj4g
dDI7Ci0gIEVYUEVDVF9UUlVFKHQyLmdldCgpID09IE5VTEwpOwotfQotCi1URVNUKFRocmVhZExv
Y2FsVGVzdCwgU2luZ2xlUGFyYW1Db25zdHJ1Y3RvckluaXRpYWxpemVzVG9QYXJhbSkgewotICBU
aHJlYWRMb2NhbDxpbnQ+IHQxKDEyMyk7Ci0gIEVYUEVDVF9FUSgxMjMsIHQxLmdldCgpKTsKLQot
ICBpbnQgaSA9IDA7Ci0gIFRocmVhZExvY2FsPGludCo+IHQyKCZpKTsKLSAgRVhQRUNUX0VRKCZp
LCB0Mi5nZXQoKSk7Ci19Ci0KLWNsYXNzIE5vRGVmYXVsdENvbnRydWN0b3IgewotIHB1YmxpYzoK
LSAgZXhwbGljaXQgTm9EZWZhdWx0Q29udHJ1Y3Rvcihjb25zdCBjaGFyKikge30KLSAgTm9EZWZh
dWx0Q29udHJ1Y3Rvcihjb25zdCBOb0RlZmF1bHRDb250cnVjdG9yJikge30KLX07Ci0KLVRFU1Qo
VGhyZWFkTG9jYWxUZXN0LCBWYWx1ZURlZmF1bHRDb250cnVjdG9ySXNOb3RSZXF1aXJlZEZvclBh
cmFtVmVyc2lvbikgewotICBUaHJlYWRMb2NhbDxOb0RlZmF1bHRDb250cnVjdG9yPiBiYXIoTm9E
ZWZhdWx0Q29udHJ1Y3RvcigiZm9vIikpOwotICBiYXIucG9pbnRlcigpOwotfQotCi1URVNUKFRo
cmVhZExvY2FsVGVzdCwgR2V0QW5kUG9pbnRlclJldHVyblNhbWVWYWx1ZSkgewotICBUaHJlYWRM
b2NhbDxzdGQ6OnN0cmluZz4gdGhyZWFkX2xvY2FsX3N0cmluZzsKLQotICBFWFBFQ1RfRVEodGhy
ZWFkX2xvY2FsX3N0cmluZy5wb2ludGVyKCksICYodGhyZWFkX2xvY2FsX3N0cmluZy5nZXQoKSkp
OwotCi0gIC8vIFZlcmlmaWVzIHRoZSBjb25kaXRpb24gc3RpbGwgaG9sZHMgYWZ0ZXIgY2FsbGlu
ZyBzZXQuCi0gIHRocmVhZF9sb2NhbF9zdHJpbmcuc2V0KCJmb28iKTsKLSAgRVhQRUNUX0VRKHRo
cmVhZF9sb2NhbF9zdHJpbmcucG9pbnRlcigpLCAmKHRocmVhZF9sb2NhbF9zdHJpbmcuZ2V0KCkp
KTsKLX0KLQotVEVTVChUaHJlYWRMb2NhbFRlc3QsIFBvaW50ZXJBbmRDb25zdFBvaW50ZXJSZXR1
cm5TYW1lVmFsdWUpIHsKLSAgVGhyZWFkTG9jYWw8c3RkOjpzdHJpbmc+IHRocmVhZF9sb2NhbF9z
dHJpbmc7Ci0gIGNvbnN0IFRocmVhZExvY2FsPHN0ZDo6c3RyaW5nPiYgY29uc3RfdGhyZWFkX2xv
Y2FsX3N0cmluZyA9Ci0gICAgICB0aHJlYWRfbG9jYWxfc3RyaW5nOwotCi0gIEVYUEVDVF9FUSh0
aHJlYWRfbG9jYWxfc3RyaW5nLnBvaW50ZXIoKSwgY29uc3RfdGhyZWFkX2xvY2FsX3N0cmluZy5w
b2ludGVyKCkpOwotCi0gIHRocmVhZF9sb2NhbF9zdHJpbmcuc2V0KCJmb28iKTsKLSAgRVhQRUNU
X0VRKHRocmVhZF9sb2NhbF9zdHJpbmcucG9pbnRlcigpLCBjb25zdF90aHJlYWRfbG9jYWxfc3Ry
aW5nLnBvaW50ZXIoKSk7Ci19Ci0KLSNpZiBHVEVTVF9JU19USFJFQURTQUZFCi0KLXZvaWQgQWRk
VHdvKGludCogcGFyYW0pIHsgKnBhcmFtICs9IDI7IH0KLQotVEVTVChUaHJlYWRXaXRoUGFyYW1U
ZXN0LCBDb25zdHJ1Y3RvckV4ZWN1dGVzVGhyZWFkRnVuYykgewotICBpbnQgaSA9IDQwOwotICBU
aHJlYWRXaXRoUGFyYW08aW50Kj4gdGhyZWFkKCZBZGRUd28sICZpLCBOVUxMKTsKLSAgdGhyZWFk
LkpvaW4oKTsKLSAgRVhQRUNUX0VRKDQyLCBpKTsKLX0KLQotVEVTVChNdXRleERlYXRoVGVzdCwg
QXNzZXJ0SGVsZFNob3VsZEFzc2VydFdoZW5Ob3RMb2NrZWQpIHsKLSAgLy8gQXNzZXJ0SGVsZCgp
IGlzIGZsYWt5IG9ubHkgaW4gdGhlIHByZXNlbmNlIG9mIG11bHRpcGxlIHRocmVhZHMgYWNjZXNz
aW5nCi0gIC8vIHRoZSBsb2NrLiBJbiB0aGlzIGNhc2UsIHRoZSB0ZXN0IGlzIHJvYnVzdC4KLSAg
RVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCh7Ci0gICAgTXV0ZXggbTsKLSAgICB7IE11dGV4TG9j
ayBsb2NrKCZtKTsgfQotICAgIG0uQXNzZXJ0SGVsZCgpOwotICB9LAotICAidGhyZWFkIC4qaG9s
ZCIpOwotfQotCi1URVNUKE11dGV4VGVzdCwgQXNzZXJ0SGVsZFNob3VsZE5vdEFzc2VydFdoZW5M
b2NrZWQpIHsKLSAgTXV0ZXggbTsKLSAgTXV0ZXhMb2NrIGxvY2soJm0pOwotICBtLkFzc2VydEhl
bGQoKTsKLX0KLQotY2xhc3MgQXRvbWljQ291bnRlcldpdGhNdXRleCB7Ci0gcHVibGljOgotICBl
eHBsaWNpdCBBdG9taWNDb3VudGVyV2l0aE11dGV4KE11dGV4KiBtdXRleCkgOgotICAgIHZhbHVl
XygwKSwgbXV0ZXhfKG11dGV4KSwgcmFuZG9tXyg0Mikge30KLQotICB2b2lkIEluY3JlbWVudCgp
IHsKLSAgICBNdXRleExvY2sgbG9jayhtdXRleF8pOwotICAgIGludCB0ZW1wID0gdmFsdWVfOwot
ICAgIHsKLSAgICAgIC8vIFdlIG5lZWQgdG8gcHV0IHVwIGEgbWVtb3J5IGJhcnJpZXIgdG8gcHJl
dmVudCByZWFkcyBhbmQgd3JpdGVzIHRvCi0gICAgICAvLyB2YWx1ZV8gcmVhcnJhbmdlZCB3aXRo
IHRoZSBjYWxsIHRvIFNsZWVwTWlsbGlzZWNvbmRzIHdoZW4gb2JzZXJ2ZWQKLSAgICAgIC8vIGZy
b20gb3RoZXIgdGhyZWFkcy4KLSNpZiBHVEVTVF9IQVNfUFRIUkVBRAotICAgICAgLy8gT24gUE9T
SVgsIGxvY2tpbmcgYSBtdXRleCBwdXRzIHVwIGEgbWVtb3J5IGJhcnJpZXIuICBXZSBjYW5ub3Qg
dXNlCi0gICAgICAvLyBNdXRleCBhbmQgTXV0ZXhMb2NrIGhlcmUgb3IgcmVseSBvbiB0aGVpciBt
ZW1vcnkgYmFycmllcgotICAgICAgLy8gZnVuY3Rpb25hbGl0eSBhcyB3ZSBhcmUgdGVzdGluZyB0
aGVtIGhlcmUuCi0gICAgICBwdGhyZWFkX211dGV4X3QgbWVtb3J5X2JhcnJpZXJfbXV0ZXg7Ci0g
ICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXygKLSAgICAgICAgICBwdGhyZWFkX211dGV4
X2luaXQoJm1lbW9yeV9iYXJyaWVyX211dGV4LCBOVUxMKSk7Ci0gICAgICBHVEVTVF9DSEVDS19Q
T1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X2xvY2soJm1lbW9yeV9iYXJyaWVyX211dGV4KSk7
Ci0KLSAgICAgIFNsZWVwTWlsbGlzZWNvbmRzKHJhbmRvbV8uR2VuZXJhdGUoMzApKTsKLQotICAg
ICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF91bmxvY2soJm1lbW9y
eV9iYXJyaWVyX211dGV4KSk7Ci0gICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhy
ZWFkX211dGV4X2Rlc3Ryb3koJm1lbW9yeV9iYXJyaWVyX211dGV4KSk7Ci0jZWxpZiBHVEVTVF9P
U19XSU5ET1dTCi0gICAgICAvLyBPbiBXaW5kb3dzLCBwZXJmb3JtaW5nIGFuIGludGVybG9ja2Vk
IGFjY2VzcyBwdXRzIHVwIGEgbWVtb3J5IGJhcnJpZXIuCi0gICAgICB2b2xhdGlsZSBMT05HIGR1
bW15ID0gMDsKLSAgICAgIDo6SW50ZXJsb2NrZWRJbmNyZW1lbnQoJmR1bW15KTsKLSAgICAgIFNs
ZWVwTWlsbGlzZWNvbmRzKHJhbmRvbV8uR2VuZXJhdGUoMzApKTsKLSAgICAgIDo6SW50ZXJsb2Nr
ZWRJbmNyZW1lbnQoJmR1bW15KTsKLSNlbHNlCi0jIGVycm9yICJNZW1vcnkgYmFycmllciBub3Qg
aW1wbGVtZW50ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCi0jZW5kaWYgIC8vIEdURVNUX0hBU19QVEhS
RUFECi0gICAgfQotICAgIHZhbHVlXyA9IHRlbXAgKyAxOwotICB9Ci0gIGludCB2YWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIHZhbHVlXzsgfQotCi0gcHJpdmF0ZToKLSAgdm9sYXRpbGUgaW50IHZhbHVl
XzsKLSAgTXV0ZXgqIGNvbnN0IG11dGV4XzsgIC8vIFByb3RlY3RzIHZhbHVlXy4KLSAgUmFuZG9t
ICAgICAgIHJhbmRvbV87Ci19OwotCi12b2lkIENvdW50aW5nVGhyZWFkRnVuYyhwYWlyPEF0b21p
Y0NvdW50ZXJXaXRoTXV0ZXgqLCBpbnQ+IHBhcmFtKSB7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwg
cGFyYW0uc2Vjb25kOyArK2kpCi0gICAgICBwYXJhbS5maXJzdC0+SW5jcmVtZW50KCk7Ci19Ci0K
LS8vIFRlc3RzIHRoYXQgdGhlIG11dGV4IG9ubHkgbGV0cyBvbmUgdGhyZWFkIGF0IGEgdGltZSB0
byBsb2NrIGl0LgotVEVTVChNdXRleFRlc3QsIE9ubHlPbmVUaHJlYWRDYW5Mb2NrQXRBVGltZSkg
ewotICBNdXRleCBtdXRleDsKLSAgQXRvbWljQ291bnRlcldpdGhNdXRleCBsb2NrZWRfY291bnRl
cigmbXV0ZXgpOwotCi0gIHR5cGVkZWYgVGhyZWFkV2l0aFBhcmFtPHBhaXI8QXRvbWljQ291bnRl
cldpdGhNdXRleCosIGludD4gPiBUaHJlYWRUeXBlOwotICBjb25zdCBpbnQga0N5Y2xlQ291bnQg
PSAyMDsKLSAgY29uc3QgaW50IGtUaHJlYWRDb3VudCA9IDc7Ci0gIHNjb3BlZF9wdHI8VGhyZWFk
VHlwZT4gY291bnRpbmdfdGhyZWFkc1trVGhyZWFkQ291bnRdOwotICBOb3RpZmljYXRpb24gdGhy
ZWFkc19jYW5fc3RhcnQ7Ci0gIC8vIENyZWF0ZXMgYW5kIHJ1bnMga1RocmVhZENvdW50IHRocmVh
ZHMgdGhhdCBpbmNyZW1lbnQgbG9ja2VkX2NvdW50ZXIKLSAgLy8ga0N5Y2xlQ291bnQgdGltZXMg
ZWFjaC4KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBrVGhyZWFkQ291bnQ7ICsraSkgewotICAgIGNv
dW50aW5nX3RocmVhZHNbaV0ucmVzZXQobmV3IFRocmVhZFR5cGUoJkNvdW50aW5nVGhyZWFkRnVu
YywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VfcGFp
cigmbG9ja2VkX2NvdW50ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga0N5Y2xlQ291bnQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJnRocmVhZHNfY2FuX3N0YXJ0KSk7Ci0gIH0KLSAgdGhyZWFk
c19jYW5fc3RhcnQuTm90aWZ5KCk7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwga1RocmVhZENvdW50
OyArK2kpCi0gICAgY291bnRpbmdfdGhyZWFkc1tpXS0+Sm9pbigpOwotCi0gIC8vIElmIHRoZSBt
dXRleCBsZXRzIG1vcmUgdGhhbiBvbmUgdGhyZWFkIHRvIGluY3JlbWVudCB0aGUgY291bnRlciBh
dCBhCi0gIC8vIHRpbWUsIHRoZXkgYXJlIGxpa2VseSB0byBlbmNvdW50ZXIgYSByYWNlIGNvbmRp
dGlvbiBhbmQgaGF2ZSBzb21lCi0gIC8vIGluY3JlbWVudHMgb3ZlcndyaXR0ZW4sIHJlc3VsdGlu
ZyBpbiB0aGUgbG93ZXIgdGhlbiBleHBlY3RlZCBjb3VudGVyCi0gIC8vIHZhbHVlLgotICBFWFBF
Q1RfRVEoa0N5Y2xlQ291bnQgKiBrVGhyZWFkQ291bnQsIGxvY2tlZF9jb3VudGVyLnZhbHVlKCkp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQgUnVuRnJvbVRocmVhZCh2b2lkIChm
dW5jKShUKSwgVCBwYXJhbSkgewotICBUaHJlYWRXaXRoUGFyYW08VD4gdGhyZWFkKGZ1bmMsIHBh
cmFtLCBOVUxMKTsKLSAgdGhyZWFkLkpvaW4oKTsKLX0KLQotdm9pZCBSZXRyaWV2ZVRocmVhZExv
Y2FsVmFsdWUoCi0gICAgcGFpcjxUaHJlYWRMb2NhbDxzdGQ6OnN0cmluZz4qLCBzdGQ6OnN0cmlu
Zyo+IHBhcmFtKSB7Ci0gICpwYXJhbS5zZWNvbmQgPSBwYXJhbS5maXJzdC0+Z2V0KCk7Ci19Ci0K
LVRFU1QoVGhyZWFkTG9jYWxUZXN0LCBQYXJhbWV0ZXJpemVkQ29uc3RydWN0b3JTZXRzRGVmYXVs
dCkgewotICBUaHJlYWRMb2NhbDxzdGQ6OnN0cmluZz4gdGhyZWFkX2xvY2FsX3N0cmluZygiZm9v
Iik7Ci0gIEVYUEVDVF9TVFJFUSgiZm9vIiwgdGhyZWFkX2xvY2FsX3N0cmluZy5nZXQoKS5jX3N0
cigpKTsKLQotICB0aHJlYWRfbG9jYWxfc3RyaW5nLnNldCgiYmFyIik7Ci0gIEVYUEVDVF9TVFJF
USgiYmFyIiwgdGhyZWFkX2xvY2FsX3N0cmluZy5nZXQoKS5jX3N0cigpKTsKLQotICBzdGQ6OnN0
cmluZyByZXN1bHQ7Ci0gIFJ1bkZyb21UaHJlYWQoJlJldHJpZXZlVGhyZWFkTG9jYWxWYWx1ZSwK
LSAgICAgICAgICAgICAgICBtYWtlX3BhaXIoJnRocmVhZF9sb2NhbF9zdHJpbmcsICZyZXN1bHQp
KTsKLSAgRVhQRUNUX1NUUkVRKCJmb28iLCByZXN1bHQuY19zdHIoKSk7Ci19Ci0KLS8vIEtlZXBz
IHRyYWNrIG9mIHdoZXRoZXIgb2YgZGVzdHJ1Y3RvcnMgYmVpbmcgY2FsbGVkIG9uIGluc3RhbmNl
cyBvZgotLy8gRGVzdHJ1Y3RvclRyYWNrZXIuICBPbiBXaW5kb3dzLCB3YWl0cyBmb3IgdGhlIGRl
c3RydWN0b3IgY2FsbCByZXBvcnRzLgotY2xhc3MgRGVzdHJ1Y3RvckNhbGwgewotIHB1YmxpYzoK
LSAgRGVzdHJ1Y3RvckNhbGwoKSB7Ci0gICAgaW52b2tlZF8gPSBmYWxzZTsKLSNpZiBHVEVTVF9P
U19XSU5ET1dTCi0gICAgd2FpdF9ldmVudF8uUmVzZXQoOjpDcmVhdGVFdmVudChOVUxMLCBUUlVF
LCBGQUxTRSwgTlVMTCkpOwotICAgIEdURVNUX0NIRUNLXyh3YWl0X2V2ZW50Xy5HZXQoKSAhPSBO
VUxMKTsKLSNlbmRpZgotICB9Ci0KLSAgYm9vbCBDaGVja0Rlc3Ryb3llZCgpIGNvbnN0IHsKLSNp
ZiBHVEVTVF9PU19XSU5ET1dTCi0gICAgaWYgKDo6V2FpdEZvclNpbmdsZU9iamVjdCh3YWl0X2V2
ZW50Xy5HZXQoKSwgMTAwMCkgIT0gV0FJVF9PQkpFQ1RfMCkKLSAgICAgIHJldHVybiBmYWxzZTsK
LSNlbmRpZgotICAgIHJldHVybiBpbnZva2VkXzsKLSAgfQotCi0gIHZvaWQgUmVwb3J0RGVzdHJv
eWVkKCkgewotICAgIGludm9rZWRfID0gdHJ1ZTsKLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0gICAg
OjpTZXRFdmVudCh3YWl0X2V2ZW50Xy5HZXQoKSk7Ci0jZW5kaWYKLSAgfQotCi0gIHN0YXRpYyBz
dGQ6OnZlY3RvcjxEZXN0cnVjdG9yQ2FsbCo+JiBMaXN0KCkgeyByZXR1cm4gKmxpc3RfOyB9Ci0K
LSAgc3RhdGljIHZvaWQgUmVzZXRMaXN0KCkgewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdF8tPnNpemUoKTsgKytpKSB7Ci0gICAgICBkZWxldGUgbGlzdF8tPmF0KGkpOwotICAgIH0K
LSAgICBsaXN0Xy0+Y2xlYXIoKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgYm9vbCBpbnZva2VkXzsK
LSNpZiBHVEVTVF9PU19XSU5ET1dTCi0gIEF1dG9IYW5kbGUgd2FpdF9ldmVudF87Ci0jZW5kaWYK
LSAgc3RhdGljIHN0ZDo6dmVjdG9yPERlc3RydWN0b3JDYWxsKj4qIGNvbnN0IGxpc3RfOwotCi0g
IEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oRGVzdHJ1Y3RvckNhbGwpOwotfTsKLQot
c3RkOjp2ZWN0b3I8RGVzdHJ1Y3RvckNhbGwqPiogY29uc3QgRGVzdHJ1Y3RvckNhbGw6Omxpc3Rf
ID0KLSAgICBuZXcgc3RkOjp2ZWN0b3I8RGVzdHJ1Y3RvckNhbGwqPjsKLQotLy8gRGVzdHJ1Y3Rv
clRyYWNrZXIga2VlcHMgdHJhY2sgb2Ygd2hldGhlciBpdHMgaW5zdGFuY2VzIGhhdmUgYmVlbgot
Ly8gZGVzdHJveWVkLgotY2xhc3MgRGVzdHJ1Y3RvclRyYWNrZXIgewotIHB1YmxpYzoKLSAgRGVz
dHJ1Y3RvclRyYWNrZXIoKSA6IGluZGV4XyhHZXROZXdJbmRleCgpKSB7fQotICBEZXN0cnVjdG9y
VHJhY2tlcihjb25zdCBEZXN0cnVjdG9yVHJhY2tlciYgLyogcmhzICovKQotICAgICAgOiBpbmRl
eF8oR2V0TmV3SW5kZXgoKSkge30KLSAgfkRlc3RydWN0b3JUcmFja2VyKCkgewotICAgIC8vIFdl
IG5ldmVyIGFjY2VzcyBEZXN0cnVjdG9yQ2FsbDo6TGlzdCgpIGNvbmN1cnJlbnRseSwgc28gd2Ug
ZG9uJ3QgbmVlZAotICAgIC8vIHRvIHByb3RlY3QgdGhpcyBhY2Nlc3Mgd2l0aCBhIG11dGV4Lgot
ICAgIERlc3RydWN0b3JDYWxsOjpMaXN0KClbaW5kZXhfXS0+UmVwb3J0RGVzdHJveWVkKCk7Ci0g
IH0KLQotIHByaXZhdGU6Ci0gIHN0YXRpYyBzaXplX3QgR2V0TmV3SW5kZXgoKSB7Ci0gICAgRGVz
dHJ1Y3RvckNhbGw6Okxpc3QoKS5wdXNoX2JhY2sobmV3IERlc3RydWN0b3JDYWxsKTsKLSAgICBy
ZXR1cm4gRGVzdHJ1Y3RvckNhbGw6Okxpc3QoKS5zaXplKCkgLSAxOwotICB9Ci0gIGNvbnN0IHNp
emVfdCBpbmRleF87Ci0KLSAgR1RFU1RfRElTQUxMT1dfQVNTSUdOXyhEZXN0cnVjdG9yVHJhY2tl
cik7Ci19OwotCi10eXBlZGVmIFRocmVhZExvY2FsPERlc3RydWN0b3JUcmFja2VyPiogVGhyZWFk
UGFyYW07Ci0KLXZvaWQgQ2FsbFRocmVhZExvY2FsR2V0KFRocmVhZFBhcmFtIHRocmVhZF9sb2Nh
bF9wYXJhbSkgewotICB0aHJlYWRfbG9jYWxfcGFyYW0tPmdldCgpOwotfQotCi0vLyBUZXN0cyB0
aGF0IHdoZW4gYSBUaHJlYWRMb2NhbCBvYmplY3QgZGllcyBpbiBhIHRocmVhZCwgaXQgZGVzdHJv
eXMKLS8vIHRoZSBtYW5hZ2VkIG9iamVjdCBmb3IgdGhhdCB0aHJlYWQuCi1URVNUKFRocmVhZExv
Y2FsVGVzdCwgRGVzdHJveXNNYW5hZ2VkT2JqZWN0Rm9yT3duVGhyZWFkV2hlbkR5aW5nKSB7Ci0g
IERlc3RydWN0b3JDYWxsOjpSZXNldExpc3QoKTsKLQotICB7Ci0gICAgVGhyZWFkTG9jYWw8RGVz
dHJ1Y3RvclRyYWNrZXI+IHRocmVhZF9sb2NhbF90cmFja2VyOwotICAgIEFTU0VSVF9FUSgwVSwg
RGVzdHJ1Y3RvckNhbGw6Okxpc3QoKS5zaXplKCkpOwotCi0gICAgLy8gVGhpcyBjcmVhdGVzIGFu
b3RoZXIgRGVzdHJ1Y3RvclRyYWNrZXIgb2JqZWN0IGZvciB0aGUgbWFpbiB0aHJlYWQuCi0gICAg
dGhyZWFkX2xvY2FsX3RyYWNrZXIuZ2V0KCk7Ci0gICAgQVNTRVJUX0VRKDFVLCBEZXN0cnVjdG9y
Q2FsbDo6TGlzdCgpLnNpemUoKSk7Ci0gICAgQVNTRVJUX0ZBTFNFKERlc3RydWN0b3JDYWxsOjpM
aXN0KClbMF0tPkNoZWNrRGVzdHJveWVkKCkpOwotICB9Ci0KLSAgLy8gTm93IHRocmVhZF9sb2Nh
bF90cmFja2VyIGhhcyBkaWVkLgotICBBU1NFUlRfRVEoMVUsIERlc3RydWN0b3JDYWxsOjpMaXN0
KCkuc2l6ZSgpKTsKLSAgRVhQRUNUX1RSVUUoRGVzdHJ1Y3RvckNhbGw6Okxpc3QoKVswXS0+Q2hl
Y2tEZXN0cm95ZWQoKSk7Ci0KLSAgRGVzdHJ1Y3RvckNhbGw6OlJlc2V0TGlzdCgpOwotfQotCi0v
LyBUZXN0cyB0aGF0IHdoZW4gYSB0aHJlYWQgZXhpdHMsIHRoZSB0aHJlYWQtbG9jYWwgb2JqZWN0
IGZvciB0aGF0Ci0vLyB0aHJlYWQgaXMgZGVzdHJveWVkLgotVEVTVChUaHJlYWRMb2NhbFRlc3Qs
IERlc3Ryb3lzTWFuYWdlZE9iamVjdEF0VGhyZWFkRXhpdCkgewotICBEZXN0cnVjdG9yQ2FsbDo6
UmVzZXRMaXN0KCk7Ci0KLSAgewotICAgIFRocmVhZExvY2FsPERlc3RydWN0b3JUcmFja2VyPiB0
aHJlYWRfbG9jYWxfdHJhY2tlcjsKLSAgICBBU1NFUlRfRVEoMFUsIERlc3RydWN0b3JDYWxsOjpM
aXN0KCkuc2l6ZSgpKTsKLQotICAgIC8vIFRoaXMgY3JlYXRlcyBhbm90aGVyIERlc3RydWN0b3JU
cmFja2VyIG9iamVjdCBpbiB0aGUgbmV3IHRocmVhZC4KLSAgICBUaHJlYWRXaXRoUGFyYW08VGhy
ZWFkUGFyYW0+IHRocmVhZCgKLSAgICAgICAgJkNhbGxUaHJlYWRMb2NhbEdldCwgJnRocmVhZF9s
b2NhbF90cmFja2VyLCBOVUxMKTsKLSAgICB0aHJlYWQuSm9pbigpOwotCi0gICAgLy8gVGhlIHRo
cmVhZCBoYXMgZXhpdGVkLCBhbmQgd2Ugc2hvdWxkIGhhdmUgYSBEZXN0cm95ZWRUcmFja2VyCi0g
ICAgLy8gaW5zdGFuY2UgY3JlYXRlZCBmb3IgaXQuIEJ1dCBpdCBtYXkgbm90IGhhdmUgYmVlbiBk
ZXN0cm95ZWQgeWV0LgotICAgIEFTU0VSVF9FUSgxVSwgRGVzdHJ1Y3RvckNhbGw6Okxpc3QoKS5z
aXplKCkpOwotICB9Ci0KLSAgLy8gVGhlIHRocmVhZCBoYXMgZXhpdGVkIGFuZCB0aHJlYWRfbG9j
YWxfdHJhY2tlciBoYXMgZGllZC4KLSAgQVNTRVJUX0VRKDFVLCBEZXN0cnVjdG9yQ2FsbDo6TGlz
dCgpLnNpemUoKSk7Ci0gIEVYUEVDVF9UUlVFKERlc3RydWN0b3JDYWxsOjpMaXN0KClbMF0tPkNo
ZWNrRGVzdHJveWVkKCkpOwotCi0gIERlc3RydWN0b3JDYWxsOjpSZXNldExpc3QoKTsKLX0KLQot
VEVTVChUaHJlYWRMb2NhbFRlc3QsIFRocmVhZExvY2FsTXV0YXRpb25zQWZmZWN0T25seUN1cnJl
bnRUaHJlYWQpIHsKLSAgVGhyZWFkTG9jYWw8c3RkOjpzdHJpbmc+IHRocmVhZF9sb2NhbF9zdHJp
bmc7Ci0gIHRocmVhZF9sb2NhbF9zdHJpbmcuc2V0KCJGb28iKTsKLSAgRVhQRUNUX1NUUkVRKCJG
b28iLCB0aHJlYWRfbG9jYWxfc3RyaW5nLmdldCgpLmNfc3RyKCkpOwotCi0gIHN0ZDo6c3RyaW5n
IHJlc3VsdDsKLSAgUnVuRnJvbVRocmVhZCgmUmV0cmlldmVUaHJlYWRMb2NhbFZhbHVlLAotICAg
ICAgICAgICAgICAgIG1ha2VfcGFpcigmdGhyZWFkX2xvY2FsX3N0cmluZywgJnJlc3VsdCkpOwot
ICBFWFBFQ1RfVFJVRShyZXN1bHQuZW1wdHkoKSk7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSVNf
VEhSRUFEU0FGRQotCi0jaWYgR1RFU1RfT1NfV0lORE9XUwotVEVTVChXaW5kb3dzVHlwZXNUZXN0
LCBIQU5ETEVJc1ZvaWRTdGFyKSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxIQU5ETEUsIHZvaWQq
PigpOwotfQotCi0jaWYgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAmJiAhZGVmaW5lZChfX01JTkdX
NjRfVkVSU0lPTl9NQUpPUikKLVRFU1QoV2luZG93c1R5cGVzVGVzdCwgX0NSSVRJQ0FMX1NFQ1RJ
T05Jc19DUklUSUNBTF9TRUNUSU9OKSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxDUklUSUNBTF9T
RUNUSU9OLCBfQ1JJVElDQUxfU0VDVElPTj4oKTsKLX0KLSNlbHNlCi1URVNUKFdpbmRvd3NUeXBl
c1Rlc3QsIENSSVRJQ0FMX1NFQ1RJT05Jc19SVExfQ1JJVElDQUxfU0VDVElPTikgewotICBTdGF0
aWNBc3NlcnRUeXBlRXE8Q1JJVElDQUxfU0VDVElPTiwgX1JUTF9DUklUSUNBTF9TRUNUSU9OPigp
OwotfQotI2VuZGlmCi0KLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotCi19ICAvLyBuYW1l
c3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LXByaW50ZXJzX3Rlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LXByaW50ZXJzX3Rlc3QuY2MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhNmMwMTdlZGJjZWIzYWE5ZTEwMzQ2M2JiMjA0YWJi
M2QxOWY0NDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC1wcmludGVyc190ZXN0LmNjCisr
KyAvZGV2L251bGwKQEAgLTEsMTcwMCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNywgR29vZ2xl
IEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlv
bmcgV2FuKQotCi0vLyBHb29nbGUgVGVzdCAtIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3
b3JrCi0vLwotLy8gVGhpcyBmaWxlIHRlc3RzIHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlci4K
LQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCi0KLSNpbmNsdWRlIDxjdHlwZS5o
PgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGFs
Z29yaXRobT4KLSNpbmNsdWRlIDxkZXF1ZT4KLSNpbmNsdWRlIDxsaXN0PgotI2luY2x1ZGUgPG1h
cD4KLSNpbmNsdWRlIDxzZXQ+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDxzdHJpbmc+
Ci0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KLSNpbmNsdWRlICJndGVz
dC9ndGVzdC5oIgotCi0vLyBoYXNoX21hcCBhbmQgaGFzaF9zZXQgYXJlIGF2YWlsYWJsZSB1bmRl
ciBWaXN1YWwgQysrLCBvciBvbiBMaW51eC4KLSNpZiBHVEVTVF9IQVNfVU5PUkRFUkVEX01BUF8K
LSMgaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4gICAgICAgLy8gTk9MSU5UCi0jZWxpZiBHVEVTVF9I
QVNfSEFTSF9NQVBfCi0jIGluY2x1ZGUgPGhhc2hfbWFwPiAgICAgICAgICAgIC8vIE5PTElOVAot
I2VuZGlmICAvLyBHVEVTVF9IQVNfSEFTSF9NQVBfCi0KLSNpZiBHVEVTVF9IQVNfVU5PUkRFUkVE
X1NFVF8KLSMgaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4gICAgICAgLy8gTk9MSU5UCi0jZWxpZiBH
VEVTVF9IQVNfSEFTSF9TRVRfCi0jIGluY2x1ZGUgPGhhc2hfc2V0PiAgICAgICAgICAgIC8vIE5P
TElOVAotI2VuZGlmICAvLyBHVEVTVF9IQVNfSEFTSF9TRVRfCi0KLSNpZiBHVEVTVF9IQVNfU1RE
X0ZPUldBUkRfTElTVF8KLSMgaW5jbHVkZSA8Zm9yd2FyZF9saXN0PiAvLyBOT0xJTlQKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1NURF9GT1JXQVJEX0xJU1RfCi0KLS8vIFNvbWUgdXNlci1kZWZpbmVk
IHR5cGVzIGZvciB0ZXN0aW5nIHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlci4KLQotLy8gQW4g
YW5vbnltb3VzIGVudW0gdHlwZS4KLWVudW0gQW5vbnltb3VzRW51bSB7Ci0gIGtBRTEgPSAtMSwK
LSAga0FFMiA9IDEKLX07Ci0KLS8vIEFuIGVudW0gd2l0aG91dCBhIHVzZXItZGVmaW5lZCBwcmlu
dGVyLgotZW51bSBFbnVtV2l0aG91dFByaW50ZXIgewotICBrRVdQMSA9IC0yLAotICBrRVdQMiA9
IDQyCi19OwotCi0vLyBBbiBlbnVtIHdpdGggYSA8PCBvcGVyYXRvci4KLWVudW0gRW51bVdpdGhT
dHJlYW1pbmcgewotICBrRVdTMSA9IDEwCi19OwotCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwo
c3RkOjpvc3RyZWFtJiBvcywgRW51bVdpdGhTdHJlYW1pbmcgZSkgewotICByZXR1cm4gb3MgPDwg
KGUgPT0ga0VXUzEgPyAia0VXUzEiIDogImludmFsaWQiKTsKLX0KLQotLy8gQW4gZW51bSB3aXRo
IGEgUHJpbnRUbygpIGZ1bmN0aW9uLgotZW51bSBFbnVtV2l0aFByaW50VG8gewotICBrRVdQVDEg
PSAxCi19OwotCi12b2lkIFByaW50VG8oRW51bVdpdGhQcmludFRvIGUsIHN0ZDo6b3N0cmVhbSog
b3MpIHsKLSAgKm9zIDw8IChlID09IGtFV1BUMSA/ICJrRVdQVDEiIDogImludmFsaWQiKTsKLX0K
LQotLy8gQSBjbGFzcyBpbXBsaWNpdGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dlc3RJbnQuCi1jbGFz
cyBCaWdnZXN0SW50Q29udmVydGlibGUgewotIHB1YmxpYzoKLSAgb3BlcmF0b3IgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6QmlnZ2VzdEludCgpIGNvbnN0IHsgcmV0dXJuIDQyOyB9Ci19OwotCi0vLyBB
IHVzZXItZGVmaW5lZCB1bnByaW50YWJsZSBjbGFzcyB0ZW1wbGF0ZSBpbiB0aGUgZ2xvYmFsIG5h
bWVzcGFjZS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVW5wcmludGFibGVUZW1wbGF0
ZUluR2xvYmFsIHsKLSBwdWJsaWM6Ci0gIFVucHJpbnRhYmxlVGVtcGxhdGVJbkdsb2JhbCgpIDog
dmFsdWVfKCkge30KLSBwcml2YXRlOgotICBUIHZhbHVlXzsKLX07Ci0KLS8vIEEgdXNlci1kZWZp
bmVkIHN0cmVhbWFibGUgdHlwZSBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4KLWNsYXNzIFN0cmVh
bWFibGVJbkdsb2JhbCB7Ci0gcHVibGljOgotICB2aXJ0dWFsIH5TdHJlYW1hYmxlSW5HbG9iYWwo
KSB7fQotfTsKLQotaW5saW5lIHZvaWQgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNv
bnN0IFN0cmVhbWFibGVJbkdsb2JhbCYgLyogeCAqLykgewotICBvcyA8PCAiU3RyZWFtYWJsZUlu
R2xvYmFsIjsKLX0KLQotdm9pZCBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3Qg
U3RyZWFtYWJsZUluR2xvYmFsKiAvKiB4ICovKSB7Ci0gIG9zIDw8ICJTdHJlYW1hYmxlSW5HbG9i
YWwqIjsKLX0KLQotbmFtZXNwYWNlIGZvbyB7Ci0KLS8vIEEgdXNlci1kZWZpbmVkIHVucHJpbnRh
YmxlIHR5cGUgaW4gYSB1c2VyIG5hbWVzcGFjZS4KLWNsYXNzIFVucHJpbnRhYmxlSW5Gb28gewot
IHB1YmxpYzoKLSAgVW5wcmludGFibGVJbkZvbygpIDogel8oMCkgeyBtZW1jcHkoeHlfLCAiXHhF
Rlx4MTJceDBceDBceDM0XHhBQlx4MFx4MCIsIDgpOyB9Ci0gIGRvdWJsZSB6KCkgY29uc3QgeyBy
ZXR1cm4gel87IH0KLSBwcml2YXRlOgotICBjaGFyIHh5X1s4XTsKLSAgZG91YmxlIHpfOwotfTsK
LQotLy8gQSB1c2VyLWRlZmluZWQgcHJpbnRhYmxlIHR5cGUgaW4gYSB1c2VyLWNob3NlbiBuYW1l
c3BhY2UuCi1zdHJ1Y3QgUHJpbnRhYmxlVmlhUHJpbnRUbyB7Ci0gIFByaW50YWJsZVZpYVByaW50
VG8oKSA6IHZhbHVlKCkge30KLSAgaW50IHZhbHVlOwotfTsKLQotdm9pZCBQcmludFRvKGNvbnN0
IFByaW50YWJsZVZpYVByaW50VG8mIHgsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAqb3MgPDwg
IlByaW50YWJsZVZpYVByaW50VG86ICIgPDwgeC52YWx1ZTsKLX0KLQotLy8gQSB0eXBlIHdpdGgg
YSB1c2VyLWRlZmluZWQgPDwgZm9yIHByaW50aW5nIGl0cyBwb2ludGVyLgotc3RydWN0IFBvaW50
ZXJQcmludGFibGUgewotfTsKLQotOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9z
dHJlYW0mIG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9pbnRlclByaW50
YWJsZSogLyogeCAqLykgewotICByZXR1cm4gb3MgPDwgIlBvaW50ZXJQcmludGFibGUqIjsKLX0K
LQotLy8gQSB1c2VyLWRlZmluZWQgcHJpbnRhYmxlIGNsYXNzIHRlbXBsYXRlIGluIGEgdXNlci1j
aG9zZW4gbmFtZXNwYWNlLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBQcmludGFibGVW
aWFQcmludFRvVGVtcGxhdGUgewotIHB1YmxpYzoKLSAgZXhwbGljaXQgUHJpbnRhYmxlVmlhUHJp
bnRUb1RlbXBsYXRlKGNvbnN0IFQmIGFfdmFsdWUpIDogdmFsdWVfKGFfdmFsdWUpIHt9Ci0KLSAg
Y29uc3QgVCYgdmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZV87IH0KLSBwcml2YXRlOgotICBU
IHZhbHVlXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBQcmludFRvKGNvbnN0
IFByaW50YWJsZVZpYVByaW50VG9UZW1wbGF0ZTxUPiYgeCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
Ci0gICpvcyA8PCAiUHJpbnRhYmxlVmlhUHJpbnRUb1RlbXBsYXRlOiAiIDw8IHgudmFsdWUoKTsK
LX0KLQotLy8gQSB1c2VyLWRlZmluZWQgc3RyZWFtYWJsZSBjbGFzcyB0ZW1wbGF0ZSBpbiBhIHVz
ZXIgbmFtZXNwYWNlLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBTdHJlYW1hYmxlVGVt
cGxhdGVJbkZvbyB7Ci0gcHVibGljOgotICBTdHJlYW1hYmxlVGVtcGxhdGVJbkZvbygpIDogdmFs
dWVfKCkge30KLQotICBjb25zdCBUJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQot
IHByaXZhdGU6Ci0gIFQgdmFsdWVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1pbmxp
bmUgOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmVhbWFibGVUZW1wbGF0ZUluRm9v
PFQ+JiB4KSB7Ci0gIHJldHVybiBvcyA8PCAiU3RyZWFtYWJsZVRlbXBsYXRlSW5Gb286ICIgPDwg
eC52YWx1ZSgpOwotfQotCi0vLyBBIHVzZXItZGVmaW5lZCBzdHJlYW1hYmxlIGJ1dCByZWN1cnNp
dmx5LWRlZmluZWQgY29udGFpbmVyIHR5cGUgaW4gCi0vLyBhIHVzZXIgbmFtZXNwYWNlLCBpdCBt
aW1pY3MgdGhlcmVmb3JlIHN0ZDo6ZmlsZXN5c3RlbTo6cGF0aCBvcgotLy8gYm9vc3Q6OmZpbGVz
eXN0ZW06OnBhdGguCi1jbGFzcyBQYXRoTGlrZSB7Ci0gcHVibGljOgotICBzdHJ1Y3QgaXRlcmF0
b3IKLSAgewotICAgIHR5cGVkZWYgUGF0aExpa2UgdmFsdWVfdHlwZTsKLSAgfTsKLSAgdHlwZWRl
ZiBpdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKLQotICBQYXRoTGlrZSgpIHt9Ci0KLSAgaXRlcmF0
b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigpOyB9Ci0gIGl0ZXJhdG9yIGVuZCgp
IGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCk7IH0KLQotICBmcmllbmQgCi0gIDo6c3RkOjpvc3Ry
ZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgUGF0aExpa2UmKQotICB7
Ci0gICAgcmV0dXJuIG9zIDw8ICJTdHJlYW1hYmxlLVBhdGhMaWtlIjsKLSAgfQotfTsKLQotfSAg
Ly8gbmFtZXNwYWNlIGZvbwotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1uYW1lc3BhY2UgZ3Rlc3Rf
cHJpbnRlcnNfdGVzdCB7Ci0KLXVzaW5nIDo6c3RkOjpkZXF1ZTsKLXVzaW5nIDo6c3RkOjpsaXN0
OwotdXNpbmcgOjpzdGQ6Om1ha2VfcGFpcjsKLXVzaW5nIDo6c3RkOjptYXA7Ci11c2luZyA6OnN0
ZDo6bXVsdGltYXA7Ci11c2luZyA6OnN0ZDo6bXVsdGlzZXQ7Ci11c2luZyA6OnN0ZDo6cGFpcjsK
LXVzaW5nIDo6c3RkOjpzZXQ7Ci11c2luZyA6OnN0ZDo6dmVjdG9yOwotdXNpbmcgOjp0ZXN0aW5n
OjpQcmludFRvU3RyaW5nOwotdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0Rm9yQ29t
cGFyaXNvbkZhaWx1cmVNZXNzYWdlOwotdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SW1wbGlj
aXRDYXN0XzsKLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok5hdGl2ZUFycmF5OwotdXNpbmcg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6UkU7Ci11c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpSZWxh
dGlvblRvU291cmNlUmVmZXJlbmNlOwotdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6U3RyaW5n
czsKLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlVuaXZlcnNhbFByaW50OwotdXNpbmcgOjp0
ZXN0aW5nOjppbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnRlcjsKLXVzaW5nIDo6dGVzdGluZzo6aW50
ZXJuYWw6OlVuaXZlcnNhbFRlcnNlUHJpbnQ7Ci0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBH
VEVTVF9IQVNfU1REX1RVUExFXwotdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VW5pdmVyc2Fs
VGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzOwotI2VuZGlmCi11c2luZyA6OnRlc3Rpbmc6
OmludGVybmFsOjpzdHJpbmc7Ci0KLS8vIFRoZSBoYXNoXyogY2xhc3NlcyBhcmUgbm90IHBhcnQg
b2YgdGhlIEMrKyBzdGFuZGFyZC4gIFNUTHBvcnQKLS8vIGRlZmluZXMgdGhlbSBpbiBuYW1lc3Bh
Y2Ugc3RkLiAgTVNWQyBkZWZpbmVzIHRoZW0gaW4gOjpzdGRleHQuICBHQ0MKLS8vIGRlZmluZXMg
dGhlbSBpbiA6Oi4KLSNpZiBHVEVTVF9IQVNfVU5PUkRFUkVEX01BUF8KLQotI2RlZmluZSBHVEVT
VF9IQVNfSEFTSF9NQVBfIDEKLXRlbXBsYXRlPGNsYXNzIEtleSwgY2xhc3MgVD4KLXVzaW5nIGhh
c2hfbWFwID0gOjpzdGQ6OnVub3JkZXJlZF9tYXA8S2V5LCBUPjsKLXRlbXBsYXRlPGNsYXNzIEtl
eSwgY2xhc3MgVD4KLXVzaW5nIGhhc2hfbXVsdGltYXAgPSA6OnN0ZDo6dW5vcmRlcmVkX211bHRp
bWFwPEtleSwgVD47Ci0KLSNlbGlmIEdURVNUX0hBU19IQVNIX01BUF8KLQotI2lmZGVmIF9TVExQ
X0hBU0hfTUFQICAvLyBXZSBnb3QgPGhhc2hfbWFwPiBmcm9tIFNUTHBvcnQuCi11c2luZyA6OnN0
ZDo6aGFzaF9tYXA7Ci11c2luZyA6OnN0ZDo6aGFzaF9tdWx0aW1hcDsKLSNlbGlmIF9NU0NfVkVS
Ci11c2luZyA6OnN0ZGV4dDo6aGFzaF9tYXA7Ci11c2luZyA6OnN0ZGV4dDo6aGFzaF9tdWx0aW1h
cDsKLSNlbmRpZgotCi0jZW5kaWYKLQotI2lmIEdURVNUX0hBU19VTk9SREVSRURfU0VUXwotCi0j
ZGVmaW5lIEdURVNUX0hBU19IQVNIX1NFVF8gMQotdGVtcGxhdGU8Y2xhc3MgS2V5PgotdXNpbmcg
aGFzaF9zZXQgPSA6OnN0ZDo6dW5vcmRlcmVkX3NldDxLZXk+OwotdGVtcGxhdGU8Y2xhc3MgS2V5
PgotdXNpbmcgaGFzaF9tdWx0aXNldCA9IDo6c3RkOjp1bm9yZGVyZWRfbXVsdGlzZXQ8S2V5PjsK
LQotI2VsaWYgR1RFU1RfSEFTX0hBU0hfU0VUXwotCi0jaWZkZWYgX1NUTFBfSEFTSF9NQVAgIC8v
IFdlIGdvdCA8aGFzaF9tYXA+IGZyb20gU1RMcG9ydC4KLXVzaW5nIDo6c3RkOjpoYXNoX3NldDsK
LXVzaW5nIDo6c3RkOjpoYXNoX211bHRpc2V0OwotI2VsaWYgX01TQ19WRVIKLXVzaW5nIDo6c3Rk
ZXh0OjpoYXNoX3NldDsKLXVzaW5nIDo6c3RkZXh0OjpoYXNoX211bHRpc2V0OwotI2VuZGlmCi0K
LSNlbmRpZgotCi0vLyBQcmludHMgYSB2YWx1ZSB0byBhIHN0cmluZyB1c2luZyB0aGUgdW5pdmVy
c2FsIHZhbHVlIHByaW50ZXIuICBUaGlzCi0vLyBpcyBhIGhlbHBlciBmb3IgdGVzdGluZyBVbml2
ZXJzYWxQcmludGVyPFQ+OjpQcmludCgpIGZvciB2YXJpb3VzIHR5cGVzLgotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1zdGQ6OnN0cmluZyBQcmludChjb25zdCBUJiB2YWx1ZSkgewotICA6OnN0ZDo6
c3RyaW5nc3RyZWFtIHNzOwotICBVbml2ZXJzYWxQcmludGVyPFQ+OjpQcmludCh2YWx1ZSwgJnNz
KTsKLSAgcmV0dXJuIHNzLnN0cigpOwotfQotCi0vLyBQcmludHMgYSB2YWx1ZSBwYXNzZWQgYnkg
cmVmZXJlbmNlIHRvIGEgc3RyaW5nLCB1c2luZyB0aGUgdW5pdmVyc2FsCi0vLyB2YWx1ZSBwcmlu
dGVyLiAgVGhpcyBpcyBhIGhlbHBlciBmb3IgdGVzdGluZwotLy8gVW5pdmVyc2FsUHJpbnRlcjxU
Jj46OlByaW50KCkgZm9yIHZhcmlvdXMgdHlwZXMuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
ZDo6c3RyaW5nIFByaW50QnlSZWYoY29uc3QgVCYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0
cmVhbSBzczsKLSAgVW5pdmVyc2FsUHJpbnRlcjxUJj46OlByaW50KHZhbHVlLCAmc3MpOwotICBy
ZXR1cm4gc3Muc3RyKCk7Ci19Ci0KLS8vIFRlc3RzIHByaW50aW5nIHZhcmlvdXMgZW51bSB0eXBl
cy4KLQotVEVTVChQcmludEVudW1UZXN0LCBBbm9ueW1vdXNFbnVtKSB7Ci0gIEVYUEVDVF9FUSgi
LTEiLCBQcmludChrQUUxKSk7Ci0gIEVYUEVDVF9FUSgiMSIsIFByaW50KGtBRTIpKTsKLX0KLQot
VEVTVChQcmludEVudW1UZXN0LCBFbnVtV2l0aG91dFByaW50ZXIpIHsKLSAgRVhQRUNUX0VRKCIt
MiIsIFByaW50KGtFV1AxKSk7Ci0gIEVYUEVDVF9FUSgiNDIiLCBQcmludChrRVdQMikpOwotfQot
Ci1URVNUKFByaW50RW51bVRlc3QsIEVudW1XaXRoU3RyZWFtaW5nKSB7Ci0gIEVYUEVDVF9FUSgi
a0VXUzEiLCBQcmludChrRVdTMSkpOwotICBFWFBFQ1RfRVEoImludmFsaWQiLCBQcmludChzdGF0
aWNfY2FzdDxFbnVtV2l0aFN0cmVhbWluZz4oMCkpKTsKLX0KLQotVEVTVChQcmludEVudW1UZXN0
LCBFbnVtV2l0aFByaW50VG8pIHsKLSAgRVhQRUNUX0VRKCJrRVdQVDEiLCBQcmludChrRVdQVDEp
KTsKLSAgRVhQRUNUX0VRKCJpbnZhbGlkIiwgUHJpbnQoc3RhdGljX2Nhc3Q8RW51bVdpdGhQcmlu
dFRvPigwKSkpOwotfQotCi0vLyBUZXN0cyBwcmludGluZyBhIGNsYXNzIGltcGxpY2l0bHkgY29u
dmVydGlibGUgdG8gQmlnZ2VzdEludC4KLQotVEVTVChQcmludENsYXNzVGVzdCwgQmlnZ2VzdElu
dENvbnZlcnRpYmxlKSB7Ci0gIEVYUEVDVF9FUSgiNDIiLCBQcmludChCaWdnZXN0SW50Q29udmVy
dGlibGUoKSkpOwotfQotCi0vLyBUZXN0cyBwcmludGluZyB2YXJpb3VzIGNoYXIgdHlwZXMuCi0K
LS8vIGNoYXIuCi1URVNUKFByaW50Q2hhclRlc3QsIFBsYWluQ2hhcikgewotICBFWFBFQ1RfRVEo
IidcXDAnIiwgUHJpbnQoJ1wwJykpOwotICBFWFBFQ1RfRVEoIidcXCcnICgzOSwgMHgyNykiLCBQ
cmludCgnXCcnKSk7Ci0gIEVYUEVDVF9FUSgiJ1wiJyAoMzQsIDB4MjIpIiwgUHJpbnQoJyInKSk7
Ci0gIEVYUEVDVF9FUSgiJz8nICg2MywgMHgzRikiLCBQcmludCgnPycpKTsKLSAgRVhQRUNUX0VR
KCInXFxcXCcgKDkyLCAweDVDKSIsIFByaW50KCdcXCcpKTsKLSAgRVhQRUNUX0VRKCInXFxhJyAo
NykiLCBQcmludCgnXGEnKSk7Ci0gIEVYUEVDVF9FUSgiJ1xcYicgKDgpIiwgUHJpbnQoJ1xiJykp
OwotICBFWFBFQ1RfRVEoIidcXGYnICgxMiwgMHhDKSIsIFByaW50KCdcZicpKTsKLSAgRVhQRUNU
X0VRKCInXFxuJyAoMTAsIDB4QSkiLCBQcmludCgnXG4nKSk7Ci0gIEVYUEVDVF9FUSgiJ1xccicg
KDEzLCAweEQpIiwgUHJpbnQoJ1xyJykpOwotICBFWFBFQ1RfRVEoIidcXHQnICg5KSIsIFByaW50
KCdcdCcpKTsKLSAgRVhQRUNUX0VRKCInXFx2JyAoMTEsIDB4QikiLCBQcmludCgnXHYnKSk7Ci0g
IEVYUEVDVF9FUSgiJ1xceDdGJyAoMTI3KSIsIFByaW50KCdceDdGJykpOwotICBFWFBFQ1RfRVEo
IidcXHhGRicgKDI1NSkiLCBQcmludCgnXHhGRicpKTsKLSAgRVhQRUNUX0VRKCInICcgKDMyLCAw
eDIwKSIsIFByaW50KCcgJykpOwotICBFWFBFQ1RfRVEoIidhJyAoOTcsIDB4NjEpIiwgUHJpbnQo
J2EnKSk7Ci19Ci0KLS8vIHNpZ25lZCBjaGFyLgotVEVTVChQcmludENoYXJUZXN0LCBTaWduZWRD
aGFyKSB7Ci0gIEVYUEVDVF9FUSgiJ1xcMCciLCBQcmludChzdGF0aWNfY2FzdDxzaWduZWQgY2hh
cj4oJ1wwJykpKTsKLSAgRVhQRUNUX0VRKCInXFx4Q0UnICgtNTApIiwKLSAgICAgICAgICAgIFBy
aW50KHN0YXRpY19jYXN0PHNpZ25lZCBjaGFyPigtNTApKSk7Ci19Ci0KLS8vIHVuc2lnbmVkIGNo
YXIuCi1URVNUKFByaW50Q2hhclRlc3QsIFVuc2lnbmVkQ2hhcikgewotICBFWFBFQ1RfRVEoIidc
XDAnIiwgUHJpbnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oJ1wwJykpKTsKLSAgRVhQRUNU
X0VRKCInYicgKDk4LCAweDYyKSIsCi0gICAgICAgICAgICBQcmludChzdGF0aWNfY2FzdDx1bnNp
Z25lZCBjaGFyPignYicpKSk7Ci19Ci0KLS8vIFRlc3RzIHByaW50aW5nIG90aGVyIHNpbXBsZSwg
YnVpbHQtaW4gdHlwZXMuCi0KLS8vIGJvb2wuCi1URVNUKFByaW50QnVpbHRJblR5cGVUZXN0LCBC
b29sKSB7Ci0gIEVYUEVDVF9FUSgiZmFsc2UiLCBQcmludChmYWxzZSkpOwotICBFWFBFQ1RfRVEo
InRydWUiLCBQcmludCh0cnVlKSk7Ci19Ci0KLS8vIHdjaGFyX3QuCi1URVNUKFByaW50QnVpbHRJ
blR5cGVUZXN0LCBXY2hhcl90KSB7Ci0gIEVYUEVDVF9FUSgiTCdcXDAnIiwgUHJpbnQoTCdcMCcp
KTsKLSAgRVhQRUNUX0VRKCJMJ1xcJycgKDM5LCAweDI3KSIsIFByaW50KEwnXCcnKSk7Ci0gIEVY
UEVDVF9FUSgiTCdcIicgKDM0LCAweDIyKSIsIFByaW50KEwnIicpKTsKLSAgRVhQRUNUX0VRKCJM
Jz8nICg2MywgMHgzRikiLCBQcmludChMJz8nKSk7Ci0gIEVYUEVDVF9FUSgiTCdcXFxcJyAoOTIs
IDB4NUMpIiwgUHJpbnQoTCdcXCcpKTsKLSAgRVhQRUNUX0VRKCJMJ1xcYScgKDcpIiwgUHJpbnQo
TCdcYScpKTsKLSAgRVhQRUNUX0VRKCJMJ1xcYicgKDgpIiwgUHJpbnQoTCdcYicpKTsKLSAgRVhQ
RUNUX0VRKCJMJ1xcZicgKDEyLCAweEMpIiwgUHJpbnQoTCdcZicpKTsKLSAgRVhQRUNUX0VRKCJM
J1xcbicgKDEwLCAweEEpIiwgUHJpbnQoTCdcbicpKTsKLSAgRVhQRUNUX0VRKCJMJ1xccicgKDEz
LCAweEQpIiwgUHJpbnQoTCdccicpKTsKLSAgRVhQRUNUX0VRKCJMJ1xcdCcgKDkpIiwgUHJpbnQo
TCdcdCcpKTsKLSAgRVhQRUNUX0VRKCJMJ1xcdicgKDExLCAweEIpIiwgUHJpbnQoTCdcdicpKTsK
LSAgRVhQRUNUX0VRKCJMJ1xceDdGJyAoMTI3KSIsIFByaW50KEwnXHg3RicpKTsKLSAgRVhQRUNU
X0VRKCJMJ1xceEZGJyAoMjU1KSIsIFByaW50KEwnXHhGRicpKTsKLSAgRVhQRUNUX0VRKCJMJyAn
ICgzMiwgMHgyMCkiLCBQcmludChMJyAnKSk7Ci0gIEVYUEVDVF9FUSgiTCdhJyAoOTcsIDB4NjEp
IiwgUHJpbnQoTCdhJykpOwotICBFWFBFQ1RfRVEoIkwnXFx4NTc2JyAoMTM5OCkiLCBQcmludChz
dGF0aWNfY2FzdDx3Y2hhcl90PigweDU3NikpKTsKLSAgRVhQRUNUX0VRKCJMJ1xceEM3NEQnICg1
MTAyMSkiLCBQcmludChzdGF0aWNfY2FzdDx3Y2hhcl90PigweEM3NEQpKSk7Ci19Ci0KLS8vIFRl
c3QgdGhhdCBJbnQ2NCBwcm92aWRlcyBtb3JlIHN0b3JhZ2UgdGhhbiB3Y2hhcl90LgotVEVTVChQ
cmludFR5cGVTaXplVGVzdCwgV2NoYXJfdCkgewotICBFWFBFQ1RfTFQoc2l6ZW9mKHdjaGFyX3Qp
LCBzaXplb2YodGVzdGluZzo6aW50ZXJuYWw6OkludDY0KSk7Ci19Ci0KLS8vIFZhcmlvdXMgaW50
ZWdlciB0eXBlcy4KLVRFU1QoUHJpbnRCdWlsdEluVHlwZVRlc3QsIEludGVnZXIpIHsKLSAgRVhQ
RUNUX0VRKCInXFx4RkYnICgyNTUpIiwgUHJpbnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4o
MjU1KSkpOyAgLy8gdWludDgKLSAgRVhQRUNUX0VRKCInXFx4ODAnICgtMTI4KSIsIFByaW50KHN0
YXRpY19jYXN0PHNpZ25lZCBjaGFyPigtMTI4KSkpOyAgLy8gaW50OAotICBFWFBFQ1RfRVEoIjY1
NTM1IiwgUHJpbnQoVVNIUlRfTUFYKSk7ICAvLyB1aW50MTYKLSAgRVhQRUNUX0VRKCItMzI3Njgi
LCBQcmludChTSFJUX01JTikpOyAgLy8gaW50MTYKLSAgRVhQRUNUX0VRKCI0Mjk0OTY3Mjk1Iiwg
UHJpbnQoVUlOVF9NQVgpKTsgIC8vIHVpbnQzMgotICBFWFBFQ1RfRVEoIi0yMTQ3NDgzNjQ4Iiwg
UHJpbnQoSU5UX01JTikpOyAgLy8gaW50MzIKLSAgRVhQRUNUX0VRKCIxODQ0Njc0NDA3MzcwOTU1
MTYxNSIsCi0gICAgICAgICAgICBQcmludChzdGF0aWNfY2FzdDx0ZXN0aW5nOjppbnRlcm5hbDo6
VUludDY0PigtMSkpKTsgIC8vIHVpbnQ2NAotICBFWFBFQ1RfRVEoIi05MjIzMzcyMDM2ODU0Nzc1
ODA4IiwKLSAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHRlc3Rpbmc6OmludGVybmFsOjpJ
bnQ2ND4oMSkgPDwgNjMpKTsgIC8vIGludDY0Ci19Ci0KLS8vIFNpemUgdHlwZXMuCi1URVNUKFBy
aW50QnVpbHRJblR5cGVUZXN0LCBTaXplX3QpIHsKLSAgRVhQRUNUX0VRKCIxIiwgUHJpbnQoc2l6
ZW9mKCdhJykpKTsgIC8vIHNpemVfdC4KLSNpZiAhR1RFU1RfT1NfV0lORE9XUwotICAvLyBXaW5k
b3dzIGhhcyBubyBzc2l6ZV90IHR5cGUuCi0gIEVYUEVDVF9FUSgiLTIiLCBQcmludChzdGF0aWNf
Y2FzdDxzc2l6ZV90PigtMikpKTsgIC8vIHNzaXplX3QuCi0jZW5kaWYgIC8vICFHVEVTVF9PU19X
SU5ET1dTCi19Ci0KLS8vIEZsb2F0aW5nLXBvaW50cy4KLVRFU1QoUHJpbnRCdWlsdEluVHlwZVRl
c3QsIEZsb2F0aW5nUG9pbnRzKSB7Ci0gIEVYUEVDVF9FUSgiMS41IiwgUHJpbnQoMS41ZikpOyAg
IC8vIGZsb2F0Ci0gIEVYUEVDVF9FUSgiLTIuNSIsIFByaW50KC0yLjUpKTsgIC8vIGRvdWJsZQot
fQotCi0vLyBTaW5jZSA6OnN0ZDo6c3RyaW5nc3RyZWFtOjpvcGVyYXRvcjw8KGNvbnN0IHZvaWQg
KikgZm9ybWF0cyB0aGUgcG9pbnRlcgotLy8gb3V0cHV0IGRpZmZlcmVudGx5IHdpdGggZGlmZmVy
ZW50IGNvbXBpbGVycywgd2UgaGF2ZSB0byBjcmVhdGUgdGhlIGV4cGVjdGVkCi0vLyBvdXRwdXQg
Zmlyc3QgYW5kIHVzZSBpdCBhcyBvdXIgZXhwZWN0YXRpb24uCi1zdGF0aWMgc3RkOjpzdHJpbmcg
UHJpbnRQb2ludGVyKGNvbnN0IHZvaWQqIHApIHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBleHBl
Y3RlZF9yZXN1bHRfc3RyZWFtOwotICBleHBlY3RlZF9yZXN1bHRfc3RyZWFtIDw8IHA7Ci0gIHJl
dHVybiBleHBlY3RlZF9yZXN1bHRfc3RyZWFtLnN0cigpOwotfQotCi0vLyBUZXN0cyBwcmludGlu
ZyBDIHN0cmluZ3MuCi0KLS8vIGNvbnN0IGNoYXIqLgotVEVTVChQcmludENTdHJpbmdUZXN0LCBD
b25zdCkgewotICBjb25zdCBjaGFyKiBwID0gIldvcmxkIjsKLSAgRVhQRUNUX0VRKFByaW50UG9p
bnRlcihwKSArICIgcG9pbnRpbmcgdG8gXCJXb3JsZFwiIiwgUHJpbnQocCkpOwotfQotCi0vLyBj
aGFyKi4KLVRFU1QoUHJpbnRDU3RyaW5nVGVzdCwgTm9uQ29uc3QpIHsKLSAgY2hhciBwW10gPSAi
SGkiOwotICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byBcIkhpXCIi
LAotICAgICAgICAgICAgUHJpbnQoc3RhdGljX2Nhc3Q8Y2hhcio+KHApKSk7Ci19Ci0KLS8vIE5V
TEwgQyBzdHJpbmcuCi1URVNUKFByaW50Q1N0cmluZ1Rlc3QsIE51bGwpIHsKLSAgY29uc3QgY2hh
ciogcCA9IE5VTEw7Ci0gIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKLX0KLQotLy8gVGVz
dHMgdGhhdCBDIHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJvcGVybHkuCi1URVNUKFByaW50Q1N0cmlu
Z1Rlc3QsIEVzY2FwZXNQcm9wZXJseSkgewotICBjb25zdCBjaGFyKiBwID0gIidcIj9cXFxhXGJc
ZlxuXHJcdFx2XHg3Rlx4RkYgYSI7Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBv
aW50aW5nIHRvIFwiJ1xcXCI/XFxcXFxcYVxcYlxcZiIKLSAgICAgICAgICAgICJcXG5cXHJcXHRc
XHZcXHg3RlxceEZGIGFcIiIsCi0gICAgICAgICAgICBQcmludChwKSk7Ci19Ci0KLS8vIE1TVkMg
Y29tcGlsZXIgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZGVmaW5lIHdoYXJfdCBhcyBhIHR5cGVkZWYK
LS8vIG9mIHVuc2lnbmVkIHNob3J0LiBEZWZpbmluZyBhbiBvdmVybG9hZCBmb3IgY29uc3Qgd2No
YXJfdCogaW4gdGhhdCBjYXNlCi0vLyB3b3VsZCBjYXVzZSBwb2ludGVycyB0byB1bnNpZ25lZCBz
aG9ydHMgYmUgcHJpbnRlZCBhcyB3aWRlIHN0cmluZ3MsCi0vLyBwb3NzaWJseSBhY2Nlc3Npbmcg
bW9yZSBtZW1vcnkgdGhhbiBpbnRlbmRlZCBhbmQgY2F1c2luZyBpbnZhbGlkCi0vLyBtZW1vcnkg
YWNjZXNzZXMuIE1TVkMgZGVmaW5lcyBfTkFUSVZFX1dDSEFSX1RfREVGSU5FRCBzeW1ib2wgd2hl
bgotLy8gd2NoYXJfdCBpcyBpbXBsZW1lbnRlZCBhcyBhIG5hdGl2ZSB0eXBlLgotI2lmICFkZWZp
bmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEKQotCi0vLyBj
b25zdCB3Y2hhcl90Ki4KLVRFU1QoUHJpbnRXaWRlQ1N0cmluZ1Rlc3QsIENvbnN0KSB7Ci0gIGNv
bnN0IHdjaGFyX3QqIHAgPSBMIldvcmxkIjsKLSAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSAr
ICIgcG9pbnRpbmcgdG8gTFwiV29ybGRcIiIsIFByaW50KHApKTsKLX0KLQotLy8gd2NoYXJfdCou
Ci1URVNUKFByaW50V2lkZUNTdHJpbmdUZXN0LCBOb25Db25zdCkgewotICB3Y2hhcl90IHBbXSA9
IEwiSGkiOwotICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byBMXCJI
aVwiIiwKLSAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHdjaGFyX3QqPihwKSkpOwotfQot
Ci0vLyBOVUxMIHdpZGUgQyBzdHJpbmcuCi1URVNUKFByaW50V2lkZUNTdHJpbmdUZXN0LCBOdWxs
KSB7Ci0gIGNvbnN0IHdjaGFyX3QqIHAgPSBOVUxMOwotICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmlu
dChwKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgd2lkZSBDIHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJv
cGVybHkuCi1URVNUKFByaW50V2lkZUNTdHJpbmdUZXN0LCBFc2NhcGVzUHJvcGVybHkpIHsKLSAg
Y29uc3Qgd2NoYXJfdCBzW10gPSB7J1wnJywgJyInLCAnPycsICdcXCcsICdcYScsICdcYicsICdc
ZicsICdcbicsICdccicsCi0gICAgICAgICAgICAgICAgICAgICAgICdcdCcsICdcdicsIDB4RDMs
IDB4NTc2LCAweDhEMywgMHhDNzRELCAnICcsICdhJywgJ1wwJ307Ci0gIEVYUEVDVF9FUShQcmlu
dFBvaW50ZXIocykgKyAiIHBvaW50aW5nIHRvIExcIidcXFwiP1xcXFxcXGFcXGJcXGYiCi0gICAg
ICAgICAgICAiXFxuXFxyXFx0XFx2XFx4RDNcXHg1NzZcXHg4RDNcXHhDNzREIGFcIiIsCi0gICAg
ICAgICAgICBQcmludChzdGF0aWNfY2FzdDxjb25zdCB3Y2hhcl90Kj4ocykpKTsKLX0KLSNlbmRp
ZiAgLy8gbmF0aXZlIHdjaGFyX3QKLQotLy8gVGVzdHMgcHJpbnRpbmcgcG9pbnRlcnMgdG8gb3Ro
ZXIgY2hhciB0eXBlcy4KLQotLy8gc2lnbmVkIGNoYXIqLgotVEVTVChQcmludENoYXJQb2ludGVy
VGVzdCwgU2lnbmVkQ2hhcikgewotICBzaWduZWQgY2hhciogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
c2lnbmVkIGNoYXIqPigweDEyMzQpOwotICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmlu
dChwKSk7Ci0gIHAgPSBOVUxMOwotICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Ci19Ci0K
LS8vIGNvbnN0IHNpZ25lZCBjaGFyKi4KLVRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0
U2lnbmVkQ2hhcikgewotICBzaWduZWQgY2hhciogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2lnbmVk
IGNoYXIqPigweDEyMzQpOwotICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7
Ci0gIHAgPSBOVUxMOwotICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Ci19Ci0KLS8vIHVu
c2lnbmVkIGNoYXIqLgotVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgVW5zaWduZWRDaGFyKSB7
Ci0gIHVuc2lnbmVkIGNoYXIqIHAgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPigw
eDEyMzQpOwotICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBO
VUxMOwotICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Ci19Ci0KLS8vIGNvbnN0IHVuc2ln
bmVkIGNoYXIqLgotVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgQ29uc3RVbnNpZ25lZENoYXIp
IHsKLSAgY29uc3QgdW5zaWduZWQgY2hhciogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5z
aWduZWQgY2hhcio+KDB4MTIzNCk7Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCksIFByaW50
KHApKTsKLSAgcCA9IE5VTEw7Ci0gIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKLX0KLQot
Ly8gVGVzdHMgcHJpbnRpbmcgcG9pbnRlcnMgdG8gc2ltcGxlLCBidWlsdC1pbiB0eXBlcy4KLQot
Ly8gYm9vbCouCi1URVNUKFByaW50UG9pbnRlclRvQnVpbHRJblR5cGVUZXN0LCBCb29sKSB7Ci0g
IGJvb2wqIHAgPSByZWludGVycHJldF9jYXN0PGJvb2wqPigweEFCQ0QpOwotICBFWFBFQ1RfRVEo
UHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOwotICBFWFBFQ1RfRVEoIk5V
TEwiLCBQcmludChwKSk7Ci19Ci0KLS8vIHZvaWQqLgotVEVTVChQcmludFBvaW50ZXJUb0J1aWx0
SW5UeXBlVGVzdCwgVm9pZCkgewotICB2b2lkKiBwID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
MHhBQkNEKTsKLSAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0g
TlVMTDsKLSAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwotfQotCi0vLyBjb25zdCB2b2lk
Ki4KLVRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdEluVHlwZVRlc3QsIENvbnN0Vm9pZCkgewotICBj
b25zdCB2b2lkKiBwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oMHhBQkNEKTsKLSAg
RVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0gTlVMTDsKLSAgRVhQ
RUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwotfQotCi0vLyBUZXN0cyBwcmludGluZyBwb2ludGVy
cyB0byBwb2ludGVycy4KLVRFU1QoUHJpbnRQb2ludGVyVG9Qb2ludGVyVGVzdCwgSW50UG9pbnRl
clBvaW50ZXIpIHsKLSAgaW50KiogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50Kio+KDB4QUJDRCk7
Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCksIFByaW50KHApKTsKLSAgcCA9IE5VTEw7Ci0g
IEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKLX0KLQotLy8gVGVzdHMgcHJpbnRpbmcgKG5v
bi1tZW1iZXIpIGZ1bmN0aW9uIHBvaW50ZXJzLgotCi12b2lkIE15RnVuY3Rpb24oaW50IC8qIG4g
Ki8pIHt9Ci0KLVRFU1QoUHJpbnRQb2ludGVyVGVzdCwgTm9uTWVtYmVyRnVuY3Rpb25Qb2ludGVy
KSB7Ci0gIC8vIFdlIGNhbm5vdCBkaXJlY3RseSBjYXN0ICZNeUZ1bmN0aW9uIHRvIGNvbnN0IHZv
aWQqIGJlY2F1c2UgdGhlCi0gIC8vIHN0YW5kYXJkIGRpc2FsbG93cyBjYXN0aW5nIGJldHdlZW4g
cG9pbnRlcnMgdG8gZnVuY3Rpb25zIGFuZAotICAvLyBwb2ludGVycyB0byBvYmplY3RzLCBhbmQg
c29tZSBjb21waWxlcnMgKGUuZy4gR0NDIDMuNCkgZW5mb3JjZQotICAvLyB0aGlzIGxpbWl0YXRp
b24uCi0gIEVYUEVDVF9FUSgKLSAgICAgIFByaW50UG9pbnRlcihyZWludGVycHJldF9jYXN0PGNv
bnN0IHZvaWQqPigKLSAgICAgICAgICByZWludGVycHJldF9jYXN0PGludGVybmFsOjpCaWdnZXN0
SW50PigmTXlGdW5jdGlvbikpKSwKLSAgICAgIFByaW50KCZNeUZ1bmN0aW9uKSk7Ci0gIGludCAo
KnApKGJvb2wpID0gTlVMTDsgIC8vIE5PTElOVAotICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChw
KSk7Ci19Ci0KLS8vIEFuIGFzc2VydGlvbiBwcmVkaWNhdGUgZGV0ZXJtaW5pbmcgd2hldGhlciBh
IG9uZSBzdHJpbmcgaXMgYSBwcmVmaXggZm9yCi0vLyBhbm90aGVyLgotdGVtcGxhdGUgPHR5cGVu
YW1lIFN0cmluZ1R5cGU+Ci1Bc3NlcnRpb25SZXN1bHQgSGFzUHJlZml4KGNvbnN0IFN0cmluZ1R5
cGUmIHN0ciwgY29uc3QgU3RyaW5nVHlwZSYgcHJlZml4KSB7Ci0gIGlmIChzdHIuZmluZChwcmVm
aXgsIDApID09IDApCi0gICAgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKLQotICBjb25zdCBi
b29sIGlzX3dpZGVfc3RyaW5nID0gc2l6ZW9mKHByZWZpeFswXSkgPiAxOwotICBjb25zdCBjaGFy
KiBjb25zdCBiZWdpbl9zdHJpbmdfcXVvdGUgPSBpc193aWRlX3N0cmluZyA/ICJMXCIiIDogIlwi
IjsKLSAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQotICAgICAgPDwgYmVnaW5fc3RyaW5nX3F1
b3RlIDw8IHByZWZpeCA8PCAiXCIgaXMgbm90IGEgcHJlZml4IG9mICIKLSAgICAgIDw8IGJlZ2lu
X3N0cmluZ19xdW90ZSA8PCBzdHIgPDwgIlwiXG4iOwotfQotCi0vLyBUZXN0cyBwcmludGluZyBt
ZW1iZXIgdmFyaWFibGUgcG9pbnRlcnMuICBBbHRob3VnaCB0aGV5IGFyZSBjYWxsZWQKLS8vIHBv
aW50ZXJzLCB0aGV5IGRvbid0IHBvaW50IHRvIGEgbG9jYXRpb24gaW4gdGhlIGFkZHJlc3Mgc3Bh
Y2UuCi0vLyBUaGVpciByZXByZXNlbnRhdGlvbiBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLiAg
VGh1cyB0aGV5IHdpbGwgYmUKLS8vIHByaW50ZWQgYXMgcmF3IGJ5dGVzLgotCi1zdHJ1Y3QgRm9v
IHsKLSBwdWJsaWM6Ci0gIHZpcnR1YWwgfkZvbygpIHt9Ci0gIGludCBNeU1ldGhvZChjaGFyIHgp
IHsgcmV0dXJuIHggKyAxOyB9Ci0gIHZpcnR1YWwgY2hhciBNeVZpcnR1YWxNZXRob2QoaW50IC8q
IG4gKi8pIHsgcmV0dXJuICdhJzsgfQotCi0gIGludCB2YWx1ZTsKLX07Ci0KLVRFU1QoUHJpbnRQ
b2ludGVyVGVzdCwgTWVtYmVyVmFyaWFibGVQb2ludGVyKSB7Ci0gIEVYUEVDVF9UUlVFKEhhc1By
ZWZpeChQcmludCgmRm9vOjp2YWx1ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICBQcmludChz
aXplb2YoJkZvbzo6dmFsdWUpKSArICItYnl0ZSBvYmplY3QgIikpOwotICBpbnQgKEZvbzo6KnAp
ID0gTlVMTDsgIC8vIE5PTElOVAotICBFWFBFQ1RfVFJVRShIYXNQcmVmaXgoUHJpbnQocCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBQcmludChzaXplb2YocCkpICsgIi1ieXRlIG9iamVjdCAi
KSk7Ci19Ci0KLS8vIFRlc3RzIHByaW50aW5nIG1lbWJlciBmdW5jdGlvbiBwb2ludGVycy4gIEFs
dGhvdWdoIHRoZXkgYXJlIGNhbGxlZAotLy8gcG9pbnRlcnMsIHRoZXkgZG9uJ3QgcG9pbnQgdG8g
YSBsb2NhdGlvbiBpbiB0aGUgYWRkcmVzcyBzcGFjZS4KLS8vIFRoZWlyIHJlcHJlc2VudGF0aW9u
IGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQuICBUaHVzIHRoZXkgd2lsbCBiZQotLy8gcHJpbnRl
ZCBhcyByYXcgYnl0ZXMuCi1URVNUKFByaW50UG9pbnRlclRlc3QsIE1lbWJlckZ1bmN0aW9uUG9p
bnRlcikgewotICBFWFBFQ1RfVFJVRShIYXNQcmVmaXgoUHJpbnQoJkZvbzo6TXlNZXRob2QpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnQoc2l6ZW9mKCZGb286Ok15TWV0aG9kKSkgKyAi
LWJ5dGUgb2JqZWN0ICIpKTsKLSAgRVhQRUNUX1RSVUUoCi0gICAgICBIYXNQcmVmaXgoUHJpbnQo
JkZvbzo6TXlWaXJ0dWFsTWV0aG9kKSwKLSAgICAgICAgICAgICAgICBQcmludChzaXplb2YoKCZG
b286Ok15VmlydHVhbE1ldGhvZCkpKSArICItYnl0ZSBvYmplY3QgIikpOwotICBpbnQgKEZvbzo6
KnApKGNoYXIpID0gTlVMTDsgIC8vIE5PTElOVAotICBFWFBFQ1RfVFJVRShIYXNQcmVmaXgoUHJp
bnQocCksCi0gICAgICAgICAgICAgICAgICAgICAgICBQcmludChzaXplb2YocCkpICsgIi1ieXRl
IG9iamVjdCAiKSk7Ci19Ci0KLS8vIFRlc3RzIHByaW50aW5nIEMgYXJyYXlzLgotCi0vLyBUaGUg
ZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIFByaW50KCkgaXMgdGhhdCBpdCBlbnN1cmVzIHRo
YXQgdGhlCi0vLyBhcmd1bWVudCBpcyBhIHJlZmVyZW5jZSB0byBhbiBhcnJheS4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLXN0ZDo6c3RyaW5nIFByaW50QXJyYXlIZWxwZXIoVCAo
JmEpW05dKSB7Ci0gIHJldHVybiBQcmludChhKTsKLX0KLQotLy8gT25lLWRpbWVuc2lvbmFsIGFy
cmF5LgotVEVTVChQcmludEFycmF5VGVzdCwgT25lRGltZW5zaW9uYWxBcnJheSkgewotICBpbnQg
YVs1XSA9IHsgMSwgMiwgMywgNCwgNSB9OwotICBFWFBFQ1RfRVEoInsgMSwgMiwgMywgNCwgNSB9
IiwgUHJpbnRBcnJheUhlbHBlcihhKSk7Ci19Ci0KLS8vIFR3by1kaW1lbnNpb25hbCBhcnJheS4K
LVRFU1QoUHJpbnRBcnJheVRlc3QsIFR3b0RpbWVuc2lvbmFsQXJyYXkpIHsKLSAgaW50IGFbMl1b
NV0gPSB7Ci0gICAgeyAxLCAyLCAzLCA0LCA1IH0sCi0gICAgeyA2LCA3LCA4LCA5LCAwIH0KLSAg
fTsKLSAgRVhQRUNUX0VRKCJ7IHsgMSwgMiwgMywgNCwgNSB9LCB7IDYsIDcsIDgsIDksIDAgfSB9
IiwgUHJpbnRBcnJheUhlbHBlcihhKSk7Ci19Ci0KLS8vIEFycmF5IG9mIGNvbnN0IGVsZW1lbnRz
LgotVEVTVChQcmludEFycmF5VGVzdCwgQ29uc3RBcnJheSkgewotICBjb25zdCBib29sIGFbMV0g
PSB7IGZhbHNlIH07Ci0gIEVYUEVDVF9FUSgieyBmYWxzZSB9IiwgUHJpbnRBcnJheUhlbHBlcihh
KSk7Ci19Ci0KLS8vIGNoYXIgYXJyYXkgd2l0aG91dCB0ZXJtaW5hdGluZyBOVUwuCi1URVNUKFBy
aW50QXJyYXlUZXN0LCBDaGFyQXJyYXlXaXRoTm9UZXJtaW5hdGluZ051bCkgewotICAvLyBBcnJh
eSBhIGNvbnRhaW5zICdcMCcgaW4gdGhlIG1pZGRsZSBhbmQgZG9lc24ndCBlbmQgd2l0aCAnXDAn
LgotICBjaGFyIGFbXSA9IHsgJ0gnLCAnXDAnLCAnaScgfTsKLSAgRVhQRUNUX0VRKCJcIkhcXDBp
XCIgKG5vIHRlcm1pbmF0aW5nIE5VTCkiLCBQcmludEFycmF5SGVscGVyKGEpKTsKLX0KLQotLy8g
Y29uc3QgY2hhciBhcnJheSB3aXRoIHRlcm1pbmF0aW5nIE5VTC4KLVRFU1QoUHJpbnRBcnJheVRl
c3QsIENvbnN0Q2hhckFycmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7Ci0gIGNvbnN0IGNoYXIgYVtd
ID0gIlwwSGkiOwotICBFWFBFQ1RfRVEoIlwiXFwwSGlcIiIsIFByaW50QXJyYXlIZWxwZXIoYSkp
OwotfQotCi0vLyBjb25zdCB3Y2hhcl90IGFycmF5IHdpdGhvdXQgdGVybWluYXRpbmcgTlVMLgot
VEVTVChQcmludEFycmF5VGVzdCwgV0NoYXJBcnJheVdpdGhOb1Rlcm1pbmF0aW5nTnVsKSB7Ci0g
IC8vIEFycmF5IGEgY29udGFpbnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFuZCBkb2Vzbid0IGVuZCB3
aXRoICdcMCcuCi0gIGNvbnN0IHdjaGFyX3QgYVtdID0geyBMJ0gnLCBMJ1wwJywgTCdpJyB9Owot
ICBFWFBFQ1RfRVEoIkxcIkhcXDBpXCIgKG5vIHRlcm1pbmF0aW5nIE5VTCkiLCBQcmludEFycmF5
SGVscGVyKGEpKTsKLX0KLQotLy8gd2NoYXJfdCBhcnJheSB3aXRoIHRlcm1pbmF0aW5nIE5VTC4K
LVRFU1QoUHJpbnRBcnJheVRlc3QsIFdDb25zdENoYXJBcnJheVdpdGhUZXJtaW5hdGluZ051bCkg
ewotICBjb25zdCB3Y2hhcl90IGFbXSA9IEwiXDBIaSI7Ci0gIEVYUEVDVF9FUSgiTFwiXFwwSGlc
IiIsIFByaW50QXJyYXlIZWxwZXIoYSkpOwotfQotCi0vLyBBcnJheSBvZiBvYmplY3RzLgotVEVT
VChQcmludEFycmF5VGVzdCwgT2JqZWN0QXJyYXkpIHsKLSAgc3RkOjpzdHJpbmcgYVszXSA9IHsi
SGkiLCAiSGVsbG8iLCAiTmkgaGFvIn07Ci0gIEVYUEVDVF9FUSgieyBcIkhpXCIsIFwiSGVsbG9c
IiwgXCJOaSBoYW9cIiB9IiwgUHJpbnRBcnJheUhlbHBlcihhKSk7Ci19Ci0KLS8vIEFycmF5IHdp
dGggbWFueSBlbGVtZW50cy4KLVRFU1QoUHJpbnRBcnJheVRlc3QsIEJpZ0FycmF5KSB7Ci0gIGlu
dCBhWzEwMF0gPSB7IDEsIDIsIDMgfTsKLSAgRVhQRUNUX0VRKCJ7IDEsIDIsIDMsIDAsIDAsIDAs
IDAsIDAsIC4uLiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9IiwKLSAgICAgICAgICAgIFByaW50
QXJyYXlIZWxwZXIoYSkpOwotfQotCi0vLyBUZXN0cyBwcmludGluZyA6OnN0cmluZyBhbmQgOjpz
dGQ6OnN0cmluZy4KLQotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyA6OnN0cmluZy4K
LVRFU1QoUHJpbnRTdHJpbmdUZXN0LCBTdHJpbmdJbkdsb2JhbE5hbWVzcGFjZSkgewotICBjb25z
dCBjaGFyIHNbXSA9ICInXCI/XFxcYVxiXGZcblwwXHJcdFx2XHg3Rlx4RkYgYSI7Ci0gIGNvbnN0
IDo6c3RyaW5nIHN0cihzLCBzaXplb2YocykpOwotICBFWFBFQ1RfRVEoIlwiJ1xcXCI/XFxcXFxc
YVxcYlxcZlxcblxcMFxcclxcdFxcdlxceDdGXFx4RkYgYVxcMFwiIiwKLSAgICAgICAgICAgIFBy
aW50KHN0cikpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCi0vLyA6
OnN0ZDo6c3RyaW5nLgotVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0cmluZ0luU3RkTmFtZXNwYWNl
KSB7Ci0gIGNvbnN0IGNoYXIgc1tdID0gIidcIj9cXFxhXGJcZlxuXDBcclx0XHZceDdGXHhGRiBh
IjsKLSAgY29uc3QgOjpzdGQ6OnN0cmluZyBzdHIocywgc2l6ZW9mKHMpKTsKLSAgRVhQRUNUX0VR
KCJcIidcXFwiP1xcXFxcXGFcXGJcXGZcXG5cXDBcXHJcXHRcXHZcXHg3RlxceEZGIGFcXDBcIiIs
Ci0gICAgICAgICAgICBQcmludChzdHIpKTsKLX0KLQotVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0
cmluZ0FtYmlndW91c0hleCkgewotICAvLyAiXHg2QkFOQU5BIiBpcyBhbWJpZ3VvdXMsIGl0IGNh
biBiZSBpbnRlcnByZXRlZCBhcyBzdGFydGluZyB3aXRoIGVpdGhlciBvZjoKLSAgLy8gJ1x4Nics
ICdceDZCJywgb3IgJ1x4NkJBJy4KLQotICAvLyBhIGhleCBlc2NhcGluZyBzZXF1ZW5jZSBmb2xs
b3dpbmcgYnkgYSBkZWNpbWFsIGRpZ2l0Ci0gIEVYUEVDVF9FUSgiXCIwXFx4MTJcIiBcIjNcIiIs
IFByaW50KDo6c3RkOjpzdHJpbmcoIjBceDEyIiAiMyIpKSk7Ci0gIC8vIGEgaGV4IGVzY2FwaW5n
IHNlcXVlbmNlIGZvbGxvd2luZyBieSBhIGhleCBkaWdpdCAobG93ZXItY2FzZSkKLSAgRVhQRUNU
X0VRKCJcIm1tXFx4NlwiIFwiYmFuYW5hc1wiIiwgUHJpbnQoOjpzdGQ6OnN0cmluZygibW1ceDYi
ICJiYW5hbmFzIikpKTsKLSAgLy8gYSBoZXggZXNjYXBpbmcgc2VxdWVuY2UgZm9sbG93aW5nIGJ5
IGEgaGV4IGRpZ2l0ICh1cHBlci1jYXNlKQotICBFWFBFQ1RfRVEoIlwiTk9NXFx4NlwiIFwiQkFO
QU5BXCIiLCBQcmludCg6OnN0ZDo6c3RyaW5nKCJOT01ceDYiICJCQU5BTkEiKSkpOwotICAvLyBh
IGhleCBlc2NhcGluZyBzZXF1ZW5jZSBmb2xsb3dpbmcgYnkgYSBub24teGRpZ2l0Ci0gIEVYUEVD
VF9FUSgiXCIhXFx4NS0hXCIiLCBQcmludCg6OnN0ZDo6c3RyaW5nKCIhXHg1LSEiKSkpOwotfQot
Ci0vLyBUZXN0cyBwcmludGluZyA6OndzdHJpbmcgYW5kIDo6c3RkOjp3c3RyaW5nLgotCi0jaWYg
R1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0vLyA6OndzdHJpbmcuCi1URVNUKFByaW50V2lkZVN0
cmluZ1Rlc3QsIFN0cmluZ0luR2xvYmFsTmFtZXNwYWNlKSB7Ci0gIGNvbnN0IHdjaGFyX3Qgc1td
ID0gTCInXCI/XFxcYVxiXGZcblwwXHJcdFx2XHhEM1x4NTc2XHg4RDNceEM3NEQgYSI7Ci0gIGNv
bnN0IDo6d3N0cmluZyBzdHIocywgc2l6ZW9mKHMpL3NpemVvZih3Y2hhcl90KSk7Ci0gIEVYUEVD
VF9FUSgiTFwiJ1xcXCI/XFxcXFxcYVxcYlxcZlxcblxcMFxcclxcdFxcdiIKLSAgICAgICAgICAg
ICJcXHhEM1xceDU3NlxceDhEM1xceEM3NEQgYVxcMFwiIiwKLSAgICAgICAgICAgIFByaW50KHN0
cikpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLQotI2lmIEdURVNU
X0hBU19TVERfV1NUUklORwotLy8gOjpzdGQ6OndzdHJpbmcuCi1URVNUKFByaW50V2lkZVN0cmlu
Z1Rlc3QsIFN0cmluZ0luU3RkTmFtZXNwYWNlKSB7Ci0gIGNvbnN0IHdjaGFyX3Qgc1tdID0gTCIn
XCI/XFxcYVxiXGZcblwwXHJcdFx2XHhEM1x4NTc2XHg4RDNceEM3NEQgYSI7Ci0gIGNvbnN0IDo6
c3RkOjp3c3RyaW5nIHN0cihzLCBzaXplb2Yocykvc2l6ZW9mKHdjaGFyX3QpKTsKLSAgRVhQRUNU
X0VRKCJMXCInXFxcIj9cXFxcXFxhXFxiXFxmXFxuXFwwXFxyXFx0XFx2IgotICAgICAgICAgICAg
IlxceEQzXFx4NTc2XFx4OEQzXFx4Qzc0RCBhXFwwXCIiLAotICAgICAgICAgICAgUHJpbnQoc3Ry
KSk7Ci19Ci0KLVRFU1QoUHJpbnRXaWRlU3RyaW5nVGVzdCwgU3RyaW5nQW1iaWd1b3VzSGV4KSB7
Ci0gIC8vIHNhbWUgZm9yIHdpZGUgc3RyaW5ncy4KLSAgRVhQRUNUX0VRKCJMXCIwXFx4MTJcIiBM
XCIzXCIiLCBQcmludCg6OnN0ZDo6d3N0cmluZyhMIjBceDEyIiBMIjMiKSkpOwotICBFWFBFQ1Rf
RVEoIkxcIm1tXFx4NlwiIExcImJhbmFuYXNcIiIsCi0gICAgICAgICAgICBQcmludCg6OnN0ZDo6
d3N0cmluZyhMIm1tXHg2IiBMImJhbmFuYXMiKSkpOwotICBFWFBFQ1RfRVEoIkxcIk5PTVxceDZc
IiBMXCJCQU5BTkFcIiIsCi0gICAgICAgICAgICBQcmludCg6OnN0ZDo6d3N0cmluZyhMIk5PTVx4
NiIgTCJCQU5BTkEiKSkpOwotICBFWFBFQ1RfRVEoIkxcIiFcXHg1LSFcIiIsIFByaW50KDo6c3Rk
Ojp3c3RyaW5nKEwiIVx4NS0hIikpKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RS
SU5HCi0KLS8vIFRlc3RzIHByaW50aW5nIHR5cGVzIHRoYXQgc3VwcG9ydCBnZW5lcmljIHN0cmVh
bWluZyAoaS5lLiBzdHJlYW1pbmcKLS8vIHRvIHN0ZDo6YmFzaWNfb3N0cmVhbTxDaGFyLCBDaGFy
VHJhaXRzPiBmb3IgYW55IHZhbGlkIENoYXIgYW5kCi0vLyBDaGFyVHJhaXRzIHR5cGVzKS4KLQot
Ly8gVGVzdHMgcHJpbnRpbmcgYSBub24tdGVtcGxhdGUgdHlwZSB0aGF0IHN1cHBvcnRzIGdlbmVy
aWMgc3RyZWFtaW5nLgotCi1jbGFzcyBBbGxvd3NHZW5lcmljU3RyZWFtaW5nIHt9OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgQ2hhciwgdHlwZW5hbWUgQ2hhclRyYWl0cz4KLXN0ZDo6YmFzaWNfb3N0
cmVhbTxDaGFyLCBDaGFyVHJhaXRzPiYgb3BlcmF0b3I8PCgKLSAgICBzdGQ6OmJhc2ljX29zdHJl
YW08Q2hhciwgQ2hhclRyYWl0cz4mIG9zLAotICAgIGNvbnN0IEFsbG93c0dlbmVyaWNTdHJlYW1p
bmcmIC8qIGEgKi8pIHsKLSAgcmV0dXJuIG9zIDw8ICJBbGxvd3NHZW5lcmljU3RyZWFtaW5nIjsK
LX0KLQotVEVTVChQcmludFR5cGVXaXRoR2VuZXJpY1N0cmVhbWluZ1Rlc3QsIE5vblRlbXBsYXRl
VHlwZSkgewotICBBbGxvd3NHZW5lcmljU3RyZWFtaW5nIGE7Ci0gIEVYUEVDVF9FUSgiQWxsb3dz
R2VuZXJpY1N0cmVhbWluZyIsIFByaW50KGEpKTsKLX0KLQotLy8gVGVzdHMgcHJpbnRpbmcgYSB0
ZW1wbGF0ZSB0eXBlIHRoYXQgc3VwcG9ydHMgZ2VuZXJpYyBzdHJlYW1pbmcuCi0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotY2xhc3MgQWxsb3dzR2VuZXJpY1N0cmVhbWluZ1RlbXBsYXRlIHt9Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhciwgdHlwZW5hbWUgQ2hhclRyYWl0cywgdHlwZW5hbWUg
VD4KLXN0ZDo6YmFzaWNfb3N0cmVhbTxDaGFyLCBDaGFyVHJhaXRzPiYgb3BlcmF0b3I8PCgKLSAg
ICBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwgQ2hhclRyYWl0cz4mIG9zLAotICAgIGNvbnN0IEFs
bG93c0dlbmVyaWNTdHJlYW1pbmdUZW1wbGF0ZTxUPiYgLyogYSAqLykgewotICByZXR1cm4gb3Mg
PDwgIkFsbG93c0dlbmVyaWNTdHJlYW1pbmdUZW1wbGF0ZSI7Ci19Ci0KLVRFU1QoUHJpbnRUeXBl
V2l0aEdlbmVyaWNTdHJlYW1pbmdUZXN0LCBUZW1wbGF0ZVR5cGUpIHsKLSAgQWxsb3dzR2VuZXJp
Y1N0cmVhbWluZ1RlbXBsYXRlPGludD4gYTsKLSAgRVhQRUNUX0VRKCJBbGxvd3NHZW5lcmljU3Ry
ZWFtaW5nVGVtcGxhdGUiLCBQcmludChhKSk7Ci19Ci0KLS8vIFRlc3RzIHByaW50aW5nIGEgdHlw
ZSB0aGF0IHN1cHBvcnRzIGdlbmVyaWMgc3RyZWFtaW5nIGFuZCBjYW4gYmUKLS8vIGltcGxpY2l0
bHkgY29udmVydGVkIHRvIGFub3RoZXIgcHJpbnRhYmxlIHR5cGUuCi0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotY2xhc3MgQWxsb3dzR2VuZXJpY1N0cmVhbWluZ0FuZEltcGxpY2l0Q29udmVyc2lv
blRlbXBsYXRlIHsKLSBwdWJsaWM6Ci0gIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIENoYXIsIHR5cGVuYW1lIENoYXJUcmFp
dHMsIHR5cGVuYW1lIFQ+Ci1zdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwgQ2hhclRyYWl0cz4mIG9w
ZXJhdG9yPDwoCi0gICAgc3RkOjpiYXNpY19vc3RyZWFtPENoYXIsIENoYXJUcmFpdHM+JiBvcywK
LSAgICBjb25zdCBBbGxvd3NHZW5lcmljU3RyZWFtaW5nQW5kSW1wbGljaXRDb252ZXJzaW9uVGVt
cGxhdGU8VD4mIC8qIGEgKi8pIHsKLSAgcmV0dXJuIG9zIDw8ICJBbGxvd3NHZW5lcmljU3RyZWFt
aW5nQW5kSW1wbGljaXRDb252ZXJzaW9uVGVtcGxhdGUiOwotfQotCi1URVNUKFByaW50VHlwZVdp
dGhHZW5lcmljU3RyZWFtaW5nVGVzdCwgVHlwZUltcGxpY2l0bHlDb252ZXJ0aWJsZSkgewotICBB
bGxvd3NHZW5lcmljU3RyZWFtaW5nQW5kSW1wbGljaXRDb252ZXJzaW9uVGVtcGxhdGU8aW50PiBh
OwotICBFWFBFQ1RfRVEoIkFsbG93c0dlbmVyaWNTdHJlYW1pbmdBbmRJbXBsaWNpdENvbnZlcnNp
b25UZW1wbGF0ZSIsIFByaW50KGEpKTsKLX0KLQotI2lmIEdURVNUX0hBU19TVFJJTkdfUElFQ0Vf
Ci0KLS8vIFRlc3RzIHByaW50aW5nIFN0cmluZ1BpZWNlLgotCi1URVNUKFByaW50U3RyaW5nUGll
Y2VUZXN0LCBTaW1wbGVTdHJpbmdQaWVjZSkgewotICBjb25zdCBTdHJpbmdQaWVjZSBzcCA9ICJI
ZWxsbyI7Ci0gIEVYUEVDVF9FUSgiXCJIZWxsb1wiIiwgUHJpbnQoc3ApKTsKLX0KLQotVEVTVChQ
cmludFN0cmluZ1BpZWNlVGVzdCwgVW5wcmludGFibGVDaGFyYWN0ZXJzKSB7Ci0gIGNvbnN0IGNo
YXIgc3RyW10gPSAiTlVMIChcMCkgYW5kIFxyXHQiOwotICBjb25zdCBTdHJpbmdQaWVjZSBzcChz
dHIsIHNpemVvZihzdHIpIC0gMSk7Ci0gIEVYUEVDVF9FUSgiXCJOVUwgKFxcMCkgYW5kIFxcclxc
dFwiIiwgUHJpbnQoc3ApKTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1RSSU5HX1BJRUNF
XwotCi0vLyBUZXN0cyBwcmludGluZyBTVEwgY29udGFpbmVycy4KLQotVEVTVChQcmludFN0bENv
bnRhaW5lclRlc3QsIEVtcHR5RGVxdWUpIHsKLSAgZGVxdWU8Y2hhcj4gZW1wdHk7Ci0gIEVYUEVD
VF9FUSgie30iLCBQcmludChlbXB0eSkpOwotfQotCi1URVNUKFByaW50U3RsQ29udGFpbmVyVGVz
dCwgTm9uRW1wdHlEZXF1ZSkgewotICBkZXF1ZTxpbnQ+IG5vbl9lbXB0eTsKLSAgbm9uX2VtcHR5
LnB1c2hfYmFjaygxKTsKLSAgbm9uX2VtcHR5LnB1c2hfYmFjaygzKTsKLSAgRVhQRUNUX0VRKCJ7
IDEsIDMgfSIsIFByaW50KG5vbl9lbXB0eSkpOwotfQotCi0jaWYgR1RFU1RfSEFTX0hBU0hfTUFQ
XwotCi1URVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgT25lRWxlbWVudEhhc2hNYXApIHsKLSAg
aGFzaF9tYXA8aW50LCBjaGFyPiBtYXAxOwotICBtYXAxWzFdID0gJ2EnOwotICBFWFBFQ1RfRVEo
InsgKDEsICdhJyAoOTcsIDB4NjEpKSB9IiwgUHJpbnQobWFwMSkpOwotfQotCi1URVNUKFByaW50
U3RsQ29udGFpbmVyVGVzdCwgSGFzaE11bHRpTWFwKSB7Ci0gIGhhc2hfbXVsdGltYXA8aW50LCBi
b29sPiBtYXAxOwotICBtYXAxLmluc2VydChtYWtlX3BhaXIoNSwgdHJ1ZSkpOwotICBtYXAxLmlu
c2VydChtYWtlX3BhaXIoNSwgZmFsc2UpKTsKLQotICAvLyBFbGVtZW50cyBvZiBoYXNoX211bHRp
bWFwIGNhbiBiZSBwcmludGVkIGluIGFueSBvcmRlci4KLSAgY29uc3Qgc3RkOjpzdHJpbmcgcmVz
dWx0ID0gUHJpbnQobWFwMSk7Ci0gIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSAieyAoNSwgdHJ1ZSks
ICg1LCBmYWxzZSkgfSIgfHwKLSAgICAgICAgICAgICAgcmVzdWx0ID09ICJ7ICg1LCBmYWxzZSks
ICg1LCB0cnVlKSB9IikKLSAgICAgICAgICAgICAgICAgIDw8ICIgd2hlcmUgUHJpbnQobWFwMSkg
cmV0dXJucyBcIiIgPDwgcmVzdWx0IDw8ICJcIi4iOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hB
U19IQVNIX01BUF8KLQotI2lmIEdURVNUX0hBU19IQVNIX1NFVF8KLQotVEVTVChQcmludFN0bENv
bnRhaW5lclRlc3QsIEhhc2hTZXQpIHsKLSAgaGFzaF9zZXQ8aW50PiBzZXQxOwotICBzZXQxLmlu
c2VydCgxKTsKLSAgRVhQRUNUX0VRKCJ7IDEgfSIsIFByaW50KHNldDEpKTsKLX0KLQotVEVTVChQ
cmludFN0bENvbnRhaW5lclRlc3QsIEhhc2hNdWx0aVNldCkgewotICBjb25zdCBpbnQga1NpemUg
PSA1OwotICBpbnQgYVtrU2l6ZV0gPSB7IDEsIDEsIDIsIDUsIDEgfTsKLSAgaGFzaF9tdWx0aXNl
dDxpbnQ+IHNldDEoYSwgYSArIGtTaXplKTsKLQotICAvLyBFbGVtZW50cyBvZiBoYXNoX211bHRp
c2V0IGNhbiBiZSBwcmludGVkIGluIGFueSBvcmRlci4KLSAgY29uc3Qgc3RkOjpzdHJpbmcgcmVz
dWx0ID0gUHJpbnQoc2V0MSk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGV4cGVjdGVkX3BhdHRlcm4g
PSAieyBkLCBkLCBkLCBkLCBkIH0iOyAgLy8gZCBtZWFucyBhIGRpZ2l0LgotCi0gIC8vIFZlcmlm
aWVzIHRoZSByZXN1bHQgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgcGF0dGVybjsgYWxzbyBleHRyYWN0
cwotICAvLyB0aGUgbnVtYmVycyBpbiB0aGUgcmVzdWx0LgotICBBU1NFUlRfRVEoZXhwZWN0ZWRf
cGF0dGVybi5sZW5ndGgoKSwgcmVzdWx0Lmxlbmd0aCgpKTsKLSAgc3RkOjp2ZWN0b3I8aW50PiBu
dW1iZXJzOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSByZXN1bHQubGVuZ3RoKCk7IGkrKykg
ewotICAgIGlmIChleHBlY3RlZF9wYXR0ZXJuW2ldID09ICdkJykgewotICAgICAgQVNTRVJUX05F
KGlzZGlnaXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4ocmVzdWx0W2ldKSksIDApOwotICAg
ICAgbnVtYmVycy5wdXNoX2JhY2socmVzdWx0W2ldIC0gJzAnKTsKLSAgICB9IGVsc2UgewotICAg
ICAgRVhQRUNUX0VRKGV4cGVjdGVkX3BhdHRlcm5baV0sIHJlc3VsdFtpXSkgPDwgIiB3aGVyZSBy
ZXN1bHQgaXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgcmVzdWx0OwotICAgIH0KLSAgfQotCi0gIC8vIE1ha2VzIHN1cmUgdGhlIHJlc3VsdCBj
b250YWlucyB0aGUgcmlnaHQgbnVtYmVycy4KLSAgc3RkOjpzb3J0KG51bWJlcnMuYmVnaW4oKSwg
bnVtYmVycy5lbmQoKSk7Ci0gIHN0ZDo6c29ydChhLCBhICsga1NpemUpOwotICBFWFBFQ1RfVFJV
RShzdGQ6OmVxdWFsKGEsIGEgKyBrU2l6ZSwgbnVtYmVycy5iZWdpbigpKSk7Ci19Ci0KLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX0hBU0hfU0VUXwotCi1URVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwg
TGlzdCkgewotICBjb25zdCBzdGQ6OnN0cmluZyBhW10gPSB7ImhlbGxvIiwgIndvcmxkIn07Ci0g
IGNvbnN0IGxpc3Q8c3RkOjpzdHJpbmc+IHN0cmluZ3MoYSwgYSArIDIpOwotICBFWFBFQ1RfRVEo
InsgXCJoZWxsb1wiLCBcIndvcmxkXCIgfSIsIFByaW50KHN0cmluZ3MpKTsKLX0KLQotVEVTVChQ
cmludFN0bENvbnRhaW5lclRlc3QsIE1hcCkgewotICBtYXA8aW50LCBib29sPiBtYXAxOwotICBt
YXAxWzFdID0gdHJ1ZTsKLSAgbWFwMVs1XSA9IGZhbHNlOwotICBtYXAxWzNdID0gdHJ1ZTsKLSAg
RVhQRUNUX0VRKCJ7ICgxLCB0cnVlKSwgKDMsIHRydWUpLCAoNSwgZmFsc2UpIH0iLCBQcmludCht
YXAxKSk7Ci19Ci0KLVRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBNdWx0aU1hcCkgewotICBt
dWx0aW1hcDxib29sLCBpbnQ+IG1hcDE7Ci0gIC8vIFRoZSBtYWtlX3BhaXIgdGVtcGxhdGUgZnVu
Y3Rpb24gd291bGQgZGVkdWNlIHRoZSB0eXBlIGFzCi0gIC8vIHBhaXI8Ym9vbCwgaW50PiBoZXJl
LCBhbmQgc2luY2UgdGhlIGtleSBwYXJ0IGluIGEgbXVsdGltYXAgaGFzIHRvCi0gIC8vIGJlIGNv
bnN0YW50LCB3aXRob3V0IGEgdGVtcGxhdGVkIGN0b3IgaW4gdGhlIHBhaXIgY2xhc3MgKGFzIGlu
Ci0gIC8vIGxpYkNzdGQgb24gU29sYXJpcyksIG1ha2VfcGFpciBjYWxsIHdvdWxkIGZhaWwgdG8g
Y29tcGlsZSBhcyBubwotICAvLyBpbXBsaWNpdCBjb252ZXJzaW9uIGlzIGZvdW5kLiAgVGh1cyBl
eHBsaWNpdCB0eXBlbmFtZSBpcyB1c2VkCi0gIC8vIGhlcmUgaW5zdGVhZC4KLSAgbWFwMS5pbnNl
cnQocGFpcjxjb25zdCBib29sLCBpbnQ+KHRydWUsIDApKTsKLSAgbWFwMS5pbnNlcnQocGFpcjxj
b25zdCBib29sLCBpbnQ+KHRydWUsIDEpKTsKLSAgbWFwMS5pbnNlcnQocGFpcjxjb25zdCBib29s
LCBpbnQ+KGZhbHNlLCAyKSk7Ci0gIEVYUEVDVF9FUSgieyAoZmFsc2UsIDIpLCAodHJ1ZSwgMCks
ICh0cnVlLCAxKSB9IiwgUHJpbnQobWFwMSkpOwotfQotCi1URVNUKFByaW50U3RsQ29udGFpbmVy
VGVzdCwgU2V0KSB7Ci0gIGNvbnN0IHVuc2lnbmVkIGludCBhW10gPSB7IDMsIDAsIDUgfTsKLSAg
c2V0PHVuc2lnbmVkIGludD4gc2V0MShhLCBhICsgMyk7Ci0gIEVYUEVDVF9FUSgieyAwLCAzLCA1
IH0iLCBQcmludChzZXQxKSk7Ci19Ci0KLVRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBNdWx0
aVNldCkgewotICBjb25zdCBpbnQgYVtdID0geyAxLCAxLCAyLCA1LCAxIH07Ci0gIG11bHRpc2V0
PGludD4gc2V0MShhLCBhICsgNSk7Ci0gIEVYUEVDVF9FUSgieyAxLCAxLCAxLCAyLCA1IH0iLCBQ
cmludChzZXQxKSk7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfU1REX0ZPUldBUkRfTElTVF8KLS8vIDxz
bGlzdD4gaXMgYXZhaWxhYmxlIG9uIExpbnV4IGluIHRoZSBnb29nbGUzIG1vZGUsIGJ1dCBub3Qg
b24KLS8vIFdpbmRvd3Mgb3IgTWFjIE9TIFguCi0KLVRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0
LCBTaW5nbHlMaW5rZWRMaXN0KSB7Ci0gIGludCBhW10gPSB7IDksIDIsIDggfTsKLSAgY29uc3Qg
c3RkOjpmb3J3YXJkX2xpc3Q8aW50PiBpbnRzKGEsIGEgKyAzKTsKLSAgRVhQRUNUX0VRKCJ7IDks
IDIsIDggfSIsIFByaW50KGludHMpKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9GT1JX
QVJEX0xJU1RfCi0KLVRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBQYWlyKSB7Ci0gIHBhaXI8
Y29uc3QgYm9vbCwgaW50PiBwKHRydWUsIDUpOwotICBFWFBFQ1RfRVEoIih0cnVlLCA1KSIsIFBy
aW50KHApKTsKLX0KLQotVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIFZlY3RvcikgewotICB2
ZWN0b3I8aW50PiB2OwotICB2LnB1c2hfYmFjaygxKTsKLSAgdi5wdXNoX2JhY2soMik7Ci0gIEVY
UEVDVF9FUSgieyAxLCAyIH0iLCBQcmludCh2KSk7Ci19Ci0KLVRFU1QoUHJpbnRTdGxDb250YWlu
ZXJUZXN0LCBMb25nU2VxdWVuY2UpIHsKLSAgY29uc3QgaW50IGFbMTAwXSA9IHsgMSwgMiwgMyB9
OwotICBjb25zdCB2ZWN0b3I8aW50PiB2KGEsIGEgKyAxMDApOwotICBFWFBFQ1RfRVEoInsgMSwg
MiwgMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIgotICAgICAg
ICAgICAgIjAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIC4uLiB9
IiwgUHJpbnQodikpOwotfQotCi1URVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgTmVzdGVkQ29u
dGFpbmVyKSB7Ci0gIGNvbnN0IGludCBhMVtdID0geyAxLCAyIH07Ci0gIGNvbnN0IGludCBhMltd
ID0geyAzLCA0LCA1IH07Ci0gIGNvbnN0IGxpc3Q8aW50PiBsMShhMSwgYTEgKyAyKTsKLSAgY29u
c3QgbGlzdDxpbnQ+IGwyKGEyLCBhMiArIDMpOwotCi0gIHZlY3RvcjxsaXN0PGludD4gPiB2Owot
ICB2LnB1c2hfYmFjayhsMSk7Ci0gIHYucHVzaF9iYWNrKGwyKTsKLSAgRVhQRUNUX0VRKCJ7IHsg
MSwgMiB9LCB7IDMsIDQsIDUgfSB9IiwgUHJpbnQodikpOwotfQotCi1URVNUKFByaW50U3RsQ29u
dGFpbmVyVGVzdCwgT25lRGltZW5zaW9uYWxOYXRpdmVBcnJheSkgewotICBjb25zdCBpbnQgYVsz
XSA9IHsgMSwgMiwgMyB9OwotICBOYXRpdmVBcnJheTxpbnQ+IGIoYSwgMywgUmVsYXRpb25Ub1Nv
dXJjZVJlZmVyZW5jZSgpKTsKLSAgRVhQRUNUX0VRKCJ7IDEsIDIsIDMgfSIsIFByaW50KGIpKTsK
LX0KLQotVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIFR3b0RpbWVuc2lvbmFsTmF0aXZlQXJy
YXkpIHsKLSAgY29uc3QgaW50IGFbMl1bM10gPSB7IHsgMSwgMiwgMyB9LCB7IDQsIDUsIDYgfSB9
OwotICBOYXRpdmVBcnJheTxpbnRbM10+IGIoYSwgMiwgUmVsYXRpb25Ub1NvdXJjZVJlZmVyZW5j
ZSgpKTsKLSAgRVhQRUNUX0VRKCJ7IHsgMSwgMiwgMyB9LCB7IDQsIDUsIDYgfSB9IiwgUHJpbnQo
YikpOwotfQotCi0vLyBUZXN0cyB0aGF0IGEgY2xhc3MgbmFtZWQgaXRlcmF0b3IgaXNuJ3QgdHJl
YXRlZCBhcyBhIGNvbnRhaW5lci4KLQotc3RydWN0IGl0ZXJhdG9yIHsKLSAgY2hhciB4OwotfTsK
LQotVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIEl0ZXJhdG9yKSB7Ci0gIGl0ZXJhdG9yIGl0
ID0ge307Ci0gIEVYUEVDVF9FUSgiMS1ieXRlIG9iamVjdCA8MDA+IiwgUHJpbnQoaXQpKTsKLX0K
LQotLy8gVGVzdHMgdGhhdCBhIGNsYXNzIG5hbWVkIGNvbnN0X2l0ZXJhdG9yIGlzbid0IHRyZWF0
ZWQgYXMgYSBjb250YWluZXIuCi0KLXN0cnVjdCBjb25zdF9pdGVyYXRvciB7Ci0gIGNoYXIgeDsK
LX07Ci0KLVRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBDb25zdEl0ZXJhdG9yKSB7Ci0gIGNv
bnN0X2l0ZXJhdG9yIGl0ID0ge307Ci0gIEVYUEVDVF9FUSgiMS1ieXRlIG9iamVjdCA8MDA+Iiwg
UHJpbnQoaXQpKTsKLX0KLQotI2lmIEdURVNUX0hBU19UUjFfVFVQTEUKLS8vIFRlc3RzIHByaW50
aW5nIDo6c3RkOjp0cjE6OnR1cGxlcy4KLQotLy8gVHVwbGVzIG9mIHZhcmlvdXMgYXJpdGllcy4K
LVRFU1QoUHJpbnRUcjFUdXBsZVRlc3QsIFZhcmlvdXNTaXplcykgewotICA6OnN0ZDo6dHIxOjp0
dXBsZTw+IHQwOwotICBFWFBFQ1RfRVEoIigpIiwgUHJpbnQodDApKTsKLQotICA6OnN0ZDo6dHIx
Ojp0dXBsZTxpbnQ+IHQxKDUpOwotICBFWFBFQ1RfRVEoIig1KSIsIFByaW50KHQxKSk7Ci0KLSAg
OjpzdGQ6OnRyMTo6dHVwbGU8Y2hhciwgYm9vbD4gdDIoJ2EnLCB0cnVlKTsKLSAgRVhQRUNUX0VR
KCIoJ2EnICg5NywgMHg2MSksIHRydWUpIiwgUHJpbnQodDIpKTsKLQotICA6OnN0ZDo6dHIxOjp0
dXBsZTxib29sLCBpbnQsIGludD4gdDMoZmFsc2UsIDIsIDMpOwotICBFWFBFQ1RfRVEoIihmYWxz
ZSwgMiwgMykiLCBQcmludCh0MykpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwg
aW50LCBpbnQ+IHQ0KGZhbHNlLCAyLCAzLCA0KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMs
IDQpIiwgUHJpbnQodDQpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwg
aW50LCBib29sPiB0NShmYWxzZSwgMiwgMywgNCwgdHJ1ZSk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNl
LCAyLCAzLCA0LCB0cnVlKSIsIFByaW50KHQ1KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9v
bCwgaW50LCBpbnQsIGludCwgYm9vbCwgaW50PiB0NihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNik7
Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KSIsIFByaW50KHQ2KSk7Ci0K
LSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbCwgaW50LCBpbnQ+
IHQ3KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcpOwotICBFWFBFQ1RfRVEoIihm
YWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNykiLCBQcmludCh0NykpOwotCi0gIDo6c3RkOjp0cjE6
OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2wsIGludCwgaW50LCBib29sPiB0OCgKLSAg
ICAgIGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3LCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFs
c2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRydWUpIiwgUHJpbnQodDgpKTsKLQotICA6OnN0ZDo6
dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQsIGludCwgYm9vbCwgaW50
PiB0OSgKLSAgICAgIGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3LCB0cnVlLCA5KTsKLSAgRVhQ
RUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRydWUsIDkpIiwgUHJpbnQodDkp
KTsKLQotICBjb25zdCBjaGFyKiBjb25zdCBzdHIgPSAiOCI7Ci0gIC8vIFZDKysgMjAxMCdzIGlt
cGxlbWVudGF0aW9uIG9mIHR1cGxlIG9mIEMrKzB4IGlzIGRlZmljaWVudCwgcmVxdWlyaW5nCi0g
IC8vIGFuIGV4cGxpY2l0IHR5cGUgY2FzdCBvZiBOVUxMIHRvIGJlIHVzZWQuCi0gIDo6c3RkOjp0
cjE6OnR1cGxlPGJvb2wsIGNoYXIsIHNob3J0LCB0ZXN0aW5nOjppbnRlcm5hbDo6SW50MzIsICAv
LyBOT0xJTlQKLSAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6aW50ZXJuYWw6OkludDY0LCBm
bG9hdCwgZG91YmxlLCBjb25zdCBjaGFyKiwgdm9pZCosCi0gICAgICAgICAgICAgICAgICAgIHN0
ZDo6c3RyaW5nPgotICAgICAgdDEwKGZhbHNlLCAnYScsIHN0YXRpY19jYXN0PHNob3J0PigzKSwg
NCwgNSwgMS41RiwgLTIuNSwgc3RyLCAKLSAgICAgICAgICBJbXBsaWNpdENhc3RfPHZvaWQqPihO
VUxMKSwgIjEwIik7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAnYScgKDk3LCAweDYxKSwgMywgNCwg
NSwgMS41LCAtMi41LCAiICsgUHJpbnRQb2ludGVyKHN0cikgKwotICAgICAgICAgICAgIiBwb2lu
dGluZyB0byBcIjhcIiwgTlVMTCwgXCIxMFwiKSIsCi0gICAgICAgICAgICBQcmludCh0MTApKTsK
LX0KLQotLy8gTmVzdGVkIHR1cGxlcy4KLVRFU1QoUHJpbnRUcjFUdXBsZVRlc3QsIE5lc3RlZFR1
cGxlKSB7Ci0gIDo6c3RkOjp0cjE6OnR1cGxlPCA6OnN0ZDo6dHIxOjp0dXBsZTxpbnQsIGJvb2w+
LCBjaGFyPiBuZXN0ZWQoCi0gICAgICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKDUsIHRydWUpLCAn
YScpOwotICBFWFBFQ1RfRVEoIigoNSwgdHJ1ZSksICdhJyAoOTcsIDB4NjEpKSIsIFByaW50KG5l
c3RlZCkpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdURVNU
X0hBU19TVERfVFVQTEVfCi0vLyBUZXN0cyBwcmludGluZyA6OnN0ZDo6dHVwbGVzLgotCi0vLyBU
dXBsZXMgb2YgdmFyaW91cyBhcml0aWVzLgotVEVTVChQcmludFN0ZFR1cGxlVGVzdCwgVmFyaW91
c1NpemVzKSB7Ci0gIDo6c3RkOjp0dXBsZTw+IHQwOwotICBFWFBFQ1RfRVEoIigpIiwgUHJpbnQo
dDApKTsKLQotICA6OnN0ZDo6dHVwbGU8aW50PiB0MSg1KTsKLSAgRVhQRUNUX0VRKCIoNSkiLCBQ
cmludCh0MSkpOwotCi0gIDo6c3RkOjp0dXBsZTxjaGFyLCBib29sPiB0MignYScsIHRydWUpOwot
ICBFWFBFQ1RfRVEoIignYScgKDk3LCAweDYxKSwgdHJ1ZSkiLCBQcmludCh0MikpOwotCi0gIDo6
c3RkOjp0dXBsZTxib29sLCBpbnQsIGludD4gdDMoZmFsc2UsIDIsIDMpOwotICBFWFBFQ1RfRVEo
IihmYWxzZSwgMiwgMykiLCBQcmludCh0MykpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQs
IGludCwgaW50PiB0NChmYWxzZSwgMiwgMywgNCk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAz
LCA0KSIsIFByaW50KHQ0KSk7Ci0KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQs
IGJvb2w+IHQ1KGZhbHNlLCAyLCAzLCA0LCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIs
IDMsIDQsIHRydWUpIiwgUHJpbnQodDUpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBp
bnQsIGludCwgYm9vbCwgaW50PiB0NihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNik7Ci0gIEVYUEVD
VF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KSIsIFByaW50KHQ2KSk7Ci0KLSAgOjpzdGQ6
OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2wsIGludCwgaW50PiB0NygKLSAgICAgIGZh
bHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQs
IHRydWUsIDYsIDcpIiwgUHJpbnQodDcpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBp
bnQsIGludCwgYm9vbCwgaW50LCBpbnQsIGJvb2w+IHQ4KAotICAgICAgZmFsc2UsIDIsIDMsIDQs
IHRydWUsIDYsIDcsIHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwg
NiwgNywgdHJ1ZSkiLCBQcmludCh0OCkpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGlu
dCwgaW50LCBib29sLCBpbnQsIGludCwgYm9vbCwgaW50PiB0OSgKLSAgICAgIGZhbHNlLCAyLCAz
LCA0LCB0cnVlLCA2LCA3LCB0cnVlLCA5KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQs
IHRydWUsIDYsIDcsIHRydWUsIDkpIiwgUHJpbnQodDkpKTsKLQotICBjb25zdCBjaGFyKiBjb25z
dCBzdHIgPSAiOCI7Ci0gIC8vIFZDKysgMjAxMCdzIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIG9m
IEMrKzB4IGlzIGRlZmljaWVudCwgcmVxdWlyaW5nCi0gIC8vIGFuIGV4cGxpY2l0IHR5cGUgY2Fz
dCBvZiBOVUxMIHRvIGJlIHVzZWQuCi0gIDo6c3RkOjp0dXBsZTxib29sLCBjaGFyLCBzaG9ydCwg
dGVzdGluZzo6aW50ZXJuYWw6OkludDMyLCAgLy8gTk9MSU5UCi0gICAgICAgICAgICAgICB0ZXN0
aW5nOjppbnRlcm5hbDo6SW50NjQsIGZsb2F0LCBkb3VibGUsIGNvbnN0IGNoYXIqLCB2b2lkKiwK
LSAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nPgotICAgICAgdDEwKGZhbHNlLCAnYScsIHN0YXRp
Y19jYXN0PHNob3J0PigzKSwgNCwgNSwgMS41RiwgLTIuNSwgc3RyLAotICAgICAgICAgIEltcGxp
Y2l0Q2FzdF88dm9pZCo+KE5VTEwpLCAiMTAiKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsICdhJyAo
OTcsIDB4NjEpLCAzLCA0LCA1LCAxLjUsIC0yLjUsICIgKyBQcmludFBvaW50ZXIoc3RyKSArCi0g
ICAgICAgICAgICAiIHBvaW50aW5nIHRvIFwiOFwiLCBOVUxMLCBcIjEwXCIpIiwKLSAgICAgICAg
ICAgIFByaW50KHQxMCkpOwotfQotCi0vLyBOZXN0ZWQgdHVwbGVzLgotVEVTVChQcmludFN0ZFR1
cGxlVGVzdCwgTmVzdGVkVHVwbGUpIHsKLSAgOjpzdGQ6OnR1cGxlPCA6OnN0ZDo6dHVwbGU8aW50
LCBib29sPiwgY2hhcj4gbmVzdGVkKAotICAgICAgOjpzdGQ6Om1ha2VfdHVwbGUoNSwgdHJ1ZSks
ICdhJyk7Ci0gIEVYUEVDVF9FUSgiKCg1LCB0cnVlKSwgJ2EnICg5NywgMHg2MSkpIiwgUHJpbnQo
bmVzdGVkKSk7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQotCi0vLyBUZXN0cyBw
cmludGluZyB1c2VyLWRlZmluZWQgdW5wcmludGFibGUgdHlwZXMuCi0KLS8vIFVucHJpbnRhYmxl
IHR5cGVzIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgotVEVTVChQcmludFVucHJpbnRhYmxlVHlw
ZVRlc3QsIEluR2xvYmFsTmFtZXNwYWNlKSB7Ci0gIEVYUEVDVF9FUSgiMS1ieXRlIG9iamVjdCA8
MDA+IiwKLSAgICAgICAgICAgIFByaW50KFVucHJpbnRhYmxlVGVtcGxhdGVJbkdsb2JhbDxjaGFy
PigpKSk7Ci19Ci0KLS8vIFVucHJpbnRhYmxlIHR5cGVzIGluIGEgdXNlciBuYW1lc3BhY2UuCi1U
RVNUKFByaW50VW5wcmludGFibGVUeXBlVGVzdCwgSW5Vc2VyTmFtZXNwYWNlKSB7Ci0gIEVYUEVD
VF9FUSgiMTYtYnl0ZSBvYmplY3QgPEVGLTEyIDAwLTAwIDM0LUFCIDAwLTAwIDAwLTAwIDAwLTAw
IDAwLTAwIDAwLTAwPiIsCi0gICAgICAgICAgICBQcmludCg6OmZvbzo6VW5wcmludGFibGVJbkZv
bygpKSk7Ci19Ci0KLS8vIFVucHJpbnRhYmxlIHR5cGVzIGFyZSB0aGF0IHRvbyBiaWcgdG8gYmUg
cHJpbnRlZCBjb21wbGV0ZWx5LgotCi1zdHJ1Y3QgQmlnIHsKLSAgQmlnKCkgeyBtZW1zZXQoYXJy
YXksIDAsIHNpemVvZihhcnJheSkpOyB9Ci0gIGNoYXIgYXJyYXlbMjU3XTsKLX07Ci0KLVRFU1Qo
UHJpbnRVbnByaXRhYmxlVHlwZVRlc3QsIEJpZ09iamVjdCkgewotICBFWFBFQ1RfRVEoIjI1Ny1i
eXRlIG9iamVjdCA8MDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgIgotICAgICAg
ICAgICAgIjAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAw
LTAwIDAwLTAwICIKLSAgICAgICAgICAgICIwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAw
MC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAiCi0gICAgICAgICAgICAiMDAtMDAgMDAtMDAg
MDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgLi4uIDAwLTAwIDAwLTAwIDAwLTAwICIKLSAgICAgICAg
ICAgICIwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0w
MCAwMC0wMCAiCi0gICAgICAgICAgICAiMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAt
MDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgIgotICAgICAgICAgICAgIjAwLTAwIDAwLTAwIDAw
LTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwPiIsCi0gICAgICAgICAgICBQcmlu
dChCaWcoKSkpOwotfQotCi0vLyBUZXN0cyBwcmludGluZyB1c2VyLWRlZmluZWQgc3RyZWFtYWJs
ZSB0eXBlcy4KLQotLy8gU3RyZWFtYWJsZSB0eXBlcyBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4K
LVRFU1QoUHJpbnRTdHJlYW1hYmxlVHlwZVRlc3QsIEluR2xvYmFsTmFtZXNwYWNlKSB7Ci0gIFN0
cmVhbWFibGVJbkdsb2JhbCB4OwotICBFWFBFQ1RfRVEoIlN0cmVhbWFibGVJbkdsb2JhbCIsIFBy
aW50KHgpKTsKLSAgRVhQRUNUX0VRKCJTdHJlYW1hYmxlSW5HbG9iYWwqIiwgUHJpbnQoJngpKTsK
LX0KLQotLy8gUHJpbnRhYmxlIHRlbXBsYXRlIHR5cGVzIGluIGEgdXNlciBuYW1lc3BhY2UuCi1U
RVNUKFByaW50U3RyZWFtYWJsZVR5cGVUZXN0LCBUZW1wbGF0ZVR5cGVJblVzZXJOYW1lc3BhY2Up
IHsKLSAgRVhQRUNUX0VRKCJTdHJlYW1hYmxlVGVtcGxhdGVJbkZvbzogMCIsCi0gICAgICAgICAg
ICBQcmludCg6OmZvbzo6U3RyZWFtYWJsZVRlbXBsYXRlSW5Gb288aW50PigpKSk7Ci19Ci0KLS8v
IFRlc3RzIHByaW50aW5nIGEgdXNlci1kZWZpbmVkIHJlY3Vyc2l2ZSBjb250YWluZXIgdHlwZSB0
aGF0IGhhcyBhIDw8Ci0vLyBvcGVyYXRvci4KLVRFU1QoUHJpbnRTdHJlYW1hYmxlVHlwZVRlc3Qs
IFBhdGhMaWtlSW5Vc2VyTmFtZXNwYWNlKSB7Ci0gIDo6Zm9vOjpQYXRoTGlrZSB4OwotICBFWFBF
Q1RfRVEoIlN0cmVhbWFibGUtUGF0aExpa2UiLCBQcmludCh4KSk7Ci0gIGNvbnN0IDo6Zm9vOjpQ
YXRoTGlrZSBjeDsKLSAgRVhQRUNUX0VRKCJTdHJlYW1hYmxlLVBhdGhMaWtlIiwgUHJpbnQoY3gp
KTsKLX0KLQotLy8gVGVzdHMgcHJpbnRpbmcgdXNlci1kZWZpbmVkIHR5cGVzIHRoYXQgaGF2ZSBh
IFByaW50VG8oKSBmdW5jdGlvbi4KLVRFU1QoUHJpbnRQcmludGFibGVUeXBlVGVzdCwgSW5Vc2Vy
TmFtZXNwYWNlKSB7Ci0gIEVYUEVDVF9FUSgiUHJpbnRhYmxlVmlhUHJpbnRUbzogMCIsCi0gICAg
ICAgICAgICBQcmludCg6OmZvbzo6UHJpbnRhYmxlVmlhUHJpbnRUbygpKSk7Ci19Ci0KLS8vIFRl
c3RzIHByaW50aW5nIGEgcG9pbnRlciB0byBhIHVzZXItZGVmaW5lZCB0eXBlIHRoYXQgaGFzIGEg
PDwKLS8vIG9wZXJhdG9yIGZvciBpdHMgcG9pbnRlci4KLVRFU1QoUHJpbnRQcmludGFibGVUeXBl
VGVzdCwgUG9pbnRlckluVXNlck5hbWVzcGFjZSkgewotICA6OmZvbzo6UG9pbnRlclByaW50YWJs
ZSB4OwotICBFWFBFQ1RfRVEoIlBvaW50ZXJQcmludGFibGUqIiwgUHJpbnQoJngpKTsKLX0KLQot
Ly8gVGVzdHMgcHJpbnRpbmcgdXNlci1kZWZpbmVkIGNsYXNzIHRlbXBsYXRlIHRoYXQgaGF2ZSBh
IFByaW50VG8oKSBmdW5jdGlvbi4KLVRFU1QoUHJpbnRQcmludGFibGVUeXBlVGVzdCwgVGVtcGxh
dGVJblVzZXJOYW1lc3BhY2UpIHsKLSAgRVhQRUNUX0VRKCJQcmludGFibGVWaWFQcmludFRvVGVt
cGxhdGU6IDUiLAotICAgICAgICAgICAgUHJpbnQoOjpmb286OlByaW50YWJsZVZpYVByaW50VG9U
ZW1wbGF0ZTxpbnQ+KDUpKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIHVuaXZlcnNhbCBwcmlu
dGVyIHByaW50cyBib3RoIHRoZSBhZGRyZXNzIGFuZCB0aGUKLS8vIHZhbHVlIG9mIGEgcmVmZXJl
bmNlLgotVEVTVChQcmludFJlZmVyZW5jZVRlc3QsIFByaW50c0FkZHJlc3NBbmRWYWx1ZSkgewot
ICBpbnQgbiA9IDU7Ci0gIEVYUEVDVF9FUSgiQCIgKyBQcmludFBvaW50ZXIoJm4pICsgIiA1Iiwg
UHJpbnRCeVJlZihuKSk7Ci0KLSAgaW50IGFbMl1bM10gPSB7Ci0gICAgeyAwLCAxLCAyIH0sCi0g
ICAgeyAzLCA0LCA1IH0KLSAgfTsKLSAgRVhQRUNUX0VRKCJAIiArIFByaW50UG9pbnRlcihhKSAr
ICIgeyB7IDAsIDEsIDIgfSwgeyAzLCA0LCA1IH0gfSIsCi0gICAgICAgICAgICBQcmludEJ5UmVm
KGEpKTsKLQotICBjb25zdCA6OmZvbzo6VW5wcmludGFibGVJbkZvbyB4OwotICBFWFBFQ1RfRVEo
IkAiICsgUHJpbnRQb2ludGVyKCZ4KSArICIgMTYtYnl0ZSBvYmplY3QgIgotICAgICAgICAgICAg
IjxFRi0xMiAwMC0wMCAzNC1BQiAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMCAwMC0wMD4iLAotICAg
ICAgICAgICAgUHJpbnRCeVJlZih4KSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIHVuaXZlcnNh
bCBwcmludGVyIHByaW50cyBhIGZ1bmN0aW9uIHBvaW50ZXIgcGFzc2VkIGJ5Ci0vLyByZWZlcmVu
Y2UuCi1URVNUKFByaW50UmVmZXJlbmNlVGVzdCwgSGFuZGxlc0Z1bmN0aW9uUG9pbnRlcikgewot
ICB2b2lkICgqZnApKGludCBuKSA9ICZNeUZ1bmN0aW9uOwotICBjb25zdCBzdGQ6OnN0cmluZyBm
cF9wb2ludGVyX3N0cmluZyA9Ci0gICAgICBQcmludFBvaW50ZXIocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB2b2lkKj4oJmZwKSk7Ci0gIC8vIFdlIGNhbm5vdCBkaXJlY3RseSBjYXN0ICZNeUZ1bmN0
aW9uIHRvIGNvbnN0IHZvaWQqIGJlY2F1c2UgdGhlCi0gIC8vIHN0YW5kYXJkIGRpc2FsbG93cyBj
YXN0aW5nIGJldHdlZW4gcG9pbnRlcnMgdG8gZnVuY3Rpb25zIGFuZAotICAvLyBwb2ludGVycyB0
byBvYmplY3RzLCBhbmQgc29tZSBjb21waWxlcnMgKGUuZy4gR0NDIDMuNCkgZW5mb3JjZQotICAv
LyB0aGlzIGxpbWl0YXRpb24uCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIGZwX3N0cmluZyA9IFByaW50
UG9pbnRlcihyZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigKLSAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8aW50ZXJuYWw6OkJpZ2dlc3RJbnQ+KGZwKSkpOwotICBFWFBFQ1RfRVEoIkAiICsgZnBf
cG9pbnRlcl9zdHJpbmcgKyAiICIgKyBmcF9zdHJpbmcsCi0gICAgICAgICAgICBQcmludEJ5UmVm
KGZwKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIHVuaXZlcnNhbCBwcmludGVyIHByaW50cyBh
IG1lbWJlciBmdW5jdGlvbiBwb2ludGVyCi0vLyBwYXNzZWQgYnkgcmVmZXJlbmNlLgotVEVTVChQ
cmludFJlZmVyZW5jZVRlc3QsIEhhbmRsZXNNZW1iZXJGdW5jdGlvblBvaW50ZXIpIHsKLSAgaW50
IChGb286OipwKShjaGFyIGNoKSA9ICZGb286Ok15TWV0aG9kOwotICBFWFBFQ1RfVFJVRShIYXNQ
cmVmaXgoCi0gICAgICBQcmludEJ5UmVmKHApLAotICAgICAgIkAiICsgUHJpbnRQb2ludGVyKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KCZwKSkgKyAiICIgKwotICAgICAgICAgIFByaW50
KHNpemVvZihwKSkgKyAiLWJ5dGUgb2JqZWN0ICIpKTsKLQotICBjaGFyIChGb286OipwMikoaW50
IG4pID0gJkZvbzo6TXlWaXJ0dWFsTWV0aG9kOwotICBFWFBFQ1RfVFJVRShIYXNQcmVmaXgoCi0g
ICAgICBQcmludEJ5UmVmKHAyKSwKLSAgICAgICJAIiArIFByaW50UG9pbnRlcihyZWludGVycHJl
dF9jYXN0PGNvbnN0IHZvaWQqPigmcDIpKSArICIgIiArCi0gICAgICAgICAgUHJpbnQoc2l6ZW9m
KHAyKSkgKyAiLWJ5dGUgb2JqZWN0ICIpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0aGUgdW5pdmVy
c2FsIHByaW50ZXIgcHJpbnRzIGEgbWVtYmVyIHZhcmlhYmxlIHBvaW50ZXIKLS8vIHBhc3NlZCBi
eSByZWZlcmVuY2UuCi1URVNUKFByaW50UmVmZXJlbmNlVGVzdCwgSGFuZGxlc01lbWJlclZhcmlh
YmxlUG9pbnRlcikgewotICBpbnQgKEZvbzo6KnApID0gJkZvbzo6dmFsdWU7ICAvLyBOT0xJTlQK
LSAgRVhQRUNUX1RSVUUoSGFzUHJlZml4KAotICAgICAgUHJpbnRCeVJlZihwKSwKLSAgICAgICJA
IiArIFByaW50UG9pbnRlcigmcCkgKyAiICIgKyBQcmludChzaXplb2YocCkpICsgIi1ieXRlIG9i
amVjdCAiKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVN
ZXNzYWdlKCksIHdoaWNoIGlzIHVzZWQgdG8gcHJpbnQKLS8vIGFuIG9wZXJhbmQgaW4gYSBjb21w
YXJpc29uIGFzc2VydGlvbiAoZS5nLiBBU1NFUlRfRVEpIHdoZW4gdGhlIGFzc2VydGlvbgotLy8g
ZmFpbHMsIGZvcm1hdHMgdGhlIG9wZXJhbmQgaW4gdGhlIGRlc2lyZWQgd2F5LgotCi0vLyBzY2Fs
YXIKLVRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JT
Y2FsYXIpIHsKLSAgRVhQRUNUX1NUUkVRKCIxMjMiLAotICAgICAgICAgICAgICAgRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKDEyMywgMTI0KS5jX3N0cigpKTsKLX0KLQotLy8gbm9u
LWNoYXIgcG9pbnRlcgotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0
LCBXb3Jrc0Zvck5vbkNoYXJQb2ludGVyKSB7Ci0gIGludCBuID0gMDsKLSAgRVhQRUNUX0VRKFBy
aW50UG9pbnRlcigmbiksCi0gICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1l
c3NhZ2UoJm4sICZuKS5jX3N0cigpKTsKLX0KLQotLy8gbm9uLWNoYXIgYXJyYXkKLVRFU1QoRm9y
bWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgRm9ybWF0c05vbkNoYXJBcnJheUFz
UG9pbnRlcikgewotICAvLyBJbiBleHByZXNzaW9uICdhcnJheSA9PSB4JywgJ2FycmF5JyBpcyBj
b21wYXJlZCBieSBwb2ludGVyLgotICAvLyBUaGVyZWZvcmUgd2Ugd2FudCB0byBwcmludCBhbiBh
cnJheSBvcGVyYW5kIGFzIGEgcG9pbnRlci4KLSAgaW50IG5bXSA9IHsgMSwgMiwgMyB9OwotICBF
WFBFQ1RfRVEoUHJpbnRQb2ludGVyKG4pLAotICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNv
bkZhaWx1cmVNZXNzYWdlKG4sIG4pLmNfc3RyKCkpOwotfQotCi0vLyBUZXN0cyBmb3JtYXR0aW5n
IGEgY2hhciBwb2ludGVyIHdoZW4gaXQncyBjb21wYXJlZCB3aXRoIGFub3RoZXIgcG9pbnRlci4K
LS8vIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByaW50IGl0IGFzIGEgcmF3IHBvaW50ZXIsIGFz
IHRoZSBjb21wYXJpc2lvbiBpcyBieQotLy8gcG9pbnRlci4KLQotLy8gY2hhciBwb2ludGVyIHZz
IHBvaW50ZXIKLVRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29y
a3NGb3JDaGFyUG9pbnRlclZzUG9pbnRlcikgewotICAvLyBJbiBleHByZXNzaW9uICdwID09IHgn
LCB3aGVyZSAncCcgYW5kICd4JyBhcmUgKGNvbnN0IG9yIG5vdCkgY2hhcgotICAvLyBwb2ludGVy
cywgdGhlIG9wZXJhbmRzIGFyZSBjb21wYXJlZCBieSBwb2ludGVyLiAgVGhlcmVmb3JlIHdlCi0g
IC8vIHdhbnQgdG8gcHJpbnQgJ3AnIGFzIGEgcG9pbnRlciBpbnN0ZWFkIG9mIGEgQyBzdHJpbmcg
KHdlIGRvbid0Ci0gIC8vIGV2ZW4ga25vdyBpZiBpdCdzIHN1cHBvc2VkIHRvIHBvaW50IHRvIGEg
dmFsaWQgQyBzdHJpbmcpLgotCi0gIC8vIGNvbnN0IGNoYXIqCi0gIGNvbnN0IGNoYXIqIHMgPSAi
aGVsbG8iOwotICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHMpLAotICAgICAgICAgICAgRm9ybWF0
Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHMsIHMpLmNfc3RyKCkpOwotCi0gIC8vIGNoYXIq
Ci0gIGNoYXIgY2ggPSAnYSc7Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIoJmNoKSwKLSAgICAg
ICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSgmY2gsICZjaCkuY19zdHIo
KSk7Ci19Ci0KLS8vIHdjaGFyX3QgcG9pbnRlciB2cyBwb2ludGVyCi1URVNUKEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNQb2ludGVy
KSB7Ci0gIC8vIEluIGV4cHJlc3Npb24gJ3AgPT0geCcsIHdoZXJlICdwJyBhbmQgJ3gnIGFyZSAo
Y29uc3Qgb3Igbm90KSBjaGFyCi0gIC8vIHBvaW50ZXJzLCB0aGUgb3BlcmFuZHMgYXJlIGNvbXBh
cmVkIGJ5IHBvaW50ZXIuICBUaGVyZWZvcmUgd2UKLSAgLy8gd2FudCB0byBwcmludCAncCcgYXMg
YSBwb2ludGVyIGluc3RlYWQgb2YgYSB3aWRlIEMgc3RyaW5nICh3ZSBkb24ndAotICAvLyBldmVu
IGtub3cgaWYgaXQncyBzdXBwb3NlZCB0byBwb2ludCB0byBhIHZhbGlkIHdpZGUgQyBzdHJpbmcp
LgotCi0gIC8vIGNvbnN0IHdjaGFyX3QqCi0gIGNvbnN0IHdjaGFyX3QqIHMgPSBMImhlbGxvIjsK
LSAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihzKSwKLSAgICAgICAgICAgIEZvcm1hdEZvckNvbXBh
cmlzb25GYWlsdXJlTWVzc2FnZShzLCBzKS5jX3N0cigpKTsKLQotICAvLyB3Y2hhcl90KgotICB3
Y2hhcl90IGNoID0gTCdhJzsKLSAgRVhQRUNUX0VRKFByaW50UG9pbnRlcigmY2gpLAotICAgICAg
ICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKCZjaCwgJmNoKS5jX3N0cigp
KTsKLX0KLQotLy8gVGVzdHMgZm9ybWF0dGluZyBhIGNoYXIgcG9pbnRlciB3aGVuIGl0J3MgY29t
cGFyZWQgdG8gYSBzdHJpbmcgb2JqZWN0LgotLy8gSW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gcHJp
bnQgdGhlIGNoYXIgcG9pbnRlciBhcyBhIEMgc3RyaW5nLgotCi0jaWYgR1RFU1RfSEFTX0dMT0JB
TF9TVFJJTkcKLS8vIGNoYXIgcG9pbnRlciB2cyA6OnN0cmluZwotVEVTVChGb3JtYXRGb3JDb21w
YXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJQb2ludGVyVnNTdHJpbmcpIHsK
LSAgY29uc3QgY2hhciogcyA9ICJoZWxsbyBcIndvcmxkIjsKLSAgRVhQRUNUX1NUUkVRKCJcImhl
bGxvIFxcXCJ3b3JsZFwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBl
ZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzLCA6
OnN0cmluZygpKS5jX3N0cigpKTsKLQotICAvLyBjaGFyKgotICBjaGFyIHN0cltdID0gImhpXDEi
OwotICBjaGFyKiBwID0gc3RyOwotICBFWFBFQ1RfU1RSRVEoIlwiaGlcXHgxXCIiLCAgLy8gVGhl
IHN0cmluZyBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgRm9ybWF0
Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHAsIDo6c3RyaW5nKCkpLmNfc3RyKCkpOwotfQot
I2VuZGlmCi0KLS8vIGNoYXIgcG9pbnRlciB2cyBzdGQ6OnN0cmluZwotVEVTVChGb3JtYXRGb3JD
b21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJQb2ludGVyVnNTdGRTdHJp
bmcpIHsKLSAgY29uc3QgY2hhciogcyA9ICJoZWxsbyBcIndvcmxkIjsKLSAgRVhQRUNUX1NUUkVR
KCJcImhlbGxvIFxcXCJ3b3JsZFwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUg
ZXNjYXBlZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2Fn
ZShzLCA6OnN0ZDo6c3RyaW5nKCkpLmNfc3RyKCkpOwotCi0gIC8vIGNoYXIqCi0gIGNoYXIgc3Ry
W10gPSAiaGlcMSI7Ci0gIGNoYXIqIHAgPSBzdHI7Ci0gIEVYUEVDVF9TVFJFUSgiXCJoaVxceDFc
IiIsICAvLyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAg
ICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocCwgOjpzdGQ6OnN0cmluZygp
KS5jX3N0cigpKTsKLX0KLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotLy8gd2NoYXJf
dCBwb2ludGVyIHZzIDo6d3N0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1l
c3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzV1N0cmluZykgewotICBjb25zdCB3Y2hh
cl90KiBzID0gTCJoaSBcIndvcmxkIjsKLSAgRVhQRUNUX1NUUkVRKCJMXCJoaSBcXFwid29ybGRc
IiIsICAvLyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAg
ICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocywgOjp3c3RyaW5nKCkpLmNf
c3RyKCkpOwotCi0gIC8vIHdjaGFyX3QqCi0gIHdjaGFyX3Qgc3RyW10gPSBMImhpXDEiOwotICB3
Y2hhcl90KiBwID0gc3RyOwotICBFWFBFQ1RfU1RSRVEoIkxcImhpXFx4MVwiIiwgIC8vIFRoZSBz
dHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZv
ckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShwLCA6OndzdHJpbmcoKSkuY19zdHIoKSk7Ci19Ci0j
ZW5kaWYKLQotI2lmIEdURVNUX0hBU19TVERfV1NUUklORwotLy8gd2NoYXJfdCBwb2ludGVyIHZz
IHN0ZDo6d3N0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0
LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzU3RkV1N0cmluZykgewotICBjb25zdCB3Y2hhcl90KiBz
ID0gTCJoaSBcIndvcmxkIjsKLSAgRVhQRUNUX1NUUkVRKCJMXCJoaSBcXFwid29ybGRcIiIsICAv
LyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICBG
b3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocywgOjpzdGQ6OndzdHJpbmcoKSkuY19z
dHIoKSk7Ci0KLSAgLy8gd2NoYXJfdCoKLSAgd2NoYXJfdCBzdHJbXSA9IEwiaGlcMSI7Ci0gIHdj
aGFyX3QqIHAgPSBzdHI7Ci0gIEVYUEVDVF9TVFJFUSgiTFwiaGlcXHgxXCIiLCAgLy8gVGhlIHN0
cmluZyBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHAsIDo6c3RkOjp3c3RyaW5nKCkpLmNfc3RyKCkpOwot
fQotI2VuZGlmCi0KLS8vIFRlc3RzIGZvcm1hdHRpbmcgYSBjaGFyIGFycmF5IHdoZW4gaXQncyBj
b21wYXJlZCB3aXRoIGEgcG9pbnRlciBvciBhcnJheS4KLS8vIEluIHRoaXMgY2FzZSB3ZSB3YW50
IHRvIHByaW50IHRoZSBhcnJheSBhcyBhIHJvdyBwb2ludGVyLCBhcyB0aGUgY29tcGFyaXNvbgot
Ly8gaXMgYnkgcG9pbnRlci4KLQotLy8gY2hhciBhcnJheSB2cyBwb2ludGVyCi1URVNUKEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yQ2hhckFycmF5VnNQb2lu
dGVyKSB7Ci0gIGNoYXIgc3RyW10gPSAiaGkgXCJ3b3JsZFwiIjsKLSAgY2hhciogcCA9IE5VTEw7
Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIoc3RyKSwKLSAgICAgICAgICAgIEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIHApLmNfc3RyKCkpOwotfQotCi0vLyBjaGFyIGFy
cmF5IHZzIGNoYXIgYXJyYXkKLVRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdl
VGVzdCwgV29ya3NGb3JDaGFyQXJyYXlWc0NoYXJBcnJheSkgewotICBjb25zdCBjaGFyIHN0cltd
ID0gImhpIFwid29ybGRcIiI7Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIoc3RyKSwKLSAgICAg
ICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIHN0cikuY19zdHIo
KSk7Ci19Ci0KLS8vIHdjaGFyX3QgYXJyYXkgdnMgcG9pbnRlcgotVEVTVChGb3JtYXRGb3JDb21w
YXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyQXJyYXlWc1BvaW50ZXIpIHsK
LSAgd2NoYXJfdCBzdHJbXSA9IEwiaGkgXCJ3b3JsZFwiIjsKLSAgd2NoYXJfdCogcCA9IE5VTEw7
Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIoc3RyKSwKLSAgICAgICAgICAgIEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIHApLmNfc3RyKCkpOwotfQotCi0vLyB3Y2hhcl90
IGFycmF5IHZzIHdjaGFyX3QgYXJyYXkKLVRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVN
ZXNzYWdlVGVzdCwgV29ya3NGb3JXQ2hhckFycmF5VnNXQ2hhckFycmF5KSB7Ci0gIGNvbnN0IHdj
aGFyX3Qgc3RyW10gPSBMImhpIFwid29ybGRcIiI7Ci0gIEVYUEVDVF9FUShQcmludFBvaW50ZXIo
c3RyKSwKLSAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIs
IHN0cikuY19zdHIoKSk7Ci19Ci0KLS8vIFRlc3RzIGZvcm1hdHRpbmcgYSBjaGFyIGFycmF5IHdo
ZW4gaXQncyBjb21wYXJlZCB3aXRoIGEgc3RyaW5nIG9iamVjdC4KLS8vIEluIHRoaXMgY2FzZSB3
ZSB3YW50IHRvIHByaW50IHRoZSBhcnJheSBhcyBhIEMgc3RyaW5nLgotCi0jaWYgR1RFU1RfSEFT
X0dMT0JBTF9TVFJJTkcKLS8vIGNoYXIgYXJyYXkgdnMgc3RyaW5nCi1URVNUKEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdHJpbmcpIHsK
LSAgY29uc3QgY2hhciBzdHJbXSA9ICJoaSBcIndcMHJsZFwiIjsKLSAgRVhQRUNUX1NUUkVRKCJc
ImhpIFxcXCJ3XCIiLCAgLy8gVGhlIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVtYmVkZGVkIE5VTCB0ZXJtaW5hdGVzIHRoZSBz
dHJpbmcuCi0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uo
c3RyLCA6OnN0cmluZygpKS5jX3N0cigpKTsKLX0KLSNlbmRpZgotCi0vLyBjaGFyIGFycmF5IHZz
IHN0ZDo6c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3Qs
IFdvcmtzRm9yQ2hhckFycmF5VnNTdGRTdHJpbmcpIHsKLSAgY29uc3QgY2hhciBzdHJbXSA9ICJo
aSBcIndvcmxkXCIiOwotICBFWFBFQ1RfU1RSRVEoIlwiaGkgXFxcIndvcmxkXFxcIlwiIiwgIC8v
IFRoZSBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgOjpzdGQ6OnN0cmluZygpKS5jX3N0cigpKTsK
LX0KLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotLy8gd2NoYXJfdCBhcnJheSB2cyB3
c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtz
Rm9yV0NoYXJBcnJheVZzV1N0cmluZykgewotICBjb25zdCB3Y2hhcl90IHN0cltdID0gTCJoaSBc
IndvcmxkXCIiOwotICBFWFBFQ1RfU1RSRVEoIkxcImhpIFxcXCJ3b3JsZFxcXCJcIiIsICAvLyBU
aGUgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIDo6d3N0cmluZygpKS5jX3N0cigpKTsKLX0KLSNl
bmRpZgotCi0jaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCi0vLyB3Y2hhcl90IGFycmF5IHZzIHN0
ZDo6d3N0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBX
b3Jrc0ZvcldDaGFyQXJyYXlWc1N0ZFdTdHJpbmcpIHsKLSAgY29uc3Qgd2NoYXJfdCBzdHJbXSA9
IEwiaGkgXCJ3XDBybGRcIiI7Ci0gIEVYUEVDVF9TVFJFUSgKLSAgICAgICJMXCJoaSBcXFwid1wi
IiwgIC8vIFRoZSBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRW1iZWRkZWQgTlVMIHRlcm1pbmF0ZXMgdGhlIHN0cmluZy4KLSAgICAgIEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIDo6c3RkOjp3c3RyaW5nKCkpLmNfc3Ry
KCkpOwotfQotI2VuZGlmCi0KLS8vIFVzZWZ1bCBmb3IgdGVzdGluZyBQcmludFRvU3RyaW5nKCku
ICBXZSBjYW5ub3QgdXNlIEVYUEVDVF9FUSgpCi0vLyB0aGVyZSBhcyBpdHMgaW1wbGVtZW50YXRp
b24gdXNlcyBQcmludFRvU3RyaW5nKCkuICBUaGUgY2FsbGVyIG11c3QKLS8vIGVuc3VyZSB0aGF0
ICd2YWx1ZScgaGFzIG5vIHNpZGUgZWZmZWN0LgotI2RlZmluZSBFWFBFQ1RfUFJJTlRfVE9fU1RS
SU5HXyh2YWx1ZSwgZXhwZWN0ZWRfc3RyaW5nKSAgICAgICAgIFwKLSAgRVhQRUNUX1RSVUUoUHJp
bnRUb1N0cmluZyh2YWx1ZSkgPT0gKGV4cGVjdGVkX3N0cmluZykpICAgICAgICBcCi0gICAgICA8
PCAiIHdoZXJlICIgI3ZhbHVlICIgcHJpbnRzIGFzICIgPDwgKFByaW50VG9TdHJpbmcodmFsdWUp
KQotCi1URVNUKFByaW50VG9TdHJpbmdUZXN0LCBXb3Jrc0ZvclNjYWxhcikgewotICBFWFBFQ1Rf
UFJJTlRfVE9fU1RSSU5HXygxMjMsICIxMjMiKTsKLX0KLQotVEVTVChQcmludFRvU3RyaW5nVGVz
dCwgV29ya3NGb3JQb2ludGVyVG9Db25zdENoYXIpIHsKLSAgY29uc3QgY2hhciogcCA9ICJoZWxs
byI7Ci0gIEVYUEVDVF9QUklOVF9UT19TVFJJTkdfKHAsICJcImhlbGxvXCIiKTsKLX0KLQotVEVT
VChQcmludFRvU3RyaW5nVGVzdCwgV29ya3NGb3JQb2ludGVyVG9Ob25Db25zdENoYXIpIHsKLSAg
Y2hhciBzW10gPSAiaGVsbG8iOwotICBjaGFyKiBwID0gczsKLSAgRVhQRUNUX1BSSU5UX1RPX1NU
UklOR18ocCwgIlwiaGVsbG9cIiIpOwotfQotCi1URVNUKFByaW50VG9TdHJpbmdUZXN0LCBFc2Nh
cGVzRm9yUG9pbnRlclRvQ29uc3RDaGFyKSB7Ci0gIGNvbnN0IGNoYXIqIHAgPSAiaGVsbG9cbiI7
Ci0gIEVYUEVDVF9QUklOVF9UT19TVFJJTkdfKHAsICJcImhlbGxvXFxuXCIiKTsKLX0KLQotVEVT
VChQcmludFRvU3RyaW5nVGVzdCwgRXNjYXBlc0ZvclBvaW50ZXJUb05vbkNvbnN0Q2hhcikgewot
ICBjaGFyIHNbXSA9ICJoZWxsb1wxIjsKLSAgY2hhciogcCA9IHM7Ci0gIEVYUEVDVF9QUklOVF9U
T19TVFJJTkdfKHAsICJcImhlbGxvXFx4MVwiIik7Ci19Ci0KLVRFU1QoUHJpbnRUb1N0cmluZ1Rl
c3QsIFdvcmtzRm9yQXJyYXkpIHsKLSAgaW50IG5bM10gPSB7IDEsIDIsIDMgfTsKLSAgRVhQRUNU
X1BSSU5UX1RPX1NUUklOR18obiwgInsgMSwgMiwgMyB9Iik7Ci19Ci0KLVRFU1QoUHJpbnRUb1N0
cmluZ1Rlc3QsIFdvcmtzRm9yQ2hhckFycmF5KSB7Ci0gIGNoYXIgc1tdID0gImhlbGxvIjsKLSAg
RVhQRUNUX1BSSU5UX1RPX1NUUklOR18ocywgIlwiaGVsbG9cIiIpOwotfQotCi1URVNUKFByaW50
VG9TdHJpbmdUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVdpdGhFbWJlZGRlZE51bCkgewotICBjb25z
dCBjaGFyIHN0cl93aXRoX251bFtdID0gImhlbGxvXDAgd29ybGQiOwotICBFWFBFQ1RfUFJJTlRf
VE9fU1RSSU5HXyhzdHJfd2l0aF9udWwsICJcImhlbGxvXFwwIHdvcmxkXCIiKTsKLQotICBjaGFy
IG11dGFibGVfc3RyX3dpdGhfbnVsW10gPSAiaGVsbG9cMCB3b3JsZCI7Ci0gIEVYUEVDVF9QUklO
VF9UT19TVFJJTkdfKG11dGFibGVfc3RyX3dpdGhfbnVsLCAiXCJoZWxsb1xcMCB3b3JsZFwiIik7
Ci19Ci0KLSN1bmRlZiBFWFBFQ1RfUFJJTlRfVE9fU1RSSU5HXwotCi1URVNUKFVuaXZlcnNhbFRl
cnNlUHJpbnRUZXN0LCBXb3Jrc0Zvck5vblJlZmVyZW5jZSkgewotICA6OnN0ZDo6c3RyaW5nc3Ry
ZWFtIHNzOwotICBVbml2ZXJzYWxUZXJzZVByaW50KDEyMywgJnNzKTsKLSAgRVhQRUNUX0VRKCIx
MjMiLCBzcy5zdHIoKSk7Ci19Ci0KLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFRlc3QsIFdvcmtz
Rm9yUmVmZXJlbmNlKSB7Ci0gIGNvbnN0IGludCYgbiA9IDEyMzsKLSAgOjpzdGQ6OnN0cmluZ3N0
cmVhbSBzczsKLSAgVW5pdmVyc2FsVGVyc2VQcmludChuLCAmc3MpOwotICBFWFBFQ1RfRVEoIjEy
MyIsIHNzLnN0cigpKTsKLX0KLQotVEVTVChVbml2ZXJzYWxUZXJzZVByaW50VGVzdCwgV29ya3NG
b3JDU3RyaW5nKSB7Ci0gIGNvbnN0IGNoYXIqIHMxID0gImFiYyI7Ci0gIDo6c3RkOjpzdHJpbmdz
dHJlYW0gc3MxOwotICBVbml2ZXJzYWxUZXJzZVByaW50KHMxLCAmc3MxKTsKLSAgRVhQRUNUX0VR
KCJcImFiY1wiIiwgc3MxLnN0cigpKTsKLQotICBjaGFyKiBzMiA9IGNvbnN0X2Nhc3Q8Y2hhcio+
KHMxKTsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczI7Ci0gIFVuaXZlcnNhbFRlcnNlUHJpbnQo
czIsICZzczIpOwotICBFWFBFQ1RfRVEoIlwiYWJjXCIiLCBzczIuc3RyKCkpOwotCi0gIGNvbnN0
IGNoYXIqIHMzID0gTlVMTDsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczM7Ci0gIFVuaXZlcnNh
bFRlcnNlUHJpbnQoczMsICZzczMpOwotICBFWFBFQ1RfRVEoIk5VTEwiLCBzczMuc3RyKCkpOwot
fQotCi1URVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JOb25SZWZlcmVuY2UpIHsKLSAg
OjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLSAgVW5pdmVyc2FsUHJpbnQoMTIzLCAmc3MpOwotICBF
WFBFQ1RfRVEoIjEyMyIsIHNzLnN0cigpKTsKLX0KLQotVEVTVChVbml2ZXJzYWxQcmludFRlc3Qs
IFdvcmtzRm9yUmVmZXJlbmNlKSB7Ci0gIGNvbnN0IGludCYgbiA9IDEyMzsKLSAgOjpzdGQ6OnN0
cmluZ3N0cmVhbSBzczsKLSAgVW5pdmVyc2FsUHJpbnQobiwgJnNzKTsKLSAgRVhQRUNUX0VRKCIx
MjMiLCBzcy5zdHIoKSk7Ci19Ci0KLVRFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvckNT
dHJpbmcpIHsKLSAgY29uc3QgY2hhciogczEgPSAiYWJjIjsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVh
bSBzczE7Ci0gIFVuaXZlcnNhbFByaW50KHMxLCAmc3MxKTsKLSAgRVhQRUNUX0VRKFByaW50UG9p
bnRlcihzMSkgKyAiIHBvaW50aW5nIHRvIFwiYWJjXCIiLCBzdGQ6OnN0cmluZyhzczEuc3RyKCkp
KTsKLQotICBjaGFyKiBzMiA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHMxKTsKLSAgOjpzdGQ6OnN0cmlu
Z3N0cmVhbSBzczI7Ci0gIFVuaXZlcnNhbFByaW50KHMyLCAmc3MyKTsKLSAgRVhQRUNUX0VRKFBy
aW50UG9pbnRlcihzMikgKyAiIHBvaW50aW5nIHRvIFwiYWJjXCIiLCBzdGQ6OnN0cmluZyhzczIu
c3RyKCkpKTsKLQotICBjb25zdCBjaGFyKiBzMyA9IE5VTEw7Ci0gIDo6c3RkOjpzdHJpbmdzdHJl
YW0gc3MzOwotICBVbml2ZXJzYWxQcmludChzMywgJnNzMyk7Ci0gIEVYUEVDVF9FUSgiTlVMTCIs
IHNzMy5zdHIoKSk7Ci19Ci0KLVRFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvckNoYXJB
cnJheSkgewotICBjb25zdCBjaGFyIHN0cltdID0gIlwiTGluZVwwIDFcIlxuTGluZSAyIjsKLSAg
OjpzdGQ6OnN0cmluZ3N0cmVhbSBzczE7Ci0gIFVuaXZlcnNhbFByaW50KHN0ciwgJnNzMSk7Ci0g
IEVYUEVDVF9FUSgiXCJcXFwiTGluZVxcMCAxXFxcIlxcbkxpbmUgMlwiIiwgc3MxLnN0cigpKTsK
LQotICBjb25zdCBjaGFyIG11dGFibGVfc3RyW10gPSAiXCJMaW5lXDAgMVwiXG5MaW5lIDIiOwot
ICA6OnN0ZDo6c3RyaW5nc3RyZWFtIHNzMjsKLSAgVW5pdmVyc2FsUHJpbnQobXV0YWJsZV9zdHIs
ICZzczIpOwotICBFWFBFQ1RfRVEoIlwiXFxcIkxpbmVcXDAgMVxcXCJcXG5MaW5lIDJcIiIsIHNz
Mi5zdHIoKSk7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLVRFU1QoVW5pdmVyc2Fs
VGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhUcjEsIFByaW50c0VtcHR5VHVw
bGUpIHsKLSAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNU
b1N0cmluZ3MoCi0gICAgICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKCkpOwotICBFWFBFQ1RfRVEo
MHUsIHJlc3VsdC5zaXplKCkpOwotfQotCi1URVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZp
ZWxkc1RvU3RyaW5nc1Rlc3RXaXRoVHIxLCBQcmludHNPbmVUdXBsZSkgewotICBTdHJpbmdzIHJl
c3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6
c3RkOjp0cjE6Om1ha2VfdHVwbGUoMSkpOwotICBBU1NFUlRfRVEoMXUsIHJlc3VsdC5zaXplKCkp
OwotICBFWFBFQ1RfRVEoIjEiLCByZXN1bHRbMF0pOwotfQotCi1URVNUKFVuaXZlcnNhbFRlcnNl
UHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoVHIxLCBQcmludHNUd29UdXBsZSkgewot
ICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5n
cygKLSAgICAgIDo6c3RkOjp0cjE6Om1ha2VfdHVwbGUoMSwgJ2EnKSk7Ci0gIEFTU0VSVF9FUSgy
dSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVYUEVDVF9FUSgiMSIsIHJlc3VsdFswXSk7Ci0gIEVYUEVD
VF9FUSgiJ2EnICg5NywgMHg2MSkiLCByZXN1bHRbMV0pOwotfQotCi1URVNUKFVuaXZlcnNhbFRl
cnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoVHIxLCBQcmludHNUZXJzZWx5KSB7
Ci0gIGNvbnN0IGludCBuID0gMTsKLSAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVBy
aW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoCi0gICAgICA6OnN0ZDo6dHIxOjp0dXBsZTxjb25zdCBp
bnQmLCBjb25zdCBjaGFyKj4obiwgImEiKSk7Ci0gIEFTU0VSVF9FUSgydSwgcmVzdWx0LnNpemUo
KSk7Ci0gIEVYUEVDVF9FUSgiMSIsIHJlc3VsdFswXSk7Ci0gIEVYUEVDVF9FUSgiXCJhXCIiLCBy
ZXN1bHRbMV0pOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdU
RVNUX0hBU19TVERfVFVQTEVfCi0KLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRz
VG9TdHJpbmdzVGVzdFdpdGhTdGQsIFByaW50c0VtcHR5VHVwbGUpIHsKLSAgU3RyaW5ncyByZXN1
bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoOjpzdGQ6Om1ha2Vf
dHVwbGUoKSk7Ci0gIEVYUEVDVF9FUSgwdSwgcmVzdWx0LnNpemUoKSk7Ci19Ci0KLVRFU1QoVW5p
dmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhTdGQsIFByaW50c09u
ZVR1cGxlKSB7Ci0gIFN0cmluZ3MgcmVzdWx0ID0gVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmll
bGRzVG9TdHJpbmdzKAotICAgICAgOjpzdGQ6Om1ha2VfdHVwbGUoMSkpOwotICBBU1NFUlRfRVEo
MXUsIHJlc3VsdC5zaXplKCkpOwotICBFWFBFQ1RfRVEoIjEiLCByZXN1bHRbMF0pOwotfQotCi1U
RVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoU3RkLCBQ
cmludHNUd29UdXBsZSkgewotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRU
dXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6c3RkOjptYWtlX3R1cGxlKDEsICdhJykpOwot
ICBBU1NFUlRfRVEoMnUsIHJlc3VsdC5zaXplKCkpOwotICBFWFBFQ1RfRVEoIjEiLCByZXN1bHRb
MF0pOwotICBFWFBFQ1RfRVEoIidhJyAoOTcsIDB4NjEpIiwgcmVzdWx0WzFdKTsKLX0KLQotVEVT
VChVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3NUZXN0V2l0aFN0ZCwgUHJp
bnRzVGVyc2VseSkgewotICBjb25zdCBpbnQgbiA9IDE7Ci0gIFN0cmluZ3MgcmVzdWx0ID0gVW5p
dmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzKAotICAgICAgOjpzdGQ6OnR1cGxl
PGNvbnN0IGludCYsIGNvbnN0IGNoYXIqPihuLCAiYSIpKTsKLSAgQVNTRVJUX0VRKDJ1LCByZXN1
bHQuc2l6ZSgpKTsKLSAgRVhQRUNUX0VRKCIxIiwgcmVzdWx0WzBdKTsKLSAgRVhQRUNUX0VRKCJc
ImFcIiIsIHJlc3VsdFsxXSk7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9UVVBMRV8K
LQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X3ByaW50ZXJzX3Rlc3QKLX0gIC8vIG5hbWVzcGFjZSB0
ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0
LXRlc3QtcGFydF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVz
dC10ZXN0LXBhcnRfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E4YmE5
MzNhZWY5MDE3NzBhY2E3OGUxZTQ0YjliZGU1MGU4NjUwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0
L2d0ZXN0LXRlc3QtcGFydF90ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMjA4ICswLDAgQEAK
LS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuCi0vLyBBbGwgUmlnaHRzIFJlc2VydmVkLgot
Ly8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBk
aXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8g
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhv
cjogbWhldWxlQGdvb2dsZS5jb20gKE1hcmt1cyBIZXVsZSkKLS8vCi0KLSNpbmNsdWRlICJndGVz
dC9ndGVzdC10ZXN0LXBhcnQuaCIKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLXVzaW5n
IHRlc3Rpbmc6Ok1lc3NhZ2U7Ci11c2luZyB0ZXN0aW5nOjpUZXN0OwotdXNpbmcgdGVzdGluZzo6
VGVzdFBhcnRSZXN1bHQ7Ci11c2luZyB0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdEFycmF5OwotCi1u
YW1lc3BhY2UgewotCi0vLyBUZXN0cyB0aGUgVGVzdFBhcnRSZXN1bHQgY2xhc3MuCi0KLS8vIFRo
ZSB0ZXN0IGZpeHR1cmUgZm9yIHRlc3RpbmcgVGVzdFBhcnRSZXN1bHQuCi1jbGFzcyBUZXN0UGFy
dFJlc3VsdFRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHJvdGVjdGVkOgotICBUZXN0UGFydFJlc3Vs
dFRlc3QoKQotICAgICAgOiByMV8oVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzLCAiZm9vL2Jhci5j
YyIsIDEwLCAiU3VjY2VzcyEiKSwKLSAgICAgICAgcjJfKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0
YWxGYWlsdXJlLCAiZm9vL2Jhci5jYyIsIC0xLCAiRmFpbHVyZSEiKSwKLSAgICAgICAgcjNfKFRl
c3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLCBOVUxMLCAtMSwgIkZhaWx1cmUhIikge30KLQot
ICBUZXN0UGFydFJlc3VsdCByMV8sIHIyXywgcjNfOwotfTsKLQotCi1URVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBDb25zdHJ1Y3RvcldvcmtzKSB7Ci0gIE1lc3NhZ2UgbWVzc2FnZTsKLSAgbWVz
c2FnZSA8PCAic29tZXRoaW5nIGlzIHRlcnJpYmx5IHdyb25nIjsKLSAgbWVzc2FnZSA8PCBzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4odGVzdGluZzo6aW50ZXJuYWw6OmtTdGFja1RyYWNlTWFya2Vy
KTsKLSAgbWVzc2FnZSA8PCAic29tZSB1bmltcG9ydGFudCBzdGFjayB0cmFjZSI7Ci0KLSAgY29u
c3QgVGVzdFBhcnRSZXN1bHQgcmVzdWx0KFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvbWVfZmlsZS5jYyIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2UuR2V0U3RyaW5nKCkuY19zdHIoKSk7Ci0KLSAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVz
dWx0OjprTm9uRmF0YWxGYWlsdXJlLCByZXN1bHQudHlwZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJz
b21lX2ZpbGUuY2MiLCByZXN1bHQuZmlsZV9uYW1lKCkpOwotICBFWFBFQ1RfRVEoNDIsIHJlc3Vs
dC5saW5lX251bWJlcigpKTsKLSAgRVhQRUNUX1NUUkVRKG1lc3NhZ2UuR2V0U3RyaW5nKCkuY19z
dHIoKSwgcmVzdWx0Lm1lc3NhZ2UoKSk7Ci0gIEVYUEVDVF9TVFJFUSgic29tZXRoaW5nIGlzIHRl
cnJpYmx5IHdyb25nIiwgcmVzdWx0LnN1bW1hcnkoKSk7Ci19Ci0KLVRFU1RfRihUZXN0UGFydFJl
c3VsdFRlc3QsIFJlc3VsdEFjY2Vzc29yc1dvcmspIHsKLSAgY29uc3QgVGVzdFBhcnRSZXN1bHQg
c3VjY2VzcyhUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImZpbGUuY2MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIik7Ci0gIEVYUEVDVF9UUlVF
KHN1Y2Nlc3MucGFzc2VkKCkpOwotICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcy5mYWlsZWQoKSk7Ci0g
IEVYUEVDVF9GQUxTRShzdWNjZXNzLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwotICBFWFBFQ1RfRkFM
U0Uoc3VjY2Vzcy5mYXRhbGx5X2ZhaWxlZCgpKTsKLQotICBjb25zdCBUZXN0UGFydFJlc3VsdCBu
b25mYXRhbF9mYWlsdXJlKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlLmNjIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAibWVzc2FnZSIpOwotICBFWFBFQ1RfRkFMU0Uobm9uZmF0YWxfZmFp
bHVyZS5wYXNzZWQoKSk7Ci0gIEVYUEVDVF9UUlVFKG5vbmZhdGFsX2ZhaWx1cmUuZmFpbGVkKCkp
OwotICBFWFBFQ1RfVFJVRShub25mYXRhbF9mYWlsdXJlLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwot
ICBFWFBFQ1RfRkFMU0Uobm9uZmF0YWxfZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgpKTsKLQotICBj
b25zdCBUZXN0UGFydFJlc3VsdCBmYXRhbF9mYWlsdXJlKFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxG
YWlsdXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlLmNjIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSIpOwotICBFWFBFQ1RfRkFMU0UoZmF0YWxf
ZmFpbHVyZS5wYXNzZWQoKSk7Ci0gIEVYUEVDVF9UUlVFKGZhdGFsX2ZhaWx1cmUuZmFpbGVkKCkp
OwotICBFWFBFQ1RfRkFMU0UoZmF0YWxfZmFpbHVyZS5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKLSAg
RVhQRUNUX1RSVUUoZmF0YWxfZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgpKTsKLX0KLQotLy8gVGVz
dHMgVGVzdFBhcnRSZXN1bHQ6OnR5cGUoKS4KLVRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIHR5
cGUpIHsKLSAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcywgcjFfLnR5cGUoKSk7
Ci0gIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a05vbkZhdGFsRmFpbHVyZSwgcjJfLnR5cGUo
KSk7Ci0gIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwgcjNfLnR5cGUo
KSk7Ci19Ci0KLS8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpmaWxlX25hbWUoKS4KLVRFU1RfRihU
ZXN0UGFydFJlc3VsdFRlc3QsIGZpbGVfbmFtZSkgewotICBFWFBFQ1RfU1RSRVEoImZvby9iYXIu
Y2MiLCByMV8uZmlsZV9uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcjNfLmZpbGVfbmFt
ZSgpKTsKLX0KLQotLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OmxpbmVfbnVtYmVyKCkuCi1URVNU
X0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBsaW5lX251bWJlcikgewotICBFWFBFQ1RfRVEoMTAsIHIx
Xy5saW5lX251bWJlcigpKTsKLSAgRVhQRUNUX0VRKC0xLCByMl8ubGluZV9udW1iZXIoKSk7Ci19
Ci0KLS8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjptZXNzYWdlKCkuCi1URVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBtZXNzYWdlKSB7Ci0gIEVYUEVDVF9TVFJFUSgiU3VjY2VzcyEiLCByMV8ubWVz
c2FnZSgpKTsKLX0KLQotLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OnBhc3NlZCgpLgotVEVTVF9G
KFRlc3RQYXJ0UmVzdWx0VGVzdCwgUGFzc2VkKSB7Ci0gIEVYUEVDVF9UUlVFKHIxXy5wYXNzZWQo
KSk7Ci0gIEVYUEVDVF9GQUxTRShyMl8ucGFzc2VkKCkpOwotICBFWFBFQ1RfRkFMU0UocjNfLnBh
c3NlZCgpKTsKLX0KLQotLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OmZhaWxlZCgpLgotVEVTVF9G
KFRlc3RQYXJ0UmVzdWx0VGVzdCwgRmFpbGVkKSB7Ci0gIEVYUEVDVF9GQUxTRShyMV8uZmFpbGVk
KCkpOwotICBFWFBFQ1RfVFJVRShyMl8uZmFpbGVkKCkpOwotICBFWFBFQ1RfVFJVRShyM18uZmFp
bGVkKCkpOwotfQotCi0vLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmF0YWxseV9mYWlsZWQoKS4K
LVRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIEZhdGFsbHlGYWlsZWQpIHsKLSAgRVhQRUNUX0ZB
TFNFKHIxXy5mYXRhbGx5X2ZhaWxlZCgpKTsKLSAgRVhQRUNUX0ZBTFNFKHIyXy5mYXRhbGx5X2Zh
aWxlZCgpKTsKLSAgRVhQRUNUX1RSVUUocjNfLmZhdGFsbHlfZmFpbGVkKCkpOwotfQotCi0vLyBU
ZXN0cyBUZXN0UGFydFJlc3VsdDo6bm9uZmF0YWxseV9mYWlsZWQoKS4KLVRFU1RfRihUZXN0UGFy
dFJlc3VsdFRlc3QsIE5vbmZhdGFsbHlGYWlsZWQpIHsKLSAgRVhQRUNUX0ZBTFNFKHIxXy5ub25m
YXRhbGx5X2ZhaWxlZCgpKTsKLSAgRVhQRUNUX1RSVUUocjJfLm5vbmZhdGFsbHlfZmFpbGVkKCkp
OwotICBFWFBFQ1RfRkFMU0UocjNfLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwotfQotCi0vLyBUZXN0
cyB0aGUgVGVzdFBhcnRSZXN1bHRBcnJheSBjbGFzcy4KLQotY2xhc3MgVGVzdFBhcnRSZXN1bHRB
cnJheVRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHJvdGVjdGVkOgotICBUZXN0UGFydFJlc3VsdEFy
cmF5VGVzdCgpCi0gICAgICA6IHIxXyhUZXN0UGFydFJlc3VsdDo6a05vbkZhdGFsRmFpbHVyZSwg
ImZvby9iYXIuY2MiLCAtMSwgIkZhaWx1cmUgMSIpLAotICAgICAgICByMl8oVGVzdFBhcnRSZXN1
bHQ6OmtGYXRhbEZhaWx1cmUsICJmb28vYmFyLmNjIiwgLTEsICJGYWlsdXJlIDIiKSB7fQotCi0g
IGNvbnN0IFRlc3RQYXJ0UmVzdWx0IHIxXywgcjJfOwotfTsKLQotLy8gVGVzdHMgdGhhdCBUZXN0
UGFydFJlc3VsdEFycmF5IGluaXRpYWxseSBoYXMgc2l6ZSAwLgotVEVTVF9GKFRlc3RQYXJ0UmVz
dWx0QXJyYXlUZXN0LCBJbml0aWFsU2l6ZUlzWmVybykgewotICBUZXN0UGFydFJlc3VsdEFycmF5
IHJlc3VsdHM7Ci0gIEVYUEVDVF9FUSgwLCByZXN1bHRzLnNpemUoKSk7Ci19Ci0KLS8vIFRlc3Rz
IHRoYXQgVGVzdFBhcnRSZXN1bHRBcnJheSBjb250YWlucyB0aGUgZ2l2ZW4gVGVzdFBhcnRSZXN1
bHQKLS8vIGFmdGVyIG9uZSBBcHBlbmQoKSBvcGVyYXRpb24uCi1URVNUX0YoVGVzdFBhcnRSZXN1
bHRBcnJheVRlc3QsIENvbnRhaW5zR2l2ZW5SZXN1bHRBZnRlckFwcGVuZCkgewotICBUZXN0UGFy
dFJlc3VsdEFycmF5IHJlc3VsdHM7Ci0gIHJlc3VsdHMuQXBwZW5kKHIxXyk7Ci0gIEVYUEVDVF9F
USgxLCByZXN1bHRzLnNpemUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiRmFpbHVyZSAxIiwgcmVzdWx0
cy5HZXRUZXN0UGFydFJlc3VsdCgwKS5tZXNzYWdlKCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IFRl
c3RQYXJ0UmVzdWx0QXJyYXkgY29udGFpbnMgdGhlIGdpdmVuIFRlc3RQYXJ0UmVzdWx0cwotLy8g
YWZ0ZXIgdHdvIEFwcGVuZCgpIG9wZXJhdGlvbnMuCi1URVNUX0YoVGVzdFBhcnRSZXN1bHRBcnJh
eVRlc3QsIENvbnRhaW5zR2l2ZW5SZXN1bHRzQWZ0ZXJUd29BcHBlbmRzKSB7Ci0gIFRlc3RQYXJ0
UmVzdWx0QXJyYXkgcmVzdWx0czsKLSAgcmVzdWx0cy5BcHBlbmQocjFfKTsKLSAgcmVzdWx0cy5B
cHBlbmQocjJfKTsKLSAgRVhQRUNUX0VRKDIsIHJlc3VsdHMuc2l6ZSgpKTsKLSAgRVhQRUNUX1NU
UkVRKCJGYWlsdXJlIDEiLCByZXN1bHRzLkdldFRlc3RQYXJ0UmVzdWx0KDApLm1lc3NhZ2UoKSk7
Ci0gIEVYUEVDVF9TVFJFUSgiRmFpbHVyZSAyIiwgcmVzdWx0cy5HZXRUZXN0UGFydFJlc3VsdCgx
KS5tZXNzYWdlKCkpOwotfQotCi10eXBlZGVmIFRlc3RQYXJ0UmVzdWx0QXJyYXlUZXN0IFRlc3RQ
YXJ0UmVzdWx0QXJyYXlEZWF0aFRlc3Q7Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIHByb2dyYW0gZGll
cyB3aGVuIEdldFRlc3RQYXJ0UmVzdWx0KCkgaXMgY2FsbGVkIHdpdGgKLS8vIGFuIGludmFsaWQg
aW5kZXguCi1URVNUX0YoVGVzdFBhcnRSZXN1bHRBcnJheURlYXRoVGVzdCwgRGllc1doZW5JbmRl
eElzT3V0T2ZCb3VuZCkgewotICBUZXN0UGFydFJlc3VsdEFycmF5IHJlc3VsdHM7Ci0gIHJlc3Vs
dHMuQXBwZW5kKHIxXyk7Ci0KLSAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChyZXN1bHRzLkdl
dFRlc3RQYXJ0UmVzdWx0KC0xKSwgIiIpOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKHJl
c3VsdHMuR2V0VGVzdFBhcnRSZXN1bHQoMSksICIiKTsKLX0KLQotLy8gVE9ETyhtaGV1bGVAZ29v
Z2xlLmNvbSk6IEFkZCBhIHRlc3QgZm9yIHRoZSBjbGFzcyBIYXNOZXdGYXRhbEZhaWx1cmVIZWxw
ZXIuCi0KLX0gIC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvdGVzdC9ndGVzdC10dXBsZV90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRl
c3QvdGVzdC9ndGVzdC10dXBsZV90ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiZmFhM2UwYWM0YjIyOTBkOWZhMmI2OTQ3YWQ4MDlmMTBiOGQyNDMzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvZ3Rlc3QtdHVwbGVfdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDMyMCArMCww
IEBACi0vLyBDb3B5cmlnaHQgMjAwNywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8g
QXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0jaW5jbHVkZSAiZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaCIKLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgImd0
ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLXVzaW5nIDo6c3RkOjp0cjE6OmdldDsKLXVz
aW5nIDo6c3RkOjp0cjE6Om1ha2VfdHVwbGU7Ci11c2luZyA6OnN0ZDo6dHIxOjp0dXBsZTsKLXVz
aW5nIDo6c3RkOjp0cjE6OnR1cGxlX2VsZW1lbnQ7Ci11c2luZyA6OnN0ZDo6dHIxOjp0dXBsZV9z
aXplOwotdXNpbmcgOjp0ZXN0aW5nOjpTdGF0aWNBc3NlcnRUeXBlRXE7Ci0KLS8vIFRlc3RzIHRo
YXQgdHVwbGVfZWxlbWVudDxLLCB0dXBsZTxUMCwgVDEsIC4uLiwgVE4+ID46OnR5cGUgcmV0dXJu
cyBUSy4KLVRFU1QodHVwbGVfZWxlbWVudF9UZXN0LCBSZXR1cm5zRWxlbWVudFR5cGUpIHsKLSAg
U3RhdGljQXNzZXJ0VHlwZUVxPGludCwgdHVwbGVfZWxlbWVudDwwLCB0dXBsZTxpbnQsIGNoYXI+
ID46OnR5cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQmLCB0dXBsZV9lbGVtZW50PDEs
IHR1cGxlPGRvdWJsZSwgaW50Jj4gPjo6dHlwZT4oKTsKLSAgU3RhdGljQXNzZXJ0VHlwZUVxPGJv
b2wsIHR1cGxlX2VsZW1lbnQ8MiwgdHVwbGU8ZG91YmxlLCBpbnQsIGJvb2w+ID46OnR5cGU+KCk7
Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdHVwbGVfc2l6ZTxUPjo6dmFsdWUgZ2l2ZXMgdGhlIG51bWJl
ciBvZiBmaWVsZHMgaW4gdHVwbGUKLS8vIHR5cGUgVC4KLVRFU1QodHVwbGVfc2l6ZV9UZXN0LCBS
ZXR1cm5zTnVtYmVyT2ZGaWVsZHMpIHsKLSAgRVhQRUNUX0VRKDAsICt0dXBsZV9zaXplPHR1cGxl
PD4gPjo6dmFsdWUpOwotICBFWFBFQ1RfRVEoMSwgK3R1cGxlX3NpemU8dHVwbGU8dm9pZCo+ID46
OnZhbHVlKTsKLSAgRVhQRUNUX0VRKDEsICt0dXBsZV9zaXplPHR1cGxlPGNoYXI+ID46OnZhbHVl
KTsKLSAgRVhQRUNUX0VRKDEsICsodHVwbGVfc2l6ZTx0dXBsZTx0dXBsZTxpbnQsIGRvdWJsZT4g
PiA+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfRVEoMiwgKyh0dXBsZV9zaXplPHR1cGxlPGludCYsIGNv
bnN0IGNoYXI+ID46OnZhbHVlKSk7Ci0gIEVYUEVDVF9FUSgzLCArKHR1cGxlX3NpemU8dHVwbGU8
Y2hhciosIHZvaWQsIGNvbnN0IGJvb2wmPiA+Ojp2YWx1ZSkpOwotfQotCi0vLyBUZXN0cyBjb21w
YXJpbmcgYSB0dXBsZSB3aXRoIGl0c2VsZi4KLVRFU1QoQ29tcGFyaXNvblRlc3QsIENvbXBhcmVz
V2l0aFNlbGYpIHsKLSAgY29uc3QgdHVwbGU8aW50LCBjaGFyLCBib29sPiBhKDUsICdhJywgZmFs
c2UpOwotCi0gIEVYUEVDVF9UUlVFKGEgPT0gYSk7Ci0gIEVYUEVDVF9GQUxTRShhICE9IGEpOwot
fQotCi0vLyBUZXN0cyBjb21wYXJpbmcgdHdvIHR1cGxlcyB3aXRoIHRoZSBzYW1lIHZhbHVlLgot
VEVTVChDb21wYXJpc29uVGVzdCwgQ29tcGFyZXNFcXVhbFR1cGxlcykgewotICBjb25zdCB0dXBs
ZTxpbnQsIGJvb2w+IGEoNSwgdHJ1ZSksIGIoNSwgdHJ1ZSk7Ci0KLSAgRVhQRUNUX1RSVUUoYSA9
PSBiKTsKLSAgRVhQRUNUX0ZBTFNFKGEgIT0gYik7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyB0
d28gZGlmZmVyZW50IHR1cGxlcyB0aGF0IGhhdmUgbm8gcmVmZXJlbmNlIGZpZWxkcy4KLVRFU1Qo
Q29tcGFyaXNvblRlc3QsIENvbXBhcmVzVW5lcXVhbFR1cGxlc1dpdGhvdXRSZWZlcmVuY2VGaWVs
ZHMpIHsKLSAgdHlwZWRlZiB0dXBsZTxjb25zdCBpbnQsIGNoYXI+IEZvb1R1cGxlOwotCi0gIGNv
bnN0IEZvb1R1cGxlIGEoMCwgJ3gnKTsKLSAgY29uc3QgRm9vVHVwbGUgYigxLCAnYScpOwotCi0g
IEVYUEVDVF9UUlVFKGEgIT0gYik7Ci0gIEVYUEVDVF9GQUxTRShhID09IGIpOwotCi0gIGNvbnN0
IEZvb1R1cGxlIGMoMSwgJ2InKTsKLQotICBFWFBFQ1RfVFJVRShiICE9IGMpOwotICBFWFBFQ1Rf
RkFMU0UoYiA9PSBjKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIHR3byBkaWZmZXJlbnQgdHVw
bGVzIHRoYXQgaGF2ZSByZWZlcmVuY2UgZmllbGRzLgotVEVTVChDb21wYXJpc29uVGVzdCwgQ29t
cGFyZXNVbmVxdWFsVHVwbGVzV2l0aFJlZmVyZW5jZUZpZWxkcykgewotICB0eXBlZGVmIHR1cGxl
PGludCYsIGNvbnN0IGNoYXImPiBGb29UdXBsZTsKLQotICBpbnQgaSA9IDU7Ci0gIGNvbnN0IGNo
YXIgY2ggPSAnYSc7Ci0gIGNvbnN0IEZvb1R1cGxlIGEoaSwgY2gpOwotCi0gIGludCBqID0gNjsK
LSAgY29uc3QgRm9vVHVwbGUgYihqLCBjaCk7Ci0KLSAgRVhQRUNUX1RSVUUoYSAhPSBiKTsKLSAg
RVhQRUNUX0ZBTFNFKGEgPT0gYik7Ci0KLSAgaiA9IDU7Ci0gIGNvbnN0IGNoYXIgY2gyID0gJ2In
OwotICBjb25zdCBGb29UdXBsZSBjKGosIGNoMik7Ci0KLSAgRVhQRUNUX1RSVUUoYiAhPSBjKTsK
LSAgRVhQRUNUX0ZBTFNFKGIgPT0gYyk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgYSB0dXBsZSBmaWVs
ZCB3aXRoIGEgcmVmZXJlbmNlIHR5cGUgaXMgYW4gYWxpYXMgb2YgdGhlCi0vLyB2YXJpYWJsZSBp
dCdzIHN1cHBvc2VkIHRvIHJlZmVyZW5jZS4KLVRFU1QoUmVmZXJlbmNlRmllbGRUZXN0LCBJc0Fs
aWFzT2ZSZWZlcmVuY2VkVmFyaWFibGUpIHsKLSAgaW50IG4gPSAwOwotICB0dXBsZTxib29sLCBp
bnQmPiB0KHRydWUsIG4pOwotCi0gIG4gPSAxOwotICBFWFBFQ1RfRVEobiwgZ2V0PDE+KHQpKQot
ICAgICAgPDwgIkNoYW5naW5nIGEgdW5kZXJseWluZyB2YXJpYWJsZSBzaG91bGQgdXBkYXRlIHRo
ZSByZWZlcmVuY2UgZmllbGQuIjsKLQotICAvLyBNYWtlcyBzdXJlIHRoYXQgdGhlIGltcGxlbWVu
dGF0aW9uIGRvZXNuJ3QgZG8gYW55dGhpbmcgZnVubnkgd2l0aAotICAvLyB0aGUgJiBvcGVyYXRv
ciBmb3IgdGhlIHJldHVybiB0eXBlIG9mIGdldDw+KCkuCi0gIEVYUEVDVF9FUSgmbiwgJihnZXQ8
MT4odCkpKQotICAgICAgPDwgIlRoZSBhZGRyZXNzIG9mIGEgcmVmZXJlbmNlIGZpZWxkIHNob3Vs
ZCBlcXVhbCB0aGUgYWRkcmVzcyBvZiAiCi0gICAgICA8PCAidGhlIHVuZGVybHlpbmcgdmFyaWFi
bGUuIjsKLQotICBnZXQ8MT4odCkgPSAyOwotICBFWFBFQ1RfRVEoMiwgbikKLSAgICAgIDw8ICJD
aGFuZ2luZyBhIHJlZmVyZW5jZSBmaWVsZCBzaG91bGQgdXBkYXRlIHRoZSB1bmRlcmx5aW5nIHZh
cmlhYmxlLiI7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdHVwbGUncyBkZWZhdWx0IGNvbnN0cnVjdG9y
IGRlZmF1bHQgaW5pdGlhbGl6ZXMgZWFjaCBmaWVsZC4KLS8vIFRoaXMgdGVzdCBuZWVkcyB0byBj
b21waWxlIHdpdGhvdXQgZ2VuZXJhdGluZyB3YXJuaW5ncy4KLVRFU1QoVHVwbGVDb25zdHJ1Y3Rv
clRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvckRlZmF1bHRJbml0aWFsaXplc0VhY2hGaWVsZCkgewot
ICAvLyBUaGUgVFIxIHJlcG9ydCByZXF1aXJlcyB0aGF0IHR1cGxlJ3MgZGVmYXVsdCBjb25zdHJ1
Y3RvciBkZWZhdWx0Ci0gIC8vIGluaXRpYWxpemVzIGVhY2ggZmllbGQsIGV2ZW4gaWYgaXQncyBh
IHByaW1pdGl2ZSB0eXBlLiAgSWYgdGhlCi0gIC8vIGltcGxlbWVudGF0aW9uIGZvcmdldHMgdG8g
ZG8gdGhpcywgdGhpcyB0ZXN0IHdpbGwgY2F0Y2ggaXQgYnkKLSAgLy8gZ2VuZXJhdGluZyB3YXJu
aW5ncyBhYm91dCB1c2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyAoYXNzdW1pbmcKLSAgLy8g
YSBkZWNlbnQgY29tcGlsZXIpLgotCi0gIHR1cGxlPD4gZW1wdHk7Ci0KLSAgdHVwbGU8aW50PiBh
MSwgYjE7Ci0gIGIxID0gYTE7Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8MD4oYjEpKTsKLQotICB0dXBs
ZTxpbnQsIGRvdWJsZT4gYTIsIGIyOwotICBiMiA9IGEyOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDA+
KGIyKSk7Ci0gIEVYUEVDVF9FUSgwLjAsIGdldDwxPihiMikpOwotCi0gIHR1cGxlPGRvdWJsZSwg
Y2hhciwgYm9vbCo+IGEzLCBiMzsKLSAgYjMgPSBhMzsKLSAgRVhQRUNUX0VRKDAuMCwgZ2V0PDA+
KGIzKSk7Ci0gIEVYUEVDVF9FUSgnXDAnLCBnZXQ8MT4oYjMpKTsKLSAgRVhQRUNUX1RSVUUoZ2V0
PDI+KGIzKSA9PSBOVUxMKTsKLQotICB0dXBsZTxpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQsIGludCwgaW50LCBpbnQ+IGExMCwgYjEwOwotICBiMTAgPSBhMTA7Ci0gIEVYUEVDVF9F
USgwLCBnZXQ8MD4oYjEwKSk7Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8MT4oYjEwKSk7Ci0gIEVYUEVD
VF9FUSgwLCBnZXQ8Mj4oYjEwKSk7Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8Mz4oYjEwKSk7Ci0gIEVY
UEVDVF9FUSgwLCBnZXQ8ND4oYjEwKSk7Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8NT4oYjEwKSk7Ci0g
IEVYUEVDVF9FUSgwLCBnZXQ8Nj4oYjEwKSk7Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8Nz4oYjEwKSk7
Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8OD4oYjEwKSk7Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8OT4oYjEw
KSk7Ci19Ci0KLS8vIFRlc3RzIGNvbnN0cnVjdGluZyBhIHR1cGxlIGZyb20gaXRzIGZpZWxkcy4K
LVRFU1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENvbnN0cnVjdHNGcm9tRmllbGRzKSB7Ci0gIGlu
dCBuID0gMTsKLSAgLy8gUmVmZXJlbmNlIGZpZWxkLgotICB0dXBsZTxpbnQmPiBhKG4pOwotICBF
WFBFQ1RfRVEoJm4sICYoZ2V0PDA+KGEpKSk7Ci0KLSAgLy8gTm9uLXJlZmVyZW5jZSBmaWVsZHMu
Ci0gIHR1cGxlPGludCwgY2hhcj4gYig1LCAnYScpOwotICBFWFBFQ1RfRVEoNSwgZ2V0PDA+KGIp
KTsKLSAgRVhQRUNUX0VRKCdhJywgZ2V0PDE+KGIpKTsKLQotICAvLyBDb25zdCByZWZlcmVuY2Ug
ZmllbGQuCi0gIGNvbnN0IGludCBtID0gMjsKLSAgdHVwbGU8Ym9vbCwgY29uc3QgaW50Jj4gYyh0
cnVlLCBtKTsKLSAgRVhQRUNUX1RSVUUoZ2V0PDA+KGMpKTsKLSAgRVhQRUNUX0VRKCZtLCAmKGdl
dDwxPihjKSkpOwotfQotCi0vLyBUZXN0cyB0dXBsZSdzIGNvcHkgY29uc3RydWN0b3IuCi1URVNU
KFR1cGxlQ29uc3RydWN0b3JUZXN0LCBDb3B5Q29uc3RydWN0b3IpIHsKLSAgdHVwbGU8ZG91Ymxl
LCBib29sPiBhKDAuMCwgdHJ1ZSk7Ci0gIHR1cGxlPGRvdWJsZSwgYm9vbD4gYihhKTsKLQotICBF
WFBFQ1RfRE9VQkxFX0VRKDAuMCwgZ2V0PDA+KGIpKTsKLSAgRVhQRUNUX1RSVUUoZ2V0PDE+KGIp
KTsKLX0KLQotLy8gVGVzdHMgY29uc3RydWN0aW5nIGEgdHVwbGUgZnJvbSBhbm90aGVyIHR1cGxl
IHRoYXQgaGFzIGEgY29tcGF0aWJsZQotLy8gYnV0IGRpZmZlcmVudCB0eXBlLgotVEVTVChUdXBs
ZUNvbnN0cnVjdG9yVGVzdCwgQ29uc3RydWN0c0Zyb21EaWZmZXJlbnRUdXBsZVR5cGUpIHsKLSAg
dHVwbGU8aW50LCBpbnQsIGNoYXI+IGEoMCwgMSwgJ2EnKTsKLSAgdHVwbGU8ZG91YmxlLCBsb25n
LCBpbnQ+IGIoYSk7Ci0KLSAgRVhQRUNUX0RPVUJMRV9FUSgwLjAsIGdldDwwPihiKSk7Ci0gIEVY
UEVDVF9FUSgxLCBnZXQ8MT4oYikpOwotICBFWFBFQ1RfRVEoJ2EnLCBnZXQ8Mj4oYikpOwotfQot
Ci0vLyBUZXN0cyBjb25zdHJ1Y3RpbmcgYSAyLXR1cGxlIGZyb20gYW4gc3RkOjpwYWlyLgotVEVT
VChUdXBsZUNvbnN0cnVjdG9yVGVzdCwgQ29uc3RydWN0c0Zyb21QYWlyKSB7Ci0gIDo6c3RkOjpw
YWlyPGludCwgY2hhcj4gYSgxLCAnYScpOwotICB0dXBsZTxpbnQsIGNoYXI+IGIoYSk7Ci0gIHR1
cGxlPGludCwgY29uc3QgY2hhciY+IGMoYSk7Ci19Ci0KLS8vIFRlc3RzIGFzc2lnbmluZyBhIHR1
cGxlIHRvIGFub3RoZXIgdHVwbGUgd2l0aCB0aGUgc2FtZSB0eXBlLgotVEVTVChUdXBsZUFzc2ln
bm1lbnRUZXN0LCBBc3NpZ25zVG9TYW1lVHVwbGVUeXBlKSB7Ci0gIGNvbnN0IHR1cGxlPGludCwg
bG9uZz4gYSg1LCA3TCk7Ci0gIHR1cGxlPGludCwgbG9uZz4gYjsKLSAgYiA9IGE7Ci0gIEVYUEVD
VF9FUSg1LCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEoN0wsIGdldDwxPihiKSk7Ci19Ci0KLS8v
IFRlc3RzIGFzc2lnbmluZyBhIHR1cGxlIHRvIGFub3RoZXIgdHVwbGUgd2l0aCBhIGRpZmZlcmVu
dCBidXQKLS8vIGNvbXBhdGlibGUgdHlwZS4KLVRFU1QoVHVwbGVBc3NpZ25tZW50VGVzdCwgQXNz
aWduc1RvRGlmZmVyZW50VHVwbGVUeXBlKSB7Ci0gIGNvbnN0IHR1cGxlPGludCwgbG9uZywgYm9v
bD4gYSgxLCA3TCwgdHJ1ZSk7Ci0gIHR1cGxlPGxvbmcsIGludCwgYm9vbD4gYjsKLSAgYiA9IGE7
Ci0gIEVYUEVDVF9FUSgxTCwgZ2V0PDA+KGIpKTsKLSAgRVhQRUNUX0VRKDcsIGdldDwxPihiKSk7
Ci0gIEVYUEVDVF9UUlVFKGdldDwyPihiKSk7Ci19Ci0KLS8vIFRlc3RzIGFzc2lnbmluZyBhbiBz
dGQ6OnBhaXIgdG8gYSAyLXR1cGxlLgotVEVTVChUdXBsZUFzc2lnbm1lbnRUZXN0LCBBc3NpZ25z
RnJvbVBhaXIpIHsKLSAgY29uc3QgOjpzdGQ6OnBhaXI8aW50LCBib29sPiBhKDUsIHRydWUpOwot
ICB0dXBsZTxpbnQsIGJvb2w+IGI7Ci0gIGIgPSBhOwotICBFWFBFQ1RfRVEoNSwgZ2V0PDA+KGIp
KTsKLSAgRVhQRUNUX1RSVUUoZ2V0PDE+KGIpKTsKLQotICB0dXBsZTxsb25nLCBib29sPiBjOwot
ICBjID0gYTsKLSAgRVhQRUNUX0VRKDVMLCBnZXQ8MD4oYykpOwotICBFWFBFQ1RfVFJVRShnZXQ8
MT4oYykpOwotfQotCi0vLyBBIGZpeHR1cmUgZm9yIHRlc3RpbmcgYmlnIHR1cGxlcy4KLWNsYXNz
IEJpZ1R1cGxlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHR5
cGVkZWYgdHVwbGU8aW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwg
aW50PiBCaWdUdXBsZTsKLQotICBCaWdUdXBsZVRlc3QoKSA6Ci0gICAgICBhXygxLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAyKSwKLSAgICAgIGJfKDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDMpIHt9Ci0KLSAgQmlnVHVwbGUgYV8sIGJfOwotfTsKLQotLy8gVGVzdHMgY29uc3RydWN0aW5n
IGJpZyB0dXBsZXMuCi1URVNUX0YoQmlnVHVwbGVUZXN0LCBDb25zdHJ1Y3Rpb24pIHsKLSAgQmln
VHVwbGUgYTsKLSAgQmlnVHVwbGUgYihiXyk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgZ2V0PE4+KHQp
IHJldHVybnMgdGhlIE4tdGggKDAtYmFzZWQpIGZpZWxkIG9mIHR1cGxlIHQuCi1URVNUX0YoQmln
VHVwbGVUZXN0LCBnZXQpIHsKLSAgRVhQRUNUX0VRKDEsIGdldDwwPihhXykpOwotICBFWFBFQ1Rf
RVEoMiwgZ2V0PDk+KGFfKSk7Ci0KLSAgLy8gVGVzdHMgdGhhdCBnZXQoKSB3b3JrcyBvbiBhIGNv
bnN0IHR1cGxlIHRvby4KLSAgY29uc3QgQmlnVHVwbGUgYShhXyk7Ci0gIEVYUEVDVF9FUSgxLCBn
ZXQ8MD4oYSkpOwotICBFWFBFQ1RfRVEoMiwgZ2V0PDk+KGEpKTsKLX0KLQotLy8gVGVzdHMgY29t
cGFyaW5nIGJpZyB0dXBsZXMuCi1URVNUX0YoQmlnVHVwbGVUZXN0LCBDb21wYXJpc29ucykgewot
ICBFWFBFQ1RfVFJVRShhXyA9PSBhXyk7Ci0gIEVYUEVDVF9GQUxTRShhXyAhPSBhXyk7Ci0KLSAg
RVhQRUNUX1RSVUUoYV8gIT0gYl8pOwotICBFWFBFQ1RfRkFMU0UoYV8gPT0gYl8pOwotfQotCi1U
RVNUKE1ha2VUdXBsZVRlc3QsIFdvcmtzRm9yU2NhbGFyVHlwZXMpIHsKLSAgdHVwbGU8Ym9vbCwg
aW50PiBhOwotICBhID0gbWFrZV90dXBsZSh0cnVlLCA1KTsKLSAgRVhQRUNUX1RSVUUoZ2V0PDA+
KGEpKTsKLSAgRVhQRUNUX0VRKDUsIGdldDwxPihhKSk7Ci0KLSAgdHVwbGU8Y2hhciwgaW50LCBs
b25nPiBiOwotICBiID0gbWFrZV90dXBsZSgnYScsICdiJywgNSk7Ci0gIEVYUEVDVF9FUSgnYScs
IGdldDwwPihiKSk7Ci0gIEVYUEVDVF9FUSgnYicsIGdldDwxPihiKSk7Ci0gIEVYUEVDVF9FUSg1
LCBnZXQ8Mj4oYikpOwotfQotCi1URVNUKE1ha2VUdXBsZVRlc3QsIFdvcmtzRm9yUG9pbnRlcnMp
IHsKLSAgaW50IGFbXSA9IHsgMSwgMiwgMywgNCB9OwotICBjb25zdCBjaGFyKiBjb25zdCBzdHIg
PSAiaGkiOwotICBpbnQqIGNvbnN0IHAgPSBhOwotCi0gIHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQq
PiB0OwotICB0ID0gbWFrZV90dXBsZShzdHIsIHApOwotICBFWFBFQ1RfRVEoc3RyLCBnZXQ8MD4o
dCkpOwotICBFWFBFQ1RfRVEocCwgZ2V0PDE+KHQpKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRl
c3QyX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LXR5cGVk
LXRlc3QyX3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyODQ3MDBiMDIw
YjUyNDkxNzViZmNmYTNhNWJhZTg1ZTZmMzhhYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVz
dC10eXBlZC10ZXN0Ml90ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwot
Ly8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3Ry
aWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8v
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3
YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0jaW5jbHVkZSA8dmVjdG9yPgotCi0jaW5j
bHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuaCIKLSNpbmNsdWRlICJndGVzdC9ndGVz
dC5oIgotCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCi0vLyBUZXN0cyB0aGF0IHRoZSBz
YW1lIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlCi0vLyBpbnN0YW50aWF0ZWQg
aW4gZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVuaXRzIGxpbmtlZCB0b2dldGhlci4KLS8vIChDb250
YWluZXJUZXN0IGlzIGFsc28gaW5zdGFudGlhdGVkIGluIGd0ZXN0LXR5cGVkLXRlc3RfdGVzdC5j
Yy4pCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChWZWN0b3IsIENvbnRhaW5lclRlc3Qs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpUeXBlczxzdGQ6OnZlY3Rv
cjxpbnQ+ID4pOwotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rl
c3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNjI4YmEwODBjY2VlYTNkNjM1
NTY2ODM0NzMwZDA0NGQ1YjQ1MDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC10eXBlZC10
ZXN0X3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzODAgKzAsMCBAQAotLy8gQ29weXJpZ2h0
IDIwMDggR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4K
LS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0v
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xl
LmNvbSAoWmhhbnlvbmcgV2FuKQotCi0jaW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rl
c3QuaCIKLQotI2luY2x1ZGUgPHNldD4KLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KLSNpbmNsdWRlICJn
dGVzdC9ndGVzdC5oIgotCi11c2luZyB0ZXN0aW5nOjpUZXN0OwotCi0vLyBVc2VkIGZvciB0ZXN0
aW5nIHRoYXQgU2V0VXBUZXN0Q2FzZSgpL1RlYXJEb3duVGVzdENhc2UoKSwgZml4dHVyZQotLy8g
Y3Rvci9kdG9yLCBhbmQgU2V0VXAoKS9UZWFyRG93bigpIHdvcmsgY29ycmVjdGx5IGluIHR5cGVk
IHRlc3RzIGFuZAotLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLWNsYXNzIENvbW1vblRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gIC8vIEZvciBzb21lIHRl
Y2huaWNhbCByZWFzb24sIFNldFVwVGVzdENhc2UoKSBhbmQgVGVhckRvd25UZXN0Q2FzZSgpCi0g
IC8vIG11c3QgYmUgcHVibGljLgotIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2Fz
ZSgpIHsKLSAgICBzaGFyZWRfID0gbmV3IFQoNSk7Ci0gIH0KLQotICBzdGF0aWMgdm9pZCBUZWFy
RG93blRlc3RDYXNlKCkgewotICAgIGRlbGV0ZSBzaGFyZWRfOwotICAgIHNoYXJlZF8gPSBOVUxM
OwotICB9Ci0KLSAgLy8gVGhpcyAncHJvdGVjdGVkOicgaXMgb3B0aW9uYWwuICBUaGVyZSdzIG5v
IGhhcm0gaW4gbWFraW5nIGFsbAotICAvLyBtZW1iZXJzIG9mIHRoaXMgZml4dHVyZSBjbGFzcyB0
ZW1wbGF0ZSBwdWJsaWMuCi0gcHJvdGVjdGVkOgotICAvLyBXZSB1c2VkIHRvIHVzZSBzdGQ6Omxp
c3QgaGVyZSwgYnV0IHN3aXRjaGVkIHRvIHN0ZDo6dmVjdG9yIHNpbmNlCi0gIC8vIE1TVkMncyA8
bGlzdD4gZG9lc24ndCBjb21waWxlIGNsZWFubHkgd2l0aCAvVzQuCi0gIHR5cGVkZWYgc3RkOjp2
ZWN0b3I8VD4gVmVjdG9yOwotICB0eXBlZGVmIHN0ZDo6c2V0PGludD4gSW50U2V0OwotCi0gIENv
bW1vblRlc3QoKSA6IHZhbHVlXygxKSB7fQotCi0gIHZpcnR1YWwgfkNvbW1vblRlc3QoKSB7IEVY
UEVDVF9FUSgzLCB2YWx1ZV8pOyB9Ci0KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIEVY
UEVDVF9FUSgxLCB2YWx1ZV8pOwotICAgIHZhbHVlXysrOwotICB9Ci0KLSAgdmlydHVhbCB2b2lk
IFRlYXJEb3duKCkgewotICAgIEVYUEVDVF9FUSgyLCB2YWx1ZV8pOwotICAgIHZhbHVlXysrOwot
ICB9Ci0KLSAgVCB2YWx1ZV87Ci0gIHN0YXRpYyBUKiBzaGFyZWRfOwotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1UKiBDb21tb25UZXN0PFQ+OjpzaGFyZWRfID0gTlVMTDsKLQotLy8gVGhp
cyAjaWZkZWYgYmxvY2sgdGVzdHMgdHlwZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RF
U1QKLQotdXNpbmcgdGVzdGluZzo6VHlwZXM7Ci0KLS8vIFRlc3RzIHRoYXQgU2V0VXBUZXN0Q2Fz
ZSgpL1RlYXJEb3duVGVzdENhc2UoKSwgZml4dHVyZSBjdG9yL2R0b3IsCi0vLyBhbmQgU2V0VXAo
KS9UZWFyRG93bigpIHdvcmsgY29ycmVjdGx5IGluIHR5cGVkIHRlc3RzCi0KLXR5cGVkZWYgVHlw
ZXM8Y2hhciwgaW50PiBUd29UeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShDb21tb25UZXN0LCBUd29U
eXBlcyk7Ci0KLVRZUEVEX1RFU1QoQ29tbW9uVGVzdCwgVmFsdWVzQXJlQ29ycmVjdCkgewotICAv
LyBTdGF0aWMgbWVtYmVycyBvZiB0aGUgZml4dHVyZSBjbGFzcyB0ZW1wbGF0ZSBjYW4gYmUgdmlz
aXRlZCB2aWEKLSAgLy8gdGhlIFRlc3RGaXh0dXJlOjogcHJlZml4LgotICBFWFBFQ1RfRVEoNSwg
KlRlc3RGaXh0dXJlOjpzaGFyZWRfKTsKLQotICAvLyBUeXBlZGVmcyBpbiB0aGUgZml4dHVyZSBj
bGFzcyB0ZW1wbGF0ZSBjYW4gYmUgdmlzaXRlZCB2aWEgdGhlCi0gIC8vICJ0eXBlbmFtZSBUZXN0
Rml4dHVyZTo6IiBwcmVmaXguCi0gIHR5cGVuYW1lIFRlc3RGaXh0dXJlOjpWZWN0b3IgZW1wdHk7
Ci0gIEVYUEVDVF9FUSgwVSwgZW1wdHkuc2l6ZSgpKTsKLQotICB0eXBlbmFtZSBUZXN0Rml4dHVy
ZTo6SW50U2V0IGVtcHR5MjsKLSAgRVhQRUNUX0VRKDBVLCBlbXB0eTIuc2l6ZSgpKTsKLQotICAv
LyBOb24tc3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgbXVzdCBiZSB2aXNpdGVk
IHZpYQotICAvLyAndGhpcycsIGFzIHJlcXVpcmVkIGJ5IEMrKyBmb3IgY2xhc3MgdGVtcGxhdGVz
LgotICBFWFBFQ1RfRVEoMiwgdGhpcy0+dmFsdWVfKTsKLX0KLQotLy8gVGhlIHNlY29uZCB0ZXN0
IG1ha2VzIHN1cmUgc2hhcmVkXyBpcyBub3QgZGVsZXRlZCBhZnRlciB0aGUgZmlyc3QKLS8vIHRl
c3QuCi1UWVBFRF9URVNUKENvbW1vblRlc3QsIFZhbHVlc0FyZVN0aWxsQ29ycmVjdCkgewotICAv
LyBTdGF0aWMgbWVtYmVycyBvZiB0aGUgZml4dHVyZSBjbGFzcyB0ZW1wbGF0ZSBjYW4gYWxzbyBi
ZSB2aXNpdGVkCi0gIC8vIHZpYSAndGhpcycuCi0gIEFTU0VSVF9UUlVFKHRoaXMtPnNoYXJlZF8g
IT0gTlVMTCk7Ci0gIEVYUEVDVF9FUSg1LCAqdGhpcy0+c2hhcmVkXyk7Ci0KLSAgLy8gVHlwZVBh
cmFtIGNhbiBiZSB1c2VkIHRvIHJlZmVyIHRvIHRoZSB0eXBlIHBhcmFtZXRlci4KLSAgRVhQRUNU
X0VRKHN0YXRpY19jYXN0PFR5cGVQYXJhbT4oMiksIHRoaXMtPnZhbHVlXyk7Ci19Ci0KLS8vIFRl
c3RzIHRoYXQgbXVsdGlwbGUgVFlQRURfVEVTVF9DQVNFJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhl
IHNhbWUKLS8vIHRyYW5zbGF0aW9uIHVuaXQuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xh
c3MgVHlwZWRUZXN0MSA6IHB1YmxpYyBUZXN0IHsKLX07Ci0KLS8vIFZlcmlmaWVzIHRoYXQgdGhl
IHNlY29uZCBhcmd1bWVudCBvZiBUWVBFRF9URVNUX0NBU0UgY2FuIGJlIGEKLS8vIHNpbmdsZSB0
eXBlLgotVFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdDEsIGludCk7Ci1UWVBFRF9URVNUKFR5cGVk
VGVzdDEsIEEpIHt9Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZWRUZXN0MiA6
IHB1YmxpYyBUZXN0IHsKLX07Ci0KLS8vIFZlcmlmaWVzIHRoYXQgdGhlIHNlY29uZCBhcmd1bWVu
dCBvZiBUWVBFRF9URVNUX0NBU0UgY2FuIGJlIGEKLS8vIFR5cGVzPC4uLj4gdHlwZSBsaXN0Lgot
VFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdDIsIFR5cGVzPGludD4pOwotCi0vLyBUaGlzIGFsc28g
dmVyaWZpZXMgdGhhdCB0ZXN0cyBmcm9tIGRpZmZlcmVudCB0eXBlZCB0ZXN0IGNhc2VzIGNhbgot
Ly8gc2hhcmUgdGhlIHNhbWUgbmFtZS4KLVRZUEVEX1RFU1QoVHlwZWRUZXN0MiwgQSkge30KLQot
Ly8gVGVzdHMgdGhhdCBhIHR5cGVkIHRlc3QgY2FzZSBjYW4gYmUgZGVmaW5lZCBpbiBhIG5hbWVz
cGFjZS4KLQotbmFtZXNwYWNlIGxpYnJhcnkxIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1j
bGFzcyBOdW1lcmljVGVzdCA6IHB1YmxpYyBUZXN0IHsKLX07Ci0KLXR5cGVkZWYgVHlwZXM8aW50
LCBsb25nPiBOdW1lcmljVHlwZXM7Ci1UWVBFRF9URVNUX0NBU0UoTnVtZXJpY1Rlc3QsIE51bWVy
aWNUeXBlcyk7Ci0KLVRZUEVEX1RFU1QoTnVtZXJpY1Rlc3QsIERlZmF1bHRJc1plcm8pIHsKLSAg
RVhQRUNUX0VRKDAsIFR5cGVQYXJhbSgpKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGxpYnJhcnkx
Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotLy8gVGhpcyAjaWZkZWYgYmxv
Y2sgdGVzdHMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgotI2lmIEdURVNUX0hBU19UWVBFRF9U
RVNUX1AKLQotdXNpbmcgdGVzdGluZzo6VHlwZXM7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
VHlwZWRUZXN0Q2FzZVBTdGF0ZTsKLQotLy8gVGVzdHMgVHlwZWRUZXN0Q2FzZVBTdGF0ZS4KLQot
Y2xhc3MgVHlwZWRUZXN0Q2FzZVBTdGF0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHJvdGVjdGVk
OgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgc3RhdGVfLkFkZFRlc3ROYW1lKCJmb28u
Y2MiLCAwLCAiRm9vVGVzdCIsICJBIik7Ci0gICAgc3RhdGVfLkFkZFRlc3ROYW1lKCJmb28uY2Mi
LCAwLCAiRm9vVGVzdCIsICJCIik7Ci0gICAgc3RhdGVfLkFkZFRlc3ROYW1lKCJmb28uY2MiLCAw
LCAiRm9vVGVzdCIsICJDIik7Ci0gIH0KLQotICBUeXBlZFRlc3RDYXNlUFN0YXRlIHN0YXRlXzsK
LX07Ci0KLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCwgU3VjY2VlZHNGb3JNYXRjaGlu
Z0xpc3QpIHsKLSAgY29uc3QgY2hhciogdGVzdHMgPSAiQSwgQiwgQyI7Ci0gIEVYUEVDVF9FUSh0
ZXN0cywKLSAgICAgICAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJmb28u
Y2MiLCAxLCB0ZXN0cykpOwotfQotCi0vLyBNYWtlcyBzdXJlIHRoYXQgdGhlIG9yZGVyIG9mIHRo
ZSB0ZXN0cyBhbmQgc3BhY2VzIGFyb3VuZCB0aGUgbmFtZXMKLS8vIGRvbid0IG1hdHRlci4KLVRF
U1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCwgSWdub3Jlc09yZGVyQW5kU3BhY2VzKSB7Ci0g
IGNvbnN0IGNoYXIqIHRlc3RzID0gIkEsQywgICBCIjsKLSAgRVhQRUNUX0VRKHRlc3RzLAotICAg
ICAgICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsIHRl
c3RzKSk7Ci19Ci0KLXR5cGVkZWYgVHlwZWRUZXN0Q2FzZVBTdGF0ZVRlc3QgVHlwZWRUZXN0Q2Fz
ZVBTdGF0ZURlYXRoVGVzdDsKLQotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3Qs
IERldGVjdHNEdXBsaWNhdGVzKSB7Ci0gIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAg
ICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgIkEsIEIsIEEs
IEMiKSwKLSAgICAgICJmb29cXC5jYy4xLj86IFRlc3QgQSBpcyBsaXN0ZWQgbW9yZSB0aGFuIG9u
Y2VcXC4iKTsKLX0KLQotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3QsIERldGVj
dHNFeHRyYVRlc3QpIHsKLSAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCgKLSAgICAgIHN0YXRl
Xy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJmb28uY2MiLCAxLCAiQSwgQiwgQywgRCIpLAot
ICAgICAgImZvb1xcLmNjLjEuPzogTm8gdGVzdCBuYW1lZCBEIGNhbiBiZSBmb3VuZCBpbiB0aGlz
IHRlc3QgY2FzZVxcLiIpOwotfQotCi1URVNUX0YoVHlwZWRUZXN0Q2FzZVBTdGF0ZURlYXRoVGVz
dCwgRGV0ZWN0c01pc3NlZFRlc3QpIHsKLSAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCgKLSAg
ICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJmb28uY2MiLCAxLCAiQSwgQyIp
LAotICAgICAgImZvb1xcLmNjLjEuPzogWW91IGZvcmdvdCB0byBsaXN0IHRlc3QgQlxcLiIpOwot
fQotCi0vLyBUZXN0cyB0aGF0IGRlZmluaW5nIGEgdGVzdCBmb3IgYSBwYXJhbWV0ZXJpemVkIHRl
c3QgY2FzZSBnZW5lcmF0ZXMKLS8vIGEgcnVuLXRpbWUgZXJyb3IgaWYgdGhlIHRlc3QgY2FzZSBo
YXMgYmVlbiByZWdpc3RlcmVkLgotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3Qs
IERldGVjdHNUZXN0QWZ0ZXJSZWdpc3RyYXRpb24pIHsKLSAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVy
ZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsICJBLCBCLCBDIik7Ci0gIEVYUEVDVF9ERUFUSF9JRl9T
VVBQT1JURUQoCi0gICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDIsICJGb29UZXN0
IiwgIkQiKSwKLSAgICAgICJmb29cXC5jYy4yLj86IFRlc3QgRCBtdXN0IGJlIGRlZmluZWQgYmVm
b3JlIFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QIgotICAgICAgIlxcKEZvb1Rlc3QsIFxcLlxc
LlxcLlxcKVxcLiIpOwotfQotCi0vLyBUZXN0cyB0aGF0IFNldFVwVGVzdENhc2UoKS9UZWFyRG93
blRlc3RDYXNlKCksIGZpeHR1cmUgY3Rvci9kdG9yLAotLy8gYW5kIFNldFVwKCkvVGVhckRvd24o
KSB3b3JrIGNvcnJlY3RseSBpbiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotY2xhc3MgRGVyaXZlZFRlc3QgOiBwdWJsaWMgQ29tbW9uVGVzdDxUPiB7
Ci19OwotCi1UWVBFRF9URVNUX0NBU0VfUChEZXJpdmVkVGVzdCk7Ci0KLVRZUEVEX1RFU1RfUChE
ZXJpdmVkVGVzdCwgVmFsdWVzQXJlQ29ycmVjdCkgewotICAvLyBTdGF0aWMgbWVtYmVycyBvZiB0
aGUgZml4dHVyZSBjbGFzcyB0ZW1wbGF0ZSBjYW4gYmUgdmlzaXRlZCB2aWEKLSAgLy8gdGhlIFRl
c3RGaXh0dXJlOjogcHJlZml4LgotICBFWFBFQ1RfRVEoNSwgKlRlc3RGaXh0dXJlOjpzaGFyZWRf
KTsKLQotICAvLyBOb24tc3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgbXVzdCBi
ZSB2aXNpdGVkIHZpYQotICAvLyAndGhpcycsIGFzIHJlcXVpcmVkIGJ5IEMrKyBmb3IgY2xhc3Mg
dGVtcGxhdGVzLgotICBFWFBFQ1RfRVEoMiwgdGhpcy0+dmFsdWVfKTsKLX0KLQotLy8gVGhlIHNl
Y29uZCB0ZXN0IG1ha2VzIHN1cmUgc2hhcmVkXyBpcyBub3QgZGVsZXRlZCBhZnRlciB0aGUgZmly
c3QKLS8vIHRlc3QuCi1UWVBFRF9URVNUX1AoRGVyaXZlZFRlc3QsIFZhbHVlc0FyZVN0aWxsQ29y
cmVjdCkgewotICAvLyBTdGF0aWMgbWVtYmVycyBvZiB0aGUgZml4dHVyZSBjbGFzcyB0ZW1wbGF0
ZSBjYW4gYWxzbyBiZSB2aXNpdGVkCi0gIC8vIHZpYSAndGhpcycuCi0gIEFTU0VSVF9UUlVFKHRo
aXMtPnNoYXJlZF8gIT0gTlVMTCk7Ci0gIEVYUEVDVF9FUSg1LCAqdGhpcy0+c2hhcmVkXyk7Ci0g
IEVYUEVDVF9FUSgyLCB0aGlzLT52YWx1ZV8pOwotfQotCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NB
U0VfUChEZXJpdmVkVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0FyZUNv
cnJlY3QsIFZhbHVlc0FyZVN0aWxsQ29ycmVjdCk7Ci0KLXR5cGVkZWYgVHlwZXM8c2hvcnQsIGxv
bmc+IE15VHdvVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRGVyaXZl
ZFRlc3QsIE15VHdvVHlwZXMpOwotCi0vLyBUZXN0cyB0aGF0IG11bHRpcGxlIFRZUEVEX1RFU1Rf
Q0FTRV9QJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNhbWUKLS8vIHRyYW5zbGF0aW9uIHVuaXQu
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZWRUZXN0UDEgOiBwdWJsaWMgVGVz
dCB7Ci19OwotCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRlc3RQMSk7Ci0KLS8vIEZvciB0ZXN0
aW5nIHRoYXQgdGhlIGNvZGUgYmV0d2VlbiBUWVBFRF9URVNUX0NBU0VfUCgpIGFuZAotLy8gVFlQ
RURfVEVTVF9QKCkgaXMgbm90IGVuY2xvc2VkIGluIGEgbmFtZXNwYWNlLgotdHlwZWRlZiBpbnQg
SW50QWZ0ZXJUeXBlZFRlc3RDYXNlUDsKLQotVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAxLCBBKSB7
fQotVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAxLCBCKSB7fQotCi0vLyBGb3IgdGVzdGluZyB0aGF0
IHRoZSBjb2RlIGJldHdlZW4gVFlQRURfVEVTVF9QKCkgYW5kCi0vLyBSRUdJU1RFUl9UWVBFRF9U
RVNUX0NBU0VfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KLXR5cGVkZWYgaW50
IEludEJlZm9yZVJlZ2lzdGVyVHlwZWRUZXN0Q2FzZVA7Ci0KLVJFR0lTVEVSX1RZUEVEX1RFU1Rf
Q0FTRV9QKFR5cGVkVGVzdFAxLCBBLCBCKTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFz
cyBUeXBlZFRlc3RQMiA6IHB1YmxpYyBUZXN0IHsKLX07Ci0KLVRZUEVEX1RFU1RfQ0FTRV9QKFR5
cGVkVGVzdFAyKTsKLQotLy8gVGhpcyBhbHNvIHZlcmlmaWVzIHRoYXQgdGVzdHMgZnJvbSBkaWZm
ZXJlbnQgdHlwZS1wYXJhbWV0ZXJpemVkCi0vLyB0ZXN0IGNhc2VzIGNhbiBzaGFyZSB0aGUgc2Ft
ZSBuYW1lLgotVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAyLCBBKSB7fQotCi1SRUdJU1RFUl9UWVBF
RF9URVNUX0NBU0VfUChUeXBlZFRlc3RQMiwgQSk7Ci0KLS8vIFZlcmlmaWVzIHRoYXQgdGhlIGNv
ZGUgYmV0d2VlbiBUWVBFRF9URVNUX0NBU0VfUCgpIGFuZAotLy8gUkVHSVNURVJfVFlQRURfVEVT
VF9DQVNFX1AoKSBpcyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2UuCi1JbnRBZnRlclR5cGVk
VGVzdENhc2VQIGFmdGVyID0gMDsKLUludEJlZm9yZVJlZ2lzdGVyVHlwZWRUZXN0Q2FzZVAgYmVm
b3JlID0gMDsKLQotLy8gVmVyaWZpZXMgdGhhdCB0aGUgbGFzdCBhcmd1bWVudCBvZiBJTlNUQU5U
SUFURV9UWVBFRF9URVNUX0NBU0VfUCgpCi0vLyBjYW4gYmUgZWl0aGVyIGEgc2luZ2xlIHR5cGUg
b3IgYSBUeXBlczwuLi4+IHR5cGUgbGlzdC4KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9Q
KEludCwgVHlwZWRUZXN0UDEsIGludCk7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChJ
bnQsIFR5cGVkVGVzdFAyLCBUeXBlczxpbnQ+KTsKLQotLy8gVGVzdHMgdGhhdCB0aGUgc2FtZSB0
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQotLy8gaW5zdGFudGlhdGVkIG1vcmUg
dGhhbiBvbmNlIGluIHRoZSBzYW1lIHRyYW5zbGF0aW9uIHVuaXQuCi1JTlNUQU5USUFURV9UWVBF
RF9URVNUX0NBU0VfUChEb3VibGUsIFR5cGVkVGVzdFAyLCBUeXBlczxkb3VibGU+KTsKLQotLy8g
VGVzdHMgdGhhdCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQot
Ly8gaW5zdGFudGlhdGVkIGluIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0cyBsaW5rZWQgdG9n
ZXRoZXIuCi0vLyAoQ29udGFpbmVyVGVzdCBpcyBhbHNvIGluc3RhbnRpYXRlZCBpbiBndGVzdC10
eXBlZC10ZXN0X3Rlc3QuY2MuKQotdHlwZWRlZiBUeXBlczxzdGQ6OnZlY3Rvcjxkb3VibGU+LCBz
dGQ6OnNldDxjaGFyPiA+IE15Q29udGFpbmVyczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FT
RV9QKE15LCBDb250YWluZXJUZXN0LCBNeUNvbnRhaW5lcnMpOwotCi0vLyBUZXN0cyB0aGF0IGEg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4gYmUgZGVmaW5lZCBhbmQKLS8vIGluc3Rh
bnRpYXRlZCBpbiBhIG5hbWVzcGFjZS4KLQotbmFtZXNwYWNlIGxpYnJhcnkyIHsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBOdW1lcmljVGVzdCA6IHB1YmxpYyBUZXN0IHsKLX07Ci0K
LVRZUEVEX1RFU1RfQ0FTRV9QKE51bWVyaWNUZXN0KTsKLQotVFlQRURfVEVTVF9QKE51bWVyaWNU
ZXN0LCBEZWZhdWx0SXNaZXJvKSB7Ci0gIEVYUEVDVF9FUSgwLCBUeXBlUGFyYW0oKSk7Ci19Ci0K
LVRZUEVEX1RFU1RfUChOdW1lcmljVGVzdCwgWmVyb0lzTGVzc1RoYW5PbmUpIHsKLSAgRVhQRUNU
X0xUKFR5cGVQYXJhbSgwKSwgVHlwZVBhcmFtKDEpKTsKLX0KLQotUkVHSVNURVJfVFlQRURfVEVT
VF9DQVNFX1AoTnVtZXJpY1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0
SXNaZXJvLCBaZXJvSXNMZXNzVGhhbk9uZSk7Ci10eXBlZGVmIFR5cGVzPGludCwgZG91YmxlPiBO
dW1lcmljVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgTnVtZXJpY1Rl
c3QsIE51bWVyaWNUeXBlcyk7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiBHZXRUZXN0TmFtZSgpIHsK
LSAgcmV0dXJuIHRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3Rf
aW5mbygpLT5uYW1lKCk7Ci19Ci0vLyBUZXN0IHRoZSBzdHJpcHBpbmcgb2Ygc3BhY2UgZnJvbSB0
ZXN0IG5hbWVzCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgVHJpbW1lZFRlc3QgOiBwdWJs
aWMgVGVzdCB7IH07Ci1UWVBFRF9URVNUX0NBU0VfUChUcmltbWVkVGVzdCk7Ci1UWVBFRF9URVNU
X1AoVHJpbW1lZFRlc3QsIFRlc3QxKSB7IEVYUEVDVF9TVFJFUSgiVGVzdDEiLCBHZXRUZXN0TmFt
ZSgpKTsgfQotVFlQRURfVEVTVF9QKFRyaW1tZWRUZXN0LCBUZXN0MikgeyBFWFBFQ1RfU1RSRVEo
IlRlc3QyIiwgR2V0VGVzdE5hbWUoKSk7IH0KLVRZUEVEX1RFU1RfUChUcmltbWVkVGVzdCwgVGVz
dDMpIHsgRVhQRUNUX1NUUkVRKCJUZXN0MyIsIEdldFRlc3ROYW1lKCkpOyB9Ci1UWVBFRF9URVNU
X1AoVHJpbW1lZFRlc3QsIFRlc3Q0KSB7IEVYUEVDVF9TVFJFUSgiVGVzdDQiLCBHZXRUZXN0TmFt
ZSgpKTsgfQotVFlQRURfVEVTVF9QKFRyaW1tZWRUZXN0LCBUZXN0NSkgeyBFWFBFQ1RfU1RSRVEo
IlRlc3Q1IiwgR2V0VGVzdE5hbWUoKSk7IH0KLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKAot
ICAgIFRyaW1tZWRUZXN0LAotICAgIFRlc3QxLCBUZXN0MixUZXN0MyAsIFRlc3Q0ICxUZXN0NSAp
OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBzdHJ1Y3Qg
TXlQYWlyIHt9OwotLy8gQmUgc3VyZSB0byB0cnkgYSB0eXBlIHdpdGggYSBjb21tYSBpbiBpdHMg
bmFtZSBqdXN0IGluIGNhc2UgaXQgbWF0dGVycy4KLXR5cGVkZWYgVHlwZXM8aW50LCBkb3VibGUs
IE15UGFpcjxpbnQsIGludD4gPiBUcmltVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUChNeSwgVHJpbW1lZFRlc3QsIFRyaW1UeXBlcyk7Ci0KLX0gIC8vIG5hbWVzcGFjZSBsaWJy
YXJ5MgotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotI2lmICFkZWZpbmVk
KEdURVNUX0hBU19UWVBFRF9URVNUKSAmJiAhZGVmaW5lZChHVEVTVF9IQVNfVFlQRURfVEVTVF9Q
KQotCi0vLyBHb29nbGUgVGVzdCBtYXkgbm90IHN1cHBvcnQgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3RzIHdpdGggc29tZQotLy8gY29tcGlsZXJzLiBJZiB3ZSB1c2UgY29uZGl0aW9uYWwgY29tcGls
YXRpb24gdG8gY29tcGlsZSBvdXQgYWxsCi0vLyBjb2RlIHJlZmVycmluZyB0byB0aGUgZ3Rlc3Rf
bWFpbiBsaWJyYXJ5LCBNU1ZDIGxpbmtlciB3aWxsIG5vdCBsaW5rCi0vLyB0aGF0IGxpYnJhcnkg
YXQgYWxsIGFuZCBjb25zZXF1ZW50bHkgY29tcGxhaW4gYWJvdXQgbWlzc2luZyBlbnRyeQotLy8g
cG9pbnQgZGVmaW5lZCBpbiB0aGF0IGxpYnJhcnkgKGZhdGFsIGVycm9yIExOSzE1NjE6IGVudHJ5
IHBvaW50Ci0vLyBtdXN0IGJlIGRlZmluZWQpLiBUaGlzIGR1bW15IHRlc3Qga2VlcHMgZ3Rlc3Rf
bWFpbiBsaW5rZWQgaW4uCi1URVNUKER1bW15VGVzdCwgVHlwZWRUZXN0c0FyZU5vdFN1cHBvcnRl
ZE9uVGhpc1BsYXRmb3JtKSB7fQotCi0jZW5kaWYgIC8vICNpZiAhZGVmaW5lZChHVEVTVF9IQVNf
VFlQRURfVEVTVCkgJiYgIWRlZmluZWQoR1RFU1RfSEFTX1RZUEVEX1RFU1RfUCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVz
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWQ3NTcwNGNmODRkOGJkMDU0OTBk
OTkzNGI2NTIyMTMxNjllOGZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVz
dF90ZXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAw
OCBHb29nbGUgSW5jLgotLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8g
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29t
IChaaGFueW9uZyBXYW4pCi0KLSNpZm5kZWYgR1RFU1RfVEVTVF9HVEVTVF9UWVBFRF9URVNUX1RF
U1RfSF8KLSNkZWZpbmUgR1RFU1RfVEVTVF9HVEVTVF9UWVBFRF9URVNUX1RFU1RfSF8KLQotI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLXVz
aW5nIHRlc3Rpbmc6OlRlc3Q7Ci0KLS8vIEZvciB0ZXN0aW5nIHRoYXQgdGhlIHNhbWUgdHlwZS1w
YXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4gYmUKLS8vIGluc3RhbnRpYXRlZCBpbiBkaWZmZXJl
bnQgdHJhbnNsYXRpb24gdW5pdHMgbGlua2VkIHRvZ2V0aGVyLgotLy8gQ29udGFpbmVyVGVzdCB3
aWxsIGJlIGluc3RhbnRpYXRlZCBpbiBib3RoIGd0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYwotLy8g
YW5kIGd0ZXN0LXR5cGVkLXRlc3QyX3Rlc3QuY2MuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
Y2xhc3MgQ29udGFpbmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKLX07Ci0KLVRZUEVEX1RFU1RfQ0FT
RV9QKENvbnRhaW5lclRlc3QpOwotCi1UWVBFRF9URVNUX1AoQ29udGFpbmVyVGVzdCwgQ2FuQmVE
ZWZhdWx0Q29uc3RydWN0ZWQpIHsKLSAgVHlwZVBhcmFtIGNvbnRhaW5lcjsKLX0KLQotVFlQRURf
VEVTVF9QKENvbnRhaW5lclRlc3QsIEluaXRpYWxTaXplSXNaZXJvKSB7Ci0gIFR5cGVQYXJhbSBj
b250YWluZXI7Ci0gIEVYUEVDVF9FUSgwVSwgY29udGFpbmVyLnNpemUoKSk7Ci19Ci0KLVJFR0lT
VEVSX1RZUEVEX1RFU1RfQ0FTRV9QKENvbnRhaW5lclRlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBDYW5CZURlZmF1bHRDb25zdHJ1Y3RlZCwgSW5pdGlhbFNpemVJc1plcm8pOwotCi0j
ZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotI2VuZGlmICAvLyBHVEVTVF9URVNU
X0dURVNUX1RZUEVEX1RFU1RfVEVTVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QvdGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGIxZjUxNjg4YWY3NTMzYjQzMTY3MTQ5Y2EyNGU5ZGNkNmM1NWQ1
YjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYworKysg
L2Rldi9udWxsCkBAIC0xLDM0MSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOSBHb29nbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
Ly8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHZsYWRsQGdvb2dsZS5jb20gKFZsYWQgTG9zZXYp
Ci0vLwotLy8gVGhlIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQot
Ly8KLS8vIFRoaXMgZmlsZSBjb250YWlucyB0ZXN0cyB2ZXJpZnlpbmcgY29ycmVjdG5lc3Mgb2Yg
ZGF0YSBwcm92aWRlZCB2aWEKLS8vIFVuaXRUZXN0J3MgcHVibGljIG1ldGhvZHMuCi0KLSNpbmNs
dWRlICJndGVzdC9ndGVzdC5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+ICAvLyBGb3Igc3RyY21w
LgotI2luY2x1ZGUgPGFsZ29yaXRobT4KLQotdXNpbmcgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVz
dDsKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotbmFtZXNwYWNlIGludGVybmFsIHsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgTGVzc0J5TmFtZSB7Ci0gIGJvb2wgb3BlcmF0b3IoKShj
b25zdCBUKiBhLCBjb25zdCBUKiBiKSB7Ci0gICAgcmV0dXJuIHN0cmNtcChhLT5uYW1lKCksIGIt
Pm5hbWUoKSkgPCAwOwotICB9Ci19OwotCi1jbGFzcyBVbml0VGVzdEhlbHBlciB7Ci0gcHVibGlj
OgotICAvLyBSZXR1cm5zIHRoZSBhcnJheSBvZiBwb2ludGVycyB0byBhbGwgdGVzdCBjYXNlcyBz
b3J0ZWQgYnkgdGhlIHRlc3QgY2FzZQotICAvLyBuYW1lLiAgVGhlIGNhbGxlciBpcyByZXNwb25z
aWJsZSBmb3IgZGVsZXRpbmcgdGhlIGFycmF5LgotICBzdGF0aWMgVGVzdENhc2UgY29uc3QqKiBH
ZXRTb3J0ZWRUZXN0Q2FzZXMoKSB7Ci0gICAgVW5pdFRlc3QmIHVuaXRfdGVzdCA9ICpVbml0VGVz
dDo6R2V0SW5zdGFuY2UoKTsKLSAgICBUZXN0Q2FzZSBjb25zdCoqIGNvbnN0IHRlc3RfY2FzZXMg
PQotICAgICAgICBuZXcgY29uc3QgVGVzdENhc2UqW3VuaXRfdGVzdC50b3RhbF90ZXN0X2Nhc2Vf
Y291bnQoKV07Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0
X2Nhc2VfY291bnQoKTsgKytpKQotICAgICAgdGVzdF9jYXNlc1tpXSA9IHVuaXRfdGVzdC5HZXRU
ZXN0Q2FzZShpKTsKLQotICAgIHN0ZDo6c29ydCh0ZXN0X2Nhc2VzLAotICAgICAgICAgICAgICB0
ZXN0X2Nhc2VzICsgdW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpLAotICAgICAgICAg
ICAgICBMZXNzQnlOYW1lPFRlc3RDYXNlPigpKTsKLSAgICByZXR1cm4gdGVzdF9jYXNlczsKLSAg
fQotCi0gIC8vIFJldHVybnMgdGhlIHRlc3QgY2FzZSBieSBpdHMgbmFtZS4gIFRoZSBjYWxsZXIg
ZG9lc24ndCBvd24gdGhlIHJldHVybmVkCi0gIC8vIHBvaW50ZXIuCi0gIHN0YXRpYyBjb25zdCBU
ZXN0Q2FzZSogRmluZFRlc3RDYXNlKGNvbnN0IGNoYXIqIG5hbWUpIHsKLSAgICBVbml0VGVzdCYg
dW5pdF90ZXN0ID0gKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpOwotICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICAgIGNv
bnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UgPSB1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSk7Ci0gICAg
ICBpZiAoMCA9PSBzdHJjbXAodGVzdF9jYXNlLT5uYW1lKCksIG5hbWUpKQotICAgICAgICByZXR1
cm4gdGVzdF9jYXNlOwotICAgIH0KLSAgICByZXR1cm4gTlVMTDsKLSAgfQotCi0gIC8vIFJldHVy
bnMgdGhlIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFsbCB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgdGVz
dCBjYXNlCi0gIC8vIHNvcnRlZCBieSB0aGUgdGVzdCBuYW1lLiAgVGhlIGNhbGxlciBpcyByZXNw
b25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlCi0gIC8vIGFycmF5LgotICBzdGF0aWMgVGVzdEluZm8g
Y29uc3QqKiBHZXRTb3J0ZWRUZXN0cyhjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAg
VGVzdEluZm8gY29uc3QqKiBjb25zdCB0ZXN0cyA9Ci0gICAgICAgIG5ldyBjb25zdCBUZXN0SW5m
bypbdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCldOwotCi0gICAgZm9yIChpbnQgaSA9IDA7
IGkgPCB0ZXN0X2Nhc2UtPnRvdGFsX3Rlc3RfY291bnQoKTsgKytpKQotICAgICAgdGVzdHNbaV0g
PSB0ZXN0X2Nhc2UtPkdldFRlc3RJbmZvKGkpOwotCi0gICAgc3RkOjpzb3J0KHRlc3RzLCB0ZXN0
cyArIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpLAotICAgICAgICAgICAgICBMZXNzQnlO
YW1lPFRlc3RJbmZvPigpKTsKLSAgICByZXR1cm4gdGVzdHM7Ci0gIH0KLX07Ci0KLSNpZiBHVEVT
VF9IQVNfVFlQRURfVEVTVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRlc3RDYXNlV2l0
aENvbW1lbnRUZXN0IDogcHVibGljIFRlc3Qge307Ci1UWVBFRF9URVNUX0NBU0UoVGVzdENhc2VX
aXRoQ29tbWVudFRlc3QsIFR5cGVzPGludD4pOwotVFlQRURfVEVTVChUZXN0Q2FzZVdpdGhDb21t
ZW50VGVzdCwgRHVtbXkpIHt9Ci0KLWNvbnN0IGludCBrVHlwZWRUZXN0Q2FzZXMgPSAxOwotY29u
c3QgaW50IGtUeXBlZFRlc3RzID0gMTsKLSNlbHNlCi1jb25zdCBpbnQga1R5cGVkVGVzdENhc2Vz
ID0gMDsKLWNvbnN0IGludCBrVHlwZWRUZXN0cyA9IDA7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19U
WVBFRF9URVNUCi0KLS8vIFdlIGNhbiBvbmx5IHRlc3QgdGhlIGFjY2Vzc29ycyB0aGF0IGRvIG5v
dCBjaGFuZ2UgdmFsdWUgd2hpbGUgdGVzdHMgcnVuLgotLy8gU2luY2UgdGVzdHMgY2FuIGJlIHJ1
biBpbiBhbnkgb3JkZXIsIHRoZSB2YWx1ZXMgdGhlIGFjY2Vzc29ycyB0aGF0IHRyYWNrCi0vLyB0
ZXN0IGV4ZWN1dGlvbiAoc3VjaCBhcyBmYWlsZWRfdGVzdF9jb3VudCkgY2FuIG5vdCBiZSBwcmVk
aWN0ZWQuCi1URVNUKEFwaVRlc3QsIFVuaXRUZXN0SW1tdXRhYmxlQWNjZXNzb3JzV29yaykgewot
ICBVbml0VGVzdCogdW5pdF90ZXN0ID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7Ci0KLSAgQVNT
RVJUX0VRKDIgKyBrVHlwZWRUZXN0Q2FzZXMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jYXNlX2Nv
dW50KCkpOwotICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RDYXNlcywgdW5pdF90ZXN0LT50ZXN0
X2Nhc2VfdG9fcnVuX2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMiwgdW5pdF90ZXN0LT5kaXNhYmxl
ZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1RfRVEoNSArIGtUeXBlZFRlc3RzLCB1bml0X3Rlc3Qt
PnRvdGFsX3Rlc3RfY291bnQoKSk7Ci0gIEVYUEVDVF9FUSgzICsga1R5cGVkVGVzdHMsIHVuaXRf
dGVzdC0+dGVzdF90b19ydW5fY291bnQoKSk7Ci0KLSAgY29uc3QgVGVzdENhc2UqKiBjb25zdCB0
ZXN0X2Nhc2VzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RDYXNlcygpOwotCi0gIEVY
UEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RfY2FzZXNbMF0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9T
VFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3RfY2FzZXNbMV0tPm5hbWUoKSk7Ci0jaWYgR1RFU1Rf
SEFTX1RZUEVEX1RFU1QKLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8w
IiwgdGVzdF9jYXNlc1syXS0+bmFtZSgpKTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RF
U1QKLQotICBkZWxldGVbXSB0ZXN0X2Nhc2VzOwotCi0gIC8vIFRoZSBmb2xsb3dpbmcgbGluZXMg
aW5pdGlhdGUgYWN0aW9ucyB0byB2ZXJpZnkgY2VydGFpbiBtZXRob2RzIGluCi0gIC8vIEZpbmFs
U3VjY2Vzc0NoZWNrZXI6OlRlYXJEb3duLgotCi0gIC8vIFJlY29yZHMgYSB0ZXN0IHByb3BlcnR5
IHRvIHZlcmlmeSBUZXN0UmVzdWx0OjpHZXRUZXN0UHJvcGVydHkoKS4KLSAgUmVjb3JkUHJvcGVy
dHkoImtleSIsICJ2YWx1ZSIpOwotfQotCi1Bc3NlcnRpb25SZXN1bHQgSXNOdWxsKGNvbnN0IGNo
YXIqIHN0cikgewotICBpZiAoc3RyICE9IE5VTEwpIHsKLSAgICByZXR1cm4gdGVzdGluZzo6QXNz
ZXJ0aW9uRmFpbHVyZSgpIDw8ICJhcmd1bWVudCBpcyAiIDw8IHN0cjsKLSAgfQotICByZXR1cm4g
QXNzZXJ0aW9uU3VjY2VzcygpOwotfQotCi1URVNUKEFwaVRlc3QsIFRlc3RDYXNlSW1tdXRhYmxl
QWNjZXNzb3JzV29yaykgewotICBjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlID0gVW5pdFRlc3RI
ZWxwZXI6OkZpbmRUZXN0Q2FzZSgiQXBpVGVzdCIpOwotICBBU1NFUlRfVFJVRSh0ZXN0X2Nhc2Ug
IT0gTlVMTCk7Ci0KLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdF9jYXNlLT5uYW1lKCkp
OwotICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9jYXNlLT50eXBlX3BhcmFtKCkpKTsKLSAgRVhQ
RUNUX1RSVUUodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwotICBFWFBFQ1RfRVEoMSwgdGVzdF9j
YXNlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMywgdGVzdF9jYXNlLT50
ZXN0X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDQsIHRlc3RfY2FzZS0+dG90YWxfdGVz
dF9jb3VudCgpKTsKLQotICBjb25zdCBUZXN0SW5mbyoqIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6
OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7Ci0KLSAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9E
dW1teTEiLCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVz
dHNbMF0tPnRlc3RfY2FzZV9uYW1lKCkpOwotICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMF0t
PnZhbHVlX3BhcmFtKCkpKTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzBdLT50eXBlX3Bh
cmFtKCkpKTsKLSAgRVhQRUNUX0ZBTFNFKHRlc3RzWzBdLT5zaG91bGRfcnVuKCkpOwotCi0gIEVY
UEVDVF9TVFJFUSgiVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0ZXN0c1sxXS0+bmFt
ZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMV0tPnRlc3RfY2FzZV9uYW1l
KCkpOwotICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMV0tPnZhbHVlX3BhcmFtKCkpKTsKLSAg
RVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzFdLT50eXBlX3BhcmFtKCkpKTsKLSAgRVhQRUNUX1RS
VUUodGVzdHNbMV0tPnNob3VsZF9ydW4oKSk7Ci0KLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZUlt
bXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0c1syXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVR
KCJBcGlUZXN0IiwgdGVzdHNbMl0tPnRlc3RfY2FzZV9uYW1lKCkpOwotICBFWFBFQ1RfVFJVRShJ
c051bGwodGVzdHNbMl0tPnZhbHVlX3BhcmFtKCkpKTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxsKHRl
c3RzWzJdLT50eXBlX3BhcmFtKCkpKTsKLSAgRVhQRUNUX1RSVUUodGVzdHNbMl0tPnNob3VsZF9y
dW4oKSk7Ci0KLSAgRVhQRUNUX1NUUkVRKCJVbml0VGVzdEltbXV0YWJsZUFjY2Vzc29yc1dvcmsi
LCB0ZXN0c1szXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbM10t
PnRlc3RfY2FzZV9uYW1lKCkpOwotICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbM10tPnZhbHVl
X3BhcmFtKCkpKTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzNdLT50eXBlX3BhcmFtKCkp
KTsKLSAgRVhQRUNUX1RSVUUodGVzdHNbM10tPnNob3VsZF9ydW4oKSk7Ci0KLSAgZGVsZXRlW10g
dGVzdHM7Ci0gIHRlc3RzID0gTlVMTDsKLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0gIHRl
c3RfY2FzZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIlRlc3RDYXNlV2l0aENvbW1l
bnRUZXN0LzAiKTsKLSAgQVNTRVJUX1RSVUUodGVzdF9jYXNlICE9IE5VTEwpOwotCi0gIEVYUEVD
VF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RfY2FzZS0+bmFtZSgpKTsK
LSAgRVhQRUNUX1NUUkVRKEdldFR5cGVOYW1lPGludD4oKS5jX3N0cigpLCB0ZXN0X2Nhc2UtPnR5
cGVfcGFyYW0oKSk7Ci0gIEVYUEVDVF9UUlVFKHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpKTsKLSAg
RVhQRUNUX0VRKDAsIHRlc3RfY2FzZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgRVhQRUNU
X0VRKDEsIHRlc3RfY2FzZS0+dGVzdF90b19ydW5fY291bnQoKSk7Ci0gIEFTU0VSVF9FUSgxLCB0
ZXN0X2Nhc2UtPnRvdGFsX3Rlc3RfY291bnQoKSk7Ci0KLSAgdGVzdHMgPSBVbml0VGVzdEhlbHBl
cjo6R2V0U29ydGVkVGVzdHModGVzdF9jYXNlKTsKLQotICBFWFBFQ1RfU1RSRVEoIkR1bW15Iiwg
dGVzdHNbMF0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRl
c3QvMCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxs
KHRlc3RzWzBdLT52YWx1ZV9wYXJhbSgpKSk7Ci0gIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxp
bnQ+KCkuY19zdHIoKSwgdGVzdHNbMF0tPnR5cGVfcGFyYW0oKSk7Ci0gIEVYUEVDVF9UUlVFKHRl
c3RzWzBdLT5zaG91bGRfcnVuKCkpOwotCi0gIGRlbGV0ZVtdIHRlc3RzOwotI2VuZGlmICAvLyBH
VEVTVF9IQVNfVFlQRURfVEVTVAotfQotCi1URVNUKEFwaVRlc3QsIFRlc3RDYXNlRGlzYWJsZWRB
Y2Nlc3NvcnNXb3JrKSB7Ci0gIGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UgPSBVbml0VGVzdEhl
bHBlcjo6RmluZFRlc3RDYXNlKCJESVNBQkxFRF9UZXN0Iik7Ci0gIEFTU0VSVF9UUlVFKHRlc3Rf
Y2FzZSAhPSBOVUxMKTsKLQotICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X2Nh
c2UtPm5hbWUoKSk7Ci0gIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nhc2UtPnR5cGVfcGFyYW0o
KSkpOwotICBFWFBFQ1RfRkFMU0UodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwotICBFWFBFQ1Rf
RVEoMSwgdGVzdF9jYXNlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMCwg
dGVzdF9jYXNlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDEsIHRlc3RfY2Fz
ZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKLQotICBjb25zdCBUZXN0SW5mbyogY29uc3QgdGVzdF9p
bmZvID0gdGVzdF9jYXNlLT5HZXRUZXN0SW5mbygwKTsKLSAgRVhQRUNUX1NUUkVRKCJEdW1teTIi
LCB0ZXN0X2luZm8tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRl
c3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci0gIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2lu
Zm8tPnZhbHVlX3BhcmFtKCkpKTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfaW5mby0+dHlw
ZV9wYXJhbSgpKSk7Ci0gIEVYUEVDVF9GQUxTRSh0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSk7Ci19
Ci0KLS8vIFRoZXNlIHR3byB0ZXN0cyBhcmUgaGVyZSB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRl
c3RpbmcKLS8vIHRlc3RfY2FzZV90b19ydW5fY291bnQsIGRpc2FibGVkX3Rlc3RfY291bnQsIGFu
ZCB0ZXN0X3RvX3J1bl9jb3VudC4KLVRFU1QoQXBpVGVzdCwgRElTQUJMRURfRHVtbXkxKSB7fQot
VEVTVChESVNBQkxFRF9UZXN0LCBEdW1teTIpIHt9Ci0KLWNsYXNzIEZpbmFsU3VjY2Vzc0NoZWNr
ZXIgOiBwdWJsaWMgRW52aXJvbm1lbnQgewotIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFRl
YXJEb3duKCkgewotICAgIFVuaXRUZXN0KiB1bml0X3Rlc3QgPSBVbml0VGVzdDo6R2V0SW5zdGFu
Y2UoKTsKLQotICAgIEVYUEVDVF9FUSgxICsga1R5cGVkVGVzdENhc2VzLCB1bml0X3Rlc3QtPnN1
Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCkpOwotICAgIEVYUEVDVF9FUSgzICsga1R5cGVkVGVz
dHMsIHVuaXRfdGVzdC0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVDVF9FUSgw
LCB1bml0X3Rlc3QtPmZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSk7Ci0gICAgRVhQRUNUX0VRKDAs
IHVuaXRfdGVzdC0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX1RSVUUodW5pdF90
ZXN0LT5QYXNzZWQoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKHVuaXRfdGVzdC0+RmFpbGVkKCkpOwot
ICAgIEFTU0VSVF9FUSgyICsga1R5cGVkVGVzdENhc2VzLCB1bml0X3Rlc3QtPnRvdGFsX3Rlc3Rf
Y2FzZV9jb3VudCgpKTsKLQotICAgIGNvbnN0IFRlc3RDYXNlKiogY29uc3QgdGVzdF9jYXNlcyA9
IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0Q2FzZXMoKTsKLQotICAgIEVYUEVDVF9TVFJF
USgiQXBpVGVzdCIsIHRlc3RfY2FzZXNbMF0tPm5hbWUoKSk7Ci0gICAgRVhQRUNUX1RSVUUoSXNO
dWxsKHRlc3RfY2FzZXNbMF0tPnR5cGVfcGFyYW0oKSkpOwotICAgIEVYUEVDVF9UUlVFKHRlc3Rf
Y2FzZXNbMF0tPnNob3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZXNbMF0t
PmRpc2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgQVNTRVJUX0VRKDQsIHRlc3RfY2FzZXNbMF0t
PnRvdGFsX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIHRlc3RfY2FzZXNbMF0tPnN1
Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1swXS0+
ZmFpbGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9jYXNlc1swXS0+UGFz
c2VkKCkpOwotICAgIEVYUEVDVF9GQUxTRSh0ZXN0X2Nhc2VzWzBdLT5GYWlsZWQoKSk7Ci0KLSAg
ICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X2Nhc2VzWzFdLT5uYW1lKCkpOwot
ICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nhc2VzWzFdLT50eXBlX3BhcmFtKCkpKTsKLSAg
ICBFWFBFQ1RfRkFMU0UodGVzdF9jYXNlc1sxXS0+c2hvdWxkX3J1bigpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgdGVzdF9jYXNlc1sxXS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgICBBU1NFUlRf
RVEoMSwgdGVzdF9jYXNlc1sxXS0+dG90YWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEo
MCwgdGVzdF9jYXNlc1sxXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVDVF9F
USgwLCB0ZXN0X2Nhc2VzWzFdLT5mYWlsZWRfdGVzdF9jb3VudCgpKTsKLQotI2lmIEdURVNUX0hB
U19UWVBFRF9URVNUCi0gICAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8w
IiwgdGVzdF9jYXNlc1syXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8
aW50PigpLmNfc3RyKCksIHRlc3RfY2FzZXNbMl0tPnR5cGVfcGFyYW0oKSk7Ci0gICAgRVhQRUNU
X1RSVUUodGVzdF9jYXNlc1syXS0+c2hvdWxkX3J1bigpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVz
dF9jYXNlc1syXS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgICBBU1NFUlRfRVEoMSwgdGVz
dF9jYXNlc1syXS0+dG90YWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMSwgdGVzdF9j
YXNlc1syXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVDVF9FUSgwLCB0ZXN0
X2Nhc2VzWzJdLT5mYWlsZWRfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0X2Nh
c2VzWzJdLT5QYXNzZWQoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKHRlc3RfY2FzZXNbMl0tPkZhaWxl
ZCgpKTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotICAgIGNvbnN0IFRlc3RD
YXNlKiB0ZXN0X2Nhc2UgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RDYXNlKCJBcGlUZXN0Iik7
Ci0gICAgY29uc3QgVGVzdEluZm8qKiB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRU
ZXN0cyh0ZXN0X2Nhc2UpOwotICAgIEVYUEVDVF9TVFJFUSgiRElTQUJMRURfRHVtbXkxIiwgdGVz
dHNbMF0tPm5hbWUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMF0tPnRl
c3RfY2FzZV9uYW1lKCkpOwotICAgIEVYUEVDVF9GQUxTRSh0ZXN0c1swXS0+c2hvdWxkX3J1bigp
KTsKLQotICAgIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0
ZXN0c1sxXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1sxXS0+
dGVzdF9jYXNlX25hbWUoKSk7Ci0gICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzFdLT52YWx1
ZV9wYXJhbSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzFdLT50eXBlX3BhcmFt
KCkpKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0c1sxXS0+c2hvdWxkX3J1bigpKTsKLSAgICBFWFBF
Q1RfVFJVRSh0ZXN0c1sxXS0+cmVzdWx0KCktPlBhc3NlZCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwg
dGVzdHNbMV0tPnJlc3VsdCgpLT50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwotCi0gICAgRVhQRUNU
X1NUUkVRKCJUZXN0Q2FzZUltbXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0c1syXS0+bmFtZSgp
KTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1syXS0+dGVzdF9jYXNlX25hbWUo
KSk7Ci0gICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJdLT52YWx1ZV9wYXJhbSgpKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJdLT50eXBlX3BhcmFtKCkpKTsKLSAgICBFWFBF
Q1RfVFJVRSh0ZXN0c1syXS0+c2hvdWxkX3J1bigpKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0c1sy
XS0+cmVzdWx0KCktPlBhc3NlZCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdHNbMl0tPnJlc3Vs
dCgpLT50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwotCi0gICAgRVhQRUNUX1NUUkVRKCJVbml0VGVz
dEltbXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0c1szXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1Rf
U1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1szXS0+dGVzdF9jYXNlX25hbWUoKSk7Ci0gICAgRVhQRUNU
X1RSVUUoSXNOdWxsKHRlc3RzWzNdLT52YWx1ZV9wYXJhbSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUo
SXNOdWxsKHRlc3RzWzNdLT50eXBlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0c1sz
XS0+c2hvdWxkX3J1bigpKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0c1szXS0+cmVzdWx0KCktPlBh
c3NlZCgpKTsKLSAgICBFWFBFQ1RfRVEoMSwgdGVzdHNbM10tPnJlc3VsdCgpLT50ZXN0X3Byb3Bl
cnR5X2NvdW50KCkpOwotICAgIGNvbnN0IFRlc3RQcm9wZXJ0eSYgcHJvcGVydHkgPSB0ZXN0c1sz
XS0+cmVzdWx0KCktPkdldFRlc3RQcm9wZXJ0eSgwKTsKLSAgICBFWFBFQ1RfU1RSRVEoImtleSIs
IHByb3BlcnR5LmtleSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInZhbHVlIiwgcHJvcGVydHkudmFs
dWUoKSk7Ci0KLSAgICBkZWxldGVbXSB0ZXN0czsKLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNU
Ci0gICAgdGVzdF9jYXNlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0Q2FzZSgiVGVzdENhc2VX
aXRoQ29tbWVudFRlc3QvMCIpOwotICAgIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRl
ZFRlc3RzKHRlc3RfY2FzZSk7Ci0KLSAgICBFWFBFQ1RfU1RSRVEoIkR1bW15IiwgdGVzdHNbMF0t
Pm5hbWUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8wIiwg
dGVzdHNbMF0tPnRlc3RfY2FzZV9uYW1lKCkpOwotICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0
c1swXS0+dmFsdWVfcGFyYW0oKSkpOwotICAgIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxpbnQ+
KCkuY19zdHIoKSwgdGVzdHNbMF0tPnR5cGVfcGFyYW0oKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVz
dHNbMF0tPnNob3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdHNbMF0tPnJlc3VsdCgp
LT5QYXNzZWQoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIHRlc3RzWzBdLT5yZXN1bHQoKS0+dGVzdF9w
cm9wZXJ0eV9jb3VudCgpKTsKLQotICAgIGRlbGV0ZVtdIHRlc3RzOwotI2VuZGlmICAvLyBHVEVT
VF9IQVNfVFlQRURfVEVTVAotICAgIGRlbGV0ZVtdIHRlc3RfY2FzZXM7Ci0gIH0KLX07Ci0KLX0g
IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIEluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2
KTsKLQotICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IHRlc3Rpbmc6OmludGVybmFsOjpG
aW5hbFN1Y2Nlc3NDaGVja2VyKCkpOwotCi0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2FsbF90ZXN0
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9hbGxfdGVzdC5jYwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU1YWE2MjgyODQ4MzNkYjZjNGRlODhhMjBh
ZWQ2M2Y2ZjE4ZGNjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2FsbF90ZXN0LmNjCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJ
bmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0v
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25n
IFdhbikKLS8vCi0vLyBUZXN0cyBmb3IgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayAoR29v
Z2xlIFRlc3QpCi0vLwotLy8gU29tZXRpbWVzIGl0J3MgZGVzaXJhYmxlIHRvIGJ1aWxkIG1vc3Qg
b2YgR29vZ2xlIFRlc3QncyBvd24gdGVzdHMKLS8vIGJ5IGNvbXBpbGluZyBhIHNpbmdsZSBmaWxl
LiAgVGhpcyBmaWxlIHNlcnZlcyB0aGlzIHB1cnBvc2UuCi0jaW5jbHVkZSAidGVzdC9ndGVzdC1m
aWxlcGF0aF90ZXN0LmNjIgotI2luY2x1ZGUgInRlc3QvZ3Rlc3QtbGlua2VkX3B0cl90ZXN0LmNj
IgotI2luY2x1ZGUgInRlc3QvZ3Rlc3QtbWVzc2FnZV90ZXN0LmNjIgotI2luY2x1ZGUgInRlc3Qv
Z3Rlc3Qtb3B0aW9uc190ZXN0LmNjIgotI2luY2x1ZGUgInRlc3QvZ3Rlc3QtcG9ydF90ZXN0LmNj
IgotI2luY2x1ZGUgInRlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjIgotI2luY2x1ZGUg
InRlc3QvZ3Rlc3RfcHJvZF90ZXN0LmNjIgotI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdGVzdC1wYXJ0
X3Rlc3QuY2MiCi0jaW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MiCi0jaW5j
bHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjIgotI2luY2x1ZGUgInRlc3QvZ3Rl
c3RfdW5pdHRlc3QuY2MiCi0jaW5jbHVkZSAidGVzdC9wcm9kdWN0aW9uLmNjIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9icmVha19vbl9mYWlsdXJl
X3VuaXR0ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9icmVh
a19vbl9mYWlsdXJlX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
OGYzZTBmNTNiNzkxY2UyMjhhN2FkZjAzMDg2NmJiMjg4M2I5ZmVhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0
L3Rlc3QvZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZV91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDIxMiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIw
MDYsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0iIiJVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0J3MgYnJlYWstb24tZmFpbHVyZSBtb2Rl
LgotCi1BIHVzZXIgY2FuIGFzayBHb29nbGUgVGVzdCB0byBzZWctZmF1bHQgd2hlbiBhbiBhc3Nl
cnRpb24gZmFpbHMsIHVzaW5nCi1laXRoZXIgdGhlIEdURVNUX0JSRUFLX09OX0ZBSUxVUkUgZW52
aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlCi0tLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUgZmxhZy4g
IFRoaXMgc2NyaXB0IHRlc3RzIHN1Y2ggZnVuY3Rpb25hbGl0eQotYnkgaW52b2tpbmcgZ3Rlc3Rf
YnJlYWtfb25fZmFpbHVyZV91bml0dGVzdF8gKGEgcHJvZ3JhbSB3cml0dGVuIHdpdGgKLUdvb2ds
ZSBUZXN0KSB3aXRoIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgYW5kIGNvbW1hbmQgbGluZSBmbGFn
cy4KLSIiIgotCi1fX2F1dGhvcl9fID0gJ3dhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pJwot
Ci1pbXBvcnQgZ3Rlc3RfdGVzdF91dGlscwotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLQotIyBD
b25zdGFudHMuCi0KLUlTX1dJTkRPV1MgPSBvcy5uYW1lID09ICdudCcKLQotIyBUaGUgZW52aXJv
bm1lbnQgdmFyaWFibGUgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgYnJlYWstb24tZmFpbHVy
ZSBtb2RlLgotQlJFQUtfT05fRkFJTFVSRV9FTlZfVkFSID0gJ0dURVNUX0JSRUFLX09OX0ZBSUxV
UkUnCi0KLSMgVGhlIGNvbW1hbmQgbGluZSBmbGFnIGZvciBlbmFibGluZy9kaXNhYmxpbmcgdGhl
IGJyZWFrLW9uLWZhaWx1cmUgbW9kZS4KLUJSRUFLX09OX0ZBSUxVUkVfRkxBRyA9ICdndGVzdF9i
cmVha19vbl9mYWlsdXJlJwotCi0jIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IgZW5hYmxp
bmcvZGlzYWJsaW5nIHRoZSB0aHJvdy1vbi1mYWlsdXJlIG1vZGUuCi1USFJPV19PTl9GQUlMVVJF
X0VOVl9WQVIgPSAnR1RFU1RfVEhST1dfT05fRkFJTFVSRScKLQotIyBUaGUgZW52aXJvbm1lbnQg
dmFyaWFibGUgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgY2F0Y2gtZXhjZXB0aW9ucyBtb2Rl
LgotQ0FUQ0hfRVhDRVBUSU9OU19FTlZfVkFSID0gJ0dURVNUX0NBVENIX0VYQ0VQVElPTlMnCi0K
LSMgUGF0aCB0byB0aGUgZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZV91bml0dGVzdF8gcHJvZ3JhbS4K
LUVYRV9QQVRIID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoCi0gICAg
J2d0ZXN0X2JyZWFrX29uX2ZhaWx1cmVfdW5pdHRlc3RfJykKLQotCi1lbnZpcm9uID0gZ3Rlc3Rf
dGVzdF91dGlscy5lbnZpcm9uCi1TZXRFbnZWYXIgPSBndGVzdF90ZXN0X3V0aWxzLlNldEVudlZh
cgotCi0jIFRlc3RzIGluIHRoaXMgZmlsZSBydW4gYSBHb29nbGUtVGVzdC1iYXNlZCB0ZXN0IHBy
b2dyYW0gYW5kIGV4cGVjdCBpdAotIyB0byB0ZXJtaW5hdGUgcHJlbWF0dXJlbHkuICBUaGVyZWZv
cmUgdGhleSBhcmUgaW5jb21wYXRpYmxlIHdpdGgKLSMgdGhlIHByZW1hdHVyZS1leGl0LWZpbGUg
cHJvdG9jb2wgYnkgZGVzaWduLiAgVW5zZXQgdGhlCi0jIHByZW1hdHVyZS1leGl0IGZpbGVwYXRo
IHRvIHByZXZlbnQgR29vZ2xlIFRlc3QgZnJvbSBjcmVhdGluZwotIyB0aGUgZmlsZS4KLVNldEVu
dlZhcihndGVzdF90ZXN0X3V0aWxzLlBSRU1BVFVSRV9FWElUX0ZJTEVfRU5WX1ZBUiwgTm9uZSkK
LQotCi1kZWYgUnVuKGNvbW1hbmQpOgotICAiIiJSdW5zIGEgY29tbWFuZDsgcmV0dXJucyAxIGlm
IGl0IHdhcyBraWxsZWQgYnkgYSBzaWduYWwsIG9yIDAgb3RoZXJ3aXNlLiIiIgotCi0gIHAgPSBn
dGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoY29tbWFuZCwgZW52PWVudmlyb24pCi0gIGlmIHAu
dGVybWluYXRlZF9ieV9zaWduYWw6Ci0gICAgcmV0dXJuIDEKLSAgZWxzZToKLSAgICByZXR1cm4g
MAotCi0KLSMgVGhlIHRlc3RzLgotCi0KLWNsYXNzIEdUZXN0QnJlYWtPbkZhaWx1cmVVbml0VGVz
dChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKLSAgIiIiVGVzdHMgdXNpbmcgdGhlIEdURVNU
X0JSRUFLX09OX0ZBSUxVUkUgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IKLSAgdGhlIC0tZ3Rlc3Rf
YnJlYWtfb25fZmFpbHVyZSBmbGFnIHRvIHR1cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGludG8KLSAg
c2VnbWVudGF0aW9uIGZhdWx0cy4KLSAgIiIiCi0KLSAgZGVmIFJ1bkFuZFZlcmlmeShzZWxmLCBl
bnZfdmFyX3ZhbHVlLCBmbGFnX3ZhbHVlLCBleHBlY3Rfc2VnX2ZhdWx0KToKLSAgICAiIiJSdW5z
IGd0ZXN0X2JyZWFrX29uX2ZhaWx1cmVfdW5pdHRlc3RfIGFuZCB2ZXJpZmllcyB0aGF0IGl0IGRv
ZXMKLSAgICAob3IgZG9lcyBub3QpIGhhdmUgYSBzZWctZmF1bHQuCi0KLSAgICBBcmdzOgotICAg
ICAgZW52X3Zhcl92YWx1ZTogICAgdmFsdWUgb2YgdGhlIEdURVNUX0JSRUFLX09OX0ZBSUxVUkUg
ZW52aXJvbm1lbnQKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlOyBOb25lIGlmIHRo
ZSB2YXJpYWJsZSBzaG91bGQgYmUgdW5zZXQuCi0gICAgICBmbGFnX3ZhbHVlOiAgICAgICB2YWx1
ZSBvZiB0aGUgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlIGZsYWc7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBOb25lIGlmIHRoZSBmbGFnIHNob3VsZCBub3QgYmUgcHJlc2VudC4KLSAgICAgIGV4
cGVjdF9zZWdfZmF1bHQ6IDEgaWYgdGhlIHByb2dyYW0gaXMgZXhwZWN0ZWQgdG8gZ2VuZXJhdGUg
YSBzZWctZmF1bHQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAwIG90aGVyd2lzZS4KLSAgICAi
IiIKLQotICAgIFNldEVudlZhcihCUkVBS19PTl9GQUlMVVJFX0VOVl9WQVIsIGVudl92YXJfdmFs
dWUpCi0KLSAgICBpZiBlbnZfdmFyX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICBlbnZfdmFyX3ZhbHVl
X21zZyA9ICcgaXMgbm90IHNldCcKLSAgICBlbHNlOgotICAgICAgZW52X3Zhcl92YWx1ZV9tc2cg
PSAnPScgKyBlbnZfdmFyX3ZhbHVlCi0KLSAgICBpZiBmbGFnX3ZhbHVlIGlzIE5vbmU6Ci0gICAg
ICBmbGFnID0gJycKLSAgICBlbGlmIGZsYWdfdmFsdWUgPT0gJzAnOgotICAgICAgZmxhZyA9ICct
LSVzPTAnICUgQlJFQUtfT05fRkFJTFVSRV9GTEFHCi0gICAgZWxzZToKLSAgICAgIGZsYWcgPSAn
LS0lcycgJSBCUkVBS19PTl9GQUlMVVJFX0ZMQUcKLQotICAgIGNvbW1hbmQgPSBbRVhFX1BBVEhd
Ci0gICAgaWYgZmxhZzoKLSAgICAgIGNvbW1hbmQuYXBwZW5kKGZsYWcpCi0KLSAgICBpZiBleHBl
Y3Rfc2VnX2ZhdWx0OgotICAgICAgc2hvdWxkX29yX25vdCA9ICdzaG91bGQnCi0gICAgZWxzZToK
LSAgICAgIHNob3VsZF9vcl9ub3QgPSAnc2hvdWxkIG5vdCcKLQotICAgIGhhc19zZWdfZmF1bHQg
PSBSdW4oY29tbWFuZCkKLQotICAgIFNldEVudlZhcihCUkVBS19PTl9GQUlMVVJFX0VOVl9WQVIs
IE5vbmUpCi0KLSAgICBtc2cgPSAoJ3doZW4gJXMlcywgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4g
IiVzIiAlcyBjYXVzZSBhIHNlZy1mYXVsdC4nICUKLSAgICAgICAgICAgKEJSRUFLX09OX0ZBSUxV
UkVfRU5WX1ZBUiwgZW52X3Zhcl92YWx1ZV9tc2csICcgJy5qb2luKGNvbW1hbmQpLAotICAgICAg
ICAgICAgc2hvdWxkX29yX25vdCkpCi0gICAgc2VsZi5hc3NlcnRfKGhhc19zZWdfZmF1bHQgPT0g
ZXhwZWN0X3NlZ19mYXVsdCwgbXNnKQotCi0gIGRlZiB0ZXN0RGVmYXVsdEJlaGF2aW9yKHNlbGYp
OgotICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiB0aGUgZGVmYXVsdCBtb2RlLiIiIgotCi0g
ICAgc2VsZi5SdW5BbmRWZXJpZnkoZW52X3Zhcl92YWx1ZT1Ob25lLAotICAgICAgICAgICAgICAg
ICAgICAgIGZsYWdfdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rfc2Vn
X2ZhdWx0PTApCi0KLSAgZGVmIHRlc3RFbnZWYXIoc2VsZik6Ci0gICAgIiIiVGVzdHMgdXNpbmcg
dGhlIEdURVNUX0JSRUFLX09OX0ZBSUxVUkUgZW52aXJvbm1lbnQgdmFyaWFibGUuIiIiCi0KLSAg
ICBzZWxmLlJ1bkFuZFZlcmlmeShlbnZfdmFyX3ZhbHVlPScwJywKLSAgICAgICAgICAgICAgICAg
ICAgICBmbGFnX3ZhbHVlPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgZXhwZWN0X3NlZ19m
YXVsdD0wKQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KGVudl92YXJfdmFsdWU9JzEnLAotICAgICAg
ICAgICAgICAgICAgICAgIGZsYWdfdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBl
eHBlY3Rfc2VnX2ZhdWx0PTEpCi0KLSAgZGVmIHRlc3RGbGFnKHNlbGYpOgotICAgICIiIlRlc3Rz
IHVzaW5nIHRoZSAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUgZmxhZy4iIiIKLQotICAgIHNlbGYu
UnVuQW5kVmVyaWZ5KGVudl92YXJfdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBm
bGFnX3ZhbHVlPScwJywKLSAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rfc2VnX2ZhdWx0PTAp
Ci0gICAgc2VsZi5SdW5BbmRWZXJpZnkoZW52X3Zhcl92YWx1ZT1Ob25lLAotICAgICAgICAgICAg
ICAgICAgICAgIGZsYWdfdmFsdWU9JzEnLAotICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdF9z
ZWdfZmF1bHQ9MSkKLQotICBkZWYgdGVzdEZsYWdPdmVycmlkZXNFbnZWYXIoc2VsZik6Ci0gICAg
IiIiVGVzdHMgdGhhdCB0aGUgZmxhZyBvdmVycmlkZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxl
LiIiIgotCi0gICAgc2VsZi5SdW5BbmRWZXJpZnkoZW52X3Zhcl92YWx1ZT0nMCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgZmxhZ192YWx1ZT0nMCcsCi0gICAgICAgICAgICAgICAgICAgICAgZXhw
ZWN0X3NlZ19mYXVsdD0wKQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KGVudl92YXJfdmFsdWU9JzAn
LAotICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWU9JzEnLAotICAgICAgICAgICAgICAg
ICAgICAgIGV4cGVjdF9zZWdfZmF1bHQ9MSkKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeShlbnZfdmFy
X3ZhbHVlPScxJywKLSAgICAgICAgICAgICAgICAgICAgICBmbGFnX3ZhbHVlPScwJywKLSAgICAg
ICAgICAgICAgICAgICAgICBleHBlY3Rfc2VnX2ZhdWx0PTApCi0gICAgc2VsZi5SdW5BbmRWZXJp
ZnkoZW52X3Zhcl92YWx1ZT0nMScsCi0gICAgICAgICAgICAgICAgICAgICAgZmxhZ192YWx1ZT0n
MScsCi0gICAgICAgICAgICAgICAgICAgICAgZXhwZWN0X3NlZ19mYXVsdD0xKQotCi0gIGRlZiB0
ZXN0QnJlYWtPbkZhaWx1cmVPdmVycmlkZXNUaHJvd09uRmFpbHVyZShzZWxmKToKLSAgICAiIiJU
ZXN0cyB0aGF0IGd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUgb3ZlcnJpZGVzIGd0ZXN0X3Rocm93X29u
X2ZhaWx1cmUuIiIiCi0KLSAgICBTZXRFbnZWYXIoVEhST1dfT05fRkFJTFVSRV9FTlZfVkFSLCAn
MScpCi0gICAgdHJ5OgotICAgICAgc2VsZi5SdW5BbmRWZXJpZnkoZW52X3Zhcl92YWx1ZT1Ob25l
LAotICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ192YWx1ZT0nMScsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBleHBlY3Rfc2VnX2ZhdWx0PTEpCi0gICAgZmluYWxseToKLSAgICAgIFNldEVu
dlZhcihUSFJPV19PTl9GQUlMVVJFX0VOVl9WQVIsIE5vbmUpCi0KLSAgaWYgSVNfV0lORE9XUzoK
LSAgICBkZWYgdGVzdENhdGNoRXhjZXB0aW9uc0RvZXNOb3RJbnRlcmZlcmUoc2VsZik6Ci0gICAg
ICAiIiJUZXN0cyB0aGF0IGd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnMgZG9lc24ndCBpbnRlcmZlcmUu
IiIiCi0KLSAgICAgIFNldEVudlZhcihDQVRDSF9FWENFUFRJT05TX0VOVl9WQVIsICcxJykKLSAg
ICAgIHRyeToKLSAgICAgICAgc2VsZi5SdW5BbmRWZXJpZnkoZW52X3Zhcl92YWx1ZT0nMScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWU9JzEnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBleHBlY3Rfc2VnX2ZhdWx0PTEpCi0gICAgICBmaW5hbGx5OgotICAgICAgICBT
ZXRFbnZWYXIoQ0FUQ0hfRVhDRVBUSU9OU19FTlZfVkFSLCBOb25lKQotCi0KLWlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6Ci0gIGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2JyZWFrX29uX2ZhaWx1cmVfdW5p
dHRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9icmVha19v
bl9mYWlsdXJlX3VuaXR0ZXN0Xy5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIz
MWVjMjgwNDRkOGY1YzAwOTZkMTJlYzQwOTYzYzdiMzNmMzRhNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90
ZXN0L2d0ZXN0X2JyZWFrX29uX2ZhaWx1cmVfdW5pdHRlc3RfLmNjCisrKyAvZGV2L251bGwKQEAg
LTEsODcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmln
aHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0
OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8v
Ci0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotLy8gVW5p
dCB0ZXN0IGZvciBHb29nbGUgVGVzdCdzIGJyZWFrLW9uLWZhaWx1cmUgbW9kZS4KLS8vCi0vLyBB
IHVzZXIgY2FuIGFzayBHb29nbGUgVGVzdCB0byBzZWctZmF1bHQgd2hlbiBhbiBhc3NlcnRpb24g
ZmFpbHMsIHVzaW5nCi0vLyBlaXRoZXIgdGhlIEdURVNUX0JSRUFLX09OX0ZBSUxVUkUgZW52aXJv
bm1lbnQgdmFyaWFibGUgb3IgdGhlCi0vLyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUgZmxhZy4g
IFRoaXMgZmlsZSBpcyB1c2VkIGZvciB0ZXN0aW5nIHN1Y2gKLS8vIGZ1bmN0aW9uYWxpdHkuCi0v
LwotLy8gVGhpcyBwcm9ncmFtIHdpbGwgYmUgaW52b2tlZCBmcm9tIGEgUHl0aG9uIHVuaXQgdGVz
dC4gIEl0IGlzCi0vLyBleHBlY3RlZCB0byBmYWlsLiAgRG9uJ3QgcnVuIGl0IGRpcmVjdGx5Lgot
Ci0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotI2lmIEdURVNUX09TX1dJTkRPV1MKLSMgaW5j
bHVkZSA8d2luZG93cy5oPgotIyBpbmNsdWRlIDxzdGRsaWIuaD4KLSNlbmRpZgotCi1uYW1lc3Bh
Y2UgewotCi0vLyBBIHRlc3QgdGhhdCdzIGV4cGVjdGVkIHRvIGZhaWwuCi1URVNUKEZvbywgQmFy
KSB7Ci0gIEVYUEVDVF9FUSgyLCAzKTsKLX0KLQotI2lmIEdURVNUX0hBU19TRUggJiYgIUdURVNU
X09TX1dJTkRPV1NfTU9CSUxFCi0vLyBPbiBXaW5kb3dzIE1vYmlsZSBnbG9iYWwgZXhjZXB0aW9u
IGhhbmRsZXJzIGFyZSBub3Qgc3VwcG9ydGVkLgotTE9ORyBXSU5BUEkgRXhpdFdpdGhFeGNlcHRp
b25Db2RlKAotICAgIHN0cnVjdCBfRVhDRVBUSU9OX1BPSU5URVJTKiBleGNlcHRpb25fcG9pbnRl
cnMpIHsKLSAgZXhpdChleGNlcHRpb25fcG9pbnRlcnMtPkV4Y2VwdGlvblJlY29yZC0+RXhjZXB0
aW9uQ29kZSk7Ci19Ci0jZW5kaWYKLQotfSAgLy8gbmFtZXNwYWNlCi0KLWludCBtYWluKGludCBh
cmdjLCBjaGFyICoqYXJndikgewotI2lmIEdURVNUX09TX1dJTkRPV1MKLSAgLy8gU3VwcHJlc3Nl
cyBkaXNwbGF5IG9mIHRoZSBXaW5kb3dzIGVycm9yIGRpYWxvZyB1cG9uIGVuY291bnRlcmluZwot
ICAvLyBhIGdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdCAoc2VnbWVudCB2aW9sYXRpb24pLgotICBT
ZXRFcnJvck1vZGUoU0VNX05PR1BGQVVMVEVSUk9SQk9YIHwgU0VNX0ZBSUxDUklUSUNBTEVSUk9S
Uyk7Ci0KLSMgaWYgR1RFU1RfSEFTX1NFSCAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLQot
ICAvLyBUaGUgZGVmYXVsdCB1bmhhbmRsZWQgZXhjZXB0aW9uIGZpbHRlciBkb2VzIG5vdCBhbHdh
eXMgZXhpdAotICAvLyB3aXRoIHRoZSBleGNlcHRpb24gY29kZSBhcyBleGl0IGNvZGUgLSBmb3Ig
ZXhhbXBsZSBpdCBleGl0cyB3aXRoCi0gIC8vIDAgZm9yIEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFU
SU9OIGFuZCAxIGZvciBFWENFUFRJT05fQlJFQUtQT0lOVAotICAvLyBpZiB0aGUgYXBwbGljYXRp
b24gaXMgY29tcGlsZWQgaW4gZGVidWcgbW9kZS4gVGh1cyB3ZSB1c2Ugb3VyIG93bgotICAvLyBm
aWx0ZXIgd2hpY2ggYWx3YXlzIGV4aXRzIHdpdGggdGhlIGV4Y2VwdGlvbiBjb2RlIGZvciB1bmhh
bmRsZWQKLSAgLy8gZXhjZXB0aW9ucy4KLSAgU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyKEV4
aXRXaXRoRXhjZXB0aW9uQ29kZSk7Ci0KLSMgZW5kaWYKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lO
RE9XUwotICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0KLSAgcmV0dXJu
IFJVTl9BTExfVEVTVFMoKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9uc190ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9jYXRjaF9leGNlcHRpb25zX3Rlc3QucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2ZmMyMmZkMWZlNWMwYzRlYmRjOGRlN2I0MjIzNmExNjY5
YjBkMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9jYXRjaF9leGNlcHRpb25zX3Rlc3Qu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMzcgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDEwIEdvb2dsZSBJbmMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9u
LgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotIiIiVGVzdHMgR29vZ2xlIFRlc3QncyBleGNlcHRpb24gY2F0
Y2hpbmcgYmVoYXZpb3IuCi0KLVRoaXMgc2NyaXB0IGludm9rZXMgZ3Rlc3RfY2F0Y2hfZXhjZXB0
aW9uc190ZXN0XyBhbmQKLWd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnNfZXhfdGVzdF8gKHByb2dyYW1z
IHdyaXR0ZW4gd2l0aAotR29vZ2xlIFRlc3QpIGFuZCB2ZXJpZmllcyB0aGVpciBvdXRwdXQuCi0i
IiIKLQotX19hdXRob3JfXyA9ICd2bGFkbEBnb29nbGUuY29tIChWbGFkIExvc2V2KScKLQotaW1w
b3J0IG9zCi0KLWltcG9ydCBndGVzdF90ZXN0X3V0aWxzCi0KLSMgQ29uc3RhbnRzLgotRkxBR19Q
UkVGSVggPSAnLS1ndGVzdF8nCi1MSVNUX1RFU1RTX0ZMQUcgPSBGTEFHX1BSRUZJWCArICdsaXN0
X3Rlc3RzJwotTk9fQ0FUQ0hfRVhDRVBUSU9OU19GTEFHID0gRkxBR19QUkVGSVggKyAnY2F0Y2hf
ZXhjZXB0aW9ucz0wJwotRklMVEVSX0ZMQUcgPSBGTEFHX1BSRUZJWCArICdmaWx0ZXInCi0KLSMg
UGF0aCB0byB0aGUgZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9uc19leF90ZXN0XyBiaW5hcnksIGNvbXBp
bGVkIHdpdGgKLSMgZXhjZXB0aW9ucyBlbmFibGVkLgotRVhfRVhFX1BBVEggPSBndGVzdF90ZXN0
X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgKLSAgICAnZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9u
c19leF90ZXN0XycpCi0KLSMgUGF0aCB0byB0aGUgZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9uc190ZXN0
XyBiaW5hcnksIGNvbXBpbGVkIHdpdGgKLSMgZXhjZXB0aW9ucyBkaXNhYmxlZC4KLUVYRV9QQVRI
ID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoCi0gICAgJ2d0ZXN0X2Nh
dGNoX2V4Y2VwdGlvbnNfbm9fZXhfdGVzdF8nKQotCi1lbnZpcm9uID0gZ3Rlc3RfdGVzdF91dGls
cy5lbnZpcm9uCi1TZXRFbnZWYXIgPSBndGVzdF90ZXN0X3V0aWxzLlNldEVudlZhcgotCi0jIFRl
c3RzIGluIHRoaXMgZmlsZSBydW4gYSBHb29nbGUtVGVzdC1iYXNlZCB0ZXN0IHByb2dyYW0gYW5k
IGV4cGVjdCBpdAotIyB0byB0ZXJtaW5hdGUgcHJlbWF0dXJlbHkuICBUaGVyZWZvcmUgdGhleSBh
cmUgaW5jb21wYXRpYmxlIHdpdGgKLSMgdGhlIHByZW1hdHVyZS1leGl0LWZpbGUgcHJvdG9jb2wg
YnkgZGVzaWduLiAgVW5zZXQgdGhlCi0jIHByZW1hdHVyZS1leGl0IGZpbGVwYXRoIHRvIHByZXZl
bnQgR29vZ2xlIFRlc3QgZnJvbSBjcmVhdGluZwotIyB0aGUgZmlsZS4KLVNldEVudlZhcihndGVz
dF90ZXN0X3V0aWxzLlBSRU1BVFVSRV9FWElUX0ZJTEVfRU5WX1ZBUiwgTm9uZSkKLQotVEVTVF9M
SVNUID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKAotICAgIFtFWEVfUEFUSCwgTElTVF9U
RVNUU19GTEFHXSwgZW52PWVudmlyb24pLm91dHB1dAotCi1TVVBQT1JUU19TRUhfRVhDRVBUSU9O
UyA9ICdUaHJvd3NTZWhFeGNlcHRpb24nIGluIFRFU1RfTElTVAotCi1pZiBTVVBQT1JUU19TRUhf
RVhDRVBUSU9OUzoKLSAgQklOQVJZX09VVFBVVCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2Vz
cyhbRVhFX1BBVEhdLCBlbnY9ZW52aXJvbikub3V0cHV0Ci0KLUVYX0JJTkFSWV9PVVRQVVQgPSBn
dGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoCi0gICAgW0VYX0VYRV9QQVRIXSwgZW52PWVudmly
b24pLm91dHB1dAotCi0KLSMgVGhlIHRlc3RzLgotaWYgU1VQUE9SVFNfU0VIX0VYQ0VQVElPTlM6
Ci0gICMgcHlsaW50OmRpc2FibGUtbXNnPUM2MzAyCi0gIGNsYXNzIENhdGNoU2VoRXhjZXB0aW9u
c1Rlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgZXhjZXB0aW9u
LWNhdGNoaW5nIGJlaGF2aW9yLiIiIgotCi0KLSAgICBkZWYgVGVzdFNlaEV4Y2VwdGlvbnMoc2Vs
ZiwgdGVzdF9vdXRwdXQpOgotICAgICAgc2VsZi5hc3NlcnRfKCdTRUggZXhjZXB0aW9uIHdpdGgg
Y29kZSAweDJhIHRocm93biAnCi0gICAgICAgICAgICAgICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1
cmVcJ3MgY29uc3RydWN0b3InCi0gICAgICAgICAgICAgICAgICAgaW4gdGVzdF9vdXRwdXQpCi0g
ICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4MmEgdGhyb3duICcK
LSAgICAgICAgICAgICAgICAgICAnaW4gdGhlIHRlc3QgZml4dHVyZVwncyBkZXN0cnVjdG9yJwot
ICAgICAgICAgICAgICAgICAgIGluIHRlc3Rfb3V0cHV0KQotICAgICAgc2VsZi5hc3NlcnRfKCdT
RUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biBpbiBTZXRVcFRlc3RDYXNlKCknCi0g
ICAgICAgICAgICAgICAgICAgaW4gdGVzdF9vdXRwdXQpCi0gICAgICBzZWxmLmFzc2VydF8oJ1NF
SCBleGNlcHRpb24gd2l0aCBjb2RlIDB4MmEgdGhyb3duIGluIFRlYXJEb3duVGVzdENhc2UoKScK
LSAgICAgICAgICAgICAgICAgICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYuYXNzZXJ0Xygn
U0VIIGV4Y2VwdGlvbiB3aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gU2V0VXAoKScKLSAgICAgICAg
ICAgICAgICAgICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnU0VIIGV4Y2Vw
dGlvbiB3aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gVGVhckRvd24oKScKLSAgICAgICAgICAgICAg
ICAgICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3
aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gdGhlIHRlc3QgYm9keScKLSAgICAgICAgICAgICAgICAg
ICBpbiB0ZXN0X291dHB1dCkKLQotICAgIGRlZiB0ZXN0Q2F0Y2hlc1NlaEV4Y2VwdGlvbnNXaXRo
Q3h4RXhjZXB0aW9uc0VuYWJsZWQoc2VsZik6Ci0gICAgICBzZWxmLlRlc3RTZWhFeGNlcHRpb25z
KEVYX0JJTkFSWV9PVVRQVVQpCi0KLSAgICBkZWYgdGVzdENhdGNoZXNTZWhFeGNlcHRpb25zV2l0
aEN4eEV4Y2VwdGlvbnNEaXNhYmxlZChzZWxmKToKLSAgICAgIHNlbGYuVGVzdFNlaEV4Y2VwdGlv
bnMoQklOQVJZX09VVFBVVCkKLQotCi1jbGFzcyBDYXRjaEN4eEV4Y2VwdGlvbnNUZXN0KGd0ZXN0
X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgotICAiIiJUZXN0cyBDKysgZXhjZXB0aW9uLWNhdGNoaW5n
IGJlaGF2aW9yLgotCi0gICAgIFRlc3RzIGluIHRoaXMgdGVzdCBjYXNlIHZlcmlmeSB0aGF0Ogot
ICAgICAqIEMrKyBleGNlcHRpb25zIGFyZSBjYXVnaHQgYW5kIGxvZ2dlZCBhcyBDKysgKG5vdCBT
RUgpIGV4Y2VwdGlvbnMKLSAgICAgKiBFeGNlcHRpb24gdGhyb3duIGFmZmVjdCB0aGUgcmVtYWlu
ZGVyIG9mIHRoZSB0ZXN0IHdvcmsgZmxvdyBpbiB0aGUKLSAgICAgICBleHBlY3RlZCBtYW5uZXIu
Ci0gICIiIgotCi0gIGRlZiB0ZXN0Q2F0Y2hlc0N4eEV4Y2VwdGlvbnNJbkZpeHR1cmVDb25zdHJ1
Y3RvcihzZWxmKToKLSAgICBzZWxmLmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlw
dGlvbiAnCi0gICAgICAgICAgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIgdGhyb3du
ICcKLSAgICAgICAgICAgICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgY29uc3RydWN0b3In
Ci0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRf
KCd1bmV4cGVjdGVkJyBub3QgaW4gRVhfQklOQVJZX09VVFBVVCwKLSAgICAgICAgICAgICAgICAg
J1RoaXMgZmFpbHVyZSBiZWxvbmdzIGluIHRoaXMgdGVzdCBvbmx5IGlmICcKLSAgICAgICAgICAg
ICAgICAgJyJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCIgKG5vIHF1b3RlcykgJwotICAg
ICAgICAgICAgICAgICAnYXBwZWFycyBvbiB0aGUgc2FtZSBsaW5lIGFzIHdvcmRzICJjYWxsZWQg
dW5leHBlY3RlZGx5IicpCi0KLSAgaWYgKCdDeHhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0LlRo
cm93c0V4Y2VwdGlvbkluRGVzdHJ1Y3RvcicgaW4KLSAgICAgIEVYX0JJTkFSWV9PVVRQVVQpOgot
Ci0gICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luRml4dHVyZURlc3RydWN0b3Ioc2Vs
Zik6Ci0gICAgICBzZWxmLmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAn
Ci0gICAgICAgICAgICAgICAgICAgJyJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIiB0aHJvd24gJwot
ICAgICAgICAgICAgICAgICAgICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGRlc3RydWN0b3InCi0g
ICAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICAgIHNlbGYuYXNzZXJ0
XygnQ3h4RXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAg
ICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAg
ICBpbiBFWF9CSU5BUllfT1VUUFVUKQotCi0gIGRlZiB0ZXN0Q2F0Y2hlc0N4eEV4Y2VwdGlvbnNJ
blNldFVwVGVzdENhc2Uoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdp
dGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAg
ICAnIHRocm93biBpbiBTZXRVcFRlc3RDYXNlKCknCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJ
TkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9y
VGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBl
eHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2Vs
Zi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IGNvbnN0cnVjdG9yICcK
LSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAg
IGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNl
dFVwVGVzdENhc2VUZXN0IGRlc3RydWN0b3IgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFz
IGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBz
ZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlNldFVwKCkgJwot
ICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAg
aW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0
VXBUZXN0Q2FzZVRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFz
IGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBz
ZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QgdGVzdCBib2R5ICcK
LSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAg
IGluIEVYX0JJTkFSWV9PVVRQVVQpCi0KLSAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0lu
VGVhckRvd25UZXN0Q2FzZShzZWxmKToKLSAgICBzZWxmLmFzc2VydF8oJ0MrKyBleGNlcHRpb24g
d2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCi0gICAgICAgICAgICAg
ICAgICcgdGhyb3duIGluIFRlYXJEb3duVGVzdENhc2UoKScKLSAgICAgICAgICAgICAgICAgaW4g
RVhfQklOQVJZX09VVFBVVCkKLQotICBkZWYgdGVzdENhdGNoZXNDeHhFeGNlcHRpb25zSW5TZXRV
cChzZWxmKToKLSAgICBzZWxmLmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlv
biAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCi0gICAgICAgICAgICAgICAgICcgdGhyb3duIGlu
IFNldFVwKCknCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2Vs
Zi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcK
LSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAg
IGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNl
dFVwVGVzdCBkZXN0cnVjdG9yICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3Rl
ZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3Nl
cnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdDo6VGVhckRvd24oKSAnCi0gICAgICAgICAgICAg
ICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllf
T1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygndW5leHBlY3RlZCcgbm90IGluIEVYX0JJTkFSWV9P
VVRQVVQsCi0gICAgICAgICAgICAgICAgICdUaGlzIGZhaWx1cmUgYmVsb25ncyBpbiB0aGlzIHRl
c3Qgb25seSBpZiAnCi0gICAgICAgICAgICAgICAgICciQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Qi
IChubyBxdW90ZXMpICcKLSAgICAgICAgICAgICAgICAgJ2FwcGVhcnMgb24gdGhlIHNhbWUgbGlu
ZSBhcyB3b3JkcyAiY2FsbGVkIHVuZXhwZWN0ZWRseSInKQotCi0gIGRlZiB0ZXN0Q2F0Y2hlc0N4
eEV4Y2VwdGlvbnNJblRlYXJEb3duKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0XygnQysrIGV4Y2Vw
dGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIicKLSAgICAgICAg
ICAgICAgICAgJyB0aHJvd24gaW4gVGVhckRvd24oKScKLSAgICAgICAgICAgICAgICAgaW4gRVhf
QklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluVGVhckRvd25U
ZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4
cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxm
LmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0IGRlc3RydWN0b3IgJwotICAgICAg
ICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhf
QklOQVJZX09VVFBVVCkKLQotICBkZWYgdGVzdENhdGNoZXNDeHhFeGNlcHRpb25zSW5UZXN0Qm9k
eShzZWxmKToKLSAgICBzZWxmLmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlv
biAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCi0gICAgICAgICAgICAgICAgICcgdGhyb3duIGlu
IHRoZSB0ZXN0IGJvZHknCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0g
ICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd25UZXN0
Q2FzZSgpICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAg
ICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNl
cHRpb25JblRlc3RCb2R5VGVzdCBkZXN0cnVjdG9yICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxl
ZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0g
ICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd24oKSAn
Ci0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAg
ICBpbiBFWF9CSU5BUllfT1VUUFVUKQotCi0gIGRlZiB0ZXN0Q2F0Y2hlc05vblN0ZEN4eEV4Y2Vw
dGlvbnMoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdVbmtub3duIEMrKyBleGNlcHRpb24gdGhy
b3duIGluIHRoZSB0ZXN0IGJvZHknCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQ
VVQpCi0KLSAgZGVmIHRlc3RVbmhhbmRsZWRDeHhFeGNlcHRpb25zQWJvcnRUaGVQcm9ncmFtKHNl
bGYpOgotICAgICMgRmlsdGVycyBvdXQgU0VIIGV4Y2VwdGlvbiB0ZXN0cyBvbiBXaW5kb3dzLiBV
bmhhbmRsZWQgU0VIIGV4Y2VwdGlvbnMKLSAgICAjIGNhdXNlIHRlc3RzIHRvIHNob3cgcG9wLXVw
IHdpbmRvd3MgdGhlcmUuCi0gICAgRklUTEVSX09VVF9TRUhfVEVTVFNfRkxBRyA9IEZJTFRFUl9G
TEFHICsgJz0tKlNlaConCi0gICAgIyBCeSBkZWZhdWx0LCBHb29nbGUgVGVzdCBkb2Vzbid0IGNh
dGNoIHRoZSBleGNlcHRpb25zLgotICAgIHVuY2F1Z2h0X2V4Y2VwdGlvbnNfZXhfYmluYXJ5X291
dHB1dCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcygKLSAgICAgICAgW0VYX0VYRV9QQVRI
LAotICAgICAgICAgTk9fQ0FUQ0hfRVhDRVBUSU9OU19GTEFHLAotICAgICAgICAgRklUTEVSX09V
VF9TRUhfVEVTVFNfRkxBR10sCi0gICAgICAgIGVudj1lbnZpcm9uKS5vdXRwdXQKLQotICAgIHNl
bGYuYXNzZXJ0XygnVW5oYW5kbGVkIEMrKyBleGNlcHRpb24gdGVybWluYXRpbmcgdGhlIHByb2dy
YW0nCi0gICAgICAgICAgICAgICAgIGluIHVuY2F1Z2h0X2V4Y2VwdGlvbnNfZXhfYmluYXJ5X291
dHB1dCkKLSAgICBzZWxmLmFzc2VydF8oJ3VuZXhwZWN0ZWQnIG5vdCBpbiB1bmNhdWdodF9leGNl
cHRpb25zX2V4X2JpbmFyeV9vdXRwdXQpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
LSAgZ3Rlc3RfdGVzdF91dGlscy5NYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9n
b29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9uc190ZXN0Xy5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9uc190ZXN0Xy5jYwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZkOTUzYzA0YTUyNjNmZDA5ODBmYmJhZTRh
YmY0ZGU0NTA3M2QzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2NhdGNoX2V4Y2VwdGlv
bnNfdGVzdF8uY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzMTEgKzAsMCBAQAotLy8gQ29weXJpZ2h0
IDIwMTAsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24u
Ci0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
Ly8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogdmxhZGxAZ29v
Z2xlLmNvbSAoVmxhZCBMb3NldikKLS8vCi0vLyBUZXN0cyBmb3IgR29vZ2xlIFRlc3QgaXRzZWxm
LiBUZXN0cyBpbiB0aGlzIGZpbGUgdGhyb3cgQysrIG9yIFNFSAotLy8gZXhjZXB0aW9ucywgYW5k
IHRoZSBvdXRwdXQgaXMgdmVyaWZpZWQgYnkgZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9uc190ZXN0LnB5
LgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotI2luY2x1ZGUgPHN0ZGlvLmg+ICAvLyBO
T0xJTlQKLSNpbmNsdWRlIDxzdGRsaWIuaD4gIC8vIEZvciBleGl0KCkuCi0KLSNpZiBHVEVTVF9I
QVNfU0VICi0jIGluY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbmRpZgotCi0jaWYgR1RFU1RfSEFTX0VY
Q0VQVElPTlMKLSMgaW5jbHVkZSA8ZXhjZXB0aW9uPiAgLy8gRm9yIHNldF90ZXJtaW5hdGUoKS4K
LSMgaW5jbHVkZSA8c3RkZXhjZXB0PgotI2VuZGlmCi0KLXVzaW5nIHRlc3Rpbmc6OlRlc3Q7Ci0K
LSNpZiBHVEVTVF9IQVNfU0VICi0KLWNsYXNzIFNlaEV4Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0
IDogcHVibGljIFRlc3QgewotIHB1YmxpYzoKLSAgU2VoRXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRl
c3QoKSB7IFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBOVUxMKTsgfQotfTsKLQotVEVTVF9GKFNl
aEV4Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0LCBUaHJvd3NFeGNlcHRpb25JbkNvbnN0cnVjdG9y
KSB7fQotCi1jbGFzcyBTZWhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0IDogcHVibGljIFRlc3Qg
ewotIHB1YmxpYzoKLSAgflNlaEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3QoKSB7IFJhaXNlRXhj
ZXB0aW9uKDQyLCAwLCAwLCBOVUxMKTsgfQotfTsKLQotVEVTVF9GKFNlaEV4Y2VwdGlvbkluRGVz
dHJ1Y3RvclRlc3QsIFRocm93c0V4Y2VwdGlvbkluRGVzdHJ1Y3Rvcikge30KLQotY2xhc3MgU2Vo
RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwdWJsaWM6Ci0g
IHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7IFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBO
VUxMKTsgfQotfTsKLQotVEVTVF9GKFNlaEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRo
cm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkge30KLQotY2xhc3MgU2VoRXhjZXB0aW9uSW5U
ZWFyRG93blRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyB2
b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7IFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBOVUxMKTsg
fQotfTsKLQotVEVTVF9GKFNlaEV4Y2VwdGlvbkluVGVhckRvd25UZXN0Q2FzZVRlc3QsIFRocm93
c0V4Y2VwdGlvbkluVGVhckRvd25UZXN0Q2FzZSkge30KLQotY2xhc3MgU2VoRXhjZXB0aW9uSW5T
ZXRVcFRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0
VXAoKSB7IFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBOVUxMKTsgfQotfTsKLQotVEVTVF9GKFNl
aEV4Y2VwdGlvbkluU2V0VXBUZXN0LCBUaHJvd3NFeGNlcHRpb25JblNldFVwKSB7fQotCi1jbGFz
cyBTZWhFeGNlcHRpb25JblRlYXJEb3duVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwcm90ZWN0ZWQ6
Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsgUmFpc2VFeGNlcHRpb24oNDIsIDAsIDAsIE5V
TEwpOyB9Ci19OwotCi1URVNUX0YoU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3QsIFRocm93c0V4
Y2VwdGlvbkluVGVhckRvd24pIHt9Ci0KLVRFU1QoU2VoRXhjZXB0aW9uVGVzdCwgVGhyb3dzU2Vo
RXhjZXB0aW9uKSB7Ci0gIFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBOVUxMKTsKLX0KLQotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfU0VICi0KLSNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi1jbGFz
cyBDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwdWJsaWM6
Ci0gIEN4eEV4Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0KCkgewotICAgIC8vIFdpdGhvdXQgdGhp
cyBtYWNybyBWQysrIGNvbXBsYWlucyBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIGF0IHRoZSBlbmQg
b2YKLSAgICAvLyB0aGUgY29uc3RydWN0b3IuCi0gICAgR1RFU1RfU1VQUFJFU1NfVU5SRUFDSEFC
TEVfQ09ERV9XQVJOSU5HX0JFTE9XXygKLSAgICAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9y
KCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIikpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgVGVhckRv
d25UZXN0Q2FzZSgpIHsKLSAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlv
bkluQ29uc3RydWN0b3JUZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgotICAgICAgICAgICAiY2Fs
bGVkIGFzIGV4cGVjdGVkLlxuIik7Ci0gIH0KLQotIHByb3RlY3RlZDoKLSAgfkN4eEV4Y2VwdGlv
bkluQ29uc3RydWN0b3JUZXN0KCkgewotICAgIEFERF9GQUlMVVJFKCkgPDwgIkN4eEV4Y2VwdGlv
bkluQ29uc3RydWN0b3JUZXN0IGRlc3RydWN0b3IgIgotICAgICAgICAgICAgICAgICAgPDwgImNh
bGxlZCB1bmV4cGVjdGVkbHkuIjsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAg
ICBBRERfRkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6U2V0VXAo
KSAiCi0gICAgICAgICAgICAgICAgICA8PCAiY2FsbGVkIHVuZXhwZWN0ZWRseS4iOwotICB9Ci0K
LSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIEFERF9GQUlMVVJFKCkgPDwgIkN4eEV4
Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0OjpUZWFyRG93bigpICIKLSAgICAgICAgICAgICAgICAg
IDw8ICJjYWxsZWQgdW5leHBlY3RlZGx5LiI7Ci0gIH0KLX07Ci0KLVRFU1RfRihDeHhFeGNlcHRp
b25JbkNvbnN0cnVjdG9yVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5Db25zdHJ1Y3RvcikgewotICBB
RERfRkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCB0ZXN0IGJvZHkg
IgotICAgICAgICAgICAgICAgIDw8ICJjYWxsZWQgdW5leHBlY3RlZGx5LiI7Ci19Ci0KLS8vIEV4
Y2VwdGlvbnMgaW4gZGVzdHJ1Y3RvcnMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gQysrMTEuCi0jaWYg
IUdURVNUX0xBTkdfQ1hYMTEKLWNsYXNzIEN4eEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3QgOiBw
dWJsaWMgVGVzdCB7Ci0gcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkg
ewotICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5EZXN0cnVjdG9y
VGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICIKLSAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3Rl
ZC5cbiIpOwotICB9Ci0KLSBwcm90ZWN0ZWQ6Ci0gIH5DeHhFeGNlcHRpb25JbkRlc3RydWN0b3JU
ZXN0KCkgewotICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxP
V18oCi0gICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysrIGV4Y2Vw
dGlvbiIpKTsKLSAgfQotfTsKLQotVEVTVF9GKEN4eEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3Qs
IFRocm93c0V4Y2VwdGlvbkluRGVzdHJ1Y3Rvcikge30KLSNlbmRpZiAgLy8gQysrMTEgbW9kZQot
Ci1jbGFzcyBDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3Qgewot
IHB1YmxpYzoKLSAgQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCgpIHsKLSAgICBwcmlu
dGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QgY29u
c3RydWN0b3IgIgotICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7Ci0gIH0KLQot
ICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgewotICAgIHRocm93IHN0ZDo6cnVudGltZV9l
cnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgVGVh
ckRvd25UZXN0Q2FzZSgpIHsKLSAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2Vw
dGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCi0gICAgICAgICAg
ICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKLSAgfQotCi0gcHJvdGVjdGVkOgotICB+Q3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCgpIHsKLSAgICBwcmludGYoIiVzIiwKLSAgICAgICAg
ICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QgZGVzdHJ1Y3RvciAiCi0gICAgICAg
ICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBTZXRV
cCgpIHsKLSAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBU
ZXN0Q2FzZVRlc3Q6OlNldFVwKCkgIgotICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxu
Iik7Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgcHJpbnRmKCIlcyIs
Ci0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0OjpUZWFyRG93bigp
ICIKLSAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwotICB9Ci19OwotCi1URVNU
X0YoQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5TZXRV
cFRlc3RDYXNlKSB7Ci0gIHByaW50ZigiJXMiLAotICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0
VXBUZXN0Q2FzZVRlc3QgdGVzdCBib2R5ICIKLSAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQu
XG4iKTsKLX0KLQotY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3RDYXNlVGVzdCA6IHB1
YmxpYyBUZXN0IHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7
Ci0gICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9yKCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIik7
Ci0gIH0KLX07Ci0KLVRFU1RfRihDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0LCBU
aHJvd3NFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2UpIHt9Ci0KLWNsYXNzIEN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0IDogcHVibGljIFRlc3QgewotIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgVGVh
ckRvd25UZXN0Q2FzZSgpIHsKLSAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2Vw
dGlvbkluU2V0VXBUZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgotICAgICAgICAgICAiY2FsbGVk
IGFzIGV4cGVjdGVkLlxuIik7Ci0gIH0KLQotIHByb3RlY3RlZDoKLSAgfkN4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0KCkgewotICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9u
SW5TZXRVcFRlc3QgZGVzdHJ1Y3RvciAiCi0gICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQu
XG4iKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsgdGhyb3cgc3RkOjpydW50aW1l
X2Vycm9yKCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIik7IH0KLQotICB2aXJ0dWFsIHZvaWQgVGVh
ckRvd24oKSB7Ci0gICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblNl
dFVwVGVzdDo6VGVhckRvd24oKSAiCi0gICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4i
KTsKLSAgfQotfTsKLQotVEVTVF9GKEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0LCBUaHJvd3NFeGNl
cHRpb25JblNldFVwKSB7Ci0gIEFERF9GQUlMVVJFKCkgPDwgIkN4eEV4Y2VwdGlvbkluU2V0VXBU
ZXN0IHRlc3QgYm9keSAiCi0gICAgICAgICAgICAgICAgPDwgImNhbGxlZCB1bmV4cGVjdGVkbHku
IjsKLX0KLQotY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgOiBwdWJsaWMgVGVzdCB7
Ci0gcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIHByaW50
ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3Q6OlRlYXJEb3du
VGVzdENhc2UoKSAiCi0gICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKLSAgfQot
Ci0gcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QoKSB7Ci0gICAgcHJp
bnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0cnVj
dG9yICIKLSAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwotICB9Ci0KLSAgdmly
dHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3Rh
bmRhcmQgQysrIGV4Y2VwdGlvbiIpOwotICB9Ci19OwotCi1URVNUX0YoQ3h4RXhjZXB0aW9uSW5U
ZWFyRG93blRlc3QsIFRocm93c0V4Y2VwdGlvbkluVGVhckRvd24pIHt9Ci0KLWNsYXNzIEN4eEV4
Y2VwdGlvbkluVGVzdEJvZHlUZXN0IDogcHVibGljIFRlc3QgewotIHB1YmxpYzoKLSAgc3RhdGlj
IHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKLSAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAg
IkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgotICAgICAg
ICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7Ci0gIH0KLQotIHByb3RlY3RlZDoKLSAgfkN4
eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0KCkgewotICAgIHByaW50ZigiJXMiLAotICAgICAgICAg
ICAiQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QgZGVzdHJ1Y3RvciAiCi0gICAgICAgICAgICJj
YWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigp
IHsKLSAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlU
ZXN0OjpUZWFyRG93bigpICIKLSAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwot
ICB9Ci19OwotCi1URVNUX0YoQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QsIFRocm93c1N0ZEN4
eEV4Y2VwdGlvbikgewotICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBl
eGNlcHRpb24iKTsKLX0KLQotVEVTVChDeHhFeGNlcHRpb25UZXN0LCBUaHJvd3NOb25TdGRDeHhF
eGNlcHRpb24pIHsKLSAgdGhyb3cgIkMtc3RyaW5nIjsKLX0KLQotLy8gVGhpcyB0ZXJtaW5hdGUg
aGFuZGxlciBhYm9ydHMgdGhlIHByb2dyYW0gdXNpbmcgZXhpdCgpIHJhdGhlciB0aGFuIGFib3J0
KCkuCi0vLyBUaGlzIGF2b2lkcyBzaG93aW5nIHBvcC11cHMgb24gV2luZG93cyBzeXN0ZW1zIGFu
ZCBjb3JlIGR1bXBzIG9uIFVuaXgtbGlrZQotLy8gb25lcy4KLXZvaWQgVGVybWluYXRlSGFuZGxl
cigpIHsKLSAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFuZGxlZCBDKysgZXhjZXB0aW9u
IHRlcm1pbmF0aW5nIHRoZSBwcm9ncmFtLiIpOwotICBmZmx1c2goTlVMTCk7Ci0gIGV4aXQoMyk7
Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKLQotaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KSB7Ci0jaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKLSAgc3RkOjpzZXRf
dGVybWluYXRlKCZUZXJtaW5hdGVIYW5kbGVyKTsKLSNlbmRpZgotICB0ZXN0aW5nOjpJbml0R29v
Z2xlVGVzdCgmYXJnYywgYXJndik7Ci0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2NvbG9yX3Rlc3Qu
cHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2NvbG9yX3Rlc3QucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMmE1M2VkODU3Yzc0YzgwMGJjY2Q2N2Jj
NDE4YTUxYTA5ZDY5MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9jb2xvcl90ZXN0LnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgot
IwotIyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIlZlcmlmaWVzIHRoYXQgR29vZ2xlIFRlc3QgY29ycmVj
dGx5IGRldGVybWluZXMgd2hldGhlciB0byB1c2UgY29sb3JzLiIiIgotCi1fX2F1dGhvcl9fID0g
J3dhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pJwotCi1pbXBvcnQgb3MKLWltcG9ydCBndGVz
dF90ZXN0X3V0aWxzCi0KLQotSVNfV0lORE9XUyA9IG9zLm5hbWUgPSAnbnQnCi0KLUNPTE9SX0VO
Vl9WQVIgPSAnR1RFU1RfQ09MT1InCi1DT0xPUl9GTEFHID0gJ2d0ZXN0X2NvbG9yJwotQ09NTUFO
RCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKCdndGVzdF9jb2xvcl90
ZXN0XycpCi0KLQotZGVmIFNldEVudlZhcihlbnZfdmFyLCB2YWx1ZSk6Ci0gICIiIlNldHMgdGhl
IGVudiB2YXJpYWJsZSB0byAndmFsdWUnOyB1bnNldHMgaXQgd2hlbiAndmFsdWUnIGlzIE5vbmUu
IiIiCi0KLSAgaWYgdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgb3MuZW52aXJvbltlbnZfdmFyXSA9
IHZhbHVlCi0gIGVsaWYgZW52X3ZhciBpbiBvcy5lbnZpcm9uOgotICAgIGRlbCBvcy5lbnZpcm9u
W2Vudl92YXJdCi0KLQotZGVmIFVzZXNDb2xvcih0ZXJtLCBjb2xvcl9lbnZfdmFyLCBjb2xvcl9m
bGFnKToKLSAgIiIiUnVucyBndGVzdF9jb2xvcl90ZXN0XyBhbmQgcmV0dXJucyBpdHMgZXhpdCBj
b2RlLiIiIgotCi0gIFNldEVudlZhcignVEVSTScsIHRlcm0pCi0gIFNldEVudlZhcihDT0xPUl9F
TlZfVkFSLCBjb2xvcl9lbnZfdmFyKQotCi0gIGlmIGNvbG9yX2ZsYWcgaXMgTm9uZToKLSAgICBh
cmdzID0gW10KLSAgZWxzZToKLSAgICBhcmdzID0gWyctLSVzPSVzJyAlIChDT0xPUl9GTEFHLCBj
b2xvcl9mbGFnKV0KLSAgcCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcyhbQ09NTUFORF0g
KyBhcmdzKQotICByZXR1cm4gbm90IHAuZXhpdGVkIG9yIHAuZXhpdF9jb2RlCi0KLQotY2xhc3Mg
R1Rlc3RDb2xvclRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6Ci0gIGRlZiB0ZXN0Tm9F
bnZWYXJOb0ZsYWcoc2VsZik6Ci0gICAgIiIiVGVzdHMgdGhlIGNhc2Ugd2hlbiB0aGVyZSdzIG5l
aXRoZXIgR1RFU1RfQ09MT1Igbm9yIC0tZ3Rlc3RfY29sb3IuIiIiCi0KLSAgICBpZiBub3QgSVNf
V0lORE9XUzoKLSAgICAgIHNlbGYuYXNzZXJ0Xyhub3QgVXNlc0NvbG9yKCdkdW1iJywgTm9uZSwg
Tm9uZSkpCi0gICAgICBzZWxmLmFzc2VydF8obm90IFVzZXNDb2xvcignZW1hY3MnLCBOb25lLCBO
b25lKSkKLSAgICAgIHNlbGYuYXNzZXJ0Xyhub3QgVXNlc0NvbG9yKCd4dGVybS1tb25vJywgTm9u
ZSwgTm9uZSkpCi0gICAgICBzZWxmLmFzc2VydF8obm90IFVzZXNDb2xvcigndW5rbm93bicsIE5v
bmUsIE5vbmUpKQotICAgICAgc2VsZi5hc3NlcnRfKG5vdCBVc2VzQ29sb3IoTm9uZSwgTm9uZSwg
Tm9uZSkpCi0gICAgc2VsZi5hc3NlcnRfKFVzZXNDb2xvcignbGludXgnLCBOb25lLCBOb25lKSkK
LSAgICBzZWxmLmFzc2VydF8oVXNlc0NvbG9yKCdjeWd3aW4nLCBOb25lLCBOb25lKSkKLSAgICBz
ZWxmLmFzc2VydF8oVXNlc0NvbG9yKCd4dGVybScsIE5vbmUsIE5vbmUpKQotICAgIHNlbGYuYXNz
ZXJ0XyhVc2VzQ29sb3IoJ3h0ZXJtLWNvbG9yJywgTm9uZSwgTm9uZSkpCi0gICAgc2VsZi5hc3Nl
cnRfKFVzZXNDb2xvcigneHRlcm0tMjU2Y29sb3InLCBOb25lLCBOb25lKSkKLQotICBkZWYgdGVz
dEZsYWdPbmx5KHNlbGYpOgotICAgICIiIlRlc3RzIHRoZSBjYXNlIHdoZW4gdGhlcmUncyAtLWd0
ZXN0X2NvbG9yIGJ1dCBub3QgR1RFU1RfQ09MT1IuIiIiCi0KLSAgICBzZWxmLmFzc2VydF8obm90
IFVzZXNDb2xvcignZHVtYicsIE5vbmUsICdubycpKQotICAgIHNlbGYuYXNzZXJ0Xyhub3QgVXNl
c0NvbG9yKCd4dGVybS1jb2xvcicsIE5vbmUsICdubycpKQotICAgIGlmIG5vdCBJU19XSU5ET1dT
OgotICAgICAgc2VsZi5hc3NlcnRfKG5vdCBVc2VzQ29sb3IoJ2VtYWNzJywgTm9uZSwgJ2F1dG8n
KSkKLSAgICBzZWxmLmFzc2VydF8oVXNlc0NvbG9yKCd4dGVybScsIE5vbmUsICdhdXRvJykpCi0g
ICAgc2VsZi5hc3NlcnRfKFVzZXNDb2xvcignZHVtYicsIE5vbmUsICd5ZXMnKSkKLSAgICBzZWxm
LmFzc2VydF8oVXNlc0NvbG9yKCd4dGVybScsIE5vbmUsICd5ZXMnKSkKLQotICBkZWYgdGVzdEVu
dlZhck9ubHkoc2VsZik6Ci0gICAgIiIiVGVzdHMgdGhlIGNhc2Ugd2hlbiB0aGVyZSdzIEdURVNU
X0NPTE9SIGJ1dCBub3QgLS1ndGVzdF9jb2xvci4iIiIKLQotICAgIHNlbGYuYXNzZXJ0Xyhub3Qg
VXNlc0NvbG9yKCdkdW1iJywgJ25vJywgTm9uZSkpCi0gICAgc2VsZi5hc3NlcnRfKG5vdCBVc2Vz
Q29sb3IoJ3h0ZXJtLWNvbG9yJywgJ25vJywgTm9uZSkpCi0gICAgaWYgbm90IElTX1dJTkRPV1M6
Ci0gICAgICBzZWxmLmFzc2VydF8obm90IFVzZXNDb2xvcignZHVtYicsICdhdXRvJywgTm9uZSkp
Ci0gICAgc2VsZi5hc3NlcnRfKFVzZXNDb2xvcigneHRlcm0tY29sb3InLCAnYXV0bycsIE5vbmUp
KQotICAgIHNlbGYuYXNzZXJ0XyhVc2VzQ29sb3IoJ2R1bWInLCAneWVzJywgTm9uZSkpCi0gICAg
c2VsZi5hc3NlcnRfKFVzZXNDb2xvcigneHRlcm0tY29sb3InLCAneWVzJywgTm9uZSkpCi0KLSAg
ZGVmIHRlc3RFbnZWYXJBbmRGbGFnKHNlbGYpOgotICAgICIiIlRlc3RzIHRoZSBjYXNlIHdoZW4g
dGhlcmUgYXJlIGJvdGggR1RFU1RfQ09MT1IgYW5kIC0tZ3Rlc3RfY29sb3IuIiIiCi0KLSAgICBz
ZWxmLmFzc2VydF8obm90IFVzZXNDb2xvcigneHRlcm0tY29sb3InLCAnbm8nLCAnbm8nKSkKLSAg
ICBzZWxmLmFzc2VydF8oVXNlc0NvbG9yKCdkdW1iJywgJ25vJywgJ3llcycpKQotICAgIHNlbGYu
YXNzZXJ0XyhVc2VzQ29sb3IoJ3h0ZXJtLWNvbG9yJywgJ25vJywgJ2F1dG8nKSkKLQotICBkZWYg
dGVzdEFsaWFzZXNPZlllc0FuZE5vKHNlbGYpOgotICAgICIiIlRlc3RzIHVzaW5nIGFsaWFzZXMg
aW4gc3BlY2lmeWluZyAtLWd0ZXN0X2NvbG9yLiIiIgotCi0gICAgc2VsZi5hc3NlcnRfKFVzZXND
b2xvcignZHVtYicsIE5vbmUsICd0cnVlJykpCi0gICAgc2VsZi5hc3NlcnRfKFVzZXNDb2xvcign
ZHVtYicsIE5vbmUsICdZRVMnKSkKLSAgICBzZWxmLmFzc2VydF8oVXNlc0NvbG9yKCdkdW1iJywg
Tm9uZSwgJ1QnKSkKLSAgICBzZWxmLmFzc2VydF8oVXNlc0NvbG9yKCdkdW1iJywgTm9uZSwgJzEn
KSkKLQotICAgIHNlbGYuYXNzZXJ0Xyhub3QgVXNlc0NvbG9yKCd4dGVybScsIE5vbmUsICdmJykp
Ci0gICAgc2VsZi5hc3NlcnRfKG5vdCBVc2VzQ29sb3IoJ3h0ZXJtJywgTm9uZSwgJ2ZhbHNlJykp
Ci0gICAgc2VsZi5hc3NlcnRfKG5vdCBVc2VzQ29sb3IoJ3h0ZXJtJywgTm9uZSwgJzAnKSkKLSAg
ICBzZWxmLmFzc2VydF8obm90IFVzZXNDb2xvcigneHRlcm0nLCBOb25lLCAndW5rbm93bicpKQot
Ci0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2NvbG9y
X3Rlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9jb2xvcl90
ZXN0Xy5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlhMjFlMmQ1NmU1ODUyODEx
Mzg5ZGYzM2VmZTMxZTE3MDk0NjVkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2NvbG9y
X3Rlc3RfLmNjCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIw
MDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0v
LyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
Ly8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8g
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5j
b20gKFpoYW55b25nIFdhbikKLQotLy8gQSBoZWxwZXIgcHJvZ3JhbSBmb3IgdGVzdGluZyBob3cg
R29vZ2xlIFRlc3QgZGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHVzZQotLy8gY29sb3JzIGluIHRoZSBv
dXRwdXQuICBJdCBwcmludHMgIllFUyIgYW5kIHJldHVybnMgMSBpZiBHb29nbGUgVGVzdAotLy8g
ZGVjaWRlcyB0byB1c2UgY29sb3JzLCBhbmQgcHJpbnRzICJOTyIgYW5kIHJldHVybnMgMCBvdGhl
cndpc2UuCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIK
LSNpbmNsdWRlICJzcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgiCi0KLXVzaW5nIHRlc3Rpbmc6Omlu
dGVybmFsOjpTaG91bGRVc2VDb2xvcjsKLQotLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBl
bnN1cmUgdGhhdCB0aGUgVW5pdFRlc3Qgc2luZ2xldG9uIGlzCi0vLyBjcmVhdGVkIGJlZm9yZSBt
YWluKCkgaXMgZW50ZXJlZCwgYW5kIHRodXMgdGhhdCBTaG91bGRVc2VDb2xvcigpCi0vLyB3b3Jr
cyB0aGUgc2FtZSB3YXkgYXMgaW4gYSByZWFsIEdvb2dsZS1UZXN0LWJhc2VkIHRlc3QuICBXZSBk
b24ndCBhY3R1YWwKLS8vIHJ1biB0aGUgVEVTVCBpdHNlbGYuCi1URVNUKEdUZXN0Q29sb3JUZXN0
LCBEdW1teSkgewotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKLSAgdGVz
dGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotCi0gIGlmIChTaG91bGRVc2VDb2xv
cih0cnVlKSkgewotICAgIC8vIEdvb2dsZSBUZXN0IGRlY2lkZXMgdG8gdXNlIGNvbG9ycyBpbiB0
aGUgb3V0cHV0IChhc3N1bWluZyBpdAotICAgIC8vIGdvZXMgdG8gYSBUVFkpLgotICAgIHByaW50
ZigiWUVTXG4iKTsKLSAgICByZXR1cm4gMTsKLSAgfSBlbHNlIHsKLSAgICAvLyBHb29nbGUgVGVz
dCBkZWNpZGVzIG5vdCB0byB1c2UgY29sb3JzIGluIHRoZSBvdXRwdXQuCi0gICAgcHJpbnRmKCJO
T1xuIik7Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfZW52X3Zhcl90ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9lbnZfdmFyX3Rlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQyNDA3NWNmYTM3NDc2Y2NkOGM3ZDRmZjAyNzJiMjdkODg3ODcxM2UuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3Bh
cnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9lbnZfdmFyX3Rlc3QucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxMTcgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAy
MDA4LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotIiIiVmVyaWZpZXMgdGhhdCBHb29nbGUgVGVzdCBjb3JyZWN0bHkgcGFyc2VzIGVudmly
b25tZW50IHZhcmlhYmxlcy4iIiIKLQotX19hdXRob3JfXyA9ICd3YW5AZ29vZ2xlLmNvbSAoWmhh
bnlvbmcgV2FuKScKLQotaW1wb3J0IG9zCi1pbXBvcnQgZ3Rlc3RfdGVzdF91dGlscwotCi0KLUlT
X1dJTkRPV1MgPSBvcy5uYW1lID09ICdudCcKLUlTX0xJTlVYID0gb3MubmFtZSA9PSAncG9zaXgn
IGFuZCBvcy51bmFtZSgpWzBdID09ICdMaW51eCcKLQotQ09NTUFORCA9IGd0ZXN0X3Rlc3RfdXRp
bHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKCdndGVzdF9lbnZfdmFyX3Rlc3RfJykKLQotZW52aXJv
biA9IG9zLmVudmlyb24uY29weSgpCi0KLQotZGVmIEFzc2VydEVxKGV4cGVjdGVkLCBhY3R1YWwp
OgotICBpZiBleHBlY3RlZCAhPSBhY3R1YWw6Ci0gICAgcHJpbnQoJ0V4cGVjdGVkOiAlcycgJSAo
ZXhwZWN0ZWQsKSkKLSAgICBwcmludCgnICBBY3R1YWw6ICVzJyAlIChhY3R1YWwsKSkKLSAgICBy
YWlzZSBBc3NlcnRpb25FcnJvcgotCi0KLWRlZiBTZXRFbnZWYXIoZW52X3ZhciwgdmFsdWUpOgot
ICAiIiJTZXRzIHRoZSBlbnYgdmFyaWFibGUgdG8gJ3ZhbHVlJzsgdW5zZXRzIGl0IHdoZW4gJ3Zh
bHVlJyBpcyBOb25lLiIiIgotCi0gIGlmIHZhbHVlIGlzIG5vdCBOb25lOgotICAgIGVudmlyb25b
ZW52X3Zhcl0gPSB2YWx1ZQotICBlbGlmIGVudl92YXIgaW4gZW52aXJvbjoKLSAgICBkZWwgZW52
aXJvbltlbnZfdmFyXQotCi0KLWRlZiBHZXRGbGFnKGZsYWcpOgotICAiIiJSdW5zIGd0ZXN0X2Vu
dl92YXJfdGVzdF8gYW5kIHJldHVybnMgaXRzIG91dHB1dC4iIiIKLQotICBhcmdzID0gW0NPTU1B
TkRdCi0gIGlmIGZsYWcgaXMgbm90IE5vbmU6Ci0gICAgYXJncyArPSBbZmxhZ10KLSAgcmV0dXJu
IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcyhhcmdzLCBlbnY9ZW52aXJvbikub3V0cHV0Ci0K
LQotZGVmIFRlc3RGbGFnKGZsYWcsIHRlc3RfdmFsLCBkZWZhdWx0X3ZhbCk6Ci0gICIiIlZlcmlm
aWVzIHRoYXQgdGhlIGdpdmVuIGZsYWcgaXMgYWZmZWN0ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcg
ZW52IHZhci4iIiIKLQotICBlbnZfdmFyID0gJ0dURVNUXycgKyBmbGFnLnVwcGVyKCkKLSAgU2V0
RW52VmFyKGVudl92YXIsIHRlc3RfdmFsKQotICBBc3NlcnRFcSh0ZXN0X3ZhbCwgR2V0RmxhZyhm
bGFnKSkKLSAgU2V0RW52VmFyKGVudl92YXIsIE5vbmUpCi0gIEFzc2VydEVxKGRlZmF1bHRfdmFs
LCBHZXRGbGFnKGZsYWcpKQotCi0KLWNsYXNzIEdUZXN0RW52VmFyVGVzdChndGVzdF90ZXN0X3V0
aWxzLlRlc3RDYXNlKToKLSAgZGVmIHRlc3RFbnZWYXJBZmZlY3RzRmxhZyhzZWxmKToKLSAgICAi
IiJUZXN0cyB0aGF0IGVudmlyb25tZW50IHZhcmlhYmxlIHNob3VsZCBhZmZlY3QgdGhlIGNvcnJl
c3BvbmRpbmcgZmxhZy4iIiIKLQotICAgIFRlc3RGbGFnKCdicmVha19vbl9mYWlsdXJlJywgJzEn
LCAnMCcpCi0gICAgVGVzdEZsYWcoJ2NvbG9yJywgJ3llcycsICdhdXRvJykKLSAgICBUZXN0Rmxh
ZygnZmlsdGVyJywgJ0Zvb1Rlc3QuQmFyJywgJyonKQotICAgIFNldEVudlZhcignWE1MX09VVFBV
VF9GSUxFJywgTm9uZSkgIyBGb3IgJ291dHB1dCcgdGVzdAotICAgIFRlc3RGbGFnKCdvdXRwdXQn
LCAneG1sOnRtcC9mb28ueG1sJywgJycpCi0gICAgVGVzdEZsYWcoJ3ByaW50X3RpbWUnLCAnMCcs
ICcxJykKLSAgICBUZXN0RmxhZygncmVwZWF0JywgJzk5OScsICcxJykKLSAgICBUZXN0RmxhZygn
dGhyb3dfb25fZmFpbHVyZScsICcxJywgJzAnKQotICAgIFRlc3RGbGFnKCdkZWF0aF90ZXN0X3N0
eWxlJywgJ3RocmVhZHNhZmUnLCAnZmFzdCcpCi0gICAgVGVzdEZsYWcoJ2NhdGNoX2V4Y2VwdGlv
bnMnLCAnMCcsICcxJykKLQotICAgIGlmIElTX0xJTlVYOgotICAgICAgVGVzdEZsYWcoJ2RlYXRo
X3Rlc3RfdXNlX2ZvcmsnLCAnMScsICcwJykKLSAgICAgIFRlc3RGbGFnKCdzdGFja190cmFjZV9k
ZXB0aCcsICcwJywgJzEwMCcpCi0KLSAgZGVmIHRlc3RYbWxPdXRwdXRGaWxlKHNlbGYpOgotICAg
ICIiIlRlc3RzIHRoYXQgJFhNTF9PVVRQVVRfRklMRSBhZmZlY3RzIHRoZSBvdXRwdXQgZmxhZy4i
IiIKLQotICAgIFNldEVudlZhcignR1RFU1RfT1VUUFVUJywgTm9uZSkKLSAgICBTZXRFbnZWYXIo
J1hNTF9PVVRQVVRfRklMRScsICd0bXAvYmFyLnhtbCcpCi0gICAgQXNzZXJ0RXEoJ3htbDp0bXAv
YmFyLnhtbCcsIEdldEZsYWcoJ291dHB1dCcpKQotCi0gIGRlZiB0ZXN0WG1sT3V0cHV0RmlsZU92
ZXJyaWRlKHNlbGYpOgotICAgICIiIlRlc3RzIHRoYXQgJFhNTF9PVVRQVVRfRklMRSBpcyBvdmVy
cmlkZGVuIGJ5ICRHVEVTVF9PVVRQVVQiIiIKLQotICAgIFNldEVudlZhcignR1RFU1RfT1VUUFVU
JywgJ3htbDp0bXAvZm9vLnhtbCcpCi0gICAgU2V0RW52VmFyKCdYTUxfT1VUUFVUX0ZJTEUnLCAn
dG1wL2Jhci54bWwnKQotICAgIEFzc2VydEVxKCd4bWw6dG1wL2Zvby54bWwnLCBHZXRGbGFnKCdv
dXRwdXQnKSkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgZ3Rlc3RfdGVzdF91dGls
cy5NYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rl
c3RfZW52X3Zhcl90ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rl
c3RfZW52X3Zhcl90ZXN0Xy5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ2MjM3
MjJjZjJiMzlkMDYwOTE3YWVmNjYxY2Y0YzU3NWYyOWZjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0
L2d0ZXN0X2Vudl92YXJfdGVzdF8uY2MKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAot
Ly8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
Ly8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBk
aXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8g
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhv
cjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLQotLy8gQSBoZWxwZXIgcHJvZ3JhbSBm
b3IgdGVzdGluZyB0aGF0IEdvb2dsZSBUZXN0IHBhcnNlcyB0aGUgZW52aXJvbm1lbnQKLS8vIHZh
cmlhYmxlcyBjb3JyZWN0bHkuCi0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotCi0jaW5jbHVk
ZSA8aW9zdHJlYW0+Ci0jaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgotCi11c2lu
ZyA6OnN0ZDo6Y291dDsKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBUaGUgcHVycG9zZSBv
ZiB0aGlzIGlzIHRvIG1ha2UgdGhlIHRlc3QgbW9yZSByZWFsaXN0aWMgYnkgZW5zdXJpbmcKLS8v
IHRoYXQgdGhlIFVuaXRUZXN0IHNpbmdsZXRvbiBpcyBjcmVhdGVkIGJlZm9yZSBtYWluKCkgaXMg
ZW50ZXJlZC4KLS8vIFdlIGRvbid0IGFjdHVhbCBydW4gdGhlIFRFU1QgaXRzZWxmLgotVEVTVChH
VGVzdEVudlZhclRlc3QsIER1bW15KSB7Ci19Ci0KLXZvaWQgUHJpbnRGbGFnKGNvbnN0IGNoYXIq
IGZsYWcpIHsKLSAgaWYgKHN0cmNtcChmbGFnLCAiYnJlYWtfb25fZmFpbHVyZSIpID09IDApIHsK
LSAgICBjb3V0IDw8IEdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVyZSk7Ci0gICAgcmV0dXJuOwot
ICB9Ci0KLSAgaWYgKHN0cmNtcChmbGFnLCAiY2F0Y2hfZXhjZXB0aW9ucyIpID09IDApIHsKLSAg
ICBjb3V0IDw8IEdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucyk7Ci0gICAgcmV0dXJuOwotICB9
Ci0KLSAgaWYgKHN0cmNtcChmbGFnLCAiY29sb3IiKSA9PSAwKSB7Ci0gICAgY291dCA8PCBHVEVT
VF9GTEFHKGNvbG9yKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAoc3RyY21wKGZsYWcsICJk
ZWF0aF90ZXN0X3N0eWxlIikgPT0gMCkgewotICAgIGNvdXQgPDwgR1RFU1RfRkxBRyhkZWF0aF90
ZXN0X3N0eWxlKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAoc3RyY21wKGZsYWcsICJkZWF0
aF90ZXN0X3VzZV9mb3JrIikgPT0gMCkgewotICAgIGNvdXQgPDwgR1RFU1RfRkxBRyhkZWF0aF90
ZXN0X3VzZV9mb3JrKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAoc3RyY21wKGZsYWcsICJm
aWx0ZXIiKSA9PSAwKSB7Ci0gICAgY291dCA8PCBHVEVTVF9GTEFHKGZpbHRlcik7Ci0gICAgcmV0
dXJuOwotICB9Ci0KLSAgaWYgKHN0cmNtcChmbGFnLCAib3V0cHV0IikgPT0gMCkgewotICAgIGNv
dXQgPDwgR1RFU1RfRkxBRyhvdXRwdXQpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChzdHJj
bXAoZmxhZywgInByaW50X3RpbWUiKSA9PSAwKSB7Ci0gICAgY291dCA8PCBHVEVTVF9GTEFHKHBy
aW50X3RpbWUpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChzdHJjbXAoZmxhZywgInJlcGVh
dCIpID09IDApIHsKLSAgICBjb3V0IDw8IEdURVNUX0ZMQUcocmVwZWF0KTsKLSAgICByZXR1cm47
Ci0gIH0KLQotICBpZiAoc3RyY21wKGZsYWcsICJzdGFja190cmFjZV9kZXB0aCIpID09IDApIHsK
LSAgICBjb3V0IDw8IEdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpOwotICAgIHJldHVybjsK
LSAgfQotCi0gIGlmIChzdHJjbXAoZmxhZywgInRocm93X29uX2ZhaWx1cmUiKSA9PSAwKSB7Ci0g
ICAgY291dCA8PCBHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUpOwotICAgIHJldHVybjsKLSAg
fQotCi0gIGNvdXQgPDwgIkludmFsaWQgZmxhZyBuYW1lICIgPDwgZmxhZwotICAgICAgIDw8ICIu
ICBWYWxpZCBuYW1lcyBhcmUgYnJlYWtfb25fZmFpbHVyZSwgY29sb3IsIGZpbHRlciwgZXRjLlxu
IjsKLSAgZXhpdCgxKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7Ci0gIHRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdj
LCBhcmd2KTsKLQotICBpZiAoYXJnYyAhPSAyKSB7Ci0gICAgY291dCA8PCAiVXNhZ2U6IGd0ZXN0
X2Vudl92YXJfdGVzdF8gTkFNRV9PRl9GTEFHXG4iOwotICAgIHJldHVybiAxOwotICB9Ci0KLSAg
dGVzdGluZzo6UHJpbnRGbGFnKGFyZ3ZbMV0pOwotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfZW52aXJvbm1lbnRfdGVzdC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfZW52aXJvbm1lbnRfdGVz
dC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ2ZGMxMmIyZDg2ZDE5YjFjNTJk
MWJiMGNjMDhjYmRlNzA5NzgyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2Vudmlyb25t
ZW50X3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwxODkgKzAsMCBAQAotLy8gQ29weXJpZ2h0
IDIwMDcsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24u
Ci0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
Ly8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2ds
ZS5jb20gKFpoYW55b25nIFdhbikKLS8vCi0vLyBUZXN0cyB1c2luZyBnbG9iYWwgdGVzdCBlbnZp
cm9ubWVudHMuCi0KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5o
IgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1HVEVTVF9ERUNMQVJFX3N0cmluZ18oZmlsdGVyKTsK
LX0KLQotbmFtZXNwYWNlIHsKLQotZW51bSBGYWlsdXJlVHlwZSB7Ci0gIE5PX0ZBSUxVUkUsIE5P
Tl9GQVRBTF9GQUlMVVJFLCBGQVRBTF9GQUlMVVJFCi19OwotCi0vLyBGb3IgdGVzdGluZyB1c2lu
ZyBnbG9iYWwgdGVzdCBlbnZpcm9ubWVudHMuCi1jbGFzcyBNeUVudmlyb25tZW50IDogcHVibGlj
IHRlc3Rpbmc6OkVudmlyb25tZW50IHsKLSBwdWJsaWM6Ci0gIE15RW52aXJvbm1lbnQoKSB7IFJl
c2V0KCk7IH0KLQotICAvLyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIGZhaWx1cmVfaW5fc2V0
X3VwXywgU2V0VXAoKSB3aWxsCi0gIC8vIGdlbmVyYXRlIGEgbm9uLWZhdGFsIGZhaWx1cmUsIGdl
bmVyYXRlIGEgZmF0YWwgZmFpbHVyZSwgb3IKLSAgLy8gc3VjY2VlZC4KLSAgdmlydHVhbCB2b2lk
IFNldFVwKCkgewotICAgIHNldF91cF93YXNfcnVuXyA9IHRydWU7Ci0KLSAgICBzd2l0Y2ggKGZh
aWx1cmVfaW5fc2V0X3VwXykgewotICAgICAgY2FzZSBOT05fRkFUQUxfRkFJTFVSRToKLSAgICAg
ICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUgaW4gZ2xvYmFs
IHNldC11cC4iOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgRkFUQUxfRkFJTFVSRToKLSAg
ICAgICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlIGluIGdsb2JhbCBzZXQtdXAu
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9
Ci0gIH0KLQotICAvLyBHZW5lcmF0ZXMgYSBub24tZmF0YWwgZmFpbHVyZS4KLSAgdmlydHVhbCB2
b2lkIFRlYXJEb3duKCkgewotICAgIHRlYXJfZG93bl93YXNfcnVuXyA9IHRydWU7Ci0gICAgQURE
X0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUgaW4gZ2xvYmFsIHRlYXIt
ZG93bi4iOwotICB9Ci0KLSAgLy8gUmVzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgZW52aXJvbm1lbnQg
cy50LiBpdCBjYW4gYmUgcmV1c2VkLgotICB2b2lkIFJlc2V0KCkgewotICAgIGZhaWx1cmVfaW5f
c2V0X3VwXyA9IE5PX0ZBSUxVUkU7Ci0gICAgc2V0X3VwX3dhc19ydW5fID0gZmFsc2U7Ci0gICAg
dGVhcl9kb3duX3dhc19ydW5fID0gZmFsc2U7Ci0gIH0KLQotICAvLyBXZSBjYWxsIHRoaXMgZnVu
Y3Rpb24gdG8gc2V0IHRoZSB0eXBlIG9mIGZhaWx1cmUgU2V0VXAoKSBzaG91bGQKLSAgLy8gZ2Vu
ZXJhdGUuCi0gIHZvaWQgc2V0X2ZhaWx1cmVfaW5fc2V0X3VwKEZhaWx1cmVUeXBlIHR5cGUpIHsK
LSAgICBmYWlsdXJlX2luX3NldF91cF8gPSB0eXBlOwotICB9Ci0KLSAgLy8gV2FzIFNldFVwKCkg
cnVuPwotICBib29sIHNldF91cF93YXNfcnVuKCkgY29uc3QgeyByZXR1cm4gc2V0X3VwX3dhc19y
dW5fOyB9Ci0KLSAgLy8gV2FzIFRlYXJEb3duKCkgcnVuPwotICBib29sIHRlYXJfZG93bl93YXNf
cnVuKCkgY29uc3QgeyByZXR1cm4gdGVhcl9kb3duX3dhc19ydW5fOyB9Ci0KLSBwcml2YXRlOgot
ICBGYWlsdXJlVHlwZSBmYWlsdXJlX2luX3NldF91cF87Ci0gIGJvb2wgc2V0X3VwX3dhc19ydW5f
OwotICBib29sIHRlYXJfZG93bl93YXNfcnVuXzsKLX07Ci0KLS8vIFdhcyB0aGUgVEVTVCBydW4/
Ci1ib29sIHRlc3Rfd2FzX3J1bjsKLQotLy8gVGhlIHNvbGUgcHVycG9zZSBvZiB0aGlzIFRFU1Qg
aXMgdG8gZW5hYmxlIHVzIHRvIGNoZWNrIHdoZXRoZXIgaXQKLS8vIHdhcyBydW4uCi1URVNUKEZv
b1Rlc3QsIEJhcikgewotICB0ZXN0X3dhc19ydW4gPSB0cnVlOwotfQotCi0vLyBQcmludHMgdGhl
IG1lc3NhZ2UgYW5kIGFib3J0cyB0aGUgcHJvZ3JhbSBpZiBjb25kaXRpb24gaXMgZmFsc2UuCi12
b2lkIENoZWNrKGJvb2wgY29uZGl0aW9uLCBjb25zdCBjaGFyKiBtc2cpIHsKLSAgaWYgKCFjb25k
aXRpb24pIHsKLSAgICBwcmludGYoIkZBSUxFRDogJXNcbiIsIG1zZyk7Ci0gICAgdGVzdGluZzo6
aW50ZXJuYWw6OnBvc2l4OjpBYm9ydCgpOwotICB9Ci19Ci0KLS8vIFJ1bnMgdGhlIHRlc3RzLiAg
UmV0dXJuIHRydWUgaWZmIHN1Y2Nlc3NmdWwuCi0vLwotLy8gVGhlICdmYWlsdXJlJyBwYXJhbWV0
ZXIgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIGZhaWx1cmUgdGhhdCBzaG91bGQKLS8vIGJlIGdlbmVy
YXRlZCBieSB0aGUgZ2xvYmFsIHNldC11cC4KLWludCBSdW5BbGxUZXN0cyhNeUVudmlyb25tZW50
KiBlbnYsIEZhaWx1cmVUeXBlIGZhaWx1cmUpIHsKLSAgZW52LT5SZXNldCgpOwotICBlbnYtPnNl
dF9mYWlsdXJlX2luX3NldF91cChmYWlsdXJlKTsKLSAgdGVzdF93YXNfcnVuID0gZmFsc2U7Ci0g
IHRlc3Rpbmc6OmludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKS0+Q2xlYXJBZEhvY1Rlc3RSZXN1
bHQoKTsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlCi0K
LWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICB0ZXN0aW5nOjpJbml0R29vZ2xl
VGVzdCgmYXJnYywgYXJndik7Ci0KLSAgLy8gUmVnaXN0ZXJzIGEgZ2xvYmFsIHRlc3QgZW52aXJv
bm1lbnQsIGFuZCB2ZXJpZmllcyB0aGF0IHRoZQotICAvLyByZWdpc3RyYXRpb24gZnVuY3Rpb24g
cmV0dXJucyBpdHMgYXJndW1lbnQuCi0gIE15RW52aXJvbm1lbnQqIGNvbnN0IGVudiA9IG5ldyBN
eUVudmlyb25tZW50OwotICBDaGVjayh0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQo
ZW52KSA9PSBlbnYsCi0gICAgICAgICJBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoKSBzaG91bGQg
cmV0dXJuIGl0cyBhcmd1bWVudC4iKTsKLQotICAvLyBWZXJpZmllcyB0aGF0IFJVTl9BTExfVEVT
VFMoKSBydW5zIHRoZSB0ZXN0cyB3aGVuIHRoZSBnbG9iYWwKLSAgLy8gc2V0LXVwIGlzIHN1Y2Nl
c3NmdWwuCi0gIENoZWNrKFJ1bkFsbFRlc3RzKGVudiwgTk9fRkFJTFVSRSkgIT0gMCwKLSAgICAg
ICAgIlJVTl9BTExfVEVTVFMoKSBzaG91bGQgcmV0dXJuIG5vbi16ZXJvLCBhcyB0aGUgZ2xvYmFs
IHRlYXItZG93biAiCi0gICAgICAgICJzaG91bGQgZ2VuZXJhdGUgYSBmYWlsdXJlLiIpOwotICBD
aGVjayh0ZXN0X3dhc19ydW4sCi0gICAgICAgICJUaGUgdGVzdHMgc2hvdWxkIHJ1biwgYXMgdGhl
IGdsb2JhbCBzZXQtdXAgc2hvdWxkIGdlbmVyYXRlIG5vICIKLSAgICAgICAgImZhaWx1cmUiKTsK
LSAgQ2hlY2soZW52LT50ZWFyX2Rvd25fd2FzX3J1bigpLAotICAgICAgICAiVGhlIGdsb2JhbCB0
ZWFyLWRvd24gc2hvdWxkIHJ1biwgYXMgdGhlIGdsb2JhbCBzZXQtdXAgd2FzIHJ1bi4iKTsKLQot
ICAvLyBWZXJpZmllcyB0aGF0IFJVTl9BTExfVEVTVFMoKSBydW5zIHRoZSB0ZXN0cyB3aGVuIHRo
ZSBnbG9iYWwKLSAgLy8gc2V0LXVwIGdlbmVyYXRlcyBubyBmYXRhbCBmYWlsdXJlLgotICBDaGVj
ayhSdW5BbGxUZXN0cyhlbnYsIE5PTl9GQVRBTF9GQUlMVVJFKSAhPSAwLAotICAgICAgICAiUlVO
X0FMTF9URVNUUygpIHNob3VsZCByZXR1cm4gbm9uLXplcm8sIGFzIGJvdGggdGhlIGdsb2JhbCBz
ZXQtdXAgIgotICAgICAgICAiYW5kIHRoZSBnbG9iYWwgdGVhci1kb3duIHNob3VsZCBnZW5lcmF0
ZSBhIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwotICBDaGVjayh0ZXN0X3dhc19ydW4sCi0gICAgICAg
ICJUaGUgdGVzdHMgc2hvdWxkIHJ1biwgYXMgdGhlIGdsb2JhbCBzZXQtdXAgc2hvdWxkIGdlbmVy
YXRlIG5vICIKLSAgICAgICAgImZhdGFsIGZhaWx1cmUuIik7Ci0gIENoZWNrKGVudi0+dGVhcl9k
b3duX3dhc19ydW4oKSwKLSAgICAgICAgIlRoZSBnbG9iYWwgdGVhci1kb3duIHNob3VsZCBydW4s
IGFzIHRoZSBnbG9iYWwgc2V0LXVwIHdhcyBydW4uIik7Ci0KLSAgLy8gVmVyaWZpZXMgdGhhdCBS
VU5fQUxMX1RFU1RTKCkgcnVucyBubyB0ZXN0IHdoZW4gdGhlIGdsb2JhbCBzZXQtdXAKLSAgLy8g
Z2VuZXJhdGVzIGEgZmF0YWwgZmFpbHVyZS4KLSAgQ2hlY2soUnVuQWxsVGVzdHMoZW52LCBGQVRB
TF9GQUlMVVJFKSAhPSAwLAotICAgICAgICAiUlVOX0FMTF9URVNUUygpIHNob3VsZCByZXR1cm4g
bm9uLXplcm8sIGFzIHRoZSBnbG9iYWwgc2V0LXVwICIKLSAgICAgICAgInNob3VsZCBnZW5lcmF0
ZSBhIGZhdGFsIGZhaWx1cmUuIik7Ci0gIENoZWNrKCF0ZXN0X3dhc19ydW4sCi0gICAgICAgICJU
aGUgdGVzdHMgc2hvdWxkIG5vdCBydW4sIGFzIHRoZSBnbG9iYWwgc2V0LXVwIHNob3VsZCBnZW5l
cmF0ZSAiCi0gICAgICAgICJhIGZhdGFsIGZhaWx1cmUuIik7Ci0gIENoZWNrKGVudi0+dGVhcl9k
b3duX3dhc19ydW4oKSwKLSAgICAgICAgIlRoZSBnbG9iYWwgdGVhci1kb3duIHNob3VsZCBydW4s
IGFzIHRoZSBnbG9iYWwgc2V0LXVwIHdhcyBydW4uIik7Ci0KLSAgLy8gVmVyaWZpZXMgdGhhdCBS
VU5fQUxMX1RFU1RTKCkgZG9lc24ndCBkbyBnbG9iYWwgc2V0LXVwIG9yCi0gIC8vIHRlYXItZG93
biB3aGVuIHRoZXJlIGlzIG5vIHRlc3QgdG8gcnVuLgotICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZp
bHRlcikgPSAiLSoiOwotICBDaGVjayhSdW5BbGxUZXN0cyhlbnYsIE5PX0ZBSUxVUkUpID09IDAs
Ci0gICAgICAgICJSVU5fQUxMX1RFU1RTKCkgc2hvdWxkIHJldHVybiB6ZXJvLCBhcyB0aGVyZSBp
cyBubyB0ZXN0IHRvIHJ1bi4iKTsKLSAgQ2hlY2soIWVudi0+c2V0X3VwX3dhc19ydW4oKSwKLSAg
ICAgICAgIlRoZSBnbG9iYWwgc2V0LXVwIHNob3VsZCBub3QgcnVuLCBhcyB0aGVyZSBpcyBubyB0
ZXN0IHRvIHJ1bi4iKTsKLSAgQ2hlY2soIWVudi0+dGVhcl9kb3duX3dhc19ydW4oKSwKLSAgICAg
ICAgIlRoZSBnbG9iYWwgdGVhci1kb3duIHNob3VsZCBub3QgcnVuLCAiCi0gICAgICAgICJhcyB0
aGUgZ2xvYmFsIHNldC11cCB3YXMgbm90IHJ1bi4iKTsKLQotICBwcmludGYoIlBBU1NcbiIpOwot
ICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rl
c3QvZ3Rlc3RfZmlsdGVyX3VuaXR0ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
dGVzdC9ndGVzdF9maWx0ZXJfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVjMGIxNTFiMTFiZGI1Zjc5OTk5NjIyMWIxMzhkZTc0Yjc2OWIxMzEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvdGVzdC9ndGVzdF9maWx0ZXJfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2
MzYgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDA1IEdv
b2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJV
bml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0IHRlc3QgZmlsdGVycy4KLQotQSB1c2VyIGNhbiBzcGVj
aWZ5IHdoaWNoIHRlc3QocykgaW4gYSBHb29nbGUgVGVzdCBwcm9ncmFtIHRvIHJ1biB2aWEgZWl0
aGVyCi10aGUgR1RFU1RfRklMVEVSIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZSAtLWd0ZXN0
X2ZpbHRlciBmbGFnLgotVGhpcyBzY3JpcHQgdGVzdHMgc3VjaCBmdW5jdGlvbmFsaXR5IGJ5IGlu
dm9raW5nCi1ndGVzdF9maWx0ZXJfdW5pdHRlc3RfIChhIHByb2dyYW0gd3JpdHRlbiB3aXRoIEdv
b2dsZSBUZXN0KSB3aXRoIGRpZmZlcmVudAotZW52aXJvbm1lbnRzIGFuZCBjb21tYW5kIGxpbmUg
ZmxhZ3MuCi0KLU5vdGUgdGhhdCB0ZXN0IHNoYXJkaW5nIG1heSBhbHNvIGluZmx1ZW5jZSB3aGlj
aCB0ZXN0cyBhcmUgZmlsdGVyZWQuIFRoZXJlZm9yZSwKLXdlIHRlc3QgdGhhdCBoZXJlIGFsc28u
Ci0iIiIKLQotX19hdXRob3JfXyA9ICd3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKScKLQot
aW1wb3J0IG9zCi1pbXBvcnQgcmUKLXRyeToKLSAgZnJvbSBzZXRzIGltcG9ydCBTZXQgYXMgc2V0
ICAjIEZvciBQeXRob24gMi4zIGNvbXBhdGliaWxpdHkKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAg
cGFzcwotaW1wb3J0IHN5cwotCi1pbXBvcnQgZ3Rlc3RfdGVzdF91dGlscwotCi0jIENvbnN0YW50
cy4KLQotIyBDaGVja3MgaWYgdGhpcyBwbGF0Zm9ybSBjYW4gcGFzcyBlbXB0eSBlbnZpcm9ubWVu
dCB2YXJpYWJsZXMgdG8gY2hpbGQKLSMgcHJvY2Vzc2VzLiAgV2Ugc2V0IGFuIGVudiB2YXJpYWJs
ZSB0byBhbiBlbXB0eSBzdHJpbmcgYW5kIGludm9rZSBhIHB5dGhvbgotIyBzY3JpcHQgaW4gYSBz
dWJwcm9jZXNzIHRvIHByaW50IHdoZXRoZXIgdGhlIHZhcmlhYmxlIGlzIFNUSUxMIGluCi0jIG9z
LmVudmlyb24uICBXZSB0aGVuIHVzZSAnZXZhbCcgdG8gcGFyc2UgdGhlIGNoaWxkJ3Mgb3V0cHV0
IHNvIHRoYXQgYW4KLSMgZXhjZXB0aW9uIGlzIHRocm93biBpZiB0aGUgaW5wdXQgaXMgYW55dGhp
bmcgb3RoZXIgdGhhbiAnVHJ1ZScgbm9yICdGYWxzZScuCi1vcy5lbnZpcm9uWydFTVBUWV9WQVIn
XSA9ICcnCi1jaGlsZCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcygKLSAgICBbc3lzLmV4
ZWN1dGFibGUsICctYycsICdpbXBvcnQgb3M7IHByaW50KFwnRU1QVFlfVkFSXCcgaW4gb3MuZW52
aXJvbiknXSkKLUNBTl9QQVNTX0VNUFRZX0VOViA9IGV2YWwoY2hpbGQub3V0cHV0KQotCi0KLSMg
Q2hlY2sgaWYgdGhpcyBwbGF0Zm9ybSBjYW4gdW5zZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGlu
IGNoaWxkIHByb2Nlc3Nlcy4KLSMgV2Ugc2V0IGFuIGVudiB2YXJpYWJsZSB0byBhIG5vbi1lbXB0
eSBzdHJpbmcsIHVuc2V0IGl0LCBhbmQgaW52b2tlCi0jIGEgcHl0aG9uIHNjcmlwdCBpbiBhIHN1
YnByb2Nlc3MgdG8gcHJpbnQgd2hldGhlciB0aGUgdmFyaWFibGUKLSMgaXMgTk8gTE9OR0VSIGlu
IG9zLmVudmlyb24uCi0jIFdlIHVzZSAnZXZhbCcgdG8gcGFyc2UgdGhlIGNoaWxkJ3Mgb3V0cHV0
IHNvIHRoYXQgYW4gZXhjZXB0aW9uCi0jIGlzIHRocm93biBpZiB0aGUgaW5wdXQgaXMgbmVpdGhl
ciAnVHJ1ZScgbm9yICdGYWxzZScuCi1vcy5lbnZpcm9uWydVTlNFVF9WQVInXSA9ICdYJwotZGVs
IG9zLmVudmlyb25bJ1VOU0VUX1ZBUiddCi1jaGlsZCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJv
Y2VzcygKLSAgICBbc3lzLmV4ZWN1dGFibGUsICctYycsICdpbXBvcnQgb3M7IHByaW50KFwnVU5T
RVRfVkFSXCcgbm90IGluIG9zLmVudmlyb24pJ10pCi1DQU5fVU5TRVRfRU5WID0gZXZhbChjaGls
ZC5vdXRwdXQpCi0KLQotIyBDaGVja3MgaWYgd2Ugc2hvdWxkIHRlc3Qgd2l0aCBhbiBlbXB0eSBm
aWx0ZXIuIFRoaXMgZG9lc24ndAotIyBtYWtlIHNlbnNlIG9uIHBsYXRmb3JtcyB0aGF0IGNhbm5v
dCBwYXNzIGVtcHR5IGVudiB2YXJpYWJsZXMgKFdpbjMyKQotIyBhbmQgb24gcGxhdGZvcm1zIHRo
YXQgY2Fubm90IHVuc2V0IHZhcmlhYmxlcyAoc2luY2Ugd2UgY2Fubm90IHRlbGwKLSMgdGhlIGRp
ZmZlcmVuY2UgYmV0d2VlbiAiIiBhbmQgTlVMTCAtLSBCb3JsYW5kIGFuZCBTb2xhcmlzIDwgNS4x
MCkKLUNBTl9URVNUX0VNUFRZX0ZJTFRFUiA9IChDQU5fUEFTU19FTVBUWV9FTlYgYW5kIENBTl9V
TlNFVF9FTlYpCi0KLQotIyBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIHNwZWNpZnlpbmcg
dGhlIHRlc3QgZmlsdGVycy4KLUZJTFRFUl9FTlZfVkFSID0gJ0dURVNUX0ZJTFRFUicKLQotIyBU
aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0ZXN0IHNoYXJkaW5nLgotVE9UQUxfU0hBUkRT
X0VOVl9WQVIgPSAnR1RFU1RfVE9UQUxfU0hBUkRTJwotU0hBUkRfSU5ERVhfRU5WX1ZBUiA9ICdH
VEVTVF9TSEFSRF9JTkRFWCcKLVNIQVJEX1NUQVRVU19GSUxFX0VOVl9WQVIgPSAnR1RFU1RfU0hB
UkRfU1RBVFVTX0ZJTEUnCi0KLSMgVGhlIGNvbW1hbmQgbGluZSBmbGFnIGZvciBzcGVjaWZ5aW5n
IHRoZSB0ZXN0IGZpbHRlcnMuCi1GSUxURVJfRkxBRyA9ICdndGVzdF9maWx0ZXInCi0KLSMgVGhl
IGNvbW1hbmQgbGluZSBmbGFnIGZvciBpbmNsdWRpbmcgZGlzYWJsZWQgdGVzdHMuCi1BTFNPX1JV
Tl9ESVNBQkVEX1RFU1RTX0ZMQUcgPSAnZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMnCi0K
LSMgQ29tbWFuZCB0byBydW4gdGhlIGd0ZXN0X2ZpbHRlcl91bml0dGVzdF8gcHJvZ3JhbS4KLUNP
TU1BTkQgPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgnZ3Rlc3RfZmls
dGVyX3VuaXR0ZXN0XycpCi0KLSMgUmVnZXggZm9yIGRldGVybWluaW5nIHdoZXRoZXIgcGFyYW1l
dGVyaXplZCB0ZXN0cyBhcmUgZW5hYmxlZCBpbiB0aGUgYmluYXJ5LgotUEFSQU1fVEVTVF9SRUdF
WCA9IHJlLmNvbXBpbGUocicvUGFyYW1UZXN0JykKLQotIyBSZWdleCBmb3IgcGFyc2luZyB0ZXN0
IGNhc2UgbmFtZXMgZnJvbSBHb29nbGUgVGVzdCdzIG91dHB1dC4KLVRFU1RfQ0FTRV9SRUdFWCA9
IHJlLmNvbXBpbGUocideXFtcLStcXSBcZCsgdGVzdHM/IGZyb20gKFx3KygvXHcrKT8pJykKLQot
IyBSZWdleCBmb3IgcGFyc2luZyB0ZXN0IG5hbWVzIGZyb20gR29vZ2xlIFRlc3QncyBvdXRwdXQu
Ci1URVNUX1JFR0VYID0gcmUuY29tcGlsZShyJ15cW1xzKlJVTlxzKlxdLipcLihcdysoL1x3Kyk/
KScpCi0KLSMgVGhlIGNvbW1hbmQgbGluZSBmbGFnIHRvIHRlbGwgR29vZ2xlIFRlc3QgdG8gb3V0
cHV0IHRoZSBsaXN0IG9mIHRlc3RzIGl0Ci0jIHdpbGwgcnVuLgotTElTVF9URVNUU19GTEFHID0g
Jy0tZ3Rlc3RfbGlzdF90ZXN0cycKLQotIyBJbmRpY2F0ZXMgd2hldGhlciBHb29nbGUgVGVzdCBz
dXBwb3J0cyBkZWF0aCB0ZXN0cy4KLVNVUFBPUlRTX0RFQVRIX1RFU1RTID0gJ0hhc0RlYXRoVGVz
dCcgaW4gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKAotICAgIFtDT01NQU5ELCBMSVNUX1RF
U1RTX0ZMQUddKS5vdXRwdXQKLQotIyBGdWxsIG5hbWVzIG9mIGFsbCB0ZXN0cyBpbiBndGVzdF9m
aWx0ZXJfdW5pdHRlc3RzXy4KLVBBUkFNX1RFU1RTID0gWwotICAgICdTZXFQL1BhcmFtVGVzdC5U
ZXN0WC8wJywKLSAgICAnU2VxUC9QYXJhbVRlc3QuVGVzdFgvMScsCi0gICAgJ1NlcVAvUGFyYW1U
ZXN0LlRlc3RZLzAnLAotICAgICdTZXFQL1BhcmFtVGVzdC5UZXN0WS8xJywKLSAgICAnU2VxUS9Q
YXJhbVRlc3QuVGVzdFgvMCcsCi0gICAgJ1NlcVEvUGFyYW1UZXN0LlRlc3RYLzEnLAotICAgICdT
ZXFRL1BhcmFtVGVzdC5UZXN0WS8wJywKLSAgICAnU2VxUS9QYXJhbVRlc3QuVGVzdFkvMScsCi0g
ICAgXQotCi1ESVNBQkxFRF9URVNUUyA9IFsKLSAgICAnQmFyVGVzdC5ESVNBQkxFRF9UZXN0Rm91
cicsCi0gICAgJ0JhclRlc3QuRElTQUJMRURfVGVzdEZpdmUnLAotICAgICdCYXpUZXN0LkRJU0FC
TEVEX1Rlc3RDJywKLSAgICAnRElTQUJMRURfRm9vYmFyVGVzdC5UZXN0MScsCi0gICAgJ0RJU0FC
TEVEX0Zvb2JhclRlc3QuRElTQUJMRURfVGVzdDInLAotICAgICdESVNBQkxFRF9Gb29iYXJiYXpU
ZXN0LlRlc3RBJywKLSAgICBdCi0KLWlmIFNVUFBPUlRTX0RFQVRIX1RFU1RTOgotICBERUFUSF9U
RVNUUyA9IFsKLSAgICAnSGFzRGVhdGhUZXN0LlRlc3QxJywKLSAgICAnSGFzRGVhdGhUZXN0LlRl
c3QyJywKLSAgICBdCi1lbHNlOgotICBERUFUSF9URVNUUyA9IFtdCi0KLSMgQWxsIHRoZSBub24t
ZGlzYWJsZWQgdGVzdHMuCi1BQ1RJVkVfVEVTVFMgPSBbCi0gICAgJ0Zvb1Rlc3QuQWJjJywKLSAg
ICAnRm9vVGVzdC5YeXonLAotCi0gICAgJ0JhclRlc3QuVGVzdE9uZScsCi0gICAgJ0JhclRlc3Qu
VGVzdFR3bycsCi0gICAgJ0JhclRlc3QuVGVzdFRocmVlJywKLQotICAgICdCYXpUZXN0LlRlc3RP
bmUnLAotICAgICdCYXpUZXN0LlRlc3RBJywKLSAgICAnQmF6VGVzdC5UZXN0QicsCi0gICAgXSAr
IERFQVRIX1RFU1RTICsgUEFSQU1fVEVTVFMKLQotcGFyYW1fdGVzdHNfcHJlc2VudCA9IE5vbmUK
LQotIyBVdGlsaXRpZXMuCi0KLWVudmlyb24gPSBvcy5lbnZpcm9uLmNvcHkoKQotCi0KLWRlZiBT
ZXRFbnZWYXIoZW52X3ZhciwgdmFsdWUpOgotICAiIiJTZXRzIHRoZSBlbnYgdmFyaWFibGUgdG8g
J3ZhbHVlJzsgdW5zZXRzIGl0IHdoZW4gJ3ZhbHVlJyBpcyBOb25lLiIiIgotCi0gIGlmIHZhbHVl
IGlzIG5vdCBOb25lOgotICAgIGVudmlyb25bZW52X3Zhcl0gPSB2YWx1ZQotICBlbGlmIGVudl92
YXIgaW4gZW52aXJvbjoKLSAgICBkZWwgZW52aXJvbltlbnZfdmFyXQotCi0KLWRlZiBSdW5BbmRS
ZXR1cm5PdXRwdXQoYXJncyA9IE5vbmUpOgotICAiIiJSdW5zIHRoZSB0ZXN0IHByb2dyYW0gYW5k
IHJldHVybnMgaXRzIG91dHB1dC4iIiIKLQotICByZXR1cm4gZ3Rlc3RfdGVzdF91dGlscy5TdWJw
cm9jZXNzKFtDT01NQU5EXSArIChhcmdzIG9yIFtdKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbnY9ZW52aXJvbikub3V0cHV0Ci0KLQotZGVmIFJ1bkFuZEV4dHJhY3RU
ZXN0TGlzdChhcmdzID0gTm9uZSk6Ci0gICIiIlJ1bnMgdGhlIHRlc3QgcHJvZ3JhbSBhbmQgcmV0
dXJucyBpdHMgZXhpdCBjb2RlIGFuZCBhIGxpc3Qgb2YgdGVzdHMgcnVuLiIiIgotCi0gIHAgPSBn
dGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoW0NPTU1BTkRdICsgKGFyZ3Mgb3IgW10pLCBlbnY9
ZW52aXJvbikKLSAgdGVzdHNfcnVuID0gW10KLSAgdGVzdF9jYXNlID0gJycKLSAgdGVzdCA9ICcn
Ci0gIGZvciBsaW5lIGluIHAub3V0cHV0LnNwbGl0KCdcbicpOgotICAgIG1hdGNoID0gVEVTVF9D
QVNFX1JFR0VYLm1hdGNoKGxpbmUpCi0gICAgaWYgbWF0Y2ggaXMgbm90IE5vbmU6Ci0gICAgICB0
ZXN0X2Nhc2UgPSBtYXRjaC5ncm91cCgxKQotICAgIGVsc2U6Ci0gICAgICBtYXRjaCA9IFRFU1Rf
UkVHRVgubWF0Y2gobGluZSkKLSAgICAgIGlmIG1hdGNoIGlzIG5vdCBOb25lOgotICAgICAgICB0
ZXN0ID0gbWF0Y2guZ3JvdXAoMSkKLSAgICAgICAgdGVzdHNfcnVuLmFwcGVuZCh0ZXN0X2Nhc2Ug
KyAnLicgKyB0ZXN0KQotICByZXR1cm4gKHRlc3RzX3J1biwgcC5leGl0X2NvZGUpCi0KLQotZGVm
IEludm9rZVdpdGhNb2RpZmllZEVudihleHRyYV9lbnYsIGZ1bmN0aW9uLCAqYXJncywgKiprd2Fy
Z3MpOgotICAiIiJSdW5zIHRoZSBnaXZlbiBmdW5jdGlvbiBhbmQgYXJndW1lbnRzIGluIGEgbW9k
aWZpZWQgZW52aXJvbm1lbnQuIiIiCi0gIHRyeToKLSAgICBvcmlnaW5hbF9lbnYgPSBlbnZpcm9u
LmNvcHkoKQotICAgIGVudmlyb24udXBkYXRlKGV4dHJhX2VudikKLSAgICByZXR1cm4gZnVuY3Rp
b24oKmFyZ3MsICoqa3dhcmdzKQotICBmaW5hbGx5OgotICAgIGVudmlyb24uY2xlYXIoKQotICAg
IGVudmlyb24udXBkYXRlKG9yaWdpbmFsX2VudikKLQotCi1kZWYgUnVuV2l0aFNoYXJkaW5nKHRv
dGFsX3NoYXJkcywgc2hhcmRfaW5kZXgsIGNvbW1hbmQpOgotICAiIiJSdW5zIGEgdGVzdCBwcm9n
cmFtIHNoYXJkIGFuZCByZXR1cm5zIGV4aXQgY29kZSBhbmQgYSBsaXN0IG9mIHRlc3RzIHJ1bi4i
IiIKLQotICBleHRyYV9lbnYgPSB7U0hBUkRfSU5ERVhfRU5WX1ZBUjogc3RyKHNoYXJkX2luZGV4
KSwKLSAgICAgICAgICAgICAgIFRPVEFMX1NIQVJEU19FTlZfVkFSOiBzdHIodG90YWxfc2hhcmRz
KX0KLSAgcmV0dXJuIEludm9rZVdpdGhNb2RpZmllZEVudihleHRyYV9lbnYsIFJ1bkFuZEV4dHJh
Y3RUZXN0TGlzdCwgY29tbWFuZCkKLQotIyBUaGUgdW5pdCB0ZXN0LgotCi0KLWNsYXNzIEdUZXN0
RmlsdGVyVW5pdFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6Ci0gICIiIlRlc3RzIHRo
ZSBlbnYgdmFyaWFibGUgb3IgdGhlIGNvbW1hbmQgbGluZSBmbGFnIHRvIGZpbHRlciB0ZXN0cy4i
IiIKLQotICAjIFV0aWxpdGllcy4KLQotICBkZWYgQXNzZXJ0U2V0RXF1YWwoc2VsZiwgbGhzLCBy
aHMpOgotICAgICIiIkFzc2VydHMgdGhhdCB0d28gc2V0cyBhcmUgZXF1YWwuIiIiCi0KLSAgICBm
b3IgZWxlbSBpbiBsaHM6Ci0gICAgICBzZWxmLmFzc2VydF8oZWxlbSBpbiByaHMsICclcyBpbiAl
cycgJSAoZWxlbSwgcmhzKSkKLQotICAgIGZvciBlbGVtIGluIHJoczoKLSAgICAgIHNlbGYuYXNz
ZXJ0XyhlbGVtIGluIGxocywgJyVzIGluICVzJyAlIChlbGVtLCBsaHMpKQotCi0gIGRlZiBBc3Nl
cnRQYXJ0aXRpb25Jc1ZhbGlkKHNlbGYsIHNldF92YXIsIGxpc3Rfb2Zfc2V0cyk6Ci0gICAgIiIi
QXNzZXJ0cyB0aGF0IGxpc3Rfb2Zfc2V0cyBpcyBhIHZhbGlkIHBhcnRpdGlvbiBvZiBzZXRfdmFy
LiIiIgotCi0gICAgZnVsbF9wYXJ0aXRpb24gPSBbXQotICAgIGZvciBzbGljZV92YXIgaW4gbGlz
dF9vZl9zZXRzOgotICAgICAgZnVsbF9wYXJ0aXRpb24uZXh0ZW5kKHNsaWNlX3ZhcikKLSAgICBz
ZWxmLmFzc2VydEVxdWFsKGxlbihzZXRfdmFyKSwgbGVuKGZ1bGxfcGFydGl0aW9uKSkKLSAgICBz
ZWxmLmFzc2VydEVxdWFsKHNldChzZXRfdmFyKSwgc2V0KGZ1bGxfcGFydGl0aW9uKSkKLQotICBk
ZWYgQWRqdXN0Rm9yUGFyYW1ldGVyaXplZFRlc3RzKHNlbGYsIHRlc3RzX3RvX3J1bik6Ci0gICAg
IiIiQWRqdXN0IHRlc3RzX3RvX3J1biBpbiBjYXNlIHZhbHVlIHBhcmFtZXRlcml6ZWQgdGVzdHMg
YXJlIGRpc2FibGVkLiIiIgotCi0gICAgZ2xvYmFsIHBhcmFtX3Rlc3RzX3ByZXNlbnQKLSAgICBp
ZiBub3QgcGFyYW1fdGVzdHNfcHJlc2VudDoKLSAgICAgIHJldHVybiBsaXN0KHNldCh0ZXN0c190
b19ydW4pIC0gc2V0KFBBUkFNX1RFU1RTKSkKLSAgICBlbHNlOgotICAgICAgcmV0dXJuIHRlc3Rz
X3RvX3J1bgotCi0gIGRlZiBSdW5BbmRWZXJpZnkoc2VsZiwgZ3Rlc3RfZmlsdGVyLCB0ZXN0c190
b19ydW4pOgotICAgICIiIkNoZWNrcyB0aGF0IHRoZSBiaW5hcnkgcnVucyBjb3JyZWN0IHNldCBv
ZiB0ZXN0cyBmb3IgYSBnaXZlbiBmaWx0ZXIuIiIiCi0KLSAgICB0ZXN0c190b19ydW4gPSBzZWxm
LkFkanVzdEZvclBhcmFtZXRlcml6ZWRUZXN0cyh0ZXN0c190b19ydW4pCi0KLSAgICAjIEZpcnN0
LCB0ZXN0cyB1c2luZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCi0KLSAgICAjIFdpbmRvd3Mg
cmVtb3ZlcyBlbXB0eSB2YXJpYWJsZXMgZnJvbSB0aGUgZW52aXJvbm1lbnQgd2hlbiBwYXNzaW5n
IGl0Ci0gICAgIyB0byBhIG5ldyBwcm9jZXNzLiAgVGhpcyBtZWFucyBpdCBpcyBpbXBvc3NpYmxl
IHRvIHBhc3MgYW4gZW1wdHkgZmlsdGVyCi0gICAgIyBpbnRvIGEgcHJvY2VzcyB1c2luZyB0aGUg
ZW52aXJvbm1lbnQgdmFyaWFibGUuICBIb3dldmVyLCB3ZSBjYW4gc3RpbGwKLSAgICAjIHRlc3Qg
dGhlIGNhc2Ugd2hlbiB0aGUgdmFyaWFibGUgaXMgbm90IHN1cHBsaWVkIChpLmUuLCBndGVzdF9m
aWx0ZXIgaXMKLSAgICAjIE5vbmUpLgotICAgICMgcHlsaW50OiBkaXNhYmxlLW1zZz1DNjQwMwot
ICAgIGlmIENBTl9URVNUX0VNUFRZX0ZJTFRFUiBvciBndGVzdF9maWx0ZXIgIT0gJyc6Ci0gICAg
ICBTZXRFbnZWYXIoRklMVEVSX0VOVl9WQVIsIGd0ZXN0X2ZpbHRlcikKLSAgICAgIHRlc3RzX3J1
biA9IFJ1bkFuZEV4dHJhY3RUZXN0TGlzdCgpWzBdCi0gICAgICBTZXRFbnZWYXIoRklMVEVSX0VO
Vl9WQVIsIE5vbmUpCi0gICAgICBzZWxmLkFzc2VydFNldEVxdWFsKHRlc3RzX3J1biwgdGVzdHNf
dG9fcnVuKQotICAgICMgcHlsaW50OiBlbmFibGUtbXNnPUM2NDAzCi0KLSAgICAjIE5leHQsIHRl
c3RzIHVzaW5nIHRoZSBjb21tYW5kIGxpbmUgZmxhZy4KLQotICAgIGlmIGd0ZXN0X2ZpbHRlciBp
cyBOb25lOgotICAgICAgYXJncyA9IFtdCi0gICAgZWxzZToKLSAgICAgIGFyZ3MgPSBbJy0tJXM9
JXMnICUgKEZJTFRFUl9GTEFHLCBndGVzdF9maWx0ZXIpXQotCi0gICAgdGVzdHNfcnVuID0gUnVu
QW5kRXh0cmFjdFRlc3RMaXN0KGFyZ3MpWzBdCi0gICAgc2VsZi5Bc3NlcnRTZXRFcXVhbCh0ZXN0
c19ydW4sIHRlc3RzX3RvX3J1bikKLQotICBkZWYgUnVuQW5kVmVyaWZ5V2l0aFNoYXJkaW5nKHNl
bGYsIGd0ZXN0X2ZpbHRlciwgdG90YWxfc2hhcmRzLCB0ZXN0c190b19ydW4sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJncz1Ob25lLCBjaGVja19leGl0XzA9RmFsc2UpOgotICAg
ICIiIkNoZWNrcyB0aGF0IGJpbmFyeSBydW5zIGNvcnJlY3QgdGVzdHMgZm9yIHRoZSBnaXZlbiBm
aWx0ZXIgYW5kIHNoYXJkLgotCi0gICAgUnVucyBhbGwgc2hhcmRzIG9mIGd0ZXN0X2ZpbHRlcl91
bml0dGVzdF8gd2l0aCB0aGUgZ2l2ZW4gZmlsdGVyLCBhbmQKLSAgICB2ZXJpZmllcyB0aGF0IHRo
ZSByaWdodCBzZXQgb2YgdGVzdHMgd2VyZSBydW4uIFRoZSB1bmlvbiBvZiB0ZXN0cyBydW4KLSAg
ICBvbiBlYWNoIHNoYXJkIHNob3VsZCBiZSBpZGVudGljYWwgdG8gdGVzdHNfdG9fcnVuLCB3aXRo
b3V0IGR1cGxpY2F0ZXMuCi0KLSAgICBBcmdzOgotICAgICAgZ3Rlc3RfZmlsdGVyOiBBIGZpbHRl
ciB0byBhcHBseSB0byB0aGUgdGVzdHMuCi0gICAgICB0b3RhbF9zaGFyZHM6IEEgdG90YWwgbnVt
YmVyIG9mIHNoYXJkcyB0byBzcGxpdCB0ZXN0IHJ1biBpbnRvLgotICAgICAgdGVzdHNfdG9fcnVu
OiBBIHNldCBvZiB0ZXN0cyBleHBlY3RlZCB0byBydW4uCi0gICAgICBhcmdzICAgOiAgICAgIEFy
Z3VtZW50cyB0byBwYXNzIHRvIHRoZSB0byB0aGUgdGVzdCBiaW5hcnkuCi0gICAgICBjaGVja19l
eGl0XzA6IFdoZW4gc2V0IHRvIGEgdHJ1ZSB2YWx1ZSwgbWFrZSBzdXJlIHRoYXQgYWxsIHNoYXJk
cwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC4KLSAgICAiIiIKLQotICAgIHRlc3RzX3Rv
X3J1biA9IHNlbGYuQWRqdXN0Rm9yUGFyYW1ldGVyaXplZFRlc3RzKHRlc3RzX3RvX3J1bikKLQot
ICAgICMgV2luZG93cyByZW1vdmVzIGVtcHR5IHZhcmlhYmxlcyBmcm9tIHRoZSBlbnZpcm9ubWVu
dCB3aGVuIHBhc3NpbmcgaXQKLSAgICAjIHRvIGEgbmV3IHByb2Nlc3MuICBUaGlzIG1lYW5zIGl0
IGlzIGltcG9zc2libGUgdG8gcGFzcyBhbiBlbXB0eSBmaWx0ZXIKLSAgICAjIGludG8gYSBwcm9j
ZXNzIHVzaW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gIEhvd2V2ZXIsIHdlIGNhbiBzdGls
bAotICAgICMgdGVzdCB0aGUgY2FzZSB3aGVuIHRoZSB2YXJpYWJsZSBpcyBub3Qgc3VwcGxpZWQg
KGkuZS4sIGd0ZXN0X2ZpbHRlciBpcwotICAgICMgTm9uZSkuCi0gICAgIyBweWxpbnQ6IGRpc2Fi
bGUtbXNnPUM2NDAzCi0gICAgaWYgQ0FOX1RFU1RfRU1QVFlfRklMVEVSIG9yIGd0ZXN0X2ZpbHRl
ciAhPSAnJzoKLSAgICAgIFNldEVudlZhcihGSUxURVJfRU5WX1ZBUiwgZ3Rlc3RfZmlsdGVyKQot
ICAgICAgcGFydGl0aW9uID0gW10KLSAgICAgIGZvciBpIGluIHJhbmdlKDAsIHRvdGFsX3NoYXJk
cyk6Ci0gICAgICAgICh0ZXN0c19ydW4sIGV4aXRfY29kZSkgPSBSdW5XaXRoU2hhcmRpbmcodG90
YWxfc2hhcmRzLCBpLCBhcmdzKQotICAgICAgICBpZiBjaGVja19leGl0XzA6Ci0gICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgwLCBleGl0X2NvZGUpCi0gICAgICAgIHBhcnRpdGlvbi5hcHBlbmQo
dGVzdHNfcnVuKQotCi0gICAgICBzZWxmLkFzc2VydFBhcnRpdGlvbklzVmFsaWQodGVzdHNfdG9f
cnVuLCBwYXJ0aXRpb24pCi0gICAgICBTZXRFbnZWYXIoRklMVEVSX0VOVl9WQVIsIE5vbmUpCi0g
ICAgIyBweWxpbnQ6IGVuYWJsZS1tc2c9QzY0MDMKLQotICBkZWYgUnVuQW5kVmVyaWZ5QWxsb3dp
bmdEaXNhYmxlZChzZWxmLCBndGVzdF9maWx0ZXIsIHRlc3RzX3RvX3J1bik6Ci0gICAgIiIiQ2hl
Y2tzIHRoYXQgdGhlIGJpbmFyeSBydW5zIGNvcnJlY3Qgc2V0IG9mIHRlc3RzIGZvciB0aGUgZ2l2
ZW4gZmlsdGVyLgotCi0gICAgUnVucyBndGVzdF9maWx0ZXJfdW5pdHRlc3RfIHdpdGggdGhlIGdp
dmVuIGZpbHRlciwgYW5kIGVuYWJsZXMKLSAgICBkaXNhYmxlZCB0ZXN0cy4gVmVyaWZpZXMgdGhh
dCB0aGUgcmlnaHQgc2V0IG9mIHRlc3RzIHdlcmUgcnVuLgotCi0gICAgQXJnczoKLSAgICAgIGd0
ZXN0X2ZpbHRlcjogQSBmaWx0ZXIgdG8gYXBwbHkgdG8gdGhlIHRlc3RzLgotICAgICAgdGVzdHNf
dG9fcnVuOiBBIHNldCBvZiB0ZXN0cyBleHBlY3RlZCB0byBydW4uCi0gICAgIiIiCi0KLSAgICB0
ZXN0c190b19ydW4gPSBzZWxmLkFkanVzdEZvclBhcmFtZXRlcml6ZWRUZXN0cyh0ZXN0c190b19y
dW4pCi0KLSAgICAjIENvbnN0cnVjdCB0aGUgY29tbWFuZCBsaW5lLgotICAgIGFyZ3MgPSBbJy0t
JXMnICUgQUxTT19SVU5fRElTQUJFRF9URVNUU19GTEFHXQotICAgIGlmIGd0ZXN0X2ZpbHRlciBp
cyBub3QgTm9uZToKLSAgICAgIGFyZ3MuYXBwZW5kKCctLSVzPSVzJyAlIChGSUxURVJfRkxBRywg
Z3Rlc3RfZmlsdGVyKSkKLQotICAgIHRlc3RzX3J1biA9IFJ1bkFuZEV4dHJhY3RUZXN0TGlzdChh
cmdzKVswXQotICAgIHNlbGYuQXNzZXJ0U2V0RXF1YWwodGVzdHNfcnVuLCB0ZXN0c190b19ydW4p
Ci0KLSAgZGVmIHNldFVwKHNlbGYpOgotICAgICIiIlNldHMgdXAgdGVzdCBjYXNlLgotCi0gICAg
RGV0ZXJtaW5lcyB3aGV0aGVyIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIGVuYWJsZWQg
aW4gdGhlIGJpbmFyeSBhbmQKLSAgICBzZXRzIHRoZSBmbGFncyBhY2NvcmRpbmdseS4KLSAgICAi
IiIKLQotICAgIGdsb2JhbCBwYXJhbV90ZXN0c19wcmVzZW50Ci0gICAgaWYgcGFyYW1fdGVzdHNf
cHJlc2VudCBpcyBOb25lOgotICAgICAgcGFyYW1fdGVzdHNfcHJlc2VudCA9IFBBUkFNX1RFU1Rf
UkVHRVguc2VhcmNoKAotICAgICAgICAgIFJ1bkFuZFJldHVybk91dHB1dCgpKSBpcyBub3QgTm9u
ZQotCi0gIGRlZiB0ZXN0RGVmYXVsdEJlaGF2aW9yKHNlbGYpOgotICAgICIiIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBub3Qgc3BlY2lmeWluZyB0aGUgZmlsdGVyLiIiIgotCi0gICAgc2VsZi5SdW5B
bmRWZXJpZnkoTm9uZSwgQUNUSVZFX1RFU1RTKQotCi0gIGRlZiB0ZXN0RGVmYXVsdEJlaGF2aW9y
V2l0aFNoYXJkcyhzZWxmKToKLSAgICAiIiJUZXN0cyB0aGUgYmVoYXZpb3Igd2l0aG91dCB0aGUg
ZmlsdGVyLCB3aXRoIHNoYXJkaW5nIGVuYWJsZWQuIiIiCi0KLSAgICBzZWxmLlJ1bkFuZFZlcmlm
eVdpdGhTaGFyZGluZyhOb25lLCAxLCBBQ1RJVkVfVEVTVFMpCi0gICAgc2VsZi5SdW5BbmRWZXJp
ZnlXaXRoU2hhcmRpbmcoTm9uZSwgMiwgQUNUSVZFX1RFU1RTKQotICAgIHNlbGYuUnVuQW5kVmVy
aWZ5V2l0aFNoYXJkaW5nKE5vbmUsIGxlbihBQ1RJVkVfVEVTVFMpIC0gMSwgQUNUSVZFX1RFU1RT
KQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5V2l0aFNoYXJkaW5nKE5vbmUsIGxlbihBQ1RJVkVfVEVT
VFMpLCBBQ1RJVkVfVEVTVFMpCi0gICAgc2VsZi5SdW5BbmRWZXJpZnlXaXRoU2hhcmRpbmcoTm9u
ZSwgbGVuKEFDVElWRV9URVNUUykgKyAxLCBBQ1RJVkVfVEVTVFMpCi0KLSAgZGVmIHRlc3RFbXB0
eUZpbHRlcihzZWxmKToKLSAgICAiIiJUZXN0cyBhbiBlbXB0eSBmaWx0ZXIuIiIiCi0KLSAgICBz
ZWxmLlJ1bkFuZFZlcmlmeSgnJywgW10pCi0gICAgc2VsZi5SdW5BbmRWZXJpZnlXaXRoU2hhcmRp
bmcoJycsIDEsIFtdKQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5V2l0aFNoYXJkaW5nKCcnLCAyLCBb
XSkKLQotICBkZWYgdGVzdEJhZEZpbHRlcihzZWxmKToKLSAgICAiIiJUZXN0cyBhIGZpbHRlciB0
aGF0IG1hdGNoZXMgbm90aGluZy4iIiIKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KCdCYWRGaWx0
ZXInLCBbXSkKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeUFsbG93aW5nRGlzYWJsZWQoJ0JhZEZpbHRl
cicsIFtdKQotCi0gIGRlZiB0ZXN0RnVsbE5hbWUoc2VsZik6Ci0gICAgIiIiVGVzdHMgZmlsdGVy
aW5nIGJ5IGZ1bGwgbmFtZS4iIiIKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KCdGb29UZXN0Llh5
eicsIFsnRm9vVGVzdC5YeXonXSkKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeUFsbG93aW5nRGlzYWJs
ZWQoJ0Zvb1Rlc3QuWHl6JywgWydGb29UZXN0Llh5eiddKQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5
V2l0aFNoYXJkaW5nKCdGb29UZXN0Llh5eicsIDUsIFsnRm9vVGVzdC5YeXonXSkKLQotICBkZWYg
dGVzdFVuaXZlcnNhbEZpbHRlcnMoc2VsZik6Ci0gICAgIiIiVGVzdHMgZmlsdGVycyB0aGF0IG1h
dGNoIGV2ZXJ5dGhpbmcuIiIiCi0KLSAgICBzZWxmLlJ1bkFuZFZlcmlmeSgnKicsIEFDVElWRV9U
RVNUUykKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeSgnKi4qJywgQUNUSVZFX1RFU1RTKQotICAgIHNl
bGYuUnVuQW5kVmVyaWZ5V2l0aFNoYXJkaW5nKCcqLionLCBsZW4oQUNUSVZFX1RFU1RTKSAtIDMs
IEFDVElWRV9URVNUUykKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeUFsbG93aW5nRGlzYWJsZWQoJyon
LCBBQ1RJVkVfVEVTVFMgKyBESVNBQkxFRF9URVNUUykKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeUFs
bG93aW5nRGlzYWJsZWQoJyouKicsIEFDVElWRV9URVNUUyArIERJU0FCTEVEX1RFU1RTKQotCi0g
IGRlZiB0ZXN0RmlsdGVyQnlUZXN0Q2FzZShzZWxmKToKLSAgICAiIiJUZXN0cyBmaWx0ZXJpbmcg
YnkgdGVzdCBjYXNlIG5hbWUuIiIiCi0KLSAgICBzZWxmLlJ1bkFuZFZlcmlmeSgnRm9vVGVzdC4q
JywgWydGb29UZXN0LkFiYycsICdGb29UZXN0Llh5eiddKQotCi0gICAgQkFaX1RFU1RTID0gWydC
YXpUZXN0LlRlc3RPbmUnLCAnQmF6VGVzdC5UZXN0QScsICdCYXpUZXN0LlRlc3RCJ10KLSAgICBz
ZWxmLlJ1bkFuZFZlcmlmeSgnQmF6VGVzdC4qJywgQkFaX1RFU1RTKQotICAgIHNlbGYuUnVuQW5k
VmVyaWZ5QWxsb3dpbmdEaXNhYmxlZCgnQmF6VGVzdC4qJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQkFaX1RFU1RTICsgWydCYXpUZXN0LkRJU0FCTEVEX1Rlc3RDJ10p
Ci0KLSAgZGVmIHRlc3RGaWx0ZXJCeVRlc3Qoc2VsZik6Ci0gICAgIiIiVGVzdHMgZmlsdGVyaW5n
IGJ5IHRlc3QgbmFtZS4iIiIKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KCcqLlRlc3RPbmUnLCBb
J0JhclRlc3QuVGVzdE9uZScsICdCYXpUZXN0LlRlc3RPbmUnXSkKLQotICBkZWYgdGVzdEZpbHRl
ckRpc2FibGVkVGVzdHMoc2VsZik6Ci0gICAgIiIiU2VsZWN0IG9ubHkgdGhlIGRpc2FibGVkIHRl
c3RzIHRvIHJ1bi4iIiIKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KCdESVNBQkxFRF9Gb29iYXJU
ZXN0LlRlc3QxJywgW10pCi0gICAgc2VsZi5SdW5BbmRWZXJpZnlBbGxvd2luZ0Rpc2FibGVkKCdE
SVNBQkxFRF9Gb29iYXJUZXN0LlRlc3QxJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWydESVNBQkxFRF9Gb29iYXJUZXN0LlRlc3QxJ10pCi0KLSAgICBzZWxmLlJ1bkFu
ZFZlcmlmeSgnKkRJU0FCTEVEXyonLCBbXSkKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeUFsbG93aW5n
RGlzYWJsZWQoJypESVNBQkxFRF8qJywgRElTQUJMRURfVEVTVFMpCi0KLSAgICBzZWxmLlJ1bkFu
ZFZlcmlmeSgnKi5ESVNBQkxFRF8qJywgW10pCi0gICAgc2VsZi5SdW5BbmRWZXJpZnlBbGxvd2lu
Z0Rpc2FibGVkKCcqLkRJU0FCTEVEXyonLCBbCi0gICAgICAgICdCYXJUZXN0LkRJU0FCTEVEX1Rl
c3RGb3VyJywKLSAgICAgICAgJ0JhclRlc3QuRElTQUJMRURfVGVzdEZpdmUnLAotICAgICAgICAn
QmF6VGVzdC5ESVNBQkxFRF9UZXN0QycsCi0gICAgICAgICdESVNBQkxFRF9Gb29iYXJUZXN0LkRJ
U0FCTEVEX1Rlc3QyJywKLSAgICAgICAgXSkKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KCdESVNB
QkxFRF8qJywgW10pCi0gICAgc2VsZi5SdW5BbmRWZXJpZnlBbGxvd2luZ0Rpc2FibGVkKCdESVNB
QkxFRF8qJywgWwotICAgICAgICAnRElTQUJMRURfRm9vYmFyVGVzdC5UZXN0MScsCi0gICAgICAg
ICdESVNBQkxFRF9Gb29iYXJUZXN0LkRJU0FCTEVEX1Rlc3QyJywKLSAgICAgICAgJ0RJU0FCTEVE
X0Zvb2JhcmJhelRlc3QuVGVzdEEnLAotICAgICAgICBdKQotCi0gIGRlZiB0ZXN0V2lsZGNhcmRJ
blRlc3RDYXNlTmFtZShzZWxmKToKLSAgICAiIiJUZXN0cyB1c2luZyB3aWxkY2FyZCBpbiB0aGUg
dGVzdCBjYXNlIG5hbWUuIiIiCi0KLSAgICBzZWxmLlJ1bkFuZFZlcmlmeSgnKmEqLionLCBbCi0g
ICAgICAgICdCYXJUZXN0LlRlc3RPbmUnLAotICAgICAgICAnQmFyVGVzdC5UZXN0VHdvJywKLSAg
ICAgICAgJ0JhclRlc3QuVGVzdFRocmVlJywKLQotICAgICAgICAnQmF6VGVzdC5UZXN0T25lJywK
LSAgICAgICAgJ0JhelRlc3QuVGVzdEEnLAotICAgICAgICAnQmF6VGVzdC5UZXN0QicsIF0gKyBE
RUFUSF9URVNUUyArIFBBUkFNX1RFU1RTKQotCi0gIGRlZiB0ZXN0V2lsZGNhcmRJblRlc3ROYW1l
KHNlbGYpOgotICAgICIiIlRlc3RzIHVzaW5nIHdpbGRjYXJkIGluIHRoZSB0ZXN0IG5hbWUuIiIi
Ci0KLSAgICBzZWxmLlJ1bkFuZFZlcmlmeSgnKi4qQSonLCBbJ0Zvb1Rlc3QuQWJjJywgJ0JhelRl
c3QuVGVzdEEnXSkKLQotICBkZWYgdGVzdEZpbHRlcldpdGhvdXREb3Qoc2VsZik6Ci0gICAgIiIi
VGVzdHMgYSBmaWx0ZXIgdGhhdCBoYXMgbm8gJy4nIGluIGl0LiIiIgotCi0gICAgc2VsZi5SdW5B
bmRWZXJpZnkoJyp6KicsIFsKLSAgICAgICAgJ0Zvb1Rlc3QuWHl6JywKLQotICAgICAgICAnQmF6
VGVzdC5UZXN0T25lJywKLSAgICAgICAgJ0JhelRlc3QuVGVzdEEnLAotICAgICAgICAnQmF6VGVz
dC5UZXN0QicsCi0gICAgICAgIF0pCi0KLSAgZGVmIHRlc3RUd29QYXR0ZXJucyhzZWxmKToKLSAg
ICAiIiJUZXN0cyBmaWx0ZXJzIHRoYXQgY29uc2lzdCBvZiB0d28gcGF0dGVybnMuIiIiCi0KLSAg
ICBzZWxmLlJ1bkFuZFZlcmlmeSgnRm9vKi4qOipBKicsIFsKLSAgICAgICAgJ0Zvb1Rlc3QuQWJj
JywKLSAgICAgICAgJ0Zvb1Rlc3QuWHl6JywKLQotICAgICAgICAnQmF6VGVzdC5UZXN0QScsCi0g
ICAgICAgIF0pCi0KLSAgICAjIEFuIGVtcHR5IHBhdHRlcm4gKyBhIG5vbi1lbXB0eSBvbmUKLSAg
ICBzZWxmLlJ1bkFuZFZlcmlmeSgnOipBKicsIFsnRm9vVGVzdC5BYmMnLCAnQmF6VGVzdC5UZXN0
QSddKQotCi0gIGRlZiB0ZXN0VGhyZWVQYXR0ZXJucyhzZWxmKToKLSAgICAiIiJUZXN0cyBmaWx0
ZXJzIHRoYXQgY29uc2lzdCBvZiB0aHJlZSBwYXR0ZXJucy4iIiIKLQotICAgIHNlbGYuUnVuQW5k
VmVyaWZ5KCcqb28qOipBKjoqT25lJywgWwotICAgICAgICAnRm9vVGVzdC5BYmMnLAotICAgICAg
ICAnRm9vVGVzdC5YeXonLAotCi0gICAgICAgICdCYXJUZXN0LlRlc3RPbmUnLAotCi0gICAgICAg
ICdCYXpUZXN0LlRlc3RPbmUnLAotICAgICAgICAnQmF6VGVzdC5UZXN0QScsCi0gICAgICAgIF0p
Ci0KLSAgICAjIFRoZSAybmQgcGF0dGVybiBpcyBlbXB0eS4KLSAgICBzZWxmLlJ1bkFuZFZlcmlm
eSgnKm9vKjo6Kk9uZScsIFsKLSAgICAgICAgJ0Zvb1Rlc3QuQWJjJywKLSAgICAgICAgJ0Zvb1Rl
c3QuWHl6JywKLQotICAgICAgICAnQmFyVGVzdC5UZXN0T25lJywKLQotICAgICAgICAnQmF6VGVz
dC5UZXN0T25lJywKLSAgICAgICAgXSkKLQotICAgICMgVGhlIGxhc3QgMiBwYXR0ZXJucyBhcmUg
ZW1wdHkuCi0gICAgc2VsZi5SdW5BbmRWZXJpZnkoJypvbyo6OicsIFsKLSAgICAgICAgJ0Zvb1Rl
c3QuQWJjJywKLSAgICAgICAgJ0Zvb1Rlc3QuWHl6JywKLSAgICAgICAgXSkKLQotICBkZWYgdGVz
dE5lZ2F0aXZlRmlsdGVycyhzZWxmKToKLSAgICBzZWxmLlJ1bkFuZFZlcmlmeSgnKi1CYXpUZXN0
LlRlc3RPbmUnLCBbCi0gICAgICAgICdGb29UZXN0LkFiYycsCi0gICAgICAgICdGb29UZXN0Llh5
eicsCi0KLSAgICAgICAgJ0JhclRlc3QuVGVzdE9uZScsCi0gICAgICAgICdCYXJUZXN0LlRlc3RU
d28nLAotICAgICAgICAnQmFyVGVzdC5UZXN0VGhyZWUnLAotCi0gICAgICAgICdCYXpUZXN0LlRl
c3RBJywKLSAgICAgICAgJ0JhelRlc3QuVGVzdEInLAotICAgICAgICBdICsgREVBVEhfVEVTVFMg
KyBQQVJBTV9URVNUUykKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KCcqLUZvb1Rlc3QuQWJjOkJh
elRlc3QuKicsIFsKLSAgICAgICAgJ0Zvb1Rlc3QuWHl6JywKLQotICAgICAgICAnQmFyVGVzdC5U
ZXN0T25lJywKLSAgICAgICAgJ0JhclRlc3QuVGVzdFR3bycsCi0gICAgICAgICdCYXJUZXN0LlRl
c3RUaHJlZScsCi0gICAgICAgIF0gKyBERUFUSF9URVNUUyArIFBBUkFNX1RFU1RTKQotCi0gICAg
c2VsZi5SdW5BbmRWZXJpZnkoJ0JhclRlc3QuKi1CYXJUZXN0LlRlc3RPbmUnLCBbCi0gICAgICAg
ICdCYXJUZXN0LlRlc3RUd28nLAotICAgICAgICAnQmFyVGVzdC5UZXN0VGhyZWUnLAotICAgICAg
ICBdKQotCi0gICAgIyBUZXN0cyB3aXRob3V0IGxlYWRpbmcgJyonLgotICAgIHNlbGYuUnVuQW5k
VmVyaWZ5KCctRm9vVGVzdC5BYmM6Rm9vVGVzdC5YeXo6QmF6VGVzdC4qJywgWwotICAgICAgICAn
QmFyVGVzdC5UZXN0T25lJywKLSAgICAgICAgJ0JhclRlc3QuVGVzdFR3bycsCi0gICAgICAgICdC
YXJUZXN0LlRlc3RUaHJlZScsCi0gICAgICAgIF0gKyBERUFUSF9URVNUUyArIFBBUkFNX1RFU1RT
KQotCi0gICAgIyBWYWx1ZSBwYXJhbWV0ZXJpemVkIHRlc3RzLgotICAgIHNlbGYuUnVuQW5kVmVy
aWZ5KCcqLyonLCBQQVJBTV9URVNUUykKLQotICAgICMgVmFsdWUgcGFyYW1ldGVyaXplZCB0ZXN0
cyBmaWx0ZXJpbmcgYnkgdGhlIHNlcXVlbmNlIG5hbWUuCi0gICAgc2VsZi5SdW5BbmRWZXJpZnko
J1NlcVAvKicsIFsKLSAgICAgICAgJ1NlcVAvUGFyYW1UZXN0LlRlc3RYLzAnLAotICAgICAgICAn
U2VxUC9QYXJhbVRlc3QuVGVzdFgvMScsCi0gICAgICAgICdTZXFQL1BhcmFtVGVzdC5UZXN0WS8w
JywKLSAgICAgICAgJ1NlcVAvUGFyYW1UZXN0LlRlc3RZLzEnLAotICAgICAgICBdKQotCi0gICAg
IyBWYWx1ZSBwYXJhbWV0ZXJpemVkIHRlc3RzIGZpbHRlcmluZyBieSB0aGUgdGVzdCBuYW1lLgot
ICAgIHNlbGYuUnVuQW5kVmVyaWZ5KCcqLzAnLCBbCi0gICAgICAgICdTZXFQL1BhcmFtVGVzdC5U
ZXN0WC8wJywKLSAgICAgICAgJ1NlcVAvUGFyYW1UZXN0LlRlc3RZLzAnLAotICAgICAgICAnU2Vx
US9QYXJhbVRlc3QuVGVzdFgvMCcsCi0gICAgICAgICdTZXFRL1BhcmFtVGVzdC5UZXN0WS8wJywK
LSAgICAgICAgXSkKLQotICBkZWYgdGVzdEZsYWdPdmVycmlkZXNFbnZWYXIoc2VsZik6Ci0gICAg
IiIiVGVzdHMgdGhhdCB0aGUgZmlsdGVyIGZsYWcgb3ZlcnJpZGVzIHRoZSBmaWx0ZXJpbmcgZW52
LiB2YXJpYWJsZS4iIiIKLQotICAgIFNldEVudlZhcihGSUxURVJfRU5WX1ZBUiwgJ0ZvbyonKQot
ICAgIGFyZ3MgPSBbJy0tJXM9JXMnICUgKEZJTFRFUl9GTEFHLCAnKk9uZScpXQotICAgIHRlc3Rz
X3J1biA9IFJ1bkFuZEV4dHJhY3RUZXN0TGlzdChhcmdzKVswXQotICAgIFNldEVudlZhcihGSUxU
RVJfRU5WX1ZBUiwgTm9uZSkKLQotICAgIHNlbGYuQXNzZXJ0U2V0RXF1YWwodGVzdHNfcnVuLCBb
J0JhclRlc3QuVGVzdE9uZScsICdCYXpUZXN0LlRlc3RPbmUnXSkKLQotICBkZWYgdGVzdFNoYXJk
U3RhdHVzRmlsZUlzQ3JlYXRlZChzZWxmKToKLSAgICAiIiJUZXN0cyB0aGF0IHRoZSBzaGFyZCBm
aWxlIGlzIGNyZWF0ZWQgaWYgc3BlY2lmaWVkIGluIHRoZSBlbnZpcm9ubWVudC4iIiIKLQotICAg
IHNoYXJkX3N0YXR1c19maWxlID0gb3MucGF0aC5qb2luKGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVt
cERpcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFyZF9zdGF0
dXNfZmlsZScpCi0gICAgc2VsZi5hc3NlcnRfKG5vdCBvcy5wYXRoLmV4aXN0cyhzaGFyZF9zdGF0
dXNfZmlsZSkpCi0KLSAgICBleHRyYV9lbnYgPSB7U0hBUkRfU1RBVFVTX0ZJTEVfRU5WX1ZBUjog
c2hhcmRfc3RhdHVzX2ZpbGV9Ci0gICAgdHJ5OgotICAgICAgSW52b2tlV2l0aE1vZGlmaWVkRW52
KGV4dHJhX2VudiwgUnVuQW5kUmV0dXJuT3V0cHV0KQotICAgIGZpbmFsbHk6Ci0gICAgICBzZWxm
LmFzc2VydF8ob3MucGF0aC5leGlzdHMoc2hhcmRfc3RhdHVzX2ZpbGUpKQotICAgICAgb3MucmVt
b3ZlKHNoYXJkX3N0YXR1c19maWxlKQotCi0gIGRlZiB0ZXN0U2hhcmRTdGF0dXNGaWxlSXNDcmVh
dGVkV2l0aExpc3RUZXN0cyhzZWxmKToKLSAgICAiIiJUZXN0cyB0aGF0IHRoZSBzaGFyZCBmaWxl
IGlzIGNyZWF0ZWQgd2l0aCB0aGUgImxpc3RfdGVzdHMiIGZsYWcuIiIiCi0KLSAgICBzaGFyZF9z
dGF0dXNfZmlsZSA9IG9zLnBhdGguam9pbihndGVzdF90ZXN0X3V0aWxzLkdldFRlbXBEaXIoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhcmRfc3RhdHVzX2ZpbGUy
JykKLSAgICBzZWxmLmFzc2VydF8obm90IG9zLnBhdGguZXhpc3RzKHNoYXJkX3N0YXR1c19maWxl
KSkKLQotICAgIGV4dHJhX2VudiA9IHtTSEFSRF9TVEFUVVNfRklMRV9FTlZfVkFSOiBzaGFyZF9z
dGF0dXNfZmlsZX0KLSAgICB0cnk6Ci0gICAgICBvdXRwdXQgPSBJbnZva2VXaXRoTW9kaWZpZWRF
bnYoZXh0cmFfZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bkFu
ZFJldHVybk91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTElT
VF9URVNUU19GTEFHXSkKLSAgICBmaW5hbGx5OgotICAgICAgIyBUaGlzIGFzc2VydGlvbiBlbnN1
cmVzIHRoYXQgR29vZ2xlIFRlc3QgZW51bWVyYXRlZCB0aGUgdGVzdHMgYXMKLSAgICAgICMgb3Bw
b3NlZCB0byBydW5uaW5nIHRoZW0uCi0gICAgICBzZWxmLmFzc2VydF8oJ1s9PT09PT09PT09XScg
bm90IGluIG91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBvdXRwdXQgZHVy
aW5nIHRlc3QgZW51bWVyYXRpb24uXG4nCi0gICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBlbnN1
cmUgdGhhdCBMSVNUX1RFU1RTX0ZMQUcgaXMgYXNzaWduZWQgdGhlXG4nCi0gICAgICAgICAgICAg
ICAgICAgJ2NvcnJlY3QgZmxhZyB2YWx1ZSBmb3IgbGlzdGluZyBHb29nbGUgVGVzdCB0ZXN0cy4n
KQotCi0gICAgICBzZWxmLmFzc2VydF8ob3MucGF0aC5leGlzdHMoc2hhcmRfc3RhdHVzX2ZpbGUp
KQotICAgICAgb3MucmVtb3ZlKHNoYXJkX3N0YXR1c19maWxlKQotCi0gIGlmIFNVUFBPUlRTX0RF
QVRIX1RFU1RTOgotICAgIGRlZiB0ZXN0U2hhcmRpbmdXb3Jrc1dpdGhEZWF0aFRlc3RzKHNlbGYp
OgotICAgICAgIiIiVGVzdHMgaW50ZWdyYXRpb24gd2l0aCBkZWF0aCB0ZXN0cyBhbmQgc2hhcmRp
bmcuIiIiCi0KLSAgICAgIGd0ZXN0X2ZpbHRlciA9ICdIYXNEZWF0aFRlc3QuKjpTZXFQLyonCi0g
ICAgICBleHBlY3RlZF90ZXN0cyA9IFsKLSAgICAgICAgICAnSGFzRGVhdGhUZXN0LlRlc3QxJywK
LSAgICAgICAgICAnSGFzRGVhdGhUZXN0LlRlc3QyJywKLQotICAgICAgICAgICdTZXFQL1BhcmFt
VGVzdC5UZXN0WC8wJywKLSAgICAgICAgICAnU2VxUC9QYXJhbVRlc3QuVGVzdFgvMScsCi0gICAg
ICAgICAgJ1NlcVAvUGFyYW1UZXN0LlRlc3RZLzAnLAotICAgICAgICAgICdTZXFQL1BhcmFtVGVz
dC5UZXN0WS8xJywKLSAgICAgICAgICBdCi0KLSAgICAgIGZvciBmbGFnIGluIFsnLS1ndGVzdF9k
ZWF0aF90ZXN0X3N0eWxlPXRocmVhZHNhZmUnLAotICAgICAgICAgICAgICAgICAgICctLWd0ZXN0
X2RlYXRoX3Rlc3Rfc3R5bGU9ZmFzdCddOgotICAgICAgICBzZWxmLlJ1bkFuZFZlcmlmeVdpdGhT
aGFyZGluZyhndGVzdF9maWx0ZXIsIDMsIGV4cGVjdGVkX3Rlc3RzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja19leGl0XzA9VHJ1ZSwgYXJncz1bZmxhZ10pCi0g
ICAgICAgIHNlbGYuUnVuQW5kVmVyaWZ5V2l0aFNoYXJkaW5nKGd0ZXN0X2ZpbHRlciwgNSwgZXhw
ZWN0ZWRfdGVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
X2V4aXRfMD1UcnVlLCBhcmdzPVtmbGFnXSkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
LSAgZ3Rlc3RfdGVzdF91dGlscy5NYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9n
b29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfZmlsdGVyX3VuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0
eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfZmlsdGVyX3VuaXR0ZXN0Xy5jYwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTc0YTdhMzg2ZWE5MzQ3MDMyN2RjODI4NjQyYjhlNWVlMWI0ZDg4
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2ZpbHRlcl91bml0dGVzdF8uY2MKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDUsIEdvb2dsZSBJbmMu
Ci0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0v
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdh
bikKLQotLy8gVW5pdCB0ZXN0IGZvciBHb29nbGUgVGVzdCB0ZXN0IGZpbHRlcnMuCi0vLwotLy8g
QSB1c2VyIGNhbiBzcGVjaWZ5IHdoaWNoIHRlc3QocykgaW4gYSBHb29nbGUgVGVzdCBwcm9ncmFt
IHRvIHJ1biB2aWEKLS8vIGVpdGhlciB0aGUgR1RFU1RfRklMVEVSIGVudmlyb25tZW50IHZhcmlh
YmxlIG9yIHRoZSAtLWd0ZXN0X2ZpbHRlcgotLy8gZmxhZy4gIFRoaXMgaXMgdXNlZCBmb3IgdGVz
dGluZyBzdWNoIGZ1bmN0aW9uYWxpdHkuCi0vLwotLy8gVGhlIHByb2dyYW0gd2lsbCBiZSBpbnZv
a2VkIGZyb20gYSBQeXRob24gdW5pdCB0ZXN0LiAgRG9uJ3QgcnVuIGl0Ci0vLyBkaXJlY3RseS4K
LQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLS8vIFRlc3QgY2Fz
ZSBGb29UZXN0LgotCi1jbGFzcyBGb29UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotfTsK
LQotVEVTVF9GKEZvb1Rlc3QsIEFiYykgewotfQotCi1URVNUX0YoRm9vVGVzdCwgWHl6KSB7Ci0g
IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOwotfQotCi0vLyBUZXN0IGNhc2UgQmFyVGVz
dC4KLQotVEVTVChCYXJUZXN0LCBUZXN0T25lKSB7Ci19Ci0KLVRFU1QoQmFyVGVzdCwgVGVzdFR3
bykgewotfQotCi1URVNUKEJhclRlc3QsIFRlc3RUaHJlZSkgewotfQotCi1URVNUKEJhclRlc3Qs
IERJU0FCTEVEX1Rlc3RGb3VyKSB7Ci0gIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOwot
fQotCi1URVNUKEJhclRlc3QsIERJU0FCTEVEX1Rlc3RGaXZlKSB7Ci0gIEZBSUwoKSA8PCAiRXhw
ZWN0ZWQgZmFpbHVyZS4iOwotfQotCi0vLyBUZXN0IGNhc2UgQmF6VGVzdC4KLQotVEVTVChCYXpU
ZXN0LCBUZXN0T25lKSB7Ci0gIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOwotfQotCi1U
RVNUKEJhelRlc3QsIFRlc3RBKSB7Ci19Ci0KLVRFU1QoQmF6VGVzdCwgVGVzdEIpIHsKLX0KLQot
VEVTVChCYXpUZXN0LCBESVNBQkxFRF9UZXN0QykgewotICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZh
aWx1cmUuIjsKLX0KLQotLy8gVGVzdCBjYXNlIEhhc0RlYXRoVGVzdAotCi1URVNUKEhhc0RlYXRo
VGVzdCwgVGVzdDEpIHsKLSAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChleGl0KDEpLCAiLioi
KTsKLX0KLQotLy8gV2UgbmVlZCBhdCBsZWFzdCB0d28gZGVhdGggdGVzdHMgdG8gbWFrZSBzdXJl
IHRoYXQgdGhlIGFsbCBkZWF0aCB0ZXN0cwotLy8gYXJlbid0IG9uIHRoZSBmaXJzdCBzaGFyZC4K
LVRFU1QoSGFzRGVhdGhUZXN0LCBUZXN0MikgewotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVE
KGV4aXQoMSksICIuKiIpOwotfQotCi0vLyBUZXN0IGNhc2UgRm9vYmFyVGVzdAotCi1URVNUKERJ
U0FCTEVEX0Zvb2JhclRlc3QsIFRlc3QxKSB7Ci0gIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVy
ZS4iOwotfQotCi1URVNUKERJU0FCTEVEX0Zvb2JhclRlc3QsIERJU0FCTEVEX1Rlc3QyKSB7Ci0g
IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOwotfQotCi0vLyBUZXN0IGNhc2UgRm9vYmFy
YmF6VGVzdAotCi1URVNUKERJU0FCTEVEX0Zvb2JhcmJhelRlc3QsIFRlc3RBKSB7Ci0gIEZBSUwo
KSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOwotfQotCi1jbGFzcyBQYXJhbVRlc3QgOiBwdWJsaWMg
dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHsKLX07Ci0KLVRFU1RfUChQYXJhbVRlc3QsIFRl
c3RYKSB7Ci19Ci0KLVRFU1RfUChQYXJhbVRlc3QsIFRlc3RZKSB7Ci19Ci0KLUlOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKFNlcVAsIFBhcmFtVGVzdCwgdGVzdGluZzo6VmFsdWVzKDEsIDIpKTsKLUlO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNlcVEsIFBhcmFtVGVzdCwgdGVzdGluZzo6VmFsdWVzKDUs
IDYpKTsKLQotfSAgLy8gbmFtZXNwYWNlCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn
dikgewotICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKLQotICByZXR1
cm4gUlVOX0FMTF9URVNUUygpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2ds
ZXRlc3QvdGVzdC9ndGVzdF9oZWxwX3Rlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC90ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDkzYzgzOGQ5ZTQ3MmZiZGUyZTEyNWYyMGQ3M2MxN2VhZWU5NTBmNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC90ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBA
Ci0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJUZXN0cyB0
aGUgLS1oZWxwIGZsYWcgb2YgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yay4KLQotU1lOT1BT
SVMKLSAgICAgICBndGVzdF9oZWxwX3Rlc3QucHkgLS1idWlsZF9kaXI9QlVJTEQvRElSCi0gICAg
ICAgICAjIHdoZXJlIEJVSUxEL0RJUiBjb250YWlucyB0aGUgYnVpbHQgZ3Rlc3RfaGVscF90ZXN0
XyBmaWxlLgotICAgICAgIGd0ZXN0X2hlbHBfdGVzdC5weQotIiIiCi0KLV9fYXV0aG9yX18gPSAn
d2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbiknCi0KLWltcG9ydCBvcwotaW1wb3J0IHJlCi1p
bXBvcnQgZ3Rlc3RfdGVzdF91dGlscwotCi0KLUlTX0xJTlVYID0gb3MubmFtZSA9PSAncG9zaXgn
IGFuZCBvcy51bmFtZSgpWzBdID09ICdMaW51eCcKLUlTX1dJTkRPV1MgPSBvcy5uYW1lID09ICdu
dCcKLQotUFJPR1JBTV9QQVRIID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBh
dGgoJ2d0ZXN0X2hlbHBfdGVzdF8nKQotRkxBR19QUkVGSVggPSAnLS1ndGVzdF8nCi1ERUFUSF9U
RVNUX1NUWUxFX0ZMQUcgPSBGTEFHX1BSRUZJWCArICdkZWF0aF90ZXN0X3N0eWxlJwotU1RSRUFN
X1JFU1VMVF9UT19GTEFHID0gRkxBR19QUkVGSVggKyAnc3RyZWFtX3Jlc3VsdF90bycKLVVOS05P
V05fRkxBRyA9IEZMQUdfUFJFRklYICsgJ3Vua25vd25fZmxhZ19mb3JfdGVzdGluZycKLUxJU1Rf
VEVTVFNfRkxBRyA9IEZMQUdfUFJFRklYICsgJ2xpc3RfdGVzdHMnCi1JTkNPUlJFQ1RfRkxBR19W
QVJJQU5UUyA9IFtyZS5zdWIoJ14tLScsICctJywgTElTVF9URVNUU19GTEFHKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlLnN1YignXi0tJywgJy8nLCBMSVNUX1RFU1RTX0ZMQUcpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmUuc3ViKCdfJywgJy0nLCBMSVNUX1RFU1RTX0ZM
QUcpXQotSU5URVJOQUxfRkxBR19GT1JfVEVTVElORyA9IEZMQUdfUFJFRklYICsgJ2ludGVybmFs
X2ZsYWdfZm9yX3Rlc3RpbmcnCi0KLVNVUFBPUlRTX0RFQVRIX1RFU1RTID0gIkRlYXRoVGVzdCIg
aW4gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKAotICAgIFtQUk9HUkFNX1BBVEgsIExJU1Rf
VEVTVFNfRkxBR10pLm91dHB1dAotCi0jIFRoZSBoZWxwIG1lc3NhZ2UgbXVzdCBtYXRjaCB0aGlz
IHJlZ2V4LgotSEVMUF9SRUdFWCA9IHJlLmNvbXBpbGUoCi0gICAgRkxBR19QUkVGSVggKyByJ2xp
c3RfdGVzdHMuKicgKwotICAgIEZMQUdfUFJFRklYICsgcidmaWx0ZXI9LionICsKLSAgICBGTEFH
X1BSRUZJWCArIHInYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMuKicgKwotICAgIEZMQUdfUFJFRklY
ICsgcidyZXBlYXQ9LionICsKLSAgICBGTEFHX1BSRUZJWCArIHInc2h1ZmZsZS4qJyArCi0gICAg
RkxBR19QUkVGSVggKyByJ3JhbmRvbV9zZWVkPS4qJyArCi0gICAgRkxBR19QUkVGSVggKyByJ2Nv
bG9yPS4qJyArCi0gICAgRkxBR19QUkVGSVggKyByJ3ByaW50X3RpbWUuKicgKwotICAgIEZMQUdf
UFJFRklYICsgcidvdXRwdXQ9LionICsKLSAgICBGTEFHX1BSRUZJWCArIHInYnJlYWtfb25fZmFp
bHVyZS4qJyArCi0gICAgRkxBR19QUkVGSVggKyByJ3Rocm93X29uX2ZhaWx1cmUuKicgKwotICAg
IEZMQUdfUFJFRklYICsgcidjYXRjaF9leGNlcHRpb25zPTAuKicsCi0gICAgcmUuRE9UQUxMKQot
Ci0KLWRlZiBSdW5XaXRoRmxhZyhmbGFnKToKLSAgIiIiUnVucyBndGVzdF9oZWxwX3Rlc3RfIHdp
dGggdGhlIGdpdmVuIGZsYWcuCi0KLSAgUmV0dXJuczoKLSAgICB0aGUgZXhpdCBjb2RlIGFuZCB0
aGUgdGV4dCBvdXRwdXQgYXMgYSB0dXBsZS4KLSAgQXJnczoKLSAgICBmbGFnOiB0aGUgY29tbWFu
ZC1saW5lIGZsYWcgdG8gcGFzcyB0byBndGVzdF9oZWxwX3Rlc3RfLCBvciBOb25lLgotICAiIiIK
LQotICBpZiBmbGFnIGlzIE5vbmU6Ci0gICAgY29tbWFuZCA9IFtQUk9HUkFNX1BBVEhdCi0gIGVs
c2U6Ci0gICAgY29tbWFuZCA9IFtQUk9HUkFNX1BBVEgsIGZsYWddCi0gIGNoaWxkID0gZ3Rlc3Rf
dGVzdF91dGlscy5TdWJwcm9jZXNzKGNvbW1hbmQpCi0gIHJldHVybiBjaGlsZC5leGl0X2NvZGUs
IGNoaWxkLm91dHB1dAotCi0KLWNsYXNzIEdUZXN0SGVscFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5U
ZXN0Q2FzZSk6Ci0gICIiIlRlc3RzIHRoZSAtLWhlbHAgZmxhZyBhbmQgaXRzIGVxdWl2YWxlbnQg
Zm9ybXMuIiIiCi0KLSAgZGVmIFRlc3RIZWxwRmxhZyhzZWxmLCBmbGFnKToKLSAgICAiIiJWZXJp
ZmllcyBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gaGVscCBmbGFnIGlzIHNwZWNpZmllZC4KLQotICAg
IFRoZSByaWdodCBtZXNzYWdlIG11c3QgYmUgcHJpbnRlZCBhbmQgdGhlIHRlc3RzIG11c3QKLSAg
ICBza2lwcGVkIHdoZW4gdGhlIGdpdmVuIGZsYWcgaXMgc3BlY2lmaWVkLgotCi0gICAgQXJnczoK
LSAgICAgIGZsYWc6ICBBIGZsYWcgdG8gcGFzcyB0byB0aGUgYmluYXJ5IG9yIE5vbmUuCi0gICAg
IiIiCi0KLSAgICBleGl0X2NvZGUsIG91dHB1dCA9IFJ1bldpdGhGbGFnKGZsYWcpCi0gICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoMCwgZXhpdF9jb2RlKQotICAgIHNlbGYuYXNzZXJ0XyhIRUxQX1JFR0VY
LnNlYXJjaChvdXRwdXQpLCBvdXRwdXQpCi0KLSAgICBpZiBJU19MSU5VWDoKLSAgICAgIHNlbGYu
YXNzZXJ0XyhTVFJFQU1fUkVTVUxUX1RPX0ZMQUcgaW4gb3V0cHV0LCBvdXRwdXQpCi0gICAgZWxz
ZToKLSAgICAgIHNlbGYuYXNzZXJ0XyhTVFJFQU1fUkVTVUxUX1RPX0ZMQUcgbm90IGluIG91dHB1
dCwgb3V0cHV0KQotCi0gICAgaWYgU1VQUE9SVFNfREVBVEhfVEVTVFMgYW5kIG5vdCBJU19XSU5E
T1dTOgotICAgICAgc2VsZi5hc3NlcnRfKERFQVRIX1RFU1RfU1RZTEVfRkxBRyBpbiBvdXRwdXQs
IG91dHB1dCkKLSAgICBlbHNlOgotICAgICAgc2VsZi5hc3NlcnRfKERFQVRIX1RFU1RfU1RZTEVf
RkxBRyBub3QgaW4gb3V0cHV0LCBvdXRwdXQpCi0KLSAgZGVmIFRlc3ROb25IZWxwRmxhZyhzZWxm
LCBmbGFnKToKLSAgICAiIiJWZXJpZmllcyBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gbm8gaGVscCBm
bGFnIGlzIHNwZWNpZmllZC4KLQotICAgIFZlcmlmaWVzIHRoYXQgd2hlbiBubyBoZWxwIGZsYWcg
aXMgc3BlY2lmaWVkLCB0aGUgdGVzdHMgYXJlIHJ1bgotICAgIGFuZCB0aGUgaGVscCBtZXNzYWdl
IGlzIG5vdCBwcmludGVkLgotCi0gICAgQXJnczoKLSAgICAgIGZsYWc6ICBBIGZsYWcgdG8gcGFz
cyB0byB0aGUgYmluYXJ5IG9yIE5vbmUuCi0gICAgIiIiCi0KLSAgICBleGl0X2NvZGUsIG91dHB1
dCA9IFJ1bldpdGhGbGFnKGZsYWcpCi0gICAgc2VsZi5hc3NlcnRfKGV4aXRfY29kZSAhPSAwKQot
ICAgIHNlbGYuYXNzZXJ0Xyhub3QgSEVMUF9SRUdFWC5zZWFyY2gob3V0cHV0KSwgb3V0cHV0KQot
Ci0gIGRlZiB0ZXN0UHJpbnRzSGVscFdpdGhGdWxsRmxhZyhzZWxmKToKLSAgICBzZWxmLlRlc3RI
ZWxwRmxhZygnLS1oZWxwJykKLQotICBkZWYgdGVzdFByaW50c0hlbHBXaXRoU2hvcnRGbGFnKHNl
bGYpOgotICAgIHNlbGYuVGVzdEhlbHBGbGFnKCctaCcpCi0KLSAgZGVmIHRlc3RQcmludHNIZWxw
V2l0aFF1ZXN0aW9uRmxhZyhzZWxmKToKLSAgICBzZWxmLlRlc3RIZWxwRmxhZygnLT8nKQotCi0g
IGRlZiB0ZXN0UHJpbnRzSGVscFdpdGhXaW5kb3dzU3R5bGVRdWVzdGlvbkZsYWcoc2VsZik6Ci0g
ICAgc2VsZi5UZXN0SGVscEZsYWcoJy8/JykKLQotICBkZWYgdGVzdFByaW50c0hlbHBXaXRoVW5y
ZWNvZ25pemVkR29vZ2xlVGVzdEZsYWcoc2VsZik6Ci0gICAgc2VsZi5UZXN0SGVscEZsYWcoVU5L
Tk9XTl9GTEFHKQotCi0gIGRlZiB0ZXN0UHJpbnRzSGVscFdpdGhJbmNvcnJlY3RGbGFnU3R5bGUo
c2VsZik6Ci0gICAgZm9yIGluY29ycmVjdF9mbGFnIGluIElOQ09SUkVDVF9GTEFHX1ZBUklBTlRT
OgotICAgICAgc2VsZi5UZXN0SGVscEZsYWcoaW5jb3JyZWN0X2ZsYWcpCi0KLSAgZGVmIHRlc3RS
dW5zVGVzdHNXaXRob3V0SGVscEZsYWcoc2VsZik6Ci0gICAgIiIiVmVyaWZpZXMgdGhhdCB3aGVu
IG5vIGhlbHAgZmxhZyBpcyBzcGVjaWZpZWQsIHRoZSB0ZXN0cyBhcmUgcnVuCi0gICAgYW5kIHRo
ZSBoZWxwIG1lc3NhZ2UgaXMgbm90IHByaW50ZWQuIiIiCi0KLSAgICBzZWxmLlRlc3ROb25IZWxw
RmxhZyhOb25lKQotCi0gIGRlZiB0ZXN0UnVuc1Rlc3RzV2l0aEd0ZXN0SW50ZXJuYWxGbGFnKHNl
bGYpOgotICAgICIiIlZlcmlmaWVzIHRoYXQgdGhlIHRlc3RzIGFyZSBydW4gYW5kIG5vIGhlbHAg
bWVzc2FnZSBpcyBwcmludGVkIHdoZW4KLSAgICBhIGZsYWcgc3RhcnRpbmcgd2l0aCBHb29nbGUg
VGVzdCBwcmVmaXggYW5kICdpbnRlcm5hbF8nIGlzIHN1cHBsaWVkLiIiIgotCi0gICAgc2VsZi5U
ZXN0Tm9uSGVscEZsYWcoSU5URVJOQUxfRkxBR19GT1JfVEVTVElORykKLQotCi1pZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgotICBndGVzdF90ZXN0X3V0aWxzLk1haW4oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9oZWxwX3Rlc3RfLmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9oZWxwX3Rlc3RfLmNjCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMWY3OGMyNDQxYmU2Njg4MWY4ZWRmNTliZjdhYzQ5ZDQ3
YjE1OTYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfaGVscF90ZXN0Xy5jYworKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgot
Ly8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
Ly8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4p
Ci0KLS8vIFRoaXMgcHJvZ3JhbSBpcyBtZWFudCB0byBiZSBydW4gYnkgZ3Rlc3RfaGVscF90ZXN0
LnB5LiAgRG8gbm90IHJ1bgotLy8gaXQgZGlyZWN0bHkuCi0KLSNpbmNsdWRlICJndGVzdC9ndGVz
dC5oIgotCi0vLyBXaGVuIGEgaGVscCBmbGFnIGlzIHNwZWNpZmllZCwgdGhpcyBwcm9ncmFtIHNo
b3VsZCBza2lwIHRoZSB0ZXN0cwotLy8gYW5kIGV4aXQgd2l0aCAwOyBvdGhlcndpc2UgdGhlIGZv
bGxvd2luZyB0ZXN0IHdpbGwgYmUgZXhlY3V0ZWQsCi0vLyBjYXVzaW5nIHRoaXMgcHJvZ3JhbSB0
byBleGl0IHdpdGggYSBub24temVybyBjb2RlLgotVEVTVChIZWxwRmxhZ1Rlc3QsIFNob3VsZE5v
dEJlUnVuKSB7Ci0gIEFTU0VSVF9UUlVFKGZhbHNlKSA8PCAiVGVzdHMgc2hvdWxkbid0IGJlIHJ1
biB3aGVuIC0taGVscCBpcyBzcGVjaWZpZWQuIjsKLX0KLQotI2lmIEdURVNUX0hBU19ERUFUSF9U
RVNUCi1URVNUKERlYXRoVGVzdCwgVXNlZEJ5UHl0aG9uU2NyaXB0VG9EZXRlY3RTdXBwb3J0Rm9y
RGVhdGhUZXN0c0luVGhpc0JpbmFyeSkge30KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9saXN0X3Rlc3RzX3VuaXR0ZXN0LnB5IGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9saXN0X3Rlc3RzX3VuaXR0ZXN0LnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMmQyZmQxYjFjNWQ1ZTAxYzE3NDY3NDBm
ZTk2ODQ3MDM1YWI0ZGFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfbGlzdF90ZXN0c191
bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIwNyArMCwwIEBACi0jIS91c3IvYmluL2Vu
diBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJVbml0IHRlc3QgZm9yIEdvb2dsZSBU
ZXN0J3MgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcuCi0KLUEgdXNlciBjYW4gYXNrIEdvb2dsZSBU
ZXN0IHRvIGxpc3QgYWxsIHRlc3RzIGJ5IHNwZWNpZnlpbmcgdGhlCi0tLWd0ZXN0X2xpc3RfdGVz
dHMgZmxhZy4gIFRoaXMgc2NyaXB0IHRlc3RzIHN1Y2ggZnVuY3Rpb25hbGl0eQotYnkgaW52b2tp
bmcgZ3Rlc3RfbGlzdF90ZXN0c191bml0dGVzdF8gKGEgcHJvZ3JhbSB3cml0dGVuIHdpdGgKLUdv
b2dsZSBUZXN0KSB0aGUgY29tbWFuZCBsaW5lIGZsYWdzLgotIiIiCi0KLV9fYXV0aG9yX18gPSAn
cGhhbm5hQGdvb2dsZS5jb20gKFBhdHJpY2sgSGFubmEpJwotCi1pbXBvcnQgZ3Rlc3RfdGVzdF91
dGlscwotaW1wb3J0IHJlCi0KLQotIyBDb25zdGFudHMuCi0KLSMgVGhlIGNvbW1hbmQgbGluZSBm
bGFnIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbGlzdGluZyBhbGwgdGVzdHMuCi1MSVNUX1RFU1RT
X0ZMQUcgPSAnZ3Rlc3RfbGlzdF90ZXN0cycKLQotIyBQYXRoIHRvIHRoZSBndGVzdF9saXN0X3Rl
c3RzX3VuaXR0ZXN0XyBwcm9ncmFtLgotRVhFX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRl
c3RFeGVjdXRhYmxlUGF0aCgnZ3Rlc3RfbGlzdF90ZXN0c191bml0dGVzdF8nKQotCi0jIFRoZSBl
eHBlY3RlZCBvdXRwdXQgd2hlbiBydW5uaW5nIGd0ZXN0X2xpc3RfdGVzdHNfdW5pdHRlc3RfIHdp
dGgKLSMgLS1ndGVzdF9saXN0X3Rlc3RzCi1FWFBFQ1RFRF9PVVRQVVRfTk9fRklMVEVSX1JFID0g
cmUuY29tcGlsZShyIiIiRm9vRGVhdGhUZXN0XC4KLSAgVGVzdDEKLUZvb1wuCi0gIEJhcjEKLSAg
QmFyMgotICBESVNBQkxFRF9CYXIzCi1BYmNcLgotICBYeXoKLSAgRGVmCi1Gb29CYXJcLgotICBC
YXoKLUZvb1Rlc3RcLgotICBUZXN0MQotICBESVNBQkxFRF9UZXN0MgotICBUZXN0MwotVHlwZWRU
ZXN0LzBcLiAgIyBUeXBlUGFyYW0gPSAoVmVyeUxvezI0NX18Y2xhc3MgVmVyeUxvezIzOX0pXC5c
LlwuCi0gIFRlc3RBCi0gIFRlc3RCCi1UeXBlZFRlc3QvMVwuICAjIFR5cGVQYXJhbSA9IGludFxz
KlwqKCBfX3B0cjY0KT8KLSAgVGVzdEEKLSAgVGVzdEIKLVR5cGVkVGVzdC8yXC4gICMgVHlwZVBh
cmFtID0gLipNeUFycmF5PGJvb2wsXHMqNDI+Ci0gIFRlc3RBCi0gIFRlc3RCCi1NeS9UeXBlUGFy
YW1UZXN0LzBcLiAgIyBUeXBlUGFyYW0gPSAoVmVyeUxvezI0NX18Y2xhc3MgVmVyeUxvezIzOX0p
XC5cLlwuCi0gIFRlc3RBCi0gIFRlc3RCCi1NeS9UeXBlUGFyYW1UZXN0LzFcLiAgIyBUeXBlUGFy
YW0gPSBpbnRccypcKiggX19wdHI2NCk/Ci0gIFRlc3RBCi0gIFRlc3RCCi1NeS9UeXBlUGFyYW1U
ZXN0LzJcLiAgIyBUeXBlUGFyYW0gPSAuKk15QXJyYXk8Ym9vbCxccyo0Mj4KLSAgVGVzdEEKLSAg
VGVzdEIKLU15SW5zdGFudGlhdGlvbi9WYWx1ZVBhcmFtVGVzdFwuCi0gIFRlc3RBLzAgICMgR2V0
UGFyYW1cKFwpID0gb25lIGxpbmUKLSAgVGVzdEEvMSAgIyBHZXRQYXJhbVwoXCkgPSB0d29cXG5s
aW5lcwotICBUZXN0QS8yICAjIEdldFBhcmFtXChcKSA9IGEgdmVyeVxcbmxvezI0MX1cLlwuXC4K
LSAgVGVzdEIvMCAgIyBHZXRQYXJhbVwoXCkgPSBvbmUgbGluZQotICBUZXN0Qi8xICAjIEdldFBh
cmFtXChcKSA9IHR3b1xcbmxpbmVzCi0gIFRlc3RCLzIgICMgR2V0UGFyYW1cKFwpID0gYSB2ZXJ5
XFxubG97MjQxfVwuXC5cLgotIiIiKQotCi0jIFRoZSBleHBlY3RlZCBvdXRwdXQgd2hlbiBydW5u
aW5nIGd0ZXN0X2xpc3RfdGVzdHNfdW5pdHRlc3RfIHdpdGgKLSMgLS1ndGVzdF9saXN0X3Rlc3Rz
IGFuZCAtLWd0ZXN0X2ZpbHRlcj1Gb28qLgotRVhQRUNURURfT1VUUFVUX0ZJTFRFUl9GT09fUkUg
PSByZS5jb21waWxlKHIiIiJGb29EZWF0aFRlc3RcLgotICBUZXN0MQotRm9vXC4KLSAgQmFyMQot
ICBCYXIyCi0gIERJU0FCTEVEX0JhcjMKLUZvb0JhclwuCi0gIEJhegotRm9vVGVzdFwuCi0gIFRl
c3QxCi0gIERJU0FCTEVEX1Rlc3QyCi0gIFRlc3QzCi0iIiIpCi0KLSMgVXRpbGl0aWVzLgotCi0K
LWRlZiBSdW4oYXJncyk6Ci0gICIiIlJ1bnMgZ3Rlc3RfbGlzdF90ZXN0c191bml0dGVzdF8gYW5k
IHJldHVybnMgdGhlIGxpc3Qgb2YgdGVzdHMgcHJpbnRlZC4iIiIKLQotICByZXR1cm4gZ3Rlc3Rf
dGVzdF91dGlscy5TdWJwcm9jZXNzKFtFWEVfUEFUSF0gKyBhcmdzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVfc3RkZXJyPUZhbHNlKS5vdXRwdXQKLQotCi0j
IFRoZSB1bml0IHRlc3QuCi0KLWNsYXNzIEdUZXN0TGlzdFRlc3RzVW5pdFRlc3QoZ3Rlc3RfdGVz
dF91dGlscy5UZXN0Q2FzZSk6Ci0gICIiIlRlc3RzIHVzaW5nIHRoZSAtLWd0ZXN0X2xpc3RfdGVz
dHMgZmxhZyB0byBsaXN0IGFsbCB0ZXN0cy4iIiIKLQotICBkZWYgUnVuQW5kVmVyaWZ5KHNlbGYs
IGZsYWdfdmFsdWUsIGV4cGVjdGVkX291dHB1dF9yZSwgb3RoZXJfZmxhZyk6Ci0gICAgIiIiUnVu
cyBndGVzdF9saXN0X3Rlc3RzX3VuaXR0ZXN0XyBhbmQgdmVyaWZpZXMgdGhhdCBpdCBwcmludHMK
LSAgICB0aGUgY29ycmVjdCB0ZXN0cy4KLQotICAgIEFyZ3M6Ci0gICAgICBmbGFnX3ZhbHVlOiAg
ICAgICAgIHZhbHVlIG9mIHRoZSAtLWd0ZXN0X2xpc3RfdGVzdHMgZmxhZzsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgTm9uZSBpZiB0aGUgZmxhZyBzaG91bGQgbm90IGJlIHByZXNlbnQuCi0g
ICAgICBleHBlY3RlZF9vdXRwdXRfcmU6IHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG1hdGNoZXMg
dGhlIGV4cGVjdGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCBhZnRlciBydW5u
aW5nIGNvbW1hbmQ7Ci0gICAgICBvdGhlcl9mbGFnOiAgICAgICAgIGEgZGlmZmVyZW50IGZsYWcg
dG8gYmUgcGFzc2VkIHRvIGNvbW1hbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYWxvbmcg
d2l0aCBndGVzdF9saXN0X3Rlc3RzOwotICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lIGlm
IHRoZSBmbGFnIHNob3VsZCBub3QgYmUgcHJlc2VudC4KLSAgICAiIiIKLQotICAgIGlmIGZsYWdf
dmFsdWUgaXMgTm9uZToKLSAgICAgIGZsYWcgPSAnJwotICAgICAgZmxhZ19leHByZXNzaW9uID0g
J25vdCBzZXQnCi0gICAgZWxpZiBmbGFnX3ZhbHVlID09ICcwJzoKLSAgICAgIGZsYWcgPSAnLS0l
cz0wJyAlIExJU1RfVEVTVFNfRkxBRwotICAgICAgZmxhZ19leHByZXNzaW9uID0gJzAnCi0gICAg
ZWxzZToKLSAgICAgIGZsYWcgPSAnLS0lcycgJSBMSVNUX1RFU1RTX0ZMQUcKLSAgICAgIGZsYWdf
ZXhwcmVzc2lvbiA9ICcxJwotCi0gICAgYXJncyA9IFtmbGFnXQotCi0gICAgaWYgb3RoZXJfZmxh
ZyBpcyBub3QgTm9uZToKLSAgICAgIGFyZ3MgKz0gW290aGVyX2ZsYWddCi0KLSAgICBvdXRwdXQg
PSBSdW4oYXJncykKLQotICAgIGlmIGV4cGVjdGVkX291dHB1dF9yZToKLSAgICAgIHNlbGYuYXNz
ZXJ0XygKLSAgICAgICAgICBleHBlY3RlZF9vdXRwdXRfcmUubWF0Y2gob3V0cHV0KSwKLSAgICAg
ICAgICAoJ3doZW4gJXMgaXMgJXMsIHRoZSBvdXRwdXQgb2YgIiVzIiBpcyAiJXMiLFxuJwotICAg
ICAgICAgICAnd2hpY2ggZG9lcyBub3QgbWF0Y2ggcmVnZXggIiVzIicgJQotICAgICAgICAgICAo
TElTVF9URVNUU19GTEFHLCBmbGFnX2V4cHJlc3Npb24sICcgJy5qb2luKGFyZ3MpLCBvdXRwdXQs
Ci0gICAgICAgICAgICBleHBlY3RlZF9vdXRwdXRfcmUucGF0dGVybikpKQotICAgIGVsc2U6Ci0g
ICAgICBzZWxmLmFzc2VydF8oCi0gICAgICAgICAgbm90IEVYUEVDVEVEX09VVFBVVF9OT19GSUxU
RVJfUkUubWF0Y2gob3V0cHV0KSwKLSAgICAgICAgICAoJ3doZW4gJXMgaXMgJXMsIHRoZSBvdXRw
dXQgb2YgIiVzIiBpcyAiJXMiJyUKLSAgICAgICAgICAgKExJU1RfVEVTVFNfRkxBRywgZmxhZ19l
eHByZXNzaW9uLCAnICcuam9pbihhcmdzKSwgb3V0cHV0KSkpCi0KLSAgZGVmIHRlc3REZWZhdWx0
QmVoYXZpb3Ioc2VsZik6Ci0gICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0
IG1vZGUuIiIiCi0KLSAgICBzZWxmLlJ1bkFuZFZlcmlmeShmbGFnX3ZhbHVlPU5vbmUsCi0gICAg
ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0X3JlPU5vbmUsCi0gICAgICAgICAgICAg
ICAgICAgICAgb3RoZXJfZmxhZz1Ob25lKQotCi0gIGRlZiB0ZXN0RmxhZyhzZWxmKToKLSAgICAi
IiJUZXN0cyB1c2luZyB0aGUgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcuIiIiCi0KLSAgICBzZWxm
LlJ1bkFuZFZlcmlmeShmbGFnX3ZhbHVlPScwJywKLSAgICAgICAgICAgICAgICAgICAgICBleHBl
Y3RlZF9vdXRwdXRfcmU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBvdGhlcl9mbGFnPU5v
bmUpCi0gICAgc2VsZi5SdW5BbmRWZXJpZnkoZmxhZ192YWx1ZT0nMScsCi0gICAgICAgICAgICAg
ICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0X3JlPUVYUEVDVEVEX09VVFBVVF9OT19GSUxURVJfUkUs
Ci0gICAgICAgICAgICAgICAgICAgICAgb3RoZXJfZmxhZz1Ob25lKQotCi0gIGRlZiB0ZXN0T3Zl
cnJpZGVOb25GaWx0ZXJGbGFncyhzZWxmKToKLSAgICAiIiJUZXN0cyB0aGF0IC0tZ3Rlc3RfbGlz
dF90ZXN0cyBvdmVycmlkZXMgdGhlIG5vbi1maWx0ZXIgZmxhZ3MuIiIiCi0KLSAgICBzZWxmLlJ1
bkFuZFZlcmlmeShmbGFnX3ZhbHVlPScxJywKLSAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rl
ZF9vdXRwdXRfcmU9RVhQRUNURURfT1VUUFVUX05PX0ZJTFRFUl9SRSwKLSAgICAgICAgICAgICAg
ICAgICAgICBvdGhlcl9mbGFnPSctLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUnKQotCi0gIGRlZiB0
ZXN0V2l0aEZpbHRlckZsYWdzKHNlbGYpOgotICAgICIiIlRlc3RzIHRoYXQgLS1ndGVzdF9saXN0
X3Rlc3RzIHRha2VzIGludG8gYWNjb3VudCB0aGUKLSAgICAtLWd0ZXN0X2ZpbHRlciBmbGFnLiIi
IgotCi0gICAgc2VsZi5SdW5BbmRWZXJpZnkoZmxhZ192YWx1ZT0nMScsCi0gICAgICAgICAgICAg
ICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0X3JlPUVYUEVDVEVEX09VVFBVVF9GSUxURVJfRk9PX1JF
LAotICAgICAgICAgICAgICAgICAgICAgIG90aGVyX2ZsYWc9Jy0tZ3Rlc3RfZmlsdGVyPUZvbyon
KQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIGd0ZXN0X3Rlc3RfdXRpbHMuTWFp
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X2xp
c3RfdGVzdHNfdW5pdHRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9n
dGVzdF9saXN0X3Rlc3RzX3VuaXR0ZXN0Xy5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTA3YzE3NmJhOTU1NWQ2OGM3NGY0ZGZjY2I5NjdmZGM5MWU5ODJiMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC90ZXN0L2d0ZXN0X2xpc3RfdGVzdHNfdW5pdHRlc3RfLmNjCisrKyAvZGV2L251bGwKQEAg
LTEsMTU3ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgotLy8gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLS8vCi0vLyBBdXRob3I6IHBoYW5uYUBnb29nbGUuY29tIChQYXRyaWNrIEhhbm5hKQotCi0v
LyBVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0J3MgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcuCi0v
LwotLy8gQSB1c2VyIGNhbiBhc2sgR29vZ2xlIFRlc3QgdG8gbGlzdCBhbGwgdGVzdHMgdGhhdCB3
aWxsIHJ1bgotLy8gc28gdGhhdCB3aGVuIHVzaW5nIGEgZmlsdGVyLCBhIHVzZXIgd2lsbCBrbm93
IHdoYXQKLS8vIHRlc3RzIHRvIGxvb2sgZm9yLiBUaGUgdGVzdHMgd2lsbCBub3QgYmUgcnVuIGFm
dGVyIGxpc3RpbmcuCi0vLwotLy8gVGhpcyBwcm9ncmFtIHdpbGwgYmUgaW52b2tlZCBmcm9tIGEg
UHl0aG9uIHVuaXQgdGVzdC4KLS8vIERvbid0IHJ1biBpdCBkaXJlY3RseS4KLQotI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCi0KLS8vIFNldmVyYWwgZGlmZmVyZW50IHRlc3QgY2FzZXMgYW5kIHRl
c3RzIHRoYXQgd2lsbCBiZSBsaXN0ZWQuCi1URVNUKEZvbywgQmFyMSkgewotfQotCi1URVNUKEZv
bywgQmFyMikgewotfQotCi1URVNUKEZvbywgRElTQUJMRURfQmFyMykgewotfQotCi1URVNUKEFi
YywgWHl6KSB7Ci19Ci0KLVRFU1QoQWJjLCBEZWYpIHsKLX0KLQotVEVTVChGb29CYXIsIEJheikg
ewotfQotCi1jbGFzcyBGb29UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotfTsKLQotVEVT
VF9GKEZvb1Rlc3QsIFRlc3QxKSB7Ci19Ci0KLVRFU1RfRihGb29UZXN0LCBESVNBQkxFRF9UZXN0
MikgewotfQotCi1URVNUX0YoRm9vVGVzdCwgVGVzdDMpIHsKLX0KLQotVEVTVChGb29EZWF0aFRl
c3QsIFRlc3QxKSB7Ci19Ci0KLS8vIEEgZ3JvdXAgb2YgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0
cy4KLQotY2xhc3MgTXlUeXBlIHsKLSBwdWJsaWM6Ci0gIGV4cGxpY2l0IE15VHlwZShjb25zdCBz
dGQ6OnN0cmluZyYgYV92YWx1ZSkgOiB2YWx1ZV8oYV92YWx1ZSkge30KLQotICBjb25zdCBzdGQ6
OnN0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZV87IH0KLQotIHByaXZhdGU6Ci0g
IHN0ZDo6c3RyaW5nIHZhbHVlXzsKLX07Ci0KLS8vIFRlYWNoZXMgR29vZ2xlIFRlc3QgaG93IHRv
IHByaW50IGEgTXlUeXBlLgotdm9pZCBQcmludFRvKGNvbnN0IE15VHlwZSYgeCwgc3RkOjpvc3Ry
ZWFtKiBvcykgewotICAqb3MgPDwgeC52YWx1ZSgpOwotfQotCi1jbGFzcyBWYWx1ZVBhcmFtVGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPE15VHlwZT4gewotfTsKLQotVEVTVF9Q
KFZhbHVlUGFyYW1UZXN0LCBUZXN0QSkgewotfQotCi1URVNUX1AoVmFsdWVQYXJhbVRlc3QsIFRl
c3RCKSB7Ci19Ci0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAotICAgIE15SW5zdGFudGlhdGlv
biwgVmFsdWVQYXJhbVRlc3QsCi0gICAgdGVzdGluZzo6VmFsdWVzKE15VHlwZSgib25lIGxpbmUi
KSwKLSAgICAgICAgICAgICAgICAgICAgTXlUeXBlKCJ0d29cbmxpbmVzIiksCi0gICAgICAgICAg
ICAgICAgICAgIE15VHlwZSgiYSB2ZXJ5XG5sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nIGxpbmUi
KSkpOyAgLy8gTk9MSU5UCi0KLS8vIEEgZ3JvdXAgb2YgdHlwZWQgdGVzdHMuCi0KLS8vIEEgZGVs
aWJlcmF0ZWx5IGxvbmcgdHlwZSBuYW1lIGZvciB0ZXN0aW5nIHRoZSBsaW5lLXRydW5jYXRpbmcK
LS8vIGJlaGF2aW9yIHdoZW4gcHJpbnRpbmcgYSB0eXBlIHBhcmFtZXRlci4KLWNsYXNzIFZlcnlM
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb2dOYW1lIHsgIC8vIE5PTElOVAotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1jbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgaW50IGtTaXplPgotY2xhc3MgTXlBcnJheSB7Ci19
OwotCi10eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPFZlcnlMb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb2dO
YW1lLCAgLy8gTk9MSU5UCi0gICAgICAgICAgICAgICAgICAgICAgIGludCosIE15QXJyYXk8Ym9v
bCwgNDI+ID4gTXlUeXBlczsKLQotVFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdCwgTXlUeXBlcyk7
Ci0KLVRZUEVEX1RFU1QoVHlwZWRUZXN0LCBUZXN0QSkgewotfQotCi1UWVBFRF9URVNUKFR5cGVk
VGVzdCwgVGVzdEIpIHsKLX0KLQotLy8gQSBncm91cCBvZiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVz
dHMuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZVBhcmFtVGVzdCA6IHB1Ymxp
YyB0ZXN0aW5nOjpUZXN0IHsKLX07Ci0KLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJhbVRlc3Qp
OwotCi1UWVBFRF9URVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEEpIHsKLX0KLQotVFlQRURfVEVT
VF9QKFR5cGVQYXJhbVRlc3QsIFRlc3RCKSB7Ci19Ci0KLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FT
RV9QKFR5cGVQYXJhbVRlc3QsIFRlc3RBLCBUZXN0Qik7Ci0KLUlOU1RBTlRJQVRFX1RZUEVEX1RF
U1RfQ0FTRV9QKE15LCBUeXBlUGFyYW1UZXN0LCBNeVR5cGVzKTsKLQotaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIgKiphcmd2KSB7Ci0gIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFy
Z3YpOwotCi0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X21haW5fdW5pdHRlc3QuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X21haW5fdW5pdHRlc3QuY2MKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjZDliYjg3NmZmN2NlOWU4Y2VhM2QzMDIyNGQyODhhOWIx
OWU3MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9tYWluX3VuaXR0ZXN0LmNjCisrKyAv
ZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMu
Ci0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0v
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdh
bikKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLS8vIFRlc3RzIHRoYXQgd2UgZG9uJ3Qg
aGF2ZSB0byBkZWZpbmUgbWFpbigpIHdoZW4gd2UgbGluayB0bwotLy8gZ3Rlc3RfbWFpbiBpbnN0
ZWFkIG9mIGd0ZXN0LgotCi1uYW1lc3BhY2UgewotCi1URVNUKEdUZXN0TWFpblRlc3QsIFNob3Vs
ZFN1Y2NlZWQpIHsKLX0KLQotfSAgLy8gbmFtZXNwYWNlCi0KLS8vIFdlIGFyZSB1c2luZyB0aGUg
bWFpbigpIGZ1bmN0aW9uIGRlZmluZWQgaW4gc3JjL2d0ZXN0X21haW4uY2MsIHNvCi0vLyB3ZSBk
b24ndCBkZWZpbmUgaXQgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29n
bGV0ZXN0L3Rlc3QvZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjkyNTk5YWY4ZDA4ZDY4M2Q4YWY4NmZlZTk3ZmEzYzVhNjE2YTY2ZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFy
dHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QuY2MKKysrIC9kZXYvbnVs
bApAQCAtMSw1NiArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KLS8vIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0v
LyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0v
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLS8vIFRlc3RzIHRoYXQgYSBHb29nbGUgVGVzdCBwcm9ncmFtIHRoYXQgaGFzIG5v
IHRlc3QgZGVmaW5lZCBjYW4gcnVuCi0vLyBzdWNjZXNzZnVsbHkuCi0vLwotLy8gQXV0aG9yOiB3
YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKQotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIK
LQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIHRlc3Rpbmc6OkluaXRHb29n
bGVUZXN0KCZhcmdjLCBhcmd2KTsKLQotICAvLyBBbiBhZC1ob2MgYXNzZXJ0aW9uIG91dHNpZGUg
b2YgYWxsIHRlc3RzLgotICAvLwotICAvLyBUaGlzIHNlcnZlcyB0aHJlZSBwdXJwb3NlczoKLSAg
Ly8KLSAgLy8gMS4gSXQgdmVyaWZpZXMgdGhhdCBhbiBhZC1ob2MgYXNzZXJ0aW9uIGNhbiBiZSBl
eGVjdXRlZCBldmVuIGlmCi0gIC8vICAgIG5vIHRlc3QgaXMgZGVmaW5lZC4KLSAgLy8gMi4gSXQg
dmVyaWZpZXMgdGhhdCBhIGZhaWxlZCBhZC1ob2MgYXNzZXJ0aW9uIGNhdXNlcyB0aGUgdGVzdAot
ICAvLyAgICBwcm9ncmFtIHRvIGZhaWwuCi0gIC8vIDMuIFdlIGhhZCBhIGJ1ZyB3aGVyZSB0aGUg
WE1MIG91dHB1dCB3b24ndCBiZSBnZW5lcmF0ZWQgaWYgYW4KLSAgLy8gICAgYXNzZXJ0aW9uIGlz
IGV4ZWN1dGVkIGJlZm9yZSBSVU5fQUxMX1RFU1RTKCkgaXMgY2FsbGVkLCBldmVuCi0gIC8vICAg
IHRob3VnaCAtLWd0ZXN0X291dHB1dD14bWwgaXMgc3BlY2lmaWVkLiAgVGhpcyBtYWtlcyBzdXJl
IHRoZQotICAvLyAgICBidWcgaXMgZml4ZWQgYW5kIGRvZXNuJ3QgcmVncmVzcy4KLSAgRVhQRUNU
X0VRKDEsIDIpOwotCi0gIC8vIFRoZSBhYm92ZSBFWFBFQ1RfRVEoKSBzaG91bGQgY2F1c2UgUlVO
X0FMTF9URVNUUygpIHRvIHJldHVybiBub24temVyby4KLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMo
KSA/IDAgOiAxOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVz
dC9ndGVzdF9vdXRwdXRfdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3Qv
Z3Rlc3Rfb3V0cHV0X3Rlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2ZGJl
ZTA5ODA1MDY4NWU1YzBjNWI1YzQ1YTM0N2FmNzk5OTczZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVz
dC9ndGVzdF9vdXRwdXRfdGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM0MCArMCwwIEBACi0j
IS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0j
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0j
IG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJUZXN0cyB0aGUg
dGV4dCBvdXRwdXQgb2YgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yay4KLQotU1lOT1BTSVMK
LSAgICAgICBndGVzdF9vdXRwdXRfdGVzdC5weSAtLWJ1aWxkX2Rpcj1CVUlMRC9ESVIgLS1nZW5n
b2xkZW4KLSAgICAgICAgICMgd2hlcmUgQlVJTEQvRElSIGNvbnRhaW5zIHRoZSBidWlsdCBndGVz
dF9vdXRwdXRfdGVzdF8gZmlsZS4KLSAgICAgICBndGVzdF9vdXRwdXRfdGVzdC5weSAtLWdlbmdv
bGRlbgotICAgICAgIGd0ZXN0X291dHB1dF90ZXN0LnB5Ci0iIiIKLQotX19hdXRob3JfXyA9ICd3
YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcgV2FuKScKLQotaW1wb3J0IGRpZmZsaWIKLWltcG9ydCBv
cwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi1pbXBvcnQgZ3Rlc3RfdGVzdF91dGlscwotCi0KLSMg
VGhlIGZsYWcgZm9yIGdlbmVyYXRpbmcgdGhlIGdvbGRlbiBmaWxlCi1HRU5HT0xERU5fRkxBRyA9
ICctLWdlbmdvbGRlbicKLUNBVENIX0VYQ0VQVElPTlNfRU5WX1ZBUl9OQU1FID0gJ0dURVNUX0NB
VENIX0VYQ0VQVElPTlMnCi0KLUlTX1dJTkRPV1MgPSBvcy5uYW1lID09ICdudCcKLQotIyBUT0RP
KHZsYWRsQGdvb2dsZS5jb20pOiByZW1vdmUgdGhlIF9saW4gc3VmZml4LgotR09MREVOX05BTUUg
PSAnZ3Rlc3Rfb3V0cHV0X3Rlc3RfZ29sZGVuX2xpbi50eHQnCi0KLVBST0dSQU1fUEFUSCA9IGd0
ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKCdndGVzdF9vdXRwdXRfdGVzdF8n
KQotCi0jIEF0IGxlYXN0IG9uZSBjb21tYW5kIHdlIGV4ZXJjaXNlIG11c3Qgbm90IGhhdmUgdGhl
Ci0jICdpbnRlcm5hbF9za2lwX2Vudmlyb25tZW50X2FuZF9hZF9ob2NfdGVzdHMnIGFyZ3VtZW50
LgotQ09NTUFORF9MSVNUX1RFU1RTID0gKHt9LCBbUFJPR1JBTV9QQVRILCAnLS1ndGVzdF9saXN0
X3Rlc3RzJ10pCi1DT01NQU5EX1dJVEhfQ09MT1IgPSAoe30sIFtQUk9HUkFNX1BBVEgsICctLWd0
ZXN0X2NvbG9yPXllcyddKQotQ09NTUFORF9XSVRIX1RJTUUgPSAoe30sIFtQUk9HUkFNX1BBVEgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICctLWd0ZXN0X3ByaW50X3RpbWUnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAnaW50ZXJuYWxfc2tpcF9lbnZpcm9ubWVudF9hbmRfYWRfaG9j
X3Rlc3RzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tZ3Rlc3RfZmlsdGVyPUZhdGFs
RmFpbHVyZVRlc3QuKjpMb2dnaW5nVGVzdC4qJ10pCi1DT01NQU5EX1dJVEhfRElTQUJMRUQgPSAo
Ci0gICAge30sIFtQUk9HUkFNX1BBVEgsCi0gICAgICAgICAnLS1ndGVzdF9hbHNvX3J1bl9kaXNh
YmxlZF90ZXN0cycsCi0gICAgICAgICAnaW50ZXJuYWxfc2tpcF9lbnZpcm9ubWVudF9hbmRfYWRf
aG9jX3Rlc3RzJywKLSAgICAgICAgICctLWd0ZXN0X2ZpbHRlcj0qRElTQUJMRURfKiddKQotQ09N
TUFORF9XSVRIX1NIQVJESU5HID0gKAotICAgIHsnR1RFU1RfU0hBUkRfSU5ERVgnOiAnMScsICdH
VEVTVF9UT1RBTF9TSEFSRFMnOiAnMid9LAotICAgIFtQUk9HUkFNX1BBVEgsCi0gICAgICdpbnRl
cm5hbF9za2lwX2Vudmlyb25tZW50X2FuZF9hZF9ob2NfdGVzdHMnLAotICAgICAnLS1ndGVzdF9m
aWx0ZXI9UGFzc2luZ1Rlc3QuKiddKQotCi1HT0xERU5fUEFUSCA9IG9zLnBhdGguam9pbihndGVz
dF90ZXN0X3V0aWxzLkdldFNvdXJjZURpcigpLCBHT0xERU5fTkFNRSkKLQotCi1kZWYgVG9Vbml4
TGluZUVuZGluZyhzKToKLSAgIiIiQ2hhbmdlcyBhbGwgV2luZG93cy9NYWMgbGluZSBlbmRpbmdz
IGluIHMgdG8gVU5JWCBsaW5lIGVuZGluZ3MuIiIiCi0KLSAgcmV0dXJuIHMucmVwbGFjZSgnXHJc
bicsICdcbicpLnJlcGxhY2UoJ1xyJywgJ1xuJykKLQotCi1kZWYgUmVtb3ZlTG9jYXRpb25zKHRl
c3Rfb3V0cHV0KToKLSAgIiIiUmVtb3ZlcyBhbGwgZmlsZSBsb2NhdGlvbiBpbmZvIGZyb20gYSBH
b29nbGUgVGVzdCBwcm9ncmFtJ3Mgb3V0cHV0LgotCi0gIEFyZ3M6Ci0gICAgICAgdGVzdF9vdXRw
dXQ6ICB0aGUgb3V0cHV0IG9mIGEgR29vZ2xlIFRlc3QgcHJvZ3JhbS4KLQotICBSZXR1cm5zOgot
ICAgICAgIG91dHB1dCB3aXRoIGFsbCBmaWxlIGxvY2F0aW9uIGluZm8gKGluIHRoZSBmb3JtIG9m
Ci0gICAgICAgJ0RJUkVDVE9SWS9GSUxFX05BTUU6TElORV9OVU1CRVI6ICdvcgotICAgICAgICdE
SVJFQ1RPUllcXEZJTEVfTkFNRShMSU5FX05VTUJFUik6ICcpIHJlcGxhY2VkIGJ5Ci0gICAgICAg
J0ZJTEVfTkFNRTojOiAnLgotICAiIiIKLQotICByZXR1cm4gcmUuc3ViKHInLipbL1xcXSguKyko
XDpcZCt8XChcZCtcKSlcOiAnLCByJ1wxOiM6ICcsIHRlc3Rfb3V0cHV0KQotCi0KLWRlZiBSZW1v
dmVTdGFja1RyYWNlRGV0YWlscyhvdXRwdXQpOgotICAiIiJSZW1vdmVzIGFsbCBzdGFjayB0cmFj
ZXMgZnJvbSBhIEdvb2dsZSBUZXN0IHByb2dyYW0ncyBvdXRwdXQuIiIiCi0KLSAgIyAqPyBtZWFu
cyAiZmluZCB0aGUgc2hvcnRlc3Qgc3RyaW5nIHRoYXQgbWF0Y2hlcyIuCi0gIHJldHVybiByZS5z
dWIocidTdGFjayB0cmFjZTooLnxcbikqP1xuXG4nLAotICAgICAgICAgICAgICAgICdTdGFjayB0
cmFjZTogKG9taXR0ZWQpXG5cbicsIG91dHB1dCkKLQotCi1kZWYgUmVtb3ZlU3RhY2tUcmFjZXMo
b3V0cHV0KToKLSAgIiIiUmVtb3ZlcyBhbGwgdHJhY2VzIG9mIHN0YWNrIHRyYWNlcyBmcm9tIGEg
R29vZ2xlIFRlc3QgcHJvZ3JhbSdzIG91dHB1dC4iIiIKLQotICAjICo/IG1lYW5zICJmaW5kIHRo
ZSBzaG9ydGVzdCBzdHJpbmcgdGhhdCBtYXRjaGVzIi4KLSAgcmV0dXJuIHJlLnN1YihyJ1N0YWNr
IHRyYWNlOigufFxuKSo/XG5cbicsICcnLCBvdXRwdXQpCi0KLQotZGVmIFJlbW92ZVRpbWUob3V0
cHV0KToKLSAgIiIiUmVtb3ZlcyBhbGwgdGltZSBpbmZvcm1hdGlvbiBmcm9tIGEgR29vZ2xlIFRl
c3QgcHJvZ3JhbSdzIG91dHB1dC4iIiIKLQotICByZXR1cm4gcmUuc3ViKHInXChcZCsgbXMnLCAn
KD8gbXMnLCBvdXRwdXQpCi0KLQotZGVmIFJlbW92ZVR5cGVJbmZvRGV0YWlscyh0ZXN0X291dHB1
dCk6Ci0gICIiIlJlbW92ZXMgY29tcGlsZXItc3BlY2lmaWMgdHlwZSBpbmZvIGZyb20gR29vZ2xl
IFRlc3QgcHJvZ3JhbSdzIG91dHB1dC4KLQotICBBcmdzOgotICAgICAgIHRlc3Rfb3V0cHV0OiAg
dGhlIG91dHB1dCBvZiBhIEdvb2dsZSBUZXN0IHByb2dyYW0uCi0KLSAgUmV0dXJuczoKLSAgICAg
ICBvdXRwdXQgd2l0aCB0eXBlIGluZm9ybWF0aW9uIG5vcm1hbGl6ZWQgdG8gY2Fub25pY2FsIGZv
cm0uCi0gICIiIgotCi0gICMgc29tZSBjb21waWxlcnMgb3V0cHV0IHRoZSBuYW1lIG9mIHR5cGUg
J3Vuc2lnbmVkIGludCcgYXMgJ3Vuc2lnbmVkJwotICByZXR1cm4gcmUuc3ViKHIndW5zaWduZWQg
aW50JywgJ3Vuc2lnbmVkJywgdGVzdF9vdXRwdXQpCi0KLQotZGVmIE5vcm1hbGl6ZVRvQ3VycmVu
dFBsYXRmb3JtKHRlc3Rfb3V0cHV0KToKLSAgIiIiTm9ybWFsaXplcyBwbGF0Zm9ybSBzcGVjaWZp
YyBvdXRwdXQgZGV0YWlscyBmb3IgZWFzaWVyIGNvbXBhcmlzb24uIiIiCi0KLSAgaWYgSVNfV0lO
RE9XUzoKLSAgICAjIFJlbW92ZXMgdGhlIGNvbG9yIGluZm9ybWF0aW9uIHRoYXQgaXMgbm90IHBy
ZXNlbnQgb24gV2luZG93cy4KLSAgICB0ZXN0X291dHB1dCA9IHJlLnN1YignXHgxYlxcWygwOzNc
ZCk/bScsICcnLCB0ZXN0X291dHB1dCkKLSAgICAjIENoYW5nZXMgZmFpbHVyZSBtZXNzYWdlIGhl
YWRlcnMgaW50byB0aGUgV2luZG93cyBmb3JtYXQuCi0gICAgdGVzdF9vdXRwdXQgPSByZS5zdWIo
cic6IEZhaWx1cmVcbicsIHInOiBlcnJvcjogJywgdGVzdF9vdXRwdXQpCi0gICAgIyBDaGFuZ2Vz
IGZpbGUobGluZV9udW1iZXIpIHRvIGZpbGU6bGluZV9udW1iZXIuCi0gICAgdGVzdF9vdXRwdXQg
PSByZS5zdWIocicoKFx3fFwuKSspXCgoXGQrKVwpOicsIHInXDE6XDM6JywgdGVzdF9vdXRwdXQp
Ci0KLSAgcmV0dXJuIHRlc3Rfb3V0cHV0Ci0KLQotZGVmIFJlbW92ZVRlc3RDb3VudHMob3V0cHV0
KToKLSAgIiIiUmVtb3ZlcyB0ZXN0IGNvdW50cyBmcm9tIGEgR29vZ2xlIFRlc3QgcHJvZ3JhbSdz
IG91dHB1dC4iIiIKLQotICBvdXRwdXQgPSByZS5zdWIocidcZCsgdGVzdHM/LCBsaXN0ZWQgYmVs
b3cnLAotICAgICAgICAgICAgICAgICAgJz8gdGVzdHMsIGxpc3RlZCBiZWxvdycsIG91dHB1dCkK
LSAgb3V0cHV0ID0gcmUuc3ViKHInXGQrIEZBSUxFRCBURVNUUycsCi0gICAgICAgICAgICAgICAg
ICAnPyBGQUlMRUQgVEVTVFMnLCBvdXRwdXQpCi0gIG91dHB1dCA9IHJlLnN1YihyJ1xkKyB0ZXN0
cz8gZnJvbSBcZCsgdGVzdCBjYXNlcz8nLAotICAgICAgICAgICAgICAgICAgJz8gdGVzdHMgZnJv
bSA/IHRlc3QgY2FzZXMnLCBvdXRwdXQpCi0gIG91dHB1dCA9IHJlLnN1YihyJ1xkKyB0ZXN0cz8g
ZnJvbSAoW2EtekEtWl9dKScsCi0gICAgICAgICAgICAgICAgICByJz8gdGVzdHMgZnJvbSBcMScs
IG91dHB1dCkKLSAgcmV0dXJuIHJlLnN1YihyJ1xkKyB0ZXN0cz9cLicsICc/IHRlc3RzLicsIG91
dHB1dCkKLQotCi1kZWYgUmVtb3ZlTWF0Y2hpbmdUZXN0cyh0ZXN0X291dHB1dCwgcGF0dGVybik6
Ci0gICIiIlJlbW92ZXMgb3V0cHV0IG9mIHNwZWNpZmllZCB0ZXN0cyBmcm9tIGEgR29vZ2xlIFRl
c3QgcHJvZ3JhbSdzIG91dHB1dC4KLQotICBUaGlzIGZ1bmN0aW9uIHN0cmlwcyBub3Qgb25seSB0
aGUgYmVnaW5uaW5nIGFuZCB0aGUgZW5kIG9mIGEgdGVzdCBidXQgYWxzbwotICBhbGwgb3V0cHV0
IGluIGJldHdlZW4uCi0KLSAgQXJnczoKLSAgICB0ZXN0X291dHB1dDogICAgICAgQSBzdHJpbmcg
Y29udGFpbmluZyB0aGUgdGVzdCBvdXRwdXQuCi0gICAgcGF0dGVybjogICAgICAgICAgIEEgcmVn
ZXggc3RyaW5nIHRoYXQgbWF0Y2hlcyBuYW1lcyBvZiB0ZXN0IGNhc2VzIG9yCi0gICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RzIHRvIHJlbW92ZS4KLQotICBSZXR1cm5zOgotICAgIENvbnRlbnRz
IG9mIHRlc3Rfb3V0cHV0IHdpdGggdGVzdHMgd2hvc2UgbmFtZXMgbWF0Y2ggcGF0dGVybiByZW1v
dmVkLgotICAiIiIKLQotICB0ZXN0X291dHB1dCA9IHJlLnN1YigKLSAgICAgIHInLipcWyBSVU4g
ICAgICBcXSAuKiVzKC58XG4pKj9cWyggIEZBSUxFRCAgfCAgICAgICBPSyApXF0gLiolcy4qXG4n
ICUgKAotICAgICAgICAgIHBhdHRlcm4sIHBhdHRlcm4pLAotICAgICAgJycsCi0gICAgICB0ZXN0
X291dHB1dCkKLSAgcmV0dXJuIHJlLnN1YihyJy4qJXMuKlxuJyAlIHBhdHRlcm4sICcnLCB0ZXN0
X291dHB1dCkKLQotCi1kZWYgTm9ybWFsaXplT3V0cHV0KG91dHB1dCk6Ci0gICIiIk5vcm1hbGl6
ZXMgb3V0cHV0ICh0aGUgb3V0cHV0IG9mIGd0ZXN0X291dHB1dF90ZXN0Xy5leGUpLiIiIgotCi0g
IG91dHB1dCA9IFRvVW5peExpbmVFbmRpbmcob3V0cHV0KQotICBvdXRwdXQgPSBSZW1vdmVMb2Nh
dGlvbnMob3V0cHV0KQotICBvdXRwdXQgPSBSZW1vdmVTdGFja1RyYWNlRGV0YWlscyhvdXRwdXQp
Ci0gIG91dHB1dCA9IFJlbW92ZVRpbWUob3V0cHV0KQotICByZXR1cm4gb3V0cHV0Ci0KLQotZGVm
IEdldFNoZWxsQ29tbWFuZE91dHB1dChlbnZfY21kKToKLSAgIiIiUnVucyBhIGNvbW1hbmQgaW4g
YSBzdWItcHJvY2VzcywgYW5kIHJldHVybnMgaXRzIG91dHB1dCBpbiBhIHN0cmluZy4KLQotICBB
cmdzOgotICAgIGVudl9jbWQ6IFRoZSBzaGVsbCBjb21tYW5kLiBBIDItdHVwbGUgd2hlcmUgZWxl
bWVudCAwIGlzIGEgZGljdCBvZiBleHRyYQotICAgICAgICAgICAgIGVudmlyb25tZW50IHZhcmlh
YmxlcyB0byBzZXQsIGFuZCBlbGVtZW50IDEgaXMgYSBzdHJpbmcgd2l0aAotICAgICAgICAgICAg
IHRoZSBjb21tYW5kIGFuZCBhbnkgZmxhZ3MuCi0KLSAgUmV0dXJuczoKLSAgICBBIHN0cmluZyB3
aXRoIHRoZSBjb21tYW5kJ3MgY29tYmluZWQgc3RhbmRhcmQgYW5kIGRpYWdub3N0aWMgb3V0cHV0
LgotICAiIiIKLQotICAjIFNwYXducyBjbWQgaW4gYSBzdWItcHJvY2VzcywgYW5kIGdldHMgaXRz
IHN0YW5kYXJkIEkvTyBmaWxlIG9iamVjdHMuCi0gICMgU2V0IGFuZCBzYXZlIHRoZSBlbnZpcm9u
bWVudCBwcm9wZXJseS4KLSAgZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCi0gIGVudmlyb24u
dXBkYXRlKGVudl9jbWRbMF0pCi0gIHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoZW52
X2NtZFsxXSwgZW52PWVudmlyb24pCi0KLSAgcmV0dXJuIHAub3V0cHV0Ci0KLQotZGVmIEdldENv
bW1hbmRPdXRwdXQoZW52X2NtZCk6Ci0gICIiIlJ1bnMgYSBjb21tYW5kIGFuZCByZXR1cm5zIGl0
cyBvdXRwdXQgd2l0aCBhbGwgZmlsZSBsb2NhdGlvbgotICBpbmZvIHN0cmlwcGVkIG9mZi4KLQot
ICBBcmdzOgotICAgIGVudl9jbWQ6ICBUaGUgc2hlbGwgY29tbWFuZC4gQSAyLXR1cGxlIHdoZXJl
IGVsZW1lbnQgMCBpcyBhIGRpY3Qgb2YgZXh0cmEKLSAgICAgICAgICAgICAgZW52aXJvbm1lbnQg
dmFyaWFibGVzIHRvIHNldCwgYW5kIGVsZW1lbnQgMSBpcyBhIHN0cmluZyB3aXRoCi0gICAgICAg
ICAgICAgIHRoZSBjb21tYW5kIGFuZCBhbnkgZmxhZ3MuCi0gICIiIgotCi0gICMgRGlzYWJsZXMg
ZXhjZXB0aW9uIHBvcC11cHMgb24gV2luZG93cy4KLSAgZW52aXJvbiwgY21kbGluZSA9IGVudl9j
bWQKLSAgZW52aXJvbiA9IGRpY3QoZW52aXJvbikgICMgRW5zdXJlcyB3ZSBhcmUgbW9kaWZ5aW5n
IGEgY29weS4KLSAgZW52aXJvbltDQVRDSF9FWENFUFRJT05TX0VOVl9WQVJfTkFNRV0gPSAnMScK
LSAgcmV0dXJuIE5vcm1hbGl6ZU91dHB1dChHZXRTaGVsbENvbW1hbmRPdXRwdXQoKGVudmlyb24s
IGNtZGxpbmUpKSkKLQotCi1kZWYgR2V0T3V0cHV0T2ZBbGxDb21tYW5kcygpOgotICAiIiJSZXR1
cm5zIGNvbmNhdGVuYXRlZCBvdXRwdXQgZnJvbSBzZXZlcmFsIHJlcHJlc2VudGF0aXZlIGNvbW1h
bmRzLiIiIgotCi0gIHJldHVybiAoR2V0Q29tbWFuZE91dHB1dChDT01NQU5EX1dJVEhfQ09MT1Ip
ICsKLSAgICAgICAgICBHZXRDb21tYW5kT3V0cHV0KENPTU1BTkRfV0lUSF9USU1FKSArCi0gICAg
ICAgICAgR2V0Q29tbWFuZE91dHB1dChDT01NQU5EX1dJVEhfRElTQUJMRUQpICsKLSAgICAgICAg
ICBHZXRDb21tYW5kT3V0cHV0KENPTU1BTkRfV0lUSF9TSEFSRElORykpCi0KLQotdGVzdF9saXN0
ID0gR2V0U2hlbGxDb21tYW5kT3V0cHV0KENPTU1BTkRfTElTVF9URVNUUykKLVNVUFBPUlRTX0RF
QVRIX1RFU1RTID0gJ0RlYXRoVGVzdCcgaW4gdGVzdF9saXN0Ci1TVVBQT1JUU19UWVBFRF9URVNU
UyA9ICdUeXBlZFRlc3QnIGluIHRlc3RfbGlzdAotU1VQUE9SVFNfVEhSRUFEUyA9ICdFeHBlY3RG
YWlsdXJlV2l0aFRocmVhZHNUZXN0JyBpbiB0ZXN0X2xpc3QKLVNVUFBPUlRTX1NUQUNLX1RSQUNF
UyA9IEZhbHNlCi0KLUNBTl9HRU5FUkFURV9HT0xERU5fRklMRSA9IChTVVBQT1JUU19ERUFUSF9U
RVNUUyBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVBQT1JUU19UWVBFRF9URVNU
UyBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVBQT1JUU19USFJFQURTIGFuZAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBJU19XSU5ET1dTKQotCi1jbGFzcyBHVGVz
dE91dHB1dFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6Ci0gIGRlZiBSZW1vdmVVbnN1
cHBvcnRlZFRlc3RzKHNlbGYsIHRlc3Rfb3V0cHV0KToKLSAgICBpZiBub3QgU1VQUE9SVFNfREVB
VEhfVEVTVFM6Ci0gICAgICB0ZXN0X291dHB1dCA9IFJlbW92ZU1hdGNoaW5nVGVzdHModGVzdF9v
dXRwdXQsICdEZWF0aFRlc3QnKQotICAgIGlmIG5vdCBTVVBQT1JUU19UWVBFRF9URVNUUzoKLSAg
ICAgIHRlc3Rfb3V0cHV0ID0gUmVtb3ZlTWF0Y2hpbmdUZXN0cyh0ZXN0X291dHB1dCwgJ1R5cGVk
VGVzdCcpCi0gICAgICB0ZXN0X291dHB1dCA9IFJlbW92ZU1hdGNoaW5nVGVzdHModGVzdF9vdXRw
dXQsICdUeXBlZERlYXRoVGVzdCcpCi0gICAgICB0ZXN0X291dHB1dCA9IFJlbW92ZU1hdGNoaW5n
VGVzdHModGVzdF9vdXRwdXQsICdUeXBlUGFyYW1EZWF0aFRlc3QnKQotICAgIGlmIG5vdCBTVVBQ
T1JUU19USFJFQURTOgotICAgICAgdGVzdF9vdXRwdXQgPSBSZW1vdmVNYXRjaGluZ1Rlc3RzKHRl
c3Rfb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFeHBl
Y3RGYWlsdXJlV2l0aFRocmVhZHNUZXN0JykKLSAgICAgIHRlc3Rfb3V0cHV0ID0gUmVtb3ZlTWF0
Y2hpbmdUZXN0cyh0ZXN0X291dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJUZXN0JykKLSAgICAgIHRl
c3Rfb3V0cHV0ID0gUmVtb3ZlTWF0Y2hpbmdUZXN0cyh0ZXN0X291dHB1dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV29ya3NDb25jdXJyZW50bHknKQotICAgIGlm
IG5vdCBTVVBQT1JUU19TVEFDS19UUkFDRVM6Ci0gICAgICB0ZXN0X291dHB1dCA9IFJlbW92ZVN0
YWNrVHJhY2VzKHRlc3Rfb3V0cHV0KQotCi0gICAgcmV0dXJuIHRlc3Rfb3V0cHV0Ci0KLSAgZGVm
IHRlc3RPdXRwdXQoc2VsZik6Ci0gICAgb3V0cHV0ID0gR2V0T3V0cHV0T2ZBbGxDb21tYW5kcygp
Ci0KLSAgICBnb2xkZW5fZmlsZSA9IG9wZW4oR09MREVOX1BBVEgsICdyJykKLSAgICAjIEEgbWlz
LWNvbmZpZ3VyZWQgc291cmNlIGNvbnRyb2wgc3lzdGVtIGNhbiBjYXVzZSBcciBhcHBlYXIgaW4g
RU9MCi0gICAgIyBzZXF1ZW5jZXMgd2hlbiB3ZSByZWFkIHRoZSBnb2xkZW4gZmlsZSBpcnJlc3Bl
Y3RpdmUgb2YgYW4gb3BlcmF0aW5nCi0gICAgIyBzeXN0ZW0gdXNlZC4gVGhlcmVmb3JlLCB3ZSBu
ZWVkIHRvIHN0cmlwIHRob3NlIFxyJ3MgZnJvbSBuZXdsaW5lcwotICAgICMgdW5jb25kaXRpb25h
bGx5LgotICAgIGdvbGRlbiA9IFRvVW5peExpbmVFbmRpbmcoZ29sZGVuX2ZpbGUucmVhZCgpKQot
ICAgIGdvbGRlbl9maWxlLmNsb3NlKCkKLQotICAgICMgV2Ugd2FudCB0aGUgdGVzdCB0byBwYXNz
IHJlZ2FyZGxlc3Mgb2YgY2VydGFpbiBmZWF0dXJlcyBiZWluZwotICAgICMgc3VwcG9ydGVkIG9y
IG5vdC4KLQotICAgICMgV2Ugc3RpbGwgaGF2ZSB0byByZW1vdmUgdHlwZSBuYW1lIHNwZWNpZmlj
cyBpbiBhbGwgY2FzZXMuCi0gICAgbm9ybWFsaXplZF9hY3R1YWwgPSBSZW1vdmVUeXBlSW5mb0Rl
dGFpbHMob3V0cHV0KQotICAgIG5vcm1hbGl6ZWRfZ29sZGVuID0gUmVtb3ZlVHlwZUluZm9EZXRh
aWxzKGdvbGRlbikKLQotICAgIGlmIENBTl9HRU5FUkFURV9HT0xERU5fRklMRToKLSAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobm9ybWFsaXplZF9nb2xkZW4sIG5vcm1hbGl6ZWRfYWN0dWFsLAotICAg
ICAgICAgICAgICAgICAgICAgICAnXG4nLmpvaW4oZGlmZmxpYi51bmlmaWVkX2RpZmYoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkX2dvbGRlbi5zcGxpdCgnXG4nKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRfYWN0dWFsLnNwbGl0KCdcbicpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dvbGRlbicsICdhY3R1YWwnKSkpCi0gICAgZWxz
ZToKLSAgICAgIG5vcm1hbGl6ZWRfYWN0dWFsID0gTm9ybWFsaXplVG9DdXJyZW50UGxhdGZvcm0o
Ci0gICAgICAgICAgUmVtb3ZlVGVzdENvdW50cyhub3JtYWxpemVkX2FjdHVhbCkpCi0gICAgICBu
b3JtYWxpemVkX2dvbGRlbiA9IE5vcm1hbGl6ZVRvQ3VycmVudFBsYXRmb3JtKAotICAgICAgICAg
IFJlbW92ZVRlc3RDb3VudHMoc2VsZi5SZW1vdmVVbnN1cHBvcnRlZFRlc3RzKG5vcm1hbGl6ZWRf
Z29sZGVuKSkpCi0KLSAgICAgICMgVGhpcyBjb2RlIGlzIHZlcnkgaGFuZHkgd2hlbiBkZWJ1Z2dp
bmcgZ29sZGVuIGZpbGUgZGlmZmVyZW5jZXM6Ci0gICAgICBpZiBvcy5nZXRlbnYoJ0RFQlVHX0dU
RVNUX09VVFBVVF9URVNUJyk6Ci0gICAgICAgIG9wZW4ob3MucGF0aC5qb2luKAotICAgICAgICAg
ICAgZ3Rlc3RfdGVzdF91dGlscy5HZXRTb3VyY2VEaXIoKSwKLSAgICAgICAgICAgICdfZ3Rlc3Rf
b3V0cHV0X3Rlc3Rfbm9ybWFsaXplZF9hY3R1YWwudHh0JyksICd3YicpLndyaXRlKAotICAgICAg
ICAgICAgICAgIG5vcm1hbGl6ZWRfYWN0dWFsKQotICAgICAgICBvcGVuKG9zLnBhdGguam9pbigK
LSAgICAgICAgICAgIGd0ZXN0X3Rlc3RfdXRpbHMuR2V0U291cmNlRGlyKCksCi0gICAgICAgICAg
ICAnX2d0ZXN0X291dHB1dF90ZXN0X25vcm1hbGl6ZWRfZ29sZGVuLnR4dCcpLCAnd2InKS53cml0
ZSgKLSAgICAgICAgICAgICAgICBub3JtYWxpemVkX2dvbGRlbikKLQotICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChub3JtYWxpemVkX2dvbGRlbiwgbm9ybWFsaXplZF9hY3R1YWwpCi0KLQotaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgaWYgc3lzLmFyZ3ZbMTpdID09IFtHRU5HT0xERU5fRkxB
R106Ci0gICAgaWYgQ0FOX0dFTkVSQVRFX0dPTERFTl9GSUxFOgotICAgICAgb3V0cHV0ID0gR2V0
T3V0cHV0T2ZBbGxDb21tYW5kcygpCi0gICAgICBnb2xkZW5fZmlsZSA9IG9wZW4oR09MREVOX1BB
VEgsICd3YicpCi0gICAgICBnb2xkZW5fZmlsZS53cml0ZShvdXRwdXQpCi0gICAgICBnb2xkZW5f
ZmlsZS5jbG9zZSgpCi0gICAgZWxzZToKLSAgICAgIG1lc3NhZ2UgPSAoCi0gICAgICAgICAgIiIi
VW5hYmxlIHRvIHdyaXRlIGEgZ29sZGVuIGZpbGUgd2hlbiBjb21waWxlZCBpbiBhbiBlbnZpcm9u
bWVudAotdGhhdCBkb2VzIG5vdCBzdXBwb3J0IGFsbCB0aGUgcmVxdWlyZWQgZmVhdHVyZXMgKGRl
YXRoIHRlc3RzLCB0eXBlZCB0ZXN0cywKLWFuZCBtdWx0aXBsZSB0aHJlYWRzKS4gIFBsZWFzZSBn
ZW5lcmF0ZSB0aGUgZ29sZGVuIGZpbGUgdXNpbmcgYSBiaW5hcnkgYnVpbHQKLXdpdGggdGhvc2Ug
ZmVhdHVyZXMgZW5hYmxlZC4iIiIpCi0KLSAgICAgIHN5cy5zdGRlcnIud3JpdGUobWVzc2FnZSkK
LSAgICAgIHN5cy5leGl0KDEpCi0gIGVsc2U6Ci0gICAgZ3Rlc3RfdGVzdF91dGlscy5NYWluKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3Rfb3V0cHV0
X3Rlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9vdXRwdXRf
dGVzdF8uY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhYWJhOTc3MDM3YTY1YjAw
MTgzYTAwOGE1NWY3MzJhODY0NTYzZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9vdXRw
dXRfdGVzdF8uY2MKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUwICswLDAgQEAKLS8vIENvcHlyaWdo
dCAyMDA1LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8g
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9u
LgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8g
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBUaGUgcHVycG9zZSBvZiB0
aGlzIGZpbGUgaXMgdG8gZ2VuZXJhdGUgR29vZ2xlIFRlc3Qgb3V0cHV0IHVuZGVyCi0vLyB2YXJp
b3VzIGNvbmRpdGlvbnMuICBUaGUgb3V0cHV0IHdpbGwgdGhlbiBiZSB2ZXJpZmllZCBieQotLy8g
Z3Rlc3Rfb3V0cHV0X3Rlc3QucHkgdG8gZW5zdXJlIHRoYXQgR29vZ2xlIFRlc3QgZ2VuZXJhdGVz
IHRoZQotLy8gZGVzaXJlZCBtZXNzYWdlcy4gIFRoZXJlZm9yZSwgbW9zdCB0ZXN0cyBpbiB0aGlz
IGZpbGUgYXJlIE1FQU5UIFRPCi0vLyBGQUlMLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5j
b20gKFpoYW55b25nIFdhbikKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXNwaS5oIgotI2luY2x1
ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgot
Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLSNpZiBHVEVTVF9JU19USFJFQURTQUZFCi11c2luZyB0
ZXN0aW5nOjpTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjsKLXVzaW5nIHRlc3Rpbmc6
OlRlc3RQYXJ0UmVzdWx0QXJyYXk7Ci0KLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpOb3RpZmlj
YXRpb247Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6VGhyZWFkV2l0aFBhcmFtOwotI2VuZGlm
Ci0KLW5hbWVzcGFjZSBwb3NpeCA9IDo6dGVzdGluZzo6aW50ZXJuYWw6OnBvc2l4OwotCi0vLyBU
ZXN0cyBjYXRjaGluZyBmYXRhbCBmYWlsdXJlcy4KLQotLy8gQSBzdWJyb3V0aW5lIHVzZWQgYnkg
dGhlIGZvbGxvd2luZyB0ZXN0Lgotdm9pZCBUZXN0RXExKGludCB4KSB7Ci0gIEFTU0VSVF9FUSgx
LCB4KTsKLX0KLQotLy8gVGhpcyBmdW5jdGlvbiBjYWxscyBhIHRlc3Qgc3Vicm91dGluZSwgY2F0
Y2hlcyB0aGUgZmF0YWwgZmFpbHVyZSBpdAotLy8gZ2VuZXJhdGVzLCBhbmQgdGhlbiByZXR1cm5z
IGVhcmx5Lgotdm9pZCBUcnlUZXN0U3Vicm91dGluZSgpIHsKLSAgLy8gQ2FsbHMgYSBzdWJyb3Vu
dGluZSB0aGF0IHlpZWxkcyBhIGZhdGFsIGZhaWx1cmUuCi0gIFRlc3RFcTEoMik7Ci0KLSAgLy8g
Q2F0Y2hlcyB0aGUgZmF0YWwgZmFpbHVyZSBhbmQgYWJvcnRzIHRoZSB0ZXN0LgotICAvLwotICAv
LyBUaGUgdGVzdGluZzo6VGVzdDo6IHByZWZpeCBpcyBuZWNlc3Nhcnkgd2hlbiBjYWxsaW5nCi0g
IC8vIEhhc0ZhdGFsRmFpbHVyZSgpIG91dHNpZGUgb2YgYSBURVNULCBURVNUX0YsIG9yIHRlc3Qg
Zml4dHVyZS4KLSAgaWYgKHRlc3Rpbmc6OlRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSByZXR1cm47
Ci0KLSAgLy8gSWYgd2UgZ2V0IGhlcmUsIHNvbWV0aGluZyBpcyB3cm9uZy4KLSAgRkFJTCgpIDw8
ICJUaGlzIHNob3VsZCBuZXZlciBiZSByZWFjaGVkLiI7Ci19Ci0KLVRFU1QoUGFzc2luZ1Rlc3Qs
IFBhc3NpbmdUZXN0MSkgewotfQotCi1URVNUKFBhc3NpbmdUZXN0LCBQYXNzaW5nVGVzdDIpIHsK
LX0KLQotLy8gVGVzdHMgdGhhdCBwYXJhbWV0ZXJzIG9mIGZhaWxpbmcgcGFyYW1ldGVyaXplZCB0
ZXN0cyBhcmUgcHJpbnRlZCBpbiB0aGUKLS8vIGZhaWxpbmcgdGVzdCBzdW1tYXJ5LgotY2xhc3Mg
RmFpbGluZ1BhcmFtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307
Ci0KLVRFU1RfUChGYWlsaW5nUGFyYW1UZXN0LCBGYWlscykgewotICBFWFBFQ1RfRVEoMSwgR2V0
UGFyYW0oKSk7Ci19Ci0KLS8vIFRoaXMgZ2VuZXJhdGVzIGEgdGVzdCB3aGljaCB3aWxsIGZhaWwu
IEdvb2dsZSBUZXN0IGlzIGV4cGVjdGVkIHRvIHByaW50Ci0vLyBpdHMgcGFyYW1ldGVyIHdoZW4g
aXQgb3V0cHV0cyB0aGUgbGlzdCBvZiBhbGwgZmFpbGVkIHRlc3RzLgotSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1AoUHJpbnRpbmdGYWlsaW5nUGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAg
RmFpbGluZ1BhcmFtVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlZhbHVl
cygyKSk7Ci0KLXN0YXRpYyBjb25zdCBjaGFyIGtHb2xkZW5TdHJpbmdbXSA9ICJcIkxpbmVcMCAx
XCJcbkxpbmUgMiI7Ci0KLVRFU1QoTm9uZmF0YWxGYWlsdXJlVGVzdCwgRXNjYXBlc1N0cmluZ09w
ZXJhbmRzKSB7Ci0gIHN0ZDo6c3RyaW5nIGFjdHVhbCA9ICJhY3R1YWwgXCJzdHJpbmdcIiI7Ci0g
IEVYUEVDVF9FUShrR29sZGVuU3RyaW5nLCBhY3R1YWwpOwotCi0gIGNvbnN0IGNoYXIqIGdvbGRl
biA9IGtHb2xkZW5TdHJpbmc7Ci0gIEVYUEVDVF9FUShnb2xkZW4sIGFjdHVhbCk7Ci19Ci0KLVRF
U1QoTm9uZmF0YWxGYWlsdXJlVGVzdCwgRGlmZkZvckxvbmdTdHJpbmdzKSB7Ci0gIHN0ZDo6c3Ry
aW5nIGdvbGRlbl9zdHIoa0dvbGRlblN0cmluZywgc2l6ZW9mKGtHb2xkZW5TdHJpbmcpIC0gMSk7
Ci0gIEVYUEVDVF9FUShnb2xkZW5fc3RyLCAiTGluZSAyIik7Ci19Ci0KLS8vIFRlc3RzIGNhdGNo
aW5nIGEgZmF0YWwgZmFpbHVyZSBpbiBhIHN1YnJvdXRpbmUuCi1URVNUKEZhdGFsRmFpbHVyZVRl
c3QsIEZhdGFsRmFpbHVyZUluU3Vicm91dGluZSkgewotICBwcmludGYoIihleHBlY3RpbmcgYSBm
YWlsdXJlIHRoYXQgeCBzaG91bGQgYmUgMSlcbiIpOwotCi0gIFRyeVRlc3RTdWJyb3V0aW5lKCk7
Ci19Ci0KLS8vIFRlc3RzIGNhdGNoaW5nIGEgZmF0YWwgZmFpbHVyZSBpbiBhIG5lc3RlZCBzdWJy
b3V0aW5lLgotVEVTVChGYXRhbEZhaWx1cmVUZXN0LCBGYXRhbEZhaWx1cmVJbk5lc3RlZFN1YnJv
dXRpbmUpIHsKLSAgcHJpbnRmKCIoZXhwZWN0aW5nIGEgZmFpbHVyZSB0aGF0IHggc2hvdWxkIGJl
IDEpXG4iKTsKLQotICAvLyBDYWxscyBhIHN1YnJvdW50aW5lIHRoYXQgeWllbGRzIGEgZmF0YWwg
ZmFpbHVyZS4KLSAgVHJ5VGVzdFN1YnJvdXRpbmUoKTsKLQotICAvLyBDYXRjaGVzIHRoZSBmYXRh
bCBmYWlsdXJlIGFuZCBhYm9ydHMgdGhlIHRlc3QuCi0gIC8vCi0gIC8vIFdoZW4gY2FsbGluZyBI
YXNGYXRhbEZhaWx1cmUoKSBpbnNpZGUgYSBURVNULCBURVNUX0YsIG9yIHRlc3QKLSAgLy8gZml4
dHVyZSwgdGhlIHRlc3Rpbmc6OlRlc3Q6OiBwcmVmaXggaXMgbm90IG5lZWRlZC4KLSAgaWYgKEhh
c0ZhdGFsRmFpbHVyZSgpKSByZXR1cm47Ci0KLSAgLy8gSWYgd2UgZ2V0IGhlcmUsIHNvbWV0aGlu
ZyBpcyB3cm9uZy4KLSAgRkFJTCgpIDw8ICJUaGlzIHNob3VsZCBuZXZlciBiZSByZWFjaGVkLiI7
Ci19Ci0KLS8vIFRlc3RzIEhhc0ZhdGFsRmFpbHVyZSgpIGFmdGVyIGEgZmFpbGVkIEVYUEVDVCBj
aGVjay4KLVRFU1QoRmF0YWxGYWlsdXJlVGVzdCwgTm9uZmF0YWxGYWlsdXJlSW5TdWJyb3V0aW5l
KSB7Ci0gIHByaW50ZigiKGV4cGVjdGluZyBhIGZhaWx1cmUgb24gZmFsc2UpXG4iKTsKLSAgRVhQ
RUNUX1RSVUUoZmFsc2UpOyAgLy8gR2VuZXJhdGVzIGEgbm9uZmF0YWwgZmFpbHVyZQotICBBU1NF
UlRfRkFMU0UoSGFzRmF0YWxGYWlsdXJlKCkpOyAgLy8gVGhpcyBzaG91bGQgc3VjY2VlZC4KLX0K
LQotLy8gVGVzdHMgaW50ZXJsZWF2aW5nIHVzZXIgbG9nZ2luZyBhbmQgR29vZ2xlIFRlc3QgYXNz
ZXJ0aW9ucy4KLVRFU1QoTG9nZ2luZ1Rlc3QsIEludGVybGVhdmluZ0xvZ2dpbmdBbmRBc3NlcnRp
b25zKSB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgYVs0XSA9IHsKLSAgICAzLCA5LCAyLCA2Ci0gIH07
Ci0KLSAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgZmFpbHVyZXMgb24gKDMpID49IChhW2ldKSlcbiIp
OwotICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKGEpL3NpemVv
ZigqYSkpOyBpKyspIHsKLSAgICBwcmludGYoImkgPT0gJWRcbiIsIGkpOwotICAgIEVYUEVDVF9H
RSgzLCBhW2ldKTsKLSAgfQotfQotCi0vLyBUZXN0cyB0aGUgU0NPUEVEX1RSQUNFIG1hY3JvLgot
Ci0vLyBBIGhlbHBlciBmdW5jdGlvbiBmb3IgdGVzdGluZyBTQ09QRURfVFJBQ0UuCi12b2lkIFN1
YldpdGhvdXRUcmFjZShpbnQgbikgewotICBFWFBFQ1RfRVEoMSwgbik7Ci0gIEFTU0VSVF9FUSgy
LCBuKTsKLX0KLQotLy8gQW5vdGhlciBoZWxwZXIgZnVuY3Rpb24gZm9yIHRlc3RpbmcgU0NPUEVE
X1RSQUNFLgotdm9pZCBTdWJXaXRoVHJhY2UoaW50IG4pIHsKLSAgU0NPUEVEX1RSQUNFKHRlc3Rp
bmc6Ok1lc3NhZ2UoKSA8PCAibiA9ICIgPDwgbik7Ci0KLSAgU3ViV2l0aG91dFRyYWNlKG4pOwot
fQotCi0vLyBUZXN0cyB0aGF0IFNDT1BFRF9UUkFDRSgpIG9iZXlzIGxleGljYWwgc2NvcGVzLgot
VEVTVChTQ09QRURfVFJBQ0VUZXN0LCBPYmV5c1Njb3BlcykgewotICBwcmludGYoIihleHBlY3Rl
ZCB0byBmYWlsKVxuIik7Ci0KLSAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHRyYWNlIGJlZm9yZSBT
Q09QRURfVFJBQ0UoKSBpcyBpbnZva2VkLgotICBBRERfRkFJTFVSRSgpIDw8ICJUaGlzIGZhaWx1
cmUgaXMgZXhwZWN0ZWQsIGFuZCBzaG91bGRuJ3QgaGF2ZSBhIHRyYWNlLiI7Ci0KLSAgewotICAg
IFNDT1BFRF9UUkFDRSgiRXhwZWN0ZWQgdHJhY2UiKTsKLSAgICAvLyBBZnRlciBTQ09QRURfVFJB
Q0UoKSwgYSBmYWlsdXJlIGluIHRoZSBjdXJyZW50IHNjb3BlIHNob3VsZCBjb250YWluCi0gICAg
Ly8gdGhlIHRyYWNlLgotICAgIEFERF9GQUlMVVJFKCkgPDwgIlRoaXMgZmFpbHVyZSBpcyBleHBl
Y3RlZCwgYW5kIHNob3VsZCBoYXZlIGEgdHJhY2UuIjsKLSAgfQotCi0gIC8vIE9uY2UgdGhlIGNv
bnRyb2wgbGVhdmVzIHRoZSBzY29wZSBvZiB0aGUgU0NPUEVEX1RSQUNFKCksIHRoZXJlCi0gIC8v
IHNob3VsZCBiZSBubyB0cmFjZSBhZ2Fpbi4KLSAgQUREX0ZBSUxVUkUoKSA8PCAiVGhpcyBmYWls
dXJlIGlzIGV4cGVjdGVkLCBhbmQgc2hvdWxkbid0IGhhdmUgYSB0cmFjZS4iOwotfQotCi0vLyBU
ZXN0cyB0aGF0IFNDT1BFRF9UUkFDRSB3b3JrcyBpbnNpZGUgYSBsb29wLgotVEVTVChTQ09QRURf
VFJBQ0VUZXN0LCBXb3Jrc0luTG9vcCkgewotICBwcmludGYoIihleHBlY3RlZCB0byBmYWlsKVxu
Iik7Ci0KLSAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMjsgaSsrKSB7Ci0gICAgU0NPUEVEX1RSQUNF
KHRlc3Rpbmc6Ok1lc3NhZ2UoKSA8PCAiaSA9ICIgPDwgaSk7Ci0KLSAgICBTdWJXaXRob3V0VHJh
Y2UoaSk7Ci0gIH0KLX0KLQotLy8gVGVzdHMgdGhhdCBTQ09QRURfVFJBQ0Ugd29ya3MgaW4gYSBz
dWJyb3V0aW5lLgotVEVTVChTQ09QRURfVFJBQ0VUZXN0LCBXb3Jrc0luU3Vicm91dGluZSkgewot
ICBwcmludGYoIihleHBlY3RlZCB0byBmYWlsKVxuIik7Ci0KLSAgU3ViV2l0aFRyYWNlKDEpOwot
ICBTdWJXaXRoVHJhY2UoMik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgU0NPUEVEX1RSQUNFIGNhbiBi
ZSBuZXN0ZWQuCi1URVNUKFNDT1BFRF9UUkFDRVRlc3QsIENhbkJlTmVzdGVkKSB7Ci0gIHByaW50
ZigiKGV4cGVjdGVkIHRvIGZhaWwpXG4iKTsKLQotICBTQ09QRURfVFJBQ0UoIiIpOyAgLy8gQSB0
cmFjZSB3aXRob3V0IGEgbWVzc2FnZS4KLQotICBTdWJXaXRoVHJhY2UoMik7Ci19Ci0KLS8vIFRl
c3RzIHRoYXQgbXVsdGlwbGUgU0NPUEVEX1RSQUNFcyBjYW4gYmUgdXNlZCBpbiB0aGUgc2FtZSBz
Y29wZS4KLVRFU1QoU0NPUEVEX1RSQUNFVGVzdCwgQ2FuQmVSZXBlYXRlZCkgewotICBwcmludGYo
IihleHBlY3RlZCB0byBmYWlsKVxuIik7Ci0KLSAgU0NPUEVEX1RSQUNFKCJBIik7Ci0gIEFERF9G
QUlMVVJFKCkKLSAgICAgIDw8ICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQsIGFuZCBzaG91bGQg
Y29udGFpbiB0cmFjZSBwb2ludCBBLiI7Ci0KLSAgU0NPUEVEX1RSQUNFKCJCIik7Ci0gIEFERF9G
QUlMVVJFKCkKLSAgICAgIDw8ICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQsIGFuZCBzaG91bGQg
Y29udGFpbiB0cmFjZSBwb2ludCBBIGFuZCBCLiI7Ci0KLSAgewotICAgIFNDT1BFRF9UUkFDRSgi
QyIpOwotICAgIEFERF9GQUlMVVJFKCkgPDwgIlRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZCwgYW5k
IHNob3VsZCAiCi0gICAgICAgICAgICAgICAgICA8PCAiY29udGFpbiB0cmFjZSBwb2ludCBBLCBC
LCBhbmQgQy4iOwotICB9Ci0KLSAgU0NPUEVEX1RSQUNFKCJEIik7Ci0gIEFERF9GQUlMVVJFKCkg
PDwgIlRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZCwgYW5kIHNob3VsZCAiCi0gICAgICAgICAgICAg
ICAgPDwgImNvbnRhaW4gdHJhY2UgcG9pbnQgQSwgQiwgYW5kIEQuIjsKLX0KLQotI2lmIEdURVNU
X0lTX1RIUkVBRFNBRkUKLS8vIFRlc3RzIHRoYXQgU0NPUEVEX1RSQUNFKClzIGNhbiBiZSB1c2Vk
IGNvbmN1cnJlbnRseSBmcm9tIG11bHRpcGxlCi0vLyB0aHJlYWRzLiAgTmFtZWx5LCBhbiBhc3Nl
cnRpb24gc2hvdWxkIGJlIGFmZmVjdGVkIGJ5Ci0vLyBTQ09QRURfVFJBQ0UoKXMgaW4gaXRzIG93
biB0aHJlYWQgb25seS4KLQotLy8gSGVyZSdzIHRoZSBzZXF1ZW5jZSBvZiBhY3Rpb25zIHRoYXQg
aGFwcGVuIGluIHRoZSB0ZXN0OgotLy8KLS8vICAgVGhyZWFkIEEgKG1haW4pICAgICAgICAgICAg
ICAgIHwgVGhyZWFkIEIgKHNwYXduZWQpCi0vLyAgID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT18PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vICAgc3Bhd25zIHRocmVh
ZCBCICAgICAgICAgICAgICAgIHwKLS8vICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gICB3YWl0cyBmb3IgbjEgICAg
ICAgICAgICAgICAgICAgfCBTQ09QRURfVFJBQ0UoIlRyYWNlIEIiKTsKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgZ2VuZXJhdGVzIGZhaWx1cmUgIzEKLS8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgbm90aWZpZXMgbjEKLS8vICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8g
ICBTQ09QRURfVFJBQ0UoIlRyYWNlIEEiKTsgICAgICAgfCB3YWl0cyBmb3IgbjIKLS8vICAgZ2Vu
ZXJhdGVzIGZhaWx1cmUgIzIgICAgICAgICAgIHwKLS8vICAgbm90aWZpZXMgbjIgICAgICAgICAg
ICAgICAgICAgIHwKLS8vICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gICB3YWl0cyBmb3IgbjMgICAgICAgICAgICAg
ICAgICAgfCBnZW5lcmF0ZXMgZmFpbHVyZSAjMwotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCB0cmFjZSBCIGRpZXMKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgZ2VuZXJhdGVzIGZhaWx1cmUgIzQKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgbm90aWZpZXMgbjMKLS8vICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gICBnZW5lcmF0ZXMgZmFpbHVy
ZSAjNSAgICAgICAgICAgfCBmaW5pc2hlcwotLy8gICB0cmFjZSBBIGRpZXMgICAgICAgICAgICAg
ICAgICAgfAotLy8gICBnZW5lcmF0ZXMgZmFpbHVyZSAjNiAgICAgICAgICAgfAotLy8gICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0vLyAgIHdhaXRzIGZvciB0aHJlYWQgQiB0byBmaW5pc2ggICB8Ci0KLXN0cnVjdCBDaGVj
a1BvaW50cyB7Ci0gIE5vdGlmaWNhdGlvbiBuMTsKLSAgTm90aWZpY2F0aW9uIG4yOwotICBOb3Rp
ZmljYXRpb24gbjM7Ci19OwotCi1zdGF0aWMgdm9pZCBUaHJlYWRXaXRoU2NvcGVkVHJhY2UoQ2hl
Y2tQb2ludHMqIGNoZWNrX3BvaW50cykgewotICB7Ci0gICAgU0NPUEVEX1RSQUNFKCJUcmFjZSBC
Iik7Ci0gICAgQUREX0ZBSUxVUkUoKQotICAgICAgICA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMSAo
aW4gdGhyZWFkIEIsIG9ubHkgdHJhY2UgQiBhbGl2ZSkuIjsKLSAgICBjaGVja19wb2ludHMtPm4x
Lk5vdGlmeSgpOwotICAgIGNoZWNrX3BvaW50cy0+bjIuV2FpdEZvck5vdGlmaWNhdGlvbigpOwot
Ci0gICAgQUREX0ZBSUxVUkUoKQotICAgICAgICA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMyAoaW4g
dGhyZWFkIEIsIHRyYWNlIEEgJiBCIGJvdGggYWxpdmUpLiI7Ci0gIH0gIC8vIFRyYWNlIEIgZGll
cyBoZXJlLgotICBBRERfRkFJTFVSRSgpCi0gICAgICA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjNCAo
aW4gdGhyZWFkIEIsIG9ubHkgdHJhY2UgQSBhbGl2ZSkuIjsKLSAgY2hlY2tfcG9pbnRzLT5uMy5O
b3RpZnkoKTsKLX0KLQotVEVTVChTQ09QRURfVFJBQ0VUZXN0LCBXb3Jrc0NvbmN1cnJlbnRseSkg
ewotICBwcmludGYoIihleHBlY3RpbmcgNiBmYWlsdXJlcylcbiIpOwotCi0gIENoZWNrUG9pbnRz
IGNoZWNrX3BvaW50czsKLSAgVGhyZWFkV2l0aFBhcmFtPENoZWNrUG9pbnRzKj4gdGhyZWFkKCZU
aHJlYWRXaXRoU2NvcGVkVHJhY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmY2hlY2tfcG9pbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCk7Ci0gIGNoZWNrX3BvaW50cy5uMS5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7Ci0KLSAg
ewotICAgIFNDT1BFRF9UUkFDRSgiVHJhY2UgQSIpOwotICAgIEFERF9GQUlMVVJFKCkKLSAgICAg
ICAgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzIgKGluIHRocmVhZCBBLCB0cmFjZSBBICYgQiBib3Ro
IGFsaXZlKS4iOwotICAgIGNoZWNrX3BvaW50cy5uMi5Ob3RpZnkoKTsKLSAgICBjaGVja19wb2lu
dHMubjMuV2FpdEZvck5vdGlmaWNhdGlvbigpOwotCi0gICAgQUREX0ZBSUxVUkUoKQotICAgICAg
ICA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjNSAoaW4gdGhyZWFkIEEsIG9ubHkgdHJhY2UgQSBhbGl2
ZSkuIjsKLSAgfSAgLy8gVHJhY2UgQSBkaWVzIGhlcmUuCi0gIEFERF9GQUlMVVJFKCkKLSAgICAg
IDw8ICJFeHBlY3RlZCBmYWlsdXJlICM2IChpbiB0aHJlYWQgQSwgbm8gdHJhY2UgYWxpdmUpLiI7
Ci0gIHRocmVhZC5Kb2luKCk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0lTX1RIUkVBRFNBRkUKLQot
VEVTVChEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QsCi0gICAgIERJU0FCTEVEX0Fsc29SdW5EaXNh
YmxlZFRlc3RzRmxhZ1N1cHByZXNzZXNXYXJuaW5nKSB7Ci0gIC8vIFRoaXMgdGVzdCBib2R5IGlz
IGludGVudGlvbmFsbHkgZW1wdHkuICBJdHMgc29sZSBwdXJwb3NlIGlzIGZvcgotICAvLyB2ZXJp
ZnlpbmcgdGhhdCB0aGUgLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyBmbGFnCi0gIC8v
IHN1cHByZXNzZXMgdGhlICJZT1UgSEFWRSAxMiBESVNBQkxFRCBURVNUUyIgd2FybmluZyBhdCB0
aGUgZW5kIG9mCi0gIC8vIHRoZSB0ZXN0IG91dHB1dC4KLX0KLQotLy8gVGVzdHMgdXNpbmcgYXNz
ZXJ0aW9ucyBvdXRzaWRlIG9mIFRFU1QgYW5kIFRFU1RfRi4KLS8vCi0vLyBUaGlzIGZ1bmN0aW9u
IGNyZWF0ZXMgdHdvIGZhaWx1cmVzIGludGVudGlvbmFsbHkuCi12b2lkIEFkSG9jVGVzdCgpIHsK
LSAgcHJpbnRmKCJUaGUgbm9uLXRlc3QgcGFydCBvZiB0aGUgY29kZSBpcyBleHBlY3RlZCB0byBo
YXZlIDIgZmFpbHVyZXMuXG5cbiIpOwotICBFWFBFQ1RfVFJVRShmYWxzZSk7Ci0gIEVYUEVDVF9F
USgyLCAzKTsKLX0KLQotLy8gUnVucyBhbGwgVEVTVHMsIGFsbCBURVNUX0ZzLCBhbmQgdGhlIGFk
IGhvYyB0ZXN0LgotaW50IFJ1bkFsbFRlc3RzKCkgewotICBBZEhvY1Rlc3QoKTsKLSAgcmV0dXJu
IFJVTl9BTExfVEVTVFMoKTsKLX0KLQotLy8gVGVzdHMgbm9uLWZhdGFsIGZhaWx1cmVzIGluIHRo
ZSBmaXh0dXJlIGNvbnN0cnVjdG9yLgotY2xhc3MgTm9uRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29u
c3RydWN0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgTm9u
RmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0KCkgewotICAgIHByaW50ZigiKGV4
cGVjdGluZyA1IGZhaWx1cmVzKVxuIik7Ci0gICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQg
ZmFpbHVyZSAjMSwgaW4gdGhlIHRlc3QgZml4dHVyZSBjJ3Rvci4iOwotICB9Ci0KLSAgfk5vbkZh
dGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCgpIHsKLSAgICBBRERfRkFJTFVSRSgp
IDw8ICJFeHBlY3RlZCBmYWlsdXJlICM1LCBpbiB0aGUgdGVzdCBmaXh0dXJlIGQndG9yLiI7Ci0g
IH0KLQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhw
ZWN0ZWQgZmFpbHVyZSAjMiwgaW4gU2V0VXAoKS4iOwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIFRl
YXJEb3duKCkgewotICAgIEFERF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzQsIGlu
IFRlYXJEb3duLiI7Ci0gIH0KLX07Ci0KLVRFU1RfRihOb25GYXRhbEZhaWx1cmVJbkZpeHR1cmVD
b25zdHJ1Y3RvclRlc3QsIEZhaWx1cmVJbkNvbnN0cnVjdG9yKSB7Ci0gIEFERF9GQUlMVVJFKCkg
PDwgIkV4cGVjdGVkIGZhaWx1cmUgIzMsIGluIHRoZSB0ZXN0IGJvZHkuIjsKLX0KLQotLy8gVGVz
dHMgZmF0YWwgZmFpbHVyZXMgaW4gdGhlIGZpeHR1cmUgY29uc3RydWN0b3IuCi1jbGFzcyBGYXRh
bEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7
Ci0gcHJvdGVjdGVkOgotICBGYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QoKSB7
Ci0gICAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgZmFpbHVyZXMpXG4iKTsKLSAgICBJbml0KCk7Ci0g
IH0KLQotICB+RmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0KCkgewotICAgIEFE
RF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzIsIGluIHRoZSB0ZXN0IGZpeHR1cmUg
ZCd0b3IuIjsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBBRERfRkFJTFVS
RSgpIDw8ICJVTkVYUEVDVEVEIGZhaWx1cmUgaW4gU2V0VXAoKS4gICIKLSAgICAgICAgICAgICAg
ICAgIDw8ICJXZSBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUsIGFzIHRoZSB0ZXN0IGZpeHR1cmUgYyd0
b3IgIgotICAgICAgICAgICAgICAgICAgPDwgImhhZCBhIGZhdGFsIGZhaWx1cmUuIjsKLSAgfQot
Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJVTkVY
UEVDVEVEIGZhaWx1cmUgaW4gVGVhckRvd24oKS4gICIKLSAgICAgICAgICAgICAgICAgIDw8ICJX
ZSBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUsIGFzIHRoZSB0ZXN0IGZpeHR1cmUgYyd0b3IgIgotICAg
ICAgICAgICAgICAgICAgPDwgImhhZCBhIGZhdGFsIGZhaWx1cmUuIjsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgdm9pZCBJbml0KCkgewotICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMSwg
aW4gdGhlIHRlc3QgZml4dHVyZSBjJ3Rvci4iOwotICB9Ci19OwotCi1URVNUX0YoRmF0YWxGYWls
dXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0LCBGYWlsdXJlSW5Db25zdHJ1Y3RvcikgewotICBB
RERfRkFJTFVSRSgpIDw8ICJVTkVYUEVDVEVEIGZhaWx1cmUgaW4gdGhlIHRlc3QgYm9keS4gICIK
LSAgICAgICAgICAgICAgICA8PCAiV2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLCBhcyB0aGUgdGVz
dCBmaXh0dXJlIGMndG9yICIKLSAgICAgICAgICAgICAgICA8PCAiaGFkIGEgZmF0YWwgZmFpbHVy
ZS4iOwotfQotCi0vLyBUZXN0cyBub24tZmF0YWwgZmFpbHVyZXMgaW4gU2V0VXAoKS4KLWNsYXNz
IE5vbkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHBy
b3RlY3RlZDoKLSAgdmlydHVhbCB+Tm9uRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QoKSB7Ci0gICAg
RGVpbml0KCk7Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgcHJpbnRmKCIo
ZXhwZWN0aW5nIDQgZmFpbHVyZXMpXG4iKTsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3Rl
ZCBmYWlsdXJlICMxLCBpbiBTZXRVcCgpLiI7Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRv
d24oKSB7Ci0gICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMzLCBpbiBUZWFyRG93bigp
LiI7Ci0gIH0KLSBwcml2YXRlOgotICB2b2lkIERlaW5pdCgpIHsKLSAgICBGQUlMKCkgPDwgIkV4
cGVjdGVkIGZhaWx1cmUgIzQsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsKLSAgfQotfTsK
LQotVEVTVF9GKE5vbkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0LCBGYWlsdXJlSW5TZXRVcCkgewot
ICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzIsIGluIHRoZSB0ZXN0IGZ1bmN0aW9uLiI7
Ci19Ci0KLS8vIFRlc3RzIGZhdGFsIGZhaWx1cmVzIGluIFNldFVwKCkuCi1jbGFzcyBGYXRhbEZh
aWx1cmVJblNldFVwVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0g
IHZpcnR1YWwgfkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgewotICAgIERlaW5pdCgpOwotICB9
Ci0KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHByaW50ZigiKGV4cGVjdGluZyAzIGZh
aWx1cmVzKVxuIik7Ci0gICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMxLCBpbiBTZXRV
cCgpLiI7Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgRkFJTCgpIDw8
ICJFeHBlY3RlZCBmYWlsdXJlICMyLCBpbiBUZWFyRG93bigpLiI7Ci0gIH0KLSBwcml2YXRlOgot
ICB2b2lkIERlaW5pdCgpIHsKLSAgICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzMsIGlu
IHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsKLSAgfQotfTsKLQotVEVTVF9GKEZhdGFsRmFpbHVy
ZUluU2V0VXBUZXN0LCBGYWlsdXJlSW5TZXRVcCkgewotICBGQUlMKCkgPDwgIlVORVhQRUNURUQg
ZmFpbHVyZSBpbiB0aGUgdGVzdCBmdW5jdGlvbi4gICIKLSAgICAgICAgIDw8ICJXZSBzaG91bGQg
bmV2ZXIgZ2V0IGhlcmUsIGFzIFNldFVwKCkgZmFpbGVkLiI7Ci19Ci0KLVRFU1QoQWRkRmFpbHVy
ZUF0VGVzdCwgTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIpIHsKLSAg
QUREX0ZBSUxVUkVfQVQoImZvby5jYyIsIDQyKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSBpbiBmb28u
Y2MiOwotfQotCi0jaWYgR1RFU1RfSVNfVEhSRUFEU0FGRQotCi0vLyBBIHVuYXJ5IGZ1bmN0aW9u
IHRoYXQgbWF5IGRpZS4KLXZvaWQgRGllSWYoYm9vbCBzaG91bGRfZGllKSB7Ci0gIEdURVNUX0NI
RUNLXyghc2hvdWxkX2RpZSkgPDwgIiAtIGRlYXRoIGluc2lkZSBEaWVJZigpLiI7Ci19Ci0KLS8v
IFRlc3RzIHJ1bm5pbmcgZGVhdGggdGVzdHMgaW4gYSBtdWx0aS10aHJlYWRlZCBjb250ZXh0Lgot
Ci0vLyBVc2VkIGZvciBjb29yZGluYXRpb24gYmV0d2VlbiB0aGUgbWFpbiBhbmQgdGhlIHNwYXdu
IHRocmVhZC4KLXN0cnVjdCBTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMgewotICBTcGF3blRocmVh
ZE5vdGlmaWNhdGlvbnMoKSB7fQotCi0gIE5vdGlmaWNhdGlvbiBzcGF3bl90aHJlYWRfc3RhcnRl
ZDsKLSAgTm90aWZpY2F0aW9uIHNwYXduX3RocmVhZF9va190b190ZXJtaW5hdGU7Ci0KLSBwcml2
YXRlOgotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFNwYXduVGhyZWFkTm90aWZp
Y2F0aW9ucyk7Ci19OwotCi0vLyBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIHRo
cmVhZCBzcGF3biBieSB0aGUKLS8vIE11bHRpcGxlVGhyZWFkcyB0ZXN0IChiZWxvdykuCi1zdGF0
aWMgdm9pZCBUaHJlYWRSb3V0aW5lKFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucyogbm90aWZpY2F0
aW9ucykgewotICAvLyBTaWduYWxzIHRoZSBtYWluIHRocmVhZCB0aGF0IHRoaXMgdGhyZWFkIGhh
cyBzdGFydGVkLgotICBub3RpZmljYXRpb25zLT5zcGF3bl90aHJlYWRfc3RhcnRlZC5Ob3RpZnko
KTsKLQotICAvLyBXYWl0cyBmb3IgcGVybWlzc2lvbiB0byBmaW5pc2ggZnJvbSB0aGUgbWFpbiB0
aHJlYWQuCi0gIG5vdGlmaWNhdGlvbnMtPnNwYXduX3RocmVhZF9va190b190ZXJtaW5hdGUuV2Fp
dEZvck5vdGlmaWNhdGlvbigpOwotfQotCi0vLyBUaGlzIGlzIGEgZGVhdGgtdGVzdCB0ZXN0LCBi
dXQgaXQncyBub3QgbmFtZWQgd2l0aCBhIERlYXRoVGVzdAotLy8gc3VmZml4LiAgSXQgc3RhcnRz
IHRocmVhZHMgd2hpY2ggbWlnaHQgaW50ZXJmZXJlIHdpdGggbGF0ZXIKLS8vIGRlYXRoIHRlc3Rz
LCBzbyBpdCBtdXN0IHJ1biBhZnRlciBhbGwgb3RoZXIgZGVhdGggdGVzdHMuCi1jbGFzcyBEZWF0
aFRlc3RBbmRNdWx0aVRocmVhZHNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3Rl
Y3RlZDoKLSAgLy8gU3RhcnRzIGEgdGhyZWFkIGFuZCB3YWl0cyBmb3IgaXQgdG8gYmVnaW4uCi0g
IHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICB0aHJlYWRfLnJlc2V0KG5ldyBUaHJlYWRXaXRo
UGFyYW08U3Bhd25UaHJlYWROb3RpZmljYXRpb25zKj4oCi0gICAgICAgICZUaHJlYWRSb3V0aW5l
LCAmbm90aWZpY2F0aW9uc18sIE5VTEwpKTsKLSAgICBub3RpZmljYXRpb25zXy5zcGF3bl90aHJl
YWRfc3RhcnRlZC5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7Ci0gIH0KLSAgLy8gVGVsbHMgdGhlIHRo
cmVhZCB0byBmaW5pc2gsIGFuZCByZWFwcyBpdC4KLSAgLy8gRGVwZW5kaW5nIG9uIHRoZSB2ZXJz
aW9uIG9mIHRoZSB0aHJlYWQgbGlicmFyeSBpbiB1c2UsCi0gIC8vIGEgbWFuYWdlciB0aHJlYWQg
bWlnaHQgc3RpbGwgYmUgbGVmdCBydW5uaW5nIHRoYXQgd2lsbCBpbnRlcmZlcmUKLSAgLy8gd2l0
aCBsYXRlciBkZWF0aCB0ZXN0cy4gIFRoaXMgaXMgdW5mb3J0dW5hdGUsIGJ1dCB0aGlzIGNsYXNz
Ci0gIC8vIGNsZWFucyB1cCBhZnRlciBpdHNlbGYgYXMgYmVzdCBpdCBjYW4uCi0gIHZpcnR1YWwg
dm9pZCBUZWFyRG93bigpIHsKLSAgICBub3RpZmljYXRpb25zXy5zcGF3bl90aHJlYWRfb2tfdG9f
dGVybWluYXRlLk5vdGlmeSgpOwotICB9Ci0KLSBwcml2YXRlOgotICBTcGF3blRocmVhZE5vdGlm
aWNhdGlvbnMgbm90aWZpY2F0aW9uc187Ci0gIHRlc3Rpbmc6OmludGVybmFsOjpzY29wZWRfcHRy
PFRocmVhZFdpdGhQYXJhbTxTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMqPiA+Ci0gICAgICB0aHJl
YWRfOwotfTsKLQotI2VuZGlmICAvLyBHVEVTVF9JU19USFJFQURTQUZFCi0KLS8vIFRoZSBNaXhl
ZFVwVGVzdENhc2VUZXN0IHRlc3QgY2FzZSB2ZXJpZmllcyB0aGF0IEdvb2dsZSBUZXN0IHdpbGwg
ZmFpbCBhCi0vLyB0ZXN0IGlmIGl0IHVzZXMgYSBkaWZmZXJlbnQgZml4dHVyZSBjbGFzcyB0aGFu
IHdoYXQgb3RoZXIgdGVzdHMgaW4KLS8vIHRoZSBzYW1lIHRlc3QgY2FzZSB1c2UuICBJdCBkZWxp
YmVyYXRlbHkgY29udGFpbnMgdHdvIGZpeHR1cmUKLS8vIGNsYXNzZXMgd2l0aCB0aGUgc2FtZSBu
YW1lIGJ1dCBkZWZpbmVkIGluIGRpZmZlcmVudCBuYW1lc3BhY2VzLgotCi0vLyBUaGUgTWl4ZWRV
cFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QgdGVzdCBjYXNlIHZlcmlmaWVzIHRoYXQKLS8v
IHdoZW4gdGhlIHVzZXIgZGVmaW5lcyB0d28gdGVzdHMgd2l0aCB0aGUgc2FtZSB0ZXN0IGNhc2Ug
bmFtZSBBTkQKLS8vIHNhbWUgdGVzdCBuYW1lIChidXQgaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMp
LCB0aGUgc2Vjb25kIHRlc3Qgd2lsbAotLy8gZmFpbC4KLQotbmFtZXNwYWNlIGZvbyB7Ci0KLWNs
YXNzIE1peGVkVXBUZXN0Q2FzZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci19OwotCi1U
RVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbykge30K
LVRFU1RfRihNaXhlZFVwVGVzdENhc2VUZXN0LCBTZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbykg
e30KLQotY2xhc3MgTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QgOiBwdWJsaWMg
dGVzdGluZzo6VGVzdCB7Ci19OwotCi1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0
TmFtZVRlc3QsCi0gICAgICAgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwpIHt9
Ci0KLX0gIC8vIG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNlIGJhciB7Ci0KLWNsYXNzIE1peGVk
VXBUZXN0Q2FzZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci19OwotCi0vLyBUaGUgZm9s
bG93aW5nIHR3byB0ZXN0cyBhcmUgZXhwZWN0ZWQgdG8gZmFpbC4gIFdlIHJlbHkgb24gdGhlCi0v
LyBnb2xkZW4gZmlsZSB0byBjaGVjayB0aGF0IEdvb2dsZSBUZXN0IGdlbmVyYXRlcyB0aGUgcmln
aHQgZXJyb3IgbWVzc2FnZS4KLVRFU1RfRihNaXhlZFVwVGVzdENhc2VUZXN0LCBUaGlzU2hvdWxk
RmFpbCkge30KLVRFU1RfRihNaXhlZFVwVGVzdENhc2VUZXN0LCBUaGlzU2hvdWxkRmFpbFRvbykg
e30KLQotY2xhc3MgTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QgOiBwdWJsaWMg
dGVzdGluZzo6VGVzdCB7Ci19OwotCi0vLyBFeHBlY3RlZCB0byBmYWlsLiAgV2UgcmVseSBvbiB0
aGUgZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhhdCBHb29nbGUgVGVzdAotLy8gZ2VuZXJhdGVzIHRo
ZSByaWdodCBlcnJvciBtZXNzYWdlLgotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVz
dE5hbWVUZXN0LAotICAgICAgIFRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsKSB7
fQotCi19ICAvLyBuYW1lc3BhY2UgYmFyCi0KLS8vIFRoZSBmb2xsb3dpbmcgdHdvIHRlc3QgY2Fz
ZXMgdmVyaWZ5IHRoYXQgR29vZ2xlIFRlc3QgY2F0Y2hlcyB0aGUgdXNlcgotLy8gZXJyb3Igb2Yg
bWl4aW5nIFRFU1QgYW5kIFRFU1RfRiBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UuICBUaGUgZmlyc3QK
LS8vIHRlc3QgY2FzZSBjaGVja3MgdGhlIHNjZW5hcmlvIHdoZXJlIFRFU1RfRiBhcHBlYXJzIGJl
Zm9yZSBURVNULCBhbmQKLS8vIHRoZSBzZWNvbmQgb25lIGNoZWNrcyB3aGVyZSBURVNUIGFwcGVh
cnMgYmVmb3JlIFRFU1RfRi4KLQotY2xhc3MgVEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVfdGVz
dF9jYXNlIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotfTsKLQotVEVTVF9GKFRFU1RfRl9iZWZv
cmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2FzZSwgRGVmaW5lZFVzaW5nVEVTVF9GKSB7fQotCi0vLyBF
eHBlY3RlZCB0byBmYWlsLiAgV2UgcmVseSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhh
dCBHb29nbGUgVGVzdAotLy8gZ2VuZXJhdGVzIHRoZSByaWdodCBlcnJvciBtZXNzYWdlLgotVEVT
VChURVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UsIERlZmluZWRVc2luZ1RFU1RB
bmRTaG91bGRGYWlsKSB7fQotCi1jbGFzcyBURVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0
X2Nhc2UgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci19OwotCi1URVNUKFRFU1RfYmVmb3JlX1RF
U1RfRl9pbl9zYW1lX3Rlc3RfY2FzZSwgRGVmaW5lZFVzaW5nVEVTVCkge30KLQotLy8gRXhwZWN0
ZWQgdG8gZmFpbC4gIFdlIHJlbHkgb24gdGhlIGdvbGRlbiBmaWxlIHRvIGNoZWNrIHRoYXQgR29v
Z2xlIFRlc3QKLS8vIGdlbmVyYXRlcyB0aGUgcmlnaHQgZXJyb3IgbWVzc2FnZS4KLVRFU1RfRihU
RVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UsIERlZmluZWRVc2luZ1RFU1RfRkFu
ZFNob3VsZEZhaWwpIHsKLX0KLQotLy8gVXNlZCBmb3IgdGVzdGluZyBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRSgpIGFuZCBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgpLgotaW50IGdsb2JhbF9pbnRlZ2Vy
ID0gMDsKLQotLy8gVGVzdHMgdGhhdCBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgpIGNhbiByZWZl
cmVuY2UgZ2xvYmFsIHZhcmlhYmxlcy4KLVRFU1QoRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdCwg
Q2FuUmVmZXJlbmNlR2xvYmFsVmFyaWFibGVzKSB7Ci0gIGdsb2JhbF9pbnRlZ2VyID0gMDsKLSAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoewotICAgIEVYUEVDVF9FUSgxLCBnbG9iYWxfaW50ZWdl
cikgPDwgIkV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiI7Ci0gIH0sICJFeHBlY3RlZCBub24t
ZmF0YWwgZmFpbHVyZS4iKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRSgpIGNhbiByZWZlcmVuY2UgbG9jYWwgdmFyaWFibGVzCi0vLyAoc3RhdGljIG9yIG5vdCku
Ci1URVNUKEV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QsIENhblJlZmVyZW5jZUxvY2FsVmFyaWFi
bGVzKSB7Ci0gIGludCBtID0gMDsKLSAgc3RhdGljIGludCBuOwotICBuID0gMTsKLSAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoewotICAgIEVYUEVDVF9FUShtLCBuKSA8PCAiRXhwZWN0ZWQgbm9u
LWZhdGFsIGZhaWx1cmUuIjsKLSAgfSwgIkV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwot
fQotCi0vLyBUZXN0cyB0aGF0IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKCkgc3VjY2VlZHMgd2hl
biB0aGVyZSBpcyBleGFjdGx5Ci0vLyBvbmUgbm9uLWZhdGFsIGZhaWx1cmUgYW5kIG5vIGZhdGFs
IGZhaWx1cmUuCi1URVNUKEV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QsIFN1Y2NlZWRzV2hlblRo
ZXJlSXNPbmVOb25mYXRhbEZhaWx1cmUpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoewot
ICAgIEFERF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiI7Ci0gIH0s
ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBFWFBF
Q1RfTk9ORkFUQUxfRkFJTFVSRSgpIGZhaWxzIHdoZW4gdGhlcmUgaXMgbm8KLS8vIG5vbi1mYXRh
bCBmYWlsdXJlLgotVEVTVChFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LCBGYWlsc1doZW5UaGVy
ZUlzTm9Ob25mYXRhbEZhaWx1cmUpIHsKLSAgcHJpbnRmKCIoZXhwZWN0aW5nIGEgZmFpbHVyZSlc
biIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVz
dHMgdGhhdCBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgpIGZhaWxzIHdoZW4gdGhlcmUgYXJlIHR3
bwotLy8gbm9uLWZhdGFsIGZhaWx1cmVzLgotVEVTVChFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0
LCBGYWlsc1doZW5UaGVyZUFyZVR3b05vbmZhdGFsRmFpbHVyZXMpIHsKLSAgcHJpbnRmKCIoZXhw
ZWN0aW5nIGEgZmFpbHVyZSlcbiIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7Ci0gICAg
QUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUgMS4iOwotICAgIEFE
RF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlIDIuIjsKLSAgfSwgIiIp
OwotfQotCi0vLyBUZXN0cyB0aGF0IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKCkgZmFpbHMgd2hl
biB0aGVyZSBpcyBvbmUgZmF0YWwKLS8vIGZhaWx1cmUuCi1URVNUKEV4cGVjdE5vbmZhdGFsRmFp
bHVyZVRlc3QsIEZhaWxzV2hlblRoZXJlSXNPbmVGYXRhbEZhaWx1cmUpIHsKLSAgcHJpbnRmKCIo
ZXhwZWN0aW5nIGEgZmFpbHVyZSlcbiIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7Ci0g
ICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiI7Ci0gIH0sICIiKTsKLX0KLQot
Ly8gVGVzdHMgdGhhdCBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgpIGZhaWxzIHdoZW4gdGhlIHN0
YXRlbWVudCBiZWluZwotLy8gdGVzdGVkIHJldHVybnMuCi1URVNUKEV4cGVjdE5vbmZhdGFsRmFp
bHVyZVRlc3QsIEZhaWxzV2hlblN0YXRlbWVudFJldHVybnMpIHsKLSAgcHJpbnRmKCIoZXhwZWN0
aW5nIGEgZmFpbHVyZSlcbiIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7Ci0gICAgcmV0
dXJuOwotICB9LCAiIik7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi0vLyBUZXN0
cyB0aGF0IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKCkgZmFpbHMgd2hlbiB0aGUgc3RhdGVtZW50
IGJlaW5nCi0vLyB0ZXN0ZWQgdGhyb3dzLgotVEVTVChFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0
LCBGYWlsc1doZW5TdGF0ZW1lbnRUaHJvd3MpIHsKLSAgcHJpbnRmKCIoZXhwZWN0aW5nIGEgZmFp
bHVyZSlcbiIpOwotICB0cnkgewotICAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsKLSAgICAg
IHRocm93IDA7Ci0gICAgfSwgIiIpOwotICB9IGNhdGNoKGludCkgeyAgLy8gTk9MSU5UCi0gIH0K
LX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi0vLyBUZXN0cyB0aGF0IEVY
UEVDVF9GQVRBTF9GQUlMVVJFKCkgY2FuIHJlZmVyZW5jZSBnbG9iYWwgdmFyaWFibGVzLgotVEVT
VChFeHBlY3RGYXRhbEZhaWx1cmVUZXN0LCBDYW5SZWZlcmVuY2VHbG9iYWxWYXJpYWJsZXMpIHsK
LSAgZ2xvYmFsX2ludGVnZXIgPSAwOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7Ci0gICAgQVNT
RVJUX0VRKDEsIGdsb2JhbF9pbnRlZ2VyKSA8PCAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iOwot
ICB9LCAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBFWFBF
Q1RfRkFUQUxfRkFJTFVSRSgpIGNhbiByZWZlcmVuY2UgbG9jYWwgc3RhdGljCi0vLyB2YXJpYWJs
ZXMuCi1URVNUKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3QsIENhblJlZmVyZW5jZUxvY2FsU3RhdGlj
VmFyaWFibGVzKSB7Ci0gIHN0YXRpYyBpbnQgbjsKLSAgbiA9IDE7Ci0gIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKHsKLSAgICBBU1NFUlRfRVEoMCwgbikgPDwgIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUu
IjsKLSAgfSwgIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoKSBzdWNjZWVkcyB3aGVuIHRoZXJlIGlzIGV4YWN0bHkKLS8v
IG9uZSBmYXRhbCBmYWlsdXJlIGFuZCBubyBub24tZmF0YWwgZmFpbHVyZS4KLVRFU1QoRXhwZWN0
RmF0YWxGYWlsdXJlVGVzdCwgU3VjY2VlZHNXaGVuVGhlcmVJc09uZUZhdGFsRmFpbHVyZSkgewot
ICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7Ci0gICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYXRhbCBm
YWlsdXJlLiI7Ci0gIH0sICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiIpOwotfQotCi0vLyBUZXN0
cyB0aGF0IEVYUEVDVF9GQVRBTF9GQUlMVVJFKCkgZmFpbHMgd2hlbiB0aGVyZSBpcyBubyBmYXRh
bAotLy8gZmFpbHVyZS4KLVRFU1QoRXhwZWN0RmF0YWxGYWlsdXJlVGVzdCwgRmFpbHNXaGVuVGhl
cmVJc05vRmF0YWxGYWlsdXJlKSB7Ci0gIHByaW50ZigiKGV4cGVjdGluZyBhIGZhaWx1cmUpXG4i
KTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoewotICB9LCAiIik7Ci19Ci0KLS8vIEEgaGVscGVy
IGZvciBnZW5lcmF0aW5nIGEgZmF0YWwgZmFpbHVyZS4KLXZvaWQgRmF0YWxGYWlsdXJlKCkgewot
ICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIjsKLX0KLQotLy8gVGVzdHMgdGhh
dCBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgpIGZhaWxzIHdoZW4gdGhlcmUgYXJlIHR3bwotLy8gZmF0
YWwgZmFpbHVyZXMuCi1URVNUKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3QsIEZhaWxzV2hlblRoZXJl
QXJlVHdvRmF0YWxGYWlsdXJlcykgewotICBwcmludGYoIihleHBlY3RpbmcgYSBmYWlsdXJlKVxu
Iik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsKLSAgICBGYXRhbEZhaWx1cmUoKTsKLSAgICBG
YXRhbEZhaWx1cmUoKTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyB0aGF0IEVYUEVDVF9GQVRB
TF9GQUlMVVJFKCkgZmFpbHMgd2hlbiB0aGVyZSBpcyBvbmUgbm9uLWZhdGFsCi0vLyBmYWlsdXJl
LgotVEVTVChFeHBlY3RGYXRhbEZhaWx1cmVUZXN0LCBGYWlsc1doZW5UaGVyZUlzT25lTm9uZmF0
YWxGYWlsdXJlKSB7Ci0gIHByaW50ZigiKGV4cGVjdGluZyBhIGZhaWx1cmUpXG4iKTsKLSAgRVhQ
RUNUX0ZBVEFMX0ZBSUxVUkUoewotICAgIEFERF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIG5vbi1m
YXRhbCBmYWlsdXJlLiI7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBFWFBFQ1RfRkFU
QUxfRkFJTFVSRSgpIGZhaWxzIHdoZW4gdGhlIHN0YXRlbWVudCBiZWluZwotLy8gdGVzdGVkIHJl
dHVybnMuCi1URVNUKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3QsIEZhaWxzV2hlblN0YXRlbWVudFJl
dHVybnMpIHsKLSAgcHJpbnRmKCIoZXhwZWN0aW5nIGEgZmFpbHVyZSlcbiIpOwotICBFWFBFQ1Rf
RkFUQUxfRkFJTFVSRSh7Ci0gICAgcmV0dXJuOwotICB9LCAiIik7Ci19Ci0KLSNpZiBHVEVTVF9I
QVNfRVhDRVBUSU9OUwotCi0vLyBUZXN0cyB0aGF0IEVYUEVDVF9GQVRBTF9GQUlMVVJFKCkgZmFp
bHMgd2hlbiB0aGUgc3RhdGVtZW50IGJlaW5nCi0vLyB0ZXN0ZWQgdGhyb3dzLgotVEVTVChFeHBl
Y3RGYXRhbEZhaWx1cmVUZXN0LCBGYWlsc1doZW5TdGF0ZW1lbnRUaHJvd3MpIHsKLSAgcHJpbnRm
KCIoZXhwZWN0aW5nIGEgZmFpbHVyZSlcbiIpOwotICB0cnkgewotICAgIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKHsKLSAgICAgIHRocm93IDA7Ci0gICAgfSwgIiIpOwotICB9IGNhdGNoKGludCkgeyAg
Ly8gTk9MSU5UCi0gIH0KLX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi0v
LyBUaGlzICNpZmRlZiBibG9jayB0ZXN0cyB0aGUgb3V0cHV0IG9mIHZhbHVlLXBhcmFtZXRlcml6
ZWQgdGVzdHMuCi0KLXN0ZDo6c3RyaW5nIFBhcmFtTmFtZUZ1bmMoY29uc3QgdGVzdGluZzo6VGVz
dFBhcmFtSW5mbzxzdGQ6OnN0cmluZz4mIGluZm8pIHsKLSAgcmV0dXJuIGluZm8ucGFyYW07Ci19
Ci0KLWNsYXNzIFBhcmFtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHN0ZDo6
c3RyaW5nPiB7Ci19OwotCi1URVNUX1AoUGFyYW1UZXN0LCBTdWNjZXNzKSB7Ci0gIEVYUEVDVF9F
USgiYSIsIEdldFBhcmFtKCkpOwotfQotCi1URVNUX1AoUGFyYW1UZXN0LCBGYWlsdXJlKSB7Ci0g
IEVYUEVDVF9FUSgiYiIsIEdldFBhcmFtKCkpIDw8ICJFeHBlY3RlZCBmYWlsdXJlIjsKLX0KLQot
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoUHJpbnRpbmdTdHJpbmdzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgUGFyYW1UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VmFs
dWVzKHN0ZDo6c3RyaW5nKCJhIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1OYW1l
RnVuYyk7Ci0KLS8vIFRoaXMgI2lmZGVmIGJsb2NrIHRlc3RzIHRoZSBvdXRwdXQgb2YgdHlwZWQg
dGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1jbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci19OwotCi1UWVBFRF9U
RVNUX0NBU0UoVHlwZWRUZXN0LCB0ZXN0aW5nOjpUeXBlczxpbnQ+KTsKLQotVFlQRURfVEVTVChU
eXBlZFRlc3QsIFN1Y2Nlc3MpIHsKLSAgRVhQRUNUX0VRKDAsIFR5cGVQYXJhbSgpKTsKLX0KLQot
VFlQRURfVEVTVChUeXBlZFRlc3QsIEZhaWx1cmUpIHsKLSAgRVhQRUNUX0VRKDEsIFR5cGVQYXJh
bSgpKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSI7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZ
UEVEX1RFU1QKLQotLy8gVGhpcyAjaWZkZWYgYmxvY2sgdGVzdHMgdGhlIG91dHB1dCBvZiB0eXBl
LXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFR5cGVkVGVzdFAgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7Ci19OwotCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRlc3RQKTsKLQotVFlQRURfVEVTVF9Q
KFR5cGVkVGVzdFAsIFN1Y2Nlc3MpIHsKLSAgRVhQRUNUX0VRKDBVLCBUeXBlUGFyYW0oKSk7Ci19
Ci0KLVRZUEVEX1RFU1RfUChUeXBlZFRlc3RQLCBGYWlsdXJlKSB7Ci0gIEVYUEVDVF9FUSgxVSwg
VHlwZVBhcmFtKCkpIDw8ICJFeHBlY3RlZCBmYWlsdXJlIjsKLX0KLQotUkVHSVNURVJfVFlQRURf
VEVTVF9DQVNFX1AoVHlwZWRUZXN0UCwgU3VjY2VzcywgRmFpbHVyZSk7Ci0KLXR5cGVkZWYgdGVz
dGluZzo6VHlwZXM8dW5zaWduZWQgY2hhciwgdW5zaWduZWQgaW50PiBVbnNpZ25lZFR5cGVzOwot
SU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoVW5zaWduZWQsIFR5cGVkVGVzdFAsIFVuc2ln
bmVkVHlwZXMpOwotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotI2lmIEdU
RVNUX0hBU19ERUFUSF9URVNUCi0KLS8vIFdlIHJlbHkgb24gdGhlIGdvbGRlbiBmaWxlIHRvIHZl
cmlmeSB0aGF0IHRlc3RzIHdob3NlIHRlc3QgY2FzZQotLy8gbmFtZSBlbmRzIHdpdGggRGVhdGhU
ZXN0IGFyZSBydW4gZmlyc3QuCi0KLVRFU1QoQURlYXRoVGVzdCwgU2hvdWxkUnVuRmlyc3QpIHsK
LX0KLQotIyBpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotCi0vLyBXZSByZWx5IG9uIHRoZSBnb2xk
ZW4gZmlsZSB0byB2ZXJpZnkgdGhhdCB0eXBlZCB0ZXN0cyB3aG9zZSB0ZXN0Ci0vLyBjYXNlIG5h
bWUgZW5kcyB3aXRoIERlYXRoVGVzdCBhcmUgcnVuIGZpcnN0LgotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLWNsYXNzIEFUeXBlZERlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLX07
Ci0KLXR5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50LCBkb3VibGU+IE51bWVyaWNUeXBlczsKLVRZ
UEVEX1RFU1RfQ0FTRShBVHlwZWREZWF0aFRlc3QsIE51bWVyaWNUeXBlcyk7Ci0KLVRZUEVEX1RF
U1QoQVR5cGVkRGVhdGhUZXN0LCBTaG91bGRSdW5GaXJzdCkgewotfQotCi0jIGVuZGlmICAvLyBH
VEVTVF9IQVNfVFlQRURfVEVTVAotCi0jIGlmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotCi0v
LyBXZSByZWx5IG9uIHRoZSBnb2xkZW4gZmlsZSB0byB2ZXJpZnkgdGhhdCB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdHMKLS8vIHdob3NlIHRlc3QgY2FzZSBuYW1lIGVuZHMgd2l0aCBEZWF0aFRlc3Qg
YXJlIHJ1biBmaXJzdC4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBBVHlwZVBhcmFt
RGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotfTsKLQotVFlQRURfVEVTVF9DQVNF
X1AoQVR5cGVQYXJhbURlYXRoVGVzdCk7Ci0KLVRZUEVEX1RFU1RfUChBVHlwZVBhcmFtRGVhdGhU
ZXN0LCBTaG91bGRSdW5GaXJzdCkgewotfQotCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChB
VHlwZVBhcmFtRGVhdGhUZXN0LCBTaG91bGRSdW5GaXJzdCk7Ci0KLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKE15LCBBVHlwZVBhcmFtRGVhdGhUZXN0LCBOdW1lcmljVHlwZXMpOwotCi0j
IGVuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLSNlbmRpZiAgLy8gR1RFU1RfSEFT
X0RFQVRIX1RFU1QKLQotLy8gVGVzdHMgdmFyaW91cyBmYWlsdXJlIGNvbmRpdGlvbnMgb2YKLS8v
IEVYUEVDVF97LE5PTn1GQVRBTF9GQUlMVVJFeyxfT05fQUxMX1RIUkVBRFN9LgotY2xhc3MgRXhw
ZWN0RmFpbHVyZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0gcHVibGljOiAgLy8gTXVz
dCBiZSBwdWJsaWMgYW5kIG5vdCBwcm90ZWN0ZWQgZHVlIHRvIGEgYnVnIGluIGcrKyAzLjQuMi4K
LSAgZW51bSBGYWlsdXJlTW9kZSB7Ci0gICAgRkFUQUxfRkFJTFVSRSwKLSAgICBOT05GQVRBTF9G
QUlMVVJFCi0gIH07Ci0gIHN0YXRpYyB2b2lkIEFkZEZhaWx1cmUoRmFpbHVyZU1vZGUgZmFpbHVy
ZSkgewotICAgIGlmIChmYWlsdXJlID09IEZBVEFMX0ZBSUxVUkUpIHsKLSAgICAgIEZBSUwoKSA8
PCAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iOwotICAgIH0gZWxzZSB7Ci0gICAgICBBRERfRkFJ
TFVSRSgpIDw8ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iOwotICAgIH0KLSAgfQotfTsK
LQotVEVTVF9GKEV4cGVjdEZhaWx1cmVUZXN0LCBFeHBlY3RGYXRhbEZhaWx1cmUpIHsKLSAgLy8g
RXhwZWN0ZWQgZmF0YWwgZmFpbHVyZSwgYnV0IHN1Y2NlZWRzLgotICBwcmludGYoIihleHBlY3Rp
bmcgMSBmYWlsdXJlKVxuIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKFNVQ0NFRUQoKSwgIkV4
cGVjdGVkIGZhdGFsIGZhaWx1cmUuIik7Ci0gIC8vIEV4cGVjdGVkIGZhdGFsIGZhaWx1cmUsIGJ1
dCBnb3QgYSBub24tZmF0YWwgZmFpbHVyZS4KLSAgcHJpbnRmKCIoZXhwZWN0aW5nIDEgZmFpbHVy
ZSlcbiIpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRGYWlsdXJlKE5PTkZBVEFMX0ZBSUxV
UkUpLCAiRXhwZWN0ZWQgbm9uLWZhdGFsICIKLSAgICAgICAgICAgICAgICAgICAgICAgImZhaWx1
cmUuIik7Ci0gIC8vIFdyb25nIG1lc3NhZ2UuCi0gIHByaW50ZigiKGV4cGVjdGluZyAxIGZhaWx1
cmUpXG4iKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQWRkRmFpbHVyZShGQVRBTF9GQUlMVVJF
KSwgIlNvbWUgb3RoZXIgZmF0YWwgZmFpbHVyZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICJl
eHBlY3RlZC4iKTsKLX0KLQotVEVTVF9GKEV4cGVjdEZhaWx1cmVUZXN0LCBFeHBlY3ROb25GYXRh
bEZhaWx1cmUpIHsKLSAgLy8gRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUsIGJ1dCBzdWNjZWVk
cy4KLSAgcHJpbnRmKCIoZXhwZWN0aW5nIDEgZmFpbHVyZSlcbiIpOwotICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRShTVUNDRUVEKCksICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKTsKLSAg
Ly8gRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUsIGJ1dCBnb3QgYSBmYXRhbCBmYWlsdXJlLgot
ICBwcmludGYoIihleHBlY3RpbmcgMSBmYWlsdXJlKVxuIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEFkZEZhaWx1cmUoRkFUQUxfRkFJTFVSRSksICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJl
LiIpOwotICAvLyBXcm9uZyBtZXNzYWdlLgotICBwcmludGYoIihleHBlY3RpbmcgMSBmYWlsdXJl
KVxuIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFkZEZhaWx1cmUoTk9ORkFUQUxfRkFJ
TFVSRSksICJTb21lIG90aGVyIG5vbi1mYXRhbCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICJmYWlsdXJlLiIpOwotfQotCi0jaWYgR1RFU1RfSVNfVEhSRUFEU0FGRQotCi1jbGFzcyBFeHBl
Y3RGYWlsdXJlV2l0aFRocmVhZHNUZXN0IDogcHVibGljIEV4cGVjdEZhaWx1cmVUZXN0IHsKLSBw
cm90ZWN0ZWQ6Ci0gIHN0YXRpYyB2b2lkIEFkZEZhaWx1cmVJbk90aGVyVGhyZWFkKEZhaWx1cmVN
b2RlIGZhaWx1cmUpIHsKLSAgICBUaHJlYWRXaXRoUGFyYW08RmFpbHVyZU1vZGU+IHRocmVhZCgm
QWRkRmFpbHVyZSwgZmFpbHVyZSwgTlVMTCk7Ci0gICAgdGhyZWFkLkpvaW4oKTsKLSAgfQotfTsK
LQotVEVTVF9GKEV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rlc3QsIEV4cGVjdEZhdGFsRmFpbHVy
ZSkgewotICAvLyBXZSBvbmx5IGludGVyY2VwdCB0aGUgY3VycmVudCB0aHJlYWQuCi0gIHByaW50
ZigiKGV4cGVjdGluZyAyIGZhaWx1cmVzKVxuIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFk
ZEZhaWx1cmVJbk90aGVyVGhyZWFkKEZBVEFMX0ZBSUxVUkUpLAotICAgICAgICAgICAgICAgICAg
ICAgICAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKTsKLX0KLQotVEVTVF9GKEV4cGVjdEZhaWx1
cmVXaXRoVGhyZWFkc1Rlc3QsIEV4cGVjdE5vbkZhdGFsRmFpbHVyZSkgewotICAvLyBXZSBvbmx5
IGludGVyY2VwdCB0aGUgY3VycmVudCB0aHJlYWQuCi0gIHByaW50ZigiKGV4cGVjdGluZyAyIGZh
aWx1cmVzKVxuIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFkZEZhaWx1cmVJbk90aGVy
VGhyZWFkKE5PTkZBVEFMX0ZBSUxVUkUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhw
ZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuIik7Ci19Ci0KLXR5cGVkZWYgRXhwZWN0RmFpbHVyZVdp
dGhUaHJlYWRzVGVzdCBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlclRlc3Q7Ci0KLS8v
IFRlc3RzIHRoYXQgdGhlIFNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyIG9ubHkgY2F0
Y2hlcyBmYWlsdXJlcyBmcm9tCi0vLyB0aGUgY3VycmVudCB0aHJlYWQgaWYgaXQgaXMgaW5zdGFu
dGlhdGVkIHdpdGggSU5URVJDRVBUX09OTFlfQ1VSUkVOVF9USFJFQUQuCi1URVNUX0YoU2NvcGVk
RmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJUZXN0LCBJbnRlcmNlcHRPbmx5Q3VycmVudFRocmVh
ZCkgewotICBwcmludGYoIihleHBlY3RpbmcgMiBmYWlsdXJlcylcbiIpOwotICBUZXN0UGFydFJl
c3VsdEFycmF5IHJlc3VsdHM7Ci0gIHsKLSAgICBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBv
cnRlciByZXBvcnRlcigKLSAgICAgICAgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI6
OklOVEVSQ0VQVF9PTkxZX0NVUlJFTlRfVEhSRUFELAotICAgICAgICAmcmVzdWx0cyk7Ci0gICAg
QWRkRmFpbHVyZUluT3RoZXJUaHJlYWQoRkFUQUxfRkFJTFVSRSk7Ci0gICAgQWRkRmFpbHVyZUlu
T3RoZXJUaHJlYWQoTk9ORkFUQUxfRkFJTFVSRSk7Ci0gIH0KLSAgLy8gVGhlIHR3byBmYWlsdXJl
cyBzaG91bGQgbm90IGhhdmUgYmVlbiBpbnRlcmNlcHRlZC4KLSAgRVhQRUNUX0VRKDAsIHJlc3Vs
dHMuc2l6ZSgpKSA8PCAiVGhpcyBzaG91bGRuJ3QgZmFpbC4iOwotfQotCi0jZW5kaWYgIC8vIEdU
RVNUX0lTX1RIUkVBRFNBRkUKLQotVEVTVF9GKEV4cGVjdEZhaWx1cmVUZXN0LCBFeHBlY3RGYXRh
bEZhaWx1cmVPbkFsbFRocmVhZHMpIHsKLSAgLy8gRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZSwgYnV0
IHN1Y2NlZWRzLgotICBwcmludGYoIihleHBlY3RpbmcgMSBmYWlsdXJlKVxuIik7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURTKFNVQ0NFRUQoKSwgIkV4cGVjdGVkIGZhdGFs
IGZhaWx1cmUuIik7Ci0gIC8vIEV4cGVjdGVkIGZhdGFsIGZhaWx1cmUsIGJ1dCBnb3QgYSBub24t
ZmF0YWwgZmFpbHVyZS4KLSAgcHJpbnRmKCIoZXhwZWN0aW5nIDEgZmFpbHVyZSlcbiIpOwotICBF
WFBFQ1RfRkFUQUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyhBZGRGYWlsdXJlKE5PTkZBVEFMX0ZB
SUxVUkUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQg
bm9uLWZhdGFsIGZhaWx1cmUuIik7Ci0gIC8vIFdyb25nIG1lc3NhZ2UuCi0gIHByaW50ZigiKGV4
cGVjdGluZyAxIGZhaWx1cmUpXG4iKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkVfT05fQUxMX1RI
UkVBRFMoQWRkRmFpbHVyZShGQVRBTF9GQUlMVVJFKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlNvbWUgb3RoZXIgZmF0YWwgZmFpbHVyZSBleHBlY3RlZC4iKTsKLX0K
LQotVEVTVF9GKEV4cGVjdEZhaWx1cmVUZXN0LCBFeHBlY3ROb25GYXRhbEZhaWx1cmVPbkFsbFRo
cmVhZHMpIHsKLSAgLy8gRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUsIGJ1dCBzdWNjZWVkcy4K
LSAgcHJpbnRmKCIoZXhwZWN0aW5nIDEgZmFpbHVyZSlcbiIpOwotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRV9PTl9BTExfVEhSRUFEUyhTVUNDRUVEKCksICJFeHBlY3RlZCBub24tZmF0YWwgIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFpbHVyZS4iKTsKLSAg
Ly8gRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUsIGJ1dCBnb3QgYSBmYXRhbCBmYWlsdXJlLgot
ICBwcmludGYoIihleHBlY3RpbmcgMSBmYWlsdXJlKVxuIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFX09OX0FMTF9USFJFQURTKEFkZEZhaWx1cmUoRkFUQUxfRkFJTFVSRSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJl
LiIpOwotICAvLyBXcm9uZyBtZXNzYWdlLgotICBwcmludGYoIihleHBlY3RpbmcgMSBmYWlsdXJl
KVxuIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURTKEFkZEZhaWx1
cmUoTk9ORkFUQUxfRkFJTFVSRSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJTb21lIG90aGVyIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwotfQotCi0KLS8vIFR3byB0
ZXN0IGVudmlyb25tZW50cyBmb3IgdGVzdGluZyB0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJv
bm1lbnQoKS4KLQotY2xhc3MgRm9vRW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJv
bm1lbnQgewotIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHByaW50Zigi
JXMiLCAiRm9vRW52aXJvbm1lbnQ6OlNldFVwKCkgY2FsbGVkLlxuIik7Ci0gIH0KLQotICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgcHJpbnRmKCIlcyIsICJGb29FbnZpcm9ubWVudDo6
VGVhckRvd24oKSBjYWxsZWQuXG4iKTsKLSAgICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhdGFsIGZh
aWx1cmUuIjsKLSAgfQotfTsKLQotY2xhc3MgQmFyRW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGlu
Zzo6RW52aXJvbm1lbnQgewotIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAg
IHByaW50ZigiJXMiLCAiQmFyRW52aXJvbm1lbnQ6OlNldFVwKCkgY2FsbGVkLlxuIik7Ci0gIH0K
LQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgcHJpbnRmKCIlcyIsICJCYXJFbnZp
cm9ubWVudDo6VGVhckRvd24oKSBjYWxsZWQuXG4iKTsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJF
eHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iOwotICB9Ci19OwotCi0vLyBUaGUgbWFpbiBmdW5j
dGlvbi4KLS8vCi0vLyBUaGUgaWRlYSBpcyB0byB1c2UgR29vZ2xlIFRlc3QgdG8gcnVuIGFsbCB0
aGUgdGVzdHMgd2UgaGF2ZSBkZWZpbmVkIChzb21lCi0vLyBvZiB0aGVtIGFyZSBpbnRlbmRlZCB0
byBmYWlsKSwgYW5kIHRoZW4gY29tcGFyZSB0aGUgdGVzdCByZXN1bHRzCi0vLyB3aXRoIHRoZSAi
Z29sZGVuIiBmaWxlLgotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIHRlc3Rp
bmc6OkdURVNUX0ZMQUcocHJpbnRfdGltZSkgPSBmYWxzZTsKLQotICAvLyBXZSBqdXN0IHJ1biB0
aGUgdGVzdHMsIGtub3dpbmcgc29tZSBvZiB0aGVtIGFyZSBpbnRlbmRlZCB0byBmYWlsLgotICAv
LyBXZSB3aWxsIHVzZSBhIHNlcGFyYXRlIFB5dGhvbiBzY3JpcHQgdG8gY29tcGFyZSB0aGUgb3V0
cHV0IG9mCi0gIC8vIHRoaXMgcHJvZ3JhbSB3aXRoIHRoZSBnb2xkZW4gZmlsZS4KLQotICAvLyBJ
dCdzIGhhcmQgdG8gdGVzdCBJbml0R29vZ2xlVGVzdCgpIGRpcmVjdGx5LCBhcyBpdCBoYXMgbWFu
eQotICAvLyBnbG9iYWwgc2lkZSBlZmZlY3RzLiAgVGhlIGZvbGxvd2luZyBsaW5lIHNlcnZlcyBh
cyBhIHNhbml0eSB0ZXN0Ci0gIC8vIGZvciBpdC4KLSAgdGVzdGluZzo6SW5pdEdvb2dsZVRlc3Qo
JmFyZ2MsIGFyZ3YpOwotICBib29sIGludGVybmFsX3NraXBfZW52aXJvbm1lbnRfYW5kX2FkX2hv
Y190ZXN0cyA9Ci0gICAgICBzdGQ6OmNvdW50KGFyZ3YsIGFyZ3YgKyBhcmdjLAotICAgICAgICAg
ICAgICAgICBzdGQ6OnN0cmluZygiaW50ZXJuYWxfc2tpcF9lbnZpcm9ubWVudF9hbmRfYWRfaG9j
X3Rlc3RzIikpID4gMDsKLQotI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCi0gIGlmICh0ZXN0aW5n
OjppbnRlcm5hbDo6R1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgIT0gIiIpIHsK
LSAgICAvLyBTa2lwIHRoZSB1c3VhbCBvdXRwdXQgY2FwdHVyaW5nIGlmIHdlJ3JlIHJ1bm5pbmcg
YXMgdGhlIGNoaWxkCi0gICAgLy8gcHJvY2VzcyBvZiBhbiB0aHJlYWRzYWZlLXN0eWxlIGRlYXRo
IHRlc3QuCi0jIGlmIEdURVNUX09TX1dJTkRPV1MKLSAgICBwb3NpeDo6RlJlb3BlbigibnVsOiIs
ICJ3Iiwgc3Rkb3V0KTsKLSMgZWxzZQotICAgIHBvc2l4OjpGUmVvcGVuKCIvZGV2L251bGwiLCAi
dyIsIHN0ZG91dCk7Ci0jIGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCi0gICAgcmV0dXJuIFJV
Tl9BTExfVEVTVFMoKTsKLSAgfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfREVBVEhfVEVTVAotCi0g
IGlmIChpbnRlcm5hbF9za2lwX2Vudmlyb25tZW50X2FuZF9hZF9ob2NfdGVzdHMpCi0gICAgcmV0
dXJuIFJVTl9BTExfVEVTVFMoKTsKLQotICAvLyBSZWdpc3RlcnMgdHdvIGdsb2JhbCB0ZXN0IGVu
dmlyb25tZW50cy4KLSAgLy8gVGhlIGdvbGRlbiBmaWxlIHZlcmlmaWVzIHRoYXQgdGhleSBhcmUg
c2V0IHVwIGluIHRoZSBvcmRlciB0aGV5Ci0gIC8vIGFyZSByZWdpc3RlcmVkLCBhbmQgdG9ybiBk
b3duIGluIHRoZSByZXZlcnNlIG9yZGVyLgotICB0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJv
bm1lbnQobmV3IEZvb0Vudmlyb25tZW50KTsKLSAgdGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmly
b25tZW50KG5ldyBCYXJFbnZpcm9ubWVudCk7Ci0KLSAgcmV0dXJuIFJ1bkFsbFRlc3RzKCk7Ci19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X291dHB1
dF90ZXN0X2dvbGRlbl9saW4udHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9n
dGVzdF9vdXRwdXRfdGVzdF9nb2xkZW5fbGluLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjc3ZDlmNDBlODk0YTRlMDViOGM3ODU0YTVjNzhmMTAzYmFiMTY5Mi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC90ZXN0L2d0ZXN0X291dHB1dF90ZXN0X2dvbGRlbl9saW4udHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNzYxICswLDAgQEAKLVRoZSBub24tdGVzdCBwYXJ0IG9mIHRoZSBjb2RlIGlzIGV4
cGVjdGVkIHRvIGhhdmUgMiBmYWlsdXJlcy4KLQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZh
aWx1cmUKLVZhbHVlIG9mOiBmYWxzZQotICBBY3R1YWw6IGZhbHNlCi1FeHBlY3RlZDogdHJ1ZQot
Z3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRo
ZXNlIHZhbHVlczoKLSAgMgotICAzCi0bWzA7MzJtWz09PT09PT09PT1dIBtbbVJ1bm5pbmcgNjYg
dGVzdHMgZnJvbSAyOSB0ZXN0IGNhc2VzLgotG1swOzMybVstLS0tLS0tLS0tXSAbW21HbG9iYWwg
dGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuCi1Gb29FbnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQu
Ci1CYXJFbnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuCi0bWzA7MzJtWy0tLS0tLS0tLS1dIBtb
bTEgdGVzdCBmcm9tIEFEZWF0aFRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttQURlYXRoVGVz
dC5TaG91bGRSdW5GaXJzdAotG1swOzMybVsgICAgICAgT0sgXSAbW21BRGVhdGhUZXN0LlNob3Vs
ZFJ1bkZpcnN0Ci0bWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTEgdGVzdCBmcm9tIEFUeXBlZERlYXRo
VGVzdC8wLCB3aGVyZSBUeXBlUGFyYW0gPSBpbnQKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttQVR5
cGVkRGVhdGhUZXN0LzAuU2hvdWxkUnVuRmlyc3QKLRtbMDszMm1bICAgICAgIE9LIF0gG1ttQVR5
cGVkRGVhdGhUZXN0LzAuU2hvdWxkUnVuRmlyc3QKLRtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0
ZXN0IGZyb20gQVR5cGVkRGVhdGhUZXN0LzEsIHdoZXJlIFR5cGVQYXJhbSA9IGRvdWJsZQotG1sw
OzMybVsgUlVOICAgICAgXSAbW21BVHlwZWREZWF0aFRlc3QvMS5TaG91bGRSdW5GaXJzdAotG1sw
OzMybVsgICAgICAgT0sgXSAbW21BVHlwZWREZWF0aFRlc3QvMS5TaG91bGRSdW5GaXJzdAotG1sw
OzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBNeS9BVHlwZVBhcmFtRGVhdGhUZXN0LzAs
IHdoZXJlIFR5cGVQYXJhbSA9IGludAotG1swOzMybVsgUlVOICAgICAgXSAbW21NeS9BVHlwZVBh
cmFtRGVhdGhUZXN0LzAuU2hvdWxkUnVuRmlyc3QKLRtbMDszMm1bICAgICAgIE9LIF0gG1ttTXkv
QVR5cGVQYXJhbURlYXRoVGVzdC8wLlNob3VsZFJ1bkZpcnN0Ci0bWzA7MzJtWy0tLS0tLS0tLS1d
IBtbbTEgdGVzdCBmcm9tIE15L0FUeXBlUGFyYW1EZWF0aFRlc3QvMSwgd2hlcmUgVHlwZVBhcmFt
ID0gZG91YmxlCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbU15L0FUeXBlUGFyYW1EZWF0aFRlc3Qv
MS5TaG91bGRSdW5GaXJzdAotG1swOzMybVsgICAgICAgT0sgXSAbW21NeS9BVHlwZVBhcmFtRGVh
dGhUZXN0LzEuU2hvdWxkUnVuRmlyc3QKLRtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMiB0ZXN0cyBm
cm9tIFBhc3NpbmdUZXN0Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbVBhc3NpbmdUZXN0LlBhc3Np
bmdUZXN0MQotG1swOzMybVsgICAgICAgT0sgXSAbW21QYXNzaW5nVGVzdC5QYXNzaW5nVGVzdDEK
LRtbMDszMm1bIFJVTiAgICAgIF0gG1ttUGFzc2luZ1Rlc3QuUGFzc2luZ1Rlc3QyCi0bWzA7MzJt
WyAgICAgICBPSyBdIBtbbVBhc3NpbmdUZXN0LlBhc3NpbmdUZXN0MgotG1swOzMybVstLS0tLS0t
LS0tXSAbW20yIHRlc3RzIGZyb20gTm9uZmF0YWxGYWlsdXJlVGVzdAotG1swOzMybVsgUlVOICAg
ICAgXSAbW21Ob25mYXRhbEZhaWx1cmVUZXN0LkVzY2FwZXNTdHJpbmdPcGVyYW5kcwotZ3Rlc3Rf
b3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZh
bHVlczoKLSAga0dvbGRlblN0cmluZwotICAgIFdoaWNoIGlzOiAiXCJMaW5lIgotICBhY3R1YWwK
LSAgICBXaGljaCBpczogImFjdHVhbCBcInN0cmluZ1wiIgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNj
OiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKLSAgZ29sZGVu
Ci0gICAgV2hpY2ggaXM6ICJcIkxpbmUiCi0gIGFjdHVhbAotICAgIFdoaWNoIGlzOiAiYWN0dWFs
IFwic3RyaW5nXCIiCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU5vbmZhdGFsRmFpbHVyZVRlc3Qu
RXNjYXBlc1N0cmluZ09wZXJhbmRzCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbU5vbmZhdGFsRmFp
bHVyZVRlc3QuRGlmZkZvckxvbmdTdHJpbmdzCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFp
bHVyZQotRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgotICBnb2xkZW5fc3RyCi0g
ICAgV2hpY2ggaXM6ICJcIkxpbmVcMCAxXCJcbkxpbmUgMiIKLSAgIkxpbmUgMiIKLVdpdGggZGlm
ZjoKLUBAIC0xLDIgQEAKLS1cIkxpbmVcMCAxXCIKLSBMaW5lIDIKLQotG1swOzMxbVsgIEZBSUxF
RCAgXSAbW21Ob25mYXRhbEZhaWx1cmVUZXN0LkRpZmZGb3JMb25nU3RyaW5ncwotG1swOzMybVst
LS0tLS0tLS0tXSAbW20zIHRlc3RzIGZyb20gRmF0YWxGYWlsdXJlVGVzdAotG1swOzMybVsgUlVO
ICAgICAgXSAbW21GYXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91dGluZQotKGV4
cGVjdGluZyBhIGZhaWx1cmUgdGhhdCB4IHNob3VsZCBiZSAxKQotZ3Rlc3Rfb3V0cHV0X3Rlc3Rf
LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKLSAgMQot
ICB4Ci0gICAgV2hpY2ggaXM6IDIKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRmF0YWxGYWlsdXJl
VGVzdC5GYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttRmF0
YWxGYWlsdXJlVGVzdC5GYXRhbEZhaWx1cmVJbk5lc3RlZFN1YnJvdXRpbmUKLShleHBlY3Rpbmcg
YSBmYWlsdXJlIHRoYXQgeCBzaG91bGQgYmUgMSkKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBG
YWlsdXJlCi1FeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6Ci0gIDEKLSAgeAotICAg
IFdoaWNoIGlzOiAyCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUZhdGFsRmFpbHVyZVRlc3QuRmF0
YWxGYWlsdXJlSW5OZXN0ZWRTdWJyb3V0aW5lCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbUZhdGFs
RmFpbHVyZVRlc3QuTm9uZmF0YWxGYWlsdXJlSW5TdWJyb3V0aW5lCi0oZXhwZWN0aW5nIGEgZmFp
bHVyZSBvbiBmYWxzZSkKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1WYWx1ZSBv
ZjogZmFsc2UKLSAgQWN0dWFsOiBmYWxzZQotRXhwZWN0ZWQ6IHRydWUKLRtbMDszMW1bICBGQUlM
RUQgIF0gG1ttRmF0YWxGYWlsdXJlVGVzdC5Ob25mYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUKLRtb
MDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0ZXN0IGZyb20gTG9nZ2luZ1Rlc3QKLRtbMDszMm1bIFJV
TiAgICAgIF0gG1ttTG9nZ2luZ1Rlc3QuSW50ZXJsZWF2aW5nTG9nZ2luZ0FuZEFzc2VydGlvbnMK
LShleHBlY3RpbmcgMiBmYWlsdXJlcyBvbiAoMykgPj0gKGFbaV0pKQotaSA9PSAwCi1pID09IDEK
LWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1FeHBlY3RlZDogKDMpID49IChhW2ld
KSwgYWN0dWFsOiAzIHZzIDkKLWkgPT0gMgotaSA9PSAzCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6
IzogRmFpbHVyZQotRXhwZWN0ZWQ6ICgzKSA+PSAoYVtpXSksIGFjdHVhbDogMyB2cyA2Ci0bWzA7
MzFtWyAgRkFJTEVEICBdIBtbbUxvZ2dpbmdUZXN0LkludGVybGVhdmluZ0xvZ2dpbmdBbmRBc3Nl
cnRpb25zCi0bWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTYgdGVzdHMgZnJvbSBTQ09QRURfVFJBQ0VU
ZXN0Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbVNDT1BFRF9UUkFDRVRlc3QuT2JleXNTY29wZXMK
LShleHBlY3RlZCB0byBmYWlsKQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZh
aWxlZAotVGhpcyBmYWlsdXJlIGlzIGV4cGVjdGVkLCBhbmQgc2hvdWxkbid0IGhhdmUgYSB0cmFj
ZS4KLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1GYWlsZWQKLVRoaXMgZmFpbHVy
ZSBpcyBleHBlY3RlZCwgYW5kIHNob3VsZCBoYXZlIGEgdHJhY2UuCi1Hb29nbGUgVGVzdCB0cmFj
ZToKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBFeHBlY3RlZCB0cmFjZQotZ3Rlc3Rfb3V0cHV0
X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotVGhpcyBmYWlsdXJlIGlzIGV4cGVjdGVkLCBh
bmQgc2hvdWxkbid0IGhhdmUgYSB0cmFjZS4KLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttU0NPUEVE
X1RSQUNFVGVzdC5PYmV5c1Njb3BlcwotG1swOzMybVsgUlVOICAgICAgXSAbW21TQ09QRURfVFJB
Q0VUZXN0LldvcmtzSW5Mb29wCi0oZXhwZWN0ZWQgdG8gZmFpbCkKLWd0ZXN0X291dHB1dF90ZXN0
Xy5jYzojOiBGYWlsdXJlCi1FeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6Ci0gIDIK
LSAgbgotICAgIFdoaWNoIGlzOiAxCi1Hb29nbGUgVGVzdCB0cmFjZToKLWd0ZXN0X291dHB1dF90
ZXN0Xy5jYzojOiBpID0gMQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVj
dGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKLSAgMQotICBuCi0gICAgV2hpY2ggaXM6IDIK
LUdvb2dsZSBUZXN0IHRyYWNlOgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IGkgPSAyCi0bWzA7
MzFtWyAgRkFJTEVEICBdIBtbbVNDT1BFRF9UUkFDRVRlc3QuV29ya3NJbkxvb3AKLRtbMDszMm1b
IFJVTiAgICAgIF0gG1ttU0NPUEVEX1RSQUNFVGVzdC5Xb3Jrc0luU3Vicm91dGluZQotKGV4cGVj
dGVkIHRvIGZhaWwpCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRXhwZWN0ZWQg
ZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgotICAyCi0gIG4KLSAgICBXaGljaCBpczogMQotR29v
Z2xlIFRlc3QgdHJhY2U6Ci1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogbiA9IDEKLWd0ZXN0X291
dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1FeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1
ZXM6Ci0gIDEKLSAgbgotICAgIFdoaWNoIGlzOiAyCi1Hb29nbGUgVGVzdCB0cmFjZToKLWd0ZXN0
X291dHB1dF90ZXN0Xy5jYzojOiBuID0gMgotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21TQ09QRURf
VFJBQ0VUZXN0LldvcmtzSW5TdWJyb3V0aW5lCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbVNDT1BF
RF9UUkFDRVRlc3QuQ2FuQmVOZXN0ZWQKLShleHBlY3RlZCB0byBmYWlsKQotZ3Rlc3Rfb3V0cHV0
X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoK
LSAgMQotICBuCi0gICAgV2hpY2ggaXM6IDIKLUdvb2dsZSBUZXN0IHRyYWNlOgotZ3Rlc3Rfb3V0
cHV0X3Rlc3RfLmNjOiM6IG4gPSAyCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogCi0bWzA7MzFt
WyAgRkFJTEVEICBdIBtbbVNDT1BFRF9UUkFDRVRlc3QuQ2FuQmVOZXN0ZWQKLRtbMDszMm1bIFJV
TiAgICAgIF0gG1ttU0NPUEVEX1RSQUNFVGVzdC5DYW5CZVJlcGVhdGVkCi0oZXhwZWN0ZWQgdG8g
ZmFpbCkKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1GYWlsZWQKLVRoaXMgZmFp
bHVyZSBpcyBleHBlY3RlZCwgYW5kIHNob3VsZCBjb250YWluIHRyYWNlIHBvaW50IEEuCi1Hb29n
bGUgVGVzdCB0cmFjZToKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBBCi1ndGVzdF9vdXRwdXRf
dGVzdF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1UaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQsIGFu
ZCBzaG91bGQgY29udGFpbiB0cmFjZSBwb2ludCBBIGFuZCBCLgotR29vZ2xlIFRlc3QgdHJhY2U6
Ci1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogQgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEEK
LWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1GYWlsZWQKLVRoaXMgZmFpbHVyZSBp
cyBleHBlY3RlZCwgYW5kIHNob3VsZCBjb250YWluIHRyYWNlIHBvaW50IEEsIEIsIGFuZCBDLgot
R29vZ2xlIFRlc3QgdHJhY2U6Ci1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogQwotZ3Rlc3Rfb3V0
cHV0X3Rlc3RfLmNjOiM6IEIKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBBCi1ndGVzdF9vdXRw
dXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1UaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQs
IGFuZCBzaG91bGQgY29udGFpbiB0cmFjZSBwb2ludCBBLCBCLCBhbmQgRC4KLUdvb2dsZSBUZXN0
IHRyYWNlOgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEQKLWd0ZXN0X291dHB1dF90ZXN0Xy5j
YzojOiBCCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogQQotG1swOzMxbVsgIEZBSUxFRCAgXSAb
W21TQ09QRURfVFJBQ0VUZXN0LkNhbkJlUmVwZWF0ZWQKLRtbMDszMm1bIFJVTiAgICAgIF0gG1tt
U0NPUEVEX1RSQUNFVGVzdC5Xb3Jrc0NvbmN1cnJlbnRseQotKGV4cGVjdGluZyA2IGZhaWx1cmVz
KQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQgZmFp
bHVyZSAjMSAoaW4gdGhyZWFkIEIsIG9ubHkgdHJhY2UgQiBhbGl2ZSkuCi1Hb29nbGUgVGVzdCB0
cmFjZToKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBUcmFjZSBCCi1ndGVzdF9vdXRwdXRfdGVz
dF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICMyIChpbiB0aHJlYWQg
QSwgdHJhY2UgQSAmIEIgYm90aCBhbGl2ZSkuCi1Hb29nbGUgVGVzdCB0cmFjZToKLWd0ZXN0X291
dHB1dF90ZXN0Xy5jYzojOiBUcmFjZSBBCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVy
ZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICMzIChpbiB0aHJlYWQgQiwgdHJhY2UgQSAmIEIg
Ym90aCBhbGl2ZSkuCi1Hb29nbGUgVGVzdCB0cmFjZToKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzoj
OiBUcmFjZSBCCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1FeHBl
Y3RlZCBmYWlsdXJlICM0IChpbiB0aHJlYWQgQiwgb25seSB0cmFjZSBBIGFsaXZlKS4KLWd0ZXN0
X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1GYWlsZWQKLUV4cGVjdGVkIGZhaWx1cmUgIzUg
KGluIHRocmVhZCBBLCBvbmx5IHRyYWNlIEEgYWxpdmUpLgotR29vZ2xlIFRlc3QgdHJhY2U6Ci1n
dGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogVHJhY2UgQQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6
IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQgZmFpbHVyZSAjNiAoaW4gdGhyZWFkIEEsIG5vIHRy
YWNlIGFsaXZlKS4KLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttU0NPUEVEX1RSQUNFVGVzdC5Xb3Jr
c0NvbmN1cnJlbnRseQotG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBOb25GYXRh
bEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1tt
Tm9uRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0LkZhaWx1cmVJbkNvbnN0cnVj
dG9yCi0oZXhwZWN0aW5nIDUgZmFpbHVyZXMpCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFp
bHVyZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICMxLCBpbiB0aGUgdGVzdCBmaXh0dXJlIGMn
dG9yLgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQg
ZmFpbHVyZSAjMiwgaW4gU2V0VXAoKS4KLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJl
Ci1GYWlsZWQKLUV4cGVjdGVkIGZhaWx1cmUgIzMsIGluIHRoZSB0ZXN0IGJvZHkuCi1ndGVzdF9v
dXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICM0LCBp
biBUZWFyRG93bi4KLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1GYWlsZWQKLUV4
cGVjdGVkIGZhaWx1cmUgIzUsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuCi0bWzA7MzFtWyAg
RkFJTEVEICBdIBtbbU5vbkZhdGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdC5GYWls
dXJlSW5Db25zdHJ1Y3RvcgotG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBGYXRh
bEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1tt
RmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0LkZhaWx1cmVJbkNvbnN0cnVjdG9y
Ci0oZXhwZWN0aW5nIDIgZmFpbHVyZXMpCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVy
ZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICMxLCBpbiB0aGUgdGVzdCBmaXh0dXJlIGMndG9y
LgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQgZmFp
bHVyZSAjMiwgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rvci4KLRtbMDszMW1bICBGQUlMRUQgIF0g
G1ttRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0LkZhaWx1cmVJbkNvbnN0cnVj
dG9yCi0bWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTEgdGVzdCBmcm9tIE5vbkZhdGFsRmFpbHVyZUlu
U2V0VXBUZXN0Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbU5vbkZhdGFsRmFpbHVyZUluU2V0VXBU
ZXN0LkZhaWx1cmVJblNldFVwCi0oZXhwZWN0aW5nIDQgZmFpbHVyZXMpCi1ndGVzdF9vdXRwdXRf
dGVzdF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICMxLCBpbiBTZXRV
cCgpLgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQg
ZmFpbHVyZSAjMiwgaW4gdGhlIHRlc3QgZnVuY3Rpb24uCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6
IzogRmFpbHVyZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICMzLCBpbiBUZWFyRG93bigpLgot
Z3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQgZmFpbHVy
ZSAjNCwgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rvci4KLRtbMDszMW1bICBGQUlMRUQgIF0gG1tt
Tm9uRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QuRmFpbHVyZUluU2V0VXAKLRtbMDszMm1bLS0tLS0t
LS0tLV0gG1ttMSB0ZXN0IGZyb20gRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QKLRtbMDszMm1bIFJV
TiAgICAgIF0gG1ttRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QuRmFpbHVyZUluU2V0VXAKLShleHBl
Y3RpbmcgMyBmYWlsdXJlcykKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYWlsdXJlCi1GYWls
ZWQKLUV4cGVjdGVkIGZhaWx1cmUgIzEsIGluIFNldFVwKCkuCi1ndGVzdF9vdXRwdXRfdGVzdF8u
Y2M6IzogRmFpbHVyZQotRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlICMyLCBpbiBUZWFyRG93bigp
LgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQgZmFp
bHVyZSAjMywgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rvci4KLRtbMDszMW1bICBGQUlMRUQgIF0g
G1ttRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QuRmFpbHVyZUluU2V0VXAKLRtbMDszMm1bLS0tLS0t
LS0tLV0gG1ttMSB0ZXN0IGZyb20gQWRkRmFpbHVyZUF0VGVzdAotG1swOzMybVsgUlVOICAgICAg
XSAbW21BZGRGYWlsdXJlQXRUZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5l
TnVtYmVyCi1mb28uY2M6NDI6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQgZmFpbHVyZSBpbiBm
b28uY2MKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttQWRkRmFpbHVyZUF0VGVzdC5NZXNzYWdlQ29u
dGFpbnNTcGVjaWZpZWRGaWxlQW5kTGluZU51bWJlcgotG1swOzMybVstLS0tLS0tLS0tXSAbW200
IHRlc3RzIGZyb20gTWl4ZWRVcFRlc3RDYXNlVGVzdAotG1swOzMybVsgUlVOICAgICAgXSAbW21N
aXhlZFVwVGVzdENhc2VUZXN0LkZpcnN0VGVzdEZyb21OYW1lc3BhY2VGb28KLRtbMDszMm1bICAg
ICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5GaXJzdFRlc3RGcm9tTmFtZXNwYWNlRm9v
Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuU2Vjb25kVGVzdEZy
b21OYW1lc3BhY2VGb28KLRtbMDszMm1bICAgICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVz
dC5TZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbwotG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhl
ZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRGYWlsCi1ndGVzdC5jYzojOiBGYWlsdXJlCi1GYWls
ZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVz
dCBmaXh0dXJlCi1jbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSBNaXhlZFVwVGVzdENhc2VU
ZXN0LAoteW91IGRlZmluZWQgdGVzdCBGaXJzdFRlc3RGcm9tTmFtZXNwYWNlRm9vIGFuZCB0ZXN0
IFRoaXNTaG91bGRGYWlsCi11c2luZyB0d28gZGlmZmVyZW50IHRlc3QgZml4dHVyZSBjbGFzc2Vz
LiAgVGhpcyBjYW4gaGFwcGVuIGlmCi10aGUgdHdvIGNsYXNzZXMgYXJlIGZyb20gZGlmZmVyZW50
IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24KLXVuaXRzIGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUu
ICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmUKLW9mIHRoZSBjbGFzc2VzIHRvIHB1dCB0
aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4KLRtbMDszMW1bICBGQUlMRUQgIF0g
G1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbAotG1swOzMybVsgUlVOICAgICAg
XSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRGYWlsVG9vCi1ndGVzdC5jYzojOiBG
YWlsdXJlCi1GYWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2Ug
dGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSBNaXhl
ZFVwVGVzdENhc2VUZXN0LAoteW91IGRlZmluZWQgdGVzdCBGaXJzdFRlc3RGcm9tTmFtZXNwYWNl
Rm9vIGFuZCB0ZXN0IFRoaXNTaG91bGRGYWlsVG9vCi11c2luZyB0d28gZGlmZmVyZW50IHRlc3Qg
Zml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmCi10aGUgdHdvIGNsYXNzZXMgYXJl
IGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24KLXVuaXRzIGFuZCBoYXZl
IHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmUKLW9mIHRoZSBj
bGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4KLRtbMDsz
MW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbwot
G1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20gTWl4ZWRVcFRlc3RDYXNlV2l0aFNh
bWVUZXN0TmFtZVRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlV2l0
aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKLRtb
MDszMm1bICAgICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3Qu
VGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKLRtbMDszMm1bIFJVTiAgICAgIF0g
G1ttTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhU
aGlzTmFtZVNob3VsZEZhaWwKLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotQWxsIHRlc3Rz
IGluIHRoZSBzYW1lIHRlc3QgY2FzZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKLWNs
YXNzLiAgSG93ZXZlciwgaW4gdGVzdCBjYXNlIE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5h
bWVUZXN0LAoteW91IGRlZmluZWQgdGVzdCBUaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxk
RmFpbCBhbmQgdGVzdCBUaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAotdXNpbmcg
dHdvIGRpZmZlcmVudCB0ZXN0IGZpeHR1cmUgY2xhc3Nlcy4gIFRoaXMgY2FuIGhhcHBlbiBpZgot
dGhlIHR3byBjbGFzc2VzIGFyZSBmcm9tIGRpZmZlcmVudCBuYW1lc3BhY2VzIG9yIHRyYW5zbGF0
aW9uCi11bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiAgWW91IHNob3VsZCBwcm9iYWJseSBy
ZW5hbWUgb25lCi1vZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50
IHRlc3QgY2FzZXMuCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBUZXN0Q2FzZVdpdGhT
YW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCi0bWzA7
MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJvbSBURVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2Ft
ZV90ZXN0X2Nhc2UKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttVEVTVF9GX2JlZm9yZV9URVNUX2lu
X3NhbWVfdGVzdF9jYXNlLkRlZmluZWRVc2luZ1RFU1RfRgotG1swOzMybVsgICAgICAgT0sgXSAb
W21URVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9G
Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbVRFU1RfRl9iZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3Rf
Y2FzZS5EZWZpbmVkVXNpbmdURVNUQW5kU2hvdWxkRmFpbAotZ3Rlc3QuY2M6IzogRmFpbHVyZQot
RmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1l
IHRlc3QgZml4dHVyZQotY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNh
bWUgdGVzdCBjYXNlIGlzCi1pbGxlZ2FsLiAgSW4gdGVzdCBjYXNlIFRFU1RfRl9iZWZvcmVfVEVT
VF9pbl9zYW1lX3Rlc3RfY2FzZSwKLXRlc3QgRGVmaW5lZFVzaW5nVEVTVF9GIGlzIGRlZmluZWQg
dXNpbmcgVEVTVF9GIGJ1dAotdGVzdCBEZWZpbmVkVXNpbmdURVNUQW5kU2hvdWxkRmFpbCBpcyBk
ZWZpbmVkIHVzaW5nIFRFU1QuICBZb3UgcHJvYmFibHkKLXdhbnQgdG8gY2hhbmdlIHRoZSBURVNU
IHRvIFRFU1RfRiBvciBtb3ZlIGl0IHRvIGFub3RoZXIgdGVzdAotY2FzZS4KLRtbMDszMW1bICBG
QUlMRUQgIF0gG1ttVEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVfdGVzdF9jYXNlLkRlZmluZWRV
c2luZ1RFU1RBbmRTaG91bGRGYWlsCi0bWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJv
bSBURVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UKLRtbMDszMm1bIFJVTiAgICAg
IF0gG1ttVEVTVF9iZWZvcmVfVEVTVF9GX2luX3NhbWVfdGVzdF9jYXNlLkRlZmluZWRVc2luZ1RF
U1QKLRtbMDszMm1bICAgICAgIE9LIF0gG1ttVEVTVF9iZWZvcmVfVEVTVF9GX2luX3NhbWVfdGVz
dF9jYXNlLkRlZmluZWRVc2luZ1RFU1QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttVEVTVF9iZWZv
cmVfVEVTVF9GX2luX3NhbWVfdGVzdF9jYXNlLkRlZmluZWRVc2luZ1RFU1RfRkFuZFNob3VsZEZh
aWwKLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRl
c3QgY2FzZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKLWNsYXNzLCBzbyBtaXhpbmcg
VEVTVF9GIGFuZCBURVNUIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBpcwotaWxsZWdhbC4gIEluIHRl
c3QgY2FzZSBURVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UsCi10ZXN0IERlZmlu
ZWRVc2luZ1RFU1RfRkFuZFNob3VsZEZhaWwgaXMgZGVmaW5lZCB1c2luZyBURVNUX0YgYnV0Ci10
ZXN0IERlZmluZWRVc2luZ1RFU1QgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHByb2JhYmx5
Ci13YW50IHRvIGNoYW5nZSB0aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBhbm90aGVy
IHRlc3QKLWNhc2UuCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbVRFU1RfYmVmb3JlX1RFU1RfRl9p
bl9zYW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUX0ZBbmRTaG91bGRGYWlsCi0bWzA7MzJt
Wy0tLS0tLS0tLS1dIBtbbTggdGVzdHMgZnJvbSBFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0Ci0b
WzA7MzJtWyBSVU4gICAgICBdIBtbbUV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QuQ2FuUmVmZXJl
bmNlR2xvYmFsVmFyaWFibGVzCi0bWzA7MzJtWyAgICAgICBPSyBdIBtbbUV4cGVjdE5vbmZhdGFs
RmFpbHVyZVRlc3QuQ2FuUmVmZXJlbmNlR2xvYmFsVmFyaWFibGVzCi0bWzA7MzJtWyBSVU4gICAg
ICBdIBtbbUV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QuQ2FuUmVmZXJlbmNlTG9jYWxWYXJpYWJs
ZXMKLRtbMDszMm1bICAgICAgIE9LIF0gG1ttRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdC5DYW5S
ZWZlcmVuY2VMb2NhbFZhcmlhYmxlcwotG1swOzMybVsgUlVOICAgICAgXSAbW21FeHBlY3ROb25m
YXRhbEZhaWx1cmVUZXN0LlN1Y2NlZWRzV2hlblRoZXJlSXNPbmVOb25mYXRhbEZhaWx1cmUKLRtb
MDszMm1bICAgICAgIE9LIF0gG1ttRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdC5TdWNjZWVkc1do
ZW5UaGVyZUlzT25lTm9uZmF0YWxGYWlsdXJlCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbUV4cGVj
dE5vbmZhdGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuVGhlcmVJc05vTm9uZmF0YWxGYWlsdXJlCi0o
ZXhwZWN0aW5nIGEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIG5v
bi1mYXRhbCBmYWlsdXJlCi0gIEFjdHVhbDogMCBmYWlsdXJlcwotG1swOzMxbVsgIEZBSUxFRCAg
XSAbW21FeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRoZXJlSXNOb05vbmZhdGFs
RmFpbHVyZQotG1swOzMybVsgUlVOICAgICAgXSAbW21FeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0
LkZhaWxzV2hlblRoZXJlQXJlVHdvTm9uZmF0YWxGYWlsdXJlcwotKGV4cGVjdGluZyBhIGZhaWx1
cmUpCi1ndGVzdC5jYzojOiBGYWlsdXJlCi1FeHBlY3RlZDogMSBub24tZmF0YWwgZmFpbHVyZQot
ICBBY3R1YWw6IDIgZmFpbHVyZXMKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBOb24tZmF0YWwg
ZmFpbHVyZToKLUZhaWxlZAotRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUgMS4KLQotZ3Rlc3Rf
b3V0cHV0X3Rlc3RfLmNjOiM6IE5vbi1mYXRhbCBmYWlsdXJlOgotRmFpbGVkCi1FeHBlY3RlZCBu
b24tZmF0YWwgZmFpbHVyZSAyLgotCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdE5vbmZh
dGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuVGhlcmVBcmVUd29Ob25mYXRhbEZhaWx1cmVzCi0bWzA7
MzJtWyBSVU4gICAgICBdIBtbbUV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuVGhl
cmVJc09uZUZhdGFsRmFpbHVyZQotKGV4cGVjdGluZyBhIGZhaWx1cmUpCi1ndGVzdC5jYzojOiBG
YWlsdXJlCi1FeHBlY3RlZDogMSBub24tZmF0YWwgZmFpbHVyZQotICBBY3R1YWw6Ci1ndGVzdF9v
dXRwdXRfdGVzdF8uY2M6IzogRmF0YWwgZmFpbHVyZToKLUZhaWxlZAotRXhwZWN0ZWQgZmF0YWwg
ZmFpbHVyZS4KLQotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3ROb25mYXRhbEZhaWx1cmVU
ZXN0LkZhaWxzV2hlblRoZXJlSXNPbmVGYXRhbEZhaWx1cmUKLRtbMDszMm1bIFJVTiAgICAgIF0g
G1ttRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdC5GYWlsc1doZW5TdGF0ZW1lbnRSZXR1cm5zCi0o
ZXhwZWN0aW5nIGEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIG5v
bi1mYXRhbCBmYWlsdXJlCi0gIEFjdHVhbDogMCBmYWlsdXJlcwotG1swOzMxbVsgIEZBSUxFRCAg
XSAbW21FeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblN0YXRlbWVudFJldHVybnMK
LRtbMDszMm1bIFJVTiAgICAgIF0gG1ttRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdC5GYWlsc1do
ZW5TdGF0ZW1lbnRUaHJvd3MKLShleHBlY3RpbmcgYSBmYWlsdXJlKQotZ3Rlc3QuY2M6IzogRmFp
bHVyZQotRXhwZWN0ZWQ6IDEgbm9uLWZhdGFsIGZhaWx1cmUKLSAgQWN0dWFsOiAwIGZhaWx1cmVz
Ci0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QuRmFpbHNX
aGVuU3RhdGVtZW50VGhyb3dzCi0bWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTggdGVzdHMgZnJvbSBF
eHBlY3RGYXRhbEZhaWx1cmVUZXN0Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbUV4cGVjdEZhdGFs
RmFpbHVyZVRlc3QuQ2FuUmVmZXJlbmNlR2xvYmFsVmFyaWFibGVzCi0bWzA7MzJtWyAgICAgICBP
SyBdIBtbbUV4cGVjdEZhdGFsRmFpbHVyZVRlc3QuQ2FuUmVmZXJlbmNlR2xvYmFsVmFyaWFibGVz
Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbUV4cGVjdEZhdGFsRmFpbHVyZVRlc3QuQ2FuUmVmZXJl
bmNlTG9jYWxTdGF0aWNWYXJpYWJsZXMKLRtbMDszMm1bICAgICAgIE9LIF0gG1ttRXhwZWN0RmF0
YWxGYWlsdXJlVGVzdC5DYW5SZWZlcmVuY2VMb2NhbFN0YXRpY1ZhcmlhYmxlcwotG1swOzMybVsg
UlVOICAgICAgXSAbW21FeHBlY3RGYXRhbEZhaWx1cmVUZXN0LlN1Y2NlZWRzV2hlblRoZXJlSXNP
bmVGYXRhbEZhaWx1cmUKLRtbMDszMm1bICAgICAgIE9LIF0gG1ttRXhwZWN0RmF0YWxGYWlsdXJl
VGVzdC5TdWNjZWVkc1doZW5UaGVyZUlzT25lRmF0YWxGYWlsdXJlCi0bWzA7MzJtWyBSVU4gICAg
ICBdIBtbbUV4cGVjdEZhdGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuVGhlcmVJc05vRmF0YWxGYWls
dXJlCi0oZXhwZWN0aW5nIGEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVk
OiAxIGZhdGFsIGZhaWx1cmUKLSAgQWN0dWFsOiAwIGZhaWx1cmVzCi0bWzA7MzFtWyAgRkFJTEVE
ICBdIBtbbUV4cGVjdEZhdGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuVGhlcmVJc05vRmF0YWxGYWls
dXJlCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbUV4cGVjdEZhdGFsRmFpbHVyZVRlc3QuRmFpbHNX
aGVuVGhlcmVBcmVUd29GYXRhbEZhaWx1cmVzCi0oZXhwZWN0aW5nIGEgZmFpbHVyZSkKLWd0ZXN0
LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIGZhdGFsIGZhaWx1cmUKLSAgQWN0dWFsOiAyIGZh
aWx1cmVzCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmF0YWwgZmFpbHVyZToKLUZhaWxlZAot
RXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4KLQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhdGFs
IGZhaWx1cmU6Ci1GYWlsZWQKLUV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuCi0KLRtbMDszMW1bICBG
QUlMRUQgIF0gG1ttRXhwZWN0RmF0YWxGYWlsdXJlVGVzdC5GYWlsc1doZW5UaGVyZUFyZVR3b0Zh
dGFsRmFpbHVyZXMKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttRXhwZWN0RmF0YWxGYWlsdXJlVGVz
dC5GYWlsc1doZW5UaGVyZUlzT25lTm9uZmF0YWxGYWlsdXJlCi0oZXhwZWN0aW5nIGEgZmFpbHVy
ZSkKLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIGZhdGFsIGZhaWx1cmUKLSAgQWN0
dWFsOgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IE5vbi1mYXRhbCBmYWlsdXJlOgotRmFpbGVk
Ci1FeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4KLQotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21F
eHBlY3RGYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRoZXJlSXNPbmVOb25mYXRhbEZhaWx1cmUK
LRtbMDszMm1bIFJVTiAgICAgIF0gG1ttRXhwZWN0RmF0YWxGYWlsdXJlVGVzdC5GYWlsc1doZW5T
dGF0ZW1lbnRSZXR1cm5zCi0oZXhwZWN0aW5nIGEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZhaWx1
cmUKLUV4cGVjdGVkOiAxIGZhdGFsIGZhaWx1cmUKLSAgQWN0dWFsOiAwIGZhaWx1cmVzCi0bWzA7
MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhdGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuU3RhdGVt
ZW50UmV0dXJucwotG1swOzMybVsgUlVOICAgICAgXSAbW21FeHBlY3RGYXRhbEZhaWx1cmVUZXN0
LkZhaWxzV2hlblN0YXRlbWVudFRocm93cwotKGV4cGVjdGluZyBhIGZhaWx1cmUpCi1ndGVzdC5j
YzojOiBGYWlsdXJlCi1FeHBlY3RlZDogMSBmYXRhbCBmYWlsdXJlCi0gIEFjdHVhbDogMCBmYWls
dXJlcwotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3RGYXRhbEZhaWx1cmVUZXN0LkZhaWxz
V2hlblN0YXRlbWVudFRocm93cwotG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20g
VHlwZWRUZXN0LzAsIHdoZXJlIFR5cGVQYXJhbSA9IGludAotG1swOzMybVsgUlVOICAgICAgXSAb
W21UeXBlZFRlc3QvMC5TdWNjZXNzCi0bWzA7MzJtWyAgICAgICBPSyBdIBtbbVR5cGVkVGVzdC8w
LlN1Y2Nlc3MKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttVHlwZWRUZXN0LzAuRmFpbHVyZQotZ3Rl
c3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNl
IHZhbHVlczoKLSAgMQotICBUeXBlUGFyYW0oKQotICAgIFdoaWNoIGlzOiAwCi1FeHBlY3RlZCBm
YWlsdXJlCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbVR5cGVkVGVzdC8wLkZhaWx1cmUsIHdoZXJl
IFR5cGVQYXJhbSA9IGludAotG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20gVW5z
aWduZWQvVHlwZWRUZXN0UC8wLCB3aGVyZSBUeXBlUGFyYW0gPSB1bnNpZ25lZCBjaGFyCi0bWzA7
MzJtWyBSVU4gICAgICBdIBtbbVVuc2lnbmVkL1R5cGVkVGVzdFAvMC5TdWNjZXNzCi0bWzA7MzJt
WyAgICAgICBPSyBdIBtbbVVuc2lnbmVkL1R5cGVkVGVzdFAvMC5TdWNjZXNzCi0bWzA7MzJtWyBS
VU4gICAgICBdIBtbbVVuc2lnbmVkL1R5cGVkVGVzdFAvMC5GYWlsdXJlCi1ndGVzdF9vdXRwdXRf
dGVzdF8uY2M6IzogRmFpbHVyZQotRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgot
ICAxVQotICAgIFdoaWNoIGlzOiAxCi0gIFR5cGVQYXJhbSgpCi0gICAgV2hpY2ggaXM6ICdcMCcK
LUV4cGVjdGVkIGZhaWx1cmUKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttVW5zaWduZWQvVHlwZWRU
ZXN0UC8wLkZhaWx1cmUsIHdoZXJlIFR5cGVQYXJhbSA9IHVuc2lnbmVkIGNoYXIKLRtbMDszMm1b
LS0tLS0tLS0tLV0gG1ttMiB0ZXN0cyBmcm9tIFVuc2lnbmVkL1R5cGVkVGVzdFAvMSwgd2hlcmUg
VHlwZVBhcmFtID0gdW5zaWduZWQgaW50Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbVVuc2lnbmVk
L1R5cGVkVGVzdFAvMS5TdWNjZXNzCi0bWzA7MzJtWyAgICAgICBPSyBdIBtbbVVuc2lnbmVkL1R5
cGVkVGVzdFAvMS5TdWNjZXNzCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbVVuc2lnbmVkL1R5cGVk
VGVzdFAvMS5GYWlsdXJlCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRXhwZWN0
ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgotICAxVQotICAgIFdoaWNoIGlzOiAxCi0gIFR5
cGVQYXJhbSgpCi0gICAgV2hpY2ggaXM6IDAKLUV4cGVjdGVkIGZhaWx1cmUKLRtbMDszMW1bICBG
QUlMRUQgIF0gG1ttVW5zaWduZWQvVHlwZWRUZXN0UC8xLkZhaWx1cmUsIHdoZXJlIFR5cGVQYXJh
bSA9IHVuc2lnbmVkIGludAotG1swOzMybVstLS0tLS0tLS0tXSAbW200IHRlc3RzIGZyb20gRXhw
ZWN0RmFpbHVyZVRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttRXhwZWN0RmFpbHVyZVRlc3Qu
RXhwZWN0RmF0YWxGYWlsdXJlCi0oZXhwZWN0aW5nIDEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZh
aWx1cmUKLUV4cGVjdGVkOiAxIGZhdGFsIGZhaWx1cmUKLSAgQWN0dWFsOgotZ3Rlc3Rfb3V0cHV0
X3Rlc3RfLmNjOiM6IFN1Y2Nlc3M6Ci1TdWNjZWVkZWQKLQotKGV4cGVjdGluZyAxIGZhaWx1cmUp
Ci1ndGVzdC5jYzojOiBGYWlsdXJlCi1FeHBlY3RlZDogMSBmYXRhbCBmYWlsdXJlCi0gIEFjdHVh
bDoKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBOb24tZmF0YWwgZmFpbHVyZToKLUZhaWxlZAot
RXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuCi0KLShleHBlY3RpbmcgMSBmYWlsdXJlKQotZ3Rl
c3QuY2M6IzogRmFpbHVyZQotRXhwZWN0ZWQ6IDEgZmF0YWwgZmFpbHVyZSBjb250YWluaW5nICJT
b21lIG90aGVyIGZhdGFsIGZhaWx1cmUgZXhwZWN0ZWQuIgotICBBY3R1YWw6Ci1ndGVzdF9vdXRw
dXRfdGVzdF8uY2M6IzogRmF0YWwgZmFpbHVyZToKLUZhaWxlZAotRXhwZWN0ZWQgZmF0YWwgZmFp
bHVyZS4KLQotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3RGYWlsdXJlVGVzdC5FeHBlY3RG
YXRhbEZhaWx1cmUKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttRXhwZWN0RmFpbHVyZVRlc3QuRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlCi0oZXhwZWN0aW5nIDEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZh
aWx1cmUKLUV4cGVjdGVkOiAxIG5vbi1mYXRhbCBmYWlsdXJlCi0gIEFjdHVhbDoKLWd0ZXN0X291
dHB1dF90ZXN0Xy5jYzojOiBTdWNjZXNzOgotU3VjY2VlZGVkCi0KLShleHBlY3RpbmcgMSBmYWls
dXJlKQotZ3Rlc3QuY2M6IzogRmFpbHVyZQotRXhwZWN0ZWQ6IDEgbm9uLWZhdGFsIGZhaWx1cmUK
LSAgQWN0dWFsOgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhdGFsIGZhaWx1cmU6Ci1GYWls
ZWQKLUV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuCi0KLShleHBlY3RpbmcgMSBmYWlsdXJlKQotZ3Rl
c3QuY2M6IzogRmFpbHVyZQotRXhwZWN0ZWQ6IDEgbm9uLWZhdGFsIGZhaWx1cmUgY29udGFpbmlu
ZyAiU29tZSBvdGhlciBub24tZmF0YWwgZmFpbHVyZS4iCi0gIEFjdHVhbDoKLWd0ZXN0X291dHB1
dF90ZXN0Xy5jYzojOiBOb24tZmF0YWwgZmFpbHVyZToKLUZhaWxlZAotRXhwZWN0ZWQgbm9uLWZh
dGFsIGZhaWx1cmUuCi0KLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0RmFpbHVyZVRlc3Qu
RXhwZWN0Tm9uRmF0YWxGYWlsdXJlCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbUV4cGVjdEZhaWx1
cmVUZXN0LkV4cGVjdEZhdGFsRmFpbHVyZU9uQWxsVGhyZWFkcwotKGV4cGVjdGluZyAxIGZhaWx1
cmUpCi1ndGVzdC5jYzojOiBGYWlsdXJlCi1FeHBlY3RlZDogMSBmYXRhbCBmYWlsdXJlCi0gIEFj
dHVhbDoKLWd0ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBTdWNjZXNzOgotU3VjY2VlZGVkCi0KLShl
eHBlY3RpbmcgMSBmYWlsdXJlKQotZ3Rlc3QuY2M6IzogRmFpbHVyZQotRXhwZWN0ZWQ6IDEgZmF0
YWwgZmFpbHVyZQotICBBY3R1YWw6Ci1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogTm9uLWZhdGFs
IGZhaWx1cmU6Ci1GYWlsZWQKLUV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLgotCi0oZXhwZWN0
aW5nIDEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIGZhdGFsIGZh
aWx1cmUgY29udGFpbmluZyAiU29tZSBvdGhlciBmYXRhbCBmYWlsdXJlIGV4cGVjdGVkLiIKLSAg
QWN0dWFsOgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhdGFsIGZhaWx1cmU6Ci1GYWlsZWQK
LUV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuCi0KLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0
RmFpbHVyZVRlc3QuRXhwZWN0RmF0YWxGYWlsdXJlT25BbGxUaHJlYWRzCi0bWzA7MzJtWyBSVU4g
ICAgICBdIBtbbUV4cGVjdEZhaWx1cmVUZXN0LkV4cGVjdE5vbkZhdGFsRmFpbHVyZU9uQWxsVGhy
ZWFkcwotKGV4cGVjdGluZyAxIGZhaWx1cmUpCi1ndGVzdC5jYzojOiBGYWlsdXJlCi1FeHBlY3Rl
ZDogMSBub24tZmF0YWwgZmFpbHVyZQotICBBY3R1YWw6Ci1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6
IzogU3VjY2VzczoKLVN1Y2NlZWRlZAotCi0oZXhwZWN0aW5nIDEgZmFpbHVyZSkKLWd0ZXN0LmNj
OiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIG5vbi1mYXRhbCBmYWlsdXJlCi0gIEFjdHVhbDoKLWd0
ZXN0X291dHB1dF90ZXN0Xy5jYzojOiBGYXRhbCBmYWlsdXJlOgotRmFpbGVkCi1FeHBlY3RlZCBm
YXRhbCBmYWlsdXJlLgotCi0oZXhwZWN0aW5nIDEgZmFpbHVyZSkKLWd0ZXN0LmNjOiM6IEZhaWx1
cmUKLUV4cGVjdGVkOiAxIG5vbi1mYXRhbCBmYWlsdXJlIGNvbnRhaW5pbmcgIlNvbWUgb3RoZXIg
bm9uLWZhdGFsIGZhaWx1cmUuIgotICBBY3R1YWw6Ci1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6Izog
Tm9uLWZhdGFsIGZhaWx1cmU6Ci1GYWlsZWQKLUV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLgot
Ci0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhaWx1cmVUZXN0LkV4cGVjdE5vbkZhdGFs
RmFpbHVyZU9uQWxsVGhyZWFkcwotG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20g
RXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRzVGVzdAotG1swOzMybVsgUlVOICAgICAgXSAbW21FeHBl
Y3RGYWlsdXJlV2l0aFRocmVhZHNUZXN0LkV4cGVjdEZhdGFsRmFpbHVyZQotKGV4cGVjdGluZyAy
IGZhaWx1cmVzKQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhw
ZWN0ZWQgZmF0YWwgZmFpbHVyZS4KLWd0ZXN0LmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIGZh
dGFsIGZhaWx1cmUKLSAgQWN0dWFsOiAwIGZhaWx1cmVzCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtb
bUV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rlc3QuRXhwZWN0RmF0YWxGYWlsdXJlCi0bWzA7MzJt
WyBSVU4gICAgICBdIBtbbUV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rlc3QuRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlCi0oZXhwZWN0aW5nIDIgZmFpbHVyZXMpCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6
IzogRmFpbHVyZQotRmFpbGVkCi1FeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4KLWd0ZXN0LmNj
OiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAxIG5vbi1mYXRhbCBmYWlsdXJlCi0gIEFjdHVhbDogMCBm
YWlsdXJlcwotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3RGYWlsdXJlV2l0aFRocmVhZHNU
ZXN0LkV4cGVjdE5vbkZhdGFsRmFpbHVyZQotG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3Qg
ZnJvbSBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlclRlc3QKLRtbMDszMm1bIFJVTiAg
ICAgIF0gG1ttU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJUZXN0LkludGVyY2VwdE9u
bHlDdXJyZW50VGhyZWFkCi0oZXhwZWN0aW5nIDIgZmFpbHVyZXMpCi1ndGVzdF9vdXRwdXRfdGVz
dF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1FeHBlY3RlZCBmYXRhbCBmYWlsdXJlLgotZ3Rlc3Rf
b3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZhaWxlZAotRXhwZWN0ZWQgbm9uLWZhdGFsIGZh
aWx1cmUuCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbVNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJl
cG9ydGVyVGVzdC5JbnRlcmNlcHRPbmx5Q3VycmVudFRocmVhZAotG1swOzMybVstLS0tLS0tLS0t
XSAbW20xIHRlc3QgZnJvbSBQcmludGluZ0ZhaWxpbmdQYXJhbXMvRmFpbGluZ1BhcmFtVGVzdAot
G1swOzMybVsgUlVOICAgICAgXSAbW21QcmludGluZ0ZhaWxpbmdQYXJhbXMvRmFpbGluZ1BhcmFt
VGVzdC5GYWlscy8wCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRXhwZWN0ZWQg
ZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgotICAxCi0gIEdldFBhcmFtKCkKLSAgICBXaGljaCBp
czogMgotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21QcmludGluZ0ZhaWxpbmdQYXJhbXMvRmFpbGlu
Z1BhcmFtVGVzdC5GYWlscy8wLCB3aGVyZSBHZXRQYXJhbSgpID0gMgotG1swOzMybVstLS0tLS0t
LS0tXSAbW20yIHRlc3RzIGZyb20gUHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVzdAotG1swOzMybVsg
UlVOICAgICAgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LlN1Y2Nlc3MvYQotG1swOzMy
bVsgICAgICAgT0sgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LlN1Y2Nlc3MvYQotG1sw
OzMybVsgUlVOICAgICAgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LkZhaWx1cmUvYQot
Z3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRo
ZXNlIHZhbHVlczoKLSAgImIiCi0gIEdldFBhcmFtKCkKLSAgICBXaGljaCBpczogImEiCi1FeHBl
Y3RlZCBmYWlsdXJlCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbVByaW50aW5nU3RyaW5ncy9QYXJh
bVRlc3QuRmFpbHVyZS9hLCB3aGVyZSBHZXRQYXJhbSgpID0gImEiCi0bWzA7MzJtWy0tLS0tLS0t
LS1dIBtbbUdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93bgotQmFyRW52aXJvbm1lbnQ6
OlRlYXJEb3duKCkgY2FsbGVkLgotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUZh
aWxlZAotRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuCi1Gb29FbnZpcm9ubWVudDo6VGVhckRv
d24oKSBjYWxsZWQuCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRmFpbGVkCi1F
eHBlY3RlZCBmYXRhbCBmYWlsdXJlLgotG1swOzMybVs9PT09PT09PT09XSAbW202NiB0ZXN0cyBm
cm9tIDI5IHRlc3QgY2FzZXMgcmFuLgotG1swOzMybVsgIFBBU1NFRCAgXSAbW20yMiB0ZXN0cy4K
LRtbMDszMW1bICBGQUlMRUQgIF0gG1ttNDQgdGVzdHMsIGxpc3RlZCBiZWxvdzoKLRtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttTm9uZmF0YWxGYWlsdXJlVGVzdC5Fc2NhcGVzU3RyaW5nT3BlcmFuZHMK
LRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTm9uZmF0YWxGYWlsdXJlVGVzdC5EaWZmRm9yTG9uZ1N0
cmluZ3MKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRmF0YWxGYWlsdXJlVGVzdC5GYXRhbEZhaWx1
cmVJblN1YnJvdXRpbmUKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRmF0YWxGYWlsdXJlVGVzdC5G
YXRhbEZhaWx1cmVJbk5lc3RlZFN1YnJvdXRpbmUKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRmF0
YWxGYWlsdXJlVGVzdC5Ob25mYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUKLRtbMDszMW1bICBGQUlM
RUQgIF0gG1ttTG9nZ2luZ1Rlc3QuSW50ZXJsZWF2aW5nTG9nZ2luZ0FuZEFzc2VydGlvbnMKLRtb
MDszMW1bICBGQUlMRUQgIF0gG1ttU0NPUEVEX1RSQUNFVGVzdC5PYmV5c1Njb3BlcwotG1swOzMx
bVsgIEZBSUxFRCAgXSAbW21TQ09QRURfVFJBQ0VUZXN0LldvcmtzSW5Mb29wCi0bWzA7MzFtWyAg
RkFJTEVEICBdIBtbbVNDT1BFRF9UUkFDRVRlc3QuV29ya3NJblN1YnJvdXRpbmUKLRtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttU0NPUEVEX1RSQUNFVGVzdC5DYW5CZU5lc3RlZAotG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21TQ09QRURfVFJBQ0VUZXN0LkNhbkJlUmVwZWF0ZWQKLRtbMDszMW1bICBGQUlM
RUQgIF0gG1ttU0NPUEVEX1RSQUNFVGVzdC5Xb3Jrc0NvbmN1cnJlbnRseQotG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21Ob25GYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QuRmFpbHVy
ZUluQ29uc3RydWN0b3IKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRmF0YWxGYWlsdXJlSW5GaXh0
dXJlQ29uc3RydWN0b3JUZXN0LkZhaWx1cmVJbkNvbnN0cnVjdG9yCi0bWzA7MzFtWyAgRkFJTEVE
ICBdIBtbbU5vbkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0LkZhaWx1cmVJblNldFVwCi0bWzA7MzFt
WyAgRkFJTEVEICBdIBtbbUZhdGFsRmFpbHVyZUluU2V0VXBUZXN0LkZhaWx1cmVJblNldFVwCi0b
WzA7MzFtWyAgRkFJTEVEICBdIBtbbUFkZEZhaWx1cmVBdFRlc3QuTWVzc2FnZUNvbnRhaW5zU3Bl
Y2lmaWVkRmlsZUFuZExpbmVOdW1iZXIKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRl
c3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbAotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVw
VGVzdENhc2VUZXN0LlRoaXNTaG91bGRGYWlsVG9vCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1p
eGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05h
bWVTaG91bGRGYWlsCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbVRFU1RfRl9iZWZvcmVfVEVTVF9p
bl9zYW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUQW5kU2hvdWxkRmFpbAotG1swOzMxbVsg
IEZBSUxFRCAgXSAbW21URVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5l
ZFVzaW5nVEVTVF9GQW5kU2hvdWxkRmFpbAotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3RO
b25mYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRoZXJlSXNOb05vbmZhdGFsRmFpbHVyZQotG1sw
OzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRo
ZXJlQXJlVHdvTm9uZmF0YWxGYWlsdXJlcwotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3RO
b25mYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRoZXJlSXNPbmVGYXRhbEZhaWx1cmUKLRtbMDsz
MW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdC5GYWlsc1doZW5TdGF0
ZW1lbnRSZXR1cm5zCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdE5vbmZhdGFsRmFpbHVy
ZVRlc3QuRmFpbHNXaGVuU3RhdGVtZW50VGhyb3dzCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4
cGVjdEZhdGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuVGhlcmVJc05vRmF0YWxGYWlsdXJlCi0bWzA7
MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhdGFsRmFpbHVyZVRlc3QuRmFpbHNXaGVuVGhlcmVB
cmVUd29GYXRhbEZhaWx1cmVzCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhdGFsRmFp
bHVyZVRlc3QuRmFpbHNXaGVuVGhlcmVJc09uZU5vbmZhdGFsRmFpbHVyZQotG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21FeHBlY3RGYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblN0YXRlbWVudFJldHVy
bnMKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0RmF0YWxGYWlsdXJlVGVzdC5GYWlsc1do
ZW5TdGF0ZW1lbnRUaHJvd3MKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttVHlwZWRUZXN0LzAuRmFp
bHVyZSwgd2hlcmUgVHlwZVBhcmFtID0gaW50Ci0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbVVuc2ln
bmVkL1R5cGVkVGVzdFAvMC5GYWlsdXJlLCB3aGVyZSBUeXBlUGFyYW0gPSB1bnNpZ25lZCBjaGFy
Ci0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbVVuc2lnbmVkL1R5cGVkVGVzdFAvMS5GYWlsdXJlLCB3
aGVyZSBUeXBlUGFyYW0gPSB1bnNpZ25lZCBpbnQKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhw
ZWN0RmFpbHVyZVRlc3QuRXhwZWN0RmF0YWxGYWlsdXJlCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtb
bUV4cGVjdEZhaWx1cmVUZXN0LkV4cGVjdE5vbkZhdGFsRmFpbHVyZQotG1swOzMxbVsgIEZBSUxF
RCAgXSAbW21FeHBlY3RGYWlsdXJlVGVzdC5FeHBlY3RGYXRhbEZhaWx1cmVPbkFsbFRocmVhZHMK
LRtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0RmFpbHVyZVRlc3QuRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlT25BbGxUaHJlYWRzCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhaWx1cmVX
aXRoVGhyZWFkc1Rlc3QuRXhwZWN0RmF0YWxGYWlsdXJlCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtb
bUV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rlc3QuRXhwZWN0Tm9uRmF0YWxGYWlsdXJlCi0bWzA7
MzFtWyAgRkFJTEVEICBdIBtbbVNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyVGVzdC5J
bnRlcmNlcHRPbmx5Q3VycmVudFRocmVhZAotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21QcmludGlu
Z0ZhaWxpbmdQYXJhbXMvRmFpbGluZ1BhcmFtVGVzdC5GYWlscy8wLCB3aGVyZSBHZXRQYXJhbSgp
ID0gMgotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LkZh
aWx1cmUvYSwgd2hlcmUgR2V0UGFyYW0oKSA9ICJhIgotCi00NCBGQUlMRUQgVEVTVFMKLRtbMDsz
M20gIFlPVSBIQVZFIDEgRElTQUJMRUQgVEVTVAotCi0bW21Ob3RlOiBHb29nbGUgVGVzdCBmaWx0
ZXIgPSBGYXRhbEZhaWx1cmVUZXN0Lio6TG9nZ2luZ1Rlc3QuKgotWz09PT09PT09PT1dIFJ1bm5p
bmcgNCB0ZXN0cyBmcm9tIDIgdGVzdCBjYXNlcy4KLVstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBl
bnZpcm9ubWVudCBzZXQtdXAuCi1bLS0tLS0tLS0tLV0gMyB0ZXN0cyBmcm9tIEZhdGFsRmFpbHVy
ZVRlc3QKLVsgUlVOICAgICAgXSBGYXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91
dGluZQotKGV4cGVjdGluZyBhIGZhaWx1cmUgdGhhdCB4IHNob3VsZCBiZSAxKQotZ3Rlc3Rfb3V0
cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVl
czoKLSAgMQotICB4Ci0gICAgV2hpY2ggaXM6IDIKLVsgIEZBSUxFRCAgXSBGYXRhbEZhaWx1cmVU
ZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91dGluZSAoPyBtcykKLVsgUlVOICAgICAgXSBGYXRhbEZh
aWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluTmVzdGVkU3Vicm91dGluZQotKGV4cGVjdGluZyBhIGZh
aWx1cmUgdGhhdCB4IHNob3VsZCBiZSAxKQotZ3Rlc3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1
cmUKLUV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKLSAgMQotICB4Ci0gICAgV2hp
Y2ggaXM6IDIKLVsgIEZBSUxFRCAgXSBGYXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluTmVz
dGVkU3Vicm91dGluZSAoPyBtcykKLVsgUlVOICAgICAgXSBGYXRhbEZhaWx1cmVUZXN0Lk5vbmZh
dGFsRmFpbHVyZUluU3Vicm91dGluZQotKGV4cGVjdGluZyBhIGZhaWx1cmUgb24gZmFsc2UpCi1n
dGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotVmFsdWUgb2Y6IGZhbHNlCi0gIEFjdHVh
bDogZmFsc2UKLUV4cGVjdGVkOiB0cnVlCi1bICBGQUlMRUQgIF0gRmF0YWxGYWlsdXJlVGVzdC5O
b25mYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUgKD8gbXMpCi1bLS0tLS0tLS0tLV0gMyB0ZXN0cyBm
cm9tIEZhdGFsRmFpbHVyZVRlc3QgKD8gbXMgdG90YWwpCi0KLVstLS0tLS0tLS0tXSAxIHRlc3Qg
ZnJvbSBMb2dnaW5nVGVzdAotWyBSVU4gICAgICBdIExvZ2dpbmdUZXN0LkludGVybGVhdmluZ0xv
Z2dpbmdBbmRBc3NlcnRpb25zCi0oZXhwZWN0aW5nIDIgZmFpbHVyZXMgb24gKDMpID49IChhW2ld
KSkKLWkgPT0gMAotaSA9PSAxCi1ndGVzdF9vdXRwdXRfdGVzdF8uY2M6IzogRmFpbHVyZQotRXhw
ZWN0ZWQ6ICgzKSA+PSAoYVtpXSksIGFjdHVhbDogMyB2cyA5Ci1pID09IDIKLWkgPT0gMwotZ3Rl
c3Rfb3V0cHV0X3Rlc3RfLmNjOiM6IEZhaWx1cmUKLUV4cGVjdGVkOiAoMykgPj0gKGFbaV0pLCBh
Y3R1YWw6IDMgdnMgNgotWyAgRkFJTEVEICBdIExvZ2dpbmdUZXN0LkludGVybGVhdmluZ0xvZ2dp
bmdBbmRBc3NlcnRpb25zICg/IG1zKQotWy0tLS0tLS0tLS1dIDEgdGVzdCBmcm9tIExvZ2dpbmdU
ZXN0ICg/IG1zIHRvdGFsKQotCi1bLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQg
dGVhci1kb3duCi1bPT09PT09PT09PV0gNCB0ZXN0cyBmcm9tIDIgdGVzdCBjYXNlcyByYW4uICg/
IG1zIHRvdGFsKQotWyAgUEFTU0VEICBdIDAgdGVzdHMuCi1bICBGQUlMRUQgIF0gNCB0ZXN0cywg
bGlzdGVkIGJlbG93OgotWyAgRkFJTEVEICBdIEZhdGFsRmFpbHVyZVRlc3QuRmF0YWxGYWlsdXJl
SW5TdWJyb3V0aW5lCi1bICBGQUlMRUQgIF0gRmF0YWxGYWlsdXJlVGVzdC5GYXRhbEZhaWx1cmVJ
bk5lc3RlZFN1YnJvdXRpbmUKLVsgIEZBSUxFRCAgXSBGYXRhbEZhaWx1cmVUZXN0Lk5vbmZhdGFs
RmFpbHVyZUluU3Vicm91dGluZQotWyAgRkFJTEVEICBdIExvZ2dpbmdUZXN0LkludGVybGVhdmlu
Z0xvZ2dpbmdBbmRBc3NlcnRpb25zCi0KLSA0IEZBSUxFRCBURVNUUwotTm90ZTogR29vZ2xlIFRl
c3QgZmlsdGVyID0gKkRJU0FCTEVEXyoKLVs9PT09PT09PT09XSBSdW5uaW5nIDEgdGVzdCBmcm9t
IDEgdGVzdCBjYXNlLgotWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11
cC4KLVstLS0tLS0tLS0tXSAxIHRlc3QgZnJvbSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QKLVsg
UlVOICAgICAgXSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QuRElTQUJMRURfQWxzb1J1bkRpc2Fi
bGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dhcm5pbmcKLVsgICAgICAgT0sgXSBEaXNhYmxlZFRlc3Rz
V2FybmluZ1Rlc3QuRElTQUJMRURfQWxzb1J1bkRpc2FibGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dh
cm5pbmcKLVstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRvd24KLVs9
PT09PT09PT09XSAxIHRlc3QgZnJvbSAxIHRlc3QgY2FzZSByYW4uCi1bICBQQVNTRUQgIF0gMSB0
ZXN0LgotTm90ZTogR29vZ2xlIFRlc3QgZmlsdGVyID0gUGFzc2luZ1Rlc3QuKgotTm90ZTogVGhp
cyBpcyB0ZXN0IHNoYXJkIDIgb2YgMi4KLVs9PT09PT09PT09XSBSdW5uaW5nIDEgdGVzdCBmcm9t
IDEgdGVzdCBjYXNlLgotWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11
cC4KLVstLS0tLS0tLS0tXSAxIHRlc3QgZnJvbSBQYXNzaW5nVGVzdAotWyBSVU4gICAgICBdIFBh
c3NpbmdUZXN0LlBhc3NpbmdUZXN0MgotWyAgICAgICBPSyBdIFBhc3NpbmdUZXN0LlBhc3NpbmdU
ZXN0MgotWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93bgotWz09
PT09PT09PT1dIDEgdGVzdCBmcm9tIDEgdGVzdCBjYXNlIHJhbi4KLVsgIFBBU1NFRCAgXSAxIHRl
c3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3By
ZWRfaW1wbF91bml0dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rl
c3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
ODRlZmY4NjBhNGQ3ZGM4Yjg1NjNmOGUxZTdmNDc5ZTI5MmVhMzNjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0
L3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMjQy
NyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0v
LwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8v
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8v
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LS8vIFRoaXMgZmlsZSBpcyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAxMC8zMS8yMDExIGJ5
IGNvbW1hbmQKLS8vICdnZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5IDUnLiAgRE8gTk9UIEVESVQgQlkg
SEFORCEKLQotLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBndGVzdF9wcmVkX2ltcGwuaAotLy8KLS8v
IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBzY3JpcHQgYW5kIHF1aXRlIGxvbmcuICBJZiB5
b3UgaW50ZW5kIHRvCi0vLyBsZWFybiBob3cgR29vZ2xlIFRlc3Qgd29ya3MgYnkgcmVhZGluZyBp
dHMgdW5pdCB0ZXN0cywgcmVhZAotLy8gZ3Rlc3RfdW5pdHRlc3QuY2MgaW5zdGVhZC4KLS8vCi0v
LyBUaGlzIGlzIGludGVuZGVkIGFzIGEgcmVncmVzc2lvbiB0ZXN0IGZvciB0aGUgR29vZ2xlIFRl
c3QgcHJlZGljYXRlCi0vLyBhc3NlcnRpb25zLiAgV2UgY29tcGlsZSBpdCBhcyBwYXJ0IG9mIHRo
ZSBndGVzdF91bml0dGVzdCB0YXJnZXQKLS8vIG9ubHkgdG8ga2VlcCB0aGUgaW1wbGVtZW50YXRp
b24gdGlkeSBhbmQgY29tcGFjdCwgYXMgaXQgaXMgcXVpdGUKLS8vIGludm9sdmVkIHRvIHNldCB1
cCB0aGUgc3RhZ2UgZm9yIHRlc3RpbmcgR29vZ2xlIFRlc3QgdXNpbmcgR29vZ2xlCi0vLyBUZXN0
IGl0c2VsZi4KLS8vCi0vLyBDdXJyZW50bHksIGd0ZXN0X3VuaXR0ZXN0IHRha2VzIH4xMSBzZWNv
bmRzIHRvIHJ1biBpbiB0aGUgdGVzdGluZwotLy8gZGFlbW9uLiAgSW4gdGhlIGZ1dHVyZSwgaWYg
aXQgZ3Jvd3MgdG9vIGxhcmdlIGFuZCBuZWVkcyBtdWNoIG1vcmUKLS8vIHRpbWUgdG8gZmluaXNo
LCB3ZSBzaG91bGQgY29uc2lkZXIgc2VwYXJhdGluZyB0aGlzIGZpbGUgaW50byBhCi0vLyBzdGFu
ZC1hbG9uZSByZWdyZXNzaW9uIHRlc3QuCi0KLSNpbmNsdWRlIDxpb3N0cmVhbT4KLQotI2luY2x1
ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiCi0KLS8vIEEg
dXNlci1kZWZpbmVkIGRhdGEgdHlwZS4KLXN0cnVjdCBCb29sIHsKLSAgZXhwbGljaXQgQm9vbChp
bnQgdmFsKSA6IHZhbHVlKHZhbCAhPSAwKSB7fQotCi0gIGJvb2wgb3BlcmF0b3I+KGludCBuKSBj
b25zdCB7IHJldHVybiB2YWx1ZSA+IEJvb2wobikudmFsdWU7IH0KLQotICBCb29sIG9wZXJhdG9y
Kyhjb25zdCBCb29sJiByaHMpIGNvbnN0IHsgcmV0dXJuIEJvb2wodmFsdWUgKyByaHMudmFsdWUp
OyB9Ci0KLSAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJvb2wmIHJocykgY29uc3QgeyByZXR1cm4g
dmFsdWUgPT0gcmhzLnZhbHVlOyB9Ci0KLSAgYm9vbCB2YWx1ZTsKLX07Ci0KLS8vIEVuYWJsZXMg
Qm9vbCB0byBiZSB1c2VkIGluIGFzc2VydGlvbnMuCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwo
c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgQm9vbCYgeCkgewotICByZXR1cm4gb3MgPDwgKHgudmFs
dWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLX0KLQotLy8gU2FtcGxlIGZ1bmN0aW9ucy9mdW5jdG9y
cyBmb3IgdGVzdGluZyB1bmFyeSBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4KLQotLy8gQSB1bmFyeSBw
cmVkaWNhdGUgZnVuY3Rpb24uCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1ib29sIFByZWRGdW5j
dGlvbjEoVDEgdjEpIHsKLSAgcmV0dXJuIHYxID4gMDsKLX0KLQotLy8gVGhlIGZvbGxvd2luZyB0
d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgdG8gY2lyY3VtdmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIu
OTUuMywgd2hpY2ggc29tZXRpbWVzIGhhcyBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIHRlbXBsYXRl
Ci0vLyBmdW5jdGlvbi4KLWJvb2wgUHJlZEZ1bmN0aW9uMUludChpbnQgdjEpIHsKLSAgcmV0dXJu
IHYxID4gMDsKLX0KLWJvb2wgUHJlZEZ1bmN0aW9uMUJvb2woQm9vbCB2MSkgewotICByZXR1cm4g
djEgPiAwOwotfQotCi0vLyBBIHVuYXJ5IHByZWRpY2F0ZSBmdW5jdG9yLgotc3RydWN0IFByZWRG
dW5jdG9yMSB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLSAgYm9vbCBvcGVyYXRvcigpKGNv
bnN0IFQxJiB2MSkgewotICAgIHJldHVybiB2MSA+IDA7Ci0gIH0KLX07Ci0KLS8vIEEgdW5hcnkg
cHJlZGljYXRlLWZvcm1hdHRlciBmdW5jdGlvbi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLXRl
c3Rpbmc6OkFzc2VydGlvblJlc3VsdCBQcmVkRm9ybWF0RnVuY3Rpb24xKGNvbnN0IGNoYXIqIGUx
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDEm
IHYxKSB7Ci0gIGlmIChQcmVkRnVuY3Rpb24xKHYxKSkKLSAgICByZXR1cm4gdGVzdGluZzo6QXNz
ZXJ0aW9uU3VjY2VzcygpOwotCi0gIHJldHVybiB0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkK
LSAgICAgIDw8IGUxCi0gICAgICA8PCAiIGlzIGV4cGVjdGVkIHRvIGJlIHBvc2l0aXZlLCBidXQg
ZXZhbHVhdGVzIHRvICIKLSAgICAgIDw8IHYxIDw8ICIuIjsKLX0KLQotLy8gQSB1bmFyeSBwcmVk
aWNhdGUtZm9ybWF0dGVyIGZ1bmN0b3IuCi1zdHJ1Y3QgUHJlZEZvcm1hdEZ1bmN0b3IxIHsKLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQxPgotICB0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgb3BlcmF0
b3IoKShjb25zdCBjaGFyKiBlMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVDEmIHYxKSBjb25zdCB7Ci0gICAgcmV0dXJuIFByZWRGb3JtYXRGdW5jdGlvbjEo
ZTEsIHYxKTsKLSAgfQotfTsKLQotLy8gVGVzdHMgZm9yIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZP
Uk1BVDEuCi0KLWNsYXNzIFByZWRpY2F0ZTFUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewot
IHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGV4cGVjdGVkX3RvX2Zp
bmlzaF8gPSB0cnVlOwotICAgIGZpbmlzaGVkXyA9IGZhbHNlOwotICAgIG4xXyA9IDA7Ci0gIH0K
LQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgLy8gVmVyaWZpZXMgdGhhdCBlYWNo
IG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAotICAgIC8vIGV4YWN0
bHkgb25jZS4KLSAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8PAotICAgICAgICAiVGhlIHByZWRpY2F0
ZSBhc3NlcnRpb24gZGlkbid0IGV2YWx1YXRlIGFyZ3VtZW50IDIgIgotICAgICAgICAiZXhhY3Rs
eSBvbmNlLiI7Ci0KLSAgICAvLyBWZXJpZmllcyB0aGF0IHRoZSBjb250cm9sIGZsb3cgaW4gdGhl
IHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQuCi0gICAgaWYgKGV4cGVjdGVkX3RvX2ZpbmlzaF8g
JiYgIWZpbmlzaGVkXykgewotICAgICAgRkFJTCgpIDw8ICJUaGUgcHJlZGljYXRlIGFzc2VydGlv
biB1bmV4cGFjdGVkbHkgYWJvcnRlZCB0aGUgdGVzdC4iOwotICAgIH0gZWxzZSBpZiAoIWV4cGVj
dGVkX3RvX2ZpbmlzaF8gJiYgZmluaXNoZWRfKSB7Ci0gICAgICBGQUlMKCkgPDwgIlRoZSBmYWls
ZWQgcHJlZGljYXRlIGFzc2VydGlvbiBkaWRuJ3QgYWJvcnQgdGhlIHRlc3QgIgotICAgICAgICAg
ICAgICAgICJhcyBleHBlY3RlZC4iOwotICAgIH0KLSAgfQotCi0gIC8vIHRydWUgaWZmIHRoZSB0
ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCi0gIHN0YXRpYyBib29s
IGV4cGVjdGVkX3RvX2ZpbmlzaF87Ci0KLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24g
ZGlkIHJ1biB0byBmaW5pc2guCi0gIHN0YXRpYyBib29sIGZpbmlzaGVkXzsKLQotICBzdGF0aWMg
aW50IG4xXzsKLX07Ci0KLWJvb2wgUHJlZGljYXRlMVRlc3Q6OmV4cGVjdGVkX3RvX2ZpbmlzaF87
Ci1ib29sIFByZWRpY2F0ZTFUZXN0OjpmaW5pc2hlZF87Ci1pbnQgUHJlZGljYXRlMVRlc3Q6Om4x
XzsKLQotdHlwZWRlZiBQcmVkaWNhdGUxVGVzdCBFWFBFQ1RfUFJFRF9GT1JNQVQxVGVzdDsKLXR5
cGVkZWYgUHJlZGljYXRlMVRlc3QgQVNTRVJUX1BSRURfRk9STUFUMVRlc3Q7Ci10eXBlZGVmIFBy
ZWRpY2F0ZTFUZXN0IEVYUEVDVF9QUkVEMVRlc3Q7Ci10eXBlZGVmIFByZWRpY2F0ZTFUZXN0IEFT
U0VSVF9QUkVEMVRlc3Q7Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRDEgd2hl
cmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSBidWlsdC1p
biB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEMVRlc3QsIEZ1bmN0aW9uT25CdWlsdElu
VHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRUQxKFByZWRGdW5jdGlvbjFJbnQsCi0gICAgICAg
ICAgICAgICArK24xXyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3Vj
Y2Vzc2Z1bCBFWFBFQ1RfUFJFRDEgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlz
IGEgZnVuY3Rpb24gb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNU
X1BSRUQxVGVzdCwgRnVuY3Rpb25PblVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRDEo
UHJlZEZ1bmN0aW9uMUJvb2wsCi0gICAgICAgICAgICAgICBCb29sKCsrbjFfKSk7Ci0gIGZpbmlz
aGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRDEgd2hl
cmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWlu
IHR5cGUgKGludCkuCi1URVNUX0YoRVhQRUNUX1BSRUQxVGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5
cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEMShQcmVkRnVuY3RvcjEoKSwKLSAgICAgICAgICAg
ICAgICsrbjFfKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNz
ZnVsIEVYUEVDVF9QUkVEMSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBm
dW5jdG9yIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEVYUEVDVF9QUkVE
MVRlc3QsIEZ1bmN0b3JPblVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRDEoUHJlZEZ1
bmN0b3IxKCksCi0gICAgICAgICAgICAgICBCb29sKCsrbjFfKSk7Ci0gIGZpbmlzaGVkXyA9IHRy
dWU7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVEMSB3aGVyZSB0aGUKLS8vIHBy
ZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCku
Ci1URVNUX0YoRVhQRUNUX1BSRUQxVGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlRmFpbHVyZSkg
ewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJF
RDEoUHJlZEZ1bmN0aW9uMUludCwKLSAgICAgICAgICAgICAgICAgbjFfKyspOwotICAgIGZpbmlz
aGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BS
RUQxIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEg
dXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEVYUEVDVF9QUkVEMVRlc3QsIEZ1bmN0
aW9uT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8g
Tk9MSU5UCi0gICAgRVhQRUNUX1BSRUQxKFByZWRGdW5jdGlvbjFCb29sLAotICAgICAgICAgICAg
ICAgICBCb29sKG4xXysrKSk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQot
Ci0vLyBUZXN0cyBhIGZhaWxlZCBFWFBFQ1RfUFJFRDEgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUt
Zm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0Yo
RVhQRUNUX1BSRUQxVGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVEMShQcmVkRnVu
Y3RvcjEoKSwKLSAgICAgICAgICAgICAgICAgbjFfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7
Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRUQxIHdoZXJlIHRo
ZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQg
dHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRUQxVGVzdCwgRnVuY3Rvck9uVXNlclR5cGVG
YWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVY
UEVDVF9QUkVEMShQcmVkRnVuY3RvcjEoKSwKLSAgICAgICAgICAgICAgICAgQm9vbChuMV8rKykp
OwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBzdWNj
ZXNzZnVsIEFTU0VSVF9QUkVEMSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMg
YSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNTRVJUX1BSRUQx
VGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlU3VjY2VzcykgewotICBBU1NFUlRfUFJFRDEoUHJl
ZEZ1bmN0aW9uMUludCwKLSAgICAgICAgICAgICAgICsrbjFfKTsKLSAgZmluaXNoZWRfID0gdHJ1
ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEMSB3aGVyZSB0aGUKLS8v
IHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5lZCB0eXBl
IChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRDFUZXN0LCBGdW5jdGlvbk9uVXNlclR5cGVTdWNj
ZXNzKSB7Ci0gIEFTU0VSVF9QUkVEMShQcmVkRnVuY3Rpb24xQm9vbCwKLSAgICAgICAgICAgICAg
IEJvb2woKytuMV8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNj
ZXNzZnVsIEFTU0VSVF9QUkVEMSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMg
YSBmdW5jdG9yIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRDFU
ZXN0LCBGdW5jdG9yT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgQVNTRVJUX1BSRUQxKFByZWRG
dW5jdG9yMSgpLAotICAgICAgICAgICAgICAgKytuMV8pOwotICBmaW5pc2hlZF8gPSB0cnVlOwot
fQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgQVNTRVJUX1BSRUQxIHdoZXJlIHRoZQotLy8gcHJl
ZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9v
bCkuCi1URVNUX0YoQVNTRVJUX1BSRUQxVGVzdCwgRnVuY3Rvck9uVXNlclR5cGVTdWNjZXNzKSB7
Ci0gIEFTU0VSVF9QUkVEMShQcmVkRnVuY3RvcjEoKSwKLSAgICAgICAgICAgICAgIEJvb2woKytu
MV8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJU
X1BSRUQxIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9u
IGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRDFUZXN0LCBGdW5jdGlv
bk9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsK
LSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRUQxKFBy
ZWRGdW5jdGlvbjFJbnQsCi0gICAgICAgICAgICAgICAgIG4xXysrKTsKLSAgICBmaW5pc2hlZF8g
PSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VSVF9QUkVEMSB3
aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXIt
ZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRDFUZXN0LCBGdW5jdGlvbk9u
VXNlclR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQ
RUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRUQxKFByZWRGdW5j
dGlvbjFCb29sLAotICAgICAgICAgICAgICAgICBCb29sKG4xXysrKSk7Ci0gICAgZmluaXNoZWRf
ID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRDEg
d2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0
LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNTRVJUX1BSRUQxVGVzdCwgRnVuY3Rvck9uQnVpbHRJ
blR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRUQxKFByZWRGdW5jdG9y
MSgpLAotICAgICAgICAgICAgICAgICBuMV8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAg
fSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRDEgd2hlcmUgdGhlCi0v
LyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBl
IChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRDFUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZUZhaWx1
cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJ
TFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRDEoUHJlZEZ1bmN0b3IxKCksCi0gICAg
ICAgICAgICAgICAgIEJvb2wobjFfKyspKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAi
Iik7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRF9GT1JNQVQxIHdoZXJl
IHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4g
dHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQxVGVzdCwgRnVuY3Rpb25PbkJ1
aWx0SW5UeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRF9GT1JNQVQxKFByZWRGb3JtYXRGdW5j
dGlvbjEsCi0gICAgICAgICAgICAgICAgICAgICAgKytuMV8pOwotICBmaW5pc2hlZF8gPSB0cnVl
OwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUMSB3aGVyZSB0
aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5l
ZCB0eXBlIChCb29sKS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQxVGVzdCwgRnVuY3Rpb25P
blVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRF9GT1JNQVQxKFByZWRGb3JtYXRGdW5j
dGlvbjEsCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgrK24xXykpOwotICBmaW5pc2hlZF8g
PSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUMSB3
aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgYnVpbHQt
aW4gdHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQxVGVzdCwgRnVuY3Rvck9u
QnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDEoUHJlZEZvcm1hdEZ1
bmN0b3IxKCksCi0gICAgICAgICAgICAgICAgICAgICAgKytuMV8pOwotICBmaW5pc2hlZF8gPSB0
cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUMSB3aGVy
ZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgdXNlci1kZWZp
bmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDFUZXN0LCBGdW5jdG9y
T25Vc2VyVHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRURfRk9STUFUMShQcmVkRm9ybWF0RnVu
Y3RvcjEoKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjFfKSk7Ci0gIGZpbmlzaGVk
XyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDEgd2hl
cmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSBidWlsdC1p
biB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDFUZXN0LCBGdW5jdGlvbk9u
QnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5P
TElOVAotICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDEoUHJlZEZvcm1hdEZ1bmN0aW9uMSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG4xXysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAi
Iik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDEgd2hlcmUgdGhl
Ci0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1c2VyLWRlZmluZWQg
dHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFUMVRlc3QsIEZ1bmN0aW9uT25V
c2VyVHlwZUZhaWx1cmUpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5U
Ci0gICAgRVhQRUNUX1BSRURfRk9STUFUMShQcmVkRm9ybWF0RnVuY3Rpb24xLAotICAgICAgICAg
ICAgICAgICAgICAgICAgQm9vbChuMV8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0s
ICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRURfRk9STUFUMSB3aGVyZSB0
aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgYnVpbHQtaW4gdHlw
ZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQxVGVzdCwgRnVuY3Rvck9uQnVpbHRJ
blR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAot
ICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDEoUHJlZEZvcm1hdEZ1bmN0b3IxKCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICBuMV8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwot
fQotCi0vLyBUZXN0cyBhIGZhaWxlZCBFWFBFQ1RfUFJFRF9GT1JNQVQxIHdoZXJlIHRoZQotLy8g
cHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAo
Qm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFUMVRlc3QsIEZ1bmN0b3JPblVzZXJUeXBl
RmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBF
WFBFQ1RfUFJFRF9GT1JNQVQxKFByZWRGb3JtYXRGdW5jdG9yMSgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgQm9vbChuMV8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsK
LX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEX0ZPUk1BVDEgd2hlcmUgdGhl
Ci0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSBidWlsdC1pbiB0eXBl
IChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDFUZXN0LCBGdW5jdGlvbk9uQnVpbHRJ
blR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZPUk1BVDEoUHJlZEZvcm1hdEZ1bmN0aW9u
MSwKLSAgICAgICAgICAgICAgICAgICAgICArK24xXyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19
Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQxIHdoZXJlIHRoZQot
Ly8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5
cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDFUZXN0LCBGdW5jdGlvbk9uVXNl
clR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZPUk1BVDEoUHJlZEZvcm1hdEZ1bmN0aW9u
MSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjFfKSk7Ci0gIGZpbmlzaGVkXyA9IHRy
dWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQxIHdoZXJl
IHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0
eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDFUZXN0LCBGdW5jdG9yT25CdWls
dEluVHlwZVN1Y2Nlc3MpIHsKLSAgQVNTRVJUX1BSRURfRk9STUFUMShQcmVkRm9ybWF0RnVuY3Rv
cjEoKSwKLSAgICAgICAgICAgICAgICAgICAgICArK24xXyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7
Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQxIHdoZXJlIHRo
ZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQg
dHlwZSAoQm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUMVRlc3QsIEZ1bmN0b3JPblVz
ZXJUeXBlU3VjY2VzcykgewotICBBU1NFUlRfUFJFRF9GT1JNQVQxKFByZWRGb3JtYXRGdW5jdG9y
MSgpLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuMV8pKTsKLSAgZmluaXNoZWRfID0g
dHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRURfRk9STUFUMSB3aGVyZSB0
aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5
cGUgKGludCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUMVRlc3QsIEZ1bmN0aW9uT25CdWls
dEluVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBFWFBF
Q1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRF9GT1JNQVQxKFBy
ZWRGb3JtYXRGdW5jdGlvbjEsCi0gICAgICAgICAgICAgICAgICAgICAgICBuMV8rKyk7Ci0gICAg
ZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NF
UlRfUFJFRF9GT1JNQVQxIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1
bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVE
X0ZPUk1BVDFUZXN0LCBGdW5jdGlvbk9uVXNlclR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3Rv
X2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0g
ICAgQVNTRVJUX1BSRURfRk9STUFUMShQcmVkRm9ybWF0RnVuY3Rpb24xLAotICAgICAgICAgICAg
ICAgICAgICAgICAgQm9vbChuMV8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIi
KTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRURfRk9STUFUMSB3aGVyZSB0aGUK
LS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgYnVpbHQtaW4gdHlwZSAo
aW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JNQVQxVGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5
cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURfRk9STUFUMShQcmVkRm9y
bWF0RnVuY3RvcjEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG4xXysrKTsKLSAgICBmaW5p
c2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VSVF9Q
UkVEX0ZPUk1BVDEgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rv
ciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JN
QVQxVGVzdCwgRnVuY3Rvck9uVXNlclR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2Zpbmlz
aF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNT
RVJUX1BSRURfRk9STUFUMShQcmVkRm9ybWF0RnVuY3RvcjEoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIEJvb2wobjFfKyspKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19
Ci0vLyBTYW1wbGUgZnVuY3Rpb25zL2Z1bmN0b3JzIGZvciB0ZXN0aW5nIGJpbmFyeSBwcmVkaWNh
dGUgYXNzZXJ0aW9ucy4KLQotLy8gQSBiaW5hcnkgcHJlZGljYXRlIGZ1bmN0aW9uLgotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLWJvb2wgUHJlZEZ1bmN0aW9uMihUMSB2MSwg
VDIgdjIpIHsKLSAgcmV0dXJuIHYxICsgdjIgPiAwOwotfQotCi0vLyBUaGUgZm9sbG93aW5nIHR3
byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45
NS4zLCB3aGljaCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUK
LS8vIGZ1bmN0aW9uLgotYm9vbCBQcmVkRnVuY3Rpb24ySW50KGludCB2MSwgaW50IHYyKSB7Ci0g
IHJldHVybiB2MSArIHYyID4gMDsKLX0KLWJvb2wgUHJlZEZ1bmN0aW9uMkJvb2woQm9vbCB2MSwg
Qm9vbCB2MikgewotICByZXR1cm4gdjEgKyB2MiA+IDA7Ci19Ci0KLS8vIEEgYmluYXJ5IHByZWRp
Y2F0ZSBmdW5jdG9yLgotc3RydWN0IFByZWRGdW5jdG9yMiB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDI+Ci0gIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUMSYgdjEsCi0gICAg
ICAgICAgICAgICAgICBjb25zdCBUMiYgdjIpIHsKLSAgICByZXR1cm4gdjEgKyB2MiA+IDA7Ci0g
IH0KLX07Ci0KLS8vIEEgYmluYXJ5IHByZWRpY2F0ZS1mb3JtYXR0ZXIgZnVuY3Rpb24uCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotdGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0
IFByZWRGb3JtYXRGdW5jdGlvbjIoY29uc3QgY2hhciogZTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlMiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQxJiB2MSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQyJiB2MikgewotICBpZiAo
UHJlZEZ1bmN0aW9uMih2MSwgdjIpKQotICAgIHJldHVybiB0ZXN0aW5nOjpBc3NlcnRpb25TdWNj
ZXNzKCk7Ci0KLSAgcmV0dXJuIHRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKQotICAgICAgPDwg
ZTEgPDwgIiArICIgPDwgZTIKLSAgICAgIDw8ICIgaXMgZXhwZWN0ZWQgdG8gYmUgcG9zaXRpdmUs
IGJ1dCBldmFsdWF0ZXMgdG8gIgotICAgICAgPDwgdjEgKyB2MiA8PCAiLiI7Ci19Ci0KLS8vIEEg
YmluYXJ5IHByZWRpY2F0ZS1mb3JtYXR0ZXIgZnVuY3Rvci4KLXN0cnVjdCBQcmVkRm9ybWF0RnVu
Y3RvcjIgewotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotICB0ZXN0aW5n
OjpBc3NlcnRpb25SZXN1bHQgb3BlcmF0b3IoKShjb25zdCBjaGFyKiBlMSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQxJiB2MSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDImIHYyKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBy
ZWRGb3JtYXRGdW5jdGlvbjIoZTEsIGUyLCB2MSwgdjIpOwotICB9Ci19OwotCi0vLyBUZXN0cyBm
b3Ige0VYUEVDVHxBU1NFUlR9X1BSRURfRk9STUFUMi4KLQotY2xhc3MgUHJlZGljYXRlMlRlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0
VXAoKSB7Ci0gICAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IHRydWU7Ci0gICAgZmluaXNoZWRfID0g
ZmFsc2U7Ci0gICAgbjFfID0gbjJfID0gMDsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93
bigpIHsKLSAgICAvLyBWZXJpZmllcyB0aGF0IGVhY2ggb2YgdGhlIHByZWRpY2F0ZSdzIGFyZ3Vt
ZW50cyB3YXMgZXZhbHVhdGVkCi0gICAgLy8gZXhhY3RseSBvbmNlLgotICAgIEVYUEVDVF9FUSgx
LCBuMV8pIDw8Ci0gICAgICAgICJUaGUgcHJlZGljYXRlIGFzc2VydGlvbiBkaWRuJ3QgZXZhbHVh
dGUgYXJndW1lbnQgMiAiCi0gICAgICAgICJleGFjdGx5IG9uY2UuIjsKLSAgICBFWFBFQ1RfRVEo
MSwgbjJfKSA8PAotICAgICAgICAiVGhlIHByZWRpY2F0ZSBhc3NlcnRpb24gZGlkbid0IGV2YWx1
YXRlIGFyZ3VtZW50IDMgIgotICAgICAgICAiZXhhY3RseSBvbmNlLiI7Ci0KLSAgICAvLyBWZXJp
ZmllcyB0aGF0IHRoZSBjb250cm9sIGZsb3cgaW4gdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0
ZWQuCi0gICAgaWYgKGV4cGVjdGVkX3RvX2ZpbmlzaF8gJiYgIWZpbmlzaGVkXykgewotICAgICAg
RkFJTCgpIDw8ICJUaGUgcHJlZGljYXRlIGFzc2VydGlvbiB1bmV4cGFjdGVkbHkgYWJvcnRlZCB0
aGUgdGVzdC4iOwotICAgIH0gZWxzZSBpZiAoIWV4cGVjdGVkX3RvX2ZpbmlzaF8gJiYgZmluaXNo
ZWRfKSB7Ci0gICAgICBGQUlMKCkgPDwgIlRoZSBmYWlsZWQgcHJlZGljYXRlIGFzc2VydGlvbiBk
aWRuJ3QgYWJvcnQgdGhlIHRlc3QgIgotICAgICAgICAgICAgICAgICJhcyBleHBlY3RlZC4iOwot
ICAgIH0KLSAgfQotCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVk
IHRvIHJ1biB0byBmaW5pc2guCi0gIHN0YXRpYyBib29sIGV4cGVjdGVkX3RvX2ZpbmlzaF87Ci0K
LSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gZGlkIHJ1biB0byBmaW5pc2guCi0gIHN0
YXRpYyBib29sIGZpbmlzaGVkXzsKLQotICBzdGF0aWMgaW50IG4xXzsKLSAgc3RhdGljIGludCBu
Ml87Ci19OwotCi1ib29sIFByZWRpY2F0ZTJUZXN0OjpleHBlY3RlZF90b19maW5pc2hfOwotYm9v
bCBQcmVkaWNhdGUyVGVzdDo6ZmluaXNoZWRfOwotaW50IFByZWRpY2F0ZTJUZXN0OjpuMV87Ci1p
bnQgUHJlZGljYXRlMlRlc3Q6Om4yXzsKLQotdHlwZWRlZiBQcmVkaWNhdGUyVGVzdCBFWFBFQ1Rf
UFJFRF9GT1JNQVQyVGVzdDsKLXR5cGVkZWYgUHJlZGljYXRlMlRlc3QgQVNTRVJUX1BSRURfRk9S
TUFUMlRlc3Q7Ci10eXBlZGVmIFByZWRpY2F0ZTJUZXN0IEVYUEVDVF9QUkVEMlRlc3Q7Ci10eXBl
ZGVmIFByZWRpY2F0ZTJUZXN0IEFTU0VSVF9QUkVEMlRlc3Q7Ci0KLS8vIFRlc3RzIGEgc3VjY2Vz
c2Z1bCBFWFBFQ1RfUFJFRDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEg
ZnVuY3Rpb24gb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEMlRl
c3QsIEZ1bmN0aW9uT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRUQyKFByZWRG
dW5jdGlvbjJJbnQsCi0gICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAgICsrbjJf
KTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVD
VF9QUkVEMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBv
biBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihFWFBFQ1RfUFJFRDJUZXN0LCBG
dW5jdGlvbk9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEMihQcmVkRnVuY3Rpb24y
Qm9vbCwKLSAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAgICAgQm9vbCgr
K24yXykpOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwg
RVhQRUNUX1BSRUQyIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0
b3Igb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEMlRlc3QsIEZ1
bmN0b3JPbkJ1aWx0SW5UeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRDIoUHJlZEZ1bmN0b3Iy
KCksCi0gICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAgICsrbjJfKTsKLSAgZmlu
aXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVEMiB3
aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgdXNlci1k
ZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEVYUEVDVF9QUkVEMlRlc3QsIEZ1bmN0b3JPblVz
ZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRDIoUHJlZEZ1bmN0b3IyKCksCi0gICAgICAg
ICAgICAgICBCb29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuMl8pKTsKLSAgZmlu
aXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRUQyIHdoZXJl
IHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4g
dHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRDJUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5
cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAg
IEVYUEVDVF9QUkVEMihQcmVkRnVuY3Rpb24ySW50LAotICAgICAgICAgICAgICAgICBuMV8rKywK
LSAgICAgICAgICAgICAgICAgbjJfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIi
KTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRUQyIHdoZXJlIHRoZQotLy8gcHJl
ZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJv
b2wpLgotVEVTVF9GKEVYUEVDVF9QUkVEMlRlc3QsIEZ1bmN0aW9uT25Vc2VyVHlwZUZhaWx1cmUp
IHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BS
RUQyKFByZWRGdW5jdGlvbjJCb29sLAotICAgICAgICAgICAgICAgICBCb29sKG4xXysrKSwKLSAg
ICAgICAgICAgICAgICAgQm9vbChuMl8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0s
ICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRUQyIHdoZXJlIHRoZQotLy8g
cHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0eXBlIChpbnQp
LgotVEVTVF9GKEVYUEVDVF9QUkVEMlRlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBlRmFpbHVyZSkg
ewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJF
RDIoUHJlZEZ1bmN0b3IyKCksCi0gICAgICAgICAgICAgICAgIG4xXysrLAotICAgICAgICAgICAg
ICAgICBuMl8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBU
ZXN0cyBhIGZhaWxlZCBFWFBFQ1RfUFJFRDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0
dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihF
WFBFQ1RfUFJFRDJUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRUQyKFByZWRGdW5jdG9y
MigpLAotICAgICAgICAgICAgICAgICBCb29sKG4xXysrKSwKLSAgICAgICAgICAgICAgICAgQm9v
bChuMl8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVz
dHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3Jt
YXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNT
RVJUX1BSRUQyVGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlU3VjY2VzcykgewotICBBU1NFUlRf
UFJFRDIoUHJlZEZ1bmN0aW9uMkludCwKLSAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAg
ICAgICAgKytuMl8pOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nl
c3NmdWwgQVNTRVJUX1BSRUQyIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBh
IGZ1bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9Q
UkVEMlRlc3QsIEZ1bmN0aW9uT25Vc2VyVHlwZVN1Y2Nlc3MpIHsKLSAgQVNTRVJUX1BSRUQyKFBy
ZWRGdW5jdGlvbjJCb29sLAotICAgICAgICAgICAgICAgQm9vbCgrK24xXyksCi0gICAgICAgICAg
ICAgICBCb29sKCsrbjJfKSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEg
c3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVy
IGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNTRVJUX1BS
RUQyVGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEMihQ
cmVkRnVuY3RvcjIoKSwKLSAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAgICAgICAgKytu
Ml8pOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgQVNT
RVJUX1BSRUQyIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Ig
b24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRUQyVGVzdCwg
RnVuY3Rvck9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEMihQcmVkRnVuY3RvcjIo
KSwKLSAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAgICAgQm9vbCgrK24y
XykpOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRf
UFJFRDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24g
YSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEMlRlc3QsIEZ1bmN0aW9u
T25CdWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwot
ICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRDIoUHJl
ZEZ1bmN0aW9uMkludCwKLSAgICAgICAgICAgICAgICAgbjFfKyssCi0gICAgICAgICAgICAgICAg
IG4yXysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3Rz
IGEgZmFpbGVkIEFTU0VSVF9QUkVEMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIg
aXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NF
UlRfUFJFRDJUZXN0LCBGdW5jdGlvbk9uVXNlclR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3Rv
X2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0g
ICAgQVNTRVJUX1BSRUQyKFByZWRGdW5jdGlvbjJCb29sLAotICAgICAgICAgICAgICAgICBCb29s
KG4xXysrKSwKLSAgICAgICAgICAgICAgICAgQm9vbChuMl8rKykpOwotICAgIGZpbmlzaGVkXyA9
IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRUQyIHdo
ZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1p
biB0eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEMlRlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5U
eXBlRmFpbHVyZSkgewotICBleHBlY3RlZF90b19maW5pc2hfID0gZmFsc2U7Ci0gIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9QUkVEMihQcmVkRnVuY3RvcjIo
KSwKLSAgICAgICAgICAgICAgICAgbjFfKyssCi0gICAgICAgICAgICAgICAgIG4yXysrKTsKLSAg
ICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFT
U0VSVF9QUkVEMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9y
IG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVEMlRlc3Qs
IEZ1bmN0b3JPblVzZXJUeXBlRmFpbHVyZSkgewotICBleHBlY3RlZF90b19maW5pc2hfID0gZmFs
c2U7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9QUkVE
MihQcmVkRnVuY3RvcjIoKSwKLSAgICAgICAgICAgICAgICAgQm9vbChuMV8rKyksCi0gICAgICAg
ICAgICAgICAgIEJvb2wobjJfKyspKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7
Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRF9GT1JNQVQyIHdoZXJlIHRo
ZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4gdHlw
ZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQyVGVzdCwgRnVuY3Rpb25PbkJ1aWx0
SW5UeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRF9GT1JNQVQyKFByZWRGb3JtYXRGdW5jdGlv
bjIsCi0gICAgICAgICAgICAgICAgICAgICAgKytuMV8sCi0gICAgICAgICAgICAgICAgICAgICAg
KytuMl8pOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwg
RVhQRUNUX1BSRURfRk9STUFUMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMg
YSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihFWFBFQ1Rf
UFJFRF9GT1JNQVQyVGVzdCwgRnVuY3Rpb25PblVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1Rf
UFJFRF9GT1JNQVQyKFByZWRGb3JtYXRGdW5jdGlvbjIsCi0gICAgICAgICAgICAgICAgICAgICAg
Qm9vbCgrK24xXyksCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgrK24yXykpOwotICBmaW5p
c2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9S
TUFUMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEg
YnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQyVGVzdCwgRnVu
Y3Rvck9uQnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoUHJlZEZv
cm1hdEZ1bmN0b3IyKCksCi0gICAgICAgICAgICAgICAgICAgICAgKytuMV8sCi0gICAgICAgICAg
ICAgICAgICAgICAgKytuMl8pOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBh
IHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1m
b3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVT
VF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDJUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZVN1Y2Nlc3MpIHsK
LSAgRVhQRUNUX1BSRURfRk9STUFUMihQcmVkRm9ybWF0RnVuY3RvcjIoKSwKLSAgICAgICAgICAg
ICAgICAgICAgICBCb29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjJf
KSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9Q
UkVEX0ZPUk1BVDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rp
b24gb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDJU
ZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoUHJlZEZvcm1hdEZ1
bmN0aW9uMiwKLSAgICAgICAgICAgICAgICAgICAgICAgIG4xXysrLAotICAgICAgICAgICAgICAg
ICAgICAgICAgbjJfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQot
Ly8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRURfRk9STUFUMiB3aGVyZSB0aGUKLS8vIHByZWRp
Y2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29s
KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQyVGVzdCwgRnVuY3Rpb25PblVzZXJUeXBlRmFp
bHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBF
Q1RfUFJFRF9GT1JNQVQyKFByZWRGb3JtYXRGdW5jdGlvbjIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBCb29sKG4xXysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjJfKyspKTsK
LSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVk
IEVYUEVDVF9QUkVEX0ZPUk1BVDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlz
IGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoRVhQRUNUX1BSRURf
Rk9STUFUMlRlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBlRmFpbHVyZSkgewotICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKFByZWRG
b3JtYXRGdW5jdG9yMigpLAotICAgICAgICAgICAgICAgICAgICAgICAgbjFfKyssCi0gICAgICAg
ICAgICAgICAgICAgICAgICBuMl8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIp
OwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBFWFBFQ1RfUFJFRF9GT1JNQVQyIHdoZXJlIHRoZQot
Ly8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlw
ZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFUMlRlc3QsIEZ1bmN0b3JPblVzZXJU
eXBlRmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAg
ICBFWFBFQ1RfUFJFRF9GT1JNQVQyKFByZWRGb3JtYXRGdW5jdG9yMigpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgQm9vbChuMV8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4y
XysrKSk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyBh
IHN1Y2Nlc3NmdWwgQVNTRVJUX1BSRURfRk9STUFUMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1m
b3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0Yo
QVNTRVJUX1BSRURfRk9STUFUMlRlc3QsIEZ1bmN0aW9uT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsK
LSAgQVNTRVJUX1BSRURfRk9STUFUMihQcmVkRm9ybWF0RnVuY3Rpb24yLAotICAgICAgICAgICAg
ICAgICAgICAgICsrbjFfLAotICAgICAgICAgICAgICAgICAgICAgICsrbjJfKTsKLSAgZmluaXNo
ZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEX0ZPUk1B
VDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1
c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUMlRlc3Qs
IEZ1bmN0aW9uT25Vc2VyVHlwZVN1Y2Nlc3MpIHsKLSAgQVNTRVJUX1BSRURfRk9STUFUMihQcmVk
Rm9ybWF0RnVuY3Rpb24yLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAg
ICAgICAgICAgICAgICAgICAgIEJvb2woKytuMl8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0K
LQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEX0ZPUk1BVDIgd2hlcmUgdGhlCi0v
LyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGlu
dCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUMlRlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBl
U3VjY2VzcykgewotICBBU1NFUlRfUFJFRF9GT1JNQVQyKFByZWRGb3JtYXRGdW5jdG9yMigpLAot
ICAgICAgICAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAgICAgICAgICAgICAgICsrbjJf
KTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VS
VF9QUkVEX0ZPUk1BVDIgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVu
Y3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRF9G
T1JNQVQyVGVzdCwgRnVuY3Rvck9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZP
Uk1BVDIoUHJlZEZvcm1hdEZ1bmN0b3IyKCksCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgr
K24xXyksCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgrK24yXykpOwotICBmaW5pc2hlZF8g
PSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRF9GT1JNQVQyIHdoZXJl
IHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4g
dHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JNQVQyVGVzdCwgRnVuY3Rpb25PbkJ1
aWx0SW5UeXBlRmFpbHVyZSkgewotICBleHBlY3RlZF90b19maW5pc2hfID0gZmFsc2U7Ci0gIEVY
UEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9QUkVEX0ZPUk1BVDIo
UHJlZEZvcm1hdEZ1bmN0aW9uMiwKLSAgICAgICAgICAgICAgICAgICAgICAgIG4xXysrLAotICAg
ICAgICAgICAgICAgICAgICAgICAgbjJfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0s
ICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRURfRk9STUFUMiB3aGVyZSB0
aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5l
ZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JNQVQyVGVzdCwgRnVuY3Rpb25P
blVzZXJUeXBlRmFpbHVyZSkgewotICBleHBlY3RlZF90b19maW5pc2hfID0gZmFsc2U7Ci0gIEVY
UEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9QUkVEX0ZPUk1BVDIo
UHJlZEZvcm1hdEZ1bmN0aW9uMiwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjFfKysp
LAotICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuMl8rKykpOwotICAgIGZpbmlzaGVkXyA9
IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRURfRk9S
TUFUMiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEg
YnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JNQVQyVGVzdCwgRnVu
Y3Rvck9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxz
ZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURf
Rk9STUFUMihQcmVkRm9ybWF0RnVuY3RvcjIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG4x
XysrLAotICAgICAgICAgICAgICAgICAgICAgICAgbjJfKyspOwotICAgIGZpbmlzaGVkXyA9IHRy
dWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRURfRk9STUFU
MiB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgdXNl
ci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDJUZXN0LCBG
dW5jdG9yT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNl
OwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRF9G
T1JNQVQyKFByZWRGb3JtYXRGdW5jdG9yMigpLAotICAgICAgICAgICAgICAgICAgICAgICAgQm9v
bChuMV8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSk7Ci0gICAgZmlu
aXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotLy8gU2FtcGxlIGZ1bmN0aW9ucy9mdW5jdG9y
cyBmb3IgdGVzdGluZyB0ZXJuYXJ5IHByZWRpY2F0ZSBhc3NlcnRpb25zLgotCi0vLyBBIHRlcm5h
cnkgcHJlZGljYXRlIGZ1bmN0aW9uLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDM+Ci1ib29sIFByZWRGdW5jdGlvbjMoVDEgdjEsIFQyIHYyLCBUMyB2Mykg
ewotICByZXR1cm4gdjEgKyB2MiArIHYzID4gMDsKLX0KLQotLy8gVGhlIGZvbGxvd2luZyB0d28g
ZnVuY3Rpb25zIGFyZSBuZWVkZWQgdG8gY2lyY3VtdmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUu
Mywgd2hpY2ggc29tZXRpbWVzIGhhcyBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0v
LyBmdW5jdGlvbi4KLWJvb2wgUHJlZEZ1bmN0aW9uM0ludChpbnQgdjEsIGludCB2MiwgaW50IHYz
KSB7Ci0gIHJldHVybiB2MSArIHYyICsgdjMgPiAwOwotfQotYm9vbCBQcmVkRnVuY3Rpb24zQm9v
bChCb29sIHYxLCBCb29sIHYyLCBCb29sIHYzKSB7Ci0gIHJldHVybiB2MSArIHYyICsgdjMgPiAw
OwotfQotCi0vLyBBIHRlcm5hcnkgcHJlZGljYXRlIGZ1bmN0b3IuCi1zdHJ1Y3QgUHJlZEZ1bmN0
b3IzIHsKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+
Ci0gIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUMSYgdjEsCi0gICAgICAgICAgICAgICAgICBjb25z
dCBUMiYgdjIsCi0gICAgICAgICAgICAgICAgICBjb25zdCBUMyYgdjMpIHsKLSAgICByZXR1cm4g
djEgKyB2MiArIHYzID4gMDsKLSAgfQotfTsKLQotLy8gQSB0ZXJuYXJ5IHByZWRpY2F0ZS1mb3Jt
YXR0ZXIgZnVuY3Rpb24uCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMz4KLXRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBQcmVkRm9ybWF0RnVuY3Rpb24zKGNv
bnN0IGNoYXIqIGUxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBlMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFQxJiB2MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFQyJiB2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFQzJiB2MykgewotICBpZiAoUHJlZEZ1bmN0aW9uMyh2
MSwgdjIsIHYzKSkKLSAgICByZXR1cm4gdGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOwotCi0g
IHJldHVybiB0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkKLSAgICAgIDw8IGUxIDw8ICIgKyAi
IDw8IGUyIDw8ICIgKyAiIDw8IGUzCi0gICAgICA8PCAiIGlzIGV4cGVjdGVkIHRvIGJlIHBvc2l0
aXZlLCBidXQgZXZhbHVhdGVzIHRvICIKLSAgICAgIDw8IHYxICsgdjIgKyB2MyA8PCAiLiI7Ci19
Ci0KLS8vIEEgdGVybmFyeSBwcmVkaWNhdGUtZm9ybWF0dGVyIGZ1bmN0b3IuCi1zdHJ1Y3QgUHJl
ZEZvcm1hdEZ1bmN0b3IzIHsKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDM+Ci0gIHRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBvcGVyYXRvcigpKGNvbnN0
IGNoYXIqIGUxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiBlMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogZTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQxJiB2
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDImIHYyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUMyYgdjMpIGNvbnN0
IHsKLSAgICByZXR1cm4gUHJlZEZvcm1hdEZ1bmN0aW9uMyhlMSwgZTIsIGUzLCB2MSwgdjIsIHYz
KTsKLSAgfQotfTsKLQotLy8gVGVzdHMgZm9yIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDMu
Ci0KLWNsYXNzIFByZWRpY2F0ZTNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3Rl
Y3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGV4cGVjdGVkX3RvX2ZpbmlzaF8g
PSB0cnVlOwotICAgIGZpbmlzaGVkXyA9IGZhbHNlOwotICAgIG4xXyA9IG4yXyA9IG4zXyA9IDA7
Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgLy8gVmVyaWZpZXMgdGhh
dCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAotICAgIC8v
IGV4YWN0bHkgb25jZS4KLSAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8PAotICAgICAgICAiVGhlIHBy
ZWRpY2F0ZSBhc3NlcnRpb24gZGlkbid0IGV2YWx1YXRlIGFyZ3VtZW50IDIgIgotICAgICAgICAi
ZXhhY3RseSBvbmNlLiI7Ci0gICAgRVhQRUNUX0VRKDEsIG4yXykgPDwKLSAgICAgICAgIlRoZSBw
cmVkaWNhdGUgYXNzZXJ0aW9uIGRpZG4ndCBldmFsdWF0ZSBhcmd1bWVudCAzICIKLSAgICAgICAg
ImV4YWN0bHkgb25jZS4iOwotICAgIEVYUEVDVF9FUSgxLCBuM18pIDw8Ci0gICAgICAgICJUaGUg
cHJlZGljYXRlIGFzc2VydGlvbiBkaWRuJ3QgZXZhbHVhdGUgYXJndW1lbnQgNCAiCi0gICAgICAg
ICJleGFjdGx5IG9uY2UuIjsKLQotICAgIC8vIFZlcmlmaWVzIHRoYXQgdGhlIGNvbnRyb2wgZmxv
dyBpbiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZC4KLSAgICBpZiAoZXhwZWN0ZWRfdG9f
ZmluaXNoXyAmJiAhZmluaXNoZWRfKSB7Ci0gICAgICBGQUlMKCkgPDwgIlRoZSBwcmVkaWNhdGUg
YXNzZXJ0aW9uIHVuZXhwYWN0ZWRseSBhYm9ydGVkIHRoZSB0ZXN0LiI7Ci0gICAgfSBlbHNlIGlm
ICghZXhwZWN0ZWRfdG9fZmluaXNoXyAmJiBmaW5pc2hlZF8pIHsKLSAgICAgIEZBSUwoKSA8PCAi
VGhlIGZhaWxlZCBwcmVkaWNhdGUgYXNzZXJ0aW9uIGRpZG4ndCBhYm9ydCB0aGUgdGVzdCAiCi0g
ICAgICAgICAgICAgICAgImFzIGV4cGVjdGVkLiI7Ci0gICAgfQotICB9Ci0KLSAgLy8gdHJ1ZSBp
ZmYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KLSAgc3Rh
dGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKLQotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBm
dW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KLSAgc3RhdGljIGJvb2wgZmluaXNoZWRfOwotCi0g
IHN0YXRpYyBpbnQgbjFfOwotICBzdGF0aWMgaW50IG4yXzsKLSAgc3RhdGljIGludCBuM187Ci19
OwotCi1ib29sIFByZWRpY2F0ZTNUZXN0OjpleHBlY3RlZF90b19maW5pc2hfOwotYm9vbCBQcmVk
aWNhdGUzVGVzdDo6ZmluaXNoZWRfOwotaW50IFByZWRpY2F0ZTNUZXN0OjpuMV87Ci1pbnQgUHJl
ZGljYXRlM1Rlc3Q6Om4yXzsKLWludCBQcmVkaWNhdGUzVGVzdDo6bjNfOwotCi10eXBlZGVmIFBy
ZWRpY2F0ZTNUZXN0IEVYUEVDVF9QUkVEX0ZPUk1BVDNUZXN0OwotdHlwZWRlZiBQcmVkaWNhdGUz
VGVzdCBBU1NFUlRfUFJFRF9GT1JNQVQzVGVzdDsKLXR5cGVkZWYgUHJlZGljYXRlM1Rlc3QgRVhQ
RUNUX1BSRUQzVGVzdDsKLXR5cGVkZWYgUHJlZGljYXRlM1Rlc3QgQVNTRVJUX1BSRUQzVGVzdDsK
LQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVEMyB3aGVyZSB0aGUKLS8vIHByZWRp
Y2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1U
RVNUX0YoRVhQRUNUX1BSRUQzVGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlU3VjY2Vzcykgewot
ICBFWFBFQ1RfUFJFRDMoUHJlZEZ1bmN0aW9uM0ludCwKLSAgICAgICAgICAgICAgICsrbjFfLAot
ICAgICAgICAgICAgICAgKytuMl8sCi0gICAgICAgICAgICAgICArK24zXyk7Ci0gIGZpbmlzaGVk
XyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRDMgd2hlcmUg
dGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1c2VyLWRlZmlu
ZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRUQzVGVzdCwgRnVuY3Rpb25PblVzZXJU
eXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRDMoUHJlZEZ1bmN0aW9uM0Jvb2wsCi0gICAgICAg
ICAgICAgICBCb29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuMl8pLAotICAgICAg
ICAgICAgICAgQm9vbCgrK24zXykpOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0
cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRUQzIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1h
dHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVD
VF9QUkVEM1Rlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJF
RDMoUHJlZEZ1bmN0b3IzKCksCi0gICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAg
ICsrbjJfLAotICAgICAgICAgICAgICAgKytuM18pOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQot
Ci0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRUQzIHdoZXJlIHRoZQotLy8gcHJlZGlj
YXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCku
Ci1URVNUX0YoRVhQRUNUX1BSRUQzVGVzdCwgRnVuY3Rvck9uVXNlclR5cGVTdWNjZXNzKSB7Ci0g
IEVYUEVDVF9QUkVEMyhQcmVkRnVuY3RvcjMoKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuMV8p
LAotICAgICAgICAgICAgICAgQm9vbCgrK24yXyksCi0gICAgICAgICAgICAgICBCb29sKCsrbjNf
KSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9Q
UkVEMyB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBh
IGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoRVhQRUNUX1BSRUQzVGVzdCwgRnVuY3Rpb25P
bkJ1aWx0SW5UeXBlRmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBO
T0xJTlQKLSAgICBFWFBFQ1RfUFJFRDMoUHJlZEZ1bmN0aW9uM0ludCwKLSAgICAgICAgICAgICAg
ICAgbjFfKyssCi0gICAgICAgICAgICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAgICBuM18r
Kyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZh
aWxlZCBFWFBFQ1RfUFJFRDMgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEg
ZnVuY3Rpb24gb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BS
RUQzVGVzdCwgRnVuY3Rpb25PblVzZXJUeXBlRmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJFRDMoUHJlZEZ1bmN0aW9uM0Jvb2ws
Ci0gICAgICAgICAgICAgICAgIEJvb2wobjFfKyspLAotICAgICAgICAgICAgICAgICBCb29sKG4y
XysrKSwKLSAgICAgICAgICAgICAgICAgQm9vbChuM18rKykpOwotICAgIGZpbmlzaGVkXyA9IHRy
dWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRUQzIHdoZXJl
IHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0
eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEM1Rlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBl
RmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBF
WFBFQ1RfUFJFRDMoUHJlZEZ1bmN0b3IzKCksCi0gICAgICAgICAgICAgICAgIG4xXysrLAotICAg
ICAgICAgICAgICAgICBuMl8rKywKLSAgICAgICAgICAgICAgICAgbjNfKyspOwotICAgIGZpbmlz
aGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BS
RUQzIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1
c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRUQzVGVzdCwgRnVuY3Rv
ck9uVXNlclR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5P
TElOVAotICAgIEVYUEVDVF9QUkVEMyhQcmVkRnVuY3RvcjMoKSwKLSAgICAgICAgICAgICAgICAg
Qm9vbChuMV8rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjJfKyspLAotICAgICAgICAgICAg
ICAgICBCb29sKG4zXysrKSk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQot
Ci0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgQVNTRVJUX1BSRUQzIHdoZXJlIHRoZQotLy8gcHJlZGlj
YXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRF
U1RfRihBU1NFUlRfUFJFRDNUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0g
IEFTU0VSVF9QUkVEMyhQcmVkRnVuY3Rpb24zSW50LAotICAgICAgICAgICAgICAgKytuMV8sCi0g
ICAgICAgICAgICAgICArK24yXywKLSAgICAgICAgICAgICAgICsrbjNfKTsKLSAgZmluaXNoZWRf
ID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEMyB3aGVyZSB0
aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5l
ZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRDNUZXN0LCBGdW5jdGlvbk9uVXNlclR5
cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEMyhQcmVkRnVuY3Rpb24zQm9vbCwKLSAgICAgICAg
ICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAgICAgQm9vbCgrK24yXyksCi0gICAgICAg
ICAgICAgICBCb29sKCsrbjNfKSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3Rz
IGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRDMgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0
dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNTRVJU
X1BSRUQzVGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVE
MyhQcmVkRnVuY3RvcjMoKSwKLSAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAgICAgICAg
KytuMl8sCi0gICAgICAgICAgICAgICArK24zXyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0K
LS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRDMgd2hlcmUgdGhlCi0vLyBwcmVkaWNh
dGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4K
LVRFU1RfRihBU1NFUlRfUFJFRDNUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZVN1Y2Nlc3MpIHsKLSAg
QVNTRVJUX1BSRUQzKFByZWRGdW5jdG9yMygpLAotICAgICAgICAgICAgICAgQm9vbCgrK24xXyks
Ci0gICAgICAgICAgICAgICBCb29sKCsrbjJfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuM18p
KTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BS
RUQzIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEg
YnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRDNUZXN0LCBGdW5jdGlvbk9u
QnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRUQzKFByZWRG
dW5jdGlvbjNJbnQsCi0gICAgICAgICAgICAgICAgIG4xXysrLAotICAgICAgICAgICAgICAgICBu
Ml8rKywKLSAgICAgICAgICAgICAgICAgbjNfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0g
IH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRUQzIHdoZXJlIHRoZQot
Ly8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5
cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVEM1Rlc3QsIEZ1bmN0aW9uT25Vc2VyVHlwZUZh
aWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxf
RkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRDMoUHJlZEZ1bmN0aW9uM0Jvb2ws
Ci0gICAgICAgICAgICAgICAgIEJvb2wobjFfKyspLAotICAgICAgICAgICAgICAgICBCb29sKG4y
XysrKSwKLSAgICAgICAgICAgICAgICAgQm9vbChuM18rKykpOwotICAgIGZpbmlzaGVkXyA9IHRy
dWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRUQzIHdoZXJl
IHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0
eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEM1Rlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBl
RmFpbHVyZSkgewotICBleHBlY3RlZF90b19maW5pc2hfID0gZmFsc2U7Ci0gIEVYUEVDVF9GQVRB
TF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9QUkVEMyhQcmVkRnVuY3RvcjMoKSwK
LSAgICAgICAgICAgICAgICAgbjFfKyssCi0gICAgICAgICAgICAgICAgIG4yXysrLAotICAgICAg
ICAgICAgICAgICBuM18rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQot
Ci0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRDMgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUt
Zm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRF
U1RfRihBU1NFUlRfUFJFRDNUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgZXhw
ZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBO
T0xJTlQKLSAgICBBU1NFUlRfUFJFRDMoUHJlZEZ1bmN0b3IzKCksCi0gICAgICAgICAgICAgICAg
IEJvb2wobjFfKyspLAotICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSwKLSAgICAgICAgICAg
ICAgICAgQm9vbChuM18rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0K
LQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVEX0ZPUk1BVDMgd2hlcmUgdGhlCi0v
LyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSBidWlsdC1pbiB0eXBlIChp
bnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDNUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5
cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDMoUHJlZEZvcm1hdEZ1bmN0aW9uMywK
LSAgICAgICAgICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAgICAgICAgICArK24y
XywKLSAgICAgICAgICAgICAgICAgICAgICArK24zXyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19
Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRF9GT1JNQVQzIHdoZXJlIHRoZQot
Ly8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5
cGUgKEJvb2wpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDNUZXN0LCBGdW5jdGlvbk9uVXNl
clR5cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDMoUHJlZEZvcm1hdEZ1bmN0aW9u
MywKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgICAg
ICAgICBCb29sKCsrbjJfKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjNfKSk7Ci0g
IGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJF
RF9GT1JNQVQzIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Ig
b24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDNUZXN0
LCBGdW5jdG9yT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRURfRk9STUFUMyhQ
cmVkRm9ybWF0RnVuY3RvcjMoKSwKLSAgICAgICAgICAgICAgICAgICAgICArK24xXywKLSAgICAg
ICAgICAgICAgICAgICAgICArK24yXywKLSAgICAgICAgICAgICAgICAgICAgICArK24zXyk7Ci0g
IGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJF
RF9GT1JNQVQzIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Ig
b24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFU
M1Rlc3QsIEZ1bmN0b3JPblVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRF9GT1JNQVQz
KFByZWRGb3JtYXRGdW5jdG9yMygpLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuMV8p
LAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuMl8pLAotICAgICAgICAgICAgICAgICAg
ICAgIEJvb2woKytuM18pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBm
YWlsZWQgRVhQRUNUX1BSRURfRk9STUFUMyB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0
ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoRVhQRUNU
X1BSRURfRk9STUFUM1Rlc3QsIEZ1bmN0aW9uT25CdWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRURfRk9STUFU
MyhQcmVkRm9ybWF0RnVuY3Rpb24zLAotICAgICAgICAgICAgICAgICAgICAgICAgbjFfKyssCi0g
ICAgICAgICAgICAgICAgICAgICAgICBuMl8rKywKLSAgICAgICAgICAgICAgICAgICAgICAgIG4z
XysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEg
ZmFpbGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDMgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0
dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0Yo
RVhQRUNUX1BSRURfRk9STUFUM1Rlc3QsIEZ1bmN0aW9uT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRURfRk9S
TUFUMyhQcmVkRm9ybWF0RnVuY3Rpb24zLAotICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChu
MV8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIEJvb2wobjNfKyspKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAi
Iik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDMgd2hlcmUgdGhl
Ci0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUg
KGludCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFUM1Rlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5U
eXBlRmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAg
ICBFWFBFQ1RfUFJFRF9GT1JNQVQzKFByZWRGb3JtYXRGdW5jdG9yMygpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgbjFfKyssCi0gICAgICAgICAgICAgICAgICAgICAgICBuMl8rKywKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG4zXysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAi
Iik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDMgd2hlcmUgdGhl
Ci0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0
eXBlIChCb29sKS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQzVGVzdCwgRnVuY3Rvck9uVXNl
clR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAot
ICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDMoUHJlZEZvcm1hdEZ1bmN0b3IzKCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICBCb29sKG4xXysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wo
bjJfKyspLAotICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuM18rKykpOwotICAgIGZpbmlz
aGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VS
VF9QUkVEX0ZPUk1BVDMgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVu
Y3Rpb24gb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1B
VDNUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZP
Uk1BVDMoUHJlZEZvcm1hdEZ1bmN0aW9uMywKLSAgICAgICAgICAgICAgICAgICAgICArK24xXywK
LSAgICAgICAgICAgICAgICAgICAgICArK24yXywKLSAgICAgICAgICAgICAgICAgICAgICArK24z
Xyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NF
UlRfUFJFRF9GT1JNQVQzIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1
bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVE
X0ZPUk1BVDNUZXN0LCBGdW5jdGlvbk9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVE
X0ZPUk1BVDMoUHJlZEZvcm1hdEZ1bmN0aW9uMywKLSAgICAgICAgICAgICAgICAgICAgICBCb29s
KCsrbjFfKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjJfKSwKLSAgICAgICAgICAg
ICAgICAgICAgICBCb29sKCsrbjNfKSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRl
c3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQzIHdoZXJlIHRoZQotLy8gcHJlZGlj
YXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVT
VF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDNUZXN0LCBGdW5jdG9yT25CdWlsdEluVHlwZVN1Y2Nlc3Mp
IHsKLSAgQVNTRVJUX1BSRURfRk9STUFUMyhQcmVkRm9ybWF0RnVuY3RvcjMoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAgICAgICAgICArK24yXywKLSAgICAg
ICAgICAgICAgICAgICAgICArK24zXyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRl
c3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQzIHdoZXJlIHRoZQotLy8gcHJlZGlj
YXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCku
Ci1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUM1Rlc3QsIEZ1bmN0b3JPblVzZXJUeXBlU3VjY2Vz
cykgewotICBBU1NFUlRfUFJFRF9GT1JNQVQzKFByZWRGb3JtYXRGdW5jdG9yMygpLAotICAgICAg
ICAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2wo
KytuMl8pLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuM18pKTsKLSAgZmluaXNoZWRf
ID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRURfRk9STUFUMyB3aGVy
ZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWlu
IHR5cGUgKGludCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUM1Rlc3QsIEZ1bmN0aW9uT25C
dWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBF
WFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRF9GT1JNQVQz
KFByZWRGb3JtYXRGdW5jdGlvbjMsCi0gICAgICAgICAgICAgICAgICAgICAgICBuMV8rKywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAgICAgICAgICAgbjNf
KyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBm
YWlsZWQgQVNTRVJUX1BSRURfRk9STUFUMyB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0
ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihB
U1NFUlRfUFJFRF9GT1JNQVQzVGVzdCwgRnVuY3Rpb25PblVzZXJUeXBlRmFpbHVyZSkgewotICBl
eHBlY3RlZF90b19maW5pc2hfID0gZmFsc2U7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8v
IE5PTElOVAotICAgIEFTU0VSVF9QUkVEX0ZPUk1BVDMoUHJlZEZvcm1hdEZ1bmN0aW9uMywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjFfKyspLAotICAgICAgICAgICAgICAgICAgICAg
ICAgQm9vbChuMl8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4zXysrKSk7Ci0g
ICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBB
U1NFUlRfUFJFRF9GT1JNQVQzIHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBh
IGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZP
Uk1BVDNUZXN0LCBGdW5jdG9yT25CdWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9f
ZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAg
ICBBU1NFUlRfUFJFRF9GT1JNQVQzKFByZWRGb3JtYXRGdW5jdG9yMygpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgbjFfKyssCi0gICAgICAgICAgICAgICAgICAgICAgICBuMl8rKywKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG4zXysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAi
Iik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VSVF9QUkVEX0ZPUk1BVDMgd2hlcmUgdGhl
Ci0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0
eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JNQVQzVGVzdCwgRnVuY3Rvck9uVXNl
clR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURfRk9STUFUMyhQcmVk
Rm9ybWF0RnVuY3RvcjMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjFfKyspLAot
ICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuMl8rKyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICBCb29sKG4zXysrKSk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQot
Ly8gU2FtcGxlIGZ1bmN0aW9ucy9mdW5jdG9ycyBmb3IgdGVzdGluZyA0LWFyeSBwcmVkaWNhdGUg
YXNzZXJ0aW9ucy4KLQotLy8gQSA0LWFyeSBwcmVkaWNhdGUgZnVuY3Rpb24uCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci1ib29s
IFByZWRGdW5jdGlvbjQoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQpIHsKLSAgcmV0dXJuIHYx
ICsgdjIgKyB2MyArIHY0ID4gMDsKLX0KLQotLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25z
IGFyZSBuZWVkZWQgdG8gY2lyY3VtdmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUuMywgd2hpY2gg
c29tZXRpbWVzIGhhcyBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0vLyBmdW5jdGlv
bi4KLWJvb2wgUHJlZEZ1bmN0aW9uNEludChpbnQgdjEsIGludCB2MiwgaW50IHYzLCBpbnQgdjQp
IHsKLSAgcmV0dXJuIHYxICsgdjIgKyB2MyArIHY0ID4gMDsKLX0KLWJvb2wgUHJlZEZ1bmN0aW9u
NEJvb2woQm9vbCB2MSwgQm9vbCB2MiwgQm9vbCB2MywgQm9vbCB2NCkgewotICByZXR1cm4gdjEg
KyB2MiArIHYzICsgdjQgPiAwOwotfQotCi0vLyBBIDQtYXJ5IHByZWRpY2F0ZSBmdW5jdG9yLgot
c3RydWN0IFByZWRGdW5jdG9yNCB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLSAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFQx
JiB2MSwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IFQyJiB2MiwKLSAgICAgICAgICAgICAgICAg
IGNvbnN0IFQzJiB2MywKLSAgICAgICAgICAgICAgICAgIGNvbnN0IFQ0JiB2NCkgewotICAgIHJl
dHVybiB2MSArIHYyICsgdjMgKyB2NCA+IDA7Ci0gIH0KLX07Ci0KLS8vIEEgNC1hcnkgcHJlZGlj
YXRlLWZvcm1hdHRlciBmdW5jdGlvbi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLXRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBQ
cmVkRm9ybWF0RnVuY3Rpb240KGNvbnN0IGNoYXIqIGUxLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZTIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlMywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGU0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDEmIHYxLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDImIHYyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDMmIHYz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDQm
IHY0KSB7Ci0gIGlmIChQcmVkRnVuY3Rpb240KHYxLCB2MiwgdjMsIHY0KSkKLSAgICByZXR1cm4g
dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOwotCi0gIHJldHVybiB0ZXN0aW5nOjpBc3NlcnRp
b25GYWlsdXJlKCkKLSAgICAgIDw8IGUxIDw8ICIgKyAiIDw8IGUyIDw8ICIgKyAiIDw8IGUzIDw8
ICIgKyAiIDw8IGU0Ci0gICAgICA8PCAiIGlzIGV4cGVjdGVkIHRvIGJlIHBvc2l0aXZlLCBidXQg
ZXZhbHVhdGVzIHRvICIKLSAgICAgIDw8IHYxICsgdjIgKyB2MyArIHY0IDw8ICIuIjsKLX0KLQot
Ly8gQSA0LWFyeSBwcmVkaWNhdGUtZm9ybWF0dGVyIGZ1bmN0b3IuCi1zdHJ1Y3QgUHJlZEZvcm1h
dEZ1bmN0b3I0IHsKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0PgotICB0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgb3BlcmF0b3Io
KShjb25zdCBjaGFyKiBlMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGUzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyKiBlNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VDEmIHYxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUMiYg
djIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQzJiB2MywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDQmIHY0KSBjb25z
dCB7Ci0gICAgcmV0dXJuIFByZWRGb3JtYXRGdW5jdGlvbjQoZTEsIGUyLCBlMywgZTQsIHYxLCB2
MiwgdjMsIHY0KTsKLSAgfQotfTsKLQotLy8gVGVzdHMgZm9yIHtFWFBFQ1R8QVNTRVJUfV9QUkVE
X0ZPUk1BVDQuCi0KLWNsYXNzIFByZWRpY2F0ZTRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
ewotIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGV4cGVjdGVkX3Rv
X2ZpbmlzaF8gPSB0cnVlOwotICAgIGZpbmlzaGVkXyA9IGZhbHNlOwotICAgIG4xXyA9IG4yXyA9
IG4zXyA9IG40XyA9IDA7Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAg
Ly8gVmVyaWZpZXMgdGhhdCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2
YWx1YXRlZAotICAgIC8vIGV4YWN0bHkgb25jZS4KLSAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8PAot
ICAgICAgICAiVGhlIHByZWRpY2F0ZSBhc3NlcnRpb24gZGlkbid0IGV2YWx1YXRlIGFyZ3VtZW50
IDIgIgotICAgICAgICAiZXhhY3RseSBvbmNlLiI7Ci0gICAgRVhQRUNUX0VRKDEsIG4yXykgPDwK
LSAgICAgICAgIlRoZSBwcmVkaWNhdGUgYXNzZXJ0aW9uIGRpZG4ndCBldmFsdWF0ZSBhcmd1bWVu
dCAzICIKLSAgICAgICAgImV4YWN0bHkgb25jZS4iOwotICAgIEVYUEVDVF9FUSgxLCBuM18pIDw8
Ci0gICAgICAgICJUaGUgcHJlZGljYXRlIGFzc2VydGlvbiBkaWRuJ3QgZXZhbHVhdGUgYXJndW1l
bnQgNCAiCi0gICAgICAgICJleGFjdGx5IG9uY2UuIjsKLSAgICBFWFBFQ1RfRVEoMSwgbjRfKSA8
PAotICAgICAgICAiVGhlIHByZWRpY2F0ZSBhc3NlcnRpb24gZGlkbid0IGV2YWx1YXRlIGFyZ3Vt
ZW50IDUgIgotICAgICAgICAiZXhhY3RseSBvbmNlLiI7Ci0KLSAgICAvLyBWZXJpZmllcyB0aGF0
IHRoZSBjb250cm9sIGZsb3cgaW4gdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQuCi0gICAg
aWYgKGV4cGVjdGVkX3RvX2ZpbmlzaF8gJiYgIWZpbmlzaGVkXykgewotICAgICAgRkFJTCgpIDw8
ICJUaGUgcHJlZGljYXRlIGFzc2VydGlvbiB1bmV4cGFjdGVkbHkgYWJvcnRlZCB0aGUgdGVzdC4i
OwotICAgIH0gZWxzZSBpZiAoIWV4cGVjdGVkX3RvX2ZpbmlzaF8gJiYgZmluaXNoZWRfKSB7Ci0g
ICAgICBGQUlMKCkgPDwgIlRoZSBmYWlsZWQgcHJlZGljYXRlIGFzc2VydGlvbiBkaWRuJ3QgYWJv
cnQgdGhlIHRlc3QgIgotICAgICAgICAgICAgICAgICJhcyBleHBlY3RlZC4iOwotICAgIH0KLSAg
fQotCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0
byBmaW5pc2guCi0gIHN0YXRpYyBib29sIGV4cGVjdGVkX3RvX2ZpbmlzaF87Ci0KLSAgLy8gdHJ1
ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gZGlkIHJ1biB0byBmaW5pc2guCi0gIHN0YXRpYyBib29s
IGZpbmlzaGVkXzsKLQotICBzdGF0aWMgaW50IG4xXzsKLSAgc3RhdGljIGludCBuMl87Ci0gIHN0
YXRpYyBpbnQgbjNfOwotICBzdGF0aWMgaW50IG40XzsKLX07Ci0KLWJvb2wgUHJlZGljYXRlNFRl
c3Q6OmV4cGVjdGVkX3RvX2ZpbmlzaF87Ci1ib29sIFByZWRpY2F0ZTRUZXN0OjpmaW5pc2hlZF87
Ci1pbnQgUHJlZGljYXRlNFRlc3Q6Om4xXzsKLWludCBQcmVkaWNhdGU0VGVzdDo6bjJfOwotaW50
IFByZWRpY2F0ZTRUZXN0OjpuM187Ci1pbnQgUHJlZGljYXRlNFRlc3Q6Om40XzsKLQotdHlwZWRl
ZiBQcmVkaWNhdGU0VGVzdCBFWFBFQ1RfUFJFRF9GT1JNQVQ0VGVzdDsKLXR5cGVkZWYgUHJlZGlj
YXRlNFRlc3QgQVNTRVJUX1BSRURfRk9STUFUNFRlc3Q7Ci10eXBlZGVmIFByZWRpY2F0ZTRUZXN0
IEVYUEVDVF9QUkVENFRlc3Q7Ci10eXBlZGVmIFByZWRpY2F0ZTRUZXN0IEFTU0VSVF9QUkVENFRl
c3Q7Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRDQgd2hlcmUgdGhlCi0vLyBw
cmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSBidWlsdC1pbiB0eXBlIChpbnQp
LgotVEVTVF9GKEVYUEVDVF9QUkVENFRlc3QsIEZ1bmN0aW9uT25CdWlsdEluVHlwZVN1Y2Nlc3Mp
IHsKLSAgRVhQRUNUX1BSRUQ0KFByZWRGdW5jdGlvbjRJbnQsCi0gICAgICAgICAgICAgICArK24x
XywKLSAgICAgICAgICAgICAgICsrbjJfLAotICAgICAgICAgICAgICAgKytuM18sCi0gICAgICAg
ICAgICAgICArK240Xyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3Vj
Y2Vzc2Z1bCBFWFBFQ1RfUFJFRDQgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlz
IGEgZnVuY3Rpb24gb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNU
X1BSRUQ0VGVzdCwgRnVuY3Rpb25PblVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRDQo
UHJlZEZ1bmN0aW9uNEJvb2wsCi0gICAgICAgICAgICAgICBCb29sKCsrbjFfKSwKLSAgICAgICAg
ICAgICAgIEJvb2woKytuMl8pLAotICAgICAgICAgICAgICAgQm9vbCgrK24zXyksCi0gICAgICAg
ICAgICAgICBCb29sKCsrbjRfKSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3Rz
IGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRDQgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0
dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoRVhQRUNU
X1BSRUQ0VGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVE
NChQcmVkRnVuY3RvcjQoKSwKLSAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAgICAgICAg
KytuMl8sCi0gICAgICAgICAgICAgICArK24zXywKLSAgICAgICAgICAgICAgICsrbjRfKTsKLSAg
ZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVE
NCB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgdXNl
ci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEVYUEVDVF9QUkVENFRlc3QsIEZ1bmN0b3JP
blVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRDQoUHJlZEZ1bmN0b3I0KCksCi0gICAg
ICAgICAgICAgICBCb29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuMl8pLAotICAg
ICAgICAgICAgICAgQm9vbCgrK24zXyksCi0gICAgICAgICAgICAgICBCb29sKCsrbjRfKSk7Ci0g
IGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVENCB3
aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0
LWluIHR5cGUgKGludCkuCi1URVNUX0YoRVhQRUNUX1BSRUQ0VGVzdCwgRnVuY3Rpb25PbkJ1aWx0
SW5UeXBlRmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQK
LSAgICBFWFBFQ1RfUFJFRDQoUHJlZEZ1bmN0aW9uNEludCwKLSAgICAgICAgICAgICAgICAgbjFf
KyssCi0gICAgICAgICAgICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAgICBuM18rKywKLSAg
ICAgICAgICAgICAgICAgbjRfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsK
LX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRUQ0IHdoZXJlIHRoZQotLy8gcHJlZGlj
YXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wp
LgotVEVTVF9GKEVYUEVDVF9QUkVENFRlc3QsIEZ1bmN0aW9uT25Vc2VyVHlwZUZhaWx1cmUpIHsK
LSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRUQ0
KFByZWRGdW5jdGlvbjRCb29sLAotICAgICAgICAgICAgICAgICBCb29sKG4xXysrKSwKLSAgICAg
ICAgICAgICAgICAgQm9vbChuMl8rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjNfKyspLAot
ICAgICAgICAgICAgICAgICBCb29sKG40XysrKSk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAg
fSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBFWFBFQ1RfUFJFRDQgd2hlcmUgdGhlCi0v
LyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGlu
dCkuCi1URVNUX0YoRVhQRUNUX1BSRUQ0VGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5cGVGYWlsdXJl
KSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9Q
UkVENChQcmVkRnVuY3RvcjQoKSwKLSAgICAgICAgICAgICAgICAgbjFfKyssCi0gICAgICAgICAg
ICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAgICBuM18rKywKLSAgICAgICAgICAgICAgICAg
bjRfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMg
YSBmYWlsZWQgRVhQRUNUX1BSRUQ0IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBp
cyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNU
X1BSRUQ0VGVzdCwgRnVuY3Rvck9uVXNlclR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVENChQcmVkRnVuY3RvcjQoKSwK
LSAgICAgICAgICAgICAgICAgQm9vbChuMV8rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjJf
KyspLAotICAgICAgICAgICAgICAgICBCb29sKG4zXysrKSwKLSAgICAgICAgICAgICAgICAgQm9v
bChuNF8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVz
dHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVENCB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3Jt
YXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNT
RVJUX1BSRUQ0VGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlU3VjY2VzcykgewotICBBU1NFUlRf
UFJFRDQoUHJlZEZ1bmN0aW9uNEludCwKLSAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAg
ICAgICAgKytuMl8sCi0gICAgICAgICAgICAgICArK24zXywKLSAgICAgICAgICAgICAgICsrbjRf
KTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VS
VF9QUkVENCB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBv
biBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRDRUZXN0LCBG
dW5jdGlvbk9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVENChQcmVkRnVuY3Rpb240
Qm9vbCwKLSAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAgICAgQm9vbCgr
K24yXyksCi0gICAgICAgICAgICAgICBCb29sKCsrbjNfKSwKLSAgICAgICAgICAgICAgIEJvb2wo
KytuNF8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVs
IEFTU0VSVF9QUkVENCB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5j
dG9yIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRDRUZXN0LCBG
dW5jdG9yT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgQVNTRVJUX1BSRUQ0KFByZWRGdW5jdG9y
NCgpLAotICAgICAgICAgICAgICAgKytuMV8sCi0gICAgICAgICAgICAgICArK24yXywKLSAgICAg
ICAgICAgICAgICsrbjNfLAotICAgICAgICAgICAgICAgKytuNF8pOwotICBmaW5pc2hlZF8gPSB0
cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgQVNTRVJUX1BSRUQ0IHdoZXJlIHRoZQot
Ly8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlw
ZSAoQm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRUQ0VGVzdCwgRnVuY3Rvck9uVXNlclR5cGVTdWNj
ZXNzKSB7Ci0gIEFTU0VSVF9QUkVENChQcmVkRnVuY3RvcjQoKSwKLSAgICAgICAgICAgICAgIEJv
b2woKytuMV8pLAotICAgICAgICAgICAgICAgQm9vbCgrK24yXyksCi0gICAgICAgICAgICAgICBC
b29sKCsrbjNfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuNF8pKTsKLSAgZmluaXNoZWRfID0g
dHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRUQ0IHdoZXJlIHRoZQotLy8g
cHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50
KS4KLVRFU1RfRihBU1NFUlRfUFJFRDRUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVGYWlsdXJl
KSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRUQ0KFByZWRGdW5jdGlvbjRJbnQsCi0gICAg
ICAgICAgICAgICAgIG4xXysrLAotICAgICAgICAgICAgICAgICBuMl8rKywKLSAgICAgICAgICAg
ICAgICAgbjNfKyssCi0gICAgICAgICAgICAgICAgIG40XysrKTsKLSAgICBmaW5pc2hlZF8gPSB0
cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VSVF9QUkVENCB3aGVy
ZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVm
aW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRDRUZXN0LCBGdW5jdGlvbk9uVXNl
clR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRUQ0KFByZWRGdW5jdGlv
bjRCb29sLAotICAgICAgICAgICAgICAgICBCb29sKG4xXysrKSwKLSAgICAgICAgICAgICAgICAg
Qm9vbChuMl8rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjNfKyspLAotICAgICAgICAgICAg
ICAgICBCb29sKG40XysrKSk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQot
Ci0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRDQgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUt
Zm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0Yo
QVNTRVJUX1BSRUQ0VGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVj
dGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9M
SU5UCi0gICAgQVNTRVJUX1BSRUQ0KFByZWRGdW5jdG9yNCgpLAotICAgICAgICAgICAgICAgICBu
MV8rKywKLSAgICAgICAgICAgICAgICAgbjJfKyssCi0gICAgICAgICAgICAgICAgIG4zXysrLAot
ICAgICAgICAgICAgICAgICBuNF8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIp
OwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRDQgd2hlcmUgdGhlCi0vLyBwcmVk
aWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29s
KS4KLVRFU1RfRihBU1NFUlRfUFJFRDRUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZUZhaWx1cmUpIHsK
LSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7
ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRDQoUHJlZEZ1bmN0b3I0KCksCi0gICAgICAgICAg
ICAgICAgIEJvb2wobjFfKyspLAotICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSwKLSAgICAg
ICAgICAgICAgICAgQm9vbChuM18rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjRfKyspKTsK
LSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vz
c2Z1bCBFWFBFQ1RfUFJFRF9GT1JNQVQ0IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRl
ciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1Rf
UFJFRF9GT1JNQVQ0VGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlU3VjY2VzcykgewotICBFWFBF
Q1RfUFJFRF9GT1JNQVQ0KFByZWRGb3JtYXRGdW5jdGlvbjQsCi0gICAgICAgICAgICAgICAgICAg
ICAgKytuMV8sCi0gICAgICAgICAgICAgICAgICAgICAgKytuMl8sCi0gICAgICAgICAgICAgICAg
ICAgICAgKytuM18sCi0gICAgICAgICAgICAgICAgICAgICAgKytuNF8pOwotICBmaW5pc2hlZF8g
PSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUNCB3
aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXIt
ZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQ0VGVzdCwgRnVu
Y3Rpb25PblVzZXJUeXBlU3VjY2VzcykgewotICBFWFBFQ1RfUFJFRF9GT1JNQVQ0KFByZWRGb3Jt
YXRGdW5jdGlvbjQsCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgrK24xXyksCi0gICAgICAg
ICAgICAgICAgICAgICAgQm9vbCgrK24yXyksCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgr
K24zXyksCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgrK240XykpOwotICBmaW5pc2hlZF8g
PSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUNCB3
aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgYnVpbHQt
aW4gdHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQ0VGVzdCwgRnVuY3Rvck9u
QnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDQoUHJlZEZvcm1hdEZ1
bmN0b3I0KCksCi0gICAgICAgICAgICAgICAgICAgICAgKytuMV8sCi0gICAgICAgICAgICAgICAg
ICAgICAgKytuMl8sCi0gICAgICAgICAgICAgICAgICAgICAgKytuM18sCi0gICAgICAgICAgICAg
ICAgICAgICAgKytuNF8pOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1
Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUNCB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3Jt
YXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9G
KEVYUEVDVF9QUkVEX0ZPUk1BVDRUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZVN1Y2Nlc3MpIHsKLSAg
RVhQRUNUX1BSRURfRk9STUFUNChQcmVkRm9ybWF0RnVuY3RvcjQoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICBCb29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjJfKSwK
LSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjNfKSwKLSAgICAgICAgICAgICAgICAgICAg
ICBCb29sKCsrbjRfKSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgZmFp
bGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDQgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVy
IGlzIGEgZnVuY3Rpb24gb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9Q
UkVEX0ZPUk1BVDRUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDQo
UHJlZEZvcm1hdEZ1bmN0aW9uNCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG4xXysrLAotICAg
ICAgICAgICAgICAgICAgICAgICAgbjJfKyssCi0gICAgICAgICAgICAgICAgICAgICAgICBuM18r
KywKLSAgICAgICAgICAgICAgICAgICAgICAgIG40XysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVl
OwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDQg
d2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1c2Vy
LWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFUNFRlc3QsIEZ1
bmN0aW9uT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAg
Ly8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRURfRk9STUFUNChQcmVkRm9ybWF0RnVuY3Rpb240LAot
ICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuMV8rKyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICBCb29sKG4yXysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjNfKyspLAot
ICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuNF8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRy
dWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRURfRk9STUFU
NCB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgYnVp
bHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQ0VGVzdCwgRnVuY3Rv
ck9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8v
IE5PTElOVAotICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDQoUHJlZEZvcm1hdEZ1bmN0b3I0KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBuMV8rKywKLSAgICAgICAgICAgICAgICAgICAgICAgIG4y
XysrLAotICAgICAgICAgICAgICAgICAgICAgICAgbjNfKyssCi0gICAgICAgICAgICAgICAgICAg
ICAgICBuNF8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBU
ZXN0cyBhIGZhaWxlZCBFWFBFQ1RfUFJFRF9GT1JNQVQ0IHdoZXJlIHRoZQotLy8gcHJlZGljYXRl
LWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1U
RVNUX0YoRVhQRUNUX1BSRURfRk9STUFUNFRlc3QsIEZ1bmN0b3JPblVzZXJUeXBlRmFpbHVyZSkg
ewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJF
RF9GT1JNQVQ0KFByZWRGb3JtYXRGdW5jdG9yNCgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
Qm9vbChuMV8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEJvb2wobjNfKyspLAotICAgICAgICAgICAgICAgICAgICAgICAg
Qm9vbChuNF8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8g
VGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEX0ZPUk1BVDQgd2hlcmUgdGhlCi0vLyBwcmVk
aWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgot
VEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDRUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVTdWNj
ZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZPUk1BVDQoUHJlZEZvcm1hdEZ1bmN0aW9uNCwKLSAgICAg
ICAgICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAgICAgICAgICArK24yXywKLSAg
ICAgICAgICAgICAgICAgICAgICArK24zXywKLSAgICAgICAgICAgICAgICAgICAgICArK240Xyk7
Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRf
UFJFRF9GT1JNQVQ0IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0
aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZP
Uk1BVDRUZXN0LCBGdW5jdGlvbk9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZP
Uk1BVDQoUHJlZEZvcm1hdEZ1bmN0aW9uNCwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsr
bjFfKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjJfKSwKLSAgICAgICAgICAgICAg
ICAgICAgICBCb29sKCsrbjNfKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjRfKSk7
Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRf
UFJFRF9GT1JNQVQ0IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0
b3Igb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDRU
ZXN0LCBGdW5jdG9yT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgQVNTRVJUX1BSRURfRk9STUFU
NChQcmVkRm9ybWF0RnVuY3RvcjQoKSwKLSAgICAgICAgICAgICAgICAgICAgICArK24xXywKLSAg
ICAgICAgICAgICAgICAgICAgICArK24yXywKLSAgICAgICAgICAgICAgICAgICAgICArK24zXywK
LSAgICAgICAgICAgICAgICAgICAgICArK240Xyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0K
LS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQ0IHdoZXJlIHRoZQotLy8g
cHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAo
Qm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUNFRlc3QsIEZ1bmN0b3JPblVzZXJUeXBl
U3VjY2VzcykgewotICBBU1NFUlRfUFJFRF9GT1JNQVQ0KFByZWRGb3JtYXRGdW5jdG9yNCgpLAot
ICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAgICAgICAgICAg
IEJvb2woKytuMl8pLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuM18pLAotICAgICAg
ICAgICAgICAgICAgICAgIEJvb2woKytuNF8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQot
Ly8gVGVzdHMgYSBmYWlsZWQgQVNTRVJUX1BSRURfRk9STUFUNCB3aGVyZSB0aGUKLS8vIHByZWRp
Y2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1U
RVNUX0YoQVNTRVJUX1BSRURfRk9STUFUNFRlc3QsIEZ1bmN0aW9uT25CdWlsdEluVHlwZUZhaWx1
cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJ
TFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRF9GT1JNQVQ0KFByZWRGb3JtYXRGdW5j
dGlvbjQsCi0gICAgICAgICAgICAgICAgICAgICAgICBuMV8rKywKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAgICAgICAgICAgbjNfKyssCi0gICAgICAgICAg
ICAgICAgICAgICAgICBuNF8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIpOwot
fQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRF9GT1JNQVQ0IHdoZXJlIHRoZQotLy8g
cHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUg
KEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDRUZXN0LCBGdW5jdGlvbk9uVXNlclR5
cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURfRk9STUFUNChQcmVkRm9y
bWF0RnVuY3Rpb240LAotICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuMV8rKyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IEJvb2wobjNfKyspLAotICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuNF8rKykpOwotICAg
IGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNT
RVJUX1BSRURfRk9STUFUNCB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBm
dW5jdG9yIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JN
QVQ0VGVzdCwgRnVuY3Rvck9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2Zp
bmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAg
QVNTRVJUX1BSRURfRk9STUFUNChQcmVkRm9ybWF0RnVuY3RvcjQoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG4xXysrLAotICAgICAgICAgICAgICAgICAgICAgICAgbjJfKyssCi0gICAgICAg
ICAgICAgICAgICAgICAgICBuM18rKywKLSAgICAgICAgICAgICAgICAgICAgICAgIG40XysrKTsK
LSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVk
IEFTU0VSVF9QUkVEX0ZPUk1BVDQgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlz
IGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRf
UFJFRF9GT1JNQVQ0VGVzdCwgRnVuY3Rvck9uVXNlclR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVk
X3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5U
Ci0gICAgQVNTRVJUX1BSRURfRk9STUFUNChQcmVkRm9ybWF0RnVuY3RvcjQoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIEJvb2wobjFfKyspLAotICAgICAgICAgICAgICAgICAgICAgICAgQm9v
bChuMl8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4zXysrKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIEJvb2wobjRfKyspKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9
LCAiIik7Ci19Ci0vLyBTYW1wbGUgZnVuY3Rpb25zL2Z1bmN0b3JzIGZvciB0ZXN0aW5nIDUtYXJ5
IHByZWRpY2F0ZSBhc3NlcnRpb25zLgotCi0vLyBBIDUtYXJ5IHByZWRpY2F0ZSBmdW5jdGlvbi4K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDU+Ci1ib29sIFByZWRGdW5jdGlvbjUoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1KSB7Ci0gIHJldHVybiB2MSArIHYyICsgdjMgKyB2NCArIHY1ID4gMDsK
LX0KLQotLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgdG8gY2lyY3Vt
dmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUuMywgd2hpY2ggc29tZXRpbWVzIGhhcyBwcm9ibGVt
IHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0vLyBmdW5jdGlvbi4KLWJvb2wgUHJlZEZ1bmN0aW9u
NUludChpbnQgdjEsIGludCB2MiwgaW50IHYzLCBpbnQgdjQsIGludCB2NSkgewotICByZXR1cm4g
djEgKyB2MiArIHYzICsgdjQgKyB2NSA+IDA7Ci19Ci1ib29sIFByZWRGdW5jdGlvbjVCb29sKEJv
b2wgdjEsIEJvb2wgdjIsIEJvb2wgdjMsIEJvb2wgdjQsIEJvb2wgdjUpIHsKLSAgcmV0dXJuIHYx
ICsgdjIgKyB2MyArIHY0ICsgdjUgPiAwOwotfQotCi0vLyBBIDUtYXJ5IHByZWRpY2F0ZSBmdW5j
dG9yLgotc3RydWN0IFByZWRGdW5jdG9yNSB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci0gIGJvb2wg
b3BlcmF0b3IoKShjb25zdCBUMSYgdjEsCi0gICAgICAgICAgICAgICAgICBjb25zdCBUMiYgdjIs
Ci0gICAgICAgICAgICAgICAgICBjb25zdCBUMyYgdjMsCi0gICAgICAgICAgICAgICAgICBjb25z
dCBUNCYgdjQsCi0gICAgICAgICAgICAgICAgICBjb25zdCBUNSYgdjUpIHsKLSAgICByZXR1cm4g
djEgKyB2MiArIHYzICsgdjQgKyB2NSA+IDA7Ci0gIH0KLX07Ci0KLS8vIEEgNS1hcnkgcHJlZGlj
YXRlLWZvcm1hdHRlciBmdW5jdGlvbi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci10ZXN0aW5nOjpBc3Nl
cnRpb25SZXN1bHQgUHJlZEZvcm1hdEZ1bmN0aW9uNShjb25zdCBjaGFyKiBlMSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGUyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZTMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiBlNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGU1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVDEmIHYxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVDImIHYyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVDMmIHYzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgVDQmIHY0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVDUmIHY1KSB7Ci0gIGlmIChQcmVkRnVuY3Rpb241KHYxLCB2Miwg
djMsIHY0LCB2NSkpCi0gICAgcmV0dXJuIHRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsKLQot
ICByZXR1cm4gdGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpCi0gICAgICA8PCBlMSA8PCAiICsg
IiA8PCBlMiA8PCAiICsgIiA8PCBlMyA8PCAiICsgIiA8PCBlNCA8PCAiICsgIiA8PCBlNQotICAg
ICAgPDwgIiBpcyBleHBlY3RlZCB0byBiZSBwb3NpdGl2ZSwgYnV0IGV2YWx1YXRlcyB0byAiCi0g
ICAgICA8PCB2MSArIHYyICsgdjMgKyB2NCArIHY1IDw8ICIuIjsKLX0KLQotLy8gQSA1LWFyeSBw
cmVkaWNhdGUtZm9ybWF0dGVyIGZ1bmN0b3IuCi1zdHJ1Y3QgUHJlZEZvcm1hdEZ1bmN0b3I1IHsK
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNT4KLSAgdGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IG9wZXJhdG9y
KCkoY29uc3QgY2hhciogZTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIGUyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBlMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogZTQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGU1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
MSYgdjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQyJiB2
MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDMmIHYzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUNCYgdjQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQ1JiB2NSkgY29uc3Qgewot
ICAgIHJldHVybiBQcmVkRm9ybWF0RnVuY3Rpb241KGUxLCBlMiwgZTMsIGU0LCBlNSwgdjEsIHYy
LCB2MywgdjQsIHY1KTsKLSAgfQotfTsKLQotLy8gVGVzdHMgZm9yIHtFWFBFQ1R8QVNTRVJUfV9Q
UkVEX0ZPUk1BVDUuCi0KLWNsYXNzIFByZWRpY2F0ZTVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgewotIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGV4cGVjdGVk
X3RvX2ZpbmlzaF8gPSB0cnVlOwotICAgIGZpbmlzaGVkXyA9IGZhbHNlOwotICAgIG4xXyA9IG4y
XyA9IG4zXyA9IG40XyA9IG41XyA9IDA7Ci0gIH0KLQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7Ci0gICAgLy8gVmVyaWZpZXMgdGhhdCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVu
dHMgd2FzIGV2YWx1YXRlZAotICAgIC8vIGV4YWN0bHkgb25jZS4KLSAgICBFWFBFQ1RfRVEoMSwg
bjFfKSA8PAotICAgICAgICAiVGhlIHByZWRpY2F0ZSBhc3NlcnRpb24gZGlkbid0IGV2YWx1YXRl
IGFyZ3VtZW50IDIgIgotICAgICAgICAiZXhhY3RseSBvbmNlLiI7Ci0gICAgRVhQRUNUX0VRKDEs
IG4yXykgPDwKLSAgICAgICAgIlRoZSBwcmVkaWNhdGUgYXNzZXJ0aW9uIGRpZG4ndCBldmFsdWF0
ZSBhcmd1bWVudCAzICIKLSAgICAgICAgImV4YWN0bHkgb25jZS4iOwotICAgIEVYUEVDVF9FUSgx
LCBuM18pIDw8Ci0gICAgICAgICJUaGUgcHJlZGljYXRlIGFzc2VydGlvbiBkaWRuJ3QgZXZhbHVh
dGUgYXJndW1lbnQgNCAiCi0gICAgICAgICJleGFjdGx5IG9uY2UuIjsKLSAgICBFWFBFQ1RfRVEo
MSwgbjRfKSA8PAotICAgICAgICAiVGhlIHByZWRpY2F0ZSBhc3NlcnRpb24gZGlkbid0IGV2YWx1
YXRlIGFyZ3VtZW50IDUgIgotICAgICAgICAiZXhhY3RseSBvbmNlLiI7Ci0gICAgRVhQRUNUX0VR
KDEsIG41XykgPDwKLSAgICAgICAgIlRoZSBwcmVkaWNhdGUgYXNzZXJ0aW9uIGRpZG4ndCBldmFs
dWF0ZSBhcmd1bWVudCA2ICIKLSAgICAgICAgImV4YWN0bHkgb25jZS4iOwotCi0gICAgLy8gVmVy
aWZpZXMgdGhhdCB0aGUgY29udHJvbCBmbG93IGluIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVj
dGVkLgotICAgIGlmIChleHBlY3RlZF90b19maW5pc2hfICYmICFmaW5pc2hlZF8pIHsKLSAgICAg
IEZBSUwoKSA8PCAiVGhlIHByZWRpY2F0ZSBhc3NlcnRpb24gdW5leHBhY3RlZGx5IGFib3J0ZWQg
dGhlIHRlc3QuIjsKLSAgICB9IGVsc2UgaWYgKCFleHBlY3RlZF90b19maW5pc2hfICYmIGZpbmlz
aGVkXykgewotICAgICAgRkFJTCgpIDw8ICJUaGUgZmFpbGVkIHByZWRpY2F0ZSBhc3NlcnRpb24g
ZGlkbid0IGFib3J0IHRoZSB0ZXN0ICIKLSAgICAgICAgICAgICAgICAiYXMgZXhwZWN0ZWQuIjsK
LSAgICB9Ci0gIH0KLQotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3Rl
ZCB0byBydW4gdG8gZmluaXNoLgotICBzdGF0aWMgYm9vbCBleHBlY3RlZF90b19maW5pc2hfOwot
Ci0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgotICBz
dGF0aWMgYm9vbCBmaW5pc2hlZF87Ci0KLSAgc3RhdGljIGludCBuMV87Ci0gIHN0YXRpYyBpbnQg
bjJfOwotICBzdGF0aWMgaW50IG4zXzsKLSAgc3RhdGljIGludCBuNF87Ci0gIHN0YXRpYyBpbnQg
bjVfOwotfTsKLQotYm9vbCBQcmVkaWNhdGU1VGVzdDo6ZXhwZWN0ZWRfdG9fZmluaXNoXzsKLWJv
b2wgUHJlZGljYXRlNVRlc3Q6OmZpbmlzaGVkXzsKLWludCBQcmVkaWNhdGU1VGVzdDo6bjFfOwot
aW50IFByZWRpY2F0ZTVUZXN0OjpuMl87Ci1pbnQgUHJlZGljYXRlNVRlc3Q6Om4zXzsKLWludCBQ
cmVkaWNhdGU1VGVzdDo6bjRfOwotaW50IFByZWRpY2F0ZTVUZXN0OjpuNV87Ci0KLXR5cGVkZWYg
UHJlZGljYXRlNVRlc3QgRVhQRUNUX1BSRURfRk9STUFUNVRlc3Q7Ci10eXBlZGVmIFByZWRpY2F0
ZTVUZXN0IEFTU0VSVF9QUkVEX0ZPUk1BVDVUZXN0OwotdHlwZWRlZiBQcmVkaWNhdGU1VGVzdCBF
WFBFQ1RfUFJFRDVUZXN0OwotdHlwZWRlZiBQcmVkaWNhdGU1VGVzdCBBU1NFUlRfUFJFRDVUZXN0
OwotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRUQ1IHdoZXJlIHRoZQotLy8gcHJl
ZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4K
LVRFU1RfRihFWFBFQ1RfUFJFRDVUZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVTdWNjZXNzKSB7
Ci0gIEVYUEVDVF9QUkVENShQcmVkRnVuY3Rpb241SW50LAotICAgICAgICAgICAgICAgKytuMV8s
Ci0gICAgICAgICAgICAgICArK24yXywKLSAgICAgICAgICAgICAgICsrbjNfLAotICAgICAgICAg
ICAgICAgKytuNF8sCi0gICAgICAgICAgICAgICArK241Xyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7
Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBFWFBFQ1RfUFJFRDUgd2hlcmUgdGhlCi0vLyBw
cmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1c2VyLWRlZmluZWQgdHlwZSAo
Qm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRUQ1VGVzdCwgRnVuY3Rpb25PblVzZXJUeXBlU3VjY2Vz
cykgewotICBFWFBFQ1RfUFJFRDUoUHJlZEZ1bmN0aW9uNUJvb2wsCi0gICAgICAgICAgICAgICBC
b29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuMl8pLAotICAgICAgICAgICAgICAg
Qm9vbCgrK24zXyksCi0gICAgICAgICAgICAgICBCb29sKCsrbjRfKSwKLSAgICAgICAgICAgICAg
IEJvb2woKytuNV8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNj
ZXNzZnVsIEVYUEVDVF9QUkVENSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMg
YSBmdW5jdG9yIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRDVU
ZXN0LCBGdW5jdG9yT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRUQ1KFByZWRG
dW5jdG9yNSgpLAotICAgICAgICAgICAgICAgKytuMV8sCi0gICAgICAgICAgICAgICArK24yXywK
LSAgICAgICAgICAgICAgICsrbjNfLAotICAgICAgICAgICAgICAgKytuNF8sCi0gICAgICAgICAg
ICAgICArK241Xyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vz
c2Z1bCBFWFBFQ1RfUFJFRDUgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEg
ZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihFWFBFQ1RfUFJF
RDVUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRUQ1KFByZWRG
dW5jdG9yNSgpLAotICAgICAgICAgICAgICAgQm9vbCgrK24xXyksCi0gICAgICAgICAgICAgICBC
b29sKCsrbjJfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuM18pLAotICAgICAgICAgICAgICAg
Qm9vbCgrK240XyksCi0gICAgICAgICAgICAgICBCb29sKCsrbjVfKSk7Ci0gIGZpbmlzaGVkXyA9
IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVENSB3aGVyZSB0aGUKLS8v
IHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGlu
dCkuCi1URVNUX0YoRVhQRUNUX1BSRUQ1VGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlRmFpbHVy
ZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1Rf
UFJFRDUoUHJlZEZ1bmN0aW9uNUludCwKLSAgICAgICAgICAgICAgICAgbjFfKyssCi0gICAgICAg
ICAgICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAgICBuM18rKywKLSAgICAgICAgICAgICAg
ICAgbjRfKyssCi0gICAgICAgICAgICAgICAgIG41XysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVl
OwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVENSB3aGVyZSB0
aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIHVzZXItZGVmaW5l
ZCB0eXBlIChCb29sKS4KLVRFU1RfRihFWFBFQ1RfUFJFRDVUZXN0LCBGdW5jdGlvbk9uVXNlclR5
cGVGYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAg
IEVYUEVDVF9QUkVENShQcmVkRnVuY3Rpb241Qm9vbCwKLSAgICAgICAgICAgICAgICAgQm9vbChu
MV8rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjJfKyspLAotICAgICAgICAgICAgICAgICBC
b29sKG4zXysrKSwKLSAgICAgICAgICAgICAgICAgQm9vbChuNF8rKyksCi0gICAgICAgICAgICAg
ICAgIEJvb2wobjVfKyspKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0K
LS8vIFRlc3RzIGEgZmFpbGVkIEVYUEVDVF9QUkVENSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1m
b3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihF
WFBFQ1RfUFJFRDVUZXN0LCBGdW5jdG9yT25CdWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRUQ1KFByZWRGdW5j
dG9yNSgpLAotICAgICAgICAgICAgICAgICBuMV8rKywKLSAgICAgICAgICAgICAgICAgbjJfKyss
Ci0gICAgICAgICAgICAgICAgIG4zXysrLAotICAgICAgICAgICAgICAgICBuNF8rKywKLSAgICAg
ICAgICAgICAgICAgbjVfKyspOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0K
LQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNUX1BSRUQ1IHdoZXJlIHRoZQotLy8gcHJlZGljYXRl
LWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1U
RVNUX0YoRVhQRUNUX1BSRUQ1VGVzdCwgRnVuY3Rvck9uVXNlclR5cGVGYWlsdXJlKSB7Ci0gIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVENShQcmVk
RnVuY3RvcjUoKSwKLSAgICAgICAgICAgICAgICAgQm9vbChuMV8rKyksCi0gICAgICAgICAgICAg
ICAgIEJvb2wobjJfKyspLAotICAgICAgICAgICAgICAgICBCb29sKG4zXysrKSwKLSAgICAgICAg
ICAgICAgICAgQm9vbChuNF8rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjVfKyspKTsKLSAg
ICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1
bCBBU1NFUlRfUFJFRDUgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVu
Y3Rpb24gb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVENVRlc3Qs
IEZ1bmN0aW9uT25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgQVNTRVJUX1BSRUQ1KFByZWRGdW5j
dGlvbjVJbnQsCi0gICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAgICsrbjJfLAot
ICAgICAgICAgICAgICAgKytuM18sCi0gICAgICAgICAgICAgICArK240XywKLSAgICAgICAgICAg
ICAgICsrbjVfKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNz
ZnVsIEFTU0VSVF9QUkVENSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBm
dW5jdGlvbiBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJF
RDVUZXN0LCBGdW5jdGlvbk9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVENShQcmVk
RnVuY3Rpb241Qm9vbCwKLSAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAg
ICAgQm9vbCgrK24yXyksCi0gICAgICAgICAgICAgICBCb29sKCsrbjNfKSwKLSAgICAgICAgICAg
ICAgIEJvb2woKytuNF8pLAotICAgICAgICAgICAgICAgQm9vbCgrK241XykpOwotICBmaW5pc2hl
ZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgQVNTRVJUX1BSRUQ1IHdoZXJl
IHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0
eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVENVRlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBl
U3VjY2VzcykgewotICBBU1NFUlRfUFJFRDUoUHJlZEZ1bmN0b3I1KCksCi0gICAgICAgICAgICAg
ICArK24xXywKLSAgICAgICAgICAgICAgICsrbjJfLAotICAgICAgICAgICAgICAgKytuM18sCi0g
ICAgICAgICAgICAgICArK240XywKLSAgICAgICAgICAgICAgICsrbjVfKTsKLSAgZmluaXNoZWRf
ID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVENSB3aGVyZSB0
aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9uIGEgdXNlci1kZWZpbmVk
IHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVENVRlc3QsIEZ1bmN0b3JPblVzZXJUeXBl
U3VjY2VzcykgewotICBBU1NFUlRfUFJFRDUoUHJlZEZ1bmN0b3I1KCksCi0gICAgICAgICAgICAg
ICBCb29sKCsrbjFfKSwKLSAgICAgICAgICAgICAgIEJvb2woKytuMl8pLAotICAgICAgICAgICAg
ICAgQm9vbCgrK24zXyksCi0gICAgICAgICAgICAgICBCb29sKCsrbjRfKSwKLSAgICAgICAgICAg
ICAgIEJvb2woKytuNV8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBm
YWlsZWQgQVNTRVJUX1BSRUQ1IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBh
IGZ1bmN0aW9uIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRDVU
ZXN0LCBGdW5jdGlvbk9uQnVpbHRJblR5cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2Zpbmlz
aF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNT
RVJUX1BSRUQ1KFByZWRGdW5jdGlvbjVJbnQsCi0gICAgICAgICAgICAgICAgIG4xXysrLAotICAg
ICAgICAgICAgICAgICBuMl8rKywKLSAgICAgICAgICAgICAgICAgbjNfKyssCi0gICAgICAgICAg
ICAgICAgIG40XysrLAotICAgICAgICAgICAgICAgICBuNV8rKyk7Ci0gICAgZmluaXNoZWRfID0g
dHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRDUgd2hl
cmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1c2VyLWRl
ZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRUQ1VGVzdCwgRnVuY3Rpb25PblVz
ZXJUeXBlRmFpbHVyZSkgewotICBleHBlY3RlZF90b19maW5pc2hfID0gZmFsc2U7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9QUkVENShQcmVkRnVuY3Rp
b241Qm9vbCwKLSAgICAgICAgICAgICAgICAgQm9vbChuMV8rKyksCi0gICAgICAgICAgICAgICAg
IEJvb2wobjJfKyspLAotICAgICAgICAgICAgICAgICBCb29sKG4zXysrKSwKLSAgICAgICAgICAg
ICAgICAgQm9vbChuNF8rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjVfKyspKTsKLSAgICBm
aW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VS
VF9QUkVENSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdG9yIG9u
IGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihBU1NFUlRfUFJFRDVUZXN0LCBGdW5jdG9y
T25CdWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwot
ICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRDUoUHJl
ZEZ1bmN0b3I1KCksCi0gICAgICAgICAgICAgICAgIG4xXysrLAotICAgICAgICAgICAgICAgICBu
Ml8rKywKLSAgICAgICAgICAgICAgICAgbjNfKyssCi0gICAgICAgICAgICAgICAgIG40XysrLAot
ICAgICAgICAgICAgICAgICBuNV8rKyk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAgfSwgIiIp
OwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBBU1NFUlRfUFJFRDUgd2hlcmUgdGhlCi0vLyBwcmVk
aWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChCb29s
KS4KLVRFU1RfRihBU1NFUlRfUFJFRDVUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZUZhaWx1cmUpIHsK
LSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7
ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRDUoUHJlZEZ1bmN0b3I1KCksCi0gICAgICAgICAg
ICAgICAgIEJvb2wobjFfKyspLAotICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSwKLSAgICAg
ICAgICAgICAgICAgQm9vbChuM18rKyksCi0gICAgICAgICAgICAgICAgIEJvb2wobjRfKyspLAot
ICAgICAgICAgICAgICAgICBCb29sKG41XysrKSk7Ci0gICAgZmluaXNoZWRfID0gdHJ1ZTsKLSAg
fSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIHN1Y2Nlc3NmdWwgRVhQRUNUX1BSRURfRk9STUFUNSB3
aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5jdGlvbiBvbiBhIGJ1aWx0
LWluIHR5cGUgKGludCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFUNVRlc3QsIEZ1bmN0aW9u
T25CdWlsdEluVHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRURfRk9STUFUNShQcmVkRm9ybWF0
RnVuY3Rpb241LAotICAgICAgICAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAgICAgICAg
ICAgICAgICsrbjJfLAotICAgICAgICAgICAgICAgICAgICAgICsrbjNfLAotICAgICAgICAgICAg
ICAgICAgICAgICsrbjRfLAotICAgICAgICAgICAgICAgICAgICAgICsrbjVfKTsKLSAgZmluaXNo
ZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVEX0ZPUk1B
VDUgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1
c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQRUNUX1BSRURfRk9STUFUNVRlc3Qs
IEZ1bmN0aW9uT25Vc2VyVHlwZVN1Y2Nlc3MpIHsKLSAgRVhQRUNUX1BSRURfRk9STUFUNShQcmVk
Rm9ybWF0RnVuY3Rpb241LAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAg
ICAgICAgICAgICAgICAgICAgIEJvb2woKytuMl8pLAotICAgICAgICAgICAgICAgICAgICAgIEJv
b2woKytuM18pLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuNF8pLAotICAgICAgICAg
ICAgICAgICAgICAgIEJvb2woKytuNV8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8g
VGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVEX0ZPUk1BVDUgd2hlcmUgdGhlCi0vLyBwcmVk
aWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1U
RVNUX0YoRVhQRUNUX1BSRURfRk9STUFUNVRlc3QsIEZ1bmN0b3JPbkJ1aWx0SW5UeXBlU3VjY2Vz
cykgewotICBFWFBFQ1RfUFJFRF9GT1JNQVQ1KFByZWRGb3JtYXRGdW5jdG9yNSgpLAotICAgICAg
ICAgICAgICAgICAgICAgICsrbjFfLAotICAgICAgICAgICAgICAgICAgICAgICsrbjJfLAotICAg
ICAgICAgICAgICAgICAgICAgICsrbjNfLAotICAgICAgICAgICAgICAgICAgICAgICsrbjRfLAot
ICAgICAgICAgICAgICAgICAgICAgICsrbjVfKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQot
Ly8gVGVzdHMgYSBzdWNjZXNzZnVsIEVYUEVDVF9QUkVEX0ZPUk1BVDUgd2hlcmUgdGhlCi0vLyBw
cmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBlIChC
b29sKS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JNQVQ1VGVzdCwgRnVuY3Rvck9uVXNlclR5cGVT
dWNjZXNzKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDUoUHJlZEZvcm1hdEZ1bmN0b3I1KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgQm9vbCgrK24xXyksCi0gICAgICAgICAgICAgICAgICAgICAg
Qm9vbCgrK24yXyksCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgrK24zXyksCi0gICAgICAg
ICAgICAgICAgICAgICAgQm9vbCgrK240XyksCi0gICAgICAgICAgICAgICAgICAgICAgQm9vbCgr
K241XykpOwotICBmaW5pc2hlZF8gPSB0cnVlOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBFWFBF
Q1RfUFJFRF9GT1JNQVQ1IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1
bmN0aW9uIG9uIGEgYnVpbHQtaW4gdHlwZSAoaW50KS4KLVRFU1RfRihFWFBFQ1RfUFJFRF9GT1JN
QVQ1VGVzdCwgRnVuY3Rpb25PbkJ1aWx0SW5UeXBlRmFpbHVyZSkgewotICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJFRF9GT1JNQVQ1KFByZWRGb3Jt
YXRGdW5jdGlvbjUsCi0gICAgICAgICAgICAgICAgICAgICAgICBuMV8rKywKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAgICAgICAgICAgbjNfKyssCi0gICAg
ICAgICAgICAgICAgICAgICAgICBuNF8rKywKLSAgICAgICAgICAgICAgICAgICAgICAgIG41Xysr
KTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFp
bGVkIEVYUEVDVF9QUkVEX0ZPUk1BVDUgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVy
IGlzIGEgZnVuY3Rpb24gb24gYSB1c2VyLWRlZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoRVhQ
RUNUX1BSRURfRk9STUFUNVRlc3QsIEZ1bmN0aW9uT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRURfRk9STUFU
NShQcmVkRm9ybWF0RnVuY3Rpb241LAotICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuMV8r
KyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4yXysrKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIEJvb2wobjNfKyspLAotICAgICAgICAgICAgICAgICAgICAgICAgQm9vbChuNF8r
KyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG41XysrKSk7Ci0gICAgZmluaXNoZWRf
ID0gdHJ1ZTsKLSAgfSwgIiIpOwotfQotCi0vLyBUZXN0cyBhIGZhaWxlZCBFWFBFQ1RfUFJFRF9G
T1JNQVQ1IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24g
YSBidWlsdC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZPUk1BVDVUZXN0LCBG
dW5jdG9yT25CdWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
eyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRURfRk9STUFUNShQcmVkRm9ybWF0RnVuY3RvcjUo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG4xXysrLAotICAgICAgICAgICAgICAgICAgICAg
ICAgbjJfKyssCi0gICAgICAgICAgICAgICAgICAgICAgICBuM18rKywKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG40XysrLAotICAgICAgICAgICAgICAgICAgICAgICAgbjVfKyspOwotICAgIGZp
bmlzaGVkXyA9IHRydWU7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgRVhQRUNU
X1BSRURfRk9STUFUNSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBmdW5j
dG9yIG9uIGEgdXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEVYUEVDVF9QUkVEX0ZP
Uk1BVDVUZXN0LCBGdW5jdG9yT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRURfRk9STUFUNShQcmVkRm9ybWF0
RnVuY3RvcjUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjFfKyspLAotICAgICAg
ICAgICAgICAgICAgICAgICAgQm9vbChuMl8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBC
b29sKG4zXysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjRfKyspLAotICAgICAg
ICAgICAgICAgICAgICAgICAgQm9vbChuNV8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7Ci0g
IH0sICIiKTsKLX0KLQotLy8gVGVzdHMgYSBzdWNjZXNzZnVsIEFTU0VSVF9QUkVEX0ZPUk1BVDUg
d2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSBidWls
dC1pbiB0eXBlIChpbnQpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDVUZXN0LCBGdW5jdGlv
bk9uQnVpbHRJblR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZPUk1BVDUoUHJlZEZvcm1h
dEZ1bmN0aW9uNSwKLSAgICAgICAgICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAg
ICAgICAgICArK24yXywKLSAgICAgICAgICAgICAgICAgICAgICArK24zXywKLSAgICAgICAgICAg
ICAgICAgICAgICArK240XywKLSAgICAgICAgICAgICAgICAgICAgICArK241Xyk7Ci0gIGZpbmlz
aGVkXyA9IHRydWU7Ci19Ci0KLS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JN
QVQ1IHdoZXJlIHRoZQotLy8gcHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0aW9uIG9uIGEg
dXNlci1kZWZpbmVkIHR5cGUgKEJvb2wpLgotVEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDVUZXN0
LCBGdW5jdGlvbk9uVXNlclR5cGVTdWNjZXNzKSB7Ci0gIEFTU0VSVF9QUkVEX0ZPUk1BVDUoUHJl
ZEZvcm1hdEZ1bmN0aW9uNSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjFfKSwKLSAg
ICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjJfKSwKLSAgICAgICAgICAgICAgICAgICAgICBC
b29sKCsrbjNfKSwKLSAgICAgICAgICAgICAgICAgICAgICBCb29sKCsrbjRfKSwKLSAgICAgICAg
ICAgICAgICAgICAgICBCb29sKCsrbjVfKSk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0KLS8v
IFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQ1IHdoZXJlIHRoZQotLy8gcHJl
ZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSBidWlsdC1pbiB0eXBlIChpbnQpLgot
VEVTVF9GKEFTU0VSVF9QUkVEX0ZPUk1BVDVUZXN0LCBGdW5jdG9yT25CdWlsdEluVHlwZVN1Y2Nl
c3MpIHsKLSAgQVNTRVJUX1BSRURfRk9STUFUNShQcmVkRm9ybWF0RnVuY3RvcjUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICArK24xXywKLSAgICAgICAgICAgICAgICAgICAgICArK24yXywKLSAg
ICAgICAgICAgICAgICAgICAgICArK24zXywKLSAgICAgICAgICAgICAgICAgICAgICArK240XywK
LSAgICAgICAgICAgICAgICAgICAgICArK241Xyk7Ci0gIGZpbmlzaGVkXyA9IHRydWU7Ci19Ci0K
LS8vIFRlc3RzIGEgc3VjY2Vzc2Z1bCBBU1NFUlRfUFJFRF9GT1JNQVQ1IHdoZXJlIHRoZQotLy8g
cHJlZGljYXRlLWZvcm1hdHRlciBpcyBhIGZ1bmN0b3Igb24gYSB1c2VyLWRlZmluZWQgdHlwZSAo
Qm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUNVRlc3QsIEZ1bmN0b3JPblVzZXJUeXBl
U3VjY2VzcykgewotICBBU1NFUlRfUFJFRF9GT1JNQVQ1KFByZWRGb3JtYXRGdW5jdG9yNSgpLAot
ICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuMV8pLAotICAgICAgICAgICAgICAgICAgICAg
IEJvb2woKytuMl8pLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2woKytuM18pLAotICAgICAg
ICAgICAgICAgICAgICAgIEJvb2woKytuNF8pLAotICAgICAgICAgICAgICAgICAgICAgIEJvb2wo
KytuNV8pKTsKLSAgZmluaXNoZWRfID0gdHJ1ZTsKLX0KLQotLy8gVGVzdHMgYSBmYWlsZWQgQVNT
RVJUX1BSRURfRk9STUFUNSB3aGVyZSB0aGUKLS8vIHByZWRpY2F0ZS1mb3JtYXR0ZXIgaXMgYSBm
dW5jdGlvbiBvbiBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9S
TUFUNVRlc3QsIEZ1bmN0aW9uT25CdWlsdEluVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9f
ZmluaXNoXyA9IGZhbHNlOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAg
ICBBU1NFUlRfUFJFRF9GT1JNQVQ1KFByZWRGb3JtYXRGdW5jdGlvbjUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBuMV8rKywKLSAgICAgICAgICAgICAgICAgICAgICAgIG4yXysrLAotICAgICAg
ICAgICAgICAgICAgICAgICAgbjNfKyssCi0gICAgICAgICAgICAgICAgICAgICAgICBuNF8rKywK
LSAgICAgICAgICAgICAgICAgICAgICAgIG41XysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwot
ICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VSVF9QUkVEX0ZPUk1BVDUgd2hl
cmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3Rpb24gb24gYSB1c2VyLWRl
ZmluZWQgdHlwZSAoQm9vbCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUNVRlc3QsIEZ1bmN0
aW9uT25Vc2VyVHlwZUZhaWx1cmUpIHsKLSAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IGZhbHNlOwot
ICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRF9GT1JN
QVQ1KFByZWRGb3JtYXRGdW5jdGlvbjUsCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG4x
XysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjJfKyspLAotICAgICAgICAgICAg
ICAgICAgICAgICAgQm9vbChuM18rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICBCb29sKG40
XysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjVfKyspKTsKLSAgICBmaW5pc2hl
ZF8gPSB0cnVlOwotICB9LCAiIik7Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VSVF9QUkVE
X0ZPUk1BVDUgd2hlcmUgdGhlCi0vLyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBv
biBhIGJ1aWx0LWluIHR5cGUgKGludCkuCi1URVNUX0YoQVNTRVJUX1BSRURfRk9STUFUNVRlc3Qs
IEZ1bmN0b3JPbkJ1aWx0SW5UeXBlRmFpbHVyZSkgewotICBleHBlY3RlZF90b19maW5pc2hfID0g
ZmFsc2U7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9Q
UkVEX0ZPUk1BVDUoUHJlZEZvcm1hdEZ1bmN0b3I1KCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICBuMV8rKywKLSAgICAgICAgICAgICAgICAgICAgICAgIG4yXysrLAotICAgICAgICAgICAgICAg
ICAgICAgICAgbjNfKyssCi0gICAgICAgICAgICAgICAgICAgICAgICBuNF8rKywKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG41XysrKTsKLSAgICBmaW5pc2hlZF8gPSB0cnVlOwotICB9LCAiIik7
Ci19Ci0KLS8vIFRlc3RzIGEgZmFpbGVkIEFTU0VSVF9QUkVEX0ZPUk1BVDUgd2hlcmUgdGhlCi0v
LyBwcmVkaWNhdGUtZm9ybWF0dGVyIGlzIGEgZnVuY3RvciBvbiBhIHVzZXItZGVmaW5lZCB0eXBl
IChCb29sKS4KLVRFU1RfRihBU1NFUlRfUFJFRF9GT1JNQVQ1VGVzdCwgRnVuY3Rvck9uVXNlclR5
cGVGYWlsdXJlKSB7Ci0gIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSBmYWxzZTsKLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURfRk9STUFUNShQcmVkRm9y
bWF0RnVuY3RvcjUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjFfKyspLAotICAg
ICAgICAgICAgICAgICAgICAgICAgQm9vbChuMl8rKyksCi0gICAgICAgICAgICAgICAgICAgICAg
ICBCb29sKG4zXysrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wobjRfKyspLAotICAg
ICAgICAgICAgICAgICAgICAgICAgQm9vbChuNV8rKykpOwotICAgIGZpbmlzaGVkXyA9IHRydWU7
Ci0gIH0sICIiKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rl
c3QvZ3Rlc3RfcHJlbWF0dXJlX2V4aXRfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvZ3Rlc3RfcHJlbWF0dXJlX2V4aXRfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2I0ZGM3ZDQzZmQ2ZjQ4YjlhZmEzMmZjZWFlNjNkYTg1M2M2NDQxOC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFy
dHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MKKysrIC9kZXYv
bnVsbApAQCAtMSwxMjcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0v
LyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikK
LS8vCi0vLyBUZXN0cyB0aGF0IEdvb2dsZSBUZXN0IG1hbmlwdWxhdGVzIHRoZSBwcmVtYXR1cmUt
ZXhpdC1kZXRlY3Rpb24KLS8vIGZpbGUgY29ycmVjdGx5LgotCi0jaW5jbHVkZSA8c3RkaW8uaD4K
LQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLXVzaW5nIDo6dGVzdGluZzo6SW5pdEdvb2ds
ZVRlc3Q7Ci11c2luZyA6OnRlc3Rpbmc6OlRlc3Q7Ci11c2luZyA6OnRlc3Rpbmc6OmludGVybmFs
Ojpwb3NpeDo6R2V0RW52OwotdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6cG9zaXg6OlN0YXQ7
Ci11c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpwb3NpeDo6U3RhdFN0cnVjdDsKLQotbmFtZXNw
YWNlIHsKLQotY2xhc3MgUHJlbWF0dXJlRXhpdFRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHVibGlj
OgotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBnaXZlbiBmaWxlIGV4aXN0cy4KLSAgc3RhdGlj
IGJvb2wgRmlsZUV4aXN0cyhjb25zdCBjaGFyKiBmaWxlcGF0aCkgewotICAgIFN0YXRTdHJ1Y3Qg
c3RhdDsKLSAgICByZXR1cm4gU3RhdChmaWxlcGF0aCwgJnN0YXQpID09IDA7Ci0gIH0KLQotIHBy
b3RlY3RlZDoKLSAgUHJlbWF0dXJlRXhpdFRlc3QoKSB7Ci0gICAgcHJlbWF0dXJlX2V4aXRfZmls
ZV9wYXRoXyA9IEdldEVudigiVEVTVF9QUkVNQVRVUkVfRVhJVF9GSUxFIik7Ci0KLSAgICAvLyBO
b3JtYWxpemUgTlVMTCB0byAiIiBmb3IgZWFzZSBvZiBoYW5kbGluZy4KLSAgICBpZiAocHJlbWF0
dXJlX2V4aXRfZmlsZV9wYXRoXyA9PSBOVUxMKSB7Ci0gICAgICBwcmVtYXR1cmVfZXhpdF9maWxl
X3BhdGhfID0gIiI7Ci0gICAgfQotICB9Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgcHJl
bWF0dXJlLWV4aXQgZmlsZSBleGlzdHMuCi0gIGJvb2wgUHJlbWF0dXJlRXhpdEZpbGVFeGlzdHMo
KSBjb25zdCB7Ci0gICAgcmV0dXJuIEZpbGVFeGlzdHMocHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRo
Xyk7Ci0gIH0KLQotICBjb25zdCBjaGFyKiBwcmVtYXR1cmVfZXhpdF9maWxlX3BhdGhfOwotfTsK
LQotdHlwZWRlZiBQcmVtYXR1cmVFeGl0VGVzdCBQcmVtYXR1cmVFeGl0RGVhdGhUZXN0OwotCi0v
LyBUZXN0cyB0aGF0OgotLy8gICAtIHRoZSBwcmVtYXR1cmUtZXhpdCBmaWxlIGV4aXN0cyBkdXJp
bmcgdGhlIGV4ZWN1dGlvbiBvZiBhCi0vLyAgICAgZGVhdGggdGVzdCAoRVhQRUNUX0RFQVRIKiks
IGFuZAotLy8gICAtIGEgZGVhdGggdGVzdCBkb2Vzbid0IGludGVyZmVyZSB3aXRoIHRoZSBtYWlu
IHRlc3QgcHJvY2VzcydzCi0vLyAgICAgaGFuZGxpbmcgb2YgdGhlIHByZW1hdHVyZS1leGl0IGZp
bGUuCi1URVNUX0YoUHJlbWF0dXJlRXhpdERlYXRoVGVzdCwgRmlsZUV4aXN0c0R1cmluZ0V4ZWN1
dGlvbk9mRGVhdGhUZXN0KSB7Ci0gIGlmICgqcHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9PSAn
XDAnKSB7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCh7
Ci0gICAgICAvLyBJZiB0aGUgZmlsZSBleGlzdHMsIGNyYXNoIHRoZSBwcm9jZXNzIHN1Y2ggdGhh
dCB0aGUgbWFpbiB0ZXN0Ci0gICAgICAvLyBwcm9jZXNzIHdpbGwgY2F0Y2ggdGhlIChleHBlY3Rl
ZCkgY3Jhc2ggYW5kIHJlcG9ydCBhIHN1Y2Nlc3M7Ci0gICAgICAvLyBvdGhlcndpc2UgZG9uJ3Qg
Y3Jhc2gsIHdoaWNoIHdpbGwgY2F1c2UgdGhlIG1haW4gdGVzdCBwcm9jZXNzCi0gICAgICAvLyB0
byByZXBvcnQgdGhhdCB0aGUgZGVhdGggdGVzdCBoYXMgZmFpbGVkLgotICAgICAgaWYgKFByZW1h
dHVyZUV4aXRGaWxlRXhpc3RzKCkpIHsKLSAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSAgICB9
LCAiIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIHByZW1hdHVyZS1leGl0IGZpbGUgZXhpc3Rz
IGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIGEKLS8vIG5vcm1hbCAobm9uLWRlYXRoKSB0ZXN0Lgot
VEVTVF9GKFByZW1hdHVyZUV4aXRUZXN0LCBQcmVtYXR1cmVFeGl0RmlsZUV4aXN0c0R1cmluZ1Rl
c3RFeGVjdXRpb24pIHsKLSAgaWYgKCpwcmVtYXR1cmVfZXhpdF9maWxlX3BhdGhfID09ICdcMCcp
IHsKLSAgICByZXR1cm47Ci0gIH0KLQotICBFWFBFQ1RfVFJVRShQcmVtYXR1cmVFeGl0RmlsZUV4
aXN0cygpKQotICAgICAgPDwgIiBmaWxlICIgPDwgcHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXwot
ICAgICAgPDwgIiBzaG91bGQgZXhpc3QgZHVyaW5nIHRlc3QgZXhlY3V0aW9uLCBidXQgZG9lc24n
dC4iOwotfQotCi19ICAvLyBuYW1lc3BhY2UKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiph
cmd2KSB7Ci0gIEluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKLSAgY29uc3QgaW50IGV4aXRf
Y29kZSA9IFJVTl9BTExfVEVTVFMoKTsKLQotICAvLyBUZXN0IHRoYXQgdGhlIHByZW1hdHVyZS1l
eGl0IGZpbGUgaXMgZGVsZXRlZCB1cG9uIHJldHVybiBmcm9tCi0gIC8vIFJVTl9BTExfVEVTVFMo
KS4KLSAgY29uc3QgY2hhciogY29uc3QgZmlsZXBhdGggPSBHZXRFbnYoIlRFU1RfUFJFTUFUVVJF
X0VYSVRfRklMRSIpOwotICBpZiAoZmlsZXBhdGggIT0gTlVMTCAmJiAqZmlsZXBhdGggIT0gJ1ww
JykgewotICAgIGlmIChQcmVtYXR1cmVFeGl0VGVzdDo6RmlsZUV4aXN0cyhmaWxlcGF0aCkpIHsK
LSAgICAgIHByaW50ZigKLSAgICAgICAgICAiRmlsZSAlcyBzaG91bGRuJ3QgZXhpc3QgYWZ0ZXIg
dGhlIHRlc3QgcHJvZ3JhbSBmaW5pc2hlcywgYnV0IGRvZXMuIiwKLSAgICAgICAgICBmaWxlcGF0
aCk7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gZXhpdF9jb2RlOwot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9wcm9k
X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3Byb2RfdGVz
dC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYwYWJjZTE4NzI0NGNmYzQ4YjNj
ZDVhNmNiODFiM2Y5ZWI5YWQ4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3Byb2RfdGVz
dC5jYworKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA2LCBH
b29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tICha
aGFueW9uZyBXYW4pCi0vLwotLy8gVW5pdCB0ZXN0IGZvciBpbmNsdWRlL2d0ZXN0L2d0ZXN0X3By
b2QuaC4KLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAidGVzdC9wcm9kdWN0
aW9uLmgiCi0KLS8vIFRlc3RzIHRoYXQgcHJpdmF0ZSBtZW1iZXJzIGNhbiBiZSBhY2Nlc3NlZCBm
cm9tIGEgVEVTVCBkZWNsYXJlZCBhcwotLy8gYSBmcmllbmQgb2YgdGhlIGNsYXNzLgotVEVTVChQ
cml2YXRlQ29kZVRlc3QsIENhbkFjY2Vzc1ByaXZhdGVNZW1iZXJzKSB7Ci0gIFByaXZhdGVDb2Rl
IGE7Ci0gIEVYUEVDVF9FUSgwLCBhLnhfKTsKLQotICBhLnNldF94KDEpOwotICBFWFBFQ1RfRVEo
MSwgYS54Xyk7Ci19Ci0KLXR5cGVkZWYgdGVzdGluZzo6VGVzdCBQcml2YXRlQ29kZUZpeHR1cmVU
ZXN0OwotCi0vLyBUZXN0cyB0aGF0IHByaXZhdGUgbWVtYmVycyBjYW4gYmUgYWNjZXNzZWQgZnJv
bSBhIFRFU1RfRiBkZWNsYXJlZAotLy8gYXMgYSBmcmllbmQgb2YgdGhlIGNsYXNzLgotVEVTVF9G
KFByaXZhdGVDb2RlRml4dHVyZVRlc3QsIENhbkFjY2Vzc1ByaXZhdGVNZW1iZXJzKSB7Ci0gIFBy
aXZhdGVDb2RlIGE7Ci0gIEVYUEVDVF9FUSgwLCBhLnhfKTsKLQotICBhLnNldF94KDIpOwotICBF
WFBFQ1RfRVEoMiwgYS54Xyk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC90ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRl
c3QvdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjllNjVlNGMxYmQ2NjIzMGE4ZGEwZjRhMGZlNWJmYmMyYzJkZjI4Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC90ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMjM2ICsw
LDAgQEAKLS8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0v
LyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8v
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0v
LyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0KLS8vIFRlc3RzIHRoZSAt
LWd0ZXN0X3JlcGVhdD1udW1iZXIgZmxhZy4KLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1
ZGUgPGlvc3RyZWFtPgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAic3JjL2d0
ZXN0LWludGVybmFsLWlubC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLUdURVNUX0RFQ0xB
UkVfc3RyaW5nXyhkZWF0aF90ZXN0X3N0eWxlKTsKLUdURVNUX0RFQ0xBUkVfc3RyaW5nXyhmaWx0
ZXIpOwotR1RFU1RfREVDTEFSRV9pbnQzMl8ocmVwZWF0KTsKLQotfSAgLy8gbmFtZXNwYWNlIHRl
c3RpbmcKLQotdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKTsKLXVz
aW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoZmlsdGVyKTsKLXVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZM
QUcocmVwZWF0KTsKLQotbmFtZXNwYWNlIHsKLQotLy8gV2UgbmVlZCB0aGlzIHdoZW4gd2UgYXJl
IHRlc3RpbmcgR29vZ2xlIFRlc3QgaXRzZWxmIGFuZCB0aGVyZWZvcmUKLS8vIGNhbm5vdCB1c2Ug
R29vZ2xlIFRlc3QgYXNzZXJ0aW9ucy4KLSNkZWZpbmUgR1RFU1RfQ0hFQ0tfSU5UX0VRXyhleHBl
Y3RlZCwgYWN0dWFsKSBcCi0gIGRvIHtcCi0gICAgY29uc3QgaW50IGV4cGVjdGVkX3ZhbCA9IChl
eHBlY3RlZCk7XAotICAgIGNvbnN0IGludCBhY3R1YWxfdmFsID0gKGFjdHVhbCk7XAotICAgIGlm
ICg6OnRlc3Rpbmc6OmludGVybmFsOjpJc1RydWUoZXhwZWN0ZWRfdmFsICE9IGFjdHVhbF92YWwp
KSB7XAotICAgICAgOjpzdGQ6OmNvdXQgPDwgIlZhbHVlIG9mOiAiICNhY3R1YWwgIlxuIlwKLSAg
ICAgICAgICAgICAgICAgIDw8ICIgIEFjdHVhbDogIiA8PCBhY3R1YWxfdmFsIDw8ICJcbiJcCi0g
ICAgICAgICAgICAgICAgICA8PCAiRXhwZWN0ZWQ6ICIgI2V4cGVjdGVkICJcbiJcCi0gICAgICAg
ICAgICAgICAgICA8PCAiV2hpY2ggaXM6ICIgPDwgZXhwZWN0ZWRfdmFsIDw8ICJcbiI7XAotICAg
ICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6cG9zaXg6OkFib3J0KCk7XAotICAgIH1cCi0gIH0gd2hp
bGUgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNlKCkpCi0KLQotLy8gVXNlZCBmb3Ig
dmVyaWZ5aW5nIHRoYXQgZ2xvYmFsIGVudmlyb25tZW50IHNldC11cCBhbmQgdGVhci1kb3duIGFy
ZQotLy8gaW5zaWRlIHRoZSBndGVzdF9yZXBlYXQgbG9vcC4KLQotaW50IGdfZW52aXJvbm1lbnRf
c2V0X3VwX2NvdW50ID0gMDsKLWludCBnX2Vudmlyb25tZW50X3RlYXJfZG93bl9jb3VudCA9IDA7
Ci0KLWNsYXNzIE15RW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewot
IHB1YmxpYzoKLSAgTXlFbnZpcm9ubWVudCgpIHt9Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsg
Z19lbnZpcm9ubWVudF9zZXRfdXBfY291bnQrKzsgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7IGdfZW52aXJvbm1lbnRfdGVhcl9kb3duX2NvdW50Kys7IH0KLX07Ci0KLS8vIEEgdGVzdCB0
aGF0IHNob3VsZCBmYWlsLgotCi1pbnQgZ19zaG91bGRfZmFpbF9jb3VudCA9IDA7Ci0KLVRFU1Qo
Rm9vVGVzdCwgU2hvdWxkRmFpbCkgewotICBnX3Nob3VsZF9mYWlsX2NvdW50Kys7Ci0gIEVYUEVD
VF9FUSgwLCAxKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOwotfQotCi0vLyBBIHRlc3QgdGhhdCBz
aG91bGQgcGFzcy4KLQotaW50IGdfc2hvdWxkX3Bhc3NfY291bnQgPSAwOwotCi1URVNUKEZvb1Rl
c3QsIFNob3VsZFBhc3MpIHsKLSAgZ19zaG91bGRfcGFzc19jb3VudCsrOwotfQotCi0vLyBBIHRl
c3QgdGhhdCBjb250YWlucyBhIHRocmVhZC1zYWZlIGRlYXRoIHRlc3QgYW5kIGEgZmFzdCBkZWF0
aAotLy8gdGVzdC4gIEl0IHNob3VsZCBwYXNzLgotCi1pbnQgZ19kZWF0aF90ZXN0X2NvdW50ID0g
MDsKLQotVEVTVChCYXJEZWF0aFRlc3QsIFRocmVhZFNhZmVBbmRGYXN0KSB7Ci0gIGdfZGVhdGhf
dGVzdF9jb3VudCsrOwotCi0gIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPSAidGhyZWFk
c2FmZSI7Ci0gIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoOjp0ZXN0aW5nOjppbnRlcm5hbDo6
cG9zaXg6OkFib3J0KCksICIiKTsKLQotICBHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID0g
ImZhc3QiOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKDo6dGVzdGluZzo6aW50ZXJuYWw6
OnBvc2l4OjpBYm9ydCgpLCAiIik7Ci19Ci0KLWludCBnX3BhcmFtX3Rlc3RfY291bnQgPSAwOwot
Ci1jb25zdCBpbnQga051bWJlck9mUGFyYW1UZXN0cyA9IDEwOwotCi1jbGFzcyBNeVBhcmFtVGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307Ci0KLVRFU1RfUChNeVBh
cmFtVGVzdCwgU2hvdWxkUGFzcykgewotICAvLyBUT0RPKHZsYWRsQGdvb2dsZS5jb20pOiBNYWtl
IHBhcmFtZXRlciB2YWx1ZSBjaGVja2luZyByb2J1c3QKLSAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgV1JUIG9yZGVyIG9mIHRlc3RzLgotICBHVEVTVF9DSEVDS19JTlRfRVFfKGdfcGFyYW1f
dGVzdF9jb3VudCAlIGtOdW1iZXJPZlBhcmFtVGVzdHMsIEdldFBhcmFtKCkpOwotICBnX3BhcmFt
X3Rlc3RfY291bnQrKzsKLX0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE15UGFyYW1TZXF1ZW5j
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIE15UGFyYW1UZXN0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdGluZzo6UmFuZ2UoMCwga051bWJlck9mUGFyYW1UZXN0cykpOwotCi0vLyBS
ZXNldHMgdGhlIGNvdW50IGZvciBlYWNoIHRlc3QuCi12b2lkIFJlc2V0Q291bnRzKCkgewotICBn
X2Vudmlyb25tZW50X3NldF91cF9jb3VudCA9IDA7Ci0gIGdfZW52aXJvbm1lbnRfdGVhcl9kb3du
X2NvdW50ID0gMDsKLSAgZ19zaG91bGRfZmFpbF9jb3VudCA9IDA7Ci0gIGdfc2hvdWxkX3Bhc3Nf
Y291bnQgPSAwOwotICBnX2RlYXRoX3Rlc3RfY291bnQgPSAwOwotICBnX3BhcmFtX3Rlc3RfY291
bnQgPSAwOwotfQotCi0vLyBDaGVja3MgdGhhdCB0aGUgY291bnQgZm9yIGVhY2ggdGVzdCBpcyBl
eHBlY3RlZC4KLXZvaWQgQ2hlY2tDb3VudHMoaW50IGV4cGVjdGVkKSB7Ci0gIEdURVNUX0NIRUNL
X0lOVF9FUV8oZXhwZWN0ZWQsIGdfZW52aXJvbm1lbnRfc2V0X3VwX2NvdW50KTsKLSAgR1RFU1Rf
Q0hFQ0tfSU5UX0VRXyhleHBlY3RlZCwgZ19lbnZpcm9ubWVudF90ZWFyX2Rvd25fY291bnQpOwot
ICBHVEVTVF9DSEVDS19JTlRfRVFfKGV4cGVjdGVkLCBnX3Nob3VsZF9mYWlsX2NvdW50KTsKLSAg
R1RFU1RfQ0hFQ0tfSU5UX0VRXyhleHBlY3RlZCwgZ19zaG91bGRfcGFzc19jb3VudCk7Ci0gIEdU
RVNUX0NIRUNLX0lOVF9FUV8oZXhwZWN0ZWQsIGdfZGVhdGhfdGVzdF9jb3VudCk7Ci0gIEdURVNU
X0NIRUNLX0lOVF9FUV8oZXhwZWN0ZWQgKiBrTnVtYmVyT2ZQYXJhbVRlc3RzLCBnX3BhcmFtX3Rl
c3RfY291bnQpOwotfQotCi0vLyBUZXN0cyB0aGUgYmVoYXZpb3Igb2YgR29vZ2xlIFRlc3Qgd2hl
biAtLWd0ZXN0X3JlcGVhdCBpcyBub3Qgc3BlY2lmaWVkLgotdm9pZCBUZXN0UmVwZWF0VW5zcGVj
aWZpZWQoKSB7Ci0gIFJlc2V0Q291bnRzKCk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8oMSwgUlVO
X0FMTF9URVNUUygpKTsKLSAgQ2hlY2tDb3VudHMoMSk7Ci19Ci0KLS8vIFRlc3RzIHRoZSBiZWhh
dmlvciBvZiBHb29nbGUgVGVzdCB3aGVuIC0tZ3Rlc3RfcmVwZWF0IGhhcyB0aGUgZ2l2ZW4gdmFs
dWUuCi12b2lkIFRlc3RSZXBlYXQoaW50IHJlcGVhdCkgewotICBHVEVTVF9GTEFHKHJlcGVhdCkg
PSByZXBlYXQ7Ci0KLSAgUmVzZXRDb3VudHMoKTsKLSAgR1RFU1RfQ0hFQ0tfSU5UX0VRXyhyZXBl
YXQgPiAwID8gMSA6IDAsIFJVTl9BTExfVEVTVFMoKSk7Ci0gIENoZWNrQ291bnRzKHJlcGVhdCk7
Ci19Ci0KLS8vIFRlc3RzIHVzaW5nIC0tZ3Rlc3RfcmVwZWF0IHdoZW4gLS1ndGVzdF9maWx0ZXIg
c3BlY2lmaWVzIGFuIGVtcHR5Ci0vLyBzZXQgb2YgdGVzdHMuCi12b2lkIFRlc3RSZXBlYXRXaXRo
RW1wdHlGaWx0ZXIoaW50IHJlcGVhdCkgewotICBHVEVTVF9GTEFHKHJlcGVhdCkgPSByZXBlYXQ7
Ci0gIEdURVNUX0ZMQUcoZmlsdGVyKSA9ICJOb25lIjsKLQotICBSZXNldENvdW50cygpOwotICBH
VEVTVF9DSEVDS19JTlRfRVFfKDAsIFJVTl9BTExfVEVTVFMoKSk7Ci0gIENoZWNrQ291bnRzKDAp
OwotfQotCi0vLyBUZXN0cyB1c2luZyAtLWd0ZXN0X3JlcGVhdCB3aGVuIC0tZ3Rlc3RfZmlsdGVy
IHNwZWNpZmllcyBhIHNldCBvZgotLy8gc3VjY2Vzc2Z1bCB0ZXN0cy4KLXZvaWQgVGVzdFJlcGVh
dFdpdGhGaWx0ZXJGb3JTdWNjZXNzZnVsVGVzdHMoaW50IHJlcGVhdCkgewotICBHVEVTVF9GTEFH
KHJlcGVhdCkgPSByZXBlYXQ7Ci0gIEdURVNUX0ZMQUcoZmlsdGVyKSA9ICIqLSpTaG91bGRGYWls
IjsKLQotICBSZXNldENvdW50cygpOwotICBHVEVTVF9DSEVDS19JTlRfRVFfKDAsIFJVTl9BTExf
VEVTVFMoKSk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8ocmVwZWF0LCBnX2Vudmlyb25tZW50X3Nl
dF91cF9jb3VudCk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8ocmVwZWF0LCBnX2Vudmlyb25tZW50
X3RlYXJfZG93bl9jb3VudCk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8oMCwgZ19zaG91bGRfZmFp
bF9jb3VudCk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8ocmVwZWF0LCBnX3Nob3VsZF9wYXNzX2Nv
dW50KTsKLSAgR1RFU1RfQ0hFQ0tfSU5UX0VRXyhyZXBlYXQsIGdfZGVhdGhfdGVzdF9jb3VudCk7
Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8ocmVwZWF0ICoga051bWJlck9mUGFyYW1UZXN0cywgZ19w
YXJhbV90ZXN0X2NvdW50KTsKLX0KLQotLy8gVGVzdHMgdXNpbmcgLS1ndGVzdF9yZXBlYXQgd2hl
biAtLWd0ZXN0X2ZpbHRlciBzcGVjaWZpZXMgYSBzZXQgb2YKLS8vIGZhaWxlZCB0ZXN0cy4KLXZv
aWQgVGVzdFJlcGVhdFdpdGhGaWx0ZXJGb3JGYWlsZWRUZXN0cyhpbnQgcmVwZWF0KSB7Ci0gIEdU
RVNUX0ZMQUcocmVwZWF0KSA9IHJlcGVhdDsKLSAgR1RFU1RfRkxBRyhmaWx0ZXIpID0gIipTaG91
bGRGYWlsIjsKLQotICBSZXNldENvdW50cygpOwotICBHVEVTVF9DSEVDS19JTlRfRVFfKDEsIFJV
Tl9BTExfVEVTVFMoKSk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8ocmVwZWF0LCBnX2Vudmlyb25t
ZW50X3NldF91cF9jb3VudCk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8ocmVwZWF0LCBnX2Vudmly
b25tZW50X3RlYXJfZG93bl9jb3VudCk7Ci0gIEdURVNUX0NIRUNLX0lOVF9FUV8ocmVwZWF0LCBn
X3Nob3VsZF9mYWlsX2NvdW50KTsKLSAgR1RFU1RfQ0hFQ0tfSU5UX0VRXygwLCBnX3Nob3VsZF9w
YXNzX2NvdW50KTsKLSAgR1RFU1RfQ0hFQ0tfSU5UX0VRXygwLCBnX2RlYXRoX3Rlc3RfY291bnQp
OwotICBHVEVTVF9DSEVDS19JTlRfRVFfKDAsIGdfcGFyYW1fdGVzdF9jb3VudCk7Ci19Ci0KLX0g
IC8vIG5hbWVzcGFjZQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgdGVz
dGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotCi0gIHRlc3Rpbmc6OkFkZEdsb2Jh
bFRlc3RFbnZpcm9ubWVudChuZXcgTXlFbnZpcm9ubWVudCk7Ci0KLSAgVGVzdFJlcGVhdFVuc3Bl
Y2lmaWVkKCk7Ci0gIFRlc3RSZXBlYXQoMCk7Ci0gIFRlc3RSZXBlYXQoMSk7Ci0gIFRlc3RSZXBl
YXQoNSk7Ci0KLSAgVGVzdFJlcGVhdFdpdGhFbXB0eUZpbHRlcigyKTsKLSAgVGVzdFJlcGVhdFdp
dGhFbXB0eUZpbHRlcigzKTsKLQotICBUZXN0UmVwZWF0V2l0aEZpbHRlckZvclN1Y2Nlc3NmdWxU
ZXN0cygzKTsKLQotICBUZXN0UmVwZWF0V2l0aEZpbHRlckZvckZhaWxlZFRlc3RzKDQpOwotCi0g
IC8vIEl0IHdvdWxkIGJlIG5pY2UgdG8gdmVyaWZ5IHRoYXQgdGhlIHRlc3RzIGluZGVlZCBsb29w
IGZvcmV2ZXIKLSAgLy8gd2hlbiBHVEVTVF9GTEFHKHJlcGVhdCkgaXMgbmVnYXRpdmUsIGJ1dCB0
aGlzIHRlc3Qgd2lsbCBiZSBxdWl0ZQotICAvLyBjb21wbGljYXRlZCB0byB3cml0ZS4gIFNpbmNl
IHRoaXMgZmxhZyBpcyBmb3IgaW50ZXJhY3RpdmUKLSAgLy8gZGVidWdnaW5nIG9ubHkgYW5kIGRv
ZXNuJ3QgYWZmZWN0IHRoZSBub3JtYWwgdGVzdCByZXN1bHQsIHN1Y2ggYQotICAvLyB0ZXN0IHdv
dWxkIGJlIGFuIG92ZXJraWxsLgotCi0gIHByaW50ZigiUEFTU1xuIik7Ci0gIHJldHVybiAwOwot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9zaHVm
ZmxlX3Rlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3NodWZm
bGVfdGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzBkMDMwM2QxOTM1NTRh
NWZkMGI5YjFmNmE1MWVmN2QwOWYzMDYxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3No
dWZmbGVfdGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDMyNSArMCwwIEBACi0jIS91c3IvYmlu
L2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDkgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIlZlcmlmaWVzIHRoYXQgdGVzdCBzaHVm
Zmxpbmcgd29ya3MuIiIiCi0KLV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpoYW55b25n
IFdhbiknCi0KLWltcG9ydCBvcwotaW1wb3J0IGd0ZXN0X3Rlc3RfdXRpbHMKLQotIyBDb21tYW5k
IHRvIHJ1biB0aGUgZ3Rlc3Rfc2h1ZmZsZV90ZXN0XyBwcm9ncmFtLgotQ09NTUFORCA9IGd0ZXN0
X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKCdndGVzdF9zaHVmZmxlX3Rlc3RfJykK
LQotIyBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0ZXN0IHNoYXJkaW5nLgotVE9UQUxf
U0hBUkRTX0VOVl9WQVIgPSAnR1RFU1RfVE9UQUxfU0hBUkRTJwotU0hBUkRfSU5ERVhfRU5WX1ZB
UiA9ICdHVEVTVF9TSEFSRF9JTkRFWCcKLQotVEVTVF9GSUxURVIgPSAnQSouQTpBKi5COkMqJwot
Ci1BTExfVEVTVFMgPSBbXQotQUNUSVZFX1RFU1RTID0gW10KLUZJTFRFUkVEX1RFU1RTID0gW10K
LVNIQVJERURfVEVTVFMgPSBbXQotCi1TSFVGRkxFRF9BTExfVEVTVFMgPSBbXQotU0hVRkZMRURf
QUNUSVZFX1RFU1RTID0gW10KLVNIVUZGTEVEX0ZJTFRFUkVEX1RFU1RTID0gW10KLVNIVUZGTEVE
X1NIQVJERURfVEVTVFMgPSBbXQotCi0KLWRlZiBBbHNvUnVuRGlzYWJsZWRUZXN0c0ZsYWcoKToK
LSAgcmV0dXJuICctLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzJwotCi0KLWRlZiBGaWx0
ZXJGbGFnKHRlc3RfZmlsdGVyKToKLSAgcmV0dXJuICctLWd0ZXN0X2ZpbHRlcj0lcycgJSAodGVz
dF9maWx0ZXIsKQotCi0KLWRlZiBSZXBlYXRGbGFnKG4pOgotICByZXR1cm4gJy0tZ3Rlc3RfcmVw
ZWF0PSVzJyAlIChuLCkKLQotCi1kZWYgU2h1ZmZsZUZsYWcoKToKLSAgcmV0dXJuICctLWd0ZXN0
X3NodWZmbGUnCi0KLQotZGVmIFJhbmRvbVNlZWRGbGFnKG4pOgotICByZXR1cm4gJy0tZ3Rlc3Rf
cmFuZG9tX3NlZWQ9JXMnICUgKG4sKQotCi0KLWRlZiBSdW5BbmRSZXR1cm5PdXRwdXQoZXh0cmFf
ZW52LCBhcmdzKToKLSAgIiIiUnVucyB0aGUgdGVzdCBwcm9ncmFtIGFuZCByZXR1cm5zIGl0cyBv
dXRwdXQuIiIiCi0KLSAgZW52aXJvbl9jb3B5ID0gb3MuZW52aXJvbi5jb3B5KCkKLSAgZW52aXJv
bl9jb3B5LnVwZGF0ZShleHRyYV9lbnYpCi0KLSAgcmV0dXJuIGd0ZXN0X3Rlc3RfdXRpbHMuU3Vi
cHJvY2VzcyhbQ09NTUFORF0gKyBhcmdzLCBlbnY9ZW52aXJvbl9jb3B5KS5vdXRwdXQKLQotCi1k
ZWYgR2V0VGVzdHNGb3JBbGxJdGVyYXRpb25zKGV4dHJhX2VudiwgYXJncyk6Ci0gICIiIlJ1bnMg
dGhlIHRlc3QgcHJvZ3JhbSBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgdGVzdCBsaXN0cy4KLQotICBB
cmdzOgotICAgIGV4dHJhX2VudjogYSBtYXAgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8g
dGhlaXIgdmFsdWVzCi0gICAgYXJnczogY29tbWFuZCBsaW5lIGZsYWdzIHRvIHBhc3MgdG8gZ3Rl
c3Rfc2h1ZmZsZV90ZXN0XwotCi0gIFJldHVybnM6Ci0gICAgQSBsaXN0IHdoZXJlIHRoZSBpLXRo
IGVsZW1lbnQgaXMgdGhlIGxpc3Qgb2YgdGVzdHMgcnVuIGluIHRoZSBpLXRoCi0gICAgdGVzdCBp
dGVyYXRpb24uCi0gICIiIgotCi0gIHRlc3RfaXRlcmF0aW9ucyA9IFtdCi0gIGZvciBsaW5lIGlu
IFJ1bkFuZFJldHVybk91dHB1dChleHRyYV9lbnYsIGFyZ3MpLnNwbGl0KCdcbicpOgotICAgIGlm
IGxpbmUuc3RhcnRzd2l0aCgnLS0tLScpOgotICAgICAgdGVzdHMgPSBbXQotICAgICAgdGVzdF9p
dGVyYXRpb25zLmFwcGVuZCh0ZXN0cykKLSAgICBlbGlmIGxpbmUuc3RyaXAoKToKLSAgICAgIHRl
c3RzLmFwcGVuZChsaW5lLnN0cmlwKCkpICAjICdUZXN0Q2FzZU5hbWUuVGVzdE5hbWUnCi0KLSAg
cmV0dXJuIHRlc3RfaXRlcmF0aW9ucwotCi0KLWRlZiBHZXRUZXN0Q2FzZXModGVzdHMpOgotICAi
IiJSZXR1cm5zIGEgbGlzdCBvZiB0ZXN0IGNhc2VzIGluIHRoZSBnaXZlbiBmdWxsIHRlc3QgbmFt
ZXMuCi0KLSAgQXJnczoKLSAgICB0ZXN0czogYSBsaXN0IG9mIGZ1bGwgdGVzdCBuYW1lcwotCi0g
IFJldHVybnM6Ci0gICAgQSBsaXN0IG9mIHRlc3QgY2FzZXMgZnJvbSAndGVzdHMnLCBpbiB0aGVp
ciBvcmlnaW5hbCBvcmRlci4KLSAgICBDb25zZWN1dGl2ZSBkdXBsaWNhdGVzIGFyZSByZW1vdmVk
LgotICAiIiIKLQotICB0ZXN0X2Nhc2VzID0gW10KLSAgZm9yIHRlc3QgaW4gdGVzdHM6Ci0gICAg
dGVzdF9jYXNlID0gdGVzdC5zcGxpdCgnLicpWzBdCi0gICAgaWYgbm90IHRlc3RfY2FzZSBpbiB0
ZXN0X2Nhc2VzOgotICAgICAgdGVzdF9jYXNlcy5hcHBlbmQodGVzdF9jYXNlKQotCi0gIHJldHVy
biB0ZXN0X2Nhc2VzCi0KLQotZGVmIENhbGN1bGF0ZVRlc3RMaXN0cygpOgotICAiIiJDYWxjdWxh
dGVzIHRoZSBsaXN0IG9mIHRlc3RzIHJ1biB1bmRlciBkaWZmZXJlbnQgZmxhZ3MuIiIiCi0KLSAg
aWYgbm90IEFMTF9URVNUUzoKLSAgICBBTExfVEVTVFMuZXh0ZW5kKAotICAgICAgICBHZXRUZXN0
c0ZvckFsbEl0ZXJhdGlvbnMoe30sIFtBbHNvUnVuRGlzYWJsZWRUZXN0c0ZsYWcoKV0pWzBdKQot
Ci0gIGlmIG5vdCBBQ1RJVkVfVEVTVFM6Ci0gICAgQUNUSVZFX1RFU1RTLmV4dGVuZChHZXRUZXN0
c0ZvckFsbEl0ZXJhdGlvbnMoe30sIFtdKVswXSkKLQotICBpZiBub3QgRklMVEVSRURfVEVTVFM6
Ci0gICAgRklMVEVSRURfVEVTVFMuZXh0ZW5kKAotICAgICAgICBHZXRUZXN0c0ZvckFsbEl0ZXJh
dGlvbnMoe30sIFtGaWx0ZXJGbGFnKFRFU1RfRklMVEVSKV0pWzBdKQotCi0gIGlmIG5vdCBTSEFS
REVEX1RFU1RTOgotICAgIFNIQVJERURfVEVTVFMuZXh0ZW5kKAotICAgICAgICBHZXRUZXN0c0Zv
ckFsbEl0ZXJhdGlvbnMoe1RPVEFMX1NIQVJEU19FTlZfVkFSOiAnMycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU0hBUkRfSU5ERVhfRU5WX1ZBUjogJzEnfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtdKVswXSkKLQotICBpZiBub3QgU0hVRkZMRURfQUxM
X1RFU1RTOgotICAgIFNIVUZGTEVEX0FMTF9URVNUUy5leHRlbmQoR2V0VGVzdHNGb3JBbGxJdGVy
YXRpb25zKAotICAgICAgICB7fSwgW0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZygpLCBTaHVmZmxl
RmxhZygpLCBSYW5kb21TZWVkRmxhZygxKV0pWzBdKQotCi0gIGlmIG5vdCBTSFVGRkxFRF9BQ1RJ
VkVfVEVTVFM6Ci0gICAgU0hVRkZMRURfQUNUSVZFX1RFU1RTLmV4dGVuZChHZXRUZXN0c0ZvckFs
bEl0ZXJhdGlvbnMoCi0gICAgICAgIHt9LCBbU2h1ZmZsZUZsYWcoKSwgUmFuZG9tU2VlZEZsYWco
MSldKVswXSkKLQotICBpZiBub3QgU0hVRkZMRURfRklMVEVSRURfVEVTVFM6Ci0gICAgU0hVRkZM
RURfRklMVEVSRURfVEVTVFMuZXh0ZW5kKEdldFRlc3RzRm9yQWxsSXRlcmF0aW9ucygKLSAgICAg
ICAge30sIFtTaHVmZmxlRmxhZygpLCBSYW5kb21TZWVkRmxhZygxKSwgRmlsdGVyRmxhZyhURVNU
X0ZJTFRFUildKVswXSkKLQotICBpZiBub3QgU0hVRkZMRURfU0hBUkRFRF9URVNUUzoKLSAgICBT
SFVGRkxFRF9TSEFSREVEX1RFU1RTLmV4dGVuZCgKLSAgICAgICAgR2V0VGVzdHNGb3JBbGxJdGVy
YXRpb25zKHtUT1RBTF9TSEFSRFNfRU5WX1ZBUjogJzMnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNIQVJEX0lOREVYX0VOVl9WQVI6ICcxJ30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbU2h1ZmZsZUZsYWcoKSwgUmFuZG9tU2VlZEZsYWcoMSldKVswXSkK
LQotCi1jbGFzcyBHVGVzdFNodWZmbGVVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNl
KToKLSAgIiIiVGVzdHMgdGVzdCBzaHVmZmxpbmcuIiIiCi0KLSAgZGVmIHNldFVwKHNlbGYpOgot
ICAgIENhbGN1bGF0ZVRlc3RMaXN0cygpCi0KLSAgZGVmIHRlc3RTaHVmZmxlUHJlc2VydmVzTnVt
YmVyT2ZUZXN0cyhzZWxmKToKLSAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihBTExfVEVTVFMpLCBs
ZW4oU0hVRkZMRURfQUxMX1RFU1RTKSkKLSAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihBQ1RJVkVf
VEVTVFMpLCBsZW4oU0hVRkZMRURfQUNUSVZFX1RFU1RTKSkKLSAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihGSUxURVJFRF9URVNUUyksIGxlbihTSFVGRkxFRF9GSUxURVJFRF9URVNUUykpCi0gICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oU0hBUkRFRF9URVNUUyksIGxlbihTSFVGRkxFRF9TSEFSREVE
X1RFU1RTKSkKLQotICBkZWYgdGVzdFNodWZmbGVDaGFuZ2VzVGVzdE9yZGVyKHNlbGYpOgotICAg
IHNlbGYuYXNzZXJ0XyhTSFVGRkxFRF9BTExfVEVTVFMgIT0gQUxMX1RFU1RTLCBTSFVGRkxFRF9B
TExfVEVTVFMpCi0gICAgc2VsZi5hc3NlcnRfKFNIVUZGTEVEX0FDVElWRV9URVNUUyAhPSBBQ1RJ
VkVfVEVTVFMsIFNIVUZGTEVEX0FDVElWRV9URVNUUykKLSAgICBzZWxmLmFzc2VydF8oU0hVRkZM
RURfRklMVEVSRURfVEVTVFMgIT0gRklMVEVSRURfVEVTVFMsCi0gICAgICAgICAgICAgICAgIFNI
VUZGTEVEX0ZJTFRFUkVEX1RFU1RTKQotICAgIHNlbGYuYXNzZXJ0XyhTSFVGRkxFRF9TSEFSREVE
X1RFU1RTICE9IFNIQVJERURfVEVTVFMsCi0gICAgICAgICAgICAgICAgIFNIVUZGTEVEX1NIQVJE
RURfVEVTVFMpCi0KLSAgZGVmIHRlc3RTaHVmZmxlQ2hhbmdlc1Rlc3RDYXNlT3JkZXIoc2VsZik6
Ci0gICAgc2VsZi5hc3NlcnRfKEdldFRlc3RDYXNlcyhTSFVGRkxFRF9BTExfVEVTVFMpICE9IEdl
dFRlc3RDYXNlcyhBTExfVEVTVFMpLAotICAgICAgICAgICAgICAgICBHZXRUZXN0Q2FzZXMoU0hV
RkZMRURfQUxMX1RFU1RTKSkKLSAgICBzZWxmLmFzc2VydF8oCi0gICAgICAgIEdldFRlc3RDYXNl
cyhTSFVGRkxFRF9BQ1RJVkVfVEVTVFMpICE9IEdldFRlc3RDYXNlcyhBQ1RJVkVfVEVTVFMpLAot
ICAgICAgICBHZXRUZXN0Q2FzZXMoU0hVRkZMRURfQUNUSVZFX1RFU1RTKSkKLSAgICBzZWxmLmFz
c2VydF8oCi0gICAgICAgIEdldFRlc3RDYXNlcyhTSFVGRkxFRF9GSUxURVJFRF9URVNUUykgIT0g
R2V0VGVzdENhc2VzKEZJTFRFUkVEX1RFU1RTKSwKLSAgICAgICAgR2V0VGVzdENhc2VzKFNIVUZG
TEVEX0ZJTFRFUkVEX1RFU1RTKSkKLSAgICBzZWxmLmFzc2VydF8oCi0gICAgICAgIEdldFRlc3RD
YXNlcyhTSFVGRkxFRF9TSEFSREVEX1RFU1RTKSAhPSBHZXRUZXN0Q2FzZXMoU0hBUkRFRF9URVNU
UyksCi0gICAgICAgIEdldFRlc3RDYXNlcyhTSFVGRkxFRF9TSEFSREVEX1RFU1RTKSkKLQotICBk
ZWYgdGVzdFNodWZmbGVEb2VzTm90UmVwZWF0VGVzdChzZWxmKToKLSAgICBmb3IgdGVzdCBpbiBT
SFVGRkxFRF9BTExfVEVTVFM6Ci0gICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIFNIVUZGTEVEX0FM
TF9URVNUUy5jb3VudCh0ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgJyVzIGFwcGVhcnMg
bW9yZSB0aGFuIG9uY2UnICUgKHRlc3QsKSkKLSAgICBmb3IgdGVzdCBpbiBTSFVGRkxFRF9BQ1RJ
VkVfVEVTVFM6Ci0gICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIFNIVUZGTEVEX0FDVElWRV9URVNU
Uy5jb3VudCh0ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgJyVzIGFwcGVhcnMgbW9yZSB0
aGFuIG9uY2UnICUgKHRlc3QsKSkKLSAgICBmb3IgdGVzdCBpbiBTSFVGRkxFRF9GSUxURVJFRF9U
RVNUUzoKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgU0hVRkZMRURfRklMVEVSRURfVEVTVFMu
Y291bnQodGVzdCksCi0gICAgICAgICAgICAgICAgICAgICAgICclcyBhcHBlYXJzIG1vcmUgdGhh
biBvbmNlJyAlICh0ZXN0LCkpCi0gICAgZm9yIHRlc3QgaW4gU0hVRkZMRURfU0hBUkRFRF9URVNU
UzoKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgU0hVRkZMRURfU0hBUkRFRF9URVNUUy5jb3Vu
dCh0ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgJyVzIGFwcGVhcnMgbW9yZSB0aGFuIG9u
Y2UnICUgKHRlc3QsKSkKLQotICBkZWYgdGVzdFNodWZmbGVEb2VzTm90Q3JlYXRlTmV3VGVzdChz
ZWxmKToKLSAgICBmb3IgdGVzdCBpbiBTSFVGRkxFRF9BTExfVEVTVFM6Ci0gICAgICBzZWxmLmFz
c2VydF8odGVzdCBpbiBBTExfVEVTVFMsICclcyBpcyBhbiBpbnZhbGlkIHRlc3QnICUgKHRlc3Qs
KSkKLSAgICBmb3IgdGVzdCBpbiBTSFVGRkxFRF9BQ1RJVkVfVEVTVFM6Ci0gICAgICBzZWxmLmFz
c2VydF8odGVzdCBpbiBBQ1RJVkVfVEVTVFMsICclcyBpcyBhbiBpbnZhbGlkIHRlc3QnICUgKHRl
c3QsKSkKLSAgICBmb3IgdGVzdCBpbiBTSFVGRkxFRF9GSUxURVJFRF9URVNUUzoKLSAgICAgIHNl
bGYuYXNzZXJ0Xyh0ZXN0IGluIEZJTFRFUkVEX1RFU1RTLCAnJXMgaXMgYW4gaW52YWxpZCB0ZXN0
JyAlICh0ZXN0LCkpCi0gICAgZm9yIHRlc3QgaW4gU0hVRkZMRURfU0hBUkRFRF9URVNUUzoKLSAg
ICAgIHNlbGYuYXNzZXJ0Xyh0ZXN0IGluIFNIQVJERURfVEVTVFMsICclcyBpcyBhbiBpbnZhbGlk
IHRlc3QnICUgKHRlc3QsKSkKLQotICBkZWYgdGVzdFNodWZmbGVJbmNsdWRlc0FsbFRlc3RzKHNl
bGYpOgotICAgIGZvciB0ZXN0IGluIEFMTF9URVNUUzoKLSAgICAgIHNlbGYuYXNzZXJ0Xyh0ZXN0
IGluIFNIVUZGTEVEX0FMTF9URVNUUywgJyVzIGlzIG1pc3NpbmcnICUgKHRlc3QsKSkKLSAgICBm
b3IgdGVzdCBpbiBBQ1RJVkVfVEVTVFM6Ci0gICAgICBzZWxmLmFzc2VydF8odGVzdCBpbiBTSFVG
RkxFRF9BQ1RJVkVfVEVTVFMsICclcyBpcyBtaXNzaW5nJyAlICh0ZXN0LCkpCi0gICAgZm9yIHRl
c3QgaW4gRklMVEVSRURfVEVTVFM6Ci0gICAgICBzZWxmLmFzc2VydF8odGVzdCBpbiBTSFVGRkxF
RF9GSUxURVJFRF9URVNUUywgJyVzIGlzIG1pc3NpbmcnICUgKHRlc3QsKSkKLSAgICBmb3IgdGVz
dCBpbiBTSEFSREVEX1RFU1RTOgotICAgICAgc2VsZi5hc3NlcnRfKHRlc3QgaW4gU0hVRkZMRURf
U0hBUkRFRF9URVNUUywgJyVzIGlzIG1pc3NpbmcnICUgKHRlc3QsKSkKLQotICBkZWYgdGVzdFNo
dWZmbGVMZWF2ZXNEZWF0aFRlc3RzQXRGcm9udChzZWxmKToKLSAgICBub25fZGVhdGhfdGVzdF9m
b3VuZCA9IEZhbHNlCi0gICAgZm9yIHRlc3QgaW4gU0hVRkZMRURfQUNUSVZFX1RFU1RTOgotICAg
ICAgaWYgJ0RlYXRoVGVzdC4nIGluIHRlc3Q6Ci0gICAgICAgIHNlbGYuYXNzZXJ0Xyhub3Qgbm9u
X2RlYXRoX3Rlc3RfZm91bmQsCi0gICAgICAgICAgICAgICAgICAgICAnJXMgYXBwZWFycyBhZnRl
ciBhIG5vbi1kZWF0aCB0ZXN0JyAlICh0ZXN0LCkpCi0gICAgICBlbHNlOgotICAgICAgICBub25f
ZGVhdGhfdGVzdF9mb3VuZCA9IFRydWUKLQotICBkZWYgX1ZlcmlmeVRlc3RDYXNlc0RvTm90SW50
ZXJsZWF2ZShzZWxmLCB0ZXN0cyk6Ci0gICAgdGVzdF9jYXNlcyA9IFtdCi0gICAgZm9yIHRlc3Qg
aW4gdGVzdHM6Ci0gICAgICBbdGVzdF9jYXNlLCBfXSA9IHRlc3Quc3BsaXQoJy4nKQotICAgICAg
aWYgdGVzdF9jYXNlcyBhbmQgdGVzdF9jYXNlc1stMV0gIT0gdGVzdF9jYXNlOgotICAgICAgICB0
ZXN0X2Nhc2VzLmFwcGVuZCh0ZXN0X2Nhc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
dGVzdF9jYXNlcy5jb3VudCh0ZXN0X2Nhc2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICdU
ZXN0IGNhc2UgJXMgaXMgbm90IGdyb3VwZWQgdG9nZXRoZXIgaW4gJXMnICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAodGVzdF9jYXNlLCB0ZXN0cykpCi0KLSAgZGVmIHRlc3RTaHVmZmxlRG9l
c05vdEludGVybGVhdmVUZXN0Q2FzZXMoc2VsZik6Ci0gICAgc2VsZi5fVmVyaWZ5VGVzdENhc2Vz
RG9Ob3RJbnRlcmxlYXZlKFNIVUZGTEVEX0FMTF9URVNUUykKLSAgICBzZWxmLl9WZXJpZnlUZXN0
Q2FzZXNEb05vdEludGVybGVhdmUoU0hVRkZMRURfQUNUSVZFX1RFU1RTKQotICAgIHNlbGYuX1Zl
cmlmeVRlc3RDYXNlc0RvTm90SW50ZXJsZWF2ZShTSFVGRkxFRF9GSUxURVJFRF9URVNUUykKLSAg
ICBzZWxmLl9WZXJpZnlUZXN0Q2FzZXNEb05vdEludGVybGVhdmUoU0hVRkZMRURfU0hBUkRFRF9U
RVNUUykKLQotICBkZWYgdGVzdFNodWZmbGVSZXN0b3Jlc09yZGVyQWZ0ZXJFYWNoSXRlcmF0aW9u
KHNlbGYpOgotICAgICMgR2V0IHRoZSB0ZXN0IGxpc3RzIGluIGFsbCAzIGl0ZXJhdGlvbnMsIHVz
aW5nIHJhbmRvbSBzZWVkIDEsIDIsCi0gICAgIyBhbmQgMyByZXNwZWN0aXZlbHkuICBHb29nbGUg
VGVzdCBwaWNrcyBhIGRpZmZlcmVudCBzZWVkIGluIGVhY2gKLSAgICAjIGl0ZXJhdGlvbiwgYW5k
IHRoaXMgdGVzdCBkZXBlbmRzIG9uIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uCi0gICAgIyBw
aWNraW5nIHN1Y2Nlc3NpdmUgbnVtYmVycy4gIFRoaXMgZGVwZW5kZW5jeSBpcyBub3QgaWRlYWws
IGJ1dAotICAgICMgbWFrZXMgdGhlIHRlc3QgbXVjaCBlYXNpZXIgdG8gd3JpdGUuCi0gICAgW3Rl
c3RzX2luX2l0ZXJhdGlvbjEsIHRlc3RzX2luX2l0ZXJhdGlvbjIsIHRlc3RzX2luX2l0ZXJhdGlv
bjNdID0gKAotICAgICAgICBHZXRUZXN0c0ZvckFsbEl0ZXJhdGlvbnMoCi0gICAgICAgICAgICB7
fSwgW1NodWZmbGVGbGFnKCksIFJhbmRvbVNlZWRGbGFnKDEpLCBSZXBlYXRGbGFnKDMpXSkpCi0K
LSAgICAjIE1ha2Ugc3VyZSBydW5uaW5nIHRoZSB0ZXN0cyB3aXRoIHJhbmRvbSBzZWVkIDEgZ2V0
cyB0aGUgc2FtZQotICAgICMgb3JkZXIgYXMgaW4gaXRlcmF0aW9uIDEgYWJvdmUuCi0gICAgW3Rl
c3RzX3dpdGhfc2VlZDFdID0gR2V0VGVzdHNGb3JBbGxJdGVyYXRpb25zKAotICAgICAgICB7fSwg
W1NodWZmbGVGbGFnKCksIFJhbmRvbVNlZWRGbGFnKDEpXSkKLSAgICBzZWxmLmFzc2VydEVxdWFs
KHRlc3RzX2luX2l0ZXJhdGlvbjEsIHRlc3RzX3dpdGhfc2VlZDEpCi0KLSAgICAjIE1ha2Ugc3Vy
ZSBydW5uaW5nIHRoZSB0ZXN0cyB3aXRoIHJhbmRvbSBzZWVkIDIgZ2V0cyB0aGUgc2FtZQotICAg
ICMgb3JkZXIgYXMgaW4gaXRlcmF0aW9uIDIgYWJvdmUuICBTdWNjZXNzIG1lYW5zIHRoYXQgR29v
Z2xlIFRlc3QKLSAgICAjIGNvcnJlY3RseSByZXN0b3JlcyB0aGUgdGVzdCBvcmRlciBiZWZvcmUg
cmUtc2h1ZmZsaW5nIGF0IHRoZQotICAgICMgYmVnaW5uaW5nIG9mIGl0ZXJhdGlvbiAyLgotICAg
IFt0ZXN0c193aXRoX3NlZWQyXSA9IEdldFRlc3RzRm9yQWxsSXRlcmF0aW9ucygKLSAgICAgICAg
e30sIFtTaHVmZmxlRmxhZygpLCBSYW5kb21TZWVkRmxhZygyKV0pCi0gICAgc2VsZi5hc3NlcnRF
cXVhbCh0ZXN0c19pbl9pdGVyYXRpb24yLCB0ZXN0c193aXRoX3NlZWQyKQotCi0gICAgIyBNYWtl
IHN1cmUgcnVubmluZyB0aGUgdGVzdHMgd2l0aCByYW5kb20gc2VlZCAzIGdldHMgdGhlIHNhbWUK
LSAgICAjIG9yZGVyIGFzIGluIGl0ZXJhdGlvbiAzIGFib3ZlLiAgU3VjY2VzcyBtZWFucyB0aGF0
IEdvb2dsZSBUZXN0Ci0gICAgIyBjb3JyZWN0bHkgcmVzdG9yZXMgdGhlIHRlc3Qgb3JkZXIgYmVm
b3JlIHJlLXNodWZmbGluZyBhdCB0aGUKLSAgICAjIGJlZ2lubmluZyBvZiBpdGVyYXRpb24gMy4K
LSAgICBbdGVzdHNfd2l0aF9zZWVkM10gPSBHZXRUZXN0c0ZvckFsbEl0ZXJhdGlvbnMoCi0gICAg
ICAgIHt9LCBbU2h1ZmZsZUZsYWcoKSwgUmFuZG9tU2VlZEZsYWcoMyldKQotICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGVzdHNfaW5faXRlcmF0aW9uMywgdGVzdHNfd2l0aF9zZWVkMykKLQotICBkZWYg
dGVzdFNodWZmbGVHZW5lcmF0ZXNOZXdPcmRlckluRWFjaEl0ZXJhdGlvbihzZWxmKToKLSAgICBb
dGVzdHNfaW5faXRlcmF0aW9uMSwgdGVzdHNfaW5faXRlcmF0aW9uMiwgdGVzdHNfaW5faXRlcmF0
aW9uM10gPSAoCi0gICAgICAgIEdldFRlc3RzRm9yQWxsSXRlcmF0aW9ucygKLSAgICAgICAgICAg
IHt9LCBbU2h1ZmZsZUZsYWcoKSwgUmFuZG9tU2VlZEZsYWcoMSksIFJlcGVhdEZsYWcoMyldKSkK
LQotICAgIHNlbGYuYXNzZXJ0Xyh0ZXN0c19pbl9pdGVyYXRpb24xICE9IHRlc3RzX2luX2l0ZXJh
dGlvbjIsCi0gICAgICAgICAgICAgICAgIHRlc3RzX2luX2l0ZXJhdGlvbjEpCi0gICAgc2VsZi5h
c3NlcnRfKHRlc3RzX2luX2l0ZXJhdGlvbjEgIT0gdGVzdHNfaW5faXRlcmF0aW9uMywKLSAgICAg
ICAgICAgICAgICAgdGVzdHNfaW5faXRlcmF0aW9uMSkKLSAgICBzZWxmLmFzc2VydF8odGVzdHNf
aW5faXRlcmF0aW9uMiAhPSB0ZXN0c19pbl9pdGVyYXRpb24zLAotICAgICAgICAgICAgICAgICB0
ZXN0c19pbl9pdGVyYXRpb24yKQotCi0gIGRlZiB0ZXN0U2h1ZmZsZVNoYXJkZWRUZXN0c1ByZXNl
cnZlc1BhcnRpdGlvbihzZWxmKToKLSAgICAjIElmIHdlIHJ1biBNIHRlc3RzIG9uIE4gc2hhcmRz
LCB0aGUgc2FtZSBNIHRlc3RzIHNob3VsZCBiZSBydW4gaW4KLSAgICAjIHRvdGFsLCByZWdhcmRs
ZXNzIG9mIHRoZSByYW5kb20gc2VlZHMgdXNlZCBieSB0aGUgc2hhcmRzLgotICAgIFt0ZXN0czFd
ID0gR2V0VGVzdHNGb3JBbGxJdGVyYXRpb25zKHtUT1RBTF9TSEFSRFNfRU5WX1ZBUjogJzMnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRF9JTkRFWF9FTlZf
VkFSOiAnMCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtTaHVm
ZmxlRmxhZygpLCBSYW5kb21TZWVkRmxhZygxKV0pCi0gICAgW3Rlc3RzMl0gPSBHZXRUZXN0c0Zv
ckFsbEl0ZXJhdGlvbnMoe1RPVEFMX1NIQVJEU19FTlZfVkFSOiAnMycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJEX0lOREVYX0VOVl9WQVI6ICcxJ30sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1NodWZmbGVGbGFnKCksIFJh
bmRvbVNlZWRGbGFnKDIwKV0pCi0gICAgW3Rlc3RzM10gPSBHZXRUZXN0c0ZvckFsbEl0ZXJhdGlv
bnMoe1RPVEFMX1NIQVJEU19FTlZfVkFSOiAnMycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNIQVJEX0lOREVYX0VOVl9WQVI6ICcyJ30sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1NodWZmbGVGbGFnKCksIFJhbmRvbVNlZWRGbGFn
KDI1KV0pCi0gICAgc29ydGVkX3NoYXJkZWRfdGVzdHMgPSB0ZXN0czEgKyB0ZXN0czIgKyB0ZXN0
czMKLSAgICBzb3J0ZWRfc2hhcmRlZF90ZXN0cy5zb3J0KCkKLSAgICBzb3J0ZWRfYWN0aXZlX3Rl
c3RzID0gW10KLSAgICBzb3J0ZWRfYWN0aXZlX3Rlc3RzLmV4dGVuZChBQ1RJVkVfVEVTVFMpCi0g
ICAgc29ydGVkX2FjdGl2ZV90ZXN0cy5zb3J0KCkKLSAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRl
ZF9hY3RpdmVfdGVzdHMsIHNvcnRlZF9zaGFyZGVkX3Rlc3RzKQotCi1pZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgotICBndGVzdF90ZXN0X3V0aWxzLk1haW4oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9zaHVmZmxlX3Rlc3RfLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF9zaHVmZmxlX3Rlc3RfLmNjCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmI0NDFiZDRkNDY2MjFmNjk4N2NhZDRiNzZhZTU5NDk5
ZDdmZmQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3Rfc2h1ZmZsZV90ZXN0Xy5jYworKysg
L2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIElu
Yy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiB3YW5AZ29vZ2xlLmNvbSAoWmhhbnlvbmcg
V2FuKQotCi0vLyBWZXJpZmllcyB0aGF0IHRlc3Qgc2h1ZmZsaW5nIHdvcmtzLgotCi0jaW5jbHVk
ZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotbmFtZXNwYWNlIHsKLQotdXNpbmcgOjp0ZXN0aW5nOjpFbXB0
eVRlc3RFdmVudExpc3RlbmVyOwotdXNpbmcgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdDsKLXVz
aW5nIDo6dGVzdGluZzo6TWVzc2FnZTsKLXVzaW5nIDo6dGVzdGluZzo6VGVzdDsKLXVzaW5nIDo6
dGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXJzOwotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0SW5mbzsK
LXVzaW5nIDo6dGVzdGluZzo6VW5pdFRlc3Q7Ci11c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpz
Y29wZWRfcHRyOwotCi0vLyBUaGUgdGVzdCBtZXRob2RzIGFyZSBlbXB0eSwgYXMgdGhlIHNvbGUg
cHVycG9zZSBvZiB0aGlzIHByb2dyYW0gaXMKLS8vIHRvIHByaW50IHRoZSB0ZXN0IG5hbWVzIGJl
Zm9yZS9hZnRlciBzaHVmZmxpbmcuCi0KLWNsYXNzIEEgOiBwdWJsaWMgVGVzdCB7fTsKLVRFU1Rf
RihBLCBBKSB7fQotVEVTVF9GKEEsIEIpIHt9Ci0KLVRFU1QoQURlYXRoVGVzdCwgQSkge30KLVRF
U1QoQURlYXRoVGVzdCwgQikge30KLVRFU1QoQURlYXRoVGVzdCwgQykge30KLQotVEVTVChCLCBB
KSB7fQotVEVTVChCLCBCKSB7fQotVEVTVChCLCBDKSB7fQotVEVTVChCLCBESVNBQkxFRF9EKSB7
fQotVEVTVChCLCBESVNBQkxFRF9FKSB7fQotCi1URVNUKEJEZWF0aFRlc3QsIEEpIHt9Ci1URVNU
KEJEZWF0aFRlc3QsIEIpIHt9Ci0KLVRFU1QoQywgQSkge30KLVRFU1QoQywgQikge30KLVRFU1Qo
QywgQykge30KLVRFU1QoQywgRElTQUJMRURfRCkge30KLQotVEVTVChDRGVhdGhUZXN0LCBBKSB7
fQotCi1URVNUKERJU0FCTEVEX0QsIEEpIHt9Ci1URVNUKERJU0FCTEVEX0QsIERJU0FCTEVEX0Ip
IHt9Ci0KLS8vIFRoaXMgcHJpbnRlciBwcmludHMgdGhlIGZ1bGwgdGVzdCBuYW1lcyBvbmx5LCBz
dGFydGluZyBlYWNoIHRlc3QKLS8vIGl0ZXJhdGlvbiB3aXRoIGEgIi0tLS0iIG1hcmtlci4KLWNs
YXNzIFRlc3ROYW1lUHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKLSBw
dWJsaWM6Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVz
dCYgLyogdW5pdF90ZXN0ICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IC8qIGl0ZXJhdGlvbiAqLykgewotICAgIHByaW50ZigiLS0tLVxuIik7Ci0gIH0KLQotICB2
aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewotICAg
IHByaW50ZigiJXMuJXNcbiIsIHRlc3RfaW5mby50ZXN0X2Nhc2VfbmFtZSgpLCB0ZXN0X2luZm8u
bmFtZSgpKTsKLSAgfQotfTsKLQotfSAgLy8gbmFtZXNwYWNlCi0KLWludCBtYWluKGludCBhcmdj
LCBjaGFyICoqYXJndikgewotICBJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0KLSAgLy8g
UmVwbGFjZXMgdGhlIGRlZmF1bHQgcHJpbnRlciB3aXRoIFRlc3ROYW1lUHJpbnRlciwgd2hpY2gg
cHJpbnRzCi0gIC8vIHRoZSB0ZXN0IG5hbWUgb25seS4KLSAgVGVzdEV2ZW50TGlzdGVuZXJzJiBs
aXN0ZW5lcnMgPSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+bGlzdGVuZXJzKCk7Ci0gIGRlbGV0
ZSBsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcnMuZGVmYXVsdF9yZXN1bHRfcHJpbnRlcigpKTsK
LSAgbGlzdGVuZXJzLkFwcGVuZChuZXcgVGVzdE5hbWVQcmludGVyKTsKLQotICByZXR1cm4gUlVO
X0FMTF9URVNUUygpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Qv
dGVzdC9ndGVzdF9zb2xlX2hlYWRlcl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRl
c3QvdGVzdC9ndGVzdF9zb2xlX2hlYWRlcl90ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjY2QwOTFhMjgxZDNjMzAyZWM2ZTczNjAyMmZkNjE4ODE2YzExOWQ2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9n
b29nbGV0ZXN0L3Rlc3QvZ3Rlc3Rfc29sZV9oZWFkZXJfdGVzdC5jYworKysgL2Rldi9udWxsCkBA
IC0xLDU3ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgotLy8gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLS8vCi0vLyBBdXRob3I6IG1oZXVsZUBnb29nbGUuY29tIChNYXJrdXMgSGV1bGUpCi0vLwot
Ly8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgaXQncyBwb3NzaWJsZSB0byB1c2UgR29vZ2xlIFRl
c3QgYnkgaW5jbHVkaW5nCi0vLyB0aGUgZ3Rlc3QuaCBoZWFkZXIgZmlsZSBhbG9uZS4KLQotI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLXZvaWQgU3Vicm91dGluZSgp
IHsKLSAgRVhQRUNUX0VRKDQyLCA0Mik7Ci19Ci0KLVRFU1QoTm9GYXRhbEZhaWx1cmVUZXN0LCBF
eHBlY3ROb0ZhdGFsRmFpbHVyZSkgewotICBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRSg7KTsKLSAg
RVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoU1VDQ0VFRCgpKTsKLSAgRVhQRUNUX05PX0ZBVEFMX0ZB
SUxVUkUoU3Vicm91dGluZSgpKTsKLSAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoeyBTVUNDRUVE
KCk7IH0pOwotfQotCi1URVNUKE5vRmF0YWxGYWlsdXJlVGVzdCwgQXNzZXJ0Tm9GYXRhbEZhaWx1
cmUpIHsKLSAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoOyk7Ci0gIEFTU0VSVF9OT19GQVRBTF9G
QUlMVVJFKFNVQ0NFRUQoKSk7Ci0gIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKFN1YnJvdXRpbmUo
KSk7Ci0gIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKHsgU1VDQ0VFRCgpOyB9KTsKLX0KLQotfSAg
Ly8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0
L2d0ZXN0X3N0cmVzc190ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9n
dGVzdF9zdHJlc3NfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2FjNDA1
ZjgwOGExODA3N2ViNjQxNDcyMzEzOGQxYWViY2MzYTQyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0
L2d0ZXN0X3N0cmVzc190ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMjUwICswLDAgQEAKLS8v
IENvcHlyaWdodCAyMDA3LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8v
Ci0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlz
dHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
Ly8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6
IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0KLS8vIFRlc3RzIHRoYXQgU0NPUEVEX1RS
QUNFKCkgYW5kIHZhcmlvdXMgR29vZ2xlIFRlc3QgYXNzZXJ0aW9ucyBjYW4gYmUKLS8vIHVzZWQg
aW4gYSBsYXJnZSBudW1iZXIgb2YgdGhyZWFkcyBjb25jdXJyZW50bHkuCi0KLSNpbmNsdWRlICJn
dGVzdC9ndGVzdC5oIgotCi0jaW5jbHVkZSA8dmVjdG9yPgotCi0jaW5jbHVkZSAic3JjL2d0ZXN0
LWludGVybmFsLWlubC5oIgotCi0jaWYgR1RFU1RfSVNfVEhSRUFEU0FGRQotCi1uYW1lc3BhY2Ug
dGVzdGluZyB7Ci1uYW1lc3BhY2UgewotCi11c2luZyBpbnRlcm5hbDo6Tm90aWZpY2F0aW9uOwot
dXNpbmcgaW50ZXJuYWw6OlRlc3RQcm9wZXJ0eUtleUlzOwotdXNpbmcgaW50ZXJuYWw6OlRocmVh
ZFdpdGhQYXJhbTsKLXVzaW5nIGludGVybmFsOjpzY29wZWRfcHRyOwotCi0vLyBJbiBvcmRlciB0
byBydW4gdGVzdHMgaW4gdGhpcyBmaWxlLCBmb3IgcGxhdGZvcm1zIHdoZXJlIEdvb2dsZSBUZXN0
IGlzCi0vLyB0aHJlYWQgc2FmZSwgaW1wbGVtZW50IFRocmVhZFdpdGhQYXJhbS4gU2VlIHRoZSBk
ZXNjcmlwdGlvbiBvZiBpdHMgQVBJCi0vLyBpbiBndGVzdC1wb3J0LmgsIHdoZXJlIGl0IGlzIGRl
ZmluZWQgZm9yIGFscmVhZHkgc3VwcG9ydGVkIHBsYXRmb3Jtcy4KLQotLy8gSG93IG1hbnkgdGhy
ZWFkcyB0byBjcmVhdGU/Ci1jb25zdCBpbnQga1RocmVhZENvdW50ID0gNTA7Ci0KLXN0ZDo6c3Ry
aW5nIElkVG9LZXkoaW50IGlkLCBjb25zdCBjaGFyKiBzdWZmaXgpIHsKLSAgTWVzc2FnZSBrZXk7
Ci0gIGtleSA8PCAia2V5XyIgPDwgaWQgPDwgIl8iIDw8IHN1ZmZpeDsKLSAgcmV0dXJuIGtleS5H
ZXRTdHJpbmcoKTsKLX0KLQotc3RkOjpzdHJpbmcgSWRUb1N0cmluZyhpbnQgaWQpIHsKLSAgTWVz
c2FnZSBpZF9tZXNzYWdlOwotICBpZF9tZXNzYWdlIDw8IGlkOwotICByZXR1cm4gaWRfbWVzc2Fn
ZS5HZXRTdHJpbmcoKTsKLX0KLQotdm9pZCBFeHBlY3RLZXlBbmRWYWx1ZVdlcmVSZWNvcmRlZEZv
cklkKAotICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RQcm9wZXJ0eT4mIHByb3BlcnRpZXMsCi0g
ICAgaW50IGlkLCBjb25zdCBjaGFyKiBzdWZmaXgpIHsKLSAgVGVzdFByb3BlcnR5S2V5SXMgbWF0
Y2hlc19rZXkoSWRUb0tleShpZCwgc3VmZml4KS5jX3N0cigpKTsKLSAgY29uc3Qgc3RkOjp2ZWN0
b3I8VGVzdFByb3BlcnR5Pjo6Y29uc3RfaXRlcmF0b3IgcHJvcGVydHkgPQotICAgICAgc3RkOjpm
aW5kX2lmKHByb3BlcnRpZXMuYmVnaW4oKSwgcHJvcGVydGllcy5lbmQoKSwgbWF0Y2hlc19rZXkp
OwotICBBU1NFUlRfVFJVRShwcm9wZXJ0eSAhPSBwcm9wZXJ0aWVzLmVuZCgpKQotICAgICAgPDwg
ImV4cGVjdGluZyAiIDw8IHN1ZmZpeCA8PCAiIHZhbHVlIGZvciBpZCAiIDw8IGlkOwotICBFWFBF
Q1RfU1RSRVEoSWRUb1N0cmluZyhpZCkuY19zdHIoKSwgcHJvcGVydHktPnZhbHVlKCkpOwotfQot
Ci0vLyBDYWxscyBhIGxhcmdlIG51bWJlciBvZiBHb29nbGUgVGVzdCBhc3NlcnRpb25zLCB3aGVy
ZSBleGFjdGx5IG9uZSBvZiB0aGVtCi0vLyB3aWxsIGZhaWwuCi12b2lkIE1hbnlBc3NlcnRzKGlu
dCBpZCkgewotICBHVEVTVF9MT0dfKElORk8pIDw8ICJUaHJlYWQgIyIgPDwgaWQgPDwgIiBydW5u
aW5nLi4uIjsKLQotICBTQ09QRURfVFJBQ0UoTWVzc2FnZSgpIDw8ICJUaHJlYWQgIyIgPDwgaWQp
OwotCi0gIGZvciAoaW50IGkgPSAwOyBpIDwga1RocmVhZENvdW50OyBpKyspIHsKLSAgICBTQ09Q
RURfVFJBQ0UoTWVzc2FnZSgpIDw8ICJJdGVyYXRpb24gIyIgPDwgaSk7Ci0KLSAgICAvLyBBIGJ1
bmNoIG9mIGFzc2VydGlvbnMgdGhhdCBzaG91bGQgc3VjY2VlZC4KLSAgICBFWFBFQ1RfVFJVRSh0
cnVlKTsKLSAgICBBU1NFUlRfRkFMU0UoZmFsc2UpIDw8ICJUaGlzIHNob3VsZG4ndCBmYWlsLiI7
Ci0gICAgRVhQRUNUX1NUUkVRKCJhIiwgImEiKTsKLSAgICBBU1NFUlRfTEUoNSwgNik7Ci0gICAg
RVhQRUNUX0VRKGksIGkpIDw8ICJUaGlzIHNob3VsZG4ndCBmYWlsLiI7Ci0KLSAgICAvLyBSZWNv
cmRQcm9wZXJ0eSgpIHNob3VsZCBpbnRlcmFjdCBzYWZlbHkgd2l0aCBvdGhlciB0aHJlYWRzIGFz
IHdlbGwuCi0gICAgLy8gVGhlIHNoYXJlZF9rZXkgZm9yY2VzIHByb3BlcnR5IHVwZGF0ZXMuCi0g
ICAgVGVzdDo6UmVjb3JkUHJvcGVydHkoSWRUb0tleShpZCwgInN0cmluZyIpLmNfc3RyKCksIElk
VG9TdHJpbmcoaWQpLmNfc3RyKCkpOwotICAgIFRlc3Q6OlJlY29yZFByb3BlcnR5KElkVG9LZXko
aWQsICJpbnQiKS5jX3N0cigpLCBpZCk7Ci0gICAgVGVzdDo6UmVjb3JkUHJvcGVydHkoInNoYXJl
ZF9rZXkiLCBJZFRvU3RyaW5nKGlkKS5jX3N0cigpKTsKLQotICAgIC8vIFRoaXMgYXNzZXJ0aW9u
IHNob3VsZCBmYWlsIGtUaHJlYWRDb3VudCB0aW1lcyBwZXIgdGhyZWFkLiAgSXQKLSAgICAvLyBp
cyBmb3IgdGVzdGluZyB3aGV0aGVyIEdvb2dsZSBUZXN0IGNhbiBoYW5kbGUgZmFpbGVkIGFzc2Vy
dGlvbnMgaW4gYQotICAgIC8vIG11bHRpLXRocmVhZGVkIGNvbnRleHQuCi0gICAgRVhQRUNUX0xU
KGksIDApIDw8ICJUaGlzIHNob3VsZCBhbHdheXMgZmFpbC4iOwotICB9Ci19Ci0KLXZvaWQgQ2hl
Y2tUZXN0RmFpbHVyZUNvdW50KGludCBleHBlY3RlZF9mYWlsdXJlcykgewotICBjb25zdCBUZXN0
SW5mbyogY29uc3QgaW5mbyA9IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3Rf
aW5mbygpOwotICBjb25zdCBUZXN0UmVzdWx0KiBjb25zdCByZXN1bHQgPSBpbmZvLT5yZXN1bHQo
KTsKLSAgR1RFU1RfQ0hFQ0tfKGV4cGVjdGVkX2ZhaWx1cmVzID09IHJlc3VsdC0+dG90YWxfcGFy
dF9jb3VudCgpKQotICAgICAgPDwgIkxvZ2dlZCAiIDw8IHJlc3VsdC0+dG90YWxfcGFydF9jb3Vu
dCgpIDw8ICIgZmFpbHVyZXMgIgotICAgICAgPDwgIiB2cy4gIiA8PCBleHBlY3RlZF9mYWlsdXJl
cyA8PCAiIGV4cGVjdGVkIjsKLX0KLQotLy8gVGVzdHMgdXNpbmcgU0NPUEVEX1RSQUNFKCkgYW5k
IEdvb2dsZSBUZXN0IGFzc2VydGlvbnMgaW4gbWFueSB0aHJlYWRzCi0vLyBjb25jdXJyZW50bHku
Ci1URVNUKFN0cmVzc1Rlc3QsIENhblVzZVNjb3BlZFRyYWNlQW5kQXNzZXJ0aW9uc0luTWFueVRo
cmVhZHMpIHsKLSAgewotICAgIHNjb3BlZF9wdHI8VGhyZWFkV2l0aFBhcmFtPGludD4gPiB0aHJl
YWRzW2tUaHJlYWRDb3VudF07Ci0gICAgTm90aWZpY2F0aW9uIHRocmVhZHNfY2FuX3N0YXJ0Owot
ICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGtUaHJlYWRDb3VudDsgaSsrKQotICAgICAgdGhyZWFk
c1tpXS5yZXNldChuZXcgVGhyZWFkV2l0aFBhcmFtPGludD4oJk1hbnlBc3NlcnRzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aHJlYWRzX2Nhbl9zdGFydCkp
OwotCi0gICAgdGhyZWFkc19jYW5fc3RhcnQuTm90aWZ5KCk7Ci0KLSAgICAvLyBCbG9ja3MgdW50
aWwgYWxsIHRoZSB0aHJlYWRzIGFyZSBkb25lLgotICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGtU
aHJlYWRDb3VudDsgaSsrKQotICAgICAgdGhyZWFkc1tpXS0+Sm9pbigpOwotICB9Ci0KLSAgLy8g
RW5zdXJlcyB0aGF0IGtUaHJlYWRDb3VudCprVGhyZWFkQ291bnQgZmFpbHVyZXMgaGF2ZSBiZWVu
IHJlcG9ydGVkLgotICBjb25zdCBUZXN0SW5mbyogY29uc3QgaW5mbyA9IFVuaXRUZXN0OjpHZXRJ
bnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBjb25zdCBUZXN0UmVzdWx0KiBjb25z
dCByZXN1bHQgPSBpbmZvLT5yZXN1bHQoKTsKLQotICBzdGQ6OnZlY3RvcjxUZXN0UHJvcGVydHk+
IHByb3BlcnRpZXM7Ci0gIC8vIFdlIGhhdmUgbm8gYWNjZXNzIHRvIHRoZSBUZXN0UmVzdWx0J3Mg
bGlzdCBvZiBwcm9wZXJ0aWVzIGJ1dCB3ZSBjYW4KLSAgLy8gY29weSB0aGVtIG9uZSBieSBvbmUu
Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0LT50ZXN0X3Byb3BlcnR5X2NvdW50KCk7ICsr
aSkKLSAgICBwcm9wZXJ0aWVzLnB1c2hfYmFjayhyZXN1bHQtPkdldFRlc3RQcm9wZXJ0eShpKSk7
Ci0KLSAgRVhQRUNUX0VRKGtUaHJlYWRDb3VudCAqIDIgKyAxLCByZXN1bHQtPnRlc3RfcHJvcGVy
dHlfY291bnQoKSkKLSAgICAgIDw8ICJTdHJpbmcgYW5kIGludCB2YWx1ZXMgcmVjb3JkZWQgb24g
ZWFjaCB0aHJlYWQsICIKLSAgICAgIDw8ICJhcyB3ZWxsIGFzIG9uZSBzaGFyZWRfa2V5IjsKLSAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBrVGhyZWFkQ291bnQ7ICsraSkgewotICAgIEV4cGVjdEtleUFu
ZFZhbHVlV2VyZVJlY29yZGVkRm9ySWQocHJvcGVydGllcywgaSwgInN0cmluZyIpOwotICAgIEV4
cGVjdEtleUFuZFZhbHVlV2VyZVJlY29yZGVkRm9ySWQocHJvcGVydGllcywgaSwgImludCIpOwot
ICB9Ci0gIENoZWNrVGVzdEZhaWx1cmVDb3VudChrVGhyZWFkQ291bnQqa1RocmVhZENvdW50KTsK
LX0KLQotdm9pZCBGYWlsaW5nVGhyZWFkKGJvb2wgaXNfZmF0YWwpIHsKLSAgaWYgKGlzX2ZhdGFs
KQotICAgIEZBSUwoKSA8PCAiRmF0YWwgZmFpbHVyZSBpbiBzb21lIG90aGVyIHRocmVhZC4gIgot
ICAgICAgICAgICA8PCAiKFRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZC4pIjsKLSAgZWxzZQotICAg
IEFERF9GQUlMVVJFKCkgPDwgIk5vbi1mYXRhbCBmYWlsdXJlIGluIHNvbWUgb3RoZXIgdGhyZWFk
LiAiCi0gICAgICAgICAgICAgICAgICA8PCAiKFRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZC4pIjsK
LX0KLQotdm9pZCBHZW5lcmF0ZUZhdGFsRmFpbHVyZUluQW5vdGhlclRocmVhZChib29sIGlzX2Zh
dGFsKSB7Ci0gIFRocmVhZFdpdGhQYXJhbTxib29sPiB0aHJlYWQoJkZhaWxpbmdUaHJlYWQsIGlz
X2ZhdGFsLCBOVUxMKTsKLSAgdGhyZWFkLkpvaW4oKTsKLX0KLQotVEVTVChOb0ZhdGFsRmFpbHVy
ZVRlc3QsIEV4cGVjdE5vRmF0YWxGYWlsdXJlSWdub3Jlc0ZhaWx1cmVzSW5PdGhlclRocmVhZHMp
IHsKLSAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoR2VuZXJhdGVGYXRhbEZhaWx1cmVJbkFub3Ro
ZXJUaHJlYWQodHJ1ZSkpOwotICAvLyBXZSBzaG91bGQgb25seSBoYXZlIG9uZSBmYWlsdXJlICh0
aGUgb25lIGZyb20KLSAgLy8gR2VuZXJhdGVGYXRhbEZhaWx1cmVJbkFub3RoZXJUaHJlYWQoKSks
IHNpbmNlIHRoZSBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRQotICAvLyBzaG91bGQgc3VjY2VlZC4K
LSAgQ2hlY2tUZXN0RmFpbHVyZUNvdW50KDEpOwotfQotCi12b2lkIEFzc2VydE5vRmF0YWxGYWls
dXJlSWdub3Jlc0ZhaWx1cmVzSW5PdGhlclRocmVhZHMoKSB7Ci0gIEFTU0VSVF9OT19GQVRBTF9G
QUlMVVJFKEdlbmVyYXRlRmF0YWxGYWlsdXJlSW5Bbm90aGVyVGhyZWFkKHRydWUpKTsKLX0KLVRF
U1QoTm9GYXRhbEZhaWx1cmVUZXN0LCBBc3NlcnROb0ZhdGFsRmFpbHVyZUlnbm9yZXNGYWlsdXJl
c0luT3RoZXJUaHJlYWRzKSB7Ci0gIC8vIFVzaW5nIGEgc3Vicm91dGluZSwgdG8gbWFrZSBzdXJl
LCB0aGF0IHRoZSB0ZXN0IGNvbnRpbnVlcy4KLSAgQXNzZXJ0Tm9GYXRhbEZhaWx1cmVJZ25vcmVz
RmFpbHVyZXNJbk90aGVyVGhyZWFkcygpOwotICAvLyBXZSBzaG91bGQgb25seSBoYXZlIG9uZSBm
YWlsdXJlICh0aGUgb25lIGZyb20KLSAgLy8gR2VuZXJhdGVGYXRhbEZhaWx1cmVJbkFub3RoZXJU
aHJlYWQoKSksIHNpbmNlIHRoZSBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRQotICAvLyBzaG91bGQg
c3VjY2VlZC4KLSAgQ2hlY2tUZXN0RmFpbHVyZUNvdW50KDEpOwotfQotCi1URVNUKEZhdGFsRmFp
bHVyZVRlc3QsIEV4cGVjdEZhdGFsRmFpbHVyZUlnbm9yZXNGYWlsdXJlc0luT3RoZXJUaHJlYWRz
KSB7Ci0gIC8vIFRoaXMgc3RhdGVtZW50IHNob3VsZCBmYWlsLCBzaW5jZSB0aGUgY3VycmVudCB0
aHJlYWQgZG9lc24ndCBnZW5lcmF0ZSBhCi0gIC8vIGZhdGFsIGZhaWx1cmUsIG9ubHkgYW5vdGhl
ciBvbmUgZG9lcy4KLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoR2VuZXJhdGVGYXRhbEZhaWx1cmVJ
bkFub3RoZXJUaHJlYWQodHJ1ZSksICJleHBlY3RlZCIpOwotICBDaGVja1Rlc3RGYWlsdXJlQ291
bnQoMik7Ci19Ci0KLVRFU1QoRmF0YWxGYWlsdXJlT25BbGxUaHJlYWRzVGVzdCwgRXhwZWN0RmF0
YWxGYWlsdXJlT25BbGxUaHJlYWRzKSB7Ci0gIC8vIFRoaXMgc3RhdGVtZW50IHNob3VsZCBzdWNj
ZWVkLCBiZWNhdXNlIGZhaWx1cmVzIGluIGFsbCB0aHJlYWRzIGFyZQotICAvLyBjb25zaWRlcmVk
LgotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUygKLSAgICAgIEdlbmVyYXRl
RmF0YWxGYWlsdXJlSW5Bbm90aGVyVGhyZWFkKHRydWUpLCAiZXhwZWN0ZWQiKTsKLSAgQ2hlY2tU
ZXN0RmFpbHVyZUNvdW50KDApOwotICAvLyBXZSBuZWVkIHRvIGFkZCBhIGZhaWx1cmUsIGJlY2F1
c2UgbWFpbigpIGNoZWNrcyB0aGF0IHRoZXJlIGFyZSBmYWlsdXJlcy4KLSAgLy8gQnV0IHdoZW4g
b25seSB0aGlzIHRlc3QgaXMgcnVuLCB3ZSBzaG91bGRuJ3QgaGF2ZSBhbnkgZmFpbHVyZXMuCi0g
IEFERF9GQUlMVVJFKCkgPDwgIlRoaXMgaXMgYW4gZXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUu
IjsKLX0KLQotVEVTVChOb25GYXRhbEZhaWx1cmVUZXN0LCBFeHBlY3ROb25GYXRhbEZhaWx1cmVJ
Z25vcmVzRmFpbHVyZXNJbk90aGVyVGhyZWFkcykgewotICAvLyBUaGlzIHN0YXRlbWVudCBzaG91
bGQgZmFpbCwgc2luY2UgdGhlIGN1cnJlbnQgdGhyZWFkIGRvZXNuJ3QgZ2VuZXJhdGUgYQotICAv
LyBmYXRhbCBmYWlsdXJlLCBvbmx5IGFub3RoZXIgb25lIGRvZXMuCi0gIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEdlbmVyYXRlRmF0YWxGYWlsdXJlSW5Bbm90aGVyVGhyZWFkKGZhbHNlKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIik7Ci0gIENoZWNrVGVzdEZhaWx1cmVD
b3VudCgyKTsKLX0KLQotVEVTVChOb25GYXRhbEZhaWx1cmVPbkFsbFRocmVhZHNUZXN0LCBFeHBl
Y3ROb25GYXRhbEZhaWx1cmVPbkFsbFRocmVhZHMpIHsKLSAgLy8gVGhpcyBzdGF0ZW1lbnQgc2hv
dWxkIHN1Y2NlZWQsIGJlY2F1c2UgZmFpbHVyZXMgaW4gYWxsIHRocmVhZHMgYXJlCi0gIC8vIGNv
bnNpZGVyZWQuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURTKAotICAg
ICAgR2VuZXJhdGVGYXRhbEZhaWx1cmVJbkFub3RoZXJUaHJlYWQoZmFsc2UpLCAiZXhwZWN0ZWQi
KTsKLSAgQ2hlY2tUZXN0RmFpbHVyZUNvdW50KDApOwotICAvLyBXZSBuZWVkIHRvIGFkZCBhIGZh
aWx1cmUsIGJlY2F1c2UgbWFpbigpIGNoZWNrcyB0aGF0IHRoZXJlIGFyZSBmYWlsdXJlcywKLSAg
Ly8gQnV0IHdoZW4gb25seSB0aGlzIHRlc3QgaXMgcnVuLCB3ZSBzaG91bGRuJ3QgaGF2ZSBhbnkg
ZmFpbHVyZXMuCi0gIEFERF9GQUlMVVJFKCkgPDwgIlRoaXMgaXMgYW4gZXhwZWN0ZWQgbm9uLWZh
dGFsIGZhaWx1cmUuIjsKLX0KLQotfSAgLy8gbmFtZXNwYWNlCi19ICAvLyBuYW1lc3BhY2UgdGVz
dGluZwotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgdGVzdGluZzo6SW5p
dEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotCi0gIGNvbnN0IGludCByZXN1bHQgPSBSVU5fQUxM
X1RFU1RTKCk7ICAvLyBFeHBlY3RlZCB0byBmYWlsLgotICBHVEVTVF9DSEVDS18ocmVzdWx0ID09
IDEpIDw8ICJSVU5fQUxMX1RFU1RTKCkgZGlkIG5vdCBmYWlsIGFzIGV4cGVjdGVkIjsKLQotICBw
cmludGYoIlxuUEFTU1xuIik7Ci0gIHJldHVybiAwOwotfQotCi0jZWxzZQotVEVTVChTdHJlc3NU
ZXN0LAotICAgICBESVNBQkxFRF9UaHJlYWRTYWZldHlUZXN0c0FyZVNraXBwZWRXaGVuR29vZ2xl
VGVzdElzTm90VGhyZWFkU2FmZSkgewotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy
Z3YpIHsKLSAgdGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotICByZXR1cm4g
UlVOX0FMTF9URVNUUygpOwotfQotI2VuZGlmICAvLyBHVEVTVF9JU19USFJFQURTQUZFCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMu
cHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyYjY3NDhkNzA5NTkzZDRkMDQ1MDFiZDI5
ODBhNDM4MjA1NGM0MWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF90ZXN0X3V0aWxzLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMzIwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgot
IwotIyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIlVuaXQgdGVzdCB1dGlsaXRpZXMgZm9yIEdvb2dsZSBD
KysgVGVzdGluZyBGcmFtZXdvcmsuIiIiCi0KLV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20g
KFpoYW55b25nIFdhbiknCi0KLWltcG9ydCBhdGV4aXQKLWltcG9ydCBvcwotaW1wb3J0IHNodXRp
bAotaW1wb3J0IHN5cwotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKLV90ZXN0X21v
ZHVsZSA9IHVuaXR0ZXN0Ci0KLSMgU3VwcHJlc3NlcyB0aGUgJ0ltcG9ydCBub3QgYXQgdGhlIHRv
cCBvZiB0aGUgZmlsZScgbGludCBjb21wbGFpbnQuCi0jIHB5bGludDogZGlzYWJsZS1tc2c9QzYy
MDQKLXRyeToKLSAgaW1wb3J0IHN1YnByb2Nlc3MKLSAgX1NVQlBST0NFU1NfTU9EVUxFX0FWQUlM
QUJMRSA9IFRydWUKLWV4Y2VwdDoKLSAgaW1wb3J0IHBvcGVuMgotICBfU1VCUFJPQ0VTU19NT0RV
TEVfQVZBSUxBQkxFID0gRmFsc2UKLSMgcHlsaW50OiBlbmFibGUtbXNnPUM2MjA0Ci0KLUdURVNU
X09VVFBVVF9WQVJfTkFNRSA9ICdHVEVTVF9PVVRQVVQnCi0KLUlTX1dJTkRPV1MgPSBvcy5uYW1l
ID09ICdudCcKLUlTX0NZR1dJTiA9IG9zLm5hbWUgPT0gJ3Bvc2l4JyBhbmQgJ0NZR1dJTicgaW4g
b3MudW5hbWUoKVswXQotCi0jIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3Igc3BlY2lmeWlu
ZyB0aGUgcGF0aCB0byB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZS4KLVBSRU1BVFVSRV9FWElUX0ZJ
TEVfRU5WX1ZBUiA9ICdURVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUnCi0KLWVudmlyb24gPSBvcy5l
bnZpcm9uLmNvcHkoKQotCi0KLWRlZiBTZXRFbnZWYXIoZW52X3ZhciwgdmFsdWUpOgotICAiIiJT
ZXRzL3Vuc2V0cyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGdpdmVuIHZhbHVlLiIiIgot
Ci0gIGlmIHZhbHVlIGlzIG5vdCBOb25lOgotICAgIGVudmlyb25bZW52X3Zhcl0gPSB2YWx1ZQot
ICBlbGlmIGVudl92YXIgaW4gZW52aXJvbjoKLSAgICBkZWwgZW52aXJvbltlbnZfdmFyXQotCi0K
LSMgSGVyZSB3ZSBleHBvc2UgYSBjbGFzcyBmcm9tIGEgcGFydGljdWxhciBtb2R1bGUsIGRlcGVu
ZGluZyBvbiB0aGUKLSMgZW52aXJvbm1lbnQuIFRoZSBjb21tZW50IHN1cHByZXNzZXMgdGhlICdJ
bnZhbGlkIHZhcmlhYmxlIG5hbWUnIGxpbnQKLSMgY29tcGxhaW50LgotVGVzdENhc2UgPSBfdGVz
dF9tb2R1bGUuVGVzdENhc2UgICMgcHlsaW50OiBkaXNhYmxlLW1zZz1DNjQwOQotCi0jIEluaXRp
YWxseSBtYXBzIGEgZmxhZyB0byBpdHMgZGVmYXVsdCB2YWx1ZS4gQWZ0ZXIKLSMgX1BhcnNlQW5k
U3RyaXBHVGVzdEZsYWdzKCkgaXMgY2FsbGVkLCBtYXBzIGEgZmxhZyB0byBpdHMgYWN0dWFsIHZh
bHVlLgotX2ZsYWdfbWFwID0geydzb3VyY2VfZGlyJzogb3MucGF0aC5kaXJuYW1lKHN5cy5hcmd2
WzBdKSwKLSAgICAgICAgICAgICAnYnVpbGRfZGlyJzogb3MucGF0aC5kaXJuYW1lKHN5cy5hcmd2
WzBdKX0KLV9ndGVzdF9mbGFnc19hcmVfcGFyc2VkID0gRmFsc2UKLQotCi1kZWYgX1BhcnNlQW5k
U3RyaXBHVGVzdEZsYWdzKGFyZ3YpOgotICAiIiJQYXJzZXMgYW5kIHN0cmlwcyBHb29nbGUgVGVz
dCBmbGFncyBmcm9tIGFyZ3YuICBUaGlzIGlzIGlkZW1wb3RlbnQuIiIiCi0KLSAgIyBTdXBwcmVz
c2VzIHRoZSBsaW50IGNvbXBsYWludCBhYm91dCBhIGdsb2JhbCB2YXJpYWJsZSBzaW5jZSB3ZSBu
ZWVkIGl0Ci0gICMgaGVyZSB0byBtYWludGFpbiBtb2R1bGUtd2lkZSBzdGF0ZS4KLSAgZ2xvYmFs
IF9ndGVzdF9mbGFnc19hcmVfcGFyc2VkICAjIHB5bGludDogZGlzYWJsZS1tc2c9VzA2MDMKLSAg
aWYgX2d0ZXN0X2ZsYWdzX2FyZV9wYXJzZWQ6Ci0gICAgcmV0dXJuCi0KLSAgX2d0ZXN0X2ZsYWdz
X2FyZV9wYXJzZWQgPSBUcnVlCi0gIGZvciBmbGFnIGluIF9mbGFnX21hcDoKLSAgICAjIFRoZSBl
bnZpcm9ubWVudCB2YXJpYWJsZSBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdmFsdWUuCi0gICAgaWYg
ZmxhZy51cHBlcigpIGluIG9zLmVudmlyb246Ci0gICAgICBfZmxhZ19tYXBbZmxhZ10gPSBvcy5l
bnZpcm9uW2ZsYWcudXBwZXIoKV0KLQotICAgICMgVGhlIGNvbW1hbmQgbGluZSBmbGFnIG92ZXJy
aWRlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCi0gICAgaSA9IDEgICMgU2tpcHMgdGhlIHBy
b2dyYW0gbmFtZS4KLSAgICB3aGlsZSBpIDwgbGVuKGFyZ3YpOgotICAgICAgcHJlZml4ID0gJy0t
JyArIGZsYWcgKyAnPScKLSAgICAgIGlmIGFyZ3ZbaV0uc3RhcnRzd2l0aChwcmVmaXgpOgotICAg
ICAgICBfZmxhZ19tYXBbZmxhZ10gPSBhcmd2W2ldW2xlbihwcmVmaXgpOl0KLSAgICAgICAgZGVs
IGFyZ3ZbaV0KLSAgICAgICAgYnJlYWsKLSAgICAgIGVsc2U6Ci0gICAgICAgICMgV2UgZG9uJ3Qg
aW5jcmVtZW50IGkgaW4gY2FzZSB3ZSBqdXN0IGZvdW5kIGEgLS1ndGVzdF8qIGZsYWcKLSAgICAg
ICAgIyBhbmQgcmVtb3ZlZCBpdCBmcm9tIGFyZ3YuCi0gICAgICAgIGkgKz0gMQotCi0KLWRlZiBH
ZXRGbGFnKGZsYWcpOgotICAiIiJSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gZmxhZy4i
IiIKLQotICAjIEluIGNhc2UgR2V0RmxhZygpIGlzIGNhbGxlZCBiZWZvcmUgTWFpbigpLCB3ZSBh
bHdheXMgY2FsbAotICAjIF9QYXJzZUFuZFN0cmlwR1Rlc3RGbGFncygpIGhlcmUgdG8gbWFrZSBz
dXJlIHRoZSAtLWd0ZXN0XyogZmxhZ3MKLSAgIyBhcmUgcGFyc2VkLgotICBfUGFyc2VBbmRTdHJp
cEdUZXN0RmxhZ3Moc3lzLmFyZ3YpCi0KLSAgcmV0dXJuIF9mbGFnX21hcFtmbGFnXQotCi0KLWRl
ZiBHZXRTb3VyY2VEaXIoKToKLSAgIiIiUmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUg
ZGlyZWN0b3J5IHdoZXJlIHRoZSAucHkgZmlsZXMgYXJlLiIiIgotCi0gIHJldHVybiBvcy5wYXRo
LmFic3BhdGgoR2V0RmxhZygnc291cmNlX2RpcicpKQotCi0KLWRlZiBHZXRCdWlsZERpcigpOgot
ICAiIiJSZXR1cm5zIHRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhl
IHRlc3QgYmluYXJpZXMgYXJlLiIiIgotCi0gIHJldHVybiBvcy5wYXRoLmFic3BhdGgoR2V0Rmxh
ZygnYnVpbGRfZGlyJykpCi0KLQotX3RlbXBfZGlyID0gTm9uZQotCi1kZWYgX1JlbW92ZVRlbXBE
aXIoKToKLSAgaWYgX3RlbXBfZGlyOgotICAgIHNodXRpbC5ybXRyZWUoX3RlbXBfZGlyLCBpZ25v
cmVfZXJyb3JzPVRydWUpCi0KLWF0ZXhpdC5yZWdpc3RlcihfUmVtb3ZlVGVtcERpcikKLQotCi1k
ZWYgR2V0VGVtcERpcigpOgotICAiIiJSZXR1cm5zIGEgZGlyZWN0b3J5IGZvciB0ZW1wb3Jhcnkg
ZmlsZXMuIiIiCi0KLSAgZ2xvYmFsIF90ZW1wX2RpcgotICBpZiBub3QgX3RlbXBfZGlyOgotICAg
IF90ZW1wX2RpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQotICByZXR1cm4gX3RlbXBfZGlyCi0KLQot
ZGVmIEdldFRlc3RFeGVjdXRhYmxlUGF0aChleGVjdXRhYmxlX25hbWUsIGJ1aWxkX2Rpcj1Ob25l
KToKLSAgIiIiUmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgdGVzdCBiaW5hcnkgZ2l2
ZW4gaXRzIG5hbWUuCi0KLSAgVGhlIGZ1bmN0aW9uIHdpbGwgcHJpbnQgYSBtZXNzYWdlIGFuZCBh
Ym9ydCB0aGUgcHJvZ3JhbSBpZiB0aGUgcmVzdWx0aW5nIGZpbGUKLSAgZG9lc24ndCBleGlzdC4K
LQotICBBcmdzOgotICAgIGV4ZWN1dGFibGVfbmFtZTogbmFtZSBvZiB0aGUgdGVzdCBiaW5hcnkg
dGhhdCB0aGUgdGVzdCBzY3JpcHQgcnVucy4KLSAgICBidWlsZF9kaXI6ICAgICAgIGRpcmVjdG9y
eSB3aGVyZSB0byBsb29rIGZvciBleGVjdXRhYmxlcywgYnkgZGVmYXVsdAotICAgICAgICAgICAg
ICAgICAgICAgdGhlIHJlc3VsdCBvZiBHZXRCdWlsZERpcigpLgotCi0gIFJldHVybnM6Ci0gICAg
VGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHRlc3QgYmluYXJ5LgotICAiIiIKLQotICBwYXRoID0g
b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihidWlsZF9kaXIgb3IgR2V0QnVpbGREaXIoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZV9uYW1lKSkK
LSAgaWYgKElTX1dJTkRPV1Mgb3IgSVNfQ1lHV0lOKSBhbmQgbm90IHBhdGguZW5kc3dpdGgoJy5l
eGUnKToKLSAgICBwYXRoICs9ICcuZXhlJwotCi0gIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhwYXRo
KToKLSAgICBtZXNzYWdlID0gKAotICAgICAgICAnVW5hYmxlIHRvIGZpbmQgdGhlIHRlc3QgYmlu
YXJ5ICIlcyIuIFBsZWFzZSBtYWtlIHN1cmUgdG8gcHJvdmlkZVxuJwotICAgICAgICAnYSBwYXRo
IHRvIHRoZSBiaW5hcnkgdmlhIHRoZSAtLWJ1aWxkX2RpciBmbGFnIG9yIHRoZSBCVUlMRF9ESVJc
bicKLSAgICAgICAgJ2Vudmlyb25tZW50IHZhcmlhYmxlLicgJSBwYXRoKQotICAgIHN5cy5zdGRv
dXQud3JpdGUobWVzc2FnZSkKLSAgICBzeXMuZXhpdCgxKQotCi0gIHJldHVybiBwYXRoCi0KLQot
ZGVmIEdldEV4aXRTdGF0dXMoZXhpdF9jb2RlKToKLSAgIiIiUmV0dXJucyB0aGUgYXJndW1lbnQg
dG8gZXhpdCgpLCBvciAtMSBpZiBleGl0KCkgd2Fzbid0IGNhbGxlZC4KLQotICBBcmdzOgotICAg
IGV4aXRfY29kZTogdGhlIHJlc3VsdCB2YWx1ZSBvZiBvcy5zeXN0ZW0oY29tbWFuZCkuCi0gICIi
IgotCi0gIGlmIG9zLm5hbWUgPT0gJ250JzoKLSAgICAjIE9uIFdpbmRvd3MsIG9zLldFWElUU1RB
VFVTKCkgZG9lc24ndCB3b3JrIGFuZCBvcy5zeXN0ZW0oKSByZXR1cm5zCi0gICAgIyB0aGUgYXJn
dW1lbnQgdG8gZXhpdCgpIGRpcmVjdGx5LgotICAgIHJldHVybiBleGl0X2NvZGUKLSAgZWxzZToK
LSAgICAjIE9uIFVuaXgsIG9zLldFWElUU1RBVFVTKCkgbXVzdCBiZSB1c2VkIHRvIGV4dHJhY3Qg
dGhlIGV4aXQgc3RhdHVzCi0gICAgIyBmcm9tIHRoZSByZXN1bHQgb2Ygb3Muc3lzdGVtKCkuCi0g
ICAgaWYgb3MuV0lGRVhJVEVEKGV4aXRfY29kZSk6Ci0gICAgICByZXR1cm4gb3MuV0VYSVRTVEFU
VVMoZXhpdF9jb2RlKQotICAgIGVsc2U6Ci0gICAgICByZXR1cm4gLTEKLQotCi1jbGFzcyBTdWJw
cm9jZXNzOgotICBkZWYgX19pbml0X18oc2VsZiwgY29tbWFuZCwgd29ya2luZ19kaXI9Tm9uZSwg
Y2FwdHVyZV9zdGRlcnI9VHJ1ZSwgZW52PU5vbmUpOgotICAgICIiIkNoYW5nZXMgaW50byBhIHNw
ZWNpZmllZCBkaXJlY3RvcnksIGlmIHByb3ZpZGVkLCBhbmQgZXhlY3V0ZXMgYSBjb21tYW5kLgot
Ci0gICAgUmVzdG9yZXMgdGhlIG9sZCBkaXJlY3RvcnkgYWZ0ZXJ3YXJkcy4KLQotICAgIEFyZ3M6
Ci0gICAgICBjb21tYW5kOiAgICAgICAgVGhlIGNvbW1hbmQgdG8gcnVuLCBpbiB0aGUgZm9ybSBv
ZiBzeXMuYXJndi4KLSAgICAgIHdvcmtpbmdfZGlyOiAgICBUaGUgZGlyZWN0b3J5IHRvIGNoYW5n
ZSBpbnRvLgotICAgICAgY2FwdHVyZV9zdGRlcnI6IERldGVybWluZXMgd2hldGhlciB0byBjYXB0
dXJlIHN0ZGVyciBpbiB0aGUgb3V0cHV0IG1lbWJlcgotICAgICAgICAgICAgICAgICAgICAgIG9y
IHRvIGRpc2NhcmQgaXQuCi0gICAgICBlbnY6ICAgICAgICAgICAgRGljdGlvbmFyeSB3aXRoIGVu
dmlyb25tZW50IHRvIHBhc3MgdG8gdGhlIHN1YnByb2Nlc3MuCi0KLSAgICBSZXR1cm5zOgotICAg
ICAgQW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBvdXRjb21lIG9mIHRoZSBleGVjdXRlZCBwcm9j
ZXNzLiBJdCBoYXMgdGhlCi0gICAgICBmb2xsb3dpbmcgYXR0cmlidXRlczoKLSAgICAgICAgdGVy
bWluYXRlZF9ieV9zaWduYWwgICBUcnVlIGlmZiB0aGUgY2hpbGQgcHJvY2VzcyBoYXMgYmVlbiB0
ZXJtaW5hdGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgYSBzaWduYWwuCi0g
ICAgICAgIHNpZ25hbCAgICAgICAgICAgICAgICAgU3lnbmFsIHRoYXQgdGVybWluYXRlZCB0aGUg
Y2hpbGQgcHJvY2Vzcy4KLSAgICAgICAgZXhpdGVkICAgICAgICAgICAgICAgICBUcnVlIGlmZiB0
aGUgY2hpbGQgcHJvY2VzcyBleGl0ZWQgbm9ybWFsbHkuCi0gICAgICAgIGV4aXRfY29kZSAgICAg
ICAgICAgICAgVGhlIGNvZGUgd2l0aCB3aGljaCB0aGUgY2hpbGQgcHJvY2VzcyBleGl0ZWQuCi0g
ICAgICAgIG91dHB1dCAgICAgICAgICAgICAgICAgQ2hpbGQgcHJvY2VzcydzIHN0ZG91dCBhbmQg
c3RkZXJyIG91dHB1dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkIGlu
IGEgc3RyaW5nLgotICAgICIiIgotCi0gICAgIyBUaGUgc3VicHJvY2VzcyBtb2R1bGUgaXMgdGhl
IHByZWZlcnJhYmxlIHdheSBvZiBydW5uaW5nIHByb2dyYW1zCi0gICAgIyBzaW5jZSBpdCBpcyBh
dmFpbGFibGUgYW5kIGJlaGF2ZXMgY29uc2lzdGVudGx5IG9uIGFsbCBwbGF0Zm9ybXMsCi0gICAg
IyBpbmNsdWRpbmcgV2luZG93cy4gQnV0IGl0IGlzIG9ubHkgYXZhaWxhYmxlIHN0YXJ0aW5nIGlu
IHB5dGhvbiAyLjQuCi0gICAgIyBJbiBlYXJsaWVyIHB5dGhvbiB2ZXJzaW9ucywgd2UgcmV2ZXJ0
IHRvIHRoZSBwb3BlbjIgbW9kdWxlLCB3aGljaCBpcwotICAgICMgYXZhaWxhYmxlIGluIHB5dGhv
biAyLjAgYW5kIGxhdGVyIGJ1dCBkb2Vzbid0IHByb3ZpZGUgcmVxdWlyZWQKLSAgICAjIGZ1bmN0
aW9uYWxpdHkgKFBvcGVuNCkgdW5kZXIgV2luZG93cy4gVGhpcyBhbGxvd3MgdXMgdG8gc3VwcG9y
dCBNYWMKLSAgICAjIE9TIFggMTAuNCBUaWdlciwgd2hpY2ggaGFzIHB5dGhvbiAyLjMgaW5zdGFs
bGVkLgotICAgIGlmIF9TVUJQUk9DRVNTX01PRFVMRV9BVkFJTEFCTEU6Ci0gICAgICBpZiBjYXB0
dXJlX3N0ZGVycjoKLSAgICAgICAgc3RkZXJyID0gc3VicHJvY2Vzcy5TVERPVVQKLSAgICAgIGVs
c2U6Ci0gICAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuUElQRQotCi0gICAgICBwID0gc3VicHJv
Y2Vzcy5Qb3Blbihjb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1
YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IGN3ZD13b3JraW5nX2RpciwgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUsIGVudj1lbnYpCi0gICAg
ICAjIGNvbW11bmljYXRlIHJldHVybnMgYSB0dXBsZSB3aXRoIHRoZSBmaWxlIG9iamVjdCBmb3Ig
dGhlIGNoaWxkJ3MKLSAgICAgICMgb3V0cHV0LgotICAgICAgc2VsZi5vdXRwdXQgPSBwLmNvbW11
bmljYXRlKClbMF0KLSAgICAgIHNlbGYuX3JldHVybl9jb2RlID0gcC5yZXR1cm5jb2RlCi0gICAg
ZWxzZToKLSAgICAgIG9sZF9kaXIgPSBvcy5nZXRjd2QoKQotCi0gICAgICBkZWYgX1JlcGxhY2VF
bnZEaWN0KGRlc3QsIHNyYyk6Ci0gICAgICAgICMgQ2hhbmdlcyBtYWRlIGJ5IG9zLmVudmlyb24u
Y2xlYXIgYXJlIG5vdCBpbmhlcml0YWJsZSBieSBjaGlsZAotICAgICAgICAjIHByb2Nlc3NlcyB1
bnRpbCBQeXRob24gMi42LiBUbyBwcm9kdWNlIGluaGVyaXRhYmxlIGNoYW5nZXMgd2UgaGF2ZQot
ICAgICAgICAjIHRvIGRlbGV0ZSBlbnZpcm9ubWVudCBpdGVtcyB3aXRoIHRoZSBkZWwgc3RhdGVt
ZW50LgotICAgICAgICBmb3Iga2V5IGluIGRlc3Qua2V5cygpOgotICAgICAgICAgIGRlbCBkZXN0
W2tleV0KLSAgICAgICAgZGVzdC51cGRhdGUoc3JjKQotCi0gICAgICAjIFdoZW4gJ2VudicgaXMg
bm90IE5vbmUsIGJhY2t1cCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCByZXBsYWNlCi0g
ICAgICAjIHRoZW0gd2l0aCB0aGUgcGFzc2VkICdlbnYnLiBXaGVuICdlbnYnIGlzIE5vbmUsIHdl
IHNpbXBseSB1c2UgdGhlCi0gICAgICAjIGN1cnJlbnQgJ29zLmVudmlyb24nIGZvciBjb21wYXRp
YmlsaXR5IHdpdGggdGhlIHN1YnByb2Nlc3MuUG9wZW4KLSAgICAgICMgc2VtYW50aWNzIHVzZWQg
YWJvdmUuCi0gICAgICBpZiBlbnYgaXMgbm90IE5vbmU6Ci0gICAgICAgIG9sZF9lbnZpcm9uID0g
b3MuZW52aXJvbi5jb3B5KCkKLSAgICAgICAgX1JlcGxhY2VFbnZEaWN0KG9zLmVudmlyb24sIGVu
dikKLQotICAgICAgdHJ5OgotICAgICAgICBpZiB3b3JraW5nX2RpciBpcyBub3QgTm9uZToKLSAg
ICAgICAgICBvcy5jaGRpcih3b3JraW5nX2RpcikKLSAgICAgICAgaWYgY2FwdHVyZV9zdGRlcnI6
Ci0gICAgICAgICAgcCA9IHBvcGVuMi5Qb3BlbjQoY29tbWFuZCkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICBwID0gcG9wZW4yLlBvcGVuMyhjb21tYW5kKQotICAgICAgICBwLnRvY2hpbGQuY2xv
c2UoKQotICAgICAgICBzZWxmLm91dHB1dCA9IHAuZnJvbWNoaWxkLnJlYWQoKQotICAgICAgICBy
ZXRfY29kZSA9IHAud2FpdCgpCi0gICAgICBmaW5hbGx5OgotICAgICAgICBvcy5jaGRpcihvbGRf
ZGlyKQotCi0gICAgICAgICMgUmVzdG9yZSB0aGUgb2xkIGVudmlyb25tZW50IHZhcmlhYmxlcwot
ICAgICAgICAjIGlmIHRoZXkgd2VyZSByZXBsYWNlZC4KLSAgICAgICAgaWYgZW52IGlzIG5vdCBO
b25lOgotICAgICAgICAgIF9SZXBsYWNlRW52RGljdChvcy5lbnZpcm9uLCBvbGRfZW52aXJvbikK
LQotICAgICAgIyBDb252ZXJ0cyByZXRfY29kZSB0byBtYXRjaCB0aGUgc2VtYW50aWNzIG9mCi0g
ICAgICAjIHN1YnByb2Nlc3MuUG9wZW4ucmV0dXJuY29kZS4KLSAgICAgIGlmIG9zLldJRlNJR05B
TEVEKHJldF9jb2RlKToKLSAgICAgICAgc2VsZi5fcmV0dXJuX2NvZGUgPSAtb3MuV1RFUk1TSUco
cmV0X2NvZGUpCi0gICAgICBlbHNlOiAgIyBvcy5XSUZFWElURUQocmV0X2NvZGUpIHNob3VsZCBy
ZXR1cm4gVHJ1ZSBoZXJlLgotICAgICAgICBzZWxmLl9yZXR1cm5fY29kZSA9IG9zLldFWElUU1RB
VFVTKHJldF9jb2RlKQotCi0gICAgaWYgc2VsZi5fcmV0dXJuX2NvZGUgPCAwOgotICAgICAgc2Vs
Zi50ZXJtaW5hdGVkX2J5X3NpZ25hbCA9IFRydWUKLSAgICAgIHNlbGYuZXhpdGVkID0gRmFsc2UK
LSAgICAgIHNlbGYuc2lnbmFsID0gLXNlbGYuX3JldHVybl9jb2RlCi0gICAgZWxzZToKLSAgICAg
IHNlbGYudGVybWluYXRlZF9ieV9zaWduYWwgPSBGYWxzZQotICAgICAgc2VsZi5leGl0ZWQgPSBU
cnVlCi0gICAgICBzZWxmLmV4aXRfY29kZSA9IHNlbGYuX3JldHVybl9jb2RlCi0KLQotZGVmIE1h
aW4oKToKLSAgIiIiUnVucyB0aGUgdW5pdCB0ZXN0LiIiIgotCi0gICMgV2UgbXVzdCBjYWxsIF9Q
YXJzZUFuZFN0cmlwR1Rlc3RGbGFncygpIGJlZm9yZSBjYWxsaW5nCi0gICMgdW5pdHRlc3QubWFp
bigpLiAgT3RoZXJ3aXNlIHRoZSBsYXR0ZXIgd2lsbCBiZSBjb25mdXNlZCBieSB0aGUKLSAgIyAt
LWd0ZXN0XyogZmxhZ3MuCi0gIF9QYXJzZUFuZFN0cmlwR1Rlc3RGbGFncyhzeXMuYXJndikKLSAg
IyBUaGUgdGVzdGVkIGJpbmFyaWVzIHNob3VsZCBub3QgYmUgd3JpdGluZyBYTUwgb3V0cHV0IGZp
bGVzIHVubGVzcyB0aGUKLSAgIyBzY3JpcHQgZXhwbGljaXRseSBpbnN0cnVjdHMgdGhlbSB0by4K
LSAgIyBUT0RPKHZsYWRsQGdvb2dsZS5jb20pOiBNb3ZlIHRoaXMgaW50byBTdWJwcm9jZXNzIHdo
ZW4gd2UgaW1wbGVtZW50Ci0gICMgcGFzc2luZyBlbnZpcm9ubWVudCBpbnRvIGl0IGFzIGEgcGFy
YW1ldGVyLgotICBpZiBHVEVTVF9PVVRQVVRfVkFSX05BTUUgaW4gb3MuZW52aXJvbjoKLSAgICBk
ZWwgb3MuZW52aXJvbltHVEVTVF9PVVRQVVRfVkFSX05BTUVdCi0KLSAgX3Rlc3RfbW9kdWxlLm1h
aW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF90
aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90
ZXN0L2d0ZXN0X3Rocm93X29uX2ZhaWx1cmVfZXhfdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOGQ0NmM3NmYxNjEyMWZkMWY0N2M5NzQxMGYzZTA4ZWY0YTExNmVkYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFy
dHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3Rocm93X29uX2ZhaWx1cmVfZXhfdGVzdC5jYworKysg
L2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5j
LgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8g
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBX
YW4pCi0KLS8vIFRlc3RzIEdvb2dsZSBUZXN0J3MgdGhyb3ctb24tZmFpbHVyZSBtb2RlIHdpdGgg
ZXhjZXB0aW9ucyBlbmFibGVkLgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotI2luY2x1
ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0j
aW5jbHVkZSA8c3RkZXhjZXB0PgotCi0vLyBQcmludHMgdGhlIGdpdmVuIGZhaWx1cmUgbWVzc2Fn
ZSBhbmQgZXhpdHMgdGhlIHByb2dyYW0gd2l0aAotLy8gbm9uLXplcm8uICBXZSB1c2UgdGhpcyBp
bnN0ZWFkIG9mIGEgR29vZ2xlIFRlc3QgYXNzZXJ0aW9uIHRvCi0vLyBpbmRpY2F0ZSBhIGZhaWx1
cmUsIGFzIHRoZSBsYXR0ZXIgaXMgYmVlbiB0ZXN0ZWQgYW5kIGNhbm5vdCBiZQotLy8gcmVsaWVk
IG9uLgotdm9pZCBGYWlsKGNvbnN0IGNoYXIqIG1zZykgewotICBwcmludGYoIkZBSUxVUkU6ICVz
XG4iLCBtc2cpOwotICBmZmx1c2goc3Rkb3V0KTsKLSAgZXhpdCgxKTsKLX0KLQotLy8gVGVzdHMg
dGhhdCBhbiBhc3NlcnRpb24gZmFpbHVyZSB0aHJvd3MgYSBzdWJjbGFzcyBvZgotLy8gc3RkOjpy
dW50aW1lX2Vycm9yLgotdm9pZCBUZXN0RmFpbHVyZVRocm93c1J1bnRpbWVFcnJvcigpIHsKLSAg
dGVzdGluZzo6R1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKSA9IHRydWU7Ci0KLSAgLy8gQSBz
dWNjZXNzZnVsIGFzc2VydGlvbiBzaG91bGRuJ3QgdGhyb3cuCi0gIHRyeSB7Ci0gICAgRVhQRUNU
X0VRKDMsIDMpOwotICB9IGNhdGNoKC4uLikgewotICAgIEZhaWwoIkEgc3VjY2Vzc2Z1bCBhc3Nl
cnRpb24gd3JvbmdmdWxseSB0aHJldy4iKTsKLSAgfQotCi0gIC8vIEEgZmFpbGVkIGFzc2VydGlv
biBzaG91bGQgdGhyb3cgYSBzdWJjbGFzcyBvZiBzdGQ6OnJ1bnRpbWVfZXJyb3IuCi0gIHRyeSB7
Ci0gICAgRVhQRUNUX0VRKDIsIDMpIDw8ICJFeHBlY3RlZCBmYWlsdXJlIjsKLSAgfSBjYXRjaChj
b25zdCBzdGQ6OnJ1bnRpbWVfZXJyb3ImIGUpIHsKLSAgICBpZiAoc3Ryc3RyKGUud2hhdCgpLCAi
RXhwZWN0ZWQgZmFpbHVyZSIpICE9IE5VTEwpCi0gICAgICByZXR1cm47Ci0KLSAgICBwcmludGYo
IiVzIiwKLSAgICAgICAgICAgIkEgZmFpbGVkIGFzc2VydGlvbiBkaWQgdGhyb3cgYW4gZXhjZXB0
aW9uIG9mIHRoZSByaWdodCB0eXBlLCAiCi0gICAgICAgICAgICJidXQgdGhlIG1lc3NhZ2UgaXMg
aW5jb3JyZWN0LiAgSW5zdGVhZCBvZiBjb250YWluaW5nIFwiRXhwZWN0ZWQgIgotICAgICAgICAg
ICAiZmFpbHVyZVwiLCBpdCBpczpcbiIpOwotICAgIEZhaWwoZS53aGF0KCkpOwotICB9IGNhdGNo
KC4uLikgewotICAgIEZhaWwoIkEgZmFpbGVkIGFzc2VydGlvbiB0aHJldyB0aGUgd3JvbmcgdHlw
ZSBvZiBleGNlcHRpb24uIik7Ci0gIH0KLSAgRmFpbCgiQSBmYWlsZWQgYXNzZXJ0aW9uIHNob3Vs
ZCd2ZSB0aHJvd24gYnV0IGRpZG4ndC4iKTsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KSB7Ci0gIHRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKLQotICAv
LyBXZSB3YW50IHRvIGVuc3VyZSB0aGF0IHBlb3BsZSBjYW4gdXNlIEdvb2dsZSBUZXN0IGFzc2Vy
dGlvbnMgaW4KLSAgLy8gb3RoZXIgdGVzdGluZyBmcmFtZXdvcmtzLCBhcyBsb25nIGFzIHRoZXkg
aW5pdGlhbGl6ZSBHb29nbGUgVGVzdAotICAvLyBwcm9wZXJseSBhbmQgc2V0IHRoZSB0aHJvd24t
b24tZmFpbHVyZSBtb2RlLiAgVGhlcmVmb3JlLCB3ZSBkb24ndAotICAvLyB1c2UgR29vZ2xlIFRl
c3QncyBjb25zdHJ1Y3RzIGZvciBkZWZpbmluZyBhbmQgcnVubmluZyB0ZXN0cwotICAvLyAoZS5n
LiBURVNUIGFuZCBSVU5fQUxMX1RFU1RTKSBoZXJlLgotCi0gIFRlc3RGYWlsdXJlVGhyb3dzUnVu
dGltZUVycm9yKCk7Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX3Rlc3QucHkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3Rocm93X29uX2ZhaWx1cmVfdGVzdC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U3NzQwY2FiYjhhY2ZkMjEyYzM3ZWI4MTY5
MzcyMjI2MTc0M2E3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3Rocm93X29uX2ZhaWx1
cmVfdGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE3MSArMCwwIEBACi0jIS91c3IvYmluL2Vu
diBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJUZXN0cyBHb29nbGUgVGVzdCdzIHRo
cm93LW9uLWZhaWx1cmUgbW9kZSB3aXRoIGV4Y2VwdGlvbnMgZGlzYWJsZWQuCi0KLVRoaXMgc2Ny
aXB0IGludm9rZXMgZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV90ZXN0XyAoYSBwcm9ncmFtIHdyaXR0
ZW4gd2l0aAotR29vZ2xlIFRlc3QpIHdpdGggZGlmZmVyZW50IGVudmlyb25tZW50cyBhbmQgY29t
bWFuZCBsaW5lIGZsYWdzLgotIiIiCi0KLV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpo
YW55b25nIFdhbiknCi0KLWltcG9ydCBvcwotaW1wb3J0IGd0ZXN0X3Rlc3RfdXRpbHMKLQotCi0j
IENvbnN0YW50cy4KLQotIyBUaGUgY29tbWFuZCBsaW5lIGZsYWcgZm9yIGVuYWJsaW5nL2Rpc2Fi
bGluZyB0aGUgdGhyb3ctb24tZmFpbHVyZSBtb2RlLgotVEhST1dfT05fRkFJTFVSRSA9ICdndGVz
dF90aHJvd19vbl9mYWlsdXJlJwotCi0jIFBhdGggdG8gdGhlIGd0ZXN0X3Rocm93X29uX2ZhaWx1
cmVfdGVzdF8gcHJvZ3JhbSwgY29tcGlsZWQgd2l0aAotIyBleGNlcHRpb25zIGRpc2FibGVkLgot
RVhFX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgKLSAgICAn
Z3Rlc3RfdGhyb3dfb25fZmFpbHVyZV90ZXN0XycpCi0KLQotIyBVdGlsaXRpZXMuCi0KLQotZGVm
IFNldEVudlZhcihlbnZfdmFyLCB2YWx1ZSk6Ci0gICIiIlNldHMgYW4gZW52aXJvbm1lbnQgdmFy
aWFibGUgdG8gYSBnaXZlbiB2YWx1ZTsgdW5zZXRzIGl0IHdoZW4gdGhlCi0gIGdpdmVuIHZhbHVl
IGlzIE5vbmUuCi0gICIiIgotCi0gIGVudl92YXIgPSBlbnZfdmFyLnVwcGVyKCkKLSAgaWYgdmFs
dWUgaXMgbm90IE5vbmU6Ci0gICAgb3MuZW52aXJvbltlbnZfdmFyXSA9IHZhbHVlCi0gIGVsaWYg
ZW52X3ZhciBpbiBvcy5lbnZpcm9uOgotICAgIGRlbCBvcy5lbnZpcm9uW2Vudl92YXJdCi0KLQot
ZGVmIFJ1bihjb21tYW5kKToKLSAgIiIiUnVucyBhIGNvbW1hbmQ7IHJldHVybnMgVHJ1ZS9GYWxz
ZSBpZiBpdHMgZXhpdCBjb2RlIGlzL2lzbid0IDAuIiIiCi0KLSAgcHJpbnQoJ1J1bm5pbmcgIiVz
Ii4gLiAuJyAlICcgJy5qb2luKGNvbW1hbmQpKQotICBwID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJw
cm9jZXNzKGNvbW1hbmQpCi0gIHJldHVybiBwLmV4aXRlZCBhbmQgcC5leGl0X2NvZGUgPT0gMAot
Ci0KLSMgVGhlIHRlc3RzLiAgVE9ETyh3YW5AZ29vZ2xlLmNvbSk6IHJlZmFjdG9yIHRoZSBjbGFz
cyB0byBzaGFyZSBjb21tb24KLSMgbG9naWMgd2l0aCBjb2RlIGluIGd0ZXN0X2JyZWFrX29uX2Zh
aWx1cmVfdW5pdHRlc3QucHkuCi1jbGFzcyBUaHJvd09uRmFpbHVyZVRlc3QoZ3Rlc3RfdGVzdF91
dGlscy5UZXN0Q2FzZSk6Ci0gICIiIlRlc3RzIHRoZSB0aHJvdy1vbi1mYWlsdXJlIG1vZGUuIiIi
Ci0KLSAgZGVmIFJ1bkFuZFZlcmlmeShzZWxmLCBlbnZfdmFyX3ZhbHVlLCBmbGFnX3ZhbHVlLCBz
aG91bGRfZmFpbCk6Ci0gICAgIiIiUnVucyBndGVzdF90aHJvd19vbl9mYWlsdXJlX3Rlc3RfIGFu
ZCB2ZXJpZmllcyB0aGF0IGl0IGRvZXMKLSAgICAob3IgZG9lcyBub3QpIGV4aXQgd2l0aCBhIG5v
bi16ZXJvIGNvZGUuCi0KLSAgICBBcmdzOgotICAgICAgZW52X3Zhcl92YWx1ZTogICAgdmFsdWUg
b2YgdGhlIEdURVNUX0JSRUFLX09OX0ZBSUxVUkUgZW52aXJvbm1lbnQKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZhcmlhYmxlOyBOb25lIGlmIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgdW5zZXQu
Ci0gICAgICBmbGFnX3ZhbHVlOiAgICAgICB2YWx1ZSBvZiB0aGUgLS1ndGVzdF9icmVha19vbl9m
YWlsdXJlIGZsYWc7Ci0gICAgICAgICAgICAgICAgICAgICAgICBOb25lIGlmIHRoZSBmbGFnIHNo
b3VsZCBub3QgYmUgcHJlc2VudC4KLSAgICAgIHNob3VsZF9mYWlsOiAgICAgIFRydWUgaWZmIHRo
ZSBwcm9ncmFtIGlzIGV4cGVjdGVkIHRvIGZhaWwuCi0gICAgIiIiCi0KLSAgICBTZXRFbnZWYXIo
VEhST1dfT05fRkFJTFVSRSwgZW52X3Zhcl92YWx1ZSkKLQotICAgIGlmIGVudl92YXJfdmFsdWUg
aXMgTm9uZToKLSAgICAgIGVudl92YXJfdmFsdWVfbXNnID0gJyBpcyBub3Qgc2V0JwotICAgIGVs
c2U6Ci0gICAgICBlbnZfdmFyX3ZhbHVlX21zZyA9ICc9JyArIGVudl92YXJfdmFsdWUKLQotICAg
IGlmIGZsYWdfdmFsdWUgaXMgTm9uZToKLSAgICAgIGZsYWcgPSAnJwotICAgIGVsaWYgZmxhZ192
YWx1ZSA9PSAnMCc6Ci0gICAgICBmbGFnID0gJy0tJXM9MCcgJSBUSFJPV19PTl9GQUlMVVJFCi0g
ICAgZWxzZToKLSAgICAgIGZsYWcgPSAnLS0lcycgJSBUSFJPV19PTl9GQUlMVVJFCi0KLSAgICBj
b21tYW5kID0gW0VYRV9QQVRIXQotICAgIGlmIGZsYWc6Ci0gICAgICBjb21tYW5kLmFwcGVuZChm
bGFnKQotCi0gICAgaWYgc2hvdWxkX2ZhaWw6Ci0gICAgICBzaG91bGRfb3Jfbm90ID0gJ3Nob3Vs
ZCcKLSAgICBlbHNlOgotICAgICAgc2hvdWxkX29yX25vdCA9ICdzaG91bGQgbm90JwotCi0gICAg
ZmFpbGVkID0gbm90IFJ1bihjb21tYW5kKQotCi0gICAgU2V0RW52VmFyKFRIUk9XX09OX0ZBSUxV
UkUsIE5vbmUpCi0KLSAgICBtc2cgPSAoJ3doZW4gJXMlcywgYW4gYXNzZXJ0aW9uIGZhaWx1cmUg
aW4gIiVzIiAlcyBjYXVzZSBhIG5vbi16ZXJvICcKLSAgICAgICAgICAgJ2V4aXQgY29kZS4nICUK
LSAgICAgICAgICAgKFRIUk9XX09OX0ZBSUxVUkUsIGVudl92YXJfdmFsdWVfbXNnLCAnICcuam9p
bihjb21tYW5kKSwKLSAgICAgICAgICAgIHNob3VsZF9vcl9ub3QpKQotICAgIHNlbGYuYXNzZXJ0
XyhmYWlsZWQgPT0gc2hvdWxkX2ZhaWwsIG1zZykKLQotICBkZWYgdGVzdERlZmF1bHRCZWhhdmlv
cihzZWxmKToKLSAgICAiIiJUZXN0cyB0aGUgYmVoYXZpb3Igb2YgdGhlIGRlZmF1bHQgbW9kZS4i
IiIKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KGVudl92YXJfdmFsdWU9Tm9uZSwgZmxhZ192YWx1
ZT1Ob25lLCBzaG91bGRfZmFpbD1GYWxzZSkKLQotICBkZWYgdGVzdFRocm93T25GYWlsdXJlRW52
VmFyKHNlbGYpOgotICAgICIiIlRlc3RzIHVzaW5nIHRoZSBHVEVTVF9USFJPV19PTl9GQUlMVVJF
IGVudmlyb25tZW50IHZhcmlhYmxlLiIiIgotCi0gICAgc2VsZi5SdW5BbmRWZXJpZnkoZW52X3Zh
cl92YWx1ZT0nMCcsCi0gICAgICAgICAgICAgICAgICAgICAgZmxhZ192YWx1ZT1Ob25lLAotICAg
ICAgICAgICAgICAgICAgICAgIHNob3VsZF9mYWlsPUZhbHNlKQotICAgIHNlbGYuUnVuQW5kVmVy
aWZ5KGVudl92YXJfdmFsdWU9JzEnLAotICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWU9
Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBzaG91bGRfZmFpbD1UcnVlKQotCi0gIGRlZiB0
ZXN0VGhyb3dPbkZhaWx1cmVGbGFnKHNlbGYpOgotICAgICIiIlRlc3RzIHVzaW5nIHRoZSAtLWd0
ZXN0X3Rocm93X29uX2ZhaWx1cmUgZmxhZy4iIiIKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KGVu
dl92YXJfdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBmbGFnX3ZhbHVlPScwJywK
LSAgICAgICAgICAgICAgICAgICAgICBzaG91bGRfZmFpbD1GYWxzZSkKLSAgICBzZWxmLlJ1bkFu
ZFZlcmlmeShlbnZfdmFyX3ZhbHVlPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgZmxhZ192
YWx1ZT0nMScsCi0gICAgICAgICAgICAgICAgICAgICAgc2hvdWxkX2ZhaWw9VHJ1ZSkKLQotICBk
ZWYgdGVzdFRocm93T25GYWlsdXJlRmxhZ092ZXJyaWRlc0VudlZhcihzZWxmKToKLSAgICAiIiJU
ZXN0cyB0aGF0IC0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSBvdmVycmlkZXMgR1RFU1RfVEhST1df
T05fRkFJTFVSRS4iIiIKLQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KGVudl92YXJfdmFsdWU9JzAn
LAotICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWU9JzAnLAotICAgICAgICAgICAgICAg
ICAgICAgIHNob3VsZF9mYWlsPUZhbHNlKQotICAgIHNlbGYuUnVuQW5kVmVyaWZ5KGVudl92YXJf
dmFsdWU9JzAnLAotICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWU9JzEnLAotICAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZF9mYWlsPVRydWUpCi0gICAgc2VsZi5SdW5BbmRWZXJpZnko
ZW52X3Zhcl92YWx1ZT0nMScsCi0gICAgICAgICAgICAgICAgICAgICAgZmxhZ192YWx1ZT0nMCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgc2hvdWxkX2ZhaWw9RmFsc2UpCi0gICAgc2VsZi5SdW5B
bmRWZXJpZnkoZW52X3Zhcl92YWx1ZT0nMScsCi0gICAgICAgICAgICAgICAgICAgICAgZmxhZ192
YWx1ZT0nMScsCi0gICAgICAgICAgICAgICAgICAgICAgc2hvdWxkX2ZhaWw9VHJ1ZSkKLQotCi1p
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICBndGVzdF90ZXN0X3V0aWxzLk1haW4oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF90aHJvd19vbl9m
YWlsdXJlX3Rlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF90
aHJvd19vbl9mYWlsdXJlX3Rlc3RfLmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
Yjg4ZmUzZDliM2I4YjVmMGUzNjRkYjBkZDY5ZmY3ZGIxOGFhNjNjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0
L3Rlc3QvZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV90ZXN0Xy5jYworKysgL2Rldi9udWxsCkBAIC0x
LDcyICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoK
LS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwot
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LS8vCi0vLyBBdXRob3I6IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0KLS8vIFRlc3Rz
IEdvb2dsZSBUZXN0J3MgdGhyb3ctb24tZmFpbHVyZSBtb2RlIHdpdGggZXhjZXB0aW9ucyBkaXNh
YmxlZC4KLS8vCi0vLyBUaGlzIHByb2dyYW0gbXVzdCBiZSBjb21waWxlZCB3aXRoIGV4Y2VwdGlv
bnMgZGlzYWJsZWQuICBJdCB3aWxsIGJlCi0vLyBpbnZva2VkIGJ5IGd0ZXN0X3Rocm93X29uX2Zh
aWx1cmVfdGVzdC5weSwgYW5kIGlzIGV4cGVjdGVkIHRvIGV4aXQKLS8vIHdpdGggbm9uLXplcm8g
aW4gdGhlIHRocm93LW9uLWZhaWx1cmUgbW9kZSBvciAwIG90aGVyd2lzZS4KLQotI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCi0KLSNpbmNsdWRlIDxzdGRpby5oPiAgICAgICAgICAgICAgICAgICAg
ICAvLyBmb3IgZmZsdXNoLCBmcHJpbnRmLCBOVUxMLCBldGMuCi0jaW5jbHVkZSA8c3RkbGliLmg+
ICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGV4aXQKLSNpbmNsdWRlIDxleGNlcHRpb24+ICAg
ICAgICAgICAgICAgICAgICAvLyBmb3Igc2V0X3Rlcm1pbmF0ZQotCi0vLyBUaGlzIHRlcm1pbmF0
ZSBoYW5kbGVyIGFib3J0cyB0aGUgcHJvZ3JhbSB1c2luZyBleGl0KCkgcmF0aGVyIHRoYW4gYWJv
cnQoKS4KLS8vIFRoaXMgYXZvaWRzIHNob3dpbmcgcG9wLXVwcyBvbiBXaW5kb3dzIHN5c3RlbXMg
YW5kIGNvcmUgZHVtcHMgb24gVW5peC1saWtlCi0vLyBvbmVzLgotdm9pZCBUZXJtaW5hdGVIYW5k
bGVyKCkgewotICBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCAiVW5oYW5kbGVkIEMrKyBleGNlcHRp
b24gdGVybWluYXRpbmcgdGhlIHByb2dyYW0uIik7Ci0gIGZmbHVzaChOVUxMKTsKLSAgZXhpdCgx
KTsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7Ci0jaWYgR1RFU1RfSEFT
X0VYQ0VQVElPTlMKLSAgc3RkOjpzZXRfdGVybWluYXRlKCZUZXJtaW5hdGVIYW5kbGVyKTsKLSNl
bmRpZgotICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0KLSAgLy8gV2Ug
d2FudCB0byBlbnN1cmUgdGhhdCBwZW9wbGUgY2FuIHVzZSBHb29nbGUgVGVzdCBhc3NlcnRpb25z
IGluCi0gIC8vIG90aGVyIHRlc3RpbmcgZnJhbWV3b3JrcywgYXMgbG9uZyBhcyB0aGV5IGluaXRp
YWxpemUgR29vZ2xlIFRlc3QKLSAgLy8gcHJvcGVybHkgYW5kIHNldCB0aGUgdGhyb3ctb24tZmFp
bHVyZSBtb2RlLiAgVGhlcmVmb3JlLCB3ZSBkb24ndAotICAvLyB1c2UgR29vZ2xlIFRlc3QncyBj
b25zdHJ1Y3RzIGZvciBkZWZpbmluZyBhbmQgcnVubmluZyB0ZXN0cwotICAvLyAoZS5nLiBURVNU
IGFuZCBSVU5fQUxMX1RFU1RTKSBoZXJlLgotCi0gIC8vIEluIHRoZSB0aHJvdy1vbi1mYWlsdXJl
IG1vZGUgd2l0aCBleGNlcHRpb25zIGRpc2FibGVkLCB0aGlzCi0gIC8vIGFzc2VydGlvbiB3aWxs
IGNhdXNlIHRoZSBwcm9ncmFtIHRvIGV4aXQgd2l0aCBhIG5vbi16ZXJvIGNvZGUuCi0gIEVYUEVD
VF9FUSgyLCAzKTsKLQotICAvLyBXaGVuIG5vdCBpbiB0aGUgdGhyb3ctb24tZmFpbHVyZSBtb2Rl
LCB0aGUgY29udHJvbCB3aWxsIHJlYWNoCi0gIC8vIGhlcmUuCi0gIHJldHVybiAwOwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF91bmluaXRpYWxp
emVkX3Rlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3VuaW5p
dGlhbGl6ZWRfdGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDM1ODM3MDA5
N2ZiODRjNTNhYWNmZjMxMzcwYTQ1YTI0Zjg3ZjI2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0
ZXN0X3VuaW5pdGlhbGl6ZWRfdGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIlZlcmlmaWVz
IHRoYXQgR29vZ2xlIFRlc3Qgd2FybnMgdGhlIHVzZXIgd2hlbiBub3QgaW5pdGlhbGl6ZWQgcHJv
cGVybHkuIiIiCi0KLV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikn
Ci0KLWltcG9ydCBndGVzdF90ZXN0X3V0aWxzCi0KLQotQ09NTUFORCA9IGd0ZXN0X3Rlc3RfdXRp
bHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKCdndGVzdF91bmluaXRpYWxpemVkX3Rlc3RfJykKLQot
Ci1kZWYgQXNzZXJ0KGNvbmRpdGlvbik6Ci0gIGlmIG5vdCBjb25kaXRpb246Ci0gICAgcmFpc2Ug
QXNzZXJ0aW9uRXJyb3IKLQotCi1kZWYgQXNzZXJ0RXEoZXhwZWN0ZWQsIGFjdHVhbCk6Ci0gIGlm
IGV4cGVjdGVkICE9IGFjdHVhbDoKLSAgICBwcmludCgnRXhwZWN0ZWQ6ICVzJyAlIChleHBlY3Rl
ZCwpKQotICAgIHByaW50KCcgIEFjdHVhbDogJXMnICUgKGFjdHVhbCwpKQotICAgIHJhaXNlIEFz
c2VydGlvbkVycm9yCi0KLQotZGVmIFRlc3RFeGl0Q29kZUFuZE91dHB1dChjb21tYW5kKToKLSAg
IiIiUnVucyB0aGUgZ2l2ZW4gY29tbWFuZCBhbmQgdmVyaWZpZXMgaXRzIGV4aXQgY29kZSBhbmQg
b3V0cHV0LiIiIgotCi0gICMgVmVyaWZpZXMgdGhhdCAnY29tbWFuZCcgZXhpdHMgd2l0aCBjb2Rl
IDEuCi0gIHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoY29tbWFuZCkKLSAgQXNzZXJ0
KHAuZXhpdGVkKQotICBBc3NlcnRFcSgxLCBwLmV4aXRfY29kZSkKLSAgQXNzZXJ0KCdJbml0R29v
Z2xlVGVzdCcgaW4gcC5vdXRwdXQpCi0KLQotY2xhc3MgR1Rlc3RVbmluaXRpYWxpemVkVGVzdChn
dGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKLSAgZGVmIHRlc3RFeGl0Q29kZUFuZE91dHB1dChz
ZWxmKToKLSAgICBUZXN0RXhpdENvZGVBbmRPdXRwdXQoQ09NTUFORCkKLQotCi1pZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgotICBndGVzdF90ZXN0X3V0aWxzLk1haW4oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF91bmluaXRpYWxpemVkX3Rlc3Rf
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF91bmluaXRpYWxpemVk
X3Rlc3RfLmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDMxNjk4N2ZiYjVkNmRj
MDg5MDkyNTVhMzcyOGNlMzVhMmVjN2IyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfdW5p
bml0aWFsaXplZF90ZXN0Xy5jYworKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8vIENv
cHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0v
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJp
YnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8g
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IHdh
bkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgot
Ci1URVNUKER1bW15VGVzdCwgRHVtbXkpIHsKLSAgLy8gVGhpcyB0ZXN0IGRvZXNuJ3QgdmVyaWZ5
IGFueXRoaW5nLiAgV2UganVzdCBuZWVkIGl0IHRvIGNyZWF0ZSBhCi0gIC8vIHJlYWxpc3RpYyBz
dGFnZSBmb3IgdGVzdGluZyB0aGUgYmVoYXZpb3Igb2YgR29vZ2xlIFRlc3Qgd2hlbgotICAvLyBS
VU5fQUxMX1RFU1RTKCkgaXMgY2FsbGVkIHdpdGhvdXQgdGVzdGluZzo6SW5pdEdvb2dsZVRlc3Qo
KSBiZWluZwotICAvLyBjYWxsZWQgZmlyc3QuCi19Ci0KLWludCBtYWluKCkgewotICByZXR1cm4g
UlVOX0FMTF9URVNUUygpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRl
c3QvdGVzdC9ndGVzdF91bml0dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rl
c3QvZ3Rlc3RfdW5pdHRlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzOTQ1
NjIyZjIyZTk0ODgxNzgxM2Y4Y2IwOGE4NDNkMTI3MjQ0OGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVz
dC9ndGVzdF91bml0dGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDc3MDkgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IDIwMDUsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8K
LS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0
cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0v
LyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjog
d2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLS8vCi0vLyBUZXN0cyBmb3IgR29vZ2xlIFRl
c3QgaXRzZWxmLiAgVGhpcyB2ZXJpZmllcyB0aGF0IHRoZSBiYXNpYyBjb25zdHJ1Y3RzIG9mCi0v
LyBHb29nbGUgVGVzdCB3b3JrLgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotLy8gVmVy
aWZpZXMgdGhhdCB0aGUgY29tbWFuZCBsaW5lIGZsYWcgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3Nl
ZAotLy8gaW4gY29kZSBvbmNlIDxndGVzdC9ndGVzdC5oPiBoYXMgYmVlbiAjaW5jbHVkZWQuCi0v
LyBEbyBub3QgbW92ZSBpdCBhZnRlciBvdGhlciAjaW5jbHVkZXMuCi1URVNUKENvbW1hbmRMaW5l
RmxhZ3NUZXN0LCBDYW5CZUFjY2Vzc2VkSW5Db2RlT25jZUdUZXN0SElzSW5jbHVkZWQpIHsKLSAg
Ym9vbCBkdW1teSA9IHRlc3Rpbmc6OkdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMp
Ci0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpCi0gICAgICB8
fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpCi0gICAgICB8fCB0ZXN0aW5n
OjpHVEVTVF9GTEFHKGNvbG9yKSAhPSAidW5rbm93biIKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNU
X0ZMQUcoZmlsdGVyKSAhPSAidW5rbm93biIKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUco
bGlzdF90ZXN0cykKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcob3V0cHV0KSAhPSAidW5r
bm93biIKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcocHJpbnRfdGltZSkKLSAgICAgIHx8
IHRlc3Rpbmc6OkdURVNUX0ZMQUcocmFuZG9tX3NlZWQpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHJlcGVhdCkgPiAwCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHNob3dfaW50
ZXJuYWxfc3RhY2tfZnJhbWVzKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhzaHVmZmxl
KQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkgPiAwCi0g
ICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pICE9ICJ1bmtub3du
IgotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKTsKLSAgRVhQ
RUNUX1RSVUUoZHVtbXkgfHwgIWR1bW15KTsgIC8vIFN1cHByZXNzZXMgd2FybmluZyB0aGF0IGR1
bW15IGlzIHVudXNlZC4KLX0KLQotI2luY2x1ZGUgPGxpbWl0cy5oPiAgLy8gRm9yIElOVF9NQVgu
Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dGlt
ZS5oPgotCi0jaW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxvc3Ry
ZWFtPgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiCi0jaW5jbHVkZSAic3JjL2d0ZXN0
LWludGVybmFsLWlubC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1uYW1lc3BhY2UgaW50ZXJu
YWwgewotCi0jaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotCi1jbGFzcyBTdHJlYW1pbmdM
aXN0ZW5lclRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHVibGljOgotICBjbGFzcyBGYWtlU29ja2V0
V3JpdGVyIDogcHVibGljIFN0cmVhbWluZ0xpc3RlbmVyOjpBYnN0cmFjdFNvY2tldFdyaXRlciB7
Ci0gICBwdWJsaWM6Ci0gICAgLy8gU2VuZHMgYSBzdHJpbmcgdG8gdGhlIHNvY2tldC4KLSAgICB2
aXJ0dWFsIHZvaWQgU2VuZChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgeyBvdXRwdXRfICs9
IG1lc3NhZ2U7IH0KLQotICAgIHN0ZDo6c3RyaW5nIG91dHB1dF87Ci0gIH07Ci0KLSAgU3RyZWFt
aW5nTGlzdGVuZXJUZXN0KCkKLSAgICAgIDogZmFrZV9zb2NrX3dyaXRlcl8obmV3IEZha2VTb2Nr
ZXRXcml0ZXIpLAotICAgICAgICBzdHJlYW1lcl8oZmFrZV9zb2NrX3dyaXRlcl8pLAotICAgICAg
ICB0ZXN0X2luZm9fb2JqXygiRm9vVGVzdCIsICJCYXIiLCBOVUxMLCBOVUxMLAotICAgICAgICAg
ICAgICAgICAgICAgICBDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgMCwgTlVMTCkg
e30KLQotIHByb3RlY3RlZDoKLSAgc3RkOjpzdHJpbmcqIG91dHB1dCgpIHsgcmV0dXJuICYoZmFr
ZV9zb2NrX3dyaXRlcl8tPm91dHB1dF8pOyB9Ci0KLSAgRmFrZVNvY2tldFdyaXRlciogY29uc3Qg
ZmFrZV9zb2NrX3dyaXRlcl87Ci0gIFN0cmVhbWluZ0xpc3RlbmVyIHN0cmVhbWVyXzsKLSAgVW5p
dFRlc3QgdW5pdF90ZXN0XzsKLSAgVGVzdEluZm8gdGVzdF9pbmZvX29ial87ICAvLyBUaGUgbmFt
ZSB0ZXN0X2luZm9fIHdhcyB0YWtlbiBieSB0ZXN0aW5nOjpUZXN0LgotfTsKLQotVEVTVF9GKFN0
cmVhbWluZ0xpc3RlbmVyVGVzdCwgT25UZXN0UHJvZ3JhbUVuZCkgewotICAqb3V0cHV0KCkgPSAi
IjsKLSAgc3RyZWFtZXJfLk9uVGVzdFByb2dyYW1FbmQodW5pdF90ZXN0Xyk7Ci0gIEVYUEVDVF9F
USgiZXZlbnQ9VGVzdFByb2dyYW1FbmQmcGFzc2VkPTFcbiIsICpvdXRwdXQoKSk7Ci19Ci0KLVRF
U1RfRihTdHJlYW1pbmdMaXN0ZW5lclRlc3QsIE9uVGVzdEl0ZXJhdGlvbkVuZCkgewotICAqb3V0
cHV0KCkgPSAiIjsKLSAgc3RyZWFtZXJfLk9uVGVzdEl0ZXJhdGlvbkVuZCh1bml0X3Rlc3RfLCA0
Mik7Ci0gIEVYUEVDVF9FUSgiZXZlbnQ9VGVzdEl0ZXJhdGlvbkVuZCZwYXNzZWQ9MSZlbGFwc2Vk
X3RpbWU9MG1zXG4iLCAqb3V0cHV0KCkpOwotfQotCi1URVNUX0YoU3RyZWFtaW5nTGlzdGVuZXJU
ZXN0LCBPblRlc3RDYXNlU3RhcnQpIHsKLSAgKm91dHB1dCgpID0gIiI7Ci0gIHN0cmVhbWVyXy5P
blRlc3RDYXNlU3RhcnQoVGVzdENhc2UoIkZvb1Rlc3QiLCAiQmFyIiwgTlVMTCwgTlVMTCkpOwot
ICBFWFBFQ1RfRVEoImV2ZW50PVRlc3RDYXNlU3RhcnQmbmFtZT1Gb29UZXN0XG4iLCAqb3V0cHV0
KCkpOwotfQotCi1URVNUX0YoU3RyZWFtaW5nTGlzdGVuZXJUZXN0LCBPblRlc3RDYXNlRW5kKSB7
Ci0gICpvdXRwdXQoKSA9ICIiOwotICBzdHJlYW1lcl8uT25UZXN0Q2FzZUVuZChUZXN0Q2FzZSgi
Rm9vVGVzdCIsICJCYXIiLCBOVUxMLCBOVUxMKSk7Ci0gIEVYUEVDVF9FUSgiZXZlbnQ9VGVzdENh
c2VFbmQmcGFzc2VkPTEmZWxhcHNlZF90aW1lPTBtc1xuIiwgKm91dHB1dCgpKTsKLX0KLQotVEVT
VF9GKFN0cmVhbWluZ0xpc3RlbmVyVGVzdCwgT25UZXN0U3RhcnQpIHsKLSAgKm91dHB1dCgpID0g
IiI7Ci0gIHN0cmVhbWVyXy5PblRlc3RTdGFydCh0ZXN0X2luZm9fb2JqXyk7Ci0gIEVYUEVDVF9F
USgiZXZlbnQ9VGVzdFN0YXJ0Jm5hbWU9QmFyXG4iLCAqb3V0cHV0KCkpOwotfQotCi1URVNUX0Yo
U3RyZWFtaW5nTGlzdGVuZXJUZXN0LCBPblRlc3RFbmQpIHsKLSAgKm91dHB1dCgpID0gIiI7Ci0g
IHN0cmVhbWVyXy5PblRlc3RFbmQodGVzdF9pbmZvX29ial8pOwotICBFWFBFQ1RfRVEoImV2ZW50
PVRlc3RFbmQmcGFzc2VkPTEmZWxhcHNlZF90aW1lPTBtc1xuIiwgKm91dHB1dCgpKTsKLX0KLQot
VEVTVF9GKFN0cmVhbWluZ0xpc3RlbmVyVGVzdCwgT25UZXN0UGFydFJlc3VsdCkgewotICAqb3V0
cHV0KCkgPSAiIjsKLSAgc3RyZWFtZXJfLk9uVGVzdFBhcnRSZXN1bHQoVGVzdFBhcnRSZXN1bHQo
Ci0gICAgICBUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwgImZvby5jYyIsIDQyLCAiZmFp
bGVkPVxuJiUiKSk7Ci0KLSAgLy8gTWV0YSBjaGFyYWN0ZXJzIGluIHRoZSBmYWlsdXJlIG1lc3Nh
Z2Ugc2hvdWxkIGJlIHByb3Blcmx5IGVzY2FwZWQuCi0gIEVYUEVDVF9FUSgKLSAgICAgICJldmVu
dD1UZXN0UGFydFJlc3VsdCZmaWxlPWZvby5jYyZsaW5lPTQyJm1lc3NhZ2U9ZmFpbGVkJTNEJTBB
JTI2JTI1XG4iLAotICAgICAgKm91dHB1dCgpKTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9DQU5f
U1RSRUFNX1JFU1VMVFNfCi0KLS8vIFByb3ZpZGVzIGFjY2VzcyB0byBvdGhlcndpc2UgcHJpdmF0
ZSBwYXJ0cyBvZiB0aGUgVGVzdEV2ZW50TGlzdGVuZXJzIGNsYXNzCi0vLyB0aGF0IGFyZSBuZWVk
ZWQgdG8gdGVzdCBpdC4KLWNsYXNzIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yIHsKLSBwdWJs
aWM6Ci0gIHN0YXRpYyBUZXN0RXZlbnRMaXN0ZW5lciogR2V0UmVwZWF0ZXIoVGVzdEV2ZW50TGlz
dGVuZXJzKiBsaXN0ZW5lcnMpIHsKLSAgICByZXR1cm4gbGlzdGVuZXJzLT5yZXBlYXRlcigpOwot
ICB9Ci0KLSAgc3RhdGljIHZvaWQgU2V0RGVmYXVsdFJlc3VsdFByaW50ZXIoVGVzdEV2ZW50TGlz
dGVuZXJzKiBsaXN0ZW5lcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFRlc3RFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikgewotICAgIGxpc3RlbmVycy0+U2V0RGVmYXVs
dFJlc3VsdFByaW50ZXIobGlzdGVuZXIpOwotICB9Ci0gIHN0YXRpYyB2b2lkIFNldERlZmF1bHRY
bWxHZW5lcmF0b3IoVGVzdEV2ZW50TGlzdGVuZXJzKiBsaXN0ZW5lcnMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGVzdEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKSB7Ci0g
ICAgbGlzdGVuZXJzLT5TZXREZWZhdWx0WG1sR2VuZXJhdG9yKGxpc3RlbmVyKTsKLSAgfQotCi0g
IHN0YXRpYyBib29sIEV2ZW50Rm9yd2FyZGluZ0VuYWJsZWQoY29uc3QgVGVzdEV2ZW50TGlzdGVu
ZXJzJiBsaXN0ZW5lcnMpIHsKLSAgICByZXR1cm4gbGlzdGVuZXJzLkV2ZW50Rm9yd2FyZGluZ0Vu
YWJsZWQoKTsKLSAgfQotCi0gIHN0YXRpYyB2b2lkIFN1cHByZXNzRXZlbnRGb3J3YXJkaW5nKFRl
c3RFdmVudExpc3RlbmVycyogbGlzdGVuZXJzKSB7Ci0gICAgbGlzdGVuZXJzLT5TdXBwcmVzc0V2
ZW50Rm9yd2FyZGluZygpOwotICB9Ci19OwotCi1jbGFzcyBVbml0VGVzdFJlY29yZFByb3BlcnR5
VGVzdEhlbHBlciA6IHB1YmxpYyBUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIFVuaXRUZXN0UmVjb3Jk
UHJvcGVydHlUZXN0SGVscGVyKCkge30KLQotICAvLyBGb3J3YXJkcyB0byBVbml0VGVzdDo6UmVj
b3JkUHJvcGVydHkoKSB0byBieXBhc3MgYWNjZXNzIGNvbnRyb2xzLgotICB2b2lkIFVuaXRUZXN0
UmVjb3JkUHJvcGVydHkoY29uc3QgY2hhcioga2V5LCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUp
IHsKLSAgICB1bml0X3Rlc3RfLlJlY29yZFByb3BlcnR5KGtleSwgdmFsdWUpOwotICB9Ci0KLSAg
VW5pdFRlc3QgdW5pdF90ZXN0XzsKLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAg
Ly8gbmFtZXNwYWNlIHRlc3RpbmcKLQotdXNpbmcgdGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZTsK
LXVzaW5nIHRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdDsKLXVzaW5nIHRlc3Rpbmc6OkFzc2VydGlv
blN1Y2Nlc3M7Ci11c2luZyB0ZXN0aW5nOjpEb3VibGVMRTsKLXVzaW5nIHRlc3Rpbmc6OkVtcHR5
VGVzdEV2ZW50TGlzdGVuZXI7Ci11c2luZyB0ZXN0aW5nOjpFbnZpcm9ubWVudDsKLXVzaW5nIHRl
c3Rpbmc6OkZsb2F0TEU7Ci11c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGFsc29fcnVuX2Rpc2Fi
bGVkX3Rlc3RzKTsKLXVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVyZSk7
Ci11c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpOwotdXNpbmcgdGVz
dGluZzo6R1RFU1RfRkxBRyhjb2xvcik7Ci11c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRlYXRo
X3Rlc3RfdXNlX2ZvcmspOwotdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhmaWx0ZXIpOwotdXNp
bmcgdGVzdGluZzo6R1RFU1RfRkxBRyhsaXN0X3Rlc3RzKTsKLXVzaW5nIHRlc3Rpbmc6OkdURVNU
X0ZMQUcob3V0cHV0KTsKLXVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcocHJpbnRfdGltZSk7Ci11
c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKTsKLXVzaW5nIHRlc3Rpbmc6OkdU
RVNUX0ZMQUcocmVwZWF0KTsKLXVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoc2hvd19pbnRlcm5h
bF9zdGFja19mcmFtZXMpOwotdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhzaHVmZmxlKTsKLXVz
aW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpOwotdXNpbmcgdGVzdGlu
Zzo6R1RFU1RfRkxBRyhzdHJlYW1fcmVzdWx0X3RvKTsKLXVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZM
QUcodGhyb3dfb25fZmFpbHVyZSk7Ci11c2luZyB0ZXN0aW5nOjpJc05vdFN1YnN0cmluZzsKLXVz
aW5nIHRlc3Rpbmc6OklzU3Vic3RyaW5nOwotdXNpbmcgdGVzdGluZzo6TWVzc2FnZTsKLXVzaW5n
IHRlc3Rpbmc6OlNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyOwotdXNpbmcgdGVzdGlu
Zzo6U3RhdGljQXNzZXJ0VHlwZUVxOwotdXNpbmcgdGVzdGluZzo6VGVzdDsKLXVzaW5nIHRlc3Rp
bmc6OlRlc3RDYXNlOwotdXNpbmcgdGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXJzOwotdXNpbmcg
dGVzdGluZzo6VGVzdEluZm87Ci11c2luZyB0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDsKLXVzaW5n
IHRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0QXJyYXk7Ci11c2luZyB0ZXN0aW5nOjpUZXN0UHJvcGVy
dHk7Ci11c2luZyB0ZXN0aW5nOjpUZXN0UmVzdWx0OwotdXNpbmcgdGVzdGluZzo6VGltZUluTWls
bGlzOwotdXNpbmcgdGVzdGluZzo6VW5pdFRlc3Q7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
QWRkUmVmZXJlbmNlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNlOwotdXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6QXBwZW5kVXNlck1lc3NhZ2U7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlBd2Fy
ZUZpbmQ7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlFcTsKLXVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpDb2RlUG9pbnRUb1V0Zjg7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29t
cGlsZUFzc2VydFR5cGVzRXF1YWw7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29weUFycmF5
OwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNvdW50SWY7Ci11c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6RXFGYWlsdXJlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZsb2F0aW5nUG9pbnQ7
Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9yRWFjaDsKLXVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMTsKLXVzaW5nIHRlc3Rpbmc6Omlu
dGVybmFsOjpGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHM7Ci11c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6R1Rlc3RGbGFnU2F2ZXI7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0Q3VycmVu
dE9zU3RhY2tUcmFjZUV4Y2VwdFRvcDsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpHZXRFbGVt
ZW50T3I7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0TmV4dFJhbmRvbVNlZWQ7Ci11c2lu
ZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0UmFuZG9tU2VlZEZyb21GbGFnOwotdXNpbmcgdGVzdGlu
Zzo6aW50ZXJuYWw6OkdldFRlc3RUeXBlSWQ7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0
VGltZUluTWlsbGlzOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldFR5cGVJZDsKLXVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjpHZXRVbml0VGVzdEltcGw7Ci11c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6SW1wbGljaXRseUNvbnZlcnRpYmxlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Oklu
dDMyOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkludDMyRnJvbUVudk9yRGllOwotdXNpbmcg
dGVzdGluZzo6aW50ZXJuYWw6OklzQVByb3RvY29sTWVzc2FnZTsKLXVzaW5nIHRlc3Rpbmc6Omlu
dGVybmFsOjpJc0NvbnRhaW5lcjsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpJc0NvbnRhaW5l
clRlc3Q7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNOb3RDb250YWluZXI7Ci11c2luZyB0
ZXN0aW5nOjppbnRlcm5hbDo6TmF0aXZlQXJyYXk7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
UGFyc2VJbnQzMkZsYWc7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJj
ZUNvcHk7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZVJlZmVyZW5j
ZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVDb25zdDsKLXVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpSZW1vdmVSZWZlcmVuY2U7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hv
dWxkUnVuVGVzdE9uU2hhcmQ7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkU2hhcmQ7
Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkVXNlQ29sb3I7Ci11c2luZyB0ZXN0aW5n
OjppbnRlcm5hbDo6U2h1ZmZsZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpTaHVmZmxlUmFu
Z2U7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2tpcFByZWZpeDsKLXVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpTdHJlYW1hYmxlVG9TdHJpbmc7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
U3RyaW5nOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlRlc3RFdmVudExpc3RlbmVyc0FjY2Vz
c29yOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlRlc3RSZXN1bHRBY2Nlc3NvcjsKLXVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjpVSW50MzI7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6V2lk
ZVN0cmluZ1RvVXRmODsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjplZGl0X2Rpc3RhbmNlOjpD
YWxjdWxhdGVPcHRpbWFsRWRpdHM7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6ZWRpdF9kaXN0
YW5jZTo6Q3JlYXRlVW5pZmllZERpZmY7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6ZWRpdF9k
aXN0YW5jZTo6RWRpdFR5cGU7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6a01heFJhbmRvbVNl
ZWQ7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6a1Rlc3RUeXBlSWRJbkdvb2dsZVRlc3Q7Ci11
c2luZyB0ZXN0aW5nOjprTWF4U3RhY2tUcmFjZURlcHRoOwotCi0jaWYgR1RFU1RfSEFTX1NUUkVB
TV9SRURJUkVDVElPTgotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNhcHR1cmVTdGRvdXQ7Ci11
c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0Q2FwdHVyZWRTdGRvdXQ7Ci0jZW5kaWYKLQotI2lm
IEdURVNUX0lTX1RIUkVBRFNBRkUKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpUaHJlYWRXaXRo
UGFyYW07Ci0jZW5kaWYKLQotY2xhc3MgVGVzdGluZ1ZlY3RvciA6IHB1YmxpYyBzdGQ6OnZlY3Rv
cjxpbnQ+IHsKLX07Ci0KLTo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFt
JiBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RpbmdWZWN0b3ImIHZl
Y3RvcikgewotICBvcyA8PCAieyAiOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5z
aXplKCk7IGkrKykgewotICAgIG9zIDw8IHZlY3RvcltpXSA8PCAiICI7Ci0gIH0KLSAgb3MgPDwg
In0iOwotICByZXR1cm4gb3M7Ci19Ci0KLS8vIFRoaXMgbGluZSB0ZXN0cyB0aGF0IHdlIGNhbiBk
ZWZpbmUgdGVzdHMgaW4gYW4gdW5uYW1lZCBuYW1lc3BhY2UuCi1uYW1lc3BhY2UgewotCi1URVNU
KEdldFJhbmRvbVNlZWRGcm9tRmxhZ1Rlc3QsIEhhbmRsZXNaZXJvKSB7Ci0gIGNvbnN0IGludCBz
ZWVkID0gR2V0UmFuZG9tU2VlZEZyb21GbGFnKDApOwotICBFWFBFQ1RfTEUoMSwgc2VlZCk7Ci0g
IEVYUEVDVF9MRShzZWVkLCBzdGF0aWNfY2FzdDxpbnQ+KGtNYXhSYW5kb21TZWVkKSk7Ci19Ci0K
LVRFU1QoR2V0UmFuZG9tU2VlZEZyb21GbGFnVGVzdCwgUHJlc2VydmVzVmFsaWRTZWVkKSB7Ci0g
IEVYUEVDVF9FUSgxLCBHZXRSYW5kb21TZWVkRnJvbUZsYWcoMSkpOwotICBFWFBFQ1RfRVEoMiwg
R2V0UmFuZG9tU2VlZEZyb21GbGFnKDIpKTsKLSAgRVhQRUNUX0VRKGtNYXhSYW5kb21TZWVkIC0g
MSwgR2V0UmFuZG9tU2VlZEZyb21GbGFnKGtNYXhSYW5kb21TZWVkIC0gMSkpOwotICBFWFBFQ1Rf
RVEoc3RhdGljX2Nhc3Q8aW50PihrTWF4UmFuZG9tU2VlZCksCi0gICAgICAgICAgICBHZXRSYW5k
b21TZWVkRnJvbUZsYWcoa01heFJhbmRvbVNlZWQpKTsKLX0KLQotVEVTVChHZXRSYW5kb21TZWVk
RnJvbUZsYWdUZXN0LCBOb3JtYWxpemVzSW52YWxpZFNlZWQpIHsKLSAgY29uc3QgaW50IHNlZWQx
ID0gR2V0UmFuZG9tU2VlZEZyb21GbGFnKC0xKTsKLSAgRVhQRUNUX0xFKDEsIHNlZWQxKTsKLSAg
RVhQRUNUX0xFKHNlZWQxLCBzdGF0aWNfY2FzdDxpbnQ+KGtNYXhSYW5kb21TZWVkKSk7Ci0KLSAg
Y29uc3QgaW50IHNlZWQyID0gR2V0UmFuZG9tU2VlZEZyb21GbGFnKGtNYXhSYW5kb21TZWVkICsg
MSk7Ci0gIEVYUEVDVF9MRSgxLCBzZWVkMik7Ci0gIEVYUEVDVF9MRShzZWVkMiwgc3RhdGljX2Nh
c3Q8aW50PihrTWF4UmFuZG9tU2VlZCkpOwotfQotCi1URVNUKEdldE5leHRSYW5kb21TZWVkVGVz
dCwgV29ya3NGb3JWYWxpZElucHV0KSB7Ci0gIEVYUEVDVF9FUSgyLCBHZXROZXh0UmFuZG9tU2Vl
ZCgxKSk7Ci0gIEVYUEVDVF9FUSgzLCBHZXROZXh0UmFuZG9tU2VlZCgyKSk7Ci0gIEVYUEVDVF9F
UShzdGF0aWNfY2FzdDxpbnQ+KGtNYXhSYW5kb21TZWVkKSwKLSAgICAgICAgICAgIEdldE5leHRS
YW5kb21TZWVkKGtNYXhSYW5kb21TZWVkIC0gMSkpOwotICBFWFBFQ1RfRVEoMSwgR2V0TmV4dFJh
bmRvbVNlZWQoa01heFJhbmRvbVNlZWQpKTsKLQotICAvLyBXZSBkZWxpYmVyYXRlbHkgZG9uJ3Qg
dGVzdCBHZXROZXh0UmFuZG9tU2VlZCgpIHdpdGggaW52YWxpZAotICAvLyBpbnB1dHMsIGFzIHRo
YXQgcmVxdWlyZXMgZGVhdGggdGVzdHMsIHdoaWNoIGFyZSBleHBlbnNpdmUuICBUaGlzCi0gIC8v
IGlzIGZpbmUgYXMgR2V0TmV4dFJhbmRvbVNlZWQoKSBpcyBpbnRlcm5hbCBhbmQgaGFzIGEKLSAg
Ly8gc3RyYWlnaHRmb3J3YXJkIGRlZmluaXRpb24uCi19Ci0KLXN0YXRpYyB2b2lkIENsZWFyQ3Vy
cmVudFRlc3RQYXJ0UmVzdWx0cygpIHsKLSAgVGVzdFJlc3VsdEFjY2Vzc29yOjpDbGVhclRlc3RQ
YXJ0UmVzdWx0cygKLSAgICAgIEdldFVuaXRUZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0
KCkpOwotfQotCi0vLyBUZXN0cyBHZXRUeXBlSWQuCi0KLVRFU1QoR2V0VHlwZUlkVGVzdCwgUmV0
dXJuc1NhbWVWYWx1ZUZvclNhbWVUeXBlKSB7Ci0gIEVYUEVDVF9FUShHZXRUeXBlSWQ8aW50Pigp
LCBHZXRUeXBlSWQ8aW50PigpKTsKLSAgRVhQRUNUX0VRKEdldFR5cGVJZDxUZXN0PigpLCBHZXRU
eXBlSWQ8VGVzdD4oKSk7Ci19Ci0KLWNsYXNzIFN1YkNsYXNzT2ZUZXN0IDogcHVibGljIFRlc3Qg
e307Ci1jbGFzcyBBbm90aGVyU3ViQ2xhc3NPZlRlc3QgOiBwdWJsaWMgVGVzdCB7fTsKLQotVEVT
VChHZXRUeXBlSWRUZXN0LCBSZXR1cm5zRGlmZmVyZW50VmFsdWVzRm9yRGlmZmVyZW50VHlwZXMp
IHsKLSAgRVhQRUNUX05FKEdldFR5cGVJZDxpbnQ+KCksIEdldFR5cGVJZDxjb25zdCBpbnQ+KCkp
OwotICBFWFBFQ1RfTkUoR2V0VHlwZUlkPGludD4oKSwgR2V0VHlwZUlkPGNoYXI+KCkpOwotICBF
WFBFQ1RfTkUoR2V0VHlwZUlkPGludD4oKSwgR2V0VGVzdFR5cGVJZCgpKTsKLSAgRVhQRUNUX05F
KEdldFR5cGVJZDxTdWJDbGFzc09mVGVzdD4oKSwgR2V0VGVzdFR5cGVJZCgpKTsKLSAgRVhQRUNU
X05FKEdldFR5cGVJZDxBbm90aGVyU3ViQ2xhc3NPZlRlc3Q+KCksIEdldFRlc3RUeXBlSWQoKSk7
Ci0gIEVYUEVDVF9ORShHZXRUeXBlSWQ8QW5vdGhlclN1YkNsYXNzT2ZUZXN0PigpLCBHZXRUeXBl
SWQ8U3ViQ2xhc3NPZlRlc3Q+KCkpOwotfQotCi0vLyBWZXJpZmllcyB0aGF0IEdldFRlc3RUeXBl
SWQoKSByZXR1cm5zIHRoZSBzYW1lIHZhbHVlLCBubyBtYXR0ZXIgaXQKLS8vIGlzIGNhbGxlZCBm
cm9tIGluc2lkZSBHb29nbGUgVGVzdCBvciBvdXRzaWRlIG9mIGl0LgotVEVTVChHZXRUZXN0VHlw
ZUlkVGVzdCwgUmV0dXJuc1RoZVNhbWVWYWx1ZUluc2lkZU9yT3V0c2lkZU9mR29vZ2xlVGVzdCkg
ewotICBFWFBFQ1RfRVEoa1Rlc3RUeXBlSWRJbkdvb2dsZVRlc3QsIEdldFRlc3RUeXBlSWQoKSk7
Ci19Ci0KLS8vIFRlc3RzIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcygpLgotCi1URVNUKEZv
cm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kc1Rlc3QsIEZvcm1hdHNaZXJvKSB7Ci0gIEVYUEVDVF9F
USgiMCIsIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcygwKSk7Ci19Ci0KLVRFU1QoRm9ybWF0
VGltZUluTWlsbGlzQXNTZWNvbmRzVGVzdCwgRm9ybWF0c1Bvc2l0aXZlTnVtYmVyKSB7Ci0gIEVY
UEVDVF9FUSgiMC4wMDMiLCBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHMoMykpOwotICBFWFBF
Q1RfRVEoIjAuMDEiLCBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHMoMTApKTsKLSAgRVhQRUNU
X0VRKCIwLjIiLCBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHMoMjAwKSk7Ci0gIEVYUEVDVF9F
USgiMS4yIiwgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKDEyMDApKTsKLSAgRVhQRUNUX0VR
KCIzIiwgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKDMwMDApKTsKLX0KLQotVEVTVChGb3Jt
YXRUaW1lSW5NaWxsaXNBc1NlY29uZHNUZXN0LCBGb3JtYXRzTmVnYXRpdmVOdW1iZXIpIHsKLSAg
RVhQRUNUX0VRKCItMC4wMDMiLCBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHMoLTMpKTsKLSAg
RVhQRUNUX0VRKCItMC4wMSIsIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcygtMTApKTsKLSAg
RVhQRUNUX0VRKCItMC4yIiwgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKC0yMDApKTsKLSAg
RVhQRUNUX0VRKCItMS4yIiwgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKC0xMjAwKSk7Ci0g
IEVYUEVDVF9FUSgiLTMiLCBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHMoLTMwMDApKTsKLX0K
LQotLy8gVGVzdHMgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoKS4gIFRoZSBjb3Jy
ZWN0bmVzcyBvZiBjb252ZXJzaW9uCi0vLyBmb3IgcGFydGljdWxhciBkYXRlcyBiZWxvdyB3YXMg
dmVyaWZpZWQgaW4gUHl0aG9uIHVzaW5nCi0vLyBkYXRldGltZS5kYXRldGltZS5mcm9tdXRjdGlt
ZXN0YW1wKDx0aW1ldGFtcD4vMTAwMCkuCi0KLS8vIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJ
c284NjAxIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgdGltZXpvbmUsIHNvIHdlCi0vLyBoYXZlIHRv
IHNldCB1cCBhIHBhcnRpY3VsYXIgdGltZXpvbmUgdG8gb2J0YWluIHByZWRpY3RhYmxlIHJlc3Vs
dHMuCi1jbGFzcyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QgOiBwdWJsaWMg
VGVzdCB7Ci0gcHVibGljOgotICAvLyBPbiBDeWd3aW4sIEdDQyBkb2Vzbid0IGFsbG93IHVucXVh
bGlmaWVkIGludGVnZXIgbGl0ZXJhbHMgdG8gZXhjZWVkCi0gIC8vIDMyIGJpdHMsIGV2ZW4gd2hl
biA2NC1iaXQgaW50ZWdlciB0eXBlcyBhcmUgYXZhaWxhYmxlLiAgV2UgaGF2ZSB0bwotICAvLyBm
b3JjZSB0aGUgY29uc3RhbnRzIHRvIGhhdmUgYSA2NC1iaXQgdHlwZSBoZXJlLgotICBzdGF0aWMg
Y29uc3QgVGltZUluTWlsbGlzIGtNaWxsaXNQZXJTZWMgPSAxMDAwOwotCi0gcHJpdmF0ZToKLSAg
dmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHNhdmVkX3R6XyA9IE5VTEw7Ci0KLSAgICBHVEVT
VF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0OTk2IC8qIGdldGVudiwgc3RyZHVwOiBkZXBy
ZWNhdGVkICovKQotICAgIGlmIChnZXRlbnYoIlRaIikpCi0gICAgICBzYXZlZF90el8gPSBzdHJk
dXAoZ2V0ZW52KCJUWiIpKTsKLSAgICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkK
LQotICAgIC8vIFNldCB1cCB0aGUgdGltZSB6b25lIGZvciBGb3JtYXRFcG9jaFRpbWVJbk1pbGxp
c0FzSXNvODYwMSB0byB1c2UuICBXZQotICAgIC8vIGNhbm5vdCB1c2UgdGhlIGxvY2FsIHRpbWUg
em9uZSBiZWNhdXNlIHRoZSBmdW5jdGlvbidzIG91dHB1dCBkZXBlbmRzCi0gICAgLy8gb24gdGhl
IHRpbWUgem9uZS4KLSAgICBTZXRUaW1lWm9uZSgiVVRDKzAwIik7Ci0gIH0KLQotICB2aXJ0dWFs
IHZvaWQgVGVhckRvd24oKSB7Ci0gICAgU2V0VGltZVpvbmUoc2F2ZWRfdHpfKTsKLSAgICBmcmVl
KGNvbnN0X2Nhc3Q8Y2hhcio+KHNhdmVkX3R6XykpOwotICAgIHNhdmVkX3R6XyA9IE5VTEw7Ci0g
IH0KLQotICBzdGF0aWMgdm9pZCBTZXRUaW1lWm9uZShjb25zdCBjaGFyKiB0aW1lX3pvbmUpIHsK
LSAgICAvLyB0enNldCgpIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiB0aGUgVFogdmFyaWFibGUgYmVp
bmcgcHJlc2VudCBhbmQgZW1wdHkKLSAgICAvLyBhbmQgbm90IGJlaW5nIHByZXNlbnQsIHNvIHdl
IGhhdmUgdG8gY29uc2lkZXIgdGhlIGNhc2Ugb2YgdGltZV96b25lCi0gICAgLy8gYmVpbmcgTlVM
TC4KLSNpZiBfTVNDX1ZFUiB8fCBHVEVTVF9PU19XSU5ET1dTX01JTkdXCi0gICAgLy8gLi4uVW5s
ZXNzIGl0J3MgTVNWQywgd2hvc2Ugc3RhbmRhcmQgbGlicmFyeSdzIF9wdXRlbnYgZG9lc24ndAot
ICAgIC8vIGRpc3Rpbmd1aXNoIGJldHdlZW4gYW4gZW1wdHkgYW5kIGEgbWlzc2luZyB2YXJpYWJs
ZS4KLSAgICBjb25zdCBzdGQ6OnN0cmluZyBlbnZfdmFyID0KLSAgICAgICAgc3RkOjpzdHJpbmco
IlRaPSIpICsgKHRpbWVfem9uZSA/IHRpbWVfem9uZSA6ICIiKTsKLSAgICBfcHV0ZW52KGVudl92
YXIuY19zdHIoKSk7Ci0gICAgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDk5NiAv
KiBkZXByZWNhdGVkIGZ1bmN0aW9uICovKQotICAgIHR6c2V0KCk7Ci0gICAgR1RFU1RfRElTQUJM
RV9NU0NfV0FSTklOR1NfUE9QXygpCi0jZWxzZQotICAgIGlmICh0aW1lX3pvbmUpIHsKLSAgICAg
IHNldGVudigoIlRaIiksIHRpbWVfem9uZSwgMSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHVuc2V0
ZW52KCJUWiIpOwotICAgIH0KLSAgICB0enNldCgpOwotI2VuZGlmCi0gIH0KLQotICBjb25zdCBj
aGFyKiBzYXZlZF90el87Ci19OwotCi1jb25zdCBUaW1lSW5NaWxsaXMgRm9ybWF0RXBvY2hUaW1l
SW5NaWxsaXNBc0lzbzg2MDFUZXN0OjprTWlsbGlzUGVyU2VjOwotCi1URVNUX0YoRm9ybWF0RXBv
Y2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNUd29EaWdpdFNlZ21lbnRzKSB7Ci0g
IEVYUEVDVF9FUSgiMjAxMS0xMC0zMVQxODo1Mjo0MiIsCi0gICAgICAgICAgICBGb3JtYXRFcG9j
aFRpbWVJbk1pbGxpc0FzSXNvODYwMSgxMzIwMDg3MTYyICoga01pbGxpc1BlclNlYykpOwotfQot
Ci1URVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBNaWxsaXNlY29u
ZHNEb05vdEFmZmVjdFJlc3VsdCkgewotICBFWFBFQ1RfRVEoCi0gICAgICAiMjAxMS0xMC0zMVQx
ODo1Mjo0MiIsCi0gICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSgxMzIwMDg3
MTYyICoga01pbGxpc1BlclNlYyArIDIzNCkpOwotfQotCi1URVNUX0YoRm9ybWF0RXBvY2hUaW1l
SW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNMZWFkaW5nWmVyb2VzKSB7Ci0gIEVYUEVDVF9F
USgiMjAxMS0wOS0wM1QwNTowNzowMiIsCi0gICAgICAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1p
bGxpc0FzSXNvODYwMSgxMzE1MDI2NDIyICoga01pbGxpc1BlclNlYykpOwotfQotCi1URVNUX0Yo
Rm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHMyNEhvdXJUaW1lKSB7
Ci0gIEVYUEVDVF9FUSgiMjAxMS0wOS0yOFQxNzowODoyMiIsCi0gICAgICAgICAgICBGb3JtYXRF
cG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSgxMzE3MjI5NzAyICoga01pbGxpc1BlclNlYykpOwot
fQotCi1URVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNF
cG9jaFN0YXJ0KSB7Ci0gIEVYUEVDVF9FUSgiMTk3MC0wMS0wMVQwMDowMDowMCIsIEZvcm1hdEVw
b2NoVGltZUluTWlsbGlzQXNJc284NjAxKDApKTsKLX0KLQotI2lmIEdURVNUX0NBTl9DT01QQVJF
X05VTEwKLQotIyBpZmRlZiBfX0JPUkxBTkRDX18KLS8vIFNpbGVuY2VzIHdhcm5pbmdzOiAiQ29u
ZGl0aW9uIGlzIGFsd2F5cyB0cnVlIiwgIlVucmVhY2hhYmxlIGNvZGUiCi0jICBwcmFnbWEgb3B0
aW9uIHB1c2ggLXctY2NjIC13LXJjaAotIyBlbmRpZgotCi0vLyBUZXN0cyB0aGF0IEdURVNUX0lT
X05VTExfTElURVJBTF8oeCkgaXMgdHJ1ZSB3aGVuIHggaXMgYSBudWxsCi0vLyBwb2ludGVyIGxp
dGVyYWwuCi1URVNUKE51bGxMaXRlcmFsVGVzdCwgSXNUcnVlRm9yTnVsbExpdGVyYWxzKSB7Ci0g
IEVYUEVDVF9UUlVFKEdURVNUX0lTX05VTExfTElURVJBTF8oTlVMTCkpOwotICBFWFBFQ1RfVFJV
RShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKDApKTsKLSAgRVhQRUNUX1RSVUUoR1RFU1RfSVNfTlVM
TF9MSVRFUkFMXygwVSkpOwotICBFWFBFQ1RfVFJVRShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKDBM
KSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBpcyBmYWxz
ZSB3aGVuIHggaXMgbm90IGEgbnVsbAotLy8gcG9pbnRlciBsaXRlcmFsLgotVEVTVChOdWxsTGl0
ZXJhbFRlc3QsIElzRmFsc2VGb3JOb25OdWxsTGl0ZXJhbHMpIHsKLSAgRVhQRUNUX0ZBTFNFKEdU
RVNUX0lTX05VTExfTElURVJBTF8oMSkpOwotICBFWFBFQ1RfRkFMU0UoR1RFU1RfSVNfTlVMTF9M
SVRFUkFMXygwLjApKTsKLSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lTX05VTExfTElURVJBTF8oJ2En
KSk7Ci0gIEVYUEVDVF9GQUxTRShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKHN0YXRpY19jYXN0PHZv
aWQqPihOVUxMKSkpOwotfQotCi0jIGlmZGVmIF9fQk9STEFORENfXwotLy8gUmVzdG9yZXMgd2Fy
bmluZ3MgYWZ0ZXIgcHJldmlvdXMgIiNwcmFnbWEgb3B0aW9uIHB1c2giIHN1cHByZXNzZWQgdGhl
bS4KLSMgIHByYWdtYSBvcHRpb24gcG9wCi0jIGVuZGlmCi0KLSNlbmRpZiAgLy8gR1RFU1RfQ0FO
X0NPTVBBUkVfTlVMTAotLy8KLS8vIFRlc3RzIENvZGVQb2ludFRvVXRmOCgpLgotCi0vLyBUZXN0
cyB0aGF0IHRoZSBOVUwgY2hhcmFjdGVyIEwnXDAnIGlzIGVuY29kZWQgY29ycmVjdGx5LgotVEVT
VChDb2RlUG9pbnRUb1V0ZjhUZXN0LCBDYW5FbmNvZGVOdWwpIHsKLSAgRVhQRUNUX0VRKCIiLCBD
b2RlUG9pbnRUb1V0ZjgoTCdcMCcpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBBU0NJSSBjaGFyYWN0
ZXJzIGFyZSBlbmNvZGVkIGNvcnJlY3RseS4KLVRFU1QoQ29kZVBvaW50VG9VdGY4VGVzdCwgQ2Fu
RW5jb2RlQXNjaWkpIHsKLSAgRVhQRUNUX0VRKCJhIiwgQ29kZVBvaW50VG9VdGY4KEwnYScpKTsK
LSAgRVhQRUNUX0VRKCJaIiwgQ29kZVBvaW50VG9VdGY4KEwnWicpKTsKLSAgRVhQRUNUX0VRKCIm
IiwgQ29kZVBvaW50VG9VdGY4KEwnJicpKTsKLSAgRVhQRUNUX0VRKCJceDdGIiwgQ29kZVBvaW50
VG9VdGY4KEwnXHg3RicpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBVbmljb2RlIGNvZGUtcG9pbnRz
IHRoYXQgaGF2ZSA4IHRvIDExIGJpdHMgYXJlIGVuY29kZWQKLS8vIGFzIDExMHh4eHh4IDEweHh4
eHh4LgotVEVTVChDb2RlUG9pbnRUb1V0ZjhUZXN0LCBDYW5FbmNvZGU4VG8xMUJpdHMpIHsKLSAg
Ly8gMDAwIDExMDEgMDAxMSA9PiAxMTAtMDAwMTEgMTAtMDEwMDExCi0gIEVYUEVDVF9FUSgiXHhD
M1x4OTMiLCBDb2RlUG9pbnRUb1V0ZjgoTCdceEQzJykpOwotCi0gIC8vIDEwMSAwMTExIDAxMTAg
PT4gMTEwLTEwMTAxIDEwLTExMDExMAotICAvLyBTb21lIGNvbXBpbGVycyAoZS5nLiwgR0NDIG9u
IE1pbkdXKSBjYW5ub3QgaGFuZGxlIG5vbi1BU0NJSSBjb2RlcG9pbnRzCi0gIC8vIGluIHdpZGUg
c3RyaW5ncyBhbmQgd2lkZSBjaGFycy4gSW4gb3JkZXIgdG8gYWNjb21vZGF0ZSB0aGVtLCB3ZSBo
YXZlIHRvCi0gIC8vIGludHJvZHVjZSBzdWNoIGNoYXJhY3RlciBjb25zdGFudHMgYXMgaW50ZWdl
cnMuCi0gIEVYUEVDVF9FUSgiXHhENVx4QjYiLAotICAgICAgICAgICAgQ29kZVBvaW50VG9VdGY4
KHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4NTc2KSkpOwotfQotCi0vLyBUZXN0cyB0aGF0IFVuaWNv
ZGUgY29kZS1wb2ludHMgdGhhdCBoYXZlIDEyIHRvIDE2IGJpdHMgYXJlIGVuY29kZWQKLS8vIGFz
IDExMTB4eHh4IDEweHh4eHh4IDEweHh4eHh4LgotVEVTVChDb2RlUG9pbnRUb1V0ZjhUZXN0LCBD
YW5FbmNvZGUxMlRvMTZCaXRzKSB7Ci0gIC8vIDAwMDAgMTAwMCAxMTAxIDAwMTEgPT4gMTExMC0w
MDAwIDEwLTEwMDAxMSAxMC0wMTAwMTEKLSAgRVhQRUNUX0VRKCJceEUwXHhBM1x4OTMiLAotICAg
ICAgICAgICAgQ29kZVBvaW50VG9VdGY4KHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4OEQzKSkpOwot
Ci0gIC8vIDExMDAgMDExMSAwMTAwIDExMDEgPT4gMTExMC0xMTAwIDEwLTAxMTEwMSAxMC0wMDEx
MDEKLSAgRVhQRUNUX0VRKCJceEVDXHg5RFx4OEQiLAotICAgICAgICAgICAgQ29kZVBvaW50VG9V
dGY4KHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4Qzc0RCkpKTsKLX0KLQotI2lmICFHVEVTVF9XSURF
X1NUUklOR19VU0VTX1VURjE2XwotLy8gVGVzdHMgaW4gdGhpcyBncm91cCByZXF1aXJlIGEgd2No
YXJfdCB0byBob2xkID4gMTYgYml0cywgYW5kIHRodXMKLS8vIGFyZSBza2lwcGVkIG9uIFdpbmRv
d3MsIEN5Z3dpbiwgYW5kIFN5bWJpYW4sIHdoZXJlIGEgd2NoYXJfdCBpcwotLy8gMTYtYml0IHdp
ZGUuIFRoaXMgY29kZSBtYXkgbm90IGNvbXBpbGUgb24gdGhvc2Ugc3lzdGVtcy4KLQotLy8gVGVz
dHMgdGhhdCBVbmljb2RlIGNvZGUtcG9pbnRzIHRoYXQgaGF2ZSAxNyB0byAyMSBiaXRzIGFyZSBl
bmNvZGVkCi0vLyBhcyAxMTExMHh4eCAxMHh4eHh4eCAxMHh4eHh4eCAxMHh4eHh4eC4KLVRFU1Qo
Q29kZVBvaW50VG9VdGY4VGVzdCwgQ2FuRW5jb2RlMTdUbzIxQml0cykgewotICAvLyAwIDAwMDEg
MDAwMCAxMDAwIDExMDEgMDAxMSA9PiAxMTExMC0wMDAgMTAtMDEwMDAwIDEwLTEwMDAxMSAxMC0w
MTAwMTEKLSAgRVhQRUNUX0VRKCJceEYwXHg5MFx4QTNceDkzIiwgQ29kZVBvaW50VG9VdGY4KEwn
XHgxMDhEMycpKTsKLQotICAvLyAwIDAwMDEgMDAwMCAwMTAwIDAwMDAgMDAwMCA9PiAxMTExMC0w
MDAgMTAtMDEwMDAwIDEwLTAxMDAwMCAxMC0wMDAwMDAKLSAgRVhQRUNUX0VRKCJceEYwXHg5MFx4
OTBceDgwIiwgQ29kZVBvaW50VG9VdGY4KEwnXHgxMDQwMCcpKTsKLQotICAvLyAxIDAwMDAgMTAw
MCAwMTEwIDAwMTEgMDEwMCA9PiAxMTExMC0xMDAgMTAtMDAxMDAwIDEwLTAxMTAwMCAxMC0xMTAx
MDAKLSAgRVhQRUNUX0VRKCJceEY0XHg4OFx4OThceEI0IiwgQ29kZVBvaW50VG9VdGY4KEwnXHgx
MDg2MzQnKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgZW5jb2RpbmcgYW4gaW52YWxpZCBjb2RlLXBv
aW50IGdlbmVyYXRlcyB0aGUgZXhwZWN0ZWQgcmVzdWx0LgotVEVTVChDb2RlUG9pbnRUb1V0ZjhU
ZXN0LCBDYW5FbmNvZGVJbnZhbGlkQ29kZVBvaW50KSB7Ci0gIEVYUEVDVF9FUSgiKEludmFsaWQg
VW5pY29kZSAweDEyMzRBQkNEKSIsIENvZGVQb2ludFRvVXRmOChMJ1x4MTIzNEFCQ0QnKSk7Ci19
Ci0KLSNlbmRpZiAgLy8gIUdURVNUX1dJREVfU1RSSU5HX1VTRVNfVVRGMTZfCi0KLS8vIFRlc3Rz
IFdpZGVTdHJpbmdUb1V0ZjgoKS4KLQotLy8gVGVzdHMgdGhhdCB0aGUgTlVMIGNoYXJhY3RlciBM
J1wwJyBpcyBlbmNvZGVkIGNvcnJlY3RseS4KLVRFU1QoV2lkZVN0cmluZ1RvVXRmOFRlc3QsIENh
bkVuY29kZU51bCkgewotICBFWFBFQ1RfU1RSRVEoIiIsIFdpZGVTdHJpbmdUb1V0ZjgoTCIiLCAw
KS5jX3N0cigpKTsKLSAgRVhQRUNUX1NUUkVRKCIiLCBXaWRlU3RyaW5nVG9VdGY4KEwiIiwgLTEp
LmNfc3RyKCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IEFTQ0lJIHN0cmluZ3MgYXJlIGVuY29kZWQg
Y29ycmVjdGx5LgotVEVTVChXaWRlU3RyaW5nVG9VdGY4VGVzdCwgQ2FuRW5jb2RlQXNjaWkpIHsK
LSAgRVhQRUNUX1NUUkVRKCJhIiwgV2lkZVN0cmluZ1RvVXRmOChMImEiLCAxKS5jX3N0cigpKTsK
LSAgRVhQRUNUX1NUUkVRKCJhYiIsIFdpZGVTdHJpbmdUb1V0ZjgoTCJhYiIsIDIpLmNfc3RyKCkp
OwotICBFWFBFQ1RfU1RSRVEoImEiLCBXaWRlU3RyaW5nVG9VdGY4KEwiYSIsIC0xKS5jX3N0cigp
KTsKLSAgRVhQRUNUX1NUUkVRKCJhYiIsIFdpZGVTdHJpbmdUb1V0ZjgoTCJhYiIsIC0xKS5jX3N0
cigpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBVbmljb2RlIGNvZGUtcG9pbnRzIHRoYXQgaGF2ZSA4
IHRvIDExIGJpdHMgYXJlIGVuY29kZWQKLS8vIGFzIDExMHh4eHh4IDEweHh4eHh4LgotVEVTVChX
aWRlU3RyaW5nVG9VdGY4VGVzdCwgQ2FuRW5jb2RlOFRvMTFCaXRzKSB7Ci0gIC8vIDAwMCAxMTAx
IDAwMTEgPT4gMTEwLTAwMDExIDEwLTAxMDAxMQotICBFWFBFQ1RfU1RSRVEoIlx4QzNceDkzIiwg
V2lkZVN0cmluZ1RvVXRmOChMIlx4RDMiLCAxKS5jX3N0cigpKTsKLSAgRVhQRUNUX1NUUkVRKCJc
eEMzXHg5MyIsIFdpZGVTdHJpbmdUb1V0ZjgoTCJceEQzIiwgLTEpLmNfc3RyKCkpOwotCi0gIC8v
IDEwMSAwMTExIDAxMTAgPT4gMTEwLTEwMTAxIDEwLTExMDExMAotICBjb25zdCB3Y2hhcl90IHNb
XSA9IHsgMHg1NzYsICdcMCcgfTsKLSAgRVhQRUNUX1NUUkVRKCJceEQ1XHhCNiIsIFdpZGVTdHJp
bmdUb1V0ZjgocywgMSkuY19zdHIoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiXHhENVx4QjYiLCBXaWRl
U3RyaW5nVG9VdGY4KHMsIC0xKS5jX3N0cigpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBVbmljb2Rl
IGNvZGUtcG9pbnRzIHRoYXQgaGF2ZSAxMiB0byAxNiBiaXRzIGFyZSBlbmNvZGVkCi0vLyBhcyAx
MTEweHh4eCAxMHh4eHh4eCAxMHh4eHh4eC4KLVRFU1QoV2lkZVN0cmluZ1RvVXRmOFRlc3QsIENh
bkVuY29kZTEyVG8xNkJpdHMpIHsKLSAgLy8gMDAwMCAxMDAwIDExMDEgMDAxMSA9PiAxMTEwLTAw
MDAgMTAtMTAwMDExIDEwLTAxMDAxMQotICBjb25zdCB3Y2hhcl90IHMxW10gPSB7IDB4OEQzLCAn
XDAnIH07Ci0gIEVYUEVDVF9TVFJFUSgiXHhFMFx4QTNceDkzIiwgV2lkZVN0cmluZ1RvVXRmOChz
MSwgMSkuY19zdHIoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiXHhFMFx4QTNceDkzIiwgV2lkZVN0cmlu
Z1RvVXRmOChzMSwgLTEpLmNfc3RyKCkpOwotCi0gIC8vIDExMDAgMDExMSAwMTAwIDExMDEgPT4g
MTExMC0xMTAwIDEwLTAxMTEwMSAxMC0wMDExMDEKLSAgY29uc3Qgd2NoYXJfdCBzMltdID0geyAw
eEM3NEQsICdcMCcgfTsKLSAgRVhQRUNUX1NUUkVRKCJceEVDXHg5RFx4OEQiLCBXaWRlU3RyaW5n
VG9VdGY4KHMyLCAxKS5jX3N0cigpKTsKLSAgRVhQRUNUX1NUUkVRKCJceEVDXHg5RFx4OEQiLCBX
aWRlU3RyaW5nVG9VdGY4KHMyLCAtMSkuY19zdHIoKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhl
IGNvbnZlcnNpb24gc3RvcHMgd2hlbiB0aGUgZnVuY3Rpb24gZW5jb3VudGVycyBcMCBjaGFyYWN0
ZXIuCi1URVNUKFdpZGVTdHJpbmdUb1V0ZjhUZXN0LCBTdG9wc09uTnVsQ2hhcmFjdGVyKSB7Ci0g
IEVYUEVDVF9TVFJFUSgiQUJDIiwgV2lkZVN0cmluZ1RvVXRmOChMIkFCQ1wwWFlaIiwgMTAwKS5j
X3N0cigpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0aGUgY29udmVyc2lvbiBzdG9wcyB3aGVuIHRo
ZSBmdW5jdGlvbiByZWFjaGVzIHRoZSBsaW1pdAotLy8gc3BlY2lmaWVkIGJ5IHRoZSAnbGVuZ3Ro
JyBwYXJhbWV0ZXIuCi1URVNUKFdpZGVTdHJpbmdUb1V0ZjhUZXN0LCBTdG9wc1doZW5MZW5ndGhM
aW1pdFJlYWNoZWQpIHsKLSAgRVhQRUNUX1NUUkVRKCJBQkMiLCBXaWRlU3RyaW5nVG9VdGY4KEwi
QUJDREVGIiwgMykuY19zdHIoKSk7Ci19Ci0KLSNpZiAhR1RFU1RfV0lERV9TVFJJTkdfVVNFU19V
VEYxNl8KLS8vIFRlc3RzIHRoYXQgVW5pY29kZSBjb2RlLXBvaW50cyB0aGF0IGhhdmUgMTcgdG8g
MjEgYml0cyBhcmUgZW5jb2RlZAotLy8gYXMgMTExMTB4eHggMTB4eHh4eHggMTB4eHh4eHggMTB4
eHh4eHguIFRoaXMgY29kZSBtYXkgbm90IGNvbXBpbGUKLS8vIG9uIHRoZSBzeXN0ZW1zIHVzaW5n
IFVURi0xNiBlbmNvZGluZy4KLVRFU1QoV2lkZVN0cmluZ1RvVXRmOFRlc3QsIENhbkVuY29kZTE3
VG8yMUJpdHMpIHsKLSAgLy8gMCAwMDAxIDAwMDAgMTAwMCAxMTAxIDAwMTEgPT4gMTExMTAtMDAw
IDEwLTAxMDAwMCAxMC0xMDAwMTEgMTAtMDEwMDExCi0gIEVYUEVDVF9TVFJFUSgiXHhGMFx4OTBc
eEEzXHg5MyIsIFdpZGVTdHJpbmdUb1V0ZjgoTCJceDEwOEQzIiwgMSkuY19zdHIoKSk7Ci0gIEVY
UEVDVF9TVFJFUSgiXHhGMFx4OTBceEEzXHg5MyIsIFdpZGVTdHJpbmdUb1V0ZjgoTCJceDEwOEQz
IiwgLTEpLmNfc3RyKCkpOwotCi0gIC8vIDEgMDAwMCAxMDAwIDAxMTAgMDAxMSAwMTAwID0+IDEx
MTEwLTEwMCAxMC0wMDEwMDAgMTAtMDExMDAwIDEwLTExMDEwMAotICBFWFBFQ1RfU1RSRVEoIlx4
RjRceDg4XHg5OFx4QjQiLCBXaWRlU3RyaW5nVG9VdGY4KEwiXHgxMDg2MzQiLCAxKS5jX3N0cigp
KTsKLSAgRVhQRUNUX1NUUkVRKCJceEY0XHg4OFx4OThceEI0IiwgV2lkZVN0cmluZ1RvVXRmOChM
Ilx4MTA4NjM0IiwgLTEpLmNfc3RyKCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IGVuY29kaW5nIGFu
IGludmFsaWQgY29kZS1wb2ludCBnZW5lcmF0ZXMgdGhlIGV4cGVjdGVkIHJlc3VsdC4KLVRFU1Qo
V2lkZVN0cmluZ1RvVXRmOFRlc3QsIENhbkVuY29kZUludmFsaWRDb2RlUG9pbnQpIHsKLSAgRVhQ
RUNUX1NUUkVRKCIoSW52YWxpZCBVbmljb2RlIDB4QUJDREZGKSIsCi0gICAgICAgICAgICAgICBX
aWRlU3RyaW5nVG9VdGY4KEwiXHhBQkNERkYiLCAtMSkuY19zdHIoKSk7Ci19Ci0jZWxzZSAgLy8g
IUdURVNUX1dJREVfU1RSSU5HX1VTRVNfVVRGMTZfCi0vLyBUZXN0cyB0aGF0IHN1cnJvZ2F0ZSBw
YWlycyBhcmUgZW5jb2RlZCBjb3JyZWN0bHkgb24gdGhlIHN5c3RlbXMgdXNpbmcKLS8vIFVURi0x
NiBlbmNvZGluZyBpbiB0aGUgd2lkZSBzdHJpbmdzLgotVEVTVChXaWRlU3RyaW5nVG9VdGY4VGVz
dCwgQ2FuRW5jb2RlVmFsaWRVdGYxNlNVcnJvZ2F0ZVBhaXJzKSB7Ci0gIGNvbnN0IHdjaGFyX3Qg
c1tdID0geyAweEQ4MDEsIDB4REMwMCwgJ1wwJyB9OwotICBFWFBFQ1RfU1RSRVEoIlx4RjBceDkw
XHg5MFx4ODAiLCBXaWRlU3RyaW5nVG9VdGY4KHMsIC0xKS5jX3N0cigpKTsKLX0KLQotLy8gVGVz
dHMgdGhhdCBlbmNvZGluZyBhbiBpbnZhbGlkIFVURi0xNiBzdXJyb2dhdGUgcGFpcgotLy8gZ2Vu
ZXJhdGVzIHRoZSBleHBlY3RlZCByZXN1bHQuCi1URVNUKFdpZGVTdHJpbmdUb1V0ZjhUZXN0LCBD
YW5FbmNvZGVJbnZhbGlkVXRmMTZTdXJyb2dhdGVQYWlyKSB7Ci0gIC8vIExlYWRpbmcgc3Vycm9n
YXRlIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KLSAgY29uc3Qgd2NoYXJfdCBzMVtdID0g
eyAweEQ4MDAsICdcMCcgfTsKLSAgRVhQRUNUX1NUUkVRKCJceEVEXHhBMFx4ODAiLCBXaWRlU3Ry
aW5nVG9VdGY4KHMxLCAtMSkuY19zdHIoKSk7Ci0gIC8vIExlYWRpbmcgc3Vycm9nYXRlIGlzIG5v
dCBmb2xsb3dlZCBieSB0aGUgdHJhaWxpbmcgc3Vycm9nYXRlLgotICBjb25zdCB3Y2hhcl90IHMy
W10gPSB7IDB4RDgwMCwgJ00nLCAnXDAnIH07Ci0gIEVYUEVDVF9TVFJFUSgiXHhFRFx4QTBceDgw
TSIsIFdpZGVTdHJpbmdUb1V0ZjgoczIsIC0xKS5jX3N0cigpKTsKLSAgLy8gVHJhaWxpbmcgc3Vy
cm9nYXRlIGFwcGVhcmFzIHdpdGhvdXQgYSBsZWFkaW5nIHN1cnJvZ2F0ZS4KLSAgY29uc3Qgd2No
YXJfdCBzM1tdID0geyAweERDMDAsICdQJywgJ1EnLCAnUicsICdcMCcgfTsKLSAgRVhQRUNUX1NU
UkVRKCJceEVEXHhCMFx4ODBQUVIiLCBXaWRlU3RyaW5nVG9VdGY4KHMzLCAtMSkuY19zdHIoKSk7
Ci19Ci0jZW5kaWYgIC8vICFHVEVTVF9XSURFX1NUUklOR19VU0VTX1VURjE2XwotCi0vLyBUZXN0
cyB0aGF0IGNvZGVwb2ludCBjb25jYXRlbmF0aW9uIHdvcmtzIGNvcnJlY3RseS4KLSNpZiAhR1RF
U1RfV0lERV9TVFJJTkdfVVNFU19VVEYxNl8KLVRFU1QoV2lkZVN0cmluZ1RvVXRmOFRlc3QsIENv
bmNhdGVuYXRlc0NvZGVwb2ludHNDb3JyZWN0bHkpIHsKLSAgY29uc3Qgd2NoYXJfdCBzW10gPSB7
IDB4MTA4NjM0LCAweEM3NEQsICdcbicsIDB4NTc2LCAweDhEMywgMHgxMDg2MzQsICdcMCd9Owot
ICBFWFBFQ1RfU1RSRVEoCi0gICAgICAiXHhGNFx4ODhceDk4XHhCNCIKLSAgICAgICAgICAiXHhF
Q1x4OURceDhEIgotICAgICAgICAgICJcbiIKLSAgICAgICAgICAiXHhENVx4QjYiCi0gICAgICAg
ICAgIlx4RTBceEEzXHg5MyIKLSAgICAgICAgICAiXHhGNFx4ODhceDk4XHhCNCIsCi0gICAgICBX
aWRlU3RyaW5nVG9VdGY4KHMsIC0xKS5jX3N0cigpKTsKLX0KLSNlbHNlCi1URVNUKFdpZGVTdHJp
bmdUb1V0ZjhUZXN0LCBDb25jYXRlbmF0ZXNDb2RlcG9pbnRzQ29ycmVjdGx5KSB7Ci0gIGNvbnN0
IHdjaGFyX3Qgc1tdID0geyAweEM3NEQsICdcbicsIDB4NTc2LCAweDhEMywgJ1wwJ307Ci0gIEVY
UEVDVF9TVFJFUSgKLSAgICAgICJceEVDXHg5RFx4OEQiICJcbiIgIlx4RDVceEI2IiAiXHhFMFx4
QTNceDkzIiwKLSAgICAgIFdpZGVTdHJpbmdUb1V0ZjgocywgLTEpLmNfc3RyKCkpOwotfQotI2Vu
ZGlmICAvLyAhR1RFU1RfV0lERV9TVFJJTkdfVVNFU19VVEYxNl8KLQotLy8gVGVzdHMgdGhlIFJh
bmRvbSBjbGFzcy4KLQotVEVTVChSYW5kb21EZWF0aFRlc3QsIEdlbmVyYXRlc0NyYXNoZXNPbklu
dmFsaWRSYW5nZSkgewotICB0ZXN0aW5nOjppbnRlcm5hbDo6UmFuZG9tIHJhbmRvbSg0Mik7Ci0g
IEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAgICByYW5kb20uR2VuZXJhdGUoMCksCi0g
ICAgICAiQ2Fubm90IGdlbmVyYXRlIGEgbnVtYmVyIGluIHRoZSByYW5nZSBcXFswLCAwXFwpIik7
Ci0gIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAgICByYW5kb20uR2VuZXJhdGUodGVz
dGluZzo6aW50ZXJuYWw6OlJhbmRvbTo6a01heFJhbmdlICsgMSksCi0gICAgICAiR2VuZXJhdGlv
biBvZiBhIG51bWJlciBpbiBcXFswLCAyMTQ3NDgzNjQ5XFwpIHdhcyByZXF1ZXN0ZWQsICIKLSAg
ICAgICJidXQgdGhpcyBjYW4gb25seSBnZW5lcmF0ZSBudW1iZXJzIGluIFxcWzAsIDIxNDc0ODM2
NDhcXCkiKTsKLX0KLQotVEVTVChSYW5kb21UZXN0LCBHZW5lcmF0ZXNOdW1iZXJzV2l0aGluUmFu
Z2UpIHsKLSAgY29uc3QgVUludDMyIGtSYW5nZSA9IDEwMDAwOwotICB0ZXN0aW5nOjppbnRlcm5h
bDo6UmFuZG9tIHJhbmRvbSgxMjM0NSk7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykg
ewotICAgIEVYUEVDVF9MVChyYW5kb20uR2VuZXJhdGUoa1JhbmdlKSwga1JhbmdlKSA8PCAiIGZv
ciBpdGVyYXRpb24gIiA8PCBpOwotICB9Ci0KLSAgdGVzdGluZzo6aW50ZXJuYWw6OlJhbmRvbSBy
YW5kb20yKHRlc3Rpbmc6OmludGVybmFsOjpSYW5kb206OmtNYXhSYW5nZSk7Ci0gIGZvciAoaW50
IGkgPSAwOyBpIDwgMTA7IGkrKykgewotICAgIEVYUEVDVF9MVChyYW5kb20yLkdlbmVyYXRlKGtS
YW5nZSksIGtSYW5nZSkgPDwgIiBmb3IgaXRlcmF0aW9uICIgPDwgaTsKLSAgfQotfQotCi1URVNU
KFJhbmRvbVRlc3QsIFJlcGVhdHNXaGVuUmVzZWVkZWQpIHsKLSAgY29uc3QgaW50IGtTZWVkID0g
MTIzOwotICBjb25zdCBpbnQga0FycmF5U2l6ZSA9IDEwOwotICBjb25zdCBVSW50MzIga1Jhbmdl
ID0gMTAwMDA7Ci0gIFVJbnQzMiB2YWx1ZXNba0FycmF5U2l6ZV07Ci0KLSAgdGVzdGluZzo6aW50
ZXJuYWw6OlJhbmRvbSByYW5kb20oa1NlZWQpOwotICBmb3IgKGludCBpID0gMDsgaSA8IGtBcnJh
eVNpemU7IGkrKykgewotICAgIHZhbHVlc1tpXSA9IHJhbmRvbS5HZW5lcmF0ZShrUmFuZ2UpOwot
ICB9Ci0KLSAgcmFuZG9tLlJlc2VlZChrU2VlZCk7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwga0Fy
cmF5U2l6ZTsgaSsrKSB7Ci0gICAgRVhQRUNUX0VRKHZhbHVlc1tpXSwgcmFuZG9tLkdlbmVyYXRl
KGtSYW5nZSkpIDw8ICIgZm9yIGl0ZXJhdGlvbiAiIDw8IGk7Ci0gIH0KLX0KLQotLy8gVGVzdHMg
U1RMIGNvbnRhaW5lciB1dGlsaXRpZXMuCi0KLS8vIFRlc3RzIENvdW50SWYoKS4KLQotc3RhdGlj
IGJvb2wgSXNQb3NpdGl2ZShpbnQgbikgeyByZXR1cm4gbiA+IDA7IH0KLQotVEVTVChDb250YWlu
ZXJVdGlsaXR5VGVzdCwgQ291bnRJZikgewotICBzdGQ6OnZlY3RvcjxpbnQ+IHY7Ci0gIEVYUEVD
VF9FUSgwLCBDb3VudElmKHYsIElzUG9zaXRpdmUpKTsgIC8vIFdvcmtzIGZvciBhbiBlbXB0eSBj
b250YWluZXIuCi0KLSAgdi5wdXNoX2JhY2soLTEpOwotICB2LnB1c2hfYmFjaygwKTsKLSAgRVhQ
RUNUX0VRKDAsIENvdW50SWYodiwgSXNQb3NpdGl2ZSkpOyAgLy8gV29ya3Mgd2hlbiBubyB2YWx1
ZSBzYXRpc2ZpZXMuCi0KLSAgdi5wdXNoX2JhY2soMik7Ci0gIHYucHVzaF9iYWNrKC0xMCk7Ci0g
IHYucHVzaF9iYWNrKDEwKTsKLSAgRVhQRUNUX0VRKDIsIENvdW50SWYodiwgSXNQb3NpdGl2ZSkp
OwotfQotCi0vLyBUZXN0cyBGb3JFYWNoKCkuCi0KLXN0YXRpYyBpbnQgZ19zdW0gPSAwOwotc3Rh
dGljIHZvaWQgQWNjdW11bGF0ZShpbnQgbikgeyBnX3N1bSArPSBuOyB9Ci0KLVRFU1QoQ29udGFp
bmVyVXRpbGl0eVRlc3QsIEZvckVhY2gpIHsKLSAgc3RkOjp2ZWN0b3I8aW50PiB2OwotICBnX3N1
bSA9IDA7Ci0gIEZvckVhY2godiwgQWNjdW11bGF0ZSk7Ci0gIEVYUEVDVF9FUSgwLCBnX3N1bSk7
ICAvLyBXb3JrcyBmb3IgYW4gZW1wdHkgY29udGFpbmVyOwotCi0gIGdfc3VtID0gMDsKLSAgdi5w
dXNoX2JhY2soMSk7Ci0gIEZvckVhY2godiwgQWNjdW11bGF0ZSk7Ci0gIEVYUEVDVF9FUSgxLCBn
X3N1bSk7ICAvLyBXb3JrcyBmb3IgYSBjb250YWluZXIgd2l0aCBvbmUgZWxlbWVudC4KLQotICBn
X3N1bSA9IDA7Ci0gIHYucHVzaF9iYWNrKDIwKTsKLSAgdi5wdXNoX2JhY2soMzAwKTsKLSAgRm9y
RWFjaCh2LCBBY2N1bXVsYXRlKTsKLSAgRVhQRUNUX0VRKDMyMSwgZ19zdW0pOwotfQotCi0vLyBU
ZXN0cyBHZXRFbGVtZW50T3IoKS4KLVRFU1QoQ29udGFpbmVyVXRpbGl0eVRlc3QsIEdldEVsZW1l
bnRPcikgewotICBzdGQ6OnZlY3RvcjxjaGFyPiBhOwotICBFWFBFQ1RfRVEoJ3gnLCBHZXRFbGVt
ZW50T3IoYSwgMCwgJ3gnKSk7Ci0KLSAgYS5wdXNoX2JhY2soJ2EnKTsKLSAgYS5wdXNoX2JhY2so
J2InKTsKLSAgRVhQRUNUX0VRKCdhJywgR2V0RWxlbWVudE9yKGEsIDAsICd4JykpOwotICBFWFBF
Q1RfRVEoJ2InLCBHZXRFbGVtZW50T3IoYSwgMSwgJ3gnKSk7Ci0gIEVYUEVDVF9FUSgneCcsIEdl
dEVsZW1lbnRPcihhLCAtMiwgJ3gnKSk7Ci0gIEVYUEVDVF9FUSgneCcsIEdldEVsZW1lbnRPcihh
LCAyLCAneCcpKTsKLX0KLQotVEVTVChDb250YWluZXJVdGlsaXR5RGVhdGhUZXN0LCBTaHVmZmxl
UmFuZ2UpIHsKLSAgc3RkOjp2ZWN0b3I8aW50PiBhOwotICBhLnB1c2hfYmFjaygwKTsKLSAgYS5w
dXNoX2JhY2soMSk7Ci0gIGEucHVzaF9iYWNrKDIpOwotICB0ZXN0aW5nOjppbnRlcm5hbDo6UmFu
ZG9tIHJhbmRvbSgxKTsKLQotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKAotICAgICAgU2h1
ZmZsZVJhbmdlKCZyYW5kb20sIC0xLCAxLCAmYSksCi0gICAgICAiSW52YWxpZCBzaHVmZmxlIHJh
bmdlIHN0YXJ0IC0xOiBtdXN0IGJlIGluIHJhbmdlIFxcWzAsIDNcXF0iKTsKLSAgRVhQRUNUX0RF
QVRIX0lGX1NVUFBPUlRFRCgKLSAgICAgIFNodWZmbGVSYW5nZSgmcmFuZG9tLCA0LCA0LCAmYSks
Ci0gICAgICAiSW52YWxpZCBzaHVmZmxlIHJhbmdlIHN0YXJ0IDQ6IG11c3QgYmUgaW4gcmFuZ2Ug
XFxbMCwgM1xcXSIpOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKAotICAgICAgU2h1ZmZs
ZVJhbmdlKCZyYW5kb20sIDMsIDIsICZhKSwKLSAgICAgICJJbnZhbGlkIHNodWZmbGUgcmFuZ2Ug
ZmluaXNoIDI6IG11c3QgYmUgaW4gcmFuZ2UgXFxbMywgM1xcXSIpOwotICBFWFBFQ1RfREVBVEhf
SUZfU1VQUE9SVEVEKAotICAgICAgU2h1ZmZsZVJhbmdlKCZyYW5kb20sIDMsIDQsICZhKSwKLSAg
ICAgICJJbnZhbGlkIHNodWZmbGUgcmFuZ2UgZmluaXNoIDQ6IG11c3QgYmUgaW4gcmFuZ2UgXFxb
MywgM1xcXSIpOwotfQotCi1jbGFzcyBWZWN0b3JTaHVmZmxlVGVzdCA6IHB1YmxpYyBUZXN0IHsK
LSBwcm90ZWN0ZWQ6Ci0gIHN0YXRpYyBjb25zdCBpbnQga1ZlY3RvclNpemUgPSAyMDsKLQotICBW
ZWN0b3JTaHVmZmxlVGVzdCgpIDogcmFuZG9tXygxKSB7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBrVmVjdG9yU2l6ZTsgaSsrKSB7Ci0gICAgICB2ZWN0b3JfLnB1c2hfYmFjayhpKTsKLSAgICB9
Ci0gIH0KLQotICBzdGF0aWMgYm9vbCBWZWN0b3JJc0NvcnJ1cHQoY29uc3QgVGVzdGluZ1ZlY3Rv
ciYgdmVjdG9yKSB7Ci0gICAgaWYgKGtWZWN0b3JTaXplICE9IHN0YXRpY19jYXN0PGludD4odmVj
dG9yLnNpemUoKSkpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGJvb2wgZm91
bmRfaW5fdmVjdG9yW2tWZWN0b3JTaXplXSA9IHsgZmFsc2UgfTsKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7IGkrKykgewotICAgICAgY29uc3QgaW50IGUgPSB2ZWN0
b3JbaV07Ci0gICAgICBpZiAoZSA8IDAgfHwgZSA+PSBrVmVjdG9yU2l6ZSB8fCBmb3VuZF9pbl92
ZWN0b3JbZV0pIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICB9Ci0gICAgICBmb3VuZF9p
bl92ZWN0b3JbZV0gPSB0cnVlOwotICAgIH0KLQotICAgIC8vIFZlY3RvciBzaXplIGlzIGNvcnJl
Y3QsIGVsZW1lbnRzJyByYW5nZSBpcyBjb3JyZWN0LCBubwotICAgIC8vIGR1cGxpY2F0ZSBlbGVt
ZW50cy4gIFRoZXJlZm9yZSBubyBjb3JydXB0aW9uIGhhcyBvY2N1cnJlZC4KLSAgICByZXR1cm4g
ZmFsc2U7Ci0gIH0KLQotICBzdGF0aWMgYm9vbCBWZWN0b3JJc05vdENvcnJ1cHQoY29uc3QgVGVz
dGluZ1ZlY3RvciYgdmVjdG9yKSB7Ci0gICAgcmV0dXJuICFWZWN0b3JJc0NvcnJ1cHQodmVjdG9y
KTsKLSAgfQotCi0gIHN0YXRpYyBib29sIFJhbmdlSXNTaHVmZmxlZChjb25zdCBUZXN0aW5nVmVj
dG9yJiB2ZWN0b3IsIGludCBiZWdpbiwgaW50IGVuZCkgewotICAgIGZvciAoaW50IGkgPSBiZWdp
bjsgaSA8IGVuZDsgaSsrKSB7Ci0gICAgICBpZiAoaSAhPSB2ZWN0b3JbaV0pIHsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0g
IHN0YXRpYyBib29sIFJhbmdlSXNVbnNodWZmbGVkKAotICAgICAgY29uc3QgVGVzdGluZ1ZlY3Rv
ciYgdmVjdG9yLCBpbnQgYmVnaW4sIGludCBlbmQpIHsKLSAgICByZXR1cm4gIVJhbmdlSXNTaHVm
ZmxlZCh2ZWN0b3IsIGJlZ2luLCBlbmQpOwotICB9Ci0KLSAgc3RhdGljIGJvb2wgVmVjdG9ySXNT
aHVmZmxlZChjb25zdCBUZXN0aW5nVmVjdG9yJiB2ZWN0b3IpIHsKLSAgICByZXR1cm4gUmFuZ2VJ
c1NodWZmbGVkKHZlY3RvciwgMCwgc3RhdGljX2Nhc3Q8aW50Pih2ZWN0b3Iuc2l6ZSgpKSk7Ci0g
IH0KLQotICBzdGF0aWMgYm9vbCBWZWN0b3JJc1Vuc2h1ZmZsZWQoY29uc3QgVGVzdGluZ1ZlY3Rv
ciYgdmVjdG9yKSB7Ci0gICAgcmV0dXJuICFWZWN0b3JJc1NodWZmbGVkKHZlY3Rvcik7Ci0gIH0K
LQotICB0ZXN0aW5nOjppbnRlcm5hbDo6UmFuZG9tIHJhbmRvbV87Ci0gIFRlc3RpbmdWZWN0b3Ig
dmVjdG9yXzsKLX07ICAvLyBjbGFzcyBWZWN0b3JTaHVmZmxlVGVzdAotCi1jb25zdCBpbnQgVmVj
dG9yU2h1ZmZsZVRlc3Q6OmtWZWN0b3JTaXplOwotCi1URVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3Qs
IEhhbmRsZXNFbXB0eVJhbmdlKSB7Ci0gIC8vIFRlc3RzIGFuIGVtcHR5IHJhbmdlIGF0IHRoZSBi
ZWdpbm5pbmcuLi4KLSAgU2h1ZmZsZVJhbmdlKCZyYW5kb21fLCAwLCAwLCAmdmVjdG9yXyk7Ci0g
IEFTU0VSVF9QUkVEMShWZWN0b3JJc05vdENvcnJ1cHQsIHZlY3Rvcl8pOwotICBBU1NFUlRfUFJF
RDEoVmVjdG9ySXNVbnNodWZmbGVkLCB2ZWN0b3JfKTsKLQotICAvLyAuLi5pbiB0aGUgbWlkZGxl
Li4uCi0gIFNodWZmbGVSYW5nZSgmcmFuZG9tXywga1ZlY3RvclNpemUvMiwga1ZlY3RvclNpemUv
MiwgJnZlY3Rvcl8pOwotICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3Jf
KTsKLSAgQVNTRVJUX1BSRUQxKFZlY3RvcklzVW5zaHVmZmxlZCwgdmVjdG9yXyk7Ci0KLSAgLy8g
Li4uYXQgdGhlIGVuZC4uLgotICBTaHVmZmxlUmFuZ2UoJnJhbmRvbV8sIGtWZWN0b3JTaXplIC0g
MSwga1ZlY3RvclNpemUgLSAxLCAmdmVjdG9yXyk7Ci0gIEFTU0VSVF9QUkVEMShWZWN0b3JJc05v
dENvcnJ1cHQsIHZlY3Rvcl8pOwotICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNVbnNodWZmbGVkLCB2
ZWN0b3JfKTsKLQotICAvLyAuLi5hbmQgcGFzdCB0aGUgZW5kLgotICBTaHVmZmxlUmFuZ2UoJnJh
bmRvbV8sIGtWZWN0b3JTaXplLCBrVmVjdG9yU2l6ZSwgJnZlY3Rvcl8pOwotICBBU1NFUlRfUFJF
RDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsKLSAgQVNTRVJUX1BSRUQxKFZlY3Rvcklz
VW5zaHVmZmxlZCwgdmVjdG9yXyk7Ci19Ci0KLVRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgSGFu
ZGxlc1JhbmdlT2ZTaXplT25lKSB7Ci0gIC8vIFRlc3RzIGEgc2l6ZSBvbmUgcmFuZ2UgYXQgdGhl
IGJlZ2lubmluZy4uLgotICBTaHVmZmxlUmFuZ2UoJnJhbmRvbV8sIDAsIDEsICZ2ZWN0b3JfKTsK
LSAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29ycnVwdCwgdmVjdG9yXyk7Ci0gIEFTU0VSVF9Q
UkVEMShWZWN0b3JJc1Vuc2h1ZmZsZWQsIHZlY3Rvcl8pOwotCi0gIC8vIC4uLmluIHRoZSBtaWRk
bGUuLi4KLSAgU2h1ZmZsZVJhbmdlKCZyYW5kb21fLCBrVmVjdG9yU2l6ZS8yLCBrVmVjdG9yU2l6
ZS8yICsgMSwgJnZlY3Rvcl8pOwotICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2
ZWN0b3JfKTsKLSAgQVNTRVJUX1BSRUQxKFZlY3RvcklzVW5zaHVmZmxlZCwgdmVjdG9yXyk7Ci0K
LSAgLy8gLi4uYW5kIGF0IHRoZSBlbmQuCi0gIFNodWZmbGVSYW5nZSgmcmFuZG9tXywga1ZlY3Rv
clNpemUgLSAxLCBrVmVjdG9yU2l6ZSwgJnZlY3Rvcl8pOwotICBBU1NFUlRfUFJFRDEoVmVjdG9y
SXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsKLSAgQVNTRVJUX1BSRUQxKFZlY3RvcklzVW5zaHVmZmxl
ZCwgdmVjdG9yXyk7Ci19Ci0KLS8vIEJlY2F1c2Ugd2UgdXNlIG91ciBvd24gcmFuZG9tIG51bWJl
ciBnZW5lcmF0b3IgYW5kIGEgZml4ZWQgc2VlZCwKLS8vIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0
aGUgZm9sbG93aW5nICJyYW5kb20iIHRlc3RzIHdpbGwgc3VjY2VlZC4KLQotVEVTVF9GKFZlY3Rv
clNodWZmbGVUZXN0LCBTaHVmZmxlc0VudGlyZVZlY3RvcikgewotICBTaHVmZmxlKCZyYW5kb21f
LCAmdmVjdG9yXyk7Ci0gIEFTU0VSVF9QUkVEMShWZWN0b3JJc05vdENvcnJ1cHQsIHZlY3Rvcl8p
OwotICBFWFBFQ1RfRkFMU0UoVmVjdG9ySXNVbnNodWZmbGVkKHZlY3Rvcl8pKSA8PCB2ZWN0b3Jf
OwotCi0gIC8vIFRlc3RzIHRoZSBmaXJzdCBhbmQgbGFzdCBlbGVtZW50cyBpbiBwYXJ0aWN1bGFy
IHRvIGVuc3VyZSB0aGF0Ci0gIC8vIHRoZXJlIGFyZSBubyBvZmYtYnktb25lIHByb2JsZW1zIGlu
IG91ciBzaHVmZmxlIGFsZ29yaXRobS4KLSAgRVhQRUNUX05FKDAsIHZlY3Rvcl9bMF0pOwotICBF
WFBFQ1RfTkUoa1ZlY3RvclNpemUgLSAxLCB2ZWN0b3JfW2tWZWN0b3JTaXplIC0gMV0pOwotfQot
Ci1URVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzU3RhcnRPZlZlY3RvcikgewotICBj
b25zdCBpbnQga1JhbmdlU2l6ZSA9IGtWZWN0b3JTaXplLzI7Ci0KLSAgU2h1ZmZsZVJhbmdlKCZy
YW5kb21fLCAwLCBrUmFuZ2VTaXplLCAmdmVjdG9yXyk7Ci0KLSAgQVNTRVJUX1BSRUQxKFZlY3Rv
cklzTm90Q29ycnVwdCwgdmVjdG9yXyk7Ci0gIEVYUEVDVF9QUkVEMyhSYW5nZUlzU2h1ZmZsZWQs
IHZlY3Rvcl8sIDAsIGtSYW5nZVNpemUpOwotICBFWFBFQ1RfUFJFRDMoUmFuZ2VJc1Vuc2h1ZmZs
ZWQsIHZlY3Rvcl8sIGtSYW5nZVNpemUsIGtWZWN0b3JTaXplKTsKLX0KLQotVEVTVF9GKFZlY3Rv
clNodWZmbGVUZXN0LCBTaHVmZmxlc0VuZE9mVmVjdG9yKSB7Ci0gIGNvbnN0IGludCBrUmFuZ2VT
aXplID0ga1ZlY3RvclNpemUgLyAyOwotICBTaHVmZmxlUmFuZ2UoJnJhbmRvbV8sIGtSYW5nZVNp
emUsIGtWZWN0b3JTaXplLCAmdmVjdG9yXyk7Ci0KLSAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90
Q29ycnVwdCwgdmVjdG9yXyk7Ci0gIEVYUEVDVF9QUkVEMyhSYW5nZUlzVW5zaHVmZmxlZCwgdmVj
dG9yXywgMCwga1JhbmdlU2l6ZSk7Ci0gIEVYUEVDVF9QUkVEMyhSYW5nZUlzU2h1ZmZsZWQsIHZl
Y3Rvcl8sIGtSYW5nZVNpemUsIGtWZWN0b3JTaXplKTsKLX0KLQotVEVTVF9GKFZlY3RvclNodWZm
bGVUZXN0LCBTaHVmZmxlc01pZGRsZU9mVmVjdG9yKSB7Ci0gIGludCBrUmFuZ2VTaXplID0ga1Zl
Y3RvclNpemUvMzsKLSAgU2h1ZmZsZVJhbmdlKCZyYW5kb21fLCBrUmFuZ2VTaXplLCAyKmtSYW5n
ZVNpemUsICZ2ZWN0b3JfKTsKLQotICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2
ZWN0b3JfKTsKLSAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBr
UmFuZ2VTaXplKTsKLSAgRVhQRUNUX1BSRUQzKFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9yXywga1Jh
bmdlU2l6ZSwgMiprUmFuZ2VTaXplKTsKLSAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVk
LCB2ZWN0b3JfLCAyKmtSYW5nZVNpemUsIGtWZWN0b3JTaXplKTsKLX0KLQotVEVTVF9GKFZlY3Rv
clNodWZmbGVUZXN0LCBTaHVmZmxlc1JlcGVhdGFibHkpIHsKLSAgVGVzdGluZ1ZlY3RvciB2ZWN0
b3IyOwotICBmb3IgKGludCBpID0gMDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKLSAgICB2ZWN0
b3IyLnB1c2hfYmFjayhpKTsKLSAgfQotCi0gIHJhbmRvbV8uUmVzZWVkKDEyMzQpOwotICBTaHVm
ZmxlKCZyYW5kb21fLCAmdmVjdG9yXyk7Ci0gIHJhbmRvbV8uUmVzZWVkKDEyMzQpOwotICBTaHVm
ZmxlKCZyYW5kb21fLCAmdmVjdG9yMik7Ci0KLSAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29y
cnVwdCwgdmVjdG9yXyk7Ci0gIEFTU0VSVF9QUkVEMShWZWN0b3JJc05vdENvcnJ1cHQsIHZlY3Rv
cjIpOwotCi0gIGZvciAoaW50IGkgPSAwOyBpIDwga1ZlY3RvclNpemU7IGkrKykgewotICAgIEVY
UEVDVF9FUSh2ZWN0b3JfW2ldLCB2ZWN0b3IyW2ldKSA8PCAiIHdoZXJlIGkgaXMgIiA8PCBpOwot
ICB9Ci19Ci0KLS8vIFRlc3RzIHRoZSBzaXplIG9mIHRoZSBBc3NlcnRIZWxwZXIgY2xhc3MuCi0K
LVRFU1QoQXNzZXJ0SGVscGVyVGVzdCwgQXNzZXJ0SGVscGVySXNTbWFsbCkgewotICAvLyBUbyBh
dm9pZCBicmVha2luZyBjbGllbnRzIHRoYXQgdXNlIGxvdHMgb2YgYXNzZXJ0aW9ucyBpbiBvbmUK
LSAgLy8gZnVuY3Rpb24sIHdlIGNhbm5vdCBncm93IHRoZSBzaXplIG9mIEFzc2VydEhlbHBlci4K
LSAgRVhQRUNUX0xFKHNpemVvZih0ZXN0aW5nOjppbnRlcm5hbDo6QXNzZXJ0SGVscGVyKSwgc2l6
ZW9mKHZvaWQqKSk7Ci19Ci0KLS8vIFRlc3RzIFN0cmluZzo6RW5kc1dpdGhDYXNlSW5zZW5zaXRp
dmUoKS4KLVRFU1QoU3RyaW5nVGVzdCwgRW5kc1dpdGhDYXNlSW5zZW5zaXRpdmUpIHsKLSAgRVhQ
RUNUX1RSVUUoU3RyaW5nOjpFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSgiZm9vYmFyIiwgIkJBUiIp
KTsKLSAgRVhQRUNUX1RSVUUoU3RyaW5nOjpFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSgiZm9vYmFS
IiwgImJhciIpKTsKLSAgRVhQRUNUX1RSVUUoU3RyaW5nOjpFbmRzV2l0aENhc2VJbnNlbnNpdGl2
ZSgiZm9vYmFyIiwgIiIpKTsKLSAgRVhQRUNUX1RSVUUoU3RyaW5nOjpFbmRzV2l0aENhc2VJbnNl
bnNpdGl2ZSgiIiwgIiIpKTsKLQotICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpFbmRzV2l0aENhc2VJ
bnNlbnNpdGl2ZSgiRm9vYmFyIiwgImZvbyIpKTsKLSAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6RW5k
c1dpdGhDYXNlSW5zZW5zaXRpdmUoImZvb2JhciIsICJGb28iKSk7Ci0gIEVYUEVDVF9GQUxTRShT
dHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKCIiLCAiZm9vIikpOwotfQotCi0vLyBDKytC
dWlsZGVyJ3MgcHJlcHJvY2Vzc29yIGlzIGJ1Z2d5OyBpdCBmYWlscyB0byBleHBhbmQgbWFjcm9z
IHRoYXQKLS8vIGFwcGVhciBpbiBtYWNybyBwYXJhbWV0ZXJzIGFmdGVyIHdpZGUgY2hhciBsaXRl
cmFscy4gIFByb3ZpZGUgYW4gYWxpYXMKLS8vIGZvciBOVUxMIGFzIGEgd29ya2Fyb3VuZC4KLXN0
YXRpYyBjb25zdCB3Y2hhcl90KiBjb25zdCBrTnVsbCA9IE5VTEw7Ci0KLS8vIFRlc3RzIFN0cmlu
Zzo6Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMKLVRFU1QoU3RyaW5nVGVzdCwgQ2Fz
ZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMpIHsKLSAgRVhQRUNUX1RSVUUoU3RyaW5nOjpD
YXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhOVUxMLCBOVUxMKSk7Ci0gIEVYUEVDVF9G
QUxTRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKGtOdWxsLCBMIiIp
KTsKLSAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVh
bHMoTCIiLCBrTnVsbCkpOwotICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVX
aWRlQ1N0cmluZ0VxdWFscyhrTnVsbCwgTCJmb29iYXIiKSk7Ci0gIEVYUEVDVF9GQUxTRShTdHJp
bmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKEwiZm9vYmFyIiwga051bGwpKTsK
LSAgRVhQRUNUX1RSVUUoU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhM
ImZvb2JhciIsIEwiZm9vYmFyIikpOwotICBFWFBFQ1RfVFJVRShTdHJpbmc6OkNhc2VJbnNlbnNp
dGl2ZVdpZGVDU3RyaW5nRXF1YWxzKEwiZm9vYmFyIiwgTCJGT09CQVIiKSk7Ci0gIEVYUEVDVF9U
UlVFKFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoTCJGT09CQVIiLCBM
ImZvb2JhciIpKTsKLX0KLQotI2lmIEdURVNUX09TX1dJTkRPV1MKLQotLy8gVGVzdHMgU3RyaW5n
OjpTaG93V2lkZUNTdHJpbmcoKS4KLVRFU1QoU3RyaW5nVGVzdCwgU2hvd1dpZGVDU3RyaW5nKSB7
Ci0gIEVYUEVDVF9TVFJFUSgiKG51bGwpIiwKLSAgICAgICAgICAgICAgIFN0cmluZzo6U2hvd1dp
ZGVDU3RyaW5nKE5VTEwpLmNfc3RyKCkpOwotICBFWFBFQ1RfU1RSRVEoIiIsIFN0cmluZzo6U2hv
d1dpZGVDU3RyaW5nKEwiIikuY19zdHIoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiZm9vIiwgU3RyaW5n
OjpTaG93V2lkZUNTdHJpbmcoTCJmb28iKS5jX3N0cigpKTsKLX0KLQotIyBpZiBHVEVTVF9PU19X
SU5ET1dTX01PQklMRQotVEVTVChTdHJpbmdUZXN0LCBBbnNpQW5kVXRmMTZOdWxsKSB7Ci0gIEVY
UEVDVF9FUShOVUxMLCBTdHJpbmc6OkFuc2lUb1V0ZjE2KE5VTEwpKTsKLSAgRVhQRUNUX0VRKE5V
TEwsIFN0cmluZzo6VXRmMTZUb0Fuc2koTlVMTCkpOwotfQotCi1URVNUKFN0cmluZ1Rlc3QsIEFu
c2lBbmRVdGYxNkNvbnZlcnRCYXNpYykgewotICBjb25zdCBjaGFyKiBhbnNpID0gU3RyaW5nOjpV
dGYxNlRvQW5zaShMInN0ciIpOwotICBFWFBFQ1RfU1RSRVEoInN0ciIsIGFuc2kpOwotICBkZWxl
dGUgW10gYW5zaTsKLSAgY29uc3QgV0NIQVIqIHV0ZjE2ID0gU3RyaW5nOjpBbnNpVG9VdGYxNigi
c3RyIik7Ci0gIEVYUEVDVF9FUSgwLCB3Y3NuY21wKEwic3RyIiwgdXRmMTYsIDMpKTsKLSAgZGVs
ZXRlIFtdIHV0ZjE2OwotfQotCi1URVNUKFN0cmluZ1Rlc3QsIEFuc2lBbmRVdGYxNkNvbnZlcnRQ
YXRoQ2hhcnMpIHsKLSAgY29uc3QgY2hhciogYW5zaSA9IFN0cmluZzo6VXRmMTZUb0Fuc2koTCIu
OlxcIFwiKj8iKTsKLSAgRVhQRUNUX1NUUkVRKCIuOlxcIFwiKj8iLCBhbnNpKTsKLSAgZGVsZXRl
IFtdIGFuc2k7Ci0gIGNvbnN0IFdDSEFSKiB1dGYxNiA9IFN0cmluZzo6QW5zaVRvVXRmMTYoIi46
XFwgXCIqPyIpOwotICBFWFBFQ1RfRVEoMCwgd2NzbmNtcChMIi46XFwgXCIqPyIsIHV0ZjE2LCAz
KSk7Ci0gIGRlbGV0ZSBbXSB1dGYxNjsKLX0KLSMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1Nf
TU9CSUxFCi0KLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotCi0vLyBUZXN0cyBUZXN0UHJv
cGVydHkgY29uc3RydWN0aW9uLgotVEVTVChUZXN0UHJvcGVydHlUZXN0LCBTdHJpbmdWYWx1ZSkg
ewotICBUZXN0UHJvcGVydHkgcHJvcGVydHkoImtleSIsICIxIik7Ci0gIEVYUEVDVF9TVFJFUSgi
a2V5IiwgcHJvcGVydHkua2V5KCkpOwotICBFWFBFQ1RfU1RSRVEoIjEiLCBwcm9wZXJ0eS52YWx1
ZSgpKTsKLX0KLQotLy8gVGVzdHMgVGVzdFByb3BlcnR5IHJlcGxhY2luZyBhIHZhbHVlLgotVEVT
VChUZXN0UHJvcGVydHlUZXN0LCBSZXBsYWNlU3RyaW5nVmFsdWUpIHsKLSAgVGVzdFByb3BlcnR5
IHByb3BlcnR5KCJrZXkiLCAiMSIpOwotICBFWFBFQ1RfU1RSRVEoIjEiLCBwcm9wZXJ0eS52YWx1
ZSgpKTsKLSAgcHJvcGVydHkuU2V0VmFsdWUoIjIiKTsKLSAgRVhQRUNUX1NUUkVRKCIyIiwgcHJv
cGVydHkudmFsdWUoKSk7Ci19Ci0KLS8vIEFkZEZhdGFsRmFpbHVyZSgpIGFuZCBBZGROb25mYXRh
bEZhaWx1cmUoKSBtdXN0IGJlIHN0YW5kLWFsb25lCi0vLyBmdW5jdGlvbnMgKGkuZS4gdGhlaXIg
ZGVmaW5pdGlvbnMgY2Fubm90IGJlIGlubGluZWQgYXQgdGhlIGNhbGwKLS8vIHNpdGVzKSwgb3Ig
QysrQnVpbGRlciB3b24ndCBjb21waWxlIHRoZSBjb2RlLgotc3RhdGljIHZvaWQgQWRkRmF0YWxG
YWlsdXJlKCkgewotICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIjsKLX0KLQot
c3RhdGljIHZvaWQgQWRkTm9uZmF0YWxGYWlsdXJlKCkgewotICBBRERfRkFJTFVSRSgpIDw8ICJF
eHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iOwotfQotCi1jbGFzcyBTY29wZWRGYWtlVGVzdFBh
cnRSZXN1bHRSZXBvcnRlclRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHVibGljOiAgLy8gTXVzdCBi
ZSBwdWJsaWMgYW5kIG5vdCBwcm90ZWN0ZWQgZHVlIHRvIGEgYnVnIGluIGcrKyAzLjQuMi4KLSAg
ZW51bSBGYWlsdXJlTW9kZSB7Ci0gICAgRkFUQUxfRkFJTFVSRSwKLSAgICBOT05GQVRBTF9GQUlM
VVJFCi0gIH07Ci0gIHN0YXRpYyB2b2lkIEFkZEZhaWx1cmUoRmFpbHVyZU1vZGUgZmFpbHVyZSkg
ewotICAgIGlmIChmYWlsdXJlID09IEZBVEFMX0ZBSUxVUkUpIHsKLSAgICAgIEFkZEZhdGFsRmFp
bHVyZSgpOwotICAgIH0gZWxzZSB7Ci0gICAgICBBZGROb25mYXRhbEZhaWx1cmUoKTsKLSAgICB9
Ci0gIH0KLX07Ci0KLS8vIFRlc3RzIHRoYXQgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0
ZXIgaW50ZXJjZXB0cyB0ZXN0Ci0vLyBmYWlsdXJlcy4KLVRFU1RfRihTY29wZWRGYWtlVGVzdFBh
cnRSZXN1bHRSZXBvcnRlclRlc3QsIEludGVyY2VwdHNUZXN0RmFpbHVyZXMpIHsKLSAgVGVzdFBh
cnRSZXN1bHRBcnJheSByZXN1bHRzOwotICB7Ci0gICAgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0
UmVwb3J0ZXIgcmVwb3J0ZXIoCi0gICAgICAgIFNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9y
dGVyOjpJTlRFUkNFUFRfT05MWV9DVVJSRU5UX1RIUkVBRCwKLSAgICAgICAgJnJlc3VsdHMpOwot
ICAgIEFkZEZhaWx1cmUoTk9ORkFUQUxfRkFJTFVSRSk7Ci0gICAgQWRkRmFpbHVyZShGQVRBTF9G
QUlMVVJFKTsKLSAgfQotCi0gIEVYUEVDVF9FUSgyLCByZXN1bHRzLnNpemUoKSk7Ci0gIEVYUEVD
VF9UUlVFKHJlc3VsdHMuR2V0VGVzdFBhcnRSZXN1bHQoMCkubm9uZmF0YWxseV9mYWlsZWQoKSk7
Ci0gIEVYUEVDVF9UUlVFKHJlc3VsdHMuR2V0VGVzdFBhcnRSZXN1bHQoMSkuZmF0YWxseV9mYWls
ZWQoKSk7Ci19Ci0KLVRFU1RfRihTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlclRlc3Qs
IERlcHJlY2F0ZWRDb25zdHJ1Y3RvcikgewotICBUZXN0UGFydFJlc3VsdEFycmF5IHJlc3VsdHM7
Ci0gIHsKLSAgICAvLyBUZXN0cywgdGhhdCB0aGUgZGVwcmVjYXRlZCBjb25zdHJ1Y3RvciBzdGls
bCB3b3Jrcy4KLSAgICBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlciByZXBvcnRlcigm
cmVzdWx0cyk7Ci0gICAgQWRkRmFpbHVyZShOT05GQVRBTF9GQUlMVVJFKTsKLSAgfQotICBFWFBF
Q1RfRVEoMSwgcmVzdWx0cy5zaXplKCkpOwotfQotCi0jaWYgR1RFU1RfSVNfVEhSRUFEU0FGRQot
Ci1jbGFzcyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcldpdGhUaHJlYWRzVGVzdAot
ICA6IHB1YmxpYyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlclRlc3QgewotIHByb3Rl
Y3RlZDoKLSAgc3RhdGljIHZvaWQgQWRkRmFpbHVyZUluT3RoZXJUaHJlYWQoRmFpbHVyZU1vZGUg
ZmFpbHVyZSkgewotICAgIFRocmVhZFdpdGhQYXJhbTxGYWlsdXJlTW9kZT4gdGhyZWFkKCZBZGRG
YWlsdXJlLCBmYWlsdXJlLCBOVUxMKTsKLSAgICB0aHJlYWQuSm9pbigpOwotICB9Ci19OwotCi1U
RVNUX0YoU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJXaXRoVGhyZWFkc1Rlc3QsCi0g
ICAgICAgSW50ZXJjZXB0c1Rlc3RGYWlsdXJlc0luQWxsVGhyZWFkcykgewotICBUZXN0UGFydFJl
c3VsdEFycmF5IHJlc3VsdHM7Ci0gIHsKLSAgICBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBv
cnRlciByZXBvcnRlcigKLSAgICAgICAgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI6
OklOVEVSQ0VQVF9BTExfVEhSRUFEUywgJnJlc3VsdHMpOwotICAgIEFkZEZhaWx1cmUoTk9ORkFU
QUxfRkFJTFVSRSk7Ci0gICAgQWRkRmFpbHVyZShGQVRBTF9GQUlMVVJFKTsKLSAgICBBZGRGYWls
dXJlSW5PdGhlclRocmVhZChOT05GQVRBTF9GQUlMVVJFKTsKLSAgICBBZGRGYWlsdXJlSW5PdGhl
clRocmVhZChGQVRBTF9GQUlMVVJFKTsKLSAgfQotCi0gIEVYUEVDVF9FUSg0LCByZXN1bHRzLnNp
emUoKSk7Ci0gIEVYUEVDVF9UUlVFKHJlc3VsdHMuR2V0VGVzdFBhcnRSZXN1bHQoMCkubm9uZmF0
YWxseV9mYWlsZWQoKSk7Ci0gIEVYUEVDVF9UUlVFKHJlc3VsdHMuR2V0VGVzdFBhcnRSZXN1bHQo
MSkuZmF0YWxseV9mYWlsZWQoKSk7Ci0gIEVYUEVDVF9UUlVFKHJlc3VsdHMuR2V0VGVzdFBhcnRS
ZXN1bHQoMikubm9uZmF0YWxseV9mYWlsZWQoKSk7Ci0gIEVYUEVDVF9UUlVFKHJlc3VsdHMuR2V0
VGVzdFBhcnRSZXN1bHQoMykuZmF0YWxseV9mYWlsZWQoKSk7Ci19Ci0KLSNlbmRpZiAgLy8gR1RF
U1RfSVNfVEhSRUFEU0FGRQotCi0vLyBUZXN0cyBFWFBFQ1RfRkFUQUxfRkFJTFVSRXssT05fQUxM
X1RIUkVBRFN9LiAgTWFrZXMgc3VyZSB0aGF0IHRoZXkKLS8vIHdvcmsgZXZlbiBpZiB0aGUgZmFp
bHVyZSBpcyBnZW5lcmF0ZWQgaW4gYSBjYWxsZWQgZnVuY3Rpb24gcmF0aGVyIHRoYW4KLS8vIHRo
ZSBjdXJyZW50IGNvbnRleHQuCi0KLXR5cGVkZWYgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVw
b3J0ZXJUZXN0IEV4cGVjdEZhdGFsRmFpbHVyZVRlc3Q7Ci0KLVRFU1RfRihFeHBlY3RGYXRhbEZh
aWx1cmVUZXN0LCBDYXRjaGVzRmF0YWxGYWxpdXJlKSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJF
KEFkZEZhdGFsRmFpbHVyZSgpLCAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKTsKLX0KLQotI2lm
IEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi1URVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJlVGVzdCwg
QWNjZXB0c1N0cmluZ09iamVjdCkgewotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRGYXRhbEZh
aWx1cmUoKSwgOjpzdHJpbmcoIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIikpOwotfQotI2VuZGlm
Ci0KLVRFU1RfRihFeHBlY3RGYXRhbEZhaWx1cmVUZXN0LCBBY2NlcHRzU3RkU3RyaW5nT2JqZWN0
KSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFkZEZhdGFsRmFpbHVyZSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICA6OnN0ZDo6c3RyaW5nKCJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiIpKTsK
LX0KLQotVEVTVF9GKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3QsIENhdGNoZXNGYXRhbEZhaWx1cmVP
bkFsbFRocmVhZHMpIHsKLSAgLy8gV2UgaGF2ZSBhbm90aGVyIHRlc3QgYmVsb3cgdG8gdmVyaWZ5
IHRoYXQgdGhlIG1hY3JvIGNhdGNoZXMgZmF0YWwKLSAgLy8gZmFpbHVyZXMgZ2VuZXJhdGVkIG9u
IGFub3RoZXIgdGhyZWFkLgotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyhB
ZGRGYXRhbEZhaWx1cmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIik7Ci19Ci0KLSNpZmRlZiBfX0JPUkxBTkRDX18KLS8v
IFNpbGVuY2VzIHdhcm5pbmdzOiAiQ29uZGl0aW9uIGlzIGFsd2F5cyB0cnVlIgotIyBwcmFnbWEg
b3B0aW9uIHB1c2ggLXctY2NjCi0jZW5kaWYKLQotLy8gVGVzdHMgdGhhdCBFWFBFQ1RfRkFUQUxf
RkFJTFVSRSgpIGNhbiBiZSB1c2VkIGluIGEgbm9uLXZvaWQKLS8vIGZ1bmN0aW9uIGV2ZW4gd2hl
biB0aGUgc3RhdGVtZW50IGluIGl0IGNvbnRhaW5zIEFTU0VSVF8qLgotCi1pbnQgTm9uVm9pZEZ1
bmN0aW9uKCkgewotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfVFJVRShmYWxzZSksICIi
KTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkVfT05fQUxMX1RIUkVBRFMoRkFJTCgpLCAiIik7Ci0g
IHJldHVybiAwOwotfQotCi1URVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJlVGVzdCwgQ2FuQmVVc2Vk
SW5Ob25Wb2lkRnVuY3Rpb24pIHsKLSAgTm9uVm9pZEZ1bmN0aW9uKCk7Ci19Ci0KLS8vIFRlc3Rz
IHRoYXQgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoc3RhdGVtZW50LCAuLi4pIGRvZXNuJ3QgYWJvcnQg
dGhlCi0vLyBjdXJyZW50IGZ1bmN0aW9uIGV2ZW4gdGhvdWdoICdzdGF0ZW1lbnQnIGdlbmVyYXRl
cyBhIGZhdGFsIGZhaWx1cmUuCi0KLXZvaWQgRG9lc05vdEFib3J0SGVscGVyKGJvb2wqIGFib3J0
ZWQpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1RSVUUoZmFsc2UpLCAiIik7Ci0g
IEVYUEVDVF9GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURTKEZBSUwoKSwgIiIpOwotCi0gICph
Ym9ydGVkID0gZmFsc2U7Ci19Ci0KLSNpZmRlZiBfX0JPUkxBTkRDX18KLS8vIFJlc3RvcmVzIHdh
cm5pbmdzIGFmdGVyIHByZXZpb3VzICIjcHJhZ21hIG9wdGlvbiBwdXNoIiBzdXBwcmVzc2VkIHRo
ZW0uCi0jIHByYWdtYSBvcHRpb24gcG9wCi0jZW5kaWYKLQotVEVTVF9GKEV4cGVjdEZhdGFsRmFp
bHVyZVRlc3QsIERvZXNOb3RBYm9ydCkgewotICBib29sIGFib3J0ZWQgPSB0cnVlOwotICBEb2Vz
Tm90QWJvcnRIZWxwZXIoJmFib3J0ZWQpOwotICBFWFBFQ1RfRkFMU0UoYWJvcnRlZCk7Ci19Ci0K
LS8vIFRlc3RzIHRoYXQgdGhlIEVYUEVDVF9GQVRBTF9GQUlMVVJFeyxfT05fQUxMX1RIUkVBRFN9
IGFjY2VwdHMgYQotLy8gc3RhdGVtZW50IHRoYXQgY29udGFpbnMgYSBtYWNybyB3aGljaCBleHBh
bmRzIHRvIGNvZGUgY29udGFpbmluZyBhbgotLy8gdW5wcm90ZWN0ZWQgY29tbWEuCi0KLXN0YXRp
YyBpbnQgZ2xvYmFsX3ZhciA9IDA7Ci0jZGVmaW5lIEdURVNUX1VTRV9VTlBST1RFQ1RFRF9DT01N
QV8gZ2xvYmFsX3ZhcisrLCBnbG9iYWxfdmFyKysKLQotVEVTVF9GKEV4cGVjdEZhdGFsRmFpbHVy
ZVRlc3QsIEFjY2VwdHNNYWNyb1RoYXRFeHBhbmRzVG9VbnByb3RlY3RlZENvbW1hKSB7Ci0jaWZu
ZGVmIF9fQk9STEFORENfXwotICAvLyBJQ0UncyBpbiBDKytCdWlsZGVyLgotICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRSh7Ci0gICAgR1RFU1RfVVNFX1VOUFJPVEVDVEVEX0NPTU1BXzsKLSAgICBBZGRG
YXRhbEZhaWx1cmUoKTsKLSAgfSwgIiIpOwotI2VuZGlmCi0KLSAgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkVfT05fQUxMX1RIUkVBRFMoewotICAgIEdURVNUX1VTRV9VTlBST1RFQ1RFRF9DT01NQV87Ci0g
ICAgQWRkRmF0YWxGYWlsdXJlKCk7Ci0gIH0sICIiKTsKLX0KLQotLy8gVGVzdHMgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkV7LE9OX0FMTF9USFJFQURTfS4KLQotdHlwZWRlZiBTY29wZWRGYWtlVGVz
dFBhcnRSZXN1bHRSZXBvcnRlclRlc3QgRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdDsKLQotVEVT
VF9GKEV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QsIENhdGNoZXNOb25mYXRhbEZhaWx1cmUpIHsK
LSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoQWRkTm9uZmF0YWxGYWlsdXJlKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKTsKLX0KLQot
I2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi1URVNUX0YoRXhwZWN0Tm9uZmF0YWxGYWlsdXJl
VGVzdCwgQWNjZXB0c1N0cmluZ09iamVjdCkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShB
ZGROb25mYXRhbEZhaWx1cmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOjpzdHJpbmco
IkV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiIpKTsKLX0KLSNlbmRpZgotCi1URVNUX0YoRXhw
ZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdCwgQWNjZXB0c1N0ZFN0cmluZ09iamVjdCkgewotICBFWFBF
Q1RfTk9ORkFUQUxfRkFJTFVSRShBZGROb25mYXRhbEZhaWx1cmUoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgOjpzdGQ6OnN0cmluZygiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuIikp
OwotfQotCi1URVNUX0YoRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdCwgQ2F0Y2hlc05vbmZhdGFs
RmFpbHVyZU9uQWxsVGhyZWFkcykgewotICAvLyBXZSBoYXZlIGFub3RoZXIgdGVzdCBiZWxvdyB0
byB2ZXJpZnkgdGhhdCB0aGUgbWFjcm8gY2F0Y2hlcwotICAvLyBub24tZmF0YWwgZmFpbHVyZXMg
Z2VuZXJhdGVkIG9uIGFub3RoZXIgdGhyZWFkLgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRV9P
Tl9BTExfVEhSRUFEUyhBZGROb25mYXRhbEZhaWx1cmUoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwotfQot
Ci0vLyBUZXN0cyB0aGF0IHRoZSBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRXssX09OX0FMTF9USFJF
QURTfSBhY2NlcHRzIGEKLS8vIHN0YXRlbWVudCB0aGF0IGNvbnRhaW5zIGEgbWFjcm8gd2hpY2gg
ZXhwYW5kcyB0byBjb2RlIGNvbnRhaW5pbmcgYW4KLS8vIHVucHJvdGVjdGVkIGNvbW1hLgotVEVT
VF9GKEV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QsIEFjY2VwdHNNYWNyb1RoYXRFeHBhbmRzVG9V
bnByb3RlY3RlZENvbW1hKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsKLSAgICBHVEVT
VF9VU0VfVU5QUk9URUNURURfQ09NTUFfOwotICAgIEFkZE5vbmZhdGFsRmFpbHVyZSgpOwotICB9
LCAiIik7Ci0KLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkVfT05fQUxMX1RIUkVBRFMoewotICAg
IEdURVNUX1VTRV9VTlBST1RFQ1RFRF9DT01NQV87Ci0gICAgQWRkTm9uZmF0YWxGYWlsdXJlKCk7
Ci0gIH0sICIiKTsKLX0KLQotI2lmIEdURVNUX0lTX1RIUkVBRFNBRkUKLQotdHlwZWRlZiBTY29w
ZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcldpdGhUaHJlYWRzVGVzdAotICAgIEV4cGVjdEZh
aWx1cmVXaXRoVGhyZWFkc1Rlc3Q7Ci0KLVRFU1RfRihFeHBlY3RGYWlsdXJlV2l0aFRocmVhZHNU
ZXN0LCBFeHBlY3RGYXRhbEZhaWx1cmVPbkFsbFRocmVhZHMpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkVfT05fQUxMX1RIUkVBRFMoQWRkRmFpbHVyZUluT3RoZXJUaHJlYWQoRkFUQUxfRkFJTFVS
RSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCBmYXRh
bCBmYWlsdXJlLiIpOwotfQotCi1URVNUX0YoRXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRzVGVzdCwg
RXhwZWN0Tm9uRmF0YWxGYWlsdXJlT25BbGxUaHJlYWRzKSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFX09OX0FMTF9USFJFQURTKAotICAgICAgQWRkRmFpbHVyZUluT3RoZXJUaHJlYWQoTk9O
RkFUQUxfRkFJTFVSRSksICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKTsKLX0KLQotI2Vu
ZGlmICAvLyBHVEVTVF9JU19USFJFQURTQUZFCi0KLS8vIFRlc3RzIHRoZSBUZXN0UHJvcGVydHkg
Y2xhc3MuCi0KLVRFU1QoVGVzdFByb3BlcnR5VGVzdCwgQ29uc3RydWN0b3JXb3JrcykgewotICBj
b25zdCBUZXN0UHJvcGVydHkgcHJvcGVydHkoImtleSIsICJ2YWx1ZSIpOwotICBFWFBFQ1RfU1RS
RVEoImtleSIsIHByb3BlcnR5LmtleSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJ2YWx1ZSIsIHByb3Bl
cnR5LnZhbHVlKCkpOwotfQotCi1URVNUKFRlc3RQcm9wZXJ0eVRlc3QsIFNldFZhbHVlKSB7Ci0g
IFRlc3RQcm9wZXJ0eSBwcm9wZXJ0eSgia2V5IiwgInZhbHVlXzEiKTsKLSAgRVhQRUNUX1NUUkVR
KCJrZXkiLCBwcm9wZXJ0eS5rZXkoKSk7Ci0gIHByb3BlcnR5LlNldFZhbHVlKCJ2YWx1ZV8yIik7
Ci0gIEVYUEVDVF9TVFJFUSgia2V5IiwgcHJvcGVydHkua2V5KCkpOwotICBFWFBFQ1RfU1RSRVEo
InZhbHVlXzIiLCBwcm9wZXJ0eS52YWx1ZSgpKTsKLX0KLQotLy8gVGVzdHMgdGhlIFRlc3RSZXN1
bHQgY2xhc3MKLQotLy8gVGhlIHRlc3QgZml4dHVyZSBmb3IgdGVzdGluZyBUZXN0UmVzdWx0Lgot
Y2xhc3MgVGVzdFJlc3VsdFRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHJvdGVjdGVkOgotICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPFRlc3RQYXJ0UmVzdWx0PiBUUFJWZWN0b3I7Ci0KLSAgLy8gV2UgbWFr
ZSB1c2Ugb2YgMiBUZXN0UGFydFJlc3VsdCBvYmplY3RzLAotICBUZXN0UGFydFJlc3VsdCAqIHBy
MSwgKiBwcjI7Ci0KLSAgLy8gLi4uIGFuZCAzIFRlc3RSZXN1bHQgb2JqZWN0cy4KLSAgVGVzdFJl
c3VsdCAqIHIwLCAqIHIxLCAqIHIyOwotCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICAv
LyBwcjEgaXMgZm9yIHN1Y2Nlc3MuCi0gICAgcHIxID0gbmV3IFRlc3RQYXJ0UmVzdWx0KFRlc3RQ
YXJ0UmVzdWx0OjprU3VjY2VzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby9i
YXIuY2MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlN1Y2Nlc3MhIik7Ci0KLSAgICAvLyBwcjIgaXMgZm9yIGZhdGFsIGZh
aWx1cmUuCi0gICAgcHIyID0gbmV3IFRlc3RQYXJ0UmVzdWx0KFRlc3RQYXJ0UmVzdWx0OjprRmF0
YWxGYWlsdXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9vL2Jhci5jYyIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAgLy8gVGhpcyBsaW5lIG51bWJlciBtZWFu
cyAidW5rbm93biIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWx1cmUhIik7Ci0K
LSAgICAvLyBDcmVhdGVzIHRoZSBUZXN0UmVzdWx0IG9iamVjdHMuCi0gICAgcjAgPSBuZXcgVGVz
dFJlc3VsdCgpOwotICAgIHIxID0gbmV3IFRlc3RSZXN1bHQoKTsKLSAgICByMiA9IG5ldyBUZXN0
UmVzdWx0KCk7Ci0KLSAgICAvLyBJbiBvcmRlciB0byB0ZXN0IFRlc3RSZXN1bHQsIHdlIG5lZWQg
dG8gbW9kaWZ5IGl0cyBpbnRlcm5hbAotICAgIC8vIHN0YXRlLCBpbiBwYXJ0aWN1bGFyIHRoZSBU
ZXN0UGFydFJlc3VsdCB2ZWN0b3IgaXQgaG9sZHMuCi0gICAgLy8gdGVzdF9wYXJ0X3Jlc3VsdHMo
KSByZXR1cm5zIGEgY29uc3QgcmVmZXJlbmNlIHRvIHRoaXMgdmVjdG9yLgotICAgIC8vIFdlIGNh
c3QgaXQgdG8gYSBub24tY29uc3Qgb2JqZWN0IHMudC4gaXQgY2FuIGJlIG1vZGlmaWVkICh5ZXMs
Ci0gICAgLy8gdGhpcyBpcyBhIGhhY2spLgotICAgIFRQUlZlY3RvciogcmVzdWx0czEgPSBjb25z
dF9jYXN0PFRQUlZlY3Rvcio+KAotICAgICAgICAmVGVzdFJlc3VsdEFjY2Vzc29yOjp0ZXN0X3Bh
cnRfcmVzdWx0cygqcjEpKTsKLSAgICBUUFJWZWN0b3IqIHJlc3VsdHMyID0gY29uc3RfY2FzdDxU
UFJWZWN0b3IqPigKLSAgICAgICAgJlRlc3RSZXN1bHRBY2Nlc3Nvcjo6dGVzdF9wYXJ0X3Jlc3Vs
dHMoKnIyKSk7Ci0KLSAgICAvLyByMCBpcyBhbiBlbXB0eSBUZXN0UmVzdWx0LgotCi0gICAgLy8g
cjEgY29udGFpbnMgYSBzaW5nbGUgU1VDQ0VTUyBUZXN0UGFydFJlc3VsdC4KLSAgICByZXN1bHRz
MS0+cHVzaF9iYWNrKCpwcjEpOwotCi0gICAgLy8gcjIgY29udGFpbnMgYSBTVUNDRVNTLCBhbmQg
YSBGQUlMVVJFLgotICAgIHJlc3VsdHMyLT5wdXNoX2JhY2soKnByMSk7Ci0gICAgcmVzdWx0czIt
PnB1c2hfYmFjaygqcHIyKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAg
ICBkZWxldGUgcHIxOwotICAgIGRlbGV0ZSBwcjI7Ci0KLSAgICBkZWxldGUgcjA7Ci0gICAgZGVs
ZXRlIHIxOwotICAgIGRlbGV0ZSByMjsKLSAgfQotCi0gIC8vIEhlbHBlciB0aGF0IGNvbXBhcmVz
IHR3byBUZXN0UGFydFJlc3VsdHMuCi0gIHN0YXRpYyB2b2lkIENvbXBhcmVUZXN0UGFydFJlc3Vs
dChjb25zdCBUZXN0UGFydFJlc3VsdCYgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgYWN0dWFsKSB7Ci0gICAgRVhQRUNU
X0VRKGV4cGVjdGVkLnR5cGUoKSwgYWN0dWFsLnR5cGUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKGV4
cGVjdGVkLmZpbGVfbmFtZSgpLCBhY3R1YWwuZmlsZV9uYW1lKCkpOwotICAgIEVYUEVDVF9FUShl
eHBlY3RlZC5saW5lX251bWJlcigpLCBhY3R1YWwubGluZV9udW1iZXIoKSk7Ci0gICAgRVhQRUNU
X1NUUkVRKGV4cGVjdGVkLnN1bW1hcnkoKSwgYWN0dWFsLnN1bW1hcnkoKSk7Ci0gICAgRVhQRUNU
X1NUUkVRKGV4cGVjdGVkLm1lc3NhZ2UoKSwgYWN0dWFsLm1lc3NhZ2UoKSk7Ci0gICAgRVhQRUNU
X0VRKGV4cGVjdGVkLnBhc3NlZCgpLCBhY3R1YWwucGFzc2VkKCkpOwotICAgIEVYUEVDVF9FUShl
eHBlY3RlZC5mYWlsZWQoKSwgYWN0dWFsLmZhaWxlZCgpKTsKLSAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWQubm9uZmF0YWxseV9mYWlsZWQoKSwgYWN0dWFsLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwotICAg
IEVYUEVDVF9FUShleHBlY3RlZC5mYXRhbGx5X2ZhaWxlZCgpLCBhY3R1YWwuZmF0YWxseV9mYWls
ZWQoKSk7Ci0gIH0KLX07Ci0KLS8vIFRlc3RzIFRlc3RSZXN1bHQ6OnRvdGFsX3BhcnRfY291bnQo
KS4KLVRFU1RfRihUZXN0UmVzdWx0VGVzdCwgdG90YWxfcGFydF9jb3VudCkgewotICBBU1NFUlRf
RVEoMCwgcjAtPnRvdGFsX3BhcnRfY291bnQoKSk7Ci0gIEFTU0VSVF9FUSgxLCByMS0+dG90YWxf
cGFydF9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDIsIHIyLT50b3RhbF9wYXJ0X2NvdW50KCkpOwot
fQotCi0vLyBUZXN0cyBUZXN0UmVzdWx0OjpQYXNzZWQoKS4KLVRFU1RfRihUZXN0UmVzdWx0VGVz
dCwgUGFzc2VkKSB7Ci0gIEFTU0VSVF9UUlVFKHIwLT5QYXNzZWQoKSk7Ci0gIEFTU0VSVF9UUlVF
KHIxLT5QYXNzZWQoKSk7Ci0gIEFTU0VSVF9GQUxTRShyMi0+UGFzc2VkKCkpOwotfQotCi0vLyBU
ZXN0cyBUZXN0UmVzdWx0OjpGYWlsZWQoKS4KLVRFU1RfRihUZXN0UmVzdWx0VGVzdCwgRmFpbGVk
KSB7Ci0gIEFTU0VSVF9GQUxTRShyMC0+RmFpbGVkKCkpOwotICBBU1NFUlRfRkFMU0UocjEtPkZh
aWxlZCgpKTsKLSAgQVNTRVJUX1RSVUUocjItPkZhaWxlZCgpKTsKLX0KLQotLy8gVGVzdHMgVGVz
dFJlc3VsdDo6R2V0VGVzdFBhcnRSZXN1bHQoKS4KLQotdHlwZWRlZiBUZXN0UmVzdWx0VGVzdCBU
ZXN0UmVzdWx0RGVhdGhUZXN0OwotCi1URVNUX0YoVGVzdFJlc3VsdERlYXRoVGVzdCwgR2V0VGVz
dFBhcnRSZXN1bHQpIHsKLSAgQ29tcGFyZVRlc3RQYXJ0UmVzdWx0KCpwcjEsIHIyLT5HZXRUZXN0
UGFydFJlc3VsdCgwKSk7Ci0gIENvbXBhcmVUZXN0UGFydFJlc3VsdCgqcHIyLCByMi0+R2V0VGVz
dFBhcnRSZXN1bHQoMSkpOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKHIyLT5HZXRUZXN0
UGFydFJlc3VsdCgyKSwgIiIpOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKHIyLT5HZXRU
ZXN0UGFydFJlc3VsdCgtMSksICIiKTsKLX0KLQotLy8gVGVzdHMgVGVzdFJlc3VsdCBoYXMgbm8g
cHJvcGVydGllcyB3aGVuIG5vbmUgYXJlIGFkZGVkLgotVEVTVChUZXN0UmVzdWx0UHJvcGVydHlU
ZXN0LCBOb1Byb3BlcnRpZXNGb3VuZFdoZW5Ob25lQXJlQWRkZWQpIHsKLSAgVGVzdFJlc3VsdCB0
ZXN0X3Jlc3VsdDsKLSAgQVNTRVJUX0VRKDAsIHRlc3RfcmVzdWx0LnRlc3RfcHJvcGVydHlfY291
bnQoKSk7Ci19Ci0KLS8vIFRlc3RzIFRlc3RSZXN1bHQgaGFzIHRoZSBleHBlY3RlZCBwcm9wZXJ0
eSB3aGVuIGFkZGVkLgotVEVTVChUZXN0UmVzdWx0UHJvcGVydHlUZXN0LCBPbmVQcm9wZXJ0eUZv
dW5kV2hlbkFkZGVkKSB7Ci0gIFRlc3RSZXN1bHQgdGVzdF9yZXN1bHQ7Ci0gIFRlc3RQcm9wZXJ0
eSBwcm9wZXJ0eSgia2V5XzEiLCAiMSIpOwotICBUZXN0UmVzdWx0QWNjZXNzb3I6OlJlY29yZFBy
b3BlcnR5KCZ0ZXN0X3Jlc3VsdCwgInRlc3RjYXNlIiwgcHJvcGVydHkpOwotICBBU1NFUlRfRVEo
MSwgdGVzdF9yZXN1bHQudGVzdF9wcm9wZXJ0eV9jb3VudCgpKTsKLSAgY29uc3QgVGVzdFByb3Bl
cnR5JiBhY3R1YWxfcHJvcGVydHkgPSB0ZXN0X3Jlc3VsdC5HZXRUZXN0UHJvcGVydHkoMCk7Ci0g
IEVYUEVDVF9TVFJFUSgia2V5XzEiLCBhY3R1YWxfcHJvcGVydHkua2V5KCkpOwotICBFWFBFQ1Rf
U1RSRVEoIjEiLCBhY3R1YWxfcHJvcGVydHkudmFsdWUoKSk7Ci19Ci0KLS8vIFRlc3RzIFRlc3RS
ZXN1bHQgaGFzIG11bHRpcGxlIHByb3BlcnRpZXMgd2hlbiBhZGRlZC4KLVRFU1QoVGVzdFJlc3Vs
dFByb3BlcnR5VGVzdCwgTXVsdGlwbGVQcm9wZXJ0aWVzRm91bmRXaGVuQWRkZWQpIHsKLSAgVGVz
dFJlc3VsdCB0ZXN0X3Jlc3VsdDsKLSAgVGVzdFByb3BlcnR5IHByb3BlcnR5XzEoImtleV8xIiwg
IjEiKTsKLSAgVGVzdFByb3BlcnR5IHByb3BlcnR5XzIoImtleV8yIiwgIjIiKTsKLSAgVGVzdFJl
c3VsdEFjY2Vzc29yOjpSZWNvcmRQcm9wZXJ0eSgmdGVzdF9yZXN1bHQsICJ0ZXN0Y2FzZSIsIHBy
b3BlcnR5XzEpOwotICBUZXN0UmVzdWx0QWNjZXNzb3I6OlJlY29yZFByb3BlcnR5KCZ0ZXN0X3Jl
c3VsdCwgInRlc3RjYXNlIiwgcHJvcGVydHlfMik7Ci0gIEFTU0VSVF9FUSgyLCB0ZXN0X3Jlc3Vs
dC50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwotICBjb25zdCBUZXN0UHJvcGVydHkmIGFjdHVhbF9w
cm9wZXJ0eV8xID0gdGVzdF9yZXN1bHQuR2V0VGVzdFByb3BlcnR5KDApOwotICBFWFBFQ1RfU1RS
RVEoImtleV8xIiwgYWN0dWFsX3Byb3BlcnR5XzEua2V5KCkpOwotICBFWFBFQ1RfU1RSRVEoIjEi
LCBhY3R1YWxfcHJvcGVydHlfMS52YWx1ZSgpKTsKLQotICBjb25zdCBUZXN0UHJvcGVydHkmIGFj
dHVhbF9wcm9wZXJ0eV8yID0gdGVzdF9yZXN1bHQuR2V0VGVzdFByb3BlcnR5KDEpOwotICBFWFBF
Q1RfU1RSRVEoImtleV8yIiwgYWN0dWFsX3Byb3BlcnR5XzIua2V5KCkpOwotICBFWFBFQ1RfU1RS
RVEoIjIiLCBhY3R1YWxfcHJvcGVydHlfMi52YWx1ZSgpKTsKLX0KLQotLy8gVGVzdHMgVGVzdFJl
c3VsdDo6UmVjb3JkUHJvcGVydHkoKSBvdmVycmlkZXMgdmFsdWVzIGZvciBkdXBsaWNhdGUga2V5
cy4KLVRFU1QoVGVzdFJlc3VsdFByb3BlcnR5VGVzdCwgT3ZlcnJpZGVzVmFsdWVzRm9yRHVwbGlj
YXRlS2V5cykgewotICBUZXN0UmVzdWx0IHRlc3RfcmVzdWx0OwotICBUZXN0UHJvcGVydHkgcHJv
cGVydHlfMV8xKCJrZXlfMSIsICIxIik7Ci0gIFRlc3RQcm9wZXJ0eSBwcm9wZXJ0eV8yXzEoImtl
eV8yIiwgIjIiKTsKLSAgVGVzdFByb3BlcnR5IHByb3BlcnR5XzFfMigia2V5XzEiLCAiMTIiKTsK
LSAgVGVzdFByb3BlcnR5IHByb3BlcnR5XzJfMigia2V5XzIiLCAiMjIiKTsKLSAgVGVzdFJlc3Vs
dEFjY2Vzc29yOjpSZWNvcmRQcm9wZXJ0eSgmdGVzdF9yZXN1bHQsICJ0ZXN0Y2FzZSIsIHByb3Bl
cnR5XzFfMSk7Ci0gIFRlc3RSZXN1bHRBY2Nlc3Nvcjo6UmVjb3JkUHJvcGVydHkoJnRlc3RfcmVz
dWx0LCAidGVzdGNhc2UiLCBwcm9wZXJ0eV8yXzEpOwotICBUZXN0UmVzdWx0QWNjZXNzb3I6OlJl
Y29yZFByb3BlcnR5KCZ0ZXN0X3Jlc3VsdCwgInRlc3RjYXNlIiwgcHJvcGVydHlfMV8yKTsKLSAg
VGVzdFJlc3VsdEFjY2Vzc29yOjpSZWNvcmRQcm9wZXJ0eSgmdGVzdF9yZXN1bHQsICJ0ZXN0Y2Fz
ZSIsIHByb3BlcnR5XzJfMik7Ci0KLSAgQVNTRVJUX0VRKDIsIHRlc3RfcmVzdWx0LnRlc3RfcHJv
cGVydHlfY291bnQoKSk7Ci0gIGNvbnN0IFRlc3RQcm9wZXJ0eSYgYWN0dWFsX3Byb3BlcnR5XzEg
PSB0ZXN0X3Jlc3VsdC5HZXRUZXN0UHJvcGVydHkoMCk7Ci0gIEVYUEVDVF9TVFJFUSgia2V5XzEi
LCBhY3R1YWxfcHJvcGVydHlfMS5rZXkoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiMTIiLCBhY3R1YWxf
cHJvcGVydHlfMS52YWx1ZSgpKTsKLQotICBjb25zdCBUZXN0UHJvcGVydHkmIGFjdHVhbF9wcm9w
ZXJ0eV8yID0gdGVzdF9yZXN1bHQuR2V0VGVzdFByb3BlcnR5KDEpOwotICBFWFBFQ1RfU1RSRVEo
ImtleV8yIiwgYWN0dWFsX3Byb3BlcnR5XzIua2V5KCkpOwotICBFWFBFQ1RfU1RSRVEoIjIyIiwg
YWN0dWFsX3Byb3BlcnR5XzIudmFsdWUoKSk7Ci19Ci0KLS8vIFRlc3RzIFRlc3RSZXN1bHQ6Okdl
dFRlc3RQcm9wZXJ0eSgpLgotVEVTVChUZXN0UmVzdWx0UHJvcGVydHlUZXN0LCBHZXRUZXN0UHJv
cGVydHkpIHsKLSAgVGVzdFJlc3VsdCB0ZXN0X3Jlc3VsdDsKLSAgVGVzdFByb3BlcnR5IHByb3Bl
cnR5XzEoImtleV8xIiwgIjEiKTsKLSAgVGVzdFByb3BlcnR5IHByb3BlcnR5XzIoImtleV8yIiwg
IjIiKTsKLSAgVGVzdFByb3BlcnR5IHByb3BlcnR5XzMoImtleV8zIiwgIjMiKTsKLSAgVGVzdFJl
c3VsdEFjY2Vzc29yOjpSZWNvcmRQcm9wZXJ0eSgmdGVzdF9yZXN1bHQsICJ0ZXN0Y2FzZSIsIHBy
b3BlcnR5XzEpOwotICBUZXN0UmVzdWx0QWNjZXNzb3I6OlJlY29yZFByb3BlcnR5KCZ0ZXN0X3Jl
c3VsdCwgInRlc3RjYXNlIiwgcHJvcGVydHlfMik7Ci0gIFRlc3RSZXN1bHRBY2Nlc3Nvcjo6UmVj
b3JkUHJvcGVydHkoJnRlc3RfcmVzdWx0LCAidGVzdGNhc2UiLCBwcm9wZXJ0eV8zKTsKLQotICBj
b25zdCBUZXN0UHJvcGVydHkmIGZldGNoZWRfcHJvcGVydHlfMSA9IHRlc3RfcmVzdWx0LkdldFRl
c3RQcm9wZXJ0eSgwKTsKLSAgY29uc3QgVGVzdFByb3BlcnR5JiBmZXRjaGVkX3Byb3BlcnR5XzIg
PSB0ZXN0X3Jlc3VsdC5HZXRUZXN0UHJvcGVydHkoMSk7Ci0gIGNvbnN0IFRlc3RQcm9wZXJ0eSYg
ZmV0Y2hlZF9wcm9wZXJ0eV8zID0gdGVzdF9yZXN1bHQuR2V0VGVzdFByb3BlcnR5KDIpOwotCi0g
IEVYUEVDVF9TVFJFUSgia2V5XzEiLCBmZXRjaGVkX3Byb3BlcnR5XzEua2V5KCkpOwotICBFWFBF
Q1RfU1RSRVEoIjEiLCBmZXRjaGVkX3Byb3BlcnR5XzEudmFsdWUoKSk7Ci0KLSAgRVhQRUNUX1NU
UkVRKCJrZXlfMiIsIGZldGNoZWRfcHJvcGVydHlfMi5rZXkoKSk7Ci0gIEVYUEVDVF9TVFJFUSgi
MiIsIGZldGNoZWRfcHJvcGVydHlfMi52YWx1ZSgpKTsKLQotICBFWFBFQ1RfU1RSRVEoImtleV8z
IiwgZmV0Y2hlZF9wcm9wZXJ0eV8zLmtleSgpKTsKLSAgRVhQRUNUX1NUUkVRKCIzIiwgZmV0Y2hl
ZF9wcm9wZXJ0eV8zLnZhbHVlKCkpOwotCi0gIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQodGVz
dF9yZXN1bHQuR2V0VGVzdFByb3BlcnR5KDMpLCAiIik7Ci0gIEVYUEVDVF9ERUFUSF9JRl9TVVBQ
T1JURUQodGVzdF9yZXN1bHQuR2V0VGVzdFByb3BlcnR5KC0xKSwgIiIpOwotfQotCi0vLyBUZXN0
cyB0aGUgVGVzdCBjbGFzcy4KLS8vCi0vLyBJdCdzIGRpZmZpY3VsdCB0byB0ZXN0IGV2ZXJ5IHB1
YmxpYyBtZXRob2Qgb2YgdGhpcyBjbGFzcyAod2UgYXJlCi0vLyBhbHJlYWR5IHN0cmV0Y2hpbmcg
dGhlIGxpbWl0IG9mIEdvb2dsZSBUZXN0IGJ5IHVzaW5nIGl0IHRvIHRlc3QgaXRzZWxmISkuCi0v
LyBGb3J0dW5hdGVseSwgd2UgZG9uJ3QgaGF2ZSB0byBkbyB0aGF0LCBhcyB3ZSBhcmUgYWxyZWFk
eSB0ZXN0aW5nCi0vLyB0aGUgZnVuY3Rpb25hbGl0aWVzIG9mIHRoZSBUZXN0IGNsYXNzIGV4dGVu
c2l2ZWx5IGJ5IHVzaW5nIEdvb2dsZSBUZXN0Ci0vLyBhbG9uZS4KLS8vCi0vLyBUaGVyZWZvcmUs
IHRoaXMgc2VjdGlvbiBvbmx5IGNvbnRhaW5zIG9uZSB0ZXN0LgotCi0vLyBUZXN0cyB0aGF0IEdU
ZXN0RmxhZ1NhdmVyIHdvcmtzIG9uIFdpbmRvd3MgYW5kIE1hYy4KLQotY2xhc3MgR1Rlc3RGbGFn
U2F2ZXJUZXN0IDogcHVibGljIFRlc3QgewotIHByb3RlY3RlZDoKLSAgLy8gU2F2ZXMgdGhlIEdv
b2dsZSBUZXN0IGZsYWdzIHN1Y2ggdGhhdCB3ZSBjYW4gcmVzdG9yZSB0aGVtIGxhdGVyLCBhbmQK
LSAgLy8gdGhlbiBzZXRzIHRoZW0gdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuICBUaGlzIHdpbGwg
YmUgY2FsbGVkCi0gIC8vIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBp
cyBydW4uCi0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7Ci0gICAgc2F2ZXJfID0gbmV3
IEdUZXN0RmxhZ1NhdmVyOwotCi0gICAgR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0
cykgPSBmYWxzZTsKLSAgICBHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpID0gZmFsc2U7Ci0g
ICAgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IGZhbHNlOwotICAgIEdURVNUX0ZMQUco
ZGVhdGhfdGVzdF91c2VfZm9yaykgPSBmYWxzZTsKLSAgICBHVEVTVF9GTEFHKGNvbG9yKSA9ICJh
dXRvIjsKLSAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSAiIjsKLSAgICBHVEVTVF9GTEFHKGxpc3Rf
dGVzdHMpID0gZmFsc2U7Ci0gICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gIiI7Ci0gICAgR1RFU1Rf
RkxBRyhwcmludF90aW1lKSA9IHRydWU7Ci0gICAgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkgPSAw
OwotICAgIEdURVNUX0ZMQUcocmVwZWF0KSA9IDE7Ci0gICAgR1RFU1RfRkxBRyhzaHVmZmxlKSA9
IGZhbHNlOwotICAgIEdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpID0ga01heFN0YWNrVHJh
Y2VEZXB0aDsKLSAgICBHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pID0gIiI7Ci0gICAgR1RF
U1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKSA9IGZhbHNlOwotICB9Ci0KLSAgLy8gUmVzdG9yZXMg
dGhlIEdvb2dsZSBUZXN0IGZsYWdzIHRoYXQgdGhlIHRlc3RzIGhhdmUgbW9kaWZpZWQuICBUaGlz
IHdpbGwKLSAgLy8gYmUgY2FsbGVkIGFmdGVyIHRoZSBsYXN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNh
c2UgaXMgcnVuLgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIGRlbGV0
ZSBzYXZlcl87Ci0gICAgc2F2ZXJfID0gTlVMTDsKLSAgfQotCi0gIC8vIFZlcmlmaWVzIHRoYXQg
dGhlIEdvb2dsZSBUZXN0IGZsYWdzIGhhdmUgdGhlaXIgZGVmYXVsdCB2YWx1ZXMsIGFuZCB0aGVu
Ci0gIC8vIG1vZGlmaWVzIGVhY2ggb2YgdGhlbS4KLSAgdm9pZCBWZXJpZnlBbmRNb2RpZnlGbGFn
cygpIHsKLSAgICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0
cykpOwotICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKTsKLSAg
ICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSk7Ci0gICAgRVhQRUNU
X1NUUkVRKCJhdXRvIiwgR1RFU1RfRkxBRyhjb2xvcikuY19zdHIoKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpOwotICAgIEVYUEVDVF9TVFJFUSgi
IiwgR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3RyKCkpOwotICAgIEVYUEVDVF9GQUxTRShHVEVTVF9G
TEFHKGxpc3RfdGVzdHMpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIiIsIEdURVNUX0ZMQUcob3V0cHV0
KS5jX3N0cigpKTsKLSAgICBFWFBFQ1RfVFJVRShHVEVTVF9GTEFHKHByaW50X3RpbWUpKTsKLSAg
ICBFWFBFQ1RfRVEoMCwgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkpOwotICAgIEVYUEVDVF9FUSgx
LCBHVEVTVF9GTEFHKHJlcGVhdCkpOwotICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKHNodWZm
bGUpKTsKLSAgICBFWFBFQ1RfRVEoa01heFN0YWNrVHJhY2VEZXB0aCwgR1RFU1RfRkxBRyhzdGFj
a190cmFjZV9kZXB0aCkpOwotICAgIEVYUEVDVF9TVFJFUSgiIiwgR1RFU1RfRkxBRyhzdHJlYW1f
cmVzdWx0X3RvKS5jX3N0cigpKTsKLSAgICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyh0aHJvd19v
bl9mYWlsdXJlKSk7Ci0KLSAgICBHVEVTVF9GTEFHKGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKSA9
IHRydWU7Ci0gICAgR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSA9IHRydWU7Ci0gICAgR1RF
U1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IHRydWU7Ci0gICAgR1RFU1RfRkxBRyhjb2xvcikg
PSAibm8iOwotICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykgPSB0cnVlOwotICAg
IEdURVNUX0ZMQUcoZmlsdGVyKSA9ICJhYmMiOwotICAgIEdURVNUX0ZMQUcobGlzdF90ZXN0cykg
PSB0cnVlOwotICAgIEdURVNUX0ZMQUcob3V0cHV0KSA9ICJ4bWw6Zm9vLnhtbCI7Ci0gICAgR1RF
U1RfRkxBRyhwcmludF90aW1lKSA9IGZhbHNlOwotICAgIEdURVNUX0ZMQUcocmFuZG9tX3NlZWQp
ID0gMTsKLSAgICBHVEVTVF9GTEFHKHJlcGVhdCkgPSAxMDA7Ci0gICAgR1RFU1RfRkxBRyhzaHVm
ZmxlKSA9IHRydWU7Ci0gICAgR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkgPSAxOwotICAg
IEdURVNUX0ZMQUcoc3RyZWFtX3Jlc3VsdF90bykgPSAibG9jYWxob3N0OjEyMzQiOwotICAgIEdU
RVNUX0ZMQUcodGhyb3dfb25fZmFpbHVyZSkgPSB0cnVlOwotICB9Ci0KLSBwcml2YXRlOgotICAv
LyBGb3Igc2F2aW5nIEdvb2dsZSBUZXN0IGZsYWdzIGR1cmluZyB0aGlzIHRlc3QgY2FzZS4KLSAg
c3RhdGljIEdUZXN0RmxhZ1NhdmVyKiBzYXZlcl87Ci19OwotCi1HVGVzdEZsYWdTYXZlciogR1Rl
c3RGbGFnU2F2ZXJUZXN0OjpzYXZlcl8gPSBOVUxMOwotCi0vLyBHb29nbGUgVGVzdCBkb2Vzbid0
IGd1YXJhbnRlZSB0aGUgb3JkZXIgb2YgdGVzdHMuICBUaGUgZm9sbG93aW5nIHR3bwotLy8gdGVz
dHMgYXJlIGRlc2lnbmVkIHRvIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGVpciBvcmRlci4KLQotLy8g
TW9kaWZpZXMgdGhlIEdvb2dsZSBUZXN0IGZsYWdzIGluIHRoZSB0ZXN0IGJvZHkuCi1URVNUX0Yo
R1Rlc3RGbGFnU2F2ZXJUZXN0LCBNb2RpZnlHVGVzdEZsYWdzKSB7Ci0gIFZlcmlmeUFuZE1vZGlm
eUZsYWdzKCk7Ci19Ci0KLS8vIFZlcmlmaWVzIHRoYXQgdGhlIEdvb2dsZSBUZXN0IGZsYWdzIGlu
IHRoZSBib2R5IG9mIHRoZSBwcmV2aW91cyB0ZXN0IHdlcmUKLS8vIHJlc3RvcmVkIHRvIHRoZWly
IG9yaWdpbmFsIHZhbHVlcy4KLVRFU1RfRihHVGVzdEZsYWdTYXZlclRlc3QsIFZlcmlmeUdUZXN0
RmxhZ3MpIHsKLSAgVmVyaWZ5QW5kTW9kaWZ5RmxhZ3MoKTsKLX0KLQotLy8gU2V0cyBhbiBlbnZp
cm9ubWVudCB2YXJpYWJsZSB3aXRoIHRoZSBnaXZlbiBuYW1lIHRvIHRoZSBnaXZlbgotLy8gdmFs
dWUuICBJZiB0aGUgdmFsdWUgYXJndW1lbnQgaXMgIiIsIHVuc2V0cyB0aGUgZW52aXJvbm1lbnQK
LS8vIHZhcmlhYmxlLiAgVGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IGJvdGggYXJndW1lbnRz
IGFyZSBub3QgTlVMTC4KLXN0YXRpYyB2b2lkIFNldEVudihjb25zdCBjaGFyKiBuYW1lLCBjb25z
dCBjaGFyKiB2YWx1ZSkgewotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0gIC8vIEVudmly
b25tZW50IHZhcmlhYmxlcyBhcmUgbm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzIENFLgotICByZXR1
cm47Ci0jZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX1N1bk9TXzVfOCkg
fHwgZGVmaW5lZChfX1N1bk9TXzVfOSkKLSAgLy8gQysrQnVpbGRlcidzIHB1dGVudiBvbmx5IHN0
b3JlcyBhIHBvaW50ZXIgdG8gaXRzIHBhcmFtZXRlcjsgd2UgaGF2ZSB0bwotICAvLyBlbnN1cmUg
dGhhdCB0aGUgc3RyaW5nIHJlbWFpbnMgdmFsaWQgYXMgbG9uZyBhcyBpdCBtaWdodCBiZSBuZWVk
ZWQuCi0gIC8vIFdlIHVzZSBhbiBzdGQ6Om1hcCB0byBkbyBzby4KLSAgc3RhdGljIHN0ZDo6bWFw
PHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZyo+IGFkZGVkX2VudjsKLQotICAvLyBCZWNhdXNlIHB1
dGVudiBzdG9yZXMgYSBwb2ludGVyIHRvIHRoZSBzdHJpbmcgYnVmZmVyLCB3ZSBjYW4ndCBkZWxl
dGUgdGhlCi0gIC8vIHByZXZpb3VzIHN0cmluZyAoaWYgcHJlc2VudCkgdW50aWwgYWZ0ZXIgaXQn
cyByZXBsYWNlZC4KLSAgc3RkOjpzdHJpbmcgKnByZXZfZW52ID0gTlVMTDsKLSAgaWYgKGFkZGVk
X2Vudi5maW5kKG5hbWUpICE9IGFkZGVkX2Vudi5lbmQoKSkgewotICAgIHByZXZfZW52ID0gYWRk
ZWRfZW52W25hbWVdOwotICB9Ci0gIGFkZGVkX2VudltuYW1lXSA9IG5ldyBzdGQ6OnN0cmluZygK
LSAgICAgIChNZXNzYWdlKCkgPDwgbmFtZSA8PCAiPSIgPDwgdmFsdWUpLkdldFN0cmluZygpKTsK
LQotICAvLyBUaGUgc3RhbmRhcmQgc2lnbmF0dXJlIG9mIHB1dGVudiBhY2NlcHRzIGEgJ2NoYXIq
JyBhcmd1bWVudC4gT3RoZXIKLSAgLy8gaW1wbGVtZW50YXRpb25zLCBsaWtlIEMrK0J1aWxkZXIn
cywgYWNjZXB0IGEgJ2NvbnN0IGNoYXIqJy4KLSAgLy8gV2UgY2FzdCBhd2F5IHRoZSAnY29uc3Qn
IHNpbmNlIHRoYXQgd291bGQgd29yayBmb3IgYm90aCB2YXJpYW50cy4KLSAgcHV0ZW52KGNvbnN0
X2Nhc3Q8Y2hhcio+KGFkZGVkX2VudltuYW1lXS0+Y19zdHIoKSkpOwotICBkZWxldGUgcHJldl9l
bnY7Ci0jZWxpZiBHVEVTVF9PU19XSU5ET1dTICAvLyBJZiB3ZSBhcmUgb24gV2luZG93cyBwcm9w
ZXIuCi0gIF9wdXRlbnYoKE1lc3NhZ2UoKSA8PCBuYW1lIDw8ICI9IiA8PCB2YWx1ZSkuR2V0U3Ry
aW5nKCkuY19zdHIoKSk7Ci0jZWxzZQotICBpZiAoKnZhbHVlID09ICdcMCcpIHsKLSAgICB1bnNl
dGVudihuYW1lKTsKLSAgfSBlbHNlIHsKLSAgICBzZXRlbnYobmFtZSwgdmFsdWUsIDEpOwotICB9
Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi19Ci0KLSNpZiAhR1RFU1RfT1Nf
V0lORE9XU19NT0JJTEUKLS8vIEVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgbm90IHN1cHBvcnRl
ZCBvbiBXaW5kb3dzIENFLgotCi11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SW50MzJGcm9tR1Rl
c3RFbnY7Ci0KLS8vIFRlc3RzIEludDMyRnJvbUdUZXN0RW52KCkuCi0KLS8vIFRlc3RzIHRoYXQg
SW50MzJGcm9tR1Rlc3RFbnYoKSByZXR1cm5zIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlCi0v
LyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LgotVEVTVChJbnQzMkZyb21HVGVzdEVu
dlRlc3QsIFJldHVybnNEZWZhdWx0V2hlblZhcmlhYmxlSXNOb3RTZXQpIHsKLSAgU2V0RW52KEdU
RVNUX0ZMQUdfUFJFRklYX1VQUEVSXyAiVEVNUCIsICIiKTsKLSAgRVhQRUNUX0VRKDEwLCBJbnQz
MkZyb21HVGVzdEVudigidGVtcCIsIDEwKSk7Ci19Ci0KLSMgaWYgIWRlZmluZWQoR1RFU1RfR0VU
X0lOVDMyX0ZST01fRU5WXykKLQotLy8gVGVzdHMgdGhhdCBJbnQzMkZyb21HVGVzdEVudigpIHJl
dHVybnMgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUKLS8vIGVudmlyb25tZW50IHZhcmlhYmxl
IG92ZXJmbG93cyBhcyBhbiBJbnQzMi4KLVRFU1QoSW50MzJGcm9tR1Rlc3RFbnZUZXN0LCBSZXR1
cm5zRGVmYXVsdFdoZW5WYWx1ZU92ZXJmbG93cykgewotICBwcmludGYoIihleHBlY3RpbmcgMiB3
YXJuaW5ncylcbiIpOwotCi0gIFNldEVudihHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIlRFTVAi
LCAiMTIzNDU2Nzg5ODc2NTQzMjEiKTsKLSAgRVhQRUNUX0VRKDIwLCBJbnQzMkZyb21HVGVzdEVu
digidGVtcCIsIDIwKSk7Ci0KLSAgU2V0RW52KEdURVNUX0ZMQUdfUFJFRklYX1VQUEVSXyAiVEVN
UCIsICItMTIzNDU2Nzg5ODc2NTQzMjEiKTsKLSAgRVhQRUNUX0VRKDMwLCBJbnQzMkZyb21HVGVz
dEVudigidGVtcCIsIDMwKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSW50MzJGcm9tR1Rlc3RFbnYo
KSByZXR1cm5zIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlCi0vLyBlbnZpcm9ubWVudCB2YXJp
YWJsZSBkb2VzIG5vdCByZXByZXNlbnQgYSB2YWxpZCBkZWNpbWFsIGludGVnZXIuCi1URVNUKElu
dDMyRnJvbUdUZXN0RW52VGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVJc0ludmFsaWQpIHsK
LSAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsKLQotICBTZXRFbnYoR1RFU1Rf
RkxBR19QUkVGSVhfVVBQRVJfICJURU1QIiwgIkExIik7Ci0gIEVYUEVDVF9FUSg0MCwgSW50MzJG
cm9tR1Rlc3RFbnYoInRlbXAiLCA0MCkpOwotCi0gIFNldEVudihHVEVTVF9GTEFHX1BSRUZJWF9V
UFBFUl8gIlRFTVAiLCAiMTJYIik7Ci0gIEVYUEVDVF9FUSg1MCwgSW50MzJGcm9tR1Rlc3RFbnYo
InRlbXAiLCA1MCkpOwotfQotCi0jIGVuZGlmICAvLyAhZGVmaW5lZChHVEVTVF9HRVRfSU5UMzJf
RlJPTV9FTlZfKQotCi0vLyBUZXN0cyB0aGF0IEludDMyRnJvbUdUZXN0RW52KCkgcGFyc2VzIGFu
ZCByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUKLS8vIGVudmlyb25tZW50IHZhcmlhYmxlIHdoZW4g
aXQgcmVwcmVzZW50cyBhIHZhbGlkIGRlY2ltYWwgaW50ZWdlciBpbgotLy8gdGhlIHJhbmdlIG9m
IGFuIEludDMyLgotVEVTVChJbnQzMkZyb21HVGVzdEVudlRlc3QsIFBhcnNlc0FuZFJldHVybnNW
YWxpZFZhbHVlKSB7Ci0gIFNldEVudihHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIlRFTVAiLCAi
MTIzIik7Ci0gIEVYUEVDVF9FUSgxMjMsIEludDMyRnJvbUdUZXN0RW52KCJ0ZW1wIiwgMCkpOwot
Ci0gIFNldEVudihHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIlRFTVAiLCAiLTMyMSIpOwotICBF
WFBFQ1RfRVEoLTMyMSwgSW50MzJGcm9tR1Rlc3RFbnYoInRlbXAiLCAwKSk7Ci19Ci0jZW5kaWYg
IC8vICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQotCi0vLyBUZXN0cyBQYXJzZUludDMyRmxhZygp
LgotCi0vLyBUZXN0cyB0aGF0IFBhcnNlSW50MzJGbGFnKCkgcmV0dXJucyBmYWxzZSBhbmQgZG9l
c24ndCBjaGFuZ2UgdGhlCi0vLyBvdXRwdXQgdmFsdWUgd2hlbiB0aGUgZmxhZyBoYXMgd3Jvbmcg
Zm9ybWF0Ci1URVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0ZhbHNlRm9ySW52YWxpZEZs
YWcpIHsKLSAgSW50MzIgdmFsdWUgPSAxMjM7Ci0gIEVYUEVDVF9GQUxTRShQYXJzZUludDMyRmxh
ZygiLS1hPTEwMCIsICJiIiwgJnZhbHVlKSk7Ci0gIEVYUEVDVF9FUSgxMjMsIHZhbHVlKTsKLQot
ICBFWFBFQ1RfRkFMU0UoUGFyc2VJbnQzMkZsYWcoImE9MTAwIiwgImEiLCAmdmFsdWUpKTsKLSAg
RVhQRUNUX0VRKDEyMywgdmFsdWUpOwotfQotCi0vLyBUZXN0cyB0aGF0IFBhcnNlSW50MzJGbGFn
KCkgcmV0dXJucyBmYWxzZSBhbmQgZG9lc24ndCBjaGFuZ2UgdGhlCi0vLyBvdXRwdXQgdmFsdWUg
d2hlbiB0aGUgZmxhZyBvdmVyZmxvd3MgYXMgYW4gSW50MzIuCi1URVNUKFBhcnNlSW50MzJGbGFn
VGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVPdmVyZmxvd3MpIHsKLSAgcHJpbnRmKCIoZXhw
ZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsKLQotICBJbnQzMiB2YWx1ZSA9IDEyMzsKLSAgRVhQRUNU
X0ZBTFNFKFBhcnNlSW50MzJGbGFnKCItLWFiYz0xMjM0NTY3ODk4NzY1NDMyMSIsICJhYmMiLCAm
dmFsdWUpKTsKLSAgRVhQRUNUX0VRKDEyMywgdmFsdWUpOwotCi0gIEVYUEVDVF9GQUxTRShQYXJz
ZUludDMyRmxhZygiLS1hYmM9LTEyMzQ1Njc4OTg3NjU0MzIxIiwgImFiYyIsICZ2YWx1ZSkpOwot
ICBFWFBFQ1RfRVEoMTIzLCB2YWx1ZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgUGFyc2VJbnQzMkZs
YWcoKSByZXR1cm5zIGZhbHNlIGFuZCBkb2Vzbid0IGNoYW5nZSB0aGUKLS8vIG91dHB1dCB2YWx1
ZSB3aGVuIHRoZSBmbGFnIGRvZXMgbm90IHJlcHJlc2VudCBhIHZhbGlkIGRlY2ltYWwKLS8vIGlu
dGVnZXIuCi1URVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVJ
c0ludmFsaWQpIHsKLSAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsKLQotICBJ
bnQzMiB2YWx1ZSA9IDEyMzsKLSAgRVhQRUNUX0ZBTFNFKFBhcnNlSW50MzJGbGFnKCItLWFiYz1B
MSIsICJhYmMiLCAmdmFsdWUpKTsKLSAgRVhQRUNUX0VRKDEyMywgdmFsdWUpOwotCi0gIEVYUEVD
VF9GQUxTRShQYXJzZUludDMyRmxhZygiLS1hYmM9MTJYIiwgImFiYyIsICZ2YWx1ZSkpOwotICBF
WFBFQ1RfRVEoMTIzLCB2YWx1ZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgUGFyc2VJbnQzMkZsYWco
KSBwYXJzZXMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGFuZAotLy8gcmV0dXJucyB0cnVlIHdoZW4g
dGhlIGZsYWcgcmVwcmVzZW50cyBhIHZhbGlkIGRlY2ltYWwgaW50ZWdlciBpbgotLy8gdGhlIHJh
bmdlIG9mIGFuIEludDMyLgotVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFBhcnNlc0FuZFJldHVy
bnNWYWxpZFZhbHVlKSB7Ci0gIEludDMyIHZhbHVlID0gMTIzOwotICBFWFBFQ1RfVFJVRShQYXJz
ZUludDMyRmxhZygiLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiYWJjPTQ1NiIsICJhYmMiLCAmdmFs
dWUpKTsKLSAgRVhQRUNUX0VRKDQ1NiwgdmFsdWUpOwotCi0gIEVYUEVDVF9UUlVFKFBhcnNlSW50
MzJGbGFnKCItLSIgR1RFU1RfRkxBR19QUkVGSVhfICJhYmM9LTc4OSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhYmMiLCAmdmFsdWUpKTsKLSAgRVhQRUNUX0VRKC03ODksIHZhbHVl
KTsKLX0KLQotLy8gVGVzdHMgdGhhdCBJbnQzMkZyb21FbnZPckRpZSgpIHBhcnNlcyB0aGUgdmFs
dWUgb2YgdGhlIHZhciBvcgotLy8gcmV0dXJucyB0aGUgY29ycmVjdCBkZWZhdWx0LgotLy8gRW52
aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIFdpbmRvd3MgQ0UuCi0jaWYg
IUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi1URVNUKEludDMyRnJvbUVudk9yRGllVGVzdCwgUGFy
c2VzQW5kUmV0dXJuc1ZhbGlkVmFsdWUpIHsKLSAgRVhQRUNUX0VRKDMzMywgSW50MzJGcm9tRW52
T3JEaWUoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJVbnNldFZhciIsIDMzMykpOwotICBTZXRF
bnYoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJVbnNldFZhciIsICIxMjMiKTsKLSAgRVhQRUNU
X0VRKDEyMywgSW50MzJGcm9tRW52T3JEaWUoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJVbnNl
dFZhciIsIDMzMykpOwotICBTZXRFbnYoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJVbnNldFZh
ciIsICItMTIzIik7Ci0gIEVYUEVDVF9FUSgtMTIzLCBJbnQzMkZyb21FbnZPckRpZShHVEVTVF9G
TEFHX1BSRUZJWF9VUFBFUl8gIlVuc2V0VmFyIiwgMzMzKSk7Ci19Ci0jZW5kaWYgIC8vICFHVEVT
VF9PU19XSU5ET1dTX01PQklMRQotCi0vLyBUZXN0cyB0aGF0IEludDMyRnJvbUVudk9yRGllKCkg
YWJvcnRzIHdpdGggYW4gZXJyb3IgbWVzc2FnZQotLy8gaWYgdGhlIHZhcmlhYmxlIGlzIG5vdCBh
biBJbnQzMi4KLVRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRlc3QsIEFib3J0c09uRmFpbHVy
ZSkgewotICBTZXRFbnYoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJWQVIiLCAieHh4Iik7Ci0g
IEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAgICBJbnQzMkZyb21FbnZPckRpZShHVEVT
VF9GTEFHX1BSRUZJWF9VUFBFUl8gIlZBUiIsIDEyMyksCi0gICAgICAiLioiKTsKLX0KLQotLy8g
VGVzdHMgdGhhdCBJbnQzMkZyb21FbnZPckRpZSgpIGFib3J0cyB3aXRoIGFuIGVycm9yIG1lc3Nh
Z2UKLS8vIGlmIHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVwcmVzbnRlZCBieSBhbiBJbnQzMi4K
LVRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRlc3QsIEFib3J0c09uSW50MzJPdmVyZmxvdykg
ewotICBTZXRFbnYoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJWQVIiLCAiMTIzNDU2Nzg5MTIz
NDU2Nzg5MTIzNCIpOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKAotICAgICAgSW50MzJG
cm9tRW52T3JEaWUoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJWQVIiLCAxMjMpLAotICAgICAg
Ii4qIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgU2hvdWxkUnVuVGVzdE9uU2hhcmQoKSBzZWxlY3Rz
IGFsbCB0ZXN0cwotLy8gd2hlcmUgdGhlcmUgaXMgMSBzaGFyZC4KLVRFU1QoU2hvdWxkUnVuVGVz
dE9uU2hhcmRUZXN0LCBJc1BhcnRpdGlvbldoZW5UaGVyZUlzT25lU2hhcmQpIHsKLSAgRVhQRUNU
X1RSVUUoU2hvdWxkUnVuVGVzdE9uU2hhcmQoMSwgMCwgMCkpOwotICBFWFBFQ1RfVFJVRShTaG91
bGRSdW5UZXN0T25TaGFyZCgxLCAwLCAxKSk7Ci0gIEVYUEVDVF9UUlVFKFNob3VsZFJ1blRlc3RP
blNoYXJkKDEsIDAsIDIpKTsKLSAgRVhQRUNUX1RSVUUoU2hvdWxkUnVuVGVzdE9uU2hhcmQoMSwg
MCwgMykpOwotICBFWFBFQ1RfVFJVRShTaG91bGRSdW5UZXN0T25TaGFyZCgxLCAwLCA0KSk7Ci19
Ci0KLWNsYXNzIFNob3VsZFNoYXJkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBpbmRleF92YXJfID0gR1RFU1Rf
RkxBR19QUkVGSVhfVVBQRVJfICJJTkRFWCI7Ci0gICAgdG90YWxfdmFyXyA9IEdURVNUX0ZMQUdf
UFJFRklYX1VQUEVSXyAiVE9UQUwiOwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkg
ewotICAgIFNldEVudihpbmRleF92YXJfLCAiIik7Ci0gICAgU2V0RW52KHRvdGFsX3Zhcl8sICIi
KTsKLSAgfQotCi0gIGNvbnN0IGNoYXIqIGluZGV4X3Zhcl87Ci0gIGNvbnN0IGNoYXIqIHRvdGFs
X3Zhcl87Ci19OwotCi0vLyBUZXN0cyB0aGF0IHNoYXJkaW5nIGlzIGRpc2FibGVkIGlmIG5laXRo
ZXIgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcwotLy8gYXJlIHNldC4KLVRFU1RfRihTaG91
bGRTaGFyZFRlc3QsIFJldHVybnNGYWxzZVdoZW5OZWl0aGVyRW52VmFySXNTZXQpIHsKLSAgU2V0
RW52KGluZGV4X3Zhcl8sICIiKTsKLSAgU2V0RW52KHRvdGFsX3Zhcl8sICIiKTsKLQotICBFWFBF
Q1RfRkFMU0UoU2hvdWxkU2hhcmQodG90YWxfdmFyXywgaW5kZXhfdmFyXywgZmFsc2UpKTsKLSAg
RVhQRUNUX0ZBTFNFKFNob3VsZFNoYXJkKHRvdGFsX3Zhcl8sIGluZGV4X3Zhcl8sIHRydWUpKTsK
LX0KLQotLy8gVGVzdHMgdGhhdCBzaGFyZGluZyBpcyBub3QgZW5hYmxlZCBpZiB0b3RhbF9zaGFy
ZHMgID09IDEuCi1URVNUX0YoU2hvdWxkU2hhcmRUZXN0LCBSZXR1cm5zRmFsc2VXaGVuVG90YWxT
aGFyZElzT25lKSB7Ci0gIFNldEVudihpbmRleF92YXJfLCAiMCIpOwotICBTZXRFbnYodG90YWxf
dmFyXywgIjEiKTsKLSAgRVhQRUNUX0ZBTFNFKFNob3VsZFNoYXJkKHRvdGFsX3Zhcl8sIGluZGV4
X3Zhcl8sIGZhbHNlKSk7Ci0gIEVYUEVDVF9GQUxTRShTaG91bGRTaGFyZCh0b3RhbF92YXJfLCBp
bmRleF92YXJfLCB0cnVlKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgc2hhcmRpbmcgaXMgZW5hYmxl
ZCBpZiB0b3RhbF9zaGFyZHMgPiAxIGFuZAotLy8gd2UgYXJlIG5vdCBpbiBhIGRlYXRoIHRlc3Qg
c3VicHJvY2Vzcy4KLS8vIEVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgbm90IHN1cHBvcnRlZCBv
biBXaW5kb3dzIENFLgotI2lmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQotVEVTVF9GKFNob3Vs
ZFNoYXJkVGVzdCwgV29ya3NXaGVuU2hhcmRFbnZWYXJzQXJlVmFsaWQpIHsKLSAgU2V0RW52KGlu
ZGV4X3Zhcl8sICI0Iik7Ci0gIFNldEVudih0b3RhbF92YXJfLCAiMjIiKTsKLSAgRVhQRUNUX1RS
VUUoU2hvdWxkU2hhcmQodG90YWxfdmFyXywgaW5kZXhfdmFyXywgZmFsc2UpKTsKLSAgRVhQRUNU
X0ZBTFNFKFNob3VsZFNoYXJkKHRvdGFsX3Zhcl8sIGluZGV4X3Zhcl8sIHRydWUpKTsKLQotICBT
ZXRFbnYoaW5kZXhfdmFyXywgIjgiKTsKLSAgU2V0RW52KHRvdGFsX3Zhcl8sICI5Iik7Ci0gIEVY
UEVDVF9UUlVFKFNob3VsZFNoYXJkKHRvdGFsX3Zhcl8sIGluZGV4X3Zhcl8sIGZhbHNlKSk7Ci0g
IEVYUEVDVF9GQUxTRShTaG91bGRTaGFyZCh0b3RhbF92YXJfLCBpbmRleF92YXJfLCB0cnVlKSk7
Ci0KLSAgU2V0RW52KGluZGV4X3Zhcl8sICIwIik7Ci0gIFNldEVudih0b3RhbF92YXJfLCAiOSIp
OwotICBFWFBFQ1RfVFJVRShTaG91bGRTaGFyZCh0b3RhbF92YXJfLCBpbmRleF92YXJfLCBmYWxz
ZSkpOwotICBFWFBFQ1RfRkFMU0UoU2hvdWxkU2hhcmQodG90YWxfdmFyXywgaW5kZXhfdmFyXywg
dHJ1ZSkpOwotfQotI2VuZGlmICAvLyAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKLQotLy8gVGVz
dHMgdGhhdCB3ZSBleGl0IGluIGVycm9yIGlmIHRoZSBzaGFyZGluZyB2YWx1ZXMgYXJlIG5vdCB2
YWxpZC4KLQotdHlwZWRlZiBTaG91bGRTaGFyZFRlc3QgU2hvdWxkU2hhcmREZWF0aFRlc3Q7Ci0K
LVRFU1RfRihTaG91bGRTaGFyZERlYXRoVGVzdCwgQWJvcnRzV2hlblNoYXJkaW5nRW52VmFyc0Fy
ZUludmFsaWQpIHsKLSAgU2V0RW52KGluZGV4X3Zhcl8sICI0Iik7Ci0gIFNldEVudih0b3RhbF92
YXJfLCAiNCIpOwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKFNob3VsZFNoYXJkKHRvdGFs
X3Zhcl8sIGluZGV4X3Zhcl8sIGZhbHNlKSwgIi4qIik7Ci0KLSAgU2V0RW52KGluZGV4X3Zhcl8s
ICI0Iik7Ci0gIFNldEVudih0b3RhbF92YXJfLCAiLTIiKTsKLSAgRVhQRUNUX0RFQVRIX0lGX1NV
UFBPUlRFRChTaG91bGRTaGFyZCh0b3RhbF92YXJfLCBpbmRleF92YXJfLCBmYWxzZSksICIuKiIp
OwotCi0gIFNldEVudihpbmRleF92YXJfLCAiNSIpOwotICBTZXRFbnYodG90YWxfdmFyXywgIiIp
OwotICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKFNob3VsZFNoYXJkKHRvdGFsX3Zhcl8sIGlu
ZGV4X3Zhcl8sIGZhbHNlKSwgIi4qIik7Ci0KLSAgU2V0RW52KGluZGV4X3Zhcl8sICIiKTsKLSAg
U2V0RW52KHRvdGFsX3Zhcl8sICI1Iik7Ci0gIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoU2hv
dWxkU2hhcmQodG90YWxfdmFyXywgaW5kZXhfdmFyXywgZmFsc2UpLCAiLioiKTsKLX0KLQotLy8g
VGVzdHMgdGhhdCBTaG91bGRSdW5UZXN0T25TaGFyZCBpcyBhIHBhcnRpdGlvbiB3aGVuIDUKLS8v
IHNoYXJkcyBhcmUgdXNlZC4KLVRFU1QoU2hvdWxkUnVuVGVzdE9uU2hhcmRUZXN0LCBJc1BhcnRp
dGlvbldoZW5UaGVyZUFyZUZpdmVTaGFyZHMpIHsKLSAgLy8gQ2hvb3NlIGFuIGFyYml0cmFyeSBu
dW1iZXIgb2YgdGVzdHMgYW5kIHNoYXJkcy4KLSAgY29uc3QgaW50IG51bV90ZXN0cyA9IDE3Owot
ICBjb25zdCBpbnQgbnVtX3NoYXJkcyA9IDU7Ci0KLSAgLy8gQ2hlY2sgcGFydGl0aW9uaW5nOiBl
YWNoIHRlc3Qgc2hvdWxkIGJlIG9uIGV4YWN0bHkgMSBzaGFyZC4KLSAgZm9yIChpbnQgdGVzdF9p
ZCA9IDA7IHRlc3RfaWQgPCBudW1fdGVzdHM7IHRlc3RfaWQrKykgewotICAgIGludCBwcmV2X3Nl
bGVjdGVkX3NoYXJkX2luZGV4ID0gLTE7Ci0gICAgZm9yIChpbnQgc2hhcmRfaW5kZXggPSAwOyBz
aGFyZF9pbmRleCA8IG51bV9zaGFyZHM7IHNoYXJkX2luZGV4KyspIHsKLSAgICAgIGlmIChTaG91
bGRSdW5UZXN0T25TaGFyZChudW1fc2hhcmRzLCBzaGFyZF9pbmRleCwgdGVzdF9pZCkpIHsKLSAg
ICAgICAgaWYgKHByZXZfc2VsZWN0ZWRfc2hhcmRfaW5kZXggPCAwKSB7Ci0gICAgICAgICAgcHJl
dl9zZWxlY3RlZF9zaGFyZF9pbmRleCA9IHNoYXJkX2luZGV4OwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIlNoYXJkICIgPDwgcHJldl9zZWxlY3RlZF9zaGFy
ZF9pbmRleCA8PCAiIGFuZCAiCi0gICAgICAgICAgICA8PCBzaGFyZF9pbmRleCA8PCAiIGFyZSBi
b3RoIHNlbGVjdGVkIHRvIHJ1biB0ZXN0ICIgPDwgdGVzdF9pZDsKLSAgICAgICAgfQotICAgICAg
fQotICAgIH0KLSAgfQotCi0gIC8vIENoZWNrIGJhbGFuY2U6IFRoaXMgaXMgbm90IHJlcXVpcmVk
IGJ5IHRoZSBzaGFyZGluZyBwcm90b2NvbCwgYnV0IGlzIGEKLSAgLy8gZGVzaXJhYmxlIHByb3Bl
cnR5IGZvciBwZXJmb3JtYW5jZS4KLSAgZm9yIChpbnQgc2hhcmRfaW5kZXggPSAwOyBzaGFyZF9p
bmRleCA8IG51bV9zaGFyZHM7IHNoYXJkX2luZGV4KyspIHsKLSAgICBpbnQgbnVtX3Rlc3RzX29u
X3NoYXJkID0gMDsKLSAgICBmb3IgKGludCB0ZXN0X2lkID0gMDsgdGVzdF9pZCA8IG51bV90ZXN0
czsgdGVzdF9pZCsrKSB7Ci0gICAgICBudW1fdGVzdHNfb25fc2hhcmQgKz0KLSAgICAgICAgU2hv
dWxkUnVuVGVzdE9uU2hhcmQobnVtX3NoYXJkcywgc2hhcmRfaW5kZXgsIHRlc3RfaWQpOwotICAg
IH0KLSAgICBFWFBFQ1RfR0UobnVtX3Rlc3RzX29uX3NoYXJkLCBudW1fdGVzdHMgLyBudW1fc2hh
cmRzKTsKLSAgfQotfQotCi0vLyBGb3IgdGhlIHNhbWUgcmVhc29uIHdlIGFyZSBub3QgZXhwbGlj
aXRseSB0ZXN0aW5nIGV2ZXJ5dGhpbmcgaW4gdGhlCi0vLyBUZXN0IGNsYXNzLCB0aGVyZSBhcmUg
bm8gc2VwYXJhdGUgdGVzdHMgZm9yIHRoZSBmb2xsb3dpbmcgY2xhc3NlcwotLy8gKGV4Y2VwdCBm
b3Igc29tZSB0cml2aWFsIGNhc2VzKToKLS8vCi0vLyAgIFRlc3RDYXNlLCBVbml0VGVzdCwgVW5p
dFRlc3RSZXN1bHRQcmludGVyLgotLy8KLS8vIFNpbWlsYXJseSwgdGhlcmUgYXJlIG5vIHNlcGFy
YXRlIHRlc3RzIGZvciB0aGUgZm9sbG93aW5nIG1hY3JvczoKLS8vCi0vLyAgIFRFU1QsIFRFU1Rf
RiwgUlVOX0FMTF9URVNUUwotCi1URVNUKFVuaXRUZXN0VGVzdCwgQ2FuR2V0T3JpZ2luYWxXb3Jr
aW5nRGlyKSB7Ci0gIEFTU0VSVF9UUlVFKFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5h
bF93b3JraW5nX2RpcigpICE9IE5VTEwpOwotICBFWFBFQ1RfU1RSTkUoVW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksICIiKTsKLX0KLQotVEVTVChVbml0VGVz
dFRlc3QsIFJldHVybnNQbGF1c2libGVUaW1lc3RhbXApIHsKLSAgRVhQRUNUX0xUKDAsIFVuaXRU
ZXN0OjpHZXRJbnN0YW5jZSgpLT5zdGFydF90aW1lc3RhbXAoKSk7Ci0gIEVYUEVDVF9MRShVbml0
VGVzdDo6R2V0SW5zdGFuY2UoKS0+c3RhcnRfdGltZXN0YW1wKCksIEdldFRpbWVJbk1pbGxpcygp
KTsKLX0KLQotLy8gV2hlbiBhIHByb3BlcnR5IHVzaW5nIGEgcmVzZXJ2ZWQga2V5IGlzIHN1cHBs
aWVkIHRvIHRoaXMgZnVuY3Rpb24sIGl0Ci0vLyB0ZXN0cyB0aGF0IGEgbm9uLWZhdGFsIGZhaWx1
cmUgaXMgYWRkZWQsIGEgZmF0YWwgZmFpbHVyZSBpcyBub3QgYWRkZWQsCi0vLyBhbmQgdGhhdCB0
aGUgcHJvcGVydHkgaXMgbm90IHJlY29yZGVkLgotdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVS
ZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleSgKLSAgICBjb25zdCBUZXN0UmVzdWx0JiB0
ZXN0X3Jlc3VsdCwgY29uc3QgY2hhcioga2V5KSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KFRlc3Q6OlJlY29yZFByb3BlcnR5KGtleSwgIjEiKSwgIlJlc2VydmVkIGtleSIpOwotICBBU1NF
UlRfRVEoMCwgdGVzdF9yZXN1bHQudGVzdF9wcm9wZXJ0eV9jb3VudCgpKSA8PCAiUHJvcGVydHkg
Zm9yIGtleSAnIiA8PCBrZXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgIicgcmVjb3JkZWQgdW5leHBlY3RlZGx5LiI7Ci19Ci0KLXZvaWQgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJy
ZW50VGVzdCgKLSAgICBjb25zdCBjaGFyKiBrZXkpIHsKLSAgY29uc3QgVGVzdEluZm8qIHRlc3Rf
aW5mbyA9IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBB
U1NFUlRfVFJVRSh0ZXN0X2luZm8gIT0gTlVMTCk7Ci0gIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJl
Y29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KCp0ZXN0X2luZm8tPnJlc3VsdCgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkp
OwotfQotCi12b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJl
c2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAotICAgIGNvbnN0IGNoYXIqIGtleSkgewotICBj
b25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJl
bnRfdGVzdF9jYXNlKCk7Ci0gIEFTU0VSVF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKLSAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXkoCi0gICAg
ICB0ZXN0X2Nhc2UtPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOwotfQotCi12b2lkIEV4cGVj
dE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9m
VGVzdENhc2UoCi0gICAgY29uc3QgY2hhcioga2V5KSB7Ci0gIEV4cGVjdE5vbkZhdGFsRmFpbHVy
ZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KAotICAgICAgVW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOwotfQotCi0vLyBUZXN0cyB0aGF0
IHByb3BlcnR5IHJlY29yZGluZyBmdW5jdGlvbnMgaW4gVW5pdFRlc3Qgb3V0c2lkZSBvZiB0ZXN0
cwotLy8gZnVuY3Rpb25zIGNvcnJlY2x5LiAgQ3JlYXRpbmcgYSBzZXBhcmF0ZSBpbnN0YW5jZSBv
ZiBVbml0VGVzdCBlbnN1cmVzIGl0Ci0vLyBpcyBpbiBhIHN0YXRlIHNpbWlsYXIgdG8gdGhlIFVu
aXRUZXN0J3Mgc2luZ2xldG9uJ3MgYmV0d2VlbiB0ZXN0cy4KLWNsYXNzIFVuaXRUZXN0UmVjb3Jk
UHJvcGVydHlUZXN0IDoKLSAgICBwdWJsaWMgdGVzdGluZzo6aW50ZXJuYWw6OlVuaXRUZXN0UmVj
b3JkUHJvcGVydHlUZXN0SGVscGVyIHsKLSBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVz
dENhc2UoKSB7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRo
UmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCi0gICAgICAgICJkaXNhYmxlZCIpOwotICAg
IEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9y
Q3VycmVudFRlc3RDYXNlKAotICAgICAgICAiZXJyb3JzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2Uo
Ci0gICAgICAgICJmYWlsdXJlcyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAotICAgICAgICAibmFt
ZSIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2Vy
dmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAotICAgICAgICAidGVzdHMiKTsKLSAgICBFeHBlY3RO
b25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRU
ZXN0Q2FzZSgKLSAgICAgICAgInRpbWUiKTsKLQotICAgIFRlc3Q6OlJlY29yZFByb3BlcnR5KCJ0
ZXN0X2Nhc2Vfa2V5XzEiLCAiMSIpOwotICAgIGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UgPSBV
bml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2Nhc2UoKTsKLSAgICBBU1NFUlRf
VFJVRSh0ZXN0X2Nhc2UgIT0gTlVMTCk7Ci0KLSAgICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlLT5h
ZF9ob2NfdGVzdF9yZXN1bHQoKS50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwotICAgIEVYUEVDVF9T
VFJFUSgidGVzdF9jYXNlX2tleV8xIiwKLSAgICAgICAgICAgICAgICAgdGVzdF9jYXNlLT5hZF9o
b2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOwotICAgIEVYUEVDVF9T
VFJFUSgiMSIsCi0gICAgICAgICAgICAgICAgIHRlc3RfY2FzZS0+YWRfaG9jX3Rlc3RfcmVzdWx0
KCkuR2V0VGVzdFByb3BlcnR5KDApLnZhbHVlKCkpOwotICB9Ci19OwotCi0vLyBUZXN0cyBUZXN0
UmVzdWx0IGhhcyB0aGUgZXhwZWN0ZWQgcHJvcGVydHkgd2hlbiBhZGRlZC4KLVRFU1RfRihVbml0
VGVzdFJlY29yZFByb3BlcnR5VGVzdCwgT25lUHJvcGVydHlGb3VuZFdoZW5BZGRlZCkgewotICBV
bml0VGVzdFJlY29yZFByb3BlcnR5KCJrZXlfMSIsICIxIik7Ci0KLSAgQVNTRVJUX0VRKDEsIHVu
aXRfdGVzdF8uYWRfaG9jX3Rlc3RfcmVzdWx0KCkudGVzdF9wcm9wZXJ0eV9jb3VudCgpKTsKLQot
ICBFWFBFQ1RfU1RSRVEoImtleV8xIiwKLSAgICAgICAgICAgICAgIHVuaXRfdGVzdF8uYWRfaG9j
X3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDApLmtleSgpKTsKLSAgRVhQRUNUX1NUUkVR
KCIxIiwKLSAgICAgICAgICAgICAgIHVuaXRfdGVzdF8uYWRfaG9jX3Rlc3RfcmVzdWx0KCkuR2V0
VGVzdFByb3BlcnR5KDApLnZhbHVlKCkpOwotfQotCi0vLyBUZXN0cyBUZXN0UmVzdWx0IGhhcyBt
dWx0aXBsZSBwcm9wZXJ0aWVzIHdoZW4gYWRkZWQuCi1URVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9w
ZXJ0eVRlc3QsIE11bHRpcGxlUHJvcGVydGllc0ZvdW5kV2hlbkFkZGVkKSB7Ci0gIFVuaXRUZXN0
UmVjb3JkUHJvcGVydHkoImtleV8xIiwgIjEiKTsKLSAgVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eSgi
a2V5XzIiLCAiMiIpOwotCi0gIEFTU0VSVF9FUSgyLCB1bml0X3Rlc3RfLmFkX2hvY190ZXN0X3Jl
c3VsdCgpLnRlc3RfcHJvcGVydHlfY291bnQoKSk7Ci0KLSAgRVhQRUNUX1NUUkVRKCJrZXlfMSIs
Ci0gICAgICAgICAgICAgICB1bml0X3Rlc3RfLmFkX2hvY190ZXN0X3Jlc3VsdCgpLkdldFRlc3RQ
cm9wZXJ0eSgwKS5rZXkoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiMSIsIHVuaXRfdGVzdF8uYWRfaG9j
X3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDApLnZhbHVlKCkpOwotCi0gIEVYUEVDVF9T
VFJFUSgia2V5XzIiLAotICAgICAgICAgICAgICAgdW5pdF90ZXN0Xy5hZF9ob2NfdGVzdF9yZXN1
bHQoKS5HZXRUZXN0UHJvcGVydHkoMSkua2V5KCkpOwotICBFWFBFQ1RfU1RSRVEoIjIiLCB1bml0
X3Rlc3RfLmFkX2hvY190ZXN0X3Jlc3VsdCgpLkdldFRlc3RQcm9wZXJ0eSgxKS52YWx1ZSgpKTsK
LX0KLQotLy8gVGVzdHMgVGVzdFJlc3VsdDo6UmVjb3JkUHJvcGVydHkoKSBvdmVycmlkZXMgdmFs
dWVzIGZvciBkdXBsaWNhdGUga2V5cy4KLVRFU1RfRihVbml0VGVzdFJlY29yZFByb3BlcnR5VGVz
dCwgT3ZlcnJpZGVzVmFsdWVzRm9yRHVwbGljYXRlS2V5cykgewotICBVbml0VGVzdFJlY29yZFBy
b3BlcnR5KCJrZXlfMSIsICIxIik7Ci0gIFVuaXRUZXN0UmVjb3JkUHJvcGVydHkoImtleV8yIiwg
IjIiKTsKLSAgVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eSgia2V5XzEiLCAiMTIiKTsKLSAgVW5pdFRl
c3RSZWNvcmRQcm9wZXJ0eSgia2V5XzIiLCAiMjIiKTsKLQotICBBU1NFUlRfRVEoMiwgdW5pdF90
ZXN0Xy5hZF9ob2NfdGVzdF9yZXN1bHQoKS50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwotCi0gIEVY
UEVDVF9TVFJFUSgia2V5XzEiLAotICAgICAgICAgICAgICAgdW5pdF90ZXN0Xy5hZF9ob2NfdGVz
dF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOwotICBFWFBFQ1RfU1RSRVEoIjEy
IiwKLSAgICAgICAgICAgICAgIHVuaXRfdGVzdF8uYWRfaG9jX3Rlc3RfcmVzdWx0KCkuR2V0VGVz
dFByb3BlcnR5KDApLnZhbHVlKCkpOwotCi0gIEVYUEVDVF9TVFJFUSgia2V5XzIiLAotICAgICAg
ICAgICAgICAgdW5pdF90ZXN0Xy5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHko
MSkua2V5KCkpOwotICBFWFBFQ1RfU1RSRVEoIjIyIiwKLSAgICAgICAgICAgICAgIHVuaXRfdGVz
dF8uYWRfaG9jX3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDEpLnZhbHVlKCkpOwotfQot
Ci1URVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3QsCi0gICAgICAgQWRkRmFpbHVyZUlu
c2lkZVRlc3RzV2hlblVzaW5nVGVzdENhc2VSZXNlcnZlZEtleXMpIHsKLSAgRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdCgK
LSAgICAgICJuYW1lIik7Ci0gIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5
V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3QoCi0gICAgICAidmFsdWVfcGFyYW0iKTsKLSAg
RXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JD
dXJyZW50VGVzdCgKLSAgICAgICJ0eXBlX3BhcmFtIik7Ci0gIEV4cGVjdE5vbkZhdGFsRmFpbHVy
ZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3QoCi0gICAgICAi
c3RhdHVzIik7Ci0gIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJl
c2VydmVkS2V5Rm9yQ3VycmVudFRlc3QoCi0gICAgICAidGltZSIpOwotICBFeHBlY3ROb25GYXRh
bEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0KAot
ICAgICAgImNsYXNzbmFtZSIpOwotfQotCi1URVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRl
c3QsCi0gICAgICAgQWRkUmVjb3JkV2l0aFJlc2VydmVkS2V5c0dlbmVyYXRlc0NvcnJlY3RQcm9w
ZXJ0eUxpc3QpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoCi0gICAgICBUZXN0OjpSZWNv
cmRQcm9wZXJ0eSgibmFtZSIsICIxIiksCi0gICAgICAiJ2NsYXNzbmFtZScsICduYW1lJywgJ3N0
YXR1cycsICd0aW1lJywgJ3R5cGVfcGFyYW0nLCBhbmQgJ3ZhbHVlX3BhcmFtJyIKLSAgICAgICIg
YXJlIHJlc2VydmVkIik7Ci19Ci0KLWNsYXNzIFVuaXRUZXN0UmVjb3JkUHJvcGVydHlUZXN0RW52
aXJvbm1lbnQgOiBwdWJsaWMgRW52aXJvbm1lbnQgewotIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lk
IFRlYXJEb3duKCkgewotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5
V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCi0gICAgICAgICJ0ZXN0cyIpOwotICAg
IEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0
c2lkZU9mVGVzdENhc2UoCi0gICAgICAgICJmYWlsdXJlcyIpOwotICAgIEV4cGVjdE5vbkZhdGFs
RmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2Uo
Ci0gICAgICAgICJkaXNhYmxlZCIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCi0gICAgICAgICJlcnJv
cnMiKTsKLSAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNl
cnZlZEtleU91dHNpZGVPZlRlc3RDYXNlKAotICAgICAgICAibmFtZSIpOwotICAgIEV4cGVjdE5v
bkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVz
dENhc2UoCi0gICAgICAgICJ0aW1lc3RhbXAiKTsKLSAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVS
ZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RDYXNlKAotICAgICAg
ICAidGltZSIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0
aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCi0gICAgICAgICJyYW5kb21fc2VlZCIpOwot
ICB9Ci19OwotCi0vLyBUaGlzIHdpbGwgdGVzdCBwcm9wZXJ0eSByZWNvcmRpbmcgb3V0c2lkZSBv
ZiBhbnkgdGVzdCBvciB0ZXN0IGNhc2UuCi1FbnZpcm9ubWVudCogcmVjb3JkX3Byb3BlcnR5X2Vu
diBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9Ci0gICAgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50
KG5ldyBVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdEVudmlyb25tZW50KTsKLQotLy8gVGhpcyBn
cm91cCBvZiB0ZXN0cyBpcyBmb3IgcHJlZGljYXRlIGFzc2VydGlvbnMgKEFTU0VSVF9QUkVEKiwg
ZXRjKQotLy8gb2YgdmFyaW91cyBhcml0aWVzLiAgVGhleSBkbyBub3QgYXR0ZW1wdCB0byBiZSBl
eGhhdXN0aXZlLiAgUmF0aGVyLAotLy8gdmlldyB0aGVtIGFzIHNtb2tlIHRlc3RzIHRoYXQgY2Fu
IGJlIGVhc2lseSByZXZpZXdlZCBhbmQgdmVyaWZpZWQuCi0vLyBBIG1vcmUgY29tcGxldGUgc2V0
IG9mIHRlc3RzIGZvciBwcmVkaWNhdGUgYXNzZXJ0aW9ucyBjYW4gYmUgZm91bmQKLS8vIGluIGd0
ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYy4KLQotLy8gRmlyc3QsIHNvbWUgcHJlZGljYXRlcyBh
bmQgcHJlZGljYXRlLWZvcm1hdHRlcnMgbmVlZGVkIGJ5IHRoZSB0ZXN0cy4KLQotLy8gUmV0dXJu
cyB0cnVlIGlmZiB0aGUgYXJndW1lbnQgaXMgYW4gZXZlbiBudW1iZXIuCi1ib29sIElzRXZlbihp
bnQgbikgewotICByZXR1cm4gKG4gJSAyKSA9PSAwOwotfQotCi0vLyBBIGZ1bmN0b3IgdGhhdCBy
ZXR1cm5zIHRydWUgaWZmIHRoZSBhcmd1bWVudCBpcyBhbiBldmVuIG51bWJlci4KLXN0cnVjdCBJ
c0V2ZW5GdW5jdG9yIHsKLSAgYm9vbCBvcGVyYXRvcigpKGludCBuKSB7IHJldHVybiBJc0V2ZW4o
bik7IH0KLX07Ci0KLS8vIEEgcHJlZGljYXRlLWZvcm1hdHRlciBmdW5jdGlvbiB0aGF0IGFzc2Vy
dHMgdGhlIGFyZ3VtZW50IGlzIGFuIGV2ZW4KLS8vIG51bWJlci4KLUFzc2VydGlvblJlc3VsdCBB
c3NlcnRJc0V2ZW4oY29uc3QgY2hhciogZXhwciwgaW50IG4pIHsKLSAgaWYgKElzRXZlbihuKSkg
ewotICAgIHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7Ci0gIH0KLQotICBNZXNzYWdlIG1zZzsK
LSAgbXNnIDw8IGV4cHIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCBuIDw8ICIsIHdoaWNoIGlzIG5v
dCBldmVuLiI7Ci0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKG1zZyk7Ci19Ci0KLS8vIEEgcHJl
ZGljYXRlIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBBc3NlcnRpb25SZXN1bHQgZm9yIHVzZSBpbgot
Ly8gRVhQRUNUL0FTU0VSVF9UUlVFL0ZBTFNFLgotQXNzZXJ0aW9uUmVzdWx0IFJlc3VsdElzRXZl
bihpbnQgbikgewotICBpZiAoSXNFdmVuKG4pKQotICAgIHJldHVybiBBc3NlcnRpb25TdWNjZXNz
KCkgPDwgbiA8PCAiIGlzIGV2ZW4iOwotICBlbHNlCi0gICAgcmV0dXJuIEFzc2VydGlvbkZhaWx1
cmUoKSA8PCBuIDw8ICIgaXMgb2RkIjsKLX0KLQotLy8gQSBwcmVkaWNhdGUgZnVuY3Rpb24gdGhh
dCByZXR1cm5zIEFzc2VydGlvblJlc3VsdCBidXQgZ2l2ZXMgbm8KLS8vIGV4cGxhbmF0aW9uIHdo
eSBpdCBzdWNjZWVkcy4gTmVlZGVkIGZvciB0ZXN0aW5nIHRoYXQKLS8vIEVYUEVDVC9BU1NFUlRf
RkFMU0UgaGFuZGxlcyBzdWNoIGZ1bmN0aW9ucyBjb3JyZWN0bHkuCi1Bc3NlcnRpb25SZXN1bHQg
UmVzdWx0SXNFdmVuTm9FeHBsYW5hdGlvbihpbnQgbikgewotICBpZiAoSXNFdmVuKG4pKQotICAg
IHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7Ci0gIGVsc2UKLSAgICByZXR1cm4gQXNzZXJ0aW9u
RmFpbHVyZSgpIDw8IG4gPDwgIiBpcyBvZGQiOwotfQotCi0vLyBBIHByZWRpY2F0ZS1mb3JtYXR0
ZXIgZnVuY3RvciB0aGF0IGFzc2VydHMgdGhlIGFyZ3VtZW50IGlzIGFuIGV2ZW4KLS8vIG51bWJl
ci4KLXN0cnVjdCBBc3NlcnRJc0V2ZW5GdW5jdG9yIHsKLSAgQXNzZXJ0aW9uUmVzdWx0IG9wZXJh
dG9yKCkoY29uc3QgY2hhciogZXhwciwgaW50IG4pIHsKLSAgICByZXR1cm4gQXNzZXJ0SXNFdmVu
KGV4cHIsIG4pOwotICB9Ci19OwotCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBzdW0gb2YgdGhl
IGFyZ3VtZW50cyBpcyBhbiBldmVuIG51bWJlci4KLWJvb2wgU3VtSXNFdmVuMihpbnQgbjEsIGlu
dCBuMikgewotICByZXR1cm4gSXNFdmVuKG4xICsgbjIpOwotfQotCi0vLyBBIGZ1bmN0b3IgdGhh
dCByZXR1cm5zIHRydWUgaWZmIHRoZSBzdW0gb2YgdGhlIGFyZ3VtZW50cyBpcyBhbiBldmVuCi0v
LyBudW1iZXIuCi1zdHJ1Y3QgU3VtSXNFdmVuM0Z1bmN0b3IgewotICBib29sIG9wZXJhdG9yKCko
aW50IG4xLCBpbnQgbjIsIGludCBuMykgewotICAgIHJldHVybiBJc0V2ZW4objEgKyBuMiArIG4z
KTsKLSAgfQotfTsKLQotLy8gQSBwcmVkaWNhdGUtZm9ybWF0dGVyIGZ1bmN0aW9uIHRoYXQgYXNz
ZXJ0cyB0aGUgc3VtIG9mIHRoZQotLy8gYXJndW1lbnRzIGlzIGFuIGV2ZW4gbnVtYmVyLgotQXNz
ZXJ0aW9uUmVzdWx0IEFzc2VydFN1bUlzRXZlbjQoCi0gICAgY29uc3QgY2hhciogZTEsIGNvbnN0
IGNoYXIqIGUyLCBjb25zdCBjaGFyKiBlMywgY29uc3QgY2hhciogZTQsCi0gICAgaW50IG4xLCBp
bnQgbjIsIGludCBuMywgaW50IG40KSB7Ci0gIGNvbnN0IGludCBzdW0gPSBuMSArIG4yICsgbjMg
KyBuNDsKLSAgaWYgKElzRXZlbihzdW0pKSB7Ci0gICAgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3Mo
KTsKLSAgfQotCi0gIE1lc3NhZ2UgbXNnOwotICBtc2cgPDwgZTEgPDwgIiArICIgPDwgZTIgPDwg
IiArICIgPDwgZTMgPDwgIiArICIgPDwgZTQKLSAgICAgIDw8ICIgKCIgPDwgbjEgPDwgIiArICIg
PDwgbjIgPDwgIiArICIgPDwgbjMgPDwgIiArICIgPDwgbjQKLSAgICAgIDw8ICIpIGV2YWx1YXRl
cyB0byAiIDw8IHN1bSA8PCAiLCB3aGljaCBpcyBub3QgZXZlbi4iOwotICByZXR1cm4gQXNzZXJ0
aW9uRmFpbHVyZShtc2cpOwotfQotCi0vLyBBIHByZWRpY2F0ZS1mb3JtYXR0ZXIgZnVuY3RvciB0
aGF0IGFzc2VydHMgdGhlIHN1bSBvZiB0aGUgYXJndW1lbnRzCi0vLyBpcyBhbiBldmVuIG51bWJl
ci4KLXN0cnVjdCBBc3NlcnRTdW1Jc0V2ZW41RnVuY3RvciB7Ci0gIEFzc2VydGlvblJlc3VsdCBv
cGVyYXRvcigpKAotICAgICAgY29uc3QgY2hhciogZTEsIGNvbnN0IGNoYXIqIGUyLCBjb25zdCBj
aGFyKiBlMywgY29uc3QgY2hhciogZTQsCi0gICAgICBjb25zdCBjaGFyKiBlNSwgaW50IG4xLCBp
bnQgbjIsIGludCBuMywgaW50IG40LCBpbnQgbjUpIHsKLSAgICBjb25zdCBpbnQgc3VtID0gbjEg
KyBuMiArIG4zICsgbjQgKyBuNTsKLSAgICBpZiAoSXNFdmVuKHN1bSkpIHsKLSAgICAgIHJldHVy
biBBc3NlcnRpb25TdWNjZXNzKCk7Ci0gICAgfQotCi0gICAgTWVzc2FnZSBtc2c7Ci0gICAgbXNn
IDw8IGUxIDw8ICIgKyAiIDw8IGUyIDw8ICIgKyAiIDw8IGUzIDw8ICIgKyAiIDw8IGU0IDw8ICIg
KyAiIDw8IGU1Ci0gICAgICAgIDw8ICIgKCIKLSAgICAgICAgPDwgbjEgPDwgIiArICIgPDwgbjIg
PDwgIiArICIgPDwgbjMgPDwgIiArICIgPDwgbjQgPDwgIiArICIgPDwgbjUKLSAgICAgICAgPDwg
IikgZXZhbHVhdGVzIHRvICIgPDwgc3VtIDw8ICIsIHdoaWNoIGlzIG5vdCBldmVuLiI7Ci0gICAg
cmV0dXJuIEFzc2VydGlvbkZhaWx1cmUobXNnKTsKLSAgfQotfTsKLQotCi0vLyBUZXN0cyB1bmFy
eSBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4KLQotLy8gVGVzdHMgdW5hcnkgcHJlZGljYXRlIGFzc2Vy
dGlvbnMgdGhhdCBkb24ndCB1c2UgYSBjdXN0b20gZm9ybWF0dGVyLgotVEVTVChQcmVkMVRlc3Qs
IFdpdGhvdXRGb3JtYXQpIHsKLSAgLy8gU3VjY2VzcyBjYXNlcy4KLSAgRVhQRUNUX1BSRUQxKElz
RXZlbkZ1bmN0b3IoKSwgMikgPDwgIlRoaXMgZmFpbHVyZSBpcyBVTkVYUEVDVEVEISI7Ci0gIEFT
U0VSVF9QUkVEMShJc0V2ZW4sIDQpOwotCi0gIC8vIEZhaWx1cmUgY2FzZXMuCi0gIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVEMShJc0V2ZW4sIDUp
IDw8ICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQuIjsKLSAgfSwgIlRoaXMgZmFpbHVyZSBpcyBl
eHBlY3RlZC4iKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1BSRUQxKElzRXZlbkZ1
bmN0b3IoKSwgNSksCi0gICAgICAgICAgICAgICAgICAgICAgICJldmFsdWF0ZXMgdG8gZmFsc2Ui
KTsKLX0KLQotLy8gVGVzdHMgdW5hcnkgcHJlZGljYXRlIGFzc2VydGlvbnMgdGhhdCB1c2UgYSBj
dXN0b20gZm9ybWF0dGVyLgotVEVTVChQcmVkMVRlc3QsIFdpdGhGb3JtYXQpIHsKLSAgLy8gU3Vj
Y2VzcyBjYXNlcy4KLSAgRVhQRUNUX1BSRURfRk9STUFUMShBc3NlcnRJc0V2ZW4sIDIpOwotICBB
U1NFUlRfUFJFRF9GT1JNQVQxKEFzc2VydElzRXZlbkZ1bmN0b3IoKSwgNCkKLSAgICA8PCAiVGhp
cyBmYWlsdXJlIGlzIFVORVhQRUNURUQhIjsKLQotICAvLyBGYWlsdXJlIGNhc2VzLgotICBjb25z
dCBpbnQgbiA9IDU7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9QUkVEX0ZPUk1B
VDEoQXNzZXJ0SXNFdmVuRnVuY3RvcigpLCBuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Im4gZXZhbHVhdGVzIHRvIDUsIHdoaWNoIGlzIG5vdCBldmVuLiIpOwotICBFWFBFQ1RfRkFUQUxf
RkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRF9GT1JNQVQxKEFzc2VydElzRXZl
biwgNSkgPDwgIlRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZC4iOwotICB9LCAiVGhpcyBmYWlsdXJl
IGlzIGV4cGVjdGVkLiIpOwotfQotCi0vLyBUZXN0cyB0aGF0IHVuYXJ5IHByZWRpY2F0ZSBhc3Nl
cnRpb25zIGV2YWx1YXRlcyB0aGVpciBhcmd1bWVudHMKLS8vIGV4YWN0bHkgb25jZS4KLVRFU1Qo
UHJlZDFUZXN0LCBTaW5nbGVFdmFsdWF0aW9uT25GYWlsdXJlKSB7Ci0gIC8vIEEgc3VjY2VzcyBj
YXNlLgotICBzdGF0aWMgaW50IG4gPSAwOwotICBFWFBFQ1RfUFJFRDEoSXNFdmVuLCBuKyspOwot
ICBFWFBFQ1RfRVEoMSwgbikgPDwgIlRoZSBhcmd1bWVudCBpcyBub3QgZXZhbHVhdGVkIGV4YWN0
bHkgb25jZS4iOwotCi0gIC8vIEEgZmFpbHVyZSBjYXNlLgotICBFWFBFQ1RfRkFUQUxfRkFJTFVS
RSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfUFJFRF9GT1JNQVQxKEFzc2VydElzRXZlbkZ1bmN0
b3IoKSwgbisrKQotICAgICAgICA8PCAiVGhpcyBmYWlsdXJlIGlzIGV4cGVjdGVkLiI7Ci0gIH0s
ICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQuIik7Ci0gIEVYUEVDVF9FUSgyLCBuKSA8PCAiVGhl
IGFyZ3VtZW50IGlzIG5vdCBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLiI7Ci19Ci0KLQotLy8gVGVz
dHMgcHJlZGljYXRlIGFzc2VydGlvbnMgd2hvc2UgYXJpdHkgaXMgPj0gMi4KLQotLy8gVGVzdHMg
cHJlZGljYXRlIGFzc2VydGlvbnMgdGhhdCBkb24ndCB1c2UgYSBjdXN0b20gZm9ybWF0dGVyLgot
VEVTVChQcmVkVGVzdCwgV2l0aG91dEZvcm1hdCkgewotICAvLyBTdWNjZXNzIGNhc2VzLgotICBB
U1NFUlRfUFJFRDIoU3VtSXNFdmVuMiwgMiwgNCkgPDwgIlRoaXMgZmFpbHVyZSBpcyBVTkVYUEVD
VEVEISI7Ci0gIEVYUEVDVF9QUkVEMyhTdW1Jc0V2ZW4zRnVuY3RvcigpLCA0LCA2LCA4KTsKLQot
ICAvLyBGYWlsdXJlIGNhc2VzLgotICBjb25zdCBpbnQgbjEgPSAxOwotICBjb25zdCBpbnQgbjIg
PSAyOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1Rf
UFJFRDIoU3VtSXNFdmVuMiwgbjEsIG4yKSA8PCAiVGhpcyBmYWlsdXJlIGlzIGV4cGVjdGVkLiI7
Ci0gIH0sICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQuIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlM
VVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9QUkVEMyhTdW1Jc0V2ZW4zRnVuY3RvcigpLCAx
LCAyLCA0KTsKLSAgfSwgImV2YWx1YXRlcyB0byBmYWxzZSIpOwotfQotCi0vLyBUZXN0cyBwcmVk
aWNhdGUgYXNzZXJ0aW9ucyB0aGF0IHVzZSBhIGN1c3RvbSBmb3JtYXR0ZXIuCi1URVNUKFByZWRU
ZXN0LCBXaXRoRm9ybWF0KSB7Ci0gIC8vIFN1Y2Nlc3MgY2FzZXMuCi0gIEFTU0VSVF9QUkVEX0ZP
Uk1BVDQoQXNzZXJ0U3VtSXNFdmVuNCwgNCwgNiwgOCwgMTApIDw8Ci0gICAgIlRoaXMgZmFpbHVy
ZSBpcyBVTkVYUEVDVEVEISI7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDUoQXNzZXJ0U3VtSXNFdmVu
NUZ1bmN0b3IoKSwgMiwgNCwgNiwgOCwgMTApOwotCi0gIC8vIEZhaWx1cmUgY2FzZXMuCi0gIGNv
bnN0IGludCBuMSA9IDE7Ci0gIGNvbnN0IGludCBuMiA9IDI7Ci0gIGNvbnN0IGludCBuMyA9IDQ7
Ci0gIGNvbnN0IGludCBuNCA9IDY7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5P
TElOVAotICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDQoQXNzZXJ0U3VtSXNFdmVuNCwgbjEsIG4yLCBu
MywgbjQpOwotICB9LCAiZXZhbHVhdGVzIHRvIDEzLCB3aGljaCBpcyBub3QgZXZlbi4iKTsKLSAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURfRk9STUFU
NShBc3NlcnRTdW1Jc0V2ZW41RnVuY3RvcigpLCAxLCAyLCA0LCA2LCA4KQotICAgICAgICA8PCAi
VGhpcyBmYWlsdXJlIGlzIGV4cGVjdGVkLiI7Ci0gIH0sICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0
ZWQuIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgcHJlZGljYXRlIGFzc2VydGlvbnMgZXZhbHVhdGVz
IHRoZWlyIGFyZ3VtZW50cwotLy8gZXhhY3RseSBvbmNlLgotVEVTVChQcmVkVGVzdCwgU2luZ2xl
RXZhbHVhdGlvbk9uRmFpbHVyZSkgewotICAvLyBBIHN1Y2Nlc3MgY2FzZS4KLSAgaW50IG4xID0g
MDsKLSAgaW50IG4yID0gMDsKLSAgRVhQRUNUX1BSRUQyKFN1bUlzRXZlbjIsIG4xKyssIG4yKysp
OwotICBFWFBFQ1RfRVEoMSwgbjEpIDw8ICJBcmd1bWVudCAxIGlzIG5vdCBldmFsdWF0ZWQgZXhh
Y3RseSBvbmNlLiI7Ci0gIEVYUEVDVF9FUSgxLCBuMikgPDwgIkFyZ3VtZW50IDIgaXMgbm90IGV2
YWx1YXRlZCBleGFjdGx5IG9uY2UuIjsKLQotICAvLyBBbm90aGVyIHN1Y2Nlc3MgY2FzZS4KLSAg
bjEgPSBuMiA9IDA7Ci0gIGludCBuMyA9IDA7Ci0gIGludCBuNCA9IDA7Ci0gIGludCBuNSA9IDA7
Ci0gIEFTU0VSVF9QUkVEX0ZPUk1BVDUoQXNzZXJ0U3VtSXNFdmVuNUZ1bmN0b3IoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICBuMSsrLCBuMisrLCBuMysrLCBuNCsrLCBuNSsrKQotICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgIlRoaXMgZmFpbHVyZSBpcyBVTkVYUEVDVEVEISI7Ci0gIEVYUEVD
VF9FUSgxLCBuMSkgPDwgIkFyZ3VtZW50IDEgaXMgbm90IGV2YWx1YXRlZCBleGFjdGx5IG9uY2Uu
IjsKLSAgRVhQRUNUX0VRKDEsIG4yKSA8PCAiQXJndW1lbnQgMiBpcyBub3QgZXZhbHVhdGVkIGV4
YWN0bHkgb25jZS4iOwotICBFWFBFQ1RfRVEoMSwgbjMpIDw8ICJBcmd1bWVudCAzIGlzIG5vdCBl
dmFsdWF0ZWQgZXhhY3RseSBvbmNlLiI7Ci0gIEVYUEVDVF9FUSgxLCBuNCkgPDwgIkFyZ3VtZW50
IDQgaXMgbm90IGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuIjsKLSAgRVhQRUNUX0VRKDEsIG41KSA8
PCAiQXJndW1lbnQgNSBpcyBub3QgZXZhbHVhdGVkIGV4YWN0bHkgb25jZS4iOwotCi0gIC8vIEEg
ZmFpbHVyZSBjYXNlLgotICBuMSA9IG4yID0gbjMgPSAwOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJFRDMoU3VtSXNFdmVuM0Z1bmN0b3IoKSwg
KytuMSwgbjIrKywgbjMrKykKLSAgICAgICAgPDwgIlRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZC4i
OwotICB9LCAiVGhpcyBmYWlsdXJlIGlzIGV4cGVjdGVkLiIpOwotICBFWFBFQ1RfRVEoMSwgbjEp
IDw8ICJBcmd1bWVudCAxIGlzIG5vdCBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLiI7Ci0gIEVYUEVD
VF9FUSgxLCBuMikgPDwgIkFyZ3VtZW50IDIgaXMgbm90IGV2YWx1YXRlZCBleGFjdGx5IG9uY2Uu
IjsKLSAgRVhQRUNUX0VRKDEsIG4zKSA8PCAiQXJndW1lbnQgMyBpcyBub3QgZXZhbHVhdGVkIGV4
YWN0bHkgb25jZS4iOwotCi0gIC8vIEFub3RoZXIgZmFpbHVyZSBjYXNlLgotICBuMSA9IG4yID0g
bjMgPSBuNCA9IDA7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAg
IEVYUEVDVF9QUkVEX0ZPUk1BVDQoQXNzZXJ0U3VtSXNFdmVuNCwgKytuMSwgbjIrKywgbjMrKywg
bjQrKyk7Ci0gIH0sICJldmFsdWF0ZXMgdG8gMSwgd2hpY2ggaXMgbm90IGV2ZW4uIik7Ci0gIEVY
UEVDVF9FUSgxLCBuMSkgPDwgIkFyZ3VtZW50IDEgaXMgbm90IGV2YWx1YXRlZCBleGFjdGx5IG9u
Y2UuIjsKLSAgRVhQRUNUX0VRKDEsIG4yKSA8PCAiQXJndW1lbnQgMiBpcyBub3QgZXZhbHVhdGVk
IGV4YWN0bHkgb25jZS4iOwotICBFWFBFQ1RfRVEoMSwgbjMpIDw8ICJBcmd1bWVudCAzIGlzIG5v
dCBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLiI7Ci0gIEVYUEVDVF9FUSgxLCBuNCkgPDwgIkFyZ3Vt
ZW50IDQgaXMgbm90IGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuIjsKLX0KLQotCi0vLyBTb21lIGhl
bHBlciBmdW5jdGlvbnMgZm9yIHRlc3RpbmcgdXNpbmcgb3ZlcmxvYWRlZC90ZW1wbGF0ZQotLy8g
ZnVuY3Rpb25zIHdpdGggQVNTRVJUX1BSRURuIGFuZCBFWFBFQ1RfUFJFRG4uCi0KLWJvb2wgSXNQ
b3NpdGl2ZShkb3VibGUgeCkgewotICByZXR1cm4geCA+IDA7Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotYm9vbCBJc05lZ2F0aXZlKFQgeCkgewotICByZXR1cm4geCA8IDA7Ci19Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1ib29sIEdyZWF0ZXJUaGFuKFQxIHgx
LCBUMiB4MikgewotICByZXR1cm4geDEgPiB4MjsKLX0KLQotLy8gVGVzdHMgdGhhdCBvdmVybG9h
ZGVkIGZ1bmN0aW9ucyBjYW4gYmUgdXNlZCBpbiAqX1BSRUQqIGFzIGxvbmcgYXMKLS8vIHRoZWly
IHR5cGVzIGFyZSBleHBsaWNpdGx5IHNwZWNpZmllZC4KLVRFU1QoUHJlZGljYXRlQXNzZXJ0aW9u
VGVzdCwgQWNjZXB0c092ZXJsb2FkZWRGdW5jdGlvbikgewotICAvLyBDKytCdWlsZGVyIHJlcXVp
cmVzIEMtc3R5bGUgY2FzdHMgcmF0aGVyIHRoYW4gc3RhdGljX2Nhc3QuCi0gIEVYUEVDVF9QUkVE
MSgoYm9vbCAoKikoaW50KSkoSXNQb3NpdGl2ZSksIDUpOyAgLy8gTk9MSU5UCi0gIEFTU0VSVF9Q
UkVEMSgoYm9vbCAoKikoZG91YmxlKSkoSXNQb3NpdGl2ZSksIDYuMCk7ICAvLyBOT0xJTlQKLX0K
LQotLy8gVGVzdHMgdGhhdCB0ZW1wbGF0ZSBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgaW4gKl9QUkVE
KiBhcyBsb25nIGFzCi0vLyB0aGVpciB0eXBlcyBhcmUgZXhwbGljaXRseSBzcGVjaWZpZWQuCi1U
RVNUKFByZWRpY2F0ZUFzc2VydGlvblRlc3QsIEFjY2VwdHNUZW1wbGF0ZUZ1bmN0aW9uKSB7Ci0g
IEVYUEVDVF9QUkVEMShJc05lZ2F0aXZlPGludD4sIC01KTsKLSAgLy8gTWFrZXMgc3VyZSB0aGF0
IHdlIGNhbiBoYW5kbGUgdGVtcGxhdGVzIHdpdGggbW9yZSB0aGFuIG9uZQotICAvLyBwYXJhbWV0
ZXIuCi0gIEFTU0VSVF9QUkVEMigoR3JlYXRlclRoYW48aW50LCBpbnQ+KSwgNSwgMCk7Ci19Ci0K
LQotLy8gU29tZSBoZWxwZXIgZnVuY3Rpb25zIGZvciB0ZXN0aW5nIHVzaW5nIG92ZXJsb2FkZWQv
dGVtcGxhdGUKLS8vIGZ1bmN0aW9ucyB3aXRoIEFTU0VSVF9QUkVEX0ZPUk1BVG4gYW5kIEVYUEVD
VF9QUkVEX0ZPUk1BVG4uCi0KLUFzc2VydGlvblJlc3VsdCBJc1Bvc2l0aXZlRm9ybWF0KGNvbnN0
IGNoYXIqIC8qIGV4cHIgKi8sIGludCBuKSB7Ci0gIHJldHVybiBuID4gMCA/IEFzc2VydGlvblN1
Y2Nlc3MoKSA6Ci0gICAgICBBc3NlcnRpb25GYWlsdXJlKE1lc3NhZ2UoKSA8PCAiRmFpbHVyZSIp
OwotfQotCi1Bc3NlcnRpb25SZXN1bHQgSXNQb3NpdGl2ZUZvcm1hdChjb25zdCBjaGFyKiAvKiBl
eHByICovLCBkb3VibGUgeCkgewotICByZXR1cm4geCA+IDAgPyBBc3NlcnRpb25TdWNjZXNzKCkg
OgotICAgICAgQXNzZXJ0aW9uRmFpbHVyZShNZXNzYWdlKCkgPDwgIkZhaWx1cmUiKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1Bc3NlcnRpb25SZXN1bHQgSXNOZWdhdGl2ZUZvcm1hdChj
b25zdCBjaGFyKiAvKiBleHByICovLCBUIHgpIHsKLSAgcmV0dXJuIHggPCAwID8gQXNzZXJ0aW9u
U3VjY2VzcygpIDoKLSAgICAgIEFzc2VydGlvbkZhaWx1cmUoTWVzc2FnZSgpIDw8ICJGYWlsdXJl
Iik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1Bc3NlcnRpb25S
ZXN1bHQgRXF1YWxzRm9ybWF0KGNvbnN0IGNoYXIqIC8qIGV4cHIxICovLCBjb25zdCBjaGFyKiAv
KiBleHByMiAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDEmIHgxLCBj
b25zdCBUMiYgeDIpIHsKLSAgcmV0dXJuIHgxID09IHgyID8gQXNzZXJ0aW9uU3VjY2VzcygpIDoK
LSAgICAgIEFzc2VydGlvbkZhaWx1cmUoTWVzc2FnZSgpIDw8ICJGYWlsdXJlIik7Ci19Ci0KLS8v
IFRlc3RzIHRoYXQgb3ZlcmxvYWRlZCBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgaW4gKl9QUkVEX0ZP
Uk1BVCoKLS8vIHdpdGhvdXQgZXhwbGljaXRseSBzcGVjaWZ5aW5nIHRoZWlyIHR5cGVzLgotVEVT
VChQcmVkaWNhdGVGb3JtYXRBc3NlcnRpb25UZXN0LCBBY2NlcHRzT3ZlcmxvYWRlZEZ1bmN0aW9u
KSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDEoSXNQb3NpdGl2ZUZvcm1hdCwgNSk7Ci0gIEFTU0VS
VF9QUkVEX0ZPUk1BVDEoSXNQb3NpdGl2ZUZvcm1hdCwgNi4wKTsKLX0KLQotLy8gVGVzdHMgdGhh
dCB0ZW1wbGF0ZSBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgaW4gKl9QUkVEX0ZPUk1BVCogd2l0aG91
dAotLy8gZXhwbGljaXRseSBzcGVjaWZ5aW5nIHRoZWlyIHR5cGVzLgotVEVTVChQcmVkaWNhdGVG
b3JtYXRBc3NlcnRpb25UZXN0LCBBY2NlcHRzVGVtcGxhdGVGdW5jdGlvbikgewotICBFWFBFQ1Rf
UFJFRF9GT1JNQVQxKElzTmVnYXRpdmVGb3JtYXQsIC01KTsKLSAgQVNTRVJUX1BSRURfRk9STUFU
MihFcXVhbHNGb3JtYXQsIDMsIDMpOwotfQotCi0KLS8vIFRlc3RzIHN0cmluZyBhc3NlcnRpb25z
LgotCi0vLyBUZXN0cyBBU1NFUlRfU1RSRVEgd2l0aCBub24tTlVMTCBhcmd1bWVudHMuCi1URVNU
KFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJFUSkgewotICBjb25zdCBjaGFyICogY29u
c3QgcDEgPSAiZ29vZCI7Ci0gIEFTU0VSVF9TVFJFUShwMSwgcDEpOwotCi0gIC8vIExldCBwMiBo
YXZlIHRoZSBzYW1lIGNvbnRlbnQgYXMgcDEsIGJ1dCBiZSBhdCBhIGRpZmZlcmVudCBhZGRyZXNz
LgotICBjb25zdCBjaGFyIHAyW10gPSAiZ29vZCI7Ci0gIEFTU0VSVF9TVFJFUShwMSwgcDIpOwot
Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKAotICAgICAgQVNTRVJUX1NUUkVRKCJiYWQiLCAiZ29v
ZCIpLAotICAgICAgIkV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbiAgXCJiYWRc
IlxuICBcImdvb2RcIiIpOwotfQotCi0vLyBUZXN0cyBBU1NFUlRfU1RSRVEgd2l0aCBOVUxMIGFy
Z3VtZW50cy4KLVRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX1NUUkVRX051bGwpIHsK
LSAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIgKj4oTlVMTCksIE5VTEwpOwot
ICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfU1RSRVEoTlVMTCwgIm5vbi1udWxsIiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICJub24tbnVsbCIpOwotfQotCi0vLyBUZXN0cyBBU1NFUlRf
U1RSRVEgd2l0aCBOVUxMIGFyZ3VtZW50cy4KLVRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNT
RVJUX1NUUkVRX051bGwyKSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJFUSgi
bm9uLW51bGwiLCBOVUxMKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIm5vbi1udWxsIik7Ci19
Ci0KLS8vIFRlc3RzIEFTU0VSVF9TVFJORS4KLVRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNT
RVJUX1NUUk5FKSB7Ci0gIEFTU0VSVF9TVFJORSgiaGkiLCAiSGkiKTsKLSAgQVNTRVJUX1NUUk5F
KCJIaSIsIE5VTEwpOwotICBBU1NFUlRfU1RSTkUoTlVMTCwgIkhpIik7Ci0gIEFTU0VSVF9TVFJO
RSgiIiwgTlVMTCk7Ci0gIEFTU0VSVF9TVFJORShOVUxMLCAiIik7Ci0gIEFTU0VSVF9TVFJORSgi
IiwgIkhpIik7Ci0gIEFTU0VSVF9TVFJORSgiSGkiLCAiIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlM
VVJFKEFTU0VSVF9TVFJORSgiSGkiLCAiSGkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIlwi
SGlcIiB2cyBcIkhpXCIiKTsKLX0KLQotLy8gVGVzdHMgQVNTRVJUX1NUUkNBU0VFUS4KLVRFU1Qo
U3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX1NUUkNBU0VFUSkgewotICBBU1NFUlRfU1RSQ0FT
RUVRKCJoaSIsICJIaSIpOwotICBBU1NFUlRfU1RSQ0FTRUVRKHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIgKj4oTlVMTCksIE5VTEwpOwotCi0gIEFTU0VSVF9TVFJDQVNFRVEoIiIsICIiKTsKLSAgRVhQ
RUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkNBU0VFUSgiSGkiLCAiaGkyIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICJJZ25vcmluZyBjYXNlIik7Ci19Ci0KLS8vIFRlc3RzIEFTU0VSVF9T
VFJDQVNFTkUuCi1URVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsK
LSAgQVNTRVJUX1NUUkNBU0VORSgiaGkxIiwgIkhpMiIpOwotICBBU1NFUlRfU1RSQ0FTRU5FKCJI
aSIsIE5VTEwpOwotICBBU1NFUlRfU1RSQ0FTRU5FKE5VTEwsICJIaSIpOwotICBBU1NFUlRfU1RS
Q0FTRU5FKCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUkNBU0VORShOVUxMLCAiIik7Ci0gIEFTU0VS
VF9TVFJDQVNFTkUoIiIsICJIaSIpOwotICBBU1NFUlRfU1RSQ0FTRU5FKCJIaSIsICIiKTsKLSAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkNBU0VORSgiSGkiLCAiaGkiKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIihpZ25vcmluZyBjYXNlKSIpOwotfQotCi0vLyBUZXN0cyAqX1NU
UkVRIG9uIHdpZGUgc3RyaW5ncy4KLVRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgU1RSRVFfV2lk
ZSkgewotICAvLyBOVUxMIHN0cmluZ3MuCi0gIEFTU0VSVF9TVFJFUShzdGF0aWNfY2FzdDxjb25z
dCB3Y2hhcl90ICo+KE5VTEwpLCBOVUxMKTsKLQotICAvLyBFbXB0eSBzdHJpbmdzLgotICBBU1NF
UlRfU1RSRVEoTCIiLCBMIiIpOwotCi0gIC8vIE5vbi1udWxsIHZzIE5VTEwuCi0gIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKEVYUEVDVF9TVFJFUShMIm5vbi1udWxsIiwgTlVMTCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICJub24tbnVsbCIpOwotCi0gIC8vIEVxdWFsIHN0cmluZ3MuCi0g
IEVYUEVDVF9TVFJFUShMIkhpIiwgTCJIaSIpOwotCi0gIC8vIFVuZXF1YWwgc3RyaW5ncy4KLSAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1NUUkVRKEwiYWJjIiwgTCJBYmMiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkFiYyIpOwotCi0gIC8vIFN0cmluZ3MgY29udGFpbmlu
ZyB3aWRlIGNoYXJhY3RlcnMuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9TVFJF
UShMImFiY1x4ODExOSIsIEwiYWJjXHg4MTIwIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICJhYmMiKTsKLQotICAvLyBUaGUgc3RyZWFtaW5nIHZhcmlhdGlvbi4KLSAgRVhQRUNUX05PTkZB
VEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1NUUkVRKEwiYWJjXHg4MTE5Iiwg
TCJhYmNceDgxMjEiKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIH0sICJFeHBlY3RlZCBmYWls
dXJlIik7Ci19Ci0KLS8vIFRlc3RzICpfU1RSTkUgb24gd2lkZSBzdHJpbmdzLgotVEVTVChTdHJp
bmdBc3NlcnRpb25UZXN0LCBTVFJORV9XaWRlKSB7Ci0gIC8vIE5VTEwgc3RyaW5ncy4KLSAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1NUUk5FKHN0YXRp
Y19jYXN0PGNvbnN0IHdjaGFyX3QgKj4oTlVMTCksIE5VTEwpOwotICB9LCAiIik7Ci0KLSAgLy8g
RW1wdHkgc3RyaW5ncy4KLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1NUUk5FKEwi
IiwgTCIiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcIlwiIik7Ci0KLSAgLy8gTm9u
LW51bGwgdnMgTlVMTC4KLSAgQVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBOVUxMKTsKLQotICAv
LyBFcXVhbCBzdHJpbmdzLgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSTkUo
TCJIaSIsIEwiSGkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcIkhpXCIiKTsKLQot
ICAvLyBVbmVxdWFsIHN0cmluZ3MuCi0gIEVYUEVDVF9TVFJORShMImFiYyIsIEwiQWJjIik7Ci0K
LSAgLy8gU3RyaW5ncyBjb250YWluaW5nIHdpZGUgY2hhcmFjdGVycy4KLSAgRVhQRUNUX05PTkZB
VEFMX0ZBSUxVUkUoRVhQRUNUX1NUUk5FKEwiYWJjXHg4MTE5IiwgTCJhYmNceDgxMTkiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgImFiYyIpOwotCi0gIC8vIFRoZSBzdHJlYW1pbmcgdmFy
aWF0aW9uLgotICBBU1NFUlRfU1RSTkUoTCJhYmNceDgxMTkiLCBMImFiY1x4ODEyMCIpIDw8ICJU
aGlzIHNob3VsZG4ndCBoYXBwZW4iOwotfQotCi0vLyBUZXN0cyBmb3IgOjp0ZXN0aW5nOjpJc1N1
YnN0cmluZygpLgotCi0vLyBUZXN0cyB0aGF0IElzU3Vic3RyaW5nKCkgcmV0dXJucyB0aGUgY29y
cmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKLS8vIGFyZ3VtZW50IHR5cGUgaXMgY29uc3QgY2hh
ciouCi1URVNUKElzU3Vic3RyaW5nVGVzdCwgUmV0dXJuc0NvcnJlY3RSZXN1bHRGb3JDU3RyaW5n
KSB7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIE5VTEwsICJhIikpOwotICBF
WFBFQ1RfRkFMU0UoSXNTdWJzdHJpbmcoIiIsICIiLCAiYiIsIE5VTEwpKTsKLSAgRVhQRUNUX0ZB
TFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgIm5lZWRsZSIsICJoYXlzdGFjayIpKTsKLQotICBFWFBF
Q1RfVFJVRShJc1N1YnN0cmluZygiIiwgIiIsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihOVUxM
KSwgTlVMTCkpOwotICBFWFBFQ1RfVFJVRShJc1N1YnN0cmluZygiIiwgIiIsICJuZWVkbGUiLCAi
dHdvIG5lZWRsZXMiKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSXNTdWJzdHJpbmcoKSByZXR1cm5z
IHRoZSBjb3JyZWN0IHJlc3VsdCB3aGVuIHRoZSBpbnB1dAotLy8gYXJndW1lbnQgdHlwZSBpcyBj
b25zdCB3Y2hhcl90Ki4KLVRFU1QoSXNTdWJzdHJpbmdUZXN0LCBSZXR1cm5zQ29ycmVjdFJlc3Vs
dEZvcldpZGVDU3RyaW5nKSB7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIGtO
dWxsLCBMImEiKSk7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIEwiYiIsIGtO
dWxsKSk7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIEwibmVlZGxlIiwgTCJo
YXlzdGFjayIpKTsKLQotICBFWFBFQ1RfVFJVRShJc1N1YnN0cmluZygiIiwgIiIsIHN0YXRpY19j
YXN0PGNvbnN0IHdjaGFyX3QqPihOVUxMKSwgTlVMTCkpOwotICBFWFBFQ1RfVFJVRShJc1N1YnN0
cmluZygiIiwgIiIsIEwibmVlZGxlIiwgTCJ0d28gbmVlZGxlcyIpKTsKLX0KLQotLy8gVGVzdHMg
dGhhdCBJc1N1YnN0cmluZygpIGdlbmVyYXRlcyB0aGUgY29ycmVjdCBtZXNzYWdlIHdoZW4gdGhl
IGlucHV0Ci0vLyBhcmd1bWVudCB0eXBlIGlzIGNvbnN0IGNoYXIqLgotVEVTVChJc1N1YnN0cmlu
Z1Rlc3QsIEdlbmVyYXRlc0NvcnJlY3RNZXNzYWdlRm9yQ1N0cmluZykgewotICBFWFBFQ1RfU1RS
RVEoIlZhbHVlIG9mOiBuZWVkbGVfZXhwclxuIgotICAgICAgICAgICAgICAgIiAgQWN0dWFsOiBc
Im5lZWRsZVwiXG4iCi0gICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IGEgc3Vic3RyaW5nIG9mIGhh
eXN0YWNrX2V4cHJcbiIKLSAgICAgICAgICAgICAgICJXaGljaCBpczogXCJoYXlzdGFja1wiIiwK
LSAgICAgICAgICAgICAgIElzU3Vic3RyaW5nKCJuZWVkbGVfZXhwciIsICJoYXlzdGFja19leHBy
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZWVkbGUiLCAiaGF5c3RhY2siKS5mYWls
dXJlX21lc3NhZ2UoKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSXNTdWJzdHJpbmcgcmV0dXJucyB0
aGUgY29ycmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKLS8vIGFyZ3VtZW50IHR5cGUgaXMgOjpz
dGQ6OnN0cmluZy4KLVRFU1QoSXNTdWJzdHJpbmdUZXN0LCBSZXR1cm5zQ29ycmVjdFJlc3VsdHNG
b3JTdGRTdHJpbmcpIHsKLSAgRVhQRUNUX1RSVUUoSXNTdWJzdHJpbmcoIiIsICIiLCBzdGQ6OnN0
cmluZygiaGVsbG8iKSwgImFoZWxsb2IiKSk7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygi
IiwgIiIsICJoZWxsbyIsIHN0ZDo6c3RyaW5nKCJ3b3JsZCIpKSk7Ci19Ci0KLSNpZiBHVEVTVF9I
QVNfU1REX1dTVFJJTkcKLS8vIFRlc3RzIHRoYXQgSXNTdWJzdHJpbmcgcmV0dXJucyB0aGUgY29y
cmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKLS8vIGFyZ3VtZW50IHR5cGUgaXMgOjpzdGQ6Ondz
dHJpbmcuCi1URVNUKElzU3Vic3RyaW5nVGVzdCwgUmV0dXJuc0NvcnJlY3RSZXN1bHRGb3JTdGRX
c3RyaW5nKSB7Ci0gIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgOjpzdGQ6OndzdHJp
bmcoTCJuZWVkbGUiKSwgTCJ0d28gbmVlZGxlcyIpKTsKLSAgRVhQRUNUX0ZBTFNFKElzU3Vic3Ry
aW5nKCIiLCAiIiwgTCJuZWVkbGUiLCA6OnN0ZDo6d3N0cmluZyhMImhheXN0YWNrIikpKTsKLX0K
LQotLy8gVGVzdHMgdGhhdCBJc1N1YnN0cmluZygpIGdlbmVyYXRlcyB0aGUgY29ycmVjdCBtZXNz
YWdlIHdoZW4gdGhlIGlucHV0Ci0vLyBhcmd1bWVudCB0eXBlIGlzIDo6c3RkOjp3c3RyaW5nLgot
VEVTVChJc1N1YnN0cmluZ1Rlc3QsIEdlbmVyYXRlc0NvcnJlY3RNZXNzYWdlRm9yV3N0cmluZykg
ewotICBFWFBFQ1RfU1RSRVEoIlZhbHVlIG9mOiBuZWVkbGVfZXhwclxuIgotICAgICAgICAgICAg
ICAgIiAgQWN0dWFsOiBMXCJuZWVkbGVcIlxuIgotICAgICAgICAgICAgICAgIkV4cGVjdGVkOiBh
IHN1YnN0cmluZyBvZiBoYXlzdGFja19leHByXG4iCi0gICAgICAgICAgICAgICAiV2hpY2ggaXM6
IExcImhheXN0YWNrXCIiLAotICAgICAgICAgICAgICAgSXNTdWJzdHJpbmcoCi0gICAgICAgICAg
ICAgICAgICAgIm5lZWRsZV9leHByIiwgImhheXN0YWNrX2V4cHIiLAotICAgICAgICAgICAgICAg
ICAgIDo6c3RkOjp3c3RyaW5nKEwibmVlZGxlIiksIEwiaGF5c3RhY2siKS5mYWlsdXJlX21lc3Nh
Z2UoKSk7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCi0KLS8vIFRlc3Rz
IGZvciA6OnRlc3Rpbmc6OklzTm90U3Vic3RyaW5nKCkuCi0KLS8vIFRlc3RzIHRoYXQgSXNOb3RT
dWJzdHJpbmcoKSByZXR1cm5zIHRoZSBjb3JyZWN0IHJlc3VsdCB3aGVuIHRoZSBpbnB1dAotLy8g
YXJndW1lbnQgdHlwZSBpcyBjb25zdCBjaGFyKi4KLVRFU1QoSXNOb3RTdWJzdHJpbmdUZXN0LCBS
ZXR1cm5zQ29ycmVjdFJlc3VsdEZvckNTdHJpbmcpIHsKLSAgRVhQRUNUX1RSVUUoSXNOb3RTdWJz
dHJpbmcoIiIsICIiLCAibmVlZGxlIiwgImhheXN0YWNrIikpOwotICBFWFBFQ1RfRkFMU0UoSXNO
b3RTdWJzdHJpbmcoIiIsICIiLCAibmVlZGxlIiwgInR3byBuZWVkbGVzIikpOwotfQotCi0vLyBU
ZXN0cyB0aGF0IElzTm90U3Vic3RyaW5nKCkgcmV0dXJucyB0aGUgY29ycmVjdCByZXN1bHQgd2hl
biB0aGUgaW5wdXQKLS8vIGFyZ3VtZW50IHR5cGUgaXMgY29uc3Qgd2NoYXJfdCouCi1URVNUKElz
Tm90U3Vic3RyaW5nVGVzdCwgUmV0dXJuc0NvcnJlY3RSZXN1bHRGb3JXaWRlQ1N0cmluZykgewot
ICBFWFBFQ1RfVFJVRShJc05vdFN1YnN0cmluZygiIiwgIiIsIEwibmVlZGxlIiwgTCJoYXlzdGFj
ayIpKTsKLSAgRVhQRUNUX0ZBTFNFKElzTm90U3Vic3RyaW5nKCIiLCAiIiwgTCJuZWVkbGUiLCBM
InR3byBuZWVkbGVzIikpOwotfQotCi0vLyBUZXN0cyB0aGF0IElzTm90U3Vic3RyaW5nKCkgZ2Vu
ZXJhdGVzIHRoZSBjb3JyZWN0IG1lc3NhZ2Ugd2hlbiB0aGUgaW5wdXQKLS8vIGFyZ3VtZW50IHR5
cGUgaXMgY29uc3Qgd2NoYXJfdCouCi1URVNUKElzTm90U3Vic3RyaW5nVGVzdCwgR2VuZXJhdGVz
Q29ycmVjdE1lc3NhZ2VGb3JXaWRlQ1N0cmluZykgewotICBFWFBFQ1RfU1RSRVEoIlZhbHVlIG9m
OiBuZWVkbGVfZXhwclxuIgotICAgICAgICAgICAgICAgIiAgQWN0dWFsOiBMXCJuZWVkbGVcIlxu
IgotICAgICAgICAgICAgICAgIkV4cGVjdGVkOiBub3QgYSBzdWJzdHJpbmcgb2YgaGF5c3RhY2tf
ZXhwclxuIgotICAgICAgICAgICAgICAgIldoaWNoIGlzOiBMXCJ0d28gbmVlZGxlc1wiIiwKLSAg
ICAgICAgICAgICAgIElzTm90U3Vic3RyaW5nKAotICAgICAgICAgICAgICAgICAgICJuZWVkbGVf
ZXhwciIsICJoYXlzdGFja19leHByIiwKLSAgICAgICAgICAgICAgICAgICBMIm5lZWRsZSIsIEwi
dHdvIG5lZWRsZXMiKS5mYWlsdXJlX21lc3NhZ2UoKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSXNO
b3RTdWJzdHJpbmcgcmV0dXJucyB0aGUgY29ycmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKLS8v
IGFyZ3VtZW50IHR5cGUgaXMgOjpzdGQ6OnN0cmluZy4KLVRFU1QoSXNOb3RTdWJzdHJpbmdUZXN0
LCBSZXR1cm5zQ29ycmVjdFJlc3VsdHNGb3JTdGRTdHJpbmcpIHsKLSAgRVhQRUNUX0ZBTFNFKElz
Tm90U3Vic3RyaW5nKCIiLCAiIiwgc3RkOjpzdHJpbmcoImhlbGxvIiksICJhaGVsbG9iIikpOwot
ICBFWFBFQ1RfVFJVRShJc05vdFN1YnN0cmluZygiIiwgIiIsICJoZWxsbyIsIHN0ZDo6c3RyaW5n
KCJ3b3JsZCIpKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSXNOb3RTdWJzdHJpbmcoKSBnZW5lcmF0
ZXMgdGhlIGNvcnJlY3QgbWVzc2FnZSB3aGVuIHRoZSBpbnB1dAotLy8gYXJndW1lbnQgdHlwZSBp
cyA6OnN0ZDo6c3RyaW5nLgotVEVTVChJc05vdFN1YnN0cmluZ1Rlc3QsIEdlbmVyYXRlc0NvcnJl
Y3RNZXNzYWdlRm9yU3RkU3RyaW5nKSB7Ci0gIEVYUEVDVF9TVFJFUSgiVmFsdWUgb2Y6IG5lZWRs
ZV9leHByXG4iCi0gICAgICAgICAgICAgICAiICBBY3R1YWw6IFwibmVlZGxlXCJcbiIKLSAgICAg
ICAgICAgICAgICJFeHBlY3RlZDogbm90IGEgc3Vic3RyaW5nIG9mIGhheXN0YWNrX2V4cHJcbiIK
LSAgICAgICAgICAgICAgICJXaGljaCBpczogXCJ0d28gbmVlZGxlc1wiIiwKLSAgICAgICAgICAg
ICAgIElzTm90U3Vic3RyaW5nKAotICAgICAgICAgICAgICAgICAgICJuZWVkbGVfZXhwciIsICJo
YXlzdGFja19leHByIiwKLSAgICAgICAgICAgICAgICAgICA6OnN0ZDo6c3RyaW5nKCJuZWVkbGUi
KSwgInR3byBuZWVkbGVzIikuZmFpbHVyZV9tZXNzYWdlKCkpOwotfQotCi0jaWYgR1RFU1RfSEFT
X1NURF9XU1RSSU5HCi0KLS8vIFRlc3RzIHRoYXQgSXNOb3RTdWJzdHJpbmcgcmV0dXJucyB0aGUg
Y29ycmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKLS8vIGFyZ3VtZW50IHR5cGUgaXMgOjpzdGQ6
OndzdHJpbmcuCi1URVNUKElzTm90U3Vic3RyaW5nVGVzdCwgUmV0dXJuc0NvcnJlY3RSZXN1bHRG
b3JTdGRXc3RyaW5nKSB7Ci0gIEVYUEVDVF9GQUxTRSgKLSAgICAgIElzTm90U3Vic3RyaW5nKCIi
LCAiIiwgOjpzdGQ6OndzdHJpbmcoTCJuZWVkbGUiKSwgTCJ0d28gbmVlZGxlcyIpKTsKLSAgRVhQ
RUNUX1RSVUUoSXNOb3RTdWJzdHJpbmcoIiIsICIiLCBMIm5lZWRsZSIsIDo6c3RkOjp3c3RyaW5n
KEwiaGF5c3RhY2siKSkpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwot
Ci0vLyBUZXN0cyBmbG9hdGluZy1wb2ludCBhc3NlcnRpb25zLgotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgUmF3VHlwZT4KLWNsYXNzIEZsb2F0aW5nUG9pbnRUZXN0IDogcHVibGljIFRlc3QgewotIHBy
b3RlY3RlZDoKLSAgLy8gUHJlLWNhbGN1bGF0ZWQgbnVtYmVycyB0byBiZSB1c2VkIGJ5IHRoZSB0
ZXN0cy4KLSAgc3RydWN0IFRlc3RWYWx1ZXMgewotICAgIFJhd1R5cGUgY2xvc2VfdG9fcG9zaXRp
dmVfemVybzsKLSAgICBSYXdUeXBlIGNsb3NlX3RvX25lZ2F0aXZlX3plcm87Ci0gICAgUmF3VHlw
ZSBmdXJ0aGVyX2Zyb21fbmVnYXRpdmVfemVybzsKLQotICAgIFJhd1R5cGUgY2xvc2VfdG9fb25l
OwotICAgIFJhd1R5cGUgZnVydGhlcl9mcm9tX29uZTsKLQotICAgIFJhd1R5cGUgaW5maW5pdHk7
Ci0gICAgUmF3VHlwZSBjbG9zZV90b19pbmZpbml0eTsKLSAgICBSYXdUeXBlIGZ1cnRoZXJfZnJv
bV9pbmZpbml0eTsKLQotICAgIFJhd1R5cGUgbmFuMTsKLSAgICBSYXdUeXBlIG5hbjI7Ci0gIH07
Ci0KLSAgdHlwZWRlZiB0eXBlbmFtZSB0ZXN0aW5nOjppbnRlcm5hbDo6RmxvYXRpbmdQb2ludDxS
YXdUeXBlPiBGbG9hdGluZzsKLSAgdHlwZWRlZiB0eXBlbmFtZSBGbG9hdGluZzo6Qml0cyBCaXRz
OwotCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBjb25zdCBzaXplX3QgbWF4X3VscHMg
PSBGbG9hdGluZzo6a01heFVscHM7Ci0KLSAgICAvLyBUaGUgYml0cyB0aGF0IHJlcHJlc2VudCAw
LjAuCi0gICAgY29uc3QgQml0cyB6ZXJvX2JpdHMgPSBGbG9hdGluZygwKS5iaXRzKCk7Ci0KLSAg
ICAvLyBNYWtlcyBzb21lIG51bWJlcnMgY2xvc2UgdG8gMC4wLgotICAgIHZhbHVlc18uY2xvc2Vf
dG9fcG9zaXRpdmVfemVybyA9IEZsb2F0aW5nOjpSZWludGVycHJldEJpdHMoCi0gICAgICAgIHpl
cm9fYml0cyArIG1heF91bHBzLzIpOwotICAgIHZhbHVlc18uY2xvc2VfdG9fbmVnYXRpdmVfemVy
byA9IC1GbG9hdGluZzo6UmVpbnRlcnByZXRCaXRzKAotICAgICAgICB6ZXJvX2JpdHMgKyBtYXhf
dWxwcyAtIG1heF91bHBzLzIpOwotICAgIHZhbHVlc18uZnVydGhlcl9mcm9tX25lZ2F0aXZlX3pl
cm8gPSAtRmxvYXRpbmc6OlJlaW50ZXJwcmV0Qml0cygKLSAgICAgICAgemVyb19iaXRzICsgbWF4
X3VscHMgKyAxIC0gbWF4X3VscHMvMik7Ci0KLSAgICAvLyBUaGUgYml0cyB0aGF0IHJlcHJlc2Vu
dCAxLjAuCi0gICAgY29uc3QgQml0cyBvbmVfYml0cyA9IEZsb2F0aW5nKDEpLmJpdHMoKTsKLQot
ICAgIC8vIE1ha2VzIHNvbWUgbnVtYmVycyBjbG9zZSB0byAxLjAuCi0gICAgdmFsdWVzXy5jbG9z
ZV90b19vbmUgPSBGbG9hdGluZzo6UmVpbnRlcnByZXRCaXRzKG9uZV9iaXRzICsgbWF4X3VscHMp
OwotICAgIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSA9IEZsb2F0aW5nOjpSZWludGVycHJldEJp
dHMoCi0gICAgICAgIG9uZV9iaXRzICsgbWF4X3VscHMgKyAxKTsKLQotICAgIC8vICtpbmZpbml0
eS4KLSAgICB2YWx1ZXNfLmluZmluaXR5ID0gRmxvYXRpbmc6OkluZmluaXR5KCk7Ci0KLSAgICAv
LyBUaGUgYml0cyB0aGF0IHJlcHJlc2VudCAraW5maW5pdHkuCi0gICAgY29uc3QgQml0cyBpbmZp
bml0eV9iaXRzID0gRmxvYXRpbmcodmFsdWVzXy5pbmZpbml0eSkuYml0cygpOwotCi0gICAgLy8g
TWFrZXMgc29tZSBudW1iZXJzIGNsb3NlIHRvIGluZmluaXR5LgotICAgIHZhbHVlc18uY2xvc2Vf
dG9faW5maW5pdHkgPSBGbG9hdGluZzo6UmVpbnRlcnByZXRCaXRzKAotICAgICAgICBpbmZpbml0
eV9iaXRzIC0gbWF4X3VscHMpOwotICAgIHZhbHVlc18uZnVydGhlcl9mcm9tX2luZmluaXR5ID0g
RmxvYXRpbmc6OlJlaW50ZXJwcmV0Qml0cygKLSAgICAgICAgaW5maW5pdHlfYml0cyAtIG1heF91
bHBzIC0gMSk7Ci0KLSAgICAvLyBNYWtlcyBzb21lIE5BTidzLiAgU2V0cyB0aGUgbW9zdCBzaWdu
aWZpY2FudCBiaXQgb2YgdGhlIGZyYWN0aW9uIHNvIHRoYXQKLSAgICAvLyBvdXIgTmFOJ3MgYXJl
IHF1aWV0OyB0cnlpbmcgdG8gcHJvY2VzcyBhIHNpZ25hbGluZyBOYU4gd291bGQgcmFpc2UgYW4K
LSAgICAvLyBleGNlcHRpb24gaWYgb3VyIGVudmlyb25tZW50IGVuYWJsZXMgZmxvYXRpbmcgcG9p
bnQgZXhjZXB0aW9ucy4KLSAgICB2YWx1ZXNfLm5hbjEgPSBGbG9hdGluZzo6UmVpbnRlcnByZXRC
aXRzKEZsb2F0aW5nOjprRXhwb25lbnRCaXRNYXNrCi0gICAgICAgIHwgKHN0YXRpY19jYXN0PEJp
dHM+KDEpIDw8IChGbG9hdGluZzo6a0ZyYWN0aW9uQml0Q291bnQgLSAxKSkgfCAxKTsKLSAgICB2
YWx1ZXNfLm5hbjIgPSBGbG9hdGluZzo6UmVpbnRlcnByZXRCaXRzKEZsb2F0aW5nOjprRXhwb25l
bnRCaXRNYXNrCi0gICAgICAgIHwgKHN0YXRpY19jYXN0PEJpdHM+KDEpIDw8IChGbG9hdGluZzo6
a0ZyYWN0aW9uQml0Q291bnQgLSAxKSkgfCAyMDApOwotICB9Ci0KLSAgdm9pZCBUZXN0U2l6ZSgp
IHsKLSAgICBFWFBFQ1RfRVEoc2l6ZW9mKFJhd1R5cGUpLCBzaXplb2YoQml0cykpOwotICB9Ci0K
LSAgc3RhdGljIFRlc3RWYWx1ZXMgdmFsdWVzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBS
YXdUeXBlPgotdHlwZW5hbWUgRmxvYXRpbmdQb2ludFRlc3Q8UmF3VHlwZT46OlRlc3RWYWx1ZXMK
LSAgICBGbG9hdGluZ1BvaW50VGVzdDxSYXdUeXBlPjo6dmFsdWVzXzsKLQotLy8gSW5zdGFudGlh
dGVzIEZsb2F0aW5nUG9pbnRUZXN0IGZvciB0ZXN0aW5nICpfRkxPQVRfRVEuCi10eXBlZGVmIEZs
b2F0aW5nUG9pbnRUZXN0PGZsb2F0PiBGbG9hdFRlc3Q7Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIHNp
emUgb2YgRmxvYXQ6OkJpdHMgbWF0Y2hlcyB0aGUgc2l6ZSBvZiBmbG9hdC4KLVRFU1RfRihGbG9h
dFRlc3QsIFNpemUpIHsKLSAgVGVzdFNpemUoKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIHdp
dGggKzAgYW5kIC0wLgotVEVTVF9GKEZsb2F0VGVzdCwgWmVyb3MpIHsKLSAgRVhQRUNUX0ZMT0FU
X0VRKDAuMCwgLTAuMCk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9F
USgtMC4wLCAxLjApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiMS4wIik7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9GTE9BVF9FUSgwLjAsIDEuNSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICIxLjUiKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIG51bWJlcnMgY2xvc2Ug
dG8gMC4KLS8vCi0vLyBUaGlzIGVuc3VyZXMgdGhhdCAqX0ZMT0FUX0VRIGhhbmRsZXMgdGhlIHNp
Z24gY29ycmVjdGx5IGFuZCBubwotLy8gb3ZlcmZsb3cgb2NjdXJzIHdoZW4gY29tcGFyaW5nIG51
bWJlcnMgd2hvc2UgYWJzb2x1dGUgdmFsdWUgaXMgdmVyeQotLy8gc21hbGwuCi1URVNUX0YoRmxv
YXRUZXN0LCBBbG1vc3RaZXJvcykgewotICAvLyBJbiBDKytCdWlsZGVyLCBuYW1lcyB3aXRoaW4g
bG9jYWwgY2xhc3NlcyAoc3VjaCBhcyB1c2VkIGJ5Ci0gIC8vIEVYUEVDVF9GQVRBTF9GQUlMVVJF
KSBjYW5ub3QgYmUgcmVzb2x2ZWQgYWdhaW5zdCBzdGF0aWMgbWVtYmVycyBvZiB0aGUKLSAgLy8g
c2NvcGluZyBjbGFzcy4gIFVzZSBhIHN0YXRpYyBsb2NhbCBhbGlhcyBhcyBhIHdvcmthcm91bmQu
Ci0gIC8vIFdlIHVzZSB0aGUgYXNzaWdubWVudCBzeW50YXggc2luY2Ugc29tZSBjb21waWxlcnMs
IGxpa2UgU3VuIFN0dWRpbywKLSAgLy8gZG9uJ3QgYWxsb3cgaW5pdGlhbGl6aW5nIHJlZmVyZW5j
ZXMgdXNpbmcgY29uc3RydWN0aW9uIHN5bnRheAotICAvLyAocGFyZW50aGVzZXMpLgotICBzdGF0
aWMgY29uc3QgRmxvYXRUZXN0OjpUZXN0VmFsdWVzJiB2ID0gdGhpcy0+dmFsdWVzXzsKLQotICBF
WFBFQ1RfRkxPQVRfRVEoMC4wLCB2LmNsb3NlX3RvX3Bvc2l0aXZlX3plcm8pOwotICBFWFBFQ1Rf
RkxPQVRfRVEoLTAuMCwgdi5jbG9zZV90b19uZWdhdGl2ZV96ZXJvKTsKLSAgRVhQRUNUX0ZMT0FU
X0VRKHYuY2xvc2VfdG9fcG9zaXRpdmVfemVybywgdi5jbG9zZV90b19uZWdhdGl2ZV96ZXJvKTsK
LQotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfRkxPQVRf
RVEodi5jbG9zZV90b19wb3NpdGl2ZV96ZXJvLAotICAgICAgICAgICAgICAgICAgICB2LmZ1cnRo
ZXJfZnJvbV9uZWdhdGl2ZV96ZXJvKTsKLSAgfSwgInYuZnVydGhlcl9mcm9tX25lZ2F0aXZlX3pl
cm8iKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIG51bWJlcnMgY2xvc2UgdG8gZWFjaCBvdGhl
ci4KLVRFU1RfRihGbG9hdFRlc3QsIFNtYWxsRGlmZikgewotICBFWFBFQ1RfRkxPQVRfRVEoMS4w
LCB2YWx1ZXNfLmNsb3NlX3RvX29uZSk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVD
VF9GTE9BVF9FUSgxLjAsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICJ2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUiKTsKLX0KLQotLy8gVGVzdHMg
Y29tcGFyaW5nIG51bWJlcnMgZmFyIGFwYXJ0LgotVEVTVF9GKEZsb2F0VGVzdCwgTGFyZ2VEaWZm
KSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9FUSgyLjUsIDMuMCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICIzLjAiKTsKLX0KLQotLy8gVGVzdHMgY29tcGFy
aW5nIHdpdGggaW5maW5pdHkuCi0vLwotLy8gVGhpcyBlbnN1cmVzIHRoYXQgbm8gb3ZlcmZsb3cg
b2NjdXJzIHdoZW4gY29tcGFyaW5nIG51bWJlcnMgd2hvc2UKLS8vIGFic29sdXRlIHZhbHVlIGlz
IHZlcnkgbGFyZ2UuCi1URVNUX0YoRmxvYXRUZXN0LCBJbmZpbml0eSkgewotICBFWFBFQ1RfRkxP
QVRfRVEodmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5jbG9zZV90b19pbmZpbml0eSk7Ci0gIEVY
UEVDVF9GTE9BVF9FUSgtdmFsdWVzXy5pbmZpbml0eSwgLXZhbHVlc18uY2xvc2VfdG9faW5maW5p
dHkpOwotI2lmICFHVEVTVF9PU19TWU1CSUFOCi0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVz
IGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShFWFBFQ1RfRkxPQVRfRVEodmFsdWVzXy5pbmZpbml0eSwgLXZhbHVlc18uaW5maW5p
dHkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiLXZhbHVlc18uaW5maW5pdHkiKTsKLQot
ICAvLyBUaGlzIGlzIGludGVyZXN0aW5nIGFzIHRoZSByZXByZXNlbnRhdGlvbnMgb2YgaW5maW5p
dHkgYW5kIG5hbjEKLSAgLy8gYXJlIG9ubHkgMSBETFAgYXBhcnQuCi0gIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLm5hbjEp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVzXy5uYW4xIik7Ci0jZW5kaWYgIC8v
ICFHVEVTVF9PU19TWU1CSUFOCi19Ci0KLS8vIFRlc3RzIHRoYXQgY29tcGFyaW5nIHdpdGggTkFO
IGFsd2F5cyByZXR1cm5zIGZhbHNlLgotVEVTVF9GKEZsb2F0VGVzdCwgTmFOKSB7Ci0jaWYgIUdU
RVNUX09TX1NZTUJJQU4KLS8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBv
dXRwdXQgaW5maW5pdHkgb3IgTmFOLgotCi0gIC8vIEluIEMrK0J1aWxkZXIsIG5hbWVzIHdpdGhp
biBsb2NhbCBjbGFzc2VzIChzdWNoIGFzIHVzZWQgYnkKLSAgLy8gRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUpIGNhbm5vdCBiZSByZXNvbHZlZCBhZ2FpbnN0IHN0YXRpYyBtZW1iZXJzIG9mIHRoZQotICAv
LyBzY29waW5nIGNsYXNzLiAgVXNlIGEgc3RhdGljIGxvY2FsIGFsaWFzIGFzIGEgd29ya2Fyb3Vu
ZC4KLSAgLy8gV2UgdXNlIHRoZSBhc3NpZ25tZW50IHN5bnRheCBzaW5jZSBzb21lIGNvbXBpbGVy
cywgbGlrZSBTdW4gU3R1ZGlvLAotICAvLyBkb24ndCBhbGxvdyBpbml0aWFsaXppbmcgcmVmZXJl
bmNlcyB1c2luZyBjb25zdHJ1Y3Rpb24gc3ludGF4Ci0gIC8vIChwYXJlbnRoZXNlcykuCi0gIHN0
YXRpYyBjb25zdCBGbG9hdFRlc3Q6OlRlc3RWYWx1ZXMmIHYgPSB0aGlzLT52YWx1ZXNfOwotCi0g
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9FUSh2Lm5hbjEsIHYubmFuMSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICJ2Lm5hbjEiKTsKLSAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoRVhQRUNUX0ZMT0FUX0VRKHYubmFuMSwgdi5uYW4yKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgInYubmFuMiIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
RkxPQVRfRVEoMS4wLCB2Lm5hbjEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAidi5uYW4x
Iik7Ci0KLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0ZMT0FUX0VRKHYubmFuMSwgdi5p
bmZpbml0eSksCi0gICAgICAgICAgICAgICAgICAgICAgICJ2LmluZmluaXR5Iik7Ci0jZW5kaWYg
IC8vICFHVEVTVF9PU19TWU1CSUFOCi19Ci0KLS8vIFRlc3RzIHRoYXQgKl9GTE9BVF9FUSBhcmUg
cmVmbGV4aXZlLgotVEVTVF9GKEZsb2F0VGVzdCwgUmVmbGV4aXZlKSB7Ci0gIEVYUEVDVF9GTE9B
VF9FUSgwLjAsIDAuMCk7Ci0gIEVYUEVDVF9GTE9BVF9FUSgxLjAsIDEuMCk7Ci0gIEFTU0VSVF9G
TE9BVF9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLmluZmluaXR5KTsKLX0KLQotLy8gVGVz
dHMgdGhhdCAqX0ZMT0FUX0VRIGFyZSBjb21tdXRhdGl2ZS4KLVRFU1RfRihGbG9hdFRlc3QsIENv
bW11dGF0aXZlKSB7Ci0gIC8vIFdlIGFscmVhZHkgdGVzdGVkIEVYUEVDVF9GTE9BVF9FUSgxLjAs
IHZhbHVlc18uY2xvc2VfdG9fb25lKS4KLSAgRVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uY2xvc2Vf
dG9fb25lLCAxLjApOwotCi0gIC8vIFdlIGFscmVhZHkgdGVzdGVkIEVYUEVDVF9GTE9BVF9FUSgx
LjAsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSkuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUsIDEuMCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICIxLjAiKTsKLX0KLQotLy8gVGVzdHMgRVhQRUNUX05FQVIuCi1U
RVNUX0YoRmxvYXRUZXN0LCBFWFBFQ1RfTkVBUikgewotICBFWFBFQ1RfTkVBUigtMS4wZiwgLTEu
MWYsIDAuMmYpOwotICBFWFBFQ1RfTkVBUigyLjBmLCAzLjBmLCAxLjBmKTsKLSAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05FQVIoMS4wZiwxLjVmLCAwLjI1ZiksICAvLyBOT0xJTlQK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gMS4wZiBh
bmQgMS41ZiBpcyAwLjUsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIndoaWNoIGV4Y2Vl
ZHMgMC4yNWYiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIuOTUuMCwgdGhl
cmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmlyc3QgY29tbWEg
aW4gdGhlIHByZXZpb3VzIGxpbmUuCi19Ci0KLS8vIFRlc3RzIEFTU0VSVF9ORUFSLgotVEVTVF9G
KEZsb2F0VGVzdCwgQVNTRVJUX05FQVIpIHsKLSAgQVNTRVJUX05FQVIoLTEuMGYsIC0xLjFmLCAw
LjJmKTsKLSAgQVNTRVJUX05FQVIoMi4wZiwgMy4wZiwgMS4wZik7Ci0gIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKEFTU0VSVF9ORUFSKDEuMGYsMS41ZiwgMC4yNWYpLCAgLy8gTk9MSU5UCi0gICAgICAg
ICAgICAgICAgICAgICAgICJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIDEuMGYgYW5kIDEuNWYgaXMg
MC41LCAiCi0gICAgICAgICAgICAgICAgICAgICAgICJ3aGljaCBleGNlZWRzIDAuMjVmIik7Ci0g
IC8vIFRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIGdjYyAyLjk1LjAsIHRoZXJlIGlzIGludGVudGlv
bmFsbHkgbm8KLSAgLy8gc3BhY2UgYWZ0ZXIgdGhlIGZpcnN0IGNvbW1hIGluIHRoZSBwcmV2aW91
cyBsaW5lLgotfQotCi0vLyBUZXN0cyB0aGUgY2FzZXMgd2hlcmUgRmxvYXRMRSgpIHNob3VsZCBz
dWNjZWVkLgotVEVTVF9GKEZsb2F0VGVzdCwgRmxvYXRMRVN1Y2NlZWRzKSB7Ci0gIEVYUEVDVF9Q
UkVEX0ZPUk1BVDIoRmxvYXRMRSwgMS4wZiwgMi4wZik7ICAvLyBXaGVuIHZhbDEgPCB2YWwyLAot
ICBBU1NFUlRfUFJFRF9GT1JNQVQyKEZsb2F0TEUsIDEuMGYsIDEuMGYpOyAgLy8gdmFsMSA9PSB2
YWwyLAotCi0gIC8vIG9yIHdoZW4gdmFsMSBpcyBncmVhdGVyIHRoYW4sIGJ1dCBhbG1vc3QgZXF1
YWxzIHRvLCB2YWwyLgotICBFWFBFQ1RfUFJFRF9GT1JNQVQyKEZsb2F0TEUsIHZhbHVlc18uY2xv
c2VfdG9fcG9zaXRpdmVfemVybywgMC4wZik7Ci19Ci0KLS8vIFRlc3RzIHRoZSBjYXNlcyB3aGVy
ZSBGbG9hdExFKCkgc2hvdWxkIGZhaWwuCi1URVNUX0YoRmxvYXRUZXN0LCBGbG9hdExFRmFpbHMp
IHsKLSAgLy8gV2hlbiB2YWwxIGlzIGdyZWF0ZXIgdGhhbiB2YWwyIGJ5IGEgbGFyZ2UgbWFyZ2lu
LAotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfUFJFRF9GT1JNQVQyKEZsb2F0TEUs
IDIuMGYsIDEuMGYpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiKDIuMGYpIDw9ICgxLjBm
KSIpOwotCi0gIC8vIG9yIGJ5IGEgc21hbGwgeWV0IG5vbi1uZWdsaWdpYmxlIG1hcmdpbiwKLSAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX1BSRURfRk9S
TUFUMihGbG9hdExFLCB2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUsIDEuMGYpOwotICB9LCAiKHZh
bHVlc18uZnVydGhlcl9mcm9tX29uZSkgPD0gKDEuMGYpIik7Ci0KLSNpZiAhR1RFU1RfT1NfU1lN
QklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFz
aGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotICAvLyBDKytCdWlsZGVy
IGdpdmVzIGJhZCByZXN1bHRzIGZvciBvcmRlcmVkIGNvbXBhcmlzb25zIGludm9sdmluZyBOYU5z
Ci0gIC8vIGR1ZSB0byBjb21waWxlciBidWdzLgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7
ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKEZsb2F0TEUsIHZhbHVlc18ubmFu
MSwgdmFsdWVzXy5pbmZpbml0eSk7Ci0gIH0sICIodmFsdWVzXy5uYW4xKSA8PSAodmFsdWVzXy5p
bmZpbml0eSkiKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAg
RVhQRUNUX1BSRURfRk9STUFUMihGbG9hdExFLCAtdmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5u
YW4xKTsKLSAgfSwgIigtdmFsdWVzXy5pbmZpbml0eSkgPD0gKHZhbHVlc18ubmFuMSkiKTsKLSAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURfRk9STUFU
MihGbG9hdExFLCB2YWx1ZXNfLm5hbjEsIHZhbHVlc18ubmFuMSk7Ci0gIH0sICIodmFsdWVzXy5u
YW4xKSA8PSAodmFsdWVzXy5uYW4xKSIpOwotI2VuZGlmICAvLyAhR1RFU1RfT1NfU1lNQklBTiAm
JiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi19Ci0KLS8vIEluc3RhbnRpYXRlcyBGbG9hdGluZ1Bv
aW50VGVzdCBmb3IgdGVzdGluZyAqX0RPVUJMRV9FUS4KLXR5cGVkZWYgRmxvYXRpbmdQb2ludFRl
c3Q8ZG91YmxlPiBEb3VibGVUZXN0OwotCi0vLyBUZXN0cyB0aGF0IHRoZSBzaXplIG9mIERvdWJs
ZTo6Qml0cyBtYXRjaGVzIHRoZSBzaXplIG9mIGRvdWJsZS4KLVRFU1RfRihEb3VibGVUZXN0LCBT
aXplKSB7Ci0gIFRlc3RTaXplKCk7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyB3aXRoICswIGFu
ZCAtMC4KLVRFU1RfRihEb3VibGVUZXN0LCBaZXJvcykgewotICBFWFBFQ1RfRE9VQkxFX0VRKDAu
MCwgLTAuMCk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEoLTAu
MCwgMS4wKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIjEuMCIpOwotICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShBU1NFUlRfRE9VQkxFX0VRKDAuMCwgMS4wKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIjEuMCIpOwotfQotCi0vLyBUZXN0cyBjb21wYXJpbmcgbnVtYmVycyBjbG9zZSB0byAw
LgotLy8KLS8vIFRoaXMgZW5zdXJlcyB0aGF0ICpfRE9VQkxFX0VRIGhhbmRsZXMgdGhlIHNpZ24g
Y29ycmVjdGx5IGFuZCBubwotLy8gb3ZlcmZsb3cgb2NjdXJzIHdoZW4gY29tcGFyaW5nIG51bWJl
cnMgd2hvc2UgYWJzb2x1dGUgdmFsdWUgaXMgdmVyeQotLy8gc21hbGwuCi1URVNUX0YoRG91Ymxl
VGVzdCwgQWxtb3N0WmVyb3MpIHsKLSAgLy8gSW4gQysrQnVpbGRlciwgbmFtZXMgd2l0aGluIGxv
Y2FsIGNsYXNzZXMgKHN1Y2ggYXMgdXNlZCBieQotICAvLyBFWFBFQ1RfRkFUQUxfRkFJTFVSRSkg
Y2Fubm90IGJlIHJlc29sdmVkIGFnYWluc3Qgc3RhdGljIG1lbWJlcnMgb2YgdGhlCi0gIC8vIHNj
b3BpbmcgY2xhc3MuICBVc2UgYSBzdGF0aWMgbG9jYWwgYWxpYXMgYXMgYSB3b3JrYXJvdW5kLgot
ICAvLyBXZSB1c2UgdGhlIGFzc2lnbm1lbnQgc3ludGF4IHNpbmNlIHNvbWUgY29tcGlsZXJzLCBs
aWtlIFN1biBTdHVkaW8sCi0gIC8vIGRvbid0IGFsbG93IGluaXRpYWxpemluZyByZWZlcmVuY2Vz
IHVzaW5nIGNvbnN0cnVjdGlvbiBzeW50YXgKLSAgLy8gKHBhcmVudGhlc2VzKS4KLSAgc3RhdGlj
IGNvbnN0IERvdWJsZVRlc3Q6OlRlc3RWYWx1ZXMmIHYgPSB0aGlzLT52YWx1ZXNfOwotCi0gIEVY
UEVDVF9ET1VCTEVfRVEoMC4wLCB2LmNsb3NlX3RvX3Bvc2l0aXZlX3plcm8pOwotICBFWFBFQ1Rf
RE9VQkxFX0VRKC0wLjAsIHYuY2xvc2VfdG9fbmVnYXRpdmVfemVybyk7Ci0gIEVYUEVDVF9ET1VC
TEVfRVEodi5jbG9zZV90b19wb3NpdGl2ZV96ZXJvLCB2LmNsb3NlX3RvX25lZ2F0aXZlX3plcm8p
OwotCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9ET1VC
TEVfRVEodi5jbG9zZV90b19wb3NpdGl2ZV96ZXJvLAotICAgICAgICAgICAgICAgICAgICAgdi5m
dXJ0aGVyX2Zyb21fbmVnYXRpdmVfemVybyk7Ci0gIH0sICJ2LmZ1cnRoZXJfZnJvbV9uZWdhdGl2
ZV96ZXJvIik7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyBudW1iZXJzIGNsb3NlIHRvIGVhY2gg
b3RoZXIuCi1URVNUX0YoRG91YmxlVGVzdCwgU21hbGxEaWZmKSB7Ci0gIEVYUEVDVF9ET1VCTEVf
RVEoMS4wLCB2YWx1ZXNfLmNsb3NlX3RvX29uZSk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KEVYUEVDVF9ET1VCTEVfRVEoMS4wLCB2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAidmFsdWVzXy5mdXJ0aGVyX2Zyb21fb25lIik7Ci19Ci0KLS8v
IFRlc3RzIGNvbXBhcmluZyBudW1iZXJzIGZhciBhcGFydC4KLVRFU1RfRihEb3VibGVUZXN0LCBM
YXJnZURpZmYpIHsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0RPVUJMRV9FUSgy
LjAsIDMuMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIzLjAiKTsKLX0KLQotLy8gVGVz
dHMgY29tcGFyaW5nIHdpdGggaW5maW5pdHkuCi0vLwotLy8gVGhpcyBlbnN1cmVzIHRoYXQgbm8g
b3ZlcmZsb3cgb2NjdXJzIHdoZW4gY29tcGFyaW5nIG51bWJlcnMgd2hvc2UKLS8vIGFic29sdXRl
IHZhbHVlIGlzIHZlcnkgbGFyZ2UuCi1URVNUX0YoRG91YmxlVGVzdCwgSW5maW5pdHkpIHsKLSAg
RVhQRUNUX0RPVUJMRV9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLmNsb3NlX3RvX2luZmlu
aXR5KTsKLSAgRVhQRUNUX0RPVUJMRV9FUSgtdmFsdWVzXy5pbmZpbml0eSwgLXZhbHVlc18uY2xv
c2VfdG9faW5maW5pdHkpOwotI2lmICFHVEVTVF9PU19TWU1CSUFOCi0gIC8vIE5va2lhJ3MgU1RM
cG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotICBFWFBF
Q1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZhbHVlc18uaW5maW5pdHksIC12
YWx1ZXNfLmluZmluaXR5KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIi12YWx1ZXNfLmlu
ZmluaXR5Iik7Ci0KLSAgLy8gVGhpcyBpcyBpbnRlcmVzdGluZyBhcyB0aGUgcmVwcmVzZW50YXRp
b25zIG9mIGluZmluaXR5XyBhbmQgbmFuMV8KLSAgLy8gYXJlIG9ubHkgMSBETFAgYXBhcnQuCi0g
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEodmFsdWVzXy5pbmZpbml0
eSwgdmFsdWVzXy5uYW4xKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlc18ubmFu
MSIpOwotI2VuZGlmICAvLyAhR1RFU1RfT1NfU1lNQklBTgotfQotCi0vLyBUZXN0cyB0aGF0IGNv
bXBhcmluZyB3aXRoIE5BTiBhbHdheXMgcmV0dXJucyBmYWxzZS4KLVRFU1RfRihEb3VibGVUZXN0
LCBOYU4pIHsKLSNpZiAhR1RFU1RfT1NfU1lNQklBTgotICAvLyBJbiBDKytCdWlsZGVyLCBuYW1l
cyB3aXRoaW4gbG9jYWwgY2xhc3NlcyAoc3VjaCBhcyB1c2VkIGJ5Ci0gIC8vIEVYUEVDVF9GQVRB
TF9GQUlMVVJFKSBjYW5ub3QgYmUgcmVzb2x2ZWQgYWdhaW5zdCBzdGF0aWMgbWVtYmVycyBvZiB0
aGUKLSAgLy8gc2NvcGluZyBjbGFzcy4gIFVzZSBhIHN0YXRpYyBsb2NhbCBhbGlhcyBhcyBhIHdv
cmthcm91bmQuCi0gIC8vIFdlIHVzZSB0aGUgYXNzaWdubWVudCBzeW50YXggc2luY2Ugc29tZSBj
b21waWxlcnMsIGxpa2UgU3VuIFN0dWRpbywKLSAgLy8gZG9uJ3QgYWxsb3cgaW5pdGlhbGl6aW5n
IHJlZmVyZW5jZXMgdXNpbmcgY29uc3RydWN0aW9uIHN5bnRheAotICAvLyAocGFyZW50aGVzZXMp
LgotICBzdGF0aWMgY29uc3QgRG91YmxlVGVzdDo6VGVzdFZhbHVlcyYgdiA9IHRoaXMtPnZhbHVl
c187Ci0KLSAgLy8gTm9raWEncyBTVExwb3J0IGNyYXNoZXMgaWYgd2UgdHJ5IHRvIG91dHB1dCBp
bmZpbml0eSBvciBOYU4uCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVf
RVEodi5uYW4xLCB2Lm5hbjEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAidi5uYW4xIik7
Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEodi5uYW4xLCB2Lm5h
bjIpLCAidi5uYW4yIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVf
RVEoMS4wLCB2Lm5hbjEpLCAidi5uYW4xIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VS
VF9ET1VCTEVfRVEodi5uYW4xLCB2LmluZmluaXR5KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
InYuaW5maW5pdHkiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4KLX0KLQotLy8gVGVz
dHMgdGhhdCAqX0RPVUJMRV9FUSBhcmUgcmVmbGV4aXZlLgotVEVTVF9GKERvdWJsZVRlc3QsIFJl
ZmxleGl2ZSkgewotICBFWFBFQ1RfRE9VQkxFX0VRKDAuMCwgMC4wKTsKLSAgRVhQRUNUX0RPVUJM
RV9FUSgxLjAsIDEuMCk7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gTm9raWEncyBTVExw
b3J0IGNyYXNoZXMgaWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4uCi0gIEFTU0VS
VF9ET1VCTEVfRVEodmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5pbmZpbml0eSk7Ci0jZW5kaWYg
IC8vICFHVEVTVF9PU19TWU1CSUFOCi19Ci0KLS8vIFRlc3RzIHRoYXQgKl9ET1VCTEVfRVEgYXJl
IGNvbW11dGF0aXZlLgotVEVTVF9GKERvdWJsZVRlc3QsIENvbW11dGF0aXZlKSB7Ci0gIC8vIFdl
IGFscmVhZHkgdGVzdGVkIEVYUEVDVF9ET1VCTEVfRVEoMS4wLCB2YWx1ZXNfLmNsb3NlX3RvX29u
ZSkuCi0gIEVYUEVDVF9ET1VCTEVfRVEodmFsdWVzXy5jbG9zZV90b19vbmUsIDEuMCk7Ci0KLSAg
Ly8gV2UgYWxyZWFkeSB0ZXN0ZWQgRVhQRUNUX0RPVUJMRV9FUSgxLjAsIHZhbHVlc18uZnVydGhl
cl9mcm9tX29uZSkuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEo
dmFsdWVzXy5mdXJ0aGVyX2Zyb21fb25lLCAxLjApLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMS4wIik7Ci19Ci0KLS8vIFRlc3RzIEVYUEVDVF9ORUFSLgotVEVTVF9GKERvdWJsZVRlc3Qs
IEVYUEVDVF9ORUFSKSB7Ci0gIEVYUEVDVF9ORUFSKC0xLjAsIC0xLjEsIDAuMik7Ci0gIEVYUEVD
VF9ORUFSKDIuMCwgMy4wLCAxLjApOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
TkVBUigxLjAsIDEuNSwgMC4yNSksICAvLyBOT0xJTlQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCAxLjUgaXMgMC41LCAiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3aGljaCBleGNlZWRzIDAuMjUiKTsKLSAgLy8gVG8gd29yayBh
cm91bmQgYSBidWcgaW4gZ2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAv
LyBzcGFjZSBhZnRlciB0aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIHN0YXRlbWVudC4K
LX0KLQotLy8gVGVzdHMgQVNTRVJUX05FQVIuCi1URVNUX0YoRG91YmxlVGVzdCwgQVNTRVJUX05F
QVIpIHsKLSAgQVNTRVJUX05FQVIoLTEuMCwgLTEuMSwgMC4yKTsKLSAgQVNTRVJUX05FQVIoMi4w
LCAzLjAsIDEuMCk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMCwgMS41
LCAwLjI1KSwgIC8vIE5PTElOVAotICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiAxLjAgYW5kIDEuNSBpcyAwLjUsICIKLSAgICAgICAgICAgICAgICAgICAgICAg
IndoaWNoIGV4Y2VlZHMgMC4yNSIpOwotICAvLyBUbyB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBnY2Mg
Mi45NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRoZSBm
aXJzdCBjb21tYSBpbiB0aGUgcHJldmlvdXMgc3RhdGVtZW50LgotfQotCi0vLyBUZXN0cyB0aGUg
Y2FzZXMgd2hlcmUgRG91YmxlTEUoKSBzaG91bGQgc3VjY2VlZC4KLVRFU1RfRihEb3VibGVUZXN0
LCBEb3VibGVMRVN1Y2NlZWRzKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoRG91YmxlTEUsIDEu
MCwgMi4wKTsgIC8vIFdoZW4gdmFsMSA8IHZhbDIsCi0gIEFTU0VSVF9QUkVEX0ZPUk1BVDIoRG91
YmxlTEUsIDEuMCwgMS4wKTsgIC8vIHZhbDEgPT0gdmFsMiwKLQotICAvLyBvciB3aGVuIHZhbDEg
aXMgZ3JlYXRlciB0aGFuLCBidXQgYWxtb3N0IGVxdWFscyB0bywgdmFsMi4KLSAgRVhQRUNUX1BS
RURfRk9STUFUMihEb3VibGVMRSwgdmFsdWVzXy5jbG9zZV90b19wb3NpdGl2ZV96ZXJvLCAwLjAp
OwotfQotCi0vLyBUZXN0cyB0aGUgY2FzZXMgd2hlcmUgRG91YmxlTEUoKSBzaG91bGQgZmFpbC4K
LVRFU1RfRihEb3VibGVUZXN0LCBEb3VibGVMRUZhaWxzKSB7Ci0gIC8vIFdoZW4gdmFsMSBpcyBn
cmVhdGVyIHRoYW4gdmFsMiBieSBhIGxhcmdlIG1hcmdpbiwKLSAgRVhQRUNUX05PTkZBVEFMX0ZB
SUxVUkUoRVhQRUNUX1BSRURfRk9STUFUMihEb3VibGVMRSwgMi4wLCAxLjApLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAiKDIuMCkgPD0gKDEuMCkiKTsKLQotICAvLyBvciBieSBhIHNtYWxs
IHlldCBub24tbmVnbGlnaWJsZSBtYXJnaW4sCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsg
IC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoRG91YmxlTEUsIHZhbHVlc18uZnVy
dGhlcl9mcm9tX29uZSwgMS4wKTsKLSAgfSwgIih2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUpIDw9
ICgxLjApIik7Ci0KLSNpZiAhR1RFU1RfT1NfU1lNQklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRD
X18pCi0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5m
aW5pdHkgb3IgTmFOLgotICAvLyBDKytCdWlsZGVyIGdpdmVzIGJhZCByZXN1bHRzIGZvciBvcmRl
cmVkIGNvbXBhcmlzb25zIGludm9sdmluZyBOYU5zCi0gIC8vIGR1ZSB0byBjb21waWxlciBidWdz
LgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfUFJF
RF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1ZXNfLm5hbjEsIHZhbHVlc18uaW5maW5pdHkpOwotICB9
LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18uaW5maW5pdHkpIik7Ci0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoRG91Ymxl
TEUsIC12YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLm5hbjEpOwotICB9LCAiICgtdmFsdWVzXy5p
bmZpbml0eSkgPD0gKHZhbHVlc18ubmFuMSkiKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAg
Ly8gTk9MSU5UCi0gICAgQVNTRVJUX1BSRURfRk9STUFUMihEb3VibGVMRSwgdmFsdWVzXy5uYW4x
LCB2YWx1ZXNfLm5hbjEpOwotICB9LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18ubmFuMSki
KTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4gJiYgIWRlZmluZWQoX19CT1JMQU5EQ19f
KQotfQotCi0KLS8vIFZlcmlmaWVzIHRoYXQgYSB0ZXN0IG9yIHRlc3QgY2FzZSB3aG9zZSBuYW1l
IHN0YXJ0cyB3aXRoIERJU0FCTEVEXyBpcwotLy8gbm90IHJ1bi4KLQotLy8gQSB0ZXN0IHdob3Nl
IG5hbWUgc3RhcnRzIHdpdGggRElTQUJMRURfLgotLy8gU2hvdWxkIG5vdCBydW4uCi1URVNUKERp
c2FibGVkVGVzdCwgRElTQUJMRURfVGVzdFNob3VsZE5vdFJ1bikgewotICBGQUlMKCkgPDwgIlVu
ZXhwZWN0ZWQgZmFpbHVyZTogRGlzYWJsZWQgdGVzdCBzaG91bGQgbm90IGJlIHJ1bi4iOwotfQot
Ci0vLyBBIHRlc3Qgd2hvc2UgbmFtZSBkb2VzIG5vdCBzdGFydCB3aXRoIERJU0FCTEVEXy4KLS8v
IFNob3VsZCBydW4uCi1URVNUKERpc2FibGVkVGVzdCwgTm90RElTQUJMRURfVGVzdFNob3VsZFJ1
bikgewotICBFWFBFQ1RfRVEoMSwgMSk7Ci19Ci0KLS8vIEEgdGVzdCBjYXNlIHdob3NlIG5hbWUg
c3RhcnRzIHdpdGggRElTQUJMRURfLgotLy8gU2hvdWxkIG5vdCBydW4uCi1URVNUKERJU0FCTEVE
X1Rlc3RDYXNlLCBUZXN0U2hvdWxkTm90UnVuKSB7Ci0gIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBm
YWlsdXJlOiBUZXN0IGluIGRpc2FibGVkIHRlc3QgY2FzZSBzaG91bGQgbm90IGJlIHJ1bi4iOwot
fQotCi0vLyBBIHRlc3QgY2FzZSBhbmQgdGVzdCB3aG9zZSBuYW1lcyBzdGFydCB3aXRoIERJU0FC
TEVEXy4KLS8vIFNob3VsZCBub3QgcnVuLgotVEVTVChESVNBQkxFRF9UZXN0Q2FzZSwgRElTQUJM
RURfVGVzdFNob3VsZE5vdFJ1bikgewotICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTog
VGVzdCBpbiBkaXNhYmxlZCB0ZXN0IGNhc2Ugc2hvdWxkIG5vdCBiZSBydW4uIjsKLX0KLQotLy8g
Q2hlY2sgdGhhdCB3aGVuIGFsbCB0ZXN0cyBpbiBhIHRlc3QgY2FzZSBhcmUgZGlzYWJsZWQsIFNl
dFVwVGVzdENhc2UoKSBhbmQKLS8vIFRlYXJEb3duVGVzdENhc2UoKSBhcmUgbm90IGNhbGxlZC4K
LWNsYXNzIERpc2FibGVkVGVzdHNUZXN0IDogcHVibGljIFRlc3QgewotIHByb3RlY3RlZDoKLSAg
c3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKLSAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQg
ZmFpbHVyZTogQWxsIHRlc3RzIGRpc2FibGVkIGluIHRlc3QgY2FzZS4gIgotICAgICAgICAgICAg
ICAiU2V0VXBUZXN0Q2FzZSgpIHNob3VsZCBub3QgYmUgY2FsbGVkLiI7Ci0gIH0KLQotICBzdGF0
aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBm
YWlsdXJlOiBBbGwgdGVzdHMgZGlzYWJsZWQgaW4gdGVzdCBjYXNlLiAiCi0gICAgICAgICAgICAg
ICJUZWFyRG93blRlc3RDYXNlKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQuIjsKLSAgfQotfTsKLQot
VEVTVF9GKERpc2FibGVkVGVzdHNUZXN0LCBESVNBQkxFRF9UZXN0U2hvdWxkTm90UnVuXzEpIHsK
LSAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IERpc2FibGVkIHRlc3Qgc2hvdWxkIG5v
dCBiZSBydW4uIjsKLX0KLQotVEVTVF9GKERpc2FibGVkVGVzdHNUZXN0LCBESVNBQkxFRF9UZXN0
U2hvdWxkTm90UnVuXzIpIHsKLSAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IERpc2Fi
bGVkIHRlc3Qgc2hvdWxkIG5vdCBiZSBydW4uIjsKLX0KLQotLy8gVGVzdHMgdGhhdCBkaXNhYmxl
ZCB0eXBlZCB0ZXN0cyBhcmVuJ3QgcnVuLgotCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgVGVzdCB7Ci19
OwotCi10eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPGludCwgZG91YmxlPiBOdW1lcmljVHlwZXM7Ci1U
WVBFRF9URVNUX0NBU0UoVHlwZWRUZXN0LCBOdW1lcmljVHlwZXMpOwotCi1UWVBFRF9URVNUKFR5
cGVkVGVzdCwgRElTQUJMRURfU2hvdWxkTm90UnVuKSB7Ci0gIEZBSUwoKSA8PCAiVW5leHBlY3Rl
ZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0ZXN0IHNob3VsZCBub3QgcnVuLiI7Ci19Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgRElTQUJMRURfVHlwZWRUZXN0IDogcHVibGljIFRl
c3QgewotfTsKLQotVFlQRURfVEVTVF9DQVNFKERJU0FCTEVEX1R5cGVkVGVzdCwgTnVtZXJpY1R5
cGVzKTsKLQotVFlQRURfVEVTVChESVNBQkxFRF9UeXBlZFRlc3QsIFNob3VsZE5vdFJ1bikgewot
ICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogRGlzYWJsZWQgdHlwZWQgdGVzdCBzaG91
bGQgbm90IHJ1bi4iOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KLS8v
IFRlc3RzIHRoYXQgZGlzYWJsZWQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFyZW4ndCBydW4u
Ci0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
Y2xhc3MgVHlwZWRUZXN0UCA6IHB1YmxpYyBUZXN0IHsKLX07Ci0KLVRZUEVEX1RFU1RfQ0FTRV9Q
KFR5cGVkVGVzdFApOwotCi1UWVBFRF9URVNUX1AoVHlwZWRUZXN0UCwgRElTQUJMRURfU2hvdWxk
Tm90UnVuKSB7Ci0gIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiAiCi0gICAgICAgICA8
PCAiRGlzYWJsZWQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc2hvdWxkIG5vdCBydW4uIjsKLX0K
LQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UCwgRElTQUJMRURfU2hvdWxk
Tm90UnVuKTsKLQotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIFR5cGVkVGVzdFAs
IE51bWVyaWNUeXBlcyk7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgRElTQUJMRURf
VHlwZWRUZXN0UCA6IHB1YmxpYyBUZXN0IHsKLX07Ci0KLVRZUEVEX1RFU1RfQ0FTRV9QKERJU0FC
TEVEX1R5cGVkVGVzdFApOwotCi1UWVBFRF9URVNUX1AoRElTQUJMRURfVHlwZWRUZXN0UCwgU2hv
dWxkTm90UnVuKSB7Ci0gIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiAiCi0gICAgICAg
ICA8PCAiRGlzYWJsZWQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc2hvdWxkIG5vdCBydW4uIjsK
LX0KLQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRElTQUJMRURfVHlwZWRUZXN0UCwgU2hv
dWxkTm90UnVuKTsKLQotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIERJU0FCTEVE
X1R5cGVkVGVzdFAsIE51bWVyaWNUeXBlcyk7Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVE
X1RFU1RfUAotCi0vLyBUZXN0cyB0aGF0IGFzc2VydGlvbiBtYWNyb3MgZXZhbHVhdGUgdGhlaXIg
YXJndW1lbnRzIGV4YWN0bHkgb25jZS4KLQotY2xhc3MgU2luZ2xlRXZhbHVhdGlvblRlc3QgOiBw
dWJsaWMgVGVzdCB7Ci0gcHVibGljOiAgLy8gTXVzdCBiZSBwdWJsaWMgYW5kIG5vdCBwcm90ZWN0
ZWQgZHVlIHRvIGEgYnVnIGluIGcrKyAzLjQuMi4KLSAgLy8gVGhpcyBoZWxwZXIgZnVuY3Rpb24g
aXMgbmVlZGVkIGJ5IHRoZSBGYWlsZWRBU1NFUlRfU1RSRVEgdGVzdAotICAvLyBiZWxvdy4gIEl0
J3MgcHVibGljIHRvIHdvcmsgYXJvdW5kIEMrK0J1aWxkZXIncyBidWcgd2l0aCBzY29waW5nIGxv
Y2FsCi0gIC8vIGNsYXNzZXMuCi0gIHN0YXRpYyB2b2lkIENvbXBhcmVBbmRJbmNyZW1lbnRDaGFy
UHRycygpIHsKLSAgICBBU1NFUlRfU1RSRVEocDFfKyssIHAyXysrKTsKLSAgfQotCi0gIC8vIFRo
aXMgaGVscGVyIGZ1bmN0aW9uIGlzIG5lZWRlZCBieSB0aGUgRmFpbGVkQVNTRVJUX05FIHRlc3Qg
YmVsb3cuICBJdCdzCi0gIC8vIHB1YmxpYyB0byB3b3JrIGFyb3VuZCBDKytCdWlsZGVyJ3MgYnVn
IHdpdGggc2NvcGluZyBsb2NhbCBjbGFzc2VzLgotICBzdGF0aWMgdm9pZCBDb21wYXJlQW5kSW5j
cmVtZW50SW50cygpIHsKLSAgICBBU1NFUlRfTkUoYV8rKywgYl8rKyk7Ci0gIH0KLQotIHByb3Rl
Y3RlZDoKLSAgU2luZ2xlRXZhbHVhdGlvblRlc3QoKSB7Ci0gICAgcDFfID0gczFfOwotICAgIHAy
XyA9IHMyXzsKLSAgICBhXyA9IDA7Ci0gICAgYl8gPSAwOwotICB9Ci0KLSAgc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IHMxXzsKLSAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHMyXzsKLSAgc3Rh
dGljIGNvbnN0IGNoYXIqIHAxXzsKLSAgc3RhdGljIGNvbnN0IGNoYXIqIHAyXzsKLQotICBzdGF0
aWMgaW50IGFfOwotICBzdGF0aWMgaW50IGJfOwotfTsKLQotY29uc3QgY2hhciogY29uc3QgU2lu
Z2xlRXZhbHVhdGlvblRlc3Q6OnMxXyA9ICIwMTIzNCI7Ci1jb25zdCBjaGFyKiBjb25zdCBTaW5n
bGVFdmFsdWF0aW9uVGVzdDo6czJfID0gImFiY2RlIjsKLWNvbnN0IGNoYXIqIFNpbmdsZUV2YWx1
YXRpb25UZXN0OjpwMV87Ci1jb25zdCBjaGFyKiBTaW5nbGVFdmFsdWF0aW9uVGVzdDo6cDJfOwot
aW50IFNpbmdsZUV2YWx1YXRpb25UZXN0OjphXzsKLWludCBTaW5nbGVFdmFsdWF0aW9uVGVzdDo6
Yl87Ci0KLS8vIFRlc3RzIHRoYXQgd2hlbiBBU1NFUlRfU1RSRVEgZmFpbHMsIGl0IGV2YWx1YXRl
cyBpdHMgYXJndW1lbnRzCi0vLyBleGFjdGx5IG9uY2UuCi1URVNUX0YoU2luZ2xlRXZhbHVhdGlv
blRlc3QsIEZhaWxlZEFTU0VSVF9TVFJFUSkgewotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShTaW5n
bGVFdmFsdWF0aW9uVGVzdDo6Q29tcGFyZUFuZEluY3JlbWVudENoYXJQdHJzKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICJwMl8rKyIpOwotICBFWFBFQ1RfRVEoczFfICsgMSwgcDFfKTsKLSAg
RVhQRUNUX0VRKHMyXyArIDEsIHAyXyk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgc3RyaW5nIGFzc2Vy
dGlvbiBhcmd1bWVudHMgYXJlIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuCi1URVNUX0YoU2luZ2xl
RXZhbHVhdGlvblRlc3QsIEFTU0VSVF9TVFIpIHsKLSAgLy8gc3VjY2Vzc2Z1bCBFWFBFQ1RfU1RS
TkUKLSAgRVhQRUNUX1NUUk5FKHAxXysrLCBwMl8rKyk7Ci0gIEVYUEVDVF9FUShzMV8gKyAxLCBw
MV8pOwotICBFWFBFQ1RfRVEoczJfICsgMSwgcDJfKTsKLQotICAvLyBmYWlsZWQgRVhQRUNUX1NU
UkNBU0VFUQotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSQ0FTRUVRKHAxXysr
LCBwMl8rKyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJJZ25vcmluZyBjYXNlIik7Ci0g
IEVYUEVDVF9FUShzMV8gKyAyLCBwMV8pOwotICBFWFBFQ1RfRVEoczJfICsgMiwgcDJfKTsKLX0K
LQotLy8gVGVzdHMgdGhhdCB3aGVuIEFTU0VSVF9ORSBmYWlscywgaXQgZXZhbHVhdGVzIGl0cyBh
cmd1bWVudHMgZXhhY3RseQotLy8gb25jZS4KLVRFU1RfRihTaW5nbGVFdmFsdWF0aW9uVGVzdCwg
RmFpbGVkQVNTRVJUX05FKSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKFNpbmdsZUV2YWx1YXRp
b25UZXN0OjpDb21wYXJlQW5kSW5jcmVtZW50SW50cygpLAotICAgICAgICAgICAgICAgICAgICAg
ICAiKGFfKyspICE9IChiXysrKSIpOwotICBFWFBFQ1RfRVEoMSwgYV8pOwotICBFWFBFQ1RfRVEo
MSwgYl8pOwotfQotCi0vLyBUZXN0cyB0aGF0IGFzc2VydGlvbiBhcmd1bWVudHMgYXJlIGV2YWx1
YXRlZCBleGFjdGx5IG9uY2UuCi1URVNUX0YoU2luZ2xlRXZhbHVhdGlvblRlc3QsIE90aGVyQ2Fz
ZXMpIHsKLSAgLy8gc3VjY2Vzc2Z1bCBFWFBFQ1RfVFJVRQotICBFWFBFQ1RfVFJVRSgwID09IGFf
KyspOyAgLy8gTk9MSU5UCi0gIEVYUEVDVF9FUSgxLCBhXyk7Ci0KLSAgLy8gZmFpbGVkIEVYUEVD
VF9UUlVFCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9UUlVFKC0xID09IGFfKysp
LCAiLTEgPT0gYV8rKyIpOwotICBFWFBFQ1RfRVEoMiwgYV8pOwotCi0gIC8vIHN1Y2Nlc3NmdWwg
RVhQRUNUX0dUCi0gIEVYUEVDVF9HVChhXysrLCBiXysrKTsKLSAgRVhQRUNUX0VRKDMsIGFfKTsK
LSAgRVhQRUNUX0VRKDEsIGJfKTsKLQotICAvLyBmYWlsZWQgRVhQRUNUX0xUCi0gIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKEVYUEVDVF9MVChhXysrLCBiXysrKSwgIihhXysrKSA8IChiXysrKSIp
OwotICBFWFBFQ1RfRVEoNCwgYV8pOwotICBFWFBFQ1RfRVEoMiwgYl8pOwotCi0gIC8vIHN1Y2Nl
c3NmdWwgQVNTRVJUX1RSVUUKLSAgQVNTRVJUX1RSVUUoMCA8IGFfKyspOyAgLy8gTk9MSU5UCi0g
IEVYUEVDVF9FUSg1LCBhXyk7Ci0KLSAgLy8gc3VjY2Vzc2Z1bCBBU1NFUlRfR1QKLSAgQVNTRVJU
X0dUKGFfKyssIGJfKyspOwotICBFWFBFQ1RfRVEoNiwgYV8pOwotICBFWFBFQ1RfRVEoMywgYl8p
OwotfQotCi0jaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKLQotdm9pZCBUaHJvd0FuSW50ZWdlcigp
IHsKLSAgdGhyb3cgMTsKLX0KLQotLy8gVGVzdHMgdGhhdCBhc3NlcnRpb24gYXJndW1lbnRzIGFy
ZSBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgotVEVTVF9GKFNpbmdsZUV2YWx1YXRpb25UZXN0LCBF
eGNlcHRpb25UZXN0cykgewotICAvLyBzdWNjZXNzZnVsIEVYUEVDVF9USFJPVwotICBFWFBFQ1Rf
VEhST1coeyAgLy8gTk9MSU5UCi0gICAgYV8rKzsKLSAgICBUaHJvd0FuSW50ZWdlcigpOwotICB9
LCBpbnQpOwotICBFWFBFQ1RfRVEoMSwgYV8pOwotCi0gIC8vIGZhaWxlZCBFWFBFQ1RfVEhST1cs
IHRocm93cyBkaWZmZXJlbnQKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9X
KHsgIC8vIE5PTElOVAotICAgIGFfKys7Ci0gICAgVGhyb3dBbkludGVnZXIoKTsKLSAgfSwgYm9v
bCksICJ0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZSIpOwotICBFWFBFQ1RfRVEoMiwgYV8pOwotCi0g
IC8vIGZhaWxlZCBFWFBFQ1RfVEhST1csIHRocm93cyBub3RoaW5nCi0gIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEVYUEVDVF9USFJPVyhhXysrLCBib29sKSwgInRocm93cyBub3RoaW5nIik7Ci0g
IEVYUEVDVF9FUSgzLCBhXyk7Ci0KLSAgLy8gc3VjY2Vzc2Z1bCBFWFBFQ1RfTk9fVEhST1cKLSAg
RVhQRUNUX05PX1RIUk9XKGFfKyspOwotICBFWFBFQ1RfRVEoNCwgYV8pOwotCi0gIC8vIGZhaWxl
ZCBFWFBFQ1RfTk9fVEhST1cKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05PX1RI
Uk9XKHsgIC8vIE5PTElOVAotICAgIGFfKys7Ci0gICAgVGhyb3dBbkludGVnZXIoKTsKLSAgfSks
ICJpdCB0aHJvd3MiKTsKLSAgRVhQRUNUX0VRKDUsIGFfKTsKLQotICAvLyBzdWNjZXNzZnVsIEVY
UEVDVF9BTllfVEhST1cKLSAgRVhQRUNUX0FOWV9USFJPVyh7ICAvLyBOT0xJTlQKLSAgICBhXysr
OwotICAgIFRocm93QW5JbnRlZ2VyKCk7Ci0gIH0pOwotICBFWFBFQ1RfRVEoNiwgYV8pOwotCi0g
IC8vIGZhaWxlZCBFWFBFQ1RfQU5ZX1RIUk9XCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9BTllfVEhST1coYV8rKyksICJpdCBkb2Vzbid0Iik7Ci0gIEVYUEVDVF9FUSg3LCBhXyk7
Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKLQotLy8gVGVzdHMge0FTU0VS
VHxFWFBFQ1R9X05PX0ZBVEFMX0ZBSUxVUkUuCi1jbGFzcyBOb0ZhdGFsRmFpbHVyZVRlc3QgOiBw
dWJsaWMgVGVzdCB7Ci0gcHJvdGVjdGVkOgotICB2b2lkIFN1Y2NlZWRzKCkge30KLSAgdm9pZCBG
YWlsc05vbkZhdGFsKCkgewotICAgIEFERF9GQUlMVVJFKCkgPDwgInNvbWUgbm9uLWZhdGFsIGZh
aWx1cmUiOwotICB9Ci0gIHZvaWQgRmFpbHMoKSB7Ci0gICAgRkFJTCgpIDw8ICJzb21lIGZhdGFs
IGZhaWx1cmUiOwotICB9Ci0KLSAgdm9pZCBEb0Fzc2VydE5vRmF0YWxGYWlsdXJlT25GYWlscygp
IHsKLSAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShGYWlscygpKTsKLSAgICBBRERfRkFJTFVS
RSgpIDw8ICJzaG9sZCBub3QgcmVhY2ggaGVyZS4iOwotICB9Ci0KLSAgdm9pZCBEb0V4cGVjdE5v
RmF0YWxGYWlsdXJlT25GYWlscygpIHsKLSAgICBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShGYWls
cygpKTsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJvdGhlciBmYWlsdXJlIjsKLSAgfQotfTsKLQot
VEVTVF9GKE5vRmF0YWxGYWlsdXJlVGVzdCwgTm9GYWlsdXJlKSB7Ci0gIEVYUEVDVF9OT19GQVRB
TF9GQUlMVVJFKFN1Y2NlZWRzKCkpOwotICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShTdWNjZWVk
cygpKTsKLX0KLQotVEVTVF9GKE5vRmF0YWxGYWlsdXJlVGVzdCwgTm9uRmF0YWxJc05vRmFpbHVy
ZSkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKLSAgICAgIEVYUEVDVF9OT19GQVRBTF9G
QUlMVVJFKEZhaWxzTm9uRmF0YWwoKSksCi0gICAgICAic29tZSBub24tZmF0YWwgZmFpbHVyZSIp
OwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKLSAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlM
VVJFKEZhaWxzTm9uRmF0YWwoKSksCi0gICAgICAic29tZSBub24tZmF0YWwgZmFpbHVyZSIpOwot
fQotCi1URVNUX0YoTm9GYXRhbEZhaWx1cmVUZXN0LCBBc3NlcnROb0ZhdGFsRmFpbHVyZU9uRmF0
YWxGYWlsdXJlKSB7Ci0gIFRlc3RQYXJ0UmVzdWx0QXJyYXkgZ3Rlc3RfZmFpbHVyZXM7Ci0gIHsK
LSAgICBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlciBndGVzdF9yZXBvcnRlcigmZ3Rl
c3RfZmFpbHVyZXMpOwotICAgIERvQXNzZXJ0Tm9GYXRhbEZhaWx1cmVPbkZhaWxzKCk7Ci0gIH0K
LSAgQVNTRVJUX0VRKDIsIGd0ZXN0X2ZhaWx1cmVzLnNpemUoKSk7Ci0gIEVYUEVDVF9FUShUZXN0
UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwKLSAgICAgICAgICAgIGd0ZXN0X2ZhaWx1cmVzLkdl
dFRlc3RQYXJ0UmVzdWx0KDApLnR5cGUoKSk7Ci0gIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6
a0ZhdGFsRmFpbHVyZSwKLSAgICAgICAgICAgIGd0ZXN0X2ZhaWx1cmVzLkdldFRlc3RQYXJ0UmVz
dWx0KDEpLnR5cGUoKSk7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIodGVzdGluZzo6SXNTdWJzdHJp
bmcsICJzb21lIGZhdGFsIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICAgIGd0ZXN0X2Zh
aWx1cmVzLkdldFRlc3RQYXJ0UmVzdWx0KDApLm1lc3NhZ2UoKSk7Ci0gIEVYUEVDVF9QUkVEX0ZP
Uk1BVDIodGVzdGluZzo6SXNTdWJzdHJpbmcsICJpdCBkb2VzIiwKLSAgICAgICAgICAgICAgICAg
ICAgICBndGVzdF9mYWlsdXJlcy5HZXRUZXN0UGFydFJlc3VsdCgxKS5tZXNzYWdlKCkpOwotfQot
Ci1URVNUX0YoTm9GYXRhbEZhaWx1cmVUZXN0LCBFeHBlY3ROb0ZhdGFsRmFpbHVyZU9uRmF0YWxG
YWlsdXJlKSB7Ci0gIFRlc3RQYXJ0UmVzdWx0QXJyYXkgZ3Rlc3RfZmFpbHVyZXM7Ci0gIHsKLSAg
ICBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlciBndGVzdF9yZXBvcnRlcigmZ3Rlc3Rf
ZmFpbHVyZXMpOwotICAgIERvRXhwZWN0Tm9GYXRhbEZhaWx1cmVPbkZhaWxzKCk7Ci0gIH0KLSAg
QVNTRVJUX0VRKDMsIGd0ZXN0X2ZhaWx1cmVzLnNpemUoKSk7Ci0gIEVYUEVDVF9FUShUZXN0UGFy
dFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwKLSAgICAgICAgICAgIGd0ZXN0X2ZhaWx1cmVzLkdldFRl
c3RQYXJ0UmVzdWx0KDApLnR5cGUoKSk7Ci0gIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a05v
bkZhdGFsRmFpbHVyZSwKLSAgICAgICAgICAgIGd0ZXN0X2ZhaWx1cmVzLkdldFRlc3RQYXJ0UmVz
dWx0KDEpLnR5cGUoKSk7Ci0gIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a05vbkZhdGFsRmFp
bHVyZSwKLSAgICAgICAgICAgIGd0ZXN0X2ZhaWx1cmVzLkdldFRlc3RQYXJ0UmVzdWx0KDIpLnR5
cGUoKSk7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIodGVzdGluZzo6SXNTdWJzdHJpbmcsICJzb21l
IGZhdGFsIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICAgIGd0ZXN0X2ZhaWx1cmVzLkdl
dFRlc3RQYXJ0UmVzdWx0KDApLm1lc3NhZ2UoKSk7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIodGVz
dGluZzo6SXNTdWJzdHJpbmcsICJpdCBkb2VzIiwKLSAgICAgICAgICAgICAgICAgICAgICBndGVz
dF9mYWlsdXJlcy5HZXRUZXN0UGFydFJlc3VsdCgxKS5tZXNzYWdlKCkpOwotICBFWFBFQ1RfUFJF
RF9GT1JNQVQyKHRlc3Rpbmc6OklzU3Vic3RyaW5nLCAib3RoZXIgZmFpbHVyZSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgZ3Rlc3RfZmFpbHVyZXMuR2V0VGVzdFBhcnRSZXN1bHQoMikubWVzc2Fn
ZSgpKTsKLX0KLQotVEVTVF9GKE5vRmF0YWxGYWlsdXJlVGVzdCwgTWVzc2FnZUlzU3RyZWFtYWJs
ZSkgewotICBUZXN0UGFydFJlc3VsdEFycmF5IGd0ZXN0X2ZhaWx1cmVzOwotICB7Ci0gICAgU2Nv
cGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIgZ3Rlc3RfcmVwb3J0ZXIoJmd0ZXN0X2ZhaWx1
cmVzKTsKLSAgICBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShGQUlMKCkgPDwgImZvbyIpIDw8ICJt
eSBtZXNzYWdlIjsKLSAgfQotICBBU1NFUlRfRVEoMiwgZ3Rlc3RfZmFpbHVyZXMuc2l6ZSgpKTsK
LSAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLAotICAgICAgICAg
ICAgZ3Rlc3RfZmFpbHVyZXMuR2V0VGVzdFBhcnRSZXN1bHQoMCkudHlwZSgpKTsKLSAgRVhQRUNU
X0VRKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLAotICAgICAgICAgICAgZ3Rlc3Rf
ZmFpbHVyZXMuR2V0VGVzdFBhcnRSZXN1bHQoMSkudHlwZSgpKTsKLSAgRVhQRUNUX1BSRURfRk9S
TUFUMih0ZXN0aW5nOjpJc1N1YnN0cmluZywgImZvbyIsCi0gICAgICAgICAgICAgICAgICAgICAg
Z3Rlc3RfZmFpbHVyZXMuR2V0VGVzdFBhcnRSZXN1bHQoMCkubWVzc2FnZSgpKTsKLSAgRVhQRUNU
X1BSRURfRk9STUFUMih0ZXN0aW5nOjpJc1N1YnN0cmluZywgIm15IG1lc3NhZ2UiLAotICAgICAg
ICAgICAgICAgICAgICAgIGd0ZXN0X2ZhaWx1cmVzLkdldFRlc3RQYXJ0UmVzdWx0KDEpLm1lc3Nh
Z2UoKSk7Ci19Ci0KLS8vIFRlc3RzIG5vbi1zdHJpbmcgYXNzZXJ0aW9ucy4KLQotc3RkOjpzdHJp
bmcgRWRpdHNUb1N0cmluZyhjb25zdCBzdGQ6OnZlY3RvcjxFZGl0VHlwZT4mIGVkaXRzKSB7Ci0g
IHN0ZDo6c3RyaW5nIG91dDsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlZGl0cy5zaXplKCk7
ICsraSkgewotICAgIHN0YXRpYyBjb25zdCBjaGFyIGtFZGl0c1tdID0gIiArLS8iOwotICAgIG91
dC5hcHBlbmQoMSwga0VkaXRzW2VkaXRzW2ldXSk7Ci0gIH0KLSAgcmV0dXJuIG91dDsKLX0KLQot
c3RkOjp2ZWN0b3I8c2l6ZV90PiBDaGFyc1RvSW5kaWNlcyhjb25zdCBzdGQ6OnN0cmluZyYgc3Ry
KSB7Ci0gIHN0ZDo6dmVjdG9yPHNpemVfdD4gb3V0OwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHN0ci5zaXplKCk7ICsraSkgewotICAgIG91dC5wdXNoX2JhY2soc3RyW2ldKTsKLSAgfQotICBy
ZXR1cm4gb3V0OwotfQotCi1zdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gQ2hhcnNUb0xpbmVzKGNv
bnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKLSAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG91dDsK
LSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdHIuc2l6ZSgpOyArK2kpIHsKLSAgICBvdXQucHVz
aF9iYWNrKHN0ci5zdWJzdHIoaSwgMSkpOwotICB9Ci0gIHJldHVybiBvdXQ7Ci19Ci0KLVRFU1Qo
RWRpdERpc3RhbmNlLCBUZXN0Q2FzZXMpIHsKLSAgc3RydWN0IENhc2UgewotICAgIGludCBsaW5l
OwotICAgIGNvbnN0IGNoYXIqIGxlZnQ7Ci0gICAgY29uc3QgY2hhciogcmlnaHQ7Ci0gICAgY29u
c3QgY2hhciogZXhwZWN0ZWRfZWRpdHM7Ci0gICAgY29uc3QgY2hhciogZXhwZWN0ZWRfZGlmZjsK
LSAgfTsKLSAgc3RhdGljIGNvbnN0IENhc2Uga0Nhc2VzW10gPSB7Ci0gICAgICAvLyBObyBjaGFu
Z2UuCi0gICAgICB7X19MSU5FX18sICJBIiwgIkEiLCAiICIsICIifSwKLSAgICAgIHtfX0xJTkVf
XywgIkFCQ0RFIiwgIkFCQ0RFIiwgIiAgICAgIiwgIiJ9LAotICAgICAgLy8gU2ltcGxlIGFkZHMu
Ci0gICAgICB7X19MSU5FX18sICJYIiwgIlhBIiwgIiArIiwgIkBAICsxLDIgQEBcbiBYXG4rQVxu
In0sCi0gICAgICB7X19MSU5FX18sICJYIiwgIlhBQkNEIiwgIiArKysrIiwgIkBAICsxLDUgQEBc
biBYXG4rQVxuK0JcbitDXG4rRFxuIn0sCi0gICAgICAvLyBTaW1wbGUgcmVtb3Zlcy4KLSAgICAg
IHtfX0xJTkVfXywgIlhBIiwgIlgiLCAiIC0iLCAiQEAgLTEsMiBAQFxuIFhcbi1BXG4ifSwKLSAg
ICAgIHtfX0xJTkVfXywgIlhBQkNEIiwgIlgiLCAiIC0tLS0iLCAiQEAgLTEsNSBAQFxuIFhcbi1B
XG4tQlxuLUNcbi1EXG4ifSwKLSAgICAgIC8vIFNpbXBsZSByZXBsYWNlcy4KLSAgICAgIHtfX0xJ
TkVfXywgIkEiLCAiYSIsICIvIiwgIkBAIC0xLDEgKzEsMSBAQFxuLUFcbithXG4ifSwKLSAgICAg
IHtfX0xJTkVfXywgIkFCQ0QiLCAiYWJjZCIsICIvLy8vIiwKLSAgICAgICAiQEAgLTEsNCArMSw0
IEBAXG4tQVxuLUJcbi1DXG4tRFxuK2FcbitiXG4rY1xuK2RcbiJ9LAotICAgICAgLy8gUGF0aCBm
aW5kaW5nLgotICAgICAge19fTElORV9fLCAiQUJDREVGR0giLCAiQUJYRUdIMSIsICIgIC0vIC0g
ICsiLAotICAgICAgICJAQCAtMSw4ICsxLDcgQEBcbiBBXG4gQlxuLUNcbi1EXG4rWFxuIEVcbi1G
XG4gR1xuIEhcbisxXG4ifSwKLSAgICAgIHtfX0xJTkVfXywgIkFBQUFCQ0NDQyIsICJBQkFCQ0RD
REMiLCAiLSAvICAgKyAvICIsCi0gICAgICAgIkBAIC0xLDkgKzEsOSBAQFxuLUFcbiBBXG4tQVxu
K0JcbiBBXG4gQlxuIENcbitEXG4gQ1xuLUNcbitEXG4gQ1xuIn0sCi0gICAgICB7X19MSU5FX18s
ICJBQkNERSIsICJCQ0RDRCIsICItICAgKy8iLAotICAgICAgICJAQCAtMSw1ICsxLDUgQEBcbi1B
XG4gQlxuIENcbiBEXG4tRVxuK0NcbitEXG4ifSwKLSAgICAgIHtfX0xJTkVfXywgIkFCQ0RFRkdI
SUpLTCIsICJCQ0RDREVGR0pLTEpLIiwgIi0gKysgICAgIC0tICAgKysiLAotICAgICAgICJAQCAt
MSw0ICsxLDUgQEBcbi1BXG4gQlxuK0NcbitEXG4gQ1xuIERcbiIKLSAgICAgICAiQEAgLTYsNyAr
Nyw3IEBAXG4gRlxuIEdcbi1IXG4tSVxuIEpcbiBLXG4gTFxuK0pcbitLXG4ifSwKLSAgICAgIHt9
fTsKLSAgZm9yIChjb25zdCBDYXNlKiBjID0ga0Nhc2VzOyBjLT5sZWZ0OyArK2MpIHsKLSAgICBF
WFBFQ1RfVFJVRShjLT5leHBlY3RlZF9lZGl0cyA9PQotICAgICAgICAgICAgICAgIEVkaXRzVG9T
dHJpbmcoQ2FsY3VsYXRlT3B0aW1hbEVkaXRzKENoYXJzVG9JbmRpY2VzKGMtPmxlZnQpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJzVG9J
bmRpY2VzKGMtPnJpZ2h0KSkpKQotICAgICAgICA8PCAiTGVmdCA8IiA8PCBjLT5sZWZ0IDw8ICI+
IFJpZ2h0IDwiIDw8IGMtPnJpZ2h0IDw8ICI+IEVkaXRzIDwiCi0gICAgICAgIDw8IEVkaXRzVG9T
dHJpbmcoQ2FsY3VsYXRlT3B0aW1hbEVkaXRzKAotICAgICAgICAgICAgICAgQ2hhcnNUb0luZGlj
ZXMoYy0+bGVmdCksIENoYXJzVG9JbmRpY2VzKGMtPnJpZ2h0KSkpIDw8ICI+IjsKLSAgICBFWFBF
Q1RfVFJVRShjLT5leHBlY3RlZF9kaWZmID09IENyZWF0ZVVuaWZpZWREaWZmKENoYXJzVG9MaW5l
cyhjLT5sZWZ0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENoYXJzVG9MaW5lcyhjLT5yaWdodCkpKQotICAgICAgICA8PCAiTGVmdCA8IiA8
PCBjLT5sZWZ0IDw8ICI+IFJpZ2h0IDwiIDw8IGMtPnJpZ2h0IDw8ICI+IERpZmYgPCIKLSAgICAg
ICAgPDwgQ3JlYXRlVW5pZmllZERpZmYoQ2hhcnNUb0xpbmVzKGMtPmxlZnQpLCBDaGFyc1RvTGlu
ZXMoYy0+cmlnaHQpKQotICAgICAgICA8PCAiPiI7Ci0gIH0KLX0KLQotLy8gVGVzdHMgRXFGYWls
dXJlKCksIHVzZWQgZm9yIGltcGxlbWVudGluZyAqRVEqIGFzc2VydGlvbnMuCi1URVNUKEFzc2Vy
dGlvblRlc3QsIEVxRmFpbHVyZSkgewotICBjb25zdCBzdGQ6OnN0cmluZyBmb29fdmFsKCI1Iiks
IGJhcl92YWwoIjYiKTsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgbXNnMSgKLSAgICAgIEVxRmFpbHVy
ZSgiZm9vIiwgImJhciIsIGZvb192YWwsIGJhcl92YWwsIGZhbHNlKQotICAgICAgLmZhaWx1cmVf
bWVzc2FnZSgpKTsKLSAgRVhQRUNUX1NUUkVRKAotICAgICAgIkV4cGVjdGVkIGVxdWFsaXR5IG9m
IHRoZXNlIHZhbHVlczpcbiIKLSAgICAgICIgIGZvb1xuIgotICAgICAgIiAgICBXaGljaCBpczog
NVxuIgotICAgICAgIiAgYmFyXG4iCi0gICAgICAiICAgIFdoaWNoIGlzOiA2IiwKLSAgICAgIG1z
ZzEuY19zdHIoKSk7Ci0KLSAgY29uc3Qgc3RkOjpzdHJpbmcgbXNnMigKLSAgICAgIEVxRmFpbHVy
ZSgiZm9vIiwgIjYiLCBmb29fdmFsLCBiYXJfdmFsLCBmYWxzZSkKLSAgICAgIC5mYWlsdXJlX21l
c3NhZ2UoKSk7Ci0gIEVYUEVDVF9TVFJFUSgKLSAgICAgICJFeHBlY3RlZCBlcXVhbGl0eSBvZiB0
aGVzZSB2YWx1ZXM6XG4iCi0gICAgICAiICBmb29cbiIKLSAgICAgICIgICAgV2hpY2ggaXM6IDVc
biIKLSAgICAgICIgIDYiLAotICAgICAgbXNnMi5jX3N0cigpKTsKLQotICBjb25zdCBzdGQ6OnN0
cmluZyBtc2czKAotICAgICAgRXFGYWlsdXJlKCI1IiwgImJhciIsIGZvb192YWwsIGJhcl92YWws
IGZhbHNlKQotICAgICAgLmZhaWx1cmVfbWVzc2FnZSgpKTsKLSAgRVhQRUNUX1NUUkVRKAotICAg
ICAgIkV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbiIKLSAgICAgICIgIDVcbiIK
LSAgICAgICIgIGJhclxuIgotICAgICAgIiAgICBXaGljaCBpczogNiIsCi0gICAgICBtc2czLmNf
c3RyKCkpOwotCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIG1zZzQoCi0gICAgICBFcUZhaWx1cmUoIjUi
LCAiNiIsIGZvb192YWwsIGJhcl92YWwsIGZhbHNlKS5mYWlsdXJlX21lc3NhZ2UoKSk7Ci0gIEVY
UEVDVF9TVFJFUSgKLSAgICAgICJFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4i
Ci0gICAgICAiICA1XG4iCi0gICAgICAiICA2IiwKLSAgICAgIG1zZzQuY19zdHIoKSk7Ci0KLSAg
Y29uc3Qgc3RkOjpzdHJpbmcgbXNnNSgKLSAgICAgIEVxRmFpbHVyZSgiZm9vIiwgImJhciIsCi0g
ICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcoIlwieFwiIiksIHN0ZDo6c3RyaW5nKCJcInlcIiIp
LAotICAgICAgICAgICAgICAgIHRydWUpLmZhaWx1cmVfbWVzc2FnZSgpKTsKLSAgRVhQRUNUX1NU
UkVRKAotICAgICAgIkV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbiIKLSAgICAg
ICIgIGZvb1xuIgotICAgICAgIiAgICBXaGljaCBpczogXCJ4XCJcbiIKLSAgICAgICIgIGJhclxu
IgotICAgICAgIiAgICBXaGljaCBpczogXCJ5XCJcbiIKLSAgICAgICJJZ25vcmluZyBjYXNlIiwK
LSAgICAgIG1zZzUuY19zdHIoKSk7Ci19Ci0KLVRFU1QoQXNzZXJ0aW9uVGVzdCwgRXFGYWlsdXJl
V2l0aERpZmYpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgbGVmdCgKLSAgICAgICIxXFxuMlhYWFxc
bjNcXG41XFxuNlxcbjdcXG44XFxuOVxcbjEwXFxuMTFcXG4xMlhYWFxcbjEzXFxuMTRcXG4xNSIp
OwotICBjb25zdCBzdGQ6OnN0cmluZyByaWdodCgKLSAgICAgICIxXFxuMlxcbjNcXG40XFxuNVxc
bjZcXG43XFxuOFxcbjlcXG4xMVxcbjEyXFxuMTNcXG4xNCIpOwotICBjb25zdCBzdGQ6OnN0cmlu
ZyBtc2cxKAotICAgICAgRXFGYWlsdXJlKCJsZWZ0IiwgInJpZ2h0IiwgbGVmdCwgcmlnaHQsIGZh
bHNlKS5mYWlsdXJlX21lc3NhZ2UoKSk7Ci0gIEVYUEVDVF9TVFJFUSgKLSAgICAgICJFeHBlY3Rl
ZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4iCi0gICAgICAiICBsZWZ0XG4iCi0gICAgICAi
ICAgIFdoaWNoIGlzOiAiCi0gICAgICAiMVxcbjJYWFhcXG4zXFxuNVxcbjZcXG43XFxuOFxcbjlc
XG4xMFxcbjExXFxuMTJYWFhcXG4xM1xcbjE0XFxuMTVcbiIKLSAgICAgICIgIHJpZ2h0XG4iCi0g
ICAgICAiICAgIFdoaWNoIGlzOiAxXFxuMlxcbjNcXG40XFxuNVxcbjZcXG43XFxuOFxcbjlcXG4x
MVxcbjEyXFxuMTNcXG4xNFxuIgotICAgICAgIldpdGggZGlmZjpcbkBAIC0xLDUgKzEsNiBAQFxu
IDFcbi0yWFhYXG4rMlxuIDNcbis0XG4gNVxuIDZcbiIKLSAgICAgICJAQCAtNyw4ICs4LDYgQEBc
biA4XG4gOVxuLTEwXG4gMTFcbi0xMlhYWFxuKzEyXG4gMTNcbiAxNFxuLTE1XG4iLAotICAgICAg
bXNnMS5jX3N0cigpKTsKLX0KLQotLy8gVGVzdHMgQXBwZW5kVXNlck1lc3NhZ2UoKSwgdXNlZCBm
b3IgaW1wbGVtZW50aW5nIHRoZSAqRVEqIG1hY3Jvcy4KLVRFU1QoQXNzZXJ0aW9uVGVzdCwgQXBw
ZW5kVXNlck1lc3NhZ2UpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgZm9vKCJmb28iKTsKLQotICBN
ZXNzYWdlIG1zZzsKLSAgRVhQRUNUX1NUUkVRKCJmb28iLAotICAgICAgICAgICAgICAgQXBwZW5k
VXNlck1lc3NhZ2UoZm9vLCBtc2cpLmNfc3RyKCkpOwotCi0gIG1zZyA8PCAiYmFyIjsKLSAgRVhQ
RUNUX1NUUkVRKCJmb29cbmJhciIsCi0gICAgICAgICAgICAgICBBcHBlbmRVc2VyTWVzc2FnZShm
b28sIG1zZykuY19zdHIoKSk7Ci19Ci0KLSNpZmRlZiBfX0JPUkxBTkRDX18KLS8vIFNpbGVuY2Vz
IHdhcm5pbmdzOiAiQ29uZGl0aW9uIGlzIGFsd2F5cyB0cnVlIiwgIlVucmVhY2hhYmxlIGNvZGUi
Ci0jIHByYWdtYSBvcHRpb24gcHVzaCAtdy1jY2MgLXctcmNoCi0jZW5kaWYKLQotLy8gVGVzdHMg
QVNTRVJUX1RSVUUuCi1URVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9UUlVFKSB7Ci0gIEFTU0VS
VF9UUlVFKDIgPiAxKTsgIC8vIE5PTElOVAotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRf
VFJVRSgyIDwgMSksCi0gICAgICAgICAgICAgICAgICAgICAgICIyIDwgMSIpOwotfQotCi0vLyBU
ZXN0cyBBU1NFUlRfVFJVRShwcmVkaWNhdGUpIGZvciBwcmVkaWNhdGVzIHJldHVybmluZyBBc3Nl
cnRpb25SZXN1bHQuCi1URVNUKEFzc2VydGlvblRlc3QsIEFzc2VydFRydWVXaXRoQXNzZXJ0aW9u
UmVzdWx0KSB7Ci0gIEFTU0VSVF9UUlVFKFJlc3VsdElzRXZlbigyKSk7Ci0jaWZuZGVmIF9fQk9S
TEFORENfXwotICAvLyBJQ0UncyBpbiBDKytCdWlsZGVyLgotICBFWFBFQ1RfRkFUQUxfRkFJTFVS
RShBU1NFUlRfVFJVRShSZXN1bHRJc0V2ZW4oMykpLAotICAgICAgICAgICAgICAgICAgICAgICAi
VmFsdWUgb2Y6IFJlc3VsdElzRXZlbigzKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAiICBB
Y3R1YWw6IGZhbHNlICgzIGlzIG9kZClcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVj
dGVkOiB0cnVlIik7Ci0jZW5kaWYKLSAgQVNTRVJUX1RSVUUoUmVzdWx0SXNFdmVuTm9FeHBsYW5h
dGlvbigyKSk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9UUlVFKFJlc3VsdElzRXZl
bk5vRXhwbGFuYXRpb24oMykpLAotICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUgb2Y6IFJl
c3VsdElzRXZlbk5vRXhwbGFuYXRpb24oMylcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIiAg
QWN0dWFsOiBmYWxzZSAoMyBpcyBvZGQpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICJFeHBl
Y3RlZDogdHJ1ZSIpOwotfQotCi0vLyBUZXN0cyBBU1NFUlRfRkFMU0UuCi1URVNUKEFzc2VydGlv
blRlc3QsIEFTU0VSVF9GQUxTRSkgewotICBBU1NFUlRfRkFMU0UoMiA8IDEpOyAgLy8gTk9MSU5U
Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9GQUxTRSgyID4gMSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICJWYWx1ZSBvZjogMiA+IDFcbiIKLSAgICAgICAgICAgICAgICAgICAgICAg
IiAgQWN0dWFsOiB0cnVlXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogZmFs
c2UiKTsKLX0KLQotLy8gVGVzdHMgQVNTRVJUX0ZBTFNFKHByZWRpY2F0ZSkgZm9yIHByZWRpY2F0
ZXMgcmV0dXJuaW5nIEFzc2VydGlvblJlc3VsdC4KLVRFU1QoQXNzZXJ0aW9uVGVzdCwgQXNzZXJ0
RmFsc2VXaXRoQXNzZXJ0aW9uUmVzdWx0KSB7Ci0gIEFTU0VSVF9GQUxTRShSZXN1bHRJc0V2ZW4o
MykpOwotI2lmbmRlZiBfX0JPUkxBTkRDX18KLSAgLy8gSUNFJ3MgaW4gQysrQnVpbGRlci4KLSAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0ZBTFNFKFJlc3VsdElzRXZlbigyKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICJWYWx1ZSBvZjogUmVzdWx0SXNFdmVuKDIpXG4iCi0gICAgICAg
ICAgICAgICAgICAgICAgICIgIEFjdHVhbDogdHJ1ZSAoMiBpcyBldmVuKVxuIgotICAgICAgICAg
ICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IGZhbHNlIik7Ci0jZW5kaWYKLSAgQVNTRVJUX0ZBTFNF
KFJlc3VsdElzRXZlbk5vRXhwbGFuYXRpb24oMykpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShB
U1NFUlRfRkFMU0UoUmVzdWx0SXNFdmVuTm9FeHBsYW5hdGlvbigyKSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICJWYWx1ZSBvZjogUmVzdWx0SXNFdmVuTm9FeHBsYW5hdGlvbigyKVxuIgotICAg
ICAgICAgICAgICAgICAgICAgICAiICBBY3R1YWw6IHRydWVcbiIKLSAgICAgICAgICAgICAgICAg
ICAgICAgIkV4cGVjdGVkOiBmYWxzZSIpOwotfQotCi0jaWZkZWYgX19CT1JMQU5EQ19fCi0vLyBS
ZXN0b3JlcyB3YXJuaW5ncyBhZnRlciBwcmV2aW91cyAiI3ByYWdtYSBvcHRpb24gcHVzaCIgc3Vw
cmVzc2VkIHRoZW0KLSMgcHJhZ21hIG9wdGlvbiBwb3AKLSNlbmRpZgotCi0vLyBUZXN0cyB1c2lu
ZyBBU1NFUlRfRVEgb24gZG91YmxlIHZhbHVlcy4gIFRoZSBwdXJwb3NlIGlzIHRvIG1ha2UKLS8v
IHN1cmUgdGhhdCB0aGUgc3BlY2lhbGl6YXRpb24gd2UgZGlkIGZvciBpbnRlZ2VyIGFuZCBhbm9u
eW1vdXMgZW51bXMKLS8vIGlzbid0IHVzZWQgZm9yIGRvdWJsZSBhcmd1bWVudHMuCi1URVNUKEV4
cGVjdFRlc3QsIEFTU0VSVF9FUV9Eb3VibGUpIHsKLSAgLy8gQSBzdWNjZXNzLgotICBBU1NFUlRf
RVEoNS42LCA1LjYpOwotCi0gIC8vIEEgZmFpbHVyZS4KLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUo
QVNTRVJUX0VRKDUuMSwgNS4yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIjUuMSIpOwotfQot
Ci0vLyBUZXN0cyBBU1NFUlRfRVEuCi1URVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9FUSkgewot
ICBBU1NFUlRfRVEoNSwgMiArIDMpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEo
NSwgMiozKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIGVxdWFsaXR5IG9mIHRo
ZXNlIHZhbHVlczpcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIiAgNVxuIgotICAgICAgICAg
ICAgICAgICAgICAgICAiICAyKjNcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgIiAgICBXaGlj
aCBpczogNiIpOwotfQotCi0vLyBUZXN0cyBBU1NFUlRfRVEoTlVMTCwgcG9pbnRlcikuCi0jaWYg
R1RFU1RfQ0FOX0NPTVBBUkVfTlVMTAotVEVTVChBc3NlcnRpb25UZXN0LCBBU1NFUlRfRVFfTlVM
TCkgewotICAvLyBBIHN1Y2Nlc3MuCi0gIGNvbnN0IGNoYXIqIHAgPSBOVUxMOwotICAvLyBTb21l
IG9sZGVyIEdDQyB2ZXJzaW9ucyBtYXkgaXNzdWUgYSBzcHVyaW91cyB3YXJuaW5nIGluIHRoaXMg
b3IgdGhlIG5leHQKLSAgLy8gYXNzZXJ0aW9uIHN0YXRlbWVudC4gVGhpcyB3YXJuaW5nIHNob3Vs
ZCBub3QgYmUgc3VwcHJlc3NlZCB3aXRoCi0gIC8vIHN0YXRpY19jYXN0IHNpbmNlIHRoZSB0ZXN0
IHZlcmlmaWVzIHRoZSBhYmlsaXR5IHRvIHVzZSBiYXJlIE5VTEwgYXMgdGhlCi0gIC8vIGV4cGVj
dGVkIHBhcmFtZXRlciB0byB0aGUgbWFjcm8uCi0gIEFTU0VSVF9FUShOVUxMLCBwKTsKLQotICAv
LyBBIGZhaWx1cmUuCi0gIHN0YXRpYyBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJF
KEFTU0VSVF9FUShOVUxMLCAmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICIgICZuXG4gICAg
V2hpY2ggaXM6Iik7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKLQotLy8g
VGVzdHMgQVNTRVJUX0VRKDAsIG5vbl9wb2ludGVyKS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2Fu
IGJlCi0vLyB0cmVhdGVkIGFzIGEgbnVsbCBwb2ludGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVl
ZCB0byBtYWtlIHN1cmUKLS8vIHRoYXQgQVNTRVJUX0VRKDAsIG5vbl9wb2ludGVyKSBpc24ndCBp
bnRlcnByZXRlZCBieSBHb29nbGUgVGVzdCBhcwotLy8gQVNTRVJUX0VRKHN0YXRpY19jYXN0PHZv
aWQqPihOVUxMKSwgbm9uX3BvaW50ZXIpLgotVEVTVChFeHBlY3RUZXN0LCBBU1NFUlRfRVFfMCkg
ewotICBpbnQgbiA9IDA7Ci0KLSAgLy8gQSBzdWNjZXNzLgotICBBU1NFUlRfRVEoMCwgbik7Ci0K
LSAgLy8gQSBmYWlsdXJlLgotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoMCwgNS42
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIiAgMFxuICA1LjYiKTsKLX0KLQotLy8gVGVzdHMg
QVNTRVJUX05FLgotVEVTVChBc3NlcnRpb25UZXN0LCBBU1NFUlRfTkUpIHsKLSAgQVNTRVJUX05F
KDYsIDcpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTkUoJ2EnLCAnYScpLAotICAg
ICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6ICgnYScpICE9ICgnYScpLCAiCi0gICAgICAg
ICAgICAgICAgICAgICAgICJhY3R1YWw6ICdhJyAoOTcsIDB4NjEpIHZzICdhJyAoOTcsIDB4NjEp
Iik7Ci19Ci0KLS8vIFRlc3RzIEFTU0VSVF9MRS4KLVRFU1QoQXNzZXJ0aW9uVGVzdCwgQVNTRVJU
X0xFKSB7Ci0gIEFTU0VSVF9MRSgyLCAzKTsKLSAgQVNTRVJUX0xFKDIsIDIpOwotICBFWFBFQ1Rf
RkFUQUxfRkFJTFVSRShBU1NFUlRfTEUoMiwgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICJF
eHBlY3RlZDogKDIpIDw9ICgwKSwgYWN0dWFsOiAyIHZzIDAiKTsKLX0KLQotLy8gVGVzdHMgQVNT
RVJUX0xULgotVEVTVChBc3NlcnRpb25UZXN0LCBBU1NFUlRfTFQpIHsKLSAgQVNTRVJUX0xUKDIs
IDMpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTFQoMiwgMiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICJFeHBlY3RlZDogKDIpIDwgKDIpLCBhY3R1YWw6IDIgdnMgMiIpOwotfQot
Ci0vLyBUZXN0cyBBU1NFUlRfR0UuCi1URVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9HRSkgewot
ICBBU1NFUlRfR0UoMiwgMSk7Ci0gIEFTU0VSVF9HRSgyLCAyKTsKLSAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoQVNTRVJUX0dFKDIsIDMpLAotICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6
ICgyKSA+PSAoMyksIGFjdHVhbDogMiB2cyAzIik7Ci19Ci0KLS8vIFRlc3RzIEFTU0VSVF9HVC4K
LVRFU1QoQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX0dUKSB7Ci0gIEFTU0VSVF9HVCgyLCAxKTsKLSAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0dUKDIsIDIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAiRXhwZWN0ZWQ6ICgyKSA+ICgyKSwgYWN0dWFsOiAyIHZzIDIiKTsKLX0KLQotI2lmIEdU
RVNUX0hBU19FWENFUFRJT05TCi0KLXZvaWQgVGhyb3dOb3RoaW5nKCkge30KLQotLy8gVGVzdHMg
QVNTRVJUX1RIUk9XLgotVEVTVChBc3NlcnRpb25UZXN0LCBBU1NFUlRfVEhST1cpIHsKLSAgQVNT
RVJUX1RIUk9XKFRocm93QW5JbnRlZ2VyKCksIGludCk7Ci0KLSMgaWZuZGVmIF9fQk9STEFORENf
XwotCi0gIC8vIElDRSdzIGluIEMrK0J1aWxkZXIgMjAwNyBhbmQgMjAwOS4KLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoCi0gICAgICBBU1NFUlRfVEhST1coVGhyb3dBbkludGVnZXIoKSwgYm9vbCks
Ci0gICAgICAiRXhwZWN0ZWQ6IFRocm93QW5JbnRlZ2VyKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiBv
ZiB0eXBlIGJvb2wuXG4iCi0gICAgICAiICBBY3R1YWw6IGl0IHRocm93cyBhIGRpZmZlcmVudCB0
eXBlLiIpOwotIyBlbmRpZgotCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKAotICAgICAgQVNTRVJU
X1RIUk9XKFRocm93Tm90aGluZygpLCBib29sKSwKLSAgICAgICJFeHBlY3RlZDogVGhyb3dOb3Ro
aW5nKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0eXBlIGJvb2wuXG4iCi0gICAgICAiICBBY3R1
YWw6IGl0IHRocm93cyBub3RoaW5nLiIpOwotfQotCi0vLyBUZXN0cyBBU1NFUlRfTk9fVEhST1cu
Ci1URVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9OT19USFJPVykgewotICBBU1NFUlRfTk9fVEhS
T1coVGhyb3dOb3RoaW5nKCkpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTk9fVEhS
T1coVGhyb3dBbkludGVnZXIoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDog
VGhyb3dBbkludGVnZXIoKSBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi4iCi0gICAgICAgICAg
ICAgICAgICAgICAgICJcbiAgQWN0dWFsOiBpdCB0aHJvd3MuIik7Ci19Ci0KLS8vIFRlc3RzIEFT
U0VSVF9BTllfVEhST1cuCi1URVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9BTllfVEhST1cpIHsK
LSAgQVNTRVJUX0FOWV9USFJPVyhUaHJvd0FuSW50ZWdlcigpKTsKLSAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoCi0gICAgICBBU1NFUlRfQU5ZX1RIUk9XKFRocm93Tm90aGluZygpKSwKLSAgICAgICJF
eHBlY3RlZDogVGhyb3dOb3RoaW5nKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbi5cbiIKLSAgICAgICIg
IEFjdHVhbDogaXQgZG9lc24ndC4iKTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBU
SU9OUwotCi0vLyBNYWtlcyBzdXJlIHdlIGRlYWwgd2l0aCB0aGUgcHJlY2VkZW5jZSBvZiA8PC4g
IFRoaXMgdGVzdCBzaG91bGQKLS8vIGNvbXBpbGUuCi1URVNUKEFzc2VydGlvblRlc3QsIEFzc2Vy
dFByZWNlZGVuY2UpIHsKLSAgQVNTRVJUX0VRKDEgPCAyLCB0cnVlKTsKLSAgYm9vbCBmYWxzZV92
YWx1ZSA9IGZhbHNlOwotICBBU1NFUlRfRVEodHJ1ZSAmJiBmYWxzZV92YWx1ZSwgZmFsc2UpOwot
fQotCi0vLyBBIHN1YnJvdXRpbmUgdXNlZCBieSB0aGUgZm9sbG93aW5nIHRlc3QuCi12b2lkIFRl
c3RFcTEoaW50IHgpIHsKLSAgQVNTRVJUX0VRKDEsIHgpOwotfQotCi0vLyBUZXN0cyBjYWxsaW5n
IGEgdGVzdCBzdWJyb3V0aW5lIHRoYXQncyBub3QgcGFydCBvZiBhIGZpeHR1cmUuCi1URVNUKEFz
c2VydGlvblRlc3QsIE5vbkZpeHR1cmVTdWJyb3V0aW5lKSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlM
VVJFKFRlc3RFcTEoMiksCi0gICAgICAgICAgICAgICAgICAgICAgICJXaGljaCBpczogMiIpOwot
fQotCi0vLyBBbiB1bmNvcHlhYmxlIGNsYXNzLgotY2xhc3MgVW5jb3B5YWJsZSB7Ci0gcHVibGlj
OgotICBleHBsaWNpdCBVbmNvcHlhYmxlKGludCBhX3ZhbHVlKSA6IHZhbHVlXyhhX3ZhbHVlKSB7
fQotCi0gIGludCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQotICBib29sIG9wZXJh
dG9yPT0oY29uc3QgVW5jb3B5YWJsZSYgcmhzKSBjb25zdCB7Ci0gICAgcmV0dXJuIHZhbHVlKCkg
PT0gcmhzLnZhbHVlKCk7Ci0gIH0KLSBwcml2YXRlOgotICAvLyBUaGlzIGNvbnN0cnVjdG9yIGRl
bGliZXJhdGVseSBoYXMgbm8gaW1wbGVtZW50YXRpb24sIGFzIHdlIGRvbid0Ci0gIC8vIHdhbnQg
dGhpcyBjbGFzcyB0byBiZSBjb3B5YWJsZS4KLSAgVW5jb3B5YWJsZShjb25zdCBVbmNvcHlhYmxl
Jik7ICAvLyBOT0xJTlQKLQotICBpbnQgdmFsdWVfOwotfTsKLQotOjpzdGQ6Om9zdHJlYW0mIG9w
ZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBVbmNvcHlhYmxlJiB2YWx1ZSkgewot
ICByZXR1cm4gb3MgPDwgdmFsdWUudmFsdWUoKTsKLX0KLQotCi1ib29sIElzUG9zaXRpdmVVbmNv
cHlhYmxlKGNvbnN0IFVuY29weWFibGUmIHgpIHsKLSAgcmV0dXJuIHgudmFsdWUoKSA+IDA7Ci19
Ci0KLS8vIEEgc3Vicm91dGluZSB1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgdGVzdC4KLXZvaWQgVGVz
dEFzc2VydE5vblBvc2l0aXZlKCkgewotICBVbmNvcHlhYmxlIHkoLTEpOwotICBBU1NFUlRfUFJF
RDEoSXNQb3NpdGl2ZVVuY29weWFibGUsIHkpOwotfQotLy8gQSBzdWJyb3V0aW5lIHVzZWQgYnkg
dGhlIGZvbGxvd2luZyB0ZXN0Lgotdm9pZCBUZXN0QXNzZXJ0RXF1YWxzVW5jb3B5YWJsZSgpIHsK
LSAgVW5jb3B5YWJsZSB4KDUpOwotICBVbmNvcHlhYmxlIHkoLTEpOwotICBBU1NFUlRfRVEoeCwg
eSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdW5jb3B5YWJsZSBvYmplY3RzIGNhbiBiZSB1c2VkIGlu
IGFzc2VydGlvbnMuCi1URVNUKEFzc2VydGlvblRlc3QsIEFzc2VydFdvcmtzV2l0aFVuY29weWFi
bGVPYmplY3QpIHsKLSAgVW5jb3B5YWJsZSB4KDUpOwotICBBU1NFUlRfUFJFRDEoSXNQb3NpdGl2
ZVVuY29weWFibGUsIHgpOwotICBBU1NFUlRfRVEoeCwgeCk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlM
VVJFKFRlc3RBc3NlcnROb25Qb3NpdGl2ZSgpLAotICAgICJJc1Bvc2l0aXZlVW5jb3B5YWJsZSh5
KSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlXG55IGV2YWx1YXRlcyB0byAtMSIpOwotICBFWFBF
Q1RfRkFUQUxfRkFJTFVSRShUZXN0QXNzZXJ0RXF1YWxzVW5jb3B5YWJsZSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAiRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuIgotICAg
ICAgICAgICAgICAgICAgICAgICAiICB4XG4gICAgV2hpY2ggaXM6IDVcbiAgeVxuICAgIFdoaWNo
IGlzOiAtMSIpOwotfQotCi0vLyBUZXN0cyB0aGF0IHVuY29weWFibGUgb2JqZWN0cyBjYW4gYmUg
dXNlZCBpbiBleHBlY3RzLgotVEVTVChBc3NlcnRpb25UZXN0LCBFeHBlY3RXb3Jrc1dpdGhVbmNv
cHlhYmxlT2JqZWN0KSB7Ci0gIFVuY29weWFibGUgeCg1KTsKLSAgRVhQRUNUX1BSRUQxKElzUG9z
aXRpdmVVbmNvcHlhYmxlLCB4KTsKLSAgVW5jb3B5YWJsZSB5KC0xKTsKLSAgRVhQRUNUX05PTkZB
VEFMX0ZBSUxVUkUoRVhQRUNUX1BSRUQxKElzUG9zaXRpdmVVbmNvcHlhYmxlLCB5KSwKLSAgICAi
SXNQb3NpdGl2ZVVuY29weWFibGUoeSkgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZVxueSBldmFs
dWF0ZXMgdG8gLTEiKTsKLSAgRVhQRUNUX0VRKHgsIHgpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRShFWFBFQ1RfRVEoeCwgeSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3Rl
ZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICIgIHhcbiAgICBXaGljaCBpczogNVxuICB5XG4gICAgV2hpY2ggaXM6IC0xIik7Ci19Ci0KLWVu
dW0gTmFtZWRFbnVtIHsKLSAga0UxID0gMCwKLSAga0UyID0gMQotfTsKLQotVEVTVChBc3NlcnRp
b25UZXN0LCBOYW1lZEVudW0pIHsKLSAgRVhQRUNUX0VRKGtFMSwga0UxKTsKLSAgRVhQRUNUX0xU
KGtFMSwga0UyKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0VRKGtFMSwga0Uy
KSwgIldoaWNoIGlzOiAwIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShr
RTEsIGtFMiksICJXaGljaCBpczogMSIpOwotfQotCi0vLyBUaGUgdmVyc2lvbiBvZiBnY2MgdXNl
ZCBpbiBYQ29kZSAyLjIgaGFzIGEgYnVnIGFuZCBkb2Vzbid0IGFsbG93Ci0vLyBhbm9ueW1vdXMg
ZW51bXMgaW4gYXNzZXJ0aW9ucy4gIFRoZXJlZm9yZSB0aGUgZm9sbG93aW5nIHRlc3QgaXMgbm90
Ci0vLyBkb25lIG9uIE1hYy4KLS8vIFN1biBTdHVkaW8gYW5kIEhQIGFDQyBhbHNvIHJlamVjdCB0
aGlzIGNvZGUuCi0jaWYgIUdURVNUX09TX01BQyAmJiAhZGVmaW5lZChfX1NVTlBST19DQykgJiYg
IWRlZmluZWQoX19IUF9hQ0MpCi0KLS8vIFRlc3RzIHVzaW5nIGFzc2VydGlvbnMgd2l0aCBhbm9u
eW1vdXMgZW51bXMuCi1lbnVtIHsKLSAga0Nhc2VBID0gLTEsCi0KLSMgaWYgR1RFU1RfT1NfTElO
VVgKLQotICAvLyBXZSB3YW50IHRvIHRlc3QgdGhlIGNhc2Ugd2hlcmUgdGhlIHNpemUgb2YgdGhl
IGFub255bW91cyBlbnVtIGlzCi0gIC8vIGxhcmdlciB0aGFuIHNpemVvZihpbnQpLCB0byBtYWtl
IHN1cmUgb3VyIGltcGxlbWVudGF0aW9uIG9mIHRoZQotICAvLyBhc3NlcnRpb25zIGRvZXNuJ3Qg
dHJ1bmNhdGUgdGhlIGVudW1zLiAgSG93ZXZlciwgTVNWQwotICAvLyAoaW5jb3JyZWN0bHkpIGRv
ZXNuJ3QgYWxsb3cgYW4gZW51bSB2YWx1ZSB0byBleGNlZWQgdGhlIHJhbmdlIG9mCi0gIC8vIGFu
IGludCwgc28gdGhpcyBoYXMgdG8gYmUgY29uZGl0aW9uYWxseSBjb21waWxlZC4KLSAgLy8KLSAg
Ly8gT24gTGludXgsIGtDYXNlQiBhbmQga0Nhc2VBIGhhdmUgdGhlIHNhbWUgdmFsdWUgd2hlbiB0
cnVuY2F0ZWQgdG8KLSAgLy8gaW50IHNpemUuICBXZSB3YW50IHRvIHRlc3Qgd2hldGhlciB0aGlz
IHdpbGwgY29uZnVzZSB0aGUKLSAgLy8gYXNzZXJ0aW9ucy4KLSAga0Nhc2VCID0gdGVzdGluZzo6
aW50ZXJuYWw6OmtNYXhCaWdnZXN0SW50LAotCi0jIGVsc2UKLQotICBrQ2FzZUIgPSBJTlRfTUFY
LAotCi0jIGVuZGlmICAvLyBHVEVTVF9PU19MSU5VWAotCi0gIGtDYXNlQyA9IDQyCi19OwotCi1U
RVNUKEFzc2VydGlvblRlc3QsIEFub255bW91c0VudW0pIHsKLSMgaWYgR1RFU1RfT1NfTElOVVgK
LQotICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50PihrQ2FzZUEpLCBzdGF0aWNfY2FzdDxpbnQ+
KGtDYXNlQikpOwotCi0jIGVuZGlmICAvLyBHVEVTVF9PU19MSU5VWAotCi0gIEVYUEVDVF9FUShr
Q2FzZUEsIGtDYXNlQSk7Ci0gIEVYUEVDVF9ORShrQ2FzZUEsIGtDYXNlQik7Ci0gIEVYUEVDVF9M
VChrQ2FzZUEsIGtDYXNlQik7Ci0gIEVYUEVDVF9MRShrQ2FzZUEsIGtDYXNlQik7Ci0gIEVYUEVD
VF9HVChrQ2FzZUIsIGtDYXNlQSk7Ci0gIEVYUEVDVF9HRShrQ2FzZUEsIGtDYXNlQSk7Ci0gIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9HRShrQ2FzZUEsIGtDYXNlQiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICIoa0Nhc2VBKSA+PSAoa0Nhc2VCKSIpOwotICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRShFWFBFQ1RfR0Uoa0Nhc2VBLCBrQ2FzZUMpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLTEgdnMgNDIiKTsKLQotICBBU1NFUlRfRVEoa0Nhc2VBLCBrQ2FzZUEpOwot
ICBBU1NFUlRfTkUoa0Nhc2VBLCBrQ2FzZUIpOwotICBBU1NFUlRfTFQoa0Nhc2VBLCBrQ2FzZUIp
OwotICBBU1NFUlRfTEUoa0Nhc2VBLCBrQ2FzZUIpOwotICBBU1NFUlRfR1Qoa0Nhc2VCLCBrQ2Fz
ZUEpOwotICBBU1NFUlRfR0Uoa0Nhc2VBLCBrQ2FzZUEpOwotCi0jIGlmbmRlZiBfX0JPUkxBTkRD
X18KLQotICAvLyBJQ0UncyBpbiBDKytCdWlsZGVyLgotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShB
U1NFUlRfRVEoa0Nhc2VBLCBrQ2FzZUIpLAotICAgICAgICAgICAgICAgICAgICAgICAia0Nhc2VC
Iik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9FUShrQ2FzZUEsIGtDYXNlQyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICJXaGljaCBpczogNDIiKTsKLSMgZW5kaWYKLQotICBFWFBF
Q1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoa0Nhc2VBLCBrQ2FzZUMpLAotICAgICAgICAgICAg
ICAgICAgICAgICAiV2hpY2ggaXM6IC0xIik7Ci19Ci0KLSNlbmRpZiAgLy8gIUdURVNUX09TX01B
QyAmJiAhZGVmaW5lZChfX1NVTlBST19DQykKLQotI2lmIEdURVNUX09TX1dJTkRPV1MKLQotc3Rh
dGljIEhSRVNVTFQgVW5leHBlY3RlZEhSRVNVTFRGYWlsdXJlKCkgewotICByZXR1cm4gRV9VTkVY
UEVDVEVEOwotfQotCi1zdGF0aWMgSFJFU1VMVCBPa0hSRVNVTFRTdWNjZXNzKCkgewotICByZXR1
cm4gU19PSzsKLX0KLQotc3RhdGljIEhSRVNVTFQgRmFsc2VIUkVTVUxUU3VjY2VzcygpIHsKLSAg
cmV0dXJuIFNfRkFMU0U7Ci19Ci0KLS8vIEhSRVNVTFQgYXNzZXJ0aW9uIHRlc3RzIHRlc3QgYm90
aCB6ZXJvIGFuZCBub24temVybwotLy8gc3VjY2VzcyBjb2RlcyBhcyB3ZWxsIGFzIGZhaWx1cmUg
bWVzc2FnZSBmb3IgZWFjaC4KLS8vCi0vLyBXaW5kb3dzIENFIGRvZXNuJ3Qgc3VwcG9ydCBtZXNz
YWdlIHRleHRzLgotVEVTVChIUkVTVUxUQXNzZXJ0aW9uVGVzdCwgRVhQRUNUX0hSRVNVTFRfU1VD
Q0VFREVEKSB7Ci0gIEVYUEVDVF9IUkVTVUxUX1NVQ0NFRURFRChTX09LKTsKLSAgRVhQRUNUX0hS
RVNVTFRfU1VDQ0VFREVEKFNfRkFMU0UpOwotCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9IUkVTVUxUX1NVQ0NFRURFRChVbmV4cGVjdGVkSFJFU1VMVEZhaWx1cmUoKSksCi0gICAg
IkV4cGVjdGVkOiAoVW5leHBlY3RlZEhSRVNVTFRGYWlsdXJlKCkpIHN1Y2NlZWRzLlxuIgotICAg
ICIgIEFjdHVhbDogMHg4MDAwRkZGRiIpOwotfQotCi1URVNUKEhSRVNVTFRBc3NlcnRpb25UZXN0
LCBBU1NFUlRfSFJFU1VMVF9TVUNDRUVERUQpIHsKLSAgQVNTRVJUX0hSRVNVTFRfU1VDQ0VFREVE
KFNfT0spOwotICBBU1NFUlRfSFJFU1VMVF9TVUNDRUVERUQoU19GQUxTRSk7Ci0KLSAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0hSRVNVTFRfU1VDQ0VFREVEKFVuZXhwZWN0ZWRIUkVTVUxU
RmFpbHVyZSgpKSwKLSAgICAiRXhwZWN0ZWQ6IChVbmV4cGVjdGVkSFJFU1VMVEZhaWx1cmUoKSkg
c3VjY2VlZHMuXG4iCi0gICAgIiAgQWN0dWFsOiAweDgwMDBGRkZGIik7Ci19Ci0KLVRFU1QoSFJF
U1VMVEFzc2VydGlvblRlc3QsIEVYUEVDVF9IUkVTVUxUX0ZBSUxFRCkgewotICBFWFBFQ1RfSFJF
U1VMVF9GQUlMRUQoRV9VTkVYUEVDVEVEKTsKLQotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShF
WFBFQ1RfSFJFU1VMVF9GQUlMRUQoT2tIUkVTVUxUU3VjY2VzcygpKSwKLSAgICAiRXhwZWN0ZWQ6
IChPa0hSRVNVTFRTdWNjZXNzKCkpIGZhaWxzLlxuIgotICAgICIgIEFjdHVhbDogMHgwIik7Ci0g
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9IUkVTVUxUX0ZBSUxFRChGYWxzZUhSRVNV
TFRTdWNjZXNzKCkpLAotICAgICJFeHBlY3RlZDogKEZhbHNlSFJFU1VMVFN1Y2Nlc3MoKSkgZmFp
bHMuXG4iCi0gICAgIiAgQWN0dWFsOiAweDEiKTsKLX0KLQotVEVTVChIUkVTVUxUQXNzZXJ0aW9u
VGVzdCwgQVNTRVJUX0hSRVNVTFRfRkFJTEVEKSB7Ci0gIEFTU0VSVF9IUkVTVUxUX0ZBSUxFRChF
X1VORVhQRUNURUQpOwotCi0jIGlmbmRlZiBfX0JPUkxBTkRDX18KLQotICAvLyBJQ0UncyBpbiBD
KytCdWlsZGVyIDIwMDcgYW5kIDIwMDkuCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9I
UkVTVUxUX0ZBSUxFRChPa0hSRVNVTFRTdWNjZXNzKCkpLAotICAgICJFeHBlY3RlZDogKE9rSFJF
U1VMVFN1Y2Nlc3MoKSkgZmFpbHMuXG4iCi0gICAgIiAgQWN0dWFsOiAweDAiKTsKLSMgZW5kaWYK
LQotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfSFJFU1VMVF9GQUlMRUQoRmFsc2VIUkVT
VUxUU3VjY2VzcygpKSwKLSAgICAiRXhwZWN0ZWQ6IChGYWxzZUhSRVNVTFRTdWNjZXNzKCkpIGZh
aWxzLlxuIgotICAgICIgIEFjdHVhbDogMHgxIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgc3RyZWFt
aW5nIHRvIHRoZSBIUkVTVUxUIG1hY3JvcyB3b3Jrcy4KLVRFU1QoSFJFU1VMVEFzc2VydGlvblRl
c3QsIFN0cmVhbWluZykgewotICBFWFBFQ1RfSFJFU1VMVF9TVUNDRUVERUQoU19PSykgPDwgInVu
ZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEFTU0VSVF9IUkVTVUxUX1NVQ0NFRURFRChTX09LKSA8PCAi
dW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgRVhQRUNUX0hSRVNVTFRfRkFJTEVEKEVfVU5FWFBFQ1RF
RCkgPDwgInVuZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEFTU0VSVF9IUkVTVUxUX0ZBSUxFRChFX1VO
RVhQRUNURUQpIDw8ICJ1bmV4cGVjdGVkIGZhaWx1cmUiOwotCi0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKAotICAgICAgRVhQRUNUX0hSRVNVTFRfU1VDQ0VFREVEKEVfVU5FWFBFQ1RFRCkgPDwg
ImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgImV4cGVjdGVkIGZhaWx1cmUiKTsKLQotIyBpZm5k
ZWYgX19CT1JMQU5EQ19fCi0KLSAgLy8gSUNFJ3MgaW4gQysrQnVpbGRlciAyMDA3IGFuZCAyMDA5
LgotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgKLSAgICAgIEFTU0VSVF9IUkVTVUxUX1NVQ0NFRURF
RChFX1VORVhQRUNURUQpIDw8ICJleHBlY3RlZCBmYWlsdXJlIiwKLSAgICAgICJleHBlY3RlZCBm
YWlsdXJlIik7Ci0jIGVuZGlmCi0KLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoCi0gICAgICBF
WFBFQ1RfSFJFU1VMVF9GQUlMRUQoU19PSykgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAg
ImV4cGVjdGVkIGZhaWx1cmUiKTsKLQotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgKLSAgICAgIEFT
U0VSVF9IUkVTVUxUX0ZBSUxFRChTX09LKSA8PCAiZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAi
ZXhwZWN0ZWQgZmFpbHVyZSIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKLQot
I2lmZGVmIF9fQk9STEFORENfXwotLy8gU2lsZW5jZXMgd2FybmluZ3M6ICJDb25kaXRpb24gaXMg
YWx3YXlzIHRydWUiLCAiVW5yZWFjaGFibGUgY29kZSIKLSMgcHJhZ21hIG9wdGlvbiBwdXNoIC13
LWNjYyAtdy1yY2gKLSNlbmRpZgotCi0vLyBUZXN0cyB0aGF0IHRoZSBhc3NlcnRpb24gbWFjcm9z
IGJlaGF2ZSBsaWtlIHNpbmdsZSBzdGF0ZW1lbnRzLgotVEVTVChBc3NlcnRpb25TeW50YXhUZXN0
LCBCYXNpY0Fzc2VydGlvbnNCZWhhdmVzTGlrZVNpbmdsZVN0YXRlbWVudCkgewotICBpZiAoQWx3
YXlzRmFsc2UoKSkKLSAgICBBU1NFUlRfVFJVRShmYWxzZSkgPDwgIlRoaXMgc2hvdWxkIG5ldmVy
IGJlIGV4ZWN1dGVkOyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJJdCdzIGEgY29tcGls
YXRpb24gdGVzdCBvbmx5LiI7Ci0KLSAgaWYgKEFsd2F5c1RydWUoKSkKLSAgICBFWFBFQ1RfRkFM
U0UoZmFsc2UpOwotICBlbHNlCi0gICAgOyAgLy8gTk9MSU5UCi0KLSAgaWYgKEFsd2F5c0ZhbHNl
KCkpCi0gICAgQVNTRVJUX0xUKDEsIDMpOwotCi0gIGlmIChBbHdheXNGYWxzZSgpKQotICAgIDsg
IC8vIE5PTElOVAotICBlbHNlCi0gICAgRVhQRUNUX0dUKDMsIDIpIDw8ICIiOwotfQotCi0jaWYg
R1RFU1RfSEFTX0VYQ0VQVElPTlMKLS8vIFRlc3RzIHRoYXQgdGhlIGNvbXBpbGVyIHdpbGwgbm90
IGNvbXBsYWluIGFib3V0IHVucmVhY2hhYmxlIGNvZGUgaW4gdGhlCi0vLyBFWFBFQ1RfVEhST1cv
RVhQRUNUX0FOWV9USFJPVy9FWFBFQ1RfTk9fVEhST1cgbWFjcm9zLgotVEVTVChFeHBlY3RUaHJv
d1Rlc3QsIERvZXNOb3RHZW5lcmF0ZVVucmVhY2hhYmxlQ29kZVdhcm5pbmcpIHsKLSAgaW50IG4g
PSAwOwotCi0gIEVYUEVDVF9USFJPVyh0aHJvdyAxLCBpbnQpOwotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShFWFBFQ1RfVEhST1cobisrLCBpbnQpLCAiIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEVYUEVDVF9USFJPVyh0aHJvdyAxLCBjb25zdCBjaGFyKiksICIiKTsKLSAgRVhQRUNU
X05PX1RIUk9XKG4rKyk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9OT19USFJP
Vyh0aHJvdyAxKSwgIiIpOwotICBFWFBFQ1RfQU5ZX1RIUk9XKHRocm93IDEpOwotICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfQU5ZX1RIUk9XKG4rKyksICIiKTsKLX0KLQotVEVTVChB
c3NlcnRpb25TeW50YXhUZXN0LCBFeGNlcHRpb25Bc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVT
dGF0ZW1lbnQpIHsKLSAgaWYgKEFsd2F5c0ZhbHNlKCkpCi0gICAgRVhQRUNUX1RIUk9XKFRocm93
Tm90aGluZygpLCBib29sKTsKLQotICBpZiAoQWx3YXlzVHJ1ZSgpKQotICAgIEVYUEVDVF9USFJP
VyhUaHJvd0FuSW50ZWdlcigpLCBpbnQpOwotICBlbHNlCi0gICAgOyAgLy8gTk9MSU5UCi0KLSAg
aWYgKEFsd2F5c0ZhbHNlKCkpCi0gICAgRVhQRUNUX05PX1RIUk9XKFRocm93QW5JbnRlZ2VyKCkp
OwotCi0gIGlmIChBbHdheXNUcnVlKCkpCi0gICAgRVhQRUNUX05PX1RIUk9XKFRocm93Tm90aGlu
ZygpKTsKLSAgZWxzZQotICAgIDsgIC8vIE5PTElOVAotCi0gIGlmIChBbHdheXNGYWxzZSgpKQot
ICAgIEVYUEVDVF9BTllfVEhST1coVGhyb3dOb3RoaW5nKCkpOwotCi0gIGlmIChBbHdheXNUcnVl
KCkpCi0gICAgRVhQRUNUX0FOWV9USFJPVyhUaHJvd0FuSW50ZWdlcigpKTsKLSAgZWxzZQotICAg
IDsgIC8vIE5PTElOVAotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi1URVNU
KEFzc2VydGlvblN5bnRheFRlc3QsIE5vRmF0YWxGYWlsdXJlQXNzZXJ0aW9uc0JlaGF2ZXNMaWtl
U2luZ2xlU3RhdGVtZW50KSB7Ci0gIGlmIChBbHdheXNGYWxzZSgpKQotICAgIEVYUEVDVF9OT19G
QVRBTF9GQUlMVVJFKEZBSUwoKSkgPDwgIlRoaXMgc2hvdWxkIG5ldmVyIGJlIGV4ZWN1dGVkLiAi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiSXQncyBhIGNvbXBpbGF0
aW9uIHRlc3Qgb25seS4iOwotICBlbHNlCi0gICAgOyAgLy8gTk9MSU5UCi0KLSAgaWYgKEFsd2F5
c0ZhbHNlKCkpCi0gICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoRkFJTCgpKSA8PCAiIjsKLSAg
ZWxzZQotICAgIDsgIC8vIE5PTElOVAotCi0gIGlmIChBbHdheXNUcnVlKCkpCi0gICAgRVhQRUNU
X05PX0ZBVEFMX0ZBSUxVUkUoU1VDQ0VFRCgpKTsKLSAgZWxzZQotICAgIDsgIC8vIE5PTElOVAot
Ci0gIGlmIChBbHdheXNGYWxzZSgpKQotICAgIDsgIC8vIE5PTElOVAotICBlbHNlCi0gICAgQVNT
RVJUX05PX0ZBVEFMX0ZBSUxVUkUoU1VDQ0VFRCgpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0aGUg
YXNzZXJ0aW9uIG1hY3JvcyB3b3JrIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50cy4KLVRFU1Qo
QXNzZXJ0aW9uU3ludGF4VGVzdCwgV29ya3NXaXRoU3dpdGNoKSB7Ci0gIHN3aXRjaCAoMCkgewot
ICAgIGNhc2UgMToKLSAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICBBU1NFUlRfVFJV
RSh0cnVlKTsKLSAgfQotCi0gIHN3aXRjaCAoMCkKLSAgICBjYXNlIDA6Ci0gICAgICBFWFBFQ1Rf
RkFMU0UoZmFsc2UpIDw8ICJFWFBFQ1RfRkFMU0UgZmFpbGVkIGluIHN3aXRjaCBjYXNlIjsKLQot
ICAvLyBCaW5hcnkgYXNzZXJ0aW9ucyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgYSBkaWZmZXJlbnQg
Y29kZSBwYXRoCi0gIC8vIHRoYW4gdGhlIEJvb2xlYW4gYXNzZXJ0aW9ucy4gIEhlbmNlIHdlIHRl
c3QgdGhlbSBzZXBhcmF0ZWx5LgotICBzd2l0Y2ggKDApIHsKLSAgICBjYXNlIDE6Ci0gICAgZGVm
YXVsdDoKLSAgICAgIEFTU0VSVF9FUSgxLCAxKSA8PCAiQVNTRVJUX0VRIGZhaWxlZCBpbiBkZWZh
dWx0IHN3aXRjaCBoYW5kbGVyIjsKLSAgfQotCi0gIHN3aXRjaCAoMCkKLSAgICBjYXNlIDA6Ci0g
ICAgICBFWFBFQ1RfTkUoMSwgMik7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi12
b2lkIFRocm93QVN0cmluZygpIHsKLSAgICB0aHJvdyAic3RkOjpzdHJpbmciOwotfQotCi0vLyBU
ZXN0IHRoYXQgdGhlIGV4Y2VwdGlvbiBhc3NlcnRpb24gbWFjcm9zIGNvbXBpbGUgYW5kIHdvcmsg
d2l0aCBjb25zdAotLy8gdHlwZSBxdWFsaWZpZXIuCi1URVNUKEFzc2VydGlvblN5bnRheFRlc3Qs
IFdvcmtzV2l0aENvbnN0KSB7Ci0gICAgQVNTRVJUX1RIUk9XKFRocm93QVN0cmluZygpLCBjb25z
dCBjaGFyKik7Ci0KLSAgICBFWFBFQ1RfVEhST1coVGhyb3dBU3RyaW5nKCksIGNvbnN0IGNoYXIq
KTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi19ICAvLyBuYW1lc3Bh
Y2UKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBUZXN0cyB0aGF0IEdvb2dsZSBUZXN0IHRy
YWNrcyBTVUNDRUVEKi4KLVRFU1QoU3VjY2Vzc2Z1bEFzc2VydGlvblRlc3QsIFNVQ0NFRUQpIHsK
LSAgU1VDQ0VFRCgpOwotICBTVUNDRUVEKCkgPDwgIk9LIjsKLSAgRVhQRUNUX0VRKDIsIEdldFVu
aXRUZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0KCktPnRvdGFsX3BhcnRfY291bnQoKSk7
Ci19Ci0KLS8vIFRlc3RzIHRoYXQgR29vZ2xlIFRlc3QgZG9lc24ndCB0cmFjayBzdWNjZXNzZnVs
IEVYUEVDVF8qLgotVEVTVChTdWNjZXNzZnVsQXNzZXJ0aW9uVGVzdCwgRVhQRUNUKSB7Ci0gIEVY
UEVDVF9UUlVFKHRydWUpOwotICBFWFBFQ1RfRVEoMCwgR2V0VW5pdFRlc3RJbXBsKCktPmN1cnJl
bnRfdGVzdF9yZXN1bHQoKS0+dG90YWxfcGFydF9jb3VudCgpKTsKLX0KLQotLy8gVGVzdHMgdGhh
dCBHb29nbGUgVGVzdCBkb2Vzbid0IHRyYWNrIHN1Y2Nlc3NmdWwgRVhQRUNUX1NUUiouCi1URVNU
KFN1Y2Nlc3NmdWxBc3NlcnRpb25UZXN0LCBFWFBFQ1RfU1RSKSB7Ci0gIEVYUEVDVF9TVFJFUSgi
IiwgIiIpOwotICBFWFBFQ1RfRVEoMCwgR2V0VW5pdFRlc3RJbXBsKCktPmN1cnJlbnRfdGVzdF9y
ZXN1bHQoKS0+dG90YWxfcGFydF9jb3VudCgpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBHb29nbGUg
VGVzdCBkb2Vzbid0IHRyYWNrIHN1Y2Nlc3NmdWwgQVNTRVJUXyouCi1URVNUKFN1Y2Nlc3NmdWxB
c3NlcnRpb25UZXN0LCBBU1NFUlQpIHsKLSAgQVNTRVJUX1RSVUUodHJ1ZSk7Ci0gIEVYUEVDVF9F
USgwLCBHZXRVbml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X3Jlc3VsdCgpLT50b3RhbF9wYXJ0
X2NvdW50KCkpOwotfQotCi0vLyBUZXN0cyB0aGF0IEdvb2dsZSBUZXN0IGRvZXNuJ3QgdHJhY2sg
c3VjY2Vzc2Z1bCBBU1NFUlRfU1RSKi4KLVRFU1QoU3VjY2Vzc2Z1bEFzc2VydGlvblRlc3QsIEFT
U0VSVF9TVFIpIHsKLSAgQVNTRVJUX1NUUkVRKCIiLCAiIik7Ci0gIEVYUEVDVF9FUSgwLCBHZXRV
bml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X3Jlc3VsdCgpLT50b3RhbF9wYXJ0X2NvdW50KCkp
OwotfQotCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi1uYW1lc3BhY2UgewotCi0vLyBUZXN0
cyB0aGUgbWVzc2FnZSBzdHJlYW1pbmcgdmFyaWF0aW9uIG9mIGFzc2VydGlvbnMuCi0KLVRFU1Qo
QXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBFWFBFQ1QpIHsKLSAgRVhQRUNUX0VRKDEsIDEpIDw8
ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVD
VF9ORSgxLCAxKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMS4iLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAiRXhwZWN0ZWQgZmFpbHVyZSAjMSIpOwotICBFWFBFQ1RfTEUoMSwgMikgPDwgIlRo
aXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0xU
KDEsIDApIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMyLiIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICJFeHBlY3RlZCBmYWlsdXJlICMyLiIpOwotICBFWFBFQ1RfR0UoMSwgMCkgPDwgIlRoaXMg
c2hvdWxkIHN1Y2NlZWQuIjsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0dUKDEs
IDIpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMzLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICJFeHBlY3RlZCBmYWlsdXJlICMzLiIpOwotCi0gIEVYUEVDVF9TVFJFUSgiMSIsICIxIikgPDwg
IlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X1NUUk5FKCIxIiwgIjEiKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjNC4iLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAiRXhwZWN0ZWQgZmFpbHVyZSAjNC4iKTsKLSAgRVhQRUNUX1NUUkNBU0VF
USgiYSIsICJBIikgPDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoRVhQRUNUX1NUUkNBU0VORSgiYSIsICJBIikgPDwgIkV4cGVjdGVkIGZhaWx1cmUg
IzUuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIGZhaWx1cmUgIzUuIik7
Ci0KLSAgRVhQRUNUX0ZMT0FUX0VRKDEsIDEpIDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7Ci0g
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEoMSwgMS4yKSA8PCAiRXhw
ZWN0ZWQgZmFpbHVyZSAjNi4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQg
ZmFpbHVyZSAjNi4iKTsKLSAgRVhQRUNUX05FQVIoMSwgMS4xLCAwLjIpIDw8ICJUaGlzIHNob3Vs
ZCBzdWNjZWVkLiI7Ci19Ci0KLVRFU1QoQXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBBU1NFUlQp
IHsKLSAgQVNTRVJUX0VRKDEsIDEpIDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7Ci0gIEFTU0VS
VF9ORSgxLCAyKSA8PCAiVGhpcyBzaG91bGQgc3VjY2VlZC4iOwotICBBU1NFUlRfTEUoMSwgMikg
PDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgQVNTRVJUX0xUKDEsIDIpIDw8ICJUaGlzIHNo
b3VsZCBzdWNjZWVkLiI7Ci0gIEFTU0VSVF9HRSgxLCAwKSA8PCAiVGhpcyBzaG91bGQgc3VjY2Vl
ZC4iOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfR1QoMSwgMikgPDwgIkV4cGVjdGVk
IGZhaWx1cmUuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIGZhaWx1cmUuIik7
Ci19Ci0KLVRFU1QoQXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBBU1NFUlRfU1RSKSB7Ci0gIEFT
U0VSVF9TVFJFUSgiMSIsICIxIikgPDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgQVNTRVJU
X1NUUk5FKCIxIiwgIjIiKSA8PCAiVGhpcyBzaG91bGQgc3VjY2VlZC4iOwotICBBU1NFUlRfU1RS
Q0FTRUVRKCJhIiwgIkEiKSA8PCAiVGhpcyBzaG91bGQgc3VjY2VlZC4iOwotICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShBU1NFUlRfU1RSQ0FTRU5FKCJhIiwgIkEiKSA8PCAiRXhwZWN0ZWQgZmFpbHVy
ZS4iLAotICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQgZmFpbHVyZS4iKTsKLX0KLQot
VEVTVChBc3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIEFTU0VSVF9GTE9BVElORykgewotICBBU1NF
UlRfRkxPQVRfRVEoMSwgMSkgPDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgQVNTRVJUX0RP
VUJMRV9FUSgxLCAxKSA8PCAiVGhpcyBzaG91bGQgc3VjY2VlZC4iOwotICBFWFBFQ1RfRkFUQUxf
RkFJTFVSRShBU1NFUlRfTkVBUigxLDEuMiwgMC4xKSA8PCAiRXhwZWN0IGZhaWx1cmUuIiwgIC8v
IE5PTElOVAotICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0IGZhaWx1cmUuIik7Ci0gIC8v
IFRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIGdjYyAyLjk1LjAsIHRoZXJlIGlzIGludGVudGlvbmFs
bHkgbm8KLSAgLy8gc3BhY2UgYWZ0ZXIgdGhlIGZpcnN0IGNvbW1hIGluIHRoZSBwcmV2aW91cyBz
dGF0ZW1lbnQuCi19Ci0KLS8vIFRlc3RzIHVzaW5nIEFTU0VSVF9GQUxTRSB3aXRoIGEgc3RyZWFt
ZWQgbWVzc2FnZS4KLVRFU1QoQXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBBU1NFUlRfRkFMU0Up
IHsKLSAgQVNTRVJUX0ZBTFNFKGZhbHNlKSA8PCAiVGhpcyBzaG91bGRuJ3QgZmFpbC4iOwotICBF
WFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfRkFMU0UodHJ1ZSkg
PDwgIkV4cGVjdGVkIGZhaWx1cmU6ICIgPDwgMiA8PCAiID4gIiA8PCAxCi0gICAgICAgICAgICAg
ICAgICAgICAgIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdHJ1ZTsKLSAgfSwgIkV4cGVjdGVkIGZh
aWx1cmUiKTsKLX0KLQotLy8gVGVzdHMgdXNpbmcgRkFJTCB3aXRoIGEgc3RyZWFtZWQgbWVzc2Fn
ZS4KLVRFU1QoQXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBGQUlMKSB7Ci0gIEVYUEVDVF9GQVRB
TF9GQUlMVVJFKEZBSUwoKSA8PCAwLAotICAgICAgICAgICAgICAgICAgICAgICAiMCIpOwotfQot
Ci0vLyBUZXN0cyB1c2luZyBTVUNDRUVEIHdpdGggYSBzdHJlYW1lZCBtZXNzYWdlLgotVEVTVChB
c3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIFNVQ0NFRUQpIHsKLSAgU1VDQ0VFRCgpIDw8ICJTdWNj
ZXNzID09ICIgPDwgMTsKLX0KLQotLy8gVGVzdHMgdXNpbmcgQVNTRVJUX1RSVUUgd2l0aCBhIHN0
cmVhbWVkIG1lc3NhZ2UuCi1URVNUKEFzc2VydGlvbldpdGhNZXNzYWdlVGVzdCwgQVNTRVJUX1RS
VUUpIHsKLSAgQVNTRVJUX1RSVUUodHJ1ZSkgPDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAg
QVNTRVJUX1RSVUUodHJ1ZSkgPDwgdHJ1ZTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8g
Tk9MSU5UCi0gICAgQVNTRVJUX1RSVUUoZmFsc2UpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIg
Kj4oTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8Y2hhciAqPihO
VUxMKTsKLSAgfSwgIihudWxsKShudWxsKSIpOwotfQotCi0jaWYgR1RFU1RfT1NfV0lORE9XUwot
Ly8gVGVzdHMgdXNpbmcgd2lkZSBzdHJpbmdzIGluIGFzc2VydGlvbiBtZXNzYWdlcy4KLVRFU1Qo
QXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBXaWRlU3RyaW5nTWVzc2FnZSkgewotICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwg
TCJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQuXHg4MTE5IjsKLSAgfSwgIlRoaXMgZmFpbHVyZSBp
cyBleHBlY3RlZC4iKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAg
QVNTRVJUX0VRKDEsIDIpIDw8ICJUaGlzIGZhaWx1cmUgaXMgIgotICAgICAgICAgICAgICAgICAg
ICA8PCBMImV4cGVjdGVkIHRvby5ceDgxMjAiOwotICB9LCAiVGhpcyBmYWlsdXJlIGlzIGV4cGVj
dGVkIHRvby4iKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotCi0vLyBUZXN0cyBF
WFBFQ1RfVFJVRS4KLVRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX1RSVUUpIHsKLSAgRVhQRUNUX1RS
VUUodHJ1ZSkgPDwgIkludGVudGlvbmFsIHN1Y2Nlc3MiOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRShFWFBFQ1RfVFJVRShmYWxzZSkgPDwgIkludGVudGlvbmFsIGZhaWx1cmUgIzEuIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkludGVudGlvbmFsIGZhaWx1cmUgIzEuIik7Ci0gIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiSW50ZW50aW9uYWwg
ZmFpbHVyZSAjMi4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZW50aW9uYWwgZmFp
bHVyZSAjMi4iKTsKLSAgRVhQRUNUX1RSVUUoMiA+IDEpOyAgLy8gTk9MSU5UCi0gIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKEVYUEVDVF9UUlVFKDIgPCAxKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlZhbHVlIG9mOiAyIDwgMVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAiICBB
Y3R1YWw6IGZhbHNlXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogdHJ1
ZSIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfVFJVRSgyID4gMyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICIyID4gMyIpOwotfQotCi0vLyBUZXN0cyBFWFBFQ1RfVFJV
RShwcmVkaWNhdGUpIGZvciBwcmVkaWNhdGVzIHJldHVybmluZyBBc3NlcnRpb25SZXN1bHQuCi1U
RVNUKEV4cGVjdFRlc3QsIEV4cGVjdFRydWVXaXRoQXNzZXJ0aW9uUmVzdWx0KSB7Ci0gIEVYUEVD
VF9UUlVFKFJlc3VsdElzRXZlbigyKSk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVD
VF9UUlVFKFJlc3VsdElzRXZlbigzKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJWYWx1
ZSBvZjogUmVzdWx0SXNFdmVuKDMpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIgIEFj
dHVhbDogZmFsc2UgKDMgaXMgb2RkKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhw
ZWN0ZWQ6IHRydWUiKTsKLSAgRVhQRUNUX1RSVUUoUmVzdWx0SXNFdmVuTm9FeHBsYW5hdGlvbigy
KSk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9UUlVFKFJlc3VsdElzRXZlbk5v
RXhwbGFuYXRpb24oMykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUgb2Y6IFJl
c3VsdElzRXZlbk5vRXhwbGFuYXRpb24oMylcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IiAgQWN0dWFsOiBmYWxzZSAoMyBpcyBvZGQpXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICJFeHBlY3RlZDogdHJ1ZSIpOwotfQotCi0vLyBUZXN0cyBFWFBFQ1RfRkFMU0Ugd2l0aCBhIHN0
cmVhbWVkIG1lc3NhZ2UuCi1URVNUKEV4cGVjdFRlc3QsIEVYUEVDVF9GQUxTRSkgewotICBFWFBF
Q1RfRkFMU0UoMiA8IDEpOyAgLy8gTk9MSU5UCi0gIEVYUEVDVF9GQUxTRShmYWxzZSkgPDwgIklu
dGVudGlvbmFsIHN1Y2Nlc3MiOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRkFM
U0UodHJ1ZSkgPDwgIkludGVudGlvbmFsIGZhaWx1cmUgIzEuIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkludGVudGlvbmFsIGZhaWx1cmUgIzEuIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEVYUEVDVF9GQUxTRSh0cnVlKSA8PCAiSW50ZW50aW9uYWwgZmFpbHVyZSAjMi4iLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZW50aW9uYWwgZmFpbHVyZSAjMi4iKTsKLSAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0ZBTFNFKDIgPiAxKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlZhbHVlIG9mOiAyID4gMVxuIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAiICBBY3R1YWw6IHRydWVcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVj
dGVkOiBmYWxzZSIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRkFMU0UoMiA8
IDMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiMiA8IDMiKTsKLX0KLQotLy8gVGVzdHMg
RVhQRUNUX0ZBTFNFKHByZWRpY2F0ZSkgZm9yIHByZWRpY2F0ZXMgcmV0dXJuaW5nIEFzc2VydGlv
blJlc3VsdC4KLVRFU1QoRXhwZWN0VGVzdCwgRXhwZWN0RmFsc2VXaXRoQXNzZXJ0aW9uUmVzdWx0
KSB7Ci0gIEVYUEVDVF9GQUxTRShSZXN1bHRJc0V2ZW4oMykpOwotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShFWFBFQ1RfRkFMU0UoUmVzdWx0SXNFdmVuKDIpKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlZhbHVlIG9mOiBSZXN1bHRJc0V2ZW4oMilcbiIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiAgQWN0dWFsOiB0cnVlICgyIGlzIGV2ZW4pXG4iCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICJFeHBlY3RlZDogZmFsc2UiKTsKLSAgRVhQRUNUX0ZBTFNFKFJlc3VsdElzRXZl
bk5vRXhwbGFuYXRpb24oMykpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRkFM
U0UoUmVzdWx0SXNFdmVuTm9FeHBsYW5hdGlvbigyKSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICJWYWx1ZSBvZjogUmVzdWx0SXNFdmVuTm9FeHBsYW5hdGlvbigyKVxuIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAiICBBY3R1YWw6IHRydWVcbiIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkV4cGVjdGVkOiBmYWxzZSIpOwotfQotCi0jaWZkZWYgX19CT1JMQU5EQ19fCi0vLyBS
ZXN0b3JlcyB3YXJuaW5ncyBhZnRlciBwcmV2aW91cyAiI3ByYWdtYSBvcHRpb24gcHVzaCIgc3Vw
cmVzc2VkIHRoZW0KLSMgcHJhZ21hIG9wdGlvbiBwb3AKLSNlbmRpZgotCi0vLyBUZXN0cyBFWFBF
Q1RfRVEuCi1URVNUKEV4cGVjdFRlc3QsIEVYUEVDVF9FUSkgewotICBFWFBFQ1RfRVEoNSwgMiAr
IDMpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoNSwgMiozKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpc
biIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgNVxuIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAiICAyKjNcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBXaGljaCBp
czogNiIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoNSwgMiAtIDMpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMiAtIDMiKTsKLX0KLQotLy8gVGVzdHMgdXNpbmcg
RVhQRUNUX0VRIG9uIGRvdWJsZSB2YWx1ZXMuICBUaGUgcHVycG9zZSBpcyB0byBtYWtlCi0vLyBz
dXJlIHRoYXQgdGhlIHNwZWNpYWxpemF0aW9uIHdlIGRpZCBmb3IgaW50ZWdlciBhbmQgYW5vbnlt
b3VzIGVudW1zCi0vLyBpc24ndCB1c2VkIGZvciBkb3VibGUgYXJndW1lbnRzLgotVEVTVChFeHBl
Y3RUZXN0LCBFWFBFQ1RfRVFfRG91YmxlKSB7Ci0gIC8vIEEgc3VjY2Vzcy4KLSAgRVhQRUNUX0VR
KDUuNiwgNS42KTsKLQotICAvLyBBIGZhaWx1cmUuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KEVYUEVDVF9FUSg1LjEsIDUuMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICI1LjEiKTsK
LX0KLQotI2lmIEdURVNUX0NBTl9DT01QQVJFX05VTEwKLS8vIFRlc3RzIEVYUEVDVF9FUShOVUxM
LCBwb2ludGVyKS4KLVRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX0VRX05VTEwpIHsKLSAgLy8gQSBz
dWNjZXNzLgotICBjb25zdCBjaGFyKiBwID0gTlVMTDsKLSAgLy8gU29tZSBvbGRlciBHQ0MgdmVy
c2lvbnMgbWF5IGlzc3VlIGEgc3B1cmlvdXMgd2FybmluZyBpbiB0aGlzIG9yIHRoZSBuZXh0Ci0g
IC8vIGFzc2VydGlvbiBzdGF0ZW1lbnQuIFRoaXMgd2FybmluZyBzaG91bGQgbm90IGJlIHN1cHBy
ZXNzZWQgd2l0aAotICAvLyBzdGF0aWNfY2FzdCBzaW5jZSB0aGUgdGVzdCB2ZXJpZmllcyB0aGUg
YWJpbGl0eSB0byB1c2UgYmFyZSBOVUxMIGFzIHRoZQotICAvLyBleHBlY3RlZCBwYXJhbWV0ZXIg
dG8gdGhlIG1hY3JvLgotICBFWFBFQ1RfRVEoTlVMTCwgcCk7Ci0KLSAgLy8gQSBmYWlsdXJlLgot
ICBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShOVUxMLCAm
biksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICImblxuIik7Ci19Ci0jZW5kaWYgIC8vIEdU
RVNUX0NBTl9DT01QQVJFX05VTEwKLQotLy8gVGVzdHMgRVhQRUNUX0VRKDAsIG5vbl9wb2ludGVy
KS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCi0vLyB0cmVhdGVkIGFzIGEgbnVsbCBwb2lu
dGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKLS8vIHRoYXQgRVhQRUNU
X0VRKDAsIG5vbl9wb2ludGVyKSBpc24ndCBpbnRlcnByZXRlZCBieSBHb29nbGUgVGVzdCBhcwot
Ly8gRVhQRUNUX0VRKHN0YXRpY19jYXN0PHZvaWQqPihOVUxMKSwgbm9uX3BvaW50ZXIpLgotVEVT
VChFeHBlY3RUZXN0LCBFWFBFQ1RfRVFfMCkgewotICBpbnQgbiA9IDA7Ci0KLSAgLy8gQSBzdWNj
ZXNzLgotICBFWFBFQ1RfRVEoMCwgbik7Ci0KLSAgLy8gQSBmYWlsdXJlLgotICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoMCwgNS42KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbiAgMFxuICA1LjYiKTsKLX0K
LQotLy8gVGVzdHMgRVhQRUNUX05FLgotVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfTkUpIHsKLSAg
RVhQRUNUX05FKDYsIDcpOwotCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORSgn
YScsICdhJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogKCdhJykgIT0g
KCdhJyksICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImFjdHVhbDogJ2EnICg5NywgMHg2
MSkgdnMgJ2EnICg5NywgMHg2MSkiKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X05FKDIsIDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIpOwotICBjaGFyKiBjb25z
dCBwMCA9IE5VTEw7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORShwMCwgcDAp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAicDAiKTsKLSAgLy8gT25seSB3YXkgdG8gZ2V0
IHRoZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0Ci0gIC8vIGlzIHRvIGhhdmUg
YSBzZXBhcmF0ZSB2b2lkKiB2YXJpYWJsZSBmaXJzdC4gUHV0dGluZwotICAvLyB0aGUgdHdvIGNh
c3RzIG9uIHRoZSBzYW1lIGxpbmUgZG9lc24ndCB3b3JrLCBuZWl0aGVyIGRvZXMKLSAgLy8gYSBk
aXJlY3QgQy1zdHlsZSB0byBjaGFyKi4KLSAgdm9pZCogcHYxID0gKHZvaWQqKTB4MTIzNDsgIC8v
IE5PTElOVAotICBjaGFyKiBjb25zdCBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHB2MSk7
Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORShwMSwgcDEpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAicDEiKTsKLX0KLQotLy8gVGVzdHMgRVhQRUNUX0xFLgotVEVTVChF
eHBlY3RUZXN0LCBFWFBFQ1RfTEUpIHsKLSAgRVhQRUNUX0xFKDIsIDMpOwotICBFWFBFQ1RfTEUo
MiwgMik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9MRSgyLCAwKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkOiAoMikgPD0gKDApLCBhY3R1YWw6IDIgdnMg
MCIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTEUoMS4xLCAwLjkpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAiKDEuMSkgPD0gKDAuOSkiKTsKLX0KLQotLy8gVGVzdHMg
RVhQRUNUX0xULgotVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfTFQpIHsKLSAgRVhQRUNUX0xUKDIs
IDMpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTFQoMiwgMiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogKDIpIDwgKDIpLCBhY3R1YWw6IDIgdnMgMiIp
OwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTFQoMiwgMSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICIoMikgPCAoMSkiKTsKLX0KLQotLy8gVGVzdHMgRVhQRUNUX0dFLgot
VEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfR0UpIHsKLSAgRVhQRUNUX0dFKDIsIDEpOwotICBFWFBF
Q1RfR0UoMiwgMik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9HRSgyLCAzKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkOiAoMikgPj0gKDMpLCBhY3R1YWw6
IDIgdnMgMyIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfR0UoMC45LCAxLjEp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAiKDAuOSkgPj0gKDEuMSkiKTsKLX0KLQotLy8g
VGVzdHMgRVhQRUNUX0dULgotVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfR1QpIHsKLSAgRVhQRUNU
X0dUKDIsIDEpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfR1QoMiwgMiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogKDIpID4gKDIpLCBhY3R1YWw6IDIg
dnMgMiIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfR1QoMiwgMyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICIoMikgPiAoMykiKTsKLX0KLQotI2lmIEdURVNUX0hBU19F
WENFUFRJT05TCi0KLS8vIFRlc3RzIEVYUEVDVF9USFJPVy4KLVRFU1QoRXhwZWN0VGVzdCwgRVhQ
RUNUX1RIUk9XKSB7Ci0gIEVYUEVDVF9USFJPVyhUaHJvd0FuSW50ZWdlcigpLCBpbnQpOwotICBF
WFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfVEhST1coVGhyb3dBbkludGVnZXIoKSwgYm9v
bCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dBbkludGVnZXIo
KSB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInR5
cGUgYm9vbC5cbiAgQWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iKTsKLSAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoCi0gICAgICBFWFBFQ1RfVEhST1coVGhyb3dOb3RoaW5nKCks
IGJvb2wpLAotICAgICAgIkV4cGVjdGVkOiBUaHJvd05vdGhpbmcoKSB0aHJvd3MgYW4gZXhjZXB0
aW9uIG9mIHR5cGUgYm9vbC5cbiIKLSAgICAgICIgIEFjdHVhbDogaXQgdGhyb3dzIG5vdGhpbmcu
Iik7Ci19Ci0KLS8vIFRlc3RzIEVYUEVDVF9OT19USFJPVy4KLVRFU1QoRXhwZWN0VGVzdCwgRVhQ
RUNUX05PX1RIUk9XKSB7Ci0gIEVYUEVDVF9OT19USFJPVyhUaHJvd05vdGhpbmcoKSk7Ci0gIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9OT19USFJPVyhUaHJvd0FuSW50ZWdlcigpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50ZWdlcigpIGRv
ZXNuJ3QgdGhyb3cgYW4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uLlxu
ICBBY3R1YWw6IGl0IHRocm93cy4iKTsKLX0KLQotLy8gVGVzdHMgRVhQRUNUX0FOWV9USFJPVy4K
LVRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX0FOWV9USFJPVykgewotICBFWFBFQ1RfQU5ZX1RIUk9X
KFRocm93QW5JbnRlZ2VyKCkpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKLSAgICAgIEVY
UEVDVF9BTllfVEhST1coVGhyb3dOb3RoaW5nKCkpLAotICAgICAgIkV4cGVjdGVkOiBUaHJvd05v
dGhpbmcoKSB0aHJvd3MgYW4gZXhjZXB0aW9uLlxuIgotICAgICAgIiAgQWN0dWFsOiBpdCBkb2Vz
bid0LiIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19FWENFUFRJT05TCi0KLS8vIE1ha2Ug
c3VyZSB3ZSBkZWFsIHdpdGggdGhlIHByZWNlZGVuY2Ugb2YgPDwuCi1URVNUKEV4cGVjdFRlc3Qs
IEV4cGVjdFByZWNlZGVuY2UpIHsKLSAgRVhQRUNUX0VRKDEgPCAyLCB0cnVlKTsKLSAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0VRKHRydWUsIHRydWUgJiYgZmFsc2UpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAidHJ1ZSAmJiBmYWxzZSIpOwotfQotCi0KLS8vIFRlc3RzIHRo
ZSBTdHJlYW1hYmxlVG9TdHJpbmcoKSBmdW5jdGlvbi4KLQotLy8gVGVzdHMgdXNpbmcgU3RyZWFt
YWJsZVRvU3RyaW5nKCkgb24gYSBzY2FsYXIuCi1URVNUKFN0cmVhbWFibGVUb1N0cmluZ1Rlc3Qs
IFNjYWxhcikgewotICBFWFBFQ1RfU1RSRVEoIjUiLCBTdHJlYW1hYmxlVG9TdHJpbmcoNSkuY19z
dHIoKSk7Ci19Ci0KLS8vIFRlc3RzIHVzaW5nIFN0cmVhbWFibGVUb1N0cmluZygpIG9uIGEgbm9u
LWNoYXIgcG9pbnRlci4KLVRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgUG9pbnRlcikgewot
ICBpbnQgbiA9IDA7Ci0gIGludCogcCA9ICZuOwotICBFWFBFQ1RfU1RSTkUoIihudWxsKSIsIFN0
cmVhbWFibGVUb1N0cmluZyhwKS5jX3N0cigpKTsKLX0KLQotLy8gVGVzdHMgdXNpbmcgU3RyZWFt
YWJsZVRvU3RyaW5nKCkgb24gYSBOVUxMIG5vbi1jaGFyIHBvaW50ZXIuCi1URVNUKFN0cmVhbWFi
bGVUb1N0cmluZ1Rlc3QsIE51bGxQb2ludGVyKSB7Ci0gIGludCogcCA9IE5VTEw7Ci0gIEVYUEVD
VF9TVFJFUSgiKG51bGwpIiwgU3RyZWFtYWJsZVRvU3RyaW5nKHApLmNfc3RyKCkpOwotfQotCi0v
LyBUZXN0cyB1c2luZyBTdHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIEMgc3RyaW5nLgotVEVTVChT
dHJlYW1hYmxlVG9TdHJpbmdUZXN0LCBDU3RyaW5nKSB7Ci0gIEVYUEVDVF9TVFJFUSgiRm9vIiwg
U3RyZWFtYWJsZVRvU3RyaW5nKCJGb28iKS5jX3N0cigpKTsKLX0KLQotLy8gVGVzdHMgdXNpbmcg
U3RyZWFtYWJsZVRvU3RyaW5nKCkgb24gYSBOVUxMIEMgc3RyaW5nLgotVEVTVChTdHJlYW1hYmxl
VG9TdHJpbmdUZXN0LCBOdWxsQ1N0cmluZykgewotICBjaGFyKiBwID0gTlVMTDsKLSAgRVhQRUNU
X1NUUkVRKCIobnVsbCkiLCBTdHJlYW1hYmxlVG9TdHJpbmcocCkuY19zdHIoKSk7Ci19Ci0KLS8v
IFRlc3RzIHVzaW5nIHN0cmVhbWFibGUgdmFsdWVzIGFzIGFzc2VydGlvbiBtZXNzYWdlcy4KLQot
Ly8gVGVzdHMgdXNpbmcgc3RkOjpzdHJpbmcgYXMgYW4gYXNzZXJ0aW9uIG1lc3NhZ2UuCi1URVNU
KFN0cmVhbWFibGVUZXN0LCBzdHJpbmcpIHsKLSAgc3RhdGljIGNvbnN0IHN0ZDo6c3RyaW5nIHN0
cigKLSAgICAgICJUaGlzIGZhaWx1cmUgbWVzc2FnZSBpcyBhIHN0ZDo6c3RyaW5nLCBhbmQgaXMg
ZXhwZWN0ZWQuIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEZBSUwoKSA8PCBzdHIsCi0gICAg
ICAgICAgICAgICAgICAgICAgIHN0ci5jX3N0cigpKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB3ZSBj
YW4gb3V0cHV0IHN0cmluZ3MgY29udGFpbmluZyBlbWJlZGRlZCBOVUxzLgotLy8gTGltaXRlZCB0
byBMaW51eCBiZWNhdXNlIHdlIGNhbiBvbmx5IGRvIHRoaXMgd2l0aCBzdGQ6OnN0cmluZydzLgot
VEVTVChTdHJlYW1hYmxlVGVzdCwgc3RyaW5nV2l0aEVtYmVkZGVkTlVMKSB7Ci0gIHN0YXRpYyBj
b25zdCBjaGFyIGNoYXJfYXJyYXlfd2l0aF9udWxbXSA9Ci0gICAgICAiSGVyZSdzIGEgTlVMXDAg
YW5kIHNvbWUgbW9yZSBzdHJpbmciOwotICBzdGF0aWMgY29uc3Qgc3RkOjpzdHJpbmcgc3RyaW5n
X3dpdGhfbnVsKGNoYXJfYXJyYXlfd2l0aF9udWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNoYXJfYXJyYXlfd2l0aF9udWwpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAxKTsgIC8vIGRyb3BzIHRoZSB0cmFp
bGluZyBOVUwKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoRkFJTCgpIDw8IHN0cmluZ193aXRoX251
bCwKLSAgICAgICAgICAgICAgICAgICAgICAgIkhlcmUncyBhIE5VTFxcMCBhbmQgc29tZSBtb3Jl
IHN0cmluZyIpOwotfQotCi0vLyBUZXN0cyB0aGF0IHdlIGNhbiBvdXRwdXQgYSBOVUwgY2hhci4K
LVRFU1QoU3RyZWFtYWJsZVRlc3QsIE5VTENoYXIpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUo
eyAgLy8gTk9MSU5UCi0gICAgRkFJTCgpIDw8ICJBIE5VTCIgPDwgJ1wwJyA8PCAiIGFuZCBzb21l
IG1vcmUgc3RyaW5nIjsKLSAgfSwgIkEgTlVMXFwwIGFuZCBzb21lIG1vcmUgc3RyaW5nIik7Ci19
Ci0KLS8vIFRlc3RzIHVzaW5nIGludCBhcyBhbiBhc3NlcnRpb24gbWVzc2FnZS4KLVRFU1QoU3Ry
ZWFtYWJsZVRlc3QsIGludCkgewotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShGQUlMKCkgPDwgOTAw
OTEzLAotICAgICAgICAgICAgICAgICAgICAgICAiOTAwOTEzIik7Ci19Ci0KLS8vIFRlc3RzIHVz
aW5nIE5VTEwgY2hhciBwb2ludGVyIGFzIGFuIGFzc2VydGlvbiBtZXNzYWdlLgotLy8KLS8vIElu
IE1TVkMsIHN0cmVhbWluZyBhIE5VTEwgY2hhciAqIGNhdXNlcyBhY2Nlc3MgdmlvbGF0aW9uLiAg
R29vZ2xlIFRlc3QKLS8vIGltcGxlbWVudGVkIGEgd29ya2Fyb3VuZCAoc3Vic3RpdHV0aW5nICIo
bnVsbCkiIGZvciBOVUxMKS4gIFRoaXMKLS8vIHRlc3RzIHdoZXRoZXIgdGhlIHdvcmthcm91bmQg
d29ya3MuCi1URVNUKFN0cmVhbWFibGVUZXN0LCBOdWxsQ2hhclB0cikgewotICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShGQUlMKCkgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KE5VTEwpLAotICAg
ICAgICAgICAgICAgICAgICAgICAiKG51bGwpIik7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgYmFzaWMg
SU8gbWFuaXB1bGF0b3JzIChlbmRsLCBlbmRzLCBhbmQgZmx1c2gpIGNhbiBiZQotLy8gc3RyZWFt
ZWQgdG8gdGVzdGluZzo6TWVzc2FnZS4KLVRFU1QoU3RyZWFtYWJsZVRlc3QsIEJhc2ljSW9NYW5p
cCkgewotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBGQUlMKCkgPDwg
IkxpbmUgMS4iIDw8IHN0ZDo6ZW5kbAotICAgICAgICAgICA8PCAiQSBOVUwgY2hhciAiIDw8IHN0
ZDo6ZW5kcyA8PCBzdGQ6OmZsdXNoIDw8ICIgaW4gbGluZSAyLiI7Ci0gIH0sICJMaW5lIDEuXG5B
IE5VTCBjaGFyIFxcMCBpbiBsaW5lIDIuIik7Ci19Ci0KLS8vIFRlc3RzIHRoZSBtYWNyb3MgdGhh
dCBoYXZlbid0IGJlZW4gY292ZXJlZCBzbyBmYXIuCi0KLXZvaWQgQWRkRmFpbHVyZUhlbHBlcihi
b29sKiBhYm9ydGVkKSB7Ci0gICphYm9ydGVkID0gdHJ1ZTsKLSAgQUREX0ZBSUxVUkUoKSA8PCAi
SW50ZW50aW9uYWwgZmFpbHVyZS4iOwotICAqYWJvcnRlZCA9IGZhbHNlOwotfQotCi0vLyBUZXN0
cyBBRERfRkFJTFVSRS4KLVRFU1QoTWFjcm9UZXN0LCBBRERfRkFJTFVSRSkgewotICBib29sIGFi
b3J0ZWQgPSB0cnVlOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBZGRGYWlsdXJlSGVscGVy
KCZhYm9ydGVkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIkludGVudGlvbmFsIGZhaWx1
cmUuIik7Ci0gIEVYUEVDVF9GQUxTRShhYm9ydGVkKTsKLX0KLQotLy8gVGVzdHMgQUREX0ZBSUxV
UkVfQVQuCi1URVNUKE1hY3JvVGVzdCwgQUREX0ZBSUxVUkVfQVQpIHsKLSAgLy8gVmVyaWZpZXMg
dGhhdCBBRERfRkFJTFVSRV9BVCBkb2VzIGdlbmVyYXRlIGEgbm9uZmF0YWwgZmFpbHVyZSBhbmQK
LSAgLy8gdGhlIGZhaWx1cmUgbWVzc2FnZSBjb250YWlucyB0aGUgdXNlci1zdHJlYW1lZCBwYXJ0
LgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBRERfRkFJTFVSRV9BVCgiZm9vLmNjIiwgNDIp
IDw8ICJXcm9uZyEiLCAiV3JvbmchIik7Ci0KLSAgLy8gVmVyaWZpZXMgdGhhdCB0aGUgdXNlci1z
dHJlYW1lZCBwYXJ0IGlzIG9wdGlvbmFsLgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBRERf
RkFJTFVSRV9BVCgiZm9vLmNjIiwgNDIpLCAiRmFpbGVkIik7Ci0KLSAgLy8gVW5mb3J0dW5hdGVs
eSwgd2UgY2Fubm90IHZlcmlmeSB0aGF0IHRoZSBmYWlsdXJlIG1lc3NhZ2UgY29udGFpbnMKLSAg
Ly8gdGhlIHJpZ2h0IGZpbGUgcGF0aCBhbmQgbGluZSBudW1iZXIgdGhlIHNhbWUgd2F5LCBhcwot
ICAvLyBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgpIGRvZXNuJ3QgZ2V0IHRvIHNlZSB0aGUgZmls
ZSBwYXRoIGFuZAotICAvLyBsaW5lIG51bWJlci4gIEluc3RlYWQsIHdlIGRvIHRoYXQgaW4gZ3Rl
c3Rfb3V0cHV0X3Rlc3RfLmNjLgotfQotCi0vLyBUZXN0cyBGQUlMLgotVEVTVChNYWNyb1Rlc3Qs
IEZBSUwpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoRkFJTCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAiRmFpbGVkIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEZBSUwoKSA8PCAiSW50
ZW50aW9uYWwgZmFpbHVyZS4iLAotICAgICAgICAgICAgICAgICAgICAgICAiSW50ZW50aW9uYWwg
ZmFpbHVyZS4iKTsKLX0KLQotLy8gVGVzdHMgU1VDQ0VFRAotVEVTVChNYWNyb1Rlc3QsIFNVQ0NF
RUQpIHsKLSAgU1VDQ0VFRCgpOwotICBTVUNDRUVEKCkgPDwgIkV4cGxpY2l0IHN1Y2Nlc3MuIjsK
LX0KLQotLy8gVGVzdHMgZm9yIEVYUEVDVF9FUSgpIGFuZCBBU1NFUlRfRVEoKS4KLS8vCi0vLyBU
aGVzZSB0ZXN0cyBmYWlsICppbnRlbnRpb25hbGx5Kiwgcy50LiB0aGUgZmFpbHVyZSBtZXNzYWdl
cyBjYW4gYmUKLS8vIGdlbmVyYXRlZCBhbmQgdGVzdGVkLgotLy8KLS8vIFdlIGhhdmUgZGlmZmVy
ZW50IHRlc3RzIGZvciBkaWZmZXJlbnQgYXJndW1lbnQgdHlwZXMuCi0KLS8vIFRlc3RzIHVzaW5n
IGJvb2wgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1QoRXFBc3NlcnRpb25UZXN0
LCBCb29sKSB7Ci0gIEVYUEVDVF9FUSh0cnVlLCAgdHJ1ZSk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlM
VVJFKHsKLSAgICAgIGJvb2wgZmFsc2VfdmFsdWUgPSBmYWxzZTsKLSAgICAgIEFTU0VSVF9FUShm
YWxzZV92YWx1ZSwgdHJ1ZSk7Ci0gICAgfSwgIldoaWNoIGlzOiBmYWxzZSIpOwotfQotCi0vLyBU
ZXN0cyB1c2luZyBpbnQgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1QoRXFBc3Nl
cnRpb25UZXN0LCBJbnQpIHsKLSAgQVNTRVJUX0VRKDMyLCAzMik7Ci0gIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEVYUEVDVF9FUSgzMiwgMzMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAi
MzMiKTsKLX0KLQotLy8gVGVzdHMgdXNpbmcgdGltZV90IHZhbHVlcyBpbiB7RVhQRUNUfEFTU0VS
VH1fRVEuCi1URVNUKEVxQXNzZXJ0aW9uVGVzdCwgVGltZV9UKSB7Ci0gIEVYUEVDVF9FUShzdGF0
aWNfY2FzdDx0aW1lX3Q+KDApLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dGltZV90PigwKSk7
Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9FUShzdGF0aWNfY2FzdDx0aW1lX3Q+KDAp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dGltZV90Pigx
MjM0KSksCi0gICAgICAgICAgICAgICAgICAgICAgICIxMjM0Iik7Ci19Ci0KLS8vIFRlc3RzIHVz
aW5nIGNoYXIgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1QoRXFBc3NlcnRpb25U
ZXN0LCBDaGFyKSB7Ci0gIEFTU0VSVF9FUSgneicsICd6Jyk7Ci0gIGNvbnN0IGNoYXIgY2ggPSAn
Yic7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUSgnXDAnLCBjaCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICJjaCIpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShF
WFBFQ1RfRVEoJ2EnLCBjaCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJjaCIpOwotfQot
Ci0vLyBUZXN0cyB1c2luZyB3Y2hhcl90IHZhbHVlcyBpbiB7RVhQRUNUfEFTU0VSVH1fRVEuCi1U
RVNUKEVxQXNzZXJ0aW9uVGVzdCwgV2lkZUNoYXIpIHsKLSAgRVhQRUNUX0VRKEwnYicsIEwnYicp
OwotCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShMJ1wwJywgTCd4JyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1
ZXM6XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIgIEwnXDAnXG4iCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICIgICAgV2hpY2ggaXM6IEwnXDAnICgwLCAweDApXG4iCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICIgIEwneCdcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IiAgICBXaGljaCBpczogTCd4JyAoMTIwLCAweDc4KSIpOwotCi0gIHN0YXRpYyB3Y2hhcl90IHdj
aGFyOwotICB3Y2hhciA9IEwnYic7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9F
UShMJ2EnLCB3Y2hhciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJ3Y2hhciIpOwotICB3
Y2hhciA9IDB4ODExOTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0VRKHN0YXRpY19j
YXN0PHdjaGFyX3Q+KDB4ODEyMCksIHdjaGFyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIndj
aGFyIik7Ci19Ci0KLS8vIFRlc3RzIHVzaW5nIDo6c3RkOjpzdHJpbmcgdmFsdWVzIGluIHtFWFBF
Q1R8QVNTRVJUfV9FUS4KLVRFU1QoRXFBc3NlcnRpb25UZXN0LCBTdGRTdHJpbmcpIHsKLSAgLy8g
Q29tcGFyZXMgYSBjb25zdCBjaGFyKiB0byBhbiBzdGQ6OnN0cmluZyB0aGF0IGhhcyBpZGVudGlj
YWwKLSAgLy8gY29udGVudC4KLSAgQVNTRVJUX0VRKCJUZXN0IiwgOjpzdGQ6OnN0cmluZygiVGVz
dCIpKTsKLQotICAvLyBDb21wYXJlcyB0d28gaWRlbnRpY2FsIHN0ZDo6c3RyaW5ncy4KLSAgc3Rh
dGljIGNvbnN0IDo6c3RkOjpzdHJpbmcgc3RyMSgiQSAqIGluIHRoZSBtaWRkbGUiKTsKLSAgc3Rh
dGljIGNvbnN0IDo6c3RkOjpzdHJpbmcgc3RyMihzdHIxKTsKLSAgRVhQRUNUX0VRKHN0cjEsIHN0
cjIpOwotCi0gIC8vIENvbXBhcmVzIGEgY29uc3QgY2hhciogdG8gYW4gc3RkOjpzdHJpbmcgdGhh
dCBoYXMgZGlmZmVyZW50Ci0gIC8vIGNvbnRlbnQKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
RVhQRUNUX0VRKCJUZXN0IiwgOjpzdGQ6OnN0cmluZygidGVzdCIpKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlwidGVzdFwiIik7Ci0KLSAgLy8gQ29tcGFyZXMgYW4gc3RkOjpzdHJpbmcg
dG8gYSBjaGFyKiB0aGF0IGhhcyBkaWZmZXJlbnQgY29udGVudC4KLSAgY2hhciogY29uc3QgcDEg
PSBjb25zdF9jYXN0PGNoYXIqPigiZm9vIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9FUSg6OnN0ZDo6c3RyaW5nKCJiYXIiKSwgcDEpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAicDEiKTsKLQotICAvLyBDb21wYXJlcyB0d28gc3RkOjpzdHJpbmdzIHRoYXQgaGF2ZSBk
aWZmZXJlbnQgY29udGVudHMsIG9uZSBvZgotICAvLyB3aGljaCBoYXZpbmcgYSBOVUwgY2hhcmFj
dGVyIGluIHRoZSBtaWRkbGUuICBUaGlzIHNob3VsZCBmYWlsLgotICBzdGF0aWMgOjpzdGQ6OnN0
cmluZyBzdHIzKHN0cjEpOwotICBzdHIzLmF0KDIpID0gJ1wwJzsKLSAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoQVNTRVJUX0VRKHN0cjEsIHN0cjMpLAotICAgICAgICAgICAgICAgICAgICAgICAiICBz
dHIzXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICIgICAgV2hpY2ggaXM6IFwiQSBcXDAgaW4g
dGhlIG1pZGRsZVwiIik7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfU1REX1dTVFJJTkcKLQotLy8gVGVz
dHMgdXNpbmcgOjpzdGQ6OndzdHJpbmcgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRF
U1QoRXFBc3NlcnRpb25UZXN0LCBTdGRXaWRlU3RyaW5nKSB7Ci0gIC8vIENvbXBhcmVzIHR3byBp
ZGVudGljYWwgc3RkOjp3c3RyaW5ncy4KLSAgY29uc3QgOjpzdGQ6OndzdHJpbmcgd3N0cjEoTCJB
ICogaW4gdGhlIG1pZGRsZSIpOwotICBjb25zdCA6OnN0ZDo6d3N0cmluZyB3c3RyMih3c3RyMSk7
Ci0gIEFTU0VSVF9FUSh3c3RyMSwgd3N0cjIpOwotCi0gIC8vIENvbXBhcmVzIGFuIHN0ZDo6d3N0
cmluZyB0byBhIGNvbnN0IHdjaGFyX3QqIHRoYXQgaGFzIGlkZW50aWNhbAotICAvLyBjb250ZW50
LgotICBjb25zdCB3Y2hhcl90IGtUZXN0WDgxMTlbXSA9IHsgJ1QnLCAnZScsICdzJywgJ3QnLCAw
eDgxMTksICdcMCcgfTsKLSAgRVhQRUNUX0VRKDo6c3RkOjp3c3RyaW5nKGtUZXN0WDgxMTkpLCBr
VGVzdFg4MTE5KTsKLQotICAvLyBDb21wYXJlcyBhbiBzdGQ6OndzdHJpbmcgdG8gYSBjb25zdCB3
Y2hhcl90KiB0aGF0IGhhcyBkaWZmZXJlbnQKLSAgLy8gY29udGVudC4KLSAgY29uc3Qgd2NoYXJf
dCBrVGVzdFg4MTIwW10gPSB7ICdUJywgJ2UnLCAncycsICd0JywgMHg4MTIwLCAnXDAnIH07Ci0g
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9FUSg6OnN0
ZDo6d3N0cmluZyhrVGVzdFg4MTE5KSwga1Rlc3RYODEyMCk7Ci0gIH0sICJrVGVzdFg4MTIwIik7
Ci0KLSAgLy8gQ29tcGFyZXMgdHdvIHN0ZDo6d3N0cmluZ3MgdGhhdCBoYXZlIGRpZmZlcmVudCBj
b250ZW50cywgb25lIG9mCi0gIC8vIHdoaWNoIGhhdmluZyBhIE5VTCBjaGFyYWN0ZXIgaW4gdGhl
IG1pZGRsZS4KLSAgOjpzdGQ6OndzdHJpbmcgd3N0cjMod3N0cjEpOwotICB3c3RyMy5hdCgyKSA9
IEwnXDAnOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEod3N0cjEsIHdzdHIz
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIndzdHIzIik7Ci0KLSAgLy8gQ29tcGFyZXMg
YSB3Y2hhcl90KiB0byBhbiBzdGQ6OndzdHJpbmcgdGhhdCBoYXMgZGlmZmVyZW50Ci0gIC8vIGNv
bnRlbnQuCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9F
UShjb25zdF9jYXN0PHdjaGFyX3QqPihMImZvbyIpLCA6OnN0ZDo6d3N0cmluZyhMImJhciIpKTsK
LSAgfSwgIiIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwotCi0jaWYg
R1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLS8vIFRlc3RzIHVzaW5nIDo6c3RyaW5nIHZhbHVlcyBp
biB7RVhQRUNUfEFTU0VSVH1fRVEuCi1URVNUKEVxQXNzZXJ0aW9uVGVzdCwgR2xvYmFsU3RyaW5n
KSB7Ci0gIC8vIENvbXBhcmVzIGEgY29uc3QgY2hhciogdG8gYSA6OnN0cmluZyB0aGF0IGhhcyBp
ZGVudGljYWwgY29udGVudC4KLSAgRVhQRUNUX0VRKCJUZXN0IiwgOjpzdHJpbmcoIlRlc3QiKSk7
Ci0KLSAgLy8gQ29tcGFyZXMgdHdvIGlkZW50aWNhbCA6OnN0cmluZ3MuCi0gIGNvbnN0IDo6c3Ry
aW5nIHN0cjEoIkEgKiBpbiB0aGUgbWlkZGxlIik7Ci0gIGNvbnN0IDo6c3RyaW5nIHN0cjIoc3Ry
MSk7Ci0gIEFTU0VSVF9FUShzdHIxLCBzdHIyKTsKLQotICAvLyBDb21wYXJlcyBhIDo6c3RyaW5n
IHRvIGEgY29uc3QgY2hhciogdGhhdCBoYXMgZGlmZmVyZW50IGNvbnRlbnQuCi0gIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUSg6OnN0cmluZygiVGVzdCIpLCAidGVzdCIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdCIpOwotCi0gIC8vIENvbXBhcmVzIHR3byA6OnN0
cmluZ3MgdGhhdCBoYXZlIGRpZmZlcmVudCBjb250ZW50cywgb25lIG9mIHdoaWNoCi0gIC8vIGhh
dmluZyBhIE5VTCBjaGFyYWN0ZXIgaW4gdGhlIG1pZGRsZS4KLSAgOjpzdHJpbmcgc3RyMyhzdHIx
KTsKLSAgc3RyMy5hdCgyKSA9ICdcMCc7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVD
VF9FUShzdHIxLCBzdHIzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cjMiKTsKLQot
ICAvLyBDb21wYXJlcyBhIDo6c3RyaW5nIHRvIGEgY2hhciogdGhhdCBoYXMgZGlmZmVyZW50IGNv
bnRlbnQuCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9F
USg6OnN0cmluZygiYmFyIiksIGNvbnN0X2Nhc3Q8Y2hhcio+KCJmb28iKSk7Ci0gIH0sICIiKTsK
LX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCi0jaWYgR1RFU1RfSEFT
X0dMT0JBTF9XU1RSSU5HCi0KLS8vIFRlc3RzIHVzaW5nIDo6d3N0cmluZyB2YWx1ZXMgaW4ge0VY
UEVDVHxBU1NFUlR9X0VRLgotVEVTVChFcUFzc2VydGlvblRlc3QsIEdsb2JhbFdpZGVTdHJpbmcp
IHsKLSAgLy8gQ29tcGFyZXMgdHdvIGlkZW50aWNhbCA6OndzdHJpbmdzLgotICBzdGF0aWMgY29u
c3QgOjp3c3RyaW5nIHdzdHIxKEwiQSAqIGluIHRoZSBtaWRkbGUiKTsKLSAgc3RhdGljIGNvbnN0
IDo6d3N0cmluZyB3c3RyMih3c3RyMSk7Ci0gIEVYUEVDVF9FUSh3c3RyMSwgd3N0cjIpOwotCi0g
IC8vIENvbXBhcmVzIGEgY29uc3Qgd2NoYXJfdCogdG8gYSA6OndzdHJpbmcgdGhhdCBoYXMgaWRl
bnRpY2FsIGNvbnRlbnQuCi0gIGNvbnN0IHdjaGFyX3Qga1Rlc3RYODExOVtdID0geyAnVCcsICdl
JywgJ3MnLCAndCcsIDB4ODExOSwgJ1wwJyB9OwotICBBU1NFUlRfRVEoa1Rlc3RYODExOSwgOjp3
c3RyaW5nKGtUZXN0WDgxMTkpKTsKLQotICAvLyBDb21wYXJlcyBhIGNvbnN0IHdjaGFyX3QqIHRv
IGEgOjp3c3RyaW5nIHRoYXQgaGFzIGRpZmZlcmVudAotICAvLyBjb250ZW50LgotICBjb25zdCB3
Y2hhcl90IGtUZXN0WDgxMjBbXSA9IHsgJ1QnLCAnZScsICdzJywgJ3QnLCAweDgxMjAsICdcMCcg
fTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgRVhQRUNUX0VR
KGtUZXN0WDgxMjAsIDo6d3N0cmluZyhrVGVzdFg4MTE5KSk7Ci0gIH0sICJUZXN0XFx4ODExOSIp
OwotCi0gIC8vIENvbXBhcmVzIGEgd2NoYXJfdCogdG8gYSA6OndzdHJpbmcgdGhhdCBoYXMgZGlm
ZmVyZW50IGNvbnRlbnQuCi0gIHdjaGFyX3QqIGNvbnN0IHAxID0gY29uc3RfY2FzdDx3Y2hhcl90
Kj4oTCJmb28iKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0VRKHAxLCA6Ondz
dHJpbmcoTCJiYXIiKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJiYXIiKTsKLQotICAv
LyBDb21wYXJlcyB0d28gOjp3c3RyaW5ncyB0aGF0IGhhdmUgZGlmZmVyZW50IGNvbnRlbnRzLCBv
bmUgb2Ygd2hpY2gKLSAgLy8gaGF2aW5nIGEgTlVMIGNoYXJhY3RlciBpbiB0aGUgbWlkZGxlLgot
ICBzdGF0aWMgOjp3c3RyaW5nIHdzdHIzOwotICB3c3RyMyA9IHdzdHIxOwotICB3c3RyMy5hdCgy
KSA9IEwnXDAnOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEod3N0cjEsIHdzdHIz
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIndzdHIzIik7Ci19Ci0KLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0KLS8vIFRlc3RzIHVzaW5nIGNoYXIgcG9pbnRlcnMgaW4g
e0VYUEVDVHxBU1NFUlR9X0VRLgotVEVTVChFcUFzc2VydGlvblRlc3QsIENoYXJQb2ludGVyKSB7
Ci0gIGNoYXIqIGNvbnN0IHAwID0gTlVMTDsKLSAgLy8gT25seSB3YXkgdG8gZ2V0IHRoZSBOb2tp
YSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0Ci0gIC8vIGlzIHRvIGhhdmUgYSBzZXBhcmF0
ZSB2b2lkKiB2YXJpYWJsZSBmaXJzdC4gUHV0dGluZwotICAvLyB0aGUgdHdvIGNhc3RzIG9uIHRo
ZSBzYW1lIGxpbmUgZG9lc24ndCB3b3JrLCBuZWl0aGVyIGRvZXMKLSAgLy8gYSBkaXJlY3QgQy1z
dHlsZSB0byBjaGFyKi4KLSAgdm9pZCogcHYxID0gKHZvaWQqKTB4MTIzNDsgIC8vIE5PTElOVAot
ICB2b2lkKiBwdjIgPSAodm9pZCopMHhBQkMwOyAgLy8gTk9MSU5UCi0gIGNoYXIqIGNvbnN0IHAx
ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocHYxKTsKLSAgY2hhciogY29uc3QgcDIgPSByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihwdjIpOwotICBBU1NFUlRfRVEocDEsIHAxKTsKLQotICBFWFBF
Q1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEocDAsIHAyKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgInAyIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShwMSwg
cDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAicDIiKTsKLSAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoQVNTRVJUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KDB4MTIzNCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNoYXIqPigweEFCQzAp
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIkFCQzAiKTsKLX0KLQotLy8gVGVzdHMgdXNpbmcg
d2NoYXJfdCBwb2ludGVycyBpbiB7RVhQRUNUfEFTU0VSVH1fRVEuCi1URVNUKEVxQXNzZXJ0aW9u
VGVzdCwgV2lkZUNoYXJQb2ludGVyKSB7Ci0gIHdjaGFyX3QqIGNvbnN0IHAwID0gTlVMTDsKLSAg
Ly8gT25seSB3YXkgdG8gZ2V0IHRoZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0
Ci0gIC8vIGlzIHRvIGhhdmUgYSBzZXBhcmF0ZSB2b2lkKiB2YXJpYWJsZSBmaXJzdC4gUHV0dGlu
ZwotICAvLyB0aGUgdHdvIGNhc3RzIG9uIHRoZSBzYW1lIGxpbmUgZG9lc24ndCB3b3JrLCBuZWl0
aGVyIGRvZXMKLSAgLy8gYSBkaXJlY3QgQy1zdHlsZSB0byBjaGFyKi4KLSAgdm9pZCogcHYxID0g
KHZvaWQqKTB4MTIzNDsgIC8vIE5PTElOVAotICB2b2lkKiBwdjIgPSAodm9pZCopMHhBQkMwOyAg
Ly8gTk9MSU5UCi0gIHdjaGFyX3QqIGNvbnN0IHAxID0gcmVpbnRlcnByZXRfY2FzdDx3Y2hhcl90
Kj4ocHYxKTsKLSAgd2NoYXJfdCogY29uc3QgcDIgPSByZWludGVycHJldF9jYXN0PHdjaGFyX3Qq
PihwdjIpOwotICBFWFBFQ1RfRVEocDAsIHAwKTsKLQotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RShFWFBFQ1RfRVEocDAsIHAyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInAyIik7Ci0g
IEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShwMSwgcDIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAicDIiKTsKLSAgdm9pZCogcHYzID0gKHZvaWQqKTB4MTIzNDsgIC8vIE5P
TElOVAotICB2b2lkKiBwdjQgPSAodm9pZCopMHhBQkMwOyAgLy8gTk9MSU5UCi0gIGNvbnN0IHdj
aGFyX3QqIHAzID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB3Y2hhcl90Kj4ocHYzKTsKLSAgY29u
c3Qgd2NoYXJfdCogcDQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHdjaGFyX3QqPihwdjQpOwot
ICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEocDMsIHA0KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgInA0Iik7Ci19Ci0KLS8vIFRlc3RzIHVzaW5nIG90aGVyIHR5cGVzIG9m
IHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1QoRXFBc3NlcnRpb25UZXN0LCBP
dGhlclBvaW50ZXIpIHsKLSAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PGNvbnN0IGludCo+KE5VTEwp
LAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4oTlVMTCkpOwotICBFWFBFQ1Rf
RkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4oTlVMTCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGlu
dCo+KDB4MTIzNCkpLAotICAgICAgICAgICAgICAgICAgICAgICAiMHgxMjM0Iik7Ci19Ci0KLS8v
IEEgY2xhc3MgdGhhdCBzdXBwb3J0cyBiaW5hcnkgY29tcGFyaXNvbiBvcGVyYXRvcnMgYnV0IG5v
dCBzdHJlYW1pbmcuCi1jbGFzcyBVbnByaW50YWJsZUNoYXIgewotIHB1YmxpYzoKLSAgZXhwbGlj
aXQgVW5wcmludGFibGVDaGFyKGNoYXIgY2gpIDogY2hhcl8oY2gpIHt9Ci0KLSAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IFVucHJpbnRhYmxlQ2hhciYgcmhzKSBjb25zdCB7Ci0gICAgcmV0dXJuIGNo
YXJfID09IHJocy5jaGFyXzsKLSAgfQotICBib29sIG9wZXJhdG9yIT0oY29uc3QgVW5wcmludGFi
bGVDaGFyJiByaHMpIGNvbnN0IHsKLSAgICByZXR1cm4gY2hhcl8gIT0gcmhzLmNoYXJfOwotICB9
Ci0gIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFVucHJpbnRhYmxlQ2hhciYgcmhzKSBjb25zdCB7Ci0g
ICAgcmV0dXJuIGNoYXJfIDwgcmhzLmNoYXJfOwotICB9Ci0gIGJvb2wgb3BlcmF0b3I8PShjb25z
dCBVbnByaW50YWJsZUNoYXImIHJocykgY29uc3QgewotICAgIHJldHVybiBjaGFyXyA8PSByaHMu
Y2hhcl87Ci0gIH0KLSAgYm9vbCBvcGVyYXRvcj4oY29uc3QgVW5wcmludGFibGVDaGFyJiByaHMp
IGNvbnN0IHsKLSAgICByZXR1cm4gY2hhcl8gPiByaHMuY2hhcl87Ci0gIH0KLSAgYm9vbCBvcGVy
YXRvcj49KGNvbnN0IFVucHJpbnRhYmxlQ2hhciYgcmhzKSBjb25zdCB7Ci0gICAgcmV0dXJuIGNo
YXJfID49IHJocy5jaGFyXzsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2hhciBjaGFyXzsKLX07Ci0K
LS8vIFRlc3RzIHRoYXQgQVNTRVJUX0VRKCkgYW5kIGZyaWVuZHMgZG9uJ3QgcmVxdWlyZSB0aGUg
YXJndW1lbnRzIHRvCi0vLyBiZSBwcmludGFibGUuCi1URVNUKENvbXBhcmlzb25Bc3NlcnRpb25U
ZXN0LCBBY2NlcHRzVW5wcmludGFibGVBcmdzKSB7Ci0gIGNvbnN0IFVucHJpbnRhYmxlQ2hhciB4
KCd4JyksIHkoJ3knKTsKLSAgQVNTRVJUX0VRKHgsIHgpOwotICBFWFBFQ1RfTkUoeCwgeSk7Ci0g
IEFTU0VSVF9MVCh4LCB5KTsKLSAgRVhQRUNUX0xFKHgsIHkpOwotICBBU1NFUlRfR1QoeSwgeCk7
Ci0gIEVYUEVDVF9HRSh4LCB4KTsKLQotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
RVEoeCwgeSksICIxLWJ5dGUgb2JqZWN0IDw3OD4iKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxV
UkUoRVhQRUNUX0VRKHgsIHkpLCAiMS1ieXRlIG9iamVjdCA8Nzk+Iik7Ci0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9MVCh5LCB5KSwgIjEtYnl0ZSBvYmplY3QgPDc5PiIpOwotICBF
WFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfR1QoeCwgeSksICIxLWJ5dGUgb2JqZWN0IDw3
OD4iKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0dUKHgsIHkpLCAiMS1ieXRl
IG9iamVjdCA8Nzk+Iik7Ci0KLSAgLy8gQ29kZSB0ZXN0ZWQgYnkgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUgY2Fubm90IHJlZmVyZW5jZSBsb2NhbAotICAvLyB2YXJpYWJsZXMsIHNvIHdlIGhhdmUgdG8g
d3JpdGUgVW5wcmludGFibGVDaGFyKCd4JykgaW5zdGVhZCBvZiB4LgotI2lmbmRlZiBfX0JPUkxB
TkRDX18KLSAgLy8gSUNFJ3MgaW4gQysrQnVpbGRlci4KLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUo
QVNTRVJUX05FKFVucHJpbnRhYmxlQ2hhcigneCcpLCBVbnByaW50YWJsZUNoYXIoJ3gnKSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICIxLWJ5dGUgb2JqZWN0IDw3OD4iKTsKLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoQVNTRVJUX0xFKFVucHJpbnRhYmxlQ2hhcigneScpLCBVbnByaW50YWJsZUNo
YXIoJ3gnKSksCi0gICAgICAgICAgICAgICAgICAgICAgICIxLWJ5dGUgb2JqZWN0IDw3OD4iKTsK
LSNlbmRpZgotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTEUoVW5wcmludGFibGVDaGFy
KCd5JyksIFVucHJpbnRhYmxlQ2hhcigneCcpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIjEt
Ynl0ZSBvYmplY3QgPDc5PiIpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfR0UoVW5w
cmludGFibGVDaGFyKCd4JyksIFVucHJpbnRhYmxlQ2hhcigneScpKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIjEtYnl0ZSBvYmplY3QgPDc4PiIpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShB
U1NFUlRfR0UoVW5wcmludGFibGVDaGFyKCd4JyksIFVucHJpbnRhYmxlQ2hhcigneScpKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIjEtYnl0ZSBvYmplY3QgPDc5PiIpOwotfQotCi0vLyBUZXN0
cyB0aGUgRlJJRU5EX1RFU1QgbWFjcm8uCi0KLS8vIFRoaXMgY2xhc3MgaGFzIGEgcHJpdmF0ZSBt
ZW1iZXIgd2Ugd2FudCB0byB0ZXN0LiAgV2Ugd2lsbCB0ZXN0IGl0Ci0vLyBib3RoIGluIGEgVEVT
VCBhbmQgaW4gYSBURVNUX0YuCi1jbGFzcyBGb28gewotIHB1YmxpYzoKLSAgRm9vKCkge30KLQot
IHByaXZhdGU6Ci0gIGludCBCYXIoKSBjb25zdCB7IHJldHVybiAxOyB9Ci0KLSAgLy8gRGVjbGFy
ZXMgdGhlIGZyaWVuZCB0ZXN0cyB0aGF0IGNhbiBhY2Nlc3MgdGhlIHByaXZhdGUgbWVtYmVyCi0g
IC8vIEJhcigpLgotICBGUklFTkRfVEVTVChGUklFTkRfVEVTVF9UZXN0LCBURVNUKTsKLSAgRlJJ
RU5EX1RFU1QoRlJJRU5EX1RFU1RfVGVzdDIsIFRFU1RfRik7Ci19OwotCi0vLyBUZXN0cyB0aGF0
IHRoZSBGUklFTkRfVEVTVCBkZWNsYXJhdGlvbiBhbGxvd3MgYSBURVNUIHRvIGFjY2VzcyBhCi0v
LyBjbGFzcydzIHByaXZhdGUgbWVtYmVycy4gIFRoaXMgc2hvdWxkIGNvbXBpbGUuCi1URVNUKEZS
SUVORF9URVNUX1Rlc3QsIFRFU1QpIHsKLSAgQVNTRVJUX0VRKDEsIEZvbygpLkJhcigpKTsKLX0K
LQotLy8gVGhlIGZpeHR1cmUgbmVlZGVkIHRvIHRlc3QgdXNpbmcgRlJJRU5EX1RFU1Qgd2l0aCBU
RVNUX0YuCi1jbGFzcyBGUklFTkRfVEVTVF9UZXN0MiA6IHB1YmxpYyBUZXN0IHsKLSBwcm90ZWN0
ZWQ6Ci0gIEZvbyBmb287Ci19OwotCi0vLyBUZXN0cyB0aGF0IHRoZSBGUklFTkRfVEVTVCBkZWNs
YXJhdGlvbiBhbGxvd3MgYSBURVNUX0YgdG8gYWNjZXNzIGEKLS8vIGNsYXNzJ3MgcHJpdmF0ZSBt
ZW1iZXJzLiAgVGhpcyBzaG91bGQgY29tcGlsZS4KLVRFU1RfRihGUklFTkRfVEVTVF9UZXN0Miwg
VEVTVF9GKSB7Ci0gIEFTU0VSVF9FUSgxLCBmb28uQmFyKCkpOwotfQotCi0vLyBUZXN0cyB0aGUg
bGlmZSBjeWNsZSBvZiBUZXN0IG9iamVjdHMuCi0KLS8vIFRoZSB0ZXN0IGZpeHR1cmUgZm9yIHRl
c3RpbmcgdGhlIGxpZmUgY3ljbGUgb2YgVGVzdCBvYmplY3RzLgotLy8KLS8vIFRoaXMgY2xhc3Mg
Y291bnRzIHRoZSBudW1iZXIgb2YgbGl2ZSB0ZXN0IG9iamVjdHMgdGhhdCB1c2VzIHRoaXMKLS8v
IGZpeHR1cmUuCi1jbGFzcyBUZXN0TGlmZUN5Y2xlVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwcm90
ZWN0ZWQ6Ci0gIC8vIENvbnN0cnVjdG9yLiAgSW5jcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRlc3Qg
b2JqZWN0cyB0aGF0IHVzZXMKLSAgLy8gdGhpcyBmaXh0dXJlLgotICBUZXN0TGlmZUN5Y2xlVGVz
dCgpIHsgY291bnRfKys7IH0KLQotICAvLyBEZXN0cnVjdG9yLiAgRGVjcmVtZW50cyB0aGUgbnVt
YmVyIG9mIHRlc3Qgb2JqZWN0cyB0aGF0IHVzZXMgdGhpcwotICAvLyBmaXh0dXJlLgotICB+VGVz
dExpZmVDeWNsZVRlc3QoKSB7IGNvdW50Xy0tOyB9Ci0KLSAgLy8gUmV0dXJucyB0aGUgbnVtYmVy
IG9mIGxpdmUgdGVzdCBvYmplY3RzIHRoYXQgdXNlcyB0aGlzIGZpeHR1cmUuCi0gIGludCBjb3Vu
dCgpIGNvbnN0IHsgcmV0dXJuIGNvdW50XzsgfQotCi0gcHJpdmF0ZToKLSAgc3RhdGljIGludCBj
b3VudF87Ci19OwotCi1pbnQgVGVzdExpZmVDeWNsZVRlc3Q6OmNvdW50XyA9IDA7Ci0KLS8vIFRl
c3RzIHRoZSBsaWZlIGN5Y2xlIG9mIHRlc3Qgb2JqZWN0cy4KLVRFU1RfRihUZXN0TGlmZUN5Y2xl
VGVzdCwgVGVzdDEpIHsKLSAgLy8gVGhlcmUgc2hvdWxkIGJlIG9ubHkgb25lIHRlc3Qgb2JqZWN0
IGluIHRoaXMgdGVzdCBjYXNlIHRoYXQncwotICAvLyBjdXJyZW50bHkgYWxpdmUuCi0gIEFTU0VS
VF9FUSgxLCBjb3VudCgpKTsKLX0KLQotLy8gVGVzdHMgdGhlIGxpZmUgY3ljbGUgb2YgdGVzdCBv
YmplY3RzLgotVEVTVF9GKFRlc3RMaWZlQ3ljbGVUZXN0LCBUZXN0MikgewotICAvLyBBZnRlciBU
ZXN0MSBpcyBkb25lIGFuZCBUZXN0MiBpcyBzdGFydGVkLCB0aGVyZSBzaG91bGQgc3RpbGwgYmUK
LSAgLy8gb25seSBvbmUgbGl2ZSB0ZXN0IG9iamVjdCwgYXMgdGhlIG9iamVjdCBmb3IgVGVzdDEg
c2hvdWxkJ3ZlIGJlZW4KLSAgLy8gZGVsZXRlZC4KLSAgQVNTRVJUX0VRKDEsIGNvdW50KCkpOwot
fQotCi19ICAvLyBuYW1lc3BhY2UKLQotLy8gVGVzdHMgdGhhdCB0aGUgY29weSBjb25zdHJ1Y3Rv
ciB3b3JrcyB3aGVuIGl0IGlzIE5PVCBvcHRpbWl6ZWQgYXdheSBieQotLy8gdGhlIGNvbXBpbGVy
LgotVEVTVChBc3NlcnRpb25SZXN1bHRUZXN0LCBDb3B5Q29uc3RydWN0b3JXb3Jrc1doZW5Ob3RP
cHRpbWllZCkgewotICAvLyBDaGVja3MgdGhhdCB0aGUgY29weSBjb25zdHJ1Y3RvciBkb2Vzbid0
IHRyeSB0byBkZXJlZmVyZW5jZSBOVUxMIHBvaW50ZXJzCi0gIC8vIGluIHRoZSBzb3VyY2Ugb2Jq
ZWN0LgotICBBc3NlcnRpb25SZXN1bHQgcjEgPSBBc3NlcnRpb25TdWNjZXNzKCk7Ci0gIEFzc2Vy
dGlvblJlc3VsdCByMiA9IHIxOwotICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgaXMgYWRkZWQgdG8g
cHJldmVudCB0aGUgY29tcGlsZXIgZnJvbSBvcHRpbWl6aW5nCi0gIC8vIGF3YXkgdGhlIGNvbnN0
cnVjdG9yIGNhbGwuCi0gIHIxIDw8ICJhYmMiOwotCi0gIEFzc2VydGlvblJlc3VsdCByMyA9IHIx
OwotICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8Ym9vbD4ocjMpLCBzdGF0aWNfY2FzdDxib29sPihy
MSkpOwotICBFWFBFQ1RfU1RSRVEoImFiYyIsIHIxLm1lc3NhZ2UoKSk7Ci19Ci0KLS8vIFRlc3Rz
IHRoYXQgQXNzZXJ0aW9uU3VjY2VzcyBhbmQgQXNzZXJ0aW9uRmFpbHVyZSBjb25zdHJ1Y3QKLS8v
IEFzc2VydGlvblJlc3VsdCBvYmplY3RzIGFzIGV4cGVjdGVkLgotVEVTVChBc3NlcnRpb25SZXN1
bHRUZXN0LCBDb25zdHJ1Y3Rpb25Xb3JrcykgewotICBBc3NlcnRpb25SZXN1bHQgcjEgPSBBc3Nl
cnRpb25TdWNjZXNzKCk7Ci0gIEVYUEVDVF9UUlVFKHIxKTsKLSAgRVhQRUNUX1NUUkVRKCIiLCBy
MS5tZXNzYWdlKCkpOwotCi0gIEFzc2VydGlvblJlc3VsdCByMiA9IEFzc2VydGlvblN1Y2Nlc3Mo
KSA8PCAiYWJjIjsKLSAgRVhQRUNUX1RSVUUocjIpOwotICBFWFBFQ1RfU1RSRVEoImFiYyIsIHIy
Lm1lc3NhZ2UoKSk7Ci0KLSAgQXNzZXJ0aW9uUmVzdWx0IHIzID0gQXNzZXJ0aW9uRmFpbHVyZSgp
OwotICBFWFBFQ1RfRkFMU0UocjMpOwotICBFWFBFQ1RfU1RSRVEoIiIsIHIzLm1lc3NhZ2UoKSk7
Ci0KLSAgQXNzZXJ0aW9uUmVzdWx0IHI0ID0gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8ICJkZWYiOwot
ICBFWFBFQ1RfRkFMU0UocjQpOwotICBFWFBFQ1RfU1RSRVEoImRlZiIsIHI0Lm1lc3NhZ2UoKSk7
Ci0KLSAgQXNzZXJ0aW9uUmVzdWx0IHI1ID0gQXNzZXJ0aW9uRmFpbHVyZShNZXNzYWdlKCkgPDwg
ImdoaSIpOwotICBFWFBFQ1RfRkFMU0UocjUpOwotICBFWFBFQ1RfU1RSRVEoImdoaSIsIHI1Lm1l
c3NhZ2UoKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIG5lZ2F0aW9uIGZsaXBzIHRoZSBwcmVk
aWNhdGUgcmVzdWx0IGJ1dCBrZWVwcyB0aGUgbWVzc2FnZS4KLVRFU1QoQXNzZXJ0aW9uUmVzdWx0
VGVzdCwgTmVnYXRpb25Xb3JrcykgewotICBBc3NlcnRpb25SZXN1bHQgcjEgPSBBc3NlcnRpb25T
dWNjZXNzKCkgPDwgImFiYyI7Ci0gIEVYUEVDVF9GQUxTRSghcjEpOwotICBFWFBFQ1RfU1RSRVEo
ImFiYyIsICghcjEpLm1lc3NhZ2UoKSk7Ci0KLSAgQXNzZXJ0aW9uUmVzdWx0IHIyID0gQXNzZXJ0
aW9uRmFpbHVyZSgpIDw8ICJkZWYiOwotICBFWFBFQ1RfVFJVRSghcjIpOwotICBFWFBFQ1RfU1RS
RVEoImRlZiIsICghcjIpLm1lc3NhZ2UoKSk7Ci19Ci0KLVRFU1QoQXNzZXJ0aW9uUmVzdWx0VGVz
dCwgU3RyZWFtaW5nV29ya3MpIHsKLSAgQXNzZXJ0aW9uUmVzdWx0IHIgPSBBc3NlcnRpb25TdWNj
ZXNzKCk7Ci0gIHIgPDwgImFiYyIgPDwgJ2QnIDw8IDAgPDwgdHJ1ZTsKLSAgRVhQRUNUX1NUUkVR
KCJhYmNkMHRydWUiLCByLm1lc3NhZ2UoKSk7Ci19Ci0KLVRFU1QoQXNzZXJ0aW9uUmVzdWx0VGVz
dCwgQ2FuU3RyZWFtT3N0cmVhbU1hbmlwdWxhdG9ycykgewotICBBc3NlcnRpb25SZXN1bHQgciA9
IEFzc2VydGlvblN1Y2Nlc3MoKTsKLSAgciA8PCAiRGF0YSIgPDwgc3RkOjplbmRsIDw8IHN0ZDo6
Zmx1c2ggPDwgc3RkOjplbmRzIDw8ICJXaWxsIGJlIHZpc2libGUiOwotICBFWFBFQ1RfU1RSRVEo
IkRhdGFcblxcMFdpbGwgYmUgdmlzaWJsZSIsIHIubWVzc2FnZSgpKTsKLX0KLQotLy8gVGhlIG5l
eHQgdGVzdCB1c2VzIGV4cGxpY2l0IGNvbnZlcnNpb24gb3BlcmF0b3JzIC0tIGEgQysrMTEgZmVh
dHVyZS4KLSNpZiBHVEVTVF9MQU5HX0NYWDExCi0KLVRFU1QoQXNzZXJ0aW9uUmVzdWx0VGVzdCwg
Q29uc3RydWN0aWJsZUZyb21Db250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9vbCkgewotICBzdHJ1
Y3QgRXhwbGljaXRseUNvbnZlcnRpYmxlVG9Cb29sIHsKLSAgICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QgeyByZXR1cm4gdmFsdWU7IH0KLSAgICBib29sIHZhbHVlOwotICB9OwotICBF
eHBsaWNpdGx5Q29udmVydGlibGVUb0Jvb2wgdjEgPSB7ZmFsc2V9OwotICBFeHBsaWNpdGx5Q29u
dmVydGlibGVUb0Jvb2wgdjIgPSB7dHJ1ZX07Ci0gIEVYUEVDVF9GQUxTRSh2MSk7Ci0gIEVYUEVD
VF9UUlVFKHYyKTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCi0KLXN0cnVjdCBD
b252ZXJ0aWJsZVRvQXNzZXJ0aW9uUmVzdWx0IHsKLSAgb3BlcmF0b3IgQXNzZXJ0aW9uUmVzdWx0
KCkgY29uc3QgeyByZXR1cm4gQXNzZXJ0aW9uUmVzdWx0KHRydWUpOyB9Ci19OwotCi1URVNUKEFz
c2VydGlvblJlc3VsdFRlc3QsIENvbnN0cnVjdGlibGVGcm9tSW1wbGljaXRseUNvbnZlcnRpYmxl
KSB7Ci0gIENvbnZlcnRpYmxlVG9Bc3NlcnRpb25SZXN1bHQgb2JqOwotICBFWFBFQ1RfVFJVRShv
YmopOwotfQotCi0vLyBUZXN0cyBzdHJlYW1pbmcgYSB1c2VyIHR5cGUgd2hvc2UgZGVmaW5pdGlv
biBhbmQgb3BlcmF0b3IgPDwgYXJlCi0vLyBib3RoIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgot
Y2xhc3MgQmFzZSB7Ci0gcHVibGljOgotICBleHBsaWNpdCBCYXNlKGludCBhbl94KSA6IHhfKGFu
X3gpIHt9Ci0gIGludCB4KCkgY29uc3QgeyByZXR1cm4geF87IH0KLSBwcml2YXRlOgotICBpbnQg
eF87Ci19Owotc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZSYgdmFsKSB7Ci0gIHJldHVybiBvcyA8PCB2
YWwueCgpOwotfQotc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZSogcG9pbnRlcikgewotICByZXR1cm4g
b3MgPDwgIigiIDw8IHBvaW50ZXItPngoKSA8PCAiKSI7Ci19Ci0KLVRFU1QoTWVzc2FnZVRlc3Qs
IENhblN0cmVhbVVzZXJUeXBlSW5HbG9iYWxOYW1lU3BhY2UpIHsKLSAgTWVzc2FnZSBtc2c7Ci0g
IEJhc2UgYSgxKTsKLQotICBtc2cgPDwgYSA8PCAmYTsgIC8vIFVzZXMgOjpvcGVyYXRvcjw8Lgot
ICBFWFBFQ1RfU1RSRVEoIjEoMSkiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7Ci19Ci0KLS8v
IFRlc3RzIHN0cmVhbWluZyBhIHVzZXIgdHlwZSB3aG9zZSBkZWZpbml0aW9uIGFuZCBvcGVyYXRv
cjw8IGFyZQotLy8gYm90aCBpbiBhbiB1bm5hbWVkIG5hbWVzcGFjZS4KLW5hbWVzcGFjZSB7Ci1j
bGFzcyBNeVR5cGVJblVubmFtZWROYW1lU3BhY2UgOiBwdWJsaWMgQmFzZSB7Ci0gcHVibGljOgot
ICBleHBsaWNpdCBNeVR5cGVJblVubmFtZWROYW1lU3BhY2UoaW50IGFuX3gpOiBCYXNlKGFuX3gp
IHt9Ci19Owotc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgTXlUeXBlSW5Vbm5hbWVkTmFtZVNwYWNlJiB2YWwp
IHsKLSAgcmV0dXJuIG9zIDw8IHZhbC54KCk7Ci19Ci1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwo
c3RkOjpvc3RyZWFtJiBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBNeVR5cGVJ
blVubmFtZWROYW1lU3BhY2UqIHBvaW50ZXIpIHsKLSAgcmV0dXJuIG9zIDw8ICIoIiA8PCBwb2lu
dGVyLT54KCkgPDwgIikiOwotfQotfSAgLy8gbmFtZXNwYWNlCi0KLVRFU1QoTWVzc2FnZVRlc3Qs
IENhblN0cmVhbVVzZXJUeXBlSW5Vbm5hbWVkTmFtZVNwYWNlKSB7Ci0gIE1lc3NhZ2UgbXNnOwot
ICBNeVR5cGVJblVubmFtZWROYW1lU3BhY2UgYSgxKTsKLQotICBtc2cgPDwgYSA8PCAmYTsgIC8v
IFVzZXMgPHVubmFtZWRfbmFtZXNwYWNlPjo6b3BlcmF0b3I8PC4KLSAgRVhQRUNUX1NUUkVRKCIx
KDEpIiwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwotfQotCi0vLyBUZXN0cyBzdHJlYW1pbmcg
YSB1c2VyIHR5cGUgd2hvc2UgZGVmaW5pdGlvbiBhbmQgb3BlcmF0b3I8PCBhcmUKLS8vIGJvdGgg
aW4gYSB1c2VyIG5hbWVzcGFjZS4KLW5hbWVzcGFjZSBuYW1lc3BhY2UxIHsKLWNsYXNzIE15VHlw
ZUluTmFtZVNwYWNlMSA6IHB1YmxpYyBCYXNlIHsKLSBwdWJsaWM6Ci0gIGV4cGxpY2l0IE15VHlw
ZUluTmFtZVNwYWNlMShpbnQgYW5feCk6IEJhc2UoYW5feCkge30KLX07Ci1zdGQ6Om9zdHJlYW0m
IG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBNeVR5cGVJbk5hbWVTcGFjZTEmIHZhbCkgewotICByZXR1cm4gb3MgPDwgdmFsLngoKTsK
LX0KLXN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IE15VHlwZUluTmFtZVNwYWNlMSogcG9pbnRlcikgewotICBy
ZXR1cm4gb3MgPDwgIigiIDw8IHBvaW50ZXItPngoKSA8PCAiKSI7Ci19Ci19ICAvLyBuYW1lc3Bh
Y2UgbmFtZXNwYWNlMQotCi1URVNUKE1lc3NhZ2VUZXN0LCBDYW5TdHJlYW1Vc2VyVHlwZUluVXNl
ck5hbWVTcGFjZSkgewotICBNZXNzYWdlIG1zZzsKLSAgbmFtZXNwYWNlMTo6TXlUeXBlSW5OYW1l
U3BhY2UxIGEoMSk7Ci0KLSAgbXNnIDw8IGEgPDwgJmE7ICAvLyBVc2VzIG5hbWVzcGFjZTE6Om9w
ZXJhdG9yPDwuCi0gIEVYUEVDVF9TVFJFUSgiMSgxKSIsIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigp
KTsKLX0KLQotLy8gVGVzdHMgc3RyZWFtaW5nIGEgdXNlciB0eXBlIHdob3NlIGRlZmluaXRpb24g
aXMgaW4gYSB1c2VyIG5hbWVzcGFjZQotLy8gYnV0IHdob3NlIG9wZXJhdG9yPDwgaXMgaW4gdGhl
IGdsb2JhbCBuYW1lc3BhY2UuCi1uYW1lc3BhY2UgbmFtZXNwYWNlMiB7Ci1jbGFzcyBNeVR5cGVJ
bk5hbWVTcGFjZTIgOiBwdWJsaWMgOjpCYXNlIHsKLSBwdWJsaWM6Ci0gIGV4cGxpY2l0IE15VHlw
ZUluTmFtZVNwYWNlMihpbnQgYW5feCk6IEJhc2UoYW5feCkge30KLX07Ci19ICAvLyBuYW1lc3Bh
Y2UgbmFtZXNwYWNlMgotc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZXNwYWNlMjo6TXlUeXBlSW5OYW1l
U3BhY2UyJiB2YWwpIHsKLSAgcmV0dXJuIG9zIDw8IHZhbC54KCk7Ci19Ci1zdGQ6Om9zdHJlYW0m
IG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBuYW1lc3BhY2UyOjpNeVR5cGVJbk5hbWVTcGFjZTIqIHBvaW50ZXIpIHsKLSAgcmV0dXJu
IG9zIDw8ICIoIiA8PCBwb2ludGVyLT54KCkgPDwgIikiOwotfQotCi1URVNUKE1lc3NhZ2VUZXN0
LCBDYW5TdHJlYW1Vc2VyVHlwZUluVXNlck5hbWVTcGFjZVdpdGhTdHJlYW1PcGVyYXRvckluR2xv
YmFsKSB7Ci0gIE1lc3NhZ2UgbXNnOwotICBuYW1lc3BhY2UyOjpNeVR5cGVJbk5hbWVTcGFjZTIg
YSgxKTsKLQotICBtc2cgPDwgYSA8PCAmYTsgIC8vIFVzZXMgOjpvcGVyYXRvcjw8LgotICBFWFBF
Q1RfU1RSRVEoIjEoMSkiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7Ci19Ci0KLS8vIFRlc3Rz
IHN0cmVhbWluZyBOVUxMIHBvaW50ZXJzIHRvIHRlc3Rpbmc6Ok1lc3NhZ2UuCi1URVNUKE1lc3Nh
Z2VUZXN0LCBOdWxsUG9pbnRlcnMpIHsKLSAgTWVzc2FnZSBtc2c7Ci0gIGNoYXIqIGNvbnN0IHAx
ID0gTlVMTDsKLSAgdW5zaWduZWQgY2hhciogY29uc3QgcDIgPSBOVUxMOwotICBpbnQqIHAzID0g
TlVMTDsKLSAgZG91YmxlKiBwNCA9IE5VTEw7Ci0gIGJvb2wqIHA1ID0gTlVMTDsKLSAgTWVzc2Fn
ZSogcDYgPSBOVUxMOwotCi0gIG1zZyA8PCBwMSA8PCBwMiA8PCBwMyA8PCBwNCA8PCBwNSA8PCBw
NjsKLSAgQVNTRVJUX1NUUkVRKCIobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCki
LAotICAgICAgICAgICAgICAgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwotfQotCi0vLyBUZXN0
cyBzdHJlYW1pbmcgd2lkZSBzdHJpbmdzIHRvIHRlc3Rpbmc6Ok1lc3NhZ2UuCi1URVNUKE1lc3Nh
Z2VUZXN0LCBXaWRlU3RyaW5ncykgewotICAvLyBTdHJlYW1zIGEgTlVMTCBvZiB0eXBlIGNvbnN0
IHdjaGFyX3QqLgotICBjb25zdCB3Y2hhcl90KiBjb25zdF93c3RyID0gTlVMTDsKLSAgRVhQRUNU
X1NUUkVRKCIobnVsbCkiLAotICAgICAgICAgICAgICAgKE1lc3NhZ2UoKSA8PCBjb25zdF93c3Ry
KS5HZXRTdHJpbmcoKS5jX3N0cigpKTsKLQotICAvLyBTdHJlYW1zIGEgTlVMTCBvZiB0eXBlIHdj
aGFyX3QqLgotICB3Y2hhcl90KiB3c3RyID0gTlVMTDsKLSAgRVhQRUNUX1NUUkVRKCIobnVsbCki
LAotICAgICAgICAgICAgICAgKE1lc3NhZ2UoKSA8PCB3c3RyKS5HZXRTdHJpbmcoKS5jX3N0cigp
KTsKLQotICAvLyBTdHJlYW1zIGEgbm9uLU5VTEwgb2YgdHlwZSBjb25zdCB3Y2hhcl90Ki4KLSAg
Y29uc3Rfd3N0ciA9IEwiYWJjXHg4MTE5IjsKLSAgRVhQRUNUX1NUUkVRKCJhYmNceGU4XHg4NFx4
OTkiLAotICAgICAgICAgICAgICAgKE1lc3NhZ2UoKSA8PCBjb25zdF93c3RyKS5HZXRTdHJpbmco
KS5jX3N0cigpKTsKLQotICAvLyBTdHJlYW1zIGEgbm9uLU5VTEwgb2YgdHlwZSB3Y2hhcl90Ki4K
LSAgd3N0ciA9IGNvbnN0X2Nhc3Q8d2NoYXJfdCo+KGNvbnN0X3dzdHIpOwotICBFWFBFQ1RfU1RS
RVEoImFiY1x4ZThceDg0XHg5OSIsCi0gICAgICAgICAgICAgICAoTWVzc2FnZSgpIDw8IHdzdHIp
LkdldFN0cmluZygpLmNfc3RyKCkpOwotfQotCi0KLS8vIFRoaXMgbGluZSB0ZXN0cyB0aGF0IHdl
IGNhbiBkZWZpbmUgdGVzdHMgaW4gdGhlIHRlc3RpbmcgbmFtZXNwYWNlLgotbmFtZXNwYWNlIHRl
c3RpbmcgewotCi0vLyBUZXN0cyB0aGUgVGVzdEluZm8gY2xhc3MuCi0KLWNsYXNzIFRlc3RJbmZv
VGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHN0YXRpYyBjb25zdCBUZXN0SW5m
byogR2V0VGVzdEluZm8oY29uc3QgY2hhciogdGVzdF9uYW1lKSB7Ci0gICAgY29uc3QgVGVzdENh
c2UqIGNvbnN0IHRlc3RfY2FzZSA9IEdldFVuaXRUZXN0SW1wbCgpLT4KLSAgICAgICAgR2V0VGVz
dENhc2UoIlRlc3RJbmZvVGVzdCIsICIiLCBOVUxMLCBOVUxMKTsKLQotICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgewotICAgICAgY29u
c3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oaSk7
Ci0gICAgICBpZiAoc3RyY21wKHRlc3RfbmFtZSwgdGVzdF9pbmZvLT5uYW1lKCkpID09IDApCi0g
ICAgICAgIHJldHVybiB0ZXN0X2luZm87Ci0gICAgfQotICAgIHJldHVybiBOVUxMOwotICB9Ci0K
LSAgc3RhdGljIGNvbnN0IFRlc3RSZXN1bHQqIEdldFRlc3RSZXN1bHQoCi0gICAgICBjb25zdCBU
ZXN0SW5mbyogdGVzdF9pbmZvKSB7Ci0gICAgcmV0dXJuIHRlc3RfaW5mby0+cmVzdWx0KCk7Ci0g
IH0KLX07Ci0KLS8vIFRlc3RzIFRlc3RJbmZvOjp0ZXN0X2Nhc2VfbmFtZSgpIGFuZCBUZXN0SW5m
bzo6bmFtZSgpLgotVEVTVF9GKFRlc3RJbmZvVGVzdCwgTmFtZXMpIHsKLSAgY29uc3QgVGVzdElu
Zm8qIGNvbnN0IHRlc3RfaW5mbyA9IEdldFRlc3RJbmZvKCJOYW1lcyIpOwotCi0gIEFTU0VSVF9T
VFJFUSgiVGVzdEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKLSAgQVNT
RVJUX1NUUkVRKCJOYW1lcyIsIHRlc3RfaW5mby0+bmFtZSgpKTsKLX0KLQotLy8gVGVzdHMgVGVz
dEluZm86OnJlc3VsdCgpLgotVEVTVF9GKFRlc3RJbmZvVGVzdCwgcmVzdWx0KSB7Ci0gIGNvbnN0
IFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPSBHZXRUZXN0SW5mbygicmVzdWx0Iik7Ci0KLSAg
Ly8gSW5pdGlhbGx5LCB0aGVyZSBpcyBubyBUZXN0UGFydFJlc3VsdCBmb3IgdGhpcyB0ZXN0Lgot
ICBBU1NFUlRfRVEoMCwgR2V0VGVzdFJlc3VsdCh0ZXN0X2luZm8pLT50b3RhbF9wYXJ0X2NvdW50
KCkpOwotCi0gIC8vIEFmdGVyIHRoZSBwcmV2aW91cyBhc3NlcnRpb24sIHRoZXJlIGlzIHN0aWxs
IG5vbmUuCi0gIEFTU0VSVF9FUSgwLCBHZXRUZXN0UmVzdWx0KHRlc3RfaW5mbyktPnRvdGFsX3Bh
cnRfY291bnQoKSk7Ci19Ci0KLSNkZWZpbmUgVkVSSUZZX0NPREVfTE9DQVRJT04gXAotICBjb25z
dCBpbnQgZXhwZWN0ZWRfbGluZSA9IF9fTElORV9fIC0gMTsgXAotICBjb25zdCBUZXN0SW5mbyog
Y29uc3QgdGVzdF9pbmZvID0gR2V0VW5pdFRlc3RJbXBsKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7
IFwKLSAgQVNTRVJUX1RSVUUodGVzdF9pbmZvKTsgXAotICBFWFBFQ1RfU1RSRVEoX19GSUxFX18s
IHRlc3RfaW5mby0+ZmlsZSgpKTsgXAotICBFWFBFQ1RfRVEoZXhwZWN0ZWRfbGluZSwgdGVzdF9p
bmZvLT5saW5lKCkpCi0KLVRFU1QoQ29kZUxvY2F0aW9uRm9yVEVTVCwgVmVyaWZ5KSB7Ci0gIFZF
UklGWV9DT0RFX0xPQ0FUSU9OOwotfQotCi1jbGFzcyBDb2RlTG9jYXRpb25Gb3JURVNURiA6IHB1
YmxpYyBUZXN0IHsKLX07Ci0KLVRFU1RfRihDb2RlTG9jYXRpb25Gb3JURVNURiwgVmVyaWZ5KSB7
Ci0gIFZFUklGWV9DT0RFX0xPQ0FUSU9OOwotfQotCi1jbGFzcyBDb2RlTG9jYXRpb25Gb3JURVNU
UCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPGludD4gewotfTsKLQotVEVTVF9QKENvZGVMb2NhdGlv
bkZvclRFU1RQLCBWZXJpZnkpIHsKLSAgVkVSSUZZX0NPREVfTE9DQVRJT047Ci19Ci0KLUlOU1RB
TlRJQVRFX1RFU1RfQ0FTRV9QKCwgQ29kZUxvY2F0aW9uRm9yVEVTVFAsIFZhbHVlcygwKSk7Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgQ29kZUxvY2F0aW9uRm9yVFlQRURURVNUIDog
cHVibGljIFRlc3QgewotfTsKLQotVFlQRURfVEVTVF9DQVNFKENvZGVMb2NhdGlvbkZvclRZUEVE
VEVTVCwgaW50KTsKLQotVFlQRURfVEVTVChDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1QsIFZlcmlm
eSkgewotICBWRVJJRllfQ09ERV9MT0NBVElPTjsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1jbGFzcyBDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQIDogcHVibGljIFRlc3QgewotfTsKLQot
VFlQRURfVEVTVF9DQVNFX1AoQ29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCk7Ci0KLVRZUEVEX1RF
U1RfUChDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQLCBWZXJpZnkpIHsKLSAgVkVSSUZZX0NPREVf
TE9DQVRJT047Ci19Ci0KLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKENvZGVMb2NhdGlvbkZv
clRZUEVEVEVTVFAsIFZlcmlmeSk7Ci0KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15
LCBDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQLCBpbnQpOwotCi0jdW5kZWYgVkVSSUZZX0NPREVf
TE9DQVRJT04KLQotLy8gVGVzdHMgc2V0dGluZyB1cCBhbmQgdGVhcmluZyBkb3duIGEgdGVzdCBj
YXNlLgotCi1jbGFzcyBTZXRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwcm90ZWN0
ZWQ6Ci0gIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgb25jZSBiZWZvcmUgdGhlIGZpcnN0IHRlc3Qg
aW4gdGhpcyB0ZXN0IGNhc2UKLSAgLy8gaXMgcnVuLgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RD
YXNlKCkgewotICAgIHByaW50ZigiU2V0dGluZyB1cCB0aGUgdGVzdCBjYXNlIC4gLiAuXG4iKTsK
LQotICAgIC8vIEluaXRpYWxpemVzIHNvbWUgc2hhcmVkIHJlc291cmNlLiAgSW4gdGhpcyBzaW1w
bGUgZXhhbXBsZSwgd2UKLSAgICAvLyBqdXN0IGNyZWF0ZSBhIEMgc3RyaW5nLiAgTW9yZSBjb21w
bGV4IHN0dWZmIGNhbiBiZSBkb25lIGlmCi0gICAgLy8gZGVzaXJlZC4KLSAgICBzaGFyZWRfcmVz
b3VyY2VfID0gIjEyMyI7Ci0KLSAgICAvLyBJbmNyZW1lbnRzIHRoZSBudW1iZXIgb2YgdGVzdCBj
YXNlcyB0aGF0IGhhdmUgYmVlbiBzZXQgdXAuCi0gICAgY291bnRlcl8rKzsKLQotICAgIC8vIFNl
dFVwVGVzdENhc2UoKSBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZS4KLSAgICBFWFBFQ1RfRVEo
MSwgY291bnRlcl8pOwotICB9Ci0KLSAgLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBvbmNlIGFmdGVy
IHRoZSBsYXN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2UgaXMKLSAgLy8gcnVuLgotICBzdGF0aWMg
dm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIHByaW50ZigiVGVhcmluZyBkb3duIHRoZSB0
ZXN0IGNhc2UgLiAuIC5cbiIpOwotCi0gICAgLy8gRGVjcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRl
c3QgY2FzZXMgdGhhdCBoYXZlIGJlZW4gc2V0IHVwLgotICAgIGNvdW50ZXJfLS07Ci0KLSAgICAv
LyBUZWFyRG93blRlc3RDYXNlKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2UuCi0gICAgRVhQ
RUNUX0VRKDAsIGNvdW50ZXJfKTsKLQotICAgIC8vIENsZWFucyB1cCB0aGUgc2hhcmVkIHJlc291
cmNlLgotICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBOVUxMOwotICB9Ci0KLSAgLy8gVGhpcyB3aWxs
IGJlIGNhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlLgotICB2aXJ0dWFs
IHZvaWQgU2V0VXAoKSB7Ci0gICAgLy8gU2V0VXBUZXN0Q2FzZSgpIHNob3VsZCBiZSBjYWxsZWQg
b25seSBvbmNlLCBzbyBjb3VudGVyXyBzaG91bGQKLSAgICAvLyBhbHdheXMgYmUgMS4KLSAgICBF
WFBFQ1RfRVEoMSwgY291bnRlcl8pOwotICB9Ci0KLSAgLy8gTnVtYmVyIG9mIHRlc3QgY2FzZXMg
dGhhdCBoYXZlIGJlZW4gc2V0IHVwLgotICBzdGF0aWMgaW50IGNvdW50ZXJfOwotCi0gIC8vIFNv
bWUgcmVzb3VyY2UgdG8gYmUgc2hhcmVkIGJ5IGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4K
LSAgc3RhdGljIGNvbnN0IGNoYXIqIHNoYXJlZF9yZXNvdXJjZV87Ci19OwotCi1pbnQgU2V0VXBU
ZXN0Q2FzZVRlc3Q6OmNvdW50ZXJfID0gMDsKLWNvbnN0IGNoYXIqIFNldFVwVGVzdENhc2VUZXN0
OjpzaGFyZWRfcmVzb3VyY2VfID0gTlVMTDsKLQotLy8gQSB0ZXN0IHRoYXQgdXNlcyB0aGUgc2hh
cmVkIHJlc291cmNlLgotVEVTVF9GKFNldFVwVGVzdENhc2VUZXN0LCBUZXN0MSkgewotICBFWFBF
Q1RfU1RSTkUoTlVMTCwgc2hhcmVkX3Jlc291cmNlXyk7Ci19Ci0KLS8vIEFub3RoZXIgdGVzdCB0
aGF0IHVzZXMgdGhlIHNoYXJlZCByZXNvdXJjZS4KLVRFU1RfRihTZXRVcFRlc3RDYXNlVGVzdCwg
VGVzdDIpIHsKLSAgRVhQRUNUX1NUUkVRKCIxMjMiLCBzaGFyZWRfcmVzb3VyY2VfKTsKLX0KLQot
Ly8gVGhlIEluaXRHb29nbGVUZXN0VGVzdCB0ZXN0IGNhc2UgdGVzdHMgdGVzdGluZzo6SW5pdEdv
b2dsZVRlc3QoKS4KLQotLy8gVGhlIEZsYWdzIHN0cnVjdCBzdG9yZXMgYSBjb3B5IG9mIGFsbCBH
b29nbGUgVGVzdCBmbGFncy4KLXN0cnVjdCBGbGFncyB7Ci0gIC8vIENvbnN0cnVjdHMgYSBGbGFn
cyBzdHJ1Y3Qgd2hlcmUgZWFjaCBmbGFnIGhhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KLSAgRmxhZ3Mo
KSA6IGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIGJyZWFrX29u
X2ZhaWx1cmUoZmFsc2UpLAotICAgICAgICAgICAgY2F0Y2hfZXhjZXB0aW9ucyhmYWxzZSksCi0g
ICAgICAgICAgICBkZWF0aF90ZXN0X3VzZV9mb3JrKGZhbHNlKSwKLSAgICAgICAgICAgIGZpbHRl
cigiIiksCi0gICAgICAgICAgICBsaXN0X3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIG91dHB1
dCgiIiksCi0gICAgICAgICAgICBwcmludF90aW1lKHRydWUpLAotICAgICAgICAgICAgcmFuZG9t
X3NlZWQoMCksCi0gICAgICAgICAgICByZXBlYXQoMSksCi0gICAgICAgICAgICBzaHVmZmxlKGZh
bHNlKSwKLSAgICAgICAgICAgIHN0YWNrX3RyYWNlX2RlcHRoKGtNYXhTdGFja1RyYWNlRGVwdGgp
LAotICAgICAgICAgICAgc3RyZWFtX3Jlc3VsdF90bygiIiksCi0gICAgICAgICAgICB0aHJvd19v
bl9mYWlsdXJlKGZhbHNlKSB7fQotCi0gIC8vIEZhY3RvcnkgbWV0aG9kcy4KLQotICAvLyBDcmVh
dGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0
cyBmbGFnIGhhcwotICAvLyB0aGUgZ2l2ZW4gdmFsdWUuCi0gIHN0YXRpYyBGbGFncyBBbHNvUnVu
RGlzYWJsZWRUZXN0cyhib29sIGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKSB7Ci0gICAgRmxhZ3Mg
ZmxhZ3M7Ci0gICAgZmxhZ3MuYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMgPSBhbHNvX3J1bl9kaXNh
YmxlZF90ZXN0czsKLSAgICByZXR1cm4gZmxhZ3M7Ci0gIH0KLQotICAvLyBDcmVhdGVzIGEgRmxh
Z3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9icmVha19vbl9mYWlsdXJlIGZsYWcgaGFzCi0gIC8v
IHRoZSBnaXZlbiB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIEJyZWFrT25GYWlsdXJlKGJvb2wgYnJl
YWtfb25fZmFpbHVyZSkgewotICAgIEZsYWdzIGZsYWdzOwotICAgIGZsYWdzLmJyZWFrX29uX2Zh
aWx1cmUgPSBicmVha19vbl9mYWlsdXJlOwotICAgIHJldHVybiBmbGFnczsKLSAgfQotCi0gIC8v
IENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnMg
ZmxhZyBoYXMKLSAgLy8gdGhlIGdpdmVuIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgQ2F0Y2hFeGNl
cHRpb25zKGJvb2wgY2F0Y2hfZXhjZXB0aW9ucykgewotICAgIEZsYWdzIGZsYWdzOwotICAgIGZs
YWdzLmNhdGNoX2V4Y2VwdGlvbnMgPSBjYXRjaF9leGNlcHRpb25zOwotICAgIHJldHVybiBmbGFn
czsKLSAgfQotCi0gIC8vIENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X2Rl
YXRoX3Rlc3RfdXNlX2ZvcmsgZmxhZyBoYXMKLSAgLy8gdGhlIGdpdmVuIHZhbHVlLgotICBzdGF0
aWMgRmxhZ3MgRGVhdGhUZXN0VXNlRm9yayhib29sIGRlYXRoX3Rlc3RfdXNlX2ZvcmspIHsKLSAg
ICBGbGFncyBmbGFnczsKLSAgICBmbGFncy5kZWF0aF90ZXN0X3VzZV9mb3JrID0gZGVhdGhfdGVz
dF91c2VfZm9yazsKLSAgICByZXR1cm4gZmxhZ3M7Ci0gIH0KLQotICAvLyBDcmVhdGVzIGEgRmxh
Z3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9maWx0ZXIgZmxhZyBoYXMgdGhlIGdpdmVuCi0gIC8v
IHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgRmlsdGVyKGNvbnN0IGNoYXIqIGZpbHRlcikgewotICAg
IEZsYWdzIGZsYWdzOwotICAgIGZsYWdzLmZpbHRlciA9IGZpbHRlcjsKLSAgICByZXR1cm4gZmxh
Z3M7Ci0gIH0KLQotICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9s
aXN0X3Rlc3RzIGZsYWcgaGFzIHRoZQotICAvLyBnaXZlbiB2YWx1ZS4KLSAgc3RhdGljIEZsYWdz
IExpc3RUZXN0cyhib29sIGxpc3RfdGVzdHMpIHsKLSAgICBGbGFncyBmbGFnczsKLSAgICBmbGFn
cy5saXN0X3Rlc3RzID0gbGlzdF90ZXN0czsKLSAgICByZXR1cm4gZmxhZ3M7Ci0gIH0KLQotICAv
LyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9vdXRwdXQgZmxhZyBoYXMg
dGhlIGdpdmVuCi0gIC8vIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgT3V0cHV0KGNvbnN0IGNoYXIq
IG91dHB1dCkgewotICAgIEZsYWdzIGZsYWdzOwotICAgIGZsYWdzLm91dHB1dCA9IG91dHB1dDsK
LSAgICByZXR1cm4gZmxhZ3M7Ci0gIH0KLQotICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdo
ZXJlIHRoZSBndGVzdF9wcmludF90aW1lIGZsYWcgaGFzIHRoZSBnaXZlbgotICAvLyB2YWx1ZS4K
LSAgc3RhdGljIEZsYWdzIFByaW50VGltZShib29sIHByaW50X3RpbWUpIHsKLSAgICBGbGFncyBm
bGFnczsKLSAgICBmbGFncy5wcmludF90aW1lID0gcHJpbnRfdGltZTsKLSAgICByZXR1cm4gZmxh
Z3M7Ci0gIH0KLQotICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9y
YW5kb21fc2VlZCBmbGFnIGhhcwotICAvLyB0aGUgZ2l2ZW4gdmFsdWUuCi0gIHN0YXRpYyBGbGFn
cyBSYW5kb21TZWVkKEludDMyIHJhbmRvbV9zZWVkKSB7Ci0gICAgRmxhZ3MgZmxhZ3M7Ci0gICAg
ZmxhZ3MucmFuZG9tX3NlZWQgPSByYW5kb21fc2VlZDsKLSAgICByZXR1cm4gZmxhZ3M7Ci0gIH0K
LQotICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9yZXBlYXQgZmxh
ZyBoYXMgdGhlIGdpdmVuCi0gIC8vIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgUmVwZWF0KEludDMy
IHJlcGVhdCkgewotICAgIEZsYWdzIGZsYWdzOwotICAgIGZsYWdzLnJlcGVhdCA9IHJlcGVhdDsK
LSAgICByZXR1cm4gZmxhZ3M7Ci0gIH0KLQotICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdo
ZXJlIHRoZSBndGVzdF9zaHVmZmxlIGZsYWcgaGFzCi0gIC8vIHRoZSBnaXZlbiB2YWx1ZS4KLSAg
c3RhdGljIEZsYWdzIFNodWZmbGUoYm9vbCBzaHVmZmxlKSB7Ci0gICAgRmxhZ3MgZmxhZ3M7Ci0g
ICAgZmxhZ3Muc2h1ZmZsZSA9IHNodWZmbGU7Ci0gICAgcmV0dXJuIGZsYWdzOwotICB9Ci0KLSAg
Ly8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgR1RFU1RfRkxBRyhzdGFja190cmFj
ZV9kZXB0aCkgZmxhZyBoYXMKLSAgLy8gdGhlIGdpdmVuIHZhbHVlLgotICBzdGF0aWMgRmxhZ3Mg
U3RhY2tUcmFjZURlcHRoKEludDMyIHN0YWNrX3RyYWNlX2RlcHRoKSB7Ci0gICAgRmxhZ3MgZmxh
Z3M7Ci0gICAgZmxhZ3Muc3RhY2tfdHJhY2VfZGVwdGggPSBzdGFja190cmFjZV9kZXB0aDsKLSAg
ICByZXR1cm4gZmxhZ3M7Ci0gIH0KLQotICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJl
IHRoZSBHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pIGZsYWcgaGFzCi0gIC8vIHRoZSBnaXZl
biB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIFN0cmVhbVJlc3VsdFRvKGNvbnN0IGNoYXIqIHN0cmVh
bV9yZXN1bHRfdG8pIHsKLSAgICBGbGFncyBmbGFnczsKLSAgICBmbGFncy5zdHJlYW1fcmVzdWx0
X3RvID0gc3RyZWFtX3Jlc3VsdF90bzsKLSAgICByZXR1cm4gZmxhZ3M7Ci0gIH0KLQotICAvLyBD
cmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF90aHJvd19vbl9mYWlsdXJlIGZs
YWcgaGFzCi0gIC8vIHRoZSBnaXZlbiB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIFRocm93T25GYWls
dXJlKGJvb2wgdGhyb3dfb25fZmFpbHVyZSkgewotICAgIEZsYWdzIGZsYWdzOwotICAgIGZsYWdz
LnRocm93X29uX2ZhaWx1cmUgPSB0aHJvd19vbl9mYWlsdXJlOwotICAgIHJldHVybiBmbGFnczsK
LSAgfQotCi0gIC8vIFRoZXNlIGZpZWxkcyBzdG9yZSB0aGUgZmxhZyB2YWx1ZXMuCi0gIGJvb2wg
YWxzb19ydW5fZGlzYWJsZWRfdGVzdHM7Ci0gIGJvb2wgYnJlYWtfb25fZmFpbHVyZTsKLSAgYm9v
bCBjYXRjaF9leGNlcHRpb25zOwotICBib29sIGRlYXRoX3Rlc3RfdXNlX2Zvcms7Ci0gIGNvbnN0
IGNoYXIqIGZpbHRlcjsKLSAgYm9vbCBsaXN0X3Rlc3RzOwotICBjb25zdCBjaGFyKiBvdXRwdXQ7
Ci0gIGJvb2wgcHJpbnRfdGltZTsKLSAgSW50MzIgcmFuZG9tX3NlZWQ7Ci0gIEludDMyIHJlcGVh
dDsKLSAgYm9vbCBzaHVmZmxlOwotICBJbnQzMiBzdGFja190cmFjZV9kZXB0aDsKLSAgY29uc3Qg
Y2hhciogc3RyZWFtX3Jlc3VsdF90bzsKLSAgYm9vbCB0aHJvd19vbl9mYWlsdXJlOwotfTsKLQot
Ly8gRml4dHVyZSBmb3IgdGVzdGluZyBJbml0R29vZ2xlVGVzdCgpLgotY2xhc3MgSW5pdEdvb2ds
ZVRlc3RUZXN0IDogcHVibGljIFRlc3QgewotIHByb3RlY3RlZDoKLSAgLy8gQ2xlYXJzIHRoZSBm
bGFncyBiZWZvcmUgZWFjaCB0ZXN0LgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgR1RF
U1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykgPSBmYWxzZTsKLSAgICBHVEVTVF9GTEFH
KGJyZWFrX29uX2ZhaWx1cmUpID0gZmFsc2U7Ci0gICAgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRp
b25zKSA9IGZhbHNlOwotICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykgPSBmYWxz
ZTsKLSAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSAiIjsKLSAgICBHVEVTVF9GTEFHKGxpc3RfdGVz
dHMpID0gZmFsc2U7Ci0gICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gIiI7Ci0gICAgR1RFU1RfRkxB
RyhwcmludF90aW1lKSA9IHRydWU7Ci0gICAgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkgPSAwOwot
ICAgIEdURVNUX0ZMQUcocmVwZWF0KSA9IDE7Ci0gICAgR1RFU1RfRkxBRyhzaHVmZmxlKSA9IGZh
bHNlOwotICAgIEdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpID0ga01heFN0YWNrVHJhY2VE
ZXB0aDsKLSAgICBHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pID0gIiI7Ci0gICAgR1RFU1Rf
RkxBRyh0aHJvd19vbl9mYWlsdXJlKSA9IGZhbHNlOwotICB9Ci0KLSAgLy8gQXNzZXJ0cyB0aGF0
IHR3byBuYXJyb3cgb3Igd2lkZSBzdHJpbmcgYXJyYXlzIGFyZSBlcXVhbC4KLSAgdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPgotICBzdGF0aWMgdm9pZCBBc3NlcnRTdHJpbmdBcnJheUVxKHNp
emVfdCBzaXplMSwgQ2hhclR5cGUqKiBhcnJheTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IHNpemUyLCBDaGFyVHlwZSoqIGFycmF5MikgewotICAgIEFTU0VSVF9F
UShzaXplMSwgc2l6ZTIpIDw8ICIgQXJyYXkgc2l6ZXMgZGlmZmVyZW50LiI7Ci0KLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSAhPSBzaXplMTsgaSsrKSB7Ci0gICAgICBBU1NFUlRfU1RSRVEoYXJy
YXkxW2ldLCBhcnJheTJbaV0pIDw8ICIgd2hlcmUgaSA9PSAiIDw8IGk7Ci0gICAgfQotICB9Ci0K
LSAgLy8gVmVyaWZpZXMgdGhhdCB0aGUgZmxhZyB2YWx1ZXMgbWF0Y2ggdGhlIGV4cGVjdGVkIHZh
bHVlcy4KLSAgc3RhdGljIHZvaWQgQ2hlY2tGbGFncyhjb25zdCBGbGFncyYgZXhwZWN0ZWQpIHsK
LSAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQuYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMsCi0gICAgICAg
ICAgICAgIEdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpKTsKLSAgICBFWFBFQ1Rf
RVEoZXhwZWN0ZWQuYnJlYWtfb25fZmFpbHVyZSwgR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJl
KSk7Ci0gICAgRVhQRUNUX0VRKGV4cGVjdGVkLmNhdGNoX2V4Y2VwdGlvbnMsIEdURVNUX0ZMQUco
Y2F0Y2hfZXhjZXB0aW9ucykpOwotICAgIEVYUEVDVF9FUShleHBlY3RlZC5kZWF0aF90ZXN0X3Vz
ZV9mb3JrLCBHVEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspKTsKLSAgICBFWFBFQ1RfU1RS
RVEoZXhwZWN0ZWQuZmlsdGVyLCBHVEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKSk7Ci0gICAgRVhQ
RUNUX0VRKGV4cGVjdGVkLmxpc3RfdGVzdHMsIEdURVNUX0ZMQUcobGlzdF90ZXN0cykpOwotICAg
IEVYUEVDVF9TVFJFUShleHBlY3RlZC5vdXRwdXQsIEdURVNUX0ZMQUcob3V0cHV0KS5jX3N0cigp
KTsKLSAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQucHJpbnRfdGltZSwgR1RFU1RfRkxBRyhwcmludF90
aW1lKSk7Ci0gICAgRVhQRUNUX0VRKGV4cGVjdGVkLnJhbmRvbV9zZWVkLCBHVEVTVF9GTEFHKHJh
bmRvbV9zZWVkKSk7Ci0gICAgRVhQRUNUX0VRKGV4cGVjdGVkLnJlcGVhdCwgR1RFU1RfRkxBRyhy
ZXBlYXQpKTsKLSAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQuc2h1ZmZsZSwgR1RFU1RfRkxBRyhzaHVm
ZmxlKSk7Ci0gICAgRVhQRUNUX0VRKGV4cGVjdGVkLnN0YWNrX3RyYWNlX2RlcHRoLCBHVEVTVF9G
TEFHKHN0YWNrX3RyYWNlX2RlcHRoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKGV4cGVjdGVkLnN0cmVh
bV9yZXN1bHRfdG8sCi0gICAgICAgICAgICAgICAgIEdURVNUX0ZMQUcoc3RyZWFtX3Jlc3VsdF90
bykuY19zdHIoKSk7Ci0gICAgRVhQRUNUX0VRKGV4cGVjdGVkLnRocm93X29uX2ZhaWx1cmUsIEdU
RVNUX0ZMQUcodGhyb3dfb25fZmFpbHVyZSkpOwotICB9Ci0KLSAgLy8gUGFyc2VzIGEgY29tbWFu
ZCBsaW5lIChzcGVjaWZpZWQgYnkgYXJnYzEgYW5kIGFyZ3YxKSwgdGhlbgotICAvLyB2ZXJpZmll
cyB0aGF0IHRoZSBmbGFnIHZhbHVlcyBhcmUgZXhwZWN0ZWQgYW5kIHRoYXQgdGhlCi0gIC8vIHJl
Y29nbml6ZWQgZmxhZ3MgYXJlIHJlbW92ZWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gIHN0YXRpYyB2b2lkIFRlc3RQYXJzaW5nRmxhZ3Mo
aW50IGFyZ2MxLCBjb25zdCBDaGFyVHlwZSoqIGFyZ3YxLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBhcmdjMiwgY29uc3QgQ2hhclR5cGUqKiBhcmd2MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBGbGFncyYgZXhwZWN0ZWQsIGJvb2wgc2hvdWxkX3By
aW50X2hlbHApIHsKLSAgICBjb25zdCBib29sIHNhdmVkX2hlbHBfZmxhZyA9IDo6dGVzdGluZzo6
aW50ZXJuYWw6OmdfaGVscF9mbGFnOwotICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OmdfaGVscF9m
bGFnID0gZmFsc2U7Ci0KLSNpZiBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OCi0gICAgQ2Fw
dHVyZVN0ZG91dCgpOwotI2VuZGlmCi0KLSAgICAvLyBQYXJzZXMgdGhlIGNvbW1hbmQgbGluZS4K
LSAgICBpbnRlcm5hbDo6UGFyc2VHb29nbGVUZXN0RmxhZ3NPbmx5KCZhcmdjMSwgY29uc3RfY2Fz
dDxDaGFyVHlwZSoqPihhcmd2MSkpOwotCi0jaWYgR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElP
TgotICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNhcHR1cmVkX3N0ZG91dCA9IEdldENhcHR1cmVkU3Rk
b3V0KCk7Ci0jZW5kaWYKLQotICAgIC8vIFZlcmlmaWVzIHRoZSBmbGFnIHZhbHVlcy4KLSAgICBD
aGVja0ZsYWdzKGV4cGVjdGVkKTsKLQotICAgIC8vIFZlcmlmaWVzIHRoYXQgdGhlIHJlY29nbml6
ZWQgZmxhZ3MgYXJlIHJlbW92ZWQgZnJvbSB0aGUgY29tbWFuZAotICAgIC8vIGxpbmUuCi0gICAg
QXNzZXJ0U3RyaW5nQXJyYXlFcShhcmdjMSArIDEsIGFyZ3YxLCBhcmdjMiArIDEsIGFyZ3YyKTsK
LQotICAgIC8vIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seSBzaG91bGQgbmVpdGhlciBzZXQgZ19o
ZWxwX2ZsYWcgbm9yIHByaW50IHRoZQotICAgIC8vIGhlbHAgbWVzc2FnZSBmb3IgdGhlIGZsYWdz
IGl0IHJlY29nbml6ZXMuCi0gICAgRVhQRUNUX0VRKHNob3VsZF9wcmludF9oZWxwLCA6OnRlc3Rp
bmc6OmludGVybmFsOjpnX2hlbHBfZmxhZyk7Ci0KLSNpZiBHVEVTVF9IQVNfU1RSRUFNX1JFRElS
RUNUSU9OCi0gICAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0ZWRfaGVscF9mcmFnbWVudCA9Ci0g
ICAgICAgICJUaGlzIHByb2dyYW0gY29udGFpbnMgdGVzdHMgd3JpdHRlbiB1c2luZyI7Ci0gICAg
aWYgKHNob3VsZF9wcmludF9oZWxwKSB7Ci0gICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKElzU3Vi
c3RyaW5nLCBleHBlY3RlZF9oZWxwX2ZyYWdtZW50LCBjYXB0dXJlZF9zdGRvdXQpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKElzTm90U3Vic3RyaW5nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9oZWxwX2ZyYWdtZW50LCBjYXB0dXJlZF9zdGRv
dXQpOwotICAgIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElPTgotCi0g
ICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Z19oZWxwX2ZsYWcgPSBzYXZlZF9oZWxwX2ZsYWc7Ci0g
IH0KLQotICAvLyBUaGlzIG1hY3JvIHdyYXBzIFRlc3RQYXJzaW5nRmxhZ3Mgcy50LiB0aGUgdXNl
ciBkb2Vzbid0IG5lZWQKLSAgLy8gdG8gc3BlY2lmeSB0aGUgYXJyYXkgc2l6ZXMuCi0KLSNkZWZp
bmUgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2MSwgYXJndjIsIGV4cGVjdGVkLCBzaG91
bGRfcHJpbnRfaGVscCkgXAotICBUZXN0UGFyc2luZ0ZsYWdzKHNpemVvZihhcmd2MSkvc2l6ZW9m
KCphcmd2MSkgLSAxLCBhcmd2MSwgXAotICAgICAgICAgICAgICAgICAgIHNpemVvZihhcmd2Mikv
c2l6ZW9mKCphcmd2MikgLSAxLCBhcmd2MiwgXAotICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
LCBzaG91bGRfcHJpbnRfaGVscCkKLX07Ci0KLS8vIFRlc3RzIHBhcnNpbmcgYW4gZW1wdHkgY29t
bWFuZCBsaW5lLgotVEVTVF9GKEluaXRHb29nbGVUZXN0VGVzdCwgRW1wdHkpIHsKLSAgY29uc3Qg
Y2hhciogYXJndltdID0gewotICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0gewotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3Ys
IGFyZ3YyLCBGbGFncygpLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcgYSBjb21tYW5k
IGxpbmUgdGhhdCBoYXMgbm8gZmxhZy4KLVRFU1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIE5vRmxh
ZykgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwK
LSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBO
VUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxh
Z3MoKSwgZmFsc2UpOwotfQotCi0vLyBUZXN0cyBwYXJzaW5nIGEgYmFkIC0tZ3Rlc3RfZmlsdGVy
IGZsYWcuCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBGaWx0ZXJCYWQpIHsKLSAgY29uc3Qg
Y2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXIiLAot
ICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhl
IiwKLSAgICAiLS1ndGVzdF9maWx0ZXIiLAotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNU
X1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCIiKSwgdHJ1ZSk7Ci19
Ci0KLS8vIFRlc3RzIHBhcnNpbmcgYW4gZW1wdHkgLS1ndGVzdF9maWx0ZXIgZmxhZy4KLVRFU1Rf
RihJbml0R29vZ2xlVGVzdFRlc3QsIEZpbHRlckVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPSIsCi0gICAgTlVMTAot
ICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5V
TEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFn
czo6RmlsdGVyKCIiKSwgZmFsc2UpOwotfQotCi0vLyBUZXN0cyBwYXJzaW5nIGEgbm9uLWVtcHR5
IC0tZ3Rlc3RfZmlsdGVyIGZsYWcuCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBGaWx0ZXJO
b25FbXB0eSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAg
ICItLWd0ZXN0X2ZpbHRlcj1hYmMiLAotICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBh
cmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZpbHRlcigiYWJjIiksIGZhbHNl
KTsKLX0KLQotLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUuCi1URVNU
X0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBCcmVha09uRmFpbHVyZVdpdGhvdXRWYWx1ZSkgewotICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X2JyZWFr
X29uX2ZhaWx1cmUiLAotICAgIE5VTEwKLX07Ci0KLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsK
LSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdURVNUX1RFU1RfUEFSU0lOR19G
TEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZSh0cnVlKSwgZmFsc2UpOwot
fQotCi0vLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wLgotVEVTVF9G
KEluaXRHb29nbGVUZXN0VGVzdCwgQnJlYWtPbkZhaWx1cmVGYWxzZV8wKSB7Ci0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtfb25fZmFp
bHVyZT0wIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAg
ICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdURVNUX1RFU1RfUEFSU0lOR19GTEFH
U18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZShmYWxzZSksIGZhbHNlKTsKLX0K
LQotLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmU9Zi4KLVRFU1RfRihJ
bml0R29vZ2xlVGVzdFRlc3QsIEJyZWFrT25GYWlsdXJlRmFsc2VfZikgewotICBjb25zdCBjaGFy
KiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X2JyZWFrX29uX2ZhaWx1
cmU9ZiIsCi0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAg
ImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJlYWtPbkZhaWx1cmUoZmFsc2UpLCBmYWxzZSk7Ci19Ci0K
LS8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPUYuCi1URVNUX0YoSW5p
dEdvb2dsZVRlc3RUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX0YpIHsKLSAgY29uc3QgY2hhciog
YXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJl
PUYiLAotICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJm
b28uZXhlIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhh
cmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFsc2UpOwotfQotCi0v
LyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlIGZsYWcgdGhhdCBoYXMg
YSAidHJ1ZSIKLS8vIGRlZmluaXRpb24uCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBCcmVh
a09uRmFpbHVyZVRydWUpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhl
IiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPTEiLAotICAgIE5VTEwKLSAgfTsKLQot
ICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07
Ci0KLSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFr
T25GYWlsdXJlKHRydWUpLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9j
YXRjaF9leGNlcHRpb25zLgotVEVTVF9GKEluaXRHb29nbGVUZXN0VGVzdCwgQ2F0Y2hFeGNlcHRp
b25zKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0t
Z3Rlc3RfY2F0Y2hfZXhjZXB0aW9ucyIsCi0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9U
RVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6Q2F0Y2hFeGNlcHRpb25zKHRy
dWUpLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9kZWF0aF90ZXN0X3Vz
ZV9mb3JrLgotVEVTVF9GKEluaXRHb29nbGVUZXN0VGVzdCwgRGVhdGhUZXN0VXNlRm9yaykgewot
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X2Rl
YXRoX3Rlc3RfdXNlX2ZvcmsiLAotICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkRlYXRoVGVzdFVzZUZvcmsodHJ1ZSks
IGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgaGF2aW5nIHRoZSBzYW1lIGZsYWcgdHdpY2Ugd2l0aCBk
aWZmZXJlbnQgdmFsdWVzLiAgVGhlCi0vLyBleHBlY3RlZCBiZWhhdmlvciBpcyB0aGF0IHRoZSBv
bmUgY29taW5nIGxhc3QgdGFrZXMgcHJlY2VkZW5jZS4KLVRFU1RfRihJbml0R29vZ2xlVGVzdFRl
c3QsIER1cGxpY2F0ZWRGbGFncykgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZv
by5leGUiLAotICAgICItLWd0ZXN0X2ZpbHRlcj1hIiwKLSAgICAiLS1ndGVzdF9maWx0ZXI9YiIs
Ci0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5l
eGUiLAotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3Ys
IGFyZ3YyLCBGbGFnczo6RmlsdGVyKCJiIiksIGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgaGF2aW5n
IGFuIHVucmVjb2duaXplZCBmbGFnIG9uIHRoZSBjb21tYW5kIGxpbmUuCi1URVNUX0YoSW5pdEdv
b2dsZVRlc3RUZXN0LCBVbnJlY29nbml6ZWRGbGFnKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSIsCi0gICAg
ImJhciIsICAvLyBVbnJlY29nbml6ZWQgYnkgR29vZ2xlIFRlc3QuCi0gICAgIi0tZ3Rlc3RfZmls
dGVyPWIiLAotICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICAiYmFyIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgRmxhZ3MgZmxhZ3M7
Ci0gIGZsYWdzLmJyZWFrX29uX2ZhaWx1cmUgPSB0cnVlOwotICBmbGFncy5maWx0ZXIgPSAiYiI7
Ci0gIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIGZsYWdzLCBmYWxzZSk7
Ci19Ci0KLS8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfbGlzdF90ZXN0cyBmbGFnCi1URVNUX0Yo
SW5pdEdvb2dsZVRlc3RUZXN0LCBMaXN0VGVzdHNGbGFnKSB7Ci0gICAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cyIsCi0g
ICAgICBOVUxMCi0gICAgfTsKLQotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAi
Zm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKLQotICAgIEdURVNUX1RFU1RfUEFSU0lOR19G
TEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHModHJ1ZSksIGZhbHNlKTsKLX0KLQot
Ly8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcgd2l0aCBhICJ0cnVlIiB2
YWx1ZQotVEVTVF9GKEluaXRHb29nbGVUZXN0VGVzdCwgTGlzdFRlc3RzVHJ1ZSkgewotICAgIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgICItLWd0ZXN0X2xp
c3RfdGVzdHM9MSIsCi0gICAgICBOVUxMCi0gICAgfTsKLQotICAgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKLQotICAgIEdURVNU
X1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHModHJ1ZSks
IGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcg
d2l0aCBhICJmYWxzZSIgdmFsdWUKLVRFU1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIExpc3RUZXN0
c0ZhbHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAot
ICAgICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0wIiwKLSAgICAgIE5VTEwKLSAgICB9OwotCi0gICAg
Y29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAg
ICB9OwotCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6
Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0
X2xpc3RfdGVzdHM9Zi4KLVRFU1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIExpc3RUZXN0c0ZhbHNl
X2YpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1n
dGVzdF9saXN0X3Rlc3RzPWYiLAotICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNl
KTsKLX0KLQotLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2xpc3RfdGVzdHM9Ri4KLVRFU1RfRihJ
bml0R29vZ2xlVGVzdFRlc3QsIExpc3RUZXN0c0ZhbHNlX0YpIHsKLSAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9saXN0X3Rlc3RzPUYiLAotICAg
IE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICBOVUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2
MiwgRmxhZ3M6Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgcGFyc2lu
ZyAtLWd0ZXN0X291dHB1dCAoaW52YWxpZCkuCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBP
dXRwdXRFbXB0eSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgICItLWd0ZXN0X291dHB1dCIsCi0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X291dHB1dCIsCi0gICAgTlVM
TAotICB9OwotCi0gIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdz
KCksIHRydWUpOwotfQotCi0vLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbAotVEVT
VF9GKEluaXRHb29nbGVUZXN0VGVzdCwgT3V0cHV0WG1sKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfb3V0cHV0PXhtbCIsCi0gICAgTlVM
TAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAg
IE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBG
bGFnczo6T3V0cHV0KCJ4bWwiKSwgZmFsc2UpOwotfQotCi0vLyBUZXN0cyBwYXJzaW5nIC0tZ3Rl
c3Rfb3V0cHV0PXhtbDpmaWxlCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBPdXRwdXRYbWxG
aWxlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0t
Z3Rlc3Rfb3V0cHV0PXhtbDpmaWxlIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdURVNUX1RF
U1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpPdXRwdXQoInhtbDpmaWxlIiks
IGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X291dHB1dD14bWw6ZGlyZWN0
b3J5L3BhdGgvCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBPdXRwdXRYbWxEaXJlY3Rvcnkp
IHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9vdXRwdXQ9eG1sOmRpcmVjdG9yeS9wYXRoLyIsCi0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKLQotICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZsYWdzOjpPdXRwdXQoInhtbDpkaXJlY3RvcnkvcGF0aC8iKSwgZmFsc2UpOwot
fQotCi0vLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X3ByaW50X3RpbWUgZmxhZwotVEVTVF9GKElu
aXRHb29nbGVUZXN0VGVzdCwgUHJpbnRUaW1lRmxhZykgewotICAgIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgICItLWd0ZXN0X3ByaW50X3RpbWUiLAotICAg
ICAgTlVMTAotICAgIH07Ci0KLSAgICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICAgImZv
by5leGUiLAotICAgICAgTlVMTAotICAgIH07Ci0KLSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxB
R1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKHRydWUpLCBmYWxzZSk7Ci19Ci0KLS8v
IFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfcHJpbnRfdGltZSBmbGFnIHdpdGggYSAidHJ1ZSIgdmFs
dWUKLVRFU1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIFByaW50VGltZVRydWUpIHsKLSAgICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmlu
dF90aW1lPTEiLAotICAgICAgTlVMTAotICAgIH07Ci0KLSAgICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0gewotICAgICAgImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07Ci0KLSAgICBHVEVTVF9U
RVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKHRydWUpLCBm
YWxzZSk7Ci19Ci0KLS8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfcHJpbnRfdGltZSBmbGFnIHdp
dGggYSAiZmFsc2UiIHZhbHVlCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBQcmludFRpbWVG
YWxzZSkgewotICAgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAg
ICAgICItLWd0ZXN0X3ByaW50X3RpbWU9MCIsCi0gICAgICBOVUxMCi0gICAgfTsKLQotICAgIGNv
bnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAg
fTsKLQotICAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpQ
cmludFRpbWUoZmFsc2UpLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9w
cmludF90aW1lPWYuCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBQcmludFRpbWVGYWxzZV9m
KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rl
c3RfcHJpbnRfdGltZT1mIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdURVNUX1RFU1RfUEFS
U0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUoZmFsc2UpLCBmYWxzZSk7
Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9wcmludF90aW1lPUYuCi1URVNUX0YoSW5p
dEdvb2dsZVRlc3RUZXN0LCBQcmludFRpbWVGYWxzZV9GKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcHJpbnRfdGltZT1GIiwKLSAgICBO
VUxMCi0gIH07Ci0KLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgTlVMTAotICB9OwotCi0gIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIs
IEZsYWdzOjpQcmludFRpbWUoZmFsc2UpLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcg
LS1ndGVzdF9yYW5kb21fc2VlZD1udW1iZXIKLVRFU1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIFJh
bmRvbVNlZWQpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICAiLS1ndGVzdF9yYW5kb21fc2VlZD0xMDAwIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdU
RVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpSYW5kb21TZWVkKDEw
MDApLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9yZXBlYXQ9bnVtYmVy
Ci1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBSZXBlYXQpIHsKLSAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9yZXBlYXQ9MTAwMCIsCi0gICAg
TlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3Yy
LCBGbGFnczo6UmVwZWF0KDEwMDApLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIGhhdmluZyBhIC0t
Z3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMgZmxhZwotVEVTVF9GKEluaXRHb29nbGVUZXN0
VGVzdCwgQWxzb1J1bkRpc2FibGVkVGVzdHNGbGFnKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltd
ID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRf
dGVzdHMiLAotICAgICAgTlVMTAotICAgIH07Ci0KLSAgICBjb25zdCBjaGFyKiBhcmd2MltdID0g
ewotICAgICAgImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07Ci0KLSAgICBHVEVTVF9URVNU
X1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRlc3RzKHRydWUpLCBmYWxzZSk7Ci19Ci0KLS8vIFRl
c3RzIGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMgZmxhZyB3aXRoIGEg
InRydWUiIHZhbHVlCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBBbHNvUnVuRGlzYWJsZWRU
ZXN0c1RydWUpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIs
Ci0gICAgICAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cz0xIiwKLSAgICAgIE5VTEwK
LSAgICB9OwotCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwK
LSAgICAgIE5VTEwKLSAgICB9OwotCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2
LCBhcmd2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOjpBbHNvUnVuRGlz
YWJsZWRUZXN0cyh0cnVlKSwgZmFsc2UpOwotfQotCi0vLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0
X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKLVRFU1Rf
RihJbml0R29vZ2xlVGVzdFRlc3QsIEFsc29SdW5EaXNhYmxlZFRlc3RzRmFsc2UpIHsKLSAgICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9h
bHNvX3J1bl9kaXNhYmxlZF90ZXN0cz0wIiwKLSAgICAgIE5VTEwKLSAgICB9OwotCi0gICAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9
OwotCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyhmYWxzZSks
IGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3NodWZmbGUuCi1URVNUX0Yo
SW5pdEdvb2dsZVRlc3RUZXN0LCBTaHVmZmxlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc2h1ZmZsZSIsCi0gICAg
TlVMTAotfTsKLQotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICBOVUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2Miwg
RmxhZ3M6OlNodWZmbGUodHJ1ZSksIGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgcGFyc2luZyAtLWd0
ZXN0X3NodWZmbGU9MC4KLVRFU1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIFNodWZmbGVGYWxzZV8w
KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rl
c3Rfc2h1ZmZsZT0wIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKGZhbHNlKSwgZmFsc2UpOwotfQot
Ci0vLyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVzdF9zaHVmZmxlIGZsYWcgdGhhdCBoYXMgYSAidHJ1
ZSIKLS8vIGRlZmluaXRpb24uCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBTaHVmZmxlVHJ1
ZSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0
ZXN0X3NodWZmbGU9MSIsCi0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJ
TkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6U2h1ZmZsZSh0cnVlKSwgZmFsc2UpOwotfQot
Ci0vLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGg9bnVtYmVyLgotVEVT
VF9GKEluaXRHb29nbGVUZXN0VGVzdCwgU3RhY2tUcmFjZURlcHRoKSB7Ci0gIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVw
dGg9NSIsCi0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAg
ImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6U3RhY2tUcmFjZURlcHRoKDUpLCBmYWxzZSk7Ci19Ci0KLVRF
U1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIFN0cmVhbVJlc3VsdFRvKSB7Ci0gIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RyZWFtX3Jlc3VsdF90
bz1sb2NhbGhvc3Q6MTIzNCIsCi0gICAgTlVMTAotICB9OwotCi0gIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKLQotICBHVEVTVF9URVNUX1BB
UlNJTkdfRkxBR1NfKAotICAgICAgYXJndiwgYXJndjIsIEZsYWdzOjpTdHJlYW1SZXN1bHRUbygi
bG9jYWxob3N0OjEyMzQiKSwgZmFsc2UpOwotfQotCi0vLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rf
dGhyb3dfb25fZmFpbHVyZS4KLVRFU1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIFRocm93T25GYWls
dXJlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSIsCi0gICAgTlVMTAotfTsKLQotICBj
b25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07Ci0K
LSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlRocm93T25G
YWlsdXJlKHRydWUpLCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF90aHJv
d19vbl9mYWlsdXJlPTAuCi1URVNUX0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBUaHJvd09uRmFpbHVy
ZUZhbHNlXzApIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICAiLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlPTAiLAotICAgIE5VTEwKLSAgfTsKLQotICBjb25z
dCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAg
R1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlRocm93T25GYWls
dXJlKGZhbHNlKSwgZmFsc2UpOwotfQotCi0vLyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVzdF90aHJv
d19vbl9mYWlsdXJlIGZsYWcgdGhhdCBoYXMgYSAidHJ1ZSIKLS8vIGRlZmluaXRpb24uCi1URVNU
X0YoSW5pdEdvb2dsZVRlc3RUZXN0LCBUaHJvd09uRmFpbHVyZVRydWUpIHsKLSAgY29uc3QgY2hh
ciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF90aHJvd19vbl9mYWls
dXJlPTEiLAotICAgIE5VTEwKLSAgfTsKLQotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07Ci0KLSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdT
Xyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlRocm93T25GYWlsdXJlKHRydWUpLCBmYWxzZSk7Ci19Ci0K
LSNpZiBHVEVTVF9PU19XSU5ET1dTCi0vLyBUZXN0cyBwYXJzaW5nIHdpZGUgc3RyaW5ncy4KLVRF
U1RfRihJbml0R29vZ2xlVGVzdFRlc3QsIFdpZGVTdHJpbmdzKSB7Ci0gIGNvbnN0IHdjaGFyX3Qq
IGFyZ3ZbXSA9IHsKLSAgICBMImZvby5leGUiLAotICAgIEwiLS1ndGVzdF9maWx0ZXI9Rm9vKiIs
Ci0gICAgTCItLWd0ZXN0X2xpc3RfdGVzdHM9MSIsCi0gICAgTCItLWd0ZXN0X2JyZWFrX29uX2Zh
aWx1cmUiLAotICAgIEwiLS1ub25fZ3Rlc3RfZmxhZyIsCi0gICAgTlVMTAotICB9OwotCi0gIGNv
bnN0IHdjaGFyX3QqIGFyZ3YyW10gPSB7Ci0gICAgTCJmb28uZXhlIiwKLSAgICBMIi0tbm9uX2d0
ZXN0X2ZsYWciLAotICAgIE5VTEwKLSAgfTsKLQotICBGbGFncyBleHBlY3RlZF9mbGFnczsKLSAg
ZXhwZWN0ZWRfZmxhZ3MuYnJlYWtfb25fZmFpbHVyZSA9IHRydWU7Ci0gIGV4cGVjdGVkX2ZsYWdz
LmZpbHRlciA9ICJGb28qIjsKLSAgZXhwZWN0ZWRfZmxhZ3MubGlzdF90ZXN0cyA9IHRydWU7Ci0K
LSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgZXhwZWN0ZWRfZmxhZ3Ms
IGZhbHNlKTsKLX0KLSMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKLQotI2lmIEdURVNUX1VT
RV9PV05fRkxBR0ZJTEVfRkxBR18KLWNsYXNzIEZsYWdmaWxlVGVzdCA6IHB1YmxpYyBJbml0R29v
Z2xlVGVzdFRlc3QgewotIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIElu
aXRHb29nbGVUZXN0VGVzdDo6U2V0VXAoKTsKLQotICAgIHRlc3RkYXRhX3BhdGhfLlNldChpbnRl
cm5hbDo6RmlsZVBhdGgoCi0gICAgICAgIHRlc3Rpbmc6OlRlbXBEaXIoKSArIGludGVybmFsOjpH
ZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKS5zdHJpbmcoKSArCi0gICAgICAgICJfZmxhZ2ZpbGVf
dGVzdCIpKTsKLSAgICB0ZXN0aW5nOjppbnRlcm5hbDo6cG9zaXg6OlJtRGlyKHRlc3RkYXRhX3Bh
dGhfLmNfc3RyKCkpOwotICAgIEVYUEVDVF9UUlVFKHRlc3RkYXRhX3BhdGhfLkNyZWF0ZUZvbGRl
cigpKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICB0ZXN0aW5nOjpp
bnRlcm5hbDo6cG9zaXg6OlJtRGlyKHRlc3RkYXRhX3BhdGhfLmNfc3RyKCkpOwotICAgIEluaXRH
b29nbGVUZXN0VGVzdDo6VGVhckRvd24oKTsKLSAgfQotCi0gIGludGVybmFsOjpGaWxlUGF0aCBD
cmVhdGVGbGFnZmlsZShjb25zdCBjaGFyKiBjb250ZW50cykgewotICAgIGludGVybmFsOjpGaWxl
UGF0aCBmaWxlX3BhdGgoaW50ZXJuYWw6OkZpbGVQYXRoOjpHZW5lcmF0ZVVuaXF1ZUZpbGVOYW1l
KAotICAgICAgICB0ZXN0ZGF0YV9wYXRoXywgaW50ZXJuYWw6OkZpbGVQYXRoKCJ1bmlxdWUiKSwg
InR4dCIpKTsKLSAgICBGSUxFKiBmID0gdGVzdGluZzo6aW50ZXJuYWw6OnBvc2l4OjpGT3Blbihm
aWxlX3BhdGguY19zdHIoKSwgInciKTsKLSAgICBmcHJpbnRmKGYsICIlcyIsIGNvbnRlbnRzKTsK
LSAgICBmY2xvc2UoZik7Ci0gICAgcmV0dXJuIGZpbGVfcGF0aDsKLSAgfQotCi0gcHJpdmF0ZToK
LSAgaW50ZXJuYWw6OkZpbGVQYXRoIHRlc3RkYXRhX3BhdGhfOwotfTsKLQotLy8gVGVzdHMgYW4g
ZW1wdHkgZmxhZ2ZpbGUuCi1URVNUX0YoRmxhZ2ZpbGVUZXN0LCBFbXB0eSkgewotICBpbnRlcm5h
bDo6RmlsZVBhdGggZmxhZ2ZpbGVfcGF0aChDcmVhdGVGbGFnZmlsZSgiIikpOwotICBzdGQ6OnN0
cmluZyBmbGFnZmlsZV9mbGFnID0KLSAgICAgIHN0ZDo6c3RyaW5nKCItLSIgR1RFU1RfRkxBR19Q
UkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIoKTsKLQotICBjb25zdCBj
aGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdmaWxlX2ZsYWcuY19zdHIo
KSwKLSAgICBOVUxMCi0gIH07Ci0KLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9v
LmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJn
diwgYXJndjIsIEZsYWdzKCksIGZhbHNlKTsKLX0KLQotLy8gVGVzdHMgcGFzc2luZyBhIG5vbi1l
bXB0eSAtLWd0ZXN0X2ZpbHRlciBmbGFnIHZpYSAtLWd0ZXN0X2ZsYWdmaWxlLgotVEVTVF9GKEZs
YWdmaWxlVGVzdCwgRmlsdGVyTm9uRW1wdHkpIHsKLSAgaW50ZXJuYWw6OkZpbGVQYXRoIGZsYWdm
aWxlX3BhdGgoQ3JlYXRlRmxhZ2ZpbGUoCi0gICAgICAiLS0iICBHVEVTVF9GTEFHX1BSRUZJWF8g
ICJmaWx0ZXI9YWJjIikpOwotICBzdGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KLSAgICAgIHN0
ZDo6c3RyaW5nKCItLSIgR1RFU1RfRkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxl
X3BhdGguY19zdHIoKTsKLQotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUi
LAotICAgIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwKLSAgICBOVUxMCi0gIH07Ci0KLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OwotCi0gIEdU
RVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpGaWx0ZXIoImFiYyIp
LCBmYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHBhc3Npbmcgc2V2ZXJhbCBmbGFncyB2aWEgLS1ndGVz
dF9mbGFnZmlsZS4KLVRFU1RfRihGbGFnZmlsZVRlc3QsIFNldmVyYWxGbGFncykgewotICBpbnRl
cm5hbDo6RmlsZVBhdGggZmxhZ2ZpbGVfcGF0aChDcmVhdGVGbGFnZmlsZSgKLSAgICAgICItLSIg
IEdURVNUX0ZMQUdfUFJFRklYXyAgImZpbHRlcj1hYmNcbiIKLSAgICAgICItLSIgIEdURVNUX0ZM
QUdfUFJFRklYXyAgImJyZWFrX29uX2ZhaWx1cmVcbiIKLSAgICAgICItLSIgIEdURVNUX0ZMQUdf
UFJFRklYXyAgImxpc3RfdGVzdHMiKSk7Ci0gIHN0ZDo6c3RyaW5nIGZsYWdmaWxlX2ZsYWcgPQot
ICAgICAgc3RkOjpzdHJpbmcoIi0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImZsYWdmaWxlPSIpICsg
ZmxhZ2ZpbGVfcGF0aC5jX3N0cigpOwotCi0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAi
Zm9vLmV4ZSIsCi0gICAgZmxhZ2ZpbGVfZmxhZy5jX3N0cigpLAotICAgIE5VTEwKLSAgfTsKLQot
ICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07
Ci0KLSAgRmxhZ3MgZXhwZWN0ZWRfZmxhZ3M7Ci0gIGV4cGVjdGVkX2ZsYWdzLmJyZWFrX29uX2Zh
aWx1cmUgPSB0cnVlOwotICBleHBlY3RlZF9mbGFncy5maWx0ZXIgPSAiYWJjIjsKLSAgZXhwZWN0
ZWRfZmxhZ3MubGlzdF90ZXN0cyA9IHRydWU7Ci0KLSAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdT
Xyhhcmd2LCBhcmd2MiwgZXhwZWN0ZWRfZmxhZ3MsIGZhbHNlKTsKLX0KLSNlbmRpZiAgLy8gR1RF
U1RfVVNFX09XTl9GTEFHRklMRV9GTEFHXwotCi0vLyBUZXN0cyBjdXJyZW50X3Rlc3RfaW5mbygp
IGluIFVuaXRUZXN0LgotY2xhc3MgQ3VycmVudFRlc3RJbmZvVGVzdCA6IHB1YmxpYyBUZXN0IHsK
LSBwcm90ZWN0ZWQ6Ci0gIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5z
IE5VTEwgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluCi0gIC8vIHRoZSB0ZXN0IGNhc2UgaXMgcnVu
LgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgewotICAgIC8vIFRoZXJlIHNob3VsZCBi
ZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQuCi0gICAgY29uc3QgVGVzdEluZm8qIHRl
c3RfaW5mbyA9Ci0gICAgICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2lu
Zm8oKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0X2luZm8gPT0gTlVMTCkKLSAgICAgICAgPDwgIlRo
ZXJlIHNob3VsZCBiZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQuIjsKLSAgfQotCi0g
IC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5zIE5VTEwgYWZ0ZXIgdGhl
IGxhc3QgdGVzdCBpbgotICAvLyB0aGUgdGVzdCBjYXNlIGhhcyBydW4uCi0gIHN0YXRpYyB2b2lk
IFRlYXJEb3duVGVzdENhc2UoKSB7Ci0gICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9Ci0g
ICAgICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgICBF
WFBFQ1RfVFJVRSh0ZXN0X2luZm8gPT0gTlVMTCkKLSAgICAgICAgPDwgIlRoZXJlIHNob3VsZCBi
ZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQuIjsKLSAgfQotfTsKLQotLy8gVGVzdHMg
dGhhdCBjdXJyZW50X3Rlc3RfaW5mbygpIHJldHVybnMgVGVzdEluZm8gZm9yIGN1cnJlbnRseSBy
dW5uaW5nCi0vLyB0ZXN0IGJ5IGNoZWNraW5nIHRoZSBleHBlY3RlZCB0ZXN0IG5hbWUgYWdhaW5z
dCB0aGUgYWN0dWFsIG9uZS4KLVRFU1RfRihDdXJyZW50VGVzdEluZm9UZXN0LCBXb3Jrc0ZvckZp
cnN0VGVzdEluQVRlc3RDYXNlKSB7Ci0gIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQotICAg
IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBBU1NFUlRf
VFJVRShOVUxMICE9IHRlc3RfaW5mbykKLSAgICAgIDw8ICJUaGVyZSBpcyBhIHRlc3QgcnVubmlu
ZyBzbyB3ZSBzaG91bGQgaGF2ZSBhIHZhbGlkIFRlc3RJbmZvLiI7Ci0gIEVYUEVDVF9TVFJFUSgi
Q3VycmVudFRlc3RJbmZvVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSkKLSAgICAg
IDw8ICJFeHBlY3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBjYXNl
LiI7Ci0gIEVYUEVDVF9TVFJFUSgiV29ya3NGb3JGaXJzdFRlc3RJbkFUZXN0Q2FzZSIsIHRlc3Rf
aW5mby0+bmFtZSgpKQotICAgICAgPDwgIkV4cGVjdGVkIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50
bHkgcnVubmluZyB0ZXN0LiI7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8o
KSByZXR1cm5zIFRlc3RJbmZvIGZvciBjdXJyZW50bHkgcnVubmluZwotLy8gdGVzdCBieSBjaGVj
a2luZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3QgdGhlIGFjdHVhbCBvbmUuICBXZQot
Ly8gdXNlIHRoaXMgdGVzdCB0byBzZWUgdGhhdCB0aGUgVGVzdEluZm8gb2JqZWN0IGFjdHVhbGx5
IGNoYW5nZWQgZnJvbQotLy8gdGhlIHByZXZpb3VzIGludm9jYXRpb24uCi1URVNUX0YoQ3VycmVu
dFRlc3RJbmZvVGVzdCwgV29ya3NGb3JTZWNvbmRUZXN0SW5BVGVzdENhc2UpIHsKLSAgY29uc3Qg
VGVzdEluZm8qIHRlc3RfaW5mbyA9Ci0gICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJl
bnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VSVF9UUlVFKE5VTEwgIT0gdGVzdF9pbmZvKQotICAgICAg
PDwgIlRoZXJlIGlzIGEgdGVzdCBydW5uaW5nIHNvIHdlIHNob3VsZCBoYXZlIGEgdmFsaWQgVGVz
dEluZm8uIjsKLSAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVzdEluZm9UZXN0IiwgdGVzdF9pbmZv
LT50ZXN0X2Nhc2VfbmFtZSgpKQotICAgICAgPDwgIkV4cGVjdGVkIHRoZSBuYW1lIG9mIHRoZSBj
dXJyZW50bHkgcnVubmluZyB0ZXN0IGNhc2UuIjsKLSAgRVhQRUNUX1NUUkVRKCJXb3Jrc0ZvclNl
Y29uZFRlc3RJbkFUZXN0Q2FzZSIsIHRlc3RfaW5mby0+bmFtZSgpKQotICAgICAgPDwgIkV4cGVj
dGVkIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0LiI7Ci19Ci0KLX0gIC8v
IG5hbWVzcGFjZSB0ZXN0aW5nCi0KLS8vIFRoZXNlIHR3byBsaW5lcyB0ZXN0IHRoYXQgd2UgY2Fu
IGRlZmluZSB0ZXN0cyBpbiBhIG5hbWVzcGFjZSB0aGF0Ci0vLyBoYXMgdGhlIG5hbWUgInRlc3Rp
bmciIGFuZCBpcyBuZXN0ZWQgaW4gYW5vdGhlciBuYW1lc3BhY2UuCi1uYW1lc3BhY2UgbXlfbmFt
ZXNwYWNlIHsKLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotLy8gTWFrZXMgc3VyZSB0aGF0IFRFU1Qg
a25vd3MgdG8gdXNlIDo6dGVzdGluZzo6VGVzdCBpbnN0ZWFkIG9mCi0vLyA6Om15X25hbWVzcGFj
ZTo6dGVzdGluZzo6VGVzdC4KLWNsYXNzIFRlc3Qge307Ci0KLS8vIE1ha2VzIHN1cmUgdGhhdCBh
biBhc3NlcnRpb24ga25vd3MgdG8gdXNlIDo6dGVzdGluZzo6TWVzc2FnZSBpbnN0ZWFkIG9mCi0v
LyA6Om15X25hbWVzcGFjZTo6dGVzdGluZzo6TWVzc2FnZS4KLWNsYXNzIE1lc3NhZ2Uge307Ci0K
LS8vIE1ha2VzIHN1cmUgdGhhdCBhbiBhc3NlcnRpb24ga25vd3MgdG8gdXNlCi0vLyA6OnRlc3Rp
bmc6OkFzc2VydGlvblJlc3VsdCBpbnN0ZWFkIG9mCi0vLyA6Om15X25hbWVzcGFjZTo6dGVzdGlu
Zzo6QXNzZXJ0aW9uUmVzdWx0LgotY2xhc3MgQXNzZXJ0aW9uUmVzdWx0IHt9OwotCi0vLyBUZXN0
cyB0aGF0IGFuIGFzc2VydGlvbiB0aGF0IHNob3VsZCBzdWNjZWVkIHdvcmtzIGFzIGV4cGVjdGVk
LgotVEVTVChOZXN0ZWRUZXN0aW5nTmFtZXNwYWNlVGVzdCwgU3VjY2VzcykgewotICBFWFBFQ1Rf
RVEoMSwgMSkgPDwgIlRoaXMgc2hvdWxkbid0IGZhaWwuIjsKLX0KLQotLy8gVGVzdHMgdGhhdCBh
biBhc3NlcnRpb24gdGhhdCBzaG91bGQgZmFpbCB3b3JrcyBhcyBleHBlY3RlZC4KLVRFU1QoTmVz
dGVkVGVzdGluZ05hbWVzcGFjZVRlc3QsIEZhaWx1cmUpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUoRkFJTCgpIDw8ICJUaGlzIGZhaWx1cmUgaXMgZXhwZWN0ZWQuIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIlRoaXMgZmFpbHVyZSBpcyBleHBlY3RlZC4iKTsKLX0KLQotfSAgLy8gbmFtZXNw
YWNlIHRlc3RpbmcKLX0gIC8vIG5hbWVzcGFjZSBteV9uYW1lc3BhY2UKLQotLy8gVGVzdHMgdGhh
dCBvbmUgY2FuIGNhbGwgc3VwZXJjbGFzcyBTZXRVcCBhbmQgVGVhckRvd24gbWV0aG9kcy0tCi0v
LyB0aGF0IGlzLCB0aGF0IHRoZXkgYXJlIG5vdCBwcml2YXRlLgotLy8gTm8gdGVzdHMgYXJlIGJh
c2VkIG9uIHRoaXMgZml4dHVyZTsgdGhlIHRlc3QgInBhc3NlcyIgaWYgaXQgY29tcGlsZXMKLS8v
IHN1Y2Nlc3NmdWxseS4KLWNsYXNzIFByb3RlY3RlZEZpeHR1cmVNZXRob2RzVGVzdCA6IHB1Ymxp
YyBUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBUZXN0
OjpTZXRVcCgpOwotICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBUZXN0OjpU
ZWFyRG93bigpOwotICB9Ci19OwotCi0vLyBTdHJlYW1pbmdBc3NlcnRpb25zVGVzdCB0ZXN0cyB0
aGUgc3RyZWFtaW5nIHZlcnNpb25zIG9mIGEgcmVwcmVzZW50YXRpdmUKLS8vIHNhbXBsZSBvZiBh
c3NlcnRpb25zLgotVEVTVChTdHJlYW1pbmdBc3NlcnRpb25zVGVzdCwgVW5jb25kaXRpb25hbCkg
ewotICBTVUNDRUVEKCkgPDwgImV4cGVjdGVkIHN1Y2Nlc3MiOwotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShBRERfRkFJTFVSRSgpIDw8ICJleHBlY3RlZCBmYWlsdXJlIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIGZhaWx1cmUiKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUoRkFJTCgpIDw8ICJleHBlY3RlZCBmYWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ImV4cGVjdGVkIGZhaWx1cmUiKTsKLX0KLQotI2lmZGVmIF9fQk9STEFORENfXwotLy8gU2lsZW5j
ZXMgd2FybmluZ3M6ICJDb25kaXRpb24gaXMgYWx3YXlzIHRydWUiLCAiVW5yZWFjaGFibGUgY29k
ZSIKLSMgcHJhZ21hIG9wdGlvbiBwdXNoIC13LWNjYyAtdy1yY2gKLSNlbmRpZgotCi1URVNUKFN0
cmVhbWluZ0Fzc2VydGlvbnNUZXN0LCBUcnV0aCkgewotICBFWFBFQ1RfVFJVRSh0cnVlKSA8PCAi
dW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgQVNTRVJUX1RSVUUodHJ1ZSkgPDwgInVuZXhwZWN0ZWQg
ZmFpbHVyZSI7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9UUlVFKGZhbHNlKSA8
PCAiZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCBmYWlsdXJlIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9UUlVFKGZhbHNlKSA8
PCAiZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBm
YWlsdXJlIik7Ci19Ci0KLVRFU1QoU3RyZWFtaW5nQXNzZXJ0aW9uc1Rlc3QsIFRydXRoMikgewot
ICBFWFBFQ1RfRkFMU0UoZmFsc2UpIDw8ICJ1bmV4cGVjdGVkIGZhaWx1cmUiOwotICBBU1NFUlRf
RkFMU0UoZmFsc2UpIDw8ICJ1bmV4cGVjdGVkIGZhaWx1cmUiOwotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShFWFBFQ1RfRkFMU0UodHJ1ZSkgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgZmFpbHVyZSIpOwotICBFWFBFQ1RfRkFUQUxf
RkFJTFVSRShBU1NFUlRfRkFMU0UodHJ1ZSkgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAg
ICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgZmFpbHVyZSIpOwotfQotCi0jaWZkZWYgX19CT1JM
QU5EQ19fCi0vLyBSZXN0b3JlcyB3YXJuaW5ncyBhZnRlciBwcmV2aW91cyAiI3ByYWdtYSBvcHRp
b24gcHVzaCIgc3VwcmVzc2VkIHRoZW0KLSMgcHJhZ21hIG9wdGlvbiBwb3AKLSNlbmRpZgotCi1U
RVNUKFN0cmVhbWluZ0Fzc2VydGlvbnNUZXN0LCBJbnRlZ2VyRXF1YWxzKSB7Ci0gIEVYUEVDVF9F
USgxLCAxKSA8PCAidW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgQVNTRVJUX0VRKDEsIDEpIDw8ICJ1
bmV4cGVjdGVkIGZhaWx1cmUiOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEo
MSwgMikgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQgZmFpbHVyZSIpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoMSwg
MikgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQgZmFpbHVyZSIpOwotfQotCi1URVNUKFN0cmVhbWluZ0Fzc2VydGlvbnNUZXN0LCBJbnRlZ2Vy
TGVzc1RoYW4pIHsKLSAgRVhQRUNUX0xUKDEsIDIpIDw8ICJ1bmV4cGVjdGVkIGZhaWx1cmUiOwot
ICBBU1NFUlRfTFQoMSwgMikgPDwgInVuZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9MVCgyLCAxKSA8PCAiZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWlsdXJlIik7Ci0gIEVYUEVDVF9GQVRB
TF9GQUlMVVJFKEFTU0VSVF9MVCgyLCAxKSA8PCAiZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWlsdXJlIik7Ci19Ci0KLVRFU1QoU3RyZWFtaW5n
QXNzZXJ0aW9uc1Rlc3QsIFN0cmluZ3NFcXVhbCkgewotICBFWFBFQ1RfU1RSRVEoImZvbyIsICJm
b28iKSA8PCAidW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgQVNTRVJUX1NUUkVRKCJmb28iLCAiZm9v
IikgPDwgInVuZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9TVFJFUSgiZm9vIiwgImJhciIpIDw8ICJleHBlY3RlZCBmYWlsdXJlIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGZhaWx1cmUiKTsKLSAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoQVNTRVJUX1NUUkVRKCJmb28iLCAiYmFyIikgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAot
ICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgZmFpbHVyZSIpOwotfQotCi1URVNUKFN0
cmVhbWluZ0Fzc2VydGlvbnNUZXN0LCBTdHJpbmdzTm90RXF1YWwpIHsKLSAgRVhQRUNUX1NUUk5F
KCJmb28iLCAiYmFyIikgPDwgInVuZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEFTU0VSVF9TVFJORSgi
Zm9vIiwgImJhciIpIDw8ICJ1bmV4cGVjdGVkIGZhaWx1cmUiOwotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRShFWFBFQ1RfU1RSTkUoImZvbyIsICJmb28iKSA8PCAiZXhwZWN0ZWQgZmFpbHVyZSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWlsdXJlIik7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJORSgiZm9vIiwgImZvbyIpIDw8ICJleHBlY3RlZCBm
YWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGZhaWx1cmUiKTsKLX0K
LQotVEVTVChTdHJlYW1pbmdBc3NlcnRpb25zVGVzdCwgU3RyaW5nc0VxdWFsSWdub3JpbmdDYXNl
KSB7Ci0gIEVYUEVDVF9TVFJDQVNFRVEoImZvbyIsICJGT08iKSA8PCAidW5leHBlY3RlZCBmYWls
dXJlIjsKLSAgQVNTRVJUX1NUUkNBU0VFUSgiZm9vIiwgIkZPTyIpIDw8ICJ1bmV4cGVjdGVkIGZh
aWx1cmUiOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSQ0FTRUVRKCJmb28i
LCAiYmFyIikgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQgZmFpbHVyZSIpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfU1RS
Q0FTRUVRKCJmb28iLCAiYmFyIikgPDwgImV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgICAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQgZmFpbHVyZSIpOwotfQotCi1URVNUKFN0cmVhbWluZ0Fzc2Vy
dGlvbnNUZXN0LCBTdHJpbmdOb3RFcXVhbElnbm9yaW5nQ2FzZSkgewotICBFWFBFQ1RfU1RSQ0FT
RU5FKCJmb28iLCAiYmFyIikgPDwgInVuZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEFTU0VSVF9TVFJD
QVNFTkUoImZvbyIsICJiYXIiKSA8PCAidW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1NUUkNBU0VORSgiZm9vIiwgIkZPTyIpIDw8ICJleHBlY3Rl
ZCBmYWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGZhaWx1cmUi
KTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkNBU0VORSgiYmFyIiwgIkJBUiIp
IDw8ICJleHBlY3RlZCBmYWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IGZhaWx1cmUiKTsKLX0KLQotVEVTVChTdHJlYW1pbmdBc3NlcnRpb25zVGVzdCwgRmxvYXRpbmdQ
b2ludEVxdWFscykgewotICBFWFBFQ1RfRkxPQVRfRVEoMS4wLCAxLjApIDw8ICJ1bmV4cGVjdGVk
IGZhaWx1cmUiOwotICBBU1NFUlRfRkxPQVRfRVEoMS4wLCAxLjApIDw8ICJ1bmV4cGVjdGVkIGZh
aWx1cmUiOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRkxPQVRfRVEoMC4wLCAx
LjApIDw8ICJleHBlY3RlZCBmYWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIGZhaWx1cmUiKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0ZMT0FUX0VR
KDAuMCwgMS4wKSA8PCAiZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICJleHBlY3RlZCBmYWlsdXJlIik7Ci19Ci0KLSNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwotCi1U
RVNUKFN0cmVhbWluZ0Fzc2VydGlvbnNUZXN0LCBUaHJvdykgewotICBFWFBFQ1RfVEhST1coVGhy
b3dBbkludGVnZXIoKSwgaW50KSA8PCAidW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgQVNTRVJUX1RI
Uk9XKFRocm93QW5JbnRlZ2VyKCksIGludCkgPDwgInVuZXhwZWN0ZWQgZmFpbHVyZSI7Ci0gIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9USFJPVyhUaHJvd0FuSW50ZWdlcigpLCBib29s
KSA8PAotICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgZmFpbHVyZSIsICJleHBl
Y3RlZCBmYWlsdXJlIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9USFJPVyhUaHJv
d0FuSW50ZWdlcigpLCBib29sKSA8PAotICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQg
ZmFpbHVyZSIsICJleHBlY3RlZCBmYWlsdXJlIik7Ci19Ci0KLVRFU1QoU3RyZWFtaW5nQXNzZXJ0
aW9uc1Rlc3QsIE5vVGhyb3cpIHsKLSAgRVhQRUNUX05PX1RIUk9XKFRocm93Tm90aGluZygpKSA8
PCAidW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgQVNTRVJUX05PX1RIUk9XKFRocm93Tm90aGluZygp
KSA8PCAidW5leHBlY3RlZCBmYWlsdXJlIjsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQ
RUNUX05PX1RIUk9XKFRocm93QW5JbnRlZ2VyKCkpIDw8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICJleHBlY3RlZCBmYWlsdXJlIiwgImV4cGVjdGVkIGZhaWx1cmUiKTsKLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoQVNTRVJUX05PX1RIUk9XKFRocm93QW5JbnRlZ2VyKCkpIDw8Ci0gICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWlsdXJlIiwgImV4cGVjdGVkIGZhaWx1cmUiKTsK
LX0KLQotVEVTVChTdHJlYW1pbmdBc3NlcnRpb25zVGVzdCwgQW55VGhyb3cpIHsKLSAgRVhQRUNU
X0FOWV9USFJPVyhUaHJvd0FuSW50ZWdlcigpKSA8PCAidW5leHBlY3RlZCBmYWlsdXJlIjsKLSAg
QVNTRVJUX0FOWV9USFJPVyhUaHJvd0FuSW50ZWdlcigpKSA8PCAidW5leHBlY3RlZCBmYWlsdXJl
IjsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJPVyhUaHJvd05vdGhp
bmcoKSkgPDwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGZhaWx1cmUiLCAi
ZXhwZWN0ZWQgZmFpbHVyZSIpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfQU5ZX1RI
Uk9XKFRocm93Tm90aGluZygpKSA8PAotICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQg
ZmFpbHVyZSIsICJleHBlY3RlZCBmYWlsdXJlIik7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFT
X0VYQ0VQVElPTlMKLQotLy8gVGVzdHMgdGhhdCBHb29nbGUgVGVzdCBjb3JyZWN0bHkgZGVjaWRl
cyB3aGV0aGVyIHRvIHVzZSBjb2xvcnMgaW4gdGhlIG91dHB1dC4KLQotVEVTVChDb2xvcmVkT3V0
cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5HVGVzdENvbG9yRmxhZ0lzWWVzKSB7Ci0gIEdURVNUX0ZM
QUcoY29sb3IpID0gInllcyI7Ci0KLSAgU2V0RW52KCJURVJNIiwgInh0ZXJtIik7ICAvLyBURVJN
IHN1cHBvcnRzIGNvbG9ycy4KLSAgRVhQRUNUX1RSVUUoU2hvdWxkVXNlQ29sb3IodHJ1ZSkpOyAg
Ly8gU3Rkb3V0IGlzIGEgVFRZLgotICBFWFBFQ1RfVFJVRShTaG91bGRVc2VDb2xvcihmYWxzZSkp
OyAgLy8gU3Rkb3V0IGlzIG5vdCBhIFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAiZHVtYiIpOyAg
Ly8gVEVSTSBkb2Vzbid0IHN1cHBvcnQgY29sb3JzLgotICBFWFBFQ1RfVFJVRShTaG91bGRVc2VD
b2xvcih0cnVlKSk7ICAvLyBTdGRvdXQgaXMgYSBUVFkuCi0gIEVYUEVDVF9UUlVFKFNob3VsZFVz
ZUNvbG9yKGZhbHNlKSk7ICAvLyBTdGRvdXQgaXMgbm90IGEgVFRZLgotfQotCi1URVNUKENvbG9y
ZWRPdXRwdXRUZXN0LCBVc2VzQ29sb3JzV2hlbkdUZXN0Q29sb3JGbGFnSXNBbGlhc09mWWVzKSB7
Ci0gIFNldEVudigiVEVSTSIsICJkdW1iIik7ICAvLyBURVJNIGRvZXNuJ3Qgc3VwcG9ydCBjb2xv
cnMuCi0KLSAgR1RFU1RfRkxBRyhjb2xvcikgPSAiVHJ1ZSI7Ci0gIEVYUEVDVF9UUlVFKFNob3Vs
ZFVzZUNvbG9yKGZhbHNlKSk7ICAvLyBTdGRvdXQgaXMgbm90IGEgVFRZLgotCi0gIEdURVNUX0ZM
QUcoY29sb3IpID0gInQiOwotICBFWFBFQ1RfVFJVRShTaG91bGRVc2VDb2xvcihmYWxzZSkpOyAg
Ly8gU3Rkb3V0IGlzIG5vdCBhIFRUWS4KLQotICBHVEVTVF9GTEFHKGNvbG9yKSA9ICIxIjsKLSAg
RVhQRUNUX1RSVUUoU2hvdWxkVXNlQ29sb3IoZmFsc2UpKTsgIC8vIFN0ZG91dCBpcyBub3QgYSBU
VFkuCi19Ci0KLVRFU1QoQ29sb3JlZE91dHB1dFRlc3QsIFVzZXNOb0NvbG9yV2hlbkdUZXN0Q29s
b3JGbGFnSXNObykgewotICBHVEVTVF9GTEFHKGNvbG9yKSA9ICJubyI7Ci0KLSAgU2V0RW52KCJU
RVJNIiwgInh0ZXJtIik7ICAvLyBURVJNIHN1cHBvcnRzIGNvbG9ycy4KLSAgRVhQRUNUX0ZBTFNF
KFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBhIFRUWS4KLSAgRVhQRUNUX0ZB
TFNFKFNob3VsZFVzZUNvbG9yKGZhbHNlKSk7ICAvLyBTdGRvdXQgaXMgbm90IGEgVFRZLgotCi0g
IFNldEVudigiVEVSTSIsICJkdW1iIik7ICAvLyBURVJNIGRvZXNuJ3Qgc3VwcG9ydCBjb2xvcnMu
Ci0gIEVYUEVDVF9GQUxTRShTaG91bGRVc2VDb2xvcih0cnVlKSk7ICAvLyBTdGRvdXQgaXMgYSBU
VFkuCi0gIEVYUEVDVF9GQUxTRShTaG91bGRVc2VDb2xvcihmYWxzZSkpOyAgLy8gU3Rkb3V0IGlz
IG5vdCBhIFRUWS4KLX0KLQotVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc05vQ29sb3JXaGVu
R1Rlc3RDb2xvckZsYWdJc0ludmFsaWQpIHsKLSAgU2V0RW52KCJURVJNIiwgInh0ZXJtIik7ICAv
LyBURVJNIHN1cHBvcnRzIGNvbG9ycy4KLQotICBHVEVTVF9GTEFHKGNvbG9yKSA9ICJGIjsKLSAg
RVhQRUNUX0ZBTFNFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBhIFRUWS4K
LQotICBHVEVTVF9GTEFHKGNvbG9yKSA9ICIwIjsKLSAgRVhQRUNUX0ZBTFNFKFNob3VsZFVzZUNv
bG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBhIFRUWS4KLQotICBHVEVTVF9GTEFHKGNvbG9yKSA9
ICJ1bmtub3duIjsKLSAgRVhQRUNUX0ZBTFNFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0
ZG91dCBpcyBhIFRUWS4KLX0KLQotVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc0NvbG9yc1do
ZW5TdGRvdXRJc1R0eSkgewotICBHVEVTVF9GTEFHKGNvbG9yKSA9ICJhdXRvIjsKLQotICBTZXRF
bnYoIlRFUk0iLCAieHRlcm0iKTsgIC8vIFRFUk0gc3VwcG9ydHMgY29sb3JzLgotICBFWFBFQ1Rf
RkFMU0UoU2hvdWxkVXNlQ29sb3IoZmFsc2UpKTsgIC8vIFN0ZG91dCBpcyBub3QgYSBUVFkuCi0g
IEVYUEVDVF9UUlVFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgICAgLy8gU3Rkb3V0IGlzIGEgVFRZ
LgotfQotCi1URVNUKENvbG9yZWRPdXRwdXRUZXN0LCBVc2VzQ29sb3JzV2hlblRlcm1TdXBwb3J0
c0NvbG9ycykgewotICBHVEVTVF9GTEFHKGNvbG9yKSA9ICJhdXRvIjsKLQotI2lmIEdURVNUX09T
X1dJTkRPV1MKLSAgLy8gT24gV2luZG93cywgd2UgaWdub3JlIHRoZSBURVJNIHZhcmlhYmxlIGFz
IGl0J3MgdXN1YWxseSBub3Qgc2V0LgotCi0gIFNldEVudigiVEVSTSIsICJkdW1iIik7Ci0gIEVY
UEVDVF9UUlVFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBhIFRUWS4KLQot
ICBTZXRFbnYoIlRFUk0iLCAiIik7Ci0gIEVYUEVDVF9UUlVFKFNob3VsZFVzZUNvbG9yKHRydWUp
KTsgIC8vIFN0ZG91dCBpcyBhIFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAieHRlcm0iKTsKLSAg
RVhQRUNUX1RSVUUoU2hvdWxkVXNlQ29sb3IodHJ1ZSkpOyAgLy8gU3Rkb3V0IGlzIGEgVFRZLgot
I2Vsc2UKLSAgLy8gT24gbm9uLVdpbmRvd3MgcGxhdGZvcm1zLCB3ZSByZWx5IG9uIFRFUk0gdG8g
ZGV0ZXJtaW5lIGlmIHRoZQotICAvLyB0ZXJtaW5hbCBzdXBwb3J0cyBjb2xvcnMuCi0KLSAgU2V0
RW52KCJURVJNIiwgImR1bWIiKTsgIC8vIFRFUk0gZG9lc24ndCBzdXBwb3J0IGNvbG9ycy4KLSAg
RVhQRUNUX0ZBTFNFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBhIFRUWS4K
LQotICBTZXRFbnYoIlRFUk0iLCAiZW1hY3MiKTsgIC8vIFRFUk0gZG9lc24ndCBzdXBwb3J0IGNv
bG9ycy4KLSAgRVhQRUNUX0ZBTFNFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0ZG91dCBp
cyBhIFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAidnQxMDAiKTsgIC8vIFRFUk0gZG9lc24ndCBz
dXBwb3J0IGNvbG9ycy4KLSAgRVhQRUNUX0ZBTFNFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8v
IFN0ZG91dCBpcyBhIFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAieHRlcm0tbW9ubyIpOyAgLy8g
VEVSTSBkb2Vzbid0IHN1cHBvcnQgY29sb3JzLgotICBFWFBFQ1RfRkFMU0UoU2hvdWxkVXNlQ29s
b3IodHJ1ZSkpOyAgLy8gU3Rkb3V0IGlzIGEgVFRZLgotCi0gIFNldEVudigiVEVSTSIsICJ4dGVy
bSIpOyAgLy8gVEVSTSBzdXBwb3J0cyBjb2xvcnMuCi0gIEVYUEVDVF9UUlVFKFNob3VsZFVzZUNv
bG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBhIFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAieHRl
cm0tY29sb3IiKTsgIC8vIFRFUk0gc3VwcG9ydHMgY29sb3JzLgotICBFWFBFQ1RfVFJVRShTaG91
bGRVc2VDb2xvcih0cnVlKSk7ICAvLyBTdGRvdXQgaXMgYSBUVFkuCi0KLSAgU2V0RW52KCJURVJN
IiwgInh0ZXJtLTI1NmNvbG9yIik7ICAvLyBURVJNIHN1cHBvcnRzIGNvbG9ycy4KLSAgRVhQRUNU
X1RSVUUoU2hvdWxkVXNlQ29sb3IodHJ1ZSkpOyAgLy8gU3Rkb3V0IGlzIGEgVFRZLgotCi0gIFNl
dEVudigiVEVSTSIsICJzY3JlZW4iKTsgIC8vIFRFUk0gc3VwcG9ydHMgY29sb3JzLgotICBFWFBF
Q1RfVFJVRShTaG91bGRVc2VDb2xvcih0cnVlKSk7ICAvLyBTdGRvdXQgaXMgYSBUVFkuCi0KLSAg
U2V0RW52KCJURVJNIiwgInNjcmVlbi0yNTZjb2xvciIpOyAgLy8gVEVSTSBzdXBwb3J0cyBjb2xv
cnMuCi0gIEVYUEVDVF9UUlVFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBh
IFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAidG11eCIpOyAgLy8gVEVSTSBzdXBwb3J0cyBjb2xv
cnMuCi0gIEVYUEVDVF9UUlVFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0ZG91dCBpcyBh
IFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAidG11eC0yNTZjb2xvciIpOyAgLy8gVEVSTSBzdXBw
b3J0cyBjb2xvcnMuCi0gIEVYUEVDVF9UUlVFKFNob3VsZFVzZUNvbG9yKHRydWUpKTsgIC8vIFN0
ZG91dCBpcyBhIFRUWS4KLQotICBTZXRFbnYoIlRFUk0iLCAicnh2dC11bmljb2RlIik7ICAvLyBU
RVJNIHN1cHBvcnRzIGNvbG9ycy4KLSAgRVhQRUNUX1RSVUUoU2hvdWxkVXNlQ29sb3IodHJ1ZSkp
OyAgLy8gU3Rkb3V0IGlzIGEgVFRZLgotCi0gIFNldEVudigiVEVSTSIsICJyeHZ0LXVuaWNvZGUt
MjU2Y29sb3IiKTsgIC8vIFRFUk0gc3VwcG9ydHMgY29sb3JzLgotICBFWFBFQ1RfVFJVRShTaG91
bGRVc2VDb2xvcih0cnVlKSk7ICAvLyBTdGRvdXQgaXMgYSBUVFkuCi0KLSAgU2V0RW52KCJURVJN
IiwgImxpbnV4Iik7ICAvLyBURVJNIHN1cHBvcnRzIGNvbG9ycy4KLSAgRVhQRUNUX1RSVUUoU2hv
dWxkVXNlQ29sb3IodHJ1ZSkpOyAgLy8gU3Rkb3V0IGlzIGEgVFRZLgotCi0gIFNldEVudigiVEVS
TSIsICJjeWd3aW4iKTsgIC8vIFRFUk0gc3VwcG9ydHMgY29sb3JzLgotICBFWFBFQ1RfVFJVRShT
aG91bGRVc2VDb2xvcih0cnVlKSk7ICAvLyBTdGRvdXQgaXMgYSBUVFkuCi0jZW5kaWYgIC8vIEdU
RVNUX09TX1dJTkRPV1MKLX0KLQotLy8gVmVyaWZpZXMgdGhhdCBTdGF0aWNBc3NlcnRUeXBlRXEg
d29ya3MgaW4gYSBuYW1lc3BhY2Ugc2NvcGUuCi0KLXN0YXRpYyBib29sIGR1bW15MSBHVEVTVF9B
VFRSSUJVVEVfVU5VU0VEXyA9IFN0YXRpY0Fzc2VydFR5cGVFcTxib29sLCBib29sPigpOwotc3Rh
dGljIGJvb2wgZHVtbXkyIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0KLSAgICBTdGF0aWNBc3Nl
cnRUeXBlRXE8Y29uc3QgaW50LCBjb25zdCBpbnQ+KCk7Ci0KLS8vIFZlcmlmaWVzIHRoYXQgU3Rh
dGljQXNzZXJ0VHlwZUVxIHdvcmtzIGluIGEgY2xhc3MuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotY2xhc3MgU3RhdGljQXNzZXJ0VHlwZUVxVGVzdEhlbHBlciB7Ci0gcHVibGljOgotICBTdGF0
aWNBc3NlcnRUeXBlRXFUZXN0SGVscGVyKCkgeyBTdGF0aWNBc3NlcnRUeXBlRXE8Ym9vbCwgVD4o
KTsgfQotfTsKLQotVEVTVChTdGF0aWNBc3NlcnRUeXBlRXFUZXN0LCBXb3Jrc0luQ2xhc3MpIHsK
LSAgU3RhdGljQXNzZXJ0VHlwZUVxVGVzdEhlbHBlcjxib29sPigpOwotfQotCi0vLyBWZXJpZmll
cyB0aGF0IFN0YXRpY0Fzc2VydFR5cGVFcSB3b3JrcyBpbnNpZGUgYSBmdW5jdGlvbi4KLQotdHlw
ZWRlZiBpbnQgSW50QWxpYXM7Ci0KLVRFU1QoU3RhdGljQXNzZXJ0VHlwZUVxVGVzdCwgQ29tcGls
ZXNGb3JFcXVhbFR5cGVzKSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsIEludEFsaWFzPigp
OwotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50KiwgSW50QWxpYXMqPigpOwotfQotCi1URVNUKEdl
dEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3BUZXN0LCBSZXR1cm5zVGhlU3RhY2tUcmFjZSkg
ewotICB0ZXN0aW5nOjpVbml0VGVzdCogY29uc3QgdW5pdF90ZXN0ID0gdGVzdGluZzo6VW5pdFRl
c3Q6OkdldEluc3RhbmNlKCk7Ci0KLSAgLy8gV2UgZG9uJ3QgaGF2ZSBhIHN0YWNrIHdhbGtlciBp
biBHb29nbGUgVGVzdCB5ZXQuCi0gIEVYUEVDVF9TVFJFUSgiIiwgR2V0Q3VycmVudE9zU3RhY2tU
cmFjZUV4Y2VwdFRvcCh1bml0X3Rlc3QsIDApLmNfc3RyKCkpOwotICBFWFBFQ1RfU1RSRVEoIiIs
IEdldEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3AodW5pdF90ZXN0LCAxKS5jX3N0cigpKTsK
LX0KLQotVEVTVChIYXNOb25mYXRhbEZhaWx1cmVUZXN0LCBSZXR1cm5zRmFsc2VXaGVuVGhlcmVJ
c05vRmFpbHVyZSkgewotICBFWFBFQ1RfRkFMU0UoSGFzTm9uZmF0YWxGYWlsdXJlKCkpOwotfQot
Ci1zdGF0aWMgdm9pZCBGYWlsRmF0YWxseSgpIHsgRkFJTCgpOyB9Ci0KLVRFU1QoSGFzTm9uZmF0
YWxGYWlsdXJlVGVzdCwgUmV0dXJuc0ZhbHNlV2hlblRoZXJlSXNPbmx5RmF0YWxGYWlsdXJlKSB7
Ci0gIEZhaWxGYXRhbGx5KCk7Ci0gIGNvbnN0IGJvb2wgaGFzX25vbmZhdGFsX2ZhaWx1cmUgPSBI
YXNOb25mYXRhbEZhaWx1cmUoKTsKLSAgQ2xlYXJDdXJyZW50VGVzdFBhcnRSZXN1bHRzKCk7Ci0g
IEVYUEVDVF9GQUxTRShoYXNfbm9uZmF0YWxfZmFpbHVyZSk7Ci19Ci0KLVRFU1QoSGFzTm9uZmF0
YWxGYWlsdXJlVGVzdCwgUmV0dXJuc1RydWVXaGVuVGhlcmVJc05vbmZhdGFsRmFpbHVyZSkgewot
ICBBRERfRkFJTFVSRSgpOwotICBjb25zdCBib29sIGhhc19ub25mYXRhbF9mYWlsdXJlID0gSGFz
Tm9uZmF0YWxGYWlsdXJlKCk7Ci0gIENsZWFyQ3VycmVudFRlc3RQYXJ0UmVzdWx0cygpOwotICBF
WFBFQ1RfVFJVRShoYXNfbm9uZmF0YWxfZmFpbHVyZSk7Ci19Ci0KLVRFU1QoSGFzTm9uZmF0YWxG
YWlsdXJlVGVzdCwgUmV0dXJuc1RydWVXaGVuVGhlcmVBcmVGYXRhbEFuZE5vbmZhdGFsRmFpbHVy
ZXMpIHsKLSAgRmFpbEZhdGFsbHkoKTsKLSAgQUREX0ZBSUxVUkUoKTsKLSAgY29uc3QgYm9vbCBo
YXNfbm9uZmF0YWxfZmFpbHVyZSA9IEhhc05vbmZhdGFsRmFpbHVyZSgpOwotICBDbGVhckN1cnJl
bnRUZXN0UGFydFJlc3VsdHMoKTsKLSAgRVhQRUNUX1RSVUUoaGFzX25vbmZhdGFsX2ZhaWx1cmUp
OwotfQotCi0vLyBBIHdyYXBwZXIgZm9yIGNhbGxpbmcgSGFzTm9uZmF0YWxGYWlsdXJlIG91dHNp
ZGUgb2YgYSB0ZXN0IGJvZHkuCi1zdGF0aWMgYm9vbCBIYXNOb25mYXRhbEZhaWx1cmVIZWxwZXIo
KSB7Ci0gIHJldHVybiB0ZXN0aW5nOjpUZXN0OjpIYXNOb25mYXRhbEZhaWx1cmUoKTsKLX0KLQot
VEVTVChIYXNOb25mYXRhbEZhaWx1cmVUZXN0LCBXb3Jrc091dHNpZGVPZlRlc3RCb2R5KSB7Ci0g
IEVYUEVDVF9GQUxTRShIYXNOb25mYXRhbEZhaWx1cmVIZWxwZXIoKSk7Ci19Ci0KLVRFU1QoSGFz
Tm9uZmF0YWxGYWlsdXJlVGVzdCwgV29ya3NPdXRzaWRlT2ZUZXN0Qm9keTIpIHsKLSAgQUREX0ZB
SUxVUkUoKTsKLSAgY29uc3QgYm9vbCBoYXNfbm9uZmF0YWxfZmFpbHVyZSA9IEhhc05vbmZhdGFs
RmFpbHVyZUhlbHBlcigpOwotICBDbGVhckN1cnJlbnRUZXN0UGFydFJlc3VsdHMoKTsKLSAgRVhQ
RUNUX1RSVUUoaGFzX25vbmZhdGFsX2ZhaWx1cmUpOwotfQotCi1URVNUKEhhc0ZhaWx1cmVUZXN0
LCBSZXR1cm5zRmFsc2VXaGVuVGhlcmVJc05vRmFpbHVyZSkgewotICBFWFBFQ1RfRkFMU0UoSGFz
RmFpbHVyZSgpKTsKLX0KLQotVEVTVChIYXNGYWlsdXJlVGVzdCwgUmV0dXJuc1RydWVXaGVuVGhl
cmVJc0ZhdGFsRmFpbHVyZSkgewotICBGYWlsRmF0YWxseSgpOwotICBjb25zdCBib29sIGhhc19m
YWlsdXJlID0gSGFzRmFpbHVyZSgpOwotICBDbGVhckN1cnJlbnRUZXN0UGFydFJlc3VsdHMoKTsK
LSAgRVhQRUNUX1RSVUUoaGFzX2ZhaWx1cmUpOwotfQotCi1URVNUKEhhc0ZhaWx1cmVUZXN0LCBS
ZXR1cm5zVHJ1ZVdoZW5UaGVyZUlzTm9uZmF0YWxGYWlsdXJlKSB7Ci0gIEFERF9GQUlMVVJFKCk7
Ci0gIGNvbnN0IGJvb2wgaGFzX2ZhaWx1cmUgPSBIYXNGYWlsdXJlKCk7Ci0gIENsZWFyQ3VycmVu
dFRlc3RQYXJ0UmVzdWx0cygpOwotICBFWFBFQ1RfVFJVRShoYXNfZmFpbHVyZSk7Ci19Ci0KLVRF
U1QoSGFzRmFpbHVyZVRlc3QsIFJldHVybnNUcnVlV2hlblRoZXJlQXJlRmF0YWxBbmROb25mYXRh
bEZhaWx1cmVzKSB7Ci0gIEZhaWxGYXRhbGx5KCk7Ci0gIEFERF9GQUlMVVJFKCk7Ci0gIGNvbnN0
IGJvb2wgaGFzX2ZhaWx1cmUgPSBIYXNGYWlsdXJlKCk7Ci0gIENsZWFyQ3VycmVudFRlc3RQYXJ0
UmVzdWx0cygpOwotICBFWFBFQ1RfVFJVRShoYXNfZmFpbHVyZSk7Ci19Ci0KLS8vIEEgd3JhcHBl
ciBmb3IgY2FsbGluZyBIYXNGYWlsdXJlIG91dHNpZGUgb2YgYSB0ZXN0IGJvZHkuCi1zdGF0aWMg
Ym9vbCBIYXNGYWlsdXJlSGVscGVyKCkgeyByZXR1cm4gdGVzdGluZzo6VGVzdDo6SGFzRmFpbHVy
ZSgpOyB9Ci0KLVRFU1QoSGFzRmFpbHVyZVRlc3QsIFdvcmtzT3V0c2lkZU9mVGVzdEJvZHkpIHsK
LSAgRVhQRUNUX0ZBTFNFKEhhc0ZhaWx1cmVIZWxwZXIoKSk7Ci19Ci0KLVRFU1QoSGFzRmFpbHVy
ZVRlc3QsIFdvcmtzT3V0c2lkZU9mVGVzdEJvZHkyKSB7Ci0gIEFERF9GQUlMVVJFKCk7Ci0gIGNv
bnN0IGJvb2wgaGFzX2ZhaWx1cmUgPSBIYXNGYWlsdXJlSGVscGVyKCk7Ci0gIENsZWFyQ3VycmVu
dFRlc3RQYXJ0UmVzdWx0cygpOwotICBFWFBFQ1RfVFJVRShoYXNfZmFpbHVyZSk7Ci19Ci0KLWNs
YXNzIFRlc3RMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKLSBwdWJs
aWM6Ci0gIFRlc3RMaXN0ZW5lcigpIDogb25fc3RhcnRfY291bnRlcl8oTlVMTCksIGlzX2Rlc3Ry
b3llZF8oTlVMTCkge30KLSAgVGVzdExpc3RlbmVyKGludCogb25fc3RhcnRfY291bnRlciwgYm9v
bCogaXNfZGVzdHJveWVkKQotICAgICAgOiBvbl9zdGFydF9jb3VudGVyXyhvbl9zdGFydF9jb3Vu
dGVyKSwKLSAgICAgICAgaXNfZGVzdHJveWVkXyhpc19kZXN0cm95ZWQpIHt9Ci0KLSAgdmlydHVh
bCB+VGVzdExpc3RlbmVyKCkgewotICAgIGlmIChpc19kZXN0cm95ZWRfKQotICAgICAgKmlzX2Rl
c3Ryb3llZF8gPSB0cnVlOwotICB9Ci0KLSBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBPblRl
c3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKLSAgICBpZiAo
b25fc3RhcnRfY291bnRlcl8gIT0gTlVMTCkKLSAgICAgICgqb25fc3RhcnRfY291bnRlcl8pKys7
Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGludCogb25fc3RhcnRfY291bnRlcl87Ci0gIGJvb2wqIGlz
X2Rlc3Ryb3llZF87Ci19OwotCi0vLyBUZXN0cyB0aGUgY29uc3RydWN0b3IuCi1URVNUKFRlc3RF
dmVudExpc3RlbmVyc1Rlc3QsIENvbnN0cnVjdGlvbldvcmtzKSB7Ci0gIFRlc3RFdmVudExpc3Rl
bmVycyBsaXN0ZW5lcnM7Ci0KLSAgRVhQRUNUX1RSVUUoVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNz
b3I6OkdldFJlcGVhdGVyKCZsaXN0ZW5lcnMpICE9IE5VTEwpOwotICBFWFBFQ1RfVFJVRShsaXN0
ZW5lcnMuZGVmYXVsdF9yZXN1bHRfcHJpbnRlcigpID09IE5VTEwpOwotICBFWFBFQ1RfVFJVRShs
aXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2VuZXJhdG9yKCkgPT0gTlVMTCk7Ci19Ci0KLS8vIFRlc3Rz
IHRoYXQgdGhlIFRlc3RFdmVudExpc3RlbmVycyBkZXN0cnVjdG9yIGRlbGV0ZXMgYWxsIHRoZSBs
aXN0ZW5lcnMgaXQKLS8vIG93bnMuCi1URVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIERlc3Ry
dWN0aW9uV29ya3MpIHsKLSAgYm9vbCBkZWZhdWx0X3Jlc3VsdF9wcmludGVyX2lzX2Rlc3Ryb3ll
ZCA9IGZhbHNlOwotICBib29sIGRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkID0gZmFs
c2U7Ci0gIGJvb2wgZXh0cmFfbGlzdGVuZXJfaXNfZGVzdHJveWVkID0gZmFsc2U7Ci0gIFRlc3RM
aXN0ZW5lciogZGVmYXVsdF9yZXN1bHRfcHJpbnRlciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0gICAg
ICBOVUxMLCAmZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl9pc19kZXN0cm95ZWQpOwotICBUZXN0TGlz
dGVuZXIqIGRlZmF1bHRfeG1sX3ByaW50ZXIgPSBuZXcgVGVzdExpc3RlbmVyKAotICAgICAgTlVM
TCwgJmRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKLSAgVGVzdExpc3RlbmVyKiBl
eHRyYV9saXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0gICAgICBOVUxMLCAmZXh0cmFfbGlz
dGVuZXJfaXNfZGVzdHJveWVkKTsKLQotICB7Ci0gICAgVGVzdEV2ZW50TGlzdGVuZXJzIGxpc3Rl
bmVyczsKLSAgICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFJlc3VsdFBy
aW50ZXIoJmxpc3RlbmVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcik7Ci0gICAgVGVzdEV2ZW50
TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRYbWxHZW5lcmF0b3IoJmxpc3RlbmVycywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0X3htbF9wcmludGVyKTsKLSAgICBsaXN0ZW5lcnMuQXBwZW5kKGV4dHJhX2xpc3RlbmVyKTsK
LSAgfQotICBFWFBFQ1RfVFJVRShkZWZhdWx0X3Jlc3VsdF9wcmludGVyX2lzX2Rlc3Ryb3llZCk7
Ci0gIEVYUEVDVF9UUlVFKGRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKLSAgRVhQ
RUNUX1RSVUUoZXh0cmFfbGlzdGVuZXJfaXNfZGVzdHJveWVkKTsKLX0KLQotLy8gVGVzdHMgdGhh
dCBhIGxpc3RlbmVyIEFwcGVuZCdlZCB0byBhIFRlc3RFdmVudExpc3RlbmVycyBsaXN0IHN0YXJ0
cwotLy8gcmVjZWl2aW5nIGV2ZW50cy4KLVRFU1QoVGVzdEV2ZW50TGlzdGVuZXJzVGVzdCwgQXBw
ZW5kKSB7Ci0gIGludCBvbl9zdGFydF9jb3VudGVyID0gMDsKLSAgYm9vbCBpc19kZXN0cm95ZWQg
PSBmYWxzZTsKLSAgVGVzdExpc3RlbmVyKiBsaXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIoJm9u
X3N0YXJ0X2NvdW50ZXIsICZpc19kZXN0cm95ZWQpOwotICB7Ci0gICAgVGVzdEV2ZW50TGlzdGVu
ZXJzIGxpc3RlbmVyczsKLSAgICBsaXN0ZW5lcnMuQXBwZW5kKGxpc3RlbmVyKTsKLSAgICBUZXN0
RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVycyktPk9uVGVzdFBy
b2dyYW1TdGFydCgKLSAgICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpKTsKLSAgICBFWFBF
Q1RfRVEoMSwgb25fc3RhcnRfY291bnRlcik7Ci0gIH0KLSAgRVhQRUNUX1RSVUUoaXNfZGVzdHJv
eWVkKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBsaXN0ZW5lcnMgcmVjZWl2ZSBldmVudHMgaW4gdGhl
IG9yZGVyIHRoZXkgd2VyZSBhcHBlbmRlZCB0bwotLy8gdGhlIGxpc3QsIGV4Y2VwdCBmb3IgKkVu
ZCByZXF1ZXN0cywgd2hpY2ggbXVzdCBiZSByZWNlaXZlZCBpbiB0aGUgcmV2ZXJzZQotLy8gb3Jk
ZXIuCi1jbGFzcyBTZXF1ZW5jZVRlc3RpbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVu
dExpc3RlbmVyIHsKLSBwdWJsaWM6Ci0gIFNlcXVlbmNlVGVzdGluZ0xpc3RlbmVyKHN0ZDo6dmVj
dG9yPHN0ZDo6c3RyaW5nPiogdmVjdG9yLCBjb25zdCBjaGFyKiBpZCkKLSAgICAgIDogdmVjdG9y
Xyh2ZWN0b3IpLCBpZF8oaWQpIHt9Ci0KLSBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBPblRl
c3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKLSAgICB2ZWN0
b3JfLT5wdXNoX2JhY2soR2V0RXZlbnREZXNjcmlwdGlvbigiT25UZXN0UHJvZ3JhbVN0YXJ0Iikp
OwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8pIHsKLSAgICB2ZWN0b3JfLT5wdXNoX2JhY2soR2V0RXZlbnREZXNjcmlw
dGlvbigiT25UZXN0UHJvZ3JhbUVuZCIpKTsKLSAgfQotCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RJ
dGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSB7Ci0gICAgdmVjdG9y
Xy0+cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRpb24oIk9uVGVzdEl0ZXJhdGlvblN0YXJ0Iikp
OwotICB9Ci0KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVz
dCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
LyppdGVyYXRpb24qLykgewotICAgIHZlY3Rvcl8tPnB1c2hfYmFjayhHZXRFdmVudERlc2NyaXB0
aW9uKCJPblRlc3RJdGVyYXRpb25FbmQiKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIHN0ZDo6c3Ry
aW5nIEdldEV2ZW50RGVzY3JpcHRpb24oY29uc3QgY2hhciogbWV0aG9kKSB7Ci0gICAgTWVzc2Fn
ZSBtZXNzYWdlOwotICAgIG1lc3NhZ2UgPDwgaWRfIDw8ICIuIiA8PCBtZXRob2Q7Ci0gICAgcmV0
dXJuIG1lc3NhZ2UuR2V0U3RyaW5nKCk7Ci0gIH0KLQotICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu
Zz4qIHZlY3Rvcl87Ci0gIGNvbnN0IGNoYXIqIGNvbnN0IGlkXzsKLQotICBHVEVTVF9ESVNBTExP
V19DT1BZX0FORF9BU1NJR05fKFNlcXVlbmNlVGVzdGluZ0xpc3RlbmVyKTsKLX07Ci0KLVRFU1Qo
RXZlbnRMaXN0ZW5lclRlc3QsIEFwcGVuZEtlZXBzT3JkZXIpIHsKLSAgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+IHZlYzsKLSAgVGVzdEV2ZW50TGlzdGVuZXJzIGxpc3RlbmVyczsKLSAgbGlzdGVu
ZXJzLkFwcGVuZChuZXcgU2VxdWVuY2VUZXN0aW5nTGlzdGVuZXIoJnZlYywgIjFzdCIpKTsKLSAg
bGlzdGVuZXJzLkFwcGVuZChuZXcgU2VxdWVuY2VUZXN0aW5nTGlzdGVuZXIoJnZlYywgIjJuZCIp
KTsKLSAgbGlzdGVuZXJzLkFwcGVuZChuZXcgU2VxdWVuY2VUZXN0aW5nTGlzdGVuZXIoJnZlYywg
IjNyZCIpKTsKLQotICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxp
c3RlbmVycyktPk9uVGVzdFByb2dyYW1TdGFydCgKLSAgICAgICpVbml0VGVzdDo6R2V0SW5zdGFu
Y2UoKSk7Ci0gIEFTU0VSVF9FUSgzVSwgdmVjLnNpemUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiMXN0
Lk9uVGVzdFByb2dyYW1TdGFydCIsIHZlY1swXS5jX3N0cigpKTsKLSAgRVhQRUNUX1NUUkVRKCIy
bmQuT25UZXN0UHJvZ3JhbVN0YXJ0IiwgdmVjWzFdLmNfc3RyKCkpOwotICBFWFBFQ1RfU1RSRVEo
IjNyZC5PblRlc3RQcm9ncmFtU3RhcnQiLCB2ZWNbMl0uY19zdHIoKSk7Ci0KLSAgdmVjLmNsZWFy
KCk7Ci0gIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJz
KS0+T25UZXN0UHJvZ3JhbUVuZCgKLSAgICAgICpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKSk7Ci0g
IEFTU0VSVF9FUSgzVSwgdmVjLnNpemUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiM3JkLk9uVGVzdFBy
b2dyYW1FbmQiLCB2ZWNbMF0uY19zdHIoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiMm5kLk9uVGVzdFBy
b2dyYW1FbmQiLCB2ZWNbMV0uY19zdHIoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiMXN0Lk9uVGVzdFBy
b2dyYW1FbmQiLCB2ZWNbMl0uY19zdHIoKSk7Ci0KLSAgdmVjLmNsZWFyKCk7Ci0gIFRlc3RFdmVu
dExpc3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJzKS0+T25UZXN0SXRlcmF0
aW9uU3RhcnQoCi0gICAgICAqVW5pdFRlc3Q6OkdldEluc3RhbmNlKCksIDApOwotICBBU1NFUlRf
RVEoM1UsIHZlYy5zaXplKCkpOwotICBFWFBFQ1RfU1RSRVEoIjFzdC5PblRlc3RJdGVyYXRpb25T
dGFydCIsIHZlY1swXS5jX3N0cigpKTsKLSAgRVhQRUNUX1NUUkVRKCIybmQuT25UZXN0SXRlcmF0
aW9uU3RhcnQiLCB2ZWNbMV0uY19zdHIoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiM3JkLk9uVGVzdEl0
ZXJhdGlvblN0YXJ0IiwgdmVjWzJdLmNfc3RyKCkpOwotCi0gIHZlYy5jbGVhcigpOwotICBUZXN0
RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVycyktPk9uVGVzdEl0
ZXJhdGlvbkVuZCgKLSAgICAgICpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKSwgMCk7Ci0gIEFTU0VS
VF9FUSgzVSwgdmVjLnNpemUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiM3JkLk9uVGVzdEl0ZXJhdGlv
bkVuZCIsIHZlY1swXS5jX3N0cigpKTsKLSAgRVhQRUNUX1NUUkVRKCIybmQuT25UZXN0SXRlcmF0
aW9uRW5kIiwgdmVjWzFdLmNfc3RyKCkpOwotICBFWFBFQ1RfU1RSRVEoIjFzdC5PblRlc3RJdGVy
YXRpb25FbmQiLCB2ZWNbMl0uY19zdHIoKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgYSBsaXN0ZW5l
ciByZW1vdmVkIGZyb20gYSBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdCBzdG9wcyByZWNlaXZpbmcK
LS8vIGV2ZW50cyBhbmQgaXMgbm90IGRlbGV0ZWQgd2hlbiB0aGUgbGlzdCBpcyBkZXN0cm95ZWQu
Ci1URVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIFJlbGVhc2UpIHsKLSAgaW50IG9uX3N0YXJ0
X2NvdW50ZXIgPSAwOwotICBib29sIGlzX2Rlc3Ryb3llZCA9IGZhbHNlOwotICAvLyBBbHRob3Vn
aCBBcHBlbmQgcGFzc2VzIHRoZSBvd25lcnNoaXAgb2YgdGhpcyBvYmplY3QgdG8gdGhlIGxpc3Qs
Ci0gIC8vIHRoZSBmb2xsb3dpbmcgY2FsbHMgcmVsZWFzZSBpdCwgYW5kIHdlIG5lZWQgdG8gZGVs
ZXRlIGl0IGJlZm9yZSB0aGUKLSAgLy8gdGVzdCBlbmRzLgotICBUZXN0TGlzdGVuZXIqIGxpc3Rl
bmVyID0gbmV3IFRlc3RMaXN0ZW5lcigmb25fc3RhcnRfY291bnRlciwgJmlzX2Rlc3Ryb3llZCk7
Ci0gIHsKLSAgICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwotICAgIGxpc3RlbmVycy5B
cHBlbmQobGlzdGVuZXIpOwotICAgIEVYUEVDVF9FUShsaXN0ZW5lciwgbGlzdGVuZXJzLlJlbGVh
c2UobGlzdGVuZXIpKTsKLSAgICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0
ZXIoJmxpc3RlbmVycyktPk9uVGVzdFByb2dyYW1TdGFydCgKLSAgICAgICAgKlVuaXRUZXN0OjpH
ZXRJbnN0YW5jZSgpKTsKLSAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5l
cikgPT0gTlVMTCk7Ci0gIH0KLSAgRVhQRUNUX0VRKDAsIG9uX3N0YXJ0X2NvdW50ZXIpOwotICBF
WFBFQ1RfRkFMU0UoaXNfZGVzdHJveWVkKTsKLSAgZGVsZXRlIGxpc3RlbmVyOwotfQotCi0vLyBU
ZXN0cyB0aGF0IG5vIGV2ZW50cyBhcmUgZm9yd2FyZGVkIHdoZW4gZXZlbnQgZm9yd2FyZGluZyBp
cyBkaXNhYmxlZC4KLVRFU1QoRXZlbnRMaXN0ZW5lclRlc3QsIFN1cHByZXNzRXZlbnRGb3J3YXJk
aW5nKSB7Ci0gIGludCBvbl9zdGFydF9jb3VudGVyID0gMDsKLSAgVGVzdExpc3RlbmVyKiBsaXN0
ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIoJm9uX3N0YXJ0X2NvdW50ZXIsIE5VTEwpOwotCi0gIFRl
c3RFdmVudExpc3RlbmVycyBsaXN0ZW5lcnM7Ci0gIGxpc3RlbmVycy5BcHBlbmQobGlzdGVuZXIp
OwotICBBU1NFUlRfVFJVRShUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6RXZlbnRGb3J3YXJk
aW5nRW5hYmxlZChsaXN0ZW5lcnMpKTsKLSAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlN1
cHByZXNzRXZlbnRGb3J3YXJkaW5nKCZsaXN0ZW5lcnMpOwotICBBU1NFUlRfRkFMU0UoVGVzdEV2
ZW50TGlzdGVuZXJzQWNjZXNzb3I6OkV2ZW50Rm9yd2FyZGluZ0VuYWJsZWQobGlzdGVuZXJzKSk7
Ci0gIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJzKS0+
T25UZXN0UHJvZ3JhbVN0YXJ0KAotICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpKTsKLSAg
RVhQRUNUX0VRKDAsIG9uX3N0YXJ0X2NvdW50ZXIpOwotfQotCi0vLyBUZXN0cyB0aGF0IGV2ZW50
cyBnZW5lcmF0ZWQgYnkgR29vZ2xlIFRlc3QgYXJlIG5vdCBmb3J3YXJkZWQgaW4KLS8vIGRlYXRo
IHRlc3Qgc3VicHJvY2Vzc2VzLgotVEVTVChFdmVudExpc3RlbmVyRGVhdGhUZXN0LCBFdmVudHNO
b3RGb3J3YXJkZWRJbkRlYXRoVGVzdFN1YnByZWNlc3NlcykgewotICBFWFBFQ1RfREVBVEhfSUZf
U1VQUE9SVEVEKHsKLSAgICAgIEdURVNUX0NIRUNLXyhUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nv
cjo6RXZlbnRGb3J3YXJkaW5nRW5hYmxlZCgKLSAgICAgICAgICAqR2V0VW5pdFRlc3RJbXBsKCkt
Pmxpc3RlbmVycygpKSkgPDwgImV4cGVjdGVkIGZhaWx1cmUiO30sCi0gICAgICAiZXhwZWN0ZWQg
ZmFpbHVyZSIpOwotfQotCi0vLyBUZXN0cyB0aGF0IGEgbGlzdGVuZXIgaW5zdGFsbGVkIHZpYSBT
ZXREZWZhdWx0UmVzdWx0UHJpbnRlcigpIHN0YXJ0cwotLy8gcmVjZWl2aW5nIGV2ZW50cyBhbmQg
aXMgcmV0dXJuZWQgdmlhIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSBhbmQgdGhhdAotLy8gdGhl
IHByZXZpb3VzIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIgaXMgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0
IGFuZCBkZWxldGVkLgotVEVTVChFdmVudExpc3RlbmVyVGVzdCwgZGVmYXVsdF9yZXN1bHRfcHJp
bnRlcikgewotICBpbnQgb25fc3RhcnRfY291bnRlciA9IDA7Ci0gIGJvb2wgaXNfZGVzdHJveWVk
ID0gZmFsc2U7Ci0gIFRlc3RMaXN0ZW5lciogbGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKCZv
bl9zdGFydF9jb3VudGVyLCAmaXNfZGVzdHJveWVkKTsKLQotICBUZXN0RXZlbnRMaXN0ZW5lcnMg
bGlzdGVuZXJzOwotICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFJlc3Vs
dFByaW50ZXIoJmxpc3RlbmVycywgbGlzdGVuZXIpOwotCi0gIEVYUEVDVF9FUShsaXN0ZW5lciwg
bGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSk7Ci0KLSAgVGVzdEV2ZW50TGlzdGVu
ZXJzQWNjZXNzb3I6OkdldFJlcGVhdGVyKCZsaXN0ZW5lcnMpLT5PblRlc3RQcm9ncmFtU3RhcnQo
Ci0gICAgICAqVW5pdFRlc3Q6OkdldEluc3RhbmNlKCkpOwotCi0gIEVYUEVDVF9FUSgxLCBvbl9z
dGFydF9jb3VudGVyKTsKLQotICAvLyBSZXBsYWNpbmcgZGVmYXVsdF9yZXN1bHRfcHJpbnRlciB3
aXRoIHNvbWV0aGluZyBlbHNlIHNob3VsZCByZW1vdmUgaXQKLSAgLy8gZnJvbSB0aGUgbGlzdCBh
bmQgZGVzdHJveSBpdC4KLSAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRS
ZXN1bHRQcmludGVyKCZsaXN0ZW5lcnMsIE5VTEwpOwotCi0gIEVYUEVDVF9UUlVFKGxpc3RlbmVy
cy5kZWZhdWx0X3Jlc3VsdF9wcmludGVyKCkgPT0gTlVMTCk7Ci0gIEVYUEVDVF9UUlVFKGlzX2Rl
c3Ryb3llZCk7Ci0KLSAgLy8gQWZ0ZXIgYnJvYWRjYXN0aW5nIGFuIGV2ZW50IHRoZSBjb3VudGVy
IGlzIHN0aWxsIHRoZSBzYW1lLCBpbmRpY2F0aW5nCi0gIC8vIHRoZSBsaXN0ZW5lciBpcyBub3Qg
aW4gdGhlIGxpc3QgYW55bW9yZS4KLSAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OkdldFJl
cGVhdGVyKCZsaXN0ZW5lcnMpLT5PblRlc3RQcm9ncmFtU3RhcnQoCi0gICAgICAqVW5pdFRlc3Q6
OkdldEluc3RhbmNlKCkpOwotICBFWFBFQ1RfRVEoMSwgb25fc3RhcnRfY291bnRlcik7Ci19Ci0K
LS8vIFRlc3RzIHRoYXQgdGhlIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIgbGlzdGVuZXIgc3RvcHMg
cmVjZWl2aW5nIGV2ZW50cwotLy8gd2hlbiByZW1vdmVkIHZpYSBSZWxlYXNlIGFuZCB0aGF0IGlz
IG5vdCBvd25lZCBieSB0aGUgbGlzdCBhbnltb3JlLgotVEVTVChFdmVudExpc3RlbmVyVGVzdCwg
UmVtb3ZpbmdEZWZhdWx0UmVzdWx0UHJpbnRlcldvcmtzKSB7Ci0gIGludCBvbl9zdGFydF9jb3Vu
dGVyID0gMDsKLSAgYm9vbCBpc19kZXN0cm95ZWQgPSBmYWxzZTsKLSAgLy8gQWx0aG91Z2ggQXBw
ZW5kIHBhc3NlcyB0aGUgb3duZXJzaGlwIG9mIHRoaXMgb2JqZWN0IHRvIHRoZSBsaXN0LAotICAv
LyB0aGUgZm9sbG93aW5nIGNhbGxzIHJlbGVhc2UgaXQsIGFuZCB3ZSBuZWVkIHRvIGRlbGV0ZSBp
dCBiZWZvcmUgdGhlCi0gIC8vIHRlc3QgZW5kcy4KLSAgVGVzdExpc3RlbmVyKiBsaXN0ZW5lciA9
IG5ldyBUZXN0TGlzdGVuZXIoJm9uX3N0YXJ0X2NvdW50ZXIsICZpc19kZXN0cm95ZWQpOwotICB7
Ci0gICAgVGVzdEV2ZW50TGlzdGVuZXJzIGxpc3RlbmVyczsKLSAgICBUZXN0RXZlbnRMaXN0ZW5l
cnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIoJmxpc3RlbmVycywgbGlzdGVuZXIp
OwotCi0gICAgRVhQRUNUX0VRKGxpc3RlbmVyLCBsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcikp
OwotICAgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3Jlc3VsdF9wcmludGVyKCkgPT0g
TlVMTCk7Ci0gICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7Ci0KLSAgICAvLyBCcm9hZGNh
c3RpbmcgZXZlbnRzIG5vdyBzaG91bGQgbm90IGFmZmVjdCBkZWZhdWx0X3Jlc3VsdF9wcmludGVy
LgotICAgIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJz
KS0+T25UZXN0UHJvZ3JhbVN0YXJ0KAotICAgICAgICAqVW5pdFRlc3Q6OkdldEluc3RhbmNlKCkp
OwotICAgIEVYUEVDVF9FUSgwLCBvbl9zdGFydF9jb3VudGVyKTsKLSAgfQotICAvLyBEZXN0cm95
aW5nIHRoZSBsaXN0IHNob3VsZCBub3QgYWZmZWN0IHRoZSBsaXN0ZW5lciBub3csIHRvby4KLSAg
RVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7Ci0gIGRlbGV0ZSBsaXN0ZW5lcjsKLX0KLQotLy8g
VGVzdHMgdGhhdCBhIGxpc3RlbmVyIGluc3RhbGxlZCB2aWEgU2V0RGVmYXVsdFhtbEdlbmVyYXRv
cigpIHN0YXJ0cwotLy8gcmVjZWl2aW5nIGV2ZW50cyBhbmQgaXMgcmV0dXJuZWQgdmlhIGRlZmF1
bHRfeG1sX2dlbmVyYXRvcigpIGFuZCB0aGF0Ci0vLyB0aGUgcHJldmlvdXMgZGVmYXVsdF94bWxf
Z2VuZXJhdG9yIGlzIHJlbW92ZWQgZnJvbSB0aGUgbGlzdCBhbmQgZGVsZXRlZC4KLVRFU1QoRXZl
bnRMaXN0ZW5lclRlc3QsIGRlZmF1bHRfeG1sX2dlbmVyYXRvcikgewotICBpbnQgb25fc3RhcnRf
Y291bnRlciA9IDA7Ci0gIGJvb2wgaXNfZGVzdHJveWVkID0gZmFsc2U7Ci0gIFRlc3RMaXN0ZW5l
ciogbGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKCZvbl9zdGFydF9jb3VudGVyLCAmaXNfZGVz
dHJveWVkKTsKLQotICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwotICBUZXN0RXZlbnRM
aXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFhtbEdlbmVyYXRvcigmbGlzdGVuZXJzLCBsaXN0
ZW5lcik7Ci0KLSAgRVhQRUNUX0VRKGxpc3RlbmVyLCBsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2Vu
ZXJhdG9yKCkpOwotCi0gIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigm
bGlzdGVuZXJzKS0+T25UZXN0UHJvZ3JhbVN0YXJ0KAotICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0
YW5jZSgpKTsKLQotICBFWFBFQ1RfRVEoMSwgb25fc3RhcnRfY291bnRlcik7Ci0KLSAgLy8gUmVw
bGFjaW5nIGRlZmF1bHRfeG1sX2dlbmVyYXRvciB3aXRoIHNvbWV0aGluZyBlbHNlIHNob3VsZCBy
ZW1vdmUgaXQKLSAgLy8gZnJvbSB0aGUgbGlzdCBhbmQgZGVzdHJveSBpdC4KLSAgVGVzdEV2ZW50
TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRYbWxHZW5lcmF0b3IoJmxpc3RlbmVycywgTlVM
TCk7Ci0KLSAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfeG1sX2dlbmVyYXRvcigpID09
IE5VTEwpOwotICBFWFBFQ1RfVFJVRShpc19kZXN0cm95ZWQpOwotCi0gIC8vIEFmdGVyIGJyb2Fk
Y2FzdGluZyBhbiBldmVudCB0aGUgY291bnRlciBpcyBzdGlsbCB0aGUgc2FtZSwgaW5kaWNhdGlu
ZwotICAvLyB0aGUgbGlzdGVuZXIgaXMgbm90IGluIHRoZSBsaXN0IGFueW1vcmUuCi0gIFRlc3RF
dmVudExpc3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJzKS0+T25UZXN0UHJv
Z3JhbVN0YXJ0KAotICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpKTsKLSAgRVhQRUNUX0VR
KDEsIG9uX3N0YXJ0X2NvdW50ZXIpOwotfQotCi0vLyBUZXN0cyB0aGF0IHRoZSBkZWZhdWx0X3ht
bF9nZW5lcmF0b3IgbGlzdGVuZXIgc3RvcHMgcmVjZWl2aW5nIGV2ZW50cwotLy8gd2hlbiByZW1v
dmVkIHZpYSBSZWxlYXNlIGFuZCB0aGF0IGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdCBhbnltb3Jl
LgotVEVTVChFdmVudExpc3RlbmVyVGVzdCwgUmVtb3ZpbmdEZWZhdWx0WG1sR2VuZXJhdG9yV29y
a3MpIHsKLSAgaW50IG9uX3N0YXJ0X2NvdW50ZXIgPSAwOwotICBib29sIGlzX2Rlc3Ryb3llZCA9
IGZhbHNlOwotICAvLyBBbHRob3VnaCBBcHBlbmQgcGFzc2VzIHRoZSBvd25lcnNoaXAgb2YgdGhp
cyBvYmplY3QgdG8gdGhlIGxpc3QsCi0gIC8vIHRoZSBmb2xsb3dpbmcgY2FsbHMgcmVsZWFzZSBp
dCwgYW5kIHdlIG5lZWQgdG8gZGVsZXRlIGl0IGJlZm9yZSB0aGUKLSAgLy8gdGVzdCBlbmRzLgot
ICBUZXN0TGlzdGVuZXIqIGxpc3RlbmVyID0gbmV3IFRlc3RMaXN0ZW5lcigmb25fc3RhcnRfY291
bnRlciwgJmlzX2Rlc3Ryb3llZCk7Ci0gIHsKLSAgICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVu
ZXJzOwotICAgIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0WG1sR2VuZXJh
dG9yKCZsaXN0ZW5lcnMsIGxpc3RlbmVyKTsKLQotICAgIEVYUEVDVF9FUShsaXN0ZW5lciwgbGlz
dGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpKTsKLSAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVm
YXVsdF94bWxfZ2VuZXJhdG9yKCkgPT0gTlVMTCk7Ci0gICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ry
b3llZCk7Ci0KLSAgICAvLyBCcm9hZGNhc3RpbmcgZXZlbnRzIG5vdyBzaG91bGQgbm90IGFmZmVj
dCBkZWZhdWx0X3htbF9nZW5lcmF0b3IuCi0gICAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6
OkdldFJlcGVhdGVyKCZsaXN0ZW5lcnMpLT5PblRlc3RQcm9ncmFtU3RhcnQoCi0gICAgICAgICpV
bml0VGVzdDo6R2V0SW5zdGFuY2UoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIG9uX3N0YXJ0X2NvdW50
ZXIpOwotICB9Ci0gIC8vIERlc3Ryb3lpbmcgdGhlIGxpc3Qgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IGxpc3RlbmVyIG5vdywgdG9vLgotICBFWFBFQ1RfRkFMU0UoaXNfZGVzdHJveWVkKTsKLSAgZGVs
ZXRlIGxpc3RlbmVyOwotfQotCi0vLyBTYW5pdHkgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIGFs
dGVybmF0aXZlLCB2ZXJib3NlIHNwZWxsaW5ncyBvZgotLy8gc29tZSBvZiB0aGUgbWFjcm9zIHdv
cmsuICBXZSBkb24ndCB0ZXN0IHRoZW0gdGhvcm91Z2hseSBhcyB0aGF0Ci0vLyB3b3VsZCBiZSBx
dWl0ZSBpbnZvbHZlZC4gIFNpbmNlIHRoZWlyIGltcGxlbWVudGF0aW9ucyBhcmUKLS8vIHN0cmFp
Z2h0Zm9yd2FyZCwgYW5kIHRoZXkgYXJlIHJhcmVseSB1c2VkLCB3ZSdsbCBqdXN0IHJlbHkgb24g
dGhlCi0vLyB1c2VycyB0byB0ZWxsIHVzIHdoZW4gdGhleSBhcmUgYnJva2VuLgotR1RFU1RfVEVT
VChBbHRlcm5hdGl2ZU5hbWVUZXN0LCBXb3JrcykgeyAgLy8gR1RFU1RfVEVTVCBpcyB0aGUgc2Ft
ZSBhcyBURVNULgotICBHVEVTVF9TVUNDRUVEKCkgPDwgIk9LIjsgIC8vIEdURVNUX1NVQ0NFRUQg
aXMgdGhlIHNhbWUgYXMgU1VDQ0VFRC4KLQotICAvLyBHVEVTVF9GQUlMIGlzIHRoZSBzYW1lIGFz
IEZBSUwuCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEdURVNUX0ZBSUwoKSA8PCAiQW4gZXhwZWN0
ZWQgZmFpbHVyZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICJBbiBleHBlY3RlZCBmYWlsdXJl
Iik7Ci0KLSAgLy8gR1RFU1RfQVNTRVJUX1hZIGlzIHRoZSBzYW1lIGFzIEFTU0VSVF9YWS4KLQot
ICBHVEVTVF9BU1NFUlRfRVEoMCwgMCk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEdURVNUX0FT
U0VSVF9FUSgwLCAxKSA8PCAiQW4gZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICJBbiBleHBlY3RlZCBmYWlsdXJlIik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEdU
RVNUX0FTU0VSVF9FUSgxLCAwKSA8PCAiQW4gZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICJBbiBleHBlY3RlZCBmYWlsdXJlIik7Ci0KLSAgR1RFU1RfQVNTRVJUX05F
KDAsIDEpOwotICBHVEVTVF9BU1NFUlRfTkUoMSwgMCk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJF
KEdURVNUX0FTU0VSVF9ORSgwLCAwKSA8PCAiQW4gZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICJBbiBleHBlY3RlZCBmYWlsdXJlIik7Ci0KLSAgR1RFU1RfQVNTRVJU
X0xFKDAsIDApOwotICBHVEVTVF9BU1NFUlRfTEUoMCwgMSk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlM
VVJFKEdURVNUX0FTU0VSVF9MRSgxLCAwKSA8PCAiQW4gZXhwZWN0ZWQgZmFpbHVyZSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICJBbiBleHBlY3RlZCBmYWlsdXJlIik7Ci0KLSAgR1RFU1RfQVNT
RVJUX0xUKDAsIDEpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShHVEVTVF9BU1NFUlRfTFQoMCwg
MCkgPDwgIkFuIGV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICAgICAiQW4g
ZXhwZWN0ZWQgZmFpbHVyZSIpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShHVEVTVF9BU1NFUlRf
TFQoMSwgMCkgPDwgIkFuIGV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICAg
ICAiQW4gZXhwZWN0ZWQgZmFpbHVyZSIpOwotCi0gIEdURVNUX0FTU0VSVF9HRSgwLCAwKTsKLSAg
R1RFU1RfQVNTRVJUX0dFKDEsIDApOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShHVEVTVF9BU1NF
UlRfR0UoMCwgMSkgPDwgIkFuIGV4cGVjdGVkIGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAg
ICAgICAiQW4gZXhwZWN0ZWQgZmFpbHVyZSIpOwotCi0gIEdURVNUX0FTU0VSVF9HVCgxLCAwKTsK
LSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoR1RFU1RfQVNTRVJUX0dUKDAsIDEpIDw8ICJBbiBleHBl
Y3RlZCBmYWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkFuIGV4cGVjdGVkIGZhaWx1
cmUiKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoR1RFU1RfQVNTRVJUX0dUKDEsIDEpIDw8ICJB
biBleHBlY3RlZCBmYWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkFuIGV4cGVjdGVk
IGZhaWx1cmUiKTsKLX0KLQotLy8gVGVzdHMgZm9yIGludGVybmFsIHV0aWxpdGllcyBuZWNlc3Nh
cnkgZm9yIGltcGxlbWVudGF0aW9uIG9mIHRoZSB1bml2ZXJzYWwKLS8vIHByaW50aW5nLgotLy8g
VE9ETyh2bGFkbEBnb29nbGUuY29tKTogRmluZCBhIGJldHRlciBob21lIGZvciB0aGVtLgotCi1j
bGFzcyBDb252ZXJzaW9uSGVscGVyQmFzZSB7fTsKLWNsYXNzIENvbnZlcnNpb25IZWxwZXJEZXJp
dmVkIDogcHVibGljIENvbnZlcnNpb25IZWxwZXJCYXNlIHt9OwotCi0vLyBUZXN0cyB0aGF0IElz
QVByb3RvY29sTWVzc2FnZTxUPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi1U
RVNUKElzQVByb3RvY29sTWVzc2FnZVRlc3QsIFZhbHVlSXNDb21waWxlVGltZUNvbnN0YW50KSB7
Ci0gIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhJc0FQcm90b2NvbE1lc3NhZ2U8UHJvdG9jb2xNZXNz
YWdlPjo6dmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdF90cnVlKTsKLSAgR1RF
U1RfQ09NUElMRV9BU1NFUlRfKCFJc0FQcm90b2NvbE1lc3NhZ2U8aW50Pjo6dmFsdWUsIGNvbnN0
X2ZhbHNlKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBJc0FQcm90b2NvbE1lc3NhZ2U8VD46OnZhbHVl
IGlzIHRydWUgd2hlbiBUIGlzCi0vLyBwcm90bzI6Ok1lc3NhZ2Ugb3IgYSBzdWItY2xhc3Mgb2Yg
aXQuCi1URVNUKElzQVByb3RvY29sTWVzc2FnZVRlc3QsIFZhbHVlSXNUcnVlV2hlblR5cGVJc0FQ
cm90b2NvbE1lc3NhZ2UpIHsKLSAgRVhQRUNUX1RSVUUoSXNBUHJvdG9jb2xNZXNzYWdlPCA6OnBy
b3RvMjo6TWVzc2FnZT46OnZhbHVlKTsKLSAgRVhQRUNUX1RSVUUoSXNBUHJvdG9jb2xNZXNzYWdl
PFByb3RvY29sTWVzc2FnZT46OnZhbHVlKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBJc0FQcm90b2Nv
bE1lc3NhZ2U8VD46OnZhbHVlIGlzIGZhbHNlIHdoZW4gVCBpcyBuZWl0aGVyCi0vLyBQcm90b2Nv
bE1lc3NhZ2Ugbm9yIGEgc3ViLWNsYXNzIG9mIGl0LgotVEVTVChJc0FQcm90b2NvbE1lc3NhZ2VU
ZXN0LCBWYWx1ZUlzRmFsc2VXaGVuVHlwZUlzTm90QVByb3RvY29sTWVzc2FnZSkgewotICBFWFBF
Q1RfRkFMU0UoSXNBUHJvdG9jb2xNZXNzYWdlPGludD46OnZhbHVlKTsKLSAgRVhQRUNUX0ZBTFNF
KElzQVByb3RvY29sTWVzc2FnZTxjb25zdCBDb252ZXJzaW9uSGVscGVyQmFzZT46OnZhbHVlKTsK
LX0KLQotLy8gVGVzdHMgdGhhdCBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbCBjb21waWxlcyB3aGVu
IHRoZSB0eXBlIGFyZ3VtZW50cyBhcmUKLS8vIGVxdWFsLgotVEVTVChDb21waWxlQXNzZXJ0VHlw
ZXNFcXVhbCwgQ29tcGlsZXNXaGVuVHlwZXNBcmVFcXVhbCkgewotICBDb21waWxlQXNzZXJ0VHlw
ZXNFcXVhbDx2b2lkLCB2b2lkPigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQqLCBp
bnQqPigpOwotfQotCi0vLyBUZXN0cyB0aGF0IFJlbW92ZVJlZmVyZW5jZSBkb2VzIG5vdCBhZmZl
Y3Qgbm9uLXJlZmVyZW5jZSB0eXBlcy4KLVRFU1QoUmVtb3ZlUmVmZXJlbmNlVGVzdCwgRG9lc05v
dEFmZmVjdE5vblJlZmVyZW5jZVR5cGUpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8aW50
LCBSZW1vdmVSZWZlcmVuY2U8aW50Pjo6dHlwZT4oKTsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWw8Y29uc3QgY2hhciwgUmVtb3ZlUmVmZXJlbmNlPGNvbnN0IGNoYXI+Ojp0eXBlPigpOwotfQot
Ci0vLyBUZXN0cyB0aGF0IFJlbW92ZVJlZmVyZW5jZSByZW1vdmVzIHJlZmVyZW5jZSBmcm9tIHJl
ZmVyZW5jZSB0eXBlcy4KLVRFU1QoUmVtb3ZlUmVmZXJlbmNlVGVzdCwgUmVtb3Zlc1JlZmVyZW5j
ZSkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQsIFJlbW92ZVJlZmVyZW5jZTxpbnQm
Pjo6dHlwZT4oKTsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8Y29uc3QgY2hhciwgUmVtb3Zl
UmVmZXJlbmNlPGNvbnN0IGNoYXImPjo6dHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgR1RFU1RfUkVN
T1ZFX1JFRkVSRU5DRV8uCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci12
b2lkIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZSgpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWw8VDEsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfKFQyKT4oKTsKLX0KLQotVEVTVChSZW1vdmVS
ZWZlcmVuY2VUZXN0LCBNYWNyb1ZlcnNpb24pIHsKLSAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNl
PGludCwgaW50PigpOwotICBUZXN0R1Rlc3RSZW1vdmVSZWZlcmVuY2U8Y29uc3QgY2hhciwgY29u
c3QgY2hhciY+KCk7Ci19Ci0KLQotLy8gVGVzdHMgdGhhdCBSZW1vdmVDb25zdCBkb2VzIG5vdCBh
ZmZlY3Qgbm9uLWNvbnN0IHR5cGVzLgotVEVTVChSZW1vdmVDb25zdFRlc3QsIERvZXNOb3RBZmZl
Y3ROb25Db25zdFR5cGUpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8aW50LCBSZW1vdmVD
b25zdDxpbnQ+Ojp0eXBlPigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjaGFyJiwgUmVt
b3ZlQ29uc3Q8Y2hhciY+Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0cyB0aGF0IFJlbW92ZUNvbnN0
IHJlbW92ZXMgY29uc3QgZnJvbSBjb25zdCB0eXBlcy4KLVRFU1QoUmVtb3ZlQ29uc3RUZXN0LCBS
ZW1vdmVzQ29uc3QpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8aW50LCBSZW1vdmVDb25z
dDxjb25zdCBpbnQ+Ojp0eXBlPigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjaGFyWzJd
LCBSZW1vdmVDb25zdDxjb25zdCBjaGFyWzJdPjo6dHlwZT4oKTsKLSAgQ29tcGlsZUFzc2VydFR5
cGVzRXF1YWw8Y2hhclsyXVszXSwgUmVtb3ZlQ29uc3Q8Y29uc3QgY2hhclsyXVszXT46OnR5cGU+
KCk7Ci19Ci0KLS8vIFRlc3RzIEdURVNUX1JFTU9WRV9DT05TVF8uCi0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci12b2lkIFRlc3RHVGVzdFJlbW92ZUNvbnN0KCkgewotICBD
b21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVNT1ZFX0NPTlNUXyhUMik+KCk7Ci19
Ci0KLVRFU1QoUmVtb3ZlQ29uc3RUZXN0LCBNYWNyb1ZlcnNpb24pIHsKLSAgVGVzdEdUZXN0UmVt
b3ZlQ29uc3Q8aW50LCBpbnQ+KCk7Ci0gIFRlc3RHVGVzdFJlbW92ZUNvbnN0PGRvdWJsZSYsIGRv
dWJsZSY+KCk7Ci0gIFRlc3RHVGVzdFJlbW92ZUNvbnN0PGNoYXIsIGNvbnN0IGNoYXI+KCk7Ci19
Ci0KLS8vIFRlc3RzIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXy4KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0UmVtb3ZlUmVmZXJl
bmNlQW5kQ29uc3QoKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPFQxLCBHVEVTVF9SRU1P
VkVfUkVGRVJFTkNFX0FORF9DT05TVF8oVDIpPigpOwotfQotCi1URVNUKFJlbW92ZVJlZmVyZW5j
ZVRvQ29uc3RUZXN0LCBXb3JrcykgewotICBUZXN0R1Rlc3RSZW1vdmVSZWZlcmVuY2VBbmRDb25z
dDxpbnQsIGludD4oKTsKLSAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlQW5kQ29uc3Q8ZG91Ymxl
LCBkb3VibGUmPigpOwotICBUZXN0R1Rlc3RSZW1vdmVSZWZlcmVuY2VBbmRDb25zdDxjaGFyLCBj
b25zdCBjaGFyPigpOwotICBUZXN0R1Rlc3RSZW1vdmVSZWZlcmVuY2VBbmRDb25zdDxjaGFyLCBj
b25zdCBjaGFyJj4oKTsKLSAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlQW5kQ29uc3Q8Y29uc3Qg
Y2hhciosIGNvbnN0IGNoYXIqPigpOwotfQotCi0vLyBUZXN0cyB0aGF0IEFkZFJlZmVyZW5jZSBk
b2VzIG5vdCBhZmZlY3QgcmVmZXJlbmNlIHR5cGVzLgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBE
b2VzTm90QWZmZWN0UmVmZXJlbmNlVHlwZSkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxp
bnQmLCBBZGRSZWZlcmVuY2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0Vx
dWFsPGNvbnN0IGNoYXImLCBBZGRSZWZlcmVuY2U8Y29uc3QgY2hhciY+Ojp0eXBlPigpOwotfQot
Ci0vLyBUZXN0cyB0aGF0IEFkZFJlZmVyZW5jZSBhZGRzIHJlZmVyZW5jZSB0byBub24tcmVmZXJl
bmNlIHR5cGVzLgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBBZGRzUmVmZXJlbmNlKSB7Ci0gIENv
bXBpbGVBc3NlcnRUeXBlc0VxdWFsPGludCYsIEFkZFJlZmVyZW5jZTxpbnQ+Ojp0eXBlPigpOwot
ICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjb25zdCBjaGFyJiwgQWRkUmVmZXJlbmNlPGNvbnN0
IGNoYXI+Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0cyBHVEVTVF9BRERfUkVGRVJFTkNFXy4KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0QWRkUmVm
ZXJlbmNlKCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfQUREX1JFRkVS
RU5DRV8oVDIpPigpOwotfQotCi1URVNUKEFkZFJlZmVyZW5jZVRlc3QsIE1hY3JvVmVyc2lvbikg
ewotICBUZXN0R1Rlc3RBZGRSZWZlcmVuY2U8aW50JiwgaW50PigpOwotICBUZXN0R1Rlc3RBZGRS
ZWZlcmVuY2U8Y29uc3QgY2hhciYsIGNvbnN0IGNoYXImPigpOwotfQotCi0vLyBUZXN0cyBHVEVT
VF9SRUZFUkVOQ0VfVE9fQ09OU1RfLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyPgotdm9pZCBUZXN0R1Rlc3RSZWZlcmVuY2VUb0NvbnN0KCkgewotICBDb21waWxlQXNzZXJ0
VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUMik+KCk7Ci19Ci0KLVRF
U1QoR1Rlc3RSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKLSAgVGVzdEdUZXN0UmVmZXJl
bmNlVG9Db25zdDxjb25zdCBjaGFyJiwgY2hhcj4oKTsKLSAgVGVzdEdUZXN0UmVmZXJlbmNlVG9D
b25zdDxjb25zdCBpbnQmLCBjb25zdCBpbnQ+KCk7Ci0gIFRlc3RHVGVzdFJlZmVyZW5jZVRvQ29u
c3Q8Y29uc3QgZG91YmxlJiwgZG91YmxlPigpOwotICBUZXN0R1Rlc3RSZWZlcmVuY2VUb0NvbnN0
PGNvbnN0IHN0ZDo6c3RyaW5nJiwgY29uc3Qgc3RkOjpzdHJpbmcmPigpOwotfQotCi0vLyBUZXN0
cyB0aGF0IEltcGxpY2l0bHlDb252ZXJ0aWJsZTxUMSwgVDI+Ojp2YWx1ZSBpcyBhIGNvbXBpbGUt
dGltZSBjb25zdGFudC4KLVRFU1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVzdCwgVmFsdWVJc0Nv
bXBpbGVUaW1lQ29uc3RhbnQpIHsKLSAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKChJbXBsaWNpdGx5
Q29udmVydGlibGU8aW50LCBpbnQ+Ojp2YWx1ZSksIGNvbnN0X3RydWUpOwotICBHVEVTVF9DT01Q
SUxFX0FTU0VSVF8oKCFJbXBsaWNpdGx5Q29udmVydGlibGU8dm9pZCosIGludCo+Ojp2YWx1ZSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9mYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHRo
YXQgSW1wbGljaXRseUNvbnZlcnRpYmxlPFQxLCBUMj46OnZhbHVlIGlzIHRydWUgd2hlbiBUMSBj
YW4KLS8vIGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvIFQyLgotVEVTVChJbXBsaWNpdGx5Q29u
dmVydGlibGVUZXN0LCBWYWx1ZUlzVHJ1ZVdoZW5Db252ZXJ0aWJsZSkgewotICBFWFBFQ1RfVFJV
RSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGludCwgZG91YmxlPjo6dmFsdWUpKTsKLSAgRVhQRUNU
X1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxkb3VibGUsIGludD46OnZhbHVlKSk7Ci0gIEVY
UEVDVF9UUlVFKChJbXBsaWNpdGx5Q29udmVydGlibGU8aW50Kiwgdm9pZCo+Ojp2YWx1ZSkpOwot
ICBFWFBFQ1RfVFJVRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGludCosIGNvbnN0IGludCo+Ojp2
YWx1ZSkpOwotICBFWFBFQ1RfVFJVRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPENvbnZlcnNpb25I
ZWxwZXJEZXJpdmVkJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBDb252ZXJzaW9uSGVscGVyQmFzZSY+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfVFJVRSgoSW1wbGlj
aXRseUNvbnZlcnRpYmxlPGNvbnN0IENvbnZlcnNpb25IZWxwZXJCYXNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENvbnZlcnNpb25IZWxwZXJCYXNlPjo6dmFsdWUpKTsK
LX0KLQotLy8gVGVzdHMgdGhhdCBJbXBsaWNpdGx5Q29udmVydGlibGU8VDEsIFQyPjo6dmFsdWUg
aXMgZmFsc2Ugd2hlbiBUMQotLy8gY2Fubm90IGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvIFQy
LgotVEVTVChJbXBsaWNpdGx5Q29udmVydGlibGVUZXN0LCBWYWx1ZUlzRmFsc2VXaGVuTm90Q29u
dmVydGlibGUpIHsKLSAgRVhQRUNUX0ZBTFNFKChJbXBsaWNpdGx5Q29udmVydGlibGU8ZG91Ymxl
LCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0ZBTFNFKChJbXBsaWNpdGx5Q29udmVydGlibGU8
dm9pZCosIGludCo+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfRkFMU0UoKEltcGxpY2l0bHlDb252ZXJ0
aWJsZTxjb25zdCBpbnQqLCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0ZBTFNFKChJbXBsaWNp
dGx5Q29udmVydGlibGU8Q29udmVyc2lvbkhlbHBlckJhc2UmLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDb252ZXJzaW9uSGVscGVyRGVyaXZlZCY+Ojp2YWx1ZSkpOwot
fQotCi0vLyBUZXN0cyBJc0NvbnRhaW5lclRlc3QuCi0KLWNsYXNzIE5vbkNvbnRhaW5lciB7fTsK
LQotVEVTVChJc0NvbnRhaW5lclRlc3RUZXN0LCBXb3Jrc0Zvck5vbkNvbnRhaW5lcikgewotICBF
WFBFQ1RfRVEoc2l6ZW9mKElzTm90Q29udGFpbmVyKSwgc2l6ZW9mKElzQ29udGFpbmVyVGVzdDxp
bnQ+KDApKSk7Ci0gIEVYUEVDVF9FUShzaXplb2YoSXNOb3RDb250YWluZXIpLCBzaXplb2YoSXND
b250YWluZXJUZXN0PGNoYXJbNV0+KDApKSk7Ci0gIEVYUEVDVF9FUShzaXplb2YoSXNOb3RDb250
YWluZXIpLCBzaXplb2YoSXNDb250YWluZXJUZXN0PE5vbkNvbnRhaW5lcj4oMCkpKTsKLX0KLQot
VEVTVChJc0NvbnRhaW5lclRlc3RUZXN0LCBXb3Jrc0ZvckNvbnRhaW5lcikgewotICBFWFBFQ1Rf
RVEoc2l6ZW9mKElzQ29udGFpbmVyKSwKLSAgICAgICAgICAgIHNpemVvZihJc0NvbnRhaW5lclRl
c3Q8c3RkOjp2ZWN0b3I8Ym9vbD4gPigwKSkpOwotICBFWFBFQ1RfRVEoc2l6ZW9mKElzQ29udGFp
bmVyKSwKLSAgICAgICAgICAgIHNpemVvZihJc0NvbnRhaW5lclRlc3Q8c3RkOjptYXA8aW50LCBk
b3VibGU+ID4oMCkpKTsKLX0KLQotLy8gVGVzdHMgQXJyYXlFcSgpLgotCi1URVNUKEFycmF5RXFU
ZXN0LCBXb3Jrc0ZvckRlZ2VuZXJhdGVkQXJyYXlzKSB7Ci0gIEVYUEVDVF9UUlVFKEFycmF5RXEo
NSwgNUwpKTsKLSAgRVhQRUNUX0ZBTFNFKEFycmF5RXEoJ2EnLCAwKSk7Ci19Ci0KLVRFU1QoQXJy
YXlFcVRlc3QsIFdvcmtzRm9yT25lRGltZW5zaW9uYWxBcnJheXMpIHsKLSAgLy8gTm90ZSB0aGF0
IGEgYW5kIGIgYXJlIGRpc3RpbmN0IGJ1dCBjb21wYXRpYmxlIHR5cGVzLgotICBjb25zdCBpbnQg
YVtdID0geyAwLCAxIH07Ci0gIGxvbmcgYltdID0geyAwLCAxIH07Ci0gIEVYUEVDVF9UUlVFKEFy
cmF5RXEoYSwgYikpOwotICBFWFBFQ1RfVFJVRShBcnJheUVxKGEsIDIsIGIpKTsKLQotICBiWzBd
ID0gMjsKLSAgRVhQRUNUX0ZBTFNFKEFycmF5RXEoYSwgYikpOwotICBFWFBFQ1RfRkFMU0UoQXJy
YXlFcShhLCAxLCBiKSk7Ci19Ci0KLVRFU1QoQXJyYXlFcVRlc3QsIFdvcmtzRm9yVHdvRGltZW5z
aW9uYWxBcnJheXMpIHsKLSAgY29uc3QgY2hhciBhW11bM10gPSB7ICJoaSIsICJsbyIgfTsKLSAg
Y29uc3QgY2hhciBiW11bM10gPSB7ICJoaSIsICJsbyIgfTsKLSAgY29uc3QgY2hhciBjW11bM10g
PSB7ICJoaSIsICJsaSIgfTsKLQotICBFWFBFQ1RfVFJVRShBcnJheUVxKGEsIGIpKTsKLSAgRVhQ
RUNUX1RSVUUoQXJyYXlFcShhLCAyLCBiKSk7Ci0KLSAgRVhQRUNUX0ZBTFNFKEFycmF5RXEoYSwg
YykpOwotICBFWFBFQ1RfRkFMU0UoQXJyYXlFcShhLCAyLCBjKSk7Ci19Ci0KLS8vIFRlc3RzIEFy
cmF5QXdhcmVGaW5kKCkuCi0KLVRFU1QoQXJyYXlBd2FyZUZpbmRUZXN0LCBXb3Jrc0Zvck9uZURp
bWVuc2lvbmFsQXJyYXkpIHsKLSAgY29uc3QgY2hhciBhW10gPSAiaGVsbG8iOwotICBFWFBFQ1Rf
RVEoYSArIDQsIEFycmF5QXdhcmVGaW5kKGEsIGEgKyA1LCAnbycpKTsKLSAgRVhQRUNUX0VRKGEg
KyA1LCBBcnJheUF3YXJlRmluZChhLCBhICsgNSwgJ3gnKSk7Ci19Ci0KLVRFU1QoQXJyYXlBd2Fy
ZUZpbmRUZXN0LCBXb3Jrc0ZvclR3b0RpbWVuc2lvbmFsQXJyYXkpIHsKLSAgaW50IGFbXVsyXSA9
IHsgeyAwLCAxIH0sIHsgMiwgMyB9LCB7IDQsIDUgfSB9OwotICBjb25zdCBpbnQgYlsyXSA9IHsg
MiwgMyB9OwotICBFWFBFQ1RfRVEoYSArIDEsIEFycmF5QXdhcmVGaW5kKGEsIGEgKyAzLCBiKSk7
Ci0KLSAgY29uc3QgaW50IGNbMl0gPSB7IDYsIDcgfTsKLSAgRVhQRUNUX0VRKGEgKyAzLCBBcnJh
eUF3YXJlRmluZChhLCBhICsgMywgYykpOwotfQotCi0vLyBUZXN0cyBDb3B5QXJyYXkoKS4KLQot
VEVTVChDb3B5QXJyYXlUZXN0LCBXb3Jrc0ZvckRlZ2VuZXJhdGVkQXJyYXlzKSB7Ci0gIGludCBu
ID0gMDsKLSAgQ29weUFycmF5KCdhJywgJm4pOwotICBFWFBFQ1RfRVEoJ2EnLCBuKTsKLX0KLQot
VEVTVChDb3B5QXJyYXlUZXN0LCBXb3Jrc0Zvck9uZURpbWVuc2lvbmFsQXJyYXlzKSB7Ci0gIGNv
bnN0IGNoYXIgYVszXSA9ICJoaSI7Ci0gIGludCBiWzNdOwotI2lmbmRlZiBfX0JPUkxBTkRDX18g
IC8vIEMrK0J1aWxkZXIgY2Fubm90IGNvbXBpbGUgc29tZSBhcnJheSBzaXplIGRlZHVjdGlvbnMu
Ci0gIENvcHlBcnJheShhLCAmYik7Ci0gIEVYUEVDVF9UUlVFKEFycmF5RXEoYSwgYikpOwotI2Vu
ZGlmCi0KLSAgaW50IGNbM107Ci0gIENvcHlBcnJheShhLCAzLCBjKTsKLSAgRVhQRUNUX1RSVUUo
QXJyYXlFcShhLCBjKSk7Ci19Ci0KLVRFU1QoQ29weUFycmF5VGVzdCwgV29ya3NGb3JUd29EaW1l
bnNpb25hbEFycmF5cykgewotICBjb25zdCBpbnQgYVsyXVszXSA9IHsgeyAwLCAxLCAyIH0sIHsg
MywgNCwgNSB9IH07Ci0gIGludCBiWzJdWzNdOwotI2lmbmRlZiBfX0JPUkxBTkRDX18gIC8vIEMr
K0J1aWxkZXIgY2Fubm90IGNvbXBpbGUgc29tZSBhcnJheSBzaXplIGRlZHVjdGlvbnMuCi0gIENv
cHlBcnJheShhLCAmYik7Ci0gIEVYUEVDVF9UUlVFKEFycmF5RXEoYSwgYikpOwotI2VuZGlmCi0K
LSAgaW50IGNbMl1bM107Ci0gIENvcHlBcnJheShhLCAyLCBjKTsKLSAgRVhQRUNUX1RSVUUoQXJy
YXlFcShhLCBjKSk7Ci19Ci0KLS8vIFRlc3RzIE5hdGl2ZUFycmF5LgotCi1URVNUKE5hdGl2ZUFy
cmF5VGVzdCwgQ29uc3RydWN0b3JGcm9tQXJyYXlXb3JrcykgewotICBjb25zdCBpbnQgYVszXSA9
IHsgMCwgMSwgMiB9OwotICBOYXRpdmVBcnJheTxpbnQ+IG5hKGEsIDMsIFJlbGF0aW9uVG9Tb3Vy
Y2VSZWZlcmVuY2UoKSk7Ci0gIEVYUEVDVF9FUSgzVSwgbmEuc2l6ZSgpKTsKLSAgRVhQRUNUX0VR
KGEsIG5hLmJlZ2luKCkpOwotfQotCi1URVNUKE5hdGl2ZUFycmF5VGVzdCwgQ3JlYXRlc0FuZERl
bGV0ZXNDb3B5T2ZBcnJheVdoZW5Bc2tlZFRvKSB7Ci0gIHR5cGVkZWYgaW50IEFycmF5WzJdOwot
ICBBcnJheSogYSA9IG5ldyBBcnJheVsxXTsKLSAgKCphKVswXSA9IDA7Ci0gICgqYSlbMV0gPSAx
OwotICBOYXRpdmVBcnJheTxpbnQ+IG5hKCphLCAyLCBSZWxhdGlvblRvU291cmNlQ29weSgpKTsK
LSAgRVhQRUNUX05FKCphLCBuYS5iZWdpbigpKTsKLSAgZGVsZXRlW10gYTsKLSAgRVhQRUNUX0VR
KDAsIG5hLmJlZ2luKClbMF0pOwotICBFWFBFQ1RfRVEoMSwgbmEuYmVnaW4oKVsxXSk7Ci0KLSAg
Ly8gV2UgcmVseSBvbiB0aGUgaGVhcCBjaGVja2VyIHRvIHZlcmlmeSB0aGF0IG5hIGRlbGV0ZXMg
dGhlIGNvcHkgb2YKLSAgLy8gYXJyYXkuCi19Ci0KLVRFU1QoTmF0aXZlQXJyYXlUZXN0LCBUeXBl
TWVtYmVyc0FyZUNvcnJlY3QpIHsKLSAgU3RhdGljQXNzZXJ0VHlwZUVxPGNoYXIsIE5hdGl2ZUFy
cmF5PGNoYXI+Ojp2YWx1ZV90eXBlPigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50WzJdLCBO
YXRpdmVBcnJheTxpbnRbMl0+Ojp2YWx1ZV90eXBlPigpOwotCi0gIFN0YXRpY0Fzc2VydFR5cGVF
cTxjb25zdCBjaGFyKiwgTmF0aXZlQXJyYXk8Y2hhcj46OmNvbnN0X2l0ZXJhdG9yPigpOwotICBT
dGF0aWNBc3NlcnRUeXBlRXE8Y29uc3QgYm9vbCgqKVsyXSwgTmF0aXZlQXJyYXk8Ym9vbFsyXT46
OmNvbnN0X2l0ZXJhdG9yPigpOwotfQotCi1URVNUKE5hdGl2ZUFycmF5VGVzdCwgTWV0aG9kc1dv
cmspIHsKLSAgY29uc3QgaW50IGFbM10gPSB7IDAsIDEsIDIgfTsKLSAgTmF0aXZlQXJyYXk8aW50
PiBuYShhLCAzLCBSZWxhdGlvblRvU291cmNlQ29weSgpKTsKLSAgQVNTRVJUX0VRKDNVLCBuYS5z
aXplKCkpOwotICBFWFBFQ1RfRVEoMywgbmEuZW5kKCkgLSBuYS5iZWdpbigpKTsKLQotICBOYXRp
dmVBcnJheTxpbnQ+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG5hLmJlZ2luKCk7Ci0gIEVYUEVDVF9F
USgwLCAqaXQpOwotICArK2l0OwotICBFWFBFQ1RfRVEoMSwgKml0KTsKLSAgKytpdDsKLSAgRVhQ
RUNUX0VRKDIsICppdCk7Ci0gICsraXQ7Ci0gIEVYUEVDVF9FUShuYS5lbmQoKSwgaXQpOwotCi0g
IEVYUEVDVF9UUlVFKG5hID09IG5hKTsKLQotICBOYXRpdmVBcnJheTxpbnQ+IG5hMihhLCAzLCBS
ZWxhdGlvblRvU291cmNlUmVmZXJlbmNlKCkpOwotICBFWFBFQ1RfVFJVRShuYSA9PSBuYTIpOwot
Ci0gIGNvbnN0IGludCBiMVszXSA9IHsgMCwgMSwgMSB9OwotICBjb25zdCBpbnQgYjJbNF0gPSB7
IDAsIDEsIDIsIDMgfTsKLSAgRVhQRUNUX0ZBTFNFKG5hID09IE5hdGl2ZUFycmF5PGludD4oYjEs
IDMsIFJlbGF0aW9uVG9Tb3VyY2VSZWZlcmVuY2UoKSkpOwotICBFWFBFQ1RfRkFMU0UobmEgPT0g
TmF0aXZlQXJyYXk8aW50PihiMiwgNCwgUmVsYXRpb25Ub1NvdXJjZUNvcHkoKSkpOwotfQotCi1U
RVNUKE5hdGl2ZUFycmF5VGVzdCwgV29ya3NGb3JUd29EaW1lbnNpb25hbEFycmF5KSB7Ci0gIGNv
bnN0IGNoYXIgYVsyXVszXSA9IHsgImhpIiwgImxvIiB9OwotICBOYXRpdmVBcnJheTxjaGFyWzNd
PiBuYShhLCAyLCBSZWxhdGlvblRvU291cmNlUmVmZXJlbmNlKCkpOwotICBBU1NFUlRfRVEoMlUs
IG5hLnNpemUoKSk7Ci0gIEVYUEVDVF9FUShhLCBuYS5iZWdpbigpKTsKLX0KLQotLy8gVGVzdHMg
U2tpcFByZWZpeCgpLgotCi1URVNUKFNraXBQcmVmaXhUZXN0LCBTa2lwc1doZW5QcmVmaXhNYXRj
aGVzKSB7Ci0gIGNvbnN0IGNoYXIqIGNvbnN0IHN0ciA9ICJoZWxsbyI7Ci0KLSAgY29uc3QgY2hh
ciogcCA9IHN0cjsKLSAgRVhQRUNUX1RSVUUoU2tpcFByZWZpeCgiIiwgJnApKTsKLSAgRVhQRUNU
X0VRKHN0ciwgcCk7Ci0KLSAgcCA9IHN0cjsKLSAgRVhQRUNUX1RSVUUoU2tpcFByZWZpeCgiaGVs
bCIsICZwKSk7Ci0gIEVYUEVDVF9FUShzdHIgKyA0LCBwKTsKLX0KLQotVEVTVChTa2lwUHJlZml4
VGVzdCwgRG9lc05vdFNraXBXaGVuUHJlZml4RG9lc05vdE1hdGNoKSB7Ci0gIGNvbnN0IGNoYXIq
IGNvbnN0IHN0ciA9ICJ3b3JsZCI7Ci0KLSAgY29uc3QgY2hhciogcCA9IHN0cjsKLSAgRVhQRUNU
X0ZBTFNFKFNraXBQcmVmaXgoIlciLCAmcCkpOwotICBFWFBFQ1RfRVEoc3RyLCBwKTsKLQotICBw
ID0gc3RyOwotICBFWFBFQ1RfRkFMU0UoU2tpcFByZWZpeCgid29ybGQhIiwgJnApKTsKLSAgRVhQ
RUNUX0VRKHN0ciwgcCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29n
bGV0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUxX3Rlc3RfLmNjCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlM2QxZGQxZWY5N2UwMjBjMzAwMDE5N2E3MWYzNzlhZDk0MDk0ZmIwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9w
YXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUxX3Rlc3RfLmNjCisrKyAvZGV2
L251bGwKQEAgLTEsNDggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0v
LyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotLy8KLS8vCi0vLyBndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8gd3JpdGVzIHNv
bWUgeG1sIHZpYSBUZXN0UHJvcGVydHkgdXNlZCBieQotLy8gZ3Rlc3RfeG1sX291dGZpbGVzX3Rl
c3QucHkKLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLWNsYXNzIFByb3BlcnR5T25lIDog
cHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVw
KCkgewotICAgIFJlY29yZFByb3BlcnR5KCJTZXRVcFByb3AiLCAxKTsKLSAgfQotICB2aXJ0dWFs
IHZvaWQgVGVhckRvd24oKSB7Ci0gICAgUmVjb3JkUHJvcGVydHkoIlRlYXJEb3duUHJvcCIsIDEp
OwotICB9Ci19OwotCi1URVNUX0YoUHJvcGVydHlPbmUsIFRlc3RTb21lUHJvcGVydGllcykgewot
ICBSZWNvcmRQcm9wZXJ0eSgiVGVzdFNvbWVQcm9wZXJ0eSIsIDEpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8u
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMl90
ZXN0Xy5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTVlYjhmMzk0ZmE5NGMyYTli
NzJhMTc0NmYzZGM0YzFlNjIwOTk1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3htbF9v
dXRmaWxlMl90ZXN0Xy5jYworKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8vIENvcHly
aWdodCAyMDA4LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
Ly8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0
aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
Ly8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLwotLy8gZ3Rlc3RfeG1s
X291dGZpbGUyX3Rlc3RfIHdyaXRlcyBzb21lIHhtbCB2aWEgVGVzdFByb3BlcnR5IHVzZWQgYnkK
LS8vIGd0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5Ci0KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5o
IgotCi1jbGFzcyBQcm9wZXJ0eVR3byA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0
ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBSZWNvcmRQcm9wZXJ0eSgiU2V0VXBQ
cm9wIiwgMik7Ci0gIH0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIFJlY29yZFBy
b3BlcnR5KCJUZWFyRG93blByb3AiLCAyKTsKLSAgfQotfTsKLQotVEVTVF9GKFByb3BlcnR5VHdv
LCBUZXN0U29tZVByb3BlcnRpZXMpIHsKLSAgUmVjb3JkUHJvcGVydHkoIlRlc3RTb21lUHJvcGVy
dHkiLCAyKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3Qv
Z3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90
ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2NzhmNTQ2YzYzYmVmYmU1NDk3OTlmZjZlNzdlNDk0ZjhmZTVjYmViLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29n
bGV0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzIgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDA4
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotIiIiVW5pdCB0ZXN0IGZvciB0aGUgZ3Rlc3RfeG1sX291dHB1dCBtb2R1bGUuIiIiCi0KLV9f
YXV0aG9yX18gPSAia2VpdGgucmF5QGdtYWlsLmNvbSAoS2VpdGggUmF5KSIKLQotaW1wb3J0IG9z
Ci1mcm9tIHhtbC5kb20gaW1wb3J0IG1pbmlkb20sIE5vZGUKLQotaW1wb3J0IGd0ZXN0X3Rlc3Rf
dXRpbHMKLWltcG9ydCBndGVzdF94bWxfdGVzdF91dGlscwotCi0KLUdURVNUX09VVFBVVF9TVUJE
SVIgPSAieG1sX291dGZpbGVzIgotR1RFU1RfT1VUUFVUXzFfVEVTVCA9ICJndGVzdF94bWxfb3V0
ZmlsZTFfdGVzdF8iCi1HVEVTVF9PVVRQVVRfMl9URVNUID0gImd0ZXN0X3htbF9vdXRmaWxlMl90
ZXN0XyIKLQotRVhQRUNURURfWE1MXzEgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJVVEYtOCI/PgotPHRlc3RzdWl0ZXMgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIG5hbWU9IkFsbFRlc3RzIj4KLSAg
PHRlc3RzdWl0ZSBuYW1lPSJQcm9wZXJ0eU9uZSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNh
YmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdFNv
bWVQcm9wZXJ0aWVzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eU9u
ZSIgU2V0VXBQcm9wPSIxIiBUZXN0U29tZVByb3BlcnR5PSIxIiBUZWFyRG93blByb3A9IjEiIC8+
Ci0gIDwvdGVzdHN1aXRlPgotPC90ZXN0c3VpdGVzPgotIiIiCi0KLUVYUEVDVEVEX1hNTF8yID0g
IiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTx0ZXN0c3VpdGVzIHRl
c3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGlt
ZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlU
d28iIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0i
KiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4i
IHRpbWU9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlUd28iIFNldFVwUHJvcD0iMiIgVGVzdFNvbWVQ
cm9wZXJ0eT0iMiIgVGVhckRvd25Qcm9wPSIyIiAvPgotICA8L3Rlc3RzdWl0ZT4KLTwvdGVzdHN1
aXRlcz4KLSIiIgotCi0KLWNsYXNzIEdUZXN0WE1MT3V0RmlsZXNUZXN0KGd0ZXN0X3htbF90ZXN0
X3V0aWxzLkdUZXN0WE1MVGVzdENhc2UpOgotICAiIiJVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0
J3MgWE1MIG91dHB1dCBmdW5jdGlvbmFsaXR5LiIiIgotCi0gIGRlZiBzZXRVcChzZWxmKToKLSAg
ICAjIFdlIHdhbnQgdGhlIHRyYWlsaW5nICcvJyB0aGF0IHRoZSBsYXN0ICIiIHByb3ZpZGVzIGlu
IG9zLnBhdGguam9pbiwgZm9yCi0gICAgIyB0ZWxsaW5nIEdvb2dsZSBUZXN0IHRvIGNyZWF0ZSBh
biBvdXRwdXQgZGlyZWN0b3J5IGluc3RlYWQgb2YgYSBzaW5nbGUgZmlsZQotICAgICMgZm9yIHht
bCBvdXRwdXQuCi0gICAgc2VsZi5vdXRwdXRfZGlyXyA9IG9zLnBhdGguam9pbihndGVzdF90ZXN0
X3V0aWxzLkdldFRlbXBEaXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdURVNUX09VVFBVVF9TVUJESVIsICIiKQotICAgIHNlbGYuRGVsZXRlRmlsZXNBbmREaXIoKQot
Ci0gIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICBzZWxmLkRlbGV0ZUZpbGVzQW5kRGlyKCkKLQot
ICBkZWYgRGVsZXRlRmlsZXNBbmREaXIoc2VsZik6Ci0gICAgdHJ5OgotICAgICAgb3MucmVtb3Zl
KG9zLnBhdGguam9pbihzZWxmLm91dHB1dF9kaXJfLCBHVEVTVF9PVVRQVVRfMV9URVNUICsgIi54
bWwiKSkKLSAgICBleGNlcHQgb3MuZXJyb3I6Ci0gICAgICBwYXNzCi0gICAgdHJ5OgotICAgICAg
b3MucmVtb3ZlKG9zLnBhdGguam9pbihzZWxmLm91dHB1dF9kaXJfLCBHVEVTVF9PVVRQVVRfMl9U
RVNUICsgIi54bWwiKSkKLSAgICBleGNlcHQgb3MuZXJyb3I6Ci0gICAgICBwYXNzCi0gICAgdHJ5
OgotICAgICAgb3Mucm1kaXIoc2VsZi5vdXRwdXRfZGlyXykKLSAgICBleGNlcHQgb3MuZXJyb3I6
Ci0gICAgICBwYXNzCi0KLSAgZGVmIHRlc3RPdXRmaWxlMShzZWxmKToKLSAgICBzZWxmLl9UZXN0
T3V0RmlsZShHVEVTVF9PVVRQVVRfMV9URVNULCBFWFBFQ1RFRF9YTUxfMSkKLQotICBkZWYgdGVz
dE91dGZpbGUyKHNlbGYpOgotICAgIHNlbGYuX1Rlc3RPdXRGaWxlKEdURVNUX09VVFBVVF8yX1RF
U1QsIEVYUEVDVEVEX1hNTF8yKQotCi0gIGRlZiBfVGVzdE91dEZpbGUoc2VsZiwgdGVzdF9uYW1l
LCBleHBlY3RlZF94bWwpOgotICAgIGd0ZXN0X3Byb2dfcGF0aCA9IGd0ZXN0X3Rlc3RfdXRpbHMu
R2V0VGVzdEV4ZWN1dGFibGVQYXRoKHRlc3RfbmFtZSkKLSAgICBjb21tYW5kID0gW2d0ZXN0X3By
b2dfcGF0aCwgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDolcyIgJSBzZWxmLm91dHB1dF9kaXJfXQotICAg
IHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoY29tbWFuZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdvcmtpbmdfZGlyPWd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVt
cERpcigpKQotICAgIHNlbGYuYXNzZXJ0XyhwLmV4aXRlZCkKLSAgICBzZWxmLmFzc2VydEVxdWFs
cygwLCBwLmV4aXRfY29kZSkKLQotICAgICMgVE9ETyh3YW5AZ29vZ2xlLmNvbSk6IGxpYnRvb2wg
Y2F1c2VzIHRoZSBidWlsdCB0ZXN0IGJpbmFyeSB0byBiZQotICAgICMgICBuYW1lZCBsdC1ndGVz
dF94bWxfb3V0ZmlsZXNfdGVzdF8gaW5zdGVhZCBvZgotICAgICMgICBndGVzdF94bWxfb3V0Zmls
ZXNfdGVzdF8uICBUbyBhY2NvdW50IGZvciB0aGlzIHBvc3NpYmlsaXR5LCB3ZQotICAgICMgICBh
bGxvdyBib3RoIG5hbWVzIGluIHRoZSBmb2xsb3dpbmcgY29kZS4gIFdlIHNob3VsZCByZW1vdmUg
dGhpcwotICAgICMgICBoYWNrIHdoZW4gQ2hhbmRsZXIgQ2FycnV0aCdzIGxpYnRvb2wgcmVwbGFj
ZW1lbnQgdG9vbCBpcyByZWFkeS4KLSAgICBvdXRwdXRfZmlsZV9uYW1lMSA9IHRlc3RfbmFtZSAr
ICIueG1sIgotICAgIG91dHB1dF9maWxlMSA9IG9zLnBhdGguam9pbihzZWxmLm91dHB1dF9kaXJf
LCBvdXRwdXRfZmlsZV9uYW1lMSkKLSAgICBvdXRwdXRfZmlsZV9uYW1lMiA9ICdsdC0nICsgb3V0
cHV0X2ZpbGVfbmFtZTEKLSAgICBvdXRwdXRfZmlsZTIgPSBvcy5wYXRoLmpvaW4oc2VsZi5vdXRw
dXRfZGlyXywgb3V0cHV0X2ZpbGVfbmFtZTIpCi0gICAgc2VsZi5hc3NlcnRfKG9zLnBhdGguaXNm
aWxlKG91dHB1dF9maWxlMSkgb3Igb3MucGF0aC5pc2ZpbGUob3V0cHV0X2ZpbGUyKSwKLSAgICAg
ICAgICAgICAgICAgb3V0cHV0X2ZpbGUxKQotCi0gICAgZXhwZWN0ZWQgPSBtaW5pZG9tLnBhcnNl
U3RyaW5nKGV4cGVjdGVkX3htbCkKLSAgICBpZiBvcy5wYXRoLmlzZmlsZShvdXRwdXRfZmlsZTEp
OgotICAgICAgYWN0dWFsID0gbWluaWRvbS5wYXJzZShvdXRwdXRfZmlsZTEpCi0gICAgZWxzZToK
LSAgICAgIGFjdHVhbCA9IG1pbmlkb20ucGFyc2Uob3V0cHV0X2ZpbGUyKQotICAgIHNlbGYuTm9y
bWFsaXplWG1sKGFjdHVhbC5kb2N1bWVudEVsZW1lbnQpCi0gICAgc2VsZi5Bc3NlcnRFcXVpdmFs
ZW50Tm9kZXMoZXhwZWN0ZWQuZG9jdW1lbnRFbGVtZW50LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFjdHVhbC5kb2N1bWVudEVsZW1lbnQpCi0gICAgZXhwZWN0ZWQudW5saW5rKCkK
LSAgICBhY3R1YWwudW5saW5rKCkKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICBv
cy5lbnZpcm9uWyJHVEVTVF9TVEFDS19UUkFDRV9ERVBUSCJdID0gIjAiCi0gIGd0ZXN0X3Rlc3Rf
dXRpbHMuTWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0
L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDlmOTJmOTgyZGQ1MWMwZjkxOGIwYjczY2E0Yzk1NzYxMmYzM2FhZjcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L2dvb2dsZXRlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0LnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMzExICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmln
aHQgMjAwNiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLSIiIlVuaXQgdGVzdCBmb3IgdGhlIGd0ZXN0X3htbF9vdXRwdXQgbW9kdWxlIiIi
Ci0KLV9fYXV0aG9yX18gPSAnZWVmYWNtQGdtYWlsLmNvbSAoU2VhbiBNY2FmZWUpJwotCi1pbXBv
cnQgZGF0ZXRpbWUKLWltcG9ydCBlcnJubwotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBz
eXMKLWZyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbSwgTm9kZQotCi1pbXBvcnQgZ3Rlc3RfdGVz
dF91dGlscwotaW1wb3J0IGd0ZXN0X3htbF90ZXN0X3V0aWxzCi0KLQotR1RFU1RfRklMVEVSX0ZM
QUcgPSAnLS1ndGVzdF9maWx0ZXInCi1HVEVTVF9MSVNUX1RFU1RTX0ZMQUcgPSAnLS1ndGVzdF9s
aXN0X3Rlc3RzJwotR1RFU1RfT1VUUFVUX0ZMQUcgICAgICAgICA9ICItLWd0ZXN0X291dHB1dCIK
LUdURVNUX0RFRkFVTFRfT1VUUFVUX0ZJTEUgPSAidGVzdF9kZXRhaWwueG1sIgotR1RFU1RfUFJP
R1JBTV9OQU1FID0gImd0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfIgotCi1TVVBQT1JUU19TVEFD
S19UUkFDRVMgPSBGYWxzZQotCi1pZiBTVVBQT1JUU19TVEFDS19UUkFDRVM6Ci0gIFNUQUNLX1RS
QUNFX1RFTVBMQVRFID0gJ1xuU3RhY2sgdHJhY2U6XG4qJwotZWxzZToKLSAgU1RBQ0tfVFJBQ0Vf
VEVNUExBVEUgPSAnJwotCi1FWFBFQ1RFRF9OT05fRU1QVFlfWE1MID0gIiIiPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTx0ZXN0c3VpdGVzIHRlc3RzPSIyMyIgZmFpbHVy
ZXM9IjQiIGRpc2FibGVkPSIyIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgbmFt
ZT0iQWxsVGVzdHMiIGFkX2hvY19wcm9wZXJ0eT0iNDIiPgotICA8dGVzdHN1aXRlIG5hbWU9IlN1
Y2Nlc3NmdWxUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4i
IHRpbWU9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KLSAgPC90ZXN0c3VpdGU+Ci0g
IDx0ZXN0c3VpdGUgbmFtZT0iRmFpbGVkVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNh
YmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iRmFpbHMi
IHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IkZhaWxlZFRlc3QiPgotICAgICAgPGZh
aWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0V4cGVj
dGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gwQTsgIDEmI3gwQTsgIDIiIHR5cGU9IiI+
PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgotRXhwZWN0ZWQgZXF1YWxp
dHkgb2YgdGhlc2UgdmFsdWVzOgotICAxCi0gIDIlKHN0YWNrKXNdXT48L2ZhaWx1cmU+Ci0gICAg
PC90ZXN0Y2FzZT4KLSAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iTWl4ZWRSZXN1
bHRUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIxIiBlcnJvcnM9IjAiIHRp
bWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9
IioiIGNsYXNzbmFtZT0iTWl4ZWRSZXN1bHRUZXN0Ii8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkZh
aWxzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3VsdFRlc3QiPgot
ICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYj
eDBBO0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gwQTsgIDEmI3gwQTsgIDIi
IHR5cGU9IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgotRXhwZWN0
ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgotICAxCi0gIDIlKHN0YWNrKXNdXT48L2ZhaWx1
cmU+Ci0gICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5j
YzoqJiN4MEE7RXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOiYjeDBBOyAgMiYjeDBB
OyAgMyIgdHlwZT0iIj48IVtDREFUQVtndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqCi1F
eHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6Ci0gIDIKLSAgMyUoc3RhY2spc11dPjwv
ZmFpbHVyZT4KLSAgICA8L3Rlc3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJESVNBQkxFRF90
ZXN0IiBzdGF0dXM9Im5vdHJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3VsdFRlc3Qi
Lz4KLSAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iWG1sUXVvdGluZ1Rlc3QiIHRl
c3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0g
ICAgPHRlc3RjYXNlIG5hbWU9Ik91dHB1dHNDRGF0YSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNs
YXNzbmFtZT0iWG1sUXVvdGluZ1Rlc3QiPgotICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3Rf
eG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0ZhaWxlZCYjeDBBO1hNTCBvdXRwdXQ6ICZs
dDs/eG1sIGVuY29kaW5nPSZxdW90O3V0Zi04JnF1b3Q7Jmd0OyZsdDt0b3AmZ3Q7Jmx0OyFbQ0RB
VEFbY2RhdGEgdGV4dF1dJmd0OyZsdDsvdG9wJmd0OyIgdHlwZT0iIj48IVtDREFUQVtndGVzdF94
bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqCi1GYWlsZWQKLVhNTCBvdXRwdXQ6IDw/eG1sIGVuY29k
aW5nPSJ1dGYtOCI+PHRvcD48IVtDREFUQVtjZGF0YSB0ZXh0XV0+XV0mZ3Q7PCFbQ0RBVEFbPC90
b3A+JShzdGFjaylzXV0+PC9mYWlsdXJlPgotICAgIDwvdGVzdGNhc2U+Ci0gIDwvdGVzdHN1aXRl
PgotICA8dGVzdHN1aXRlIG5hbWU9IkludmFsaWRDaGFyYWN0ZXJzVGVzdCIgdGVzdHM9IjEiIGZh
aWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNh
c2UgbmFtZT0iSW52YWxpZENoYXJhY3RlcnNJbk1lc3NhZ2UiIHN0YXR1cz0icnVuIiB0aW1lPSIq
IiBjbGFzc25hbWU9IkludmFsaWRDaGFyYWN0ZXJzVGVzdCI+Ci0gICAgICA8ZmFpbHVyZSBtZXNz
YWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7RmFpbGVkJiN4MEE7SW52
YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzIFtdIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3ht
bF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKLUZhaWxlZAotSW52YWxpZCBjaGFyYWN0ZXJzIGluIGJy
YWNrZXRzIFtdJShzdGFjaylzXV0+PC9mYWlsdXJlPgotICAgIDwvdGVzdGNhc2U+Ci0gIDwvdGVz
dHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkRpc2FibGVkVGVzdCIgdGVzdHM9IjEiIGZhaWx1
cmVzPSIwIiBkaXNhYmxlZD0iMSIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2Ug
bmFtZT0iRElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1biIgdGltZT0iKiIgY2xh
c3NuYW1lPSJEaXNhYmxlZFRlc3QiLz4KLSAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFt
ZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0IiB0ZXN0cz0iNCIgZmFpbHVyZXM9IjAiIGRpc2FibGVk
PSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIFNldFVwVGVzdENhc2U9InllcyIgVGVhckRvd25UZXN0
Q2FzZT0iYXllIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iT25lUHJvcGVydHkiIHN0YXR1cz0icnVu
IiB0aW1lPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIga2V5XzE9IjEiLz4K
LSAgICA8dGVzdGNhc2UgbmFtZT0iSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIga2V5X2ludD0iMSIvPgotICAg
IDx0ZXN0Y2FzZSBuYW1lPSJUaHJlZVByb3BlcnRpZXMiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBj
bGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIga2V5XzE9IjEiIGtleV8yPSIyIiBrZXlf
Mz0iMyIvPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZh
bHVlIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rl
c3QiIGtleV8xPSIyIi8+Ci0gIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9Ik5vRml4
dHVyZVRlc3QiIHRlc3RzPSIzIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIg
dGltZT0iKiI+Ci0gICAgIDx0ZXN0Y2FzZSBuYW1lPSJSZWNvcmRQcm9wZXJ0eSIgc3RhdHVzPSJy
dW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iTm9GaXh0dXJlVGVzdCIga2V5PSIxIi8+Ci0gICAgIDx0
ZXN0Y2FzZSBuYW1lPSJFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRJbnRWYWx1ZWRQcm9w
ZXJ0eSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iTm9GaXh0dXJlVGVzdCIga2V5
X2Zvcl91dGlsaXR5X2ludD0iMSIvPgotICAgICA8dGVzdGNhc2UgbmFtZT0iRXh0ZXJuYWxVdGls
aXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiIGtleV9mb3JfdXRpbGl0eV9zdHJpbmc9IjEi
Lz4KLSAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1U
ZXN0IiB0ZXN0cz0iNCIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAiIHZhbHVl
X3BhcmFtPSIzMyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1ZhbHVl
UGFyYW1UZXN0IiAvPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNWYWx1ZVBhcmFtQXR0cmlidXRl
LzEiIHZhbHVlX3BhcmFtPSI0MiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2lu
Z2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJBbm90aGVyVGVzdFRo
YXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAiIHZhbHVlX3BhcmFtPSIzMyIgc3RhdHVzPSJydW4i
IHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgotICAgIDx0ZXN0
Y2FzZSBuYW1lPSJBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEiIHZhbHVl
X3BhcmFtPSI0MiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1ZhbHVl
UGFyYW1UZXN0IiAvPgotICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJUeXBlZFRl
c3QvMCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1l
PSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBhcmFtQXR0cmlidXRlIiB0eXBlX3Bh
cmFtPSIqIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJUeXBlZFRlc3QvMCIgLz4K
LSAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iVHlwZWRUZXN0LzEiIHRlc3RzPSIx
IiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRl
c3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVz
PSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iVHlwZWRUZXN0LzEiIC8+Ci0gIDwvdGVzdHN1aXRl
PgotICA8dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzAi
IHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+
Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0i
KiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1R5cGVQYXJhbWV0ZXJp
emVkVGVzdENhc2UvMCIgLz4KLSAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iU2lu
Z2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBk
aXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iSGFz
VHlwZVBhcmFtQXR0cmlidXRlIiB0eXBlX3BhcmFtPSIqIiBzdGF0dXM9InJ1biIgdGltZT0iKiIg
Y2xhc3NuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8xIiAvPgotICA8L3Rl
c3RzdWl0ZT4KLTwvdGVzdHN1aXRlcz4iIiIgJSB7J3N0YWNrJzogU1RBQ0tfVFJBQ0VfVEVNUExB
VEV9Ci0KLUVYUEVDVEVEX0ZJTFRFUkVEX1RFU1RfWE1MID0gIiIiPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KLTx0ZXN0c3VpdGVzIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIg
ZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIKLSAgICAgICAgICAgIHRpbWVzdGFtcD0i
KiIgbmFtZT0iQWxsVGVzdHMiIGFkX2hvY19wcm9wZXJ0eT0iNDIiPgotICA8dGVzdHN1aXRlIG5h
bWU9IlN1Y2Nlc3NmdWxUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIgot
ICAgICAgICAgICAgIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlN1
Y2NlZWRzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTdWNjZXNzZnVsVGVzdCIv
PgotICA8L3Rlc3RzdWl0ZT4KLTwvdGVzdHN1aXRlcz4iIiIKLQotRVhQRUNURURfRU1QVFlfWE1M
ID0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTx0ZXN0c3VpdGVz
IHRlc3RzPSIwIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIK
LSAgICAgICAgICAgIHRpbWVzdGFtcD0iKiIgbmFtZT0iQWxsVGVzdHMiPgotPC90ZXN0c3VpdGVz
PiIiIgotCi1HVEVTVF9QUk9HUkFNX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVj
dXRhYmxlUGF0aChHVEVTVF9QUk9HUkFNX05BTUUpCi0KLVNVUFBPUlRTX1RZUEVEX1RFU1RTID0g
J1R5cGVkVGVzdCcgaW4gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKAotICAgIFtHVEVTVF9Q
Uk9HUkFNX1BBVEgsIEdURVNUX0xJU1RfVEVTVFNfRkxBR10sIGNhcHR1cmVfc3RkZXJyPUZhbHNl
KS5vdXRwdXQKLQotCi1jbGFzcyBHVGVzdFhNTE91dHB1dFVuaXRUZXN0KGd0ZXN0X3htbF90ZXN0
X3V0aWxzLkdUZXN0WE1MVGVzdENhc2UpOgotICAiIiIKLSAgVW5pdCB0ZXN0IGZvciBHb29nbGUg
VGVzdCdzIFhNTCBvdXRwdXQgZnVuY3Rpb25hbGl0eS4KLSAgIiIiCi0KLSAgIyBUaGlzIHRlc3Qg
Y3VycmVudGx5IGJyZWFrcyBvbiBwbGF0Zm9ybXMgdGhhdCBkbyBub3Qgc3VwcG9ydCB0eXBlZCBh
bmQKLSAgIyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMsIHNvIHdlIGRvbid0IHJ1biBpdCB1bmRl
ciB0aGVtLgotICBpZiBTVVBQT1JUU19UWVBFRF9URVNUUzoKLSAgICBkZWYgdGVzdE5vbkVtcHR5
WG1sT3V0cHV0KHNlbGYpOgotICAgICAgIiIiCi0gICAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRo
YXQgZ2VuZXJhdGVzIGEgbm9uLWVtcHR5IFhNTCBvdXRwdXQsIGFuZAotICAgICAgdGVzdHMgdGhh
dCB0aGUgWE1MIG91dHB1dCBpcyBleHBlY3RlZC4KLSAgICAgICIiIgotICAgICAgc2VsZi5fVGVz
dFhtbE91dHB1dChHVEVTVF9QUk9HUkFNX05BTUUsIEVYUEVDVEVEX05PTl9FTVBUWV9YTUwsIDEp
Ci0KLSAgZGVmIHRlc3RFbXB0eVhtbE91dHB1dChzZWxmKToKLSAgICAiIiJWZXJpZmllcyBYTUwg
b3V0cHV0IGZvciBhIEdvb2dsZSBUZXN0IGJpbmFyeSB3aXRob3V0IGFjdHVhbCB0ZXN0cy4KLQot
ICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgYW4gZW1wdHkgWE1MIG91dHB1
dCwgYW5kCi0gICAgdGVzdHMgdGhhdCB0aGUgWE1MIG91dHB1dCBpcyBleHBlY3RlZC4KLSAgICAi
IiIKLQotICAgIHNlbGYuX1Rlc3RYbWxPdXRwdXQoJ2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBF
WFBFQ1RFRF9FTVBUWV9YTUwsIDApCi0KLSAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1ZShzZWxmKToK
LSAgICAiIiJDaGVja3Mgd2hldGhlciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBpbiB0aGUgWE1M
IG91dHB1dCBpcyB2YWxpZC4KLQotICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5lcmF0
ZXMgYW4gZW1wdHkgWE1MIG91dHB1dCwgYW5kIGNoZWNrcyBpZgotICAgIHRoZSB0aW1lc3RhbXAg
YXR0cmlidXRlIGluIHRoZSB0ZXN0c3VpdGVzIHRhZyBpcyB2YWxpZC4KLSAgICAiIiIKLSAgICBh
Y3R1YWwgPSBzZWxmLl9HZXRYbWxPdXRwdXQoJ2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBbXSwg
MCkKLSAgICBkYXRlX3RpbWVfc3RyID0gYWN0dWFsLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1
dGVOb2RlKCd0aW1lc3RhbXAnKS52YWx1ZQotICAgICMgZGF0ZXRpbWUuc3RycHRpbWUoKSBpcyBv
bmx5IGF2YWlsYWJsZSBpbiBQeXRob24gMi41KyBzbyB3ZSBoYXZlIHRvCi0gICAgIyBwYXJzZSB0
aGUgZXhwZWN0ZWQgZGF0ZXRpbWUgbWFudWFsbHkuCi0gICAgbWF0Y2ggPSByZS5tYXRjaChyJyhc
ZCspLShcZFxkKS0oXGRcZClUKFxkXGQpOihcZFxkKTooXGRcZCknLCBkYXRlX3RpbWVfc3RyKQot
ICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKLSAgICAgICAgcmUubWF0Y2gsCi0gICAgICAgICdYTUwgZGF0
ZXR0aW1lIHN0cmluZyAlcyBoYXMgaW5jb3JyZWN0IGZvcm1hdCcgJSBkYXRlX3RpbWVfc3RyKQot
ICAgIGRhdGVfdGltZV9mcm9tX3htbCA9IGRhdGV0aW1lLmRhdGV0aW1lKAotICAgICAgICB5ZWFy
PWludChtYXRjaC5ncm91cCgxKSksIG1vbnRoPWludChtYXRjaC5ncm91cCgyKSksCi0gICAgICAg
IGRheT1pbnQobWF0Y2guZ3JvdXAoMykpLCBob3VyPWludChtYXRjaC5ncm91cCg0KSksCi0gICAg
ICAgIG1pbnV0ZT1pbnQobWF0Y2guZ3JvdXAoNSkpLCBzZWNvbmQ9aW50KG1hdGNoLmdyb3VwKDYp
KSkKLQotICAgIHRpbWVfZGVsdGEgPSBhYnMoZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkgLSBkYXRl
X3RpbWVfZnJvbV94bWwpCi0gICAgIyB0aW1lc3RhbXAgdmFsdWUgc2hvdWxkIGJlIG5lYXIgdGhl
IGN1cnJlbnQgbG9jYWwgdGltZQotICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0aW1lX2RlbHRhIDwgZGF0
ZXRpbWUudGltZWRlbHRhKHNlY29uZHM9NjAwKSwKLSAgICAgICAgICAgICAgICAgICAgJ3RpbWVf
ZGVsdGEgaXMgJXMnICUgdGltZV9kZWx0YSkKLSAgICBhY3R1YWwudW5saW5rKCkKLQotICBkZWYg
dGVzdERlZmF1bHRPdXRwdXRGaWxlKHNlbGYpOgotICAgICIiIgotICAgIENvbmZpcm1zIHRoYXQg
R29vZ2xlIFRlc3QgcHJvZHVjZXMgYW4gWE1MIG91dHB1dCBmaWxlIHdpdGggdGhlIGV4cGVjdGVk
Ci0gICAgZGVmYXVsdCBuYW1lIGlmIG5vIG5hbWUgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQuCi0g
ICAgIiIiCi0gICAgb3V0cHV0X2ZpbGUgPSBvcy5wYXRoLmpvaW4oZ3Rlc3RfdGVzdF91dGlscy5H
ZXRUZW1wRGlyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfREVGQVVM
VF9PVVRQVVRfRklMRSkKLSAgICBndGVzdF9wcm9nX3BhdGggPSBndGVzdF90ZXN0X3V0aWxzLkdl
dFRlc3RFeGVjdXRhYmxlUGF0aCgKLSAgICAgICAgJ2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QnKQot
ICAgIHRyeToKLSAgICAgIG9zLnJlbW92ZShvdXRwdXRfZmlsZSkKLSAgICBleGNlcHQgT1NFcnJv
cjoKLSAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQotICAgICAgaWYgZS5lcnJubyAhPSBlcnJu
by5FTk9FTlQ6Ci0gICAgICAgIHJhaXNlCi0KLSAgICBwID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJw
cm9jZXNzKAotICAgICAgICBbZ3Rlc3RfcHJvZ19wYXRoLCAnJXM9eG1sJyAlIEdURVNUX09VVFBV
VF9GTEFHXSwKLSAgICAgICAgd29ya2luZ19kaXI9Z3Rlc3RfdGVzdF91dGlscy5HZXRUZW1wRGly
KCkpCi0gICAgc2VsZi5hc3NlcnRfKHAuZXhpdGVkKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAs
IHAuZXhpdF9jb2RlKQotICAgIHNlbGYuYXNzZXJ0Xyhvcy5wYXRoLmlzZmlsZShvdXRwdXRfZmls
ZSkpCi0KLSAgZGVmIHRlc3RTdXBwcmVzc2VkWG1sT3V0cHV0KHNlbGYpOgotICAgICIiIgotICAg
IFRlc3RzIHRoYXQgbm8gWE1MIGZpbGUgaXMgZ2VuZXJhdGVkIGlmIHRoZSBkZWZhdWx0IFhNTCBs
aXN0ZW5lciBpcwotICAgIHNodXQgZG93biBiZWZvcmUgUlVOX0FMTF9URVNUUyBpcyBpbnZva2Vk
LgotICAgICIiIgotCi0gICAgeG1sX3BhdGggPSBvcy5wYXRoLmpvaW4oZ3Rlc3RfdGVzdF91dGls
cy5HZXRUZW1wRGlyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfUFJPR1JB
TV9OQU1FICsgJ291dC54bWwnKQotICAgIGlmIG9zLnBhdGguaXNmaWxlKHhtbF9wYXRoKToKLSAg
ICAgIG9zLnJlbW92ZSh4bWxfcGF0aCkKLQotICAgIGNvbW1hbmQgPSBbR1RFU1RfUFJPR1JBTV9Q
QVRILAotICAgICAgICAgICAgICAgJyVzPXhtbDolcycgJSAoR1RFU1RfT1VUUFVUX0ZMQUcsIHht
bF9wYXRoKSwKLSAgICAgICAgICAgICAgICctLXNodXRfZG93bl94bWwnXQotICAgIHAgPSBndGVz
dF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoY29tbWFuZCkKLSAgICBpZiBwLnRlcm1pbmF0ZWRfYnlf
c2lnbmFsOgotICAgICAgIyBwLnNpZ25hbCBpcyBhdmFpbGFibGUgb25seSBpZiBwLnRlcm1pbmF0
ZWRfYnlfc2lnbmFsIGlzIFRydWUuCi0gICAgICBzZWxmLmFzc2VydEZhbHNlKAotICAgICAgICAg
IHAudGVybWluYXRlZF9ieV9zaWduYWwsCi0gICAgICAgICAgJyVzIHdhcyBraWxsZWQgYnkgc2ln
bmFsICVkJyAlIChHVEVTVF9QUk9HUkFNX05BTUUsIHAuc2lnbmFsKSkKLSAgICBlbHNlOgotICAg
ICAgc2VsZi5hc3NlcnRfKHAuZXhpdGVkKQotICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgcC5l
eGl0X2NvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAiJyVzJyBleGl0ZWQgd2l0aCBjb2Rl
ICVzLCB3aGljaCBkb2Vzbid0IG1hdGNoICIKLSAgICAgICAgICAgICAgICAgICAgICAgICd0aGUg
ZXhwZWN0ZWQgZXhpdCBjb2RlICVzLicKLSAgICAgICAgICAgICAgICAgICAgICAgICUgKGNvbW1h
bmQsIHAuZXhpdF9jb2RlLCAxKSkKLQotICAgIHNlbGYuYXNzZXJ0Xyhub3Qgb3MucGF0aC5pc2Zp
bGUoeG1sX3BhdGgpKQotCi0gIGRlZiB0ZXN0RmlsdGVyZWRUZXN0WG1sT3V0cHV0KHNlbGYpOgot
ICAgICIiIlZlcmlmaWVzIFhNTCBvdXRwdXQgd2hlbiBhIGZpbHRlciBpcyBhcHBsaWVkLgotCi0g
ICAgUnVucyBhIHRlc3QgcHJvZ3JhbSB0aGF0IGV4ZWN1dGVzIG9ubHkgc29tZSB0ZXN0cyBhbmQg
dmVyaWZpZXMgdGhhdAotICAgIG5vbi1zZWxlY3RlZCB0ZXN0cyBkbyBub3Qgc2hvdyB1cCBpbiB0
aGUgWE1MIG91dHB1dC4KLSAgICAiIiIKLQotICAgIHNlbGYuX1Rlc3RYbWxPdXRwdXQoR1RFU1Rf
UFJPR1JBTV9OQU1FLCBFWFBFQ1RFRF9GSUxURVJFRF9URVNUX1hNTCwgMCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGV4dHJhX2FyZ3M9Wyclcz1TdWNjZXNzZnVsVGVzdC4qJyAlIEdURVNUX0ZJ
TFRFUl9GTEFHXSkKLQotICBkZWYgX0dldFhtbE91dHB1dChzZWxmLCBndGVzdF9wcm9nX25hbWUs
IGV4dHJhX2FyZ3MsIGV4cGVjdGVkX2V4aXRfY29kZSk6Ci0gICAgIiIiCi0gICAgUmV0dXJucyB0
aGUgeG1sIG91dHB1dCBnZW5lcmF0ZWQgYnkgcnVubmluZyB0aGUgcHJvZ3JhbSBndGVzdF9wcm9n
X25hbWUuCi0gICAgRnVydGhlcm1vcmUsIHRoZSBwcm9ncmFtJ3MgZXhpdCBjb2RlIG11c3QgYmUg
ZXhwZWN0ZWRfZXhpdF9jb2RlLgotICAgICIiIgotICAgIHhtbF9wYXRoID0gb3MucGF0aC5qb2lu
KGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVtcERpcigpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGd0ZXN0X3Byb2dfbmFtZSArICdvdXQueG1sJykKLSAgICBndGVzdF9wcm9nX3BhdGggPSBn
dGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aChndGVzdF9wcm9nX25hbWUpCi0K
LSAgICBjb21tYW5kID0gKFtndGVzdF9wcm9nX3BhdGgsICclcz14bWw6JXMnICUgKEdURVNUX09V
VFBVVF9GTEFHLCB4bWxfcGF0aCldICsKLSAgICAgICAgICAgICAgIGV4dHJhX2FyZ3MpCi0gICAg
cCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2Vzcyhjb21tYW5kKQotICAgIGlmIHAudGVybWlu
YXRlZF9ieV9zaWduYWw6Ci0gICAgICBzZWxmLmFzc2VydF8oRmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgJyVzIHdhcyBraWxsZWQgYnkgc2lnbmFsICVkJyAlIChndGVzdF9wcm9nX25hbWUsIHAu
c2lnbmFsKSkKLSAgICBlbHNlOgotICAgICAgc2VsZi5hc3NlcnRfKHAuZXhpdGVkKQotICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfZXhpdF9jb2RlLCBwLmV4aXRfY29kZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICInJXMnIGV4aXRlZCB3aXRoIGNvZGUgJXMsIHdoaWNoIGRvZXNu
J3QgbWF0Y2ggIgotICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBleHBlY3RlZCBleGl0IGNv
ZGUgJXMuJwotICAgICAgICAgICAgICAgICAgICAgICAgJSAoY29tbWFuZCwgcC5leGl0X2NvZGUs
IGV4cGVjdGVkX2V4aXRfY29kZSkpCi0gICAgYWN0dWFsID0gbWluaWRvbS5wYXJzZSh4bWxfcGF0
aCkKLSAgICByZXR1cm4gYWN0dWFsCi0KLSAgZGVmIF9UZXN0WG1sT3V0cHV0KHNlbGYsIGd0ZXN0
X3Byb2dfbmFtZSwgZXhwZWN0ZWRfeG1sLAotICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf
ZXhpdF9jb2RlLCBleHRyYV9hcmdzPU5vbmUpOgotICAgICIiIgotICAgIEFzc2VydHMgdGhhdCB0
aGUgWE1MIGRvY3VtZW50IGdlbmVyYXRlZCBieSBydW5uaW5nIHRoZSBwcm9ncmFtCi0gICAgZ3Rl
c3RfcHJvZ19uYW1lIG1hdGNoZXMgZXhwZWN0ZWRfeG1sLCBhIHN0cmluZyBjb250YWluaW5nIGFu
b3RoZXIKLSAgICBYTUwgZG9jdW1lbnQuICBGdXJ0aGVybW9yZSwgdGhlIHByb2dyYW0ncyBleGl0
IGNvZGUgbXVzdCBiZQotICAgIGV4cGVjdGVkX2V4aXRfY29kZS4KLSAgICAiIiIKLQotICAgIGFj
dHVhbCA9IHNlbGYuX0dldFhtbE91dHB1dChndGVzdF9wcm9nX25hbWUsIGV4dHJhX2FyZ3Mgb3Ig
W10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V4aXRfY29kZSkK
LSAgICBleHBlY3RlZCA9IG1pbmlkb20ucGFyc2VTdHJpbmcoZXhwZWN0ZWRfeG1sKQotICAgIHNl
bGYuTm9ybWFsaXplWG1sKGFjdHVhbC5kb2N1bWVudEVsZW1lbnQpCi0gICAgc2VsZi5Bc3NlcnRF
cXVpdmFsZW50Tm9kZXMoZXhwZWN0ZWQuZG9jdW1lbnRFbGVtZW50LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFjdHVhbC5kb2N1bWVudEVsZW1lbnQpCi0gICAgZXhwZWN0ZWQudW5s
aW5rKCkKLSAgICBhY3R1YWwudW5saW5rKCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgotICBvcy5lbnZpcm9uWydHVEVTVF9TVEFDS19UUkFDRV9ERVBUSCddID0gJzEnCi0gIGd0ZXN0
X3Rlc3RfdXRpbHMuTWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVz
dC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmVlODgzODAwNWVlZWMyMzU3MWJhZTM4OWM3OTI2OThjMzBjNGQ1
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjCisr
KyAvZGV2L251bGwKQEAgLTEsMTc5ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA2LCBHb29nbGUg
SW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotLy8gVW5pdCB0ZXN0IGZvciBHb29nbGUgVGVzdCBYTUwgb3V0
cHV0LgotLy8KLS8vIEEgdXNlciBjYW4gc3BlY2lmeSBYTUwgb3V0cHV0IGluIGEgR29vZ2xlIFRl
c3QgcHJvZ3JhbSB0byBydW4gdmlhCi0vLyBlaXRoZXIgdGhlIEdURVNUX09VVFBVVCBlbnZpcm9u
bWVudCB2YXJpYWJsZSBvciB0aGUgLS1ndGVzdF9vdXRwdXQKLS8vIGZsYWcuICBUaGlzIGlzIHVz
ZWQgZm9yIHRlc3Rpbmcgc3VjaCBmdW5jdGlvbmFsaXR5LgotLy8KLS8vIFRoaXMgcHJvZ3JhbSB3
aWxsIGJlIGludm9rZWQgZnJvbSBhIFB5dGhvbiB1bml0IHRlc3QuICBEb24ndCBydW4gaXQKLS8v
IGRpcmVjdGx5LgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotdXNpbmcgOjp0ZXN0aW5n
OjpJbml0R29vZ2xlVGVzdDsKLXVzaW5nIDo6dGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXJzOwot
dXNpbmcgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtOwotdXNpbmcgOjp0ZXN0aW5nOjpVbml0VGVz
dDsKLXVzaW5nIDo6dGVzdGluZzo6VGVzdDsKLXVzaW5nIDo6dGVzdGluZzo6VmFsdWVzOwotCi1j
bGFzcyBTdWNjZXNzZnVsVGVzdCA6IHB1YmxpYyBUZXN0IHsKLX07Ci0KLVRFU1RfRihTdWNjZXNz
ZnVsVGVzdCwgU3VjY2VlZHMpIHsKLSAgU1VDQ0VFRCgpIDw8ICJUaGlzIGlzIGEgc3VjY2Vzcy4i
OwotICBBU1NFUlRfRVEoMSwgMSk7Ci19Ci0KLWNsYXNzIEZhaWxlZFRlc3QgOiBwdWJsaWMgVGVz
dCB7Ci19OwotCi1URVNUX0YoRmFpbGVkVGVzdCwgRmFpbHMpIHsKLSAgQVNTRVJUX0VRKDEsIDIp
OwotfQotCi1jbGFzcyBEaXNhYmxlZFRlc3QgOiBwdWJsaWMgVGVzdCB7Ci19OwotCi1URVNUX0Yo
RGlzYWJsZWRUZXN0LCBESVNBQkxFRF90ZXN0X25vdF9ydW4pIHsKLSAgRkFJTCgpIDw8ICJVbmV4
cGVjdGVkIGZhaWx1cmU6IERpc2FibGVkIHRlc3Qgc2hvdWxkIG5vdCBiZSBydW4iOwotfQotCi1U
RVNUKE1peGVkUmVzdWx0VGVzdCwgU3VjY2VlZHMpIHsKLSAgRVhQRUNUX0VRKDEsIDEpOwotICBB
U1NFUlRfRVEoMSwgMSk7Ci19Ci0KLVRFU1QoTWl4ZWRSZXN1bHRUZXN0LCBGYWlscykgewotICBF
WFBFQ1RfRVEoMSwgMik7Ci0gIEFTU0VSVF9FUSgyLCAzKTsKLX0KLQotVEVTVChNaXhlZFJlc3Vs
dFRlc3QsIERJU0FCTEVEX3Rlc3QpIHsKLSAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6
IERpc2FibGVkIHRlc3Qgc2hvdWxkIG5vdCBiZSBydW4iOwotfQotCi1URVNUKFhtbFF1b3RpbmdU
ZXN0LCBPdXRwdXRzQ0RhdGEpIHsKLSAgRkFJTCgpIDw8ICJYTUwgb3V0cHV0OiAiCi0gICAgICAg
ICAgICAiPD94bWwgZW5jb2Rpbmc9XCJ1dGYtOFwiPjx0b3A+PCFbQ0RBVEFbY2RhdGEgdGV4dF1d
PjwvdG9wPiI7Ci19Ci0KLS8vIEhlbHBzIHRvIHRlc3QgdGhhdCBpbnZhbGlkIGNoYXJhY3RlcnMg
cHJvZHVjZWQgYnkgdGVzdCBjb2RlIGRvIG5vdCBtYWtlCi0vLyBpdCBpbnRvIHRoZSBYTUwgZmls
ZS4KLVRFU1QoSW52YWxpZENoYXJhY3RlcnNUZXN0LCBJbnZhbGlkQ2hhcmFjdGVyc0luTWVzc2Fn
ZSkgewotICBGQUlMKCkgPDwgIkludmFsaWQgY2hhcmFjdGVycyBpbiBicmFja2V0cyBbXHgxXHgy
XSI7Ci19Ci0KLWNsYXNzIFByb3BlcnR5UmVjb3JkaW5nVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBw
dWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5KCJT
ZXRVcFRlc3RDYXNlIiwgInllcyIpOyB9Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2Uo
KSB7IFJlY29yZFByb3BlcnR5KCJUZWFyRG93blRlc3RDYXNlIiwgImF5ZSIpOyB9Ci19OwotCi1U
RVNUX0YoUHJvcGVydHlSZWNvcmRpbmdUZXN0LCBPbmVQcm9wZXJ0eSkgewotICBSZWNvcmRQcm9w
ZXJ0eSgia2V5XzEiLCAiMSIpOwotfQotCi1URVNUX0YoUHJvcGVydHlSZWNvcmRpbmdUZXN0LCBJ
bnRWYWx1ZWRQcm9wZXJ0eSkgewotICBSZWNvcmRQcm9wZXJ0eSgia2V5X2ludCIsIDEpOwotfQot
Ci1URVNUX0YoUHJvcGVydHlSZWNvcmRpbmdUZXN0LCBUaHJlZVByb3BlcnRpZXMpIHsKLSAgUmVj
b3JkUHJvcGVydHkoImtleV8xIiwgIjEiKTsKLSAgUmVjb3JkUHJvcGVydHkoImtleV8yIiwgIjIi
KTsKLSAgUmVjb3JkUHJvcGVydHkoImtleV8zIiwgIjMiKTsKLX0KLQotVEVTVF9GKFByb3BlcnR5
UmVjb3JkaW5nVGVzdCwgVHdvVmFsdWVzRm9yT25lS2V5VXNlc0xhc3RWYWx1ZSkgewotICBSZWNv
cmRQcm9wZXJ0eSgia2V5XzEiLCAiMSIpOwotICBSZWNvcmRQcm9wZXJ0eSgia2V5XzEiLCAiMiIp
OwotfQotCi1URVNUKE5vRml4dHVyZVRlc3QsIFJlY29yZFByb3BlcnR5KSB7Ci0gIFJlY29yZFBy
b3BlcnR5KCJrZXkiLCAiMSIpOwotfQotCi12b2lkIEV4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1Jl
Y29yZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksIGludCB2YWx1ZSkgewotICB0ZXN0
aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eShrZXksIHZhbHVlKTsKLX0KLQotdm9pZCBFeHRlcm5h
bFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRQcm9wZXJ0eShjb25zdCBzdGQ6OnN0cmluZyYga2V5LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyYgdmFsdWUpIHsKLSAgdGVzdGluZzo6VGVzdDo6UmVjb3JkUHJvcGVydHkoa2V5LCB2YWx1
ZSk7Ci19Ci0KLVRFU1QoTm9GaXh0dXJlVGVzdCwgRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVj
b3JkSW50VmFsdWVkUHJvcGVydHkpIHsKLSAgRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3Jk
UHJvcGVydHkoImtleV9mb3JfdXRpbGl0eV9pbnQiLCAxKTsKLX0KLQotVEVTVChOb0ZpeHR1cmVU
ZXN0LCBFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRTdHJpbmdWYWx1ZWRQcm9wZXJ0eSkg
ewotICBFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRQcm9wZXJ0eSgia2V5X2Zvcl91dGls
aXR5X3N0cmluZyIsICIxIik7Ci19Ci0KLS8vIFZlcmlmaWVzIHRoYXQgdGhlIHRlc3QgcGFyYW1l
dGVyIHZhbHVlIGlzIG91dHB1dCBpbiB0aGUgJ3ZhbHVlX3BhcmFtJwotLy8gWE1MIGF0dHJpYnV0
ZSBmb3IgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLWNsYXNzIFZhbHVlUGFyYW1UZXN0IDog
cHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsKLVRFU1RfUChWYWx1ZVBhcmFtVGVzdCwgSGFz
VmFsdWVQYXJhbUF0dHJpYnV0ZSkge30KLVRFU1RfUChWYWx1ZVBhcmFtVGVzdCwgQW5vdGhlclRl
c3RUaGF0SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZSkge30KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
KFNpbmdsZSwgVmFsdWVQYXJhbVRlc3QsIFZhbHVlcygzMywgNDIpKTsKLQotI2lmIEdURVNUX0hB
U19UWVBFRF9URVNUCi0vLyBWZXJpZmllcyB0aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlz
IG91dHB1dCBpbiB0aGUgJ3R5cGVfcGFyYW0nCi0vLyBYTUwgYXR0cmlidXRlIGZvciB0eXBlZCB0
ZXN0cy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgVGVz
dCB7fTsKLXR5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50LCBsb25nPiBUeXBlZFRlc3RUeXBlczsK
LVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3QsIFR5cGVkVGVzdFR5cGVzKTsKLVRZUEVEX1RFU1Qo
VHlwZWRUZXN0LCBIYXNUeXBlUGFyYW1BdHRyaWJ1dGUpIHt9Ci0jZW5kaWYKLQotI2lmIEdURVNU
X0hBU19UWVBFRF9URVNUX1AKLS8vIFZlcmlmaWVzIHRoYXQgdGhlIHR5cGUgcGFyYW1ldGVyIG5h
bWUgaXMgb3V0cHV0IGluIHRoZSAndHlwZV9wYXJhbScKLS8vIFhNTCBhdHRyaWJ1dGUgZm9yIHR5
cGUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBUeXBl
UGFyYW1ldGVyaXplZFRlc3RDYXNlIDogcHVibGljIFRlc3Qge307Ci1UWVBFRF9URVNUX0NBU0Vf
UChUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlKTsKLVRZUEVEX1RFU1RfUChUeXBlUGFyYW1ldGVy
aXplZFRlc3RDYXNlLCBIYXNUeXBlUGFyYW1BdHRyaWJ1dGUpIHt9Ci1SRUdJU1RFUl9UWVBFRF9U
RVNUX0NBU0VfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLCBIYXNUeXBlUGFyYW1BdHRyaWJ1
dGUpOwotdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGxvbmc+IFR5cGVQYXJhbWV0ZXJpemVk
VGVzdENhc2VUeXBlczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKFNpbmdsZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlVHlw
ZXMpOwotI2VuZGlmCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewotICBJbml0
R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0KLSAgaWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2
WzFdLCAiLS1zaHV0X2Rvd25feG1sIikgPT0gMCkgewotICAgIFRlc3RFdmVudExpc3RlbmVycyYg
bGlzdGVuZXJzID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpOwotICAgIGRl
bGV0ZSBsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2VuZXJhdG9yKCkp
OwotICB9Ci0gIHRlc3Rpbmc6OlRlc3Q6OlJlY29yZFByb3BlcnR5KCJhZF9ob2NfcHJvcGVydHki
LCAiNDIiKTsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L2d0ZXN0X3htbF90ZXN0X3V0aWxzLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDE5NTZiNTRkZGZmZmRjN2NmZThjYmNhM2YwZDli
MTQ5YzJkYjI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxOTQgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0j
Ci0jIENvcHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9u
LgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotIiIiVW5pdCB0ZXN0IHV0aWxpdGllcyBmb3IgZ3Rlc3RfeG1s
X291dHB1dCIiIgotCi1fX2F1dGhvcl9fID0gJ2VlZmFjbUBnbWFpbC5jb20gKFNlYW4gTWNhZmVl
KScKLQotaW1wb3J0IHJlCi1mcm9tIHhtbC5kb20gaW1wb3J0IG1pbmlkb20sIE5vZGUKLQotaW1w
b3J0IGd0ZXN0X3Rlc3RfdXRpbHMKLQotCi1HVEVTVF9PVVRQVVRfRkxBRyAgICAgICAgID0gJy0t
Z3Rlc3Rfb3V0cHV0JwotR1RFU1RfREVGQVVMVF9PVVRQVVRfRklMRSA9ICd0ZXN0X2RldGFpbC54
bWwnCi0KLWNsYXNzIEdUZXN0WE1MVGVzdENhc2UoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6
Ci0gICIiIgotICBCYXNlIGNsYXNzIGZvciB0ZXN0cyBvZiBHb29nbGUgVGVzdCdzIFhNTCBvdXRw
dXQgZnVuY3Rpb25hbGl0eS4KLSAgIiIiCi0KLQotICBkZWYgQXNzZXJ0RXF1aXZhbGVudE5vZGVz
KHNlbGYsIGV4cGVjdGVkX25vZGUsIGFjdHVhbF9ub2RlKToKLSAgICAiIiIKLSAgICBBc3NlcnRz
IHRoYXQgYWN0dWFsX25vZGUgKGEgRE9NIG5vZGUgb2JqZWN0KSBpcyBlcXVpdmFsZW50IHRvCi0g
ICAgZXhwZWN0ZWRfbm9kZSAoYW5vdGhlciBET00gbm9kZSBvYmplY3QpLCBpbiB0aGF0IGVpdGhl
ciBib3RoIG9mCi0gICAgdGhlbSBhcmUgQ0RBVEEgbm9kZXMgYW5kIGhhdmUgdGhlIHNhbWUgdmFs
dWUsIG9yIGJvdGggYXJlIERPTQotICAgIGVsZW1lbnRzIGFuZCBhY3R1YWxfbm9kZSBtZWV0cyBh
bGwgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi0gICAgKiAgSXQgaGFzIHRoZSBzYW1l
IHRhZyBuYW1lIGFzIGV4cGVjdGVkX25vZGUuCi0gICAgKiAgSXQgaGFzIHRoZSBzYW1lIHNldCBv
ZiBhdHRyaWJ1dGVzIGFzIGV4cGVjdGVkX25vZGUsIGVhY2ggd2l0aAotICAgICAgIHRoZSBzYW1l
IHZhbHVlIGFzIHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSBvZiBleHBlY3RlZF9ub2RlLgot
ICAgICAgIEV4Y2VwdGlvbnMgYXJlIGFueSBhdHRyaWJ1dGUgbmFtZWQgInRpbWUiLCB3aGljaCBu
ZWVkcyBvbmx5IGJlCi0gICAgICAgY29udmVydGlibGUgdG8gYSBmbG9hdGluZy1wb2ludCBudW1i
ZXIgYW5kIGFueSBhdHRyaWJ1dGUgbmFtZWQKLSAgICAgICAidHlwZV9wYXJhbSIgd2hpY2ggb25s
eSBoYXMgdG8gYmUgbm9uLWVtcHR5LgotICAgICogIEl0IGhhcyBhbiBlcXVpdmFsZW50IHNldCBv
ZiBjaGlsZCBub2RlcyAoaW5jbHVkaW5nIGVsZW1lbnRzIGFuZAotICAgICAgIENEQVRBIHNlY3Rp
b25zKSBhcyBleHBlY3RlZF9ub2RlLiAgTm90ZSB0aGF0IHdlIGlnbm9yZSB0aGUKLSAgICAgICBv
cmRlciBvZiB0aGUgY2hpbGRyZW4gYXMgdGhleSBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgaW4g
YW55Ci0gICAgICAgcGFydGljdWxhciBvcmRlci4KLSAgICAiIiIKLQotICAgIGlmIGV4cGVjdGVk
X25vZGUubm9kZVR5cGUgPT0gTm9kZS5DREFUQV9TRUNUSU9OX05PREU6Ci0gICAgICBzZWxmLmFz
c2VydEVxdWFscyhOb2RlLkNEQVRBX1NFQ1RJT05fTk9ERSwgYWN0dWFsX25vZGUubm9kZVR5cGUp
Ci0gICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9ub2RlLm5vZGVWYWx1ZSwgYWN0dWFs
X25vZGUubm9kZVZhbHVlKQotICAgICAgcmV0dXJuCi0KLSAgICBzZWxmLmFzc2VydEVxdWFscyhO
b2RlLkVMRU1FTlRfTk9ERSwgYWN0dWFsX25vZGUubm9kZVR5cGUpCi0gICAgc2VsZi5hc3NlcnRF
cXVhbHMoTm9kZS5FTEVNRU5UX05PREUsIGV4cGVjdGVkX25vZGUubm9kZVR5cGUpCi0gICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfbm9kZS50YWdOYW1lLCBhY3R1YWxfbm9kZS50YWdOYW1l
KQotCi0gICAgZXhwZWN0ZWRfYXR0cmlidXRlcyA9IGV4cGVjdGVkX25vZGUuYXR0cmlidXRlcwot
ICAgIGFjdHVhbF9hdHRyaWJ1dGVzICAgPSBhY3R1YWxfbm9kZSAgLmF0dHJpYnV0ZXMKLSAgICBz
ZWxmLmFzc2VydEVxdWFscygKLSAgICAgICAgZXhwZWN0ZWRfYXR0cmlidXRlcy5sZW5ndGgsIGFj
dHVhbF9hdHRyaWJ1dGVzLmxlbmd0aCwKLSAgICAgICAgJ2F0dHJpYnV0ZSBudW1iZXJzIGRpZmZl
ciBpbiBlbGVtZW50ICVzOlxuRXhwZWN0ZWQ6ICVyXG5BY3R1YWw6ICVyJyAlICgKLSAgICAgICAg
ICAgIGFjdHVhbF9ub2RlLnRhZ05hbWUsIGV4cGVjdGVkX2F0dHJpYnV0ZXMua2V5cygpLAotICAg
ICAgICAgICAgYWN0dWFsX2F0dHJpYnV0ZXMua2V5cygpKSkKLSAgICBmb3IgaSBpbiByYW5nZShl
eHBlY3RlZF9hdHRyaWJ1dGVzLmxlbmd0aCk6Ci0gICAgICBleHBlY3RlZF9hdHRyID0gZXhwZWN0
ZWRfYXR0cmlidXRlcy5pdGVtKGkpCi0gICAgICBhY3R1YWxfYXR0ciAgID0gYWN0dWFsX2F0dHJp
YnV0ZXMuZ2V0KGV4cGVjdGVkX2F0dHIubmFtZSkKLSAgICAgIHNlbGYuYXNzZXJ0XygKLSAgICAg
ICAgICBhY3R1YWxfYXR0ciBpcyBub3QgTm9uZSwKLSAgICAgICAgICAnZXhwZWN0ZWQgYXR0cmli
dXRlICVzIG5vdCBmb3VuZCBpbiBlbGVtZW50ICVzJyAlCi0gICAgICAgICAgKGV4cGVjdGVkX2F0
dHIubmFtZSwgYWN0dWFsX25vZGUudGFnTmFtZSkpCi0gICAgICBzZWxmLmFzc2VydEVxdWFscygK
LSAgICAgICAgICBleHBlY3RlZF9hdHRyLnZhbHVlLCBhY3R1YWxfYXR0ci52YWx1ZSwKLSAgICAg
ICAgICAnIHZhbHVlcyBvZiBhdHRyaWJ1dGUgJXMgaW4gZWxlbWVudCAlcyBkaWZmZXI6ICVzIHZz
ICVzJyAlCi0gICAgICAgICAgKGV4cGVjdGVkX2F0dHIubmFtZSwgYWN0dWFsX25vZGUudGFnTmFt
ZSwKLSAgICAgICAgICAgZXhwZWN0ZWRfYXR0ci52YWx1ZSwgYWN0dWFsX2F0dHIudmFsdWUpKQot
Ci0gICAgZXhwZWN0ZWRfY2hpbGRyZW4gPSBzZWxmLl9HZXRDaGlsZHJlbihleHBlY3RlZF9ub2Rl
KQotICAgIGFjdHVhbF9jaGlsZHJlbiA9IHNlbGYuX0dldENoaWxkcmVuKGFjdHVhbF9ub2RlKQot
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAotICAgICAgICBsZW4oZXhwZWN0ZWRfY2hpbGRyZW4pLCBs
ZW4oYWN0dWFsX2NoaWxkcmVuKSwKLSAgICAgICAgJ251bWJlciBvZiBjaGlsZCBlbGVtZW50cyBk
aWZmZXIgaW4gZWxlbWVudCAnICsgYWN0dWFsX25vZGUudGFnTmFtZSkKLSAgICBmb3IgY2hpbGRf
aWQsIGNoaWxkIGluIGV4cGVjdGVkX2NoaWxkcmVuLml0ZW1zKCk6Ci0gICAgICBzZWxmLmFzc2Vy
dF8oY2hpbGRfaWQgaW4gYWN0dWFsX2NoaWxkcmVuLAotICAgICAgICAgICAgICAgICAgICc8JXM+
IGlzIG5vdCBpbiA8JXM+IChpbiBlbGVtZW50ICVzKScgJQotICAgICAgICAgICAgICAgICAgIChj
aGlsZF9pZCwgYWN0dWFsX2NoaWxkcmVuLCBhY3R1YWxfbm9kZS50YWdOYW1lKSkKLSAgICAgIHNl
bGYuQXNzZXJ0RXF1aXZhbGVudE5vZGVzKGNoaWxkLCBhY3R1YWxfY2hpbGRyZW5bY2hpbGRfaWRd
KQotCi0gIGlkZW50aWZ5aW5nX2F0dHJpYnV0ZSA9IHsKLSAgICAndGVzdHN1aXRlcyc6ICduYW1l
JywKLSAgICAndGVzdHN1aXRlJzogJ25hbWUnLAotICAgICd0ZXN0Y2FzZSc6ICAnbmFtZScsCi0g
ICAgJ2ZhaWx1cmUnOiAgICdtZXNzYWdlJywKLSAgICB9Ci0KLSAgZGVmIF9HZXRDaGlsZHJlbihz
ZWxmLCBlbGVtZW50KToKLSAgICAiIiIKLSAgICBGZXRjaGVzIGFsbCBvZiB0aGUgY2hpbGQgbm9k
ZXMgb2YgZWxlbWVudCwgYSBET00gRWxlbWVudCBvYmplY3QuCi0gICAgUmV0dXJucyB0aGVtIGFz
IHRoZSB2YWx1ZXMgb2YgYSBkaWN0aW9uYXJ5IGtleWVkIGJ5IHRoZSBJRHMgb2YgdGhlCi0gICAg
Y2hpbGRyZW4uICBGb3IgPHRlc3RzdWl0ZXM+LCA8dGVzdHN1aXRlPiBhbmQgPHRlc3RjYXNlPiBl
bGVtZW50cywgdGhlIElECi0gICAgaXMgdGhlIHZhbHVlIG9mIHRoZWlyICJuYW1lIiBhdHRyaWJ1
dGU7IGZvciA8ZmFpbHVyZT4gZWxlbWVudHMsIGl0IGlzCi0gICAgdGhlIHZhbHVlIG9mIHRoZSAi
bWVzc2FnZSIgYXR0cmlidXRlOyBDREFUQSBzZWN0aW9ucyBhbmQgbm9uLXdoaXRlc3BhY2UKLSAg
ICB0ZXh0IG5vZGVzIGFyZSBjb25jYXRlbmF0ZWQgaW50byBhIHNpbmdsZSBDREFUQSBzZWN0aW9u
IHdpdGggSUQKLSAgICAiZGV0YWlsIi4gIEFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgaWYgYW55IGVs
ZW1lbnQgb3RoZXIgdGhhbiB0aGUgYWJvdmUKLSAgICBmb3VyIGlzIGVuY291bnRlcmVkLCBpZiB0
d28gY2hpbGQgZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBpZGVudGlmeWluZwotICAgIGF0dHJpYnV0
ZXMgYXJlIGVuY291bnRlcmVkLCBvciBpZiBhbnkgb3RoZXIgdHlwZSBvZiBub2RlIGlzIGVuY291
bnRlcmVkLgotICAgICIiIgotCi0gICAgY2hpbGRyZW4gPSB7fQotICAgIGZvciBjaGlsZCBpbiBl
bGVtZW50LmNoaWxkTm9kZXM6Ci0gICAgICBpZiBjaGlsZC5ub2RlVHlwZSA9PSBOb2RlLkVMRU1F
TlRfTk9ERToKLSAgICAgICAgc2VsZi5hc3NlcnRfKGNoaWxkLnRhZ05hbWUgaW4gc2VsZi5pZGVu
dGlmeWluZ19hdHRyaWJ1dGUsCi0gICAgICAgICAgICAgICAgICAgICAnRW5jb3VudGVyZWQgdW5r
bm93biBlbGVtZW50IDwlcz4nICUgY2hpbGQudGFnTmFtZSkKLSAgICAgICAgY2hpbGRJRCA9IGNo
aWxkLmdldEF0dHJpYnV0ZShzZWxmLmlkZW50aWZ5aW5nX2F0dHJpYnV0ZVtjaGlsZC50YWdOYW1l
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRfKGNoaWxkSUQgbm90IGluIGNoaWxkcmVuKQotICAgICAg
ICBjaGlsZHJlbltjaGlsZElEXSA9IGNoaWxkCi0gICAgICBlbGlmIGNoaWxkLm5vZGVUeXBlIGlu
IFtOb2RlLlRFWFRfTk9ERSwgTm9kZS5DREFUQV9TRUNUSU9OX05PREVdOgotICAgICAgICBpZiAn
ZGV0YWlsJyBub3QgaW4gY2hpbGRyZW46Ci0gICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09
IE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFIG9yCi0gICAgICAgICAgICAgIG5vdCBjaGlsZC5ub2Rl
VmFsdWUuaXNzcGFjZSgpKToKLSAgICAgICAgICAgIGNoaWxkcmVuWydkZXRhaWwnXSA9IGNoaWxk
Lm93bmVyRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKAotICAgICAgICAgICAgICAgIGNoaWxk
Lm5vZGVWYWx1ZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICBjaGlsZHJlblsnZGV0YWlsJ10u
bm9kZVZhbHVlICs9IGNoaWxkLm5vZGVWYWx1ZQotICAgICAgZWxzZToKLSAgICAgICAgc2VsZi5m
YWlsKCdFbmNvdW50ZXJlZCB1bmV4cGVjdGVkIG5vZGUgdHlwZSAlZCcgJSBjaGlsZC5ub2RlVHlw
ZSkKLSAgICByZXR1cm4gY2hpbGRyZW4KLQotICBkZWYgTm9ybWFsaXplWG1sKHNlbGYsIGVsZW1l
bnQpOgotICAgICIiIgotICAgIE5vcm1hbGl6ZXMgR29vZ2xlIFRlc3QncyBYTUwgb3V0cHV0IHRv
IGVsaW1pbmF0ZSByZWZlcmVuY2VzIHRvIHRyYW5zaWVudAotICAgIGluZm9ybWF0aW9uIHRoYXQg
bWF5IGNoYW5nZSBmcm9tIHJ1biB0byBydW4uCi0KLSAgICAqICBUaGUgInRpbWUiIGF0dHJpYnV0
ZSBvZiA8dGVzdHN1aXRlcz4sIDx0ZXN0c3VpdGU+IGFuZCA8dGVzdGNhc2U+Ci0gICAgICAgZWxl
bWVudHMgaXMgcmVwbGFjZWQgd2l0aCBhIHNpbmdsZSBhc3RlcmlzaywgaWYgaXQgY29udGFpbnMK
LSAgICAgICBvbmx5IGRpZ2l0IGNoYXJhY3RlcnMuCi0gICAgKiAgVGhlICJ0aW1lc3RhbXAiIGF0
dHJpYnV0ZSBvZiA8dGVzdHN1aXRlcz4gZWxlbWVudHMgaXMgcmVwbGFjZWQgd2l0aCBhCi0gICAg
ICAgc2luZ2xlIGFzdGVyaXNrLCBpZiBpdCBjb250YWlucyBhIHZhbGlkIElTTzg2MDEgZGF0ZXRp
bWUgdmFsdWUuCi0gICAgKiAgVGhlICJ0eXBlX3BhcmFtIiBhdHRyaWJ1dGUgb2YgPHRlc3RjYXNl
PiBlbGVtZW50cyBpcyByZXBsYWNlZCB3aXRoIGEKLSAgICAgICBzaW5nbGUgYXN0ZXJpc2sgKGlm
IGl0IHNuIG5vbi1lbXB0eSkgYXMgaXQgaXMgdGhlIHR5cGUgbmFtZSByZXR1cm5lZAotICAgICAg
IGJ5IHRoZSBjb21waWxlciBhbmQgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgotICAgICogIFRoZSBs
aW5lIGluZm8gcmVwb3J0ZWQgaW4gdGhlIGZpcnN0IGxpbmUgb2YgdGhlICJtZXNzYWdlIgotICAg
ICAgIGF0dHJpYnV0ZSBhbmQgQ0RBVEEgc2VjdGlvbiBvZiA8ZmFpbHVyZT4gZWxlbWVudHMgaXMg
cmVwbGFjZWQgd2l0aCB0aGUKLSAgICAgICBmaWxlJ3MgYmFzZW5hbWUgYW5kIGEgc2luZ2xlIGFz
dGVyaXNrIGZvciB0aGUgbGluZSBudW1iZXIuCi0gICAgKiAgVGhlIGRpcmVjdG9yeSBuYW1lcyBp
biBmaWxlIHBhdGhzIGFyZSByZW1vdmVkLgotICAgICogIFRoZSBzdGFjayB0cmFjZXMgYXJlIHJl
bW92ZWQuCi0gICAgIiIiCi0KLSAgICBpZiBlbGVtZW50LnRhZ05hbWUgPT0gJ3Rlc3RzdWl0ZXMn
OgotICAgICAgdGltZXN0YW1wID0gZWxlbWVudC5nZXRBdHRyaWJ1dGVOb2RlKCd0aW1lc3RhbXAn
KQotICAgICAgdGltZXN0YW1wLnZhbHVlID0gcmUuc3ViKHInXlxkezR9LVxkXGQtXGRcZFRcZFxk
OlxkXGQ6XGRcZCQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqJywgdGltZXN0
YW1wLnZhbHVlKQotICAgIGlmIGVsZW1lbnQudGFnTmFtZSBpbiAoJ3Rlc3RzdWl0ZXMnLCAndGVz
dHN1aXRlJywgJ3Rlc3RjYXNlJyk6Ci0gICAgICB0aW1lID0gZWxlbWVudC5nZXRBdHRyaWJ1dGVO
b2RlKCd0aW1lJykKLSAgICAgIHRpbWUudmFsdWUgPSByZS5zdWIocideXGQrKFwuXGQrKT8kJywg
JyonLCB0aW1lLnZhbHVlKQotICAgICAgdHlwZV9wYXJhbSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRl
Tm9kZSgndHlwZV9wYXJhbScpCi0gICAgICBpZiB0eXBlX3BhcmFtIGFuZCB0eXBlX3BhcmFtLnZh
bHVlOgotICAgICAgICB0eXBlX3BhcmFtLnZhbHVlID0gJyonCi0gICAgZWxpZiBlbGVtZW50LnRh
Z05hbWUgPT0gJ2ZhaWx1cmUnOgotICAgICAgc291cmNlX2xpbmVfcGF0ID0gcideLipbL1xcXSgu
KjopXGQrXG4nCi0gICAgICAjIFJlcGxhY2VzIHRoZSBzb3VyY2UgbGluZSBpbmZvcm1hdGlvbiB3
aXRoIGEgbm9ybWFsaXplZCBmb3JtLgotICAgICAgbWVzc2FnZSA9IGVsZW1lbnQuZ2V0QXR0cmli
dXRlTm9kZSgnbWVzc2FnZScpCi0gICAgICBtZXNzYWdlLnZhbHVlID0gcmUuc3ViKHNvdXJjZV9s
aW5lX3BhdCwgJ1xcMSpcbicsIG1lc3NhZ2UudmFsdWUpCi0gICAgICBmb3IgY2hpbGQgaW4gZWxl
bWVudC5jaGlsZE5vZGVzOgotICAgICAgICBpZiBjaGlsZC5ub2RlVHlwZSA9PSBOb2RlLkNEQVRB
X1NFQ1RJT05fTk9ERToKLSAgICAgICAgICAjIFJlcGxhY2VzIHRoZSBzb3VyY2UgbGluZSBpbmZv
cm1hdGlvbiB3aXRoIGEgbm9ybWFsaXplZCBmb3JtLgotICAgICAgICAgIGNkYXRhID0gcmUuc3Vi
KHNvdXJjZV9saW5lX3BhdCwgJ1xcMSpcbicsIGNoaWxkLm5vZGVWYWx1ZSkKLSAgICAgICAgICAj
IFJlbW92ZXMgdGhlIGFjdHVhbCBzdGFjayB0cmFjZS4KLSAgICAgICAgICBjaGlsZC5ub2RlVmFs
dWUgPSByZS5zdWIocidcblN0YWNrIHRyYWNlOlxuKC58XG4pKicsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcnLCBjZGF0YSkKLSAgICBmb3IgY2hpbGQgaW4gZWxlbWVudC5j
aGlsZE5vZGVzOgotICAgICAgaWYgY2hpbGQubm9kZVR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREU6
Ci0gICAgICAgIHNlbGYuTm9ybWFsaXplWG1sKGNoaWxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3QvdGVzdC9wcm9kdWN0aW9uLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QvdGVzdC9wcm9kdWN0aW9uLmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4YjhhNDBiNDRlOWI0MWY0YzI5ZDc1NTI2OTA4NTY4YWYyMzc5MTJkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0
ZXN0L3Rlc3QvcHJvZHVjdGlvbi5jYworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8v
IENvcHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8v
Ci0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlz
dHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
Ly8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6
IHdhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pCi0vLwotLy8gVGhpcyBpcyBwYXJ0IG9mIHRo
ZSB1bml0IHRlc3QgZm9yIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJvZC5oLgotCi0jaW5jbHVkZSAi
cHJvZHVjdGlvbi5oIgotCi1Qcml2YXRlQ29kZTo6UHJpdmF0ZUNvZGUoKSA6IHhfKDApIHt9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC90ZXN0L3Byb2R1Y3Rpb24uaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvcHJvZHVjdGlvbi5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5OGZkNWU0NzZjODg0ZmExNmI0Nzg2YWQ4YTg4NTBjZjZlNGFh
OWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3Rlc3QvcHJvZHVjdGlvbi5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmln
aHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0
OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8v
Ci0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotLy8KLS8vIEF1dGhvcjogd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbikKLS8vCi0vLyBU
aGlzIGlzIHBhcnQgb2YgdGhlIHVuaXQgdGVzdCBmb3IgaW5jbHVkZS9ndGVzdC9ndGVzdF9wcm9k
LmguCi0KLSNpZm5kZWYgR1RFU1RfVEVTVF9QUk9EVUNUSU9OX0hfCi0jZGVmaW5lIEdURVNUX1RF
U1RfUFJPRFVDVElPTl9IXwotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3RfcHJvZC5oIgotCi1jbGFz
cyBQcml2YXRlQ29kZSB7Ci0gcHVibGljOgotICAvLyBEZWNsYXJlcyBhIGZyaWVuZCB0ZXN0IHRo
YXQgZG9lcyBub3QgdXNlIGEgZml4dHVyZS4KLSAgRlJJRU5EX1RFU1QoUHJpdmF0ZUNvZGVUZXN0
LCBDYW5BY2Nlc3NQcml2YXRlTWVtYmVycyk7Ci0KLSAgLy8gRGVjbGFyZXMgYSBmcmllbmQgdGVz
dCB0aGF0IHVzZXMgYSBmaXh0dXJlLgotICBGUklFTkRfVEVTVChQcml2YXRlQ29kZUZpeHR1cmVU
ZXN0LCBDYW5BY2Nlc3NQcml2YXRlTWVtYmVycyk7Ci0KLSAgUHJpdmF0ZUNvZGUoKTsKLQotICBp
bnQgeCgpIGNvbnN0IHsgcmV0dXJuIHhfOyB9Ci0gcHJpdmF0ZToKLSAgdm9pZCBzZXRfeChpbnQg
YW5feCkgeyB4XyA9IGFuX3g7IH0KLSAgaW50IHhfOwotfTsKLQotI2VuZGlmICAvLyBHVEVTVF9U
RVNUX1BST0RVQ1RJT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0
L3hjb2RlL0NvbmZpZy9EZWJ1Z1Byb2plY3QueGNjb25maWcgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC94Y29kZS9Db25maWcvRGVidWdQcm9qZWN0LnhjY29uZmlnCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzZDY4MTU3ZDVkNTEyYTg4MGYxODY4NTZjM2JhMTBiNGEyYjE4MDAw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL0NvbmZpZy9EZWJ1Z1Byb2plY3QueGNjb25maWcKKysr
IC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0vLwotLy8gIERlYnVnUHJvamVjdC54Y2NvbmZp
ZwotLy8KLS8vICBUaGVzZSBhcmUgRGVidWcgQ29uZmlndXJhdGlvbiBwcm9qZWN0IHNldHRpbmdz
IGZvciB0aGUgZ3Rlc3QgZnJhbWV3b3JrIGFuZAotLy8gIGV4YW1wbGVzLiBJdCBpcyBzZXQgaW4g
dGhlICJCYXNlZCBPbjoiIGRyb3Bkb3duIGluIHRoZSAiUHJvamVjdCIgaW5mbwotLy8gIGRpYWxv
Zy4KLS8vICBUaGlzIGZpbGUgaXMgYmFzZWQgb24gdGhlIFhjb2RlIENvbmZpZ3VyYXRpb24gZmls
ZXMgaW46Ci0vLyAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZS10b29sYm94LWZvci1t
YWMvCi0vLyAKLQotI2luY2x1ZGUgIkdlbmVyYWwueGNjb25maWciCi0KLS8vIE5vIG9wdGltaXph
dGlvbgotR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDAKLQotLy8gRGVwbG95bWVudCBwb3N0cHJv
Y2Vzc2luZyBpcyB3aGF0IHRyaWdnZXJzIFhjb2RlIHRvIHN0cmlwLCB0dXJuIGl0IG9mZgotREVQ
TE9ZTUVOVF9QT1NUUFJPQ0VTU0lORyA9IE5PCi0KLS8vIERlYWQgY29kZSBzdHJpcHBpbmcgb2Zm
Ci1ERUFEX0NPREVfU1RSSVBQSU5HID0gTk8KLQotLy8gRGVidWcgc3ltYm9scyBzaG91bGQgYmUg
b24gb2J2aW91c2x5Ci1HQ0NfR0VORVJBVEVfREVCVUdHSU5HX1NZTUJPTFMgPSBZRVMKLQotLy8g
RGVmaW5lIHRoZSBERUJVRyBtYWNybyBpbiBhbGwgZGVidWcgYnVpbGRzCi1PVEhFUl9DRkxBR1Mg
PSAkKE9USEVSX0NGTEFHUykgLURERUJVRz0xCi0KLS8vIFRoZXNlIGFyZSB0dXJuZWQgb2ZmIHRv
IGF2b2lkIFNUTCBpbmNvbXBhdGliaWxpdGllcyB3aXRoIGNsaWVudCBjb2RlCi0vLyAvLyBUdXJu
cyBvbiBzcGVjaWFsIEMrKyBTVEwgY2hlY2tzIHRvICJlbmNvdXJhZ2UiIGdvb2QgU1RMIHVzZQot
Ly8gR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICQoR0NDX1BSRVBST0NFU1NPUl9ERUZJ
TklUSU9OUykgX0dMSUJDWFhfREVCVUdfUEVEQU5USUMgX0dMSUJDWFhfREVCVUcgX0dMSUJDUFBf
Q09OQ0VQVF9DSEVDS1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hj
b2RlL0NvbmZpZy9GcmFtZXdvcmtUYXJnZXQueGNjb25maWcgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29v
Z2xldGVzdC94Y29kZS9Db25maWcvRnJhbWV3b3JrVGFyZ2V0LnhjY29uZmlnCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzNTdiMWM4ZmJmYTIzMWRhM2VjZjJkYzM3Y2NlMTcyODMwNDI5
MTFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL0NvbmZpZy9GcmFtZXdvcmtUYXJnZXQueGNjb25m
aWcKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0vLwotLy8gIEZyYW1ld29ya1Rhcmdl
dC54Y2NvbmZpZwotLy8KLS8vICBUaGVzZSBhcmUgRnJhbWV3b3JrIHRhcmdldCBzZXR0aW5ncyBm
b3IgdGhlIGd0ZXN0IGZyYW1ld29yayBhbmQgZXhhbXBsZXMuIEl0Ci0vLyAgaXMgc2V0IGluIHRo
ZSAiQmFzZWQgT246IiBkcm9wZG93biBpbiB0aGUgIlRhcmdldCIgaW5mbyBkaWFsb2cuCi0vLyAg
VGhpcyBmaWxlIGlzIGJhc2VkIG9uIHRoZSBYY29kZSBDb25maWd1cmF0aW9uIGZpbGVzIGluOgot
Ly8gIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtdG9vbGJveC1mb3ItbWFjLwotLy8g
Ci0KLS8vIER5bmFtaWMgbGlicyBuZWVkIHRvIGJlIHBvc2l0aW9uIGluZGVwZW5kZW50Ci1HQ0Nf
RFlOQU1JQ19OT19QSUMgPSBOTwotCi0vLyBEeW5hbWljIGxpYnMgc2hvdWxkIG5vdCBoYXZlIHRo
ZWlyIGV4dGVybmFsIHN5bWJvbHMgc3RyaXBwZWQuCi1TVFJJUF9TVFlMRSA9IG5vbi1nbG9iYWwK
LQotLy8gTGV0IHRoZSB1c2VyIGluc3RhbGwgYnkgc3BlY2lmeWluZyB0aGUgJERTVFJPT1Qgd2l0
aCB4Y29kZWJ1aWxkCi1TS0lQX0lOU1RBTEwgPSBOTwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3Bh
cnR5L2dvb2dsZXRlc3QveGNvZGUvQ29uZmlnL0dlbmVyYWwueGNjb25maWcgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRf
cGFydHkvZ29vZ2xldGVzdC94Y29kZS9Db25maWcvR2VuZXJhbC54Y2NvbmZpZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjIzZTMyMjI3Mjc1NjM0M2MwNGY1MGMyZjc5OTc0NDAwOGI0
NWIwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9Db25maWcvR2VuZXJhbC54Y2NvbmZpZworKysg
L2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8vCi0vLyAgR2VuZXJhbC54Y2NvbmZpZwotLy8K
LS8vICBUaGVzZSBhcmUgR2VuZXJhbCBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgZ3Rl
c3QgZnJhbWV3b3JrIGFuZAotLy8gIGV4YW1wbGVzLgotLy8gIFRoaXMgZmlsZSBpcyBiYXNlZCBv
biB0aGUgWGNvZGUgQ29uZmlndXJhdGlvbiBmaWxlcyBpbjoKLS8vICBodHRwOi8vY29kZS5nb29n
bGUuY29tL3AvZ29vZ2xlLXRvb2xib3gtZm9yLW1hYy8KLS8vIAotCi0vLyBCdWlsZCBmb3IgUFBD
IGFuZCBJbnRlbCwgMzItIGFuZCA2NC1iaXQKLUFSQ0hTID0gaTM4NiB4ODZfNjQgcHBjIHBwYzY0
Ci0KLS8vIFplcm9saW5rIHByZXZlbnRzIGxpbmsgd2FybmluZ3Mgc28gdHVybiBpdCBvZmYKLVpF
Uk9fTElOSyA9IE5PCi0KLS8vIFByZWJpbmRpbmcgY29uc2lkZXJlZCB1bmhlbHBmdWwgaW4gMTAu
MyBhbmQgbGF0ZXIKLVBSRUJJTkRJTkcgPSBOTwotCi0vLyBTdHJpY3Rlc3Qgd2FybmluZyBwb2xp
Y3kKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdlcnJvciAtV2VuZGlmLWxhYmVscyAtV25ld2xp
bmUtZW9mIC1Xbm8tc2lnbi1jb21wYXJlIC1Xc2hhZG93Ci0KLS8vIFdvcmsgYXJvdW5kIFhjb2Rl
IGJ1Z3MgYnkgdXNpbmcgZXh0ZXJuYWwgc3RyaXAuIFNlZToKLS8vIGh0dHA6Ly9saXN0cy5hcHBs
ZS5jb20vYXJjaGl2ZXMvWGNvZGUtdXNlcnMvMjAwNi9GZWIvbXNnMDAwNTAuaHRtbAotU0VQQVJB
VEVfU1RSSVAgPSBZRVMKLQotLy8gRm9yY2UgQzk5IGRpYWxlY3QKLUdDQ19DX0xBTkdVQUdFX1NU
QU5EQVJEID0gYzk5Ci0KLS8vIG5vdCBzdXJlIHdoeSBhcHBsZSBkZWZhdWx0cyB0aGlzIG9uLCBi
dXQgaXQncyBwcmV0dHkgcmlza3kKLUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5PCi0KLS8v
IFR1cm4gb24gcG9zaXRpb24gZGVwZW5kZW50IGNvZGUgZm9yIG1vc3QgY2FzZXMgKG92ZXJyaWRk
ZW4gd2hlcmUgYXBwcm9wcmlhdGUpCi1HQ0NfRFlOQU1JQ19OT19QSUMgPSBZRVMKLQotLy8gRGVm
YXVsdCBTREsgYW5kIG1pbmltdW0gT1MgdmVyc2lvbiBpcyAxMC40Ci1TREtST09UID0gJChERVZF
TE9QRVJfU0RLX0RJUikvTWFjT1NYMTAuNHUuc2RrCi1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQg
PSAxMC40Ci1HQ0NfVkVSU0lPTiA9IDQuMAotCi0vLyBWRVJTSU9OSU5HIEJVSUxEIFNFVFRJTkdT
ICh1c2VkIGluIEluZm8ucGxpc3QpCi1HVEVTVF9WRVJTSU9OSU5GT19BQk9VVCA9ICDCqSAyMDA4
IEdvb2dsZSBJbmMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29k
ZS9Db25maWcvUmVsZWFzZVByb2plY3QueGNjb25maWcgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xl
dGVzdC94Y29kZS9Db25maWcvUmVsZWFzZVByb2plY3QueGNjb25maWcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUzNDlmMGEwNGFmYzc4Mzc3ODc4MjhkM2Y0MjRhODg5ODc0ZWM5MzIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3QveGNvZGUvQ29uZmlnL1JlbGVhc2VQcm9qZWN0LnhjY29uZmlnCisr
KyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLy8KLS8vICBSZWxlYXNlUHJvamVjdC54Y2Nv
bmZpZwotLy8KLS8vICBUaGVzZSBhcmUgUmVsZWFzZSBDb25maWd1cmF0aW9uIHByb2plY3Qgc2V0
dGluZ3MgZm9yIHRoZSBndGVzdCBmcmFtZXdvcmsKLS8vICBhbmQgZXhhbXBsZXMuIEl0IGlzIHNl
dCBpbiB0aGUgIkJhc2VkIE9uOiIgZHJvcGRvd24gaW4gdGhlICJQcm9qZWN0IiBpbmZvCi0vLyAg
ZGlhbG9nLgotLy8gIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiB0aGUgWGNvZGUgQ29uZmlndXJhdGlv
biBmaWxlcyBpbjoKLS8vICBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZ29vZ2xlLXRvb2xib3gt
Zm9yLW1hYy8KLS8vIAotCi0jaW5jbHVkZSAiR2VuZXJhbC54Y2NvbmZpZyIKLQotLy8gc3ViY29u
ZmlnL1JlbGVhc2UueGNjb25maWcKLQotLy8gT3B0aW1pemUgZm9yIHNwYWNlIGFuZCBzaXplIChB
cHBsZSByZWNvbW1lbmRhdGlvbikKLUdDQ19PUFRJTUlaQVRJT05fTEVWRUwgPSBzCi0KLS8vIERl
cGxvbWVudCBwb3N0cHJvY2Vzc2luZyBpcyB3aGF0IHRyaWdnZXJzIFhjb2RlIHRvIHN0cmlwCi1E
RVBMT1lNRU5UX1BPU1RQUk9DRVNTSU5HID0gWUVTCi0KLS8vIE5vIHN5bWJvbHMKLUdDQ19HRU5F
UkFURV9ERUJVR0dJTkdfU1lNQk9MUyA9IE5PCi0KLS8vIERlYWQgY29kZSBzdHJpcCBkb2VzIG5v
dCBhZmZlY3QgT2JqQyBjb2RlIGJ1dCBjYW4gaGVscCBmb3IgQwotREVBRF9DT0RFX1NUUklQUElO
RyA9IFlFUwotCi0vLyBOREVCVUcgaXMgdXNlZCBieSB0aGluZ3MgbGlrZSBhc3NlcnQuaCwgc28g
ZGVmaW5lIGl0IGZvciBnZW5lcmFsIGNvbXBhdC4KLS8vIEFTU0VSVCBnb2luZyBhd2F5IGluIHJl
bGVhc2UgdGVuZHMgdG8gY3JlYXRlIHVudXNlZCB2YXJzLgotT1RIRVJfQ0ZMQUdTID0gJChPVEhF
Ul9DRkxBR1MpIC1ETkRFQlVHPTEgLVduby11bnVzZWQtdmFyaWFibGUKLQotLy8gV2hlbiB3ZSBz
dHJpcCB3ZSB3YW50IHRvIHN0cmlwIGFsbCBzeW1ib2xzIGluIHJlbGVhc2UsIGJ1dCBzYXZlIGV4
dGVybmFscy4KLVNUUklQX1NUWUxFID0gYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
Z29vZ2xldGVzdC94Y29kZS9Db25maWcvU3RhdGljTGlicmFyeVRhcmdldC54Y2NvbmZpZyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL0NvbmZpZy9TdGF0aWNMaWJyYXJ5VGFyZ2V0
LnhjY29uZmlnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTIyZmE1MWQ1MmQ1ZmYw
ZjMwNDZmZjUxYzBhZDZhOTZmYjQ4YmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL0NvbmZpZy9T
dGF0aWNMaWJyYXJ5VGFyZ2V0LnhjY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotLy8KLS8vICBTdGF0aWNMaWJyYXJ5VGFyZ2V0LnhjY29uZmlnCi0vLwotLy8gIFRoZXNlIGFy
ZSBzdGF0aWMgbGlicmFyeSB0YXJnZXQgc2V0dGluZ3MgZm9yIGxpYmd0ZXN0LmEuIEl0Ci0vLyAg
aXMgc2V0IGluIHRoZSAiQmFzZWQgT246IiBkcm9wZG93biBpbiB0aGUgIlRhcmdldCIgaW5mbyBk
aWFsb2cuCi0vLyAgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIHRoZSBYY29kZSBDb25maWd1cmF0aW9u
IGZpbGVzIGluOgotLy8gIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtdG9vbGJveC1m
b3ItbWFjLwotLy8gCi0KLS8vIFN0YXRpYyBsaWJzIGNhbiBiZSBpbmNsdWRlZCBpbiBidW5kbGVz
IHNvIG1ha2UgdGhlbSBwb3NpdGlvbiBpbmRlcGVuZGVudAotR0NDX0RZTkFNSUNfTk9fUElDID0g
Tk8KLQotLy8gU3RhdGljIGxpYnMgc2hvdWxkIG5vdCBoYXZlIHRoZWlyIGludGVybmFsIGdsb2Jh
bHMgb3IgZXh0ZXJuYWwgc3ltYm9scwotLy8gc3RyaXBwZWQuCi1TVFJJUF9TVFlMRSA9IGRlYnVn
Z2luZwotCi0vLyBMZXQgdGhlIHVzZXIgaW5zdGFsbCBieSBzcGVjaWZ5aW5nIHRoZSAkRFNUUk9P
VCB3aXRoIHhjb2RlYnVpbGQKLVNLSVBfSU5TVEFMTCA9IE5PCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9Db25maWcvVGVzdFRhcmdldC54Y2NvbmZpZyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL0NvbmZpZy9UZXN0VGFyZ2V0LnhjY29uZmln
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjY1MmJhODU5OTA2ZGYwNzQ4NzZmMzUw
ZjhkNjExN2RiODk3ZDg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL0NvbmZpZy9UZXN0VGFyZ2V0
LnhjY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0vLwotLy8gIFRlc3RUYXJn
ZXQueGNjb25maWcKLS8vCi0vLyAgVGhlc2UgYXJlIFRlc3QgdGFyZ2V0IHNldHRpbmdzIGZvciB0
aGUgZ3Rlc3QgZnJhbWV3b3JrIGFuZCBleGFtcGxlcy4gSXQKLS8vICBpcyBzZXQgaW4gdGhlICJC
YXNlZCBPbjoiIGRyb3Bkb3duIGluIHRoZSAiVGFyZ2V0IiBpbmZvIGRpYWxvZy4KLQotUFJPRFVD
VF9OQU1FID0gJChUQVJHRVRfTkFNRSkKLUhFQURFUl9TRUFSQ0hfUEFUSFMgPSAuLi9pbmNsdWRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9SZXNvdXJjZXMv
SW5mby5wbGlzdCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1Jlc291cmNlcy9J
bmZvLnBsaXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGQyOGVhMTQ4NWFiNTI3
ZTYyNzViZjM5ODUwY2IwZTg0Y2RkYjM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1Jlc291cmNl
cy9JbmZvLnBsaXN0CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0Fw
cGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVy
dHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNG
QnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4K
LQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05B
TUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+Ci0JPHN0cmluZz48L3N0
cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+Y29tLmdvb2ds
ZS4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlW
ZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlUGFja2Fn
ZVR5cGU8L2tleT4KLQk8c3RyaW5nPkZNV0s8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0
dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248
L2tleT4KLQk8c3RyaW5nPkdURVNUX1ZFUlNJT05JTkZPX0xPTkc8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz5HVEVTVF9WRVJTSU9OSU5G
T19TSE9SVDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0
cmluZz4ke1BST0RVQ1RfTkFNRX0gR1RFU1RfVkVSU0lPTklORk9fTE9ORywgJHtHVEVTVF9WRVJT
SU9OSU5GT19BQk9VVH08L3N0cmluZz4KLQk8a2V5Pk5TSHVtYW5SZWFkYWJsZUNvcHlyaWdodDwv
a2V5PgotCTxzdHJpbmc+JHtHVEVTVF9WRVJTSU9OSU5GT19BQk9VVH08L3N0cmluZz4KLQk8a2V5
PkNTUmVzb3VyY2VzRmlsZU1hcHBlZDwva2V5PgotCTx0cnVlLz4KLTwvZGljdD4KLTwvcGxpc3Q+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9TYW1wbGVzL0Zy
YW1ld29ya1NhbXBsZS9JbmZvLnBsaXN0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QveGNv
ZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvSW5mby5wbGlzdApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjM4NTJlZGVhMjc3YzQ5MDMyMzNiMGY0MmQ2NzY1YjFmOTAyYjhiZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFy
dHkvZ29vZ2xldGVzdC94Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS9JbmZvLnBsaXN0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
PgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1l
bnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxl
RXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0J
PGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+Ci0JPHN0cmluZz48L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+Y29tLmdvb2dsZS5ndGVzdC4ke1BST0RV
Q1RfTkFNRTppZGVudGlmaWVyfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFy
eVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVOYW1l
PC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxl
UGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPkZNV0s8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxl
U2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4xLjA8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjEuMDwvc3RyaW5nPgotCTxrZXk+Q1NSZXNvdXJj
ZXNGaWxlTWFwcGVkPC9rZXk+Ci0JPHRydWUvPgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2Ft
cGxlL1dpZGdldEZyYW1ld29yay54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3QveGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvV2lkZ2V0RnJh
bWV3b3JrLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQ5NzYxN2ViNjg5NmY4OWJmNDlkZWE5Njc1MTc1YWFjZjg5MzY2NjAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QveGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvV2lkZ2V0RnJhbWV3b3JrLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSw0NTcgKzAsMCBAQAot
Ly8gISQqVVRGOCokIQotewotCWFyY2hpdmVWZXJzaW9uID0gMTsKLQljbGFzc2VzID0gewotCX07
Ci0Jb2JqZWN0VmVyc2lvbiA9IDQyOwotCW9iamVjdHMgPSB7Ci0KLS8qIEJlZ2luIFBCWEFnZ3Jl
Z2F0ZVRhcmdldCBzZWN0aW9uICovCi0JCTQwMjREMTYyMTEzRDdEMjQwMEM3MDU5RSAvKiBUZXN0
ICovID0gewotCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0
aW9uTGlzdCA9IDQwMjREMTY5MTEzRDdENDYwMEM3MDU5RSAvKiBCdWlsZCBjb25maWd1cmF0aW9u
IGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiVGVzdCIgKi87Ci0JCQlidWlsZFBoYXNlcyA9
ICgKLQkJCQk0MDI0RDE2MTExM0Q3RDI0MDBDNzA1OUUgLyogU2hlbGxTY3JpcHQgKi8sCi0JCQkp
OwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTQwMjREMTY2MTEzRDdEMzEwMEM3MDU5RSAvKiBQ
QlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBUZXN0OwotCQkJcHJvZHVj
dE5hbWUgPSBUZXN0QW5kQnVpbGQ7Ci0JCX07Ci0JCTQwMjREMUU5MTEzRDgzRkYwMEM3MDU5RSAv
KiBUZXN0QW5kQnVpbGQgKi8gPSB7Ci0JCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7Ci0JCQli
dWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNDAyNEQxRjAxMTNEODQyQjAwQzcwNTlFIC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJUZXN0QW5kQnVpbGQi
ICovOwotCQkJYnVpbGRQaGFzZXMgPSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJ
CTQwMjREMUVEMTEzRDg0MDkwMEM3MDU5RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJ
CTQwMjREMUVGMTEzRDg0MEQwMEM3MDU5RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJ
KTsKLQkJCW5hbWUgPSBUZXN0QW5kQnVpbGQ7Ci0JCQlwcm9kdWN0TmFtZSA9IFRlc3RBbmRCdWls
ZDsKLQkJfTsKLS8qIEVuZCBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwotCi0vKiBCZWdp
biBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCQkzQjdFQjEyNTBFNUFFRTM1MDBDN0YyMzkgLyog
d2lkZ2V0LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
M0I3RUIxMjMwRTVBRUUzNTAwQzdGMjM5IC8qIHdpZGdldC5jYyAqLzsgfTsKLQkJM0I3RUIxMjYw
RTVBRUUzNTAwQzdGMjM5IC8qIHdpZGdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0I3RUIxMjQwRTVBRUUzNTAwQzdGMjM5IC8qIHdpZGdldC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJM0I3RUIxMjgw
RTVBRUU0NjAwQzdGMjM5IC8qIHdpZGdldF90ZXN0LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0I3RUIxMjcwRTVBRUU0NjAwQzdGMjM5IC8qIHdpZGdl
dF90ZXN0LmNjICovOyB9OwotCQkzQjdFQjE0ODBFNUFGM0I0MDBDN0YyMzkgLyogV2lkZ2V0LmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhEMDdGMkM4MDQ4NkNDN0EwMDdDRDFEMCAvKiBXaWRnZXQuZnJhbWV3b3JrICovOyB9OwotCQk0
MDI0RDE4ODExM0Q3RDc4MDBDNzA1OUUgLyogbGliZ3Rlc3QuYSBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwMjREMTg1MTEzRDdENTUwMEM3MDU5RSAv
KiBsaWJndGVzdC5hICovOyB9OwotCQk0MDI0RDE4OTExM0Q3RDdBMDBDNzA1OUUgLyogbGliZ3Rl
c3RfbWFpbi5hIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDAyNEQxODMxMTNEN0Q1NTAwQzcwNTlFIC8qIGxpYmd0ZXN0X21haW4uYSAqLzsgfTsKLS8q
IEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhDb250YWluZXJJdGVt
UHJveHkgc2VjdGlvbiAqLwotCQkzQjA3QkRGMDBFM0YzRkFFMDA2NDc4NjkgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJ
Y29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2Jq
ZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOEQw
N0YyQkMwNDg2Q0M3QTAwN0NEMUQwOwotCQkJcmVtb3RlSW5mbyA9IGdUZXN0RXhhbXBsZTsKLQkJ
fTsKLQkJNDAyNEQxNjUxMTNEN0QzMTAwQzcwNTlFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKLQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRh
bCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXBy
b3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDNCMDdCREU5MEUzRjNGOUUw
MDY0Nzg2OTsKLQkJCXJlbW90ZUluZm8gPSBXaWRnZXRGcmFtZXdvcmtUZXN0OwotCQl9OwotCQk0
MDI0RDFFQzExM0Q4NDA5MDBDNzA1OUUgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewot
CQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2
N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBl
ID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOEQwN0YyQkMwNDg2Q0M3QTAwN0NEMUQw
OwotCQkJcmVtb3RlSW5mbyA9IFdpZGdldEZyYW1ld29yazsKLQkJfTsKLQkJNDAyNEQxRUUxMTNE
ODQwRDAwQzcwNTlFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBC
WENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAy
OEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQly
ZW1vdGVHbG9iYWxJRFN0cmluZyA9IDQwMjREMTYyMTEzRDdEMjQwMEM3MDU5RTsKLQkJCXJlbW90
ZUluZm8gPSBUZXN0OwotCQl9OwotLyogRW5kIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9u
ICovCi0KLS8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwotCQkzQjA3QkRFQTBF
M0YzRjlFMDA2NDc4NjkgLyogV2lkZ2V0RnJhbWV3b3JrVGVzdCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxl
IjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2lkZ2V0RnJhbWV3b3JrVGVzdDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJM0I3RUIxMjMwRTVBRUUzNTAwQzdGMjM5
IC8qIHdpZGdldC5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHdpZGdl
dC5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJM0I3RUIxMjQwRTVBRUUzNTAwQzdG
MjM5IC8qIHdpZGdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB3aWRnZXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJM0I3RUIxMjcwRTVBRUU0NjAwQzdGMjM5
IC8qIHdpZGdldF90ZXN0LmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
d2lkZ2V0X3Rlc3QuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQwMjREMTgzMTEz
RDdENTUwMEM3MDU5RSAvKiBsaWJndGVzdF9tYWluLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBuYW1lID0gbGliZ3Rlc3RfbWFp
bi5hOyBwYXRoID0gL3Vzci9sb2NhbC9saWIvbGliZ3Rlc3RfbWFpbi5hOyBzb3VyY2VUcmVlID0g
IjxhYnNvbHV0ZT4iOyB9OwotCQk0MDI0RDE4NTExM0Q3RDU1MDBDNzA1OUUgLyogbGliZ3Rlc3Qu
YSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFyY2hp
dmUuYXI7IG5hbWUgPSBsaWJndGVzdC5hOyBwYXRoID0gL3Vzci9sb2NhbC9saWIvbGliZ3Rlc3Qu
YTsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKLQkJNDAyNEQxRTIxMTNEODM4MjAwQzcw
NTlFIC8qIHJ1bnRlc3RzLnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7IHBhdGggPSBydW50
ZXN0cy5zaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEQwN0YyQzcwNDg2Q0M3QTAw
N0NEMUQwIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0OyBwYXRoID0gSW5mby5w
bGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEQwN0YyQzgwNDg2Q0M3QTAwN0NE
MUQwIC8qIFdpZGdldC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBXaWRnZXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwotLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhGcmFt
ZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCi0JCTNCMDdCREU4MEUzRjNGOUUwMDY0Nzg2OSAv
KiBGcmFtZXdvcmtzICovID0gewotCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7Ci0J
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNDAyNEQx
ODkxMTNEN0Q3QTAwQzcwNTlFIC8qIGxpYmd0ZXN0X21haW4uYSBpbiBGcmFtZXdvcmtzICovLAot
CQkJCTQwMjREMTg4MTEzRDdENzgwMEM3MDU5RSAvKiBsaWJndGVzdC5hIGluIEZyYW1ld29ya3Mg
Ki8sCi0JCQkJM0I3RUIxNDgwRTVBRjNCNDAwQzdGMjM5IC8qIFdpZGdldC5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLywKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKLQkJfTsKLQkJOEQwN0YyQzMwNDg2Q0M3QTAwN0NEMUQwIC8qIEZyYW1ld29ya3Mg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9u
TWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKLS8qIEVuZCBQQlhGcmFtZXdvcmtzQnVp
bGRQaGFzZSBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWEdyb3VwIHNlY3Rpb24gKi8KLQkJMDM0
NzY4RERGRjM4QTQ1QTExREI5QzhCIC8qIFByb2R1Y3RzICovID0gewotCQkJaXNhID0gUEJYR3Jv
dXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk4RDA3RjJDODA0ODZDQzdBMDA3Q0QxRDAgLyogV2lk
Z2V0LmZyYW1ld29yayAqLywKLQkJCQkzQjA3QkRFQTBFM0YzRjlFMDA2NDc4NjkgLyogV2lkZ2V0
RnJhbWV3b3JrVGVzdCAqLywKLQkJCSk7Ci0JCQluYW1lID0gUHJvZHVjdHM7Ci0JCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwotCQl9OwotCQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogZ1Rl
c3RFeGFtcGxlICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJ
CQk0MDI0RDFFMTExM0Q4MzZDMDBDNzA1OUUgLyogU2NyaXB0cyAqLywKLQkJCQkwOEZCNzdBQ0ZF
ODQxNzA3QzAyQUFDMDcgLyogU291cmNlICovLAotCQkJCTA4OUMxNjY1RkU4NDExNThDMDJBQUMw
NyAvKiBSZXNvdXJjZXMgKi8sCi0JCQkJM0IwN0JFMzUwRTQwOTRFNDAwNjQ3ODY5IC8qIFRlc3Qg
Ki8sCi0JCQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEV4dGVybmFsIEZyYW1ld29ya3Mg
YW5kIExpYnJhcmllcyAqLywKLQkJCQkwMzQ3NjhEREZGMzhBNDVBMTFEQjlDOEIgLyogUHJvZHVj
dHMgKi8sCi0JCQkpOwotCQkJbmFtZSA9IGdUZXN0RXhhbXBsZTsKLQkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7Ci0JCX07Ci0JCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBFeHRlcm5hbCBG
cmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNo
aWxkcmVuID0gKAotCQkJCTQwMjREMTgzMTEzRDdENTUwMEM3MDU5RSAvKiBsaWJndGVzdF9tYWlu
LmEgKi8sCi0JCQkJNDAyNEQxODUxMTNEN0Q1NTAwQzcwNTlFIC8qIGxpYmd0ZXN0LmEgKi8sCi0J
CQkpOwotCQkJbmFtZSA9ICJFeHRlcm5hbCBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMiOwotCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJMDg5QzE2NjVGRTg0MTE1OEMwMkFBQzA3
IC8qIFJlc291cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJOEQwN0YyQzcwNDg2Q0M3QTAwN0NEMUQwIC8qIEluZm8ucGxpc3QgKi8sCi0JCQkpOwot
CQkJbmFtZSA9IFJlc291cmNlczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0J
CTA4RkI3N0FDRkU4NDE3MDdDMDJBQUMwNyAvKiBTb3VyY2UgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTNCN0VCMTIzMEU1QUVFMzUwMEM3RjIzOSAvKiB3
aWRnZXQuY2MgKi8sCi0JCQkJM0I3RUIxMjQwRTVBRUUzNTAwQzdGMjM5IC8qIHdpZGdldC5oICov
LAotCQkJKTsKLQkJCW5hbWUgPSBTb3VyY2U7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwot
CQl9OwotCQkzQjA3QkUzNTBFNDA5NEU0MDA2NDc4NjkgLyogVGVzdCAqLyA9IHsKLQkJCWlzYSA9
IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJM0I3RUIxMjcwRTVBRUU0NjAwQzdGMjM5
IC8qIHdpZGdldF90ZXN0LmNjICovLAotCQkJKTsKLQkJCW5hbWUgPSBUZXN0OwotCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNDAyNEQxRTExMTNEODM2QzAwQzcwNTlFIC8qIFNj
cmlwdHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTQw
MjREMUUyMTEzRDgzODIwMEM3MDU5RSAvKiBydW50ZXN0cy5zaCAqLywKLQkJCSk7Ci0JCQluYW1l
ID0gU2NyaXB0czsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0vKiBFbmQgUEJY
R3JvdXAgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9u
ICovCi0JCThEMDdGMkJEMDQ4NkNDN0EwMDdDRDFEMCAvKiBIZWFkZXJzICovID0gewotCQkJaXNh
ID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwotCQkJZmlsZXMgPSAoCi0JCQkJM0I3RUIxMjYwRTVBRUUzNTAwQzdGMjM5IC8qIHdpZGdldC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7Ci0JCX07Ci0vKiBFbmQgUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwot
Ci0vKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLwotCQkzQjA3QkRFOTBFM0YzRjlF
MDA2NDc4NjkgLyogV2lkZ2V0RnJhbWV3b3JrVGVzdCAqLyA9IHsKLQkJCWlzYSA9IFBCWE5hdGl2
ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAzQjA3QkRGNDBFM0YzRkI2MDA2
NDc4NjkgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldp
ZGdldEZyYW1ld29ya1Rlc3QiICovOwotCQkJYnVpbGRQaGFzZXMgPSAoCi0JCQkJM0IwN0JERTcw
RTNGM0Y5RTAwNjQ3ODY5IC8qIFNvdXJjZXMgKi8sCi0JCQkJM0IwN0JERTgwRTNGM0Y5RTAwNjQ3
ODY5IC8qIEZyYW1ld29ya3MgKi8sCi0JCQkpOwotCQkJYnVpbGRSdWxlcyA9ICgKLQkJCSk7Ci0J
CQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkJM0IwN0JERjEwRTNGM0ZBRTAwNjQ3ODY5IC8qIFBCWFRh
cmdldERlcGVuZGVuY3kgKi8sCi0JCQkpOwotCQkJbmFtZSA9IFdpZGdldEZyYW1ld29ya1Rlc3Q7
Ci0JCQlwcm9kdWN0TmFtZSA9IGdUZXN0RXhhbXBsZVRlc3Q7Ci0JCQlwcm9kdWN0UmVmZXJlbmNl
ID0gM0IwN0JERUEwRTNGM0Y5RTAwNjQ3ODY5IC8qIFdpZGdldEZyYW1ld29ya1Rlc3QgKi87Ci0J
CQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwotCQl9OwotCQk4
RDA3RjJCQzA0ODZDQzdBMDA3Q0QxRDAgLyogV2lkZ2V0RnJhbWV3b3JrICovID0gewotCQkJaXNh
ID0gUEJYTmF0aXZlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDRGQURDMjQy
MDhCNDE1NkQwMEFCRTU1RSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2
ZVRhcmdldCAiV2lkZ2V0RnJhbWV3b3JrIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCThE
MDdGMkMxMDQ4NkNDN0EwMDdDRDFEMCAvKiBTb3VyY2VzICovLAotCQkJCThEMDdGMkMzMDQ4NkND
N0EwMDdDRDFEMCAvKiBGcmFtZXdvcmtzICovLAotCQkJCThEMDdGMkJEMDQ4NkNDN0EwMDdDRDFE
MCAvKiBIZWFkZXJzICovLAotCQkJCThEMDdGMkJGMDQ4NkNDN0EwMDdDRDFEMCAvKiBSZXNvdXJj
ZXMgKi8sCi0JCQkJOEQwN0YyQzUwNDg2Q0M3QTAwN0NEMUQwIC8qIFJleiAqLywKLQkJCSk7Ci0J
CQlidWlsZFJ1bGVzID0gKAotCQkJKTsKLQkJCWRlcGVuZGVuY2llcyA9ICgKLQkJCSk7Ci0JCQlu
YW1lID0gV2lkZ2V0RnJhbWV3b3JrOwotCQkJcHJvZHVjdEluc3RhbGxQYXRoID0gIiQoSE9NRSkv
TGlicmFyeS9GcmFtZXdvcmtzIjsKLQkJCXByb2R1Y3ROYW1lID0gZ1Rlc3RFeGFtcGxlOwotCQkJ
cHJvZHVjdFJlZmVyZW5jZSA9IDhEMDdGMkM4MDQ4NkNDN0EwMDdDRDFEMCAvKiBXaWRnZXQuZnJh
bWV3b3JrICovOwotCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5mcmFt
ZXdvcmsiOwotCQl9OwotLyogRW5kIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCi0KLS8qIEJl
Z2luIFBCWFByb2plY3Qgc2VjdGlvbiAqLwotCQkwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyog
UHJvamVjdCBvYmplY3QgKi8gPSB7Ci0JCQlpc2EgPSBQQlhQcm9qZWN0OwotCQkJYnVpbGRDb25m
aWd1cmF0aW9uTGlzdCA9IDRGQURDMjQ2MDhCNDE1NkQwMEFCRTU1RSAvKiBCdWlsZCBjb25maWd1
cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldpZGdldEZyYW1ld29yayIgKi87Ci0JCQljb21w
YXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwotCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5n
cyA9IDE7Ci0JCQltYWluR3JvdXAgPSAwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogZ1Rlc3RF
eGFtcGxlICovOwotCQkJcHJvZHVjdFJlZkdyb3VwID0gMDM0NzY4RERGRjM4QTQ1QTExREI5QzhC
IC8qIFByb2R1Y3RzICovOwotCQkJcHJvamVjdERpclBhdGggPSAiIjsKLQkJCXByb2plY3RSb290
ID0gIiI7Ci0JCQl0YXJnZXRzID0gKAotCQkJCThEMDdGMkJDMDQ4NkNDN0EwMDdDRDFEMCAvKiBX
aWRnZXRGcmFtZXdvcmsgKi8sCi0JCQkJM0IwN0JERTkwRTNGM0Y5RTAwNjQ3ODY5IC8qIFdpZGdl
dEZyYW1ld29ya1Rlc3QgKi8sCi0JCQkJNDAyNEQxNjIxMTNEN0QyNDAwQzcwNTlFIC8qIFRlc3Qg
Ki8sCi0JCQkJNDAyNEQxRTkxMTNEODNGRjAwQzcwNTlFIC8qIFRlc3RBbmRCdWlsZCAqLywKLQkJ
CSk7Ci0JCX07Ci0vKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWFJl
c291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCQk4RDA3RjJCRjA0ODZDQzdBMDA3Q0QxRDAg
LyogUmVzb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKLQkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKLS8qIEVuZCBQQlhS
ZXNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYUmV6QnVpbGRQaGFz
ZSBzZWN0aW9uICovCi0JCThEMDdGMkM1MDQ4NkNDN0EwMDdDRDFEMCAvKiBSZXogKi8gPSB7Ci0J
CQlpc2EgPSBQQlhSZXpCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKLQkJCWZpbGVzID0gKAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwotCQl9OwotLyogRW5kIFBCWFJlekJ1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCi0v
KiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCQk0MDI0RDE2MTEx
M0Q3RDI0MDBDNzA1OUUgLyogU2hlbGxTY3JpcHQgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTaGVsbFNj
cmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmls
ZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCSk7Ci0JCQlvdXRwdXRQYXRocyA9
ICgKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICIvYmluL2Jhc2ggJFNSQ1JP
T1QvcnVudGVzdHMuc2ggJEJVSUxUX1BST0RVQ1RTX0RJUi9XaWRnZXRGcmFtZXdvcmtUZXN0XG4i
OwotCQl9OwotLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCi0KLS8q
IEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJM0IwN0JERTcwRTNGM0Y5
RTAwNjQ3ODY5IC8qIFNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFz
ZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQkz
QjdFQjEyODBFNUFFRTQ2MDBDN0YyMzkgLyogd2lkZ2V0X3Rlc3QuY2MgaW4gU291cmNlcyAqLywK
LQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsK
LQkJOEQwN0YyQzEwNDg2Q0M3QTAwN0NEMUQwIC8qIFNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhTb3VyY2VzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0J
CQlmaWxlcyA9ICgKLQkJCQkzQjdFQjEyNTBFNUFFRTM1MDBDN0YyMzkgLyogd2lkZ2V0LmNjIGlu
IFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7Ci0JCX07Ci0vKiBFbmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCi0v
KiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5IHNlY3Rpb24gKi8KLQkJM0IwN0JERjEwRTNGM0ZB
RTAwNjQ3ODY5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJn
ZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gOEQwN0YyQkMwNDg2Q0M3QTAwN0NEMUQwIC8qIFdp
ZGdldEZyYW1ld29yayAqLzsKLQkJCXRhcmdldFByb3h5ID0gM0IwN0JERjAwRTNGM0ZBRTAwNjQ3
ODY5IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDAyNEQxNjYxMTNEN0Qz
MTAwQzcwNTlFIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJn
ZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gM0IwN0JERTkwRTNGM0Y5RTAwNjQ3ODY5IC8qIFdp
ZGdldEZyYW1ld29ya1Rlc3QgKi87Ci0JCQl0YXJnZXRQcm94eSA9IDQwMjREMTY1MTEzRDdEMzEw
MEM3MDU5RSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87Ci0JCX07Ci0JCTQwMjREMUVEMTEz
RDg0MDkwMEM3MDU5RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDhEMDdGMkJDMDQ4NkNDN0EwMDdDRDFEMCAv
KiBXaWRnZXRGcmFtZXdvcmsgKi87Ci0JCQl0YXJnZXRQcm94eSA9IDQwMjREMUVDMTEzRDg0MDkw
MEM3MDU5RSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87Ci0JCX07Ci0JCTQwMjREMUVGMTEz
RDg0MEQwMEM3MDU5RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDQwMjREMTYyMTEzRDdEMjQwMEM3MDU5RSAv
KiBUZXN0ICovOwotCQkJdGFyZ2V0UHJveHkgPSA0MDI0RDFFRTExM0Q4NDBEMDBDNzA1OUUgLyog
UEJYQ29udGFpbmVySXRlbVByb3h5ICovOwotCQl9OwotLyogRW5kIFBCWFRhcmdldERlcGVuZGVu
Y3kgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICov
Ci0JCTNCMDdCREVDMEUzRjNGOUYwMDY0Nzg2OSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlQUk9EVUNUX05B
TUUgPSBXaWRnZXRGcmFtZXdvcmtUZXN0OwotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsK
LQkJM0IwN0JERUQwRTNGM0Y5RjAwNjQ3ODY5IC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJUFJPRFVDVF9O
QU1FID0gV2lkZ2V0RnJhbWV3b3JrVGVzdDsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFzZTsKLQkJ
fTsKLQkJNDAyNEQxNjMxMTNEN0QyNDAwQzcwNTlFIC8qIERlYnVnICovID0gewotCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1Rf
TkFNRSA9IFRlc3RBbmRCdWlsZDsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0JCTQw
MjREMTY0MTEzRDdEMjQwMEM3MDU5RSAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1RfTkFNRSA9
IFRlc3RBbmRCdWlsZDsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFzZTsKLQkJfTsKLQkJNDAyNEQx
RUExMTNEODNGRjAwQzcwNTlFIC8qIERlYnVnICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1RfTkFNRSA9IFRlc3RB
bmRCdWlsZDsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0JCTQwMjREMUVCMTEzRDgz
RkYwMEM3MDU5RSAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1RfTkFNRSA9IFRlc3RBbmRCdWls
ZDsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFzZTsKLQkJfTsKLQkJNEZBREMyNDMwOEI0MTU2RDAw
QUJFNTVFIC8qIERlYnVnICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0J
CQlidWlsZFNldHRpbmdzID0gewotCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7
Ci0JCQkJRFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKLQkJCQlGUkFNRVdPUktfVkVSU0lPTiA9
IEE7Ci0JCQkJSU5GT1BMSVNUX0ZJTEUgPSBJbmZvLnBsaXN0OwotCQkJCUlOU1RBTExfUEFUSCA9
ICJAbG9hZGVyX3BhdGgvLi4vRnJhbWV3b3JrcyI7Ci0JCQkJUFJPRFVDVF9OQU1FID0gV2lkZ2V0
OwotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJNEZBREMyNDQwOEI0MTU2RDAwQUJF
NTVFIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJ
CWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJRFlMSUJfQ09NUEFUSUJJTElUWV9WRVJTSU9OID0gMTsK
LQkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwotCQkJCUZSQU1FV09SS19WRVJTSU9OID0g
QTsKLQkJCQlJTkZPUExJU1RfRklMRSA9IEluZm8ucGxpc3Q7Ci0JCQkJSU5TVEFMTF9QQVRIID0g
IkBsb2FkZXJfcGF0aC8uLi9GcmFtZXdvcmtzIjsKLQkJCQlQUk9EVUNUX05BTUUgPSBXaWRnZXQ7
Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTRGQURDMjQ3MDhCNDE1NkQwMEFC
RTU1RSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlHQ0NfVkVSU0lPTiA9IDQuMDsKLQkJCQlTREtST09UID0g
L0RldmVsb3Blci9TREtzL01hY09TWDEwLjR1LnNkazsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7
Ci0JCX07Ci0JCTRGQURDMjQ4MDhCNDE1NkQwMEFCRTU1RSAvKiBSZWxlYXNlICovID0gewotCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUdD
Q19WRVJTSU9OID0gNC4wOwotCQkJCVNES1JPT1QgPSAvRGV2ZWxvcGVyL1NES3MvTWFjT1NYMTAu
NHUuc2RrOwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotLyogRW5kIFhDQnVpbGRD
b25maWd1cmF0aW9uIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlzdCBz
ZWN0aW9uICovCi0JCTNCMDdCREY0MEUzRjNGQjYwMDY0Nzg2OSAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2lkZ2V0RnJhbWV3b3JrVGVzdCIgKi8gPSB7
Ci0JCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9
ICgKLQkJCQkzQjA3QkRFQzBFM0YzRjlGMDA2NDc4NjkgLyogRGVidWcgKi8sCi0JCQkJM0IwN0JE
RUQwRTNGM0Y5RjAwNjQ3ODY5IC8qIFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25Jc1Zpc2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVs
ZWFzZTsKLQkJfTsKLQkJNDAyNEQxNjkxMTNEN0Q0NjAwQzcwNTlFIC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJUZXN0IiAqLyA9IHsKLQkJCWlzYSA9
IFhDQ29uZmlndXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCTQw
MjREMTYzMTEzRDdEMjQwMEM3MDU5RSAvKiBEZWJ1ZyAqLywKLQkJCQk0MDI0RDE2NDExM0Q3RDI0
MDBDNzA1OUUgLyogUmVsZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwotCQl9
OwotCQk0MDI0RDFGMDExM0Q4NDJCMDBDNzA1OUUgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIlRlc3RBbmRCdWlsZCIgKi8gPSB7Ci0JCQlpc2EgPSBY
Q0NvbmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQk0MDI0
RDFFQTExM0Q4M0ZGMDBDNzA1OUUgLyogRGVidWcgKi8sCi0JCQkJNDAyNEQxRUIxMTNEODNGRjAw
QzcwNTlFIC8qIFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zp
c2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKLQkJfTsK
LQkJNEZBREMyNDIwOEI0MTU2RDAwQUJFNTVFIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYTmF0aXZlVGFyZ2V0ICJXaWRnZXRGcmFtZXdvcmsiICovID0gewotCQkJaXNhID0gWEND
b25maWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJNEZBREMy
NDMwOEI0MTU2RDAwQUJFNTVFIC8qIERlYnVnICovLAotCQkJCTRGQURDMjQ0MDhCNDE1NkQwMEFC
RTU1RSAvKiBSZWxlYXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNp
YmxlID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0J
CTRGQURDMjQ2MDhCNDE1NkQwMEFCRTU1RSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWFByb2plY3QgIldpZGdldEZyYW1ld29yayIgKi8gPSB7Ci0JCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQk0RkFEQzI0NzA4QjQx
NTZEMDBBQkU1NUUgLyogRGVidWcgKi8sCi0JCQkJNEZBREMyNDgwOEI0MTU2RDAwQUJFNTVFIC8q
IFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAw
OwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKLQkJfTsKLS8qIEVuZCBY
Q0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KLQl9OwotCXJvb3RPYmplY3QgPSAwODY3RDY5
MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87Ci19CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS9y
dW50ZXN0cy5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NhbXBsZXMvRnJh
bWV3b3JrU2FtcGxlL3J1bnRlc3RzLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
YTBkNDEzZTUyZGY3NWQxNWMyYTRhOTUyNTZiMzJiNjA3ZjNiM2FiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0
L3hjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL3J1bnRlc3RzLnNoCisrKyAvZGV2L251bGwK
QEAgLTEsNjIgKzAsMCBAQAotIyEvYmluL2Jhc2gKLSMKLSMgQ29weXJpZ2h0IDIwMDgsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jIEV4
ZWN1dGVzIHRoZSBzYW1wbGVzIGFuZCB0ZXN0cyBmb3IgdGhlIEdvb2dsZSBUZXN0IEZyYW1ld29y
ay4KLQotIyBIZWxwIHRoZSBkeW5hbWljIGxpbmtlciBmaW5kIHRoZSBwYXRoIHRvIHRoZSBsaWJy
YXJpZXMuCi1leHBvcnQgRFlMRF9GUkFNRVdPUktfUEFUSD0kQlVJTFRfUFJPRFVDVFNfRElSCi1l
eHBvcnQgRFlMRF9MSUJSQVJZX1BBVEg9JEJVSUxUX1BST0RVQ1RTX0RJUgotCi0jIENyZWF0ZSBz
b21lIGV4ZWN1dGFibGVzLgotdGVzdF9leGVjdXRhYmxlcz0kQAotCi0jIE5vdyBleGVjdXRlIGVh
Y2ggb25lIGluIHR1cm4ga2VlcGluZyB0cmFjayBvZiBob3cgbWFueSBzdWNjZWVkZWQgYW5kIGZh
aWxlZC4KLXN1Y2NlZWRlZD0wCi1mYWlsZWQ9MAotZmFpbGVkX2xpc3Q9KCkKLWZvciB0ZXN0IGlu
ICR7dGVzdF9leGVjdXRhYmxlc1sqXX07IGRvCi0gICIkdGVzdCIKLSAgcmVzdWx0PSQ/Ci0gIGlm
IFsgJHJlc3VsdCAtZXEgMCBdOyB0aGVuCi0gICAgc3VjY2VlZGVkPSQoKCAkc3VjY2VlZGVkICsg
MSApKQotICBlbHNlCi0gICAgZmFpbGVkPSQoKCBmYWlsZWQgKyAxICkpCi0gICAgZmFpbGVkX2xp
c3Q9IiRmYWlsZWRfbGlzdCAkdGVzdCIKLSAgZmkKLWRvbmUKLQotIyBSZXBvcnQgdGhlIHN1Y2Nl
c3NlcyBhbmQgZmFpbHVyZXMgdG8gdGhlIGNvbnNvbGUuCi1lY2hvICJUZXN0cyBjb21wbGV0ZSB3
aXRoICRzdWNjZWVkZWQgc3VjY2Vzc2VzIGFuZCAkZmFpbGVkIGZhaWx1cmVzLiIKLWlmIFsgJGZh
aWxlZCAtbmUgMCBdOyB0aGVuCi0gIGVjaG8gIlRoZSBmb2xsb3dpbmcgdGVzdHMgZmFpbGVkOiIK
LSAgZWNobyAkZmFpbGVkX2xpc3QKLWZpCi1leGl0ICRmYWlsZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL3dpZGdl
dC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NhbXBsZXMvRnJhbWV3b3Jr
U2FtcGxlL3dpZGdldC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZjNGU3ZmNm
ZDBlN2EwMzJmMjY3Y2MwYWExODc1NGM3MGE3Y2EzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9T
YW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRnZXQuY2MKKysrIC9kZXYvbnVsbApAQCAtMSw2MyAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0v
LyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwot
Ly8gQXV0aG9yOiBwcmVzdG9uLmEuamFja3NvbkBnbWFpbC5jb20gKFByZXN0b24gSmFja3NvbikK
LS8vCi0vLyBHb29nbGUgVGVzdCAtIEZyYW1ld29ya1NhbXBsZQotLy8gd2lkZ2V0LmNjCi0vLwot
Ci0vLyBXaWRnZXQgaXMgYSB2ZXJ5IHNpbXBsZSBjbGFzcyB1c2VkIGZvciBkZW1vbnN0cmF0aW5n
IHRoZSB1c2Ugb2YgZ3Rlc3QKLQotI2luY2x1ZGUgIndpZGdldC5oIgotCi1XaWRnZXQ6OldpZGdl
dChpbnQgbnVtYmVyLCBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSkKLSAgICA6IG51bWJlcl8obnVt
YmVyKSwKLSAgICAgIG5hbWVfKG5hbWUpIHt9Ci0KLVdpZGdldDo6fldpZGdldCgpIHt9Ci0KLWZs
b2F0IFdpZGdldDo6R2V0RmxvYXRWYWx1ZSgpIGNvbnN0IHsKLSAgcmV0dXJuIG51bWJlcl87Ci19
Ci0KLWludCBXaWRnZXQ6OkdldEludFZhbHVlKCkgY29uc3QgewotICByZXR1cm4gc3RhdGljX2Nh
c3Q8aW50PihudW1iZXJfKTsKLX0KLQotc3RkOjpzdHJpbmcgV2lkZ2V0OjpHZXRTdHJpbmdWYWx1
ZSgpIGNvbnN0IHsKLSAgcmV0dXJuIG5hbWVfOwotfQotCi12b2lkIFdpZGdldDo6R2V0Q2hhclB0
clZhbHVlKGNoYXIqIGJ1ZmZlciwgc2l6ZV90IG1heF9zaXplKSBjb25zdCB7Ci0gIC8vIENvcHkg
dGhlIGNoYXIqIHJlcHJlc2VudGF0aW9uIG9mIG5hbWVfIGludG8gYnVmZmVyLCB1cCB0byBtYXhf
c2l6ZS4KLSAgc3RybmNweShidWZmZXIsIG5hbWVfLmNfc3RyKCksIG1heF9zaXplLTEpOwotICBi
dWZmZXJbbWF4X3NpemUtMV0gPSAnXDAnOwotICByZXR1cm47Ci19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRn
ZXQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NhbXBsZXMvRnJhbWV3b3Jr
U2FtcGxlL3dpZGdldC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzU1Y2RjOGNm
MDhhODM3MGUwMzMzM2FkN2U1OTNlMmIwYWQ0ZDkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1Nh
bXBsZXMvRnJhbWV3b3JrU2FtcGxlL3dpZGdldC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAs
MCBAQAotLy8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8g
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8v
IEF1dGhvcjogcHJlc3Rvbi5hLmphY2tzb25AZ21haWwuY29tIChQcmVzdG9uIEphY2tzb24pCi0v
LwotLy8gR29vZ2xlIFRlc3QgLSBGcmFtZXdvcmtTYW1wbGUKLS8vIHdpZGdldC5oCi0vLwotCi0v
LyBXaWRnZXQgaXMgYSB2ZXJ5IHNpbXBsZSBjbGFzcyB1c2VkIGZvciBkZW1vbnN0cmF0aW5nIHRo
ZSB1c2Ugb2YgZ3Rlc3QuIEl0Ci0vLyBzaW1wbHkgc3RvcmVzIHR3byB2YWx1ZXMgYSBzdHJpbmcg
YW5kIGFuIGludGVnZXIsIHdoaWNoIGFyZSByZXR1cm5lZCB2aWEKLS8vIHB1YmxpYyBhY2Nlc3Nv
cnMgaW4gbXVsdGlwbGUgZm9ybXMuCi0KLSNpbXBvcnQgPHN0cmluZz4KLQotY2xhc3MgV2lkZ2V0
IHsKLSBwdWJsaWM6Ci0gIFdpZGdldChpbnQgbnVtYmVyLCBjb25zdCBzdGQ6OnN0cmluZyYgbmFt
ZSk7Ci0gIH5XaWRnZXQoKTsKLQotICAvLyBQdWJsaWMgYWNjZXNzb3JzIHRvIG51bWJlciBkYXRh
Ci0gIGZsb2F0IEdldEZsb2F0VmFsdWUoKSBjb25zdDsKLSAgaW50IEdldEludFZhbHVlKCkgY29u
c3Q7Ci0KLSAgLy8gUHVibGljIGFjY2Vzc29ycyB0byB0aGUgc3RyaW5nIGRhdGEKLSAgc3RkOjpz
dHJpbmcgR2V0U3RyaW5nVmFsdWUoKSBjb25zdDsKLSAgdm9pZCBHZXRDaGFyUHRyVmFsdWUoY2hh
ciogYnVmZmVyLCBzaXplX3QgbWF4X3NpemUpIGNvbnN0OwotCi0gcHJpdmF0ZToKLSAgLy8gRGF0
YSBtZW1iZXJzCi0gIGZsb2F0IG51bWJlcl87Ci0gIHN0ZDo6c3RyaW5nIG5hbWVfOwotfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NhbXBsZXMvRnJhbWV3
b3JrU2FtcGxlL3dpZGdldF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QveGNv
ZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvd2lkZ2V0X3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg3MjU5OTQyMTg1MTQwOGU3NmFhYjZjNTYwYjgxODkyNDU5YmJkMmQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJk
X3BhcnR5L2dvb2dsZXRlc3QveGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvd2lkZ2V0X3Rl
c3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOCwg
R29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0v
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiBwcmVzdG9uLmEuamFja3Nv
bkBnbWFpbC5jb20gKFByZXN0b24gSmFja3NvbikKLS8vCi0vLyBHb29nbGUgVGVzdCAtIEZyYW1l
d29ya1NhbXBsZQotLy8gd2lkZ2V0X3Rlc3QuY2MKLS8vCi0KLS8vIFRoaXMgaXMgYSBzaW1wbGUg
dGVzdCBmaWxlIGZvciB0aGUgV2lkZ2V0IGNsYXNzIGluIHRoZSBXaWRnZXQuZnJhbWV3b3JrCi0K
LSNpbmNsdWRlIDxzdHJpbmc+Ci0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotI2luY2x1ZGUg
PFdpZGdldC93aWRnZXQuaD4KLQotLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGNvbnN0
cnVjdG9yIHNldHMgdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZQotLy8gV2lkZ2V0IGNsYXNzIGNv
cnJlY3RseS4KLVRFU1QoV2lkZ2V0SW5pdGlhbGl6ZXJUZXN0LCBUZXN0Q29uc3RydWN0b3IpIHsK
LSAgV2lkZ2V0IHdpZGdldCgxLjBmLCAibmFtZSIpOwotICBFWFBFQ1RfRkxPQVRfRVEoMS4wZiwg
d2lkZ2V0LkdldEZsb2F0VmFsdWUoKSk7Ci0gIEVYUEVDVF9FUShzdGQ6OnN0cmluZygibmFtZSIp
LCB3aWRnZXQuR2V0U3RyaW5nVmFsdWUoKSk7Ci19Ci0KLS8vIFRoaXMgdGVzdCB2ZXJpZmllcyB0
aGUgY29udmVyc2lvbiBvZiB0aGUgZmxvYXQgYW5kIHN0cmluZyB2YWx1ZXMgdG8gaW50IGFuZAot
Ly8gY2hhciosIHJlc3BlY3RpdmVseS4KLVRFU1QoV2lkZ2V0SW5pdGlhbGl6ZXJUZXN0LCBUZXN0
Q29udmVyc2lvbikgewotICBXaWRnZXQgd2lkZ2V0KDEuMGYsICJuYW1lIik7Ci0gIEVYUEVDVF9F
USgxLCB3aWRnZXQuR2V0SW50VmFsdWUoKSk7Ci0KLSAgc2l6ZV90IG1heF9zaXplID0gMTI4Owot
ICBjaGFyIGJ1ZmZlclttYXhfc2l6ZV07Ci0gIHdpZGdldC5HZXRDaGFyUHRyVmFsdWUoYnVmZmVy
LCBtYXhfc2l6ZSk7Ci0gIEVYUEVDVF9TVFJFUSgibmFtZSIsIGJ1ZmZlcik7Ci19Ci0KLS8vIFVz
ZSB0aGUgR29vZ2xlIFRlc3QgbWFpbiB0aGF0IGlzIGxpbmtlZCBpbnRvIHRoZSBmcmFtZXdvcmsu
IEl0IGRvZXMgc29tZXRoaW5nCi0vLyBsaWtlIHRoaXM6Ci0vLyBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpIHsKLS8vICAgdGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3Yp
OwotLy8gICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotLy8gfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QveGNvZGUvU2NyaXB0cy9ydW50ZXN0cy5zaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NjcmlwdHMvcnVudGVzdHMuc2gKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNmYzIyOWYxZDRhYjZmMjdjZDg3ZDM1NjdhYzhiYjk2MDM0ODYy
YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L2dvb2dsZXRlc3QveGNvZGUvU2NyaXB0cy9ydW50ZXN0cy5zaAorKysgL2Rldi9u
dWxsCkBAIC0xLDY1ICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0jCi0jIENvcHlyaWdodCAyMDA4LCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
IyBFeGVjdXRlcyB0aGUgc2FtcGxlcyBhbmQgdGVzdHMgZm9yIHRoZSBHb29nbGUgVGVzdCBGcmFt
ZXdvcmsuCi0KLSMgSGVscCB0aGUgZHluYW1pYyBsaW5rZXIgZmluZCB0aGUgcGF0aCB0byB0aGUg
bGlicmFyaWVzLgotZXhwb3J0IERZTERfRlJBTUVXT1JLX1BBVEg9JEJVSUxUX1BST0RVQ1RTX0RJ
UgotZXhwb3J0IERZTERfTElCUkFSWV9QQVRIPSRCVUlMVF9QUk9EVUNUU19ESVIKLQotIyBDcmVh
dGUgc29tZSBleGVjdXRhYmxlcy4KLXRlc3RfZXhlY3V0YWJsZXM9KCIkQlVJTFRfUFJPRFVDVFNf
RElSL2d0ZXN0X3VuaXR0ZXN0LWZyYW1ld29yayIKLSAgICAgICAgICAgICAgICAgICIkQlVJTFRf
UFJPRFVDVFNfRElSL2d0ZXN0X3VuaXR0ZXN0IgotICAgICAgICAgICAgICAgICAgIiRCVUlMVF9Q
Uk9EVUNUU19ESVIvc2FtcGxlMV91bml0dGVzdC1mcmFtZXdvcmsiCi0gICAgICAgICAgICAgICAg
ICAiJEJVSUxUX1BST0RVQ1RTX0RJUi9zYW1wbGUxX3VuaXR0ZXN0LXN0YXRpYyIpCi0KLSMgTm93
IGV4ZWN1dGUgZWFjaCBvbmUgaW4gdHVybiBrZWVwaW5nIHRyYWNrIG9mIGhvdyBtYW55IHN1Y2Nl
ZWRlZCBhbmQgZmFpbGVkLiAKLXN1Y2NlZWRlZD0wCi1mYWlsZWQ9MAotZmFpbGVkX2xpc3Q9KCkK
LWZvciB0ZXN0IGluICR7dGVzdF9leGVjdXRhYmxlc1sqXX07IGRvCi0gICIkdGVzdCIKLSAgcmVz
dWx0PSQ/Ci0gIGlmIFsgJHJlc3VsdCAtZXEgMCBdOyB0aGVuCi0gICAgc3VjY2VlZGVkPSQoKCAk
c3VjY2VlZGVkICsgMSApKQotICBlbHNlCi0gICAgZmFpbGVkPSQoKCBmYWlsZWQgKyAxICkpCi0g
ICAgZmFpbGVkX2xpc3Q9IiRmYWlsZWRfbGlzdCAkdGVzdCIKLSAgZmkKLWRvbmUKLQotIyBSZXBv
cnQgdGhlIHN1Y2Nlc3NlcyBhbmQgZmFpbHVyZXMgdG8gdGhlIGNvbnNvbGUuCi1lY2hvICJUZXN0
cyBjb21wbGV0ZSB3aXRoICRzdWNjZWVkZWQgc3VjY2Vzc2VzIGFuZCAkZmFpbGVkIGZhaWx1cmVz
LiIKLWlmIFsgJGZhaWxlZCAtbmUgMCBdOyB0aGVuCi0gIGVjaG8gIlRoZSBmb2xsb3dpbmcgdGVz
dHMgZmFpbGVkOiIKLSAgZWNobyAkZmFpbGVkX2xpc3QKLWZpCi1leGl0ICRmYWlsZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3hjb2RlL1NjcmlwdHMvdmVyc2lvbmdl
bmVyYXRlLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QveGNvZGUvU2NyaXB0cy92ZXJz
aW9uZ2VuZXJhdGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NzkxZDI1MzIx
ZGI4MTkzZjhiNDkwMWEzOGQyYjhhMzEzNGYzNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QveGNvZGUvU2Ny
aXB0cy92ZXJzaW9uZ2VuZXJhdGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIiIiQSBzY3JpcHQg
dG8gcHJlcGFyZSB2ZXJzaW9uIGluZm9ybXRpb24gZm9yIHVzZSB0aGUgZ3Rlc3QgSW5mby5wbGlz
dCBmaWxlLgotCi0gIFRoaXMgc2NyaXB0IGV4dHJhY3RzIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9u
IGZyb20gdGhlIGNvbmZpZ3VyZS5hYyBmaWxlIGFuZAotICB1c2VzIGl0IHRvIGdlbmVyYXRlIGEg
aGVhZGVyIGZpbGUgY29udGFpbmluZyB0aGUgc2FtZSBpbmZvcm1hdGlvbi4gVGhlCi0gICNkZWZp
bmVzIGluIHRoaXMgaGVhZGVyIGZpbGUgd2lsbCBiZSBpbmNsdWRlZCBpbiBkdXJpbmcgdGhlIGdl
bmVyYXRpb24gb2YKLSAgdGhlIEluZm8ucGxpc3Qgb2YgdGhlIGZyYW1ld29yaywgZ2l2aW5nIHRo
ZSBjb3JyZWN0IHZhbHVlIHRvIHRoZSB2ZXJzaW9uCi0gIHNob3duIGluIHRoZSBGaW5kZXIuCi0K
LSAgVGhpcyBzY3JpcHQgbWFrZXMgdGhlIGZvbGxvd2luZyBhc3N1bXB0aW9ucyAodGhlc2UgYXJl
IGZhdWx0cyBvZiB0aGUgc2NyaXB0LAotICBub3QgcHJvYmxlbXMgd2l0aCB0aGUgQXV0b2NvbmYp
OgotICAgIDEuIFRoZSBBQ19JTklUIG1hY3JvIHdpbGwgYmUgY29udGFpbmVkIHdpdGhpbiB0aGUg
Zmlyc3QgMTAyNCBjaGFyYWN0ZXJzCi0gICAgICAgb2YgY29uZmlndXJlLmFjCi0gICAgMi4gVGhl
IHZlcnNpb24gc3RyaW5nIHdpbGwgYmUgMyBpbnRlZ2VycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyBh
bmQgd2lsbCBiZQotICAgICAgIHN1cnJvdW5kZWQgYnkgc3F1YXJlIGJyYWNrZXRzLCAiWyIgYW5k
ICJdIiAoZS5nLiBbMS4wLjFdKS4gVGhlIGZpcnN0Ci0gICAgICAgc2VnbWVudCByZXByZXNlbnRz
IHRoZSBtYWpvciB2ZXJzaW9uLCB0aGUgc2Vjb25kIHJlcHJlc2VudHMgdGhlIG1pbm9yCi0gICAg
ICAgdmVyc2lvbiBhbmQgdGhlIHRoaXJkIHJlcHJlc2VudHMgdGhlIGZpeCB2ZXJzaW9uLgotICAg
IDMuIE5vICIpIiBjaGFyYWN0ZXIgZXhpc3RzIGJldHdlZW4gdGhlIG9wZW5pbmcgIigiIGFuZCBj
bG9zaW5nICIpIiBvZgotICAgICAgIEFDX0lOSVQsIGluY2x1ZGluZyBpbiBjb21tZW50cyBhbmQg
Y2hhcmFjdGVyIHN0cmluZ3MuCi0iIiIKLQotaW1wb3J0IHN5cwotaW1wb3J0IHJlCi0KLSMgUmVh
ZCB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50ICh0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgVmVy
c2lvbi5oKQotaWYgKGxlbihzeXMuYXJndikgPCAzKToKLSAgcHJpbnQgIlVzYWdlOiB2ZXJzaW9u
Z2VuZXJhdGUucHkgaW5wdXRfZGlyIG91dHB1dF9kaXIiCi0gIHN5cy5leGl0KDEpCi1lbHNlOgot
ICBpbnB1dF9kaXIgPSBzeXMuYXJndlsxXQotICBvdXRwdXRfZGlyID0gc3lzLmFyZ3ZbMl0KLQot
IyBSZWFkIHRoZSBmaXJzdCAxMDI0IGNoYXJhY3RlcnMgb2YgdGhlIGNvbmZpZ3VyZS5hYyBmaWxl
Ci1jb25maWdfZmlsZSA9IG9wZW4oIiVzL2NvbmZpZ3VyZS5hYyIgJSBpbnB1dF9kaXIsICdyJykK
LWJ1ZmZlcl9zaXplID0gMTAyNAotb3BlbmluZ19zdHJpbmcgPSBjb25maWdfZmlsZS5yZWFkKGJ1
ZmZlcl9zaXplKQotY29uZmlnX2ZpbGUuY2xvc2UoKQotCi0jIEV4dHJhY3QgdGhlIHZlcnNpb24g
c3RyaW5nIGZyb20gdGhlIEFDX0lOSVQgbWFjcm8KLSMgICBUaGUgZm9sbG93aW5nIGluaXRfZXhw
cmVzc2lvbiBtZWFuczoKLSMgICAgIEV4dHJhY3QgdGhyZWUgaW50ZWdlcnMgc2VwYXJhdGVkIGJ5
IHBlcmlvZHMgYW5kIHN1cnJvdW5kZWQgYnkgc3F1YXJlCi0jICAgICBicmFja2V0cyhlLmcuICJb
MS4wLjFdIikgYmV0d2VlbiAiQUNfSU5JVCgiIGFuZCAiKSIuIERvIG5vdCBiZSBncmVlZHkKLSMg
ICAgICgqPyBpcyB0aGUgbm9uLWdyZWVkeSBmbGFnKSBzaW5jZSB0aGF0IHdvdWxkIHB1bGwgaW4g
ZXZlcnl0aGluZyBiZXR3ZWVuCi0jICAgICB0aGUgZmlyc3QgIigiIGFuZCB0aGUgbGFzdCAiKSIg
aW4gdGhlIGZpbGUuCi12ZXJzaW9uX2V4cHJlc3Npb24gPSByZS5jb21waWxlKHIiQUNfSU5JVFwo
Lio/XFsoXGQrKVwuKFxkKylcLihcZCspXF0uKj9cKSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlLkRPVEFMTCkKLXZlcnNpb25fdmFsdWVzID0gdmVyc2lvbl9leHByZXNzaW9u
LnNlYXJjaChvcGVuaW5nX3N0cmluZykKLW1ham9yX3ZlcnNpb24gPSB2ZXJzaW9uX3ZhbHVlcy5n
cm91cCgxKQotbWlub3JfdmVyc2lvbiA9IHZlcnNpb25fdmFsdWVzLmdyb3VwKDIpCi1maXhfdmVy
c2lvbiA9IHZlcnNpb25fdmFsdWVzLmdyb3VwKDMpCi0KLSMgV3JpdGUgdGhlIHZlcnNpb24gaW5m
b3JtYXRpb24gdG8gYSBoZWFkZXIgZmlsZSB0byBiZSBpbmNsdWRlZCBpbiB0aGUKLSMgSW5mby5w
bGlzdCBmaWxlLgotZmlsZV9kYXRhID0gIiIiLy8KLS8vIERPIE5PVCBNT0RJRlkgVEhJUyBGSUxF
IChidXQgeW91IGNhbiBkZWxldGUgaXQpCi0vLwotLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0
ZWQgYnkgdGhlIHZlcnNpb25nZW5lcmF0ZS5weSBzY3JpcHQuIFRoaXMgc2NyaXB0Ci0vLyBpcyBl
eGVjdXRlZCBpbiBhICJSdW4gU2NyaXB0IiBidWlsZCBwaGFzZSB3aGVuIGNyZWF0aW5nIGd0ZXN0
LmZyYW1ld29yay4gVGhpcwotLy8gaGVhZGVyIGZpbGUgaXMgbm90IHVzZWQgZHVyaW5nIGNvbXBp
bGF0aW9uIG9mIEMtc291cmNlLiBSYXRoZXIsIGl0IHNpbXBseQotLy8gZGVmaW5lcyBzb21lIHZl
cnNpb24gc3RyaW5ncyBmb3Igc3Vic3RpdHV0aW9uIGluIHRoZSBJbmZvLnBsaXN0LiBCZWNhdXNl
IG9mCi0vLyB0aGlzLCB3ZSBhcmUgbm90IHJlc3RyaWN0ZWQgdG8gQy1zeW50YXggbm9yIGFyZSB3
ZSB1c2luZyBpbmNsdWRlIGd1YXJkcy4KLS8vCi0KLSNkZWZpbmUgR1RFU1RfVkVSU0lPTklORk9f
U0hPUlQgJXMuJXMKLSNkZWZpbmUgR1RFU1RfVkVSU0lPTklORk9fTE9ORyAlcy4lcy4lcwotCi0i
IiIgJSAobWFqb3JfdmVyc2lvbiwgbWlub3JfdmVyc2lvbiwgbWFqb3JfdmVyc2lvbiwgbWlub3Jf
dmVyc2lvbiwgZml4X3ZlcnNpb24pCi12ZXJzaW9uX2ZpbGUgPSBvcGVuKCIlcy9WZXJzaW9uLmgi
ICUgb3V0cHV0X2RpciwgJ3cnKQotdmVyc2lvbl9maWxlLndyaXRlKGZpbGVfZGF0YSkKLXZlcnNp
b25fZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvZ29vZ2xldGVzdC94
Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QveGNvZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAzYmZmOGNiODExNWE2OTY5YTIxNjJhOTgwY2VlMjk2YTQ2
NjQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvZ29vZ2xldGVzdC94Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTE4MiArMCwwIEBACi0vLyAhJCpVVEY4KiQhCi17Ci0J
YXJjaGl2ZVZlcnNpb24gPSAxOwotCWNsYXNzZXMgPSB7Ci0JfTsKLQlvYmplY3RWZXJzaW9uID0g
NDY7Ci0Jb2JqZWN0cyA9IHsKLQotLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24g
Ki8KLQkJM0IyMzhGNUYwRTgyOEI1NDAwODQ2RTExIC8qIENoZWNrICovID0gewotCQkJaXNhID0g
UEJYQWdncmVnYXRlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDNCMjM4RkEz
MEU4MjhCQjYwMDg0NkUxMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3Jl
Z2F0ZVRhcmdldCAiQ2hlY2siICovOwotCQkJYnVpbGRQaGFzZXMgPSAoCi0JCQkJM0IyMzhGNUUw
RTgyOEI1NDAwODQ2RTExIC8qIFNoZWxsU2NyaXB0ICovLAotCQkJKTsKLQkJCWRlcGVuZGVuY2ll
cyA9ICgKLQkJCQk0MDg5OUY5RDBGRkE3NDBGMDAwQjI5QUUgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKLQkJCQk0MEM4NDlGNzEwMUE0MzQ0MDA4MzY0MkEgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKLQkJCQk0MDg5QTA5ODBGRkFEMzRBMDAwQjI5QUUgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKLQkJCQk0MEM4NDlGOTEwMUE0MzQ5MDA4MzY0MkEgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKLQkJCSk7Ci0JCQluYW1lID0gQ2hlY2s7Ci0JCQlwcm9kdWN0TmFtZSA9IENoZWNrOwot
CQl9OwotCQk0MEM0NEFEQzBFMzc5OEY0MDA4RkNDNTEgLyogVmVyc2lvbiBJbmZvICovID0gewot
CQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDQwQzQ0QUU0MEUzNzk5MDUwMDhGQ0M1MSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWEFnZ3JlZ2F0ZVRhcmdldCAiVmVyc2lvbiBJbmZvIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0g
KAotCQkJCTQwQzQ0QURCMEUzNzk4RjQwMDhGQ0M1MSAvKiBHZW5lcmF0ZSBWZXJzaW9uLmggKi8s
Ci0JCQkpOwotCQkJY29tbWVudHMgPSAiVGhlIGdlbmVyYXRpb24gb2YgVmVyc2lvbi5oIG11c3Qg
YmUgcGVyZm9ybWVkIGluIGl0cyBvd24gdGFyZ2V0LiBTaW5jZSB0aGUgSW5mby5wbGlzdCBpcyBw
cmVwcm9jZXNzZWQgYmVmb3JlIGFueSBvZiB0aGUgb3RoZXIgYnVpbGQgcGhhc2VzIGluIGd0ZXN0
LCB0aGUgVmVyc2lvbi5oIGZpbGUgd291bGQgbm90IGJlIHJlYWR5IGlmIGluY2x1ZGVkIGFzIGEg
YnVpbGQgcGhhc2Ugb2YgdGhhdCB0YXJnZXQuIjsKLQkJCWRlcGVuZGVuY2llcyA9ICgKLQkJCSk7
Ci0JCQluYW1lID0gIlZlcnNpb24gSW5mbyI7Ci0JCQlwcm9kdWN0TmFtZSA9IFZlcnNpb24uaDsK
LQkJfTsKLS8qIEVuZCBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQ
QlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCQkyMjRBMTJBMzBFOUVBRENDMDBCRDE3RkQgLyogZ3Rl
c3QtdGVzdC1wYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyMjRBMTJBMjBFOUVBRENDMDBCRDE3RkQgLyogZ3Rlc3QtdGVzdC1wYXJ0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwotCQkzQkY2RjJBMDBFNzlC
NUFEMDAwRjJFRUUgLyogZ3Rlc3QtdHlwZS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFs
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNCRjZGMjlGMEU3OUI1QUQwMDBG
MkVFRSAvKiBndGVzdC10eXBlLXV0aWwuaCAqLzsgfTsKLQkJM0JGNkYyQTUwRTc5QjYxNjAwMEYy
RUVFIC8qIGd0ZXN0LXR5cGVkLXRlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNCRjZGMkE0MEU3OUI2MTYwMDBGMkVFRSAvKiBndGVzdC10eXBlZC10
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwotCQk0
MDQ4ODQzODBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtZGVhdGgtdGVzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODgzREIwRTJGNzk5QjAwQ0Y3
NjU4IC8qIGd0ZXN0LWRlYXRoLXRlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07Ci0JCTQwNDg4NDM5MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1tZXNz
YWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDQ4
ODNEQzBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtbWVzc2FnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJNDA0ODg0M0EwRTJGNzk5QjAwQ0Y3NjU4
IC8qIGd0ZXN0LXNwaS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDA0ODgzREQwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LXNwaS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJNDA0ODg0M0IwRTJGNzk5QjAw
Q0Y3NjU4IC8qIGd0ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MDQ4ODNERTBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCTQwNDg4NDNDMEUyRjc5OUIwMENG
NzY1OCAvKiBndGVzdF9wcmVkX2ltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQwNDg4M0RGMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdF9wcmVkX2lt
cGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCTQw
NDg4NDNEMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdF9wcm9kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODNFMDBFMkY3OTlCMDBDRjc2NTggLyog
Z3Rlc3RfcHJvZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKLQkJNDA0ODg0NTAwRTJGNzk5QjAwQ0Y3NjU4IC8qIFJFQURNRS5tZCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODgzRjYwRTJGNzk5QjAwQ0Y3
NjU4IC8qIFJFQURNRS5tZCAqLzsgfTsKLQkJNDA0ODg0QTAwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0
ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODgzRTIwRTJGNzk5QjAwQ0Y3NjU4IC8q
IGd0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCAqLzsgfTsKLQkJNDA0ODg0QTEwRTJGN0JFNjAw
Q0Y3NjU4IC8qIGd0ZXN0LWZpbGVwYXRoLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4M0UzMEUyRjc5OUIwMENGNzY1OCAv
KiBndGVzdC1maWxlcGF0aC5oICovOyB9OwotCQk0MDQ4ODRBMjBFMkY3QkU2MDBDRjc2NTggLyog
Z3Rlc3QtaW50ZXJuYWwuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODgzRTQwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWlu
dGVybmFsLmggKi87IH07Ci0JCTQwNDg4NEEzMEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1wb3J0
LmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQwNDg4M0U1MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1wb3J0LmggKi87IH07Ci0J
CTQwNDg4NEE0MEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1zdHJpbmcuaCBpbiBDb3B5IEhlYWRl
cnMgSW50ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODgzRTYw
RTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LXN0cmluZy5oICovOyB9OwotCQk0MDQ4ODRBQzBFMkY3
Q0Q5MDBDRjc2NTggLyogQ0hBTkdFUyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDA0ODg0QTkwRTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5HRVMgKi87IH07
Ci0JCTQwNDg4NEFEMEUyRjdDRDkwMENGNzY1OCAvKiBDT05UUklCVVRPUlMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4NEFBMEUyRjdDRDkwMENG
NzY1OCAvKiBDT05UUklCVVRPUlMgKi87IH07Ci0JCTQwNDg4NEFFMEUyRjdDRDkwMENGNzY1OCAv
KiBMSUNFTlNFIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MDQ4ODRBQjBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSAqLzsgfTsKLQkJNDA4OTlGM0Ew
RkZBNzBENDAwMEIyOUFFIC8qIGd0ZXN0LWFsbC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNEExMkExMEU5RUFEQTcwMEJEMTdGRCAvKiBndGVzdC1h
bGwuY2MgKi87IH07Ci0JCTQwODk5RjUwMEZGQTcyODEwMDBCMjlBRSAvKiBndGVzdC10dXBsZS5o
IGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MDg5OUY0RDBGRkE3MjcxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCAqLzsgfTsKLQkJ
NDA4OTlGNTMwRkZBNzJBMDAwMEIyOUFFIC8qIGd0ZXN0X3VuaXR0ZXN0LmNjIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0IyMzhDMTIwRTdGRTEzQzAwODQ2
RTExIC8qIGd0ZXN0X3VuaXR0ZXN0LmNjICovOyB9OwotCQk0MDg5QTA0NDBGRkFEMUJFMDAwQjI5
QUUgLyogc2FtcGxlMS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQwODlBMDJDMEZGQUNGN0YwMDBCMjlBRSAvKiBzYW1wbGUxLmNjICovOyB9OwotCQk0
MDg5QTA0NjBGRkFEMUJFMDAwQjI5QUUgLyogc2FtcGxlMV91bml0dGVzdC5jYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwODlBMDJFMEZGQUNGN0YwMDBC
MjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LmNjICovOyB9OwotCQk0MEM4NDhGRjEwMUEyMTE1MDA4
MzY0MkEgLyogZ3Rlc3QtYWxsLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjI0QTEyQTEwRTlFQURBNzAwQkQxN0ZEIC8qIGd0ZXN0LWFsbC5jYyAqLzsg
fTsKLQkJNDBDODQ5MTUxMDFBMjFERjAwODM2NDJBIC8qIGd0ZXN0X21haW4uY2MgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODQwRDBFMkY3OTlCMDBD
Rjc2NTggLyogZ3Rlc3RfbWFpbi5jYyAqLzsgfTsKLQkJNDBDODQ5MTYxMDFBMjM1QjAwODM2NDJB
IC8qIGxpYmd0ZXN0X21haW4uYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQwQzg0OTBCMTAxQTIxN0UwMDgzNjQyQSAvKiBsaWJndGVzdF9tYWluLmEg
Ki87IH07Ci0JCTQwQzg0OTIxMTAxQTIzQUQwMDgzNjQyQSAvKiBsaWJndGVzdF9tYWluLmEgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MEM4NDkwQjEw
MUEyMTdFMDA4MzY0MkEgLyogbGliZ3Rlc3RfbWFpbi5hICovOyB9OwotCQk0MEM4NDk3ODEwMUEz
NjU0MDA4MzY0MkEgLyogbGliZ3Rlc3RfbWFpbi5hIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MEM4NDkwQjEwMUEyMTdFMDA4MzY0MkEgLyogbGliZ3Rl
c3RfbWFpbi5hICovOyB9OwotCQk0MEM4NDk4MDEwMUEzNjg1MDA4MzY0MkEgLyogZ3Rlc3RfdW5p
dHRlc3QuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
QjIzOEMxMjBFN0ZFMTNDMDA4NDZFMTEgLyogZ3Rlc3RfdW5pdHRlc3QuY2MgKi87IH07Ci0JCTQw
Qzg0OTgyMTAxQTM2ODUwMDgzNjQyQSAvKiBsaWJndGVzdC5hIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBDODQ4RkExMDFBMjA5QzAwODM2NDJBIC8q
IGxpYmd0ZXN0LmEgKi87IH07Ci0JCTQwQzg0OTgzMTAxQTM2ODUwMDgzNjQyQSAvKiBsaWJndGVz
dF9tYWluLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MEM4NDkwQjEwMUEyMTdFMDA4MzY0MkEgLyogbGliZ3Rlc3RfbWFpbi5hICovOyB9OwotCQk0
MEM4NDk4RjEwMUEzNkE2MDA4MzY0MkEgLyogc2FtcGxlMS5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwODlBMDJDMEZGQUNGN0YwMDBCMjlBRSAvKiBz
YW1wbGUxLmNjICovOyB9OwotCQk0MEM4NDk5MDEwMUEzNkE2MDA4MzY0MkEgLyogc2FtcGxlMV91
bml0dGVzdC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwODlBMDJFMEZGQUNGN0YwMDBCMjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LmNjICovOyB9Owot
CQk0MEM4NDk5MjEwMUEzNkE2MDA4MzY0MkEgLyogbGliZ3Rlc3QuYSBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwQzg0OEZBMTAxQTIwOUMwMDgzNjQy
QSAvKiBsaWJndGVzdC5hICovOyB9OwotCQk0MEM4NDk5MzEwMUEzNkE2MDA4MzY0MkEgLyogbGli
Z3Rlc3RfbWFpbi5hIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDBDODQ5MEIxMDFBMjE3RTAwODM2NDJBIC8qIGxpYmd0ZXN0X21haW4uYSAqLzsgfTsK
LQkJNDBDODQ5QTIxMDFBMzcwNTAwODM2NDJBIC8qIGd0ZXN0LmZyYW1ld29yayBpbiBGcmFtZXdv
cmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MzlDOEZGMEVDMjdGNjQw
MEE3MEY0QyAvKiBndGVzdC5mcmFtZXdvcmsgKi87IH07Ci0JCTQwQzg0OUE0MTAxQTM3MTUwMDgz
NjQyQSAvKiBndGVzdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NTM5QzhGRjBFQzI3RjY0MDBBNzBGNEMgLyogZ3Rlc3QuZnJhbWV3
b3JrICovOyB9OwotCQk0NTM5QzkzNDBFQzI4MEFFMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdGVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzOUM5
MzMwRUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCTQ1MzlDOTM4MEVDMjgwRTIwMEE3MEY0
QyAvKiBndGVzdC1saW5rZWRfcHRyLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MzlDOTM1MEVDMjgwRTIwMEE3MEY0QyAvKiBn
dGVzdC1saW5rZWRfcHRyLmggKi87IH07Ci0JCTQ1MzlDOTM5MEVDMjgwRTIwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NTM5QzkzNjBFQzI4MEUyMDBBNzBGNEMg
LyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCAqLzsgfTsKLQkJNDUzOUM5M0EwRUMyODBF
MjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzOUM5MzcwRUMyODBFMjAwQTcw
RjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwuaCAqLzsgfTsKLQkJNDU2N0M4MTgxMjY0RkY3MTAwNzc0
MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NTY3QzgxNzEyNjRGRjcxMDA3NzQwQkUgLyogZ3Rlc3QtcHJpbnRlcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCUY2N0Q0
RjNFMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFyY2guaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAv
KiBndGVzdC1wb3J0LWFyY2guaCAqLzsgfTsKLQkJRjY3RDRGM0YxQzdGNURBNzAwMTdDNzI5IC8q
IGd0ZXN0LXBvcnQtYXJjaC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjdENEYzRDFDN0Y1RDhCMDAxN0M3MjkgLyogZ3Rlc3Qt
cG9ydC1hcmNoLmggKi87IH07Ci0JCUY2N0Q0RjQ0MUM3RjVERDAwMDE3QzcyOSAvKiBndGVzdC1w
b3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjdE
NEY0MTFDN0Y1REQwMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC5oICovOyB9OwotCQlGNjdENEY0NTFD
N0Y1REQwMDAxN0M3MjkgLyogZ3Rlc3QtcHJpbnRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjQyMUM3RjVERDAwMDE3QzcyOSAvKiBndGVz
dC1wcmludGVycy5oICovOyB9OwotCQlGNjdENEY0NjFDN0Y1REQwMDAxN0M3MjkgLyogZ3Rlc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjQz
MUM3RjVERDAwMDE3QzcyOSAvKiBndGVzdC5oICovOyB9OwotCQlGNjdENEY0ODFDN0Y1RTE2MDAx
N0M3MjkgLyogZ3Rlc3QtcG9ydC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCBDdXN0b20gKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY3RDRGNDExQzdGNUREMDAwMTdDNzI5
IC8qIGd0ZXN0LXBvcnQuaCAqLzsgfTsKLQkJRjY3RDRGNDkxQzdGNUUyNjAwMTdDNzI5IC8qIGd0
ZXN0LXByaW50ZXJzLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsIEN1c3RvbSAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjdENEY0MjFDN0Y1REQwMDAxN0M3MjkgLyogZ3Rl
c3QtcHJpbnRlcnMuaCAqLzsgfTsKLS8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCi0v
KiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwotCQk0MDg5OUY5QzBGRkE3
NDBGMDAwQjI5QUUgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4
RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gNDA4OTlGNDIwRkZBNzE4NDAwMEIyOUFFOwotCQkJcmVtb3Rl
SW5mbyA9IGd0ZXN0X3VuaXR0ZXN0OwotCQl9OwotCQk0MDg5QTA5NzBGRkFEMzRBMDAwQjI5QUUg
LyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRl
bVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8q
IFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElE
U3RyaW5nID0gNDA4OUEwMTIwRkZBQ0VGQzAwMEIyOUFFOwotCQkJcmVtb3RlSW5mbyA9IHNhbXBs
ZTFfdW5pdHRlc3Q7Ci0JCX07Ci0JCTQwOEJFQzBGMTA0NkNGRTkwMERFRjUyMiAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0J
CQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBv
YmplY3QgKi87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA0
MEM4NDhGOTEwMUEyMDlDMDA4MzY0MkE7Ci0JCQlyZW1vdGVJbmZvID0gImd0ZXN0LXN0YXRpYyI7
Ci0JCX07Ci0JCTQwQzQ0QUU1MEUzNzk5MjIwMDhGQ0M1MSAvKiBQQlhDb250YWluZXJJdGVtUHJv
eHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0JCQljb250YWluZXJQ
b3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87Ci0J
CQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA0MEM0NEFEQzBFMzc5
OEY0MDA4RkNDNTE7Ci0JCQlyZW1vdGVJbmZvID0gVmVyc2lvbi5oOwotCQl9OwotCQk0MEM4NDk3
QzEwMUEzNjg1MDA4MzY0MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBG
RTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsK
LQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNDBDODQ4RjkxMDFBMjA5QzAwODM2NDJBOwotCQkJ
cmVtb3RlSW5mbyA9ICJndGVzdC1zdGF0aWMiOwotCQl9OwotCQk0MEM4NDk3RTEwMUEzNjg1MDA4
MzY0MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFp
bmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFB
QzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUds
b2JhbElEU3RyaW5nID0gNDBDODQ5MEExMDFBMjE3RTAwODM2NDJBOwotCQkJcmVtb3RlSW5mbyA9
ICJndGVzdF9tYWluLXN0YXRpYyI7Ci0JCX07Ci0JCTQwQzg0OThCMTAxQTM2QTYwMDgzNjQyQSAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7Ci0JCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyog
UHJvamVjdCBvYmplY3QgKi87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURT
dHJpbmcgPSA0MEM4NDhGOTEwMUEyMDlDMDA4MzY0MkE7Ci0JCQlyZW1vdGVJbmZvID0gImd0ZXN0
LXN0YXRpYyI7Ci0JCX07Ci0JCTQwQzg0OThEMTAxQTM2QTYwMDgzNjQyQSAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0JCQlj
b250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmpl
Y3QgKi87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA0MEM4
NDkwQTEwMUEyMTdFMDA4MzY0MkE7Ci0JCQlyZW1vdGVJbmZvID0gImd0ZXN0X21haW4tc3RhdGlj
IjsKLQkJfTsKLQkJNDBDODQ5OUIxMDFBMzZEQzAwODM2NDJBIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLyA9IHsKLQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5l
clBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsK
LQkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDQwQzg0OTBBMTAx
QTIxN0UwMDgzNjQyQTsKLQkJCXJlbW90ZUluZm8gPSAiZ3Rlc3RfbWFpbi1zdGF0aWMiOwotCQl9
OwotCQk0MEM4NDk5RDEwMUEzNkU1MDA4MzY0MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICov
ID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFs
ID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJv
eHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOEQwN0YyQkMwNDg2Q0M3QTAw
N0NEMUQwOwotCQkJcmVtb3RlSW5mbyA9ICJndGVzdC1mcmFtZXdvcmsiOwotCQl9OwotCQk0MEM4
NDk5RjEwMUEzNkYxMDA4MzY0MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJ
aXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2
OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0g
MTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOEQwN0YyQkMwNDg2Q0M3QTAwN0NEMUQwOwot
CQkJcmVtb3RlSW5mbyA9ICJndGVzdC1mcmFtZXdvcmsiOwotCQl9OwotCQk0MEM4NDlGNjEwMUE0
MzQ0MDA4MzY0MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4
RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gNDBDODQ5N0ExMDFBMzY4NTAwODM2NDJBOwotCQkJcmVtb3Rl
SW5mbyA9ICJndGVzdF91bml0dGVzdC1zdGF0aWMiOwotCQl9OwotCQk0MEM4NDlGODEwMUE0MzQ5
MDA4MzY0MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29u
dGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMw
MkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90
ZUdsb2JhbElEU3RyaW5nID0gNDBDODQ5ODkxMDFBMzZBNjAwODM2NDJBOwotCQkJcmVtb3RlSW5m
byA9ICJzYW1wbGUxX3VuaXR0ZXN0LXN0YXRpYyI7Ci0JCX07Ci0vKiBFbmQgUEJYQ29udGFpbmVy
SXRlbVByb3h5IHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYQ29weUZpbGVzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCi0JCTQwNDg4NEE1MEUyRjdDMDQwMENGNzY1OCAvKiBDb3B5IEhlYWRlcnMgSW50
ZXJuYWwgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlOwotCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWRzdFBhdGggPSBIZWFkZXJzL2ludGVybmFsOwot
CQkJZHN0U3ViZm9sZGVyU3BlYyA9IDY7Ci0JCQlmaWxlcyA9ICgKLQkJCQlGNjdENEYzRjFDN0Y1
REE3MDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFs
ICovLAotCQkJCTQwNDg4NEEwMEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1kZWF0aC10ZXN0LWlu
dGVybmFsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAotCQkJCTQwNDg4NEExMEUyRjdC
RTYwMENGNzY1OCAvKiBndGVzdC1maWxlcGF0aC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAq
LywKLQkJCQk0MDQ4ODRBMjBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtaW50ZXJuYWwuaCBpbiBD
b3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDUzOUM5MzgwRUMyODBFMjAwQTcwRjRDIC8q
IGd0ZXN0LWxpbmtlZF9wdHIuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDUz
OUM5MzkwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmggaW4g
Q29weSBIZWFkZXJzIEludGVybmFsICovLAotCQkJCTQ1MzlDOTNBMEVDMjgwRTIwMEE3MEY0QyAv
KiBndGVzdC1wYXJhbS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAotCQkJCTQw
NDg4NEEzMEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1wb3J0LmggaW4gQ29weSBIZWFkZXJzIElu
dGVybmFsICovLAotCQkJCTQwNDg4NEE0MEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1zdHJpbmcu
aCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDA4OTlGNTAwRkZBNzI4MTAwMEIy
OUFFIC8qIGd0ZXN0LXR1cGxlLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAotCQkJCTNC
RjZGMkEwMEU3OUI1QUQwMDBGMkVFRSAvKiBndGVzdC10eXBlLXV0aWwuaCBpbiBDb3B5IEhlYWRl
cnMgSW50ZXJuYWwgKi8sCi0JCQkpOwotCQkJbmFtZSA9ICJDb3B5IEhlYWRlcnMgSW50ZXJuYWwi
OwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07Ci0JCUY2
N0Q0RjQ3MUM3RjVERjYwMDE3QzcyOSAvKiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgQ3VzdG9tICov
ID0gewotCQkJaXNhID0gUEJYQ29weUZpbGVzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7Ci0JCQlkc3RQYXRoID0gSGVhZGVycy9pbnRlcm5hbC9jdXN0b207Ci0J
CQlkc3RTdWJmb2xkZXJTcGVjID0gNjsKLQkJCWZpbGVzID0gKAotCQkJCUY2N0Q0RjQ5MUM3RjVF
MjYwMDE3QzcyOSAvKiBndGVzdC1wcmludGVycy5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCBD
dXN0b20gKi8sCi0JCQkJRjY3RDRGNDgxQzdGNUUxNjAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQuaCBp
biBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgQ3VzdG9tICovLAotCQkJKTsKLQkJCW5hbWUgPSAiQ29w
eSBIZWFkZXJzIEludGVybmFsIEN1c3RvbSI7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKLQkJfTsKLS8qIEVuZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KLQotLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCi0JCTIyNEExMkEx
MEU5RUFEQTcwMEJEMTdGRCAvKiBndGVzdC1hbGwuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gImd0ZXN0LWFsbC5jYyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTIyNEExMkEyMEU5RUFEQ0MwMEJEMTdGRCAvKiBndGVzdC10ZXN0LXBhcnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC10ZXN0LXBhcnQuaCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTNCMjM4QzEyMEU3RkUxM0MwMDg0NkUxMSAvKiBndGVzdF91
bml0dGVzdC5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGd0ZXN0X3Vu
aXR0ZXN0LmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzQjg3RDIxMDBFOTZCOTJF
MDAwRDE4NTIgLyogcnVudGVzdHMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9
IHJ1bnRlc3RzLnNoOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzQkY2RjI5RjBFNzlC
NUFEMDAwRjJFRUUgLyogZ3Rlc3QtdHlwZS11dGlsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9ICJndGVzdC10eXBlLXV0aWwuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTNCRjZGMkE0MEU3OUI2MTYwMDBGMkVFRSAvKiBndGVzdC10eXBlZC10ZXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC10eXBlZC10ZXN0LmgiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0MDNFRTM3QzBFMzc3ODIyMDA0QkQxRTIgLyogdmVyc2lv
bmdlbmVyYXRlLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gdmVyc2lv
bmdlbmVyYXRlLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MDQ4ODNEQjBFMkY3
OTlCMDBDRjc2NTggLyogZ3Rlc3QtZGVhdGgtdGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSAiZ3Rlc3QtZGVhdGgtdGVzdC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDA0ODgzREMwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LW1lc3NhZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LW1lc3NhZ2UuaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQwNDg4M0REMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1zcGku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXNwaS5oIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDA0ODgzREUwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGd0ZXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQwNDg4M0RGMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdF9wcmVk
X2ltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZ3Rlc3RfcHJlZF9pbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQwNDg4M0UwMEUyRjc5OUIwMENGNzY1
OCAvKiBndGVzdF9wcm9kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGd0ZXN0
X3Byb2QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDA0ODgzRTIwRTJGNzk5QjAw
Q0Y3NjU4IC8qIGd0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gImd0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQwNDg4M0UzMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1maWxl
cGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtZmlsZXBhdGgu
aCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQwNDg4M0U0MEUyRjc5OUIwMENGNzY1
OCAvKiBndGVzdC1pbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAi
Z3Rlc3QtaW50ZXJuYWwuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQwNDg4M0U1
MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1wb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9ICJndGVzdC1wb3J0LmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
MDQ4ODNFNjBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3Qtc3RyaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1zdHJpbmcuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQwNDg4M0Y2MEUyRjc5OUIwMENGNzY1OCAvKiBSRUFETUUubWQgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gUkVBRE1FLm1kOyBwYXRoID0gLi4vUkVBRE1FLm1kOyBzb3VyY2VUcmVl
ID0gU09VUkNFX1JPT1Q7IH07Ci0JCTQwNDg4NDBEMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdF9t
YWluLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ3Rlc3RfbWFpbi5j
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDA0ODg0QTkwRTJGN0NEOTAwQ0Y3NjU4
IC8qIENIQU5HRVMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gQ0hBTkdFUzsgcGF0aCA9IC4uL0NI
QU5HRVM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJNDA0ODg0QUEwRTJGN0NEOTAw
Q0Y3NjU4IC8qIENPTlRSSUJVVE9SUyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBDT05UUklCVVRP
UlM7IHBhdGggPSAuLi9DT05UUklCVVRPUlM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
LQkJNDA0ODg0QUIwRTJGN0NEOTAwQ0Y3NjU4IC8qIExJQ0VOU0UgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gTElDRU5TRTsgcGF0aCA9IC4uL0xJQ0VOU0U7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKLQkJNDA4OTlGNDMwRkZBNzE4NDAwMEIyOUFFIC8qIGd0ZXN0X3VuaXR0ZXN0LWZyYW1l
d29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNv
bXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gImd0
ZXN0X3VuaXR0ZXN0LWZyYW1ld29yayI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07Ci0JCTQwODk5RjREMEZGQTcyNzEwMDBCMjlBRSAvKiBndGVzdC10dXBsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtdHVwbGUuaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTQwODk5RkIzMEZGQTc1NjcwMDBCMjlBRSAvKiBTdGF0aWNMaWJyYXJ5
VGFyZ2V0LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFN0YXRpY0xp
YnJhcnlUYXJnZXQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQwODlB
MDEzMEZGQUNFRkMwMDBCMjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LWZyYW1ld29yayAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gt
by5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gInNhbXBsZTFfdW5pdHRl
c3QtZnJhbWV3b3JrIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNDA4
OUEwMkMwRkZBQ0Y3RjAwMEIyOUFFIC8qIHNhbXBsZTEuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBzYW1wbGUxLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0MDg5QTAyRDBGRkFDRjdGMDAwQjI5QUUgLyogc2FtcGxlMS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBzYW1wbGUxLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQwODlBMDJFMEZGQUNGN0YwMDBCMjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LmNjICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gc2FtcGxlMV91bml0dGVzdC5jYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDBDODQ4RkExMDFBMjA5QzAwODM2NDJBIC8qIGxpYmd0
ZXN0LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFy
Y2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYmd0ZXN0LmE7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTQwQzg0OTBCMTAxQTIxN0UwMDgzNjQyQSAv
KiBsaWJndGVzdF9tYWluLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRG
aWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYmd0ZXN0
X21haW4uYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNDBDODQ5ODcx
MDFBMzY4NTAwODM2NDJBIC8qIGd0ZXN0X3VuaXR0ZXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBndGVzdF91bml0dGVzdDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNDBDODQ5OTcxMDFBMzZBNjAwODM2NDJBIC8qIHNhbXBs
ZTFfdW5pdHRlc3Qtc3RhdGljICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9
IDA7IHBhdGggPSAic2FtcGxlMV91bml0dGVzdC1zdGF0aWMiOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwotCQk0MEQ0Q0RGMTBFMzBFMDc0MDAyOTQ4MDEgLyogRGVidWdQcm9q
ZWN0LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUHJvamVj
dC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDBENENERjIwRTMwRTA3
NDAwMjk0ODAxIC8qIEZyYW1ld29ya1RhcmdldC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNj
b25maWc7IHBhdGggPSBGcmFtZXdvcmtUYXJnZXQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQwRDRDREYzMEUzMEUwNzQwMDI5NDgwMSAvKiBHZW5lcmFsLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEdlbmVyYWwueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQwRDRDREY0MEUzMEUwNzQwMDI5NDgwMSAvKiBSZWxl
YXNlUHJvamVjdC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBSZWxl
YXNlUHJvamVjdC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDBENENG
NTEwRTMwRjVFMjAwMjk0ODAxIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0Lnht
bDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ1MzlD
OEZGMEVDMjdGNjQwMEE3MEY0QyAvKiBndGVzdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBndGVzdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07Ci0JCTQ1MzlDOTMzMEVDMjgwQUUwMEE3MEY0QyAvKiBndGVzdC1wYXJh
bS10ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wYXJhbS10
ZXN0LmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NTM5QzkzNTBFQzI4MEUyMDBB
NzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSAiZ3Rlc3QtbGlua2VkX3B0ci5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDUzOUM5MzYwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wYXJhbS11dGlsLWdlbmVy
YXRlZC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDUzOUM5MzcwRUMyODBFMjAw
QTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gImd0ZXN0LXBhcmFtLXV0aWwuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQ1NjdDODE3MTI2NEZGNzEwMDc3NDBCRSAvKiBndGVzdC1wcmludGVycy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtcHJpbnRlcnMuaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFy
Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXBvcnQtYXJjaC5o
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjY3RDRGNDExQzdGNUREMDAwMTdDNzI5
IC8qIGd0ZXN0LXBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0
LXBvcnQuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY2N0Q0RjQyMUM3RjVERDAw
MDE3QzcyOSAvKiBndGVzdC1wcmludGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSAiZ3Rlc3QtcHJpbnRlcnMuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY2
N0Q0RjQzMUM3RjVERDAwMDE3QzcyOSAvKiBndGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBndGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotLyogRW5kIFBC
WEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQ
aGFzZSBzZWN0aW9uICovCi0JCTQwODk5RjQxMEZGQTcxODQwMDBCMjlBRSAvKiBGcmFtZXdvcmtz
ICovID0gewotCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNDBDODQ5QTQxMDFBMzcxNTAw
ODM2NDJBIC8qIGd0ZXN0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTQwQzg0OTE2
MTAxQTIzNUIwMDgzNjQyQSAvKiBsaWJndGVzdF9tYWluLmEgaW4gRnJhbWV3b3JrcyAqLywKLQkJ
CSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKLQkJ
NDA4OUEwMTEwRkZBQ0VGQzAwMEIyOUFFIC8qIEZyYW1ld29ya3MgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
Ci0JCQlmaWxlcyA9ICgKLQkJCQk0MEM4NDlBMjEwMUEzNzA1MDA4MzY0MkEgLyogZ3Rlc3QuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJNDBDODQ5MjExMDFBMjNBRDAwODM2NDJBIC8q
IGxpYmd0ZXN0X21haW4uYSBpbiBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwotCQk0MEM4NDk4MTEwMUEzNjg1MDA4
MzY0MkEgLyogRnJhbWV3b3JrcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBo
YXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJ
CTQwQzg0OTgyMTAxQTM2ODUwMDgzNjQyQSAvKiBsaWJndGVzdC5hIGluIEZyYW1ld29ya3MgKi8s
Ci0JCQkJNDBDODQ5ODMxMDFBMzY4NTAwODM2NDJBIC8qIGxpYmd0ZXN0X21haW4uYSBpbiBGcmFt
ZXdvcmtzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwotCQl9OwotCQk0MEM4NDk5MTEwMUEzNkE2MDA4MzY0MkEgLyogRnJhbWV3b3JrcyAqLyA9
IHsKLQkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJCTQwQzg0OTkyMTAxQTM2QTYwMDgzNjQy
QSAvKiBsaWJndGVzdC5hIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJNDBDODQ5OTMxMDFBMzZBNjAw
ODM2NDJBIC8qIGxpYmd0ZXN0X21haW4uYSBpbiBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwotLyogRW5kIFBCWEZy
YW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYR3JvdXAgc2VjdGlv
biAqLwotCQkwMzQ3NjhEREZGMzhBNDVBMTFEQjlDOEIgLyogUHJvZHVjdHMgKi8gPSB7Ci0JCQlp
c2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTQ1MzlDOEZGMEVDMjdGNjQwMEE3
MEY0QyAvKiBndGVzdC5mcmFtZXdvcmsgKi8sCi0JCQkJNDBDODQ4RkExMDFBMjA5QzAwODM2NDJB
IC8qIGxpYmd0ZXN0LmEgKi8sCi0JCQkJNDBDODQ5MEIxMDFBMjE3RTAwODM2NDJBIC8qIGxpYmd0
ZXN0X21haW4uYSAqLywKLQkJCQk0MDg5OUY0MzBGRkE3MTg0MDAwQjI5QUUgLyogZ3Rlc3RfdW5p
dHRlc3QtZnJhbWV3b3JrICovLAotCQkJCTQwQzg0OTg3MTAxQTM2ODUwMDgzNjQyQSAvKiBndGVz
dF91bml0dGVzdCAqLywKLQkJCQk0MDg5QTAxMzBGRkFDRUZDMDAwQjI5QUUgLyogc2FtcGxlMV91
bml0dGVzdC1mcmFtZXdvcmsgKi8sCi0JCQkJNDBDODQ5OTcxMDFBMzZBNjAwODM2NDJBIC8qIHNh
bXBsZTFfdW5pdHRlc3Qtc3RhdGljICovLAotCQkJKTsKLQkJCW5hbWUgPSBQcm9kdWN0czsKLQkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMw
NyAvKiBndGVzdCAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0J
CQkJNDBENENERjAwRTMwRTA3NDAwMjk0ODAxIC8qIENvbmZpZyAqLywKLQkJCQkwOEZCNzdBQ0ZF
ODQxNzA3QzAyQUFDMDcgLyogU291cmNlICovLAotCQkJCTQwRDRDRjRFMEUzMEY1RTIwMDI5NDgw
MSAvKiBSZXNvdXJjZXMgKi8sCi0JCQkJNDAzRUUzN0IwRTM3NzgyMjAwNEJEMUUyIC8qIFNjcmlw
dHMgKi8sCi0JCQkJMDM0NzY4RERGRjM4QTQ1QTExREI5QzhCIC8qIFByb2R1Y3RzICovLAotCQkJ
KTsKLQkJCW5hbWUgPSBndGVzdDsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0J
CTA4RkI3N0FDRkU4NDE3MDdDMDJBQUMwNyAvKiBTb3VyY2UgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTQwNDg4NEE5MEUyRjdDRDkwMENGNzY1OCAvKiBD
SEFOR0VTICovLAotCQkJCTQwNDg4NEFBMEUyRjdDRDkwMENGNzY1OCAvKiBDT05UUklCVVRPUlMg
Ki8sCi0JCQkJNDA0ODg0QUIwRTJGN0NEOTAwQ0Y3NjU4IC8qIExJQ0VOU0UgKi8sCi0JCQkJNDA0
ODgzRjYwRTJGNzk5QjAwQ0Y3NjU4IC8qIFJFQURNRS5tZCAqLywKLQkJCQk0MDQ4ODNEOTBFMkY3
OTlCMDBDRjc2NTggLyogaW5jbHVkZSAqLywKLQkJCQk0MDg5QTAyRjBGRkFDRjg0MDAwQjI5QUUg
Lyogc2FtcGxlcyAqLywKLQkJCQk0MDQ4ODQwNzBFMkY3OTlCMDBDRjc2NTggLyogc3JjICovLAot
CQkJCTNCMjM4QkYwMEU3RkUxM0IwMDg0NkUxMSAvKiB0ZXN0ICovLAotCQkJKTsKLQkJCW5hbWUg
PSBTb3VyY2U7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQkzQjIzOEJGMDBF
N0ZFMTNCMDA4NDZFMTEgLyogdGVzdCAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hp
bGRyZW4gPSAoCi0JCQkJM0IyMzhDMTIwRTdGRTEzQzAwODQ2RTExIC8qIGd0ZXN0X3VuaXR0ZXN0
LmNjICovLAotCQkJKTsKLQkJCW5hbWUgPSB0ZXN0OwotCQkJcGF0aCA9IC4uL3Rlc3Q7Ci0JCQlz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7Ci0JCX07Ci0JCTQwM0VFMzdCMEUzNzc4MjIwMDRCRDFF
MiAvKiBTY3JpcHRzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgK
LQkJCQk0MDNFRTM3QzBFMzc3ODIyMDA0QkQxRTIgLyogdmVyc2lvbmdlbmVyYXRlLnB5ICovLAot
CQkJCTNCODdEMjEwMEU5NkI5MkUwMDBEMTg1MiAvKiBydW50ZXN0cy5zaCAqLywKLQkJCSk7Ci0J
CQlwYXRoID0gU2NyaXB0czsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTQw
NDg4M0Q5MEUyRjc5OUIwMENGNzY1OCAvKiBpbmNsdWRlICovID0gewotCQkJaXNhID0gUEJYR3Jv
dXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk0MDQ4ODNEQTBFMkY3OTlCMDBDRjc2NTggLyogZ3Rl
c3QgKi8sCi0JCQkpOwotCQkJbmFtZSA9IGluY2x1ZGU7Ci0JCQlwYXRoID0gLi4vaW5jbHVkZTsK
LQkJCXNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsKLQkJfTsKLQkJNDA0ODgzREEwRTJGNzk5QjAw
Q0Y3NjU4IC8qIGd0ZXN0ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9
ICgKLQkJCQk0MDQ4ODNFMTBFMkY3OTlCMDBDRjc2NTggLyogaW50ZXJuYWwgKi8sCi0JCQkJMjI0
QTEyQTIwRTlFQURDQzAwQkQxN0ZEIC8qIGd0ZXN0LXRlc3QtcGFydC5oICovLAotCQkJCTQwNDg4
M0RCMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1kZWF0aC10ZXN0LmggKi8sCi0JCQkJNDA0ODgz
REMwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LW1lc3NhZ2UuaCAqLywKLQkJCQk0NTM5QzkzMzBF
QzI4MEFFMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdGVzdC5oICovLAotCQkJCTQ1NjdDODE3MTI2
NEZGNzEwMDc3NDBCRSAvKiBndGVzdC1wcmludGVycy5oICovLAotCQkJCTQwNDg4M0REMEUyRjc5
OUIwMENGNzY1OCAvKiBndGVzdC1zcGkuaCAqLywKLQkJCQk0MDQ4ODNERTBFMkY3OTlCMDBDRjc2
NTggLyogZ3Rlc3QuaCAqLywKLQkJCQk0MDQ4ODNERjBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3Rf
cHJlZF9pbXBsLmggKi8sCi0JCQkJNDA0ODgzRTAwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0X3By
b2QuaCAqLywKLQkJCQkzQkY2RjJBNDBFNzlCNjE2MDAwRjJFRUUgLyogZ3Rlc3QtdHlwZWQtdGVz
dC5oICovLAotCQkJKTsKLQkJCXBhdGggPSBndGVzdDsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7Ci0JCX07Ci0JCTQwNDg4M0UxMEUyRjc5OUIwMENGNzY1OCAvKiBpbnRlcm5hbCAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJRjY3RDRGNDAxQzdGNURE
MDAwMTdDNzI5IC8qIGN1c3RvbSAqLywKLQkJCQk0MDQ4ODNFMjBFMkY3OTlCMDBDRjc2NTggLyog
Z3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oICovLAotCQkJCTQwNDg4M0UzMEUyRjc5OUIwMENG
NzY1OCAvKiBndGVzdC1maWxlcGF0aC5oICovLAotCQkJCTQwNDg4M0U0MEUyRjc5OUIwMENGNzY1
OCAvKiBndGVzdC1pbnRlcm5hbC5oICovLAotCQkJCTQ1MzlDOTM1MEVDMjgwRTIwMEE3MEY0QyAv
KiBndGVzdC1saW5rZWRfcHRyLmggKi8sCi0JCQkJNDUzOUM5MzYwRUMyODBFMjAwQTcwRjRDIC8q
IGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmggKi8sCi0JCQkJNDUzOUM5MzcwRUMyODBFMjAw
QTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwuaCAqLywKLQkJCQk0MDQ4ODNFNTBFMkY3OTlCMDBD
Rjc2NTggLyogZ3Rlc3QtcG9ydC5oICovLAotCQkJCUY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAv
KiBndGVzdC1wb3J0LWFyY2guaCAqLywKLQkJCQk0MDQ4ODNFNjBFMkY3OTlCMDBDRjc2NTggLyog
Z3Rlc3Qtc3RyaW5nLmggKi8sCi0JCQkJNDA4OTlGNEQwRkZBNzI3MTAwMEIyOUFFIC8qIGd0ZXN0
LXR1cGxlLmggKi8sCi0JCQkJM0JGNkYyOUYwRTc5QjVBRDAwMEYyRUVFIC8qIGd0ZXN0LXR5cGUt
dXRpbC5oICovLAotCQkJKTsKLQkJCXBhdGggPSBpbnRlcm5hbDsKLQkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7Ci0JCX07Ci0JCTQwNDg4NDA3MEUyRjc5OUIwMENGNzY1OCAvKiBzcmMgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTIyNEExMkExMEU5RUFE
QTcwMEJEMTdGRCAvKiBndGVzdC1hbGwuY2MgKi8sCi0JCQkJNDA0ODg0MEQwRTJGNzk5QjAwQ0Y3
NjU4IC8qIGd0ZXN0X21haW4uY2MgKi8sCi0JCQkpOwotCQkJbmFtZSA9IHNyYzsKLQkJCXBhdGgg
PSAuLi9zcmM7Ci0JCQlzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7Ci0JCX07Ci0JCTQwODlBMDJG
MEZGQUNGODQwMDBCMjlBRSAvKiBzYW1wbGVzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0J
CQljaGlsZHJlbiA9ICgKLQkJCQk0MDg5QTAyQzBGRkFDRjdGMDAwQjI5QUUgLyogc2FtcGxlMS5j
YyAqLywKLQkJCQk0MDg5QTAyRDBGRkFDRjdGMDAwQjI5QUUgLyogc2FtcGxlMS5oICovLAotCQkJ
CTQwODlBMDJFMEZGQUNGN0YwMDBCMjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LmNjICovLAotCQkJ
KTsKLQkJCW5hbWUgPSBzYW1wbGVzOwotCQkJcGF0aCA9IC4uL3NhbXBsZXM7Ci0JCQlzb3VyY2VU
cmVlID0gU09VUkNFX1JPT1Q7Ci0JCX07Ci0JCTQwRDRDREYwMEUzMEUwNzQwMDI5NDgwMSAvKiBD
b25maWcgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTQw
RDRDREYxMEUzMEUwNzQwMDI5NDgwMSAvKiBEZWJ1Z1Byb2plY3QueGNjb25maWcgKi8sCi0JCQkJ
NDBENENERjIwRTMwRTA3NDAwMjk0ODAxIC8qIEZyYW1ld29ya1RhcmdldC54Y2NvbmZpZyAqLywK
LQkJCQk0MEQ0Q0RGMzBFMzBFMDc0MDAyOTQ4MDEgLyogR2VuZXJhbC54Y2NvbmZpZyAqLywKLQkJ
CQk0MEQ0Q0RGNDBFMzBFMDc0MDAyOTQ4MDEgLyogUmVsZWFzZVByb2plY3QueGNjb25maWcgKi8s
Ci0JCQkJNDA4OTlGQjMwRkZBNzU2NzAwMEIyOUFFIC8qIFN0YXRpY0xpYnJhcnlUYXJnZXQueGNj
b25maWcgKi8sCi0JCQkpOwotCQkJcGF0aCA9IENvbmZpZzsKLQkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7Ci0JCX07Ci0JCTQwRDRDRjRFMEUzMEY1RTIwMDI5NDgwMSAvKiBSZXNvdXJjZXMgKi8g
PSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTQwRDRDRjUxMEUz
MEY1RTIwMDI5NDgwMSAvKiBJbmZvLnBsaXN0ICovLAotCQkJKTsKLQkJCXBhdGggPSBSZXNvdXJj
ZXM7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlGNjdENEY0MDFDN0Y1REQw
MDAxN0M3MjkgLyogY3VzdG9tICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCQlGNjdENEY0MTFDN0Y1REQwMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC5oICovLAot
CQkJCUY2N0Q0RjQyMUM3RjVERDAwMDE3QzcyOSAvKiBndGVzdC1wcmludGVycy5oICovLAotCQkJ
CUY2N0Q0RjQzMUM3RjVERDAwMDE3QzcyOSAvKiBndGVzdC5oICovLAotCQkJKTsKLQkJCXBhdGgg
PSBjdXN0b207Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotLyogRW5kIFBCWEdy
b3VwIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAq
LwotCQk4RDA3RjJCRDA0ODZDQzdBMDA3Q0QxRDAgLyogSGVhZGVycyAqLyA9IHsKLQkJCWlzYSA9
IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
LQkJCWZpbGVzID0gKAotCQkJCUY2N0Q0RjQ1MUM3RjVERDAwMDE3QzcyOSAvKiBndGVzdC1wcmlu
dGVycy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDA0ODg0MzgwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0
ZXN0LWRlYXRoLXRlc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTQwNDg4NDM5MEUyRjc5OUIwMENG
NzY1OCAvKiBndGVzdC1tZXNzYWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0NTM5QzkzNDBFQzI4
MEFFMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdGVzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjY3
RDRGNDYxQzdGNUREMDAwMTdDNzI5IC8qIGd0ZXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlGNjdE
NEY0NDFDN0Y1REQwMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDU2N0M4MTgxMjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggaW4gSGVhZGVycyAq
LywKLQkJCQlGNjdENEYzRTFDN0Y1RDhCMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggaW4g
SGVhZGVycyAqLywKLQkJCQkzQkY2RjJBNTBFNzlCNjE2MDAwRjJFRUUgLyogZ3Rlc3QtdHlwZWQt
dGVzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDA0ODg0M0EwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0
ZXN0LXNwaS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDA0ODg0M0IwRTJGNzk5QjAwQ0Y3NjU4IC8q
IGd0ZXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MDQ4ODQzQzBFMkY3OTlCMDBDRjc2NTggLyog
Z3Rlc3RfcHJlZF9pbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MDQ4ODQzRDBFMkY3OTlCMDBD
Rjc2NTggLyogZ3Rlc3RfcHJvZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjI0QTEyQTMwRTlFQURD
QzAwQkQxN0ZEIC8qIGd0ZXN0LXRlc3QtcGFydC5oIGluIEhlYWRlcnMgKi8sCi0JCQkpOwotCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07Ci0vKiBFbmQgUEJY
SGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQg
c2VjdGlvbiAqLwotCQk0MDg5OUY0MjBGRkE3MTg0MDAwQjI5QUUgLyogZ3Rlc3RfdW5pdHRlc3Qt
ZnJhbWV3b3JrICovID0gewotCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwotCQkJYnVpbGRDb25m
aWd1cmF0aW9uTGlzdCA9IDQwODk5RjRBMEZGQTcxQkMwMDBCMjlBRSAvKiBCdWlsZCBjb25maWd1
cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiZ3Rlc3RfdW5pdHRlc3QtZnJhbWV3b3Jr
IiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCTQwODk5RjQwMEZGQTcxODQwMDBCMjlBRSAv
KiBTb3VyY2VzICovLAotCQkJCTQwODk5RjQxMEZGQTcxODQwMDBCMjlBRSAvKiBGcmFtZXdvcmtz
ICovLAotCQkJKTsKLQkJCWJ1aWxkUnVsZXMgPSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0g
KAotCQkJCTQwQzg0OUEwMTAxQTM2RjEwMDgzNjQyQSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAotCQkJKTsKLQkJCW5hbWUgPSAiZ3Rlc3RfdW5pdHRlc3QtZnJhbWV3b3JrIjsKLQkJCXByb2R1
Y3ROYW1lID0gZ3Rlc3RfdW5pdHRlc3Q7Ci0JCQlwcm9kdWN0UmVmZXJlbmNlID0gNDA4OTlGNDMw
RkZBNzE4NDAwMEIyOUFFIC8qIGd0ZXN0X3VuaXR0ZXN0LWZyYW1ld29yayAqLzsKLQkJCXByb2R1
Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7Ci0JCX07Ci0JCTQwODlBMDEy
MEZGQUNFRkMwMDBCMjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LWZyYW1ld29yayAqLyA9IHsKLQkJ
CWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA0MDg5
QTAyNDBGRkFDRjAxMDAwQjI5QUUgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhO
YXRpdmVUYXJnZXQgInNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrIiAqLzsKLQkJCWJ1aWxkUGhh
c2VzID0gKAotCQkJCTQwODlBMDEwMEZGQUNFRkMwMDBCMjlBRSAvKiBTb3VyY2VzICovLAotCQkJ
CTQwODlBMDExMEZGQUNFRkMwMDBCMjlBRSAvKiBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJCWJ1
aWxkUnVsZXMgPSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTQwQzg0OTlFMTAx
QTM2RTUwMDgzNjQyQSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUg
PSAic2FtcGxlMV91bml0dGVzdC1mcmFtZXdvcmsiOwotCQkJcHJvZHVjdE5hbWUgPSBzYW1wbGUx
X3VuaXR0ZXN0OwotCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDQwODlBMDEzMEZGQUNFRkMwMDBCMjlB
RSAvKiBzYW1wbGUxX3VuaXR0ZXN0LWZyYW1ld29yayAqLzsKLQkJCXByb2R1Y3RUeXBlID0gImNv
bS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7Ci0JCX07Ci0JCTQwQzg0OEY5MTAxQTIwOUMwMDgz
NjQyQSAvKiBndGVzdC1zdGF0aWMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7Ci0J
CQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNDBDODQ5MDIxMDFBMjEyRTAwODM2NDJBIC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJndGVzdC1zdGF0aWMi
ICovOwotCQkJYnVpbGRQaGFzZXMgPSAoCi0JCQkJNDBDODQ4RjcxMDFBMjA5QzAwODM2NDJBIC8q
IFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJYnVpbGRSdWxlcyA9ICgKLQkJCSk7Ci0JCQlkZXBlbmRl
bmNpZXMgPSAoCi0JCQkpOwotCQkJbmFtZSA9ICJndGVzdC1zdGF0aWMiOwotCQkJcHJvZHVjdE5h
bWUgPSAiZ3Rlc3Qtc3RhdGljIjsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA0MEM4NDhGQTEwMUEy
MDlDMDA4MzY0MkEgLyogbGliZ3Rlc3QuYSAqLzsKLQkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBs
ZS5wcm9kdWN0LXR5cGUubGlicmFyeS5zdGF0aWMiOwotCQl9OwotCQk0MEM4NDkwQTEwMUEyMTdF
MDA4MzY0MkEgLyogZ3Rlc3RfbWFpbi1zdGF0aWMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVU
YXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNDBDODQ5MTIxMDFBMjFEMjAwODM2
NDJBIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJndGVz
dF9tYWluLXN0YXRpYyIgKi87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk0MEM4NDkwODEwMUEy
MTdFMDA4MzY0MkEgLyogU291cmNlcyAqLywKLQkJCSk7Ci0JCQlidWlsZFJ1bGVzID0gKAotCQkJ
KTsKLQkJCWRlcGVuZGVuY2llcyA9ICgKLQkJCSk7Ci0JCQluYW1lID0gImd0ZXN0X21haW4tc3Rh
dGljIjsKLQkJCXByb2R1Y3ROYW1lID0gImd0ZXN0X21haW4tc3RhdGljIjsKLQkJCXByb2R1Y3RS
ZWZlcmVuY2UgPSA0MEM4NDkwQjEwMUEyMTdFMDA4MzY0MkEgLyogbGliZ3Rlc3RfbWFpbi5hICov
OwotCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5LnN0YXRp
YyI7Ci0JCX07Ci0JCTQwQzg0OTdBMTAxQTM2ODUwMDgzNjQyQSAvKiBndGVzdF91bml0dGVzdC1z
dGF0aWMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gNDBDODQ5ODQxMDFBMzY4NTAwODM2NDJBIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJndGVzdF91bml0dGVzdC1zdGF0aWMiICovOwot
CQkJYnVpbGRQaGFzZXMgPSAoCi0JCQkJNDBDODQ5N0YxMDFBMzY4NTAwODM2NDJBIC8qIFNvdXJj
ZXMgKi8sCi0JCQkJNDBDODQ5ODExMDFBMzY4NTAwODM2NDJBIC8qIEZyYW1ld29ya3MgKi8sCi0J
CQkpOwotCQkJYnVpbGRSdWxlcyA9ICgKLQkJCSk7Ci0JCQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkJ
NDBDODQ5N0IxMDFBMzY4NTAwODM2NDJBIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkJ
NDBDODQ5N0QxMDFBMzY4NTAwODM2NDJBIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkp
OwotCQkJbmFtZSA9ICJndGVzdF91bml0dGVzdC1zdGF0aWMiOwotCQkJcHJvZHVjdE5hbWUgPSBn
dGVzdF91bml0dGVzdDsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA0MEM4NDk4NzEwMUEzNjg1MDA4
MzY0MkEgLyogZ3Rlc3RfdW5pdHRlc3QgKi87Ci0JCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUu
cHJvZHVjdC10eXBlLnRvb2wiOwotCQl9OwotCQk0MEM4NDk4OTEwMUEzNkE2MDA4MzY0MkEgLyog
c2FtcGxlMV91bml0dGVzdC1zdGF0aWMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7
Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNDBDODQ5OTQxMDFBMzZBNjAwODM2NDJBIC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJzYW1wbGUxX3Vu
aXR0ZXN0LXN0YXRpYyIgKi87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk0MEM4NDk4RTEwMUEz
NkE2MDA4MzY0MkEgLyogU291cmNlcyAqLywKLQkJCQk0MEM4NDk5MTEwMUEzNkE2MDA4MzY0MkEg
LyogRnJhbWV3b3JrcyAqLywKLQkJCSk7Ci0JCQlidWlsZFJ1bGVzID0gKAotCQkJKTsKLQkJCWRl
cGVuZGVuY2llcyA9ICgKLQkJCQk0MEM4NDk4QTEwMUEzNkE2MDA4MzY0MkEgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKLQkJCQk0MEM4NDk4QzEwMUEzNkE2MDA4MzY0MkEgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKLQkJCSk7Ci0JCQluYW1lID0gInNhbXBsZTFfdW5pdHRlc3Qtc3RhdGlj
IjsKLQkJCXByb2R1Y3ROYW1lID0gc2FtcGxlMV91bml0dGVzdDsKLQkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSA0MEM4NDk5NzEwMUEzNkE2MDA4MzY0MkEgLyogc2FtcGxlMV91bml0dGVzdC1zdGF0aWMg
Ki87Ci0JCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwotCQl9
OwotCQk4RDA3RjJCQzA0ODZDQzdBMDA3Q0QxRDAgLyogZ3Rlc3QtZnJhbWV3b3JrICovID0gewot
CQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDRG
QURDMjQyMDhCNDE1NkQwMEFCRTU1RSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WE5hdGl2ZVRhcmdldCAiZ3Rlc3QtZnJhbWV3b3JrIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAot
CQkJCThEMDdGMkMxMDQ4NkNDN0EwMDdDRDFEMCAvKiBTb3VyY2VzICovLAotCQkJCThEMDdGMkJE
MDQ4NkNDN0EwMDdDRDFEMCAvKiBIZWFkZXJzICovLAotCQkJCTQwNDg4NEE1MEUyRjdDMDQwMENG
NzY1OCAvKiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJRjY3RDRGNDcxQzdGNURGNjAw
MTdDNzI5IC8qIENvcHkgSGVhZGVycyBJbnRlcm5hbCBDdXN0b20gKi8sCi0JCQkJOEQwN0YyQkYw
NDg2Q0M3QTAwN0NEMUQwIC8qIFJlc291cmNlcyAqLywKLQkJCSk7Ci0JCQlidWlsZFJ1bGVzID0g
KAotCQkJKTsKLQkJCWRlcGVuZGVuY2llcyA9ICgKLQkJCQk0MEM0NEFFNjBFMzc5OTIyMDA4RkND
NTEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQk0MDhCRUMxMDEwNDZDRkU5MDBERUY1
MjIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQk0MEM4NDk5QzEwMUEzNkRDMDA4MzY0
MkEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCSk7Ci0JCQluYW1lID0gImd0ZXN0LWZy
YW1ld29yayI7Ci0JCQlwcm9kdWN0SW5zdGFsbFBhdGggPSAiJChIT01FKS9MaWJyYXJ5L0ZyYW1l
d29ya3MiOwotCQkJcHJvZHVjdE5hbWUgPSBndGVzdDsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA0
NTM5QzhGRjBFQzI3RjY0MDBBNzBGNEMgLyogZ3Rlc3QuZnJhbWV3b3JrICovOwotCQkJcHJvZHVj
dFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5mcmFtZXdvcmsiOwotCQl9OwotLyogRW5k
IFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWFByb2plY3Qgc2VjdGlv
biAqLwotCQkwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhQcm9qZWN0OwotCQkJYXR0cmlidXRlcyA9IHsKLQkJCQlMYXN0VXBncmFk
ZUNoZWNrID0gMDQ2MDsKLQkJCX07Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNEZBREMy
NDYwOEI0MTU2RDAwQUJFNTVFIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiZ3Rlc3QiICovOwotCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4yIjsK
LQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKLQkJCWhhc1NjYW5uZWRGb3JFbmNvZGlu
Z3MgPSAxOwotCQkJa25vd25SZWdpb25zID0gKAotCQkJCUVuZ2xpc2gsCi0JCQkJSmFwYW5lc2Us
Ci0JCQkJRnJlbmNoLAotCQkJCUdlcm1hbiwKLQkJCQllbiwKLQkJCSk7Ci0JCQltYWluR3JvdXAg
PSAwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogZ3Rlc3QgKi87Ci0JCQlwcm9kdWN0UmVmR3Jv
dXAgPSAwMzQ3NjhEREZGMzhBNDVBMTFEQjlDOEIgLyogUHJvZHVjdHMgKi87Ci0JCQlwcm9qZWN0
RGlyUGF0aCA9ICIiOwotCQkJcHJvamVjdFJvb3QgPSAiIjsKLQkJCXRhcmdldHMgPSAoCi0JCQkJ
OEQwN0YyQkMwNDg2Q0M3QTAwN0NEMUQwIC8qIGd0ZXN0LWZyYW1ld29yayAqLywKLQkJCQk0MEM4
NDhGOTEwMUEyMDlDMDA4MzY0MkEgLyogZ3Rlc3Qtc3RhdGljICovLAotCQkJCTQwQzg0OTBBMTAx
QTIxN0UwMDgzNjQyQSAvKiBndGVzdF9tYWluLXN0YXRpYyAqLywKLQkJCQk0MDg5OUY0MjBGRkE3
MTg0MDAwQjI5QUUgLyogZ3Rlc3RfdW5pdHRlc3QtZnJhbWV3b3JrICovLAotCQkJCTQwQzg0OTdB
MTAxQTM2ODUwMDgzNjQyQSAvKiBndGVzdF91bml0dGVzdC1zdGF0aWMgKi8sCi0JCQkJNDA4OUEw
MTIwRkZBQ0VGQzAwMEIyOUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrICovLAotCQkJ
CTQwQzg0OTg5MTAxQTM2QTYwMDgzNjQyQSAvKiBzYW1wbGUxX3VuaXR0ZXN0LXN0YXRpYyAqLywK
LQkJCQkzQjIzOEY1RjBFODI4QjU0MDA4NDZFMTEgLyogQ2hlY2sgKi8sCi0JCQkJNDBDNDRBREMw
RTM3OThGNDAwOEZDQzUxIC8qIFZlcnNpb24gSW5mbyAqLywKLQkJCSk7Ci0JCX07Ci0vKiBFbmQg
UEJYUHJvamVjdCBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWFJlc291cmNlc0J1aWxkUGhhc2Ug
c2VjdGlvbiAqLwotCQk4RDA3RjJCRjA0ODZDQzdBMDA3Q0QxRDAgLyogUmVzb3VyY2VzICovID0g
ewotCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQk0MDQ4ODQ1MDBFMkY3OTlCMDBDRjc2NTgg
LyogUkVBRE1FLm1kIGluIFJlc291cmNlcyAqLywKLQkJCQk0MDQ4ODRBQzBFMkY3Q0Q5MDBDRjc2
NTggLyogQ0hBTkdFUyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNDA0ODg0QUQwRTJGN0NEOTAwQ0Y3
NjU4IC8qIENPTlRSSUJVVE9SUyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNDA0ODg0QUUwRTJGN0NE
OTAwQ0Y3NjU4IC8qIExJQ0VOU0UgaW4gUmVzb3VyY2VzICovLAotCQkJCTQwQzg0OTc4MTAxQTM2
NTQwMDgzNjQyQSAvKiBsaWJndGVzdF9tYWluLmEgaW4gUmVzb3VyY2VzICovLAotCQkJKTsKLQkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwotLyogRW5kIFBC
WFJlc291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhTaGVsbFNjcmlw
dEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCQkzQjIzOEY1RTBFODI4QjU0MDA4NDZFMTEgLyogU2hl
bGxTY3JpcHQgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0JCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJaW5w
dXRQYXRocyA9ICgKLQkJCSk7Ci0JCQlvdXRwdXRQYXRocyA9ICgKLQkJCSk7Ci0JCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7
Ci0JCQlzaGVsbFNjcmlwdCA9ICIjIFJlbWVtYmVyLCB0aGlzIFwiUnVuIFNjcmlwdFwiIGJ1aWxk
IHBoYXNlIHdpbGwgYmUgZXhlY3V0ZWQgZnJvbSAkU1JDUk9PVFxuL2Jpbi9iYXNoIFNjcmlwdHMv
cnVudGVzdHMuc2giOwotCQl9OwotCQk0MEM0NEFEQjBFMzc5OEY0MDA4RkNDNTEgLyogR2VuZXJh
dGUgVmVyc2lvbi5oICovID0gewotCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwot
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJKTsKLQkJ
CWlucHV0UGF0aHMgPSAoCi0JCQkJIiQoU1JDUk9PVCkvU2NyaXB0cy92ZXJzaW9uZ2VuZXJhdGUu
cHkiLAotCQkJCSIkKFNSQ1JPT1QpLy4uL2NvbmZpZ3VyZS5hYyIsCi0JCQkpOwotCQkJbmFtZSA9
ICJHZW5lcmF0ZSBWZXJzaW9uLmgiOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkJIiQoUFJPSkVD
VF9URU1QX0RJUikvVmVyc2lvbi5oIiwKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKLQkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlw
dCA9ICIjIFJlbWVtYmVyLCB0aGlzIFwiUnVuIFNjcmlwdFwiIGJ1aWxkIHBoYXNlIHdpbGwgYmUg
ZXhlY3V0ZWQgZnJvbSAkU1JDUk9PVFxuL3Vzci9iaW4vcHl0aG9uIFNjcmlwdHMvdmVyc2lvbmdl
bmVyYXRlLnB5IC4uLyAkUFJPSkVDVF9URU1QX0RJUiI7Ci0JCX07Ci0vKiBFbmQgUEJYU2hlbGxT
Y3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLwotCQk0MDg5OUY0MDBGRkE3MTg0MDAwQjI5QUUgLyogU291cmNlcyAqLyA9
IHsKLQkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJCTQwODk5RjUzMEZGQTcyQTAwMDBCMjlBRSAv
KiBndGVzdF91bml0dGVzdC5jYyBpbiBTb3VyY2VzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwotCQk0MDg5QTAxMDBGRkFDRUZDMDAw
QjI5QUUgLyogU291cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwot
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJCTQwODlB
MDQ0MEZGQUQxQkUwMDBCMjlBRSAvKiBzYW1wbGUxLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDA4
OUEwNDYwRkZBRDFCRTAwMEIyOUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QuY2MgaW4gU291cmNlcyAq
LywKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJ
fTsKLQkJNDBDODQ4RjcxMDFBMjA5QzAwODM2NDJBIC8qIFNvdXJjZXMgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
Ci0JCQlmaWxlcyA9ICgKLQkJCQk0MEM4NDhGRjEwMUEyMTE1MDA4MzY0MkEgLyogZ3Rlc3QtYWxs
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7Ci0JCX07Ci0JCTQwQzg0OTA4MTAxQTIxN0UwMDgzNjQyQSAvKiBTb3VyY2Vz
ICovID0gewotCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNDBDODQ5MTUxMDFBMjFERjAwODM2
NDJBIC8qIGd0ZXN0X21haW4uY2MgaW4gU291cmNlcyAqLywKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKLQkJNDBDODQ5N0YxMDFBMzY4NTAw
ODM2NDJBIC8qIFNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsK
LQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQk0MEM4
NDk4MDEwMUEzNjg1MDA4MzY0MkEgLyogZ3Rlc3RfdW5pdHRlc3QuY2MgaW4gU291cmNlcyAqLywK
LQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsK
LQkJNDBDODQ5OEUxMDFBMzZBNjAwODM2NDJBIC8qIFNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhTb3VyY2VzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0J
CQlmaWxlcyA9ICgKLQkJCQk0MEM4NDk4RjEwMUEzNkE2MDA4MzY0MkEgLyogc2FtcGxlMS5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQwQzg0OTkwMTAxQTM2QTYwMDgzNjQyQSAvKiBzYW1wbGUxX3Vu
aXR0ZXN0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07Ci0JCThEMDdGMkMxMDQ4NkNDN0EwMDdDRDFEMCAvKiBT
b3VyY2VzICovID0gewotCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNDA4OTlGM0EwRkZBNzBE
NDAwMEIyOUFFIC8qIGd0ZXN0LWFsbC5jYyBpbiBTb3VyY2VzICovLAotCQkJKTsKLQkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwotLyogRW5kIFBCWFNvdXJj
ZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYVGFyZ2V0RGVwZW5kZW5jeSBz
ZWN0aW9uICovCi0JCTQwODk5RjlEMEZGQTc0MEYwMDBCMjlBRSAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDQw
ODk5RjQyMEZGQTcxODQwMDBCMjlBRSAvKiBndGVzdF91bml0dGVzdC1mcmFtZXdvcmsgKi87Ci0J
CQl0YXJnZXRQcm94eSA9IDQwODk5RjlDMEZGQTc0MEYwMDBCMjlBRSAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi87Ci0JCX07Ci0JCTQwODlBMDk4MEZGQUQzNEEwMDBCMjlBRSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRh
cmdldCA9IDQwODlBMDEyMEZGQUNFRkMwMDBCMjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LWZyYW1l
d29yayAqLzsKLQkJCXRhcmdldFByb3h5ID0gNDA4OUEwOTcwRkZBRDM0QTAwMEIyOUFFIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDA4QkVDMTAxMDQ2Q0ZFOTAwREVGNTIy
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OwotCQkJdGFyZ2V0ID0gNDBDODQ4RjkxMDFBMjA5QzAwODM2NDJBIC8qIGd0ZXN0LXN0YXRp
YyAqLzsKLQkJCXRhcmdldFByb3h5ID0gNDA4QkVDMEYxMDQ2Q0ZFOTAwREVGNTIyIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDBDNDRBRTYwRTM3OTkyMjAwOEZDQzUxIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OwotCQkJdGFyZ2V0ID0gNDBDNDRBREMwRTM3OThGNDAwOEZDQzUxIC8qIFZlcnNpb24gSW5mbyAq
LzsKLQkJCXRhcmdldFByb3h5ID0gNDBDNDRBRTUwRTM3OTkyMjAwOEZDQzUxIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDBDODQ5N0IxMDFBMzY4NTAwODM2NDJBIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owot
CQkJdGFyZ2V0ID0gNDBDODQ4RjkxMDFBMjA5QzAwODM2NDJBIC8qIGd0ZXN0LXN0YXRpYyAqLzsK
LQkJCXRhcmdldFByb3h5ID0gNDBDODQ5N0MxMDFBMzY4NTAwODM2NDJBIC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDBDODQ5N0QxMDFBMzY4NTAwODM2NDJBIC8qIFBCWFRh
cmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJ
dGFyZ2V0ID0gNDBDODQ5MEExMDFBMjE3RTAwODM2NDJBIC8qIGd0ZXN0X21haW4tc3RhdGljICov
OwotCQkJdGFyZ2V0UHJveHkgPSA0MEM4NDk3RTEwMUEzNjg1MDA4MzY0MkEgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovOwotCQl9OwotCQk0MEM4NDk4QTEwMUEzNkE2MDA4MzY0MkEgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0J
CQl0YXJnZXQgPSA0MEM4NDhGOTEwMUEyMDlDMDA4MzY0MkEgLyogZ3Rlc3Qtc3RhdGljICovOwot
CQkJdGFyZ2V0UHJveHkgPSA0MEM4NDk4QjEwMUEzNkE2MDA4MzY0MkEgLyogUEJYQ29udGFpbmVy
SXRlbVByb3h5ICovOwotCQl9OwotCQk0MEM4NDk4QzEwMUEzNkE2MDA4MzY0MkEgLyogUEJYVGFy
Z2V0RGVwZW5kZW5jeSAqLyA9IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0JCQl0
YXJnZXQgPSA0MEM4NDkwQTEwMUEyMTdFMDA4MzY0MkEgLyogZ3Rlc3RfbWFpbi1zdGF0aWMgKi87
Ci0JCQl0YXJnZXRQcm94eSA9IDQwQzg0OThEMTAxQTM2QTYwMDgzNjQyQSAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi87Ci0JCX07Ci0JCTQwQzg0OTlDMTAxQTM2REMwMDgzNjQyQSAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKLQkJ
CXRhcmdldCA9IDQwQzg0OTBBMTAxQTIxN0UwMDgzNjQyQSAvKiBndGVzdF9tYWluLXN0YXRpYyAq
LzsKLQkJCXRhcmdldFByb3h5ID0gNDBDODQ5OUIxMDFBMzZEQzAwODM2NDJBIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDBDODQ5OUUxMDFBMzZFNTAwODM2NDJBIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owot
CQkJdGFyZ2V0ID0gOEQwN0YyQkMwNDg2Q0M3QTAwN0NEMUQwIC8qIGd0ZXN0LWZyYW1ld29yayAq
LzsKLQkJCXRhcmdldFByb3h5ID0gNDBDODQ5OUQxMDFBMzZFNTAwODM2NDJBIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDBDODQ5QTAxMDFBMzZGMTAwODM2NDJBIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owot
CQkJdGFyZ2V0ID0gOEQwN0YyQkMwNDg2Q0M3QTAwN0NEMUQwIC8qIGd0ZXN0LWZyYW1ld29yayAq
LzsKLQkJCXRhcmdldFByb3h5ID0gNDBDODQ5OUYxMDFBMzZGMTAwODM2NDJBIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDBDODQ5RjcxMDFBNDM0NDAwODM2NDJBIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owot
CQkJdGFyZ2V0ID0gNDBDODQ5N0ExMDFBMzY4NTAwODM2NDJBIC8qIGd0ZXN0X3VuaXR0ZXN0LXN0
YXRpYyAqLzsKLQkJCXRhcmdldFByb3h5ID0gNDBDODQ5RjYxMDFBNDM0NDAwODM2NDJBIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNDBDODQ5RjkxMDFBNDM0OTAwODM2NDJB
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OwotCQkJdGFyZ2V0ID0gNDBDODQ5ODkxMDFBMzZBNjAwODM2NDJBIC8qIHNhbXBsZTFfdW5p
dHRlc3Qtc3RhdGljICovOwotCQkJdGFyZ2V0UHJveHkgPSA0MEM4NDlGODEwMUE0MzQ5MDA4MzY0
MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwotCQl9OwotLyogRW5kIFBCWFRhcmdldERl
cGVuZGVuY3kgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0
aW9uICovCi0JCTNCMjM4RjYwMEU4MjhCNTQwMDg0NkUxMSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDT01C
SU5FX0hJRFBJX0lNQUdFUyA9IFlFUzsKLQkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87Ci0JCQkJ
R0NDX0RZTkFNSUNfTk9fUElDID0gTk87Ci0JCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7
Ci0JCQkJR0NDX1ZFUlNJT04gPSBjb20uYXBwbGUuY29tcGlsZXJzLmxsdm0uY2xhbmcuMV8wOwot
CQkJCVBST0RVQ1RfTkFNRSA9IENoZWNrOwotCQkJCVNES1JPT1QgPSBtYWNvc3g7Ci0JCQl9Owot
CQkJbmFtZSA9IERlYnVnOwotCQl9OwotCQkzQjIzOEY2MTBFODI4QjU0MDA4NDZFMTEgLyogUmVs
ZWFzZSAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0
aW5ncyA9IHsKLQkJCQlDT01CSU5FX0hJRFBJX0lNQUdFUyA9IFlFUzsKLQkJCQlDT1BZX1BIQVNF
X1NUUklQID0gWUVTOwotCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRo
LWRzeW0iOwotCQkJCUdDQ19WRVJTSU9OID0gY29tLmFwcGxlLmNvbXBpbGVycy5sbHZtLmNsYW5n
LjFfMDsKLQkJCQlQUk9EVUNUX05BTUUgPSBDaGVjazsKLQkJCQlTREtST09UID0gbWFjb3N4Owot
CQkJCVpFUk9fTElOSyA9IE5POwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQk0
MDg5OUY0NTBGRkE3MTg1MDAwQjI5QUUgLyogRGVidWcgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJR0NDX1ZFUlNJT04gPSBj
b20uYXBwbGUuY29tcGlsZXJzLmxsdm0uY2xhbmcuMV8wOwotCQkJCUhFQURFUl9TRUFSQ0hfUEFU
SFMgPSAuLi87Ci0JCQkJUFJPRFVDVF9OQU1FID0gImd0ZXN0X3VuaXR0ZXN0LWZyYW1ld29yayI7
Ci0JCQkJU0RLUk9PVCA9IG1hY29zeDsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0J
CTQwODk5RjQ2MEZGQTcxODUwMDBCMjlBRSAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUdDQ19WRVJTSU9O
ID0gY29tLmFwcGxlLmNvbXBpbGVycy5sbHZtLmNsYW5nLjFfMDsKLQkJCQlIRUFERVJfU0VBUkNI
X1BBVEhTID0gLi4vOwotCQkJCVBST0RVQ1RfTkFNRSA9ICJndGVzdF91bml0dGVzdC1mcmFtZXdv
cmsiOwotCQkJCVNES1JPT1QgPSBtYWNvc3g7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0J
CX07Ci0JCTQwODlBMDE1MEZGQUNFRkQwMDBCMjlBRSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlHQ0NfVkVS
U0lPTiA9IGNvbS5hcHBsZS5jb21waWxlcnMubGx2bS5jbGFuZy4xXzA7Ci0JCQkJUFJPRFVDVF9O
QU1FID0gInNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrIjsKLQkJCQlTREtST09UID0gbWFjb3N4
OwotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJNDA4OUEwMTYwRkZBQ0VGRDAwMEIy
OUFFIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJ
CWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJR0NDX1ZFUlNJT04gPSBjb20uYXBwbGUuY29tcGlsZXJz
Lmxsdm0uY2xhbmcuMV8wOwotCQkJCVBST0RVQ1RfTkFNRSA9ICJzYW1wbGUxX3VuaXR0ZXN0LWZy
YW1ld29yayI7Ci0JCQkJU0RLUk9PVCA9IG1hY29zeDsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFz
ZTsKLQkJfTsKLQkJNDBDNDRBREYwRTM3OThGNDAwOEZDQzUxIC8qIERlYnVnICovID0gewotCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUNP
TUJJTkVfSElEUElfSU1BR0VTID0gWUVTOwotCQkJCUdDQ19WRVJTSU9OID0gY29tLmFwcGxlLmNv
bXBpbGVycy5sbHZtLmNsYW5nLjFfMDsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAx
MC43OwotCQkJCVBST0RVQ1RfTkFNRSA9IGd0ZXN0OwotCQkJCVNES1JPT1QgPSBtYWNvc3g7Ci0J
CQkJVEFSR0VUX05BTUUgPSBndGVzdDsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0J
CTQwQzQ0QUUwMEUzNzk4RjQwMDhGQ0M1MSAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUNPTUJJTkVfSElE
UElfSU1BR0VTID0gWUVTOwotCQkJCUdDQ19WRVJTSU9OID0gY29tLmFwcGxlLmNvbXBpbGVycy5s
bHZtLmNsYW5nLjFfMDsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC43OwotCQkJ
CVBST0RVQ1RfTkFNRSA9IGd0ZXN0OwotCQkJCVNES1JPT1QgPSBtYWNvc3g7Ci0JCQkJVEFSR0VU
X05BTUUgPSBndGVzdDsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFzZTsKLQkJfTsKLQkJNDBDODQ4
RkIxMDFBMjA5RDAwODM2NDJBIC8qIERlYnVnICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDQwODk5RkIzMEZGQTc1
NjcwMDBCMjlBRSAvKiBTdGF0aWNMaWJyYXJ5VGFyZ2V0LnhjY29uZmlnICovOwotCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKLQkJCQlDT01CSU5FX0hJRFBJX0lNQUdFUyA9IFlFUzsKLQkJCQlHQ0NfSU5M
SU5FU19BUkVfUFJJVkFURV9FWFRFUk4gPSBZRVM7Ci0JCQkJR0NDX1NZTUJPTFNfUFJJVkFURV9F
WFRFUk4gPSBZRVM7Ci0JCQkJR0NDX1ZFUlNJT04gPSBjb20uYXBwbGUuY29tcGlsZXJzLmxsdm0u
Y2xhbmcuMV8wOwotCQkJCUhFQURFUl9TRUFSQ0hfUEFUSFMgPSAoCi0JCQkJCS4uLywKLQkJCQkJ
Li4vaW5jbHVkZS8sCi0JCQkJKTsKLQkJCQlQUk9EVUNUX05BTUUgPSBndGVzdDsKLQkJCQlTREtS
T09UID0gbWFjb3N4OwotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJNDBDODQ4RkMx
MDFBMjA5RDAwODM2NDJBIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNDA4OTlGQjMwRkZBNzU2
NzAwMEIyOUFFIC8qIFN0YXRpY0xpYnJhcnlUYXJnZXQueGNjb25maWcgKi87Ci0JCQlidWlsZFNl
dHRpbmdzID0gewotCQkJCUNPTUJJTkVfSElEUElfSU1BR0VTID0gWUVTOwotCQkJCUdDQ19JTkxJ
TkVTX0FSRV9QUklWQVRFX0VYVEVSTiA9IFlFUzsKLQkJCQlHQ0NfU1lNQk9MU19QUklWQVRFX0VY
VEVSTiA9IFlFUzsKLQkJCQlHQ0NfVkVSU0lPTiA9IGNvbS5hcHBsZS5jb21waWxlcnMubGx2bS5j
bGFuZy4xXzA7Ci0JCQkJSEVBREVSX1NFQVJDSF9QQVRIUyA9ICgKLQkJCQkJLi4vLAotCQkJCQku
Li9pbmNsdWRlLywKLQkJCQkpOwotCQkJCVBST0RVQ1RfTkFNRSA9IGd0ZXN0OwotCQkJCVNES1JP
T1QgPSBtYWNvc3g7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTQwQzg0OTBF
MTAxQTIxN0YwMDgzNjQyQSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1
cmF0aW9uOwotCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MDg5OUZCMzBGRkE3NTY3
MDAwQjI5QUUgLyogU3RhdGljTGlicmFyeVRhcmdldC54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0
dGluZ3MgPSB7Ci0JCQkJQ09NQklORV9ISURQSV9JTUFHRVMgPSBZRVM7Ci0JCQkJR0NDX1ZFUlNJ
T04gPSBjb20uYXBwbGUuY29tcGlsZXJzLmxsdm0uY2xhbmcuMV8wOwotCQkJCUhFQURFUl9TRUFS
Q0hfUEFUSFMgPSAoCi0JCQkJCS4uLywKLQkJCQkJLi4vaW5jbHVkZS8sCi0JCQkJKTsKLQkJCQlQ
Uk9EVUNUX05BTUUgPSBndGVzdF9tYWluOwotCQkJCVNES1JPT1QgPSBtYWNvc3g7Ci0JCQl9Owot
CQkJbmFtZSA9IERlYnVnOwotCQl9OwotCQk0MEM4NDkwRjEwMUEyMTdGMDA4MzY0MkEgLyogUmVs
ZWFzZSAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSA0MDg5OUZCMzBGRkE3NTY3MDAwQjI5QUUgLyogU3RhdGljTGli
cmFyeVRhcmdldC54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJQ09NQklO
RV9ISURQSV9JTUFHRVMgPSBZRVM7Ci0JCQkJR0NDX1ZFUlNJT04gPSBjb20uYXBwbGUuY29tcGls
ZXJzLmxsdm0uY2xhbmcuMV8wOwotCQkJCUhFQURFUl9TRUFSQ0hfUEFUSFMgPSAoCi0JCQkJCS4u
LywKLQkJCQkJLi4vaW5jbHVkZS8sCi0JCQkJKTsKLQkJCQlQUk9EVUNUX05BTUUgPSBndGVzdF9t
YWluOwotCQkJCVNES1JPT1QgPSBtYWNvc3g7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0J
CX07Ci0JCTQwQzg0OTg1MTAxQTM2ODUwMDgzNjQyQSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlHQ0NfVkVS
U0lPTiA9IGNvbS5hcHBsZS5jb21waWxlcnMubGx2bS5jbGFuZy4xXzA7Ci0JCQkJSEVBREVSX1NF
QVJDSF9QQVRIUyA9IC4uLzsKLQkJCQlQUk9EVUNUX05BTUUgPSBndGVzdF91bml0dGVzdDsKLQkJ
CQlTREtST09UID0gbWFjb3N4OwotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJNDBD
ODQ5ODYxMDFBMzY4NTAwODM2NDJBIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJR0NDX1ZFUlNJT04gPSBj
b20uYXBwbGUuY29tcGlsZXJzLmxsdm0uY2xhbmcuMV8wOwotCQkJCUhFQURFUl9TRUFSQ0hfUEFU
SFMgPSAuLi87Ci0JCQkJUFJPRFVDVF9OQU1FID0gZ3Rlc3RfdW5pdHRlc3Q7Ci0JCQkJU0RLUk9P
VCA9IG1hY29zeDsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFzZTsKLQkJfTsKLQkJNDBDODQ5OTUx
MDFBMzZBNjAwODM2NDJBIC8qIERlYnVnICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCUdDQ19WRVJTSU9OID0gY29tLmFwcGxl
LmNvbXBpbGVycy5sbHZtLmNsYW5nLjFfMDsKLQkJCQlQUk9EVUNUX05BTUUgPSAic2FtcGxlMV91
bml0dGVzdC1zdGF0aWMiOwotCQkJCVNES1JPT1QgPSBtYWNvc3g7Ci0JCQl9OwotCQkJbmFtZSA9
IERlYnVnOwotCQl9OwotCQk0MEM4NDk5NjEwMUEzNkE2MDA4MzY0MkEgLyogUmVsZWFzZSAqLyA9
IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsK
LQkJCQlHQ0NfVkVSU0lPTiA9IGNvbS5hcHBsZS5jb21waWxlcnMubGx2bS5jbGFuZy4xXzA7Ci0J
CQkJUFJPRFVDVF9OQU1FID0gInNhbXBsZTFfdW5pdHRlc3Qtc3RhdGljIjsKLQkJCQlTREtST09U
ID0gbWFjb3N4OwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQk0RkFEQzI0MzA4
QjQxNTZEMDBBQkU1NUUgLyogRGVidWcgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNDBENENERjIwRTMwRTA3NDAw
Mjk0ODAxIC8qIEZyYW1ld29ya1RhcmdldC54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0dGluZ3Mg
PSB7Ci0JCQkJQ09NQklORV9ISURQSV9JTUFHRVMgPSBZRVM7Ci0JCQkJRFlMSUJfQ09NUEFUSUJJ
TElUWV9WRVJTSU9OID0gMTsKLQkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwotCQkJCUdD
Q19WRVJTSU9OID0gY29tLmFwcGxlLmNvbXBpbGVycy5sbHZtLmNsYW5nLjFfMDsKLQkJCQlIRUFE
RVJfU0VBUkNIX1BBVEhTID0gKAotCQkJCQkuLi8sCi0JCQkJCS4uL2luY2x1ZGUvLAotCQkJCSk7
Ci0JCQkJSU5GT1BMSVNUX0ZJTEUgPSBSZXNvdXJjZXMvSW5mby5wbGlzdDsKLQkJCQlJTkZPUExJ
U1RfUFJFRklYX0hFQURFUiA9ICIkKFBST0pFQ1RfVEVNUF9ESVIpL1ZlcnNpb24uaCI7Ci0JCQkJ
SU5GT1BMSVNUX1BSRVBST0NFU1MgPSBZRVM7Ci0JCQkJUFJPRFVDVF9OQU1FID0gZ3Rlc3Q7Ci0J
CQkJU0RLUk9PVCA9IG1hY29zeDsKLQkJCQlWRVJTSU9OSU5HX1NZU1RFTSA9ICJhcHBsZS1nZW5l
cmljIjsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0JCTRGQURDMjQ0MDhCNDE1NkQw
MEFCRTU1RSAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDQwRDRDREYyMEUzMEUwNzQwMDI5NDgw
MSAvKiBGcmFtZXdvcmtUYXJnZXQueGNjb25maWcgKi87Ci0JCQlidWlsZFNldHRpbmdzID0gewot
CQkJCUNPTUJJTkVfSElEUElfSU1BR0VTID0gWUVTOwotCQkJCURZTElCX0NPTVBBVElCSUxJVFlf
VkVSU0lPTiA9IDE7Ci0JCQkJRFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKLQkJCQlHQ0NfVkVS
U0lPTiA9IGNvbS5hcHBsZS5jb21waWxlcnMubGx2bS5jbGFuZy4xXzA7Ci0JCQkJSEVBREVSX1NF
QVJDSF9QQVRIUyA9ICgKLQkJCQkJLi4vLAotCQkJCQkuLi9pbmNsdWRlLywKLQkJCQkpOwotCQkJ
CUlORk9QTElTVF9GSUxFID0gUmVzb3VyY2VzL0luZm8ucGxpc3Q7Ci0JCQkJSU5GT1BMSVNUX1BS
RUZJWF9IRUFERVIgPSAiJChQUk9KRUNUX1RFTVBfRElSKS9WZXJzaW9uLmgiOwotCQkJCUlORk9Q
TElTVF9QUkVQUk9DRVNTID0gWUVTOwotCQkJCVBST0RVQ1RfTkFNRSA9IGd0ZXN0OwotCQkJCVNE
S1JPT1QgPSBtYWNvc3g7Ci0JCQkJVkVSU0lPTklOR19TWVNURU0gPSAiYXBwbGUtZ2VuZXJpYyI7
Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTRGQURDMjQ3MDhCNDE1NkQwMEFC
RTU1RSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJ
YmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MEQ0Q0RGMTBFMzBFMDc0MDAyOTQ4MDEgLyog
RGVidWdQcm9qZWN0LnhjY29uZmlnICovOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDTEFO
R19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7Ci0JCQkJQ0xBTkdfQ1hYX0xJQlJB
UlkgPSAibGliYysrIjsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC43OwotCQkJ
fTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJNEZBREMyNDgwOEI0MTU2RDAwQUJFNTVFIC8q
IFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNDBENENERjQwRTMwRTA3NDAwMjk0ODAxIC8qIFJlbGVh
c2VQcm9qZWN0LnhjY29uZmlnICovOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDTEFOR19D
WFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7Ci0JCQkJQ0xBTkdfQ1hYX0xJQlJBUlkg
PSAibGliYysrIjsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC43OwotCQkJfTsK
LQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotLyogRW5kIFhDQnVpbGRDb25maWd1cmF0aW9uIHNl
Y3Rpb24gKi8KLQotLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCi0JCTNC
MjM4RkEzMEU4MjhCQjYwMDg0NkUxMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WEFnZ3JlZ2F0ZVRhcmdldCAiQ2hlY2siICovID0gewotCQkJaXNhID0gWENDb25maWd1cmF0aW9u
TGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJM0IyMzhGNjAwRTgyOEI1NDAw
ODQ2RTExIC8qIERlYnVnICovLAotCQkJCTNCMjM4RjYxMEU4MjhCNTQwMDg0NkUxMSAvKiBSZWxl
YXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKLQkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTQwODk5RjRBMEZG
QTcxQkMwMDBCMjlBRSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRh
cmdldCAiZ3Rlc3RfdW5pdHRlc3QtZnJhbWV3b3JrIiAqLyA9IHsKLQkJCWlzYSA9IFhDQ29uZmln
dXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCTQwODk5RjQ1MEZG
QTcxODUwMDBCMjlBRSAvKiBEZWJ1ZyAqLywKLQkJCQk0MDg5OUY0NjBGRkE3MTg1MDAwQjI5QUUg
LyogUmVsZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9
IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQk0MDg5
QTAyNDBGRkFDRjAxMDAwQjI5QUUgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhO
YXRpdmVUYXJnZXQgInNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrIiAqLyA9IHsKLQkJCWlzYSA9
IFhDQ29uZmlndXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCTQw
ODlBMDE1MEZGQUNFRkQwMDBCMjlBRSAvKiBEZWJ1ZyAqLywKLQkJCQk0MDg5QTAxNjBGRkFDRUZE
MDAwQjI5QUUgLyogUmVsZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwotCQl9
OwotCQk0MEM0NEFFNDBFMzc5OTA1MDA4RkNDNTEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIlZlcnNpb24gSW5mbyIgKi8gPSB7Ci0JCQlpc2EgPSBY
Q0NvbmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQk0MEM0
NEFERjBFMzc5OEY0MDA4RkNDNTEgLyogRGVidWcgKi8sCi0JCQkJNDBDNDRBRTAwRTM3OThGNDAw
OEZDQzUxIC8qIFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zp
c2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKLQkJfTsK
LQkJNDBDODQ5MDIxMDFBMjEyRTAwODM2NDJBIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYTmF0aXZlVGFyZ2V0ICJndGVzdC1zdGF0aWMiICovID0gewotCQkJaXNhID0gWENDb25m
aWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJNDBDODQ4RkIx
MDFBMjA5RDAwODM2NDJBIC8qIERlYnVnICovLAotCQkJCTQwQzg0OEZDMTAxQTIwOUQwMDgzNjQy
QSAvKiBSZWxlYXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTQw
Qzg0OTEyMTAxQTIxRDIwMDgzNjQyQSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WE5hdGl2ZVRhcmdldCAiZ3Rlc3RfbWFpbi1zdGF0aWMiICovID0gewotCQkJaXNhID0gWENDb25m
aWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJNDBDODQ5MEUx
MDFBMjE3RjAwODM2NDJBIC8qIERlYnVnICovLAotCQkJCTQwQzg0OTBGMTAxQTIxN0YwMDgzNjQy
QSAvKiBSZWxlYXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTQw
Qzg0OTg0MTAxQTM2ODUwMDgzNjQyQSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WE5hdGl2ZVRhcmdldCAiZ3Rlc3RfdW5pdHRlc3Qtc3RhdGljIiAqLyA9IHsKLQkJCWlzYSA9IFhD
Q29uZmlndXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCTQwQzg0
OTg1MTAxQTM2ODUwMDgzNjQyQSAvKiBEZWJ1ZyAqLywKLQkJCQk0MEM4NDk4NjEwMUEzNjg1MDA4
MzY0MkEgLyogUmVsZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlz
aWJsZSA9IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwotCQl9Owot
CQk0MEM4NDk5NDEwMUEzNkE2MDA4MzY0MkEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhOYXRpdmVUYXJnZXQgInNhbXBsZTFfdW5pdHRlc3Qtc3RhdGljIiAqLyA9IHsKLQkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJ
CTQwQzg0OTk1MTAxQTM2QTYwMDgzNjQyQSAvKiBEZWJ1ZyAqLywKLQkJCQk0MEM4NDk5NjEwMUEz
NkE2MDA4MzY0MkEgLyogUmVsZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlv
bklzVmlzaWJsZSA9IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwot
CQl9OwotCQk0RkFEQzI0MjA4QjQxNTZEMDBBQkU1NUUgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImd0ZXN0LWZyYW1ld29yayIgKi8gPSB7Ci0JCQlpc2Eg
PSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQk0
RkFEQzI0MzA4QjQxNTZEMDBBQkU1NUUgLyogRGVidWcgKi8sCi0JCQkJNEZBREMyNDQwOEI0MTU2
RDAwQUJFNTVFIC8qIFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25J
c1Zpc2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKLQkJ
fTsKLQkJNEZBREMyNDYwOEI0MTU2RDAwQUJFNTVFIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlz
dCBmb3IgUEJYUHJvamVjdCAiZ3Rlc3QiICovID0gewotCQkJaXNhID0gWENDb25maWd1cmF0aW9u
TGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJNEZBREMyNDcwOEI0MTU2RDAw
QUJFNTVFIC8qIERlYnVnICovLAotCQkJCTRGQURDMjQ4MDhCNDE1NkQwMEFCRTU1RSAvKiBSZWxl
YXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKLQkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0vKiBFbmQgWENDb25m
aWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCi0JfTsKLQlyb290T2JqZWN0ID0gMDg2N0Q2OTBGRTg0
MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L3Npa2UvTElDRU5TRSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL0xJQ0VOU0UKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWNmN2M4ZGI2MjgzN2U0ZjkxYWFhNTM5MjQ0M2EyMzcyZDRhNjkzNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL0xJQ0VOU0UKQEAgLTAsMCArMSwyMSBA
QAorTUlUIExpY2Vuc2UKKworQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdh
cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0
byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
LAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N
LAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRf
cGFydHkvc2lrZS9hc20vZnAtYXJtdjgucGwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9hc20vZnAt
YXJtdjgucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UxOWQ4MDkwZTU1MzZkZjAwYmNkNzU0MzMzNTMwY2JiOGRj
OGIyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL2FzbS9mcC1hcm12
OC5wbApAQCAtMCwwICsxLDkxNSBAQAorIyEgL3Vzci9iaW4vZW52IHBlcmwKKyMKKyMgQXByaWwg
MjAxOQorIworIyBBYnN0cmFjdDogZmllbGQgYXJpdGhtZXRpYyBpbiBhYXJjaDY0IGFzc2VtYmx5
IGZvciBTSURIL3A0MzQKKworJGZsYXZvdXIgPSBzaGlmdDsKKyRvdXRwdXQgID0gc2hpZnQ7Citp
ZiAoJGZsYXZvdXIgPX4gL1wuLykgeyAkb3V0cHV0ID0gJGZsYXZvdXI7IHVuZGVmICRmbGF2b3Vy
OyB9CisKKyQwID1+IG0vKC4qW1wvXFxdKVteXC9cXF0rJC87ICRkaXI9JDE7CisoICR4bGF0ZT0i
JHtkaXJ9YXJtLXhsYXRlLnBsIiBhbmQgLWYgJHhsYXRlICkgb3IKKyggJHhsYXRlPSIke2Rpcn0u
Li8uLi8uLi9jcnlwdG8vcGVybGFzbS9hcm0teGxhdGUucGwiIGFuZCAtZiAkeGxhdGUpIG9yCitk
aWUgImNhbid0IGxvY2F0ZSBhcm0teGxhdGUucGwiOworCitvcGVuIE9VVCwifCBcIiReWFwiIFwi
JHhsYXRlXCIgJGZsYXZvdXIgXCIkb3V0cHV0XCIiOworKlNURE9VVD0qT1VUOworCiskUFJFRklY
PSJzaWtlIjsKKworJGNvZGUuPTw8X19fOworLnNlY3Rpb24gIC5yb2RhdGEKKworIyBwNDM0IHgg
MgorLkxwNDM0eDI6CisgICAgLnF1YWQgIDB4RkZGRkZGRkZGRkZGRkZGRSwgMHhGRkZGRkZGRkZG
RkZGRkZGCisgICAgLnF1YWQgIDB4RkI4MkVDRjVDNUZGRkZGRiwgMHhGNzhDQjhGMDYyQjE1RDQ3
CisgICAgLnF1YWQgIDB4RDlGOEJGQUQwMzhBNDBBQywgMHgwMDA0NjgzRTRFMkVFNjg4CisKKyMg
cDQzNCArIDEKKy5McDQzNHAxOgorICAgIC5xdWFkICAweEZEQzE3NjdBRTMwMDAwMDAsIDB4N0JD
NjVDNzgzMTU4QUVBMworICAgIC5xdWFkICAweDZDRkM1RkQ2ODFDNTIwNTYsIDB4MDAwMjM0MUYy
NzE3NzM0NAorCisudGV4dAorX19fCisKKyMgQ29tcHV0ZXMgQzAtQzIgPSBBMCAqIChCMC1CMSkK
KyMgSW5wdXRzIHJlbWFpbiBpbnRhY3QKK3N1YiBtdWw2NHgxMjggeworICAgIG15ICgkQTAsJEIw
LCRCMSwkQzAsJEMxLCRDMiwkVDAsJFQxKT1AXzsKKyAgICBteSAkYm9keT08PF9fXzsKKyAgICAg
ICAgbXVsICAgICAkVDEsICRBMCwgJEIwCisgICAgICAgIHVtdWxoICAgJEIwLCAkQTAsICRCMAor
ICAgICAgICBhZGRzICAgICRDMCwgJEMwLCAkQzIKKyAgICAgICAgYWRjICAgICAkQzEsICRDMSwg
eHpyCisKKyAgICAgICAgbXVsICAgICAkVDAsICRBMCwgJEIxCisgICAgICAgIHVtdWxoICAgJEIx
LCAkQTAsICRCMQorICAgICAgICBhZGRzICAgICRDMCwgJEMwLCAkVDEKKyAgICAgICAgYWRjcyAg
ICAkQzEsICRDMSwgJEIwCisgICAgICAgIGFkYyAgICAgJEMyLCB4enIsIHh6cgorCisgICAgICAg
IGFkZHMgICAgJEMxLCAkQzEsICRUMAorICAgICAgICBhZGMgICAgICRDMiwgJEMyLCAkQjEKK19f
XworICAgIHJldHVybiAkYm9keTsKK30KKworIyBDb21wdXRlcyBDMC1DNCA9IEEwICogKEIwLUIz
KQorIyBJbnB1dHMgcmVtYWluIGludGFjdAorc3ViIG11bDY0eDI1NiB7CisgICAgbXkgKCRBMCwk
QjAsJEIxLCRCMiwkQjMsJEMwLCRDMSwkQzIsJEMzLCRDNCwkVDAsJFQxLCRUMik9QF87CisgICAg
bXkgJGJvZHk9PDxfX187CisgICAgICAgIG11bCAgICAgJEMwLCAkQTAsICRCMCAgICAvLyBDMAor
ICAgICAgICB1bXVsaCAgICRUMCwgJEEwLCAkQjAKKworICAgICAgICBtdWwgICAgICRDMSwgJEEw
LCAkQjEKKyAgICAgICAgdW11bGggICAkVDEsICRBMCwgJEIxCisgICAgICAgIGFkZHMgICAgJEMx
LCAkQzEsICRUMCAgICAvLyBDMQorICAgICAgICBhZGMgICAgICRUMCwgeHpyLCB4enIKKworICAg
ICAgICBtdWwgICAgICRDMiwgJEEwLCAkQjIKKyAgICAgICAgdW11bGggICAkVDIsICRBMCwgJEIy
CisgICAgICAgIGFkZHMgICAgJFQxLCAkVDAsICRUMQorICAgICAgICBhZGNzICAgICRDMiwgJEMy
LCAkVDEgICAgLy8gQzIKKyAgICAgICAgYWRjICAgICAkVDAsIHh6ciwgeHpyCisKKyAgICAgICAg
bXVsICAgICAkQzMsICRBMCwgJEIzCisgICAgICAgIHVtdWxoICAgJEM0LCAkQTAsICRCMworICAg
ICAgICBhZGRzICAgICRUMiwgJFQwLCAkVDIKKyAgICAgICAgYWRjcyAgICAkQzMsICRDMywgJFQy
ICAgIC8vIEMzCisgICAgICAgIGFkYyAgICAgJEM0LCAkQzQsIHh6ciAgICAvLyBDNAorX19fCisg
ICAgcmV0dXJuICRib2R5OworfQorCisjIENvbXB1dGVzIEMwLUM0ID0gKEEwLUExKSAqIChCMC1C
MykKKyMgSW5wdXRzIHJlbWFpbiBpbnRhY3QKK3N1YiBtdWwxMjh4MjU2IHsKKyAgICBteSAoJEEw
LCRBMSwkQjAsJEIxLCRCMiwkQjMsJEMwLCRDMSwkQzIsJEMzLCRDNCwkQzUsJFQwLCRUMSwkVDIs
JFQzKT1AXzsKKyAgICBteSAkYm9keT08PF9fXzsKKyAgICAgICAgbXVsICAgICAkQzAsICRBMCwg
JEIwICAvLyBDMAorICAgICAgICB1bXVsaCAgICRDMywgJEEwLCAkQjAKKworICAgICAgICBtdWwg
ICAgICRDMSwgJEEwLCAkQjEKKyAgICAgICAgdW11bGggICAkQzIsICRBMCwgJEIxCisKKyAgICAg
ICAgbXVsICAgICAkVDAsICRBMSwgJEIwCisgICAgICAgIHVtdWxoICAgJFQxLCAkQTEsICRCMAor
ICAgICAgICBhZGRzICAgICRDMSwgJEMxLCAkQzMKKyAgICAgICAgYWRjICAgICAkQzIsICRDMiwg
eHpyCisKKyAgICAgICAgbXVsICAgICAkVDIsICRBMCwgJEIyCisgICAgICAgIHVtdWxoICAgJFQz
LCAkQTAsICRCMgorICAgICAgICBhZGRzICAgICRDMSwgJEMxLCAkVDAgIC8vIEMxCisgICAgICAg
IGFkY3MgICAgJEMyLCAkQzIsICRUMQorICAgICAgICBhZGMgICAgICRDMywgeHpyLCB4enIKKwor
ICAgICAgICBtdWwgICAgICRUMCwgJEExLCAkQjEKKyAgICAgICAgdW11bGggICAkVDEsICRBMSwg
JEIxCisgICAgICAgIGFkZHMgICAgJEMyLCAkQzIsICRUMgorICAgICAgICBhZGNzICAgICRDMywg
JEMzLCAkVDMKKyAgICAgICAgYWRjICAgICAkQzQsIHh6ciwgeHpyCisKKyAgICAgICAgbXVsICAg
ICAkVDIsICRBMCwgJEIzCisgICAgICAgIHVtdWxoICAgJFQzLCAkQTAsICRCMworICAgICAgICBh
ZGRzICAgICRDMiwgJEMyLCAkVDAgIC8vIEMyCisgICAgICAgIGFkY3MgICAgJEMzLCAkQzMsICRU
MQorICAgICAgICBhZGMgICAgICRDNCwgJEM0LCB4enIKKworICAgICAgICBtdWwgICAgICRUMCwg
JEExLCAkQjIKKyAgICAgICAgdW11bGggICAkVDEsICRBMSwgJEIyCisgICAgICAgIGFkZHMgICAg
JEMzLCAkQzMsICRUMgorICAgICAgICBhZGNzICAgICRDNCwgJEM0LCAkVDMKKyAgICAgICAgYWRj
ICAgICAkQzUsIHh6ciwgeHpyCisKKyAgICAgICAgbXVsICAgICAkVDIsICRBMSwgJEIzCisgICAg
ICAgIHVtdWxoICAgJFQzLCAkQTEsICRCMworICAgICAgICBhZGRzICAgICRDMywgJEMzLCAkVDAg
IC8vIEMzCisgICAgICAgIGFkY3MgICAgJEM0LCAkQzQsICRUMQorICAgICAgICBhZGMgICAgICRD
NSwgJEM1LCB4enIKKyAgICAgICAgYWRkcyAgICAkQzQsICRDNCwgJFQyICAvLyBDNAorICAgICAg
ICBhZGMgICAgICRDNSwgJEM1LCAkVDMgIC8vIEM1CisKK19fXworICAgIHJldHVybiAkYm9keTsK
K30KKworIyBDb21wdXRlcyBDMC1DNSA9IChBMC1BMikgKiAoQjAtQjIpCisjIElucHV0cyByZW1h
aW4gaW50YWN0CitzdWIgbXVsMTkyIHsKKyAgICBteSAoJEEwLCRBMSwkQTIsJEIwLCRCMSwkQjIs
JEMwLCRDMSwkQzIsJEMzLCRDNCwkQzUsJFQwLCRUMSwkVDIsJFQzKT1AXzsKKyAgICBteSAkYm9k
eT08PF9fXzsKKworICAgICAgICAvLyBBMCAqIEIwCisgICAgICAgIG11bCAgICAgJEMwLCAkQTAs
ICRCMCAgLy8gQzAKKyAgICAgICAgdW11bGggICAkQzMsICRBMCwgJEIwCisKKyAgICAgICAgLy8g
QTAgKiBCMQorICAgICAgICBtdWwgICAgICRDMSwgJEEwLCAkQjEKKyAgICAgICAgdW11bGggICAk
QzIsICRBMCwgJEIxCisKKyAgICAgICAgLy8gQTEgKiBCMAorICAgICAgICBtdWwgICAgICRUMCwg
JEExLCAkQjAKKyAgICAgICAgdW11bGggICAkVDEsICRBMSwgJEIwCisgICAgICAgIGFkZHMgICAg
JEMxLCAkQzEsICRDMworICAgICAgICBhZGMgICAgICRDMiwgJEMyLCB4enIKKworICAgICAgICAv
LyBBMCAqIEIyCisgICAgICAgIG11bCAgICAgJFQyLCAkQTAsICRCMgorICAgICAgICB1bXVsaCAg
ICRUMywgJEEwLCAkQjIKKyAgICAgICAgYWRkcyAgICAkQzEsICRDMSwgJFQwICAvLyBDMQorICAg
ICAgICBhZGNzICAgICRDMiwgJEMyLCAkVDEKKyAgICAgICAgYWRjICAgICAkQzMsIHh6ciwgeHpy
CisKKyAgICAgICAgLy8gQTIgKiBCMAorICAgICAgICBtdWwgICAgICRUMCwgJEEyLCAkQjAKKyAg
ICAgICAgdW11bGggICAkQzQsICRBMiwgJEIwCisgICAgICAgIGFkZHMgICAgJEMyLCAkQzIsICRU
MgorICAgICAgICBhZGNzICAgICRDMywgJEMzLCAkQzQKKyAgICAgICAgYWRjICAgICAkQzQsIHh6
ciwgeHpyCisKKyAgICAgICAgLy8gQTEgKiBCMQorICAgICAgICBtdWwgICAgICRUMiwgJEExLCAk
QjEKKyAgICAgICAgdW11bGggICAkVDEsICRBMSwgJEIxCisgICAgICAgIGFkZHMgICAgJEMyLCAk
QzIsICRUMAorICAgICAgICBhZGNzICAgICRDMywgJEMzLCAkVDMKKyAgICAgICAgYWRjICAgICAk
QzQsICRDNCwgeHpyCisKKyAgICAgICAgLy8gQTEgKiBCMgorICAgICAgICBtdWwgICAgICRUMCwg
JEExLCAkQjIKKyAgICAgICAgdW11bGggICAkVDMsICRBMSwgJEIyCisgICAgICAgIGFkZHMgICAg
JEMyLCAkQzIsICRUMiAvLyBDMgorICAgICAgICBhZGNzICAgICRDMywgJEMzLCAkVDEKKyAgICAg
ICAgYWRjICAgICAkQzQsICRDNCwgeHpyCisKKyAgICAgICAgLy8gQTIgKiBCMQorICAgICAgICBt
dWwgICAgICRUMiwgJEEyLCAkQjEKKyAgICAgICAgdW11bGggICAkVDEsICRBMiwgJEIxCisgICAg
ICAgIGFkZHMgICAgJEMzLCAkQzMsICRUMAorICAgICAgICBhZGNzICAgICRDNCwgJEM0LCAkVDMK
KyAgICAgICAgYWRjICAgICAkQzUsIHh6ciwgeHpyCisKKyAgICAgICAgLy8gQTIgKiBCMgorICAg
ICAgICBtdWwgICAgICRUMCwgJEEyLCAkQjIKKyAgICAgICAgdW11bGggICAkVDMsICRBMiwgJEIy
CisgICAgICAgIGFkZHMgICAgJEMzLCAkQzMsICRUMiAvLyBDMworICAgICAgICBhZGNzICAgICRD
NCwgJEM0LCAkVDEKKyAgICAgICAgYWRjICAgICAkQzUsICRDNSwgeHpyCisKKyAgICAgICAgYWRk
cyAgICAkQzQsICRDNCwgJFQwIC8vIEM0CisgICAgICAgIGFkYyAgICAgJEM1LCAkQzUsICRUMyAv
LyBDNQorX19fCisgICAgcmV0dXJuICRib2R5OworfQorc3ViIG11bDI1Nl9rYXJhdHN1YmEgewor
ICAgIG15ICgkTSwkQTAsJEExLCRBMiwkQTMsJEIwLCRCMSwkQjIsJEIzLCRDMCwkQzEsJEMyLCRD
MywkQzQsJEM1LCRDNiwkQzcsJFQwLCRUMSk9QF87CisgICAgIyAoQUgrQUwpIHggKEJIK0JMKSwg
bG93IHBhcnQKKyAgICBteSAkbXVsX2xvdz0mbXVsNjR4MTI4KCRBMSwgJEM2LCAkVDEsICRDMywg
JEM0LCAkQzUsICRDNywgJEEwKTsKKyAgICAjIEFMIHggQkwKKyAgICBteSAkbXVsX2FsYmw9Jm11
bDY0eDEyOCgkQTEsICRCMCwgJEIxLCAkQzEsICRUMSwgJEM3LCAkQzYsICRBMCk7CisgICAgIyBB
SCB4IEJICisgICAgbXkgJG11bF9haGJoPSZtdWw2NHgxMjgoJEEzLCAkQjIsICRCMywgJEExLCAk
QzYsICRCMCwgJEIxLCAkQTIpOworICAgIG15ICRib2R5PTw8X19fOworICAgICAgICAvLyBBMC1B
MSA8LSBBSCArIEFMLCBUMCA8LSBtYXNrCisgICAgICAgIGFkZHMgICAgJEEwLCAkQTAsICRBMgor
ICAgICAgICBhZGNzICAgICRBMSwgJEExLCAkQTMKKyAgICAgICAgYWRjICAgICAkVDAsIHh6ciwg
eHpyCisKKyAgICAgICAgLy8gQzYsIFQxIDwtIEJIICsgQkwsIEM3IDwtIG1hc2sKKyAgICAgICAg
YWRkcyAgICAkQzYsICRCMCwgJEIyCisgICAgICAgIGFkY3MgICAgJFQxLCAkQjEsICRCMworICAg
ICAgICBhZGMgICAgICRDNywgeHpyLCB4enIKKworICAgICAgICAvLyBDMC1DMSA8LSBtYXNrZWQg
KEJIICsgQkwpCisgICAgICAgIHN1YiAgICAgJEMyLCB4enIsICRUMAorICAgICAgICBzdWIgICAg
ICRDMywgeHpyLCAkQzcKKyAgICAgICAgYW5kICAgICAkQzAsICRDNiwgJEMyCisgICAgICAgIGFu
ZCAgICAgJEMxLCAkVDEsICRDMgorCisgICAgICAgIC8vIEM0LUM1IDwtIG1hc2tlZCAoQUggKyBB
TCksIFQwIDwtIGNvbWJpbmVkIGNhcnJ5CisgICAgICAgIGFuZCAgICAgJEM0LCAkQTAsICRDMwor
ICAgICAgICBhbmQgICAgICRDNSwgJEExLCAkQzMKKyAgICAgICAgbXVsICAgICAkQzIsICRBMCwg
JEM2CisgICAgICAgIG11bCAgICAgJEMzLCAkQTAsICRUMQorICAgICAgICBhbmQgICAgICRUMCwg
JFQwLCAkQzcKKworICAgICAgICAvLyBDMC1DMSwgVDAgPC0gKEFIK0FMKSB4IChCSCtCTCksIHBh
cnQgMQorICAgICAgICBhZGRzICAgICRDMCwgJEM0LCAkQzAKKyAgICAgICAgdW11bGggICAkQzQs
ICRBMCwgJFQxCisgICAgICAgIGFkY3MgICAgJEMxLCAkQzUsICRDMQorICAgICAgICB1bXVsaCAg
ICRDNSwgJEEwLCAkQzYKKyAgICAgICAgYWRjICAgICAkVDAsICRUMCwgeHpyCisKKyAgICAgICAg
Ly8gQzItQzUgPC0gKEFIK0FMKSB4IChCSCtCTCksIGxvdyBwYXJ0CisgICAgICAgICRtdWxfbG93
CisgICAgICAgIGxkcCAgICAgJEEwLCAkQTEsIFskTSwjMF0KKworICAgICAgICAvLyBDMi1DNSwg
VDAgPC0gKEFIK0FMKSB4IChCSCtCTCksIGZpbmFsIHBhcnQKKyAgICAgICAgYWRkcyAgICAkQzQs
ICRDMCwgJEM0CisgICAgICAgIHVtdWxoICAgJEM3LCAkQTAsICRCMAorICAgICAgICB1bXVsaCAg
ICRUMSwgJEEwLCAkQjEKKyAgICAgICAgYWRjcyAgICAkQzUsICRDMSwgJEM1CisgICAgICAgIG11
bCAgICAgJEMwLCAkQTAsICRCMAorICAgICAgICBtdWwgICAgICRDMSwgJEEwLCAkQjEKKyAgICAg
ICAgYWRjICAgICAkVDAsICRUMCwgeHpyCisKKyAgICAgICAgLy8gQzAtQzEsIFQxLCBDNyA8LSBB
TCB4IEJMCisgICAgICAgICRtdWxfYWxibAorCisgICAgICAgIC8vIEMyLUM1LCBUMCA8LSAoQUgr
QUwpIHggKEJIK0JMKSAtIEFMeEJMCisgICAgICAgIG11bCAgICAgJEEwLCAkQTIsICRCMgorICAg
ICAgICB1bXVsaCAgICRCMCwgJEEyLCAkQjIKKyAgICAgICAgc3VicyAgICAkQzIsICRDMiwgJEMw
CisgICAgICAgIHNiY3MgICAgJEMzLCAkQzMsICRDMQorICAgICAgICBzYmNzICAgICRDNCwgJEM0
LCAkVDEKKyAgICAgICAgbXVsICAgICAkQTEsICRBMiwgJEIzCisgICAgICAgIHVtdWxoICAgJEM2
LCAkQTIsICRCMworICAgICAgICBzYmNzICAgICRDNSwgJEM1LCAkQzcKKyAgICAgICAgc2JjICAg
ICAkVDAsICRUMCwgeHpyCisKKyAgICAgICAgLy8gQTAsIEExLCBDNiwgQjAgPC0gQUggeCBCSAor
ICAgICAgICAkbXVsX2FoYmgKKworICAgICAgICAvLyBDMi1DNSwgVDAgPC0gKEFIK0FMKSB4IChC
SCtCTCkgLSBBTHhCTCAtIEFIeEJICisgICAgICAgIHN1YnMgICAgJEMyLCAkQzIsICRBMAorICAg
ICAgICBzYmNzICAgICRDMywgJEMzLCAkQTEKKyAgICAgICAgc2JjcyAgICAkQzQsICRDNCwgJEM2
CisgICAgICAgIHNiY3MgICAgJEM1LCAkQzUsICRCMAorICAgICAgICBzYmMgICAgICRUMCwgJFQw
LCB4enIKKworICAgICAgICBhZGRzICAgICRDMiwgJEMyLCAkVDEKKyAgICAgICAgYWRjcyAgICAk
QzMsICRDMywgJEM3CisgICAgICAgIGFkY3MgICAgJEM0LCAkQzQsICRBMAorICAgICAgICBhZGNz
ICAgICRDNSwgJEM1LCAkQTEKKyAgICAgICAgYWRjcyAgICAkQzYsICRUMCwgJEM2CisgICAgICAg
IGFkYyAgICAgJEM3LCAkQjAsIHh6cgorX19fCisgICAgcmV0dXJuICRib2R5OworfQorCisjIDUx
Mi1iaXQgaW50ZWdlciBtdWx0aXBsaWNhdGlvbiB1c2luZyBLYXJhdHN1YmEgKHR3byBsZXZlbHMp
LAorIyBDb21iYSAobG93ZXIgbGV2ZWwpLgorIyBPcGVyYXRpb246IGMgW3gyXSA9IGEgW3gwXSAq
IGIgW3gxXQorc3ViIG11bCB7CisgICAgIyAoQUgrQUwpIHggKEJIK0JMKSwgbG93IHBhcnQKKyAg
ICBteSAkbXVsX2tjX2xvdz0mbXVsMjU2X2thcmF0c3ViYSgKKyAgICAgICAgIngyIiwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNMAorICAgICAgICAieDMiLCJ4
NCIsIng1IiwieDYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEEwLUEzCisgICAgICAg
ICJ4MTAiLCJ4MTEiLCJ4MTIiLCJ4MTMiLCAgICAgICAgICAgICAgICAgICAgICAgICMgQjAtQjMK
KyAgICAgICAgIng4IiwieDkiLCJ4MTkiLCJ4MjAiLCJ4MjEiLCJ4MjIiLCJ4MjMiLCJ4MjQiLCAg
IyBDMC1DNworICAgICAgICAieDI1IiwieDI2Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAjIFRNUAorICAgICMgQUwgeCBCTAorICAgIG15ICRtdWxfYWxibD0mbXVsMjU2X2th
cmF0c3ViYSgKKyAgICAgICAgIngwIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIyBNMGYKKyAgICAgICAgIngzIiwieDQiLCJ4NSIsIng2IiwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyBBMC1BMworICAgICAgICAieDEwIiwieDExIiwieDEyIiwieDEzIiwg
ICAgICAgICAgICAgICAgICAgICAgICAjIEIwLUIzCisgICAgICAgICJ4MjEiLCJ4MjIiLCJ4MjMi
LCJ4MjQiLCJ4MjUiLCJ4MjYiLCJ4MjciLCJ4MjgiLCMgQzAtQzcKKyAgICAgICAgIng4IiwieDki
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUTVAKKyAgICAjIEFIIHgg
QkgKKyAgICBteSAkbXVsX2FoYmg9Jm11bDE5MigKKyAgICAgICAgIngzIiwieDQiLCJ4NSIsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBMC1BMgorICAgICAgICAieDEwIiwieDEx
IiwieDEyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEIwLUIyCisgICAgICAgICJ4
MjEiLCJ4MjIiLCJ4MjMiLCJ4MjQiLCJ4MjUiLCJ4MjYiLCAgICAgICAgICAgICMgQzAtQzUKKyAg
ICAgICAgIng4IiwieDkiLCJ4MjciLCJ4MjgiKTsgICAgICAgICAgICAgICAgICAgICAgICAgIyBU
TVAKKworICAgIG15ICRib2R5PTw8X19fOworICAgICAgICAuZ2xvYmFsICR7UFJFRklYfV9tcG11
bAorICAgICAgICAuYWxpZ24gNAorICAgICAgICAke1BSRUZJWH1fbXBtdWw6CisgICAgICAgIHN0
cCAgICAgeDI5LCB4MzAsIFtzcCwjLTk2XSEKKyAgICAgICAgYWRkICAgICB4MjksIHNwLCAjMAor
ICAgICAgICBzdHAgICAgIHgxOSwgeDIwLCBbc3AsIzE2XQorICAgICAgICBzdHAgICAgIHgyMSwg
eDIyLCBbc3AsIzMyXQorICAgICAgICBzdHAgICAgIHgyMywgeDI0LCBbc3AsIzQ4XQorICAgICAg
ICBzdHAgICAgIHgyNSwgeDI2LCBbc3AsIzY0XQorICAgICAgICBzdHAgICAgIHgyNywgeDI4LCBb
c3AsIzgwXQorCisgICAgICAgIGxkcCAgICAgIHgzLCAgeDQsIFt4MF0KKyAgICAgICAgbGRwICAg
ICAgeDUsICB4NiwgW3gwLCMxNl0KKyAgICAgICAgbGRwICAgICAgeDcsICB4OCwgW3gwLCMzMl0K
KyAgICAgICAgbGRyICAgICAgeDksICAgICAgW3gwLCM0OF0KKyAgICAgICAgbGRwICAgICB4MTAs
IHgxMSwgW3gxLCMwXQorICAgICAgICBsZHAgICAgIHgxMiwgeDEzLCBbeDEsIzE2XQorICAgICAg
ICBsZHAgICAgIHgxNCwgeDE1LCBbeDEsIzMyXQorICAgICAgICBsZHIgICAgIHgxNiwgICAgICBb
eDEsIzQ4XQorCisgICAgICAgIC8vIHgzLXg3IDwtIEFIICsgQUwsIHg3IDwtIGNhcnJ5CisgICAg
ICAgIGFkZHMgICAgeDMsIHgzLCB4NworICAgICAgICBhZGNzICAgIHg0LCB4NCwgeDgKKyAgICAg
ICAgYWRjcyAgICB4NSwgeDUsIHg5CisgICAgICAgIGFkY3MgICAgeDYsIHg2LCB4enIKKyAgICAg
ICAgYWRjICAgICB4NywgeHpyLCB4enIKKworICAgICAgICAvLyB4MTAteDEzIDwtIEJIICsgQkws
IHg4IDwtIGNhcnJ5CisgICAgICAgIGFkZHMgICAgeDEwLCB4MTAsIHgxNAorICAgICAgICBhZGNz
ICAgIHgxMSwgeDExLCB4MTUKKyAgICAgICAgYWRjcyAgICB4MTIsIHgxMiwgeDE2CisgICAgICAg
IGFkY3MgICAgeDEzLCB4MTMsIHh6cgorICAgICAgICBhZGMgICAgIHg4LCB4enIsIHh6cgorCisg
ICAgICAgIC8vIHg5IDwtIGNvbWJpbmVkIGNhcnJ5CisgICAgICAgIGFuZCAgICAgIHg5LCB4Nywg
eDgKKyAgICAgICAgLy8geDcteDggPC0gbWFzaworICAgICAgICBzdWIgICAgICB4NywgeHpyLCB4
NworICAgICAgICBzdWIgICAgICB4OCwgeHpyLCB4OAorCisgICAgICAgIC8vIHgxNS14MTkgPC0g
bWFza2VkIChCSCArIEJMKQorICAgICAgICBhbmQgICAgIHgxNCwgeDEwLCB4NworICAgICAgICBh
bmQgICAgIHgxNSwgeDExLCB4NworICAgICAgICBhbmQgICAgIHgxNiwgeDEyLCB4NworICAgICAg
ICBhbmQgICAgIHgxNywgeDEzLCB4NworCisgICAgICAgIC8vIHgyMC14MjMgPC0gbWFza2VkIChB
SCArIEFMKQorICAgICAgICBhbmQgICAgIHgyMCwgeDMsIHg4CisgICAgICAgIGFuZCAgICAgeDIx
LCB4NCwgeDgKKyAgICAgICAgYW5kICAgICB4MjIsIHg1LCB4OAorICAgICAgICBhbmQgICAgIHgy
MywgeDYsIHg4CisKKyAgICAgICAgLy8geDE1LXgxOSwgeDcgPC0gbWFza2VkIChBSCtBTCkgKyBt
YXNrZWQgKEJIK0JMKSwgc3RlcCAxCisgICAgICAgIGFkZHMgICAgeDE0LCB4MTQsIHgyMAorICAg
ICAgICBhZGNzICAgIHgxNSwgeDE1LCB4MjEKKyAgICAgICAgYWRjcyAgICB4MTYsIHgxNiwgeDIy
CisgICAgICAgIGFkY3MgICAgeDE3LCB4MTcsIHgyMworICAgICAgICBhZGMgICAgIHg3LCB4OSwg
eHpyCisKKyAgICAgICAgLy8geDgteDkseDE5LHgyMC14MjQgPC0gKEFIK0FMKSB4IChCSCtCTCks
IGxvdyBwYXJ0CisgICAgICAgIHN0cCAgICAgeDMsIHg0LCBbeDIsIzBdCisgICAgICAgICRtdWxf
a2NfbG93CisKKyAgICAgICAgLy8geDE1LXgxOSwgeDcgPC0gKEFIK0FMKSB4IChCSCtCTCksIGZp
bmFsIHN0ZXAKKyAgICAgICAgYWRkcyAgICB4MTQsIHgxNCwgeDIxCisgICAgICAgIGFkY3MgICAg
eDE1LCB4MTUsIHgyMgorICAgICAgICBhZGNzICAgIHgxNiwgeDE2LCB4MjMKKyAgICAgICAgYWRj
cyAgICB4MTcsIHgxNywgeDI0CisgICAgICAgIGFkYyAgICAgeDcsIHg3LCB4enIKKworICAgICAg
ICAvLyBMb2FkIEFMCisgICAgICAgIGxkcCAgICAgeDMsIHg0LCBbeDBdCisgICAgICAgIGxkcCAg
ICAgeDUsIHg2LCBbeDAsIzE2XQorICAgICAgICAvLyBMb2FkIEJMCisgICAgICAgIGxkcCAgICAg
eDEwLCB4MTEsIFt4MSwjMF0KKyAgICAgICAgbGRwICAgICB4MTIsIHgxMywgW3gxLCMxNl0KKwor
ICAgICAgICAvLyBUZW1wb3JhcmlseSBzdG9yZSB4OCBpbiB4MgorICAgICAgICBzdHAgICAgIHg4
LCB4OSwgW3gyLCMwXQorICAgICAgICAvLyB4MjEteDI4IDwtIEFMIHggQkwKKyAgICAgICAgJG11
bF9hbGJsCisgICAgICAgIC8vIFJlc3RvcmUgeDgKKyAgICAgICAgbGRwICAgICB4OCwgeDksIFt4
MiwjMF0KKworICAgICAgICAvLyB4OC14MTAseDIwLHgxNS14MTcseDE5IDwtIG1hc2tkIChBSCtB
TCkgeCAoQkgrQkwpIC0gQUx4QkwKKyAgICAgICAgc3VicyAgICB4OCwgeDgsIHgyMQorICAgICAg
ICBzYmNzICAgIHg5LCB4OSwgeDIyCisgICAgICAgIHNiY3MgICAgeDE5LCB4MTksIHgyMworICAg
ICAgICBzYmNzICAgIHgyMCwgeDIwLCB4MjQKKyAgICAgICAgc2JjcyAgICB4MTQsIHgxNCwgeDI1
CisgICAgICAgIHNiY3MgICAgeDE1LCB4MTUsIHgyNgorICAgICAgICBzYmNzICAgIHgxNiwgeDE2
LCB4MjcKKyAgICAgICAgc2JjcyAgICB4MTcsIHgxNywgeDI4CisgICAgICAgIHNiYyAgICAgeDcs
IHg3LCB4enIKKworICAgICAgICAvLyBTdG9yZSBBTHhCTCwgbG93CisgICAgICAgIHN0cCAgICAg
eDIxLCB4MjIsIFt4Ml0KKyAgICAgICAgc3RwICAgICB4MjMsIHgyNCwgW3gyLCMxNl0KKworICAg
ICAgICAvLyBMb2FkIEFICisgICAgICAgIGxkcCAgICAgeDMsIHg0LCBbeDAsIzMyXQorICAgICAg
ICBsZHIgICAgIHg1LCAgICAgW3gwLCM0OF0KKyAgICAgICAgLy8gTG9hZCBCSAorICAgICAgICBs
ZHAgICAgIHgxMCwgeDExLCBbeDEsIzMyXQorICAgICAgICBsZHIgICAgIHgxMiwgICAgICBbeDEs
IzQ4XQorCisgICAgICAgIGFkZHMgICAgIHg4LCAgeDgsIHgyNQorICAgICAgICBhZGNzICAgICB4
OSwgIHg5LCB4MjYKKyAgICAgICAgYWRjcyAgICB4MTksIHgxOSwgeDI3CisgICAgICAgIGFkY3Mg
ICAgeDIwLCB4MjAsIHgyOAorICAgICAgICBhZGMgICAgIHgxLCB4enIsIHh6cgorCisgICAgICAg
IGFkZCAgICAgeDAsIHgwLCAjMzIKKyAgICAgICAgLy8gVGVtcG9yYXJpbHkgc3RvcmUgeDgseDkg
aW4geDIKKyAgICAgICAgc3RwICAgICB4OCx4OSwgW3gyLCMzMl0KKyAgICAgICAgLy8geDIxLXgy
OCA8LSBBSCB4IEJICisgICAgICAgICRtdWxfYWhiaAorICAgICAgICAvLyBSZXN0b3JlIHg4LHg5
CisgICAgICAgIGxkcCAgICAgeDgseDksIFt4MiwjMzJdCisKKyAgICAgICAgbmVnICAgICB4MSwg
eDEKKworICAgICAgICAvLyB4OC14OSx4MTkseDIwLHgxNC14MTcgPC0gKEFIK0FMKSB4IChCSCtC
TCkgLSBBTHhCTCAtIEFIeEJICisgICAgICAgIHN1YnMgICAgeDgsIHg4LCB4MjEKKyAgICAgICAg
c2JjcyAgICB4OSwgeDksIHgyMgorICAgICAgICBzYmNzICAgIHgxOSwgeDE5LCB4MjMKKyAgICAg
ICAgc2JjcyAgICB4MjAsIHgyMCwgeDI0CisgICAgICAgIHNiY3MgICAgeDE0LCB4MTQsIHgyNQor
ICAgICAgICBzYmNzICAgIHgxNSwgeDE1LCB4MjYKKyAgICAgICAgc2JjcyAgICB4MTYsIHgxNiwg
eHpyCisgICAgICAgIHNiY3MgICAgeDE3LCB4MTcsIHh6cgorICAgICAgICBzYmMgICAgIHg3LCB4
NywgeHpyCisKKyAgICAgICAgLy8gU3RvcmUgKEFIK0FMKSB4IChCSCtCTCkgLSBBTHhCTCAtIEFI
eEJILCBsb3cKKyAgICAgICAgc3RwICAgICAgeDgsICB4OSwgW3gyLCMzMl0KKyAgICAgICAgc3Rw
ICAgICB4MTksIHgyMCwgW3gyLCM0OF0KKworICAgICAgICBhZGRzICAgICB4MSwgIHgxLCAjMQor
ICAgICAgICBhZGNzICAgIHgxNCwgeDE0LCB4MjEKKyAgICAgICAgYWRjcyAgICB4MTUsIHgxNSwg
eDIyCisgICAgICAgIGFkY3MgICAgeDE2LCB4MTYsIHgyMworICAgICAgICBhZGNzICAgIHgxNywg
eDE3LCB4MjQKKyAgICAgICAgYWRjcyAgICB4MjUsICB4NywgeDI1CisgICAgICAgIGFkYyAgICAg
eDI2LCB4MjYsIHh6cgorCisgICAgICAgIHN0cCAgICAgeDE0LCB4MTUsIFt4MiwjNjRdCisgICAg
ICAgIHN0cCAgICAgeDE2LCB4MTcsIFt4MiwjODBdCisgICAgICAgIHN0cCAgICAgeDI1LCB4MjYs
IFt4MiwjOTZdCisKKyAgICAgICAgbGRwICAgICB4MTksIHgyMCwgW3gyOSwjMTZdCisgICAgICAg
IGxkcCAgICAgeDIxLCB4MjIsIFt4MjksIzMyXQorICAgICAgICBsZHAgICAgIHgyMywgeDI0LCBb
eDI5LCM0OF0KKyAgICAgICAgbGRwICAgICB4MjUsIHgyNiwgW3gyOSwjNjRdCisgICAgICAgIGxk
cCAgICAgeDI3LCB4MjgsIFt4MjksIzgwXQorICAgICAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3Bd
LCM5NgorICAgICAgICByZXQKK19fXworICAgIHJldHVybiAkYm9keTsKK30KKyRjb2RlLj0mbXVs
KCk7CisKKyMgIE1vbnRnb21lcnkgcmVkdWN0aW9uCisjICBCYXNlZCBvbiBtZXRob2QgZGVzY3Jp
YmVkIGluIEZhei1IZXJuYW5kZXogZXQgYWwuIGh0dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMTcv
MTAxNQorIyAgT3BlcmF0aW9uOiBtYyBbeDFdID0gbWEgW3gwXQorIyAgTk9URTogbWE9bWMgaXMg
bm90IGFsbG93ZWQKK3N1YiByZGMgeworICAgIG15ICRtdWwwMT0mbXVsMTI4eDI1NigKKyAgICAg
ICAgIngyIiwieDMiLCAgICAgICAgICAgICAgICAgICAgICMgQTAtQTEKKyAgICAgICAgIngyMyIs
IngyNCIsIngyNSIsIngyNiIsICAgICAgICMgQjAtQjMKKyAgICAgICAgIng0IiwieDUiLCJ4NiIs
Ing3IiwieDgiLCJ4OSIsICMgQzAtQzUKKyAgICAgICAgIngxMCIsIngxMSIsIngyNyIsIngyOCIp
OyAgICAgICMgVE1QCisgICAgbXkgJG11bDIzPSZtdWwxMjh4MjU2KAorICAgICAgICAieDIiLCJ4
MTAiLCAgICAgICAgICAgICAgICAgICAgIyBBMC1BMQorICAgICAgICAieDIzIiwieDI0IiwieDI1
IiwieDI2IiwgICAgICAgIyBCMC1CMworICAgICAgICAieDQiLCJ4NSIsIng2IiwieDciLCJ4OCIs
Ing5IiwgIyBDMC1DNQorICAgICAgICAieDAiLCJ4MyIsIngyNyIsIngyOCIpOyAgICAgICAgIyBU
TVAKKyAgICBteSAkbXVsNDU9Jm11bDEyOHgyNTYoCisgICAgICAgICJ4MTEiLCJ4MTIiLCAgICAg
ICAgICAgICAgICAgICAjIEEwLUExCisgICAgICAgICJ4MjMiLCJ4MjQiLCJ4MjUiLCJ4MjYiLCAg
ICAgICAjIEIwLUIzCisgICAgICAgICJ4NCIsIng1IiwieDYiLCJ4NyIsIng4IiwieDkiLCAjIEMw
LUM1CisgICAgICAgICJ4MTAiLCJ4MyIsIngyNyIsIngyOCIpOyAgICAgICAjIFRNUAorICAgIG15
ICRtdWw2Nz0mbXVsNjR4MjU2KAorICAgICAgICAieDEzIiwgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBBMAorICAgICAgICAieDIzIiwieDI0IiwieDI1IiwieDI2IiwgICAgICAgIyBCMC1CMwor
ICAgICAgICAieDQiLCJ4NSIsIng2IiwieDciLCJ4OCIsICAgICAgIyBDMC1DNAorICAgICAgICAi
eDEwIiwieDI3IiwieDI4Iik7ICAgICAgICAgICAgIyBUTVAKKyAgICBteSAkYm9keT08PF9fXzsK
KyAgICAuZ2xvYmFsICR7UFJFRklYfV9mcHJkYworICAgIC5hbGlnbiA0CisgICAgJHtQUkVGSVh9
X2ZwcmRjOgorICAgICAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtOTZdIQorICAgICAgICBh
ZGQgICAgIHgyOSwgc3AsIHh6cgorICAgICAgICBzdHAgICAgIHgxOSwgeDIwLCBbc3AsIzE2XQor
ICAgICAgICBzdHAgICAgIHgyMSwgeDIyLCBbc3AsIzMyXQorICAgICAgICBzdHAgICAgIHgyMywg
eDI0LCBbc3AsIzQ4XQorICAgICAgICBzdHAgICAgIHgyNSwgeDI2LCBbc3AsIzY0XQorICAgICAg
ICBzdHAgICAgIHgyNywgeDI4LCBbc3AsIzgwXQorCisgICAgICAgIGxkcCAgICAgeDIsIHgzLCBb
eDAsIzBdICAgICAgIC8vIGFbMC0xXQorCisgICAgICAgIC8vIExvYWQgdGhlIHByaW1lIGNvbnN0
YW50CisgICAgICAgIGFkcnAgICAgeDI2LCA6cGdfaGkyMTouTHA0MzRwMQorICAgICAgICBhZGQg
ICAgIHgyNiwgeDI2LCA6bG8xMjouTHA0MzRwMQorICAgICAgICBsZHAgICAgIHgyMywgeDI0LCBb
eDI2LCAjMHgwXQorICAgICAgICBsZHAgICAgIHgyNSwgeDI2LCBbeDI2LCMweDEwXQorCisgICAg
ICAgIC8vIGFbMC0xXSAqIHA0MzQrMQorICAgICAgICAkbXVsMDEKKworICAgICAgICBsZHAgICAg
IHgxMCwgeDExLCBbeDAsICMweDE4XQorICAgICAgICBsZHAgICAgIHgxMiwgeDEzLCBbeDAsICMw
eDI4XQorICAgICAgICBsZHAgICAgIHgxNCwgeDE1LCBbeDAsICMweDM4XQorICAgICAgICBsZHAg
ICAgIHgxNiwgeDE3LCBbeDAsICMweDQ4XQorICAgICAgICBsZHAgICAgIHgxOSwgeDIwLCBbeDAs
ICMweDU4XQorICAgICAgICBsZHIgICAgIHgyMSwgICAgICBbeDAsICMweDY4XQorCisgICAgICAg
IGFkZHMgICAgIHgxMCwgeDEwLCB4NAorICAgICAgICBhZGNzICAgICB4MTEsIHgxMSwgeDUKKyAg
ICAgICAgYWRjcyAgICAgeDEyLCB4MTIsIHg2CisgICAgICAgIGFkY3MgICAgIHgxMywgeDEzLCB4
NworICAgICAgICBhZGNzICAgICB4MTQsIHgxNCwgeDgKKyAgICAgICAgYWRjcyAgICAgeDE1LCB4
MTUsIHg5CisgICAgICAgIGFkY3MgICAgIHgyMiwgeDE2LCB4enIKKyAgICAgICAgYWRjcyAgICAg
eDE3LCB4MTcsIHh6cgorICAgICAgICBhZGNzICAgICB4MTksIHgxOSwgeHpyCisgICAgICAgIGFk
Y3MgICAgIHgyMCwgeDIwLCB4enIKKyAgICAgICAgYWRjICAgICAgeDIxLCB4MjEsIHh6cgorCisg
ICAgICAgIGxkciAgICAgIHgyLCAgW3gwLCMweDEwXSAgICAgICAvLyBhWzJdCisgICAgICAgIC8v
IGFbMi0zXSAqIHA0MzQrMQorICAgICAgICAkbXVsMjMKKworICAgICAgICBhZGRzICAgIHgxMiwg
eDEyLCB4NAorICAgICAgICBhZGNzICAgIHgxMywgeDEzLCB4NQorICAgICAgICBhZGNzICAgIHgx
NCwgeDE0LCB4NgorICAgICAgICBhZGNzICAgIHgxNSwgeDE1LCB4NworICAgICAgICBhZGNzICAg
IHgxNiwgeDIyLCB4OAorICAgICAgICBhZGNzICAgIHgxNywgeDE3LCB4OQorICAgICAgICBhZGNz
ICAgIHgyMiwgeDE5LCB4enIKKyAgICAgICAgYWRjcyAgICB4MjAsIHgyMCwgeHpyCisgICAgICAg
IGFkYyAgICAgeDIxLCB4MjEsIHh6cgorCisgICAgICAgICRtdWw0NQorICAgICAgICBhZGRzICAg
IHgxNCwgeDE0LCB4NAorICAgICAgICBhZGNzICAgIHgxNSwgeDE1LCB4NQorICAgICAgICBhZGNz
ICAgIHgxNiwgeDE2LCB4NgorICAgICAgICBhZGNzICAgIHgxNywgeDE3LCB4NworICAgICAgICBh
ZGNzICAgIHgxOSwgeDIyLCB4OAorICAgICAgICBhZGNzICAgIHgyMCwgeDIwLCB4OQorICAgICAg
ICBhZGMgICAgIHgyMiwgeDIxLCB4enIKKworICAgICAgICBzdHAgICAgIHgxNCwgeDE1LCBbeDEs
ICMweDBdICAgICAvLyBDMCwgQzEKKworICAgICAgICAkbXVsNjcKKyAgICAgICAgYWRkcyAgICB4
MTYsIHgxNiwgeDQKKyAgICAgICAgYWRjcyAgICB4MTcsIHgxNywgeDUKKyAgICAgICAgYWRjcyAg
ICB4MTksIHgxOSwgeDYKKyAgICAgICAgYWRjcyAgICB4MjAsIHgyMCwgeDcKKyAgICAgICAgYWRj
ICAgICB4MjEsIHgyMiwgeDgKKworICAgICAgICBzdHIgICAgIHgxNiwgICAgICAgW3gxLCAjMHgx
MF0KKyAgICAgICAgc3RwICAgICB4MTcsIHgxOSwgIFt4MSwgIzB4MThdCisgICAgICAgIHN0cCAg
ICAgeDIwLCB4MjEsICBbeDEsICMweDI4XQorCisgICAgICAgIGxkcCAgICAgeDE5LCB4MjAsIFt4
MjksIzE2XQorICAgICAgICBsZHAgICAgIHgyMSwgeDIyLCBbeDI5LCMzMl0KKyAgICAgICAgbGRw
ICAgICB4MjMsIHgyNCwgW3gyOSwjNDhdCisgICAgICAgIGxkcCAgICAgeDI1LCB4MjYsIFt4Mjks
IzY0XQorICAgICAgICBsZHAgICAgIHgyNywgeDI4LCBbeDI5LCM4MF0KKyAgICAgICAgbGRwICAg
ICB4MjksIHgzMCwgW3NwXSwjOTYKKyAgICAgICAgcmV0CitfX18KK30KKyRjb2RlLj0mcmRjKCk7
CisKKyMgIEZpZWxkIGFkZGl0aW9uCisjICBPcGVyYXRpb246IGMgW3gyXSA9IGEgW3gwXSArIGIg
W3gxXQorJGNvZGUuPTw8X19fOworICAgIC5nbG9iYWwgJHtQUkVGSVh9X2ZwYWRkCisgICAgLmFs
aWduIDQKKyAgICAke1BSRUZJWH1fZnBhZGQ6CisgICAgICAgIHN0cCAgICAgeDI5LHgzMCwgW3Nw
LCMtMTZdIQorICAgICAgICBhZGQgICAgIHgyOSwgc3AsICMwCisKKyAgICAgICAgbGRwICAgICB4
MywgeDQsICAgW3gwLCMwXQorICAgICAgICBsZHAgICAgIHg1LCB4NiwgICBbeDAsIzE2XQorICAg
ICAgICBsZHAgICAgIHg3LCB4OCwgICBbeDAsIzMyXQorICAgICAgICBsZHIgICAgIHg5LCAgICAg
ICBbeDAsIzQ4XQorICAgICAgICBsZHAgICAgIHgxMSwgeDEyLCBbeDEsIzBdCisgICAgICAgIGxk
cCAgICAgeDEzLCB4MTQsIFt4MSwjMTZdCisgICAgICAgIGxkcCAgICAgeDE1LCB4MTYsIFt4MSwj
MzJdCisgICAgICAgIGxkciAgICAgeDE3LCAgICAgIFt4MSwjNDhdCisKKyAgICAgICAgLy8gQWRk
IGEgKyBiCisgICAgICAgIGFkZHMgICAgeDMsIHgzLCB4MTEKKyAgICAgICAgYWRjcyAgICB4NCwg
eDQsIHgxMgorICAgICAgICBhZGNzICAgIHg1LCB4NSwgeDEzCisgICAgICAgIGFkY3MgICAgeDYs
IHg2LCB4MTQKKyAgICAgICAgYWRjcyAgICB4NywgeDcsIHgxNQorICAgICAgICBhZGNzICAgIHg4
LCB4OCwgeDE2CisgICAgICAgIGFkYyAgICAgeDksIHg5LCB4MTcKKworICAgICAgICAvLyAgU3Vi
dHJhY3QgMnhwNDM0CisgICAgICAgIGFkcnAgICAgeDE3LCA6cGdfaGkyMTouTHA0MzR4MgorICAg
ICAgICBhZGQgICAgIHgxNywgeDE3LCA6bG8xMjouTHA0MzR4MgorICAgICAgICBsZHAgICAgIHgx
MSwgeDEyLCBbeDE3LCAjMF0KKyAgICAgICAgbGRwICAgICB4MTMsIHgxNCwgW3gxNywgIzE2XQor
ICAgICAgICBsZHAgICAgIHgxNSwgeDE2LCBbeDE3LCAjMzJdCisgICAgICAgIHN1YnMgICAgeDMs
IHgzLCB4MTEKKyAgICAgICAgc2JjcyAgICB4NCwgeDQsIHgxMgorICAgICAgICBzYmNzICAgIHg1
LCB4NSwgeDEyCisgICAgICAgIHNiY3MgICAgeDYsIHg2LCB4MTMKKyAgICAgICAgc2JjcyAgICB4
NywgeDcsIHgxNAorICAgICAgICBzYmNzICAgIHg4LCB4OCwgeDE1CisgICAgICAgIHNiY3MgICAg
eDksIHg5LCB4MTYKKyAgICAgICAgc2JjICAgICB4MCwgeHpyLCB4enIgICAgLy8geDAgY2FuIGJl
IHJldXNlZCBub3cKKworICAgICAgICAvLyBBZGQgMnhwNDM0IGFuZGVkIHdpdGggdGhlIG1hc2sg
aW4geDAKKyAgICAgICAgYW5kICAgICB4MTEsIHgxMSwgeDAKKyAgICAgICAgYW5kICAgICB4MTIs
IHgxMiwgeDAKKyAgICAgICAgYW5kICAgICB4MTMsIHgxMywgeDAKKyAgICAgICAgYW5kICAgICB4
MTQsIHgxNCwgeDAKKyAgICAgICAgYW5kICAgICB4MTUsIHgxNSwgeDAKKyAgICAgICAgYW5kICAg
ICB4MTYsIHgxNiwgeDAKKworICAgICAgICBhZGRzICAgIHgzLCB4MywgeDExCisgICAgICAgIGFk
Y3MgICAgeDQsIHg0LCB4MTIKKyAgICAgICAgYWRjcyAgICB4NSwgeDUsIHgxMgorICAgICAgICBh
ZGNzICAgIHg2LCB4NiwgeDEzCisgICAgICAgIGFkY3MgICAgeDcsIHg3LCB4MTQKKyAgICAgICAg
YWRjcyAgICB4OCwgeDgsIHgxNQorICAgICAgICBhZGMgICAgIHg5LCB4OSwgeDE2CisKKyAgICAg
ICAgc3RwICAgICB4MywgeDQsICBbeDIsIzBdCisgICAgICAgIHN0cCAgICAgeDUsIHg2LCAgW3gy
LCMxNl0KKyAgICAgICAgc3RwICAgICB4NywgeDgsICBbeDIsIzMyXQorICAgICAgICBzdHIgICAg
IHg5LCAgICAgIFt4MiwjNDhdCisKKyAgICAgICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwjMTYK
KyAgICAgICAgcmV0CitfX18KKworIyAgRmllbGQgc3VidHJhY3Rpb24KKyMgIE9wZXJhdGlvbjog
YyBbeDJdID0gYSBbeDBdIC0gYiBbeDFdCiskY29kZS49PDxfX187CisgICAgLmdsb2JhbCAke1BS
RUZJWH1fZnBzdWIKKyAgICAuYWxpZ24gNAorICAgICR7UFJFRklYfV9mcHN1YjoKKyAgICAgICAg
c3RwICAgICB4MjksIHgzMCwgW3NwLCMtMTZdIQorICAgICAgICBhZGQgICAgIHgyOSwgc3AsICMw
CisKKyAgICAgICAgbGRwICAgICB4MywgeDQsICAgW3gwLCMwXQorICAgICAgICBsZHAgICAgIHg1
LCB4NiwgICBbeDAsIzE2XQorICAgICAgICBsZHAgICAgIHg3LCB4OCwgICBbeDAsIzMyXQorICAg
ICAgICBsZHIgICAgIHg5LCAgICAgICBbeDAsIzQ4XQorICAgICAgICBsZHAgICAgIHgxMSwgeDEy
LCBbeDEsIzBdCisgICAgICAgIGxkcCAgICAgeDEzLCB4MTQsIFt4MSwjMTZdCisgICAgICAgIGxk
cCAgICAgeDE1LCB4MTYsIFt4MSwjMzJdCisgICAgICAgIGxkciAgICAgeDE3LCAgICAgIFt4MSwj
NDhdCisKKyAgICAgICAgLy8gU3VidHJhY3QgYSAtIGIKKyAgICAgICAgc3VicyAgICB4MywgeDMs
IHgxMQorICAgICAgICBzYmNzICAgIHg0LCB4NCwgeDEyCisgICAgICAgIHNiY3MgICAgeDUsIHg1
LCB4MTMKKyAgICAgICAgc2JjcyAgICB4NiwgeDYsIHgxNAorICAgICAgICBzYmNzICAgIHg3LCB4
NywgeDE1CisgICAgICAgIHNiY3MgICAgeDgsIHg4LCB4MTYKKyAgICAgICAgc2JjcyAgICB4OSwg
eDksIHgxNworICAgICAgICBzYmMgICAgIHgwLCB4enIsIHh6cgorCisgICAgICAgIC8vIEFkZCAy
eHA0MzQgYW5kZWQgd2l0aCB0aGUgbWFzayBpbiB4MAorICAgICAgICBhZHJwICAgIHgxNywgOnBn
X2hpMjE6LkxwNDM0eDIKKyAgICAgICAgYWRkICAgICB4MTcsIHgxNywgOmxvMTI6LkxwNDM0eDIK
KworICAgICAgICAvLyBGaXJzdCBoYWxmCisgICAgICAgIGxkcCAgICAgeDExLCB4MTIsIFt4MTcs
ICMwXQorICAgICAgICBsZHAgICAgIHgxMywgeDE0LCBbeDE3LCAjMTZdCisgICAgICAgIGxkcCAg
ICAgeDE1LCB4MTYsIFt4MTcsICMzMl0KKworICAgICAgICAvLyBBZGQgMnhwNDM0IGFuZGVkIHdp
dGggdGhlIG1hc2sgaW4geDAKKyAgICAgICAgYW5kICAgICB4MTEsIHgxMSwgeDAKKyAgICAgICAg
YW5kICAgICB4MTIsIHgxMiwgeDAKKyAgICAgICAgYW5kICAgICB4MTMsIHgxMywgeDAKKyAgICAg
ICAgYW5kICAgICB4MTQsIHgxNCwgeDAKKyAgICAgICAgYW5kICAgICB4MTUsIHgxNSwgeDAKKyAg
ICAgICAgYW5kICAgICB4MTYsIHgxNiwgeDAKKworICAgICAgICBhZGRzICAgIHgzLCB4MywgeDEx
CisgICAgICAgIGFkY3MgICAgeDQsIHg0LCB4MTIKKyAgICAgICAgYWRjcyAgICB4NSwgeDUsIHgx
MgorICAgICAgICBhZGNzICAgIHg2LCB4NiwgeDEzCisgICAgICAgIGFkY3MgICAgeDcsIHg3LCB4
MTQKKyAgICAgICAgYWRjcyAgICB4OCwgeDgsIHgxNQorICAgICAgICBhZGMgICAgIHg5LCB4OSwg
eDE2CisKKyAgICAgICAgc3RwICAgICB4MywgeDQsICBbeDIsIzBdCisgICAgICAgIHN0cCAgICAg
eDUsIHg2LCAgW3gyLCMxNl0KKyAgICAgICAgc3RwICAgICB4NywgeDgsICBbeDIsIzMyXQorICAg
ICAgICBzdHIgICAgIHg5LCAgICAgIFt4MiwjNDhdCisKKyAgICAgICAgbGRwICAgICB4MjksIHgz
MCwgW3NwXSwjMTYKKyAgICAgICAgcmV0CitfX18KKworIyA0MzQtYml0IG11bHRpcHJlY2lzaW9u
IGFkZGl0aW9uCisjIE9wZXJhdGlvbjogYyBbeDJdID0gYSBbeDBdICsgYiBbeDFdCiskY29kZS49
PDxfX187CisgICAgLmdsb2JhbCAke1BSRUZJWH1fbXBhZGRfYXNtCisgICAgLmFsaWduIDQKKyAg
ICAke1BSRUZJWH1fbXBhZGRfYXNtOgorICAgICAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsIy0x
Nl0hCisgICAgICAgIGFkZCAgICAgeDI5LCBzcCwgIzAKKworICAgICAgICBsZHAgICAgIHgzLCB4
NCwgICBbeDAsIzBdCisgICAgICAgIGxkcCAgICAgeDUsIHg2LCAgIFt4MCwjMTZdCisgICAgICAg
IGxkcCAgICAgeDcsIHg4LCAgIFt4MCwjMzJdCisgICAgICAgIGxkciAgICAgeDksICAgICAgIFt4
MCwjNDhdCisgICAgICAgIGxkcCAgICAgeDExLCB4MTIsIFt4MSwjMF0KKyAgICAgICAgbGRwICAg
ICB4MTMsIHgxNCwgW3gxLCMxNl0KKyAgICAgICAgbGRwICAgICB4MTUsIHgxNiwgW3gxLCMzMl0K
KyAgICAgICAgbGRyICAgICB4MTcsICAgICAgW3gxLCM0OF0KKworICAgICAgICBhZGRzICAgIHgz
LCB4MywgeDExCisgICAgICAgIGFkY3MgICAgeDQsIHg0LCB4MTIKKyAgICAgICAgYWRjcyAgICB4
NSwgeDUsIHgxMworICAgICAgICBhZGNzICAgIHg2LCB4NiwgeDE0CisgICAgICAgIGFkY3MgICAg
eDcsIHg3LCB4MTUKKyAgICAgICAgYWRjcyAgICB4OCwgeDgsIHgxNgorICAgICAgICBhZGMgICAg
IHg5LCB4OSwgeDE3CisKKyAgICAgICAgc3RwICAgICB4MywgeDQsICAgW3gyLCMwXQorICAgICAg
ICBzdHAgICAgIHg1LCB4NiwgICBbeDIsIzE2XQorICAgICAgICBzdHAgICAgIHg3LCB4OCwgICBb
eDIsIzMyXQorICAgICAgICBzdHIgICAgIHg5LCAgICAgICBbeDIsIzQ4XQorCisgICAgICAgIGxk
cCAgICAgeDI5LCB4MzAsIFtzcF0sIzE2CisgICAgICAgIHJldAorX19fCisKKyMgMng0MzQtYml0
IG11bHRpcHJlY2lzaW9uIHN1YnRyYWN0aW9uCisjIE9wZXJhdGlvbjogYyBbeDJdID0gYSBbeDBd
IC0gYiBbeDFdLgorIyBSZXR1cm5zIGJvcnJvdyBtYXNrCiskY29kZS49PDxfX187CisgICAgLmds
b2JhbCAke1BSRUZJWH1fbXBzdWJ4Ml9hc20KKyAgICAuYWxpZ24gNAorICAgICR7UFJFRklYfV9t
cHN1YngyX2FzbToKKyAgICAgICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCMtMTZdIQorICAgICAg
ICBhZGQgICAgIHgyOSwgc3AsICMwCisKKyAgICAgICAgbGRwICAgICB4MywgeDQsICAgW3gwLCMw
XQorICAgICAgICBsZHAgICAgIHg1LCB4NiwgICBbeDAsIzE2XQorICAgICAgICBsZHAgICAgIHgx
MSwgeDEyLCBbeDEsIzBdCisgICAgICAgIGxkcCAgICAgeDEzLCB4MTQsIFt4MSwjMTZdCisgICAg
ICAgIHN1YnMgICAgeDMsIHgzLCB4MTEKKyAgICAgICAgc2JjcyAgICB4NCwgeDQsIHgxMgorICAg
ICAgICBzYmNzICAgIHg1LCB4NSwgeDEzCisgICAgICAgIHNiY3MgICAgeDYsIHg2LCB4MTQKKyAg
ICAgICAgbGRwICAgICB4NywgeDgsICAgW3gwLCMzMl0KKyAgICAgICAgbGRwICAgICB4OSwgeDEw
LCAgW3gwLCM0OF0KKyAgICAgICAgbGRwICAgICB4MTEsIHgxMiwgW3gxLCMzMl0KKyAgICAgICAg
bGRwICAgICB4MTMsIHgxNCwgW3gxLCM0OF0KKyAgICAgICAgc2JjcyAgICB4NywgeDcsIHgxMQor
ICAgICAgICBzYmNzICAgIHg4LCB4OCwgeDEyCisgICAgICAgIHNiY3MgICAgeDksIHg5LCB4MTMK
KyAgICAgICAgc2JjcyAgICB4MTAsIHgxMCwgeDE0CisKKyAgICAgICAgc3RwICAgICB4MywgeDQs
ICAgW3gyLCMwXQorICAgICAgICBzdHAgICAgIHg1LCB4NiwgICBbeDIsIzE2XQorICAgICAgICBz
dHAgICAgIHg3LCB4OCwgICBbeDIsIzMyXQorICAgICAgICBzdHAgICAgIHg5LCB4MTAsICBbeDIs
IzQ4XQorCisgICAgICAgIGxkcCAgICAgeDMsIHg0LCAgIFt4MCwjNjRdCisgICAgICAgIGxkcCAg
ICAgeDUsIHg2LCAgIFt4MCwjODBdCisgICAgICAgIGxkcCAgICAgeDExLCB4MTIsIFt4MSwjNjRd
CisgICAgICAgIGxkcCAgICAgeDEzLCB4MTQsIFt4MSwjODBdCisgICAgICAgIHNiY3MgICAgeDMs
IHgzLCB4MTEKKyAgICAgICAgc2JjcyAgICB4NCwgeDQsIHgxMgorICAgICAgICBzYmNzICAgIHg1
LCB4NSwgeDEzCisgICAgICAgIHNiY3MgICAgeDYsIHg2LCB4MTQKKyAgICAgICAgbGRwICAgICB4
NywgeDgsICAgW3gwLCM5Nl0KKyAgICAgICAgbGRwICAgICB4MTEsIHgxMiwgW3gxLCM5Nl0KKyAg
ICAgICAgc2JjcyAgICB4NywgeDcsIHgxMQorICAgICAgICBzYmNzICAgIHg4LCB4OCwgeDEyCisg
ICAgICAgIHNiYyAgICAgeDAsIHh6ciwgeHpyCisKKyAgICAgICAgc3RwICAgICB4MywgeDQsICAg
W3gyLCM2NF0KKyAgICAgICAgc3RwICAgICB4NSwgeDYsICAgW3gyLCM4MF0KKyAgICAgICAgc3Rw
ICAgICB4NywgeDgsICAgW3gyLCM5Nl0KKworICAgICAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3Bd
LCMxNgorICAgICAgICByZXQKK19fXworCisKKyMgRG91YmxlIDJ4NDM0LWJpdCBtdWx0aXByZWNp
c2lvbiBzdWJ0cmFjdGlvbgorIyBPcGVyYXRpb246IGMgW3gyXSA9IGMgW3gyXSAtIGEgW3gwXSAt
IGIgW3gxXQorJGNvZGUuPTw8X19fOworICAgIC5nbG9iYWwgJHtQUkVGSVh9X21wZGJsc3VieDJf
YXNtCisgICAgLmFsaWduIDQKKyAgICAke1BSRUZJWH1fbXBkYmxzdWJ4Ml9hc206CisgICAgICAg
IHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCisgICAgICAgIGFkZCAgICAgeDI5LCBzcCwg
IzAKKworICAgICAgICBsZHAgICAgIHgzLCB4NCwgICBbeDIsICMwXQorICAgICAgICBsZHAgICAg
IHg1LCB4NiwgICBbeDIsIzE2XQorICAgICAgICBsZHAgICAgIHg3LCB4OCwgICBbeDIsIzMyXQor
CisgICAgICAgIGxkcCAgICAgeDExLCB4MTIsIFt4MCwgIzBdCisgICAgICAgIGxkcCAgICAgeDEz
LCB4MTQsIFt4MCwjMTZdCisgICAgICAgIGxkcCAgICAgeDE1LCB4MTYsIFt4MCwjMzJdCisKKyAg
ICAgICAgc3VicyAgICB4MywgeDMsIHgxMQorICAgICAgICBzYmNzICAgIHg0LCB4NCwgeDEyCisg
ICAgICAgIHNiY3MgICAgeDUsIHg1LCB4MTMKKyAgICAgICAgc2JjcyAgICB4NiwgeDYsIHgxNAor
ICAgICAgICBzYmNzICAgIHg3LCB4NywgeDE1CisgICAgICAgIHNiY3MgICAgeDgsIHg4LCB4MTYK
KworICAgICAgICAvLyB4OSBzdG9yZXMgY2FycnkKKyAgICAgICAgYWRjICAgICB4OSwgeHpyLCB4
enIKKworICAgICAgICBsZHAgICAgIHgxMSwgeDEyLCBbeDEsICMwXQorICAgICAgICBsZHAgICAg
IHgxMywgeDE0LCBbeDEsIzE2XQorICAgICAgICBsZHAgICAgIHgxNSwgeDE2LCBbeDEsIzMyXQor
ICAgICAgICBzdWJzICAgIHgzLCB4MywgeDExCisgICAgICAgIHNiY3MgICAgeDQsIHg0LCB4MTIK
KyAgICAgICAgc2JjcyAgICB4NSwgeDUsIHgxMworICAgICAgICBzYmNzICAgIHg2LCB4NiwgeDE0
CisgICAgICAgIHNiY3MgICAgeDcsIHg3LCB4MTUKKyAgICAgICAgc2JjcyAgICB4OCwgeDgsIHgx
NgorICAgICAgICBhZGMgICAgIHg5LCB4OSwgeHpyCisKKyAgICAgICAgc3RwICAgICB4MywgeDQs
ICAgW3gyLCAjMF0KKyAgICAgICAgc3RwICAgICB4NSwgeDYsICAgW3gyLCMxNl0KKyAgICAgICAg
c3RwICAgICB4NywgeDgsICAgW3gyLCMzMl0KKworICAgICAgICBsZHAgICAgIHgzLCB4NCwgICBb
eDIsIzQ4XQorICAgICAgICBsZHAgICAgIHg1LCB4NiwgICBbeDIsIzY0XQorICAgICAgICBsZHAg
ICAgIHg3LCB4OCwgICBbeDIsIzgwXQorCisgICAgICAgIGxkcCAgICAgeDExLCB4MTIsIFt4MCwj
NDhdCisgICAgICAgIGxkcCAgICAgeDEzLCB4MTQsIFt4MCwjNjRdCisgICAgICAgIGxkcCAgICAg
eDE1LCB4MTYsIFt4MCwjODBdCisKKyAgICAgICAgLy8geDkgPSAyIC0geDkKKyAgICAgICAgbmVn
ICAgICB4OSwgeDkKKyAgICAgICAgYWRkICAgICB4OSwgeDksICMyCisKKyAgICAgICAgc3VicyAg
ICB4MywgeDMsIHg5CisgICAgICAgIHNiY3MgICAgeDMsIHgzLCB4MTEKKyAgICAgICAgc2JjcyAg
ICB4NCwgeDQsIHgxMgorICAgICAgICBzYmNzICAgIHg1LCB4NSwgeDEzCisgICAgICAgIHNiY3Mg
ICAgeDYsIHg2LCB4MTQKKyAgICAgICAgc2JjcyAgICB4NywgeDcsIHgxNQorICAgICAgICBzYmNz
ICAgIHg4LCB4OCwgeDE2CisgICAgICAgIGFkYyAgICAgeDksIHh6ciwgeHpyCisKKyAgICAgICAg
bGRwICAgICB4MTEsIHgxMiwgW3gxLCM0OF0KKyAgICAgICAgbGRwICAgICB4MTMsIHgxNCwgW3gx
LCM2NF0KKyAgICAgICAgbGRwICAgICB4MTUsIHgxNiwgW3gxLCM4MF0KKyAgICAgICAgc3VicyAg
ICB4MywgeDMsIHgxMQorICAgICAgICBzYmNzICAgIHg0LCB4NCwgeDEyCisgICAgICAgIHNiY3Mg
ICAgeDUsIHg1LCB4MTMKKyAgICAgICAgc2JjcyAgICB4NiwgeDYsIHgxNAorICAgICAgICBzYmNz
ICAgIHg3LCB4NywgeDE1CisgICAgICAgIHNiY3MgICAgeDgsIHg4LCB4MTYKKyAgICAgICAgYWRj
ICAgICB4OSwgeDksIHh6cgorCisgICAgICAgIHN0cCAgICAgeDMsIHg0LCAgIFt4MiwjNDhdCisg
ICAgICAgIHN0cCAgICAgeDUsIHg2LCAgIFt4MiwjNjRdCisgICAgICAgIHN0cCAgICAgeDcsIHg4
LCAgIFt4MiwjODBdCisKKyAgICAgICAgbGRwICAgICAgeDMsICB4NCwgW3gyLCM5Nl0KKyAgICAg
ICAgbGRwICAgICB4MTEsIHgxMiwgW3gwLCM5Nl0KKyAgICAgICAgbGRwICAgICB4MTMsIHgxNCwg
W3gxLCM5Nl0KKworICAgICAgICAvLyB4OSA9IDIgLSB4OQorICAgICAgICBuZWcgICAgIHg5LCB4
OQorICAgICAgICBhZGQgICAgIHg5LCB4OSwgIzIKKworICAgICAgICBzdWJzICAgIHgzLCB4Mywg
eDkKKyAgICAgICAgc2JjcyAgICB4MywgeDMsIHgxMQorICAgICAgICBzYmNzICAgIHg0LCB4NCwg
eDEyCisgICAgICAgIHN1YnMgICAgeDMsIHgzLCB4MTMKKyAgICAgICAgc2JjICAgICB4NCwgeDQs
IHgxNAorICAgICAgICBzdHAgICAgIHgzLCB4NCwgICBbeDIsIzk2XQorCisgICAgICAgIGxkcCAg
ICAgeDI5LCB4MzAsIFtzcF0sIzE2CisgICAgICAgIHJldAorX19fCisKK2ZvcmVhY2ggKHNwbGl0
KCJcbiIsJGNvZGUpKSB7CisgIHMvXGAoW15cYF0qKVxgL2V2YWwoJDEpL2dlOworICBwcmludCAk
XywiXG4iOworfQorCitjbG9zZSBTVERPVVQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkv
c2lrZS9hc20vZnAteDg2XzY0LnBsIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2UvYXNtL2ZwLXg4Nl82
NC5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZmZkZTFhODIxZWMxODNjZjJkZTU1MWFlYjE3M2EwMGViZDM0OGE3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2UvYXNtL2ZwLXg4Nl82NC5w
bApAQCAtMCwwICsxLDE2MjYgQEAKKyMhIC91c3IvYmluL2VudiBwZXJsCisjCisjIEFwcmlsIDIw
MTkKKyMKKyMgQWJzdHJhY3Q6IGZpZWxkIGFyaXRobWV0aWMgaW4geDY0IGFzc2VtYmx5IGZvciBT
SURIL3A0MzQKKworJGZsYXZvdXIgPSBzaGlmdDsKKyRvdXRwdXQgID0gc2hpZnQ7CitpZiAoJGZs
YXZvdXIgPX4gL1wuLykgeyAkb3V0cHV0ID0gJGZsYXZvdXI7IHVuZGVmICRmbGF2b3VyOyB9CisK
KyQwID1+IG0vKC4qW1wvXFxdKVteXC9cXF0rJC87ICRkaXI9JDE7CisoICR4bGF0ZT0iJHtkaXJ9
eDg2XzY0LXhsYXRlLnBsIiBhbmQgLWYgJHhsYXRlICkgb3IKKyggJHhsYXRlPSIke2Rpcn0uLi8u
Li8uLi9jcnlwdG8vcGVybGFzbS94ODZfNjQteGxhdGUucGwiIGFuZCAtZiAkeGxhdGUpIG9yCitk
aWUgImNhbid0IGxvY2F0ZSB4ODZfNjQteGxhdGUucGwiOworCitvcGVuIE9VVCwifCBcIiReWFwi
IFwiJHhsYXRlXCIgJGZsYXZvdXIgXCIkb3V0cHV0XCIiOworKlNURE9VVD0qT1VUOworCiskUFJF
RklYPSJzaWtlIjsKKyRibWkyX2FkeCA9IDE7CisKKyRjb2RlLj08PF9fXzsKKy50ZXh0CisKKyMg
cDQzNCB4IDIKKy5McDQzNHgyOgorLnF1YWQgICAweEZGRkZGRkZGRkZGRkZGRkUKKy5xdWFkICAg
MHhGRkZGRkZGRkZGRkZGRkZGCisucXVhZCAgIDB4RkI4MkVDRjVDNUZGRkZGRgorLnF1YWQgICAw
eEY3OENCOEYwNjJCMTVENDcKKy5xdWFkICAgMHhEOUY4QkZBRDAzOEE0MEFDCisucXVhZCAgIDB4
MDAwNDY4M0U0RTJFRTY4OAorCisjIHA0MzQgKyAxCisuTHA0MzRwMToKKy5xdWFkICAgMHhGREMx
NzY3QUUzMDAwMDAwCisucXVhZCAgIDB4N0JDNjVDNzgzMTU4QUVBMworLnF1YWQgICAweDZDRkM1
RkQ2ODFDNTIwNTYKKy5xdWFkICAgMHgwMDAyMzQxRjI3MTc3MzQ0CisKKy5leHRlcm4gT1BFTlNT
TF9pYTMyY2FwX1AKKy5oaWRkZW4gT1BFTlNTTF9pYTMyY2FwX1AKK19fXworCisjIEp1bXAgdG8g
YWx0ZXJuYXRpdmUgaW1wbGVtZW5hdGF0aW9uIHByb3ZpZGVkIGFzIGFuCisjIGFyZ3VtZW50IGlu
IGNhc2UgQ1BVIHN1cHBvcnRzIEFET1gvQURDWCBhbmQgTVVMWCBpbnN0cnVjdGlvbnMuCitzdWIg
YWx0X2ltcGwgeworICAkam1wX2Z1bmMgPSBzaGlmdDsKKworICAkYm9keT08PF9fXzsKKyAgbGVh
IE9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCAlcmN4CisgIG1vdiA4KCVyY3gpLCAlcmN4CisgIGFu
ZCBcJDB4ODAxMDAsICVlY3gKKyAgY21wIFwkMHg4MDEwMCwgJWVjeAorICBqZSAgJGptcF9mdW5j
CisKK19fXworICByZXR1cm4gJGJvZHkKK30KKworIyBQZXJmb3JtcyBzY2hvb2xib29rIG11bHRp
cGxpY2F0aW9uIG9mIDIgMTkyLWJpdCBudW1iZXJzLiBVc2VzCisjIE1VTFggaW5zdHJ1Y3Rpb24u
IFJlc3VsdCBpcyBzdG9yZWQgaW4gMTkyIGJpdHMgcG9pbnRlZCBieSAkRFNULgorc3ViIG11bDE5
MiB7CisgIG15ICgkaWR4TTAsJE0wLCRpZHhNMSwkTTEsJGlkeERTVCwkRFNULCRUMCwkVDEsJFQy
LCRUMywkVDQsJFQ1LCRUNik9QF87CisgIG15ICgkTUwwLCRNTDgsJE1MMTYpPW1hcCgiJGlkeE0w
KyRfKCRNMCkiLCgwLDgsMTYpKTsKKyAgbXkgKCRNUjAsJE1SOCwkTVIxNik9bWFwKCIkaWR4TTEr
JF8oJE0xKSIsKDAsOCwxNikpOworICBteSAoJEQwLCREMSwkRDIsJEQzLCRENCwkRDUpPW1hcCgi
JGlkeERTVCskXygkRFNUKSIsKDAsOCwxNiwyNCwzMiw0MCkpOworCisgICRib2R5PTw8X19fOwor
ICBtb3YgICAgJE1MMCwgJXJkeAorICBtdWx4ICAgJE1SMCwgJFQxLCAkVDAgICAjIFQwOlQxID0g
QTAqQjAKKyAgbW92ICAgICRUMSwgJEQwICAgICAgICAgIyBEU1QwCisgIG11bHggICAkTVI4LCAk
VDIsICRUMSAgICMgVDE6VDIgPSBBMCpCMQorICB4b3IgICAgJXJheCwgJXJheAorICBhZG94ICAg
JFQyLCAkVDAKKyAgbXVseCAgICRNUjE2LCRUMywgJFQyICAgIyBUMjpUMyA9IEEwKkIyCisgIGFk
b3ggICAkVDMsICRUMQorCisgIG1vdiAgICAkTUw4LCAlcmR4CisgIG11bHggICAkTVIwLCAkVDQs
ICRUMyAgICMgVDM6VDQgPSBBMSpCMAorICBhZG94ICAgJXJheCwgJFQyCisgIHhvciAgICAlcmF4
LCAlcmF4CisKKyAgbXVseCAgICRNUjgsICRUNiwgJFQ1ICAgIyBUNjpUNyA9IEExKkIxCisgIGFk
b3ggICAkVDAsICRUNAorICBtb3YgICAgJFQ0LCAkRDEgICAgICAgICAjIERTVDEKKyAgYWRjeCAg
ICRUNiwgJFQzCisKKyAgbXVseCAgICRNUjE2LCRUMCwgJFQ2ICAgIyBUNjpUMCA9IEExKkIyCisg
IGFkb3ggICAkVDEsICRUMworICBhZGN4ICAgJFQwLCAkVDUKKyAgYWRjeCAgICVyYXgsICRUNgor
ICBhZG94ICAgJFQyLCAkVDUKKworICBtb3YgICAgJE1MMTYsJXJkeAorICBtdWx4ICAgJE1SMCwg
JFQwLCAkVDEgICAjIFQxOlQwID0gQTIqQjAKKyAgYWRveCAgICVyYXgsICRUNgorICB4b3IgICAg
JXJheCwgJXJheAorCisgIG11bHggICAkTVI4LCAkVDIsICRUNCAgICMgVDQ6VDIgPSBBMipCMQor
ICBhZG94ICAgJFQzLCAkVDAKKyAgbW92ICAgICRUMCwgJEQyICAgICAgICAgIyBEU1QyCisgIGFk
Y3ggICAkVDUsICRUMQorCisgIG11bHggICAkTVIxNiwkVDMsICRUMCAgICMgVDA6VDMgPSBBMipC
MgorICBhZGN4ICAgJFQ2LCAkVDQKKyAgYWRjeCAgICVyYXgsICRUMAorICBhZG94ICAgJFQyLCAk
VDEKKyAgYWRveCAgICRUNCwgJFQzCisgIGFkb3ggICAlcmF4LCAkVDAKKyAgbW92ICAgICRUMSwg
JEQzICAgICAgICAgICMgRFNUMworICBtb3YgICAgJFQzLCAkRDQgICAgICAgICAgIyBEU1Q0Cisg
IG1vdiAgICAkVDAsICRENSAgICAgICAgICAjIERTVDUKKworX19fCisgIHJldHVybiAkYm9keTsK
K30KKworIyBQZXJmb3JtcyBzY2hvb2xib29rIG11bHRpcGxpY2F0aW9uIG9mIDIgMjU2LWJpdCBu
dW1iZXJzLiBVc2VzCisjIE1VTFggaW5zdHJ1Y3Rpb24uIFJlc3VsdCBpcyBzdG9yZWQgaW4gMjU2
IGJpdHMgcG9pbnRlZCBieSAkRFNULgorc3ViIG11bDI1NiB7CisgIG15ICgkaWR4TTAsJE0wLCRp
ZHhNMSwkTTEsJGlkeERTVCwkRFNULCRUMCwkVDEsJFQyLCRUMywkVDQsJFQ1LCRUNiwkVDcsJFQ4
LCRUOSk9QF87CisgIG15ICgkTUwwLCRNTDgsJE1MMTYsJE1MMjQpPW1hcCgiJGlkeE0wKyRfKCRN
MCkiLCgwLDgsMTYsMjQpKTsKKyAgbXkgKCRNUjAsJE1SOCwkTVIxNiwkTVIyNCk9bWFwKCIkaWR4
TTErJF8oJE0xKSIsKDAsOCwxNiwyNCkpOworICBteSAoJEQwLCREMSwkRDIsJEQzLCRENCwkRDUs
JEQ2LCRENyk9bWFwKCIkaWR4RFNUKyRfKCREU1QpIiwoMCw4LDE2LDI0LDMyLDQwLDQ4LDU2KSk7
CisKKyAgJGJvZHk9PDxfX187CisgIG1vdiAgICAkTUwwLCAlcmR4CisgIG11bHggICAkTVIwLCAk
VDEsICRUMCAgICMgVDA6VDEgPSBBMCpCMAorICBtb3YgICAgJFQxLCAkRDAgICAgICAgICAjIERT
VDBfZmluYWwKKyAgbXVseCAgICRNUjgsICRUMiwgJFQxICAgIyBUMTpUMiA9IEEwKkIxCisgIHhv
ciAgICAlcmF4LCAlcmF4CisgIGFkb3ggICAkVDIsICRUMAorICBtdWx4ICAgJE1SMTYsJFQzLCAk
VDIgICAjIFQyOlQzID0gQTAqQjIKKyAgYWRveCAgICRUMywgJFQxCisgIG11bHggICAkTVIyNCwk
VDQsICRUMyAgICMgVDM6VDQgPSBBMCpCMworICBhZG94ICAgJFQ0LCAkVDIKKworICBtb3YgICAg
JE1MOCwgJXJkeAorICBtdWx4ICAgJE1SMCwgJFQ0LCAkVDUgICAjIFQ1OlQ0ID0gQTEqQjAKKyAg
YWRveCAgICVyYXgsICRUMworICB4b3IgICAgJXJheCwgJXJheAorICBtdWx4ICAgJE1SOCwgJFQ3
LCAkVDYgICAjIFQ2OlQ3ID0gQTEqQjEKKyAgYWRveCAgICRUMCwgJFQ0CisgIG1vdiAgICAkVDQs
ICREMSAgICAgICAgICMgRFNUMV9maW5hbAorICBhZGN4ICAgJFQ3LCAkVDUKKyAgbXVseCAgICRN
UjE2LCRUOCwgJFQ3ICAgIyBUNzpUOCA9IEExKkIyCisgIGFkY3ggICAkVDgsICRUNgorICBhZG94
ICAgJFQxLCAkVDUKKyAgbXVseCAgICRNUjI0LCRUOSwgJFQ4ICAgIyBUODpUOSA9IEExKkIzCisg
IGFkY3ggICAkVDksICRUNworICBhZGN4ICAgJXJheCwgJFQ4CisgIGFkb3ggICAkVDIsICRUNgor
CisgIG1vdiAgICAkTUwxNiwlcmR4CisgIG11bHggICAkTVIwLCAkVDAsICRUMSAgICMgVDE6VDAg
PSBBMipCMAorICBhZG94ICAgJFQzLCAkVDcKKyAgYWRveCAgICVyYXgsICRUOAorICB4b3IgICAg
JXJheCwgJXJheAorICBtdWx4ICAgJE1SOCwgJFQzLCAkVDIgICAjIFQyOlQzID0gQTIqQjEKKyAg
YWRveCAgICRUNSwgJFQwCisgIG1vdiAgICAkVDAsICREMiAgICAgICAgICMgRFNUMl9maW5hbAor
ICBhZGN4ICAgJFQzLCAkVDEKKyAgbXVseCAgICRNUjE2LCRUNCwgJFQzICAgIyBUMzpUNCA9IEEy
KkIyCisgIGFkY3ggICAkVDQsICRUMgorICBhZG94ICAgJFQ2LCAkVDEKKyAgbXVseCAgICRNUjI0
LCRUOSwgJFQ0ICAgIyBUMzpUNCA9IEEyKkIzCisgIGFkY3ggICAkVDksICRUMworICBhZGN4ICAg
JXJheCwgJFQ0CisKKyAgYWRveCAgICRUNywgJFQyCisgIGFkb3ggICAkVDgsICRUMworICBhZG94
ICAgJXJheCwgJFQ0CisKKyAgbW92ICAgICRNTDI0LCVyZHgKKyAgbXVseCAgICRNUjAsICAkVDAs
ICRUNSAgICMgVDU6VDAgPSBBMypCMAorICB4b3IgICAgJXJheCwgICVyYXgKKyAgbXVseCAgICRN
UjgsICAkVDcsICRUNiAgICMgVDY6VDcgPSBBMypCMQorICBhZGN4ICAgJFQ3LCAgJFQ1CisgIGFk
b3ggICAkVDAsICAkVDEKKyAgbXVseCAgICRNUjE2LCAkVDgsICRUNyAgICMgVDc6VDggPSBBMypC
MgorICBhZGN4ICAgJFQ4LCAgJFQ2CisgIGFkb3ggICAkVDUsICAkVDIKKyAgbXVseCAgICRNUjI0
LCAkVDksICRUOCAgICMgVDg6VDkgPSBBMypCMworICBhZGN4ICAgJFQ5LCAgJFQ3CisgIGFkY3gg
ICAlcmF4LCAgJFQ4CisgIGFkb3ggICAkVDYsICAkVDMKKyAgYWRveCAgICRUNywgICRUNAorICBh
ZG94ICAgJXJheCwgICRUOAorICBtb3YgICAgJFQxLCAgJEQzICAgICAgICAgICMgRFNUM19maW5h
bAorICBtb3YgICAgJFQyLCAgJEQ0ICAgICAgICAgICMgRFNUNF9maW5hbAorICBtb3YgICAgJFQz
LCAgJEQ1ICAgICAgICAgICMgRFNUNV9maW5hbAorICBtb3YgICAgJFQ0LCAgJEQ2ICAgICAgICAg
ICMgRFNUNl9maW5hbAorICBtb3YgICAgJFQ4LCAgJEQ3ICAgICAgICAgICMgRFNUN19maW5hbAor
CitfX18KKyAgcmV0dXJuICRib2R5OworfQorCisjIFBlcmZvcm1zIHNjaG9vbGJvb2sgbXVsdGlw
bGljYXRpb24gb2YgNjQtYml0IHdpdGggMjU2LWJpdAorIyBudW1iZXIuCitzdWIgbXVsNjR4MjU2
IHsKKyAgbXkgKCRpZHhNMCwkTTAsJE0xLCRUMCwkVDEsJFQyLCRUMywkVDQsJFQ1KT1AXzsKKyAg
bXkgJGJvZHkuPTw8X19fOworICAgIG1vdiAgICRpZHhNMCgkTTApLCAkVDUKKworICAgIHhvciAg
ICRUMiwgJFQyCisgICAgbW92ICAgMCskTTEsICVyYXgKKyAgICBtdWwgICAkVDUKKyAgICBtb3Yg
ICAlcmF4LCAkVDAgICAjIEMwCisgICAgbW92ICAgJXJkeCwgJFQxCisKKyAgICB4b3IgICAkVDMs
ICRUMworICAgIG1vdiAgIDgrJE0xLCAlcmF4CisgICAgbXVsICAgJFQ1CisgICAgYWRkICAgJXJh
eCwgJFQxICAgIyBDMQorICAgIGFkYyAgICVyZHgsICRUMgorCisgICAgeG9yICAgJFQ0LCAkVDQK
KyAgICBtb3YgICAxNiskTTEsICVyYXgKKyAgICBtdWwgICAkVDUKKyAgICBhZGQgICAlcmF4LCAk
VDIgICAjIEMyCisgICAgYWRjICAgJXJkeCwgJFQzCisKKyAgICBtb3YgICAyNCskTTEsICVyYXgK
KyAgICBtdWwgICAkVDUKKyAgICBhZGQgICAlcmF4LCAkVDMgICAjIEMzCisgICAgYWRjICAgJXJk
eCwgJFQ0ICAgIyBDNAorX19fCisgIHJldHVybiAkYm9keTsKK30KKworIyBQZXJmb3JtcyBzY2hv
b2xib29rIG11bHRpcGxpY2F0aW9uIG9mIDY0LWJpdCB3aXRoIDI1Ni1iaXQKKyMgbnVtYmVyLiBV
c2VzIE1VTFggYW5kIEFET1ggaW5zdHJ1Y3Rpb25zLgorc3ViIG11bHg2NHgyNTYgeworICBteSAo
JGlkeE0wLCRNMCwkTTEsJFQwLCRUMSwkVDIsJFQzLCRUNCwkVDUpPUBfOworICBteSAkYm9keS49
PDxfX187CisgICAgeG9yICAgICVyYXgsICVyYXgKKyAgICBtb3YgICAgJGlkeE0wKCRNMCksICVy
ZHgKKyAgICBtdWx4ICAgMCskTTEsICRUMCwgJFQxICAgICMgVDAgPC0gQzAKKyAgICBtdWx4ICAg
OCskTTEsICRUNCwgJFQyCisgICAgbXVseCAgIDE2KyRNMSwgJFQ1LCAkVDMKKworICAgIGFkb3gg
ICAkVDQsICRUMSAgICAgICAgICMgVDEgPC0gQzEKKyAgICBhZG94ICAgJFQ1LCAkVDIgICAgICAg
ICAjIFQyIDwtIEMyCisKKyAgICBtdWx4ICAgMjQrJE0xLCAkVDUsICRUNAorICAgIGFkb3ggICAk
VDUsICRUMyAgICAgICAgICMgVDMgPC0gQzMKKyAgICBhZG94ICAgJXJheCwgJFQ0ICAgICAgICAg
IyBUNCA8LSBDNAorX19fCisgIHJldHVybiAkYm9keTsKK30KKworIyBQZXJmb3JtcyBzY2hvb2xi
b29rIG11bHRpcGxpY2F0aW9uIG9mIDEyOC1iaXQgd2l0aCAyNTYtYml0CisjIG51bWJlci4gRGVz
dHJveXMgUkFYIGFuZCBSRFgKK3N1YiBtdWwxMjh4MjU2IHsKKyAgbXkgKCRpZHhNQSwkTUEsJE1C
LCRDMCwkQzEsJEMyLCRDMywkQzQsJEM1LCRUMCwkVDEpPUBfOworICBteSAoJE1BMCwkTUE4KT1t
YXAoIiRpZHhNQSskXygkTUEpIiwgKDAsOCkpOworICBteSAkYm9keS49PDxfX187CisgICAgIyBB
MCB4IEIwCisgICAgbW92ICAgJE1BMCwgJFQwCisgICAgbW92ICAgMCskTUIsICVyYXgKKyAgICBt
dWwgICAkVDAKKyAgICB4b3IgICAkQzIsICRDMgorICAgIG1vdiAgICVyYXgsICRDMCAgICMgYzAK
KyAgICBtb3YgICAlcmR4LCAkQzEKKworICAgICMgQTAgeCBCMQorICAgIG1vdiAgIDgrJE1CLCAl
cmF4CisgICAgbXVsICAgJFQwCisgICAgeG9yICAgJEMzLCAkQzMKKyAgICBhZGQgICAlcmF4LCAk
QzEKKyAgICBhZGMgICAlcmR4LCAkQzIKKworICAgICMgQTEgeCBCMAorICAgIG1vdiAgICRNQTgs
ICRUMQorICAgIG1vdiAgIDArJE1CLCAlcmF4CisgICAgbXVsICAgJFQxCisgICAgYWRkICAgJXJh
eCwgJEMxCisgICAgYWRjICAgJXJkeCwgJEMyCisgICAgYWRjICAgXCQweDAsICRDMworCisgICAg
IyBBMCB4IEIyCisgICAgeG9yICAgJEM0LCAkQzQKKyAgICBtb3YgICAxNiskTUIsICVyYXgKKyAg
ICBtdWwgICAkVDAKKyAgICBhZGQgICAlcmF4LCAkQzIKKyAgICBhZGMgICAlcmR4LCAkQzMKKyAg
ICBhZGMgICBcJDB4MCwgJEM0CisKKyAgICAjIEExIHggQjEKKyAgICBtb3YgICA4KyRNQiwgJXJh
eAorICAgIG11bCAgICRUMQorICAgIGFkZCAgICVyYXgsICRDMiAgICAgICAgICAgIyBjMgorICAg
IGFkYyAgICVyZHgsICRDMworICAgIGFkYyAgIFwkMHgwLCAkQzQKKworICAgICMgQTAgeCBCMwor
ICAgIG1vdiAgIDI0KyRNQiwgJXJheAorICAgIG11bCAgICRUMAorICAgIHhvciAgICRDNSwgJEM1
CisgICAgYWRkICAgJXJheCwgJEMzCisgICAgYWRjICAgJXJkeCwgJEM0CisgICAgYWRjICAgXCQw
eDAsICRDNQorCisgICAgIyBBMSB4IEIyCisgICAgbW92ICAgMTYrJE1CLCAlcmF4CisgICAgbXVs
ICAgJFQxCisgICAgYWRkICAgJXJheCwgJEMzICAgICAgICAgICMgYzMKKyAgICBhZGMgICAlcmR4
LCAkQzQKKyAgICBhZGMgICBcJDB4MCwgJEM1CisKKyAgICAjIEExIHggQjMKKyAgICBtb3YgICAy
NCskTUIsICVyYXgKKyAgICBtdWwgICAkVDEKKyAgICBhZGQgICAlcmF4LCAkQzQKKyAgICBhZGMg
ICAlcmR4LCAkQzUKKworX19fCisgIHJldHVybiAkYm9keTsKK30KKworIyBQZXJmb3JtcyBzY2hv
b2xib29rIG11bHRpcGxpY2F0aW9uIG9mIDEyOC1iaXQgd2l0aCAyNTYtYml0CisjIG51bWJlci4g
VXNlcyBNVUxYLCBBRE9YLCBBRENYIGluc3RydWN0aW9uLgorc3ViIG11bHgxMjh4MjU2IHsKKyAg
bXkgKCRpZHhNMCwkTTAsJE0xLCRUMCwkVDEsJFQyLCRUMywkVDQsJFQ1LCRUNik9QF87CisgIG15
ICgkTVVMMCwkTVVMOCk9bWFwKCIkaWR4TTArJF8oJE0wKSIsICgwLDgpKTsKKyAgbXkgJGJvZHku
PTw8X19fOworICAgIHhvciAgICAgJXJheCwgJXJheAorICAgIG1vdiAgICAkTVVMMCwgJXJkeAor
ICAgIG11bHggICAwKyRNMSwgJFQwLCAkVDEgICAgICAgICMgVDAgPC0gQzAKKyAgICBtdWx4ICAg
OCskTTEsICRUNCwgJFQyCisgICAgbXVseCAgIDE2KyRNMSwgJFQ1LCAkVDMKKworICAgIGFkb3gg
ICAkVDQsICRUMSAgICAgICAgICAgICAgICMgVDE6IGludGVybTEKKyAgICBhZG94ICAgJFQ1LCAk
VDIgICAgICAgICAgICAgICAjIFQyOiBpbnRlcm0yCisKKyAgICBtdWx4ICAgMjQrJE0xLCAkVDUs
ICRUNAorICAgIGFkb3ggICAkVDUsICRUMyAgICAgICAgICAgICAgICMgVDM6IGludGVybTMKKyAg
ICBhZG94ICAgJXJheCwgJFQ0ICAgICAgICAgICAgICAjIFQ0OiBpbnRlcm00CisKKyAgICB4b3Ig
ICAgJXJheCwgJXJheAorICAgIG1vdiAgICAkTVVMOCwgJXJkeAorICAgIG11bHggICAwKyRNMSwg
JFQ1LCAkVDYKKyAgICBhZGN4ICAgJFQ1LCAkVDEgICAgICAgICAgICAgICAjIFQxIDwtIEMxCisg
ICAgYWRjeCAgICRUNiwgJFQyCisKKyAgICBtdWx4ICAgOCskTTEsICRUNiwgJFQ1CisgICAgYWRj
eCAgICRUNSwgJFQzCisgICAgYWRveCAgICRUNiwgJFQyICAgICAgICAgICAgICAgIyBUMiA8LSBD
MgorCisgICAgbXVseCAgIDE2KyRNMSwgJFQ2LCAkVDUKKyAgICBhZGN4ICAgJFQ1LCAkVDQKKyAg
ICBhZG94ICAgJFQ2LCAkVDMgICAgICAgICAgICAgICAjIFQzIDwtIEMzCisKKyAgICBtdWx4ICAg
MjQrJE0xLCAkVDYsICRUNQorICAgIGFkY3ggICAlcmF4LCAkVDUKKyAgICBhZG94ICAgJFQ2LCAk
VDQgICAgICAgICAgICAgICAjIFQ0IDwtIEM0CisgICAgYWRveCAgICVyYXgsICRUNSAgICAgICAg
ICAgICAgIyBUNSA8LSBDNQorX19fCisgIHJldHVybiAkYm9keTsKK30KKworIyBDb21wdXRlIHog
PSB4ICsgeSAobW9kIHApLgorIyBPcGVyYXRpb246IGMgW3JkeF0gPSBhIFtyZGldICsgYiBbcnNp
XQorJGNvZGUuPTw8X19fOworLmdsb2JsICAke1BSRUZJWH1fZnBhZGQKKy50eXBlICAgJHtQUkVG
SVh9X2ZwYWRkLFxAZnVuY3Rpb24sMworJHtQUkVGSVh9X2ZwYWRkOgorLmNmaV9zdGFydHByb2MK
KyAgcHVzaCAlcjEyCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICA4CisuY2ZpX29mZnNldCByMTIs
IC0xNgorICBwdXNoICVyMTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgIDgKKy5jZmlfb2Zmc2V0
IHIxMywgLTI0CisgIHB1c2ggJXIxNAorLmNmaV9hZGp1c3RfY2ZhX29mZnNldCAgOAorLmNmaV9v
ZmZzZXQgcjE0LCAtMzIKKworICB4b3IgICAlcmF4LCAlcmF4CisKKyAgbW92ICAgIDB4MCglcmRp
KSwgICVyOAorICBhZGQgICAgMHgwKCVyc2kpLCAgJXI4CisgIG1vdiAgICAweDgoJXJkaSksICAl
cjkKKyAgYWRjICAgIDB4OCglcnNpKSwgICVyOQorICBtb3YgICAweDEwKCVyZGkpLCAlcjEwCisg
IGFkYyAgIDB4MTAoJXJzaSksICVyMTAKKyAgbW92ICAgMHgxOCglcmRpKSwgJXIxMQorICBhZGMg
ICAweDE4KCVyc2kpLCAlcjExCisgIG1vdiAgIDB4MjAoJXJkaSksICVyMTIKKyAgYWRjICAgMHgy
MCglcnNpKSwgJXIxMgorICBtb3YgICAweDI4KCVyZGkpLCAlcjEzCisgIGFkYyAgIDB4MjgoJXJz
aSksICVyMTMKKyAgbW92ICAgMHgzMCglcmRpKSwgJXIxNAorICBhZGMgICAweDMwKCVyc2kpLCAl
cjE0CisKKyAgbW92ICAgICAgICAuTHA0MzR4MiglcmlwKSwgJXJjeAorICBzdWIgICAlcmN4LCAl
cjgKKyAgbW92ICAgIDB4OCsuTHA0MzR4MiglcmlwKSwgJXJjeAorICBzYmIgICAlcmN4LCAlcjkK
KyAgc2JiICAgJXJjeCwgJXIxMAorICBtb3YgICAweDEwKy5McDQzNHgyKCVyaXApLCAlcmN4Cisg
IHNiYiAgICVyY3gsICVyMTEKKyAgbW92ICAgMHgxOCsuTHA0MzR4MiglcmlwKSwgJXJjeAorICBz
YmIgICAlcmN4LCAlcjEyCisgIG1vdiAgIDB4MjArLkxwNDM0eDIoJXJpcCksICVyY3gKKyAgc2Ji
ICAgJXJjeCwgJXIxMworICBtb3YgICAweDI4Ky5McDQzNHgyKCVyaXApLCAlcmN4CisgIHNiYiAg
ICVyY3gsICVyMTQKKworICBzYmIgICBcJDAsICVyYXgKKworICBtb3YgICAuTHA0MzR4Miglcmlw
KSwgJXJkaQorICBhbmQgICAlcmF4LCAlcmRpCisgIG1vdiAgIDB4OCsuTHA0MzR4MiglcmlwKSwg
JXJzaQorICBhbmQgICAlcmF4LCAlcnNpCisgIG1vdiAgIDB4MTArLkxwNDM0eDIoJXJpcCksICVy
Y3gKKyAgYW5kICAgJXJheCwgJXJjeAorCisgIGFkZCAgICVyZGksICAlcjgKKyAgbW92ICAgJXI4
LCAgIDB4MCglcmR4KQorICBhZGMgICAlcnNpLCAgJXI5CisgIG1vdiAgICVyOSwgICAweDgoJXJk
eCkKKyAgYWRjICAgJXJzaSwgJXIxMAorICBtb3YgICAlcjEwLCAweDEwKCVyZHgpCisgIGFkYyAg
ICVyY3gsICVyMTEKKyAgbW92ICAgJXIxMSwgMHgxOCglcmR4KQorCisgIHNldGMgICVjbAorICBt
b3YgICAweDE4Ky5McDQzNHgyKCVyaXApLCAgJXI4CisgIGFuZCAgICVyYXgsICAlcjgKKyAgbW92
ICAgMHgyMCsuTHA0MzR4MiglcmlwKSwgICVyOQorICBhbmQgICAlcmF4LCAgJXI5CisgIG1vdiAg
IDB4MjgrLkxwNDM0eDIoJXJpcCksICVyMTAKKyAgYW5kICAgJXJheCwgJXIxMAorICBidCAgICBc
JDAsICVyY3gKKworICBhZGMgICAlcjgsICVyMTIKKyAgbW92ICAgJXIxMiwgMHgyMCglcmR4KQor
ICBhZGMgICAlcjksICVyMTMKKyAgbW92ICAgJXIxMywgMHgyOCglcmR4KQorICBhZGMgICAlcjEw
LCAlcjE0CisgIG1vdiAgJXIxNCwgMHgzMCglcmR4KQorCisgIHBvcCAlcjE0CisuY2ZpX2FkanVz
dF9jZmFfb2Zmc2V0ICAtOAorICBwb3AgJXIxMworLmNmaV9hZGp1c3RfY2ZhX29mZnNldCAgLTgK
KyAgcG9wICVyMTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgIC04CisgIHJldAorLmNmaV9lbmRw
cm9jCitfX18KKworIyBMb2FkcyBkYXRhIHRvIFhNTTAgYW5kIFhNTTEgYW5kCisjIGNvbmRpdGlv
bmFseSBzd2FwcyBkZXBlbmRpbmcgb24gWE1NMworc3ViIGNzd2FwX2Jsb2NrMTYoKSB7CisgIG15
ICRpZHggPSBzaGlmdDsKKyAgJGlkeCAqPSAxNjsKKyAgKCIKKyAgICBtb3ZkcXUgICAkaWR4KCVy
ZGkpLCAleG1tMAorICAgIG1vdmRxdSAgICRpZHgoJXJzaSksICV4bW0xCisgICAgbW92ZHFhICAg
JXhtbTEsICV4bW0yCisgICAgcHhvciAgICAgJXhtbTAsICV4bW0yCisgICAgcGFuZCAgICAgJXht
bTMsICV4bW0yCisgICAgcHhvciAgICAgJXhtbTIsICV4bW0wCisgICAgcHhvciAgICAgJXhtbTIs
ICV4bW0xCisgICAgbW92ZHF1ICAgJXhtbTAsICRpZHgoJXJkaSkKKyAgICBtb3ZkcXUgICAleG1t
MSwgJGlkeCglcnNpKQorICAiKTsKK30KKworIyBDb25kaXRpb25hbGx5IHN3YXBzIGJpdHMgaW4g
eCBhbmQgeSBpbiBjb25zdGFudCB0aW1lLgorIyBtYXNrIGluZGljYXRlcyBiaXRzIHRvIGJlIHN3
YXBwZWQgKHNldCBiaXRzIGFyZSBzd2FwcGVkKQorIyBPcGVyYXRpb246IFtyZGldIDwtPiBbcnNp
XSBpZiByZHg9PTEKK3N1YiBzaWtlX2Nzd2FwIHsKKyAgIyBQWzBdIHdpdGggUVswXQorICBmb3Jl
YWNoICggMC4uIDYpeyRCTE9DS1MuPWV2YWwgIiZjc3dhcF9ibG9jazE2KCRfKSI7fQorICAjIFBb
MV0gd2l0aCBRWzFdCisgIGZvcmVhY2ggKCA3Li4xMyl7JEJMT0NLUy49ZXZhbCAiJmNzd2FwX2Js
b2NrMTYoJF8pIjt9CisKKyAgbXkgJGJvZHkgPTw8X19fOworLmdsb2JsICAke1BSRUZJWH1fY3N3
YXBfYXNtCisudHlwZSAgICR7UFJFRklYfV9jc3dhcF9hc20sXEBmdW5jdGlvbiwzCiske1BSRUZJ
WH1fY3N3YXBfYXNtOgorICAjIEZpbGwgWE1NMy4gQWZ0ZXIgdGhpcyBzdGVwIGZpcnN0IGhhbGYg
b2YgWE1NMyBpcworICAjIGp1c3QgemVyb3MgYW5kIHNlY29uZCBoYWxmIGlzIHdoYXRldmVyIGlu
IFJEWAorICBtb3YgICAlcmR4LCAleG1tMworCisgICMgQ29weSBsb3dlciBkb3VibGUgd29yZCBl
dmVyeXdoZXJlIGVsc2UuIFNvIHRoYXQKKyAgIyBYTU0zPVJEWHxSRFguIEFzIFJEWCBoYXMgZWl0
aGVyIGFsbCBiaXRzIHNldAorICAjIG9yIG5vbiByZXN1bHQgd2lsbCBiZSB0aGF0IFhNTTMgaGFz
IGFsc28gZWl0aGVyCisgICMgYWxsIGJpdHMgc2V0IG9yIG5vbiBvZiB0aGVtLiA2OCA9IDAxMDAw
MTAwYgorICBwc2h1ZmQgIFwkNjgsICV4bW0zLCAleG1tMworICAkQkxPQ0tTCisgIHJldAorX19f
CisgICgkYm9keSkKK30KKyRjb2RlLj0mc2lrZV9jc3dhcCgpOworCisKKyMgRmllbGQgc3VidHJh
Y3Rpb24KKyMgT3BlcmF0aW9uOiBjIFtyZHhdID0gYSBbcmRpXSAtIGIgW3JzaV0KKyRjb2RlLj08
PF9fXzsKKy5nbG9ibCAgJHtQUkVGSVh9X2Zwc3ViCisudHlwZSAgICR7UFJFRklYfV9mcHN1Yixc
QGZ1bmN0aW9uLDMKKyR7UFJFRklYfV9mcHN1YjoKKy5jZmlfc3RhcnRwcm9jCisgIHB1c2ggICAl
cjEyCisuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICA4CisuY2ZpX29mZnNldCByMTIsIC0xNgorICBw
dXNoICAgJXIxMworLmNmaV9hZGp1c3RfY2ZhX29mZnNldCAgOAorLmNmaV9vZmZzZXQgcjEzLCAt
MjQKKyAgcHVzaCAgICVyMTQKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgIDgKKy5jZmlfb2Zmc2V0
IHIxNCwgLTMyCisKKyAgeG9yICVyYXgsICVyYXgKKworICBtb3YgICAgMHgwKCVyZGkpLCAgJXI4
CisgIHN1YiAgICAweDAoJXJzaSksICAlcjgKKyAgbW92ICAgIDB4OCglcmRpKSwgICVyOQorICBz
YmIgICAgMHg4KCVyc2kpLCAgJXI5CisgIG1vdiAgIDB4MTAoJXJkaSksICVyMTAKKyAgc2JiICAg
MHgxMCglcnNpKSwgJXIxMAorICBtb3YgICAweDE4KCVyZGkpLCAlcjExCisgIHNiYiAgIDB4MTgo
JXJzaSksICVyMTEKKyAgbW92ICAgMHgyMCglcmRpKSwgJXIxMgorICBzYmIgICAweDIwKCVyc2kp
LCAlcjEyCisgIG1vdiAgIDB4MjgoJXJkaSksICVyMTMKKyAgc2JiICAgMHgyOCglcnNpKSwgJXIx
MworICBtb3YgICAweDMwKCVyZGkpLCAlcjE0CisgIHNiYiAgIDB4MzAoJXJzaSksICVyMTQKKwor
ICBzYmIgICBcJDB4MCwgJXJheAorCisgIG1vdiAgIC5McDQzNHgyKCVyaXApLCAlcmRpCisgIGFu
ZCAgICVyYXgsICVyZGkKKyAgbW92ICAgMHgwOCsuTHA0MzR4MiglcmlwKSwgJXJzaQorICBhbmQg
ICAlcmF4LCAlcnNpCisgIG1vdiAgIDB4MTArLkxwNDM0eDIoJXJpcCksICVyY3gKKyAgYW5kICAg
JXJheCwgJXJjeAorCisgIGFkZCAgICVyZGksICAlcjgKKyAgbW92ICAgJXI4LCAgIDB4MCglcmR4
KQorICBhZGMgICAlcnNpLCAgJXI5CisgIG1vdiAgICVyOSwgICAweDgoJXJkeCkKKyAgYWRjICAg
JXJzaSwgJXIxMAorICBtb3YgICAlcjEwLCAweDEwKCVyZHgpCisgIGFkYyAgICVyY3gsICVyMTEK
KyAgbW92ICAgJXIxMSwgMHgxOCglcmR4KQorCisgIHNldGMgICVjbAorICBtb3YgICAweDE4Ky5M
cDQzNHgyKCVyaXApLCAgJXI4CisgIGFuZCAgICVyYXgsICAlcjgKKyAgbW92ICAgMHgyMCsuTHA0
MzR4MiglcmlwKSwgICVyOQorICBhbmQgICAlcmF4LCAgJXI5CisgIG1vdiAgIDB4MjgrLkxwNDM0
eDIoJXJpcCksICVyMTAKKyAgYW5kICAgJXJheCwgJXIxMAorICBidCAgICBcJDB4MCwgJXJjeAor
CisgIGFkYyAgICVyOCwgJXIxMgorICBhZGMgICAlcjksICVyMTMKKyAgYWRjICAgJXIxMCwgJXIx
NAorICBtb3YgICAlcjEyLCAweDIwKCVyZHgpCisgIG1vdiAgICVyMTMsIDB4MjgoJXJkeCkKKyAg
bW92ICAgJXIxNCwgMHgzMCglcmR4KQorCisgIHBvcCAlcjE0CisuY2ZpX2FkanVzdF9jZmFfb2Zm
c2V0ICAtOAorICBwb3AgJXIxMworLmNmaV9hZGp1c3RfY2ZhX29mZnNldCAgLTgKKyAgcG9wICVy
MTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgIC04CisgIHJldAorLmNmaV9lbmRwcm9jCitfX18K
KworIyAgNDM0LWJpdCBtdWx0aXByZWNpc2lvbiBhZGRpdGlvbgorIyAgT3BlcmF0aW9uOiBjIFty
ZHhdID0gYSBbcmRpXSArIGIgW3JzaV0KKyRjb2RlLj08PF9fXzsKKy5nbG9ibCAgJHtQUkVGSVh9
X21wYWRkX2FzbQorLnR5cGUgICAke1BSRUZJWH1fbXBhZGRfYXNtLFxAZnVuY3Rpb24sMworJHtQ
UkVGSVh9X21wYWRkX2FzbToKKy5jZmlfc3RhcnRwcm9jCisgIG1vdiAgICAweDAoJXJkaSksICVy
ODsKKyAgbW92ICAgIDB4OCglcmRpKSwgJXI5CisgIG1vdiAgIDB4MTAoJXJkaSksICVyMTAKKyAg
bW92ICAgMHgxOCglcmRpKSwgJXIxMQorICBtb3YgICAweDIwKCVyZGkpLCAlcmN4CisgIGFkZCAg
ICAweDAoJXJzaSksICVyOAorICBhZGMgICAgMHg4KCVyc2kpLCAlcjkKKyAgYWRjICAgMHgxMCgl
cnNpKSwgJXIxMAorICBhZGMgICAweDE4KCVyc2kpLCAlcjExCisgIGFkYyAgIDB4MjAoJXJzaSks
ICVyY3gKKyAgbW92ICAgJXI4LCAgIDB4MCglcmR4KQorICBtb3YgICAlcjksICAgMHg4KCVyZHgp
CisgIG1vdiAgICVyMTAsIDB4MTAoJXJkeCkKKyAgbW92ICAgJXIxMSwgMHgxOCglcmR4KQorICBt
b3YgICAlcmN4LCAweDIwKCVyZHgpCisKKyAgbW92ICAgMHgyOCglcmRpKSwgJXI4CisgIG1vdiAg
IDB4MzAoJXJkaSksICVyOQorICBhZGMgICAweDI4KCVyc2kpLCAlcjgKKyAgYWRjICAgMHgzMCgl
cnNpKSwgJXI5CisgIG1vdiAgICVyOCwgMHgyOCglcmR4KQorICBtb3YgICAlcjksIDB4MzAoJXJk
eCkKKyAgcmV0CisuY2ZpX2VuZHByb2MKK19fXworCisjICAyeDQzNC1iaXQgbXVsdGlwcmVjaXNp
b24gc3VidHJhY3Rpb24KKyMgIE9wZXJhdGlvbjogYyBbcmR4XSA9IGEgW3JkaV0gLSBiIFtyc2ld
LgorIyAgUmV0dXJucyBib3Jyb3cgbWFzaworJGNvZGUuPTw8X19fOworLmdsb2JsICAke1BSRUZJ
WH1fbXBzdWJ4Ml9hc20KKy50eXBlICAgJHtQUkVGSVh9X21wc3VieDJfYXNtLFxAZnVuY3Rpb24s
MworJHtQUkVGSVh9X21wc3VieDJfYXNtOgorLmNmaV9zdGFydHByb2MKKyAgeG9yICAgJXJheCwg
JXJheAorCisgIG1vdiAgICAweDAoJXJkaSksICVyOAorICBtb3YgICAgMHg4KCVyZGkpLCAlcjkK
KyAgbW92ICAgMHgxMCglcmRpKSwgJXIxMAorICBtb3YgICAweDE4KCVyZGkpLCAlcjExCisgIG1v
diAgIDB4MjAoJXJkaSksICVyY3gKKyAgc3ViICAgIDB4MCglcnNpKSwgJXI4CisgIHNiYiAgICAw
eDgoJXJzaSksICVyOQorICBzYmIgICAweDEwKCVyc2kpLCAlcjEwCisgIHNiYiAgIDB4MTgoJXJz
aSksICVyMTEKKyAgc2JiICAgMHgyMCglcnNpKSwgJXJjeAorICBtb3YgICAlcjgsICAgMHgwKCVy
ZHgpCisgIG1vdiAgICVyOSwgICAweDgoJXJkeCkKKyAgbW92ICAgJXIxMCwgMHgxMCglcmR4KQor
ICBtb3YgICAlcjExLCAweDE4KCVyZHgpCisgIG1vdiAgICVyY3gsIDB4MjAoJXJkeCkKKworICBt
b3YgICAweDI4KCVyZGkpLCAlcjgKKyAgbW92ICAgMHgzMCglcmRpKSwgJXI5CisgIG1vdiAgIDB4
MzgoJXJkaSksICVyMTAKKyAgbW92ICAgMHg0MCglcmRpKSwgJXIxMQorICBtb3YgICAweDQ4KCVy
ZGkpLCAlcmN4CisgIHNiYiAgIDB4MjgoJXJzaSksICVyOAorICBzYmIgICAweDMwKCVyc2kpLCAl
cjkKKyAgc2JiICAgMHgzOCglcnNpKSwgJXIxMAorICBzYmIgICAweDQwKCVyc2kpLCAlcjExCisg
IHNiYiAgIDB4NDgoJXJzaSksICVyY3gKKyAgbW92ICAgJXI4LCAgMHgyOCglcmR4KQorICBtb3Yg
ICAlcjksICAweDMwKCVyZHgpCisgIG1vdiAgICVyMTAsIDB4MzgoJXJkeCkKKyAgbW92ICAgJXIx
MSwgMHg0MCglcmR4KQorICBtb3YgICAlcmN4LCAweDQ4KCVyZHgpCisKKyAgbW92ICAgMHg1MCgl
cmRpKSwgJXI4CisgIG1vdiAgIDB4NTgoJXJkaSksICVyOQorICBtb3YgICAweDYwKCVyZGkpLCAl
cjEwCisgIG1vdiAgIDB4NjgoJXJkaSksICVyMTEKKyAgc2JiICAgMHg1MCglcnNpKSwgJXI4Cisg
IHNiYiAgIDB4NTgoJXJzaSksICVyOQorICBzYmIgICAweDYwKCVyc2kpLCAlcjEwCisgIHNiYiAg
IDB4NjgoJXJzaSksICVyMTEKKyAgc2JiICAgXCQweDAsICVyYXgKKyAgbW92ICAgJXI4LCAgMHg1
MCglcmR4KQorICBtb3YgICAlcjksICAweDU4KCVyZHgpCisgIG1vdiAgICVyMTAsIDB4NjAoJXJk
eCkKKyAgbW92ICAgJXIxMSwgMHg2OCglcmR4KQorICByZXQKKy5jZmlfZW5kcHJvYworX19fCisK
KworIyAgRG91YmxlIDJ4NDM0LWJpdCBtdWx0aXByZWNpc2lvbiBzdWJ0cmFjdGlvbgorIyAgT3Bl
cmF0aW9uOiBjIFtyZHhdID0gYyBbcmR4XSAtIGEgW3JkaV0gLSBiIFtyc2ldCiskY29kZS49PDxf
X187CisuZ2xvYmwgICR7UFJFRklYfV9tcGRibHN1YngyX2FzbQorLnR5cGUgICAke1BSRUZJWH1f
bXBkYmxzdWJ4Ml9hc20sXEBmdW5jdGlvbiwzCiske1BSRUZJWH1fbXBkYmxzdWJ4Ml9hc206Cisu
Y2ZpX3N0YXJ0cHJvYworICBwdXNoICAgJXIxMgorLmNmaV9hZGp1c3RfY2ZhX29mZnNldCA4Cisu
Y2ZpX29mZnNldCByMTIsIC0xNgorICBwdXNoICAgJXIxMworLmNmaV9hZGp1c3RfY2ZhX29mZnNl
dCA4CisuY2ZpX29mZnNldCByMTMsIC0yNAorCisgIHhvciAgICVyYXgsICVyYXgKKworICAjIGNp
OmxvdyA9IGM6bG93IC0gYTpsb3cKKyAgbW92ICAgIDB4MCglcmR4KSwgJXI4CisgIG1vdiAgICAw
eDgoJXJkeCksICVyOQorICBtb3YgICAweDEwKCVyZHgpLCAlcjEwCisgIG1vdiAgIDB4MTgoJXJk
eCksICVyMTEKKyAgbW92ICAgMHgyMCglcmR4KSwgJXIxMgorICBtb3YgICAweDI4KCVyZHgpLCAl
cjEzCisgIG1vdiAgIDB4MzAoJXJkeCksICVyY3gKKyAgc3ViICAgIDB4MCglcmRpKSwgJXI4Cisg
IHNiYiAgICAweDgoJXJkaSksICVyOQorICBzYmIgICAweDEwKCVyZGkpLCAlcjEwCisgIHNiYiAg
IDB4MTgoJXJkaSksICVyMTEKKyAgc2JiICAgMHgyMCglcmRpKSwgJXIxMgorICBzYmIgICAweDI4
KCVyZGkpLCAlcjEzCisgIHNiYiAgIDB4MzAoJXJkaSksICVyY3gKKyAgYWRjICAgXCQweDAsICVy
YXgKKworICAjIGM6bG93ID0gY2k6bG93IC0gYjpsb3cKKyAgc3ViICAgIDB4MCglcnNpKSwgJXI4
CisgIHNiYiAgICAweDgoJXJzaSksICVyOQorICBzYmIgICAweDEwKCVyc2kpLCAlcjEwCisgIHNi
YiAgIDB4MTgoJXJzaSksICVyMTEKKyAgc2JiICAgMHgyMCglcnNpKSwgJXIxMgorICBzYmIgICAw
eDI4KCVyc2kpLCAlcjEzCisgIHNiYiAgIDB4MzAoJXJzaSksICVyY3gKKyAgYWRjICAgXCQweDAs
ICVyYXgKKworICAjIHN0b3JlIGM6bG93CisgIG1vdiAgICVyOCwgICAweDAoJXJkeCkKKyAgbW92
ICAgJXI5LCAgIDB4OCglcmR4KQorICBtb3YgICAlcjEwLCAweDEwKCVyZHgpCisgIG1vdiAgICVy
MTEsIDB4MTgoJXJkeCkKKyAgbW92ICAgJXIxMiwgMHgyMCglcmR4KQorICBtb3YgICAlcjEzLCAw
eDI4KCVyZHgpCisgIG1vdiAgICVyY3gsIDB4MzAoJXJkeCkKKworICAjIGNpOmhpZ2ggPSBjOmhp
Z2ggLSBhOmhpZ2gKKyAgbW92ICAgMHgzOCglcmR4KSwgJXI4CisgIG1vdiAgIDB4NDAoJXJkeCks
ICVyOQorICBtb3YgICAweDQ4KCVyZHgpLCAlcjEwCisgIG1vdiAgIDB4NTAoJXJkeCksICVyMTEK
KyAgbW92ICAgMHg1OCglcmR4KSwgJXIxMgorICBtb3YgICAweDYwKCVyZHgpLCAlcjEzCisgIG1v
diAgIDB4NjgoJXJkeCksICVyY3gKKworICBzdWIgICAlcmF4LCAlcjgKKyAgc2JiICAgMHgzOCgl
cmRpKSwgJXI4CisgIHNiYiAgIDB4NDAoJXJkaSksICVyOQorICBzYmIgICAweDQ4KCVyZGkpLCAl
cjEwCisgIHNiYiAgIDB4NTAoJXJkaSksICVyMTEKKyAgc2JiICAgMHg1OCglcmRpKSwgJXIxMgor
ICBzYmIgICAweDYwKCVyZGkpLCAlcjEzCisgIHNiYiAgIDB4NjgoJXJkaSksICVyY3gKKworICAj
IGM6aGlnaCA9IGNpOmhpZ2ggLSBiOmhpZ2gKKyAgc3ViICAgMHgzOCglcnNpKSwgJXI4CisgIHNi
YiAgIDB4NDAoJXJzaSksICVyOQorICBzYmIgICAweDQ4KCVyc2kpLCAlcjEwCisgIHNiYiAgIDB4
NTAoJXJzaSksICVyMTEKKyAgc2JiICAgMHg1OCglcnNpKSwgJXIxMgorICBzYmIgICAweDYwKCVy
c2kpLCAlcjEzCisgIHNiYiAgIDB4NjgoJXJzaSksICVyY3gKKworICAjIHN0b3JlIGM6aGlnaAor
ICBtb3YgICAlcjgsICAweDM4KCVyZHgpCisgIG1vdiAgICVyOSwgIDB4NDAoJXJkeCkKKyAgbW92
ICAgJXIxMCwgMHg0OCglcmR4KQorICBtb3YgICAlcjExLCAweDUwKCVyZHgpCisgIG1vdiAgICVy
MTIsIDB4NTgoJXJkeCkKKyAgbW92ICAgJXIxMywgMHg2MCglcmR4KQorICBtb3YgICAlcmN4LCAw
eDY4KCVyZHgpCisKKyAgcG9wICVyMTMKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgLTgKKyAgcG9w
ICVyMTIKKy5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgLTgKKyAgcmV0CisuY2ZpX2VuZHByb2MKKwor
X19fCisKK3N1YiByZWRjX2NvbW1vbiB7CisgIG15ICgkbXVsMDEsICRtdWwyMywgJG11bDQ1LCAk
bXVsNjcpPUBfOworICBteSAkYm9keT08PF9fXzsKKyAgICAkbXVsMDEKKyAgICB4b3IgICAlcmN4
LCAlcmN4CisgICAgYWRkICAgMHgxOCglcmRpKSwgJXI4CisgICAgYWRjICAgMHgyMCglcmRpKSwg
JXI5CisgICAgYWRjICAgMHgyOCglcmRpKSwgJXIxMAorICAgIGFkYyAgIDB4MzAoJXJkaSksICVy
MTEKKyAgICBhZGMgICAweDM4KCVyZGkpLCAlcjEyCisgICAgYWRjICAgMHg0MCglcmRpKSwgJXIx
MworICAgIGFkYyAgIDB4NDgoJXJkaSksICVyY3gKKyAgICBtb3YgICAlcjgsIDB4MTgoJXJkaSkK
KyAgICBtb3YgICAlcjksIDB4MjAoJXJkaSkKKyAgICBtb3YgICAlcjEwLCAweDI4KCVyZGkpCisg
ICAgbW92ICAgJXIxMSwgMHgzMCglcmRpKQorICAgIG1vdiAgICVyMTIsIDB4MzgoJXJkaSkKKyAg
ICBtb3YgICAlcjEzLCAweDQwKCVyZGkpCisgICAgbW92ICAgJXJjeCwgMHg0OCglcmRpKQorICAg
IG1vdiAgIDB4NTAoJXJkaSksICVyOAorICAgIG1vdiAgIDB4NTgoJXJkaSksICVyOQorICAgIG1v
diAgIDB4NjAoJXJkaSksICVyMTAKKyAgICBtb3YgICAweDY4KCVyZGkpLCAlcjExCisgICAgYWRj
ICAgXCQweDAsICVyOAorICAgIGFkYyAgIFwkMHgwLCAlcjkKKyAgICBhZGMgICBcJDB4MCwgJXIx
MAorICAgIGFkYyAgIFwkMHgwLCAlcjExCisgICAgbW92ICAgJXI4LCAweDUwKCVyZGkpCisgICAg
bW92ICAgJXI5LCAweDU4KCVyZGkpCisgICAgbW92ICAgJXIxMCwgMHg2MCglcmRpKQorICAgIG1v
diAgICVyMTEsIDB4NjgoJXJkaSkKKworICAgICRtdWwyMworICAgIHhvciAgICVyY3gsICVyY3gK
KyAgICBhZGQgICAweDI4KCVyZGkpLCAlcjgKKyAgICBhZGMgICAweDMwKCVyZGkpLCAlcjkKKyAg
ICBhZGMgICAweDM4KCVyZGkpLCAlcjEwCisgICAgYWRjICAgMHg0MCglcmRpKSwgJXIxMQorICAg
IGFkYyAgIDB4NDgoJXJkaSksICVyMTIKKyAgICBhZGMgICAweDUwKCVyZGkpLCAlcjEzCisgICAg
YWRjICAgMHg1OCglcmRpKSwgJXJjeAorICAgIG1vdiAgICVyOCwgMHgyOCglcmRpKQorICAgIG1v
diAgICVyOSwgMHgzMCglcmRpKQorICAgIG1vdiAgICVyMTAsIDB4MzgoJXJkaSkKKyAgICBtb3Yg
ICAlcjExLCAweDQwKCVyZGkpCisgICAgbW92ICAgJXIxMiwgMHg0OCglcmRpKQorICAgIG1vdiAg
ICVyMTMsIDB4NTAoJXJkaSkKKyAgICBtb3YgICAlcmN4LCAweDU4KCVyZGkpCisgICAgbW92ICAg
MHg2MCglcmRpKSwgJXI4CisgICAgbW92ICAgMHg2OCglcmRpKSwgJXI5CisgICAgYWRjICAgXCQw
eDAsICVyOAorICAgIGFkYyAgIFwkMHgwLCAlcjkKKyAgICBtb3YgICAlcjgsIDB4NjAoJXJkaSkK
KyAgICBtb3YgICAlcjksIDB4NjgoJXJkaSkKKworICAgICRtdWw0NQorICAgIHhvciAgICVyY3gs
ICVyY3gKKyAgICBhZGQgICAweDM4KCVyZGkpLCAlcjgKKyAgICBhZGMgICAweDQwKCVyZGkpLCAl
cjkKKyAgICBhZGMgICAweDQ4KCVyZGkpLCAlcjEwCisgICAgYWRjICAgMHg1MCglcmRpKSwgJXIx
MQorICAgIGFkYyAgIDB4NTgoJXJkaSksICVyMTIKKyAgICBhZGMgICAweDYwKCVyZGkpLCAlcjEz
CisgICAgYWRjICAgMHg2OCglcmRpKSwgJXJjeAorICAgIG1vdiAgICVyOCwgICAweDAoJXJzaSkg
ICAgIyBDMAorICAgIG1vdiAgICVyOSwgICAweDgoJXJzaSkgICAgIyBDMQorICAgIG1vdiAgICVy
MTAsIDB4NDgoJXJkaSkKKyAgICBtb3YgICAlcjExLCAweDUwKCVyZGkpCisgICAgbW92ICAgJXIx
MiwgMHg1OCglcmRpKQorICAgIG1vdiAgICVyMTMsIDB4NjAoJXJkaSkKKyAgICBtb3YgICAlcmN4
LCAweDY4KCVyZGkpCisKKyAgICAkbXVsNjcKKyAgICBhZGQgICAweDQ4KCVyZGkpLCAlcjgKKyAg
ICBhZGMgICAweDUwKCVyZGkpLCAlcjkKKyAgICBhZGMgICAweDU4KCVyZGkpLCAlcjEwCisgICAg
YWRjICAgMHg2MCglcmRpKSwgJXIxMQorICAgIGFkYyAgIDB4NjgoJXJkaSksICVyMTIKKyAgICBt
b3YgICAlcjgsICAweDEwKCVyc2kpICAgICMgQzIKKyAgICBtb3YgICAlcjksICAweDE4KCVyc2kp
ICAgICMgQzMKKyAgICBtb3YgICAlcjEwLCAweDIwKCVyc2kpICAgICMgQzQKKyAgICBtb3YgICAl
cjExLCAweDI4KCVyc2kpICAgICMgQzUKKyAgICBtb3YgICAlcjEyLCAweDMwKCVyc2kpICAgICMg
QzYKK19fXworICByZXR1cm4gJGJvZHk7Cit9CisKKyMgT3B0aW1pemVkIE1vbnRnb21lcnkgcmVk
dWN0aW9uIGZvciBDUFVzLCBiYXNlZCBvbiBtZXRob2QgZGVzY3JpYmVkCisjIGluIEZhei1IZXJu
YW5kZXogZXQgYWwuIGh0dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMTcvMTAxNS4KKyMgT3BlcmF0
aW9uOiBjIFtyc2ldID0gYSBbcmRpXQorIyBOT1RFOiBhPWMgaXMgbm90IGFsbG93ZWQKK3N1YiBz
aWtlX3JkYyB7CisgIG15ICRqdW1wX3JlZGNfYmR3PSZhbHRfaW1wbCgiLkxyZGNfYmR3IikgaWYg
KCRibWkyX2FkeCk7CisgICMgYVswLTFdIHggLkxwNDM0cDEgLS0+IHJlc3VsdDogcjg6cjEzCisg
IG15ICRtdWx4MT0mbXVseDEyOHgyNTYoIDAsIiVyZGkiLCIuTHA0MzRwMSglcmlwKSIsbWFwKCIl
ciRfIiwoOC4uMTMpKSwiJXJjeCIpOworICAjIGFbMi0zXSB4IC5McDQzNHAxIC0tPiByZXN1bHQ6
IHI4OnIxMworICBteSAkbXVseDI9Jm11bHgxMjh4MjU2KDE2LCIlcmRpIiwiLkxwNDM0cDEoJXJp
cCkiLG1hcCgiJXIkXyIsKDguLjEzKSksIiVyY3giKTsKKyAgIyBhWzQtNV0geCAuTHA0MzRwMSAt
LT4gcmVzdWx0OiByODpyMTMKKyAgbXkgJG11bHgzPSZtdWx4MTI4eDI1NigzMiwiJXJkaSIsIi5M
cDQzNHAxKCVyaXApIixtYXAoIiVyJF8iLCg4Li4xMykpLCIlcmN4Iik7CisgICMgYVs2LTddIHgg
LkxwNDM0cDEgLS0+IHJlc3VsdDogcjg6cjEzCisgIG15ICRtdWx4ND0mbXVseDY0eDI1NiggNDgs
IiVyZGkiLCIuTHA0MzRwMSglcmlwKSIsbWFwKCIlciRfIiwoOC4uMTMpKSk7CisKKyAgIyBhWzAt
MV0geCAuTHA0MzRwMSAtLT4gcmVzdWx0OiByODpyMTMKKyAgbXkgJG11bDE9Jm11bDEyOHgyNTYo
IDAsIiVyZGkiLCIuTHA0MzRwMSglcmlwKSIsbWFwKCIlciRfIiwoOC4uMTQpKSwiJXJjeCIpOwor
ICAjIGFbMi0zXSB4IC5McDQzNHAxIC0tPiByZXN1bHQ6IHI4OnIxMworICBteSAkbXVsMj0mbXVs
MTI4eDI1NigxNiwiJXJkaSIsIi5McDQzNHAxKCVyaXApIixtYXAoIiVyJF8iLCg4Li4xNCkpLCIl
cmN4Iik7CisgICMgYVs0LTVdIHggLkxwNDM0cDEgLS0+IHJlc3VsdDogcjg6cjEzCisgIG15ICRt
dWwzPSZtdWwxMjh4MjU2KDMyLCIlcmRpIiwiLkxwNDM0cDEoJXJpcCkiLG1hcCgiJXIkXyIsKDgu
LjE0KSksIiVyY3giKTsKKyAgIyBhWzYtN10geCAuTHA0MzRwMSAtLT4gcmVzdWx0OiByODpyMTMK
KyAgbXkgJG11bDQ9Jm11bDY0eDI1NiggNDgsIiVyZGkiLCIuTHA0MzRwMSglcmlwKSIsbWFwKCIl
ciRfIiwoOC4uMTMpKSk7CisKKyAgbXkgJHJlZGNfbXVsPSZyZWRjX2NvbW1vbigkbXVsMSwgJG11
bDIsICRtdWwzLCAkbXVsNCk7CisgIG15ICRyZWRjX2Jkdz0mcmVkY19jb21tb24oJG11bHgxLCAk
bXVseDIsICRtdWx4MywgJG11bHg0KSBpZiAoJGJtaTJfYWR4KTsKKworICAjIFJFREMgZm9yIEJy
b2Fkd2VsbCBDUFVzCisgIG15ICRjb2RlPTw8X19fOworICAgIC5McmRjX2JkdzoKKyAgICAuY2Zp
X3N0YXJ0cHJvYworICAgICAgIyBzaWtlX2ZwcmRjIGhhcyBhbHJlYWR5IHB1c2hlZCByMTItLTE1
IGJ5IHRoaXMgcG9pbnQuCisgICAgLmNmaV9hZGp1c3RfY2ZhX29mZnNldCAzMgorICAgIC5jZmlf
b2Zmc2V0IHIxMiwgLTE2CisgICAgLmNmaV9vZmZzZXQgcjEzLCAtMjQKKyAgICAuY2ZpX29mZnNl
dCByMTQsIC0zMgorICAgIC5jZmlfb2Zmc2V0IHIxNSwgLTQwCisKKyAgICAkcmVkY19iZHcKKwor
ICAgICAgcG9wICVyMTUKKyAgICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IC04CisgICAgLmNmaV9z
YW1lX3ZhbHVlIHIxNQorICAgICAgcG9wICVyMTQKKyAgICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0
IC04CisgICAgLmNmaV9zYW1lX3ZhbHVlIHIxNAorICAgICAgcG9wICVyMTMKKyAgICAuY2ZpX2Fk
anVzdF9jZmFfb2Zmc2V0IC04CisgICAgLmNmaV9zYW1lX3ZhbHVlIHIxMworICAgICAgcG9wICVy
MTIKKyAgICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IC04CisgICAgLmNmaV9zYW1lX3ZhbHVlIHIx
MgorICAgICAgcmV0CisgICAgLmNmaV9lbmRwcm9jCitfX18KKworICAjIFJFREMgZm9yIENQVXMg
b2xkZXIgdGhhbiBCcm9hZHdlbGwKKyAgJGNvZGUuPTw8X19fOworICAgIC5nbG9ibCAgJHtQUkVG
SVh9X2ZwcmRjCisgICAgLnR5cGUgICAke1BSRUZJWH1fZnByZGMsXEBmdW5jdGlvbiwzCisgICAg
JHtQUkVGSVh9X2ZwcmRjOgorICAgIC5jZmlfc3RhcnRwcm9jCisgICAgICBwdXNoICVyMTIKKyAg
ICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICA4CisgICAgLmNmaV9vZmZzZXQgcjEyLCAtMTYKKyAg
ICAgIHB1c2ggJXIxMworICAgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgIDgKKyAgICAuY2ZpX29m
ZnNldCByMTMsIC0yNAorICAgICAgcHVzaCAlcjE0CisgICAgLmNmaV9hZGp1c3RfY2ZhX29mZnNl
dCAgOAorICAgIC5jZmlfb2Zmc2V0IHIxNCwgLTMyCisgICAgICBwdXNoICVyMTUKKyAgICAuY2Zp
X2FkanVzdF9jZmFfb2Zmc2V0ICA4CisgICAgLmNmaV9vZmZzZXQgcjE1LCAtNDAKKworICAgICAg
IyBKdW1wIHRvIG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbiBpZgorICAgICAgIyBDUFUgc3VwcG9y
dHMgQURDWC9BRE9YL01VTFgKKyAgICAgICRqdW1wX3JlZGNfYmR3CisgICAgICAjIE90aGVyd2lz
ZSB1c2UgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbgorICAgICAgJHJlZGNfbXVsCisKKyAgICAgIHBv
cCAlcjE1CisgICAgLmNmaV9hZGp1c3RfY2ZhX29mZnNldCAtOAorICAgICAgcG9wICVyMTQKKyAg
ICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IC04CisgICAgICBwb3AgJXIxMworICAgIC5jZmlfYWRq
dXN0X2NmYV9vZmZzZXQgLTgKKyAgICAgIHBvcCAlcjEyCisgICAgLmNmaV9hZGp1c3RfY2ZhX29m
ZnNldCAtOAorICAgICAgcmV0CisgICAgLmNmaV9lbmRwcm9jCitfX18KKyAgcmV0dXJuICRjb2Rl
OworfQorJGNvZGUuPSZzaWtlX3JkYygpOworCisjIDQzNC1iaXQgbXVsdGlwbGljYXRpb24gdXNp
bmcgS2FyYXRzdWJhIChvbmUgbGV2ZWwpLAorIyBzY2hvb2xib29rIChvbmUgbGV2ZWwpLiBVc2Vz
IE1VTFgvQURPWC9BRENYIGluc3RydWN0aW9ucworIyBhdmFpbGFibGUgb24gQnJvYWR3ZWxsIG1p
Y3JvLWFyY2hpdGVjdHVyZXMgYW5kIG5ld2VyLgorc3ViIG11bF9iZHcgeworICAjIFtyc3BdIDwt
IChBSCtBTCkgeCAoQkgrQkwpCisgIG15ICRtdWwyNTZfbG93PSZtdWwyNTYoMCwiJXJzcCIsMzIs
IiVyc3AiLDAsIiVyc3AiLG1hcCgiJXIkXyIsKDguLjE1KSksIiVyYngiLCIlcmJwIik7CisgICMg
W3JjeF0gPC0gQUwgeCBCTAorICBteSAkbXVsMjU2X2FsYmw9Jm11bDI1NigwLCIlcmRpIiwwLCIl
cnNpIiwwLCIlcmN4IixtYXAoIiVyJF8iLCg4Li4xNSkpLCIlcmJ4IiwiJXJicCIpOworICAjIFty
Y3grNjRdIDwtIEFIIHggQkgKKyAgbXkgJG11bDE5Ml9haGJoPSZtdWwxOTIoMzIsIiVyZGkiLDMy
LCIlcnNpIiw2NCwiJXJjeCIsbWFwKCIlciRfIiwoOC4uMTQpKSk7CisKKyAgJGJvZHk9PDxfX187
CisKKyAgICBtb3YgICAlcmR4LCAlcmN4CisgICAgeG9yICAgJXJheCwgJXJheAorCisgICAgIyBy
OC1yMTEgPC0gQUggKyBBTCwgcmF4IDwtIG1hc2sKKyAgICBtb3YgICAgMHgwKCVyZGkpLCAlcjgK
KyAgICBtb3YgICAgMHg4KCVyZGkpLCAlcjkKKyAgICBtb3YgICAweDEwKCVyZGkpLCAlcjEwCisg
ICAgbW92ICAgMHgxOCglcmRpKSwgJXIxMQorCisgICAgcHVzaCAlcmJ4CisgIC5jZmlfYWRqdXN0
X2NmYV9vZmZzZXQgOAorICAuY2ZpX29mZnNldCByYngsIC00OAorICAgIHB1c2ggJXJicAorICAu
Y2ZpX29mZnNldCByYnAsIC01NgorICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IDgKKyAgICBzdWIg
XCQ5NiwgJXJzcAorICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IDk2CisKKyAgICBhZGQgICAweDIw
KCVyZGkpLCAlcjgKKyAgICBhZGMgICAweDI4KCVyZGkpLCAlcjkKKyAgICBhZGMgICAweDMwKCVy
ZGkpLCAlcjEwCisgICAgYWRjICAgXCQweDAsICVyMTEKKyAgICBzYmIgICBcJDB4MCwgJXJheAor
ICAgIG1vdiAgICVyOCwgICAweDAoJXJzcCkKKyAgICBtb3YgICAlcjksICAgMHg4KCVyc3ApCisg
ICAgbW92ICAgJXIxMCwgMHgxMCglcnNwKQorICAgIG1vdiAgICVyMTEsIDB4MTgoJXJzcCkKKwor
ICAgICMgcjEyLXIxNSA8LSBCSCArIEJMLCByYnggPC0gbWFzaworICAgIHhvciAgICVyYngsICVy
YngKKyAgICBtb3YgICAgMHgwKCVyc2kpLCAlcjEyCisgICAgbW92ICAgIDB4OCglcnNpKSwgJXIx
MworICAgIG1vdiAgIDB4MTAoJXJzaSksICVyMTQKKyAgICBtb3YgICAweDE4KCVyc2kpLCAlcjE1
CisgICAgYWRkICAgMHgyMCglcnNpKSwgJXIxMgorICAgIGFkYyAgIDB4MjgoJXJzaSksICVyMTMK
KyAgICBhZGMgICAweDMwKCVyc2kpLCAlcjE0CisgICAgYWRjICAgXCQweDAsICVyMTUKKyAgICBz
YmIgICBcJDB4MCwgJXJieAorICAgIG1vdiAgICVyMTIsIDB4MjAoJXJzcCkKKyAgICBtb3YgICAl
cjEzLCAweDI4KCVyc3ApCisgICAgbW92ICAgJXIxNCwgMHgzMCglcnNwKQorICAgIG1vdiAgICVy
MTUsIDB4MzgoJXJzcCkKKworICAgICMgcjEyLXIxNSA8LSBtYXNrZWQgKEJIICsgQkwpCisgICAg
YW5kICAgJXJheCwgJXIxMgorICAgIGFuZCAgICVyYXgsICVyMTMKKyAgICBhbmQgICAlcmF4LCAl
cjE0CisgICAgYW5kICAgJXJheCwgJXIxNQorCisgICAgIyByOC1yMTEgPC0gbWFza2VkIChBSCAr
IEFMKQorICAgIGFuZCAgICVyYngsICVyOAorICAgIGFuZCAgICVyYngsICVyOQorICAgIGFuZCAg
ICVyYngsICVyMTAKKyAgICBhbmQgICAlcmJ4LCAlcjExCisKKyAgICAjIHI4LXIxMSA8LSBtYXNr
ZWQgKEFIICsgQUwpICsgbWFza2VkIChCSCArIEJMKQorICAgIGFkZCAgICVyMTIsICVyOAorICAg
IGFkYyAgICVyMTMsICVyOQorICAgIGFkYyAgICVyMTQsICVyMTAKKyAgICBhZGMgICAlcjE1LCAl
cjExCisgICAgbW92ICAgICVyOCwgMHg0MCglcnNwKQorICAgIG1vdiAgICAlcjksIDB4NDgoJXJz
cCkKKyAgICBtb3YgICAlcjEwLCAweDUwKCVyc3ApCisgICAgbW92ICAgJXIxMSwgMHg1OCglcnNw
KQorCisgICAgIyBbcnNwXSA8LSBDTSA9IChBSCtBTCkgeCAoQkgrQkwpCisgICAgJG11bDI1Nl9s
b3cKKyAgICAjIFtyY3hdIDwtIENMID0gQUwgeCBCTCAoUmVzdWx0IGMwLWMzKQorICAgICRtdWwy
NTZfYWxibAorICAgICMgW3JjeCs2NF0gPC0gQ0ggPSBBSCB4IEJICisgICAgJG11bDE5Ml9haGJo
CisKKyAgICAjIHI4LXIxMSA8LSAoQUgrQUwpIHggKEJIK0JMKSwgZmluYWwgc3RlcAorICAgIG1v
diAgIDB4NDAoJXJzcCksICAlcjgKKyAgICBtb3YgICAweDQ4KCVyc3ApLCAgJXI5CisgICAgbW92
ICAgMHg1MCglcnNwKSwgJXIxMAorICAgIG1vdiAgIDB4NTgoJXJzcCksICVyMTEKKworICAgIG1v
diAgIDB4MjAoJXJzcCksICVyYXgKKyAgICBhZGQgICAlcmF4LCAlcjgKKyAgICBtb3YgICAweDI4
KCVyc3ApLCAlcmF4CisgICAgYWRjICAgJXJheCwgJXI5CisgICAgbW92ICAgMHgzMCglcnNwKSwg
JXJheAorICAgIGFkYyAgICVyYXgsICVyMTAKKyAgICBtb3YgICAweDM4KCVyc3ApLCAlcmF4Cisg
ICAgYWRjICAgJXJheCwgJXIxMQorCisgICAgIyBbcnNwXSwgeDMteDUgPC0gKEFIK0FMKSB4IChC
SCtCTCkgLSBBTHhCTAorICAgIG1vdiAgICAweDAoJXJzcCksICVyMTIKKyAgICBtb3YgICAgMHg4
KCVyc3ApLCAlcjEzCisgICAgbW92ICAgMHgxMCglcnNwKSwgJXIxNAorICAgIG1vdiAgIDB4MTgo
JXJzcCksICVyMTUKKyAgICBzdWIgICAgMHgwKCVyY3gpLCAlcjEyCisgICAgc2JiICAgIDB4OCgl
cmN4KSwgJXIxMworICAgIHNiYiAgIDB4MTAoJXJjeCksICVyMTQKKyAgICBzYmIgICAweDE4KCVy
Y3gpLCAlcjE1CisgICAgc2JiICAgMHgyMCglcmN4KSwgJXI4CisgICAgc2JiICAgMHgyOCglcmN4
KSwgJXI5CisgICAgc2JiICAgMHgzMCglcmN4KSwgJXIxMAorICAgIHNiYiAgIDB4MzgoJXJjeCks
ICVyMTEKKworICAgICMgcjgtcjE1IDwtIChBSCtBTCkgeCAoQkgrQkwpIC0gQUx4QkwgLSBBSHhC
SAorICAgIHN1YiAgIDB4NDAoJXJjeCksICVyMTIKKyAgICBzYmIgICAweDQ4KCVyY3gpLCAlcjEz
CisgICAgc2JiICAgMHg1MCglcmN4KSwgJXIxNAorICAgIHNiYiAgIDB4NTgoJXJjeCksICVyMTUK
KyAgICBzYmIgICAweDYwKCVyY3gpLCAlcjgKKyAgICBzYmIgICAweDY4KCVyY3gpLCAlcjkKKyAg
ICBzYmIgICBcJDB4MCwgJXIxMAorICAgIHNiYiAgIFwkMHgwLCAlcjExCisKKyAgICBhZGQgICAw
eDIwKCVyY3gpLCAlcjEyCisgICAgbW92ICAgJXIxMiwgMHgyMCglcmN4KSAgICAjIFJlc3VsdCBD
NC1DNworICAgIGFkYyAgIDB4MjgoJXJjeCksICVyMTMKKyAgICBtb3YgICAlcjEzLCAweDI4KCVy
Y3gpCisgICAgYWRjICAgMHgzMCglcmN4KSwgJXIxNAorICAgIG1vdiAgICVyMTQsIDB4MzAoJXJj
eCkKKyAgICBhZGMgICAweDM4KCVyY3gpLCAlcjE1CisgICAgbW92ICAgJXIxNSwgMHgzOCglcmN4
KQorICAgIGFkYyAgIDB4NDAoJXJjeCksICVyOAorICAgIG1vdiAgICVyOCwgMHg0MCglcmN4KSAg
ICAgIyBSZXN1bHQgQzgtQzE1CisgICAgYWRjICAgMHg0OCglcmN4KSwgJXI5CisgICAgbW92ICAg
JXI5LCAweDQ4KCVyY3gpCisgICAgYWRjICAgMHg1MCglcmN4KSwgJXIxMAorICAgIG1vdiAgICVy
MTAsIDB4NTAoJXJjeCkKKyAgICBhZGMgICAweDU4KCVyY3gpLCAlcjExCisgICAgbW92ICAgJXIx
MSwgMHg1OCglcmN4KQorICAgIG1vdiAgIDB4NjAoJXJjeCksICVyMTIKKyAgICBhZGMgICBcJDB4
MCwgJXIxMgorICAgIG1vdiAgICVyMTIsIDB4NjAoJXJjeCkKKyAgICBtb3YgICAweDY4KCVyY3gp
LCAlcjEzCisgICAgYWRjICAgXCQweDAsICVyMTMKKyAgICBtb3YgICAlcjEzLCAweDY4KCVyY3gp
CisKKyAgICBhZGQgXCQ5NiwgJXJzcAorICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IC05NgorICAg
IHBvcCAlcmJwCisgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgLTgKKyAgLmNmaV9zYW1lX3ZhbHVl
IHJicAorICAgIHBvcCAlcmJ4CisgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgLTgKKyAgLmNmaV9z
YW1lX3ZhbHVlIHJieAorX19fCisgIHJldHVybiAkYm9keTsKK30KKworIyA0MzQtYml0IG11bHRp
cGxpY2F0aW9uIHVzaW5nIEthcmF0c3ViYSAob25lIGxldmVsKSwKKyMgc2Nob29sYm9vayAob25l
IGxldmVsKS4KK3N1YiBtdWwgeworICBteSAkY29kZT08PF9fXzsKKyAgICBtb3YgJXJkeCwgJXJj
eAorCisgICAgc3ViIFwkMTEyLCAgJXJzcCAgICAgICAgICAgIyBBbGxvY2F0aW5nIHNwYWNlIGlu
IHN0YWNrCisgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgMTEyCisKKyAgICAjIHJjeFswLTNdIDwt
IEFIK0FMCisgICAgeG9yICVyYXgsICVyYXgKKyAgICBtb3YgMHgyMCglcmRpKSwgJXI4CisgICAg
bW92IDB4MjgoJXJkaSksICVyOQorICAgIG1vdiAweDMwKCVyZGkpLCAlcjEwCisgICAgeG9yICAg
ICAgICVyMTEsICVyMTEKKyAgICBhZGQgIDB4MCglcmRpKSwgJXI4CisgICAgYWRjICAweDgoJXJk
aSksICVyOQorICAgIGFkYyAweDEwKCVyZGkpLCAlcjEwCisgICAgYWRjIDB4MTgoJXJkaSksICVy
MTEKKyAgICAjIHN0b3JlIEFIK0FMIG1hc2sKKyAgICBzYmIgIFwkMCwgICVyYXgKKyAgICBtb3Yg
JXJheCwgMHg0MCglcnNwKQorICAgICMgc3RvcmUgQUgrQUwgaW4gMC0weDE4KHJjeCkKKyAgICBt
b3YgJXI4LCAgIDB4MCglcmN4KQorICAgIG1vdiAlcjksICAgMHg4KCVyY3gpCisgICAgbW92ICVy
MTAsIDB4MTAoJXJjeCkKKyAgICBtb3YgJXIxMSwgMHgxOCglcmN4KQorCisgICAgIyByMTItcjE1
IDwtIEJIK0JMCisgICAgeG9yICVyZHgsICVyZHgKKyAgICBtb3YgMHgyMCglcnNpKSwgJXIxMgor
ICAgIG1vdiAweDI4KCVyc2kpLCAlcjEzCisgICAgbW92IDB4MzAoJXJzaSksICVyMTQKKyAgICB4
b3IgICAgICAgJXIxNSwgJXIxNQorICAgIGFkZCAgMHgwKCVyc2kpLCAlcjEyCisgICAgYWRjICAw
eDgoJXJzaSksICVyMTMKKyAgICBhZGMgMHgxMCglcnNpKSwgJXIxNAorICAgIGFkYyAweDE4KCVy
c2kpLCAlcjE1CisgICAgc2JiIFwkMHgwLCAlcmR4CisgICAgIyBzdG9yZSBCSCtCTCBtYXNrCisg
ICAgbW92ICVyZHgsIDB4NDgoJXJzcCkKKworICAgICMgKHJzcFswLTB4MzhdKSA8LSAoQUgrQUwp
KihCSCtCTCkKKyAgICBtb3YgKCVyY3gpLCAlcmF4CisgICAgbXVsICVyMTIKKyAgICBtb3YgJXJh
eCwgKCVyc3ApICAgICAgICAgICAgIyBjMAorICAgIG1vdiAlcmR4LCAlcjgKKworICAgIHhvciAl
cjksICAlcjkKKyAgICBtb3YgKCVyY3gpLCAlcmF4CisgICAgbXVsICVyMTMKKyAgICBhZGQgJXJh
eCwgJXI4CisgICAgYWRjICVyZHgsICVyOQorCisgICAgeG9yICVyMTAsICVyMTAKKyAgICBtb3Yg
MHg4KCVyY3gpLCAlcmF4CisgICAgbXVsICVyMTIKKyAgICBhZGQgJXJheCwgJXI4CisgICAgbW92
ICVyOCwgIDB4OCglcnNwKSAgICAgICAgICAjIGMxCisgICAgYWRjICVyZHgsICVyOQorICAgIGFk
YyBcJDB4MCwlcjEwCisKKyAgICB4b3IgJXI4LCAlcjgKKyAgICBtb3YgKCVyY3gpLCAlcmF4Cisg
ICAgbXVsICVyMTQKKyAgICBhZGQgJXJheCwgJXI5CisgICAgYWRjICVyZHgsICVyMTAKKyAgICBh
ZGMgXCQweDAsJXI4CisKKyAgICBtb3YgMHgxMCglcmN4KSwgJXJheAorICAgIG11bCAlcjEyCisg
ICAgYWRkICVyYXgsICVyOQorICAgIGFkYyAlcmR4LCAlcjEwCisgICAgYWRjIFwkMHgwLCVyOAor
CisgICAgbW92IDB4OCglcmN4KSwgJXJheAorICAgIG11bCAlcjEzCisgICAgYWRkICVyYXgsICVy
OQorICAgIG1vdiAlcjksIDB4MTAoJXJzcCkgICAgICAgICAjIGMyCisgICAgYWRjICVyZHgsICVy
MTAKKyAgICBhZGMgXCQweDAsICVyOAorCisgICAgeG9yICVyOSwgJXI5CisgICAgbW92ICglcmN4
KSwlcmF4CisgICAgbXVsICVyMTUKKyAgICBhZGQgJXJheCwgJXIxMAorICAgIGFkYyAlcmR4LCAl
cjgKKyAgICBhZGMgXCQweDAsJXI5CisKKyAgICBtb3YgMHgxOCglcmN4KSwgJXJheAorICAgIG11
bCAlcjEyCisgICAgYWRkICVyYXgsICVyMTAKKyAgICBhZGMgJXJkeCwgJXI4CisgICAgYWRjIFwk
MHgwLCVyOQorCisgICAgbW92IDB4OCglcmN4KSwgJXJheAorICAgIG11bCAlcjE0CisgICAgYWRk
ICVyYXgsICVyMTAKKyAgICBhZGMgJXJkeCwgJXI4CisgICAgYWRjIFwkMHgwLCVyOQorCisgICAg
bW92IDB4MTAoJXJjeCksICVyYXgKKyAgICBtdWwgJXIxMworICAgIGFkZCAlcmF4LCAlcjEwCisg
ICAgbW92ICVyMTAsIDB4MTgoJXJzcCkgICAgICAgICMgYzMKKyAgICBhZGMgJXJkeCwgJXI4Cisg
ICAgYWRjIFwkMHgwLCAlcjkKKworICAgIHhvciAlcjEwLCAlcjEwCisgICAgbW92IDB4OCglcmN4
KSwgJXJheAorICAgIG11bCAlcjE1CisgICAgYWRkICVyYXgsICVyOAorICAgIGFkYyAlcmR4LCAl
cjkKKyAgICBhZGMgXCQweDAsJXIxMAorCisgICAgbW92IDB4MTgoJXJjeCksICVyYXgKKyAgICBt
dWwgJXIxMworICAgIGFkZCAlcmF4LCAlcjgKKyAgICBhZGMgJXJkeCwgJXI5CisgICAgYWRjIFwk
MHgwLCVyMTAKKworICAgIG1vdiAweDEwKCVyY3gpLCAlcmF4CisgICAgbXVsICVyMTQKKyAgICBh
ZGQgJXJheCwgJXI4ICAgICAgICAgICAgICAgIyBjNAorICAgIG1vdiAgJXI4LCAweDIwKCVyc3Ap
CisgICAgYWRjICVyZHgsICVyOQorICAgIGFkYyBcJDB4MCwlcjEwCisKKyAgICB4b3IgJXIxMSwg
JXIxMQorICAgIG1vdiAweDEwKCVyY3gpLCAlcmF4CisgICAgbXVsICVyMTUKKyAgICBhZGQgJXJh
eCwgJXI5CisgICAgYWRjICVyZHgsICVyMTAKKyAgICBhZGMgXCQweDAsJXIxMQorCisgICAgbW92
IDB4MTgoJXJjeCksICVyYXgKKyAgICBtdWwgJXIxNAorICAgIGFkZCAlcmF4LCAlcjkgICAgICAg
ICAgICAgICAjIGM1CisgICAgbW92ICAlcjksIDB4MjgoJXJzcCkKKyAgICBhZGMgJXJkeCwgJXIx
MAorICAgIGFkYyBcJDB4MCwlcjExCisKKyAgICBtb3YgMHgxOCglcmN4KSwgJXJheAorICAgIG11
bCAlcjE1CisgICAgYWRkICVyYXgsICVyMTAgICAgICAgICAgICAgICMgYzYKKyAgICBtb3YgJXIx
MCwgMHgzMCglcnNwKQorICAgIGFkYyAlcmR4LCAlcjExICAgICAgICAgICAgICAjIGM3CisgICAg
bW92ICVyMTEsIDB4MzgoJXJzcCkKKworICAgICMgcjEyLXIxNSA8LSBtYXNrZWQgKEJIICsgQkwp
CisgICAgbW92IDB4NDAoJXJzcCksICVyYXgKKyAgICBhbmQgJXJheCwgJXIxMgorICAgIGFuZCAl
cmF4LCAlcjEzCisgICAgYW5kICVyYXgsICVyMTQKKyAgICBhbmQgJXJheCwgJXIxNQorCisgICAg
IyByOC1yMTEgPC0gbWFza2VkIChBSCArIEFMKQorICAgIG1vdiAweDQ4KCVyc3ApLCVyYXgKKyAg
ICBtb3YgMHgwMChyY3gpLCAlcjgKKyAgICBhbmQgJXJheCwgJXI4CisgICAgbW92IDB4MDgocmN4
KSwgJXI5CisgICAgYW5kICVyYXgsICVyOQorICAgIG1vdiAweDEwKHJjeCksICVyMTAKKyAgICBh
bmQgJXJheCwgJXIxMAorICAgIG1vdiAweDE4KHJjeCksICVyMTEKKyAgICBhbmQgJXJheCwgJXIx
MQorCisgICAgIyByMTItcjE1IDwtIG1hc2tlZCAoQUggKyBBTCkgKyBtYXNrZWQgKEJIICsgQkwp
CisgICAgYWRkICAlcjgsICVyMTIKKyAgICBhZGMgICVyOSwgJXIxMworICAgIGFkYyAlcjEwLCAl
cjE0CisgICAgYWRjICVyMTEsICVyMTUKKworICAgICMgcnNwWzB4MjAtMHgzOF0gPC0gKEFIK0FM
KSB4IChCSCtCTCkgaGlnaAorICAgIG1vdiAweDIwKCVyc3ApLCAlcmF4CisgICAgYWRkICVyYXgs
ICVyMTIKKyAgICBtb3YgMHgyOCglcnNwKSwgJXJheAorICAgIGFkYyAlcmF4LCAlcjEzCisgICAg
bW92IDB4MzAoJXJzcCksICVyYXgKKyAgICBhZGMgJXJheCwgJXIxNAorICAgIG1vdiAweDM4KCVy
c3ApLCAlcmF4CisgICAgYWRjICVyYXgsICVyMTUKKyAgICBtb3YgJXIxMiwgMHg1MCglcnNwKQor
ICAgIG1vdiAlcjEzLCAweDU4KCVyc3ApCisgICAgbW92ICVyMTQsIDB4NjAoJXJzcCkKKyAgICBt
b3YgJXIxNSwgMHg2OCglcnNwKQorCisgICAgIyBbcmN4XSA8LSBDTCA9IEFMIHggQkwKKyAgICBt
b3YgKCVyZGkpLCAlcjExCisgICAgbW92ICglcnNpKSwgJXJheAorICAgIG11bCAlcjExCisgICAg
eG9yICVyOSwgICVyOQorICAgIG1vdiAlcmF4LCAoJXJjeCkgICAgICAgICAgICAgICMgYzAKKyAg
ICBtb3YgJXJkeCwgJXI4CisKKyAgICBtb3YgMHgxMCglcmRpKSwgJXIxNAorICAgIG1vdiAweDgo
JXJzaSksICVyYXgKKyAgICBtdWwgJXIxMQorICAgIHhvciAlcjEwLCAlcjEwCisgICAgYWRkICVy
YXgsICVyOAorICAgIGFkYyAlcmR4LCAlcjkKKworICAgIG1vdiAweDgoJXJkaSksICVyMTIKKyAg
ICBtb3YgKCVyc2kpLCAlcmF4CisgICAgbXVsICVyMTIKKyAgICBhZGQgJXJheCwgJXI4CisgICAg
bW92ICVyOCwgIDB4OCglcmN4KSAgICAgICAgICAgICMgYzEKKyAgICBhZGMgJXJkeCwgJXI5Cisg
ICAgYWRjIFwkMHgwLCVyMTAKKworICAgIHhvciAlcjgsICAlcjgKKyAgICBtb3YgMHgxMCglcnNp
KSwgJXJheAorICAgIG11bCAlcjExCisgICAgYWRkICVyYXgsICVyOQorICAgIGFkYyAlcmR4LCAl
cjEwCisgICAgYWRjIFwkMHgwLCVyOAorCisgICAgbW92ICglcnNpKSwlcjEzCisgICAgbW92ICVy
MTQsICAlcmF4CisgICAgbXVsICVyMTMKKyAgICBhZGQgJXJheCwgJXI5CisgICAgYWRjICVyZHgs
ICVyMTAKKyAgICBhZGMgXCQweDAsJXI4CisKKyAgICBtb3YgMHg4KCVyc2kpLCAlcmF4CisgICAg
bXVsICVyMTIKKyAgICBhZGQgJXJheCwgJXI5CisgICAgbW92ICVyOSwgMHgxMCglcmN4KSAgICAg
ICAgICAgIyBjMgorICAgIGFkYyAlcmR4LCAlcjEwCisgICAgYWRjIFwkMHgwLCVyOAorCisgICAg
eG9yICVyOSwgICVyOQorICAgIG1vdiAweDE4KCVyc2kpLCAlcmF4CisgICAgbXVsICVyMTEKKyAg
ICBtb3YgMHgxOCglcmRpKSwgJXIxNQorICAgIGFkZCAlcmF4LCAlcjEwCisgICAgYWRjICVyZHgs
ICVyOAorICAgIGFkYyBcJDB4MCwlcjkKKworICAgIG1vdiAlcjE1LCAlcmF4CisgICAgbXVsICVy
MTMKKyAgICBhZGQgJXJheCwgJXIxMAorICAgIGFkYyAlcmR4LCAlcjgKKyAgICBhZGMgXCQweDAs
JXI5CisKKyAgICBtb3YgMHgxMCglcnNpKSwgJXJheAorICAgIG11bCAlcjEyCisgICAgYWRkICVy
YXgsICVyMTAKKyAgICBhZGMgJXJkeCwgJXI4CisgICAgYWRjIFwkMHgwLCVyOQorCisgICAgbW92
IDB4OCglcnNpKSwgJXJheAorICAgIG11bCAlcjE0CisgICAgYWRkICVyYXgsICVyMTAKKyAgICBt
b3YgJXIxMCwgMHgxOCglcmN4KSAgICAgICAgICAgIyBjMworICAgIGFkYyAlcmR4LCAlcjgKKyAg
ICBhZGMgXCQweDAsJXI5CisKKyAgICB4b3IgJXIxMCwgJXIxMAorICAgIG1vdiAweDE4KCVyc2kp
LCAlcmF4CisgICAgbXVsICVyMTIKKyAgICBhZGQgJXJheCwgJXI4CisgICAgYWRjICVyZHgsICVy
OQorICAgIGFkYyBcJDB4MCwlcjEwCisKKyAgICBtb3YgMHg4KCVyc2kpLCAlcmF4CisgICAgbXVs
ICVyMTUKKyAgICBhZGQgJXJheCwgJXI4CisgICAgYWRjICVyZHgsICVyOQorICAgIGFkYyBcJDB4
MCwlcjEwCisKKyAgICBtb3YgMHgxMCglcnNpKSwgJXJheAorICAgIG11bCAlcjE0CisgICAgYWRk
ICVyYXgsICVyOAorICAgIG1vdiAlcjgsICAweDIwKCVyY3gpICAgICAgICAgICAjIGM0CisgICAg
YWRjICVyZHgsICVyOQorICAgIGFkYyBcJDB4MCwlcjEwCisKKyAgICB4b3IgJXI4LCAlcjgKKyAg
ICBtb3YgMHgxOCglcnNpKSwgJXJheAorICAgIG11bCAlcjE0CisgICAgYWRkICVyYXgsICVyOQor
ICAgIGFkYyAlcmR4LCAlcjEwCisgICAgYWRjIFwkMHgwLCVyOAorCisgICAgbW92IDB4MTAoJXJz
aSksICVyYXgKKyAgICBtdWwgJXIxNQorICAgIGFkZCAlcmF4LCAlcjkKKyAgICBtb3YgJXI5LCAg
MHgyOCglcmN4KSAgICAgICAgICAgIyBjNQorICAgIGFkYyAlcmR4LCAlcjEwCisgICAgYWRjIFwk
MHgwLCVyOAorCisgICAgbW92IDB4MTgoJXJzaSksICVyYXgKKyAgICBtdWwgJXIxNQorICAgIGFk
ZCAlcmF4LCAlcjEwCisgICAgbW92ICVyMTAsIDB4MzAoJXJjeCkgICAgICAgICAgIyBjNgorICAg
IGFkYyAlcmR4LCAlcjgKKyAgICBtb3YgJXI4LCAgMHgzOCglcmN4KSAgICAgICAgICAjIGM3CisK
KyAgICAjIHJjeFsweDQwLTB4NjhdIDwtIEFIKkJICisgICAgIyBtdWx0aXBsaWVzIDIgMTkyLWJp
dCBudW1iZXJzIEEsQgorICAgIG1vdiAweDIwKCVyZGkpLCAlcjExCisgICAgbW92IDB4MjAoJXJz
aSksICVyYXgKKyAgICBtdWwgJXIxMQorICAgIHhvciAlcjksICAlcjkKKyAgICBtb3YgJXJheCwg
MHg0MCglcmN4KSAgICMgYzAKKyAgICBtb3YgJXJkeCwgJXI4CisKKyAgICBtb3YgMHgzMCglcmRp
KSwgJXIxNAorICAgIG1vdiAweDI4KCVyc2kpLCAlcmF4CisgICAgbXVsICVyMTEKKyAgICB4b3Ig
JXIxMCwgJXIxMAorICAgIGFkZCAlcmF4LCAlcjgKKyAgICBhZGMgJXJkeCwgJXI5CisKKyAgICBt
b3YgMHgyOCglcmRpKSwgJXIxMgorICAgIG1vdiAweDIwKCVyc2kpLCAlcmF4CisgICAgbXVsICVy
MTIKKyAgICBhZGQgJXJheCwgJXI4CisgICAgbW92ICVyOCwgIDB4NDgoJXJjeCkgICAgIyBjMQor
ICAgIGFkYyAlcmR4LCAlcjkKKyAgICBhZGMgXCQweDAsJXIxMAorCisgICAgeG9yICVyOCwgICVy
OAorICAgIG1vdiAweDMwKCVyc2kpLCAlcmF4CisgICAgbXVsICVyMTEKKyAgICBhZGQgJXJheCwg
JXI5CisgICAgYWRjICVyZHgsICVyMTAKKyAgICBhZGMgXCQweDAsJXI4CisKKyAgICBtb3YgMHgy
MCglcnNpKSwgJXIxMworICAgIG1vdiAlcjE0LCAlcmF4CisgICAgbXVsICVyMTMKKyAgICBhZGQg
JXJheCwgJXI5CisgICAgYWRjICVyZHgsICVyMTAKKyAgICBhZGMgXCQweDAsJXI4CisKKyAgICBt
b3YgMHgyOCglcnNpKSwgJXJheAorICAgIG11bCAlcjEyCisgICAgYWRkICVyYXgsICVyOQorICAg
IG1vdiAlcjksICAweDUwKCVyY3gpICAgICMgYzIKKyAgICBhZGMgJXJkeCwgJXIxMAorICAgIGFk
YyBcJDB4MCwlcjgKKworICAgIG1vdiAweDMwKCVyc2kpLCAlcmF4CisgICAgbXVsICVyMTIKKyAg
ICB4b3IgJXIxMiwgJXIxMgorICAgIGFkZCAlcmF4LCAlcjEwCisgICAgYWRjICVyZHgsICVyOAor
ICAgIGFkYyBcJDB4MCwlcjEyCisKKyAgICBtb3YgMHgyOCglcnNpKSwgJXJheAorICAgIG11bCAl
cjE0CisgICAgYWRkICVyYXgsICVyMTAKKyAgICBhZGMgJXJkeCwgJXI4CisgICAgYWRjIFwkMHgw
LCVyMTIKKyAgICBtb3YgJXIxMCwgMHg1OCglcmN4KSAgICMgYzMKKworICAgIG1vdiAweDMwKCVy
c2kpLCAlcmF4CisgICAgbXVsICVyMTQKKyAgICBhZGQgJXJheCwgJXI4CisgICAgYWRjIFwkMHgw
LCVyMTIKKyAgICBtb3YgJXI4LCAgMHg2MCglcmN4KSAgICAjIGM0CisKKyAgICBhZGQgJXIxMiwg
JXJkeCAgICAgICAgICMgYzUKKworICAgICMgW3I4LXIxNV0gPC0gKEFIK0FMKXgoQkgrQkwpIC0g
QUx4QkwKKyAgICBtb3YgIDB4MCglcnNwKSwgJXI4CisgICAgc3ViICAweDAoJXJjeCksICVyOAor
ICAgIG1vdiAgMHg4KCVyc3ApLCAlcjkKKyAgICBzYmIgIDB4OCglcmN4KSwgJXI5CisgICAgbW92
IDB4MTAoJXJzcCksICVyMTAKKyAgICBzYmIgMHgxMCglcmN4KSwgJXIxMAorICAgIG1vdiAweDE4
KCVyc3ApLCAlcjExCisgICAgc2JiIDB4MTgoJXJjeCksICVyMTEKKyAgICBtb3YgMHg1MCglcnNw
KSwgJXIxMgorICAgIHNiYiAweDIwKCVyY3gpLCAlcjEyCisgICAgbW92IDB4NTgoJXJzcCksICVy
MTMKKyAgICBzYmIgMHgyOCglcmN4KSwgJXIxMworICAgIG1vdiAweDYwKCVyc3ApLCAlcjE0Cisg
ICAgc2JiIDB4MzAoJXJjeCksICVyMTQKKyAgICBtb3YgMHg2OCglcnNwKSwgJXIxNQorICAgIHNi
YiAweDM4KCVyY3gpLCAlcjE1CisKKyAgICAjIFtyOC1yMTVdIDwtIChBSCtBTCkgeCAoQkgrQkwp
IC0gQUx4QkwgLSBBSHhCSAorICAgIG1vdiAweDQwKCVyY3gpLCAlcmF4CisgICAgc3ViICVyYXgs
ICVyOAorICAgIG1vdiAweDQ4KCVyY3gpLCAlcmF4CisgICAgc2JiICVyYXgsICVyOQorICAgIG1v
diAweDUwKCVyY3gpLCAlcmF4CisgICAgc2JiICVyYXgsICVyMTAKKyAgICBtb3YgMHg1OCglcmN4
KSwgJXJheAorICAgIHNiYiAlcmF4LCAlcjExCisgICAgbW92IDB4NjAoJXJjeCksICVyYXgKKyAg
ICBzYmIgJXJheCwgJXIxMgorICAgIHNiYiAlcmR4LCAlcjEzCisgICAgc2JiIFwkMHgwLCVyMTQK
KyAgICBzYmIgXCQweDAsJXIxNQorCisgICAgIyBGaW5hbCByZXN1bHQKKyAgICBhZGQgMHgyMCgl
cmN4KSwgJXI4CisgICAgbW92ICVyOCwgMHgyMCglcmN4KSAgICAjIFJlc3VsdCBDNC1DNworICAg
IGFkYyAweDI4KCVyY3gpLCAlcjkKKyAgICBtb3YgJXI5LCAweDI4KCVyY3gpCisgICAgYWRjIDB4
MzAoJXJjeCksICVyMTAKKyAgICBtb3YgJXIxMCwgMHgzMCglcmN4KQorICAgIGFkYyAweDM4KCVy
Y3gpLCAlcjExCisgICAgbW92ICVyMTEsIDB4MzgoJXJjeCkKKyAgICBhZGMgMHg0MCglcmN4KSwg
JXIxMgorICAgIG1vdiAlcjEyLCAweDQwKCVyY3gpICAgIyBSZXN1bHQgQzgtQzEzCisgICAgYWRj
IDB4NDgoJXJjeCksICVyMTMKKyAgICBtb3YgJXIxMywgMHg0OCglcmN4KQorICAgIGFkYyAweDUw
KCVyY3gpLCAlcjE0CisgICAgbW92ICVyMTQsIDB4NTAoJXJjeCkKKyAgICBhZGMgMHg1OCglcmN4
KSwgJXIxNQorICAgIG1vdiAlcjE1LCAweDU4KCVyY3gpCisgICAgbW92IDB4NjAoJXJjeCksICVy
MTIKKyAgICBhZGMgXCQweDAsICVyMTIKKyAgICBtb3YgJXIxMiwgMHg2MCglcmN4KQorICAgIGFk
YyBcJDB4MCwgJXJkeAorICAgIG1vdiAlcmR4LCAweDY4KCVyY3gpCisKKyAgICBhZGQgXCQxMTIs
ICVyc3AgICAgICAgICMgUmVzdG9yaW5nIHNwYWNlIGluIHN0YWNrCisgIC5jZmlfYWRqdXN0X2Nm
YV9vZmZzZXQgLTExMgorX19fCisKKyAgcmV0dXJuICRjb2RlOworfQorCisjICBJbnRlZ2VyIG11
bHRpcGxpY2F0aW9uIGJhc2VkIG9uIEthcmF0c3ViYSBtZXRob2QKKyMgIE9wZXJhdGlvbjogYyBb
cmR4XSA9IGEgW3JkaV0gKiBiIFtyc2ldCisjICBOT1RFOiBhPWMgb3IgYj1jIGFyZSBub3QgYWxs
b3dlZAorc3ViIHNpa2VfbXVsIHsKKyAgbXkgJGp1bXBfbXVsX2Jkdz0mYWx0X2ltcGwoIi5MbXVs
X2JkdyIpIGlmICgkYm1pMl9hZHgpOworICAjIE1VTCBmb3IgQnJvYWR3ZWxsIENQVXMKKyAgbXkg
JG11bF9iZHc9Jm11bF9iZHcoKSBpZiAoJGJtaTJfYWR4KTsKKyAgIyBNVUwgZm9yIENQVXMgb2xk
ZXIgdGhhbiBCcm9hZHdlbGwKKyAgbXkgJG11bD0mbXVsKCk7CisKKyAgbXkgJGJvZHk9PDxfX187
CisgIC5MbXVsX2JkdzoKKyAgLmNmaV9zdGFydHByb2MKKyAgICAjIHNpa2VfbXBtdWwgaGFzIGFs
cmVhZHkgcHVzaGVkIHIxMi0tMTUgYnkgdGhpcyBwb2ludC4KKyAgLmNmaV9hZGp1c3RfY2ZhX29m
ZnNldCAzMgorICAuY2ZpX29mZnNldCByMTIsIC0xNgorICAuY2ZpX29mZnNldCByMTMsIC0yNAor
ICAuY2ZpX29mZnNldCByMTQsIC0zMgorICAuY2ZpX29mZnNldCByMTUsIC00MAorCisgICAgJG11
bF9iZHcKKworICAgIHBvcCAlcjE1CisgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgLTgKKyAgLmNm
aV9zYW1lX3ZhbHVlIHIxNQorICAgIHBvcCAlcjE0CisgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQg
LTgKKyAgLmNmaV9zYW1lX3ZhbHVlIHIxNAorICAgIHBvcCAlcjEzCisgIC5jZmlfYWRqdXN0X2Nm
YV9vZmZzZXQgLTgKKyAgLmNmaV9zYW1lX3ZhbHVlIHIxMworICAgIHBvcCAlcjEyCisgIC5jZmlf
YWRqdXN0X2NmYV9vZmZzZXQgLTgKKyAgLmNmaV9zYW1lX3ZhbHVlIHIxMgorICAgICAgcmV0Cisg
IC5jZmlfZW5kcHJvYworCisgIC5nbG9ibCAgJHtQUkVGSVh9X21wbXVsCisgIC50eXBlICAgJHtQ
UkVGSVh9X21wbXVsLFxAZnVuY3Rpb24sMworICAke1BSRUZJWH1fbXBtdWw6CisgIC5jZmlfc3Rh
cnRwcm9jCisgICAgcHVzaCAlcjEyCisgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgOAorICAuY2Zp
X29mZnNldCByMTIsIC0xNgorICAgIHB1c2ggJXIxMworICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0
IDgKKyAgLmNmaV9vZmZzZXQgcjEzLCAtMjQKKyAgICBwdXNoICVyMTQKKyAgLmNmaV9hZGp1c3Rf
Y2ZhX29mZnNldCA4CisgIC5jZmlfb2Zmc2V0IHIxNCwgLTMyCisgICAgcHVzaCAlcjE1CisgIC5j
ZmlfYWRqdXN0X2NmYV9vZmZzZXQgOAorICAuY2ZpX29mZnNldCByMTUsIC00MAorCisgICAgIyBK
dW1wIHRvIG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbiBpZgorICAgICMgQ1BVIHN1cHBvcnRzIEFE
Q1gvQURPWC9NVUxYCisgICAgJGp1bXBfbXVsX2JkdworICAgICMgT3RoZXJ3aXNlIHVzZSBnZW5l
cmljIGltcGxlbWVudGF0aW9uCisgICAgJG11bAorCisgICAgcG9wICVyMTUKKyAgLmNmaV9hZGp1
c3RfY2ZhX29mZnNldCAtOAorICAgIHBvcCAlcjE0CisgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQg
LTgKKyAgICBwb3AgJXIxMworICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IC04CisgICAgcG9wICVy
MTIKKyAgLmNmaV9hZGp1c3RfY2ZhX29mZnNldCAtOAorICAgIHJldAorICAuY2ZpX2VuZHByb2MK
KworX19fCisgIHJldHVybiAkYm9keTsKK30KKworJGNvZGUuPSZzaWtlX211bCgpOworCitmb3Jl
YWNoIChzcGxpdCgiXG4iLCRjb2RlKSkgeworICBzL1xgKFteXGBdKilcYC9ldmFsKCQxKS9nZTsK
KyAgcHJpbnQgJF8sIlxuIjsKK30KKworY2xvc2UgU1RET1VUOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L3Npa2UvYXNtL2ZwX2dlbmVyaWMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL2Fz
bS9mcF9nZW5lcmljLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkxYWQxZTE3NWVkODcxODAzNzg1OTQxYzkyOTJh
YzZkNzBhYzYzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL2FzbS9m
cF9nZW5lcmljLmMKQEAgLTAsMCArMSwxODEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKiBTSURIOiBhbiBlZmZpY2llbnQgc3VwZXJzaW5ndWxhciBpc29nZW55IGNy
eXB0b2dyYXBoeSBsaWJyYXJ5CisqCisqIEFic3RyYWN0OiBwb3J0YWJsZSBtb2R1bGFyIGFyaXRo
bWV0aWMgZm9yIFA1MDMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor
I2luY2x1ZGUgPG9wZW5zc2wvYmFzZS5oPgorCisjaWYgZGVmaW5lZChPUEVOU1NMX05PX0FTTSkg
fHwgXAorICAgICghZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkgJiYgIWRlZmluZWQoT1BFTlNTTF9B
QVJDSDY0KSkKKworI2luY2x1ZGUgIi4uL3V0aWxzLmgiCisjaW5jbHVkZSAiLi4vZnB4LmgiCisK
Ky8vIEdsb2JhbCBjb25zdGFudHMKK2V4dGVybiBjb25zdCBzdHJ1Y3QgcGFyYW1zX3Qgc2lrZV9w
YXJhbXM7CisKK3N0YXRpYyB2b2lkIGRpZ2l0X3hfZGlnaXQoY29uc3QgY3J5cHRvX3dvcmRfdCBh
LCBjb25zdCBjcnlwdG9fd29yZF90IGIsIGNyeXB0b193b3JkX3QqIGMpCit7IC8vIERpZ2l0IG11
bHRpcGxpY2F0aW9uLCBkaWdpdCAqIGRpZ2l0IC0+IDItZGlnaXQgcmVzdWx0CisgICAgY3J5cHRv
X3dvcmRfdCBhbCwgYWgsIGJsLCBiaCwgdGVtcDsKKyAgICBjcnlwdG9fd29yZF90IGFsYmwsIGFs
YmgsIGFoYmwsIGFoYmgsIHJlczEsIHJlczIsIHJlczMsIGNhcnJ5OworICAgIGNyeXB0b193b3Jk
X3QgbWFza19sb3cgPSAoY3J5cHRvX3dvcmRfdCkoLTEpID4+IChzaXplb2YoY3J5cHRvX3dvcmRf
dCkqNCk7CisgICAgY3J5cHRvX3dvcmRfdCBtYXNrX2hpZ2ggPSAoY3J5cHRvX3dvcmRfdCkoLTEp
IDw8IChzaXplb2YoY3J5cHRvX3dvcmRfdCkqNCk7CisKKyAgICBhbCA9IGEgJiBtYXNrX2xvdzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb3cgcGFydAorICAgIGFoID0gYSA+PiAo
c2l6ZW9mKGNyeXB0b193b3JkX3QpICogNCk7ICAgICAgICAgIC8vIEhpZ2ggcGFydAorICAgIGJs
ID0gYiAmIG1hc2tfbG93OworICAgIGJoID0gYiA+PiAoc2l6ZW9mKGNyeXB0b193b3JkX3QpICog
NCk7CisKKyAgICBhbGJsID0gYWwqYmw7CisgICAgYWxiaCA9IGFsKmJoOworICAgIGFoYmwgPSBh
aCpibDsKKyAgICBhaGJoID0gYWgqYmg7CisgICAgY1swXSA9IGFsYmwgJiBtYXNrX2xvdzsgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gQzAwCisKKyAgICByZXMxID0gYWxibCA+PiAoc2l6ZW9m
KGNyeXB0b193b3JkX3QpICogNCk7CisgICAgcmVzMiA9IGFoYmwgJiBtYXNrX2xvdzsKKyAgICBy
ZXMzID0gYWxiaCAmIG1hc2tfbG93OworICAgIHRlbXAgPSByZXMxICsgcmVzMiArIHJlczM7Cisg
ICAgY2FycnkgPSB0ZW1wID4+IChzaXplb2YoY3J5cHRvX3dvcmRfdCkgKiA0KTsKKyAgICBjWzBd
IF49IHRlbXAgPDwgKHNpemVvZihjcnlwdG9fd29yZF90KSAqIDQpOyAgICAvLyBDMDEKKworICAg
IHJlczEgPSBhaGJsID4+IChzaXplb2YoY3J5cHRvX3dvcmRfdCkgKiA0KTsKKyAgICByZXMyID0g
YWxiaCA+PiAoc2l6ZW9mKGNyeXB0b193b3JkX3QpICogNCk7CisgICAgcmVzMyA9IGFoYmggJiBt
YXNrX2xvdzsKKyAgICB0ZW1wID0gcmVzMSArIHJlczIgKyByZXMzICsgY2Fycnk7CisgICAgY1sx
XSA9IHRlbXAgJiBtYXNrX2xvdzsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQzEwCisgICAg
Y2FycnkgPSB0ZW1wICYgbWFza19oaWdoOworICAgIGNbMV0gXj0gKGFoYmggJiBtYXNrX2hpZ2gp
ICsgY2Fycnk7ICAgICAgICAgICAgIC8vIEMxMQorfQorCit2b2lkIHNpa2VfZnBhZGQoY29uc3Qg
ZmVsbV90IGEsIGNvbnN0IGZlbG1fdCBiLCBmZWxtX3QgYykKK3sgLy8gTW9kdWxhciBhZGRpdGlv
biwgYyA9IGErYiBtb2QgcDQzNC4KKyAgLy8gSW5wdXRzOiBhLCBiIGluIFswLCAyKnA0MzQtMV0K
KyAgLy8gT3V0cHV0OiBjIGluIFswLCAyKnA0MzQtMV0KKyAgICB1bnNpZ25lZCBpbnQgaSwgY2Fy
cnkgPSAwOworICAgIGNyeXB0b193b3JkX3QgbWFzazsKKworICAgIGZvciAoaSA9IDA7IGkgPCBO
V09SRFNfRklFTEQ7IGkrKykgeworICAgICAgICBBRERDKGNhcnJ5LCBhW2ldLCBiW2ldLCBjYXJy
eSwgY1tpXSk7CisgICAgfQorCisgICAgY2FycnkgPSAwOworICAgIGZvciAoaSA9IDA7IGkgPCBO
V09SRFNfRklFTEQ7IGkrKykgeworICAgICAgICBTVUJDKGNhcnJ5LCBjW2ldLCBzaWtlX3BhcmFt
cy5wcmltZV94MltpXSwgY2FycnksIGNbaV0pOworICAgIH0KKyAgICBtYXNrID0gMCAtIChjcnlw
dG9fd29yZF90KWNhcnJ5OworCisgICAgY2FycnkgPSAwOworICAgIGZvciAoaSA9IDA7IGkgPCBO
V09SRFNfRklFTEQ7IGkrKykgeworICAgICAgICBBRERDKGNhcnJ5LCBjW2ldLCBzaWtlX3BhcmFt
cy5wcmltZV94MltpXSAmIG1hc2ssIGNhcnJ5LCBjW2ldKTsKKyAgICB9Cit9CisKK3ZvaWQgc2lr
ZV9mcHN1Yihjb25zdCBmZWxtX3QgYSwgY29uc3QgZmVsbV90IGIsIGZlbG1fdCBjKQoreyAvLyBN
b2R1bGFyIHN1YnRyYWN0aW9uLCBjID0gYS1iIG1vZCBwNDM0LgorICAvLyBJbnB1dHM6IGEsIGIg
aW4gWzAsIDIqcDQzNC0xXQorICAvLyBPdXRwdXQ6IGMgaW4gWzAsIDIqcDQzNC0xXQorICAgIHVu
c2lnbmVkIGludCBpLCBib3Jyb3cgPSAwOworICAgIGNyeXB0b193b3JkX3QgbWFzazsKKworICAg
IGZvciAoaSA9IDA7IGkgPCBOV09SRFNfRklFTEQ7IGkrKykgeworICAgICAgICBTVUJDKGJvcnJv
dywgYVtpXSwgYltpXSwgYm9ycm93LCBjW2ldKTsKKyAgICB9CisgICAgbWFzayA9IDAgLSAoY3J5
cHRvX3dvcmRfdClib3Jyb3c7CisKKyAgICBib3Jyb3cgPSAwOworICAgIGZvciAoaSA9IDA7IGkg
PCBOV09SRFNfRklFTEQ7IGkrKykgeworICAgICAgICBBRERDKGJvcnJvdywgY1tpXSwgc2lrZV9w
YXJhbXMucHJpbWVfeDJbaV0gJiBtYXNrLCBib3Jyb3csIGNbaV0pOworICAgIH0KK30KKwordm9p
ZCBzaWtlX21wbXVsKGNvbnN0IGZlbG1fdCBhLCBjb25zdCBmZWxtX3QgYiwgZGZlbG1fdCBjKQor
eyAvLyBNdWx0aXByZWNpc2lvbiBjb21iYSBtdWx0aXBseSwgYyA9IGEqYiwgd2hlcmUgbG5nKGEp
ID0gbG5nKGIpID0gTldPUkRTX0ZJRUxELgorICAgIHVuc2lnbmVkIGludCBpLCBqOworICAgIGNy
eXB0b193b3JkX3QgdCA9IDAsIHUgPSAwLCB2ID0gMCwgVVZbMl07CisgICAgdW5zaWduZWQgaW50
IGNhcnJ5ID0gMDsKKworICAgIGZvciAoaSA9IDA7IGkgPCBOV09SRFNfRklFTEQ7IGkrKykgewor
ICAgICAgICBmb3IgKGogPSAwOyBqIDw9IGk7IGorKykgeworICAgICAgICAgICAgTVVMKGFbal0s
IGJbaS1qXSwgVVYrMSwgVVZbMF0pOworICAgICAgICAgICAgQUREQygwLCBVVlswXSwgdiwgY2Fy
cnksIHYpOworICAgICAgICAgICAgQUREQyhjYXJyeSwgVVZbMV0sIHUsIGNhcnJ5LCB1KTsKKyAg
ICAgICAgICAgIHQgKz0gY2Fycnk7CisgICAgICAgIH0KKyAgICAgICAgY1tpXSA9IHY7CisgICAg
ICAgIHYgPSB1OworICAgICAgICB1ID0gdDsKKyAgICAgICAgdCA9IDA7CisgICAgfQorCisgICAg
Zm9yIChpID0gTldPUkRTX0ZJRUxEOyBpIDwgMipOV09SRFNfRklFTEQtMTsgaSsrKSB7CisgICAg
ICAgIGZvciAoaiA9IGktTldPUkRTX0ZJRUxEKzE7IGogPCBOV09SRFNfRklFTEQ7IGorKykgewor
ICAgICAgICAgICAgTVVMKGFbal0sIGJbaS1qXSwgVVYrMSwgVVZbMF0pOworICAgICAgICAgICAg
QUREQygwLCBVVlswXSwgdiwgY2FycnksIHYpOworICAgICAgICAgICAgQUREQyhjYXJyeSwgVVZb
MV0sIHUsIGNhcnJ5LCB1KTsKKyAgICAgICAgICAgIHQgKz0gY2Fycnk7CisgICAgICAgIH0KKyAg
ICAgICAgY1tpXSA9IHY7CisgICAgICAgIHYgPSB1OworICAgICAgICB1ID0gdDsKKyAgICAgICAg
dCA9IDA7CisgICAgfQorICAgIGNbMipOV09SRFNfRklFTEQtMV0gPSB2OworfQorCit2b2lkIHNp
a2VfZnByZGMoZmVsbV90IG1hLCBmZWxtX3QgbWMpCit7IC8vIEVmZmljaWVudCBNb250Z29tZXJ5
IHJlZHVjdGlvbiB1c2luZyBjb21iYSBhbmQgZXhwbG9pdGluZyB0aGUgc3BlY2lhbCBmb3JtIG9m
IHRoZSBwcmltZSBwNDM0LgorICAvLyBtYyA9IG1hKlJeLTEgbW9kIHA0MzR4Miwgd2hlcmUgUiA9
IDJeNDQ4LgorICAvLyBJZiBtYSA8IDJeNDQ4KnA0MzQsIHRoZSBvdXRwdXQgbWMgaXMgaW4gdGhl
IHJhbmdlIFswLCAyKnA0MzQtMV0uCisgIC8vIG1hIGlzIGFzc3VtZWQgdG8gYmUgaW4gTW9udGdv
bWVyeSByZXByZXNlbnRhdGlvbi4KKyAgICB1bnNpZ25lZCBpbnQgaSwgaiwgY2FycnksIGNvdW50
ID0gWkVST19XT1JEUzsKKyAgICBjcnlwdG9fd29yZF90IFVWWzJdLCB0ID0gMCwgdSA9IDAsIHYg
PSAwOworCisgICAgZm9yIChpID0gMDsgaSA8IE5XT1JEU19GSUVMRDsgaSsrKSB7CisgICAgICAg
IG1jW2ldID0gMDsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTldPUkRTX0ZJRUxEOyBp
KyspIHsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IGk7IGorKykgeworICAgICAgICAgICAgaWYg
KGogPCAoaS1aRVJPX1dPUkRTKzEpKSB7CisgICAgICAgICAgICAgICAgTVVMKG1jW2pdLCBzaWtl
X3BhcmFtcy5wcmltZV9wMVtpLWpdLCBVVisxLCBVVlswXSk7CisgICAgICAgICAgICAgICAgQURE
QygwLCBVVlswXSwgdiwgY2FycnksIHYpOworICAgICAgICAgICAgICAgIEFEREMoY2FycnksIFVW
WzFdLCB1LCBjYXJyeSwgdSk7CisgICAgICAgICAgICAgICAgdCArPSBjYXJyeTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBBRERDKDAsIHYsIG1hW2ldLCBjYXJyeSwgdik7Cisg
ICAgICAgIEFEREMoY2FycnksIHUsIDAsIGNhcnJ5LCB1KTsKKyAgICAgICAgdCArPSBjYXJyeTsK
KyAgICAgICAgbWNbaV0gPSB2OworICAgICAgICB2ID0gdTsKKyAgICAgICAgdSA9IHQ7CisgICAg
ICAgIHQgPSAwOworICAgIH0KKworICAgIGZvciAoaSA9IE5XT1JEU19GSUVMRDsgaSA8IDIqTldP
UkRTX0ZJRUxELTE7IGkrKykgeworICAgICAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAgICAg
ICBjb3VudCAtPSAxOworICAgICAgICB9CisgICAgICAgIGZvciAoaiA9IGktTldPUkRTX0ZJRUxE
KzE7IGogPCBOV09SRFNfRklFTEQ7IGorKykgeworICAgICAgICAgICAgaWYgKGogPCAoTldPUkRT
X0ZJRUxELWNvdW50KSkgeworICAgICAgICAgICAgICAgIE1VTChtY1tqXSwgc2lrZV9wYXJhbXMu
cHJpbWVfcDFbaS1qXSwgVVYrMSwgVVZbMF0pOworICAgICAgICAgICAgICAgIEFEREMoMCwgVVZb
MF0sIHYsIGNhcnJ5LCB2KTsKKyAgICAgICAgICAgICAgICBBRERDKGNhcnJ5LCBVVlsxXSwgdSwg
Y2FycnksIHUpOworICAgICAgICAgICAgICAgIHQgKz0gY2Fycnk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgQUREQygwLCB2LCBtYVtpXSwgY2FycnksIHYpOworICAgICAgICBB
RERDKGNhcnJ5LCB1LCAwLCBjYXJyeSwgdSk7CisgICAgICAgIHQgKz0gY2Fycnk7CisgICAgICAg
IG1jW2ktTldPUkRTX0ZJRUxEXSA9IHY7CisgICAgICAgIHYgPSB1OworICAgICAgICB1ID0gdDsK
KyAgICAgICAgdCA9IDA7CisgICAgfQorICAgIEFEREMoMCwgdiwgbWFbMipOV09SRFNfRklFTEQt
MV0sIGNhcnJ5LCB2KTsKKyAgICBtY1tOV09SRFNfRklFTEQtMV0gPSB2OworfQorCisjZW5kaWYg
IC8vIE5PX0FTTSB8fCAoIVg4Nl82NCAmJiAhQUFSQ0g2NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGly
ZF9wYXJ0eS9zaWtlL2N1cnZlX3BhcmFtcy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2UvY3VydmVf
cGFyYW1zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFmYmIzZjE3Njk1ZDg0OTc5NzRjNWU1NWI3YjgwMjhjZDVm
MDA1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL2N1cnZlX3BhcmFt
cy5jCkBAIC0wLDAgKzEsMTI4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyogU0lESDogYW4gZWZmaWNpZW50IHN1cGVyc2luZ3VsYXIgaXNvZ2VueSBjcnlwdG9ncmFw
aHkgbGlicmFyeQorKgorKiBBYnN0cmFjdDogc3VwZXJzaW5ndWxhciBpc29nZW55IHBhcmFtZXRl
cnMgYW5kIGdlbmVyYXRpb24gb2YgZnVuY3Rpb25zIGZvciBQNDM0CisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJ1dGlscy5oIgorCisvLyBQYXJhbWV0
ZXJzIGZvciBpc29nZW55IHN5c3RlbSAiU0lLRSIKK2NvbnN0IHN0cnVjdCBwYXJhbXNfdCBzaWtl
X3BhcmFtcyA9IHsKKyAgICAucHJpbWUgPSB7CisgICAgICAgIFU2NF9UT19XT1JEUygweEZGRkZG
RkZGRkZGRkZGRkYpLCBVNjRfVE9fV09SRFMoMHhGRkZGRkZGRkZGRkZGRkZGKSwKKyAgICAgICAg
VTY0X1RPX1dPUkRTKDB4RkZGRkZGRkZGRkZGRkZGRiksIFU2NF9UT19XT1JEUygweEZEQzE3NjdB
RTJGRkZGRkYpLAorICAgICAgICBVNjRfVE9fV09SRFMoMHg3QkM2NUM3ODMxNThBRUEzKSwgVTY0
X1RPX1dPUkRTKDB4NkNGQzVGRDY4MUM1MjA1NiksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAw
MDIzNDFGMjcxNzczNDQpCisgICAgfSwKKyAgICAucHJpbWVfcDEgPSB7CisgICAgICAgIFU2NF9U
T19XT1JEUygweDAwMDAwMDAwMDAwMDAwMDApLCBVNjRfVE9fV09SRFMoMHgwMDAwMDAwMDAwMDAw
MDAwKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4MDAwMDAwMDAwMDAwMDAwMCksIFU2NF9UT19X
T1JEUygweEZEQzE3NjdBRTMwMDAwMDApLAorICAgICAgICBVNjRfVE9fV09SRFMoMHg3QkM2NUM3
ODMxNThBRUEzKSwgVTY0X1RPX1dPUkRTKDB4NkNGQzVGRDY4MUM1MjA1NiksCisgICAgICAgIFU2
NF9UT19XT1JEUygweDAwMDIzNDFGMjcxNzczNDQpCisgICAgfSwKKyAgICAucHJpbWVfeDIgPSB7
CisgICAgICAgIFU2NF9UT19XT1JEUygweEZGRkZGRkZGRkZGRkZGRkUpLCBVNjRfVE9fV09SRFMo
MHhGRkZGRkZGRkZGRkZGRkZGKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4RkZGRkZGRkZGRkZG
RkZGRiksIFU2NF9UT19XT1JEUygweEZCODJFQ0Y1QzVGRkZGRkYpLAorICAgICAgICBVNjRfVE9f
V09SRFMoMHhGNzhDQjhGMDYyQjE1RDQ3KSwgVTY0X1RPX1dPUkRTKDB4RDlGOEJGQUQwMzhBNDBB
QyksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDQ2ODNFNEUyRUU2ODgpCisgICAgfSwKKyAg
ICAuQV9nZW4gPSB7CisgICAgICAgIFU2NF9UT19XT1JEUygweDA1QURGNDU1QzVDMzQ1QkYpLCBV
NjRfVE9fV09SRFMoMHg5MTkzNUM1Q0M3NjdBQzJCKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4
QUZFNEU4Nzk5NTFGMDI1NyksIFU2NF9UT19XT1JEUygweDcwRTc5MkRDODlGQTI3QjEpLAorICAg
ICAgICBVNjRfVE9fV09SRFMoMHhGNzk3RjUyNkJCNDhDOENEKSwgVTY0X1RPX1dPUkRTKDB4MjE4
MURCNjEzMUFGNjIxRiksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDAwQTFDMDhCMUVDQzQp
LCAvLyBYUEEwCisgICAgICAgIFU2NF9UT19XT1JEUygweDc0ODQwRUI4N0NEQTc3ODgpLCBVNjRf
VE9fV09SRFMoMHgyOTcxQUEwRUNGOUY5RDBCKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4Q0I1
NzMyQkRGNDE3MTVENSksIFU2NF9UT19XT1JEUygweDhDRDhFNTFGN0FBQ0ZGQUEpLAorICAgICAg
ICBVNjRfVE9fV09SRFMoMHhBN0Y0MjQ3MzBEN0U0MTlGKSwgVTY0X1RPX1dPUkRTKDB4RDY3MUVC
OTE5QTE3OUU4QyksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDBGRkEyNkM1QTkyNEEpLCAv
LyBYUEExCisgICAgICAgIFU2NF9UT19XT1JEUygweEZFQzZFNjQ1ODhCNzI3M0IpLCBVNjRfVE9f
V09SRFMoMHhEMkE2MjZENzRDQkJGMUM2KSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4RjhGNThG
MDdBNzgwOThDNyksIFU2NF9UT19XT1JEUygweEUyMzk0MUY0NzA4NDFCMDMpLAorICAgICAgICBV
NjRfVE9fV09SRFMoMHgxQjYzRURBMjA0NTUzOEREKSwgVTY0X1RPX1dPUkRTKDB4NzM1Q0ZFQjBG
RkQ0OTIxNSksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDFDNENCNzc1NDI4NzYpLCAvLyBY
UUEwCisgICAgICAgIFU2NF9UT19XT1JEUygweEFEQjBGNzMzQzE3RkZERDYpLCBVNjRfVE9fV09S
RFMoMHg2QUZGQkQwMzdEQTBBMDUwKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4NjgwRUM0M0RC
MTQ0RTAyRiksIFU2NF9UT19XT1JEUygweDFFMkU1RDVGRjUyNEUzNzQpLAorICAgICAgICBVNjRf
VE9fV09SRFMoMHhFMkREQTExNTI2MEUyOTk1KSwgVTY0X1RPX1dPUkRTKDB4QTZFNEI1NTJFMkVE
RTUwOCksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDE4RUNDRERGNEI1M0UpLCAvLyBYUUEx
CisgICAgICAgIFU2NF9UT19XT1JEUygweDAxQkE0REI1MThDRDZDN0QpLCBVNjRfVE9fV09SRFMo
MHgyQ0IwMjUxRkUzQ0MwNjExKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4MjU5QjBDNjk0OUE5
MTIxQiksIFU2NF9UT19XT1JEUygweDYwRTE3QUMxNkQyRjgyQUQpLAorICAgICAgICBVNjRfVE9f
V09SRFMoMHgzQUE0MUYxQ0UxNzVEOTJEKSwgVTY0X1RPX1dPUkRTKDB4NDEzRkJFNkE5QjlCQzRG
MyksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDIyQTgxRDhENTU2NDMpLCAvLyBYUkEwCisg
ICAgICAgIFU2NF9UT19XT1JEUygweEI4QURCQzcwRkM4MkU1NEEpLCBVNjRfVE9fV09SRFMoMHhF
RjlDRERCMEQ1RkFEREVEKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4NTgyMEM3MzRDODAwOTZB
MCksIFU2NF9UT19XT1JEUygweDc3OTk5OTRCQUE5NkUwRTQpLAorICAgICAgICBVNjRfVE9fV09S
RFMoMHgwNDQ5NjE1OTlFMzc5QUY4KSwgVTY0X1RPX1dPUkRTKDB4REIyQjk0RkJGMDlGMjdFMiks
CisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDBCODdGQzcxNkMwQzYpICAvLyBYUkExCisgICAg
fSwKKyAgICAuQl9nZW4gPSB7CisgICAgICAgIFU2NF9UT19XT1JEUygweDZFNTQ5NzU1NkVERDQ4
QTMpLCBVNjRfVE9fV09SRFMoMHgyQTYxQjUwMTU0NkYxQzA1KSwKKyAgICAgICAgVTY0X1RPX1dP
UkRTKDB4RUI5MTk0NDZEMDQ5ODg3RCksIFU2NF9UT19XT1JEUygweDU4NjRBNEE2OUQ0NTBDNEYp
LAorICAgICAgICBVNjRfVE9fV09SRFMoMHhCODgzRjI3NkE2NDkwRDJCKSwgVTY0X1RPX1dPUkRT
KDB4MjJDQzI4NzAyMkQ1RjVCOSksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDFCRUQ0Nzcy
RTU1MUYpLCAvLyBYUEIwCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDAwMDAwMDAwMDAwMDAp
LCBVNjRfVE9fV09SRFMoMHgwMDAwMDAwMDAwMDAwMDAwKSwKKyAgICAgICAgVTY0X1RPX1dPUkRT
KDB4MDAwMDAwMDAwMDAwMDAwMCksIFU2NF9UT19XT1JEUygweDAwMDAwMDAwMDAwMDAwMDApLAor
ICAgICAgICBVNjRfVE9fV09SRFMoMHgwMDAwMDAwMDAwMDAwMDAwKSwgVTY0X1RPX1dPUkRTKDB4
MDAwMDAwMDAwMDAwMDAwMCksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDAwMDAwMDAwMDAw
MDApLCAvLyBYUEIxCisgICAgICAgIFU2NF9UT19XT1JEUygweEZBRTJBM0Y5M0Q4QjZCOEUpLCBV
NjRfVE9fV09SRFMoMHg0OTQ4NzFGNTE3MDBGRTFDKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4
RUYxQTk0MjI4NDEzQzI3QyksIFU2NF9UT19XT1JEUygweDQ5OEZGNEE0QUY2MEJENjIpLAorICAg
ICAgICBVNjRfVE9fV09SRFMoMHhCMDBBRDJBNzA4MjY3RThBKSwgVTY0X1RPX1dPUkRTKDB4RjQz
MjgyOTRFMDE3ODM3RiksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDAzNDA4MDE4MUQ4QUUp
LCAvLyBYUUIwCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDAwMDAwMDAwMDAwMDApLCBVNjRf
VE9fV09SRFMoMHgwMDAwMDAwMDAwMDAwMDAwKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4MDAw
MDAwMDAwMDAwMDAwMCksIFU2NF9UT19XT1JEUygweDAwMDAwMDAwMDAwMDAwMDApLAorICAgICAg
ICBVNjRfVE9fV09SRFMoMHgwMDAwMDAwMDAwMDAwMDAwKSwgVTY0X1RPX1dPUkRTKDB4MDAwMDAw
MDAwMDAwMDAwMCksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDAwMDAwMDAwMDAwMDApLCAv
LyBYUUIxCisgICAgICAgIFU2NF9UT19XT1JEUygweDI4M0IzNEZBRkVGREM4RTQpLCBVNjRfVE9f
V09SRFMoMHg5MjA4RjQ0OTc3QzNFNjQ3KSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4N0RFQUU5
NjI4MTZGNEU5QSksIFU2NF9UT19XT1JEUygweDY4QTJCQThBQTI2MkVDOUQpLAorICAgICAgICBV
NjRfVE9fV09SRFMoMHg4MTc2RjExMkVBNDNGNDVCKSwgVTY0X1RPX1dPUkRTKDB4MDIxMDZEMDIy
NjM0RjUwNCksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDA3RThBNTBGMDJFMzcpLCAvLyBY
UkIwCisgICAgICAgIFU2NF9UT19XT1JEUygweEIzNzhCN0MxREEyMkNDQjEpLCBVNjRfVE9fV09S
RFMoMHg2RDA4OUM5OUFEMUQ5MjMwKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4RUJFMTU3MTE4
MTNFMjM2OSksIFU2NF9UT19XT1JEUygweDJCMzVBNjgyMzlENDhBNTMpLAorICAgICAgICBVNjRf
VE9fV09SRFMoMHg0NDVGNkZEMTM4NDA3QzkzKSwgVTY0X1RPX1dPUkRTKDB4QkVGOTNCMjlBM0Y2
QjU0QiksCisgICAgICAgIFU2NF9UT19XT1JEUygweDAwMDE3M0ZBOTEwMzc3RDMpICAvLyBYUkIx
CisgICAgfSwKKyAgICAubW9udF9SMiA9IHsKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4MjhFNTVC
NjVEQ0Q2OUIzMCksIFU2NF9UT19XT1JEUygweEFDRUM3MzY3NzY4Nzk4QzIpLAorICAgICAgICBV
NjRfVE9fV09SRFMoMHhBQjI3OTczRjgzMTE2ODhEKSwgVTY0X1RPX1dPUkRTKDB4MTc1Q0M2QUY4
RDZDN0MwQiksCisgICAgICAgIFU2NF9UT19XT1JEUygweEFCQ0Q5MkJGMkRERTM0N0UpLCBVNjRf
VE9fV09SRFMoMHg2OUUxNkE2MUM3Njg2RDlBKSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4MDAw
MDI1QTg5QkNERDEyQSkKKyAgICB9LAorICAgIC5tb250X29uZSA9IHsKKyAgICAgICAgVTY0X1RP
X1dPUkRTKDB4MDAwMDAwMDAwMDAwNzQyQyksIFU2NF9UT19XT1JEUygweDAwMDAwMDAwMDAwMDAw
MDApLAorICAgICAgICBVNjRfVE9fV09SRFMoMHgwMDAwMDAwMDAwMDAwMDAwKSwgVTY0X1RPX1dP
UkRTKDB4QjkwRkY0MDRGQzAwMDAwMCksCisgICAgICAgIFU2NF9UT19XT1JEUygweEQ4MDFBNEZC
NTU5RkFDRDQpLCBVNjRfVE9fV09SRFMoMHhFOTMyNTQ1NDVGNzc0MTBDKSwKKyAgICAgICAgVTY0
X1RPX1dPUkRTKDB4MDAwMEVDRUVBN0JEMkVEQSkKKyAgICB9LAorICAgIC5tb250X3NpeCA9IHsK
KyAgICAgICAgVTY0X1RPX1dPUkRTKDB4MDAwMDAwMDAwMDAyQjkwQSksIFU2NF9UT19XT1JEUygw
eDAwMDAwMDAwMDAwMDAwMDApLAorICAgICAgICBVNjRfVE9fV09SRFMoMHgwMDAwMDAwMDAwMDAw
MDAwKSwgVTY0X1RPX1dPUkRTKDB4NUFEQ0NCMjgyMjAwMDAwMCksCisgICAgICAgIFU2NF9UT19X
T1JEUygweDE4N0QyNEYzOUYwQ0FGQjQpLCBVNjRfVE9fV09SRFMoMHg5RDM1M0E0RDM5NDE0NUEw
KSwKKyAgICAgICAgVTY0X1RPX1dPUkRTKDB4MDAwMTI1NTlBMDQwMzI5OCkKKyAgICB9LAorICAg
IC5BX3N0cmF0ID0geworICAgICAgICAweDMwLCAweDFDLCAweDEwLCAweDA4LCAweDA0LCAweDAy
LCAweDAxLCAweDAxLCAweDAyLCAweDAxLAorICAgICAgICAweDAxLCAweDA0LCAweDAyLCAweDAx
LCAweDAxLCAweDAyLCAweDAxLCAweDAxLCAweDA4LCAweDA0LAorICAgICAgICAweDAyLCAweDAx
LCAweDAxLCAweDAyLCAweDAxLCAweDAxLCAweDA0LCAweDAyLCAweDAxLCAweDAxLAorICAgICAg
ICAweDAyLCAweDAxLCAweDAxLCAweDBELCAweDA3LCAweDA0LCAweDAyLCAweDAxLCAweDAxLCAw
eDAyLAorICAgICAgICAweDAxLCAweDAxLCAweDAzLCAweDAyLCAweDAxLCAweDAxLCAweDAxLCAw
eDAxLCAweDA1LCAweDA0LAorICAgICAgICAweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAxLCAw
eDAxLCAweDAyLCAweDAxLCAweDAxLCAweDAxLAorICAgICAgICAweDE1LCAweDBDLCAweDA3LCAw
eDA0LCAweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAxLCAweDAxLAorICAgICAgICAweDAzLCAw
eDAyLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDA1LCAweDAzLCAweDAyLCAweDAxLAorICAg
ICAgICAweDAxLCAweDAxLCAweDAxLCAweDAyLCAweDAxLCAweDAxLCAweDAxLCAweDA5LCAweDA1
LCAweDAzLAorICAgICAgICAweDAyLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAyLCAweDAx
LCAweDAxLCAweDAxLCAweDA0LAorICAgICAgICAweDAyLCAweDAxLCAweDAxLCAweDAxLCAweDAy
LCAweDAxLCAweDAxCisgICAgfSwKKyAgICAuQl9zdHJhdCA9IHsKKyAgICAgICAgMHg0MiwgMHgy
MSwgMHgxMSwgMHgwOSwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMSwgMHgwMSwgMHgwMSwKKyAgICAg
ICAgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwNCwgMHgwMiwgMHgwMSwgMHgwMSwg
MHgwMSwKKyAgICAgICAgMHgwMiwgMHgwMSwgMHgwMSwgMHgwOCwgMHgwNCwgMHgwMiwgMHgwMSwg
MHgwMSwgMHgwMSwgMHgwMiwKKyAgICAgICAgMHgwMSwgMHgwMSwgMHgwNCwgMHgwMiwgMHgwMSwg
MHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgxMCwKKyAgICAgICAgMHgwOCwgMHgwNCwgMHgwMiwg
MHgwMSwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwKKyAgICAgICAgMHgwMiwg
MHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwOCwgMHgwNCwgMHgwMiwgMHgwMSwKKyAg
ICAgICAgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgwMiwgMHgwMSwgMHgwMSwgMHgw
MiwgMHgwMSwKKyAgICAgICAgMHgwMSwgMHgyMCwgMHgxMCwgMHgwOCwgMHgwNCwgMHgwMywgMHgw
MSwgMHgwMSwgMHgwMSwgMHgwMSwKKyAgICAgICAgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgw
MiwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwKKyAgICAgICAgMHgwOCwgMHgwNCwgMHgw
MiwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgwMiwKKyAgICAgICAgMHgw
MSwgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgxMCwgMHgwOCwgMHgwNCwgMHgwMiwgMHgwMSwK
KyAgICAgICAgMHgwMSwgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgwMiwgMHgwMSwgMHgwMSwg
MHgwMiwgMHgwMSwKKyAgICAgICAgMHgwMSwgMHgwOCwgMHgwNCwgMHgwMiwgMHgwMSwgMHgwMSwg
MHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwKKyAgICAgICAgMHgwMiwgMHgwMSwgMHgwMSwgMHgwMiwg
MHgwMSwgMHgwMQorICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9m
cHguYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL2ZweC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MTcxMTZjMzI0
NDdlZmFkYzcyOGJjNTc1Yjc1YmYwNjdiY2ZjMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhp
cmRfcGFydHkvc2lrZS9mcHguYwpAQCAtMCwwICsxLDI4MyBAQAorLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqIFNJREg6IGFuIGVmZmljaWVudCBzdXBlcnNpbmd1bGFyIGlz
b2dlbnkgY3J5cHRvZ3JhcGh5IGxpYnJhcnkKKyoKKyogQWJzdHJhY3Q6IGNvcmUgZnVuY3Rpb25z
IG92ZXIgR0YocCkgYW5kIEdGKHBeMikKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKi8KKyNpbmNsdWRlIDxvcGVuc3NsL2Jhc2UuaD4KKworI2luY2x1ZGUgInV0aWxzLmgiCisj
aW5jbHVkZSAiZnB4LmgiCisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgcGFyYW1zX3Qgc2lrZV9wYXJh
bXM7CisKKy8vIE11bHRpcHJlY2lzaW9uIHNxdWFyaW5nLCBjID0gYV4yIG1vZCBwLgorc3RhdGlj
IHZvaWQgZnBzcXJfbW9udChjb25zdCBmZWxtX3QgbWEsIGZlbG1fdCBtYykKK3sKKyAgICBkZmVs
bV90IHRlbXAgPSB7MH07CisgICAgc2lrZV9tcG11bChtYSwgbWEsIHRlbXApOworICAgIHNpa2Vf
ZnByZGModGVtcCwgbWMpOworfQorCisvLyBDaGFpbiB0byBjb21wdXRlIGFeKHAtMykvNCB1c2lu
ZyBNb250Z29tZXJ5IGFyaXRobWV0aWMuCitzdGF0aWMgdm9pZCBmcGludl9jaGFpbl9tb250KGZl
bG1fdCBhKQoreworICAgIHVuc2lnbmVkIGludCBpLCBqOworICAgIGZlbG1fdCB0WzMxXSwgdHQ7
CisKKyAgICAvLyBQcmVjb21wdXRlZCB0YWJsZQorICAgIGZwc3FyX21vbnQoYSwgdHQpOworICAg
IHNpa2VfZnBtdWxfbW9udChhLCB0dCwgdFswXSk7CisgICAgZm9yIChpID0gMDsgaSA8PSAyOTsg
aSsrKSBzaWtlX2ZwbXVsX21vbnQodFtpXSwgdHQsIHRbaSsxXSk7CisKKyAgICBzaWtlX2ZwY29w
eShhLCB0dCk7CisgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykgZnBzcXJfbW9udCh0dCwgdHQp
OworICAgIHNpa2VfZnBtdWxfbW9udCh0WzVdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7IGkg
PCAxMDsgaSsrKSBmcHNxcl9tb250KHR0LCB0dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRbMTRd
LCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIGZwc3FyX21vbnQodHQsIHR0
KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFszXSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAwOyBp
IDwgNjsgaSsrKSBmcHNxcl9tb250KHR0LCB0dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRbMjNd
LCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIGZwc3FyX21vbnQodHQsIHR0
KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFsxM10sIHR0LCB0dCk7CisgICAgZm9yIChpID0gMDsg
aSA8IDY7IGkrKykgZnBzcXJfbW9udCh0dCwgdHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0WzI0
XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSBmcHNxcl9tb250KHR0LCB0
dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRbN10sIHR0LCB0dCk7CisgICAgZm9yIChpID0gMDsg
aSA8IDg7IGkrKykgZnBzcXJfbW9udCh0dCwgdHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0WzEy
XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSBmcHNxcl9tb250KHR0LCB0
dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRbMzBdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7
IGkgPCA2OyBpKyspIGZwc3FyX21vbnQodHQsIHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFsx
XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSBmcHNxcl9tb250KHR0LCB0
dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRbMzBdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7
IGkgPCA3OyBpKyspIGZwc3FyX21vbnQodHQsIHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFsy
MV0sIHR0LCB0dCk7CisgICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykgZnBzcXJfbW9udCh0dCwg
dHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0WzJdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7
IGkgPCA5OyBpKyspIGZwc3FyX21vbnQodHQsIHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFsx
OV0sIHR0LCB0dCk7CisgICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykgZnBzcXJfbW9udCh0dCwg
dHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0WzFdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7
IGkgPCA3OyBpKyspIGZwc3FyX21vbnQodHQsIHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFsy
NF0sIHR0LCB0dCk7CisgICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykgZnBzcXJfbW9udCh0dCwg
dHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0WzI2XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAw
OyBpIDwgNjsgaSsrKSBmcHNxcl9tb250KHR0LCB0dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRb
MTZdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIGZwc3FyX21vbnQodHQs
IHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFsxMF0sIHR0LCB0dCk7CisgICAgZm9yIChpID0g
MDsgaSA8IDc7IGkrKykgZnBzcXJfbW9udCh0dCwgdHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0
WzZdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIGZwc3FyX21vbnQodHQs
IHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFswXSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAw
OyBpIDwgOTsgaSsrKSBmcHNxcl9tb250KHR0LCB0dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRb
MjBdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIGZwc3FyX21vbnQodHQs
IHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFs5XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAw
OyBpIDwgNjsgaSsrKSBmcHNxcl9tb250KHR0LCB0dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRb
MjVdLCB0dCwgdHQpOworICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspIGZwc3FyX21vbnQodHQs
IHR0KTsKKyAgICBzaWtlX2ZwbXVsX21vbnQodFszMF0sIHR0LCB0dCk7CisgICAgZm9yIChpID0g
MDsgaSA8IDY7IGkrKykgZnBzcXJfbW9udCh0dCwgdHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0
WzI2XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSBmcHNxcl9tb250KHR0
LCB0dCk7CisgICAgc2lrZV9mcG11bF9tb250KGEsIHR0LCB0dCk7CisgICAgZm9yIChpID0gMDsg
aSA8IDc7IGkrKykgZnBzcXJfbW9udCh0dCwgdHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0WzI4
XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSBmcHNxcl9tb250KHR0LCB0
dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRbNl0sIHR0LCB0dCk7CisgICAgZm9yIChpID0gMDsg
aSA8IDY7IGkrKykgZnBzcXJfbW9udCh0dCwgdHQpOworICAgIHNpa2VfZnBtdWxfbW9udCh0WzEw
XSwgdHQsIHR0KTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKSBmcHNxcl9tb250KHR0LCB0
dCk7CisgICAgc2lrZV9mcG11bF9tb250KHRbMjJdLCB0dCwgdHQpOworICAgIGZvciAoaiA9IDA7
IGogPCAzNTsgaisrKSB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIGZwc3FyX21v
bnQodHQsIHR0KTsKKyAgICAgICAgc2lrZV9mcG11bF9tb250KHRbMzBdLCB0dCwgdHQpOworICAg
IH0KKyAgICBzaWtlX2ZwY29weSh0dCwgYSk7Cit9CisKKy8vIEZpZWxkIGludmVyc2lvbiB1c2lu
ZyBNb250Z29tZXJ5IGFyaXRobWV0aWMsIGEgPSBhXigtMSkqUiBtb2QgcC4KK3N0YXRpYyB2b2lk
IGZwaW52X21vbnQoZmVsbV90IGEpCit7CisgICAgZmVsbV90IHR0ID0gezB9OworICAgIHNpa2Vf
ZnBjb3B5KGEsIHR0KTsKKyAgICBmcGludl9jaGFpbl9tb250KHR0KTsKKyAgICBmcHNxcl9tb250
KHR0LCB0dCk7CisgICAgZnBzcXJfbW9udCh0dCwgdHQpOworICAgIHNpa2VfZnBtdWxfbW9udChh
LCB0dCwgYSk7Cit9CisKKy8vIE11bHRpcHJlY2lzaW9uIGFkZGl0aW9uLCBjID0gYStiLCB3aGVy
ZSBsbmcoYSkgPSBsbmcoYikgPSBud29yZHMuIFJldHVybnMgdGhlIGNhcnJ5IGJpdC4KKyNpZiBk
ZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSB8fCAoIWRlZmluZWQoT1BFTlNTTF9YODZfNjQpICYmICFk
ZWZpbmVkKE9QRU5TU0xfQUFSQ0g2NCkpCitpbmxpbmUgc3RhdGljIHVuc2lnbmVkIGludCBtcF9h
ZGQoY29uc3QgZmVsbV90IGEsIGNvbnN0IGZlbG1fdCBiLCBmZWxtX3QgYywgY29uc3QgdW5zaWdu
ZWQgaW50IG53b3JkcykgeworICAgIHVpbnQ4X3QgY2FycnkgPSAwOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbndvcmRzOyBpKyspIHsKKyAgICAgICAgQUREQyhjYXJyeSwgYVtpXSwgYltp
XSwgY2FycnksIGNbaV0pOworICAgIH0KKyAgICByZXR1cm4gY2Fycnk7Cit9CisKKy8vIE11bHRp
cHJlY2lzaW9uIHN1YnRyYWN0aW9uLCBjID0gYS1iLCB3aGVyZSBsbmcoYSkgPSBsbmcoYikgPSBu
d29yZHMuIFJldHVybnMgdGhlIGJvcnJvdyBiaXQuCitpbmxpbmUgc3RhdGljIHVuc2lnbmVkIGlu
dCBtcF9zdWIoY29uc3QgZmVsbV90IGEsIGNvbnN0IGZlbG1fdCBiLCBmZWxtX3QgYywgY29uc3Qg
dW5zaWduZWQgaW50IG53b3JkcykgeworICAgIHVpbnQzMl90IGJvcnJvdyA9IDA7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBud29yZHM7IGkrKykgeworICAgICAgICBTVUJDKGJvcnJvdywg
YVtpXSwgYltpXSwgYm9ycm93LCBjW2ldKTsKKyAgICB9CisgICAgcmV0dXJuIGJvcnJvdzsKK30K
KyNlbmRpZgorCisvLyBNdWx0aXByZWNpc2lvbiBhZGRpdGlvbiwgYyA9IGErYi4KK2lubGluZSBz
dGF0aWMgdm9pZCBtcF9hZGRmYXN0KGNvbnN0IGZlbG1fdCBhLCBjb25zdCBmZWxtX3QgYiwgZmVs
bV90IGMpCit7CisjaWYgZGVmaW5lZChPUEVOU1NMX05PX0FTTSkgfHwgKCFkZWZpbmVkKE9QRU5T
U0xfWDg2XzY0KSAmJiAhZGVmaW5lZChPUEVOU1NMX0FBUkNINjQpKQorICAgIG1wX2FkZChhLCBi
LCBjLCBOV09SRFNfRklFTEQpOworI2Vsc2UKKyAgICBzaWtlX21wYWRkX2FzbShhLCBiLCBjKTsK
KyNlbmRpZgorfQorCisvLyBNdWx0aXByZWNpc2lvbiBzdWJ0cmFjdGlvbiwgYyA9IGEtYiwgd2hl
cmUgbG5nKGEpID0gbG5nKGIpID0gMipOV09SRFNfRklFTEQuCisvLyBJZiBjIDwgMCB0aGVuIHJl
dHVybnMgbWFzayA9IDB4RkYuLkYsIGVsc2UgbWFzayA9IDB4MDAuLjAKK2lubGluZSBzdGF0aWMg
Y3J5cHRvX3dvcmRfdCBtcF9zdWJmYXN0KGNvbnN0IGRmZWxtX3QgYSwgY29uc3QgZGZlbG1fdCBi
LCBkZmVsbV90IGMpIHsKKyNpZiBkZWZpbmVkKE9QRU5TU0xfTk9fQVNNKSB8fCAoIWRlZmluZWQo
T1BFTlNTTF9YODZfNjQpICYmICFkZWZpbmVkKE9QRU5TU0xfQUFSQ0g2NCkpCisgICAgcmV0dXJu
ICgwIC0gKGNyeXB0b193b3JkX3QpbXBfc3ViKGEsIGIsIGMsIDIqTldPUkRTX0ZJRUxEKSk7Cisj
ZWxzZQorICAgIHJldHVybiBzaWtlX21wc3VieDJfYXNtKGEsIGIsIGMpOworI2VuZGlmCit9CisK
Ky8vIE11bHRpcHJlY2lzaW9uIHN1YnRyYWN0aW9uLCBjID0gYy1hLWIsIHdoZXJlIGxuZyhhKSA9
IGxuZyhiKSA9IDIqTldPUkRTX0ZJRUxELgorLy8gSW5wdXRzIHNob3VsZCBiZSBzLnQuIGMgPiBh
IGFuZCBjID4gYgoraW5saW5lIHN0YXRpYyB2b2lkIG1wX2RibHN1YmZhc3QoY29uc3QgZGZlbG1f
dCBhLCBjb25zdCBkZmVsbV90IGIsIGRmZWxtX3QgYykgeworI2lmIGRlZmluZWQoT1BFTlNTTF9O
T19BU00pIHx8ICghZGVmaW5lZChPUEVOU1NMX1g4Nl82NCkgJiYgIWRlZmluZWQoT1BFTlNTTF9B
QVJDSDY0KSkKKyAgICBtcF9zdWIoYywgYSwgYywgMipOV09SRFNfRklFTEQpOworICAgIG1wX3N1
YihjLCBiLCBjLCAyKk5XT1JEU19GSUVMRCk7CisjZWxzZQorICAgIHNpa2VfbXBkYmxzdWJ4Ml9h
c20oYSwgYiwgYyk7CisjZW5kaWYKK30KKworLy8gQ29weSBhIGZpZWxkIGVsZW1lbnQsIGMgPSBh
Lgordm9pZCBzaWtlX2ZwY29weShjb25zdCBmZWxtX3QgYSwgZmVsbV90IGMpIHsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IE5XT1JEU19GSUVMRDsgaSsrKSB7CisgICAgICAgIGNbaV0gPSBh
W2ldOworICAgIH0KK30KKworLy8gRmllbGQgbXVsdGlwbGljYXRpb24gdXNpbmcgTW9udGdvbWVy
eSBhcml0aG1ldGljLCBjID0gYSpiKlJeLTEgbW9kIHByaW1lLCB3aGVyZSBSPTJeNzY4Cit2b2lk
IHNpa2VfZnBtdWxfbW9udChjb25zdCBmZWxtX3QgbWEsIGNvbnN0IGZlbG1fdCBtYiwgZmVsbV90
IG1jKQoreworICAgIGRmZWxtX3QgdGVtcCA9IHswfTsKKyAgICBzaWtlX21wbXVsKG1hLCBtYiwg
dGVtcCk7CisgICAgc2lrZV9mcHJkYyh0ZW1wLCBtYyk7Cit9CisKKy8vIENvbnZlcnNpb24gZnJv
bSBNb250Z29tZXJ5IHJlcHJlc2VudGF0aW9uIHRvIHN0YW5kYXJkIHJlcHJlc2VudGF0aW9uLAor
Ly8gYyA9IG1hKlJeKC0xKSBtb2QgcCA9IGEgbW9kIHAsIHdoZXJlIG1hIGluIFswLCBwLTFdLgor
dm9pZCBzaWtlX2Zyb21fbW9udChjb25zdCBmZWxtX3QgbWEsIGZlbG1fdCBjKQoreworICAgIGZl
bG1fdCBvbmUgPSB7MH07CisgICAgb25lWzBdID0gMTsKKworICAgIHNpa2VfZnBtdWxfbW9udCht
YSwgb25lLCBjKTsKKyAgICBzaWtlX2ZwY29ycmVjdGlvbihjKTsKK30KKworLy8gR0YocF4yKSBz
cXVhcmluZyB1c2luZyBNb250Z29tZXJ5IGFyaXRobWV0aWMsIGMgPSBhXjIgaW4gR0YocF4yKS4K
Ky8vIElucHV0czogYSA9IGEwK2ExKmksIHdoZXJlIGEwLCBhMSBhcmUgaW4gWzAsIDIqcC0xXQor
Ly8gT3V0cHV0OiBjID0gYzArYzEqaSwgd2hlcmUgYzAsIGMxIGFyZSBpbiBbMCwgMipwLTFdCit2
b2lkIHNpa2VfZnAyc3FyX21vbnQoY29uc3QgZjJlbG1fdCBhLCBmMmVsbV90IGMpIHsKKyAgICBm
ZWxtX3QgdDEsIHQyLCB0MzsKKworICAgIG1wX2FkZGZhc3QoYS0+YzAsIGEtPmMxLCB0MSk7ICAg
ICAgICAgICAgICAgICAgICAgIC8vIHQxID0gYTArYTEKKyAgICBzaWtlX2Zwc3ViKGEtPmMwLCBh
LT5jMSwgdDIpOyAgICAgICAgICAgICAgICAgICAgICAvLyB0MiA9IGEwLWExCisgICAgbXBfYWRk
ZmFzdChhLT5jMCwgYS0+YzAsIHQzKTsgICAgICAgICAgICAgICAgICAgICAgLy8gdDMgPSAyYTAK
KyAgICBzaWtlX2ZwbXVsX21vbnQodDEsIHQyLCBjLT5jMCk7ICAgICAgICAgICAgICAgICAgICAv
LyBjMCA9IChhMCthMSkoYTAtYTEpCisgICAgc2lrZV9mcG11bF9tb250KHQzLCBhLT5jMSwgYy0+
YzEpOyAgICAgICAgICAgICAgICAgLy8gYzEgPSAyYTAqYTEKK30KKworLy8gTW9kdWxhciBuZWdh
dGlvbiwgYSA9IC1hIG1vZCBwNTAzLgorLy8gSW5wdXQvb3V0cHV0OiBhIGluIFswLCAyKnA1MDMt
MV0KK3ZvaWQgc2lrZV9mcG5lZyhmZWxtX3QgYSkgeworICB1aW50MzJfdCBib3Jyb3cgPSAwOwor
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE5XT1JEU19GSUVMRDsgaSsrKSB7CisgICAgU1VCQyhi
b3Jyb3csIHNpa2VfcGFyYW1zLnByaW1lX3gyW2ldLCBhW2ldLCBib3Jyb3csIGFbaV0pOworICB9
Cit9CisKKy8vIE1vZHVsYXIgZGl2aXNpb24gYnkgdHdvLCBjID0gYS8yIG1vZCBwNTAzLgorLy8g
SW5wdXQgOiBhIGluIFswLCAyKnA1MDMtMV0KKy8vIE91dHB1dDogYyBpbiBbMCwgMipwNTAzLTFd
Cit2b2lkIHNpa2VfZnBkaXYyKGNvbnN0IGZlbG1fdCBhLCBmZWxtX3QgYykgeworICB1aW50MzJf
dCBjYXJyeSA9IDA7CisgIGNyeXB0b193b3JkX3QgbWFzazsKKworICBtYXNrID0gMCAtIChjcnlw
dG9fd29yZF90KShhWzBdICYgMSk7ICAgIC8vIElmIGEgaXMgb2RkIGNvbXB1dGUgYStwNTAzCisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTldPUkRTX0ZJRUxEOyBpKyspIHsKKyAgICBBRERDKGNh
cnJ5LCBhW2ldLCBzaWtlX3BhcmFtcy5wcmltZVtpXSAmIG1hc2ssIGNhcnJ5LCBjW2ldKTsKKyAg
fQorCisgIC8vIE11bHRpcHJlY2lzaW9uIHJpZ2h0IHNoaWZ0IGJ5IG9uZS4KKyAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBOV09SRFNfRklFTEQtMTsgaSsrKSB7CisgICAgY1tpXSA9IChjW2ldID4+
IDEpIF4gKGNbaSsxXSA8PCAoUkFESVggLSAxKSk7CisgIH0KKyAgY1tOV09SRFNfRklFTEQtMV0g
Pj49IDE7Cit9CisKKy8vIE1vZHVsYXIgY29ycmVjdGlvbiB0byByZWR1Y2UgZmllbGQgZWxlbWVu
dCBhIGluIFswLCAyKnA1MDMtMV0gdG8gWzAsIHA1MDMtMV0uCit2b2lkIHNpa2VfZnBjb3JyZWN0
aW9uKGZlbG1fdCBhKSB7CisgIHVpbnQzMl90IGJvcnJvdyA9IDA7CisgIGNyeXB0b193b3JkX3Qg
bWFzazsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE5XT1JEU19GSUVMRDsgaSsrKSB7Cisg
ICAgU1VCQyhib3Jyb3csIGFbaV0sIHNpa2VfcGFyYW1zLnByaW1lW2ldLCBib3Jyb3csIGFbaV0p
OworICB9CisgIG1hc2sgPSAwIC0gKGNyeXB0b193b3JkX3QpYm9ycm93OworCisgIGJvcnJvdyA9
IDA7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTldPUkRTX0ZJRUxEOyBpKyspIHsKKyAgICBB
RERDKGJvcnJvdywgYVtpXSwgc2lrZV9wYXJhbXMucHJpbWVbaV0gJiBtYXNrLCBib3Jyb3csIGFb
aV0pOworICB9Cit9CisKKy8vIEdGKHBeMikgbXVsdGlwbGljYXRpb24gdXNpbmcgTW9udGdvbWVy
eSBhcml0aG1ldGljLCBjID0gYSpiIGluIEdGKHBeMikuCisvLyBJbnB1dHM6IGEgPSBhMCthMSpp
IGFuZCBiID0gYjArYjEqaSwgd2hlcmUgYTAsIGExLCBiMCwgYjEgYXJlIGluIFswLCAyKnAtMV0K
Ky8vIE91dHB1dDogYyA9IGMwK2MxKmksIHdoZXJlIGMwLCBjMSBhcmUgaW4gWzAsIDIqcC0xXQor
dm9pZCBzaWtlX2ZwMm11bF9tb250KGNvbnN0IGYyZWxtX3QgYSwgY29uc3QgZjJlbG1fdCBiLCBm
MmVsbV90IGMpIHsKKyAgICBmZWxtX3QgdDEsIHQyOworICAgIGRmZWxtX3QgdHQxLCB0dDIsIHR0
MzsKKyAgICBjcnlwdG9fd29yZF90IG1hc2s7CisKKyAgICBtcF9hZGRmYXN0KGEtPmMwLCBhLT5j
MSwgdDEpOyAgICAgICAgICAgICAgICAgICAgICAvLyB0MSA9IGEwK2ExCisgICAgbXBfYWRkZmFz
dChiLT5jMCwgYi0+YzEsIHQyKTsgICAgICAgICAgICAgICAgICAgICAgLy8gdDIgPSBiMCtiMQor
ICAgIHNpa2VfbXBtdWwoYS0+YzAsIGItPmMwLCB0dDEpOyAgICAgICAgICAgICAgICAgICAgIC8v
IHR0MSA9IGEwKmIwCisgICAgc2lrZV9tcG11bChhLT5jMSwgYi0+YzEsIHR0Mik7ICAgICAgICAg
ICAgICAgICAgICAgLy8gdHQyID0gYTEqYjEKKyAgICBzaWtlX21wbXVsKHQxLCB0MiwgdHQzKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0dDMgPSAoYTArYTEpKihiMCtiMSkKKyAgICBt
cF9kYmxzdWJmYXN0KHR0MSwgdHQyLCB0dDMpOyAgICAgICAgICAgICAgICAgICAgICAvLyB0dDMg
PSAoYTArYTEpKihiMCtiMSkgLSBhMCpiMCAtIGExKmIxCisgICAgbWFzayA9IG1wX3N1YmZhc3Qo
dHQxLCB0dDIsIHR0MSk7ICAgICAgICAgICAgICAgICAgLy8gdHQxID0gYTAqYjAgLSBhMSpiMS4g
SWYgdHQxIDwgMCB0aGVuIG1hc2sgPSAweEZGLi5GLCBlbHNlIGlmIHR0MSA+PSAwIHRoZW4gbWFz
ayA9IDB4MDAuLjAKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTldPUkRTX0ZJRUxEOyBp
KyspIHsKKyAgICAgICAgdDFbaV0gPSBzaWtlX3BhcmFtcy5wcmltZVtpXSAmIG1hc2s7CisgICAg
fQorCisgICAgc2lrZV9mcHJkYyh0dDMsIGMtPmMxKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIGNbMV0gPSAoYTArYTEpKihiMCtiMSkgLSBhMCpiMCAtIGExKmIxCisgICAgbXBfYWRk
ZmFzdCgmdHQxW05XT1JEU19GSUVMRF0sIHQxLCAmdHQxW05XT1JEU19GSUVMRF0pOworICAgIHNp
a2VfZnByZGModHQxLCBjLT5jMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjWzBd
ID0gYTAqYjAgLSBhMSpiMQorfQorCisvLyBHRihwXjIpIGludmVyc2lvbiB1c2luZyBNb250Z29t
ZXJ5IGFyaXRobWV0aWMsIGEgPSAoYTAtaSphMSkvKGEwXjIrYTFeMikuCit2b2lkIHNpa2VfZnAy
aW52X21vbnQoZjJlbG1fdCBhKSB7CisgICAgZjJlbG1fdCB0MTsKKworICAgIGZwc3FyX21vbnQo
YS0+YzAsIHQxLT5jMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQxMCA9IGEwXjIKKyAg
ICBmcHNxcl9tb250KGEtPmMxLCB0MS0+YzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0
MTEgPSBhMV4yCisgICAgc2lrZV9mcGFkZCh0MS0+YzAsIHQxLT5jMSwgdDEtPmMwKTsgICAgICAg
ICAgICAgICAgLy8gdDEwID0gYTBeMithMV4yCisgICAgZnBpbnZfbW9udCh0MS0+YzApOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDEwID0gKGEwXjIrYTFeMileLTEKKyAgICBz
aWtlX2ZwbmVnKGEtPmMxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhID0g
YTAtaSphMQorICAgIHNpa2VfZnBtdWxfbW9udChhLT5jMCwgdDEtPmMwLCBhLT5jMCk7CisgICAg
c2lrZV9mcG11bF9tb250KGEtPmMxLCB0MS0+YzAsIGEtPmMxKTsgICAgICAgICAgICAgLy8gYSA9
IChhMC1pKmExKSooYTBeMithMV4yKV4tMQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5
L3Npa2UvZnB4LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9mcHguaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjk3
Njg4NTdjMDBmNDJiNWZjM2VkYzViMjNhZGE3OWM5N2FiZmYwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L3Npa2UvZnB4LmgKQEAgLTAsMCArMSwxMTMgQEAKKyNpZm5kZWYgRlBY
X0hfCisjZGVmaW5lIEZQWF9IXworCisjaW5jbHVkZSAidXRpbHMuaCIKKworI2lmIGRlZmluZWQo
X19jcGx1c3BsdXMpCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvLyBNb2R1bGFyIGFkZGl0aW9u
LCBjID0gYStiIG1vZCBwLgordm9pZCBzaWtlX2ZwYWRkKGNvbnN0IGZlbG1fdCBhLCBjb25zdCBm
ZWxtX3QgYiwgZmVsbV90IGMpOworLy8gTW9kdWxhciBzdWJ0cmFjdGlvbiwgYyA9IGEtYiBtb2Qg
cC4KK3ZvaWQgc2lrZV9mcHN1Yihjb25zdCBmZWxtX3QgYSwgY29uc3QgZmVsbV90IGIsIGZlbG1f
dCBjKTsKKy8vIE1vZHVsYXIgZGl2aXNpb24gYnkgdHdvLCBjID0gYS8yIG1vZCBwLgordm9pZCBz
aWtlX2ZwZGl2Mihjb25zdCBmZWxtX3QgYSwgZmVsbV90IGMpOworLy8gTW9kdWxhciBjb3JyZWN0
aW9uIHRvIHJlZHVjZSBmaWVsZCBlbGVtZW50IGEgaW4gWzAsIDIqcC0xXSB0byBbMCwgcC0xXS4K
K3ZvaWQgc2lrZV9mcGNvcnJlY3Rpb24oZmVsbV90IGEpOworLy8gTXVsdGlwcmVjaXNpb24gbXVs
dGlwbHksIGMgPSBhKmIsIHdoZXJlIGxuZyhhKSA9IGxuZyhiKSA9IG53b3Jkcy4KK3ZvaWQgc2lr
ZV9tcG11bChjb25zdCBmZWxtX3QgYSwgY29uc3QgZmVsbV90IGIsIGRmZWxtX3QgYyk7CisvLyA0
NDMtYml0IE1vbnRnb21lcnkgcmVkdWN0aW9uLCBjID0gYSBtb2QgcC4gQnVmZmVyICdhJyBpcyBt
b2RpZmllZCBhZnRlcgorLy8gY2FsbCByZXR1cm5zLgordm9pZCBzaWtlX2ZwcmRjKGRmZWxtX3Qg
YSwgZmVsbV90IGMpOworLy8gRG91YmxlIDJ4NDQzLWJpdCBtdWx0aXByZWNpc2lvbiBzdWJ0cmFj
dGlvbiwgYyA9IGMtYS1iCit2b2lkIHNpa2VfbXBkYmxzdWJ4Ml9hc20oY29uc3QgZmVsbV90IGEs
IGNvbnN0IGZlbG1fdCBiLCBmZWxtX3QgYyk7CisvLyBNdWx0aXByZWNpc2lvbiBzdWJ0cmFjdGlv
biwgYyA9IGEtYgorY3J5cHRvX3dvcmRfdCBzaWtlX21wc3VieDJfYXNtKGNvbnN0IGRmZWxtX3Qg
YSwgY29uc3QgZGZlbG1fdCBiLCBkZmVsbV90IGMpOworLy8gNDQzLWJpdCBtdWx0aXByZWNpc2lv
biBhZGRpdGlvbiwgYyA9IGErYgordm9pZCBzaWtlX21wYWRkX2FzbShjb25zdCBmZWxtX3QgYSwg
Y29uc3QgZmVsbV90IGIsIGZlbG1fdCBjKTsKKy8vIE1vZHVsYXIgbmVnYXRpb24sIGEgPSAtYSBt
b2QgcC4KK3ZvaWQgc2lrZV9mcG5lZyhmZWxtX3QgYSk7CisvLyBDb3B5IG9mIGEgZmllbGQgZWxl
bWVudCwgYyA9IGEKK3ZvaWQgc2lrZV9mcGNvcHkoY29uc3QgZmVsbV90IGEsIGZlbG1fdCBjKTsK
Ky8vIENvcHkgYSBmaWVsZCBlbGVtZW50LCBjID0gYS4KK3ZvaWQgc2lrZV9mcHplcm8oZmVsbV90
IGEpOworLy8gSWYgb3B0aW9uID0gMHhGRi4uLkZGIHg9eTsgeT14LCBvdGhlcndpc2Ugc3dhcCBk
b2Vzbid0IGhhcHBlbi4gQ29uc3RhbnQgdGltZS4KK3ZvaWQgc2lrZV9jc3dhcF9hc20ocG9pbnRf
cHJval90IHgsIHBvaW50X3Byb2pfdCB5LCBjb25zdCBjcnlwdG9fd29yZF90IG9wdGlvbik7Cisv
LyBDb252ZXJzaW9uIGZyb20gTW9udGdvbWVyeSByZXByZXNlbnRhdGlvbiB0byBzdGFuZGFyZCBy
ZXByZXNlbnRhdGlvbiwKKy8vIGMgPSBtYSpSXigtMSkgbW9kIHAgPSBhIG1vZCBwLCB3aGVyZSBt
YSBpbiBbMCwgcC0xXS4KK3ZvaWQgc2lrZV9mcm9tX21vbnQoY29uc3QgZmVsbV90IG1hLCBmZWxt
X3QgYyk7CisvLyBGaWVsZCBtdWx0aXBsaWNhdGlvbiB1c2luZyBNb250Z29tZXJ5IGFyaXRobWV0
aWMsIGMgPSBhKmIqUl4tMSBtb2QgcDQ0Mywgd2hlcmUgUj0yXjc2OAordm9pZCBzaWtlX2ZwbXVs
X21vbnQoY29uc3QgZmVsbV90IG1hLCBjb25zdCBmZWxtX3QgbWIsIGZlbG1fdCBtYyk7CisvLyBH
RihwNDQzXjIpIG11bHRpcGxpY2F0aW9uIHVzaW5nIE1vbnRnb21lcnkgYXJpdGhtZXRpYywgYyA9
IGEqYiBpbiBHRihwNDQzXjIpCit2b2lkIHNpa2VfZnAybXVsX21vbnQoY29uc3QgZjJlbG1fdCBh
LCBjb25zdCBmMmVsbV90IGIsIGYyZWxtX3QgYyk7CisvLyBHRihwNDQzXjIpIGludmVyc2lvbiB1
c2luZyBNb250Z29tZXJ5IGFyaXRobWV0aWMsIGEgPSAoYTAtaSphMSkvKGEwXjIrYTFeMikKK3Zv
aWQgc2lrZV9mcDJpbnZfbW9udChmMmVsbV90IGEpOworLy8gR0YocF4yKSBzcXVhcmluZyB1c2lu
ZyBNb250Z29tZXJ5IGFyaXRobWV0aWMsIGMgPSBhXjIgaW4gR0YocF4yKS4KK3ZvaWQgc2lrZV9m
cDJzcXJfbW9udChjb25zdCBmMmVsbV90IGEsIGYyZWxtX3QgYyk7CisvLyBNb2R1bGFyIGNvcnJl
Y3Rpb24sIGEgPSBhIGluIEdGKHBeMikuCit2b2lkIHNpa2VfZnAyY29ycmVjdGlvbihmMmVsbV90
IGEpOworCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKK30gIC8vIGV4dGVybiBDCisjZW5kaWYK
KworLy8gR0YocF4yKSBhZGRpdGlvbiwgYyA9IGErYiBpbiBHRihwXjIpLgorI2RlZmluZSBzaWtl
X2ZwMmFkZChhLCBiLCBjKSAgICAgICAgICAgICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBzaWtlX2ZwYWRkKGEtPmMwLCBiLT5jMCwgYy0+YzApOyAg
ICAgXAorICAgIHNpa2VfZnBhZGQoYS0+YzEsIGItPmMxLCBjLT5jMSk7ICAgICBcCit9IHdoaWxl
KDApCisKKy8vIEdGKHBeMikgc3VidHJhY3Rpb24sIGMgPSBhLWIgaW4gR0YocF4yKS4KKyNkZWZp
bmUgc2lrZV9mcDJzdWIoYSxiLGMpICAgICAgICAgICAgICAgXAorZG8geyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc2lrZV9mcHN1YihhLT5jMCwgYi0+YzAsIGMt
PmMwKTsgICAgIFwKKyAgICBzaWtlX2Zwc3ViKGEtPmMxLCBiLT5jMSwgYy0+YzEpOyAgICAgXAor
fSB3aGlsZSgwKQorCisvLyBDb3B5IGEgR0YocF4yKSBlbGVtZW50LCBjID0gYS4KKyNkZWZpbmUg
c2lrZV9mcDJjb3B5KGEsIGMpICAgICAgICAgICAgICAgXAorZG8geyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgc2lrZV9mcGNvcHkoYS0+YzAsIGMtPmMwKTsgICAg
ICAgICAgIFwKKyAgICBzaWtlX2ZwY29weShhLT5jMSwgYy0+YzEpOyAgICAgICAgICAgXAorfSB3
aGlsZSgwKQorCisvLyBHRihwXjIpIG5lZ2F0aW9uLCBhID0gLWEgaW4gR0YocF4yKS4KKyNkZWZp
bmUgc2lrZV9mcDJuZWcoYSkgICAgICAgICAgICAgICAgICAgXAorZG8geyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc2lrZV9mcG5lZyhhLT5jMCk7ICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBzaWtlX2ZwbmVnKGEtPmMxKTsgICAgICAgICAgICAgICAgICAgXAor
fSB3aGlsZSgwKQorCisvLyBHRihwXjIpIGRpdmlzaW9uIGJ5IHR3bywgYyA9IGEvMiAgaW4gR0Yo
cF4yKS4KKyNkZWZpbmUgc2lrZV9mcDJkaXYyKGEsIGMpICAgICAgICAgICAgICAgXAorZG8geyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc2lrZV9mcGRpdjIoYS0+
YzAsIGMtPmMwKTsgICAgICAgICAgIFwKKyAgICBzaWtlX2ZwZGl2MihhLT5jMSwgYy0+YzEpOyAg
ICAgICAgICAgXAorfSB3aGlsZSgwKQorCisvLyBNb2R1bGFyIGNvcnJlY3Rpb24sIGEgPSBhIGlu
IEdGKHBeMikuCisjZGVmaW5lIHNpa2VfZnAyY29ycmVjdGlvbihhKSAgICAgICAgICAgIFwKK2Rv
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHNpa2VfZnBjb3Jy
ZWN0aW9uKGEtPmMwKTsgICAgICAgICAgICBcCisgICAgc2lrZV9mcGNvcnJlY3Rpb24oYS0+YzEp
OyAgICAgICAgICAgIFwKK30gd2hpbGUoMCkKKworLy8gQ29udmVyc2lvbiBvZiBhIEdGKHBeMikg
ZWxlbWVudCB0byBNb250Z29tZXJ5IHJlcHJlc2VudGF0aW9uLAorLy8gbWNfaSA9IGFfaSpSXjIq
Ul4oLTEpID0gYV9pKlIgaW4gR0YocF4yKS4KKyNkZWZpbmUgc2lrZV90b19mcDJtb250KGEsIG1j
KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgZG8geyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzaWtlX2ZwbXVsX21vbnQoYS0+
YzAsIHNpa2VfcGFyYW1zLm1vbnRfUjIsIG1jLT5jMCk7IFwKKyAgICBzaWtlX2ZwbXVsX21vbnQo
YS0+YzEsIHNpa2VfcGFyYW1zLm1vbnRfUjIsIG1jLT5jMSk7IFwKKyAgfSB3aGlsZSAoMCkKKwor
Ly8gQ29udmVyc2lvbiBvZiBhIEdGKHBeMikgZWxlbWVudCBmcm9tIE1vbnRnb21lcnkgcmVwcmVz
ZW50YXRpb24gdG8gc3RhbmRhcmQgcmVwcmVzZW50YXRpb24sCisvLyBjX2kgPSBtYV9pKlJeKC0x
KSA9IGFfaSBpbiBHRihwXjIpLgorI2RlZmluZSBzaWtlX2Zyb21fZnAybW9udChtYSwgYykgICAg
ICAgICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBz
aWtlX2Zyb21fbW9udChtYS0+YzAsIGMtPmMwKTsgICAgICAgXAorICAgIHNpa2VfZnJvbV9tb250
KG1hLT5jMSwgYy0+YzEpOyAgICAgICBcCit9IHdoaWxlKDApCisKKyNlbmRpZiAvLyBGUFhfSF8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL2lzb2dlbnkuYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9w
YXJ0eS9zaWtlL2lzb2dlbnkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjkxMGUwMmI0MjI2NGNlYTFiNjFiZTY3
MGY3OGIzY2Y3NzU1OWZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2Uv
aXNvZ2VueS5jCkBAIC0wLDAgKzEsMjYwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogU0lESDogYW4gZWZmaWNpZW50IHN1cGVyc2luZ3VsYXIgaXNvZ2VueSBjcnlw
dG9ncmFwaHkgbGlicmFyeQorKgorKiBBYnN0cmFjdDogZWxsaXB0aWMgY3VydmUgYW5kIGlzb2dl
bnkgZnVuY3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5j
bHVkZSAidXRpbHMuaCIKKyNpbmNsdWRlICJpc29nZW55LmgiCisjaW5jbHVkZSAiZnB4LmgiCisK
K3N0YXRpYyB2b2lkIHhEQkwoY29uc3QgcG9pbnRfcHJval90IFAsIHBvaW50X3Byb2pfdCBRLCBj
b25zdCBmMmVsbV90IEEyNHBsdXMsIGNvbnN0IGYyZWxtX3QgQzI0KQoreyAvLyBEb3VibGluZyBv
ZiBhIE1vbnRnb21lcnkgcG9pbnQgaW4gcHJvamVjdGl2ZSBjb29yZGluYXRlcyAoWDpaKS4KKyAg
Ly8gSW5wdXQ6IHByb2plY3RpdmUgTW9udGdvbWVyeSB4LWNvb3JkaW5hdGVzIFAgPSAoWDE6WjEp
LCB3aGVyZSB4MT1YMS9aMSBhbmQgTW9udGdvbWVyeSBjdXJ2ZSBjb25zdGFudHMgQSsyQyBhbmQg
NEMuCisgIC8vIE91dHB1dDogcHJvamVjdGl2ZSBNb250Z29tZXJ5IHgtY29vcmRpbmF0ZXMgUSA9
IDIqUCA9IChYMjpaMikuCisgICAgZjJlbG1fdCB0MCwgdDE7CisKKyAgICBzaWtlX2ZwMnN1YihQ
LT5YLCBQLT5aLCB0MCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQwID0gWDEtWjEKKyAg
ICBzaWtlX2ZwMmFkZChQLT5YLCBQLT5aLCB0MSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHQxID0gWDErWjEKKyAgICBzaWtlX2ZwMnNxcl9tb250KHQwLCB0MCk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHQwID0gKFgxLVoxKV4yCisgICAgc2lrZV9mcDJzcXJfbW9udCh0MSwg
dDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0MSA9IChYMStaMSleMgorICAgIHNp
a2VfZnAybXVsX21vbnQoQzI0LCB0MCwgUS0+Wik7ICAgICAgICAgICAgICAgICAgICAgLy8gWjIg
PSBDMjQqKFgxLVoxKV4yCisgICAgc2lrZV9mcDJtdWxfbW9udCh0MSwgUS0+WiwgUS0+WCk7ICAg
ICAgICAgICAgICAgICAgICAvLyBYMiA9IEMyNCooWDEtWjEpXjIqKFgxK1oxKV4yCisgICAgc2lr
ZV9mcDJzdWIodDEsIHQwLCB0MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0MSA9
IChYMStaMSleMi0oWDEtWjEpXjIKKyAgICBzaWtlX2ZwMm11bF9tb250KEEyNHBsdXMsIHQxLCB0
MCk7ICAgICAgICAgICAgICAgICAgIC8vIHQwID0gQTI0cGx1cypbKFgxK1oxKV4yLShYMS1aMSle
Ml0KKyAgICBzaWtlX2ZwMmFkZChRLT5aLCB0MCwgUS0+Wik7ICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFoyID0gQTI0cGx1cypbKFgxK1oxKV4yLShYMS1aMSleMl0gKyBDMjQqKFgxLVoxKV4y
CisgICAgc2lrZV9mcDJtdWxfbW9udChRLT5aLCB0MSwgUS0+Wik7ICAgICAgICAgICAgICAgICAg
ICAvLyBaMiA9IFtBMjRwbHVzKlsoWDErWjEpXjItKFgxLVoxKV4yXSArIEMyNCooWDEtWjEpXjJd
KlsoWDErWjEpXjItKFgxLVoxKV4yXQorfQorCit2b2lkIHNpa2VfeERCTGUoY29uc3QgcG9pbnRf
cHJval90IFAsIHBvaW50X3Byb2pfdCBRLCBjb25zdCBmMmVsbV90IEEyNHBsdXMsIGNvbnN0IGYy
ZWxtX3QgQzI0LCBzaXplX3QgZSkKK3sgLy8gQ29tcHV0ZXMgWzJeZV0oWDpaKSBvbiBNb250Z29t
ZXJ5IGN1cnZlIHdpdGggcHJvamVjdGl2ZSBjb25zdGFudCB2aWEgZSByZXBlYXRlZCBkb3VibGlu
Z3MuCisgIC8vIElucHV0OiBwcm9qZWN0aXZlIE1vbnRnb21lcnkgeC1jb29yZGluYXRlcyBQID0g
KFhQOlpQKSwgc3VjaCB0aGF0IHhQPVhQL1pQIGFuZCBNb250Z29tZXJ5IGN1cnZlIGNvbnN0YW50
cyBBKzJDIGFuZCA0Qy4KKyAgLy8gT3V0cHV0OiBwcm9qZWN0aXZlIE1vbnRnb21lcnkgeC1jb29y
ZGluYXRlcyBRIDwtICgyXmUpKlAuCisKKyAgICBtZW1tb3ZlKFEsIFAsIHNpemVvZigqUCkpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZTsgaSsrKSB7CisgICAgICAgIHhEQkwoUSwgUSwg
QTI0cGx1cywgQzI0KTsKKyAgICB9Cit9CisKK3ZvaWQgc2lrZV9nZXRfNF9pc29nKGNvbnN0IHBv
aW50X3Byb2pfdCBQLCBmMmVsbV90IEEyNHBsdXMsIGYyZWxtX3QgQzI0LCBmMmVsbV90KiBjb2Vm
ZikKK3sgLy8gQ29tcHV0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgNC1pc29nZW55IG9mIGEgcHJvamVj
dGl2ZSBNb250Z29tZXJ5IHBvaW50IChYNDpaNCkgb2Ygb3JkZXIgNC4KKyAgLy8gSW5wdXQ6ICBw
cm9qZWN0aXZlIHBvaW50IG9mIG9yZGVyIGZvdXIgUCA9IChYNDpaNCkuCisgIC8vIE91dHB1dDog
dGhlIDQtaXNvZ2Vub3VzIE1vbnRnb21lcnkgY3VydmUgd2l0aCBwcm9qZWN0aXZlIGNvZWZmaWNp
ZW50cyBBKzJDLzRDIGFuZCB0aGUgMyBjb2VmZmljaWVudHMKKyAgLy8gICAgICAgICB0aGF0IGFy
ZSB1c2VkIHRvIGV2YWx1YXRlIHRoZSBpc29nZW55IGF0IGEgcG9pbnQgaW4gZXZhbF80X2lzb2co
KS4KKworICAgIHNpa2VfZnAyc3ViKFAtPlgsIFAtPlosIGNvZWZmWzFdKTsgICAgICAgICAgICAg
ICAgICAgLy8gY29lZmZbMV0gPSBYNC1aNAorICAgIHNpa2VfZnAyYWRkKFAtPlgsIFAtPlosIGNv
ZWZmWzJdKTsgICAgICAgICAgICAgICAgICAgLy8gY29lZmZbMl0gPSBYNCtaNAorICAgIHNpa2Vf
ZnAyc3FyX21vbnQoUC0+WiwgY29lZmZbMF0pOyAgICAgICAgICAgICAgICAgICAgLy8gY29lZmZb
MF0gPSBaNF4yCisgICAgc2lrZV9mcDJhZGQoY29lZmZbMF0sIGNvZWZmWzBdLCBjb2VmZlswXSk7
ICAgICAgICAgICAvLyBjb2VmZlswXSA9IDIqWjReMgorICAgIHNpa2VfZnAyc3FyX21vbnQoY29l
ZmZbMF0sIEMyNCk7ICAgICAgICAgICAgICAgICAgICAgLy8gQzI0ID0gNCpaNF40CisgICAgc2lr
ZV9mcDJhZGQoY29lZmZbMF0sIGNvZWZmWzBdLCBjb2VmZlswXSk7ICAgICAgICAgICAvLyBjb2Vm
ZlswXSA9IDQqWjReMgorICAgIHNpa2VfZnAyc3FyX21vbnQoUC0+WCwgQTI0cGx1cyk7ICAgICAg
ICAgICAgICAgICAgICAgLy8gQTI0cGx1cyA9IFg0XjIKKyAgICBzaWtlX2ZwMmFkZChBMjRwbHVz
LCBBMjRwbHVzLCBBMjRwbHVzKTsgICAgICAgICAgICAgIC8vIEEyNHBsdXMgPSAyKlg0XjIKKyAg
ICBzaWtlX2ZwMnNxcl9tb250KEEyNHBsdXMsIEEyNHBsdXMpOyAgICAgICAgICAgICAgICAgIC8v
IEEyNHBsdXMgPSA0Klg0XjQKK30KKwordm9pZCBzaWtlX2V2YWxfNF9pc29nKHBvaW50X3Byb2pf
dCBQLCBmMmVsbV90KiBjb2VmZikKK3sgLy8gRXZhbHVhdGVzIHRoZSBpc29nZW55IGF0IHRoZSBw
b2ludCAoWDpaKSBpbiB0aGUgZG9tYWluIG9mIHRoZSBpc29nZW55LCBnaXZlbiBhIDQtaXNvZ2Vu
eSBwaGkgZGVmaW5lZAorICAvLyBieSB0aGUgMyBjb2VmZmljaWVudHMgaW4gY29lZmYgKGNvbXB1
dGVkIGluIHRoZSBmdW5jdGlvbiBnZXRfNF9pc29nKCkpLgorICAvLyBJbnB1dHM6IHRoZSBjb2Vm
ZmljaWVudHMgZGVmaW5pbmcgdGhlIGlzb2dlbnksIGFuZCB0aGUgcHJvamVjdGl2ZSBwb2ludCBQ
ID0gKFg6WikuCisgIC8vIE91dHB1dDogdGhlIHByb2plY3RpdmUgcG9pbnQgUCA9IHBoaShQKSA9
IChYOlopIGluIHRoZSBjb2RvbWFpbi4KKyAgICBmMmVsbV90IHQwLCB0MTsKKworICAgIHNpa2Vf
ZnAyYWRkKFAtPlgsIFAtPlosIHQwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSBY
K1oKKyAgICBzaWtlX2ZwMnN1YihQLT5YLCBQLT5aLCB0MSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIHQxID0gWC1aCisgICAgc2lrZV9mcDJtdWxfbW9udCh0MCwgY29lZmZbMV0sIFAtPlgp
OyAgICAgICAgICAgICAgICAvLyBYID0gKFgrWikqY29lZmZbMV0KKyAgICBzaWtlX2ZwMm11bF9t
b250KHQxLCBjb2VmZlsyXSwgUC0+Wik7ICAgICAgICAgICAgICAgIC8vIFogPSAoWC1aKSpjb2Vm
ZlsyXQorICAgIHNpa2VfZnAybXVsX21vbnQodDAsIHQxLCB0MCk7ICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gdDAgPSAoWCtaKSooWC1aKQorICAgIHNpa2VfZnAybXVsX21vbnQodDAsIGNvZWZm
WzBdLCB0MCk7ICAgICAgICAgICAgICAgICAgLy8gdDAgPSBjb2VmZlswXSooWCtaKSooWC1aKQor
ICAgIHNpa2VfZnAyYWRkKFAtPlgsIFAtPlosIHQxKTsgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gdDEgPSAoWC1aKSpjb2VmZlsyXSArIChYK1opKmNvZWZmWzFdCisgICAgc2lrZV9mcDJzdWIo
UC0+WCwgUC0+WiwgUC0+Wik7ICAgICAgICAgICAgICAgICAgICAgICAvLyBaID0gKFgtWikqY29l
ZmZbMl0gLSAoWCtaKSpjb2VmZlsxXQorICAgIHNpa2VfZnAyc3FyX21vbnQodDEsIHQxKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDEgPSBbKFgtWikqY29lZmZbMl0gKyAoWCtaKSpj
b2VmZlsxXV1eMgorICAgIHNpa2VfZnAyc3FyX21vbnQoUC0+WiwgUC0+Wik7ICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gWiA9IFsoWC1aKSpjb2VmZlsyXSAtIChYK1opKmNvZWZmWzFdXV4yCisg
ICAgc2lrZV9mcDJhZGQodDEsIHQwLCBQLT5YKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBYID0gY29lZmZbMF0qKFgrWikqKFgtWikgKyBbKFgtWikqY29lZmZbMl0gKyAoWCtaKSpjb2Vm
ZlsxXV1eMgorICAgIHNpa2VfZnAyc3ViKFAtPlosIHQwLCB0MCk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gdDAgPSBbKFgtWikqY29lZmZbMl0gLSAoWCtaKSpjb2VmZlsxXV1eMiAtIGNv
ZWZmWzBdKihYK1opKihYLVopCisgICAgc2lrZV9mcDJtdWxfbW9udChQLT5YLCB0MSwgUC0+WCk7
ICAgICAgICAgICAgICAgICAgICAvLyBYZmluYWwKKyAgICBzaWtlX2ZwMm11bF9tb250KFAtPlos
IHQwLCBQLT5aKTsgICAgICAgICAgICAgICAgICAgIC8vIFpmaW5hbAorfQorCisKK3ZvaWQgc2lr
ZV94VFBMKGNvbnN0IHBvaW50X3Byb2pfdCBQLCBwb2ludF9wcm9qX3QgUSwgY29uc3QgZjJlbG1f
dCBBMjRtaW51cywgY29uc3QgZjJlbG1fdCBBMjRwbHVzKQoreyAvLyBUcmlwbGluZyBvZiBhIE1v
bnRnb21lcnkgcG9pbnQgaW4gcHJvamVjdGl2ZSBjb29yZGluYXRlcyAoWDpaKS4KKyAgLy8gSW5w
dXQ6IHByb2plY3RpdmUgTW9udGdvbWVyeSB4LWNvb3JkaW5hdGVzIFAgPSAoWDpaKSwgd2hlcmUg
eD1YL1ogYW5kIE1vbnRnb21lcnkgY3VydmUgY29uc3RhbnRzIEEyNHBsdXMgPSBBKzJDIGFuZCBB
MjRtaW51cyA9IEEtMkMuCisgIC8vIE91dHB1dDogcHJvamVjdGl2ZSBNb250Z29tZXJ5IHgtY29v
cmRpbmF0ZXMgUSA9IDMqUCA9IChYMzpaMykuCisgICAgZjJlbG1fdCB0MCwgdDEsIHQyLCB0Mywg
dDQsIHQ1LCB0NjsKKworICAgIHNpa2VfZnAyc3ViKFAtPlgsIFAtPlosIHQwKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gdDAgPSBYLVoKKyAgICBzaWtlX2ZwMnNxcl9tb250KHQwLCB0Mik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQyID0gKFgtWileMgorICAgIHNpa2VfZnAy
YWRkKFAtPlgsIFAtPlosIHQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDEgPSBYK1oK
KyAgICBzaWtlX2ZwMnNxcl9tb250KHQxLCB0Myk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIHQzID0gKFgrWileMgorICAgIHNpa2VfZnAyYWRkKHQwLCB0MSwgdDQpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gdDQgPSAyKlgKKyAgICBzaWtlX2ZwMnN1Yih0MSwgdDAsIHQw
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQwID0gMipaCisgICAgc2lrZV9mcDJz
cXJfbW9udCh0NCwgdDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0MSA9IDQqWF4y
CisgICAgc2lrZV9mcDJzdWIodDEsIHQzLCB0MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyB0MSA9IDQqWF4yIC0gKFgrWileMgorICAgIHNpa2VfZnAyc3ViKHQxLCB0MiwgdDEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDEgPSA0KlheMiAtIChYK1opXjIgLSAoWC1a
KV4yCisgICAgc2lrZV9mcDJtdWxfbW9udCh0MywgQTI0cGx1cywgdDUpOyAgICAgICAgICAgICAg
ICAgICAvLyB0NSA9IEEyNHBsdXMqKFgrWileMgorICAgIHNpa2VfZnAybXVsX21vbnQodDMsIHQ1
LCB0Myk7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDMgPSBBMjRwbHVzKihYK1opXjMKKyAg
ICBzaWtlX2ZwMm11bF9tb250KEEyNG1pbnVzLCB0MiwgdDYpOyAgICAgICAgICAgICAgICAgIC8v
IHQ2ID0gQTI0bWludXMqKFgtWileMgorICAgIHNpa2VfZnAybXVsX21vbnQodDIsIHQ2LCB0Mik7
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDIgPSBBMjRtaW51cyooWC1aKV4zCisgICAgc2lr
ZV9mcDJzdWIodDIsIHQzLCB0Myk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0MyA9
IEEyNG1pbnVzKihYLVopXjMgLSBjb2VmZiooWCtaKV4zCisgICAgc2lrZV9mcDJzdWIodDUsIHQ2
LCB0Mik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0MiA9IEEyNHBsdXMqKFgrWile
MiAtIEEyNG1pbnVzKihYLVopXjIKKyAgICBzaWtlX2ZwMm11bF9tb250KHQxLCB0MiwgdDEpOyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHQxID0gWzQqWF4yIC0gKFgrWileMiAtIChYLVopXjJd
KltBMjRwbHVzKihYK1opXjIgLSBBMjRtaW51cyooWC1aKV4yXQorICAgIHNpa2VfZnAyYWRkKHQz
LCB0MSwgdDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDIgPSBbNCpYXjIgLSAo
WCtaKV4yIC0gKFgtWileMl0qW0EyNHBsdXMqKFgrWileMiAtIEEyNG1pbnVzKihYLVopXjJdICsg
QTI0bWludXMqKFgtWileMyAtIGNvZWZmKihYK1opXjMKKyAgICBzaWtlX2ZwMnNxcl9tb250KHQy
LCB0Mik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQyID0gdDJeMgorICAgIHNpa2Vf
ZnAybXVsX21vbnQodDQsIHQyLCBRLT5YKTsgICAgICAgICAgICAgICAgICAgICAgLy8gWDMgPSAy
KlgqdDIKKyAgICBzaWtlX2ZwMnN1Yih0MywgdDEsIHQxKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIHQxID0gQTI0bWludXMqKFgtWileMyAtIEEyNHBsdXMqKFgrWileMyAtIFs0Klhe
MiAtIChYK1opXjIgLSAoWC1aKV4yXSpbQTI0cGx1cyooWCtaKV4yIC0gQTI0bWludXMqKFgtWile
Ml0KKyAgICBzaWtlX2ZwMnNxcl9tb250KHQxLCB0MSk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIHQxID0gdDFeMgorICAgIHNpa2VfZnAybXVsX21vbnQodDAsIHQxLCBRLT5aKTsgICAg
ICAgICAgICAgICAgICAgICAgLy8gWjMgPSAyKloqdDEKK30KKwordm9pZCBzaWtlX3hUUExlKGNv
bnN0IHBvaW50X3Byb2pfdCBQLCBwb2ludF9wcm9qX3QgUSwgY29uc3QgZjJlbG1fdCBBMjRtaW51
cywgY29uc3QgZjJlbG1fdCBBMjRwbHVzLCBzaXplX3QgZSkKK3sgLy8gQ29tcHV0ZXMgWzNeZV0o
WDpaKSBvbiBNb250Z29tZXJ5IGN1cnZlIHdpdGggcHJvamVjdGl2ZSBjb25zdGFudCB2aWEgZSBy
ZXBlYXRlZCB0cmlwbGluZ3MuCisgIC8vIElucHV0OiBwcm9qZWN0aXZlIE1vbnRnb21lcnkgeC1j
b29yZGluYXRlcyBQID0gKFhQOlpQKSwgc3VjaCB0aGF0IHhQPVhQL1pQIGFuZCBNb250Z29tZXJ5
IGN1cnZlIGNvbnN0YW50cyBBMjRwbHVzID0gQSsyQyBhbmQgQTI0bWludXMgPSBBLTJDLgorICAv
LyBPdXRwdXQ6IHByb2plY3RpdmUgTW9udGdvbWVyeSB4LWNvb3JkaW5hdGVzIFEgPC0gKDNeZSkq
UC4KKyAgICBtZW1tb3ZlKFEsIFAsIHNpemVvZigqUCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgZTsgaSsrKSB7CisgICAgICAgIHNpa2VfeFRQTChRLCBRLCBBMjRtaW51cywgQTI0cGx1
cyk7CisgICAgfQorfQorCit2b2lkIHNpa2VfZ2V0XzNfaXNvZyhjb25zdCBwb2ludF9wcm9qX3Qg
UCwgZjJlbG1fdCBBMjRtaW51cywgZjJlbG1fdCBBMjRwbHVzLCBmMmVsbV90KiBjb2VmZikKK3sg
Ly8gQ29tcHV0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgMy1pc29nZW55IG9mIGEgcHJvamVjdGl2ZSBN
b250Z29tZXJ5IHBvaW50IChYMzpaMykgb2Ygb3JkZXIgMy4KKyAgLy8gSW5wdXQ6ICBwcm9qZWN0
aXZlIHBvaW50IG9mIG9yZGVyIHRocmVlIFAgPSAoWDM6WjMpLgorICAvLyBPdXRwdXQ6IHRoZSAz
LWlzb2dlbm91cyBNb250Z29tZXJ5IGN1cnZlIHdpdGggcHJvamVjdGl2ZSBjb2VmZmljaWVudCBB
L0MuCisgICAgZjJlbG1fdCB0MCwgdDEsIHQyLCB0MywgdDQ7CisKKyAgICBzaWtlX2ZwMnN1YihQ
LT5YLCBQLT5aLCBjb2VmZlswXSk7ICAgICAgICAgICAgICAgICAgIC8vIGNvZWZmMCA9IFgtWgor
ICAgIHNpa2VfZnAyc3FyX21vbnQoY29lZmZbMF0sIHQwKTsgICAgICAgICAgICAgICAgICAgICAg
Ly8gdDAgPSAoWC1aKV4yCisgICAgc2lrZV9mcDJhZGQoUC0+WCwgUC0+WiwgY29lZmZbMV0pOyAg
ICAgICAgICAgICAgICAgICAvLyBjb2VmZjEgPSBYK1oKKyAgICBzaWtlX2ZwMnNxcl9tb250KGNv
ZWZmWzFdLCB0MSk7ICAgICAgICAgICAgICAgICAgICAgIC8vIHQxID0gKFgrWileMgorICAgIHNp
a2VfZnAyYWRkKHQwLCB0MSwgdDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDIg
PSAoWCtaKV4yICsgKFgtWileMgorICAgIHNpa2VfZnAyYWRkKGNvZWZmWzBdLCBjb2VmZlsxXSwg
dDMpOyAgICAgICAgICAgICAgICAgLy8gdDMgPSAyKlgKKyAgICBzaWtlX2ZwMnNxcl9tb250KHQz
LCB0Myk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQzID0gNCpYXjIKKyAgICBzaWtl
X2ZwMnN1Yih0MywgdDIsIHQzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQzID0g
NCpYXjIgLSAoWCtaKV4yIC0gKFgtWileMgorICAgIHNpa2VfZnAyYWRkKHQxLCB0MywgdDIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDIgPSA0KlheMiAtIChYLVopXjIKKyAgICBz
aWtlX2ZwMmFkZCh0MywgdDAsIHQzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQz
ID0gNCpYXjIgLSAoWCtaKV4yCisgICAgc2lrZV9mcDJhZGQodDAsIHQzLCB0NCk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyB0NCA9IDQqWF4yIC0gKFgrWileMiArIChYLVopXjIKKyAg
ICBzaWtlX2ZwMmFkZCh0NCwgdDQsIHQ0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHQ0ID0gMig0KlheMiAtIChYK1opXjIgKyAoWC1aKV4yKQorICAgIHNpa2VfZnAyYWRkKHQxLCB0
NCwgdDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDQgPSA4KlheMiAtIChYK1op
XjIgKyAyKihYLVopXjIKKyAgICBzaWtlX2ZwMm11bF9tb250KHQyLCB0NCwgQTI0bWludXMpOyAg
ICAgICAgICAgICAgICAgIC8vIEEyNG1pbnVzID0gWzQqWF4yIC0gKFgtWileMl0qWzgqWF4yIC0g
KFgrWileMiArIDIqKFgtWileMl0KKyAgICBzaWtlX2ZwMmFkZCh0MSwgdDIsIHQ0KTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHQ0ID0gNCpYXjIgKyAoWCtaKV4yIC0gKFgtWileMgor
ICAgIHNpa2VfZnAyYWRkKHQ0LCB0NCwgdDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gdDQgPSAyKDQqWF4yICsgKFgrWileMiAtIChYLVopXjIpCisgICAgc2lrZV9mcDJhZGQodDAs
IHQ0LCB0NCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0NCA9IDgqWF4yICsgMioo
WCtaKV4yIC0gKFgtWileMgorICAgIHNpa2VfZnAybXVsX21vbnQodDMsIHQ0LCB0NCk7ICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gdDQgPSBbNCpYXjIgLSAoWCtaKV4yXSpbOCpYXjIgKyAyKihY
K1opXjIgLSAoWC1aKV4yXQorICAgIHNpa2VfZnAyc3ViKHQ0LCBBMjRtaW51cywgdDApOyAgICAg
ICAgICAgICAgICAgICAgICAgLy8gdDAgPSBbNCpYXjIgLSAoWCtaKV4yXSpbOCpYXjIgKyAyKihY
K1opXjIgLSAoWC1aKV4yXSAtIFs0KlheMiAtIChYLVopXjJdKls4KlheMiAtIChYK1opXjIgKyAy
KihYLVopXjJdCisgICAgc2lrZV9mcDJhZGQoQTI0bWludXMsIHQwLCBBMjRwbHVzKTsgICAgICAg
ICAgICAgICAgICAvLyBBMjRwbHVzID0gOCpYXjIgLSAoWCtaKV4yICsgMiooWC1aKV4yCit9CisK
Kwordm9pZCBzaWtlX2V2YWxfM19pc29nKHBvaW50X3Byb2pfdCBRLCBmMmVsbV90KiBjb2VmZikK
K3sgLy8gQ29tcHV0ZXMgdGhlIDMtaXNvZ2VueSBSPXBoaShYOlopLCBnaXZlbiBwcm9qZWN0aXZl
IHBvaW50IChYMzpaMykgb2Ygb3JkZXIgMyBvbiBhIE1vbnRnb21lcnkgY3VydmUgYW5kCisgIC8v
IGEgcG9pbnQgUCB3aXRoIDIgY29lZmZpY2llbnRzIGluIGNvZWZmIChjb21wdXRlZCBpbiB0aGUg
ZnVuY3Rpb24gZ2V0XzNfaXNvZygpKS4KKyAgLy8gSW5wdXRzOiBwcm9qZWN0aXZlIHBvaW50cyBQ
ID0gKFgzOlozKSBhbmQgUSA9IChYOlopLgorICAvLyBPdXRwdXQ6IHRoZSBwcm9qZWN0aXZlIHBv
aW50IFEgPC0gcGhpKFEpID0gKFgzOlozKS4KKyAgICBmMmVsbV90IHQwLCB0MSwgdDI7CisKKyAg
ICBzaWtlX2ZwMmFkZChRLT5YLCBRLT5aLCB0MCk7ICAgICAgICAgICAgICAgICAgICAgICAvLyB0
MCA9IFgrWgorICAgIHNpa2VfZnAyc3ViKFEtPlgsIFEtPlosIHQxKTsgICAgICAgICAgICAgICAg
ICAgICAgIC8vIHQxID0gWC1aCisgICAgc2lrZV9mcDJtdWxfbW9udCh0MCwgY29lZmZbMF0sIHQw
KTsgICAgICAgICAgICAgICAgLy8gdDAgPSBjb2VmZjAqKFgrWikKKyAgICBzaWtlX2ZwMm11bF9t
b250KHQxLCBjb2VmZlsxXSwgdDEpOyAgICAgICAgICAgICAgICAvLyB0MSA9IGNvZWZmMSooWC1a
KQorICAgIHNpa2VfZnAyYWRkKHQwLCB0MSwgdDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIHQyID0gY29lZmYwKihYK1opICsgY29lZmYxKihYLVopCisgICAgc2lrZV9mcDJzdWIodDEs
IHQwLCB0MCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSBjb2VmZjEqKFgtWikg
LSBjb2VmZjAqKFgrWikKKyAgICBzaWtlX2ZwMnNxcl9tb250KHQyLCB0Mik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyB0MiA9IFtjb2VmZjAqKFgrWikgKyBjb2VmZjEqKFgtWildXjIKKyAg
ICBzaWtlX2ZwMnNxcl9tb250KHQwLCB0MCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0
MCA9IFtjb2VmZjEqKFgtWikgLSBjb2VmZjAqKFgrWildXjIKKyAgICBzaWtlX2ZwMm11bF9tb250
KFEtPlgsIHQyLCBRLT5YKTsgICAgICAgICAgICAgICAgICAvLyBYM2ZpbmFsID0gWCpbY29lZmYw
KihYK1opICsgY29lZmYxKihYLVopXV4yCisgICAgc2lrZV9mcDJtdWxfbW9udChRLT5aLCB0MCwg
US0+Wik7ICAgICAgICAgICAgICAgICAgLy8gWjNmaW5hbCA9IFoqW2NvZWZmMSooWC1aKSAtIGNv
ZWZmMCooWCtaKV1eMgorfQorCisKK3ZvaWQgc2lrZV9pbnZfM193YXkoZjJlbG1fdCB6MSwgZjJl
bG1fdCB6MiwgZjJlbG1fdCB6MykKK3sgLy8gMy13YXkgc2ltdWx0YW5lb3VzIGludmVyc2lvbgor
ICAvLyBJbnB1dDogIHoxLHoyLHozCisgIC8vIE91dHB1dDogMS96MSwxL3oyLDEvejMgKG92ZXJy
aWRlIGlucHV0cykuCisgICAgZjJlbG1fdCB0MCwgdDEsIHQyLCB0MzsKKworICAgIHNpa2VfZnAy
bXVsX21vbnQoejEsIHoyLCB0MCk7ICAgICAgICAgICAgICAgICAgICAgIC8vIHQwID0gejEqejIK
KyAgICBzaWtlX2ZwMm11bF9tb250KHozLCB0MCwgdDEpOyAgICAgICAgICAgICAgICAgICAgICAv
LyB0MSA9IHoxKnoyKnozCisgICAgc2lrZV9mcDJpbnZfbW9udCh0MSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gdDEgPSAxLyh6MSp6Mip6MykKKyAgICBzaWtlX2ZwMm11bF9tb250
KHozLCB0MSwgdDIpOyAgICAgICAgICAgICAgICAgICAgICAvLyB0MiA9IDEvKHoxKnoyKQorICAg
IHNpa2VfZnAybXVsX21vbnQodDIsIHoyLCB0Myk7ICAgICAgICAgICAgICAgICAgICAgIC8vIHQz
ID0gMS96MQorICAgIHNpa2VfZnAybXVsX21vbnQodDIsIHoxLCB6Mik7ICAgICAgICAgICAgICAg
ICAgICAgIC8vIHoyID0gMS96MgorICAgIHNpa2VfZnAybXVsX21vbnQodDAsIHQxLCB6Myk7ICAg
ICAgICAgICAgICAgICAgICAgIC8vIHozID0gMS96MworICAgIHNpa2VfZnAyY29weSh0MywgejEp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHoxID0gMS96MQorfQorCisKK3ZvaWQg
c2lrZV9nZXRfQShjb25zdCBmMmVsbV90IHhQLCBjb25zdCBmMmVsbV90IHhRLCBjb25zdCBmMmVs
bV90IHhSLCBmMmVsbV90IEEpCit7IC8vIEdpdmVuIHRoZSB4LWNvb3JkaW5hdGVzIG9mIFAsIFEs
IGFuZCBSLCByZXR1cm5zIHRoZSB2YWx1ZSBBIGNvcnJlc3BvbmRpbmcgdG8gdGhlIE1vbnRnb21l
cnkgY3VydmUgRV9BOiB5XjI9eF4zK0EqeF4yK3ggc3VjaCB0aGF0IFI9US1QIG9uIEVfQS4KKyAg
Ly8gSW5wdXQ6ICB0aGUgeC1jb29yZGluYXRlcyB4UCwgeFEsIGFuZCB4UiBvZiB0aGUgcG9pbnRz
IFAsIFEgYW5kIFIuCisgIC8vIE91dHB1dDogdGhlIGNvZWZmaWNpZW50IEEgY29ycmVzcG9uZGlu
ZyB0byB0aGUgY3VydmUgRV9BOiB5XjI9eF4zK0EqeF4yK3guCisgICAgZjJlbG1fdCB0MCwgdDEs
IG9uZSA9IEYyRUxNX0lOSVQ7CisKKyAgICBleHRlcm4gY29uc3Qgc3RydWN0IHBhcmFtc190IHNp
a2VfcGFyYW1zOworICAgIHNpa2VfZnBjb3B5KHNpa2VfcGFyYW1zLm1vbnRfb25lLCBvbmUtPmMw
KTsKKyAgICBzaWtlX2ZwMmFkZCh4UCwgeFEsIHQxKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyB0MSA9IHhQK3hRCisgICAgc2lrZV9mcDJtdWxfbW9udCh4UCwgeFEsIHQwKTsgICAgICAg
ICAgICAgICAgICAgICAgLy8gdDAgPSB4UCp4UQorICAgIHNpa2VfZnAybXVsX21vbnQoeFIsIHQx
LCBBKTsgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgPSB4Uip0MQorICAgIHNpa2VfZnAyYWRk
KHQwLCBBLCBBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgPSBBK3QwCisgICAg
c2lrZV9mcDJtdWxfbW9udCh0MCwgeFIsIHQwKTsgICAgICAgICAgICAgICAgICAgICAgLy8gdDAg
PSB0MCp4UgorICAgIHNpa2VfZnAyc3ViKEEsIG9uZSwgQSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEEgPSBBLTEKKyAgICBzaWtlX2ZwMmFkZCh0MCwgdDAsIHQwKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyB0MCA9IHQwK3QwCisgICAgc2lrZV9mcDJhZGQodDEsIHhSLCB0
MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDEgPSB0MSt4UgorICAgIHNpa2VfZnAy
YWRkKHQwLCB0MCwgdDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQwID0gdDArdDAK
KyAgICBzaWtlX2ZwMnNxcl9tb250KEEsIEEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBBID0gQV4yCisgICAgc2lrZV9mcDJpbnZfbW9udCh0MCk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gdDAgPSAxL3QwCisgICAgc2lrZV9mcDJtdWxfbW9udChBLCB0MCwgQSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gQSA9IEEqdDAKKyAgICBzaWtlX2ZwMnN1YihBLCB0MSwg
QSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZmluYWwgPSBBLXQxCit9CisKKwor
dm9pZCBzaWtlX2pfaW52KGNvbnN0IGYyZWxtX3QgQSwgY29uc3QgZjJlbG1fdCBDLCBmMmVsbV90
IGppbnYpCit7IC8vIENvbXB1dGVzIHRoZSBqLWludmFyaWFudCBvZiBhIE1vbnRnb21lcnkgY3Vy
dmUgd2l0aCBwcm9qZWN0aXZlIGNvbnN0YW50LgorICAvLyBJbnB1dDogQSxDIGluIEdGKHBeMiku
CisgIC8vIE91dHB1dDogaj0yNTYqKEFeMi0zKkNeMileMy8oQ140KihBXjItNCpDXjIpKSwgd2hp
Y2ggaXMgdGhlIGotaW52YXJpYW50IG9mIHRoZSBNb250Z29tZXJ5IGN1cnZlIEIqeV4yPXheMyso
QS9DKSp4XjIreCBvciAoZXF1aXZhbGVudGx5KSBqLWludmFyaWFudCBvZiBCJyp5XjI9Qyp4XjMr
QSp4XjIrQyp4LgorICAgIGYyZWxtX3QgdDAsIHQxOworCisgICAgc2lrZV9mcDJzcXJfbW9udChB
LCBqaW52KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBqaW52ID0gQV4yCisgICAgc2lr
ZV9mcDJzcXJfbW9udChDLCB0MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0MSA9
IENeMgorICAgIHNpa2VfZnAyYWRkKHQxLCB0MSwgdDApOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gdDAgPSB0MSt0MQorICAgIHNpa2VfZnAyc3ViKGppbnYsIHQwLCB0MCk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSBqaW52LXQwCisgICAgc2lrZV9mcDJzdWIodDAs
IHQxLCB0MCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0MCA9IHQwLXQxCisgICAg
c2lrZV9mcDJzdWIodDAsIHQxLCBqaW52KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBq
aW52ID0gdDAtdDEKKyAgICBzaWtlX2ZwMnNxcl9tb250KHQxLCB0MSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHQxID0gdDFeMgorICAgIHNpa2VfZnAybXVsX21vbnQoamludiwgdDEs
IGppbnYpOyAgICAgICAgICAgICAgICAgICAgLy8gamludiA9IGppbnYqdDEKKyAgICBzaWtlX2Zw
MmFkZCh0MCwgdDAsIHQwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQwID0gdDAr
dDAKKyAgICBzaWtlX2ZwMmFkZCh0MCwgdDAsIHQwKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIHQwID0gdDArdDAKKyAgICBzaWtlX2ZwMnNxcl9tb250KHQwLCB0MSk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHQxID0gdDBeMgorICAgIHNpa2VfZnAybXVsX21vbnQodDAs
IHQxLCB0MCk7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSB0MCp0MQorICAgIHNpa2Vf
ZnAyYWRkKHQwLCB0MCwgdDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSB0
MCt0MAorICAgIHNpa2VfZnAyYWRkKHQwLCB0MCwgdDApOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gdDAgPSB0MCt0MAorICAgIHNpa2VfZnAyaW52X21vbnQoamludik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gamludiA9IDEvamludgorICAgIHNpa2VfZnAybXVsX21v
bnQoamludiwgdDAsIGppbnYpOyAgICAgICAgICAgICAgICAgICAgLy8gamludiA9IHQwKmppbnYK
K30KKworCit2b2lkIHNpa2VfeERCTEFERChwb2ludF9wcm9qX3QgUCwgcG9pbnRfcHJval90IFEs
IGNvbnN0IGYyZWxtX3QgeFBRLCBjb25zdCBmMmVsbV90IEEyNCkKK3sgLy8gU2ltdWx0YW5lb3Vz
IGRvdWJsaW5nIGFuZCBkaWZmZXJlbnRpYWwgYWRkaXRpb24uCisgIC8vIElucHV0OiBwcm9qZWN0
aXZlIE1vbnRnb21lcnkgcG9pbnRzIFA9KFhQOlpQKSBhbmQgUT0oWFE6WlEpIHN1Y2ggdGhhdCB4
UD1YUC9aUCBhbmQgeFE9WFEvWlEsIGFmZmluZSBkaWZmZXJlbmNlIHhQUT14KFAtUSkgYW5kIE1v
bnRnb21lcnkgY3VydmUgY29uc3RhbnQgQTI0PShBKzIpLzQuCisgIC8vIE91dHB1dDogcHJvamVj
dGl2ZSBNb250Z29tZXJ5IHBvaW50cyBQIDwtIDIqUCA9IChYMlA6WjJQKSBzdWNoIHRoYXQgeCgy
UCk9WDJQL1oyUCwgYW5kIFEgPC0gUCtRID0gKFhRUDpaUVApIHN1Y2ggdGhhdCA9IHgoUStQKT1Y
UVAvWlFQLgorICAgIGYyZWxtX3QgdDAsIHQxLCB0MjsKKworICAgIHNpa2VfZnAyYWRkKFAtPlgs
IFAtPlosIHQwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSBYUCtaUAorICAgIHNp
a2VfZnAyc3ViKFAtPlgsIFAtPlosIHQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDEg
PSBYUC1aUAorICAgIHNpa2VfZnAyc3FyX21vbnQodDAsIFAtPlgpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gWFAgPSAoWFArWlApXjIKKyAgICBzaWtlX2ZwMnN1YihRLT5YLCBRLT5aLCB0
Mik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHQyID0gWFEtWlEKKyAgICBzaWtlX2ZwMmNv
cnJlY3Rpb24odDIpOworICAgIHNpa2VfZnAyYWRkKFEtPlgsIFEtPlosIFEtPlgpOyAgICAgICAg
ICAgICAgICAgICAgICAgLy8gWFEgPSBYUStaUQorICAgIHNpa2VfZnAybXVsX21vbnQodDAsIHQy
LCB0MCk7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDAgPSAoWFArWlApKihYUS1aUSkKKyAg
ICBzaWtlX2ZwMnNxcl9tb250KHQxLCBQLT5aKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IFpQID0gKFhQLVpQKV4yCisgICAgc2lrZV9mcDJtdWxfbW9udCh0MSwgUS0+WCwgdDEpOyAgICAg
ICAgICAgICAgICAgICAgICAvLyB0MSA9IChYUC1aUCkqKFhRK1pRKQorICAgIHNpa2VfZnAyc3Vi
KFAtPlgsIFAtPlosIHQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdDIgPSAoWFArWlAp
XjItKFhQLVpQKV4yCisgICAgc2lrZV9mcDJtdWxfbW9udChQLT5YLCBQLT5aLCBQLT5YKTsgICAg
ICAgICAgICAgICAgICAvLyBYUCA9IChYUCtaUCleMiooWFAtWlApXjIKKyAgICBzaWtlX2ZwMm11
bF9tb250KHQyLCBBMjQsIFEtPlgpOyAgICAgICAgICAgICAgICAgICAgIC8vIFhRID0gQTI0Klso
WFArWlApXjItKFhQLVpQKV4yXQorICAgIHNpa2VfZnAyc3ViKHQwLCB0MSwgUS0+Wik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gWlEgPSAoWFArWlApKihYUS1aUSktKFhQLVpQKSooWFEr
WlEpCisgICAgc2lrZV9mcDJhZGQoUS0+WCwgUC0+WiwgUC0+Wik7ICAgICAgICAgICAgICAgICAg
ICAgICAvLyBaUCA9IEEyNCpbKFhQK1pQKV4yLShYUC1aUCleMl0rKFhQLVpQKV4yCisgICAgc2lr
ZV9mcDJhZGQodDAsIHQxLCBRLT5YKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBYUSA9
IChYUCtaUCkqKFhRLVpRKSsoWFAtWlApKihYUStaUSkKKyAgICBzaWtlX2ZwMm11bF9tb250KFAt
PlosIHQyLCBQLT5aKTsgICAgICAgICAgICAgICAgICAgIC8vIFpQID0gW0EyNCpbKFhQK1pQKV4y
LShYUC1aUCleMl0rKFhQLVpQKV4yXSpbKFhQK1pQKV4yLShYUC1aUCleMl0KKyAgICBzaWtlX2Zw
MnNxcl9tb250KFEtPlosIFEtPlopOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFpRID0gWyhY
UCtaUCkqKFhRLVpRKS0oWFAtWlApKihYUStaUSldXjIKKyAgICBzaWtlX2ZwMnNxcl9tb250KFEt
PlgsIFEtPlgpOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhRID0gWyhYUCtaUCkqKFhRLVpR
KSsoWFAtWlApKihYUStaUSldXjIKKyAgICBzaWtlX2ZwMm11bF9tb250KFEtPlosIHhQUSwgUS0+
Wik7ICAgICAgICAgICAgICAgICAgIC8vIFpRID0geFBRKlsoWFArWlApKihYUS1aUSktKFhQLVpQ
KSooWFErWlEpXV4yCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9pc29nZW55
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9pc29nZW55LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgzMzdkZDI2
MjUxNjFkZDZhMTI1NzNhMWZkNWVmMjgzNmE3MGJiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90
aGlyZF9wYXJ0eS9zaWtlL2lzb2dlbnkuaApAQCAtMCwwICsxLDQ5IEBACisjaWZuZGVmIElTT0dF
TllfSF8KKyNkZWZpbmUgSVNPR0VOWV9IXworCisvLyBDb21wdXRlcyBbMl5lXShYOlopIG9uIE1v
bnRnb21lcnkgY3VydmUgd2l0aCBwcm9qZWN0aXZlCisvLyBjb25zdGFudCB2aWEgZSByZXBlYXRl
ZCBkb3VibGluZ3MuCit2b2lkIHNpa2VfeERCTGUoCisgICAgY29uc3QgcG9pbnRfcHJval90IFAs
IHBvaW50X3Byb2pfdCBRLCBjb25zdCBmMmVsbV90IEEyNHBsdXMsCisgICAgY29uc3QgZjJlbG1f
dCBDMjQsIHNpemVfdCBlKTsKKy8vIFNpbXVsdGFuZW91cyBkb3VibGluZyBhbmQgZGlmZmVyZW50
aWFsIGFkZGl0aW9uLgordm9pZCBzaWtlX3hEQkxBREQoCisgICAgcG9pbnRfcHJval90IFAsIHBv
aW50X3Byb2pfdCBRLCBjb25zdCBmMmVsbV90IHhQUSwKKyAgICBjb25zdCBmMmVsbV90IEEyNCk7
CisvLyBUcmlwbGluZyBvZiBhIE1vbnRnb21lcnkgcG9pbnQgaW4gcHJvamVjdGl2ZSBjb29yZGlu
YXRlcyAoWDpaKS4KK3ZvaWQgc2lrZV94VFBMKAorICAgIGNvbnN0IHBvaW50X3Byb2pfdCBQLCBw
b2ludF9wcm9qX3QgUSwgY29uc3QgZjJlbG1fdCBBMjRtaW51cywKKyAgICBjb25zdCBmMmVsbV90
IEEyNHBsdXMpOworLy8gQ29tcHV0ZXMgWzNeZV0oWDpaKSBvbiBNb250Z29tZXJ5IGN1cnZlIHdp
dGggcHJvamVjdGl2ZSBjb25zdGFudAorLy8gdmlhIGUgcmVwZWF0ZWQgdHJpcGxpbmdzLgordm9p
ZCBzaWtlX3hUUExlKAorICAgIGNvbnN0IHBvaW50X3Byb2pfdCBQLCBwb2ludF9wcm9qX3QgUSwg
Y29uc3QgZjJlbG1fdCBBMjRtaW51cywKKyAgICBjb25zdCBmMmVsbV90IEEyNHBsdXMsIHNpemVf
dCBlKTsKKy8vIEdpdmVuIHRoZSB4LWNvb3JkaW5hdGVzIG9mIFAsIFEsIGFuZCBSLCByZXR1cm5z
IHRoZSB2YWx1ZSBBCisvLyBjb3JyZXNwb25kaW5nIHRvIHRoZSBNb250Z29tZXJ5IGN1cnZlIEVf
QTogeV4yPXheMytBKnheMit4IHN1Y2ggdGhhdCBSPVEtUCBvbiBFX0EuCit2b2lkIHNpa2VfZ2V0
X0EoCisgICAgY29uc3QgZjJlbG1fdCB4UCwgY29uc3QgZjJlbG1fdCB4USwgY29uc3QgZjJlbG1f
dCB4UiwgZjJlbG1fdCBBKTsKKy8vIENvbXB1dGVzIHRoZSBqLWludmFyaWFudCBvZiBhIE1vbnRn
b21lcnkgY3VydmUgd2l0aCBwcm9qZWN0aXZlIGNvbnN0YW50Lgordm9pZCBzaWtlX2pfaW52KAor
ICAgIGNvbnN0IGYyZWxtX3QgQSwgY29uc3QgZjJlbG1fdCBDLCBmMmVsbV90IGppbnYpOworLy8g
Q29tcHV0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgNC1pc29nZW55IG9mIGEgcHJvamVjdGl2ZSBNb250
Z29tZXJ5CisvLyBwb2ludCAoWDQ6WjQpIG9mIG9yZGVyIDQuCit2b2lkIHNpa2VfZ2V0XzRfaXNv
ZygKKyAgICBjb25zdCBwb2ludF9wcm9qX3QgUCwgZjJlbG1fdCBBMjRwbHVzLCBmMmVsbV90IEMy
NCwgZjJlbG1fdCogY29lZmYpOworLy8gQ29tcHV0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgMy1pc29n
ZW55IG9mIGEgcHJvamVjdGl2ZSBNb250Z29tZXJ5CisvLyBwb2ludCAoWDM6WjMpIG9mIG9yZGVy
IDMuCit2b2lkIHNpa2VfZ2V0XzNfaXNvZygKKyAgICBjb25zdCBwb2ludF9wcm9qX3QgUCwgZjJl
bG1fdCBBMjRtaW51cywgZjJlbG1fdCBBMjRwbHVzLAorICAgIGYyZWxtX3QqIGNvZWZmKTsKKy8v
IENvbXB1dGVzIHRoZSAzLWlzb2dlbnkgUj1waGkoWDpaKSwgZ2l2ZW4gcHJvamVjdGl2ZSBwb2lu
dCAoWDM6WjMpCisvLyBvZiBvcmRlciAzIG9uIGEgTW9udGdvbWVyeSBjdXJ2ZSBhbmQgYSBwb2lu
dCBQIHdpdGggY29lZmZpY2llbnRzIGdpdmVuIGluIGNvZWZmLgordm9pZCBzaWtlX2V2YWxfM19p
c29nKAorICAgIHBvaW50X3Byb2pfdCBRLCBmMmVsbV90KiBjb2VmZik7CisvLyBFdmFsdWF0ZXMg
dGhlIGlzb2dlbnkgYXQgdGhlIHBvaW50IChYOlopIGluIHRoZSBkb21haW4gb2YgdGhlIGlzb2dl
bnkuCit2b2lkIHNpa2VfZXZhbF80X2lzb2coCisgICAgcG9pbnRfcHJval90IFAsIGYyZWxtX3Qq
IGNvZWZmKTsKKy8vIDMtd2F5IHNpbXVsdGFuZW91cyBpbnZlcnNpb24KK3ZvaWQgc2lrZV9pbnZf
M193YXkoCisgICAgZjJlbG1fdCB6MSwgZjJlbG1fdCB6MiwgZjJlbG1fdCB6Myk7CisKKyNlbmRp
ZiAvLyBJU09HRU5ZX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9zaWtlLmMg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdGhpcmRfcGFydHkvc2lrZS9zaWtlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdiNzQxNzRiNGExMzMw
YzJiOWM5MzNkYmYyZjRkOTk0MGU5NDUyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9w
YXJ0eS9zaWtlL3Npa2UuYwpAQCAtMCwwICsxLDUzMSBAQAorLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqIFNJREg6IGFuIGVmZmljaWVudCBzdXBlcnNpbmd1bGFyIGlzb2dl
bnkgY3J5cHRvZ3JhcGh5IGxpYnJhcnkKKyoKKyogQWJzdHJhY3Q6IHN1cGVyc2luZ3VsYXIgaXNv
Z2VueSBrZXkgZW5jYXBzdWxhdGlvbiAoU0lLRSkgcHJvdG9jb2wKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0
ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KKyNp
bmNsdWRlIDxvcGVuc3NsL2Jhc2UuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KKyNpbmNs
dWRlIDxvcGVuc3NsL21lbS5oPgorI2luY2x1ZGUgPG9wZW5zc2wvc2hhLmg+CisKKyNpbmNsdWRl
ICJ1dGlscy5oIgorI2luY2x1ZGUgImlzb2dlbnkuaCIKKyNpbmNsdWRlICJmcHguaCIKKworZXh0
ZXJuIGNvbnN0IHN0cnVjdCBwYXJhbXNfdCBzaWtlX3BhcmFtczsKKworLy8gU0lESF9KSU5WX0JZ
VEVTWiBpcyBhIG51bWJlciBvZiBieXRlcyB1c2VkIGZvciBlbmNvZGluZyBqLWludmFyaWFudC4K
KyNkZWZpbmUgU0lESF9KSU5WX0JZVEVTWiAgICAxMTBVCisvLyBTSURIX1BSVl9BX0JJVFNaIGlz
IGEgbnVtYmVyIG9mIGJpdHMgb2YgU0lESCBwcml2YXRlIGtleSAoMi1pc29nZW55KQorI2RlZmlu
ZSBTSURIX1BSVl9BX0JJVFNaICAgIDIxNlUKKy8vIFNJREhfUFJWX0FfQklUU1ogaXMgYSBudW1i
ZXIgb2YgYml0cyBvZiBTSURIIHByaXZhdGUga2V5ICgzLWlzb2dlbnkpCisjZGVmaW5lIFNJREhf
UFJWX0JfQklUU1ogICAgMjE3VQorLy8gTUFYX0lOVF9QT0lOVFNfQUxJQ0UgaXMgYSBudW1iZXIg
b2YgcG9pbnRzIHVzZWQgaW4gMi1pc29nZW55IHRyZWUgY29tcHV0YXRpb24KKyNkZWZpbmUgTUFY
X0lOVF9QT0lOVFNfQUxJQ0UgICAgN1UKKy8vIE1BWF9JTlRfUE9JTlRTX0FMSUNFIGlzIGEgbnVt
YmVyIG9mIHBvaW50cyB1c2VkIGluIDMtaXNvZ2VueSB0cmVlIGNvbXB1dGF0aW9uCisjZGVmaW5l
IE1BWF9JTlRfUE9JTlRTX0JPQiAgICAgIDhVCisKKy8vIFN3YXAgcG9pbnRzLgorLy8gSWYgb3B0
aW9uID0gMCB0aGVuIFAgPC0gUCBhbmQgUSA8LSBRLCBlbHNlIGlmIG9wdGlvbiA9IDB4RkYuLi5G
RiB0aGVuIFAgPC0gUSBhbmQgUSA8LSBQCisjaWYgIWRlZmluZWQoT1BFTlNTTF9YODZfNjQpIHx8
IGRlZmluZWQoT1BFTlNTTF9OT19BU00pCitzdGF0aWMgdm9pZCBzaWtlX2Nzd2FwKHBvaW50X3By
b2pfdCBQLCBwb2ludF9wcm9qX3QgUSwgY29uc3QgY3J5cHRvX3dvcmRfdCBvcHRpb24pCit7Cisg
ICAgY3J5cHRvX3dvcmRfdCB0ZW1wOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTldPUkRT
X0ZJRUxEOyBpKyspIHsKKyAgICAgICAgdGVtcCA9IG9wdGlvbiAmIChQLT5YLT5jMFtpXSBeIFEt
PlgtPmMwW2ldKTsKKyAgICAgICAgUC0+WC0+YzBbaV0gPSB0ZW1wIF4gUC0+WC0+YzBbaV07Cisg
ICAgICAgIFEtPlgtPmMwW2ldID0gdGVtcCBeIFEtPlgtPmMwW2ldOworICAgICAgICB0ZW1wID0g
b3B0aW9uICYgKFAtPlotPmMwW2ldIF4gUS0+Wi0+YzBbaV0pOworICAgICAgICBQLT5aLT5jMFtp
XSA9IHRlbXAgXiBQLT5aLT5jMFtpXTsKKyAgICAgICAgUS0+Wi0+YzBbaV0gPSB0ZW1wIF4gUS0+
Wi0+YzBbaV07CisgICAgICAgIHRlbXAgPSBvcHRpb24gJiAoUC0+WC0+YzFbaV0gXiBRLT5YLT5j
MVtpXSk7CisgICAgICAgIFAtPlgtPmMxW2ldID0gdGVtcCBeIFAtPlgtPmMxW2ldOworICAgICAg
ICBRLT5YLT5jMVtpXSA9IHRlbXAgXiBRLT5YLT5jMVtpXTsKKyAgICAgICAgdGVtcCA9IG9wdGlv
biAmIChQLT5aLT5jMVtpXSBeIFEtPlotPmMxW2ldKTsKKyAgICAgICAgUC0+Wi0+YzFbaV0gPSB0
ZW1wIF4gUC0+Wi0+YzFbaV07CisgICAgICAgIFEtPlotPmMxW2ldID0gdGVtcCBeIFEtPlotPmMx
W2ldOworICAgIH0KK30KKyNlbmRpZgorCisvLyBTd2FwIHBvaW50cy4KKy8vIElmIG9wdGlvbiA9
IDAgdGhlbiBQIDwtIFAgYW5kIFEgPC0gUSwgZWxzZSBpZiBvcHRpb24gPSAweEZGLi4uRkYgdGhl
biBQIDwtIFEgYW5kIFEgPC0gUAorc3RhdGljIGlubGluZSB2b2lkIHNpa2VfZnAyY3N3YXAocG9p
bnRfcHJval90IFAsIHBvaW50X3Byb2pfdCBRLCBjb25zdCBjcnlwdG9fd29yZF90IG9wdGlvbikK
K3sKKyNpZiBkZWZpbmVkKE9QRU5TU0xfWDg2XzY0KSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX0FT
TSkKKyAgICBzaWtlX2Nzd2FwX2FzbShQLCBRLCBvcHRpb24pOworI2Vsc2UKKyAgICBzaWtlX2Nz
d2FwKFAsIFEsIG9wdGlvbik7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgbGFkZGVyM1B0KAor
ICAgIGNvbnN0IGYyZWxtX3QgeFAsIGNvbnN0IGYyZWxtX3QgeFEsIGNvbnN0IGYyZWxtX3QgeFBR
LCBjb25zdCB1aW50OF90KiBtLAorICAgIGludCBpc19BLCBwb2ludF9wcm9qX3QgUiwgY29uc3Qg
ZjJlbG1fdCBBKSB7CisgICAgcG9pbnRfcHJval90IFIwID0gUE9JTlRfUFJPSl9JTklULCBSMiA9
IFBPSU5UX1BST0pfSU5JVDsKKyAgICBmMmVsbV90IEEyNCA9IEYyRUxNX0lOSVQ7CisgICAgY3J5
cHRvX3dvcmRfdCBtYXNrOworICAgIGludCBiaXQsIHN3YXAsIHByZXZiaXQgPSAwOworCisgICAg
Y29uc3Qgc2l6ZV90IG5iaXRzID0gaXNfQT9TSURIX1BSVl9BX0JJVFNaOlNJREhfUFJWX0JfQklU
U1o7CisKKyAgICAvLyBJbml0aWFsaXppbmcgY29uc3RhbnQKKyAgICBzaWtlX2ZwY29weShzaWtl
X3BhcmFtcy5tb250X29uZSwgQTI0WzBdLmMwKTsKKyAgICBzaWtlX2ZwMmFkZChBMjQsIEEyNCwg
QTI0KTsKKyAgICBzaWtlX2ZwMmFkZChBLCBBMjQsIEEyNCk7CisgICAgc2lrZV9mcDJkaXYyKEEy
NCwgQTI0KTsKKyAgICBzaWtlX2ZwMmRpdjIoQTI0LCBBMjQpOyAvLyBBMjQgPSAoQSsyKS80CisK
KyAgICAvLyBJbml0aWFsaXppbmcgcG9pbnRzCisgICAgc2lrZV9mcDJjb3B5KHhRLCBSMC0+WCk7
CisgICAgc2lrZV9mcGNvcHkoc2lrZV9wYXJhbXMubW9udF9vbmUsIFIwLT5aWzBdLmMwKTsKKyAg
ICBzaWtlX2ZwMmNvcHkoeFBRLCBSMi0+WCk7CisgICAgc2lrZV9mcGNvcHkoc2lrZV9wYXJhbXMu
bW9udF9vbmUsIFIyLT5aWzBdLmMwKTsKKyAgICBzaWtlX2ZwMmNvcHkoeFAsIFItPlgpOworICAg
IHNpa2VfZnBjb3B5KHNpa2VfcGFyYW1zLm1vbnRfb25lLCBSLT5aWzBdLmMwKTsKKyAgICBtZW1z
ZXQoUi0+Wi0+YzEsIDAsIHNpemVvZihSLT5aLT5jMSkpOworCisgICAgLy8gTWFpbiBsb29wCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuYml0czsgaSsrKSB7CisgICAgICAgIGJpdCA9ICht
W2kgPj4gM10gPj4gKGkgJiA3KSkgJiAxOworICAgICAgICBzd2FwID0gYml0IF4gcHJldmJpdDsK
KyAgICAgICAgcHJldmJpdCA9IGJpdDsKKyAgICAgICAgbWFzayA9IDAgLSAoY3J5cHRvX3dvcmRf
dClzd2FwOworCisgICAgICAgIHNpa2VfZnAyY3N3YXAoUiwgUjIsIG1hc2spOworICAgICAgICBz
aWtlX3hEQkxBREQoUjAsIFIyLCBSLT5YLCBBMjQpOworICAgICAgICBzaWtlX2ZwMm11bF9tb250
KFIyLT5YLCBSLT5aLCBSMi0+WCk7CisgICAgfQorCisgICAgbWFzayA9IDAgLSAoY3J5cHRvX3dv
cmRfdClwcmV2Yml0OworICAgIHNpa2VfZnAyY3N3YXAoUiwgUjIsIG1hc2spOworfQorCisvLyBJ
bml0aWFsaXphdGlvbiBvZiBiYXNpcyBwb2ludHMKK3N0YXRpYyBpbmxpbmUgdm9pZCBzaWtlX2lu
aXRfYmFzaXMoY29uc3QgY3J5cHRvX3dvcmRfdCAqZ2VuLCBmMmVsbV90IFhQLCBmMmVsbV90IFhR
LCBmMmVsbV90IFhSKSB7CisgICAgc2lrZV9mcGNvcHkoZ2VuLCAgICAgICAgICAgICAgICAgIFhQ
LT5jMCk7CisgICAgc2lrZV9mcGNvcHkoZ2VuICsgICBOV09SRFNfRklFTEQsIFhQLT5jMSk7Cisg
ICAgc2lrZV9mcGNvcHkoZ2VuICsgMipOV09SRFNfRklFTEQsIFhRLT5jMCk7CisgICAgc2lrZV9m
cGNvcHkoZ2VuICsgMypOV09SRFNfRklFTEQsIFhRLT5jMSk7CisgICAgc2lrZV9mcGNvcHkoZ2Vu
ICsgNCpOV09SRFNfRklFTEQsIFhSLT5jMCk7CisgICAgc2lrZV9mcGNvcHkoZ2VuICsgNSpOV09S
RFNfRklFTEQsIFhSLT5jMSk7Cit9CisKKy8vIENvbnZlcnNpb24gb2YgR0YocF4yKSBlbGVtZW50
IGZyb20gTW9udGdvbWVyeSB0byBzdGFuZGFyZCByZXByZXNlbnRhdGlvbi4KK3N0YXRpYyBpbmxp
bmUgdm9pZCBzaWtlX2ZwMl9lbmNvZGUoY29uc3QgZjJlbG1fdCB4LCB1aW50OF90ICplbmMpIHsK
KyAgICBmMmVsbV90IHQ7CisgICAgc2lrZV9mcm9tX2ZwMm1vbnQoeCwgdCk7CisKKyAgICAvLyBj
b252ZXJ0IHRvIGJ5dGVzIGluIGxpdHRsZSBlbmRpYW4gZm9ybQorICAgIGZvciAoc2l6ZV90IGk9
MDsgaTxGSUVMRF9CWVRFU1o7IGkrKykgeworICAgICAgICBlbmNbaSsgICAgICAgICAgIDBdID0g
KHRbMF0uYzBbaS9MU1pdID4+ICg4KihpJUxTWikpKSAmIDB4RkY7CisgICAgICAgIGVuY1tpK0ZJ
RUxEX0JZVEVTWl0gPSAodFswXS5jMVtpL0xTWl0gPj4gKDgqKGklTFNaKSkpICYgMHhGRjsKKyAg
ICB9Cit9CisKKy8vIFBhcnNlIGJ5dGUgc2VxdWVuY2UgYmFjayBpbnRvIEdGKHBeMikgZWxlbWVu
dCwgYW5kIGNvbnZlcnNpb24gdG8gTW9udGdvbWVyeSByZXByZXNlbnRhdGlvbi4KKy8vIEVsZW1l
bnRzIG92ZXIgR0YocDUwMykgYXJlIGVuY29kZWQgaW4gNjMgb2N0ZXRzIGluIGxpdHRsZSBlbmRp
YW4gZm9ybWF0CisvLyAoaS5lLiwgdGhlIGxlYXN0IHNpZ25pZmljYW50IG9jdGV0IGlzIGxvY2F0
ZWQgaW4gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcykuCitzdGF0aWMgaW5saW5lIHZvaWQgZnAy
X2RlY29kZShjb25zdCB1aW50OF90ICplbmMsIGYyZWxtX3QgdCkgeworICAgIG1lbXNldCh0WzBd
LmMwLCAwLCBzaXplb2YodFswXS5jMCkpOworICAgIG1lbXNldCh0WzBdLmMxLCAwLCBzaXplb2Yo
dFswXS5jMSkpOworICAgIC8vIGNvbnZlcnQgYnl0ZXMgaW4gbGl0dGxlIGVuZGlhbiBmb3JtIHRv
IGYyZWxtX3QKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEZJRUxEX0JZVEVTWjsgaSsrKSB7
CisgICAgICAgIHRbMF0uYzBbaS9MU1pdIHw9ICgoY3J5cHRvX3dvcmRfdCllbmNbaSsgICAgICAg
ICAgIDBdKSA8PCAoOCooaSVMU1opKTsKKyAgICAgICAgdFswXS5jMVtpL0xTWl0gfD0gKChjcnlw
dG9fd29yZF90KWVuY1tpK0ZJRUxEX0JZVEVTWl0pIDw8ICg4KihpJUxTWikpOworICAgIH0KKyAg
ICBzaWtlX3RvX2ZwMm1vbnQodCwgdCk7Cit9CisKKy8vIEFsaWNlJ3MgZXBoZW1lcmFsIHB1Ymxp
YyBrZXkgZ2VuZXJhdGlvbgorLy8gSW5wdXQ6ICBhIHByaXZhdGUga2V5IHByQSBpbiB0aGUgcmFu
Z2UgWzAsIDJeMjUwIC0gMV0sIHN0b3JlZCBpbiAzMiBieXRlcy4KKy8vIE91dHB1dDogdGhlIHB1
YmxpYyBrZXkgcGtBIGNvbnNpc3Rpbmcgb2YgMyBHRihwNTAzXjIpIGVsZW1lbnRzIGVuY29kZWQg
aW4gMzc4IGJ5dGVzLgorc3RhdGljIHZvaWQgZ2VuX2lzb19BKGNvbnN0IHVpbnQ4X3QqIHNrQSwg
dWludDhfdCogcGtBKQoreworICAgIHBvaW50X3Byb2pfdCBSLCBwdHNbTUFYX0lOVF9QT0lOVFNf
QUxJQ0VdOworICAgIHBvaW50X3Byb2pfdCBwaGlQID0gUE9JTlRfUFJPSl9JTklUOworICAgIHBv
aW50X3Byb2pfdCBwaGlRID0gUE9JTlRfUFJPSl9JTklUOworICAgIHBvaW50X3Byb2pfdCBwaGlS
ID0gUE9JTlRfUFJPSl9JTklUOworICAgIGYyZWxtX3QgWFBBLCBYUUEsIFhSQSwgY29lZmZbM107
CisgICAgZjJlbG1fdCBBMjRwbHVzID0gRjJFTE1fSU5JVDsKKyAgICBmMmVsbV90IEMyNCA9IEYy
RUxNX0lOSVQ7CisgICAgZjJlbG1fdCBBID0gRjJFTE1fSU5JVDsKKyAgICB1bnNpZ25lZCBpbnQg
bSwgaW5kZXggPSAwLCBwdHNfaW5kZXhbTUFYX0lOVF9QT0lOVFNfQUxJQ0VdLCBucHRzID0gMCwg
aWkgPSAwOworCisgICAgLy8gSW5pdGlhbGl6ZSBiYXNpcyBwb2ludHMKKyAgICBzaWtlX2luaXRf
YmFzaXMoc2lrZV9wYXJhbXMuQV9nZW4sIFhQQSwgWFFBLCBYUkEpOworICAgIHNpa2VfaW5pdF9i
YXNpcyhzaWtlX3BhcmFtcy5CX2dlbiwgcGhpUC0+WCwgcGhpUS0+WCwgcGhpUi0+WCk7CisgICAg
c2lrZV9mcGNvcHkoc2lrZV9wYXJhbXMubW9udF9vbmUsIChwaGlQLT5aKS0+YzApOworICAgIHNp
a2VfZnBjb3B5KHNpa2VfcGFyYW1zLm1vbnRfb25lLCAocGhpUS0+WiktPmMwKTsKKyAgICBzaWtl
X2ZwY29weShzaWtlX3BhcmFtcy5tb250X29uZSwgKHBoaVItPlopLT5jMCk7CisKKyAgICAvLyBJ
bml0aWFsaXplIGNvbnN0YW50czogQTI0cGx1cyA9IEErMkMsIEMyNCA9IDRDLCB3aGVyZSBBPTYs
IEM9MQorICAgIHNpa2VfZnBjb3B5KHNpa2VfcGFyYW1zLm1vbnRfb25lLCBBMjRwbHVzLT5jMCk7
CisgICAgc2lrZV9mcDJhZGQoQTI0cGx1cywgQTI0cGx1cywgQTI0cGx1cyk7CisgICAgc2lrZV9m
cDJhZGQoQTI0cGx1cywgQTI0cGx1cywgQzI0KTsKKyAgICBzaWtlX2ZwMmFkZChBMjRwbHVzLCBD
MjQsIEEpOworICAgIHNpa2VfZnAyYWRkKEMyNCwgQzI0LCBBMjRwbHVzKTsKKworICAgIC8vIFJl
dHJpZXZlIGtlcm5lbCBwb2ludAorICAgIGxhZGRlcjNQdChYUEEsIFhRQSwgWFJBLCBza0EsIDEs
IFIsIEEpOworCisgICAgLy8gVHJhdmVyc2UgdHJlZQorICAgIGluZGV4ID0gMDsKKyAgICBmb3Ig
KHNpemVfdCByb3cgPSAxOyByb3cgPCBBX21heDsgcm93KyspIHsKKyAgICAgICAgd2hpbGUgKGlu
ZGV4IDwgQV9tYXgtcm93KSB7CisgICAgICAgICAgICBzaWtlX2ZwMmNvcHkoUi0+WCwgcHRzW25w
dHNdLT5YKTsKKyAgICAgICAgICAgIHNpa2VfZnAyY29weShSLT5aLCBwdHNbbnB0c10tPlopOwor
ICAgICAgICAgICAgcHRzX2luZGV4W25wdHMrK10gPSBpbmRleDsKKyAgICAgICAgICAgIG0gPSBz
aWtlX3BhcmFtcy5BX3N0cmF0W2lpKytdOworICAgICAgICAgICAgc2lrZV94REJMZShSLCBSLCBB
MjRwbHVzLCBDMjQsICgyKm0pKTsKKyAgICAgICAgICAgIGluZGV4ICs9IG07CisgICAgICAgIH0K
KyAgICAgICAgc2lrZV9nZXRfNF9pc29nKFIsIEEyNHBsdXMsIEMyNCwgY29lZmYpOworCisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnB0czsgaSsrKSB7CisgICAgICAgICAgICBzaWtl
X2V2YWxfNF9pc29nKHB0c1tpXSwgY29lZmYpOworICAgICAgICB9CisgICAgICAgIHNpa2VfZXZh
bF80X2lzb2cocGhpUCwgY29lZmYpOworICAgICAgICBzaWtlX2V2YWxfNF9pc29nKHBoaVEsIGNv
ZWZmKTsKKyAgICAgICAgc2lrZV9ldmFsXzRfaXNvZyhwaGlSLCBjb2VmZik7CisKKyAgICAgICAg
c2lrZV9mcDJjb3B5KHB0c1tucHRzLTFdLT5YLCBSLT5YKTsKKyAgICAgICAgc2lrZV9mcDJjb3B5
KHB0c1tucHRzLTFdLT5aLCBSLT5aKTsKKyAgICAgICAgaW5kZXggPSBwdHNfaW5kZXhbbnB0cy0x
XTsKKyAgICAgICAgbnB0cyAtPSAxOworICAgIH0KKworICAgIHNpa2VfZ2V0XzRfaXNvZyhSLCBB
MjRwbHVzLCBDMjQsIGNvZWZmKTsKKyAgICBzaWtlX2V2YWxfNF9pc29nKHBoaVAsIGNvZWZmKTsK
KyAgICBzaWtlX2V2YWxfNF9pc29nKHBoaVEsIGNvZWZmKTsKKyAgICBzaWtlX2V2YWxfNF9pc29n
KHBoaVIsIGNvZWZmKTsKKworICAgIHNpa2VfaW52XzNfd2F5KHBoaVAtPlosIHBoaVEtPlosIHBo
aVItPlopOworICAgIHNpa2VfZnAybXVsX21vbnQocGhpUC0+WCwgcGhpUC0+WiwgcGhpUC0+WCk7
CisgICAgc2lrZV9mcDJtdWxfbW9udChwaGlRLT5YLCBwaGlRLT5aLCBwaGlRLT5YKTsKKyAgICBz
aWtlX2ZwMm11bF9tb250KHBoaVItPlgsIHBoaVItPlosIHBoaVItPlgpOworCisgICAgLy8gRm9y
bWF0IHB1YmxpYyBrZXkKKyAgICBzaWtlX2ZwMl9lbmNvZGUocGhpUC0+WCwgcGtBKTsKKyAgICBz
aWtlX2ZwMl9lbmNvZGUocGhpUS0+WCwgcGtBICsgU0lESF9KSU5WX0JZVEVTWik7CisgICAgc2lr
ZV9mcDJfZW5jb2RlKHBoaVItPlgsIHBrQSArIDIqU0lESF9KSU5WX0JZVEVTWik7Cit9CisKKy8v
IEJvYidzIGVwaGVtZXJhbCBrZXktcGFpciBnZW5lcmF0aW9uCisvLyBJdCBwcm9kdWNlcyBhIHBy
aXZhdGUga2V5IHNrQiBhbmQgY29tcHV0ZXMgdGhlIHB1YmxpYyBrZXkgcGtCLgorLy8gVGhlIHBy
aXZhdGUga2V5IGlzIGFuIGludGVnZXIgaW4gdGhlIHJhbmdlIFswLCAyXkZsb29yKExvZygyLDNe
MTU5KSkgLSAxXSwgc3RvcmVkIGluIDMyIGJ5dGVzLgorLy8gVGhlIHB1YmxpYyBrZXkgY29uc2lz
dHMgb2YgMyBHRihwNTAzXjIpIGVsZW1lbnRzIGVuY29kZWQgaW4gMzc4IGJ5dGVzLgorc3RhdGlj
IHZvaWQgZ2VuX2lzb19CKGNvbnN0IHVpbnQ4X3QqIHNrQiwgdWludDhfdCogcGtCKQoreworICAg
IHBvaW50X3Byb2pfdCBSLCBwdHNbTUFYX0lOVF9QT0lOVFNfQk9CXTsKKyAgICBwb2ludF9wcm9q
X3QgcGhpUCA9IFBPSU5UX1BST0pfSU5JVDsKKyAgICBwb2ludF9wcm9qX3QgcGhpUSA9IFBPSU5U
X1BST0pfSU5JVDsKKyAgICBwb2ludF9wcm9qX3QgcGhpUiA9IFBPSU5UX1BST0pfSU5JVDsKKyAg
ICBmMmVsbV90IFhQQiwgWFFCLCBYUkIsIGNvZWZmWzNdOworICAgIGYyZWxtX3QgQTI0cGx1cyA9
IEYyRUxNX0lOSVQ7CisgICAgZjJlbG1fdCBBMjRtaW51cyA9IEYyRUxNX0lOSVQ7CisgICAgZjJl
bG1fdCBBID0gRjJFTE1fSU5JVDsKKyAgICB1bnNpZ25lZCBpbnQgbSwgaW5kZXggPSAwLCBwdHNf
aW5kZXhbTUFYX0lOVF9QT0lOVFNfQk9CXSwgbnB0cyA9IDAsIGlpID0gMDsKKworICAgIC8vIElu
aXRpYWxpemUgYmFzaXMgcG9pbnRzCisgICAgc2lrZV9pbml0X2Jhc2lzKHNpa2VfcGFyYW1zLkJf
Z2VuLCBYUEIsIFhRQiwgWFJCKTsKKyAgICBzaWtlX2luaXRfYmFzaXMoc2lrZV9wYXJhbXMuQV9n
ZW4sIHBoaVAtPlgsIHBoaVEtPlgsIHBoaVItPlgpOworICAgIHNpa2VfZnBjb3B5KHNpa2VfcGFy
YW1zLm1vbnRfb25lLCAocGhpUC0+WiktPmMwKTsKKyAgICBzaWtlX2ZwY29weShzaWtlX3BhcmFt
cy5tb250X29uZSwgKHBoaVEtPlopLT5jMCk7CisgICAgc2lrZV9mcGNvcHkoc2lrZV9wYXJhbXMu
bW9udF9vbmUsIChwaGlSLT5aKS0+YzApOworCisgICAgLy8gSW5pdGlhbGl6ZSBjb25zdGFudHM6
IEEyNG1pbnVzID0gQS0yQywgQTI0cGx1cyA9IEErMkMsIHdoZXJlIEE9NiwgQz0xCisgICAgc2lr
ZV9mcGNvcHkoc2lrZV9wYXJhbXMubW9udF9vbmUsIEEyNHBsdXMtPmMwKTsKKyAgICBzaWtlX2Zw
MmFkZChBMjRwbHVzLCBBMjRwbHVzLCBBMjRwbHVzKTsKKyAgICBzaWtlX2ZwMmFkZChBMjRwbHVz
LCBBMjRwbHVzLCBBMjRtaW51cyk7CisgICAgc2lrZV9mcDJhZGQoQTI0cGx1cywgQTI0bWludXMs
IEEpOworICAgIHNpa2VfZnAyYWRkKEEyNG1pbnVzLCBBMjRtaW51cywgQTI0cGx1cyk7CisKKyAg
ICAvLyBSZXRyaWV2ZSBrZXJuZWwgcG9pbnQKKyAgICBsYWRkZXIzUHQoWFBCLCBYUUIsIFhSQiwg
c2tCLCAwLCBSLCBBKTsKKworICAgIC8vIFRyYXZlcnNlIHRyZWUKKyAgICBpbmRleCA9IDA7Cisg
ICAgZm9yIChzaXplX3Qgcm93ID0gMTsgcm93IDwgQl9tYXg7IHJvdysrKSB7CisgICAgICAgIHdo
aWxlIChpbmRleCA8IEJfbWF4LXJvdykgeworICAgICAgICAgICAgc2lrZV9mcDJjb3B5KFItPlgs
IHB0c1tucHRzXS0+WCk7CisgICAgICAgICAgICBzaWtlX2ZwMmNvcHkoUi0+WiwgcHRzW25wdHNd
LT5aKTsKKyAgICAgICAgICAgIHB0c19pbmRleFtucHRzKytdID0gaW5kZXg7CisgICAgICAgICAg
ICBtID0gc2lrZV9wYXJhbXMuQl9zdHJhdFtpaSsrXTsKKyAgICAgICAgICAgIHNpa2VfeFRQTGUo
UiwgUiwgQTI0bWludXMsIEEyNHBsdXMsIG0pOworICAgICAgICAgICAgaW5kZXggKz0gbTsKKyAg
ICAgICAgfQorICAgICAgICBzaWtlX2dldF8zX2lzb2coUiwgQTI0bWludXMsIEEyNHBsdXMsIGNv
ZWZmKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5wdHM7IGkrKykgeworICAg
ICAgICAgICAgc2lrZV9ldmFsXzNfaXNvZyhwdHNbaV0sIGNvZWZmKTsKKyAgICAgICAgfQorICAg
ICAgICBzaWtlX2V2YWxfM19pc29nKHBoaVAsIGNvZWZmKTsKKyAgICAgICAgc2lrZV9ldmFsXzNf
aXNvZyhwaGlRLCBjb2VmZik7CisgICAgICAgIHNpa2VfZXZhbF8zX2lzb2cocGhpUiwgY29lZmYp
OworCisgICAgICAgIHNpa2VfZnAyY29weShwdHNbbnB0cy0xXS0+WCwgUi0+WCk7CisgICAgICAg
IHNpa2VfZnAyY29weShwdHNbbnB0cy0xXS0+WiwgUi0+Wik7CisgICAgICAgIGluZGV4ID0gcHRz
X2luZGV4W25wdHMtMV07CisgICAgICAgIG5wdHMgLT0gMTsKKyAgICB9CisKKyAgICBzaWtlX2dl
dF8zX2lzb2coUiwgQTI0bWludXMsIEEyNHBsdXMsIGNvZWZmKTsKKyAgICBzaWtlX2V2YWxfM19p
c29nKHBoaVAsIGNvZWZmKTsKKyAgICBzaWtlX2V2YWxfM19pc29nKHBoaVEsIGNvZWZmKTsKKyAg
ICBzaWtlX2V2YWxfM19pc29nKHBoaVIsIGNvZWZmKTsKKworICAgIHNpa2VfaW52XzNfd2F5KHBo
aVAtPlosIHBoaVEtPlosIHBoaVItPlopOworICAgIHNpa2VfZnAybXVsX21vbnQocGhpUC0+WCwg
cGhpUC0+WiwgcGhpUC0+WCk7CisgICAgc2lrZV9mcDJtdWxfbW9udChwaGlRLT5YLCBwaGlRLT5a
LCBwaGlRLT5YKTsKKyAgICBzaWtlX2ZwMm11bF9tb250KHBoaVItPlgsIHBoaVItPlosIHBoaVIt
PlgpOworCisgICAgLy8gRm9ybWF0IHB1YmxpYyBrZXkKKyAgICBzaWtlX2ZwMl9lbmNvZGUocGhp
UC0+WCwgcGtCKTsKKyAgICBzaWtlX2ZwMl9lbmNvZGUocGhpUS0+WCwgcGtCICsgU0lESF9KSU5W
X0JZVEVTWik7CisgICAgc2lrZV9mcDJfZW5jb2RlKHBoaVItPlgsIHBrQiArIDIqU0lESF9KSU5W
X0JZVEVTWik7Cit9CisKKy8vIEFsaWNlJ3MgZXBoZW1lcmFsIHNoYXJlZCBzZWNyZXQgY29tcHV0
YXRpb24KKy8vIEl0IHByb2R1Y2VzIGEgc2hhcmVkIHNlY3JldCBrZXkgc3NBIHVzaW5nIGhlciBz
ZWNyZXQga2V5IHNrQSBhbmQgQm9iJ3MgcHVibGljIGtleSBwa0IKKy8vIElucHV0czogQWxpY2Un
cyBza0EgaXMgYW4gaW50ZWdlciBpbiB0aGUgcmFuZ2UgWzAsIDJeMjUwIC0gMV0sIHN0b3JlZCBp
biAzMiBieXRlcy4KKy8vICAgICAgICAgQm9iJ3MgcGtCIGNvbnNpc3RzIG9mIDMgR0YocDUwM14y
KSBlbGVtZW50cyBlbmNvZGVkIGluIDM3OCBieXRlcy4KKy8vIE91dHB1dDogYSBzaGFyZWQgc2Vj
cmV0IHNzQSB0aGF0IGNvbnNpc3RzIG9mIG9uZSBlbGVtZW50IGluIEdGKHA1MDNeMikgZW5jb2Rl
ZCBpbiAxMjYgYnl0ZXMuCitzdGF0aWMgdm9pZCBleF9pc29fQShjb25zdCB1aW50OF90KiBza0Es
IGNvbnN0IHVpbnQ4X3QqIHBrQiwgdWludDhfdCogc3NBKQoreworICAgIHBvaW50X3Byb2pfdCBS
LCBwdHNbTUFYX0lOVF9QT0lOVFNfQUxJQ0VdOworICAgIGYyZWxtX3QgY29lZmZbM10sIFBLQlsz
XSwgamludjsKKyAgICBmMmVsbV90IEEyNHBsdXMgPSBGMkVMTV9JTklUOworICAgIGYyZWxtX3Qg
QzI0ID0gRjJFTE1fSU5JVDsKKyAgICBmMmVsbV90IEEgPSBGMkVMTV9JTklUOworICAgIHVuc2ln
bmVkIGludCBtLCBpbmRleCA9IDAsIHB0c19pbmRleFtNQVhfSU5UX1BPSU5UU19BTElDRV0sIG5w
dHMgPSAwLCBpaSA9IDA7CisKKyAgICAvLyBJbml0aWFsaXplIGltYWdlcyBvZiBCb2IncyBiYXNp
cworICAgIGZwMl9kZWNvZGUocGtCLCBQS0JbMF0pOworICAgIGZwMl9kZWNvZGUocGtCICsgU0lE
SF9KSU5WX0JZVEVTWiwgUEtCWzFdKTsKKyAgICBmcDJfZGVjb2RlKHBrQiArIDIqU0lESF9KSU5W
X0JZVEVTWiwgUEtCWzJdKTsKKworICAgIC8vIEluaXRpYWxpemUgY29uc3RhbnRzCisgICAgc2lr
ZV9nZXRfQShQS0JbMF0sIFBLQlsxXSwgUEtCWzJdLCBBKTsKKyAgICBzaWtlX2ZwYWRkKHNpa2Vf
cGFyYW1zLm1vbnRfb25lLCBzaWtlX3BhcmFtcy5tb250X29uZSwgQzI0LT5jMCk7CisgICAgc2lr
ZV9mcDJhZGQoQSwgQzI0LCBBMjRwbHVzKTsKKyAgICBzaWtlX2ZwYWRkKEMyNC0+YzAsIEMyNC0+
YzAsIEMyNC0+YzApOworCisgICAgLy8gUmV0cmlldmUga2VybmVsIHBvaW50CisgICAgbGFkZGVy
M1B0KFBLQlswXSwgUEtCWzFdLCBQS0JbMl0sIHNrQSwgMSwgUiwgQSk7CisKKyAgICAvLyBUcmF2
ZXJzZSB0cmVlCisgICAgaW5kZXggPSAwOworICAgIGZvciAoc2l6ZV90IHJvdyA9IDE7IHJvdyA8
IEFfbWF4OyByb3crKykgeworICAgICAgICB3aGlsZSAoaW5kZXggPCBBX21heC1yb3cpIHsKKyAg
ICAgICAgICAgIHNpa2VfZnAyY29weShSLT5YLCBwdHNbbnB0c10tPlgpOworICAgICAgICAgICAg
c2lrZV9mcDJjb3B5KFItPlosIHB0c1tucHRzXS0+Wik7CisgICAgICAgICAgICBwdHNfaW5kZXhb
bnB0cysrXSA9IGluZGV4OworICAgICAgICAgICAgbSA9IHNpa2VfcGFyYW1zLkFfc3RyYXRbaWkr
K107CisgICAgICAgICAgICBzaWtlX3hEQkxlKFIsIFIsIEEyNHBsdXMsIEMyNCwgKDIqbSkpOwor
ICAgICAgICAgICAgaW5kZXggKz0gbTsKKyAgICAgICAgfQorICAgICAgICBzaWtlX2dldF80X2lz
b2coUiwgQTI0cGx1cywgQzI0LCBjb2VmZik7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBucHRzOyBpKyspIHsKKyAgICAgICAgICAgIHNpa2VfZXZhbF80X2lzb2cocHRzW2ldLCBj
b2VmZik7CisgICAgICAgIH0KKworICAgICAgICBzaWtlX2ZwMmNvcHkocHRzW25wdHMtMV0tPlgs
IFItPlgpOworICAgICAgICBzaWtlX2ZwMmNvcHkocHRzW25wdHMtMV0tPlosIFItPlopOworICAg
ICAgICBpbmRleCA9IHB0c19pbmRleFtucHRzLTFdOworICAgICAgICBucHRzIC09IDE7CisgICAg
fQorCisgICAgc2lrZV9nZXRfNF9pc29nKFIsIEEyNHBsdXMsIEMyNCwgY29lZmYpOworICAgIHNp
a2VfZnAyYWRkKEEyNHBsdXMsIEEyNHBsdXMsIEEyNHBsdXMpOworICAgIHNpa2VfZnAyc3ViKEEy
NHBsdXMsIEMyNCwgQTI0cGx1cyk7CisgICAgc2lrZV9mcDJhZGQoQTI0cGx1cywgQTI0cGx1cywg
QTI0cGx1cyk7CisgICAgc2lrZV9qX2ludihBMjRwbHVzLCBDMjQsIGppbnYpOworICAgIHNpa2Vf
ZnAyX2VuY29kZShqaW52LCBzc0EpOworfQorCisvLyBCb2IncyBlcGhlbWVyYWwgc2hhcmVkIHNl
Y3JldCBjb21wdXRhdGlvbgorLy8gSXQgcHJvZHVjZXMgYSBzaGFyZWQgc2VjcmV0IGtleSBzc0Ig
dXNpbmcgaGlzIHNlY3JldCBrZXkgc2tCIGFuZCBBbGljZSdzIHB1YmxpYyBrZXkgcGtBCisvLyBJ
bnB1dHM6IEJvYidzIHNrQiBpcyBhbiBpbnRlZ2VyIGluIHRoZSByYW5nZSBbMCwgMl5GbG9vcihM
b2coMiwzXjE1OSkpIC0gMV0sIHN0b3JlZCBpbiAzMiBieXRlcy4KKy8vICAgICAgICAgQWxpY2Un
cyBwa0EgY29uc2lzdHMgb2YgMyBHRihwNTAzXjIpIGVsZW1lbnRzIGVuY29kZWQgaW4gMzc4IGJ5
dGVzLgorLy8gT3V0cHV0OiBhIHNoYXJlZCBzZWNyZXQgc3NCIHRoYXQgY29uc2lzdHMgb2Ygb25l
IGVsZW1lbnQgaW4gR0YocDUwM14yKSBlbmNvZGVkIGluIDEyNiBieXRlcy4KK3N0YXRpYyB2b2lk
IGV4X2lzb19CKGNvbnN0IHVpbnQ4X3QqIHNrQiwgY29uc3QgdWludDhfdCogcGtBLCB1aW50OF90
KiBzc0IpCit7CisgICAgcG9pbnRfcHJval90IFIsIHB0c1tNQVhfSU5UX1BPSU5UU19CT0JdOwor
ICAgIGYyZWxtX3QgY29lZmZbM10sIFBLQlszXSwgamludjsKKyAgICBmMmVsbV90IEEyNHBsdXMg
PSBGMkVMTV9JTklUOworICAgIGYyZWxtX3QgQTI0bWludXMgPSBGMkVMTV9JTklUOworICAgIGYy
ZWxtX3QgQSA9IEYyRUxNX0lOSVQ7CisgICAgdW5zaWduZWQgaW50IG0sIGluZGV4ID0gMCwgcHRz
X2luZGV4W01BWF9JTlRfUE9JTlRTX0JPQl0sIG5wdHMgPSAwLCBpaSA9IDA7CisKKyAgICAvLyBJ
bml0aWFsaXplIGltYWdlcyBvZiBBbGljZSdzIGJhc2lzCisgICAgZnAyX2RlY29kZShwa0EsIFBL
QlswXSk7CisgICAgZnAyX2RlY29kZShwa0EgKyBTSURIX0pJTlZfQllURVNaLCBQS0JbMV0pOwor
ICAgIGZwMl9kZWNvZGUocGtBICsgMipTSURIX0pJTlZfQllURVNaLCBQS0JbMl0pOworCisgICAg
Ly8gSW5pdGlhbGl6ZSBjb25zdGFudHMKKyAgICBzaWtlX2dldF9BKFBLQlswXSwgUEtCWzFdLCBQ
S0JbMl0sIEEpOworICAgIHNpa2VfZnBhZGQoc2lrZV9wYXJhbXMubW9udF9vbmUsIHNpa2VfcGFy
YW1zLm1vbnRfb25lLCBBMjRtaW51cy0+YzApOworICAgIHNpa2VfZnAyYWRkKEEsIEEyNG1pbnVz
LCBBMjRwbHVzKTsKKyAgICBzaWtlX2ZwMnN1YihBLCBBMjRtaW51cywgQTI0bWludXMpOworCisg
ICAgLy8gUmV0cmlldmUga2VybmVsIHBvaW50CisgICAgbGFkZGVyM1B0KFBLQlswXSwgUEtCWzFd
LCBQS0JbMl0sIHNrQiwgMCwgUiwgQSk7CisKKyAgICAvLyBUcmF2ZXJzZSB0cmVlCisgICAgaW5k
ZXggPSAwOworICAgIGZvciAoc2l6ZV90IHJvdyA9IDE7IHJvdyA8IEJfbWF4OyByb3crKykgewor
ICAgICAgICB3aGlsZSAoaW5kZXggPCBCX21heC1yb3cpIHsKKyAgICAgICAgICAgIHNpa2VfZnAy
Y29weShSLT5YLCBwdHNbbnB0c10tPlgpOworICAgICAgICAgICAgc2lrZV9mcDJjb3B5KFItPlos
IHB0c1tucHRzXS0+Wik7CisgICAgICAgICAgICBwdHNfaW5kZXhbbnB0cysrXSA9IGluZGV4Owor
ICAgICAgICAgICAgbSA9IHNpa2VfcGFyYW1zLkJfc3RyYXRbaWkrK107CisgICAgICAgICAgICBz
aWtlX3hUUExlKFIsIFIsIEEyNG1pbnVzLCBBMjRwbHVzLCBtKTsKKyAgICAgICAgICAgIGluZGV4
ICs9IG07CisgICAgICAgIH0KKyAgICAgICAgc2lrZV9nZXRfM19pc29nKFIsIEEyNG1pbnVzLCBB
MjRwbHVzLCBjb2VmZik7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBucHRzOyBp
KyspIHsKKyAgICAgICAgICAgIHNpa2VfZXZhbF8zX2lzb2cocHRzW2ldLCBjb2VmZik7CisgICAg
ICAgIH0KKworICAgICAgICBzaWtlX2ZwMmNvcHkocHRzW25wdHMtMV0tPlgsIFItPlgpOworICAg
ICAgICBzaWtlX2ZwMmNvcHkocHRzW25wdHMtMV0tPlosIFItPlopOworICAgICAgICBpbmRleCA9
IHB0c19pbmRleFtucHRzLTFdOworICAgICAgICBucHRzIC09IDE7CisgICAgfQorCisgICAgc2lr
ZV9nZXRfM19pc29nKFIsIEEyNG1pbnVzLCBBMjRwbHVzLCBjb2VmZik7CisgICAgc2lrZV9mcDJh
ZGQoQTI0cGx1cywgQTI0bWludXMsIEEpOworICAgIHNpa2VfZnAyYWRkKEEsIEEsIEEpOworICAg
IHNpa2VfZnAyc3ViKEEyNHBsdXMsIEEyNG1pbnVzLCBBMjRwbHVzKTsKKyAgICBzaWtlX2pfaW52
KEEsIEEyNHBsdXMsIGppbnYpOworICAgIHNpa2VfZnAyX2VuY29kZShqaW52LCBzc0IpOworfQor
CitpbnQgU0lLRV9rZXlwYWlyKHVpbnQ4X3Qgb3V0X3ByaXZbU0lLRV9QUlZfQllURVNaXSwKKyAg
ICAgICAgICAgICAgICAgdWludDhfdCBvdXRfcHViW1NJS0VfUFVCX0JZVEVTWl0pIHsKKyAgaW50
IHJldCA9IDA7CisKKyAgLy8gQ2FsY3VsYXRlIHByaXZhdGUga2V5IGZvciBBbGljZS4gTmVlZHMg
dG8gYmUgaW4gcmFuZ2UgWzAsIDJeMHhGQSAtIDFdIGFuZCA8CisgIC8vIDI1MyBiaXRzCisgIEJJ
R05VTSAqYm5fc2lkaF9wcnYgPSBCTl9uZXcoKTsKKyAgaWYgKCFibl9zaWRoX3BydiB8fAorICAg
ICAgIUJOX3JhbmQoYm5fc2lkaF9wcnYsIFNJREhfUFJWX0JfQklUU1osIEJOX1JBTkRfVE9QX09O
RSwKKyAgICAgICAgICAgICAgIEJOX1JBTkRfQk9UVE9NX0FOWSkgfHwKKyAgICAgICFCTl9ibjJs
ZV9wYWRkZWQob3V0X3ByaXYsIEJJVFNfVE9fQllURVMoU0lESF9QUlZfQl9CSVRTWiksCisgICAg
ICAgICAgICAgICAgICAgICAgIGJuX3NpZGhfcHJ2KSkgeworICAgIGdvdG8gZW5kOworICB9CisK
KyAgZ2VuX2lzb19CKG91dF9wcml2LCBvdXRfcHViKTsKKyAgcmV0ID0gMTsKKworZW5kOgorICBC
Tl9mcmVlKGJuX3NpZGhfcHJ2KTsKKyAgcmV0dXJuIHJldDsKK30KKwordm9pZCBTSUtFX2VuY2Fw
cyh1aW50OF90IG91dF9zaGFyZWRfa2V5W1NJS0VfU1NfQllURVNaXSwKKyAgICAgICAgICAgICAg
ICAgdWludDhfdCBvdXRfY2lwaGVydGV4dFtTSUtFX0NUX0JZVEVTWl0sCisgICAgICAgICAgICAg
ICAgIGNvbnN0IHVpbnQ4X3QgcHViX2tleVtTSUtFX1BVQl9CWVRFU1pdKSB7CisgIC8vIFNlY3Jl
dCBidWZmZXIgaXMgcmV1c2VkIGJ5IHRoZSBmdW5jdGlvbiB0byBzdG9yZSBzb21lIGVwaGVtZXJh
bAorICAvLyBzZWNyZXQgZGF0YS4gSXQncyBzaXplIG11c3QgYmUgbWF4aW11bSBvZiBTSEEyNTZf
Q0JMT0NLLAorICAvLyBTSUtFX01TR19CWVRFU1ogYW5kIFNJREhfUFJWX0FfQklUU1ogaW4gYnl0
ZXMuCisgIHVpbnQ4X3Qgc2VjcmV0W1NIQTI1Nl9DQkxPQ0tdOworICB1aW50OF90IGpbU0lESF9K
SU5WX0JZVEVTWl07CisgIHVpbnQ4X3QgdGVtcFtTSUtFX01TR19CWVRFU1ogKyBTSUtFX0NUX0JZ
VEVTWl07CisgIFNIQTI1Nl9DVFggY3R4OworCisgIC8vIEdlbmVyYXRlIHNlY3JldCBrZXkgZm9y
IEEKKyAgLy8gc2VjcmV0IGtleSBBID0gU0hBMjU2KHswLDF9Xm4gfHwgcHViX2tleSkpIG1vZCBT
SURIX1BSVl9BX0JJVFNaCisgIFJBTkRfYnl0ZXModGVtcCwgU0lLRV9NU0dfQllURVNaKTsKKwor
ICBTSEEyNTZfSW5pdCgmY3R4KTsKKyAgU0hBMjU2X1VwZGF0ZSgmY3R4LCB0ZW1wLCBTSUtFX01T
R19CWVRFU1opOworICBTSEEyNTZfVXBkYXRlKCZjdHgsIHB1Yl9rZXksIFNJS0VfUFVCX0JZVEVT
Wik7CisgIFNIQTI1Nl9GaW5hbChzZWNyZXQsICZjdHgpOworCisgIC8vIEdlbmVyYXRlIHB1Ymxp
YyBrZXkgZm9yIEEgLSBmaXJzdCBwYXJ0IG9mIHRoZSBjaXBoZXJ0ZXh0CisgIGdlbl9pc29fQShz
ZWNyZXQsIG91dF9jaXBoZXJ0ZXh0KTsKKworICAvLyBHZW5lcmF0ZSBjMToKKyAgLy8gIGggPSBT
SEEyNTYoai1pbnZhcmlhbnQpCisgIC8vIGMxID0gaCBeIG0KKyAgZXhfaXNvX0Eoc2VjcmV0LCBw
dWJfa2V5LCBqKTsKKyAgU0hBMjU2X0luaXQoJmN0eCk7CisgIFNIQTI1Nl9VcGRhdGUoJmN0eCwg
aiwgc2l6ZW9mKGopKTsKKyAgU0hBMjU2X0ZpbmFsKHNlY3JldCwgJmN0eCk7CisKKyAgLy8gYzEg
PSBoIF4gbQorICB1aW50OF90ICpjMSA9ICZvdXRfY2lwaGVydGV4dFtTSUtFX1BVQl9CWVRFU1pd
OworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFNJS0VfTVNHX0JZVEVTWjsgaSsrKSB7CisgICAg
YzFbaV0gPSB0ZW1wW2ldIF4gc2VjcmV0W2ldOworICB9CisKKyAgU0hBMjU2X0luaXQoJmN0eCk7
CisgIFNIQTI1Nl9VcGRhdGUoJmN0eCwgdGVtcCwgU0lLRV9NU0dfQllURVNaKTsKKyAgU0hBMjU2
X1VwZGF0ZSgmY3R4LCBvdXRfY2lwaGVydGV4dCwgU0lLRV9DVF9CWVRFU1opOworICBTSEEyNTZf
RmluYWwoc2VjcmV0LCAmY3R4KTsKKyAgLy8gR2VuZXJhdGUgc2hhcmVkIHNlY3JldCBvdXRfc2hh
cmVkX2tleSA9IFNIQTI1NihtfHxvdXRfY2lwaGVydGV4dCkKKyAgbWVtY3B5KG91dF9zaGFyZWRf
a2V5LCBzZWNyZXQsIFNJS0VfU1NfQllURVNaKTsKK30KKwordm9pZCBTSUtFX2RlY2Fwcyh1aW50
OF90IG91dF9zaGFyZWRfa2V5W1NJS0VfU1NfQllURVNaXSwKKyAgICAgICAgICAgICAgICAgY29u
c3QgdWludDhfdCBjaXBoZXJ0ZXh0W1NJS0VfQ1RfQllURVNaXSwKKyAgICAgICAgICAgICAgICAg
Y29uc3QgdWludDhfdCBwdWJfa2V5W1NJS0VfUFVCX0JZVEVTWl0sCisgICAgICAgICAgICAgICAg
IGNvbnN0IHVpbnQ4X3QgcHJpdl9rZXlbU0lLRV9QUlZfQllURVNaXSkgeworICAvLyBTZWNyZXQg
YnVmZmVyIGlzIHJldXNlZCBieSB0aGUgZnVuY3Rpb24gdG8gc3RvcmUgc29tZSBlcGhlbWVyYWwK
KyAgLy8gc2VjcmV0IGRhdGEuIEl0J3Mgc2l6ZSBtdXN0IGJlIG1heGltdW0gb2YgU0hBMjU2X0NC
TE9DSywKKyAgLy8gU0lLRV9NU0dfQllURVNaIGFuZCBTSURIX1BSVl9BX0JJVFNaIGluIGJ5dGVz
LgorICB1aW50OF90IHNlY3JldFtTSEEyNTZfQ0JMT0NLXTsKKyAgdWludDhfdCBqW1NJREhfSklO
Vl9CWVRFU1pdOworICB1aW50OF90IGMwW1NJS0VfUFVCX0JZVEVTWl07CisgIHVpbnQ4X3QgdGVt
cFtTSUtFX01TR19CWVRFU1pdOworICB1aW50OF90IHNoYXJlZF9ub2tbU0lLRV9NU0dfQllURVNa
XTsKKyAgU0hBMjU2X0NUWCBjdHg7CisKKyAgLy8gVGhpcyBpcyBPSyBhcyB3ZSBhcmUgb25seSB1
c2luZyBlcGhlbWVyYWwga2V5cyBpbiBCb3JpbmdTU0wKKyAgUkFORF9ieXRlcyhzaGFyZWRfbm9r
LCBTSUtFX01TR19CWVRFU1opOworCisgIC8vIFJlY292ZXIgbQorICAvLyBMZXQgY2lwaGVydGV4
dCA9IGMwIHx8IGMxIC0gYm90aCBoYXZlIGZpeGVkIHNpemVzCisgIC8vIG0gPSBGKGotaW52YXJp
YW50KGMwLCBwcml2X2tleSkpIF4gYzEKKyAgZXhfaXNvX0IocHJpdl9rZXksIGNpcGhlcnRleHQs
IGopOworCisgIFNIQTI1Nl9Jbml0KCZjdHgpOworICBTSEEyNTZfVXBkYXRlKCZjdHgsIGosIHNp
emVvZihqKSk7CisgIFNIQTI1Nl9GaW5hbChzZWNyZXQsICZjdHgpOworCisgIGNvbnN0IHVpbnQ4
X3QgKmMxID0gJmNpcGhlcnRleHRbc2l6ZW9mKGMwKV07CisgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgU0lLRV9NU0dfQllURVNaOyBpKyspIHsKKyAgICB0ZW1wW2ldID0gYzFbaV0gXiBzZWNyZXRb
aV07CisgIH0KKworICBTSEEyNTZfSW5pdCgmY3R4KTsKKyAgU0hBMjU2X1VwZGF0ZSgmY3R4LCB0
ZW1wLCBTSUtFX01TR19CWVRFU1opOworICBTSEEyNTZfVXBkYXRlKCZjdHgsIHB1Yl9rZXksIFNJ
S0VfUFVCX0JZVEVTWik7CisgIFNIQTI1Nl9GaW5hbChzZWNyZXQsICZjdHgpOworCisgIC8vIFJl
Y292ZXIgYzAgPSBwdWJsaWMga2V5IEEKKyAgZ2VuX2lzb19BKHNlY3JldCwgYzApOworICBjcnlw
dG9fd29yZF90IG9rID0gY29uc3RhbnRfdGltZV9pc196ZXJvX3coCisgICAgICBDUllQVE9fbWVt
Y21wKGMwLCBjaXBoZXJ0ZXh0LCBTSUtFX1BVQl9CWVRFU1opKTsKKyAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBTSUtFX01TR19CWVRFU1o7IGkrKykgeworICAgIHRlbXBbaV0gPSBjb25zdGFudF90
aW1lX3NlbGVjdF84KG9rLCB0ZW1wW2ldLCBzaGFyZWRfbm9rW2ldKTsKKyAgfQorCisgIFNIQTI1
Nl9Jbml0KCZjdHgpOworICBTSEEyNTZfVXBkYXRlKCZjdHgsIHRlbXAsIFNJS0VfTVNHX0JZVEVT
Wik7CisgIFNIQTI1Nl9VcGRhdGUoJmN0eCwgY2lwaGVydGV4dCwgU0lLRV9DVF9CWVRFU1opOwor
ICBTSEEyNTZfRmluYWwoc2VjcmV0LCAmY3R4KTsKKworICAvLyBHZW5lcmF0ZSBzaGFyZWQgc2Vj
cmV0IG91dF9zaGFyZWRfa2V5ID0gU0hBMjU2KG18fGNpcGhlcnRleHQpCisgIG1lbWNweShvdXRf
c2hhcmVkX2tleSwgc2VjcmV0LCBTSUtFX1NTX0JZVEVTWik7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dGhpcmRfcGFydHkvc2lrZS9zaWtlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9zaWtlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTgxOWViZjRkZjA0ZDFiN2RlZDEyZmE5ZDM5MjYwYmFmYWViMTk0OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL3Npa2UuaApAQCAtMCwwICsxLDY0IEBA
CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU0lESDogYW4gZWZmaWNp
ZW50IHN1cGVyc2luZ3VsYXIgaXNvZ2VueSBjcnlwdG9ncmFwaHkgbGlicmFyeQorKgorKiBBYnN0
cmFjdDogQVBJIGhlYWRlciBmaWxlIGZvciBTSUtFCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiovCisKKyNpZm5kZWYgU0lLRV9IXworI2RlZmluZSBTSUtFX0hfCisKKyNpbmNs
dWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2Jhc2UuaD4KKworI2lmIGRlZmluZWQo
X19jcGx1c3BsdXMpCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiBTSUtFCisgKgorICogU0lL
RSBpcyBhIGlzb2dlbnkgYmFzZWQgcG9zdC1xdWFudHVtIGtleSBlbmNhcHN1bGF0aW9uIG1lY2hh
bmlzbS4gRGVzY3JpcHRpb24gb2YgdGhlCisgKiBhbGdvcml0aG0gaXMgcHJvdmlkZWQgaW4gW1NJ
S0VdLiBUaGlzIGltcGxlbWVudGF0aW9uIHVzZXMgNDM0LWJpdCBmaWVsZCBzaXplLiBUaGUgY29k
ZQorICogaXMgYmFzZWQgb24gIkFkZGl0aW9uYWxfSW1wbGVtZW50YXRpb25zIiBmcm9tIFBRQyBO
SVNUIHN1Ym1pc3Npb24gcGFja2FnZSB3aGljaCBjYW4KKyAqIGJlIGZvdW5kIGhlcmU6CisgKiBo
dHRwczovL2NzcmMubmlzdC5nb3YvQ1NSQy9tZWRpYS9Qcm9qZWN0cy9Qb3N0LVF1YW50dW0tQ3J5
cHRvZ3JhcGh5L2RvY3VtZW50cy9yb3VuZC0xL3N1Ym1pc3Npb25zL1NJS0UuemlwCisgKgorICog
W1NJS0VdIGh0dHBzOi8vc2lrZS5vcmcvZmlsZXMvU0lESC1zcGVjLnBkZgorICovCisKKy8vIFNJ
S0VfUFVCX0JZVEVTWiBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIGEgcHVibGljIGtleS4KKyNk
ZWZpbmUgU0lLRV9QVUJfQllURVNaIDMzMAorLy8gU0lLRV9QUlZfQllURVNaIGlzIHRoZSBudW1i
ZXIgb2YgYnl0ZXMgaW4gYSBwcml2YXRlIGtleS4KKyNkZWZpbmUgU0lLRV9QUlZfQllURVNaIDI4
CisvLyBTSUtFX1NTX0JZVEVTWiBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIGEgc2hhcmVkIGtl
eS4KKyNkZWZpbmUgU0lLRV9TU19CWVRFU1ogIDE2CisvLyBTSUtFX01TR19CWVRFU1ogaXMgdGhl
IG51bWJlciBvZiBieXRlcyBpbiBhIHJhbmRvbSBiaXQgc3RyaW5nIGNvbmNhdGVuYXRlZAorLy8g
d2l0aCB0aGUgcHVibGljIGtleSAoc2VlIDEuNCBvZiBTSUtFKS4KKyNkZWZpbmUgU0lLRV9NU0df
QllURVNaIDE2CisvLyBTSUtFX1NTX0JZVEVTWiBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIGEg
Y2lwaGVydGV4dC4KKyNkZWZpbmUgU0lLRV9DVF9CWVRFU1ogIChTSUtFX1BVQl9CWVRFU1ogKyBT
SUtFX01TR19CWVRFU1opCisKKy8vIFNJS0Vfa2V5cGFpciBvdXRwdXRzIGEgcHVibGljIGFuZCBz
ZWNyZXQga2V5LiBJbnRlcm5hbGx5IGl0IHVzZXMgQk5fcmFuZCgpIGFzCisvLyBhbiBlbnRyb3B5
IHNvdXJjZS4gSW4gY2FzZSBvZiBzdWNjZXNzIGZ1bmN0aW9uIHJldHVybnMgMSwgb3RoZXJ3aXNl
IDAuCitPUEVOU1NMX0VYUE9SVCBpbnQgU0lLRV9rZXlwYWlyKAorICAgIHVpbnQ4X3Qgb3V0X3By
aXZbU0lLRV9QUlZfQllURVNaXSwKKyAgICB1aW50OF90IG91dF9wdWJbU0lLRV9QVUJfQllURVNa
XSk7CisKKy8vIFNJS0VfZW5jYXBzIGdlbmVyYXRlcyBhbmQgZW5jcnlwdHMgYSByYW5kb20gc2Vz
c2lvbiBrZXksIHdyaXRpbmcgdGhvc2UgdmFsdWVzIHRvCisvLyB8b3V0X3NoYXJlZF9rZXl8IGFu
ZCB8b3V0X2NpcGhlcnRleHR8LCByZXNwZWN0aXZlbHkuCitPUEVOU1NMX0VYUE9SVCB2b2lkIFNJ
S0VfZW5jYXBzKAorICAgIHVpbnQ4X3Qgb3V0X3NoYXJlZF9rZXlbU0lLRV9TU19CWVRFU1pdLAor
ICAgIHVpbnQ4X3Qgb3V0X2NpcGhlcnRleHRbU0lLRV9DVF9CWVRFU1pdLAorICAgIGNvbnN0IHVp
bnQ4X3QgcHViX2tleVtTSUtFX1BVQl9CWVRFU1pdKTsKKworLy8gU0lLRV9kZWNhcHMgb3V0cHV0
cyBhIHJhbmRvbSBzZXNzaW9uIGtleSwgd3JpdGluZyBpdCB0byB8b3V0X3NoYXJlZF9rZXl8Lgor
T1BFTlNTTF9FWFBPUlQgdm9pZCBTSUtFX2RlY2FwcygKKyAgICB1aW50OF90IG91dF9zaGFyZWRf
a2V5W1NJS0VfU1NfQllURVNaXSwKKyAgICBjb25zdCB1aW50OF90IGNpcGhlcnRleHRbU0lLRV9D
VF9CWVRFU1pdLAorICAgIGNvbnN0IHVpbnQ4X3QgcHViX2tleVtTSUtFX1BVQl9CWVRFU1pdLAor
ICAgIGNvbnN0IHVpbnQ4X3QgcHJpdl9rZXlbU0lLRV9QUlZfQllURVNaXSk7CisKKyNpZiBkZWZp
bmVkKF9fY3BsdXNwbHVzKQorfQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Ro
aXJkX3BhcnR5L3Npa2Uvc2lrZV90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2Uvc2lrZV90
ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIxODBhNTI4OTJlYzE4YmZjMTQ0NTBlNGFhZmM3YTZhMWFmYjVh
ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS9zaWtlX3Rlc3QuY2MK
QEAgLTAsMCArMSwyNTEgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxOCwgR29vZ2xlIEluYy4KKyAq
CisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0
aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBo
ZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgor
ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xB
SU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xV
RElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBB
TlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFU
QSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJ
R0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICog
Q09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4g
Ki8KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNp
bmNsdWRlICJzaWtlLmgiCisjaW5jbHVkZSAiZnB4LmgiCisjaW5jbHVkZSAiLi4vLi4vY3J5cHRv
L3Rlc3QvYWJpX3Rlc3QuaCIKKworVEVTVChTSUtFLCBSb3VuZFRyaXApIHsKKyAgdWludDhfdCBz
a1tTSUtFX1BSVl9CWVRFU1pdID0gezB9OworICB1aW50OF90IHBrW1NJS0VfUFVCX0JZVEVTWl0g
PSB7MH07CisgIHVpbnQ4X3QgY3RbU0lLRV9DVF9CWVRFU1pdID0gezB9OworICB1aW50OF90IHNz
X2VuY1tTSUtFX1NTX0JZVEVTWl0gPSB7MH07CisgIHVpbnQ4X3Qgc3NfZGVjW1NJS0VfU1NfQllU
RVNaXSA9IHswfTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDMwOyBpKyspIHsKKyAgICBF
WFBFQ1RfRVEoU0lLRV9rZXlwYWlyKHNrLCBwayksIDEpOworICAgIFNJS0VfZW5jYXBzKHNzX2Vu
YywgY3QsIHBrKTsKKyAgICBTSUtFX2RlY2Fwcyhzc19kZWMsIGN0LCBwaywgc2spOworCisgICAg
RVhQRUNUX0VRKG1lbWNtcChzc19lbmMsIHNzX2RlYywgU0lLRV9TU19CWVRFU1opLCAwKTsKKyAg
fQorfQorCitURVNUKFNJS0UsIERlY2Fwc3VsYXRpb24pIHsKKyAgY29uc3QgdWludDhfdCBza1tT
SUtFX1BSVl9CWVRFU1pdID0geworICAgICAgMHhCMSwgMHhGRCwgMHgzNCwgMHg0MiwgMHhEQiwg
MHgwMiwgMHhCQywgMHg5RCwgMHg0QywgMHhEMCwKKyAgICAgIDB4NzIsIDB4MzQsIDB4NEQsIDB4
QkQsIDB4MDYsIDB4REYsIDB4MUMsIDB4N0QsIDB4MEEsIDB4ODgsCisgICAgICAweEIyLCAweDUw
LCAweEM0LCAweEY2LCAweEFFLCAweEU4LCAweDI1LCAweDAxfTsKKworICBjb25zdCB1aW50OF90
IHBrW1NJS0VfUFVCX0JZVEVTWl0gPSB7CisgICAgICAweDZELCAweDhELCAweEY1LCAweDdCLCAw
eENELCAweDQ3LCAweENBLCAweENCLCAweDdBLCAweDM4LCAweEI3LCAweEE2LAorICAgICAgMHg5
MCwgMHhCNywgMHgzNywgMHgwMywgMHhENCwgMHg2RiwgMHgyNywgMHg3MywgMHg3NCwgMHgxNywg
MHg1QSwgMHhBNCwKKyAgICAgIDB4MEQsIDB4QzYsIDB4ODEsIDB4QUQsIDB4REIsIDB4RjcsIDB4
MTgsIDB4QjIsIDB4M0MsIDB4MzAsIDB4Q0YsIDB4QUEsCisgICAgICAweDA4LCAweDExLCAweDkx
LCAweENDLCAweDI3LCAweDRFLCAweEYxLCAweEE2LCAweEI3LCAweERBLCAweEQyLCAweENGLAor
ICAgICAgMHg5OSwgMHg3RiwgMHhGNywgMHhFMSwgMHhEMCwgMHhDRSwgMHgwMCwgMHhEMiwgMHg0
QiwgMHhBNCwgMHgzMywgMHhCNCwKKyAgICAgIDB4ODcsIDB4MDEsIDB4M0YsIDB4MDIsIDB4Rjcs
IDB4RjksIDB4REUsIDB4QzMsIDB4NjAsIDB4NjIsIDB4REEsIDB4M0YsCisgICAgICAweDc0LCAw
eEE5LCAweDQ0LCAweEJFLCAweDE5LCAweEQ1LCAweDAzLCAweDJBLCAweDc5LCAweDhDLCAweEE3
LCAweEZGLAorICAgICAgMHhFQSwgMHhCMywgMHhCQiwgMHhCNSwgMHhENCwgMHgxRCwgMHg4Riwg
MHg5MiwgMHhDRSwgMHg2MiwgMHg2RSwgMHg5OSwKKyAgICAgIDB4MjQsIDB4RDcsIDB4NTcsIDB4
RkEsIDB4Q0QsIDB4QjYsIDB4RTIsIDB4OEUsIDB4RkQsIDB4MjIsIDB4MEUsIDB4MzEsCisgICAg
ICAweDIxLCAweDAxLCAweDhELCAweDc5LCAweEY4LCAweDNFLCAweDI3LCAweEVDLCAweDQzLCAw
eDQwLCAweERCLCAweDgyLAorICAgICAgMHhFNSwgMHhFQiwgMHg2QywgMHg5NywgMHg2NiwgMHgy
OSwgMHgxNSwgMHg2OCwgMHhCNywgMHg0RCwgMHg4NCwgMHhEMSwKKyAgICAgIDB4OEEsIDB4MEIs
IDB4MTIsIDB4MzYsIDB4MkMsIDB4MEMsIDB4MEEsIDB4NkUsIDB4NEUsIDB4REUsIDB4QTUsIDB4
OEEsCisgICAgICAweERFLCAweDc3LCAweERELCAweDcwLCAweDQ5LCAweDczLCAweEFDLCAweDI3
LCAweDZELCAweDhELCAweDI1LCAweDlBLAorICAgICAgMHhFNCwgMHgyNSwgMHhFOCwgMHg5NSwg
MHg4RiwgMHhGRSwgMHg5MCwgMHgzQiwgMHgwMCwgMHg2OSwgMHgyMCwgMHhFOCwKKyAgICAgIDB4
N0MsIDB4QTUsIDB4RjUsIDB4NzksIDB4QzAsIDB4NjEsIDB4NTEsIDB4OTEsIDB4MzUsIDB4MjUs
IDB4M0YsIDB4MTcsCisgICAgICAweDJGLCAweDcwLCAweDczLCAweEYwLCAweDg5LCAweEI1LCAw
eEM4LCAweDI1LCAweEI4LCAweEU1LCAweDdFLCAweDM0LAorICAgICAgMHhERCwgMHgxMSwgMHhF
NSwgMHhENiwgMHhDMywgMHhENSwgMHgyOSwgMHg4OSwgMHhDNiwgMHgyQywgMHg5OSwgMHg1MywK
KyAgICAgIDB4MUQsIDB4MkMsIDB4NzcsIDB4QjAsIDB4QjYsIDB4QTEsIDB4QkQsIDB4NzksIDB4
RkIsIDB4NEEsIDB4QzIsIDB4NDgsCisgICAgICAweDRDLCAweDYyLCAweDUxLCAweDAwLCAweEUz
LCAweDkxLCAweDJBLCAweENCLCAweDg0LCAweDAzLCAweDVELCAweDJELAorICAgICAgMHhDOCwg
MHgzMywgMHhFOSwgMHgxNCwgMHhCRiwgMHg3NCwgMHgyMSwgMHhCQywgMHhGNCwgMHg3NiwgMHhF
NSwgMHg0MiwKKyAgICAgIDB4QjgsIDB4QkQsIDB4RTIsIDB4RTcsIDB4MjAsIDB4OTUsIDB4NTQs
IDB4RjIsIDB4RUQsIDB4QzAsIDB4NzksIDB4MzgsCisgICAgICAweDFFLCAweEQyLCAweEVBLCAw
eDFBLCAweDYzLCAweDg1LCAweEU3LCAweDNBLCAweERBLCAweEFELCAweEFCLCAweDFCLAorICAg
ICAgMHgxRSwgMHgxOSwgMHg5RSwgMHg3MywgMHhEMCwgMHgxMCwgMHgyRSwgMHgzOCwgMHhBQywg
MHg4QiwgMHgwMCwgMHg2QSwKKyAgICAgIDB4MzAsIDB4MkMsIDB4M0QsIDB4NzAsIDB4OEUsIDB4
MzksIDB4NkQsIDB4QzAsIDB4MTIsIDB4NjEsIDB4N0QsIDB4MkEsCisgICAgICAweDBBLCAweDA0
LCAweDk1LCAweDhFLCAweDA5LCAweDNDLCAweDdCLCAweEVDLCAweDJFLCAweEJDLCAweEU4LCAw
eEU4LAorICAgICAgMHhFOCwgMHgzNywgMHgyOSwgMHhDNCwgMHg3RSwgMHg3NiwgMHg0OCwgMHhC
OSwgMHgzQiwgMHg3MiwgMHhFNSwgMHg5OSwKKyAgICAgIDB4OUIsIDB4RjksIDB4RTMsIDB4OTks
IDB4NzIsIDB4M0YsIDB4MzUsIDB4MjksIDB4ODUsIDB4RTAsIDB4QzgsIDB4QkYsCisgICAgICAw
eEIxLCAweDZCLCAweEIxLCAweDZFLCAweDcyLCAweDAwfTsKKworICBjb25zdCB1aW50OF90IGN0
W1NJS0VfQ1RfQllURVNaXSA9IHsKKyAgICAgIDB4RkYsIDB4RUIsIDB4RUYsIDB4NEEsIDB4QzAs
IDB4NTcsIDB4MEYsIDB4MjYsIDB4QUMsIDB4NzYsIDB4QTgsIDB4QjAsCisgICAgICAweEEzLCAw
eDVELCAweDlDLCAweEQ5LCAweDI1LCAweEQxLCAweDdGLCAweDkyLCAweDVELCAweEY0LCAweDIz
LCAweDM0LAorICAgICAgMHhDMywgMHgwMywgMHgxMCwgMHhFMSwgMHhCMCwgMHgyNCwgMHg5Qiwg
MHg0NCwgMHg1OCwgMHgyNiwgMHgxMywgMHg1NiwKKyAgICAgIDB4ODMsIDB4NDMsIDB4NzIsIDB4
NjksIDB4MjgsIDB4MEQsIDB4NTUsIDB4MDcsIDB4MUYsIDB4REIsIDB4QzAsIDB4MjMsCisgICAg
ICAweDM0LCAweDgzLCAweDFBLCAweDA5LCAweDlCLCAweDgwLCAweDAwLCAweDY0LCAweDU2LCAw
eERDLCAweDc5LCAweDdBLAorICAgICAgMHhEMiwgMHhDRSwgMHgyMywgMHhDOSwgMHg3MiwgMHgy
NywgMHhGQywgMHg4RCwgMHhBQiwgMHhCRiwgMHhEMywgMHgxNywKKyAgICAgIDB4RjYsIDB4OTEs
IDB4N0IsIDB4MTUsIDB4OTMsIDB4ODMsIDB4OEEsIDB4NEYsIDB4NkMsIDB4Q0EsIDB4NEEsIDB4
OTQsCisgICAgICAweERBLCAweEM3LCAweDlELCAweEI2LCAweEQ2LCAweEJBLCAweEJELCAweDgx
LCAweDlBLCAweDc4LCAweEU1LCAweEU1LAorICAgICAgMHhCRSwgMHgxNywgMHhCQywgMHhDQiwg
MHhDOCwgMHgyMywgMHg4MCwgMHg1RiwgMHg3NSwgMHhGOCwgMHhEQiwgMHg1MSwKKyAgICAgIDB4
NTUsIDB4MDAsIDB4MjUsIDB4MzMsIDB4NTIsIDB4NjQsIDB4QjIsIDB4RDYsIDB4RDgsIDB4OUEs
IDB4MkEsIDB4OUUsCisgICAgICAweDI5LCAweDk5LCAweDEzLCAweDMzLCAweEUyLCAweEE3LCAw
eDk4LCAweEFDLCAweEQ3LCAweDc5LCAweDVDLCAweDJGLAorICAgICAgMHhCQSwgMHgwNywgMHhD
MywgMHgwMywgMHgzNywgMHhENiwgMHhFNiwgMHhCNSwgMHhBMSwgMHhGNSwgMHgyOSwgMHhCNiwK
KyAgICAgIDB4RjYsIDB4QzAsIDB4NUMsIDB4NDQsIDB4NjgsIDB4MkIsIDB4MEIsIDB4RjUsIDB4
MDAsIDB4MDEsIDB4NDQsIDB4RDUsCisgICAgICAweENDLCAweDIzLCAweEI1LCAweDI3LCAweDRG
LCAweENBLCAweEI0LCAweDA1LCAweDAxLCAweEY5LCAweEQ0LCAweDQxLAorICAgICAgMHhFMCwg
MHhFMSwgMHgxRSwgMHhDRiwgMHhBOSwgMHhCQywgMHg3OSwgMHhENywgMHhENSwgMHhGNSwgMHgz
QywgMHhFNiwKKyAgICAgIDB4OTMsIDB4RjQsIDB4NkMsIDB4ODQsIDB4NUEsIDB4MkMsIDB4NEIs
IDB4RTQsIDB4OTEsIDB4QjIsIDB4QjIsIDB4QjgsCisgICAgICAweEFELCAweDc0LCAweDlBLCAw
eDY5LCAweDc5LCAweDRDLCAweDg0LCAweEI3LCAweEJGLCAweEYxLCAweDY4LCAweDRCLAorICAg
ICAgMHhBRSwgMHgwRiwgMHg3RiwgMHg0NSwgMHgzQiwgMHgxOCwgMHgzRiwgMHhGQSwgMHgwMCwg
MHg0OCwgMHhFMCwgMHgzQSwKKyAgICAgIDB4RTIsIDB4QzAsIDB4QUUsIDB4MDAsIDB4Q0UsIDB4
OTAsIDB4MjgsIDB4QTQsIDB4MUIsIDB4QkUsIDB4Q0EsIDB4MEMsCisgICAgICAweDIxLCAweDI5
LCAweDY0LCAweDMwLCAweDVFLCAweDM1LCAweEFELCAweEZELCAweDgzLCAweDQ3LCAweDQwLCAw
eDZELAorICAgICAgMHgxNSwgMHg1NiwgMHhGQywgMHhGOCwgMHg1RiwgMHhBQiwgMHg4MSwgMHhG
RSwgMHg2QiwgMHhFOSwgMHg2QiwgMHhFRCwKKyAgICAgIDB4MjcsIDB4MzUsIDB4N0MsIDB4RDgs
IDB4MkMsIDB4RDQsIDB4RjIsIDB4MTEsIDB4RTYsIDB4QUYsIDB4REYsIDB4QjgsCisgICAgICAw
eDkxLCAweDk2LCAweEVCLCAweEY3LCAweDRDLCAweDhELCAweDcwLCAweDc3LCAweDkwLCAweDgx
LCAweDAwLCAweDA5LAorICAgICAgMHgxOSwgMHgyNywgMHg4QSwgMHg5RSwgMHhCNiwgMHgxQSwg
MHhFOSwgMHhBQywgMHg2QywgMHhDOSwgMHhGOCwgMHhFQSwKKyAgICAgIDB4QTIsIDB4MzQsIDB4
QjgsIDB4QUMsIDB4QjMsIDB4QjMsIDB4NjgsIDB4QTEsIDB4QjcsIDB4MjksIDB4NTUsIDB4Q0Es
CisgICAgICAweDQwLCAweDIzLCAweDkyLCAweDVDLCAweDBDLCAweDc5LCAweDZCLCAweEQ2LCAw
eDlGLCAweDVCLCAweEQyLCAweEU2LAorICAgICAgMHhBRSwgMHgwNCwgMHhDQiwgMHhFQywgMHhD
NywgMHg4OCwgMHgxOCwgMHhEQiwgMHg3QSwgMHhFNiwgMHhENiwgMHhDOSwKKyAgICAgIDB4Mzks
IDB4RkQsIDB4OTMsIDB4OUIsIDB4QzgsIDB4MDEsIDB4NkYsIDB4M0UsIDB4NkMsIDB4OTAsIDB4
M0UsIDB4NzMsCisgICAgICAweDc2LCAweDk5LCAweDdDLCAweDQ4LCAweERBLCAweDY4LCAweDQ4
LCAweDgwLCAweDJCLCAweDYzfTsKKworICBjb25zdCB1aW50OF90IHNzX2V4cFtTSUtFX1NTX0JZ
VEVTWl0gPSB7MHhBMSwgMHhGOSwgMHg1QSwgMHg2NywgMHhCOSwgMHgzRCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUUsIDB4NzIsIDB4RTgsIDB4QzUsIDB4
NzEsIDB4RjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDRD
LCAweEIyLCAweEFBLCAweDZEfTsKKworICB1aW50OF90IHNzX2RlY1tTSUtFX1NTX0JZVEVTWl0g
PSB7MH07CisgIFNJS0VfZGVjYXBzKHNzX2RlYywgY3QsIHBrLCBzayk7CisgIEVYUEVDVF9FUSht
ZW1jbXAoc3NfZGVjLCBzc19leHAsIHNpemVvZihzc19leHApKSwgMCk7Cit9CisKKy8vIFNJS0Vf
ZW5jYXBzIGFuZCBTSUtFX2tleXBhaXIgZG9lc24ndCByZXR1cm4gemVyb3MuCitURVNUKFNJS0Us
IE5vblplcm8pIHsKKyAgdWludDhfdCBza1tTSUtFX1BSVl9CWVRFU1pdID0gezB9OworICB1aW50
OF90IHBrW1NJS0VfUFVCX0JZVEVTWl0gPSB7MH07CisgIHVpbnQ4X3QgY3RbU0lLRV9DVF9CWVRF
U1pdID0gezB9OworICB1aW50OF90IHNzW1NJS0VfU1NfQllURVNaXSA9IHswfTsKKworICAvLyBD
aGVjayBzZWNyZXQgYW5kIHB1YmxpYyBrZXkgcmV0dXJuZWQgYnkgU0lLRV9rZXlwYWlyCisgIEVY
UEVDVF9FUShTSUtFX2tleXBhaXIoc2ssIHBrKSwgMSk7CisgIHVpbnQ4X3QgdG1wID0gMDsKKyAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoc2spOyBpKyspIHsKKyAgICB0bXAgfD0gc2tb
aV07CisgIH0KKyAgRVhQRUNUX05FKHRtcCwgMCk7CisKKyAgdG1wID0gMDsKKyAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplb2YocGspOyBpKyspIHsKKyAgICB0bXAgfD0gcGtbaV07CisgIH0K
KyAgRVhQRUNUX05FKHRtcCwgMCk7CisKKyAgLy8gQ2hlY2sgc2hhcmVkIHNlY3JldCBhbmQgY2lw
aGVydGV4dCByZXR1cm5lZCBieSBTSUtFX2VuY2FwcworICBTSUtFX2VuY2FwcyhzcywgY3QsIHBr
KTsKKyAgdG1wID0gMDsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoY3QpOyBpKysp
IHsKKyAgICB0bXAgfD0gY3RbaV07CisgIH0KKyAgRVhQRUNUX05FKHRtcCwgMCk7CisKKyAgdG1w
ID0gMDsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoc3MpOyBpKyspIHsKKyAgICB0
bXAgfD0gc3NbaV07CisgIH0KKyAgRVhQRUNUX05FKHRtcCwgMCk7Cit9CisKK1RFU1QoU0lLRSwg
TmVnYXRpdmUpIHsKKyAgdWludDhfdCBza1tTSUtFX1BSVl9CWVRFU1pdID0gezB9OworICB1aW50
OF90IHBrW1NJS0VfUFVCX0JZVEVTWl0gPSB7MH07CisgIHVpbnQ4X3QgY3RbU0lLRV9DVF9CWVRF
U1pdID0gezB9OworICB1aW50OF90IHNzX2VuY1tTSUtFX1NTX0JZVEVTWl0gPSB7MH07CisgIHVp
bnQ4X3Qgc3NfZGVjW1NJS0VfU1NfQllURVNaXSA9IHswfTsKKworICBFWFBFQ1RfRVEoU0lLRV9r
ZXlwYWlyKHNrLCBwayksIDEpOworICBTSUtFX2VuY2Fwcyhzc19lbmMsIGN0LCBwayk7CisKKyAg
Ly8gQ2hhbmdlIGNpcGVydGV4dAorICB1aW50OF90IGN0X3RtcFtTSUtFX0NUX0JZVEVTWl0gPSB7
MH07CisgIG1lbWNweShjdF90bXAsIGN0LCBzaXplb2YoY3QpKTsKKyAgY3RfdG1wWzBdID0gfmN0
X3RtcFswXTsKKyAgU0lLRV9kZWNhcHMoc3NfZGVjLCBjdF90bXAsIHBrLCBzayk7CisgIEVYUEVD
VF9ORShtZW1jbXAoc3NfZW5jLCBzc19kZWMsIFNJS0VfU1NfQllURVNaKSwgMCk7CisKKyAgLy8g
Q2hhbmdlIHNlY3JldCBrZXkKKyAgdWludDhfdCBza190bXBbU0lLRV9QUlZfQllURVNaXSA9IHsw
fTsKKyAgbWVtY3B5KHNrX3RtcCwgc2ssIHNpemVvZihzaykpOworICBza190bXBbMF0gPSB+c2tf
dG1wWzBdOworICBTSUtFX2RlY2Fwcyhzc19kZWMsIGN0LCBwaywgc2tfdG1wKTsKKyAgRVhQRUNU
X05FKG1lbWNtcChzc19lbmMsIHNzX2RlYywgU0lLRV9TU19CWVRFU1opLCAwKTsKKworICAvLyBD
aGFuZ2UgcHVibGljIGtleQorICB1aW50OF90IHBrX3RtcFtTSUtFX1BVQl9CWVRFU1pdID0gezB9
OworICBtZW1jcHkocGtfdG1wLCBwaywgc2l6ZW9mKHBrKSk7CisgIHBrX3RtcFswXSA9IH5wa190
bXBbMF07CisgIFNJS0VfZGVjYXBzKHNzX2RlYywgY3QsIHBrX3RtcCwgc2spOworICBFWFBFQ1Rf
TkUobWVtY21wKHNzX2VuYywgc3NfZGVjLCBTSUtFX1NTX0JZVEVTWiksIDApOworfQorCitURVNU
KFNJS0UsIFVuYWxpZ25lZCkgeworICBhbGlnbmFzKDQpIHVpbnQ4X3QgcHJpdltTSUtFX1BSVl9C
WVRFU1ogKyAxXTsKKyAgYWxpZ25hcyg0KSB1aW50OF90IHB1YltTSUtFX1BVQl9CWVRFU1ogKyAx
XTsKKyAgYWxpZ25hcyg0KSB1aW50OF90IHNoYXJlZF9rZXkxW1NJS0VfU1NfQllURVNaICsgMV07
CisgIGFsaWduYXMoNCkgdWludDhfdCBjaXBoZXJ0ZXh0W1NJS0VfQ1RfQllURVNaICsgMV07Cisg
IGFsaWduYXMoNCkgdWludDhfdCBzaGFyZWRfa2V5MltTSUtFX1NTX0JZVEVTWiArIDFdOworCisg
IEFTU0VSVF9UUlVFKFNJS0Vfa2V5cGFpcihwcml2ICsgMSwgcHViICsgMSkpOworICBTSUtFX2Vu
Y2FwcyhzaGFyZWRfa2V5MSArIDEsIGNpcGhlcnRleHQgKyAxLCBwdWIgKyAxKTsKKyAgU0lLRV9k
ZWNhcHMoc2hhcmVkX2tleTIgKyAxLCBjaXBoZXJ0ZXh0ICsgMSwgcHViICsgMSwgcHJpdiArIDEp
OworCisgIEVYUEVDVF9FUShtZW1jbXAoc2hhcmVkX2tleTEgKyAxLCBzaGFyZWRfa2V5MiArIDEs
IFNJS0VfU1NfQllURVNaKSwgMCk7Cit9CisKKyNpZiBkZWZpbmVkKFNVUFBPUlRTX0FCSV9URVNU
KSAmJiBcCisgICAgKGRlZmluZWQoT1BFTlNTTF9YODZfNjQpIHx8IGRlZmluZWQoT1BFTlNTTF9B
QVJDSDY0KSkKK1RFU1QoU0lLRSwgQUJJKSB7CisgIGZlbG1fdCBhLCBiLCBjOworICBkZmVsbV90
IGQsIGUsIGY7CisgIENIRUNLX0FCSShzaWtlX2ZwYWRkLCBhLCBiLCBjKTsKKyAgQ0hFQ0tfQUJJ
KHNpa2VfZnBzdWIsIGEsIGIsIGMpOworICBDSEVDS19BQkkoc2lrZV9tcG11bCwgYSwgYiwgZCk7
CisgIENIRUNLX0FCSShzaWtlX2ZwcmRjLCBkLCBhKTsKKyAgQ0hFQ0tfQUJJKHNpa2VfbXBhZGRf
YXNtLCBhLCBiLCBjKTsKKyAgQ0hFQ0tfQUJJKHNpa2VfbXBzdWJ4Ml9hc20sIGQsIGUsIGYpOwor
ICBDSEVDS19BQkkoc2lrZV9tcGRibHN1YngyX2FzbSwgZCwgZSwgZik7Cit9CisKKy8vIEFkZGl0
aW9uYWwgdGVzdHMgZm9yIGNoZWNraW5nIGlmIGFzc2VtYmx5IGltcGxlbWVudGF0aW9uCisvLyBv
ZiBNVUwgYW5kIFJFREMgaGFuZGxlcyBjYXJyeSBjaGFpbnMgY29ycmVjdGx5LgorVEVTVChTSUtF
LCBDYXJyeUNoYWlucykgeworICAvLyBFeHBlY3RlZCByZXN1bHRzCisgIGNvbnN0IGRmZWxtX3Qg
ZXhwX211bCA9IHsKKyAgICAweDAwMDAwMDAwMDAwMDAwMDEsIDB4MDAwMDAwMDAwMDAwMDAwMCwg
MHgwMDAwMDAwMDAwMDAwMDAwLAorICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAw
MDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsCisgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAweEZG
RkZGRkZGRkZGRkZGRkUsIDB4RkZGRkZGRkZGRkZGRkZGRiwKKyAgICAweEZGRkZGRkZGRkZGRkZG
RkYsIDB4RkZGRkZGRkZGRkZGRkZGRiwgMHhGRkZGRkZGRkZGRkZGRkZGLAorICAgIDB4RkZGRkZG
RkZGRkZGRkZGRiwgMHhGRkZGRkZGRkZGRkZGRkZGLAorICB9OworCisgIGNvbnN0IGZlbG1fdCBl
eHBfcmVkYyA9IHsKKyAgICAweDkzQUEwQzhDMkQzMjM1QkUsIDB4QThDRDM1RERERTM5OUI0Niwg
MHhCOUJCQTU0Njk1MDlDQTY1LAorICAgIDB4NkIyRkIzQTVBMkZCODZFNCwgMHg1ODU1OTFCQTZE
QkU4NjJDLCAweEQ5MkQzRkY1RkUwOTM4RjIsCisgICAgMHgwMDAxRTFGMEVFNzVBMUUxCisgIH07
CisKKyAgLy8gSW5wdXQKKyAgZGZlbG1fdCBpbjE0ID0geworICAgIDB4RkZGRkZGRkZGRkZGRkZG
RiwgMHhGRkZGRkZGRkZGRkZGRkZGLCAweEZGRkZGRkZGRkZGRkZGRkYsCisgICAgMHhGRkZGRkZG
RkZGRkZGRkZGLCAweEZGRkZGRkZGRkZGRkZGRkYsIDB4RkZGRkZGRkZGRkZGRkZGRiwKKyAgICAw
eEZGRkZGRkZGRkZGRkZGRkYsIDB4RkZGRkZGRkZGRkZGRkZGRiwgMHhGRkZGRkZGRkZGRkZGRkZG
LAorICAgIDB4RkZGRkZGRkZGRkZGRkZGRiwgMHhGRkZGRkZGRkZGRkZGRkZGLCAweEZGRkZGRkZG
RkZGRkZGRkYsCisgICAgMHhGRkZGRkZGRkZGRkZGRkZGLCAweEZGRkZGRkZGRkZGRkZGRkYKKyAg
fTsKKworICBmZWxtX3QgaW43ID0geworICAgIDB4RkZGRkZGRkZGRkZGRkZGRiwgMHhGRkZGRkZG
RkZGRkZGRkZGLCAweEZGRkZGRkZGRkZGRkZGRkYsCisgICAgMHhGRkZGRkZGRkZGRkZGRkZGLCAw
eEZGRkZGRkZGRkZGRkZGRkYsIDB4RkZGRkZGRkZGRkZGRkZGRiwKKyAgICAweEZGRkZGRkZGRkZG
RkZGRkYKKyAgfTsKKworICBkZmVsbV90IHJlczsKKyAgc2lrZV9tcG11bChpbjcsIGluNywgcmVz
KTsKKyAgRVhQRUNUX0VRKG1lbWNtcChleHBfbXVsLCByZXMsIHNpemVvZihleHBfbXVsKSksIDAp
OworCisgIC8vIG1vZGlmaWVzIGluMTQgYW5kIGluNworICBzaWtlX2ZwcmRjKGluMTQsIGluNyk7
CisgIEVYUEVDVF9FUShtZW1jbXAoZXhwX3JlZGMsIGluNywgc2l6ZW9mKGV4cF9yZWRjKSksIDAp
OworfQorI2VuZGlmICAvLyBTVVBQT1JUU19BQklfVEVTVCAmJiAoWDg2XzY0IHx8IEFBUkNINjQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdGhpcmRfcGFydHkvc2lrZS91dGlscy5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3Bh
cnR5L3Npa2UvdXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmM4MzI5MzdkOWM5ZTNiMzJmYTBlMTVjOWQ1
YmMwMTBjMDhjYjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2UvdXRp
bHMuaApAQCAtMCwwICsxLDE0NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqIFNJREg6IGFuIGVmZmljaWVudCBzdXBlcnNpbmd1bGFyIGlzb2dlbnkgY3J5cHRvZ3Jh
cGh5IGxpYnJhcnkKKyoKKyogQWJzdHJhY3Q6IGludGVybmFsIGhlYWRlciBmaWxlIGZvciBQNDM0
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgVVRJTFNf
SF8KKyNkZWZpbmUgVVRJTFNfSF8KKworI2luY2x1ZGUgPG9wZW5zc2wvYmFzZS5oPgorCisjaW5j
bHVkZSAiLi4vY3J5cHRvL2ludGVybmFsLmgiCisjaW5jbHVkZSAic2lrZS5oIgorCisvLyBDb252
ZXJzaW9uIG1hY3JvIGZyb20gbnVtYmVyIG9mIGJpdHMgdG8gbnVtYmVyIG9mIGJ5dGVzCisjZGVm
aW5lIEJJVFNfVE9fQllURVMobmJpdHMpICAgICAgKCgobmJpdHMpKzcpLzgpCisKKy8vIEJpdCBz
aXplIG9mIHRoZSBmaWVsZAorI2RlZmluZSBCSVRTX0ZJRUxEICAgICAgICAgICAgICA0MzQKKy8v
IEJ5dGUgc2l6ZSBvZiB0aGUgZmllbGQKKyNkZWZpbmUgRklFTERfQllURVNaICAgICAgICAgICAg
QklUU19UT19CWVRFUyhCSVRTX0ZJRUxEKQorLy8gTnVtYmVyIG9mIDY0LWJpdCB3b3JkcyBvZiBh
IDIyNC1iaXQgZWxlbWVudAorI2RlZmluZSBOQklUU19PUkRFUiAgICAgICAgICAgICAyMjQKKyNk
ZWZpbmUgTldPUkRTNjRfT1JERVIgICAgICAgICAgKChOQklUU19PUkRFUis2MykvNjQpCisvLyBO
dW1iZXIgb2YgZWxlbWVudHMgaW4gQWxpY2UncyBzdHJhdGVneQorI2RlZmluZSBBX21heCAgICAg
ICAgICAgICAgICAgICAxMDgKKy8vIE51bWJlciBvZiBlbGVtZW50cyBpbiBCb2IncyBzdHJhdGVn
eQorI2RlZmluZSBCX21heCAgICAgICAgICAgICAgICAgICAxMzcKKy8vIFdvcmQgc2l6ZSBzaXpl
CisjZGVmaW5lIFJBRElYICAgICAgICAgICAgICAgICAgIHNpemVvZihjcnlwdG9fd29yZF90KSo4
CisvLyBCeXRlIHNpemUgb2YgYSBsaW1iCisjZGVmaW5lIExTWiAgICAgICAgICAgICAgICAgICAg
IHNpemVvZihjcnlwdG9fd29yZF90KQorCisjaWYgZGVmaW5lZChPUEVOU1NMXzY0X0JJVCkKKyAg
ICAvLyBOdW1iZXIgb2Ygd29yZHMgb2YgYSA0MzQtYml0IGZpZWxkIGVsZW1lbnQKKyAgICAjZGVm
aW5lIE5XT1JEU19GSUVMRCAgICA3CisgICAgLy8gTnVtYmVyIG9mICIwIiBkaWdpdHMgaW4gdGhl
IGxlYXN0IHNpZ25pZmljYW50IHBhcnQgb2YgcDQzNCArIDEKKyAgICAjZGVmaW5lIFpFUk9fV09S
RFMgMworICAgIC8vIFU2NF9UT19XT1JEUyBleHBhbmRzIHx4fCBmb3IgYSB8Y3J5cHRvX3dvcmRf
dHwgYXJyYXkgbGl0ZXJhbC4KKyAgICAjZGVmaW5lIFU2NF9UT19XT1JEUyh4KSBVSU5UNjRfQyh4
KQorI2Vsc2UKKyAgICAvLyBOdW1iZXIgb2Ygd29yZHMgb2YgYSA0MzQtYml0IGZpZWxkIGVsZW1l
bnQKKyAgICAjZGVmaW5lIE5XT1JEU19GSUVMRCAgICAxNAorICAgIC8vIE51bWJlciBvZiAiMCIg
ZGlnaXRzIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBwYXJ0IG9mIHA0MzQgKyAxCisgICAgI2Rl
ZmluZSBaRVJPX1dPUkRTIDYKKyAgICAvLyBVNjRfVE9fV09SRFMgZXhwYW5kcyB8eHwgZm9yIGEg
fGNyeXB0b193b3JkX3R8IGFycmF5IGxpdGVyYWwuCisgICAgI2RlZmluZSBVNjRfVE9fV09SRFMo
eCkgXAorICAgICAgICAodWludDMyX3QpKFVJTlQ2NF9DKHgpICYgMHhmZmZmZmZmZiksICh1aW50
MzJfdCkoVUlOVDY0X0MoeCkgPj4gMzIpCisjZW5kaWYKKworLy8gRXh0ZW5kZWQgZGF0YXR5cGUg
c3VwcG9ydAorI2lmICFkZWZpbmVkKEJPUklOR1NTTF9IQVNfVUlOVDEyOCkKKyAgICB0eXBlZGVm
IHVpbnQ2NF90IHVpbnQxMjhfdFsyXTsKKyNlbmRpZgorCisvLyBUaGUgZm9sbG93aW5nIGZ1bmN0
aW9ucyByZXR1cm4gMSAoVFJVRSkgaWYgY29uZGl0aW9uIGlzIHRydWUsIDAgKEZBTFNFKSBvdGhl
cndpc2UKKy8vIERpZ2l0IG11bHRpcGxpY2F0aW9uCisjZGVmaW5lIE1VTChtdWx0aXBsaWVyLCBt
dWx0aXBsaWNhbmQsIGhpLCBsbykgZGlnaXRfeF9kaWdpdCgobXVsdGlwbGllciksIChtdWx0aXBs
aWNhbmQpLCAmKGxvKSk7CisKKy8vIElmIG1hc2sgfHh8PT0weGZmLmZmIHNldCB8eHwgdG8gMSwg
b3RoZXJ3aXNlIDAKKyNkZWZpbmUgTTJCKHgpICgoeCk+PihSQURJWC0xKSkKKworLy8gRGlnaXQg
YWRkaXRpb24gd2l0aCBjYXJyeQorI2RlZmluZSBBRERDKGNhcnJ5SW4sIGFkZGVuZDEsIGFkZGVu
ZDIsIGNhcnJ5T3V0LCBzdW1PdXQpICAgICAgICAgICAgICAgICAgIFwKK2RvIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgIGNyeXB0b193b3JkX3QgdGVtcFJlZyA9IChhZGRlbmQxKSArIChjcnlwdG9fd29y
ZF90KShjYXJyeUluKTsgICAgICAgICAgICAgXAorICAoc3VtT3V0KSA9IChhZGRlbmQyKSArIHRl
bXBSZWc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgKGNh
cnJ5T3V0KSA9IE0yQihjb25zdGFudF90aW1lX2x0X3codGVtcFJlZywgKGNyeXB0b193b3JkX3Qp
KGNhcnJ5SW4pKSB8ICBcCisgICAgICAgICAgICAgICAgICAgY29uc3RhbnRfdGltZV9sdF93KChz
dW1PdXQpLCB0ZW1wUmVnKSk7ICAgICAgICAgICAgICAgICAgXAorfSB3aGlsZSgwKQorCisvLyBE
aWdpdCBzdWJ0cmFjdGlvbiB3aXRoIGJvcnJvdworI2RlZmluZSBTVUJDKGJvcnJvd0luLCBtaW51
ZW5kLCBzdWJ0cmFoZW5kLCBib3Jyb3dPdXQsIGRpZmZlcmVuY2VPdXQpICAgICAgICAgICBcCitk
byB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjcnlwdG9fd29yZF90IHRlbXBSZWcgPSAobWlu
dWVuZCkgLSAoc3VidHJhaGVuZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNy
eXB0b193b3JkX3QgYm9ycm93UmVnID0gTTJCKGNvbnN0YW50X3RpbWVfbHRfdygobWludWVuZCks
IChzdWJ0cmFoZW5kKSkpOyBcCisgICAgYm9ycm93UmVnIHw9ICgoYm9ycm93SW4pICYgY29uc3Rh
bnRfdGltZV9pc196ZXJvX3codGVtcFJlZykpOyAgICAgICAgICAgICAgIFwKKyAgICAoZGlmZmVy
ZW5jZU91dCkgPSB0ZW1wUmVnIC0gKGNyeXB0b193b3JkX3QpKGJvcnJvd0luKTsgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIChib3Jyb3dPdXQpID0gYm9ycm93UmVnOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlKDApCisKKy8q
IE9sZCBHQ0MgNC45IChqZXNzaWUpIGRvZXNuJ3QgaW1wbGVtZW50IHswfSBpbml0aWFsaXphdGlv
biBwcm9wZXJseSwKKyAgIHdoaWNoIHZpb2xhdGVzIEMxMSBhcyBkZXNjcmliZWQgaW4gNi43Ljks
IDIxIChzaW1pbGFyaWx5IEM5OSwgNi43LjgpLgorICAgRGVmaW5lcyBiZWxvdyBhcmUgdXNlZCB0
byB3b3JrIGFyb3VuZCB0aGUgYnVnLCBhbmQgcHJvdmlkZSBhIHdheQorICAgdG8gaW5pdGlhbGl6
ZSBmMmVsZW1fdCBhbmQgcG9pbnRfcHJval90IHN0cnVjdHMuCisgICBCdWcgaGFzIGJlZW4gZml4
ZWQgaW4gR0NDNiAoZGViaWFuIHN0cmV0Y2gpLgorKi8KKyNkZWZpbmUgRjJFTE1fSU5JVCB7eyB7
MH0sIHswfSB9fQorI2RlZmluZSBQT0lOVF9QUk9KX0lOSVQge3sgRjJFTE1fSU5JVCwgRjJFTE1f
SU5JVCB9fQorCisvLyBEYXRhdHlwZSBmb3IgcmVwcmVzZW50aW5nIDQzNC1iaXQgZmllbGQgZWxl
bWVudHMgKDQ0OC1iaXQgbWF4LikKKy8vIEVsZW1lbnRzIG92ZXIgR0YocDQzNCkgYXJlIGVuY29k
ZWQgaW4gNjMgb2N0ZXRzIGluIGxpdHRsZSBlbmRpYW4gZm9ybWF0CisvLyAoaS5lLiwgdGhlIGxl
YXN0IHNpZ25pZmljYW50IG9jdGV0IGlzIGxvY2F0ZWQgaW4gdGhlIGxvd2VzdCBtZW1vcnkgYWRk
cmVzcykuCit0eXBlZGVmIGNyeXB0b193b3JkX3QgZmVsbV90W05XT1JEU19GSUVMRF07CisKKy8v
IEFuIGVsZW1lbnQgaW4gRl97cF4yfSwgaXMgY29tcG9zZWQgb2YgdHdvIGNvZWZmaWNpZW50cyBm
cm9tIEZfcCwgKiBpLmUuCisvLyBGcDIgZWxlbWVudCA9IGMwICsgYzEqaSBpbiBGX3twXjJ9Cisv
LyBEYXRhdHlwZSBmb3IgcmVwcmVzZW50aW5nIGRvdWJsZS1wcmVjaXNpb24gMng0MzQtYml0IGZp
ZWxkIGVsZW1lbnRzICg0NDgtYml0IG1heC4pCisvLyBFbGVtZW50cyAoYStiKmkpIG92ZXIgR0Yo
cDQzNF4yKSwgd2hlcmUgYSBhbmQgYiBhcmUgZGVmaW5lZCBvdmVyIEdGKHA0MzQpLCBhcmUKKy8v
IGVuY29kZWQgYXMge2EsIGJ9LCB3aXRoIGEgaW4gdGhlIGxvd2VzdCBtZW1vcnkgcG9ydGlvbi4K
K3R5cGVkZWYgc3RydWN0IHsKKyAgICBmZWxtX3QgYzA7CisgICAgZmVsbV90IGMxOworfSBmcDI7
CisKKy8vIE91ciBGX3twXjJ9IGVsZW1lbnQgdHlwZSBpcyBhIHBvaW50ZXIgdG8gdGhlIHN0cnVj
dC4KK3R5cGVkZWYgZnAyIGYyZWxtX3RbMV07CisKKy8vIERhdGF0eXBlIGZvciByZXByZXNlbnRp
bmcgZG91YmxlLXByZWNpc2lvbiAyeDQzNC1iaXQKKy8vIGZpZWxkIGVsZW1lbnRzIGluIGNvbnRp
Z3VvdXMgbWVtb3J5LgordHlwZWRlZiBjcnlwdG9fd29yZF90IGRmZWxtX3RbMipOV09SRFNfRklF
TERdOworCisvLyBDb25zdGFudHMgdXNlZCBkdXJpbmcgU0lLRSBjb21wdXRhdGlvbi4KK3N0cnVj
dCBwYXJhbXNfdCB7CisgICAgLy8gU3RvcmVzIGEgcHJpbWUKKyAgICBjb25zdCBjcnlwdG9fd29y
ZF90IHByaW1lW05XT1JEU19GSUVMRF07CisgICAgLy8gU3RvcmVzIHByaW1lICsgMQorICAgIGNv
bnN0IGNyeXB0b193b3JkX3QgcHJpbWVfcDFbTldPUkRTX0ZJRUxEXTsKKyAgICAvLyBTdG9yZXMg
cHJpbWUgKiAyCisgICAgY29uc3QgY3J5cHRvX3dvcmRfdCBwcmltZV94MltOV09SRFNfRklFTERd
OworICAgIC8vIEFsaWNlJ3MgZ2VuZXJhdG9yIHZhbHVlcyB7WFBBMCArIFhQQTEqaSwgWFFBMCAr
IFhRQTEqaSwgWFJBMCArIFhSQTEqaX0KKyAgICAvLyBpbiBHRihwcmltZV4yKSwgZXhwcmVzc2Vk
IGluIE1vbnRnb21lcnkgcmVwcmVzZW50YXRpb24KKyAgICBjb25zdCBjcnlwdG9fd29yZF90IEFf
Z2VuWzYqTldPUkRTX0ZJRUxEXTsKKyAgICAvLyBCb2IncyBnZW5lcmF0b3IgdmFsdWVzIHtYUEIw
ICsgWFBCMSppLCBYUUIwICsgWFFCMSppLCBYUkIwICsgWFJCMSppfQorICAgIC8vIGluIEdGKHBy
aW1lXjIpLCBleHByZXNzZWQgaW4gTW9udGdvbWVyeSByZXByZXNlbnRhdGlvbgorICAgIGNvbnN0
IGNyeXB0b193b3JkX3QgQl9nZW5bNipOV09SRFNfRklFTERdOworICAgIC8vIE1vbnRnb21lcnkg
Y29uc3RhbnQgbW9udF9SMiA9ICgyXjQ0OCleMiBtb2QgcHJpbWUKKyAgICBjb25zdCBjcnlwdG9f
d29yZF90IG1vbnRfUjJbTldPUkRTX0ZJRUxEXTsKKyAgICAvLyBWYWx1ZSAnb25lJyBpbiBNb250
Z29tZXJ5IHJlcHJlc2VudGF0aW9uCisgICAgY29uc3QgY3J5cHRvX3dvcmRfdCBtb250X29uZVtO
V09SRFNfRklFTERdOworICAgIC8vIFZhbHVlICc2JyBpbiBNb250Z29tZXJ5IHJlcHJlc2VudGF0
aW9uCisgICAgY29uc3QgY3J5cHRvX3dvcmRfdCBtb250X3NpeFtOV09SRFNfRklFTERdOworICAg
IC8vIEZpeGVkIHBhcmFtZXRlcnMgZm9yIGlzb2dlbnkgdHJlZSBjb21wdXRhdGlvbgorICAgIGNv
bnN0IHVuc2lnbmVkIGludCBBX3N0cmF0W0FfbWF4LTFdOworICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBCX3N0cmF0W0JfbWF4LTFdOworfTsKKworLy8gUG9pbnQgcmVwcmVzZW50YXRpb24gaW4gcHJv
amVjdGl2ZSBYWiBNb250Z29tZXJ5IGNvb3JkaW5hdGVzLgordHlwZWRlZiBzdHJ1Y3QgeworICAg
IGYyZWxtX3QgWDsKKyAgICBmMmVsbV90IFo7Cit9IHBvaW50X3Byb2o7Cit0eXBlZGVmIHBvaW50
X3Byb2ogcG9pbnRfcHJval90WzFdOworCisjZW5kaWYgLy8gVVRJTFNfSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy90b29sL2NsaWVudC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90b29sL2NsaWVudC5jYwppbmRleCA4MGFjZjM0YWU3
OWRjMmY0NTk2MjJlODA0Y2Y2N2ZlZmFhM2VmZTE0Li5mNGQxNDQxMDk4YzY1ODlkMWIwNWQxYTA5
OTg4OTg0ODQyYzg4ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdG9vbC9jbGllbnQuY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3Rvb2wvY2xpZW50LmNjCkBAIC0xMjUsMTAgKzEyNSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
YXJndW1lbnQga0FyZ3VtZW50c1tdID0gewogICAgICAgICAidGhpcyBmbGFnIGlzIHRoZSBlYXJs
eSBkYXRhIHRvIHNlbmQgb3IgaWYgaXQgc3RhcnRzIHdpdGggJ0AnLCB0aGUgIgogICAgICAgICAi
ZmlsZSB0byByZWFkIGZyb20gZm9yIGVhcmx5IGRhdGEuIiwKICAgICB9LAotICAgIHsKLSAgICAg
ICAgIi10bHMxMy12YXJpYW50Iiwga09wdGlvbmFsQXJndW1lbnQsCi0gICAgICAgICJFbmFibGUg
dGhlIHNwZWNpZmllZCBleHBlcmltZW50YWwgVExTIDEuMyB2YXJpYW50IiwKLSAgICB9LAogICAg
IHsKICAgICAgICAgIi1lZDI1NTE5Iiwga0Jvb2xlYW5Bcmd1bWVudCwgIkFkdmVydGlzZSBFZDI1
NTE5IHN1cHBvcnQiLAogICAgIH0sCkBAIC0zMjgsMjYgKzMyNCw2IEBAIHN0YXRpYyBib29sIERv
Q29ubmVjdGlvbihTU0xfQ1RYICpjdHgsCiAgIHJldHVybiBjYihzc2wuZ2V0KCksIHNvY2spOwog
fQogCi1zdGF0aWMgYm9vbCBHZXRUTFMxM1ZhcmlhbnQodGxzMTNfdmFyaWFudF90ICpvdXQsIGNv
bnN0IHN0ZDo6c3RyaW5nICZpbikgewotICBpZiAoaW4gPT0gImRyYWZ0MjMiKSB7Ci0gICAgKm91
dCA9IHRsczEzX2RyYWZ0MjM7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLSAgaWYgKGluID09ICJk
cmFmdDI4IikgewotICAgICpvdXQgPSB0bHMxM19kcmFmdDI4OwotICAgIHJldHVybiB0cnVlOwot
ICB9Ci0gIGlmIChpbiA9PSAicmZjIikgewotICAgICpvdXQgPSB0bHMxM19yZmM7Ci0gICAgcmV0
dXJuIHRydWU7Ci0gIH0KLSAgaWYgKGluID09ICJhbGwiKSB7Ci0gICAgKm91dCA9IHRsczEzX2Fs
bDsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotICByZXR1cm4gZmFsc2U7Ci19Ci0KIHN0YXRpYyB2
b2lkIEluZm9DYWxsYmFjayhjb25zdCBTU0wgKnNzbCwgaW50IHR5cGUsIGludCB2YWx1ZSkgewog
ICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFNTTF9DQl9IQU5EU0hBS0VfU1RBUlQ6CkBAIC01
MjgsMTYgKzUwNCw2IEBAIGJvb2wgQ2xpZW50KGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n
PiAmYXJncykgewogICAgIFNTTF9DVFhfc2V0X2Vhcmx5X2RhdGFfZW5hYmxlZChjdHguZ2V0KCks
IDEpOwogICB9CiAKLSAgaWYgKGFyZ3NfbWFwLmNvdW50KCItdGxzMTMtdmFyaWFudCIpICE9IDAp
IHsKLSAgICB0bHMxM192YXJpYW50X3QgdmFyaWFudDsKLSAgICBpZiAoIUdldFRMUzEzVmFyaWFu
dCgmdmFyaWFudCwgYXJnc19tYXBbIi10bHMxMy12YXJpYW50Il0pKSB7Ci0gICAgICBmcHJpbnRm
KHN0ZGVyciwgIlVua25vd24gVExTIDEuMyB2YXJpYW50OiAlc1xuIiwKLSAgICAgICAgICAgICAg
YXJnc19tYXBbIi10bHMxMy12YXJpYW50Il0uY19zdHIoKSk7Ci0gICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotICAgIFNTTF9DVFhfc2V0X3RsczEzX3ZhcmlhbnQoY3R4LmdldCgpLCB2YXJpYW50
KTsKLSAgfQotCiAgIGlmIChhcmdzX21hcC5jb3VudCgiLWVkMjU1MTkiKSAhPSAwKSB7CiAgICAg
U1NMX0NUWF9zZXRfZWQyNTUxOV9lbmFibGVkKGN0eC5nZXQoKSwgMSk7CiAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90b29sL3NlcnZlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90b29sL3NlcnZlci5jYwppbmRleCBhNjU1ZGI1
MmYwYWEzZjBjZGM5OTI1ODMwMmRmYmRiNmY4MzYxOGY3Li45ODlkMzM1ZmE5ODA5YTRmNDVjNTk3
ODA2YTQ1ZjlhZjE1ZWE0N2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdG9vbC9zZXJ2ZXIuY2MKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3Rvb2wvc2VydmVyLmNjCkBAIC02NywxMCArNjcsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0
IGFyZ3VtZW50IGtBcmd1bWVudHNbXSA9IHsKICAgICB7CiAgICAgICAgICItZWFybHktZGF0YSIs
IGtCb29sZWFuQXJndW1lbnQsICJBbGxvdyBlYXJseSBkYXRhIiwKICAgICB9LAotICAgIHsKLSAg
ICAgICAgIi10bHMxMy12YXJpYW50Iiwga09wdGlvbmFsQXJndW1lbnQsCi0gICAgICAgICJFbmFi
bGUgdGhlIHNwZWNpZmllZCBleHBlcmltZW50YWwgVExTIDEuMyB2YXJpYW50IiwKLSAgICB9LAog
ICAgIHsKICAgICAgICAgIi13d3ciLCBrQm9vbGVhbkFyZ3VtZW50LAogICAgICAgICAiVGhlIHNl
cnZlciB3aWxsIHByaW50IGNvbm5lY3Rpb24gaW5mb3JtYXRpb24gaW4gcmVzcG9uc2UgdG8gYSAi
CkBAIC0xNTIsMjYgKzE0OCw2IEBAIHN0YXRpYyBic3NsOjpVbmlxdWVQdHI8WDUwOT4gTWFrZVNl
bGZTaWduZWRDZXJ0KEVWUF9QS0VZICpldnBfcGtleSwKICAgcmV0dXJuIHg1MDk7CiB9CiAKLXN0
YXRpYyBib29sIEdldFRMUzEzVmFyaWFudCh0bHMxM192YXJpYW50X3QgKm91dCwgY29uc3Qgc3Rk
OjpzdHJpbmcgJmluKSB7Ci0gIGlmIChpbiA9PSAiZHJhZnQyMyIpIHsKLSAgICAqb3V0ID0gdGxz
MTNfZHJhZnQyMzsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotICBpZiAoaW4gPT0gImRyYWZ0Mjgi
KSB7Ci0gICAgKm91dCA9IHRsczEzX2RyYWZ0Mjg7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLSAg
aWYgKGluID09ICJyZmMiKSB7Ci0gICAgKm91dCA9IHRsczEzX3JmYzsKLSAgICByZXR1cm4gdHJ1
ZTsKLSAgfQotICBpZiAoaW4gPT0gImFsbCIpIHsKLSAgICAqb3V0ID0gdGxzMTNfYWxsOwotICAg
IHJldHVybiB0cnVlOwotICB9Ci0gIHJldHVybiBmYWxzZTsKLX0KLQogc3RhdGljIHZvaWQgSW5m
b0NhbGxiYWNrKGNvbnN0IFNTTCAqc3NsLCBpbnQgdHlwZSwgaW50IHZhbHVlKSB7CiAgIHN3aXRj
aCAodHlwZSkgewogICAgIGNhc2UgU1NMX0NCX0hBTkRTSEFLRV9TVEFSVDoKQEAgLTMzMSwxNiAr
MzA3LDYgQEAgYm9vbCBTZXJ2ZXIoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICZhcmdz
KSB7CiAgICAgU1NMX0NUWF9zZXRfZWFybHlfZGF0YV9lbmFibGVkKGN0eC5nZXQoKSwgMSk7CiAg
IH0KIAotICBpZiAoYXJnc19tYXAuY291bnQoIi10bHMxMy12YXJpYW50IikgIT0gMCkgewotICAg
IHRsczEzX3ZhcmlhbnRfdCB2YXJpYW50OwotICAgIGlmICghR2V0VExTMTNWYXJpYW50KCZ2YXJp
YW50LCBhcmdzX21hcFsiLXRsczEzLXZhcmlhbnQiXSkpIHsKLSAgICAgIGZwcmludGYoc3RkZXJy
LCAiVW5rbm93biBUTFMgMS4zIHZhcmlhbnQ6ICVzXG4iLAotICAgICAgICAgICAgICBhcmdzX21h
cFsiLXRsczEzLXZhcmlhbnQiXS5jX3N0cigpKTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0gICAgU1NMX0NUWF9zZXRfdGxzMTNfdmFyaWFudChjdHguZ2V0KCksIHZhcmlhbnQpOwotICB9
Ci0KICAgaWYgKGFyZ3NfbWFwLmNvdW50KCItZGVidWciKSAhPSAwKSB7CiAgICAgU1NMX0NUWF9z
ZXRfaW5mb19jYWxsYmFjayhjdHguZ2V0KCksIEluZm9DYWxsYmFjayk7CiAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy90b29sL3NwZWVkLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Rvb2wvc3BlZWQuY2MKaW5kZXggMjE3NWJhYTI0
OWY2ZjAzMTZmMDAxNWYyOWUyOWQ3ZGI3OWQyZDUyMS4uMzkyOWNmNjMxNTFjMDUwMTQwZWYxZDFl
ZThkYWJkYTk0MjM2ZGI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3Rvb2wvc3BlZWQuY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3Rvb2wvc3BlZWQuY2MKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNp
bmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPHN0ZGludC5o
PgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtMzIsNiArMzMs
NyBAQAogI2luY2x1ZGUgPG9wZW5zc2wvZWNkc2EuaD4KICNpbmNsdWRlIDxvcGVuc3NsL2VjX2tl
eS5oPgogI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9ocnNzLmg+
CiAjaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KICNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KICNp
bmNsdWRlIDxvcGVuc3NsL3JzYS5oPgpAQCAtNDksNiArNTEsOCBAQCBPUEVOU1NMX01TVkNfUFJB
R01BKHdhcm5pbmcocG9wKSkKICNpbmNsdWRlICIuLi9jcnlwdG8vaW50ZXJuYWwuaCIKICNpbmNs
dWRlICJpbnRlcm5hbC5oIgogCisjaW5jbHVkZSAiLi4vdGhpcmRfcGFydHkvc2lrZS9zaWtlLmgi
CisKIAogLy8gVGltZVJlc3VsdHMgcmVwcmVzZW50cyB0aGUgcmVzdWx0cyBvZiBiZW5jaG1hcmtp
bmcgYSBmdW5jdGlvbi4KIHN0cnVjdCBUaW1lUmVzdWx0cyB7CkBAIC05Nyw2ICsxMDEsNyBAQCBz
dGF0aWMgdWludDY0X3QgdGltZV9ub3coKSB7CiAjZW5kaWYKIAogc3RhdGljIHVpbnQ2NF90IGdf
dGltZW91dF9zZWNvbmRzID0gMTsKK3N0YXRpYyBzdGQ6OnZlY3RvcjxzaXplX3Q+IGdfY2h1bmtf
bGVuZ3RocyA9IHsxNiwgMjU2LCAxMzUwLCA4MTkyLCAxNjM4NH07CiAKIHN0YXRpYyBib29sIFRp
bWVGdW5jdGlvbihUaW1lUmVzdWx0cyAqcmVzdWx0cywgc3RkOjpmdW5jdGlvbjxib29sKCk+IGZ1
bmMpIHsKICAgLy8gdG90YWxfdXMgaXMgdGhlIHRvdGFsIGFtb3VudCBvZiB0aW1lIHRoYXQgd2Un
bGwgYWltIHRvIG1lYXN1cmUgYSBmdW5jdGlvbgpAQCAtMjczLDI2ICsyNzgsMTAxIEBAIHN0YXRp
YyBib29sIFNwZWVkUlNBS2V5R2VuKGNvbnN0IHN0ZDo6c3RyaW5nICZzZWxlY3RlZCkgewogICAg
ICAgICAgICAoc3RhdGljX2Nhc3Q8ZG91YmxlPihudW1fY2FsbHMpIC8gdXMpICogMTAwMDAwMCk7
CiAgICAgY29uc3Qgc2l6ZV90IG4gPSBkdXJhdGlvbnMuc2l6ZSgpOwogICAgIGFzc2VydChuID4g
MCk7CisKKyAgICAvLyB8bWlufCBhbmQgfG1heHwgbXVzdCBiZSBzdG9yZWQgaW4gdGVtcG9yYXJ5
IHZhcmlhYmxlcyB0byBhdm9pZCBhbiBNU1ZDCisgICAgLy8gYnVnIG9uIHg4Ni4gVGhlcmUsIHNp
emVfdCBpcyBhIHR5cGVkZWYgZm9yIHVuc2lnbmVkLCBidXQgTVNWQydzIHByaW50ZgorICAgIC8v
IHdhcm5pbmcgdHJpZXMgdG8gcmV0YWluIHRoZSBkaXN0aW5jdGlvbiBhbmQgc3VnZ2VzdCAlenUg
Zm9yIHNpemVfdAorICAgIC8vIGluc3RlYWQgb2YgJXUuIEl0IGdldHMgY29uZnVzZWQgaWYgc3Rk
Ojp2ZWN0b3I8dW5zaWduZWQ+IGFuZAorICAgIC8vIHN0ZDo6dmVjdG9yPHNpemVfdD4gYXJlIGJv
dGggaW5zdGFudGlhdGVkLiBCZWluZyB0eXBlZGVmcywgdGhlIHR3bworICAgIC8vIGluc3RhbnRp
YXRpb25zIGFyZSBpZGVudGljYWwsIHdoaWNoIHNvbWVob3cgYnJlYWtzIHRoZSBzaXplX3QgdnMg
dW5zaWduZWQKKyAgICAvLyBtZXRhZGF0YS4KKyAgICB1bnNpZ25lZCBtaW4gPSBkdXJhdGlvbnNb
MF07CiAgICAgdW5zaWduZWQgbWVkaWFuID0gbiAmIDEgPyBkdXJhdGlvbnNbbiAvIDJdCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOiAoZHVyYXRpb25zW24gLyAyIC0gMV0gKyBkdXJhdGlv
bnNbbiAvIDJdKSAvIDI7Ci0gICAgcHJpbnRmKCIgIG1pbjogJXV1cywgbWVkaWFuOiAldXVzLCBt
YXg6ICV1dXNcbiIsIGR1cmF0aW9uc1swXSwgbWVkaWFuLAotICAgICAgICAgICBkdXJhdGlvbnNb
biAtIDFdKTsKKyAgICB1bnNpZ25lZCBtYXggPSBkdXJhdGlvbnNbbiAtIDFdOworICAgIHByaW50
ZigiICBtaW46ICV1dXMsIG1lZGlhbjogJXV1cywgbWF4OiAldXVzXG4iLCBtaW4sIG1lZGlhbiwg
bWF4KTsKICAgfQogCiAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBTcGVlZFNJS0VQ
NDM0KGNvbnN0IHN0ZDo6c3RyaW5nICZzZWxlY3RlZCkgeworICBpZiAoIXNlbGVjdGVkLmVtcHR5
KCkgJiYgc2VsZWN0ZWQuZmluZCgiU0lLRSIpID09IHN0ZDo6c3RyaW5nOjpucG9zKSB7CisgICAg
cmV0dXJuIHRydWU7CisgIH0KKyAgLy8gc3BlZWQgZ2VuZXJhdGlvbgorICB1aW50OF90IHB1Ymxp
Y19TSUtFW1NJS0VfUFVCX0JZVEVTWl07CisgIHVpbnQ4X3QgcHJpdmF0ZV9TSUtFW1NJS0VfUFJW
X0JZVEVTWl07CisgIHVpbnQ4X3QgY3RbU0lLRV9DVF9CWVRFU1pdOworICBib29sIHJlczsKKwor
ICB7CisgICAgVGltZVJlc3VsdHMgcmVzdWx0czsKKyAgICByZXMgPSBUaW1lRnVuY3Rpb24oJnJl
c3VsdHMsCisgICAgICAgICAgICAgICAgWyZwcml2YXRlX1NJS0UsICZwdWJsaWNfU0lLRV0oKSAt
PiBib29sIHsKKyAgICAgIHJldHVybiAoU0lLRV9rZXlwYWlyKHByaXZhdGVfU0lLRSwgcHVibGlj
X1NJS0UpID09IDEpOworICAgIH0pOworICAgIHJlc3VsdHMuUHJpbnQoIlNJS0UvUDQzNCBnZW5l
cmF0ZSIpOworICB9CisKKyAgaWYgKCFyZXMpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxl
ZCB0byB0aW1lIFNJS0Vfa2V5cGFpci5cbiIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisg
IHsKKyAgICBUaW1lUmVzdWx0cyByZXN1bHRzOworICAgIFRpbWVGdW5jdGlvbigmcmVzdWx0cywK
KyAgICAgICAgICAgICAgICBbJmN0LCAmcHVibGljX1NJS0VdKCkgLT4gYm9vbCB7CisgICAgICB1
aW50OF90IHNzW1NJS0VfU1NfQllURVNaXTsKKyAgICAgIFNJS0VfZW5jYXBzKHNzLCBjdCwgcHVi
bGljX1NJS0UpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7CisgICAgcmVzdWx0cy5Qcmlu
dCgiU0lLRS9QNDM0IGVuY2FwIik7CisgIH0KKworICBpZiAoIXJlcykgeworICAgIGZwcmludGYo
c3RkZXJyLCAiRmFpbGVkIHRvIHRpbWUgU0lLRV9lbmNhcHMuXG4iKTsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKworICB7CisgICAgVGltZVJlc3VsdHMgcmVzdWx0czsKKyAgICBUaW1lRnVuY3Rp
b24oJnJlc3VsdHMsCisgICAgICAgICAgICAgICAgWyZjdCwgJnB1YmxpY19TSUtFLCAmcHJpdmF0
ZV9TSUtFXSgpIC0+IGJvb2wgeworICAgICAgdWludDhfdCBzc1tTSUtFX1NTX0JZVEVTWl07Cisg
ICAgICBTSUtFX2RlY2FwcyhzcywgY3QsIHB1YmxpY19TSUtFLCBwcml2YXRlX1NJS0UpOworICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfSk7CisgICAgcmVzdWx0cy5QcmludCgiU0lLRS9QNDM0IGRl
Y2FwIik7CisgIH0KKworICBpZiAoIXJlcykgeworICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVk
IHRvIHRpbWUgU0lLRV9kZWNhcHMuXG4iKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgcmV0
dXJuIHRydWU7Cit9CisKIHN0YXRpYyB1aW50OF90ICphbGlnbih1aW50OF90ICppbiwgdW5zaWdu
ZWQgYWxpZ25tZW50KSB7CiAgIHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oCiAg
ICAgICAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGluKSArIGFsaWdubWVudCkgJgogICAg
ICAgfnN0YXRpY19jYXN0PHNpemVfdD4oYWxpZ25tZW50IC0gMSkpOwogfQogCi1zdGF0aWMgYm9v
bCBTcGVlZEFFQURDaHVuayhjb25zdCBFVlBfQUVBRCAqYWVhZCwgY29uc3Qgc3RkOjpzdHJpbmcg
Jm5hbWUsCitzdGF0aWMgc3RkOjpzdHJpbmcgQ2h1bmtMZW5TdWZmaXgoc2l6ZV90IGNodW5rX2xl
bikgeworICBjaGFyIGJ1ZlszMl07CisgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIgKCV6
dSBieXRlJXMpIiwgY2h1bmtfbGVuLAorICAgICAgICAgICBjaHVua19sZW4gIT0gMSA/ICJzIiA6
ICIiKTsKKyAgcmV0dXJuIGJ1ZjsKK30KKworc3RhdGljIGJvb2wgU3BlZWRBRUFEQ2h1bmsoY29u
c3QgRVZQX0FFQUQgKmFlYWQsIHN0ZDo6c3RyaW5nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgY2h1bmtfbGVuLCBzaXplX3QgYWRfbGVuLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXZwX2FlYWRfZGlyZWN0aW9uX3QgZGlyZWN0aW9uKSB7CiAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBrQWxpZ25tZW50ID0gMTY7CiAKKyAgbmFtZSArPSBDaHVua0xlblN1ZmZp
eChjaHVua19sZW4pOwogICBic3NsOjpTY29wZWRFVlBfQUVBRF9DVFggY3R4OwogICBjb25zdCBz
aXplX3Qga2V5X2xlbiA9IEVWUF9BRUFEX2tleV9sZW5ndGgoYWVhZCk7CiAgIGNvbnN0IHNpemVf
dCBub25jZV9sZW4gPSBFVlBfQUVBRF9ub25jZV9sZW5ndGgoYWVhZCk7CkBAIC0zODksMTIgKzQ2
OSwxMiBAQCBzdGF0aWMgYm9vbCBTcGVlZEFFQUQoY29uc3QgRVZQX0FFQUQgKmFlYWQsIGNvbnN0
IHN0ZDo6c3RyaW5nICZuYW1lLAogICAgIHJldHVybiB0cnVlOwogICB9CiAKLSAgcmV0dXJuIFNw
ZWVkQUVBRENodW5rKGFlYWQsIG5hbWUgKyAiICgxNiBieXRlcykiLCAxNiwgYWRfbGVuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgZXZwX2FlYWRfc2VhbCkgJiYKLSAgICAgICAgIFNwZWVkQUVB
RENodW5rKGFlYWQsIG5hbWUgKyAiICgxMzUwIGJ5dGVzKSIsIDEzNTAsIGFkX2xlbiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGV2cF9hZWFkX3NlYWwpICYmCi0gICAgICAgICBTcGVlZEFFQURD
aHVuayhhZWFkLCBuYW1lICsgIiAoODE5MiBieXRlcykiLCA4MTkyLCBhZF9sZW4sCi0gICAgICAg
ICAgICAgICAgICAgICAgICBldnBfYWVhZF9zZWFsKTsKKyAgZm9yIChzaXplX3QgY2h1bmtfbGVu
IDogZ19jaHVua19sZW5ndGhzKSB7CisgICAgaWYgKCFTcGVlZEFFQURDaHVuayhhZWFkLCBuYW1l
LCBjaHVua19sZW4sIGFkX2xlbiwgZXZwX2FlYWRfc2VhbCkpIHsKKyAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIFNwZWVkQUVB
RE9wZW4oY29uc3QgRVZQX0FFQUQgKmFlYWQsIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLApAQCAt
NDAzLDIzICs0ODMsMjUgQEAgc3RhdGljIGJvb2wgU3BlZWRBRUFET3Blbihjb25zdCBFVlBfQUVB
RCAqYWVhZCwgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCiAgICAgcmV0dXJuIHRydWU7CiAgIH0K
IAotICByZXR1cm4gU3BlZWRBRUFEQ2h1bmsoYWVhZCwgbmFtZSArICIgKDE2IGJ5dGVzKSIsIDE2
LCBhZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBldnBfYWVhZF9vcGVuKSAmJgotICAg
ICAgICAgU3BlZWRBRUFEQ2h1bmsoYWVhZCwgbmFtZSArICIgKDEzNTAgYnl0ZXMpIiwgMTM1MCwg
YWRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgZXZwX2FlYWRfb3BlbikgJiYKLSAgICAg
ICAgIFNwZWVkQUVBRENodW5rKGFlYWQsIG5hbWUgKyAiICg4MTkyIGJ5dGVzKSIsIDgxOTIsIGFk
X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGV2cF9hZWFkX29wZW4pOworICBmb3IgKHNp
emVfdCBjaHVua19sZW4gOiBnX2NodW5rX2xlbmd0aHMpIHsKKyAgICBpZiAoIVNwZWVkQUVBRENo
dW5rKGFlYWQsIG5hbWUsIGNodW5rX2xlbiwgYWRfbGVuLCBldnBfYWVhZF9vcGVuKSkgeworICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorCisgIHJldHVybiB0cnVlOwogfQogCi1zdGF0
aWMgYm9vbCBTcGVlZEhhc2hDaHVuayhjb25zdCBFVlBfTUQgKm1kLCBjb25zdCBzdGQ6OnN0cmlu
ZyAmbmFtZSwKK3N0YXRpYyBib29sIFNwZWVkSGFzaENodW5rKGNvbnN0IEVWUF9NRCAqbWQsIHN0
ZDo6c3RyaW5nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY2h1bmtf
bGVuKSB7CiAgIGJzc2w6OlNjb3BlZEVWUF9NRF9DVFggY3R4OwotICB1aW50OF90IHNjcmF0Y2hb
ODE5Ml07CisgIHVpbnQ4X3Qgc2NyYXRjaFsxNjM4NF07CiAKICAgaWYgKGNodW5rX2xlbiA+IHNp
emVvZihzY3JhdGNoKSkgewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCisgIG5hbWUgKz0gQ2h1
bmtMZW5TdWZmaXgoY2h1bmtfbGVuKTsKICAgVGltZVJlc3VsdHMgcmVzdWx0czsKICAgaWYgKCFU
aW1lRnVuY3Rpb24oJnJlc3VsdHMsIFsmY3R4LCBtZCwgY2h1bmtfbGVuLCAmc2NyYXRjaF0oKSAt
PiBib29sIHsKICAgICAgICAgdWludDhfdCBkaWdlc3RbRVZQX01BWF9NRF9TSVpFXTsKQEAgLTQz
NywyNCArNTE5LDMwIEBAIHN0YXRpYyBib29sIFNwZWVkSGFzaENodW5rKGNvbnN0IEVWUF9NRCAq
bWQsIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAogICByZXN1bHRzLlByaW50V2l0aEJ5dGVzKG5h
bWUsIGNodW5rX2xlbik7CiAgIHJldHVybiB0cnVlOwogfQorCiBzdGF0aWMgYm9vbCBTcGVlZEhh
c2goY29uc3QgRVZQX01EICptZCwgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnNlbGVjdGVkKSB7CiAgIGlmICghc2VsZWN0
ZWQuZW1wdHkoKSAmJiBuYW1lLmZpbmQoc2VsZWN0ZWQpID09IHN0ZDo6c3RyaW5nOjpucG9zKSB7
CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIAotICByZXR1cm4gU3BlZWRIYXNoQ2h1bmsobWQsIG5h
bWUgKyAiICgxNiBieXRlcykiLCAxNikgJiYKLSAgICAgICAgIFNwZWVkSGFzaENodW5rKG1kLCBu
YW1lICsgIiAoMjU2IGJ5dGVzKSIsIDI1NikgJiYKLSAgICAgICAgIFNwZWVkSGFzaENodW5rKG1k
LCBuYW1lICsgIiAoODE5MiBieXRlcykiLCA4MTkyKTsKKyAgZm9yIChzaXplX3QgY2h1bmtfbGVu
IDogZ19jaHVua19sZW5ndGhzKSB7CisgICAgaWYgKCFTcGVlZEhhc2hDaHVuayhtZCwgbmFtZSwg
Y2h1bmtfbGVuKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorCisgIHJldHVy
biB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBTcGVlZFJhbmRvbUNodW5rKGNvbnN0IHN0ZDo6c3Ry
aW5nICZuYW1lLCBzaXplX3QgY2h1bmtfbGVuKSB7Ci0gIHVpbnQ4X3Qgc2NyYXRjaFs4MTkyXTsK
K3N0YXRpYyBib29sIFNwZWVkUmFuZG9tQ2h1bmsoc3RkOjpzdHJpbmcgbmFtZSwgc2l6ZV90IGNo
dW5rX2xlbikgeworICB1aW50OF90IHNjcmF0Y2hbMTYzODRdOwogCiAgIGlmIChjaHVua19sZW4g
PiBzaXplb2Yoc2NyYXRjaCkpIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAorICBuYW1lICs9
IENodW5rTGVuU3VmZml4KGNodW5rX2xlbik7CiAgIFRpbWVSZXN1bHRzIHJlc3VsdHM7CiAgIGlm
ICghVGltZUZ1bmN0aW9uKCZyZXN1bHRzLCBbY2h1bmtfbGVuLCAmc2NyYXRjaF0oKSAtPiBib29s
IHsKICAgICAgICAgUkFORF9ieXRlcyhzY3JhdGNoLCBjaHVua19sZW4pOwpAQCAtNDcyLDkgKzU2
MCwxMyBAQCBzdGF0aWMgYm9vbCBTcGVlZFJhbmRvbShjb25zdCBzdGQ6OnN0cmluZyAmc2VsZWN0
ZWQpIHsKICAgICByZXR1cm4gdHJ1ZTsKICAgfQogCi0gIHJldHVybiBTcGVlZFJhbmRvbUNodW5r
KCJSTkcgKDE2IGJ5dGVzKSIsIDE2KSAmJgotICAgICAgICAgU3BlZWRSYW5kb21DaHVuaygiUk5H
ICgyNTYgYnl0ZXMpIiwgMjU2KSAmJgotICAgICAgICAgU3BlZWRSYW5kb21DaHVuaygiUk5HICg4
MTkyIGJ5dGVzKSIsIDgxOTIpOworICBmb3IgKHNpemVfdCBjaHVua19sZW4gOiBnX2NodW5rX2xl
bmd0aHMpIHsKKyAgICBpZiAoIVNwZWVkUmFuZG9tQ2h1bmsoIlJORyIsIGNodW5rX2xlbikpIHsK
KyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKworICByZXR1cm4gdHJ1ZTsKIH0KIAog
c3RhdGljIGJvb2wgU3BlZWRFQ0RIQ3VydmUoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsIGludCBu
aWQsCkBAIC03NDQsMTcgKzgzNiw4MiBAQCBzdGF0aWMgYm9vbCBTcGVlZFNjcnlwdChjb25zdCBz
dGQ6OnN0cmluZyAmc2VsZWN0ZWQpIHsKICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29s
IFNwZWVkSFJTUyhjb25zdCBzdGQ6OnN0cmluZyAmc2VsZWN0ZWQpIHsKKyAgaWYgKCFzZWxlY3Rl
ZC5lbXB0eSgpICYmIHNlbGVjdGVkICE9ICJIUlNTIikgeworICAgIHJldHVybiB0cnVlOworICB9
CisKKyAgVGltZVJlc3VsdHMgcmVzdWx0czsKKworICBpZiAoIVRpbWVGdW5jdGlvbigmcmVzdWx0
cywgW10oKSAtPiBib29sIHsKKyAgICBzdHJ1Y3QgSFJTU19wdWJsaWNfa2V5IHB1YjsKKyAgICBz
dHJ1Y3QgSFJTU19wcml2YXRlX2tleSBwcml2OworICAgIHVpbnQ4X3QgZW50cm9weVtIUlNTX0dF
TkVSQVRFX0tFWV9CWVRFU107CisgICAgUkFORF9ieXRlcyhlbnRyb3B5LCBzaXplb2YoZW50cm9w
eSkpOworICAgIEhSU1NfZ2VuZXJhdGVfa2V5KCZwdWIsICZwcml2LCBlbnRyb3B5KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKKyAgfSkpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byB0aW1l
IEhSU1NfZ2VuZXJhdGVfa2V5LlxuIik7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcmVz
dWx0cy5QcmludCgiSFJTUyBnZW5lcmF0ZSIpOworCisgIHN0cnVjdCBIUlNTX3B1YmxpY19rZXkg
cHViOworICBzdHJ1Y3QgSFJTU19wcml2YXRlX2tleSBwcml2OworICB1aW50OF90IGtleV9lbnRy
b3B5W0hSU1NfR0VORVJBVEVfS0VZX0JZVEVTXTsKKyAgUkFORF9ieXRlcyhrZXlfZW50cm9weSwg
c2l6ZW9mKGtleV9lbnRyb3B5KSk7CisgIEhSU1NfZ2VuZXJhdGVfa2V5KCZwdWIsICZwcml2LCBr
ZXlfZW50cm9weSk7CisKKyAgdWludDhfdCBjaXBoZXJ0ZXh0W0hSU1NfQ0lQSEVSVEVYVF9CWVRF
U107CisgIGlmICghVGltZUZ1bmN0aW9uKCZyZXN1bHRzLCBbJnB1YiwgJmNpcGhlcnRleHRdKCkg
LT4gYm9vbCB7CisgICAgdWludDhfdCBlbnRyb3B5W0hSU1NfRU5DQVBfQllURVNdOworICAgIHVp
bnQ4X3Qgc2hhcmVkX2tleVtIUlNTX0tFWV9CWVRFU107CisgICAgUkFORF9ieXRlcyhlbnRyb3B5
LCBzaXplb2YoZW50cm9weSkpOworICAgIEhSU1NfZW5jYXAoY2lwaGVydGV4dCwgc2hhcmVkX2tl
eSwgJnB1YiwgZW50cm9weSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0pKSB7CisgICAgZnByaW50
ZihzdGRlcnIsICJGYWlsZWQgdG8gdGltZSBIUlNTX2VuY2FwLlxuIik7CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisKKyAgcmVzdWx0cy5QcmludCgiSFJTUyBlbmNhcCIpOworCisgIGlmICghVGlt
ZUZ1bmN0aW9uKCZyZXN1bHRzLCBbJnByaXYsICZjaXBoZXJ0ZXh0XSgpIC0+IGJvb2wgeworICAg
IHVpbnQ4X3Qgc2hhcmVkX2tleVtIUlNTX0tFWV9CWVRFU107CisgICAgSFJTU19kZWNhcChzaGFy
ZWRfa2V5LCAmcHJpdiwgY2lwaGVydGV4dCwgc2l6ZW9mKGNpcGhlcnRleHQpKTsKKyAgICByZXR1
cm4gdHJ1ZTsKKyAgfSkpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byB0aW1lIEhS
U1NfZW5jYXAuXG4iKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICByZXN1bHRzLlByaW50
KCJIUlNTIGRlY2FwIik7CisKKyAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1
Y3QgYXJndW1lbnQga0FyZ3VtZW50c1tdID0gewogICAgIHsKLSAgICAgIi1maWx0ZXIiLCBrT3B0
aW9uYWxBcmd1bWVudCwKLSAgICAgIkEgZmlsdGVyIG9uIHRoZSBzcGVlZCB0ZXN0cyB0byBydW4i
LAorICAgICAgICAiLWZpbHRlciIsCisgICAgICAgIGtPcHRpb25hbEFyZ3VtZW50LAorICAgICAg
ICAiQSBmaWx0ZXIgb24gdGhlIHNwZWVkIHRlc3RzIHRvIHJ1biIsCiAgICAgfSwKICAgICB7Ci0g
ICAgICItdGltZW91dCIsIGtPcHRpb25hbEFyZ3VtZW50LAotICAgICAiVGhlIG51bWJlciBvZiBz
ZWNvbmRzIHRvIHJ1biBlYWNoIHRlc3QgZm9yIChkZWZhdWx0IGlzIDEpIiwKKyAgICAgICAgIi10
aW1lb3V0IiwKKyAgICAgICAga09wdGlvbmFsQXJndW1lbnQsCisgICAgICAgICJUaGUgbnVtYmVy
IG9mIHNlY29uZHMgdG8gcnVuIGVhY2ggdGVzdCBmb3IgKGRlZmF1bHQgaXMgMSkiLAogICAgIH0s
CiAgICAgewotICAgICAiIiwga09wdGlvbmFsQXJndW1lbnQsICIiLAorICAgICAgICAiLWNodW5r
cyIsCisgICAgICAgIGtPcHRpb25hbEFyZ3VtZW50LAorICAgICAgICAiQSBjb21tYS1zZXBhcmF0
ZWQgbGlzdCBvZiBpbnB1dCBzaXplcyB0byBydW4gdGVzdHMgYXQgKGRlZmF1bHQgaXMgIgorICAg
ICAgICAiMTYsMjU2LDEzNTAsODE5MiwxNjM4NCkiLAorICAgIH0sCisgICAgeworICAgICAgICAi
IiwKKyAgICAgICAga09wdGlvbmFsQXJndW1lbnQsCisgICAgICAgICIiLAogICAgIH0sCiB9Owog
CkBAIC03NzQsNiArOTMxLDMyIEBAIGJvb2wgU3BlZWQoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpz
dHJpbmc+ICZhcmdzKSB7CiAgICAgZ190aW1lb3V0X3NlY29uZHMgPSBhdG9pKGFyZ3NfbWFwWyIt
dGltZW91dCJdLmNfc3RyKCkpOwogICB9CiAKKyAgaWYgKGFyZ3NfbWFwLmNvdW50KCItY2h1bmtz
IikgIT0gMCkgeworICAgIGdfY2h1bmtfbGVuZ3Rocy5jbGVhcigpOworICAgIGNvbnN0IGNoYXIg
KnN0YXJ0ID0gYXJnc19tYXBbIi1jaHVua3MiXS5kYXRhKCk7CisgICAgY29uc3QgY2hhciAqZW5k
ID0gc3RhcnQgKyBhcmdzX21hcFsiLWNodW5rcyJdLnNpemUoKTsKKyAgICB3aGlsZSAoc3RhcnQg
IT0gZW5kKSB7CisgICAgICBlcnJubyA9IDA7CisgICAgICBjaGFyICpwdHI7CisgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgdmFsID0gc3RydG91bGwoc3RhcnQsICZwdHIsIDEwKTsKKyAgICAgIGlm
IChwdHIgPT0gc3RhcnQgLyogbm8gbnVtZXJpYyBjaGFyYWN0ZXJzIGZvdW5kICovIHx8CisgICAg
ICAgICAgZXJybm8gPT0gRVJBTkdFIC8qIG92ZXJmbG93ICovIHx8CisgICAgICAgICAgc3RhdGlj
X2Nhc3Q8c2l6ZV90Pih2YWwpICE9IHZhbCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVy
cm9yIHBhcnNpbmcgLWNodW5rcyBhcmd1bWVudFxuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgIH0KKyAgICAgIGdfY2h1bmtfbGVuZ3Rocy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8c2l6
ZV90Pih2YWwpKTsKKyAgICAgIHN0YXJ0ID0gcHRyOworICAgICAgaWYgKHN0YXJ0ICE9IGVuZCkg
eworICAgICAgICBpZiAoKnN0YXJ0ICE9ICcsJykgeworICAgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiRXJyb3IgcGFyc2luZyAtY2h1bmtzIGFyZ3VtZW50XG4iKTsKKyAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgc3RhcnQrKzsKKyAgICAgIH0KKyAgICB9CisgIH0K
KwogICAvLyBrVExTQURMZW4gaXMgdGhlIG51bWJlciBvZiBieXRlcyBvZiBhZGRpdGlvbmFsIGRh
dGEgdGhhdCBUTFMgcGFzc2VzIHRvCiAgIC8vIEFFQURzLgogICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGtUTFNBRExlbiA9IDEzOwpAQCAtODE1LDkgKzk5OCwxMSBAQCBib29sIFNwZWVkKGNvbnN0IHN0
ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmYXJncykgewogICAgICAgIVNwZWVkRUNESChzZWxlY3Rl
ZCkgfHwKICAgICAgICFTcGVlZEVDRFNBKHNlbGVjdGVkKSB8fAogICAgICAgIVNwZWVkMjU1MTko
c2VsZWN0ZWQpIHx8CisgICAgICAhU3BlZWRTSUtFUDQzNChzZWxlY3RlZCkgfHwKICAgICAgICFT
cGVlZFNQQUtFMihzZWxlY3RlZCkgfHwKICAgICAgICFTcGVlZFNjcnlwdChzZWxlY3RlZCkgfHwK
LSAgICAgICFTcGVlZFJTQUtleUdlbihzZWxlY3RlZCkpIHsKKyAgICAgICFTcGVlZFJTQUtleUdl
bihzZWxlY3RlZCkgfHwKKyAgICAgICFTcGVlZEhSU1Moc2VsZWN0ZWQpKSB7CiAgICAgcmV0dXJu
IGZhbHNlOwogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy90b29sL3RyYW5zcG9ydF9jb21tb24uY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdG9vbC90cmFuc3BvcnRfY29tbW9uLmNjCmluZGV4IDhjYzYzZDdkM2JjNDI1NGU4MTU4
ZTI4MDlhOTM3MDAyYmQzNGZkZTMuLmQwNGNiN2QwM2FhZDgxODkzNWUyNThiN2I3NDc5NWYyMDU3
MWQ3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90b29sL3RyYW5zcG9ydF9jb21tb24uY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3Rvb2wvdHJhbnNwb3J0X2NvbW1vbi5jYwpAQCAtNjYxLDcgKzY2MSw4IEBAIHZvaWQgUHJpbnRT
U0xFcnJvcihGSUxFICpmaWxlLCBjb25zdCBjaGFyICptc2csIGludCBzc2xfZXJyLCBpbnQgcmV0
KSB7CiAgICAgICBmcHJpbnRmKGZpbGUsICIlczogcmVjZWl2ZWQgY2xvc2Vfbm90aWZ5XG4iLCBt
c2cpOwogICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKLSAgICAgIGZwcmludGYoZmlsZSwgIiVz
OiB1bmtub3duIGVycm9yIHR5cGUgKCVkKVxuIiwgbXNnLCBzc2xfZXJyKTsKKyAgICAgIGZwcmlu
dGYoZmlsZSwgIiVzOiB1bmV4cGVjdGVkIGVycm9yOiAlc1xuIiwgbXNnLAorICAgICAgICAgICAg
ICBTU0xfZXJyb3JfZGVzY3JpcHRpb24oc3NsX2VycikpOwogICB9CiAgIEVSUl9wcmludF9lcnJv
cnNfZnAoZmlsZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9hbGxfdGVzdHMuZ28gYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dXRpbC9hbGxfdGVzdHMuZ28KaW5kZXggNTVlMTkyMTNlNTJhMzc3NTU1N2JlYjU0OTRlNmFlMjk2
YzAwZTE1NC4uZmJmZjQ4YzI5NGNhMmYwODZiMDc1YzViYzA4OTAzNTEyYjhmMDQ0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvYWxsX3Rlc3RzLmdvCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2FsbF90ZXN0cy5nbwpA
QCAtMTQ2LDkgKzE0NiwxNCBAQCB2YXIgKAogCiBmdW5jIHJ1blRlc3RPbmNlKHRlc3QgdGVzdCwg
bWFsbG9jTnVtVG9GYWlsIGludDY0KSAocGFzc2VkIGJvb2wsIGVyciBlcnJvcikgewogCXByb2cg
Oj0gcGF0aC5Kb2luKCpidWlsZERpciwgdGVzdC5hcmdzWzBdKQotCWFyZ3MgOj0gdGVzdC5hcmdz
WzE6XQorCWFyZ3MgOj0gYXBwZW5kKFtdc3RyaW5ne30sIHRlc3QuYXJnc1sxOl0uLi4pCiAJaWYg
KnNpbXVsYXRlQVJNQ1BVcyAmJiB0ZXN0LmNwdSAhPSAiIiB7Ci0JCWFyZ3MgPSBhcHBlbmQoW11z
dHJpbmd7Ii0tY3B1PSIgKyB0ZXN0LmNwdX0sIGFyZ3MuLi4pCisJCWFyZ3MgPSBhcHBlbmQoYXJn
cywgIi0tY3B1PSIgKyB0ZXN0LmNwdSkKKwl9CisJaWYgKnVzZVNERSB7CisJCS8vIFNERSBpcyBu
ZWl0aGVyIGNvbXBhdGlibGUgd2l0aCB0aGUgdW53aW5kIHRlc3RlciBub3IgYXV0b21hdGljYWxs
eQorCQkvLyBkZXRlY3RlZC4KKwkJYXJncyA9IGFwcGVuZChhcmdzLCAiLS1ub191bndpbmRfdGVz
dHMiKQogCX0KIAl2YXIgY21kICpleGVjLkNtZAogCWlmICp1c2VWYWxncmluZCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdXRpbC9ib3QvREVQUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2JvdC9ERVBTCmluZGV4IDU0NDlhYjBk
YTI4NzY2YWRmYjI1ZmE2ODQ2MWM2NDQ3ZGEyNDIxOTIuLjc2MGYyZTQyNWU4NWFkOTQ1MmU0Mzg2
YzE1Y2U0ZjEzNTZiZjQ1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2JvdC9ERVBTCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy91dGlsL2JvdC9ERVBTCkBAIC0xOSw2ICsxOSw4IEBAIHZhcnMgPSB7CiAgICdjaGVja291dF9z
ZGUnOiBGYWxzZSwKICAgJ2NoZWNrb3V0X25hc20nOiBGYWxzZSwKICAgJ2NoZWNrb3V0X2xpYmN4
eCc6IEZhbHNlLAorCisgICdhbmRyb2lkX3Nka19wbGF0Zm9ybS10b29sc192ZXJzaW9uJzogJ01T
bnhnWE43SXVyTC1NUXMxUnJUa1NGU2I4WGQxVXRaakxBckk4VHkxRmdDJywKIH0KIAogZGVwcyA9
IHsKQEAgLTI3LDIyICsyOSwzMyBAQCBkZXBzID0gewogICAgICdjb25kaXRpb24nOiAnY2hlY2tv
dXRfYW5kcm9pZCcsCiAgIH0sCiAKLSAgJ2JvcmluZ3NzbC91dGlsL2JvdC9hbmRyb2lkX3Rvb2xz
JzogewotICAgICd1cmwnOiBWYXIoJ2Nocm9taXVtX2dpdCcpICsgJy9hbmRyb2lkX3Rvb2xzLmdp
dCcgKyAnQCcgKyAnMTMwNDk5ZTI1Mjg2ZjRkNTZhY2FmYTI1MmZlZTA5ZjNjYzU5NWM0OScsCi0g
ICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9hbmRyb2lkJywKKyAgJ2JvcmluZ3NzbC91dGlsL2Jv
dC9hbmRyb2lkX3Nkay9wdWJsaWMnOiB7CisgICAgICAncGFja2FnZXMnOiBbCisgICAgICAgICAg
eworICAgICAgICAgICAgICAncGFja2FnZSc6ICdjaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmRyb2lk
X3Nkay9wdWJsaWMvcGxhdGZvcm0tdG9vbHMnLAorICAgICAgICAgICAgICAndmVyc2lvbic6IFZh
cignYW5kcm9pZF9zZGtfcGxhdGZvcm0tdG9vbHNfdmVyc2lvbicpLAorICAgICAgICAgIH0sCisg
ICAgICBdLAorICAgICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9hbmRyb2lkJywKKyAgICAgICdk
ZXBfdHlwZSc6ICdjaXBkJywKICAgfSwKIAogICAnYm9yaW5nc3NsL3V0aWwvYm90L2d5cCc6CiAg
ICAgVmFyKCdjaHJvbWl1bV9naXQnKSArICcvZXh0ZXJuYWwvZ3lwLmdpdCcgKyAnQCcgKyAnZDYx
YTkzOTdlNjY4ZmE5ODQzYzRhYTdkYTllNzk0NjBmZTU5MGJmYicsCiAKKyAgJ2JvcmluZ3NzbC91
dGlsL2JvdC9saWJGdXp6ZXInOiB7CisgICAgJ3VybCc6IFZhcignY2hyb21pdW1fZ2l0JykgKyAn
L2Nocm9taXVtL2xsdm0tcHJvamVjdC9jb21waWxlci1ydC9saWIvZnV6emVyLmdpdCcgKydAJyAr
ICdlOWI5NWJjZmUyZjU0NzJmYWMyZTUxNmEwMDQwYWVkZjIxNDBkZDYyJywKKyAgICAnY29uZGl0
aW9uJzogJ2NoZWNrb3V0X2Z1enplcicsCisgIH0sCisKICAgIyBVcGRhdGUgdGhlIGZvbGxvd2lu
ZyByZXZpc2lvbnMgZnJvbQotICAjIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9j
aHJvbWl1bS9idWlsZHRvb2xzLysvbWFzdGVyL0RFUFMKKyAgIyBodHRwczovL2Nocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvbWFzdGVyL2J1aWxkdG9vbHMvREVQUwogICAn
Ym9yaW5nc3NsL3V0aWwvYm90L2xpYmN4eCc6IHsKLSAgICAndXJsJzogVmFyKCdjaHJvbWl1bV9n
aXQnKSArICcvY2hyb21pdW0vbGx2bS1wcm9qZWN0L2xpYmN4eC5naXQnICsgJ0AnICsgJzg1YTc3
MDJiNGNjNWQ2OTQwMjc5MWZlNjg1ZjE1MWNmMzA3NmJlNzEnLAorICAgICd1cmwnOiBWYXIoJ2No
cm9taXVtX2dpdCcpICsgJy9jaHJvbWl1bS9sbHZtLXByb2plY3QvbGliY3h4LmdpdCcgKyAnQCcg
KyAnNTkzOGUwNTgyYmFjNTcwYTQxZWRiM2Q2YTIyMTdjMjk5YWRjMWJjNicsCiAgICAgJ2NvbmRp
dGlvbic6ICdjaGVja291dF9saWJjeHgnLAogICB9LAogICAnYm9yaW5nc3NsL3V0aWwvYm90L2xp
YmN4eGFiaSc6IHsKLSAgICAndXJsJzogVmFyKCdjaHJvbWl1bV9naXQnKSArICcvY2hyb21pdW0v
bGx2bS1wcm9qZWN0L2xpYmN4eGFiaS5naXQnICsgJ0AnICsgJzA1YTczOTQxZjNmYjE3N2M0YTg5
MWQ0ZmYyYTRlZDU3ODVlM2I4MGMnLAorICAgICd1cmwnOiBWYXIoJ2Nocm9taXVtX2dpdCcpICsg
Jy9jaHJvbWl1bS9sbHZtLXByb2plY3QvbGliY3h4YWJpLmdpdCcgKyAnQCcgKyAnMGQ1Mjk2NjBl
MzJkNzdkOTExMTkxMmQ3M2YyYzc0ZmM1ZmEyYTg1OCcsCiAgICAgJ2NvbmRpdGlvbic6ICdjaGVj
a291dF9saWJjeHgnLAogICB9LAogfQpAQCAtMjAzLDQgKzIxNiwyNCBAQCBob29rcyA9IFsKICAg
ICAgICAgICAgICAgICAnYm9yaW5nc3NsL3V0aWwvYm90L3NkZS1saW51eDY0LycsCiAgICAgXSwK
ICAgfSwKKyAgeworICAgICduYW1lJzogJ3NkZV93aW4zMicsCisgICAgJ3BhdHRlcm4nOiAnLics
CisgICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9zZGUgYW5kIGhvc3Rfb3MgPT0gIndpbiInLAor
ICAgICdhY3Rpb24nOiBbICdkb3dubG9hZF9mcm9tX2dvb2dsZV9zdG9yYWdlJywKKyAgICAgICAg
ICAgICAgICAnLS1ub19yZXN1bWUnLAorICAgICAgICAgICAgICAgICctLWJ1Y2tldCcsICdjaHJv
bWUtYm9yaW5nc3NsLXNkZScsCisgICAgICAgICAgICAgICAgJy1zJywgJ2JvcmluZ3NzbC91dGls
L2JvdC9zZGUtd2luMzIudGFyLmJ6Mi5zaGExJworICAgIF0sCisgIH0sCisgIHsKKyAgICAnbmFt
ZSc6ICdzZGVfd2luMzJfZXh0cmFjdCcsCisgICAgJ3BhdHRlcm4nOiAnLicsCisgICAgJ2NvbmRp
dGlvbic6ICdjaGVja291dF9zZGUgYW5kIGhvc3Rfb3MgPT0gIndpbiInLAorICAgICdhY3Rpb24n
OiBbICdweXRob24nLAorICAgICAgICAgICAgICAgICdib3Jpbmdzc2wvdXRpbC9ib3QvZXh0cmFj
dC5weScsCisgICAgICAgICAgICAgICAgJ2JvcmluZ3NzbC91dGlsL2JvdC9zZGUtd2luMzIudGFy
LmJ6MicsCisgICAgICAgICAgICAgICAgJ2JvcmluZ3NzbC91dGlsL2JvdC9zZGUtd2luMzIvJywK
KyAgICBdLAorICB9LAogXQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvYm90L1VQREFUSU5HIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3V0aWwvYm90L1VQREFUSU5HCmluZGV4IDY3OTQ5ZjAxYjNiYzMwNGY0OWZkZTAwMmVlNzYzYTEw
ZWFlNTUyZjQuLjBlNGY0OTM1MmYyMWU4OWVlMTgyMjQxZGQxNzZkZjc5ZmVmYzMzZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy91dGlsL2JvdC9VUERBVElORworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9ib3QvVVBEQVRJTkcK
QEAgLTcyLDEzICs3MiwxMyBAQCB5YXNtLXdpbjMyLmV4ZTogVXBkYXRlIHRvIHRoZSBhcHByb3By
aWF0ZSByZWxlYXNlIG9mIFlhc20uIFVzZSB0aGUgc2FtZSB2ZXJzaW9uCiAKICAgICBUaGUgY3Vy
cmVudCByZXZpc2lvbiBpcyB5YXNtLTEuMy4wLXdpbjMyLmV4ZS4KIAotRmluYWxseSwgdXBkYXRl
IHNkZS1saW51eDY0LnRhci5iejIgYnkgZG93bmxvYWRpbmcgdGhlIGxhdGV0IHJlbGVhc2UgZnJv
bSBpbnRlbAotYXQKK0ZpbmFsbHksIHVwZGF0ZSBzZGUtbGludXg2NC50YXIuYnoyIGFuZCBzZGUt
d2luMzIudGFyLmJ6MiBieSBkb3dubG9hZGluZyB0aGUKK2xhdGV0IHJlbGVhc2UgZnJvbSBJbnRl
bCBhdAogaHR0cHM6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vZW4tdXMvYXJ0aWNsZXMvaW50ZWwtc29m
dHdhcmUtZGV2ZWxvcG1lbnQtZW11bGF0b3IsCiBidXQgdXBsb2FkIGl0IHdpdGggdGhlIGZvbGxv
d2luZyBjb21tYW5kLiAoTm90ZSB0aGUgYnVja2V0IGlzIGRpZmZlcmVudC4pCiAKLSAgICB1cGxv
YWRfdG9fZ29vZ2xlX3N0b3JhZ2UucHkgLWIgY2hyb21lLWJvcmluZ3NzbC1zZGUgc2RlLWxpbnV4
NjQudGFyLmJ6MgorICAgIHVwbG9hZF90b19nb29nbGVfc3RvcmFnZS5weSAtYiBjaHJvbWUtYm9y
aW5nc3NsLXNkZSBzZGUtbGludXg2NC50YXIuYnoyIHNkZS13aW4zMi50YXIuYnoyCiAKLVRoZSBj
dXJyZW50IHJldmlzaW9uIGlzIHNkZS1leHRlcm5hbC04LjkuMC0yMDE3LTA4LTA2LWxpbi50YXIu
YnoyLgorVGhlIGN1cnJlbnQgcmV2aXNpb24gaXMgc2RlLWV4dGVybmFsLTguMzUuMC0yMDE5LTAz
LTExLSoudGFyLmJ6Mi4KIAogV2hlbiBhZGRpbmcgbmV3IGZpbGVzLCByZW1lbWJlciB0byB1cGRh
dGUgLmdpdGlnbm9yZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2JvdC9nby9ib290c3RyYXAucHkg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdXRpbC9ib3QvZ28vYm9vdHN0cmFwLnB5CmluZGV4IDlkYmFiZTUyY2Y0MDA3OTRiYmRj
MDliMjdkNThhYzcyYjQwNjFkZTEuLjFlOTdlY2YzZTYwNWRjODFiOGI4YTE1ZWM1MWZiNjExMjg3
MGE1NGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2JvdC9nby9ib290c3RyYXAucHkKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3Jj
L3V0aWwvYm90L2dvL2Jvb3RzdHJhcC5weQpAQCAtNDUsNyArNDUsNyBAQCBXT1JLU1BBQ0UgPSBv
cy5wYXRoLmpvaW4oUk9PVCwgJ2dvJykKIEVYRV9TRlggPSAnLmV4ZScgaWYgc3lzLnBsYXRmb3Jt
ID09ICd3aW4zMicgZWxzZSAnJwogCiAjIFBpbm5lZCB2ZXJzaW9uIG9mIEdvIHRvb2xzZXQgdG8g
ZG93bmxvYWQuCi1UT09MU0VUX1ZFUlNJT04gPSAnZ28xLjExJworVE9PTFNFVF9WRVJTSU9OID0g
J2dvMS4xMi42JwogCiAjIFBsYXRmb3JtIGRlcGVuZGVudCBwb3J0aW9uIG9mIGEgZG93bmxvYWQg
VVJMLiBTZWUgaHR0cDovL2dvbGFuZy5vcmcvZGwvLgogVE9PTFNFVF9WQVJJQU5UUyA9IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy91dGlsL2JvdC9zZGUtbGludXg2NC50YXIuYnoyLnNoYTEgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRp
bC9ib3Qvc2RlLWxpbnV4NjQudGFyLmJ6Mi5zaGExCmluZGV4IGNiMzVjZjg1MjE4YmI5ZDIwNjYx
NjBmZWE0MDlkYjY1MmU4OTVhZjAuLjYwMzdkZjVhNjY2NzcyYzQyODMzNWM4ZjNlMmFkNGE2MGNm
ODZhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2JvdC9zZGUtbGludXg2NC50YXIuYnoyLnNoYTEK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvYm90L3NkZS1saW51eDY0LnRhci5iejIuc2hhMQpAQCAtMSArMSBAQAot
ZGNmMDBlYmRlZjQ4MTBmZmQ0Y2UwYzg2MzZkY2Y5OWQ1YWQ3NjBjOQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKKzI1NTgxZmNmM2ExNGQ0Y2E3MDE0OWM2MTg2MTExNjAzZjcyNWZiMjYKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9ib3Qvc2RlLXdp
bjMyLnRhci5iejIuc2hhMSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2JvdC9zZGUtd2luMzIudGFyLmJ6Mi5zaGExCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA4MzdiMDgwNWM0MzgyZjFlOWVjMDA0YzI5MDY2ODViZDZhMWM1ODEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9ib3Qvc2RlLXdpbjMyLnRhci5iejIuc2hhMQpAQCAtMCww
ICsxIEBACitkMDgyNDdlMWI3ZDk4MzdmNzVmZmJmYTNmNDRlOWI4ZjQ0ZWI5MGJhClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvYm90L3VwZGF0ZV9jbGFu
Zy5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy91dGlsL2JvdC91cGRhdGVfY2xhbmcucHkKaW5kZXggMGE5MTE4OTUzMjY0MmFi
NjIyNmUyYWEyZGNmMzkxZDBlMzM2YjQxMy4uMjk2NWYyMjYxYjkwODE0ODI3OTYzYzEwYWIzMDQ3
MTE0N2MyMzRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvYm90L3VwZGF0ZV9jbGFuZy5weQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdXRpbC9ib3QvdXBkYXRlX2NsYW5nLnB5CkBAIC0xOSwxMCArMTksMTIgQEAgaW1wb3J0
IHVybGxpYjIKICMgQ0xBTkdfUkVWSVNJT04gYW5kIENMQU5HX1NVQl9SRVZJU0lPTiBkZXRlcm1p
bmUgdGhlIGJ1aWxkIG9mIGNsYW5nCiAjIHRvIHVzZS4gVGhlc2Ugc2hvdWxkIGJlIHN5bmNlZCB3
aXRoIHRvb2xzL2NsYW5nL3NjcmlwdHMvdXBkYXRlLnB5IGluCiAjIENocm9taXVtLgotQ0xBTkdf
UkVWSVNJT04gPSAnMzM3NDM5JwotQ0xBTkdfU1VCX1JFVklTSU9OPTEKK0NMQU5HX1JFVklTSU9O
ID0gJzgwZmVlMjU3NzZjMmZiNjFlNzRjMWVjYjFhNTIzMzc1YzI1MDBiNjknCitDTEFOR19TVk5f
UkVWSVNJT04gPSAnMzYyOTEzJworQ0xBTkdfU1VCX1JFVklTSU9OID0gMQogCi1QQUNLQUdFX1ZF
UlNJT04gPSAiJXMtJXMiICUgKENMQU5HX1JFVklTSU9OLCBDTEFOR19TVUJfUkVWSVNJT04pCitQ
QUNLQUdFX1ZFUlNJT04gPSAnJXMtJXMtJXMnICUgKENMQU5HX1NWTl9SRVZJU0lPTiwgQ0xBTkdf
UkVWSVNJT05bOjhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19TVUJf
UkVWSVNJT04pCiAKICMgUGF0aCBjb25zdGFudHMuIChBbGwgb2YgdGhlc2Ugc2hvdWxkIGJlIGFi
c29sdXRlIHBhdGhzLikKIFRISVNfRElSID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9ib3QvdnNfdG9vbGNoYWluLnB5IGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvYm90L3ZzX3Rvb2xjaGFpbi5weQppbmRleCAyNTMwNjYyY2QxZWEyOTBiYmFmYTQ0
YzM1NGQxZTZkMmYwYjk2YmY5Li5mZWFhYTdjNzQxNDJkMzBiODdjNGMwOTc1NTAxYmJjYmZiMDA1
YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9ib3QvdnNfdG9vbGNoYWluLnB5CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91
dGlsL2JvdC92c190b29sY2hhaW4ucHkKQEAgLTg3LDkgKzg3LDkgQEAgZGVmIF9HZXREZXNpcmVk
VnNUb29sY2hhaW5IYXNoZXMoKToKICAgICAjIFVwZGF0ZSAzIGZpbmFsIHdpdGggMTAuMC4xNTA2
My40NjggU0RLIGFuZCBubyB2Y3RpcC5leGUuCiAgICAgcmV0dXJuIFsnZjUzZTQ1OTg5NTExNjJi
YWQ2MzMwZjdhMTY3NDg2YzdhZTVkYjFlNSddCiAgIGlmIGVudl92ZXJzaW9uID09ICcyMDE3JzoK
LSAgICAjIFZTIDIwMTcgVXBkYXRlIDcuMSAoMTUuNy4xKSB3aXRoIDEwLjAuMTcxMzQuMTIgU0RL
LCByZWJ1aWx0IHdpdGgKLSAgICAjIGRiZ2hlbHAuZGxsIGZpeC4KLSAgICByZXR1cm4gWyczYmMw
ZWM2MTVjZjIwZWUzNDJmM2JjMjliYzk5MWI1YWQ2NmQ4ZDJjJ10KKyAgICAjIFZTIDIwMTcgVXBk
YXRlIDkgKDE1LjkuMykgd2l0aCAxMC4wLjE3NzYzLjEzMiBTREssIDEwLjAuMTcxMzQgdmVyc2lv
biBvZgorICAgICMgZDNkY29tcGlsZXJfNDcuZGxsLCB3aXRoIEFSTTY0IGxpYnJhcmllcy4KKyAg
ICByZXR1cm4gWyc4MThhMTUyYjNmMWRhOTkxYzE3MjVkODViZTE5YTBmMjdhZjZiYWI0J10KICAg
cmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBWUyB2ZXJzaW9uICVzJyAlIGVudl92ZXJzaW9u
KQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2NvbnZlcnRfd3ljaGVwcm9vZi5nbyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91
dGlsL2NvbnZlcnRfd3ljaGVwcm9vZi5nbwppbmRleCA3ODQ2MDY3ODg3N2M5MzNmOWJhMWJlNGEy
Y2E1OGU2ZmNhM2E2M2VlLi5lNmVhYjk1YzI1OTUzMWQzNzkyNmJkYzhhYzY1ZmM4MmY3M2MwMzk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9jb252ZXJ0X3d5Y2hlcHJvb2YuZ28KKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvY29udmVydF93eWNoZXByb29mLmdvCkBAIC0yMTIsNiArMjEyLDcgQEAgdmFyIGRlZmF1bHRJ
bnB1dHMgPSBbXXN0cmluZ3sKIAkiZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMl90ZXN0Lmpzb24iLAog
CSJlZGRzYV90ZXN0Lmpzb24iLAogCSJrd190ZXN0Lmpzb24iLAorCSJrd3BfdGVzdC5qc29uIiwK
IAkicnNhX3Bzc18yMDQ4X3NoYTFfbWdmMV8yMF90ZXN0Lmpzb24iLAogCSJyc2FfcHNzXzIwNDhf
c2hhMjU2X21nZjFfMF90ZXN0Lmpzb24iLAogCSJyc2FfcHNzXzIwNDhfc2hhMjU2X21nZjFfMzJf
dGVzdC5qc29uIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2RvYy5jb25maWcgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9k
b2MuY29uZmlnCmluZGV4IDViZWUxYjVkZGQ2YzdlZGM1NjQzYmYwODE0ZWZiNDQ0NmZjMjA2OTEu
LmQ5NmUwZmFkN2JiMDk2NmNlYWMxZjMyOWRlOWZhNjNlOTVjZjEwYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy91dGlsL2RvYy5jb25maWcKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZG9jLmNvbmZpZwpAQCAtMzksNyArMzks
OCBAQAogICAgICAgImluY2x1ZGUvb3BlbnNzbC9tZDUuaCIsCiAgICAgICAiaW5jbHVkZS9vcGVu
c3NsL3JjNC5oIiwKICAgICAgICJpbmNsdWRlL29wZW5zc2wvcnNhLmgiLAotICAgICAgImluY2x1
ZGUvb3BlbnNzbC9zaGEuaCIKKyAgICAgICJpbmNsdWRlL29wZW5zc2wvc2hhLmgiLAorICAgICAg
ImluY2x1ZGUvb3BlbnNzbC9zaXBoYXNoLmgiCiAgICAgXQogICB9LHsKICAgICAiTmFtZSI6ICJD
cnlwdG8gaW50ZXJmYWNlcyIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9B
Q1ZQLm1kIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvQUNWUC5tZApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGFl
NGVkNDFkZmE0Y2U1MzBlNjMyYzVkYjhjMDkzMGRlYTEzY2NjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvQUNWUC5tZApAQCAtMCwwICsxLDE1OSBAQAorQUNWUCBD
bGllbnQKKz09PT09PT09PT09CisKK1tBQ1ZQXShodHRwczovL2dpdGh1Yi5jb20vdXNuaXN0Z292
L0FDVlApIGlzIHRoZSBuZXh0IHZlcnNpb24gb2YgTklTVCdzIFtDQVZQXShodHRwczovL2dpdGh1
Yi5jb20vdXNuaXN0Z292L0FDVlAp4oCUYSBwcm9ncmFtIGZvciBydW5uaW5nIGNyeXB0b2dyYXBo
aWMgaW1wbGVtZW50YXRpb25zIGFnYWluc3QgYSBzZXQgb2YgdGVzdCB2ZWN0b3JzLiBDQVZQIGlu
dm9sdmVkIGVtYWlsaW5nIGFyb3VuZCB6aXAgZmlsZXMgb2Ygc29tZXdoYXQtSU5JLWxpa2UgdGVz
dCB2ZWN0b3JzIHdoZXJlIG5vIHR3byBmaWxlcyBoYWQgcXVpdGUgdGhlIHNhbWUgZm9ybWF0LiBB
Q1ZQIGlzIHN1cHBvc2VkIHRvIHJlcGxhY2UgdGhhdCB3aXRoIGEpIFRMUyBjb25uZWN0aW9ucyBy
YXRoZXIgdGhhbiBlbWFpbCBhbmQgYikgSlNPTiByYXRoZXIgdGhhbiBiZXNwb2tlIGZvcm1hdHMu
CisKK1RoZSB0b29sIGluIHRoaXMgZGlyZWN0b3J5IGNhbiBzcGVhayB0byBBQ1ZQIHNlcnZlcnMg
YW5kIHJ1biB0aGUgcmVzdWx0aW5nIHRlc3QgdmVjdG9ycyB0aHJvdWdoIGEgY2FuZGlkYXRlIEZJ
UFMgbW9kdWxlIGJ5IGxvd2VyaW5nIHRoZSB0ZXN0cyB0byBhIG11Y2ggc2ltcGxlciBwcm90b2Nv
bC4gSXQgYWxzbyBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIG1hbmlwdWxhdGluZyB0aGUgQUNW
UCBkYXRhYmFzZSB3aGljaCBpbmNsdWRlcyBsaXN0cyBvZiBtb2R1bGVzLCB2ZW5kb3JzLCBjb250
YWN0cywgb3BlcmF0aW5nIGVudmlyb25tZW50cyBldGMuCisKKyMjIENvbmZpZ3VyYXRpb24KKwor
Q29uZmlndXJhdGlvbiBpcyBkb25lIHZpYSBhIGBjb25maWcuanNvbmAgZmlsZSBpbiB0aGUgY3Vy
cmVudCB3b3JraW5nIGRpcmVjdG9yeS4gSGVyZSdzIGEgdGVtcGxhdGU6CisKK2BgYAoreworICAg
ICAgICAiQUNWUFNlcnZlciI6ICJodHRwczovL2RlbW8uYWN2dHMubmlzdC5nb3YvIiwKKyAgICAg
ICAgIkNlcnRQRU1GaWxlIjogImNlcnRpZmljYXRlX2Zyb21fbmlzdC5wZW0iLAorICAgICAgICAi
UHJpdmF0ZUtleURFUkZpbGUiOiAieW91cl9wcml2YXRlX2tleS5rZXkiLAorICAgICAgICAiVE9U
UFNlY3JldCI6ICI8YmFzZTY0IGZyb20gTklTVCBnb2VzIGhlcmU+IiwKKyAgICAgICAgIlNlc3Np
b25Ub2tlbnNDYWNoZSI6ICJ+Ly5jYWNoZS9hY3ZwLXNlc3Npb24tdG9rZW5zIiwKKyAgICAgICAg
IkxvZ0ZpbGUiOiAibG9nIgorfQorYGBgCisKK05JU1QncyBBQ1ZQIHNlcnZlcnMgdXNlIGJvdGgg
VExTIGNsaWVudCBjZXJ0aWZpY2F0ZXMgYW5kIFRPVFAgZm9yIGF1dGhlbnRpY2F0aW9uLiBXaGVu
IHJlZ2lzdGVyaW5nIHdpdGggTklTVCwgdGhleSdsbCBzaWduIGEgQ1NSIGFuZCByZXR1cm4gYSBj
ZXJ0aWZpY2F0ZSBpbiBQRU0gZm9ybWF0LCB3aGljaCBpcyBwb2ludGVkIHRvIGJlIGBDZXJ0UEVN
RmlsZWAuIFRoZSBjb3JyZXNwb25kaW5nIFBLQ1MjMSwgREVSLWVuY29kZWQgcHJpdmF0ZSBrZXkg
aXMgZXhwZWN0ZWQgaW4gYFByaXZhdGVLZXlERVJGaWxlYC4gTGFzdGx5LCBOSVNUIHdpbGwgcHJv
dmlkZSBhIGZpbGUgdGhhdCBjb250YWlucyB0aGUgYmFzZTY0LWVuY29kZWQgVE9UUCBzZWVkLCB3
aGljaCBtdXN0IGJlIHBhc3RlZCBpbiBhcyB0aGUgdmFsdWUgb2YgYFRPVFBTZWNyZXRgLgorCitO
SVNUJ3MgQUNWUCBzZXJ2ZXIgcHJvdmlkZXMgc3BlY2lhbCBhY2Nlc3MgdG9rZW5zIGZvciBlYWNo
IHRlc3Qgc2Vzc2lvbiBhbmQgdGVzdCBzZXNzaW9ucyBjYW4gX29ubHlfIGJlIGFjY2Vzc2VkIHZp
YSB0aG9zZSB0b2tlbnMuIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgaXMgdW5jbGVhciBidXQg
dGhpcyBjbGllbnQgY2FuLCBvcHRpb25hbGx5LCBrZWVwIHJlY29yZHMgb2YgdGhlc2UgYWNjZXNz
IHRva2VucyBpbiB0aGUgZGlyZWN0b3J5IG5hbWVkIGJ5IGBTZXNzaW9uVG9rZW5zQ2FjaGVgLiBJ
ZiB0aGF0IGRpcmVjdG9yeSBuYW1lIGJlZ2lucyB3aXRoIGB+L2AgdGhlbiB0aGF0IHByZWZpeCB3
aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIHZhbHVlIG9mIGAkSE9NRWAuCisKK0xhc3RseSwgYSBs
b2cgb2YgYWxsIEhUVFAgdHJhZmZpYyB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIGZpbGUgbmFtZWQg
YnkgYExvZ0ZpbGVgLCBpZiBwcm92aWRlZC4gVGhpcyBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZy4K
KworIyMgSW50ZXJhY3RpdmUgVXNlCisKK0FDVlAgcHJvdmlkZXMgYSBmYWlybHkgY29tcGxleCBp
bnRlcmZhY2UgdG8gYSBkYXRhYmFzZSBvZiBzZXZlcmFsIHR5cGVzIG9mIG9iamVjdHMuIEEgcm91
Z2ggVUkgaXMgcHJvdmlkZWQgZm9yIHRoaXMgd2hpY2ggaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIGNs
aWVudCBpcyBpbnZva2VkIHdpdGggbm8gY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KKworVGhlIHNp
bXBsZXN0IG9iamVjdHMgaW4gQUNWUCBhcmUgcmVxdWVzdCBvYmplY3RzLiBUaGVzZSByZWNvcmQg
dGhlIHN0YXR1cyBvZiByZXF1ZXN0ZWQgY2hhbmdlcyB0byB0aGUgZGF0YWJhc2UgYW5kLCBpbiBw
cmFjdGljZSwgY2hhbmdlcyB0byB0aGUgTklTVCBkZW1vIGRhdGFiYXNlIG5ldmVyIHN1Y2NlZWQu
IFRoZSBzZXQgb2YgcGVuZGluZyByZXF1ZXN0cyBmb3IgdGhlIGN1cnJlbnQgdXNlciBjYW4gYmUg
ZW51bWVyYXRlZCBqdXN0IGJ5IGV2YWx1YXRpbmcgdGhlIGByZXF1ZXN0c2Agb2JqZWN0OgorCitg
YGAKKz4gcmVxdWVzdHMKK1sKKyAgeworICAgICJ1cmwiOiAiL2FjdnAvdjEvcmVxdWVzdHMvMzc0
IiwKKyAgICAic3RhdHVzIjogInByb2Nlc3NpbmciCisgIH0sCisgIHsKKyAgICAidXJsIjogIi9h
Y3ZwL3YxL3JlcXVlc3RzLzIxOCIsCisgICAgInN0YXR1cyI6ICJwcm9jZXNzaW5nIgorICB9Citd
CitgYGAKKworQSBzcGVjaWZpYyByZXF1ZXN0IGNhbiBiZSBldmFsdWF0ZWQgYnkgdXNpbmcgaW5k
ZXhpbmcgc3ludGF4OgorCitgYGAKKz4gcmVxdWVzdHNbMzc0XQoreworICAidXJsIjogIi9hY3Zw
L3YxL3JlcXVlc3RzLzM3NCIsCisgICJzdGF0dXMiOiAicHJvY2Vzc2luZyIKK30KK2BgYAorCitU
aGUgbGlzdCBvZiB2ZW5kb3JzIHByb3ZpZGVzIGEgbW9yZSBjb21wbGV4IGV4YW1wbGUuIFNpbmNl
IHRoZXJlIGFyZSBsYXJnZSBudW1iZXIgb2YgZHVwbGljYXRlcyBpbiBOSVNUJ3MgZGF0YWJhc2Us
IHRoZXJlIGFyZSBtb3JlIHRoYW4gMTDigIkwMDAgdmVuZG9yIG9iamVjdHMgYW5kIGVudW1lcmF0
aW5nIHRoZW0gYWxsIHRha2VzIGEgbG9uZyB0aW1lLiBUaHVzIGV2YWx1YXRpbmcgdGhlIGB2ZW5k
b3JzYCBvYmplY3QgZG9lc24ndCBkbyB0aGF0OgorCitgYGAKKz4gdmVuZG9ycworW29iamVjdCBz
ZXQgdmVuZG9yc10KK2BgYAorCitJdCBpcyBzdGlsbCBwb3NzaWJsZSB0byB1c2UgaW5kZXhpbmcg
c3ludGF4IHRvIHJlYWQgYSBzcGVjaWZpYyB2ZW5kb3Igb2JqZWN0IGlmIHlvdSBrbm93IHRoZSBJ
RDoKKworYGBgCis+IHZlbmRvcnNbMTIzNF0KK3sKKyAgInVybCI6ICIvYWN2cC92MS92ZW5kb3Jz
LzEyMzQiLAorICAibmFtZSI6ICJBcHBsZSBJbmMuIiwKKyAgIndlYnNpdGUiOiAid3d3LmFwcGxl
LmNvbSIsCisgICJjb250YWN0c1VybCI6ICIvYWN2cC92MS92ZW5kb3JzLzEyMzQvY29udGFjdHMi
LAorICAiYWRkcmVzc2VzIjogWworICAgIHsKKyAgICAgICJ1cmwiOiAiL2FjdnAvdjEvdmVuZG9y
cy8xMjM0L2FkZHJlc3Nlcy8xMjM0IiwKKyAgICAgICJzdHJlZXQxIjogIjEgSW5maW5pdGUgTG9v
cCIsCisgICAgICAibG9jYWxpdHkiOiAiQ3VwZXJ0aW5vIiwKKyAgICAgICJyZWdpb24iOiAiQ0Ei
LAorICAgICAgImNvdW50cnkiOiAiVVNBIiwKKyAgICAgICJwb3N0YWxDb2RlIjogIjk1MDE0Igor
ICAgIH0KKyAgXQorfQorYGBgCisKK0ZpbmRpbmcgYSB2ZW5kb3Igd2hlbiB0aGUgSUQgaXMgbm90
IGtub3duIHJlcXVpcmVzIHNlYXJjaGluZyBhbmQgdGhlIEFDVlAgc3BlYyBbZG9jdW1lbnRzXSho
dHRwOi8vdXNuaXN0Z292LmdpdGh1Yi5pby9BQ1ZQL2FydGlmYWN0cy9kcmFmdC1mdXNzZWxsLWFj
dnAtc3BlYy0wMC5odG1sI3JmYy5zZWN0aW9uLjExLjguMSksIGZvciBlYWNoIG9iamVjdCB0eXBl
LCB3aGF0IHZhbHVlcyBhbmQgd2hhdCByZWxhdGlvbnMgY2FuIGJlIHNlYXJjaGVkIG9uLiBUaGlz
IGlzIHJlZmxlY3RlZCBpbiBhIHZhcmlhbnQgb2YgdGhlIGluZGV4aW5nIHN5bnRheDoKKworYGBg
Cis+IHZlbmRvcnNbd2hlcmUgbmFtZSBjb250YWlucyAiR29vZ2xlIExMQyJdCitbCisgIHsKKyAg
ICAidXJsIjogIi9hY3ZwL3YxL3ZlbmRvcnMvMTExMzYiLAorICAgICJuYW1lIjogIkdvb2dsZSBM
TEMiLAorICAgICJ3ZWJzaXRlIjogInd3dy5nb29nbGUuY29tIiwKKyAgICAiY29udGFjdHNVcmwi
OiAiL2FjdnAvdjEvdmVuZG9ycy8xMTEzNi9jb250YWN0cyIsCisgICAgImFkZHJlc3NlcyI6IFsK
KyAgICAgIHsKKyAgICAgICAgInVybCI6ICIvYWN2cC92MS92ZW5kb3JzLzExMTM2L2FkZHJlc3Nl
cy8xMTEzNiIsCisgICAgICAgICJzdHJlZXQxIjogIjE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXki
LAorICAgICAgICAibG9jYWxpdHkiOiAiTW91bnRhaW4gVmlldyIsCisgICAgICAgICJyZWdpb24i
OiAiQ0EiLAorICAgICAgICAiY291bnRyeSI6ICJVU0EiLAorICAgICAgICAicG9zdGFsQ29kZSI6
ICI5NDA0MyIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICAidXJsIjogIi9hY3ZwL3Yx
L3ZlbmRvcnMvMTExMzciLAorICAgICJuYW1lIjogIkdvb2dsZSBMTEMiLAorICAgICJ3ZWJzaXRl
IjogInd3dy5nb29nbGUuY29tIiwKKyAgICAiY29udGFjdHNVcmwiOiAiL2FjdnAvdjEvdmVuZG9y
cy8xMTEzNy9jb250YWN0cyIsCisgICAgImFkZHJlc3NlcyI6IFsKKyAgICAgIHsKKyAgICAgICAg
InVybCI6ICIvYWN2cC92MS92ZW5kb3JzLzExMTM3L2FkZHJlc3Nlcy8xMTEzNyIsCisgICAgICAg
ICJzdHJlZXQxIjogIjE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXkiLAorICAgICAgICAibG9jYWxp
dHkiOiAiTW91bnRhaW4gVmlldyIsCisgICAgICAgICJyZWdpb24iOiAiQ0EiLAorICAgICAgICAi
Y291bnRyeSI6ICJVU0EiLAorICAgICAgICAicG9zdGFsQ29kZSI6ICI5NDA0MyIKKyAgICAgIH0K
KyAgICBdCisgIH0KK10KK2BgYAorCitJbiBnZW5lcmFsLCBgJiZgIGFuZCBgfHxgIGNhbiBiZSB1
c2VkIGFzIGluIEMgYW5kIHRoZSByZWxhdGlvbnNoaXBzIGFyZSBgPT1gLCBgIT1gLCBgY29udGFp
bnNgLCBgc3RhcnRzV2l0aGAsIGFuZCBgZW5kc1dpdGhgLiBPbmx5IHZhbHVlcyBhbmQgcmVsYXRp
b25zIGxpc3RlZCBpbiB0aGUgQUNWUCBzcGVjIGZvciBhIGdpdmVuIG9iamVjdCBjYW4gYmUgdXNl
ZC4KKworTW9yZSBjb21wbGV4IGludGVyYWN0aW9uIHJlbWFpbnMgdG8gYmUgZmxlc2hlZCBvdXQu
IEhvd2V2ZXIsIGl0IGlzIGdlbmVyYWxseSBwb3NzaWJsZSB0byBjcmVhdGUgbmV3IG9iamVjdHMg
YnkgZXZhbHVhdGluZywgZm9yIGV4YW1wbGUsIGB2ZW5kb3JzLm5ldygpYC4gVGhhdCB3aWxsIGlu
dm9rZSBgJEVESVRPUmAgdG8gZWRpdCB0aGUgSlNPTiB0byBiZSBzdWJtaXR0ZWQuIChGb3Igbm93
LCBob3dldmVyLCBubyBoZWxwZnVsIHRlbXBsYXRlcyBhcmUgcHJvdmlkZWQuKQorCitUaGUgY3Vy
cmVudCBsaXN0IG9mIG9iamVjdHMgaXM6CisKKyogYHJlcXVlc3RzYAorKiBgdmVuZG9yc2AKKyog
YHBlcnNvbnNgCisqIGBtb2R1bGVzYAorKiBgb2VzYCAob3BlcmF0aW5nIGVudmlyb25tZW50cykK
KyogYGRlcHNgCisqIGBhbGdvc2AKKyogYHNlc3Npb25zYAorCisjIyBSdW5uaW5nIHRlc3Qgc2Vz
c2lvbnMKKworSGFuZGxpbmcgb2YgdGVzdCBzZXNzaW9ucyAoaW4gbm9uLWludGVyYWN0aXZlIG1v
ZGUpIGlzIHNwbGl0IGludG8gYSDigJxmcm9udOKAnSBwYXJ0LCB3aGljaCB0YWxrcyB0byB0aGUg
QUNWUCBzZXJ2ZXIsIGFuZCBhIOKAnG1pZGRsZeKAnSBwYXJ0LCB3aGljaCBydW5zIHRoZSBhY3R1
YWwgdGVzdCB2ZWN0b3JzLiBUaGUgbWlkZGxlIHBhcnQgcmVjZWl2ZXMgdGhlIHJhdyBKU09OIG9m
IHRoZSB2ZWN0b3Igc2V0cyBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuIEl0IGFsc28ga25vd3Mg
dGhlIHNldCBvZiBhbGdvcml0aG1zIHRoYXQgaXQgc3VwcG9ydHMgYW5kIHRoZWlyIHJlc3BlY3Rp
dmUgcGFyYW1ldGVycy4gRm9yIHRoZSBtb21lbnQsIHRoZSBvbmx5IG1pZGRsZSBwYXJ0IHByb3Zp
ZGVkIGlzIGNhbGxlZCBgc3VicHJvY2Vzc2Agd2hpY2ggbG93ZXJzIHRoZSBBQ1ZQIHRlc3RzIHRv
IHNpbXBsZSBiaW5hcnkgcHJvdG9jb2wgYW5kIHRhbGtzIHRvIGEgRklQUyBtb2R1bGUgaW4gYSBz
ZXBhcmF0ZSBwcm9jZXNzIHRvIHJ1biB0aGUgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG1zLgorCitG
b3IgZGV2ZWxvcG1lbnQgcHVycG9zZXMsIHRoaXMgY29kZSBjYW4gYmUgZXhlcmNpc2VkIGJ5IHBh
c3NpbmcsIHNheSwgYC1ydW4gU0hBMi0yNTZgIHRvIHRoZSBjbGllbnQuCisKKyMjIyBUaGUgc3Vi
cHJvY2VzcyBwcm90b2NvbAorCitUaGUgbG93ZXJpbmcgb2YgQUNWUCB0byBhIHNpbXBsZXIgcHJv
dG9jb2wgbWlnaHQgYmUgdXNlZnVsIGZvciBvdGhlciBwcm9qZWN0cyBzbyB0aGUgcHJvdG9jb2wg
aXMgZGVzY3JpYmVkIGhlcmUuIFRoZSBDKysgaW1wbGVtZW50YXRpb24gZm9yIEJvcmluZ1NTTCBp
cyBpbiB0aGUgYG1vZHVsZXdyYXBwZXJgIGRpcmVjdG9yeS4KKworVGhlIHByb3RvY29sIGZvbGxv
d3MgYSBzdHJpY3QgcmVxdWVzdOKAk3Jlc3BvbnNlIG1vZGVsIG92ZXIgc3RkaW4vc3Rkb3V0OiB0
aGUgc3VicHJvY2VzcyBvbmx5IHNwZWFrcyBpbiByZXNwb25zZSB0byBhIHJlcXVlc3QgYW5kIHRo
ZXJlIGlzIGV4YWN0bHkgb25lIHJlc3BvbnNlIGZvciBldmVyeSByZXF1ZXN0LiBDb25jZXB0dWFs
bHkgcmVxdWVzdHMgY29uc2lzdCBvZiBvbmUgb3IgbW9yZSBieXRlIHN0cmluZ3MgYW5kIHJlc3Bv
bnNlcyBjb25zaXN0IG9mIHplcm8gb3IgbW9yZSBieXRlIHN0cmluZ3MuCisKK09uIHRoZSB3aXJl
LCBhIHJlcXVlc3QgaW52b2x2ZXMgc2VuZGluZyB0aGUgbnVtYmVyIG9mIGJ5dGUgc3RyaW5ncywg
dGhlbiB0aGUgbGVuZ3RoIG9mIGVhY2ggYnl0ZSBzdHJpbmcgaW4gb3JkZXIsIHRoZW4gdGhlIGNv
bnRlbnRzIG9mIGVhY2ggYnl0ZSBzdHJpbmcuIEFsbCBudW1iZXJzIGFyZSBsaXR0bGUtZW5kaWFu
IGFuZCAzMi1iaXQuIFRoZSBmaXJzdCBieXRlIHN0cmluZyBpcyBtYW5kYXRvcnkgYW5kIGlzIHRo
ZSBuYW1lIG9mIHRoZSBjb21tYW5kIHRvIHBlcmZvcm0uIEEgcmVzcG9uc2UgaGFzIHRoZSBzYW1l
IGZvcm1hdCBleGNlcHQgdGhhdCB0aGVyZSBtYXkgYmUgemVybyBieXRlIHN0cmluZ3MgYW5kIHRo
ZSBmaXJzdCBieXRlIHN0cmluZyBoYXMgbm8gc3BlY2lhbCBzZW1hbnRpY3MuCisKK0FsbCBpbXBs
ZW1lbnRhdGlvbnMgbXVzdCBzdXBwb3J0IHRoZSBgZ2V0Q29uZmlnYCBjb21tYW5kIHdoaWNoIHRh
a2VzIG5vIGFyZ3VtZW50cyBhbmQgcmV0dXJucyBhIHNpbmdsZSBieXRlIHN0cmluZyB3aGljaCBp
cyBhIEpTT04gYmxvYiBvZiBBQ1ZQIGFsZ29yaXRobSBjb25maWd1cmF0aW9uLiBUaGlzIGJsb2Ig
ZGVzY3JpYmVzIGFsbCB0aGUgYWxnb3JpdGhtcyBhbmQgY2FwYWJpbGl0aWVzIHRoYXQgdGhlIG1v
ZHVsZSBzdXBwb3J0cyBhbmQgaXMgYW4gYXJyYXkgb2YgSlNPTiBvYmplY3RzIHN1aXRhYmxlIGZv
ciBpbmNsdWRpbmcgYXMgdGhlIGBhbGdvcml0aG1zYCB2YWx1ZSB3aGVuIFtjcmVhdGluZyBhbiBB
Q1ZQIHZlY3RvciBzZXRdKGh0dHA6Ly91c25pc3Rnb3YuZ2l0aHViLmlvL0FDVlAvYXJ0aWZhY3Rz
L2RyYWZ0LWZ1c3NlbGwtYWN2cC1zcGVjLTAwLmh0bWwjcmZjLnNlY3Rpb24uMTEuMTUuMi4xKS4K
KworRWFjaCBzdXBwb3J0ZWQgYWxnb3JpdGhtIHdpbGwgaGF2ZSBpdHMgb3duIGNvbW1hbmRzIHRo
YXQgdGhlIG1vZHVsZSBtdXN0IGltcGxlbWVudC4gU28gZmFyLCBvbmx5IGhhc2ggZnVuY3Rpb25z
IGFyZSBzdXBwb3J0ZWQgYW5kIHRoZSBjb21tYW5kcyB0YWtlIGEgYnl0ZSBzdHJpbmcgdG8gaGFz
aCBhbmQgcmV0dXJuIGEgc2luZ2xlIGJ5dGUgc3RyaW5nIG9mIHRoZSByZXN1bHRpbmcgZGlnZXN0
LiBUaGUgY29tbWFuZHMgYXJlIG5hbWVkIGFmdGVyIHRoZSBBQ1ZQIGFsZ29yaXRobSBuYW1lcywg
aS5lLiBgU0hBLTFgLCBgU0hBMi0yMjRgLCBgU0hBMi0yNTZgLCBgU0hBMi0zODRgLCBhbmQgYFNI
QTItNTEyYC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9hY3ZwL2FjdnB0b29sL2Fj
dnAuZ28gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9hY3ZwLmdvCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVkMWE4NGYwYTE3OTRkMTA2Y2NlZjRmOTBiMTIyMzlkMzNkZjdiZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9hY3ZwLmdvCkBAIC0wLDAg
KzEsNDMwIEBACitwYWNrYWdlIG1haW4KKworaW1wb3J0ICgKKwkiYnVmaW8iCisJImJ5dGVzIgor
CSJjcnlwdG8vaG1hYyIKKwkiY3J5cHRvL3NoYTI1NiIKKwkiY3J5cHRvL3g1MDkiCisJImVuY29k
aW5nL2Jhc2U2NCIKKwkiZW5jb2RpbmcvYmluYXJ5IgorCSJlbmNvZGluZy9qc29uIgorCSJlbmNv
ZGluZy9wZW0iCisJImVycm9ycyIKKwkiZmxhZyIKKwkiZm10IgorCSJpby9pb3V0aWwiCisJImxv
ZyIKKwkibmV0L2h0dHAiCisJbmV0dXJsICJuZXQvdXJsIgorCSJvcyIKKwkicGF0aC9maWxlcGF0
aCIKKwkic3RyaW5ncyIKKwkidGltZSIKKworCSJib3Jpbmdzc2wuZ29vZ2xlc291cmNlLmNvbS9i
b3Jpbmdzc2wvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9hY3ZwIgorCSJib3Jpbmdzc2wu
Z29vZ2xlc291cmNlLmNvbS9ib3Jpbmdzc2wvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9z
dWJwcm9jZXNzIgorKQorCit2YXIgKAorCWNvbmZpZ0ZpbGVuYW1lID0gZmxhZy5TdHJpbmcoImNv
bmZpZyIsICJjb25maWcuanNvbiIsICJMb2NhdGlvbiBvZiB0aGUgY29uZmlndXJhdGlvbiBKU09O
IGZpbGUiKQorCXJ1bkZsYWcgICAgICAgID0gZmxhZy5TdHJpbmcoInJ1biIsICIiLCAiTmFtZSBv
ZiBwcmltaXRpdmUgdG8gcnVuIHRlc3RzIGZvciIpCisJd3JhcHBlclBhdGggICAgPSBmbGFnLlN0
cmluZygid3JhcHBlciIsICIuLi8uLi8uLi8uLi9idWlsZC91dGlsL2ZpcHN0b29scy9hY3ZwL21v
ZHVsZXdyYXBwZXIvbW9kdWxld3JhcHBlciIsICJQYXRoIHRvIHRoZSB3cmFwcGVyIGJpbmFyeSIp
CispCisKK3R5cGUgQ29uZmlnIHN0cnVjdCB7CisJQ2VydFBFTUZpbGUgICAgICAgIHN0cmluZwor
CVByaXZhdGVLZXlERVJGaWxlICBzdHJpbmcKKwlUT1RQU2VjcmV0ICAgICAgICAgc3RyaW5nCisJ
QUNWUFNlcnZlciAgICAgICAgIHN0cmluZworCVNlc3Npb25Ub2tlbnNDYWNoZSBzdHJpbmcKKwlM
b2dGaWxlICAgICAgICAgICAgc3RyaW5nCit9CisKK2Z1bmMgaXNDb21tZW50TGluZShsaW5lIFtd
Ynl0ZSkgYm9vbCB7CisJdmFyIGZvdW5kQ29tbWVudFN0YXJ0IGJvb2wKKwlmb3IgXywgYiA6PSBy
YW5nZSBsaW5lIHsKKwkJaWYgIWZvdW5kQ29tbWVudFN0YXJ0IHsKKwkJCWlmIGIgPT0gJyAnIHx8
IGIgPT0gJ1x0JyB7CisJCQkJY29udGludWUKKwkJCX0KKwkJCWlmIGIgIT0gJy8nIHsKKwkJCQly
ZXR1cm4gZmFsc2UKKwkJCX0KKwkJCWZvdW5kQ29tbWVudFN0YXJ0ID0gdHJ1ZQorCQl9IGVsc2Ug
eworCQkJcmV0dXJuIGIgPT0gJy8nCisJCX0KKwl9CisJcmV0dXJuIGZhbHNlCit9CisKK2Z1bmMg
anNvbkZyb21GaWxlKG91dCBpbnRlcmZhY2V7fSwgZmlsZW5hbWUgc3RyaW5nKSBlcnJvciB7CisJ
aW4sIGVyciA6PSBvcy5PcGVuKGZpbGVuYW1lKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4g
ZXJyCisJfQorCWRlZmVyIGluLkNsb3NlKCkKKworCXNjYW5uZXIgOj0gYnVmaW8uTmV3U2Nhbm5l
cihpbikKKwl2YXIgY29tbWVudHNSZW1vdmVkIGJ5dGVzLkJ1ZmZlcgorCWZvciBzY2FubmVyLlNj
YW4oKSB7CisJCWlmIGlzQ29tbWVudExpbmUoc2Nhbm5lci5CeXRlcygpKSB7CisJCQljb250aW51
ZQorCQl9CisJCWNvbW1lbnRzUmVtb3ZlZC5Xcml0ZShzY2FubmVyLkJ5dGVzKCkpCisJCWNvbW1l
bnRzUmVtb3ZlZC5Xcml0ZVN0cmluZygiXG4iKQorCX0KKwlpZiBlcnIgOj0gc2Nhbm5lci5FcnIo
KTsgZXJyICE9IG5pbCB7CisJCXJldHVybiBlcnIKKwl9CisKKwlkZWNvZGVyIDo9IGpzb24uTmV3
RGVjb2RlcigmY29tbWVudHNSZW1vdmVkKQorCWRlY29kZXIuRGlzYWxsb3dVbmtub3duRmllbGRz
KCkKKwlpZiBlcnIgOj0gZGVjb2Rlci5EZWNvZGUob3V0KTsgZXJyICE9IG5pbCB7CisJCXJldHVy
biBlcnIKKwl9CisJaWYgZGVjb2Rlci5Nb3JlKCkgeworCQlyZXR1cm4gZXJyb3JzLk5ldygidHJh
aWxpbmcgZ2FyYmFnZSBmb3VuZCIpCisJfQorCXJldHVybiBuaWwKK30KKworLy8gVE9UUCBpbXBs
ZW1lbnRzIHRoZSB0aW1lLWJhc2VkIG9uZS10aW1lIHBhc3N3b3JkIGFsZ29yaXRobSB3aXRoIHRo
ZSBzdWdnZXN0ZWQKKy8vIGdyYW51bGFyaXR5IG9mIDMwIHNlY29uZHMuIFNlZSBodHRwczovL3Rv
b2xzLmlldGYub3JnL2h0bWwvcmZjNjIzOCBhbmQgdGhlbgorLy8gaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy9odG1sL3JmYzQyMjYjc2VjdGlvbi01LjMKK2Z1bmMgVE9UUChzZWNyZXQgW11ieXRlKSBz
dHJpbmcgeworCWNvbnN0IHRpbWVTdGVwID0gMzAKKwlub3cgOj0gdWludDY0KHRpbWUuTm93KCku
VW5peCgpKSAvIDMwCisJdmFyIG5vd0J1ZiBbOF1ieXRlCisJYmluYXJ5LkJpZ0VuZGlhbi5QdXRV
aW50NjQobm93QnVmWzpdLCBub3cpCisJbWFjIDo9IGhtYWMuTmV3KHNoYTI1Ni5OZXcsIHNlY3Jl
dCkKKwltYWMuV3JpdGUobm93QnVmWzpdKQorCWRpZ2VzdCA6PSBtYWMuU3VtKG5pbCkKKwl2YWx1
ZSA6PSBiaW5hcnkuQmlnRW5kaWFuLlVpbnQzMihkaWdlc3RbZGlnZXN0WzMxXSYxNTpdKQorCXZh
bHVlICY9IDB4N2ZmZmZmZmYKKwl2YWx1ZSAlPSAxMDAwMDAwMDAKKwlyZXR1cm4gZm10LlNwcmlu
dGYoIiUwOGQiLCB2YWx1ZSkKK30KKwordHlwZSBNaWRkbGUgaW50ZXJmYWNlIHsKKwlDbG9zZSgp
CisJQ29uZmlnKCkgKFtdYnl0ZSwgZXJyb3IpCisJUHJvY2VzcyhhbGdvcml0aG0gc3RyaW5nLCB2
ZWN0b3JTZXQgW11ieXRlKSAoW11ieXRlLCBlcnJvcikKK30KKworZnVuYyBsb2FkQ2FjaGVkU2Vz
c2lvblRva2VucyhzZXJ2ZXIgKmFjdnAuU2VydmVyLCBjYWNoZVBhdGggc3RyaW5nKSBlcnJvciB7
CisJY2FjaGVEaXIsIGVyciA6PSBvcy5PcGVuKGNhY2hlUGF0aCkKKwlpZiBlcnIgIT0gbmlsIHsK
KwkJaWYgb3MuSXNOb3RFeGlzdChlcnIpIHsKKwkJCWlmIGVyciA6PSBvcy5Na2RpcihjYWNoZVBh
dGgsIDA3MDApOyBlcnIgIT0gbmlsIHsKKwkJCQlyZXR1cm4gZm10LkVycm9yZigiRmFpbGVkIHRv
IGNyZWF0ZSBzZXNzaW9uIHRva2VuIGNhY2hlIGRpcmVjdG9yeSAlcTogJXMiLCBjYWNoZVBhdGgs
IGVycikKKwkJCX0KKwkJCXJldHVybiBuaWwKKwkJfQorCQlyZXR1cm4gZm10LkVycm9yZigiRmFp
bGVkIHRvIG9wZW4gc2Vzc2lvbiB0b2tlbiBjYWNoZSBkaXJlY3RvcnkgJXE6ICVzIiwgY2FjaGVQ
YXRoLCBlcnIpCisJfQorCWRlZmVyIGNhY2hlRGlyLkNsb3NlKCkKKwluYW1lcywgZXJyIDo9IGNh
Y2hlRGlyLlJlYWRkaXJuYW1lcygwKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gZm10LkVy
cm9yZigiRmFpbGVkIHRvIGxpc3Qgc2Vzc2lvbiB0b2tlbiBjYWNoZSBkaXJlY3RvcnkgJXE6ICVz
IiwgY2FjaGVQYXRoLCBlcnIpCisJfQorCisJbG9hZGVkIDo9IDAKKwlmb3IgXywgbmFtZSA6PSBy
YW5nZSBuYW1lcyB7CisJCWlmICFzdHJpbmdzLkhhc1N1ZmZpeChuYW1lLCAiLnRva2VuIikgewor
CQkJY29udGludWUKKwkJfQorCQlwYXRoIDo9IGZpbGVwYXRoLkpvaW4oY2FjaGVQYXRoLCBuYW1l
KQorCQljb250ZW50cywgZXJyIDo9IGlvdXRpbC5SZWFkRmlsZShwYXRoKQorCQlpZiBlcnIgIT0g
bmlsIHsKKwkJCXJldHVybiBmbXQuRXJyb3JmKCJGYWlsZWQgdG8gcmVhZCBzZXNzaW9uIHRva2Vu
IGNhY2hlIGVudHJ5ICVxOiAlcyIsIHBhdGgsIGVycikKKwkJfQorCQl1cmxQYXRoLCBlcnIgOj0g
bmV0dXJsLlBhdGhVbmVzY2FwZShuYW1lWzpsZW4obmFtZSktNl0pCisJCWlmIGVyciAhPSBuaWwg
eworCQkJcmV0dXJuIGZtdC5FcnJvcmYoIkZhaWxlZCB0byB1bmVzY2FwZSB0b2tlbiBmaWxlbmFt
ZSAlcTogJXMiLCBuYW1lLCBlcnIpCisJCX0KKwkJc2VydmVyLlByZWZpeFRva2Vuc1t1cmxQYXRo
XSA9IHN0cmluZyhjb250ZW50cykKKwkJbG9hZGVkKysKKwl9CisKKwlsb2cuUHJpbnRmKCJMb2Fk
ZWQgJWQgY2FjaGVkIHRva2VucyIsIGxvYWRlZCkKKwlyZXR1cm4gbmlsCit9CisKK2Z1bmMgdHJp
bUxlYWRpbmdTbGFzaChzIHN0cmluZykgc3RyaW5nIHsKKwlpZiBzdHJpbmdzLkhhc1ByZWZpeChz
LCAiLyIpIHsKKwkJcmV0dXJuIHNbMTpdCisJfQorCXJldHVybiBzCit9CisKK2Z1bmMgbWFpbigp
IHsKKwlmbGFnLlBhcnNlKCkKKworCXZhciBjb25maWcgQ29uZmlnCisJaWYgZXJyIDo9IGpzb25G
cm9tRmlsZSgmY29uZmlnLCAqY29uZmlnRmlsZW5hbWUpOyBlcnIgIT0gbmlsIHsKKwkJbG9nLkZh
dGFsZigiRmFpbGVkIHRvIGxvYWQgY29uZmlnIGZpbGU6ICVzIiwgZXJyKQorCX0KKworCWlmIGxl
bihjb25maWcuVE9UUFNlY3JldCkgPT0gMCB7CisJCWxvZy5GYXRhbCgiQ29uZmlnIGZpbGUgbWlz
c2luZyBUT1RQU2VjcmV0IikKKwl9CisJdG90cFNlY3JldCwgZXJyIDo9IGJhc2U2NC5TdGRFbmNv
ZGluZy5EZWNvZGVTdHJpbmcoY29uZmlnLlRPVFBTZWNyZXQpCisJaWYgZXJyICE9IG5pbCB7CisJ
CWxvZy5GYXRhbGYoIkZhaWxlZCB0byBkZWNvZGUgVE9UUCBzZWNyZXQgZnJvbSBjb25maWcgZmls
ZTogJXMiLCBlcnIpCisJfQorCisJaWYgbGVuKGNvbmZpZy5DZXJ0UEVNRmlsZSkgPT0gMCB7CisJ
CWxvZy5GYXRhbCgiQ29uZmlnIGZpbGUgbWlzc2luZyBDZXJ0UEVNRmlsZSIpCisJfQorCWNlcnRQ
RU0sIGVyciA6PSBpb3V0aWwuUmVhZEZpbGUoY29uZmlnLkNlcnRQRU1GaWxlKQorCWlmIGVyciAh
PSBuaWwgeworCQlsb2cuRmF0YWxmKCJmYWlsZWQgdG8gcmVhZCBjZXJ0aWZpY2F0ZSBmcm9tICVx
OiAlcyIsIGNvbmZpZy5DZXJ0UEVNRmlsZSwgZXJyKQorCX0KKwlibG9jaywgXyA6PSBwZW0uRGVj
b2RlKGNlcnRQRU0pCisJY2VydERFUiA6PSBibG9jay5CeXRlcworCisJaWYgbGVuKGNvbmZpZy5Q
cml2YXRlS2V5REVSRmlsZSkgPT0gMCB7CisJCWxvZy5GYXRhbCgiQ29uZmlnIGZpbGUgbWlzc2lu
ZyBQcml2YXRlS2V5REVSRmlsZSIpCisJfQorCWtleURFUiwgZXJyIDo9IGlvdXRpbC5SZWFkRmls
ZShjb25maWcuUHJpdmF0ZUtleURFUkZpbGUpCisJaWYgZXJyICE9IG5pbCB7CisJCWxvZy5GYXRh
bGYoImZhaWxlZCB0byByZWFkIHByaXZhdGUga2V5IGZyb20gJXE6ICVzIiwgY29uZmlnLlByaXZh
dGVLZXlERVJGaWxlLCBlcnIpCisJfQorCisJY2VydEtleSwgZXJyIDo9IHg1MDkuUGFyc2VQS0NT
MVByaXZhdGVLZXkoa2V5REVSKQorCWlmIGVyciAhPSBuaWwgeworCQlsb2cuRmF0YWxmKCJmYWls
ZWQgdG8gcGFyc2UgcHJpdmF0ZSBrZXkgZnJvbSAlcTogJXMiLCBjb25maWcuUHJpdmF0ZUtleURF
UkZpbGUsIGVycikKKwl9CisKKwl2YXIgbWlkZGxlIE1pZGRsZQorCW1pZGRsZSwgZXJyID0gc3Vi
cHJvY2Vzcy5OZXcoKndyYXBwZXJQYXRoKQorCWlmIGVyciAhPSBuaWwgeworCQlsb2cuRmF0YWxm
KCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBtaWRkbGU6ICVzIiwgZXJyKQorCX0KKwlkZWZlciBtaWRk
bGUuQ2xvc2UoKQorCisJY29uZmlnQnl0ZXMsIGVyciA6PSBtaWRkbGUuQ29uZmlnKCkKKwlpZiBl
cnIgIT0gbmlsIHsKKwkJbG9nLkZhdGFsZigiZmFpbGVkIHRvIGdldCBjb25maWcgZnJvbSBtaWRk
bGU6ICVzIiwgZXJyKQorCX0KKworCXZhciBzdXBwb3J0ZWRBbGdvcyBbXW1hcFtzdHJpbmddaW50
ZXJmYWNle30KKwlpZiBlcnIgOj0ganNvbi5Vbm1hcnNoYWwoY29uZmlnQnl0ZXMsICZzdXBwb3J0
ZWRBbGdvcyk7IGVyciAhPSBuaWwgeworCQlsb2cuRmF0YWxmKCJmYWlsZWQgdG8gcGFyc2UgY29u
ZmlndXJhdGlvbiBmcm9tIE1pZGRsZTogJXMiLCBlcnIpCisJfQorCisJcnVuQWxnb3MgOj0gbWFr
ZShtYXBbc3RyaW5nXWJvb2wpCisJaWYgbGVuKCpydW5GbGFnKSA+IDAgeworCQlmb3IgXywgc3Vi
c3RyIDo9IHJhbmdlIHN0cmluZ3MuU3BsaXQoKnJ1bkZsYWcsICIsIikgeworCQkJcnVuQWxnb3Nb
c3Vic3RyXSA9IGZhbHNlCisJCX0KKwl9CisKKwl2YXIgYWxnb3JpdGhtcyBbXW1hcFtzdHJpbmdd
aW50ZXJmYWNle30KKwlmb3IgXywgc3VwcG9ydGVkQWxnbyA6PSByYW5nZSBzdXBwb3J0ZWRBbGdv
cyB7CisJCWFsZ29JbnRlcmZhY2UsIG9rIDo9IHN1cHBvcnRlZEFsZ29bImFsZ29yaXRobSJdCisJ
CWlmICFvayB7CisJCQljb250aW51ZQorCQl9CisKKwkJYWxnbywgb2sgOj0gYWxnb0ludGVyZmFj
ZS4oc3RyaW5nKQorCQlpZiAhb2sgeworCQkJY29udGludWUKKwkJfQorCisJCWlmIF8sIG9rIDo9
IHJ1bkFsZ29zW2FsZ29dOyBvayB7CisJCQlhbGdvcml0aG1zID0gYXBwZW5kKGFsZ29yaXRobXMs
IHN1cHBvcnRlZEFsZ28pCisJCQlydW5BbGdvc1thbGdvXSA9IHRydWUKKwkJfQorCX0KKworCWZv
ciBhbGdvLCByZWNvZ25pc2VkIDo9IHJhbmdlIHJ1bkFsZ29zIHsKKwkJaWYgIXJlY29nbmlzZWQg
eworCQkJbG9nLkZhdGFsZigicmVxdWVzdGVkIGFsZ29yaXRobSAlcSB3YXMgbm90IHJlY29nbmlz
ZWQiLCBhbGdvKQorCQl9CisJfQorCisJaWYgbGVuKGNvbmZpZy5BQ1ZQU2VydmVyKSA9PSAwIHsK
KwkJY29uZmlnLkFDVlBTZXJ2ZXIgPSAiaHR0cHM6Ly9kZW1vLmFjdnRzLm5pc3QuZ292LyIKKwl9
CisJc2VydmVyIDo9IGFjdnAuTmV3U2VydmVyKGNvbmZpZy5BQ1ZQU2VydmVyLCBjb25maWcuTG9n
RmlsZSwgW11bXWJ5dGV7Y2VydERFUn0sIGNlcnRLZXksIGZ1bmMoKSBzdHJpbmcgeworCQlyZXR1
cm4gVE9UUCh0b3RwU2VjcmV0WzpdKQorCX0pCisKKwl2YXIgc2Vzc2lvblRva2Vuc0NhY2hlRGly
IHN0cmluZworCWlmIGxlbihjb25maWcuU2Vzc2lvblRva2Vuc0NhY2hlKSA+IDAgeworCQlzZXNz
aW9uVG9rZW5zQ2FjaGVEaXIgPSBjb25maWcuU2Vzc2lvblRva2Vuc0NhY2hlCisJCWlmIHN0cmlu
Z3MuSGFzUHJlZml4KHNlc3Npb25Ub2tlbnNDYWNoZURpciwgIn4vIikgeworCQkJaG9tZSA6PSBv
cy5HZXRlbnYoIkhPTUUiKQorCQkJaWYgbGVuKGhvbWUpID09IDAgeworCQkJCWxvZy5GYXRhbCgi
fiB1c2VkIGluIGNvbmZpZyBmaWxlIGJ1dCAkSE9NRSBub3Qgc2V0IikKKwkJCX0KKwkJCXNlc3Np
b25Ub2tlbnNDYWNoZURpciA9IGZpbGVwYXRoLkpvaW4oaG9tZSwgc2Vzc2lvblRva2Vuc0NhY2hl
RGlyWzI6XSkKKwkJfQorCisJCWlmIGVyciA6PSBsb2FkQ2FjaGVkU2Vzc2lvblRva2VucyhzZXJ2
ZXIsIHNlc3Npb25Ub2tlbnNDYWNoZURpcik7IGVyciAhPSBuaWwgeworCQkJbG9nLkZhdGFsKGVy
cikKKwkJfQorCX0KKworCWlmIGVyciA6PSBzZXJ2ZXIuTG9naW4oKTsgZXJyICE9IG5pbCB7CisJ
CWxvZy5GYXRhbGYoImZhaWxlZCB0byBsb2dpbjogJXMiLCBlcnIpCisJfQorCisJaWYgbGVuKCpy
dW5GbGFnKSA9PSAwIHsKKwkJcnVuSW50ZXJhY3RpdmUoc2VydmVyLCBjb25maWcpCisJCXJldHVy
bgorCX0KKworCXJlcXVlc3RCeXRlcywgZXJyIDo9IGpzb24uTWFyc2hhbChhY3ZwLlRlc3RTZXNz
aW9ueworCQlJc1NhbXBsZTogICAgdHJ1ZSwKKwkJUHVibGlzaGFibGU6IGZhbHNlLAorCQlBbGdv
cml0aG1zOiAgYWxnb3JpdGhtcywKKwl9KQorCWlmIGVyciAhPSBuaWwgeworCQlsb2cuRmF0YWxm
KCJGYWlsZWQgdG8gc2VyaWFsaXNlIEpTT046ICVzIiwgZXJyKQorCX0KKworCXZhciByZXN1bHQg
YWN2cC5UZXN0U2Vzc2lvbgorCWlmIGVyciA6PSBzZXJ2ZXIuUG9zdCgmcmVzdWx0LCAiYWN2cC92
MS90ZXN0U2Vzc2lvbnMiLCByZXF1ZXN0Qnl0ZXMpOyBlcnIgIT0gbmlsIHsKKwkJbG9nLkZhdGFs
ZigiUmVxdWVzdCB0byBjcmVhdGUgdGVzdCBzZXNzaW9uIGZhaWxlZDogJXMiLCBlcnIpCisJfQor
CisJdXJsIDo9IHRyaW1MZWFkaW5nU2xhc2gocmVzdWx0LlVSTCkKKwlsb2cuUHJpbnRmKCJDcmVh
dGVkIHRlc3Qgc2Vzc2lvbiAlcSIsIHVybCkKKwlpZiB0b2tlbiA6PSByZXN1bHQuQWNjZXNzVG9r
ZW47IGxlbih0b2tlbikgPiAwIHsKKwkJc2VydmVyLlByZWZpeFRva2Vuc1t1cmxdID0gdG9rZW4K
KwkJaWYgbGVuKHNlc3Npb25Ub2tlbnNDYWNoZURpcikgPiAwIHsKKwkJCWlvdXRpbC5Xcml0ZUZp
bGUoZmlsZXBhdGguSm9pbihzZXNzaW9uVG9rZW5zQ2FjaGVEaXIsIG5ldHVybC5QYXRoRXNjYXBl
KHVybCkpKyIudG9rZW4iLCBbXWJ5dGUodG9rZW4pLCAwNjAwKQorCQl9CisJfQorCisJbG9nLlBy
aW50ZigiSGF2ZSB2ZWN0b3Igc2V0cyAldiIsIHJlc3VsdC5WZWN0b3JTZXRVUkxzKQorCisJZm9y
IF8sIHNldFVSTCA6PSByYW5nZSByZXN1bHQuVmVjdG9yU2V0VVJMcyB7CisJCWZpcnN0VGltZSA6
PSB0cnVlCisJCWZvciB7CisJCQlpZiBmaXJzdFRpbWUgeworCQkJCWxvZy5QcmludGYoIkZldGNo
aW5nIHRlc3QgdmVjdG9ycyAlcSIsIHNldFVSTCkKKwkJCQlmaXJzdFRpbWUgPSBmYWxzZQorCQkJ
fQorCisJCQl2ZWN0b3JzQnl0ZXMsIGVyciA6PSBzZXJ2ZXIuR2V0Qnl0ZXModHJpbUxlYWRpbmdT
bGFzaChzZXRVUkwpKQorCQkJaWYgZXJyICE9IG5pbCB7CisJCQkJbG9nLkZhdGFsZigiRmFpbGVk
IHRvIGZldGNoIHZlY3RvciBzZXQgJXE6ICVzIiwgc2V0VVJMLCBlcnIpCisJCQl9CisKKwkJCXZh
ciB2ZWN0b3JzIGFjdnAuVmVjdG9ycworCQkJaWYgZXJyIDo9IGpzb24uVW5tYXJzaGFsKHZlY3Rv
cnNCeXRlcywgJnZlY3RvcnMpOyBlcnIgIT0gbmlsIHsKKwkJCQlsb2cuRmF0YWxmKCJGYWlsZWQg
dG8gcGFyc2UgdmVjdG9yIHNldCBmcm9tICVxOiAlcyIsIHNldFVSTCwgZXJyKQorCQkJfQorCisJ
CQlpZiByZXRyeSA6PSB2ZWN0b3JzLlJldHJ5OyByZXRyeSA+IDAgeworCQkJCWxvZy5QcmludGYo
IlNlcnZlciByZXF1ZXN0ZWQgJWQgc2Vjb25kcyBkZWxheSIsIHJldHJ5KQorCQkJCWlmIHJldHJ5
ID4gMTAgeworCQkJCQlyZXRyeSA9IDEwCisJCQkJfQorCQkJCXRpbWUuU2xlZXAodGltZS5EdXJh
dGlvbihyZXRyeSkgKiB0aW1lLlNlY29uZCkKKwkJCQljb250aW51ZQorCQkJfQorCisJCQlyZXBs
eUdyb3VwcywgZXJyIDo9IG1pZGRsZS5Qcm9jZXNzKHZlY3RvcnMuQWxnbywgdmVjdG9yc0J5dGVz
KQorCQkJaWYgZXJyICE9IG5pbCB7CisJCQkJbG9nLlByaW50ZigiRmFpbGVkOiAlcyIsIGVycikK
KwkJCQlsb2cuUHJpbnRmKCJEZWxldGluZyB0ZXN0IHNldCIpCisJCQkJc2VydmVyLkRlbGV0ZSh1
cmwpCisJCQkJb3MuRXhpdCgxKQorCQkJfQorCisJCQloZWFkZXJCeXRlcywgZXJyIDo9IGpzb24u
TWFyc2hhbChhY3ZwLlZlY3RvcnN7CisJCQkJSUQ6ICAgdmVjdG9ycy5JRCwKKwkJCQlBbGdvOiB2
ZWN0b3JzLkFsZ28sCisJCQl9KQorCQkJaWYgZXJyICE9IG5pbCB7CisJCQkJbG9nLlByaW50Zigi
RmFpbGVkIHRvIG1hcnNoYWwgcmVzdWx0OiAlcyIsIGVycikKKwkJCQlsb2cuUHJpbnRmKCJEZWxl
dGluZyB0ZXN0IHNldCIpCisJCQkJc2VydmVyLkRlbGV0ZSh1cmwpCisJCQkJb3MuRXhpdCgxKQor
CQkJfQorCisJCQl2YXIgcmVzdWx0QnVmIGJ5dGVzLkJ1ZmZlcgorCQkJcmVzdWx0QnVmLldyaXRl
KGhlYWRlckJ5dGVzWzpsZW4oaGVhZGVyQnl0ZXMpLTFdKQorCQkJcmVzdWx0QnVmLldyaXRlU3Ry
aW5nKGAsInRlc3RHcm91cHMiOmApCisJCQlyZXN1bHRCdWYuV3JpdGUocmVwbHlHcm91cHMpCisJ
CQlyZXN1bHRCdWYuV3JpdGVTdHJpbmcoIn0iKQorCisJCQlyZXN1bHREYXRhIDo9IHJlc3VsdEJ1
Zi5CeXRlcygpCisJCQlyZXN1bHRTaXplIDo9IHVpbnQ2NChsZW4ocmVzdWx0RGF0YSkpICsgMzIg
LyogZm9yIGZyYW1pbmcgb3ZlcmhlYWQgKi8KKwkJCWlmIHJlc3VsdFNpemUgPj0gc2VydmVyLlNp
emVMaW1pdCB7CisJCQkJbG9nLlByaW50ZigiUmVzdWx0IGlzICVkIGJ5dGVzLCB0b28gbXVjaCBn
aXZlbiBzZXJ2ZXIgbGltaXQgb2YgJWQgYnl0ZXMuIFVzaW5nIGxhcmdlLXVwbG9hZCBwcm9jZXNz
LiIsIHJlc3VsdFNpemUsIHNlcnZlci5TaXplTGltaXQpCisJCQkJbGFyZ2VSZXF1ZXN0Qnl0ZXMs
IGVyciA6PSBqc29uLk1hcnNoYWwoYWN2cC5MYXJnZVVwbG9hZFJlcXVlc3R7CisJCQkJCVNpemU6
IHJlc3VsdFNpemUsCisJCQkJCVVSTDogIHNldFVSTCwKKwkJCQl9KQorCQkJCWlmIGVyciAhPSBu
aWwgeworCQkJCQlsb2cuUHJpbnRmKCJGYWlsZWQgdG8gbWFyc2hhbCBsYXJnZS11cGxvYWQgcmVx
dWVzdDogJXMiLCBlcnIpCisJCQkJCWxvZy5QcmludGYoIkRlbGV0aW5nIHRlc3Qgc2V0IikKKwkJ
CQkJc2VydmVyLkRlbGV0ZSh1cmwpCisJCQkJCW9zLkV4aXQoMSkKKwkJCQl9CisKKwkJCQl2YXIg
bGFyZ2VSZXNwb25zZSBhY3ZwLkxhcmdlVXBsb2FkUmVzcG9uc2UKKwkJCQlpZiBlcnIgOj0gc2Vy
dmVyLlBvc3QoJmxhcmdlUmVzcG9uc2UsICIvbGFyZ2UiLCBsYXJnZVJlcXVlc3RCeXRlcyk7IGVy
ciAhPSBuaWwgeworCQkJCQlsb2cuRmF0YWxmKCJGYWlsZWQgdG8gcmVxdWVzdCBsYXJnZS11cGxv
YWQgZW5kcG9pbnQ6ICVzIiwgZXJyKQorCQkJCX0KKworCQkJCWxvZy5QcmludGYoIkRpcmVjdGVk
IHRvIGxhcmdlLXVwbG9hZCBlbmRwb2ludCBhdCAlcSIsIGxhcmdlUmVzcG9uc2UuVVJMKQorCQkJ
CWNsaWVudCA6PSAmaHR0cC5DbGllbnR7fQorCQkJCXJlcSwgZXJyIDo9IGh0dHAuTmV3UmVxdWVz
dCgiUE9TVCIsIGxhcmdlUmVzcG9uc2UuVVJMLCBieXRlcy5OZXdCdWZmZXIocmVzdWx0RGF0YSkp
CisJCQkJaWYgZXJyICE9IG5pbCB7CisJCQkJCWxvZy5GYXRhbGYoIkZhaWxlZCB0byBjcmVhdGUg
UE9TVCByZXF1ZXN0OiAlcyIsIGVycikKKwkJCQl9CisJCQkJdG9rZW4gOj0gbGFyZ2VSZXNwb25z
ZS5BY2Nlc3NUb2tlbgorCQkJCWlmIGxlbih0b2tlbikgPT0gMCB7CisJCQkJCXRva2VuID0gc2Vy
dmVyLkFjY2Vzc1Rva2VuCisJCQkJfQorCQkJCXJlcS5IZWFkZXIuQWRkKCJBdXRob3JpemF0aW9u
IiwgIkJlYXJlciAiK3Rva2VuKQorCQkJCXJlcS5IZWFkZXIuQWRkKCJDb250ZW50LVR5cGUiLCAi
YXBwbGljYXRpb24vanNvbiIpCisJCQkJcmVzcCwgZXJyIDo9IGNsaWVudC5EbyhyZXEpCisJCQkJ
aWYgZXJyICE9IG5pbCB7CisJCQkJCWxvZy5GYXRhbGYoIkZhaWxlZCB3cml0aW5nIGxhcmdlIHVw
bG9hZDogJXMiLCBlcnIpCisJCQkJfQorCQkJCXJlc3AuQm9keS5DbG9zZSgpCisJCQkJaWYgcmVz
cC5TdGF0dXNDb2RlICE9IDIwMCB7CisJCQkJCWxvZy5GYXRhbGYoIkxhcmdlIHVwbG9hZCByZXN1
bHRlZCBpbiBzdGF0dXMgY29kZSAlZCIsIHJlc3AuU3RhdHVzQ29kZSkKKwkJCQl9CisJCQl9IGVs
c2UgeworCQkJCWxvZy5QcmludGYoIlJlc3VsdCBzaXplICVkIGJ5dGVzIiwgcmVzdWx0U2l6ZSkK
KwkJCQlpZiBlcnIgOj0gc2VydmVyLlBvc3QobmlsLCB0cmltTGVhZGluZ1NsYXNoKHNldFVSTCkr
Ii9yZXN1bHRzIiwgcmVzdWx0RGF0YSk7IGVyciAhPSBuaWwgeworCQkJCQlsb2cuRmF0YWxmKCJG
YWlsZWQgdG8gdXBsb2FkIHJlc3VsdHM6ICVzXG4iLCBlcnIpCisJCQkJfQorCQkJfQorCisJCQli
cmVhaworCQl9CisJfQorCitGZXRjaFJlc3VsdHM6CisJZm9yIHsKKwkJdmFyIHJlc3VsdHMgYWN2
cC5TZXNzaW9uUmVzdWx0cworCQlpZiBlcnIgOj0gc2VydmVyLkdldCgmcmVzdWx0cywgdHJpbUxl
YWRpbmdTbGFzaCh1cmwpKyIvcmVzdWx0cyIpOyBlcnIgIT0gbmlsIHsKKwkJCWxvZy5GYXRhbGYo
IkZhaWxlZCB0byBmZXRjaCBzZXNzaW9uIHJlc3VsdHM6ICVzIiwgZXJyKQorCQl9CisKKwkJaWYg
cmVzdWx0cy5QYXNzZWQgeworCQkJYnJlYWsKKwkJfQorCisJCWZvciBfLCByZXN1bHQgOj0gcmFu
Z2UgcmVzdWx0cy5SZXN1bHRzIHsKKwkJCWlmIHJlc3VsdC5TdGF0dXMgPT0gImluY29tcGxldGUi
IHsKKwkJCQlsb2cuUHJpbnQoIlNlcnZlciBoYXNuJ3QgZmluaXNoZWQgcHJvY2Vzc2luZyByZXN1
bHRzLiBXYWl0aW5nIDEwIHNlY29uZHMuIikKKwkJCQl0aW1lLlNsZWVwKDEwICogdGltZS5TZWNv
bmQpCisJCQkJY29udGludWUgRmV0Y2hSZXN1bHRzCisJCQl9CisJCX0KKworCQlsb2cuRmF0YWxm
KCJTZXJ2ZXIgZGlkIG5vdCBhY2NlcHQgcmVzdWx0czogJSN2IiwgcmVzdWx0cykKKwl9Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9hY3ZwL2FjdnAuZ28g
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9hY3ZwL2FjdnAuZ28KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmY1ZDM2M2E3YjBlOWU3NjM3NDAxOWFhODQ4Y2ZmYjM3ZWJjMmQzOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9hY3ZwL2FjdnB0b29sL2FjdnAvYWN2cC5nbwpAQCAt
MCwwICsxLDY0NiBAQAorcGFja2FnZSBhY3ZwCisKK2ltcG9ydCAoCisJImJ5dGVzIgorCSJjcnlw
dG8iCisJImNyeXB0by90bHMiCisJImVuY29kaW5nL2Jhc2U2NCIKKwkiZW5jb2RpbmcvanNvbiIK
KwkiZXJyb3JzIgorCSJmbXQiCisJImlvIgorCSJpby9pb3V0aWwiCisJIm5ldCIKKwkibmV0L2h0
dHAiCisJIm5ldC91cmwiCisJIm9zIgorCSJyZWZsZWN0IgorCSJzdHJpbmdzIgorCSJ0aW1lIgor
KQorCisvLyBTZXJ2ZXIgcmVwcmVzZW50cyBhbiBBQ1ZQIHNlcnZlci4KK3R5cGUgU2VydmVyIHN0
cnVjdCB7CisJLy8gUHJlZml4VG9rZW5zIGFyZSBhY2Nlc3MgdG9rZW5zIHRoYXQgYXBwbHkgdG8g
VVJMcyB1bmRlciBhIGNlcnRhaW4gcHJlZml4LgorCS8vIFRoZSBrZXlzIG9mIHRoaXMgbWFwIGFy
ZSBzdHJpbmdzIGxpa2UgImFjdnAvdjEvdGVzdFNlc3Npb25zLzEyMzQiIGFuZCB0aGUKKwkvLyB2
YWx1ZXMgYXJlIEpXVCBhY2Nlc3MgdG9rZW5zLgorCVByZWZpeFRva2VucyBtYXBbc3RyaW5nXXN0
cmluZworCS8vIFNpemVMaW1pdCBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB0
aGUgc2VydmVyIGNhbiBhY2NlcHQgYXMgYW4KKwkvLyB1cGxvYWQgYmVmb3JlIHRoZSBsYXJnZSBl
bmRwb2ludCBzdXBwb3J0IG11c3QgYmUgdXNlZC4KKwlTaXplTGltaXQgdWludDY0CisJLy8gQWNj
ZXNzVG9rZW4gaXMgdGhlIHRvcC1sZXZlbCBhY2Nlc3MgdG9rZW4gZm9yIHRoZSBjdXJyZW50IHNl
c3Npb24uCisJQWNjZXNzVG9rZW4gc3RyaW5nCisKKwljbGllbnQgICAgICAqaHR0cC5DbGllbnQK
KwlwcmVmaXggICAgICBzdHJpbmcKKwl0b3RwRnVuYyAgICBmdW5jKCkgc3RyaW5nCit9CisKKy8v
IE5ld1NlcnZlciByZXR1cm5zIGEgZnJlc2ggU2VydmVyIGluc3RhbmNlIHJlcHJlc2VudGluZyB0
aGUgQUNWUCBzZXJ2ZXIgYXQKKy8vIHByZWZpeCAoZS5nLiAiaHR0cHM6Ly9hY3ZwLmV4YW1wbGUu
Y29tLyIpLiBBIGNvcHkgb2YgYWxsIGJ5dGVzIGV4Y2hhbmdlZAorLy8gd2lsbCBiZSB3cml0dGVu
IHRvIGxvZ0ZpbGUsIGlmIG5vdCBlbXB0eS4KK2Z1bmMgTmV3U2VydmVyKHByZWZpeCBzdHJpbmcs
IGxvZ0ZpbGUgc3RyaW5nLCBkZXJDZXJ0aWZpY2F0ZXMgW11bXWJ5dGUsIHByaXZhdGVLZXkgY3J5
cHRvLlByaXZhdGVLZXksIHRvdHAgZnVuYygpIHN0cmluZykgKlNlcnZlciB7CisJaWYgIXN0cmlu
Z3MuSGFzU3VmZml4KHByZWZpeCwgIi8iKSB7CisJCXByZWZpeCA9IHByZWZpeCArICIvIgorCX0K
KworCXRsc0NvbmZpZyA6PSAmdGxzLkNvbmZpZ3sKKwkJQ2VydGlmaWNhdGVzOiBbXXRscy5DZXJ0
aWZpY2F0ZXsKKwkJCXRscy5DZXJ0aWZpY2F0ZXsKKwkJCQlDZXJ0aWZpY2F0ZTogZGVyQ2VydGlm
aWNhdGVzLAorCQkJCVByaXZhdGVLZXk6ICBwcml2YXRlS2V5LAorCQkJfSwKKwkJfSwKKwkJUmVu
ZWdvdGlhdGlvbjogdGxzLlJlbmVnb3RpYXRlT25jZUFzQ2xpZW50LAorCX0KKworCWNsaWVudCA6
PSAmaHR0cC5DbGllbnR7CisJCVRyYW5zcG9ydDogJmh0dHAuVHJhbnNwb3J0eworCQkJRGlhbDog
ZnVuYyhuZXR3b3JrLCBhZGRyIHN0cmluZykgKG5ldC5Db25uLCBlcnJvcikgeworCQkJCXBhbmlj
KCJIVFRQIGNvbm5lY3Rpb24gcmVxdWVzdGVkIikKKwkJCX0sCisJCQlEaWFsVExTOiBmdW5jKG5l
dHdvcmssIGFkZHIgc3RyaW5nKSAobmV0LkNvbm4sIGVycm9yKSB7CisJCQkJY29ubiwgZXJyIDo9
IHRscy5EaWFsKG5ldHdvcmssIGFkZHIsIHRsc0NvbmZpZykKKwkJCQlpZiBlcnIgIT0gbmlsIHsK
KwkJCQkJcmV0dXJuIG5pbCwgZXJyCisJCQkJfQorCQkJCWlmIGxlbihsb2dGaWxlKSA+IDAgewor
CQkJCQlsb2dGaWxlLCBlcnIgOj0gb3MuT3BlbkZpbGUobG9nRmlsZSwgb3MuT19XUk9OTFl8b3Mu
T19DUkVBVEV8b3MuT19BUFBFTkQsIDA2MDApCisJCQkJCWlmIGVyciAhPSBuaWwgeworCQkJCQkJ
cmV0dXJuIG5pbCwgZXJyCisJCQkJCX0KKwkJCQkJcmV0dXJuICZsb2dnZXJ7Q29ubjogY29ubiwg
bG9nOiBsb2dGaWxlfSwgbmlsCisJCQkJfQorCQkJCXJldHVybiBjb25uLCBlcnIKKwkJCX0sCisJ
CX0sCisJCVRpbWVvdXQ6IDEwICogdGltZS5TZWNvbmQsCisJfQorCisJcmV0dXJuICZTZXJ2ZXJ7
Y2xpZW50OiBjbGllbnQsIHByZWZpeDogcHJlZml4LCB0b3RwRnVuYzogdG90cCwgUHJlZml4VG9r
ZW5zOiBtYWtlKG1hcFtzdHJpbmddc3RyaW5nKX0KK30KKwordHlwZSBsb2dnZXIgc3RydWN0IHsK
KwkqdGxzLkNvbm4KKwlsb2cgICAgICAgICAgICpvcy5GaWxlCisJbGFzdERpcmVjdGlvbiBpbnQK
K30KKwordmFyIG5ld0xpbmUgPSBbXWJ5dGV7J1xuJ30KKworZnVuYyAobCAqbG9nZ2VyKSBSZWFk
KGJ1ZiBbXWJ5dGUpIChpbnQsIGVycm9yKSB7CisJaWYgbC5sYXN0RGlyZWN0aW9uICE9IDEgewor
CQlsLmxvZy5Xcml0ZShuZXdMaW5lKQorCX0KKwlsLmxhc3REaXJlY3Rpb24gPSAxCisKKwluLCBl
cnIgOj0gbC5Db25uLlJlYWQoYnVmKQorCWlmIGVyciA9PSBuaWwgeworCQlsLmxvZy5Xcml0ZShi
dWZbOm5dKQorCX0KKwlyZXR1cm4gbiwgZXJyCit9CisKK2Z1bmMgKGwgKmxvZ2dlcikgV3JpdGUo
YnVmIFtdYnl0ZSkgKGludCwgZXJyb3IpIHsKKwlpZiBsLmxhc3REaXJlY3Rpb24gIT0gMiB7CisJ
CWwubG9nLldyaXRlKG5ld0xpbmUpCisJfQorCWwubGFzdERpcmVjdGlvbiA9IDIKKworCW4sIGVy
ciA6PSBsLkNvbm4uV3JpdGUoYnVmKQorCWlmIGVyciA9PSBuaWwgeworCQlsLmxvZy5Xcml0ZShi
dWZbOm5dKQorCX0KKwlyZXR1cm4gbiwgZXJyCit9CisKK2NvbnN0IHJlcXVlc3RQcmVmaXggPSBg
W3siYWN2VmVyc2lvbiI6IjEuMCJ9LGAKK2NvbnN0IHJlcXVlc3RTdWZmaXggPSAiXSIKKworLy8g
cGFyc2VIZWFkZXJFbGVtZW50IHBhcnNlcyB0aGUgZmlyc3QgSlNPTiBvYmplY3QgdGhhdCdzIGFs
d2F5cyByZXR1cm5lZCBieQorLy8gQUNWUCBzZXJ2ZXJzLiBJZiBzdWNjZXNzZnVsLCBpdCByZXR1
cm5zIGEgSlNPTiBEZWNvZGVyIHBvc2l0aW9uZWQganVzdAorLy8gYmVmb3JlIHRoZSBzZWNvbmQg
ZWxlbWVudC4KK2Z1bmMgcGFyc2VIZWFkZXJFbGVtZW50KGluIGlvLlJlYWRlcikgKCpqc29uLkRl
Y29kZXIsIGVycm9yKSB7CisJZGVjb2RlciA6PSBqc29uLk5ld0RlY29kZXIoaW4pCisJYXJyYXlT
dGFydCwgZXJyIDo9IGRlY29kZXIuVG9rZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4g
bmlsLCBlcnJvcnMuTmV3KCJmYWlsZWQgdG8gcmVhZCBmcm9tIHNlcnZlciByZXBseTogIiArIGVy
ci5FcnJvcigpKQorCX0KKwlpZiBkZWxpbSwgb2sgOj0gYXJyYXlTdGFydC4oanNvbi5EZWxpbSk7
ICFvayB8fCBkZWxpbSAhPSAnWycgeworCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJmb3VuZCAl
I3Ygd2hlbiBleHBlY3RpbmcgaW5pdGlhbCBhcnJheSBmcm9tIHNlcnZlciIsIGFycmF5U3RhcnQp
CisJfQorCisJdmFyIHZlcnNpb24gc3RydWN0IHsKKwkJVmVyc2lvbiBzdHJpbmcgYGpzb246ImFj
dlZlcnNpb24iYAorCX0KKwlpZiBlcnIgOj0gZGVjb2Rlci5EZWNvZGUoJnZlcnNpb24pOyBlcnIg
IT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ldygicGFyc2UgZXJyb3Igd2hpbGUgZGVj
b2RpbmcgdmVyc2lvbiBlbGVtZW50OiAiICsgZXJyLkVycm9yKCkpCisJfQorCWlmICFzdHJpbmdz
Lkhhc1ByZWZpeCh2ZXJzaW9uLlZlcnNpb24sICIxLiIpIHsKKwkJcmV0dXJuIG5pbCwgZm10LkVy
cm9yZigiZXhwZWN0ZWQgdmVyc2lvbiAxLiogZnJvbSBzZXJ2ZXIgYnV0IGZvdW5kICVxIiwgdmVy
c2lvbi5WZXJzaW9uKQorCX0KKworCXJldHVybiBkZWNvZGVyLCBuaWwKK30KKworLy8gcGFyc2VS
ZXBseVRvQnl0ZXMgcmVhZHMgdGhlIGNvbnRlbnRzIG9mIGFuIEFDVlAgcmVwbHkgYWZ0ZXIgcmVt
b3ZpbmcgdGhlCisvLyBoZWFkZXIgZWxlbWVudC4KK2Z1bmMgcGFyc2VSZXBseVRvQnl0ZXMoaW4g
aW8uUmVhZGVyKSAoW11ieXRlLCBlcnJvcikgeworCWRlY29kZXIsIGVyciA6PSBwYXJzZUhlYWRl
ckVsZW1lbnQoaW4pCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBuaWwsIGVycgorCX0KKwor
CWJ1ZiwgZXJyIDo9IGlvdXRpbC5SZWFkQWxsKGRlY29kZXIuQnVmZmVyZWQoKSkKKwlpZiBlcnIg
IT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgZXJyCisJfQorCisJcmVzdCwgZXJyIDo9IGlvdXRpbC5S
ZWFkQWxsKGluKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmlsLCBlcnIKKwl9CisJYnVm
ID0gYXBwZW5kKGJ1ZiwgcmVzdC4uLikKKworCWJ1ZiA9IGJ5dGVzLlRyaW1TcGFjZShidWYpCisJ
aWYgbGVuKGJ1ZikgPT0gMCB8fCBidWZbMF0gIT0gJywnIHsKKwkJcmV0dXJuIG5pbCwgZXJyb3Jz
Lk5ldygiZGlkbid0IGZpbmQgaW5pdGlhbCAnLCciKQorCX0KKwlidWYgPSBidWZbMTpdCisKKwlp
ZiBsZW4oYnVmKSA9PSAwIHx8IGJ1ZltsZW4oYnVmKS0xXSAhPSAnXScgeworCQlyZXR1cm4gbmls
LCBlcnJvcnMuTmV3KCJkaWRuJ3QgZmluZCB0cmFpbGluZyAnXSciKQorCX0KKwlidWYgPSBidWZb
OmxlbihidWYpLTFdCisKKwlyZXR1cm4gYnVmLCBuaWwKK30KKworLy8gcGFyc2VSZXBseSBwYXJz
ZXMgdGhlIGNvbnRlbnRzIG9mIGFuIEFDVlAgcmVwbHkgKGFmdGVyIHJlbW92aW5nIHRoZSBoZWFk
ZXIKKy8vIGVsZW1lbnQpIGludG8gb3V0LiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGVu
Y29kaW5nL2pzb24gcGFja2FnZSBmb3IKKy8vIGRldGFpbHMgb2YgdGhlIHBhcnNpbmcuCitmdW5j
IHBhcnNlUmVwbHkob3V0IGludGVyZmFjZXt9LCBpbiBpby5SZWFkZXIpIGVycm9yIHsKKwlpZiBv
dXQgPT0gbmlsIHsKKwkJLy8gTm8gcmVwbHkgZXhwZWN0ZWQuCisJCXJldHVybiBuaWwKKwl9CisK
KwlkZWNvZGVyLCBlcnIgOj0gcGFyc2VIZWFkZXJFbGVtZW50KGluKQorCWlmIGVyciAhPSBuaWwg
eworCQlyZXR1cm4gZXJyCisJfQorCisJaWYgZXJyIDo9IGRlY29kZXIuRGVjb2RlKG91dCk7IGVy
ciAhPSBuaWwgeworCQlyZXR1cm4gZXJyb3JzLk5ldygiZXJyb3Igd2hpbGUgZGVjb2RpbmcgcmVw
bHkgYm9keTogIiArIGVyci5FcnJvcigpKQorCX0KKworCWFycmF5RW5kLCBlcnIgOj0gZGVjb2Rl
ci5Ub2tlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBlcnJvcnMuTmV3KCJmYWlsZWQg
dG8gcmVhZCBlbmQgb2YgcmVwbHkgZnJvbSBzZXJ2ZXI6ICIgKyBlcnIuRXJyb3IoKSkKKwl9CisJ
aWYgZGVsaW0sIG9rIDo9IGFycmF5RW5kLihqc29uLkRlbGltKTsgIW9rIHx8IGRlbGltICE9ICdd
JyB7CisJCXJldHVybiBmbXQuRXJyb3JmKCJmb3VuZCAlI3Ygd2hlbiBleHBlY3RpbmcgZW5kIG9m
IGFycmF5IGZyb20gc2VydmVyIiwgYXJyYXlFbmQpCisJfQorCWlmIGRlY29kZXIuTW9yZSgpIHsK
KwkJcmV0dXJuIGVycm9ycy5OZXcoInVuZXhwZWN0ZWQgdHJhaWxpbmcgZGF0YSBmcm9tIHNlcnZl
ciIpCisJfQorCisJcmV0dXJuIG5pbAorfQorCisvLyBleHBpcmVkIHJldHVybnMgdHJ1ZSBpZiB0
aGUgZ2l2ZW4gSldUIHRva2VuIGhhcyBleHBpcmVkLgorZnVuYyBleHBpcmVkKHRva2VuU3RyIHN0
cmluZykgYm9vbCB7CisJcGFydHMgOj0gc3RyaW5ncy5TcGxpdCh0b2tlblN0ciwgIi4iKQorCWlm
IGxlbihwYXJ0cykgIT0gMyB7CisJCXJldHVybiBmYWxzZQorCX0KKwlqc29uQnl0ZXMsIGVyciA6
PSBiYXNlNjQuUmF3VVJMRW5jb2RpbmcuRGVjb2RlU3RyaW5nKHBhcnRzWzFdKQorCWlmIGVyciAh
PSBuaWwgeworCQlyZXR1cm4gZmFsc2UKKwl9CisJdmFyIHRva2VuIHN0cnVjdCB7CisJCUV4cGly
eSB1aW50NjQgYGpzb246ImV4cCJgCisJfQorCWlmIGpzb24uVW5tYXJzaGFsKGpzb25CeXRlcywg
JnRva2VuKSAhPSBuaWwgeworCQlyZXR1cm4gZmFsc2UKKwl9CisJcmV0dXJuIHRva2VuLkV4cGly
eSA+IDAgJiYgdG9rZW4uRXhwaXJ5IDwgdWludDY0KHRpbWUuTm93KCkuVW5peCgpKQorfQorCitm
dW5jIChzZXJ2ZXIgKlNlcnZlcikgZ2V0VG9rZW4oZW5kUG9pbnQgc3RyaW5nKSAoc3RyaW5nLCBl
cnJvcikgeworCWZvciBwYXRoLCB0b2tlbiA6PSByYW5nZSBzZXJ2ZXIuUHJlZml4VG9rZW5zIHsK
KwkJaWYgZW5kUG9pbnQgIT0gcGF0aCAmJiAhc3RyaW5ncy5IYXNQcmVmaXgoZW5kUG9pbnQsIHBh
dGgrIi8iKSB7CisJCQljb250aW51ZQorCQl9CisKKwkJaWYgIWV4cGlyZWQodG9rZW4pIHsKKwkJ
CXJldHVybiB0b2tlbiwgbmlsCisJCX0KKworCQl2YXIgcmVwbHkgc3RydWN0IHsKKwkJCUFjY2Vz
c1Rva2VuIHN0cmluZyBganNvbjoiYWNjZXNzVG9rZW4iYAorCQl9CisJCWlmIGVyciA6PSBzZXJ2
ZXIucG9zdE1lc3NhZ2UoJnJlcGx5LCAiYWN2cC92MS9sb2dpbiIsIG1hcFtzdHJpbmddc3RyaW5n
eworCQkJInBhc3N3b3JkIjogICAgc2VydmVyLnRvdHBGdW5jKCksCisJCQkiYWNjZXNzVG9rZW4i
OiB0b2tlbiwKKwkJfSk7IGVyciAhPSBuaWwgeworCQkJcmV0dXJuICIiLCBlcnIKKwkJfQorCQlz
ZXJ2ZXIuUHJlZml4VG9rZW5zW3BhdGhdID0gcmVwbHkuQWNjZXNzVG9rZW4KKwkJcmV0dXJuIHJl
cGx5LkFjY2Vzc1Rva2VuLCBuaWwKKwl9CisJcmV0dXJuIHNlcnZlci5BY2Nlc3NUb2tlbiwgbmls
Cit9CisKKy8vIExvZ2luIHNlbmRzIGEgbG9naW4gcmVxdWVzdCBhbmQgc3RvcmVzIHRoZSByZXR1
cm5lZCBhY2Nlc3MgdG9rZW5zIGZvciB1c2UKKy8vIHdpdGggZnV0dXJlIHJlcXVlc3RzLiBUaGUg
bG9naW4gcHJvY2VzcyBpc24ndCBzcGVjaWZpY2FsbHkgZG9jdW1lbnRlZCBpbgorLy8gZHJhZnQt
ZnVzc2VsbC1hY3ZwLXNwZWMgYW5kIHRoZSBiZXN0IHJlZmVyZW5jZSBpcworLy8gaHR0cHM6Ly9n
aXRodWIuY29tL3VzbmlzdGdvdi9BQ1ZQL3dpa2kjY3JlZGVudGlhbHMtZm9yLWFjY2Vzc2luZy10
aGUtZGVtby1zZXJ2ZXIKK2Z1bmMgKHNlcnZlciAqU2VydmVyKSBMb2dpbigpIGVycm9yIHsKKwl2
YXIgcmVwbHkgc3RydWN0IHsKKwkJQWNjZXNzVG9rZW4gICAgICAgICAgIHN0cmluZyBganNvbjoi
YWNjZXNzVG9rZW4iYAorCQlMYXJnZUVuZHBvaW50UmVxdWlyZWQgYm9vbCAgIGBqc29uOiJsYXJn
ZUVuZHBvaW50UmVxdWlyZWQiYAorCQlTaXplTGltaXQgICAgICAgICAgICAgdWludDY0IGBqc29u
OiJzaXplQ29uc3RyYWludCJgCisJfQorCisJaWYgZXJyIDo9IHNlcnZlci5wb3N0TWVzc2FnZSgm
cmVwbHksICJhY3ZwL3YxL2xvZ2luIiwgbWFwW3N0cmluZ11zdHJpbmd7InBhc3N3b3JkIjogc2Vy
dmVyLnRvdHBGdW5jKCl9KTsgZXJyICE9IG5pbCB7CisJCXJldHVybiBlcnIKKwl9CisKKwlpZiBs
ZW4ocmVwbHkuQWNjZXNzVG9rZW4pID09IDAgeworCQlyZXR1cm4gZXJyb3JzLk5ldygibG9naW4g
cmVwbHkgZGlkbid0IGNvbnRhaW4gYWNjZXNzIHRva2VuIikKKwl9CisJc2VydmVyLkFjY2Vzc1Rv
a2VuID0gcmVwbHkuQWNjZXNzVG9rZW4KKworCWlmIHJlcGx5LkxhcmdlRW5kcG9pbnRSZXF1aXJl
ZCB7CisJCWlmIHJlcGx5LlNpemVMaW1pdCA9PSAwIHsKKwkJCXJldHVybiBlcnJvcnMuTmV3KCJs
b2dpbiBpbmRpY2F0ZWQgbGFyZ2VFbmRwb2ludFJlcXVpcmVkIGJ1dCBkaWRuJ3QgcHJvdmlkZSBh
IHNpemVDb25zdHJhaW50IikKKwkJfQorCQlzZXJ2ZXIuU2l6ZUxpbWl0ID0gcmVwbHkuU2l6ZUxp
bWl0CisJfQorCisJcmV0dXJuIG5pbAorfQorCit0eXBlIFJlbGF0aW9uIGludAorCitjb25zdCAo
CisJRXF1YWxzICAgICAgICAgICBSZWxhdGlvbiA9IGlvdGEKKwlOb3RFcXVhbHMgICAgICAgIFJl
bGF0aW9uID0gaW90YQorCUdyZWF0ZXJUaGFuICAgICAgUmVsYXRpb24gPSBpb3RhCisJR3JlYXRl
clRoYW5FcXVhbCBSZWxhdGlvbiA9IGlvdGEKKwlMZXNzVGhhbiAgICAgICAgIFJlbGF0aW9uID0g
aW90YQorCUxlc3NUaGFuRXF1YWwgICAgUmVsYXRpb24gPSBpb3RhCisJQ29udGFpbnMgICAgICAg
ICBSZWxhdGlvbiA9IGlvdGEKKwlTdGFydHNXaXRoICAgICAgIFJlbGF0aW9uID0gaW90YQorCUVu
ZHNXaXRoICAgICAgICAgUmVsYXRpb24gPSBpb3RhCispCisKK2Z1bmMgKHJlbCBSZWxhdGlvbikg
U3RyaW5nKCkgc3RyaW5nIHsKKwlzd2l0Y2ggcmVsIHsKKwljYXNlIEVxdWFsczoKKwkJcmV0dXJu
ICJlcSIKKwljYXNlIE5vdEVxdWFsczoKKwkJcmV0dXJuICJuZSIKKwljYXNlIEdyZWF0ZXJUaGFu
OgorCQlyZXR1cm4gImd0IgorCWNhc2UgR3JlYXRlclRoYW5FcXVhbDoKKwkJcmV0dXJuICJnZSIK
KwljYXNlIExlc3NUaGFuOgorCQlyZXR1cm4gImx0IgorCWNhc2UgTGVzc1RoYW5FcXVhbDoKKwkJ
cmV0dXJuICJsZSIKKwljYXNlIENvbnRhaW5zOgorCQlyZXR1cm4gImNvbnRhaW5zIgorCWNhc2Ug
U3RhcnRzV2l0aDoKKwkJcmV0dXJuICJzdGFydCIKKwljYXNlIEVuZHNXaXRoOgorCQlyZXR1cm4g
ImVuZCIKKwlkZWZhdWx0OgorCQlwYW5pYygidW5rbm93biByZWxhdGlvbiIpCisJfQorfQorCit0
eXBlIENvbmRpdGlvbiBzdHJ1Y3QgeworCVBhcmFtICAgIHN0cmluZworCVJlbGF0aW9uIFJlbGF0
aW9uCisJVmFsdWUgICAgc3RyaW5nCit9CisKK3R5cGUgQ29uanVuY3Rpb24gW11Db25kaXRpb24K
KwordHlwZSBRdWVyeSBbXUNvbmp1bmN0aW9uCisKK2Z1bmMgKHF1ZXJ5IFF1ZXJ5KSB0b1VSTFBh
cmFtcygpIHN0cmluZyB7CisJdmFyIHJldCBzdHJpbmcKKworCWZvciBpLCBjb25qIDo9IHJhbmdl
IHF1ZXJ5IHsKKwkJZm9yIF8sIGNvbmQgOj0gcmFuZ2UgY29uaiB7CisJCQlpZiBsZW4ocmV0KSA+
IDAgeworCQkJCXJldCArPSAiJiIKKwkJCX0KKwkJCXJldCArPSBmbXQuU3ByaW50ZigiJXNbJWRd
PSVzOiVzIiwgdXJsLlF1ZXJ5RXNjYXBlKGNvbmQuUGFyYW0pLCBpLCBjb25kLlJlbGF0aW9uLlN0
cmluZygpLCB1cmwuUXVlcnlFc2NhcGUoY29uZC5WYWx1ZSkpCisJCX0KKwl9CisKKwlyZXR1cm4g
cmV0Cit9CisKK3ZhciBOb3RGb3VuZCA9IGVycm9ycy5OZXcoImFjdnA6IEhUVFAgY29kZSA0MDQi
KQorCitmdW5jIChzZXJ2ZXIgKlNlcnZlcikgbmV3UmVxdWVzdFdpdGhUb2tlbihtZXRob2QsIGVu
ZHBvaW50IHN0cmluZywgYm9keSBpby5SZWFkZXIpICgqaHR0cC5SZXF1ZXN0LCBlcnJvcikgewor
ICAgIHRva2VuLCBlcnIgOj0gc2VydmVyLmdldFRva2VuKGVuZHBvaW50KQorICAgIGlmIGVyciAh
PSBuaWwgeworICAgICAgICByZXR1cm4gbmlsLCBlcnIKKyAgICB9CisgICAgcmVxLCBlcnIgOj0g
aHR0cC5OZXdSZXF1ZXN0KG1ldGhvZCwgc2VydmVyLnByZWZpeCtlbmRwb2ludCwgYm9keSkKKyAg
ICBpZiBlcnIgIT0gbmlsIHsKKyAgICAgICAgcmV0dXJuIG5pbCwgZXJyCisgICAgfQorICAgIGlm
IGxlbih0b2tlbikgIT0gMCB7CisgICAgICAgcmVxLkhlYWRlci5BZGQoIkF1dGhvcml6YXRpb24i
LCAiQmVhcmVyICIrdG9rZW4pCisgICAgfQorICAgIHJldHVybiByZXEsIG5pbAorfQorCitmdW5j
IChzZXJ2ZXIgKlNlcnZlcikgR2V0KG91dCBpbnRlcmZhY2V7fSwgZW5kUG9pbnQgc3RyaW5nKSBl
cnJvciB7CisJcmVxLCBlcnIgOj0gc2VydmVyLm5ld1JlcXVlc3RXaXRoVG9rZW4oIkdFVCIsIGVu
ZFBvaW50LCBuaWwpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBlcnIKKwl9CisJcmVzcCwg
ZXJyIDo9IHNlcnZlci5jbGllbnQuRG8ocmVxKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4g
Zm10LkVycm9yZigiZXJyb3Igd2hpbGUgZmV0Y2hpbmcgY2h1bmsgZm9yICVxOiAlcyIsIGVuZFBv
aW50LCBlcnIpCisJfQorCisJZGVmZXIgcmVzcC5Cb2R5LkNsb3NlKCkKKwlpZiByZXNwLlN0YXR1
c0NvZGUgPT0gNDA0IHsKKwkJcmV0dXJuIE5vdEZvdW5kCisJfSBlbHNlIGlmIHJlc3AuU3RhdHVz
Q29kZSAhPSAyMDAgeworCQlyZXR1cm4gZm10LkVycm9yZigiYWN2cDogSFRUUCBlcnJvciAlZCIs
IHJlc3AuU3RhdHVzQ29kZSkKKwl9CisJcmV0dXJuIHBhcnNlUmVwbHkob3V0LCByZXNwLkJvZHkp
Cit9CisKK2Z1bmMgKHNlcnZlciAqU2VydmVyKSBHZXRCeXRlcyhlbmRQb2ludCBzdHJpbmcpIChb
XWJ5dGUsIGVycm9yKSB7CisJcmVxLCBlcnIgOj0gc2VydmVyLm5ld1JlcXVlc3RXaXRoVG9rZW4o
IkdFVCIsIGVuZFBvaW50LCBuaWwpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybiBuaWwsIGVy
cgorCX0KKwlyZXNwLCBlcnIgOj0gc2VydmVyLmNsaWVudC5EbyhyZXEpCisJaWYgZXJyICE9IG5p
bCB7CisJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoImVycm9yIHdoaWxlIGZldGNoaW5nIGNodW5r
IGZvciAlcTogJXMiLCBlbmRQb2ludCwgZXJyKQorCX0KKworCWRlZmVyIHJlc3AuQm9keS5DbG9z
ZSgpCisJaWYgcmVzcC5TdGF0dXNDb2RlID09IDQwNCB7CisJCXJldHVybiBuaWwsIE5vdEZvdW5k
CisJfSBlbHNlIGlmIHJlc3AuU3RhdHVzQ29kZSAhPSAyMDAgeworCQlyZXR1cm4gbmlsLCBmbXQu
RXJyb3JmKCJhY3ZwOiBIVFRQIGVycm9yICVkIiwgcmVzcC5TdGF0dXNDb2RlKQorCX0KKwlyZXR1
cm4gcGFyc2VSZXBseVRvQnl0ZXMocmVzcC5Cb2R5KQorfQorCitmdW5jIChzZXJ2ZXIgKlNlcnZl
cikgd3JpdGUobWV0aG9kIHN0cmluZywgcmVwbHkgaW50ZXJmYWNle30sIGVuZFBvaW50IHN0cmlu
ZywgY29udGVudHMgW11ieXRlKSBlcnJvciB7CisJdmFyIGJ1ZiBieXRlcy5CdWZmZXIKKwlidWYu
V3JpdGVTdHJpbmcocmVxdWVzdFByZWZpeCkKKwlidWYuV3JpdGUoY29udGVudHMpCisJYnVmLldy
aXRlU3RyaW5nKHJlcXVlc3RTdWZmaXgpCisKKwlyZXEsIGVyciA6PSBzZXJ2ZXIubmV3UmVxdWVz
dFdpdGhUb2tlbigiUE9TVCIsIGVuZFBvaW50LCAmYnVmKQorCWlmIGVyciAhPSBuaWwgeworCQly
ZXR1cm4gZXJyCisJfQorCXJlcS5IZWFkZXIuQWRkKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRp
b24vanNvbiIpCisJcmVzcCwgZXJyIDo9IHNlcnZlci5jbGllbnQuRG8ocmVxKQorCWlmIGVyciAh
PSBuaWwgeworCQlyZXR1cm4gZm10LkVycm9yZigiZXJyb3Igd2hpbGUgd3JpdGluZyB0byAlcTog
JXMiLCBlbmRQb2ludCwgZXJyKQorCX0KKworCWRlZmVyIHJlc3AuQm9keS5DbG9zZSgpCisJaWYg
cmVzcC5TdGF0dXNDb2RlID09IDQwNCB7CisJCXJldHVybiBOb3RGb3VuZAorCX0gZWxzZSBpZiBy
ZXNwLlN0YXR1c0NvZGUgIT0gMjAwIHsKKwkJcmV0dXJuIGZtdC5FcnJvcmYoImFjdnA6IEhUVFAg
ZXJyb3IgJWQiLCByZXNwLlN0YXR1c0NvZGUpCisJfQorCXJldHVybiBwYXJzZVJlcGx5KHJlcGx5
LCByZXNwLkJvZHkpCit9CisKK2Z1bmMgKHNlcnZlciAqU2VydmVyKSBwb3N0TWVzc2FnZShyZXBs
eSBpbnRlcmZhY2V7fSwgZW5kUG9pbnQgc3RyaW5nLCByZXF1ZXN0IGludGVyZmFjZXt9KSBlcnJv
ciB7CisJY29udGVudHMsIGVyciA6PSBqc29uLk1hcnNoYWwocmVxdWVzdCkKKwlpZiBlcnIgIT0g
bmlsIHsKKwkJcmV0dXJuIGVycgorCX0KKwlyZXR1cm4gc2VydmVyLndyaXRlKCJQT1NUIiwgcmVw
bHksIGVuZFBvaW50LCBjb250ZW50cykKK30KKworZnVuYyAoc2VydmVyICpTZXJ2ZXIpIFBvc3Qo
b3V0IGludGVyZmFjZXt9LCBlbmRQb2ludCBzdHJpbmcsIGNvbnRlbnRzIFtdYnl0ZSkgZXJyb3Ig
eworCXJldHVybiBzZXJ2ZXIud3JpdGUoIlBPU1QiLCBvdXQsIGVuZFBvaW50LCBjb250ZW50cykK
K30KKworZnVuYyAoc2VydmVyICpTZXJ2ZXIpIFB1dChvdXQgaW50ZXJmYWNle30sIGVuZFBvaW50
IHN0cmluZywgY29udGVudHMgW11ieXRlKSBlcnJvciB7CisJcmV0dXJuIHNlcnZlci53cml0ZSgi
UFVUIiwgb3V0LCBlbmRQb2ludCwgY29udGVudHMpCit9CisKK2Z1bmMgKHNlcnZlciAqU2VydmVy
KSBEZWxldGUoZW5kUG9pbnQgc3RyaW5nKSBlcnJvciB7CisJcmVxLCBlcnIgOj0gc2VydmVyLm5l
d1JlcXVlc3RXaXRoVG9rZW4oIkRFTEVURSIsIGVuZFBvaW50LCBuaWwpCisJcmVzcCwgZXJyIDo9
IHNlcnZlci5jbGllbnQuRG8ocmVxKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gZm10LkVy
cm9yZigiZXJyb3Igd2hpbGUgd3JpdGluZyB0byAlcTogJXMiLCBlbmRQb2ludCwgZXJyKQorCX0K
KworCWRlZmVyIHJlc3AuQm9keS5DbG9zZSgpCisJaWYgcmVzcC5TdGF0dXNDb2RlICE9IDIwMCB7
CisJCXJldHVybiBmbXQuRXJyb3JmKCJhY3ZwOiBIVFRQIGVycm9yICVkIiwgcmVzcC5TdGF0dXND
b2RlKQorCX0KKwlmbXQuUHJpbnRmKCJERUxFVEUgJXEgJWRcbiIsIHNlcnZlci5wcmVmaXgrZW5k
UG9pbnQsIHJlc3AuU3RhdHVzQ29kZSkKKwlyZXR1cm4gbmlsCit9CisKK3ZhciAoCisJdWludDY0
VHlwZSA9IHJlZmxlY3QuVHlwZU9mKHVpbnQ2NCgwKSkKKwlib29sVHlwZSAgID0gcmVmbGVjdC5U
eXBlT2YoZmFsc2UpCisJc3RyaW5nVHlwZSA9IHJlZmxlY3QuVHlwZU9mKCIiKQorKQorCisvLyBH
ZXRQYWdlZCByZXR1cm5zIGFuIGFycmF5IG9mIHJlY29yZHMgb2Ygc29tZSB0eXBlIHVzaW5nIG9u
ZSBvciBtb3JlIHJlcXVlc3RzIHRvIHRoZSBzZXJ2ZXIuIFNlZQorLy8gaHR0cHM6Ly91c25pc3Rn
b3YuZ2l0aHViLmlvL0FDVlAvYXJ0aWZhY3RzL2RyYWZ0LWZ1c3NlbGwtYWN2cC1zcGVjLTAwLmh0
bWwjcGFnaW5nX3Jlc3BvbnNlCitmdW5jIChzZXJ2ZXIgKlNlcnZlcikgR2V0UGFnZWQob3V0IGlu
dGVyZmFjZXt9LCBlbmRQb2ludCBzdHJpbmcsIGNvbmRpdGlvbiBRdWVyeSkgZXJyb3IgeworCW91
dHB1dCA6PSByZWZsZWN0LlZhbHVlT2Yob3V0KQorCWlmIG91dHB1dC5LaW5kKCkgIT0gcmVmbGVj
dC5QdHIgeworCQlwYW5pYyhmbXQuU3ByaW50ZigiR2V0UGFnZWQgb3V0cHV0IHBhcmFtZXRlciBv
ZiBub24tcG9pbnRlciB0eXBlICVUIiwgb3V0KSkKKwl9CisKKwl0b2tlbiwgZXJyIDo9IHNlcnZl
ci5nZXRUb2tlbihlbmRQb2ludCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIGVycgorCX0K
KworCW91dHB1dFNsaWNlIDo9IG91dHB1dC5FbGVtKCkKKworCXJlcGx5VHlwZSA6PSByZWZsZWN0
LlN0cnVjdE9mKFtdcmVmbGVjdC5TdHJ1Y3RGaWVsZHsKKwkJe05hbWU6ICJUb3RhbENvdW50Iiwg
VHlwZTogdWludDY0VHlwZSwgVGFnOiBganNvbjoidG90YWxDb3VudCJgfSwKKwkJe05hbWU6ICJJ
bmNvbXBsZXRlIiwgVHlwZTogYm9vbFR5cGUsIFRhZzogYGpzb246ImluY29tcGxldGUiYH0sCisJ
CXtOYW1lOiAiRGF0YSIsIFR5cGU6IG91dHB1dC5FbGVtKCkuVHlwZSgpLCBUYWc6IGBqc29uOiJk
YXRhImB9LAorCQl7TmFtZTogIkxpbmtzIiwgVHlwZTogcmVmbGVjdC5TdHJ1Y3RPZihbXXJlZmxl
Y3QuU3RydWN0RmllbGR7CisJCQl7TmFtZTogIk5leHQiLCBUeXBlOiBzdHJpbmdUeXBlLCBUYWc6
IGBqc29uOiJuZXh0ImB9LAorCQl9KSwgVGFnOiBganNvbjoibGlua3MiYH0sCisJfSkKKwluZXh0
VVJMIDo9IHNlcnZlci5wcmVmaXggKyBlbmRQb2ludAorCWNvbmRpdGlvblBhcmFtcyA6PSBjb25k
aXRpb24udG9VUkxQYXJhbXMoKQorCWlmIGxlbihjb25kaXRpb25QYXJhbXMpID4gMCB7CisJCW5l
eHRVUkwgKz0gIj8iICsgY29uZGl0aW9uUGFyYW1zCisJfQorCisJaXNGaXJzdFJlcXVlc3QgOj0g
dHJ1ZQorCWZvciB7CisJCXJlcSwgZXJyIDo9IGh0dHAuTmV3UmVxdWVzdCgiR0VUIiwgbmV4dFVS
TCwgbmlsKQorCQlpZiBlcnIgIT0gbmlsIHsKKwkJCXJldHVybiBlcnIKKwkJfQorCQlpZiBsZW4o
dG9rZW4pICE9IDAgeworCQkJcmVxLkhlYWRlci5BZGQoIkF1dGhvcml6YXRpb24iLCAiQmVhcmVy
ICIrdG9rZW4pCisJCX0KKwkJcmVzcCwgZXJyIDo9IHNlcnZlci5jbGllbnQuRG8ocmVxKQorCQlp
ZiBlcnIgIT0gbmlsIHsKKwkJCXJldHVybiBmbXQuRXJyb3JmKCJlcnJvciB3aGlsZSBmZXRjaGlu
ZyBjaHVuayBmb3IgJXE6ICVzIiwgZW5kUG9pbnQsIGVycikKKwkJfQorCQlpZiByZXNwLlN0YXR1
c0NvZGUgPT0gNDA0ICYmIGlzRmlyc3RSZXF1ZXN0IHsKKwkJCXJlc3AuQm9keS5DbG9zZSgpCisJ
CQlyZXR1cm4gbmlsCisJCX0gZWxzZSBpZiByZXNwLlN0YXR1c0NvZGUgIT0gMjAwIHsKKwkJCXJl
c3AuQm9keS5DbG9zZSgpCisJCQlyZXR1cm4gZm10LkVycm9yZigiYWN2cDogSFRUUCBlcnJvciAl
ZCIsIHJlc3AuU3RhdHVzQ29kZSkKKwkJfQorCQlpc0ZpcnN0UmVxdWVzdCA9IGZhbHNlCisKKwkJ
cmVwbHkgOj0gcmVmbGVjdC5OZXcocmVwbHlUeXBlKQorCQllcnIgPSBwYXJzZVJlcGx5KHJlcGx5
LkludGVyZmFjZSgpLCByZXNwLkJvZHkpCisJCXJlc3AuQm9keS5DbG9zZSgpCisJCWlmIGVyciAh
PSBuaWwgeworCQkJcmV0dXJuIGVycgorCQl9CisKKwkJZGF0YSA6PSByZXBseS5FbGVtKCkuRmll
bGRCeU5hbWUoIkRhdGEiKQorCQlmb3IgaSA6PSAwOyBpIDwgZGF0YS5MZW4oKTsgaSsrIHsKKwkJ
CW91dHB1dFNsaWNlLlNldChyZWZsZWN0LkFwcGVuZChvdXRwdXRTbGljZSwgZGF0YS5JbmRleChp
KSkpCisJCX0KKworCQlpZiB1aW50NjQob3V0cHV0U2xpY2UuTGVuKCkpID09IHJlcGx5LkVsZW0o
KS5GaWVsZEJ5TmFtZSgiVG90YWxDb3VudCIpLlVpbnQoKSB8fAorCQkJcmVwbHkuRWxlbSgpLkZp
ZWxkQnlOYW1lKCJMaW5rcyIpLkZpZWxkQnlOYW1lKCJOZXh0IikuU3RyaW5nKCkgPT0gIiIgewor
CQkJYnJlYWsKKwkJfQorCisJCW5leHRVUkwgPSBzZXJ2ZXIucHJlZml4ICsgZW5kUG9pbnQgKyBm
bXQuU3ByaW50ZigiP29mZnNldD0lZCIsIG91dHB1dFNsaWNlLkxlbigpKQorCQlpZiBsZW4oY29u
ZGl0aW9uUGFyYW1zKSA+IDAgeworCQkJbmV4dFVSTCArPSAiJiIgKyBjb25kaXRpb25QYXJhbXMK
KwkJfQorCX0KKworCXJldHVybiBuaWwKK30KKworLy8gaHR0cHM6Ly91c25pc3Rnb3YuZ2l0aHVi
LmlvL0FDVlAvYXJ0aWZhY3RzL2RyYWZ0LWZ1c3NlbGwtYWN2cC1zcGVjLTAwLmh0bWwjcmZjLnNl
Y3Rpb24uMTEuOC4zLjEKK3R5cGUgVmVuZG9yIHN0cnVjdCB7CisJVVJMICAgICAgICAgc3RyaW5n
ICAgIGBqc29uOiJ1cmwsb21pdGVtcHR5ImAKKwlOYW1lICAgICAgICBzdHJpbmcgICAgYGpzb246
Im5hbWUsb21pdGVtcHR5ImAKKwlQYXJlbnRVUkwgICBzdHJpbmcgICAgYGpzb246InBhcmVudFVy
bCxvbWl0ZW1wdHkiYAorCVdlYnNpdGUgICAgIHN0cmluZyAgICBganNvbjoid2Vic2l0ZSxvbWl0
ZW1wdHkiYAorCUVtYWlscyAgICAgIFtdc3RyaW5nICBganNvbjoiZW1haWxzLG9taXRlbXB0eSJg
CisJQ29udGFjdHNVUkwgc3RyaW5nICAgIGBqc29uOiJjb250YWN0c1VybCxvbWl0ZW1wdHkiYAor
CUFkZHJlc3NlcyAgIFtdQWRkcmVzcyBganNvbjoiYWRkcmVzc2VzLG9taXRlbXB0eSJgCit9CisK
Ky8vIGh0dHBzOi8vdXNuaXN0Z292LmdpdGh1Yi5pby9BQ1ZQL2FydGlmYWN0cy9kcmFmdC1mdXNz
ZWxsLWFjdnAtc3BlYy0wMC5odG1sI3JmYy5zZWN0aW9uLjExLjkKK3R5cGUgQWRkcmVzcyBzdHJ1
Y3QgeworCVVSTCAgICAgICAgc3RyaW5nIGBqc29uOiJ1cmwsb21pdGVtcHR5ImAKKwlTdHJlZXQx
ICAgIHN0cmluZyBganNvbjoic3RyZWV0MSxvbWl0ZW1wdHkiYAorCVN0cmVldDIgICAgc3RyaW5n
IGBqc29uOiJzdHJlZXQyLG9taXRlbXB0eSJgCisJU3RyZWV0MyAgICBzdHJpbmcgYGpzb246InN0
cmVldDMsb21pdGVtcHR5ImAKKwlMb2NhbGl0eSAgIHN0cmluZyBganNvbjoibG9jYWxpdHksb21p
dGVtcHR5ImAKKwlSZWdpb24gICAgIHN0cmluZyBganNvbjoicmVnaW9uLG9taXRlbXB0eSJgCisJ
Q291bnRyeSAgICBzdHJpbmcgYGpzb246ImNvdW50cnksb21pdGVtcHR5ImAKKwlQb3N0YWxDb2Rl
IHN0cmluZyBganNvbjoicG9zdGFsQ29kZSxvbWl0ZW1wdHkiYAorfQorCisvLyBodHRwczovL3Vz
bmlzdGdvdi5naXRodWIuaW8vQUNWUC9hcnRpZmFjdHMvZHJhZnQtZnVzc2VsbC1hY3ZwLXNwZWMt
MDAuaHRtbCNyZmMuc2VjdGlvbi4xMS4xMAordHlwZSBQZXJzb24gc3RydWN0IHsKKwlVUkwgICAg
ICAgICAgc3RyaW5nICAgYGpzb246InVybCxvbWl0ZW1wdHkiYAorCUZ1bGxOYW1lICAgICBzdHJp
bmcgICBganNvbjoiZnVsbE5hbWUsb21pdGVtcHR5ImAKKwlWZW5kb3JVUkwgICAgc3RyaW5nICAg
YGpzb246InZlbmRvclVybCxvbWl0ZW1wdHkiYAorCUVtYWlscyAgICAgICBbXXN0cmluZyBganNv
bjoiZW1haWxzLG9taXRlbXB0eSJgCisJUGhvbmVOdW1iZXJzIFtdc3RydWN0IHsKKwkJTnVtYmVy
IHN0cmluZyBganNvbjoibnVtYmVyLG9taXRlbXB0eSJgCisJCVR5cGUgICBzdHJpbmcgYGpzb246
InR5cGUsb21pdGVtcHR5ImAKKwl9IGBqc29uOiJwaG9uZU51bWJlcnMsb21pdGVtcHR5ImAKK30K
KworLy8gaHR0cHM6Ly91c25pc3Rnb3YuZ2l0aHViLmlvL0FDVlAvYXJ0aWZhY3RzL2RyYWZ0LWZ1
c3NlbGwtYWN2cC1zcGVjLTAwLmh0bWwjcmZjLnNlY3Rpb24uMTEuMTEKK3R5cGUgTW9kdWxlIHN0
cnVjdCB7CisJVVJMICAgICAgICAgc3RyaW5nICAgYGpzb246InVybCxvbWl0ZW1wdHkiYAorCU5h
bWUgICAgICAgIHN0cmluZyAgIGBqc29uOiJuYW1lLG9taXRlbXB0eSJgCisJVmVyc2lvbiAgICAg
c3RyaW5nICAgYGpzb246InZlcnNpb24sb21pdGVtcHR5ImAKKwlUeXBlICAgICAgICBzdHJpbmcg
ICBganNvbjoidHlwZSxvbWl0ZW1wdHkiYAorCVdlYnNpdGUgICAgIHN0cmluZyAgIGBqc29uOiJ3
ZWJzaXRlLG9taXRlbXB0eSJgCisJVmVuZG9yVVJMICAgc3RyaW5nICAgYGpzb246InZlbmRvclVy
bCxvbWl0ZW1wdHkiYAorCUFkZHJlc3NVUkwgIHN0cmluZyAgIGBqc29uOiJhZGRyZXNzVXJsLG9t
aXRlbXB0eSJgCisJQ29udGFjdFVSTHMgW11zdHJpbmcgYGpzb246ImNvbnRhY3RVcmxzLG9taXRl
bXB0eSJgCisJRGVzY3JpcHRpb24gc3RyaW5nICAgYGpzb246ImRlc2NyaXB0aW9uLG9taXRlbXB0
eSJgCit9CisKK3R5cGUgUmVxdWVzdFN0YXR1cyBzdHJ1Y3QgeworCVVSTCAgICAgICAgIHN0cmlu
ZyBganNvbjoidXJsLG9taXRlbXB0eSJgCisJU3RhdHVzICAgICAgc3RyaW5nIGBqc29uOiJzdGF0
dXMsb21pdGVtcHR5ImAKKwlNZXNzYWdlICAgICBzdHJpbmcgYGpzb246Im1lc3NhZ2Usb21pdGVt
cHR5ImAKKwlBcHByb3ZlZFVSTCBzdHJpbmcgYGpzb246ImFwcHJvdmVkVXJsLG9taXRlbXB0eSJg
Cit9CisKK3R5cGUgT3BlcmF0aW9uYWxFbnZpcm9ubWVudCBzdHJ1Y3QgeworCVVSTCAgICAgICAg
ICAgIHN0cmluZyAgICAgICBganNvbjoidXJsLG9taXRlbXB0eSJgCisJTmFtZSAgICAgICAgICAg
c3RyaW5nICAgICAgIGBqc29uOiJuYW1lLG9taXRlbXB0eSJgCisJRGVwZW5kZW5jeVVybHMgW11z
dHJpbmcgICAgIGBqc29uOiJkZXBlbmRlbmN5VXJscyxvbWl0ZW1wdHkiYAorCURlcGVuZGVuY2ll
cyAgIFtdRGVwZW5kZW5jeSBganNvbjoiZGVwZW5kZW5jaWVzLG9taXRlbXB0eSJgCit9CisKK3R5
cGUgRGVwZW5kZW5jeSBtYXBbc3RyaW5nXWludGVyZmFjZXt9CisKK3R5cGUgQWxnb3JpdGhtIG1h
cFtzdHJpbmddaW50ZXJmYWNle30KKwordHlwZSBUZXN0U2Vzc2lvbiBzdHJ1Y3QgeworCVVSTCAg
ICAgICAgICAgc3RyaW5nICAgICAgICAgICAgICAgICAgIGBqc29uOiJ1cmwsb21pdGVtcHR5ImAK
KwlBQ1ZQVmVyc2lvbiAgIHN0cmluZyAgICAgICAgICAgICAgICAgICBganNvbjoiYWN2cFZlcnNp
b24sb21pdGVtcHR5ImAKKwlDcmVhdGVkICAgICAgIHN0cmluZyAgICAgICAgICAgICAgICAgICBg
anNvbjoiY3JlYXRlZE9uLG9taXRlbXB0eSJgCisJRXhwaXJlcyAgICAgICBzdHJpbmcgICAgICAg
ICAgICAgICAgICAgYGpzb246ImV4cGlyZXNPbixvbWl0ZW1wdHkiYAorCVZlY3RvclNldFVSTHMg
W11zdHJpbmcgICAgICAgICAgICAgICAgIGBqc29uOiJ2ZWN0b3JTZXRVcmxzLG9taXRlbXB0eSJg
CisJQWNjZXNzVG9rZW4gICBzdHJpbmcgICAgICAgICAgICAgICAgICAgYGpzb246ImFjY2Vzc1Rv
a2VuLG9taXRlbXB0eSJgCisJQWxnb3JpdGhtcyAgICBbXW1hcFtzdHJpbmddaW50ZXJmYWNle30g
YGpzb246ImFsZ29yaXRobXMsb21pdGVtcHR5ImAKKwlFbmNyeXB0QXRSZXN0IGJvb2wgICAgICAg
ICAgICAgICAgICAgICBganNvbjoiZW5jcnlwdEF0UmVzdCxvbWl0ZW1wdHkiYAorCUlzU2FtcGxl
ICAgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgIGBqc29uOiJpc1NhbXBsZSxvbWl0ZW1wdHki
YAorCVB1Ymxpc2hhYmxlICAgYm9vbCAgICAgICAgICAgICAgICAgICAgIGBqc29uOiJwdWJsaXNo
YWJsZSxvbWl0ZW1wdHkiYAorCVBhc3NlZCAgICAgICAgYm9vbCAgICAgICAgICAgICAgICAgICAg
IGBqc29uOiJwYXNzZWQsb21pdGVtcHR5ImAKK30KKwordHlwZSBWZWN0b3JzIHN0cnVjdCB7CisJ
UmV0cnkgICAgdWludDY0IGBqc29uOiJyZXRyeSxvbWl0ZW1wdHkiYAorCUlEICAgICAgIHVpbnQ2
NCBganNvbjoidnNJZCJgCisJQWxnbyAgICAgc3RyaW5nIGBqc29uOiJhbGdvcml0aG0sb21pdGVt
cHR5ImAKKwlSZXZpc2lvbiBzdHJpbmcgYGpzb246InJldmlzaW9uLG9taXRlbXB0eSJgCit9CisK
K3R5cGUgTGFyZ2VVcGxvYWRSZXF1ZXN0IHN0cnVjdCB7CisJU2l6ZSB1aW50NjQgYGpzb246InN1
Ym1pc3Npb25TaXplLG9taXRlbXB0eSJgCisJVVJMICBzdHJpbmcgYGpzb246InZlY3RvclNldFVy
bCxvbWl0ZW1wdHkiYAorfQorCit0eXBlIExhcmdlVXBsb2FkUmVzcG9uc2Ugc3RydWN0IHsKKwlV
UkwgICAgICAgICBzdHJpbmcgYGpzb246InVybCJgCisJQWNjZXNzVG9rZW4gc3RyaW5nIGBqc29u
OiJhY2Nlc3NUb2tlbiJgCit9CisKK3R5cGUgU2Vzc2lvblJlc3VsdHMgc3RydWN0IHsKKwlQYXNz
ZWQgIGJvb2wgYGpzb246InBhc3NlZCJgCisJUmVzdWx0cyBbXXN0cnVjdCB7CisJCVVSTCAgICBz
dHJpbmcgYGpzb246InZlY3RvclNldFVybCxvbWl0ZW1wdHkiYAorCQlTdGF0dXMgc3RyaW5nIGBq
c29uOiJzdGF0dXMiYAorCX0gYGpzb246InJlc3VsdHMiYAorfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvaW50ZXJhY3RpdmUuZ28gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBz
dG9vbHMvYWN2cC9hY3ZwdG9vbC9pbnRlcmFjdGl2ZS5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGU1N2ZmZmNl
OWYzMjlhNTQ4OGI0M2Q2MDMzNWNiYWQxZTJjMzk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvaW50ZXJhY3RpdmUuZ28KQEAgLTAsMCArMSw3MDcg
QEAKK3BhY2thZ2UgbWFpbgorCitpbXBvcnQgKAorCSJieXRlcyIKKwkiZW5jb2RpbmcvanNvbiIK
KwkiZXJyb3JzIgorCSJmbXQiCisJImlvIgorCSJpby9pb3V0aWwiCisJbmV0dXJsICJuZXQvdXJs
IgorCSJvcyIKKwkib3MvZXhlYyIKKwkib3Mvc2lnbmFsIgorCSJwYXRoL2ZpbGVwYXRoIgorCSJy
ZWZsZWN0IgorCSJzdHJjb252IgorCSJzdHJpbmdzIgorCSJzeXNjYWxsIgorCisJImJvcmluZ3Nz
bC5nb29nbGVzb3VyY2UuY29tL2JvcmluZ3NzbC91dGlsL2ZpcHN0b29scy9hY3ZwL2FjdnB0b29s
L2FjdnAiCisJImdvbGFuZy5vcmcveC9jcnlwdG8vc3NoL3Rlcm1pbmFsIgorKQorCitmdW5jIHVw
ZGF0ZVRlcm1pbmFsU2l6ZSh0ZXJtICp0ZXJtaW5hbC5UZXJtaW5hbCkgeworCXdpZHRoLCBoZWln
aHQsIGVyciA6PSB0ZXJtaW5hbC5HZXRTaXplKDApCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVy
bgorCX0KKwl0ZXJtLlNldFNpemUod2lkdGgsIGhlaWdodCkKK30KKworZnVuYyBza2lwV1Mobm9k
ZSAqbm9kZTMyKSAqbm9kZTMyIHsKKwlmb3IgOyBub2RlICE9IG5pbCAmJiBub2RlLnBlZ1J1bGUg
PT0gcnVsZVdTOyBub2RlID0gbm9kZS5uZXh0IHsKKwl9CisJcmV0dXJuIG5vZGUKK30KKworZnVu
YyBhc3NlcnROb2RlVHlwZShub2RlICpub2RlMzIsIHJ1bGUgcGVnUnVsZSkgeworCWlmIG5vZGUu
cGVnUnVsZSAhPSBydWxlIHsKKwkJcGFuaWMoZm10LlNwcmludGYoImV4cGVjdGVkICVxLCBmb3Vu
ZCAlcSIsIHJ1bDNzW3J1bGVdLCBydWwzc1tub2RlLnBlZ1J1bGVdKSkKKwl9Cit9CisKK3R5cGUg
T2JqZWN0IGludGVyZmFjZSB7CisJU3RyaW5nKCkgKHN0cmluZywgZXJyb3IpCisJSW5kZXgoc3Ry
aW5nKSAoT2JqZWN0LCBlcnJvcikKKwlTZWFyY2goYWN2cC5RdWVyeSkgKE9iamVjdCwgZXJyb3Ip
CisJQWN0aW9uKGFjdGlvbiBzdHJpbmcsIGFyZ3MgW11zdHJpbmcpIGVycm9yCit9CisKK3R5cGUg
U2VydmVyT2JqZWN0U2V0IHN0cnVjdCB7CisJZW52ICAgICAgICAgICpFbnYKKwluYW1lICAgICAg
ICAgc3RyaW5nCisJc2VhcmNoS2V5cyAgIG1hcFtzdHJpbmddW11hY3ZwLlJlbGF0aW9uCisJcmVz
dWx0VHlwZSAgIHJlZmxlY3QuVHlwZQorCXN1Yk9iamVjdHMgICBtYXBbc3RyaW5nXWZ1bmMoKkVu
diwgc3RyaW5nKSAoT2JqZWN0LCBlcnJvcikKKwljYW5FbnVtZXJhdGUgYm9vbAorfQorCitmdW5j
IChzZXQgU2VydmVyT2JqZWN0U2V0KSBTdHJpbmcoKSAoc3RyaW5nLCBlcnJvcikgeworCWlmICFz
ZXQuY2FuRW51bWVyYXRlIHsKKwkJcmV0dXJuICJbb2JqZWN0IHNldCAiICsgc2V0Lm5hbWUgKyAi
XSIsIG5pbAorCX0KKworCWRhdGEgOj0gcmVmbGVjdC5OZXcocmVmbGVjdC5TbGljZU9mKHNldC5y
ZXN1bHRUeXBlKSkuSW50ZXJmYWNlKCkKKwlpZiBlcnIgOj0gc2V0LmVudi5zZXJ2ZXIuR2V0UGFn
ZWQoZGF0YSwgImFjdnAvdjEvIitzZXQubmFtZSwgbmlsKTsgZXJyICE9IG5pbCB7CisJCXJldHVy
biAiIiwgZXJyCisJfQorCXJldCwgZXJyIDo9IGpzb24uTWFyc2hhbEluZGVudChkYXRhLCAiIiwg
IiAgIikKKwlyZXR1cm4gc3RyaW5nKHJldCksIGVycgorfQorCitmdW5jIChzZXQgU2VydmVyT2Jq
ZWN0U2V0KSBJbmRleChpbmRleFN0ciBzdHJpbmcpIChPYmplY3QsIGVycm9yKSB7CisJaW5kZXgs
IGVyciA6PSBzdHJjb252LlBhcnNlVWludChpbmRleFN0ciwgMCwgNjQpCisJaWYgZXJyICE9IG5p
bCB7CisJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoIm9iamVjdCBzZXQgaW5kZXhlcyBtdXN0IGJl
IHVuc2lnbmVkIGludGVnZXJzLCB0cnlpbmcgdG8gcGFyc2UgJXEgZmFpbGVkOiAlcyIsIGluZGV4
U3RyLCBlcnIpCisJfQorCXJldHVybiBTZXJ2ZXJPYmplY3R7JnNldCwgaW5kZXh9LCBuaWwKK30K
KworZnVuYyAoc2V0IFNlcnZlck9iamVjdFNldCkgU2VhcmNoKGNvbmRpdGlvbiBhY3ZwLlF1ZXJ5
KSAoT2JqZWN0LCBlcnJvcikgeworCWlmIHNldC5zZWFyY2hLZXlzID09IG5pbCB7CisJCXJldHVy
biBuaWwsIGVycm9ycy5OZXcoInRoaXMgb2JqZWN0IHNldCBjYW5ub3QgYmUgc2VhcmNoZWQiKQor
CX0KKworCWZvciBfLCBjb25qIDo9IHJhbmdlIGNvbmRpdGlvbiB7CisJTmV4dENvbmRpdGlvbjoK
KwkJZm9yIF8sIGNvbmQgOj0gcmFuZ2UgY29uaiB7CisJCQlhbGxvd2VkLCBvayA6PSBzZXQuc2Vh
cmNoS2V5c1tjb25kLlBhcmFtXQorCQkJaWYgIW9rIHsKKwkJCQlyZXR1cm4gbmlsLCBmbXQuRXJy
b3JmKCJzZWFyY2gga2V5ICVxIG5vdCB2YWxpZCBmb3IgdGhpcyBvYmplY3Qgc2V0IiwgY29uZC5Q
YXJhbSkKKwkJCX0KKworCQkJZm9yIF8sIHJlbCA6PSByYW5nZSBhbGxvd2VkIHsKKwkJCQlpZiBy
ZWwgPT0gY29uZC5SZWxhdGlvbiB7CisJCQkJCWNvbnRpbnVlIE5leHRDb25kaXRpb24KKwkJCQl9
CisJCQl9CisKKwkJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoInNlYXJjaCBrZXkgJXEgY2Fubm90
IGJlIHVzZWQgd2l0aCByZWxhdGlvbiAlcSIsIGNvbmQuUGFyYW0sIGNvbmQuUmVsYXRpb24uU3Ry
aW5nKCkpCisJCX0KKwl9CisKKwlyZXR1cm4gU2VhcmNoe1NlcnZlck9iamVjdFNldDogc2V0LCBx
dWVyeTogY29uZGl0aW9ufSwgbmlsCit9CisKK2Z1bmMgKHNldCBTZXJ2ZXJPYmplY3RTZXQpIEFj
dGlvbihhY3Rpb24gc3RyaW5nLCBhcmdzIFtdc3RyaW5nKSBlcnJvciB7CisJc3dpdGNoIGFjdGlv
biB7CisJZGVmYXVsdDoKKwkJcmV0dXJuIGZtdC5FcnJvcmYoInVua25vd24gYWN0aW9uICVxIiwg
YWN0aW9uKQorCisJY2FzZSAibmV3IjoKKwkJaWYgbGVuKGFyZ3MpICE9IDAgeworCQkJcmV0dXJu
IGZtdC5FcnJvcmYoImZvdW5kICVkIGFyZ3VtZW50cyBidXQgJXEgdGFrZXMgbm9uZSIsIGxlbihh
cmdzKSwgYWN0aW9uKQorCQl9CisKKwkJbmV3Q29udGVudHMsIGVyciA6PSBlZGl0KCIiKQorCQlp
ZiBlcnIgIT0gbmlsIHsKKwkJCXJldHVybiBlcnIKKwkJfQorCisJCWlmIHN0cmluZ3MuVHJpbVNw
YWNlKHN0cmluZyhuZXdDb250ZW50cykpID09ICIiIHsKKwkJCWlvLldyaXRlU3RyaW5nKHNldC5l
bnYudGVybSwgIlJlc3VsdGluZyBmaWxlIHdhcyBlbXB0eS4gSWdub3JpbmcuXG4iKQorCQkJcmV0
dXJuIG5pbAorCQl9CisKKwkJdmFyIHJlc3VsdCBtYXBbc3RyaW5nXWludGVyZmFjZXt9CisJCWlm
IGVyciA6PSBzZXQuZW52LnNlcnZlci5Qb3N0KCZyZXN1bHQsICJhY3ZwL3YxLyIrc2V0Lm5hbWUs
IG5ld0NvbnRlbnRzKTsgZXJyICE9IG5pbCB7CisJCQlyZXR1cm4gZXJyCisJCX0KKworCQkvLyBJ
biBjYXNlIGl0J3MgYSB0ZXN0U2Vzc2lvbiB0aGF0IHdhcyBqdXN0IGNyZWF0ZWQsIHBva2UgYW55
IGFjY2VzcyB0b2tlbgorCQkvLyBpbnRvIHRoZSBzZXJ2ZXIncyBsb29rdXAgdGFibGUgYW5kIHRo
ZSBjYWNoZS4KKwkJaWYgdXJsSW50ZXJmYWNlLCBvayA6PSByZXN1bHRbInVybCJdOyBvayB7CisJ
CQlpZiB1cmwsIG9rIDo9IHVybEludGVyZmFjZS4oc3RyaW5nKTsgb2sgeworCQkJCWlmIHRva2Vu
SW50ZXJmYWNlLCBvayA6PSByZXN1bHRbImFjY2Vzc1Rva2VuIl07IG9rIHsKKwkJCQkJaWYgdG9r
ZW4sIG9rIDo9IHRva2VuSW50ZXJmYWNlLihzdHJpbmcpOyBvayB7CisJCQkJCQlmb3Igc3RyaW5n
cy5IYXNQcmVmaXgodXJsLCAiLyIpIHsKKwkJCQkJCQl1cmwgPSB1cmxbMTpdCisJCQkJCQl9CisJ
CQkJCQlzZXQuZW52LnNlcnZlci5QcmVmaXhUb2tlbnNbdXJsXSA9IHRva2VuCisJCQkJCQlpZiBs
ZW4oc2V0LmVudi5jb25maWcuU2Vzc2lvblRva2Vuc0NhY2hlKSA+IDAgeworCQkJCQkJCWlvdXRp
bC5Xcml0ZUZpbGUoZmlsZXBhdGguSm9pbihzZXQuZW52LmNvbmZpZy5TZXNzaW9uVG9rZW5zQ2Fj
aGUsIG5ldHVybC5QYXRoRXNjYXBlKHVybCkpKyIudG9rZW4iLCBbXWJ5dGUodG9rZW4pLCAwNjAw
KQorCQkJCQkJfQorCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisKKwkJcmV0LCBlcnIgOj0ganNv
bi5NYXJzaGFsSW5kZW50KHJlc3VsdCwgIiIsICIgICIpCisJCWlmIGVyciAhPSBuaWwgeworCQkJ
cmV0dXJuIGVycgorCQl9CisJCXNldC5lbnYudGVybS5Xcml0ZShyZXQpCisJCXJldHVybiBuaWwK
Kwl9Cit9CisKK3R5cGUgU2VydmVyT2JqZWN0IHN0cnVjdCB7CisJc2V0ICAgKlNlcnZlck9iamVj
dFNldAorCWluZGV4IHVpbnQ2NAorfQorCitmdW5jIChvYmogU2VydmVyT2JqZWN0KSBTdHJpbmco
KSAoc3RyaW5nLCBlcnJvcikgeworCWRhdGEgOj0gcmVmbGVjdC5OZXcob2JqLnNldC5yZXN1bHRU
eXBlKS5JbnRlcmZhY2UoKQorCWlmIGVyciA6PSBvYmouc2V0LmVudi5zZXJ2ZXIuR2V0KGRhdGEs
ICJhY3ZwL3YxLyIrb2JqLnNldC5uYW1lKyIvIitzdHJjb252LkZvcm1hdFVpbnQob2JqLmluZGV4
LCAxMCkpOyBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuICIiLCBlcnIKKwl9CisJcmV0LCBlcnIgOj0g
anNvbi5NYXJzaGFsSW5kZW50KGRhdGEsICIiLCAiICAiKQorCXJldHVybiBzdHJpbmcocmV0KSwg
ZXJyCit9CisKK2Z1bmMgKG9iaiBTZXJ2ZXJPYmplY3QpIEluZGV4KGluZGV4IHN0cmluZykgKE9i
amVjdCwgZXJyb3IpIHsKKwlpZiBvYmouc2V0LnN1Yk9iamVjdHMgPT0gbmlsIHsKKwkJcmV0dXJu
IG5pbCwgZXJyb3JzLk5ldygiY2Fubm90IGluZGV4ICIgKyBvYmouc2V0Lm5hbWUgKyAiIG9iamVj
dHMiKQorCX0KKwljb25zdHIsIG9rIDo9IG9iai5zZXQuc3ViT2JqZWN0c1tpbmRleF0KKwlpZiAh
b2sgeworCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJubyBzdWNoIHN1Ym9iamVjdCAlcSIsIGlu
ZGV4KQorCX0KKwlyZXR1cm4gY29uc3RyKG9iai5zZXQuZW52LCBmbXQuU3ByaW50ZigiJXMvJWQi
LCBvYmouc2V0Lm5hbWUsIG9iai5pbmRleCkpCit9CisKK2Z1bmMgKFNlcnZlck9iamVjdCkgU2Vh
cmNoKGNvbmRpdGlvbiBhY3ZwLlF1ZXJ5KSAoT2JqZWN0LCBlcnJvcikgeworCXJldHVybiBuaWws
IGVycm9ycy5OZXcoImNhbm5vdCBzZWFyY2ggaW5kaXZpZHVhbCBvYmplY3QiKQorfQorCitmdW5j
IGVkaXQoaW5pdGlhbENvbnRlbnRzIHN0cmluZykgKFtdYnl0ZSwgZXJyb3IpIHsKKwl0bXAsIGVy
ciA6PSBpb3V0aWwuVGVtcEZpbGUoIiIsICJhY3ZwKi5qc29uIikKKwlpZiBlcnIgIT0gbmlsIHsK
KwkJcmV0dXJuIG5pbCwgZXJyCisJfQorCXBhdGggOj0gdG1wLk5hbWUoKQorCWRlZmVyIG9zLlJl
bW92ZShwYXRoKQorCisJXywgZXJyID0gaW8uV3JpdGVTdHJpbmcodG1wLCBpbml0aWFsQ29udGVu
dHMpCisJdG1wLkNsb3NlKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgZXJyCisJ
fQorCisJZWRpdG9yIDo9IG9zLkdldGVudigiRURJVE9SIikKKwlpZiBsZW4oZWRpdG9yKSA9PSAw
IHsKKwkJZWRpdG9yID0gInZpbSIKKwl9CisKKwljbWQgOj0gZXhlYy5Db21tYW5kKGVkaXRvciwg
cGF0aCkKKwljbWQuU3Rkb3V0ID0gb3MuU3Rkb3V0CisJY21kLlN0ZGluID0gb3MuU3RkaW4KKwlj
bWQuU3RkZXJyID0gb3MuU3RkZXJyCisJaWYgZXJyIDo9IGNtZC5SdW4oKTsgZXJyICE9IG5pbCB7
CisJCXJldHVybiBuaWwsIGVycgorCX0KKworCXJldHVybiBpb3V0aWwuUmVhZEZpbGUocGF0aCkK
K30KKworZnVuYyAob2JqIFNlcnZlck9iamVjdCkgQWN0aW9uKGFjdGlvbiBzdHJpbmcsIGFyZ3Mg
W11zdHJpbmcpIGVycm9yIHsKKwlzd2l0Y2ggYWN0aW9uIHsKKwlkZWZhdWx0OgorCQlyZXR1cm4g
Zm10LkVycm9yZigidW5rbm93biBhY3Rpb24gJXEiLCBhY3Rpb24pCisKKwljYXNlICJlZGl0IjoK
KwkJaWYgbGVuKGFyZ3MpICE9IDAgeworCQkJcmV0dXJuIGZtdC5FcnJvcmYoImZvdW5kICVkIGFy
Z3VtZW50cyBidXQgJXEgdGFrZXMgbm9uZSIsIGxlbihhcmdzKSwgYWN0aW9uKQorCQl9CisKKwkJ
Y29udGVudHMsIGVyciA6PSBvYmouU3RyaW5nKCkKKwkJaWYgZXJyICE9IG5pbCB7CisJCQlyZXR1
cm4gZXJyCisJCX0KKworCQluZXdDb250ZW50cywgZXJyIDo9IGVkaXQoY29udGVudHMpCisJCWlm
IGVyciAhPSBuaWwgeworCQkJcmV0dXJuIGVycgorCQl9CisKKwkJaWYgdHJpbW1lZCA6PSBzdHJp
bmdzLlRyaW1TcGFjZShzdHJpbmcobmV3Q29udGVudHMpKTsgbGVuKHRyaW1tZWQpID09IDAgfHwg
dHJpbW1lZCA9PSBzdHJpbmdzLlRyaW1TcGFjZShjb250ZW50cykgeworCQkJaW8uV3JpdGVTdHJp
bmcob2JqLnNldC5lbnYudGVybSwgIlJlc3VsdGluZyBmaWxlIHdhcyBlcXVhbCBvciBlbXB0eS4g
Tm90IHVwZGF0aW5nLlxuIikKKwkJCXJldHVybiBuaWwKKwkJfQorCisJCXZhciBzdGF0dXMgYWN2
cC5SZXF1ZXN0U3RhdHVzCisJCWlmIGVyciA6PSBvYmouc2V0LmVudi5zZXJ2ZXIuUHV0KCZzdGF0
dXMsICJhY3ZwL3YxLyIrb2JqLnNldC5uYW1lKyIvIitzdHJjb252LkZvcm1hdFVpbnQob2JqLmlu
ZGV4LCAxMCksIG5ld0NvbnRlbnRzKTsgZXJyICE9IG5pbCB7CisJCQlyZXR1cm4gZXJyCisJCX0K
KworCQlmbXQuRnByaW50ZihvYmouc2V0LmVudi50ZXJtLCAiJSN2XG4iLCBzdGF0dXMpCisJCXJl
dHVybiBuaWwKKworCWNhc2UgImRlbGV0ZSI6CisJCWlmIGxlbihhcmdzKSAhPSAwIHsKKwkJCXJl
dHVybiBmbXQuRXJyb3JmKCJmb3VuZCAlZCBhcmd1bWVudHMgYnV0ICVxIHRha2VzIG5vbmUiLCBs
ZW4oYXJncyksIGFjdGlvbikKKwkJfQorCQlyZXR1cm4gb2JqLnNldC5lbnYuc2VydmVyLkRlbGV0
ZSgiYWN2cC92MS8iICsgb2JqLnNldC5uYW1lICsgIi8iICsgc3RyY29udi5Gb3JtYXRVaW50KG9i
ai5pbmRleCwgMTApKQorCX0KK30KKwordHlwZSBTZWFyY2ggc3RydWN0IHsKKwlTZXJ2ZXJPYmpl
Y3RTZXQKKwlxdWVyeSBhY3ZwLlF1ZXJ5Cit9CisKK2Z1bmMgKHNlYXJjaCBTZWFyY2gpIFN0cmlu
ZygpIChzdHJpbmcsIGVycm9yKSB7CisJZGF0YSA6PSByZWZsZWN0Lk5ldyhyZWZsZWN0LlNsaWNl
T2Yoc2VhcmNoLnJlc3VsdFR5cGUpKS5JbnRlcmZhY2UoKQorCWZtdC5QcmludGYoIlNlYXJjaGlu
ZyBmb3IgJSN2XG4iLCBzZWFyY2gucXVlcnkpCisJaWYgZXJyIDo9IHNlYXJjaC5lbnYuc2VydmVy
LkdldFBhZ2VkKGRhdGEsICJhY3ZwL3YxLyIrc2VhcmNoLm5hbWUsIHNlYXJjaC5xdWVyeSk7IGVy
ciAhPSBuaWwgeworCQlyZXR1cm4gIiIsIGVycgorCX0KKwlyZXQsIGVyciA6PSBqc29uLk1hcnNo
YWxJbmRlbnQoZGF0YSwgIiIsICIgICIpCisJcmV0dXJuIHN0cmluZyhyZXQpLCBlcnIKK30KKwor
ZnVuYyAoc2VhcmNoIFNlYXJjaCkgSW5kZXgoXyBzdHJpbmcpIChPYmplY3QsIGVycm9yKSB7CisJ
cmV0dXJuIG5pbCwgZXJyb3JzLk5ldygiaW5kZXhpbmcgb2Ygc2VhcmNoIHJlc3VsdHMgbm90IHN1
cHBvcnRlZCIpCit9CisKK2Z1bmMgKHNlYXJjaCBTZWFyY2gpIFNlYXJjaChjb25kaXRpb24gYWN2
cC5RdWVyeSkgKE9iamVjdCwgZXJyb3IpIHsKKwlzZWFyY2gucXVlcnkgPSBhcHBlbmQoc2VhcmNo
LnF1ZXJ5LCBjb25kaXRpb24uLi4pCisJcmV0dXJuIHNlYXJjaCwgbmlsCit9CisKK2Z1bmMgKFNl
YXJjaCkgQWN0aW9uKF8gc3RyaW5nLCBfIFtdc3RyaW5nKSBlcnJvciB7CisJcmV0dXJuIGVycm9y
cy5OZXcoIm5vIGFjdGlvbnMgc3VwcG9ydGVkIG9uIHNlYXJjaCBvYmplY3RzIikKK30KKwordHlw
ZSBBbGdvcml0aG1zIHN0cnVjdCB7CisJU2VydmVyT2JqZWN0U2V0Cit9CisKK2Z1bmMgKGFsZ29z
IEFsZ29yaXRobXMpIFN0cmluZygpIChzdHJpbmcsIGVycm9yKSB7CisJdmFyIHJlc3VsdCBzdHJ1
Y3QgeworCQlBbGdvcml0aG1zIFtdbWFwW3N0cmluZ11pbnRlcmZhY2V7fSBganNvbjoiYWxnb3Jp
dGhtcyJgCisJfQorCWlmIGVyciA6PSBhbGdvcy5lbnYuc2VydmVyLkdldCgmcmVzdWx0LCAiYWN2
cC92MS9hbGdvcml0aG1zIik7IGVyciAhPSBuaWwgeworCQlyZXR1cm4gIiIsIGVycgorCX0KKwly
ZXQsIGVyciA6PSBqc29uLk1hcnNoYWxJbmRlbnQocmVzdWx0LkFsZ29yaXRobXMsICIiLCAiICAi
KQorCXJldHVybiBzdHJpbmcocmV0KSwgZXJyCit9CisKK3R5cGUgRW52IHN0cnVjdCB7CisJbGlu
ZSAgICAgIHN0cmluZworCXZhcmlhYmxlcyBtYXBbc3RyaW5nXU9iamVjdAorCXNlcnZlciAgICAq
YWN2cC5TZXJ2ZXIKKwl0ZXJtICAgICAgKnRlcm1pbmFsLlRlcm1pbmFsCisJY29uZmlnICAgIENv
bmZpZworfQorCitmdW5jIChlICpFbnYpIGJ5dGVzKG5vZGUgKm5vZGUzMikgW11ieXRlIHsKKwly
ZXR1cm4gW11ieXRlKGUubGluZVtub2RlLmJlZ2luOm5vZGUuZW5kXSkKK30KKworZnVuYyAoZSAq
RW52KSBjb250ZW50cyhub2RlICpub2RlMzIpIHN0cmluZyB7CisJcmV0dXJuIGUubGluZVtub2Rl
LmJlZ2luOm5vZGUuZW5kXQorfQorCit0eXBlIHN0cmluZ0xpdGVyYWwgc3RydWN0IHsKKwllbnYg
ICAgICAqRW52CisJY29udGVudHMgc3RyaW5nCit9CisKK2Z1bmMgKHMgc3RyaW5nTGl0ZXJhbCkg
U3RyaW5nKCkgKHN0cmluZywgZXJyb3IpIHsKKwlyZXR1cm4gcy5jb250ZW50cywgbmlsCit9CisK
K2Z1bmMgKHN0cmluZ0xpdGVyYWwpIEluZGV4KF8gc3RyaW5nKSAoT2JqZWN0LCBlcnJvcikgewor
CXJldHVybiBuaWwsIGVycm9ycy5OZXcoImNhbm5vdCBpbmRleCBzdHJpbmdzIikKK30KKworZnVu
YyAoc3RyaW5nTGl0ZXJhbCkgU2VhcmNoKF8gYWN2cC5RdWVyeSkgKE9iamVjdCwgZXJyb3IpIHsK
KwlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJjYW5ub3Qgc2VhcmNoIHN0cmluZ3MiKQorfQorCitm
dW5jIChzIHN0cmluZ0xpdGVyYWwpIEFjdGlvbihhY3Rpb24gc3RyaW5nLCBhcmdzIFtdc3RyaW5n
KSBlcnJvciB7CisJc3dpdGNoIGFjdGlvbiB7CisJZGVmYXVsdDoKKwkJcmV0dXJuIGZtdC5FcnJv
cmYoImFjdGlvbiAlcSBub3Qgc3VwcG9ydGVkIG9uIHN0cmluZyBsaXRlcmFscyIsIGFjdGlvbikK
KworCWNhc2UgIkdFVCI6CisJCWlmIGxlbihhcmdzKSAhPSAwIHsKKwkJCXJldHVybiBmbXQuRXJy
b3JmKCJmb3VuZCAlZCBhcmd1bWVudHMgYnV0ICVxIHRha2VzIG5vbmUiLCBsZW4oYXJncyksIGFj
dGlvbikKKwkJfQorCisJCXZhciByZXN1bHRzIG1hcFtzdHJpbmddaW50ZXJmYWNle30KKwkJaWYg
ZXJyIDo9IHMuZW52LnNlcnZlci5HZXQoJnJlc3VsdHMsIHMuY29udGVudHMpOyBlcnIgIT0gbmls
IHsKKwkJCXJldHVybiBlcnIKKwkJfQorCQlyZXQsIGVyciA6PSBqc29uLk1hcnNoYWxJbmRlbnQo
cmVzdWx0cywgIiIsICIgICIpCisJCWlmIGVyciAhPSBuaWwgeworCQkJcmV0dXJuIGVycgorCQl9
CisJCXMuZW52LnRlcm0uV3JpdGUocmV0KQorCQlyZXR1cm4gbmlsCisJfQorfQorCit0eXBlIHJl
c3VsdHMgc3RydWN0IHsKKwllbnYgICAgKkVudgorCXByZWZpeCBzdHJpbmcKK30KKworZnVuYyAo
ciByZXN1bHRzKSBTdHJpbmcoKSAoc3RyaW5nLCBlcnJvcikgeworCXZhciByZXN1bHRzIG1hcFtz
dHJpbmddaW50ZXJmYWNle30KKwlpZiBlcnIgOj0gci5lbnYuc2VydmVyLkdldCgmcmVzdWx0cywg
ImFjdnAvdjEvIityLnByZWZpeCsiL3Jlc3VsdHMiKTsgZXJyICE9IG5pbCB7CisJCXJldHVybiAi
IiwgZXJyCisJfQorCXJldCwgZXJyIDo9IGpzb24uTWFyc2hhbEluZGVudChyZXN1bHRzLCAiIiwg
IiAgIikKKwlyZXR1cm4gc3RyaW5nKHJldCksIGVycgorfQorCitmdW5jIChyZXN1bHRzKSBJbmRl
eChfIHN0cmluZykgKE9iamVjdCwgZXJyb3IpIHsKKwlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJj
YW5ub3QgaW5kZXggcmVzdWx0cyBvYmplY3RzIikKK30KKworZnVuYyAocmVzdWx0cykgU2VhcmNo
KF8gYWN2cC5RdWVyeSkgKE9iamVjdCwgZXJyb3IpIHsKKwlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3
KCJjYW5ub3Qgc2VhcmNoIHJlc3VsdHMgb2JqZWN0cyIpCit9CisKK2Z1bmMgKHJlc3VsdHMpIEFj
dGlvbihfIHN0cmluZywgXyBbXXN0cmluZykgZXJyb3IgeworCXJldHVybiBlcnJvcnMuTmV3KCJu
byBhY3Rpb25zIHN1cHBvcnRlZCBvbiByZXN1bHRzIG9iamVjdHMiKQorfQorCitmdW5jIChlICpF
bnYpIHBhcnNlU3RyaW5nTGl0ZXJhbChub2RlICpub2RlMzIpIHN0cmluZyB7CisJYXNzZXJ0Tm9k
ZVR5cGUobm9kZSwgcnVsZVN0cmluZ0xpdGVyYWwpCisJaW4gOj0gZS5ieXRlcyhub2RlKQorCXZh
ciBidWYgYnl0ZXMuQnVmZmVyCisJZm9yIGkgOj0gMTsgaSA8IGxlbihpbiktMTsgaSsrIHsKKwkJ
aWYgaW5baV0gPT0gJ1xcJyB7CisJCQlzd2l0Y2ggaW5baSsxXSB7CisJCQljYXNlICdcXCc6CisJ
CQkJYnVmLldyaXRlQnl0ZSgnXFwnKQorCQkJY2FzZSAnbic6CisJCQkJYnVmLldyaXRlQnl0ZSgn
XG4nKQorCQkJY2FzZSAnIic6CisJCQkJYnVmLldyaXRlQnl0ZSgnIicpCisJCQlkZWZhdWx0Ogor
CQkJCXBhbmljKCJ1bmtub3duIGVzY2FwZSIpCisJCQl9CisJCQlpKysKKwkJCWNvbnRpbnVlCisJ
CX0KKwkJYnVmLldyaXRlQnl0ZShpbltpXSkKKwl9CisKKwlyZXR1cm4gYnVmLlN0cmluZygpCit9
CisKK2Z1bmMgKGUgKkVudikgZXZhbEV4cHJlc3Npb24obm9kZSAqbm9kZTMyKSAob2JqIE9iamVj
dCwgZXJyIGVycm9yKSB7CisJc3dpdGNoIG5vZGUucGVnUnVsZSB7CisJY2FzZSBydWxlU3RyaW5n
TGl0ZXJhbDoKKwkJcmV0dXJuIHN0cmluZ0xpdGVyYWx7ZSwgZS5wYXJzZVN0cmluZ0xpdGVyYWwo
bm9kZSl9LCBuaWwKKworCWNhc2UgcnVsZVZhcmlhYmxlOgorCQl2YXJOYW1lIDo9IGUuY29udGVu
dHMobm9kZSkKKwkJb2JqLCBvayA6PSBlLnZhcmlhYmxlc1t2YXJOYW1lXQorCQlpZiAhb2sgewor
CQkJcmV0dXJuIG5pbCwgZm10LkVycm9yZigidW5rbm93biB2YXJpYWJsZSAlcSIsIHZhck5hbWUp
CisJCX0KKwkJcmV0dXJuIG9iaiwgbmlsCisKKwljYXNlIHJ1bGVJbmRleGluZzoKKwkJbm9kZSA9
IG5vZGUudXAKKwkJYXNzZXJ0Tm9kZVR5cGUobm9kZSwgcnVsZVZhcmlhYmxlKQorCQl2YXJOYW1l
IDo9IGUuY29udGVudHMobm9kZSkKKwkJb2JqLCBvayA6PSBlLnZhcmlhYmxlc1t2YXJOYW1lXQor
CQlpZiAhb2sgeworCQkJcmV0dXJuIG5pbCwgZm10LkVycm9yZigidW5rbm93biB2YXJpYWJsZSAl
cSIsIHZhck5hbWUpCisJCX0KKworCQlub2RlID0gbm9kZS5uZXh0CisJCWZvciBub2RlICE9IG5p
bCB7CisJCQlhc3NlcnROb2RlVHlwZShub2RlLCBydWxlSW5kZXgpCisJCQlpbmRleFN0ciA6PSBl
LmNvbnRlbnRzKG5vZGUpCisJCQlpZiBvYmosIGVyciA9IG9iai5JbmRleChpbmRleFN0cik7IGVy
ciAhPSBuaWwgeworCQkJCXJldHVybiBuaWwsIGVycgorCQkJfQorCQkJbm9kZSA9IG5vZGUubmV4
dAorCQl9CisKKwkJcmV0dXJuIG9iaiwgbmlsCisKKwljYXNlIHJ1bGVTZWFyY2g6CisJCW5vZGUg
PSBub2RlLnVwCisJCWFzc2VydE5vZGVUeXBlKG5vZGUsIHJ1bGVWYXJpYWJsZSkKKwkJdmFyTmFt
ZSA6PSBlLmNvbnRlbnRzKG5vZGUpCisJCW9iaiwgb2sgOj0gZS52YXJpYWJsZXNbdmFyTmFtZV0K
KwkJaWYgIW9rIHsKKwkJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoInVua25vd24gdmFyaWFibGUg
JXEiLCB2YXJOYW1lKQorCQl9CisKKwkJbm9kZSA9IHNraXBXUyhub2RlLm5leHQpCisJCWFzc2Vy
dE5vZGVUeXBlKG5vZGUsIHJ1bGVRdWVyeSkKKwkJbm9kZSA9IG5vZGUudXAKKworCQl2YXIgcXVl
cnkgYWN2cC5RdWVyeQorCQlmb3Igbm9kZSAhPSBuaWwgeworCQkJYXNzZXJ0Tm9kZVR5cGUobm9k
ZSwgcnVsZUNvbmp1bmN0aW9ucykKKwkJCXF1ZXJ5ID0gYXBwZW5kKHF1ZXJ5LCBlLnBhcnNlQ29u
anVuY3Rpb24obm9kZS51cCkpCisJCQlub2RlID0gc2tpcFdTKG5vZGUubmV4dCkKKwkJfQorCisJ
CWlmIGxlbihxdWVyeSkgPT0gMCB7CisJCQlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJjYW5ub3Qg
aGF2ZSBlbXB0eSBxdWVyeSIpCisJCX0KKworCQlyZXR1cm4gb2JqLlNlYXJjaChxdWVyeSkKKwl9
CisKKwlwYW5pYygidW5oYW5kbGVkIikKK30KKworZnVuYyAoZSAqRW52KSBldmFsQWN0aW9uKG5v
ZGUgKm5vZGUzMikgZXJyb3IgeworCWFzc2VydE5vZGVUeXBlKG5vZGUsIHJ1bGVFeHByZXNzaW9u
KQorCW9iaiwgZXJyIDo9IGUuZXZhbEV4cHJlc3Npb24obm9kZS51cCkKKwlpZiBlcnIgIT0gbmls
IHsKKwkJcmV0dXJuIGVycgorCX0KKworCW5vZGUgPSBub2RlLm5leHQKKwlhc3NlcnROb2RlVHlw
ZShub2RlLCBydWxlQ29tbWFuZCkKKwlub2RlID0gbm9kZS51cAorCWFzc2VydE5vZGVUeXBlKG5v
ZGUsIHJ1bGVGdW5jdGlvbikKKwlmdW5jdGlvbiA6PSBlLmNvbnRlbnRzKG5vZGUpCisJbm9kZSA9
IG5vZGUubmV4dAorCisJdmFyIGFyZ3MgW11zdHJpbmcKKwlmb3Igbm9kZSAhPSBuaWwgeworCQlh
c3NlcnROb2RlVHlwZShub2RlLCBydWxlQXJncykKKwkJbm9kZSA9IG5vZGUudXAKKwkJYXJncyA9
IGFwcGVuZChhcmdzLCBlLnBhcnNlU3RyaW5nTGl0ZXJhbChub2RlKSkKKworCQlub2RlID0gc2tp
cFdTKG5vZGUubmV4dCkKKwl9CisKKwlyZXR1cm4gb2JqLkFjdGlvbihmdW5jdGlvbiwgYXJncykK
K30KKworZnVuYyAoZSAqRW52KSBwYXJzZUNvbmp1bmN0aW9uKG5vZGUgKm5vZGUzMikgKHJldCBh
Y3ZwLkNvbmp1bmN0aW9uKSB7CisJZm9yIG5vZGUgIT0gbmlsIHsKKwkJYXNzZXJ0Tm9kZVR5cGUo
bm9kZSwgcnVsZUNvbmp1bmN0aW9uKQorCQlyZXQgPSBhcHBlbmQocmV0LCBlLnBhcnNlQ29uZGl0
aW9uKG5vZGUudXApKQorCisJCW5vZGUgPSBza2lwV1Mobm9kZS5uZXh0KQorCQlpZiBub2RlICE9
IG5pbCB7CisJCQlhc3NlcnROb2RlVHlwZShub2RlLCBydWxlQ29uanVuY3Rpb25zKQorCQkJbm9k
ZSA9IG5vZGUudXAKKwkJfQorCX0KKwlyZXR1cm4gcmV0Cit9CisKK2Z1bmMgKGUgKkVudikgcGFy
c2VDb25kaXRpb24obm9kZSAqbm9kZTMyKSAocmV0IGFjdnAuQ29uZGl0aW9uKSB7CisJYXNzZXJ0
Tm9kZVR5cGUobm9kZSwgcnVsZUZpZWxkKQorCXJldC5QYXJhbSA9IGUuY29udGVudHMobm9kZSkK
Kwlub2RlID0gc2tpcFdTKG5vZGUubmV4dCkKKworCWFzc2VydE5vZGVUeXBlKG5vZGUsIHJ1bGVS
ZWxhdGlvbikKKwlzd2l0Y2ggZS5jb250ZW50cyhub2RlKSB7CisJY2FzZSAiPT0iOgorCQlyZXQu
UmVsYXRpb24gPSBhY3ZwLkVxdWFscworCWNhc2UgIiE9IjoKKwkJcmV0LlJlbGF0aW9uID0gYWN2
cC5Ob3RFcXVhbHMKKwljYXNlICJjb250YWlucyI6CisJCXJldC5SZWxhdGlvbiA9IGFjdnAuQ29u
dGFpbnMKKwljYXNlICJzdGFydHNXaXRoIjoKKwkJcmV0LlJlbGF0aW9uID0gYWN2cC5TdGFydHNX
aXRoCisJY2FzZSAiZW5kc1dpdGgiOgorCQlyZXQuUmVsYXRpb24gPSBhY3ZwLkVuZHNXaXRoCisJ
ZGVmYXVsdDoKKwkJcGFuaWMoInJlbGF0aW9uIG5vdCBoYW5kbGVkOiAiICsgZS5jb250ZW50cyhu
b2RlKSkKKwl9CisJbm9kZSA9IHNraXBXUyhub2RlLm5leHQpCisKKwlyZXQuVmFsdWUgPSBlLnBh
cnNlU3RyaW5nTGl0ZXJhbChub2RlKQorCisJcmV0dXJuIHJldAorfQorCitmdW5jIHJ1bkludGVy
YWN0aXZlKHNlcnZlciAqYWN2cC5TZXJ2ZXIsIGNvbmZpZyBDb25maWcpIHsKKwlvbGRTdGF0ZSwg
ZXJyIDo9IHRlcm1pbmFsLk1ha2VSYXcoMCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcGFuaWMoZXJy
KQorCX0KKwlkZWZlciB0ZXJtaW5hbC5SZXN0b3JlKDAsIG9sZFN0YXRlKQorCXRlcm0gOj0gdGVy
bWluYWwuTmV3VGVybWluYWwob3MuU3RkaW4sICI+ICIpCisKKwlyZXNpemVDaGFuIDo9IG1ha2Uo
Y2hhbiBvcy5TaWduYWwpCisJZ28gZnVuYygpIHsKKwkJZm9yIF8gPSByYW5nZSByZXNpemVDaGFu
IHsKKwkJCXVwZGF0ZVRlcm1pbmFsU2l6ZSh0ZXJtKQorCQl9CisJfSgpCisJc2lnbmFsLk5vdGlm
eShyZXNpemVDaGFuLCBzeXNjYWxsLlNJR1dJTkNIKQorCisJZW52IDo9ICZFbnZ7dmFyaWFibGVz
OiBtYWtlKG1hcFtzdHJpbmddT2JqZWN0KSwgc2VydmVyOiBzZXJ2ZXIsIHRlcm06IHRlcm0sIGNv
bmZpZzogY29uZmlnfQorCWVudi52YXJpYWJsZXNbInJlcXVlc3RzIl0gPSBTZXJ2ZXJPYmplY3RT
ZXR7CisJCWVudjogICAgICAgICAgZW52LAorCQluYW1lOiAgICAgICAgICJyZXF1ZXN0cyIsCisJ
CXJlc3VsdFR5cGU6ICAgcmVmbGVjdC5UeXBlT2YoJmFjdnAuUmVxdWVzdFN0YXR1c3t9KSwKKwkJ
Y2FuRW51bWVyYXRlOiB0cnVlLAorCX0KKwkvLyBodHRwczovL3VzbmlzdGdvdi5naXRodWIuaW8v
QUNWUC9hcnRpZmFjdHMvZHJhZnQtZnVzc2VsbC1hY3ZwLXNwZWMtMDAuaHRtbCNyZmMuc2VjdGlv
bi4xMS44CisJZW52LnZhcmlhYmxlc1sidmVuZG9ycyJdID0gU2VydmVyT2JqZWN0U2V0eworCQll
bnY6ICBlbnYsCisJCW5hbWU6ICJ2ZW5kb3JzIiwKKwkJc2VhcmNoS2V5czogbWFwW3N0cmluZ11b
XWFjdnAuUmVsYXRpb257CisJCQkvLyBodHRwczovL3VzbmlzdGdvdi5naXRodWIuaW8vQUNWUC9h
cnRpZmFjdHMvZHJhZnQtZnVzc2VsbC1hY3ZwLXNwZWMtMDAuaHRtbCNyZmMuc2VjdGlvbi4xMS44
LjEKKwkJCSJuYW1lIjogICAgICAgIFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5T
dGFydHNXaXRoLCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJCSJ3ZWJzaXRlIjog
ICAgIFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5TdGFydHNXaXRoLCBhY3ZwLkVu
ZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJCSJlbWFpbCI6ICAgICAgIFtdYWN2cC5SZWxhdGlv
bnthY3ZwLkVxdWFscywgYWN2cC5TdGFydHNXaXRoLCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRh
aW5zfSwKKwkJCSJwaG9uZU51bWJlciI6IFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2
cC5TdGFydHNXaXRoLCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJfSwKKwkJc3Vi
T2JqZWN0czogbWFwW3N0cmluZ11mdW5jKCpFbnYsIHN0cmluZykgKE9iamVjdCwgZXJyb3Ipewor
CQkJImNvbnRhY3RzIjogZnVuYyhlbnYgKkVudiwgcHJlZml4IHN0cmluZykgKE9iamVjdCwgZXJy
b3IpIHsKKwkJCQlyZXR1cm4gU2VydmVyT2JqZWN0U2V0eworCQkJCQllbnY6ICAgICAgICAgIGVu
diwKKwkJCQkJbmFtZTogICAgICAgICBwcmVmaXggKyAiL2NvbnRhY3RzIiwKKwkJCQkJcmVzdWx0
VHlwZTogICByZWZsZWN0LlR5cGVPZigmYWN2cC5QZXJzb257fSksCisJCQkJCWNhbkVudW1lcmF0
ZTogdHJ1ZSwKKwkJCQl9LCBuaWwKKwkJCX0sCisJCQkiYWRkcmVzc2VzIjogZnVuYyhlbnYgKkVu
diwgcHJlZml4IHN0cmluZykgKE9iamVjdCwgZXJyb3IpIHsKKwkJCQlyZXR1cm4gU2VydmVyT2Jq
ZWN0U2V0eworCQkJCQllbnY6ICAgICAgICAgIGVudiwKKwkJCQkJbmFtZTogICAgICAgICBwcmVm
aXggKyAiL2FkZHJlc3NlcyIsCisJCQkJCXJlc3VsdFR5cGU6ICAgcmVmbGVjdC5UeXBlT2YoJmFj
dnAuQWRkcmVzc3t9KSwKKwkJCQkJY2FuRW51bWVyYXRlOiB0cnVlLAorCQkJCX0sIG5pbAorCQkJ
fSwKKwkJfSwKKwkJcmVzdWx0VHlwZTogcmVmbGVjdC5UeXBlT2YoJmFjdnAuVmVuZG9ye30pLAor
CX0KKwkvLyBodHRwczovL3VzbmlzdGdvdi5naXRodWIuaW8vQUNWUC9hcnRpZmFjdHMvZHJhZnQt
ZnVzc2VsbC1hY3ZwLXNwZWMtMDAuaHRtbCNyZmMuc2VjdGlvbi4xMS45CisJZW52LnZhcmlhYmxl
c1sicGVyc29ucyJdID0gU2VydmVyT2JqZWN0U2V0eworCQllbnY6ICBlbnYsCisJCW5hbWU6ICJw
ZXJzb25zIiwKKwkJc2VhcmNoS2V5czogbWFwW3N0cmluZ11bXWFjdnAuUmVsYXRpb257CisJCQkv
LyBodHRwczovL3VzbmlzdGdvdi5naXRodWIuaW8vQUNWUC9hcnRpZmFjdHMvZHJhZnQtZnVzc2Vs
bC1hY3ZwLXNwZWMtMDAuaHRtbCNyZmMuc2VjdGlvbi4xMS4xMC4xCisJCQkiZnVsbE5hbWUiOiAg
ICBbXWFjdnAuUmVsYXRpb257YWN2cC5FcXVhbHMsIGFjdnAuU3RhcnRzV2l0aCwgYWN2cC5FbmRz
V2l0aCwgYWN2cC5Db250YWluc30sCisJCQkiZW1haWwiOiAgICAgICBbXWFjdnAuUmVsYXRpb257
YWN2cC5FcXVhbHMsIGFjdnAuU3RhcnRzV2l0aCwgYWN2cC5FbmRzV2l0aCwgYWN2cC5Db250YWlu
c30sCisJCQkicGhvbmVOdW1iZXIiOiBbXWFjdnAuUmVsYXRpb257YWN2cC5FcXVhbHMsIGFjdnAu
U3RhcnRzV2l0aCwgYWN2cC5FbmRzV2l0aCwgYWN2cC5Db250YWluc30sCisJCQkidmVuZG9ySWQi
OiAgICBbXWFjdnAuUmVsYXRpb257YWN2cC5FcXVhbHMsIGFjdnAuTm90RXF1YWxzLCBhY3ZwLkxl
c3NUaGFuLCBhY3ZwLkxlc3NUaGFuRXF1YWwsIGFjdnAuR3JlYXRlclRoYW4sIGFjdnAuR3JlYXRl
clRoYW5FcXVhbH0sCisJCX0sCisJCXJlc3VsdFR5cGU6IHJlZmxlY3QuVHlwZU9mKCZhY3ZwLlBl
cnNvbnt9KSwKKwl9CisJLy8gaHR0cHM6Ly91c25pc3Rnb3YuZ2l0aHViLmlvL0FDVlAvYXJ0aWZh
Y3RzL2RyYWZ0LWZ1c3NlbGwtYWN2cC1zcGVjLTAwLmh0bWwjcmZjLnNlY3Rpb24uMTEuMTEKKwll
bnYudmFyaWFibGVzWyJtb2R1bGVzIl0gPSBTZXJ2ZXJPYmplY3RTZXR7CisJCWVudjogIGVudiwK
KwkJbmFtZTogIm1vZHVsZXMiLAorCQlzZWFyY2hLZXlzOiBtYXBbc3RyaW5nXVtdYWN2cC5SZWxh
dGlvbnsKKwkJCS8vIGh0dHBzOi8vdXNuaXN0Z292LmdpdGh1Yi5pby9BQ1ZQL2FydGlmYWN0cy9k
cmFmdC1mdXNzZWxsLWFjdnAtc3BlYy0wMC5odG1sI3JmYy5zZWN0aW9uLjExLjEwLjEKKwkJCSJu
YW1lIjogICAgICAgIFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5TdGFydHNXaXRo
LCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJCSJ2ZXJzaW9uIjogICAgIFtdYWN2
cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5TdGFydHNXaXRoLCBhY3ZwLkVuZHNXaXRoLCBh
Y3ZwLkNvbnRhaW5zfSwKKwkJCSJ3ZWJzaXRlIjogICAgIFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVx
dWFscywgYWN2cC5TdGFydHNXaXRoLCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJ
CSJkZXNjcmlwdGlvbiI6IFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5TdGFydHNX
aXRoLCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJCSJ0eXBlIjogICAgICAgIFtd
YWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5Ob3RFcXVhbHN9LAorCQkJInZlbmRvcklk
IjogICAgW11hY3ZwLlJlbGF0aW9ue2FjdnAuRXF1YWxzLCBhY3ZwLk5vdEVxdWFscywgYWN2cC5M
ZXNzVGhhbiwgYWN2cC5MZXNzVGhhbkVxdWFsLCBhY3ZwLkdyZWF0ZXJUaGFuLCBhY3ZwLkdyZWF0
ZXJUaGFuRXF1YWx9LAorCQl9LAorCQlyZXN1bHRUeXBlOiByZWZsZWN0LlR5cGVPZigmYWN2cC5N
b2R1bGV7fSksCisJfQorCS8vIGh0dHBzOi8vdXNuaXN0Z292LmdpdGh1Yi5pby9BQ1ZQL2FydGlm
YWN0cy9kcmFmdC1mdXNzZWxsLWFjdnAtc3BlYy0wMC5odG1sI3JmYy5zZWN0aW9uLjExLjEyCisJ
ZW52LnZhcmlhYmxlc1sib2VzIl0gPSBTZXJ2ZXJPYmplY3RTZXR7CisJCWVudjogIGVudiwKKwkJ
bmFtZTogIm9lcyIsCisJCXNlYXJjaEtleXM6IG1hcFtzdHJpbmddW11hY3ZwLlJlbGF0aW9uewor
CQkJLy8gaHR0cHM6Ly91c25pc3Rnb3YuZ2l0aHViLmlvL0FDVlAvYXJ0aWZhY3RzL2RyYWZ0LWZ1
c3NlbGwtYWN2cC1zcGVjLTAwLmh0bWwjcmZjLnNlY3Rpb24uMTEuMTIuMQorCQkJIm5hbWUiOiBb
XWFjdnAuUmVsYXRpb257YWN2cC5FcXVhbHMsIGFjdnAuU3RhcnRzV2l0aCwgYWN2cC5FbmRzV2l0
aCwgYWN2cC5Db250YWluc30sCisJCX0sCisJCXJlc3VsdFR5cGU6IHJlZmxlY3QuVHlwZU9mKCZh
Y3ZwLk9wZXJhdGlvbmFsRW52aXJvbm1lbnR7fSksCisJfQorCS8vIGh0dHBzOi8vdXNuaXN0Z292
LmdpdGh1Yi5pby9BQ1ZQL2FydGlmYWN0cy9kcmFmdC1mdXNzZWxsLWFjdnAtc3BlYy0wMC5odG1s
I3JmYy5zZWN0aW9uLjExLjEzCisJZW52LnZhcmlhYmxlc1siZGVwcyJdID0gU2VydmVyT2JqZWN0
U2V0eworCQllbnY6ICBlbnYsCisJCW5hbWU6ICJkZXBlbmRlbmNpZXMiLAorCQlzZWFyY2hLZXlz
OiBtYXBbc3RyaW5nXVtdYWN2cC5SZWxhdGlvbnsKKwkJCS8vIGh0dHBzOi8vdXNuaXN0Z292Lmdp
dGh1Yi5pby9BQ1ZQL2FydGlmYWN0cy9kcmFmdC1mdXNzZWxsLWFjdnAtc3BlYy0wMC5odG1sI3Jm
Yy5zZWN0aW9uLjExLjEyLjEKKwkJCSJuYW1lIjogICAgICAgIFtdYWN2cC5SZWxhdGlvbnthY3Zw
LkVxdWFscywgYWN2cC5TdGFydHNXaXRoLCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwK
KwkJCSJ0eXBlIjogICAgICAgIFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5TdGFy
dHNXaXRoLCBhY3ZwLkVuZHNXaXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJCSJkZXNjcmlwdGlvbiI6
IFtdYWN2cC5SZWxhdGlvbnthY3ZwLkVxdWFscywgYWN2cC5TdGFydHNXaXRoLCBhY3ZwLkVuZHNX
aXRoLCBhY3ZwLkNvbnRhaW5zfSwKKwkJfSwKKwkJcmVzdWx0VHlwZTogcmVmbGVjdC5UeXBlT2Yo
JmFjdnAuRGVwZW5kZW5jeXt9KSwKKwl9CisJLy8gaHR0cHM6Ly91c25pc3Rnb3YuZ2l0aHViLmlv
L0FDVlAvYXJ0aWZhY3RzL2RyYWZ0LWZ1c3NlbGwtYWN2cC1zcGVjLTAwLmh0bWwjcmZjLnNlY3Rp
b24uMTEuMTQKKwllbnYudmFyaWFibGVzWyJhbGdvcyJdID0gQWxnb3JpdGhtc3sKKwkJU2VydmVy
T2JqZWN0U2V0eworCQkJZW52OiAgICAgICAgICBlbnYsCisJCQluYW1lOiAgICAgICAgICJhbGdv
cml0aG1zIiwKKwkJCXJlc3VsdFR5cGU6ICAgcmVmbGVjdC5UeXBlT2YoJmFjdnAuQWxnb3JpdGht
e30pLAorCQkJY2FuRW51bWVyYXRlOiB0cnVlLAorCQl9LAorCX0KKwkvLyBodHRwczovL3Vzbmlz
dGdvdi5naXRodWIuaW8vQUNWUC9hcnRpZmFjdHMvZHJhZnQtZnVzc2VsbC1hY3ZwLXNwZWMtMDAu
aHRtbCNyZmMuc2VjdGlvbi4xMS4xNQorCWVudi52YXJpYWJsZXNbInNlc3Npb25zIl0gPSBTZXJ2
ZXJPYmplY3RTZXR7CisJCWVudjogICAgICAgICAgZW52LAorCQluYW1lOiAgICAgICAgICJ0ZXN0
U2Vzc2lvbnMiLAorCQlyZXN1bHRUeXBlOiAgIHJlZmxlY3QuVHlwZU9mKCZhY3ZwLlRlc3RTZXNz
aW9ue30pLAorCQljYW5FbnVtZXJhdGU6IHRydWUsCisJCXN1Yk9iamVjdHM6IG1hcFtzdHJpbmdd
ZnVuYyhlbnYgKkVudiwgcHJlZml4IHN0cmluZykgKE9iamVjdCwgZXJyb3IpeworCQkJInJlc3Vs
dHMiOiBmdW5jKGVudiAqRW52LCBwcmVmaXggc3RyaW5nKSAoT2JqZWN0LCBlcnJvcikgeworCQkJ
CXJldHVybiByZXN1bHRze2VudjogZW52LCBwcmVmaXg6IHByZWZpeH0sIG5pbAorCQkJfSwKKwkJ
fSwKKwl9CisKKwlmb3IgeworCQlpZiBlbnYubGluZSwgZXJyID0gdGVybS5SZWFkTGluZSgpOyBl
cnIgIT0gbmlsIHsKKwkJCXJldHVybgorCQl9CisJCWlmIGxlbihlbnYubGluZSkgPT0gMCB7CisJ
CQljb250aW51ZQorCQl9CisKKwkJc3RtdCA6PSBTdGF0ZW1lbnR7QnVmZmVyOiBlbnYubGluZSwg
UHJldHR5OiB0cnVlfQorCQlzdG10LkluaXQoKQorCQlpZiBlcnIgOj0gc3RtdC5QYXJzZSgpOyBl
cnIgIT0gbmlsIHsKKwkJCWlvLldyaXRlU3RyaW5nKHRlcm0sIGVyci5FcnJvcigpKQorCQkJY29u
dGludWUKKwkJfQorCisJCW5vZGUgOj0gc2tpcFdTKHN0bXQuQVNUKCkudXApCisJCXN3aXRjaCBu
b2RlLnBlZ1J1bGUgeworCQljYXNlIHJ1bGVFeHByZXNzaW9uOgorCQkJb2JqLCBlcnIgOj0gZW52
LmV2YWxFeHByZXNzaW9uKG5vZGUudXApCisJCQl2YXIgcmVwciBzdHJpbmcKKwkJCWlmIGVyciA9
PSBuaWwgeworCQkJCXJlcHIsIGVyciA9IG9iai5TdHJpbmcoKQorCQkJfQorCisJCQlpZiBlcnIg
IT0gbmlsIHsKKwkJCQlmbXQuRnByaW50Zih0ZXJtLCAiZXJyb3Igd2hpbGUgZXZhbHVhdGluZyBl
eHByZXNzaW9uOiAlc1xuIiwgZXJyKQorCQkJfSBlbHNlIHsKKwkJCQlpby5Xcml0ZVN0cmluZyh0
ZXJtLCByZXByKQorCQkJCWlvLldyaXRlU3RyaW5nKHRlcm0sICJcbiIpCisJCQl9CisKKwkJY2Fz
ZSBydWxlQWN0aW9uOgorCQkJaWYgZXJyIDo9IGVudi5ldmFsQWN0aW9uKG5vZGUudXApOyBlcnIg
IT0gbmlsIHsKKwkJCQlpby5Xcml0ZVN0cmluZyh0ZXJtLCBlcnIuRXJyb3IoKSkKKwkJCQlpby5X
cml0ZVN0cmluZyh0ZXJtLCAiXG4iKQorCQkJfQorCisJCWRlZmF1bHQ6CisJCQlmbXQuRnByaW50
Zih0ZXJtLCAiaW50ZXJuYWwgZXJyb3IgcGFyc2luZyBpbnB1dC5cbiIpCisJCX0KKwl9Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9wYXJzZXIucGVnIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvcGFyc2VyLnBlZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
YTc1OWM4NWQzZmVhODE3MjNjNmNmOTFhMDk3ZjNlNTFjOGNhNDY2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvcGFyc2VyLnBlZwpAQCAtMCwwICsx
LDI1IEBACitwYWNrYWdlIG1haW4KKwordHlwZSBTdGF0ZW1lbnQgUGVnIHt9CisKK1N0YXRlbWVu
dCA8LSBXUz8gKEFzc2lnbm1lbnQgLyBBY3Rpb24gLyBFeHByZXNzaW9uKSBXUz8gIS4KK0Fzc2ln
bm1lbnQgPC0gVmFyaWFibGUgV1M/ICc9JyBXUz8gRXhwcmVzc2lvbgorVmFyaWFibGUgPC0gW2Et
ekEtWl9dW2EtekEtWjAtOV9dKgorRXhwcmVzc2lvbiA8LSAoU3RyaW5nTGl0ZXJhbCAvIEluZGV4
aW5nIC8gU2VhcmNoIC8gVmFyaWFibGUpCitTdHJpbmdMaXRlcmFsIDwtICciJyBRdW90ZWRUZXh0
ICciJworUXVvdGVkVGV4dCA8LSAoRXNjYXBlZENoYXIgLyBbXlxcIl0pKgorRXNjYXBlZENoYXIg
PC0gJ1xcJyBbXFxuIl0KK0luZGV4aW5nIDwtIFZhcmlhYmxlICgnWycgSW5kZXggJ10nKSsKK0lu
ZGV4IDwtIFswLTlhLXpdKworU2VhcmNoIDwtIFZhcmlhYmxlICdbJyBXUz8gJ3doZXJlJyBXUyBR
dWVyeSAnXScKK0FjdGlvbiA8LSBFeHByZXNzaW9uICcuJyBDb21tYW5kCitDb21tYW5kIDwtIEZ1
bmN0aW9uICcoJyBBcmdzPyAnKScKK0Z1bmN0aW9uIDwtIFthLXpBLVpdKworQXJncyA8LSBTdHJp
bmdMaXRlcmFsIChXUz8gJywnIFdTPyBBcmdzKQorUXVlcnkgPC0gQ29uanVuY3Rpb25zIChXUz8g
J3x8JyBXUz8gQ29uanVuY3Rpb25zKT8KK0Nvbmp1bmN0aW9ucyA8LSBDb25qdW5jdGlvbiAoV1M/
ICcmJicgV1M/IENvbmp1bmN0aW9ucyk/CitDb25qdW5jdGlvbiA8LSBGaWVsZCBXUz8gUmVsYXRp
b24gV1M/IFN0cmluZ0xpdGVyYWwKK0ZpZWxkIDwtIFthLXpdW2EtekEtWjAtOV0qCitSZWxhdGlv
biA8LSAoJz09JyAvICchPScgLyAnY29udGFpbnMnIC8gJ3N0YXJ0c1dpdGgnIC8gJ2VuZHNXaXRo
JykKKworV1MgPC0gWyBcdF0rCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9h
Y3ZwdG9vbC9wYXJzZXIucGVnLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wv
cGFyc2VyLnBlZy5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODBhN2RjYWIyMjVlN2Y0NGRlZWY2ZWNlYjQ4Njc1
NDE0YWZhMGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2
cHRvb2wvcGFyc2VyLnBlZy5nbwpAQCAtMCwwICsxLDEzMzQgQEAKK3BhY2thZ2UgbWFpbgorCitp
bXBvcnQgKAorCSJmbXQiCisJIm1hdGgiCisJInNvcnQiCisJInN0cmNvbnYiCispCisKK2NvbnN0
IGVuZFN5bWJvbCBydW5lID0gMTExNDExMgorCisvKiBUaGUgcnVsZSB0eXBlcyBpbmZlcnJlZCBm
cm9tIHRoZSBncmFtbWFyIGFyZSBiZWxvdy4gKi8KK3R5cGUgcGVnUnVsZSB1aW50OAorCitjb25z
dCAoCisJcnVsZVVua25vd24gcGVnUnVsZSA9IGlvdGEKKwlydWxlU3RhdGVtZW50CisJcnVsZUFz
c2lnbm1lbnQKKwlydWxlVmFyaWFibGUKKwlydWxlRXhwcmVzc2lvbgorCXJ1bGVTdHJpbmdMaXRl
cmFsCisJcnVsZVF1b3RlZFRleHQKKwlydWxlRXNjYXBlZENoYXIKKwlydWxlSW5kZXhpbmcKKwly
dWxlSW5kZXgKKwlydWxlU2VhcmNoCisJcnVsZUFjdGlvbgorCXJ1bGVDb21tYW5kCisJcnVsZUZ1
bmN0aW9uCisJcnVsZUFyZ3MKKwlydWxlUXVlcnkKKwlydWxlQ29uanVuY3Rpb25zCisJcnVsZUNv
bmp1bmN0aW9uCisJcnVsZUZpZWxkCisJcnVsZVJlbGF0aW9uCisJcnVsZVdTCispCisKK3ZhciBy
dWwzcyA9IFsuLi5dc3RyaW5neworCSJVbmtub3duIiwKKwkiU3RhdGVtZW50IiwKKwkiQXNzaWdu
bWVudCIsCisJIlZhcmlhYmxlIiwKKwkiRXhwcmVzc2lvbiIsCisJIlN0cmluZ0xpdGVyYWwiLAor
CSJRdW90ZWRUZXh0IiwKKwkiRXNjYXBlZENoYXIiLAorCSJJbmRleGluZyIsCisJIkluZGV4IiwK
KwkiU2VhcmNoIiwKKwkiQWN0aW9uIiwKKwkiQ29tbWFuZCIsCisJIkZ1bmN0aW9uIiwKKwkiQXJn
cyIsCisJIlF1ZXJ5IiwKKwkiQ29uanVuY3Rpb25zIiwKKwkiQ29uanVuY3Rpb24iLAorCSJGaWVs
ZCIsCisJIlJlbGF0aW9uIiwKKwkiV1MiLAorfQorCit0eXBlIHRva2VuMzIgc3RydWN0IHsKKwlw
ZWdSdWxlCisJYmVnaW4sIGVuZCB1aW50MzIKK30KKworZnVuYyAodCAqdG9rZW4zMikgU3RyaW5n
KCkgc3RyaW5nIHsKKwlyZXR1cm4gZm10LlNwcmludGYoIlx4MUJbMzRtJXZceDFCW20gJXYgJXYi
LCBydWwzc1t0LnBlZ1J1bGVdLCB0LmJlZ2luLCB0LmVuZCkKK30KKwordHlwZSBub2RlMzIgc3Ry
dWN0IHsKKwl0b2tlbjMyCisJdXAsIG5leHQgKm5vZGUzMgorfQorCitmdW5jIChub2RlICpub2Rl
MzIpIHByaW50KHByZXR0eSBib29sLCBidWZmZXIgc3RyaW5nKSB7CisJdmFyIHByaW50IGZ1bmMo
bm9kZSAqbm9kZTMyLCBkZXB0aCBpbnQpCisJcHJpbnQgPSBmdW5jKG5vZGUgKm5vZGUzMiwgZGVw
dGggaW50KSB7CisJCWZvciBub2RlICE9IG5pbCB7CisJCQlmb3IgYyA6PSAwOyBjIDwgZGVwdGg7
IGMrKyB7CisJCQkJZm10LlByaW50ZigiICIpCisJCQl9CisJCQlydWxlIDo9IHJ1bDNzW25vZGUu
cGVnUnVsZV0KKwkJCXF1b3RlIDo9IHN0cmNvbnYuUXVvdGUoc3RyaW5nKChbXXJ1bmUoYnVmZmVy
KVtub2RlLmJlZ2luOm5vZGUuZW5kXSkpKQorCQkJaWYgIXByZXR0eSB7CisJCQkJZm10LlByaW50
ZigiJXYgJXZcbiIsIHJ1bGUsIHF1b3RlKQorCQkJfSBlbHNlIHsKKwkJCQlmbXQuUHJpbnRmKCJc
eDFCWzM0bSV2XHgxQlttICV2XG4iLCBydWxlLCBxdW90ZSkKKwkJCX0KKwkJCWlmIG5vZGUudXAg
IT0gbmlsIHsKKwkJCQlwcmludChub2RlLnVwLCBkZXB0aCsxKQorCQkJfQorCQkJbm9kZSA9IG5v
ZGUubmV4dAorCQl9CisJfQorCXByaW50KG5vZGUsIDApCit9CisKK2Z1bmMgKG5vZGUgKm5vZGUz
MikgUHJpbnQoYnVmZmVyIHN0cmluZykgeworCW5vZGUucHJpbnQoZmFsc2UsIGJ1ZmZlcikKK30K
KworZnVuYyAobm9kZSAqbm9kZTMyKSBQcmV0dHlQcmludChidWZmZXIgc3RyaW5nKSB7CisJbm9k
ZS5wcmludCh0cnVlLCBidWZmZXIpCit9CisKK3R5cGUgdG9rZW5zMzIgc3RydWN0IHsKKwl0cmVl
IFtddG9rZW4zMgorfQorCitmdW5jICh0ICp0b2tlbnMzMikgVHJpbShsZW5ndGggdWludDMyKSB7
CisJdC50cmVlID0gdC50cmVlWzpsZW5ndGhdCit9CisKK2Z1bmMgKHQgKnRva2VuczMyKSBQcmlu
dCgpIHsKKwlmb3IgXywgdG9rZW4gOj0gcmFuZ2UgdC50cmVlIHsKKwkJZm10LlByaW50bG4odG9r
ZW4uU3RyaW5nKCkpCisJfQorfQorCitmdW5jICh0ICp0b2tlbnMzMikgQVNUKCkgKm5vZGUzMiB7
CisJdHlwZSBlbGVtZW50IHN0cnVjdCB7CisJCW5vZGUgKm5vZGUzMgorCQlkb3duICplbGVtZW50
CisJfQorCXRva2VucyA6PSB0LlRva2VucygpCisJdmFyIHN0YWNrICplbGVtZW50CisJZm9yIF8s
IHRva2VuIDo9IHJhbmdlIHRva2VucyB7CisJCWlmIHRva2VuLmJlZ2luID09IHRva2VuLmVuZCB7
CisJCQljb250aW51ZQorCQl9CisJCW5vZGUgOj0gJm5vZGUzMnt0b2tlbjMyOiB0b2tlbn0KKwkJ
Zm9yIHN0YWNrICE9IG5pbCAmJiBzdGFjay5ub2RlLmJlZ2luID49IHRva2VuLmJlZ2luICYmIHN0
YWNrLm5vZGUuZW5kIDw9IHRva2VuLmVuZCB7CisJCQlzdGFjay5ub2RlLm5leHQgPSBub2RlLnVw
CisJCQlub2RlLnVwID0gc3RhY2subm9kZQorCQkJc3RhY2sgPSBzdGFjay5kb3duCisJCX0KKwkJ
c3RhY2sgPSAmZWxlbWVudHtub2RlOiBub2RlLCBkb3duOiBzdGFja30KKwl9CisJaWYgc3RhY2sg
IT0gbmlsIHsKKwkJcmV0dXJuIHN0YWNrLm5vZGUKKwl9CisJcmV0dXJuIG5pbAorfQorCitmdW5j
ICh0ICp0b2tlbnMzMikgUHJpbnRTeW50YXhUcmVlKGJ1ZmZlciBzdHJpbmcpIHsKKwl0LkFTVCgp
LlByaW50KGJ1ZmZlcikKK30KKworZnVuYyAodCAqdG9rZW5zMzIpIFByZXR0eVByaW50U3ludGF4
VHJlZShidWZmZXIgc3RyaW5nKSB7CisJdC5BU1QoKS5QcmV0dHlQcmludChidWZmZXIpCit9CisK
K2Z1bmMgKHQgKnRva2VuczMyKSBBZGQocnVsZSBwZWdSdWxlLCBiZWdpbiwgZW5kLCBpbmRleCB1
aW50MzIpIHsKKwlpZiB0cmVlIDo9IHQudHJlZTsgaW50KGluZGV4KSA+PSBsZW4odHJlZSkgewor
CQlleHBhbmRlZCA6PSBtYWtlKFtddG9rZW4zMiwgMipsZW4odHJlZSkpCisJCWNvcHkoZXhwYW5k
ZWQsIHRyZWUpCisJCXQudHJlZSA9IGV4cGFuZGVkCisJfQorCXQudHJlZVtpbmRleF0gPSB0b2tl
bjMyeworCQlwZWdSdWxlOiBydWxlLAorCQliZWdpbjogICBiZWdpbiwKKwkJZW5kOiAgICAgZW5k
LAorCX0KK30KKworZnVuYyAodCAqdG9rZW5zMzIpIFRva2VucygpIFtddG9rZW4zMiB7CisJcmV0
dXJuIHQudHJlZQorfQorCit0eXBlIFN0YXRlbWVudCBzdHJ1Y3QgeworCUJ1ZmZlciBzdHJpbmcK
KwlidWZmZXIgW11ydW5lCisJcnVsZXMgIFsyMV1mdW5jKCkgYm9vbAorCXBhcnNlICBmdW5jKHJ1
bGUgLi4uaW50KSBlcnJvcgorCXJlc2V0ICBmdW5jKCkKKwlQcmV0dHkgYm9vbAorCXRva2VuczMy
Cit9CisKK2Z1bmMgKHAgKlN0YXRlbWVudCkgUGFyc2UocnVsZSAuLi5pbnQpIGVycm9yIHsKKwly
ZXR1cm4gcC5wYXJzZShydWxlLi4uKQorfQorCitmdW5jIChwICpTdGF0ZW1lbnQpIFJlc2V0KCkg
eworCXAucmVzZXQoKQorfQorCit0eXBlIHRleHRQb3NpdGlvbiBzdHJ1Y3QgeworCWxpbmUsIHN5
bWJvbCBpbnQKK30KKwordHlwZSB0ZXh0UG9zaXRpb25NYXAgbWFwW2ludF10ZXh0UG9zaXRpb24K
KworZnVuYyB0cmFuc2xhdGVQb3NpdGlvbnMoYnVmZmVyIFtdcnVuZSwgcG9zaXRpb25zIFtdaW50
KSB0ZXh0UG9zaXRpb25NYXAgeworCWxlbmd0aCwgdHJhbnNsYXRpb25zLCBqLCBsaW5lLCBzeW1i
b2wgOj0gbGVuKHBvc2l0aW9ucyksIG1ha2UodGV4dFBvc2l0aW9uTWFwLCBsZW4ocG9zaXRpb25z
KSksIDAsIDEsIDAKKwlzb3J0LkludHMocG9zaXRpb25zKQorCitzZWFyY2g6CisJZm9yIGksIGMg
Oj0gcmFuZ2UgYnVmZmVyIHsKKwkJaWYgYyA9PSAnXG4nIHsKKwkJCWxpbmUsIHN5bWJvbCA9IGxp
bmUrMSwgMAorCQl9IGVsc2UgeworCQkJc3ltYm9sKysKKwkJfQorCQlpZiBpID09IHBvc2l0aW9u
c1tqXSB7CisJCQl0cmFuc2xhdGlvbnNbcG9zaXRpb25zW2pdXSA9IHRleHRQb3NpdGlvbntsaW5l
LCBzeW1ib2x9CisJCQlmb3IgaisrOyBqIDwgbGVuZ3RoOyBqKysgeworCQkJCWlmIGkgIT0gcG9z
aXRpb25zW2pdIHsKKwkJCQkJY29udGludWUgc2VhcmNoCisJCQkJfQorCQkJfQorCQkJYnJlYWsg
c2VhcmNoCisJCX0KKwl9CisKKwlyZXR1cm4gdHJhbnNsYXRpb25zCit9CisKK3R5cGUgcGFyc2VF
cnJvciBzdHJ1Y3QgeworCXAgICAqU3RhdGVtZW50CisJbWF4IHRva2VuMzIKK30KKworZnVuYyAo
ZSAqcGFyc2VFcnJvcikgRXJyb3IoKSBzdHJpbmcgeworCXRva2VucywgZXJyb3IgOj0gW110b2tl
bjMye2UubWF4fSwgIlxuIgorCXBvc2l0aW9ucywgcCA6PSBtYWtlKFtdaW50LCAyKmxlbih0b2tl
bnMpKSwgMAorCWZvciBfLCB0b2tlbiA6PSByYW5nZSB0b2tlbnMgeworCQlwb3NpdGlvbnNbcF0s
IHAgPSBpbnQodG9rZW4uYmVnaW4pLCBwKzEKKwkJcG9zaXRpb25zW3BdLCBwID0gaW50KHRva2Vu
LmVuZCksIHArMQorCX0KKwl0cmFuc2xhdGlvbnMgOj0gdHJhbnNsYXRlUG9zaXRpb25zKGUucC5i
dWZmZXIsIHBvc2l0aW9ucykKKwlmb3JtYXQgOj0gInBhcnNlIGVycm9yIG5lYXIgJXYgKGxpbmUg
JXYgc3ltYm9sICV2IC0gbGluZSAldiBzeW1ib2wgJXYpOlxuJXZcbiIKKwlpZiBlLnAuUHJldHR5
IHsKKwkJZm9ybWF0ID0gInBhcnNlIGVycm9yIG5lYXIgXHgxQlszNG0ldlx4MUJbbSAobGluZSAl
diBzeW1ib2wgJXYgLSBsaW5lICV2IHN5bWJvbCAldik6XG4ldlxuIgorCX0KKwlmb3IgXywgdG9r
ZW4gOj0gcmFuZ2UgdG9rZW5zIHsKKwkJYmVnaW4sIGVuZCA6PSBpbnQodG9rZW4uYmVnaW4pLCBp
bnQodG9rZW4uZW5kKQorCQllcnJvciArPSBmbXQuU3ByaW50Zihmb3JtYXQsCisJCQlydWwzc1t0
b2tlbi5wZWdSdWxlXSwKKwkJCXRyYW5zbGF0aW9uc1tiZWdpbl0ubGluZSwgdHJhbnNsYXRpb25z
W2JlZ2luXS5zeW1ib2wsCisJCQl0cmFuc2xhdGlvbnNbZW5kXS5saW5lLCB0cmFuc2xhdGlvbnNb
ZW5kXS5zeW1ib2wsCisJCQlzdHJjb252LlF1b3RlKHN0cmluZyhlLnAuYnVmZmVyW2JlZ2luOmVu
ZF0pKSkKKwl9CisKKwlyZXR1cm4gZXJyb3IKK30KKworZnVuYyAocCAqU3RhdGVtZW50KSBQcmlu
dFN5bnRheFRyZWUoKSB7CisJaWYgcC5QcmV0dHkgeworCQlwLnRva2VuczMyLlByZXR0eVByaW50
U3ludGF4VHJlZShwLkJ1ZmZlcikKKwl9IGVsc2UgeworCQlwLnRva2VuczMyLlByaW50U3ludGF4
VHJlZShwLkJ1ZmZlcikKKwl9Cit9CisKK2Z1bmMgKHAgKlN0YXRlbWVudCkgSW5pdCgpIHsKKwl2
YXIgKAorCQltYXggICAgICAgICAgICAgICAgICB0b2tlbjMyCisJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4IHVpbnQzMgorCQlidWZmZXIgICAgICAgICAgICAgICBbXXJ1bmUKKwkpCisJcC5yZXNldCA9
IGZ1bmMoKSB7CisJCW1heCA9IHRva2VuMzJ7fQorCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IDAs
IDAKKworCQlwLmJ1ZmZlciA9IFtdcnVuZShwLkJ1ZmZlcikKKwkJaWYgbGVuKHAuYnVmZmVyKSA9
PSAwIHx8IHAuYnVmZmVyW2xlbihwLmJ1ZmZlciktMV0gIT0gZW5kU3ltYm9sIHsKKwkJCXAuYnVm
ZmVyID0gYXBwZW5kKHAuYnVmZmVyLCBlbmRTeW1ib2wpCisJCX0KKwkJYnVmZmVyID0gcC5idWZm
ZXIKKwl9CisJcC5yZXNldCgpCisKKwlfcnVsZXMgOj0gcC5ydWxlcworCXRyZWUgOj0gdG9rZW5z
MzJ7dHJlZTogbWFrZShbXXRva2VuMzIsIG1hdGguTWF4SW50MTYpfQorCXAucGFyc2UgPSBmdW5j
KHJ1bGUgLi4uaW50KSBlcnJvciB7CisJCXIgOj0gMQorCQlpZiBsZW4ocnVsZSkgPiAwIHsKKwkJ
CXIgPSBydWxlWzBdCisJCX0KKwkJbWF0Y2hlcyA6PSBwLnJ1bGVzW3JdKCkKKwkJcC50b2tlbnMz
MiA9IHRyZWUKKwkJaWYgbWF0Y2hlcyB7CisJCQlwLlRyaW0odG9rZW5JbmRleCkKKwkJCXJldHVy
biBuaWwKKwkJfQorCQlyZXR1cm4gJnBhcnNlRXJyb3J7cCwgbWF4fQorCX0KKworCWFkZCA6PSBm
dW5jKHJ1bGUgcGVnUnVsZSwgYmVnaW4gdWludDMyKSB7CisJCXRyZWUuQWRkKHJ1bGUsIGJlZ2lu
LCBwb3NpdGlvbiwgdG9rZW5JbmRleCkKKwkJdG9rZW5JbmRleCsrCisJCWlmIGJlZ2luICE9IHBv
c2l0aW9uICYmIHBvc2l0aW9uID4gbWF4LmVuZCB7CisJCQltYXggPSB0b2tlbjMye3J1bGUsIGJl
Z2luLCBwb3NpdGlvbn0KKwkJfQorCX0KKworCW1hdGNoRG90IDo9IGZ1bmMoKSBib29sIHsKKwkJ
aWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBlbmRTeW1ib2wgeworCQkJcG9zaXRpb24rKworCQkJcmV0
dXJuIHRydWUKKwkJfQorCQlyZXR1cm4gZmFsc2UKKwl9CisKKwkvKm1hdGNoQ2hhciA6PSBmdW5j
KGMgYnl0ZSkgYm9vbCB7CisJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gPT0gYyB7CisJCQlwb3NpdGlv
bisrCisJCQlyZXR1cm4gdHJ1ZQorCQl9CisJCXJldHVybiBmYWxzZQorCX0qLworCisJLyptYXRj
aFJhbmdlIDo9IGZ1bmMobG93ZXIgYnl0ZSwgdXBwZXIgYnl0ZSkgYm9vbCB7CisJCWlmIGMgOj0g
YnVmZmVyW3Bvc2l0aW9uXTsgYyA+PSBsb3dlciAmJiBjIDw9IHVwcGVyIHsKKwkJCXBvc2l0aW9u
KysKKwkJCXJldHVybiB0cnVlCisJCX0KKwkJcmV0dXJuIGZhbHNlCisJfSovCisKKwlfcnVsZXMg
PSBbLi4uXWZ1bmMoKSBib29seworCQluaWwsCisJCS8qIDAgU3RhdGVtZW50IDwtIDwoV1M/IChB
c3NpZ25tZW50IC8gQWN0aW9uIC8gRXhwcmVzc2lvbikgV1M/ICEuKT4gKi8KKwkJZnVuYygpIGJv
b2wgeworCQkJcG9zaXRpb24wLCB0b2tlbkluZGV4MCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAor
CQkJeworCQkJCXBvc2l0aW9uMSA6PSBwb3NpdGlvbgorCQkJCXsKKwkJCQkJcG9zaXRpb24yLCB0
b2tlbkluZGV4MiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiAhX3J1bGVzW3J1bGVX
U10oKSB7CisJCQkJCQlnb3RvIGwyCisJCQkJCX0KKwkJCQkJZ290byBsMworCQkJCWwyOgorCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMiwgdG9rZW5JbmRleDIKKwkJCQl9CisJ
CQlsMzoKKwkJCQl7CisJCQkJCXBvc2l0aW9uNCwgdG9rZW5JbmRleDQgOj0gcG9zaXRpb24sIHRv
a2VuSW5kZXgKKwkJCQkJaWYgIV9ydWxlc1tydWxlQXNzaWdubWVudF0oKSB7CisJCQkJCQlnb3Rv
IGw1CisJCQkJCX0KKwkJCQkJZ290byBsNAorCQkJCWw1OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5J
bmRleCA9IHBvc2l0aW9uNCwgdG9rZW5JbmRleDQKKwkJCQkJaWYgIV9ydWxlc1tydWxlQWN0aW9u
XSgpIHsKKwkJCQkJCWdvdG8gbDYKKwkJCQkJfQorCQkJCQlnb3RvIGw0CisJCQkJbDY6CisJCQkJ
CXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240LCB0b2tlbkluZGV4NAorCQkJCQlpZiAh
X3J1bGVzW3J1bGVFeHByZXNzaW9uXSgpIHsKKwkJCQkJCWdvdG8gbDAKKwkJCQkJfQorCQkJCX0K
KwkJCWw0OgorCQkJCXsKKwkJCQkJcG9zaXRpb243LCB0b2tlbkluZGV4NyA6PSBwb3NpdGlvbiwg
dG9rZW5JbmRleAorCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCQlnb3RvIGw3CisJ
CQkJCX0KKwkJCQkJZ290byBsOAorCQkJCWw3OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9
IHBvc2l0aW9uNywgdG9rZW5JbmRleDcKKwkJCQl9CisJCQlsODoKKwkJCQl7CisJCQkJCXBvc2l0
aW9uOSwgdG9rZW5JbmRleDkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJaWYgIW1hdGNo
RG90KCkgeworCQkJCQkJZ290byBsOQorCQkJCQl9CisJCQkJCWdvdG8gbDAKKwkJCQlsOToKKwkJ
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjksIHRva2VuSW5kZXg5CisJCQkJfQor
CQkJCWFkZChydWxlU3RhdGVtZW50LCBwb3NpdGlvbjEpCisJCQl9CisJCQlyZXR1cm4gdHJ1ZQor
CQlsMDoKKwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24wLCB0b2tlbkluZGV4MAor
CQkJcmV0dXJuIGZhbHNlCisJCX0sCisJCS8qIDEgQXNzaWdubWVudCA8LSA8KFZhcmlhYmxlIFdT
PyAnPScgV1M/IEV4cHJlc3Npb24pPiAqLworCQlmdW5jKCkgYm9vbCB7CisJCQlwb3NpdGlvbjEw
LCB0b2tlbkluZGV4MTAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsKKwkJCQlwb3NpdGlv
bjExIDo9IHBvc2l0aW9uCisJCQkJaWYgIV9ydWxlc1tydWxlVmFyaWFibGVdKCkgeworCQkJCQln
b3RvIGwxMAorCQkJCX0KKwkJCQl7CisJCQkJCXBvc2l0aW9uMTIsIHRva2VuSW5kZXgxMiA6PSBw
b3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCQln
b3RvIGwxMgorCQkJCQl9CisJCQkJCWdvdG8gbDEzCisJCQkJbDEyOgorCQkJCQlwb3NpdGlvbiwg
dG9rZW5JbmRleCA9IHBvc2l0aW9uMTIsIHRva2VuSW5kZXgxMgorCQkJCX0KKwkJCWwxMzoKKwkJ
CQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJz0nKSB7CisJCQkJCWdvdG8gbDEwCisJCQkJ
fQorCQkJCXBvc2l0aW9uKysKKwkJCQl7CisJCQkJCXBvc2l0aW9uMTQsIHRva2VuSW5kZXgxNCA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJ
CQlnb3RvIGwxNAorCQkJCQl9CisJCQkJCWdvdG8gbDE1CisJCQkJbDE0OgorCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMTQsIHRva2VuSW5kZXgxNAorCQkJCX0KKwkJCWwxNToK
KwkJCQlpZiAhX3J1bGVzW3J1bGVFeHByZXNzaW9uXSgpIHsKKwkJCQkJZ290byBsMTAKKwkJCQl9
CisJCQkJYWRkKHJ1bGVBc3NpZ25tZW50LCBwb3NpdGlvbjExKQorCQkJfQorCQkJcmV0dXJuIHRy
dWUKKwkJbDEwOgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjEwLCB0b2tlbklu
ZGV4MTAKKwkJCXJldHVybiBmYWxzZQorCQl9LAorCQkvKiAyIFZhcmlhYmxlIDwtIDwoKFthLXpd
IC8gW0EtWl0gLyAnXycpIChbYS16XSAvIFtBLVpdIC8gWzAtOV0gLyAnXycpKik+ICovCisJCWZ1
bmMoKSBib29sIHsKKwkJCXBvc2l0aW9uMTYsIHRva2VuSW5kZXgxNiA6PSBwb3NpdGlvbiwgdG9r
ZW5JbmRleAorCQkJeworCQkJCXBvc2l0aW9uMTcgOj0gcG9zaXRpb24KKwkJCQl7CisJCQkJCXBv
c2l0aW9uMTgsIHRva2VuSW5kZXgxOCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiBj
IDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdhJykgfHwgYyA+IHJ1bmUoJ3onKSB7CisJ
CQkJCQlnb3RvIGwxOQorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJZ290byBsMTgKKwkJ
CQlsMTk6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24xOCwgdG9rZW5JbmRl
eDE4CisJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ0EnKSB8fCBjID4g
cnVuZSgnWicpIHsKKwkJCQkJCWdvdG8gbDIwCisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJ
CQlnb3RvIGwxOAorCQkJCWwyMDoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjE4LCB0b2tlbkluZGV4MTgKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdfJykg
eworCQkJCQkJZ290byBsMTYKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJfQorCQkJbDE4
OgorCQkJbDIxOgorCQkJCXsKKwkJCQkJcG9zaXRpb24yMiwgdG9rZW5JbmRleDIyIDo9IHBvc2l0
aW9uLCB0b2tlbkluZGV4CisJCQkJCXsKKwkJCQkJCXBvc2l0aW9uMjMsIHRva2VuSW5kZXgyMyA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBj
IDwgcnVuZSgnYScpIHx8IGMgPiBydW5lKCd6JykgeworCQkJCQkJCWdvdG8gbDI0CisJCQkJCQl9
CisJCQkJCQlwb3NpdGlvbisrCisJCQkJCQlnb3RvIGwyMworCQkJCQlsMjQ6CisJCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjMsIHRva2VuSW5kZXgyMworCQkJCQkJaWYgYyA6
PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnQScpIHx8IGMgPiBydW5lKCdaJykgeworCQkJ
CQkJCWdvdG8gbDI1CisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisrCisJCQkJCQlnb3RvIGwyMwor
CQkJCQlsMjU6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjMsIHRva2Vu
SW5kZXgyMworCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcpIHx8
IGMgPiBydW5lKCc5JykgeworCQkJCQkJCWdvdG8gbDI2CisJCQkJCQl9CisJCQkJCQlwb3NpdGlv
bisrCisJCQkJCQlnb3RvIGwyMworCQkJCQlsMjY6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRl
eCA9IHBvc2l0aW9uMjMsIHRva2VuSW5kZXgyMworCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAh
PSBydW5lKCdfJykgeworCQkJCQkJCWdvdG8gbDIyCisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisr
CisJCQkJCX0KKwkJCQlsMjM6CisJCQkJCWdvdG8gbDIxCisJCQkJbDIyOgorCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjIsIHRva2VuSW5kZXgyMgorCQkJCX0KKwkJCQlhZGQo
cnVsZVZhcmlhYmxlLCBwb3NpdGlvbjE3KQorCQkJfQorCQkJcmV0dXJuIHRydWUKKwkJbDE2Ogor
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjE2LCB0b2tlbkluZGV4MTYKKwkJCXJl
dHVybiBmYWxzZQorCQl9LAorCQkvKiAzIEV4cHJlc3Npb24gPC0gPChTdHJpbmdMaXRlcmFsIC8g
SW5kZXhpbmcgLyBTZWFyY2ggLyBWYXJpYWJsZSk+ICovCisJCWZ1bmMoKSBib29sIHsKKwkJCXBv
c2l0aW9uMjcsIHRva2VuSW5kZXgyNyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJeworCQkJ
CXBvc2l0aW9uMjggOj0gcG9zaXRpb24KKwkJCQl7CisJCQkJCXBvc2l0aW9uMjksIHRva2VuSW5k
ZXgyOSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiAhX3J1bGVzW3J1bGVTdHJpbmdM
aXRlcmFsXSgpIHsKKwkJCQkJCWdvdG8gbDMwCisJCQkJCX0KKwkJCQkJZ290byBsMjkKKwkJCQls
MzA6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yOSwgdG9rZW5JbmRleDI5
CisJCQkJCWlmICFfcnVsZXNbcnVsZUluZGV4aW5nXSgpIHsKKwkJCQkJCWdvdG8gbDMxCisJCQkJ
CX0KKwkJCQkJZ290byBsMjkKKwkJCQlsMzE6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb24yOSwgdG9rZW5JbmRleDI5CisJCQkJCWlmICFfcnVsZXNbcnVsZVNlYXJjaF0oKSB7
CisJCQkJCQlnb3RvIGwzMgorCQkJCQl9CisJCQkJCWdvdG8gbDI5CisJCQkJbDMyOgorCQkJCQlw
b3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjksIHRva2VuSW5kZXgyOQorCQkJCQlpZiAh
X3J1bGVzW3J1bGVWYXJpYWJsZV0oKSB7CisJCQkJCQlnb3RvIGwyNworCQkJCQl9CisJCQkJfQor
CQkJbDI5OgorCQkJCWFkZChydWxlRXhwcmVzc2lvbiwgcG9zaXRpb24yOCkKKwkJCX0KKwkJCXJl
dHVybiB0cnVlCisJCWwyNzoKKwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNywg
dG9rZW5JbmRleDI3CisJCQlyZXR1cm4gZmFsc2UKKwkJfSwKKwkJLyogNCBTdHJpbmdMaXRlcmFs
IDwtIDwoJyInIFF1b3RlZFRleHQgJyInKT4gKi8KKwkJZnVuYygpIGJvb2wgeworCQkJcG9zaXRp
b24zMywgdG9rZW5JbmRleDMzIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQl7CisJCQkJcG9z
aXRpb24zNCA6PSBwb3NpdGlvbgorCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnIicp
IHsKKwkJCQkJZ290byBsMzMKKwkJCQl9CisJCQkJcG9zaXRpb24rKworCQkJCWlmICFfcnVsZXNb
cnVsZVF1b3RlZFRleHRdKCkgeworCQkJCQlnb3RvIGwzMworCQkJCX0KKwkJCQlpZiBidWZmZXJb
cG9zaXRpb25dICE9IHJ1bmUoJyInKSB7CisJCQkJCWdvdG8gbDMzCisJCQkJfQorCQkJCXBvc2l0
aW9uKysKKwkJCQlhZGQocnVsZVN0cmluZ0xpdGVyYWwsIHBvc2l0aW9uMzQpCisJCQl9CisJCQly
ZXR1cm4gdHJ1ZQorCQlsMzM6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzMs
IHRva2VuSW5kZXgzMworCQkJcmV0dXJuIGZhbHNlCisJCX0sCisJCS8qIDUgUXVvdGVkVGV4dCA8
LSA8KEVzY2FwZWRDaGFyIC8gKCEoJ1xcJyAvICciJykgLikpKj4gKi8KKwkJZnVuYygpIGJvb2wg
eworCQkJeworCQkJCXBvc2l0aW9uMzYgOj0gcG9zaXRpb24KKwkJCWwzNzoKKwkJCQl7CisJCQkJ
CXBvc2l0aW9uMzgsIHRva2VuSW5kZXgzOCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQl7
CisJCQkJCQlwb3NpdGlvbjM5LCB0b2tlbkluZGV4MzkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
KwkJCQkJCWlmICFfcnVsZXNbcnVsZUVzY2FwZWRDaGFyXSgpIHsKKwkJCQkJCQlnb3RvIGw0MAor
CQkJCQkJfQorCQkJCQkJZ290byBsMzkKKwkJCQkJbDQwOgorCQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjM5LCB0b2tlbkluZGV4MzkKKwkJCQkJCXsKKwkJCQkJCQlwb3NpdGlv
bjQxLCB0b2tlbkluZGV4NDEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCQl7CisJCQkJ
CQkJCXBvc2l0aW9uNDIsIHRva2VuSW5kZXg0MiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJ
CQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ1xcJykgeworCQkJCQkJCQkJZ290byBs
NDMKKwkJCQkJCQkJfQorCQkJCQkJCQlwb3NpdGlvbisrCisJCQkJCQkJCWdvdG8gbDQyCisJCQkJ
CQkJbDQzOgorCQkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDIsIHRva2Vu
SW5kZXg0MgorCQkJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJyInKSB7CisJCQkJ
CQkJCQlnb3RvIGw0MQorCQkJCQkJCQl9CisJCQkJCQkJCXBvc2l0aW9uKysKKwkJCQkJCQl9CisJ
CQkJCQlsNDI6CisJCQkJCQkJZ290byBsMzgKKwkJCQkJCWw0MToKKwkJCQkJCQlwb3NpdGlvbiwg
dG9rZW5JbmRleCA9IHBvc2l0aW9uNDEsIHRva2VuSW5kZXg0MQorCQkJCQkJfQorCQkJCQkJaWYg
IW1hdGNoRG90KCkgeworCQkJCQkJCWdvdG8gbDM4CisJCQkJCQl9CisJCQkJCX0KKwkJCQlsMzk6
CisJCQkJCWdvdG8gbDM3CisJCQkJbDM4OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMzgsIHRva2VuSW5kZXgzOAorCQkJCX0KKwkJCQlhZGQocnVsZVF1b3RlZFRleHQsIHBv
c2l0aW9uMzYpCisJCQl9CisJCQlyZXR1cm4gdHJ1ZQorCQl9LAorCQkvKiA2IEVzY2FwZWRDaGFy
IDwtIDwoJ1xcJyAoJ1xcJyAvICduJyAvICciJykpPiAqLworCQlmdW5jKCkgYm9vbCB7CisJCQlw
b3NpdGlvbjQ0LCB0b2tlbkluZGV4NDQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsKKwkJ
CQlwb3NpdGlvbjQ1IDo9IHBvc2l0aW9uCisJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5l
KCdcXCcpIHsKKwkJCQkJZ290byBsNDQKKwkJCQl9CisJCQkJcG9zaXRpb24rKworCQkJCXsKKwkJ
CQkJcG9zaXRpb240NiwgdG9rZW5JbmRleDQ2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJ
CWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnXFwnKSB7CisJCQkJCQlnb3RvIGw0NworCQkJ
CQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJZ290byBsNDYKKwkJCQlsNDc6CisJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NiwgdG9rZW5JbmRleDQ2CisJCQkJCWlmIGJ1ZmZl
cltwb3NpdGlvbl0gIT0gcnVuZSgnbicpIHsKKwkJCQkJCWdvdG8gbDQ4CisJCQkJCX0KKwkJCQkJ
cG9zaXRpb24rKworCQkJCQlnb3RvIGw0NgorCQkJCWw0ODoKKwkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjQ2LCB0b2tlbkluZGV4NDYKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9u
XSAhPSBydW5lKCciJykgeworCQkJCQkJZ290byBsNDQKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisr
CisJCQkJfQorCQkJbDQ2OgorCQkJCWFkZChydWxlRXNjYXBlZENoYXIsIHBvc2l0aW9uNDUpCisJ
CQl9CisJCQlyZXR1cm4gdHJ1ZQorCQlsNDQ6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uNDQsIHRva2VuSW5kZXg0NAorCQkJcmV0dXJuIGZhbHNlCisJCX0sCisJCS8qIDcgSW5k
ZXhpbmcgPC0gPChWYXJpYWJsZSAoJ1snIEluZGV4ICddJykrKT4gKi8KKwkJZnVuYygpIGJvb2wg
eworCQkJcG9zaXRpb240OSwgdG9rZW5JbmRleDQ5IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJ
CQl7CisJCQkJcG9zaXRpb241MCA6PSBwb3NpdGlvbgorCQkJCWlmICFfcnVsZXNbcnVsZVZhcmlh
YmxlXSgpIHsKKwkJCQkJZ290byBsNDkKKwkJCQl9CisJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAh
PSBydW5lKCdbJykgeworCQkJCQlnb3RvIGw0OQorCQkJCX0KKwkJCQlwb3NpdGlvbisrCisJCQkJ
aWYgIV9ydWxlc1tydWxlSW5kZXhdKCkgeworCQkJCQlnb3RvIGw0OQorCQkJCX0KKwkJCQlpZiBi
dWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ10nKSB7CisJCQkJCWdvdG8gbDQ5CisJCQkJfQorCQkJ
CXBvc2l0aW9uKysKKwkJCWw1MToKKwkJCQl7CisJCQkJCXBvc2l0aW9uNTIsIHRva2VuSW5kZXg1
MiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJ1snKSB7CisJCQkJCQlnb3RvIGw1MgorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJ
aWYgIV9ydWxlc1tydWxlSW5kZXhdKCkgeworCQkJCQkJZ290byBsNTIKKwkJCQkJfQorCQkJCQlp
ZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ10nKSB7CisJCQkJCQlnb3RvIGw1MgorCQkJCQl9
CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJZ290byBsNTEKKwkJCQlsNTI6CisJCQkJCXBvc2l0aW9u
LCB0b2tlbkluZGV4ID0gcG9zaXRpb241MiwgdG9rZW5JbmRleDUyCisJCQkJfQorCQkJCWFkZChy
dWxlSW5kZXhpbmcsIHBvc2l0aW9uNTApCisJCQl9CisJCQlyZXR1cm4gdHJ1ZQorCQlsNDk6CisJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDksIHRva2VuSW5kZXg0OQorCQkJcmV0
dXJuIGZhbHNlCisJCX0sCisJCS8qIDggSW5kZXggPC0gPChbMC05XSAvIFthLXpdKSs+ICovCisJ
CWZ1bmMoKSBib29sIHsKKwkJCXBvc2l0aW9uNTMsIHRva2VuSW5kZXg1MyA6PSBwb3NpdGlvbiwg
dG9rZW5JbmRleAorCQkJeworCQkJCXBvc2l0aW9uNTQgOj0gcG9zaXRpb24KKwkJCQl7CisJCQkJ
CXBvc2l0aW9uNTcsIHRva2VuSW5kZXg1NyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlp
ZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCcwJykgfHwgYyA+IHJ1bmUoJzknKSB7
CisJCQkJCQlnb3RvIGw1OAorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJZ290byBsNTcK
KwkJCQlsNTg6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb241NywgdG9rZW5J
bmRleDU3CisJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ2EnKSB8fCBj
ID4gcnVuZSgneicpIHsKKwkJCQkJCWdvdG8gbDUzCisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKwor
CQkJCX0KKwkJCWw1NzoKKwkJCWw1NToKKwkJCQl7CisJCQkJCXBvc2l0aW9uNTYsIHRva2VuSW5k
ZXg1NiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQl7CisJCQkJCQlwb3NpdGlvbjU5LCB0
b2tlbkluZGV4NTkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCWlmIGMgOj0gYnVmZmVy
W3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVuZSgnOScpIHsKKwkJCQkJCQlnb3Rv
IGw2MAorCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJCQkJZ290byBsNTkKKwkJCQkJbDYw
OgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjU5LCB0b2tlbkluZGV4NTkK
KwkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ2EnKSB8fCBjID4gcnVu
ZSgneicpIHsKKwkJCQkJCQlnb3RvIGw1NgorCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJ
CQl9CisJCQkJbDU5OgorCQkJCQlnb3RvIGw1NQorCQkJCWw1NjoKKwkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjU2LCB0b2tlbkluZGV4NTYKKwkJCQl9CisJCQkJYWRkKHJ1bGVJ
bmRleCwgcG9zaXRpb241NCkKKwkJCX0KKwkJCXJldHVybiB0cnVlCisJCWw1MzoKKwkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb241MywgdG9rZW5JbmRleDUzCisJCQlyZXR1cm4gZmFs
c2UKKwkJfSwKKwkJLyogOSBTZWFyY2ggPC0gPChWYXJpYWJsZSAnWycgV1M/ICgndycgJ2gnICdl
JyAncicgJ2UnKSBXUyBRdWVyeSAnXScpPiAqLworCQlmdW5jKCkgYm9vbCB7CisJCQlwb3NpdGlv
bjYxLCB0b2tlbkluZGV4NjEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsKKwkJCQlwb3Np
dGlvbjYyIDo9IHBvc2l0aW9uCisJCQkJaWYgIV9ydWxlc1tydWxlVmFyaWFibGVdKCkgeworCQkJ
CQlnb3RvIGw2MQorCQkJCX0KKwkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ1snKSB7
CisJCQkJCWdvdG8gbDYxCisJCQkJfQorCQkJCXBvc2l0aW9uKysKKwkJCQl7CisJCQkJCXBvc2l0
aW9uNjMsIHRva2VuSW5kZXg2MyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiAhX3J1
bGVzW3J1bGVXU10oKSB7CisJCQkJCQlnb3RvIGw2MworCQkJCQl9CisJCQkJCWdvdG8gbDY0CisJ
CQkJbDYzOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNjMsIHRva2VuSW5k
ZXg2MworCQkJCX0KKwkJCWw2NDoKKwkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3cn
KSB7CisJCQkJCWdvdG8gbDYxCisJCQkJfQorCQkJCXBvc2l0aW9uKysKKwkJCQlpZiBidWZmZXJb
cG9zaXRpb25dICE9IHJ1bmUoJ2gnKSB7CisJCQkJCWdvdG8gbDYxCisJCQkJfQorCQkJCXBvc2l0
aW9uKysKKwkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2UnKSB7CisJCQkJCWdvdG8g
bDYxCisJCQkJfQorCQkJCXBvc2l0aW9uKysKKwkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJ3InKSB7CisJCQkJCWdvdG8gbDYxCisJCQkJfQorCQkJCXBvc2l0aW9uKysKKwkJCQlpZiBi
dWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2UnKSB7CisJCQkJCWdvdG8gbDYxCisJCQkJfQorCQkJ
CXBvc2l0aW9uKysKKwkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCWdvdG8gbDYxCisJ
CQkJfQorCQkJCWlmICFfcnVsZXNbcnVsZVF1ZXJ5XSgpIHsKKwkJCQkJZ290byBsNjEKKwkJCQl9
CisJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCddJykgeworCQkJCQlnb3RvIGw2MQor
CQkJCX0KKwkJCQlwb3NpdGlvbisrCisJCQkJYWRkKHJ1bGVTZWFyY2gsIHBvc2l0aW9uNjIpCisJ
CQl9CisJCQlyZXR1cm4gdHJ1ZQorCQlsNjE6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uNjEsIHRva2VuSW5kZXg2MQorCQkJcmV0dXJuIGZhbHNlCisJCX0sCisJCS8qIDEwIEFj
dGlvbiA8LSA8KEV4cHJlc3Npb24gJy4nIENvbW1hbmQpPiAqLworCQlmdW5jKCkgYm9vbCB7CisJ
CQlwb3NpdGlvbjY1LCB0b2tlbkluZGV4NjUgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsK
KwkJCQlwb3NpdGlvbjY2IDo9IHBvc2l0aW9uCisJCQkJaWYgIV9ydWxlc1tydWxlRXhwcmVzc2lv
bl0oKSB7CisJCQkJCWdvdG8gbDY1CisJCQkJfQorCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0g
cnVuZSgnLicpIHsKKwkJCQkJZ290byBsNjUKKwkJCQl9CisJCQkJcG9zaXRpb24rKworCQkJCWlm
ICFfcnVsZXNbcnVsZUNvbW1hbmRdKCkgeworCQkJCQlnb3RvIGw2NQorCQkJCX0KKwkJCQlhZGQo
cnVsZUFjdGlvbiwgcG9zaXRpb242NikKKwkJCX0KKwkJCXJldHVybiB0cnVlCisJCWw2NToKKwkJ
CXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb242NSwgdG9rZW5JbmRleDY1CisJCQlyZXR1
cm4gZmFsc2UKKwkJfSwKKwkJLyogMTEgQ29tbWFuZCA8LSA8KEZ1bmN0aW9uICcoJyBBcmdzPyAn
KScpPiAqLworCQlmdW5jKCkgYm9vbCB7CisJCQlwb3NpdGlvbjY3LCB0b2tlbkluZGV4NjcgOj0g
cG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsKKwkJCQlwb3NpdGlvbjY4IDo9IHBvc2l0aW9uCisJ
CQkJaWYgIV9ydWxlc1tydWxlRnVuY3Rpb25dKCkgeworCQkJCQlnb3RvIGw2NworCQkJCX0KKwkJ
CQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJygnKSB7CisJCQkJCWdvdG8gbDY3CisJCQkJ
fQorCQkJCXBvc2l0aW9uKysKKwkJCQl7CisJCQkJCXBvc2l0aW9uNjksIHRva2VuSW5kZXg2OSA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiAhX3J1bGVzW3J1bGVBcmdzXSgpIHsKKwkJ
CQkJCWdvdG8gbDY5CisJCQkJCX0KKwkJCQkJZ290byBsNzAKKwkJCQlsNjk6CisJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb242OSwgdG9rZW5JbmRleDY5CisJCQkJfQorCQkJbDcw
OgorCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnKScpIHsKKwkJCQkJZ290byBsNjcK
KwkJCQl9CisJCQkJcG9zaXRpb24rKworCQkJCWFkZChydWxlQ29tbWFuZCwgcG9zaXRpb242OCkK
KwkJCX0KKwkJCXJldHVybiB0cnVlCisJCWw2NzoKKwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb242NywgdG9rZW5JbmRleDY3CisJCQlyZXR1cm4gZmFsc2UKKwkJfSwKKwkJLyogMTIg
RnVuY3Rpb24gPC0gPChbYS16XSAvIFtBLVpdKSs+ICovCisJCWZ1bmMoKSBib29sIHsKKwkJCXBv
c2l0aW9uNzEsIHRva2VuSW5kZXg3MSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJeworCQkJ
CXBvc2l0aW9uNzIgOj0gcG9zaXRpb24KKwkJCQl7CisJCQkJCXBvc2l0aW9uNzUsIHRva2VuSW5k
ZXg3NSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlv
bl07IGMgPCBydW5lKCdhJykgfHwgYyA+IHJ1bmUoJ3onKSB7CisJCQkJCQlnb3RvIGw3NgorCQkJ
CQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJZ290byBsNzUKKwkJCQlsNzY6CisJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb243NSwgdG9rZW5JbmRleDc1CisJCQkJCWlmIGMgOj0g
YnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ0EnKSB8fCBjID4gcnVuZSgnWicpIHsKKwkJCQkJ
CWdvdG8gbDcxCisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCX0KKwkJCWw3NToKKwkJCWw3
MzoKKwkJCQl7CisJCQkJCXBvc2l0aW9uNzQsIHRva2VuSW5kZXg3NCA6PSBwb3NpdGlvbiwgdG9r
ZW5JbmRleAorCQkJCQl7CisJCQkJCQlwb3NpdGlvbjc3LCB0b2tlbkluZGV4NzcgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKKwkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUo
J2EnKSB8fCBjID4gcnVuZSgneicpIHsKKwkJCQkJCQlnb3RvIGw3OAorCQkJCQkJfQorCQkJCQkJ
cG9zaXRpb24rKworCQkJCQkJZ290byBsNzcKKwkJCQkJbDc4OgorCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjc3LCB0b2tlbkluZGV4NzcKKwkJCQkJCWlmIGMgOj0gYnVmZmVy
W3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ0EnKSB8fCBjID4gcnVuZSgnWicpIHsKKwkJCQkJCQlnb3Rv
IGw3NAorCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJCQl9CisJCQkJbDc3OgorCQkJCQln
b3RvIGw3MworCQkJCWw3NDoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjc0
LCB0b2tlbkluZGV4NzQKKwkJCQl9CisJCQkJYWRkKHJ1bGVGdW5jdGlvbiwgcG9zaXRpb243MikK
KwkJCX0KKwkJCXJldHVybiB0cnVlCisJCWw3MToKKwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb243MSwgdG9rZW5JbmRleDcxCisJCQlyZXR1cm4gZmFsc2UKKwkJfSwKKwkJLyogMTMg
QXJncyA8LSA8KFN0cmluZ0xpdGVyYWwgKFdTPyAnLCcgV1M/IEFyZ3MpKT4gKi8KKwkJZnVuYygp
IGJvb2wgeworCQkJcG9zaXRpb243OSwgdG9rZW5JbmRleDc5IDo9IHBvc2l0aW9uLCB0b2tlbklu
ZGV4CisJCQl7CisJCQkJcG9zaXRpb244MCA6PSBwb3NpdGlvbgorCQkJCWlmICFfcnVsZXNbcnVs
ZVN0cmluZ0xpdGVyYWxdKCkgeworCQkJCQlnb3RvIGw3OQorCQkJCX0KKwkJCQl7CisJCQkJCXBv
c2l0aW9uODEsIHRva2VuSW5kZXg4MSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiAh
X3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCQlnb3RvIGw4MQorCQkJCQl9CisJCQkJCWdvdG8gbDgy
CisJCQkJbDgxOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uODEsIHRva2Vu
SW5kZXg4MQorCQkJCX0KKwkJCWw4MjoKKwkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUo
JywnKSB7CisJCQkJCWdvdG8gbDc5CisJCQkJfQorCQkJCXBvc2l0aW9uKysKKwkJCQl7CisJCQkJ
CXBvc2l0aW9uODMsIHRva2VuSW5kZXg4MyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlp
ZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCQlnb3RvIGw4MworCQkJCQl9CisJCQkJCWdvdG8g
bDg0CisJCQkJbDgzOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uODMsIHRv
a2VuSW5kZXg4MworCQkJCX0KKwkJCWw4NDoKKwkJCQlpZiAhX3J1bGVzW3J1bGVBcmdzXSgpIHsK
KwkJCQkJZ290byBsNzkKKwkJCQl9CisJCQkJYWRkKHJ1bGVBcmdzLCBwb3NpdGlvbjgwKQorCQkJ
fQorCQkJcmV0dXJuIHRydWUKKwkJbDc5OgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjc5LCB0b2tlbkluZGV4NzkKKwkJCXJldHVybiBmYWxzZQorCQl9LAorCQkvKiAxNCBRdWVy
eSA8LSA8KENvbmp1bmN0aW9ucyAoV1M/ICgnfCcgJ3wnKSBXUz8gQ29uanVuY3Rpb25zKT8pPiAq
LworCQlmdW5jKCkgYm9vbCB7CisJCQlwb3NpdGlvbjg1LCB0b2tlbkluZGV4ODUgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKKwkJCXsKKwkJCQlwb3NpdGlvbjg2IDo9IHBvc2l0aW9uCisJCQkJaWYg
IV9ydWxlc1tydWxlQ29uanVuY3Rpb25zXSgpIHsKKwkJCQkJZ290byBsODUKKwkJCQl9CisJCQkJ
eworCQkJCQlwb3NpdGlvbjg3LCB0b2tlbkluZGV4ODcgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
KwkJCQkJeworCQkJCQkJcG9zaXRpb244OSwgdG9rZW5JbmRleDg5IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CisJCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCQkJZ290byBsODkKKwkJ
CQkJCX0KKwkJCQkJCWdvdG8gbDkwCisJCQkJCWw4OToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb244OSwgdG9rZW5JbmRleDg5CisJCQkJCX0KKwkJCQlsOTA6CisJCQkJCWlm
IGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnfCcpIHsKKwkJCQkJCWdvdG8gbDg3CisJCQkJCX0K
KwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3wnKSB7
CisJCQkJCQlnb3RvIGw4NworCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJeworCQkJCQkJ
cG9zaXRpb245MSwgdG9rZW5JbmRleDkxIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlp
ZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCQkJZ290byBsOTEKKwkJCQkJCX0KKwkJCQkJCWdv
dG8gbDkyCisJCQkJCWw5MToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb245
MSwgdG9rZW5JbmRleDkxCisJCQkJCX0KKwkJCQlsOTI6CisJCQkJCWlmICFfcnVsZXNbcnVsZUNv
bmp1bmN0aW9uc10oKSB7CisJCQkJCQlnb3RvIGw4NworCQkJCQl9CisJCQkJCWdvdG8gbDg4CisJ
CQkJbDg3OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uODcsIHRva2VuSW5k
ZXg4NworCQkJCX0KKwkJCWw4ODoKKwkJCQlhZGQocnVsZVF1ZXJ5LCBwb3NpdGlvbjg2KQorCQkJ
fQorCQkJcmV0dXJuIHRydWUKKwkJbDg1OgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjg1LCB0b2tlbkluZGV4ODUKKwkJCXJldHVybiBmYWxzZQorCQl9LAorCQkvKiAxNSBDb25q
dW5jdGlvbnMgPC0gPChDb25qdW5jdGlvbiAoV1M/ICgnJicgJyYnKSBXUz8gQ29uanVuY3Rpb25z
KT8pPiAqLworCQlmdW5jKCkgYm9vbCB7CisJCQlwb3NpdGlvbjkzLCB0b2tlbkluZGV4OTMgOj0g
cG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsKKwkJCQlwb3NpdGlvbjk0IDo9IHBvc2l0aW9uCisJ
CQkJaWYgIV9ydWxlc1tydWxlQ29uanVuY3Rpb25dKCkgeworCQkJCQlnb3RvIGw5MworCQkJCX0K
KwkJCQl7CisJCQkJCXBvc2l0aW9uOTUsIHRva2VuSW5kZXg5NSA6PSBwb3NpdGlvbiwgdG9rZW5J
bmRleAorCQkJCQl7CisJCQkJCQlwb3NpdGlvbjk3LCB0b2tlbkluZGV4OTcgOj0gcG9zaXRpb24s
IHRva2VuSW5kZXgKKwkJCQkJCWlmICFfcnVsZXNbcnVsZVdTXSgpIHsKKwkJCQkJCQlnb3RvIGw5
NworCQkJCQkJfQorCQkJCQkJZ290byBsOTgKKwkJCQkJbDk3OgorCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjk3LCB0b2tlbkluZGV4OTcKKwkJCQkJfQorCQkJCWw5ODoKKwkJ
CQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcmJykgeworCQkJCQkJZ290byBsOTUKKwkJ
CQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgn
JicpIHsKKwkJCQkJCWdvdG8gbDk1CisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQl7CisJ
CQkJCQlwb3NpdGlvbjk5LCB0b2tlbkluZGV4OTkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJ
CQkJCWlmICFfcnVsZXNbcnVsZVdTXSgpIHsKKwkJCQkJCQlnb3RvIGw5OQorCQkJCQkJfQorCQkJ
CQkJZ290byBsMTAwCisJCQkJCWw5OToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb245OSwgdG9rZW5JbmRleDk5CisJCQkJCX0KKwkJCQlsMTAwOgorCQkJCQlpZiAhX3J1bGVz
W3J1bGVDb25qdW5jdGlvbnNdKCkgeworCQkJCQkJZ290byBsOTUKKwkJCQkJfQorCQkJCQlnb3Rv
IGw5NgorCQkJCWw5NToKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjk1LCB0
b2tlbkluZGV4OTUKKwkJCQl9CisJCQlsOTY6CisJCQkJYWRkKHJ1bGVDb25qdW5jdGlvbnMsIHBv
c2l0aW9uOTQpCisJCQl9CisJCQlyZXR1cm4gdHJ1ZQorCQlsOTM6CisJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uOTMsIHRva2VuSW5kZXg5MworCQkJcmV0dXJuIGZhbHNlCisJCX0s
CisJCS8qIDE2IENvbmp1bmN0aW9uIDwtIDwoRmllbGQgV1M/IFJlbGF0aW9uIFdTPyBTdHJpbmdM
aXRlcmFsKT4gKi8KKwkJZnVuYygpIGJvb2wgeworCQkJcG9zaXRpb24xMDEsIHRva2VuSW5kZXgx
MDEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsKKwkJCQlwb3NpdGlvbjEwMiA6PSBwb3Np
dGlvbgorCQkJCWlmICFfcnVsZXNbcnVsZUZpZWxkXSgpIHsKKwkJCQkJZ290byBsMTAxCisJCQkJ
fQorCQkJCXsKKwkJCQkJcG9zaXRpb24xMDMsIHRva2VuSW5kZXgxMDMgOj0gcG9zaXRpb24sIHRv
a2VuSW5kZXgKKwkJCQkJaWYgIV9ydWxlc1tydWxlV1NdKCkgeworCQkJCQkJZ290byBsMTAzCisJ
CQkJCX0KKwkJCQkJZ290byBsMTA0CisJCQkJbDEwMzoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjEwMywgdG9rZW5JbmRleDEwMworCQkJCX0KKwkJCWwxMDQ6CisJCQkJaWYg
IV9ydWxlc1tydWxlUmVsYXRpb25dKCkgeworCQkJCQlnb3RvIGwxMDEKKwkJCQl9CisJCQkJewor
CQkJCQlwb3NpdGlvbjEwNSwgdG9rZW5JbmRleDEwNSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAor
CQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7CisJCQkJCQlnb3RvIGwxMDUKKwkJCQkJfQorCQkJ
CQlnb3RvIGwxMDYKKwkJCQlsMTA1OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMTA1LCB0b2tlbkluZGV4MTA1CisJCQkJfQorCQkJbDEwNjoKKwkJCQlpZiAhX3J1bGVzW3J1
bGVTdHJpbmdMaXRlcmFsXSgpIHsKKwkJCQkJZ290byBsMTAxCisJCQkJfQorCQkJCWFkZChydWxl
Q29uanVuY3Rpb24sIHBvc2l0aW9uMTAyKQorCQkJfQorCQkJcmV0dXJuIHRydWUKKwkJbDEwMToK
KwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24xMDEsIHRva2VuSW5kZXgxMDEKKwkJ
CXJldHVybiBmYWxzZQorCQl9LAorCQkvKiAxNyBGaWVsZCA8LSA8KFthLXpdIChbYS16XSAvIFtB
LVpdIC8gWzAtOV0pKik+ICovCisJCWZ1bmMoKSBib29sIHsKKwkJCXBvc2l0aW9uMTA3LCB0b2tl
bkluZGV4MTA3IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQl7CisJCQkJcG9zaXRpb24xMDgg
Oj0gcG9zaXRpb24KKwkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdhJykg
fHwgYyA+IHJ1bmUoJ3onKSB7CisJCQkJCWdvdG8gbDEwNworCQkJCX0KKwkJCQlwb3NpdGlvbisr
CisJCQlsMTA5OgorCQkJCXsKKwkJCQkJcG9zaXRpb24xMTAsIHRva2VuSW5kZXgxMTAgOj0gcG9z
aXRpb24sIHRva2VuSW5kZXgKKwkJCQkJeworCQkJCQkJcG9zaXRpb24xMTEsIHRva2VuSW5kZXgx
MTEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9u
XTsgYyA8IHJ1bmUoJ2EnKSB8fCBjID4gcnVuZSgneicpIHsKKwkJCQkJCQlnb3RvIGwxMTIKKwkJ
CQkJCX0KKwkJCQkJCXBvc2l0aW9uKysKKwkJCQkJCWdvdG8gbDExMQorCQkJCQlsMTEyOgorCQkJ
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjExMSwgdG9rZW5JbmRleDExMQorCQkJ
CQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnQScpIHx8IGMgPiBydW5lKCda
JykgeworCQkJCQkJCWdvdG8gbDExMworCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJCQkJ
Z290byBsMTExCisJCQkJCWwxMTM6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMTExLCB0b2tlbkluZGV4MTExCisJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMg
PCBydW5lKCcwJykgfHwgYyA+IHJ1bmUoJzknKSB7CisJCQkJCQkJZ290byBsMTEwCisJCQkJCQl9
CisJCQkJCQlwb3NpdGlvbisrCisJCQkJCX0KKwkJCQlsMTExOgorCQkJCQlnb3RvIGwxMDkKKwkJ
CQlsMTEwOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMTEwLCB0b2tlbklu
ZGV4MTEwCisJCQkJfQorCQkJCWFkZChydWxlRmllbGQsIHBvc2l0aW9uMTA4KQorCQkJfQorCQkJ
cmV0dXJuIHRydWUKKwkJbDEwNzoKKwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24x
MDcsIHRva2VuSW5kZXgxMDcKKwkJCXJldHVybiBmYWxzZQorCQl9LAorCQkvKiAxOCBSZWxhdGlv
biA8LSA8KCgnPScgJz0nKSAvICgnIScgJz0nKSAvICgnYycgJ28nICduJyAndCcgJ2EnICdpJyAn
bicgJ3MnKSAvICgncycgJ3QnICdhJyAncicgJ3QnICdzJyAnVycgJ2knICd0JyAnaCcpIC8gKCdl
JyAnbicgJ2QnICdzJyAnVycgJ2knICd0JyAnaCcpKT4gKi8KKwkJZnVuYygpIGJvb2wgeworCQkJ
cG9zaXRpb24xMTQsIHRva2VuSW5kZXgxMTQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXsK
KwkJCQlwb3NpdGlvbjExNSA6PSBwb3NpdGlvbgorCQkJCXsKKwkJCQkJcG9zaXRpb24xMTYsIHRv
a2VuSW5kZXgxMTYgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0
aW9uXSAhPSBydW5lKCc9JykgeworCQkJCQkJZ290byBsMTE3CisJCQkJCX0KKwkJCQkJcG9zaXRp
b24rKworCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJz0nKSB7CisJCQkJCQlnb3Rv
IGwxMTcKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJCWdvdG8gbDExNgorCQkJCWwxMTc6
CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24xMTYsIHRva2VuSW5kZXgxMTYK
KwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCchJykgeworCQkJCQkJZ290byBsMTE4
CisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJz0nKSB7CisJCQkJCQlnb3RvIGwxMTgKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJ
CWdvdG8gbDExNgorCQkJCWwxMTg6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b24xMTYsIHRva2VuSW5kZXgxMTYKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdj
JykgeworCQkJCQkJZ290byBsMTE5CisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBi
dWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ28nKSB7CisJCQkJCQlnb3RvIGwxMTkKKwkJCQkJfQor
CQkJCQlwb3NpdGlvbisrCisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnbicpIHsK
KwkJCQkJCWdvdG8gbDExOQorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJaWYgYnVmZmVy
W3Bvc2l0aW9uXSAhPSBydW5lKCd0JykgeworCQkJCQkJZ290byBsMTE5CisJCQkJCX0KKwkJCQkJ
cG9zaXRpb24rKworCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2EnKSB7CisJCQkJ
CQlnb3RvIGwxMTkKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJCWlmIGJ1ZmZlcltwb3Np
dGlvbl0gIT0gcnVuZSgnaScpIHsKKwkJCQkJCWdvdG8gbDExOQorCQkJCQl9CisJCQkJCXBvc2l0
aW9uKysKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCduJykgeworCQkJCQkJZ290
byBsMTE5CisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBidWZmZXJbcG9zaXRpb25d
ICE9IHJ1bmUoJ3MnKSB7CisJCQkJCQlnb3RvIGwxMTkKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisr
CisJCQkJCWdvdG8gbDExNgorCQkJCWwxMTk6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb24xMTYsIHRva2VuSW5kZXgxMTYKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCdzJykgeworCQkJCQkJZ290byBsMTIwCisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJ
CQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3QnKSB7CisJCQkJCQlnb3RvIGwxMjAKKwkJ
CQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgn
YScpIHsKKwkJCQkJCWdvdG8gbDEyMAorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJaWYg
YnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdyJykgeworCQkJCQkJZ290byBsMTIwCisJCQkJCX0K
KwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3QnKSB7
CisJCQkJCQlnb3RvIGwxMjAKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJCWlmIGJ1ZmZl
cltwb3NpdGlvbl0gIT0gcnVuZSgncycpIHsKKwkJCQkJCWdvdG8gbDEyMAorCQkJCQl9CisJCQkJ
CXBvc2l0aW9uKysKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdXJykgeworCQkJ
CQkJZ290byBsMTIwCisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBidWZmZXJbcG9z
aXRpb25dICE9IHJ1bmUoJ2knKSB7CisJCQkJCQlnb3RvIGwxMjAKKwkJCQkJfQorCQkJCQlwb3Np
dGlvbisrCisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgndCcpIHsKKwkJCQkJCWdv
dG8gbDEyMAorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9u
XSAhPSBydW5lKCdoJykgeworCQkJCQkJZ290byBsMTIwCisJCQkJCX0KKwkJCQkJcG9zaXRpb24r
KworCQkJCQlnb3RvIGwxMTYKKwkJCQlsMTIwOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9
IHBvc2l0aW9uMTE2LCB0b2tlbkluZGV4MTE2CisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0g
cnVuZSgnZScpIHsKKwkJCQkJCWdvdG8gbDExNAorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJ
CQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCduJykgeworCQkJCQkJZ290byBsMTE0CisJ
CQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUo
J2QnKSB7CisJCQkJCQlnb3RvIGwxMTQKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJCWlm
IGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgncycpIHsKKwkJCQkJCWdvdG8gbDExNAorCQkJCQl9
CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdXJykg
eworCQkJCQkJZ290byBsMTE0CisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQlpZiBidWZm
ZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2knKSB7CisJCQkJCQlnb3RvIGwxMTQKKwkJCQkJfQorCQkJ
CQlwb3NpdGlvbisrCisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgndCcpIHsKKwkJ
CQkJCWdvdG8gbDExNAorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJaWYgYnVmZmVyW3Bv
c2l0aW9uXSAhPSBydW5lKCdoJykgeworCQkJCQkJZ290byBsMTE0CisJCQkJCX0KKwkJCQkJcG9z
aXRpb24rKworCQkJCX0KKwkJCWwxMTY6CisJCQkJYWRkKHJ1bGVSZWxhdGlvbiwgcG9zaXRpb24x
MTUpCisJCQl9CisJCQlyZXR1cm4gdHJ1ZQorCQlsMTE0OgorCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjExNCwgdG9rZW5JbmRleDExNAorCQkJcmV0dXJuIGZhbHNlCisJCX0sCisJ
CS8qIDE5IFdTIDwtIDwoJyAnIC8gJ1x0JykrPiAqLworCQlmdW5jKCkgYm9vbCB7CisJCQlwb3Np
dGlvbjEyMSwgdG9rZW5JbmRleDEyMSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJeworCQkJ
CXBvc2l0aW9uMTIyIDo9IHBvc2l0aW9uCisJCQkJeworCQkJCQlwb3NpdGlvbjEyNSwgdG9rZW5J
bmRleDEyNSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlpZiBidWZmZXJbcG9zaXRpb25d
ICE9IHJ1bmUoJyAnKSB7CisJCQkJCQlnb3RvIGwxMjYKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisr
CisJCQkJCWdvdG8gbDEyNQorCQkJCWwxMjY6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb24xMjUsIHRva2VuSW5kZXgxMjUKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCdcdCcpIHsKKwkJCQkJCWdvdG8gbDEyMQorCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJ
CQl9CisJCQlsMTI1OgorCQkJbDEyMzoKKwkJCQl7CisJCQkJCXBvc2l0aW9uMTI0LCB0b2tlbklu
ZGV4MTI0IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCXsKKwkJCQkJCXBvc2l0aW9uMTI3
LCB0b2tlbkluZGV4MTI3IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlpZiBidWZmZXJb
cG9zaXRpb25dICE9IHJ1bmUoJyAnKSB7CisJCQkJCQkJZ290byBsMTI4CisJCQkJCQl9CisJCQkJ
CQlwb3NpdGlvbisrCisJCQkJCQlnb3RvIGwxMjcKKwkJCQkJbDEyODoKKwkJCQkJCXBvc2l0aW9u
LCB0b2tlbkluZGV4ID0gcG9zaXRpb24xMjcsIHRva2VuSW5kZXgxMjcKKwkJCQkJCWlmIGJ1ZmZl
cltwb3NpdGlvbl0gIT0gcnVuZSgnXHQnKSB7CisJCQkJCQkJZ290byBsMTI0CisJCQkJCQl9CisJ
CQkJCQlwb3NpdGlvbisrCisJCQkJCX0KKwkJCQlsMTI3OgorCQkJCQlnb3RvIGwxMjMKKwkJCQls
MTI0OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMTI0LCB0b2tlbkluZGV4
MTI0CisJCQkJfQorCQkJCWFkZChydWxlV1MsIHBvc2l0aW9uMTIyKQorCQkJfQorCQkJcmV0dXJu
IHRydWUKKwkJbDEyMToKKwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24xMjEsIHRv
a2VuSW5kZXgxMjEKKwkJCXJldHVybiBmYWxzZQorCQl9LAorCX0KKwlwLnJ1bGVzID0gX3J1bGVz
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9vbC9zdWJwcm9j
ZXNzL2Jsb2NrLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvc3VicHJvY2Vz
cy9ibG9jay5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWVkMmNiZDY4YTcxNjM4NDNiODFlYzA2OTYwYTVkMzdl
MzM3N2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRv
b2wvc3VicHJvY2Vzcy9ibG9jay5nbwpAQCAtMCwwICsxLDI1MiBAQAorcGFja2FnZSBzdWJwcm9j
ZXNzCisKK2ltcG9ydCAoCisJImVuY29kaW5nL2hleCIKKwkiZW5jb2RpbmcvanNvbiIKKwkiZm10
IgorKQorCisvLyBibG9ja0NpcGhlciBpbXBsZW1lbnRzIGFuIEFDVlAgYWxnb3JpdGhtIGJ5IG1h
a2luZyByZXF1ZXN0cyB0byB0aGUgc3VicHJvY2VzcworLy8gdG8gZW5jcnlwdCBhbmQgZGVjcnlw
dCB3aXRoIGEgYmxvY2sgY2lwaGVyLgordHlwZSBibG9ja0NpcGhlciBzdHJ1Y3QgeworCWFsZ28g
ICAgICBzdHJpbmcKKwlibG9ja1NpemUgaW50CisJaGFzSVYgICAgIGJvb2wKKwltICAgICAgICAg
KlN1YnByb2Nlc3MKK30KKwordHlwZSBibG9ja0NpcGhlclZlY3RvclNldCBzdHJ1Y3QgeworCUdy
b3VwcyBbXWJsb2NrQ2lwaGVyVGVzdEdyb3VwIGBqc29uOiJ0ZXN0R3JvdXBzImAKK30KKwordHlw
ZSBibG9ja0NpcGhlclRlc3RHcm91cCBzdHJ1Y3QgeworCUlEICAgICAgICB1aW50NjQgYGpzb246
InRnSWQiYAorCVR5cGUgICAgICBzdHJpbmcgYGpzb246InRlc3RUeXBlImAKKwlEaXJlY3Rpb24g
c3RyaW5nIGBqc29uOiJkaXJlY3Rpb24iYAorCUtleUJpdHMgICBpbnQgICAgYGpzb246ImtleWxl
biJgCisJVGVzdHMgICAgIFtdc3RydWN0IHsKKwkJSUQgICAgICAgICAgICB1aW50NjQgYGpzb246
InRjSWQiYAorCQlQbGFpbnRleHRIZXggIHN0cmluZyBganNvbjoicHQiYAorCQlDaXBoZXJ0ZXh0
SGV4IHN0cmluZyBganNvbjoiY3QiYAorCQlJVkhleCAgICAgICAgIHN0cmluZyBganNvbjoiaXYi
YAorCQlLZXlIZXggICAgICAgIHN0cmluZyBganNvbjoia2V5ImAKKwl9IGBqc29uOiJ0ZXN0cyJg
Cit9CisKK3R5cGUgYmxvY2tDaXBoZXJUZXN0R3JvdXBSZXNwb25zZSBzdHJ1Y3QgeworCUlEICAg
IHVpbnQ2NCAgICAgICAgICAgICAgICAgICAgYGpzb246InRnSWQiYAorCVRlc3RzIFtdYmxvY2tD
aXBoZXJUZXN0UmVzcG9uc2UgYGpzb246InRlc3RzImAKK30KKwordHlwZSBibG9ja0NpcGhlclRl
c3RSZXNwb25zZSBzdHJ1Y3QgeworCUlEICAgICAgICAgICAgdWludDY0ICAgICAgICAgICAgICAg
ICBganNvbjoidGNJZCJgCisJQ2lwaGVydGV4dEhleCBzdHJpbmcgICAgICAgICAgICAgICAgIGBq
c29uOiJjdCxvbWl0ZW1wdHkiYAorCVBsYWludGV4dEhleCAgc3RyaW5nICAgICAgICAgICAgICAg
ICBganNvbjoicHQsb21pdGVtcHR5ImAKKwlNQ1RSZXN1bHRzICAgIFtdYmxvY2tDaXBoZXJNQ1RS
ZXN1bHQgYGpzb246InJlc3VsdHNBcnJheSxvbWl0ZW1wdHkiYAorfQorCit0eXBlIGJsb2NrQ2lw
aGVyTUNUUmVzdWx0IHN0cnVjdCB7CisJS2V5SGV4ICAgICAgICBzdHJpbmcgYGpzb246ImtleSJg
CisJUGxhaW50ZXh0SGV4ICBzdHJpbmcgYGpzb246InB0ImAKKwlDaXBoZXJ0ZXh0SGV4IHN0cmlu
ZyBganNvbjoiY3QiYAorCUlWSGV4ICAgICAgICAgc3RyaW5nIGBqc29uOiJpdixvbWl0ZW1wdHki
YAorfQorCitmdW5jIChiICpibG9ja0NpcGhlcikgUHJvY2Vzcyh2ZWN0b3JTZXQgW11ieXRlKSAo
aW50ZXJmYWNle30sIGVycm9yKSB7CisJdmFyIHBhcnNlZCBibG9ja0NpcGhlclZlY3RvclNldAor
CWlmIGVyciA6PSBqc29uLlVubWFyc2hhbCh2ZWN0b3JTZXQsICZwYXJzZWQpOyBlcnIgIT0gbmls
IHsKKwkJcmV0dXJuIG5pbCwgZXJyCisJfQorCisJdmFyIHJldCBbXWJsb2NrQ2lwaGVyVGVzdEdy
b3VwUmVzcG9uc2UKKwkvLyBTZWUKKwkvLyBodHRwOi8vdXNuaXN0Z292LmdpdGh1Yi5pby9BQ1ZQ
L2FydGlmYWN0cy9kcmFmdC1jZWxpLWFjdnAtYmxvY2stY2lwaC0wMC5odG1sI3JmYy5zZWN0aW9u
LjUuMgorCS8vIGZvciBkZXRhaWxzIGFib3V0IHRoZSB0ZXN0cy4KKwlmb3IgXywgZ3JvdXAgOj0g
cmFuZ2UgcGFyc2VkLkdyb3VwcyB7CisJCXJlc3BvbnNlIDo9IGJsb2NrQ2lwaGVyVGVzdEdyb3Vw
UmVzcG9uc2V7CisJCQlJRDogZ3JvdXAuSUQsCisJCX0KKworCQl2YXIgZW5jcnlwdCBib29sCisJ
CXN3aXRjaCBncm91cC5EaXJlY3Rpb24geworCQljYXNlICJlbmNyeXB0IjoKKwkJCWVuY3J5cHQg
PSB0cnVlCisJCWNhc2UgImRlY3J5cHQiOgorCQkJZW5jcnlwdCA9IGZhbHNlCisJCWRlZmF1bHQ6
CisJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJ0ZXN0IGdyb3VwICVkIGhhcyB1bmtub3duIGRp
cmVjdGlvbiAlcSIsIGdyb3VwLklELCBncm91cC5EaXJlY3Rpb24pCisJCX0KKworCQlvcCA6PSBi
LmFsZ28gKyAiL2VuY3J5cHQiCisJCWlmICFlbmNyeXB0IHsKKwkJCW9wID0gYi5hbGdvICsgIi9k
ZWNyeXB0IgorCQl9CisKKwkJdmFyIG1jdCBib29sCisJCXN3aXRjaCBncm91cC5UeXBlIHsKKwkJ
Y2FzZSAiQUZUIjoKKwkJCW1jdCA9IGZhbHNlCisJCWNhc2UgIk1DVCI6CisJCQltY3QgPSB0cnVl
CisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJ0ZXN0IGdyb3VwICVkIGhh
cyB1bmtub3duIHR5cGUgJXEiLCBncm91cC5JRCwgZ3JvdXAuVHlwZSkKKwkJfQorCisJCWlmIGdy
b3VwLktleUJpdHMlOCAhPSAwIHsKKwkJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoInRlc3QgZ3Jv
dXAgJWQgY29udGFpbnMgbm9uLWJ5dGUtbXVsdGlwbGUga2V5IGxlbmd0aCAlZCIsIGdyb3VwLklE
LCBncm91cC5LZXlCaXRzKQorCQl9CisJCWtleUJ5dGVzIDo9IGdyb3VwLktleUJpdHMgLyA4CisK
KwkJZm9yIF8sIHRlc3QgOj0gcmFuZ2UgZ3JvdXAuVGVzdHMgeworCQkJaWYgbGVuKHRlc3QuS2V5
SGV4KSAhPSBrZXlCeXRlcyoyIHsKKwkJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJ0ZXN0IGNh
c2UgJWQvJWQgY29udGFpbnMga2V5ICVxIG9mIGxlbmd0aCAlZCwgYnV0IGV4cGVjdGVkICVkLWJp
dCBrZXkiLCBncm91cC5JRCwgdGVzdC5JRCwgdGVzdC5LZXlIZXgsIGxlbih0ZXN0LktleUhleCks
IGdyb3VwLktleUJpdHMpCisJCQl9CisKKwkJCWtleSwgZXJyIDo9IGhleC5EZWNvZGVTdHJpbmco
dGVzdC5LZXlIZXgpCisJCQlpZiBlcnIgIT0gbmlsIHsKKwkJCQlyZXR1cm4gbmlsLCBmbXQuRXJy
b3JmKCJmYWlsZWQgdG8gZGVjb2RlIGhleCBpbiB0ZXN0IGNhc2UgJWQvJWQ6ICVzIiwgZ3JvdXAu
SUQsIHRlc3QuSUQsIGVycikKKwkJCX0KKworCQkJdmFyIGlucHV0SGV4IHN0cmluZworCQkJaWYg
ZW5jcnlwdCB7CisJCQkJaW5wdXRIZXggPSB0ZXN0LlBsYWludGV4dEhleAorCQkJfSBlbHNlIHsK
KwkJCQlpbnB1dEhleCA9IHRlc3QuQ2lwaGVydGV4dEhleAorCQkJfQorCisJCQlpbnB1dCwgZXJy
IDo9IGhleC5EZWNvZGVTdHJpbmcoaW5wdXRIZXgpCisJCQlpZiBlcnIgIT0gbmlsIHsKKwkJCQly
ZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJmYWlsZWQgdG8gZGVjb2RlIGhleCBpbiB0ZXN0IGNhc2Ug
JWQvJWQ6ICVzIiwgZ3JvdXAuSUQsIHRlc3QuSUQsIGVycikKKwkJCX0KKworCQkJaWYgbGVuKGlu
cHV0KSViLmJsb2NrU2l6ZSAhPSAwIHsKKwkJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJ0ZXN0
IGNhc2UgJWQvJWQgaGFzIGlucHV0IG9mIGxlbmd0aCAlZCwgYnV0IGV4cGVjdGVkIG11bHRpcGxl
IG9mICVkIiwgZ3JvdXAuSUQsIHRlc3QuSUQsIGxlbihpbnB1dCksIGIuYmxvY2tTaXplKQorCQkJ
fQorCisJCQl2YXIgaXYgW11ieXRlCisJCQlpZiBiLmhhc0lWIHsKKwkJCQlpZiBpdiwgZXJyID0g
aGV4LkRlY29kZVN0cmluZyh0ZXN0LklWSGV4KTsgZXJyICE9IG5pbCB7CisJCQkJCXJldHVybiBu
aWwsIGZtdC5FcnJvcmYoImZhaWxlZCB0byBkZWNvZGUgaGV4IGluIHRlc3QgY2FzZSAlZC8lZDog
JXMiLCBncm91cC5JRCwgdGVzdC5JRCwgZXJyKQorCQkJCX0KKwkJCQlpZiBsZW4oaXYpICE9IGIu
YmxvY2tTaXplIHsKKwkJCQkJcmV0dXJuIG5pbCwgZm10LkVycm9yZigidGVzdCBjYXNlICVkLyVk
IGhhcyBJViBvZiBsZW5ndGggJWQsIGJ1dCBleHBlY3RlZCAlZCIsIGdyb3VwLklELCB0ZXN0LklE
LCBsZW4oaXYpLCBiLmJsb2NrU2l6ZSkKKwkJCQl9CisJCQl9CisKKwkJCXRlc3RSZXNwIDo9IGJs
b2NrQ2lwaGVyVGVzdFJlc3BvbnNle0lEOiB0ZXN0LklEfQorCQkJaWYgIW1jdCB7CisJCQkJdmFy
IHJlc3VsdCBbXVtdYnl0ZQorCQkJCXZhciBlcnIgZXJyb3IKKworCQkJCWlmIGIuaGFzSVYgewor
CQkJCQlyZXN1bHQsIGVyciA9IGIubS50cmFuc2FjdChvcCwgMSwga2V5LCBpbnB1dCwgaXYpCisJ
CQkJfSBlbHNlIHsKKwkJCQkJcmVzdWx0LCBlcnIgPSBiLm0udHJhbnNhY3Qob3AsIDEsIGtleSwg
aW5wdXQpCisJCQkJfQorCQkJCWlmIGVyciAhPSBuaWwgeworCQkJCQlwYW5pYygiYmxvY2sgb3Bl
cmF0aW9uIGZhaWxlZDogIiArIGVyci5FcnJvcigpKQorCQkJCX0KKworCQkJCWlmIGVuY3J5cHQg
eworCQkJCQl0ZXN0UmVzcC5DaXBoZXJ0ZXh0SGV4ID0gaGV4LkVuY29kZVRvU3RyaW5nKHJlc3Vs
dFswXSkKKwkJCQl9IGVsc2UgeworCQkJCQl0ZXN0UmVzcC5QbGFpbnRleHRIZXggPSBoZXguRW5j
b2RlVG9TdHJpbmcocmVzdWx0WzBdKQorCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJZm9yIGkgOj0g
MDsgaSA8IDEwMDsgaSsrIHsKKwkJCQkJdmFyIGl0ZXJhdGlvbiBibG9ja0NpcGhlck1DVFJlc3Vs
dAorCQkJCQlpdGVyYXRpb24uS2V5SGV4ID0gaGV4LkVuY29kZVRvU3RyaW5nKGtleSkKKwkJCQkJ
aWYgZW5jcnlwdCB7CisJCQkJCQlpdGVyYXRpb24uUGxhaW50ZXh0SGV4ID0gaGV4LkVuY29kZVRv
U3RyaW5nKGlucHV0KQorCQkJCQl9IGVsc2UgeworCQkJCQkJaXRlcmF0aW9uLkNpcGhlcnRleHRI
ZXggPSBoZXguRW5jb2RlVG9TdHJpbmcoaW5wdXQpCisJCQkJCX0KKworCQkJCQl2YXIgcmVzdWx0
LCBwcmV2UmVzdWx0IFtdYnl0ZQorCQkJCQlpZiAhYi5oYXNJViB7CisJCQkJCQlmb3IgaiA6PSAw
OyBqIDwgMTAwMDsgaisrIHsKKwkJCQkJCQlwcmV2UmVzdWx0ID0gaW5wdXQKKwkJCQkJCQlyZXN1
bHQsIGVyciA6PSBiLm0udHJhbnNhY3Qob3AsIDEsIGtleSwgaW5wdXQpCisJCQkJCQkJaWYgZXJy
ICE9IG5pbCB7CisJCQkJCQkJCXBhbmljKCJibG9jayBvcGVyYXRpb24gZmFpbGVkIikKKwkJCQkJ
CQl9CisJCQkJCQkJaW5wdXQgPSByZXN1bHRbMF0KKwkJCQkJCX0KKwkJCQkJCXJlc3VsdCA9IGlu
cHV0CisJCQkJCX0gZWxzZSB7CisJCQkJCQlpdGVyYXRpb24uSVZIZXggPSBoZXguRW5jb2RlVG9T
dHJpbmcoaXYpCisKKwkJCQkJCXZhciBwcmV2SW5wdXQgW11ieXRlCisJCQkJCQlmb3IgaiA6PSAw
OyBqIDwgMTAwMDsgaisrIHsKKwkJCQkJCQlwcmV2UmVzdWx0ID0gcmVzdWx0CisJCQkJCQkJaWYg
aiA+IDAgeworCQkJCQkJCQlpZiBlbmNyeXB0IHsKKwkJCQkJCQkJCWl2ID0gcmVzdWx0CisJCQkJ
CQkJCX0gZWxzZSB7CisJCQkJCQkJCQlpdiA9IHByZXZJbnB1dAorCQkJCQkJCQl9CisJCQkJCQkJ
fQorCisJCQkJCQkJcmVzdWx0cywgZXJyIDo9IGIubS50cmFuc2FjdChvcCwgMSwga2V5LCBpbnB1
dCwgaXYpCisJCQkJCQkJaWYgZXJyICE9IG5pbCB7CisJCQkJCQkJCXBhbmljKCJibG9jayBvcGVy
YXRpb24gZmFpbGVkIikKKwkJCQkJCQl9CisJCQkJCQkJcmVzdWx0ID0gcmVzdWx0c1swXQorCisJ
CQkJCQkJcHJldklucHV0ID0gaW5wdXQKKwkJCQkJCQlpZiBqID09IDAgeworCQkJCQkJCQlpbnB1
dCA9IGl2CisJCQkJCQkJfSBlbHNlIHsKKwkJCQkJCQkJaW5wdXQgPSBwcmV2UmVzdWx0CisJCQkJ
CQkJfQorCQkJCQkJfQorCQkJCQl9CisKKwkJCQkJaWYgZW5jcnlwdCB7CisJCQkJCQlpdGVyYXRp
b24uQ2lwaGVydGV4dEhleCA9IGhleC5FbmNvZGVUb1N0cmluZyhyZXN1bHQpCisJCQkJCX0gZWxz
ZSB7CisJCQkJCQlpdGVyYXRpb24uUGxhaW50ZXh0SGV4ID0gaGV4LkVuY29kZVRvU3RyaW5nKHJl
c3VsdCkKKwkJCQkJfQorCisJCQkJCXN3aXRjaCBrZXlCeXRlcyB7CisJCQkJCWNhc2UgMTY6CisJ
CQkJCQlmb3IgaSA6PSByYW5nZSBrZXkgeworCQkJCQkJCWtleVtpXSBePSByZXN1bHRbaV0KKwkJ
CQkJCX0KKwkJCQkJY2FzZSAyNDoKKwkJCQkJCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgeworCQkJ
CQkJCWtleVtpXSBePSBwcmV2UmVzdWx0W2krOF0KKwkJCQkJCX0KKwkJCQkJCWZvciBpIDo9IHJh
bmdlIHJlc3VsdCB7CisJCQkJCQkJa2V5W2krOF0gXj0gcmVzdWx0W2ldCisJCQkJCQl9CisJCQkJ
CWNhc2UgMzI6CisJCQkJCQlmb3IgaSwgYiA6PSByYW5nZSBwcmV2UmVzdWx0IHsKKwkJCQkJCQlr
ZXlbaV0gXj0gYgorCQkJCQkJfQorCQkJCQkJZm9yIGksIGIgOj0gcmFuZ2UgcmVzdWx0IHsKKwkJ
CQkJCQlrZXlbaSsxNl0gXj0gYgorCQkJCQkJfQorCQkJCQlkZWZhdWx0OgorCQkJCQkJcGFuaWMo
InVuaGFuZGxlZCBrZXkgbGVuZ3RoIikKKwkJCQkJfQorCisJCQkJCWlmICFiLmhhc0lWIHsKKwkJ
CQkJCWlucHV0ID0gcmVzdWx0CisJCQkJCX0gZWxzZSB7CisJCQkJCQlpdiA9IHJlc3VsdAorCQkJ
CQkJaW5wdXQgPSBwcmV2UmVzdWx0CisJCQkJCX0KKworCQkJCQl0ZXN0UmVzcC5NQ1RSZXN1bHRz
ID0gYXBwZW5kKHRlc3RSZXNwLk1DVFJlc3VsdHMsIGl0ZXJhdGlvbikKKwkJCQl9CisJCQl9CisK
KwkJCXJlc3BvbnNlLlRlc3RzID0gYXBwZW5kKHJlc3BvbnNlLlRlc3RzLCB0ZXN0UmVzcCkKKwkJ
fQorCisJCXJldCA9IGFwcGVuZChyZXQsIHJlc3BvbnNlKQorCX0KKworCXJldHVybiByZXQsIG5p
bAorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvc3VicHJv
Y2Vzcy9oYXNoLmdvIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvc3VicHJvY2Vz
cy9oYXNoLmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiZTMxNjI2OTZkYTM1ZGE2OGZkMmViYmUwYzBiZTUzYmQ3
YTQwYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2cC9hY3ZwdG9v
bC9zdWJwcm9jZXNzL2hhc2guZ28KQEAgLTAsMCArMSwxMjcgQEAKK3BhY2thZ2Ugc3VicHJvY2Vz
cworCitpbXBvcnQgKAorCSJlbmNvZGluZy9oZXgiCisJImVuY29kaW5nL2pzb24iCisJImZtdCIK
KykKKworLy8gVGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmVzIHJlZmxlY3QgdGhlIEpTT04gb2YgQUNW
UCBoYXNoIHRlc3RzLiBTZWUKKy8vIGh0dHBzOi8vdXNuaXN0Z292LmdpdGh1Yi5pby9BQ1ZQL2Fy
dGlmYWN0cy9kcmFmdC1jZWxpLWFjdnAtc2hhLTAwLmh0bWwjdGVzdF92ZWN0b3JzCisKK3R5cGUg
aGFzaFRlc3RWZWN0b3JTZXQgc3RydWN0IHsKKwlHcm91cHMgW11oYXNoVGVzdEdyb3VwIGBqc29u
OiJ0ZXN0R3JvdXBzImAKK30KKwordHlwZSBoYXNoVGVzdEdyb3VwIHN0cnVjdCB7CisJSUQgICAg
dWludDY0IGBqc29uOiJ0Z0lkImAKKwlUeXBlICBzdHJpbmcgYGpzb246InRlc3RUeXBlImAKKwlU
ZXN0cyBbXXN0cnVjdCB7CisJCUlEICAgICAgICB1aW50NjQgYGpzb246InRjSWQiYAorCQlCaXRM
ZW5ndGggdWludDY0IGBqc29uOiJsZW4iYAorCQlNc2dIZXggICAgc3RyaW5nIGBqc29uOiJtc2ci
YAorCX0gYGpzb246InRlc3RzImAKK30KKwordHlwZSBoYXNoVGVzdEdyb3VwUmVzcG9uc2Ugc3Ry
dWN0IHsKKwlJRCAgICB1aW50NjQgICAgICAgICAgICAgYGpzb246InRnSWQiYAorCVRlc3RzIFtd
aGFzaFRlc3RSZXNwb25zZSBganNvbjoidGVzdHMiYAorfQorCit0eXBlIGhhc2hUZXN0UmVzcG9u
c2Ugc3RydWN0IHsKKwlJRCAgICAgICAgIHVpbnQ2NCAgICAgICAgICBganNvbjoidGNJZCJgCisJ
RGlnZXN0SGV4ICBzdHJpbmcgICAgICAgICAgYGpzb246Im1kLG9taXRlbXB0eSJgCisJTUNUUmVz
dWx0cyBbXWhhc2hNQ1RSZXN1bHQgYGpzb246InJlc3VsdHNBcnJheSxvbWl0ZW1wdHkiYAorfQor
Cit0eXBlIGhhc2hNQ1RSZXN1bHQgc3RydWN0IHsKKwlEaWdlc3RIZXggc3RyaW5nIGBqc29uOiJt
ZCJgCit9CisKKy8vIGhhc2hQcmltaXRpdmUgaW1wbGVtZW50cyBhbiBBQ1ZQIGFsZ29yaXRobSBi
eSBtYWtpbmcgcmVxdWVzdHMgdG8gdGhlCisvLyBzdWJwcm9jZXNzIHRvIGhhc2ggc3RyaW5ncy4K
K3R5cGUgaGFzaFByaW1pdGl2ZSBzdHJ1Y3QgeworCS8vIGFsZ28gaXMgdGhlIEFDVlAgbmFtZSBm
b3IgdGhpcyBhbGdvcml0aG0gYW5kIGFsc28gdGhlIGNvbW1hbmQgbmFtZQorCS8vIGdpdmVuIHRv
IHRoZSBzdWJwcm9jZXNzIHRvIGhhc2ggd2l0aCB0aGlzIGhhc2ggZnVuY3Rpb24uCisJYWxnbyBz
dHJpbmcKKwkvLyBzaXplIGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2YgZGlnZXN0IHRoYXQgdGhl
IGhhc2ggcHJvZHVjZXMuCisJc2l6ZSBpbnQKKwltICAgICpTdWJwcm9jZXNzCit9CisKKy8vIGhh
c2ggdXNlcyB0aGUgc3VicHJvY2VzcyB0byBoYXNoIG1zZyBhbmQgcmV0dXJucyB0aGUgZGlnZXN0
LgorZnVuYyAoaCAqaGFzaFByaW1pdGl2ZSkgaGFzaChtc2cgW11ieXRlKSBbXWJ5dGUgeworCXJl
c3VsdCwgZXJyIDo9IGgubS50cmFuc2FjdChoLmFsZ28sIDEsIG1zZykKKwlpZiBlcnIgIT0gbmls
IHsKKwkJcGFuaWMoImhhc2ggb3BlcmF0aW9uIGZhaWxlZDogIiArIGVyci5FcnJvcigpKQorCX0K
KwlyZXR1cm4gcmVzdWx0WzBdCit9CisKK2Z1bmMgKGggKmhhc2hQcmltaXRpdmUpIFByb2Nlc3Mo
dmVjdG9yU2V0IFtdYnl0ZSkgKGludGVyZmFjZXt9LCBlcnJvcikgeworCXZhciBwYXJzZWQgaGFz
aFRlc3RWZWN0b3JTZXQKKwlpZiBlcnIgOj0ganNvbi5Vbm1hcnNoYWwodmVjdG9yU2V0LCAmcGFy
c2VkKTsgZXJyICE9IG5pbCB7CisJCXJldHVybiBuaWwsIGVycgorCX0KKworCXZhciByZXQgW11o
YXNoVGVzdEdyb3VwUmVzcG9uc2UKKwkvLyBTZWUKKwkvLyBodHRwczovL3VzbmlzdGdvdi5naXRo
dWIuaW8vQUNWUC9hcnRpZmFjdHMvZHJhZnQtY2VsaS1hY3ZwLXNoYS0wMC5odG1sI3JmYy5zZWN0
aW9uLjMKKwkvLyBmb3IgZGV0YWlscyBhYm91dCB0aGUgdGVzdHMuCisJZm9yIF8sIGdyb3VwIDo9
IHJhbmdlIHBhcnNlZC5Hcm91cHMgeworCQlyZXNwb25zZSA6PSBoYXNoVGVzdEdyb3VwUmVzcG9u
c2V7CisJCQlJRDogZ3JvdXAuSUQsCisJCX0KKworCQlmb3IgXywgdGVzdCA6PSByYW5nZSBncm91
cC5UZXN0cyB7CisJCQlpZiB1aW50NjQobGVuKHRlc3QuTXNnSGV4KSkqNCAhPSB0ZXN0LkJpdExl
bmd0aCB7CisJCQkJcmV0dXJuIG5pbCwgZm10LkVycm9yZigidGVzdCBjYXNlICVkLyVkIGNvbnRh
aW5zIGhleCBtZXNzYWdlIG9mIGxlbmd0aCAlZCBidXQgc3BlY2lmaWVzIGEgYml0IGxlbmd0aCBv
ZiAlZCIsIGdyb3VwLklELCB0ZXN0LklELCBsZW4odGVzdC5Nc2dIZXgpLCB0ZXN0LkJpdExlbmd0
aCkKKwkJCX0KKwkJCW1zZywgZXJyIDo9IGhleC5EZWNvZGVTdHJpbmcodGVzdC5Nc2dIZXgpCisJ
CQlpZiBlcnIgIT0gbmlsIHsKKwkJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJmYWlsZWQgdG8g
ZGVjb2RlIGhleCBpbiB0ZXN0IGNhc2UgJWQvJWQ6ICVzIiwgZ3JvdXAuSUQsIHRlc3QuSUQsIGVy
cikKKwkJCX0KKworCQkJLy8gaHR0cDovL3VzbmlzdGdvdi5naXRodWIuaW8vQUNWUC9hcnRpZmFj
dHMvZHJhZnQtY2VsaS1hY3ZwLXNoYS0wMC5odG1sI3JmYy5zZWN0aW9uLjMKKwkJCXN3aXRjaCBn
cm91cC5UeXBlIHsKKwkJCWNhc2UgIkFGVCI6CisJCQkJcmVzcG9uc2UuVGVzdHMgPSBhcHBlbmQo
cmVzcG9uc2UuVGVzdHMsIGhhc2hUZXN0UmVzcG9uc2V7CisJCQkJCUlEOiAgICAgICAgdGVzdC5J
RCwKKwkJCQkJRGlnZXN0SGV4OiBoZXguRW5jb2RlVG9TdHJpbmcoaC5oYXNoKG1zZykpLAorCQkJ
CX0pCisKKwkJCWNhc2UgIk1DVCI6CisJCQkJaWYgbGVuKG1zZykgIT0gaC5zaXplIHsKKwkJCQkJ
cmV0dXJuIG5pbCwgZm10LkVycm9yZigiTUNUIHRlc3QgY2FzZSAlZC8lZCBjb250YWlucyBtZXNz
YWdlIG9mIGxlbmd0aCAlZCBidXQgdGhlIGRpZ2VzdCBsZW5ndGggaXMgJWQiLCBncm91cC5JRCwg
dGVzdC5JRCwgbGVuKG1zZyksIGguc2l6ZSkKKwkJCQl9CisKKwkJCQl0ZXN0UmVzcG9uc2UgOj0g
aGFzaFRlc3RSZXNwb25zZXtJRDogdGVzdC5JRH0KKworCQkJCWJ1ZiA6PSBtYWtlKFtdYnl0ZSwg
MypoLnNpemUpCisJCQkJdmFyIGRpZ2VzdCBbXWJ5dGUKKwkJCQlmb3IgaSA6PSAwOyBpIDwgMTAw
OyBpKysgeworCQkJCQljb3B5KGJ1ZiwgbXNnKQorCQkJCQljb3B5KGJ1ZltoLnNpemU6XSwgbXNn
KQorCQkJCQljb3B5KGJ1ZlsyKmguc2l6ZTpdLCBtc2cpCisJCQkJCWZvciBqIDo9IDA7IGogPCAx
MDAwOyBqKysgeworCQkJCQkJZGlnZXN0ID0gaC5oYXNoKGJ1ZikKKwkJCQkJCWNvcHkoYnVmLCBi
dWZbaC5zaXplOl0pCisJCQkJCQljb3B5KGJ1ZlsyKmguc2l6ZTpdLCBkaWdlc3QpCisJCQkJCX0K
KworCQkJCQl0ZXN0UmVzcG9uc2UuTUNUUmVzdWx0cyA9IGFwcGVuZCh0ZXN0UmVzcG9uc2UuTUNU
UmVzdWx0cywgaGFzaE1DVFJlc3VsdHtoZXguRW5jb2RlVG9TdHJpbmcoZGlnZXN0KX0pCisJCQkJ
CW1zZyA9IGRpZ2VzdAorCQkJCX0KKworCQkJCXJlc3BvbnNlLlRlc3RzID0gYXBwZW5kKHJlc3Bv
bnNlLlRlc3RzLCB0ZXN0UmVzcG9uc2UpCisKKwkJCWRlZmF1bHQ6CisJCQkJcmV0dXJuIG5pbCwg
Zm10LkVycm9yZigidGVzdCBncm91cCAlZCBoYXMgdW5rbm93biB0eXBlICVxIiwgZ3JvdXAuSUQs
IGdyb3VwLlR5cGUpCisJCQl9CisJCX0KKworCQlyZXQgPSBhcHBlbmQocmV0LCByZXNwb25zZSkK
Kwl9CisKKwlyZXR1cm4gcmV0LCBuaWwKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29s
cy9hY3ZwL2FjdnB0b29sL3N1YnByb2Nlc3Mvc3VicHJvY2Vzcy5nbyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0
b29scy9hY3ZwL2FjdnB0b29sL3N1YnByb2Nlc3Mvc3VicHJvY2Vzcy5nbwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NTUwYjRkZWUxNjc3M2U4ZWQ2MGZlOWMyNTRkMmYzZDdjNzQ3MDczCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvYWN2cHRvb2wvc3VicHJvY2Vzcy9zdWJwcm9jZXNz
LmdvCkBAIC0wLDAgKzEsMTcwIEBACitwYWNrYWdlIHN1YnByb2Nlc3MKKworaW1wb3J0ICgKKwki
ZW5jb2RpbmcvYmluYXJ5IgorCSJlbmNvZGluZy9qc29uIgorCSJlcnJvcnMiCisJImZtdCIKKwki
aW8iCisJIm9zIgorCSJvcy9leGVjIgorKQorCisvLyBTdWJwcm9jZXNzIGlzIGEgIm1pZGRsZSIg
bGF5ZXIgdGhhdCBpbnRlcmFjdHMgd2l0aCBhIEZJUFMgbW9kdWxlIHZpYSBydW5uaW5nCisvLyBh
IGNvbW1hbmQgYW5kIHNwZWFraW5nIGEgc2ltcGxlIHByb3RvY29sIG92ZXIgc3RkaW4vc3Rkb3V0
LgordHlwZSBTdWJwcm9jZXNzIHN0cnVjdCB7CisJY21kICAgICAgICAqZXhlYy5DbWQKKwlzdGRp
biAgICAgIGlvLldyaXRlQ2xvc2VyCisJc3Rkb3V0ICAgICBpby5SZWFkQ2xvc2VyCisJcHJpbWl0
aXZlcyBtYXBbc3RyaW5nXXByaW1pdGl2ZQorfQorCisvLyBOZXcgcmV0dXJucyBhIG5ldyBTdWJw
cm9jZXNzIG1pZGRsZSBsYXllciB0aGF0IHJ1bnMgdGhlIGdpdmVuIGJpbmFyeS4KK2Z1bmMgTmV3
KHBhdGggc3RyaW5nKSAoKlN1YnByb2Nlc3MsIGVycm9yKSB7CisJY21kIDo9IGV4ZWMuQ29tbWFu
ZChwYXRoKQorCWNtZC5TdGRlcnIgPSBvcy5TdGRlcnIKKwlzdGRpbiwgZXJyIDo9IGNtZC5TdGRp
blBpcGUoKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmlsLCBlcnIKKwl9CisJc3Rkb3V0
LCBlcnIgOj0gY21kLlN0ZG91dFBpcGUoKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmls
LCBlcnIKKwl9CisKKwlpZiBlcnIgOj0gY21kLlN0YXJ0KCk7IGVyciAhPSBuaWwgeworCQlyZXR1
cm4gbmlsLCBlcnIKKwl9CisKKwlyZXR1cm4gTmV3V2l0aElPKGNtZCwgc3RkaW4sIHN0ZG91dCks
IG5pbAorfQorCisvLyBOZXdXaXRoSU8gcmV0dXJucyBhIG5ldyBTdWJwcm9jZXNzIG1pZGRsZSBs
YXllciB3aXRoIHRoZSBnaXZlbiBSZWFkQ2xvc2VyIGFuZAorLy8gV3JpdGVDbG9zZXIuIFRoZSBy
ZXR1cm5lZCBTdWJwcm9jZXNzIHdpbGwgY2FsbCBXYWl0IG9uIHRoZSBDbWQgd2hlbiBjbG9zZWQu
CitmdW5jIE5ld1dpdGhJTyhjbWQgKmV4ZWMuQ21kLCBpbiBpby5Xcml0ZUNsb3Nlciwgb3V0IGlv
LlJlYWRDbG9zZXIpICpTdWJwcm9jZXNzIHsKKwltIDo9ICZTdWJwcm9jZXNzeworCQljbWQ6CWNt
ZCwKKwkJc3RkaW46ICBpbiwKKwkJc3Rkb3V0OiBvdXQsCisJfQorCisJbS5wcmltaXRpdmVzID0g
bWFwW3N0cmluZ11wcmltaXRpdmV7CisJCSJTSEEtMSI6ICAgICAgICAmaGFzaFByaW1pdGl2ZXsi
U0hBLTEiLCAyMCwgbX0sCisJCSJTSEEyLTIyNCI6ICAgICAmaGFzaFByaW1pdGl2ZXsiU0hBMi0y
MjQiLCAyOCwgbX0sCisJCSJTSEEyLTI1NiI6ICAgICAmaGFzaFByaW1pdGl2ZXsiU0hBMi0yNTYi
LCAzMiwgbX0sCisJCSJTSEEyLTM4NCI6ICAgICAmaGFzaFByaW1pdGl2ZXsiU0hBMi0zODQiLCA0
OCwgbX0sCisJCSJTSEEyLTUxMiI6ICAgICAmaGFzaFByaW1pdGl2ZXsiU0hBMi01MTIiLCA2NCwg
bX0sCisJCSJBQ1ZQLUFFUy1FQ0IiOiAmYmxvY2tDaXBoZXJ7IkFFUyIsIDE2LCBmYWxzZSwgbX0s
CisJCSJBQ1ZQLUFFUy1DQkMiOiAmYmxvY2tDaXBoZXJ7IkFFUy1DQkMiLCAxNiwgdHJ1ZSwgbX0s
CisJfQorCisJcmV0dXJuIG0KK30KKworLy8gQ2xvc2Ugc2lnbmFscyB0aGUgY2hpbGQgcHJvY2Vz
cyB0byBleGl0IGFuZCB3YWl0cyBmb3IgaXQgdG8gY29tcGxldGUuCitmdW5jIChtICpTdWJwcm9j
ZXNzKSBDbG9zZSgpIHsKKwltLnN0ZG91dC5DbG9zZSgpCisJbS5zdGRpbi5DbG9zZSgpCisJbS5j
bWQuV2FpdCgpCit9CisKKy8vIHRyYW5zYWN0IHBlcmZvcm1zIGEgc2luZ2xlIHJlcXVlc3QtLXJl
c3BvbnNlIHBhaXIgd2l0aCB0aGUgc3VicHJvY2Vzcy4KK2Z1bmMgKG0gKlN1YnByb2Nlc3MpIHRy
YW5zYWN0KGNtZCBzdHJpbmcsIGV4cGVjdGVkUmVzdWx0cyBpbnQsIGFyZ3MgLi4uW11ieXRlKSAo
W11bXWJ5dGUsIGVycm9yKSB7CisJYXJnTGVuZ3RoIDo9IGxlbihjbWQpCisJZm9yIF8sIGFyZyA6
PSByYW5nZSBhcmdzIHsKKwkJYXJnTGVuZ3RoICs9IGxlbihhcmcpCisJfQorCisJYnVmIDo9IG1h
a2UoW11ieXRlLCA0KigyK2xlbihhcmdzKSksIDQqKDIrbGVuKGFyZ3MpKSthcmdMZW5ndGgpCisJ
YmluYXJ5LkxpdHRsZUVuZGlhbi5QdXRVaW50MzIoYnVmLCB1aW50MzIoMStsZW4oYXJncykpKQor
CWJpbmFyeS5MaXR0bGVFbmRpYW4uUHV0VWludDMyKGJ1Zls0Ol0sIHVpbnQzMihsZW4oY21kKSkp
CisJZm9yIGksIGFyZyA6PSByYW5nZSBhcmdzIHsKKwkJYmluYXJ5LkxpdHRsZUVuZGlhbi5QdXRV
aW50MzIoYnVmWzQqKGkrMik6XSwgdWludDMyKGxlbihhcmcpKSkKKwl9CisJYnVmID0gYXBwZW5k
KGJ1ZiwgW11ieXRlKGNtZCkuLi4pCisJZm9yIF8sIGFyZyA6PSByYW5nZSBhcmdzIHsKKwkJYnVm
ID0gYXBwZW5kKGJ1ZiwgYXJnLi4uKQorCX0KKworCWlmIF8sIGVyciA6PSBtLnN0ZGluLldyaXRl
KGJ1Zik7IGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmlsLCBlcnIKKwl9CisKKwlidWYgPSBidWZb
OjRdCisJaWYgXywgZXJyIDo9IGlvLlJlYWRGdWxsKG0uc3Rkb3V0LCBidWYpOyBlcnIgIT0gbmls
IHsKKwkJcmV0dXJuIG5pbCwgZXJyCisJfQorCisJbnVtUmVzdWx0cyA6PSBiaW5hcnkuTGl0dGxl
RW5kaWFuLlVpbnQzMihidWYpCisJaWYgaW50KG51bVJlc3VsdHMpICE9IGV4cGVjdGVkUmVzdWx0
cyB7CisJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoImV4cGVjdGVkICVkIHJlc3VsdHMgZnJvbSAl
cSBidXQgZ290ICVkIiwgZXhwZWN0ZWRSZXN1bHRzLCBjbWQsIG51bVJlc3VsdHMpCisJfQorCisJ
YnVmID0gbWFrZShbXWJ5dGUsIDQqbnVtUmVzdWx0cykKKwlpZiBfLCBlcnIgOj0gaW8uUmVhZEZ1
bGwobS5zdGRvdXQsIGJ1Zik7IGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmlsLCBlcnIKKwl9CisK
Kwl2YXIgcmVzdWx0c0xlbmd0aCB1aW50NjQKKwlmb3IgaSA6PSB1aW50MzIoMCk7IGkgPCBudW1S
ZXN1bHRzOyBpKysgeworCQlyZXN1bHRzTGVuZ3RoICs9IHVpbnQ2NChiaW5hcnkuTGl0dGxlRW5k
aWFuLlVpbnQzMihidWZbNCppOl0pKQorCX0KKworCWlmIHJlc3VsdHNMZW5ndGggPiAoMSA8PCAz
MCkgeworCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJyZXN1bHRzIHRvbyBsYXJnZSAoJWQgYnl0
ZXMpIiwgcmVzdWx0c0xlbmd0aCkKKwl9CisKKwlyZXN1bHRzIDo9IG1ha2UoW11ieXRlLCByZXN1
bHRzTGVuZ3RoKQorCWlmIF8sIGVyciA6PSBpby5SZWFkRnVsbChtLnN0ZG91dCwgcmVzdWx0cyk7
IGVyciAhPSBuaWwgeworCQlyZXR1cm4gbmlsLCBlcnIKKwl9CisKKwlyZXQgOj0gbWFrZShbXVtd
Ynl0ZSwgMCwgbnVtUmVzdWx0cykKKwl2YXIgb2Zmc2V0IGludAorCWZvciBpIDo9IHVpbnQzMigw
KTsgaSA8IG51bVJlc3VsdHM7IGkrKyB7CisJCWxlbmd0aCA6PSBiaW5hcnkuTGl0dGxlRW5kaWFu
LlVpbnQzMihidWZbNCppOl0pCisJCXJldCA9IGFwcGVuZChyZXQsIHJlc3VsdHNbb2Zmc2V0Om9m
ZnNldCtpbnQobGVuZ3RoKV0pCisJCW9mZnNldCArPSBpbnQobGVuZ3RoKQorCX0KKworCXJldHVy
biByZXQsIG5pbAorfQorCisvLyBDb25maWcgcmV0dXJucyBhIEpTT04gYmxvYiB0aGF0IGRlc2Ny
aWJlcyB0aGUgc3VwcG9ydGVkIHByaW1pdGl2ZXMuIFRoZQorLy8gZm9ybWF0IG9mIHRoZSBibG9i
IGlzIGRlZmluZWQgYnkgQUNWUC4gU2VlCisvLyBodHRwOi8vdXNuaXN0Z292LmdpdGh1Yi5pby9B
Q1ZQL2FydGlmYWN0cy9kcmFmdC1mdXNzZWxsLWFjdnAtc3BlYy0wMC5odG1sI3JmYy5zZWN0aW9u
LjExLjE1LjIuMQorZnVuYyAobSAqU3VicHJvY2VzcykgQ29uZmlnKCkgKFtdYnl0ZSwgZXJyb3Ip
IHsKKwlyZXN1bHRzLCBlcnIgOj0gbS50cmFuc2FjdCgiZ2V0Q29uZmlnIiwgMSkKKwlpZiBlcnIg
IT0gbmlsIHsKKwkJcmV0dXJuIG5pbCwgZXJyCisJfQorCXZhciBjb25maWcgW11zdHJ1Y3Qgewor
CQlBbGdvcml0aG0gc3RyaW5nIGBqc29uOiJhbGdvcml0aG0iYAorCX0KKwlpZiBlcnIgOj0ganNv
bi5Vbm1hcnNoYWwocmVzdWx0c1swXSwgJmNvbmZpZyk7IGVyciAhPSBuaWwgeworCQlyZXR1cm4g
bmlsLCBlcnJvcnMuTmV3KCJmYWlsZWQgdG8gcGFyc2UgY29uZmlnIHJlc3BvbnNlIGZyb20gd3Jh
cHBlcjogIiArIGVyci5FcnJvcigpKQorCX0KKwlmb3IgXywgYWxnbyA6PSByYW5nZSBjb25maWcg
eworCQlpZiBfLCBvayA6PSBtLnByaW1pdGl2ZXNbYWxnby5BbGdvcml0aG1dOyAhb2sgeworCQkJ
cmV0dXJuIG5pbCwgZm10LkVycm9yZigid3JhcHBlciBjb25maWcgYWR2ZXJ0aXNlcyBzdXBwb3J0
IGZvciB1bmtub3duIGFsZ29yaXRobSAlcSIsIGFsZ28uQWxnb3JpdGhtKQorCQl9CisJfQorCXJl
dHVybiByZXN1bHRzWzBdLCBuaWwKK30KKworLy8gUHJvY2VzcyBydW5zIGEgc2V0IG9mIHRlc3Qg
dmVjdG9ycyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgorZnVuYyAobSAqU3VicHJvY2VzcykgUHJv
Y2VzcyhhbGdvcml0aG0gc3RyaW5nLCB2ZWN0b3JTZXQgW11ieXRlKSAoW11ieXRlLCBlcnJvcikg
eworCXByaW0sIG9rIDo9IG0ucHJpbWl0aXZlc1thbGdvcml0aG1dCisJaWYgIW9rIHsKKwkJcmV0
dXJuIG5pbCwgZm10LkVycm9yZigidW5rbm93biBhbGdvcml0aG0gJXEiLCBhbGdvcml0aG0pCisJ
fQorCXJldCwgZXJyIDo9IHByaW0uUHJvY2Vzcyh2ZWN0b3JTZXQpCisJaWYgZXJyICE9IG5pbCB7
CisJCXJldHVybiBuaWwsIGVycgorCX0KKwlyZXR1cm4ganNvbi5NYXJzaGFsKHJldCkKK30KKwor
dHlwZSBwcmltaXRpdmUgaW50ZXJmYWNlIHsKKwlQcm9jZXNzKHZlY3RvclNldCBbXWJ5dGUpIChp
bnRlcmZhY2V7fSwgZXJyb3IpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYWN2
cC9tb2R1bGV3cmFwcGVyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAv
bW9kdWxld3JhcHBlci9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmVlNWNkMGQwMjE1ODZm
MGJkZmU5ZGUyNjUzZDE4MWUzNTJhNmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlw
c3Rvb2xzL2FjdnAvbW9kdWxld3JhcHBlci9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDEzIEBA
CitpbmNsdWRlX2RpcmVjdG9yaWVzKC4uLy4uLy4uLy4uL2luY2x1ZGUpCisKK2lmKEZJUFMpCisg
IGFkZF9leGVjdXRhYmxlKAorICAgIG1vZHVsZXdyYXBwZXIKKworICAgIG1vZHVsZXdyYXBwZXIu
Y2MKKyAgKQorCisgIGFkZF9kZXBlbmRlbmNpZXMobW9kdWxld3JhcHBlciBnbG9iYWxfdGFyZ2V0
KQorCisgIHRhcmdldF9saW5rX2xpYnJhcmllcyhtb2R1bGV3cmFwcGVyIGNyeXB0bykKK2VuZGlm
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9hY3ZwL21vZHVsZXdyYXBwZXIvbW9k
dWxld3JhcHBlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9hY3ZwL21vZHVsZXdyYXBwZXIvbW9k
dWxld3JhcHBlci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODc3Yzc1NTdkN2U2MGU3MWFlMzI2NDA4NWViMDIw
MjY4MDA1NDMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2FjdnAvbW9k
dWxld3JhcHBlci9tb2R1bGV3cmFwcGVyLmNjCkBAIC0wLDAgKzEsMzMxIEBACisvKiBDb3B5cmln
aHQgKGMpIDIwMTksIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHks
IG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJw
b3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQg
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi
QVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBS
RUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBP
RgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVT
VUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBB
Q1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElP
TiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBF
UkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvdWlv
Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Y3N0ZGFyZz4KKworI2luY2x1ZGUg
PG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9zaGEuaD4KKyNpbmNsdWRlIDxvcGVu
c3NsL3NwYW4uaD4KKworc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qga01heEFyZ3MgPSA4Oworc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3Qga01heEFyZ0xlbmd0aCA9ICgxIDw8IDIwKTsKK3N0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IGtNYXhOYW1lTGVuZ3RoID0gMzA7CisKK3N0YXRpY19hc3NlcnQoKGtN
YXhBcmdzIC0gMSAqIGtNYXhBcmdMZW5ndGgpICsga01heE5hbWVMZW5ndGggPiAoMSA8PCAzMCks
CisgICAgICAgICAgICAgICJBcmd1bWVudCBsaW1pdHMgcGVybWl0IGV4Y2Vzc2l2ZSBtZXNzYWdl
cyIpOworCit1c2luZyBuYW1lc3BhY2UgYnNzbDsKKworc3RhdGljIGJvb2wgUmVhZEFsbChpbnQg
ZmQsIHZvaWQgKmluX2RhdGEsIHNpemVfdCBkYXRhX2xlbikgeworICB1aW50OF90ICpkYXRhID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50OF90ICo+KGluX2RhdGEpOworICBzaXplX3QgZG9uZSA9IDA7
CisKKyAgd2hpbGUgKGRvbmUgPCBkYXRhX2xlbikgeworICAgIHNzaXplX3QgcjsKKyAgICBkbyB7
CisgICAgICByID0gcmVhZChmZCwgJmRhdGFbZG9uZV0sIGRhdGFfbGVuIC0gZG9uZSk7CisgICAg
fSB3aGlsZSAociA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUik7CisKKyAgICBpZiAociA8PSAwKSB7
CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZG9uZSArPSByOworICB9CisKKyAg
cmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBBcmdzPgorc3RhdGljIGJv
b2wgV3JpdGVSZXBseShpbnQgZmQsIEFyZ3MuLi4gYXJncykgeworICBzdGQ6OnZlY3RvcjxTcGFu
PGNvbnN0IHVpbnQ4X3Q+PiBzcGFucyA9IHthcmdzLi4ufTsKKyAgaWYgKHNwYW5zLmVtcHR5KCkg
fHwgc3BhbnMuc2l6ZSgpID4ga01heEFyZ3MpIHsKKyAgICBhYm9ydCgpOworICB9CisKKyAgdWlu
dDMyX3QgbnVtc1sxICsga01heEFyZ3NdOworICBpb3ZlYyBpb3ZzW2tNYXhBcmdzICsgMV07Cisg
IG51bXNbMF0gPSBzcGFucy5zaXplKCk7CisgIGlvdnNbMF0uaW92X2Jhc2UgPSBudW1zOworICBp
b3ZzWzBdLmlvdl9sZW4gPSBzaXplb2YodWludDMyX3QpICogKDEgKyBzcGFucy5zaXplKCkpOwor
CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3BhbnMuc2l6ZSgpOyBpKyspIHsKKyAgICBjb25z
dCBhdXRvICZzcGFuID0gc3BhbnNbaV07CisgICAgbnVtc1tpICsgMV0gPSBzcGFuLnNpemUoKTsK
KyAgICBpb3ZzW2kgKyAxXS5pb3ZfYmFzZSA9IGNvbnN0X2Nhc3Q8dWludDhfdCAqPihzcGFuLmRh
dGEoKSk7CisgICAgaW92c1tpICsgMV0uaW92X2xlbiA9IHNwYW4uc2l6ZSgpOworICB9CisKKyAg
Y29uc3Qgc2l6ZV90IG51bV9pb3YgPSBzcGFucy5zaXplKCkgKyAxOworICBzaXplX3QgaW92X2Rv
bmUgPSAwOworICB3aGlsZSAoaW92X2RvbmUgPCBudW1faW92KSB7CisgICAgc3NpemVfdCByOwor
ICAgIGRvIHsKKyAgICAgIHIgPSB3cml0ZXYoZmQsICZpb3ZzW2lvdl9kb25lXSwgbnVtX2lvdiAt
IGlvdl9kb25lKTsKKyAgICB9IHdoaWxlIChyID09IC0xICYmIGVycm5vID09IEVJTlRSKTsKKwor
ICAgIGlmIChyIDw9IDApIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzaXpl
X3Qgd3JpdHRlbiA9IHI7CisgICAgZm9yIChzaXplX3QgaSA9IGlvdl9kb25lOyB3cml0dGVuID4g
MCAmJiBpIDwgbnVtX2lvdjsgaSsrKSB7CisgICAgICBpb3ZlYyAmaW92ID0gaW92c1tpXTsKKwor
ICAgICAgc2l6ZV90IGRvbmUgPSB3cml0dGVuOworICAgICAgaWYgKGRvbmUgPiBpb3YuaW92X2xl
bikgeworICAgICAgICBkb25lID0gaW92Lmlvdl9sZW47CisgICAgICB9CisKKyAgICAgIGlvdi5p
b3ZfYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCAqPihpb3YuaW92X2Jhc2UpICsgZG9u
ZTsKKyAgICAgIGlvdi5pb3ZfbGVuIC09IGRvbmU7CisgICAgICB3cml0dGVuIC09IGRvbmU7CisK
KyAgICAgIGlmIChpb3YuaW92X2xlbiA9PSAwKSB7CisgICAgICAgIGlvdl9kb25lKys7CisgICAg
ICB9CisgICAgfQorCisgICAgYXNzZXJ0KHdyaXR0ZW4gPT0gMCk7CisgIH0KKworICByZXR1cm4g
dHJ1ZTsKK30KKworc3RhdGljIGJvb2wgR2V0Q29uZmlnKGNvbnN0IFNwYW48Y29uc3QgdWludDhf
dD4gYXJnc1tdKSB7CisgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ29uZmlnW10gPQorICAgICAg
IlsiCisgICAgICAieyIKKyAgICAgICIgIFwiYWxnb3JpdGhtXCI6IFwiU0hBMi0yMjRcIiwiCisg
ICAgICAiICBcInJldmlzaW9uXCI6IFwiMS4wXCIsIgorICAgICAgIiAgXCJtZXNzYWdlTGVuZ3Ro
XCI6IFt7IgorICAgICAgIiAgICBcIm1pblwiOiAwLCBcIm1heFwiOiA2NTUyOCwgXCJpbmNyZW1l
bnRcIjogOCIKKyAgICAgICIgIH1dIgorICAgICAgIn0sIgorICAgICAgInsiCisgICAgICAiICBc
ImFsZ29yaXRobVwiOiBcIlNIQTItMjU2XCIsIgorICAgICAgIiAgXCJyZXZpc2lvblwiOiBcIjEu
MFwiLCIKKyAgICAgICIgIFwibWVzc2FnZUxlbmd0aFwiOiBbeyIKKyAgICAgICIgICAgXCJtaW5c
IjogMCwgXCJtYXhcIjogNjU1MjgsIFwiaW5jcmVtZW50XCI6IDgiCisgICAgICAiICB9XSIKKyAg
ICAgICJ9LCIKKyAgICAgICJ7IgorICAgICAgIiAgXCJhbGdvcml0aG1cIjogXCJTSEEyLTM4NFwi
LCIKKyAgICAgICIgIFwicmV2aXNpb25cIjogXCIxLjBcIiwiCisgICAgICAiICBcIm1lc3NhZ2VM
ZW5ndGhcIjogW3siCisgICAgICAiICAgIFwibWluXCI6IDAsIFwibWF4XCI6IDY1NTI4LCBcImlu
Y3JlbWVudFwiOiA4IgorICAgICAgIiAgfV0iCisgICAgICAifSwiCisgICAgICAieyIKKyAgICAg
ICIgIFwiYWxnb3JpdGhtXCI6IFwiU0hBMi01MTJcIiwiCisgICAgICAiICBcInJldmlzaW9uXCI6
IFwiMS4wXCIsIgorICAgICAgIiAgXCJtZXNzYWdlTGVuZ3RoXCI6IFt7IgorICAgICAgIiAgICBc
Im1pblwiOiAwLCBcIm1heFwiOiA2NTUyOCwgXCJpbmNyZW1lbnRcIjogOCIKKyAgICAgICIgIH1d
IgorICAgICAgIn0sIgorICAgICAgInsiCisgICAgICAiICBcImFsZ29yaXRobVwiOiBcIlNIQS0x
XCIsIgorICAgICAgIiAgXCJyZXZpc2lvblwiOiBcIjEuMFwiLCIKKyAgICAgICIgIFwibWVzc2Fn
ZUxlbmd0aFwiOiBbeyIKKyAgICAgICIgICAgXCJtaW5cIjogMCwgXCJtYXhcIjogNjU1MjgsIFwi
aW5jcmVtZW50XCI6IDgiCisgICAgICAiICB9XSIKKyAgICAgICJ9LCIKKyAgICAgICJ7IgorICAg
ICAgIiAgXCJhbGdvcml0aG1cIjogXCJBQ1ZQLUFFUy1FQ0JcIiwiCisgICAgICAiICBcInJldmlz
aW9uXCI6IFwiMS4wXCIsIgorICAgICAgIiAgXCJkaXJlY3Rpb25cIjogW1wiZW5jcnlwdFwiLCBc
ImRlY3J5cHRcIl0sIgorICAgICAgIiAgXCJrZXlMZW5cIjogWzEyOCwgMTkyLCAyNTZdIgorICAg
ICAgIn0sIgorICAgICAgInsiCisgICAgICAiICBcImFsZ29yaXRobVwiOiBcIkFDVlAtQUVTLUNC
Q1wiLCIKKyAgICAgICIgIFwicmV2aXNpb25cIjogXCIxLjBcIiwiCisgICAgICAiICBcImRpcmVj
dGlvblwiOiBbXCJlbmNyeXB0XCIsIFwiZGVjcnlwdFwiXSwiCisgICAgICAiICBcImtleUxlblwi
OiBbMTI4LCAxOTIsIDI1Nl0iCisgICAgICAifSIKKyAgICAgICJdIjsKKyAgcmV0dXJuIFdyaXRl
UmVwbHkoCisgICAgICBTVERPVVRfRklMRU5PLAorICAgICAgU3Bhbjxjb25zdCB1aW50OF90Pihy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oa0NvbmZpZyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVvZihrQ29uZmlnKSAtIDEpKTsKK30KKwordGVtcGxhdGUgPHVpbnQ4
X3QgKigqT25lU2hvdEhhc2gpKGNvbnN0IHVpbnQ4X3QgKiwgc2l6ZV90LCB1aW50OF90ICopLAor
ICAgICAgICAgIHNpemVfdCBEaWdlc3RMZW5ndGg+CitzdGF0aWMgYm9vbCBIYXNoKGNvbnN0IFNw
YW48Y29uc3QgdWludDhfdD4gYXJnc1tdKSB7CisgIHVpbnQ4X3QgZGlnZXN0W0RpZ2VzdExlbmd0
aF07CisgIE9uZVNob3RIYXNoKGFyZ3NbMF0uZGF0YSgpLCBhcmdzWzBdLnNpemUoKSwgZGlnZXN0
KTsKKyAgcmV0dXJuIFdyaXRlUmVwbHkoU1RET1VUX0ZJTEVOTywgU3Bhbjxjb25zdCB1aW50OF90
PihkaWdlc3QpKTsKK30KKwordGVtcGxhdGUgPGludCAoKlNldEtleSkoY29uc3QgdWludDhfdCAq
a2V5LCB1bnNpZ25lZCBiaXRzLCBBRVNfS0VZICpvdXQpLAorICAgICAgICAgIHZvaWQgKCpCbG9j
aykoY29uc3QgdWludDhfdCAqaW4sIHVpbnQ4X3QgKm91dCwgY29uc3QgQUVTX0tFWSAqa2V5KT4K
K3N0YXRpYyBib29sIEFFUyhjb25zdCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGFyZ3NbXSkgeworICBB
RVNfS0VZIGtleTsKKyAgaWYgKFNldEtleShhcmdzWzBdLmRhdGEoKSwgYXJnc1swXS5zaXplKCkg
KiA4LCAma2V5KSAhPSAwKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChhcmdzWzFd
LnNpemUoKSAlIEFFU19CTE9DS19TSVpFICE9IDApIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K
KworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBvdXQ7CisgIG91dC5yZXNpemUoYXJnc1sxXS5zaXpl
KCkpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3NbMV0uc2l6ZSgpOyBpICs9IEFFU19C
TE9DS19TSVpFKSB7CisgICAgQmxvY2soYXJnc1sxXS5kYXRhKCkgKyBpLCAmb3V0W2ldLCAma2V5
KTsKKyAgfQorICByZXR1cm4gV3JpdGVSZXBseShTVERPVVRfRklMRU5PLCBTcGFuPGNvbnN0IHVp
bnQ4X3Q+KG91dCkpOworfQorCit0ZW1wbGF0ZSA8aW50ICgqU2V0S2V5KShjb25zdCB1aW50OF90
ICprZXksIHVuc2lnbmVkIGJpdHMsIEFFU19LRVkgKm91dCksCisgICAgICAgICAgaW50IERpcmVj
dGlvbj4KK3N0YXRpYyBib29sIEFFU19DQkMoY29uc3QgU3Bhbjxjb25zdCB1aW50OF90PiBhcmdz
W10pIHsKKyAgQUVTX0tFWSBrZXk7CisgIGlmIChTZXRLZXkoYXJnc1swXS5kYXRhKCksIGFyZ3Nb
MF0uc2l6ZSgpICogOCwgJmtleSkgIT0gMCkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBp
ZiAoYXJnc1sxXS5zaXplKCkgJSBBRVNfQkxPQ0tfU0laRSAhPSAwIHx8CisgICAgICBhcmdzWzJd
LnNpemUoKSAhPSBBRVNfQkxPQ0tfU0laRSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICB1
aW50OF90IGl2W0FFU19CTE9DS19TSVpFXTsKKyAgbWVtY3B5KGl2LCBhcmdzWzJdLmRhdGEoKSwg
QUVTX0JMT0NLX1NJWkUpOworCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJl
c2l6ZShhcmdzWzFdLnNpemUoKSk7CisgIEFFU19jYmNfZW5jcnlwdChhcmdzWzFdLmRhdGEoKSwg
b3V0LmRhdGEoKSwgYXJnc1sxXS5zaXplKCksICZrZXksIGl2LAorICAgICAgICAgICAgICAgICAg
RGlyZWN0aW9uKTsKKyAgcmV0dXJuIFdyaXRlUmVwbHkoU1RET1VUX0ZJTEVOTywgU3Bhbjxjb25z
dCB1aW50OF90PihvdXQpKTsKK30KKworc3RhdGljIGNvbnN0ZXhwciBzdHJ1Y3QgeworICBjb25z
dCBjaGFyIG5hbWVba01heE5hbWVMZW5ndGggKyAxXTsKKyAgdWludDhfdCBleHBlY3RlZF9hcmdz
OworICBib29sICgqaGFuZGxlcikoY29uc3QgU3Bhbjxjb25zdCB1aW50OF90PltdKTsKK30ga0Z1
bmN0aW9uc1tdID0geworICAgIHsiZ2V0Q29uZmlnIiwgMCwgR2V0Q29uZmlnfSwKKyAgICB7IlNI
QS0xIiwgMSwgSGFzaDxTSEExLCBTSEFfRElHRVNUX0xFTkdUSD59LAorICAgIHsiU0hBMi0yMjQi
LCAxLCBIYXNoPFNIQTIyNCwgU0hBMjI0X0RJR0VTVF9MRU5HVEg+fSwKKyAgICB7IlNIQTItMjU2
IiwgMSwgSGFzaDxTSEEyNTYsIFNIQTI1Nl9ESUdFU1RfTEVOR1RIPn0sCisgICAgeyJTSEEyLTM4
NCIsIDEsIEhhc2g8U0hBMzg0LCBTSEEyNTZfRElHRVNUX0xFTkdUSD59LAorICAgIHsiU0hBMi01
MTIiLCAxLCBIYXNoPFNIQTUxMiwgU0hBNTEyX0RJR0VTVF9MRU5HVEg+fSwKKyAgICB7IkFFUy9l
bmNyeXB0IiwgMiwgQUVTPEFFU19zZXRfZW5jcnlwdF9rZXksIEFFU19lbmNyeXB0Pn0sCisgICAg
eyJBRVMvZGVjcnlwdCIsIDIsIEFFUzxBRVNfc2V0X2RlY3J5cHRfa2V5LCBBRVNfZGVjcnlwdD59
LAorICAgIHsiQUVTLUNCQy9lbmNyeXB0IiwgMywgQUVTX0NCQzxBRVNfc2V0X2VuY3J5cHRfa2V5
LCBBRVNfRU5DUllQVD59LAorICAgIHsiQUVTLUNCQy9kZWNyeXB0IiwgMywgQUVTX0NCQzxBRVNf
c2V0X2RlY3J5cHRfa2V5LCBBRVNfREVDUllQVD59LAorfTsKKworaW50IG1haW4oKSB7CisgIHVp
bnQzMl90IG51bXNbMSArIGtNYXhBcmdzXTsKKyAgdWludDhfdCAqYnVmID0gbnVsbHB0cjsKKyAg
c2l6ZV90IGJ1Zl9sZW4gPSAwOworICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGFyZ3Nba01heEFyZ3Nd
OworCisgIGZvciAoOzspIHsKKyAgICBpZiAoIVJlYWRBbGwoU1RESU5fRklMRU5PLCBudW1zLCBz
aXplb2YodWludDMyX3QpICogMikpIHsKKyAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGNv
bnN0IHNpemVfdCBudW1fYXJncyA9IG51bXNbMF07CisgICAgaWYgKG51bV9hcmdzID09IDApIHsK
KyAgICAgIGZwcmludGYoc3RkZXJyLCAiSW52YWxpZCwgemVyby1hcmd1bWVudCBvcGVyYXRpb24g
cmVxdWVzdGVkLlxuIik7CisgICAgICByZXR1cm4gMjsKKyAgICB9IGVsc2UgaWYgKG51bV9hcmdz
ID4ga01heEFyZ3MpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAiT3Bl
cmF0aW9uIHJlcXVlc3RlZCB3aXRoICV6dSBhcmdzLCBidXQgJXp1IGlzIHRoZSBsaW1pdC5cbiIs
CisgICAgICAgICAgICAgIG51bV9hcmdzLCBrTWF4QXJncyk7CisgICAgICByZXR1cm4gMjsKKyAg
ICB9CisKKyAgICBpZiAobnVtX2FyZ3MgPiAxICYmCisgICAgICAgICFSZWFkQWxsKFNURElOX0ZJ
TEVOTywgJm51bXNbMl0sIHNpemVvZih1aW50MzJfdCkgKiAobnVtX2FyZ3MgLSAxKSkpIHsKKyAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgIHNpemVfdCBuZWVkID0gMDsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG51bV9hcmdzOyBpKyspIHsKKyAgICAgIGNvbnN0IHNpemVfdCBhcmdf
bGVuZ3RoID0gbnVtc1tpICsgMV07CisgICAgICBpZiAoaSA9PSAwICYmIGFyZ19sZW5ndGggPiBr
TWF4TmFtZUxlbmd0aCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAg
ICAiT3BlcmF0aW9uIHdpdGggbmFtZSBvZiBsZW5ndGggJXp1IGV4Y2VlZGVkIGxpbWl0IG9mICV6
dS5cbiIsCisgICAgICAgICAgICAgICAgYXJnX2xlbmd0aCwga01heE5hbWVMZW5ndGgpOworICAg
ICAgICByZXR1cm4gMjsKKyAgICAgIH0gZWxzZSBpZiAoYXJnX2xlbmd0aCA+IGtNYXhBcmdMZW5n
dGgpIHsKKyAgICAgICAgZnByaW50ZigKKyAgICAgICAgICAgIHN0ZGVyciwKKyAgICAgICAgICAg
ICJPcGVyYXRpb24gd2l0aCBhcmd1bWVudCBvZiBsZW5ndGggJXp1IGV4Y2VlZGVkIGxpbWl0IG9m
ICV6dS5cbiIsCisgICAgICAgICAgICBhcmdfbGVuZ3RoLCBrTWF4QXJnTGVuZ3RoKTsKKyAgICAg
ICAgcmV0dXJuIDI7CisgICAgICB9CisKKyAgICAgIC8vIHN0YXRpY19hc3NlcnQgYXJvdW5kIGtN
YXhBcmdzIGV0YyBlbmZvcmNlcyB0aGF0IHRoaXMgZG9lc24ndCBvdmVyZmxvdy4KKyAgICAgIG5l
ZWQgKz0gYXJnX2xlbmd0aDsKKyAgICB9CisKKyAgICBpZiAobmVlZCA+IGJ1Zl9sZW4pIHsKKyAg
ICAgIGZyZWUoYnVmKTsKKyAgICAgIHNpemVfdCBhbGxvY2VkID0gbmVlZCArIChuZWVkID4+IDEp
OworICAgICAgaWYgKGFsbG9jZWQgPCBuZWVkKSB7CisgICAgICAgIGFib3J0KCk7CisgICAgICB9
CisgICAgICBidWYgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4obWFsbG9jKGFsbG9jZWQp
KTsKKyAgICAgIGlmIChidWYgPT0gbnVsbHB0cikgeworICAgICAgICBhYm9ydCgpOworICAgICAg
fQorICAgICAgYnVmX2xlbiA9IGFsbG9jZWQ7CisgICAgfQorCisgICAgaWYgKCFSZWFkQWxsKFNU
RElOX0ZJTEVOTywgYnVmLCBuZWVkKSkgeworICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg
c2l6ZV90IG9mZnNldCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1fYXJnczsg
aSsrKSB7CisgICAgICBhcmdzW2ldID0gU3Bhbjxjb25zdCB1aW50OF90PigmYnVmW29mZnNldF0s
IG51bXNbaSArIDFdKTsKKyAgICAgIG9mZnNldCArPSBudW1zW2kgKyAxXTsKKyAgICB9CisKKyAg
ICBib29sIGZvdW5kID0gdHJ1ZTsKKyAgICBmb3IgKGNvbnN0IGF1dG8gJmZ1bmMgOiBrRnVuY3Rp
b25zKSB7CisgICAgICBpZiAoYXJnc1swXS5zaXplKCkgPT0gc3RybGVuKGZ1bmMubmFtZSkgJiYK
KyAgICAgICAgICBtZW1jbXAoYXJnc1swXS5kYXRhKCksIGZ1bmMubmFtZSwgYXJnc1swXS5zaXpl
KCkpID09IDApIHsKKyAgICAgICAgaWYgKG51bV9hcmdzIC0gMSAhPSBmdW5jLmV4cGVjdGVkX2Fy
Z3MpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICJcJyVz
XCcgb3BlcmF0aW9uIHJlY2VpdmVkICV6dSBhcmd1bWVudHMgYnV0IGV4cGVjdGVkICV1LlxuIiwK
KyAgICAgICAgICAgICAgICAgIGZ1bmMubmFtZSwgbnVtX2FyZ3MgLSAxLCBmdW5jLmV4cGVjdGVk
X2FyZ3MpOworICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFm
dW5jLmhhbmRsZXIoJmFyZ3NbMV0pKSB7CisgICAgICAgICAgcmV0dXJuIDQ7CisgICAgICAgIH0K
KworICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0K
KworICAgIGlmICghZm91bmQpIHsKKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIG5hbWUocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyICo+KGFyZ3NbMF0uZGF0YSgpKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJnc1swXS5zaXplKCkpOworICAgICAgZnByaW50ZihzdGRlcnIsICJV
bmtub3duIG9wZXJhdGlvbjogJXNcbiIsIG5hbWUuY19zdHIoKSk7CisgICAgICByZXR1cm4gMzsK
KyAgICB9CisgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9icmVhay10ZXN0
cy5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9icmVhay10ZXN0cy5zaAppbmRleCA1YjFjZDIxMWI0
MjMzY2JmZWFmNTExY2M0MDMyYzdlNGQ2NWQ5NjQxLi5kMGVjMWRmMTBjOWM2ZGRiMDQzZTczZjhl
MDI2NDQ1MTZkYWRhNDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvYnJlYWstdGVz
dHMuc2gKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2JyZWFrLXRlc3RzLnNoCkBAIC00MCw3ICs0
MCw3IEBAIGZpCiBmb3IgdGVzdCBpbiAkVEVTVFM7IGRvCiAJcHVzaGQgYnVpbGQtJHRlc3QKIAlw
cmludGYgIlxuXG5cXHgxYlsxbSR0ZXN0XFx4MWJbMG1cbiIKLQkuL2ZpcHN0b29scy90ZXN0X2Zp
cHMKKwkuL3V0aWwvZmlwc3Rvb2xzL2NhdnAvdGVzdF9maXBzCiAJZWNobyAiV2FpdGluZyBmb3Ig
a2V5cHJlc3MuLi4iCiAJcmVhZAogCXBvcGQKQEAgLTQ4LDYgKzQ4LDYgQEAgZG9uZQogCiBwdXNo
ZCBidWlsZC1OT05FCiBwcmludGYgIlxceDFiWzFtSW50ZWdyaXR5XFx4MWJbMG1cbiIKLWdvIHJ1
biAuLi91dGlsL2ZpcHN0b29scy9icmVhay1oYXNoLmdvIC4vZmlwc3Rvb2xzL3Rlc3RfZmlwcyAu
L2ZpcHN0b29scy90ZXN0X2ZpcHNfYnJva2VuCi0uL2ZpcHN0b29scy90ZXN0X2ZpcHNfYnJva2Vu
CitnbyBydW4gLi4vdXRpbC9maXBzdG9vbHMvYnJlYWstaGFzaC5nbyAuL3V0aWwvZmlwc3Rvb2xz
L2NhdnAvdGVzdF9maXBzIC4vdXRpbC9maXBzdG9vbHMvY2F2cC90ZXN0X2ZpcHNfYnJva2VuCisu
L3V0aWwvZmlwc3Rvb2xzL2NhdnAvdGVzdF9maXBzX2Jyb2tlbgogcG9wZApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9v
bHMvY2F2cC9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTBjOWFiODAyOTg1OTcyNWYyMmNh
MmE2YTFmNGZhZjZlYTkyYTkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xz
L2NhdnAvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSw0MiBAQAoraW5jbHVkZV9kaXJlY3Rvcmll
cyguLi8uLi8uLi9pbmNsdWRlKQorCitpZihGSVBTKQorICBhZGRfZXhlY3V0YWJsZSgKKyAgICBj
YXZwCisKKyAgICBjYXZwX21haW4uY2MKKworICAgIGNhdnBfYWVzX2djbV90ZXN0LmNjCisgICAg
Y2F2cF9hZXNfdGVzdC5jYworICAgIGNhdnBfY3RyX2RyYmdfdGVzdC5jYworICAgIGNhdnBfZWNk
c2EyX2tleXBhaXJfdGVzdC5jYworICAgIGNhdnBfZWNkc2EyX3Brdl90ZXN0LmNjCisgICAgY2F2
cF9lY2RzYTJfc2lnZ2VuX3Rlc3QuY2MKKyAgICBjYXZwX2VjZHNhMl9zaWd2ZXJfdGVzdC5jYwor
ICAgIGNhdnBfaG1hY190ZXN0LmNjCisgICAgY2F2cF9rYXNfdGVzdC5jYworICAgIGNhdnBfa2V5
d3JhcF90ZXN0LmNjCisgICAgY2F2cF9yc2EyX2tleWdlbl90ZXN0LmNjCisgICAgY2F2cF9yc2Ey
X3NpZ2dlbl90ZXN0LmNjCisgICAgY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0LmNjCisgICAgY2F2cF9z
aGFfbW9udGVfdGVzdC5jYworICAgIGNhdnBfc2hhX3Rlc3QuY2MKKyAgICBjYXZwX3RkZXNfdGVz
dC5jYworICAgIGNhdnBfdGxza2RmX3Rlc3QuY2MKKworICAgIGNhdnBfdGVzdF91dGlsLmNjCisg
ICkKKworICBhZGRfZGVwZW5kZW5jaWVzKGNhdnAgZ2xvYmFsX3RhcmdldCkKKworICBhZGRfZXhl
Y3V0YWJsZSgKKyAgICB0ZXN0X2ZpcHMKKworICAgIHRlc3RfZmlwcy5jCisgICkKKworICBhZGRf
ZGVwZW5kZW5jaWVzKHRlc3RfZmlwcyBnbG9iYWxfdGFyZ2V0KQorCisgIHRhcmdldF9saW5rX2xp
YnJhcmllcyhjYXZwIHRlc3Rfc3VwcG9ydF9saWIgY3J5cHRvKQorICB0YXJnZXRfbGlua19saWJy
YXJpZXModGVzdF9maXBzIHRlc3Rfc3VwcG9ydF9saWIgY3J5cHRvKQorZW5kaWYoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9hZXNfZ2NtX3Rlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMv
dXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX2Flc19nY21fdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Mjc4
Y2VhZjg4YmM5YjFlYTkwY2JiMDBiZmJiZTNjY2MyZmQ5ODE5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9hZXNfZ2NtX3Rlc3QuY2MKQEAgLTAsMCArMSwx
NjMgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNz
aW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJl
IGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRl
ZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJS
QU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1Q
TElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJ
UkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUwor
ICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRT
LCBXSEVUSEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RI
RVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBX
SVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworLy8gY2F2
cF9hZXNfZ2NtX3Rlc3QgcHJvY2Vzc2VzIGEgTklTVCBDQVZQIEFFUyBHQ00gdGVzdCB2ZWN0b3Ig
cmVxdWVzdCBmaWxlIGFuZAorLy8gZW1pdHMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCisK
KyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2luY2x1ZGUgPG9wZW5zc2wvYWVhZC5oPgorI2luY2x1
ZGUgPG9wZW5zc2wvY2lwaGVyLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNs
dWRlIDxvcGVuc3NsL2Vyci5oPgorCisjaW5jbHVkZSAiLi4vY3J5cHRvL3Rlc3QvZmlsZV90ZXN0
LmgiCisjaW5jbHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKKworCituYW1lc3BhY2UgeworCitzdHJ1
Y3QgVGVzdEN0eCB7CisgIGNvbnN0IEVWUF9BRUFEICphZWFkOworfTsKKworfQorCitzdGF0aWMg
Y29uc3QgRVZQX0FFQUQgKkdldEFFQUQoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsIGNvbnN0IGJv
b2wgZW5jKSB7CisgIGlmIChuYW1lID09ICJhZXMtMTI4LWdjbSIpIHsKKyAgICByZXR1cm4gRVZQ
X2FlYWRfYWVzXzEyOF9nY20oKTsKKyAgfSBlbHNlIGlmIChuYW1lID09ICJhZXMtMjU2LWdjbSIp
IHsKKyAgICByZXR1cm4gRVZQX2FlYWRfYWVzXzI1Nl9nY20oKTsKKyAgfQorICByZXR1cm4gbnVs
bHB0cjsKK30KKworc3RhdGljIGJvb2wgVGVzdEFFQURFbmNyeXB0KEZpbGVUZXN0ICp0LCB2b2lk
ICphcmcpIHsKKyAgVGVzdEN0eCAqY3R4ID0gcmVpbnRlcnByZXRfY2FzdDxUZXN0Q3R4ICo+KGFy
Zyk7CisKKyAgc3RkOjpzdHJpbmcga2V5X2xlbl9zdHIsIGl2X2xlbl9zdHIsIHB0X2xlbl9zdHIs
IGFhZF9sZW5fc3RyLCB0YWdfbGVuX3N0cjsKKyAgaWYgKCF0LT5HZXRJbnN0cnVjdGlvbigma2V5
X2xlbl9zdHIsICJLZXlsZW4iKSB8fAorICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZpdl9sZW5f
c3RyLCAiSVZsZW4iKSB8fAorICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZwdF9sZW5fc3RyLCAi
UFRsZW4iKSB8fAorICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZhYWRfbGVuX3N0ciwgIkFBRGxl
biIpIHx8CisgICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJnRhZ19sZW5fc3RyLCAiVGFnbGVuIikp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBzdGQ6OnN0cmluZyBjb3VudDsKKyAgc3Rk
Ojp2ZWN0b3I8dWludDhfdD4ga2V5LCBpdiwgcHQsIGFhZCwgdGFnLCBjdDsKKyAgaWYgKCF0LT5H
ZXRBdHRyaWJ1dGUoJmNvdW50LCAiQ291bnQiKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZrZXks
ICJLZXkiKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZpdiwgIklWIikgfHwKKyAgICAgICF0LT5H
ZXRCeXRlcygmcHQsICJQVCIpIHx8CisgICAgICAhdC0+R2V0Qnl0ZXMoJmFhZCwgIkFBRCIpIHx8
CisgICAgICBrZXkuc2l6ZSgpICogOCAhPSBzdHJ0b3VsKGtleV9sZW5fc3RyLmNfc3RyKCksIG51
bGxwdHIsIDApIHx8CisgICAgICBpdi5zaXplKCkgKiA4ICE9IHN0cnRvdWwoaXZfbGVuX3N0ci5j
X3N0cigpLCBudWxscHRyLCAwKSB8fAorICAgICAgcHQuc2l6ZSgpICogOCAhPSBzdHJ0b3VsKHB0
X2xlbl9zdHIuY19zdHIoKSwgbnVsbHB0ciwgMCkgfHwKKyAgICAgIGFhZC5zaXplKCkgKiA4ICE9
IHN0cnRvdWwoYWFkX2xlbl9zdHIuY19zdHIoKSwgbnVsbHB0ciwgMCkgfHwKKyAgICAgIGl2LnNp
emUoKSAhPSAxMikgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGNvbnN0IHNpemVfdCB0
YWdfbGVuID0gc3RydG91bCh0YWdfbGVuX3N0ci5jX3N0cigpLCBudWxscHRyLCAwKSAvIDg7Cisg
IGlmICghQUVBREVuY3J5cHQoY3R4LT5hZWFkLCAmY3QsICZ0YWcsIHRhZ19sZW4sIGtleSwgcHQs
IGFhZCwgaXYpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHByaW50ZigiJXMiLCB0LT5D
dXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIoKSk7CisgIHByaW50ZigiQ1QgPSAlc1xyXG4iLCBF
bmNvZGVIZXgoY3QuZGF0YSgpLCBjdC5zaXplKCkpLmNfc3RyKCkpOworICBwcmludGYoIlRhZyA9
ICVzXHJcblxyXG4iLCBFbmNvZGVIZXgodGFnLmRhdGEoKSwgdGFnLnNpemUoKSkuY19zdHIoKSk7
CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIFRlc3RBRUFERGVjcnlwdChGaWxl
VGVzdCAqdCwgdm9pZCAqYXJnKSB7CisgIFRlc3RDdHggKmN0eCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
VGVzdEN0eCAqPihhcmcpOworCisgIHN0ZDo6c3RyaW5nIGtleV9sZW4sIGl2X2xlbiwgcHRfbGVu
X3N0ciwgYWFkX2xlbl9zdHIsIHRhZ19sZW47CisgIGlmICghdC0+R2V0SW5zdHJ1Y3Rpb24oJmtl
eV9sZW4sICJLZXlsZW4iKSB8fAorICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZpdl9sZW4sICJJ
VmxlbiIpIHx8CisgICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJnB0X2xlbl9zdHIsICJQVGxlbiIp
IHx8CisgICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJmFhZF9sZW5fc3RyLCAiQUFEbGVuIikgfHwK
KyAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmdGFnX2xlbiwgIlRhZ2xlbiIpKSB7CisgICAgdC0+
UHJpbnRMaW5lKCJJbnZhbGlkIGluc3RydWN0aW9uIGJsb2NrLiIpOworICAgIHJldHVybiBmYWxz
ZTsKKyAgfQorICBzaXplX3QgYWFkX2xlbiA9IHN0cnRvdWwoYWFkX2xlbl9zdHIuY19zdHIoKSwg
bnVsbHB0ciwgMCkgLyA4OworICBzaXplX3QgcHRfbGVuID0gc3RydG91bChwdF9sZW5fc3RyLmNf
c3RyKCksIG51bGxwdHIsIDApIC8gODsKKworICBzdGQ6OnN0cmluZyBjb3VudDsKKyAgc3RkOjp2
ZWN0b3I8dWludDhfdD4ga2V5LCBpdiwgY3QsIGFhZCwgdGFnLCBwdDsKKyAgaWYgKCF0LT5HZXRB
dHRyaWJ1dGUoJmNvdW50LCAiQ291bnQiKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZrZXksICJL
ZXkiKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZhYWQsICJBQUQiKSB8fAorICAgICAgIXQtPkdl
dEJ5dGVzKCZ0YWcsICJUYWciKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZpdiwgIklWIikgfHwK
KyAgICAgICF0LT5HZXRCeXRlcygmY3QsICJDVCIpIHx8CisgICAgICBrZXkuc2l6ZSgpICogOCAh
PSBzdHJ0b3VsKGtleV9sZW4uY19zdHIoKSwgbnVsbHB0ciwgMCkgfHwKKyAgICAgIGl2LnNpemUo
KSAqIDggIT0gc3RydG91bChpdl9sZW4uY19zdHIoKSwgbnVsbHB0ciwgMCkgfHwKKyAgICAgIGN0
LnNpemUoKSAhPSBwdF9sZW4gfHwKKyAgICAgIGFhZC5zaXplKCkgIT0gYWFkX2xlbiB8fAorICAg
ICAgdGFnLnNpemUoKSAqIDggIT0gc3RydG91bCh0YWdfbGVuLmNfc3RyKCksIG51bGxwdHIsIDAp
KSB7CisgICAgdC0+UHJpbnRMaW5lKCJJbnZhbGlkIHRlc3QgY2FzZSIpOworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorCisgIHByaW50ZigiJXMiLCB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19z
dHIoKSk7CisgIGJvb2wgYWVhZF9yZXN1bHQgPQorICAgICAgQUVBRERlY3J5cHQoY3R4LT5hZWFk
LCAmcHQsIHB0X2xlbiwga2V5LCBhYWQsIGN0LCB0YWcsIGl2KTsKKyAgaWYgKGFlYWRfcmVzdWx0
KSB7CisgICAgcHJpbnRmKCJQVCA9ICVzXHJcblxyXG4iLCBFbmNvZGVIZXgocHQuZGF0YSgpLCBw
dC5zaXplKCkpLmNfc3RyKCkpOworICB9IGVsc2UgeworICAgIHByaW50ZigiRkFJTFxyXG5cclxu
Iik7CisgIH0KKworICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGludCB1c2FnZShjaGFyICph
cmcpIHsKKyAgZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgKGVuY3xkZWMpIDxjaXBoZXI+IDx0
ZXN0IGZpbGU+XG4iLCBhcmcpOworICByZXR1cm4gMTsKK30KKworaW50IGNhdnBfYWVzX2djbV90
ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIGlmIChhcmdjICE9IDQpIHsKKyAg
ICByZXR1cm4gdXNhZ2UoYXJndlswXSk7CisgIH0KKworICBjb25zdCBzdGQ6OnN0cmluZyBtb2Rl
KGFyZ3ZbMV0pOworICBib29sICgqdGVzdF9mbikoRmlsZVRlc3QgKiB0LCB2b2lkICphcmcpOwor
ICBpZiAobW9kZSA9PSAiZW5jIikgeworICAgIHRlc3RfZm4gPSAmVGVzdEFFQURFbmNyeXB0Owor
ICB9IGVsc2UgaWYgKG1vZGUgPT0gImRlYyIpIHsKKyAgICB0ZXN0X2ZuID0gJlRlc3RBRUFERGVj
cnlwdDsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gdXNhZ2UoYXJndlswXSk7CisgIH0KKworICBj
b25zdCBFVlBfQUVBRCAqYWVhZCA9IEdldEFFQUQoYXJndlsyXSwgbW9kZSA9PSAiZW5jIik7Cisg
IGlmIChhZWFkID09IG51bGxwdHIpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgImludmFsaWQgYWVh
ZDogJXNcbiIsIGFyZ3ZbMl0pOworICAgIHJldHVybiAxOworICB9CisKKyAgVGVzdEN0eCBjdHgg
PSB7YWVhZH07CisKKyAgRmlsZVRlc3Q6Ok9wdGlvbnMgb3B0czsKKyAgb3B0cy5wYXRoID0gYXJn
dlszXTsKKyAgb3B0cy5jYWxsYmFjayA9IHRlc3RfZm47CisgIG9wdHMuYXJnID0gJmN0eDsKKyAg
b3B0cy5zaWxlbnQgPSB0cnVlOworICBvcHRzLmNvbW1lbnRfY2FsbGJhY2sgPSBFY2hvQ29tbWVu
dDsKKyAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRzKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGls
L2ZpcHN0b29scy9jYXZwL2NhdnBfYWVzX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2
cC9jYXZwX2Flc190ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjMGNmM2NmZDVlYWFmNzhlMjc2MmE5ZGE1
ZTg5ODlkOGJiYmY4NDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2
cC9jYXZwX2Flc190ZXN0LmNjCkBAIC0wLDAgKzEsMjI3IEBACisvKiBDb3B5cmlnaHQgKGMpIDIw
MTcsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGgg
b3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBp
biBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFO
RCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8g
VEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZS
T00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAq
IE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lO
RyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNF
IE9GIFRISVMgU09GVFdBUkUuICovCisKKy8vIGNhdnBfYWVzX3Rlc3QgcHJvY2Vzc2VzIGEgTklT
VCBDQVZQIEFFUyB0ZXN0IHZlY3RvciByZXF1ZXN0IGZpbGUgYW5kIGVtaXRzCisvLyB0aGUgY29y
cmVzcG9uZGluZyByZXNwb25zZS4KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSA8
b3BlbnNzbC9jaXBoZXIuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgorI2luY2x1ZGUg
PG9wZW5zc2wvZXJyLmg+CisKKyNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuaCIK
KyNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgorCisKK25hbWVzcGFjZSB7CisKK3N0cnVjdCBU
ZXN0Q3R4IHsKKyAgY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworICBib29sIGhhc19pdjsKKyAg
ZW51bSBNb2RlIHsKKyAgICBrS0FULCAgLy8gS25vd24gQW5zd2VyIFRlc3QKKyAgICBrTUNULCAg
Ly8gTW9udGUgQ2FybG8gVGVzdAorICB9OworICBNb2RlIG1vZGU7Cit9OworCit9CisKK3N0YXRp
YyBib29sIE1vbnRlQ2FybG8oY29uc3QgVGVzdEN0eCAqY3R4LCBGaWxlVGVzdCAqdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyLCBzdGQ6OnZlY3Rvcjx1
aW50OF90PiAqb3V0LAorICAgICAgICAgICAgICAgICAgICAgICBib29sIGVuY3J5cHQsIHN0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8
dWludDhfdD4gaXYsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGluKSB7CisgIGNvbnN0IHN0ZDo6c3Ry
aW5nIGluX2xhYmVsID0gZW5jcnlwdCA/ICJQTEFJTlRFWFQiIDogIkNJUEhFUlRFWFQiLAorICAg
ICAgICAgICAgICAgICAgICByZXN1bHRfbGFiZWwgPSBlbmNyeXB0ID8gIkNJUEhFUlRFWFQiIDog
IlBMQUlOVEVYVCI7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHByZXZfcmVzdWx0LCByZXN1bHQs
IHByZXZfaW47CisgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKKyAgICBwcmludGYo
IkNPVU5UID0gJWRcclxuS0VZID0gJXNcclxuIiwgaSwKKyAgICAgICAgICAgRW5jb2RlSGV4KGtl
eS5kYXRhKCksIGtleS5zaXplKCkpLmNfc3RyKCkpOworICAgIGlmIChjdHgtPmhhc19pdikgewor
ICAgICAgcHJpbnRmKCJJViA9ICVzXHJcbiIsIEVuY29kZUhleChpdi5kYXRhKCksIGl2LnNpemUo
KSkuY19zdHIoKSk7CisgICAgfQorICAgIHByaW50ZigiJXMgPSAlc1xyXG4iLCBpbl9sYWJlbC5j
X3N0cigpLAorICAgICAgICAgICBFbmNvZGVIZXgoaW4uZGF0YSgpLCBpbi5zaXplKCkpLmNfc3Ry
KCkpOworCisgICAgaWYgKCFjdHgtPmhhc19pdikgeyAgLy8gRUNCIG1vZGUKKyAgICAgIGZvciAo
aW50IGogPSAwOyBqIDwgMTAwMDsgaisrKSB7CisgICAgICAgIHByZXZfcmVzdWx0ID0gcmVzdWx0
OworICAgICAgICBpZiAoIUNpcGhlck9wZXJhdGlvbihjaXBoZXIsICZyZXN1bHQsIGVuY3J5cHQs
IGtleSwgaXYsIGluKSkgeworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAg
ICAgICBpbiA9IHJlc3VsdDsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgZm9yIChpbnQg
aiA9IDA7IGogPCAxMDAwOyBqKyspIHsKKyAgICAgICAgcHJldl9yZXN1bHQgPSByZXN1bHQ7Cisg
ICAgICAgIGlmIChqID4gMCkgeworICAgICAgICAgIGlmIChlbmNyeXB0KSB7CisgICAgICAgICAg
ICBpdiA9IHJlc3VsdDsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaXYgPSBwcmV2
X2luOworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICghQ2lwaGVyT3BlcmF0
aW9uKGNpcGhlciwgJnJlc3VsdCwgZW5jcnlwdCwga2V5LCBpdiwgaW4pKSB7CisgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHJldl9pbiA9IGluOworCisgICAg
ICAgIGlmIChqID09IDApIHsKKyAgICAgICAgICBpbiA9IGl2OworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgIGluID0gcHJldl9yZXN1bHQ7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisK
KyAgICBwcmludGYoIiVzID0gJXNcclxuXHJcbiIsIHJlc3VsdF9sYWJlbC5jX3N0cigpLAorICAg
ICAgICAgICBFbmNvZGVIZXgocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSkuY19zdHIoKSk7
CisKKyAgICBjb25zdCBzaXplX3Qga2V5X2xlbiA9IGtleS5zaXplKCkgKiA4OworICAgIGlmIChr
ZXlfbGVuID09IDEyOCkgeworICAgICAgZm9yIChzaXplX3QgayA9IDA7IGsgPCBrZXkuc2l6ZSgp
OyBrKyspIHsKKyAgICAgICAga2V5W2tdIF49IHJlc3VsdFtrXTsKKyAgICAgIH0KKyAgICB9IGVs
c2UgaWYgKGtleV9sZW4gPT0gMTkyKSB7CisgICAgICBmb3IgKHNpemVfdCBrID0gMDsgayA8IGtl
eS5zaXplKCk7IGsrKykgeworICAgICAgICAvLyBLZXlbaSsxXSA9IEtleVtpXSB4b3IgKGxhc3Qg
NjQtYml0cyBvZiBDVFtqLTFdIHx8IENUW2pdKQorICAgICAgICBpZiAoayA8IDgpIHsKKyAgICAg
ICAgICBrZXlba10gXj0gcHJldl9yZXN1bHRbcHJldl9yZXN1bHQuc2l6ZSgpIC0gOCArIGtdOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGtleVtrXSBePSByZXN1bHRbayAtIDhdOworICAg
ICAgICB9CisgICAgICB9CisgICAgfSBlbHNlIHsgIC8vIGtleV9sZW4gPT0gMjU2CisgICAgICBm
b3IgKHNpemVfdCBrID0gMDsgayA8IGtleS5zaXplKCk7IGsrKykgeworICAgICAgICAvLyBLZXlb
aSsxXSA9IEtleVtpXSB4b3IgKENUW2otMV0gfHwgQ1Rbal0pCisgICAgICAgIGlmIChrIDwgMTYp
IHsKKyAgICAgICAgICBrZXlba10gXj0gcHJldl9yZXN1bHRba107CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAga2V5W2tdIF49IHJlc3VsdFtrIC0gMTZdOworICAgICAgICB9CisgICAgICB9
CisgICAgfQorCisgICAgaWYgKGN0eC0+aGFzX2l2KSB7CisgICAgICBpdiA9IHJlc3VsdDsKKyAg
ICAgIGluID0gcHJldl9yZXN1bHQ7CisgICAgfSBlbHNlIHsKKyAgICAgIGluID0gcmVzdWx0Owor
ICAgIH0KKyAgfQorCisgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBUZXN0Q2lwaGVy
KEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsKKyAgVGVzdEN0eCAqY3R4ID0gcmVpbnRlcnByZXRf
Y2FzdDxUZXN0Q3R4ICo+KGFyZyk7CisKKyAgaWYgKHQtPkhhc0luc3RydWN0aW9uKCJFTkNSWVBU
IikgPT0gdC0+SGFzSW5zdHJ1Y3Rpb24oIkRFQ1JZUFQiKSkgeworICAgIHQtPlByaW50TGluZSgi
V2FudCBlaXRoZXIgRU5DUllQVCBvciBERUNSWVBUIik7CisgICAgcmV0dXJuIGZhbHNlOworICB9
CisgIGVudW0geworICAgIGtFbmNyeXB0LAorICAgIGtEZWNyeXB0LAorICB9IG9wZXJhdGlvbiA9
IHQtPkhhc0luc3RydWN0aW9uKCJFTkNSWVBUIikgPyBrRW5jcnlwdCA6IGtEZWNyeXB0OworCisg
IHN0ZDo6c3RyaW5nIGNvdW50OworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBrZXksIGl2LCBpbiwg
cmVzdWx0OworICBpZiAoIXQtPkdldEF0dHJpYnV0ZSgmY291bnQsICJDT1VOVCIpIHx8CisgICAg
ICAhdC0+R2V0Qnl0ZXMoJmtleSwgIktFWSIpIHx8CisgICAgICAoY3R4LT5oYXNfaXYgJiYgIXQt
PkdldEJ5dGVzKCZpdiwgIklWIikpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgY29u
c3QgRVZQX0NJUEhFUiAqY2lwaGVyID0gY3R4LT5jaXBoZXI7CisgIGlmIChvcGVyYXRpb24gPT0g
a0VuY3J5cHQpIHsKKyAgICBpZiAoIXQtPkdldEJ5dGVzKCZpbiwgIlBMQUlOVEVYVCIpKSB7Cisg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9IGVsc2UgeyAgLy8gb3BlcmF0aW9uID09IGtE
ZWNyeXB0CisgICAgaWYgKCF0LT5HZXRCeXRlcygmaW4sICJDSVBIRVJURVhUIikpIHsKKyAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKworICBpZiAoY3R4LT5tb2RlID09IFRlc3RDdHg6
OmtLQVQpIHsKKyAgICBpZiAoIUNpcGhlck9wZXJhdGlvbihjaXBoZXIsICZyZXN1bHQsIG9wZXJh
dGlvbiA9PSBrRW5jcnlwdCwga2V5LCBpdiwgaW4pKSB7CisgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGxhYmVsID0KKyAgICAgICAgb3BlcmF0aW9uID09
IGtFbmNyeXB0ID8gIkNJUEhFUlRFWFQiIDogIlBMQUlOVEVYVCI7CisgICAgcHJpbnRmKCIlcyVz
ID0gJXNcclxuXHJcbiIsIHQtPkN1cnJlbnRUZXN0VG9TdHJpbmcoKS5jX3N0cigpLCBsYWJlbC5j
X3N0cigpLAorICAgICAgICAgICBFbmNvZGVIZXgocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUo
KSkuY19zdHIoKSk7CisgIH0gZWxzZSB7ICAvLyBjdHgtPm1vZGUgPT0ga01DVAorICAgIGNvbnN0
IHN0ZDo6c3RyaW5nIG9wX2xhYmVsID0KKyAgICAgICAgb3BlcmF0aW9uID09IGtFbmNyeXB0ID8g
IltFTkNSWVBUXSIgOiAiW0RFQ1JZUFRdIjsKKyAgICBwcmludGYoIiVzXHJcblxyXG4iLCBvcF9s
YWJlbC5jX3N0cigpKTsKKyAgICBpZiAoIU1vbnRlQ2FybG8oY3R4LCB0LCBjaXBoZXIsICZyZXN1
bHQsIG9wZXJhdGlvbiA9PSBrRW5jcnlwdCwga2V5LCBpdiwKKyAgICAgICAgICAgICAgICAgICAg
aW4pKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChvcGVyYXRpb24gPT0g
a0VuY3J5cHQpIHsKKyAgICAgIC8vIE1DVCB0ZXN0cyBjb250YWluIGEgc3RyYXkgYmxhbmsgbGlu
ZSBhZnRlciB0aGUgRU5DUllQVCBzZWN0aW9uLgorICAgICAgcHJpbnRmKCJcclxuIik7CisgICAg
fQorICB9CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJn
KSB7CisgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIChrYXR8bWN0KSA8Y2lwaGVyPiA8dGVz
dCBmaWxlPlxuIiwgYXJnKTsKKyAgcmV0dXJuIDE7Cit9CisKK2ludCBjYXZwX2Flc190ZXN0X21h
aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIGlmIChhcmdjICE9IDQpIHsKKyAgICByZXR1
cm4gdXNhZ2UoYXJndlswXSk7CisgIH0KKworICBjb25zdCBzdGQ6OnN0cmluZyB0bShhcmd2WzFd
KTsKKyAgZW51bSBUZXN0Q3R4OjpNb2RlIHRlc3RfbW9kZTsKKyAgaWYgKHRtID09ICJrYXQiKSB7
CisgICAgdGVzdF9tb2RlID0gVGVzdEN0eDo6a0tBVDsKKyAgfSBlbHNlIGlmICh0bSA9PSAibWN0
IikgeworICAgIHRlc3RfbW9kZSA9IFRlc3RDdHg6OmtNQ1Q7CisgIH0gZWxzZSB7CisgICAgZnBy
aW50ZihzdGRlcnIsICJpbnZhbGlkIHRlc3RfbW9kZTogJXNcbiIsIHRtLmNfc3RyKCkpOworICAg
IHJldHVybiB1c2FnZShhcmd2WzBdKTsKKyAgfQorCisgIGNvbnN0IHN0ZDo6c3RyaW5nIGNpcGhl
cl9uYW1lKGFyZ3ZbMl0pOworICBjb25zdCBFVlBfQ0lQSEVSICpjaXBoZXIgPSBHZXRDaXBoZXIo
YXJndlsyXSk7CisgIGlmIChjaXBoZXIgPT0gbnVsbHB0cikgeworICAgIGZwcmludGYoc3RkZXJy
LCAiaW52YWxpZCBjaXBoZXI6ICVzXG4iLCBhcmd2WzJdKTsKKyAgICByZXR1cm4gMTsKKyAgfQor
ICBjb25zdCBib29sIGhhc19pdiA9CisgICAgICAoY2lwaGVyX25hbWUgIT0gImFlcy0xMjgtZWNi
IiAmJgorICAgICAgIGNpcGhlcl9uYW1lICE9ICJhZXMtMTkyLWVjYiIgJiYKKyAgICAgICBjaXBo
ZXJfbmFtZSAhPSAiYWVzLTI1Ni1lY2IiKTsKKworICBUZXN0Q3R4IGN0eCA9IHtjaXBoZXIsIGhh
c19pdiwgdGVzdF9tb2RlfTsKKworICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRzOworICBvcHRzLnBh
dGggPSBhcmd2WzNdOworICBvcHRzLmNhbGxiYWNrID0gVGVzdENpcGhlcjsKKyAgb3B0cy5hcmcg
PSAmY3R4OworICBvcHRzLnNpbGVudCA9IHRydWU7CisgIG9wdHMuY29tbWVudF9jYWxsYmFjayA9
IEVjaG9Db21tZW50OworICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9jdHJfZHJiZ190ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9jdHJfZHJiZ190ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYTFh
MTU2MWQ1NjRlYWEzNTAzYTQ3OGVkMmU4MmYzZjBmMzMwNjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9z
cmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX2N0cl9kcmJnX3Rlc3QuY2MKQEAgLTAsMCArMSwx
MDYgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNz
aW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJl
IGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRl
ZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJS
QU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1Q
TElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJ
UkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUwor
ICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRT
LCBXSEVUSEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RI
RVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBX
SVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworLy8gY2F2
cF9jdHJfZHJiZ190ZXN0IHByb2Nlc3NlcyBhIE5JU1QgQ0FWUCBEUkJHODAwLTkwQSB0ZXN0IHZl
Y3RvciByZXF1ZXN0CisvLyBmaWxlIGFuZCBlbWl0cyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25z
ZS4KKworI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+CisKKyNpbmNsdWRlIDxzdGRsaWIuaD4K
KworI2luY2x1ZGUgImNhdnBfdGVzdF91dGlsLmgiCisjaW5jbHVkZSAiLi4vY3J5cHRvL2ZpcHNt
b2R1bGUvcmFuZC9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVz
dC5oIgorCisKK3N0YXRpYyBib29sIFRlc3RDVFJEUkJHKEZpbGVUZXN0ICp0LCB2b2lkICphcmcp
IHsKKyAgc3RkOjpzdHJpbmcgdGVzdF90eXBlLCBwcmVkaWN0aW9uX3Jlc2lzdGFuY2UsIGVudHJv
cHlfaW5wdXRfbGVuLCBub25jZV9sZW4sCisgICAgICBwZXJzb25hbGl6YXRpb25fc3RyX2xlbiwg
YWRkaXRpb25hbF9pbnB1dF9sZW4sIHJldHVybmVkX2JpdHNfbGVuOworICBpZiAoIXQtPkdldElu
c3RydWN0aW9uKCZ0ZXN0X3R5cGUsICJBRVMtMjU2IG5vIGRmIikgfHwKKyAgICAgICF0LT5HZXRJ
bnN0cnVjdGlvbigmcHJlZGljdGlvbl9yZXNpc3RhbmNlLCAiUHJlZGljdGlvblJlc2lzdGFuY2Ui
KSB8fAorICAgICAgIXQtPkdldEluc3RydWN0aW9uKCZlbnRyb3B5X2lucHV0X2xlbiwgIkVudHJv
cHlJbnB1dExlbiIpIHx8CisgICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJm5vbmNlX2xlbiwgIk5v
bmNlTGVuIikgfHwKKyAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmcGVyc29uYWxpemF0aW9uX3N0
cl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIlBlcnNvbmFsaXphdGlvblN0cmluZ0xl
biIpIHx8CisgICAgICAhdC0+R2V0SW5zdHJ1Y3Rpb24oJmFkZGl0aW9uYWxfaW5wdXRfbGVuLCAi
QWRkaXRpb25hbElucHV0TGVuIikgfHwKKyAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmcmV0dXJu
ZWRfYml0c19sZW4sICJSZXR1cm5lZEJpdHNMZW4iKSB8fAorICAgICAgIXRlc3RfdHlwZS5lbXB0
eSgpIHx8CisgICAgICBwcmVkaWN0aW9uX3Jlc2lzdGFuY2UgIT0gIkZhbHNlIiB8fAorICAgICAg
c3RydG91bChlbnRyb3B5X2lucHV0X2xlbi5jX3N0cigpLCBudWxscHRyLCAwKSAhPQorICAgICAg
ICAgIENUUl9EUkJHX0VOVFJPUFlfTEVOICogOCB8fAorICAgICAgbm9uY2VfbGVuICE9ICIwIikg
eworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHN0ZDo6c3RyaW5nIGNvdW50OworICBzdGQ6
OnZlY3Rvcjx1aW50OF90PiBlbnRyb3B5LCBub25jZSwgcGVyc29uYWxpemF0aW9uX3N0ciwgYWkx
LCBhaTI7CisgIGlmICghdC0+R2V0QXR0cmlidXRlKCZjb3VudCwgIkNPVU5UIikgfHwKKyAgICAg
ICF0LT5HZXRCeXRlcygmZW50cm9weSwgIkVudHJvcHlJbnB1dCIpIHx8CisgICAgICAhdC0+R2V0
Qnl0ZXMoJm5vbmNlLCAiTm9uY2UiKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZwZXJzb25hbGl6
YXRpb25fc3RyLCAiUGVyc29uYWxpemF0aW9uU3RyaW5nIikgfHwKKyAgICAgICF0LT5HZXRCeXRl
cygmYWkxLCAiQWRkaXRpb25hbElucHV0IikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygmYWkyLCAi
QWRkaXRpb25hbElucHV0LzIiKSB8fAorICAgICAgZW50cm9weS5zaXplKCkgKiA4ICE9IHN0cnRv
dWwoZW50cm9weV9pbnB1dF9sZW4uY19zdHIoKSwgbnVsbHB0ciwgMCkgfHwKKyAgICAgIG5vbmNl
LnNpemUoKSAhPSAwIHx8CisgICAgICBwZXJzb25hbGl6YXRpb25fc3RyLnNpemUoKSAqIDggIT0K
KyAgICAgICAgICBzdHJ0b3VsKHBlcnNvbmFsaXphdGlvbl9zdHJfbGVuLmNfc3RyKCksIG51bGxw
dHIsIDApIHx8CisgICAgICBhaTEuc2l6ZSgpICE9IGFpMi5zaXplKCkgfHwKKyAgICAgIGFpMS5z
aXplKCkgKiA4ICE9IHN0cnRvdWwoYWRkaXRpb25hbF9pbnB1dF9sZW4uY19zdHIoKSwgbnVsbHB0
ciwgMCkpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBDVFJfRFJCR19TVEFURSBkcmJn
OworICBDVFJfRFJCR19pbml0KCZkcmJnLCBlbnRyb3B5LmRhdGEoKSwKKyAgICAgICAgICAgICAg
ICBwZXJzb25hbGl6YXRpb25fc3RyLnNpemUoKSA+IDAgPyBwZXJzb25hbGl6YXRpb25fc3RyLmRh
dGEoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51
bGxwdHIsCisgICAgICAgICAgICAgICAgcGVyc29uYWxpemF0aW9uX3N0ci5zaXplKCkpOworCisg
IHVpbnQ2NF90IG91dF9sZW4gPSBzdHJ0b3VsKHJldHVybmVkX2JpdHNfbGVuLmNfc3RyKCksIG51
bGxwdHIsIDApOworICBpZiAob3V0X2xlbiA9PSAwIHx8IChvdXRfbGVuICYgNykgIT0gMCkgewor
ICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBvdXRfbGVuIC89IDg7CisKKyAgc3RkOjp2ZWN0b3I8
dWludDhfdD4gb3V0OworICBvdXQucmVzaXplKG91dF9sZW4pOworCisgIENUUl9EUkJHX2dlbmVy
YXRlKCZkcmJnLCBvdXQuZGF0YSgpLCBvdXQuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICBh
aTEuc2l6ZSgpID4gMCA/IGFpMS5kYXRhKCkgOiBudWxscHRyLCBhaTEuc2l6ZSgpKTsKKyAgQ1RS
X0RSQkdfZ2VuZXJhdGUoJmRyYmcsIG91dC5kYXRhKCksIG91dC5zaXplKCksCisgICAgICAgICAg
ICAgICAgICAgIGFpMi5zaXplKCkgPiAwID8gYWkyLmRhdGEoKSA6IG51bGxwdHIsIGFpMi5zaXpl
KCkpOworCisgIHByaW50ZigiJXMiLCB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIoKSk7
CisgIHByaW50ZigiUmV0dXJuZWRCaXRzID0gJXNcclxuXHJcbiIsCisgICAgICAgICBFbmNvZGVI
ZXgob3V0LmRhdGEoKSwgb3V0LnNpemUoKSkuY19zdHIoKSk7CisKKyAgcmV0dXJuIHRydWU7Cit9
CisKK3N0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJnKSB7CisgIGZwcmludGYoc3RkZXJyLCAidXNh
Z2U6ICVzIDx0ZXN0IGZpbGU+XG4iLCBhcmcpOworICByZXR1cm4gMTsKK30KKworaW50IGNhdnBf
Y3RyX2RyYmdfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICBpZiAoYXJnYyAh
PSAyKSB7CisgICAgcmV0dXJuIHVzYWdlKGFyZ3ZbMF0pOworICB9CisKKyAgRmlsZVRlc3Q6Ok9w
dGlvbnMgb3B0czsKKyAgb3B0cy5wYXRoID0gYXJndlsxXTsKKyAgb3B0cy5jYWxsYmFjayA9IFRl
c3RDVFJEUkJHOworICBvcHRzLnNpbGVudCA9IHRydWU7CisgIG9wdHMuY29tbWVudF9jYWxsYmFj
ayA9IEVjaG9Db21tZW50OworICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9lY2RzYTJfa2V5cGFpcl90ZXN0LmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9lY2RzYTJfa2V5cGFpcl90ZXN0LmNjCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQxZmNlYWRlOWE2ZjA5NTA3MzQxMjM2YWY3ZTM4NTVlNThkMmEzYjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX2VjZHNhMl9rZXlwYWly
X3Rlc3QuY2MKQEAgLTAsMCArMSw5MyBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE3LCBHb29nbGUg
SW5jLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0
cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGll
cy4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhP
UiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdB
UkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9S
IEFOWQorICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0Yg
VVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFD
VCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9S
IElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNP
RlRXQVJFLiAqLworCisvLyBjYXZwX2VjZHNhMl9rZXlwYWlyX3Rlc3QgcHJvY2Vzc2VzIGEgTklT
VCBDQVZQIEVDRFNBMiBLZXlQYWlyIHRlc3QgdmVjdG9yCisvLyByZXF1ZXN0IGZpbGUgYW5kIGVt
aXRzIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlLgorCisjaW5jbHVkZSA8c3RkbGliLmg+CisK
KyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8
b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2VjX2tleS5oPgorI2luY2x1ZGUg
PG9wZW5zc2wvZXJyLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KKworI2luY2x1ZGUgIi4u
L2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgorI2luY2x1ZGUgImNhdnBfdGVzdF91dGlsLmgiCisK
Kworc3RhdGljIGJvb2wgVGVzdEVDRFNBMktleVBhaXIoRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykg
eworICBzdGQ6OnN0cmluZyBuX3N0cjsKKyAgY29uc3QgY2hhciAqZ3JvdXBfc3RyOworICBpbnQg
bmlkID0gR2V0RUNHcm91cE5JREZyb21JbnN0cnVjdGlvbih0LCAmZ3JvdXBfc3RyKTsKKyAgaWYg
KG5pZCA9PSBOSURfdW5kZWYgfHwKKyAgICAgICF0LT5HZXRBdHRyaWJ1dGUoJm5fc3RyLCAiTiIp
KSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgLy8gRG9uJ3QgdXNlIEN1cnJlbnRUZXN0
VG9TdHJpbmcgdG8gYXZvaWQgcHJpbnRpbmcgdGhlIE4uCisgIHByaW50ZigKKyAgICAgICJbJXNd
XHJcblxyXG5bQi40LjIgS2V5IFBhaXIgR2VuZXJhdGlvbiBieSBUZXN0aW5nIENhbmRpZGF0ZXNd
XHJcblxyXG4iLAorICAgICAgZ3JvdXBfc3RyKTsKKworICB1bnNpZ25lZCBsb25nIG4gPSBzdHJ0
b3VsKG5fc3RyLmNfc3RyKCksIG51bGxwdHIsIDEwKTsKKyAgZm9yICh1bnNpZ25lZCBsb25nIGkg
PSAwOyBpIDwgbjsgaSsrKSB7CisgICAgYnNzbDo6VW5pcXVlUHRyPEJJR05VTT4gcXgoQk5fbmV3
KCkpLCBxeShCTl9uZXcoKSk7CisgICAgYnNzbDo6VW5pcXVlUHRyPEVDX0tFWT4ga2V5KEVDX0tF
WV9uZXdfYnlfY3VydmVfbmFtZShuaWQpKTsKKyAgICBpZiAoIWtleSB8fAorICAgICAgICAhRUNf
S0VZX2dlbmVyYXRlX2tleV9maXBzKGtleS5nZXQoKSkgfHwKKyAgICAgICAgIUVDX1BPSU5UX2dl
dF9hZmZpbmVfY29vcmRpbmF0ZXNfR0ZwKEVDX0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ19LRVlfZ2V0MF9w
dWJsaWNfa2V5KGtleS5nZXQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBxeC5nZXQoKSwgcXkuZ2V0KCksIG51bGxwdHIpKSB7CisgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgc2l6ZV90IGRlZ3JlZV9sZW4gPQorICAgICAgICAoRUNfR1JP
VVBfZ2V0X2RlZ3JlZShFQ19LRVlfZ2V0MF9ncm91cChrZXkuZ2V0KCkpKSArIDcpIC8gODsKKyAg
ICBzaXplX3Qgb3JkZXJfbGVuID0KKyAgICAgICAgQk5fbnVtX2J5dGVzKEVDX0dST1VQX2dldDBf
b3JkZXIoRUNfS0VZX2dldDBfZ3JvdXAoa2V5LmdldCgpKSkpOworICAgIHN0ZDo6dmVjdG9yPHVp
bnQ4X3Q+IHF4X2J5dGVzKGRlZ3JlZV9sZW4pLCBxeV9ieXRlcyhkZWdyZWVfbGVuKTsKKyAgICBz
dGQ6OnZlY3Rvcjx1aW50OF90PiBkX2J5dGVzKG9yZGVyX2xlbik7CisgICAgaWYgKCFCTl9ibjJi
aW5fcGFkZGVkKHF4X2J5dGVzLmRhdGEoKSwgcXhfYnl0ZXMuc2l6ZSgpLCBxeC5nZXQoKSkgfHwK
KyAgICAgICAgIUJOX2JuMmJpbl9wYWRkZWQocXlfYnl0ZXMuZGF0YSgpLCBxeV9ieXRlcy5zaXpl
KCksIHF5LmdldCgpKSB8fAorICAgICAgICAhQk5fYm4yYmluX3BhZGRlZChkX2J5dGVzLmRhdGEo
KSwgZF9ieXRlcy5zaXplKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVDX0tFWV9nZXQw
X3ByaXZhdGVfa2V5KGtleS5nZXQoKSkpKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgcHJpbnRmKCJkID0gJXNcclxuUXggPSAlc1xyXG5ReSA9ICVzXHJcblxyXG4iLAorICAg
ICAgICAgICBFbmNvZGVIZXgoZF9ieXRlcy5kYXRhKCksIGRfYnl0ZXMuc2l6ZSgpKS5jX3N0cigp
LAorICAgICAgICAgICBFbmNvZGVIZXgocXhfYnl0ZXMuZGF0YSgpLCBxeF9ieXRlcy5zaXplKCkp
LmNfc3RyKCksCisgICAgICAgICAgIEVuY29kZUhleChxeV9ieXRlcy5kYXRhKCksIHF5X2J5dGVz
LnNpemUoKSkuY19zdHIoKSk7CisgIH0KKworICByZXR1cm4gdHJ1ZTsKK30KKworaW50IGNhdnBf
ZWNkc2EyX2tleXBhaXJfdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICBpZiAo
YXJnYyAhPSAyKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgPHRlc3QgZmlsZT5c
biIsCisgICAgICAgICAgICBhcmd2WzBdKTsKKyAgICByZXR1cm4gMTsKKyAgfQorCisgIEZpbGVU
ZXN0OjpPcHRpb25zIG9wdHM7CisgIG9wdHMucGF0aCA9IGFyZ3ZbMV07CisgIG9wdHMuY2FsbGJh
Y2sgPSBUZXN0RUNEU0EyS2V5UGFpcjsKKyAgb3B0cy5zaWxlbnQgPSB0cnVlOworICBvcHRzLmNv
bW1lbnRfY2FsbGJhY2sgPSBFY2hvQ29tbWVudDsKKyAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRz
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfZWNkc2EyX3Br
dl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9lY2RzYTJfcGt2X3Rlc3Qu
Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDgyM2U3YWY2Mzk3MjIyNmI2OGEwY2RlN2ZmMTg0OGFiMWE4MDQxMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfZWNkc2EyX3Br
dl90ZXN0LmNjCkBAIC0wLDAgKzEsNjYgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xl
IEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlz
dHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0
IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3Bp
ZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRI
T1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRX
QVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9G
IFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJB
Q1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBP
UiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBT
T0ZUV0FSRS4gKi8KKworLy8gY2F2cF9lY2RzYTJfcGt2X3Rlc3QgcHJvY2Vzc2VzIGEgTklTVCBD
QVZQIEVDRFNBMiBQS1YgdGVzdCB2ZWN0b3IgcmVxdWVzdCBmaWxlCisvLyBhbmQgZW1pdHMgdGhl
IGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRl
IDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxv
cGVuc3NsL2VjX2tleS5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisjaW5jbHVkZSA8b3Bl
bnNzbC9uaWQuaD4KKworI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgorI2lu
Y2x1ZGUgImNhdnBfdGVzdF91dGlsLmgiCisKKworc3RhdGljIGJvb2wgVGVzdEVDRFNBMlBLVihG
aWxlVGVzdCAqdCwgdm9pZCAqYXJnKSB7CisgIGludCBuaWQgPSBHZXRFQ0dyb3VwTklERnJvbUlu
c3RydWN0aW9uKHQpOworICBpZiAobmlkID09IE5JRF91bmRlZikgeworICAgIHJldHVybiBmYWxz
ZTsKKyAgfQorICBic3NsOjpVbmlxdWVQdHI8RUNfS0VZPiBrZXkoRUNfS0VZX25ld19ieV9jdXJ2
ZV9uYW1lKG5pZCkpOworICBic3NsOjpVbmlxdWVQdHI8QklHTlVNPiBxeCA9IEdldEJJR05VTSh0
LCAiUXgiKTsKKyAgYnNzbDo6VW5pcXVlUHRyPEJJR05VTT4gcXkgPSBHZXRCSUdOVU0odCwgIlF5
Iik7CisgIGlmICgha2V5IHx8ICFxeCB8fCAhcXkpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K
KworICBpZiAoRUNfS0VZX3NldF9wdWJsaWNfa2V5X2FmZmluZV9jb29yZGluYXRlcyhrZXkuZ2V0
KCksIHF4LmdldCgpLCBxeS5nZXQoKSkpIHsKKyAgICBwcmludGYoIiVzUmVzdWx0ID0gUFxyXG5c
clxuIiwgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCkpOworICB9IGVsc2UgeworICAg
IGNoYXIgYnVmWzI1Nl07CisgICAgRVJSX2Vycm9yX3N0cmluZ19uKEVSUl9nZXRfZXJyb3IoKSwg
YnVmLCBzaXplb2YoYnVmKSk7CisgICAgcHJpbnRmKCIlc1Jlc3VsdCA9IEYgKCVzKVxyXG5cclxu
IiwgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCksIGJ1Zik7CisgIH0KKyAgRVJSX2Ns
ZWFyX2Vycm9yKCk7CisgIHJldHVybiB0cnVlOworfQorCitpbnQgY2F2cF9lY2RzYTJfcGt2X3Rl
c3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgaWYgKGFyZ2MgIT0gMikgeworICAg
IGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0ZXN0IGZpbGU+XG4iLAorICAgICAgICAgICAg
YXJndlswXSk7CisgICAgcmV0dXJuIDE7CisgIH0KKworICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRz
OworICBvcHRzLnBhdGggPSBhcmd2WzFdOworICBvcHRzLmNhbGxiYWNrID0gVGVzdEVDRFNBMlBL
VjsKKyAgb3B0cy5zaWxlbnQgPSB0cnVlOworICBvcHRzLmNvbW1lbnRfY2FsbGJhY2sgPSBFY2hv
Q29tbWVudDsKKyAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRzKTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfZWNkc2EyX3NpZ2dlbl90ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9lY2RzYTJfc2lnZ2VuX3Rlc3QuY2MKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjBjMWM4N2QwNGU1YjQzZWI4ZDRlNmNhYzIzMGYyYWY1NTVhMmQzOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfZWNkc2EyX3NpZ2dlbl90ZXN0LmNjCkBA
IC0wLDAgKzEsMTI0IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCisgKgor
ICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhp
cyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVy
ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlN
UyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJ
TkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBT
UEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5Z
IERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEg
T1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdF
TkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENP
Tk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICov
CisKKy8vIGNhdnBfZWNkc2EyX3NpZ2dlbl90ZXN0IHByb2Nlc3NlcyBOSVNUIENBVlAgRUNEU0Ey
IFNpZ0dlbiBhbmQKKy8vIFNpZ0dlbkNvbXBvbmVudCB0ZXN0IHZlY3RvciByZXF1ZXN0IGZpbGVz
IGFuZCBlbWl0cyB0aGUgY29ycmVzcG9uZGluZworLy8gcmVzcG9uc2UuCisKKyNpbmNsdWRlIDx2
ZWN0b3I+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcnlw
dG8uaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2RpZ2VzdC5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZWNf
a2V5Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9lY2RzYS5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZXJy
Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KKworI2luY2x1ZGUgIi4uL2NyeXB0by9pbnRl
cm5hbC5oIgorI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgorI2luY2x1ZGUg
ImNhdnBfdGVzdF91dGlsLmgiCisKKworc3RhdGljIGJvb2wgVGVzdEVDRFNBMlNpZ0dlbkltcGwo
RmlsZVRlc3QgKnQsIGJvb2wgaXNfY29tcG9uZW50KSB7CisgIGludCBuaWQgPSBHZXRFQ0dyb3Vw
TklERnJvbUluc3RydWN0aW9uKHQpOworICBjb25zdCBFVlBfTUQgKm1kID0gR2V0RGlnZXN0RnJv
bUluc3RydWN0aW9uKHQpOworICBpZiAobmlkID09IE5JRF91bmRlZiB8fCBtZCA9PSBudWxscHRy
KSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHF4
KEJOX25ldygpKSwgcXkoQk5fbmV3KCkpOworICBic3NsOjpVbmlxdWVQdHI8RUNfS0VZPiBrZXko
RUNfS0VZX25ld19ieV9jdXJ2ZV9uYW1lKG5pZCkpOworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBt
c2c7CisgIGlmICghcXggfHwgIXF5IHx8ICFrZXkgfHwKKyAgICAgICFFQ19LRVlfZ2VuZXJhdGVf
a2V5X2ZpcHMoa2V5LmdldCgpKSB8fAorICAgICAgIUVDX1BPSU5UX2dldF9hZmZpbmVfY29vcmRp
bmF0ZXNfR0ZwKEVDX0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNfS0VZX2dldDBfcHVibGljX2tleShrZXkuZ2V0
KCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF4LmdldCgp
LCBxeS5nZXQoKSwgbnVsbHB0cikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygmbXNnLCAiTXNnIikp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICB1aW50OF90IGRpZ2VzdFtFVlBfTUFYX01E
X1NJWkVdOworICB1bnNpZ25lZCBkaWdlc3RfbGVuOworICBpZiAoaXNfY29tcG9uZW50KSB7Cisg
ICAgaWYgKG1zZy5zaXplKCkgIT0gRVZQX01EX3NpemUobWQpKSB7CisgICAgICB0LT5QcmludExp
bmUoIkJhZCBpbnB1dCBsZW5ndGguIik7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IGRpZ2VzdF9sZW4gPSBFVlBfTURfc2l6ZShtZCk7CisgICAgT1BFTlNTTF9tZW1jcHkoZGlnZXN0
LCBtc2cuZGF0YSgpLCBtc2cuc2l6ZSgpKTsKKyAgfSBlbHNlIGlmICghRVZQX0RpZ2VzdChtc2cu
ZGF0YSgpLCBtc2cuc2l6ZSgpLCBkaWdlc3QsICZkaWdlc3RfbGVuLCBtZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBudWxscHRyKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGJz
c2w6OlVuaXF1ZVB0cjxFQ0RTQV9TSUc+IHNpZyhFQ0RTQV9kb19zaWduKGRpZ2VzdCwgZGlnZXN0
X2xlbiwga2V5LmdldCgpKSk7CisgIGlmICghc2lnKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9
CisKKyAgc2l6ZV90IGRlZ3JlZV9sZW4gPQorICAgICAgKEVDX0dST1VQX2dldF9kZWdyZWUoRUNf
S0VZX2dldDBfZ3JvdXAoa2V5LmdldCgpKSkgKyA3KSAvIDg7CisgIHNpemVfdCBvcmRlcl9sZW4g
PQorICAgICAgQk5fbnVtX2J5dGVzKEVDX0dST1VQX2dldDBfb3JkZXIoRUNfS0VZX2dldDBfZ3Jv
dXAoa2V5LmdldCgpKSkpOworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBxeF9ieXRlcyhkZWdyZWVf
bGVuKSwgcXlfYnl0ZXMoZGVncmVlX2xlbik7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHJfYnl0
ZXMob3JkZXJfbGVuKSwgc19ieXRlcyhvcmRlcl9sZW4pOworICBpZiAoIUJOX2JuMmJpbl9wYWRk
ZWQocXhfYnl0ZXMuZGF0YSgpLCBxeF9ieXRlcy5zaXplKCksIHF4LmdldCgpKSB8fAorICAgICAg
IUJOX2JuMmJpbl9wYWRkZWQocXlfYnl0ZXMuZGF0YSgpLCBxeV9ieXRlcy5zaXplKCksIHF5Lmdl
dCgpKSB8fAorICAgICAgIUJOX2JuMmJpbl9wYWRkZWQocl9ieXRlcy5kYXRhKCksIHJfYnl0ZXMu
c2l6ZSgpLCBzaWctPnIpIHx8CisgICAgICAhQk5fYm4yYmluX3BhZGRlZChzX2J5dGVzLmRhdGEo
KSwgc19ieXRlcy5zaXplKCksIHNpZy0+cykpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKwor
ICBwcmludGYoIiVzUXggPSAlc1xyXG5ReSA9ICVzXHJcblIgPSAlc1xyXG5TID0gJXNcclxuXHJc
biIsCisgICAgICAgICB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIoKSwKKyAgICAgICAg
IEVuY29kZUhleChxeF9ieXRlcy5kYXRhKCksIHF4X2J5dGVzLnNpemUoKSkuY19zdHIoKSwKKyAg
ICAgICAgIEVuY29kZUhleChxeV9ieXRlcy5kYXRhKCksIHF5X2J5dGVzLnNpemUoKSkuY19zdHIo
KSwKKyAgICAgICAgIEVuY29kZUhleChyX2J5dGVzLmRhdGEoKSwgcl9ieXRlcy5zaXplKCkpLmNf
c3RyKCksCisgICAgICAgICBFbmNvZGVIZXgoc19ieXRlcy5kYXRhKCksIHNfYnl0ZXMuc2l6ZSgp
KS5jX3N0cigpKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIFRlc3RFQ0RTQTJT
aWdHZW4oRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgeworICByZXR1cm4gVGVzdEVDRFNBMlNpZ0dl
bkltcGwodCwgZmFsc2UpOworfQorCitzdGF0aWMgYm9vbCBUZXN0RUNEU0EyU2lnR2VuQ29tcG9u
ZW50KEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsKKyAgcmV0dXJuIFRlc3RFQ0RTQTJTaWdHZW5J
bXBsKHQsIHRydWUpOworfQorCitpbnQgY2F2cF9lY2RzYTJfc2lnZ2VuX3Rlc3RfbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgaWYgKGFyZ2MgIT0gMykgeworICAgIGZwcmludGYoc3Rk
ZXJyLCAidXNhZ2U6ICVzIChTaWdHZW58U2lnR2VuQ29tcG9uZW50KSA8dGVzdCBmaWxlPlxuIiwK
KyAgICAgICAgICAgIGFyZ3ZbMF0pOworICAgIHJldHVybiAxOworICB9CisKKyAgc3RhdGljIGJv
b2wgKCp0ZXN0X2Z1bmMpKEZpbGVUZXN0ICosIHZvaWQgKik7CisgIGlmIChzdHJjbXAoYXJndlsx
XSwgIlNpZ0dlbiIpID09IDApIHsKKyAgICB0ZXN0X2Z1bmMgPSBUZXN0RUNEU0EyU2lnR2VuOwor
ICB9IGVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAiU2lnR2VuQ29tcG9uZW50IikgPT0gMCkgewor
ICAgIHRlc3RfZnVuYyA9IFRlc3RFQ0RTQTJTaWdHZW5Db21wb25lbnQ7CisgIH0gZWxzZSB7Cisg
ICAgZnByaW50ZihzdGRlcnIsICJVbmtub3duIHRlc3QgdHlwZTogJXNcbiIsIGFyZ3ZbMV0pOwor
ICAgIHJldHVybiAxOworICB9CisKKyAgRmlsZVRlc3Q6Ok9wdGlvbnMgb3B0czsKKyAgb3B0cy5w
YXRoID0gYXJndlsyXTsKKyAgb3B0cy5jYWxsYmFjayA9IHRlc3RfZnVuYzsKKyAgb3B0cy5zaWxl
bnQgPSB0cnVlOworICBvcHRzLmNvbW1lbnRfY2FsbGJhY2sgPSBFY2hvQ29tbWVudDsKKyAgcmV0
dXJuIEZpbGVUZXN0TWFpbihvcHRzKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29s
cy9jYXZwL2NhdnBfZWNkc2EyX3NpZ3Zlcl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2Nh
dnAvY2F2cF9lY2RzYTJfc2lndmVyX3Rlc3QuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNmZDRiMWVhZjI4YmVh
ODE0M2E2NDdkNjg0MTg4OGE0ZWY4MzE2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2Zp
cHN0b29scy9jYXZwL2NhdnBfZWNkc2EyX3NpZ3Zlcl90ZXN0LmNjCkBAIC0wLDAgKzEsODQgQEAK
Ky8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBh
bnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJv
dmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElT
IFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVT
CisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBX
QVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJUkVDVCwg
SU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hB
VFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVU
SEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9S
VElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRI
RSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworLy8gY2F2cF9lY2Rz
YTJfc2lndmVyX3Rlc3QgcHJvY2Vzc2VzIGEgTklTVCBDQVZQIEVDRFNBMiBTaWdWZXIgdGVzdCB2
ZWN0b3IKKy8vIHJlcXVlc3QgZmlsZSBhbmQgZW1pdHMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9u
c2UuCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5j
bHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2RpZ2VzdC5oPgorI2lu
Y2x1ZGUgPG9wZW5zc2wvZWNfa2V5Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9lY2RzYS5oPgorI2lu
Y2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KKworI2luY2x1
ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgorI2luY2x1ZGUgImNhdnBfdGVzdF91dGls
LmgiCisKKworc3RhdGljIGJvb2wgVGVzdEVDRFNBMlNpZ1ZlcihGaWxlVGVzdCAqdCwgdm9pZCAq
YXJnKSB7CisgIGludCBuaWQgPSBHZXRFQ0dyb3VwTklERnJvbUluc3RydWN0aW9uKHQpOworICBj
b25zdCBFVlBfTUQgKm1kID0gR2V0RGlnZXN0RnJvbUluc3RydWN0aW9uKHQpOworICBpZiAobmlk
ID09IE5JRF91bmRlZiB8fCBtZCA9PSBudWxscHRyKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9
CisgIGJzc2w6OlVuaXF1ZVB0cjxFQ0RTQV9TSUc+IHNpZyhFQ0RTQV9TSUdfbmV3KCkpOworICBi
c3NsOjpVbmlxdWVQdHI8RUNfS0VZPiBrZXkoRUNfS0VZX25ld19ieV9jdXJ2ZV9uYW1lKG5pZCkp
OworICBic3NsOjpVbmlxdWVQdHI8QklHTlVNPiBxeCA9IEdldEJJR05VTSh0LCAiUXgiKTsKKyAg
YnNzbDo6VW5pcXVlUHRyPEJJR05VTT4gcXkgPSBHZXRCSUdOVU0odCwgIlF5Iik7CisgIGJzc2w6
OlVuaXF1ZVB0cjxCSUdOVU0+IHIgPSBHZXRCSUdOVU0odCwgIlIiKTsKKyAgYnNzbDo6VW5pcXVl
UHRyPEJJR05VTT4gcyA9IEdldEJJR05VTSh0LCAiUyIpOworICBzdGQ6OnZlY3Rvcjx1aW50OF90
PiBtc2c7CisgIHVpbnQ4X3QgZGlnZXN0W0VWUF9NQVhfTURfU0laRV07CisgIHVuc2lnbmVkIGRp
Z2VzdF9sZW47CisgIGlmICghc2lnIHx8ICFrZXkgfHwgIXF4IHx8ICFxeSB8fCAhciB8fCAhcyB8
fAorICAgICAgIUVDX0tFWV9zZXRfcHVibGljX2tleV9hZmZpbmVfY29vcmRpbmF0ZXMoa2V5Lmdl
dCgpLCBxeC5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHF5LmdldCgpKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZtc2csICJNc2ciKSB8fAor
ICAgICAgIUVWUF9EaWdlc3QobXNnLmRhdGEoKSwgbXNnLnNpemUoKSwgZGlnZXN0LCAmZGlnZXN0
X2xlbiwgbWQsIG51bGxwdHIpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgQk5fZnJl
ZShzaWctPnIpOworICBzaWctPnIgPSByLnJlbGVhc2UoKTsKKyAgQk5fZnJlZShzaWctPnMpOwor
ICBzaWctPnMgPSBzLnJlbGVhc2UoKTsKKworICBpZiAoRUNEU0FfZG9fdmVyaWZ5KGRpZ2VzdCwg
ZGlnZXN0X2xlbiwgc2lnLmdldCgpLCBrZXkuZ2V0KCkpKSB7CisgICAgcHJpbnRmKCIlc1Jlc3Vs
dCA9IFBcclxuXHJcbiIsIHQtPkN1cnJlbnRUZXN0VG9TdHJpbmcoKS5jX3N0cigpKTsKKyAgfSBl
bHNlIHsKKyAgICBjaGFyIGJ1ZlsyNTZdOworICAgIEVSUl9lcnJvcl9zdHJpbmdfbihFUlJfZ2V0
X2Vycm9yKCksIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgIHByaW50ZigiJXNSZXN1bHQgPSBGICgl
cylcclxuXHJcbiIsIHQtPkN1cnJlbnRUZXN0VG9TdHJpbmcoKS5jX3N0cigpLCBidWYpOworICB9
CisgIEVSUl9jbGVhcl9lcnJvcigpOworICByZXR1cm4gdHJ1ZTsKK30KKworaW50IGNhdnBfZWNk
c2EyX3NpZ3Zlcl90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIGlmIChhcmdj
ICE9IDIpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyA8dGVzdCBmaWxlPlxuIiwK
KyAgICAgICAgICAgIGFyZ3ZbMF0pOworICAgIHJldHVybiAxOworICB9CisKKyAgRmlsZVRlc3Q6
Ok9wdGlvbnMgb3B0czsKKyAgb3B0cy5wYXRoID0gYXJndlsxXTsKKyAgb3B0cy5jYWxsYmFjayA9
IFRlc3RFQ0RTQTJTaWdWZXI7CisgIG9wdHMuc2lsZW50ID0gdHJ1ZTsKKyAgb3B0cy5jb21tZW50
X2NhbGxiYWNrID0gRWNob0NvbW1lbnQ7CisgIHJldHVybiBGaWxlVGVzdE1haW4ob3B0cyk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX2htYWNfdGVzdC5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfaG1hY190ZXN0LmNjCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5
YzdlMTAzNThmNWE4YTBmNzEzOGJhNmI2ZmVmZTBjMWUyYzQ4NDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX2htYWNfdGVzdC5jYwpAQCAtMCwwICsxLDEw
MyBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE3LCBHb29nbGUgSW5jLgorICoKKyAqIFBlcm1pc3Np
b24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUg
Zm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVk
LCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJB
TlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorICogU1BFQ0lBTCwgRElS
RUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisg
KiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMs
IFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhF
UiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJ
VEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLworCisvLyBjYXZw
X2htYWNfdGVzdCBwcm9jZXNzZXMgYSBOSVNUIENBVlAgSE1BQyB0ZXN0IHZlY3RvciByZXF1ZXN0
IGZpbGUgYW5kIGVtaXRzCisvLyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZS4KKworI2luY2x1
ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxv
cGVuc3NsL2htYWMuaD4KKworI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgor
I2luY2x1ZGUgImNhdnBfdGVzdF91dGlsLmgiCisKKworc3RhdGljIGJvb2wgVGVzdEhNQUMoRmls
ZVRlc3QgKnQsIHZvaWQgKmFyZykgeworICBzdGQ6OnN0cmluZyBtZF9sZW5fc3RyOworICBpZiAo
IXQtPkdldEluc3RydWN0aW9uKCZtZF9sZW5fc3RyLCAiTCIpKSB7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIGNvbnN0IHNpemVfdCBtZF9sZW4gPSBzdHJ0b3VsKG1kX2xlbl9zdHIuY19zdHIo
KSwgbnVsbHB0ciwgMCk7CisKKyAgY29uc3QgRVZQX01EICptZDsKKyAgc3dpdGNoIChtZF9sZW4p
IHsKKyAgICBjYXNlIDIwOgorICAgICAgbWQgPSBFVlBfc2hhMSgpOworICAgICAgYnJlYWs7Cisg
ICAgY2FzZSAyODoKKyAgICAgIG1kID0gRVZQX3NoYTIyNCgpOworICAgICAgYnJlYWs7CisgICAg
Y2FzZSAzMjoKKyAgICAgIG1kID0gRVZQX3NoYTI1NigpOworICAgICAgYnJlYWs7CisgICAgY2Fz
ZSA0ODoKKyAgICAgIG1kID0gRVZQX3NoYTM4NCgpOworICAgICAgYnJlYWs7CisgICAgY2FzZSA2
NDoKKyAgICAgIG1kID0gRVZQX3NoYTUxMigpOworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK
KyAgICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHN0ZDo6c3RyaW5nIGNvdW50X3N0ciwga19s
ZW5fc3RyLCB0X2xlbl9zdHI7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleSwgbXNnOworICBp
ZiAoIXQtPkdldEF0dHJpYnV0ZSgmY291bnRfc3RyLCAiQ291bnQiKSB8fAorICAgICAgIXQtPkdl
dEF0dHJpYnV0ZSgma19sZW5fc3RyLCAiS2xlbiIpIHx8CisgICAgICAhdC0+R2V0QXR0cmlidXRl
KCZ0X2xlbl9zdHIsICJUbGVuIikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygma2V5LCAiS2V5Iikg
fHwKKyAgICAgICF0LT5HZXRCeXRlcygmbXNnLCAiTXNnIikpIHsKKyAgICByZXR1cm4gZmFsc2U7
CisgIH0KKworICBzaXplX3Qga19sZW4gPSBzdHJ0b3VsKGtfbGVuX3N0ci5jX3N0cigpLCBudWxs
cHRyLCAwKTsKKyAgc2l6ZV90IHRfbGVuID0gc3RydG91bCh0X2xlbl9zdHIuY19zdHIoKSwgbnVs
bHB0ciwgMCk7CisgIGlmIChrZXkuc2l6ZSgpIDwga19sZW4pIHsKKyAgICByZXR1cm4gZmFsc2U7
CisgIH0KKyAgdW5zaWduZWQgb3V0X2xlbjsKKyAgdWludDhfdCBvdXRbRVZQX01BWF9NRF9TSVpF
XTsKKyAgaWYgKEhNQUMobWQsIGtleS5kYXRhKCksIGtfbGVuLCBtc2cuZGF0YSgpLCBtc2cuc2l6
ZSgpLCBvdXQsICZvdXRfbGVuKSA9PQorICAgICAgTlVMTCkgeworICAgIHJldHVybiBmYWxzZTsK
KyAgfQorCisgIGlmIChvdXRfbGVuIDwgdF9sZW4pIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K
KworICBwcmludGYoIiVzIiwgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCkpOworICBw
cmludGYoIk1hYyA9ICVzXHJcblxyXG4iLCBFbmNvZGVIZXgob3V0LCB0X2xlbikuY19zdHIoKSk7
CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJnKSB7Cisg
IGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0ZXN0IGZpbGU+XG4iLCBhcmcpOworICByZXR1
cm4gMTsKK30KKworaW50IGNhdnBfaG1hY190ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2
KSB7CisgIGlmIChhcmdjICE9IDIpIHsKKyAgICByZXR1cm4gdXNhZ2UoYXJndlswXSk7CisgIH0K
KworICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRzOworICBvcHRzLnBhdGggPSBhcmd2WzFdOworICBv
cHRzLmNhbGxiYWNrID0gVGVzdEhNQUM7CisgIG9wdHMuc2lsZW50ID0gdHJ1ZTsKKyAgb3B0cy5j
b21tZW50X2NhbGxiYWNrID0gRWNob0NvbW1lbnQ7CisgIHJldHVybiBGaWxlVGVzdE1haW4ob3B0
cyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX2thc190ZXN0
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9rYXNfdGVzdC5jYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mODliYzk3MzEwMDYzOGZlYmUzNmYxZDA2NjM1YzIzYTU2YmM5NDIzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9rYXNfdGVzdC5jYwpAQCAtMCwwICsx
LDE1MyBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE4LCBHb29nbGUgSW5jLgorICoKKyAqIFBlcm1p
c3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdh
cmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFu
dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdB
UlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorICogU1BFQ0lBTCwg
RElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VT
CisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJ
VFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBP
VEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9O
IFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLworCisvLyBj
YXZwX2thc190ZXN0IHByb2Nlc3NlcyBOSVNUIENBVlAgRUNDIEtBUyB0ZXN0IHZlY3RvciByZXF1
ZXN0IGZpbGVzIGFuZAorLy8gZW1pdHMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCisKKyNp
bmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3Bl
bnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2RpZ2VzdC5oPgorI2luY2x1ZGUgPG9w
ZW5zc2wvZWNkaC5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZWNkc2EuaD4KKyNpbmNsdWRlIDxvcGVu
c3NsL2VjX2tleS5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisjaW5jbHVkZSA8b3BlbnNz
bC9uaWQuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3NoYS5oPgorCisjaW5jbHVkZSAiLi4vY3J5cHRv
L2ludGVybmFsLmgiCisjaW5jbHVkZSAiLi4vY3J5cHRvL3Rlc3QvZmlsZV90ZXN0LmgiCisjaW5j
bHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKKworCitzdGF0aWMgYm9vbCBUZXN0S0FTKEZpbGVUZXN0
ICp0LCB2b2lkICphcmcpIHsKKyAgY29uc3QgYm9vbCB2YWxpZGF0ZSA9ICpyZWludGVycHJldF9j
YXN0PGJvb2wgKj4oYXJnKTsKKworICBpbnQgbmlkID0gTklEX3VuZGVmOworICBzaXplX3QgZGln
ZXN0X2xlbiA9IDA7CisKKyAgaWYgKHQtPkhhc0luc3RydWN0aW9uKCJFQiAtIFNIQTIyNCIpKSB7
CisgICAgbmlkID0gTklEX3NlY3AyMjRyMTsKKyAgICBkaWdlc3RfbGVuID0gU0hBMjI0X0RJR0VT
VF9MRU5HVEg7CisgIH0gZWxzZSBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIkVDIC0gU0hBMjU2Iikp
IHsKKyAgICBuaWQgPSBOSURfWDlfNjJfcHJpbWUyNTZ2MTsKKyAgICBkaWdlc3RfbGVuID0gU0hB
MjU2X0RJR0VTVF9MRU5HVEg7CisgIH0gZWxzZSBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIkVEIC0g
U0hBMzg0IikpIHsKKyAgICBuaWQgPSBOSURfc2VjcDM4NHIxOworICAgIGRpZ2VzdF9sZW4gPSBT
SEEzODRfRElHRVNUX0xFTkdUSDsKKyAgfSBlbHNlIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiRUUg
LSBTSEE1MTIiKSkgeworICAgIG5pZCA9IE5JRF9zZWNwNTIxcjE7CisgICAgZGlnZXN0X2xlbiA9
IFNIQTUxMl9ESUdFU1RfTEVOR1RIOworICB9IGVsc2UgeworICAgIHJldHVybiBmYWxzZTsKKyAg
fQorCisgIGlmICghdC0+SGFzQXR0cmlidXRlKCJDT1VOVCIpKSB7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisKKyAgYnNzbDo6VW5pcXVlUHRyPEJJR05VTT4gdGhlaXJfeChHZXRCSUdOVU0odCwg
IlFlQ0FWU3giKSk7CisgIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHRoZWlyX3koR2V0QklHTlVN
KHQsICJRZUNBVlN5IikpOworICBic3NsOjpVbmlxdWVQdHI8RUNfS0VZPiBlY19rZXkoRUNfS0VZ
X25ld19ieV9jdXJ2ZV9uYW1lKG5pZCkpOworICBic3NsOjpVbmlxdWVQdHI8Qk5fQ1RYPiBjdHgo
Qk5fQ1RYX25ldygpKTsKKyAgaWYgKCF0aGVpcl94IHx8ICF0aGVpcl95IHx8ICFlY19rZXkgfHwg
IWN0eCkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGNvbnN0IEVDX0dST1VQICpjb25z
dCBncm91cCA9IEVDX0tFWV9nZXQwX2dyb3VwKGVjX2tleS5nZXQoKSk7CisgIGJzc2w6OlVuaXF1
ZVB0cjxFQ19QT0lOVD4gdGhlaXJfcG9pbnQoRUNfUE9JTlRfbmV3KGdyb3VwKSk7CisgIGlmICgh
dGhlaXJfcG9pbnQgfHwKKyAgICAgICFFQ19QT0lOVF9zZXRfYWZmaW5lX2Nvb3JkaW5hdGVzX0dG
cCgKKyAgICAgICAgICBncm91cCwgdGhlaXJfcG9pbnQuZ2V0KCksIHRoZWlyX3guZ2V0KCksIHRo
ZWlyX3kuZ2V0KCksIGN0eC5nZXQoKSkpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBp
ZiAodmFsaWRhdGUpIHsKKyAgICBic3NsOjpVbmlxdWVQdHI8QklHTlVNPiBvdXJfayhHZXRCSUdO
VU0odCwgImRlSVVUIikpOworICAgIGlmICghb3VyX2sgfHwKKyAgICAgICAgIUVDX0tFWV9zZXRf
cHJpdmF0ZV9rZXkoZWNfa2V5LmdldCgpLCBvdXJfay5nZXQoKSkgfHwKKyAgICAgICAgLy8gVGhl
c2UgYXR0cmlidXRlcyBhcmUgaWdub3JlZC4KKyAgICAgICAgIXQtPkhhc0F0dHJpYnV0ZSgiUWVJ
VVR4IikgfHwKKyAgICAgICAgIXQtPkhhc0F0dHJpYnV0ZSgiUWVJVVR5IikpIHsKKyAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSBpZiAoIUVDX0tFWV9nZW5lcmF0ZV9rZXkoZWNf
a2V5LmdldCgpKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHVpbnQ4X3QgZGlnZXN0
W0VWUF9NQVhfTURfU0laRV07CisgIGlmICghRUNESF9jb21wdXRlX2tleV9maXBzKGRpZ2VzdCwg
ZGlnZXN0X2xlbiwgdGhlaXJfcG9pbnQuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVjX2tleS5nZXQoKSkpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBpZiAodmFs
aWRhdGUpIHsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBleHBlY3RlZF9zaGFyZWRfYnl0ZXM7
CisgICAgaWYgKCF0LT5HZXRCeXRlcygmZXhwZWN0ZWRfc2hhcmVkX2J5dGVzLCAiQ0FWU0hhc2ha
WiIpKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGNvbnN0IGJvb2wgb2sgPQor
ICAgICAgICBkaWdlc3RfbGVuID09IGV4cGVjdGVkX3NoYXJlZF9ieXRlcy5zaXplKCkgJiYKKyAg
ICAgICAgT1BFTlNTTF9tZW1jbXAoZGlnZXN0LCBleHBlY3RlZF9zaGFyZWRfYnl0ZXMuZGF0YSgp
LCBkaWdlc3RfbGVuKSA9PSAwOworCisgICAgcHJpbnRmKCIlc0lVVEhhc2haWiA9ICVzXHJcblJl
c3VsdCA9ICVjXHJcblxyXG5cclxuIiwKKyAgICAgICAgICAgdC0+Q3VycmVudFRlc3RUb1N0cmlu
ZygpLmNfc3RyKCksCisgICAgICAgICAgIEVuY29kZUhleChkaWdlc3QsIGRpZ2VzdF9sZW4pLmNf
c3RyKCksIG9rID8gJ1AnIDogJ0YnKTsKKyAgfSBlbHNlIHsKKyAgICBjb25zdCBFQ19QT0lOVCAq
cHViID0gRUNfS0VZX2dldDBfcHVibGljX2tleShlY19rZXkuZ2V0KCkpOworICAgIGJzc2w6OlVu
aXF1ZVB0cjxCSUdOVU0+IHgoQk5fbmV3KCkpOworICAgIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+
IHkoQk5fbmV3KCkpOworICAgIGlmICgheCB8fCAheSB8fAorICAgICAgICAhRUNfUE9JTlRfZ2V0
X2FmZmluZV9jb29yZGluYXRlc19HRnAoZ3JvdXAsIHB1YiwgeC5nZXQoKSwgeS5nZXQoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5nZXQoKSkpIHsK
KyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgYnNzbDo6VW5pcXVlUHRyPGNoYXI+IHhf
aGV4KEJOX2JuMmhleCh4LmdldCgpKSk7CisgICAgYnNzbDo6VW5pcXVlUHRyPGNoYXI+IHlfaGV4
KEJOX2JuMmhleCh5LmdldCgpKSk7CisKKyAgICBwcmludGYoIiVzUWVJVVR4ID0gJXNcclxuUWVJ
VVR5ID0gJXNcclxuSGFzaFpaID0gJXNcclxuIiwKKyAgICAgICAgICAgdC0+Q3VycmVudFRlc3RU
b1N0cmluZygpLmNfc3RyKCksIHhfaGV4LmdldCgpLCB5X2hleC5nZXQoKSwKKyAgICAgICAgICAg
RW5jb2RlSGV4KGRpZ2VzdCwgZGlnZXN0X2xlbikuY19zdHIoKSk7CisgIH0KKworICByZXR1cm4g
dHJ1ZTsKK30KKworaW50IGNhdnBfa2FzX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
IHsKKyAgaWYgKGFyZ2MgIT0gMykgeworICAgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzICh2
YWxpZGl0eXxmdW5jdGlvbikgPHRlc3QgZmlsZT5cbiIsCisgICAgICAgICAgICBhcmd2WzBdKTsK
KyAgICByZXR1cm4gMTsKKyAgfQorCisgIGJvb2wgdmFsaWRpdHk7CisgIGlmIChzdHJjbXAoYXJn
dlsxXSwgInZhbGlkaXR5IikgPT0gMCkgeworICAgIHZhbGlkaXR5ID0gdHJ1ZTsKKyAgfSBlbHNl
IGlmIChzdHJjbXAoYXJndlsxXSwgImZ1bmN0aW9uIikgPT0gMCkgeworICAgIHZhbGlkaXR5ID0g
ZmFsc2U7CisgIH0gZWxzZSB7CisgICAgZnByaW50ZihzdGRlcnIsICJVbmtub3duIHRlc3QgdHlw
ZTogJXNcbiIsIGFyZ3ZbMV0pOworICAgIHJldHVybiAxOworICB9CisKKyAgRmlsZVRlc3Q6Ok9w
dGlvbnMgb3B0czsKKyAgb3B0cy5wYXRoID0gYXJndlsyXTsKKyAgb3B0cy5hcmcgPSAmdmFsaWRp
dHk7CisgIG9wdHMuY2FsbGJhY2sgPSBUZXN0S0FTOworICBvcHRzLnNpbGVudCA9IHRydWU7Cisg
IG9wdHMuY29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50OworICBvcHRzLmlzX2thc190ZXN0
ID0gdHJ1ZTsKKyAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRzKTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfa2V5d3JhcF90ZXN0LmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlw
c3Rvb2xzL2NhdnAvY2F2cF9rZXl3cmFwX3Rlc3QuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRhYmNjZDRmNTAy
NWFjYWY3YjcyZmI1NzdiZmQ2OGYwNTc5ZTRmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGls
L2ZpcHN0b29scy9jYXZwL2NhdnBfa2V5d3JhcF90ZXN0LmNjCkBAIC0wLDAgKzEsMTY2IEBACisv
KiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1
c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55
CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3Zp
ZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwor
ICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FS
UkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElO
RElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRT
T0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhF
UiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJ
T1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUg
VVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKy8vIGNhdnBfa2V5d3Jh
cF90ZXN0IHByb2Nlc3NlcyBhIE5JU1QgQ0FWUCBBRVMgdGVzdCB2ZWN0b3IgcmVxdWVzdCBmaWxl
IGFuZAorLy8gZW1pdHMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCisKKyNpbmNsdWRlIDxz
dGRsaWIuaD4KKworI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9j
cnlwdG8uaD4KKworI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIgorI2luY2x1
ZGUgImNhdnBfdGVzdF91dGlsLmgiCisKKworbmFtZXNwYWNlIHsKKworc3RydWN0IFRlc3RDdHgg
eworICBib29sIGVuY3J5cHQ7CisgIGJvb2wgcGFkZGluZzsKK307CisKK30gIC8vIG5hbWVzcGFj
ZQorCitzdGF0aWMgYm9vbCBBRVNLZXlXcmFwKHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICpvdXQsIGJv
b2wgZW5jcnlwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gJmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gJmluKSB7CisgIHNpemVfdCBrZXlfYml0cyA9IGtleS5zaXplKCkgKiA4OworICBpZiAo
a2V5X2JpdHMgIT0gMTI4ICYmIGtleV9iaXRzICE9IDE5MiAmJiBrZXlfYml0cyAhPSAyNTYpIHsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQUVTX0tFWSBhZXNfa2V5OworCisgIGlmIChlbmNy
eXB0KSB7CisgICAgb3V0LT5yZXNpemUoaW4uc2l6ZSgpICsgOCk7CisgICAgaWYgKEFFU19zZXRf
ZW5jcnlwdF9rZXkoa2V5LmRhdGEoKSwga2V5X2JpdHMsICZhZXNfa2V5KSB8fAorICAgICAgICBB
RVNfd3JhcF9rZXkoJmFlc19rZXksIG51bGxwdHIsIG91dC0+ZGF0YSgpLCBpbi5kYXRhKCksIGlu
LnNpemUoKSkgPT0KKyAgICAgICAgICAgIC0xKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICB9IGVsc2UgeworICAgIG91dC0+cmVzaXplKGluLnNpemUoKSAtIDgpOworICAgIGlmIChB
RVNfc2V0X2RlY3J5cHRfa2V5KGtleS5kYXRhKCksIGtleV9iaXRzLCAmYWVzX2tleSkgfHwKKyAg
ICAgICAgQUVTX3Vud3JhcF9rZXkoJmFlc19rZXksIG51bGxwdHIsIG91dC0+ZGF0YSgpLCBpbi5k
YXRhKCksIGluLnNpemUoKSkgPT0KKyAgICAgICAgICAgIC0xKSB7CisgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICB9CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIEFFU0tl
eVdyYXBXaXRoUGFkZGluZyhzdGQ6OnZlY3Rvcjx1aW50OF90PiAqb3V0LCBib29sIGVuY3J5cHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gJmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6
OnZlY3Rvcjx1aW50OF90PiAmaW4pIHsKKyAgY29uc3Qgc2l6ZV90IGtleV9iaXRzID0ga2V5LnNp
emUoKSAqIDg7CisgIGlmIChrZXlfYml0cyAhPSAxMjggJiYga2V5X2JpdHMgIT0gMTkyICYmIGtl
eV9iaXRzICE9IDI1NikgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBBRVNfS0VZIGFlc19r
ZXk7CisKKyAgc2l6ZV90IG91dF9sZW47CisgIGlmIChlbmNyeXB0KSB7CisgICAgb3V0LT5yZXNp
emUoaW4uc2l6ZSgpICsgMTUpOworICAgIGlmIChBRVNfc2V0X2VuY3J5cHRfa2V5KGtleS5kYXRh
KCksIGtleV9iaXRzLCAmYWVzX2tleSkgfHwKKyAgICAgICAgIUFFU193cmFwX2tleV9wYWRkZWQo
JmFlc19rZXksIG91dC0+ZGF0YSgpLCAmb3V0X2xlbiwgb3V0LT5zaXplKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluLmRhdGEoKSwgaW4uc2l6ZSgpKSkgeworICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBvdXQtPnJlc2l6ZShpbi5zaXplKCkpOwor
ICAgIGlmIChBRVNfc2V0X2RlY3J5cHRfa2V5KGtleS5kYXRhKCksIGtleV9iaXRzLCAmYWVzX2tl
eSkgfHwKKyAgICAgICAgIUFFU191bndyYXBfa2V5X3BhZGRlZCgmYWVzX2tleSwgb3V0LT5kYXRh
KCksICZvdXRfbGVuLCBvdXQtPnNpemUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbi5kYXRhKCksIGluLnNpemUoKSkpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
IH0KKworICBvdXQtPnJlc2l6ZShvdXRfbGVuKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRp
YyBib29sIFRlc3RDaXBoZXIoRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgeworICBUZXN0Q3R4ICpj
dHggPSByZWludGVycHJldF9jYXN0PFRlc3RDdHggKj4oYXJnKTsKKworICBzdGQ6OnN0cmluZyBj
b3VudCwgdW51c2VkLCBpbl9sYWJlbCA9IGN0eC0+ZW5jcnlwdCA/ICJQIiA6ICJDIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X2xhYmVsID0gY3R4LT5lbmNyeXB0ID8gIkMi
IDogIlAiOworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBrZXksIGluLCByZXN1bHQ7CisgIC8vIGNs
YW5nLWZvcm1hdCBvZmYKKyAgaWYgKCF0LT5HZXRJbnN0cnVjdGlvbigmdW51c2VkLCAiUExBSU5U
RVhUIExFTkdUSCIpIHx8CisgICAgICAhdC0+R2V0QXR0cmlidXRlKCZjb3VudCwgIkNPVU5UIikg
fHwKKyAgICAgICF0LT5HZXRCeXRlcygma2V5LCAiSyIpIHx8CisgICAgICAhdC0+R2V0Qnl0ZXMo
JmluLCBpbl9sYWJlbCkpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgLy8gY2xhbmctZm9y
bWF0IG9uCisKKyAgYXV0byB3cmFwX2Z1bmN0aW9uID0gQUVTS2V5V3JhcDsKKyAgaWYgKGN0eC0+
cGFkZGluZykgeworICAgIHdyYXBfZnVuY3Rpb24gPSBBRVNLZXlXcmFwV2l0aFBhZGRpbmc7Cisg
IH0KKworICBwcmludGYoIiVzIiwgdC0+Q3VycmVudFRlc3RUb1N0cmluZygpLmNfc3RyKCkpOwor
ICBpZiAoIXdyYXBfZnVuY3Rpb24oJnJlc3VsdCwgY3R4LT5lbmNyeXB0LCBrZXksIGluKSkgewor
ICAgIGlmIChjdHgtPmVuY3J5cHQpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2Ug
eworICAgICAgcHJpbnRmKCJGQUlMXHJcblxyXG4iKTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAg
cHJpbnRmKCIlcyA9ICVzXHJcblxyXG4iLCByZXN1bHRfbGFiZWwuY19zdHIoKSwKKyAgICAgICAg
ICAgRW5jb2RlSGV4KHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpLmNfc3RyKCkpOworICB9
CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJnKSB7Cisg
IGZwcmludGYoCisgICAgICBzdGRlcnIsCisgICAgICAidXNhZ2U6ICVzIChlbmN8ZGVjfGVuYy1w
YWR8ZGVjLXBhZCkgKDEyOHwxOTJ8MjU2KSA8dGVzdCBmaWxlPlxuIiwKKyAgICAgIGFyZyk7Cisg
IHJldHVybiAxOworfQorCitpbnQgY2F2cF9rZXl3cmFwX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hh
ciAqKmFyZ3YpIHsKKyAgaWYgKGFyZ2MgIT0gNCkgeworICAgIHJldHVybiB1c2FnZShhcmd2WzBd
KTsKKyAgfQorCisgIGNvbnN0IHN0ZDo6c3RyaW5nIG9wKGFyZ3ZbMV0pOworICBib29sIGVuY3J5
cHQgPSBmYWxzZTsKKyAgYm9vbCBwYWRkaW5nID0gZmFsc2U7CisgIGlmIChvcCA9PSAiZW5jIikg
eworICAgIGVuY3J5cHQgPSB0cnVlOworICB9IGVsc2UgaWYgKG9wID09ICJkZWMiKSB7CisgIH0g
ZWxzZSBpZiAob3AgPT0gImVuYy1wYWQiKSB7CisgICAgZW5jcnlwdCA9IHRydWU7CisgICAgcGFk
ZGluZyA9IHRydWU7CisgIH0gZWxzZSBpZiAob3AgPT0gImRlYy1wYWQiKSB7CisgICAgcGFkZGlu
ZyA9IHRydWU7CisgIH0gZWxzZSB7CisgICAgcmV0dXJuIHVzYWdlKGFyZ3ZbMF0pOworICB9CisK
KyAgVGVzdEN0eCBjdHggPSB7ZW5jcnlwdCwgcGFkZGluZ307CisKKyAgRmlsZVRlc3Q6Ok9wdGlv
bnMgb3B0czsKKyAgb3B0cy5wYXRoID0gYXJndlszXTsKKyAgb3B0cy5jYWxsYmFjayA9IFRlc3RD
aXBoZXI7CisgIG9wdHMuYXJnID0gJmN0eDsKKyAgb3B0cy5zaWxlbnQgPSB0cnVlOworICBvcHRz
LmNvbW1lbnRfY2FsbGJhY2sgPSBFY2hvQ29tbWVudDsKKyAgcmV0dXJuIEZpbGVUZXN0TWFpbihv
cHRzKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfbWFpbi5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfbWFpbi5jYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGRi
ZDY5ZDRhM2ZmMjUwNjBkMjIwZjhjNzc5ZGE4N2JlMTEwMjY0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9tYWluLmNjCkBAIC0wLDAgKzEsNzMgQEAKKy8q
IENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkK
KyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlk
ZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBS
T1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisg
KiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJS
QU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJUkVDVCwgSU5E
SVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNP
RVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVS
IElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElP
VVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBV
U0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworLy8gY2F2cF9tYWluIGlz
IGEgd3JhcHBlciB0aGF0IGludm9rZXMgdGhlIG1haW4gZW50cnkgZnVuY3Rpb24gb2Ygb25lIG9m
IHRoZQorLy8gQ0FWUCB2YWxpZGF0aW9uIHN1aXRlIGJpbmFyaWVzLgorCisjaW5jbHVkZSA8c3Rk
bGliLmg+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPHN0cmluZz4KKworI2luY2x1ZGUg
PG9wZW5zc2wvY3J5cHRvLmg+CisKKyNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgorCisKK3N0
YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJnKSB7CisgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVz
IDx2YWxpZGF0aW9uIHN1aXRlPiA8YXJncyAuLi4+XG4iLCBhcmcpOworICByZXR1cm4gMTsKK30K
Kworc3RydWN0IFRlc3RTdWl0ZSB7CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIGludCAoKm1haW5f
ZnVuYykoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK307CisKK3N0YXRpYyBUZXN0U3VpdGUgYWxs
X3Rlc3Rfc3VpdGVzW10gPSB7CisgICAgeyJhZXMiLCAmY2F2cF9hZXNfdGVzdF9tYWlufSwKKyAg
ICB7ImFlc19nY20iLCAmY2F2cF9hZXNfZ2NtX3Rlc3RfbWFpbn0sCisgICAgeyJjdHJfZHJiZyIs
ICZjYXZwX2N0cl9kcmJnX3Rlc3RfbWFpbn0sCisgICAgeyJlY2RzYTJfa2V5cGFpciIsICZjYXZw
X2VjZHNhMl9rZXlwYWlyX3Rlc3RfbWFpbn0sCisgICAgeyJlY2RzYTJfcGt2IiwgJmNhdnBfZWNk
c2EyX3Brdl90ZXN0X21haW59LAorICAgIHsiZWNkc2EyX3NpZ2dlbiIsICZjYXZwX2VjZHNhMl9z
aWdnZW5fdGVzdF9tYWlufSwKKyAgICB7ImVjZHNhMl9zaWd2ZXIiLCAmY2F2cF9lY2RzYTJfc2ln
dmVyX3Rlc3RfbWFpbn0sCisgICAgeyJobWFjIiwgJmNhdnBfaG1hY190ZXN0X21haW59LAorICAg
IHsia2FzIiwgJmNhdnBfa2FzX3Rlc3RfbWFpbn0sCisgICAgeyJrZXl3cmFwIiwgJmNhdnBfa2V5
d3JhcF90ZXN0X21haW59LAorICAgIHsicnNhMl9rZXlnZW4iLCAmY2F2cF9yc2EyX2tleWdlbl90
ZXN0X21haW59LAorICAgIHsicnNhMl9zaWdnZW4iLCAmY2F2cF9yc2EyX3NpZ2dlbl90ZXN0X21h
aW59LAorICAgIHsicnNhMl9zaWd2ZXIiLCAmY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0X21haW59LAor
ICAgIHsidGxza2RmIiwgJmNhdnBfdGxza2RmX3Rlc3RfbWFpbn0sCisgICAgeyJzaGEiLCAmY2F2
cF9zaGFfdGVzdF9tYWlufSwKKyAgICB7InNoYV9tb250ZSIsICZjYXZwX3NoYV9tb250ZV90ZXN0
X21haW59LAorICAgIHsidGRlcyIsICZjYXZwX3RkZXNfdGVzdF9tYWlufQorfTsKKworaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIENSWVBUT19saWJyYXJ5X2luaXQoKTsKKwor
ICBpZiAoYXJnYyA8IDMpIHsKKyAgICByZXR1cm4gdXNhZ2UoYXJndlswXSk7CisgIH0KKworICBj
b25zdCBzdGQ6OnN0cmluZyBzdWl0ZShhcmd2WzFdKTsKKyAgZm9yIChjb25zdCBUZXN0U3VpdGUg
JnMgOiBhbGxfdGVzdF9zdWl0ZXMpIHsKKyAgICBpZiAocy5uYW1lID09IHN1aXRlKSB7CisgICAg
ICByZXR1cm4gcy5tYWluX2Z1bmMoYXJnYyAtIDEsICZhcmd2WzFdKTsKKyAgICB9CisgIH0KKwor
ICBmcHJpbnRmKHN0ZGVyciwgImludmFsaWQgdGVzdCBzdWl0ZTogJXNcblxuIiwgYXJndlsxXSk7
CisgIHJldHVybiB1c2FnZShhcmd2WzBdKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0
b29scy9jYXZwL2NhdnBfcnNhMl9rZXlnZW5fdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9j
YXZwL2NhdnBfcnNhMl9rZXlnZW5fdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYThkNjU4ZjhiODFkYjIz
NWYwMTE1ZTAyMTU5OTUxZmRlNTRlMDRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlw
c3Rvb2xzL2NhdnAvY2F2cF9yc2EyX2tleWdlbl90ZXN0LmNjCkBAIC0wLDAgKzEsOTQgQEAKKy8q
IENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkK
KyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlk
ZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBS
T1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisg
KiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJS
QU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJUkVDVCwgSU5E
SVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNP
RVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVS
IElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElP
VVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBV
U0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworLy8gY2F2cF9yc2EyX2tl
eWdlbl90ZXN0IHByb2Nlc3NlcyBOSVNUIENBVlAgUlNBMiBLZXlHZW4gdGVzdCB2ZWN0b3IgcmVx
dWVzdAorLy8gZmlsZXMgYW5kIGVtaXRzIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlLgorCisj
aW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8b3BlbnNzbC9ibi5oPgorI2luY2x1ZGUgPG9w
ZW5zc2wvY3J5cHRvLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9yc2EuaD4KKworI2luY2x1ZGUgIi4u
L2NyeXB0by9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIi4uL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5o
IgorI2luY2x1ZGUgImNhdnBfdGVzdF91dGlsLmgiCisKKworc3RhdGljIGJvb2wgVGVzdFJTQTJL
ZXlHZW4oRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgeworICBzdGQ6OnN0cmluZyBtb2Rfc3RyLCB0
YWJsZSwgY291bnRfc3RyOworICBpZiAoIXQtPkdldEluc3RydWN0aW9uKCZtb2Rfc3RyLCAibW9k
IikgfHwKKyAgICAgICF0LT5HZXRJbnN0cnVjdGlvbigmdGFibGUsICJUYWJsZSBmb3IgTS1SIFRl
c3QiKSB8fAorICAgICAgdGFibGUgIT0gIkMuMiIgfHwKKyAgICAgICF0LT5HZXRBdHRyaWJ1dGUo
JmNvdW50X3N0ciwgIk4iKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHByaW50Zigi
W21vZCA9ICVzXVxyXG4iLCBtb2Rfc3RyLmNfc3RyKCkpOworICBwcmludGYoIltUYWJsZSBmb3Ig
TS1SIFRlc3QgPSAlc11cclxuXHJcbiIsIHRhYmxlLmNfc3RyKCkpOworCisgIHNpemVfdCBiaXRz
ID0gc3RydG91bChtb2Rfc3RyLmNfc3RyKCksIG51bGxwdHIsIDApOworICBzaXplX3QgY291bnQg
PSBzdHJ0b3VsKGNvdW50X3N0ci5jX3N0cigpLCBudWxscHRyLCAwKTsKKyAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgYnNzbDo6VW5pcXVlUHRyPFJTQT4ga2V5KFJT
QV9uZXcoKSk7CisgICAgaWYgKGtleSA9PSBudWxscHRyIHx8CisgICAgICAgIGJpdHMgPT0gMCB8
fAorICAgICAgICAhUlNBX2dlbmVyYXRlX2tleV9maXBzKGtleS5nZXQoKSwgYml0cywgbnVsbHB0
cikpIHsKKyAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGNvbnN0IEJJR05VTSAqbiwgKmUs
ICpkLCAqcCwgKnE7CisgICAgUlNBX2dldDBfa2V5KGtleS5nZXQoKSwgJm4sICZlLCAmZCk7Cisg
ICAgUlNBX2dldDBfZmFjdG9ycyhrZXkuZ2V0KCksICZwLCAmcSk7CisgICAgc3RkOjp2ZWN0b3I8
dWludDhfdD4gbl9ieXRlcyhCTl9udW1fYnl0ZXMobikpLCBlX2J5dGVzKEJOX251bV9ieXRlcyhl
KSksCisgICAgICAgIGRfYnl0ZXMoKGJpdHMgKyA3KSAvIDgpLCBwX2J5dGVzKEJOX251bV9ieXRl
cyhwKSksCisgICAgICAgIHFfYnl0ZXMoQk5fbnVtX2J5dGVzKHEpKTsKKyAgICBpZiAobiA9PSBO
VUxMIHx8CisgICAgICAgIEJOX2JuMmJpbihuLCBuX2J5dGVzLmRhdGEoKSkgIT0gbl9ieXRlcy5z
aXplKCkgfHwKKyAgICAgICAgZSA9PSBOVUxMIHx8CisgICAgICAgIEJOX2JuMmJpbihlLCBlX2J5
dGVzLmRhdGEoKSkgIT0gZV9ieXRlcy5zaXplKCkgfHwKKyAgICAgICAgZCA9PSBOVUxMIHx8Cisg
ICAgICAgICFCTl9ibjJiaW5fcGFkZGVkKGRfYnl0ZXMuZGF0YSgpLCBkX2J5dGVzLnNpemUoKSwg
ZCkgfHwKKyAgICAgICAgcCA9PSBOVUxMIHx8CisgICAgICAgIEJOX2JuMmJpbihwLCBwX2J5dGVz
LmRhdGEoKSkgIT0gcF9ieXRlcy5zaXplKCkgfHwKKyAgICAgICAgcSA9PSBOVUxMIHx8CisgICAg
ICAgIEJOX2JuMmJpbihxLCBxX2J5dGVzLmRhdGEoKSkgIT0gcV9ieXRlcy5zaXplKCkpIHsKKyAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcmludGYoImUgPSAlc1xyXG5wID0gJXNc
clxucSA9ICVzXHJcbm4gPSAlc1xyXG5kID0gJXNcclxuXHJcbiIsCisgICAgICAgICAgIEVuY29k
ZUhleChlX2J5dGVzLmRhdGEoKSwgZV9ieXRlcy5zaXplKCkpLmNfc3RyKCksCisgICAgICAgICAg
IEVuY29kZUhleChwX2J5dGVzLmRhdGEoKSwgcF9ieXRlcy5zaXplKCkpLmNfc3RyKCksCisgICAg
ICAgICAgIEVuY29kZUhleChxX2J5dGVzLmRhdGEoKSwgcV9ieXRlcy5zaXplKCkpLmNfc3RyKCks
CisgICAgICAgICAgIEVuY29kZUhleChuX2J5dGVzLmRhdGEoKSwgbl9ieXRlcy5zaXplKCkpLmNf
c3RyKCksCisgICAgICAgICAgIEVuY29kZUhleChkX2J5dGVzLmRhdGEoKSwgZF9ieXRlcy5zaXpl
KCkpLmNfc3RyKCkpOworICB9CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBjYXZwX3JzYTJf
a2V5Z2VuX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgaWYgKGFyZ2MgIT0g
MikgeworICAgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0ZXN0IGZpbGU+XG4iLAorICAg
ICAgICAgICAgYXJndlswXSk7CisgICAgcmV0dXJuIDE7CisgIH0KKworICBGaWxlVGVzdDo6T3B0
aW9ucyBvcHRzOworICBvcHRzLnBhdGggPSBhcmd2WzFdOworICBvcHRzLmNhbGxiYWNrID0gVGVz
dFJTQTJLZXlHZW47CisgIG9wdHMuc2lsZW50ID0gdHJ1ZTsKKyAgb3B0cy5jb21tZW50X2NhbGxi
YWNrID0gRWNob0NvbW1lbnQ7CisgIHJldHVybiBGaWxlVGVzdE1haW4ob3B0cyk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX3JzYTJfc2lnZ2VuX3Rlc3QuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX3JzYTJfc2lnZ2VuX3Rlc3QuY2MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDYzYjg5ZDg2M2VlYTJlZTk0MTE2NzkyNDMxNWE4YWRiZjkxNDRkMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfcnNhMl9zaWdnZW5fdGVzdC5j
YwpAQCAtMCwwICsxLDEyOSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE3LCBHb29nbGUgSW5jLgor
ICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRl
IHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlz
IGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAq
CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVND
TEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5D
TFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQor
ICogU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9S
IEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBE
QVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwgTkVH
TElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisg
KiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJF
LiAqLworCisvLyBjYXZwX3JzYTJfc2lnZ2VuX3Rlc3QgcHJvY2Vzc2VzIE5JU1QgQ0FWUCBSU0Ey
IFNpZ0dlbiB0ZXN0IHZlY3RvciByZXF1ZXN0CisvLyBmaWxlcyBhbmQgZW1pdHMgdGhlIGNvcnJl
c3BvbmRpbmcgcmVzcG9uc2UuCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxvcGVu
c3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxvcGVuc3Ns
L2RpZ2VzdC5oPgorI2luY2x1ZGUgPG9wZW5zc2wvcnNhLmg+CisKKyNpbmNsdWRlICIuLi9jcnlw
dG8vaW50ZXJuYWwuaCIKKyNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuaCIKKyNp
bmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgorCituYW1lc3BhY2UgeworCitzdHJ1Y3QgVGVzdEN0
eCB7CisgIGJzc2w6OlVuaXF1ZVB0cjxSU0E+IGtleTsKKyAgYm9vbCBpc19wc3M7Cit9OworCit9
CisKK3N0YXRpYyBib29sIFRlc3RSU0EyU2lnR2VuKEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsK
KyAgVGVzdEN0eCAqY3R4ID0gcmVpbnRlcnByZXRfY2FzdDxUZXN0Q3R4ICo+KGFyZyk7CisKKyAg
c3RkOjpzdHJpbmcgbW9kX3N0ciwgaGFzaDsKKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnOwor
ICBpZiAoIXQtPkdldEluc3RydWN0aW9uKCZtb2Rfc3RyLCAibW9kIikgfHwKKyAgICAgICF0LT5H
ZXRBdHRyaWJ1dGUoJmhhc2gsICJTSEFBbGciKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZtc2cs
ICJNc2ciKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHN0ZDo6c3RyaW5nIHRlc3Qg
PSB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCk7CisgIGlmICh0LT5Jc0F0TmV3SW5zdHJ1Y3Rpb25C
bG9jaygpKSB7CisgICAgaW50IG1vZF9iaXRzID0gc3RydG91bChtb2Rfc3RyLmNfc3RyKCksIG51
bGxwdHIsIDApOworICAgIGN0eC0+a2V5ID0gYnNzbDo6VW5pcXVlUHRyPFJTQT4oUlNBX25ldygp
KTsKKyAgICBpZiAoY3R4LT5rZXkgPT0gbnVsbHB0ciB8fAorICAgICAgICBtb2RfYml0cyA9PSAw
IHx8CisgICAgICAgICFSU0FfZ2VuZXJhdGVfa2V5X2ZpcHMoY3R4LT5rZXkuZ2V0KCksIG1vZF9i
aXRzLCBudWxscHRyKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNvbnN0
IEJJR05VTSAqbiwgKmU7CisgICAgUlNBX2dldDBfa2V5KGN0eC0+a2V5LmdldCgpLCAmbiwgJmUs
IG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbl9ieXRlcyhCTl9udW1fYnl0
ZXMobikpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGVfYnl0ZXMoQk5fbnVtX2J5dGVzKGUp
KTsKKyAgICBpZiAoIUJOX2JuMmJpbl9wYWRkZWQobl9ieXRlcy5kYXRhKCksIG5fYnl0ZXMuc2l6
ZSgpLCBuKSB8fAorICAgICAgICAhQk5fYm4yYmluX3BhZGRlZChlX2J5dGVzLmRhdGEoKSwgZV9i
eXRlcy5zaXplKCksIGUpKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJp
bnRmKCJbbW9kID0gJXNdXHJcblxyXG5uID0gJXNcclxuXHJcbmUgPSAlcyIsCisgICAgICAgICAg
IG1vZF9zdHIuY19zdHIoKSwKKyAgICAgICAgICAgRW5jb2RlSGV4KG5fYnl0ZXMuZGF0YSgpLCBu
X2J5dGVzLnNpemUoKSkuY19zdHIoKSwKKyAgICAgICAgICAgRW5jb2RlSGV4KGVfYnl0ZXMuZGF0
YSgpLCBlX2J5dGVzLnNpemUoKSkuY19zdHIoKSk7CisgICAgdGVzdCA9IHRlc3Quc3Vic3RyKHRl
c3QuZmluZCgiXSIpICsgMyk7CisgIH0KKworICBjb25zdCBFVlBfTUQgKm1kID0gRVZQX2dldF9k
aWdlc3RieW5hbWUoaGFzaC5jX3N0cigpKTsKKyAgdWludDhfdCBkaWdlc3RfYnVmW0VWUF9NQVhf
TURfU0laRV07CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHNpZyhSU0Ffc2l6ZShjdHgtPmtleS5n
ZXQoKSkpOworICB1bnNpZ25lZCBkaWdlc3RfbGVuOworICBzaXplX3Qgc2lnX2xlbjsKKyAgaWYg
KG1kID09IE5VTEwgfHwKKyAgICAgICFFVlBfRGlnZXN0KG1zZy5kYXRhKCksIG1zZy5zaXplKCks
IGRpZ2VzdF9idWYsICZkaWdlc3RfbGVuLCBtZCwgTlVMTCkpIHsKKyAgICByZXR1cm4gZmFsc2U7
CisgIH0KKworICBpZiAoY3R4LT5pc19wc3MpIHsKKyAgICBpZiAoIVJTQV9zaWduX3Bzc19tZ2Yx
KGN0eC0+a2V5LmdldCgpLCAmc2lnX2xlbiwgc2lnLmRhdGEoKSwgc2lnLnNpemUoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZ2VzdF9idWYsIGRpZ2VzdF9sZW4sIG1kLCBtZCwgLTEp
KSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9IGVsc2UgeworICAgIHVuc2lnbmVk
IHNpZ19sZW5fdTsKKyAgICBpZiAoIVJTQV9zaWduKEVWUF9NRF90eXBlKG1kKSwgZGlnZXN0X2J1
ZiwgZGlnZXN0X2xlbiwgc2lnLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICZzaWdfbGVuX3Us
IGN0eC0+a2V5LmdldCgpKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBzaWdf
bGVuID0gc2lnX2xlbl91OworICB9CisKKyAgcHJpbnRmKCIlc1MgPSAlc1xyXG5cclxuIiwgdGVz
dC5jX3N0cigpLAorICAgICAgICAgRW5jb2RlSGV4KHNpZy5kYXRhKCksIHNpZ19sZW4pLmNfc3Ry
KCkpOworICByZXR1cm4gdHJ1ZTsKK30KKworaW50IGNhdnBfcnNhMl9zaWdnZW5fdGVzdF9tYWlu
KGludCBhcmdjLCBjaGFyICoqYXJndikgeworICBpZiAoYXJnYyAhPSAzKSB7CisgICAgZnByaW50
ZihzdGRlcnIsICJ1c2FnZTogJXMgKHBrY3MxNXxwc3MpIDx0ZXN0IGZpbGU+XG4iLAorICAgICAg
ICAgICAgYXJndlswXSk7CisgICAgcmV0dXJuIDE7CisgIH0KKworICBUZXN0Q3R4IGN0eDsKKyAg
aWYgKHN0cmNtcChhcmd2WzFdLCAicGtjczE1IikgPT0gMCkgeworICAgIGN0eCA9IHtudWxscHRy
LCBmYWxzZX07CisgIH0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJwc3MiKSA9PSAwKSB7Cisg
ICAgY3R4ID0ge251bGxwdHIsIHRydWV9OworICB9IGVsc2UgeworICAgIGZwcmludGYoc3RkZXJy
LCAiVW5rbm93biB0ZXN0IHR5cGU6ICVzXG4iLCBhcmd2WzFdKTsKKyAgICByZXR1cm4gMTsKKyAg
fQorCisgIEZpbGVUZXN0OjpPcHRpb25zIG9wdHM7CisgIG9wdHMucGF0aCA9IGFyZ3ZbMl07Cisg
IG9wdHMuY2FsbGJhY2sgPSBUZXN0UlNBMlNpZ0dlbjsKKyAgb3B0cy5hcmcgPSAmY3R4OworICBv
cHRzLnNpbGVudCA9IHRydWU7CisgIG9wdHMuY29tbWVudF9jYWxsYmFjayA9IEVjaG9Db21tZW50
OworICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwv
Zmlwc3Rvb2xzL2NhdnAvY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rv
b2xzL2NhdnAvY2F2cF9yc2EyX3NpZ3Zlcl90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiY2ZjMWZjYjY3
YTMwMmMwYzJhNTU5OWRmMDMxMDBkZWVhMjRhNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRp
bC9maXBzdG9vbHMvY2F2cC9jYXZwX3JzYTJfc2lndmVyX3Rlc3QuY2MKQEAgLTAsMCArMSwxMjUg
QEAKKy8qIENvcHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNzaW9u
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZv
ciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwg
cHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJF
IElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5U
SUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElF
RCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJUkVD
VCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICog
V0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBX
SEVUSEVSIElOIEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIg
VE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRI
IFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworLy8gY2F2cF9y
c2EyX3NpZ3Zlcl90ZXN0IHByb2Nlc3NlcyBOSVNUIENBVlAgUlNBMiBTaWdWZXIgdGVzdCB2ZWN0
b3IgcmVxdWVzdAorLy8gZmlsZXMgYW5kIGVtaXRzIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNl
LgorCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8b3BlbnNzbC9ibi5oPgorI2luY2x1
ZGUgPG9wZW5zc2wvY3J5cHRvLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9kaWdlc3QuaD4KKyNpbmNs
dWRlIDxvcGVuc3NsL2Vyci5oPgorI2luY2x1ZGUgPG9wZW5zc2wvcnNhLmg+CisKKyNpbmNsdWRl
ICIuLi9jcnlwdG8vaW50ZXJuYWwuaCIKKyNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9maWxlX3Rl
c3QuaCIKKyNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgorCisKK25hbWVzcGFjZSB7CisKK3N0
cnVjdCBUZXN0Q3R4IHsKKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gTjsKKyAgYm9vbCBpc19wc3M7
Cit9OworCit9CisKK3N0YXRpYyBib29sIFRlc3RSU0EyU2lnVmVyKEZpbGVUZXN0ICp0LCB2b2lk
ICphcmcpIHsKKyAgVGVzdEN0eCAqY3R4ID0gcmVpbnRlcnByZXRfY2FzdDxUZXN0Q3R4ICo+KGFy
Zyk7CisKKyAgc3RkOjpzdHJpbmcgbW9kX3N0cjsKKyAgaWYgKCF0LT5HZXRJbnN0cnVjdGlvbigm
bW9kX3N0ciwgIm1vZCIpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcHJpbnRmKCIl
cyIsIHQtPkN1cnJlbnRUZXN0VG9TdHJpbmcoKS5jX3N0cigpKTsKKworICBpZiAodC0+SGFzQXR0
cmlidXRlKCJuIikpIHsKKyAgICBwcmludGYoIlxyXG4iKTsKKyAgICByZXR1cm4gdC0+R2V0Qnl0
ZXMoJmN0eC0+TiwgIm4iKTsKKyAgfQorCisgIHN0ZDo6c3RyaW5nIGhhc2g7CisgIHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+IGVfYnl0ZXMsIG1zZywgc2lnOworICBpZiAoIXQtPkdldEF0dHJpYnV0ZSgm
aGFzaCwgIlNIQUFsZyIpIHx8CisgICAgICAhdC0+R2V0Qnl0ZXMoJmVfYnl0ZXMsICJlIikgfHwK
KyAgICAgICF0LT5HZXRCeXRlcygmbXNnLCAiTXNnIikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygm
c2lnLCAiUyIpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgYnNzbDo6VW5pcXVlUHRy
PFJTQT4ga2V5KFJTQV9uZXcoKSk7CisgIGtleS0+biA9IEJOX25ldygpOworICBrZXktPmUgPSBC
Tl9uZXcoKTsKKyAgaWYgKGtleSA9PSBudWxscHRyIHx8CisgICAgICAhQk5fYmluMmJuKGN0eC0+
Ti5kYXRhKCksIGN0eC0+Ti5zaXplKCksIGtleS0+bikgfHwKKyAgICAgICFCTl9iaW4yYm4oZV9i
eXRlcy5kYXRhKCksIGVfYnl0ZXMuc2l6ZSgpLCBrZXktPmUpKSB7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisKKyAgY29uc3QgRVZQX01EICptZCA9IEVWUF9nZXRfZGlnZXN0YnluYW1lKGhhc2gu
Y19zdHIoKSk7CisgIHVpbnQ4X3QgZGlnZXN0X2J1ZltFVlBfTUFYX01EX1NJWkVdOworICB1bnNp
Z25lZCBkaWdlc3RfbGVuOworICBpZiAobWQgPT0gTlVMTCB8fAorICAgICAgIUVWUF9EaWdlc3Qo
bXNnLmRhdGEoKSwgbXNnLnNpemUoKSwgZGlnZXN0X2J1ZiwgJmRpZ2VzdF9sZW4sIG1kLCBOVUxM
KSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGludCBvazsKKyAgaWYgKGN0eC0+aXNf
cHNzKSB7CisgICAgb2sgPSBSU0FfdmVyaWZ5X3Bzc19tZ2YxKGtleS5nZXQoKSwgZGlnZXN0X2J1
ZiwgZGlnZXN0X2xlbiwgbWQsIG1kLCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2lnLmRhdGEoKSwgc2lnLnNpemUoKSk7CisgIH0gZWxzZSB7CisgICAgb2sgPSBSU0FfdmVyaWZ5
KEVWUF9NRF90eXBlKG1kKSwgZGlnZXN0X2J1ZiwgZGlnZXN0X2xlbiwgc2lnLmRhdGEoKSwKKyAg
ICAgICAgICAgICAgICAgICAgc2lnLnNpemUoKSwga2V5LmdldCgpKTsKKyAgfQorCisgIGlmIChv
aykgeworICAgIHByaW50ZigiUmVzdWx0ID0gUFxyXG5cclxuIik7CisgIH0gZWxzZSB7CisgICAg
Y2hhciBidWZbMjU2XTsKKyAgICBFUlJfZXJyb3Jfc3RyaW5nX24oRVJSX2dldF9lcnJvcigpLCBi
dWYsIHNpemVvZihidWYpKTsKKyAgICBwcmludGYoIlJlc3VsdCA9IEYgKCVzKVxyXG5cclxuIiwg
YnVmKTsKKyAgfQorICBFUlJfY2xlYXJfZXJyb3IoKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2lu
dCBjYXZwX3JzYTJfc2lndmVyX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAg
aWYgKGFyZ2MgIT0gMykgeworICAgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIChwa2NzMTV8
cHNzKSA8dGVzdCBmaWxlPlxuIiwKKyAgICAgICAgICAgIGFyZ3ZbMF0pOworICAgIHJldHVybiAx
OworICB9CisKKyAgVGVzdEN0eCBjdHg7CisgIGlmIChzdHJjbXAoYXJndlsxXSwgInBrY3MxNSIp
ID09IDApIHsKKyAgICBjdHggPSB7c3RkOjp2ZWN0b3I8dWludDhfdD4oKSwgZmFsc2V9OworICB9
IGVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAicHNzIikgPT0gMCkgeworICAgIGN0eCA9IHtzdGQ6
OnZlY3Rvcjx1aW50OF90PigpLCB0cnVlfTsKKyAgfSBlbHNlIHsKKyAgICBmcHJpbnRmKHN0ZGVy
ciwgIlVua25vd24gdGVzdCB0eXBlOiAlc1xuIiwgYXJndlsxXSk7CisgICAgcmV0dXJuIDE7Cisg
IH0KKworICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRzOworICBvcHRzLnBhdGggPSBhcmd2WzJdOwor
ICBvcHRzLmNhbGxiYWNrID0gVGVzdFJTQTJTaWdWZXI7CisgIG9wdHMuYXJnID0gJmN0eDsKKyAg
b3B0cy5zaWxlbnQgPSB0cnVlOworICBvcHRzLmNvbW1lbnRfY2FsbGJhY2sgPSBFY2hvQ29tbWVu
dDsKKyAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRzKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGls
L2ZpcHN0b29scy9jYXZwL2NhdnBfc2hhX21vbnRlX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9v
bHMvY2F2cC9jYXZwX3NoYV9tb250ZV90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZjJmYjA5NTY2ZmNi
NDcwYzA0ZjgxOWVmOGRmMzVlZDZiMzRmOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9m
aXBzdG9vbHMvY2F2cC9jYXZwX3NoYV9tb250ZV90ZXN0LmNjCkBAIC0wLDAgKzEsMTAyIEBACisv
KiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1
c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55
CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3Zp
ZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwor
ICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FS
UkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElO
RElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRT
T0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhF
UiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJ
T1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUg
VVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKy8vIGNhdnBfc2hhX21v
bnRlX3Rlc3QgcHJvY2Vzc2VzIGEgTklTVCBDQVZQIFNIQS1Nb250ZSB0ZXN0IHZlY3RvciByZXF1
ZXN0IGZpbGUKKy8vIGFuZCBlbWl0cyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZS4KKworI2lu
Y2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRl
IDxvcGVuc3NsL2RpZ2VzdC5oPgorCisjaW5jbHVkZSAiLi4vY3J5cHRvL3Rlc3QvZmlsZV90ZXN0
LmgiCisjaW5jbHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKKworCituYW1lc3BhY2UgeworCitzdHJ1
Y3QgVGVzdEN0eCB7CisgIHN0ZDo6c3RyaW5nIGhhc2g7Cit9OworCit9CisKK3N0YXRpYyBib29s
IFRlc3RTSEFNb250ZShGaWxlVGVzdCAqdCwgdm9pZCAqYXJnKSB7CisgIFRlc3RDdHggKmN0eCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdEN0eCAqPihhcmcpOworCisgIGNvbnN0IEVWUF9NRCAqbWQg
PSBFVlBfZ2V0X2RpZ2VzdGJ5bmFtZShjdHgtPmhhc2guY19zdHIoKSk7CisgIGlmIChtZCA9PSBu
dWxscHRyKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGNvbnN0IHNpemVfdCBtZF9sZW4g
PSBFVlBfTURfc2l6ZShtZCk7CisKKyAgc3RkOjpzdHJpbmcgb3V0X2xlbjsKKyAgaWYgKCF0LT5H
ZXRJbnN0cnVjdGlvbigmb3V0X2xlbiwgIkwiKSB8fAorICAgICAgbWRfbGVuICE9IHN0cnRvdWwo
b3V0X2xlbi5jX3N0cigpLCBudWxscHRyLCAwKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQor
CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHNlZWQ7CisgIGlmICghdC0+R2V0Qnl0ZXMoJnNlZWQs
ICJTZWVkIikgfHwKKyAgICAgIHNlZWQuc2l6ZSgpICE9IG1kX2xlbikgeworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dCA9IHNlZWQ7CisKKyAgcHJp
bnRmKCIlc1xyXG4iLCB0LT5DdXJyZW50VGVzdFRvU3RyaW5nKCkuY19zdHIoKSk7CisKKyAgZm9y
IChpbnQgY291bnQgPSAwOyBjb3VudCA8IDEwMDsgY291bnQrKykgeworICAgIHN0ZDo6dmVjdG9y
PHVpbnQ4X3Q+IG1zZzsKKyAgICBtc2cuaW5zZXJ0KG1zZy5lbmQoKSwgb3V0LmJlZ2luKCksIG91
dC5lbmQoKSk7CisgICAgbXNnLmluc2VydChtc2cuZW5kKCksIG91dC5iZWdpbigpLCBvdXQuZW5k
KCkpOworICAgIG1zZy5pbnNlcnQobXNnLmVuZCgpLCBvdXQuYmVnaW4oKSwgb3V0LmVuZCgpKTsK
KyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgICAgdW5zaWduZWQgZGln
ZXN0X2xlbjsKKyAgICAgIGlmICghRVZQX0RpZ2VzdChtc2cuZGF0YSgpLCBtc2cuc2l6ZSgpLCBv
dXQuZGF0YSgpLCAmZGlnZXN0X2xlbiwgbWQsCisgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0
cikgfHwKKyAgICAgICAgICBkaWdlc3RfbGVuICE9IG91dC5zaXplKCkpIHsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgfQorCisgICAgICBtc2cuZXJhc2UobXNnLmJlZ2luKCksIG1zZy5i
ZWdpbigpICsgb3V0LnNpemUoKSk7CisgICAgICBtc2cuaW5zZXJ0KG1zZy5lbmQoKSwgb3V0LmJl
Z2luKCksIG91dC5lbmQoKSk7CisgICAgfQorICAgIHByaW50ZigiQ09VTlQgPSAlZFxyXG4iLCBj
b3VudCk7CisgICAgcHJpbnRmKCJNRCA9ICVzXHJcblxyXG4iLCBFbmNvZGVIZXgob3V0LmRhdGEo
KSwgb3V0LnNpemUoKSkuY19zdHIoKSk7CisgIH0KKworICByZXR1cm4gdHJ1ZTsKK30KKworc3Rh
dGljIGludCB1c2FnZShjaGFyICphcmcpIHsKKyAgZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMg
PGhhc2g+IDx0ZXN0IGZpbGU+XG4iLCBhcmcpOworICByZXR1cm4gMTsKK30KKworaW50IGNhdnBf
c2hhX21vbnRlX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgaWYgKGFyZ2Mg
IT0gMykgeworICAgIHJldHVybiB1c2FnZShhcmd2WzBdKTsKKyAgfQorCisgIFRlc3RDdHggY3R4
ID0ge3N0ZDo6c3RyaW5nKGFyZ3ZbMV0pfTsKKworICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRzOwor
ICBvcHRzLnBhdGggPSBhcmd2WzJdOworICBvcHRzLmNhbGxiYWNrID0gVGVzdFNIQU1vbnRlOwor
ICBvcHRzLmFyZyA9ICZjdHg7CisgIG9wdHMuc2lsZW50ID0gdHJ1ZTsKKyAgb3B0cy5jb21tZW50
X2NhbGxiYWNrID0gRWNob0NvbW1lbnQ7CisgIHJldHVybiBGaWxlVGVzdE1haW4ob3B0cyk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvY2F2cC9jYXZwX3NoYV90ZXN0LmNjIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9zaGFfdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWUy
NWMxY2JjMjM1YTMxNWI3NmQ2MjIyM2FlNjg3MGM4YmU4ZDk1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF9zaGFfdGVzdC5jYwpAQCAtMCwwICsxLDk2IEBA
CisvKiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0
byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3Ig
YW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHBy
b3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElF
UworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQg
V0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1Qs
IElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdI
QVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hF
VEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRP
UlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBU
SEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKy8vIGNhdnBfc2hh
X3Rlc3QgcHJvY2Vzc2VzIGEgTklTVCBDQVZQIFNIQSB0ZXN0IHZlY3RvciByZXF1ZXN0IGZpbGUg
YW5kIGVtaXRzCisvLyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZS4KKworI2luY2x1ZGUgPHN0
ZGxpYi5oPgorCisjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxvcGVuc3Ns
L2RpZ2VzdC5oPgorCisjaW5jbHVkZSAiLi4vY3J5cHRvL3Rlc3QvZmlsZV90ZXN0LmgiCisjaW5j
bHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKKworbmFtZXNwYWNlIHsKKworc3RydWN0IFRlc3RDdHgg
eworICBzdGQ6OnN0cmluZyBoYXNoOworfTsKKworfQorCitzdGF0aWMgYm9vbCBUZXN0U0hBKEZp
bGVUZXN0ICp0LCB2b2lkICphcmcpIHsKKyAgVGVzdEN0eCAqY3R4ID0gcmVpbnRlcnByZXRfY2Fz
dDxUZXN0Q3R4ICo+KGFyZyk7CisKKyAgY29uc3QgRVZQX01EICptZCA9IEVWUF9nZXRfZGlnZXN0
YnluYW1lKGN0eC0+aGFzaC5jX3N0cigpKTsKKyAgaWYgKG1kID09IG51bGxwdHIpIHsKKyAgICBy
ZXR1cm4gZmFsc2U7CisgIH0KKyAgY29uc3Qgc2l6ZV90IG1kX2xlbiA9IEVWUF9NRF9zaXplKG1k
KTsKKworICBzdGQ6OnN0cmluZyBvdXRfbGVuOworICBpZiAoIXQtPkdldEluc3RydWN0aW9uKCZv
dXRfbGVuLCAiTCIpIHx8CisgICAgICBtZF9sZW4gIT0gc3RydG91bChvdXRfbGVuLmNfc3RyKCks
IG51bGxwdHIsIDApKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgc3RkOjpzdHJpbmcg
bXNnX2xlbl9zdHI7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1zZzsKKyAgaWYgKCF0LT5HZXRB
dHRyaWJ1dGUoJm1zZ19sZW5fc3RyLCAiTGVuIikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygmbXNn
LCAiTXNnIikpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBzaXplX3QgbXNnX2xlbiA9
IHN0cnRvdWwobXNnX2xlbl9zdHIuY19zdHIoKSwgbnVsbHB0ciwgMCk7CisgIGlmIChtc2dfbGVu
ICUgOCAhPSAwIHx8CisgICAgICBtc2dfbGVuIC8gOCA+IG1zZy5zaXplKCkpIHsKKyAgICByZXR1
cm4gZmFsc2U7CisgIH0KKyAgbXNnX2xlbiAvPSA4OworCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+
IG91dDsKKyAgb3V0LnJlc2l6ZShtZF9sZW4pOworICB1bnNpZ25lZCBkaWdlc3RfbGVuOworICBp
ZiAoIUVWUF9EaWdlc3QobXNnLmRhdGEoKSwgbXNnX2xlbiwgb3V0LmRhdGEoKSwgJmRpZ2VzdF9s
ZW4sIG1kLCBudWxscHRyKSB8fAorICAgICAgZGlnZXN0X2xlbiAhPSBvdXQuc2l6ZSgpKSB7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcHJpbnRmKCIlcyIsIHQtPkN1cnJlbnRUZXN0VG9T
dHJpbmcoKS5jX3N0cigpKTsKKyAgcHJpbnRmKCJNRCA9ICVzXHJcblxyXG4iLCBFbmNvZGVIZXgo
b3V0LmRhdGEoKSwgb3V0LnNpemUoKSkuY19zdHIoKSk7CisKKyAgcmV0dXJuIHRydWU7Cit9CisK
K3N0YXRpYyBpbnQgdXNhZ2UoY2hhciAqYXJnKSB7CisgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6
ICVzIDxoYXNoPiA8dGVzdCBmaWxlPlxuIiwgYXJnKTsKKyAgcmV0dXJuIDE7Cit9CisKK2ludCBj
YXZwX3NoYV90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIGlmIChhcmdjICE9
IDMpIHsKKyAgICByZXR1cm4gdXNhZ2UoYXJndlswXSk7CisgIH0KKworICBUZXN0Q3R4IGN0eCA9
IHtzdGQ6OnN0cmluZyhhcmd2WzFdKX07CisKKyAgRmlsZVRlc3Q6Ok9wdGlvbnMgb3B0czsKKyAg
b3B0cy5wYXRoID0gYXJndlsyXTsKKyAgb3B0cy5jYWxsYmFjayA9IFRlc3RTSEE7CisgIG9wdHMu
YXJnID0gJmN0eDsKKyAgb3B0cy5zaWxlbnQgPSB0cnVlOworICBvcHRzLmNvbW1lbnRfY2FsbGJh
Y2sgPSBFY2hvQ29tbWVudDsKKyAgcmV0dXJuIEZpbGVUZXN0TWFpbihvcHRzKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfdGRlc190ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF90ZGVzX3Rlc3QuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFjMTBmZjkw
NGQ5ODliMmU3YzliMzZhZDFlMWY4Y2M2OWNkYzA5ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91
dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfdGRlc190ZXN0LmNjCkBAIC0wLDAgKzEsMzQyIEBACisv
KiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1
c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55
CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3Zp
ZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwor
ICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FS
UkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElO
RElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRT
T0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhF
UiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJ
T1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUg
VVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKy8vIGNhdnBfdGRlc190
ZXN0IHByb2Nlc3NlcyBhIE5JU1QgVE1PVlMgdGVzdCB2ZWN0b3IgcmVxdWVzdCBmaWxlIGFuZCBl
bWl0cyB0aGUKKy8vIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCisKKyNpbmNsdWRlIDxzdGRsaWIu
aD4KKworI2luY2x1ZGUgPG9wZW5zc2wvY2lwaGVyLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9jcnlw
dG8uaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorCisjaW5jbHVkZSAiLi4vY3J5cHRvL3Rl
c3QvZmlsZV90ZXN0LmgiCisjaW5jbHVkZSAiY2F2cF90ZXN0X3V0aWwuaCIKKworCituYW1lc3Bh
Y2UgeworCitzdHJ1Y3QgVGVzdEN0eCB7CisgIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKyAg
ZW51bSBNb2RlIHsKKyAgICBrS0FULCAgLy8gS25vd24gQW5zd2VyIFRlc3QKKyAgICBrTUNULCAg
Ly8gTW9udGUgQ2FybG8gVGVzdAorICB9OworICBib29sIGhhc19pdjsKKyAgTW9kZSBtb2RlOwor
fTsKKworfQorCitzdGF0aWMgYm9vbCBUZXN0S0FUKEZpbGVUZXN0ICp0LCB2b2lkICphcmcpIHsK
KyAgVGVzdEN0eCAqY3R4ID0gcmVpbnRlcnByZXRfY2FzdDxUZXN0Q3R4ICo+KGFyZyk7CisKKyAg
aWYgKHQtPkhhc0luc3RydWN0aW9uKCJFTkNSWVBUIikgPT0gdC0+SGFzSW5zdHJ1Y3Rpb24oIkRF
Q1JZUFQiKSkgeworICAgIHQtPlByaW50TGluZSgiV2FudCBlaXRoZXIgRU5DUllQVCBvciBERUNS
WVBUIik7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGVudW0geworICAgIGtFbmNyeXB0LAor
ICAgIGtEZWNyeXB0LAorICB9IG9wZXJhdGlvbiA9IHQtPkhhc0luc3RydWN0aW9uKCJFTkNSWVBU
IikgPyBrRW5jcnlwdCA6IGtEZWNyeXB0OworCisgIGlmICh0LT5IYXNBdHRyaWJ1dGUoIk51bUtl
eXMiKSkgeworICAgIC8vIEFub3RoZXIgZmlsZSBmb3JtYXQgcXVpcms6IE51bUtleXMgaXMgYSBz
aW5nbGUgYXR0cmlidXRlIGxpbmUgaW1tZWRpYXRlbHkKKyAgICAvLyBmb2xsb3dpbmcgYW4gaW5z
dHJ1Y3Rpb24gYW5kIHNob3VsZCBwcm9iYWJseSBoYXZlIGJlZW4gYW4gaW5zdHJ1Y3Rpb24KKyAg
ICAvLyBpbnN0ZWFkLiBJZiBpdCBpcyBwcmVzZW50LCB0aGUgZmlsZSBoYXMgc2VwYXJhdGUgYXR0
cmlidXRlcyAiS0VZezEsMiwzfSIuCisgICAgLy8gSWYgaXQgaXMgbm90LCB0aGUga2V5cyBhcmUg
Y29uY2F0ZW5hdGVkIGluIGEgc2luZ2xlIGF0dHJpYnV0ZSAiS0VZcyIuCisgICAgc3RkOjpzdHJp
bmcgbnVtX2tleXM7CisgICAgdC0+R2V0QXR0cmlidXRlKCZudW1fa2V5cywgIk51bUtleXMiKTsK
KyAgICB0LT5JbmplY3RJbnN0cnVjdGlvbigiTnVtS2V5cyIsIG51bV9rZXlzKTsKKworICAgIHN0
ZDo6c3RyaW5nIGhlYWRlciA9IG9wZXJhdGlvbiA9PSBrRW5jcnlwdCA/ICJbRU5DUllQVF0iIDog
IltERUNSWVBUXSI7CisgICAgcHJpbnRmKCIlc1xyXG5cclxuIiwgaGVhZGVyLmNfc3RyKCkpOwor
CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworICBlbnVtIHsKKyAgICBrTm90UHJlc2VudCwKKyAg
ICBrVHdvLAorICAgIGtUaHJlZSwKKyAgfSBudW1fa2V5cyA9IGtOb3RQcmVzZW50OworICBpZiAo
dC0+SGFzSW5zdHJ1Y3Rpb24oIk51bUtleXMiKSkgeworICAgIHN0ZDo6c3RyaW5nIG51bV9rZXlz
X3N0cjsKKyAgICB0LT5HZXRJbnN0cnVjdGlvbigmbnVtX2tleXNfc3RyLCAiTnVtS2V5cyIpOwor
ICAgIGNvbnN0IGludCBuID0gc3RydG91bChudW1fa2V5c19zdHIuY19zdHIoKSwgbnVsbHB0ciwg
MCk7CisgICAgaWYgKG4gPT0gMikgeworICAgICAgbnVtX2tleXMgPSBrVHdvOworICAgIH0gZWxz
ZSBpZiAobiA9PSAzKSB7CisgICAgICBudW1fa2V5cyA9IGtUaHJlZTsKKyAgICB9IGVsc2Ugewor
ICAgICAgdC0+UHJpbnRMaW5lKCJpbnZhbGlkIE51bUtleXMgdmFsdWUiKTsKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgIH0KKworICBzdGQ6OnN0cmluZyBjb3VudDsKKyAgc3RkOjp2ZWN0
b3I8dWludDhfdD4ga2V5cywga2V5MSwga2V5Miwga2V5MywgaXYsIGluLCByZXN1bHQ7CisgIGNv
bnN0IHN0ZDo6c3RyaW5nIGluX2xhYmVsID0KKyAgICAgIG9wZXJhdGlvbiA9PSBrRW5jcnlwdCA/
ICJQTEFJTlRFWFQiIDogIkNJUEhFUlRFWFQiOworICAvLyBjbGFuZy1mb3JtYXQgb2ZmCisgIGlm
ICghdC0+R2V0QXR0cmlidXRlKCZjb3VudCwgIkNPVU5UIikgfHwKKyAgICAgIChudW1fa2V5cyA9
PSAwICYmICF0LT5HZXRCeXRlcygma2V5cywgIktFWXMiKSkgfHwKKyAgICAgIChudW1fa2V5cyA+
IDAgJiYKKyAgICAgICAoIXQtPkdldEJ5dGVzKCZrZXkxLCAiS0VZMSIpIHx8CisgICAgICAgICF0
LT5HZXRCeXRlcygma2V5MiwgIktFWTIiKSB8fAorICAgICAgICAhdC0+R2V0Qnl0ZXMoJmtleTMs
ICJLRVkzIikpKSB8fAorICAgICAgKGN0eC0+aGFzX2l2ICYmICF0LT5HZXRCeXRlcygmaXYsICJJ
ViIpKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZpbiwgaW5fbGFiZWwpKSB7CisgICAgcmV0dXJu
IGZhbHNlOworICB9CisgIC8vIGNsYW5nLWZvcm1hdCBvbgorICBzdGQ6OnZlY3Rvcjx1aW50OF90
PiBrZXk7CisgIGlmIChudW1fa2V5cyAhPSBrTm90UHJlc2VudCkgeworICAgIGtleS5pbnNlcnQo
a2V5LmVuZCgpLCBrZXkxLmJlZ2luKCksIGtleTEuZW5kKCkpOworICAgIGtleS5pbnNlcnQoa2V5
LmVuZCgpLCBrZXkyLmJlZ2luKCksIGtleTIuZW5kKCkpOworICAgIGlmIChudW1fa2V5cyA9PSBr
VGhyZWUpIHsKKyAgICAgIGtleS5pbnNlcnQoa2V5LmVuZCgpLCBrZXkzLmJlZ2luKCksIGtleTMu
ZW5kKCkpOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBrZXkuaW5zZXJ0KGtleS5lbmQoKSwga2V5
cy5iZWdpbigpLCBrZXlzLmVuZCgpKTsKKyAgICBrZXkuaW5zZXJ0KGtleS5lbmQoKSwga2V5cy5i
ZWdpbigpLCBrZXlzLmVuZCgpKTsKKyAgICBrZXkuaW5zZXJ0KGtleS5lbmQoKSwga2V5cy5iZWdp
bigpLCBrZXlzLmVuZCgpKTsKKyAgfQorCisgIGlmICghQ2lwaGVyT3BlcmF0aW9uKGN0eC0+Y2lw
aGVyLCAmcmVzdWx0LCBvcGVyYXRpb24gPT0ga0VuY3J5cHQsIGtleSwgaXYsCisgICAgICAgICAg
ICAgICAgICAgICAgIGluKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8vIFRERVMg
ZmF4IGZpbGVzIG91dHB1dCBmb3JtYXQgZGlmZmVycyBmcm9tIGZpbGUgdG8gZmlsZSwgYW5kIHRo
ZSBpbnB1dAorICAvLyBmb3JtYXQgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIG91dHB1dCwgc28g
d2UgY29uc3RydWN0IHRoZSBvdXRwdXQgbWFudWFsbHkKKyAgLy8gcmF0aGVyIHRoYW4gcHJpbnRp
bmcgQ3VycmVudFRlc3RUb1N0cmluZygpLgorICBpZiAodC0+SXNBdE5ld0luc3RydWN0aW9uQmxv
Y2soKSAmJiBudW1fa2V5cyA9PSBrTm90UHJlc2VudCkgeworICAgIC8vIElmIE51bUtleXMgaXMg
cHJlc2VudCwgaGVhZGVyIGlzIHByaW50ZWQgd2hlbiBwYXJzaW5nIE51bUtleXMuCisgICAgc3Rk
OjpzdHJpbmcgaGVhZGVyID0gb3BlcmF0aW9uID09IGtFbmNyeXB0ID8gIltFTkNSWVBUXSIgOiAi
W0RFQ1JZUFRdIjsKKyAgICBwcmludGYoIiVzXHJcbiIsIGhlYWRlci5jX3N0cigpKTsKKyAgfQor
ICBjb25zdCBzdGQ6OnN0cmluZyByZXN1bHRfbGFiZWwgPQorICAgICAgb3BlcmF0aW9uID09IGtF
bmNyeXB0ID8gIkNJUEhFUlRFWFQiIDogIlBMQUlOVEVYVCI7CisgIHByaW50ZigiQ09VTlQgPSAl
c1xyXG4iLCBjb3VudC5jX3N0cigpKTsKKyAgaWYgKG51bV9rZXlzID09IGtOb3RQcmVzZW50KSB7
CisgICAgcHJpbnRmKCJLRVlzID0gJXNcclxuIiwgRW5jb2RlSGV4KGtleXMuZGF0YSgpLCBrZXlz
LnNpemUoKSkuY19zdHIoKSk7CisgIH0gZWxzZSB7CisgICAgcHJpbnRmKCJLRVkxID0gJXNcclxu
S0VZMiA9ICVzXHJcbktFWTMgPSAlc1xyXG4iLAorICAgICAgICAgICBFbmNvZGVIZXgoa2V5MS5k
YXRhKCksIGtleTEuc2l6ZSgpKS5jX3N0cigpLAorICAgICAgICAgICBFbmNvZGVIZXgoa2V5Mi5k
YXRhKCksIGtleTIuc2l6ZSgpKS5jX3N0cigpLAorICAgICAgICAgICBFbmNvZGVIZXgoa2V5My5k
YXRhKCksIGtleTMuc2l6ZSgpKS5jX3N0cigpKTsKKyAgfQorICBpZiAoY3R4LT5oYXNfaXYpIHsK
KyAgICBwcmludGYoIklWID0gJXNcclxuIiwgRW5jb2RlSGV4KGl2LmRhdGEoKSwgaXYuc2l6ZSgp
KS5jX3N0cigpKTsKKyAgfQorICBwcmludGYoIiVzID0gJXNcclxuIiwgaW5fbGFiZWwuY19zdHIo
KSwKKyAgICAgICAgIEVuY29kZUhleChpbi5kYXRhKCksIGluLnNpemUoKSkuY19zdHIoKSk7Cisg
IHByaW50ZigiJXMgPSAlc1xyXG5cclxuIiwgcmVzdWx0X2xhYmVsLmNfc3RyKCksCisgICAgICAg
ICBFbmNvZGVIZXgocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSkuY19zdHIoKSk7CisKKyAg
cmV0dXJuIHRydWU7Cit9CisKKy8vIFhPUktleVdpdGhPZGRQYXJpdHlMU0Igc2V0cyB8KmtleXwg
dG8gfGtleXwgWE9SIHx2YWx1ZXwgYW5kIHRoZW4gd3JpdGVzCisvLyB0aGUgTFNCIG9mIGVhY2gg
Ynl0ZSB0byBlc3RhYmxpc2ggb2RkIHBhcml0eSBmb3IgdGhhdCBieXRlLiBUaGlzIHBhcml0eS1i
YXNlZAorLy8gZW1iZWRkZWQgb2YgYSBERVMga2V5IGludG8gNjQgYml0cyBpcyBhbiBvbGQgdHJh
ZGl0aW9uIGFuZCBzb21ldGhpbmcgdGhhdAorLy8gTklTVCdzIHRlc3RzIHJlcXVpcmUuCitzdGF0
aWMgdm9pZCBYT1JLZXlXaXRoT2RkUGFyaXR5TFNCKHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICprZXks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0
b3I8dWludDhfdD4gJnZhbHVlKSB7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5LT5zaXpl
KCk7IGkrKykgeworICAgIHVpbnQ4X3QgdiA9ICgqa2V5KVtpXSBeIHZhbHVlW2ldOworCisgICAg
Ly8gVXNlIExTQiB0byBlc3RhYmxpc2ggb2RkIHBhcml0eS4KKyAgICB2IHw9IDB4MDE7CisgICAg
Zm9yICh1aW50OF90IGogPSAxOyBqIDwgODsgaisrKSB7CisgICAgICB2IF49ICgodiA+PiBqKSAm
IDB4MDEpOworICAgIH0KKyAgICAoKmtleSlbaV0gPSB2OworICB9Cit9CisKK3N0YXRpYyBib29s
IFRlc3RNQ1QoRmlsZVRlc3QgKnQsIHZvaWQgKmFyZykgeworICBUZXN0Q3R4ICpjdHggPSByZWlu
dGVycHJldF9jYXN0PFRlc3RDdHggKj4oYXJnKTsKKworICBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24o
IkVOQ1JZUFQiKSA9PSB0LT5IYXNJbnN0cnVjdGlvbigiREVDUllQVCIpKSB7CisgICAgdC0+UHJp
bnRMaW5lKCJXYW50IGVpdGhlciBFTkNSWVBUIG9yIERFQ1JZUFQiKTsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKyAgZW51bSB7CisgICAga0VuY3J5cHQsCisgICAga0RlY3J5cHQsCisgIH0gb3Bl
cmF0aW9uID0gdC0+SGFzSW5zdHJ1Y3Rpb24oIkVOQ1JZUFQiKSA/IGtFbmNyeXB0IDoga0RlY3J5
cHQ7CisKKyAgaWYgKHQtPkhhc0F0dHJpYnV0ZSgiTnVtS2V5cyIpKSB7CisgICAgLy8gQW5vdGhl
ciBmaWxlIGZvcm1hdCBxdWlyazogTnVtS2V5cyBpcyBhIHNpbmdsZSBhdHRyaWJ1dGUgbGluZSBp
bW1lZGlhdGVseQorICAgIC8vIGZvbGxvd2luZyBhbiBpbnN0cnVjdGlvbiBhbmQgc2hvdWxkIHBy
b2JhYmx5IGhhdmUgYmVlbiBhbiBpbnN0cnVjdGlvbgorICAgIC8vIGluc3RlYWQuCisgICAgc3Rk
OjpzdHJpbmcgbnVtX2tleXM7CisgICAgdC0+R2V0QXR0cmlidXRlKCZudW1fa2V5cywgIk51bUtl
eXMiKTsKKyAgICB0LT5JbmplY3RJbnN0cnVjdGlvbigiTnVtS2V5cyIsIG51bV9rZXlzKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIGVudW0geworICAgIGtUd28sCisgICAga1RocmVlLAor
ICB9IG51bV9rZXlzOworICBzdGQ6OnN0cmluZyBudW1fa2V5c19zdHI7CisgIGlmICghdC0+R2V0
SW5zdHJ1Y3Rpb24oJm51bV9rZXlzX3N0ciwgIk51bUtleXMiKSkgeworICAgIHJldHVybiBmYWxz
ZTsKKyAgfSBlbHNlIHsKKyAgICBjb25zdCBpbnQgbiA9IHN0cnRvdWwobnVtX2tleXNfc3RyLmNf
c3RyKCksIG51bGxwdHIsIDApOworICAgIGlmIChuID09IDIpIHsKKyAgICAgIG51bV9rZXlzID0g
a1R3bzsKKyAgICB9IGVsc2UgaWYgKG4gPT0gMykgeworICAgICAgbnVtX2tleXMgPSBrVGhyZWU7
CisgICAgfSBlbHNlIHsKKyAgICAgIHQtPlByaW50TGluZSgiaW52YWxpZCBOdW1LZXlzIHZhbHVl
Iik7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisKKyAgc3RkOjpzdHJpbmcgY291
bnQ7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleTEsIGtleTIsIGtleTMsIGl2LCBpbiwgcmVz
dWx0OworICBjb25zdCBzdGQ6OnN0cmluZyBpbl9sYWJlbCA9CisgICAgICBvcGVyYXRpb24gPT0g
a0VuY3J5cHQgPyAiUExBSU5URVhUIiA6ICJDSVBIRVJURVhUIjsKKyAgLy8gY2xhbmctZm9ybWF0
IG9mZgorICBpZiAoIXQtPkdldEJ5dGVzKCZrZXkxLCAiS0VZMSIpIHx8CisgICAgICAhdC0+R2V0
Qnl0ZXMoJmtleTIsICJLRVkyIikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygma2V5MywgIktFWTMi
KSB8fAorICAgICAgKGN0eC0+aGFzX2l2ICYmICF0LT5HZXRCeXRlcygmaXYsICJJViIpKSB8fAor
ICAgICAgIXQtPkdldEJ5dGVzKCZpbiwgaW5fbGFiZWwpKSB7CisgICAgcmV0dXJuIGZhbHNlOwor
ICB9CisgIC8vIGNsYW5nLWZvcm1hdCBvbgorCisgIGZvciAoaW50IGkgPSAwOyBpIDwgNDAwOyBp
KyspIHsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBjdXJyZW50X2l2ID0gaXYsIGN1cnJlbnRf
aW4gPSBpbiwgcHJldl9yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9wcmV2
X3Jlc3VsdDsKKworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleShrZXkxKTsKKyAgICBrZXku
aW5zZXJ0KGtleS5lbmQoKSwga2V5Mi5iZWdpbigpLCBrZXkyLmVuZCgpKTsKKyAgICBrZXkuaW5z
ZXJ0KGtleS5lbmQoKSwga2V5My5iZWdpbigpLCBrZXkzLmVuZCgpKTsKKworICAgIGZvciAoaW50
IGogPSAwOyBqIDwgMTAwMDA7IGorKykgeworICAgICAgcHJldl9wcmV2X3Jlc3VsdCA9IHByZXZf
cmVzdWx0OworICAgICAgcHJldl9yZXN1bHQgPSByZXN1bHQ7CisgICAgICBjb25zdCBFVlBfQ0lQ
SEVSICpjaXBoZXIgPSBjdHgtPmNpcGhlcjsKKyAgICAgIGlmICghQ2lwaGVyT3BlcmF0aW9uKGNp
cGhlciwgJnJlc3VsdCwgb3BlcmF0aW9uID09IGtFbmNyeXB0LCBrZXksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50X2l2LCBjdXJyZW50X2luKSkgeworICAgICAgICB0LT5Qcmlu
dExpbmUoIkNpcGhlck9wZXJhdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgfQorICAgICAgaWYgKGN0eC0+aGFzX2l2KSB7CisgICAgICAgIGlmIChvcGVyYXRpb24g
PT0ga0VuY3J5cHQpIHsKKyAgICAgICAgICBpZiAoaiA9PSAwKSB7CisgICAgICAgICAgICBjdXJy
ZW50X2luID0gY3VycmVudF9pdjsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY3Vy
cmVudF9pbiA9IHByZXZfcmVzdWx0OworICAgICAgICAgIH0KKyAgICAgICAgICBjdXJyZW50X2l2
ID0gcmVzdWx0OworICAgICAgICB9IGVsc2UgeyAgLy8gb3BlcmF0aW9uID09IGtEZWNyeXB0Cisg
ICAgICAgICAgY3VycmVudF9pdiA9IGN1cnJlbnRfaW47CisgICAgICAgICAgY3VycmVudF9pbiA9
IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgY3VycmVudF9pbiA9
IHJlc3VsdDsKKyAgICAgIH0KKyAgICB9CisKKyAgICAvLyBPdXRwdXQgcmVzdWx0IGZvciBDT1VO
VCA9IGkuCisgICAgY29uc3Qgc3RkOjpzdHJpbmcgcmVzdWx0X2xhYmVsID0KKyAgICAgICAgb3Bl
cmF0aW9uID09IGtFbmNyeXB0ID8gIkNJUEhFUlRFWFQiIDogIlBMQUlOVEVYVCI7CisgICAgaWYg
KGkgPT0gMCkgeworICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgb3BfbGFiZWwgPQorICAgICAgICAg
IG9wZXJhdGlvbiA9PSBrRW5jcnlwdCA/ICJFTkNSWVBUIiA6ICJERUNSWVBUIjsKKyAgICAgIHBy
aW50ZigiWyVzXVxuXG4iLCBvcF9sYWJlbC5jX3N0cigpKTsKKyAgICB9CisgICAgcHJpbnRmKCJD
T1VOVCA9ICVkXHJcbktFWTEgPSAlc1xyXG5LRVkyID0gJXNcclxuS0VZMyA9ICVzXHJcbiIsIGks
CisgICAgICAgICAgIEVuY29kZUhleChrZXkxLmRhdGEoKSwga2V5MS5zaXplKCkpLmNfc3RyKCks
CisgICAgICAgICAgIEVuY29kZUhleChrZXkyLmRhdGEoKSwga2V5Mi5zaXplKCkpLmNfc3RyKCks
CisgICAgICAgICAgIEVuY29kZUhleChrZXkzLmRhdGEoKSwga2V5My5zaXplKCkpLmNfc3RyKCkp
OworICAgIGlmIChjdHgtPmhhc19pdikgeworICAgICAgcHJpbnRmKCJJViA9ICVzXHJcbiIsIEVu
Y29kZUhleChpdi5kYXRhKCksIGl2LnNpemUoKSkuY19zdHIoKSk7CisgICAgfQorICAgIHByaW50
ZigiJXMgPSAlc1xyXG4iLCBpbl9sYWJlbC5jX3N0cigpLAorICAgICAgICAgICBFbmNvZGVIZXgo
aW4uZGF0YSgpLCBpbi5zaXplKCkpLmNfc3RyKCkpOworICAgIHByaW50ZigiJXMgPSAlc1xyXG5c
clxuIiwgcmVzdWx0X2xhYmVsLmNfc3RyKCksCisgICAgICAgICAgIEVuY29kZUhleChyZXN1bHQu
ZGF0YSgpLCByZXN1bHQuc2l6ZSgpKS5jX3N0cigpKTsKKworCisgICAgWE9SS2V5V2l0aE9kZFBh
cml0eUxTQigma2V5MSwgcmVzdWx0KTsKKyAgICBYT1JLZXlXaXRoT2RkUGFyaXR5TFNCKCZrZXky
LCBwcmV2X3Jlc3VsdCk7CisgICAgaWYgKG51bV9rZXlzID09IGtUaHJlZSkgeworICAgICAgWE9S
S2V5V2l0aE9kZFBhcml0eUxTQigma2V5MywgcHJldl9wcmV2X3Jlc3VsdCk7CisgICAgfSBlbHNl
IHsKKyAgICAgIFhPUktleVdpdGhPZGRQYXJpdHlMU0IoJmtleTMsIHJlc3VsdCk7CisgICAgfQor
CisgICAgaWYgKGN0eC0+aGFzX2l2KSB7CisgICAgICBpZiAob3BlcmF0aW9uID09IGtFbmNyeXB0
KSB7CisgICAgICAgIGluID0gcHJldl9yZXN1bHQ7CisgICAgICAgIGl2ID0gcmVzdWx0OworICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgaXYgPSBjdXJyZW50X2l2OworICAgICAgICBpbiA9IGN1cnJl
bnRfaW47CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGluID0gcmVzdWx0OworICAgIH0K
KyAgfQorCisgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW50IHVzYWdlKGNoYXIgKmFyZykg
eworICBmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyAoa2F0fG1jdCkgPGNpcGhlcj4gPHRlc3Qg
ZmlsZT5cbiIsIGFyZyk7CisgIHJldHVybiAxOworfQorCitpbnQgY2F2cF90ZGVzX3Rlc3RfbWFp
bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgaWYgKGFyZ2MgIT0gNCkgeworICAgIHJldHVy
biB1c2FnZShhcmd2WzBdKTsKKyAgfQorCisgIGNvbnN0IHN0ZDo6c3RyaW5nIHRtKGFyZ3ZbMV0p
OworICBlbnVtIFRlc3RDdHg6Ok1vZGUgdGVzdF9tb2RlOworICBpZiAodG0gPT0gImthdCIpIHsK
KyAgICB0ZXN0X21vZGUgPSBUZXN0Q3R4OjprS0FUOworICB9IGVsc2UgaWYgKHRtID09ICJtY3Qi
KSB7CisgICAgdGVzdF9tb2RlID0gVGVzdEN0eDo6a01DVDsKKyAgfSBlbHNlIHsKKyAgICBmcHJp
bnRmKHN0ZGVyciwgImludmFsaWQgdGVzdF9tb2RlOiAlc1xuIiwgdG0uY19zdHIoKSk7CisgICAg
cmV0dXJuIHVzYWdlKGFyZ3ZbMF0pOworICB9CisKKyAgY29uc3Qgc3RkOjpzdHJpbmcgY2lwaGVy
X25hbWUoYXJndlsyXSk7CisgIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlciA9IEdldENpcGhlcihh
cmd2WzJdKTsKKyAgaWYgKGNpcGhlciA9PSBudWxscHRyKSB7CisgICAgZnByaW50ZihzdGRlcnIs
ICJpbnZhbGlkIGNpcGhlcjogJXNcbiIsIGFyZ3ZbMl0pOworICAgIHJldHVybiAxOworICB9Cisg
IGJvb2wgaGFzX2l2ID0gY2lwaGVyX25hbWUgIT0gImRlcy1lZGUiICYmIGNpcGhlcl9uYW1lICE9
ICJkZXMtZWRlMyI7CisgIFRlc3RDdHggY3R4ID0ge2NpcGhlciwgaGFzX2l2LCB0ZXN0X21vZGV9
OworCisgIEZpbGVUZXN0RnVuYyB0ZXN0X2ZuID0gdGVzdF9tb2RlID09IFRlc3RDdHg6OmtLQVQg
PyAmVGVzdEtBVCA6ICZUZXN0TUNUOworICBGaWxlVGVzdDo6T3B0aW9ucyBvcHRzOworICBvcHRz
LnBhdGggPSBhcmd2WzNdOworICBvcHRzLmNhbGxiYWNrID0gdGVzdF9mbjsKKyAgb3B0cy5hcmcg
PSAmY3R4OworICBvcHRzLnNpbGVudCA9IHRydWU7CisgIG9wdHMuY29tbWVudF9jYWxsYmFjayA9
IEVjaG9Db21tZW50OworICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF90ZXN0X3V0aWwuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9m
aXBzdG9vbHMvY2F2cC9jYXZwX3Rlc3RfdXRpbC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2EzYjkyMWE4NmI3
YjIwNWRmYzE1MDI2MDY2NjMyZTk2YzlhZjczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwv
Zmlwc3Rvb2xzL2NhdnAvY2F2cF90ZXN0X3V0aWwuY2MKQEAgLTAsMCArMSwyMzEgQEAKKy8qIENv
cHlyaWdodCAoYykgMjAxNywgR29vZ2xlIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwg
Y29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAq
IHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQg
dGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ
REVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBX
SVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5U
SUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkKKyAqIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJF
Q1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZF
UiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElO
IEFOIEFDVElPTgorICogT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMg
QUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBVU0Ug
T1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4gKi8KKworI2luY2x1ZGUgImNhdnBfdGVz
dF91dGlsLmgiCisKKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9k
aWdlc3QuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2VjLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9uaWQu
aD4KKworCitzdGQ6OnN0cmluZyBFbmNvZGVIZXgoY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBp
bl9sZW4pIHsKKyAgc3RhdGljIGNvbnN0IGNoYXIga0hleERpZ2l0c1tdID0gIjAxMjM0NTY3ODlh
YmNkZWYiOworICBzdGQ6OnN0cmluZyByZXQ7CisgIHJldC5yZXNlcnZlKGluX2xlbiAqIDIpOwor
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluX2xlbjsgaSsrKSB7CisgICAgcmV0ICs9IGtIZXhE
aWdpdHNbaW5baV0gPj4gNF07CisgICAgcmV0ICs9IGtIZXhEaWdpdHNbaW5baV0gJiAweGZdOwor
ICB9CisgIHJldHVybiByZXQ7Cit9CisKK2NvbnN0IEVWUF9DSVBIRVIgKkdldENpcGhlcihjb25z
dCBzdGQ6OnN0cmluZyAmbmFtZSkgeworICBpZiAobmFtZSA9PSAiZGVzLWNiYyIpIHsKKyAgICBy
ZXR1cm4gRVZQX2Rlc19jYmMoKTsKKyAgfSBlbHNlIGlmIChuYW1lID09ICJkZXMtZWNiIikgewor
ICAgIHJldHVybiBFVlBfZGVzX2VjYigpOworICB9IGVsc2UgaWYgKG5hbWUgPT0gImRlcy1lZGUi
KSB7CisgICAgcmV0dXJuIEVWUF9kZXNfZWRlKCk7CisgIH0gZWxzZSBpZiAobmFtZSA9PSAiZGVz
LWVkZTMiKSB7CisgICAgcmV0dXJuIEVWUF9kZXNfZWRlMygpOworICB9IGVsc2UgaWYgKG5hbWUg
PT0gImRlcy1lZGUtY2JjIikgeworICAgIHJldHVybiBFVlBfZGVzX2VkZV9jYmMoKTsKKyAgfSBl
bHNlIGlmIChuYW1lID09ICJkZXMtZWRlMy1jYmMiKSB7CisgICAgcmV0dXJuIEVWUF9kZXNfZWRl
M19jYmMoKTsKKyAgfSBlbHNlIGlmIChuYW1lID09ICJyYzQiKSB7CisgICAgcmV0dXJuIEVWUF9y
YzQoKTsKKyAgfSBlbHNlIGlmIChuYW1lID09ICJhZXMtMTI4LWVjYiIpIHsKKyAgICByZXR1cm4g
RVZQX2Flc18xMjhfZWNiKCk7CisgIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVzLTI1Ni1lY2IiKSB7
CisgICAgcmV0dXJuIEVWUF9hZXNfMjU2X2VjYigpOworICB9IGVsc2UgaWYgKG5hbWUgPT0gImFl
cy0xMjgtY2JjIikgeworICAgIHJldHVybiBFVlBfYWVzXzEyOF9jYmMoKTsKKyAgfSBlbHNlIGlm
IChuYW1lID09ICJhZXMtMTI4LWdjbSIpIHsKKyAgICByZXR1cm4gRVZQX2Flc18xMjhfZ2NtKCk7
CisgIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVzLTEyOC1vZmIiKSB7CisgICAgcmV0dXJuIEVWUF9h
ZXNfMTI4X29mYigpOworICB9IGVsc2UgaWYgKG5hbWUgPT0gImFlcy0xOTItY2JjIikgeworICAg
IHJldHVybiBFVlBfYWVzXzE5Ml9jYmMoKTsKKyAgfSBlbHNlIGlmIChuYW1lID09ICJhZXMtMTky
LWN0ciIpIHsKKyAgICByZXR1cm4gRVZQX2Flc18xOTJfY3RyKCk7CisgIH0gZWxzZSBpZiAobmFt
ZSA9PSAiYWVzLTE5Mi1lY2IiKSB7CisgICAgcmV0dXJuIEVWUF9hZXNfMTkyX2VjYigpOworICB9
IGVsc2UgaWYgKG5hbWUgPT0gImFlcy0yNTYtY2JjIikgeworICAgIHJldHVybiBFVlBfYWVzXzI1
Nl9jYmMoKTsKKyAgfSBlbHNlIGlmIChuYW1lID09ICJhZXMtMTI4LWN0ciIpIHsKKyAgICByZXR1
cm4gRVZQX2Flc18xMjhfY3RyKCk7CisgIH0gZWxzZSBpZiAobmFtZSA9PSAiYWVzLTI1Ni1jdHIi
KSB7CisgICAgcmV0dXJuIEVWUF9hZXNfMjU2X2N0cigpOworICB9IGVsc2UgaWYgKG5hbWUgPT0g
ImFlcy0yNTYtZ2NtIikgeworICAgIHJldHVybiBFVlBfYWVzXzI1Nl9nY20oKTsKKyAgfSBlbHNl
IGlmIChuYW1lID09ICJhZXMtMjU2LW9mYiIpIHsKKyAgICByZXR1cm4gRVZQX2Flc18yNTZfb2Zi
KCk7CisgIH0KKyAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQ2lwaGVyT3BlcmF0aW9uKGNv
bnN0IEVWUF9DSVBIRVIgKmNpcGhlciwgc3RkOjp2ZWN0b3I8dWludDhfdD4gKm91dCwKKyAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgZW5jcnlwdCwgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4g
JmtleSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZp
diwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZpbikg
eworICBic3NsOjpTY29wZWRFVlBfQ0lQSEVSX0NUWCBjdHg7CisgIGlmICghRVZQX0NpcGhlcklu
aXRfZXgoY3R4LmdldCgpLCBjaXBoZXIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdCA/IDEgOiAwKSkgeworICAgIHJldHVybiBmYWxz
ZTsKKyAgfQorICBpZiAoIWl2LmVtcHR5KCkgJiYgaXYuc2l6ZSgpICE9IEVWUF9DSVBIRVJfQ1RY
X2l2X2xlbmd0aChjdHguZ2V0KCkpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgaW50
IHJlc3VsdF9sZW4xID0gMCwgcmVzdWx0X2xlbjI7CisgICpvdXQgPSBzdGQ6OnZlY3Rvcjx1aW50
OF90Pihpbi5zaXplKCkpOworICBpZiAoIUVWUF9DSVBIRVJfQ1RYX3NldF9rZXlfbGVuZ3RoKGN0
eC5nZXQoKSwga2V5LnNpemUoKSkgfHwKKyAgICAgICFFVlBfQ2lwaGVySW5pdF9leChjdHguZ2V0
KCksIG51bGxwdHIsIG51bGxwdHIsIGtleS5kYXRhKCksIGl2LmRhdGEoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAtMSkgfHwKKyAgICAgICFFVlBfQ0lQSEVSX0NUWF9zZXRfcGFkZGluZyhj
dHguZ2V0KCksIDApIHx8CisgICAgICAhRVZQX0NpcGhlclVwZGF0ZShjdHguZ2V0KCksIG91dC0+
ZGF0YSgpLCAmcmVzdWx0X2xlbjEsIGluLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGluLnNpemUoKSkgfHwKKyAgICAgICFFVlBfQ2lwaGVyRmluYWxfZXgoY3R4LmdldCgpLCBvdXQt
PmRhdGEoKSArIHJlc3VsdF9sZW4xLCAmcmVzdWx0X2xlbjIpKSB7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIG91dC0+cmVzaXplKHJlc3VsdF9sZW4xICsgcmVzdWx0X2xlbjIpOworCisgIHJl
dHVybiB0cnVlOworfQorCitib29sIEFFQURFbmNyeXB0KGNvbnN0IEVWUF9BRUFEICphZWFkLCBz
dGQ6OnZlY3Rvcjx1aW50OF90PiAqY3QsCisgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVp
bnQ4X3Q+ICp0YWcsIHNpemVfdCB0YWdfbGVuLAorICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6
OnZlY3Rvcjx1aW50OF90PiAma2V5LAorICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rv
cjx1aW50OF90PiAmcHQsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4
X3Q+ICZhYWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZp
dikgeworICBic3NsOjpTY29wZWRFVlBfQUVBRF9DVFggY3R4OworICBpZiAoIUVWUF9BRUFEX0NU
WF9pbml0KGN0eC5nZXQoKSwgYWVhZCwga2V5LmRhdGEoKSwga2V5LnNpemUoKSwgdGFnX2xlbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyKSkgeworICAgIHJldHVybiBmYWxzZTsK
KyAgfQorCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2l6ZShwdC5zaXpl
KCkgKyBFVlBfQUVBRF9tYXhfb3ZlcmhlYWQoYWVhZCkpOworICBzaXplX3Qgb3V0X2xlbjsKKyAg
aWYgKCFFVlBfQUVBRF9DVFhfc2VhbChjdHguZ2V0KCksIG91dC5kYXRhKCksICZvdXRfbGVuLCBv
dXQuc2l6ZSgpLCBpdi5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgaXYuc2l6ZSgp
LCBwdC5kYXRhKCksIHB0LnNpemUoKSwgYWFkLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBhYWQuc2l6ZSgpKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBvdXQucmVzaXpl
KG91dF9sZW4pOworCisgIGN0LT5hc3NpZ24ob3V0LmJlZ2luKCksIG91dC5lbmQoKSAtIHRhZ19s
ZW4pOworICB0YWctPmFzc2lnbihvdXQuZW5kKCkgLSB0YWdfbGVuLCBvdXQuZW5kKCkpOworCisg
IHJldHVybiB0cnVlOworfQorCitib29sIEFFQUREZWNyeXB0KGNvbnN0IEVWUF9BRUFEICphZWFk
LCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAqcHQsIHNpemVfdCBwdF9sZW4sCisgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZrZXksCisgICAgICAgICAgICAgICAgIGNv
bnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZhYWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZjdCwKKyAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0
b3I8dWludDhfdD4gJnRhZywKKyAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gJml2KSB7CisgIGJzc2w6OlNjb3BlZEVWUF9BRUFEX0NUWCBjdHg7CisgIGlmICghRVZQ
X0FFQURfQ1RYX2luaXRfd2l0aF9kaXJlY3Rpb24oY3R4LmdldCgpLCBhZWFkLCBrZXkuZGF0YSgp
LCBrZXkuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh
Zy5zaXplKCksIGV2cF9hZWFkX29wZW4pKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+IGluID0gY3Q7CisgIGluLnJlc2VydmUoY3Quc2l6ZSgpICsgdGFn
LnNpemUoKSk7CisgIGluLmluc2VydChpbi5lbmQoKSwgdGFnLmJlZ2luKCksIHRhZy5lbmQoKSk7
CisKKyAgcHQtPnJlc2l6ZShwdF9sZW4pOworICBzaXplX3Qgb3V0X3B0X2xlbjsKKyAgaWYgKCFF
VlBfQUVBRF9DVFhfb3BlbihjdHguZ2V0KCksIHB0LT5kYXRhKCksICZvdXRfcHRfbGVuLCBwdC0+
c2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGl2LmRhdGEoKSwgaXYuc2l6ZSgpLCBp
bi5kYXRhKCksIGluLnNpemUoKSwgYWFkLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBhYWQuc2l6ZSgpKSB8fAorICAgICAgb3V0X3B0X2xlbiAhPSBwdF9sZW4pIHsKKyAgICByZXR1
cm4gZmFsc2U7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQgSGV4VG9CSUdO
VU0oYnNzbDo6VW5pcXVlUHRyPEJJR05VTT4gKm91dCwgY29uc3QgY2hhciAqaW4pIHsKKyAgQklH
TlVNICpyYXcgPSBOVUxMOworICBpbnQgcmV0ID0gQk5faGV4MmJuKCZyYXcsIGluKTsKKyAgb3V0
LT5yZXNldChyYXcpOworICByZXR1cm4gcmV0OworfQorCitic3NsOjpVbmlxdWVQdHI8QklHTlVN
PiBHZXRCSUdOVU0oRmlsZVRlc3QgKnQsIGNvbnN0IGNoYXIgKmF0dHJpYnV0ZSkgeworICBzdGQ6
OnN0cmluZyBoZXg7CisgIGlmICghdC0+R2V0QXR0cmlidXRlKCZoZXgsIGF0dHJpYnV0ZSkpIHsK
KyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorCisgIGJzc2w6OlVuaXF1ZVB0cjxCSUdOVU0+IHJl
dDsKKyAgaWYgKEhleFRvQklHTlVNKCZyZXQsIGhleC5jX3N0cigpKSAhPSBzdGF0aWNfY2FzdDxp
bnQ+KGhleC5zaXplKCkpKSB7CisgICAgdC0+UHJpbnRMaW5lKCJDb3VsZCBub3QgZGVjb2RlICcl
cycuIiwgaGV4LmNfc3RyKCkpOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiBy
ZXQ7Cit9CisKK2ludCBHZXRFQ0dyb3VwTklERnJvbUluc3RydWN0aW9uKEZpbGVUZXN0ICp0LCBj
b25zdCBjaGFyICoqb3V0X3N0cikgeworICBjb25zdCBjaGFyICpkdW1teTsKKyAgaWYgKG91dF9z
dHIgPT0gbnVsbHB0cikgeworICAgIG91dF9zdHIgPSAmZHVtbXk7CisgIH0KKworICBpZiAodC0+
SGFzSW5zdHJ1Y3Rpb24oIlAtMjI0IikpIHsKKyAgICAqb3V0X3N0ciA9ICJQLTIyNCI7CisgICAg
cmV0dXJuIE5JRF9zZWNwMjI0cjE7CisgIH0KKyAgaWYgKHQtPkhhc0luc3RydWN0aW9uKCJQLTI1
NiIpKSB7CisgICAgKm91dF9zdHIgPSAiUC0yNTYiOworICAgIHJldHVybiBOSURfWDlfNjJfcHJp
bWUyNTZ2MTsKKyAgfQorICBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIlAtMzg0IikpIHsKKyAgICAq
b3V0X3N0ciA9ICJQLTM4NCI7CisgICAgcmV0dXJuIE5JRF9zZWNwMzg0cjE7CisgIH0KKyAgaWYg
KHQtPkhhc0luc3RydWN0aW9uKCJQLTUyMSIpKSB7CisgICAgKm91dF9zdHIgPSAiUC01MjEiOwor
ICAgIHJldHVybiBOSURfc2VjcDUyMXIxOworICB9CisgIHQtPlByaW50TGluZSgiTm8gc3VwcG9y
dGVkIGdyb3VwIHNwZWNpZmllZC4iKTsKKyAgcmV0dXJuIE5JRF91bmRlZjsKK30KKworY29uc3Qg
RVZQX01EICpHZXREaWdlc3RGcm9tSW5zdHJ1Y3Rpb24oRmlsZVRlc3QgKnQpIHsKKyAgaWYgKHQt
Pkhhc0luc3RydWN0aW9uKCJTSEEtMSIpKSB7CisgICAgcmV0dXJuIEVWUF9zaGExKCk7CisgIH0K
KyAgaWYgKHQtPkhhc0luc3RydWN0aW9uKCJTSEEtMjI0IikpIHsKKyAgICByZXR1cm4gRVZQX3No
YTIyNCgpOworICB9CisgIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiU0hBLTI1NiIpKSB7CisgICAg
cmV0dXJuIEVWUF9zaGEyNTYoKTsKKyAgfQorICBpZiAodC0+SGFzSW5zdHJ1Y3Rpb24oIlNIQS0z
ODQiKSkgeworICAgIHJldHVybiBFVlBfc2hhMzg0KCk7CisgIH0KKyAgaWYgKHQtPkhhc0luc3Ry
dWN0aW9uKCJTSEEtNTEyIikpIHsKKyAgICByZXR1cm4gRVZQX3NoYTUxMigpOworICB9CisgIHQt
PlByaW50TGluZSgiTm8gc3VwcG9ydGVkIGRpZ2VzdCBmdW5jdGlvbiBzcGVjaWZpZWQuIik7Cisg
IHJldHVybiBudWxscHRyOworfQorCit2b2lkIEVjaG9Db21tZW50KGNvbnN0IHN0ZDo6c3RyaW5n
JiBjb21tZW50KSB7CisgIGZ3cml0ZShjb21tZW50LmNfc3RyKCksIGNvbW1lbnQuc2l6ZSgpLCAx
LCBzdGRvdXQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvY2F2cF90
ZXN0X3V0aWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfdGVzdF91dGlsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2E5ZTc5MGNiNzc3MWE3ZDM5YTI2MmYyZmI1YmY4MzM5ZWFjZTFiZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfdGVzdF91dGlsLmgKQEAg
LTAsMCArMSw3OCBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE3LCBHb29nbGUgSW5jLgorICoKKyAq
IFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMg
c29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVi
eSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBh
bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBU
SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMg
QUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5H
IEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
Uy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWQorICogU1BF
Q0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBE
QU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9S
IFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisgKiBPRiBDT05UUkFDVCwgTkVHTElHRU5D
RSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOCisgKiBDT05O
RUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLiAqLwor
CisjaWZuZGVmIE9QRU5TU0xfSEVBREVSX0NSWVBUT19GSVBTTU9EVUxFX0NBVlBfVEVTVF9VVElM
X0gKKyNkZWZpbmUgT1BFTlNTTF9IRUFERVJfQ1JZUFRPX0ZJUFNNT0RVTEVfQ0FWUF9URVNUX1VU
SUxfSAorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUg
PHZlY3Rvcj4KKworI2luY2x1ZGUgPG9wZW5zc2wvYWVhZC5oPgorI2luY2x1ZGUgPG9wZW5zc2wv
Y2lwaGVyLmg+CisKKyNpbmNsdWRlICIuLi9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuaCIKKworCitz
dGQ6OnN0cmluZyBFbmNvZGVIZXgoY29uc3QgdWludDhfdCAqaW4sIHNpemVfdCBpbl9sZW4pOwor
Citjb25zdCBFVlBfQ0lQSEVSICpHZXRDaXBoZXIoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUpOwor
Citib29sIENpcGhlck9wZXJhdGlvbihjb25zdCBFVlBfQ0lQSEVSICpjaXBoZXIsIHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICBib29sIGVuY3J5cHQsIGNv
bnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICZrZXksCisgICAgICAgICAgICAgICAgICAgICBjb25z
dCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAmaXYsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBz
dGQ6OnZlY3Rvcjx1aW50OF90PiAmaW4pOworCitib29sIEFFQURFbmNyeXB0KGNvbnN0IEVWUF9B
RUFEICphZWFkLCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAqY3QsCisgICAgICAgICAgICAgICAgIHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+ICp0YWcsIHNpemVfdCB0YWdfbGVuLAorICAgICAgICAgICAgICAg
ICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAma2V5LAorICAgICAgICAgICAgICAgICBjb25z
dCBzdGQ6OnZlY3Rvcjx1aW50OF90PiAmcHQsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6
dmVjdG9yPHVpbnQ4X3Q+ICZhYWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9y
PHVpbnQ4X3Q+ICZpdik7CisKK2Jvb2wgQUVBRERlY3J5cHQoY29uc3QgRVZQX0FFQUQgKmFlYWQs
IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+ICpwdCwgc2l6ZV90IHB0X2xlbiwKKyAgICAgICAgICAgICAg
ICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJmtleSwKKyAgICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gJmFhZCwKKyAgICAgICAgICAgICAgICAgY29uc3Qgc3Rk
Ojp2ZWN0b3I8dWludDhfdD4gJmN0LAorICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rv
cjx1aW50OF90PiAmdGFnLAorICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50
OF90PiAmaXYpOworCitic3NsOjpVbmlxdWVQdHI8QklHTlVNPiBHZXRCSUdOVU0oRmlsZVRlc3Qg
KnQsIGNvbnN0IGNoYXIgKmF0dHJpYnV0ZSk7CisKK2ludCBHZXRFQ0dyb3VwTklERnJvbUluc3Ry
dWN0aW9uKEZpbGVUZXN0ICp0LCBjb25zdCBjaGFyICoqb3V0X3N0ciA9IG51bGxwdHIpOworCitj
b25zdCBFVlBfTUQgKkdldERpZ2VzdEZyb21JbnN0cnVjdGlvbihGaWxlVGVzdCAqdCk7CisKK3Zv
aWQgRWNob0NvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQpOworCitpbnQgY2F2cF9h
ZXNfZ2NtX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNhdnBfYWVzX3Rl
c3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNhdnBfY3RyX2RyYmdfdGVzdF9t
YWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2F2cF9lY2RzYTJfa2V5cGFpcl90ZXN0
X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjYXZwX2VjZHNhMl9wa3ZfdGVzdF9t
YWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2F2cF9lY2RzYTJfc2lnZ2VuX3Rlc3Rf
bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNhdnBfZWNkc2EyX3NpZ3Zlcl90ZXN0
X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjYXZwX2htYWNfdGVzdF9tYWluKGlu
dCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2F2cF9rYXNfdGVzdF9tYWluKGludCBhcmdjLCBj
aGFyICoqYXJndik7CitpbnQgY2F2cF9rZXl3cmFwX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAq
KmFyZ3YpOworaW50IGNhdnBfcnNhMl9rZXlnZW5fdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoq
YXJndik7CitpbnQgY2F2cF9yc2EyX3NpZ2dlbl90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiph
cmd2KTsKK2ludCBjYXZwX3JzYTJfc2lndmVyX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFy
Z3YpOworaW50IGNhdnBfc2hhX21vbnRlX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
OworaW50IGNhdnBfc2hhX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNh
dnBfdGRlc190ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjYXZwX3Rsc2tk
Zl90ZXN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKKworCisjZW5kaWYgIC8vIE9QRU5T
U0xfSEVBREVSX0NSWVBUT19GSVBTTU9EVUxFX0NBVlBfVEVTVF9VVElMX0gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL2NhdnBfdGxza2RmX3Rlc3QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9m
aXBzdG9vbHMvY2F2cC9jYXZwX3Rsc2tkZl90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZjJkNDdjNDgx
MDM5NjgwZjc0NjhhMmU3MDhkNGY3OTYwYzlkODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRp
bC9maXBzdG9vbHMvY2F2cC9jYXZwX3Rsc2tkZl90ZXN0LmNjCkBAIC0wLDAgKzEsMTEzIEBACisv
KiBDb3B5cmlnaHQgKGMpIDIwMTgsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1
c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55
CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3Zp
ZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwor
ICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FS
UkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElO
RElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRT
T0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhF
UiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJ
T1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUg
VVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKy8vIGNhdnBfdGxza2Rm
X3Rlc3QgcHJvY2Vzc2VzIE5JU1QgVExTIEtERiB0ZXN0IHZlY3RvcnMgYW5kIGVtaXRzIHRoZQor
Ly8gY29ycmVzcG9uZGluZyByZXNwb25zZS4KKy8vIFNlZSBodHRwczovL2NzcmMubmlzdC5nb3Yv
Q1NSQy9tZWRpYS9Qcm9qZWN0cy9DcnlwdG9ncmFwaGljLUFsZ29yaXRobS1WYWxpZGF0aW9uLVBy
b2dyYW0vZG9jdW1lbnRzL2NvbXBvbmVudHMvYXNrZGZ2cy5wZGYsIHNlY3Rpb24gNi40LgorCisj
aW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUgPG9wZW5z
c2wvZGlnZXN0Lmg+CisKKyNpbmNsdWRlICJjYXZwX3Rlc3RfdXRpbC5oIgorI2luY2x1ZGUgIi4u
L2NyeXB0by9maXBzbW9kdWxlL3Rscy9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIi4uL2NyeXB0by90
ZXN0L2ZpbGVfdGVzdC5oIgorCisKK3N0YXRpYyBib29sIFRlc3RUTFNLREYoRmlsZVRlc3QgKnQs
IHZvaWQgKmFyZykgeworICBjb25zdCBFVlBfTUQgKm1kID0gbnVsbHB0cjsKKworICBpZiAodC0+
SGFzSW5zdHJ1Y3Rpb24oIlRMUyAxLjAvMS4xIikpIHsKKyAgICBtZCA9IEVWUF9tZDVfc2hhMSgp
OworICB9IGVsc2UgaWYgKHQtPkhhc0luc3RydWN0aW9uKCJUTFMgMS4yIikpIHsKKyAgICBpZiAo
dC0+SGFzSW5zdHJ1Y3Rpb24oIlNIQS0yNTYiKSkgeworICAgICAgbWQgPSBFVlBfc2hhMjU2KCk7
CisgICAgfSBlbHNlIGlmICh0LT5IYXNJbnN0cnVjdGlvbigiU0hBLTM4NCIpKSB7CisgICAgICBt
ZCA9IEVWUF9zaGEzODQoKTsKKyAgICB9IGVsc2UgaWYgKHQtPkhhc0luc3RydWN0aW9uKCJTSEEt
NTEyIikpIHsKKyAgICAgIG1kID0gRVZQX3NoYTUxMigpOworICAgIH0KKyAgfQorCisgIGlmICht
ZCA9PSBudWxscHRyKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgc3RkOjpzdHJpbmcg
a2V5X2Jsb2NrX2xlbl9zdHI7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHByZW1hc3Rlciwgc2Vy
dmVyX3JhbmRvbSwgY2xpZW50X3JhbmRvbSwKKyAgICAgIGtleV9ibG9ja19zZXJ2ZXJfcmFuZG9t
LCBrZXlfYmxvY2tfY2xpZW50X3JhbmRvbTsKKyAgaWYgKCF0LT5HZXRCeXRlcygmcHJlbWFzdGVy
LCAicHJlX21hc3Rlcl9zZWNyZXQiKSB8fAorICAgICAgIXQtPkdldEJ5dGVzKCZzZXJ2ZXJfcmFu
ZG9tLCAic2VydmVySGVsbG9fcmFuZG9tIikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygmY2xpZW50
X3JhbmRvbSwgImNsaWVudEhlbGxvX3JhbmRvbSIpIHx8CisgICAgICAvLyBUaGUgTklTVCB0ZXN0
cyBzcGVjaWZ5IGRpZmZlcmVudCBjbGllbnQgYW5kIHNlcnZlciByYW5kb21zIGZvciB0aGUKKyAg
ICAgIC8vIGV4cGFuc2lvbiBzdGVwIGZyb20gdGhlIG1hc3Rlci1zZWNyZXQgc3RlcC4gVGhpcyBp
cyBpbXBvc3NpYmxlIGluIFRMUy4KKyAgICAgICF0LT5HZXRCeXRlcygma2V5X2Jsb2NrX3NlcnZl
cl9yYW5kb20sICJzZXJ2ZXJfcmFuZG9tIikgfHwKKyAgICAgICF0LT5HZXRCeXRlcygma2V5X2Js
b2NrX2NsaWVudF9yYW5kb20sICJjbGllbnRfcmFuZG9tIikgfHwKKyAgICAgICF0LT5HZXRJbnN0
cnVjdGlvbigma2V5X2Jsb2NrX2xlbl9zdHIsICJrZXkgYmxvY2sgbGVuZ3RoIikgfHwKKyAgICAg
IC8vIFRoZXNlIGFyZSBpZ25vcmVkLgorICAgICAgIXQtPkhhc0F0dHJpYnV0ZSgiQ09VTlQiKSB8
fAorICAgICAgIXQtPkhhc0luc3RydWN0aW9uKCJwcmUtbWFzdGVyIHNlY3JldCBsZW5ndGgiKSkg
eworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHVpbnQ4X3QgbWFzdGVyX3NlY3JldFs0OF07
CisgIHN0YXRpYyBjb25zdCBjaGFyIGtNYXN0ZXJTZWNyZXRMYWJlbFtdID0gIm1hc3RlciBzZWNy
ZXQiOworICBpZiAoIUNSWVBUT190bHMxX3ByZihtZCwgbWFzdGVyX3NlY3JldCwgc2l6ZW9mKG1h
c3Rlcl9zZWNyZXQpLAorICAgICAgICAgICAgICAgICAgICAgICBwcmVtYXN0ZXIuZGF0YSgpLCBw
cmVtYXN0ZXIuc2l6ZSgpLCBrTWFzdGVyU2VjcmV0TGFiZWwsCisgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVvZihrTWFzdGVyU2VjcmV0TGFiZWwpIC0gMSwgY2xpZW50X3JhbmRvbS5kYXRhKCks
CisgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9yYW5kb20uc2l6ZSgpLCBzZXJ2ZXJfcmFu
ZG9tLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX3JhbmRvbS5zaXplKCkp
KSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgZXJybm8gPSAwOworICBjb25zdCBsb25n
IGludCBrZXlfYmxvY2tfYml0cyA9CisgICAgICBzdHJ0b2woa2V5X2Jsb2NrX2xlbl9zdHIuY19z
dHIoKSwgbnVsbHB0ciwgMTApOworICBpZiAoZXJybm8gIT0gMCB8fCBrZXlfYmxvY2tfYml0cyA8
PSAwIHx8IChrZXlfYmxvY2tfYml0cyAmIDcpICE9IDApIHsKKyAgICByZXR1cm4gZmFsc2U7Cisg
IH0KKyAgY29uc3Qgc2l6ZV90IGtleV9ibG9ja19sZW4gPSBrZXlfYmxvY2tfYml0cyAvIDg7Cisg
IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleV9ibG9jayhrZXlfYmxvY2tfbGVuKTsKKyAgc3RhdGlj
IGNvbnN0IGNoYXIga0xhYmVsW10gPSAia2V5IGV4cGFuc2lvbiI7CisgIGlmICghQ1JZUFRPX3Rs
czFfcHJmKAorICAgICAgICAgIG1kLCBrZXlfYmxvY2suZGF0YSgpLCBrZXlfYmxvY2suc2l6ZSgp
LCBtYXN0ZXJfc2VjcmV0LAorICAgICAgICAgIHNpemVvZihtYXN0ZXJfc2VjcmV0KSwga0xhYmVs
LCBzaXplb2Yoa0xhYmVsKSAtIDEsCisgICAgICAgICAga2V5X2Jsb2NrX3NlcnZlcl9yYW5kb20u
ZGF0YSgpLCBrZXlfYmxvY2tfc2VydmVyX3JhbmRvbS5zaXplKCksCisgICAgICAgICAga2V5X2Js
b2NrX2NsaWVudF9yYW5kb20uZGF0YSgpLCBrZXlfYmxvY2tfY2xpZW50X3JhbmRvbS5zaXplKCkp
KSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcHJpbnRmKCIlc21hc3Rlcl9zZWNyZXQg
PSAlc1xyXG5rZXlfYmxvY2sgPSAlc1xyXG5cclxuIiwKKyAgICAgICAgIHQtPkN1cnJlbnRUZXN0
VG9TdHJpbmcoKS5jX3N0cigpLAorICAgICAgICAgRW5jb2RlSGV4KG1hc3Rlcl9zZWNyZXQsIHNp
emVvZihtYXN0ZXJfc2VjcmV0KSkuY19zdHIoKSwKKyAgICAgICAgIEVuY29kZUhleChrZXlfYmxv
Y2suZGF0YSgpLCBrZXlfYmxvY2suc2l6ZSgpKS5jX3N0cigpKTsKKworICByZXR1cm4gdHJ1ZTsK
K30KKworaW50IGNhdnBfdGxza2RmX3Rlc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsK
KyAgaWYgKGFyZ2MgIT0gMikgeworICAgIGZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0ZXN0
IGZpbGU+XG4iLCBhcmd2WzBdKTsKKyAgICByZXR1cm4gMTsKKyAgfQorCisgIEZpbGVUZXN0OjpP
cHRpb25zIG9wdHM7CisgIG9wdHMucGF0aCA9IGFyZ3ZbMV07CisgIG9wdHMuY2FsbGJhY2sgPSBU
ZXN0VExTS0RGOworICBvcHRzLnNpbGVudCA9IHRydWU7CisgIG9wdHMuY29tbWVudF9jYWxsYmFj
ayA9IEVjaG9Db21tZW50OworICByZXR1cm4gRmlsZVRlc3RNYWluKG9wdHMpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvcnVuX2NhdnAuZ28gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBz
dG9vbHMvY2F2cC9ydW5fY2F2cC5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzdmNDUzMjZlODk4OTU1YTkyZjE4
OGRmY2RiNzVhNjczNmZjMmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xz
L2NhdnAvcnVuX2NhdnAuZ28KQEAgLTAsMCArMSw1OTAgQEAKKy8vIHJ1bl9jYXZwLmdvIHByb2Nl
c3NlcyBDQVZQIGlucHV0IGZpbGVzIGFuZCBnZW5lcmF0ZXMgc3VpdGFibGUgcmVzcG9uc2UKKy8v
IGZpbGVzLCBvcHRpb25hbGx5IGNvbXBhcmluZyB0aGUgcmVzdWx0cyBhZ2FpbnN0IHRoZSBwcm92
aWRlZCBGQVggZmlsZXMuCitwYWNrYWdlIG1haW4KKworaW1wb3J0ICgKKwkiYnVmaW8iCisJImVy
cm9ycyIKKwkiZmxhZyIKKwkiZm10IgorCSJvcyIKKwkib3MvZXhlYyIKKwkicGF0aCIKKwkicGF0
aC9maWxlcGF0aCIKKwkicnVudGltZSIKKwkic3RyaW5ncyIKKwkic3luYyIKKwkidGltZSIKKykK
KwordmFyICgKKwlvcmFjbGVQYXRoID0gZmxhZy5TdHJpbmcoIm9yYWNsZS1iaW4iLCAiIiwgIlBh
dGggdG8gdGhlIG9yYWNsZSBiaW5hcnkiKQorCXN1aXRlRGlyICAgPSBmbGFnLlN0cmluZygic3Vp
dGUtZGlyIiwgIiIsICJCYXNlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBDQVZQIHRlc3Qgc3Vp
dGUiKQorCW5vRkFYICAgICAgPSBmbGFnLkJvb2woIm5vLWZheCIsIGZhbHNlLCAiU2tpcCBjb21w
YXJpbmcgYWdhaW5zdCBGQVggZmlsZXMiKQorCWFuZHJvaWQgICAgPSBmbGFnLkJvb2woImFuZHJv
aWQiLCBmYWxzZSwgIlJ1biB0ZXN0cyB2aWEgQURCIikKKykKKworY29uc3QgKAorCWFuZHJvaWRU
bXBQYXRoICAgICAgID0gIi9kYXRhL2xvY2FsL3RtcC8iCisJYW5kcm9pZENBVlBQYXRoICAgICAg
PSBhbmRyb2lkVG1wUGF0aCArICJjYXZwIgorCWFuZHJvaWRMaWJDcnlwdG9QYXRoID0gYW5kcm9p
ZFRtcFBhdGggKyAibGliY3J5cHRvLnNvIgorKQorCisvLyB0ZXN0IGRlc2NyaWJlcyBhIHNpbmds
ZSByZXF1ZXN0IGZpbGUuCit0eXBlIHRlc3Qgc3RydWN0IHsKKwkvLyBpbkZpbGUgaXMgdGhlIGJh
c2Ugb2YgdGhlIGZpbGVuYW1lIHdpdGhvdXQgYW4gZXh0ZW5zaW9uLCBpLmUuCisJLy8g4oCcRUNC
TUNUMTI44oCdLgorCWluRmlsZSBzdHJpbmcKKwkvLyBhcmdzIGFyZSB0aGUgYXJndW1lbnRzIChu
b3QgaW5jbHVkaW5nIHRoZSBpbnB1dCBmaWxlbmFtZSkgdG8gdGhlCisJLy8gb3JhY2xlIGJpbmFy
eS4KKwlhcmdzIFtdc3RyaW5nCisJLy8gbm9GQVgsIGlmIHRydWUsIGluZGljYXRlcyB0aGF0IHRo
ZSBvdXRwdXQgY2Fubm90IGJlIGNvbXBhcmVkIGFnYWluc3QKKwkvLyB0aGUgRkFYIGZpbGUuIChF
LmcuIGJlY2F1c2UgdGhlIHByaW1pdGl2ZSBpcyBub24tZGV0ZXJtaW5pc3RpYy4pCisJbm9GQVgg
Ym9vbAorfQorCisvLyBuZXh0TGluZVN0YXRlIGNhbiBiZSB1c2VkIGJ5IEZBWCBuZXh0LWxpbmUg
ZnVuY3Rpb24gdG8gc3RvcmUgc3RhdGUuCit0eXBlIG5leHRMaW5lU3RhdGUgc3RydWN0IHsKKwkv
LyBTdGF0ZSB1c2VkIGJ5IHRoZSBLQVMgdGVzdC4KKwluZXh0SXNJVVRIYXNoIGJvb2wKK30KKwor
Ly8gdGVzdFN1aXRlIGRlc2NyaWJlcyBhIHNlcmllcyBvZiB0ZXN0cyB0aGF0IGFyZSBoYW5kbGVk
IGJ5IGEgc2luZ2xlIG9yYWNsZQorLy8gYmluYXJ5LgordHlwZSB0ZXN0U3VpdGUgc3RydWN0IHsK
KwkvLyBkaXJlY3RvcnkgaXMgdGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSBpbiB0aGUgQ0FWUCBp
bnB1dCwgaS5lLiDigJxBRVPigJ0uCisJZGlyZWN0b3J5IHN0cmluZworCS8vIHN1aXRlIG5hbWVz
IHRoZSB0ZXN0IHN1aXRlIHRvIHBhc3MgYXMgdGhlIGZpcnN0IGNvbW1hbmQtbGluZSBhcmd1bWVu
dC4KKwlzdWl0ZSBzdHJpbmcKKwkvLyBuZXh0TGluZUZ1bmMsIGlmIG5vdCBuaWwsIGlzIHRoZSBm
dW5jdGlvbiB1c2VkIHRvIHJlYWQgdGhlIG5leHQgbGluZQorCS8vIGZyb20gdGhlIEZBWCBmaWxl
LiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNraXAgbGluZXMgYW5kL29yIG11dGF0ZSB0aGVtCisJLy8g
YXMgbmVlZGVkLiBUaGUgc2Vjb25kIGFyZ3VtZW50IGNhbiBiZSB1c2VkIGJ5IHRoZSBzY2FubmVy
IHRvIHN0b3JlCisJLy8gc3RhdGUsIGlmIG5lZWRlZC4gSWYgaXNXaWxkY2FyZCBpcyB0cnVlIG9u
IHJldHVybiB0aGVuIGxpbmUgaXMgbm90CisJLy8gbWVhbmluZ2Z1bCBhbmQgYW55IGxpbmUgZnJv
bSB0aGUgcmVzcG9uc2UgZmlsZSBzaG91bGQgYmUgYWNjZXB0ZWQuCisJbmV4dExpbmVGdW5jIGZ1
bmMoKmJ1ZmlvLlNjYW5uZXIsICpuZXh0TGluZVN0YXRlKSAobGluZSBzdHJpbmcsIGlzV2lsZGNh
cmQsIG9rIGJvb2wpCisJdGVzdHMgICAgICAgIFtddGVzdAorfQorCitmdW5jICh0ICp0ZXN0U3Vp
dGUpIGdldERpcmVjdG9yeSgpIHN0cmluZyB7CisJcmV0dXJuIGZpbGVwYXRoLkpvaW4oKnN1aXRl
RGlyLCB0LmRpcmVjdG9yeSkKK30KKwordmFyIGFlc0dDTVRlc3RzID0gdGVzdFN1aXRleworCSJB
RVNfR0NNIiwKKwkiYWVzX2djbSIsCisJbmlsLAorCVtddGVzdHsKKwkJeyJnY21EZWNyeXB0MTI4
IiwgW11zdHJpbmd7ImRlYyIsICJhZXMtMTI4LWdjbSJ9LCBmYWxzZX0sCisJCXsiZ2NtRGVjcnlw
dDI1NiIsIFtdc3RyaW5neyJkZWMiLCAiYWVzLTI1Ni1nY20ifSwgZmFsc2V9LAorCQl7ImdjbUVu
Y3J5cHRFeHRJVjEyOCIsIFtdc3RyaW5neyJlbmMiLCAiYWVzLTEyOC1nY20ifSwgZmFsc2V9LAor
CQl7ImdjbUVuY3J5cHRFeHRJVjI1NiIsIFtdc3RyaW5neyJlbmMiLCAiYWVzLTI1Ni1nY20ifSwg
ZmFsc2V9LAorCX0sCit9CisKK3ZhciBhZXNUZXN0cyA9IHRlc3RTdWl0ZXsKKwkiQUVTIiwKKwki
YWVzIiwKKwluaWwsCisJW110ZXN0eworCQl7IkNCQ0dGU2JveDEyOCIsIFtdc3RyaW5neyJrYXQi
LCAiYWVzLTEyOC1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ0dGU2JveDE5MiIsIFtdc3RyaW5neyJr
YXQiLCAiYWVzLTE5Mi1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ0dGU2JveDI1NiIsIFtdc3RyaW5n
eyJrYXQiLCAiYWVzLTI1Ni1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ0tleVNib3gxMjgiLCBbXXN0
cmluZ3sia2F0IiwgImFlcy0xMjgtY2JjIn0sIGZhbHNlfSwKKwkJeyJDQkNLZXlTYm94MTkyIiwg
W11zdHJpbmd7ImthdCIsICJhZXMtMTkyLWNiYyJ9LCBmYWxzZX0sCisJCXsiQ0JDS2V5U2JveDI1
NiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTI1Ni1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ01NVDEy
OCIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTEyOC1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ01NVDE5
MiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTE5Mi1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ01NVDI1
NiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTI1Ni1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ1Zhcktl
eTEyOCIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTEyOC1jYmMifSwgZmFsc2V9LAorCQl7IkNCQ1Zh
cktleTE5MiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTE5Mi1jYmMifSwgZmFsc2V9LAorCQl7IkNC
Q1ZhcktleTI1NiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTI1Ni1jYmMifSwgZmFsc2V9LAorCQl7
IkNCQ1ZhclR4dDEyOCIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTEyOC1jYmMifSwgZmFsc2V9LAor
CQl7IkNCQ1ZhclR4dDE5MiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTE5Mi1jYmMifSwgZmFsc2V9
LAorCQl7IkNCQ1ZhclR4dDI1NiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTI1Ni1jYmMifSwgZmFs
c2V9LAorCQl7IkVDQkdGU2JveDEyOCIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTEyOC1lY2IifSwg
ZmFsc2V9LAorCQl7IkVDQkdGU2JveDE5MiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTE5Mi1lY2Ii
fSwgZmFsc2V9LAorCQl7IkVDQkdGU2JveDI1NiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTI1Ni1l
Y2IifSwgZmFsc2V9LAorCQl7IkVDQktleVNib3gxMjgiLCBbXXN0cmluZ3sia2F0IiwgImFlcy0x
MjgtZWNiIn0sIGZhbHNlfSwKKwkJeyJFQ0JLZXlTYm94MTkyIiwgW11zdHJpbmd7ImthdCIsICJh
ZXMtMTkyLWVjYiJ9LCBmYWxzZX0sCisJCXsiRUNCS2V5U2JveDI1NiIsIFtdc3RyaW5neyJrYXQi
LCAiYWVzLTI1Ni1lY2IifSwgZmFsc2V9LAorCQl7IkVDQk1NVDEyOCIsIFtdc3RyaW5neyJrYXQi
LCAiYWVzLTEyOC1lY2IifSwgZmFsc2V9LAorCQl7IkVDQk1NVDE5MiIsIFtdc3RyaW5neyJrYXQi
LCAiYWVzLTE5Mi1lY2IifSwgZmFsc2V9LAorCQl7IkVDQk1NVDI1NiIsIFtdc3RyaW5neyJrYXQi
LCAiYWVzLTI1Ni1lY2IifSwgZmFsc2V9LAorCQl7IkVDQlZhcktleTEyOCIsIFtdc3RyaW5neyJr
YXQiLCAiYWVzLTEyOC1lY2IifSwgZmFsc2V9LAorCQl7IkVDQlZhcktleTE5MiIsIFtdc3RyaW5n
eyJrYXQiLCAiYWVzLTE5Mi1lY2IifSwgZmFsc2V9LAorCQl7IkVDQlZhcktleTI1NiIsIFtdc3Ry
aW5neyJrYXQiLCAiYWVzLTI1Ni1lY2IifSwgZmFsc2V9LAorCQl7IkVDQlZhclR4dDEyOCIsIFtd
c3RyaW5neyJrYXQiLCAiYWVzLTEyOC1lY2IifSwgZmFsc2V9LAorCQl7IkVDQlZhclR4dDE5MiIs
IFtdc3RyaW5neyJrYXQiLCAiYWVzLTE5Mi1lY2IifSwgZmFsc2V9LAorCQl7IkVDQlZhclR4dDI1
NiIsIFtdc3RyaW5neyJrYXQiLCAiYWVzLTI1Ni1lY2IifSwgZmFsc2V9LAorCQkvLyBBRVMgTW9u
dGUtQ2FybG8gdGVzdHMKKwkJeyJFQ0JNQ1QxMjgiLCBbXXN0cmluZ3sibWN0IiwgImFlcy0xMjgt
ZWNiIn0sIGZhbHNlfSwKKwkJeyJFQ0JNQ1QxOTIiLCBbXXN0cmluZ3sibWN0IiwgImFlcy0xOTIt
ZWNiIn0sIGZhbHNlfSwKKwkJeyJFQ0JNQ1QyNTYiLCBbXXN0cmluZ3sibWN0IiwgImFlcy0yNTYt
ZWNiIn0sIGZhbHNlfSwKKwkJeyJDQkNNQ1QxMjgiLCBbXXN0cmluZ3sibWN0IiwgImFlcy0xMjgt
Y2JjIn0sIGZhbHNlfSwKKwkJeyJDQkNNQ1QxOTIiLCBbXXN0cmluZ3sibWN0IiwgImFlcy0xOTIt
Y2JjIn0sIGZhbHNlfSwKKwkJeyJDQkNNQ1QyNTYiLCBbXXN0cmluZ3sibWN0IiwgImFlcy0yNTYt
Y2JjIn0sIGZhbHNlfSwKKwl9LAorfQorCit2YXIgZWNkc2EyS2V5UGFpclRlc3RzID0gdGVzdFN1
aXRleworCSJFQ0RTQTIiLAorCSJlY2RzYTJfa2V5cGFpciIsCisJbmlsLAorCVtddGVzdHt7Iktl
eVBhaXIiLCBuaWwsIHRydWV9fSwKK30KKwordmFyIGVjZHNhMlBLVlRlc3RzID0gdGVzdFN1aXRl
eworCSJFQ0RTQTIiLAorCSJlY2RzYTJfcGt2IiwKKwluaWwsCisJW110ZXN0e3siUEtWIiwgbmls
LCBmYWxzZX19LAorfQorCit2YXIgZWNkc2EyU2lnR2VuVGVzdHMgPSB0ZXN0U3VpdGV7CisJIkVD
RFNBMiIsCisJImVjZHNhMl9zaWdnZW4iLAorCW5pbCwKKwlbXXRlc3R7CisJCXsiU2lnR2VuIiwg
W11zdHJpbmd7IlNpZ0dlbiJ9LCB0cnVlfSwKKwkJeyJTaWdHZW5Db21wb25lbnQiLCBbXXN0cmlu
Z3siU2lnR2VuQ29tcG9uZW50In0sIHRydWV9LAorCX0sCit9CisKK3ZhciBlY2RzYTJTaWdWZXJU
ZXN0cyA9IHRlc3RTdWl0ZXsKKwkiRUNEU0EyIiwKKwkiZWNkc2EyX3NpZ3ZlciIsCisJbmlsLAor
CVtddGVzdHt7IlNpZ1ZlciIsIG5pbCwgZmFsc2V9fSwKK30KKwordmFyIHJzYTJLZXlHZW5UZXN0
cyA9IHRlc3RTdWl0ZXsKKwkiUlNBMiIsCisJInJzYTJfa2V5Z2VuIiwKKwluaWwsCisJW110ZXN0
eworCQl7IktleUdlbl9SYW5kb21Qcm9iYWJseVByaW1lM18zIiwgbmlsLCB0cnVlfSwKKwl9LAor
fQorCit2YXIgcnNhMlNpZ0dlblRlc3RzID0gdGVzdFN1aXRleworCSJSU0EyIiwKKwkicnNhMl9z
aWdnZW4iLAorCW5pbCwKKwlbXXRlc3R7CisJCXsiU2lnR2VuMTVfMTg2LTMiLCBbXXN0cmluZ3si
cGtjczE1In0sIHRydWV9LAorCQl7IlNpZ0dlblBTU18xODYtMyIsIFtdc3RyaW5neyJwc3MifSwg
dHJ1ZX0sCisJfSwKK30KKwordmFyIHJzYTJTaWdWZXJUZXN0cyA9IHRlc3RTdWl0ZXsKKwkiUlNB
MiIsCisJInJzYTJfc2lndmVyIiwKKwlmdW5jKHMgKmJ1ZmlvLlNjYW5uZXIsIHN0YXRlICpuZXh0
TGluZVN0YXRlKSAoc3RyaW5nLCBib29sLCBib29sKSB7CisJCWZvciB7CisJCQlpZiAhcy5TY2Fu
KCkgeworCQkJCXJldHVybiAiIiwgZmFsc2UsIGZhbHNlCisJCQl9CisKKwkJCWxpbmUgOj0gcy5U
ZXh0KCkKKwkJCWlmIHN0cmluZ3MuSGFzUHJlZml4KGxpbmUsICJwID0gIikgfHwgc3RyaW5ncy5I
YXNQcmVmaXgobGluZSwgImQgPSAiKSB8fCBzdHJpbmdzLkhhc1ByZWZpeChsaW5lLCAiU2FsdFZh
bCA9ICIpIHx8IHN0cmluZ3MuSGFzUHJlZml4KGxpbmUsICJFTSB3aXRoICIpIHsKKwkJCQljb250
aW51ZQorCQkJfQorCQkJaWYgc3RyaW5ncy5IYXNQcmVmaXgobGluZSwgInEgPSAiKSB7CisJCQkJ
Ly8gU2tpcCB0aGUgInEgPSAiIGxpbmUgYW5kIGFuIGFkZGl0aW9uYWwgYmxhbmsgbGluZS4KKwkJ
CQlpZiAhcy5TY2FuKCkgfHwKKwkJCQkJbGVuKHN0cmluZ3MuVHJpbVNwYWNlKHMuVGV4dCgpKSkg
PiAwIHsKKwkJCQkJcmV0dXJuICIiLCBmYWxzZSwgZmFsc2UKKwkJCQl9CisJCQkJY29udGludWUK
KwkJCX0KKwkJCXJldHVybiBsaW5lLCBmYWxzZSwgdHJ1ZQorCQl9CisJfSwKKwlbXXRlc3R7CisJ
CXsiU2lnVmVyMTVfMTg2LTMiLCBbXXN0cmluZ3sicGtjczE1In0sIGZhbHNlfSwKKwkJeyJTaWdW
ZXJQU1NfMTg2LTMiLCBbXXN0cmluZ3sicHNzIn0sIGZhbHNlfSwKKwl9LAorfQorCit2YXIgaG1h
Y1Rlc3RzID0gdGVzdFN1aXRleworCSJITUFDIiwKKwkiaG1hYyIsCisJbmlsLAorCVtddGVzdHt7
IkhNQUMiLCBuaWwsIGZhbHNlfX0sCit9CisKK3ZhciBzaGFUZXN0cyA9IHRlc3RTdWl0ZXsKKwki
U0hBIiwKKwkic2hhIiwKKwluaWwsCisJW110ZXN0eworCQl7IlNIQTFMb25nTXNnIiwgW11zdHJp
bmd7IlNIQTEifSwgZmFsc2V9LAorCQl7IlNIQTFTaG9ydE1zZyIsIFtdc3RyaW5neyJTSEExIn0s
IGZhbHNlfSwKKwkJeyJTSEEyMjRMb25nTXNnIiwgW11zdHJpbmd7IlNIQTIyNCJ9LCBmYWxzZX0s
CisJCXsiU0hBMjI0U2hvcnRNc2ciLCBbXXN0cmluZ3siU0hBMjI0In0sIGZhbHNlfSwKKwkJeyJT
SEEyNTZMb25nTXNnIiwgW11zdHJpbmd7IlNIQTI1NiJ9LCBmYWxzZX0sCisJCXsiU0hBMjU2U2hv
cnRNc2ciLCBbXXN0cmluZ3siU0hBMjU2In0sIGZhbHNlfSwKKwkJeyJTSEEzODRMb25nTXNnIiwg
W11zdHJpbmd7IlNIQTM4NCJ9LCBmYWxzZX0sCisJCXsiU0hBMzg0U2hvcnRNc2ciLCBbXXN0cmlu
Z3siU0hBMzg0In0sIGZhbHNlfSwKKwkJeyJTSEE1MTJMb25nTXNnIiwgW11zdHJpbmd7IlNIQTUx
MiJ9LCBmYWxzZX0sCisJCXsiU0hBNTEyU2hvcnRNc2ciLCBbXXN0cmluZ3siU0hBNTEyIn0sIGZh
bHNlfSwKKwl9LAorfQorCit2YXIgc2hhTW9udGVUZXN0cyA9IHRlc3RTdWl0ZXsKKwkiU0hBIiwK
Kwkic2hhX21vbnRlIiwKKwluaWwsCisJW110ZXN0eworCQl7IlNIQTFNb250ZSIsIFtdc3RyaW5n
eyJTSEExIn0sIGZhbHNlfSwKKwkJeyJTSEEyMjRNb250ZSIsIFtdc3RyaW5neyJTSEEyMjQifSwg
ZmFsc2V9LAorCQl7IlNIQTI1Nk1vbnRlIiwgW11zdHJpbmd7IlNIQTI1NiJ9LCBmYWxzZX0sCisJ
CXsiU0hBMzg0TW9udGUiLCBbXXN0cmluZ3siU0hBMzg0In0sIGZhbHNlfSwKKwkJeyJTSEE1MTJN
b250ZSIsIFtdc3RyaW5neyJTSEE1MTIifSwgZmFsc2V9LAorCX0sCit9CisKK3ZhciBjdHJEUkJH
VGVzdHMgPSB0ZXN0U3VpdGV7CisJIkRSQkc4MDAtOTBBIiwKKwkiY3RyX2RyYmciLAorCW5pbCwK
KwlbXXRlc3R7eyJDVFJfRFJCRyIsIG5pbCwgZmFsc2V9fSwKK30KKwordmFyIHRkZXNUZXN0cyA9
IHRlc3RTdWl0ZXsKKwkiVERFUyIsCisJInRkZXMiLAorCW5pbCwKKwlbXXRlc3R7CisJCXsiVENC
Q01NVDIiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUtY2JjIn0sIGZhbHNlfSwKKwkJeyJUQ0JD
TU1UMyIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMtY2JjIn0sIGZhbHNlfSwKKwkJeyJUQ0JD
TW9udGUyIiwgW11zdHJpbmd7Im1jdCIsICJkZXMtZWRlMy1jYmMifSwgZmFsc2V9LAorCQl7IlRD
QkNNb250ZTMiLCBbXXN0cmluZ3sibWN0IiwgImRlcy1lZGUzLWNiYyJ9LCBmYWxzZX0sCisJCXsi
VENCQ2ludnBlcm0iLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzLWNiYyJ9LCBmYWxzZX0sCisJ
CXsiVENCQ3Blcm1vcCIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMtY2JjIn0sIGZhbHNlfSwK
KwkJeyJUQ0JDc3VidGFiIiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMy1jYmMifSwgZmFsc2V9
LAorCQl7IlRDQkN2YXJrZXkiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzLWNiYyJ9LCBmYWxz
ZX0sCisJCXsiVENCQ3ZhcnRleHQiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzLWNiYyJ9LCBm
YWxzZX0sCisJCXsiVEVDQk1NVDIiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUifSwgZmFsc2V9
LAorCQl7IlRFQ0JNTVQzIiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMyJ9LCBmYWxzZX0sCisJ
CXsiVEVDQk1vbnRlMiIsIFtdc3RyaW5neyJtY3QiLCAiZGVzLWVkZTMifSwgZmFsc2V9LAorCQl7
IlRFQ0JNb250ZTMiLCBbXXN0cmluZ3sibWN0IiwgImRlcy1lZGUzIn0sIGZhbHNlfSwKKwkJeyJU
RUNCaW52cGVybSIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMifSwgZmFsc2V9LAorCQl7IlRF
Q0JwZXJtb3AiLCBbXXN0cmluZ3sia2F0IiwgImRlcy1lZGUzIn0sIGZhbHNlfSwKKwkJeyJURUNC
c3VidGFiIiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMyJ9LCBmYWxzZX0sCisJCXsiVEVDQnZh
cmtleSIsIFtdc3RyaW5neyJrYXQiLCAiZGVzLWVkZTMifSwgZmFsc2V9LAorCQl7IlRFQ0J2YXJ0
ZXh0IiwgW11zdHJpbmd7ImthdCIsICJkZXMtZWRlMyJ9LCBmYWxzZX0sCisJfSwKK30KKwordmFy
IGtleVdyYXBUZXN0cyA9IHRlc3RTdWl0ZXsKKwkiS2V5V3JhcDM4RiIsCisJImtleXdyYXAiLAor
CW5pbCwKKwlbXXRlc3R7CisJCXsiS1dfQURfMTI4IiwgW11zdHJpbmd7ImRlYyIsICIxMjgifSwg
ZmFsc2V9LAorCQl7IktXX0FEXzE5MiIsIFtdc3RyaW5neyJkZWMiLCAiMTkyIn0sIGZhbHNlfSwK
KwkJeyJLV19BRF8yNTYiLCBbXXN0cmluZ3siZGVjIiwgIjI1NiJ9LCBmYWxzZX0sCisJCXsiS1df
QUVfMTI4IiwgW11zdHJpbmd7ImVuYyIsICIxMjgifSwgZmFsc2V9LAorCQl7IktXX0FFXzE5MiIs
IFtdc3RyaW5neyJlbmMiLCAiMTkyIn0sIGZhbHNlfSwKKwkJeyJLV19BRV8yNTYiLCBbXXN0cmlu
Z3siZW5jIiwgIjI1NiJ9LCBmYWxzZX0sCisJCXsiS1dQX0FEXzEyOCIsIFtdc3RyaW5neyJkZWMt
cGFkIiwgIjEyOCJ9LCBmYWxzZX0sCisJCXsiS1dQX0FEXzE5MiIsIFtdc3RyaW5neyJkZWMtcGFk
IiwgIjE5MiJ9LCBmYWxzZX0sCisJCXsiS1dQX0FEXzI1NiIsIFtdc3RyaW5neyJkZWMtcGFkIiwg
IjI1NiJ9LCBmYWxzZX0sCisJCXsiS1dQX0FFXzEyOCIsIFtdc3RyaW5neyJlbmMtcGFkIiwgIjEy
OCJ9LCBmYWxzZX0sCisJCXsiS1dQX0FFXzE5MiIsIFtdc3RyaW5neyJlbmMtcGFkIiwgIjE5MiJ9
LCBmYWxzZX0sCisJCXsiS1dQX0FFXzI1NiIsIFtdc3RyaW5neyJlbmMtcGFkIiwgIjI1NiJ9LCBm
YWxzZX0sCisJfSwKK30KKwordmFyIGthc1Rlc3RzID0gdGVzdFN1aXRleworCSJLQVMiLAorCSJr
YXMiLAorCWZ1bmMocyAqYnVmaW8uU2Nhbm5lciwgc3RhdGUgKm5leHRMaW5lU3RhdGUpIChsaW5l
IHN0cmluZywgaXNXaWxkY2FyZCwgb2sgYm9vbCkgeworCQlmb3IgeworCQkJLy8gSWYgdGhlIHJl
c3BvbnNlIGZpbGUgd2lsbCBpbmNsdWRlIHRoZSBJVVQgaGFzaCBuZXh0LAorCQkJLy8gcmV0dXJu
IGEgd2lsZGNhcmQgc2lnbmFsIGJlY2F1c2UgdGhpcyBjYW5ub3QgYmUKKwkJCS8vIG1hdGNoZWQg
YWdhaW5zdCB0aGUgRkFYIGZpbGUuCisJCQlpZiBzdGF0ZS5uZXh0SXNJVVRIYXNoIHsKKwkJCQlz
dGF0ZS5uZXh0SXNJVVRIYXNoID0gZmFsc2UKKwkJCQlyZXR1cm4gIiIsIHRydWUsIHRydWUKKwkJ
CX0KKworCQkJaWYgIXMuU2NhbigpIHsKKwkJCQlyZXR1cm4gIiIsIGZhbHNlLCBmYWxzZQorCQkJ
fQorCisJCQlsaW5lIDo9IHMuVGV4dCgpCisJCQlpZiBzdHJpbmdzLkhhc1ByZWZpeChsaW5lLCAi
ZGVDQVZTID0gIikgfHwgc3RyaW5ncy5IYXNQcmVmaXgobGluZSwgIlogPSAiKSB7CisJCQkJY29u
dGludWUKKwkJCX0KKwkJCWlmIHN0cmluZ3MuSGFzUHJlZml4KGxpbmUsICJDQVZTSGFzaFpaID0g
IikgeworCQkJCXN0YXRlLm5leHRJc0lVVEhhc2ggPSB0cnVlCisJCQl9CisJCQlyZXR1cm4gbGlu
ZSwgZmFsc2UsIHRydWUKKwkJfQorCX0sCisJW110ZXN0eworCQl7IktBU0Z1bmN0aW9uVGVzdF9F
Q0NFcGhlbWVyYWxVbmlmaWVkX05PS0NfWlpPbmx5X2luaXQiLCBbXXN0cmluZ3siZnVuY3Rpb24i
fSwgdHJ1ZX0sCisJCXsiS0FTRnVuY3Rpb25UZXN0X0VDQ0VwaGVtZXJhbFVuaWZpZWRfTk9LQ19a
Wk9ubHlfcmVzcCIsIFtdc3RyaW5neyJmdW5jdGlvbiJ9LCB0cnVlfSwKKwkJeyJLQVNWYWxpZGl0
eVRlc3RfRUNDRXBoZW1lcmFsVW5pZmllZF9OT0tDX1paT25seV9pbml0IiwgW11zdHJpbmd7InZh
bGlkaXR5In0sIGZhbHNlfSwKKwkJeyJLQVNWYWxpZGl0eVRlc3RfRUNDRXBoZW1lcmFsVW5pZmll
ZF9OT0tDX1paT25seV9yZXNwIiwgW11zdHJpbmd7InZhbGlkaXR5In0sIGZhbHNlfSwKKwl9LAor
fQorCit2YXIgdGxzS0RGVGVzdHMgPSB0ZXN0U3VpdGV7CisJIktERjEzNSIsCisJInRsc2tkZiIs
CisJbmlsLAorCVtddGVzdHsKKwkJeyJ0bHMiLCBuaWwsIGZhbHNlfSwKKwl9LAorfQorCit2YXIg
dGVzdFN1aXRlcyA9IFtdKnRlc3RTdWl0ZXsKKwkmYWVzR0NNVGVzdHMsCisJJmFlc1Rlc3RzLAor
CSZjdHJEUkJHVGVzdHMsCisJJmVjZHNhMktleVBhaXJUZXN0cywKKwkmZWNkc2EyUEtWVGVzdHMs
CisJJmVjZHNhMlNpZ0dlblRlc3RzLAorCSZlY2RzYTJTaWdWZXJUZXN0cywKKwkmaG1hY1Rlc3Rz
LAorCSZrZXlXcmFwVGVzdHMsCisJJnJzYTJLZXlHZW5UZXN0cywKKwkmcnNhMlNpZ0dlblRlc3Rz
LAorCSZyc2EyU2lnVmVyVGVzdHMsCisJJnNoYVRlc3RzLAorCSZzaGFNb250ZVRlc3RzLAorCSZ0
ZGVzVGVzdHMsCisJJmthc1Rlc3RzLAorCSZ0bHNLREZUZXN0cywKK30KKworLy8gdGVzdEluc3Rh
bmNlIHJlcHJlc2VudHMgYSBzcGVjaWZpYyB0ZXN0IGluIGEgdGVzdFN1aXRlLgordHlwZSB0ZXN0
SW5zdGFuY2Ugc3RydWN0IHsKKwlzdWl0ZSAgICAgKnRlc3RTdWl0ZQorCXRlc3RJbmRleCBpbnQK
K30KKworZnVuYyB3b3JrZXIod2cgKnN5bmMuV2FpdEdyb3VwLCB3b3JrIDwtY2hhbiB0ZXN0SW5z
dGFuY2UpIHsKKwlkZWZlciB3Zy5Eb25lKCkKKworCWZvciB0aSA6PSByYW5nZSB3b3JrIHsKKwkJ
dGVzdCA6PSB0aS5zdWl0ZS50ZXN0c1t0aS50ZXN0SW5kZXhdCisKKwkJaWYgZXJyIDo9IGRvVGVz
dCh0aS5zdWl0ZSwgdGVzdCk7IGVyciAhPSBuaWwgeworCQkJZm10LkZwcmludGYob3MuU3RkZXJy
LCAiJXNcbiIsIGVycikKKwkJCW9zLkV4aXQoMikKKwkJfQorCisJCWlmICEqbm9GQVggJiYgIXRl
c3Qubm9GQVggeworCQkJaWYgZXJyIDo9IGNvbXBhcmVGQVgodGkuc3VpdGUsIHRlc3QpOyBlcnIg
IT0gbmlsIHsKKwkJCQlmbXQuRnByaW50Zihvcy5TdGRlcnIsICIlc1xuIiwgZXJyKQorCQkJCW9z
LkV4aXQoMykKKwkJCX0KKwkJfQorCX0KK30KKworZnVuYyBjaGVja0FuZHJvaWRQcmVyZXFzKCkg
ZXJyb3IgeworCS8vIFRoZSBjYXZwIGJpbmFyeSwgYW5kIGEgbWF0Y2hpbmcgbGliY3J5cHRvLnNv
LCBhcmUgcmVxdWlyZWQgdG8gYmUgcGxhY2VkCisJLy8gaW4gL2RhdGEvbG9jYWwvdG1wIGJlZm9y
ZSBydW5uaW5nIHRoaXMgc2NyaXB0LgorCWlmIGVyciA6PSBleGVjLkNvbW1hbmQoImFkYiIsICJz
aGVsbCIsICJscyIsIGFuZHJvaWRDQVZQUGF0aCkuUnVuKCk7IGVyciAhPSBuaWwgeworCQlyZXR1
cm4gZXJyb3JzLk5ldygiZmFpbGVkIHRvIGxpc3QgY2F2cCBiaW5hcnk7IGVuc3VyZSB0aGF0IGFk
YiB3b3JrcyBhbmQgY2F2cCBiaW5hcnkgaXMgaW4gcGxhY2U6ICIgKyBlcnIuRXJyb3IoKSkKKwl9
CisJaWYgZXJyIDo9IGV4ZWMuQ29tbWFuZCgiYWRiIiwgInNoZWxsIiwgImxzIiwgYW5kcm9pZExp
YkNyeXB0b1BhdGgpLlJ1bigpOyBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIGVycm9ycy5OZXcoImZh
aWxlZCB0byBsaXN0IGxpYmNyeXB0by5zbzsgZW5zdXJlIHRoYXQgbGlicmFyeSBpcyBpbiBwbGFj
ZTogIiArIGVyci5FcnJvcigpKQorCX0KKwlyZXR1cm4gbmlsCit9CisKK2Z1bmMgbWFpbigpIHsK
KwlmbGFnLlBhcnNlKCkKKworCWlmICphbmRyb2lkIHsKKwkJaWYgZXJyIDo9IGNoZWNrQW5kcm9p
ZFByZXJlcXMoKTsgZXJyICE9IG5pbCB7CisJCQlmbXQuRnByaW50Zihvcy5TdGRlcnIsICIlc1xu
IiwgZXJyKQorCQkJb3MuRXhpdCgxKQorCQl9CisJfSBlbHNlIGlmIGxlbigqb3JhY2xlUGF0aCkg
PT0gMCB7CisJCWZtdC5GcHJpbnRmKG9zLlN0ZGVyciwgIk11c3QgZ2l2ZSAtb3JhY2xlLWJpblxu
IikKKwkJb3MuRXhpdCgxKQorCX0KKworCXdvcmsgOj0gbWFrZShjaGFuIHRlc3RJbnN0YW5jZSkK
Kwl2YXIgd2cgc3luYy5XYWl0R3JvdXAKKworCW51bVdvcmtlcnMgOj0gcnVudGltZS5OdW1DUFUo
KQorCWlmICphbmRyb2lkIHsKKwkJbnVtV29ya2VycyA9IDEKKwl9CisKKwlmb3IgaSA6PSAwOyBp
IDwgbnVtV29ya2VyczsgaSsrIHsKKwkJd2cuQWRkKDEpCisJCWdvIHdvcmtlcigmd2csIHdvcmsp
CisJfQorCisJZm9yIF8sIHN1aXRlIDo9IHJhbmdlIHRlc3RTdWl0ZXMgeworCQlmb3IgaSA6PSBy
YW5nZSBzdWl0ZS50ZXN0cyB7CisJCQl3b3JrIDwtIHRlc3RJbnN0YW5jZXtzdWl0ZSwgaX0KKwkJ
fQorCX0KKworCWNsb3NlKHdvcmspCisJd2cuV2FpdCgpCit9CisKK2Z1bmMgZG9UZXN0KHN1aXRl
ICp0ZXN0U3VpdGUsIHRlc3QgdGVzdCkgZXJyb3IgeworCWJpbiA6PSAqb3JhY2xlUGF0aAorCXZh
ciBhcmdzIFtdc3RyaW5nCisKKwlpZiAqYW5kcm9pZCB7CisJCWJpbiA9ICJhZGIiCisJCWFyZ3Mg
PSBbXXN0cmluZ3sic2hlbGwiLCAiTERfTElCUkFSWV9QQVRIPSIgKyBhbmRyb2lkVG1wUGF0aCwg
YW5kcm9pZENBVlBQYXRofQorCX0KKworCWFyZ3MgPSBhcHBlbmQoYXJncywgc3VpdGUuc3VpdGUp
CisJYXJncyA9IGFwcGVuZChhcmdzLCB0ZXN0LmFyZ3MuLi4pCisJcmVxUGF0aCA6PSBmaWxlcGF0
aC5Kb2luKHN1aXRlLmdldERpcmVjdG9yeSgpLCAicmVxIiwgdGVzdC5pbkZpbGUrIi5yZXEiKQor
CXZhciByZXFQYXRoT25EZXZpY2Ugc3RyaW5nCisKKwlpZiAqYW5kcm9pZCB7CisJCXJlcVBhdGhP
bkRldmljZSA9IHBhdGguSm9pbihhbmRyb2lkVG1wUGF0aCwgdGVzdC5pbkZpbGUrIi5yZXEiKQor
CQlpZiBlcnIgOj0gZXhlYy5Db21tYW5kKCJhZGIiLCAicHVzaCIsIHJlcVBhdGgsIHJlcVBhdGhP
bkRldmljZSkuUnVuKCk7IGVyciAhPSBuaWwgeworCQkJcmV0dXJuIGVycm9ycy5OZXcoImZhaWxl
ZCB0byBwdXNoIHJlcXVlc3QgZmlsZTogIiArIGVyci5FcnJvcigpKQorCQl9CisJCWFyZ3MgPSBh
cHBlbmQoYXJncywgcmVxUGF0aE9uRGV2aWNlKQorCX0gZWxzZSB7CisJCWFyZ3MgPSBhcHBlbmQo
YXJncywgcmVxUGF0aCkKKwl9CisKKwlyZXNwRGlyIDo9IGZpbGVwYXRoLkpvaW4oc3VpdGUuZ2V0
RGlyZWN0b3J5KCksICJyZXNwIikKKwlpZiBlcnIgOj0gb3MuTWtkaXIocmVzcERpciwgMDc1NSk7
IGVyciAhPSBuaWwgJiYgIW9zLklzRXhpc3QoZXJyKSB7CisJCXJldHVybiBmbXQuRXJyb3JmKCJj
YW5ub3QgY3JlYXRlIHJlc3AgZGlyZWN0b3J5OiAlcyIsIGVycikKKwl9CisJb3V0UGF0aCA6PSBm
aWxlcGF0aC5Kb2luKHJlc3BEaXIsIHRlc3QuaW5GaWxlKyIucnNwIikKKwlvdXRGaWxlLCBlcnIg
Oj0gb3MuT3BlbkZpbGUob3V0UGF0aCwgb3MuT19DUkVBVEV8b3MuT19UUlVOQ3xvcy5PX1dST05M
WSwgMDY0NCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuIGZtdC5FcnJvcmYoImNhbm5vdCBv
cGVuIG91dHB1dCBmaWxlIGZvciAlcSAlcTogJXMiLCBzdWl0ZS5nZXREaXJlY3RvcnkoKSwgdGVz
dC5pbkZpbGUsIGVycikKKwl9CisJZGVmZXIgb3V0RmlsZS5DbG9zZSgpCisKKwljbWQgOj0gZXhl
Yy5Db21tYW5kKGJpbiwgYXJncy4uLikKKwljbWQuU3Rkb3V0ID0gb3V0RmlsZQorCWNtZC5TdGRl
cnIgPSBvcy5TdGRlcnIKKworCWNtZExpbmUgOj0gc3RyaW5ncy5Kb2luKGFwcGVuZChbXXN0cmlu
Z3tiaW59LCBhcmdzLi4uKSwgIiAiKQorCXN0YXJ0VGltZSA6PSB0aW1lLk5vdygpCisJaWYgZXJy
IDo9IGNtZC5SdW4oKTsgZXJyICE9IG5pbCB7CisJCXJldHVybiBmbXQuRXJyb3JmKCJjYW5ub3Qg
cnVuIGNvbW1hbmQgZm9yICVxICVxICglcyk6ICVzIiwgc3VpdGUuZ2V0RGlyZWN0b3J5KCksIHRl
c3QuaW5GaWxlLCBjbWRMaW5lLCBlcnIpCisJfQorCisJZm10LlByaW50ZigiJXMgKCVkcylcbiIs
IGNtZExpbmUsIGludCh0aW1lLlNpbmNlKHN0YXJ0VGltZSkuU2Vjb25kcygpKSkKKworCWlmICph
bmRyb2lkIHsKKwkJZXhlYy5Db21tYW5kKCJhZGIiLCAic2hlbGwiLCAicm0iLCByZXFQYXRoT25E
ZXZpY2UpLlJ1bigpCisJfQorCisJcmV0dXJuIG5pbAorfQorCitmdW5jIGNhbm9uaWNhbGl6ZUxp
bmUoaW4gc3RyaW5nKSBzdHJpbmcgeworCWlmIHN0cmluZ3MuSGFzUHJlZml4KGluLCAiUmVzdWx0
ID0gUCAoIikgeworCQlyZXR1cm4gIlJlc3VsdCA9IFAiCisJfQorCWlmIHN0cmluZ3MuSGFzUHJl
Zml4KGluLCAiUmVzdWx0ID0gRiAoIikgeworCQlyZXR1cm4gIlJlc3VsdCA9IEYiCisJfQorCXJl
dHVybiBpbgorfQorCitmdW5jIGNvbXBhcmVGQVgoc3VpdGUgKnRlc3RTdWl0ZSwgdGVzdCB0ZXN0
KSBlcnJvciB7CisJbmV4dExpbmVGdW5jIDo9IHN1aXRlLm5leHRMaW5lRnVuYworCWlmIG5leHRM
aW5lRnVuYyA9PSBuaWwgeworCQluZXh0TGluZUZ1bmMgPSBmdW5jKHMgKmJ1ZmlvLlNjYW5uZXIs
IHN0YXRlICpuZXh0TGluZVN0YXRlKSAoc3RyaW5nLCBib29sLCBib29sKSB7CisJCQlpZiAhcy5T
Y2FuKCkgeworCQkJCXJldHVybiAiIiwgZmFsc2UsIGZhbHNlCisJCQl9CisJCQlyZXR1cm4gcy5U
ZXh0KCksIGZhbHNlLCB0cnVlCisJCX0KKwl9CisKKwlyZXNwUGF0aCA6PSBmaWxlcGF0aC5Kb2lu
KHN1aXRlLmdldERpcmVjdG9yeSgpLCAicmVzcCIsIHRlc3QuaW5GaWxlKyIucnNwIikKKwlyZXNw
RmlsZSwgZXJyIDo9IG9zLk9wZW4ocmVzcFBhdGgpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVy
biBmbXQuRXJyb3JmKCJjYW5ub3QgcmVhZCBvdXRwdXQgb2YgJXEgJXE6ICVzIiwgc3VpdGUuZ2V0
RGlyZWN0b3J5KCksIHRlc3QuaW5GaWxlLCBlcnIpCisJfQorCWRlZmVyIHJlc3BGaWxlLkNsb3Nl
KCkKKworCWZheFBhdGggOj0gZmlsZXBhdGguSm9pbihzdWl0ZS5nZXREaXJlY3RvcnkoKSwgImZh
eCIsIHRlc3QuaW5GaWxlKyIuZmF4IikKKwlmYXhGaWxlLCBlcnIgOj0gb3MuT3BlbihmYXhQYXRo
KQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4gZm10LkVycm9yZigiY2Fubm90IG9wZW4gZmF4
IGZpbGUgZm9yICVxICVxOiAlcyIsIHN1aXRlLmdldERpcmVjdG9yeSgpLCB0ZXN0LmluRmlsZSwg
ZXJyKQorCX0KKwlkZWZlciBmYXhGaWxlLkNsb3NlKCkKKworCXJlc3BTY2FubmVyIDo9IGJ1Zmlv
Lk5ld1NjYW5uZXIocmVzcEZpbGUpCisJZmF4U2Nhbm5lciA6PSBidWZpby5OZXdTY2FubmVyKGZh
eEZpbGUpCisJdmFyIG5leHRMaW5lU3RhdGUgbmV4dExpbmVTdGF0ZQorCisJbGluZU5vIDo9IDAK
KwlpbkhlYWRlciA6PSB0cnVlCisKKwlmb3IgcmVzcFNjYW5uZXIuU2NhbigpIHsKKwkJbGluZU5v
KysKKwkJcmVzcExpbmUgOj0gcmVzcFNjYW5uZXIuVGV4dCgpCisJCXZhciBmYXhMaW5lIHN0cmlu
ZworCQl2YXIgaXNXaWxkY2FyZCwgb2sgYm9vbAorCisJCWlmIGluSGVhZGVyICYmIChsZW4ocmVz
cExpbmUpID09IDAgfHwgcmVzcExpbmVbMF0gPT0gJyMnKSB7CisJCQljb250aW51ZQorCQl9CisK
KwkJZm9yIHsKKwkJCWhhdmVGYXhMaW5lIDo9IGZhbHNlCisKKwkJCWlmIGluSGVhZGVyIHsKKwkJ
CQlmb3IgeworCQkJCQlpZiBmYXhMaW5lLCBpc1dpbGRjYXJkLCBvayA9IG5leHRMaW5lRnVuYyhm
YXhTY2FubmVyLCAmbmV4dExpbmVTdGF0ZSk7ICFvayB7CisJCQkJCQlicmVhaworCQkJCQl9CisJ
CQkJCWlmIGxlbihmYXhMaW5lKSAhPSAwICYmIGZheExpbmVbMF0gIT0gJyMnIHsKKwkJCQkJCWhh
dmVGYXhMaW5lID0gdHJ1ZQorCQkJCQkJYnJlYWsKKwkJCQkJfQorCQkJCX0KKworCQkJCWluSGVh
ZGVyID0gZmFsc2UKKwkJCX0gZWxzZSB7CisJCQkJZmF4TGluZSwgaXNXaWxkY2FyZCwgaGF2ZUZh
eExpbmUgPSBuZXh0TGluZUZ1bmMoZmF4U2Nhbm5lciwgJm5leHRMaW5lU3RhdGUpCisJCQl9CisK
KwkJCWlmICFoYXZlRmF4TGluZSB7CisJCQkJLy8gSWdub3JlIGJsYW5rIGxpbmVzIGF0IHRoZSBl
bmQgb2YgdGhlIGdlbmVyYXRlZCBmaWxlLgorCQkJCWlmIGxlbihyZXNwTGluZSkgPT0gMCB7CisJ
CQkJCWJyZWFrCisJCQkJfQorCQkJCXJldHVybiBmbXQuRXJyb3JmKCJyZXNwIGZpbGUgaXMgbG9u
Z2VyIHRoYW4gZmF4IGZvciAlcSAlcSIsIHN1aXRlLmdldERpcmVjdG9yeSgpLCB0ZXN0LmluRmls
ZSkKKwkJCX0KKworCQkJaWYgc3RyaW5ncy5IYXNQcmVmaXgoZmF4TGluZSwgIiAoUmVhc29uOiAi
KSB7CisJCQkJY29udGludWUKKwkJCX0KKworCQkJYnJlYWsKKwkJfQorCisJCWlmIGlzV2lsZGNh
cmQgfHwgY2Fub25pY2FsaXplTGluZShmYXhMaW5lKSA9PSBjYW5vbmljYWxpemVMaW5lKHJlc3BM
aW5lKSB7CisJCQljb250aW51ZQorCQl9CisKKwkJcmV0dXJuIGZtdC5FcnJvcmYoInJlc3AgYW5k
IGZheCBkaWZmZXIgYXQgbGluZSAlZCBmb3IgJXEgJXE6ICVxIHZzICVxIiwgbGluZU5vLCBzdWl0
ZS5nZXREaXJlY3RvcnkoKSwgdGVzdC5pbkZpbGUsIHJlc3BMaW5lLCBmYXhMaW5lKQorCX0KKwor
CWlmIF8sIF8sIG9rIDo9IG5leHRMaW5lRnVuYyhmYXhTY2FubmVyLCAmbmV4dExpbmVTdGF0ZSk7
IG9rIHsKKwkJcmV0dXJuIGZtdC5FcnJvcmYoImZheCBmaWxlIGlzIGxvbmdlciB0aGFuIHJlc3Ag
Zm9yICVxICVxIiwgc3VpdGUuZ2V0RGlyZWN0b3J5KCksIHRlc3QuaW5GaWxlKQorCX0KKworCXJl
dHVybiBuaWwKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL3Rlc3RfZmlw
cy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2NhdnAvdGVzdF9maXBzLmMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYz
NTljNWM4N2M0ZjNjNTk0Y2I4MDJmMjkzYzc3ZDAwZmEyOGFiNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy91dGlsL2ZpcHN0b29scy9jYXZwL3Rlc3RfZmlwcy5jCkBAIC0wLDAgKzEsMjU5IEBACisv
KiBDb3B5cmlnaHQgKGMpIDIwMTcsIEdvb2dsZSBJbmMuCisgKgorICogUGVybWlzc2lvbiB0byB1
c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55
CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3Zp
ZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwor
ICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FS
UkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBTUEVDSUFMLCBESVJFQ1QsIElO
RElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRT
T0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhF
UiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJ
T1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUg
VVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuICovCisKKy8qIHRlc3RfZmlwcyBl
eGVyY2lzZXMgdmFyaW91cyBjcnlwdG9ncmFwaGljIHByaW1pdGl2ZXMgZm9yIGRlbW9uc3RyYXRp
b24KKyAqIHB1cnBvc2VzIGluIHRoZSB2YWxpZGF0aW9uIHByb2Nlc3Mgb25seS4gKi8KKworI2lu
Y2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2FlYWQuaD4KKyNpbmNsdWRlIDxv
cGVuc3NsL2Flcy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KKyNpbmNsdWRlIDxvcGVuc3Ns
L2NyeXB0by5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZGVzLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9l
Y2RzYS5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZWNfa2V5Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9o
bWFjLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9uaWQuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3JzYS5o
PgorI2luY2x1ZGUgPG9wZW5zc2wvc2hhLmg+CisKKyNpbmNsdWRlICIuLi9jcnlwdG8vZmlwc21v
ZHVsZS9yYW5kL2ludGVybmFsLmgiCisjaW5jbHVkZSAiLi4vY3J5cHRvL2ludGVybmFsLmgiCisK
Kworc3RhdGljIHZvaWQgaGV4ZHVtcChjb25zdCB2b2lkICphLCBzaXplX3QgbGVuKSB7CisgIGNv
bnN0IHVuc2lnbmVkIGNoYXIgKmluID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilhOworICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgcHJpbnRmKCIlMDJ4IiwgaW5baV0p
OworICB9CisKKyAgcHJpbnRmKCJcbiIpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq
KmFyZ3YpIHsKKyAgQ1JZUFRPX2xpYnJhcnlfaW5pdCgpOworCisgIHN0YXRpYyBjb25zdCB1aW50
OF90IGtBRVNLZXlbMTZdID0gIkJvcmluZ0NyeXB0byBLZXkiOworICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBrUGxhaW50ZXh0WzY0XSA9CisgICAgICAiQm9yaW5nQ3J5cHRvTW9kdWxlIEZJUFMgS0FU
IEVuY3J5cHRpb24gYW5kIERlY3J5cHRpb24gUGxhaW50ZXh0ISI7CisgIHN0YXRpYyBjb25zdCBE
RVNfY2Jsb2NrIGtERVNLZXkxID0geyJCQ01ERVNLMSJ9OworICBzdGF0aWMgY29uc3QgREVTX2Ni
bG9jayBrREVTS2V5MiA9IHsiQkNNREVTSzIifTsKKyAgc3RhdGljIGNvbnN0IERFU19jYmxvY2sg
a0RFU0tleTMgPSB7IkJDTURFU0szIn07CisgIHN0YXRpYyBjb25zdCBERVNfY2Jsb2NrIGtERVNJ
ViA9IHsiQkNNREVTSVYifTsKKyAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qga1BsYWludGV4dFNIQTI1
NlszMl0gPSB7CisgICAgICAweDM3LCAweGJkLCAweDcwLCAweDUzLCAweDcyLCAweGZjLCAweGQ0
LCAweDAzLCAweDc5LCAweDcwLCAweGZiLAorICAgICAgMHgwNiwgMHg5NSwgMHhiMSwgMHgyYSwg
MHg4MiwgMHg0OCwgMHhlMSwgMHgzZSwgMHhmMiwgMHgzMywgMHhmYiwKKyAgICAgIDB4ZWYsIDB4
MjksIDB4ODEsIDB4MjIsIDB4NDUsIDB4NDAsIDB4NDMsIDB4NzAsIDB4Y2UsIDB4MGZ9OworICBj
b25zdCB1aW50OF90IGtEUkJHRW50cm9weVs0OF0gPQorICAgICAgIkRCUkcgSW5pdGlhbCBFbnRy
b3B5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7CisgIGNvbnN0IHVpbnQ4X3Qga0RSQkdQ
ZXJzb25hbGl6YXRpb25bMThdID0gIkJDTVBlcnNvbmFsaXphdGlvbiI7CisgIGNvbnN0IHVpbnQ4
X3Qga0RSQkdBRFsxNl0gPSAiQkNNIERSQkcgQUQgICAgICI7CisgIGNvbnN0IHVpbnQ4X3Qga0RS
QkdFbnRyb3B5Mls0OF0gPQorICAgICAgIkRCUkcgUmVzZWVkIEVudHJvcHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICI7CisKKyAgQUVTX0tFWSBhZXNfa2V5OworICB1aW50OF90IGFlc19p
dlsxNl07CisgIHVpbnQ4X3Qgb3V0cHV0WzI1Nl07CisKKyAgLyogQUVTLUNCQyBFbmNyeXB0aW9u
ICovCisgIG1lbXNldChhZXNfaXYsIDAsIHNpemVvZihhZXNfaXYpKTsKKyAgaWYgKEFFU19zZXRf
ZW5jcnlwdF9rZXkoa0FFU0tleSwgOCAqIHNpemVvZihrQUVTS2V5KSwgJmFlc19rZXkpICE9IDAp
IHsKKyAgICBwcmludGYoIkFFU19zZXRfZW5jcnlwdF9rZXkgZmFpbGVkXG4iKTsKKyAgICBnb3Rv
IGVycjsKKyAgfQorCisgIHByaW50ZigiQWJvdXQgdG8gQUVTLUNCQyBlbmNyeXB0ICIpOworICBo
ZXhkdW1wKGtQbGFpbnRleHQsIHNpemVvZihrUGxhaW50ZXh0KSk7CisgIEFFU19jYmNfZW5jcnlw
dChrUGxhaW50ZXh0LCBvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSwgJmFlc19rZXksIGFlc19p
diwKKyAgICAgICAgICAgICAgICAgIEFFU19FTkNSWVBUKTsKKyAgcHJpbnRmKCIgIGdvdCAiKTsK
KyAgaGV4ZHVtcChvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSk7CisKKyAgLyogQUVTLUNCQyBE
ZWNyeXB0aW9uICovCisgIG1lbXNldChhZXNfaXYsIDAsIHNpemVvZihhZXNfaXYpKTsKKyAgaWYg
KEFFU19zZXRfZGVjcnlwdF9rZXkoa0FFU0tleSwgOCAqIHNpemVvZihrQUVTS2V5KSwgJmFlc19r
ZXkpICE9IDApIHsKKyAgICBwcmludGYoIkFFUyBkZWNyeXB0IGZhaWxlZFxuIik7CisgICAgZ290
byBlcnI7CisgIH0KKyAgcHJpbnRmKCJBYm91dCB0byBBRVMtQ0JDIGRlY3J5cHQgIik7CisgIGhl
eGR1bXAob3V0cHV0LCBzaXplb2Yoa1BsYWludGV4dCkpOworICBBRVNfY2JjX2VuY3J5cHQob3V0
cHV0LCBvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSwgJmFlc19rZXksIGFlc19pdiwKKyAgICAg
ICAgICAgICAgICAgIEFFU19ERUNSWVBUKTsKKyAgcHJpbnRmKCIgIGdvdCAiKTsKKyAgaGV4ZHVt
cChvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSk7CisKKyAgc2l6ZV90IG91dF9sZW47CisgIHVp
bnQ4X3Qgbm9uY2VbRVZQX0FFQURfTUFYX05PTkNFX0xFTkdUSF07CisgIE9QRU5TU0xfbWVtc2V0
KG5vbmNlLCAwLCBzaXplb2Yobm9uY2UpKTsKKyAgRVZQX0FFQURfQ1RYIGFlYWRfY3R4OworICBp
ZiAoIUVWUF9BRUFEX0NUWF9pbml0KCZhZWFkX2N0eCwgRVZQX2FlYWRfYWVzXzEyOF9nY20oKSwg
a0FFU0tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa0FFU0tleSksIDAsIE5V
TEwpKSB7CisgICAgcHJpbnRmKCJFVlBfQUVBRF9DVFhfaW5pdCBmYWlsZWRcbiIpOworICAgIGdv
dG8gZXJyOworICB9CisKKyAgLyogQUVTLUdDTSBFbmNyeXB0aW9uICovCisgIHByaW50ZigiQWJv
dXQgdG8gQUVTLUdDTSBzZWFsICIpOworICBoZXhkdW1wKG91dHB1dCwgc2l6ZW9mKGtQbGFpbnRl
eHQpKTsKKyAgaWYgKCFFVlBfQUVBRF9DVFhfc2VhbCgmYWVhZF9jdHgsIG91dHB1dCwgJm91dF9s
ZW4sIHNpemVvZihvdXRwdXQpLCBub25jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBFVlBf
QUVBRF9ub25jZV9sZW5ndGgoRVZQX2FlYWRfYWVzXzEyOF9nY20oKSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAga1BsYWludGV4dCwgc2l6ZW9mKGtQbGFpbnRleHQpLCBOVUxMLCAwKSkgewor
ICAgIHByaW50ZigiQUVTLUdDTSBlbmNyeXB0IGZhaWxlZFxuIik7CisgICAgZ290byBlcnI7Cisg
IH0KKyAgcHJpbnRmKCIgIGdvdCAiKTsKKyAgaGV4ZHVtcChvdXRwdXQsIG91dF9sZW4pOworCisg
IC8qIEFFUy1HQ00gRGVjcnlwdGlvbiAqLworICBwcmludGYoIkFib3V0IHRvIEFFUy1HQ00gb3Bl
biAiKTsKKyAgaGV4ZHVtcChvdXRwdXQsIG91dF9sZW4pOworICBpZiAoIUVWUF9BRUFEX0NUWF9v
cGVuKCZhZWFkX2N0eCwgb3V0cHV0LCAmb3V0X2xlbiwgc2l6ZW9mKG91dHB1dCksIG5vbmNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUF9BRUFEX25vbmNlX2xlbmd0aChFVlBfYWVhZF9h
ZXNfMTI4X2djbSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIG91dF9sZW4s
IE5VTEwsIDApKSB7CisgICAgcHJpbnRmKCJBRVMtR0NNIGRlY3J5cHQgZmFpbGVkXG4iKTsKKyAg
ICBnb3RvIGVycjsKKyAgfQorICBwcmludGYoIiAgZ290ICIpOworICBoZXhkdW1wKG91dHB1dCwg
b3V0X2xlbik7CisKKyAgRVZQX0FFQURfQ1RYX2NsZWFudXAoJmFlYWRfY3R4KTsKKworICBERVNf
a2V5X3NjaGVkdWxlIGRlczEsIGRlczIsIGRlczM7CisgIERFU19jYmxvY2sgZGVzX2l2OworICBE
RVNfc2V0X2tleSgma0RFU0tleTEsICZkZXMxKTsKKyAgREVTX3NldF9rZXkoJmtERVNLZXkyLCAm
ZGVzMik7CisgIERFU19zZXRfa2V5KCZrREVTS2V5MywgJmRlczMpOworCisgIC8qIDNERVMgRW5j
cnlwdGlvbiAqLworICBtZW1jcHkoJmRlc19pdiwgJmtERVNJViwgc2l6ZW9mKGRlc19pdikpOwor
ICBwcmludGYoIkFib3V0IHRvIDNERVMtQ0JDIGVuY3J5cHQgIik7CisgIGhleGR1bXAoa1BsYWlu
dGV4dCwgc2l6ZW9mKGtQbGFpbnRleHQpKTsKKyAgREVTX2VkZTNfY2JjX2VuY3J5cHQoa1BsYWlu
dGV4dCwgb3V0cHV0LCBzaXplb2Yoa1BsYWludGV4dCksICZkZXMxLCAmZGVzMiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgJmRlczMsICZkZXNfaXYsIERFU19FTkNSWVBUKTsKKyAgcHJpbnRmKCIg
IGdvdCAiKTsKKyAgaGV4ZHVtcChvdXRwdXQsIHNpemVvZihrUGxhaW50ZXh0KSk7CisKKyAgLyog
M0RFUyBEZWNyeXB0aW9uICovCisgIG1lbWNweSgmZGVzX2l2LCAma0RFU0lWLCBzaXplb2YoZGVz
X2l2KSk7CisgIHByaW50ZigiQWJvdXQgdG8gM0RFUy1DQkMgZGVjcnlwdCAiKTsKKyAgaGV4ZHVt
cChrUGxhaW50ZXh0LCBzaXplb2Yoa1BsYWludGV4dCkpOworICBERVNfZWRlM19jYmNfZW5jcnlw
dChvdXRwdXQsIG91dHB1dCwgc2l6ZW9mKGtQbGFpbnRleHQpLCAmZGVzMSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgJmRlczIsICZkZXMzLCAmZGVzX2l2LCBERVNfREVDUllQVCk7CisgIHByaW50
ZigiICBnb3QgIik7CisgIGhleGR1bXAob3V0cHV0LCBzaXplb2Yoa1BsYWludGV4dCkpOworCisg
IC8qIFNIQS0xICovCisgIHByaW50ZigiQWJvdXQgdG8gU0hBLTEgaGFzaCAiKTsKKyAgaGV4ZHVt
cChrUGxhaW50ZXh0LCBzaXplb2Yoa1BsYWludGV4dCkpOworICBTSEExKGtQbGFpbnRleHQsIHNp
emVvZihrUGxhaW50ZXh0KSwgb3V0cHV0KTsKKyAgcHJpbnRmKCIgIGdvdCAiKTsKKyAgaGV4ZHVt
cChvdXRwdXQsIFNIQV9ESUdFU1RfTEVOR1RIKTsKKworICAvKiBTSEEtMjU2ICovCisgIHByaW50
ZigiQWJvdXQgdG8gU0hBLTI1NiBoYXNoICIpOworICBoZXhkdW1wKGtQbGFpbnRleHQsIHNpemVv
ZihrUGxhaW50ZXh0KSk7CisgIFNIQTI1NihrUGxhaW50ZXh0LCBzaXplb2Yoa1BsYWludGV4dCks
IG91dHB1dCk7CisgIHByaW50ZigiICBnb3QgIik7CisgIGhleGR1bXAob3V0cHV0LCBTSEEyNTZf
RElHRVNUX0xFTkdUSCk7CisKKyAgLyogU0hBLTUxMiAqLworICBwcmludGYoIkFib3V0IHRvIFNI
QS01MTIgaGFzaCAiKTsKKyAgaGV4ZHVtcChrUGxhaW50ZXh0LCBzaXplb2Yoa1BsYWludGV4dCkp
OworICBTSEE1MTIoa1BsYWludGV4dCwgc2l6ZW9mKGtQbGFpbnRleHQpLCBvdXRwdXQpOworICBw
cmludGYoIiAgZ290ICIpOworICBoZXhkdW1wKG91dHB1dCwgU0hBNTEyX0RJR0VTVF9MRU5HVEgp
OworCisgIFJTQSAqcnNhX2tleSA9IFJTQV9uZXcoKTsKKyAgcHJpbnRmKCJBYm91dCB0byBnZW5l
cmF0ZSBSU0Ega2V5XG4iKTsKKyAgaWYgKCFSU0FfZ2VuZXJhdGVfa2V5X2ZpcHMocnNhX2tleSwg
MjA0OCwgTlVMTCkpIHsKKyAgICBwcmludGYoIlJTQV9nZW5lcmF0ZV9rZXlfZmlwcyBmYWlsZWRc
biIpOworICAgIGdvdG8gZXJyOworICB9CisKKyAgLyogUlNBIFNpZ24gKi8KKyAgdW5zaWduZWQg
c2lnX2xlbjsKKyAgcHJpbnRmKCJBYm91dCB0byBSU0Egc2lnbiAiKTsKKyAgaGV4ZHVtcChrUGxh
aW50ZXh0U0hBMjU2LCBzaXplb2Yoa1BsYWludGV4dFNIQTI1NikpOworICBpZiAoIVJTQV9zaWdu
KE5JRF9zaGEyNTYsIGtQbGFpbnRleHRTSEEyNTYsIHNpemVvZihrUGxhaW50ZXh0U0hBMjU2KSwg
b3V0cHV0LAorICAgICAgICAgICAgICAgICZzaWdfbGVuLCByc2Ffa2V5KSkgeworICAgIHByaW50
ZigiUlNBIFNpZ24gZmFpbGVkXG4iKTsKKyAgICBnb3RvIGVycjsKKyAgfQorICBwcmludGYoIiAg
Z290ICIpOworICBoZXhkdW1wKG91dHB1dCwgc2lnX2xlbik7CisKKyAgLyogUlNBIFZlcmlmeSAq
LworICBwcmludGYoIkFib3V0IHRvIFJTQSB2ZXJpZnkgIik7CisgIGhleGR1bXAob3V0cHV0LCBz
aWdfbGVuKTsKKyAgaWYgKCFSU0FfdmVyaWZ5KE5JRF9zaGEyNTYsIGtQbGFpbnRleHRTSEEyNTYs
IHNpemVvZihrUGxhaW50ZXh0U0hBMjU2KSwKKyAgICAgICAgICAgICAgICAgIG91dHB1dCwgc2ln
X2xlbiwgcnNhX2tleSkpIHsKKyAgICBwcmludGYoIlJTQSBWZXJpZnkgZmFpbGVkLlxuIik7Cisg
ICAgZ290byBlcnI7CisgIH0KKworICBSU0FfZnJlZShyc2Ffa2V5KTsKKworICBFQ19LRVkgKmVj
X2tleSA9IEVDX0tFWV9uZXdfYnlfY3VydmVfbmFtZShOSURfWDlfNjJfcHJpbWUyNTZ2MSk7Cisg
IGlmIChlY19rZXkgPT0gTlVMTCkgeworICAgIHByaW50ZigiaW52YWxpZCBFQ0RTQSBrZXlcbiIp
OworICAgIGdvdG8gZXJyOworICB9CisKKyAgcHJpbnRmKCJBYm91dCB0byBnZW5lcmF0ZSBQLTI1
NiBrZXlcbiIpOworICBpZiAoIUVDX0tFWV9nZW5lcmF0ZV9rZXlfZmlwcyhlY19rZXkpKSB7Cisg
ICAgcHJpbnRmKCJFQ19LRVlfZ2VuZXJhdGVfa2V5X2ZpcHMgZmFpbGVkXG4iKTsKKyAgICBnb3Rv
IGVycjsKKyAgfQorCisgIC8qIEVDRFNBIFNpZ24vVmVyaWZ5IFBXQ1QgKi8KKyAgcHJpbnRmKCJB
Ym91dCB0byBFQ0RTQSBzaWduICIpOworICBoZXhkdW1wKGtQbGFpbnRleHRTSEEyNTYsIHNpemVv
ZihrUGxhaW50ZXh0U0hBMjU2KSk7CisgIEVDRFNBX1NJRyAqc2lnID0KKyAgICAgIEVDRFNBX2Rv
X3NpZ24oa1BsYWludGV4dFNIQTI1Niwgc2l6ZW9mKGtQbGFpbnRleHRTSEEyNTYpLCBlY19rZXkp
OworICBpZiAoc2lnID09IE5VTEwgfHwKKyAgICAgICFFQ0RTQV9kb192ZXJpZnkoa1BsYWludGV4
dFNIQTI1Niwgc2l6ZW9mKGtQbGFpbnRleHRTSEEyNTYpLCBzaWcsCisgICAgICAgICAgICAgICAg
ICAgICAgIGVjX2tleSkpIHsKKyAgICBwcmludGYoIkVDRFNBIFNpZ24vVmVyaWZ5IFBXQ1QgZmFp
bGVkLlxuIik7CisgICAgZ290byBlcnI7CisgIH0KKworICBFQ0RTQV9TSUdfZnJlZShzaWcpOwor
ICBFQ19LRVlfZnJlZShlY19rZXkpOworCisgIC8qIERCUkcgKi8KKyAgQ1RSX0RSQkdfU1RBVEUg
ZHJiZzsKKyAgcHJpbnRmKCJBYm91dCB0byBzZWVkIENUUi1EUkJHIHdpdGggIik7CisgIGhleGR1
bXAoa0RSQkdFbnRyb3B5LCBzaXplb2Yoa0RSQkdFbnRyb3B5KSk7CisgIGlmICghQ1RSX0RSQkdf
aW5pdCgmZHJiZywga0RSQkdFbnRyb3B5LCBrRFJCR1BlcnNvbmFsaXphdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgIHNpemVvZihrRFJCR1BlcnNvbmFsaXphdGlvbikpIHx8CisgICAgICAhQ1RS
X0RSQkdfZ2VuZXJhdGUoJmRyYmcsIG91dHB1dCwgc2l6ZW9mKG91dHB1dCksIGtEUkJHQUQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtEUkJHQUQpKSB8fAorICAgICAgIUNUUl9E
UkJHX3Jlc2VlZCgmZHJiZywga0RSQkdFbnRyb3B5Miwga0RSQkdBRCwgc2l6ZW9mKGtEUkJHQUQp
KSB8fAorICAgICAgIUNUUl9EUkJHX2dlbmVyYXRlKCZkcmJnLCBvdXRwdXQsIHNpemVvZihvdXRw
dXQpLCBrRFJCR0FELAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrRFJCR0FEKSkp
IHsKKyAgICBwcmludGYoIkRSQkcgZmFpbGVkXG4iKTsKKyAgICBnb3RvIGVycjsKKyAgfQorICBw
cmludGYoIiAgZ2VuZXJhdGVkICIpOworICBoZXhkdW1wKG91dHB1dCwgc2l6ZW9mKG91dHB1dCkp
OworICBDVFJfRFJCR19jbGVhcigmZHJiZyk7CisKKyAgcHJpbnRmKCJQQVNTXG4iKTsKKyAgcmV0
dXJuIDA7CisKK2VycjoKKyAgcHJpbnRmKCJGQUlMXG4iKTsKKyAgYWJvcnQoKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS9kZWxvY2F0ZS5nbyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGls
L2ZpcHN0b29scy9kZWxvY2F0ZS9kZWxvY2F0ZS5nbwppbmRleCA0NzM0Mjg1MzMzZmIzMWE2NWU1
YzA4MjE2MjRhZmQyYjQwNTYxODc3Li5hNDNiNDI4NjFiNDVhYmI5OTM3YWYxMzRhMDkxZWMzM2Fk
MTU1OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvZGVsb2NhdGUu
Z28KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2RlbG9jYXRlL2RlbG9jYXRlLmdvCkBAIC04MDEs
NiArODAxLDggQEAgY29uc3QgKAogCS8vIGluc3RyQ29tYmluZSBtZXJnZXMgdGhlIHNvdXJjZSBh
bmQgZGVzdGluYXRpb24gaW4gc29tZSBmYXNoaW9uLCBmb3IgZXhhbXBsZQogCS8vIGEgMi1vcGVy
YW5kIGJpdHdpc2Ugb3BlcmF0aW9uLgogCWluc3RyQ29tYmluZQorCS8vIGluc3RyVGhyZWVBcmcg
bWVyZ2VzIHR3byBzb3VyY2VzIGludG8gYSBkZXN0aW5hdGlvbiBpbiBzb21lIGZhc2hpb24uCisJ
aW5zdHJUaHJlZUFyZwogCWluc3RyT3RoZXIKICkKIApAQCAtODMxLDYgKzgzMywxMSBAQCBmdW5j
IGNsYXNzaWZ5SW5zdHJ1Y3Rpb24oaW5zdHIgc3RyaW5nLCBhcmdzIFtdKm5vZGUzMikgaW5zdHJ1
Y3Rpb25UeXBlIHsKIAkJCXJldHVybiBpbnN0ckNvbWJpbmUKIAkJfQogCisJY2FzZSAic2FyeHEi
LCAic2hseHEiLCAic2hyeHEiOgorCQlpZiBsZW4oYXJncykgPT0gMyB7CisJCQlyZXR1cm4gaW5z
dHJUaHJlZUFyZworCQl9CisKIAljYXNlICJ2cGJyb2FkY2FzdHEiOgogCQlpZiBsZW4oYXJncykg
PT0gMiB7CiAJCQlyZXR1cm4gaW5zdHJUcmFuc2Zvcm1pbmdNb3ZlCkBAIC04NzgsMTAgKzg4NSwy
NCBAQCBmdW5jIHNhdmVGbGFncyh3IHN0cmluZ1dyaXRlciwgcmVkem9uZUNsZWFyZWQgYm9vbCkg
d3JhcHBlckZ1bmMgewogCX0KIH0KIAotZnVuYyBzYXZlUmVnaXN0ZXIodyBzdHJpbmdXcml0ZXIs
IGF2b2lkUmVnIHN0cmluZykgKHdyYXBwZXJGdW5jLCBzdHJpbmcpIHsKLQlyZWcgOj0gIiVyYXgi
Ci0JaWYgcmVnID09IGF2b2lkUmVnIHsKLQkJcmVnID0gIiVyYngiCitmdW5jIHNhdmVSZWdpc3Rl
cih3IHN0cmluZ1dyaXRlciwgYXZvaWRSZWdzIFtdc3RyaW5nKSAod3JhcHBlckZ1bmMsIHN0cmlu
ZykgeworCWNhbmRpZGF0ZXMgOj0gW11zdHJpbmd7IiVyYXgiLCAiJXJieCIsICIlcmN4IiwgIiVy
ZHgifQorCisJdmFyIHJlZyBzdHJpbmcKK05leHRDYW5kaWRhdGU6CisJZm9yIF8sIGNhbmRpZGF0
ZSA6PSByYW5nZSBjYW5kaWRhdGVzIHsKKwkJZm9yIF8sIGF2b2lkIDo9IHJhbmdlIGF2b2lkUmVn
cyB7CisJCQlpZiBjYW5kaWRhdGUgPT0gYXZvaWQgeworCQkJCWNvbnRpbnVlIE5leHRDYW5kaWRh
dGUKKwkJCX0KKwkJfQorCisJCXJlZyA9IGNhbmRpZGF0ZQorCQlicmVhaworCX0KKworCWlmIGxl
bihyZWcpID09IDAgeworCQlwYW5pYygidG9vIG1hbnkgZXhjbHVkZWQgcmVnaXN0ZXJzIikKIAl9
CiAKIAlyZXR1cm4gZnVuYyhrIGZ1bmMoKSkgewpAQCAtOTE4LDYgKzkzOSwxMyBAQCBmdW5jIGNv
bWJpbmVPcCh3IHN0cmluZ1dyaXRlciwgaW5zdHJ1Y3Rpb25OYW1lLCBzb3VyY2UsIGRlc3Qgc3Ry
aW5nKSB3cmFwcGVyRnVuYwogCX0KIH0KIAorZnVuYyB0aHJlZUFyZ0NvbWJpbmVPcCh3IHN0cmlu
Z1dyaXRlciwgaW5zdHJ1Y3Rpb25OYW1lLCBzb3VyY2UxLCBzb3VyY2UyLCBkZXN0IHN0cmluZykg
d3JhcHBlckZ1bmMgeworCXJldHVybiBmdW5jKGsgZnVuYygpKSB7CisJCWsoKQorCQl3LldyaXRl
U3RyaW5nKCJcdCIgKyBpbnN0cnVjdGlvbk5hbWUgKyAiICIgKyBzb3VyY2UxICsgIiwgIiArIHNv
dXJjZTIgKyAiLCAiICsgZGVzdCArICJcbiIpCisJfQorfQorCiBmdW5jIGlzVmFsaWRMRUFUYXJn
ZXQocmVnIHN0cmluZykgYm9vbCB7CiAJcmV0dXJuICFzdHJpbmdzLkhhc1ByZWZpeChyZWcsICIl
eG1tIikgJiYgIXN0cmluZ3MuSGFzUHJlZml4KHJlZywgIiV5bW0iKSAmJiAhc3RyaW5ncy5IYXNQ
cmVmaXgocmVnLCAiJXptbSIpCiB9CkBAIC0xMDMzLDkgKzEwNjEsNiBAQCBBcmdzOgogCQkJCWlm
IGxlbihvZmZzZXQpID4gMCB7CiAJCQkJCXJldHVybiBuaWwsIGVycm9ycy5OZXcoImxvYWRpbmcg
ZnJvbSBHT1Qgd2l0aCBvZmZzZXQgaXMgdW5zdXBwb3J0ZWQiKQogCQkJCX0KLQkJCQlpZiBpICE9
IDAgewotCQkJCQlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJHT1QgYWNjZXNzIG11c3QgYmUgc291
cmNlIG9wZXJhbmQiKQotCQkJCX0KIAkJCQlpZiAhZC5pc1JJUFJlbGF0aXZlKG1lbVJlZikgewog
CQkJCQlyZXR1cm4gbmlsLCBlcnJvcnMuTmV3KCJHT1QgYWNjZXNzIG11c3QgYmUgSVAtcmVsYXRp
dmUiKQogCQkJCX0KQEAgLTEwNDgsMTAgKzEwNzMsMTUgQEAgQXJnczoKIAkJCQkJdXNlR09UID0g
dHJ1ZQogCQkJCX0KIAorCQkJCWNsYXNzaWZpY2F0aW9uIDo9IGNsYXNzaWZ5SW5zdHJ1Y3Rpb24o
aW5zdHJ1Y3Rpb25OYW1lLCBhcmdOb2RlcykKKwkJCQlpZiBjbGFzc2lmaWNhdGlvbiAhPSBpbnN0
clRocmVlQXJnICYmIGkgIT0gMCB7CisJCQkJCXJldHVybiBuaWwsIGVycm9ycy5OZXcoIkdPVCBh
Y2Nlc3MgbXVzdCBiZSBzb3VyY2Ugb3BlcmFuZCIpCisJCQkJfQorCiAJCQkJLy8gUmVkdWNlIHRo
ZSBpbnN0cnVjdGlvbiB0byBtb3ZxIHN5bWJvbEBHT1RQQ1JFTCwgdGFyZ2V0UmVnLgogCQkJCXZh
ciB0YXJnZXRSZWcgc3RyaW5nCiAJCQkJdmFyIHJlZHpvbmVDbGVhcmVkIGJvb2wKLQkJCQlzd2l0
Y2ggY2xhc3NpZnlJbnN0cnVjdGlvbihpbnN0cnVjdGlvbk5hbWUsIGFyZ05vZGVzKSB7CisJCQkJ
c3dpdGNoIGNsYXNzaWZpY2F0aW9uIHsKIAkJCQljYXNlIGluc3RyUHVzaDoKIAkJCQkJd3JhcHBl
cnMgPSBhcHBlbmQod3JhcHBlcnMsIHB1c2goZC5vdXRwdXQpKQogCQkJCQl0YXJnZXRSZWcgPSAi
JXJheCIKQEAgLTEwNzMsMTIgKzExMDMsMzYgQEAgQXJnczoKIAkJCQkJaWYgIWlzVmFsaWRMRUFU
YXJnZXQodGFyZ2V0UmVnKSB7CiAJCQkJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJjYW5ub3Qg
aGFuZGxlIGNvbWJpbmluZyBpbnN0cnVjdGlvbnMgdGFyZ2V0aW5nIG5vbi1nZW5lcmFsIHJlZ2lz
dGVycyIpCiAJCQkJCX0KLQkJCQkJc2F2ZVJlZ1dyYXBwZXIsIHRlbXBSZWcgOj0gc2F2ZVJlZ2lz
dGVyKGQub3V0cHV0LCB0YXJnZXRSZWcpCisJCQkJCXNhdmVSZWdXcmFwcGVyLCB0ZW1wUmVnIDo9
IHNhdmVSZWdpc3RlcihkLm91dHB1dCwgW11zdHJpbmd7dGFyZ2V0UmVnfSkKIAkJCQkJcmVkem9u
ZUNsZWFyZWQgPSB0cnVlCiAJCQkJCXdyYXBwZXJzID0gYXBwZW5kKHdyYXBwZXJzLCBzYXZlUmVn
V3JhcHBlcikKIAogCQkJCQl3cmFwcGVycyA9IGFwcGVuZCh3cmFwcGVycywgY29tYmluZU9wKGQu
b3V0cHV0LCBpbnN0cnVjdGlvbk5hbWUsIHRlbXBSZWcsIHRhcmdldFJlZykpCiAJCQkJCXRhcmdl
dFJlZyA9IHRlbXBSZWcKKwkJCQljYXNlIGluc3RyVGhyZWVBcmc6CisJCQkJCWlmIG4gOj0gbGVu
KGFyZ05vZGVzKTsgbiAhPSAzIHsKKwkJCQkJCXJldHVybiBuaWwsIGZtdC5FcnJvcmYoInRocmVl
LWFyZ3VtZW50IGluc3RydWN0aW9uIGhhcyAlZCBhcmd1bWVudHMiLCBuKQorCQkJCQl9CisJCQkJ
CWlmIGkgIT0gMCAmJiBpICE9IDEgeworCQkJCQkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ldygiR09U
IGFjY2VzcyBtdXN0IGJlIGZyb20gc291cmUgb3BlcmFuZCIpCisJCQkJCX0KKwkJCQkJdGFyZ2V0
UmVnID0gZC5jb250ZW50cyhhcmdOb2Rlc1syXSkKKworCQkJCQlvdGhlclNvdXJjZSA6PSBkLmNv
bnRlbnRzKGFyZ05vZGVzWzFdKQorCQkJCQlpZiBpID09IDEgeworCQkJCQkJb3RoZXJTb3VyY2Ug
PSBkLmNvbnRlbnRzKGFyZ05vZGVzWzBdKQorCQkJCQl9CisKKwkJCQkJc2F2ZVJlZ1dyYXBwZXIs
IHRlbXBSZWcgOj0gc2F2ZVJlZ2lzdGVyKGQub3V0cHV0LCBbXXN0cmluZ3t0YXJnZXRSZWcsIG90
aGVyU291cmNlfSkKKwkJCQkJcmVkem9uZUNsZWFyZWQgPSB0cnVlCisJCQkJCXdyYXBwZXJzID0g
YXBwZW5kKHdyYXBwZXJzLCBzYXZlUmVnV3JhcHBlcikKKworCQkJCQlpZiBpID09IDAgeworCQkJ
CQkJd3JhcHBlcnMgPSBhcHBlbmQod3JhcHBlcnMsIHRocmVlQXJnQ29tYmluZU9wKGQub3V0cHV0
LCBpbnN0cnVjdGlvbk5hbWUsIHRlbXBSZWcsIG90aGVyU291cmNlLCB0YXJnZXRSZWcpKQorCQkJ
CQl9IGVsc2UgeworCQkJCQkJd3JhcHBlcnMgPSBhcHBlbmQod3JhcHBlcnMsIHRocmVlQXJnQ29t
YmluZU9wKGQub3V0cHV0LCBpbnN0cnVjdGlvbk5hbWUsIG90aGVyU291cmNlLCB0ZW1wUmVnLCB0
YXJnZXRSZWcpKQorCQkJCQl9CisJCQkJCXRhcmdldFJlZyA9IHRlbXBSZWcKIAkJCQlkZWZhdWx0
OgogCQkJCQlyZXR1cm4gbmlsLCBmbXQuRXJyb3JmKCJDYW5ub3QgcmV3cml0ZSBHT1RQQ1JFTCBy
ZWZlcmVuY2UgZm9yIGluc3RydWN0aW9uICVxIiwgaW5zdHJ1Y3Rpb25OYW1lKQogCQkJCX0KQEAg
LTEwODcsNyArMTE0MSw3IEBAIEFyZ3M6CiAJCQkJCS8vIFNvbWV0aW1lcyB0aGUgY29tcGlsZXIg
d2lsbCBsb2FkIGZyb20gdGhlIEdPVCB0byBhbgogCQkJCQkvLyBYTU0gcmVnaXN0ZXIsIHdoaWNo
IGlzIG5vdCBhIHZhbGlkIHRhcmdldCBvZiBhbiBMRUEKIAkJCQkJLy8gaW5zdHJ1Y3Rpb24uCi0J
CQkJCXNhdmVSZWdXcmFwcGVyLCB0ZW1wUmVnIDo9IHNhdmVSZWdpc3RlcihkLm91dHB1dCwgIiIp
CisJCQkJCXNhdmVSZWdXcmFwcGVyLCB0ZW1wUmVnIDo9IHNhdmVSZWdpc3RlcihkLm91dHB1dCwg
bmlsKQogCQkJCQl3cmFwcGVycyA9IGFwcGVuZCh3cmFwcGVycywgc2F2ZVJlZ1dyYXBwZXIpCiAJ
CQkJCWlzQVZYIDo9IHN0cmluZ3MuSGFzUHJlZml4KGluc3RydWN0aW9uTmFtZSwgInYiKQogCQkJ
CQl3cmFwcGVycyA9IGFwcGVuZCh3cmFwcGVycywgbW92ZVRvKGQub3V0cHV0LCB0YXJnZXRSZWcs
IGlzQVZYLCB0ZW1wUmVnKSkKQEAgLTEyMTUsNiArMTI2OSwxMyBAQCBmdW5jIHRyYW5zZm9ybSh3
IHN0cmluZ1dyaXRlciwgaW5wdXRzIFtdaW5wdXRGaWxlKSBlcnJvciB7CiAJLy8gbWF4T2JzZXJ2
ZWRGaWxlTnVtYmVyIGNvbnRhaW5zIHRoZSBsYXJnZXN0IHNlZW4gZmlsZSBudW1iZXIgaW4gYQog
CS8vIC5maWxlIGRpcmVjdGl2ZS4gWmVybyBpcyBub3QgYSB2YWxpZCBudW1iZXIuCiAJbWF4T2Jz
ZXJ2ZWRGaWxlTnVtYmVyIDo9IDAKKwkvLyBmaWxlRGlyZWN0aXZlc0NvbnRhaW5NRDUgaXMgdHJ1
ZSBpZiB0aGUgY29tcGlsZXIgaXMgb3V0cHV0dGluZyBNRDUKKwkvLyBjaGVja3N1bXMgaW4gLmZp
bGUgZGlyZWN0aXZlcy4gSWYgaXQgZG9lcyBzbywgdGhlbiB0aGlzIHNjcmlwdCBuZWVkcworCS8v
IHRvIG1hdGNoIHRoYXQgYmVoYXZpb3VyIG90aGVyd2lzZSB3YXJuaW5ncyByZXN1bHQuCisJZmls
ZURpcmVjdGl2ZXNDb250YWluTUQ1IDo9IGZhbHNlCisKKwkvLyBPUEVOU1NMX2lhMzJjYXBfZ2V0
IHdpbGwgYmUgc3ludGhlc2l6ZWQgYnkgdGhpcyBzY3JpcHQuCisJc3ltYm9sc1siT1BFTlNTTF9p
YTMyY2FwX2dldCJdID0gc3RydWN0e317fQogCiAJZm9yIF8sIGlucHV0IDo9IHJhbmdlIGlucHV0
cyB7CiAJCWZvckVhY2hQYXRoKGlucHV0LmFzdC51cCwgZnVuYyhub2RlICpub2RlMzIpIHsKQEAg
LTEyNzEsNiArMTMzMiwxMiBAQCBmdW5jIHRyYW5zZm9ybSh3IHN0cmluZ1dyaXRlciwgaW5wdXRz
IFtdaW5wdXRGaWxlKSBlcnJvciB7CiAJCQlpZiBmaWxlTm8gPiBtYXhPYnNlcnZlZEZpbGVOdW1i
ZXIgewogCQkJCW1heE9ic2VydmVkRmlsZU51bWJlciA9IGZpbGVObwogCQkJfQorCisJCQlmb3Ig
XywgdG9rZW4gOj0gcmFuZ2UgcGFydHNbMjpdIHsKKwkJCQlpZiB0b2tlbiA9PSAibWQ1IiB7CisJ
CQkJCWZpbGVEaXJlY3RpdmVzQ29udGFpbk1ENSA9IHRydWUKKwkJCQl9CisJCQl9CiAJCX0sIHJ1
bGVTdGF0ZW1lbnQsIHJ1bGVMb2NhdGlvbkRpcmVjdGl2ZSkKIAl9CiAKQEAgLTEyOTEsNyArMTM1
OCwxMSBAQCBmdW5jIHRyYW5zZm9ybSh3IHN0cmluZ1dyaXRlciwgaW5wdXRzIFtdaW5wdXRGaWxl
KSBlcnJvciB7CiAJfQogCiAJdy5Xcml0ZVN0cmluZygiLnRleHRcbiIpCi0Jdy5Xcml0ZVN0cmlu
ZyhmbXQuU3ByaW50ZigiLmZpbGUgJWQgXCJpbnNlcnRlZF9ieV9kZWxvY2F0ZS5jXCJcbiIsIG1h
eE9ic2VydmVkRmlsZU51bWJlcisxKSkKKwl2YXIgZmlsZVRyYWlsaW5nIHN0cmluZworCWlmIGZp
bGVEaXJlY3RpdmVzQ29udGFpbk1ENSB7CisJCWZpbGVUcmFpbGluZyA9ICIgbWQ1IDB4MDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiCisJfQorCXcuV3JpdGVTdHJpbmcoZm10LlNwcmlu
dGYoIi5maWxlICVkIFwiaW5zZXJ0ZWRfYnlfZGVsb2NhdGUuY1wiJXNcbiIsIG1heE9ic2VydmVk
RmlsZU51bWJlcisxLCBmaWxlVHJhaWxpbmcpKQogCXcuV3JpdGVTdHJpbmcoZm10LlNwcmludGYo
Ii5sb2MgJWQgMSAwXG4iLCBtYXhPYnNlcnZlZEZpbGVOdW1iZXIrMSkpCiAJdy5Xcml0ZVN0cmlu
ZygiQk9SSU5HU1NMX2JjbV90ZXh0X3N0YXJ0OlxuIikKIApAQCAtMTM5NCw2ICsxNDY1LDggQEAg
ZnVuYyB0cmFuc2Zvcm0odyBzdHJpbmdXcml0ZXIsIGlucHV0cyBbXWlucHV0RmlsZSkgZXJyb3Ig
ewogCQl9CiAKIAkJdy5Xcml0ZVN0cmluZygiLnR5cGUgT1BFTlNTTF9pYTMyY2FwX2dldCwgQGZ1
bmN0aW9uXG4iKQorCQl3LldyaXRlU3RyaW5nKCIuZ2xvYmwgT1BFTlNTTF9pYTMyY2FwX2dldFxu
IikKKwkJdy5Xcml0ZVN0cmluZyhsb2NhbFRhcmdldE5hbWUoIk9QRU5TU0xfaWEzMmNhcF9nZXQi
KSArICI6XG4iKQogCQl3LldyaXRlU3RyaW5nKCJPUEVOU1NMX2lhMzJjYXBfZ2V0OlxuIikKIAkJ
dy5Xcml0ZVN0cmluZygiXHRsZWFxIE9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCAlcmF4XG4iKQog
CQl3LldyaXRlU3RyaW5nKCJcdHJldFxuIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29s
cy9kZWxvY2F0ZS9kZWxvY2F0ZS5wZWcgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvZGVs
b2NhdGUucGVnCmluZGV4IDgyYTNjYjVhMmY0MTI3MGU0NWYzZGFiZjY1MDMzMWYzZmY1NTZmYjcu
LmIyNGE0N2EzZDQxZTdhNDFhMmIxYmU1ODRlZDEyOWNiN2U5MDY5OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3Ny
Yy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS9kZWxvY2F0ZS5wZWcKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlw
c3Rvb2xzL2RlbG9jYXRlL2RlbG9jYXRlLnBlZwpAQCAtMzYsNyArMzYsNyBAQCBBcmcgPC0gUXVv
dGVkQXJnIC8gW1swLTlhLXolK1wtKl9ALl1dKgogUXVvdGVkQXJnIDwtICciJyBRdW90ZWRUZXh0
ICciJwogUXVvdGVkVGV4dCA8LSAoRXNjYXBlZENoYXIgLyBbXiJdKSoKIExhYmVsQ29udGFpbmlu
Z0RpcmVjdGl2ZSA8LSBMYWJlbENvbnRhaW5pbmdEaXJlY3RpdmVOYW1lIFdTIFN5bWJvbEFyZ3MK
LUxhYmVsQ29udGFpbmluZ0RpcmVjdGl2ZU5hbWUgPC0gIi5sb25nIiAvICIuc2V0IiAvICIuOGJ5
dGUiIC8gIi40Ynl0ZSIgLyAiLnF1YWQiIC8gIi50YyIgLyAiLmxvY2FsZW50cnkiIC8gIi5zaXpl
IiAvICIudHlwZSIKK0xhYmVsQ29udGFpbmluZ0RpcmVjdGl2ZU5hbWUgPC0gIi5sb25nIiAvICIu
c2V0IiAvICIuOGJ5dGUiIC8gIi40Ynl0ZSIgLyAiLnF1YWQiIC8gIi50YyIgLyAiLmxvY2FsZW50
cnkiIC8gIi5zaXplIiAvICIudHlwZSIgLyAiLnVsZWIxMjgiIC8gIi5zbGViMTI4IgogU3ltYm9s
QXJncyA8LSBTeW1ib2xBcmcgKChXUz8gJywnIFdTPykgU3ltYm9sQXJnKSoKIFN5bWJvbEFyZyA8
LSBPZmZzZXQgLwogICAgICAgICAgICAgIFN5bWJvbFR5cGUgLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvZmlwc3Rvb2xzL2RlbG9jYXRlL2RlbG9jYXRlLnBlZy5nbyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29s
cy9kZWxvY2F0ZS9kZWxvY2F0ZS5wZWcuZ28KaW5kZXggZTE0Nzk0MzRiNWQ0MjA5YTAyNDFjYTdk
ZDQzZDUyODU4MDU4ZWM3Yy4uMjk4ZjU1Yzg4OGE0OGU0ZWMxOWQ1ZWQyNTcyMTk3OWFlYjA0NmU4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2RlbG9jYXRlL2RlbG9jYXRlLnBlZy5n
bworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvZGVsb2NhdGUucGVnLmdvCkBAIC0x
MjYwLDcgKzEyNjAsNyBAQCBmdW5jIChwICpBc20pIEluaXQoKSB7CiAJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uMTMxLCB0b2tlbkluZGV4MTMxCiAJCQlyZXR1cm4gZmFsc2UKIAkJ
fSwKLQkJLyogMTEgTGFiZWxDb250YWluaW5nRGlyZWN0aXZlTmFtZSA8LSA8KCgnLicgKCdsJyAv
ICdMJykgKCdvJyAvICdPJykgKCduJyAvICdOJykgKCdnJyAvICdHJykpIC8gKCcuJyAoJ3MnIC8g
J1MnKSAoJ2UnIC8gJ0UnKSAoJ3QnIC8gJ1QnKSkgLyAoJy4nICc4JyAoJ2InIC8gJ0InKSAoJ3kn
IC8gJ1knKSAoJ3QnIC8gJ1QnKSAoJ2UnIC8gJ0UnKSkgLyAoJy4nICc0JyAoJ2InIC8gJ0InKSAo
J3knIC8gJ1knKSAoJ3QnIC8gJ1QnKSAoJ2UnIC8gJ0UnKSkgLyAoJy4nICgncScgLyAnUScpICgn
dScgLyAnVScpICgnYScgLyAnQScpICgnZCcgLyAnRCcpKSAvICgnLicgKCd0JyAvICdUJykgKCdj
JyAvICdDJykpIC8gKCcuJyAoJ2wnIC8gJ0wnKSAoJ28nIC8gJ08nKSAoJ2MnIC8gJ0MnKSAoJ2En
IC8gJ0EnKSAoJ2wnIC8gJ0wnKSAoJ2UnIC8gJ0UnKSAoJ24nIC8gJ04nKSAoJ3QnIC8gJ1QnKSAo
J3InIC8gJ1InKSAoJ3knIC8gJ1knKSkgLyAoJy4nICgncycgLyAnUycpICgnaScgLyAnSScpICgn
eicgLyAnWicpICgnZScgLyAnRScpKSAvICgnLicgKCd0JyAvICdUJykgKCd5JyAvICdZJykgKCdw
JyAvICdQJykgKCdlJyAvICdFJykpKT4gKi8KKwkJLyogMTEgTGFiZWxDb250YWluaW5nRGlyZWN0
aXZlTmFtZSA8LSA8KCgnLicgKCdsJyAvICdMJykgKCdvJyAvICdPJykgKCduJyAvICdOJykgKCdn
JyAvICdHJykpIC8gKCcuJyAoJ3MnIC8gJ1MnKSAoJ2UnIC8gJ0UnKSAoJ3QnIC8gJ1QnKSkgLyAo
Jy4nICc4JyAoJ2InIC8gJ0InKSAoJ3knIC8gJ1knKSAoJ3QnIC8gJ1QnKSAoJ2UnIC8gJ0UnKSkg
LyAoJy4nICc0JyAoJ2InIC8gJ0InKSAoJ3knIC8gJ1knKSAoJ3QnIC8gJ1QnKSAoJ2UnIC8gJ0Un
KSkgLyAoJy4nICgncScgLyAnUScpICgndScgLyAnVScpICgnYScgLyAnQScpICgnZCcgLyAnRCcp
KSAvICgnLicgKCd0JyAvICdUJykgKCdjJyAvICdDJykpIC8gKCcuJyAoJ2wnIC8gJ0wnKSAoJ28n
IC8gJ08nKSAoJ2MnIC8gJ0MnKSAoJ2EnIC8gJ0EnKSAoJ2wnIC8gJ0wnKSAoJ2UnIC8gJ0UnKSAo
J24nIC8gJ04nKSAoJ3QnIC8gJ1QnKSAoJ3InIC8gJ1InKSAoJ3knIC8gJ1knKSkgLyAoJy4nICgn
cycgLyAnUycpICgnaScgLyAnSScpICgneicgLyAnWicpICgnZScgLyAnRScpKSAvICgnLicgKCd0
JyAvICdUJykgKCd5JyAvICdZJykgKCdwJyAvICdQJykgKCdlJyAvICdFJykpIC8gKCcuJyAoJ3Un
IC8gJ1UnKSAoJ2wnIC8gJ0wnKSAoJ2UnIC8gJ0UnKSAoJ2InIC8gJ0InKSAnMScgJzInICc4Jykg
LyAoJy4nICgncycgLyAnUycpICgnbCcgLyAnTCcpICgnZScgLyAnRScpICgnYicgLyAnQicpICcx
JyAnMicgJzgnKSk+ICovCiAJCWZ1bmMoKSBib29sIHsKIAkJCXBvc2l0aW9uMTMzLCB0b2tlbklu
ZGV4MTMzIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7CkBAIC0xODU3LDY5ICsxODU3LDIy
NyBAQCBmdW5jIChwICpBc20pIEluaXQoKSB7CiAJCQkJbDIwNToKIAkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjEzNSwgdG9rZW5JbmRleDEzNQogCQkJCQlpZiBidWZmZXJbcG9z
aXRpb25dICE9IHJ1bmUoJy4nKSB7Ci0JCQkJCQlnb3RvIGwxMzMKKwkJCQkJCWdvdG8gbDIxNAog
CQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQkJewotCQkJCQkJcG9zaXRpb24yMTQsIHRva2Vu
SW5kZXgyMTQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uMjE1LCB0b2tl
bkluZGV4MjE1IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBidWZmZXJbcG9zaXRp
b25dICE9IHJ1bmUoJ3QnKSB7Ci0JCQkJCQkJZ290byBsMjE1CisJCQkJCQkJZ290byBsMjE2CiAJ
CQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGwyMTQKLQkJCQkJbDIxNToKLQkJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yMTQsIHRva2VuSW5kZXgyMTQKKwkJ
CQkJCWdvdG8gbDIxNQorCQkJCQlsMjE2OgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjIxNSwgdG9rZW5JbmRleDIxNQogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCdUJykgewotCQkJCQkJCWdvdG8gbDEzMworCQkJCQkJCWdvdG8gbDIxNAogCQkJCQkJfQog
CQkJCQkJcG9zaXRpb24rKwogCQkJCQl9Ci0JCQkJbDIxNDoKKwkJCQlsMjE1OgogCQkJCQl7Ci0J
CQkJCQlwb3NpdGlvbjIxNiwgdG9rZW5JbmRleDIxNiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAor
CQkJCQkJcG9zaXRpb24yMTcsIHRva2VuSW5kZXgyMTcgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
IAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgneScpIHsKLQkJCQkJCQlnb3RvIGwy
MTcKKwkJCQkJCQlnb3RvIGwyMTgKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdv
dG8gbDIxNgotCQkJCQlsMjE3OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjIxNiwgdG9rZW5JbmRleDIxNgorCQkJCQkJZ290byBsMjE3CisJCQkJCWwyMTg6CisJCQkJCQlw
b3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjE3LCB0b2tlbkluZGV4MjE3CiAJCQkJCQlp
ZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ1knKSB7Ci0JCQkJCQkJZ290byBsMTMzCisJCQkJ
CQkJZ290byBsMjE0CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCiAJCQkJCX0KLQkJCQlsMjE2
OgorCQkJCWwyMTc6CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9uMjE4LCB0b2tlbkluZGV4MjE4IDo9
IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3NpdGlvbjIxOSwgdG9rZW5JbmRleDIxOSA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5l
KCdwJykgewotCQkJCQkJCWdvdG8gbDIxOQorCQkJCQkJCWdvdG8gbDIyMAogCQkJCQkJfQogCQkJ
CQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsMjE4Ci0JCQkJCWwyMTk6Ci0JCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjE4LCB0b2tlbkluZGV4MjE4CisJCQkJCQlnb3RvIGwy
MTkKKwkJCQkJbDIyMDoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yMTks
IHRva2VuSW5kZXgyMTkKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnUCcpIHsK
KwkJCQkJCQlnb3RvIGwyMTQKKwkJCQkJCX0KKwkJCQkJCXBvc2l0aW9uKysKKwkJCQkJfQorCQkJ
CWwyMTk6CisJCQkJCXsKKwkJCQkJCXBvc2l0aW9uMjIxLCB0b2tlbkluZGV4MjIxIDo9IHBvc2l0
aW9uLCB0b2tlbkluZGV4CisJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2UnKSB7
CisJCQkJCQkJZ290byBsMjIyCisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisrCisJCQkJCQlnb3Rv
IGwyMjEKKwkJCQkJbDIyMjoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24y
MjEsIHRva2VuSW5kZXgyMjEKKwkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnRScp
IHsKKwkJCQkJCQlnb3RvIGwyMTQKKwkJCQkJCX0KKwkJCQkJCXBvc2l0aW9uKysKKwkJCQkJfQor
CQkJCWwyMjE6CisJCQkJCWdvdG8gbDEzNQorCQkJCWwyMTQ6CisJCQkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb24xMzUsIHRva2VuSW5kZXgxMzUKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0
aW9uXSAhPSBydW5lKCcuJykgeworCQkJCQkJZ290byBsMjIzCisJCQkJCX0KKwkJCQkJcG9zaXRp
b24rKworCQkJCQl7CisJCQkJCQlwb3NpdGlvbjIyNCwgdG9rZW5JbmRleDIyNCA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAorCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCd1Jykgewor
CQkJCQkJCWdvdG8gbDIyNQorCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJCQkJZ290byBs
MjI0CisJCQkJCWwyMjU6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjI0
LCB0b2tlbkluZGV4MjI0CisJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ1UnKSB7
CisJCQkJCQkJZ290byBsMjIzCisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisrCisJCQkJCX0KKwkJ
CQlsMjI0OgorCQkJCQl7CisJCQkJCQlwb3NpdGlvbjIyNiwgdG9rZW5JbmRleDIyNiA6PSBwb3Np
dGlvbiwgdG9rZW5JbmRleAorCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdsJykg
eworCQkJCQkJCWdvdG8gbDIyNworCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJCQkJZ290
byBsMjI2CisJCQkJCWwyMjc6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9u
MjI2LCB0b2tlbkluZGV4MjI2CisJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ0wn
KSB7CisJCQkJCQkJZ290byBsMjIzCisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisrCisJCQkJCX0K
KwkJCQlsMjI2OgorCQkJCQl7CisJCQkJCQlwb3NpdGlvbjIyOCwgdG9rZW5JbmRleDIyOCA6PSBw
b3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdl
JykgeworCQkJCQkJCWdvdG8gbDIyOQorCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJCQkJ
Z290byBsMjI4CisJCQkJCWwyMjk6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMjI4LCB0b2tlbkluZGV4MjI4CisJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUo
J0UnKSB7CisJCQkJCQkJZ290byBsMjIzCisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisrCisJCQkJ
CX0KKwkJCQlsMjI4OgorCQkJCQl7CisJCQkJCQlwb3NpdGlvbjIzMCwgdG9rZW5JbmRleDIzMCA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5l
KCdiJykgeworCQkJCQkJCWdvdG8gbDIzMQorCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJ
CQkJZ290byBsMjMwCisJCQkJCWwyMzE6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMjMwLCB0b2tlbkluZGV4MjMwCisJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJ0InKSB7CisJCQkJCQkJZ290byBsMjIzCisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisrCisJ
CQkJCX0KKwkJCQlsMjMwOgorCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJzEnKSB7
CisJCQkJCQlnb3RvIGwyMjMKKwkJCQkJfQorCQkJCQlwb3NpdGlvbisrCisJCQkJCWlmIGJ1ZmZl
cltwb3NpdGlvbl0gIT0gcnVuZSgnMicpIHsKKwkJCQkJCWdvdG8gbDIyMworCQkJCQl9CisJCQkJ
CXBvc2l0aW9uKysKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCc4JykgeworCQkJ
CQkJZ290byBsMjIzCisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJCQlnb3RvIGwxMzUKKwkJ
CQlsMjIzOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMTM1LCB0b2tlbklu
ZGV4MTM1CisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnLicpIHsKKwkJCQkJCWdv
dG8gbDEzMworCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJeworCQkJCQkJcG9zaXRpb24y
MzIsIHRva2VuSW5kZXgyMzIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCWlmIGJ1ZmZl
cltwb3NpdGlvbl0gIT0gcnVuZSgncycpIHsKKwkJCQkJCQlnb3RvIGwyMzMKKwkJCQkJCX0KKwkJ
CQkJCXBvc2l0aW9uKysKKwkJCQkJCWdvdG8gbDIzMgorCQkJCQlsMjMzOgorCQkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjIzMiwgdG9rZW5JbmRleDIzMgorCQkJCQkJaWYgYnVm
ZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdTJykgewogCQkJCQkJCWdvdG8gbDEzMwogCQkJCQkJfQog
CQkJCQkJcG9zaXRpb24rKwogCQkJCQl9Ci0JCQkJbDIxODoKKwkJCQlsMjMyOgogCQkJCQl7Ci0J
CQkJCQlwb3NpdGlvbjIyMCwgdG9rZW5JbmRleDIyMCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAor
CQkJCQkJcG9zaXRpb24yMzQsIHRva2VuSW5kZXgyMzQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
KwkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnbCcpIHsKKwkJCQkJCQlnb3RvIGwy
MzUKKwkJCQkJCX0KKwkJCQkJCXBvc2l0aW9uKysKKwkJCQkJCWdvdG8gbDIzNAorCQkJCQlsMjM1
OgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjIzNCwgdG9rZW5JbmRleDIz
NAorCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdMJykgeworCQkJCQkJCWdvdG8g
bDEzMworCQkJCQkJfQorCQkJCQkJcG9zaXRpb24rKworCQkJCQl9CisJCQkJbDIzNDoKKwkJCQkJ
eworCQkJCQkJcG9zaXRpb24yMzYsIHRva2VuSW5kZXgyMzYgOj0gcG9zaXRpb24sIHRva2VuSW5k
ZXgKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnZScpIHsKLQkJCQkJCQlnb3Rv
IGwyMjEKKwkJCQkJCQlnb3RvIGwyMzcKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJ
CWdvdG8gbDIyMAotCQkJCQlsMjIxOgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjIyMCwgdG9rZW5JbmRleDIyMAorCQkJCQkJZ290byBsMjM2CisJCQkJCWwyMzc6CisJCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjM2LCB0b2tlbkluZGV4MjM2CiAJCQkJ
CQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ0UnKSB7CiAJCQkJCQkJZ290byBsMTMzCiAJ
CQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCiAJCQkJCX0KLQkJCQlsMjIwOgorCQkJCWwyMzY6CisJ
CQkJCXsKKwkJCQkJCXBvc2l0aW9uMjM4LCB0b2tlbkluZGV4MjM4IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CisJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2InKSB7CisJCQkJCQkJ
Z290byBsMjM5CisJCQkJCQl9CisJCQkJCQlwb3NpdGlvbisrCisJCQkJCQlnb3RvIGwyMzgKKwkJ
CQkJbDIzOToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yMzgsIHRva2Vu
SW5kZXgyMzgKKwkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnQicpIHsKKwkJCQkJ
CQlnb3RvIGwxMzMKKwkJCQkJCX0KKwkJCQkJCXBvc2l0aW9uKysKKwkJCQkJfQorCQkJCWwyMzg6
CisJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnMScpIHsKKwkJCQkJCWdvdG8gbDEz
MworCQkJCQl9CisJCQkJCXBvc2l0aW9uKysKKwkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCcyJykgeworCQkJCQkJZ290byBsMTMzCisJCQkJCX0KKwkJCQkJcG9zaXRpb24rKworCQkJ
CQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJzgnKSB7CisJCQkJCQlnb3RvIGwxMzMKKwkJ
CQkJfQorCQkJCQlwb3NpdGlvbisrCiAJCQkJfQogCQkJbDEzNToKIAkJCQlhZGQocnVsZUxhYmVs
Q29udGFpbmluZ0RpcmVjdGl2ZU5hbWUsIHBvc2l0aW9uMTM0KQpAQCAtMTkzMSwyMTMyICsyMDg5
LDIxMzIgQEAgZnVuYyAocCAqQXNtKSBJbml0KCkgewogCQl9LAogCQkvKiAxMiBTeW1ib2xBcmdz
IDwtIDwoU3ltYm9sQXJnIChXUz8gJywnIFdTPyBTeW1ib2xBcmcpKik+ICovCiAJCWZ1bmMoKSBi
b29sIHsKLQkJCXBvc2l0aW9uMjIyLCB0b2tlbkluZGV4MjIyIDo9IHBvc2l0aW9uLCB0b2tlbklu
ZGV4CisJCQlwb3NpdGlvbjI0MCwgdG9rZW5JbmRleDI0MCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRl
eAogCQkJewotCQkJCXBvc2l0aW9uMjIzIDo9IHBvc2l0aW9uCisJCQkJcG9zaXRpb24yNDEgOj0g
cG9zaXRpb24KIAkJCQlpZiAhX3J1bGVzW3J1bGVTeW1ib2xBcmddKCkgewotCQkJCQlnb3RvIGwy
MjIKKwkJCQkJZ290byBsMjQwCiAJCQkJfQotCQkJbDIyNDoKKwkJCWwyNDI6CiAJCQkJewotCQkJ
CQlwb3NpdGlvbjIyNSwgdG9rZW5JbmRleDIyNSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJ
CQlwb3NpdGlvbjI0MywgdG9rZW5JbmRleDI0MyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJ
CQl7Ci0JCQkJCQlwb3NpdGlvbjIyNiwgdG9rZW5JbmRleDIyNiA6PSBwb3NpdGlvbiwgdG9rZW5J
bmRleAorCQkJCQkJcG9zaXRpb24yNDQsIHRva2VuSW5kZXgyNDQgOj0gcG9zaXRpb24sIHRva2Vu
SW5kZXgKIAkJCQkJCWlmICFfcnVsZXNbcnVsZVdTXSgpIHsKLQkJCQkJCQlnb3RvIGwyMjYKKwkJ
CQkJCQlnb3RvIGwyNDQKIAkJCQkJCX0KLQkJCQkJCWdvdG8gbDIyNwotCQkJCQlsMjI2OgotCQkJ
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjIyNiwgdG9rZW5JbmRleDIyNgorCQkJ
CQkJZ290byBsMjQ1CisJCQkJCWwyNDQ6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMjQ0LCB0b2tlbkluZGV4MjQ0CiAJCQkJCX0KLQkJCQlsMjI3OgorCQkJCWwyNDU6CiAJ
CQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnLCcpIHsKLQkJCQkJCWdvdG8gbDIyNQor
CQkJCQkJZ290byBsMjQzCiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCQl7Ci0JCQkJCQlw
b3NpdGlvbjIyOCwgdG9rZW5JbmRleDIyOCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJ
cG9zaXRpb24yNDYsIHRva2VuSW5kZXgyNDYgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJ
CWlmICFfcnVsZXNbcnVsZVdTXSgpIHsKLQkJCQkJCQlnb3RvIGwyMjgKKwkJCQkJCQlnb3RvIGwy
NDYKIAkJCQkJCX0KLQkJCQkJCWdvdG8gbDIyOQotCQkJCQlsMjI4OgotCQkJCQkJcG9zaXRpb24s
IHRva2VuSW5kZXggPSBwb3NpdGlvbjIyOCwgdG9rZW5JbmRleDIyOAorCQkJCQkJZ290byBsMjQ3
CisJCQkJCWwyNDY6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjQ2LCB0
b2tlbkluZGV4MjQ2CiAJCQkJCX0KLQkJCQlsMjI5OgorCQkJCWwyNDc6CiAJCQkJCWlmICFfcnVs
ZXNbcnVsZVN5bWJvbEFyZ10oKSB7Ci0JCQkJCQlnb3RvIGwyMjUKKwkJCQkJCWdvdG8gbDI0Mwog
CQkJCQl9Ci0JCQkJCWdvdG8gbDIyNAotCQkJCWwyMjU6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb24yMjUsIHRva2VuSW5kZXgyMjUKKwkJCQkJZ290byBsMjQyCisJCQkJbDI0
MzoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI0MywgdG9rZW5JbmRleDI0
MwogCQkJCX0KLQkJCQlhZGQocnVsZVN5bWJvbEFyZ3MsIHBvc2l0aW9uMjIzKQorCQkJCWFkZChy
dWxlU3ltYm9sQXJncywgcG9zaXRpb24yNDEpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsMjIy
OgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjIyMiwgdG9rZW5JbmRleDIyMgor
CQlsMjQwOgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI0MCwgdG9rZW5JbmRl
eDI0MAogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDEzIFN5bWJvbEFyZyA8LSA8KE9mZnNl
dCAvIFN5bWJvbFR5cGUgLyAoKE9mZnNldCAvIExvY2FsU3ltYm9sIC8gU3ltYm9sTmFtZSAvIERv
dCkgV1M/IE9wZXJhdG9yIFdTPyAoT2Zmc2V0IC8gTG9jYWxTeW1ib2wgLyBTeW1ib2xOYW1lKSkg
LyAoTG9jYWxTeW1ib2wgVENNYXJrZXI/KSAvIChTeW1ib2xOYW1lIE9mZnNldCkgLyAoU3ltYm9s
TmFtZSBUQ01hcmtlcj8pKT4gKi8KIAkJZnVuYygpIGJvb2wgewotCQkJcG9zaXRpb24yMzAsIHRv
a2VuSW5kZXgyMzAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXBvc2l0aW9uMjQ4LCB0b2tl
bkluZGV4MjQ4IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7Ci0JCQkJcG9zaXRpb24yMzEg
Oj0gcG9zaXRpb24KKwkJCQlwb3NpdGlvbjI0OSA6PSBwb3NpdGlvbgogCQkJCXsKLQkJCQkJcG9z
aXRpb24yMzIsIHRva2VuSW5kZXgyMzIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9z
aXRpb24yNTAsIHRva2VuSW5kZXgyNTAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYg
IV9ydWxlc1tydWxlT2Zmc2V0XSgpIHsKLQkJCQkJCWdvdG8gbDIzMworCQkJCQkJZ290byBsMjUx
CiAJCQkJCX0KLQkJCQkJZ290byBsMjMyCi0JCQkJbDIzMzoKLQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjIzMiwgdG9rZW5JbmRleDIzMgorCQkJCQlnb3RvIGwyNTAKKwkJCQls
MjUxOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjUwLCB0b2tlbkluZGV4
MjUwCiAJCQkJCWlmICFfcnVsZXNbcnVsZVN5bWJvbFR5cGVdKCkgewotCQkJCQkJZ290byBsMjM0
CisJCQkJCQlnb3RvIGwyNTIKIAkJCQkJfQotCQkJCQlnb3RvIGwyMzIKLQkJCQlsMjM0OgotCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjMyLCB0b2tlbkluZGV4MjMyCisJCQkJ
CWdvdG8gbDI1MAorCQkJCWwyNTI6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b24yNTAsIHRva2VuSW5kZXgyNTAKIAkJCQkJewotCQkJCQkJcG9zaXRpb24yMzYsIHRva2VuSW5k
ZXgyMzYgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uMjU0LCB0b2tlbklu
ZGV4MjU0IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiAhX3J1bGVzW3J1bGVPZmZz
ZXRdKCkgewotCQkJCQkJCWdvdG8gbDIzNworCQkJCQkJCWdvdG8gbDI1NQogCQkJCQkJfQotCQkJ
CQkJZ290byBsMjM2Ci0JCQkJCWwyMzc6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMjM2LCB0b2tlbkluZGV4MjM2CisJCQkJCQlnb3RvIGwyNTQKKwkJCQkJbDI1NToKKwkJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNTQsIHRva2VuSW5kZXgyNTQKIAkJ
CQkJCWlmICFfcnVsZXNbcnVsZUxvY2FsU3ltYm9sXSgpIHsKLQkJCQkJCQlnb3RvIGwyMzgKKwkJ
CQkJCQlnb3RvIGwyNTYKIAkJCQkJCX0KLQkJCQkJCWdvdG8gbDIzNgotCQkJCQlsMjM4OgotCQkJ
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjIzNiwgdG9rZW5JbmRleDIzNgorCQkJ
CQkJZ290byBsMjU0CisJCQkJCWwyNTY6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMjU0LCB0b2tlbkluZGV4MjU0CiAJCQkJCQlpZiAhX3J1bGVzW3J1bGVTeW1ib2xOYW1l
XSgpIHsKLQkJCQkJCQlnb3RvIGwyMzkKKwkJCQkJCQlnb3RvIGwyNTcKIAkJCQkJCX0KLQkJCQkJ
CWdvdG8gbDIzNgotCQkJCQlsMjM5OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjIzNiwgdG9rZW5JbmRleDIzNgorCQkJCQkJZ290byBsMjU0CisJCQkJCWwyNTc6CisJCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjU0LCB0b2tlbkluZGV4MjU0CiAJCQkJ
CQlpZiAhX3J1bGVzW3J1bGVEb3RdKCkgewotCQkJCQkJCWdvdG8gbDIzNQorCQkJCQkJCWdvdG8g
bDI1MwogCQkJCQkJfQogCQkJCQl9Ci0JCQkJbDIzNjoKKwkJCQlsMjU0OgogCQkJCQl7Ci0JCQkJ
CQlwb3NpdGlvbjI0MCwgdG9rZW5JbmRleDI0MCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJ
CQkJcG9zaXRpb24yNTgsIHRva2VuSW5kZXgyNTggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJ
CQkJCWlmICFfcnVsZXNbcnVsZVdTXSgpIHsKLQkJCQkJCQlnb3RvIGwyNDAKKwkJCQkJCQlnb3Rv
IGwyNTgKIAkJCQkJCX0KLQkJCQkJCWdvdG8gbDI0MQotCQkJCQlsMjQwOgotCQkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI0MCwgdG9rZW5JbmRleDI0MAorCQkJCQkJZ290byBs
MjU5CisJCQkJCWwyNTg6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjU4
LCB0b2tlbkluZGV4MjU4CiAJCQkJCX0KLQkJCQlsMjQxOgorCQkJCWwyNTk6CiAJCQkJCWlmICFf
cnVsZXNbcnVsZU9wZXJhdG9yXSgpIHsKLQkJCQkJCWdvdG8gbDIzNQorCQkJCQkJZ290byBsMjUz
CiAJCQkJCX0KIAkJCQkJewotCQkJCQkJcG9zaXRpb24yNDIsIHRva2VuSW5kZXgyNDIgOj0gcG9z
aXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uMjYwLCB0b2tlbkluZGV4MjYwIDo9IHBv
c2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7Ci0JCQkJCQkJ
Z290byBsMjQyCisJCQkJCQkJZ290byBsMjYwCiAJCQkJCQl9Ci0JCQkJCQlnb3RvIGwyNDMKLQkJ
CQkJbDI0MjoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNDIsIHRva2Vu
SW5kZXgyNDIKKwkJCQkJCWdvdG8gbDI2MQorCQkJCQlsMjYwOgorCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjI2MCwgdG9rZW5JbmRleDI2MAogCQkJCQl9Ci0JCQkJbDI0MzoK
KwkJCQlsMjYxOgogCQkJCQl7Ci0JCQkJCQlwb3NpdGlvbjI0NCwgdG9rZW5JbmRleDI0NCA6PSBw
b3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRpb24yNjIsIHRva2VuSW5kZXgyNjIgOj0g
cG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCWlmICFfcnVsZXNbcnVsZU9mZnNldF0oKSB7Ci0J
CQkJCQkJZ290byBsMjQ1CisJCQkJCQkJZ290byBsMjYzCiAJCQkJCQl9Ci0JCQkJCQlnb3RvIGwy
NDQKLQkJCQkJbDI0NToKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNDQs
IHRva2VuSW5kZXgyNDQKKwkJCQkJCWdvdG8gbDI2MgorCQkJCQlsMjYzOgorCQkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI2MiwgdG9rZW5JbmRleDI2MgogCQkJCQkJaWYgIV9y
dWxlc1tydWxlTG9jYWxTeW1ib2xdKCkgewotCQkJCQkJCWdvdG8gbDI0NgorCQkJCQkJCWdvdG8g
bDI2NAogCQkJCQkJfQotCQkJCQkJZ290byBsMjQ0Ci0JCQkJCWwyNDY6Ci0JCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjQ0LCB0b2tlbkluZGV4MjQ0CisJCQkJCQlnb3RvIGwy
NjIKKwkJCQkJbDI2NDoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNjIs
IHRva2VuSW5kZXgyNjIKIAkJCQkJCWlmICFfcnVsZXNbcnVsZVN5bWJvbE5hbWVdKCkgewotCQkJ
CQkJCWdvdG8gbDIzNQorCQkJCQkJCWdvdG8gbDI1MwogCQkJCQkJfQogCQkJCQl9Ci0JCQkJbDI0
NDoKLQkJCQkJZ290byBsMjMyCi0JCQkJbDIzNToKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXgg
PSBwb3NpdGlvbjIzMiwgdG9rZW5JbmRleDIzMgorCQkJCWwyNjI6CisJCQkJCWdvdG8gbDI1MAor
CQkJCWwyNTM6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNTAsIHRva2Vu
SW5kZXgyNTAKIAkJCQkJaWYgIV9ydWxlc1tydWxlTG9jYWxTeW1ib2xdKCkgewotCQkJCQkJZ290
byBsMjQ3CisJCQkJCQlnb3RvIGwyNjUKIAkJCQkJfQogCQkJCQl7Ci0JCQkJCQlwb3NpdGlvbjI0
OCwgdG9rZW5JbmRleDI0OCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRpb24y
NjYsIHRva2VuSW5kZXgyNjYgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCWlmICFfcnVs
ZXNbcnVsZVRDTWFya2VyXSgpIHsKLQkJCQkJCQlnb3RvIGwyNDgKKwkJCQkJCQlnb3RvIGwyNjYK
IAkJCQkJCX0KLQkJCQkJCWdvdG8gbDI0OQotCQkJCQlsMjQ4OgotCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjI0OCwgdG9rZW5JbmRleDI0OAorCQkJCQkJZ290byBsMjY3CisJ
CQkJCWwyNjY6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjY2LCB0b2tl
bkluZGV4MjY2CiAJCQkJCX0KLQkJCQlsMjQ5OgotCQkJCQlnb3RvIGwyMzIKLQkJCQlsMjQ3Ogot
CQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjMyLCB0b2tlbkluZGV4MjMyCisJ
CQkJbDI2NzoKKwkJCQkJZ290byBsMjUwCisJCQkJbDI2NToKKwkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjI1MCwgdG9rZW5JbmRleDI1MAogCQkJCQlpZiAhX3J1bGVzW3J1bGVT
eW1ib2xOYW1lXSgpIHsKLQkJCQkJCWdvdG8gbDI1MAorCQkJCQkJZ290byBsMjY4CiAJCQkJCX0K
IAkJCQkJaWYgIV9ydWxlc1tydWxlT2Zmc2V0XSgpIHsKLQkJCQkJCWdvdG8gbDI1MAorCQkJCQkJ
Z290byBsMjY4CiAJCQkJCX0KLQkJCQkJZ290byBsMjMyCi0JCQkJbDI1MDoKLQkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjIzMiwgdG9rZW5JbmRleDIzMgorCQkJCQlnb3RvIGwy
NTAKKwkJCQlsMjY4OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjUwLCB0
b2tlbkluZGV4MjUwCiAJCQkJCWlmICFfcnVsZXNbcnVsZVN5bWJvbE5hbWVdKCkgewotCQkJCQkJ
Z290byBsMjMwCisJCQkJCQlnb3RvIGwyNDgKIAkJCQkJfQogCQkJCQl7Ci0JCQkJCQlwb3NpdGlv
bjI1MSwgdG9rZW5JbmRleDI1MSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRp
b24yNjksIHRva2VuSW5kZXgyNjkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCWlmICFf
cnVsZXNbcnVsZVRDTWFya2VyXSgpIHsKLQkJCQkJCQlnb3RvIGwyNTEKKwkJCQkJCQlnb3RvIGwy
NjkKIAkJCQkJCX0KLQkJCQkJCWdvdG8gbDI1MgotCQkJCQlsMjUxOgotCQkJCQkJcG9zaXRpb24s
IHRva2VuSW5kZXggPSBwb3NpdGlvbjI1MSwgdG9rZW5JbmRleDI1MQorCQkJCQkJZ290byBsMjcw
CisJCQkJCWwyNjk6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjY5LCB0
b2tlbkluZGV4MjY5CiAJCQkJCX0KLQkJCQlsMjUyOgorCQkJCWwyNzA6CiAJCQkJfQotCQkJbDIz
MjoKLQkJCQlhZGQocnVsZVN5bWJvbEFyZywgcG9zaXRpb24yMzEpCisJCQlsMjUwOgorCQkJCWFk
ZChydWxlU3ltYm9sQXJnLCBwb3NpdGlvbjI0OSkKIAkJCX0KIAkJCXJldHVybiB0cnVlCi0JCWwy
MzA6Ci0JCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjMwLCB0b2tlbkluZGV4MjMw
CisJCWwyNDg6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjQ4LCB0b2tlbklu
ZGV4MjQ4CiAJCQlyZXR1cm4gZmFsc2UKIAkJfSwKIAkJLyogMTQgU3ltYm9sVHlwZSA8LSA8KCgn
QCcgJ2YnICd1JyAnbicgJ2MnICd0JyAnaScgJ28nICduJykgLyAoJ0AnICdvJyAnYicgJ2onICdl
JyAnYycgJ3QnKSk+ICovCiAJCWZ1bmMoKSBib29sIHsKLQkJCXBvc2l0aW9uMjUzLCB0b2tlbklu
ZGV4MjUzIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQlwb3NpdGlvbjI3MSwgdG9rZW5JbmRl
eDI3MSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJewotCQkJCXBvc2l0aW9uMjU0IDo9IHBv
c2l0aW9uCisJCQkJcG9zaXRpb24yNzIgOj0gcG9zaXRpb24KIAkJCQl7Ci0JCQkJCXBvc2l0aW9u
MjU1LCB0b2tlbkluZGV4MjU1IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCXBvc2l0aW9u
MjczLCB0b2tlbkluZGV4MjczIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCWlmIGJ1ZmZl
cltwb3NpdGlvbl0gIT0gcnVuZSgnQCcpIHsKLQkJCQkJCWdvdG8gbDI1NgorCQkJCQkJZ290byBs
Mjc0CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9
IHJ1bmUoJ2YnKSB7Ci0JCQkJCQlnb3RvIGwyNTYKKwkJCQkJCWdvdG8gbDI3NAogCQkJCQl9CiAJ
CQkJCXBvc2l0aW9uKysKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCd1Jykgewot
CQkJCQkJZ290byBsMjU2CisJCQkJCQlnb3RvIGwyNzQKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisr
CiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnbicpIHsKLQkJCQkJCWdvdG8gbDI1
NgorCQkJCQkJZ290byBsMjc0CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCQlpZiBidWZm
ZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2MnKSB7Ci0JCQkJCQlnb3RvIGwyNTYKKwkJCQkJCWdvdG8g
bDI3NAogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAh
PSBydW5lKCd0JykgewotCQkJCQkJZ290byBsMjU2CisJCQkJCQlnb3RvIGwyNzQKIAkJCQkJfQog
CQkJCQlwb3NpdGlvbisrCiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnaScpIHsK
LQkJCQkJCWdvdG8gbDI1NgorCQkJCQkJZ290byBsMjc0CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24r
KwogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ28nKSB7Ci0JCQkJCQlnb3RvIGwy
NTYKKwkJCQkJCWdvdG8gbDI3NAogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQkJaWYgYnVm
ZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCduJykgewotCQkJCQkJZ290byBsMjU2CisJCQkJCQlnb3Rv
IGwyNzQKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCi0JCQkJCWdvdG8gbDI1NQotCQkJCWwyNTY6
Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNTUsIHRva2VuSW5kZXgyNTUK
KwkJCQkJZ290byBsMjczCisJCQkJbDI3NDoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjI3MywgdG9rZW5JbmRleDI3MwogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJ0AnKSB7Ci0JCQkJCQlnb3RvIGwyNTMKKwkJCQkJCWdvdG8gbDI3MQogCQkJCQl9CiAJCQkJ
CXBvc2l0aW9uKysKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdvJykgewotCQkJ
CQkJZ290byBsMjUzCisJCQkJCQlnb3RvIGwyNzEKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCiAJ
CQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnYicpIHsKLQkJCQkJCWdvdG8gbDI1Mwor
CQkJCQkJZ290byBsMjcxCiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCQlpZiBidWZmZXJb
cG9zaXRpb25dICE9IHJ1bmUoJ2onKSB7Ci0JCQkJCQlnb3RvIGwyNTMKKwkJCQkJCWdvdG8gbDI3
MQogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCdlJykgewotCQkJCQkJZ290byBsMjUzCisJCQkJCQlnb3RvIGwyNzEKIAkJCQkJfQogCQkJ
CQlwb3NpdGlvbisrCiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnYycpIHsKLQkJ
CQkJCWdvdG8gbDI1MworCQkJCQkJZ290byBsMjcxCiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwog
CQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3QnKSB7Ci0JCQkJCQlnb3RvIGwyNTMK
KwkJCQkJCWdvdG8gbDI3MQogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQl9Ci0JCQlsMjU1
OgotCQkJCWFkZChydWxlU3ltYm9sVHlwZSwgcG9zaXRpb24yNTQpCisJCQlsMjczOgorCQkJCWFk
ZChydWxlU3ltYm9sVHlwZSwgcG9zaXRpb24yNzIpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQls
MjUzOgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI1MywgdG9rZW5JbmRleDI1
MworCQlsMjcxOgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI3MSwgdG9rZW5J
bmRleDI3MQogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDE1IERvdCA8LSA8Jy4nPiAqLwog
CQlmdW5jKCkgYm9vbCB7Ci0JCQlwb3NpdGlvbjI1NywgdG9rZW5JbmRleDI1NyA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAorCQkJcG9zaXRpb24yNzUsIHRva2VuSW5kZXgyNzUgOj0gcG9zaXRpb24s
IHRva2VuSW5kZXgKIAkJCXsKLQkJCQlwb3NpdGlvbjI1OCA6PSBwb3NpdGlvbgorCQkJCXBvc2l0
aW9uMjc2IDo9IHBvc2l0aW9uCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcuJykg
ewotCQkJCQlnb3RvIGwyNTcKKwkJCQkJZ290byBsMjc1CiAJCQkJfQogCQkJCXBvc2l0aW9uKysK
LQkJCQlhZGQocnVsZURvdCwgcG9zaXRpb24yNTgpCisJCQkJYWRkKHJ1bGVEb3QsIHBvc2l0aW9u
Mjc2KQogCQkJfQogCQkJcmV0dXJuIHRydWUKLQkJbDI1NzoKLQkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb24yNTcsIHRva2VuSW5kZXgyNTcKKwkJbDI3NToKKwkJCXBvc2l0aW9uLCB0
b2tlbkluZGV4ID0gcG9zaXRpb24yNzUsIHRva2VuSW5kZXgyNzUKIAkJCXJldHVybiBmYWxzZQog
CQl9LAogCQkvKiAxNiBUQ01hcmtlciA8LSA8KCdbJyAnVCcgJ0MnICddJyk+ICovCiAJCWZ1bmMo
KSBib29sIHsKLQkJCXBvc2l0aW9uMjU5LCB0b2tlbkluZGV4MjU5IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CisJCQlwb3NpdGlvbjI3NywgdG9rZW5JbmRleDI3NyA6PSBwb3NpdGlvbiwgdG9rZW5J
bmRleAogCQkJewotCQkJCXBvc2l0aW9uMjYwIDo9IHBvc2l0aW9uCisJCQkJcG9zaXRpb24yNzgg
Oj0gcG9zaXRpb24KIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ1snKSB7Ci0JCQkJ
CWdvdG8gbDI1OQorCQkJCQlnb3RvIGwyNzcKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCWlm
IGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnVCcpIHsKLQkJCQkJZ290byBsMjU5CisJCQkJCWdv
dG8gbDI3NwogCQkJCX0KIAkJCQlwb3NpdGlvbisrCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAh
PSBydW5lKCdDJykgewotCQkJCQlnb3RvIGwyNTkKKwkJCQkJZ290byBsMjc3CiAJCQkJfQogCQkJ
CXBvc2l0aW9uKysKIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ10nKSB7Ci0JCQkJ
CWdvdG8gbDI1OQorCQkJCQlnb3RvIGwyNzcKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwotCQkJCWFk
ZChydWxlVENNYXJrZXIsIHBvc2l0aW9uMjYwKQorCQkJCWFkZChydWxlVENNYXJrZXIsIHBvc2l0
aW9uMjc4KQogCQkJfQogCQkJcmV0dXJuIHRydWUKLQkJbDI1OToKLQkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb24yNTksIHRva2VuSW5kZXgyNTkKKwkJbDI3NzoKKwkJCXBvc2l0aW9u
LCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNzcsIHRva2VuSW5kZXgyNzcKIAkJCXJldHVybiBmYWxz
ZQogCQl9LAogCQkvKiAxNyBFc2NhcGVkQ2hhciA8LSA8KCdcXCcgLik+ICovCiAJCWZ1bmMoKSBi
b29sIHsKLQkJCXBvc2l0aW9uMjYxLCB0b2tlbkluZGV4MjYxIDo9IHBvc2l0aW9uLCB0b2tlbklu
ZGV4CisJCQlwb3NpdGlvbjI3OSwgdG9rZW5JbmRleDI3OSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRl
eAogCQkJewotCQkJCXBvc2l0aW9uMjYyIDo9IHBvc2l0aW9uCisJCQkJcG9zaXRpb24yODAgOj0g
cG9zaXRpb24KIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ1xcJykgewotCQkJCQln
b3RvIGwyNjEKKwkJCQkJZ290byBsMjc5CiAJCQkJfQogCQkJCXBvc2l0aW9uKysKIAkJCQlpZiAh
bWF0Y2hEb3QoKSB7Ci0JCQkJCWdvdG8gbDI2MQorCQkJCQlnb3RvIGwyNzkKIAkJCQl9Ci0JCQkJ
YWRkKHJ1bGVFc2NhcGVkQ2hhciwgcG9zaXRpb24yNjIpCisJCQkJYWRkKHJ1bGVFc2NhcGVkQ2hh
ciwgcG9zaXRpb24yODApCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsMjYxOgotCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI2MSwgdG9rZW5JbmRleDI2MQorCQlsMjc5OgorCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI3OSwgdG9rZW5JbmRleDI3OQogCQkJcmV0
dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDE4IFdTIDwtIDwoJyAnIC8gJ1x0JykrPiAqLwogCQlmdW5j
KCkgYm9vbCB7Ci0JCQlwb3NpdGlvbjI2MywgdG9rZW5JbmRleDI2MyA6PSBwb3NpdGlvbiwgdG9r
ZW5JbmRleAorCQkJcG9zaXRpb24yODEsIHRva2VuSW5kZXgyODEgOj0gcG9zaXRpb24sIHRva2Vu
SW5kZXgKIAkJCXsKLQkJCQlwb3NpdGlvbjI2NCA6PSBwb3NpdGlvbgorCQkJCXBvc2l0aW9uMjgy
IDo9IHBvc2l0aW9uCiAJCQkJewotCQkJCQlwb3NpdGlvbjI2NywgdG9rZW5JbmRleDI2NyA6PSBw
b3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjI4NSwgdG9rZW5JbmRleDI4NSA6PSBw
b3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJyAn
KSB7Ci0JCQkJCQlnb3RvIGwyNjgKKwkJCQkJCWdvdG8gbDI4NgogCQkJCQl9CiAJCQkJCXBvc2l0
aW9uKysKLQkJCQkJZ290byBsMjY3Ci0JCQkJbDI2ODoKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjI2NywgdG9rZW5JbmRleDI2NworCQkJCQlnb3RvIGwyODUKKwkJCQlsMjg2
OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjg1LCB0b2tlbkluZGV4Mjg1
CiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnXHQnKSB7Ci0JCQkJCQlnb3RvIGwy
NjMKKwkJCQkJCWdvdG8gbDI4MQogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQl9Ci0JCQls
MjY3OgotCQkJbDI2NToKKwkJCWwyODU6CisJCQlsMjgzOgogCQkJCXsKLQkJCQkJcG9zaXRpb24y
NjYsIHRva2VuSW5kZXgyNjYgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24y
ODQsIHRva2VuSW5kZXgyODQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJewotCQkJCQkJ
cG9zaXRpb24yNjksIHRva2VuSW5kZXgyNjkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJ
CXBvc2l0aW9uMjg3LCB0b2tlbkluZGV4Mjg3IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJ
CQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJyAnKSB7Ci0JCQkJCQkJZ290byBsMjcwCisJ
CQkJCQkJZ290byBsMjg4CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGwy
NjkKLQkJCQkJbDI3MDoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNjks
IHRva2VuSW5kZXgyNjkKKwkJCQkJCWdvdG8gbDI4NworCQkJCQlsMjg4OgorCQkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI4NywgdG9rZW5JbmRleDI4NwogCQkJCQkJaWYgYnVm
ZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdcdCcpIHsKLQkJCQkJCQlnb3RvIGwyNjYKKwkJCQkJCQln
b3RvIGwyODQKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKIAkJCQkJfQotCQkJCWwyNjk6Ci0J
CQkJCWdvdG8gbDI2NQotCQkJCWwyNjY6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb24yNjYsIHRva2VuSW5kZXgyNjYKKwkJCQlsMjg3OgorCQkJCQlnb3RvIGwyODMKKwkJCQls
Mjg0OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjg0LCB0b2tlbkluZGV4
Mjg0CiAJCQkJfQotCQkJCWFkZChydWxlV1MsIHBvc2l0aW9uMjY0KQorCQkJCWFkZChydWxlV1Ms
IHBvc2l0aW9uMjgyKQogCQkJfQogCQkJcmV0dXJuIHRydWUKLQkJbDI2MzoKLQkJCXBvc2l0aW9u
LCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNjMsIHRva2VuSW5kZXgyNjMKKwkJbDI4MToKKwkJCXBv
c2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yODEsIHRva2VuSW5kZXgyODEKIAkJCXJldHVy
biBmYWxzZQogCQl9LAogCQkvKiAxOSBDb21tZW50IDwtIDwoJyMnICghJ1xuJyAuKSopPiAqLwog
CQlmdW5jKCkgYm9vbCB7Ci0JCQlwb3NpdGlvbjI3MSwgdG9rZW5JbmRleDI3MSA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAorCQkJcG9zaXRpb24yODksIHRva2VuSW5kZXgyODkgOj0gcG9zaXRpb24s
IHRva2VuSW5kZXgKIAkJCXsKLQkJCQlwb3NpdGlvbjI3MiA6PSBwb3NpdGlvbgorCQkJCXBvc2l0
aW9uMjkwIDo9IHBvc2l0aW9uCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcjJykg
ewotCQkJCQlnb3RvIGwyNzEKKwkJCQkJZ290byBsMjg5CiAJCQkJfQogCQkJCXBvc2l0aW9uKysK
LQkJCWwyNzM6CisJCQlsMjkxOgogCQkJCXsKLQkJCQkJcG9zaXRpb24yNzQsIHRva2VuSW5kZXgy
NzQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24yOTIsIHRva2VuSW5kZXgy
OTIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJewotCQkJCQkJcG9zaXRpb24yNzUsIHRv
a2VuSW5kZXgyNzUgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uMjkzLCB0
b2tlbkluZGV4MjkzIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBidWZmZXJbcG9z
aXRpb25dICE9IHJ1bmUoJ1xuJykgewotCQkJCQkJCWdvdG8gbDI3NQorCQkJCQkJCWdvdG8gbDI5
MwogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsMjc0Ci0JCQkJCWwyNzU6
Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjc1LCB0b2tlbkluZGV4Mjc1
CisJCQkJCQlnb3RvIGwyOTIKKwkJCQkJbDI5MzoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4
ID0gcG9zaXRpb24yOTMsIHRva2VuSW5kZXgyOTMKIAkJCQkJfQogCQkJCQlpZiAhbWF0Y2hEb3Qo
KSB7Ci0JCQkJCQlnb3RvIGwyNzQKKwkJCQkJCWdvdG8gbDI5MgogCQkJCQl9Ci0JCQkJCWdvdG8g
bDI3MwotCQkJCWwyNzQ6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yNzQs
IHRva2VuSW5kZXgyNzQKKwkJCQkJZ290byBsMjkxCisJCQkJbDI5MjoKKwkJCQkJcG9zaXRpb24s
IHRva2VuSW5kZXggPSBwb3NpdGlvbjI5MiwgdG9rZW5JbmRleDI5MgogCQkJCX0KLQkJCQlhZGQo
cnVsZUNvbW1lbnQsIHBvc2l0aW9uMjcyKQorCQkJCWFkZChydWxlQ29tbWVudCwgcG9zaXRpb24y
OTApCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsMjcxOgotCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjI3MSwgdG9rZW5JbmRleDI3MQorCQlsMjg5OgorCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjI4OSwgdG9rZW5JbmRleDI4OQogCQkJcmV0dXJuIGZhbHNlCiAJ
CX0sCiAJCS8qIDIwIExhYmVsIDwtIDwoKExvY2FsU3ltYm9sIC8gTG9jYWxMYWJlbCAvIFN5bWJv
bE5hbWUpICc6Jyk+ICovCiAJCWZ1bmMoKSBib29sIHsKLQkJCXBvc2l0aW9uMjc2LCB0b2tlbklu
ZGV4Mjc2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQlwb3NpdGlvbjI5NCwgdG9rZW5JbmRl
eDI5NCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJewotCQkJCXBvc2l0aW9uMjc3IDo9IHBv
c2l0aW9uCisJCQkJcG9zaXRpb24yOTUgOj0gcG9zaXRpb24KIAkJCQl7Ci0JCQkJCXBvc2l0aW9u
Mjc4LCB0b2tlbkluZGV4Mjc4IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCXBvc2l0aW9u
Mjk2LCB0b2tlbkluZGV4Mjk2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCWlmICFfcnVs
ZXNbcnVsZUxvY2FsU3ltYm9sXSgpIHsKLQkJCQkJCWdvdG8gbDI3OQorCQkJCQkJZ290byBsMjk3
CiAJCQkJCX0KLQkJCQkJZ290byBsMjc4Ci0JCQkJbDI3OToKLQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjI3OCwgdG9rZW5JbmRleDI3OAorCQkJCQlnb3RvIGwyOTYKKwkJCQls
Mjk3OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjk2LCB0b2tlbkluZGV4
Mjk2CiAJCQkJCWlmICFfcnVsZXNbcnVsZUxvY2FsTGFiZWxdKCkgewotCQkJCQkJZ290byBsMjgw
CisJCQkJCQlnb3RvIGwyOTgKIAkJCQkJfQotCQkJCQlnb3RvIGwyNzgKLQkJCQlsMjgwOgotCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjc4LCB0b2tlbkluZGV4Mjc4CisJCQkJ
CWdvdG8gbDI5NgorCQkJCWwyOTg6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b24yOTYsIHRva2VuSW5kZXgyOTYKIAkJCQkJaWYgIV9ydWxlc1tydWxlU3ltYm9sTmFtZV0oKSB7
Ci0JCQkJCQlnb3RvIGwyNzYKKwkJCQkJCWdvdG8gbDI5NAogCQkJCQl9CiAJCQkJfQotCQkJbDI3
ODoKKwkJCWwyOTY6CiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCc6JykgewotCQkJ
CQlnb3RvIGwyNzYKKwkJCQkJZ290byBsMjk0CiAJCQkJfQogCQkJCXBvc2l0aW9uKysKLQkJCQlh
ZGQocnVsZUxhYmVsLCBwb3NpdGlvbjI3NykKKwkJCQlhZGQocnVsZUxhYmVsLCBwb3NpdGlvbjI5
NSkKIAkJCX0KIAkJCXJldHVybiB0cnVlCi0JCWwyNzY6Ci0JCQlwb3NpdGlvbiwgdG9rZW5JbmRl
eCA9IHBvc2l0aW9uMjc2LCB0b2tlbkluZGV4Mjc2CisJCWwyOTQ6CisJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uMjk0LCB0b2tlbkluZGV4Mjk0CiAJCQlyZXR1cm4gZmFsc2UKIAkJ
fSwKIAkJLyogMjEgU3ltYm9sTmFtZSA8LSA8KChbYS16XSAvIFtBLVpdIC8gJy4nIC8gJ18nKSAo
W2Etel0gLyBbQS1aXSAvICcuJyAvIChbMC05XSAvIFswLTldKSAvICckJyAvICdfJykqKT4gKi8K
IAkJZnVuYygpIGJvb2wgewotCQkJcG9zaXRpb24yODEsIHRva2VuSW5kZXgyODEgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKKwkJCXBvc2l0aW9uMjk5LCB0b2tlbkluZGV4Mjk5IDo9IHBvc2l0aW9u
LCB0b2tlbkluZGV4CiAJCQl7Ci0JCQkJcG9zaXRpb24yODIgOj0gcG9zaXRpb24KKwkJCQlwb3Np
dGlvbjMwMCA6PSBwb3NpdGlvbgogCQkJCXsKLQkJCQkJcG9zaXRpb24yODMsIHRva2VuSW5kZXgy
ODMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24zMDEsIHRva2VuSW5kZXgz
MDEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25d
OyBjIDwgcnVuZSgnYScpIHx8IGMgPiBydW5lKCd6JykgewotCQkJCQkJZ290byBsMjg0CisJCQkJ
CQlnb3RvIGwzMDIKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCi0JCQkJCWdvdG8gbDI4MwotCQkJ
CWwyODQ6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yODMsIHRva2VuSW5k
ZXgyODMKKwkJCQkJZ290byBsMzAxCisJCQkJbDMwMjoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjMwMSwgdG9rZW5JbmRleDMwMQogCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3Np
dGlvbl07IGMgPCBydW5lKCdBJykgfHwgYyA+IHJ1bmUoJ1onKSB7Ci0JCQkJCQlnb3RvIGwyODUK
KwkJCQkJCWdvdG8gbDMwMwogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKLQkJCQkJZ290byBsMjgz
Ci0JCQkJbDI4NToKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI4MywgdG9r
ZW5JbmRleDI4MworCQkJCQlnb3RvIGwzMDEKKwkJCQlsMzAzOgorCQkJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uMzAxLCB0b2tlbkluZGV4MzAxCiAJCQkJCWlmIGJ1ZmZlcltwb3Np
dGlvbl0gIT0gcnVuZSgnLicpIHsKLQkJCQkJCWdvdG8gbDI4NgorCQkJCQkJZ290byBsMzA0CiAJ
CQkJCX0KIAkJCQkJcG9zaXRpb24rKwotCQkJCQlnb3RvIGwyODMKLQkJCQlsMjg2OgotCQkJCQlw
b3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjgzLCB0b2tlbkluZGV4MjgzCisJCQkJCWdv
dG8gbDMwMQorCQkJCWwzMDQ6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24z
MDEsIHRva2VuSW5kZXgzMDEKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdfJykg
ewotCQkJCQkJZ290byBsMjgxCisJCQkJCQlnb3RvIGwyOTkKIAkJCQkJfQogCQkJCQlwb3NpdGlv
bisrCiAJCQkJfQotCQkJbDI4MzoKLQkJCWwyODc6CisJCQlsMzAxOgorCQkJbDMwNToKIAkJCQl7
Ci0JCQkJCXBvc2l0aW9uMjg4LCB0b2tlbkluZGV4Mjg4IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4
CisJCQkJCXBvc2l0aW9uMzA2LCB0b2tlbkluZGV4MzA2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4
CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9uMjg5LCB0b2tlbkluZGV4Mjg5IDo9IHBvc2l0aW9uLCB0
b2tlbkluZGV4CisJCQkJCQlwb3NpdGlvbjMwNywgdG9rZW5JbmRleDMwNyA6PSBwb3NpdGlvbiwg
dG9rZW5JbmRleAogCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnYScp
IHx8IGMgPiBydW5lKCd6JykgewotCQkJCQkJCWdvdG8gbDI5MAorCQkJCQkJCWdvdG8gbDMwOAog
CQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsMjg5Ci0JCQkJCWwyOTA6Ci0J
CQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjg5LCB0b2tlbkluZGV4Mjg5CisJ
CQkJCQlnb3RvIGwzMDcKKwkJCQkJbDMwODoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb24zMDcsIHRva2VuSW5kZXgzMDcKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9u
XTsgYyA8IHJ1bmUoJ0EnKSB8fCBjID4gcnVuZSgnWicpIHsKLQkJCQkJCQlnb3RvIGwyOTEKKwkJ
CQkJCQlnb3RvIGwzMDkKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdvdG8gbDI4
OQotCQkJCQlsMjkxOgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjI4OSwg
dG9rZW5JbmRleDI4OQorCQkJCQkJZ290byBsMzA3CisJCQkJCWwzMDk6CisJCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzA3LCB0b2tlbkluZGV4MzA3CiAJCQkJCQlpZiBidWZm
ZXJbcG9zaXRpb25dICE9IHJ1bmUoJy4nKSB7Ci0JCQkJCQkJZ290byBsMjkyCisJCQkJCQkJZ290
byBsMzEwCiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGwyODkKLQkJCQkJ
bDI5MjoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24yODksIHRva2VuSW5k
ZXgyODkKKwkJCQkJCWdvdG8gbDMwNworCQkJCQlsMzEwOgorCQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjMwNywgdG9rZW5JbmRleDMwNwogCQkJCQkJewotCQkJCQkJCXBvc2l0
aW9uMjk0LCB0b2tlbkluZGV4Mjk0IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQkJcG9z
aXRpb24zMTIsIHRva2VuSW5kZXgzMTIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCQlp
ZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCcwJykgfHwgYyA+IHJ1bmUoJzknKSB7
Ci0JCQkJCQkJCWdvdG8gbDI5NQorCQkJCQkJCQlnb3RvIGwzMTMKIAkJCQkJCQl9CiAJCQkJCQkJ
cG9zaXRpb24rKwotCQkJCQkJCWdvdG8gbDI5NAotCQkJCQkJbDI5NToKLQkJCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjk0LCB0b2tlbkluZGV4Mjk0CisJCQkJCQkJZ290byBs
MzEyCisJCQkJCQlsMzEzOgorCQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24z
MTIsIHRva2VuSW5kZXgzMTIKIAkJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBy
dW5lKCcwJykgfHwgYyA+IHJ1bmUoJzknKSB7Ci0JCQkJCQkJCWdvdG8gbDI5MworCQkJCQkJCQln
b3RvIGwzMTEKIAkJCQkJCQl9CiAJCQkJCQkJcG9zaXRpb24rKwogCQkJCQkJfQotCQkJCQlsMjk0
OgotCQkJCQkJZ290byBsMjg5Ci0JCQkJCWwyOTM6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRl
eCA9IHBvc2l0aW9uMjg5LCB0b2tlbkluZGV4Mjg5CisJCQkJCWwzMTI6CisJCQkJCQlnb3RvIGwz
MDcKKwkJCQkJbDMxMToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMDcs
IHRva2VuSW5kZXgzMDcKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnJCcpIHsK
LQkJCQkJCQlnb3RvIGwyOTYKKwkJCQkJCQlnb3RvIGwzMTQKIAkJCQkJCX0KIAkJCQkJCXBvc2l0
aW9uKysKLQkJCQkJCWdvdG8gbDI4OQotCQkJCQlsMjk2OgotCQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjI4OSwgdG9rZW5JbmRleDI4OQorCQkJCQkJZ290byBsMzA3CisJCQkJ
CWwzMTQ6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzA3LCB0b2tlbklu
ZGV4MzA3CiAJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ18nKSB7Ci0JCQkJCQkJ
Z290byBsMjg4CisJCQkJCQkJZ290byBsMzA2CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCiAJ
CQkJCX0KLQkJCQlsMjg5OgotCQkJCQlnb3RvIGwyODcKLQkJCQlsMjg4OgotCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjg4LCB0b2tlbkluZGV4Mjg4CisJCQkJbDMwNzoKKwkJ
CQkJZ290byBsMzA1CisJCQkJbDMwNjoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjMwNiwgdG9rZW5JbmRleDMwNgogCQkJCX0KLQkJCQlhZGQocnVsZVN5bWJvbE5hbWUsIHBv
c2l0aW9uMjgyKQorCQkJCWFkZChydWxlU3ltYm9sTmFtZSwgcG9zaXRpb24zMDApCiAJCQl9CiAJ
CQlyZXR1cm4gdHJ1ZQotCQlsMjgxOgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjI4MSwgdG9rZW5JbmRleDI4MQorCQlsMjk5OgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjI5OSwgdG9rZW5JbmRleDI5OQogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDIy
IExvY2FsU3ltYm9sIDwtIDwoJy4nICdMJyAoW2Etel0gLyBbQS1aXSAvICcuJyAvIChbMC05XSAv
IFswLTldKSAvICckJyAvICdfJykrKT4gKi8KIAkJZnVuYygpIGJvb2wgewotCQkJcG9zaXRpb24y
OTcsIHRva2VuSW5kZXgyOTcgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXBvc2l0aW9uMzE1
LCB0b2tlbkluZGV4MzE1IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7Ci0JCQkJcG9zaXRp
b24yOTggOj0gcG9zaXRpb24KKwkJCQlwb3NpdGlvbjMxNiA6PSBwb3NpdGlvbgogCQkJCWlmIGJ1
ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnLicpIHsKLQkJCQkJZ290byBsMjk3CisJCQkJCWdvdG8g
bDMxNQogCQkJCX0KIAkJCQlwb3NpdGlvbisrCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCdMJykgewotCQkJCQlnb3RvIGwyOTcKKwkJCQkJZ290byBsMzE1CiAJCQkJfQogCQkJCXBv
c2l0aW9uKysKIAkJCQl7Ci0JCQkJCXBvc2l0aW9uMzAxLCB0b2tlbkluZGV4MzAxIDo9IHBvc2l0
aW9uLCB0b2tlbkluZGV4CisJCQkJCXBvc2l0aW9uMzE5LCB0b2tlbkluZGV4MzE5IDo9IHBvc2l0
aW9uLCB0b2tlbkluZGV4CiAJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUo
J2EnKSB8fCBjID4gcnVuZSgneicpIHsKLQkJCQkJCWdvdG8gbDMwMgorCQkJCQkJZ290byBsMzIw
CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwotCQkJCQlnb3RvIGwzMDEKLQkJCQlsMzAyOgotCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzAxLCB0b2tlbkluZGV4MzAxCisJCQkJ
CWdvdG8gbDMxOQorCQkJCWwzMjA6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b24zMTksIHRva2VuSW5kZXgzMTkKIAkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwg
cnVuZSgnQScpIHx8IGMgPiBydW5lKCdaJykgewotCQkJCQkJZ290byBsMzAzCisJCQkJCQlnb3Rv
IGwzMjEKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCi0JCQkJCWdvdG8gbDMwMQotCQkJCWwzMDM6
Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMDEsIHRva2VuSW5kZXgzMDEK
KwkJCQkJZ290byBsMzE5CisJCQkJbDMyMToKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjMxOSwgdG9rZW5JbmRleDMxOQogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJy4nKSB7Ci0JCQkJCQlnb3RvIGwzMDQKKwkJCQkJCWdvdG8gbDMyMgogCQkJCQl9CiAJCQkJ
CXBvc2l0aW9uKysKLQkJCQkJZ290byBsMzAxCi0JCQkJbDMwNDoKLQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjMwMSwgdG9rZW5JbmRleDMwMQorCQkJCQlnb3RvIGwzMTkKKwkJ
CQlsMzIyOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzE5LCB0b2tlbklu
ZGV4MzE5CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9uMzA2LCB0b2tlbkluZGV4MzA2IDo9IHBvc2l0
aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3NpdGlvbjMyNCwgdG9rZW5JbmRleDMyNCA6PSBwb3Np
dGlvbiwgdG9rZW5JbmRleAogCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVu
ZSgnMCcpIHx8IGMgPiBydW5lKCc5JykgewotCQkJCQkJCWdvdG8gbDMwNworCQkJCQkJCWdvdG8g
bDMyNQogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsMzA2Ci0JCQkJCWwz
MDc6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzA2LCB0b2tlbkluZGV4
MzA2CisJCQkJCQlnb3RvIGwzMjQKKwkJCQkJbDMyNToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb24zMjQsIHRva2VuSW5kZXgzMjQKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bv
c2l0aW9uXTsgYyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVuZSgnOScpIHsKLQkJCQkJCQlnb3RvIGwz
MDUKKwkJCQkJCQlnb3RvIGwzMjMKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKIAkJCQkJfQot
CQkJCWwzMDY6Ci0JCQkJCWdvdG8gbDMwMQotCQkJCWwzMDU6Ci0JCQkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb24zMDEsIHRva2VuSW5kZXgzMDEKKwkJCQlsMzI0OgorCQkJCQlnb3Rv
IGwzMTkKKwkJCQlsMzIzOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzE5
LCB0b2tlbkluZGV4MzE5CiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnJCcpIHsK
LQkJCQkJCWdvdG8gbDMwOAorCQkJCQkJZ290byBsMzI2CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24r
KwotCQkJCQlnb3RvIGwzMDEKLQkJCQlsMzA4OgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9
IHBvc2l0aW9uMzAxLCB0b2tlbkluZGV4MzAxCisJCQkJCWdvdG8gbDMxOQorCQkJCWwzMjY6CisJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMTksIHRva2VuSW5kZXgzMTkKIAkJ
CQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdfJykgewotCQkJCQkJZ290byBsMjk3CisJ
CQkJCQlnb3RvIGwzMTUKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCiAJCQkJfQotCQkJbDMwMToK
LQkJCWwyOTk6CisJCQlsMzE5OgorCQkJbDMxNzoKIAkJCQl7Ci0JCQkJCXBvc2l0aW9uMzAwLCB0
b2tlbkluZGV4MzAwIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCXBvc2l0aW9uMzE4LCB0
b2tlbkluZGV4MzE4IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCXsKLQkJCQkJCXBvc2l0
aW9uMzA5LCB0b2tlbkluZGV4MzA5IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3Np
dGlvbjMyNywgdG9rZW5JbmRleDMyNyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJaWYg
YyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnYScpIHx8IGMgPiBydW5lKCd6Jykgewot
CQkJCQkJCWdvdG8gbDMxMAorCQkJCQkJCWdvdG8gbDMyOAogCQkJCQkJfQogCQkJCQkJcG9zaXRp
b24rKwotCQkJCQkJZ290byBsMzA5Ci0JCQkJCWwzMTA6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5J
bmRleCA9IHBvc2l0aW9uMzA5LCB0b2tlbkluZGV4MzA5CisJCQkJCQlnb3RvIGwzMjcKKwkJCQkJ
bDMyODoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMjcsIHRva2VuSW5k
ZXgzMjcKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ0EnKSB8fCBj
ID4gcnVuZSgnWicpIHsKLQkJCQkJCQlnb3RvIGwzMTEKKwkJCQkJCQlnb3RvIGwzMjkKIAkJCQkJ
CX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdvdG8gbDMwOQotCQkJCQlsMzExOgotCQkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjMwOSwgdG9rZW5JbmRleDMwOQorCQkJCQkJ
Z290byBsMzI3CisJCQkJCWwzMjk6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMzI3LCB0b2tlbkluZGV4MzI3CiAJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUo
Jy4nKSB7Ci0JCQkJCQkJZ290byBsMzEyCisJCQkJCQkJZ290byBsMzMwCiAJCQkJCQl9CiAJCQkJ
CQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGwzMDkKLQkJCQkJbDMxMjoKLQkJCQkJCXBvc2l0aW9u
LCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMDksIHRva2VuSW5kZXgzMDkKKwkJCQkJCWdvdG8gbDMy
NworCQkJCQlsMzMwOgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjMyNywg
dG9rZW5JbmRleDMyNwogCQkJCQkJewotCQkJCQkJCXBvc2l0aW9uMzE0LCB0b2tlbkluZGV4MzE0
IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQkJcG9zaXRpb24zMzIsIHRva2VuSW5kZXgz
MzIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlv
bl07IGMgPCBydW5lKCcwJykgfHwgYyA+IHJ1bmUoJzknKSB7Ci0JCQkJCQkJCWdvdG8gbDMxNQor
CQkJCQkJCQlnb3RvIGwzMzMKIAkJCQkJCQl9CiAJCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJCWdv
dG8gbDMxNAotCQkJCQkJbDMxNToKLQkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMzE0LCB0b2tlbkluZGV4MzE0CisJCQkJCQkJZ290byBsMzMyCisJCQkJCQlsMzMzOgorCQkJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMzIsIHRva2VuSW5kZXgzMzIKIAkJ
CQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCcwJykgfHwgYyA+IHJ1bmUo
JzknKSB7Ci0JCQkJCQkJCWdvdG8gbDMxMworCQkJCQkJCQlnb3RvIGwzMzEKIAkJCQkJCQl9CiAJ
CQkJCQkJcG9zaXRpb24rKwogCQkJCQkJfQotCQkJCQlsMzE0OgotCQkJCQkJZ290byBsMzA5Ci0J
CQkJCWwzMTM6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzA5LCB0b2tl
bkluZGV4MzA5CisJCQkJCWwzMzI6CisJCQkJCQlnb3RvIGwzMjcKKwkJCQkJbDMzMToKKwkJCQkJ
CXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMjcsIHRva2VuSW5kZXgzMjcKIAkJCQkJ
CWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnJCcpIHsKLQkJCQkJCQlnb3RvIGwzMTYKKwkJ
CQkJCQlnb3RvIGwzMzQKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdvdG8gbDMw
OQotCQkJCQlsMzE2OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjMwOSwg
dG9rZW5JbmRleDMwOQorCQkJCQkJZ290byBsMzI3CisJCQkJCWwzMzQ6CisJCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzI3LCB0b2tlbkluZGV4MzI3CiAJCQkJCQlpZiBidWZm
ZXJbcG9zaXRpb25dICE9IHJ1bmUoJ18nKSB7Ci0JCQkJCQkJZ290byBsMzAwCisJCQkJCQkJZ290
byBsMzE4CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCiAJCQkJCX0KLQkJCQlsMzA5OgotCQkJ
CQlnb3RvIGwyOTkKLQkJCQlsMzAwOgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMzAwLCB0b2tlbkluZGV4MzAwCisJCQkJbDMyNzoKKwkJCQkJZ290byBsMzE3CisJCQkJbDMx
ODoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjMxOCwgdG9rZW5JbmRleDMx
OAogCQkJCX0KLQkJCQlhZGQocnVsZUxvY2FsU3ltYm9sLCBwb3NpdGlvbjI5OCkKKwkJCQlhZGQo
cnVsZUxvY2FsU3ltYm9sLCBwb3NpdGlvbjMxNikKIAkJCX0KIAkJCXJldHVybiB0cnVlCi0JCWwy
OTc6Ci0JCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMjk3LCB0b2tlbkluZGV4Mjk3
CisJCWwzMTU6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzE1LCB0b2tlbklu
ZGV4MzE1CiAJCQlyZXR1cm4gZmFsc2UKIAkJfSwKIAkJLyogMjMgTG9jYWxMYWJlbCA8LSA8KFsw
LTldIChbMC05XSAvICckJykqKT4gKi8KIAkJZnVuYygpIGJvb2wgewotCQkJcG9zaXRpb24zMTcs
IHRva2VuSW5kZXgzMTcgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXBvc2l0aW9uMzM1LCB0
b2tlbkluZGV4MzM1IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7Ci0JCQkJcG9zaXRpb24z
MTggOj0gcG9zaXRpb24KKwkJCQlwb3NpdGlvbjMzNiA6PSBwb3NpdGlvbgogCQkJCWlmIGMgOj0g
YnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVuZSgnOScpIHsKLQkJCQkJ
Z290byBsMzE3CisJCQkJCWdvdG8gbDMzNQogCQkJCX0KIAkJCQlwb3NpdGlvbisrCi0JCQlsMzE5
OgorCQkJbDMzNzoKIAkJCQl7Ci0JCQkJCXBvc2l0aW9uMzIwLCB0b2tlbkluZGV4MzIwIDo9IHBv
c2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCXBvc2l0aW9uMzM4LCB0b2tlbkluZGV4MzM4IDo9IHBv
c2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9uMzIxLCB0b2tlbkluZGV4
MzIxIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3NpdGlvbjMzOSwgdG9rZW5JbmRl
eDMzOSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRp
b25dOyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5lKCc5JykgewotCQkJCQkJCWdvdG8gbDMyMgor
CQkJCQkJCWdvdG8gbDM0MAogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBs
MzIxCi0JCQkJCWwzMjI6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzIx
LCB0b2tlbkluZGV4MzIxCisJCQkJCQlnb3RvIGwzMzkKKwkJCQkJbDM0MDoKKwkJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMzksIHRva2VuSW5kZXgzMzkKIAkJCQkJCWlmIGJ1
ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnJCcpIHsKLQkJCQkJCQlnb3RvIGwzMjAKKwkJCQkJCQln
b3RvIGwzMzgKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKIAkJCQkJfQotCQkJCWwzMjE6Ci0J
CQkJCWdvdG8gbDMxOQotCQkJCWwzMjA6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb24zMjAsIHRva2VuSW5kZXgzMjAKKwkJCQlsMzM5OgorCQkJCQlnb3RvIGwzMzcKKwkJCQls
MzM4OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzM4LCB0b2tlbkluZGV4
MzM4CiAJCQkJfQotCQkJCWFkZChydWxlTG9jYWxMYWJlbCwgcG9zaXRpb24zMTgpCisJCQkJYWRk
KHJ1bGVMb2NhbExhYmVsLCBwb3NpdGlvbjMzNikKIAkJCX0KIAkJCXJldHVybiB0cnVlCi0JCWwz
MTc6Ci0JCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzE3LCB0b2tlbkluZGV4MzE3
CisJCWwzMzU6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzM1LCB0b2tlbklu
ZGV4MzM1CiAJCQlyZXR1cm4gZmFsc2UKIAkJfSwKIAkJLyogMjQgTG9jYWxMYWJlbFJlZiA8LSA8
KFswLTldIChbMC05XSAvICckJykqICgnYicgLyAnZicpKT4gKi8KIAkJZnVuYygpIGJvb2wgewot
CQkJcG9zaXRpb24zMjMsIHRva2VuSW5kZXgzMjMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJ
CXBvc2l0aW9uMzQxLCB0b2tlbkluZGV4MzQxIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7
Ci0JCQkJcG9zaXRpb24zMjQgOj0gcG9zaXRpb24KKwkJCQlwb3NpdGlvbjM0MiA6PSBwb3NpdGlv
bgogCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVu
ZSgnOScpIHsKLQkJCQkJZ290byBsMzIzCisJCQkJCWdvdG8gbDM0MQogCQkJCX0KIAkJCQlwb3Np
dGlvbisrCi0JCQlsMzI1OgorCQkJbDM0MzoKIAkJCQl7Ci0JCQkJCXBvc2l0aW9uMzI2LCB0b2tl
bkluZGV4MzI2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCXBvc2l0aW9uMzQ0LCB0b2tl
bkluZGV4MzQ0IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9u
MzI3LCB0b2tlbkluZGV4MzI3IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3NpdGlv
bjM0NSwgdG9rZW5JbmRleDM0NSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJaWYgYyA6
PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5lKCc5JykgewotCQkJ
CQkJCWdvdG8gbDMyOAorCQkJCQkJCWdvdG8gbDM0NgogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24r
KwotCQkJCQkJZ290byBsMzI3Ci0JCQkJCWwzMjg6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRl
eCA9IHBvc2l0aW9uMzI3LCB0b2tlbkluZGV4MzI3CisJCQkJCQlnb3RvIGwzNDUKKwkJCQkJbDM0
NjoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNDUsIHRva2VuSW5kZXgz
NDUKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnJCcpIHsKLQkJCQkJCQlnb3Rv
IGwzMjYKKwkJCQkJCQlnb3RvIGwzNDQKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKIAkJCQkJ
fQotCQkJCWwzMjc6Ci0JCQkJCWdvdG8gbDMyNQotCQkJCWwzMjY6Ci0JCQkJCXBvc2l0aW9uLCB0
b2tlbkluZGV4ID0gcG9zaXRpb24zMjYsIHRva2VuSW5kZXgzMjYKKwkJCQlsMzQ1OgorCQkJCQln
b3RvIGwzNDMKKwkJCQlsMzQ0OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9u
MzQ0LCB0b2tlbkluZGV4MzQ0CiAJCQkJfQogCQkJCXsKLQkJCQkJcG9zaXRpb24zMjksIHRva2Vu
SW5kZXgzMjkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24zNDcsIHRva2Vu
SW5kZXgzNDcgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9u
XSAhPSBydW5lKCdiJykgewotCQkJCQkJZ290byBsMzMwCisJCQkJCQlnb3RvIGwzNDgKIAkJCQkJ
fQogCQkJCQlwb3NpdGlvbisrCi0JCQkJCWdvdG8gbDMyOQotCQkJCWwzMzA6Ci0JCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMjksIHRva2VuSW5kZXgzMjkKKwkJCQkJZ290byBs
MzQ3CisJCQkJbDM0ODoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM0Nywg
dG9rZW5JbmRleDM0NwogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2YnKSB7Ci0J
CQkJCQlnb3RvIGwzMjMKKwkJCQkJCWdvdG8gbDM0MQogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysK
IAkJCQl9Ci0JCQlsMzI5OgotCQkJCWFkZChydWxlTG9jYWxMYWJlbFJlZiwgcG9zaXRpb24zMjQp
CisJCQlsMzQ3OgorCQkJCWFkZChydWxlTG9jYWxMYWJlbFJlZiwgcG9zaXRpb24zNDIpCiAJCQl9
CiAJCQlyZXR1cm4gdHJ1ZQotCQlsMzIzOgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjMyMywgdG9rZW5JbmRleDMyMworCQlsMzQxOgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXgg
PSBwb3NpdGlvbjM0MSwgdG9rZW5JbmRleDM0MQogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8q
IDI1IEluc3RydWN0aW9uIDwtIDwoSW5zdHJ1Y3Rpb25OYW1lIChXUyBJbnN0cnVjdGlvbkFyZyAo
V1M/ICcsJyBXUz8gSW5zdHJ1Y3Rpb25BcmcpKik/KT4gKi8KIAkJZnVuYygpIGJvb2wgewotCQkJ
cG9zaXRpb24zMzEsIHRva2VuSW5kZXgzMzEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXBv
c2l0aW9uMzQ5LCB0b2tlbkluZGV4MzQ5IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7Ci0J
CQkJcG9zaXRpb24zMzIgOj0gcG9zaXRpb24KKwkJCQlwb3NpdGlvbjM1MCA6PSBwb3NpdGlvbgog
CQkJCWlmICFfcnVsZXNbcnVsZUluc3RydWN0aW9uTmFtZV0oKSB7Ci0JCQkJCWdvdG8gbDMzMQor
CQkJCQlnb3RvIGwzNDkKIAkJCQl9CiAJCQkJewotCQkJCQlwb3NpdGlvbjMzMywgdG9rZW5JbmRl
eDMzMyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjM1MSwgdG9rZW5JbmRl
eDM1MSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7
Ci0JCQkJCQlnb3RvIGwzMzMKKwkJCQkJCWdvdG8gbDM1MQogCQkJCQl9CiAJCQkJCWlmICFfcnVs
ZXNbcnVsZUluc3RydWN0aW9uQXJnXSgpIHsKLQkJCQkJCWdvdG8gbDMzMworCQkJCQkJZ290byBs
MzUxCiAJCQkJCX0KLQkJCQlsMzM1OgorCQkJCWwzNTM6CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9u
MzM2LCB0b2tlbkluZGV4MzM2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3NpdGlv
bjM1NCwgdG9rZW5JbmRleDM1NCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJewotCQkJ
CQkJCXBvc2l0aW9uMzM3LCB0b2tlbkluZGV4MzM3IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJ
CQkJCQkJcG9zaXRpb24zNTUsIHRva2VuSW5kZXgzNTUgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
IAkJCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7Ci0JCQkJCQkJCWdvdG8gbDMzNworCQkJCQkJ
CQlnb3RvIGwzNTUKIAkJCQkJCQl9Ci0JCQkJCQkJZ290byBsMzM4Ci0JCQkJCQlsMzM3OgotCQkJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMzcsIHRva2VuSW5kZXgzMzcKKwkJ
CQkJCQlnb3RvIGwzNTYKKwkJCQkJCWwzNTU6CisJCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXgg
PSBwb3NpdGlvbjM1NSwgdG9rZW5JbmRleDM1NQogCQkJCQkJfQotCQkJCQlsMzM4OgorCQkJCQls
MzU2OgogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcsJykgewotCQkJCQkJCWdv
dG8gbDMzNgorCQkJCQkJCWdvdG8gbDM1NAogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwogCQkJ
CQkJewotCQkJCQkJCXBvc2l0aW9uMzM5LCB0b2tlbkluZGV4MzM5IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CisJCQkJCQkJcG9zaXRpb24zNTcsIHRva2VuSW5kZXgzNTcgOj0gcG9zaXRpb24sIHRv
a2VuSW5kZXgKIAkJCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7Ci0JCQkJCQkJCWdvdG8gbDMz
OQorCQkJCQkJCQlnb3RvIGwzNTcKIAkJCQkJCQl9Ci0JCQkJCQkJZ290byBsMzQwCi0JCQkJCQls
MzM5OgotCQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zMzksIHRva2VuSW5k
ZXgzMzkKKwkJCQkJCQlnb3RvIGwzNTgKKwkJCQkJCWwzNTc6CisJCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjM1NywgdG9rZW5JbmRleDM1NwogCQkJCQkJfQotCQkJCQlsMzQw
OgorCQkJCQlsMzU4OgogCQkJCQkJaWYgIV9ydWxlc1tydWxlSW5zdHJ1Y3Rpb25BcmddKCkgewot
CQkJCQkJCWdvdG8gbDMzNgorCQkJCQkJCWdvdG8gbDM1NAogCQkJCQkJfQotCQkJCQkJZ290byBs
MzM1Ci0JCQkJCWwzMzY6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzM2
LCB0b2tlbkluZGV4MzM2CisJCQkJCQlnb3RvIGwzNTMKKwkJCQkJbDM1NDoKKwkJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNTQsIHRva2VuSW5kZXgzNTQKIAkJCQkJfQotCQkJ
CQlnb3RvIGwzMzQKLQkJCQlsMzMzOgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMzMzLCB0b2tlbkluZGV4MzMzCisJCQkJCWdvdG8gbDM1MgorCQkJCWwzNTE6CisJCQkJCXBv
c2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNTEsIHRva2VuSW5kZXgzNTEKIAkJCQl9Ci0J
CQlsMzM0OgotCQkJCWFkZChydWxlSW5zdHJ1Y3Rpb24sIHBvc2l0aW9uMzMyKQorCQkJbDM1MjoK
KwkJCQlhZGQocnVsZUluc3RydWN0aW9uLCBwb3NpdGlvbjM1MCkKIAkJCX0KIAkJCXJldHVybiB0
cnVlCi0JCWwzMzE6Ci0JCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzMxLCB0b2tl
bkluZGV4MzMxCisJCWwzNDk6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzQ5
LCB0b2tlbkluZGV4MzQ5CiAJCQlyZXR1cm4gZmFsc2UKIAkJfSwKIAkJLyogMjYgSW5zdHJ1Y3Rp
b25OYW1lIDwtIDwoKFthLXpdIC8gW0EtWl0pIChbYS16XSAvIFtBLVpdIC8gKFswLTldIC8gWzAt
OV0pKSogKCcuJyAvICcrJyAvICctJyk/KT4gKi8KIAkJZnVuYygpIGJvb2wgewotCQkJcG9zaXRp
b24zNDEsIHRva2VuSW5kZXgzNDEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXBvc2l0aW9u
MzU5LCB0b2tlbkluZGV4MzU5IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7Ci0JCQkJcG9z
aXRpb24zNDIgOj0gcG9zaXRpb24KKwkJCQlwb3NpdGlvbjM2MCA6PSBwb3NpdGlvbgogCQkJCXsK
LQkJCQkJcG9zaXRpb24zNDMsIHRva2VuSW5kZXgzNDMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
KwkJCQkJcG9zaXRpb24zNjEsIHRva2VuSW5kZXgzNjEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
IAkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnYScpIHx8IGMgPiBydW5l
KCd6JykgewotCQkJCQkJZ290byBsMzQ0CisJCQkJCQlnb3RvIGwzNjIKIAkJCQkJfQogCQkJCQlw
b3NpdGlvbisrCi0JCQkJCWdvdG8gbDM0MwotCQkJCWwzNDQ6Ci0JCQkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb24zNDMsIHRva2VuSW5kZXgzNDMKKwkJCQkJZ290byBsMzYxCisJCQkJ
bDM2MjoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM2MSwgdG9rZW5JbmRl
eDM2MQogCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdBJykgfHwgYyA+
IHJ1bmUoJ1onKSB7Ci0JCQkJCQlnb3RvIGwzNDEKKwkJCQkJCWdvdG8gbDM1OQogCQkJCQl9CiAJ
CQkJCXBvc2l0aW9uKysKIAkJCQl9Ci0JCQlsMzQzOgotCQkJbDM0NToKKwkJCWwzNjE6CisJCQls
MzYzOgogCQkJCXsKLQkJCQkJcG9zaXRpb24zNDYsIHRva2VuSW5kZXgzNDYgOj0gcG9zaXRpb24s
IHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24zNjQsIHRva2VuSW5kZXgzNjQgOj0gcG9zaXRpb24s
IHRva2VuSW5kZXgKIAkJCQkJewotCQkJCQkJcG9zaXRpb24zNDcsIHRva2VuSW5kZXgzNDcgOj0g
cG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uMzY1LCB0b2tlbkluZGV4MzY1IDo9
IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMg
PCBydW5lKCdhJykgfHwgYyA+IHJ1bmUoJ3onKSB7Ci0JCQkJCQkJZ290byBsMzQ4CisJCQkJCQkJ
Z290byBsMzY2CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGwzNDcKLQkJ
CQkJbDM0ODoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNDcsIHRva2Vu
SW5kZXgzNDcKKwkJCQkJCWdvdG8gbDM2NQorCQkJCQlsMzY2OgorCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjM2NSwgdG9rZW5JbmRleDM2NQogCQkJCQkJaWYgYyA6PSBidWZm
ZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnQScpIHx8IGMgPiBydW5lKCdaJykgewotCQkJCQkJCWdv
dG8gbDM0OQorCQkJCQkJCWdvdG8gbDM2NwogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJ
CQkJZ290byBsMzQ3Ci0JCQkJCWwzNDk6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMzQ3LCB0b2tlbkluZGV4MzQ3CisJCQkJCQlnb3RvIGwzNjUKKwkJCQkJbDM2NzoKKwkJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNjUsIHRva2VuSW5kZXgzNjUKIAkJ
CQkJCXsKLQkJCQkJCQlwb3NpdGlvbjM1MCwgdG9rZW5JbmRleDM1MCA6PSBwb3NpdGlvbiwgdG9r
ZW5JbmRleAorCQkJCQkJCXBvc2l0aW9uMzY4LCB0b2tlbkluZGV4MzY4IDo9IHBvc2l0aW9uLCB0
b2tlbkluZGV4CiAJCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcp
IHx8IGMgPiBydW5lKCc5JykgewotCQkJCQkJCQlnb3RvIGwzNTEKKwkJCQkJCQkJZ290byBsMzY5
CiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCQlnb3RvIGwzNTAKLQkJCQkJCWwz
NTE6Ci0JCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM1MCwgdG9rZW5JbmRl
eDM1MAorCQkJCQkJCWdvdG8gbDM2OAorCQkJCQkJbDM2OToKKwkJCQkJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uMzY4LCB0b2tlbkluZGV4MzY4CiAJCQkJCQkJaWYgYyA6PSBidWZm
ZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5lKCc5JykgewotCQkJCQkJCQln
b3RvIGwzNDYKKwkJCQkJCQkJZ290byBsMzY0CiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysK
IAkJCQkJCX0KLQkJCQkJbDM1MDoKKwkJCQkJbDM2ODoKIAkJCQkJfQotCQkJCWwzNDc6Ci0JCQkJ
CWdvdG8gbDM0NQotCQkJCWwzNDY6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b24zNDYsIHRva2VuSW5kZXgzNDYKKwkJCQlsMzY1OgorCQkJCQlnb3RvIGwzNjMKKwkJCQlsMzY0
OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzY0LCB0b2tlbkluZGV4MzY0
CiAJCQkJfQogCQkJCXsKLQkJCQkJcG9zaXRpb24zNTIsIHRva2VuSW5kZXgzNTIgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24zNzAsIHRva2VuSW5kZXgzNzAgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKIAkJCQkJewotCQkJCQkJcG9zaXRpb24zNTQsIHRva2VuSW5kZXgzNTQg
Oj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uMzcyLCB0b2tlbkluZGV4Mzcy
IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJy4nKSB7Ci0JCQkJCQkJZ290byBsMzU1CisJCQkJCQkJZ290byBsMzczCiAJCQkJCQl9CiAJ
CQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGwzNTQKLQkJCQkJbDM1NToKLQkJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNTQsIHRva2VuSW5kZXgzNTQKKwkJCQkJCWdvdG8g
bDM3MgorCQkJCQlsMzczOgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM3
MiwgdG9rZW5JbmRleDM3MgogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcrJykg
ewotCQkJCQkJCWdvdG8gbDM1NgorCQkJCQkJCWdvdG8gbDM3NAogCQkJCQkJfQogCQkJCQkJcG9z
aXRpb24rKwotCQkJCQkJZ290byBsMzU0Ci0JCQkJCWwzNTY6Ci0JCQkJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uMzU0LCB0b2tlbkluZGV4MzU0CisJCQkJCQlnb3RvIGwzNzIKKwkJ
CQkJbDM3NDoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNzIsIHRva2Vu
SW5kZXgzNzIKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnLScpIHsKLQkJCQkJ
CQlnb3RvIGwzNTIKKwkJCQkJCQlnb3RvIGwzNzAKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysK
IAkJCQkJfQotCQkJCWwzNTQ6Ci0JCQkJCWdvdG8gbDM1MwotCQkJCWwzNTI6Ci0JCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNTIsIHRva2VuSW5kZXgzNTIKKwkJCQlsMzcyOgor
CQkJCQlnb3RvIGwzNzEKKwkJCQlsMzcwOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMzcwLCB0b2tlbkluZGV4MzcwCiAJCQkJfQotCQkJbDM1MzoKLQkJCQlhZGQocnVsZUlu
c3RydWN0aW9uTmFtZSwgcG9zaXRpb24zNDIpCisJCQlsMzcxOgorCQkJCWFkZChydWxlSW5zdHJ1
Y3Rpb25OYW1lLCBwb3NpdGlvbjM2MCkKIAkJCX0KIAkJCXJldHVybiB0cnVlCi0JCWwzNDE6Ci0J
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzQxLCB0b2tlbkluZGV4MzQxCisJCWwz
NTk6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzU5LCB0b2tlbkluZGV4MzU5
CiAJCQlyZXR1cm4gZmFsc2UKIAkJfSwKIAkJLyogMjcgSW5zdHJ1Y3Rpb25BcmcgPC0gPChJbmRp
cmVjdGlvbkluZGljYXRvcj8gKFJlZ2lzdGVyT3JDb25zdGFudCAvIExvY2FsTGFiZWxSZWYgLyBU
T0NSZWZIaWdoIC8gVE9DUmVmTG93IC8gTWVtb3J5UmVmKSBBVlg1MTJUb2tlbiopPiAqLwogCQlm
dW5jKCkgYm9vbCB7Ci0JCQlwb3NpdGlvbjM1NywgdG9rZW5JbmRleDM1NyA6PSBwb3NpdGlvbiwg
dG9rZW5JbmRleAorCQkJcG9zaXRpb24zNzUsIHRva2VuSW5kZXgzNzUgOj0gcG9zaXRpb24sIHRv
a2VuSW5kZXgKIAkJCXsKLQkJCQlwb3NpdGlvbjM1OCA6PSBwb3NpdGlvbgorCQkJCXBvc2l0aW9u
Mzc2IDo9IHBvc2l0aW9uCiAJCQkJewotCQkJCQlwb3NpdGlvbjM1OSwgdG9rZW5JbmRleDM1OSA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjM3NywgdG9rZW5JbmRleDM3NyA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiAhX3J1bGVzW3J1bGVJbmRpcmVjdGlvbklu
ZGljYXRvcl0oKSB7Ci0JCQkJCQlnb3RvIGwzNTkKKwkJCQkJCWdvdG8gbDM3NwogCQkJCQl9Ci0J
CQkJCWdvdG8gbDM2MAotCQkJCWwzNTk6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb24zNTksIHRva2VuSW5kZXgzNTkKKwkJCQkJZ290byBsMzc4CisJCQkJbDM3NzoKKwkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM3NywgdG9rZW5JbmRleDM3NwogCQkJCX0K
LQkJCWwzNjA6CisJCQlsMzc4OgogCQkJCXsKLQkJCQkJcG9zaXRpb24zNjEsIHRva2VuSW5kZXgz
NjEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24zNzksIHRva2VuSW5kZXgz
NzkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYgIV9ydWxlc1tydWxlUmVnaXN0ZXJP
ckNvbnN0YW50XSgpIHsKLQkJCQkJCWdvdG8gbDM2MgorCQkJCQkJZ290byBsMzgwCiAJCQkJCX0K
LQkJCQkJZ290byBsMzYxCi0JCQkJbDM2MjoKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjM2MSwgdG9rZW5JbmRleDM2MQorCQkJCQlnb3RvIGwzNzkKKwkJCQlsMzgwOgorCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzc5LCB0b2tlbkluZGV4Mzc5CiAJCQkJ
CWlmICFfcnVsZXNbcnVsZUxvY2FsTGFiZWxSZWZdKCkgewotCQkJCQkJZ290byBsMzYzCisJCQkJ
CQlnb3RvIGwzODEKIAkJCQkJfQotCQkJCQlnb3RvIGwzNjEKLQkJCQlsMzYzOgotCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzYxLCB0b2tlbkluZGV4MzYxCisJCQkJCWdvdG8g
bDM3OQorCQkJCWwzODE6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNzks
IHRva2VuSW5kZXgzNzkKIAkJCQkJaWYgIV9ydWxlc1tydWxlVE9DUmVmSGlnaF0oKSB7Ci0JCQkJ
CQlnb3RvIGwzNjQKKwkJCQkJCWdvdG8gbDM4MgogCQkJCQl9Ci0JCQkJCWdvdG8gbDM2MQotCQkJ
CWwzNjQ6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNjEsIHRva2VuSW5k
ZXgzNjEKKwkJCQkJZ290byBsMzc5CisJCQkJbDM4MjoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjM3OSwgdG9rZW5JbmRleDM3OQogCQkJCQlpZiAhX3J1bGVzW3J1bGVUT0NS
ZWZMb3ddKCkgewotCQkJCQkJZ290byBsMzY1CisJCQkJCQlnb3RvIGwzODMKIAkJCQkJfQotCQkJ
CQlnb3RvIGwzNjEKLQkJCQlsMzY1OgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMzYxLCB0b2tlbkluZGV4MzYxCisJCQkJCWdvdG8gbDM3OQorCQkJCWwzODM6CisJCQkJCXBv
c2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zNzksIHRva2VuSW5kZXgzNzkKIAkJCQkJaWYg
IV9ydWxlc1tydWxlTWVtb3J5UmVmXSgpIHsKLQkJCQkJCWdvdG8gbDM1NworCQkJCQkJZ290byBs
Mzc1CiAJCQkJCX0KIAkJCQl9Ci0JCQlsMzYxOgotCQkJbDM2NjoKKwkJCWwzNzk6CisJCQlsMzg0
OgogCQkJCXsKLQkJCQkJcG9zaXRpb24zNjcsIHRva2VuSW5kZXgzNjcgOj0gcG9zaXRpb24sIHRv
a2VuSW5kZXgKKwkJCQkJcG9zaXRpb24zODUsIHRva2VuSW5kZXgzODUgOj0gcG9zaXRpb24sIHRv
a2VuSW5kZXgKIAkJCQkJaWYgIV9ydWxlc1tydWxlQVZYNTEyVG9rZW5dKCkgewotCQkJCQkJZ290
byBsMzY3CisJCQkJCQlnb3RvIGwzODUKIAkJCQkJfQotCQkJCQlnb3RvIGwzNjYKLQkJCQlsMzY3
OgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzY3LCB0b2tlbkluZGV4MzY3
CisJCQkJCWdvdG8gbDM4NAorCQkJCWwzODU6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb24zODUsIHRva2VuSW5kZXgzODUKIAkJCQl9Ci0JCQkJYWRkKHJ1bGVJbnN0cnVjdGlv
bkFyZywgcG9zaXRpb24zNTgpCisJCQkJYWRkKHJ1bGVJbnN0cnVjdGlvbkFyZywgcG9zaXRpb24z
NzYpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsMzU3OgotCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjM1NywgdG9rZW5JbmRleDM1NworCQlsMzc1OgorCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjM3NSwgdG9rZW5JbmRleDM3NQogCQkJcmV0dXJuIGZhbHNlCiAJ
CX0sCiAJCS8qIDI4IEFWWDUxMlRva2VuIDwtIDwoV1M/ICd7JyAnJSc/IChbMC05XSAvIFthLXpd
KSogJ30nKT4gKi8KIAkJZnVuYygpIGJvb2wgewotCQkJcG9zaXRpb24zNjgsIHRva2VuSW5kZXgz
NjggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXBvc2l0aW9uMzg2LCB0b2tlbkluZGV4Mzg2
IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7Ci0JCQkJcG9zaXRpb24zNjkgOj0gcG9zaXRp
b24KKwkJCQlwb3NpdGlvbjM4NyA6PSBwb3NpdGlvbgogCQkJCXsKLQkJCQkJcG9zaXRpb24zNzAs
IHRva2VuSW5kZXgzNzAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb24zODgs
IHRva2VuSW5kZXgzODggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYgIV9ydWxlc1ty
dWxlV1NdKCkgewotCQkJCQkJZ290byBsMzcwCisJCQkJCQlnb3RvIGwzODgKIAkJCQkJfQotCQkJ
CQlnb3RvIGwzNzEKLQkJCQlsMzcwOgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uMzcwLCB0b2tlbkluZGV4MzcwCisJCQkJCWdvdG8gbDM4OQorCQkJCWwzODg6CisJCQkJCXBv
c2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zODgsIHRva2VuSW5kZXgzODgKIAkJCQl9Ci0J
CQlsMzcxOgorCQkJbDM4OToKIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3snKSB7
Ci0JCQkJCWdvdG8gbDM2OAorCQkJCQlnb3RvIGwzODYKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwog
CQkJCXsKLQkJCQkJcG9zaXRpb24zNzIsIHRva2VuSW5kZXgzNzIgOj0gcG9zaXRpb24sIHRva2Vu
SW5kZXgKKwkJCQkJcG9zaXRpb24zOTAsIHRva2VuSW5kZXgzOTAgOj0gcG9zaXRpb24sIHRva2Vu
SW5kZXgKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCclJykgewotCQkJCQkJZ290
byBsMzcyCisJCQkJCQlnb3RvIGwzOTAKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCi0JCQkJCWdv
dG8gbDM3MwotCQkJCWwzNzI6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24z
NzIsIHRva2VuSW5kZXgzNzIKKwkJCQkJZ290byBsMzkxCisJCQkJbDM5MDoKKwkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM5MCwgdG9rZW5JbmRleDM5MAogCQkJCX0KLQkJCWwz
NzM6Ci0JCQlsMzc0OgorCQkJbDM5MToKKwkJCWwzOTI6CiAJCQkJewotCQkJCQlwb3NpdGlvbjM3
NSwgdG9rZW5JbmRleDM3NSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjM5
MywgdG9rZW5JbmRleDM5MyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQl7Ci0JCQkJCQlw
b3NpdGlvbjM3NiwgdG9rZW5JbmRleDM3NiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJ
cG9zaXRpb24zOTQsIHRva2VuSW5kZXgzOTQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJ
CWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVuZSgnOScp
IHsKLQkJCQkJCQlnb3RvIGwzNzcKKwkJCQkJCQlnb3RvIGwzOTUKIAkJCQkJCX0KIAkJCQkJCXBv
c2l0aW9uKysKLQkJCQkJCWdvdG8gbDM3NgotCQkJCQlsMzc3OgotCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjM3NiwgdG9rZW5JbmRleDM3NgorCQkJCQkJZ290byBsMzk0CisJ
CQkJCWwzOTU6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzk0LCB0b2tl
bkluZGV4Mzk0CiAJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdhJykg
fHwgYyA+IHJ1bmUoJ3onKSB7Ci0JCQkJCQkJZ290byBsMzc1CisJCQkJCQkJZ290byBsMzkzCiAJ
CQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCiAJCQkJCX0KLQkJCQlsMzc2OgotCQkJCQlnb3RvIGwz
NzQKLQkJCQlsMzc1OgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzc1LCB0
b2tlbkluZGV4Mzc1CisJCQkJbDM5NDoKKwkJCQkJZ290byBsMzkyCisJCQkJbDM5MzoKKwkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM5MywgdG9rZW5JbmRleDM5MwogCQkJCX0K
IAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ30nKSB7Ci0JCQkJCWdvdG8gbDM2OAor
CQkJCQlnb3RvIGwzODYKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwotCQkJCWFkZChydWxlQVZYNTEy
VG9rZW4sIHBvc2l0aW9uMzY5KQorCQkJCWFkZChydWxlQVZYNTEyVG9rZW4sIHBvc2l0aW9uMzg3
KQogCQkJfQogCQkJcmV0dXJuIHRydWUKLQkJbDM2ODoKLQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4
ID0gcG9zaXRpb24zNjgsIHRva2VuSW5kZXgzNjgKKwkJbDM4NjoKKwkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb24zODYsIHRva2VuSW5kZXgzODYKIAkJCXJldHVybiBmYWxzZQogCQl9
LAogCQkvKiAyOSBUT0NSZWZIaWdoIDwtIDwoJy4nICdUJyAnTycgJ0MnICcuJyAnLScgKCgnMCcg
J2InKSAvICgnLicgJ0wnIChbYS16XSAvIFtBLVpdIC8gJ18nIC8gWzAtOV0pKykpICgnQCcgKCdo
JyAvICdIJykgKCdhJyAvICdBJykpKT4gKi8KIAkJZnVuYygpIGJvb2wgewotCQkJcG9zaXRpb24z
NzgsIHRva2VuSW5kZXgzNzggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCXBvc2l0aW9uMzk2
LCB0b2tlbkluZGV4Mzk2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQl7Ci0JCQkJcG9zaXRp
b24zNzkgOj0gcG9zaXRpb24KKwkJCQlwb3NpdGlvbjM5NyA6PSBwb3NpdGlvbgogCQkJCWlmIGJ1
ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnLicpIHsKLQkJCQkJZ290byBsMzc4CisJCQkJCWdvdG8g
bDM5NgogCQkJCX0KIAkJCQlwb3NpdGlvbisrCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCdUJykgewotCQkJCQlnb3RvIGwzNzgKKwkJCQkJZ290byBsMzk2CiAJCQkJfQogCQkJCXBv
c2l0aW9uKysKIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ08nKSB7Ci0JCQkJCWdv
dG8gbDM3OAorCQkJCQlnb3RvIGwzOTYKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCWlmIGJ1
ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnQycpIHsKLQkJCQkJZ290byBsMzc4CisJCQkJCWdvdG8g
bDM5NgogCQkJCX0KIAkJCQlwb3NpdGlvbisrCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCcuJykgewotCQkJCQlnb3RvIGwzNzgKKwkJCQkJZ290byBsMzk2CiAJCQkJfQogCQkJCXBv
c2l0aW9uKysKIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJy0nKSB7Ci0JCQkJCWdv
dG8gbDM3OAorCQkJCQlnb3RvIGwzOTYKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCXsKLQkJ
CQkJcG9zaXRpb24zODAsIHRva2VuSW5kZXgzODAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJ
CQkJcG9zaXRpb24zOTgsIHRva2VuSW5kZXgzOTggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJ
CQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcwJykgewotCQkJCQkJZ290byBsMzgxCisJ
CQkJCQlnb3RvIGwzOTkKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCiAJCQkJCWlmIGJ1ZmZlcltw
b3NpdGlvbl0gIT0gcnVuZSgnYicpIHsKLQkJCQkJCWdvdG8gbDM4MQorCQkJCQkJZ290byBsMzk5
CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwotCQkJCQlnb3RvIGwzODAKLQkJCQlsMzgxOgotCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzgwLCB0b2tlbkluZGV4MzgwCisJCQkJ
CWdvdG8gbDM5OAorCQkJCWwzOTk6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b24zOTgsIHRva2VuSW5kZXgzOTgKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcu
JykgewotCQkJCQkJZ290byBsMzc4CisJCQkJCQlnb3RvIGwzOTYKIAkJCQkJfQogCQkJCQlwb3Np
dGlvbisrCiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnTCcpIHsKLQkJCQkJCWdv
dG8gbDM3OAorCQkJCQkJZ290byBsMzk2CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCQl7
Ci0JCQkJCQlwb3NpdGlvbjM4NCwgdG9rZW5JbmRleDM4NCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRl
eAorCQkJCQkJcG9zaXRpb240MDIsIHRva2VuSW5kZXg0MDIgOj0gcG9zaXRpb24sIHRva2VuSW5k
ZXgKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ2EnKSB8fCBjID4g
cnVuZSgneicpIHsKLQkJCQkJCQlnb3RvIGwzODUKKwkJCQkJCQlnb3RvIGw0MDMKIAkJCQkJCX0K
IAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdvdG8gbDM4NAotCQkJCQlsMzg1OgotCQkJCQkJcG9z
aXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM4NCwgdG9rZW5JbmRleDM4NAorCQkJCQkJZ290
byBsNDAyCisJCQkJCWw0MDM6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9u
NDAyLCB0b2tlbkluZGV4NDAyCiAJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBy
dW5lKCdBJykgfHwgYyA+IHJ1bmUoJ1onKSB7Ci0JCQkJCQkJZ290byBsMzg2CisJCQkJCQkJZ290
byBsNDA0CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGwzODQKLQkJCQkJ
bDM4NjoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb24zODQsIHRva2VuSW5k
ZXgzODQKKwkJCQkJCWdvdG8gbDQwMgorCQkJCQlsNDA0OgorCQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjQwMiwgdG9rZW5JbmRleDQwMgogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0
aW9uXSAhPSBydW5lKCdfJykgewotCQkJCQkJCWdvdG8gbDM4NworCQkJCQkJCWdvdG8gbDQwNQog
CQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsMzg0Ci0JCQkJCWwzODc6Ci0J
CQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzg0LCB0b2tlbkluZGV4Mzg0CisJ
CQkJCQlnb3RvIGw0MDIKKwkJCQkJbDQwNToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb240MDIsIHRva2VuSW5kZXg0MDIKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9u
XTsgYyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVuZSgnOScpIHsKLQkJCQkJCQlnb3RvIGwzNzgKKwkJ
CQkJCQlnb3RvIGwzOTYKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKIAkJCQkJfQotCQkJCWwz
ODQ6Ci0JCQkJbDM4MjoKKwkJCQlsNDAyOgorCQkJCWw0MDA6CiAJCQkJCXsKLQkJCQkJCXBvc2l0
aW9uMzgzLCB0b2tlbkluZGV4MzgzIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3Np
dGlvbjQwMSwgdG9rZW5JbmRleDQwMSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJewot
CQkJCQkJCXBvc2l0aW9uMzg4LCB0b2tlbkluZGV4Mzg4IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4
CisJCQkJCQkJcG9zaXRpb240MDYsIHRva2VuSW5kZXg0MDYgOj0gcG9zaXRpb24sIHRva2VuSW5k
ZXgKIAkJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdhJykgfHwgYyA+
IHJ1bmUoJ3onKSB7Ci0JCQkJCQkJCWdvdG8gbDM4OQorCQkJCQkJCQlnb3RvIGw0MDcKIAkJCQkJ
CQl9CiAJCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJCWdvdG8gbDM4OAotCQkJCQkJbDM4OToKLQkJ
CQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzg4LCB0b2tlbkluZGV4Mzg4CisJ
CQkJCQkJZ290byBsNDA2CisJCQkJCQlsNDA3OgorCQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4
ID0gcG9zaXRpb240MDYsIHRva2VuSW5kZXg0MDYKIAkJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3Np
dGlvbl07IGMgPCBydW5lKCdBJykgfHwgYyA+IHJ1bmUoJ1onKSB7Ci0JCQkJCQkJCWdvdG8gbDM5
MAorCQkJCQkJCQlnb3RvIGw0MDgKIAkJCQkJCQl9CiAJCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJ
CWdvdG8gbDM4OAotCQkJCQkJbDM5MDoKLQkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uMzg4LCB0b2tlbkluZGV4Mzg4CisJCQkJCQkJZ290byBsNDA2CisJCQkJCQlsNDA4Ogor
CQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MDYsIHRva2VuSW5kZXg0MDYK
IAkJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ18nKSB7Ci0JCQkJCQkJCWdvdG8g
bDM5MQorCQkJCQkJCQlnb3RvIGw0MDkKIAkJCQkJCQl9CiAJCQkJCQkJcG9zaXRpb24rKwotCQkJ
CQkJCWdvdG8gbDM4OAotCQkJCQkJbDM5MToKLQkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9
IHBvc2l0aW9uMzg4LCB0b2tlbkluZGV4Mzg4CisJCQkJCQkJZ290byBsNDA2CisJCQkJCQlsNDA5
OgorCQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MDYsIHRva2VuSW5kZXg0
MDYKIAkJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCcwJykgfHwgYyA+
IHJ1bmUoJzknKSB7Ci0JCQkJCQkJCWdvdG8gbDM4MworCQkJCQkJCQlnb3RvIGw0MDEKIAkJCQkJ
CQl9CiAJCQkJCQkJcG9zaXRpb24rKwogCQkJCQkJfQotCQkJCQlsMzg4OgotCQkJCQkJZ290byBs
MzgyCi0JCQkJCWwzODM6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uMzgz
LCB0b2tlbkluZGV4MzgzCisJCQkJCWw0MDY6CisJCQkJCQlnb3RvIGw0MDAKKwkJCQkJbDQwMToK
KwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MDEsIHRva2VuSW5kZXg0MDEK
IAkJCQkJfQogCQkJCX0KLQkJCWwzODA6CisJCQlsMzk4OgogCQkJCWlmIGJ1ZmZlcltwb3NpdGlv
bl0gIT0gcnVuZSgnQCcpIHsKLQkJCQkJZ290byBsMzc4CisJCQkJCWdvdG8gbDM5NgogCQkJCX0K
IAkJCQlwb3NpdGlvbisrCiAJCQkJewotCQkJCQlwb3NpdGlvbjM5MiwgdG9rZW5JbmRleDM5MiA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjQxMCwgdG9rZW5JbmRleDQxMCA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUo
J2gnKSB7Ci0JCQkJCQlnb3RvIGwzOTMKKwkJCQkJCWdvdG8gbDQxMQogCQkJCQl9CiAJCQkJCXBv
c2l0aW9uKysKLQkJCQkJZ290byBsMzkyCi0JCQkJbDM5MzoKLQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjM5MiwgdG9rZW5JbmRleDM5MgorCQkJCQlnb3RvIGw0MTAKKwkJCQls
NDExOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDEwLCB0b2tlbkluZGV4
NDEwCiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnSCcpIHsKLQkJCQkJCWdvdG8g
bDM3OAorCQkJCQkJZ290byBsMzk2CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCX0KLQkJ
CWwzOTI6CisJCQlsNDEwOgogCQkJCXsKLQkJCQkJcG9zaXRpb24zOTQsIHRva2VuSW5kZXgzOTQg
Oj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb240MTIsIHRva2VuSW5kZXg0MTIg
Oj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5l
KCdhJykgewotCQkJCQkJZ290byBsMzk1CisJCQkJCQlnb3RvIGw0MTMKIAkJCQkJfQogCQkJCQlw
b3NpdGlvbisrCi0JCQkJCWdvdG8gbDM5NAotCQkJCWwzOTU6Ci0JCQkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb24zOTQsIHRva2VuSW5kZXgzOTQKKwkJCQkJZ290byBsNDEyCisJCQkJ
bDQxMzoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQxMiwgdG9rZW5JbmRl
eDQxMgogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ0EnKSB7Ci0JCQkJCQlnb3Rv
IGwzNzgKKwkJCQkJCWdvdG8gbDM5NgogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQl9Ci0J
CQlsMzk0OgotCQkJCWFkZChydWxlVE9DUmVmSGlnaCwgcG9zaXRpb24zNzkpCisJCQlsNDEyOgor
CQkJCWFkZChydWxlVE9DUmVmSGlnaCwgcG9zaXRpb24zOTcpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1
ZQotCQlsMzc4OgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM3OCwgdG9rZW5J
bmRleDM3OAorCQlsMzk2OgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM5Niwg
dG9rZW5JbmRleDM5NgogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDMwIFRPQ1JlZkxvdyA8
LSA8KCcuJyAnVCcgJ08nICdDJyAnLicgJy0nICgoJzAnICdiJykgLyAoJy4nICdMJyAoW2Etel0g
LyBbQS1aXSAvICdfJyAvIFswLTldKSspKSAoJ0AnICgnbCcgLyAnTCcpKSk+ICovCiAJCWZ1bmMo
KSBib29sIHsKLQkJCXBvc2l0aW9uMzk2LCB0b2tlbkluZGV4Mzk2IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CisJCQlwb3NpdGlvbjQxNCwgdG9rZW5JbmRleDQxNCA6PSBwb3NpdGlvbiwgdG9rZW5J
bmRleAogCQkJewotCQkJCXBvc2l0aW9uMzk3IDo9IHBvc2l0aW9uCisJCQkJcG9zaXRpb240MTUg
Oj0gcG9zaXRpb24KIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJy4nKSB7Ci0JCQkJ
CWdvdG8gbDM5NgorCQkJCQlnb3RvIGw0MTQKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCWlm
IGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnVCcpIHsKLQkJCQkJZ290byBsMzk2CisJCQkJCWdv
dG8gbDQxNAogCQkJCX0KIAkJCQlwb3NpdGlvbisrCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAh
PSBydW5lKCdPJykgewotCQkJCQlnb3RvIGwzOTYKKwkJCQkJZ290byBsNDE0CiAJCQkJfQogCQkJ
CXBvc2l0aW9uKysKIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ0MnKSB7Ci0JCQkJ
CWdvdG8gbDM5NgorCQkJCQlnb3RvIGw0MTQKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCWlm
IGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnLicpIHsKLQkJCQkJZ290byBsMzk2CisJCQkJCWdv
dG8gbDQxNAogCQkJCX0KIAkJCQlwb3NpdGlvbisrCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAh
PSBydW5lKCctJykgewotCQkJCQlnb3RvIGwzOTYKKwkJCQkJZ290byBsNDE0CiAJCQkJfQogCQkJ
CXBvc2l0aW9uKysKIAkJCQl7Ci0JCQkJCXBvc2l0aW9uMzk4LCB0b2tlbkluZGV4Mzk4IDo9IHBv
c2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCXBvc2l0aW9uNDE2LCB0b2tlbkluZGV4NDE2IDo9IHBv
c2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnMCcp
IHsKLQkJCQkJCWdvdG8gbDM5OQorCQkJCQkJZ290byBsNDE3CiAJCQkJCX0KIAkJCQkJcG9zaXRp
b24rKwogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ2InKSB7Ci0JCQkJCQlnb3Rv
IGwzOTkKKwkJCQkJCWdvdG8gbDQxNwogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKLQkJCQkJZ290
byBsMzk4Ci0JCQkJbDM5OToKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjM5
OCwgdG9rZW5JbmRleDM5OAorCQkJCQlnb3RvIGw0MTYKKwkJCQlsNDE3OgorCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDE2LCB0b2tlbkluZGV4NDE2CiAJCQkJCWlmIGJ1ZmZl
cltwb3NpdGlvbl0gIT0gcnVuZSgnLicpIHsKLQkJCQkJCWdvdG8gbDM5NgorCQkJCQkJZ290byBs
NDE0CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9
IHJ1bmUoJ0wnKSB7Ci0JCQkJCQlnb3RvIGwzOTYKKwkJCQkJCWdvdG8gbDQxNAogCQkJCQl9CiAJ
CQkJCXBvc2l0aW9uKysKIAkJCQkJewotCQkJCQkJcG9zaXRpb240MDIsIHRva2VuSW5kZXg0MDIg
Oj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uNDIwLCB0b2tlbkluZGV4NDIw
IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07
IGMgPCBydW5lKCdhJykgfHwgYyA+IHJ1bmUoJ3onKSB7Ci0JCQkJCQkJZ290byBsNDAzCisJCQkJ
CQkJZ290byBsNDIxCiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGw0MDIK
LQkJCQkJbDQwMzoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MDIsIHRv
a2VuSW5kZXg0MDIKKwkJCQkJCWdvdG8gbDQyMAorCQkJCQlsNDIxOgorCQkJCQkJcG9zaXRpb24s
IHRva2VuSW5kZXggPSBwb3NpdGlvbjQyMCwgdG9rZW5JbmRleDQyMAogCQkJCQkJaWYgYyA6PSBi
dWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnQScpIHx8IGMgPiBydW5lKCdaJykgewotCQkJCQkJ
CWdvdG8gbDQwNAorCQkJCQkJCWdvdG8gbDQyMgogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwot
CQkJCQkJZ290byBsNDAyCi0JCQkJCWw0MDQ6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9
IHBvc2l0aW9uNDAyLCB0b2tlbkluZGV4NDAyCisJCQkJCQlnb3RvIGw0MjAKKwkJCQkJbDQyMjoK
KwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MjAsIHRva2VuSW5kZXg0MjAK
IAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnXycpIHsKLQkJCQkJCQlnb3RvIGw0
MDUKKwkJCQkJCQlnb3RvIGw0MjMKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdv
dG8gbDQwMgotCQkJCQlsNDA1OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjQwMiwgdG9rZW5JbmRleDQwMgorCQkJCQkJZ290byBsNDIwCisJCQkJCWw0MjM6CisJCQkJCQlw
b3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDIwLCB0b2tlbkluZGV4NDIwCiAJCQkJCQlp
ZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCcwJykgfHwgYyA+IHJ1bmUoJzknKSB7
Ci0JCQkJCQkJZ290byBsMzk2CisJCQkJCQkJZ290byBsNDE0CiAJCQkJCQl9CiAJCQkJCQlwb3Np
dGlvbisrCiAJCQkJCX0KLQkJCQlsNDAyOgotCQkJCWw0MDA6CisJCQkJbDQyMDoKKwkJCQlsNDE4
OgogCQkJCQl7Ci0JCQkJCQlwb3NpdGlvbjQwMSwgdG9rZW5JbmRleDQwMSA6PSBwb3NpdGlvbiwg
dG9rZW5JbmRleAorCQkJCQkJcG9zaXRpb240MTksIHRva2VuSW5kZXg0MTkgOj0gcG9zaXRpb24s
IHRva2VuSW5kZXgKIAkJCQkJCXsKLQkJCQkJCQlwb3NpdGlvbjQwNiwgdG9rZW5JbmRleDQwNiA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJCXBvc2l0aW9uNDI0LCB0b2tlbkluZGV4NDI0
IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25d
OyBjIDwgcnVuZSgnYScpIHx8IGMgPiBydW5lKCd6JykgewotCQkJCQkJCQlnb3RvIGw0MDcKKwkJ
CQkJCQkJZ290byBsNDI1CiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCQlnb3Rv
IGw0MDYKLQkJCQkJCWw0MDc6Ci0JCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjQwNiwgdG9rZW5JbmRleDQwNgorCQkJCQkJCWdvdG8gbDQyNAorCQkJCQkJbDQyNToKKwkJCQkJ
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDI0LCB0b2tlbkluZGV4NDI0CiAJCQkJ
CQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnQScpIHx8IGMgPiBydW5lKCda
JykgewotCQkJCQkJCQlnb3RvIGw0MDgKKwkJCQkJCQkJZ290byBsNDI2CiAJCQkJCQkJfQogCQkJ
CQkJCXBvc2l0aW9uKysKLQkJCQkJCQlnb3RvIGw0MDYKLQkJCQkJCWw0MDg6Ci0JCQkJCQkJcG9z
aXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQwNiwgdG9rZW5JbmRleDQwNgorCQkJCQkJCWdv
dG8gbDQyNAorCQkJCQkJbDQyNjoKKwkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uNDI0LCB0b2tlbkluZGV4NDI0CiAJCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5l
KCdfJykgewotCQkJCQkJCQlnb3RvIGw0MDkKKwkJCQkJCQkJZ290byBsNDI3CiAJCQkJCQkJfQog
CQkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCQlnb3RvIGw0MDYKLQkJCQkJCWw0MDk6Ci0JCQkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQwNiwgdG9rZW5JbmRleDQwNgorCQkJCQkJ
CWdvdG8gbDQyNAorCQkJCQkJbDQyNzoKKwkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uNDI0LCB0b2tlbkluZGV4NDI0CiAJCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25d
OyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5lKCc5JykgewotCQkJCQkJCQlnb3RvIGw0MDEKKwkJ
CQkJCQkJZ290byBsNDE5CiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysKIAkJCQkJCX0KLQkJ
CQkJbDQwNjoKLQkJCQkJCWdvdG8gbDQwMAotCQkJCQlsNDAxOgotCQkJCQkJcG9zaXRpb24sIHRv
a2VuSW5kZXggPSBwb3NpdGlvbjQwMSwgdG9rZW5JbmRleDQwMQorCQkJCQlsNDI0OgorCQkJCQkJ
Z290byBsNDE4CisJCQkJCWw0MTk6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uNDE5LCB0b2tlbkluZGV4NDE5CiAJCQkJCX0KIAkJCQl9Ci0JCQlsMzk4OgorCQkJbDQxNjoK
IAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ0AnKSB7Ci0JCQkJCWdvdG8gbDM5Ngor
CQkJCQlnb3RvIGw0MTQKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCXsKLQkJCQkJcG9zaXRp
b240MTAsIHRva2VuSW5kZXg0MTAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRp
b240MjgsIHRva2VuSW5kZXg0MjggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYgYnVm
ZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdsJykgewotCQkJCQkJZ290byBsNDExCisJCQkJCQlnb3Rv
IGw0MjkKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCi0JCQkJCWdvdG8gbDQxMAotCQkJCWw0MTE6
Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MTAsIHRva2VuSW5kZXg0MTAK
KwkJCQkJZ290byBsNDI4CisJCQkJbDQyOToKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjQyOCwgdG9rZW5JbmRleDQyOAogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJ0wnKSB7Ci0JCQkJCQlnb3RvIGwzOTYKKwkJCQkJCWdvdG8gbDQxNAogCQkJCQl9CiAJCQkJ
CXBvc2l0aW9uKysKIAkJCQl9Ci0JCQlsNDEwOgotCQkJCWFkZChydWxlVE9DUmVmTG93LCBwb3Np
dGlvbjM5NykKKwkJCWw0Mjg6CisJCQkJYWRkKHJ1bGVUT0NSZWZMb3csIHBvc2l0aW9uNDE1KQog
CQkJfQogCQkJcmV0dXJuIHRydWUKLQkJbDM5NjoKLQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb24zOTYsIHRva2VuSW5kZXgzOTYKKwkJbDQxNDoKKwkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb240MTQsIHRva2VuSW5kZXg0MTQKIAkJCXJldHVybiBmYWxzZQogCQl9LAog
CQkvKiAzMSBJbmRpcmVjdGlvbkluZGljYXRvciA8LSA8JyonPiAqLwogCQlmdW5jKCkgYm9vbCB7
Ci0JCQlwb3NpdGlvbjQxMiwgdG9rZW5JbmRleDQxMiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAor
CQkJcG9zaXRpb240MzAsIHRva2VuSW5kZXg0MzAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJ
CXsKLQkJCQlwb3NpdGlvbjQxMyA6PSBwb3NpdGlvbgorCQkJCXBvc2l0aW9uNDMxIDo9IHBvc2l0
aW9uCiAJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcqJykgewotCQkJCQlnb3RvIGw0
MTIKKwkJCQkJZ290byBsNDMwCiAJCQkJfQogCQkJCXBvc2l0aW9uKysKLQkJCQlhZGQocnVsZUlu
ZGlyZWN0aW9uSW5kaWNhdG9yLCBwb3NpdGlvbjQxMykKKwkJCQlhZGQocnVsZUluZGlyZWN0aW9u
SW5kaWNhdG9yLCBwb3NpdGlvbjQzMSkKIAkJCX0KIAkJCXJldHVybiB0cnVlCi0JCWw0MTI6Ci0J
CQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDEyLCB0b2tlbkluZGV4NDEyCisJCWw0
MzA6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDMwLCB0b2tlbkluZGV4NDMw
CiAJCQlyZXR1cm4gZmFsc2UKIAkJfSwKIAkJLyogMzIgUmVnaXN0ZXJPckNvbnN0YW50IDwtIDwo
KCgnJScgKFthLXpdIC8gW0EtWl0pIChbYS16XSAvIFtBLVpdIC8gKFswLTldIC8gWzAtOV0pKSop
IC8gKCckJz8gKChPZmZzZXQgT2Zmc2V0KSAvIE9mZnNldCkpKSAhKCdmJyAvICdiJyAvICc6JyAv
ICcoJyAvICcrJyAvICctJykpPiAqLwogCQlmdW5jKCkgYm9vbCB7Ci0JCQlwb3NpdGlvbjQxNCwg
dG9rZW5JbmRleDQxNCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJcG9zaXRpb240MzIsIHRv
a2VuSW5kZXg0MzIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCXsKLQkJCQlwb3NpdGlvbjQx
NSA6PSBwb3NpdGlvbgorCQkJCXBvc2l0aW9uNDMzIDo9IHBvc2l0aW9uCiAJCQkJewotCQkJCQlw
b3NpdGlvbjQxNiwgdG9rZW5JbmRleDQxNiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlw
b3NpdGlvbjQzNCwgdG9rZW5JbmRleDQzNCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlp
ZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJyUnKSB7Ci0JCQkJCQlnb3RvIGw0MTcKKwkJCQkJ
CWdvdG8gbDQzNQogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQkJewotCQkJCQkJcG9zaXRp
b240MTgsIHRva2VuSW5kZXg0MTggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0
aW9uNDM2LCB0b2tlbkluZGV4NDM2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBj
IDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdhJykgfHwgYyA+IHJ1bmUoJ3onKSB7Ci0J
CQkJCQkJZ290byBsNDE5CisJCQkJCQkJZ290byBsNDM3CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlv
bisrCi0JCQkJCQlnb3RvIGw0MTgKLQkJCQkJbDQxOToKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb240MTgsIHRva2VuSW5kZXg0MTgKKwkJCQkJCWdvdG8gbDQzNgorCQkJCQls
NDM3OgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQzNiwgdG9rZW5JbmRl
eDQzNgogCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnQScpIHx8IGMg
PiBydW5lKCdaJykgewotCQkJCQkJCWdvdG8gbDQxNworCQkJCQkJCWdvdG8gbDQzNQogCQkJCQkJ
fQogCQkJCQkJcG9zaXRpb24rKwogCQkJCQl9Ci0JCQkJbDQxODoKLQkJCQlsNDIwOgorCQkJCWw0
MzY6CisJCQkJbDQzODoKIAkJCQkJewotCQkJCQkJcG9zaXRpb240MjEsIHRva2VuSW5kZXg0MjEg
Oj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uNDM5LCB0b2tlbkluZGV4NDM5
IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQl7Ci0JCQkJCQkJcG9zaXRpb240MjIsIHRv
a2VuSW5kZXg0MjIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCQlwb3NpdGlvbjQ0MCwg
dG9rZW5JbmRleDQ0MCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJCWlmIGMgOj0gYnVm
ZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ2EnKSB8fCBjID4gcnVuZSgneicpIHsKLQkJCQkJCQkJ
Z290byBsNDIzCisJCQkJCQkJCWdvdG8gbDQ0MQogCQkJCQkJCX0KIAkJCQkJCQlwb3NpdGlvbisr
Ci0JCQkJCQkJZ290byBsNDIyCi0JCQkJCQlsNDIzOgotCQkJCQkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb240MjIsIHRva2VuSW5kZXg0MjIKKwkJCQkJCQlnb3RvIGw0NDAKKwkJCQkJ
CWw0NDE6CisJCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ0MCwgdG9rZW5J
bmRleDQ0MAogCQkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ0EnKSB8
fCBjID4gcnVuZSgnWicpIHsKLQkJCQkJCQkJZ290byBsNDI0CisJCQkJCQkJCWdvdG8gbDQ0Mgog
CQkJCQkJCX0KIAkJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQkJZ290byBsNDIyCi0JCQkJCQlsNDI0
OgotCQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MjIsIHRva2VuSW5kZXg0
MjIKKwkJCQkJCQlnb3RvIGw0NDAKKwkJCQkJCWw0NDI6CisJCQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjQ0MCwgdG9rZW5JbmRleDQ0MAogCQkJCQkJCXsKLQkJCQkJCQkJcG9z
aXRpb240MjUsIHRva2VuSW5kZXg0MjUgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCQkJ
cG9zaXRpb240NDMsIHRva2VuSW5kZXg0NDMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJ
CQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5lKCc5
JykgewotCQkJCQkJCQkJZ290byBsNDI2CisJCQkJCQkJCQlnb3RvIGw0NDQKIAkJCQkJCQkJfQog
CQkJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQkJCWdvdG8gbDQyNQotCQkJCQkJCWw0MjY6Ci0JCQkJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MjUsIHRva2VuSW5kZXg0MjUKKwkJ
CQkJCQkJZ290byBsNDQzCisJCQkJCQkJbDQ0NDoKKwkJCQkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjQ0MywgdG9rZW5JbmRleDQ0MwogCQkJCQkJCQlpZiBjIDo9IGJ1ZmZlcltw
b3NpdGlvbl07IGMgPCBydW5lKCcwJykgfHwgYyA+IHJ1bmUoJzknKSB7Ci0JCQkJCQkJCQlnb3Rv
IGw0MjEKKwkJCQkJCQkJCWdvdG8gbDQzOQogCQkJCQkJCQl9CiAJCQkJCQkJCXBvc2l0aW9uKysK
IAkJCQkJCQl9Ci0JCQkJCQlsNDI1OgorCQkJCQkJbDQ0MzoKIAkJCQkJCX0KLQkJCQkJbDQyMjoK
LQkJCQkJCWdvdG8gbDQyMAotCQkJCQlsNDIxOgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXgg
PSBwb3NpdGlvbjQyMSwgdG9rZW5JbmRleDQyMQorCQkJCQlsNDQwOgorCQkJCQkJZ290byBsNDM4
CisJCQkJCWw0Mzk6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDM5LCB0
b2tlbkluZGV4NDM5CiAJCQkJCX0KLQkJCQkJZ290byBsNDE2Ci0JCQkJbDQxNzoKLQkJCQkJcG9z
aXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQxNiwgdG9rZW5JbmRleDQxNgorCQkJCQlnb3Rv
IGw0MzQKKwkJCQlsNDM1OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDM0
LCB0b2tlbkluZGV4NDM0CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9uNDI3LCB0b2tlbkluZGV4NDI3
IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3NpdGlvbjQ0NSwgdG9rZW5JbmRleDQ0
NSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCckJykgewotCQkJCQkJCWdvdG8gbDQyNworCQkJCQkJCWdvdG8gbDQ0NQogCQkJCQkJfQog
CQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsNDI4Ci0JCQkJCWw0Mjc6Ci0JCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDI3LCB0b2tlbkluZGV4NDI3CisJCQkJCQlnb3Rv
IGw0NDYKKwkJCQkJbDQ0NToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240
NDUsIHRva2VuSW5kZXg0NDUKIAkJCQkJfQotCQkJCWw0Mjg6CisJCQkJbDQ0NjoKIAkJCQkJewot
CQkJCQkJcG9zaXRpb240MjksIHRva2VuSW5kZXg0MjkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
KwkJCQkJCXBvc2l0aW9uNDQ3LCB0b2tlbkluZGV4NDQ3IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4
CiAJCQkJCQlpZiAhX3J1bGVzW3J1bGVPZmZzZXRdKCkgewotCQkJCQkJCWdvdG8gbDQzMAorCQkJ
CQkJCWdvdG8gbDQ0OAogCQkJCQkJfQogCQkJCQkJaWYgIV9ydWxlc1tydWxlT2Zmc2V0XSgpIHsK
LQkJCQkJCQlnb3RvIGw0MzAKKwkJCQkJCQlnb3RvIGw0NDgKIAkJCQkJCX0KLQkJCQkJCWdvdG8g
bDQyOQotCQkJCQlsNDMwOgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQy
OSwgdG9rZW5JbmRleDQyOQorCQkJCQkJZ290byBsNDQ3CisJCQkJCWw0NDg6CisJCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDQ3LCB0b2tlbkluZGV4NDQ3CiAJCQkJCQlpZiAh
X3J1bGVzW3J1bGVPZmZzZXRdKCkgewotCQkJCQkJCWdvdG8gbDQxNAorCQkJCQkJCWdvdG8gbDQz
MgogCQkJCQkJfQogCQkJCQl9Ci0JCQkJbDQyOToKKwkJCQlsNDQ3OgogCQkJCX0KLQkJCWw0MTY6
CisJCQlsNDM0OgogCQkJCXsKLQkJCQkJcG9zaXRpb240MzEsIHRva2VuSW5kZXg0MzEgOj0gcG9z
aXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb240NDksIHRva2VuSW5kZXg0NDkgOj0gcG9z
aXRpb24sIHRva2VuSW5kZXgKIAkJCQkJewotCQkJCQkJcG9zaXRpb240MzIsIHRva2VuSW5kZXg0
MzIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uNDUwLCB0b2tlbkluZGV4
NDUwIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9
IHJ1bmUoJ2YnKSB7Ci0JCQkJCQkJZ290byBsNDMzCisJCQkJCQkJZ290byBsNDUxCiAJCQkJCQl9
CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGw0MzIKLQkJCQkJbDQzMzoKLQkJCQkJCXBv
c2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240MzIsIHRva2VuSW5kZXg0MzIKKwkJCQkJCWdv
dG8gbDQ1MAorCQkJCQlsNDUxOgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjQ1MCwgdG9rZW5JbmRleDQ1MAogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCdi
JykgewotCQkJCQkJCWdvdG8gbDQzNAorCQkJCQkJCWdvdG8gbDQ1MgogCQkJCQkJfQogCQkJCQkJ
cG9zaXRpb24rKwotCQkJCQkJZ290byBsNDMyCi0JCQkJCWw0MzQ6Ci0JCQkJCQlwb3NpdGlvbiwg
dG9rZW5JbmRleCA9IHBvc2l0aW9uNDMyLCB0b2tlbkluZGV4NDMyCisJCQkJCQlnb3RvIGw0NTAK
KwkJCQkJbDQ1MjoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NTAsIHRv
a2VuSW5kZXg0NTAKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnOicpIHsKLQkJ
CQkJCQlnb3RvIGw0MzUKKwkJCQkJCQlnb3RvIGw0NTMKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9u
KysKLQkJCQkJCWdvdG8gbDQzMgotCQkJCQlsNDM1OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjQzMiwgdG9rZW5JbmRleDQzMgorCQkJCQkJZ290byBsNDUwCisJCQkJCWw0
NTM6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDUwLCB0b2tlbkluZGV4
NDUwCiAJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJygnKSB7Ci0JCQkJCQkJZ290
byBsNDM2CisJCQkJCQkJZ290byBsNDU0CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJ
CQlnb3RvIGw0MzIKLQkJCQkJbDQzNjoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb240MzIsIHRva2VuSW5kZXg0MzIKKwkJCQkJCWdvdG8gbDQ1MAorCQkJCQlsNDU0OgorCQkJ
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ1MCwgdG9rZW5JbmRleDQ1MAogCQkJ
CQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcrJykgewotCQkJCQkJCWdvdG8gbDQzNwor
CQkJCQkJCWdvdG8gbDQ1NQogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBs
NDMyCi0JCQkJCWw0Mzc6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDMy
LCB0b2tlbkluZGV4NDMyCisJCQkJCQlnb3RvIGw0NTAKKwkJCQkJbDQ1NToKKwkJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NTAsIHRva2VuSW5kZXg0NTAKIAkJCQkJCWlmIGJ1
ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnLScpIHsKLQkJCQkJCQlnb3RvIGw0MzEKKwkJCQkJCQln
b3RvIGw0NDkKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKIAkJCQkJfQotCQkJCWw0MzI6Ci0J
CQkJCWdvdG8gbDQxNAotCQkJCWw0MzE6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb240MzEsIHRva2VuSW5kZXg0MzEKKwkJCQlsNDUwOgorCQkJCQlnb3RvIGw0MzIKKwkJCQls
NDQ5OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDQ5LCB0b2tlbkluZGV4
NDQ5CiAJCQkJfQotCQkJCWFkZChydWxlUmVnaXN0ZXJPckNvbnN0YW50LCBwb3NpdGlvbjQxNSkK
KwkJCQlhZGQocnVsZVJlZ2lzdGVyT3JDb25zdGFudCwgcG9zaXRpb240MzMpCiAJCQl9CiAJCQly
ZXR1cm4gdHJ1ZQotCQlsNDE0OgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQx
NCwgdG9rZW5JbmRleDQxNAorCQlsNDMyOgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjQzMiwgdG9rZW5JbmRleDQzMgogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDMzIE1l
bW9yeVJlZiA8LSA8KChTeW1ib2xSZWYgQmFzZUluZGV4U2NhbGUpIC8gU3ltYm9sUmVmIC8gKE9m
ZnNldCogQmFzZUluZGV4U2NhbGUpIC8gKFNlZ21lbnRSZWdpc3RlciBPZmZzZXQgQmFzZUluZGV4
U2NhbGUpIC8gKFNlZ21lbnRSZWdpc3RlciBCYXNlSW5kZXhTY2FsZSkgLyAoU2VnbWVudFJlZ2lz
dGVyIE9mZnNldCkgLyBCYXNlSW5kZXhTY2FsZSk+ICovCiAJCWZ1bmMoKSBib29sIHsKLQkJCXBv
c2l0aW9uNDM4LCB0b2tlbkluZGV4NDM4IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQlwb3Np
dGlvbjQ1NiwgdG9rZW5JbmRleDQ1NiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJewotCQkJ
CXBvc2l0aW9uNDM5IDo9IHBvc2l0aW9uCisJCQkJcG9zaXRpb240NTcgOj0gcG9zaXRpb24KIAkJ
CQl7Ci0JCQkJCXBvc2l0aW9uNDQwLCB0b2tlbkluZGV4NDQwIDo9IHBvc2l0aW9uLCB0b2tlbklu
ZGV4CisJCQkJCXBvc2l0aW9uNDU4LCB0b2tlbkluZGV4NDU4IDo9IHBvc2l0aW9uLCB0b2tlbklu
ZGV4CiAJCQkJCWlmICFfcnVsZXNbcnVsZVN5bWJvbFJlZl0oKSB7Ci0JCQkJCQlnb3RvIGw0NDEK
KwkJCQkJCWdvdG8gbDQ1OQogCQkJCQl9CiAJCQkJCWlmICFfcnVsZXNbcnVsZUJhc2VJbmRleFNj
YWxlXSgpIHsKLQkJCQkJCWdvdG8gbDQ0MQorCQkJCQkJZ290byBsNDU5CiAJCQkJCX0KLQkJCQkJ
Z290byBsNDQwCi0JCQkJbDQ0MToKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjQ0MCwgdG9rZW5JbmRleDQ0MAorCQkJCQlnb3RvIGw0NTgKKwkJCQlsNDU5OgorCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDU4LCB0b2tlbkluZGV4NDU4CiAJCQkJCWlmICFf
cnVsZXNbcnVsZVN5bWJvbFJlZl0oKSB7Ci0JCQkJCQlnb3RvIGw0NDIKKwkJCQkJCWdvdG8gbDQ2
MAogCQkJCQl9Ci0JCQkJCWdvdG8gbDQ0MAotCQkJCWw0NDI6Ci0JCQkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb240NDAsIHRva2VuSW5kZXg0NDAKLQkJCQlsNDQ0OgorCQkJCQlnb3Rv
IGw0NTgKKwkJCQlsNDYwOgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDU4
LCB0b2tlbkluZGV4NDU4CisJCQkJbDQ2MjoKIAkJCQkJewotCQkJCQkJcG9zaXRpb240NDUsIHRv
a2VuSW5kZXg0NDUgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uNDYzLCB0
b2tlbkluZGV4NDYzIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiAhX3J1bGVzW3J1
bGVPZmZzZXRdKCkgewotCQkJCQkJCWdvdG8gbDQ0NQorCQkJCQkJCWdvdG8gbDQ2MwogCQkJCQkJ
fQotCQkJCQkJZ290byBsNDQ0Ci0JCQkJCWw0NDU6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRl
eCA9IHBvc2l0aW9uNDQ1LCB0b2tlbkluZGV4NDQ1CisJCQkJCQlnb3RvIGw0NjIKKwkJCQkJbDQ2
MzoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NjMsIHRva2VuSW5kZXg0
NjMKIAkJCQkJfQogCQkJCQlpZiAhX3J1bGVzW3J1bGVCYXNlSW5kZXhTY2FsZV0oKSB7Ci0JCQkJ
CQlnb3RvIGw0NDMKKwkJCQkJCWdvdG8gbDQ2MQogCQkJCQl9Ci0JCQkJCWdvdG8gbDQ0MAotCQkJ
CWw0NDM6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NDAsIHRva2VuSW5k
ZXg0NDAKKwkJCQkJZ290byBsNDU4CisJCQkJbDQ2MToKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjQ1OCwgdG9rZW5JbmRleDQ1OAogCQkJCQlpZiAhX3J1bGVzW3J1bGVTZWdt
ZW50UmVnaXN0ZXJdKCkgewotCQkJCQkJZ290byBsNDQ2CisJCQkJCQlnb3RvIGw0NjQKIAkJCQkJ
fQogCQkJCQlpZiAhX3J1bGVzW3J1bGVPZmZzZXRdKCkgewotCQkJCQkJZ290byBsNDQ2CisJCQkJ
CQlnb3RvIGw0NjQKIAkJCQkJfQogCQkJCQlpZiAhX3J1bGVzW3J1bGVCYXNlSW5kZXhTY2FsZV0o
KSB7Ci0JCQkJCQlnb3RvIGw0NDYKKwkJCQkJCWdvdG8gbDQ2NAogCQkJCQl9Ci0JCQkJCWdvdG8g
bDQ0MAotCQkJCWw0NDY6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NDAs
IHRva2VuSW5kZXg0NDAKKwkJCQkJZ290byBsNDU4CisJCQkJbDQ2NDoKKwkJCQkJcG9zaXRpb24s
IHRva2VuSW5kZXggPSBwb3NpdGlvbjQ1OCwgdG9rZW5JbmRleDQ1OAogCQkJCQlpZiAhX3J1bGVz
W3J1bGVTZWdtZW50UmVnaXN0ZXJdKCkgewotCQkJCQkJZ290byBsNDQ3CisJCQkJCQlnb3RvIGw0
NjUKIAkJCQkJfQogCQkJCQlpZiAhX3J1bGVzW3J1bGVCYXNlSW5kZXhTY2FsZV0oKSB7Ci0JCQkJ
CQlnb3RvIGw0NDcKKwkJCQkJCWdvdG8gbDQ2NQogCQkJCQl9Ci0JCQkJCWdvdG8gbDQ0MAotCQkJ
CWw0NDc6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NDAsIHRva2VuSW5k
ZXg0NDAKKwkJCQkJZ290byBsNDU4CisJCQkJbDQ2NToKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5k
ZXggPSBwb3NpdGlvbjQ1OCwgdG9rZW5JbmRleDQ1OAogCQkJCQlpZiAhX3J1bGVzW3J1bGVTZWdt
ZW50UmVnaXN0ZXJdKCkgewotCQkJCQkJZ290byBsNDQ4CisJCQkJCQlnb3RvIGw0NjYKIAkJCQkJ
fQogCQkJCQlpZiAhX3J1bGVzW3J1bGVPZmZzZXRdKCkgewotCQkJCQkJZ290byBsNDQ4CisJCQkJ
CQlnb3RvIGw0NjYKIAkJCQkJfQotCQkJCQlnb3RvIGw0NDAKLQkJCQlsNDQ4OgotCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDQwLCB0b2tlbkluZGV4NDQwCisJCQkJCWdvdG8g
bDQ1OAorCQkJCWw0NjY6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NTgs
IHRva2VuSW5kZXg0NTgKIAkJCQkJaWYgIV9ydWxlc1tydWxlQmFzZUluZGV4U2NhbGVdKCkgewot
CQkJCQkJZ290byBsNDM4CisJCQkJCQlnb3RvIGw0NTYKIAkJCQkJfQogCQkJCX0KLQkJCWw0NDA6
Ci0JCQkJYWRkKHJ1bGVNZW1vcnlSZWYsIHBvc2l0aW9uNDM5KQorCQkJbDQ1ODoKKwkJCQlhZGQo
cnVsZU1lbW9yeVJlZiwgcG9zaXRpb240NTcpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsNDM4
OgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQzOCwgdG9rZW5JbmRleDQzOAor
CQlsNDU2OgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ1NiwgdG9rZW5JbmRl
eDQ1NgogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDM0IFN5bWJvbFJlZiA8LSA8KChPZmZz
ZXQqICcrJyk/IChMb2NhbFN5bWJvbCAvIFN5bWJvbE5hbWUpIE9mZnNldCogKCdAJyBTZWN0aW9u
IE9mZnNldCopPyk+ICovCiAJCWZ1bmMoKSBib29sIHsKLQkJCXBvc2l0aW9uNDQ5LCB0b2tlbklu
ZGV4NDQ5IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQlwb3NpdGlvbjQ2NywgdG9rZW5JbmRl
eDQ2NyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJewotCQkJCXBvc2l0aW9uNDUwIDo9IHBv
c2l0aW9uCisJCQkJcG9zaXRpb240NjggOj0gcG9zaXRpb24KIAkJCQl7Ci0JCQkJCXBvc2l0aW9u
NDUxLCB0b2tlbkluZGV4NDUxIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4Ci0JCQkJbDQ1MzoKKwkJ
CQkJcG9zaXRpb240NjksIHRva2VuSW5kZXg0NjkgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJ
CQlsNDcxOgogCQkJCQl7Ci0JCQkJCQlwb3NpdGlvbjQ1NCwgdG9rZW5JbmRleDQ1NCA6PSBwb3Np
dGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRpb240NzIsIHRva2VuSW5kZXg0NzIgOj0gcG9z
aXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCWlmICFfcnVsZXNbcnVsZU9mZnNldF0oKSB7Ci0JCQkJ
CQkJZ290byBsNDU0CisJCQkJCQkJZ290byBsNDcyCiAJCQkJCQl9Ci0JCQkJCQlnb3RvIGw0NTMK
LQkJCQkJbDQ1NDoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NTQsIHRv
a2VuSW5kZXg0NTQKKwkJCQkJCWdvdG8gbDQ3MQorCQkJCQlsNDcyOgorCQkJCQkJcG9zaXRpb24s
IHRva2VuSW5kZXggPSBwb3NpdGlvbjQ3MiwgdG9rZW5JbmRleDQ3MgogCQkJCQl9CiAJCQkJCWlm
IGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnKycpIHsKLQkJCQkJCWdvdG8gbDQ1MQorCQkJCQkJ
Z290byBsNDY5CiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwotCQkJCQlnb3RvIGw0NTIKLQkJCQls
NDUxOgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDUxLCB0b2tlbkluZGV4
NDUxCisJCQkJCWdvdG8gbDQ3MAorCQkJCWw0Njk6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4
ID0gcG9zaXRpb240NjksIHRva2VuSW5kZXg0NjkKIAkJCQl9Ci0JCQlsNDUyOgorCQkJbDQ3MDoK
IAkJCQl7Ci0JCQkJCXBvc2l0aW9uNDU1LCB0b2tlbkluZGV4NDU1IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CisJCQkJCXBvc2l0aW9uNDczLCB0b2tlbkluZGV4NDczIDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CiAJCQkJCWlmICFfcnVsZXNbcnVsZUxvY2FsU3ltYm9sXSgpIHsKLQkJCQkJCWdvdG8g
bDQ1NgorCQkJCQkJZ290byBsNDc0CiAJCQkJCX0KLQkJCQkJZ290byBsNDU1Ci0JCQkJbDQ1NjoK
LQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ1NSwgdG9rZW5JbmRleDQ1NQor
CQkJCQlnb3RvIGw0NzMKKwkJCQlsNDc0OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uNDczLCB0b2tlbkluZGV4NDczCiAJCQkJCWlmICFfcnVsZXNbcnVsZVN5bWJvbE5hbWVd
KCkgewotCQkJCQkJZ290byBsNDQ5CisJCQkJCQlnb3RvIGw0NjcKIAkJCQkJfQogCQkJCX0KLQkJ
CWw0NTU6Ci0JCQlsNDU3OgorCQkJbDQ3MzoKKwkJCWw0NzU6CiAJCQkJewotCQkJCQlwb3NpdGlv
bjQ1OCwgdG9rZW5JbmRleDQ1OCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlv
bjQ3NiwgdG9rZW5JbmRleDQ3NiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiAhX3J1
bGVzW3J1bGVPZmZzZXRdKCkgewotCQkJCQkJZ290byBsNDU4CisJCQkJCQlnb3RvIGw0NzYKIAkJ
CQkJfQotCQkJCQlnb3RvIGw0NTcKLQkJCQlsNDU4OgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRl
eCA9IHBvc2l0aW9uNDU4LCB0b2tlbkluZGV4NDU4CisJCQkJCWdvdG8gbDQ3NQorCQkJCWw0NzY6
CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NzYsIHRva2VuSW5kZXg0NzYK
IAkJCQl9CiAJCQkJewotCQkJCQlwb3NpdGlvbjQ1OSwgdG9rZW5JbmRleDQ1OSA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjQ3NywgdG9rZW5JbmRleDQ3NyA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ0AnKSB7Ci0J
CQkJCQlnb3RvIGw0NTkKKwkJCQkJCWdvdG8gbDQ3NwogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysK
IAkJCQkJaWYgIV9ydWxlc1tydWxlU2VjdGlvbl0oKSB7Ci0JCQkJCQlnb3RvIGw0NTkKKwkJCQkJ
CWdvdG8gbDQ3NwogCQkJCQl9Ci0JCQkJbDQ2MToKKwkJCQlsNDc5OgogCQkJCQl7Ci0JCQkJCQlw
b3NpdGlvbjQ2MiwgdG9rZW5JbmRleDQ2MiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJ
cG9zaXRpb240ODAsIHRva2VuSW5kZXg0ODAgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJ
CWlmICFfcnVsZXNbcnVsZU9mZnNldF0oKSB7Ci0JCQkJCQkJZ290byBsNDYyCisJCQkJCQkJZ290
byBsNDgwCiAJCQkJCQl9Ci0JCQkJCQlnb3RvIGw0NjEKLQkJCQkJbDQ2MjoKLQkJCQkJCXBvc2l0
aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NjIsIHRva2VuSW5kZXg0NjIKKwkJCQkJCWdvdG8g
bDQ3OQorCQkJCQlsNDgwOgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ4
MCwgdG9rZW5JbmRleDQ4MAogCQkJCQl9Ci0JCQkJCWdvdG8gbDQ2MAotCQkJCWw0NTk6Ci0JCQkJ
CXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NTksIHRva2VuSW5kZXg0NTkKKwkJCQkJ
Z290byBsNDc4CisJCQkJbDQ3NzoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjQ3NywgdG9rZW5JbmRleDQ3NwogCQkJCX0KLQkJCWw0NjA6Ci0JCQkJYWRkKHJ1bGVTeW1ib2xS
ZWYsIHBvc2l0aW9uNDUwKQorCQkJbDQ3ODoKKwkJCQlhZGQocnVsZVN5bWJvbFJlZiwgcG9zaXRp
b240NjgpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsNDQ5OgotCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjQ0OSwgdG9rZW5JbmRleDQ0OQorCQlsNDY3OgorCQkJcG9zaXRpb24s
IHRva2VuSW5kZXggPSBwb3NpdGlvbjQ2NywgdG9rZW5JbmRleDQ2NwogCQkJcmV0dXJuIGZhbHNl
CiAJCX0sCiAJCS8qIDM1IEJhc2VJbmRleFNjYWxlIDwtIDwoJygnIFJlZ2lzdGVyT3JDb25zdGFu
dD8gV1M/ICgnLCcgV1M/IFJlZ2lzdGVyT3JDb25zdGFudCBXUz8gKCcsJyBbMC05XSspPyk/ICcp
Jyk+ICovCiAJCWZ1bmMoKSBib29sIHsKLQkJCXBvc2l0aW9uNDYzLCB0b2tlbkluZGV4NDYzIDo9
IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQlwb3NpdGlvbjQ4MSwgdG9rZW5JbmRleDQ4MSA6PSBw
b3NpdGlvbiwgdG9rZW5JbmRleAogCQkJewotCQkJCXBvc2l0aW9uNDY0IDo9IHBvc2l0aW9uCisJ
CQkJcG9zaXRpb240ODIgOj0gcG9zaXRpb24KIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJygnKSB7Ci0JCQkJCWdvdG8gbDQ2MworCQkJCQlnb3RvIGw0ODEKIAkJCQl9CiAJCQkJcG9z
aXRpb24rKwogCQkJCXsKLQkJCQkJcG9zaXRpb240NjUsIHRva2VuSW5kZXg0NjUgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb240ODMsIHRva2VuSW5kZXg0ODMgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKIAkJCQkJaWYgIV9ydWxlc1tydWxlUmVnaXN0ZXJPckNvbnN0YW50XSgp
IHsKLQkJCQkJCWdvdG8gbDQ2NQorCQkJCQkJZ290byBsNDgzCiAJCQkJCX0KLQkJCQkJZ290byBs
NDY2Ci0JCQkJbDQ2NToKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ2NSwg
dG9rZW5JbmRleDQ2NQorCQkJCQlnb3RvIGw0ODQKKwkJCQlsNDgzOgorCQkJCQlwb3NpdGlvbiwg
dG9rZW5JbmRleCA9IHBvc2l0aW9uNDgzLCB0b2tlbkluZGV4NDgzCiAJCQkJfQotCQkJbDQ2NjoK
KwkJCWw0ODQ6CiAJCQkJewotCQkJCQlwb3NpdGlvbjQ2NywgdG9rZW5JbmRleDQ2NyA6PSBwb3Np
dGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjQ4NSwgdG9rZW5JbmRleDQ4NSA6PSBwb3Np
dGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10oKSB7Ci0JCQkJCQlnb3Rv
IGw0NjcKKwkJCQkJCWdvdG8gbDQ4NQogCQkJCQl9Ci0JCQkJCWdvdG8gbDQ2OAotCQkJCWw0Njc6
Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240NjcsIHRva2VuSW5kZXg0NjcK
KwkJCQkJZ290byBsNDg2CisJCQkJbDQ4NToKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjQ4NSwgdG9rZW5JbmRleDQ4NQogCQkJCX0KLQkJCWw0Njg6CisJCQlsNDg2OgogCQkJ
CXsKLQkJCQkJcG9zaXRpb240NjksIHRva2VuSW5kZXg0NjkgOj0gcG9zaXRpb24sIHRva2VuSW5k
ZXgKKwkJCQkJcG9zaXRpb240ODcsIHRva2VuSW5kZXg0ODcgOj0gcG9zaXRpb24sIHRva2VuSW5k
ZXgKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcsJykgewotCQkJCQkJZ290byBs
NDY5CisJCQkJCQlnb3RvIGw0ODcKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCiAJCQkJCXsKLQkJ
CQkJCXBvc2l0aW9uNDcxLCB0b2tlbkluZGV4NDcxIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJ
CQkJCQlwb3NpdGlvbjQ4OSwgdG9rZW5JbmRleDQ4OSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAog
CQkJCQkJaWYgIV9ydWxlc1tydWxlV1NdKCkgewotCQkJCQkJCWdvdG8gbDQ3MQorCQkJCQkJCWdv
dG8gbDQ4OQogCQkJCQkJfQotCQkJCQkJZ290byBsNDcyCi0JCQkJCWw0NzE6Ci0JCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDcxLCB0b2tlbkluZGV4NDcxCisJCQkJCQlnb3Rv
IGw0OTAKKwkJCQkJbDQ4OToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240
ODksIHRva2VuSW5kZXg0ODkKIAkJCQkJfQotCQkJCWw0NzI6CisJCQkJbDQ5MDoKIAkJCQkJaWYg
IV9ydWxlc1tydWxlUmVnaXN0ZXJPckNvbnN0YW50XSgpIHsKLQkJCQkJCWdvdG8gbDQ2OQorCQkJ
CQkJZ290byBsNDg3CiAJCQkJCX0KIAkJCQkJewotCQkJCQkJcG9zaXRpb240NzMsIHRva2VuSW5k
ZXg0NzMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uNDkxLCB0b2tlbklu
ZGV4NDkxIDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiAhX3J1bGVzW3J1bGVXU10o
KSB7Ci0JCQkJCQkJZ290byBsNDczCisJCQkJCQkJZ290byBsNDkxCiAJCQkJCQl9Ci0JCQkJCQln
b3RvIGw0NzQKLQkJCQkJbDQ3MzoKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b240NzMsIHRva2VuSW5kZXg0NzMKKwkJCQkJCWdvdG8gbDQ5MgorCQkJCQlsNDkxOgorCQkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ5MSwgdG9rZW5JbmRleDQ5MQogCQkJCQl9
Ci0JCQkJbDQ3NDoKKwkJCQlsNDkyOgogCQkJCQl7Ci0JCQkJCQlwb3NpdGlvbjQ3NSwgdG9rZW5J
bmRleDQ3NSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRpb240OTMsIHRva2Vu
SW5kZXg0OTMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlv
bl0gIT0gcnVuZSgnLCcpIHsKLQkJCQkJCQlnb3RvIGw0NzUKKwkJCQkJCQlnb3RvIGw0OTMKIAkJ
CQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsg
YyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVuZSgnOScpIHsKLQkJCQkJCQlnb3RvIGw0NzUKKwkJCQkJ
CQlnb3RvIGw0OTMKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJbDQ3NzoKKwkJCQkJ
bDQ5NToKIAkJCQkJCXsKLQkJCQkJCQlwb3NpdGlvbjQ3OCwgdG9rZW5JbmRleDQ3OCA6PSBwb3Np
dGlvbiwgdG9rZW5JbmRleAorCQkJCQkJCXBvc2l0aW9uNDk2LCB0b2tlbkluZGV4NDk2IDo9IHBv
c2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwg
cnVuZSgnMCcpIHx8IGMgPiBydW5lKCc5JykgewotCQkJCQkJCQlnb3RvIGw0NzgKKwkJCQkJCQkJ
Z290byBsNDk2CiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCQlnb3RvIGw0NzcK
LQkJCQkJCWw0Nzg6Ci0JCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ3OCwg
dG9rZW5JbmRleDQ3OAorCQkJCQkJCWdvdG8gbDQ5NQorCQkJCQkJbDQ5NjoKKwkJCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNDk2LCB0b2tlbkluZGV4NDk2CiAJCQkJCQl9Ci0J
CQkJCQlnb3RvIGw0NzYKLQkJCQkJbDQ3NToKLQkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0g
cG9zaXRpb240NzUsIHRva2VuSW5kZXg0NzUKKwkJCQkJCWdvdG8gbDQ5NAorCQkJCQlsNDkzOgor
CQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ5MywgdG9rZW5JbmRleDQ5Mwog
CQkJCQl9Ci0JCQkJbDQ3NjoKLQkJCQkJZ290byBsNDcwCi0JCQkJbDQ2OToKLQkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ2OSwgdG9rZW5JbmRleDQ2OQorCQkJCWw0OTQ6CisJ
CQkJCWdvdG8gbDQ4OAorCQkJCWw0ODc6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb240ODcsIHRva2VuSW5kZXg0ODcKIAkJCQl9Ci0JCQlsNDcwOgorCQkJbDQ4ODoKIAkJCQlp
ZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJyknKSB7Ci0JCQkJCWdvdG8gbDQ2MworCQkJCQln
b3RvIGw0ODEKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwotCQkJCWFkZChydWxlQmFzZUluZGV4U2Nh
bGUsIHBvc2l0aW9uNDY0KQorCQkJCWFkZChydWxlQmFzZUluZGV4U2NhbGUsIHBvc2l0aW9uNDgy
KQogCQkJfQogCQkJcmV0dXJuIHRydWUKLQkJbDQ2MzoKLQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4
ID0gcG9zaXRpb240NjMsIHRva2VuSW5kZXg0NjMKKwkJbDQ4MToKKwkJCXBvc2l0aW9uLCB0b2tl
bkluZGV4ID0gcG9zaXRpb240ODEsIHRva2VuSW5kZXg0ODEKIAkJCXJldHVybiBmYWxzZQogCQl9
LAogCQkvKiAzNiBPcGVyYXRvciA8LSA8KCcrJyAvICctJyk+ICovCiAJCWZ1bmMoKSBib29sIHsK
LQkJCXBvc2l0aW9uNDc5LCB0b2tlbkluZGV4NDc5IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJ
CQlwb3NpdGlvbjQ5NywgdG9rZW5JbmRleDQ5NyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJ
ewotCQkJCXBvc2l0aW9uNDgwIDo9IHBvc2l0aW9uCisJCQkJcG9zaXRpb240OTggOj0gcG9zaXRp
b24KIAkJCQl7Ci0JCQkJCXBvc2l0aW9uNDgxLCB0b2tlbkluZGV4NDgxIDo9IHBvc2l0aW9uLCB0
b2tlbkluZGV4CisJCQkJCXBvc2l0aW9uNDk5LCB0b2tlbkluZGV4NDk5IDo9IHBvc2l0aW9uLCB0
b2tlbkluZGV4CiAJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnKycpIHsKLQkJCQkJ
CWdvdG8gbDQ4MgorCQkJCQkJZ290byBsNTAwCiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwotCQkJ
CQlnb3RvIGw0ODEKLQkJCQlsNDgyOgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uNDgxLCB0b2tlbkluZGV4NDgxCisJCQkJCWdvdG8gbDQ5OQorCQkJCWw1MDA6CisJCQkJCXBv
c2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240OTksIHRva2VuSW5kZXg0OTkKIAkJCQkJaWYg
YnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCctJykgewotCQkJCQkJZ290byBsNDc5CisJCQkJCQln
b3RvIGw0OTcKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCiAJCQkJfQotCQkJbDQ4MToKLQkJCQlh
ZGQocnVsZU9wZXJhdG9yLCBwb3NpdGlvbjQ4MCkKKwkJCWw0OTk6CisJCQkJYWRkKHJ1bGVPcGVy
YXRvciwgcG9zaXRpb240OTgpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsNDc5OgotCQkJcG9z
aXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ3OSwgdG9rZW5JbmRleDQ3OQorCQlsNDk3Ogor
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ5NywgdG9rZW5JbmRleDQ5NwogCQkJ
cmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDM3IE9mZnNldCA8LSA8KCcrJz8gJy0nPyAoKCcwJyAo
J2InIC8gJ0InKSAoJzAnIC8gJzEnKSspIC8gKCcwJyAoJ3gnIC8gJ1gnKSAoWzAtOV0gLyBbMC05
XSAvIChbYS1mXSAvIFtBLUZdKSkrKSAvIFswLTldKykpPiAqLwogCQlmdW5jKCkgYm9vbCB7Ci0J
CQlwb3NpdGlvbjQ4MywgdG9rZW5JbmRleDQ4MyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJ
cG9zaXRpb241MDEsIHRva2VuSW5kZXg1MDEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCXsK
LQkJCQlwb3NpdGlvbjQ4NCA6PSBwb3NpdGlvbgorCQkJCXBvc2l0aW9uNTAyIDo9IHBvc2l0aW9u
CiAJCQkJewotCQkJCQlwb3NpdGlvbjQ4NSwgdG9rZW5JbmRleDQ4NSA6PSBwb3NpdGlvbiwgdG9r
ZW5JbmRleAorCQkJCQlwb3NpdGlvbjUwMywgdG9rZW5JbmRleDUwMyA6PSBwb3NpdGlvbiwgdG9r
ZW5JbmRleAogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJysnKSB7Ci0JCQkJCQln
b3RvIGw0ODUKKwkJCQkJCWdvdG8gbDUwMwogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKLQkJCQkJ
Z290byBsNDg2Ci0JCQkJbDQ4NToKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjQ4NSwgdG9rZW5JbmRleDQ4NQorCQkJCQlnb3RvIGw1MDQKKwkJCQlsNTAzOgorCQkJCQlwb3Np
dGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTAzLCB0b2tlbkluZGV4NTAzCiAJCQkJfQotCQkJ
bDQ4NjoKKwkJCWw1MDQ6CiAJCQkJewotCQkJCQlwb3NpdGlvbjQ4NywgdG9rZW5JbmRleDQ4NyA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjUwNSwgdG9rZW5JbmRleDUwNSA6
PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUo
Jy0nKSB7Ci0JCQkJCQlnb3RvIGw0ODcKKwkJCQkJCWdvdG8gbDUwNQogCQkJCQl9CiAJCQkJCXBv
c2l0aW9uKysKLQkJCQkJZ290byBsNDg4Ci0JCQkJbDQ4NzoKLQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjQ4NywgdG9rZW5JbmRleDQ4NworCQkJCQlnb3RvIGw1MDYKKwkJCQls
NTA1OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTA1LCB0b2tlbkluZGV4
NTA1CiAJCQkJfQotCQkJbDQ4ODoKKwkJCWw1MDY6CiAJCQkJewotCQkJCQlwb3NpdGlvbjQ4OSwg
dG9rZW5JbmRleDQ4OSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjUwNywg
dG9rZW5JbmRleDUwNyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQlpZiBidWZmZXJbcG9z
aXRpb25dICE9IHJ1bmUoJzAnKSB7Ci0JCQkJCQlnb3RvIGw0OTAKKwkJCQkJCWdvdG8gbDUwOAog
CQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQkJewotCQkJCQkJcG9zaXRpb240OTEsIHRva2Vu
SW5kZXg0OTEgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCXBvc2l0aW9uNTA5LCB0b2tl
bkluZGV4NTA5IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQlpZiBidWZmZXJbcG9zaXRp
b25dICE9IHJ1bmUoJ2InKSB7Ci0JCQkJCQkJZ290byBsNDkyCisJCQkJCQkJZ290byBsNTEwCiAJ
CQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCi0JCQkJCQlnb3RvIGw0OTEKLQkJCQkJbDQ5MjoKLQkJ
CQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb240OTEsIHRva2VuSW5kZXg0OTEKKwkJ
CQkJCWdvdG8gbDUwOQorCQkJCQlsNTEwOgorCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBw
b3NpdGlvbjUwOSwgdG9rZW5JbmRleDUwOQogCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBy
dW5lKCdCJykgewotCQkJCQkJCWdvdG8gbDQ5MAorCQkJCQkJCWdvdG8gbDUwOAogCQkJCQkJfQog
CQkJCQkJcG9zaXRpb24rKwogCQkJCQl9Ci0JCQkJbDQ5MToKKwkJCQlsNTA5OgogCQkJCQl7Ci0J
CQkJCQlwb3NpdGlvbjQ5NSwgdG9rZW5JbmRleDQ5NSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAor
CQkJCQkJcG9zaXRpb241MTMsIHRva2VuSW5kZXg1MTMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
IAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlvbl0gIT0gcnVuZSgnMCcpIHsKLQkJCQkJCQlnb3RvIGw0
OTYKKwkJCQkJCQlnb3RvIGw1MTQKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdv
dG8gbDQ5NQotCQkJCQlsNDk2OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjQ5NSwgdG9rZW5JbmRleDQ5NQorCQkJCQkJZ290byBsNTEzCisJCQkJCWw1MTQ6CisJCQkJCQlw
b3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTEzLCB0b2tlbkluZGV4NTEzCiAJCQkJCQlp
ZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJzEnKSB7Ci0JCQkJCQkJZ290byBsNDkwCisJCQkJ
CQkJZ290byBsNTA4CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCiAJCQkJCX0KLQkJCQlsNDk1
OgotCQkJCWw0OTM6CisJCQkJbDUxMzoKKwkJCQlsNTExOgogCQkJCQl7Ci0JCQkJCQlwb3NpdGlv
bjQ5NCwgdG9rZW5JbmRleDQ5NCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRp
b241MTIsIHRva2VuSW5kZXg1MTIgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCXsKLQkJ
CQkJCQlwb3NpdGlvbjQ5NywgdG9rZW5JbmRleDQ5NyA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAor
CQkJCQkJCXBvc2l0aW9uNTE1LCB0b2tlbkluZGV4NTE1IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4
CiAJCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcwJykgewotCQkJCQkJCQlnb3Rv
IGw0OTgKKwkJCQkJCQkJZ290byBsNTE2CiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysKLQkJ
CQkJCQlnb3RvIGw0OTcKLQkJCQkJCWw0OTg6Ci0JCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXgg
PSBwb3NpdGlvbjQ5NywgdG9rZW5JbmRleDQ5NworCQkJCQkJCWdvdG8gbDUxNQorCQkJCQkJbDUx
NjoKKwkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTE1LCB0b2tlbkluZGV4
NTE1CiAJCQkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5lKCcxJykgewotCQkJCQkJCQln
b3RvIGw0OTQKKwkJCQkJCQkJZ290byBsNTEyCiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysK
IAkJCQkJCX0KLQkJCQkJbDQ5NzoKLQkJCQkJCWdvdG8gbDQ5MwotCQkJCQlsNDk0OgotCQkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ5NCwgdG9rZW5JbmRleDQ5NAorCQkJCQls
NTE1OgorCQkJCQkJZ290byBsNTExCisJCQkJCWw1MTI6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5J
bmRleCA9IHBvc2l0aW9uNTEyLCB0b2tlbkluZGV4NTEyCiAJCQkJCX0KLQkJCQkJZ290byBsNDg5
Ci0JCQkJbDQ5MDoKLQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjQ4OSwgdG9r
ZW5JbmRleDQ4OQorCQkJCQlnb3RvIGw1MDcKKwkJCQlsNTA4OgorCQkJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uNTA3LCB0b2tlbkluZGV4NTA3CiAJCQkJCWlmIGJ1ZmZlcltwb3Np
dGlvbl0gIT0gcnVuZSgnMCcpIHsKLQkJCQkJCWdvdG8gbDQ5OQorCQkJCQkJZ290byBsNTE3CiAJ
CQkJCX0KIAkJCQkJcG9zaXRpb24rKwogCQkJCQl7Ci0JCQkJCQlwb3NpdGlvbjUwMCwgdG9rZW5J
bmRleDUwMCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRpb241MTgsIHRva2Vu
SW5kZXg1MTggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCWlmIGJ1ZmZlcltwb3NpdGlv
bl0gIT0gcnVuZSgneCcpIHsKLQkJCQkJCQlnb3RvIGw1MDEKKwkJCQkJCQlnb3RvIGw1MTkKIAkJ
CQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdvdG8gbDUwMAotCQkJCQlsNTAxOgotCQkJ
CQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUwMCwgdG9rZW5JbmRleDUwMAorCQkJ
CQkJZ290byBsNTE4CisJCQkJCWw1MTk6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uNTE4LCB0b2tlbkluZGV4NTE4CiAJCQkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1
bmUoJ1gnKSB7Ci0JCQkJCQkJZ290byBsNDk5CisJCQkJCQkJZ290byBsNTE3CiAJCQkJCQl9CiAJ
CQkJCQlwb3NpdGlvbisrCiAJCQkJCX0KLQkJCQlsNTAwOgorCQkJCWw1MTg6CiAJCQkJCXsKLQkJ
CQkJCXBvc2l0aW9uNTA0LCB0b2tlbkluZGV4NTA0IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJ
CQkJCQlwb3NpdGlvbjUyMiwgdG9rZW5JbmRleDUyMiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAog
CQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5l
KCc5JykgewotCQkJCQkJCWdvdG8gbDUwNQorCQkJCQkJCWdvdG8gbDUyMwogCQkJCQkJfQogCQkJ
CQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsNTA0Ci0JCQkJCWw1MDU6Ci0JCQkJCQlwb3NpdGlv
biwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTA0LCB0b2tlbkluZGV4NTA0CisJCQkJCQlnb3RvIGw1
MjIKKwkJCQkJbDUyMzoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb241MjIs
IHRva2VuSW5kZXg1MjIKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUo
JzAnKSB8fCBjID4gcnVuZSgnOScpIHsKLQkJCQkJCQlnb3RvIGw1MDYKKwkJCQkJCQlnb3RvIGw1
MjQKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdvdG8gbDUwNAotCQkJCQlsNTA2
OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUwNCwgdG9rZW5JbmRleDUw
NAorCQkJCQkJZ290byBsNTIyCisJCQkJCWw1MjQ6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRl
eCA9IHBvc2l0aW9uNTIyLCB0b2tlbkluZGV4NTIyCiAJCQkJCQl7Ci0JCQkJCQkJcG9zaXRpb241
MDcsIHRva2VuSW5kZXg1MDcgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJCQlwb3NpdGlv
bjUyNSwgdG9rZW5JbmRleDUyNSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJCWlmIGMg
Oj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJ2EnKSB8fCBjID4gcnVuZSgnZicpIHsKLQkJ
CQkJCQkJZ290byBsNTA4CisJCQkJCQkJCWdvdG8gbDUyNgogCQkJCQkJCX0KIAkJCQkJCQlwb3Np
dGlvbisrCi0JCQkJCQkJZ290byBsNTA3Ci0JCQkJCQlsNTA4OgotCQkJCQkJCXBvc2l0aW9uLCB0
b2tlbkluZGV4ID0gcG9zaXRpb241MDcsIHRva2VuSW5kZXg1MDcKKwkJCQkJCQlnb3RvIGw1MjUK
KwkJCQkJCWw1MjY6CisJCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUyNSwg
dG9rZW5JbmRleDUyNQogCQkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUo
J0EnKSB8fCBjID4gcnVuZSgnRicpIHsKLQkJCQkJCQkJZ290byBsNDk5CisJCQkJCQkJCWdvdG8g
bDUxNwogCQkJCQkJCX0KIAkJCQkJCQlwb3NpdGlvbisrCiAJCQkJCQl9Ci0JCQkJCWw1MDc6CisJ
CQkJCWw1MjU6CiAJCQkJCX0KLQkJCQlsNTA0OgotCQkJCWw1MDI6CisJCQkJbDUyMjoKKwkJCQls
NTIwOgogCQkJCQl7Ci0JCQkJCQlwb3NpdGlvbjUwMywgdG9rZW5JbmRleDUwMyA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAorCQkJCQkJcG9zaXRpb241MjEsIHRva2VuSW5kZXg1MjEgOj0gcG9zaXRp
b24sIHRva2VuSW5kZXgKIAkJCQkJCXsKLQkJCQkJCQlwb3NpdGlvbjUwOSwgdG9rZW5JbmRleDUw
OSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJCXBvc2l0aW9uNTI3LCB0b2tlbkluZGV4
NTI3IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CiAJCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRp
b25dOyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5lKCc5JykgewotCQkJCQkJCQlnb3RvIGw1MTAK
KwkJCQkJCQkJZ290byBsNTI4CiAJCQkJCQkJfQogCQkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCQln
b3RvIGw1MDkKLQkJCQkJCWw1MTA6Ci0JCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3Np
dGlvbjUwOSwgdG9rZW5JbmRleDUwOQorCQkJCQkJCWdvdG8gbDUyNworCQkJCQkJbDUyODoKKwkJ
CQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTI3LCB0b2tlbkluZGV4NTI3CiAJ
CQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcpIHx8IGMgPiBydW5l
KCc5JykgewotCQkJCQkJCQlnb3RvIGw1MTEKKwkJCQkJCQkJZ290byBsNTI5CiAJCQkJCQkJfQog
CQkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCQlnb3RvIGw1MDkKLQkJCQkJCWw1MTE6Ci0JCQkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUwOSwgdG9rZW5JbmRleDUwOQorCQkJCQkJ
CWdvdG8gbDUyNworCQkJCQkJbDUyOToKKwkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBv
c2l0aW9uNTI3LCB0b2tlbkluZGV4NTI3CiAJCQkJCQkJewotCQkJCQkJCQlwb3NpdGlvbjUxMiwg
dG9rZW5JbmRleDUxMiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJCQlwb3NpdGlvbjUz
MCwgdG9rZW5JbmRleDUzMCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJCQkJCQlpZiBjIDo9
IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdhJykgfHwgYyA+IHJ1bmUoJ2YnKSB7Ci0JCQkJ
CQkJCQlnb3RvIGw1MTMKKwkJCQkJCQkJCWdvdG8gbDUzMQogCQkJCQkJCQl9CiAJCQkJCQkJCXBv
c2l0aW9uKysKLQkJCQkJCQkJZ290byBsNTEyCi0JCQkJCQkJbDUxMzoKLQkJCQkJCQkJcG9zaXRp
b24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUxMiwgdG9rZW5JbmRleDUxMgorCQkJCQkJCQlnb3Rv
IGw1MzAKKwkJCQkJCQlsNTMxOgorCQkJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uNTMwLCB0b2tlbkluZGV4NTMwCiAJCQkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsg
YyA8IHJ1bmUoJ0EnKSB8fCBjID4gcnVuZSgnRicpIHsKLQkJCQkJCQkJCWdvdG8gbDUwMworCQkJ
CQkJCQkJZ290byBsNTIxCiAJCQkJCQkJCX0KIAkJCQkJCQkJcG9zaXRpb24rKwogCQkJCQkJCX0K
LQkJCQkJCWw1MTI6CisJCQkJCQlsNTMwOgogCQkJCQkJfQotCQkJCQlsNTA5OgotCQkJCQkJZ290
byBsNTAyCi0JCQkJCWw1MDM6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9u
NTAzLCB0b2tlbkluZGV4NTAzCisJCQkJCWw1Mjc6CisJCQkJCQlnb3RvIGw1MjAKKwkJCQkJbDUy
MToKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb241MjEsIHRva2VuSW5kZXg1
MjEKIAkJCQkJfQotCQkJCQlnb3RvIGw0ODkKLQkJCQlsNDk5OgotCQkJCQlwb3NpdGlvbiwgdG9r
ZW5JbmRleCA9IHBvc2l0aW9uNDg5LCB0b2tlbkluZGV4NDg5CisJCQkJCWdvdG8gbDUwNworCQkJ
CWw1MTc6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRpb241MDcsIHRva2VuSW5k
ZXg1MDcKIAkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnMCcpIHx8IGMg
PiBydW5lKCc5JykgewotCQkJCQkJZ290byBsNDgzCisJCQkJCQlnb3RvIGw1MDEKIAkJCQkJfQog
CQkJCQlwb3NpdGlvbisrCi0JCQkJbDUxNDoKKwkJCQlsNTMyOgogCQkJCQl7Ci0JCQkJCQlwb3Np
dGlvbjUxNSwgdG9rZW5JbmRleDUxNSA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAorCQkJCQkJcG9z
aXRpb241MzMsIHRva2VuSW5kZXg1MzMgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJCWlm
IGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1bmUoJzAnKSB8fCBjID4gcnVuZSgnOScpIHsK
LQkJCQkJCQlnb3RvIGw1MTUKKwkJCQkJCQlnb3RvIGw1MzMKIAkJCQkJCX0KIAkJCQkJCXBvc2l0
aW9uKysKLQkJCQkJCWdvdG8gbDUxNAotCQkJCQlsNTE1OgotCQkJCQkJcG9zaXRpb24sIHRva2Vu
SW5kZXggPSBwb3NpdGlvbjUxNSwgdG9rZW5JbmRleDUxNQorCQkJCQkJZ290byBsNTMyCisJCQkJ
CWw1MzM6CisJCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTMzLCB0b2tlbklu
ZGV4NTMzCiAJCQkJCX0KIAkJCQl9Ci0JCQlsNDg5OgotCQkJCWFkZChydWxlT2Zmc2V0LCBwb3Np
dGlvbjQ4NCkKKwkJCWw1MDc6CisJCQkJYWRkKHJ1bGVPZmZzZXQsIHBvc2l0aW9uNTAyKQogCQkJ
fQogCQkJcmV0dXJuIHRydWUKLQkJbDQ4MzoKLQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb240ODMsIHRva2VuSW5kZXg0ODMKKwkJbDUwMToKKwkJCXBvc2l0aW9uLCB0b2tlbkluZGV4
ID0gcG9zaXRpb241MDEsIHRva2VuSW5kZXg1MDEKIAkJCXJldHVybiBmYWxzZQogCQl9LAogCQkv
KiAzOCBTZWN0aW9uIDwtIDwoW2Etel0gLyBbQS1aXSAvICdAJykrPiAqLwogCQlmdW5jKCkgYm9v
bCB7Ci0JCQlwb3NpdGlvbjUxNiwgdG9rZW5JbmRleDUxNiA6PSBwb3NpdGlvbiwgdG9rZW5JbmRl
eAorCQkJcG9zaXRpb241MzQsIHRva2VuSW5kZXg1MzQgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgK
IAkJCXsKLQkJCQlwb3NpdGlvbjUxNyA6PSBwb3NpdGlvbgorCQkJCXBvc2l0aW9uNTM1IDo9IHBv
c2l0aW9uCiAJCQkJewotCQkJCQlwb3NpdGlvbjUyMCwgdG9rZW5JbmRleDUyMCA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAorCQkJCQlwb3NpdGlvbjUzOCwgdG9rZW5JbmRleDUzOCA6PSBwb3NpdGlv
biwgdG9rZW5JbmRleAogCQkJCQlpZiBjIDo9IGJ1ZmZlcltwb3NpdGlvbl07IGMgPCBydW5lKCdh
JykgfHwgYyA+IHJ1bmUoJ3onKSB7Ci0JCQkJCQlnb3RvIGw1MjEKKwkJCQkJCWdvdG8gbDUzOQog
CQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKLQkJCQkJZ290byBsNTIwCi0JCQkJbDUyMToKLQkJCQkJ
cG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUyMCwgdG9rZW5JbmRleDUyMAorCQkJCQln
b3RvIGw1MzgKKwkJCQlsNTM5OgorCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9u
NTM4LCB0b2tlbkluZGV4NTM4CiAJCQkJCWlmIGMgOj0gYnVmZmVyW3Bvc2l0aW9uXTsgYyA8IHJ1
bmUoJ0EnKSB8fCBjID4gcnVuZSgnWicpIHsKLQkJCQkJCWdvdG8gbDUyMgorCQkJCQkJZ290byBs
NTQwCiAJCQkJCX0KIAkJCQkJcG9zaXRpb24rKwotCQkJCQlnb3RvIGw1MjAKLQkJCQlsNTIyOgot
CQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTIwLCB0b2tlbkluZGV4NTIwCisJ
CQkJCWdvdG8gbDUzOAorCQkJCWw1NDA6CisJCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9z
aXRpb241MzgsIHRva2VuSW5kZXg1MzgKIAkJCQkJaWYgYnVmZmVyW3Bvc2l0aW9uXSAhPSBydW5l
KCdAJykgewotCQkJCQkJZ290byBsNTE2CisJCQkJCQlnb3RvIGw1MzQKIAkJCQkJfQogCQkJCQlw
b3NpdGlvbisrCiAJCQkJfQotCQkJbDUyMDoKLQkJCWw1MTg6CisJCQlsNTM4OgorCQkJbDUzNjoK
IAkJCQl7Ci0JCQkJCXBvc2l0aW9uNTE5LCB0b2tlbkluZGV4NTE5IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CisJCQkJCXBvc2l0aW9uNTM3LCB0b2tlbkluZGV4NTM3IDo9IHBvc2l0aW9uLCB0b2tl
bkluZGV4CiAJCQkJCXsKLQkJCQkJCXBvc2l0aW9uNTIzLCB0b2tlbkluZGV4NTIzIDo9IHBvc2l0
aW9uLCB0b2tlbkluZGV4CisJCQkJCQlwb3NpdGlvbjU0MSwgdG9rZW5JbmRleDU0MSA6PSBwb3Np
dGlvbiwgdG9rZW5JbmRleAogCQkJCQkJaWYgYyA6PSBidWZmZXJbcG9zaXRpb25dOyBjIDwgcnVu
ZSgnYScpIHx8IGMgPiBydW5lKCd6JykgewotCQkJCQkJCWdvdG8gbDUyNAorCQkJCQkJCWdvdG8g
bDU0MgogCQkJCQkJfQogCQkJCQkJcG9zaXRpb24rKwotCQkJCQkJZ290byBsNTIzCi0JCQkJCWw1
MjQ6Ci0JCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTIzLCB0b2tlbkluZGV4
NTIzCisJCQkJCQlnb3RvIGw1NDEKKwkJCQkJbDU0MjoKKwkJCQkJCXBvc2l0aW9uLCB0b2tlbklu
ZGV4ID0gcG9zaXRpb241NDEsIHRva2VuSW5kZXg1NDEKIAkJCQkJCWlmIGMgOj0gYnVmZmVyW3Bv
c2l0aW9uXTsgYyA8IHJ1bmUoJ0EnKSB8fCBjID4gcnVuZSgnWicpIHsKLQkJCQkJCQlnb3RvIGw1
MjUKKwkJCQkJCQlnb3RvIGw1NDMKIAkJCQkJCX0KIAkJCQkJCXBvc2l0aW9uKysKLQkJCQkJCWdv
dG8gbDUyMwotCQkJCQlsNTI1OgotCQkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlv
bjUyMywgdG9rZW5JbmRleDUyMworCQkJCQkJZ290byBsNTQxCisJCQkJCWw1NDM6CisJCQkJCQlw
b3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0aW9uNTQxLCB0b2tlbkluZGV4NTQxCiAJCQkJCQlp
ZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ0AnKSB7Ci0JCQkJCQkJZ290byBsNTE5CisJCQkJ
CQkJZ290byBsNTM3CiAJCQkJCQl9CiAJCQkJCQlwb3NpdGlvbisrCiAJCQkJCX0KLQkJCQlsNTIz
OgotCQkJCQlnb3RvIGw1MTgKLQkJCQlsNTE5OgotCQkJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9
IHBvc2l0aW9uNTE5LCB0b2tlbkluZGV4NTE5CisJCQkJbDU0MToKKwkJCQkJZ290byBsNTM2CisJ
CQkJbDUzNzoKKwkJCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUzNywgdG9rZW5J
bmRleDUzNwogCQkJCX0KLQkJCQlhZGQocnVsZVNlY3Rpb24sIHBvc2l0aW9uNTE3KQorCQkJCWFk
ZChydWxlU2VjdGlvbiwgcG9zaXRpb241MzUpCiAJCQl9CiAJCQlyZXR1cm4gdHJ1ZQotCQlsNTE2
OgotCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUxNiwgdG9rZW5JbmRleDUxNgor
CQlsNTM0OgorCQkJcG9zaXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjUzNCwgdG9rZW5JbmRl
eDUzNAogCQkJcmV0dXJuIGZhbHNlCiAJCX0sCiAJCS8qIDM5IFNlZ21lbnRSZWdpc3RlciA8LSA8
KCclJyAoW2MtZ10gLyAncycpICgncycgJzonKSk+ICovCiAJCWZ1bmMoKSBib29sIHsKLQkJCXBv
c2l0aW9uNTI2LCB0b2tlbkluZGV4NTI2IDo9IHBvc2l0aW9uLCB0b2tlbkluZGV4CisJCQlwb3Np
dGlvbjU0NCwgdG9rZW5JbmRleDU0NCA6PSBwb3NpdGlvbiwgdG9rZW5JbmRleAogCQkJewotCQkJ
CXBvc2l0aW9uNTI3IDo9IHBvc2l0aW9uCisJCQkJcG9zaXRpb241NDUgOj0gcG9zaXRpb24KIAkJ
CQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJyUnKSB7Ci0JCQkJCWdvdG8gbDUyNgorCQkJ
CQlnb3RvIGw1NDQKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCXsKLQkJCQkJcG9zaXRpb241
MjgsIHRva2VuSW5kZXg1MjggOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKKwkJCQkJcG9zaXRpb241
NDYsIHRva2VuSW5kZXg1NDYgOj0gcG9zaXRpb24sIHRva2VuSW5kZXgKIAkJCQkJaWYgYyA6PSBi
dWZmZXJbcG9zaXRpb25dOyBjIDwgcnVuZSgnYycpIHx8IGMgPiBydW5lKCdnJykgewotCQkJCQkJ
Z290byBsNTI5CisJCQkJCQlnb3RvIGw1NDcKIAkJCQkJfQogCQkJCQlwb3NpdGlvbisrCi0JCQkJ
CWdvdG8gbDUyOAotCQkJCWw1Mjk6Ci0JCQkJCXBvc2l0aW9uLCB0b2tlbkluZGV4ID0gcG9zaXRp
b241MjgsIHRva2VuSW5kZXg1MjgKKwkJCQkJZ290byBsNTQ2CisJCQkJbDU0NzoKKwkJCQkJcG9z
aXRpb24sIHRva2VuSW5kZXggPSBwb3NpdGlvbjU0NiwgdG9rZW5JbmRleDU0NgogCQkJCQlpZiBi
dWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3MnKSB7Ci0JCQkJCQlnb3RvIGw1MjYKKwkJCQkJCWdv
dG8gbDU0NAogCQkJCQl9CiAJCQkJCXBvc2l0aW9uKysKIAkJCQl9Ci0JCQlsNTI4OgorCQkJbDU0
NjoKIAkJCQlpZiBidWZmZXJbcG9zaXRpb25dICE9IHJ1bmUoJ3MnKSB7Ci0JCQkJCWdvdG8gbDUy
NgorCQkJCQlnb3RvIGw1NDQKIAkJCQl9CiAJCQkJcG9zaXRpb24rKwogCQkJCWlmIGJ1ZmZlcltw
b3NpdGlvbl0gIT0gcnVuZSgnOicpIHsKLQkJCQkJZ290byBsNTI2CisJCQkJCWdvdG8gbDU0NAog
CQkJCX0KIAkJCQlwb3NpdGlvbisrCi0JCQkJYWRkKHJ1bGVTZWdtZW50UmVnaXN0ZXIsIHBvc2l0
aW9uNTI3KQorCQkJCWFkZChydWxlU2VnbWVudFJlZ2lzdGVyLCBwb3NpdGlvbjU0NSkKIAkJCX0K
IAkJCXJldHVybiB0cnVlCi0JCWw1MjY6Ci0JCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9IHBvc2l0
aW9uNTI2LCB0b2tlbkluZGV4NTI2CisJCWw1NDQ6CisJCQlwb3NpdGlvbiwgdG9rZW5JbmRleCA9
IHBvc2l0aW9uNTQ0LCB0b2tlbkluZGV4NTQ0CiAJCQlyZXR1cm4gZmFsc2UKIAkJfSwKIAl9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvZGVsb2NhdGVfdGVzdC5nbyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS9kZWxvY2F0ZV90ZXN0LmdvCmluZGV4IGUwZWNj
MTc3YWJjYzM1YTJhYjU0NWMxMzA1ZjA4ZTA0YmI0MjhkODIuLjE3NzhmYTczMmJjMWM1YjIxN2Y3
ZWRiNzFiNTg1ZWFmZmU2YzdlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxv
Y2F0ZS9kZWxvY2F0ZV90ZXN0LmdvCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS9k
ZWxvY2F0ZV90ZXN0LmdvCkBAIC0zOCw2ICszOCw3IEBAIGZ1bmMgKHRlc3QgKmRlbG9jYXRlVGVz
dCkgUGF0aChmaWxlIHN0cmluZykgc3RyaW5nIHsKIH0KIAogdmFyIGRlbG9jYXRlVGVzdHMgPSBb
XWRlbG9jYXRlVGVzdHsKKwl7ImdlbmVyaWMtRmlsZURpcmVjdGl2ZXMiLCBbXXN0cmluZ3siaW4u
cyJ9LCAib3V0LnMifSwKIAl7InBwYzY0bGUtR2xvYmFsRW50cnkiLCBbXXN0cmluZ3siaW4ucyJ9
LCAib3V0LnMifSwKIAl7InBwYzY0bGUtTG9hZFRvUjAiLCBbXXN0cmluZ3siaW4ucyJ9LCAib3V0
LnMifSwKIAl7InBwYzY0bGUtU2FtcGxlMiIsIFtdc3RyaW5neyJpbi5zIn0sICJvdXQucyJ9LApA
QCAtNDgsNiArNDksNyBAQCB2YXIgZGVsb2NhdGVUZXN0cyA9IFtdZGVsb2NhdGVUZXN0ewogCXsi
eDg2XzY0LUdPVFJld3JpdGUiLCBbXXN0cmluZ3siaW4ucyJ9LCAib3V0LnMifSwKIAl7Ing4Nl82
NC1MYWJlbFJld3JpdGUiLCBbXXN0cmluZ3siaW4xLnMiLCAiaW4yLnMifSwgIm91dC5zIn0sCiAJ
eyJ4ODZfNjQtU2VjdGlvbnMiLCBbXXN0cmluZ3siaW4ucyJ9LCAib3V0LnMifSwKKwl7Ing4Nl82
NC1UaHJlZUFyZyIsIFtdc3RyaW5neyJpbi5zIn0sICJvdXQucyJ9LAogfQogCiBmdW5jIFRlc3RE
ZWxvY2F0ZSh0ICp0ZXN0aW5nLlQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9k
ZWxvY2F0ZS90ZXN0ZGF0YS9nZW5lcmljLUZpbGVEaXJlY3RpdmVzL2luLnMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9m
aXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEvZ2VuZXJpYy1GaWxlRGlyZWN0aXZlcy9pbi5zCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNhNWY4YzI5MWVkYzY0NjQwMzM0MTZiNTMwMDU5YjEwMzMyZTY2MWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEvZ2VuZXJp
Yy1GaWxlRGlyZWN0aXZlcy9pbi5zCkBAIC0wLDAgKzEsNiBAQAorLmZpbGUgMTAgInNvbWUvcGF0
aC9maWxlLmMiICJmaWxlLmMiCisuZmlsZSAxMDAwICJzb21lL3BhdGgvZmlsZTIuYyIgImZpbGUy
LmMiCisuZmlsZSAxMDAxICJzb21lL3BhdGgvZmlsZV93aXRoX21kNS5jIiAib3RoZXJfbmFtZS5j
IiBtZDUgMHg1ZWJhNzg0NGRmNjQ0OWE3ZjJmZmYxNTU2ZmU3YmE4ZDIzOWY4ZTJmCisKKyMgQW4g
aW5zdHJ1Y3Rpb24gaXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlIGFyY2hpdGVjdHVyZSBhdXRvLWRl
dGVjdGlvbi4KKyAgICAgICAgbW92cSAlcmF4LCAlcmJ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9m
aXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEvZ2VuZXJpYy1GaWxlRGlyZWN0aXZlcy9vdXQucyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS9nZW5lcmljLUZpbGVEaXJlY3Rp
dmVzL291dC5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMzNlNTIzNDc3ZGI1OTU1ZjYyODVhZWZiMzlmOTczN2U5
NzllOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVz
dGRhdGEvZ2VuZXJpYy1GaWxlRGlyZWN0aXZlcy9vdXQucwpAQCAtMCwwICsxLDkxIEBACisudGV4
dAorLmZpbGUgMTAwMiAiaW5zZXJ0ZWRfYnlfZGVsb2NhdGUuYyIgbWQ1IDB4MDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKKy5sb2MgMTAwMiAxIDAKK0JPUklOR1NTTF9iY21fdGV4dF9z
dGFydDoKKy5maWxlIDEwICJzb21lL3BhdGgvZmlsZS5jIiAiZmlsZS5jIgorLmZpbGUgMTAwMCAi
c29tZS9wYXRoL2ZpbGUyLmMiICJmaWxlMi5jIgorLmZpbGUgMTAwMSAic29tZS9wYXRoL2ZpbGVf
d2l0aF9tZDUuYyIgIm90aGVyX25hbWUuYyIgbWQ1IDB4NWViYTc4NDRkZjY0NDlhN2YyZmZmMTU1
NmZlN2JhOGQyMzlmOGUyZgorCisjIEFuIGluc3RydWN0aW9uIGlzIG5lZWRlZCB0byBzYXRpc2Z5
IHRoZSBhcmNoaXRlY3R1cmUgYXV0by1kZXRlY3Rpb24uCisgICAgICAgIG1vdnEgJXJheCwgJXJi
eAorLnRleHQKKy5sb2MgMTAwMiAyIDAKK0JPUklOR1NTTF9iY21fdGV4dF9lbmQ6CisudHlwZSBP
UEVOU1NMX2lhMzJjYXBfZ2V0LCBAZnVuY3Rpb24KKy5nbG9ibCBPUEVOU1NMX2lhMzJjYXBfZ2V0
CisuTE9QRU5TU0xfaWEzMmNhcF9nZXRfbG9jYWxfdGFyZ2V0OgorT1BFTlNTTF9pYTMyY2FwX2dl
dDoKKwlsZWFxIE9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCAlcmF4CisJcmV0CisuZXh0ZXJuIE9Q
RU5TU0xfaWEzMmNhcF9QCisudHlwZSBPUEVOU1NMX2lhMzJjYXBfYWRkcl9kZWx0YSwgQG9iamVj
dAorLnNpemUgT1BFTlNTTF9pYTMyY2FwX2FkZHJfZGVsdGEsIDgKK09QRU5TU0xfaWEzMmNhcF9h
ZGRyX2RlbHRhOgorLnF1YWQgT1BFTlNTTF9pYTMyY2FwX1AtT1BFTlNTTF9pYTMyY2FwX2FkZHJf
ZGVsdGEKKy50eXBlIEJPUklOR1NTTF9iY21fdGV4dF9oYXNoLCBAb2JqZWN0Cisuc2l6ZSBCT1JJ
TkdTU0xfYmNtX3RleHRfaGFzaCwgNjQKK0JPUklOR1NTTF9iY21fdGV4dF9oYXNoOgorLmJ5dGUg
MHhhZQorLmJ5dGUgMHgyYworLmJ5dGUgMHhlYQorLmJ5dGUgMHgyYQorLmJ5dGUgMHhiZAorLmJ5
dGUgMHhhNgorLmJ5dGUgMHhmMworLmJ5dGUgMHhlYworLmJ5dGUgMHg5NworLmJ5dGUgMHg3Zgor
LmJ5dGUgMHg5YgorLmJ5dGUgMHhmNgorLmJ5dGUgMHg5NAorLmJ5dGUgMHg5YQorLmJ5dGUgMHhm
YworLmJ5dGUgMHg4MworLmJ5dGUgMHg2OAorLmJ5dGUgMHgyNworLmJ5dGUgMHhjYgorLmJ5dGUg
MHhhMAorLmJ5dGUgMHhhMAorLmJ5dGUgMHg5ZgorLmJ5dGUgMHg2YgorLmJ5dGUgMHg2ZgorLmJ5
dGUgMHhkZQorLmJ5dGUgMHg1MgorLmJ5dGUgMHhjZAorLmJ5dGUgMHhlMgorLmJ5dGUgMHhjZAor
LmJ5dGUgMHhmZgorLmJ5dGUgMHgzMQorLmJ5dGUgMHg4MAorLmJ5dGUgMHhhMgorLmJ5dGUgMHhk
NAorLmJ5dGUgMHhjMworLmJ5dGUgMHg2NgorLmJ5dGUgMHhmCisuYnl0ZSAweGMyCisuYnl0ZSAw
eDZhCisuYnl0ZSAweDdiCisuYnl0ZSAweGY0CisuYnl0ZSAweGJlCisuYnl0ZSAweDM5CisuYnl0
ZSAweGEyCisuYnl0ZSAweGQ3CisuYnl0ZSAweDI1CisuYnl0ZSAweGRiCisuYnl0ZSAweDIxCisu
Ynl0ZSAweDk4CisuYnl0ZSAweGU5CisuYnl0ZSAweGQ1CisuYnl0ZSAweDUzCisuYnl0ZSAweGJm
CisuYnl0ZSAweDVjCisuYnl0ZSAweDMyCisuYnl0ZSAweDYKKy5ieXRlIDB4ODMKKy5ieXRlIDB4
MzQKKy5ieXRlIDB4YworLmJ5dGUgMHg2NQorLmJ5dGUgMHg4OQorLmJ5dGUgMHg1MgorLmJ5dGUg
MHhiZAorLmJ5dGUgMHgxZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2RlbG9jYXRl
L3Rlc3RkYXRhL3g4Nl82NC1CU1Mvb3V0LnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUv
dGVzdGRhdGEveDg2XzY0LUJTUy9vdXQucwppbmRleCA1YzU3NmQ5NTYyMzQwZDQ0OTI2ZTM0MjRk
OTc1ZGM4NGFkYTBiYzg2Li5lOGNkNTZlYWRkZTRjMWNhOTM2MTE2MzlhMzNhZmE5NjFhMzM5NGMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEveDg2XzY0
LUJTUy9vdXQucworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEveDg2
XzY0LUJTUy9vdXQucwpAQCAtNjYsNiArNjYsOCBAQCB6X2Jzc19nZXQ6CiAJbGVhcQkuTHpfbG9j
YWxfdGFyZ2V0KCVyaXApLCAlcmF4CiAJcmV0CiAudHlwZSBPUEVOU1NMX2lhMzJjYXBfZ2V0LCBA
ZnVuY3Rpb24KKy5nbG9ibCBPUEVOU1NMX2lhMzJjYXBfZ2V0CisuTE9QRU5TU0xfaWEzMmNhcF9n
ZXRfbG9jYWxfdGFyZ2V0OgogT1BFTlNTTF9pYTMyY2FwX2dldDoKIAlsZWFxIE9QRU5TU0xfaWEz
MmNhcF9QKCVyaXApLCAlcmF4CiAJcmV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMv
ZGVsb2NhdGUvdGVzdGRhdGEveDg2XzY0LUJhc2ljL291dC5zIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xz
L2RlbG9jYXRlL3Rlc3RkYXRhL3g4Nl82NC1CYXNpYy9vdXQucwppbmRleCBiNzZmZDNmYTI4Y2Q4
ZjMwZGQ2MjNlOWI2ZmQwNTY1MmNjYzI1NjMyLi4yM2U5N2M4YmE1Yzg3MDkwOWU2MDM0ZGJiMmYw
NjRlMDA2NDc2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVz
dGRhdGEveDg2XzY0LUJhc2ljL291dC5zCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0
ZS90ZXN0ZGF0YS94ODZfNjQtQmFzaWMvb3V0LnMKQEAgLTU5LDYgKzU5LDggQEAgZm9vOgogLmxv
YyAyIDIgMAogQk9SSU5HU1NMX2JjbV90ZXh0X2VuZDoKIC50eXBlIE9QRU5TU0xfaWEzMmNhcF9n
ZXQsIEBmdW5jdGlvbgorLmdsb2JsIE9QRU5TU0xfaWEzMmNhcF9nZXQKKy5MT1BFTlNTTF9pYTMy
Y2FwX2dldF9sb2NhbF90YXJnZXQ6CiBPUEVOU1NMX2lhMzJjYXBfZ2V0OgogCWxlYXEgT1BFTlNT
TF9pYTMyY2FwX1AoJXJpcCksICVyYXgKIAlyZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0
b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS94ODZfNjQtR09UUmV3cml0ZS9vdXQucyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGls
L2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS94ODZfNjQtR09UUmV3cml0ZS9vdXQucwppbmRl
eCAzZDQyMWU1NjY4NGU4YjM1NTFjNDkxMjVmNWE1M2Q2MWEwMDJjYTBlLi4yNzNjZmU5NDBlNjcw
M2EwZGNkZjQyYTg3MTFmODdjMWU4Zjg2Yjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9v
bHMvZGVsb2NhdGUvdGVzdGRhdGEveDg2XzY0LUdPVFJld3JpdGUvb3V0LnMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0
aWwvZmlwc3Rvb2xzL2RlbG9jYXRlL3Rlc3RkYXRhL3g4Nl82NC1HT1RSZXdyaXRlL291dC5zCkBA
IC0xNDgsNyArMTQ4LDcgQEAgZm9vOgogIyBXQVMgbW92cSBmb29iYXJfYnNzX2dldEBHT1RQQ1JF
TCglcmlwKSwgJXIxMQogCWxlYXEJZm9vYmFyX2Jzc19nZXQoJXJpcCksICVyMTEKICMgV0FTIG1v
dnEgT1BFTlNTTF9pYTMyY2FwX2dldEBHT1RQQ1JFTCglcmlwKSwgJXIxMQotCWxlYXEJT1BFTlNT
TF9pYTMyY2FwX2dldCglcmlwKSwgJXIxMQorCWxlYXEJLkxPUEVOU1NMX2lhMzJjYXBfZ2V0X2xv
Y2FsX3RhcmdldCglcmlwKSwgJXIxMQogCiAJIyBUcmFuc2Zvcm1pbmcgbW92ZXMgcnVuIHRoZSB0
cmFuc2Zvcm0gaW4tcGxhY2UgYWZ0ZXIgdGhlIGxvYWQuCiAjIFdBUyB2cGJyb2FkY2FzdHEgc3Rk
ZXJyQEdPVFBDUkVMKCVyaXApLCAleG1tMApAQCAtMTg2LDYgKzE4Niw4IEBAIHN0ZGVycl9HT1RQ
Q1JFTF9leHRlcm5hbDoKIAkubG9uZyBzdGRlcnJAR09UUENSRUwKIAkubG9uZyAwCiAudHlwZSBP
UEVOU1NMX2lhMzJjYXBfZ2V0LCBAZnVuY3Rpb24KKy5nbG9ibCBPUEVOU1NMX2lhMzJjYXBfZ2V0
CisuTE9QRU5TU0xfaWEzMmNhcF9nZXRfbG9jYWxfdGFyZ2V0OgogT1BFTlNTTF9pYTMyY2FwX2dl
dDoKIAlsZWFxIE9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCAlcmF4CiAJcmV0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEveDg2XzY0LUxhYmVsUmV3cml0
ZS9pbjEucyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS94ODZfNjQtTGFi
ZWxSZXdyaXRlL2luMS5zCmluZGV4IGU5N2IyODBiMWFkMWJlYThmZjkzMzJkM2ZiMTE1MzM3ZDIw
OGJlZjYuLjhlZTcwODk2N2IzZDYyNjJkNWI0MTE5MWRkYmVmODYxMWM4OGE4M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS94ODZfNjQtTGFiZWxSZXdy
aXRlL2luMS5zCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS94ODZf
NjQtTGFiZWxSZXdyaXRlL2luMS5zCkBAIC0zNSw2ICszNSw4IEBAIGJhcjoKIAkucXVhZCA0Mgog
LkwyOgogCS5xdWFkIC5MMi0uTDEKKwkudWxlYjEyOCAuTDItLkwxCisJLnNsZWIxMjggLkwyLS5M
MQogCiAJIyBMb2NhbCBsYWJlbHMgYW5kIHRoZWlyIGp1bXBzIGFyZSBsZWZ0IGFsb25lLgogCS50
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEveDg2
XzY0LUxhYmVsUmV3cml0ZS9pbjIucyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0
ZGF0YS94ODZfNjQtTGFiZWxSZXdyaXRlL2luMi5zCmluZGV4IDdhNWE1NTEwNWZjMzJhMjZkMTZh
N2ZjMWUxNjgwMDBjMGM4NTZmYTYuLjUwMjczMjUzZGQ3M2E3MTVlMTZiYzExOTMzZmRmYTMxN2Iy
NTNmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS94
ODZfNjQtTGFiZWxSZXdyaXRlL2luMi5zCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0
ZS90ZXN0ZGF0YS94ODZfNjQtTGFiZWxSZXdyaXRlL2luMi5zCkBAIC05LDQgKzksNiBAQAogCS5x
dWFkIDQyCiAuTDI6CiAJLnF1YWQgLkwyLS5MMQorCS51bGViMTI4IC5MMi0uTDEKKwkuc2xlYjEy
OCAuTDItLkwxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0
ZGF0YS94ODZfNjQtTGFiZWxSZXdyaXRlL291dC5zIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2RlbG9j
YXRlL3Rlc3RkYXRhL3g4Nl82NC1MYWJlbFJld3JpdGUvb3V0LnMKaW5kZXggNGEwMTg1MzczOWMx
ZWI1MzYwMTZjMWU0ZWFiNDRmMGJhMjg1ZjhmYy4uMjUyZjY5YzE4NzVmM2FjODMwY2UxMmI3YmQ5
MzAxYmQ5NGU5OTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2RlbG9jYXRlL3Rl
c3RkYXRhL3g4Nl82NC1MYWJlbFJld3JpdGUvb3V0LnMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xz
L2RlbG9jYXRlL3Rlc3RkYXRhL3g4Nl82NC1MYWJlbFJld3JpdGUvb3V0LnMKQEAgLTM5LDcgKzM5
LDcgQEAgYmFyOgogCiAJIyBTeW50aGVzaXplZCBzeW1ib2xzIGFyZSB0cmVhdGVkIGFzIGxvY2Fs
IG9uZXMuCiAjIFdBUyBjYWxsIE9QRU5TU0xfaWEzMmNhcF9nZXRAUExUCi0JY2FsbAlPUEVOU1NM
X2lhMzJjYXBfZ2V0CisJY2FsbAkuTE9QRU5TU0xfaWEzMmNhcF9nZXRfbG9jYWxfdGFyZ2V0CiAK
IAkjIFJlZmVyZW5jZXMgdG8gbG9jYWwgbGFiZWxzIGFyZSBsZWZ0IGFzLWlzIGluIHRoZSBmaXJz
dCBmaWxlLgogLkxsb2NhbF9sYWJlbDoKQEAgLTU2LDYgKzU2LDggQEAgYmFyOgogLkwyOgogCiAJ
LnF1YWQgLkwyLS5MMQorCS51bGViMTI4IC5MMi0uTDEKKwkuc2xlYjEyOCAuTDItLkwxCiAKIAkj
IExvY2FsIGxhYmVscyBhbmQgdGhlaXIganVtcHMgYXJlIGxlZnQgYWxvbmUuCiAJLnRleHQKQEAg
LTgyLDYgKzg0LDEwIEBAIGJhcjoKIAogIyBXQVMgLnF1YWQgLkwyLS5MMQogCS5xdWFkCS5MMl9C
Q01fMS0uTDFfQkNNXzEKKyMgV0FTIC51bGViMTI4IC5MMi0uTDEKKwkudWxlYjEyOAkuTDJfQkNN
XzEtLkwxX0JDTV8xCisjIFdBUyAuc2xlYjEyOCAuTDItLkwxCisJLnNsZWIxMjgJLkwyX0JDTV8x
LS5MMV9CQ01fMQogCiAudGV4dAogLmxvYyAxIDIgMApAQCAtOTAsNiArOTYsOCBAQCBCT1JJTkdT
U0xfYmNtX3RleHRfZW5kOgogYmNtX3JlZGlyZWN0b3JfbWVtY3B5OgogCWptcAltZW1jcHlAUExU
CiAudHlwZSBPUEVOU1NMX2lhMzJjYXBfZ2V0LCBAZnVuY3Rpb24KKy5nbG9ibCBPUEVOU1NMX2lh
MzJjYXBfZ2V0CisuTE9QRU5TU0xfaWEzMmNhcF9nZXRfbG9jYWxfdGFyZ2V0OgogT1BFTlNTTF9p
YTMyY2FwX2dldDoKIAlsZWFxIE9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCAlcmF4CiAJcmV0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEveDg2XzY0LVNl
Y3Rpb25zL291dC5zIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2RlbG9jYXRlL3Rlc3RkYXRhL3g4Nl82
NC1TZWN0aW9ucy9vdXQucwppbmRleCBiYTQyN2FkZTgxZDMzY2U0ZTM4MDMzNDVkNDViN2QyNGRi
ZDdhMzdlLi5hYjNlM2Q5ZDdkZGE4OTIzZGEwYjZjNDk3M2U0NjQ1YzdlNjVmZjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRhdGEveDg2XzY0LVNlY3Rpb25z
L291dC5zCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90ZXN0ZGF0YS94ODZfNjQt
U2VjdGlvbnMvb3V0LnMKQEAgLTQ4LDYgKzQ4LDggQEAgZm9vOgogLmxvYyAxIDIgMAogQk9SSU5H
U1NMX2JjbV90ZXh0X2VuZDoKIC50eXBlIE9QRU5TU0xfaWEzMmNhcF9nZXQsIEBmdW5jdGlvbgor
Lmdsb2JsIE9QRU5TU0xfaWEzMmNhcF9nZXQKKy5MT1BFTlNTTF9pYTMyY2FwX2dldF9sb2NhbF90
YXJnZXQ6CiBPUEVOU1NMX2lhMzJjYXBfZ2V0OgogCWxlYXEgT1BFTlNTTF9pYTMyY2FwX1AoJXJp
cCksICVyYXgKIAlyZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0ZS90
ZXN0ZGF0YS94ODZfNjQtVGhyZWVBcmcvaW4ucyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9kZWxvY2F0
ZS90ZXN0ZGF0YS94ODZfNjQtVGhyZWVBcmcvaW4ucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGEwOWRlMWZhNzkx
NTBkNmVkMzZhNmNkMjFlZjk2Y2ZiYzE4OTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwv
Zmlwc3Rvb2xzL2RlbG9jYXRlL3Rlc3RkYXRhL3g4Nl82NC1UaHJlZUFyZy9pbi5zCkBAIC0wLDAg
KzEsMTQgQEAKKwkudHlwZSBmb28sIEBmdW5jdGlvbgorCS5nbG9ibCBmb28KK2ZvbzoKKwltb3Zx
CSVyYXgsICVyYXgKKwlzaHJ4cQklcmJ4LCBrQm9yaW5nU1NMUlNBU3FydFR3b0BHT1RQQ1JFTCgl
cmlwKSwgJXJheAorCXNocnhxCWtCb3JpbmdTU0xSU0FTcXJ0VHdvQEdPVFBDUkVMKCVyaXApLCAl
cmJ4LCAlcmF4CisKKworCS50eXBlCWtCb3JpbmdTU0xSU0FTcXJ0VHdvLEBvYmplY3QgIyBAa0Jv
cmluZ1NTTFJTQVNxcnRUd28KKwkuc2VjdGlvbgkucm9kYXRhLCJhIixAcHJvZ2JpdHMsdW5pcXVl
LDc2MAorCS5nbG9ibAlrQm9yaW5nU1NMUlNBU3FydFR3bworCS5wMmFsaWduCTQKK2tCb3JpbmdT
U0xSU0FTcXJ0VHdvOgorCS5xdWFkCS0yNDA0ODE0MTY1NTQ4MzAxODg2ICAgICMgMHhkZWEwNjI0
MWY3YWE4MWMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvZGVsb2NhdGUvdGVzdGRh
dGEveDg2XzY0LVRocmVlQXJnL291dC5zIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2RlbG9jYXRlL3Rl
c3RkYXRhL3g4Nl82NC1UaHJlZUFyZy9vdXQucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWQ4Zjc2OGVhOWM1MzRi
MzhmNzJjYzlhY2Q3OWMxNjM2NTRkOTQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3V0aWwvZmlw
c3Rvb2xzL2RlbG9jYXRlL3Rlc3RkYXRhL3g4Nl82NC1UaHJlZUFyZy9vdXQucwpAQCAtMCwwICsx
LDExNCBAQAorLnRleHQKKy5maWxlIDEgImluc2VydGVkX2J5X2RlbG9jYXRlLmMiCisubG9jIDEg
MSAwCitCT1JJTkdTU0xfYmNtX3RleHRfc3RhcnQ6CisJLnR5cGUgZm9vLCBAZnVuY3Rpb24KKwku
Z2xvYmwgZm9vCisuTGZvb19sb2NhbF90YXJnZXQ6Citmb286CisJbW92cQklcmF4LCAlcmF4Cisj
IFdBUyBzaHJ4cQklcmJ4LCBrQm9yaW5nU1NMUlNBU3FydFR3b0BHT1RQQ1JFTCglcmlwKSwgJXJh
eAorCWxlYXEgLTEyOCglcnNwKSwgJXJzcAorCXB1c2hxICVyY3gKKwlsZWFxCS5Ma0JvcmluZ1NT
TFJTQVNxcnRUd29fbG9jYWxfdGFyZ2V0KCVyaXApLCAlcmN4CisJc2hyeHEgJXJieCwgJXJjeCwg
JXJheAorCXBvcHEgJXJjeAorCWxlYXEgMTI4KCVyc3ApLCAlcnNwCisjIFdBUyBzaHJ4cQlrQm9y
aW5nU1NMUlNBU3FydFR3b0BHT1RQQ1JFTCglcmlwKSwgJXJieCwgJXJheAorCWxlYXEgLTEyOCgl
cnNwKSwgJXJzcAorCXB1c2hxICVyY3gKKwlsZWFxCS5Ma0JvcmluZ1NTTFJTQVNxcnRUd29fbG9j
YWxfdGFyZ2V0KCVyaXApLCAlcmN4CisJc2hyeHEgJXJjeCwgJXJieCwgJXJheAorCXBvcHEgJXJj
eAorCWxlYXEgMTI4KCVyc3ApLCAlcnNwCisKKworCS50eXBlCWtCb3JpbmdTU0xSU0FTcXJ0VHdv
LEBvYmplY3QgIyBAa0JvcmluZ1NTTFJTQVNxcnRUd28KKyMgV0FTIC5zZWN0aW9uCS5yb2RhdGEs
ImEiLEBwcm9nYml0cyx1bmlxdWUsNzYwCisudGV4dAorCS5nbG9ibAlrQm9yaW5nU1NMUlNBU3Fy
dFR3bworCS5wMmFsaWduCTQKKy5Ma0JvcmluZ1NTTFJTQVNxcnRUd29fbG9jYWxfdGFyZ2V0Ogor
a0JvcmluZ1NTTFJTQVNxcnRUd286CisJLnF1YWQJLTI0MDQ4MTQxNjU1NDgzMDE4ODYgICAgIyAw
eGRlYTA2MjQxZjdhYTgxYzIKKy50ZXh0CisubG9jIDEgMiAwCitCT1JJTkdTU0xfYmNtX3RleHRf
ZW5kOgorLnR5cGUgT1BFTlNTTF9pYTMyY2FwX2dldCwgQGZ1bmN0aW9uCisuZ2xvYmwgT1BFTlNT
TF9pYTMyY2FwX2dldAorLkxPUEVOU1NMX2lhMzJjYXBfZ2V0X2xvY2FsX3RhcmdldDoKK09QRU5T
U0xfaWEzMmNhcF9nZXQ6CisJbGVhcSBPUEVOU1NMX2lhMzJjYXBfUCglcmlwKSwgJXJheAorCXJl
dAorLmV4dGVybiBPUEVOU1NMX2lhMzJjYXBfUAorLnR5cGUgT1BFTlNTTF9pYTMyY2FwX2FkZHJf
ZGVsdGEsIEBvYmplY3QKKy5zaXplIE9QRU5TU0xfaWEzMmNhcF9hZGRyX2RlbHRhLCA4CitPUEVO
U1NMX2lhMzJjYXBfYWRkcl9kZWx0YToKKy5xdWFkIE9QRU5TU0xfaWEzMmNhcF9QLU9QRU5TU0xf
aWEzMmNhcF9hZGRyX2RlbHRhCisudHlwZSBCT1JJTkdTU0xfYmNtX3RleHRfaGFzaCwgQG9iamVj
dAorLnNpemUgQk9SSU5HU1NMX2JjbV90ZXh0X2hhc2gsIDY0CitCT1JJTkdTU0xfYmNtX3RleHRf
aGFzaDoKKy5ieXRlIDB4YWUKKy5ieXRlIDB4MmMKKy5ieXRlIDB4ZWEKKy5ieXRlIDB4MmEKKy5i
eXRlIDB4YmQKKy5ieXRlIDB4YTYKKy5ieXRlIDB4ZjMKKy5ieXRlIDB4ZWMKKy5ieXRlIDB4OTcK
Ky5ieXRlIDB4N2YKKy5ieXRlIDB4OWIKKy5ieXRlIDB4ZjYKKy5ieXRlIDB4OTQKKy5ieXRlIDB4
OWEKKy5ieXRlIDB4ZmMKKy5ieXRlIDB4ODMKKy5ieXRlIDB4NjgKKy5ieXRlIDB4MjcKKy5ieXRl
IDB4Y2IKKy5ieXRlIDB4YTAKKy5ieXRlIDB4YTAKKy5ieXRlIDB4OWYKKy5ieXRlIDB4NmIKKy5i
eXRlIDB4NmYKKy5ieXRlIDB4ZGUKKy5ieXRlIDB4NTIKKy5ieXRlIDB4Y2QKKy5ieXRlIDB4ZTIK
Ky5ieXRlIDB4Y2QKKy5ieXRlIDB4ZmYKKy5ieXRlIDB4MzEKKy5ieXRlIDB4ODAKKy5ieXRlIDB4
YTIKKy5ieXRlIDB4ZDQKKy5ieXRlIDB4YzMKKy5ieXRlIDB4NjYKKy5ieXRlIDB4ZgorLmJ5dGUg
MHhjMgorLmJ5dGUgMHg2YQorLmJ5dGUgMHg3YgorLmJ5dGUgMHhmNAorLmJ5dGUgMHhiZQorLmJ5
dGUgMHgzOQorLmJ5dGUgMHhhMgorLmJ5dGUgMHhkNworLmJ5dGUgMHgyNQorLmJ5dGUgMHhkYgor
LmJ5dGUgMHgyMQorLmJ5dGUgMHg5OAorLmJ5dGUgMHhlOQorLmJ5dGUgMHhkNQorLmJ5dGUgMHg1
MworLmJ5dGUgMHhiZgorLmJ5dGUgMHg1YworLmJ5dGUgMHgzMgorLmJ5dGUgMHg2CisuYnl0ZSAw
eDgzCisuYnl0ZSAweDM0CisuYnl0ZSAweGMKKy5ieXRlIDB4NjUKKy5ieXRlIDB4ODkKKy5ieXRl
IDB4NTIKKy5ieXRlIDB4YmQKKy5ieXRlIDB4MWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0
b29scy9pbmplY3RfaGFzaC9pbmplY3RfaGFzaC5nbyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2ZpcHN0b29scy9pbmpl
Y3RfaGFzaC9pbmplY3RfaGFzaC5nbwppbmRleCAyOTMwN2MwM2UyMWU5MGQ5MTZkZDQxMzhlYjk0
NzA2YTA5ZGI4ZWQ4Li42YmFiMTQzNGZhODAwZjNiNjdiNTY3NDY2YjQ1NTY4MGE0ZDBiMWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdXRpbC9maXBzdG9vbHMvaW5qZWN0X2hhc2gvaW5qZWN0X2hhc2guZ28K
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvc3JjL3V0aWwvZmlwc3Rvb2xzL2luamVjdF9oYXNoL2luamVjdF9oYXNoLmdvCkBAIC0y
MiwxMiArMjIsMTQgQEAgaW1wb3J0ICgKIAkiY3J5cHRvL2htYWMiCiAJImNyeXB0by9zaGE1MTIi
CiAJImRlYnVnL2VsZiIKKwkiZW5jb2RpbmcvYmluYXJ5IgogCSJlcnJvcnMiCiAJImZsYWciCiAJ
ImZtdCIKIAkiaW8iCiAJImlvL2lvdXRpbCIKIAkib3MiCisJInN0cmluZ3MiCiAKIAkiYm9yaW5n
c3NsLmdvb2dsZXNvdXJjZS5jb20vYm9yaW5nc3NsL3V0aWwvYXIiCiAJImJvcmluZ3NzbC5nb29n
bGVzb3VyY2UuY29tL2JvcmluZ3NzbC91dGlsL2ZpcHN0b29scy9maXBzY29tbW9uIgpAQCAtMzUs
NyArMzcsMTAgQEAgaW1wb3J0ICgKIAogZnVuYyBkbyhvdXRQYXRoLCBvSW5wdXQgc3RyaW5nLCBh
cklucHV0IHN0cmluZykgZXJyb3IgewogCXZhciBvYmplY3RCeXRlcyBbXWJ5dGUKKwl2YXIgaXNT
dGF0aWMgYm9vbAogCWlmIGxlbihhcklucHV0KSA+IDAgeworCQlpc1N0YXRpYyA9IHRydWUKKwog
CQlpZiBsZW4ob0lucHV0KSA+IDAgewogCQkJcmV0dXJuIGZtdC5FcnJvcmYoIi1pbi1hcmNoaXZl
IGFuZCAtaW4tb2JqZWN0IGFyZSBtdXR1YWxseSBleGNsdXNpdmUiKQogCQl9CkBAIC02Myw2ICs2
OCw3IEBAIGZ1bmMgZG8ob3V0UGF0aCwgb0lucHV0IHN0cmluZywgYXJJbnB1dCBzdHJpbmcpIGVy
cm9yIHsKIAkJaWYgb2JqZWN0Qnl0ZXMsIGVyciA9IGlvdXRpbC5SZWFkRmlsZShvSW5wdXQpOyBl
cnIgIT0gbmlsIHsKIAkJCXJldHVybiBlcnIKIAkJfQorCQlpc1N0YXRpYyA9IHN0cmluZ3MuSGFz
U3VmZml4KG9JbnB1dCwgIi5vIikKIAl9IGVsc2UgewogCQlyZXR1cm4gZm10LkVycm9yZigiZXhh
Y3RseSBvbmUgb2YgLWluLWFyY2hpdmUgb3IgLWluLW9iamVjdCBpcyByZXF1aXJlZCIpCiAJfQpA
QCAtNzIsMTUgKzc4LDE4IEBAIGZ1bmMgZG8ob3V0UGF0aCwgb0lucHV0IHN0cmluZywgYXJJbnB1
dCBzdHJpbmcpIGVycm9yIHsKIAkJcmV0dXJuIGVycm9ycy5OZXcoImZhaWxlZCB0byBwYXJzZSBv
YmplY3Q6ICIgKyBlcnIuRXJyb3IoKSkKIAl9CiAKLQkvLyBGaW5kIHRoZSAudGV4dCBzZWN0aW9u
LgorCS8vIEZpbmQgdGhlIC50ZXh0IGFuZCwgb3B0aW9uYWxseSwgLmRhdGEgc2VjdGlvbnMuCiAK
LQl2YXIgdGV4dFNlY3Rpb24gKmVsZi5TZWN0aW9uCi0JdmFyIHRleHRTZWN0aW9uSW5kZXggZWxm
LlNlY3Rpb25JbmRleAorCXZhciB0ZXh0U2VjdGlvbiwgcm9kYXRhU2VjdGlvbiAqZWxmLlNlY3Rp
b24KKwl2YXIgdGV4dFNlY3Rpb25JbmRleCwgcm9kYXRhU2VjdGlvbkluZGV4IGVsZi5TZWN0aW9u
SW5kZXgKIAlmb3IgaSwgc2VjdGlvbiA6PSByYW5nZSBvYmplY3QuU2VjdGlvbnMgewotCQlpZiBz
ZWN0aW9uLk5hbWUgPT0gIi50ZXh0IiB7CisJCXN3aXRjaCBzZWN0aW9uLk5hbWUgeworCQljYXNl
ICIudGV4dCI6CiAJCQl0ZXh0U2VjdGlvbkluZGV4ID0gZWxmLlNlY3Rpb25JbmRleChpKQogCQkJ
dGV4dFNlY3Rpb24gPSBzZWN0aW9uCi0JCQlicmVhaworCQljYXNlICIucm9kYXRhIjoKKwkJCXJv
ZGF0YVNlY3Rpb25JbmRleCA9IGVsZi5TZWN0aW9uSW5kZXgoaSkKKwkJCXJvZGF0YVNlY3Rpb24g
PSBzZWN0aW9uCiAJCX0KIAl9CiAKQEAgLTkwLDggKzk5LDcgQEAgZnVuYyBkbyhvdXRQYXRoLCBv
SW5wdXQgc3RyaW5nLCBhcklucHV0IHN0cmluZykgZXJyb3IgewogCiAJLy8gRmluZCB0aGUgc3Rh
cnRpbmcgYW5kIGVuZGluZyBzeW1ib2xzIGZvciB0aGUgbW9kdWxlLgogCi0JdmFyIHN0YXJ0U2Vl
biwgZW5kU2VlbiBib29sCi0JdmFyIHN0YXJ0LCBlbmQgdWludDY0CisJdmFyIHRleHRTdGFydCwg
dGV4dEVuZCwgcm9kYXRhU3RhcnQsIHJvZGF0YUVuZCAqdWludDY0CiAKIAlzeW1ib2xzLCBlcnIg
Oj0gb2JqZWN0LlN5bWJvbHMoKQogCWlmIGVyciAhPSBuaWwgewpAQCAtOTksNTAgKzEwNywxMTUg
QEAgZnVuYyBkbyhvdXRQYXRoLCBvSW5wdXQgc3RyaW5nLCBhcklucHV0IHN0cmluZykgZXJyb3Ig
ewogCX0KIAogCWZvciBfLCBzeW1ib2wgOj0gcmFuZ2Ugc3ltYm9scyB7Ci0JCWlmIHN5bWJvbC5T
ZWN0aW9uICE9IHRleHRTZWN0aW9uSW5kZXggeworCQl2YXIgYmFzZSB1aW50NjQKKwkJc3dpdGNo
IHN5bWJvbC5TZWN0aW9uIHsKKwkJY2FzZSB0ZXh0U2VjdGlvbkluZGV4OgorCQkJYmFzZSA9IHRl
eHRTZWN0aW9uLkFkZHIKKwkJY2FzZSByb2RhdGFTZWN0aW9uSW5kZXg6CisJCQlpZiByb2RhdGFT
ZWN0aW9uID09IG5pbCB7CisJCQkJY29udGludWUKKwkJCX0KKwkJCWJhc2UgPSByb2RhdGFTZWN0
aW9uLkFkZHIKKwkJZGVmYXVsdDoKIAkJCWNvbnRpbnVlCiAJCX0KIAorCQlpZiBpc1N0YXRpYyB7
CisJCQkvLyBTdGF0aWMgb2JqZWN0cyBhcHBlYXIgdG8gaGF2ZSBkaWZmZXJlbnQgc2VtYW50aWNz
IGFib3V0IHdoZXRoZXIgc3ltYm9sCisJCQkvLyB2YWx1ZXMgYXJlIHJlbGF0aXZlIHRvIHRoZWly
IHNlY3Rpb24gb3Igbm90LgorCQkJYmFzZSA9IDAKKwkJfSBlbHNlIGlmIHN5bWJvbC5WYWx1ZSA8
IGJhc2UgeworCQkJcmV0dXJuIGZtdC5FcnJvcmYoInN5bWJvbCAlcSBhdCAleCwgd2hpY2ggaXMg
YmVsb3cgYmFzZSBvZiAleCIsIHN5bWJvbC5OYW1lLCBzeW1ib2wuVmFsdWUsIGJhc2UpCisJCX0K
KworCQl2YWx1ZSA6PSBzeW1ib2wuVmFsdWUgLSBiYXNlCiAJCXN3aXRjaCBzeW1ib2wuTmFtZSB7
CiAJCWNhc2UgIkJPUklOR1NTTF9iY21fdGV4dF9zdGFydCI6Ci0JCQlpZiBzdGFydFNlZW4gewor
CQkJaWYgdGV4dFN0YXJ0ICE9IG5pbCB7CiAJCQkJcmV0dXJuIGVycm9ycy5OZXcoImR1cGxpY2F0
ZSBzdGFydCBzeW1ib2wgZm91bmQiKQogCQkJfQotCQkJc3RhcnRTZWVuID0gdHJ1ZQotCQkJc3Rh
cnQgPSBzeW1ib2wuVmFsdWUKKwkJCXRleHRTdGFydCA9ICZ2YWx1ZQogCQljYXNlICJCT1JJTkdT
U0xfYmNtX3RleHRfZW5kIjoKLQkJCWlmIGVuZFNlZW4geworCQkJaWYgdGV4dEVuZCAhPSBuaWwg
ewogCQkJCXJldHVybiBlcnJvcnMuTmV3KCJkdXBsaWNhdGUgZW5kIHN5bWJvbCBmb3VuZCIpCiAJ
CQl9Ci0JCQllbmRTZWVuID0gdHJ1ZQotCQkJZW5kID0gc3ltYm9sLlZhbHVlCisJCQl0ZXh0RW5k
ID0gJnZhbHVlCisJCWNhc2UgIkJPUklOR1NTTF9iY21fcm9kYXRhX3N0YXJ0IjoKKwkJCWlmIHJv
ZGF0YVN0YXJ0ICE9IG5pbCB7CisJCQkJcmV0dXJuIGVycm9ycy5OZXcoImR1cGxpY2F0ZSByb2Rh
dGEgc3RhcnQgc3ltYm9sIGZvdW5kIikKKwkJCX0KKwkJCXJvZGF0YVN0YXJ0ID0gJnZhbHVlCisJ
CWNhc2UgIkJPUklOR1NTTF9iY21fcm9kYXRhX2VuZCI6CisJCQlpZiByb2RhdGFFbmQgIT0gbmls
IHsKKwkJCQlyZXR1cm4gZXJyb3JzLk5ldygiZHVwbGljYXRlIHJvZGF0YSBlbmQgc3ltYm9sIGZv
dW5kIikKKwkJCX0KKwkJCXJvZGF0YUVuZCA9ICZ2YWx1ZQogCQlkZWZhdWx0OgogCQkJY29udGlu
dWUKIAkJfQogCX0KIAotCWlmICFzdGFydFNlZW4gfHwgIWVuZFNlZW4gewotCQlyZXR1cm4gZXJy
b3JzLk5ldygiY291bGQgbm90IGZpbmQgbW9kdWxlIGJvdW5kYXJpZXMgaW4gb2JqZWN0IikKKwlp
ZiB0ZXh0U3RhcnQgPT0gbmlsIHx8IHRleHRFbmQgPT0gbmlsIHsKKwkJcmV0dXJuIGVycm9ycy5O
ZXcoImNvdWxkIG5vdCBmaW5kIC50ZXh0IG1vZHVsZSBib3VuZGFyaWVzIGluIG9iamVjdCIpCisJ
fQorCisJaWYgKHJvZGF0YVN0YXJ0ID09IG5pbCkgIT0gKHJvZGF0YVNlY3Rpb24gPT0gbmlsKSB7
CisJCXJldHVybiBlcnJvcnMuTmV3KCJyb2RhdGEgc3RhcnQgbWFya2VyIGluY29uc2lzdGVudCB3
aXRoIHJvZGF0YSBzZWN0aW9uIHByZXNlbmNlIikKKwl9CisKKwlpZiAocm9kYXRhU3RhcnQgIT0g
bmlsKSAhPSAocm9kYXRhRW5kICE9IG5pbCkgeworCQlyZXR1cm4gZXJyb3JzLk5ldygicm9kYXRh
IG1hcmtlciBwcmVzZW5jZSBpbmNvbnNpc3RlbnQiKQogCX0KIAotCWlmIG1heCA6PSB0ZXh0U2Vj
dGlvbi5TaXplOyBzdGFydCA+IG1heCB8fCBzdGFydCA+IGVuZCB8fCBlbmQgPiBtYXggewotCQly
ZXR1cm4gZm10LkVycm9yZigiaW52YWxpZCBtb2R1bGUgYm91bmRhcmllczogc3RhcnQ6ICV4LCBl
bmQ6ICV4LCBtYXg6ICV4Iiwgc3RhcnQsIGVuZCwgbWF4KQorCWlmIG1heCA6PSB0ZXh0U2VjdGlv
bi5TaXplOyAqdGV4dFN0YXJ0ID4gbWF4IHx8ICp0ZXh0U3RhcnQgPiAqdGV4dEVuZCB8fCAqdGV4
dEVuZCA+IG1heCB7CisJCXJldHVybiBmbXQuRXJyb3JmKCJpbnZhbGlkIG1vZHVsZSAudGV4dCBi
b3VuZGFyaWVzOiBzdGFydDogJXgsIGVuZDogJXgsIG1heDogJXgiLCAqdGV4dFN0YXJ0LCAqdGV4
dEVuZCwgbWF4KQorCX0KKworCWlmIHJvZGF0YVNlY3Rpb24gIT0gbmlsIHsKKwkJaWYgbWF4IDo9
IHJvZGF0YVNlY3Rpb24uU2l6ZTsgKnJvZGF0YVN0YXJ0ID4gbWF4IHx8ICpyb2RhdGFTdGFydCA+
ICpyb2RhdGFFbmQgfHwgKnJvZGF0YUVuZCA+IG1heCB7CisJCQlyZXR1cm4gZm10LkVycm9yZigi
aW52YWxpZCBtb2R1bGUgLnJvZGF0YSBib3VuZGFyaWVzOiBzdGFydDogJXgsIGVuZDogJXgsIG1h
eDogJXgiLCAqcm9kYXRhU3RhcnQsICpyb2RhdGFFbmQsIG1heCkKKwkJfQogCX0KIAogCS8vIEV4
dHJhY3QgdGhlIG1vZHVsZSBmcm9tIHRoZSAudGV4dCBzZWN0aW9uIGFuZCBoYXNoIGl0LgogCiAJ
dGV4dCA6PSB0ZXh0U2VjdGlvbi5PcGVuKCkKLQlpZiBfLCBlcnIgOj0gdGV4dC5TZWVrKGludDY0
KHN0YXJ0KSwgMCk7IGVyciAhPSBuaWwgeworCWlmIF8sIGVyciA6PSB0ZXh0LlNlZWsoaW50NjQo
KnRleHRTdGFydCksIDApOyBlcnIgIT0gbmlsIHsKIAkJcmV0dXJuIGVycm9ycy5OZXcoImZhaWxl
ZCB0byBzZWVrIHRvIG1vZHVsZSBzdGFydCBpbiAudGV4dDogIiArIGVyci5FcnJvcigpKQogCX0K
LQltb2R1bGVUZXh0IDo9IG1ha2UoW11ieXRlLCBlbmQtc3RhcnQpCisJbW9kdWxlVGV4dCA6PSBt
YWtlKFtdYnl0ZSwgKnRleHRFbmQtKnRleHRTdGFydCkKIAlpZiBfLCBlcnIgOj0gaW8uUmVhZEZ1
bGwodGV4dCwgbW9kdWxlVGV4dCk7IGVyciAhPSBuaWwgewogCQlyZXR1cm4gZXJyb3JzLk5ldygi
ZmFpbGVkIHRvIHJlYWQgLnRleHQ6ICIgKyBlcnIuRXJyb3IoKSkKIAl9CiAKKwkvLyBNYXliZSBl
eHRyYWN0IHRoZSBtb2R1bGUncyByZWFkLW9ubHkgZGF0YSB0b28KKwl2YXIgbW9kdWxlUk9EYXRh
IFtdYnl0ZQorCWlmIHJvZGF0YVNlY3Rpb24gIT0gbmlsIHsKKwkJcm9kYXRhIDo9IHJvZGF0YVNl
Y3Rpb24uT3BlbigpCisJCWlmIF8sIGVyciA6PSByb2RhdGEuU2VlayhpbnQ2NCgqcm9kYXRhU3Rh
cnQpLCAwKTsgZXJyICE9IG5pbCB7CisJCQlyZXR1cm4gZXJyb3JzLk5ldygiZmFpbGVkIHRvIHNl
ZWsgdG8gbW9kdWxlIHN0YXJ0IGluIC5yb2RhdGE6ICIgKyBlcnIuRXJyb3IoKSkKKwkJfQorCQlt
b2R1bGVST0RhdGEgPSBtYWtlKFtdYnl0ZSwgKnJvZGF0YUVuZC0qcm9kYXRhU3RhcnQpCisJCWlm
IF8sIGVyciA6PSBpby5SZWFkRnVsbChyb2RhdGEsIG1vZHVsZVJPRGF0YSk7IGVyciAhPSBuaWwg
eworCQkJcmV0dXJuIGVycm9ycy5OZXcoImZhaWxlZCB0byByZWFkIC5yb2RhdGE6ICIgKyBlcnIu
RXJyb3IoKSkKKwkJfQorCX0KKwogCXZhciB6ZXJvS2V5IFs2NF1ieXRlCiAJbWFjIDo9IGhtYWMu
TmV3KHNoYTUxMi5OZXcsIHplcm9LZXlbOl0pCi0JbWFjLldyaXRlKG1vZHVsZVRleHQpCisKKwlp
ZiBtb2R1bGVST0RhdGEgIT0gbmlsIHsKKwkJdmFyIGxlbmd0aEJ5dGVzIFs4XWJ5dGUKKwkJYmlu
YXJ5LkxpdHRsZUVuZGlhbi5QdXRVaW50NjQobGVuZ3RoQnl0ZXNbOl0sIHVpbnQ2NChsZW4obW9k
dWxlVGV4dCkpKQorCQltYWMuV3JpdGUobGVuZ3RoQnl0ZXNbOl0pCisJCW1hYy5Xcml0ZShtb2R1
bGVUZXh0KQorCisJCWJpbmFyeS5MaXR0bGVFbmRpYW4uUHV0VWludDY0KGxlbmd0aEJ5dGVzWzpd
LCB1aW50NjQobGVuKG1vZHVsZVJPRGF0YSkpKQorCQltYWMuV3JpdGUobGVuZ3RoQnl0ZXNbOl0p
CisJCW1hYy5Xcml0ZShtb2R1bGVST0RhdGEpCisJfSBlbHNlIHsKKwkJbWFjLldyaXRlKG1vZHVs
ZVRleHQpCisJfQogCWNhbGN1bGF0ZWQgOj0gbWFjLlN1bShuaWwpCiAKIAkvLyBSZXBsYWNlIHRo
ZSBkZWZhdWx0IGhhc2ggdmFsdWUgaW4gdGhlIG9iamVjdCB3aXRoIHRoZSBjYWxjdWxhdGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2JvcmluZ3NzbC9zcmMvdXRpbC9nZW5lcmF0ZV9idWlsZF9maWxlcy5weSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGlsL2dl
bmVyYXRlX2J1aWxkX2ZpbGVzLnB5CmluZGV4IDljNjM1ZGNmNGFiMDBiM2M5YTJiNjUwMzA4ZDUw
NGZlN2MyMGEyOGQuLjU3ZTVlMWIxNDZlNDkwZTU4NmY2MWM5M2JhNzUzNTIxMThkY2ExN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3NyYy91dGlsL2dlbmVyYXRlX2J1aWxkX2ZpbGVzLnB5CisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy91dGls
L2dlbmVyYXRlX2J1aWxkX2ZpbGVzLnB5CkBAIC00NCw2ICs0NCw5IEBAIE5PTl9QRVJMX0ZJTEVT
ID0gewogICAgICAgICAnc3JjL2NyeXB0by9jdXJ2ZTI1NTE5L2FzbS94MjU1MTktYXNtLWFybS5T
JywKICAgICAgICAgJ3NyYy9jcnlwdG8vcG9seTEzMDUvcG9seTEzMDVfYXJtX2FzbS5TJywKICAg
ICBdLAorICAgICgnbGludXgnLCAneDg2XzY0Jyk6IFsKKyAgICAgICAgJ3NyYy9jcnlwdG8vaHJz
cy9hc20vcG9seV9ycV9tdWwuUycsCisgICAgXSwKIH0KIAogUFJFRklYID0gTm9uZQpAQCAtNzMs
NyArNzYsNiBAQCBjbGFzcyBBbmRyb2lkKG9iamVjdCk6CiAjIGxpbWl0YXRpb25zIHVuZGVyIHRo
ZSBMaWNlbnNlLgogCiAjIFRoaXMgZmlsZSBpcyBjcmVhdGVkIGJ5IGdlbmVyYXRlX2J1aWxkX2Zp
bGVzLnB5LiBEbyBub3QgZWRpdCBtYW51YWxseS4KLQogIiIiCiAKICAgZGVmIFByaW50VmFyaWFi
bGVTZWN0aW9uKHNlbGYsIG91dCwgbmFtZSwgZmlsZXMpOgpAQCAtODcsMTQgKzg5LDQ0IEBAIGNs
YXNzIEFuZHJvaWQob2JqZWN0KToKICAgICB3aXRoIG9wZW4oJ3NvdXJjZXMuYnAnLCAndysnKSBh
cyBibHVlcHJpbnQ6CiAgICAgICBibHVlcHJpbnQud3JpdGUoc2VsZi5oZWFkZXIucmVwbGFjZSgn
IycsICcvLycpKQogCi0gICAgICBibHVlcHJpbnQud3JpdGUoJ2NjX2RlZmF1bHRzIHtcbicpCi0g
ICAgICBibHVlcHJpbnQud3JpdGUoJyAgICBuYW1lOiAibGliY3J5cHRvX3NvdXJjZXMiLFxuJykK
LSAgICAgIGJsdWVwcmludC53cml0ZSgnICAgIHNyY3M6IFtcbicpCi0gICAgICBmb3IgZiBpbiBz
b3J0ZWQoZmlsZXNbJ2NyeXB0byddKToKLSAgICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAgICAg
ICIlcyIsXG4nICUgZikKLSAgICAgIGJsdWVwcmludC53cml0ZSgnICAgIF0sXG4nKQotICAgICAg
Ymx1ZXByaW50LndyaXRlKCcgICAgdGFyZ2V0OiB7XG4nKQorICAgICAgIyAgU2VwYXJhdGUgb3V0
IEJDTSBmaWxlcyB0byBhbGxvdyBkaWZmZXJlbnQgY29tcGlsYXRpb24gcnVsZXMgKHNwZWNpZmlj
IHRvIEFuZHJvaWQgRklQUykKKyAgICAgIGJjbV9jX2ZpbGVzID0gZmlsZXNbJ2JjbV9jcnlwdG8n
XQorICAgICAgbm9uX2JjbV9jX2ZpbGVzID0gW2ZpbGUgZm9yIGZpbGUgaW4gZmlsZXNbJ2NyeXB0
byddIGlmIGZpbGUgbm90IGluIGJjbV9jX2ZpbGVzXQorICAgICAgbm9uX2JjbV9hc20gPSBzZWxm
LkZpbHRlckJjbUFzbShhc21fb3V0cHV0cywgRmFsc2UpCisgICAgICBiY21fYXNtID0gc2VsZi5G
aWx0ZXJCY21Bc20oYXNtX291dHB1dHMsIFRydWUpCisKKyAgICAgIHNlbGYuUHJpbnREZWZhdWx0
cyhibHVlcHJpbnQsICdsaWJjcnlwdG9fc291cmNlcycsIG5vbl9iY21fY19maWxlcywgbm9uX2Jj
bV9hc20pCisgICAgICBzZWxmLlByaW50RGVmYXVsdHMoYmx1ZXByaW50LCAnbGliY3J5cHRvX2Jj
bV9zb3VyY2VzJywgYmNtX2NfZmlsZXMsIGJjbV9hc20pCisgICAgICBzZWxmLlByaW50RGVmYXVs
dHMoYmx1ZXByaW50LCAnbGlic3NsX3NvdXJjZXMnLCBmaWxlc1snc3NsJ10pCisgICAgICBzZWxm
LlByaW50RGVmYXVsdHMoYmx1ZXByaW50LCAnYnNzbF9zb3VyY2VzJywgZmlsZXNbJ3Rvb2wnXSkK
KyAgICAgIHNlbGYuUHJpbnREZWZhdWx0cyhibHVlcHJpbnQsICdib3Jpbmdzc2xfdGVzdF9zdXBw
b3J0X3NvdXJjZXMnLCBmaWxlc1sndGVzdF9zdXBwb3J0J10pCisgICAgICBzZWxmLlByaW50RGVm
YXVsdHMoYmx1ZXByaW50LCAnYm9yaW5nc3NsX2NyeXB0b190ZXN0X3NvdXJjZXMnLCBmaWxlc1sn
Y3J5cHRvX3Rlc3QnXSkKKyAgICAgIHNlbGYuUHJpbnREZWZhdWx0cyhibHVlcHJpbnQsICdib3Jp
bmdzc2xfc3NsX3Rlc3Rfc291cmNlcycsIGZpbGVzWydzc2xfdGVzdCddKQorCisgICAgIyBMZWdh
Y3kgQW5kcm9pZC5tayBmb3JtYXQsIG9ubHkgdXNlZCBieSBUcnVzdHkgaW4gbmV3IGJyYW5jaGVz
CisgICAgd2l0aCBvcGVuKCdzb3VyY2VzLm1rJywgJ3crJykgYXMgbWFrZWZpbGU6CisgICAgICBt
YWtlZmlsZS53cml0ZShzZWxmLmhlYWRlcikKKyAgICAgIG1ha2VmaWxlLndyaXRlKCdcbicpCisg
ICAgICBzZWxmLlByaW50VmFyaWFibGVTZWN0aW9uKG1ha2VmaWxlLCAnY3J5cHRvX3NvdXJjZXMn
LCBmaWxlc1snY3J5cHRvJ10pCiAKKyAgICAgIGZvciAoKG9zbmFtZSwgYXJjaCksIGFzbV9maWxl
cykgaW4gYXNtX291dHB1dHM6CisgICAgICAgIGlmIG9zbmFtZSAhPSAnbGludXgnOgorICAgICAg
ICAgIGNvbnRpbnVlCisgICAgICAgIHNlbGYuUHJpbnRWYXJpYWJsZVNlY3Rpb24oCisgICAgICAg
ICAgICBtYWtlZmlsZSwgJyVzXyVzX3NvdXJjZXMnICUgKG9zbmFtZSwgYXJjaCksIGFzbV9maWxl
cykKKworICBkZWYgUHJpbnREZWZhdWx0cyhzZWxmLCBibHVlcHJpbnQsIG5hbWUsIGZpbGVzLCBh
c21fb3V0cHV0cz17fSk6CisgICAgIiIiUHJpbnQgYSBjY19kZWZhdWx0cyBzZWN0aW9uIGZyb20g
YSBsaXN0IG9mIEMgZmlsZXMgYW5kIG9wdGlvbmFsbHkgYXNzZW1ibHkgb3V0cHV0cyIiIgorICAg
IGJsdWVwcmludC53cml0ZSgnXG4nKQorICAgIGJsdWVwcmludC53cml0ZSgnY2NfZGVmYXVsdHMg
e1xuJykKKyAgICBibHVlcHJpbnQud3JpdGUoJyAgICBuYW1lOiAiJXMiLFxuJyAlIG5hbWUpCisg
ICAgYmx1ZXByaW50LndyaXRlKCcgICAgc3JjczogW1xuJykKKyAgICBmb3IgZiBpbiBzb3J0ZWQo
ZmlsZXMpOgorICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAgICAgICIlcyIsXG4nICUgZikKKyAg
ICBibHVlcHJpbnQud3JpdGUoJyAgICBdLFxuJykKKworICAgIGlmIGFzbV9vdXRwdXRzOgorICAg
ICAgYmx1ZXByaW50LndyaXRlKCcgICAgdGFyZ2V0OiB7XG4nKQogICAgICAgZm9yICgob3NuYW1l
LCBhcmNoKSwgYXNtX2ZpbGVzKSBpbiBhc21fb3V0cHV0czoKICAgICAgICAgaWYgb3NuYW1lICE9
ICdsaW51eCcgb3IgYXJjaCA9PSAncHBjNjRsZSc6CiAgICAgICAgICAgY29udGludWUKQEAgLTEw
Nyw2MSArMTM5LDc4IEBAIGNsYXNzIEFuZHJvaWQob2JqZWN0KToKICAgICAgICAgICBibHVlcHJp
bnQud3JpdGUoJyAgICAgICAgICAgICAgICAiJXMiLFxuJyAlIGYpCiAgICAgICAgIGJsdWVwcmlu
dC53cml0ZSgnICAgICAgICAgICAgXSxcbicpCiAgICAgICAgIGJsdWVwcmludC53cml0ZSgnICAg
ICAgICB9LFxuJykKLQogICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAgfSxcbicpCi0gICAgICBi
bHVlcHJpbnQud3JpdGUoJ31cblxuJykKLQotICAgICAgYmx1ZXByaW50LndyaXRlKCdjY19kZWZh
dWx0cyB7XG4nKQotICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAgbmFtZTogImxpYnNzbF9zb3Vy
Y2VzIixcbicpCi0gICAgICBibHVlcHJpbnQud3JpdGUoJyAgICBzcmNzOiBbXG4nKQotICAgICAg
Zm9yIGYgaW4gc29ydGVkKGZpbGVzWydzc2wnXSk6Ci0gICAgICAgIGJsdWVwcmludC53cml0ZSgn
ICAgICAgICAiJXMiLFxuJyAlIGYpCi0gICAgICBibHVlcHJpbnQud3JpdGUoJyAgICBdLFxuJykK
LSAgICAgIGJsdWVwcmludC53cml0ZSgnfVxuXG4nKQotCi0gICAgICBibHVlcHJpbnQud3JpdGUo
J2NjX2RlZmF1bHRzIHtcbicpCi0gICAgICBibHVlcHJpbnQud3JpdGUoJyAgICBuYW1lOiAiYnNz
bF9zb3VyY2VzIixcbicpCi0gICAgICBibHVlcHJpbnQud3JpdGUoJyAgICBzcmNzOiBbXG4nKQot
ICAgICAgZm9yIGYgaW4gc29ydGVkKGZpbGVzWyd0b29sJ10pOgotICAgICAgICBibHVlcHJpbnQu
d3JpdGUoJyAgICAgICAgIiVzIixcbicgJSBmKQotICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAg
XSxcbicpCi0gICAgICBibHVlcHJpbnQud3JpdGUoJ31cblxuJykKLQotICAgICAgYmx1ZXByaW50
LndyaXRlKCdjY19kZWZhdWx0cyB7XG4nKQotICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAgbmFt
ZTogImJvcmluZ3NzbF90ZXN0X3N1cHBvcnRfc291cmNlcyIsXG4nKQotICAgICAgYmx1ZXByaW50
LndyaXRlKCcgICAgc3JjczogW1xuJykKLSAgICAgIGZvciBmIGluIHNvcnRlZChmaWxlc1sndGVz
dF9zdXBwb3J0J10pOgotICAgICAgICBibHVlcHJpbnQud3JpdGUoJyAgICAgICAgIiVzIixcbicg
JSBmKQotICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAgXSxcbicpCi0gICAgICBibHVlcHJpbnQu
d3JpdGUoJ31cblxuJykKLQotICAgICAgYmx1ZXByaW50LndyaXRlKCdjY19kZWZhdWx0cyB7XG4n
KQotICAgICAgYmx1ZXByaW50LndyaXRlKCcgICAgbmFtZTogImJvcmluZ3NzbF9jcnlwdG9fdGVz
dF9zb3VyY2VzIixcbicpCi0gICAgICBibHVlcHJpbnQud3JpdGUoJyAgICBzcmNzOiBbXG4nKQot
ICAgICAgZm9yIGYgaW4gc29ydGVkKGZpbGVzWydjcnlwdG9fdGVzdCddKToKLSAgICAgICAgYmx1
ZXByaW50LndyaXRlKCcgICAgICAgICIlcyIsXG4nICUgZikKLSAgICAgIGJsdWVwcmludC53cml0
ZSgnICAgIF0sXG4nKQotICAgICAgYmx1ZXByaW50LndyaXRlKCd9XG5cbicpCi0KLSAgICAgIGJs
dWVwcmludC53cml0ZSgnY2NfZGVmYXVsdHMge1xuJykKLSAgICAgIGJsdWVwcmludC53cml0ZSgn
ICAgIG5hbWU6ICJib3Jpbmdzc2xfc3NsX3Rlc3Rfc291cmNlcyIsXG4nKQotICAgICAgYmx1ZXBy
aW50LndyaXRlKCcgICAgc3JjczogW1xuJykKLSAgICAgIGZvciBmIGluIHNvcnRlZChmaWxlc1sn
c3NsX3Rlc3QnXSk6Ci0gICAgICAgIGJsdWVwcmludC53cml0ZSgnICAgICAgICAiJXMiLFxuJyAl
IGYpCi0gICAgICBibHVlcHJpbnQud3JpdGUoJyAgICBdLFxuJykKLSAgICAgIGJsdWVwcmludC53
cml0ZSgnfVxuXG4nKQogCi0gICAgIyBMZWdhY3kgQW5kcm9pZC5tayBmb3JtYXQsIG9ubHkgdXNl
ZCBieSBUcnVzdHkgaW4gbmV3IGJyYW5jaGVzCi0gICAgd2l0aCBvcGVuKCdzb3VyY2VzLm1rJywg
J3crJykgYXMgbWFrZWZpbGU6Ci0gICAgICBtYWtlZmlsZS53cml0ZShzZWxmLmhlYWRlcikKKyAg
ICBibHVlcHJpbnQud3JpdGUoJ31cbicpCiAKLSAgICAgIHNlbGYuUHJpbnRWYXJpYWJsZVNlY3Rp
b24obWFrZWZpbGUsICdjcnlwdG9fc291cmNlcycsIGZpbGVzWydjcnlwdG8nXSkKKyAgZGVmIEZp
bHRlckJjbUFzbShzZWxmLCBhc20sIHdhbnRfYmNtKToKKyAgICAiIiJGaWx0ZXIgYSBsaXN0IG9m
IGFzc2VtYmx5IG91dHB1dHMgYmFzZWQgb24gd2hldGhlciB0aGV5IGJlbG9uZyBpbiBCQ00KKwor
ICAgIEFyZ3M6CisgICAgICBhc206IEFzc2VtYmx5IGZpbGUgbGlzdHMgdG8gZmlsdGVyCisgICAg
ICB3YW50X2JjbTogSWYgdHJ1ZSB0aGVuIGluY2x1ZGUgQkNNIGZpbGVzLCBvdGhlcndpc2UgZG8g
bm90CisKKyAgICBSZXR1cm5zOgorICAgICAgQSBjb3B5IG9mIHxhc218IHdpdGggZmlsZXMgZmls
dGVyZWQgYWNjb3JkaW5nIHRvIHx3YW50X2JjbXwKKyAgICAiIiIKKyAgICByZXR1cm4gWyhhcmNo
aW5mbywgZmlsdGVyKGxhbWJkYSBwOiAoIi9jcnlwdG8vZmlwc21vZHVsZS8iIGluIHApID09IHdh
bnRfYmNtLCBmaWxlcykpCisgICAgICAgICAgICBmb3IgKGFyY2hpbmZvLCBmaWxlcykgaW4gYXNt
XQorCisKK2NsYXNzIEFuZHJvaWRDTWFrZShvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxm
KToKKyAgICBzZWxmLmhlYWRlciA9IFwKKyIiIiMgQ29weXJpZ2h0IChDKSAyMDE5IFRoZSBBbmRy
b2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0
aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5h
cGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBh
cHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJ
UywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmlj
IGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIg
dGhlIExpY2Vuc2UuCisKKyMgVGhpcyBmaWxlIGlzIGNyZWF0ZWQgYnkgZ2VuZXJhdGVfYnVpbGRf
ZmlsZXMucHkuIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorIyBUbyBzcGVjaWZ5IGEgY3VzdG9tIHBh
dGggcHJlZml4LCBzZXQgQk9SSU5HU1NMX1JPT1QgYmVmb3JlIGluY2x1ZGluZyB0aGlzCisjIGZp
bGUsIG9yIHVzZSBsaXN0KFRSQU5TRk9STSAuLi4gUFJFUEVORCkgZnJvbSBDTWFrZSAzLjEyLgor
CisiIiIKKworICBkZWYgUHJpbnRWYXJpYWJsZVNlY3Rpb24oc2VsZiwgb3V0LCBuYW1lLCBmaWxl
cyk6CisgICAgb3V0LndyaXRlKCdzZXQoJXNcbicgJSBuYW1lKQorICAgIGZvciBmIGluIHNvcnRl
ZChmaWxlcyk6CisgICAgICAjIElkZWFsbHkgYWRkaW5nIHRoZSBwcmVmaXggd291bGQgYmUgdGhl
IGNhbGxlcidzIGpvYiwgYnV0CisgICAgICAjIGxpc3QoVFJBTlNGT1JNIC4uLiBQUkVQRU5EKSBp
cyBvbmx5IGF2YWlsYWJsZSBzdGFydGluZyBDTWFrZSAzLjEyLiBXaGVuCisgICAgICAjIHNvdXJj
ZXMuY21ha2UgaXMgdGhlIHNvdXJjZSBvZiB0cnV0aCwgd2UgY2FuIGFzayBBbmRyb2lkIHRvIGVp
dGhlciB3cml0ZQorICAgICAgIyBhIENNYWtlIGZ1bmN0aW9uIG9yIHVwZGF0ZSB0byAzLjEyLgor
ICAgICAgb3V0LndyaXRlKCcgICR7Qk9SSU5HU1NMX1JPT1R9JXNcbicgJSBmKQorICAgIG91dC53
cml0ZSgnKVxuJykKKworICBkZWYgV3JpdGVGaWxlcyhzZWxmLCBmaWxlcywgYXNtX291dHB1dHMp
OgorICAgICMgVGhlIEFuZHJvaWQgZW11bGF0b3IgdXNlcyBhIGN1c3RvbSBDTWFrZSBidWlsZHN5
c3RlbS4KKyAgICAjCisgICAgIyBUT0RPKGRhdmlkYmVuKTogTW92ZSBvdXIgdmFyaW91cyBzb3Vy
Y2UgbGlzdHMgaW50byBzb3VyY2VzLmNtYWtlIGFuZCBoYXZlCisgICAgIyBBbmRyb2lkIGNvbnN1
bWUgdGhhdCBkaXJlY3RseS4KKyAgICB3aXRoIG9wZW4oJ2FuZHJvaWQtc291cmNlcy5jbWFrZScs
ICd3KycpIGFzIG91dDoKKyAgICAgIG91dC53cml0ZShzZWxmLmhlYWRlcikKKworICAgICAgc2Vs
Zi5QcmludFZhcmlhYmxlU2VjdGlvbihvdXQsICdjcnlwdG9fc291cmNlcycsIGZpbGVzWydjcnlw
dG8nXSkKKyAgICAgIHNlbGYuUHJpbnRWYXJpYWJsZVNlY3Rpb24ob3V0LCAnc3NsX3NvdXJjZXMn
LCBmaWxlc1snc3NsJ10pCisgICAgICBzZWxmLlByaW50VmFyaWFibGVTZWN0aW9uKG91dCwgJ3Rv
b2xfc291cmNlcycsIGZpbGVzWyd0b29sJ10pCisgICAgICBzZWxmLlByaW50VmFyaWFibGVTZWN0
aW9uKG91dCwgJ3Rlc3Rfc3VwcG9ydF9zb3VyY2VzJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmlsZXNbJ3Rlc3Rfc3VwcG9ydCddKQorICAgICAgc2VsZi5QcmludFZhcmlhYmxl
U2VjdGlvbihvdXQsICdjcnlwdG9fdGVzdF9zb3VyY2VzJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmlsZXNbJ2NyeXB0b190ZXN0J10pCisgICAgICBzZWxmLlByaW50VmFyaWFi
bGVTZWN0aW9uKG91dCwgJ3NzbF90ZXN0X3NvdXJjZXMnLCBmaWxlc1snc3NsX3Rlc3QnXSkKIAog
ICAgICAgZm9yICgob3NuYW1lLCBhcmNoKSwgYXNtX2ZpbGVzKSBpbiBhc21fb3V0cHV0czoKLSAg
ICAgICAgaWYgb3NuYW1lICE9ICdsaW51eCc6Ci0gICAgICAgICAgY29udGludWUKICAgICAgICAg
c2VsZi5QcmludFZhcmlhYmxlU2VjdGlvbigKLSAgICAgICAgICAgIG1ha2VmaWxlLCAnJXNfJXNf
c291cmNlcycgJSAob3NuYW1lLCBhcmNoKSwgYXNtX2ZpbGVzKQorICAgICAgICAgICAgb3V0LCAn
Y3J5cHRvX3NvdXJjZXNfJXNfJXMnICUgKG9zbmFtZSwgYXJjaCksIGFzbV9maWxlcykKIAogCiBj
bGFzcyBCYXplbChvYmplY3QpOgpAQCAtMzIyLDYgKzM3MSw4IEBAIGNsYXNzIEdOKG9iamVjdCk6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzWyd0ZXN0X3N1cHBvcnRfaGVh
ZGVycyddKQogICAgICAgc2VsZi5QcmludFZhcmlhYmxlU2VjdGlvbihvdXQsICdjcnlwdG9fdGVz
dF9zb3VyY2VzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNbJ2NyeXB0
b190ZXN0J10pCisgICAgICBzZWxmLlByaW50VmFyaWFibGVTZWN0aW9uKG91dCwgJ2NyeXB0b190
ZXN0X2RhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlc1snY3J5cHRv
X3Rlc3RfZGF0YSddKQogICAgICAgc2VsZi5QcmludFZhcmlhYmxlU2VjdGlvbihvdXQsICdzc2xf
dGVzdF9zb3VyY2VzJywgZmlsZXNbJ3NzbF90ZXN0J10pCiAKIApAQCAtNDEyLDcgKzQ2Myw3IEBA
IGRlZiBOb1Rlc3RSdW5uZXJGaWxlcyhwYXRoLCBkZW50LCBpc19kaXIpOgogCiAKIGRlZiBOb3RH
VGVzdFN1cHBvcnQocGF0aCwgZGVudCwgaXNfZGlyKToKLSAgcmV0dXJuICdndGVzdCcgbm90IGlu
IGRlbnQKKyAgcmV0dXJuICdndGVzdCcgbm90IGluIGRlbnQgYW5kICdhYmlfdGVzdCcgbm90IGlu
IGRlbnQKIAogCiBkZWYgU1NMSGVhZGVyRmlsZXMocGF0aCwgZGVudCwgaXNfZGlyKToKQEAgLTU4
Nyw3ICs2MzgsOCBAQCBkZWYgRXh0cmFjdFZhcmlhYmxlc0Zyb21DTWFrZUZpbGUoY21ha2VmaWxl
KToKIGRlZiBtYWluKHBsYXRmb3Jtcyk6CiAgIGNtYWtlID0gRXh0cmFjdFZhcmlhYmxlc0Zyb21D
TWFrZUZpbGUob3MucGF0aC5qb2luKCdzcmMnLCAnc291cmNlcy5jbWFrZScpKQogICBjcnlwdG9f
Y19maWxlcyA9IChGaW5kQ0ZpbGVzKG9zLnBhdGguam9pbignc3JjJywgJ2NyeXB0bycpLCBOb1Rl
c3RzTm9yRklQU0ZyYWdtZW50cykgKwotICAgICAgICAgICAgICAgICAgICBGaW5kQ0ZpbGVzKG9z
LnBhdGguam9pbignc3JjJywgJ3RoaXJkX3BhcnR5JywgJ2ZpYXQnKSwgTm9UZXN0c05vckZJUFNG
cmFnbWVudHMpKQorICAgICAgICAgICAgICAgICAgICBGaW5kQ0ZpbGVzKG9zLnBhdGguam9pbign
c3JjJywgJ3RoaXJkX3BhcnR5JywgJ2ZpYXQnKSwgTm9UZXN0c05vckZJUFNGcmFnbWVudHMpICsK
KyAgICAgICAgICAgICAgICAgICAgRmluZENGaWxlcyhvcy5wYXRoLmpvaW4oJ3NyYycsICd0aGly
ZF9wYXJ0eScsICdzaWtlJyksIE5vVGVzdHNOb3JGSVBTRnJhZ21lbnRzKSkKICAgZmlwc19mcmFn
bWVudHMgPSBGaW5kQ0ZpbGVzKG9zLnBhdGguam9pbignc3JjJywgJ2NyeXB0bycsICdmaXBzbW9k
dWxlJyksIE9ubHlGSVBTRnJhZ21lbnRzKQogICBzc2xfc291cmNlX2ZpbGVzID0gRmluZENGaWxl
cyhvcy5wYXRoLmpvaW4oJ3NyYycsICdzc2wnKSwgTm9UZXN0cykKICAgdG9vbF9jX2ZpbGVzID0g
RmluZENGaWxlcyhvcy5wYXRoLmpvaW4oJ3NyYycsICd0b29sJyksIE5vVGVzdHMpCkBAIC01OTks
NiArNjUxLDExIEBAIGRlZiBtYWluKHBsYXRmb3Jtcyk6CiAgIGZpcHNfZnJhZ21lbnRzLmFwcGVu
ZChwMjU2KQogICBjcnlwdG9fY19maWxlcy5yZW1vdmUocDI1NikKIAorICAjIEJDTSBzaGFyZWQg
bGlicmFyeSBDIGZpbGVzCisgIGJjbV9jcnlwdG9fY19maWxlcyA9IFsKKyAgICAgIG9zLnBhdGgu
am9pbignc3JjJywgJ2NyeXB0bycsICdmaXBzbW9kdWxlJywgJ2JjbS5jJykKKyAgXQorCiAgICMg
R2VuZXJhdGUgZXJyX2RhdGEuYwogICB3aXRoIG9wZW4oJ2Vycl9kYXRhLmMnLCAndysnKSBhcyBl
cnJfZGF0YToKICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWydnbycsICdydW4nLCAnZXJyX2Rh
dGFfZ2VuZXJhdGUuZ28nXSwKQEAgLTYyNCwxMiArNjgxLDE2IEBAIGRlZiBtYWluKHBsYXRmb3Jt
cyk6CiAKICAgY3J5cHRvX3Rlc3RfZmlsZXMgKz0gRmluZENGaWxlcyhvcy5wYXRoLmpvaW4oJ3Ny
YycsICdjcnlwdG8nKSwgT25seVRlc3RzKQogICBjcnlwdG9fdGVzdF9maWxlcyArPSBbCisgICAg
ICAnc3JjL2NyeXB0by90ZXN0L2FiaV90ZXN0LmNjJywKICAgICAgICdzcmMvY3J5cHRvL3Rlc3Qv
ZmlsZV90ZXN0X2d0ZXN0LmNjJywKICAgICAgICdzcmMvY3J5cHRvL3Rlc3QvZ3Rlc3RfbWFpbi5j
YycsCiAgIF0KIAogICBzc2xfdGVzdF9maWxlcyA9IEZpbmRDRmlsZXMob3MucGF0aC5qb2luKCdz
cmMnLCAnc3NsJyksIE9ubHlUZXN0cykKLSAgc3NsX3Rlc3RfZmlsZXMuYXBwZW5kKCdzcmMvY3J5
cHRvL3Rlc3QvZ3Rlc3RfbWFpbi5jYycpCisgIHNzbF90ZXN0X2ZpbGVzICs9IFsKKyAgICAgICdz
cmMvY3J5cHRvL3Rlc3QvYWJpX3Rlc3QuY2MnLAorICAgICAgJ3NyYy9jcnlwdG8vdGVzdC9ndGVz
dF9tYWluLmNjJywKKyAgXQogCiAgIGZ1enpfY19maWxlcyA9IEZpbmRDRmlsZXMob3MucGF0aC5q
b2luKCdzcmMnLCAnZnV6eicpLCBOb1Rlc3RzKQogCkBAIC02NDgsOSArNzA5LDExIEBAIGRlZiBt
YWluKHBsYXRmb3Jtcyk6CiAgIHNzbF9pbnRlcm5hbF9oX2ZpbGVzID0gRmluZEhlYWRlckZpbGVz
KG9zLnBhdGguam9pbignc3JjJywgJ3NzbCcpLCBOb1Rlc3RzKQogICBjcnlwdG9faW50ZXJuYWxf
aF9maWxlcyA9ICgKICAgICAgIEZpbmRIZWFkZXJGaWxlcyhvcy5wYXRoLmpvaW4oJ3NyYycsICdj
cnlwdG8nKSwgTm9UZXN0cykgKwotICAgICAgRmluZEhlYWRlckZpbGVzKG9zLnBhdGguam9pbign
c3JjJywgJ3RoaXJkX3BhcnR5JywgJ2ZpYXQnKSwgTm9UZXN0cykpCisgICAgICBGaW5kSGVhZGVy
RmlsZXMob3MucGF0aC5qb2luKCdzcmMnLCAndGhpcmRfcGFydHknLCAnZmlhdCcpLCBOb1Rlc3Rz
KSArCisgICAgICBGaW5kSGVhZGVyRmlsZXMob3MucGF0aC5qb2luKCdzcmMnLCAndGhpcmRfcGFy
dHknLCAnc2lrZScpLCBOb1Rlc3RzKSkKIAogICBmaWxlcyA9IHsKKyAgICAgICdiY21fY3J5cHRv
JzogYmNtX2NyeXB0b19jX2ZpbGVzLAogICAgICAgJ2NyeXB0byc6IGNyeXB0b19jX2ZpbGVzLAog
ICAgICAgJ2NyeXB0b19oZWFkZXJzJzogY3J5cHRvX2hfZmlsZXMsCiAgICAgICAnY3J5cHRvX2lu
dGVybmFsX2hlYWRlcnMnOiBjcnlwdG9faW50ZXJuYWxfaF9maWxlcywKQEAgLTY3OCwxMyArNzQx
LDEzIEBAIGRlZiBtYWluKHBsYXRmb3Jtcyk6CiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
CiAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcih1c2FnZT0nVXNhZ2U6ICVwcm9nIFst
LXByZWZpeD08cGF0aD5dJwotICAgICAgJyBbYW5kcm9pZHxiYXplbHxldXJla2F8Z258Z3lwXScp
CisgICAgICAnIFthbmRyb2lkfGFuZHJvaWQtY21ha2V8YmF6ZWx8ZXVyZWthfGdufGd5cF0nKQog
ICBwYXJzZXIuYWRkX29wdGlvbignLS1wcmVmaXgnLCBkZXN0PSdwcmVmaXgnLAogICAgICAgaGVs
cD0nRm9yIEJhemVsLCBwcmVwZW5kIGFyZ3VtZW50IHRvIGFsbCBzb3VyY2UgZmlsZXMnKQogICBw
YXJzZXIuYWRkX29wdGlvbigKICAgICAgICctLWVtYmVkX3Rlc3RfZGF0YScsIHR5cGU9J2Nob2lj
ZScsIGRlc3Q9J2VtYmVkX3Rlc3RfZGF0YScsCiAgICAgICBhY3Rpb249J3N0b3JlJywgZGVmYXVs
dD0idHJ1ZSIsIGNob2ljZXM9WyJ0cnVlIiwgImZhbHNlIl0sCi0gICAgICBoZWxwPSdGb3IgQmF6
ZWwsIGRvblwndCBlbWJlZCBkYXRhIGZpbGVzIGluIGNyeXB0b190ZXN0X2RhdGEuY2MnKQorICAg
ICAgaGVscD0nRm9yIEJhemVsIG9yIEdOLCBkb25cJ3QgZW1iZWQgZGF0YSBmaWxlcyBpbiBjcnlw
dG9fdGVzdF9kYXRhLmNjJykKICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKHN5
cy5hcmd2WzE6XSkKICAgUFJFRklYID0gb3B0aW9ucy5wcmVmaXgKICAgRU1CRURfVEVTVF9EQVRB
ID0gKG9wdGlvbnMuZW1iZWRfdGVzdF9kYXRhID09ICJ0cnVlIikKQEAgLTY5Nyw2ICs3NjAsOCBA
QCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICBmb3IgcyBpbiBhcmdzOgogICAgIGlmIHMg
PT0gJ2FuZHJvaWQnOgogICAgICAgcGxhdGZvcm1zLmFwcGVuZChBbmRyb2lkKCkpCisgICAgZWxp
ZiBzID09ICdhbmRyb2lkLWNtYWtlJzoKKyAgICAgIHBsYXRmb3Jtcy5hcHBlbmQoQW5kcm9pZENN
YWtlKCkpCiAgICAgZWxpZiBzID09ICdiYXplbCc6CiAgICAgICBwbGF0Zm9ybXMuYXBwZW5kKEJh
emVsKCkpCiAgICAgZWxpZiBzID09ICdldXJla2EnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvdGVzdF9kYXRhX2No
cm9taXVtLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvdGVzdF9kYXRhX2Nocm9taXVtLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkMjVkYjVhMGEx
N2NmN2YwNTFhYzkxNDg2ZDNkZmNhMGQ4MjdkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC90ZXN0X2Rh
dGFfY2hyb21pdW0uY2MKQEAgLTAsMCArMSwyMyBAQAorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIENo
cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisv
LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSAiYmFzZS9iYXNlX3BhdGhz
LmgiCisjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3BhdGguaCIKKyNpbmNsdWRlICJiYXNlL2Zp
bGVzL2ZpbGVfdXRpbC5oIgorI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorI2luY2x1ZGUgImJh
c2UvcGF0aF9zZXJ2aWNlLmgiCisKKy8vIEJvcmluZ1NTTCByZXF1aXJlcyBhIEdldFRlc3REYXRh
IGZ1bmN0aW9uIHRvIHBpY2sgdXAgdGVzdCBkYXRhIGZpbGVzLiBCeQorLy8gZGVmYXVsdCwgQm9y
aW5nU1NMIGdlbmVyYXRlcyBhIHNvdXJjZSBmaWxlIHdpdGggdGhlIGRhdGEgZW1iZWRkZWQsIGJ1
dCB0aGlzCisvLyBleGNlZWRzIHRoZSBsaW1pdCBmb3IgdGhlIF9DaGVja0ZvclRvb0xhcmdlRmls
ZXMgcHJlc3VibWl0IGNoZWNrLgorc3RkOjpzdHJpbmcgR2V0VGVzdERhdGEoY29uc3QgY2hhciAq
cGF0aCkgeworICBiYXNlOjpGaWxlUGF0aCBmaWxlX3BhdGg7CisgIGJhc2U6OlBhdGhTZXJ2aWNl
OjpHZXQoYmFzZTo6RElSX1NPVVJDRV9ST09ULCAmZmlsZV9wYXRoKTsKKyAgZmlsZV9wYXRoID0g
ZmlsZV9wYXRoLkFwcGVuZEFTQ0lJKCJ0aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjIik7CisgIGZp
bGVfcGF0aCA9IGZpbGVfcGF0aC5BcHBlbmRBU0NJSShwYXRoKTsKKworICBzdGQ6OnN0cmluZyBy
ZXN1bHQ7CisgIENIRUNLKGJhc2U6OlJlYWRGaWxlVG9TdHJpbmcoZmlsZV9wYXRoLCAmcmVzdWx0
KSk7CisgIHJldHVybiByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9maXBz
bW9kdWxlL2Flc25pLXg4Ni5hc20gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLXg4
Ni5hc20KaW5kZXggNjAyZDBiNDc1NjNhNzRjZmRmZjZkM2Q0NzEwMWJlMWIzZTczODFkZC4uNDcz
MDk1MDNkMjkxMjZiY2Y1OTFiYmExNDE2YTJiZjRkNTk5ZmE3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4
Ni9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS14ODYuYXNtCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODYvY3J5cHRvL2Zp
cHNtb2R1bGUvYWVzbmkteDg2LmFzbQpAQCAtMjEsMTAgKzIxLDI1IEBAIHNlY3Rpb24JLnRleHQJ
Y29kZSBhbGlnbj02NAogc2VjdGlvbgkudGV4dAljb2RlCiAlZW5kaWYKIDtleHRlcm4JX09QRU5T
U0xfaWEzMmNhcF9QCislaWZuZGVmIE5ERUJVRworZXh0ZXJuCV9CT1JJTkdTU0xfZnVuY3Rpb25f
aGl0CislZW5kaWYKIGdsb2JhbAlfYWVzX2h3X2VuY3J5cHQKIGFsaWduCTE2CiBfYWVzX2h3X2Vu
Y3J5cHQ6CiBMJF9hZXNfaHdfZW5jcnlwdF9iZWdpbjoKKyVpZm5kZWYgTkRFQlVHCisJcHVzaAll
YngKKwlwdXNoCWVkeAorCWNhbGwJTCQwMDBwaWMKK0wkMDAwcGljOgorCXBvcAllYngKKwlsZWEJ
ZWJ4LFsoX0JPUklOR1NTTF9mdW5jdGlvbl9oaXQrMS1MJDAwMHBpYykrZWJ4XQorCW1vdgllZHgs
MQorCW1vdglCWVRFIFtlYnhdLGRsCisJcG9wCWVkeAorCXBvcAllYngKKyVlbmRpZgogCW1vdgll
YXgsRFdPUkQgWzQrZXNwXQogCW1vdgllZHgsRFdPUkQgWzEyK2VzcF0KIAltb3Z1cHMJeG1tMixb
ZWF4XQpAQCAtMzQsMTIgKzQ5LDEyIEBAIEwkX2Flc19od19lbmNyeXB0X2JlZ2luOgogCW1vdnVw
cwl4bW0xLFsxNitlZHhdCiAJbGVhCWVkeCxbMzIrZWR4XQogCXhvcnBzCXhtbTIseG1tMAotTCQw
MDBlbmMxX2xvb3BfMToKK0wkMDAxZW5jMV9sb29wXzE6CiBkYgkxMDIsMTUsNTYsMjIwLDIwOQog
CWRlYwllY3gKIAltb3Z1cHMJeG1tMSxbZWR4XQogCWxlYQllZHgsWzE2K2VkeF0KLQlqbnoJTkVB
UiBMJDAwMGVuYzFfbG9vcF8xCisJam56CU5FQVIgTCQwMDFlbmMxX2xvb3BfMQogZGIJMTAyLDE1
LDU2LDIyMSwyMDkKIAlweG9yCXhtbTAseG1tMAogCXB4b3IJeG1tMSx4bW0xCkBAIC01OSwxMiAr
NzQsMTIgQEAgTCRfYWVzX2h3X2RlY3J5cHRfYmVnaW46CiAJbW92dXBzCXhtbTEsWzE2K2VkeF0K
IAlsZWEJZWR4LFszMitlZHhdCiAJeG9ycHMJeG1tMix4bW0wCi1MJDAwMWRlYzFfbG9vcF8yOgor
TCQwMDJkZWMxX2xvb3BfMjoKIGRiCTEwMiwxNSw1NiwyMjIsMjA5CiAJZGVjCWVjeAogCW1vdnVw
cwl4bW0xLFtlZHhdCiAJbGVhCWVkeCxbMTYrZWR4XQotCWpueglORUFSIEwkMDAxZGVjMV9sb29w
XzIKKwlqbnoJTkVBUiBMJDAwMmRlYzFfbG9vcF8yCiBkYgkxMDIsMTUsNTYsMjIzLDIwOQogCXB4
b3IJeG1tMCx4bW0wCiAJcHhvcgl4bW0xLHhtbTEKQEAgLTgyLDcgKzk3LDcgQEAgX19hZXNuaV9l
bmNyeXB0MjoKIAlsZWEJZWR4LFszMitlY3gqMStlZHhdCiAJbmVnCWVjeAogCWFkZAllY3gsMTYK
LUwkMDAyZW5jMl9sb29wOgorTCQwMDNlbmMyX2xvb3A6CiBkYgkxMDIsMTUsNTYsMjIwLDIwOQog
ZGIJMTAyLDE1LDU2LDIyMCwyMTcKIAltb3Z1cHMJeG1tMSxbZWN4KjErZWR4XQpAQCAtOTAsNyAr
MTA1LDcgQEAgZGIJMTAyLDE1LDU2LDIyMCwyMTcKIGRiCTEwMiwxNSw1NiwyMjAsMjA4CiBkYgkx
MDIsMTUsNTYsMjIwLDIxNgogCW1vdnVwcwl4bW0wLFtlY3gqMStlZHgtMTZdCi0Jam56CU5FQVIg
TCQwMDJlbmMyX2xvb3AKKwlqbnoJTkVBUiBMJDAwM2VuYzJfbG9vcAogZGIJMTAyLDE1LDU2LDIy
MCwyMDkKIGRiCTEwMiwxNSw1NiwyMjAsMjE3CiBkYgkxMDIsMTUsNTYsMjIxLDIwOApAQCAtMTA3
LDcgKzEyMiw3IEBAIF9fYWVzbmlfZGVjcnlwdDI6CiAJbGVhCWVkeCxbMzIrZWN4KjErZWR4XQog
CW5lZwllY3gKIAlhZGQJZWN4LDE2Ci1MJDAwM2RlYzJfbG9vcDoKK0wkMDA0ZGVjMl9sb29wOgog
ZGIJMTAyLDE1LDU2LDIyMiwyMDkKIGRiCTEwMiwxNSw1NiwyMjIsMjE3CiAJbW92dXBzCXhtbTEs
W2VjeCoxK2VkeF0KQEAgLTExNSw3ICsxMzAsNyBAQCBkYgkxMDIsMTUsNTYsMjIyLDIxNwogZGIJ
MTAyLDE1LDU2LDIyMiwyMDgKIGRiCTEwMiwxNSw1NiwyMjIsMjE2CiAJbW92dXBzCXhtbTAsW2Vj
eCoxK2VkeC0xNl0KLQlqbnoJTkVBUiBMJDAwM2RlYzJfbG9vcAorCWpueglORUFSIEwkMDA0ZGVj
Ml9sb29wCiBkYgkxMDIsMTUsNTYsMjIyLDIwOQogZGIJMTAyLDE1LDU2LDIyMiwyMTcKIGRiCTEw
MiwxNSw1NiwyMjMsMjA4CkBAIC0xMzMsNyArMTQ4LDcgQEAgX19hZXNuaV9lbmNyeXB0MzoKIAls
ZWEJZWR4LFszMitlY3gqMStlZHhdCiAJbmVnCWVjeAogCWFkZAllY3gsMTYKLUwkMDA0ZW5jM19s
b29wOgorTCQwMDVlbmMzX2xvb3A6CiBkYgkxMDIsMTUsNTYsMjIwLDIwOQogZGIJMTAyLDE1LDU2
LDIyMCwyMTcKIGRiCTEwMiwxNSw1NiwyMjAsMjI1CkBAIC0xNDMsNyArMTU4LDcgQEAgZGIJMTAy
LDE1LDU2LDIyMCwyMDgKIGRiCTEwMiwxNSw1NiwyMjAsMjE2CiBkYgkxMDIsMTUsNTYsMjIwLDIy
NAogCW1vdnVwcwl4bW0wLFtlY3gqMStlZHgtMTZdCi0Jam56CU5FQVIgTCQwMDRlbmMzX2xvb3AK
KwlqbnoJTkVBUiBMJDAwNWVuYzNfbG9vcAogZGIJMTAyLDE1LDU2LDIyMCwyMDkKIGRiCTEwMiwx
NSw1NiwyMjAsMjE3CiBkYgkxMDIsMTUsNTYsMjIwLDIyNQpAQCAtMTYzLDcgKzE3OCw3IEBAIF9f
YWVzbmlfZGVjcnlwdDM6CiAJbGVhCWVkeCxbMzIrZWN4KjErZWR4XQogCW5lZwllY3gKIAlhZGQJ
ZWN4LDE2Ci1MJDAwNWRlYzNfbG9vcDoKK0wkMDA2ZGVjM19sb29wOgogZGIJMTAyLDE1LDU2LDIy
MiwyMDkKIGRiCTEwMiwxNSw1NiwyMjIsMjE3CiBkYgkxMDIsMTUsNTYsMjIyLDIyNQpAQCAtMTcz
LDcgKzE4OCw3IEBAIGRiCTEwMiwxNSw1NiwyMjIsMjA4CiBkYgkxMDIsMTUsNTYsMjIyLDIxNgog
ZGIJMTAyLDE1LDU2LDIyMiwyMjQKIAltb3Z1cHMJeG1tMCxbZWN4KjErZWR4LTE2XQotCWpueglO
RUFSIEwkMDA1ZGVjM19sb29wCisJam56CU5FQVIgTCQwMDZkZWMzX2xvb3AKIGRiCTEwMiwxNSw1
NiwyMjIsMjA5CiBkYgkxMDIsMTUsNTYsMjIyLDIxNwogZGIJMTAyLDE1LDU2LDIyMiwyMjUKQEAg
LTE5NSw3ICsyMTAsNyBAQCBfX2Flc25pX2VuY3J5cHQ0OgogCW5lZwllY3gKIGRiCTE1LDMxLDY0
LDAKIAlhZGQJZWN4LDE2Ci1MJDAwNmVuYzRfbG9vcDoKK0wkMDA3ZW5jNF9sb29wOgogZGIJMTAy
LDE1LDU2LDIyMCwyMDkKIGRiCTEwMiwxNSw1NiwyMjAsMjE3CiBkYgkxMDIsMTUsNTYsMjIwLDIy
NQpAQCAtMjA3LDcgKzIyMiw3IEBAIGRiCTEwMiwxNSw1NiwyMjAsMjE2CiBkYgkxMDIsMTUsNTYs
MjIwLDIyNAogZGIJMTAyLDE1LDU2LDIyMCwyMzIKIAltb3Z1cHMJeG1tMCxbZWN4KjErZWR4LTE2
XQotCWpueglORUFSIEwkMDA2ZW5jNF9sb29wCisJam56CU5FQVIgTCQwMDdlbmM0X2xvb3AKIGRi
CTEwMiwxNSw1NiwyMjAsMjA5CiBkYgkxMDIsMTUsNTYsMjIwLDIxNwogZGIJMTAyLDE1LDU2LDIy
MCwyMjUKQEAgLTIzMSw3ICsyNDYsNyBAQCBfX2Flc25pX2RlY3J5cHQ0OgogCW5lZwllY3gKIGRi
CTE1LDMxLDY0LDAKIAlhZGQJZWN4LDE2Ci1MJDAwN2RlYzRfbG9vcDoKK0wkMDA4ZGVjNF9sb29w
OgogZGIJMTAyLDE1LDU2LDIyMiwyMDkKIGRiCTEwMiwxNSw1NiwyMjIsMjE3CiBkYgkxMDIsMTUs
NTYsMjIyLDIyNQpAQCAtMjQzLDcgKzI1OCw3IEBAIGRiCTEwMiwxNSw1NiwyMjIsMjE2CiBkYgkx
MDIsMTUsNTYsMjIyLDIyNAogZGIJMTAyLDE1LDU2LDIyMiwyMzIKIAltb3Z1cHMJeG1tMCxbZWN4
KjErZWR4LTE2XQotCWpueglORUFSIEwkMDA3ZGVjNF9sb29wCisJam56CU5FQVIgTCQwMDhkZWM0
X2xvb3AKIGRiCTEwMiwxNSw1NiwyMjIsMjA5CiBkYgkxMDIsMTUsNTYsMjIyLDIxNwogZGIJMTAy
LDE1LDU2LDIyMiwyMjUKQEAgLTI3MSwxMyArMjg2LDEzIEBAIGRiCTEwMiwxNSw1NiwyMjAsMjI1
CiAJcHhvcgl4bW03LHhtbTAKIAltb3Z1cHMJeG1tMCxbZWN4KjErZWR4XQogCWFkZAllY3gsMTYK
LQlqbXAJTkVBUiBMJDAwOF9hZXNuaV9lbmNyeXB0Nl9pbm5lcgorCWptcAlORUFSIEwkMDA5X2Fl
c25pX2VuY3J5cHQ2X2lubmVyCiBhbGlnbgkxNgotTCQwMDllbmM2X2xvb3A6CitMJDAxMGVuYzZf
bG9vcDoKIGRiCTEwMiwxNSw1NiwyMjAsMjA5CiBkYgkxMDIsMTUsNTYsMjIwLDIxNwogZGIJMTAy
LDE1LDU2LDIyMCwyMjUKLUwkMDA4X2Flc25pX2VuY3J5cHQ2X2lubmVyOgorTCQwMDlfYWVzbmlf
ZW5jcnlwdDZfaW5uZXI6CiBkYgkxMDIsMTUsNTYsMjIwLDIzMwogZGIJMTAyLDE1LDU2LDIyMCwy
NDEKIGRiCTEwMiwxNSw1NiwyMjAsMjQ5CkBAIC0yOTEsNyArMzA2LDcgQEAgZGIJMTAyLDE1LDU2
LDIyMCwyMzIKIGRiCTEwMiwxNSw1NiwyMjAsMjQwCiBkYgkxMDIsMTUsNTYsMjIwLDI0OAogCW1v
dnVwcwl4bW0wLFtlY3gqMStlZHgtMTZdCi0Jam56CU5FQVIgTCQwMDllbmM2X2xvb3AKKwlqbnoJ
TkVBUiBMJDAxMGVuYzZfbG9vcAogZGIJMTAyLDE1LDU2LDIyMCwyMDkKIGRiCTEwMiwxNSw1Niwy
MjAsMjE3CiBkYgkxMDIsMTUsNTYsMjIwLDIyNQpAQCAtMzIzLDEzICszMzgsMTMgQEAgZGIJMTAy
LDE1LDU2LDIyMiwyMjUKIAlweG9yCXhtbTcseG1tMAogCW1vdnVwcwl4bW0wLFtlY3gqMStlZHhd
CiAJYWRkCWVjeCwxNgotCWptcAlORUFSIEwkMDEwX2Flc25pX2RlY3J5cHQ2X2lubmVyCisJam1w
CU5FQVIgTCQwMTFfYWVzbmlfZGVjcnlwdDZfaW5uZXIKIGFsaWduCTE2Ci1MJDAxMWRlYzZfbG9v
cDoKK0wkMDEyZGVjNl9sb29wOgogZGIJMTAyLDE1LDU2LDIyMiwyMDkKIGRiCTEwMiwxNSw1Niwy
MjIsMjE3CiBkYgkxMDIsMTUsNTYsMjIyLDIyNQotTCQwMTBfYWVzbmlfZGVjcnlwdDZfaW5uZXI6
CitMJDAxMV9hZXNuaV9kZWNyeXB0Nl9pbm5lcjoKIGRiCTEwMiwxNSw1NiwyMjIsMjMzCiBkYgkx
MDIsMTUsNTYsMjIyLDI0MQogZGIJMTAyLDE1LDU2LDIyMiwyNDkKQEAgLTM0Myw3ICszNTgsNyBA
QCBkYgkxMDIsMTUsNTYsMjIyLDIzMgogZGIJMTAyLDE1LDU2LDIyMiwyNDAKIGRiCTEwMiwxNSw1
NiwyMjIsMjQ4CiAJbW92dXBzCXhtbTAsW2VjeCoxK2VkeC0xNl0KLQlqbnoJTkVBUiBMJDAxMWRl
YzZfbG9vcAorCWpueglORUFSIEwkMDEyZGVjNl9sb29wCiBkYgkxMDIsMTUsNTYsMjIyLDIwOQog
ZGIJMTAyLDE1LDU2LDIyMiwyMTcKIGRiCTEwMiwxNSw1NiwyMjIsMjI1CkBAIC0zNzEsMTQgKzM4
NiwxNCBAQCBMJF9hZXNfaHdfZWNiX2VuY3J5cHRfYmVnaW46CiAJbW92CWVkeCxEV09SRCBbMzIr
ZXNwXQogCW1vdgllYngsRFdPUkQgWzM2K2VzcF0KIAlhbmQJZWF4LC0xNgotCWp6CU5FQVIgTCQw
MTJlY2JfcmV0CisJanoJTkVBUiBMJDAxM2VjYl9yZXQKIAltb3YJZWN4LERXT1JEIFsyNDArZWR4
XQogCXRlc3QJZWJ4LGVieAotCWp6CU5FQVIgTCQwMTNlY2JfZGVjcnlwdAorCWp6CU5FQVIgTCQw
MTRlY2JfZGVjcnlwdAogCW1vdgllYnAsZWR4CiAJbW92CWVieCxlY3gKIAljbXAJZWF4LDk2Ci0J
amIJTkVBUiBMJDAxNGVjYl9lbmNfdGFpbAorCWpiCU5FQVIgTCQwMTVlY2JfZW5jX3RhaWwKIAlt
b3ZkcXUJeG1tMixbZXNpXQogCW1vdmRxdQl4bW0zLFsxNitlc2ldCiAJbW92ZHF1CXhtbTQsWzMy
K2VzaV0KQEAgLTM4Nyw5ICs0MDIsOSBAQCBMJF9hZXNfaHdfZWNiX2VuY3J5cHRfYmVnaW46CiAJ
bW92ZHF1CXhtbTcsWzgwK2VzaV0KIAlsZWEJZXNpLFs5Nitlc2ldCiAJc3ViCWVheCw5NgotCWpt
cAlORUFSIEwkMDE1ZWNiX2VuY19sb29wNl9lbnRlcgorCWptcAlORUFSIEwkMDE2ZWNiX2VuY19s
b29wNl9lbnRlcgogYWxpZ24JMTYKLUwkMDE2ZWNiX2VuY19sb29wNjoKK0wkMDE3ZWNiX2VuY19s
b29wNjoKIAltb3Z1cHMJW2VkaV0seG1tMgogCW1vdmRxdQl4bW0yLFtlc2ldCiAJbW92dXBzCVsx
NitlZGldLHhtbTMKQEAgLTQwNCwxMiArNDE5LDEyIEBAIEwkMDE2ZWNiX2VuY19sb29wNjoKIAls
ZWEJZWRpLFs5NitlZGldCiAJbW92ZHF1CXhtbTcsWzgwK2VzaV0KIAlsZWEJZXNpLFs5Nitlc2ld
Ci1MJDAxNWVjYl9lbmNfbG9vcDZfZW50ZXI6CitMJDAxNmVjYl9lbmNfbG9vcDZfZW50ZXI6CiAJ
Y2FsbAlfX2Flc25pX2VuY3J5cHQ2CiAJbW92CWVkeCxlYnAKIAltb3YJZWN4LGVieAogCXN1Ygll
YXgsOTYKLQlqbmMJTkVBUiBMJDAxNmVjYl9lbmNfbG9vcDYKKwlqbmMJTkVBUiBMJDAxN2VjYl9l
bmNfbG9vcDYKIAltb3Z1cHMJW2VkaV0seG1tMgogCW1vdnVwcwlbMTYrZWRpXSx4bW0zCiAJbW92
dXBzCVszMitlZGldLHhtbTQKQEAgLTQxOCwxOCArNDMzLDE4IEBAIEwkMDE1ZWNiX2VuY19sb29w
Nl9lbnRlcjoKIAltb3Z1cHMJWzgwK2VkaV0seG1tNwogCWxlYQllZGksWzk2K2VkaV0KIAlhZGQJ
ZWF4LDk2Ci0JanoJTkVBUiBMJDAxMmVjYl9yZXQKLUwkMDE0ZWNiX2VuY190YWlsOgorCWp6CU5F
QVIgTCQwMTNlY2JfcmV0CitMJDAxNWVjYl9lbmNfdGFpbDoKIAltb3Z1cHMJeG1tMixbZXNpXQog
CWNtcAllYXgsMzIKLQlqYglORUFSIEwkMDE3ZWNiX2VuY19vbmUKKwlqYglORUFSIEwkMDE4ZWNi
X2VuY19vbmUKIAltb3Z1cHMJeG1tMyxbMTYrZXNpXQotCWplCU5FQVIgTCQwMThlY2JfZW5jX3R3
bworCWplCU5FQVIgTCQwMTllY2JfZW5jX3R3bwogCW1vdnVwcwl4bW00LFszMitlc2ldCiAJY21w
CWVheCw2NAotCWpiCU5FQVIgTCQwMTllY2JfZW5jX3RocmVlCisJamIJTkVBUiBMJDAyMGVjYl9l
bmNfdGhyZWUKIAltb3Z1cHMJeG1tNSxbNDgrZXNpXQotCWplCU5FQVIgTCQwMjBlY2JfZW5jX2Zv
dXIKKwlqZQlORUFSIEwkMDIxZWNiX2VuY19mb3VyCiAJbW92dXBzCXhtbTYsWzY0K2VzaV0KIAl4
b3Jwcwl4bW03LHhtbTcKIAljYWxsCV9fYWVzbmlfZW5jcnlwdDYKQEAgLTQzOCw0OSArNDUzLDQ5
IEBAIEwkMDE0ZWNiX2VuY190YWlsOgogCW1vdnVwcwlbMzIrZWRpXSx4bW00CiAJbW92dXBzCVs0
OCtlZGldLHhtbTUKIAltb3Z1cHMJWzY0K2VkaV0seG1tNgotCWptcAlORUFSIEwkMDEyZWNiX3Jl
dAorCWptcAlORUFSIEwkMDEzZWNiX3JldAogYWxpZ24JMTYKLUwkMDE3ZWNiX2VuY19vbmU6CitM
JDAxOGVjYl9lbmNfb25lOgogCW1vdnVwcwl4bW0wLFtlZHhdCiAJbW92dXBzCXhtbTEsWzE2K2Vk
eF0KIAlsZWEJZWR4LFszMitlZHhdCiAJeG9ycHMJeG1tMix4bW0wCi1MJDAyMWVuYzFfbG9vcF8z
OgorTCQwMjJlbmMxX2xvb3BfMzoKIGRiCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjCWVjeAogCW1v
dnVwcwl4bW0xLFtlZHhdCiAJbGVhCWVkeCxbMTYrZWR4XQotCWpueglORUFSIEwkMDIxZW5jMV9s
b29wXzMKKwlqbnoJTkVBUiBMJDAyMmVuYzFfbG9vcF8zCiBkYgkxMDIsMTUsNTYsMjIxLDIwOQog
CW1vdnVwcwlbZWRpXSx4bW0yCi0Jam1wCU5FQVIgTCQwMTJlY2JfcmV0CisJam1wCU5FQVIgTCQw
MTNlY2JfcmV0CiBhbGlnbgkxNgotTCQwMThlY2JfZW5jX3R3bzoKK0wkMDE5ZWNiX2VuY190d286
CiAJY2FsbAlfX2Flc25pX2VuY3J5cHQyCiAJbW92dXBzCVtlZGldLHhtbTIKIAltb3Z1cHMJWzE2
K2VkaV0seG1tMwotCWptcAlORUFSIEwkMDEyZWNiX3JldAorCWptcAlORUFSIEwkMDEzZWNiX3Jl
dAogYWxpZ24JMTYKLUwkMDE5ZWNiX2VuY190aHJlZToKK0wkMDIwZWNiX2VuY190aHJlZToKIAlj
YWxsCV9fYWVzbmlfZW5jcnlwdDMKIAltb3Z1cHMJW2VkaV0seG1tMgogCW1vdnVwcwlbMTYrZWRp
XSx4bW0zCiAJbW92dXBzCVszMitlZGldLHhtbTQKLQlqbXAJTkVBUiBMJDAxMmVjYl9yZXQKKwlq
bXAJTkVBUiBMJDAxM2VjYl9yZXQKIGFsaWduCTE2Ci1MJDAyMGVjYl9lbmNfZm91cjoKK0wkMDIx
ZWNiX2VuY19mb3VyOgogCWNhbGwJX19hZXNuaV9lbmNyeXB0NAogCW1vdnVwcwlbZWRpXSx4bW0y
CiAJbW92dXBzCVsxNitlZGldLHhtbTMKIAltb3Z1cHMJWzMyK2VkaV0seG1tNAogCW1vdnVwcwlb
NDgrZWRpXSx4bW01Ci0Jam1wCU5FQVIgTCQwMTJlY2JfcmV0CisJam1wCU5FQVIgTCQwMTNlY2Jf
cmV0CiBhbGlnbgkxNgotTCQwMTNlY2JfZGVjcnlwdDoKK0wkMDE0ZWNiX2RlY3J5cHQ6CiAJbW92
CWVicCxlZHgKIAltb3YJZWJ4LGVjeAogCWNtcAllYXgsOTYKLQlqYglORUFSIEwkMDIyZWNiX2Rl
Y190YWlsCisJamIJTkVBUiBMJDAyM2VjYl9kZWNfdGFpbAogCW1vdmRxdQl4bW0yLFtlc2ldCiAJ
bW92ZHF1CXhtbTMsWzE2K2VzaV0KIAltb3ZkcXUJeG1tNCxbMzIrZXNpXQpAQCAtNDg5LDkgKzUw
NCw5IEBAIEwkMDEzZWNiX2RlY3J5cHQ6CiAJbW92ZHF1CXhtbTcsWzgwK2VzaV0KIAlsZWEJZXNp
LFs5Nitlc2ldCiAJc3ViCWVheCw5NgotCWptcAlORUFSIEwkMDIzZWNiX2RlY19sb29wNl9lbnRl
cgorCWptcAlORUFSIEwkMDI0ZWNiX2RlY19sb29wNl9lbnRlcgogYWxpZ24JMTYKLUwkMDI0ZWNi
X2RlY19sb29wNjoKK0wkMDI1ZWNiX2RlY19sb29wNjoKIAltb3Z1cHMJW2VkaV0seG1tMgogCW1v
dmRxdQl4bW0yLFtlc2ldCiAJbW92dXBzCVsxNitlZGldLHhtbTMKQEAgLTUwNiwxMiArNTIxLDEy
IEBAIEwkMDI0ZWNiX2RlY19sb29wNjoKIAlsZWEJZWRpLFs5NitlZGldCiAJbW92ZHF1CXhtbTcs
WzgwK2VzaV0KIAlsZWEJZXNpLFs5Nitlc2ldCi1MJDAyM2VjYl9kZWNfbG9vcDZfZW50ZXI6CitM
JDAyNGVjYl9kZWNfbG9vcDZfZW50ZXI6CiAJY2FsbAlfX2Flc25pX2RlY3J5cHQ2CiAJbW92CWVk
eCxlYnAKIAltb3YJZWN4LGVieAogCXN1YgllYXgsOTYKLQlqbmMJTkVBUiBMJDAyNGVjYl9kZWNf
bG9vcDYKKwlqbmMJTkVBUiBMJDAyNWVjYl9kZWNfbG9vcDYKIAltb3Z1cHMJW2VkaV0seG1tMgog
CW1vdnVwcwlbMTYrZWRpXSx4bW0zCiAJbW92dXBzCVszMitlZGldLHhtbTQKQEAgLTUyMCwxOCAr
NTM1LDE4IEBAIEwkMDIzZWNiX2RlY19sb29wNl9lbnRlcjoKIAltb3Z1cHMJWzgwK2VkaV0seG1t
NwogCWxlYQllZGksWzk2K2VkaV0KIAlhZGQJZWF4LDk2Ci0JanoJTkVBUiBMJDAxMmVjYl9yZXQK
LUwkMDIyZWNiX2RlY190YWlsOgorCWp6CU5FQVIgTCQwMTNlY2JfcmV0CitMJDAyM2VjYl9kZWNf
dGFpbDoKIAltb3Z1cHMJeG1tMixbZXNpXQogCWNtcAllYXgsMzIKLQlqYglORUFSIEwkMDI1ZWNi
X2RlY19vbmUKKwlqYglORUFSIEwkMDI2ZWNiX2RlY19vbmUKIAltb3Z1cHMJeG1tMyxbMTYrZXNp
XQotCWplCU5FQVIgTCQwMjZlY2JfZGVjX3R3bworCWplCU5FQVIgTCQwMjdlY2JfZGVjX3R3bwog
CW1vdnVwcwl4bW00LFszMitlc2ldCiAJY21wCWVheCw2NAotCWpiCU5FQVIgTCQwMjdlY2JfZGVj
X3RocmVlCisJamIJTkVBUiBMJDAyOGVjYl9kZWNfdGhyZWUKIAltb3Z1cHMJeG1tNSxbNDgrZXNp
XQotCWplCU5FQVIgTCQwMjhlY2JfZGVjX2ZvdXIKKwlqZQlORUFSIEwkMDI5ZWNiX2RlY19mb3Vy
CiAJbW92dXBzCXhtbTYsWzY0K2VzaV0KIAl4b3Jwcwl4bW03LHhtbTcKIAljYWxsCV9fYWVzbmlf
ZGVjcnlwdDYKQEAgLTU0MCw0MyArNTU1LDQzIEBAIEwkMDIyZWNiX2RlY190YWlsOgogCW1vdnVw
cwlbMzIrZWRpXSx4bW00CiAJbW92dXBzCVs0OCtlZGldLHhtbTUKIAltb3Z1cHMJWzY0K2VkaV0s
eG1tNgotCWptcAlORUFSIEwkMDEyZWNiX3JldAorCWptcAlORUFSIEwkMDEzZWNiX3JldAogYWxp
Z24JMTYKLUwkMDI1ZWNiX2RlY19vbmU6CitMJDAyNmVjYl9kZWNfb25lOgogCW1vdnVwcwl4bW0w
LFtlZHhdCiAJbW92dXBzCXhtbTEsWzE2K2VkeF0KIAlsZWEJZWR4LFszMitlZHhdCiAJeG9ycHMJ
eG1tMix4bW0wCi1MJDAyOWRlYzFfbG9vcF80OgorTCQwMzBkZWMxX2xvb3BfNDoKIGRiCTEwMiwx
NSw1NiwyMjIsMjA5CiAJZGVjCWVjeAogCW1vdnVwcwl4bW0xLFtlZHhdCiAJbGVhCWVkeCxbMTYr
ZWR4XQotCWpueglORUFSIEwkMDI5ZGVjMV9sb29wXzQKKwlqbnoJTkVBUiBMJDAzMGRlYzFfbG9v
cF80CiBkYgkxMDIsMTUsNTYsMjIzLDIwOQogCW1vdnVwcwlbZWRpXSx4bW0yCi0Jam1wCU5FQVIg
TCQwMTJlY2JfcmV0CisJam1wCU5FQVIgTCQwMTNlY2JfcmV0CiBhbGlnbgkxNgotTCQwMjZlY2Jf
ZGVjX3R3bzoKK0wkMDI3ZWNiX2RlY190d286CiAJY2FsbAlfX2Flc25pX2RlY3J5cHQyCiAJbW92
dXBzCVtlZGldLHhtbTIKIAltb3Z1cHMJWzE2K2VkaV0seG1tMwotCWptcAlORUFSIEwkMDEyZWNi
X3JldAorCWptcAlORUFSIEwkMDEzZWNiX3JldAogYWxpZ24JMTYKLUwkMDI3ZWNiX2RlY190aHJl
ZToKK0wkMDI4ZWNiX2RlY190aHJlZToKIAljYWxsCV9fYWVzbmlfZGVjcnlwdDMKIAltb3Z1cHMJ
W2VkaV0seG1tMgogCW1vdnVwcwlbMTYrZWRpXSx4bW0zCiAJbW92dXBzCVszMitlZGldLHhtbTQK
LQlqbXAJTkVBUiBMJDAxMmVjYl9yZXQKKwlqbXAJTkVBUiBMJDAxM2VjYl9yZXQKIGFsaWduCTE2
Ci1MJDAyOGVjYl9kZWNfZm91cjoKK0wkMDI5ZWNiX2RlY19mb3VyOgogCWNhbGwJX19hZXNuaV9k
ZWNyeXB0NAogCW1vdnVwcwlbZWRpXSx4bW0yCiAJbW92dXBzCVsxNitlZGldLHhtbTMKIAltb3Z1
cHMJWzMyK2VkaV0seG1tNAogCW1vdnVwcwlbNDgrZWRpXSx4bW01Ci1MJDAxMmVjYl9yZXQ6CitM
JDAxM2VjYl9yZXQ6CiAJcHhvcgl4bW0wLHhtbTAKIAlweG9yCXhtbTEseG1tMQogCXB4b3IJeG1t
Mix4bW0yCkBAIC02MjksNyArNjQ0LDcgQEAgTCRfYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tz
X2JlZ2luOgogCWxlYQllZHgsWzMyK2VjeCoxK2VkeF0KIAlzdWIJZWJ4LGVjeAogZGIJMTAyLDE1
LDU2LDAsMjUzCi1MJDAzMGNjbTY0X2VuY19vdXRlcjoKK0wkMDMxY2NtNjRfZW5jX291dGVyOgog
CW1vdnVwcwl4bW0wLFtlYnBdCiAJbW92CWVjeCxlYngKIAltb3Z1cHMJeG1tNixbZXNpXQpAQCAt
NjM4LDcgKzY1Myw3IEBAIEwkMDMwY2NtNjRfZW5jX291dGVyOgogCXhvcnBzCXhtbTAseG1tNgog
CXhvcnBzCXhtbTMseG1tMAogCW1vdnVwcwl4bW0wLFszMitlYnBdCi1MJDAzMWNjbTY0X2VuYzJf
bG9vcDoKK0wkMDMyY2NtNjRfZW5jMl9sb29wOgogZGIJMTAyLDE1LDU2LDIyMCwyMDkKIGRiCTEw
MiwxNSw1NiwyMjAsMjE3CiAJbW92dXBzCXhtbTEsW2VjeCoxK2VkeF0KQEAgLTY0Niw3ICs2NjEs
NyBAQCBkYgkxMDIsMTUsNTYsMjIwLDIxNwogZGIJMTAyLDE1LDU2LDIyMCwyMDgKIGRiCTEwMiwx
NSw1NiwyMjAsMjE2CiAJbW92dXBzCXhtbTAsW2VjeCoxK2VkeC0xNl0KLQlqbnoJTkVBUiBMJDAz
MWNjbTY0X2VuYzJfbG9vcAorCWpueglORUFSIEwkMDMyY2NtNjRfZW5jMl9sb29wCiBkYgkxMDIs
MTUsNTYsMjIwLDIwOQogZGIJMTAyLDE1LDU2LDIyMCwyMTcKIAlwYWRkcQl4bW03LFsxNitlc3Bd
CkBAIC02NTksNyArNjc0LDcgQEAgZGIJMTAyLDE1LDU2LDIyMSwyMTYKIAltb3Z1cHMJW2VkaV0s
eG1tNgogZGIJMTAyLDE1LDU2LDAsMjEzCiAJbGVhCWVkaSxbMTYrZWRpXQotCWpueglORUFSIEwk
MDMwY2NtNjRfZW5jX291dGVyCisJam56CU5FQVIgTCQwMzFjY202NF9lbmNfb3V0ZXIKIAltb3YJ
ZXNwLERXT1JEIFs0OCtlc3BdCiAJbW92CWVkaSxEV09SRCBbNDArZXNwXQogCW1vdnVwcwlbZWRp
XSx4bW0zCkBAIC03MTYsMTIgKzczMSwxMiBAQCBkYgkxMDIsMTUsNTYsMCwyNTMKIAltb3Z1cHMJ
eG1tMSxbMTYrZWR4XQogCWxlYQllZHgsWzMyK2VkeF0KIAl4b3Jwcwl4bW0yLHhtbTAKLUwkMDMy
ZW5jMV9sb29wXzU6CitMJDAzM2VuYzFfbG9vcF81OgogZGIJMTAyLDE1LDU2LDIyMCwyMDkKIAlk
ZWMJZWN4CiAJbW92dXBzCXhtbTEsW2VkeF0KIAlsZWEJZWR4LFsxNitlZHhdCi0Jam56CU5FQVIg
TCQwMzJlbmMxX2xvb3BfNQorCWpueglORUFSIEwkMDMzZW5jMV9sb29wXzUKIGRiCTEwMiwxNSw1
NiwyMjEsMjA5CiAJc2hsCWVieCw0CiAJbW92CWVjeCwxNgpAQCAtNzMxLDE2ICs3NDYsMTYgQEAg
ZGIJMTAyLDE1LDU2LDIyMSwyMDkKIAlzdWIJZWN4LGVieAogCWxlYQllZHgsWzMyK2VieCoxK2Vi
cF0KIAltb3YJZWJ4LGVjeAotCWptcAlORUFSIEwkMDMzY2NtNjRfZGVjX291dGVyCisJam1wCU5F
QVIgTCQwMzRjY202NF9kZWNfb3V0ZXIKIGFsaWduCTE2Ci1MJDAzM2NjbTY0X2RlY19vdXRlcjoK
K0wkMDM0Y2NtNjRfZGVjX291dGVyOgogCXhvcnBzCXhtbTYseG1tMgogCW1vdmRxYQl4bW0yLHht
bTcKIAltb3Z1cHMJW2VkaV0seG1tNgogCWxlYQllZGksWzE2K2VkaV0KIGRiCTEwMiwxNSw1Niww
LDIxMwogCXN1YgllYXgsMQotCWp6CU5FQVIgTCQwMzRjY202NF9kZWNfYnJlYWsKKwlqeglORUFS
IEwkMDM1Y2NtNjRfZGVjX2JyZWFrCiAJbW92dXBzCXhtbTAsW2VicF0KIAltb3YJZWN4LGVieAog
CW1vdnVwcwl4bW0xLFsxNitlYnBdCkBAIC03NDgsNyArNzYzLDcgQEAgZGIJMTAyLDE1LDU2LDAs
MjEzCiAJeG9ycHMJeG1tMix4bW0wCiAJeG9ycHMJeG1tMyx4bW02CiAJbW92dXBzCXhtbTAsWzMy
K2VicF0KLUwkMDM1Y2NtNjRfZGVjMl9sb29wOgorTCQwMzZjY202NF9kZWMyX2xvb3A6CiBkYgkx
MDIsMTUsNTYsMjIwLDIwOQogZGIJMTAyLDE1LDU2LDIyMCwyMTcKIAltb3Z1cHMJeG1tMSxbZWN4
KjErZWR4XQpAQCAtNzU2LDcgKzc3MSw3IEBAIGRiCTEwMiwxNSw1NiwyMjAsMjE3CiBkYgkxMDIs
MTUsNTYsMjIwLDIwOAogZGIJMTAyLDE1LDU2LDIyMCwyMTYKIAltb3Z1cHMJeG1tMCxbZWN4KjEr
ZWR4LTE2XQotCWpueglORUFSIEwkMDM1Y2NtNjRfZGVjMl9sb29wCisJam56CU5FQVIgTCQwMzZj
Y202NF9kZWMyX2xvb3AKIAltb3Z1cHMJeG1tNixbZXNpXQogCXBhZGRxCXhtbTcsWzE2K2VzcF0K
IGRiCTEwMiwxNSw1NiwyMjAsMjA5CkBAIC03NjQsOSArNzc5LDkgQEAgZGIJMTAyLDE1LDU2LDIy
MCwyMTcKIGRiCTEwMiwxNSw1NiwyMjEsMjA4CiBkYgkxMDIsMTUsNTYsMjIxLDIxNgogCWxlYQll
c2ksWzE2K2VzaV0KLQlqbXAJTkVBUiBMJDAzM2NjbTY0X2RlY19vdXRlcgorCWptcAlORUFSIEwk
MDM0Y2NtNjRfZGVjX291dGVyCiBhbGlnbgkxNgotTCQwMzRjY202NF9kZWNfYnJlYWs6CitMJDAz
NWNjbTY0X2RlY19icmVhazoKIAltb3YJZWN4LERXT1JEIFsyNDArZWJwXQogCW1vdgllZHgsZWJw
CiAJbW92dXBzCXhtbTAsW2VkeF0KQEAgLTc3NCwxMiArNzg5LDEyIEBAIEwkMDM0Y2NtNjRfZGVj
X2JyZWFrOgogCXhvcnBzCXhtbTYseG1tMAogCWxlYQllZHgsWzMyK2VkeF0KIAl4b3Jwcwl4bW0z
LHhtbTYKLUwkMDM2ZW5jMV9sb29wXzY6CitMJDAzN2VuYzFfbG9vcF82OgogZGIJMTAyLDE1LDU2
LDIyMCwyMTcKIAlkZWMJZWN4CiAJbW92dXBzCXhtbTEsW2VkeF0KIAlsZWEJZWR4LFsxNitlZHhd
Ci0Jam56CU5FQVIgTCQwMzZlbmMxX2xvb3BfNgorCWpueglORUFSIEwkMDM3ZW5jMV9sb29wXzYK
IGRiCTEwMiwxNSw1NiwyMjEsMjE3CiAJbW92CWVzcCxEV09SRCBbNDgrZXNwXQogCW1vdgllZGks
RFdPUkQgWzQwK2VzcF0KQEAgLTgwNSw2ICs4MjAsMTggQEAgTCRfYWVzX2h3X2N0cjMyX2VuY3J5
cHRfYmxvY2tzX2JlZ2luOgogCXB1c2gJZWJ4CiAJcHVzaAllc2kKIAlwdXNoCWVkaQorJWlmbmRl
ZiBOREVCVUcKKwlwdXNoCWVieAorCXB1c2gJZWR4CisJY2FsbAlMJDAzOHBpYworTCQwMzhwaWM6
CisJcG9wCWVieAorCWxlYQllYngsWyhfQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCswLUwkMDM4cGlj
KStlYnhdCisJbW92CWVkeCwxCisJbW92CUJZVEUgW2VieF0sZGwKKwlwb3AJZWR4CisJcG9wCWVi
eAorJWVuZGlmCiAJbW92CWVzaSxEV09SRCBbMjArZXNwXQogCW1vdgllZGksRFdPUkQgWzI0K2Vz
cF0KIAltb3YJZWF4LERXT1JEIFsyOCtlc3BdCkBAIC04MTUsNyArODQyLDcgQEAgTCRfYWVzX2h3
X2N0cjMyX2VuY3J5cHRfYmxvY2tzX2JlZ2luOgogCWFuZAllc3AsLTE2CiAJbW92CURXT1JEIFs4
MCtlc3BdLGVicAogCWNtcAllYXgsMQotCWplCU5FQVIgTCQwMzdjdHIzMl9vbmVfc2hvcnRjdXQK
KwlqZQlORUFSIEwkMDM5Y3RyMzJfb25lX3Nob3J0Y3V0CiAJbW92ZHF1CXhtbTcsW2VieF0KIAlt
b3YJRFdPUkQgW2VzcF0sMjAyMTgyMTU5CiAJbW92CURXT1JEIFs0K2VzcF0sMTM0ODEwMTIzCkBA
IC04NTMsNyArODgwLDcgQEAgZGIJMTAyLDE1LDU2LDAsMjAyCiAJcHNodWZkCXhtbTIseG1tMCwx
OTIKIAlwc2h1ZmQJeG1tMyx4bW0wLDEyOAogCWNtcAllYXgsNgotCWpiCU5FQVIgTCQwMzhjdHIz
Ml90YWlsCisJamIJTkVBUiBMJDA0MGN0cjMyX3RhaWwKIAlweG9yCXhtbTcseG1tNgogCXNobAll
Y3gsNAogCW1vdgllYngsMTYKQEAgLTg2Miw5ICs4ODksOSBAQCBkYgkxMDIsMTUsNTYsMCwyMDIK
IAlzdWIJZWJ4LGVjeAogCWxlYQllZHgsWzMyK2VjeCoxK2VkeF0KIAlzdWIJZWF4LDYKLQlqbXAJ
TkVBUiBMJDAzOWN0cjMyX2xvb3A2CisJam1wCU5FQVIgTCQwNDFjdHIzMl9sb29wNgogYWxpZ24J
MTYKLUwkMDM5Y3RyMzJfbG9vcDY6CitMJDA0MWN0cjMyX2xvb3A2OgogCXBzaHVmZAl4bW00LHht
bTAsNjQKIAltb3ZkcWEJeG1tMCxbMzIrZXNwXQogCXBzaHVmZAl4bW01LHhtbTEsMTkyCkBAIC05
MTgsMjcgKzk0NSwyNyBAQCBkYgkxMDIsMTUsNTYsMCwyMDIKIAlsZWEJZWRpLFs5NitlZGldCiAJ
cHNodWZkCXhtbTMseG1tMCwxMjgKIAlzdWIJZWF4LDYKLQlqbmMJTkVBUiBMJDAzOWN0cjMyX2xv
b3A2CisJam5jCU5FQVIgTCQwNDFjdHIzMl9sb29wNgogCWFkZAllYXgsNgotCWp6CU5FQVIgTCQw
NDBjdHIzMl9yZXQKKwlqeglORUFSIEwkMDQyY3RyMzJfcmV0CiAJbW92ZHF1CXhtbTcsW2VicF0K
IAltb3YJZWR4LGVicAogCXB4b3IJeG1tNyxbMzIrZXNwXQogCW1vdgllY3gsRFdPUkQgWzI0MCtl
YnBdCi1MJDAzOGN0cjMyX3RhaWw6CitMJDA0MGN0cjMyX3RhaWw6CiAJcG9yCXhtbTIseG1tNwog
CWNtcAllYXgsMgotCWpiCU5FQVIgTCQwNDFjdHIzMl9vbmUKKwlqYglORUFSIEwkMDQzY3RyMzJf
b25lCiAJcHNodWZkCXhtbTQseG1tMCw2NAogCXBvcgl4bW0zLHhtbTcKLQlqZQlORUFSIEwkMDQy
Y3RyMzJfdHdvCisJamUJTkVBUiBMJDA0NGN0cjMyX3R3bwogCXBzaHVmZAl4bW01LHhtbTEsMTky
CiAJcG9yCXhtbTQseG1tNwogCWNtcAllYXgsNAotCWpiCU5FQVIgTCQwNDNjdHIzMl90aHJlZQor
CWpiCU5FQVIgTCQwNDVjdHIzMl90aHJlZQogCXBzaHVmZAl4bW02LHhtbTEsMTI4CiAJcG9yCXht
bTUseG1tNwotCWplCU5FQVIgTCQwNDRjdHIzMl9mb3VyCisJamUJTkVBUiBMJDA0NmN0cjMyX2Zv
dXIKIAlwb3IJeG1tNix4bW03CiAJY2FsbAlfX2Flc25pX2VuY3J5cHQ2CiAJbW92dXBzCXhtbTEs
W2VzaV0KQEAgLTk1NiwyOSArOTgzLDI5IEBAIEwkMDM4Y3RyMzJfdGFpbDoKIAltb3Z1cHMJWzMy
K2VkaV0seG1tNAogCW1vdnVwcwlbNDgrZWRpXSx4bW01CiAJbW92dXBzCVs2NCtlZGldLHhtbTYK
LQlqbXAJTkVBUiBMJDA0MGN0cjMyX3JldAorCWptcAlORUFSIEwkMDQyY3RyMzJfcmV0CiBhbGln
bgkxNgotTCQwMzdjdHIzMl9vbmVfc2hvcnRjdXQ6CitMJDAzOWN0cjMyX29uZV9zaG9ydGN1dDoK
IAltb3Z1cHMJeG1tMixbZWJ4XQogCW1vdgllY3gsRFdPUkQgWzI0MCtlZHhdCi1MJDA0MWN0cjMy
X29uZToKK0wkMDQzY3RyMzJfb25lOgogCW1vdnVwcwl4bW0wLFtlZHhdCiAJbW92dXBzCXhtbTEs
WzE2K2VkeF0KIAlsZWEJZWR4LFszMitlZHhdCiAJeG9ycHMJeG1tMix4bW0wCi1MJDA0NWVuYzFf
bG9vcF83OgorTCQwNDdlbmMxX2xvb3BfNzoKIGRiCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjCWVj
eAogCW1vdnVwcwl4bW0xLFtlZHhdCiAJbGVhCWVkeCxbMTYrZWR4XQotCWpueglORUFSIEwkMDQ1
ZW5jMV9sb29wXzcKKwlqbnoJTkVBUiBMJDA0N2VuYzFfbG9vcF83CiBkYgkxMDIsMTUsNTYsMjIx
LDIwOQogCW1vdnVwcwl4bW02LFtlc2ldCiAJeG9ycHMJeG1tNix4bW0yCiAJbW92dXBzCVtlZGld
LHhtbTYKLQlqbXAJTkVBUiBMJDA0MGN0cjMyX3JldAorCWptcAlORUFSIEwkMDQyY3RyMzJfcmV0
CiBhbGlnbgkxNgotTCQwNDJjdHIzMl90d286CitMJDA0NGN0cjMyX3R3bzoKIAljYWxsCV9fYWVz
bmlfZW5jcnlwdDIKIAltb3Z1cHMJeG1tNSxbZXNpXQogCW1vdnVwcwl4bW02LFsxNitlc2ldCkBA
IC05ODYsOSArMTAxMyw5IEBAIEwkMDQyY3RyMzJfdHdvOgogCXhvcnBzCXhtbTMseG1tNgogCW1v
dnVwcwlbZWRpXSx4bW0yCiAJbW92dXBzCVsxNitlZGldLHhtbTMKLQlqbXAJTkVBUiBMJDA0MGN0
cjMyX3JldAorCWptcAlORUFSIEwkMDQyY3RyMzJfcmV0CiBhbGlnbgkxNgotTCQwNDNjdHIzMl90
aHJlZToKK0wkMDQ1Y3RyMzJfdGhyZWU6CiAJY2FsbAlfX2Flc25pX2VuY3J5cHQzCiAJbW92dXBz
CXhtbTUsW2VzaV0KIAltb3Z1cHMJeG1tNixbMTYrZXNpXQpAQCAtOTk5LDkgKzEwMjYsOSBAQCBM
JDA0M2N0cjMyX3RocmVlOgogCXhvcnBzCXhtbTQseG1tNwogCW1vdnVwcwlbMTYrZWRpXSx4bW0z
CiAJbW92dXBzCVszMitlZGldLHhtbTQKLQlqbXAJTkVBUiBMJDA0MGN0cjMyX3JldAorCWptcAlO
RUFSIEwkMDQyY3RyMzJfcmV0CiBhbGlnbgkxNgotTCQwNDRjdHIzMl9mb3VyOgorTCQwNDZjdHIz
Ml9mb3VyOgogCWNhbGwJX19hZXNuaV9lbmNyeXB0NAogCW1vdnVwcwl4bW02LFtlc2ldCiAJbW92
dXBzCXhtbTcsWzE2K2VzaV0KQEAgLTEwMTUsNyArMTA0Miw3IEBAIEwkMDQ0Y3RyMzJfZm91cjoK
IAl4b3Jwcwl4bW01LHhtbTAKIAltb3Z1cHMJWzMyK2VkaV0seG1tNAogCW1vdnVwcwlbNDgrZWRp
XSx4bW01Ci1MJDA0MGN0cjMyX3JldDoKK0wkMDQyY3RyMzJfcmV0OgogCXB4b3IJeG1tMCx4bW0w
CiAJcHhvcgl4bW0xLHhtbTEKIAlweG9yCXhtbTIseG1tMgpAQCAtMTA0OSwxMiArMTA3NiwxMiBA
QCBMJF9hZXNfaHdfeHRzX2VuY3J5cHRfYmVnaW46CiAJbW92dXBzCXhtbTEsWzE2K2VkeF0KIAls
ZWEJZWR4LFszMitlZHhdCiAJeG9ycHMJeG1tMix4bW0wCi1MJDA0NmVuYzFfbG9vcF84OgorTCQw
NDhlbmMxX2xvb3BfODoKIGRiCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjCWVjeAogCW1vdnVwcwl4
bW0xLFtlZHhdCiAJbGVhCWVkeCxbMTYrZWR4XQotCWpueglORUFSIEwkMDQ2ZW5jMV9sb29wXzgK
KwlqbnoJTkVBUiBMJDA0OGVuYzFfbG9vcF84CiBkYgkxMDIsMTUsNTYsMjIxLDIwOQogCW1vdgll
c2ksRFdPUkQgWzIwK2VzcF0KIAltb3YJZWRpLERXT1JEIFsyNCtlc3BdCkBAIC0xMDc4LDE0ICsx
MTA1LDE0IEBAIGRiCTEwMiwxNSw1NiwyMjEsMjA5CiAJbW92CWVicCxlZHgKIAltb3YJZWJ4LGVj
eAogCXN1YgllYXgsOTYKLQlqYwlORUFSIEwkMDQ3eHRzX2VuY19zaG9ydAorCWpjCU5FQVIgTCQw
NDl4dHNfZW5jX3Nob3J0CiAJc2hsCWVjeCw0CiAJbW92CWVieCwxNgogCXN1YgllYngsZWN4CiAJ
bGVhCWVkeCxbMzIrZWN4KjErZWR4XQotCWptcAlORUFSIEwkMDQ4eHRzX2VuY19sb29wNgorCWpt
cAlORUFSIEwkMDUweHRzX2VuY19sb29wNgogYWxpZ24JMTYKLUwkMDQ4eHRzX2VuY19sb29wNjoK
K0wkMDUweHRzX2VuY19sb29wNjoKIAlwc2h1ZmQJeG1tMix4bW0wLDE5CiAJcHhvcgl4bW0wLHht
bTAKIAltb3ZkcWEJW2VzcF0seG1tMQpAQCAtMTE3NCwyMyArMTIwMSwyMyBAQCBkYgkxMDIsMTUs
NTYsMjIwLDI0OQogCXBjbXBndGQJeG1tMCx4bW0xCiAJcHhvcgl4bW0xLHhtbTIKIAlzdWIJZWF4
LDk2Ci0Jam5jCU5FQVIgTCQwNDh4dHNfZW5jX2xvb3A2CisJam5jCU5FQVIgTCQwNTB4dHNfZW5j
X2xvb3A2CiAJbW92CWVjeCxEV09SRCBbMjQwK2VicF0KIAltb3YJZWR4LGVicAogCW1vdgllYngs
ZWN4Ci1MJDA0N3h0c19lbmNfc2hvcnQ6CitMJDA0OXh0c19lbmNfc2hvcnQ6CiAJYWRkCWVheCw5
NgotCWp6CU5FQVIgTCQwNDl4dHNfZW5jX2RvbmU2eAorCWp6CU5FQVIgTCQwNTF4dHNfZW5jX2Rv
bmU2eAogCW1vdmRxYQl4bW01LHhtbTEKIAljbXAJZWF4LDMyCi0JamIJTkVBUiBMJDA1MHh0c19l
bmNfb25lCisJamIJTkVBUiBMJDA1Mnh0c19lbmNfb25lCiAJcHNodWZkCXhtbTIseG1tMCwxOQog
CXB4b3IJeG1tMCx4bW0wCiAJcGFkZHEJeG1tMSx4bW0xCiAJcGFuZAl4bW0yLHhtbTMKIAlwY21w
Z3RkCXhtbTAseG1tMQogCXB4b3IJeG1tMSx4bW0yCi0JamUJTkVBUiBMJDA1MXh0c19lbmNfdHdv
CisJamUJTkVBUiBMJDA1M3h0c19lbmNfdHdvCiAJcHNodWZkCXhtbTIseG1tMCwxOQogCXB4b3IJ
eG1tMCx4bW0wCiAJbW92ZHFhCXhtbTYseG1tMQpAQCAtMTE5OSw3ICsxMjI2LDcgQEAgTCQwNDd4
dHNfZW5jX3Nob3J0OgogCXBjbXBndGQJeG1tMCx4bW0xCiAJcHhvcgl4bW0xLHhtbTIKIAljbXAJ
ZWF4LDY0Ci0JamIJTkVBUiBMJDA1Mnh0c19lbmNfdGhyZWUKKwlqYglORUFSIEwkMDU0eHRzX2Vu
Y190aHJlZQogCXBzaHVmZAl4bW0yLHhtbTAsMTkKIAlweG9yCXhtbTAseG1tMAogCW1vdmRxYQl4
bW03LHhtbTEKQEAgLTEyMDksNyArMTIzNiw3IEBAIEwkMDQ3eHRzX2VuY19zaG9ydDoKIAlweG9y
CXhtbTEseG1tMgogCW1vdmRxYQlbZXNwXSx4bW01CiAJbW92ZHFhCVsxNitlc3BdLHhtbTYKLQlq
ZQlORUFSIEwkMDUzeHRzX2VuY19mb3VyCisJamUJTkVBUiBMJDA1NXh0c19lbmNfZm91cgogCW1v
dmRxYQlbMzIrZXNwXSx4bW03CiAJcHNodWZkCXhtbTcseG1tMCwxOQogCW1vdmRxYQlbNDgrZXNw
XSx4bW0xCkBAIC0xMjQxLDkgKzEyNjgsOSBAQCBMJDA0N3h0c19lbmNfc2hvcnQ6CiAJbW92dXBz
CVs0OCtlZGldLHhtbTUKIAltb3Z1cHMJWzY0K2VkaV0seG1tNgogCWxlYQllZGksWzgwK2VkaV0K
LQlqbXAJTkVBUiBMJDA1NHh0c19lbmNfZG9uZQorCWptcAlORUFSIEwkMDU2eHRzX2VuY19kb25l
CiBhbGlnbgkxNgotTCQwNTB4dHNfZW5jX29uZToKK0wkMDUyeHRzX2VuY19vbmU6CiAJbW92dXBz
CXhtbTIsW2VzaV0KIAlsZWEJZXNpLFsxNitlc2ldCiAJeG9ycHMJeG1tMix4bW01CkBAIC0xMjUx
LDIwICsxMjc4LDIwIEBAIEwkMDUweHRzX2VuY19vbmU6CiAJbW92dXBzCXhtbTEsWzE2K2VkeF0K
IAlsZWEJZWR4LFszMitlZHhdCiAJeG9ycHMJeG1tMix4bW0wCi1MJDA1NWVuYzFfbG9vcF85Ogor
TCQwNTdlbmMxX2xvb3BfOToKIGRiCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjCWVjeAogCW1vdnVw
cwl4bW0xLFtlZHhdCiAJbGVhCWVkeCxbMTYrZWR4XQotCWpueglORUFSIEwkMDU1ZW5jMV9sb29w
XzkKKwlqbnoJTkVBUiBMJDA1N2VuYzFfbG9vcF85CiBkYgkxMDIsMTUsNTYsMjIxLDIwOQogCXhv
cnBzCXhtbTIseG1tNQogCW1vdnVwcwlbZWRpXSx4bW0yCiAJbGVhCWVkaSxbMTYrZWRpXQogCW1v
dmRxYQl4bW0xLHhtbTUKLQlqbXAJTkVBUiBMJDA1NHh0c19lbmNfZG9uZQorCWptcAlORUFSIEwk
MDU2eHRzX2VuY19kb25lCiBhbGlnbgkxNgotTCQwNTF4dHNfZW5jX3R3bzoKK0wkMDUzeHRzX2Vu
Y190d286CiAJbW92YXBzCXhtbTYseG1tMQogCW1vdnVwcwl4bW0yLFtlc2ldCiAJbW92dXBzCXht
bTMsWzE2K2VzaV0KQEAgLTEyNzgsOSArMTMwNSw5IEBAIEwkMDUxeHRzX2VuY190d286CiAJbW92
dXBzCVsxNitlZGldLHhtbTMKIAlsZWEJZWRpLFszMitlZGldCiAJbW92ZHFhCXhtbTEseG1tNgot
CWptcAlORUFSIEwkMDU0eHRzX2VuY19kb25lCisJam1wCU5FQVIgTCQwNTZ4dHNfZW5jX2RvbmUK
IGFsaWduCTE2Ci1MJDA1Mnh0c19lbmNfdGhyZWU6CitMJDA1NHh0c19lbmNfdGhyZWU6CiAJbW92
YXBzCXhtbTcseG1tMQogCW1vdnVwcwl4bW0yLFtlc2ldCiAJbW92dXBzCXhtbTMsWzE2K2VzaV0K
QEAgLTEyOTgsOSArMTMyNSw5IEBAIEwkMDUyeHRzX2VuY190aHJlZToKIAltb3Z1cHMJWzMyK2Vk
aV0seG1tNAogCWxlYQllZGksWzQ4K2VkaV0KIAltb3ZkcWEJeG1tMSx4bW03Ci0Jam1wCU5FQVIg
TCQwNTR4dHNfZW5jX2RvbmUKKwlqbXAJTkVBUiBMJDA1Nnh0c19lbmNfZG9uZQogYWxpZ24JMTYK
LUwkMDUzeHRzX2VuY19mb3VyOgorTCQwNTV4dHNfZW5jX2ZvdXI6CiAJbW92YXBzCXhtbTYseG1t
MQogCW1vdnVwcwl4bW0yLFtlc2ldCiAJbW92dXBzCXhtbTMsWzE2K2VzaV0KQEAgLTEzMjIsMjgg
KzEzNDksMjggQEAgTCQwNTN4dHNfZW5jX2ZvdXI6CiAJbW92dXBzCVs0OCtlZGldLHhtbTUKIAls
ZWEJZWRpLFs2NCtlZGldCiAJbW92ZHFhCXhtbTEseG1tNgotCWptcAlORUFSIEwkMDU0eHRzX2Vu
Y19kb25lCisJam1wCU5FQVIgTCQwNTZ4dHNfZW5jX2RvbmUKIGFsaWduCTE2Ci1MJDA0OXh0c19l
bmNfZG9uZTZ4OgorTCQwNTF4dHNfZW5jX2RvbmU2eDoKIAltb3YJZWF4LERXT1JEIFsxMTIrZXNw
XQogCWFuZAllYXgsMTUKLQlqeglORUFSIEwkMDU2eHRzX2VuY19yZXQKKwlqeglORUFSIEwkMDU4
eHRzX2VuY19yZXQKIAltb3ZkcWEJeG1tNSx4bW0xCiAJbW92CURXT1JEIFsxMTIrZXNwXSxlYXgK
LQlqbXAJTkVBUiBMJDA1N3h0c19lbmNfc3RlYWwKKwlqbXAJTkVBUiBMJDA1OXh0c19lbmNfc3Rl
YWwKIGFsaWduCTE2Ci1MJDA1NHh0c19lbmNfZG9uZToKK0wkMDU2eHRzX2VuY19kb25lOgogCW1v
dgllYXgsRFdPUkQgWzExMitlc3BdCiAJcHhvcgl4bW0wLHhtbTAKIAlhbmQJZWF4LDE1Ci0JanoJ
TkVBUiBMJDA1Nnh0c19lbmNfcmV0CisJanoJTkVBUiBMJDA1OHh0c19lbmNfcmV0CiAJcGNtcGd0
ZAl4bW0wLHhtbTEKIAltb3YJRFdPUkQgWzExMitlc3BdLGVheAogCXBzaHVmZAl4bW01LHhtbTAs
MTkKIAlwYWRkcQl4bW0xLHhtbTEKIAlwYW5kCXhtbTUsWzk2K2VzcF0KIAlweG9yCXhtbTUseG1t
MQotTCQwNTd4dHNfZW5jX3N0ZWFsOgorTCQwNTl4dHNfZW5jX3N0ZWFsOgogCW1vdnp4CWVjeCxC
WVRFIFtlc2ldCiAJbW92engJZWR4LEJZVEUgW2VkaS0xNl0KIAlsZWEJZXNpLFsxK2VzaV0KQEAg
LTEzNTEsNyArMTM3OCw3IEBAIEwkMDU3eHRzX2VuY19zdGVhbDoKIAltb3YJQllURSBbZWRpXSxk
bAogCWxlYQllZGksWzErZWRpXQogCXN1YgllYXgsMQotCWpueglORUFSIEwkMDU3eHRzX2VuY19z
dGVhbAorCWpueglORUFSIEwkMDU5eHRzX2VuY19zdGVhbAogCXN1YgllZGksRFdPUkQgWzExMitl
c3BdCiAJbW92CWVkeCxlYnAKIAltb3YJZWN4LGVieApAQCAtMTM2MSwxNiArMTM4OCwxNiBAQCBM
JDA1N3h0c19lbmNfc3RlYWw6CiAJbW92dXBzCXhtbTEsWzE2K2VkeF0KIAlsZWEJZWR4LFszMitl
ZHhdCiAJeG9ycHMJeG1tMix4bW0wCi1MJDA1OGVuYzFfbG9vcF8xMDoKK0wkMDYwZW5jMV9sb29w
XzEwOgogZGIJMTAyLDE1LDU2LDIyMCwyMDkKIAlkZWMJZWN4CiAJbW92dXBzCXhtbTEsW2VkeF0K
IAlsZWEJZWR4LFsxNitlZHhdCi0Jam56CU5FQVIgTCQwNThlbmMxX2xvb3BfMTAKKwlqbnoJTkVB
UiBMJDA2MGVuYzFfbG9vcF8xMAogZGIJMTAyLDE1LDU2LDIyMSwyMDkKIAl4b3Jwcwl4bW0yLHht
bTUKIAltb3Z1cHMJW2VkaS0xNl0seG1tMgotTCQwNTZ4dHNfZW5jX3JldDoKK0wkMDU4eHRzX2Vu
Y19yZXQ6CiAJcHhvcgl4bW0wLHhtbTAKIAlweG9yCXhtbTEseG1tMQogCXB4b3IJeG1tMix4bW0y
CkBAIC0xNDA3LDEyICsxNDM0LDEyIEBAIEwkX2Flc19od194dHNfZGVjcnlwdF9iZWdpbjoKIAlt
b3Z1cHMJeG1tMSxbMTYrZWR4XQogCWxlYQllZHgsWzMyK2VkeF0KIAl4b3Jwcwl4bW0yLHhtbTAK
LUwkMDU5ZW5jMV9sb29wXzExOgorTCQwNjFlbmMxX2xvb3BfMTE6CiBkYgkxMDIsMTUsNTYsMjIw
LDIwOQogCWRlYwllY3gKIAltb3Z1cHMJeG1tMSxbZWR4XQogCWxlYQllZHgsWzE2K2VkeF0KLQlq
bnoJTkVBUiBMJDA1OWVuYzFfbG9vcF8xMQorCWpueglORUFSIEwkMDYxZW5jMV9sb29wXzExCiBk
YgkxMDIsMTUsNTYsMjIxLDIwOQogCW1vdgllc2ksRFdPUkQgWzIwK2VzcF0KIAltb3YJZWRpLERX
T1JEIFsyNCtlc3BdCkBAIC0xNDQxLDE0ICsxNDY4LDE0IEBAIGRiCTEwMiwxNSw1NiwyMjEsMjA5
CiAJcGNtcGd0ZAl4bW0wLHhtbTEKIAlhbmQJZWF4LC0xNgogCXN1YgllYXgsOTYKLQlqYwlORUFS
IEwkMDYweHRzX2RlY19zaG9ydAorCWpjCU5FQVIgTCQwNjJ4dHNfZGVjX3Nob3J0CiAJc2hsCWVj
eCw0CiAJbW92CWVieCwxNgogCXN1YgllYngsZWN4CiAJbGVhCWVkeCxbMzIrZWN4KjErZWR4XQot
CWptcAlORUFSIEwkMDYxeHRzX2RlY19sb29wNgorCWptcAlORUFSIEwkMDYzeHRzX2RlY19sb29w
NgogYWxpZ24JMTYKLUwkMDYxeHRzX2RlY19sb29wNjoKK0wkMDYzeHRzX2RlY19sb29wNjoKIAlw
c2h1ZmQJeG1tMix4bW0wLDE5CiAJcHhvcgl4bW0wLHhtbTAKIAltb3ZkcWEJW2VzcF0seG1tMQpA
QCAtMTUzNywyMyArMTU2NCwyMyBAQCBkYgkxMDIsMTUsNTYsMjIyLDI0OQogCXBjbXBndGQJeG1t
MCx4bW0xCiAJcHhvcgl4bW0xLHhtbTIKIAlzdWIJZWF4LDk2Ci0Jam5jCU5FQVIgTCQwNjF4dHNf
ZGVjX2xvb3A2CisJam5jCU5FQVIgTCQwNjN4dHNfZGVjX2xvb3A2CiAJbW92CWVjeCxEV09SRCBb
MjQwK2VicF0KIAltb3YJZWR4LGVicAogCW1vdgllYngsZWN4Ci1MJDA2MHh0c19kZWNfc2hvcnQ6
CitMJDA2Mnh0c19kZWNfc2hvcnQ6CiAJYWRkCWVheCw5NgotCWp6CU5FQVIgTCQwNjJ4dHNfZGVj
X2RvbmU2eAorCWp6CU5FQVIgTCQwNjR4dHNfZGVjX2RvbmU2eAogCW1vdmRxYQl4bW01LHhtbTEK
IAljbXAJZWF4LDMyCi0JamIJTkVBUiBMJDA2M3h0c19kZWNfb25lCisJamIJTkVBUiBMJDA2NXh0
c19kZWNfb25lCiAJcHNodWZkCXhtbTIseG1tMCwxOQogCXB4b3IJeG1tMCx4bW0wCiAJcGFkZHEJ
eG1tMSx4bW0xCiAJcGFuZAl4bW0yLHhtbTMKIAlwY21wZ3RkCXhtbTAseG1tMQogCXB4b3IJeG1t
MSx4bW0yCi0JamUJTkVBUiBMJDA2NHh0c19kZWNfdHdvCisJamUJTkVBUiBMJDA2Nnh0c19kZWNf
dHdvCiAJcHNodWZkCXhtbTIseG1tMCwxOQogCXB4b3IJeG1tMCx4bW0wCiAJbW92ZHFhCXhtbTYs
eG1tMQpAQCAtMTU2Miw3ICsxNTg5LDcgQEAgTCQwNjB4dHNfZGVjX3Nob3J0OgogCXBjbXBndGQJ
eG1tMCx4bW0xCiAJcHhvcgl4bW0xLHhtbTIKIAljbXAJZWF4LDY0Ci0JamIJTkVBUiBMJDA2NXh0
c19kZWNfdGhyZWUKKwlqYglORUFSIEwkMDY3eHRzX2RlY190aHJlZQogCXBzaHVmZAl4bW0yLHht
bTAsMTkKIAlweG9yCXhtbTAseG1tMAogCW1vdmRxYQl4bW03LHhtbTEKQEAgLTE1NzIsNyArMTU5
OSw3IEBAIEwkMDYweHRzX2RlY19zaG9ydDoKIAlweG9yCXhtbTEseG1tMgogCW1vdmRxYQlbZXNw
XSx4bW01CiAJbW92ZHFhCVsxNitlc3BdLHhtbTYKLQlqZQlORUFSIEwkMDY2eHRzX2RlY19mb3Vy
CisJamUJTkVBUiBMJDA2OHh0c19kZWNfZm91cgogCW1vdmRxYQlbMzIrZXNwXSx4bW03CiAJcHNo
dWZkCXhtbTcseG1tMCwxOQogCW1vdmRxYQlbNDgrZXNwXSx4bW0xCkBAIC0xNjA0LDkgKzE2MzEs
OSBAQCBMJDA2MHh0c19kZWNfc2hvcnQ6CiAJbW92dXBzCVs0OCtlZGldLHhtbTUKIAltb3Z1cHMJ
WzY0K2VkaV0seG1tNgogCWxlYQllZGksWzgwK2VkaV0KLQlqbXAJTkVBUiBMJDA2N3h0c19kZWNf
ZG9uZQorCWptcAlORUFSIEwkMDY5eHRzX2RlY19kb25lCiBhbGlnbgkxNgotTCQwNjN4dHNfZGVj
X29uZToKK0wkMDY1eHRzX2RlY19vbmU6CiAJbW92dXBzCXhtbTIsW2VzaV0KIAlsZWEJZXNpLFsx
Nitlc2ldCiAJeG9ycHMJeG1tMix4bW01CkBAIC0xNjE0LDIwICsxNjQxLDIwIEBAIEwkMDYzeHRz
X2RlY19vbmU6CiAJbW92dXBzCXhtbTEsWzE2K2VkeF0KIAlsZWEJZWR4LFszMitlZHhdCiAJeG9y
cHMJeG1tMix4bW0wCi1MJDA2OGRlYzFfbG9vcF8xMjoKK0wkMDcwZGVjMV9sb29wXzEyOgogZGIJ
MTAyLDE1LDU2LDIyMiwyMDkKIAlkZWMJZWN4CiAJbW92dXBzCXhtbTEsW2VkeF0KIAlsZWEJZWR4
LFsxNitlZHhdCi0Jam56CU5FQVIgTCQwNjhkZWMxX2xvb3BfMTIKKwlqbnoJTkVBUiBMJDA3MGRl
YzFfbG9vcF8xMgogZGIJMTAyLDE1LDU2LDIyMywyMDkKIAl4b3Jwcwl4bW0yLHhtbTUKIAltb3Z1
cHMJW2VkaV0seG1tMgogCWxlYQllZGksWzE2K2VkaV0KIAltb3ZkcWEJeG1tMSx4bW01Ci0Jam1w
CU5FQVIgTCQwNjd4dHNfZGVjX2RvbmUKKwlqbXAJTkVBUiBMJDA2OXh0c19kZWNfZG9uZQogYWxp
Z24JMTYKLUwkMDY0eHRzX2RlY190d286CitMJDA2Nnh0c19kZWNfdHdvOgogCW1vdmFwcwl4bW02
LHhtbTEKIAltb3Z1cHMJeG1tMixbZXNpXQogCW1vdnVwcwl4bW0zLFsxNitlc2ldCkBAIC0xNjQx
LDkgKzE2NjgsOSBAQCBMJDA2NHh0c19kZWNfdHdvOgogCW1vdnVwcwlbMTYrZWRpXSx4bW0zCiAJ
bGVhCWVkaSxbMzIrZWRpXQogCW1vdmRxYQl4bW0xLHhtbTYKLQlqbXAJTkVBUiBMJDA2N3h0c19k
ZWNfZG9uZQorCWptcAlORUFSIEwkMDY5eHRzX2RlY19kb25lCiBhbGlnbgkxNgotTCQwNjV4dHNf
ZGVjX3RocmVlOgorTCQwNjd4dHNfZGVjX3RocmVlOgogCW1vdmFwcwl4bW03LHhtbTEKIAltb3Z1
cHMJeG1tMixbZXNpXQogCW1vdnVwcwl4bW0zLFsxNitlc2ldCkBAIC0xNjYxLDkgKzE2ODgsOSBA
QCBMJDA2NXh0c19kZWNfdGhyZWU6CiAJbW92dXBzCVszMitlZGldLHhtbTQKIAlsZWEJZWRpLFs0
OCtlZGldCiAJbW92ZHFhCXhtbTEseG1tNwotCWptcAlORUFSIEwkMDY3eHRzX2RlY19kb25lCisJ
am1wCU5FQVIgTCQwNjl4dHNfZGVjX2RvbmUKIGFsaWduCTE2Ci1MJDA2Nnh0c19kZWNfZm91cjoK
K0wkMDY4eHRzX2RlY19mb3VyOgogCW1vdmFwcwl4bW02LHhtbTEKIAltb3Z1cHMJeG1tMixbZXNp
XQogCW1vdnVwcwl4bW0zLFsxNitlc2ldCkBAIC0xNjg1LDIwICsxNzEyLDIwIEBAIEwkMDY2eHRz
X2RlY19mb3VyOgogCW1vdnVwcwlbNDgrZWRpXSx4bW01CiAJbGVhCWVkaSxbNjQrZWRpXQogCW1v
dmRxYQl4bW0xLHhtbTYKLQlqbXAJTkVBUiBMJDA2N3h0c19kZWNfZG9uZQorCWptcAlORUFSIEwk
MDY5eHRzX2RlY19kb25lCiBhbGlnbgkxNgotTCQwNjJ4dHNfZGVjX2RvbmU2eDoKK0wkMDY0eHRz
X2RlY19kb25lNng6CiAJbW92CWVheCxEV09SRCBbMTEyK2VzcF0KIAlhbmQJZWF4LDE1Ci0JanoJ
TkVBUiBMJDA2OXh0c19kZWNfcmV0CisJanoJTkVBUiBMJDA3MXh0c19kZWNfcmV0CiAJbW92CURX
T1JEIFsxMTIrZXNwXSxlYXgKLQlqbXAJTkVBUiBMJDA3MHh0c19kZWNfb25seV9vbmVfbW9yZQor
CWptcAlORUFSIEwkMDcyeHRzX2RlY19vbmx5X29uZV9tb3JlCiBhbGlnbgkxNgotTCQwNjd4dHNf
ZGVjX2RvbmU6CitMJDA2OXh0c19kZWNfZG9uZToKIAltb3YJZWF4LERXT1JEIFsxMTIrZXNwXQog
CXB4b3IJeG1tMCx4bW0wCiAJYW5kCWVheCwxNQotCWp6CU5FQVIgTCQwNjl4dHNfZGVjX3JldAor
CWp6CU5FQVIgTCQwNzF4dHNfZGVjX3JldAogCXBjbXBndGQJeG1tMCx4bW0xCiAJbW92CURXT1JE
IFsxMTIrZXNwXSxlYXgKIAlwc2h1ZmQJeG1tMix4bW0wLDE5CkBAIC0xNzA4LDcgKzE3MzUsNyBA
QCBMJDA2N3h0c19kZWNfZG9uZToKIAlwYW5kCXhtbTIseG1tMwogCXBjbXBndGQJeG1tMCx4bW0x
CiAJcHhvcgl4bW0xLHhtbTIKLUwkMDcweHRzX2RlY19vbmx5X29uZV9tb3JlOgorTCQwNzJ4dHNf
ZGVjX29ubHlfb25lX21vcmU6CiAJcHNodWZkCXhtbTUseG1tMCwxOQogCW1vdmRxYQl4bW02LHht
bTEKIAlwYWRkcQl4bW0xLHhtbTEKQEAgLTE3MjIsMTYgKzE3NDksMTYgQEAgTCQwNzB4dHNfZGVj
X29ubHlfb25lX21vcmU6CiAJbW92dXBzCXhtbTEsWzE2K2VkeF0KIAlsZWEJZWR4LFszMitlZHhd
CiAJeG9ycHMJeG1tMix4bW0wCi1MJDA3MWRlYzFfbG9vcF8xMzoKK0wkMDczZGVjMV9sb29wXzEz
OgogZGIJMTAyLDE1LDU2LDIyMiwyMDkKIAlkZWMJZWN4CiAJbW92dXBzCXhtbTEsW2VkeF0KIAls
ZWEJZWR4LFsxNitlZHhdCi0Jam56CU5FQVIgTCQwNzFkZWMxX2xvb3BfMTMKKwlqbnoJTkVBUiBM
JDA3M2RlYzFfbG9vcF8xMwogZGIJMTAyLDE1LDU2LDIyMywyMDkKIAl4b3Jwcwl4bW0yLHhtbTUK
IAltb3Z1cHMJW2VkaV0seG1tMgotTCQwNzJ4dHNfZGVjX3N0ZWFsOgorTCQwNzR4dHNfZGVjX3N0
ZWFsOgogCW1vdnp4CWVjeCxCWVRFIFsxNitlc2ldCiAJbW92engJZWR4LEJZVEUgW2VkaV0KIAls
ZWEJZXNpLFsxK2VzaV0KQEAgLTE3MzksNyArMTc2Niw3IEBAIEwkMDcyeHRzX2RlY19zdGVhbDoK
IAltb3YJQllURSBbMTYrZWRpXSxkbAogCWxlYQllZGksWzErZWRpXQogCXN1YgllYXgsMQotCWpu
eglORUFSIEwkMDcyeHRzX2RlY19zdGVhbAorCWpueglORUFSIEwkMDc0eHRzX2RlY19zdGVhbAog
CXN1YgllZGksRFdPUkQgWzExMitlc3BdCiAJbW92CWVkeCxlYnAKIAltb3YJZWN4LGVieApAQCAt
MTc0OSwxNiArMTc3NiwxNiBAQCBMJDA3Mnh0c19kZWNfc3RlYWw6CiAJbW92dXBzCXhtbTEsWzE2
K2VkeF0KIAlsZWEJZWR4LFszMitlZHhdCiAJeG9ycHMJeG1tMix4bW0wCi1MJDA3M2RlYzFfbG9v
cF8xNDoKK0wkMDc1ZGVjMV9sb29wXzE0OgogZGIJMTAyLDE1LDU2LDIyMiwyMDkKIAlkZWMJZWN4
CiAJbW92dXBzCXhtbTEsW2VkeF0KIAlsZWEJZWR4LFsxNitlZHhdCi0Jam56CU5FQVIgTCQwNzNk
ZWMxX2xvb3BfMTQKKwlqbnoJTkVBUiBMJDA3NWRlYzFfbG9vcF8xNAogZGIJMTAyLDE1LDU2LDIy
MywyMDkKIAl4b3Jwcwl4bW0yLHhtbTYKIAltb3Z1cHMJW2VkaV0seG1tMgotTCQwNjl4dHNfZGVj
X3JldDoKK0wkMDcxeHRzX2RlY19yZXQ6CiAJcHhvcgl4bW0wLHhtbTAKIAlweG9yCXhtbTEseG1t
MQogCXB4b3IJeG1tMix4bW0yCkBAIC0xNzk2LDcgKzE4MjMsNyBAQCBMJF9hZXNfaHdfY2JjX2Vu
Y3J5cHRfYmVnaW46CiAJbW92CWVkeCxEV09SRCBbMzIrZXNwXQogCW1vdgllYnAsRFdPUkQgWzM2
K2VzcF0KIAl0ZXN0CWVheCxlYXgKLQlqeglORUFSIEwkMDc0Y2JjX2Fib3J0CisJanoJTkVBUiBM
JDA3NmNiY19hYm9ydAogCWNtcAlEV09SRCBbNDArZXNwXSwwCiAJeGNoZwllYngsZXNwCiAJbW92
dXBzCXhtbTcsW2VicF0KQEAgLTE4MDQsMTQgKzE4MzEsMTQgQEAgTCRfYWVzX2h3X2NiY19lbmNy
eXB0X2JlZ2luOgogCW1vdgllYnAsZWR4CiAJbW92CURXT1JEIFsxNitlc3BdLGVieAogCW1vdgll
YngsZWN4Ci0JamUJTkVBUiBMJDA3NWNiY19kZWNyeXB0CisJamUJTkVBUiBMJDA3N2NiY19kZWNy
eXB0CiAJbW92YXBzCXhtbTIseG1tNwogCWNtcAllYXgsMTYKLQlqYglORUFSIEwkMDc2Y2JjX2Vu
Y190YWlsCisJamIJTkVBUiBMJDA3OGNiY19lbmNfdGFpbAogCXN1YgllYXgsMTYKLQlqbXAJTkVB
UiBMJDA3N2NiY19lbmNfbG9vcAorCWptcAlORUFSIEwkMDc5Y2JjX2VuY19sb29wCiBhbGlnbgkx
NgotTCQwNzdjYmNfZW5jX2xvb3A6CitMJDA3OWNiY19lbmNfbG9vcDoKIAltb3Z1cHMJeG1tNyxb
ZXNpXQogCWxlYQllc2ksWzE2K2VzaV0KIAltb3Z1cHMJeG1tMCxbZWR4XQpAQCAtMTgxOSwyNSAr
MTg0NiwyNSBAQCBMJDA3N2NiY19lbmNfbG9vcDoKIAl4b3Jwcwl4bW03LHhtbTAKIAlsZWEJZWR4
LFszMitlZHhdCiAJeG9ycHMJeG1tMix4bW03Ci1MJDA3OGVuYzFfbG9vcF8xNToKK0wkMDgwZW5j
MV9sb29wXzE1OgogZGIJMTAyLDE1LDU2LDIyMCwyMDkKIAlkZWMJZWN4CiAJbW92dXBzCXhtbTEs
W2VkeF0KIAlsZWEJZWR4LFsxNitlZHhdCi0Jam56CU5FQVIgTCQwNzhlbmMxX2xvb3BfMTUKKwlq
bnoJTkVBUiBMJDA4MGVuYzFfbG9vcF8xNQogZGIJMTAyLDE1LDU2LDIyMSwyMDkKIAltb3YJZWN4
LGVieAogCW1vdgllZHgsZWJwCiAJbW92dXBzCVtlZGldLHhtbTIKIAlsZWEJZWRpLFsxNitlZGld
CiAJc3ViCWVheCwxNgotCWpuYwlORUFSIEwkMDc3Y2JjX2VuY19sb29wCisJam5jCU5FQVIgTCQw
NzljYmNfZW5jX2xvb3AKIAlhZGQJZWF4LDE2Ci0Jam56CU5FQVIgTCQwNzZjYmNfZW5jX3RhaWwK
KwlqbnoJTkVBUiBMJDA3OGNiY19lbmNfdGFpbAogCW1vdmFwcwl4bW03LHhtbTIKIAlweG9yCXht
bTIseG1tMgotCWptcAlORUFSIEwkMDc5Y2JjX3JldAotTCQwNzZjYmNfZW5jX3RhaWw6CisJam1w
CU5FQVIgTCQwODFjYmNfcmV0CitMJDA3OGNiY19lbmNfdGFpbDoKIAltb3YJZWN4LGVheAogZGQJ
Mjc2NzQ1MTc4NQogCW1vdgllY3gsMTYKQEAgLTE4NDgsMjAgKzE4NzUsMjAgQEAgZGQJMjg2ODEx
NTA4MQogCW1vdgllY3gsZWJ4CiAJbW92CWVzaSxlZGkKIAltb3YJZWR4LGVicAotCWptcAlORUFS
IEwkMDc3Y2JjX2VuY19sb29wCisJam1wCU5FQVIgTCQwNzljYmNfZW5jX2xvb3AKIGFsaWduCTE2
Ci1MJDA3NWNiY19kZWNyeXB0OgorTCQwNzdjYmNfZGVjcnlwdDoKIAljbXAJZWF4LDgwCi0JamJl
CU5FQVIgTCQwODBjYmNfZGVjX3RhaWwKKwlqYmUJTkVBUiBMJDA4MmNiY19kZWNfdGFpbAogCW1v
dmFwcwlbZXNwXSx4bW03CiAJc3ViCWVheCw4MAotCWptcAlORUFSIEwkMDgxY2JjX2RlY19sb29w
Nl9lbnRlcgorCWptcAlORUFSIEwkMDgzY2JjX2RlY19sb29wNl9lbnRlcgogYWxpZ24JMTYKLUwk
MDgyY2JjX2RlY19sb29wNjoKK0wkMDg0Y2JjX2RlY19sb29wNjoKIAltb3ZhcHMJW2VzcF0seG1t
MAogCW1vdnVwcwlbZWRpXSx4bW03CiAJbGVhCWVkaSxbMTYrZWRpXQotTCQwODFjYmNfZGVjX2xv
b3A2X2VudGVyOgorTCQwODNjYmNfZGVjX2xvb3A2X2VudGVyOgogCW1vdmRxdQl4bW0yLFtlc2ld
CiAJbW92ZHF1CXhtbTMsWzE2K2VzaV0KIAltb3ZkcXUJeG1tNCxbMzIrZXNpXQpAQCAtMTg5MSwy
OCArMTkxOCwyOCBAQCBMJDA4MWNiY19kZWNfbG9vcDZfZW50ZXI6CiAJbW92dXBzCVs2NCtlZGld
LHhtbTYKIAlsZWEJZWRpLFs4MCtlZGldCiAJc3ViCWVheCw5NgotCWphCU5FQVIgTCQwODJjYmNf
ZGVjX2xvb3A2CisJamEJTkVBUiBMJDA4NGNiY19kZWNfbG9vcDYKIAltb3ZhcHMJeG1tMix4bW03
CiAJbW92YXBzCXhtbTcseG1tMAogCWFkZAllYXgsODAKLQlqbGUJTkVBUiBMJDA4M2NiY19kZWNf
Y2xlYXJfdGFpbF9jb2xsZWN0ZWQKKwlqbGUJTkVBUiBMJDA4NWNiY19kZWNfY2xlYXJfdGFpbF9j
b2xsZWN0ZWQKIAltb3Z1cHMJW2VkaV0seG1tMgogCWxlYQllZGksWzE2K2VkaV0KLUwkMDgwY2Jj
X2RlY190YWlsOgorTCQwODJjYmNfZGVjX3RhaWw6CiAJbW92dXBzCXhtbTIsW2VzaV0KIAltb3Zh
cHMJeG1tNix4bW0yCiAJY21wCWVheCwxNgotCWpiZQlORUFSIEwkMDg0Y2JjX2RlY19vbmUKKwlq
YmUJTkVBUiBMJDA4NmNiY19kZWNfb25lCiAJbW92dXBzCXhtbTMsWzE2K2VzaV0KIAltb3ZhcHMJ
eG1tNSx4bW0zCiAJY21wCWVheCwzMgotCWpiZQlORUFSIEwkMDg1Y2JjX2RlY190d28KKwlqYmUJ
TkVBUiBMJDA4N2NiY19kZWNfdHdvCiAJbW92dXBzCXhtbTQsWzMyK2VzaV0KIAljbXAJZWF4LDQ4
Ci0JamJlCU5FQVIgTCQwODZjYmNfZGVjX3RocmVlCisJamJlCU5FQVIgTCQwODhjYmNfZGVjX3Ro
cmVlCiAJbW92dXBzCXhtbTUsWzQ4K2VzaV0KIAljbXAJZWF4LDY0Ci0JamJlCU5FQVIgTCQwODdj
YmNfZGVjX2ZvdXIKKwlqYmUJTkVBUiBMJDA4OWNiY19kZWNfZm91cgogCW1vdnVwcwl4bW02LFs2
NCtlc2ldCiAJbW92YXBzCVtlc3BdLHhtbTcKIAltb3Z1cHMJeG1tMixbZXNpXQpAQCAtMTkzOSwy
NiArMTk2NiwyNiBAQCBMJDA4MGNiY19kZWNfdGFpbDoKIAltb3ZhcHMJeG1tMix4bW02CiAJcHhv
cgl4bW02LHhtbTYKIAlzdWIJZWF4LDgwCi0Jam1wCU5FQVIgTCQwODhjYmNfZGVjX3RhaWxfY29s
bGVjdGVkCisJam1wCU5FQVIgTCQwOTBjYmNfZGVjX3RhaWxfY29sbGVjdGVkCiBhbGlnbgkxNgot
TCQwODRjYmNfZGVjX29uZToKK0wkMDg2Y2JjX2RlY19vbmU6CiAJbW92dXBzCXhtbTAsW2VkeF0K
IAltb3Z1cHMJeG1tMSxbMTYrZWR4XQogCWxlYQllZHgsWzMyK2VkeF0KIAl4b3Jwcwl4bW0yLHht
bTAKLUwkMDg5ZGVjMV9sb29wXzE2OgorTCQwOTFkZWMxX2xvb3BfMTY6CiBkYgkxMDIsMTUsNTYs
MjIyLDIwOQogCWRlYwllY3gKIAltb3Z1cHMJeG1tMSxbZWR4XQogCWxlYQllZHgsWzE2K2VkeF0K
LQlqbnoJTkVBUiBMJDA4OWRlYzFfbG9vcF8xNgorCWpueglORUFSIEwkMDkxZGVjMV9sb29wXzE2
CiBkYgkxMDIsMTUsNTYsMjIzLDIwOQogCXhvcnBzCXhtbTIseG1tNwogCW1vdmFwcwl4bW03LHht
bTYKIAlzdWIJZWF4LDE2Ci0Jam1wCU5FQVIgTCQwODhjYmNfZGVjX3RhaWxfY29sbGVjdGVkCisJ
am1wCU5FQVIgTCQwOTBjYmNfZGVjX3RhaWxfY29sbGVjdGVkCiBhbGlnbgkxNgotTCQwODVjYmNf
ZGVjX3R3bzoKK0wkMDg3Y2JjX2RlY190d286CiAJY2FsbAlfX2Flc25pX2RlY3J5cHQyCiAJeG9y
cHMJeG1tMix4bW03CiAJeG9ycHMJeG1tMyx4bW02CkBAIC0xOTY4LDkgKzE5OTUsOSBAQCBMJDA4
NWNiY19kZWNfdHdvOgogCWxlYQllZGksWzE2K2VkaV0KIAltb3ZhcHMJeG1tNyx4bW01CiAJc3Vi
CWVheCwzMgotCWptcAlORUFSIEwkMDg4Y2JjX2RlY190YWlsX2NvbGxlY3RlZAorCWptcAlORUFS
IEwkMDkwY2JjX2RlY190YWlsX2NvbGxlY3RlZAogYWxpZ24JMTYKLUwkMDg2Y2JjX2RlY190aHJl
ZToKK0wkMDg4Y2JjX2RlY190aHJlZToKIAljYWxsCV9fYWVzbmlfZGVjcnlwdDMKIAl4b3Jwcwl4
bW0yLHhtbTcKIAl4b3Jwcwl4bW0zLHhtbTYKQEAgLTE5ODMsOSArMjAxMCw5IEBAIEwkMDg2Y2Jj
X2RlY190aHJlZToKIAlsZWEJZWRpLFszMitlZGldCiAJbW92dXBzCXhtbTcsWzMyK2VzaV0KIAlz
dWIJZWF4LDQ4Ci0Jam1wCU5FQVIgTCQwODhjYmNfZGVjX3RhaWxfY29sbGVjdGVkCisJam1wCU5F
QVIgTCQwOTBjYmNfZGVjX3RhaWxfY29sbGVjdGVkCiBhbGlnbgkxNgotTCQwODdjYmNfZGVjX2Zv
dXI6CitMJDA4OWNiY19kZWNfZm91cjoKIAljYWxsCV9fYWVzbmlfZGVjcnlwdDQKIAltb3Z1cHMJ
eG1tMSxbMTYrZXNpXQogCW1vdnVwcwl4bW0wLFszMitlc2ldCkBAIC0yMDAzLDIxICsyMDMwLDIx
IEBAIEwkMDg3Y2JjX2RlY19mb3VyOgogCW1vdmFwcwl4bW0yLHhtbTUKIAlweG9yCXhtbTUseG1t
NQogCXN1YgllYXgsNjQKLQlqbXAJTkVBUiBMJDA4OGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKKwlq
bXAJTkVBUiBMJDA5MGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKIGFsaWduCTE2Ci1MJDA4M2NiY19k
ZWNfY2xlYXJfdGFpbF9jb2xsZWN0ZWQ6CitMJDA4NWNiY19kZWNfY2xlYXJfdGFpbF9jb2xsZWN0
ZWQ6CiAJcHhvcgl4bW0zLHhtbTMKIAlweG9yCXhtbTQseG1tNAogCXB4b3IJeG1tNSx4bW01CiAJ
cHhvcgl4bW02LHhtbTYKLUwkMDg4Y2JjX2RlY190YWlsX2NvbGxlY3RlZDoKK0wkMDkwY2JjX2Rl
Y190YWlsX2NvbGxlY3RlZDoKIAlhbmQJZWF4LDE1Ci0Jam56CU5FQVIgTCQwOTBjYmNfZGVjX3Rh
aWxfcGFydGlhbAorCWpueglORUFSIEwkMDkyY2JjX2RlY190YWlsX3BhcnRpYWwKIAltb3Z1cHMJ
W2VkaV0seG1tMgogCXB4b3IJeG1tMCx4bW0wCi0Jam1wCU5FQVIgTCQwNzljYmNfcmV0CisJam1w
CU5FQVIgTCQwODFjYmNfcmV0CiBhbGlnbgkxNgotTCQwOTBjYmNfZGVjX3RhaWxfcGFydGlhbDoK
K0wkMDkyY2JjX2RlY190YWlsX3BhcnRpYWw6CiAJbW92YXBzCVtlc3BdLHhtbTIKIAlweG9yCXht
bTAseG1tMAogCW1vdgllY3gsMTYKQEAgLTIwMjUsMTQgKzIwNTIsMTQgQEAgTCQwOTBjYmNfZGVj
X3RhaWxfcGFydGlhbDoKIAlzdWIJZWN4LGVheAogZGQJMjc2NzQ1MTc4NQogCW1vdmRxYQlbZXNw
XSx4bW0yCi1MJDA3OWNiY19yZXQ6CitMJDA4MWNiY19yZXQ6CiAJbW92CWVzcCxEV09SRCBbMTYr
ZXNwXQogCW1vdgllYnAsRFdPUkQgWzM2K2VzcF0KIAlweG9yCXhtbTIseG1tMgogCXB4b3IJeG1t
MSx4bW0xCiAJbW92dXBzCVtlYnBdLHhtbTcKIAlweG9yCXhtbTcseG1tNwotTCQwNzRjYmNfYWJv
cnQ6CitMJDA3NmNiY19hYm9ydDoKIAlwb3AJZWRpCiAJcG9wCWVzaQogCXBvcAllYngKQEAgLTIw
NDMsMTMgKzIwNzAsMTMgQEAgX19hZXNuaV9zZXRfZW5jcnlwdF9rZXk6CiAJcHVzaAllYnAKIAlw
dXNoCWVieAogCXRlc3QJZWF4LGVheAotCWp6CU5FQVIgTCQwOTFiYWRfcG9pbnRlcgorCWp6CU5F
QVIgTCQwOTNiYWRfcG9pbnRlcgogCXRlc3QJZWR4LGVkeAotCWp6CU5FQVIgTCQwOTFiYWRfcG9p
bnRlcgotCWNhbGwJTCQwOTJwaWMKLUwkMDkycGljOgorCWp6CU5FQVIgTCQwOTNiYWRfcG9pbnRl
cgorCWNhbGwJTCQwOTRwaWMKK0wkMDk0cGljOgogCXBvcAllYngKLQlsZWEJZWJ4LFsoTCRrZXlf
Y29uc3QtTCQwOTJwaWMpK2VieF0KKwlsZWEJZWJ4LFsoTCRrZXlfY29uc3QtTCQwOTRwaWMpK2Vi
eF0KIAlsZWEJZWJwLFtfT1BFTlNTTF9pYTMyY2FwX1BdCiAJbW92dXBzCXhtbTAsW2VheF0KIAl4
b3Jwcwl4bW00LHhtbTQKQEAgLTIwNTcsNDUgKzIwODQsNDUgQEAgTCQwOTJwaWM6CiAJbGVhCWVk
eCxbMTYrZWR4XQogCWFuZAllYnAsMjY4NDM3NTA0CiAJY21wCWVjeCwyNTYKLQlqZQlORUFSIEwk
MDkzMTRyb3VuZHMKKwlqZQlORUFSIEwkMDk1MTRyb3VuZHMKIAljbXAJZWN4LDE5MgotCWplCU5F
QVIgTCQwOTQxMnJvdW5kcworCWplCU5FQVIgTCQwOTYxMnJvdW5kcwogCWNtcAllY3gsMTI4Ci0J
am5lCU5FQVIgTCQwOTViYWRfa2V5Yml0cworCWpuZQlORUFSIEwkMDk3YmFkX2tleWJpdHMKIGFs
aWduCTE2Ci1MJDA5NjEwcm91bmRzOgorTCQwOTgxMHJvdW5kczoKIAljbXAJZWJwLDI2ODQzNTQ1
NgotCWplCU5FQVIgTCQwOTcxMHJvdW5kc19hbHQKKwlqZQlORUFSIEwkMDk5MTByb3VuZHNfYWx0
CiAJbW92CWVjeCw5CiAJbW92dXBzCVtlZHgtMTZdLHhtbTAKIGRiCTEwMiwxNSw1OCwyMjMsMjAw
LDEKLQljYWxsCUwkMDk4a2V5XzEyOF9jb2xkCisJY2FsbAlMJDEwMGtleV8xMjhfY29sZAogZGIJ
MTAyLDE1LDU4LDIyMywyMDAsMgotCWNhbGwJTCQwOTlrZXlfMTI4CisJY2FsbAlMJDEwMWtleV8x
MjgKIGRiCTEwMiwxNSw1OCwyMjMsMjAwLDQKLQljYWxsCUwkMDk5a2V5XzEyOAorCWNhbGwJTCQx
MDFrZXlfMTI4CiBkYgkxMDIsMTUsNTgsMjIzLDIwMCw4Ci0JY2FsbAlMJDA5OWtleV8xMjgKKwlj
YWxsCUwkMTAxa2V5XzEyOAogZGIJMTAyLDE1LDU4LDIyMywyMDAsMTYKLQljYWxsCUwkMDk5a2V5
XzEyOAorCWNhbGwJTCQxMDFrZXlfMTI4CiBkYgkxMDIsMTUsNTgsMjIzLDIwMCwzMgotCWNhbGwJ
TCQwOTlrZXlfMTI4CisJY2FsbAlMJDEwMWtleV8xMjgKIGRiCTEwMiwxNSw1OCwyMjMsMjAwLDY0
Ci0JY2FsbAlMJDA5OWtleV8xMjgKKwljYWxsCUwkMTAxa2V5XzEyOAogZGIJMTAyLDE1LDU4LDIy
MywyMDAsMTI4Ci0JY2FsbAlMJDA5OWtleV8xMjgKKwljYWxsCUwkMTAxa2V5XzEyOAogZGIJMTAy
LDE1LDU4LDIyMywyMDAsMjcKLQljYWxsCUwkMDk5a2V5XzEyOAorCWNhbGwJTCQxMDFrZXlfMTI4
CiBkYgkxMDIsMTUsNTgsMjIzLDIwMCw1NAotCWNhbGwJTCQwOTlrZXlfMTI4CisJY2FsbAlMJDEw
MWtleV8xMjgKIAltb3Z1cHMJW2VkeF0seG1tMAogCW1vdglEV09SRCBbODArZWR4XSxlY3gKLQlq
bXAJTkVBUiBMJDEwMGdvb2Rfa2V5CisJam1wCU5FQVIgTCQxMDJnb29kX2tleQogYWxpZ24JMTYK
LUwkMDk5a2V5XzEyODoKK0wkMTAxa2V5XzEyODoKIAltb3Z1cHMJW2VkeF0seG1tMAogCWxlYQll
ZHgsWzE2K2VkeF0KLUwkMDk4a2V5XzEyOF9jb2xkOgorTCQxMDBrZXlfMTI4X2NvbGQ6CiAJc2h1
ZnBzCXhtbTQseG1tMCwxNgogCXhvcnBzCXhtbTAseG1tNAogCXNodWZwcwl4bW00LHhtbTAsMTQw
CkBAIC0yMTA0LDEzICsyMTMxLDEzIEBAIEwkMDk4a2V5XzEyOF9jb2xkOgogCXhvcnBzCXhtbTAs
eG1tMQogCXJldAogYWxpZ24JMTYKLUwkMDk3MTByb3VuZHNfYWx0OgorTCQwOTkxMHJvdW5kc19h
bHQ6CiAJbW92ZHFhCXhtbTUsW2VieF0KIAltb3YJZWN4LDgKIAltb3ZkcWEJeG1tNCxbMzIrZWJ4
XQogCW1vdmRxYQl4bW0yLHhtbTAKIAltb3ZkcXUJW2VkeC0xNl0seG1tMAotTCQxMDFsb29wX2tl
eTEyODoKK0wkMTAzbG9vcF9rZXkxMjg6CiBkYgkxMDIsMTUsNTYsMCwxOTcKIGRiCTEwMiwxNSw1
NiwyMjEsMTk2CiAJcHNsbGQJeG1tNCwxCkBAIC0yMTI2LDcgKzIxNTMsNyBAQCBkYgkxMDIsMTUs
NTYsMjIxLDE5NgogCW1vdmRxdQlbZWR4LTE2XSx4bW0wCiAJbW92ZHFhCXhtbTIseG1tMAogCWRl
YwllY3gKLQlqbnoJTkVBUiBMJDEwMWxvb3Bfa2V5MTI4CisJam56CU5FQVIgTCQxMDNsb29wX2tl
eTEyOAogCW1vdmRxYQl4bW00LFs0OCtlYnhdCiBkYgkxMDIsMTUsNTYsMCwxOTcKIGRiCTEwMiwx
NSw1NiwyMjEsMTk2CkBAIC0yMTU0LDQxICsyMTgxLDQxIEBAIGRiCTEwMiwxNSw1NiwyMjEsMTk2
CiAJbW92ZHF1CVsxNitlZHhdLHhtbTAKIAltb3YJZWN4LDkKIAltb3YJRFdPUkQgWzk2K2VkeF0s
ZWN4Ci0Jam1wCU5FQVIgTCQxMDBnb29kX2tleQorCWptcAlORUFSIEwkMTAyZ29vZF9rZXkKIGFs
aWduCTE2Ci1MJDA5NDEycm91bmRzOgorTCQwOTYxMnJvdW5kczoKIAltb3ZxCXhtbTIsWzE2K2Vh
eF0KIAljbXAJZWJwLDI2ODQzNTQ1NgotCWplCU5FQVIgTCQxMDIxMnJvdW5kc19hbHQKKwlqZQlO
RUFSIEwkMTA0MTJyb3VuZHNfYWx0CiAJbW92CWVjeCwxMQogCW1vdnVwcwlbZWR4LTE2XSx4bW0w
CiBkYgkxMDIsMTUsNTgsMjIzLDIwMiwxCi0JY2FsbAlMJDEwM2tleV8xOTJhX2NvbGQKKwljYWxs
CUwkMTA1a2V5XzE5MmFfY29sZAogZGIJMTAyLDE1LDU4LDIyMywyMDIsMgotCWNhbGwJTCQxMDRr
ZXlfMTkyYgorCWNhbGwJTCQxMDZrZXlfMTkyYgogZGIJMTAyLDE1LDU4LDIyMywyMDIsNAotCWNh
bGwJTCQxMDVrZXlfMTkyYQorCWNhbGwJTCQxMDdrZXlfMTkyYQogZGIJMTAyLDE1LDU4LDIyMywy
MDIsOAotCWNhbGwJTCQxMDRrZXlfMTkyYgorCWNhbGwJTCQxMDZrZXlfMTkyYgogZGIJMTAyLDE1
LDU4LDIyMywyMDIsMTYKLQljYWxsCUwkMTA1a2V5XzE5MmEKKwljYWxsCUwkMTA3a2V5XzE5MmEK
IGRiCTEwMiwxNSw1OCwyMjMsMjAyLDMyCi0JY2FsbAlMJDEwNGtleV8xOTJiCisJY2FsbAlMJDEw
NmtleV8xOTJiCiBkYgkxMDIsMTUsNTgsMjIzLDIwMiw2NAotCWNhbGwJTCQxMDVrZXlfMTkyYQor
CWNhbGwJTCQxMDdrZXlfMTkyYQogZGIJMTAyLDE1LDU4LDIyMywyMDIsMTI4Ci0JY2FsbAlMJDEw
NGtleV8xOTJiCisJY2FsbAlMJDEwNmtleV8xOTJiCiAJbW92dXBzCVtlZHhdLHhtbTAKIAltb3YJ
RFdPUkQgWzQ4K2VkeF0sZWN4Ci0Jam1wCU5FQVIgTCQxMDBnb29kX2tleQorCWptcAlORUFSIEwk
MTAyZ29vZF9rZXkKIGFsaWduCTE2Ci1MJDEwNWtleV8xOTJhOgorTCQxMDdrZXlfMTkyYToKIAlt
b3Z1cHMJW2VkeF0seG1tMAogCWxlYQllZHgsWzE2K2VkeF0KIGFsaWduCTE2Ci1MJDEwM2tleV8x
OTJhX2NvbGQ6CitMJDEwNWtleV8xOTJhX2NvbGQ6CiAJbW92YXBzCXhtbTUseG1tMgotTCQxMDZr
ZXlfMTkyYl93YXJtOgorTCQxMDhrZXlfMTkyYl93YXJtOgogCXNodWZwcwl4bW00LHhtbTAsMTYK
IAltb3ZkcWEJeG1tMyx4bW0yCiAJeG9ycHMJeG1tMCx4bW00CkBAIC0yMjAyLDIxICsyMjI5LDIx
IEBAIEwkMTA2a2V5XzE5MmJfd2FybToKIAlweG9yCXhtbTIseG1tMwogCXJldAogYWxpZ24JMTYK
LUwkMTA0a2V5XzE5MmI6CitMJDEwNmtleV8xOTJiOgogCW1vdmFwcwl4bW0zLHhtbTAKIAlzaHVm
cHMJeG1tNSx4bW0wLDY4CiAJbW92dXBzCVtlZHhdLHhtbTUKIAlzaHVmcHMJeG1tMyx4bW0yLDc4
CiAJbW92dXBzCVsxNitlZHhdLHhtbTMKIAlsZWEJZWR4LFszMitlZHhdCi0Jam1wCU5FQVIgTCQx
MDZrZXlfMTkyYl93YXJtCisJam1wCU5FQVIgTCQxMDhrZXlfMTkyYl93YXJtCiBhbGlnbgkxNgot
TCQxMDIxMnJvdW5kc19hbHQ6CitMJDEwNDEycm91bmRzX2FsdDoKIAltb3ZkcWEJeG1tNSxbMTYr
ZWJ4XQogCW1vdmRxYQl4bW00LFszMitlYnhdCiAJbW92CWVjeCw4CiAJbW92ZHF1CVtlZHgtMTZd
LHhtbTAKLUwkMTA3bG9vcF9rZXkxOTI6CitMJDEwOWxvb3Bfa2V5MTkyOgogCW1vdnEJW2VkeF0s
eG1tMgogCW1vdmRxYQl4bW0xLHhtbTIKIGRiCTEwMiwxNSw1NiwwLDIxMwpAQCAtMjIzOCw1NCAr
MjI2NSw1NCBAQCBkYgkxMDIsMTUsNTYsMjIxLDIxMgogCXB4b3IJeG1tMix4bW0zCiAJbW92ZHF1
CVtlZHgtMTZdLHhtbTAKIAlkZWMJZWN4Ci0Jam56CU5FQVIgTCQxMDdsb29wX2tleTE5MgorCWpu
eglORUFSIEwkMTA5bG9vcF9rZXkxOTIKIAltb3YJZWN4LDExCiAJbW92CURXT1JEIFszMitlZHhd
LGVjeAotCWptcAlORUFSIEwkMTAwZ29vZF9rZXkKKwlqbXAJTkVBUiBMJDEwMmdvb2Rfa2V5CiBh
bGlnbgkxNgotTCQwOTMxNHJvdW5kczoKK0wkMDk1MTRyb3VuZHM6CiAJbW92dXBzCXhtbTIsWzE2
K2VheF0KIAlsZWEJZWR4LFsxNitlZHhdCiAJY21wCWVicCwyNjg0MzU0NTYKLQlqZQlORUFSIEwk
MTA4MTRyb3VuZHNfYWx0CisJamUJTkVBUiBMJDExMDE0cm91bmRzX2FsdAogCW1vdgllY3gsMTMK
IAltb3Z1cHMJW2VkeC0zMl0seG1tMAogCW1vdnVwcwlbZWR4LTE2XSx4bW0yCiBkYgkxMDIsMTUs
NTgsMjIzLDIwMiwxCi0JY2FsbAlMJDEwOWtleV8yNTZhX2NvbGQKKwljYWxsCUwkMTExa2V5XzI1
NmFfY29sZAogZGIJMTAyLDE1LDU4LDIyMywyMDAsMQotCWNhbGwJTCQxMTBrZXlfMjU2YgorCWNh
bGwJTCQxMTJrZXlfMjU2YgogZGIJMTAyLDE1LDU4LDIyMywyMDIsMgotCWNhbGwJTCQxMTFrZXlf
MjU2YQorCWNhbGwJTCQxMTNrZXlfMjU2YQogZGIJMTAyLDE1LDU4LDIyMywyMDAsMgotCWNhbGwJ
TCQxMTBrZXlfMjU2YgorCWNhbGwJTCQxMTJrZXlfMjU2YgogZGIJMTAyLDE1LDU4LDIyMywyMDIs
NAotCWNhbGwJTCQxMTFrZXlfMjU2YQorCWNhbGwJTCQxMTNrZXlfMjU2YQogZGIJMTAyLDE1LDU4
LDIyMywyMDAsNAotCWNhbGwJTCQxMTBrZXlfMjU2YgorCWNhbGwJTCQxMTJrZXlfMjU2YgogZGIJ
MTAyLDE1LDU4LDIyMywyMDIsOAotCWNhbGwJTCQxMTFrZXlfMjU2YQorCWNhbGwJTCQxMTNrZXlf
MjU2YQogZGIJMTAyLDE1LDU4LDIyMywyMDAsOAotCWNhbGwJTCQxMTBrZXlfMjU2YgorCWNhbGwJ
TCQxMTJrZXlfMjU2YgogZGIJMTAyLDE1LDU4LDIyMywyMDIsMTYKLQljYWxsCUwkMTExa2V5XzI1
NmEKKwljYWxsCUwkMTEza2V5XzI1NmEKIGRiCTEwMiwxNSw1OCwyMjMsMjAwLDE2Ci0JY2FsbAlM
JDExMGtleV8yNTZiCisJY2FsbAlMJDExMmtleV8yNTZiCiBkYgkxMDIsMTUsNTgsMjIzLDIwMiwz
MgotCWNhbGwJTCQxMTFrZXlfMjU2YQorCWNhbGwJTCQxMTNrZXlfMjU2YQogZGIJMTAyLDE1LDU4
LDIyMywyMDAsMzIKLQljYWxsCUwkMTEwa2V5XzI1NmIKKwljYWxsCUwkMTEya2V5XzI1NmIKIGRi
CTEwMiwxNSw1OCwyMjMsMjAyLDY0Ci0JY2FsbAlMJDExMWtleV8yNTZhCisJY2FsbAlMJDExM2tl
eV8yNTZhCiAJbW92dXBzCVtlZHhdLHhtbTAKIAltb3YJRFdPUkQgWzE2K2VkeF0sZWN4CiAJeG9y
CWVheCxlYXgKLQlqbXAJTkVBUiBMJDEwMGdvb2Rfa2V5CisJam1wCU5FQVIgTCQxMDJnb29kX2tl
eQogYWxpZ24JMTYKLUwkMTExa2V5XzI1NmE6CitMJDExM2tleV8yNTZhOgogCW1vdnVwcwlbZWR4
XSx4bW0yCiAJbGVhCWVkeCxbMTYrZWR4XQotTCQxMDlrZXlfMjU2YV9jb2xkOgorTCQxMTFrZXlf
MjU2YV9jb2xkOgogCXNodWZwcwl4bW00LHhtbTAsMTYKIAl4b3Jwcwl4bW0wLHhtbTQKIAlzaHVm
cHMJeG1tNCx4bW0wLDE0MApAQCAtMjI5NCw3ICsyMzIxLDcgQEAgTCQxMDlrZXlfMjU2YV9jb2xk
OgogCXhvcnBzCXhtbTAseG1tMQogCXJldAogYWxpZ24JMTYKLUwkMTEwa2V5XzI1NmI6CitMJDEx
MmtleV8yNTZiOgogCW1vdnVwcwlbZWR4XSx4bW0wCiAJbGVhCWVkeCxbMTYrZWR4XQogCXNodWZw
cwl4bW00LHhtbTIsMTYKQEAgLTIzMDUsMTQgKzIzMzIsMTQgQEAgTCQxMTBrZXlfMjU2YjoKIAl4
b3Jwcwl4bW0yLHhtbTEKIAlyZXQKIGFsaWduCTE2Ci1MJDEwODE0cm91bmRzX2FsdDoKK0wkMTEw
MTRyb3VuZHNfYWx0OgogCW1vdmRxYQl4bW01LFtlYnhdCiAJbW92ZHFhCXhtbTQsWzMyK2VieF0K
IAltb3YJZWN4LDcKIAltb3ZkcXUJW2VkeC0zMl0seG1tMAogCW1vdmRxYQl4bW0xLHhtbTIKIAlt
b3ZkcXUJW2VkeC0xNl0seG1tMgotTCQxMTJsb29wX2tleTI1NjoKK0wkMTE0bG9vcF9rZXkyNTY6
CiBkYgkxMDIsMTUsNTYsMCwyMTMKIGRiCTEwMiwxNSw1NiwyMjEsMjEyCiAJbW92ZHFhCXhtbTMs
eG1tMApAQCAtMjMyNiw3ICsyMzUzLDcgQEAgZGIJMTAyLDE1LDU2LDIyMSwyMTIKIAlweG9yCXht
bTAseG1tMgogCW1vdmRxdQlbZWR4XSx4bW0wCiAJZGVjCWVjeAotCWp6CU5FQVIgTCQxMTNkb25l
X2tleTI1NgorCWp6CU5FQVIgTCQxMTVkb25lX2tleTI1NgogCXBzaHVmZAl4bW0yLHhtbTAsMjU1
CiAJcHhvcgl4bW0zLHhtbTMKIGRiCTEwMiwxNSw1NiwyMjEsMjExCkBAIC0yMzQxLDExICsyMzY4
LDExIEBAIGRiCTEwMiwxNSw1NiwyMjEsMjExCiAJbW92ZHF1CVsxNitlZHhdLHhtbTIKIAlsZWEJ
ZWR4LFszMitlZHhdCiAJbW92ZHFhCXhtbTEseG1tMgotCWptcAlORUFSIEwkMTEybG9vcF9rZXky
NTYKLUwkMTEzZG9uZV9rZXkyNTY6CisJam1wCU5FQVIgTCQxMTRsb29wX2tleTI1NgorTCQxMTVk
b25lX2tleTI1NjoKIAltb3YJZWN4LDEzCiAJbW92CURXT1JEIFsxNitlZHhdLGVjeAotTCQxMDBn
b29kX2tleToKK0wkMTAyZ29vZF9rZXk6CiAJcHhvcgl4bW0wLHhtbTAKIAlweG9yCXhtbTEseG1t
MQogCXB4b3IJeG1tMix4bW0yCkBAIC0yMzU3LDEzICsyMzg0LDEzIEBAIEwkMTAwZ29vZF9rZXk6
CiAJcG9wCWVicAogCXJldAogYWxpZ24JNAotTCQwOTFiYWRfcG9pbnRlcjoKK0wkMDkzYmFkX3Bv
aW50ZXI6CiAJbW92CWVheCwtMQogCXBvcAllYngKIAlwb3AJZWJwCiAJcmV0CiBhbGlnbgk0Ci1M
JDA5NWJhZF9rZXliaXRzOgorTCQwOTdiYWRfa2V5Yml0czoKIAlweG9yCXhtbTAseG1tMAogCW1v
dgllYXgsLTIKIAlwb3AJZWJ4CkBAIC0yMzczLDYgKzI0MDAsMTggQEAgZ2xvYmFsCV9hZXNfaHdf
c2V0X2VuY3J5cHRfa2V5CiBhbGlnbgkxNgogX2Flc19od19zZXRfZW5jcnlwdF9rZXk6CiBMJF9h
ZXNfaHdfc2V0X2VuY3J5cHRfa2V5X2JlZ2luOgorJWlmbmRlZiBOREVCVUcKKwlwdXNoCWVieAor
CXB1c2gJZWR4CisJY2FsbAlMJDExNnBpYworTCQxMTZwaWM6CisJcG9wCWVieAorCWxlYQllYngs
WyhfQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCszLUwkMTE2cGljKStlYnhdCisJbW92CWVkeCwxCisJ
bW92CUJZVEUgW2VieF0sZGwKKwlwb3AJZWR4CisJcG9wCWVieAorJWVuZGlmCiAJbW92CWVheCxE
V09SRCBbNCtlc3BdCiAJbW92CWVjeCxEV09SRCBbOCtlc3BdCiAJbW92CWVkeCxEV09SRCBbMTIr
ZXNwXQpAQCAtMjM4OSw3ICsyNDI4LDcgQEAgTCRfYWVzX2h3X3NldF9kZWNyeXB0X2tleV9iZWdp
bjoKIAltb3YJZWR4LERXT1JEIFsxMitlc3BdCiAJc2hsCWVjeCw0CiAJdGVzdAllYXgsZWF4Ci0J
am56CU5FQVIgTCQxMTRkZWNfa2V5X3JldAorCWpueglORUFSIEwkMTE3ZGVjX2tleV9yZXQKIAls
ZWEJZWF4LFsxNitlY3gqMStlZHhdCiAJbW92dXBzCXhtbTAsW2VkeF0KIAltb3Z1cHMJeG1tMSxb
ZWF4XQpAQCAtMjM5Nyw3ICsyNDM2LDcgQEAgTCRfYWVzX2h3X3NldF9kZWNyeXB0X2tleV9iZWdp
bjoKIAltb3Z1cHMJW2VkeF0seG1tMQogCWxlYQllZHgsWzE2K2VkeF0KIAlsZWEJZWF4LFtlYXgt
MTZdCi1MJDExNWRlY19rZXlfaW52ZXJzZToKK0wkMTE4ZGVjX2tleV9pbnZlcnNlOgogCW1vdnVw
cwl4bW0wLFtlZHhdCiAJbW92dXBzCXhtbTEsW2VheF0KIGRiCTEwMiwxNSw1NiwyMTksMTkyCkBA
IC0yNDA3LDE0ICsyNDQ2LDE0IEBAIGRiCTEwMiwxNSw1NiwyMTksMjAxCiAJbW92dXBzCVsxNitl
YXhdLHhtbTAKIAltb3Z1cHMJW2VkeC0xNl0seG1tMQogCWNtcAllYXgsZWR4Ci0JamEJTkVBUiBM
JDExNWRlY19rZXlfaW52ZXJzZQorCWphCU5FQVIgTCQxMThkZWNfa2V5X2ludmVyc2UKIAltb3Z1
cHMJeG1tMCxbZWR4XQogZGIJMTAyLDE1LDU2LDIxOSwxOTIKIAltb3Z1cHMJW2VkeF0seG1tMAog
CXB4b3IJeG1tMCx4bW0wCiAJcHhvcgl4bW0xLHhtbTEKIAl4b3IJZWF4LGVheAotTCQxMTRkZWNf
a2V5X3JldDoKK0wkMTE3ZGVjX2tleV9yZXQ6CiAJcmV0CiBhbGlnbgk2NAogTCRrZXlfY29uc3Q6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Ni5hc20gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93
aW4teDg2L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Ni5hc20KaW5kZXggNWYxZGNlNGVmYjMw
M2I5YmYxMDJiNmQ0MjZjZTM4ZGI5OTg1NTEzZS4uMzIwMWI4ZDgzMzQzMjA0MTRlNTg0ZjY0NmQ0
ZDBiMDQwYWQ1MTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vZmlwc21vZHVsZS92cGFl
cy14ODYuYXNtCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvYm9yaW5nc3NsL3dpbi14ODYvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMteDg2LmFzbQpA
QCAtMjAsNiArMjAsOSBAQCBzZWN0aW9uCS50ZXh0CWNvZGUgYWxpZ249NjQKICVlbHNlCiBzZWN0
aW9uCS50ZXh0CWNvZGUKICVlbmRpZgorJWlmbmRlZiBOREVCVUcKK2V4dGVybglfQk9SSU5HU1NM
X2Z1bmN0aW9uX2hpdAorJWVuZGlmCiBhbGlnbgk2NAogTCRfdnBhZXNfY29uc3RzOgogZGQJMjE4
NjI4NDgwLDIzNTIxMDI1NSwxNjg0OTYxMzAsNjc1NjgzOTMKQEAgLTQ3MSw2ICs0NzQsMTggQEAg
TCRfdnBhZXNfc2V0X2VuY3J5cHRfa2V5X2JlZ2luOgogCXB1c2gJZWJ4CiAJcHVzaAllc2kKIAlw
dXNoCWVkaQorJWlmbmRlZiBOREVCVUcKKwlwdXNoCWVieAorCXB1c2gJZWR4CisJY2FsbAlMJDAx
NnBpYworTCQwMTZwaWM6CisJcG9wCWVieAorCWxlYQllYngsWyhfQk9SSU5HU1NMX2Z1bmN0aW9u
X2hpdCs1LUwkMDE2cGljKStlYnhdCisJbW92CWVkeCwxCisJbW92CUJZVEUgW2VieF0sZGwKKwlw
b3AJZWR4CisJcG9wCWVieAorJWVuZGlmCiAJbW92CWVzaSxEV09SRCBbMjArZXNwXQogCWxlYQll
YngsW2VzcC01Nl0KIAltb3YJZWF4LERXT1JEIFsyNCtlc3BdCkBAIC00ODQsOSArNDk5LDkgQEAg
TCRfdnBhZXNfc2V0X2VuY3J5cHRfa2V5X2JlZ2luOgogCW1vdglEV09SRCBbMjQwK2VkeF0sZWJ4
CiAJbW92CWVjeCw0OAogCW1vdgllZGksMAotCWxlYQllYnAsWyhMJF92cGFlc19jb25zdHMrMHgz
MC1MJDAxNnBpY19wb2ludCldCisJbGVhCWVicCxbKEwkX3ZwYWVzX2NvbnN0cysweDMwLUwkMDE3
cGljX3BvaW50KV0KIAljYWxsCV9fdnBhZXNfc2NoZWR1bGVfY29yZQotTCQwMTZwaWNfcG9pbnQ6
CitMJDAxN3BpY19wb2ludDoKIAltb3YJZXNwLERXT1JEIFs0OCtlc3BdCiAJeG9yCWVheCxlYXgK
IAlwb3AJZWRpCkBAIC01MjAsOSArNTM1LDkgQEAgTCRfdnBhZXNfc2V0X2RlY3J5cHRfa2V5X2Jl
Z2luOgogCXNocgllY3gsMQogCWFuZAllY3gsMzIKIAl4b3IJZWN4LDMyCi0JbGVhCWVicCxbKEwk
X3ZwYWVzX2NvbnN0cysweDMwLUwkMDE3cGljX3BvaW50KV0KKwlsZWEJZWJwLFsoTCRfdnBhZXNf
Y29uc3RzKzB4MzAtTCQwMThwaWNfcG9pbnQpXQogCWNhbGwJX192cGFlc19zY2hlZHVsZV9jb3Jl
Ci1MJDAxN3BpY19wb2ludDoKK0wkMDE4cGljX3BvaW50OgogCW1vdgllc3AsRFdPUkQgWzQ4K2Vz
cF0KIAl4b3IJZWF4LGVheAogCXBvcAllZGkKQEAgLTUzOCw5ICs1NTMsMjEgQEAgTCRfdnBhZXNf
ZW5jcnlwdF9iZWdpbjoKIAlwdXNoCWVieAogCXB1c2gJZXNpCiAJcHVzaAllZGkKLQlsZWEJZWJw
LFsoTCRfdnBhZXNfY29uc3RzKzB4MzAtTCQwMThwaWNfcG9pbnQpXQorJWlmbmRlZiBOREVCVUcK
KwlwdXNoCWVieAorCXB1c2gJZWR4CisJY2FsbAlMJDAxOXBpYworTCQwMTlwaWM6CisJcG9wCWVi
eAorCWxlYQllYngsWyhfQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCs0LUwkMDE5cGljKStlYnhdCisJ
bW92CWVkeCwxCisJbW92CUJZVEUgW2VieF0sZGwKKwlwb3AJZWR4CisJcG9wCWVieAorJWVuZGlm
CisJbGVhCWVicCxbKEwkX3ZwYWVzX2NvbnN0cysweDMwLUwkMDIwcGljX3BvaW50KV0KIAljYWxs
CV9fdnBhZXNfcHJlaGVhdAotTCQwMThwaWNfcG9pbnQ6CitMJDAyMHBpY19wb2ludDoKIAltb3YJ
ZXNpLERXT1JEIFsyMCtlc3BdCiAJbGVhCWVieCxbZXNwLTU2XQogCW1vdgllZGksRFdPUkQgWzI0
K2VzcF0KQEAgLTU2NSw5ICs1OTIsOSBAQCBMJF92cGFlc19kZWNyeXB0X2JlZ2luOgogCXB1c2gJ
ZWJ4CiAJcHVzaAllc2kKIAlwdXNoCWVkaQotCWxlYQllYnAsWyhMJF92cGFlc19jb25zdHMrMHgz
MC1MJDAxOXBpY19wb2ludCldCisJbGVhCWVicCxbKEwkX3ZwYWVzX2NvbnN0cysweDMwLUwkMDIx
cGljX3BvaW50KV0KIAljYWxsCV9fdnBhZXNfcHJlaGVhdAotTCQwMTlwaWNfcG9pbnQ6CitMJDAy
MXBpY19wb2ludDoKIAltb3YJZXNpLERXT1JEIFsyMCtlc3BdCiAJbGVhCWVieCxbZXNwLTU2XQog
CW1vdgllZGksRFdPUkQgWzI0K2VzcF0KQEAgLTU5Nyw3ICs2MjQsNyBAQCBMJF92cGFlc19jYmNf
ZW5jcnlwdF9iZWdpbjoKIAltb3YJZWF4LERXT1JEIFsyOCtlc3BdCiAJbW92CWVkeCxEV09SRCBb
MzIrZXNwXQogCXN1YgllYXgsMTYKLQlqYwlORUFSIEwkMDIwY2JjX2Fib3J0CisJamMJTkVBUiBM
JDAyMmNiY19hYm9ydAogCWxlYQllYngsW2VzcC01Nl0KIAltb3YJZWJwLERXT1JEIFszNitlc3Bd
CiAJYW5kCWVieCwtMTYKQEAgLTYxMCwxNCArNjM3LDE0IEBAIEwkX3ZwYWVzX2NiY19lbmNyeXB0
X2JlZ2luOgogCW1vdglEV09SRCBbNCtlc3BdLGVkeAogCW1vdglEV09SRCBbOCtlc3BdLGVicAog
CW1vdgllZGksZWF4Ci0JbGVhCWVicCxbKEwkX3ZwYWVzX2NvbnN0cysweDMwLUwkMDIxcGljX3Bv
aW50KV0KKwlsZWEJZWJwLFsoTCRfdnBhZXNfY29uc3RzKzB4MzAtTCQwMjNwaWNfcG9pbnQpXQog
CWNhbGwJX192cGFlc19wcmVoZWF0Ci1MJDAyMXBpY19wb2ludDoKK0wkMDIzcGljX3BvaW50Ogog
CWNtcAllY3gsMAotCWplCU5FQVIgTCQwMjJjYmNfZGVjX2xvb3AKLQlqbXAJTkVBUiBMJDAyM2Ni
Y19lbmNfbG9vcAorCWplCU5FQVIgTCQwMjRjYmNfZGVjX2xvb3AKKwlqbXAJTkVBUiBMJDAyNWNi
Y19lbmNfbG9vcAogYWxpZ24JMTYKLUwkMDIzY2JjX2VuY19sb29wOgorTCQwMjVjYmNfZW5jX2xv
b3A6CiAJbW92ZHF1CXhtbTAsW2VzaV0KIAlweG9yCXhtbTAseG1tMQogCWNhbGwJX192cGFlc19l
bmNyeXB0X2NvcmUKQEAgLTYyNywxMCArNjU0LDEwIEBAIEwkMDIzY2JjX2VuY19sb29wOgogCW1v
dmRxdQlbZXNpKjErZWJ4XSx4bW0wCiAJbGVhCWVzaSxbMTYrZXNpXQogCXN1YgllZGksMTYKLQlq
bmMJTkVBUiBMJDAyM2NiY19lbmNfbG9vcAotCWptcAlORUFSIEwkMDI0Y2JjX2RvbmUKKwlqbmMJ
TkVBUiBMJDAyNWNiY19lbmNfbG9vcAorCWptcAlORUFSIEwkMDI2Y2JjX2RvbmUKIGFsaWduCTE2
Ci1MJDAyMmNiY19kZWNfbG9vcDoKK0wkMDI0Y2JjX2RlY19sb29wOgogCW1vdmRxdQl4bW0wLFtl
c2ldCiAJbW92ZHFhCVsxNitlc3BdLHhtbTEKIAltb3ZkcWEJWzMyK2VzcF0seG1tMApAQCAtNjQy
LDEyICs2NjksMTIgQEAgTCQwMjJjYmNfZGVjX2xvb3A6CiAJbW92ZHF1CVtlc2kqMStlYnhdLHht
bTAKIAlsZWEJZXNpLFsxNitlc2ldCiAJc3ViCWVkaSwxNgotCWpuYwlORUFSIEwkMDIyY2JjX2Rl
Y19sb29wCi1MJDAyNGNiY19kb25lOgorCWpuYwlORUFSIEwkMDI0Y2JjX2RlY19sb29wCitMJDAy
NmNiY19kb25lOgogCW1vdgllYngsRFdPUkQgWzgrZXNwXQogCW1vdgllc3AsRFdPUkQgWzQ4K2Vz
cF0KIAltb3ZkcXUJW2VieF0seG1tMQotTCQwMjBjYmNfYWJvcnQ6CitMJDAyMmNiY19hYm9ydDoK
IAlwb3AJZWRpCiAJcG9wCWVzaQogCXBvcAllYngKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5
cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0LmFzbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2NoYWNoYS9j
aGFjaGEteDg2XzY0LmFzbQppbmRleCBkNzlhYzMyODRlODdhZjY3ZGE1ODk3M2E0MWU5ZTdjZGUz
OTMwOTczLi5hM2MyOTM4MWUzY2E3MGYxYjhmZTQ5Yzk4MWQyZThmZmQxYmYxZWMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC93aW4teDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5hc20KKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2lu
LXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQuYXNtCkBAIC02Miw2ICs2Miw3IEBA
ICRMJFNFSF9iZWdpbl9DaGFDaGEyMF9jdHIzMjoKIAltb3YJcjgsUVdPUkRbNDArcnNwXQogCiAK
KwogCWNtcAlyZHgsMAogCWplCU5FQVIgJEwkbm9fZGF0YQogCW1vdglyMTAsUVdPUkRbKChPUEVO
U1NMX2lhMzJjYXBfUCs0KSldCkBAIC02OSwxMiArNzAsMTkgQEAgJEwkU0VIX2JlZ2luX0NoYUNo
YTIwX2N0cjMyOgogCWpueglORUFSICRMJENoYUNoYTIwX3Nzc2UzCiAKIAlwdXNoCXJieAorCiAJ
cHVzaAlyYnAKKwogCXB1c2gJcjEyCisKIAlwdXNoCXIxMworCiAJcHVzaAlyMTQKKwogCXB1c2gJ
cjE1CisKIAlzdWIJcnNwLDY0KzI0CisKICRMJGN0cjMyX2JvZHk6CiAKIApAQCAtMzE1LDE2ICsz
MjMsMjQgQEAgJEwkb29wX3RhaWw6CiAkTCRkb25lOgogCWxlYQlyc2ksWygoNjQrMjQrNDgpKSty
c3BdCiAJbW92CXIxNSxRV09SRFsoKC00OCkpK3JzaV0KKwogCW1vdglyMTQsUVdPUkRbKCgtNDAp
KStyc2ldCisKIAltb3YJcjEzLFFXT1JEWygoLTMyKSkrcnNpXQorCiAJbW92CXIxMixRV09SRFso
KC0yNCkpK3JzaV0KKwogCW1vdglyYnAsUVdPUkRbKCgtMTYpKStyc2ldCisKIAltb3YJcmJ4LFFX
T1JEWygoLTgpKStyc2ldCisKIAlsZWEJcnNwLFtyc2ldCisKICRMJG5vX2RhdGE6CiAJbW92CXJk
aSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCiAJbW92CXJzaSxRV09SRFsxNityc3BdCiAJ
REIJMEYzaCwwQzNoCQk7cmVwcmV0CisKICRMJFNFSF9lbmRfQ2hhQ2hhMjBfY3RyMzI6CiAKIEFM
SUdOCTMyCkBAIC0zNDEsNyArMzU3LDkgQEAgJEwkU0VIX2JlZ2luX0NoYUNoYTIwX3Nzc2UzOgog
CiAKICRMJENoYUNoYTIwX3Nzc2UzOgorCiAJbW92CXI5LHJzcAorCiAJY21wCXJkeCwxMjgKIAlq
YQlORUFSICRMJENoYUNoYTIwXzR4CiAKQEAgLTQ3MiwxMCArNDkwLDEyIEBAICRMJGRvbmVfc3Nz
ZTM6CiAJbW92YXBzCXhtbTYsWE1NV09SRFsoKC00MCkpK3I5XQogCW1vdmFwcwl4bW03LFhNTVdP
UkRbKCgtMjQpKStyOV0KIAlsZWEJcnNwLFtyOV0KKwogJEwkc3NzZTNfZXBpbG9ndWU6CiAJbW92
CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCiAJbW92CXJzaSxRV09SRFsxNityc3Bd
CiAJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKICRMJFNFSF9lbmRfQ2hhQ2hhMjBfc3NzZTM6CiAK
IEFMSUdOCTMyCkBAIC00OTIsNyArNTEyLDkgQEAgJEwkU0VIX2JlZ2luX0NoYUNoYTIwXzR4Ogog
CiAKICRMJENoYUNoYTIwXzR4OgorCiAJbW92CXI5LHJzcAorCiAJbW92CXIxMSxyMTAKIAlzaHIJ
cjEwLDMyCiAJdGVzdAlyMTAsMzIKQEAgLTEwNTQsMTAgKzEwNzYsMTIgQEAgJEwkZG9uZTR4Ogog
CW1vdmFwcwl4bW0xNCxYTU1XT1JEWygoLTQwKSkrcjldCiAJbW92YXBzCXhtbTE1LFhNTVdPUkRb
KCgtMjQpKStyOV0KIAlsZWEJcnNwLFtyOV0KKwogJEwkNHhfZXBpbG9ndWU6CiAJbW92CXJkaSxR
V09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCiAJbW92CXJzaSxRV09SRFsxNityc3BdCiAJREIJ
MEYzaCwwQzNoCQk7cmVwcmV0CisKICRMJFNFSF9lbmRfQ2hhQ2hhMjBfNHg6CiAKIEFMSUdOCTMy
CkBAIC0xMDc0LDcgKzEwOTgsOSBAQCAkTCRTRUhfYmVnaW5fQ2hhQ2hhMjBfOHg6CiAKIAogJEwk
Q2hhQ2hhMjBfOHg6CisKIAltb3YJcjkscnNwCisKIAlzdWIJcnNwLDB4MjgwKzE2OAogCWFuZAly
c3AsLTMyCiAJbW92YXBzCVhNTVdPUkRbKC0xNjgpK3I5XSx4bW02CkBAIC0xNjkwLDEwICsxNzE2
LDEyIEBAICRMJGRvbmU4eDoKIAltb3ZhcHMJeG1tMTQsWE1NV09SRFsoKC00MCkpK3I5XQogCW1v
dmFwcwl4bW0xNSxYTU1XT1JEWygoLTI0KSkrcjldCiAJbGVhCXJzcCxbcjldCisKICRMJDh4X2Vw
aWxvZ3VlOgogCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQogCW1vdglyc2ks
UVdPUkRbMTYrcnNwXQogCURCCTBGM2gsMEMzaAkJO3JlcHJldAorCiAkTCRTRUhfZW5kX0NoYUNo
YTIwXzh4OgogRVhURVJOCV9faW1wX1J0bFZpcnR1YWxVbndpbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2lu
LXg4Nl82NC9jcnlwdG8vY2lwaGVyX2V4dHJhL2NoYWNoYTIwX3BvbHkxMzA1X3g4Nl82NC5hc20g
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC93aW4teDg2XzY0L2NyeXB0by9jaXBoZXJfZXh0cmEvY2hhY2hhMjBfcG9seTEzMDVfeDg2XzY0
LmFzbQppbmRleCA5YjIyNmVkNDVjMzZjMzQ2YjMzZjkyYTRlYmFhOTYwZDk0YjcyNjBhLi5iMTE1
OWFlMDk4MmMxMjUyMjJjN2M4NDZmOTczYjE2M2ZkZDc0MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2
XzY0L2NyeXB0by9jaXBoZXJfZXh0cmEvY2hhY2hhMjBfcG9seTEzMDVfeDg2XzY0LmFzbQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC93aW4teDg2XzY0L2NyeXB0by9jaXBoZXJfZXh0cmEvY2hhY2hhMjBfcG9seTEzMDVfeDg2XzY0
LmFzbQpAQCAtOSw2ICs5LDggQEAgZGVmYXVsdAlyZWwKICVpZmRlZiBCT1JJTkdTU0xfUFJFRklY
CiAlaW5jbHVkZSAiYm9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX25hc20uaW5jIgogJWVuZGlmCitz
ZWN0aW9uCS50ZXh0IGNvZGUgYWxpZ249NjQKKwogZ2xvYmFsCWR1bW15X2NoYWNoYTIwX3BvbHkx
MzA1X2FzbQogCiBkdW1teV9jaGFjaGEyMF9wb2x5MTMwNV9hc206CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4t
eDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flcy14ODZfNjQuYXNtIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlw
dG8vZmlwc21vZHVsZS9hZXMteDg2XzY0LmFzbQppbmRleCBkNzE0ZDVjMTZlMTMxZTllNTg5MjVk
ODc3MzllMDk0MjQyOGRhZDExLi4zMjkxODVlZTY3MDkyYzQ5NjIyMGM5Mjk3MWY4OWU1NjI4ZGEx
MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flcy14ODZfNjQu
YXNtCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
Ym9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzLXg4Nl82NC5hc20KQEAg
LTE2Nyw2ICsxNjcsNyBAQCBEQgkweGYzLDB4YzMKIAogQUxJR04JMTYKIF94ODZfNjRfQUVTX2Vu
Y3J5cHRfY29tcGFjdDoKKwogCWxlYQlyOCxbMTI4K3IxNF0KIAltb3YJZWRpLERXT1JEWygoMC0x
MjgpKStyOF0KIAltb3YJZWJwLERXT1JEWygoMzItMTI4KSkrcjhdCkBAIC0zMzcsNiArMzM4LDcg
QEAgJEwkZW5jX2NvbXBhY3RfZG9uZToKIAl4b3IJZWR4LERXT1JEWzEyK3IxNV0KIERCCTB4ZjMs
MHhjMwogCisKIEFMSUdOCTE2CiBnbG9iYWwJYWVzX25vaHdfZW5jcnlwdAogCkBAIC01ODksNiAr
NTkxLDcgQEAgREIJMHhmMywweGMzCiAKIEFMSUdOCTE2CiBfeDg2XzY0X0FFU19kZWNyeXB0X2Nv
bXBhY3Q6CisKIAlsZWEJcjgsWzEyOCtyMTRdCiAJbW92CWVkaSxEV09SRFsoKDAtMTI4KSkrcjhd
CiAJbW92CWVicCxEV09SRFsoKDMyLTEyOCkpK3I4XQpAQCAtODExLDYgKzgxNCw3IEBAICRMJGRl
Y19jb21wYWN0X2RvbmU6CiAJeG9yCWVkeCxEV09SRFsxMityMTVdCiBEQgkweGYzLDB4YzMKIAor
CiBBTElHTgkxNgogZ2xvYmFsCWFlc19ub2h3X2RlY3J5cHQKIApAQCAtOTU1LDYgKzk1OSw3IEBA
ICRMJFNFSF9lbmRfYWVzX25vaHdfc2V0X2VuY3J5cHRfa2V5OgogCiBBTElHTgkxNgogX3g4Nl82
NF9BRVNfc2V0X2VuY3J5cHRfa2V5OgorCiAJbW92CWVjeCxlc2kKIAltb3YJcnNpLHJkaQogCW1v
dglyZGkscmR4CkBAIC0xMTkxLDYgKzExOTYsNyBAQCAkTCRiYWRwb2ludGVyOgogJEwkZXhpdDoK
IERCCTB4ZjMsMHhjMwogCisKIEFMSUdOCTE2CiBnbG9iYWwJYWVzX25vaHdfc2V0X2RlY3J5cHRf
a2V5CiAKQEAgLTE0MjgsNiArMTQzNCw4IEBAICRMJFNFSF9iZWdpbl9hZXNfbm9od19jYmNfZW5j
cnlwdDoKIAlqZQlORUFSICRMJGNiY19lcGlsb2d1ZQogCXB1c2hmcQogCisKKwogCXB1c2gJcmJ4
CiAKIAlwdXNoCXJicApAQCAtMTQ1MCw2ICsxNDU4LDcgQEAgJEwkY2JjX3Byb2xvZ3VlOgogCWNt
cAlyOSwwCiAJY21vdmUJcjE0LHIxMAogCisKIAlsZWEJcjEwLFtPUEVOU1NMX2lhMzJjYXBfUF0K
IAltb3YJcjEwZCxEV09SRFtyMTBdCiAJY21wCXJkeCw1MTIKQEAgLTE2ODcsNiArMTY5Niw3IEBA
ICRMJGNiY19mYXN0X2NsZWFudXA6CiBBTElHTgkxNgogJEwkY2JjX3Nsb3dfcHJvbG9ndWU6CiAK
KwogCWxlYQlyYnAsWygoLTg4KSkrcnNwXQogCWFuZAlyYnAsLTY0CiAKQEAgLTE2OTgsNyArMTcw
OCw5IEBAICRMJGNiY19zbG93X3Byb2xvZ3VlOgogCiAJeGNoZwlyYnAscnNwCiAKKwogCW1vdglR
V09SRFsxNityc3BdLHJicAorCiAkTCRjYmNfc2xvd19ib2R5OgogCiAKQEAgLTE4ODgsNiArMTkw
MCw4IEBAICRMJGNiY19leGl0OgogJEwkY2JjX3BvcGZxOgogCXBvcGZxCiAKKworCiAkTCRjYmNf
ZXBpbG9ndWU6CiAJbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCiAJbW92CXJz
aSxRV09SRFsxNityc3BdCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxl
L2Flc25pLWdjbS14ODZfNjQuYXNtIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNu
aS1nY20teDg2XzY0LmFzbQppbmRleCBiYjcxNWExNzc1MTNlZDE2Y2NkNDU0MDg0M2FmODA2ZTNj
ODFiMWQwLi5iNTEyNTE2YTA1ZGI0MDcwNWEyNDcyNmVlMjZjMjU4MzBkNjkzNTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jvcmlu
Z3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLWdjbS14ODZfNjQuYXNtCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYWVzbmktZ2NtLXg4Nl82NC5hc20KQEAg
LTYwMSw2ICs2MDEsMTIgQEAgJEwkU0VIX2JlZ2luX2Flc25pX2djbV9lbmNyeXB0OgogCiAKIAor
JWlmbmRlZiBOREVCVUcKKyVpZm5kZWYgQk9SSU5HU1NMX0ZJUFMKK0VYVEVSTglCT1JJTkdTU0xf
ZnVuY3Rpb25faGl0CisJbW92CUJZVEVbKChCT1JJTkdTU0xfZnVuY3Rpb25faGl0KzIpKV0sMQor
JWVuZGlmCislZW5kaWYKIAl4b3IJcjEwLHIxMAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQv
Y3J5cHRvL2ZpcHNtb2R1bGUvYWVzbmkteDg2XzY0LmFzbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2Zp
cHNtb2R1bGUvYWVzbmkteDg2XzY0LmFzbQppbmRleCAxYjU2Njc5Y2Y0YzJmMTlhNzhlZjQ1YmZm
MzQ5MmEwM2RhYmM1NTRiLi44NzQ1OTZkN2VhNDYzM2Q1OTkxZjdiOTJhODA5OGY4ODczY2UwMzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2Flc25pLXg4Nl82NC5h
c20KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9hZXNuaS14ODZfNjQuYXNtCkBA
IC0xNiw2ICsxNiwxMyBAQCBnbG9iYWwJYWVzX2h3X2VuY3J5cHQKIAogQUxJR04JMTYKIGFlc19o
d19lbmNyeXB0OgorCislaWZuZGVmIE5ERUJVRworJWlmbmRlZiBCT1JJTkdTU0xfRklQUworRVhU
RVJOCUJPUklOR1NTTF9mdW5jdGlvbl9oaXQKKwltb3YJQllURVsoKEJPUklOR1NTTF9mdW5jdGlv
bl9oaXQrMSkpXSwxCislZW5kaWYKKyVlbmRpZgogCW1vdnVwcwl4bW0yLFhNTVdPUkRbcmN4XQog
CW1vdgllYXgsRFdPUkRbMjQwK3I4XQogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcjhdCkBAIC0zNiwx
MCArNDMsMTIgQEAgREIJMTAyLDE1LDU2LDIyMSwyMDkKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQK
IAogCisKIGdsb2JhbAlhZXNfaHdfZGVjcnlwdAogCiBBTElHTgkxNgogYWVzX2h3X2RlY3J5cHQ6
CisKIAltb3Z1cHMJeG1tMixYTU1XT1JEW3JjeF0KIAltb3YJZWF4LERXT1JEWzI0MCtyOF0KIAlt
b3Z1cHMJeG1tMCxYTU1XT1JEW3I4XQpAQCAtNjAsOCArNjksMTAgQEAgREIJMTAyLDE1LDU2LDIy
MywyMDkKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKIAogCisKIEFMSUdOCTE2CiBfYWVzbmlfZW5j
cnlwdDI6CisKIAltb3Z1cHMJeG1tMCxYTU1XT1JEW3JjeF0KIAlzaGwJZWF4LDQKIAltb3Z1cHMJ
eG1tMSxYTU1XT1JEWzE2K3JjeF0KQEAgLTg5LDggKzEwMCwxMCBAQCBEQgkxMDIsMTUsNTYsMjIx
LDIxNgogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9kZWNy
eXB0MjoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtMTE4LDggKzEzMSwxMCBAQCBEQgkxMDIsMTUsNTYsMjIz
LDIxNgogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9lbmNy
eXB0MzoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtMTUyLDggKzE2NywxMCBAQCBEQgkxMDIsMTUsNTYsMjIx
LDIyNAogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9kZWNy
eXB0MzoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtMTg2LDggKzIwMywxMCBAQCBEQgkxMDIsMTUsNTYsMjIz
LDIyNAogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9lbmNy
eXB0NDoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtMjI2LDggKzI0NSwxMCBAQCBEQgkxMDIsMTUsNTYsMjIx
LDIzMgogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9kZWNy
eXB0NDoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtMjY2LDggKzI4NywxMCBAQCBEQgkxMDIsMTUsNTYsMjIz
LDIzMgogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9lbmNy
eXB0NjoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtMzIwLDggKzM0MywxMCBAQCBEQgkxMDIsMTUsNTYsMjIx
LDI0OAogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9kZWNy
eXB0NjoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtMzc0LDggKzM5OSwxMCBAQCBEQgkxMDIsMTUsNTYsMjIz
LDI0OAogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9lbmNy
eXB0ODoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVwcwl4
bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtNDM4LDggKzQ2NSwxMCBAQCBEQgkxMDIsNjgsMTUsNTYs
MjIxLDIwMAogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMTYKIF9hZXNuaV9k
ZWNyeXB0ODoKKwogCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQogCXNobAllYXgsNAogCW1vdnVw
cwl4bW0xLFhNTVdPUkRbMTYrcmN4XQpAQCAtNTAxLDYgKzUzMCw3IEBAIERCCTEwMiw2OCwxNSw1
NiwyMjMsMTkyCiBEQgkxMDIsNjgsMTUsNTYsMjIzLDIwMAogCURCCTBGM2gsMEMzaAkJO3JlcHJl
dAogCisKIGdsb2JhbAlhZXNfaHdfZWNiX2VuY3J5cHQKIAogQUxJR04JMTYKQEAgLTUxNiw2ICs1
NDYsNyBAQCAkTCRTRUhfYmVnaW5fYWVzX2h3X2VjYl9lbmNyeXB0OgogCW1vdglyOCxRV09SRFs0
MCtyc3BdCiAKIAorCiAJbGVhCXJzcCxbKCgtODgpKStyc3BdCiAJbW92YXBzCVhNTVdPUkRbcnNw
XSx4bW02CiAJbW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW03CkBAIC04NzEsMjI3ICs5MDIsOCBA
QCAkTCRlY2JfZW5jX3JldDoKIAltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUK
IAltb3YJcnNpLFFXT1JEWzE2K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLSRMJFNFSF9l
bmRfYWVzX2h3X2VjYl9lbmNyeXB0OgotZ2xvYmFsCWFlc19od19jY202NF9lbmNyeXB0X2Jsb2Nr
cwotCi1BTElHTgkxNgotYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzOgotCW1vdglRV09SRFs4
K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQotCW1vdglRV09SRFsxNityc3BdLHJzaQotCW1vdgly
YXgscnNwCi0kTCRTRUhfYmVnaW5fYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzOgotCW1vdgly
ZGkscmN4Ci0JbW92CXJzaSxyZHgKLQltb3YJcmR4LHI4Ci0JbW92CXJjeCxyOQotCW1vdglyOCxR
V09SRFs0MCtyc3BdCi0JbW92CXI5LFFXT1JEWzQ4K3JzcF0KLQotCi0JbGVhCXJzcCxbKCgtODgp
KStyc3BdCi0JbW92YXBzCVhNTVdPUkRbcnNwXSx4bW02Ci0JbW92YXBzCVhNTVdPUkRbMTYrcnNw
XSx4bW03Ci0JbW92YXBzCVhNTVdPUkRbMzIrcnNwXSx4bW04Ci0JbW92YXBzCVhNTVdPUkRbNDgr
cnNwXSx4bW05Ci0kTCRjY202NF9lbmNfYm9keToKLQltb3YJZWF4LERXT1JEWzI0MCtyY3hdCi0J
bW92ZHF1CXhtbTYsWE1NV09SRFtyOF0KLQltb3ZkcWEJeG1tOSxYTU1XT1JEWyRMJGluY3JlbWVu
dDY0XQotCW1vdmRxYQl4bW03LFhNTVdPUkRbJEwkYnN3YXBfbWFza10KLQotCXNobAllYXgsNAot
CW1vdglyMTBkLDE2Ci0JbGVhCXIxMSxbcmN4XQotCW1vdmRxdQl4bW0zLFhNTVdPUkRbcjldCi0J
bW92ZHFhCXhtbTIseG1tNgotCWxlYQlyY3gsWzMyK3JheCoxK3JjeF0KLURCCTEwMiwxNSw1Niww
LDI0NwotCXN1YglyMTAscmF4Ci0Jam1wCU5FQVIgJEwkY2NtNjRfZW5jX291dGVyCi1BTElHTgkx
NgotJEwkY2NtNjRfZW5jX291dGVyOgotCW1vdnVwcwl4bW0wLFhNTVdPUkRbcjExXQotCW1vdgly
YXgscjEwCi0JbW92dXBzCXhtbTgsWE1NV09SRFtyZGldCi0KLQl4b3Jwcwl4bW0yLHhtbTAKLQlt
b3Z1cHMJeG1tMSxYTU1XT1JEWzE2K3IxMV0KLQl4b3Jwcwl4bW0wLHhtbTgKLQl4b3Jwcwl4bW0z
LHhtbTAKLQltb3Z1cHMJeG1tMCxYTU1XT1JEWzMyK3IxMV0KLQotJEwkY2NtNjRfZW5jMl9sb29w
OgotREIJMTAyLDE1LDU2LDIyMCwyMDkKLURCCTEwMiwxNSw1NiwyMjAsMjE3Ci0JbW92dXBzCXht
bTEsWE1NV09SRFtyYXgqMStyY3hdCi0JYWRkCXJheCwzMgotREIJMTAyLDE1LDU2LDIyMCwyMDgK
LURCCTEwMiwxNSw1NiwyMjAsMjE2Ci0JbW92dXBzCXhtbTAsWE1NV09SRFsoKC0xNikpK3JheCox
K3JjeF0KLQlqbnoJTkVBUiAkTCRjY202NF9lbmMyX2xvb3AKLURCCTEwMiwxNSw1NiwyMjAsMjA5
Ci1EQgkxMDIsMTUsNTYsMjIwLDIxNwotCXBhZGRxCXhtbTYseG1tOQotCWRlYwlyZHgKLURCCTEw
MiwxNSw1NiwyMjEsMjA4Ci1EQgkxMDIsMTUsNTYsMjIxLDIxNgotCi0JbGVhCXJkaSxbMTYrcmRp
XQotCXhvcnBzCXhtbTgseG1tMgotCW1vdmRxYQl4bW0yLHhtbTYKLQltb3Z1cHMJWE1NV09SRFty
c2ldLHhtbTgKLURCCTEwMiwxNSw1NiwwLDIxNQotCWxlYQlyc2ksWzE2K3JzaV0KLQlqbnoJTkVB
UiAkTCRjY202NF9lbmNfb3V0ZXIKLQotCXB4b3IJeG1tMCx4bW0wCi0JcHhvcgl4bW0xLHhtbTEK
LQlweG9yCXhtbTIseG1tMgotCW1vdnVwcwlYTU1XT1JEW3I5XSx4bW0zCi0JcHhvcgl4bW0zLHht
bTMKLQlweG9yCXhtbTgseG1tOAotCXB4b3IJeG1tNix4bW02Ci0JbW92YXBzCXhtbTYsWE1NV09S
RFtyc3BdCi0JbW92YXBzCVhNTVdPUkRbcnNwXSx4bW0wCi0JbW92YXBzCXhtbTcsWE1NV09SRFsx
Nityc3BdCi0JbW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW0wCi0JbW92YXBzCXhtbTgsWE1NV09S
RFszMityc3BdCi0JbW92YXBzCVhNTVdPUkRbMzIrcnNwXSx4bW0wCi0JbW92YXBzCXhtbTksWE1N
V09SRFs0OCtyc3BdCi0JbW92YXBzCVhNTVdPUkRbNDgrcnNwXSx4bW0wCi0JbGVhCXJzcCxbODgr
cnNwXQotJEwkY2NtNjRfZW5jX3JldDoKLQltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBp
bG9ndWUKLQltb3YJcnNpLFFXT1JEWzE2K3JzcF0KLQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLSRM
JFNFSF9lbmRfYWVzX2h3X2NjbTY0X2VuY3J5cHRfYmxvY2tzOgotZ2xvYmFsCWFlc19od19jY202
NF9kZWNyeXB0X2Jsb2NrcwotCi1BTElHTgkxNgotYWVzX2h3X2NjbTY0X2RlY3J5cHRfYmxvY2tz
OgotCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQotCW1vdglRV09SRFsxNity
c3BdLHJzaQotCW1vdglyYXgscnNwCi0kTCRTRUhfYmVnaW5fYWVzX2h3X2NjbTY0X2RlY3J5cHRf
YmxvY2tzOgotCW1vdglyZGkscmN4Ci0JbW92CXJzaSxyZHgKLQltb3YJcmR4LHI4Ci0JbW92CXJj
eCxyOQotCW1vdglyOCxRV09SRFs0MCtyc3BdCi0JbW92CXI5LFFXT1JEWzQ4K3JzcF0KLQotCi0J
bGVhCXJzcCxbKCgtODgpKStyc3BdCi0JbW92YXBzCVhNTVdPUkRbcnNwXSx4bW02Ci0JbW92YXBz
CVhNTVdPUkRbMTYrcnNwXSx4bW03Ci0JbW92YXBzCVhNTVdPUkRbMzIrcnNwXSx4bW04Ci0JbW92
YXBzCVhNTVdPUkRbNDgrcnNwXSx4bW05Ci0kTCRjY202NF9kZWNfYm9keToKLQltb3YJZWF4LERX
T1JEWzI0MCtyY3hdCi0JbW92dXBzCXhtbTYsWE1NV09SRFtyOF0KLQltb3ZkcXUJeG1tMyxYTU1X
T1JEW3I5XQotCW1vdmRxYQl4bW05LFhNTVdPUkRbJEwkaW5jcmVtZW50NjRdCi0JbW92ZHFhCXht
bTcsWE1NV09SRFskTCRic3dhcF9tYXNrXQotCi0JbW92YXBzCXhtbTIseG1tNgotCW1vdglyMTBk
LGVheAotCW1vdglyMTEscmN4Ci1EQgkxMDIsMTUsNTYsMCwyNDcKLQltb3Z1cHMJeG1tMCxYTU1X
T1JEW3JjeF0KLQltb3Z1cHMJeG1tMSxYTU1XT1JEWzE2K3JjeF0KLQlsZWEJcmN4LFszMityY3hd
Ci0JeG9ycHMJeG1tMix4bW0wCi0kTCRvb3BfZW5jMV81OgotREIJMTAyLDE1LDU2LDIyMCwyMDkK
LQlkZWMJZWF4Ci0JbW92dXBzCXhtbTEsWE1NV09SRFtyY3hdCi0JbGVhCXJjeCxbMTYrcmN4XQot
CWpueglORUFSICRMJG9vcF9lbmMxXzUKLURCCTEwMiwxNSw1NiwyMjEsMjA5Ci0Jc2hsCXIxMGQs
NAotCW1vdgllYXgsMTYKLQltb3Z1cHMJeG1tOCxYTU1XT1JEW3JkaV0KLQlwYWRkcQl4bW02LHht
bTkKLQlsZWEJcmRpLFsxNityZGldCi0Jc3ViCXJheCxyMTAKLQlsZWEJcmN4LFszMityMTAqMSty
MTFdCi0JbW92CXIxMCxyYXgKLQlqbXAJTkVBUiAkTCRjY202NF9kZWNfb3V0ZXIKLUFMSUdOCTE2
Ci0kTCRjY202NF9kZWNfb3V0ZXI6Ci0JeG9ycHMJeG1tOCx4bW0yCi0JbW92ZHFhCXhtbTIseG1t
NgotCW1vdnVwcwlYTU1XT1JEW3JzaV0seG1tOAotCWxlYQlyc2ksWzE2K3JzaV0KLURCCTEwMiwx
NSw1NiwwLDIxNQotCi0Jc3ViCXJkeCwxCi0JanoJTkVBUiAkTCRjY202NF9kZWNfYnJlYWsKLQot
CW1vdnVwcwl4bW0wLFhNTVdPUkRbcjExXQotCW1vdglyYXgscjEwCi0JbW92dXBzCXhtbTEsWE1N
V09SRFsxNityMTFdCi0JeG9ycHMJeG1tOCx4bW0wCi0JeG9ycHMJeG1tMix4bW0wCi0JeG9ycHMJ
eG1tMyx4bW04Ci0JbW92dXBzCXhtbTAsWE1NV09SRFszMityMTFdCi0Jam1wCU5FQVIgJEwkY2Nt
NjRfZGVjMl9sb29wCi1BTElHTgkxNgotJEwkY2NtNjRfZGVjMl9sb29wOgotREIJMTAyLDE1LDU2
LDIyMCwyMDkKLURCCTEwMiwxNSw1NiwyMjAsMjE3Ci0JbW92dXBzCXhtbTEsWE1NV09SRFtyYXgq
MStyY3hdCi0JYWRkCXJheCwzMgotREIJMTAyLDE1LDU2LDIyMCwyMDgKLURCCTEwMiwxNSw1Niwy
MjAsMjE2Ci0JbW92dXBzCXhtbTAsWE1NV09SRFsoKC0xNikpK3JheCoxK3JjeF0KLQlqbnoJTkVB
UiAkTCRjY202NF9kZWMyX2xvb3AKLQltb3Z1cHMJeG1tOCxYTU1XT1JEW3JkaV0KLQlwYWRkcQl4
bW02LHhtbTkKLURCCTEwMiwxNSw1NiwyMjAsMjA5Ci1EQgkxMDIsMTUsNTYsMjIwLDIxNwotREIJ
MTAyLDE1LDU2LDIyMSwyMDgKLURCCTEwMiwxNSw1NiwyMjEsMjE2Ci0JbGVhCXJkaSxbMTYrcmRp
XQotCWptcAlORUFSICRMJGNjbTY0X2RlY19vdXRlcgogCi1BTElHTgkxNgotJEwkY2NtNjRfZGVj
X2JyZWFrOgotCi0JbW92CWVheCxEV09SRFsyNDArcjExXQotCW1vdnVwcwl4bW0wLFhNTVdPUkRb
cjExXQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbMTYrcjExXQotCXhvcnBzCXhtbTgseG1tMAotCWxl
YQlyMTEsWzMyK3IxMV0KLQl4b3Jwcwl4bW0zLHhtbTgKLSRMJG9vcF9lbmMxXzY6Ci1EQgkxMDIs
MTUsNTYsMjIwLDIxNwotCWRlYwllYXgKLQltb3Z1cHMJeG1tMSxYTU1XT1JEW3IxMV0KLQlsZWEJ
cjExLFsxNityMTFdCi0Jam56CU5FQVIgJEwkb29wX2VuYzFfNgotREIJMTAyLDE1LDU2LDIyMSwy
MTcKLQlweG9yCXhtbTAseG1tMAotCXB4b3IJeG1tMSx4bW0xCi0JcHhvcgl4bW0yLHhtbTIKLQlt
b3Z1cHMJWE1NV09SRFtyOV0seG1tMwotCXB4b3IJeG1tMyx4bW0zCi0JcHhvcgl4bW04LHhtbTgK
LQlweG9yCXhtbTYseG1tNgotCW1vdmFwcwl4bW02LFhNTVdPUkRbcnNwXQotCW1vdmFwcwlYTU1X
T1JEW3JzcF0seG1tMAotCW1vdmFwcwl4bW03LFhNTVdPUkRbMTYrcnNwXQotCW1vdmFwcwlYTU1X
T1JEWzE2K3JzcF0seG1tMAotCW1vdmFwcwl4bW04LFhNTVdPUkRbMzIrcnNwXQotCW1vdmFwcwlY
TU1XT1JEWzMyK3JzcF0seG1tMAotCW1vdmFwcwl4bW05LFhNTVdPUkRbNDgrcnNwXQotCW1vdmFw
cwlYTU1XT1JEWzQ4K3JzcF0seG1tMAotCWxlYQlyc3AsWzg4K3JzcF0KLSRMJGNjbTY0X2RlY19y
ZXQ6Ci0JbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCi0JbW92CXJzaSxRV09S
RFsxNityc3BdCi0JREIJMEYzaCwwQzNoCQk7cmVwcmV0Ci0kTCRTRUhfZW5kX2Flc19od19jY202
NF9kZWNyeXB0X2Jsb2NrczoKKyRMJFNFSF9lbmRfYWVzX2h3X2VjYl9lbmNyeXB0OgogZ2xvYmFs
CWFlc19od19jdHIzMl9lbmNyeXB0X2Jsb2NrcwogCiBBTElHTgkxNgpAQCAtMTEwOCw2ICs5MjAs
MTEgQEAgJEwkU0VIX2JlZ2luX2Flc19od19jdHIzMl9lbmNyeXB0X2Jsb2NrczoKIAogCiAKKyVp
Zm5kZWYgTkRFQlVHCislaWZuZGVmIEJPUklOR1NTTF9GSVBTCisJbW92CUJZVEVbQk9SSU5HU1NM
X2Z1bmN0aW9uX2hpdF0sMQorJWVuZGlmCislZW5kaWYKIAljbXAJcmR4LDEKIAlqbmUJTkVBUiAk
TCRjdHIzMl9idWxrCiAKQEAgLTExMjAsMTIgKzkzNywxMiBAQCAkTCRTRUhfYmVnaW5fYWVzX2h3
X2N0cjMyX2VuY3J5cHRfYmxvY2tzOgogCW1vdnVwcwl4bW0xLFhNTVdPUkRbMTYrcmN4XQogCWxl
YQlyY3gsWzMyK3JjeF0KIAl4b3Jwcwl4bW0yLHhtbTAKLSRMJG9vcF9lbmMxXzc6CiskTCRvb3Bf
ZW5jMV81OgogREIJMTAyLDE1LDU2LDIyMCwyMDkKIAlkZWMJZWR4CiAJbW92dXBzCXhtbTEsWE1N
V09SRFtyY3hdCiAJbGVhCXJjeCxbMTYrcmN4XQotCWpueglORUFSICRMJG9vcF9lbmMxXzcKKwlq
bnoJTkVBUiAkTCRvb3BfZW5jMV81CiBEQgkxMDIsMTUsNTYsMjIxLDIwOQogCXB4b3IJeG1tMCx4
bW0wCiAJcHhvcgl4bW0xLHhtbTEKQEAgLTE3MDUsMTQgKzE1MjIsMTQgQEAgJEwkY3RyMzJfZXBp
bG9ndWU6CiAJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiAKICRMJFNFSF9lbmRfYWVzX2h3X2N0cjMy
X2VuY3J5cHRfYmxvY2tzOgotZ2xvYmFsCWFlc19od194dHNfZW5jcnlwdAorZ2xvYmFsCWFlc19o
d19jYmNfZW5jcnlwdAogCiBBTElHTgkxNgotYWVzX2h3X3h0c19lbmNyeXB0OgorYWVzX2h3X2Ni
Y19lbmNyeXB0OgogCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQogCW1vdglR
V09SRFsxNityc3BdLHJzaQogCW1vdglyYXgscnNwCi0kTCRTRUhfYmVnaW5fYWVzX2h3X3h0c19l
bmNyeXB0OgorJEwkU0VIX2JlZ2luX2Flc19od19jYmNfZW5jcnlwdDoKIAltb3YJcmRpLHJjeAog
CW1vdglyc2kscmR4CiAJbW92CXJkeCxyOApAQCAtMTcyMiwyMDEyICsxNTM5LDUxIEBAICRMJFNF
SF9iZWdpbl9hZXNfaHdfeHRzX2VuY3J5cHQ6CiAKIAogCi0JbGVhCXIxMSxbcnNwXQotCi0JcHVz
aAlyYnAKKwl0ZXN0CXJkeCxyZHgKKwlqeglORUFSICRMJGNiY19yZXQKIAotCXN1Yglyc3AsMjcy
Ci0JYW5kCXJzcCwtMTYKLQltb3ZhcHMJWE1NV09SRFsoLTE2OCkrcjExXSx4bW02Ci0JbW92YXBz
CVhNTVdPUkRbKC0xNTIpK3IxMV0seG1tNwotCW1vdmFwcwlYTU1XT1JEWygtMTM2KStyMTFdLHht
bTgKLQltb3ZhcHMJWE1NV09SRFsoLTEyMCkrcjExXSx4bW05Ci0JbW92YXBzCVhNTVdPUkRbKC0x
MDQpK3IxMV0seG1tMTAKLQltb3ZhcHMJWE1NV09SRFsoLTg4KStyMTFdLHhtbTExCi0JbW92YXBz
CVhNTVdPUkRbKC03MikrcjExXSx4bW0xMgotCW1vdmFwcwlYTU1XT1JEWygtNTYpK3IxMV0seG1t
MTMKLQltb3ZhcHMJWE1NV09SRFsoLTQwKStyMTFdLHhtbTE0Ci0JbW92YXBzCVhNTVdPUkRbKC0y
NCkrcjExXSx4bW0xNQotJEwkeHRzX2VuY19ib2R5OgotCW1vdnVwcwl4bW0yLFhNTVdPUkRbcjld
Ci0JbW92CWVheCxEV09SRFsyNDArcjhdCiAJbW92CXIxMGQsRFdPUkRbMjQwK3JjeF0KLQltb3Z1
cHMJeG1tMCxYTU1XT1JEW3I4XQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbMTYrcjhdCi0JbGVhCXI4
LFszMityOF0KLQl4b3Jwcwl4bW0yLHhtbTAKLSRMJG9vcF9lbmMxXzg6CisJbW92CXIxMSxyY3gK
Kwl0ZXN0CXI5ZCxyOWQKKwlqeglORUFSICRMJGNiY19kZWNyeXB0CisKKwltb3Z1cHMJeG1tMixY
TU1XT1JEW3I4XQorCW1vdgllYXgscjEwZAorCWNtcAlyZHgsMTYKKwlqYglORUFSICRMJGNiY19l
bmNfdGFpbAorCXN1YglyZHgsMTYKKwlqbXAJTkVBUiAkTCRjYmNfZW5jX2xvb3AKK0FMSUdOCTE2
CiskTCRjYmNfZW5jX2xvb3A6CisJbW92dXBzCXhtbTMsWE1NV09SRFtyZGldCisJbGVhCXJkaSxb
MTYrcmRpXQorCisJbW92dXBzCXhtbTAsWE1NV09SRFtyY3hdCisJbW92dXBzCXhtbTEsWE1NV09S
RFsxNityY3hdCisJeG9ycHMJeG1tMyx4bW0wCisJbGVhCXJjeCxbMzIrcmN4XQorCXhvcnBzCXht
bTIseG1tMworJEwkb29wX2VuYzFfNjoKIERCCTEwMiwxNSw1NiwyMjAsMjA5CiAJZGVjCWVheAot
CW1vdnVwcwl4bW0xLFhNTVdPUkRbcjhdCi0JbGVhCXI4LFsxNityOF0KLQlqbnoJTkVBUiAkTCRv
b3BfZW5jMV84CisJbW92dXBzCXhtbTEsWE1NV09SRFtyY3hdCisJbGVhCXJjeCxbMTYrcmN4XQor
CWpueglORUFSICRMJG9vcF9lbmMxXzYKIERCCTEwMiwxNSw1NiwyMjEsMjA5Ci0JbW92dXBzCXht
bTAsWE1NV09SRFtyY3hdCi0JbW92CXJicCxyY3gKIAltb3YJZWF4LHIxMGQKLQlzaGwJcjEwZCw0
Ci0JbW92CXI5LHJkeAotCWFuZAlyZHgsLTE2Ci0KLQltb3Z1cHMJeG1tMSxYTU1XT1JEWzE2K3Ix
MCoxK3JjeF0KLQotCW1vdmRxYQl4bW04LFhNTVdPUkRbJEwkeHRzX21hZ2ljXQotCW1vdmRxYQl4
bW0xNSx4bW0yCi0JcHNodWZkCXhtbTkseG1tMiwweDVmCi0JcHhvcgl4bW0xLHhtbTAKLQltb3Zk
cWEJeG1tMTQseG1tOQotCXBhZGRkCXhtbTkseG1tOQotCW1vdmRxYQl4bW0xMCx4bW0xNQotCXBz
cmFkCXhtbTE0LDMxCi0JcGFkZHEJeG1tMTUseG1tMTUKLQlwYW5kCXhtbTE0LHhtbTgKLQlweG9y
CXhtbTEwLHhtbTAKLQlweG9yCXhtbTE1LHhtbTE0Ci0JbW92ZHFhCXhtbTE0LHhtbTkKLQlwYWRk
ZAl4bW05LHhtbTkKLQltb3ZkcWEJeG1tMTEseG1tMTUKLQlwc3JhZAl4bW0xNCwzMQotCXBhZGRx
CXhtbTE1LHhtbTE1Ci0JcGFuZAl4bW0xNCx4bW04Ci0JcHhvcgl4bW0xMSx4bW0wCi0JcHhvcgl4
bW0xNSx4bW0xNAotCW1vdmRxYQl4bW0xNCx4bW05Ci0JcGFkZGQJeG1tOSx4bW05Ci0JbW92ZHFh
CXhtbTEyLHhtbTE1Ci0JcHNyYWQJeG1tMTQsMzEKLQlwYWRkcQl4bW0xNSx4bW0xNQotCXBhbmQJ
eG1tMTQseG1tOAotCXB4b3IJeG1tMTIseG1tMAotCXB4b3IJeG1tMTUseG1tMTQKLQltb3ZkcWEJ
eG1tMTQseG1tOQotCXBhZGRkCXhtbTkseG1tOQotCW1vdmRxYQl4bW0xMyx4bW0xNQotCXBzcmFk
CXhtbTE0LDMxCi0JcGFkZHEJeG1tMTUseG1tMTUKLQlwYW5kCXhtbTE0LHhtbTgKLQlweG9yCXht
bTEzLHhtbTAKLQlweG9yCXhtbTE1LHhtbTE0Ci0JbW92ZHFhCXhtbTE0LHhtbTE1Ci0JcHNyYWQJ
eG1tOSwzMQotCXBhZGRxCXhtbTE1LHhtbTE1Ci0JcGFuZAl4bW05LHhtbTgKLQlweG9yCXhtbTE0
LHhtbTAKLQlweG9yCXhtbTE1LHhtbTkKLQltb3ZhcHMJWE1NV09SRFs5Nityc3BdLHhtbTEKLQot
CXN1YglyZHgsMTYqNgotCWpjCU5FQVIgJEwkeHRzX2VuY19zaG9ydAotCi0JbW92CWVheCwxNis5
NgotCWxlYQlyY3gsWzMyK3IxMCoxK3JicF0KLQlzdWIJcmF4LHIxMAotCW1vdnVwcwl4bW0xLFhN
TVdPUkRbMTYrcmJwXQotCW1vdglyMTAscmF4Ci0JbGVhCXI4LFskTCR4dHNfbWFnaWNdCi0Jam1w
CU5FQVIgJEwkeHRzX2VuY19ncmFuZGxvb3AKLQotQUxJR04JMzIKLSRMJHh0c19lbmNfZ3JhbmRs
b29wOgotCW1vdmRxdQl4bW0yLFhNTVdPUkRbcmRpXQotCW1vdmRxYQl4bW04LHhtbTAKLQltb3Zk
cXUJeG1tMyxYTU1XT1JEWzE2K3JkaV0KLQlweG9yCXhtbTIseG1tMTAKLQltb3ZkcXUJeG1tNCxY
TU1XT1JEWzMyK3JkaV0KLQlweG9yCXhtbTMseG1tMTEKLURCCTEwMiwxNSw1NiwyMjAsMjA5Ci0J
bW92ZHF1CXhtbTUsWE1NV09SRFs0OCtyZGldCi0JcHhvcgl4bW00LHhtbTEyCi1EQgkxMDIsMTUs
NTYsMjIwLDIxNwotCW1vdmRxdQl4bW02LFhNTVdPUkRbNjQrcmRpXQotCXB4b3IJeG1tNSx4bW0x
MwotREIJMTAyLDE1LDU2LDIyMCwyMjUKLQltb3ZkcXUJeG1tNyxYTU1XT1JEWzgwK3JkaV0KLQlw
eG9yCXhtbTgseG1tMTUKLQltb3ZkcWEJeG1tOSxYTU1XT1JEWzk2K3JzcF0KLQlweG9yCXhtbTYs
eG1tMTQKLURCCTEwMiwxNSw1NiwyMjAsMjMzCi0JbW92dXBzCXhtbTAsWE1NV09SRFszMityYnBd
Ci0JbGVhCXJkaSxbOTYrcmRpXQotCXB4b3IJeG1tNyx4bW04Ci0KLQlweG9yCXhtbTEwLHhtbTkK
LURCCTEwMiwxNSw1NiwyMjAsMjQxCi0JcHhvcgl4bW0xMSx4bW05Ci0JbW92ZHFhCVhNTVdPUkRb
cnNwXSx4bW0xMAotREIJMTAyLDE1LDU2LDIyMCwyNDkKLQltb3Z1cHMJeG1tMSxYTU1XT1JEWzQ4
K3JicF0KLQlweG9yCXhtbTEyLHhtbTkKLQotREIJMTAyLDE1LDU2LDIyMCwyMDgKLQlweG9yCXht
bTEzLHhtbTkKLQltb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTExCi1EQgkxMDIsMTUsNTYsMjIw
LDIxNgotCXB4b3IJeG1tMTQseG1tOQotCW1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tMTIKLURC
CTEwMiwxNSw1NiwyMjAsMjI0Ci1EQgkxMDIsMTUsNTYsMjIwLDIzMgotCXB4b3IJeG1tOCx4bW05
Ci0JbW92ZHFhCVhNTVdPUkRbNjQrcnNwXSx4bW0xNAotREIJMTAyLDE1LDU2LDIyMCwyNDAKLURC
CTEwMiwxNSw1NiwyMjAsMjQ4Ci0JbW92dXBzCXhtbTAsWE1NV09SRFs2NCtyYnBdCi0JbW92ZHFh
CVhNTVdPUkRbODArcnNwXSx4bW04Ci0JcHNodWZkCXhtbTkseG1tMTUsMHg1ZgotCWptcAlORUFS
ICRMJHh0c19lbmNfbG9vcDYKLUFMSUdOCTMyCi0kTCR4dHNfZW5jX2xvb3A2OgotREIJMTAyLDE1
LDU2LDIyMCwyMDkKLURCCTEwMiwxNSw1NiwyMjAsMjE3Ci1EQgkxMDIsMTUsNTYsMjIwLDIyNQot
REIJMTAyLDE1LDU2LDIyMCwyMzMKLURCCTEwMiwxNSw1NiwyMjAsMjQxCi1EQgkxMDIsMTUsNTYs
MjIwLDI0OQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbKCgtNjQpKStyYXgqMStyY3hdCi0JYWRkCXJh
eCwzMgotCi1EQgkxMDIsMTUsNTYsMjIwLDIwOAotREIJMTAyLDE1LDU2LDIyMCwyMTYKLURCCTEw
MiwxNSw1NiwyMjAsMjI0Ci1EQgkxMDIsMTUsNTYsMjIwLDIzMgotREIJMTAyLDE1LDU2LDIyMCwy
NDAKLURCCTEwMiwxNSw1NiwyMjAsMjQ4Ci0JbW92dXBzCXhtbTAsWE1NV09SRFsoKC04MCkpK3Jh
eCoxK3JjeF0KLQlqbnoJTkVBUiAkTCR4dHNfZW5jX2xvb3A2Ci0KLQltb3ZkcWEJeG1tOCxYTU1X
T1JEW3I4XQotCW1vdmRxYQl4bW0xNCx4bW05Ci0JcGFkZGQJeG1tOSx4bW05Ci1EQgkxMDIsMTUs
NTYsMjIwLDIwOQotCXBhZGRxCXhtbTE1LHhtbTE1Ci0JcHNyYWQJeG1tMTQsMzEKLURCCTEwMiwx
NSw1NiwyMjAsMjE3Ci0JcGFuZAl4bW0xNCx4bW04Ci0JbW92dXBzCXhtbTEwLFhNTVdPUkRbcmJw
XQotREIJMTAyLDE1LDU2LDIyMCwyMjUKLURCCTEwMiwxNSw1NiwyMjAsMjMzCi1EQgkxMDIsMTUs
NTYsMjIwLDI0MQotCXB4b3IJeG1tMTUseG1tMTQKLQltb3ZhcHMJeG1tMTEseG1tMTAKLURCCTEw
MiwxNSw1NiwyMjAsMjQ5Ci0JbW92dXBzCXhtbTEsWE1NV09SRFsoKC02NCkpK3JjeF0KLQotCW1v
dmRxYQl4bW0xNCx4bW05Ci1EQgkxMDIsMTUsNTYsMjIwLDIwOAotCXBhZGRkCXhtbTkseG1tOQot
CXB4b3IJeG1tMTAseG1tMTUKLURCCTEwMiwxNSw1NiwyMjAsMjE2Ci0JcHNyYWQJeG1tMTQsMzEK
LQlwYWRkcQl4bW0xNSx4bW0xNQotREIJMTAyLDE1LDU2LDIyMCwyMjQKLURCCTEwMiwxNSw1Niwy
MjAsMjMyCi0JcGFuZAl4bW0xNCx4bW04Ci0JbW92YXBzCXhtbTEyLHhtbTExCi1EQgkxMDIsMTUs
NTYsMjIwLDI0MAotCXB4b3IJeG1tMTUseG1tMTQKLQltb3ZkcWEJeG1tMTQseG1tOQotREIJMTAy
LDE1LDU2LDIyMCwyNDgKLQltb3Z1cHMJeG1tMCxYTU1XT1JEWygoLTQ4KSkrcmN4XQotCi0JcGFk
ZGQJeG1tOSx4bW05Ci1EQgkxMDIsMTUsNTYsMjIwLDIwOQotCXB4b3IJeG1tMTEseG1tMTUKLQlw
c3JhZAl4bW0xNCwzMQotREIJMTAyLDE1LDU2LDIyMCwyMTcKLQlwYWRkcQl4bW0xNSx4bW0xNQot
CXBhbmQJeG1tMTQseG1tOAotREIJMTAyLDE1LDU2LDIyMCwyMjUKLURCCTEwMiwxNSw1NiwyMjAs
MjMzCi0JbW92ZHFhCVhNTVdPUkRbNDgrcnNwXSx4bW0xMwotCXB4b3IJeG1tMTUseG1tMTQKLURC
CTEwMiwxNSw1NiwyMjAsMjQxCi0JbW92YXBzCXhtbTEzLHhtbTEyCi0JbW92ZHFhCXhtbTE0LHht
bTkKLURCCTEwMiwxNSw1NiwyMjAsMjQ5Ci0JbW92dXBzCXhtbTEsWE1NV09SRFsoKC0zMikpK3Jj
eF0KLQotCXBhZGRkCXhtbTkseG1tOQotREIJMTAyLDE1LDU2LDIyMCwyMDgKLQlweG9yCXhtbTEy
LHhtbTE1Ci0JcHNyYWQJeG1tMTQsMzEKLURCCTEwMiwxNSw1NiwyMjAsMjE2Ci0JcGFkZHEJeG1t
MTUseG1tMTUKLQlwYW5kCXhtbTE0LHhtbTgKLURCCTEwMiwxNSw1NiwyMjAsMjI0Ci1EQgkxMDIs
MTUsNTYsMjIwLDIzMgotREIJMTAyLDE1LDU2LDIyMCwyNDAKLQlweG9yCXhtbTE1LHhtbTE0Ci0J
bW92YXBzCXhtbTE0LHhtbTEzCi1EQgkxMDIsMTUsNTYsMjIwLDI0OAotCi0JbW92ZHFhCXhtbTAs
eG1tOQotCXBhZGRkCXhtbTkseG1tOQotREIJMTAyLDE1LDU2LDIyMCwyMDkKLQlweG9yCXhtbTEz
LHhtbTE1Ci0JcHNyYWQJeG1tMCwzMQotREIJMTAyLDE1LDU2LDIyMCwyMTcKLQlwYWRkcQl4bW0x
NSx4bW0xNQotCXBhbmQJeG1tMCx4bW04Ci1EQgkxMDIsMTUsNTYsMjIwLDIyNQotREIJMTAyLDE1
LDU2LDIyMCwyMzMKLQlweG9yCXhtbTE1LHhtbTAKLQltb3Z1cHMJeG1tMCxYTU1XT1JEW3JicF0K
LURCCTEwMiwxNSw1NiwyMjAsMjQxCi1EQgkxMDIsMTUsNTYsMjIwLDI0OQotCW1vdnVwcwl4bW0x
LFhNTVdPUkRbMTYrcmJwXQotCi0JcHhvcgl4bW0xNCx4bW0xNQotREIJMTAyLDE1LDU2LDIyMSw4
NCwzNiwwCi0JcHNyYWQJeG1tOSwzMQotCXBhZGRxCXhtbTE1LHhtbTE1Ci1EQgkxMDIsMTUsNTYs
MjIxLDkyLDM2LDE2Ci1EQgkxMDIsMTUsNTYsMjIxLDEwMCwzNiwzMgotCXBhbmQJeG1tOSx4bW04
Ci0JbW92CXJheCxyMTAKLURCCTEwMiwxNSw1NiwyMjEsMTA4LDM2LDQ4Ci1EQgkxMDIsMTUsNTYs
MjIxLDExNiwzNiw2NAotREIJMTAyLDE1LDU2LDIyMSwxMjQsMzYsODAKLQlweG9yCXhtbTE1LHht
bTkKLQotCWxlYQlyc2ksWzk2K3JzaV0KLQltb3Z1cHMJWE1NV09SRFsoLTk2KStyc2ldLHhtbTIK
LQltb3Z1cHMJWE1NV09SRFsoLTgwKStyc2ldLHhtbTMKLQltb3Z1cHMJWE1NV09SRFsoLTY0KSty
c2ldLHhtbTQKLQltb3Z1cHMJWE1NV09SRFsoLTQ4KStyc2ldLHhtbTUKLQltb3Z1cHMJWE1NV09S
RFsoLTMyKStyc2ldLHhtbTYKLQltb3Z1cHMJWE1NV09SRFsoLTE2KStyc2ldLHhtbTcKLQlzdWIJ
cmR4LDE2KjYKLQlqbmMJTkVBUiAkTCR4dHNfZW5jX2dyYW5kbG9vcAotCi0JbW92CWVheCwxNis5
NgotCXN1YgllYXgscjEwZAotCW1vdglyY3gscmJwCi0Jc2hyCWVheCw0Ci0KLSRMJHh0c19lbmNf
c2hvcnQ6Ci0KLQltb3YJcjEwZCxlYXgKLQlweG9yCXhtbTEwLHhtbTAKLQlhZGQJcmR4LDE2KjYK
LQlqeglORUFSICRMJHh0c19lbmNfZG9uZQotCi0JcHhvcgl4bW0xMSx4bW0wCi0JY21wCXJkeCww
eDIwCi0JamIJTkVBUiAkTCR4dHNfZW5jX29uZQotCXB4b3IJeG1tMTIseG1tMAotCWplCU5FQVIg
JEwkeHRzX2VuY190d28KLQotCXB4b3IJeG1tMTMseG1tMAotCWNtcAlyZHgsMHg0MAotCWpiCU5F
QVIgJEwkeHRzX2VuY190aHJlZQotCXB4b3IJeG1tMTQseG1tMAotCWplCU5FQVIgJEwkeHRzX2Vu
Y19mb3VyCi0KLQltb3ZkcXUJeG1tMixYTU1XT1JEW3JkaV0KLQltb3ZkcXUJeG1tMyxYTU1XT1JE
WzE2K3JkaV0KLQltb3ZkcXUJeG1tNCxYTU1XT1JEWzMyK3JkaV0KLQlweG9yCXhtbTIseG1tMTAK
LQltb3ZkcXUJeG1tNSxYTU1XT1JEWzQ4K3JkaV0KLQlweG9yCXhtbTMseG1tMTEKLQltb3ZkcXUJ
eG1tNixYTU1XT1JEWzY0K3JkaV0KLQlsZWEJcmRpLFs4MCtyZGldCi0JcHhvcgl4bW00LHhtbTEy
Ci0JcHhvcgl4bW01LHhtbTEzCi0JcHhvcgl4bW02LHhtbTE0Ci0JcHhvcgl4bW03LHhtbTcKLQot
CWNhbGwJX2Flc25pX2VuY3J5cHQ2Ci0KLQl4b3Jwcwl4bW0yLHhtbTEwCi0JbW92ZHFhCXhtbTEw
LHhtbTE1Ci0JeG9ycHMJeG1tMyx4bW0xMQotCXhvcnBzCXhtbTQseG1tMTIKLQltb3ZkcXUJWE1N
V09SRFtyc2ldLHhtbTIKLQl4b3Jwcwl4bW01LHhtbTEzCi0JbW92ZHF1CVhNTVdPUkRbMTYrcnNp
XSx4bW0zCi0JeG9ycHMJeG1tNix4bW0xNAotCW1vdmRxdQlYTU1XT1JEWzMyK3JzaV0seG1tNAot
CW1vdmRxdQlYTU1XT1JEWzQ4K3JzaV0seG1tNQotCW1vdmRxdQlYTU1XT1JEWzY0K3JzaV0seG1t
NgotCWxlYQlyc2ksWzgwK3JzaV0KLQlqbXAJTkVBUiAkTCR4dHNfZW5jX2RvbmUKLQotQUxJR04J
MTYKLSRMJHh0c19lbmNfb25lOgotCW1vdnVwcwl4bW0yLFhNTVdPUkRbcmRpXQotCWxlYQlyZGks
WzE2K3JkaV0KLQl4b3Jwcwl4bW0yLHhtbTEwCi0JbW92dXBzCXhtbTAsWE1NV09SRFtyY3hdCi0J
bW92dXBzCXhtbTEsWE1NV09SRFsxNityY3hdCi0JbGVhCXJjeCxbMzIrcmN4XQotCXhvcnBzCXht
bTIseG1tMAotJEwkb29wX2VuYzFfOToKLURCCTEwMiwxNSw1NiwyMjAsMjA5Ci0JZGVjCWVheAot
CW1vdnVwcwl4bW0xLFhNTVdPUkRbcmN4XQotCWxlYQlyY3gsWzE2K3JjeF0KLQlqbnoJTkVBUiAk
TCRvb3BfZW5jMV85Ci1EQgkxMDIsMTUsNTYsMjIxLDIwOQotCXhvcnBzCXhtbTIseG1tMTAKLQlt
b3ZkcWEJeG1tMTAseG1tMTEKLQltb3Z1cHMJWE1NV09SRFtyc2ldLHhtbTIKLQlsZWEJcnNpLFsx
Nityc2ldCi0Jam1wCU5FQVIgJEwkeHRzX2VuY19kb25lCi0KLUFMSUdOCTE2Ci0kTCR4dHNfZW5j
X3R3bzoKLQltb3Z1cHMJeG1tMixYTU1XT1JEW3JkaV0KLQltb3Z1cHMJeG1tMyxYTU1XT1JEWzE2
K3JkaV0KLQlsZWEJcmRpLFszMityZGldCi0JeG9ycHMJeG1tMix4bW0xMAotCXhvcnBzCXhtbTMs
eG1tMTEKLQotCWNhbGwJX2Flc25pX2VuY3J5cHQyCi0KLQl4b3Jwcwl4bW0yLHhtbTEwCi0JbW92
ZHFhCXhtbTEwLHhtbTEyCi0JeG9ycHMJeG1tMyx4bW0xMQotCW1vdnVwcwlYTU1XT1JEW3JzaV0s
eG1tMgotCW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0seG1tMwotCWxlYQlyc2ksWzMyK3JzaV0KLQlq
bXAJTkVBUiAkTCR4dHNfZW5jX2RvbmUKLQotQUxJR04JMTYKLSRMJHh0c19lbmNfdGhyZWU6Ci0J
bW92dXBzCXhtbTIsWE1NV09SRFtyZGldCi0JbW92dXBzCXhtbTMsWE1NV09SRFsxNityZGldCi0J
bW92dXBzCXhtbTQsWE1NV09SRFszMityZGldCi0JbGVhCXJkaSxbNDgrcmRpXQotCXhvcnBzCXht
bTIseG1tMTAKLQl4b3Jwcwl4bW0zLHhtbTExCi0JeG9ycHMJeG1tNCx4bW0xMgotCi0JY2FsbAlf
YWVzbmlfZW5jcnlwdDMKLQotCXhvcnBzCXhtbTIseG1tMTAKLQltb3ZkcWEJeG1tMTAseG1tMTMK
LQl4b3Jwcwl4bW0zLHhtbTExCi0JeG9ycHMJeG1tNCx4bW0xMgotCW1vdnVwcwlYTU1XT1JEW3Jz
aV0seG1tMgotCW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0seG1tMwotCW1vdnVwcwlYTU1XT1JEWzMy
K3JzaV0seG1tNAotCWxlYQlyc2ksWzQ4K3JzaV0KLQlqbXAJTkVBUiAkTCR4dHNfZW5jX2RvbmUK
LQotQUxJR04JMTYKLSRMJHh0c19lbmNfZm91cjoKLQltb3Z1cHMJeG1tMixYTU1XT1JEW3JkaV0K
LQltb3Z1cHMJeG1tMyxYTU1XT1JEWzE2K3JkaV0KLQltb3Z1cHMJeG1tNCxYTU1XT1JEWzMyK3Jk
aV0KLQl4b3Jwcwl4bW0yLHhtbTEwCi0JbW92dXBzCXhtbTUsWE1NV09SRFs0OCtyZGldCi0JbGVh
CXJkaSxbNjQrcmRpXQotCXhvcnBzCXhtbTMseG1tMTEKLQl4b3Jwcwl4bW00LHhtbTEyCi0JeG9y
cHMJeG1tNSx4bW0xMwotCi0JY2FsbAlfYWVzbmlfZW5jcnlwdDQKLQotCXB4b3IJeG1tMix4bW0x
MAotCW1vdmRxYQl4bW0xMCx4bW0xNAotCXB4b3IJeG1tMyx4bW0xMQotCXB4b3IJeG1tNCx4bW0x
MgotCW1vdmRxdQlYTU1XT1JEW3JzaV0seG1tMgotCXB4b3IJeG1tNSx4bW0xMwotCW1vdmRxdQlY
TU1XT1JEWzE2K3JzaV0seG1tMwotCW1vdmRxdQlYTU1XT1JEWzMyK3JzaV0seG1tNAotCW1vdmRx
dQlYTU1XT1JEWzQ4K3JzaV0seG1tNQotCWxlYQlyc2ksWzY0K3JzaV0KLQlqbXAJTkVBUiAkTCR4
dHNfZW5jX2RvbmUKLQotQUxJR04JMTYKLSRMJHh0c19lbmNfZG9uZToKLQlhbmQJcjksMTUKLQlq
eglORUFSICRMJHh0c19lbmNfcmV0Ci0JbW92CXJkeCxyOQotCi0kTCR4dHNfZW5jX3N0ZWFsOgot
CW1vdnp4CWVheCxCWVRFW3JkaV0KLQltb3Z6eAllY3gsQllURVsoKC0xNikpK3JzaV0KLQlsZWEJ
cmRpLFsxK3JkaV0KLQltb3YJQllURVsoKC0xNikpK3JzaV0sYWwKLQltb3YJQllURVtyc2ldLGNs
Ci0JbGVhCXJzaSxbMStyc2ldCi0Jc3ViCXJkeCwxCi0Jam56CU5FQVIgJEwkeHRzX2VuY19zdGVh
bAotCi0Jc3ViCXJzaSxyOQotCW1vdglyY3gscmJwCi0JbW92CWVheCxyMTBkCi0KLQltb3Z1cHMJ
eG1tMixYTU1XT1JEWygoLTE2KSkrcnNpXQotCXhvcnBzCXhtbTIseG1tMTAKLQltb3Z1cHMJeG1t
MCxYTU1XT1JEW3JjeF0KLQltb3Z1cHMJeG1tMSxYTU1XT1JEWzE2K3JjeF0KLQlsZWEJcmN4LFsz
MityY3hdCi0JeG9ycHMJeG1tMix4bW0wCi0kTCRvb3BfZW5jMV8xMDoKLURCCTEwMiwxNSw1Niwy
MjAsMjA5Ci0JZGVjCWVheAotCW1vdnVwcwl4bW0xLFhNTVdPUkRbcmN4XQotCWxlYQlyY3gsWzE2
K3JjeF0KLQlqbnoJTkVBUiAkTCRvb3BfZW5jMV8xMAotREIJMTAyLDE1LDU2LDIyMSwyMDkKLQl4
b3Jwcwl4bW0yLHhtbTEwCi0JbW92dXBzCVhNTVdPUkRbKC0xNikrcnNpXSx4bW0yCi0KLSRMJHh0
c19lbmNfcmV0OgotCXhvcnBzCXhtbTAseG1tMAotCXB4b3IJeG1tMSx4bW0xCi0JcHhvcgl4bW0y
LHhtbTIKLQlweG9yCXhtbTMseG1tMwotCXB4b3IJeG1tNCx4bW00Ci0JcHhvcgl4bW01LHhtbTUK
LQltb3ZhcHMJeG1tNixYTU1XT1JEWygoLTE2OCkpK3IxMV0KLQltb3ZhcHMJWE1NV09SRFsoLTE2
OCkrcjExXSx4bW0wCi0JbW92YXBzCXhtbTcsWE1NV09SRFsoKC0xNTIpKStyMTFdCi0JbW92YXBz
CVhNTVdPUkRbKC0xNTIpK3IxMV0seG1tMAotCW1vdmFwcwl4bW04LFhNTVdPUkRbKCgtMTM2KSkr
cjExXQotCW1vdmFwcwlYTU1XT1JEWygtMTM2KStyMTFdLHhtbTAKLQltb3ZhcHMJeG1tOSxYTU1X
T1JEWygoLTEyMCkpK3IxMV0KLQltb3ZhcHMJWE1NV09SRFsoLTEyMCkrcjExXSx4bW0wCi0JbW92
YXBzCXhtbTEwLFhNTVdPUkRbKCgtMTA0KSkrcjExXQotCW1vdmFwcwlYTU1XT1JEWygtMTA0KSty
MTFdLHhtbTAKLQltb3ZhcHMJeG1tMTEsWE1NV09SRFsoKC04OCkpK3IxMV0KLQltb3ZhcHMJWE1N
V09SRFsoLTg4KStyMTFdLHhtbTAKLQltb3ZhcHMJeG1tMTIsWE1NV09SRFsoKC03MikpK3IxMV0K
LQltb3ZhcHMJWE1NV09SRFsoLTcyKStyMTFdLHhtbTAKLQltb3ZhcHMJeG1tMTMsWE1NV09SRFso
KC01NikpK3IxMV0KLQltb3ZhcHMJWE1NV09SRFsoLTU2KStyMTFdLHhtbTAKLQltb3ZhcHMJeG1t
MTQsWE1NV09SRFsoKC00MCkpK3IxMV0KLQltb3ZhcHMJWE1NV09SRFsoLTQwKStyMTFdLHhtbTAK
LQltb3ZhcHMJeG1tMTUsWE1NV09SRFsoKC0yNCkpK3IxMV0KLQltb3ZhcHMJWE1NV09SRFsoLTI0
KStyMTFdLHhtbTAKLQltb3ZhcHMJWE1NV09SRFtyc3BdLHhtbTAKLQltb3ZhcHMJWE1NV09SRFsx
Nityc3BdLHhtbTAKLQltb3ZhcHMJWE1NV09SRFszMityc3BdLHhtbTAKLQltb3ZhcHMJWE1NV09S
RFs0OCtyc3BdLHhtbTAKLQltb3ZhcHMJWE1NV09SRFs2NCtyc3BdLHhtbTAKLQltb3ZhcHMJWE1N
V09SRFs4MCtyc3BdLHhtbTAKLQltb3ZhcHMJWE1NV09SRFs5Nityc3BdLHhtbTAKLQltb3YJcmJw
LFFXT1JEWygoLTgpKStyMTFdCi0KLQlsZWEJcnNwLFtyMTFdCi0KLSRMJHh0c19lbmNfZXBpbG9n
dWU6Ci0JbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCi0JbW92CXJzaSxRV09S
RFsxNityc3BdCi0JREIJMEYzaCwwQzNoCQk7cmVwcmV0Ci0KLSRMJFNFSF9lbmRfYWVzX2h3X3h0
c19lbmNyeXB0OgotZ2xvYmFsCWFlc19od194dHNfZGVjcnlwdAotCi1BTElHTgkxNgotYWVzX2h3
X3h0c19kZWNyeXB0OgotCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQotCW1v
dglRV09SRFsxNityc3BdLHJzaQotCW1vdglyYXgscnNwCi0kTCRTRUhfYmVnaW5fYWVzX2h3X3h0
c19kZWNyeXB0OgotCW1vdglyZGkscmN4Ci0JbW92CXJzaSxyZHgKLQltb3YJcmR4LHI4Ci0JbW92
CXJjeCxyOQotCW1vdglyOCxRV09SRFs0MCtyc3BdCi0JbW92CXI5LFFXT1JEWzQ4K3JzcF0KLQot
Ci0KLQlsZWEJcjExLFtyc3BdCi0KLQlwdXNoCXJicAotCi0Jc3ViCXJzcCwyNzIKLQlhbmQJcnNw
LC0xNgotCW1vdmFwcwlYTU1XT1JEWygtMTY4KStyMTFdLHhtbTYKLQltb3ZhcHMJWE1NV09SRFso
LTE1MikrcjExXSx4bW03Ci0JbW92YXBzCVhNTVdPUkRbKC0xMzYpK3IxMV0seG1tOAotCW1vdmFw
cwlYTU1XT1JEWygtMTIwKStyMTFdLHhtbTkKLQltb3ZhcHMJWE1NV09SRFsoLTEwNCkrcjExXSx4
bW0xMAotCW1vdmFwcwlYTU1XT1JEWygtODgpK3IxMV0seG1tMTEKLQltb3ZhcHMJWE1NV09SRFso
LTcyKStyMTFdLHhtbTEyCi0JbW92YXBzCVhNTVdPUkRbKC01NikrcjExXSx4bW0xMwotCW1vdmFw
cwlYTU1XT1JEWygtNDApK3IxMV0seG1tMTQKLQltb3ZhcHMJWE1NV09SRFsoLTI0KStyMTFdLHht
bTE1Ci0kTCR4dHNfZGVjX2JvZHk6Ci0JbW92dXBzCXhtbTIsWE1NV09SRFtyOV0KLQltb3YJZWF4
LERXT1JEWzI0MCtyOF0KLQltb3YJcjEwZCxEV09SRFsyNDArcmN4XQotCW1vdnVwcwl4bW0wLFhN
TVdPUkRbcjhdCi0JbW92dXBzCXhtbTEsWE1NV09SRFsxNityOF0KLQlsZWEJcjgsWzMyK3I4XQot
CXhvcnBzCXhtbTIseG1tMAotJEwkb29wX2VuYzFfMTE6Ci1EQgkxMDIsMTUsNTYsMjIwLDIwOQot
CWRlYwllYXgKLQltb3Z1cHMJeG1tMSxYTU1XT1JEW3I4XQotCWxlYQlyOCxbMTYrcjhdCi0Jam56
CU5FQVIgJEwkb29wX2VuYzFfMTEKLURCCTEwMiwxNSw1NiwyMjEsMjA5Ci0JeG9yCWVheCxlYXgK
LQl0ZXN0CXJkeCwxNQotCXNldG56CWFsCi0Jc2hsCXJheCw0Ci0Jc3ViCXJkeCxyYXgKLQotCW1v
dnVwcwl4bW0wLFhNTVdPUkRbcmN4XQotCW1vdglyYnAscmN4Ci0JbW92CWVheCxyMTBkCi0Jc2hs
CXIxMGQsNAotCW1vdglyOSxyZHgKLQlhbmQJcmR4LC0xNgotCi0JbW92dXBzCXhtbTEsWE1NV09S
RFsxNityMTAqMStyY3hdCi0KLQltb3ZkcWEJeG1tOCxYTU1XT1JEWyRMJHh0c19tYWdpY10KLQlt
b3ZkcWEJeG1tMTUseG1tMgotCXBzaHVmZAl4bW05LHhtbTIsMHg1ZgotCXB4b3IJeG1tMSx4bW0w
Ci0JbW92ZHFhCXhtbTE0LHhtbTkKLQlwYWRkZAl4bW05LHhtbTkKLQltb3ZkcWEJeG1tMTAseG1t
MTUKLQlwc3JhZAl4bW0xNCwzMQotCXBhZGRxCXhtbTE1LHhtbTE1Ci0JcGFuZAl4bW0xNCx4bW04
Ci0JcHhvcgl4bW0xMCx4bW0wCi0JcHhvcgl4bW0xNSx4bW0xNAotCW1vdmRxYQl4bW0xNCx4bW05
Ci0JcGFkZGQJeG1tOSx4bW05Ci0JbW92ZHFhCXhtbTExLHhtbTE1Ci0JcHNyYWQJeG1tMTQsMzEK
LQlwYWRkcQl4bW0xNSx4bW0xNQotCXBhbmQJeG1tMTQseG1tOAotCXB4b3IJeG1tMTEseG1tMAot
CXB4b3IJeG1tMTUseG1tMTQKLQltb3ZkcWEJeG1tMTQseG1tOQotCXBhZGRkCXhtbTkseG1tOQot
CW1vdmRxYQl4bW0xMix4bW0xNQotCXBzcmFkCXhtbTE0LDMxCi0JcGFkZHEJeG1tMTUseG1tMTUK
LQlwYW5kCXhtbTE0LHhtbTgKLQlweG9yCXhtbTEyLHhtbTAKLQlweG9yCXhtbTE1LHhtbTE0Ci0J
bW92ZHFhCXhtbTE0LHhtbTkKLQlwYWRkZAl4bW05LHhtbTkKLQltb3ZkcWEJeG1tMTMseG1tMTUK
LQlwc3JhZAl4bW0xNCwzMQotCXBhZGRxCXhtbTE1LHhtbTE1Ci0JcGFuZAl4bW0xNCx4bW04Ci0J
cHhvcgl4bW0xMyx4bW0wCi0JcHhvcgl4bW0xNSx4bW0xNAotCW1vdmRxYQl4bW0xNCx4bW0xNQot
CXBzcmFkCXhtbTksMzEKLQlwYWRkcQl4bW0xNSx4bW0xNQotCXBhbmQJeG1tOSx4bW04Ci0JcHhv
cgl4bW0xNCx4bW0wCi0JcHhvcgl4bW0xNSx4bW05Ci0JbW92YXBzCVhNTVdPUkRbOTYrcnNwXSx4
bW0xCi0KLQlzdWIJcmR4LDE2KjYKLQlqYwlORUFSICRMJHh0c19kZWNfc2hvcnQKLQotCW1vdgll
YXgsMTYrOTYKLQlsZWEJcmN4LFszMityMTAqMStyYnBdCi0Jc3ViCXJheCxyMTAKLQltb3Z1cHMJ
eG1tMSxYTU1XT1JEWzE2K3JicF0KLQltb3YJcjEwLHJheAotCWxlYQlyOCxbJEwkeHRzX21hZ2lj
XQotCWptcAlORUFSICRMJHh0c19kZWNfZ3JhbmRsb29wCi0KLUFMSUdOCTMyCi0kTCR4dHNfZGVj
X2dyYW5kbG9vcDoKLQltb3ZkcXUJeG1tMixYTU1XT1JEW3JkaV0KLQltb3ZkcWEJeG1tOCx4bW0w
Ci0JbW92ZHF1CXhtbTMsWE1NV09SRFsxNityZGldCi0JcHhvcgl4bW0yLHhtbTEwCi0JbW92ZHF1
CXhtbTQsWE1NV09SRFszMityZGldCi0JcHhvcgl4bW0zLHhtbTExCi1EQgkxMDIsMTUsNTYsMjIy
LDIwOQotCW1vdmRxdQl4bW01LFhNTVdPUkRbNDgrcmRpXQotCXB4b3IJeG1tNCx4bW0xMgotREIJ
MTAyLDE1LDU2LDIyMiwyMTcKLQltb3ZkcXUJeG1tNixYTU1XT1JEWzY0K3JkaV0KLQlweG9yCXht
bTUseG1tMTMKLURCCTEwMiwxNSw1NiwyMjIsMjI1Ci0JbW92ZHF1CXhtbTcsWE1NV09SRFs4MCty
ZGldCi0JcHhvcgl4bW04LHhtbTE1Ci0JbW92ZHFhCXhtbTksWE1NV09SRFs5Nityc3BdCi0JcHhv
cgl4bW02LHhtbTE0Ci1EQgkxMDIsMTUsNTYsMjIyLDIzMwotCW1vdnVwcwl4bW0wLFhNTVdPUkRb
MzIrcmJwXQotCWxlYQlyZGksWzk2K3JkaV0KLQlweG9yCXhtbTcseG1tOAotCi0JcHhvcgl4bW0x
MCx4bW05Ci1EQgkxMDIsMTUsNTYsMjIyLDI0MQotCXB4b3IJeG1tMTEseG1tOQotCW1vdmRxYQlY
TU1XT1JEW3JzcF0seG1tMTAKLURCCTEwMiwxNSw1NiwyMjIsMjQ5Ci0JbW92dXBzCXhtbTEsWE1N
V09SRFs0OCtyYnBdCi0JcHhvcgl4bW0xMix4bW05Ci0KLURCCTEwMiwxNSw1NiwyMjIsMjA4Ci0J
cHhvcgl4bW0xMyx4bW05Ci0JbW92ZHFhCVhNTVdPUkRbMTYrcnNwXSx4bW0xMQotREIJMTAyLDE1
LDU2LDIyMiwyMTYKLQlweG9yCXhtbTE0LHhtbTkKLQltb3ZkcWEJWE1NV09SRFszMityc3BdLHht
bTEyCi1EQgkxMDIsMTUsNTYsMjIyLDIyNAotREIJMTAyLDE1LDU2LDIyMiwyMzIKLQlweG9yCXht
bTgseG1tOQotCW1vdmRxYQlYTU1XT1JEWzY0K3JzcF0seG1tMTQKLURCCTEwMiwxNSw1NiwyMjIs
MjQwCi1EQgkxMDIsMTUsNTYsMjIyLDI0OAotCW1vdnVwcwl4bW0wLFhNTVdPUkRbNjQrcmJwXQot
CW1vdmRxYQlYTU1XT1JEWzgwK3JzcF0seG1tOAotCXBzaHVmZAl4bW05LHhtbTE1LDB4NWYKLQlq
bXAJTkVBUiAkTCR4dHNfZGVjX2xvb3A2Ci1BTElHTgkzMgotJEwkeHRzX2RlY19sb29wNjoKLURC
CTEwMiwxNSw1NiwyMjIsMjA5Ci1EQgkxMDIsMTUsNTYsMjIyLDIxNwotREIJMTAyLDE1LDU2LDIy
MiwyMjUKLURCCTEwMiwxNSw1NiwyMjIsMjMzCi1EQgkxMDIsMTUsNTYsMjIyLDI0MQotREIJMTAy
LDE1LDU2LDIyMiwyNDkKLQltb3Z1cHMJeG1tMSxYTU1XT1JEWygoLTY0KSkrcmF4KjErcmN4XQot
CWFkZAlyYXgsMzIKLQotREIJMTAyLDE1LDU2LDIyMiwyMDgKLURCCTEwMiwxNSw1NiwyMjIsMjE2
Ci1EQgkxMDIsMTUsNTYsMjIyLDIyNAotREIJMTAyLDE1LDU2LDIyMiwyMzIKLURCCTEwMiwxNSw1
NiwyMjIsMjQwCi1EQgkxMDIsMTUsNTYsMjIyLDI0OAotCW1vdnVwcwl4bW0wLFhNTVdPUkRbKCgt
ODApKStyYXgqMStyY3hdCi0Jam56CU5FQVIgJEwkeHRzX2RlY19sb29wNgotCi0JbW92ZHFhCXht
bTgsWE1NV09SRFtyOF0KLQltb3ZkcWEJeG1tMTQseG1tOQotCXBhZGRkCXhtbTkseG1tOQotREIJ
MTAyLDE1LDU2LDIyMiwyMDkKLQlwYWRkcQl4bW0xNSx4bW0xNQotCXBzcmFkCXhtbTE0LDMxCi1E
QgkxMDIsMTUsNTYsMjIyLDIxNwotCXBhbmQJeG1tMTQseG1tOAotCW1vdnVwcwl4bW0xMCxYTU1X
T1JEW3JicF0KLURCCTEwMiwxNSw1NiwyMjIsMjI1Ci1EQgkxMDIsMTUsNTYsMjIyLDIzMwotREIJ
MTAyLDE1LDU2LDIyMiwyNDEKLQlweG9yCXhtbTE1LHhtbTE0Ci0JbW92YXBzCXhtbTExLHhtbTEw
Ci1EQgkxMDIsMTUsNTYsMjIyLDI0OQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbKCgtNjQpKStyY3hd
Ci0KLQltb3ZkcWEJeG1tMTQseG1tOQotREIJMTAyLDE1LDU2LDIyMiwyMDgKLQlwYWRkZAl4bW05
LHhtbTkKLQlweG9yCXhtbTEwLHhtbTE1Ci1EQgkxMDIsMTUsNTYsMjIyLDIxNgotCXBzcmFkCXht
bTE0LDMxCi0JcGFkZHEJeG1tMTUseG1tMTUKLURCCTEwMiwxNSw1NiwyMjIsMjI0Ci1EQgkxMDIs
MTUsNTYsMjIyLDIzMgotCXBhbmQJeG1tMTQseG1tOAotCW1vdmFwcwl4bW0xMix4bW0xMQotREIJ
MTAyLDE1LDU2LDIyMiwyNDAKLQlweG9yCXhtbTE1LHhtbTE0Ci0JbW92ZHFhCXhtbTE0LHhtbTkK
LURCCTEwMiwxNSw1NiwyMjIsMjQ4Ci0JbW92dXBzCXhtbTAsWE1NV09SRFsoKC00OCkpK3JjeF0K
LQotCXBhZGRkCXhtbTkseG1tOQotREIJMTAyLDE1LDU2LDIyMiwyMDkKLQlweG9yCXhtbTExLHht
bTE1Ci0JcHNyYWQJeG1tMTQsMzEKLURCCTEwMiwxNSw1NiwyMjIsMjE3Ci0JcGFkZHEJeG1tMTUs
eG1tMTUKLQlwYW5kCXhtbTE0LHhtbTgKLURCCTEwMiwxNSw1NiwyMjIsMjI1Ci1EQgkxMDIsMTUs
NTYsMjIyLDIzMwotCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMTMKLQlweG9yCXhtbTE1LHht
bTE0Ci1EQgkxMDIsMTUsNTYsMjIyLDI0MQotCW1vdmFwcwl4bW0xMyx4bW0xMgotCW1vdmRxYQl4
bW0xNCx4bW05Ci1EQgkxMDIsMTUsNTYsMjIyLDI0OQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbKCgt
MzIpKStyY3hdCi0KLQlwYWRkZAl4bW05LHhtbTkKLURCCTEwMiwxNSw1NiwyMjIsMjA4Ci0JcHhv
cgl4bW0xMix4bW0xNQotCXBzcmFkCXhtbTE0LDMxCi1EQgkxMDIsMTUsNTYsMjIyLDIxNgotCXBh
ZGRxCXhtbTE1LHhtbTE1Ci0JcGFuZAl4bW0xNCx4bW04Ci1EQgkxMDIsMTUsNTYsMjIyLDIyNAot
REIJMTAyLDE1LDU2LDIyMiwyMzIKLURCCTEwMiwxNSw1NiwyMjIsMjQwCi0JcHhvcgl4bW0xNSx4
bW0xNAotCW1vdmFwcwl4bW0xNCx4bW0xMwotREIJMTAyLDE1LDU2LDIyMiwyNDgKLQotCW1vdmRx
YQl4bW0wLHhtbTkKLQlwYWRkZAl4bW05LHhtbTkKLURCCTEwMiwxNSw1NiwyMjIsMjA5Ci0JcHhv
cgl4bW0xMyx4bW0xNQotCXBzcmFkCXhtbTAsMzEKLURCCTEwMiwxNSw1NiwyMjIsMjE3Ci0JcGFk
ZHEJeG1tMTUseG1tMTUKLQlwYW5kCXhtbTAseG1tOAotREIJMTAyLDE1LDU2LDIyMiwyMjUKLURC
CTEwMiwxNSw1NiwyMjIsMjMzCi0JcHhvcgl4bW0xNSx4bW0wCi0JbW92dXBzCXhtbTAsWE1NV09S
RFtyYnBdCi1EQgkxMDIsMTUsNTYsMjIyLDI0MQotREIJMTAyLDE1LDU2LDIyMiwyNDkKLQltb3Z1
cHMJeG1tMSxYTU1XT1JEWzE2K3JicF0KLQotCXB4b3IJeG1tMTQseG1tMTUKLURCCTEwMiwxNSw1
NiwyMjMsODQsMzYsMAotCXBzcmFkCXhtbTksMzEKLQlwYWRkcQl4bW0xNSx4bW0xNQotREIJMTAy
LDE1LDU2LDIyMyw5MiwzNiwxNgotREIJMTAyLDE1LDU2LDIyMywxMDAsMzYsMzIKLQlwYW5kCXht
bTkseG1tOAotCW1vdglyYXgscjEwCi1EQgkxMDIsMTUsNTYsMjIzLDEwOCwzNiw0OAotREIJMTAy
LDE1LDU2LDIyMywxMTYsMzYsNjQKLURCCTEwMiwxNSw1NiwyMjMsMTI0LDM2LDgwCi0JcHhvcgl4
bW0xNSx4bW05Ci0KLQlsZWEJcnNpLFs5Nityc2ldCi0JbW92dXBzCVhNTVdPUkRbKC05NikrcnNp
XSx4bW0yCi0JbW92dXBzCVhNTVdPUkRbKC04MCkrcnNpXSx4bW0zCi0JbW92dXBzCVhNTVdPUkRb
KC02NCkrcnNpXSx4bW00Ci0JbW92dXBzCVhNTVdPUkRbKC00OCkrcnNpXSx4bW01Ci0JbW92dXBz
CVhNTVdPUkRbKC0zMikrcnNpXSx4bW02Ci0JbW92dXBzCVhNTVdPUkRbKC0xNikrcnNpXSx4bW03
Ci0Jc3ViCXJkeCwxNio2Ci0Jam5jCU5FQVIgJEwkeHRzX2RlY19ncmFuZGxvb3AKLQotCW1vdgll
YXgsMTYrOTYKLQlzdWIJZWF4LHIxMGQKLQltb3YJcmN4LHJicAotCXNocgllYXgsNAotCi0kTCR4
dHNfZGVjX3Nob3J0OgotCi0JbW92CXIxMGQsZWF4Ci0JcHhvcgl4bW0xMCx4bW0wCi0JcHhvcgl4
bW0xMSx4bW0wCi0JYWRkCXJkeCwxNio2Ci0JanoJTkVBUiAkTCR4dHNfZGVjX2RvbmUKLQotCXB4
b3IJeG1tMTIseG1tMAotCWNtcAlyZHgsMHgyMAotCWpiCU5FQVIgJEwkeHRzX2RlY19vbmUKLQlw
eG9yCXhtbTEzLHhtbTAKLQlqZQlORUFSICRMJHh0c19kZWNfdHdvCi0KLQlweG9yCXhtbTE0LHht
bTAKLQljbXAJcmR4LDB4NDAKLQlqYglORUFSICRMJHh0c19kZWNfdGhyZWUKLQlqZQlORUFSICRM
JHh0c19kZWNfZm91cgotCi0JbW92ZHF1CXhtbTIsWE1NV09SRFtyZGldCi0JbW92ZHF1CXhtbTMs
WE1NV09SRFsxNityZGldCi0JbW92ZHF1CXhtbTQsWE1NV09SRFszMityZGldCi0JcHhvcgl4bW0y
LHhtbTEwCi0JbW92ZHF1CXhtbTUsWE1NV09SRFs0OCtyZGldCi0JcHhvcgl4bW0zLHhtbTExCi0J
bW92ZHF1CXhtbTYsWE1NV09SRFs2NCtyZGldCi0JbGVhCXJkaSxbODArcmRpXQotCXB4b3IJeG1t
NCx4bW0xMgotCXB4b3IJeG1tNSx4bW0xMwotCXB4b3IJeG1tNix4bW0xNAotCi0JY2FsbAlfYWVz
bmlfZGVjcnlwdDYKLQotCXhvcnBzCXhtbTIseG1tMTAKLQl4b3Jwcwl4bW0zLHhtbTExCi0JeG9y
cHMJeG1tNCx4bW0xMgotCW1vdmRxdQlYTU1XT1JEW3JzaV0seG1tMgotCXhvcnBzCXhtbTUseG1t
MTMKLQltb3ZkcXUJWE1NV09SRFsxNityc2ldLHhtbTMKLQl4b3Jwcwl4bW02LHhtbTE0Ci0JbW92
ZHF1CVhNTVdPUkRbMzIrcnNpXSx4bW00Ci0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxdQlYTU1X
T1JEWzQ4K3JzaV0seG1tNQotCXBjbXBndGQJeG1tMTQseG1tMTUKLQltb3ZkcXUJWE1NV09SRFs2
NCtyc2ldLHhtbTYKLQlsZWEJcnNpLFs4MCtyc2ldCi0JcHNodWZkCXhtbTExLHhtbTE0LDB4MTMK
LQlhbmQJcjksMTUKLQlqeglORUFSICRMJHh0c19kZWNfcmV0Ci0KLQltb3ZkcWEJeG1tMTAseG1t
MTUKLQlwYWRkcQl4bW0xNSx4bW0xNQotCXBhbmQJeG1tMTEseG1tOAotCXB4b3IJeG1tMTEseG1t
MTUKLQlqbXAJTkVBUiAkTCR4dHNfZGVjX2RvbmUyCi0KLUFMSUdOCTE2Ci0kTCR4dHNfZGVjX29u
ZToKLQltb3Z1cHMJeG1tMixYTU1XT1JEW3JkaV0KLQlsZWEJcmRpLFsxNityZGldCi0JeG9ycHMJ
eG1tMix4bW0xMAotCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQotCW1vdnVwcwl4bW0xLFhNTVdP
UkRbMTYrcmN4XQotCWxlYQlyY3gsWzMyK3JjeF0KLQl4b3Jwcwl4bW0yLHhtbTAKLSRMJG9vcF9k
ZWMxXzEyOgotREIJMTAyLDE1LDU2LDIyMiwyMDkKLQlkZWMJZWF4Ci0JbW92dXBzCXhtbTEsWE1N
V09SRFtyY3hdCi0JbGVhCXJjeCxbMTYrcmN4XQotCWpueglORUFSICRMJG9vcF9kZWMxXzEyCi1E
QgkxMDIsMTUsNTYsMjIzLDIwOQotCXhvcnBzCXhtbTIseG1tMTAKLQltb3ZkcWEJeG1tMTAseG1t
MTEKLQltb3Z1cHMJWE1NV09SRFtyc2ldLHhtbTIKLQltb3ZkcWEJeG1tMTEseG1tMTIKLQlsZWEJ
cnNpLFsxNityc2ldCi0Jam1wCU5FQVIgJEwkeHRzX2RlY19kb25lCi0KLUFMSUdOCTE2Ci0kTCR4
dHNfZGVjX3R3bzoKLQltb3Z1cHMJeG1tMixYTU1XT1JEW3JkaV0KLQltb3Z1cHMJeG1tMyxYTU1X
T1JEWzE2K3JkaV0KLQlsZWEJcmRpLFszMityZGldCi0JeG9ycHMJeG1tMix4bW0xMAotCXhvcnBz
CXhtbTMseG1tMTEKLQotCWNhbGwJX2Flc25pX2RlY3J5cHQyCi0KLQl4b3Jwcwl4bW0yLHhtbTEw
Ci0JbW92ZHFhCXhtbTEwLHhtbTEyCi0JeG9ycHMJeG1tMyx4bW0xMQotCW1vdmRxYQl4bW0xMSx4
bW0xMwotCW1vdnVwcwlYTU1XT1JEW3JzaV0seG1tMgotCW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0s
eG1tMwotCWxlYQlyc2ksWzMyK3JzaV0KLQlqbXAJTkVBUiAkTCR4dHNfZGVjX2RvbmUKLQotQUxJ
R04JMTYKLSRMJHh0c19kZWNfdGhyZWU6Ci0JbW92dXBzCXhtbTIsWE1NV09SRFtyZGldCi0JbW92
dXBzCXhtbTMsWE1NV09SRFsxNityZGldCi0JbW92dXBzCXhtbTQsWE1NV09SRFszMityZGldCi0J
bGVhCXJkaSxbNDgrcmRpXQotCXhvcnBzCXhtbTIseG1tMTAKLQl4b3Jwcwl4bW0zLHhtbTExCi0J
eG9ycHMJeG1tNCx4bW0xMgotCi0JY2FsbAlfYWVzbmlfZGVjcnlwdDMKLQotCXhvcnBzCXhtbTIs
eG1tMTAKLQltb3ZkcWEJeG1tMTAseG1tMTMKLQl4b3Jwcwl4bW0zLHhtbTExCi0JbW92ZHFhCXht
bTExLHhtbTE0Ci0JeG9ycHMJeG1tNCx4bW0xMgotCW1vdnVwcwlYTU1XT1JEW3JzaV0seG1tMgot
CW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0seG1tMwotCW1vdnVwcwlYTU1XT1JEWzMyK3JzaV0seG1t
NAotCWxlYQlyc2ksWzQ4K3JzaV0KLQlqbXAJTkVBUiAkTCR4dHNfZGVjX2RvbmUKLQotQUxJR04J
MTYKLSRMJHh0c19kZWNfZm91cjoKLQltb3Z1cHMJeG1tMixYTU1XT1JEW3JkaV0KLQltb3Z1cHMJ
eG1tMyxYTU1XT1JEWzE2K3JkaV0KLQltb3Z1cHMJeG1tNCxYTU1XT1JEWzMyK3JkaV0KLQl4b3Jw
cwl4bW0yLHhtbTEwCi0JbW92dXBzCXhtbTUsWE1NV09SRFs0OCtyZGldCi0JbGVhCXJkaSxbNjQr
cmRpXQotCXhvcnBzCXhtbTMseG1tMTEKLQl4b3Jwcwl4bW00LHhtbTEyCi0JeG9ycHMJeG1tNSx4
bW0xMwotCi0JY2FsbAlfYWVzbmlfZGVjcnlwdDQKLQotCXB4b3IJeG1tMix4bW0xMAotCW1vdmRx
YQl4bW0xMCx4bW0xNAotCXB4b3IJeG1tMyx4bW0xMQotCW1vdmRxYQl4bW0xMSx4bW0xNQotCXB4
b3IJeG1tNCx4bW0xMgotCW1vdmRxdQlYTU1XT1JEW3JzaV0seG1tMgotCXB4b3IJeG1tNSx4bW0x
MwotCW1vdmRxdQlYTU1XT1JEWzE2K3JzaV0seG1tMwotCW1vdmRxdQlYTU1XT1JEWzMyK3JzaV0s
eG1tNAotCW1vdmRxdQlYTU1XT1JEWzQ4K3JzaV0seG1tNQotCWxlYQlyc2ksWzY0K3JzaV0KLQlq
bXAJTkVBUiAkTCR4dHNfZGVjX2RvbmUKLQotQUxJR04JMTYKLSRMJHh0c19kZWNfZG9uZToKLQlh
bmQJcjksMTUKLQlqeglORUFSICRMJHh0c19kZWNfcmV0Ci0kTCR4dHNfZGVjX2RvbmUyOgotCW1v
dglyZHgscjkKLQltb3YJcmN4LHJicAotCW1vdgllYXgscjEwZAotCi0JbW92dXBzCXhtbTIsWE1N
V09SRFtyZGldCi0JeG9ycHMJeG1tMix4bW0xMQotCW1vdnVwcwl4bW0wLFhNTVdPUkRbcmN4XQot
CW1vdnVwcwl4bW0xLFhNTVdPUkRbMTYrcmN4XQotCWxlYQlyY3gsWzMyK3JjeF0KLQl4b3Jwcwl4
bW0yLHhtbTAKLSRMJG9vcF9kZWMxXzEzOgotREIJMTAyLDE1LDU2LDIyMiwyMDkKLQlkZWMJZWF4
Ci0JbW92dXBzCXhtbTEsWE1NV09SRFtyY3hdCi0JbGVhCXJjeCxbMTYrcmN4XQotCWpueglORUFS
ICRMJG9vcF9kZWMxXzEzCi1EQgkxMDIsMTUsNTYsMjIzLDIwOQotCXhvcnBzCXhtbTIseG1tMTEK
LQltb3Z1cHMJWE1NV09SRFtyc2ldLHhtbTIKLQotJEwkeHRzX2RlY19zdGVhbDoKLQltb3Z6eAll
YXgsQllURVsxNityZGldCi0JbW92engJZWN4LEJZVEVbcnNpXQotCWxlYQlyZGksWzErcmRpXQot
CW1vdglCWVRFW3JzaV0sYWwKLQltb3YJQllURVsxNityc2ldLGNsCi0JbGVhCXJzaSxbMStyc2ld
Ci0Jc3ViCXJkeCwxCi0Jam56CU5FQVIgJEwkeHRzX2RlY19zdGVhbAotCi0Jc3ViCXJzaSxyOQot
CW1vdglyY3gscmJwCi0JbW92CWVheCxyMTBkCi0KLQltb3Z1cHMJeG1tMixYTU1XT1JEW3JzaV0K
LQl4b3Jwcwl4bW0yLHhtbTEwCi0JbW92dXBzCXhtbTAsWE1NV09SRFtyY3hdCi0JbW92dXBzCXht
bTEsWE1NV09SRFsxNityY3hdCi0JbGVhCXJjeCxbMzIrcmN4XQotCXhvcnBzCXhtbTIseG1tMAot
JEwkb29wX2RlYzFfMTQ6Ci1EQgkxMDIsMTUsNTYsMjIyLDIwOQotCWRlYwllYXgKLQltb3Z1cHMJ
eG1tMSxYTU1XT1JEW3JjeF0KLQlsZWEJcmN4LFsxNityY3hdCi0Jam56CU5FQVIgJEwkb29wX2Rl
YzFfMTQKLURCCTEwMiwxNSw1NiwyMjMsMjA5Ci0JeG9ycHMJeG1tMix4bW0xMAotCW1vdnVwcwlY
TU1XT1JEW3JzaV0seG1tMgotCi0kTCR4dHNfZGVjX3JldDoKLQl4b3Jwcwl4bW0wLHhtbTAKLQlw
eG9yCXhtbTEseG1tMQotCXB4b3IJeG1tMix4bW0yCi0JcHhvcgl4bW0zLHhtbTMKLQlweG9yCXht
bTQseG1tNAotCXB4b3IJeG1tNSx4bW01Ci0JbW92YXBzCXhtbTYsWE1NV09SRFsoKC0xNjgpKSty
MTFdCi0JbW92YXBzCVhNTVdPUkRbKC0xNjgpK3IxMV0seG1tMAotCW1vdmFwcwl4bW03LFhNTVdP
UkRbKCgtMTUyKSkrcjExXQotCW1vdmFwcwlYTU1XT1JEWygtMTUyKStyMTFdLHhtbTAKLQltb3Zh
cHMJeG1tOCxYTU1XT1JEWygoLTEzNikpK3IxMV0KLQltb3ZhcHMJWE1NV09SRFsoLTEzNikrcjEx
XSx4bW0wCi0JbW92YXBzCXhtbTksWE1NV09SRFsoKC0xMjApKStyMTFdCi0JbW92YXBzCVhNTVdP
UkRbKC0xMjApK3IxMV0seG1tMAotCW1vdmFwcwl4bW0xMCxYTU1XT1JEWygoLTEwNCkpK3IxMV0K
LQltb3ZhcHMJWE1NV09SRFsoLTEwNCkrcjExXSx4bW0wCi0JbW92YXBzCXhtbTExLFhNTVdPUkRb
KCgtODgpKStyMTFdCi0JbW92YXBzCVhNTVdPUkRbKC04OCkrcjExXSx4bW0wCi0JbW92YXBzCXht
bTEyLFhNTVdPUkRbKCgtNzIpKStyMTFdCi0JbW92YXBzCVhNTVdPUkRbKC03MikrcjExXSx4bW0w
Ci0JbW92YXBzCXhtbTEzLFhNTVdPUkRbKCgtNTYpKStyMTFdCi0JbW92YXBzCVhNTVdPUkRbKC01
NikrcjExXSx4bW0wCi0JbW92YXBzCXhtbTE0LFhNTVdPUkRbKCgtNDApKStyMTFdCi0JbW92YXBz
CVhNTVdPUkRbKC00MCkrcjExXSx4bW0wCi0JbW92YXBzCXhtbTE1LFhNTVdPUkRbKCgtMjQpKSty
MTFdCi0JbW92YXBzCVhNTVdPUkRbKC0yNCkrcjExXSx4bW0wCi0JbW92YXBzCVhNTVdPUkRbcnNw
XSx4bW0wCi0JbW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW0wCi0JbW92YXBzCVhNTVdPUkRbMzIr
cnNwXSx4bW0wCi0JbW92YXBzCVhNTVdPUkRbNDgrcnNwXSx4bW0wCi0JbW92YXBzCVhNTVdPUkRb
NjQrcnNwXSx4bW0wCi0JbW92YXBzCVhNTVdPUkRbODArcnNwXSx4bW0wCi0JbW92YXBzCVhNTVdP
UkRbOTYrcnNwXSx4bW0wCi0JbW92CXJicCxRV09SRFsoKC04KSkrcjExXQotCi0JbGVhCXJzcCxb
cjExXQotCi0kTCR4dHNfZGVjX2VwaWxvZ3VlOgotCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42
NCBlcGlsb2d1ZQotCW1vdglyc2ksUVdPUkRbMTYrcnNwXQotCURCCTBGM2gsMEMzaAkJO3JlcHJl
dAotCi0kTCRTRUhfZW5kX2Flc19od194dHNfZGVjcnlwdDoKLWdsb2JhbAlhZXNfaHdfb2NiX2Vu
Y3J5cHQKLQotQUxJR04JMzIKLWFlc19od19vY2JfZW5jcnlwdDoKLQltb3YJUVdPUkRbOCtyc3Bd
LHJkaQk7V0lONjQgcHJvbG9ndWUKLQltb3YJUVdPUkRbMTYrcnNwXSxyc2kKLQltb3YJcmF4LHJz
cAotJEwkU0VIX2JlZ2luX2Flc19od19vY2JfZW5jcnlwdDoKLQltb3YJcmRpLHJjeAotCW1vdgly
c2kscmR4Ci0JbW92CXJkeCxyOAotCW1vdglyY3gscjkKLQltb3YJcjgsUVdPUkRbNDArcnNwXQot
CW1vdglyOSxRV09SRFs0OCtyc3BdCi0KLQotCi0JbGVhCXJheCxbcnNwXQotCXB1c2gJcmJ4Ci0K
LQlwdXNoCXJicAotCi0JcHVzaAlyMTIKLQotCXB1c2gJcjEzCi0KLQlwdXNoCXIxNAotCi0JbGVh
CXJzcCxbKCgtMTYwKSkrcnNwXQotCW1vdmFwcwlYTU1XT1JEW3JzcF0seG1tNgotCW1vdmFwcwlY
TU1XT1JEWzE2K3JzcF0seG1tNwotCW1vdmFwcwlYTU1XT1JEWzMyK3JzcF0seG1tOAotCW1vdmFw
cwlYTU1XT1JEWzQ4K3JzcF0seG1tOQotCW1vdmFwcwlYTU1XT1JEWzY0K3JzcF0seG1tMTAKLQlt
b3ZhcHMJWE1NV09SRFs4MCtyc3BdLHhtbTExCi0JbW92YXBzCVhNTVdPUkRbOTYrcnNwXSx4bW0x
MgotCW1vdmFwcwlYTU1XT1JEWzExMityc3BdLHhtbTEzCi0JbW92YXBzCVhNTVdPUkRbMTI4K3Jz
cF0seG1tMTQKLQltb3ZhcHMJWE1NV09SRFsxNDQrcnNwXSx4bW0xNQotJEwkb2NiX2VuY19ib2R5
OgotCW1vdglyYngsUVdPUkRbNTYrcmF4XQotCW1vdglyYnAsUVdPUkRbKCg1Nis4KSkrcmF4XQot
Ci0JbW92CXIxMGQsRFdPUkRbMjQwK3JjeF0KLQltb3YJcjExLHJjeAotCXNobAlyMTBkLDQKLQlt
b3Z1cHMJeG1tOSxYTU1XT1JEW3JjeF0KLQltb3Z1cHMJeG1tMSxYTU1XT1JEWzE2K3IxMCoxK3Jj
eF0KLQotCW1vdmRxdQl4bW0xNSxYTU1XT1JEW3I5XQotCXB4b3IJeG1tOSx4bW0xCi0JcHhvcgl4
bW0xNSx4bW0xCi0KLQltb3YJZWF4LDE2KzMyCi0JbGVhCXJjeCxbMzIrcjEwKjErcjExXQotCW1v
dnVwcwl4bW0xLFhNTVdPUkRbMTYrcjExXQotCXN1YglyYXgscjEwCi0JbW92CXIxMCxyYXgKLQot
CW1vdmRxdQl4bW0xMCxYTU1XT1JEW3JieF0KLQltb3ZkcXUJeG1tOCxYTU1XT1JEW3JicF0KLQot
CXRlc3QJcjgsMQotCWpueglORUFSICRMJG9jYl9lbmNfb2RkCi0KLQlic2YJcjEyLHI4Ci0JYWRk
CXI4LDEKLQlzaGwJcjEyLDQKLQltb3ZkcXUJeG1tNyxYTU1XT1JEW3IxMioxK3JieF0KLQltb3Zk
cXUJeG1tMixYTU1XT1JEW3JkaV0KLQlsZWEJcmRpLFsxNityZGldCi0KLQljYWxsCV9fb2NiX2Vu
Y3J5cHQxCi0KLQltb3ZkcWEJeG1tMTUseG1tNwotCW1vdnVwcwlYTU1XT1JEW3JzaV0seG1tMgot
CWxlYQlyc2ksWzE2K3JzaV0KLQlzdWIJcmR4LDEKLQlqeglORUFSICRMJG9jYl9lbmNfZG9uZQot
Ci0kTCRvY2JfZW5jX29kZDoKLQlsZWEJcjEyLFsxK3I4XQotCWxlYQlyMTMsWzMrcjhdCi0JbGVh
CXIxNCxbNStyOF0KLQlsZWEJcjgsWzYrcjhdCi0JYnNmCXIxMixyMTIKLQlic2YJcjEzLHIxMwot
CWJzZglyMTQscjE0Ci0Jc2hsCXIxMiw0Ci0Jc2hsCXIxMyw0Ci0Jc2hsCXIxNCw0Ci0KLQlzdWIJ
cmR4LDYKLQlqYwlORUFSICRMJG9jYl9lbmNfc2hvcnQKLQlqbXAJTkVBUiAkTCRvY2JfZW5jX2dy
YW5kbG9vcAotCi1BTElHTgkzMgotJEwkb2NiX2VuY19ncmFuZGxvb3A6Ci0JbW92ZHF1CXhtbTIs
WE1NV09SRFtyZGldCi0JbW92ZHF1CXhtbTMsWE1NV09SRFsxNityZGldCi0JbW92ZHF1CXhtbTQs
WE1NV09SRFszMityZGldCi0JbW92ZHF1CXhtbTUsWE1NV09SRFs0OCtyZGldCi0JbW92ZHF1CXht
bTYsWE1NV09SRFs2NCtyZGldCi0JbW92ZHF1CXhtbTcsWE1NV09SRFs4MCtyZGldCi0JbGVhCXJk
aSxbOTYrcmRpXQotCi0JY2FsbAlfX29jYl9lbmNyeXB0NgotCi0JbW92dXBzCVhNTVdPUkRbcnNp
XSx4bW0yCi0JbW92dXBzCVhNTVdPUkRbMTYrcnNpXSx4bW0zCi0JbW92dXBzCVhNTVdPUkRbMzIr
cnNpXSx4bW00Ci0JbW92dXBzCVhNTVdPUkRbNDgrcnNpXSx4bW01Ci0JbW92dXBzCVhNTVdPUkRb
NjQrcnNpXSx4bW02Ci0JbW92dXBzCVhNTVdPUkRbODArcnNpXSx4bW03Ci0JbGVhCXJzaSxbOTYr
cnNpXQotCXN1YglyZHgsNgotCWpuYwlORUFSICRMJG9jYl9lbmNfZ3JhbmRsb29wCi0KLSRMJG9j
Yl9lbmNfc2hvcnQ6Ci0JYWRkCXJkeCw2Ci0JanoJTkVBUiAkTCRvY2JfZW5jX2RvbmUKLQotCW1v
dmRxdQl4bW0yLFhNTVdPUkRbcmRpXQotCWNtcAlyZHgsMgotCWpiCU5FQVIgJEwkb2NiX2VuY19v
bmUKLQltb3ZkcXUJeG1tMyxYTU1XT1JEWzE2K3JkaV0KLQlqZQlORUFSICRMJG9jYl9lbmNfdHdv
Ci0KLQltb3ZkcXUJeG1tNCxYTU1XT1JEWzMyK3JkaV0KLQljbXAJcmR4LDQKLQlqYglORUFSICRM
JG9jYl9lbmNfdGhyZWUKLQltb3ZkcXUJeG1tNSxYTU1XT1JEWzQ4K3JkaV0KLQlqZQlORUFSICRM
JG9jYl9lbmNfZm91cgotCi0JbW92ZHF1CXhtbTYsWE1NV09SRFs2NCtyZGldCi0JcHhvcgl4bW03
LHhtbTcKLQotCWNhbGwJX19vY2JfZW5jcnlwdDYKLQotCW1vdmRxYQl4bW0xNSx4bW0xNAotCW1v
dnVwcwlYTU1XT1JEW3JzaV0seG1tMgotCW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0seG1tMwotCW1v
dnVwcwlYTU1XT1JEWzMyK3JzaV0seG1tNAotCW1vdnVwcwlYTU1XT1JEWzQ4K3JzaV0seG1tNQot
CW1vdnVwcwlYTU1XT1JEWzY0K3JzaV0seG1tNgotCi0Jam1wCU5FQVIgJEwkb2NiX2VuY19kb25l
Ci0KLUFMSUdOCTE2Ci0kTCRvY2JfZW5jX29uZToKLQltb3ZkcWEJeG1tNyx4bW0xMAotCi0JY2Fs
bAlfX29jYl9lbmNyeXB0MQotCi0JbW92ZHFhCXhtbTE1LHhtbTcKLQltb3Z1cHMJWE1NV09SRFty
c2ldLHhtbTIKLQlqbXAJTkVBUiAkTCRvY2JfZW5jX2RvbmUKLQotQUxJR04JMTYKLSRMJG9jYl9l
bmNfdHdvOgotCXB4b3IJeG1tNCx4bW00Ci0JcHhvcgl4bW01LHhtbTUKLQotCWNhbGwJX19vY2Jf
ZW5jcnlwdDQKLQotCW1vdmRxYQl4bW0xNSx4bW0xMQotCW1vdnVwcwlYTU1XT1JEW3JzaV0seG1t
MgotCW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0seG1tMwotCi0Jam1wCU5FQVIgJEwkb2NiX2VuY19k
b25lCi0KLUFMSUdOCTE2Ci0kTCRvY2JfZW5jX3RocmVlOgotCXB4b3IJeG1tNSx4bW01Ci0KLQlj
YWxsCV9fb2NiX2VuY3J5cHQ0Ci0KLQltb3ZkcWEJeG1tMTUseG1tMTIKLQltb3Z1cHMJWE1NV09S
RFtyc2ldLHhtbTIKLQltb3Z1cHMJWE1NV09SRFsxNityc2ldLHhtbTMKLQltb3Z1cHMJWE1NV09S
RFszMityc2ldLHhtbTQKLQotCWptcAlORUFSICRMJG9jYl9lbmNfZG9uZQotCi1BTElHTgkxNgot
JEwkb2NiX2VuY19mb3VyOgotCWNhbGwJX19vY2JfZW5jcnlwdDQKLQotCW1vdmRxYQl4bW0xNSx4
bW0xMwotCW1vdnVwcwlYTU1XT1JEW3JzaV0seG1tMgotCW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0s
eG1tMwotCW1vdnVwcwlYTU1XT1JEWzMyK3JzaV0seG1tNAotCW1vdnVwcwlYTU1XT1JEWzQ4K3Jz
aV0seG1tNQotCi0kTCRvY2JfZW5jX2RvbmU6Ci0JcHhvcgl4bW0xNSx4bW0wCi0JbW92ZHF1CVhN
TVdPUkRbcmJwXSx4bW04Ci0JbW92ZHF1CVhNTVdPUkRbcjldLHhtbTE1Ci0KLQl4b3Jwcwl4bW0w
LHhtbTAKLQlweG9yCXhtbTEseG1tMQotCXB4b3IJeG1tMix4bW0yCi0JcHhvcgl4bW0zLHhtbTMK
LQlweG9yCXhtbTQseG1tNAotCXB4b3IJeG1tNSx4bW01Ci0JbW92YXBzCXhtbTYsWE1NV09SRFty
c3BdCi0JbW92YXBzCVhNTVdPUkRbcnNwXSx4bW0wCi0JbW92YXBzCXhtbTcsWE1NV09SRFsxNity
c3BdCi0JbW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW0wCi0JbW92YXBzCXhtbTgsWE1NV09SRFsz
Mityc3BdCi0JbW92YXBzCVhNTVdPUkRbMzIrcnNwXSx4bW0wCi0JbW92YXBzCXhtbTksWE1NV09S
RFs0OCtyc3BdCi0JbW92YXBzCVhNTVdPUkRbNDgrcnNwXSx4bW0wCi0JbW92YXBzCXhtbTEwLFhN
TVdPUkRbNjQrcnNwXQotCW1vdmFwcwlYTU1XT1JEWzY0K3JzcF0seG1tMAotCW1vdmFwcwl4bW0x
MSxYTU1XT1JEWzgwK3JzcF0KLQltb3ZhcHMJWE1NV09SRFs4MCtyc3BdLHhtbTAKLQltb3ZhcHMJ
eG1tMTIsWE1NV09SRFs5Nityc3BdCi0JbW92YXBzCVhNTVdPUkRbOTYrcnNwXSx4bW0wCi0JbW92
YXBzCXhtbTEzLFhNTVdPUkRbMTEyK3JzcF0KLQltb3ZhcHMJWE1NV09SRFsxMTIrcnNwXSx4bW0w
Ci0JbW92YXBzCXhtbTE0LFhNTVdPUkRbMTI4K3JzcF0KLQltb3ZhcHMJWE1NV09SRFsxMjgrcnNw
XSx4bW0wCi0JbW92YXBzCXhtbTE1LFhNTVdPUkRbMTQ0K3JzcF0KLQltb3ZhcHMJWE1NV09SRFsx
NDQrcnNwXSx4bW0wCi0JbGVhCXJheCxbKCgxNjArNDApKStyc3BdCi0kTCRvY2JfZW5jX3BvcDoK
LQltb3YJcjE0LFFXT1JEWygoLTQwKSkrcmF4XQotCi0JbW92CXIxMyxRV09SRFsoKC0zMikpK3Jh
eF0KLQotCW1vdglyMTIsUVdPUkRbKCgtMjQpKStyYXhdCi0KLQltb3YJcmJwLFFXT1JEWygoLTE2
KSkrcmF4XQotCi0JbW92CXJieCxRV09SRFsoKC04KSkrcmF4XQotCi0JbGVhCXJzcCxbcmF4XQot
Ci0kTCRvY2JfZW5jX2VwaWxvZ3VlOgotCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGls
b2d1ZQotCW1vdglyc2ksUVdPUkRbMTYrcnNwXQotCURCCTBGM2gsMEMzaAkJO3JlcHJldAotCi0k
TCRTRUhfZW5kX2Flc19od19vY2JfZW5jcnlwdDoKLQotCi1BTElHTgkzMgotX19vY2JfZW5jcnlw
dDY6Ci0JcHhvcgl4bW0xNSx4bW05Ci0JbW92ZHF1CXhtbTExLFhNTVdPUkRbcjEyKjErcmJ4XQot
CW1vdmRxYQl4bW0xMix4bW0xMAotCW1vdmRxdQl4bW0xMyxYTU1XT1JEW3IxMyoxK3JieF0KLQlt
b3ZkcWEJeG1tMTQseG1tMTAKLQlweG9yCXhtbTEwLHhtbTE1Ci0JbW92ZHF1CXhtbTE1LFhNTVdP
UkRbcjE0KjErcmJ4XQotCXB4b3IJeG1tMTEseG1tMTAKLQlweG9yCXhtbTgseG1tMgotCXB4b3IJ
eG1tMix4bW0xMAotCXB4b3IJeG1tMTIseG1tMTEKLQlweG9yCXhtbTgseG1tMwotCXB4b3IJeG1t
Myx4bW0xMQotCXB4b3IJeG1tMTMseG1tMTIKLQlweG9yCXhtbTgseG1tNAotCXB4b3IJeG1tNCx4
bW0xMgotCXB4b3IJeG1tMTQseG1tMTMKLQlweG9yCXhtbTgseG1tNQotCXB4b3IJeG1tNSx4bW0x
MwotCXB4b3IJeG1tMTUseG1tMTQKLQlweG9yCXhtbTgseG1tNgotCXB4b3IJeG1tNix4bW0xNAot
CXB4b3IJeG1tOCx4bW03Ci0JcHhvcgl4bW03LHhtbTE1Ci0JbW92dXBzCXhtbTAsWE1NV09SRFsz
MityMTFdCi0KLQlsZWEJcjEyLFsxK3I4XQotCWxlYQlyMTMsWzMrcjhdCi0JbGVhCXIxNCxbNSty
OF0KLQlhZGQJcjgsNgotCXB4b3IJeG1tMTAseG1tOQotCWJzZglyMTIscjEyCi0JYnNmCXIxMyxy
MTMKLQlic2YJcjE0LHIxNAotCi1EQgkxMDIsMTUsNTYsMjIwLDIwOQotREIJMTAyLDE1LDU2LDIy
MCwyMTcKLURCCTEwMiwxNSw1NiwyMjAsMjI1Ci1EQgkxMDIsMTUsNTYsMjIwLDIzMwotCXB4b3IJ
eG1tMTEseG1tOQotCXB4b3IJeG1tMTIseG1tOQotREIJMTAyLDE1LDU2LDIyMCwyNDEKLQlweG9y
CXhtbTEzLHhtbTkKLQlweG9yCXhtbTE0LHhtbTkKLURCCTEwMiwxNSw1NiwyMjAsMjQ5Ci0JbW92
dXBzCXhtbTEsWE1NV09SRFs0OCtyMTFdCi0JcHhvcgl4bW0xNSx4bW05Ci0KLURCCTEwMiwxNSw1
NiwyMjAsMjA4Ci1EQgkxMDIsMTUsNTYsMjIwLDIxNgotREIJMTAyLDE1LDU2LDIyMCwyMjQKLURC
CTEwMiwxNSw1NiwyMjAsMjMyCi1EQgkxMDIsMTUsNTYsMjIwLDI0MAotREIJMTAyLDE1LDU2LDIy
MCwyNDgKLQltb3Z1cHMJeG1tMCxYTU1XT1JEWzY0K3IxMV0KLQlzaGwJcjEyLDQKLQlzaGwJcjEz
LDQKLQlqbXAJTkVBUiAkTCRvY2JfZW5jX2xvb3A2Ci0KLUFMSUdOCTMyCi0kTCRvY2JfZW5jX2xv
b3A2OgotREIJMTAyLDE1LDU2LDIyMCwyMDkKLURCCTEwMiwxNSw1NiwyMjAsMjE3Ci1EQgkxMDIs
MTUsNTYsMjIwLDIyNQotREIJMTAyLDE1LDU2LDIyMCwyMzMKLURCCTEwMiwxNSw1NiwyMjAsMjQx
Ci1EQgkxMDIsMTUsNTYsMjIwLDI0OQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbcmF4KjErcmN4XQot
CWFkZAlyYXgsMzIKLQotREIJMTAyLDE1LDU2LDIyMCwyMDgKLURCCTEwMiwxNSw1NiwyMjAsMjE2
Ci1EQgkxMDIsMTUsNTYsMjIwLDIyNAotREIJMTAyLDE1LDU2LDIyMCwyMzIKLURCCTEwMiwxNSw1
NiwyMjAsMjQwCi1EQgkxMDIsMTUsNTYsMjIwLDI0OAotCW1vdnVwcwl4bW0wLFhNTVdPUkRbKCgt
MTYpKStyYXgqMStyY3hdCi0Jam56CU5FQVIgJEwkb2NiX2VuY19sb29wNgotCi1EQgkxMDIsMTUs
NTYsMjIwLDIwOQotREIJMTAyLDE1LDU2LDIyMCwyMTcKLURCCTEwMiwxNSw1NiwyMjAsMjI1Ci1E
QgkxMDIsMTUsNTYsMjIwLDIzMwotREIJMTAyLDE1LDU2LDIyMCwyNDEKLURCCTEwMiwxNSw1Niwy
MjAsMjQ5Ci0JbW92dXBzCXhtbTEsWE1NV09SRFsxNityMTFdCi0Jc2hsCXIxNCw0Ci0KLURCCTEw
Miw2NSwxNSw1NiwyMjEsMjEwCi0JbW92ZHF1CXhtbTEwLFhNTVdPUkRbcmJ4XQotCW1vdglyYXgs
cjEwCi1EQgkxMDIsNjUsMTUsNTYsMjIxLDIxOQotREIJMTAyLDY1LDE1LDU2LDIyMSwyMjgKLURC
CTEwMiw2NSwxNSw1NiwyMjEsMjM3Ci1EQgkxMDIsNjUsMTUsNTYsMjIxLDI0NgotREIJMTAyLDY1
LDE1LDU2LDIyMSwyNTUKLQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLQotCi0KLUFMSUdOCTMyCi1f
X29jYl9lbmNyeXB0NDoKLQlweG9yCXhtbTE1LHhtbTkKLQltb3ZkcXUJeG1tMTEsWE1NV09SRFty
MTIqMStyYnhdCi0JbW92ZHFhCXhtbTEyLHhtbTEwCi0JbW92ZHF1CXhtbTEzLFhNTVdPUkRbcjEz
KjErcmJ4XQotCXB4b3IJeG1tMTAseG1tMTUKLQlweG9yCXhtbTExLHhtbTEwCi0JcHhvcgl4bW04
LHhtbTIKLQlweG9yCXhtbTIseG1tMTAKLQlweG9yCXhtbTEyLHhtbTExCi0JcHhvcgl4bW04LHht
bTMKLQlweG9yCXhtbTMseG1tMTEKLQlweG9yCXhtbTEzLHhtbTEyCi0JcHhvcgl4bW04LHhtbTQK
LQlweG9yCXhtbTQseG1tMTIKLQlweG9yCXhtbTgseG1tNQotCXB4b3IJeG1tNSx4bW0xMwotCW1v
dnVwcwl4bW0wLFhNTVdPUkRbMzIrcjExXQotCi0JcHhvcgl4bW0xMCx4bW05Ci0JcHhvcgl4bW0x
MSx4bW05Ci0JcHhvcgl4bW0xMix4bW05Ci0JcHhvcgl4bW0xMyx4bW05Ci0KLURCCTEwMiwxNSw1
NiwyMjAsMjA5Ci1EQgkxMDIsMTUsNTYsMjIwLDIxNwotREIJMTAyLDE1LDU2LDIyMCwyMjUKLURC
CTEwMiwxNSw1NiwyMjAsMjMzCi0JbW92dXBzCXhtbTEsWE1NV09SRFs0OCtyMTFdCi0KLURCCTEw
MiwxNSw1NiwyMjAsMjA4Ci1EQgkxMDIsMTUsNTYsMjIwLDIxNgotREIJMTAyLDE1LDU2LDIyMCwy
MjQKLURCCTEwMiwxNSw1NiwyMjAsMjMyCi0JbW92dXBzCXhtbTAsWE1NV09SRFs2NCtyMTFdCi0J
am1wCU5FQVIgJEwkb2NiX2VuY19sb29wNAotCi1BTElHTgkzMgotJEwkb2NiX2VuY19sb29wNDoK
LURCCTEwMiwxNSw1NiwyMjAsMjA5Ci1EQgkxMDIsMTUsNTYsMjIwLDIxNwotREIJMTAyLDE1LDU2
LDIyMCwyMjUKLURCCTEwMiwxNSw1NiwyMjAsMjMzCi0JbW92dXBzCXhtbTEsWE1NV09SRFtyYXgq
MStyY3hdCi0JYWRkCXJheCwzMgotCi1EQgkxMDIsMTUsNTYsMjIwLDIwOAotREIJMTAyLDE1LDU2
LDIyMCwyMTYKLURCCTEwMiwxNSw1NiwyMjAsMjI0Ci1EQgkxMDIsMTUsNTYsMjIwLDIzMgotCW1v
dnVwcwl4bW0wLFhNTVdPUkRbKCgtMTYpKStyYXgqMStyY3hdCi0Jam56CU5FQVIgJEwkb2NiX2Vu
Y19sb29wNAotCi1EQgkxMDIsMTUsNTYsMjIwLDIwOQotREIJMTAyLDE1LDU2LDIyMCwyMTcKLURC
CTEwMiwxNSw1NiwyMjAsMjI1Ci1EQgkxMDIsMTUsNTYsMjIwLDIzMwotCW1vdnVwcwl4bW0xLFhN
TVdPUkRbMTYrcjExXQotCW1vdglyYXgscjEwCi0KLURCCTEwMiw2NSwxNSw1NiwyMjEsMjEwCi1E
QgkxMDIsNjUsMTUsNTYsMjIxLDIxOQotREIJMTAyLDY1LDE1LDU2LDIyMSwyMjgKLURCCTEwMiw2
NSwxNSw1NiwyMjEsMjM3Ci0JREIJMEYzaCwwQzNoCQk7cmVwcmV0Ci0KLQotCi1BTElHTgkzMgot
X19vY2JfZW5jcnlwdDE6Ci0JcHhvcgl4bW03LHhtbTE1Ci0JcHhvcgl4bW03LHhtbTkKLQlweG9y
CXhtbTgseG1tMgotCXB4b3IJeG1tMix4bW03Ci0JbW92dXBzCXhtbTAsWE1NV09SRFszMityMTFd
Ci0KLURCCTEwMiwxNSw1NiwyMjAsMjA5Ci0JbW92dXBzCXhtbTEsWE1NV09SRFs0OCtyMTFdCi0J
cHhvcgl4bW03LHhtbTkKLQotREIJMTAyLDE1LDU2LDIyMCwyMDgKLQltb3Z1cHMJeG1tMCxYTU1X
T1JEWzY0K3IxMV0KLQlqbXAJTkVBUiAkTCRvY2JfZW5jX2xvb3AxCi0KLUFMSUdOCTMyCi0kTCRv
Y2JfZW5jX2xvb3AxOgotREIJMTAyLDE1LDU2LDIyMCwyMDkKLQltb3Z1cHMJeG1tMSxYTU1XT1JE
W3JheCoxK3JjeF0KLQlhZGQJcmF4LDMyCi0KLURCCTEwMiwxNSw1NiwyMjAsMjA4Ci0JbW92dXBz
CXhtbTAsWE1NV09SRFsoKC0xNikpK3JheCoxK3JjeF0KLQlqbnoJTkVBUiAkTCRvY2JfZW5jX2xv
b3AxCi0KLURCCTEwMiwxNSw1NiwyMjAsMjA5Ci0JbW92dXBzCXhtbTEsWE1NV09SRFsxNityMTFd
Ci0JbW92CXJheCxyMTAKLQotREIJMTAyLDE1LDU2LDIyMSwyMTUKLQlEQgkwRjNoLDBDM2gJCTty
ZXByZXQKLQotCi1nbG9iYWwJYWVzX2h3X29jYl9kZWNyeXB0Ci0KLUFMSUdOCTMyCi1hZXNfaHdf
b2NiX2RlY3J5cHQ6Ci0JbW92CVFXT1JEWzgrcnNwXSxyZGkJO1dJTjY0IHByb2xvZ3VlCi0JbW92
CVFXT1JEWzE2K3JzcF0scnNpCi0JbW92CXJheCxyc3AKLSRMJFNFSF9iZWdpbl9hZXNfaHdfb2Ni
X2RlY3J5cHQ6Ci0JbW92CXJkaSxyY3gKLQltb3YJcnNpLHJkeAotCW1vdglyZHgscjgKLQltb3YJ
cmN4LHI5Ci0JbW92CXI4LFFXT1JEWzQwK3JzcF0KLQltb3YJcjksUVdPUkRbNDgrcnNwXQotCi0K
LQotCWxlYQlyYXgsW3JzcF0KLQlwdXNoCXJieAotCi0JcHVzaAlyYnAKLQotCXB1c2gJcjEyCi0K
LQlwdXNoCXIxMwotCi0JcHVzaAlyMTQKLQotCWxlYQlyc3AsWygoLTE2MCkpK3JzcF0KLQltb3Zh
cHMJWE1NV09SRFtyc3BdLHhtbTYKLQltb3ZhcHMJWE1NV09SRFsxNityc3BdLHhtbTcKLQltb3Zh
cHMJWE1NV09SRFszMityc3BdLHhtbTgKLQltb3ZhcHMJWE1NV09SRFs0OCtyc3BdLHhtbTkKLQlt
b3ZhcHMJWE1NV09SRFs2NCtyc3BdLHhtbTEwCi0JbW92YXBzCVhNTVdPUkRbODArcnNwXSx4bW0x
MQotCW1vdmFwcwlYTU1XT1JEWzk2K3JzcF0seG1tMTIKLQltb3ZhcHMJWE1NV09SRFsxMTIrcnNw
XSx4bW0xMwotCW1vdmFwcwlYTU1XT1JEWzEyOCtyc3BdLHhtbTE0Ci0JbW92YXBzCVhNTVdPUkRb
MTQ0K3JzcF0seG1tMTUKLSRMJG9jYl9kZWNfYm9keToKLQltb3YJcmJ4LFFXT1JEWzU2K3JheF0K
LQltb3YJcmJwLFFXT1JEWygoNTYrOCkpK3JheF0KLQotCW1vdglyMTBkLERXT1JEWzI0MCtyY3hd
Ci0JbW92CXIxMSxyY3gKLQlzaGwJcjEwZCw0Ci0JbW92dXBzCXhtbTksWE1NV09SRFtyY3hdCi0J
bW92dXBzCXhtbTEsWE1NV09SRFsxNityMTAqMStyY3hdCi0KLQltb3ZkcXUJeG1tMTUsWE1NV09S
RFtyOV0KLQlweG9yCXhtbTkseG1tMQotCXB4b3IJeG1tMTUseG1tMQotCi0JbW92CWVheCwxNisz
MgotCWxlYQlyY3gsWzMyK3IxMCoxK3IxMV0KLQltb3Z1cHMJeG1tMSxYTU1XT1JEWzE2K3IxMV0K
LQlzdWIJcmF4LHIxMAotCW1vdglyMTAscmF4Ci0KLQltb3ZkcXUJeG1tMTAsWE1NV09SRFtyYnhd
Ci0JbW92ZHF1CXhtbTgsWE1NV09SRFtyYnBdCi0KLQl0ZXN0CXI4LDEKLQlqbnoJTkVBUiAkTCRv
Y2JfZGVjX29kZAotCi0JYnNmCXIxMixyOAotCWFkZAlyOCwxCi0Jc2hsCXIxMiw0Ci0JbW92ZHF1
CXhtbTcsWE1NV09SRFtyMTIqMStyYnhdCi0JbW92ZHF1CXhtbTIsWE1NV09SRFtyZGldCi0JbGVh
CXJkaSxbMTYrcmRpXQotCi0JY2FsbAlfX29jYl9kZWNyeXB0MQotCi0JbW92ZHFhCXhtbTE1LHht
bTcKLQltb3Z1cHMJWE1NV09SRFtyc2ldLHhtbTIKLQl4b3Jwcwl4bW04LHhtbTIKLQlsZWEJcnNp
LFsxNityc2ldCi0Jc3ViCXJkeCwxCi0JanoJTkVBUiAkTCRvY2JfZGVjX2RvbmUKLQotJEwkb2Ni
X2RlY19vZGQ6Ci0JbGVhCXIxMixbMStyOF0KLQlsZWEJcjEzLFszK3I4XQotCWxlYQlyMTQsWzUr
cjhdCi0JbGVhCXI4LFs2K3I4XQotCWJzZglyMTIscjEyCi0JYnNmCXIxMyxyMTMKLQlic2YJcjE0
LHIxNAotCXNobAlyMTIsNAotCXNobAlyMTMsNAotCXNobAlyMTQsNAotCi0Jc3ViCXJkeCw2Ci0J
amMJTkVBUiAkTCRvY2JfZGVjX3Nob3J0Ci0Jam1wCU5FQVIgJEwkb2NiX2RlY19ncmFuZGxvb3AK
LQotQUxJR04JMzIKLSRMJG9jYl9kZWNfZ3JhbmRsb29wOgotCW1vdmRxdQl4bW0yLFhNTVdPUkRb
cmRpXQotCW1vdmRxdQl4bW0zLFhNTVdPUkRbMTYrcmRpXQotCW1vdmRxdQl4bW00LFhNTVdPUkRb
MzIrcmRpXQotCW1vdmRxdQl4bW01LFhNTVdPUkRbNDgrcmRpXQotCW1vdmRxdQl4bW02LFhNTVdP
UkRbNjQrcmRpXQotCW1vdmRxdQl4bW03LFhNTVdPUkRbODArcmRpXQotCWxlYQlyZGksWzk2K3Jk
aV0KLQotCWNhbGwJX19vY2JfZGVjcnlwdDYKLQotCW1vdnVwcwlYTU1XT1JEW3JzaV0seG1tMgot
CXB4b3IJeG1tOCx4bW0yCi0JbW92dXBzCVhNTVdPUkRbMTYrcnNpXSx4bW0zCi0JcHhvcgl4bW04
LHhtbTMKLQltb3Z1cHMJWE1NV09SRFszMityc2ldLHhtbTQKLQlweG9yCXhtbTgseG1tNAotCW1v
dnVwcwlYTU1XT1JEWzQ4K3JzaV0seG1tNQotCXB4b3IJeG1tOCx4bW01Ci0JbW92dXBzCVhNTVdP
UkRbNjQrcnNpXSx4bW02Ci0JcHhvcgl4bW04LHhtbTYKLQltb3Z1cHMJWE1NV09SRFs4MCtyc2ld
LHhtbTcKLQlweG9yCXhtbTgseG1tNwotCWxlYQlyc2ksWzk2K3JzaV0KLQlzdWIJcmR4LDYKLQlq
bmMJTkVBUiAkTCRvY2JfZGVjX2dyYW5kbG9vcAotCi0kTCRvY2JfZGVjX3Nob3J0OgotCWFkZAly
ZHgsNgotCWp6CU5FQVIgJEwkb2NiX2RlY19kb25lCi0KLQltb3ZkcXUJeG1tMixYTU1XT1JEW3Jk
aV0KLQljbXAJcmR4LDIKLQlqYglORUFSICRMJG9jYl9kZWNfb25lCi0JbW92ZHF1CXhtbTMsWE1N
V09SRFsxNityZGldCi0JamUJTkVBUiAkTCRvY2JfZGVjX3R3bwotCi0JbW92ZHF1CXhtbTQsWE1N
V09SRFszMityZGldCi0JY21wCXJkeCw0Ci0JamIJTkVBUiAkTCRvY2JfZGVjX3RocmVlCi0JbW92
ZHF1CXhtbTUsWE1NV09SRFs0OCtyZGldCi0JamUJTkVBUiAkTCRvY2JfZGVjX2ZvdXIKLQotCW1v
dmRxdQl4bW02LFhNTVdPUkRbNjQrcmRpXQotCXB4b3IJeG1tNyx4bW03Ci0KLQljYWxsCV9fb2Ni
X2RlY3J5cHQ2Ci0KLQltb3ZkcWEJeG1tMTUseG1tMTQKLQltb3Z1cHMJWE1NV09SRFtyc2ldLHht
bTIKLQlweG9yCXhtbTgseG1tMgotCW1vdnVwcwlYTU1XT1JEWzE2K3JzaV0seG1tMwotCXB4b3IJ
eG1tOCx4bW0zCi0JbW92dXBzCVhNTVdPUkRbMzIrcnNpXSx4bW00Ci0JcHhvcgl4bW04LHhtbTQK
LQltb3Z1cHMJWE1NV09SRFs0OCtyc2ldLHhtbTUKLQlweG9yCXhtbTgseG1tNQotCW1vdnVwcwlY
TU1XT1JEWzY0K3JzaV0seG1tNgotCXB4b3IJeG1tOCx4bW02Ci0KLQlqbXAJTkVBUiAkTCRvY2Jf
ZGVjX2RvbmUKLQotQUxJR04JMTYKLSRMJG9jYl9kZWNfb25lOgotCW1vdmRxYQl4bW03LHhtbTEw
Ci0KLQljYWxsCV9fb2NiX2RlY3J5cHQxCi0KLQltb3ZkcWEJeG1tMTUseG1tNwotCW1vdnVwcwlY
TU1XT1JEW3JzaV0seG1tMgotCXhvcnBzCXhtbTgseG1tMgotCWptcAlORUFSICRMJG9jYl9kZWNf
ZG9uZQotCi1BTElHTgkxNgotJEwkb2NiX2RlY190d286Ci0JcHhvcgl4bW00LHhtbTQKLQlweG9y
CXhtbTUseG1tNQotCi0JY2FsbAlfX29jYl9kZWNyeXB0NAotCi0JbW92ZHFhCXhtbTE1LHhtbTEx
Ci0JbW92dXBzCVhNTVdPUkRbcnNpXSx4bW0yCi0JeG9ycHMJeG1tOCx4bW0yCi0JbW92dXBzCVhN
TVdPUkRbMTYrcnNpXSx4bW0zCi0JeG9ycHMJeG1tOCx4bW0zCi0KLQlqbXAJTkVBUiAkTCRvY2Jf
ZGVjX2RvbmUKLQotQUxJR04JMTYKLSRMJG9jYl9kZWNfdGhyZWU6Ci0JcHhvcgl4bW01LHhtbTUK
LQotCWNhbGwJX19vY2JfZGVjcnlwdDQKLQotCW1vdmRxYQl4bW0xNSx4bW0xMgotCW1vdnVwcwlY
TU1XT1JEW3JzaV0seG1tMgotCXhvcnBzCXhtbTgseG1tMgotCW1vdnVwcwlYTU1XT1JEWzE2K3Jz
aV0seG1tMwotCXhvcnBzCXhtbTgseG1tMwotCW1vdnVwcwlYTU1XT1JEWzMyK3JzaV0seG1tNAot
CXhvcnBzCXhtbTgseG1tNAotCi0Jam1wCU5FQVIgJEwkb2NiX2RlY19kb25lCi0KLUFMSUdOCTE2
Ci0kTCRvY2JfZGVjX2ZvdXI6Ci0JY2FsbAlfX29jYl9kZWNyeXB0NAotCi0JbW92ZHFhCXhtbTE1
LHhtbTEzCi0JbW92dXBzCVhNTVdPUkRbcnNpXSx4bW0yCi0JcHhvcgl4bW04LHhtbTIKLQltb3Z1
cHMJWE1NV09SRFsxNityc2ldLHhtbTMKLQlweG9yCXhtbTgseG1tMwotCW1vdnVwcwlYTU1XT1JE
WzMyK3JzaV0seG1tNAotCXB4b3IJeG1tOCx4bW00Ci0JbW92dXBzCVhNTVdPUkRbNDgrcnNpXSx4
bW01Ci0JcHhvcgl4bW04LHhtbTUKLQotJEwkb2NiX2RlY19kb25lOgotCXB4b3IJeG1tMTUseG1t
MAotCW1vdmRxdQlYTU1XT1JEW3JicF0seG1tOAotCW1vdmRxdQlYTU1XT1JEW3I5XSx4bW0xNQot
Ci0JeG9ycHMJeG1tMCx4bW0wCi0JcHhvcgl4bW0xLHhtbTEKLQlweG9yCXhtbTIseG1tMgotCXB4
b3IJeG1tMyx4bW0zCi0JcHhvcgl4bW00LHhtbTQKLQlweG9yCXhtbTUseG1tNQotCW1vdmFwcwl4
bW02LFhNTVdPUkRbcnNwXQotCW1vdmFwcwlYTU1XT1JEW3JzcF0seG1tMAotCW1vdmFwcwl4bW03
LFhNTVdPUkRbMTYrcnNwXQotCW1vdmFwcwlYTU1XT1JEWzE2K3JzcF0seG1tMAotCW1vdmFwcwl4
bW04LFhNTVdPUkRbMzIrcnNwXQotCW1vdmFwcwlYTU1XT1JEWzMyK3JzcF0seG1tMAotCW1vdmFw
cwl4bW05LFhNTVdPUkRbNDgrcnNwXQotCW1vdmFwcwlYTU1XT1JEWzQ4K3JzcF0seG1tMAotCW1v
dmFwcwl4bW0xMCxYTU1XT1JEWzY0K3JzcF0KLQltb3ZhcHMJWE1NV09SRFs2NCtyc3BdLHhtbTAK
LQltb3ZhcHMJeG1tMTEsWE1NV09SRFs4MCtyc3BdCi0JbW92YXBzCVhNTVdPUkRbODArcnNwXSx4
bW0wCi0JbW92YXBzCXhtbTEyLFhNTVdPUkRbOTYrcnNwXQotCW1vdmFwcwlYTU1XT1JEWzk2K3Jz
cF0seG1tMAotCW1vdmFwcwl4bW0xMyxYTU1XT1JEWzExMityc3BdCi0JbW92YXBzCVhNTVdPUkRb
MTEyK3JzcF0seG1tMAotCW1vdmFwcwl4bW0xNCxYTU1XT1JEWzEyOCtyc3BdCi0JbW92YXBzCVhN
TVdPUkRbMTI4K3JzcF0seG1tMAotCW1vdmFwcwl4bW0xNSxYTU1XT1JEWzE0NCtyc3BdCi0JbW92
YXBzCVhNTVdPUkRbMTQ0K3JzcF0seG1tMAotCWxlYQlyYXgsWygoMTYwKzQwKSkrcnNwXQotJEwk
b2NiX2RlY19wb3A6Ci0JbW92CXIxNCxRV09SRFsoKC00MCkpK3JheF0KLQotCW1vdglyMTMsUVdP
UkRbKCgtMzIpKStyYXhdCi0KLQltb3YJcjEyLFFXT1JEWygoLTI0KSkrcmF4XQotCi0JbW92CXJi
cCxRV09SRFsoKC0xNikpK3JheF0KLQotCW1vdglyYngsUVdPUkRbKCgtOCkpK3JheF0KLQotCWxl
YQlyc3AsW3JheF0KLQotJEwkb2NiX2RlY19lcGlsb2d1ZToKLQltb3YJcmRpLFFXT1JEWzgrcnNw
XQk7V0lONjQgZXBpbG9ndWUKLQltb3YJcnNpLFFXT1JEWzE2K3JzcF0KLQlEQgkwRjNoLDBDM2gJ
CTtyZXByZXQKLQotJEwkU0VIX2VuZF9hZXNfaHdfb2NiX2RlY3J5cHQ6Ci0KLQotQUxJR04JMzIK
LV9fb2NiX2RlY3J5cHQ2OgotCXB4b3IJeG1tMTUseG1tOQotCW1vdmRxdQl4bW0xMSxYTU1XT1JE
W3IxMioxK3JieF0KLQltb3ZkcWEJeG1tMTIseG1tMTAKLQltb3ZkcXUJeG1tMTMsWE1NV09SRFty
MTMqMStyYnhdCi0JbW92ZHFhCXhtbTE0LHhtbTEwCi0JcHhvcgl4bW0xMCx4bW0xNQotCW1vdmRx
dQl4bW0xNSxYTU1XT1JEW3IxNCoxK3JieF0KLQlweG9yCXhtbTExLHhtbTEwCi0JcHhvcgl4bW0y
LHhtbTEwCi0JcHhvcgl4bW0xMix4bW0xMQotCXB4b3IJeG1tMyx4bW0xMQotCXB4b3IJeG1tMTMs
eG1tMTIKLQlweG9yCXhtbTQseG1tMTIKLQlweG9yCXhtbTE0LHhtbTEzCi0JcHhvcgl4bW01LHht
bTEzCi0JcHhvcgl4bW0xNSx4bW0xNAotCXB4b3IJeG1tNix4bW0xNAotCXB4b3IJeG1tNyx4bW0x
NQotCW1vdnVwcwl4bW0wLFhNTVdPUkRbMzIrcjExXQotCi0JbGVhCXIxMixbMStyOF0KLQlsZWEJ
cjEzLFszK3I4XQotCWxlYQlyMTQsWzUrcjhdCi0JYWRkCXI4LDYKLQlweG9yCXhtbTEwLHhtbTkK
LQlic2YJcjEyLHIxMgotCWJzZglyMTMscjEzCi0JYnNmCXIxNCxyMTQKLQotREIJMTAyLDE1LDU2
LDIyMiwyMDkKLURCCTEwMiwxNSw1NiwyMjIsMjE3Ci1EQgkxMDIsMTUsNTYsMjIyLDIyNQotREIJ
MTAyLDE1LDU2LDIyMiwyMzMKLQlweG9yCXhtbTExLHhtbTkKLQlweG9yCXhtbTEyLHhtbTkKLURC
CTEwMiwxNSw1NiwyMjIsMjQxCi0JcHhvcgl4bW0xMyx4bW05Ci0JcHhvcgl4bW0xNCx4bW05Ci1E
QgkxMDIsMTUsNTYsMjIyLDI0OQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbNDgrcjExXQotCXB4b3IJ
eG1tMTUseG1tOQotCi1EQgkxMDIsMTUsNTYsMjIyLDIwOAotREIJMTAyLDE1LDU2LDIyMiwyMTYK
LURCCTEwMiwxNSw1NiwyMjIsMjI0Ci1EQgkxMDIsMTUsNTYsMjIyLDIzMgotREIJMTAyLDE1LDU2
LDIyMiwyNDAKLURCCTEwMiwxNSw1NiwyMjIsMjQ4Ci0JbW92dXBzCXhtbTAsWE1NV09SRFs2NCty
MTFdCi0Jc2hsCXIxMiw0Ci0Jc2hsCXIxMyw0Ci0Jam1wCU5FQVIgJEwkb2NiX2RlY19sb29wNgot
Ci1BTElHTgkzMgotJEwkb2NiX2RlY19sb29wNjoKLURCCTEwMiwxNSw1NiwyMjIsMjA5Ci1EQgkx
MDIsMTUsNTYsMjIyLDIxNwotREIJMTAyLDE1LDU2LDIyMiwyMjUKLURCCTEwMiwxNSw1NiwyMjIs
MjMzCi1EQgkxMDIsMTUsNTYsMjIyLDI0MQotREIJMTAyLDE1LDU2LDIyMiwyNDkKLQltb3Z1cHMJ
eG1tMSxYTU1XT1JEW3JheCoxK3JjeF0KLQlhZGQJcmF4LDMyCi0KLURCCTEwMiwxNSw1NiwyMjIs
MjA4Ci1EQgkxMDIsMTUsNTYsMjIyLDIxNgotREIJMTAyLDE1LDU2LDIyMiwyMjQKLURCCTEwMiwx
NSw1NiwyMjIsMjMyCi1EQgkxMDIsMTUsNTYsMjIyLDI0MAotREIJMTAyLDE1LDU2LDIyMiwyNDgK
LQltb3Z1cHMJeG1tMCxYTU1XT1JEWygoLTE2KSkrcmF4KjErcmN4XQotCWpueglORUFSICRMJG9j
Yl9kZWNfbG9vcDYKLQotREIJMTAyLDE1LDU2LDIyMiwyMDkKLURCCTEwMiwxNSw1NiwyMjIsMjE3
Ci1EQgkxMDIsMTUsNTYsMjIyLDIyNQotREIJMTAyLDE1LDU2LDIyMiwyMzMKLURCCTEwMiwxNSw1
NiwyMjIsMjQxCi1EQgkxMDIsMTUsNTYsMjIyLDI0OQotCW1vdnVwcwl4bW0xLFhNTVdPUkRbMTYr
cjExXQotCXNobAlyMTQsNAotCi1EQgkxMDIsNjUsMTUsNTYsMjIzLDIxMAotCW1vdmRxdQl4bW0x
MCxYTU1XT1JEW3JieF0KLQltb3YJcmF4LHIxMAotREIJMTAyLDY1LDE1LDU2LDIyMywyMTkKLURC
CTEwMiw2NSwxNSw1NiwyMjMsMjI4Ci1EQgkxMDIsNjUsMTUsNTYsMjIzLDIzNwotREIJMTAyLDY1
LDE1LDU2LDIyMywyNDYKLURCCTEwMiw2NSwxNSw1NiwyMjMsMjU1Ci0JREIJMEYzaCwwQzNoCQk7
cmVwcmV0Ci0KLQotCi1BTElHTgkzMgotX19vY2JfZGVjcnlwdDQ6Ci0JcHhvcgl4bW0xNSx4bW05
Ci0JbW92ZHF1CXhtbTExLFhNTVdPUkRbcjEyKjErcmJ4XQotCW1vdmRxYQl4bW0xMix4bW0xMAot
CW1vdmRxdQl4bW0xMyxYTU1XT1JEW3IxMyoxK3JieF0KLQlweG9yCXhtbTEwLHhtbTE1Ci0JcHhv
cgl4bW0xMSx4bW0xMAotCXB4b3IJeG1tMix4bW0xMAotCXB4b3IJeG1tMTIseG1tMTEKLQlweG9y
CXhtbTMseG1tMTEKLQlweG9yCXhtbTEzLHhtbTEyCi0JcHhvcgl4bW00LHhtbTEyCi0JcHhvcgl4
bW01LHhtbTEzCi0JbW92dXBzCXhtbTAsWE1NV09SRFszMityMTFdCi0KLQlweG9yCXhtbTEwLHht
bTkKLQlweG9yCXhtbTExLHhtbTkKLQlweG9yCXhtbTEyLHhtbTkKLQlweG9yCXhtbTEzLHhtbTkK
LQotREIJMTAyLDE1LDU2LDIyMiwyMDkKLURCCTEwMiwxNSw1NiwyMjIsMjE3Ci1EQgkxMDIsMTUs
NTYsMjIyLDIyNQotREIJMTAyLDE1LDU2LDIyMiwyMzMKLQltb3Z1cHMJeG1tMSxYTU1XT1JEWzQ4
K3IxMV0KLQotREIJMTAyLDE1LDU2LDIyMiwyMDgKLURCCTEwMiwxNSw1NiwyMjIsMjE2Ci1EQgkx
MDIsMTUsNTYsMjIyLDIyNAotREIJMTAyLDE1LDU2LDIyMiwyMzIKLQltb3Z1cHMJeG1tMCxYTU1X
T1JEWzY0K3IxMV0KLQlqbXAJTkVBUiAkTCRvY2JfZGVjX2xvb3A0Ci0KLUFMSUdOCTMyCi0kTCRv
Y2JfZGVjX2xvb3A0OgotREIJMTAyLDE1LDU2LDIyMiwyMDkKLURCCTEwMiwxNSw1NiwyMjIsMjE3
Ci1EQgkxMDIsMTUsNTYsMjIyLDIyNQotREIJMTAyLDE1LDU2LDIyMiwyMzMKLQltb3Z1cHMJeG1t
MSxYTU1XT1JEW3JheCoxK3JjeF0KLQlhZGQJcmF4LDMyCi0KLURCCTEwMiwxNSw1NiwyMjIsMjA4
Ci1EQgkxMDIsMTUsNTYsMjIyLDIxNgotREIJMTAyLDE1LDU2LDIyMiwyMjQKLURCCTEwMiwxNSw1
NiwyMjIsMjMyCi0JbW92dXBzCXhtbTAsWE1NV09SRFsoKC0xNikpK3JheCoxK3JjeF0KLQlqbnoJ
TkVBUiAkTCRvY2JfZGVjX2xvb3A0Ci0KLURCCTEwMiwxNSw1NiwyMjIsMjA5Ci1EQgkxMDIsMTUs
NTYsMjIyLDIxNwotREIJMTAyLDE1LDU2LDIyMiwyMjUKLURCCTEwMiwxNSw1NiwyMjIsMjMzCi0J
bW92dXBzCXhtbTEsWE1NV09SRFsxNityMTFdCi0JbW92CXJheCxyMTAKLQotREIJMTAyLDY1LDE1
LDU2LDIyMywyMTAKLURCCTEwMiw2NSwxNSw1NiwyMjMsMjE5Ci1EQgkxMDIsNjUsMTUsNTYsMjIz
LDIyOAotREIJMTAyLDY1LDE1LDU2LDIyMywyMzcKLQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLQot
Ci0KLUFMSUdOCTMyCi1fX29jYl9kZWNyeXB0MToKLQlweG9yCXhtbTcseG1tMTUKLQlweG9yCXht
bTcseG1tOQotCXB4b3IJeG1tMix4bW03Ci0JbW92dXBzCXhtbTAsWE1NV09SRFszMityMTFdCi0K
LURCCTEwMiwxNSw1NiwyMjIsMjA5Ci0JbW92dXBzCXhtbTEsWE1NV09SRFs0OCtyMTFdCi0JcHhv
cgl4bW03LHhtbTkKLQotREIJMTAyLDE1LDU2LDIyMiwyMDgKLQltb3Z1cHMJeG1tMCxYTU1XT1JE
WzY0K3IxMV0KLQlqbXAJTkVBUiAkTCRvY2JfZGVjX2xvb3AxCi0KLUFMSUdOCTMyCi0kTCRvY2Jf
ZGVjX2xvb3AxOgotREIJMTAyLDE1LDU2LDIyMiwyMDkKLQltb3Z1cHMJeG1tMSxYTU1XT1JEW3Jh
eCoxK3JjeF0KLQlhZGQJcmF4LDMyCi0KLURCCTEwMiwxNSw1NiwyMjIsMjA4Ci0JbW92dXBzCXht
bTAsWE1NV09SRFsoKC0xNikpK3JheCoxK3JjeF0KLQlqbnoJTkVBUiAkTCRvY2JfZGVjX2xvb3Ax
Ci0KLURCCTEwMiwxNSw1NiwyMjIsMjA5Ci0JbW92dXBzCXhtbTEsWE1NV09SRFsxNityMTFdCi0J
bW92CXJheCxyMTAKLQotREIJMTAyLDE1LDU2LDIyMywyMTUKLQlEQgkwRjNoLDBDM2gJCTtyZXBy
ZXQKLQotZ2xvYmFsCWFlc19od19jYmNfZW5jcnlwdAotCi1BTElHTgkxNgotYWVzX2h3X2NiY19l
bmNyeXB0OgotCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQotCW1vdglRV09S
RFsxNityc3BdLHJzaQotCW1vdglyYXgscnNwCi0kTCRTRUhfYmVnaW5fYWVzX2h3X2NiY19lbmNy
eXB0OgotCW1vdglyZGkscmN4Ci0JbW92CXJzaSxyZHgKLQltb3YJcmR4LHI4Ci0JbW92CXJjeCxy
OQotCW1vdglyOCxRV09SRFs0MCtyc3BdCi0JbW92CXI5LFFXT1JEWzQ4K3JzcF0KLQotCi0KLQl0
ZXN0CXJkeCxyZHgKLQlqeglORUFSICRMJGNiY19yZXQKLQotCW1vdglyMTBkLERXT1JEWzI0MCty
Y3hdCi0JbW92CXIxMSxyY3gKLQl0ZXN0CXI5ZCxyOWQKLQlqeglORUFSICRMJGNiY19kZWNyeXB0
Ci0KLQltb3Z1cHMJeG1tMixYTU1XT1JEW3I4XQotCW1vdgllYXgscjEwZAotCWNtcAlyZHgsMTYK
LQlqYglORUFSICRMJGNiY19lbmNfdGFpbAotCXN1YglyZHgsMTYKLQlqbXAJTkVBUiAkTCRjYmNf
ZW5jX2xvb3AKLUFMSUdOCTE2Ci0kTCRjYmNfZW5jX2xvb3A6Ci0JbW92dXBzCXhtbTMsWE1NV09S
RFtyZGldCi0JbGVhCXJkaSxbMTYrcmRpXQotCi0JbW92dXBzCXhtbTAsWE1NV09SRFtyY3hdCi0J
bW92dXBzCXhtbTEsWE1NV09SRFsxNityY3hdCi0JeG9ycHMJeG1tMyx4bW0wCi0JbGVhCXJjeCxb
MzIrcmN4XQotCXhvcnBzCXhtbTIseG1tMwotJEwkb29wX2VuYzFfMTU6Ci1EQgkxMDIsMTUsNTYs
MjIwLDIwOQotCWRlYwllYXgKLQltb3Z1cHMJeG1tMSxYTU1XT1JEW3JjeF0KLQlsZWEJcmN4LFsx
NityY3hdCi0Jam56CU5FQVIgJEwkb29wX2VuYzFfMTUKLURCCTEwMiwxNSw1NiwyMjEsMjA5Ci0J
bW92CWVheCxyMTBkCi0JbW92CXJjeCxyMTEKLQltb3Z1cHMJWE1NV09SRFtyc2ldLHhtbTIKLQls
ZWEJcnNpLFsxNityc2ldCi0Jc3ViCXJkeCwxNgotCWpuYwlORUFSICRMJGNiY19lbmNfbG9vcAot
CWFkZAlyZHgsMTYKLQlqbnoJTkVBUiAkTCRjYmNfZW5jX3RhaWwKLQlweG9yCXhtbTAseG1tMAot
CXB4b3IJeG1tMSx4bW0xCi0JbW92dXBzCVhNTVdPUkRbcjhdLHhtbTIKLQlweG9yCXhtbTIseG1t
MgotCXB4b3IJeG1tMyx4bW0zCi0Jam1wCU5FQVIgJEwkY2JjX3JldAorCW1vdglyY3gscjExCisJ
bW92dXBzCVhNTVdPUkRbcnNpXSx4bW0yCisJbGVhCXJzaSxbMTYrcnNpXQorCXN1YglyZHgsMTYK
KwlqbmMJTkVBUiAkTCRjYmNfZW5jX2xvb3AKKwlhZGQJcmR4LDE2CisJam56CU5FQVIgJEwkY2Jj
X2VuY190YWlsCisJcHhvcgl4bW0wLHhtbTAKKwlweG9yCXhtbTEseG1tMQorCW1vdnVwcwlYTU1X
T1JEW3I4XSx4bW0yCisJcHhvcgl4bW0yLHhtbTIKKwlweG9yCXhtbTMseG1tMworCWptcAlORUFS
ICRMJGNiY19yZXQKIAogJEwkY2JjX2VuY190YWlsOgogCW1vdglyY3gscmR4CkBAIC0zNzU4LDEy
ICsxNjE0LDEyIEBAICRMJGNiY19kZWNyeXB0OgogCW1vdnVwcwl4bW0xLFhNTVdPUkRbMTYrcmN4
XQogCWxlYQlyY3gsWzMyK3JjeF0KIAl4b3Jwcwl4bW0yLHhtbTAKLSRMJG9vcF9kZWMxXzE2Ogor
JEwkb29wX2RlYzFfNzoKIERCCTEwMiwxNSw1NiwyMjIsMjA5CiAJZGVjCXIxMGQKIAltb3Z1cHMJ
eG1tMSxYTU1XT1JEW3JjeF0KIAlsZWEJcmN4LFsxNityY3hdCi0Jam56CU5FQVIgJEwkb29wX2Rl
YzFfMTYKKwlqbnoJTkVBUiAkTCRvb3BfZGVjMV83CiBEQgkxMDIsMTUsNTYsMjIzLDIwOQogCXB4
b3IJeG1tMCx4bW0wCiAJcHhvcgl4bW0xLHhtbTEKQEAgLTQxODcsMTIgKzIwNDMsMTIgQEAgJEwk
Y2JjX2RlY19vbmU6CiAJbW92dXBzCXhtbTEsWE1NV09SRFsxNityY3hdCiAJbGVhCXJjeCxbMzIr
cmN4XQogCXhvcnBzCXhtbTIseG1tMAotJEwkb29wX2RlYzFfMTc6CiskTCRvb3BfZGVjMV84Ogog
REIJMTAyLDE1LDU2LDIyMiwyMDkKIAlkZWMJZWF4CiAJbW92dXBzCXhtbTEsWE1NV09SRFtyY3hd
CiAJbGVhCXJjeCxbMTYrcmN4XQotCWpueglORUFSICRMJG9vcF9kZWMxXzE3CisJam56CU5FQVIg
JEwkb29wX2RlYzFfOAogREIJMTAyLDE1LDU2LDIyMywyMDkKIAl4b3Jwcwl4bW0yLHhtbTEwCiAJ
bW92YXBzCXhtbTEwLHhtbTExCkBAIC00MzQ5LDYgKzIyMDUsMTEgQEAgQUxJR04JMTYKIGFlc19o
d19zZXRfZW5jcnlwdF9rZXk6CiBfX2Flc25pX3NldF9lbmNyeXB0X2tleToKIAorJWlmbmRlZiBO
REVCVUcKKyVpZm5kZWYgQk9SSU5HU1NMX0ZJUFMKKwltb3YJQllURVsoKEJPUklOR1NTTF9mdW5j
dGlvbl9oaXQrMykpXSwxCislZW5kaWYKKyVlbmRpZgogREIJMHg0OCwweDgzLDB4RUMsMHgwOAog
CiAJbW92CXJheCwtMQpAQCAtNDgzMSw2NCArMjY5Miw2IEBAIGN0cl94dHNfc2VfaGFuZGxlcjoK
IAogCiAKLUFMSUdOCTE2Ci1vY2Jfc2VfaGFuZGxlcjoKLQlwdXNoCXJzaQotCXB1c2gJcmRpCi0J
cHVzaAlyYngKLQlwdXNoCXJicAotCXB1c2gJcjEyCi0JcHVzaAlyMTMKLQlwdXNoCXIxNAotCXB1
c2gJcjE1Ci0JcHVzaGZxCi0Jc3ViCXJzcCw2NAotCi0JbW92CXJheCxRV09SRFsxMjArcjhdCi0J
bW92CXJieCxRV09SRFsyNDgrcjhdCi0KLQltb3YJcnNpLFFXT1JEWzgrcjldCi0JbW92CXIxMSxR
V09SRFs1NityOV0KLQotCW1vdglyMTBkLERXT1JEW3IxMV0KLQlsZWEJcjEwLFtyMTAqMStyc2ld
Ci0JY21wCXJieCxyMTAKLQlqYglORUFSICRMJGNvbW1vbl9zZWhfdGFpbAotCi0JbW92CXIxMGQs
RFdPUkRbNCtyMTFdCi0JbGVhCXIxMCxbcjEwKjErcnNpXQotCWNtcAlyYngscjEwCi0JamFlCU5F
QVIgJEwkY29tbW9uX3NlaF90YWlsCi0KLQltb3YJcjEwZCxEV09SRFs4K3IxMV0KLQlsZWEJcjEw
LFtyMTAqMStyc2ldCi0JY21wCXJieCxyMTAKLQlqYWUJTkVBUiAkTCRvY2Jfbm9feG1tCi0KLQlt
b3YJcmF4LFFXT1JEWzE1MityOF0KLQotCWxlYQlyc2ksW3JheF0KLQlsZWEJcmRpLFs1MTIrcjhd
Ci0JbW92CWVjeCwyMAotCURECTB4YTU0OGYzZmMKLQlsZWEJcmF4LFsoKDE2MCs0MCkpK3JheF0K
LQotJEwkb2NiX25vX3htbToKLQltb3YJcmJ4LFFXT1JEWygoLTgpKStyYXhdCi0JbW92CXJicCxR
V09SRFsoKC0xNikpK3JheF0KLQltb3YJcjEyLFFXT1JEWygoLTI0KSkrcmF4XQotCW1vdglyMTMs
UVdPUkRbKCgtMzIpKStyYXhdCi0JbW92CXIxNCxRV09SRFsoKC00MCkpK3JheF0KLQotCW1vdglR
V09SRFsxNDQrcjhdLHJieAotCW1vdglRV09SRFsxNjArcjhdLHJicAotCW1vdglRV09SRFsyMTYr
cjhdLHIxMgotCW1vdglRV09SRFsyMjQrcjhdLHIxMwotCW1vdglRV09SRFsyMzIrcjhdLHIxNAot
Ci0Jam1wCU5FQVIgJEwkY29tbW9uX3NlaF90YWlsCi0KLQogQUxJR04JMTYKIGNiY19zZV9oYW5k
bGVyOgogCXB1c2gJcnNpCkBAIC00OTc3LDMzICsyNzgwLDkgQEAgQUxJR04JNAogCURECSRMJFNF
SF9lbmRfYWVzX2h3X2VjYl9lbmNyeXB0IHdydCAuLmltYWdlYmFzZQogCURECSRMJFNFSF9pbmZv
X2VjYiB3cnQgLi5pbWFnZWJhc2UKIAotCURECSRMJFNFSF9iZWdpbl9hZXNfaHdfY2NtNjRfZW5j
cnlwdF9ibG9ja3Mgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwkU0VIX2VuZF9hZXNfaHdfY2NtNjRf
ZW5jcnlwdF9ibG9ja3Mgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwkU0VIX2luZm9fY2NtNjRfZW5j
IHdydCAuLmltYWdlYmFzZQotCi0JREQJJEwkU0VIX2JlZ2luX2Flc19od19jY202NF9kZWNyeXB0
X2Jsb2NrcyB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhfZW5kX2Flc19od19jY202NF9kZWNy
eXB0X2Jsb2NrcyB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhfaW5mb19jY202NF9kZWMgd3J0
IC4uaW1hZ2ViYXNlCi0KIAlERAkkTCRTRUhfYmVnaW5fYWVzX2h3X2N0cjMyX2VuY3J5cHRfYmxv
Y2tzIHdydCAuLmltYWdlYmFzZQogCURECSRMJFNFSF9lbmRfYWVzX2h3X2N0cjMyX2VuY3J5cHRf
YmxvY2tzIHdydCAuLmltYWdlYmFzZQogCURECSRMJFNFSF9pbmZvX2N0cjMyIHdydCAuLmltYWdl
YmFzZQotCi0JREQJJEwkU0VIX2JlZ2luX2Flc19od194dHNfZW5jcnlwdCB3cnQgLi5pbWFnZWJh
c2UKLQlERAkkTCRTRUhfZW5kX2Flc19od194dHNfZW5jcnlwdCB3cnQgLi5pbWFnZWJhc2UKLQlE
RAkkTCRTRUhfaW5mb194dHNfZW5jIHdydCAuLmltYWdlYmFzZQotCi0JREQJJEwkU0VIX2JlZ2lu
X2Flc19od194dHNfZGVjcnlwdCB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhfZW5kX2Flc19o
d194dHNfZGVjcnlwdCB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhfaW5mb194dHNfZGVjIHdy
dCAuLmltYWdlYmFzZQotCi0JREQJJEwkU0VIX2JlZ2luX2Flc19od19vY2JfZW5jcnlwdCB3cnQg
Li5pbWFnZWJhc2UKLQlERAkkTCRTRUhfZW5kX2Flc19od19vY2JfZW5jcnlwdCB3cnQgLi5pbWFn
ZWJhc2UKLQlERAkkTCRTRUhfaW5mb19vY2JfZW5jIHdydCAuLmltYWdlYmFzZQotCi0JREQJJEwk
U0VIX2JlZ2luX2Flc19od19vY2JfZGVjcnlwdCB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhf
ZW5kX2Flc19od19vY2JfZGVjcnlwdCB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhfaW5mb19v
Y2JfZGVjIHdydCAuLmltYWdlYmFzZQogCURECSRMJFNFSF9iZWdpbl9hZXNfaHdfY2JjX2VuY3J5
cHQgd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkU0VIX2VuZF9hZXNfaHdfY2JjX2VuY3J5cHQgd3J0
IC4uaW1hZ2ViYXNlCiAJREQJJEwkU0VIX2luZm9fY2JjIHdydCAuLmltYWdlYmFzZQpAQCAtNTAy
MSwzOCArMjgwMCwxMCBAQCAkTCRTRUhfaW5mb19lY2I6CiBEQgk5LDAsMCwwCiAJREQJZWNiX2Nj
bTY0X3NlX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkZWNiX2VuY19ib2R5IHdydCAu
LmltYWdlYmFzZSwkTCRlY2JfZW5jX3JldCB3cnQgLi5pbWFnZWJhc2UKLSRMJFNFSF9pbmZvX2Nj
bTY0X2VuYzoKLURCCTksMCwwLDAKLQlERAllY2JfY2NtNjRfc2VfaGFuZGxlciB3cnQgLi5pbWFn
ZWJhc2UKLQlERAkkTCRjY202NF9lbmNfYm9keSB3cnQgLi5pbWFnZWJhc2UsJEwkY2NtNjRfZW5j
X3JldCB3cnQgLi5pbWFnZWJhc2UKLSRMJFNFSF9pbmZvX2NjbTY0X2RlYzoKLURCCTksMCwwLDAK
LQlERAllY2JfY2NtNjRfc2VfaGFuZGxlciB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRjY202NF9k
ZWNfYm9keSB3cnQgLi5pbWFnZWJhc2UsJEwkY2NtNjRfZGVjX3JldCB3cnQgLi5pbWFnZWJhc2UK
ICRMJFNFSF9pbmZvX2N0cjMyOgogREIJOSwwLDAsMAogCURECWN0cl94dHNfc2VfaGFuZGxlciB3
cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRjdHIzMl9ib2R5IHdydCAuLmltYWdlYmFzZSwkTCRjdHIz
Ml9lcGlsb2d1ZSB3cnQgLi5pbWFnZWJhc2UKLSRMJFNFSF9pbmZvX3h0c19lbmM6Ci1EQgk5LDAs
MCwwCi0JREQJY3RyX3h0c19zZV9oYW5kbGVyIHdydCAuLmltYWdlYmFzZQotCURECSRMJHh0c19l
bmNfYm9keSB3cnQgLi5pbWFnZWJhc2UsJEwkeHRzX2VuY19lcGlsb2d1ZSB3cnQgLi5pbWFnZWJh
c2UKLSRMJFNFSF9pbmZvX3h0c19kZWM6Ci1EQgk5LDAsMCwwCi0JREQJY3RyX3h0c19zZV9oYW5k
bGVyIHdydCAuLmltYWdlYmFzZQotCURECSRMJHh0c19kZWNfYm9keSB3cnQgLi5pbWFnZWJhc2Us
JEwkeHRzX2RlY19lcGlsb2d1ZSB3cnQgLi5pbWFnZWJhc2UKLSRMJFNFSF9pbmZvX29jYl9lbmM6
Ci1EQgk5LDAsMCwwCi0JREQJb2NiX3NlX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwk
b2NiX2VuY19ib2R5IHdydCAuLmltYWdlYmFzZSwkTCRvY2JfZW5jX2VwaWxvZ3VlIHdydCAuLmlt
YWdlYmFzZQotCURECSRMJG9jYl9lbmNfcG9wIHdydCAuLmltYWdlYmFzZQotCURECTAKLSRMJFNF
SF9pbmZvX29jYl9kZWM6Ci1EQgk5LDAsMCwwCi0JREQJb2NiX3NlX2hhbmRsZXIgd3J0IC4uaW1h
Z2ViYXNlCi0JREQJJEwkb2NiX2RlY19ib2R5IHdydCAuLmltYWdlYmFzZSwkTCRvY2JfZGVjX2Vw
aWxvZ3VlIHdydCAuLmltYWdlYmFzZQotCURECSRMJG9jYl9kZWNfcG9wIHdydCAuLmltYWdlYmFz
ZQotCURECTAKICRMJFNFSF9pbmZvX2NiYzoKIERCCTksMCwwLDAKIAlERAljYmNfc2VfaGFuZGxl
ciB3cnQgLi5pbWFnZWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1
bGUvYnNhZXMteDg2XzY0LmFzbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvYnNhZXMt
eDg2XzY0LmFzbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RjMGM1YWNlMzQ5ODE3
YzVhMThkZTMyMzJlOTI1ODk1YTZmMGYzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL2JzYWVzLXg4Nl82
NC5hc20KKysrIC9kZXYvbnVsbApAQCAtMSwyODIyICswLDAgQEAKLTsgVGhpcyBmaWxlIGlzIGdl
bmVyYXRlZCBmcm9tIGEgc2ltaWxhcmx5LW5hbWVkIFBlcmwgc2NyaXB0IGluIHRoZSBCb3JpbmdT
U0wKLTsgc291cmNlIHRyZWUuIERvIG5vdCBlZGl0IGJ5IGhhbmQuCi0KLWRlZmF1bHQJcmVsCi0l
ZGVmaW5lIFhNTVdPUkQKLSVkZWZpbmUgWU1NV09SRAotJWRlZmluZSBaTU1XT1JECi0KLSVpZmRl
ZiBCT1JJTkdTU0xfUFJFRklYCi0laW5jbHVkZSAiYm9yaW5nc3NsX3ByZWZpeF9zeW1ib2xzX25h
c20uaW5jIgotJWVuZGlmCi1zZWN0aW9uCS50ZXh0IGNvZGUgYWxpZ249NjQKLQotCi1FWFRFUk4J
YWVzX25vaHdfZW5jcnlwdAotRVhURVJOCWFlc19ub2h3X2RlY3J5cHQKLQotCi1BTElHTgk2NAot
X2JzYWVzX2VuY3J5cHQ4OgotCWxlYQlyMTEsWyRMJEJTMF0KLQotCW1vdmRxYQl4bW04LFhNTVdP
UkRbcmF4XQotCWxlYQlyYXgsWzE2K3JheF0KLQltb3ZkcWEJeG1tNyxYTU1XT1JEWzgwK3IxMV0K
LQlweG9yCXhtbTE1LHhtbTgKLQlweG9yCXhtbTAseG1tOAotCXB4b3IJeG1tMSx4bW04Ci0JcHhv
cgl4bW0yLHhtbTgKLURCCTEwMiw2OCwxNSw1NiwwLDI1NQotREIJMTAyLDE1LDU2LDAsMTk5Ci0J
cHhvcgl4bW0zLHhtbTgKLQlweG9yCXhtbTQseG1tOAotREIJMTAyLDE1LDU2LDAsMjA3Ci1EQgkx
MDIsMTUsNTYsMCwyMTUKLQlweG9yCXhtbTUseG1tOAotCXB4b3IJeG1tNix4bW04Ci1EQgkxMDIs
MTUsNTYsMCwyMjMKLURCCTEwMiwxNSw1NiwwLDIzMQotREIJMTAyLDE1LDU2LDAsMjM5Ci1EQgkx
MDIsMTUsNTYsMCwyNDcKLV9ic2Flc19lbmNyeXB0OF9iaXRzbGljZToKLQltb3ZkcWEJeG1tNyxY
TU1XT1JEW3IxMV0KLQltb3ZkcWEJeG1tOCxYTU1XT1JEWzE2K3IxMV0KLQltb3ZkcWEJeG1tOSx4
bW01Ci0JcHNybHEJeG1tNSwxCi0JbW92ZHFhCXhtbTEwLHhtbTMKLQlwc3JscQl4bW0zLDEKLQlw
eG9yCXhtbTUseG1tNgotCXB4b3IJeG1tMyx4bW00Ci0JcGFuZAl4bW01LHhtbTcKLQlwYW5kCXht
bTMseG1tNwotCXB4b3IJeG1tNix4bW01Ci0JcHNsbHEJeG1tNSwxCi0JcHhvcgl4bW00LHhtbTMK
LQlwc2xscQl4bW0zLDEKLQlweG9yCXhtbTUseG1tOQotCXB4b3IJeG1tMyx4bW0xMAotCW1vdmRx
YQl4bW05LHhtbTEKLQlwc3JscQl4bW0xLDEKLQltb3ZkcWEJeG1tMTAseG1tMTUKLQlwc3JscQl4
bW0xNSwxCi0JcHhvcgl4bW0xLHhtbTIKLQlweG9yCXhtbTE1LHhtbTAKLQlwYW5kCXhtbTEseG1t
NwotCXBhbmQJeG1tMTUseG1tNwotCXB4b3IJeG1tMix4bW0xCi0JcHNsbHEJeG1tMSwxCi0JcHhv
cgl4bW0wLHhtbTE1Ci0JcHNsbHEJeG1tMTUsMQotCXB4b3IJeG1tMSx4bW05Ci0JcHhvcgl4bW0x
NSx4bW0xMAotCW1vdmRxYQl4bW03LFhNTVdPUkRbMzIrcjExXQotCW1vdmRxYQl4bW05LHhtbTQK
LQlwc3JscQl4bW00LDIKLQltb3ZkcWEJeG1tMTAseG1tMwotCXBzcmxxCXhtbTMsMgotCXB4b3IJ
eG1tNCx4bW02Ci0JcHhvcgl4bW0zLHhtbTUKLQlwYW5kCXhtbTQseG1tOAotCXBhbmQJeG1tMyx4
bW04Ci0JcHhvcgl4bW02LHhtbTQKLQlwc2xscQl4bW00LDIKLQlweG9yCXhtbTUseG1tMwotCXBz
bGxxCXhtbTMsMgotCXB4b3IJeG1tNCx4bW05Ci0JcHhvcgl4bW0zLHhtbTEwCi0JbW92ZHFhCXht
bTkseG1tMAotCXBzcmxxCXhtbTAsMgotCW1vdmRxYQl4bW0xMCx4bW0xNQotCXBzcmxxCXhtbTE1
LDIKLQlweG9yCXhtbTAseG1tMgotCXB4b3IJeG1tMTUseG1tMQotCXBhbmQJeG1tMCx4bW04Ci0J
cGFuZAl4bW0xNSx4bW04Ci0JcHhvcgl4bW0yLHhtbTAKLQlwc2xscQl4bW0wLDIKLQlweG9yCXht
bTEseG1tMTUKLQlwc2xscQl4bW0xNSwyCi0JcHhvcgl4bW0wLHhtbTkKLQlweG9yCXhtbTE1LHht
bTEwCi0JbW92ZHFhCXhtbTkseG1tMgotCXBzcmxxCXhtbTIsNAotCW1vdmRxYQl4bW0xMCx4bW0x
Ci0JcHNybHEJeG1tMSw0Ci0JcHhvcgl4bW0yLHhtbTYKLQlweG9yCXhtbTEseG1tNQotCXBhbmQJ
eG1tMix4bW03Ci0JcGFuZAl4bW0xLHhtbTcKLQlweG9yCXhtbTYseG1tMgotCXBzbGxxCXhtbTIs
NAotCXB4b3IJeG1tNSx4bW0xCi0JcHNsbHEJeG1tMSw0Ci0JcHhvcgl4bW0yLHhtbTkKLQlweG9y
CXhtbTEseG1tMTAKLQltb3ZkcWEJeG1tOSx4bW0wCi0JcHNybHEJeG1tMCw0Ci0JbW92ZHFhCXht
bTEwLHhtbTE1Ci0JcHNybHEJeG1tMTUsNAotCXB4b3IJeG1tMCx4bW00Ci0JcHhvcgl4bW0xNSx4
bW0zCi0JcGFuZAl4bW0wLHhtbTcKLQlwYW5kCXhtbTE1LHhtbTcKLQlweG9yCXhtbTQseG1tMAot
CXBzbGxxCXhtbTAsNAotCXB4b3IJeG1tMyx4bW0xNQotCXBzbGxxCXhtbTE1LDQKLQlweG9yCXht
bTAseG1tOQotCXB4b3IJeG1tMTUseG1tMTAKLQlkZWMJcjEwZAotCWptcAlORUFSICRMJGVuY19z
Ym94Ci1BTElHTgkxNgotJEwkZW5jX2xvb3A6Ci0JcHhvcgl4bW0xNSxYTU1XT1JEW3JheF0KLQlw
eG9yCXhtbTAsWE1NV09SRFsxNityYXhdCi0JcHhvcgl4bW0xLFhNTVdPUkRbMzIrcmF4XQotCXB4
b3IJeG1tMixYTU1XT1JEWzQ4K3JheF0KLURCCTEwMiw2OCwxNSw1NiwwLDI1NQotREIJMTAyLDE1
LDU2LDAsMTk5Ci0JcHhvcgl4bW0zLFhNTVdPUkRbNjQrcmF4XQotCXB4b3IJeG1tNCxYTU1XT1JE
WzgwK3JheF0KLURCCTEwMiwxNSw1NiwwLDIwNwotREIJMTAyLDE1LDU2LDAsMjE1Ci0JcHhvcgl4
bW01LFhNTVdPUkRbOTYrcmF4XQotCXB4b3IJeG1tNixYTU1XT1JEWzExMityYXhdCi1EQgkxMDIs
MTUsNTYsMCwyMjMKLURCCTEwMiwxNSw1NiwwLDIzMQotREIJMTAyLDE1LDU2LDAsMjM5Ci1EQgkx
MDIsMTUsNTYsMCwyNDcKLQlsZWEJcmF4LFsxMjgrcmF4XQotJEwkZW5jX3Nib3g6Ci0JcHhvcgl4
bW00LHhtbTUKLQlweG9yCXhtbTEseG1tMAotCXB4b3IJeG1tMix4bW0xNQotCXB4b3IJeG1tNSx4
bW0xCi0JcHhvcgl4bW00LHhtbTE1Ci0KLQlweG9yCXhtbTUseG1tMgotCXB4b3IJeG1tMix4bW02
Ci0JcHhvcgl4bW02LHhtbTQKLQlweG9yCXhtbTIseG1tMwotCXB4b3IJeG1tMyx4bW00Ci0JcHhv
cgl4bW0yLHhtbTAKLQotCXB4b3IJeG1tMSx4bW02Ci0JcHhvcgl4bW0wLHhtbTQKLQltb3ZkcWEJ
eG1tMTAseG1tNgotCW1vdmRxYQl4bW05LHhtbTAKLQltb3ZkcWEJeG1tOCx4bW00Ci0JbW92ZHFh
CXhtbTEyLHhtbTEKLQltb3ZkcWEJeG1tMTEseG1tNQotCi0JcHhvcgl4bW0xMCx4bW0zCi0JcHhv
cgl4bW05LHhtbTEKLQlweG9yCXhtbTgseG1tMgotCW1vdmRxYQl4bW0xMyx4bW0xMAotCXB4b3IJ
eG1tMTIseG1tMwotCW1vdmRxYQl4bW03LHhtbTkKLQlweG9yCXhtbTExLHhtbTE1Ci0JbW92ZHFh
CXhtbTE0LHhtbTEwCi0KLQlwb3IJeG1tOSx4bW04Ci0JcG9yCXhtbTEwLHhtbTExCi0JcHhvcgl4
bW0xNCx4bW03Ci0JcGFuZAl4bW0xMyx4bW0xMQotCXB4b3IJeG1tMTEseG1tOAotCXBhbmQJeG1t
Nyx4bW04Ci0JcGFuZAl4bW0xNCx4bW0xMQotCW1vdmRxYQl4bW0xMSx4bW0yCi0JcHhvcgl4bW0x
MSx4bW0xNQotCXBhbmQJeG1tMTIseG1tMTEKLQlweG9yCXhtbTEwLHhtbTEyCi0JcHhvcgl4bW05
LHhtbTEyCi0JbW92ZHFhCXhtbTEyLHhtbTYKLQltb3ZkcWEJeG1tMTEseG1tNAotCXB4b3IJeG1t
MTIseG1tMAotCXB4b3IJeG1tMTEseG1tNQotCW1vdmRxYQl4bW04LHhtbTEyCi0JcGFuZAl4bW0x
Mix4bW0xMQotCXBvcgl4bW04LHhtbTExCi0JcHhvcgl4bW03LHhtbTEyCi0JcHhvcgl4bW0xMCx4
bW0xNAotCXB4b3IJeG1tOSx4bW0xMwotCXB4b3IJeG1tOCx4bW0xNAotCW1vdmRxYQl4bW0xMSx4
bW0xCi0JcHhvcgl4bW03LHhtbTEzCi0JbW92ZHFhCXhtbTEyLHhtbTMKLQlweG9yCXhtbTgseG1t
MTMKLQltb3ZkcWEJeG1tMTMseG1tMAotCXBhbmQJeG1tMTEseG1tMgotCW1vdmRxYQl4bW0xNCx4
bW02Ci0JcGFuZAl4bW0xMix4bW0xNQotCXBhbmQJeG1tMTMseG1tNAotCXBvcgl4bW0xNCx4bW01
Ci0JcHhvcgl4bW0xMCx4bW0xMQotCXB4b3IJeG1tOSx4bW0xMgotCXB4b3IJeG1tOCx4bW0xMwot
CXB4b3IJeG1tNyx4bW0xNAotCi0KLQotCi0KLQltb3ZkcWEJeG1tMTEseG1tMTAKLQlwYW5kCXht
bTEwLHhtbTgKLQlweG9yCXhtbTExLHhtbTkKLQotCW1vdmRxYQl4bW0xMyx4bW03Ci0JbW92ZHFh
CXhtbTE0LHhtbTExCi0JcHhvcgl4bW0xMyx4bW0xMAotCXBhbmQJeG1tMTQseG1tMTMKLQotCW1v
dmRxYQl4bW0xMix4bW04Ci0JcHhvcgl4bW0xNCx4bW05Ci0JcHhvcgl4bW0xMix4bW03Ci0KLQlw
eG9yCXhtbTEwLHhtbTkKLQotCXBhbmQJeG1tMTIseG1tMTAKLQotCW1vdmRxYQl4bW05LHhtbTEz
Ci0JcHhvcgl4bW0xMix4bW03Ci0KLQlweG9yCXhtbTkseG1tMTIKLQlweG9yCXhtbTgseG1tMTIK
LQotCXBhbmQJeG1tOSx4bW03Ci0KLQlweG9yCXhtbTEzLHhtbTkKLQlweG9yCXhtbTgseG1tOQot
Ci0JcGFuZAl4bW0xMyx4bW0xNAotCi0JcHhvcgl4bW0xMyx4bW0xMQotCW1vdmRxYQl4bW0xMSx4
bW01Ci0JbW92ZHFhCXhtbTcseG1tNAotCW1vdmRxYQl4bW05LHhtbTE0Ci0JcHhvcgl4bW05LHht
bTEzCi0JcGFuZAl4bW05LHhtbTUKLQlweG9yCXhtbTUseG1tNAotCXBhbmQJeG1tNCx4bW0xNAot
CXBhbmQJeG1tNSx4bW0xMwotCXB4b3IJeG1tNSx4bW00Ci0JcHhvcgl4bW00LHhtbTkKLQlweG9y
CXhtbTExLHhtbTE1Ci0JcHhvcgl4bW03LHhtbTIKLQlweG9yCXhtbTE0LHhtbTEyCi0JcHhvcgl4
bW0xMyx4bW04Ci0JbW92ZHFhCXhtbTEwLHhtbTE0Ci0JbW92ZHFhCXhtbTkseG1tMTIKLQlweG9y
CXhtbTEwLHhtbTEzCi0JcHhvcgl4bW05LHhtbTgKLQlwYW5kCXhtbTEwLHhtbTExCi0JcGFuZAl4
bW05LHhtbTE1Ci0JcHhvcgl4bW0xMSx4bW03Ci0JcHhvcgl4bW0xNSx4bW0yCi0JcGFuZAl4bW03
LHhtbTE0Ci0JcGFuZAl4bW0yLHhtbTEyCi0JcGFuZAl4bW0xMSx4bW0xMwotCXBhbmQJeG1tMTUs
eG1tOAotCXB4b3IJeG1tNyx4bW0xMQotCXB4b3IJeG1tMTUseG1tMgotCXB4b3IJeG1tMTEseG1t
MTAKLQlweG9yCXhtbTIseG1tOQotCXB4b3IJeG1tNSx4bW0xMQotCXB4b3IJeG1tMTUseG1tMTEK
LQlweG9yCXhtbTQseG1tNwotCXB4b3IJeG1tMix4bW03Ci0KLQltb3ZkcWEJeG1tMTEseG1tNgot
CW1vdmRxYQl4bW03LHhtbTAKLQlweG9yCXhtbTExLHhtbTMKLQlweG9yCXhtbTcseG1tMQotCW1v
dmRxYQl4bW0xMCx4bW0xNAotCW1vdmRxYQl4bW05LHhtbTEyCi0JcHhvcgl4bW0xMCx4bW0xMwot
CXB4b3IJeG1tOSx4bW04Ci0JcGFuZAl4bW0xMCx4bW0xMQotCXBhbmQJeG1tOSx4bW0zCi0JcHhv
cgl4bW0xMSx4bW03Ci0JcHhvcgl4bW0zLHhtbTEKLQlwYW5kCXhtbTcseG1tMTQKLQlwYW5kCXht
bTEseG1tMTIKLQlwYW5kCXhtbTExLHhtbTEzCi0JcGFuZAl4bW0zLHhtbTgKLQlweG9yCXhtbTcs
eG1tMTEKLQlweG9yCXhtbTMseG1tMQotCXB4b3IJeG1tMTEseG1tMTAKLQlweG9yCXhtbTEseG1t
OQotCXB4b3IJeG1tMTQseG1tMTIKLQlweG9yCXhtbTEzLHhtbTgKLQltb3ZkcWEJeG1tMTAseG1t
MTQKLQlweG9yCXhtbTEwLHhtbTEzCi0JcGFuZAl4bW0xMCx4bW02Ci0JcHhvcgl4bW02LHhtbTAK
LQlwYW5kCXhtbTAseG1tMTQKLQlwYW5kCXhtbTYseG1tMTMKLQlweG9yCXhtbTYseG1tMAotCXB4
b3IJeG1tMCx4bW0xMAotCXB4b3IJeG1tNix4bW0xMQotCXB4b3IJeG1tMyx4bW0xMQotCXB4b3IJ
eG1tMCx4bW03Ci0JcHhvcgl4bW0xLHhtbTcKLQlweG9yCXhtbTYseG1tMTUKLQlweG9yCXhtbTAs
eG1tNQotCXB4b3IJeG1tMyx4bW02Ci0JcHhvcgl4bW01LHhtbTE1Ci0JcHhvcgl4bW0xNSx4bW0w
Ci0KLQlweG9yCXhtbTAseG1tNAotCXB4b3IJeG1tNCx4bW0xCi0JcHhvcgl4bW0xLHhtbTIKLQlw
eG9yCXhtbTIseG1tNAotCXB4b3IJeG1tMyx4bW00Ci0KLQlweG9yCXhtbTUseG1tMgotCWRlYwly
MTBkCi0JamwJTkVBUiAkTCRlbmNfZG9uZQotCXBzaHVmZAl4bW03LHhtbTE1LDB4OTMKLQlwc2h1
ZmQJeG1tOCx4bW0wLDB4OTMKLQlweG9yCXhtbTE1LHhtbTcKLQlwc2h1ZmQJeG1tOSx4bW0zLDB4
OTMKLQlweG9yCXhtbTAseG1tOAotCXBzaHVmZAl4bW0xMCx4bW01LDB4OTMKLQlweG9yCXhtbTMs
eG1tOQotCXBzaHVmZAl4bW0xMSx4bW0yLDB4OTMKLQlweG9yCXhtbTUseG1tMTAKLQlwc2h1ZmQJ
eG1tMTIseG1tNiwweDkzCi0JcHhvcgl4bW0yLHhtbTExCi0JcHNodWZkCXhtbTEzLHhtbTEsMHg5
MwotCXB4b3IJeG1tNix4bW0xMgotCXBzaHVmZAl4bW0xNCx4bW00LDB4OTMKLQlweG9yCXhtbTEs
eG1tMTMKLQlweG9yCXhtbTQseG1tMTQKLQotCXB4b3IJeG1tOCx4bW0xNQotCXB4b3IJeG1tNyx4
bW00Ci0JcHhvcgl4bW04LHhtbTQKLQlwc2h1ZmQJeG1tMTUseG1tMTUsMHg0RQotCXB4b3IJeG1t
OSx4bW0wCi0JcHNodWZkCXhtbTAseG1tMCwweDRFCi0JcHhvcgl4bW0xMix4bW0yCi0JcHhvcgl4
bW0xNSx4bW03Ci0JcHhvcgl4bW0xMyx4bW02Ci0JcHhvcgl4bW0wLHhtbTgKLQlweG9yCXhtbTEx
LHhtbTUKLQlwc2h1ZmQJeG1tNyx4bW0yLDB4NEUKLQlweG9yCXhtbTE0LHhtbTEKLQlwc2h1ZmQJ
eG1tOCx4bW02LDB4NEUKLQlweG9yCXhtbTEwLHhtbTMKLQlwc2h1ZmQJeG1tMix4bW01LDB4NEUK
LQlweG9yCXhtbTEwLHhtbTQKLQlwc2h1ZmQJeG1tNix4bW00LDB4NEUKLQlweG9yCXhtbTExLHht
bTQKLQlwc2h1ZmQJeG1tNSx4bW0xLDB4NEUKLQlweG9yCXhtbTcseG1tMTEKLQlwc2h1ZmQJeG1t
MSx4bW0zLDB4NEUKLQlweG9yCXhtbTgseG1tMTIKLQlweG9yCXhtbTIseG1tMTAKLQlweG9yCXht
bTYseG1tMTQKLQlweG9yCXhtbTUseG1tMTMKLQltb3ZkcWEJeG1tMyx4bW03Ci0JcHhvcgl4bW0x
LHhtbTkKLQltb3ZkcWEJeG1tNCx4bW04Ci0JbW92ZHFhCXhtbTcsWE1NV09SRFs0OCtyMTFdCi0J
am56CU5FQVIgJEwkZW5jX2xvb3AKLQltb3ZkcWEJeG1tNyxYTU1XT1JEWzY0K3IxMV0KLQlqbXAJ
TkVBUiAkTCRlbmNfbG9vcAotQUxJR04JMTYKLSRMJGVuY19kb25lOgotCW1vdmRxYQl4bW03LFhN
TVdPUkRbcjExXQotCW1vdmRxYQl4bW04LFhNTVdPUkRbMTYrcjExXQotCW1vdmRxYQl4bW05LHht
bTEKLQlwc3JscQl4bW0xLDEKLQltb3ZkcWEJeG1tMTAseG1tMgotCXBzcmxxCXhtbTIsMQotCXB4
b3IJeG1tMSx4bW00Ci0JcHhvcgl4bW0yLHhtbTYKLQlwYW5kCXhtbTEseG1tNwotCXBhbmQJeG1t
Mix4bW03Ci0JcHhvcgl4bW00LHhtbTEKLQlwc2xscQl4bW0xLDEKLQlweG9yCXhtbTYseG1tMgot
CXBzbGxxCXhtbTIsMQotCXB4b3IJeG1tMSx4bW05Ci0JcHhvcgl4bW0yLHhtbTEwCi0JbW92ZHFh
CXhtbTkseG1tMwotCXBzcmxxCXhtbTMsMQotCW1vdmRxYQl4bW0xMCx4bW0xNQotCXBzcmxxCXht
bTE1LDEKLQlweG9yCXhtbTMseG1tNQotCXB4b3IJeG1tMTUseG1tMAotCXBhbmQJeG1tMyx4bW03
Ci0JcGFuZAl4bW0xNSx4bW03Ci0JcHhvcgl4bW01LHhtbTMKLQlwc2xscQl4bW0zLDEKLQlweG9y
CXhtbTAseG1tMTUKLQlwc2xscQl4bW0xNSwxCi0JcHhvcgl4bW0zLHhtbTkKLQlweG9yCXhtbTE1
LHhtbTEwCi0JbW92ZHFhCXhtbTcsWE1NV09SRFszMityMTFdCi0JbW92ZHFhCXhtbTkseG1tNgot
CXBzcmxxCXhtbTYsMgotCW1vdmRxYQl4bW0xMCx4bW0yCi0JcHNybHEJeG1tMiwyCi0JcHhvcgl4
bW02LHhtbTQKLQlweG9yCXhtbTIseG1tMQotCXBhbmQJeG1tNix4bW04Ci0JcGFuZAl4bW0yLHht
bTgKLQlweG9yCXhtbTQseG1tNgotCXBzbGxxCXhtbTYsMgotCXB4b3IJeG1tMSx4bW0yCi0JcHNs
bHEJeG1tMiwyCi0JcHhvcgl4bW02LHhtbTkKLQlweG9yCXhtbTIseG1tMTAKLQltb3ZkcWEJeG1t
OSx4bW0wCi0JcHNybHEJeG1tMCwyCi0JbW92ZHFhCXhtbTEwLHhtbTE1Ci0JcHNybHEJeG1tMTUs
MgotCXB4b3IJeG1tMCx4bW01Ci0JcHhvcgl4bW0xNSx4bW0zCi0JcGFuZAl4bW0wLHhtbTgKLQlw
YW5kCXhtbTE1LHhtbTgKLQlweG9yCXhtbTUseG1tMAotCXBzbGxxCXhtbTAsMgotCXB4b3IJeG1t
Myx4bW0xNQotCXBzbGxxCXhtbTE1LDIKLQlweG9yCXhtbTAseG1tOQotCXB4b3IJeG1tMTUseG1t
MTAKLQltb3ZkcWEJeG1tOSx4bW01Ci0JcHNybHEJeG1tNSw0Ci0JbW92ZHFhCXhtbTEwLHhtbTMK
LQlwc3JscQl4bW0zLDQKLQlweG9yCXhtbTUseG1tNAotCXB4b3IJeG1tMyx4bW0xCi0JcGFuZAl4
bW01LHhtbTcKLQlwYW5kCXhtbTMseG1tNwotCXB4b3IJeG1tNCx4bW01Ci0JcHNsbHEJeG1tNSw0
Ci0JcHhvcgl4bW0xLHhtbTMKLQlwc2xscQl4bW0zLDQKLQlweG9yCXhtbTUseG1tOQotCXB4b3IJ
eG1tMyx4bW0xMAotCW1vdmRxYQl4bW05LHhtbTAKLQlwc3JscQl4bW0wLDQKLQltb3ZkcWEJeG1t
MTAseG1tMTUKLQlwc3JscQl4bW0xNSw0Ci0JcHhvcgl4bW0wLHhtbTYKLQlweG9yCXhtbTE1LHht
bTIKLQlwYW5kCXhtbTAseG1tNwotCXBhbmQJeG1tMTUseG1tNwotCXB4b3IJeG1tNix4bW0wCi0J
cHNsbHEJeG1tMCw0Ci0JcHhvcgl4bW0yLHhtbTE1Ci0JcHNsbHEJeG1tMTUsNAotCXB4b3IJeG1t
MCx4bW05Ci0JcHhvcgl4bW0xNSx4bW0xMAotCW1vdmRxYQl4bW03LFhNTVdPUkRbcmF4XQotCXB4
b3IJeG1tMyx4bW03Ci0JcHhvcgl4bW01LHhtbTcKLQlweG9yCXhtbTIseG1tNwotCXB4b3IJeG1t
Nix4bW03Ci0JcHhvcgl4bW0xLHhtbTcKLQlweG9yCXhtbTQseG1tNwotCXB4b3IJeG1tMTUseG1t
NwotCXB4b3IJeG1tMCx4bW03Ci0JREIJMEYzaCwwQzNoCQk7cmVwcmV0Ci0KLQotCi1BTElHTgk2
NAotX2JzYWVzX2RlY3J5cHQ4OgotCWxlYQlyMTEsWyRMJEJTMF0KLQotCW1vdmRxYQl4bW04LFhN
TVdPUkRbcmF4XQotCWxlYQlyYXgsWzE2K3JheF0KLQltb3ZkcWEJeG1tNyxYTU1XT1JEWygoLTQ4
KSkrcjExXQotCXB4b3IJeG1tMTUseG1tOAotCXB4b3IJeG1tMCx4bW04Ci0JcHhvcgl4bW0xLHht
bTgKLQlweG9yCXhtbTIseG1tOAotREIJMTAyLDY4LDE1LDU2LDAsMjU1Ci1EQgkxMDIsMTUsNTYs
MCwxOTkKLQlweG9yCXhtbTMseG1tOAotCXB4b3IJeG1tNCx4bW04Ci1EQgkxMDIsMTUsNTYsMCwy
MDcKLURCCTEwMiwxNSw1NiwwLDIxNQotCXB4b3IJeG1tNSx4bW04Ci0JcHhvcgl4bW02LHhtbTgK
LURCCTEwMiwxNSw1NiwwLDIyMwotREIJMTAyLDE1LDU2LDAsMjMxCi1EQgkxMDIsMTUsNTYsMCwy
MzkKLURCCTEwMiwxNSw1NiwwLDI0NwotCW1vdmRxYQl4bW03LFhNTVdPUkRbcjExXQotCW1vdmRx
YQl4bW04LFhNTVdPUkRbMTYrcjExXQotCW1vdmRxYQl4bW05LHhtbTUKLQlwc3JscQl4bW01LDEK
LQltb3ZkcWEJeG1tMTAseG1tMwotCXBzcmxxCXhtbTMsMQotCXB4b3IJeG1tNSx4bW02Ci0JcHhv
cgl4bW0zLHhtbTQKLQlwYW5kCXhtbTUseG1tNwotCXBhbmQJeG1tMyx4bW03Ci0JcHhvcgl4bW02
LHhtbTUKLQlwc2xscQl4bW01LDEKLQlweG9yCXhtbTQseG1tMwotCXBzbGxxCXhtbTMsMQotCXB4
b3IJeG1tNSx4bW05Ci0JcHhvcgl4bW0zLHhtbTEwCi0JbW92ZHFhCXhtbTkseG1tMQotCXBzcmxx
CXhtbTEsMQotCW1vdmRxYQl4bW0xMCx4bW0xNQotCXBzcmxxCXhtbTE1LDEKLQlweG9yCXhtbTEs
eG1tMgotCXB4b3IJeG1tMTUseG1tMAotCXBhbmQJeG1tMSx4bW03Ci0JcGFuZAl4bW0xNSx4bW03
Ci0JcHhvcgl4bW0yLHhtbTEKLQlwc2xscQl4bW0xLDEKLQlweG9yCXhtbTAseG1tMTUKLQlwc2xs
cQl4bW0xNSwxCi0JcHhvcgl4bW0xLHhtbTkKLQlweG9yCXhtbTE1LHhtbTEwCi0JbW92ZHFhCXht
bTcsWE1NV09SRFszMityMTFdCi0JbW92ZHFhCXhtbTkseG1tNAotCXBzcmxxCXhtbTQsMgotCW1v
dmRxYQl4bW0xMCx4bW0zCi0JcHNybHEJeG1tMywyCi0JcHhvcgl4bW00LHhtbTYKLQlweG9yCXht
bTMseG1tNQotCXBhbmQJeG1tNCx4bW04Ci0JcGFuZAl4bW0zLHhtbTgKLQlweG9yCXhtbTYseG1t
NAotCXBzbGxxCXhtbTQsMgotCXB4b3IJeG1tNSx4bW0zCi0JcHNsbHEJeG1tMywyCi0JcHhvcgl4
bW00LHhtbTkKLQlweG9yCXhtbTMseG1tMTAKLQltb3ZkcWEJeG1tOSx4bW0wCi0JcHNybHEJeG1t
MCwyCi0JbW92ZHFhCXhtbTEwLHhtbTE1Ci0JcHNybHEJeG1tMTUsMgotCXB4b3IJeG1tMCx4bW0y
Ci0JcHhvcgl4bW0xNSx4bW0xCi0JcGFuZAl4bW0wLHhtbTgKLQlwYW5kCXhtbTE1LHhtbTgKLQlw
eG9yCXhtbTIseG1tMAotCXBzbGxxCXhtbTAsMgotCXB4b3IJeG1tMSx4bW0xNQotCXBzbGxxCXht
bTE1LDIKLQlweG9yCXhtbTAseG1tOQotCXB4b3IJeG1tMTUseG1tMTAKLQltb3ZkcWEJeG1tOSx4
bW0yCi0JcHNybHEJeG1tMiw0Ci0JbW92ZHFhCXhtbTEwLHhtbTEKLQlwc3JscQl4bW0xLDQKLQlw
eG9yCXhtbTIseG1tNgotCXB4b3IJeG1tMSx4bW01Ci0JcGFuZAl4bW0yLHhtbTcKLQlwYW5kCXht
bTEseG1tNwotCXB4b3IJeG1tNix4bW0yCi0JcHNsbHEJeG1tMiw0Ci0JcHhvcgl4bW01LHhtbTEK
LQlwc2xscQl4bW0xLDQKLQlweG9yCXhtbTIseG1tOQotCXB4b3IJeG1tMSx4bW0xMAotCW1vdmRx
YQl4bW05LHhtbTAKLQlwc3JscQl4bW0wLDQKLQltb3ZkcWEJeG1tMTAseG1tMTUKLQlwc3JscQl4
bW0xNSw0Ci0JcHhvcgl4bW0wLHhtbTQKLQlweG9yCXhtbTE1LHhtbTMKLQlwYW5kCXhtbTAseG1t
NwotCXBhbmQJeG1tMTUseG1tNwotCXB4b3IJeG1tNCx4bW0wCi0JcHNsbHEJeG1tMCw0Ci0JcHhv
cgl4bW0zLHhtbTE1Ci0JcHNsbHEJeG1tMTUsNAotCXB4b3IJeG1tMCx4bW05Ci0JcHhvcgl4bW0x
NSx4bW0xMAotCWRlYwlyMTBkCi0Jam1wCU5FQVIgJEwkZGVjX3Nib3gKLUFMSUdOCTE2Ci0kTCRk
ZWNfbG9vcDoKLQlweG9yCXhtbTE1LFhNTVdPUkRbcmF4XQotCXB4b3IJeG1tMCxYTU1XT1JEWzE2
K3JheF0KLQlweG9yCXhtbTEsWE1NV09SRFszMityYXhdCi0JcHhvcgl4bW0yLFhNTVdPUkRbNDgr
cmF4XQotREIJMTAyLDY4LDE1LDU2LDAsMjU1Ci1EQgkxMDIsMTUsNTYsMCwxOTkKLQlweG9yCXht
bTMsWE1NV09SRFs2NCtyYXhdCi0JcHhvcgl4bW00LFhNTVdPUkRbODArcmF4XQotREIJMTAyLDE1
LDU2LDAsMjA3Ci1EQgkxMDIsMTUsNTYsMCwyMTUKLQlweG9yCXhtbTUsWE1NV09SRFs5NityYXhd
Ci0JcHhvcgl4bW02LFhNTVdPUkRbMTEyK3JheF0KLURCCTEwMiwxNSw1NiwwLDIyMwotREIJMTAy
LDE1LDU2LDAsMjMxCi1EQgkxMDIsMTUsNTYsMCwyMzkKLURCCTEwMiwxNSw1NiwwLDI0NwotCWxl
YQlyYXgsWzEyOCtyYXhdCi0kTCRkZWNfc2JveDoKLQlweG9yCXhtbTIseG1tMwotCi0JcHhvcgl4
bW0zLHhtbTYKLQlweG9yCXhtbTEseG1tNgotCXB4b3IJeG1tNSx4bW0zCi0JcHhvcgl4bW02LHht
bTUKLQlweG9yCXhtbTAseG1tNgotCi0JcHhvcgl4bW0xNSx4bW0wCi0JcHhvcgl4bW0xLHhtbTQK
LQlweG9yCXhtbTIseG1tMTUKLQlweG9yCXhtbTQseG1tMTUKLQlweG9yCXhtbTAseG1tMgotCW1v
dmRxYQl4bW0xMCx4bW0yCi0JbW92ZHFhCXhtbTkseG1tNgotCW1vdmRxYQl4bW04LHhtbTAKLQlt
b3ZkcWEJeG1tMTIseG1tMwotCW1vdmRxYQl4bW0xMSx4bW00Ci0KLQlweG9yCXhtbTEwLHhtbTE1
Ci0JcHhvcgl4bW05LHhtbTMKLQlweG9yCXhtbTgseG1tNQotCW1vdmRxYQl4bW0xMyx4bW0xMAot
CXB4b3IJeG1tMTIseG1tMTUKLQltb3ZkcWEJeG1tNyx4bW05Ci0JcHhvcgl4bW0xMSx4bW0xCi0J
bW92ZHFhCXhtbTE0LHhtbTEwCi0KLQlwb3IJeG1tOSx4bW04Ci0JcG9yCXhtbTEwLHhtbTExCi0J
cHhvcgl4bW0xNCx4bW03Ci0JcGFuZAl4bW0xMyx4bW0xMQotCXB4b3IJeG1tMTEseG1tOAotCXBh
bmQJeG1tNyx4bW04Ci0JcGFuZAl4bW0xNCx4bW0xMQotCW1vdmRxYQl4bW0xMSx4bW01Ci0JcHhv
cgl4bW0xMSx4bW0xCi0JcGFuZAl4bW0xMix4bW0xMQotCXB4b3IJeG1tMTAseG1tMTIKLQlweG9y
CXhtbTkseG1tMTIKLQltb3ZkcWEJeG1tMTIseG1tMgotCW1vdmRxYQl4bW0xMSx4bW0wCi0JcHhv
cgl4bW0xMix4bW02Ci0JcHhvcgl4bW0xMSx4bW00Ci0JbW92ZHFhCXhtbTgseG1tMTIKLQlwYW5k
CXhtbTEyLHhtbTExCi0JcG9yCXhtbTgseG1tMTEKLQlweG9yCXhtbTcseG1tMTIKLQlweG9yCXht
bTEwLHhtbTE0Ci0JcHhvcgl4bW05LHhtbTEzCi0JcHhvcgl4bW04LHhtbTE0Ci0JbW92ZHFhCXht
bTExLHhtbTMKLQlweG9yCXhtbTcseG1tMTMKLQltb3ZkcWEJeG1tMTIseG1tMTUKLQlweG9yCXht
bTgseG1tMTMKLQltb3ZkcWEJeG1tMTMseG1tNgotCXBhbmQJeG1tMTEseG1tNQotCW1vdmRxYQl4
bW0xNCx4bW0yCi0JcGFuZAl4bW0xMix4bW0xCi0JcGFuZAl4bW0xMyx4bW0wCi0JcG9yCXhtbTE0
LHhtbTQKLQlweG9yCXhtbTEwLHhtbTExCi0JcHhvcgl4bW05LHhtbTEyCi0JcHhvcgl4bW04LHht
bTEzCi0JcHhvcgl4bW03LHhtbTE0Ci0KLQotCi0KLQotCW1vdmRxYQl4bW0xMSx4bW0xMAotCXBh
bmQJeG1tMTAseG1tOAotCXB4b3IJeG1tMTEseG1tOQotCi0JbW92ZHFhCXhtbTEzLHhtbTcKLQlt
b3ZkcWEJeG1tMTQseG1tMTEKLQlweG9yCXhtbTEzLHhtbTEwCi0JcGFuZAl4bW0xNCx4bW0xMwot
Ci0JbW92ZHFhCXhtbTEyLHhtbTgKLQlweG9yCXhtbTE0LHhtbTkKLQlweG9yCXhtbTEyLHhtbTcK
LQotCXB4b3IJeG1tMTAseG1tOQotCi0JcGFuZAl4bW0xMix4bW0xMAotCi0JbW92ZHFhCXhtbTks
eG1tMTMKLQlweG9yCXhtbTEyLHhtbTcKLQotCXB4b3IJeG1tOSx4bW0xMgotCXB4b3IJeG1tOCx4
bW0xMgotCi0JcGFuZAl4bW05LHhtbTcKLQotCXB4b3IJeG1tMTMseG1tOQotCXB4b3IJeG1tOCx4
bW05Ci0KLQlwYW5kCXhtbTEzLHhtbTE0Ci0KLQlweG9yCXhtbTEzLHhtbTExCi0JbW92ZHFhCXht
bTExLHhtbTQKLQltb3ZkcWEJeG1tNyx4bW0wCi0JbW92ZHFhCXhtbTkseG1tMTQKLQlweG9yCXht
bTkseG1tMTMKLQlwYW5kCXhtbTkseG1tNAotCXB4b3IJeG1tNCx4bW0wCi0JcGFuZAl4bW0wLHht
bTE0Ci0JcGFuZAl4bW00LHhtbTEzCi0JcHhvcgl4bW00LHhtbTAKLQlweG9yCXhtbTAseG1tOQot
CXB4b3IJeG1tMTEseG1tMQotCXB4b3IJeG1tNyx4bW01Ci0JcHhvcgl4bW0xNCx4bW0xMgotCXB4
b3IJeG1tMTMseG1tOAotCW1vdmRxYQl4bW0xMCx4bW0xNAotCW1vdmRxYQl4bW05LHhtbTEyCi0J
cHhvcgl4bW0xMCx4bW0xMwotCXB4b3IJeG1tOSx4bW04Ci0JcGFuZAl4bW0xMCx4bW0xMQotCXBh
bmQJeG1tOSx4bW0xCi0JcHhvcgl4bW0xMSx4bW03Ci0JcHhvcgl4bW0xLHhtbTUKLQlwYW5kCXht
bTcseG1tMTQKLQlwYW5kCXhtbTUseG1tMTIKLQlwYW5kCXhtbTExLHhtbTEzCi0JcGFuZAl4bW0x
LHhtbTgKLQlweG9yCXhtbTcseG1tMTEKLQlweG9yCXhtbTEseG1tNQotCXB4b3IJeG1tMTEseG1t
MTAKLQlweG9yCXhtbTUseG1tOQotCXB4b3IJeG1tNCx4bW0xMQotCXB4b3IJeG1tMSx4bW0xMQot
CXB4b3IJeG1tMCx4bW03Ci0JcHhvcgl4bW01LHhtbTcKLQotCW1vdmRxYQl4bW0xMSx4bW0yCi0J
bW92ZHFhCXhtbTcseG1tNgotCXB4b3IJeG1tMTEseG1tMTUKLQlweG9yCXhtbTcseG1tMwotCW1v
dmRxYQl4bW0xMCx4bW0xNAotCW1vdmRxYQl4bW05LHhtbTEyCi0JcHhvcgl4bW0xMCx4bW0xMwot
CXB4b3IJeG1tOSx4bW04Ci0JcGFuZAl4bW0xMCx4bW0xMQotCXBhbmQJeG1tOSx4bW0xNQotCXB4
b3IJeG1tMTEseG1tNwotCXB4b3IJeG1tMTUseG1tMwotCXBhbmQJeG1tNyx4bW0xNAotCXBhbmQJ
eG1tMyx4bW0xMgotCXBhbmQJeG1tMTEseG1tMTMKLQlwYW5kCXhtbTE1LHhtbTgKLQlweG9yCXht
bTcseG1tMTEKLQlweG9yCXhtbTE1LHhtbTMKLQlweG9yCXhtbTExLHhtbTEwCi0JcHhvcgl4bW0z
LHhtbTkKLQlweG9yCXhtbTE0LHhtbTEyCi0JcHhvcgl4bW0xMyx4bW04Ci0JbW92ZHFhCXhtbTEw
LHhtbTE0Ci0JcHhvcgl4bW0xMCx4bW0xMwotCXBhbmQJeG1tMTAseG1tMgotCXB4b3IJeG1tMix4
bW02Ci0JcGFuZAl4bW02LHhtbTE0Ci0JcGFuZAl4bW0yLHhtbTEzCi0JcHhvcgl4bW0yLHhtbTYK
LQlweG9yCXhtbTYseG1tMTAKLQlweG9yCXhtbTIseG1tMTEKLQlweG9yCXhtbTE1LHhtbTExCi0J
cHhvcgl4bW02LHhtbTcKLQlweG9yCXhtbTMseG1tNwotCXB4b3IJeG1tMCx4bW02Ci0JcHhvcgl4
bW01LHhtbTQKLQotCXB4b3IJeG1tMyx4bW0wCi0JcHhvcgl4bW0xLHhtbTYKLQlweG9yCXhtbTQs
eG1tNgotCXB4b3IJeG1tMyx4bW0xCi0JcHhvcgl4bW02LHhtbTE1Ci0JcHhvcgl4bW0zLHhtbTQK
LQlweG9yCXhtbTIseG1tNQotCXB4b3IJeG1tNSx4bW0wCi0JcHhvcgl4bW0yLHhtbTMKLQotCXB4
b3IJeG1tMyx4bW0xNQotCXB4b3IJeG1tNix4bW0yCi0JZGVjCXIxMGQKLQlqbAlORUFSICRMJGRl
Y19kb25lCi0KLQlwc2h1ZmQJeG1tNyx4bW0xNSwweDRFCi0JcHNodWZkCXhtbTEzLHhtbTIsMHg0
RQotCXB4b3IJeG1tNyx4bW0xNQotCXBzaHVmZAl4bW0xNCx4bW00LDB4NEUKLQlweG9yCXhtbTEz
LHhtbTIKLQlwc2h1ZmQJeG1tOCx4bW0wLDB4NEUKLQlweG9yCXhtbTE0LHhtbTQKLQlwc2h1ZmQJ
eG1tOSx4bW01LDB4NEUKLQlweG9yCXhtbTgseG1tMAotCXBzaHVmZAl4bW0xMCx4bW0zLDB4NEUK
LQlweG9yCXhtbTkseG1tNQotCXB4b3IJeG1tMTUseG1tMTMKLQlweG9yCXhtbTAseG1tMTMKLQlw
c2h1ZmQJeG1tMTEseG1tMSwweDRFCi0JcHhvcgl4bW0xMCx4bW0zCi0JcHhvcgl4bW01LHhtbTcK
LQlweG9yCXhtbTMseG1tOAotCXBzaHVmZAl4bW0xMix4bW02LDB4NEUKLQlweG9yCXhtbTExLHht
bTEKLQlweG9yCXhtbTAseG1tMTQKLQlweG9yCXhtbTEseG1tOQotCXB4b3IJeG1tMTIseG1tNgot
Ci0JcHhvcgl4bW01LHhtbTE0Ci0JcHhvcgl4bW0zLHhtbTEzCi0JcHhvcgl4bW0xLHhtbTEzCi0J
cHhvcgl4bW02LHhtbTEwCi0JcHhvcgl4bW0yLHhtbTExCi0JcHhvcgl4bW0xLHhtbTE0Ci0JcHhv
cgl4bW02LHhtbTE0Ci0JcHhvcgl4bW00LHhtbTEyCi0JcHNodWZkCXhtbTcseG1tMTUsMHg5Mwot
CXBzaHVmZAl4bW04LHhtbTAsMHg5MwotCXB4b3IJeG1tMTUseG1tNwotCXBzaHVmZAl4bW05LHht
bTUsMHg5MwotCXB4b3IJeG1tMCx4bW04Ci0JcHNodWZkCXhtbTEwLHhtbTMsMHg5MwotCXB4b3IJ
eG1tNSx4bW05Ci0JcHNodWZkCXhtbTExLHhtbTEsMHg5MwotCXB4b3IJeG1tMyx4bW0xMAotCXBz
aHVmZAl4bW0xMix4bW02LDB4OTMKLQlweG9yCXhtbTEseG1tMTEKLQlwc2h1ZmQJeG1tMTMseG1t
MiwweDkzCi0JcHhvcgl4bW02LHhtbTEyCi0JcHNodWZkCXhtbTE0LHhtbTQsMHg5MwotCXB4b3IJ
eG1tMix4bW0xMwotCXB4b3IJeG1tNCx4bW0xNAotCi0JcHhvcgl4bW04LHhtbTE1Ci0JcHhvcgl4
bW03LHhtbTQKLQlweG9yCXhtbTgseG1tNAotCXBzaHVmZAl4bW0xNSx4bW0xNSwweDRFCi0JcHhv
cgl4bW05LHhtbTAKLQlwc2h1ZmQJeG1tMCx4bW0wLDB4NEUKLQlweG9yCXhtbTEyLHhtbTEKLQlw
eG9yCXhtbTE1LHhtbTcKLQlweG9yCXhtbTEzLHhtbTYKLQlweG9yCXhtbTAseG1tOAotCXB4b3IJ
eG1tMTEseG1tMwotCXBzaHVmZAl4bW03LHhtbTEsMHg0RQotCXB4b3IJeG1tMTQseG1tMgotCXBz
aHVmZAl4bW04LHhtbTYsMHg0RQotCXB4b3IJeG1tMTAseG1tNQotCXBzaHVmZAl4bW0xLHhtbTMs
MHg0RQotCXB4b3IJeG1tMTAseG1tNAotCXBzaHVmZAl4bW02LHhtbTQsMHg0RQotCXB4b3IJeG1t
MTEseG1tNAotCXBzaHVmZAl4bW0zLHhtbTIsMHg0RQotCXB4b3IJeG1tNyx4bW0xMQotCXBzaHVm
ZAl4bW0yLHhtbTUsMHg0RQotCXB4b3IJeG1tOCx4bW0xMgotCXB4b3IJeG1tMTAseG1tMQotCXB4
b3IJeG1tNix4bW0xNAotCXB4b3IJeG1tMTMseG1tMwotCW1vdmRxYQl4bW0zLHhtbTcKLQlweG9y
CXhtbTIseG1tOQotCW1vdmRxYQl4bW01LHhtbTEzCi0JbW92ZHFhCXhtbTQseG1tOAotCW1vdmRx
YQl4bW0xLHhtbTIKLQltb3ZkcWEJeG1tMix4bW0xMAotCW1vdmRxYQl4bW03LFhNTVdPUkRbKCgt
MTYpKStyMTFdCi0Jam56CU5FQVIgJEwkZGVjX2xvb3AKLQltb3ZkcWEJeG1tNyxYTU1XT1JEWygo
LTMyKSkrcjExXQotCWptcAlORUFSICRMJGRlY19sb29wCi1BTElHTgkxNgotJEwkZGVjX2RvbmU6
Ci0JbW92ZHFhCXhtbTcsWE1NV09SRFtyMTFdCi0JbW92ZHFhCXhtbTgsWE1NV09SRFsxNityMTFd
Ci0JbW92ZHFhCXhtbTkseG1tMgotCXBzcmxxCXhtbTIsMQotCW1vdmRxYQl4bW0xMCx4bW0xCi0J
cHNybHEJeG1tMSwxCi0JcHhvcgl4bW0yLHhtbTQKLQlweG9yCXhtbTEseG1tNgotCXBhbmQJeG1t
Mix4bW03Ci0JcGFuZAl4bW0xLHhtbTcKLQlweG9yCXhtbTQseG1tMgotCXBzbGxxCXhtbTIsMQot
CXB4b3IJeG1tNix4bW0xCi0JcHNsbHEJeG1tMSwxCi0JcHhvcgl4bW0yLHhtbTkKLQlweG9yCXht
bTEseG1tMTAKLQltb3ZkcWEJeG1tOSx4bW01Ci0JcHNybHEJeG1tNSwxCi0JbW92ZHFhCXhtbTEw
LHhtbTE1Ci0JcHNybHEJeG1tMTUsMQotCXB4b3IJeG1tNSx4bW0zCi0JcHhvcgl4bW0xNSx4bW0w
Ci0JcGFuZAl4bW01LHhtbTcKLQlwYW5kCXhtbTE1LHhtbTcKLQlweG9yCXhtbTMseG1tNQotCXBz
bGxxCXhtbTUsMQotCXB4b3IJeG1tMCx4bW0xNQotCXBzbGxxCXhtbTE1LDEKLQlweG9yCXhtbTUs
eG1tOQotCXB4b3IJeG1tMTUseG1tMTAKLQltb3ZkcWEJeG1tNyxYTU1XT1JEWzMyK3IxMV0KLQlt
b3ZkcWEJeG1tOSx4bW02Ci0JcHNybHEJeG1tNiwyCi0JbW92ZHFhCXhtbTEwLHhtbTEKLQlwc3Js
cQl4bW0xLDIKLQlweG9yCXhtbTYseG1tNAotCXB4b3IJeG1tMSx4bW0yCi0JcGFuZAl4bW02LHht
bTgKLQlwYW5kCXhtbTEseG1tOAotCXB4b3IJeG1tNCx4bW02Ci0JcHNsbHEJeG1tNiwyCi0JcHhv
cgl4bW0yLHhtbTEKLQlwc2xscQl4bW0xLDIKLQlweG9yCXhtbTYseG1tOQotCXB4b3IJeG1tMSx4
bW0xMAotCW1vdmRxYQl4bW05LHhtbTAKLQlwc3JscQl4bW0wLDIKLQltb3ZkcWEJeG1tMTAseG1t
MTUKLQlwc3JscQl4bW0xNSwyCi0JcHhvcgl4bW0wLHhtbTMKLQlweG9yCXhtbTE1LHhtbTUKLQlw
YW5kCXhtbTAseG1tOAotCXBhbmQJeG1tMTUseG1tOAotCXB4b3IJeG1tMyx4bW0wCi0JcHNsbHEJ
eG1tMCwyCi0JcHhvcgl4bW01LHhtbTE1Ci0JcHNsbHEJeG1tMTUsMgotCXB4b3IJeG1tMCx4bW05
Ci0JcHhvcgl4bW0xNSx4bW0xMAotCW1vdmRxYQl4bW05LHhtbTMKLQlwc3JscQl4bW0zLDQKLQlt
b3ZkcWEJeG1tMTAseG1tNQotCXBzcmxxCXhtbTUsNAotCXB4b3IJeG1tMyx4bW00Ci0JcHhvcgl4
bW01LHhtbTIKLQlwYW5kCXhtbTMseG1tNwotCXBhbmQJeG1tNSx4bW03Ci0JcHhvcgl4bW00LHht
bTMKLQlwc2xscQl4bW0zLDQKLQlweG9yCXhtbTIseG1tNQotCXBzbGxxCXhtbTUsNAotCXB4b3IJ
eG1tMyx4bW05Ci0JcHhvcgl4bW01LHhtbTEwCi0JbW92ZHFhCXhtbTkseG1tMAotCXBzcmxxCXht
bTAsNAotCW1vdmRxYQl4bW0xMCx4bW0xNQotCXBzcmxxCXhtbTE1LDQKLQlweG9yCXhtbTAseG1t
NgotCXB4b3IJeG1tMTUseG1tMQotCXBhbmQJeG1tMCx4bW03Ci0JcGFuZAl4bW0xNSx4bW03Ci0J
cHhvcgl4bW02LHhtbTAKLQlwc2xscQl4bW0wLDQKLQlweG9yCXhtbTEseG1tMTUKLQlwc2xscQl4
bW0xNSw0Ci0JcHhvcgl4bW0wLHhtbTkKLQlweG9yCXhtbTE1LHhtbTEwCi0JbW92ZHFhCXhtbTcs
WE1NV09SRFtyYXhdCi0JcHhvcgl4bW01LHhtbTcKLQlweG9yCXhtbTMseG1tNwotCXB4b3IJeG1t
MSx4bW03Ci0JcHhvcgl4bW02LHhtbTcKLQlweG9yCXhtbTIseG1tNwotCXB4b3IJeG1tNCx4bW03
Ci0JcHhvcgl4bW0xNSx4bW03Ci0JcHhvcgl4bW0wLHhtbTcKLQlEQgkwRjNoLDBDM2gJCTtyZXBy
ZXQKLQotCi1BTElHTgkxNgotX2JzYWVzX2tleV9jb252ZXJ0OgotCWxlYQlyMTEsWyRMJG1hc2tz
XQotCW1vdmRxdQl4bW03LFhNTVdPUkRbcmN4XQotCWxlYQlyY3gsWzE2K3JjeF0KLQltb3ZkcWEJ
eG1tMCxYTU1XT1JEW3IxMV0KLQltb3ZkcWEJeG1tMSxYTU1XT1JEWzE2K3IxMV0KLQltb3ZkcWEJ
eG1tMixYTU1XT1JEWzMyK3IxMV0KLQltb3ZkcWEJeG1tMyxYTU1XT1JEWzQ4K3IxMV0KLQltb3Zk
cWEJeG1tNCxYTU1XT1JEWzY0K3IxMV0KLQlwY21wZXFkCXhtbTUseG1tNQotCi0JbW92ZHF1CXht
bTYsWE1NV09SRFtyY3hdCi0JbW92ZHFhCVhNTVdPUkRbcmF4XSx4bW03Ci0JbGVhCXJheCxbMTYr
cmF4XQotCWRlYwlyMTBkCi0Jam1wCU5FQVIgJEwka2V5X2xvb3AKLUFMSUdOCTE2Ci0kTCRrZXlf
bG9vcDoKLURCCTEwMiwxNSw1NiwwLDI0NAotCi0JbW92ZHFhCXhtbTgseG1tMAotCW1vdmRxYQl4
bW05LHhtbTEKLQotCXBhbmQJeG1tOCx4bW02Ci0JcGFuZAl4bW05LHhtbTYKLQltb3ZkcWEJeG1t
MTAseG1tMgotCXBjbXBlcWIJeG1tOCx4bW0wCi0JcHNsbHEJeG1tMCw0Ci0JbW92ZHFhCXhtbTEx
LHhtbTMKLQlwY21wZXFiCXhtbTkseG1tMQotCXBzbGxxCXhtbTEsNAotCi0JcGFuZAl4bW0xMCx4
bW02Ci0JcGFuZAl4bW0xMSx4bW02Ci0JbW92ZHFhCXhtbTEyLHhtbTAKLQlwY21wZXFiCXhtbTEw
LHhtbTIKLQlwc2xscQl4bW0yLDQKLQltb3ZkcWEJeG1tMTMseG1tMQotCXBjbXBlcWIJeG1tMTEs
eG1tMwotCXBzbGxxCXhtbTMsNAotCi0JbW92ZHFhCXhtbTE0LHhtbTIKLQltb3ZkcWEJeG1tMTUs
eG1tMwotCXB4b3IJeG1tOCx4bW01Ci0JcHhvcgl4bW05LHhtbTUKLQotCXBhbmQJeG1tMTIseG1t
NgotCXBhbmQJeG1tMTMseG1tNgotCW1vdmRxYQlYTU1XT1JEW3JheF0seG1tOAotCXBjbXBlcWIJ
eG1tMTIseG1tMAotCXBzcmxxCXhtbTAsNAotCW1vdmRxYQlYTU1XT1JEWzE2K3JheF0seG1tOQot
CXBjbXBlcWIJeG1tMTMseG1tMQotCXBzcmxxCXhtbTEsNAotCWxlYQlyY3gsWzE2K3JjeF0KLQot
CXBhbmQJeG1tMTQseG1tNgotCXBhbmQJeG1tMTUseG1tNgotCW1vdmRxYQlYTU1XT1JEWzMyK3Jh
eF0seG1tMTAKLQlwY21wZXFiCXhtbTE0LHhtbTIKLQlwc3JscQl4bW0yLDQKLQltb3ZkcWEJWE1N
V09SRFs0OCtyYXhdLHhtbTExCi0JcGNtcGVxYgl4bW0xNSx4bW0zCi0JcHNybHEJeG1tMyw0Ci0J
bW92ZHF1CXhtbTYsWE1NV09SRFtyY3hdCi0KLQlweG9yCXhtbTEzLHhtbTUKLQlweG9yCXhtbTE0
LHhtbTUKLQltb3ZkcWEJWE1NV09SRFs2NCtyYXhdLHhtbTEyCi0JbW92ZHFhCVhNTVdPUkRbODAr
cmF4XSx4bW0xMwotCW1vdmRxYQlYTU1XT1JEWzk2K3JheF0seG1tMTQKLQltb3ZkcWEJWE1NV09S
RFsxMTIrcmF4XSx4bW0xNQotCWxlYQlyYXgsWzEyOCtyYXhdCi0JZGVjCXIxMGQKLQlqbnoJTkVB
UiAkTCRrZXlfbG9vcAotCi0JbW92ZHFhCXhtbTcsWE1NV09SRFs4MCtyMTFdCi0KLQlEQgkwRjNo
LDBDM2gJCTtyZXByZXQKLQotRVhURVJOCWFlc19ub2h3X2NiY19lbmNyeXB0Ci1nbG9iYWwJYnNh
ZXNfY2JjX2VuY3J5cHQKLQotQUxJR04JMTYKLWJzYWVzX2NiY19lbmNyeXB0OgotCi0JbW92CXIx
MWQsRFdPUkRbNDgrcnNwXQotCWNtcAlyMTFkLDAKLQlqbmUJTkVBUiBhZXNfbm9od19jYmNfZW5j
cnlwdAotCWNtcAlyOCwxMjgKLQlqYglORUFSIGFlc19ub2h3X2NiY19lbmNyeXB0Ci0KLQltb3YJ
cmF4LHJzcAotJEwkY2JjX2RlY19wcm9sb2d1ZToKLQlwdXNoCXJicAotCi0JcHVzaAlyYngKLQot
CXB1c2gJcjEyCi0KLQlwdXNoCXIxMwotCi0JcHVzaAlyMTQKLQotCXB1c2gJcjE1Ci0KLQlsZWEJ
cnNwLFsoKC03MikpK3JzcF0KLQotCW1vdglyMTAsUVdPUkRbMTYwK3JzcF0KLQlsZWEJcnNwLFso
KC0xNjApKStyc3BdCi0JbW92YXBzCVhNTVdPUkRbNjQrcnNwXSx4bW02Ci0JbW92YXBzCVhNTVdP
UkRbODArcnNwXSx4bW03Ci0JbW92YXBzCVhNTVdPUkRbOTYrcnNwXSx4bW04Ci0JbW92YXBzCVhN
TVdPUkRbMTEyK3JzcF0seG1tOQotCW1vdmFwcwlYTU1XT1JEWzEyOCtyc3BdLHhtbTEwCi0JbW92
YXBzCVhNTVdPUkRbMTQ0K3JzcF0seG1tMTEKLQltb3ZhcHMJWE1NV09SRFsxNjArcnNwXSx4bW0x
MgotCW1vdmFwcwlYTU1XT1JEWzE3Nityc3BdLHhtbTEzCi0JbW92YXBzCVhNTVdPUkRbMTkyK3Jz
cF0seG1tMTQKLQltb3ZhcHMJWE1NV09SRFsyMDgrcnNwXSx4bW0xNQotJEwkY2JjX2RlY19ib2R5
OgotCW1vdglyYnAscnNwCi0KLQltb3YJZWF4LERXT1JEWzI0MCtyOV0KLQltb3YJcjEyLHJjeAot
CW1vdglyMTMscmR4Ci0JbW92CXIxNCxyOAotCW1vdglyMTUscjkKLQltb3YJcmJ4LHIxMAotCXNo
cglyMTQsNAotCi0JbW92CWVkeCxlYXgKLQlzaGwJcmF4LDcKLQlzdWIJcmF4LDk2Ci0Jc3ViCXJz
cCxyYXgKLQotCW1vdglyYXgscnNwCi0JbW92CXJjeCxyMTUKLQltb3YJcjEwZCxlZHgKLQljYWxs
CV9ic2Flc19rZXlfY29udmVydAotCXB4b3IJeG1tNyxYTU1XT1JEW3JzcF0KLQltb3ZkcWEJWE1N
V09SRFtyYXhdLHhtbTYKLQltb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTcKLQotCW1vdmRxdQl4bW0x
NCxYTU1XT1JEW3JieF0KLQlzdWIJcjE0LDgKLSRMJGNiY19kZWNfbG9vcDoKLQltb3ZkcXUJeG1t
MTUsWE1NV09SRFtyMTJdCi0JbW92ZHF1CXhtbTAsWE1NV09SRFsxNityMTJdCi0JbW92ZHF1CXht
bTEsWE1NV09SRFszMityMTJdCi0JbW92ZHF1CXhtbTIsWE1NV09SRFs0OCtyMTJdCi0JbW92ZHF1
CXhtbTMsWE1NV09SRFs2NCtyMTJdCi0JbW92ZHF1CXhtbTQsWE1NV09SRFs4MCtyMTJdCi0JbW92
CXJheCxyc3AKLQltb3ZkcXUJeG1tNSxYTU1XT1JEWzk2K3IxMl0KLQltb3YJcjEwZCxlZHgKLQlt
b3ZkcXUJeG1tNixYTU1XT1JEWzExMityMTJdCi0JbW92ZHFhCVhNTVdPUkRbMzIrcmJwXSx4bW0x
NAotCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJeG1tMTUsWE1NV09SRFszMityYnBd
Ci0JbW92ZHF1CXhtbTcsWE1NV09SRFtyMTJdCi0JbW92ZHF1CXhtbTgsWE1NV09SRFsxNityMTJd
Ci0JcHhvcgl4bW0wLHhtbTcKLQltb3ZkcXUJeG1tOSxYTU1XT1JEWzMyK3IxMl0KLQlweG9yCXht
bTUseG1tOAotCW1vdmRxdQl4bW0xMCxYTU1XT1JEWzQ4K3IxMl0KLQlweG9yCXhtbTMseG1tOQot
CW1vdmRxdQl4bW0xMSxYTU1XT1JEWzY0K3IxMl0KLQlweG9yCXhtbTEseG1tMTAKLQltb3ZkcXUJ
eG1tMTIsWE1NV09SRFs4MCtyMTJdCi0JcHhvcgl4bW02LHhtbTExCi0JbW92ZHF1CXhtbTEzLFhN
TVdPUkRbOTYrcjEyXQotCXB4b3IJeG1tMix4bW0xMgotCW1vdmRxdQl4bW0xNCxYTU1XT1JEWzEx
MityMTJdCi0JcHhvcgl4bW00LHhtbTEzCi0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0xNQotCWxl
YQlyMTIsWzEyOCtyMTJdCi0JbW92ZHF1CVhNTVdPUkRbMTYrcjEzXSx4bW0wCi0JbW92ZHF1CVhN
TVdPUkRbMzIrcjEzXSx4bW01Ci0JbW92ZHF1CVhNTVdPUkRbNDgrcjEzXSx4bW0zCi0JbW92ZHF1
CVhNTVdPUkRbNjQrcjEzXSx4bW0xCi0JbW92ZHF1CVhNTVdPUkRbODArcjEzXSx4bW02Ci0JbW92
ZHF1CVhNTVdPUkRbOTYrcjEzXSx4bW0yCi0JbW92ZHF1CVhNTVdPUkRbMTEyK3IxM10seG1tNAot
CWxlYQlyMTMsWzEyOCtyMTNdCi0Jc3ViCXIxNCw4Ci0Jam5jCU5FQVIgJEwkY2JjX2RlY19sb29w
Ci0KLQlhZGQJcjE0LDgKLQlqeglORUFSICRMJGNiY19kZWNfZG9uZQotCi0JbW92ZHF1CXhtbTE1
LFhNTVdPUkRbcjEyXQotCW1vdglyYXgscnNwCi0JbW92CXIxMGQsZWR4Ci0JY21wCXIxNCwyCi0J
amIJTkVBUiAkTCRjYmNfZGVjX29uZQotCW1vdmRxdQl4bW0wLFhNTVdPUkRbMTYrcjEyXQotCWpl
CU5FQVIgJEwkY2JjX2RlY190d28KLQltb3ZkcXUJeG1tMSxYTU1XT1JEWzMyK3IxMl0KLQljbXAJ
cjE0LDQKLQlqYglORUFSICRMJGNiY19kZWNfdGhyZWUKLQltb3ZkcXUJeG1tMixYTU1XT1JEWzQ4
K3IxMl0KLQlqZQlORUFSICRMJGNiY19kZWNfZm91cgotCW1vdmRxdQl4bW0zLFhNTVdPUkRbNjQr
cjEyXQotCWNtcAlyMTQsNgotCWpiCU5FQVIgJEwkY2JjX2RlY19maXZlCi0JbW92ZHF1CXhtbTQs
WE1NV09SRFs4MCtyMTJdCi0JamUJTkVBUiAkTCRjYmNfZGVjX3NpeAotCW1vdmRxdQl4bW01LFhN
TVdPUkRbOTYrcjEyXQotCW1vdmRxYQlYTU1XT1JEWzMyK3JicF0seG1tMTQKLQljYWxsCV9ic2Fl
c19kZWNyeXB0OAotCXB4b3IJeG1tMTUsWE1NV09SRFszMityYnBdCi0JbW92ZHF1CXhtbTcsWE1N
V09SRFtyMTJdCi0JbW92ZHF1CXhtbTgsWE1NV09SRFsxNityMTJdCi0JcHhvcgl4bW0wLHhtbTcK
LQltb3ZkcXUJeG1tOSxYTU1XT1JEWzMyK3IxMl0KLQlweG9yCXhtbTUseG1tOAotCW1vdmRxdQl4
bW0xMCxYTU1XT1JEWzQ4K3IxMl0KLQlweG9yCXhtbTMseG1tOQotCW1vdmRxdQl4bW0xMSxYTU1X
T1JEWzY0K3IxMl0KLQlweG9yCXhtbTEseG1tMTAKLQltb3ZkcXUJeG1tMTIsWE1NV09SRFs4MCty
MTJdCi0JcHhvcgl4bW02LHhtbTExCi0JbW92ZHF1CXhtbTE0LFhNTVdPUkRbOTYrcjEyXQotCXB4
b3IJeG1tMix4bW0xMgotCW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQltb3ZkcXUJWE1NV09S
RFsxNityMTNdLHhtbTAKLQltb3ZkcXUJWE1NV09SRFszMityMTNdLHhtbTUKLQltb3ZkcXUJWE1N
V09SRFs0OCtyMTNdLHhtbTMKLQltb3ZkcXUJWE1NV09SRFs2NCtyMTNdLHhtbTEKLQltb3ZkcXUJ
WE1NV09SRFs4MCtyMTNdLHhtbTYKLQltb3ZkcXUJWE1NV09SRFs5NityMTNdLHhtbTIKLQlqbXAJ
TkVBUiAkTCRjYmNfZGVjX2RvbmUKLUFMSUdOCTE2Ci0kTCRjYmNfZGVjX3NpeDoKLQltb3ZkcWEJ
WE1NV09SRFszMityYnBdLHhtbTE0Ci0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlweG9yCXhtbTE1
LFhNTVdPUkRbMzIrcmJwXQotCW1vdmRxdQl4bW03LFhNTVdPUkRbcjEyXQotCW1vdmRxdQl4bW04
LFhNTVdPUkRbMTYrcjEyXQotCXB4b3IJeG1tMCx4bW03Ci0JbW92ZHF1CXhtbTksWE1NV09SRFsz
MityMTJdCi0JcHhvcgl4bW01LHhtbTgKLQltb3ZkcXUJeG1tMTAsWE1NV09SRFs0OCtyMTJdCi0J
cHhvcgl4bW0zLHhtbTkKLQltb3ZkcXUJeG1tMTEsWE1NV09SRFs2NCtyMTJdCi0JcHhvcgl4bW0x
LHhtbTEwCi0JbW92ZHF1CXhtbTE0LFhNTVdPUkRbODArcjEyXQotCXB4b3IJeG1tNix4bW0xMQot
CW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQltb3ZkcXUJWE1NV09SRFsxNityMTNdLHhtbTAK
LQltb3ZkcXUJWE1NV09SRFszMityMTNdLHhtbTUKLQltb3ZkcXUJWE1NV09SRFs0OCtyMTNdLHht
bTMKLQltb3ZkcXUJWE1NV09SRFs2NCtyMTNdLHhtbTEKLQltb3ZkcXUJWE1NV09SRFs4MCtyMTNd
LHhtbTYKLQlqbXAJTkVBUiAkTCRjYmNfZGVjX2RvbmUKLUFMSUdOCTE2Ci0kTCRjYmNfZGVjX2Zp
dmU6Ci0JbW92ZHFhCVhNTVdPUkRbMzIrcmJwXSx4bW0xNAotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4
Ci0JcHhvcgl4bW0xNSxYTU1XT1JEWzMyK3JicF0KLQltb3ZkcXUJeG1tNyxYTU1XT1JEW3IxMl0K
LQltb3ZkcXUJeG1tOCxYTU1XT1JEWzE2K3IxMl0KLQlweG9yCXhtbTAseG1tNwotCW1vdmRxdQl4
bW05LFhNTVdPUkRbMzIrcjEyXQotCXB4b3IJeG1tNSx4bW04Ci0JbW92ZHF1CXhtbTEwLFhNTVdP
UkRbNDgrcjEyXQotCXB4b3IJeG1tMyx4bW05Ci0JbW92ZHF1CXhtbTE0LFhNTVdPUkRbNjQrcjEy
XQotCXB4b3IJeG1tMSx4bW0xMAotCW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQltb3ZkcXUJ
WE1NV09SRFsxNityMTNdLHhtbTAKLQltb3ZkcXUJWE1NV09SRFszMityMTNdLHhtbTUKLQltb3Zk
cXUJWE1NV09SRFs0OCtyMTNdLHhtbTMKLQltb3ZkcXUJWE1NV09SRFs2NCtyMTNdLHhtbTEKLQlq
bXAJTkVBUiAkTCRjYmNfZGVjX2RvbmUKLUFMSUdOCTE2Ci0kTCRjYmNfZGVjX2ZvdXI6Ci0JbW92
ZHFhCVhNTVdPUkRbMzIrcmJwXSx4bW0xNAotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgl4
bW0xNSxYTU1XT1JEWzMyK3JicF0KLQltb3ZkcXUJeG1tNyxYTU1XT1JEW3IxMl0KLQltb3ZkcXUJ
eG1tOCxYTU1XT1JEWzE2K3IxMl0KLQlweG9yCXhtbTAseG1tNwotCW1vdmRxdQl4bW05LFhNTVdP
UkRbMzIrcjEyXQotCXB4b3IJeG1tNSx4bW04Ci0JbW92ZHF1CXhtbTE0LFhNTVdPUkRbNDgrcjEy
XQotCXB4b3IJeG1tMyx4bW05Ci0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0xNQotCW1vdmRxdQlY
TU1XT1JEWzE2K3IxM10seG1tMAotCW1vdmRxdQlYTU1XT1JEWzMyK3IxM10seG1tNQotCW1vdmRx
dQlYTU1XT1JEWzQ4K3IxM10seG1tMwotCWptcAlORUFSICRMJGNiY19kZWNfZG9uZQotQUxJR04J
MTYKLSRMJGNiY19kZWNfdGhyZWU6Ci0JbW92ZHFhCVhNTVdPUkRbMzIrcmJwXSx4bW0xNAotCWNh
bGwJX2JzYWVzX2RlY3J5cHQ4Ci0JcHhvcgl4bW0xNSxYTU1XT1JEWzMyK3JicF0KLQltb3ZkcXUJ
eG1tNyxYTU1XT1JEW3IxMl0KLQltb3ZkcXUJeG1tOCxYTU1XT1JEWzE2K3IxMl0KLQlweG9yCXht
bTAseG1tNwotCW1vdmRxdQl4bW0xNCxYTU1XT1JEWzMyK3IxMl0KLQlweG9yCXhtbTUseG1tOAot
CW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQltb3ZkcXUJWE1NV09SRFsxNityMTNdLHhtbTAK
LQltb3ZkcXUJWE1NV09SRFszMityMTNdLHhtbTUKLQlqbXAJTkVBUiAkTCRjYmNfZGVjX2RvbmUK
LUFMSUdOCTE2Ci0kTCRjYmNfZGVjX3R3bzoKLQltb3ZkcWEJWE1NV09SRFszMityYnBdLHhtbTE0
Ci0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQlweG9yCXhtbTE1LFhNTVdPUkRbMzIrcmJwXQotCW1v
dmRxdQl4bW03LFhNTVdPUkRbcjEyXQotCW1vdmRxdQl4bW0xNCxYTU1XT1JEWzE2K3IxMl0KLQlw
eG9yCXhtbTAseG1tNwotCW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQltb3ZkcXUJWE1NV09S
RFsxNityMTNdLHhtbTAKLQlqbXAJTkVBUiAkTCRjYmNfZGVjX2RvbmUKLUFMSUdOCTE2Ci0kTCRj
YmNfZGVjX29uZToKLQlsZWEJcmN4LFtyMTJdCi0JbGVhCXJkeCxbMzIrcmJwXQotCWxlYQlyOCxb
cjE1XQotCWNhbGwJYWVzX25vaHdfZGVjcnlwdAotCXB4b3IJeG1tMTQsWE1NV09SRFszMityYnBd
Ci0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0xNAotCW1vdmRxYQl4bW0xNCx4bW0xNQotCi0kTCRj
YmNfZGVjX2RvbmU6Ci0JbW92ZHF1CVhNTVdPUkRbcmJ4XSx4bW0xNAotCWxlYQlyYXgsW3JzcF0K
LQlweG9yCXhtbTAseG1tMAotJEwkY2JjX2RlY19iemVybzoKLQltb3ZkcWEJWE1NV09SRFtyYXhd
LHhtbTAKLQltb3ZkcWEJWE1NV09SRFsxNityYXhdLHhtbTAKLQlsZWEJcmF4LFszMityYXhdCi0J
Y21wCXJicCxyYXgKLQlqYQlORUFSICRMJGNiY19kZWNfYnplcm8KLQotCWxlYQlyYXgsWzEyMCty
YnBdCi0KLQltb3ZhcHMJeG1tNixYTU1XT1JEWzY0K3JicF0KLQltb3ZhcHMJeG1tNyxYTU1XT1JE
WzgwK3JicF0KLQltb3ZhcHMJeG1tOCxYTU1XT1JEWzk2K3JicF0KLQltb3ZhcHMJeG1tOSxYTU1X
T1JEWzExMityYnBdCi0JbW92YXBzCXhtbTEwLFhNTVdPUkRbMTI4K3JicF0KLQltb3ZhcHMJeG1t
MTEsWE1NV09SRFsxNDQrcmJwXQotCW1vdmFwcwl4bW0xMixYTU1XT1JEWzE2MCtyYnBdCi0JbW92
YXBzCXhtbTEzLFhNTVdPUkRbMTc2K3JicF0KLQltb3ZhcHMJeG1tMTQsWE1NV09SRFsxOTIrcmJw
XQotCW1vdmFwcwl4bW0xNSxYTU1XT1JEWzIwOCtyYnBdCi0JbGVhCXJheCxbMTYwK3JheF0KLSRM
JGNiY19kZWNfdGFpbDoKLQltb3YJcjE1LFFXT1JEWygoLTQ4KSkrcmF4XQotCi0JbW92CXIxNCxR
V09SRFsoKC00MCkpK3JheF0KLQotCW1vdglyMTMsUVdPUkRbKCgtMzIpKStyYXhdCi0KLQltb3YJ
cjEyLFFXT1JEWygoLTI0KSkrcmF4XQotCi0JbW92CXJieCxRV09SRFsoKC0xNikpK3JheF0KLQot
CW1vdglyYnAsUVdPUkRbKCgtOCkpK3JheF0KLQotCWxlYQlyc3AsW3JheF0KLQotJEwkY2JjX2Rl
Y19lcGlsb2d1ZToKLQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLQotCi0KLWdsb2JhbAlic2Flc19j
dHIzMl9lbmNyeXB0X2Jsb2NrcwotCi1BTElHTgkxNgotYnNhZXNfY3RyMzJfZW5jcnlwdF9ibG9j
a3M6Ci0KLQltb3YJcmF4LHJzcAotJEwkY3RyX2VuY19wcm9sb2d1ZToKLQlwdXNoCXJicAotCi0J
cHVzaAlyYngKLQotCXB1c2gJcjEyCi0KLQlwdXNoCXIxMwotCi0JcHVzaAlyMTQKLQotCXB1c2gJ
cjE1Ci0KLQlsZWEJcnNwLFsoKC03MikpK3JzcF0KLQotCW1vdglyMTAsUVdPUkRbMTYwK3JzcF0K
LQlsZWEJcnNwLFsoKC0xNjApKStyc3BdCi0JbW92YXBzCVhNTVdPUkRbNjQrcnNwXSx4bW02Ci0J
bW92YXBzCVhNTVdPUkRbODArcnNwXSx4bW03Ci0JbW92YXBzCVhNTVdPUkRbOTYrcnNwXSx4bW04
Ci0JbW92YXBzCVhNTVdPUkRbMTEyK3JzcF0seG1tOQotCW1vdmFwcwlYTU1XT1JEWzEyOCtyc3Bd
LHhtbTEwCi0JbW92YXBzCVhNTVdPUkRbMTQ0K3JzcF0seG1tMTEKLQltb3ZhcHMJWE1NV09SRFsx
NjArcnNwXSx4bW0xMgotCW1vdmFwcwlYTU1XT1JEWzE3Nityc3BdLHhtbTEzCi0JbW92YXBzCVhN
TVdPUkRbMTkyK3JzcF0seG1tMTQKLQltb3ZhcHMJWE1NV09SRFsyMDgrcnNwXSx4bW0xNQotJEwk
Y3RyX2VuY19ib2R5OgotCW1vdglyYnAscnNwCi0KLQltb3ZkcXUJeG1tMCxYTU1XT1JEW3IxMF0K
LQltb3YJZWF4LERXT1JEWzI0MCtyOV0KLQltb3YJcjEyLHJjeAotCW1vdglyMTMscmR4Ci0JbW92
CXIxNCxyOAotCW1vdglyMTUscjkKLQltb3ZkcWEJWE1NV09SRFszMityYnBdLHhtbTAKLQljbXAJ
cjgsOAotCWpiCU5FQVIgJEwkY3RyX2VuY19zaG9ydAotCi0JbW92CWVieCxlYXgKLQlzaGwJcmF4
LDcKLQlzdWIJcmF4LDk2Ci0Jc3ViCXJzcCxyYXgKLQotCW1vdglyYXgscnNwCi0JbW92CXJjeCxy
MTUKLQltb3YJcjEwZCxlYngKLQljYWxsCV9ic2Flc19rZXlfY29udmVydAotCXB4b3IJeG1tNyx4
bW02Ci0JbW92ZHFhCVhNTVdPUkRbcmF4XSx4bW03Ci0KLQltb3ZkcWEJeG1tOCxYTU1XT1JEW3Jz
cF0KLQlsZWEJcjExLFskTCRBREQxXQotCW1vdmRxYQl4bW0xNSxYTU1XT1JEWzMyK3JicF0KLQlt
b3ZkcWEJeG1tNyxYTU1XT1JEWygoLTMyKSkrcjExXQotREIJMTAyLDY4LDE1LDU2LDAsMTk5Ci1E
QgkxMDIsNjgsMTUsNTYsMCwyNTUKLQltb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTgKLQlqbXAJTkVB
UiAkTCRjdHJfZW5jX2xvb3AKLUFMSUdOCTE2Ci0kTCRjdHJfZW5jX2xvb3A6Ci0JbW92ZHFhCVhN
TVdPUkRbMzIrcmJwXSx4bW0xNQotCW1vdmRxYQl4bW0wLHhtbTE1Ci0JbW92ZHFhCXhtbTEseG1t
MTUKLQlwYWRkZAl4bW0wLFhNTVdPUkRbcjExXQotCW1vdmRxYQl4bW0yLHhtbTE1Ci0JcGFkZGQJ
eG1tMSxYTU1XT1JEWzE2K3IxMV0KLQltb3ZkcWEJeG1tMyx4bW0xNQotCXBhZGRkCXhtbTIsWE1N
V09SRFszMityMTFdCi0JbW92ZHFhCXhtbTQseG1tMTUKLQlwYWRkZAl4bW0zLFhNTVdPUkRbNDgr
cjExXQotCW1vdmRxYQl4bW01LHhtbTE1Ci0JcGFkZGQJeG1tNCxYTU1XT1JEWzY0K3IxMV0KLQlt
b3ZkcWEJeG1tNix4bW0xNQotCXBhZGRkCXhtbTUsWE1NV09SRFs4MCtyMTFdCi0JcGFkZGQJeG1t
NixYTU1XT1JEWzk2K3IxMV0KLQotCi0KLQltb3ZkcWEJeG1tOCxYTU1XT1JEW3JzcF0KLQlsZWEJ
cmF4LFsxNityc3BdCi0JbW92ZHFhCXhtbTcsWE1NV09SRFsoKC0xNikpK3IxMV0KLQlweG9yCXht
bTE1LHhtbTgKLQlweG9yCXhtbTAseG1tOAotCXB4b3IJeG1tMSx4bW04Ci0JcHhvcgl4bW0yLHht
bTgKLURCCTEwMiw2OCwxNSw1NiwwLDI1NQotREIJMTAyLDE1LDU2LDAsMTk5Ci0JcHhvcgl4bW0z
LHhtbTgKLQlweG9yCXhtbTQseG1tOAotREIJMTAyLDE1LDU2LDAsMjA3Ci1EQgkxMDIsMTUsNTYs
MCwyMTUKLQlweG9yCXhtbTUseG1tOAotCXB4b3IJeG1tNix4bW04Ci1EQgkxMDIsMTUsNTYsMCwy
MjMKLURCCTEwMiwxNSw1NiwwLDIzMQotREIJMTAyLDE1LDU2LDAsMjM5Ci1EQgkxMDIsMTUsNTYs
MCwyNDcKLQlsZWEJcjExLFskTCRCUzBdCi0JbW92CXIxMGQsZWJ4Ci0KLQljYWxsCV9ic2Flc19l
bmNyeXB0OF9iaXRzbGljZQotCi0Jc3ViCXIxNCw4Ci0JamMJTkVBUiAkTCRjdHJfZW5jX2xvb3Bf
ZG9uZQotCi0JbW92ZHF1CXhtbTcsWE1NV09SRFtyMTJdCi0JbW92ZHF1CXhtbTgsWE1NV09SRFsx
NityMTJdCi0JbW92ZHF1CXhtbTksWE1NV09SRFszMityMTJdCi0JbW92ZHF1CXhtbTEwLFhNTVdP
UkRbNDgrcjEyXQotCW1vdmRxdQl4bW0xMSxYTU1XT1JEWzY0K3IxMl0KLQltb3ZkcXUJeG1tMTIs
WE1NV09SRFs4MCtyMTJdCi0JbW92ZHF1CXhtbTEzLFhNTVdPUkRbOTYrcjEyXQotCW1vdmRxdQl4
bW0xNCxYTU1XT1JEWzExMityMTJdCi0JbGVhCXIxMixbMTI4K3IxMl0KLQlweG9yCXhtbTcseG1t
MTUKLQltb3ZkcWEJeG1tMTUsWE1NV09SRFszMityYnBdCi0JcHhvcgl4bW0wLHhtbTgKLQltb3Zk
cXUJWE1NV09SRFtyMTNdLHhtbTcKLQlweG9yCXhtbTMseG1tOQotCW1vdmRxdQlYTU1XT1JEWzE2
K3IxM10seG1tMAotCXB4b3IJeG1tNSx4bW0xMAotCW1vdmRxdQlYTU1XT1JEWzMyK3IxM10seG1t
MwotCXB4b3IJeG1tMix4bW0xMQotCW1vdmRxdQlYTU1XT1JEWzQ4K3IxM10seG1tNQotCXB4b3IJ
eG1tNix4bW0xMgotCW1vdmRxdQlYTU1XT1JEWzY0K3IxM10seG1tMgotCXB4b3IJeG1tMSx4bW0x
MwotCW1vdmRxdQlYTU1XT1JEWzgwK3IxM10seG1tNgotCXB4b3IJeG1tNCx4bW0xNAotCW1vdmRx
dQlYTU1XT1JEWzk2K3IxM10seG1tMQotCWxlYQlyMTEsWyRMJEFERDFdCi0JbW92ZHF1CVhNTVdP
UkRbMTEyK3IxM10seG1tNAotCWxlYQlyMTMsWzEyOCtyMTNdCi0JcGFkZGQJeG1tMTUsWE1NV09S
RFsxMTIrcjExXQotCWpueglORUFSICRMJGN0cl9lbmNfbG9vcAotCi0Jam1wCU5FQVIgJEwkY3Ry
X2VuY19kb25lCi1BTElHTgkxNgotJEwkY3RyX2VuY19sb29wX2RvbmU6Ci0JYWRkCXIxNCw4Ci0J
bW92ZHF1CXhtbTcsWE1NV09SRFtyMTJdCi0JcHhvcgl4bW0xNSx4bW03Ci0JbW92ZHF1CVhNTVdP
UkRbcjEzXSx4bW0xNQotCWNtcAlyMTQsMgotCWpiCU5FQVIgJEwkY3RyX2VuY19kb25lCi0JbW92
ZHF1CXhtbTgsWE1NV09SRFsxNityMTJdCi0JcHhvcgl4bW0wLHhtbTgKLQltb3ZkcXUJWE1NV09S
RFsxNityMTNdLHhtbTAKLQlqZQlORUFSICRMJGN0cl9lbmNfZG9uZQotCW1vdmRxdQl4bW05LFhN
TVdPUkRbMzIrcjEyXQotCXB4b3IJeG1tMyx4bW05Ci0JbW92ZHF1CVhNTVdPUkRbMzIrcjEzXSx4
bW0zCi0JY21wCXIxNCw0Ci0JamIJTkVBUiAkTCRjdHJfZW5jX2RvbmUKLQltb3ZkcXUJeG1tMTAs
WE1NV09SRFs0OCtyMTJdCi0JcHhvcgl4bW01LHhtbTEwCi0JbW92ZHF1CVhNTVdPUkRbNDgrcjEz
XSx4bW01Ci0JamUJTkVBUiAkTCRjdHJfZW5jX2RvbmUKLQltb3ZkcXUJeG1tMTEsWE1NV09SRFs2
NCtyMTJdCi0JcHhvcgl4bW0yLHhtbTExCi0JbW92ZHF1CVhNTVdPUkRbNjQrcjEzXSx4bW0yCi0J
Y21wCXIxNCw2Ci0JamIJTkVBUiAkTCRjdHJfZW5jX2RvbmUKLQltb3ZkcXUJeG1tMTIsWE1NV09S
RFs4MCtyMTJdCi0JcHhvcgl4bW02LHhtbTEyCi0JbW92ZHF1CVhNTVdPUkRbODArcjEzXSx4bW02
Ci0JamUJTkVBUiAkTCRjdHJfZW5jX2RvbmUKLQltb3ZkcXUJeG1tMTMsWE1NV09SRFs5NityMTJd
Ci0JcHhvcgl4bW0xLHhtbTEzCi0JbW92ZHF1CVhNTVdPUkRbOTYrcjEzXSx4bW0xCi0Jam1wCU5F
QVIgJEwkY3RyX2VuY19kb25lCi0KLUFMSUdOCTE2Ci0kTCRjdHJfZW5jX3Nob3J0OgotCWxlYQly
Y3gsWzMyK3JicF0KLQlsZWEJcmR4LFs0OCtyYnBdCi0JbGVhCXI4LFtyMTVdCi0JY2FsbAlhZXNf
bm9od19lbmNyeXB0Ci0JbW92ZHF1CXhtbTAsWE1NV09SRFtyMTJdCi0JbGVhCXIxMixbMTYrcjEy
XQotCW1vdgllYXgsRFdPUkRbNDQrcmJwXQotCWJzd2FwCWVheAotCXB4b3IJeG1tMCxYTU1XT1JE
WzQ4K3JicF0KLQlpbmMJZWF4Ci0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0wCi0JYnN3YXAJZWF4
Ci0JbGVhCXIxMyxbMTYrcjEzXQotCW1vdglEV09SRFs0NCtyc3BdLGVheAotCWRlYwlyMTQKLQlq
bnoJTkVBUiAkTCRjdHJfZW5jX3Nob3J0Ci0KLSRMJGN0cl9lbmNfZG9uZToKLQlsZWEJcmF4LFty
c3BdCi0JcHhvcgl4bW0wLHhtbTAKLSRMJGN0cl9lbmNfYnplcm86Ci0JbW92ZHFhCVhNTVdPUkRb
cmF4XSx4bW0wCi0JbW92ZHFhCVhNTVdPUkRbMTYrcmF4XSx4bW0wCi0JbGVhCXJheCxbMzIrcmF4
XQotCWNtcAlyYnAscmF4Ci0JamEJTkVBUiAkTCRjdHJfZW5jX2J6ZXJvCi0KLQlsZWEJcmF4LFsx
MjArcmJwXQotCi0JbW92YXBzCXhtbTYsWE1NV09SRFs2NCtyYnBdCi0JbW92YXBzCXhtbTcsWE1N
V09SRFs4MCtyYnBdCi0JbW92YXBzCXhtbTgsWE1NV09SRFs5NityYnBdCi0JbW92YXBzCXhtbTks
WE1NV09SRFsxMTIrcmJwXQotCW1vdmFwcwl4bW0xMCxYTU1XT1JEWzEyOCtyYnBdCi0JbW92YXBz
CXhtbTExLFhNTVdPUkRbMTQ0K3JicF0KLQltb3ZhcHMJeG1tMTIsWE1NV09SRFsxNjArcmJwXQot
CW1vdmFwcwl4bW0xMyxYTU1XT1JEWzE3NityYnBdCi0JbW92YXBzCXhtbTE0LFhNTVdPUkRbMTky
K3JicF0KLQltb3ZhcHMJeG1tMTUsWE1NV09SRFsyMDgrcmJwXQotCWxlYQlyYXgsWzE2MCtyYXhd
Ci0kTCRjdHJfZW5jX3RhaWw6Ci0JbW92CXIxNSxRV09SRFsoKC00OCkpK3JheF0KLQotCW1vdgly
MTQsUVdPUkRbKCgtNDApKStyYXhdCi0KLQltb3YJcjEzLFFXT1JEWygoLTMyKSkrcmF4XQotCi0J
bW92CXIxMixRV09SRFsoKC0yNCkpK3JheF0KLQotCW1vdglyYngsUVdPUkRbKCgtMTYpKStyYXhd
Ci0KLQltb3YJcmJwLFFXT1JEWygoLTgpKStyYXhdCi0KLQlsZWEJcnNwLFtyYXhdCi0KLSRMJGN0
cl9lbmNfZXBpbG9ndWU6Ci0JREIJMEYzaCwwQzNoCQk7cmVwcmV0Ci0KLQotZ2xvYmFsCWJzYWVz
X3h0c19lbmNyeXB0Ci0KLUFMSUdOCTE2Ci1ic2Flc194dHNfZW5jcnlwdDoKLQotCW1vdglyYXgs
cnNwCi0kTCR4dHNfZW5jX3Byb2xvZ3VlOgotCXB1c2gJcmJwCi0KLQlwdXNoCXJieAotCi0JcHVz
aAlyMTIKLQotCXB1c2gJcjEzCi0KLQlwdXNoCXIxNAotCi0JcHVzaAlyMTUKLQotCWxlYQlyc3As
WygoLTcyKSkrcnNwXQotCi0JbW92CXIxMCxRV09SRFsxNjArcnNwXQotCW1vdglyMTEsUVdPUkRb
MTY4K3JzcF0KLQlsZWEJcnNwLFsoKC0xNjApKStyc3BdCi0JbW92YXBzCVhNTVdPUkRbNjQrcnNw
XSx4bW02Ci0JbW92YXBzCVhNTVdPUkRbODArcnNwXSx4bW03Ci0JbW92YXBzCVhNTVdPUkRbOTYr
cnNwXSx4bW04Ci0JbW92YXBzCVhNTVdPUkRbMTEyK3JzcF0seG1tOQotCW1vdmFwcwlYTU1XT1JE
WzEyOCtyc3BdLHhtbTEwCi0JbW92YXBzCVhNTVdPUkRbMTQ0K3JzcF0seG1tMTEKLQltb3ZhcHMJ
WE1NV09SRFsxNjArcnNwXSx4bW0xMgotCW1vdmFwcwlYTU1XT1JEWzE3Nityc3BdLHhtbTEzCi0J
bW92YXBzCVhNTVdPUkRbMTkyK3JzcF0seG1tMTQKLQltb3ZhcHMJWE1NV09SRFsyMDgrcnNwXSx4
bW0xNQotJEwkeHRzX2VuY19ib2R5OgotCW1vdglyYnAscnNwCi0KLQltb3YJcjEyLHJjeAotCW1v
dglyMTMscmR4Ci0JbW92CXIxNCxyOAotCW1vdglyMTUscjkKLQotCWxlYQlyY3gsW3IxMV0KLQls
ZWEJcmR4LFszMityYnBdCi0JbGVhCXI4LFtyMTBdCi0JY2FsbAlhZXNfbm9od19lbmNyeXB0Ci0K
LQltb3YJZWF4LERXT1JEWzI0MCtyMTVdCi0JbW92CXJieCxyMTQKLQotCW1vdgllZHgsZWF4Ci0J
c2hsCXJheCw3Ci0Jc3ViCXJheCw5NgotCXN1Yglyc3AscmF4Ci0KLQltb3YJcmF4LHJzcAotCW1v
dglyY3gscjE1Ci0JbW92CXIxMGQsZWR4Ci0JY2FsbAlfYnNhZXNfa2V5X2NvbnZlcnQKLQlweG9y
CXhtbTcseG1tNgotCW1vdmRxYQlYTU1XT1JEW3JheF0seG1tNwotCi0JYW5kCXIxNCwtMTYKLQlz
dWIJcnNwLDB4ODAKLQltb3ZkcWEJeG1tNixYTU1XT1JEWzMyK3JicF0KLQotCXB4b3IJeG1tMTQs
eG1tMTQKLQltb3ZkcWEJeG1tMTIsWE1NV09SRFskTCR4dHNfbWFnaWNdCi0JcGNtcGd0ZAl4bW0x
NCx4bW02Ci0KLQlzdWIJcjE0LDB4ODAKLQlqYwlORUFSICRMJHh0c19lbmNfc2hvcnQKLQlqbXAJ
TkVBUiAkTCR4dHNfZW5jX2xvb3AKLQotQUxJR04JMTYKLSRMJHh0c19lbmNfbG9vcDoKLQlwc2h1
ZmQJeG1tMTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJeG1tMTUseG1t
NgotCW1vdmRxYQlYTU1XT1JEW3JzcF0seG1tNgotCXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1t
MTMseG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMKLQlwc2h1ZmQJ
eG1tMTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJeG1tMCx4bW02Ci0J
bW92ZHFhCVhNTVdPUkRbMTYrcnNwXSx4bW02Ci0JcGFkZHEJeG1tNix4bW02Ci0JcGFuZAl4bW0x
Myx4bW0xMgotCXBjbXBndGQJeG1tMTQseG1tNgotCXB4b3IJeG1tNix4bW0xMwotCW1vdmRxdQl4
bW03LFhNTVdPUkRbcjEyXQotCXBzaHVmZAl4bW0xMyx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4
bW0xNAotCW1vdmRxYQl4bW0xLHhtbTYKLQltb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTYKLQlw
YWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0J
cHhvcgl4bW02LHhtbTEzCi0JbW92ZHF1CXhtbTgsWE1NV09SRFsxNityMTJdCi0JcHhvcgl4bW0x
NSx4bW03Ci0JcHNodWZkCXhtbTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92
ZHFhCXhtbTIseG1tNgotCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tNgotCXBhZGRxCXhtbTYs
eG1tNgotCXBhbmQJeG1tMTMseG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYs
eG1tMTMKLQltb3ZkcXUJeG1tOSxYTU1XT1JEWzMyK3IxMl0KLQlweG9yCXhtbTAseG1tOAotCXBz
aHVmZAl4bW0xMyx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxYQl4bW0zLHht
bTYKLQltb3ZkcWEJWE1NV09SRFs2NCtyc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5k
CXhtbTEzLHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JbW92
ZHF1CXhtbTEwLFhNTVdPUkRbNDgrcjEyXQotCXB4b3IJeG1tMSx4bW05Ci0JcHNodWZkCXhtbTEz
LHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFhCXhtbTQseG1tNgotCW1vdmRx
YQlYTU1XT1JEWzgwK3JzcF0seG1tNgotCXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1tMTMseG1t
MTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMKLQltb3ZkcXUJeG1tMTEs
WE1NV09SRFs2NCtyMTJdCi0JcHhvcgl4bW0yLHhtbTEwCi0JcHNodWZkCXhtbTEzLHhtbTE0LDB4
MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFhCXhtbTUseG1tNgotCW1vdmRxYQlYTU1XT1JE
Wzk2K3JzcF0seG1tNgotCXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1tMTMseG1tMTIKLQlwY21w
Z3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMKLQltb3ZkcXUJeG1tMTIsWE1NV09SRFs4
MCtyMTJdCi0JcHhvcgl4bW0zLHhtbTExCi0JbW92ZHF1CXhtbTEzLFhNTVdPUkRbOTYrcjEyXQot
CXB4b3IJeG1tNCx4bW0xMgotCW1vdmRxdQl4bW0xNCxYTU1XT1JEWzExMityMTJdCi0JbGVhCXIx
MixbMTI4K3IxMl0KLQltb3ZkcWEJWE1NV09SRFsxMTIrcnNwXSx4bW02Ci0JcHhvcgl4bW01LHht
bTEzCi0JbGVhCXJheCxbMTI4K3JzcF0KLQlweG9yCXhtbTYseG1tMTQKLQltb3YJcjEwZCxlZHgK
LQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQlweG9yCXhtbTE1LFhNTVdPUkRbcnNwXQotCXB4
b3IJeG1tMCxYTU1XT1JEWzE2K3JzcF0KLQltb3ZkcXUJWE1NV09SRFtyMTNdLHhtbTE1Ci0JcHhv
cgl4bW0zLFhNTVdPUkRbMzIrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzE2K3IxM10seG1tMAotCXB4
b3IJeG1tNSxYTU1XT1JEWzQ4K3JzcF0KLQltb3ZkcXUJWE1NV09SRFszMityMTNdLHhtbTMKLQlw
eG9yCXhtbTIsWE1NV09SRFs2NCtyc3BdCi0JbW92ZHF1CVhNTVdPUkRbNDgrcjEzXSx4bW01Ci0J
cHhvcgl4bW02LFhNTVdPUkRbODArcnNwXQotCW1vdmRxdQlYTU1XT1JEWzY0K3IxM10seG1tMgot
CXB4b3IJeG1tMSxYTU1XT1JEWzk2K3JzcF0KLQltb3ZkcXUJWE1NV09SRFs4MCtyMTNdLHhtbTYK
LQlweG9yCXhtbTQsWE1NV09SRFsxMTIrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzk2K3IxM10seG1t
MQotCW1vdmRxdQlYTU1XT1JEWzExMityMTNdLHhtbTQKLQlsZWEJcjEzLFsxMjgrcjEzXQotCi0J
bW92ZHFhCXhtbTYsWE1NV09SRFsxMTIrcnNwXQotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJ
eG1tMTIsWE1NV09SRFskTCR4dHNfbWFnaWNdCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHNodWZk
CXhtbTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JcGFkZHEJeG1tNix4bW02Ci0J
cGFuZAl4bW0xMyx4bW0xMgotCXBjbXBndGQJeG1tMTQseG1tNgotCXB4b3IJeG1tNix4bW0xMwot
Ci0Jc3ViCXIxNCwweDgwCi0Jam5jCU5FQVIgJEwkeHRzX2VuY19sb29wCi0KLSRMJHh0c19lbmNf
c2hvcnQ6Ci0JYWRkCXIxNCwweDgwCi0JanoJTkVBUiAkTCR4dHNfZW5jX2RvbmUKLQlwc2h1ZmQJ
eG1tMTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJeG1tMTUseG1tNgot
CW1vdmRxYQlYTU1XT1JEW3JzcF0seG1tNgotCXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1tMTMs
eG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMKLQlwc2h1ZmQJeG1t
MTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJeG1tMCx4bW02Ci0JbW92
ZHFhCVhNTVdPUkRbMTYrcnNwXSx4bW02Ci0JcGFkZHEJeG1tNix4bW02Ci0JcGFuZAl4bW0xMyx4
bW0xMgotCXBjbXBndGQJeG1tMTQseG1tNgotCXB4b3IJeG1tNix4bW0xMwotCW1vdmRxdQl4bW03
LFhNTVdPUkRbcjEyXQotCWNtcAlyMTQsMTYKLQlqZQlORUFSICRMJHh0c19lbmNfMQotCXBzaHVm
ZAl4bW0xMyx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxYQl4bW0xLHhtbTYK
LQltb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXht
bTEzLHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JbW92ZHF1
CXhtbTgsWE1NV09SRFsxNityMTJdCi0JY21wCXIxNCwzMgotCWplCU5FQVIgJEwkeHRzX2VuY18y
Ci0JcHhvcgl4bW0xNSx4bW03Ci0JcHNodWZkCXhtbTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0
LHhtbTE0Ci0JbW92ZHFhCXhtbTIseG1tNgotCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tNgot
CXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1tMTMseG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYK
LQlweG9yCXhtbTYseG1tMTMKLQltb3ZkcXUJeG1tOSxYTU1XT1JEWzMyK3IxMl0KLQljbXAJcjE0
LDQ4Ci0JamUJTkVBUiAkTCR4dHNfZW5jXzMKLQlweG9yCXhtbTAseG1tOAotCXBzaHVmZAl4bW0x
Myx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxYQl4bW0zLHhtbTYKLQltb3Zk
cWEJWE1NV09SRFs2NCtyc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHht
bTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JbW92ZHF1CXhtbTEw
LFhNTVdPUkRbNDgrcjEyXQotCWNtcAlyMTQsNjQKLQlqZQlORUFSICRMJHh0c19lbmNfNAotCXB4
b3IJeG1tMSx4bW05Ci0JcHNodWZkCXhtbTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0
Ci0JbW92ZHFhCXhtbTQseG1tNgotCW1vdmRxYQlYTU1XT1JEWzgwK3JzcF0seG1tNgotCXBhZGRx
CXhtbTYseG1tNgotCXBhbmQJeG1tMTMseG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9y
CXhtbTYseG1tMTMKLQltb3ZkcXUJeG1tMTEsWE1NV09SRFs2NCtyMTJdCi0JY21wCXIxNCw4MAot
CWplCU5FQVIgJEwkeHRzX2VuY181Ci0JcHhvcgl4bW0yLHhtbTEwCi0JcHNodWZkCXhtbTEzLHht
bTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFhCXhtbTUseG1tNgotCW1vdmRxYQlY
TU1XT1JEWzk2K3JzcF0seG1tNgotCXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1tMTMseG1tMTIK
LQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMKLQltb3ZkcXUJeG1tMTIsWE1N
V09SRFs4MCtyMTJdCi0JY21wCXIxNCw5NgotCWplCU5FQVIgJEwkeHRzX2VuY182Ci0JcHhvcgl4
bW0zLHhtbTExCi0JbW92ZHF1CXhtbTEzLFhNTVdPUkRbOTYrcjEyXQotCXB4b3IJeG1tNCx4bW0x
MgotCW1vdmRxYQlYTU1XT1JEWzExMityc3BdLHhtbTYKLQlsZWEJcjEyLFsxMTIrcjEyXQotCXB4
b3IJeG1tNSx4bW0xMwotCWxlYQlyYXgsWzEyOCtyc3BdCi0JbW92CXIxMGQsZWR4Ci0KLQljYWxs
CV9ic2Flc19lbmNyeXB0OAotCi0JcHhvcgl4bW0xNSxYTU1XT1JEW3JzcF0KLQlweG9yCXhtbTAs
WE1NV09SRFsxNityc3BdCi0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0xNQotCXB4b3IJeG1tMyxY
TU1XT1JEWzMyK3JzcF0KLQltb3ZkcXUJWE1NV09SRFsxNityMTNdLHhtbTAKLQlweG9yCXhtbTUs
WE1NV09SRFs0OCtyc3BdCi0JbW92ZHF1CVhNTVdPUkRbMzIrcjEzXSx4bW0zCi0JcHhvcgl4bW0y
LFhNTVdPUkRbNjQrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzQ4K3IxM10seG1tNQotCXB4b3IJeG1t
NixYTU1XT1JEWzgwK3JzcF0KLQltb3ZkcXUJWE1NV09SRFs2NCtyMTNdLHhtbTIKLQlweG9yCXht
bTEsWE1NV09SRFs5Nityc3BdCi0JbW92ZHF1CVhNTVdPUkRbODArcjEzXSx4bW02Ci0JbW92ZHF1
CVhNTVdPUkRbOTYrcjEzXSx4bW0xCi0JbGVhCXIxMyxbMTEyK3IxM10KLQotCW1vdmRxYQl4bW02
LFhNTVdPUkRbMTEyK3JzcF0KLQlqbXAJTkVBUiAkTCR4dHNfZW5jX2RvbmUKLUFMSUdOCTE2Ci0k
TCR4dHNfZW5jXzY6Ci0JcHhvcgl4bW0zLHhtbTExCi0JbGVhCXIxMixbOTYrcjEyXQotCXB4b3IJ
eG1tNCx4bW0xMgotCWxlYQlyYXgsWzEyOCtyc3BdCi0JbW92CXIxMGQsZWR4Ci0KLQljYWxsCV9i
c2Flc19lbmNyeXB0OAotCi0JcHhvcgl4bW0xNSxYTU1XT1JEW3JzcF0KLQlweG9yCXhtbTAsWE1N
V09SRFsxNityc3BdCi0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0xNQotCXB4b3IJeG1tMyxYTU1X
T1JEWzMyK3JzcF0KLQltb3ZkcXUJWE1NV09SRFsxNityMTNdLHhtbTAKLQlweG9yCXhtbTUsWE1N
V09SRFs0OCtyc3BdCi0JbW92ZHF1CVhNTVdPUkRbMzIrcjEzXSx4bW0zCi0JcHhvcgl4bW0yLFhN
TVdPUkRbNjQrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzQ4K3IxM10seG1tNQotCXB4b3IJeG1tNixY
TU1XT1JEWzgwK3JzcF0KLQltb3ZkcXUJWE1NV09SRFs2NCtyMTNdLHhtbTIKLQltb3ZkcXUJWE1N
V09SRFs4MCtyMTNdLHhtbTYKLQlsZWEJcjEzLFs5NityMTNdCi0KLQltb3ZkcWEJeG1tNixYTU1X
T1JEWzk2K3JzcF0KLQlqbXAJTkVBUiAkTCR4dHNfZW5jX2RvbmUKLUFMSUdOCTE2Ci0kTCR4dHNf
ZW5jXzU6Ci0JcHhvcgl4bW0yLHhtbTEwCi0JbGVhCXIxMixbODArcjEyXQotCXB4b3IJeG1tMyx4
bW0xMQotCWxlYQlyYXgsWzEyOCtyc3BdCi0JbW92CXIxMGQsZWR4Ci0KLQljYWxsCV9ic2Flc19l
bmNyeXB0OAotCi0JcHhvcgl4bW0xNSxYTU1XT1JEW3JzcF0KLQlweG9yCXhtbTAsWE1NV09SRFsx
Nityc3BdCi0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0xNQotCXB4b3IJeG1tMyxYTU1XT1JEWzMy
K3JzcF0KLQltb3ZkcXUJWE1NV09SRFsxNityMTNdLHhtbTAKLQlweG9yCXhtbTUsWE1NV09SRFs0
OCtyc3BdCi0JbW92ZHF1CVhNTVdPUkRbMzIrcjEzXSx4bW0zCi0JcHhvcgl4bW0yLFhNTVdPUkRb
NjQrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzQ4K3IxM10seG1tNQotCW1vdmRxdQlYTU1XT1JEWzY0
K3IxM10seG1tMgotCWxlYQlyMTMsWzgwK3IxM10KLQotCW1vdmRxYQl4bW02LFhNTVdPUkRbODAr
cnNwXQotCWptcAlORUFSICRMJHh0c19lbmNfZG9uZQotQUxJR04JMTYKLSRMJHh0c19lbmNfNDoK
LQlweG9yCXhtbTEseG1tOQotCWxlYQlyMTIsWzY0K3IxMl0KLQlweG9yCXhtbTIseG1tMTAKLQls
ZWEJcmF4LFsxMjgrcnNwXQotCW1vdglyMTBkLGVkeAotCi0JY2FsbAlfYnNhZXNfZW5jcnlwdDgK
LQotCXB4b3IJeG1tMTUsWE1NV09SRFtyc3BdCi0JcHhvcgl4bW0wLFhNTVdPUkRbMTYrcnNwXQot
CW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQlweG9yCXhtbTMsWE1NV09SRFszMityc3BdCi0J
bW92ZHF1CVhNTVdPUkRbMTYrcjEzXSx4bW0wCi0JcHhvcgl4bW01LFhNTVdPUkRbNDgrcnNwXQot
CW1vdmRxdQlYTU1XT1JEWzMyK3IxM10seG1tMwotCW1vdmRxdQlYTU1XT1JEWzQ4K3IxM10seG1t
NQotCWxlYQlyMTMsWzY0K3IxM10KLQotCW1vdmRxYQl4bW02LFhNTVdPUkRbNjQrcnNwXQotCWpt
cAlORUFSICRMJHh0c19lbmNfZG9uZQotQUxJR04JMTYKLSRMJHh0c19lbmNfMzoKLQlweG9yCXht
bTAseG1tOAotCWxlYQlyMTIsWzQ4K3IxMl0KLQlweG9yCXhtbTEseG1tOQotCWxlYQlyYXgsWzEy
OCtyc3BdCi0JbW92CXIxMGQsZWR4Ci0KLQljYWxsCV9ic2Flc19lbmNyeXB0OAotCi0JcHhvcgl4
bW0xNSxYTU1XT1JEW3JzcF0KLQlweG9yCXhtbTAsWE1NV09SRFsxNityc3BdCi0JbW92ZHF1CVhN
TVdPUkRbcjEzXSx4bW0xNQotCXB4b3IJeG1tMyxYTU1XT1JEWzMyK3JzcF0KLQltb3ZkcXUJWE1N
V09SRFsxNityMTNdLHhtbTAKLQltb3ZkcXUJWE1NV09SRFszMityMTNdLHhtbTMKLQlsZWEJcjEz
LFs0OCtyMTNdCi0KLQltb3ZkcWEJeG1tNixYTU1XT1JEWzQ4K3JzcF0KLQlqbXAJTkVBUiAkTCR4
dHNfZW5jX2RvbmUKLUFMSUdOCTE2Ci0kTCR4dHNfZW5jXzI6Ci0JcHhvcgl4bW0xNSx4bW03Ci0J
bGVhCXIxMixbMzIrcjEyXQotCXB4b3IJeG1tMCx4bW04Ci0JbGVhCXJheCxbMTI4K3JzcF0KLQlt
b3YJcjEwZCxlZHgKLQotCWNhbGwJX2JzYWVzX2VuY3J5cHQ4Ci0KLQlweG9yCXhtbTE1LFhNTVdP
UkRbcnNwXQotCXB4b3IJeG1tMCxYTU1XT1JEWzE2K3JzcF0KLQltb3ZkcXUJWE1NV09SRFtyMTNd
LHhtbTE1Ci0JbW92ZHF1CVhNTVdPUkRbMTYrcjEzXSx4bW0wCi0JbGVhCXIxMyxbMzIrcjEzXQot
Ci0JbW92ZHFhCXhtbTYsWE1NV09SRFszMityc3BdCi0Jam1wCU5FQVIgJEwkeHRzX2VuY19kb25l
Ci1BTElHTgkxNgotJEwkeHRzX2VuY18xOgotCXB4b3IJeG1tNyx4bW0xNQotCWxlYQlyMTIsWzE2
K3IxMl0KLQltb3ZkcWEJWE1NV09SRFszMityYnBdLHhtbTcKLQlsZWEJcmN4LFszMityYnBdCi0J
bGVhCXJkeCxbMzIrcmJwXQotCWxlYQlyOCxbcjE1XQotCWNhbGwJYWVzX25vaHdfZW5jcnlwdAot
CXB4b3IJeG1tMTUsWE1NV09SRFszMityYnBdCi0KLQotCi0KLQotCW1vdmRxdQlYTU1XT1JEW3Ix
M10seG1tMTUKLQlsZWEJcjEzLFsxNityMTNdCi0KLQltb3ZkcWEJeG1tNixYTU1XT1JEWzE2K3Jz
cF0KLQotJEwkeHRzX2VuY19kb25lOgotCWFuZAllYngsMTUKLQlqeglORUFSICRMJHh0c19lbmNf
cmV0Ci0JbW92CXJkeCxyMTMKLQotJEwkeHRzX2VuY19zdGVhbDoKLQltb3Z6eAllYXgsQllURVty
MTJdCi0JbW92engJZWN4LEJZVEVbKCgtMTYpKStyZHhdCi0JbGVhCXIxMixbMStyMTJdCi0JbW92
CUJZVEVbKCgtMTYpKStyZHhdLGFsCi0JbW92CUJZVEVbcmR4XSxjbAotCWxlYQlyZHgsWzErcmR4
XQotCXN1YgllYngsMQotCWpueglORUFSICRMJHh0c19lbmNfc3RlYWwKLQotCW1vdmRxdQl4bW0x
NSxYTU1XT1JEWygoLTE2KSkrcjEzXQotCWxlYQlyY3gsWzMyK3JicF0KLQlweG9yCXhtbTE1LHht
bTYKLQlsZWEJcmR4LFszMityYnBdCi0JbW92ZHFhCVhNTVdPUkRbMzIrcmJwXSx4bW0xNQotCWxl
YQlyOCxbcjE1XQotCWNhbGwJYWVzX25vaHdfZW5jcnlwdAotCXB4b3IJeG1tNixYTU1XT1JEWzMy
K3JicF0KLQltb3ZkcXUJWE1NV09SRFsoLTE2KStyMTNdLHhtbTYKLQotJEwkeHRzX2VuY19yZXQ6
Ci0JbGVhCXJheCxbcnNwXQotCXB4b3IJeG1tMCx4bW0wCi0kTCR4dHNfZW5jX2J6ZXJvOgotCW1v
dmRxYQlYTU1XT1JEW3JheF0seG1tMAotCW1vdmRxYQlYTU1XT1JEWzE2K3JheF0seG1tMAotCWxl
YQlyYXgsWzMyK3JheF0KLQljbXAJcmJwLHJheAotCWphCU5FQVIgJEwkeHRzX2VuY19iemVybwot
Ci0JbGVhCXJheCxbMTIwK3JicF0KLQotCW1vdmFwcwl4bW02LFhNTVdPUkRbNjQrcmJwXQotCW1v
dmFwcwl4bW03LFhNTVdPUkRbODArcmJwXQotCW1vdmFwcwl4bW04LFhNTVdPUkRbOTYrcmJwXQot
CW1vdmFwcwl4bW05LFhNTVdPUkRbMTEyK3JicF0KLQltb3ZhcHMJeG1tMTAsWE1NV09SRFsxMjgr
cmJwXQotCW1vdmFwcwl4bW0xMSxYTU1XT1JEWzE0NCtyYnBdCi0JbW92YXBzCXhtbTEyLFhNTVdP
UkRbMTYwK3JicF0KLQltb3ZhcHMJeG1tMTMsWE1NV09SRFsxNzYrcmJwXQotCW1vdmFwcwl4bW0x
NCxYTU1XT1JEWzE5MityYnBdCi0JbW92YXBzCXhtbTE1LFhNTVdPUkRbMjA4K3JicF0KLQlsZWEJ
cmF4LFsxNjArcmF4XQotJEwkeHRzX2VuY190YWlsOgotCW1vdglyMTUsUVdPUkRbKCgtNDgpKSty
YXhdCi0KLQltb3YJcjE0LFFXT1JEWygoLTQwKSkrcmF4XQotCi0JbW92CXIxMyxRV09SRFsoKC0z
MikpK3JheF0KLQotCW1vdglyMTIsUVdPUkRbKCgtMjQpKStyYXhdCi0KLQltb3YJcmJ4LFFXT1JE
WygoLTE2KSkrcmF4XQotCi0JbW92CXJicCxRV09SRFsoKC04KSkrcmF4XQotCi0JbGVhCXJzcCxb
cmF4XQotCi0kTCR4dHNfZW5jX2VwaWxvZ3VlOgotCURCCTBGM2gsMEMzaAkJO3JlcHJldAotCi0K
LQotZ2xvYmFsCWJzYWVzX3h0c19kZWNyeXB0Ci0KLUFMSUdOCTE2Ci1ic2Flc194dHNfZGVjcnlw
dDoKLQotCW1vdglyYXgscnNwCi0kTCR4dHNfZGVjX3Byb2xvZ3VlOgotCXB1c2gJcmJwCi0KLQlw
dXNoCXJieAotCi0JcHVzaAlyMTIKLQotCXB1c2gJcjEzCi0KLQlwdXNoCXIxNAotCi0JcHVzaAly
MTUKLQotCWxlYQlyc3AsWygoLTcyKSkrcnNwXQotCi0JbW92CXIxMCxRV09SRFsxNjArcnNwXQot
CW1vdglyMTEsUVdPUkRbMTY4K3JzcF0KLQlsZWEJcnNwLFsoKC0xNjApKStyc3BdCi0JbW92YXBz
CVhNTVdPUkRbNjQrcnNwXSx4bW02Ci0JbW92YXBzCVhNTVdPUkRbODArcnNwXSx4bW03Ci0JbW92
YXBzCVhNTVdPUkRbOTYrcnNwXSx4bW04Ci0JbW92YXBzCVhNTVdPUkRbMTEyK3JzcF0seG1tOQot
CW1vdmFwcwlYTU1XT1JEWzEyOCtyc3BdLHhtbTEwCi0JbW92YXBzCVhNTVdPUkRbMTQ0K3JzcF0s
eG1tMTEKLQltb3ZhcHMJWE1NV09SRFsxNjArcnNwXSx4bW0xMgotCW1vdmFwcwlYTU1XT1JEWzE3
Nityc3BdLHhtbTEzCi0JbW92YXBzCVhNTVdPUkRbMTkyK3JzcF0seG1tMTQKLQltb3ZhcHMJWE1N
V09SRFsyMDgrcnNwXSx4bW0xNQotJEwkeHRzX2RlY19ib2R5OgotCW1vdglyYnAscnNwCi0JbW92
CXIxMixyY3gKLQltb3YJcjEzLHJkeAotCW1vdglyMTQscjgKLQltb3YJcjE1LHI5Ci0KLQlsZWEJ
cmN4LFtyMTFdCi0JbGVhCXJkeCxbMzIrcmJwXQotCWxlYQlyOCxbcjEwXQotCWNhbGwJYWVzX25v
aHdfZW5jcnlwdAotCi0JbW92CWVheCxEV09SRFsyNDArcjE1XQotCW1vdglyYngscjE0Ci0KLQlt
b3YJZWR4LGVheAotCXNobAlyYXgsNwotCXN1YglyYXgsOTYKLQlzdWIJcnNwLHJheAotCi0JbW92
CXJheCxyc3AKLQltb3YJcmN4LHIxNQotCW1vdglyMTBkLGVkeAotCWNhbGwJX2JzYWVzX2tleV9j
b252ZXJ0Ci0JcHhvcgl4bW03LFhNTVdPUkRbcnNwXQotCW1vdmRxYQlYTU1XT1JEW3JheF0seG1t
NgotCW1vdmRxYQlYTU1XT1JEW3JzcF0seG1tNwotCi0JeG9yCWVheCxlYXgKLQlhbmQJcjE0LC0x
NgotCXRlc3QJZWJ4LDE1Ci0Jc2V0bnoJYWwKLQlzaGwJcmF4LDQKLQlzdWIJcjE0LHJheAotCi0J
c3ViCXJzcCwweDgwCi0JbW92ZHFhCXhtbTYsWE1NV09SRFszMityYnBdCi0KLQlweG9yCXhtbTE0
LHhtbTE0Ci0JbW92ZHFhCXhtbTEyLFhNTVdPUkRbJEwkeHRzX21hZ2ljXQotCXBjbXBndGQJeG1t
MTQseG1tNgotCi0Jc3ViCXIxNCwweDgwCi0JamMJTkVBUiAkTCR4dHNfZGVjX3Nob3J0Ci0Jam1w
CU5FQVIgJEwkeHRzX2RlY19sb29wCi0KLUFMSUdOCTE2Ci0kTCR4dHNfZGVjX2xvb3A6Ci0JcHNo
dWZkCXhtbTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFhCXhtbTE1LHht
bTYKLQltb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXht
bTEzLHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JcHNodWZk
CXhtbTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFhCXhtbTAseG1tNgot
CW1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tNgotCXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1t
MTMseG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMKLQltb3ZkcXUJ
eG1tNyxYTU1XT1JEW3IxMl0KLQlwc2h1ZmQJeG1tMTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQs
eG1tMTQKLQltb3ZkcWEJeG1tMSx4bW02Ci0JbW92ZHFhCVhNTVdPUkRbMzIrcnNwXSx4bW02Ci0J
cGFkZHEJeG1tNix4bW02Ci0JcGFuZAl4bW0xMyx4bW0xMgotCXBjbXBndGQJeG1tMTQseG1tNgot
CXB4b3IJeG1tNix4bW0xMwotCW1vdmRxdQl4bW04LFhNTVdPUkRbMTYrcjEyXQotCXB4b3IJeG1t
MTUseG1tNwotCXBzaHVmZAl4bW0xMyx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1v
dmRxYQl4bW0yLHhtbTYKLQltb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTYKLQlwYWRkcQl4bW02
LHhtbTYKLQlwYW5kCXhtbTEzLHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02
LHhtbTEzCi0JbW92ZHF1CXhtbTksWE1NV09SRFszMityMTJdCi0JcHhvcgl4bW0wLHhtbTgKLQlw
c2h1ZmQJeG1tMTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJeG1tMyx4
bW02Ci0JbW92ZHFhCVhNTVdPUkRbNjQrcnNwXSx4bW02Ci0JcGFkZHEJeG1tNix4bW02Ci0JcGFu
ZAl4bW0xMyx4bW0xMgotCXBjbXBndGQJeG1tMTQseG1tNgotCXB4b3IJeG1tNix4bW0xMwotCW1v
dmRxdQl4bW0xMCxYTU1XT1JEWzQ4K3IxMl0KLQlweG9yCXhtbTEseG1tOQotCXBzaHVmZAl4bW0x
Myx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxYQl4bW00LHhtbTYKLQltb3Zk
cWEJWE1NV09SRFs4MCtyc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHht
bTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JbW92ZHF1CXhtbTEx
LFhNTVdPUkRbNjQrcjEyXQotCXB4b3IJeG1tMix4bW0xMAotCXBzaHVmZAl4bW0xMyx4bW0xNCww
eDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxYQl4bW01LHhtbTYKLQltb3ZkcWEJWE1NV09S
RFs5Nityc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHhtbTEyCi0JcGNt
cGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JbW92ZHF1CXhtbTEyLFhNTVdPUkRb
ODArcjEyXQotCXB4b3IJeG1tMyx4bW0xMQotCW1vdmRxdQl4bW0xMyxYTU1XT1JEWzk2K3IxMl0K
LQlweG9yCXhtbTQseG1tMTIKLQltb3ZkcXUJeG1tMTQsWE1NV09SRFsxMTIrcjEyXQotCWxlYQly
MTIsWzEyOCtyMTJdCi0JbW92ZHFhCVhNTVdPUkRbMTEyK3JzcF0seG1tNgotCXB4b3IJeG1tNSx4
bW0xMwotCWxlYQlyYXgsWzEyOCtyc3BdCi0JcHhvcgl4bW02LHhtbTE0Ci0JbW92CXIxMGQsZWR4
Ci0KLQljYWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgl4bW0xNSxYTU1XT1JEW3JzcF0KLQlw
eG9yCXhtbTAsWE1NV09SRFsxNityc3BdCi0JbW92ZHF1CVhNTVdPUkRbcjEzXSx4bW0xNQotCXB4
b3IJeG1tNSxYTU1XT1JEWzMyK3JzcF0KLQltb3ZkcXUJWE1NV09SRFsxNityMTNdLHhtbTAKLQlw
eG9yCXhtbTMsWE1NV09SRFs0OCtyc3BdCi0JbW92ZHF1CVhNTVdPUkRbMzIrcjEzXSx4bW01Ci0J
cHhvcgl4bW0xLFhNTVdPUkRbNjQrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzQ4K3IxM10seG1tMwot
CXB4b3IJeG1tNixYTU1XT1JEWzgwK3JzcF0KLQltb3ZkcXUJWE1NV09SRFs2NCtyMTNdLHhtbTEK
LQlweG9yCXhtbTIsWE1NV09SRFs5Nityc3BdCi0JbW92ZHF1CVhNTVdPUkRbODArcjEzXSx4bW02
Ci0JcHhvcgl4bW00LFhNTVdPUkRbMTEyK3JzcF0KLQltb3ZkcXUJWE1NV09SRFs5NityMTNdLHht
bTIKLQltb3ZkcXUJWE1NV09SRFsxMTIrcjEzXSx4bW00Ci0JbGVhCXIxMyxbMTI4K3IxM10KLQot
CW1vdmRxYQl4bW02LFhNTVdPUkRbMTEyK3JzcF0KLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFh
CXhtbTEyLFhNTVdPUkRbJEwkeHRzX21hZ2ljXQotCXBjbXBndGQJeG1tMTQseG1tNgotCXBzaHVm
ZAl4bW0xMyx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCXBhZGRxCXhtbTYseG1tNgot
CXBhbmQJeG1tMTMseG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMK
LQotCXN1YglyMTQsMHg4MAotCWpuYwlORUFSICRMJHh0c19kZWNfbG9vcAotCi0kTCR4dHNfZGVj
X3Nob3J0OgotCWFkZAlyMTQsMHg4MAotCWp6CU5FQVIgJEwkeHRzX2RlY19kb25lCi0JcHNodWZk
CXhtbTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFhCXhtbTE1LHhtbTYK
LQltb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEz
LHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JcHNodWZkCXht
bTEzLHhtbTE0LDB4MTMKLQlweG9yCXhtbTE0LHhtbTE0Ci0JbW92ZHFhCXhtbTAseG1tNgotCW1v
dmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tNgotCXBhZGRxCXhtbTYseG1tNgotCXBhbmQJeG1tMTMs
eG1tMTIKLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlweG9yCXhtbTYseG1tMTMKLQltb3ZkcXUJeG1t
NyxYTU1XT1JEW3IxMl0KLQljbXAJcjE0LDE2Ci0JamUJTkVBUiAkTCR4dHNfZGVjXzEKLQlwc2h1
ZmQJeG1tMTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJeG1tMSx4bW02
Ci0JbW92ZHFhCVhNTVdPUkRbMzIrcnNwXSx4bW02Ci0JcGFkZHEJeG1tNix4bW02Ci0JcGFuZAl4
bW0xMyx4bW0xMgotCXBjbXBndGQJeG1tMTQseG1tNgotCXB4b3IJeG1tNix4bW0xMwotCW1vdmRx
dQl4bW04LFhNTVdPUkRbMTYrcjEyXQotCWNtcAlyMTQsMzIKLQlqZQlORUFSICRMJHh0c19kZWNf
MgotCXB4b3IJeG1tMTUseG1tNwotCXBzaHVmZAl4bW0xMyx4bW0xNCwweDEzCi0JcHhvcgl4bW0x
NCx4bW0xNAotCW1vdmRxYQl4bW0yLHhtbTYKLQltb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTYK
LQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02
Ci0JcHhvcgl4bW02LHhtbTEzCi0JbW92ZHF1CXhtbTksWE1NV09SRFszMityMTJdCi0JY21wCXIx
NCw0OAotCWplCU5FQVIgJEwkeHRzX2RlY18zCi0JcHhvcgl4bW0wLHhtbTgKLQlwc2h1ZmQJeG1t
MTMseG1tMTQsMHgxMwotCXB4b3IJeG1tMTQseG1tMTQKLQltb3ZkcWEJeG1tMyx4bW02Ci0JbW92
ZHFhCVhNTVdPUkRbNjQrcnNwXSx4bW02Ci0JcGFkZHEJeG1tNix4bW02Ci0JcGFuZAl4bW0xMyx4
bW0xMgotCXBjbXBndGQJeG1tMTQseG1tNgotCXB4b3IJeG1tNix4bW0xMwotCW1vdmRxdQl4bW0x
MCxYTU1XT1JEWzQ4K3IxMl0KLQljbXAJcjE0LDY0Ci0JamUJTkVBUiAkTCR4dHNfZGVjXzQKLQlw
eG9yCXhtbTEseG1tOQotCXBzaHVmZAl4bW0xMyx4bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0x
NAotCW1vdmRxYQl4bW00LHhtbTYKLQltb3ZkcWEJWE1NV09SRFs4MCtyc3BdLHhtbTYKLQlwYWRk
cQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHhtbTEyCi0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhv
cgl4bW02LHhtbTEzCi0JbW92ZHF1CXhtbTExLFhNTVdPUkRbNjQrcjEyXQotCWNtcAlyMTQsODAK
LQlqZQlORUFSICRMJHh0c19kZWNfNQotCXB4b3IJeG1tMix4bW0xMAotCXBzaHVmZAl4bW0xMyx4
bW0xNCwweDEzCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxYQl4bW01LHhtbTYKLQltb3ZkcWEJ
WE1NV09SRFs5Nityc3BdLHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHhtbTEy
Ci0JcGNtcGd0ZAl4bW0xNCx4bW02Ci0JcHhvcgl4bW02LHhtbTEzCi0JbW92ZHF1CXhtbTEyLFhN
TVdPUkRbODArcjEyXQotCWNtcAlyMTQsOTYKLQlqZQlORUFSICRMJHh0c19kZWNfNgotCXB4b3IJ
eG1tMyx4bW0xMQotCW1vdmRxdQl4bW0xMyxYTU1XT1JEWzk2K3IxMl0KLQlweG9yCXhtbTQseG1t
MTIKLQltb3ZkcWEJWE1NV09SRFsxMTIrcnNwXSx4bW02Ci0JbGVhCXIxMixbMTEyK3IxMl0KLQlw
eG9yCXhtbTUseG1tMTMKLQlsZWEJcmF4LFsxMjgrcnNwXQotCW1vdglyMTBkLGVkeAotCi0JY2Fs
bAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJeG1tMTUsWE1NV09SRFtyc3BdCi0JcHhvcgl4bW0w
LFhNTVdPUkRbMTYrcnNwXQotCW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQlweG9yCXhtbTUs
WE1NV09SRFszMityc3BdCi0JbW92ZHF1CVhNTVdPUkRbMTYrcjEzXSx4bW0wCi0JcHhvcgl4bW0z
LFhNTVdPUkRbNDgrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzMyK3IxM10seG1tNQotCXB4b3IJeG1t
MSxYTU1XT1JEWzY0K3JzcF0KLQltb3ZkcXUJWE1NV09SRFs0OCtyMTNdLHhtbTMKLQlweG9yCXht
bTYsWE1NV09SRFs4MCtyc3BdCi0JbW92ZHF1CVhNTVdPUkRbNjQrcjEzXSx4bW0xCi0JcHhvcgl4
bW0yLFhNTVdPUkRbOTYrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzgwK3IxM10seG1tNgotCW1vdmRx
dQlYTU1XT1JEWzk2K3IxM10seG1tMgotCWxlYQlyMTMsWzExMityMTNdCi0KLQltb3ZkcWEJeG1t
NixYTU1XT1JEWzExMityc3BdCi0Jam1wCU5FQVIgJEwkeHRzX2RlY19kb25lCi1BTElHTgkxNgot
JEwkeHRzX2RlY182OgotCXB4b3IJeG1tMyx4bW0xMQotCWxlYQlyMTIsWzk2K3IxMl0KLQlweG9y
CXhtbTQseG1tMTIKLQlsZWEJcmF4LFsxMjgrcnNwXQotCW1vdglyMTBkLGVkeAotCi0JY2FsbAlf
YnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJeG1tMTUsWE1NV09SRFtyc3BdCi0JcHhvcgl4bW0wLFhN
TVdPUkRbMTYrcnNwXQotCW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQlweG9yCXhtbTUsWE1N
V09SRFszMityc3BdCi0JbW92ZHF1CVhNTVdPUkRbMTYrcjEzXSx4bW0wCi0JcHhvcgl4bW0zLFhN
TVdPUkRbNDgrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzMyK3IxM10seG1tNQotCXB4b3IJeG1tMSxY
TU1XT1JEWzY0K3JzcF0KLQltb3ZkcXUJWE1NV09SRFs0OCtyMTNdLHhtbTMKLQlweG9yCXhtbTYs
WE1NV09SRFs4MCtyc3BdCi0JbW92ZHF1CVhNTVdPUkRbNjQrcjEzXSx4bW0xCi0JbW92ZHF1CVhN
TVdPUkRbODArcjEzXSx4bW02Ci0JbGVhCXIxMyxbOTYrcjEzXQotCi0JbW92ZHFhCXhtbTYsWE1N
V09SRFs5Nityc3BdCi0Jam1wCU5FQVIgJEwkeHRzX2RlY19kb25lCi1BTElHTgkxNgotJEwkeHRz
X2RlY181OgotCXB4b3IJeG1tMix4bW0xMAotCWxlYQlyMTIsWzgwK3IxMl0KLQlweG9yCXhtbTMs
eG1tMTEKLQlsZWEJcmF4LFsxMjgrcnNwXQotCW1vdglyMTBkLGVkeAotCi0JY2FsbAlfYnNhZXNf
ZGVjcnlwdDgKLQotCXB4b3IJeG1tMTUsWE1NV09SRFtyc3BdCi0JcHhvcgl4bW0wLFhNTVdPUkRb
MTYrcnNwXQotCW1vdmRxdQlYTU1XT1JEW3IxM10seG1tMTUKLQlweG9yCXhtbTUsWE1NV09SRFsz
Mityc3BdCi0JbW92ZHF1CVhNTVdPUkRbMTYrcjEzXSx4bW0wCi0JcHhvcgl4bW0zLFhNTVdPUkRb
NDgrcnNwXQotCW1vdmRxdQlYTU1XT1JEWzMyK3IxM10seG1tNQotCXB4b3IJeG1tMSxYTU1XT1JE
WzY0K3JzcF0KLQltb3ZkcXUJWE1NV09SRFs0OCtyMTNdLHhtbTMKLQltb3ZkcXUJWE1NV09SRFs2
NCtyMTNdLHhtbTEKLQlsZWEJcjEzLFs4MCtyMTNdCi0KLQltb3ZkcWEJeG1tNixYTU1XT1JEWzgw
K3JzcF0KLQlqbXAJTkVBUiAkTCR4dHNfZGVjX2RvbmUKLUFMSUdOCTE2Ci0kTCR4dHNfZGVjXzQ6
Ci0JcHhvcgl4bW0xLHhtbTkKLQlsZWEJcjEyLFs2NCtyMTJdCi0JcHhvcgl4bW0yLHhtbTEwCi0J
bGVhCXJheCxbMTI4K3JzcF0KLQltb3YJcjEwZCxlZHgKLQotCWNhbGwJX2JzYWVzX2RlY3J5cHQ4
Ci0KLQlweG9yCXhtbTE1LFhNTVdPUkRbcnNwXQotCXB4b3IJeG1tMCxYTU1XT1JEWzE2K3JzcF0K
LQltb3ZkcXUJWE1NV09SRFtyMTNdLHhtbTE1Ci0JcHhvcgl4bW01LFhNTVdPUkRbMzIrcnNwXQot
CW1vdmRxdQlYTU1XT1JEWzE2K3IxM10seG1tMAotCXB4b3IJeG1tMyxYTU1XT1JEWzQ4K3JzcF0K
LQltb3ZkcXUJWE1NV09SRFszMityMTNdLHhtbTUKLQltb3ZkcXUJWE1NV09SRFs0OCtyMTNdLHht
bTMKLQlsZWEJcjEzLFs2NCtyMTNdCi0KLQltb3ZkcWEJeG1tNixYTU1XT1JEWzY0K3JzcF0KLQlq
bXAJTkVBUiAkTCR4dHNfZGVjX2RvbmUKLUFMSUdOCTE2Ci0kTCR4dHNfZGVjXzM6Ci0JcHhvcgl4
bW0wLHhtbTgKLQlsZWEJcjEyLFs0OCtyMTJdCi0JcHhvcgl4bW0xLHhtbTkKLQlsZWEJcmF4LFsx
MjgrcnNwXQotCW1vdglyMTBkLGVkeAotCi0JY2FsbAlfYnNhZXNfZGVjcnlwdDgKLQotCXB4b3IJ
eG1tMTUsWE1NV09SRFtyc3BdCi0JcHhvcgl4bW0wLFhNTVdPUkRbMTYrcnNwXQotCW1vdmRxdQlY
TU1XT1JEW3IxM10seG1tMTUKLQlweG9yCXhtbTUsWE1NV09SRFszMityc3BdCi0JbW92ZHF1CVhN
TVdPUkRbMTYrcjEzXSx4bW0wCi0JbW92ZHF1CVhNTVdPUkRbMzIrcjEzXSx4bW01Ci0JbGVhCXIx
MyxbNDgrcjEzXQotCi0JbW92ZHFhCXhtbTYsWE1NV09SRFs0OCtyc3BdCi0Jam1wCU5FQVIgJEwk
eHRzX2RlY19kb25lCi1BTElHTgkxNgotJEwkeHRzX2RlY18yOgotCXB4b3IJeG1tMTUseG1tNwot
CWxlYQlyMTIsWzMyK3IxMl0KLQlweG9yCXhtbTAseG1tOAotCWxlYQlyYXgsWzEyOCtyc3BdCi0J
bW92CXIxMGQsZWR4Ci0KLQljYWxsCV9ic2Flc19kZWNyeXB0OAotCi0JcHhvcgl4bW0xNSxYTU1X
T1JEW3JzcF0KLQlweG9yCXhtbTAsWE1NV09SRFsxNityc3BdCi0JbW92ZHF1CVhNTVdPUkRbcjEz
XSx4bW0xNQotCW1vdmRxdQlYTU1XT1JEWzE2K3IxM10seG1tMAotCWxlYQlyMTMsWzMyK3IxM10K
LQotCW1vdmRxYQl4bW02LFhNTVdPUkRbMzIrcnNwXQotCWptcAlORUFSICRMJHh0c19kZWNfZG9u
ZQotQUxJR04JMTYKLSRMJHh0c19kZWNfMToKLQlweG9yCXhtbTcseG1tMTUKLQlsZWEJcjEyLFsx
NityMTJdCi0JbW92ZHFhCVhNTVdPUkRbMzIrcmJwXSx4bW03Ci0JbGVhCXJjeCxbMzIrcmJwXQot
CWxlYQlyZHgsWzMyK3JicF0KLQlsZWEJcjgsW3IxNV0KLQljYWxsCWFlc19ub2h3X2RlY3J5cHQK
LQlweG9yCXhtbTE1LFhNTVdPUkRbMzIrcmJwXQotCi0KLQotCi0KLQltb3ZkcXUJWE1NV09SRFty
MTNdLHhtbTE1Ci0JbGVhCXIxMyxbMTYrcjEzXQotCi0JbW92ZHFhCXhtbTYsWE1NV09SRFsxNity
c3BdCi0KLSRMJHh0c19kZWNfZG9uZToKLQlhbmQJZWJ4LDE1Ci0JanoJTkVBUiAkTCR4dHNfZGVj
X3JldAotCi0JcHhvcgl4bW0xNCx4bW0xNAotCW1vdmRxYQl4bW0xMixYTU1XT1JEWyRMJHh0c19t
YWdpY10KLQlwY21wZ3RkCXhtbTE0LHhtbTYKLQlwc2h1ZmQJeG1tMTMseG1tMTQsMHgxMwotCW1v
dmRxYQl4bW01LHhtbTYKLQlwYWRkcQl4bW02LHhtbTYKLQlwYW5kCXhtbTEzLHhtbTEyCi0JbW92
ZHF1CXhtbTE1LFhNTVdPUkRbcjEyXQotCXB4b3IJeG1tNix4bW0xMwotCi0JbGVhCXJjeCxbMzIr
cmJwXQotCXB4b3IJeG1tMTUseG1tNgotCWxlYQlyZHgsWzMyK3JicF0KLQltb3ZkcWEJWE1NV09S
RFszMityYnBdLHhtbTE1Ci0JbGVhCXI4LFtyMTVdCi0JY2FsbAlhZXNfbm9od19kZWNyeXB0Ci0J
cHhvcgl4bW02LFhNTVdPUkRbMzIrcmJwXQotCW1vdglyZHgscjEzCi0JbW92ZHF1CVhNTVdPUkRb
cjEzXSx4bW02Ci0KLSRMJHh0c19kZWNfc3RlYWw6Ci0JbW92engJZWF4LEJZVEVbMTYrcjEyXQot
CW1vdnp4CWVjeCxCWVRFW3JkeF0KLQlsZWEJcjEyLFsxK3IxMl0KLQltb3YJQllURVtyZHhdLGFs
Ci0JbW92CUJZVEVbMTYrcmR4XSxjbAotCWxlYQlyZHgsWzErcmR4XQotCXN1YgllYngsMQotCWpu
eglORUFSICRMJHh0c19kZWNfc3RlYWwKLQotCW1vdmRxdQl4bW0xNSxYTU1XT1JEW3IxM10KLQls
ZWEJcmN4LFszMityYnBdCi0JcHhvcgl4bW0xNSx4bW01Ci0JbGVhCXJkeCxbMzIrcmJwXQotCW1v
dmRxYQlYTU1XT1JEWzMyK3JicF0seG1tMTUKLQlsZWEJcjgsW3IxNV0KLQljYWxsCWFlc19ub2h3
X2RlY3J5cHQKLQlweG9yCXhtbTUsWE1NV09SRFszMityYnBdCi0JbW92ZHF1CVhNTVdPUkRbcjEz
XSx4bW01Ci0KLSRMJHh0c19kZWNfcmV0OgotCWxlYQlyYXgsW3JzcF0KLQlweG9yCXhtbTAseG1t
MAotJEwkeHRzX2RlY19iemVybzoKLQltb3ZkcWEJWE1NV09SRFtyYXhdLHhtbTAKLQltb3ZkcWEJ
WE1NV09SRFsxNityYXhdLHhtbTAKLQlsZWEJcmF4LFszMityYXhdCi0JY21wCXJicCxyYXgKLQlq
YQlORUFSICRMJHh0c19kZWNfYnplcm8KLQotCWxlYQlyYXgsWzEyMCtyYnBdCi0KLQltb3ZhcHMJ
eG1tNixYTU1XT1JEWzY0K3JicF0KLQltb3ZhcHMJeG1tNyxYTU1XT1JEWzgwK3JicF0KLQltb3Zh
cHMJeG1tOCxYTU1XT1JEWzk2K3JicF0KLQltb3ZhcHMJeG1tOSxYTU1XT1JEWzExMityYnBdCi0J
bW92YXBzCXhtbTEwLFhNTVdPUkRbMTI4K3JicF0KLQltb3ZhcHMJeG1tMTEsWE1NV09SRFsxNDQr
cmJwXQotCW1vdmFwcwl4bW0xMixYTU1XT1JEWzE2MCtyYnBdCi0JbW92YXBzCXhtbTEzLFhNTVdP
UkRbMTc2K3JicF0KLQltb3ZhcHMJeG1tMTQsWE1NV09SRFsxOTIrcmJwXQotCW1vdmFwcwl4bW0x
NSxYTU1XT1JEWzIwOCtyYnBdCi0JbGVhCXJheCxbMTYwK3JheF0KLSRMJHh0c19kZWNfdGFpbDoK
LQltb3YJcjE1LFFXT1JEWygoLTQ4KSkrcmF4XQotCi0JbW92CXIxNCxRV09SRFsoKC00MCkpK3Jh
eF0KLQotCW1vdglyMTMsUVdPUkRbKCgtMzIpKStyYXhdCi0KLQltb3YJcjEyLFFXT1JEWygoLTI0
KSkrcmF4XQotCi0JbW92CXJieCxRV09SRFsoKC0xNikpK3JheF0KLQotCW1vdglyYnAsUVdPUkRb
KCgtOCkpK3JheF0KLQotCWxlYQlyc3AsW3JheF0KLQotJEwkeHRzX2RlY19lcGlsb2d1ZToKLQlE
QgkwRjNoLDBDM2gJCTtyZXByZXQKLQotCi0KLUFMSUdOCTY0Ci1fYnNhZXNfY29uc3Q6Ci0kTCRN
MElTUjoKLQlEUQkweDBhMGUwMjA2MDcwYjBmMDMsMHgwMDA0MDgwYzBkMDEwNTA5Ci0kTCRJU1JN
MDoKLQlEUQkweDAxMDQwYjBlMDIwNTA4MGYsMHgwMzA2MDkwYzAwMDcwYTBkCi0kTCRJU1I6Ci0J
RFEJMHgwNTA0MDcwNjAyMDEwMDAzLDB4MGYwZTBkMGMwODBiMGEwOQotJEwkQlMwOgotCURRCTB4
NTU1NTU1NTU1NTU1NTU1NSwweDU1NTU1NTU1NTU1NTU1NTUKLSRMJEJTMToKLQlEUQkweDMzMzMz
MzMzMzMzMzMzMzMsMHgzMzMzMzMzMzMzMzMzMzMzCi0kTCRCUzI6Ci0JRFEJMHgwZjBmMGYwZjBm
MGYwZjBmLDB4MGYwZjBmMGYwZjBmMGYwZgotJEwkU1I6Ci0JRFEJMHgwNTA0MDcwNjAwMDMwMjAx
LDB4MGYwZTBkMGMwYTA5MDgwYgotJEwkU1JNMDoKLQlEUQkweDAzMDQwOTBlMDAwNTBhMGYsMHgw
MTA2MGIwYzAyMDcwODBkCi0kTCRNMFNSOgotCURRCTB4MGEwZTAyMDYwZjAzMDcwYiwweDAwMDQw
ODBjMDUwOTBkMDEKLSRMJFNXUFVQOgotCURRCTB4MDcwNjA1MDQwMzAyMDEwMCwweDBjMGQwZTBm
MGIwYTA5MDgKLSRMJFNXUFVQTTBTUjoKLQlEUQkweDBhMGQwMjA2MGMwMzA3MGIsMHgwMDA0MDgw
ZjA1MDkwZTAxCi0kTCRBREQxOgotCURRCTB4MDAwMDAwMDAwMDAwMDAwMCwweDAwMDAwMDAxMDAw
MDAwMDAKLSRMJEFERDI6Ci0JRFEJMHgwMDAwMDAwMDAwMDAwMDAwLDB4MDAwMDAwMDIwMDAwMDAw
MAotJEwkQUREMzoKLQlEUQkweDAwMDAwMDAwMDAwMDAwMDAsMHgwMDAwMDAwMzAwMDAwMDAwCi0k
TCRBREQ0OgotCURRCTB4MDAwMDAwMDAwMDAwMDAwMCwweDAwMDAwMDA0MDAwMDAwMDAKLSRMJEFE
RDU6Ci0JRFEJMHgwMDAwMDAwMDAwMDAwMDAwLDB4MDAwMDAwMDUwMDAwMDAwMAotJEwkQURENjoK
LQlEUQkweDAwMDAwMDAwMDAwMDAwMDAsMHgwMDAwMDAwNjAwMDAwMDAwCi0kTCRBREQ3OgotCURR
CTB4MDAwMDAwMDAwMDAwMDAwMCwweDAwMDAwMDA3MDAwMDAwMDAKLSRMJEFERDg6Ci0JRFEJMHgw
MDAwMDAwMDAwMDAwMDAwLDB4MDAwMDAwMDgwMDAwMDAwMAotJEwkeHRzX21hZ2ljOgotCURECTB4
ODcsMCwxLDAKLSRMJG1hc2tzOgotCURRCTB4MDEwMTAxMDEwMTAxMDEwMSwweDAxMDEwMTAxMDEw
MTAxMDEKLQlEUQkweDAyMDIwMjAyMDIwMjAyMDIsMHgwMjAyMDIwMjAyMDIwMjAyCi0JRFEJMHgw
NDA0MDQwNDA0MDQwNDA0LDB4MDQwNDA0MDQwNDA0MDQwNAotCURRCTB4MDgwODA4MDgwODA4MDgw
OCwweDA4MDgwODA4MDgwODA4MDgKLSRMJE0wOgotCURRCTB4MDIwNjBhMGUwMzA3MGIwZiwweDAw
MDQwODBjMDEwNTA5MGQKLSRMJDYzOgotCURRCTB4NjM2MzYzNjM2MzYzNjM2MywweDYzNjM2MzYz
NjM2MzYzNjMKLURCCTY2LDEwNSwxMTYsNDUsMTE1LDEwOCwxMDUsOTksMTAxLDEwMCwzMiw2NSw2
OSw4MywzMiwxMDIKLURCCTExMSwxMTQsMzIsMTIwLDU2LDU0LDk1LDU0LDUyLDQ3LDgzLDgzLDgz
LDY5LDUxLDQ0Ci1EQgkzMiw2OSwxMDksMTA1LDEwOCwxMDUsOTcsMzIsNzUsMTk1LDE2NCwxMTUs
MTEyLDEwMSwxMTQsNDQKLURCCTMyLDgwLDEwMSwxMTYsMTAxLDExNCwzMiw4Myw5OSwxMDQsMTE5
LDk3LDk4LDEwMSw0NCwzMgotREIJNjUsMTEwLDEwMCwxMjEsMzIsODAsMTExLDEwOCwxMjEsOTcs
MTA3LDExMSwxMTgsMAotQUxJR04JNjQKLQotRVhURVJOCV9faW1wX1J0bFZpcnR1YWxVbndpbmQK
LQotQUxJR04JMTYKLXNlX2hhbmRsZXI6Ci0JcHVzaAlyc2kKLQlwdXNoCXJkaQotCXB1c2gJcmJ4
Ci0JcHVzaAlyYnAKLQlwdXNoCXIxMgotCXB1c2gJcjEzCi0JcHVzaAlyMTQKLQlwdXNoCXIxNQot
CXB1c2hmcQotCXN1Yglyc3AsNjQKLQotCW1vdglyYXgsUVdPUkRbMTIwK3I4XQotCW1vdglyYngs
UVdPUkRbMjQ4K3I4XQotCi0JbW92CXJzaSxRV09SRFs4K3I5XQotCW1vdglyMTEsUVdPUkRbNTYr
cjldCi0KLQltb3YJcjEwZCxEV09SRFtyMTFdCi0JbGVhCXIxMCxbcjEwKjErcnNpXQotCWNtcAly
YngscjEwCi0JamJlCU5FQVIgJEwkaW5fcHJvbG9ndWUKLQotCW1vdglyMTBkLERXT1JEWzQrcjEx
XQotCWxlYQlyMTAsW3IxMCoxK3JzaV0KLQljbXAJcmJ4LHIxMAotCWphZQlORUFSICRMJGluX3By
b2xvZ3VlCi0KLQltb3YJcjEwZCxEV09SRFs4K3IxMV0KLQlsZWEJcjEwLFtyMTAqMStyc2ldCi0J
Y21wCXJieCxyMTAKLQlqYWUJTkVBUiAkTCRpbl90YWlsCi0KLQltb3YJcmF4LFFXT1JEWzE2MCty
OF0KLQotCWxlYQlyc2ksWzY0K3JheF0KLQlsZWEJcmRpLFs1MTIrcjhdCi0JbW92CWVjeCwyMAot
CURECTB4YTU0OGYzZmMKLQlsZWEJcmF4LFsoKDE2MCsxMjApKStyYXhdCi0KLSRMJGluX3RhaWw6
Ci0JbW92CXJicCxRV09SRFsoKC00OCkpK3JheF0KLQltb3YJcmJ4LFFXT1JEWygoLTQwKSkrcmF4
XQotCW1vdglyMTIsUVdPUkRbKCgtMzIpKStyYXhdCi0JbW92CXIxMyxRV09SRFsoKC0yNCkpK3Jh
eF0KLQltb3YJcjE0LFFXT1JEWygoLTE2KSkrcmF4XQotCW1vdglyMTUsUVdPUkRbKCgtOCkpK3Jh
eF0KLQltb3YJUVdPUkRbMTQ0K3I4XSxyYngKLQltb3YJUVdPUkRbMTYwK3I4XSxyYnAKLQltb3YJ
UVdPUkRbMjE2K3I4XSxyMTIKLQltb3YJUVdPUkRbMjI0K3I4XSxyMTMKLQltb3YJUVdPUkRbMjMy
K3I4XSxyMTQKLQltb3YJUVdPUkRbMjQwK3I4XSxyMTUKLQotJEwkaW5fcHJvbG9ndWU6Ci0JbW92
CVFXT1JEWzE1MityOF0scmF4Ci0KLQltb3YJcmRpLFFXT1JEWzQwK3I5XQotCW1vdglyc2kscjgK
LQltb3YJZWN4LDE1NAotCURECTB4YTU0OGYzZmMKLQotCW1vdglyc2kscjkKLQl4b3IJcmN4LHJj
eAotCW1vdglyZHgsUVdPUkRbOCtyc2ldCi0JbW92CXI4LFFXT1JEW3JzaV0KLQltb3YJcjksUVdP
UkRbMTYrcnNpXQotCW1vdglyMTAsUVdPUkRbNDArcnNpXQotCWxlYQlyMTEsWzU2K3JzaV0KLQls
ZWEJcjEyLFsyNCtyc2ldCi0JbW92CVFXT1JEWzMyK3JzcF0scjEwCi0JbW92CVFXT1JEWzQwK3Jz
cF0scjExCi0JbW92CVFXT1JEWzQ4K3JzcF0scjEyCi0JbW92CVFXT1JEWzU2K3JzcF0scmN4Ci0J
Y2FsbAlRV09SRFtfX2ltcF9SdGxWaXJ0dWFsVW53aW5kXQotCi0JbW92CWVheCwxCi0JYWRkCXJz
cCw2NAotCXBvcGZxCi0JcG9wCXIxNQotCXBvcAlyMTQKLQlwb3AJcjEzCi0JcG9wCXIxMgotCXBv
cAlyYnAKLQlwb3AJcmJ4Ci0JcG9wCXJkaQotCXBvcAlyc2kKLQlEQgkwRjNoLDBDM2gJCTtyZXBy
ZXQKLQotCi1zZWN0aW9uCS5wZGF0YSByZGF0YSBhbGlnbj00Ci1BTElHTgk0Ci0JREQJJEwkY2Jj
X2RlY19wcm9sb2d1ZSB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRjYmNfZGVjX2VwaWxvZ3VlIHdy
dCAuLmltYWdlYmFzZQotCURECSRMJGNiY19kZWNfaW5mbyB3cnQgLi5pbWFnZWJhc2UKLQotCURE
CSRMJGN0cl9lbmNfcHJvbG9ndWUgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwkY3RyX2VuY19lcGls
b2d1ZSB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRjdHJfZW5jX2luZm8gd3J0IC4uaW1hZ2ViYXNl
Ci0KLQlERAkkTCR4dHNfZW5jX3Byb2xvZ3VlIHdydCAuLmltYWdlYmFzZQotCURECSRMJHh0c19l
bmNfZXBpbG9ndWUgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwkeHRzX2VuY19pbmZvIHdydCAuLmlt
YWdlYmFzZQotCi0JREQJJEwkeHRzX2RlY19wcm9sb2d1ZSB3cnQgLi5pbWFnZWJhc2UKLQlERAkk
TCR4dHNfZGVjX2VwaWxvZ3VlIHdydCAuLmltYWdlYmFzZQotCURECSRMJHh0c19kZWNfaW5mbyB3
cnQgLi5pbWFnZWJhc2UKLQotc2VjdGlvbgkueGRhdGEgcmRhdGEgYWxpZ249OAotQUxJR04JOAot
JEwkY2JjX2RlY19pbmZvOgotREIJOSwwLDAsMAotCURECXNlX2hhbmRsZXIgd3J0IC4uaW1hZ2Vi
YXNlCi0JREQJJEwkY2JjX2RlY19ib2R5IHdydCAuLmltYWdlYmFzZSwkTCRjYmNfZGVjX2VwaWxv
Z3VlIHdydCAuLmltYWdlYmFzZQotCURECSRMJGNiY19kZWNfdGFpbCB3cnQgLi5pbWFnZWJhc2UK
LQlERAkwCi0kTCRjdHJfZW5jX2luZm86Ci1EQgk5LDAsMCwwCi0JREQJc2VfaGFuZGxlciB3cnQg
Li5pbWFnZWJhc2UKLQlERAkkTCRjdHJfZW5jX2JvZHkgd3J0IC4uaW1hZ2ViYXNlLCRMJGN0cl9l
bmNfZXBpbG9ndWUgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwkY3RyX2VuY190YWlsIHdydCAuLmlt
YWdlYmFzZQotCURECTAKLSRMJHh0c19lbmNfaW5mbzoKLURCCTksMCwwLDAKLQlERAlzZV9oYW5k
bGVyIHdydCAuLmltYWdlYmFzZQotCURECSRMJHh0c19lbmNfYm9keSB3cnQgLi5pbWFnZWJhc2Us
JEwkeHRzX2VuY19lcGlsb2d1ZSB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCR4dHNfZW5jX3RhaWwg
d3J0IC4uaW1hZ2ViYXNlCi0JREQJMAotJEwkeHRzX2RlY19pbmZvOgotREIJOSwwLDAsMAotCURE
CXNlX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwkeHRzX2RlY19ib2R5IHdydCAuLmlt
YWdlYmFzZSwkTCR4dHNfZGVjX2VwaWxvZ3VlIHdydCAuLmltYWdlYmFzZQotCURECSRMJHh0c19k
ZWNfdGFpbCB3cnQgLi5pbWFnZWJhc2UKLQlERAkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2Ny
eXB0by9maXBzbW9kdWxlL2doYXNoLXg4Nl82NC5hc20gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBz
bW9kdWxlL2doYXNoLXg4Nl82NC5hc20KaW5kZXggMzFkNjAxYWFlMzMzZTEzYmM0NTg1N2M5ZGQ2
YjAyZjkzOGVlMzM3Ni4uZmRmOTE0ZjI4NDJiY2JmZWQ2Y2YxODE0OGQzMDIxN2Q4OGVkNGJhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9naGFzaC14ODZfNjQuYXNt
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9y
aW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvZ2hhc2gteDg2XzY0LmFzbQpAQCAt
NzI3LDYgKzcyNyw3IEBAIGdsb2JhbAlnY21faW5pdF9jbG11bAogCiBBTElHTgkxNgogZ2NtX2lu
aXRfY2xtdWw6CisKICRMJF9pbml0X2NsbXVsOgogJEwkU0VIX2JlZ2luX2djbV9pbml0X2NsbXVs
OgogCkBAIC04ODYsMTAgKzg4NywxMiBAQCBEQgkxMDIsMTUsNTgsMTUsMjI3LDgKICRMJFNFSF9l
bmRfZ2NtX2luaXRfY2xtdWw6CiAJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiAKKwogZ2xvYmFsCWdj
bV9nbXVsdF9jbG11bAogCiBBTElHTgkxNgogZ2NtX2dtdWx0X2NsbXVsOgorCiAkTCRfZ211bHRf
Y2xtdWw6CiAJbW92ZHF1CXhtbTAsWE1NV09SRFtyY3hdCiAJbW92ZHFhCXhtbTUsWE1NV09SRFsk
TCRic3dhcF9tYXNrXQpAQCAtOTM3LDEwICs5NDAsMTIgQEAgREIJMTAyLDE1LDU2LDAsMTk3CiAJ
bW92ZHF1CVhNTVdPUkRbcmN4XSx4bW0wCiAJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiAKKwogZ2xv
YmFsCWdjbV9naGFzaF9jbG11bAogCiBBTElHTgkzMgogZ2NtX2doYXNoX2NsbXVsOgorCiAkTCRf
Z2hhc2hfY2xtdWw6CiAJbGVhCXJheCxbKCgtMTM2KSkrcnNwXQogJEwkU0VIX2JlZ2luX2djbV9n
aGFzaF9jbG11bDoKQEAgLTEzNDcsMTAgKzEzNTIsMTIgQEAgREIJMTAyLDY1LDE1LDU2LDAsMTk0
CiAkTCRTRUhfZW5kX2djbV9naGFzaF9jbG11bDoKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKIAor
CiBnbG9iYWwJZ2NtX2luaXRfYXZ4CiAKIEFMSUdOCTMyCiBnY21faW5pdF9hdng6CisKICRMJFNF
SF9iZWdpbl9nY21faW5pdF9hdng6CiAKIERCCTB4NDgsMHg4MywweGVjLDB4MTgKQEAgLTE0NjEs
MTYgKzE0NjgsMjAgQEAgJEwkaW5pdF9zdGFydF9hdng6CiAkTCRTRUhfZW5kX2djbV9pbml0X2F2
eDoKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKIAorCiBnbG9iYWwJZ2NtX2dtdWx0X2F2eAogCiBB
TElHTgkzMgogZ2NtX2dtdWx0X2F2eDoKKwogCWptcAlORUFSICRMJF9nbXVsdF9jbG11bAogCisK
IGdsb2JhbAlnY21fZ2hhc2hfYXZ4CiAKIEFMSUdOCTMyCiBnY21fZ2hhc2hfYXZ4OgorCiAJbGVh
CXJheCxbKCgtMTM2KSkrcnNwXQogJEwkU0VIX2JlZ2luX2djbV9naGFzaF9hdng6CiAKQEAgLTE4
NjksNiArMTg4MCw3IEBAICRMJHRhaWxfbm9feG9yX2F2eDoKICRMJFNFSF9lbmRfZ2NtX2doYXNo
X2F2eDoKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKIAorCiBBTElHTgk2NAogJEwkYnN3YXBfbWFz
azoKIERCCTE1LDE0LDEzLDEyLDExLDEwLDksOCw3LDYsNSw0LDMsMiwxLDAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1LXg4Nl82NC5hc20gYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0
L2NyeXB0by9maXBzbW9kdWxlL21kNS14ODZfNjQuYXNtCmluZGV4IDJmNzllMzNlY2QyYzVjZTYw
Y2MwMGExOGFiZjNhNjFmMTBhNGUxMDMuLjY0NjIwMWJiNTg4MWM2OTNjMTMzZjcyZDgwNTU3YWIx
Mjk0Y2RiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvbWQ1LXg4
Nl82NC5hc20KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9tZDUteDg2XzY0LmFz
bQpAQCAtMjUsMTEgKzI1LDE3IEBAICRMJFNFSF9iZWdpbl9tZDVfYmxvY2tfYXNtX2RhdGFfb3Jk
ZXI6CiAJbW92CXJkeCxyOAogCiAKKwogCXB1c2gJcmJwCisKIAlwdXNoCXJieAorCiAJcHVzaAly
MTIKKwogCXB1c2gJcjE0CisKIAlwdXNoCXIxNQorCiAkTCRwcm9sb2d1ZToKIAogCkBAIC02Nzks
MTUgKzY4NSwyMiBAQCAkTCRlbmQ6CiAJbW92CURXT1JEWzEyK3JicF0sZWR4CiAKIAltb3YJcjE1
LFFXT1JEW3JzcF0KKwogCW1vdglyMTQsUVdPUkRbOCtyc3BdCisKIAltb3YJcjEyLFFXT1JEWzE2
K3JzcF0KKwogCW1vdglyYngsUVdPUkRbMjQrcnNwXQorCiAJbW92CXJicCxRV09SRFszMityc3Bd
CisKIAlhZGQJcnNwLDQwCisKICRMJGVwaWxvZ3VlOgogCW1vdglyZGksUVdPUkRbOCtyc3BdCTtX
SU42NCBlcGlsb2d1ZQogCW1vdglyc2ksUVdPUkRbMTYrcnNwXQogCURCCTBGM2gsMEMzaAkJO3Jl
cHJldAorCiAkTCRTRUhfZW5kX21kNV9ibG9ja19hc21fZGF0YV9vcmRlcjoKIEVYVEVSTglfX2lt
cF9SdGxWaXJ0dWFsVW53aW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNt
b2R1bGUvcDI1Ni14ODZfNjQtYXNtLmFzbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUv
cDI1Ni14ODZfNjQtYXNtLmFzbQppbmRleCA1NGE4N2JiNWY0MmNlNmUzMGM0YTlmNThhNTBmMjI3
YTRlOWYyYTA2Li4yMTVmNWQyYTQ5NDM4YzlhZWIzMmQ5NDgyNTI1YjYyNGMzODNhM2ViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2Jv
cmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3AyNTYteDg2XzY0LWFzbS5hc20K
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jp
bmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9wMjU2LXg4Nl82NC1hc20uYXNtCkBA
IC0xMjk2LDYgKzEyOTYsNyBAQCBBTElHTgkzMgogX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxOgog
CiAKKwogCW1vdglyYnAscmF4CiAJbXVsCXI5CiAJbW92CXIxNCxRV09SRFsoKCRMJHBvbHkrOCkp
XQpAQCAtMTUxNCw2ICsxNTE1LDcgQEAgX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxOgogCiAKIAor
CiBnbG9iYWwJZWNwX25pc3R6MjU2X3Nxcl9tb250CiAKIEFMSUdOCTMyCkBAIC0xNTg3LDYgKzE1
ODksNyBAQCAkTCRTRUhfZW5kX2VjcF9uaXN0ejI1Nl9zcXJfbW9udDoKIAogQUxJR04JMzIKIF9f
ZWNwX25pc3R6MjU2X3Nxcl9tb250cToKKwogCW1vdglyMTMscmF4CiAJbXVsCXIxNAogCW1vdgly
OSxyYXgKQEAgLTE3NDYsMTAgKzE3NDksMTIgQEAgX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxOgog
CURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMzIKIF9fZWNwX25pc3R6MjU2X211
bF9tb250eDoKIAogCisKIAltdWx4CXI5LHI4LHI5CiAJbXVseAlyMTAscmN4LHIxMAogCW1vdgly
MTQsMzIKQEAgLTE5MTMsOCArMTkxOCwxMCBAQCBfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHg6CiAK
IAogCisKIEFMSUdOCTMyCiBfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHg6CisKIAltdWx4CXIxMCxy
OSxyMTQKIAltdWx4CXIxMSxyY3gscjE1CiAJeG9yCWVheCxlYXgKQEAgLTIwNDEsMTAgKzIwNDgs
MTIgQEAgREIJMHg2NywweDY3CiAKIAogCisKIGdsb2JhbAllY3BfbmlzdHoyNTZfc2VsZWN0X3c1
CiAKIEFMSUdOCTMyCiBlY3BfbmlzdHoyNTZfc2VsZWN0X3c1OgorCiAJbGVhCXJheCxbT1BFTlNT
TF9pYTMyY2FwX1BdCiAJbW92CXJheCxRV09SRFs4K3JheF0KIAl0ZXN0CWVheCwzMgpAQCAtMjEy
NCw2ICsyMTMzLDcgQEAgJEwkc2VsZWN0X2xvb3Bfc3NlX3c1OgogCW1vdmFwcwl4bW0xNSxYTU1X
T1JEWzE0NCtyc3BdCiAJbGVhCXJzcCxbMTY4K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQK
KwogJEwkU0VIX2VuZF9lY3BfbmlzdHoyNTZfc2VsZWN0X3c1OgogCiAKQEAgLTIxMzMsNiArMjE0
Myw3IEBAIGdsb2JhbAllY3BfbmlzdHoyNTZfc2VsZWN0X3c3CiAKIEFMSUdOCTMyCiBlY3Bfbmlz
dHoyNTZfc2VsZWN0X3c3OgorCiAJbGVhCXJheCxbT1BFTlNTTF9pYTMyY2FwX1BdCiAJbW92CXJh
eCxRV09SRFs4K3JheF0KIAl0ZXN0CWVheCwzMgpAQCAtMjIwMSw2ICsyMjEyLDcgQEAgJEwkc2Vs
ZWN0X2xvb3Bfc3NlX3c3OgogCW1vdmFwcwl4bW0xNSxYTU1XT1JEWzE0NCtyc3BdCiAJbGVhCXJz
cCxbMTY4K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKwogJEwkU0VIX2VuZF9lY3Bfbmlz
dHoyNTZfc2VsZWN0X3c3OgogCiAKQEAgLTIyMDgsNiArMjIyMCw3IEBAICRMJFNFSF9lbmRfZWNw
X25pc3R6MjU2X3NlbGVjdF93NzoKIAogQUxJR04JMzIKIGVjcF9uaXN0ejI1Nl9hdngyX3NlbGVj
dF93NToKKwogJEwkYXZ4Ml9zZWxlY3RfdzU6CiAJdnplcm91cHBlcgogCWxlYQlyYXgsWygoLTEz
NikpK3JzcF0KQEAgLTIyODcsNiArMjMwMCw3IEBAICRMJHNlbGVjdF9sb29wX2F2eDJfdzU6CiAJ
bW92YXBzCXhtbTE1LFhNTVdPUkRbMTQ0K3JzcF0KIAlsZWEJcnNwLFtyMTFdCiAJREIJMEYzaCww
QzNoCQk7cmVwcmV0CisKICRMJFNFSF9lbmRfZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c1Ogog
CiAKQEAgLTIyOTYsNiArMjMxMCw3IEBAIGdsb2JhbAllY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3Rf
dzcKIAogQUxJR04JMzIKIGVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NzoKKwogJEwkYXZ4Ml9z
ZWxlY3Rfdzc6CiAJdnplcm91cHBlcgogCW1vdglyMTEscnNwCkBAIC0yMzkwLDExICsyNDA1LDEz
IEBAICRMJHNlbGVjdF9sb29wX2F2eDJfdzc6CiAJbW92YXBzCXhtbTE1LFhNTVdPUkRbMTQ0K3Jz
cF0KIAlsZWEJcnNwLFtyMTFdCiAJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKICRMJFNFSF9lbmRf
ZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c3OgogCiAKIEFMSUdOCTMyCiBfX2VjcF9uaXN0ejI1
Nl9hZGRfdG9xOgorCiAJeG9yCXIxMSxyMTEKIAlhZGQJcjEyLFFXT1JEW3JieF0KIAlhZGMJcjEz
LFFXT1JEWzgrcmJ4XQpAQCAtMjQyNSw4ICsyNDQyLDEwIEBAIF9fZWNwX25pc3R6MjU2X2FkZF90
b3E6CiAKIAogCisKIEFMSUdOCTMyCiBfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXE6CisKIAlzdWIJ
cjEyLFFXT1JEW3JieF0KIAlzYmIJcjEzLFFXT1JEWzgrcmJ4XQogCW1vdglyYXgscjEyCkBAIC0y
NDU2LDggKzI0NzUsMTAgQEAgX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xOgogCiAKIAorCiBBTElH
TgkzMgogX19lY3BfbmlzdHoyNTZfc3VicToKKwogCXN1YglyYXgscjEyCiAJc2JiCXJicCxyMTMK
IAltb3YJcjEyLHJheApAQCAtMjQ4Myw4ICsyNTA0LDEwIEBAIF9fZWNwX25pc3R6MjU2X3N1YnE6
CiAKIAogCisKIEFMSUdOCTMyCiBfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnE6CisKIAl4b3IJcjEx
LHIxMQogCWFkZAlyMTIscjEyCiAJYWRjCXIxMyxyMTMKQEAgLTI1MTMsNiArMjUzNiw3IEBAIF9f
ZWNwX25pc3R6MjU2X211bF9ieV8ycToKIAogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCisKIGds
b2JhbAllY3BfbmlzdHoyNTZfcG9pbnRfZG91YmxlCiAKIEFMSUdOCTMyCkBAIC0yOTI5LDE1ICsy
OTUzLDIyIEBAIERCCTEwMiw3MywxNSwxMTAsMjIwCiAJb3IJcjEyLHI4CiAJb3IJcjEyLHI5CiAK
LURCCTB4M2UKLQlqbnoJTkVBUiAkTCRhZGRfcHJvY2VlZHEKIERCCTEwMiw3MywxNSwxMjYsMjA4
CiBEQgkxMDIsNzMsMTUsMTI2LDIxNwotCXRlc3QJcjgscjgKKwlvcglyMTIscjgKK0RCCTB4M2UK
IAlqbnoJTkVBUiAkTCRhZGRfcHJvY2VlZHEKKworCisKIAl0ZXN0CXI5LHI5CiAJanoJTkVBUiAk
TCRhZGRfZG91YmxlcQogCisKKworCisKKwogREIJMTAyLDcyLDE1LDEyNiwxOTkKIAlweG9yCXht
bTAseG1tMAogCW1vdmRxdQlYTU1XT1JEW3JkaV0seG1tMApAQCAtMjk1Myw4ICsyOTg0LDEwIEBA
ICRMJGFkZF9kb3VibGVxOgogREIJMTAyLDcyLDE1LDEyNiwyMDYKIERCCTEwMiw3MiwxNSwxMjYs
MTk5CiAJYWRkCXJzcCw0MTYKKwogCWptcAlORUFSICRMJHBvaW50X2RvdWJsZV9zaG9ydGN1dHEK
IAorCiBBTElHTgkzMgogJEwkYWRkX3Byb2NlZWRxOgogCW1vdglyYXgsUVdPUkRbKCgwKzY0KSkr
cnNwXQpAQCAtMzUyMyw2ICszNTU2LDcgQEAgJEwkU0VIX2VuZF9lY3BfbmlzdHoyNTZfcG9pbnRf
YWRkX2FmZmluZToKIAogQUxJR04JMzIKIF9fZWNwX25pc3R6MjU2X2FkZF90b3g6CisKIAl4b3IJ
cjExLHIxMQogCWFkYwlyMTIsUVdPUkRbcmJ4XQogCWFkYwlyMTMsUVdPUkRbOCtyYnhdCkBAIC0z
NTU0LDggKzM1ODgsMTAgQEAgX19lY3BfbmlzdHoyNTZfYWRkX3RveDoKIAogCiAKKwogQUxJR04J
MzIKIF9fZWNwX25pc3R6MjU2X3N1Yl9mcm9teDoKKwogCXhvcglyMTEscjExCiAJc2JiCXIxMixR
V09SRFtyYnhdCiAJc2JiCXIxMyxRV09SRFs4K3JieF0KQEAgLTM1ODcsOCArMzYyMywxMCBAQCBf
X2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXg6CiAKIAogCisKIEFMSUdOCTMyCiBfX2VjcF9uaXN0ejI1
Nl9zdWJ4OgorCiAJeG9yCXIxMSxyMTEKIAlzYmIJcmF4LHIxMgogCXNiYglyYnAscjEzCkBAIC0z
NjE2LDggKzM2NTQsMTAgQEAgX19lY3BfbmlzdHoyNTZfc3VieDoKIAogCiAKKwogQUxJR04JMzIK
IF9fZWNwX25pc3R6MjU2X211bF9ieV8yeDoKKwogCXhvcglyMTEscjExCiAJYWRjCXIxMixyMTIK
IAlhZGMJcjEzLHIxMwpAQCAtMzY0OCw2ICszNjg4LDcgQEAgX19lY3BfbmlzdHoyNTZfbXVsX2J5
XzJ4OgogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogQUxJR04JMzIKIGVjcF9uaXN0ejI1
Nl9wb2ludF9kb3VibGV4OgogCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQpA
QCAtNDA1MywxNSArNDA5NCwyMiBAQCBEQgkxMDIsNzMsMTUsMTEwLDIyMAogCW9yCXIxMixyOAog
CW9yCXIxMixyOQogCi1EQgkweDNlCi0Jam56CU5FQVIgJEwkYWRkX3Byb2NlZWR4CiBEQgkxMDIs
NzMsMTUsMTI2LDIwOAogREIJMTAyLDczLDE1LDEyNiwyMTcKLQl0ZXN0CXI4LHI4CisJb3IJcjEy
LHI4CitEQgkweDNlCiAJam56CU5FQVIgJEwkYWRkX3Byb2NlZWR4CisKKworCiAJdGVzdAlyOSxy
OQogCWp6CU5FQVIgJEwkYWRkX2RvdWJsZXgKIAorCisKKworCisKIERCCTEwMiw3MiwxNSwxMjYs
MTk5CiAJcHhvcgl4bW0wLHhtbTAKIAltb3ZkcXUJWE1NV09SRFtyZGldLHhtbTAKQEAgLTQwNzcs
OCArNDEyNSwxMCBAQCAkTCRhZGRfZG91YmxleDoKIERCCTEwMiw3MiwxNSwxMjYsMjA2CiBEQgkx
MDIsNzIsMTUsMTI2LDE5OQogCWFkZAlyc3AsNDE2CisKIAlqbXAJTkVBUiAkTCRwb2ludF9kb3Vi
bGVfc2hvcnRjdXR4CiAKKwogQUxJR04JMzIKICRMJGFkZF9wcm9jZWVkeDoKIAltb3YJcmR4LFFX
T1JEWygoMCs2NCkpK3JzcF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1
bGUvcDI1Nl9iZWV1LXg4Nl82NC1hc20uYXNtIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVs
ZS9wMjU2X2JlZXUteDg2XzY0LWFzbS5hc20KaW5kZXggODFjMDljZTk4YjkzMWU0NzAwMDIzNGQ5
MmViMzgyZjI0ZjVlOGQ0Yy4uNTYzNjk5ZDU5ZGM2YmYzMjVhNTJhMzczMzdiM2E3MTZmYmMwY2Nk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9wMjU2X2JlZXUteDg2
XzY0LWFzbS5hc20KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9wMjU2X2JlZXUt
eDg2XzY0LWFzbS5hc20KQEAgLTMyLDkgKzMyLDYgQEAgJEwkU0VIX2JlZ2luX2JlZXVfbW9kX2lu
dmVyc2VfdmFydGltZToKIAogCXB1c2gJcmJwCiAKLQltb3YJcmJwLHJzcAotCi0KIAlwdXNoCXIx
MgogCiAJcHVzaAlyMTMKQEAgLTQ5LDYgKzQ2LDcgQEAgJEwkU0VIX2JlZ2luX2JlZXVfbW9kX2lu
dmVyc2VfdmFydGltZToKIAogCiAJc3ViCXJzcCw4MAorCiAJbW92CVFXT1JEW3JzcF0scmRpCiAK
IApAQCAtMzE4LDYgKzMxNiw3IEBAICRMJGJlZXVfZXJyOgogCiAkTCRiZWV1X2ZpbmlzaDoKIAlh
ZGQJcnNwLDgwCisKIAlwb3AJcnNpCiAKIAlwb3AJcmJ4CkBAIC0zMzIsMTAgKzMzMSw5IEBAICRM
JGJlZXVfZmluaXNoOgogCiAJcG9wCXJicAogCi0KLQogCW1vdglyZGksUVdPUkRbOCtyc3BdCTtX
SU42NCBlcGlsb2d1ZQogCW1vdglyc2ksUVdPUkRbMTYrcnNwXQogCURCCTBGM2gsMEMzaAkJO3Jl
cHJldAogCisKICRMJFNFSF9lbmRfYmVldV9tb2RfaW52ZXJzZV92YXJ0aW1lOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdz
c2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9yZHJhbmQteDg2XzY0LmFzbSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14
ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvcmRyYW5kLXg4Nl82NC5hc20KaW5kZXggYTM0MjQ5Yjky
ZWE3ODViYzk2NjE1YWIyNzNiODE5YTExZGE3YzdiOS4uODliOTFkZTEwZDFkYmRmNDc1MWJhZmIw
NDQ4NDAzZGNmZDIxY2ZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVs
ZS9yZHJhbmQteDg2XzY0LmFzbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3Jk
cmFuZC14ODZfNjQuYXNtCkBAIC0xOSwyMyArMTksMTIgQEAgZ2xvYmFsCUNSWVBUT19yZHJhbmQK
IAogQUxJR04JMTYKIENSWVBUT19yZHJhbmQ6Ci0JbW92CVFXT1JEWzgrcnNwXSxyZGkJO1dJTjY0
IHByb2xvZ3VlCi0JbW92CVFXT1JEWzE2K3JzcF0scnNpCi0JbW92CXJheCxyc3AKLSRMJFNFSF9i
ZWdpbl9DUllQVE9fcmRyYW5kOgotCW1vdglyZGkscmN4Ci0KLQogCiAJeG9yCXJheCxyYXgKLQot
Ci1EQgkweDQ4LDB4MGYsMHhjNywweGYxCitEQgk3MywxNSwxOTksMjQwCiAKIAlhZGMJcmF4LHJh
eAotCW1vdglRV09SRFtyZGldLHJjeAotCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGls
b2d1ZQotCW1vdglyc2ksUVdPUkRbMTYrcnNwXQorCW1vdglRV09SRFtyY3hdLHI4CiAJREIJMEYz
aCwwQzNoCQk7cmVwcmV0CiAKIApAQCAtNDMsMzkgKzMyLDI3IEBAIERCCTB4NDgsMHgwZiwweGM3
LDB4ZjEKIAogCiAKKwogZ2xvYmFsCUNSWVBUT19yZHJhbmRfbXVsdGlwbGU4X2J1ZgogCiBBTElH
TgkxNgogQ1JZUFRPX3JkcmFuZF9tdWx0aXBsZThfYnVmOgotCW1vdglRV09SRFs4K3JzcF0scmRp
CTtXSU42NCBwcm9sb2d1ZQotCW1vdglRV09SRFsxNityc3BdLHJzaQotCW1vdglyYXgscnNwCi0k
TCRTRUhfYmVnaW5fQ1JZUFRPX3JkcmFuZF9tdWx0aXBsZThfYnVmOgotCW1vdglyZGkscmN4Ci0J
bW92CXJzaSxyZHgKIAotCi0KLQl0ZXN0CXJzaSxyc2kKKwl0ZXN0CXJkeCxyZHgKIAlqeglORUFS
ICRMJG91dAotCW1vdglyZHgsOAorCW1vdglyOCw4CiAkTCRsb29wOgotCi0KLURCCTB4NDgsMHgw
ZiwweGM3LDB4ZjEKK0RCCTczLDE1LDE5OSwyNDEKIAlqbmMJTkVBUiAkTCRlcnIKLQltb3YJUVdP
UkRbcmRpXSxyY3gKLQlhZGQJcmRpLHJkeAotCXN1Yglyc2kscmR4CisJbW92CVFXT1JEW3JjeF0s
cjkKKwlhZGQJcmN4LHI4CisJc3ViCXJkeCxyOAogCWpueglORUFSICRMJGxvb3AKICRMJG91dDoK
IAltb3YJcmF4LDEKLQltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKLQltb3YJ
cnNpLFFXT1JEWzE2K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKICRMJGVycjoKIAl4b3IJ
cmF4LHJheAotCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQotCW1vdglyc2ks
UVdPUkRbMTYrcnNwXQogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dp
bi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvcnNhei1hdngyLmFzbSBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5
cHRvL2ZpcHNtb2R1bGUvcnNhei1hdngyLmFzbQppbmRleCA1MTY1YzU4MzAwNTg2OTQwMDkwYWQ3
YjZkMGJkYzBkNWMwMTEzMTI0Li43NGUyNzA1Y2I5NmRlN2E1MTg4ZjA3YWNjNDVlYmJjOTZjMzM5
OTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3JzYXotYXZ4Mi5h
c20KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9yc2F6LWF2eDIuYXNtCkBAIC0x
Mjk3LDYgKzEyOTcsNyBAQCBnbG9iYWwJcnNhel8xMDI0X3JlZDJub3JtX2F2eDIKIAogQUxJR04J
MzIKIHJzYXpfMTAyNF9yZWQybm9ybV9hdngyOgorCiAJc3ViCXJkeCwtMTI4CiAJeG9yCXJheCxy
YXgKIAltb3YJcjgsUVdPUkRbKCgtMTI4KSkrcmR4XQpAQCAtMTQ5MCwxMCArMTQ5MSwxMiBAQCBy
c2F6XzEwMjRfcmVkMm5vcm1fYXZ4MjoKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKIAogCisKIGds
b2JhbAlyc2F6XzEwMjRfbm9ybTJyZWRfYXZ4MgogCiBBTElHTgkzMgogcnNhel8xMDI0X25vcm0y
cmVkX2F2eDI6CisKIAlzdWIJcmN4LC0xMjgKIAltb3YJcjgsUVdPUkRbcmR4XQogCW1vdgllYXgs
MHgxZmZmZmZmZgpAQCAtMTY0NywxMCArMTY1MCwxMiBAQCByc2F6XzEwMjRfbm9ybTJyZWRfYXZ4
MjoKIAltb3YJUVdPUkRbMTg0K3JjeF0scjgKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKIAorCiBn
bG9iYWwJcnNhel8xMDI0X3NjYXR0ZXI1X2F2eDIKIAogQUxJR04JMzIKIHJzYXpfMTAyNF9zY2F0
dGVyNV9hdngyOgorCiAJdnplcm91cHBlcgogCXZtb3ZkcXUJeW1tNSxZTU1XT1JEWyRMJHNjYXR0
ZXJfcGVybWRdCiAJc2hsCXI4ZCw0CkBAIC0xNjcyLDYgKzE2NzcsNyBAQCAkTCRvb3Bfc2NhdHRl
cl8xMDI0OgogCURCCTBGM2gsMEMzaAkJO3JlcHJldAogCiAKKwogZ2xvYmFsCXJzYXpfMTAyNF9n
YXRoZXI1X2F2eDIKIAogQUxJR04JMzIKQEAgLTE4MTcsMjMgKzE4MjMsNiBAQCAkTCRvb3BfZ2F0
aGVyXzEwMjQ6CiAKICRMJFNFSF9lbmRfcnNhel8xMDI0X2dhdGhlcjU6CiAKLUVYVEVSTglPUEVO
U1NMX2lhMzJjYXBfUAotZ2xvYmFsCXJzYXpfYXZ4Ml9lbGlnaWJsZQotCi1BTElHTgkzMgotcnNh
el9hdngyX2VsaWdpYmxlOgotCWxlYQlyYXgsW09QRU5TU0xfaWEzMmNhcF9QXQotCW1vdgllYXgs
RFdPUkRbOCtyYXhdCi0JbW92CWVjeCw1MjQ1NDQKLQltb3YJZWR4LDAKLQlhbmQJZWN4LGVheAot
CWNtcAllY3gsNTI0NTQ0Ci0JY21vdmUJZWF4LGVkeAotCWFuZAllYXgsMzIKLQlzaHIJZWF4LDUK
LQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLQotCiBBTElHTgk2NAogJEwkYW5kX21hc2s6CiAJRFEJ
MHgxZmZmZmZmZiwweDFmZmZmZmZmLDB4MWZmZmZmZmYsMHgxZmZmZmZmZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
d2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9zaGE1MTIteDg2XzY0LmFzbSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZf
NjQvY3J5cHRvL2ZpcHNtb2R1bGUvc2hhNTEyLXg4Nl82NC5hc20KaW5kZXggZWE2YzRmMTdlYWEy
ODgzODdkNmUwYjM3Zjg0ZGE3ZmE5MWYwMzcwMy4uMzNkYzJjMmVkZTI3NDNjYzg4NjgyNzAyMDU2
NTk4MTI3MDEyYzcyNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS9z
aGE1MTIteDg2XzY0LmFzbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3NoYTUx
Mi14ODZfNjQuYXNtCkBAIC0zMSw4ICszMSw2IEBAICRMJFNFSF9iZWdpbl9zaGE1MTJfYmxvY2tf
ZGF0YV9vcmRlcjoKIAltb3YJcjlkLERXT1JEW3IxMV0KIAltb3YJcjEwZCxEV09SRFs0K3IxMV0K
IAltb3YJcjExZCxEV09SRFs4K3IxMV0KLQl0ZXN0CXIxMGQsMjA0OAotCWpueglORUFSICRMJHhv
cF9zaG9ydGN1dAogCWFuZAlyOWQsMTA3Mzc0MTgyNAogCWFuZAlyMTBkLDI2ODQzNTk2OAogCW9y
CXIxMGQscjlkCkBAIC0xODM4LDExMzAgKzE4MzYsNiBAQCBEQgk1Miw0NCwzMiw2Nyw4Miw4OSw4
MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEKIERCCTMyLDYwLDk3LDExMiwxMTIsMTE0LDEx
MSw2NCwxMTEsMTEyLDEwMSwxMTAsMTE1LDExNSwxMDgsNDYKIERCCTExMSwxMTQsMTAzLDYyLDAK
IAotQUxJR04JNjQKLXNoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcDoKLQltb3YJUVdPUkRbOCty
c3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKLQltb3YJUVdPUkRbMTYrcnNwXSxyc2kKLQltb3YJcmF4
LHJzcAotJEwkU0VIX2JlZ2luX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcDoKLQltb3YJcmRp
LHJjeAotCW1vdglyc2kscmR4Ci0JbW92CXJkeCxyOAotCi0KLQotJEwkeG9wX3Nob3J0Y3V0Ogot
CW1vdglyYXgscnNwCi0KLQlwdXNoCXJieAotCi0JcHVzaAlyYnAKLQotCXB1c2gJcjEyCi0KLQlw
dXNoCXIxMwotCi0JcHVzaAlyMTQKLQotCXB1c2gJcjE1Ci0KLQlzaGwJcmR4LDQKLQlzdWIJcnNw
LDI1NgotCWxlYQlyZHgsW3JkeCo4K3JzaV0KLQlhbmQJcnNwLC02NAotCW1vdglRV09SRFsoKDEy
OCswKSkrcnNwXSxyZGkKLQltb3YJUVdPUkRbKCgxMjgrOCkpK3JzcF0scnNpCi0JbW92CVFXT1JE
WygoMTI4KzE2KSkrcnNwXSxyZHgKLQltb3YJUVdPUkRbMTUyK3JzcF0scmF4Ci0KLQltb3ZhcHMJ
WE1NV09SRFsoMTI4KzMyKStyc3BdLHhtbTYKLQltb3ZhcHMJWE1NV09SRFsoMTI4KzQ4KStyc3Bd
LHhtbTcKLQltb3ZhcHMJWE1NV09SRFsoMTI4KzY0KStyc3BdLHhtbTgKLQltb3ZhcHMJWE1NV09S
RFsoMTI4KzgwKStyc3BdLHhtbTkKLQltb3ZhcHMJWE1NV09SRFsoMTI4Kzk2KStyc3BdLHhtbTEw
Ci0JbW92YXBzCVhNTVdPUkRbKDEyOCsxMTIpK3JzcF0seG1tMTEKLSRMJHByb2xvZ3VlX3hvcDoK
LQotCXZ6ZXJvdXBwZXIKLQltb3YJcmF4LFFXT1JEW3JkaV0KLQltb3YJcmJ4LFFXT1JEWzgrcmRp
XQotCW1vdglyY3gsUVdPUkRbMTYrcmRpXQotCW1vdglyZHgsUVdPUkRbMjQrcmRpXQotCW1vdgly
OCxRV09SRFszMityZGldCi0JbW92CXI5LFFXT1JEWzQwK3JkaV0KLQltb3YJcjEwLFFXT1JEWzQ4
K3JkaV0KLQltb3YJcjExLFFXT1JEWzU2K3JkaV0KLQlqbXAJTkVBUiAkTCRsb29wX3hvcAotQUxJ
R04JMTYKLSRMJGxvb3BfeG9wOgotCXZtb3ZkcWEJeG1tMTEsWE1NV09SRFsoKEs1MTIrMTI4MCkp
XQotCXZtb3ZkcXUJeG1tMCxYTU1XT1JEW3JzaV0KLQlsZWEJcmJwLFsoKEs1MTIrMTI4KSldCi0J
dm1vdmRxdQl4bW0xLFhNTVdPUkRbMTYrcnNpXQotCXZtb3ZkcXUJeG1tMixYTU1XT1JEWzMyK3Jz
aV0KLQl2cHNodWZiCXhtbTAseG1tMCx4bW0xMQotCXZtb3ZkcXUJeG1tMyxYTU1XT1JEWzQ4K3Jz
aV0KLQl2cHNodWZiCXhtbTEseG1tMSx4bW0xMQotCXZtb3ZkcXUJeG1tNCxYTU1XT1JEWzY0K3Jz
aV0KLQl2cHNodWZiCXhtbTIseG1tMix4bW0xMQotCXZtb3ZkcXUJeG1tNSxYTU1XT1JEWzgwK3Jz
aV0KLQl2cHNodWZiCXhtbTMseG1tMyx4bW0xMQotCXZtb3ZkcXUJeG1tNixYTU1XT1JEWzk2K3Jz
aV0KLQl2cHNodWZiCXhtbTQseG1tNCx4bW0xMQotCXZtb3ZkcXUJeG1tNyxYTU1XT1JEWzExMity
c2ldCi0JdnBzaHVmYgl4bW01LHhtbTUseG1tMTEKLQl2cGFkZHEJeG1tOCx4bW0wLFhNTVdPUkRb
KCgtMTI4KSkrcmJwXQotCXZwc2h1ZmIJeG1tNix4bW02LHhtbTExCi0JdnBhZGRxCXhtbTkseG1t
MSxYTU1XT1JEWygoLTk2KSkrcmJwXQotCXZwc2h1ZmIJeG1tNyx4bW03LHhtbTExCi0JdnBhZGRx
CXhtbTEwLHhtbTIsWE1NV09SRFsoKC02NCkpK3JicF0KLQl2cGFkZHEJeG1tMTEseG1tMyxYTU1X
T1JEWygoLTMyKSkrcmJwXQotCXZtb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTgKLQl2cGFkZHEJeG1t
OCx4bW00LFhNTVdPUkRbcmJwXQotCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTkKLQl2cGFk
ZHEJeG1tOSx4bW01LFhNTVdPUkRbMzIrcmJwXQotCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHht
bTEwCi0JdnBhZGRxCXhtbTEwLHhtbTYsWE1NV09SRFs2NCtyYnBdCi0Jdm1vdmRxYQlYTU1XT1JE
WzQ4K3JzcF0seG1tMTEKLQl2cGFkZHEJeG1tMTEseG1tNyxYTU1XT1JEWzk2K3JicF0KLQl2bW92
ZHFhCVhNTVdPUkRbNjQrcnNwXSx4bW04Ci0JbW92CXIxNCxyYXgKLQl2bW92ZHFhCVhNTVdPUkRb
ODArcnNwXSx4bW05Ci0JbW92CXJkaSxyYngKLQl2bW92ZHFhCVhNTVdPUkRbOTYrcnNwXSx4bW0x
MAotCXhvcglyZGkscmN4Ci0Jdm1vdmRxYQlYTU1XT1JEWzExMityc3BdLHhtbTExCi0JbW92CXIx
MyxyOAotCWptcAlORUFSICRMJHhvcF8wMF80NwotCi1BTElHTgkxNgotJEwkeG9wXzAwXzQ3Ogot
CWFkZAlyYnAsMjU2Ci0JdnBhbGlnbnIJeG1tOCx4bW0xLHhtbTAsOAotCXJvcglyMTMsMjMKLQlt
b3YJcmF4LHIxNAotCXZwYWxpZ25yCXhtbTExLHhtbTUseG1tNCw4Ci0JbW92CXIxMixyOQotCXJv
cglyMTQsNQotREIJMTQzLDcyLDEyMCwxOTUsMjAwLDU2Ci0JeG9yCXIxMyxyOAotCXhvcglyMTIs
cjEwCi0JdnBzcmxxCXhtbTgseG1tOCw3Ci0Jcm9yCXIxMyw0Ci0JeG9yCXIxNCxyYXgKLQl2cGFk
ZHEJeG1tMCx4bW0wLHhtbTExCi0JYW5kCXIxMixyOAotCXhvcglyMTMscjgKLQlhZGQJcjExLFFX
T1JEW3JzcF0KLQltb3YJcjE1LHJheAotREIJMTQzLDcyLDEyMCwxOTUsMjA5LDcKLQl4b3IJcjEy
LHIxMAotCXJvcglyMTQsNgotCXZweG9yCXhtbTgseG1tOCx4bW05Ci0JeG9yCXIxNSxyYngKLQlh
ZGQJcjExLHIxMgotCXJvcglyMTMsMTQKLQlhbmQJcmRpLHIxNQotREIJMTQzLDEwNCwxMjAsMTk1
LDIyMywzCi0JeG9yCXIxNCxyYXgKLQlhZGQJcjExLHIxMwotCXZweG9yCXhtbTgseG1tOCx4bW0x
MAotCXhvcglyZGkscmJ4Ci0Jcm9yCXIxNCwyOAotCXZwc3JscQl4bW0xMCx4bW03LDYKLQlhZGQJ
cmR4LHIxMQotCWFkZAlyMTEscmRpCi0JdnBhZGRxCXhtbTAseG1tMCx4bW04Ci0JbW92CXIxMyxy
ZHgKLQlhZGQJcjE0LHIxMQotREIJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCi0Jcm9yCXIxMywyMwot
CW1vdglyMTEscjE0Ci0JdnB4b3IJeG1tMTEseG1tMTEseG1tMTAKLQltb3YJcjEyLHI4Ci0Jcm9y
CXIxNCw1Ci0JeG9yCXIxMyxyZHgKLQl4b3IJcjEyLHI5Ci0JdnB4b3IJeG1tMTEseG1tMTEseG1t
OQotCXJvcglyMTMsNAotCXhvcglyMTQscjExCi0JYW5kCXIxMixyZHgKLQl4b3IJcjEzLHJkeAot
CXZwYWRkcQl4bW0wLHhtbTAseG1tMTEKLQlhZGQJcjEwLFFXT1JEWzgrcnNwXQotCW1vdglyZGks
cjExCi0JeG9yCXIxMixyOQotCXJvcglyMTQsNgotCXZwYWRkcQl4bW0xMCx4bW0wLFhNTVdPUkRb
KCgtMTI4KSkrcmJwXQotCXhvcglyZGkscmF4Ci0JYWRkCXIxMCxyMTIKLQlyb3IJcjEzLDE0Ci0J
YW5kCXIxNSxyZGkKLQl4b3IJcjE0LHIxMQotCWFkZAlyMTAscjEzCi0JeG9yCXIxNSxyYXgKLQly
b3IJcjE0LDI4Ci0JYWRkCXJjeCxyMTAKLQlhZGQJcjEwLHIxNQotCW1vdglyMTMscmN4Ci0JYWRk
CXIxNCxyMTAKLQl2bW92ZHFhCVhNTVdPUkRbcnNwXSx4bW0xMAotCXZwYWxpZ25yCXhtbTgseG1t
Mix4bW0xLDgKLQlyb3IJcjEzLDIzCi0JbW92CXIxMCxyMTQKLQl2cGFsaWducgl4bW0xMSx4bW02
LHhtbTUsOAotCW1vdglyMTIscmR4Ci0Jcm9yCXIxNCw1Ci1EQgkxNDMsNzIsMTIwLDE5NSwyMDAs
NTYKLQl4b3IJcjEzLHJjeAotCXhvcglyMTIscjgKLQl2cHNybHEJeG1tOCx4bW04LDcKLQlyb3IJ
cjEzLDQKLQl4b3IJcjE0LHIxMAotCXZwYWRkcQl4bW0xLHhtbTEseG1tMTEKLQlhbmQJcjEyLHJj
eAotCXhvcglyMTMscmN4Ci0JYWRkCXI5LFFXT1JEWzE2K3JzcF0KLQltb3YJcjE1LHIxMAotREIJ
MTQzLDcyLDEyMCwxOTUsMjA5LDcKLQl4b3IJcjEyLHI4Ci0Jcm9yCXIxNCw2Ci0JdnB4b3IJeG1t
OCx4bW04LHhtbTkKLQl4b3IJcjE1LHIxMQotCWFkZAlyOSxyMTIKLQlyb3IJcjEzLDE0Ci0JYW5k
CXJkaSxyMTUKLURCCTE0MywxMDQsMTIwLDE5NSwyMTYsMwotCXhvcglyMTQscjEwCi0JYWRkCXI5
LHIxMwotCXZweG9yCXhtbTgseG1tOCx4bW0xMAotCXhvcglyZGkscjExCi0Jcm9yCXIxNCwyOAot
CXZwc3JscQl4bW0xMCx4bW0wLDYKLQlhZGQJcmJ4LHI5Ci0JYWRkCXI5LHJkaQotCXZwYWRkcQl4
bW0xLHhtbTEseG1tOAotCW1vdglyMTMscmJ4Ci0JYWRkCXIxNCxyOQotREIJMTQzLDcyLDEyMCwx
OTUsMjAzLDQyCi0Jcm9yCXIxMywyMwotCW1vdglyOSxyMTQKLQl2cHhvcgl4bW0xMSx4bW0xMSx4
bW0xMAotCW1vdglyMTIscmN4Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyYngKLQl4b3IJcjEyLHJk
eAotCXZweG9yCXhtbTExLHhtbTExLHhtbTkKLQlyb3IJcjEzLDQKLQl4b3IJcjE0LHI5Ci0JYW5k
CXIxMixyYngKLQl4b3IJcjEzLHJieAotCXZwYWRkcQl4bW0xLHhtbTEseG1tMTEKLQlhZGQJcjgs
UVdPUkRbMjQrcnNwXQotCW1vdglyZGkscjkKLQl4b3IJcjEyLHJkeAotCXJvcglyMTQsNgotCXZw
YWRkcQl4bW0xMCx4bW0xLFhNTVdPUkRbKCgtOTYpKStyYnBdCi0JeG9yCXJkaSxyMTAKLQlhZGQJ
cjgscjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyMTUscmRpCi0JeG9yCXIxNCxyOQotCWFkZAlyOCxy
MTMKLQl4b3IJcjE1LHIxMAotCXJvcglyMTQsMjgKLQlhZGQJcmF4LHI4Ci0JYWRkCXI4LHIxNQot
CW1vdglyMTMscmF4Ci0JYWRkCXIxNCxyOAotCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTEw
Ci0JdnBhbGlnbnIJeG1tOCx4bW0zLHhtbTIsOAotCXJvcglyMTMsMjMKLQltb3YJcjgscjE0Ci0J
dnBhbGlnbnIJeG1tMTEseG1tNyx4bW02LDgKLQltb3YJcjEyLHJieAotCXJvcglyMTQsNQotREIJ
MTQzLDcyLDEyMCwxOTUsMjAwLDU2Ci0JeG9yCXIxMyxyYXgKLQl4b3IJcjEyLHJjeAotCXZwc3Js
cQl4bW04LHhtbTgsNwotCXJvcglyMTMsNAotCXhvcglyMTQscjgKLQl2cGFkZHEJeG1tMix4bW0y
LHhtbTExCi0JYW5kCXIxMixyYXgKLQl4b3IJcjEzLHJheAotCWFkZAlyZHgsUVdPUkRbMzIrcnNw
XQotCW1vdglyMTUscjgKLURCCTE0Myw3MiwxMjAsMTk1LDIwOSw3Ci0JeG9yCXIxMixyY3gKLQly
b3IJcjE0LDYKLQl2cHhvcgl4bW04LHhtbTgseG1tOQotCXhvcglyMTUscjkKLQlhZGQJcmR4LHIx
MgotCXJvcglyMTMsMTQKLQlhbmQJcmRpLHIxNQotREIJMTQzLDEwNCwxMjAsMTk1LDIxNywzCi0J
eG9yCXIxNCxyOAotCWFkZAlyZHgscjEzCi0JdnB4b3IJeG1tOCx4bW04LHhtbTEwCi0JeG9yCXJk
aSxyOQotCXJvcglyMTQsMjgKLQl2cHNybHEJeG1tMTAseG1tMSw2Ci0JYWRkCXIxMSxyZHgKLQlh
ZGQJcmR4LHJkaQotCXZwYWRkcQl4bW0yLHhtbTIseG1tOAotCW1vdglyMTMscjExCi0JYWRkCXIx
NCxyZHgKLURCCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgotCXJvcglyMTMsMjMKLQltb3YJcmR4LHIx
NAotCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCi0JbW92CXIxMixyYXgKLQlyb3IJcjE0LDUKLQl4
b3IJcjEzLHIxMQotCXhvcglyMTIscmJ4Ci0JdnB4b3IJeG1tMTEseG1tMTEseG1tOQotCXJvcgly
MTMsNAotCXhvcglyMTQscmR4Ci0JYW5kCXIxMixyMTEKLQl4b3IJcjEzLHIxMQotCXZwYWRkcQl4
bW0yLHhtbTIseG1tMTEKLQlhZGQJcmN4LFFXT1JEWzQwK3JzcF0KLQltb3YJcmRpLHJkeAotCXhv
cglyMTIscmJ4Ci0Jcm9yCXIxNCw2Ci0JdnBhZGRxCXhtbTEwLHhtbTIsWE1NV09SRFsoKC02NCkp
K3JicF0KLQl4b3IJcmRpLHI4Ci0JYWRkCXJjeCxyMTIKLQlyb3IJcjEzLDE0Ci0JYW5kCXIxNSxy
ZGkKLQl4b3IJcjE0LHJkeAotCWFkZAlyY3gscjEzCi0JeG9yCXIxNSxyOAotCXJvcglyMTQsMjgK
LQlhZGQJcjEwLHJjeAotCWFkZAlyY3gscjE1Ci0JbW92CXIxMyxyMTAKLQlhZGQJcjE0LHJjeAot
CXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTEwCi0JdnBhbGlnbnIJeG1tOCx4bW00LHhtbTMs
OAotCXJvcglyMTMsMjMKLQltb3YJcmN4LHIxNAotCXZwYWxpZ25yCXhtbTExLHhtbTAseG1tNyw4
Ci0JbW92CXIxMixyMTEKLQlyb3IJcjE0LDUKLURCCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhv
cglyMTMscjEwCi0JeG9yCXIxMixyYXgKLQl2cHNybHEJeG1tOCx4bW04LDcKLQlyb3IJcjEzLDQK
LQl4b3IJcjE0LHJjeAotCXZwYWRkcQl4bW0zLHhtbTMseG1tMTEKLQlhbmQJcjEyLHIxMAotCXhv
cglyMTMscjEwCi0JYWRkCXJieCxRV09SRFs0OCtyc3BdCi0JbW92CXIxNSxyY3gKLURCCTE0Myw3
MiwxMjAsMTk1LDIwOSw3Ci0JeG9yCXIxMixyYXgKLQlyb3IJcjE0LDYKLQl2cHhvcgl4bW04LHht
bTgseG1tOQotCXhvcglyMTUscmR4Ci0JYWRkCXJieCxyMTIKLQlyb3IJcjEzLDE0Ci0JYW5kCXJk
aSxyMTUKLURCCTE0MywxMDQsMTIwLDE5NSwyMTgsMwotCXhvcglyMTQscmN4Ci0JYWRkCXJieCxy
MTMKLQl2cHhvcgl4bW04LHhtbTgseG1tMTAKLQl4b3IJcmRpLHJkeAotCXJvcglyMTQsMjgKLQl2
cHNybHEJeG1tMTAseG1tMiw2Ci0JYWRkCXI5LHJieAotCWFkZAlyYngscmRpCi0JdnBhZGRxCXht
bTMseG1tMyx4bW04Ci0JbW92CXIxMyxyOQotCWFkZAlyMTQscmJ4Ci1EQgkxNDMsNzIsMTIwLDE5
NSwyMDMsNDIKLQlyb3IJcjEzLDIzCi0JbW92CXJieCxyMTQKLQl2cHhvcgl4bW0xMSx4bW0xMSx4
bW0xMAotCW1vdglyMTIscjEwCi0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyOQotCXhvcglyMTIscjEx
Ci0JdnB4b3IJeG1tMTEseG1tMTEseG1tOQotCXJvcglyMTMsNAotCXhvcglyMTQscmJ4Ci0JYW5k
CXIxMixyOQotCXhvcglyMTMscjkKLQl2cGFkZHEJeG1tMyx4bW0zLHhtbTExCi0JYWRkCXJheCxR
V09SRFs1Nityc3BdCi0JbW92CXJkaSxyYngKLQl4b3IJcjEyLHIxMQotCXJvcglyMTQsNgotCXZw
YWRkcQl4bW0xMCx4bW0zLFhNTVdPUkRbKCgtMzIpKStyYnBdCi0JeG9yCXJkaSxyY3gKLQlhZGQJ
cmF4LHIxMgotCXJvcglyMTMsMTQKLQlhbmQJcjE1LHJkaQotCXhvcglyMTQscmJ4Ci0JYWRkCXJh
eCxyMTMKLQl4b3IJcjE1LHJjeAotCXJvcglyMTQsMjgKLQlhZGQJcjgscmF4Ci0JYWRkCXJheCxy
MTUKLQltb3YJcjEzLHI4Ci0JYWRkCXIxNCxyYXgKLQl2bW92ZHFhCVhNTVdPUkRbNDgrcnNwXSx4
bW0xMAotCXZwYWxpZ25yCXhtbTgseG1tNSx4bW00LDgKLQlyb3IJcjEzLDIzCi0JbW92CXJheCxy
MTQKLQl2cGFsaWducgl4bW0xMSx4bW0xLHhtbTAsOAotCW1vdglyMTIscjkKLQlyb3IJcjE0LDUK
LURCCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcglyMTMscjgKLQl4b3IJcjEyLHIxMAotCXZw
c3JscQl4bW04LHhtbTgsNwotCXJvcglyMTMsNAotCXhvcglyMTQscmF4Ci0JdnBhZGRxCXhtbTQs
eG1tNCx4bW0xMQotCWFuZAlyMTIscjgKLQl4b3IJcjEzLHI4Ci0JYWRkCXIxMSxRV09SRFs2NCty
c3BdCi0JbW92CXIxNSxyYXgKLURCCTE0Myw3MiwxMjAsMTk1LDIwOSw3Ci0JeG9yCXIxMixyMTAK
LQlyb3IJcjE0LDYKLQl2cHhvcgl4bW04LHhtbTgseG1tOQotCXhvcglyMTUscmJ4Ci0JYWRkCXIx
MSxyMTIKLQlyb3IJcjEzLDE0Ci0JYW5kCXJkaSxyMTUKLURCCTE0MywxMDQsMTIwLDE5NSwyMTks
MwotCXhvcglyMTQscmF4Ci0JYWRkCXIxMSxyMTMKLQl2cHhvcgl4bW04LHhtbTgseG1tMTAKLQl4
b3IJcmRpLHJieAotCXJvcglyMTQsMjgKLQl2cHNybHEJeG1tMTAseG1tMyw2Ci0JYWRkCXJkeCxy
MTEKLQlhZGQJcjExLHJkaQotCXZwYWRkcQl4bW00LHhtbTQseG1tOAotCW1vdglyMTMscmR4Ci0J
YWRkCXIxNCxyMTEKLURCCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgotCXJvcglyMTMsMjMKLQltb3YJ
cjExLHIxNAotCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCi0JbW92CXIxMixyOAotCXJvcglyMTQs
NQotCXhvcglyMTMscmR4Ci0JeG9yCXIxMixyOQotCXZweG9yCXhtbTExLHhtbTExLHhtbTkKLQly
b3IJcjEzLDQKLQl4b3IJcjE0LHIxMQotCWFuZAlyMTIscmR4Ci0JeG9yCXIxMyxyZHgKLQl2cGFk
ZHEJeG1tNCx4bW00LHhtbTExCi0JYWRkCXIxMCxRV09SRFs3Mityc3BdCi0JbW92CXJkaSxyMTEK
LQl4b3IJcjEyLHI5Ci0Jcm9yCXIxNCw2Ci0JdnBhZGRxCXhtbTEwLHhtbTQsWE1NV09SRFtyYnBd
Ci0JeG9yCXJkaSxyYXgKLQlhZGQJcjEwLHIxMgotCXJvcglyMTMsMTQKLQlhbmQJcjE1LHJkaQot
CXhvcglyMTQscjExCi0JYWRkCXIxMCxyMTMKLQl4b3IJcjE1LHJheAotCXJvcglyMTQsMjgKLQlh
ZGQJcmN4LHIxMAotCWFkZAlyMTAscjE1Ci0JbW92CXIxMyxyY3gKLQlhZGQJcjE0LHIxMAotCXZt
b3ZkcWEJWE1NV09SRFs2NCtyc3BdLHhtbTEwCi0JdnBhbGlnbnIJeG1tOCx4bW02LHhtbTUsOAot
CXJvcglyMTMsMjMKLQltb3YJcjEwLHIxNAotCXZwYWxpZ25yCXhtbTExLHhtbTIseG1tMSw4Ci0J
bW92CXIxMixyZHgKLQlyb3IJcjE0LDUKLURCCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgotCXhvcgly
MTMscmN4Ci0JeG9yCXIxMixyOAotCXZwc3JscQl4bW04LHhtbTgsNwotCXJvcglyMTMsNAotCXhv
cglyMTQscjEwCi0JdnBhZGRxCXhtbTUseG1tNSx4bW0xMQotCWFuZAlyMTIscmN4Ci0JeG9yCXIx
MyxyY3gKLQlhZGQJcjksUVdPUkRbODArcnNwXQotCW1vdglyMTUscjEwCi1EQgkxNDMsNzIsMTIw
LDE5NSwyMDksNwotCXhvcglyMTIscjgKLQlyb3IJcjE0LDYKLQl2cHhvcgl4bW04LHhtbTgseG1t
OQotCXhvcglyMTUscjExCi0JYWRkCXI5LHIxMgotCXJvcglyMTMsMTQKLQlhbmQJcmRpLHIxNQot
REIJMTQzLDEwNCwxMjAsMTk1LDIyMCwzCi0JeG9yCXIxNCxyMTAKLQlhZGQJcjkscjEzCi0JdnB4
b3IJeG1tOCx4bW04LHhtbTEwCi0JeG9yCXJkaSxyMTEKLQlyb3IJcjE0LDI4Ci0JdnBzcmxxCXht
bTEwLHhtbTQsNgotCWFkZAlyYngscjkKLQlhZGQJcjkscmRpCi0JdnBhZGRxCXhtbTUseG1tNSx4
bW04Ci0JbW92CXIxMyxyYngKLQlhZGQJcjE0LHI5Ci1EQgkxNDMsNzIsMTIwLDE5NSwyMDMsNDIK
LQlyb3IJcjEzLDIzCi0JbW92CXI5LHIxNAotCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCi0JbW92
CXIxMixyY3gKLQlyb3IJcjE0LDUKLQl4b3IJcjEzLHJieAotCXhvcglyMTIscmR4Ci0JdnB4b3IJ
eG1tMTEseG1tMTEseG1tOQotCXJvcglyMTMsNAotCXhvcglyMTQscjkKLQlhbmQJcjEyLHJieAot
CXhvcglyMTMscmJ4Ci0JdnBhZGRxCXhtbTUseG1tNSx4bW0xMQotCWFkZAlyOCxRV09SRFs4OCty
c3BdCi0JbW92CXJkaSxyOQotCXhvcglyMTIscmR4Ci0Jcm9yCXIxNCw2Ci0JdnBhZGRxCXhtbTEw
LHhtbTUsWE1NV09SRFszMityYnBdCi0JeG9yCXJkaSxyMTAKLQlhZGQJcjgscjEyCi0Jcm9yCXIx
MywxNAotCWFuZAlyMTUscmRpCi0JeG9yCXIxNCxyOQotCWFkZAlyOCxyMTMKLQl4b3IJcjE1LHIx
MAotCXJvcglyMTQsMjgKLQlhZGQJcmF4LHI4Ci0JYWRkCXI4LHIxNQotCW1vdglyMTMscmF4Ci0J
YWRkCXIxNCxyOAotCXZtb3ZkcWEJWE1NV09SRFs4MCtyc3BdLHhtbTEwCi0JdnBhbGlnbnIJeG1t
OCx4bW03LHhtbTYsOAotCXJvcglyMTMsMjMKLQltb3YJcjgscjE0Ci0JdnBhbGlnbnIJeG1tMTEs
eG1tMyx4bW0yLDgKLQltb3YJcjEyLHJieAotCXJvcglyMTQsNQotREIJMTQzLDcyLDEyMCwxOTUs
MjAwLDU2Ci0JeG9yCXIxMyxyYXgKLQl4b3IJcjEyLHJjeAotCXZwc3JscQl4bW04LHhtbTgsNwot
CXJvcglyMTMsNAotCXhvcglyMTQscjgKLQl2cGFkZHEJeG1tNix4bW02LHhtbTExCi0JYW5kCXIx
MixyYXgKLQl4b3IJcjEzLHJheAotCWFkZAlyZHgsUVdPUkRbOTYrcnNwXQotCW1vdglyMTUscjgK
LURCCTE0Myw3MiwxMjAsMTk1LDIwOSw3Ci0JeG9yCXIxMixyY3gKLQlyb3IJcjE0LDYKLQl2cHhv
cgl4bW04LHhtbTgseG1tOQotCXhvcglyMTUscjkKLQlhZGQJcmR4LHIxMgotCXJvcglyMTMsMTQK
LQlhbmQJcmRpLHIxNQotREIJMTQzLDEwNCwxMjAsMTk1LDIyMSwzCi0JeG9yCXIxNCxyOAotCWFk
ZAlyZHgscjEzCi0JdnB4b3IJeG1tOCx4bW04LHhtbTEwCi0JeG9yCXJkaSxyOQotCXJvcglyMTQs
MjgKLQl2cHNybHEJeG1tMTAseG1tNSw2Ci0JYWRkCXIxMSxyZHgKLQlhZGQJcmR4LHJkaQotCXZw
YWRkcQl4bW02LHhtbTYseG1tOAotCW1vdglyMTMscjExCi0JYWRkCXIxNCxyZHgKLURCCTE0Myw3
MiwxMjAsMTk1LDIwMyw0MgotCXJvcglyMTMsMjMKLQltb3YJcmR4LHIxNAotCXZweG9yCXhtbTEx
LHhtbTExLHhtbTEwCi0JbW92CXIxMixyYXgKLQlyb3IJcjE0LDUKLQl4b3IJcjEzLHIxMQotCXhv
cglyMTIscmJ4Ci0JdnB4b3IJeG1tMTEseG1tMTEseG1tOQotCXJvcglyMTMsNAotCXhvcglyMTQs
cmR4Ci0JYW5kCXIxMixyMTEKLQl4b3IJcjEzLHIxMQotCXZwYWRkcQl4bW02LHhtbTYseG1tMTEK
LQlhZGQJcmN4LFFXT1JEWzEwNCtyc3BdCi0JbW92CXJkaSxyZHgKLQl4b3IJcjEyLHJieAotCXJv
cglyMTQsNgotCXZwYWRkcQl4bW0xMCx4bW02LFhNTVdPUkRbNjQrcmJwXQotCXhvcglyZGkscjgK
LQlhZGQJcmN4LHIxMgotCXJvcglyMTMsMTQKLQlhbmQJcjE1LHJkaQotCXhvcglyMTQscmR4Ci0J
YWRkCXJjeCxyMTMKLQl4b3IJcjE1LHI4Ci0Jcm9yCXIxNCwyOAotCWFkZAlyMTAscmN4Ci0JYWRk
CXJjeCxyMTUKLQltb3YJcjEzLHIxMAotCWFkZAlyMTQscmN4Ci0Jdm1vdmRxYQlYTU1XT1JEWzk2
K3JzcF0seG1tMTAKLQl2cGFsaWducgl4bW04LHhtbTAseG1tNyw4Ci0Jcm9yCXIxMywyMwotCW1v
dglyY3gscjE0Ci0JdnBhbGlnbnIJeG1tMTEseG1tNCx4bW0zLDgKLQltb3YJcjEyLHIxMQotCXJv
cglyMTQsNQotREIJMTQzLDcyLDEyMCwxOTUsMjAwLDU2Ci0JeG9yCXIxMyxyMTAKLQl4b3IJcjEy
LHJheAotCXZwc3JscQl4bW04LHhtbTgsNwotCXJvcglyMTMsNAotCXhvcglyMTQscmN4Ci0JdnBh
ZGRxCXhtbTcseG1tNyx4bW0xMQotCWFuZAlyMTIscjEwCi0JeG9yCXIxMyxyMTAKLQlhZGQJcmJ4
LFFXT1JEWzExMityc3BdCi0JbW92CXIxNSxyY3gKLURCCTE0Myw3MiwxMjAsMTk1LDIwOSw3Ci0J
eG9yCXIxMixyYXgKLQlyb3IJcjE0LDYKLQl2cHhvcgl4bW04LHhtbTgseG1tOQotCXhvcglyMTUs
cmR4Ci0JYWRkCXJieCxyMTIKLQlyb3IJcjEzLDE0Ci0JYW5kCXJkaSxyMTUKLURCCTE0MywxMDQs
MTIwLDE5NSwyMjIsMwotCXhvcglyMTQscmN4Ci0JYWRkCXJieCxyMTMKLQl2cHhvcgl4bW04LHht
bTgseG1tMTAKLQl4b3IJcmRpLHJkeAotCXJvcglyMTQsMjgKLQl2cHNybHEJeG1tMTAseG1tNiw2
Ci0JYWRkCXI5LHJieAotCWFkZAlyYngscmRpCi0JdnBhZGRxCXhtbTcseG1tNyx4bW04Ci0JbW92
CXIxMyxyOQotCWFkZAlyMTQscmJ4Ci1EQgkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKLQlyb3IJcjEz
LDIzCi0JbW92CXJieCxyMTQKLQl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAotCW1vdglyMTIscjEw
Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyOQotCXhvcglyMTIscjExCi0JdnB4b3IJeG1tMTEseG1t
MTEseG1tOQotCXJvcglyMTMsNAotCXhvcglyMTQscmJ4Ci0JYW5kCXIxMixyOQotCXhvcglyMTMs
cjkKLQl2cGFkZHEJeG1tNyx4bW03LHhtbTExCi0JYWRkCXJheCxRV09SRFsxMjArcnNwXQotCW1v
dglyZGkscmJ4Ci0JeG9yCXIxMixyMTEKLQlyb3IJcjE0LDYKLQl2cGFkZHEJeG1tMTAseG1tNyxY
TU1XT1JEWzk2K3JicF0KLQl4b3IJcmRpLHJjeAotCWFkZAlyYXgscjEyCi0Jcm9yCXIxMywxNAot
CWFuZAlyMTUscmRpCi0JeG9yCXIxNCxyYngKLQlhZGQJcmF4LHIxMwotCXhvcglyMTUscmN4Ci0J
cm9yCXIxNCwyOAotCWFkZAlyOCxyYXgKLQlhZGQJcmF4LHIxNQotCW1vdglyMTMscjgKLQlhZGQJ
cjE0LHJheAotCXZtb3ZkcWEJWE1NV09SRFsxMTIrcnNwXSx4bW0xMAotCWNtcAlCWVRFWzEzNSty
YnBdLDAKLQlqbmUJTkVBUiAkTCR4b3BfMDBfNDcKLQlyb3IJcjEzLDIzCi0JbW92CXJheCxyMTQK
LQltb3YJcjEyLHI5Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyOAotCXhvcglyMTIscjEwCi0Jcm9y
CXIxMyw0Ci0JeG9yCXIxNCxyYXgKLQlhbmQJcjEyLHI4Ci0JeG9yCXIxMyxyOAotCWFkZAlyMTEs
UVdPUkRbcnNwXQotCW1vdglyMTUscmF4Ci0JeG9yCXIxMixyMTAKLQlyb3IJcjE0LDYKLQl4b3IJ
cjE1LHJieAotCWFkZAlyMTEscjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyZGkscjE1Ci0JeG9yCXIx
NCxyYXgKLQlhZGQJcjExLHIxMwotCXhvcglyZGkscmJ4Ci0Jcm9yCXIxNCwyOAotCWFkZAlyZHgs
cjExCi0JYWRkCXIxMSxyZGkKLQltb3YJcjEzLHJkeAotCWFkZAlyMTQscjExCi0Jcm9yCXIxMywy
MwotCW1vdglyMTEscjE0Ci0JbW92CXIxMixyOAotCXJvcglyMTQsNQotCXhvcglyMTMscmR4Ci0J
eG9yCXIxMixyOQotCXJvcglyMTMsNAotCXhvcglyMTQscjExCi0JYW5kCXIxMixyZHgKLQl4b3IJ
cjEzLHJkeAotCWFkZAlyMTAsUVdPUkRbOCtyc3BdCi0JbW92CXJkaSxyMTEKLQl4b3IJcjEyLHI5
Ci0Jcm9yCXIxNCw2Ci0JeG9yCXJkaSxyYXgKLQlhZGQJcjEwLHIxMgotCXJvcglyMTMsMTQKLQlh
bmQJcjE1LHJkaQotCXhvcglyMTQscjExCi0JYWRkCXIxMCxyMTMKLQl4b3IJcjE1LHJheAotCXJv
cglyMTQsMjgKLQlhZGQJcmN4LHIxMAotCWFkZAlyMTAscjE1Ci0JbW92CXIxMyxyY3gKLQlhZGQJ
cjE0LHIxMAotCXJvcglyMTMsMjMKLQltb3YJcjEwLHIxNAotCW1vdglyMTIscmR4Ci0Jcm9yCXIx
NCw1Ci0JeG9yCXIxMyxyY3gKLQl4b3IJcjEyLHI4Ci0Jcm9yCXIxMyw0Ci0JeG9yCXIxNCxyMTAK
LQlhbmQJcjEyLHJjeAotCXhvcglyMTMscmN4Ci0JYWRkCXI5LFFXT1JEWzE2K3JzcF0KLQltb3YJ
cjE1LHIxMAotCXhvcglyMTIscjgKLQlyb3IJcjE0LDYKLQl4b3IJcjE1LHIxMQotCWFkZAlyOSxy
MTIKLQlyb3IJcjEzLDE0Ci0JYW5kCXJkaSxyMTUKLQl4b3IJcjE0LHIxMAotCWFkZAlyOSxyMTMK
LQl4b3IJcmRpLHIxMQotCXJvcglyMTQsMjgKLQlhZGQJcmJ4LHI5Ci0JYWRkCXI5LHJkaQotCW1v
dglyMTMscmJ4Ci0JYWRkCXIxNCxyOQotCXJvcglyMTMsMjMKLQltb3YJcjkscjE0Ci0JbW92CXIx
MixyY3gKLQlyb3IJcjE0LDUKLQl4b3IJcjEzLHJieAotCXhvcglyMTIscmR4Ci0Jcm9yCXIxMyw0
Ci0JeG9yCXIxNCxyOQotCWFuZAlyMTIscmJ4Ci0JeG9yCXIxMyxyYngKLQlhZGQJcjgsUVdPUkRb
MjQrcnNwXQotCW1vdglyZGkscjkKLQl4b3IJcjEyLHJkeAotCXJvcglyMTQsNgotCXhvcglyZGks
cjEwCi0JYWRkCXI4LHIxMgotCXJvcglyMTMsMTQKLQlhbmQJcjE1LHJkaQotCXhvcglyMTQscjkK
LQlhZGQJcjgscjEzCi0JeG9yCXIxNSxyMTAKLQlyb3IJcjE0LDI4Ci0JYWRkCXJheCxyOAotCWFk
ZAlyOCxyMTUKLQltb3YJcjEzLHJheAotCWFkZAlyMTQscjgKLQlyb3IJcjEzLDIzCi0JbW92CXI4
LHIxNAotCW1vdglyMTIscmJ4Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyYXgKLQl4b3IJcjEyLHJj
eAotCXJvcglyMTMsNAotCXhvcglyMTQscjgKLQlhbmQJcjEyLHJheAotCXhvcglyMTMscmF4Ci0J
YWRkCXJkeCxRV09SRFszMityc3BdCi0JbW92CXIxNSxyOAotCXhvcglyMTIscmN4Ci0Jcm9yCXIx
NCw2Ci0JeG9yCXIxNSxyOQotCWFkZAlyZHgscjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyZGkscjE1
Ci0JeG9yCXIxNCxyOAotCWFkZAlyZHgscjEzCi0JeG9yCXJkaSxyOQotCXJvcglyMTQsMjgKLQlh
ZGQJcjExLHJkeAotCWFkZAlyZHgscmRpCi0JbW92CXIxMyxyMTEKLQlhZGQJcjE0LHJkeAotCXJv
cglyMTMsMjMKLQltb3YJcmR4LHIxNAotCW1vdglyMTIscmF4Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIx
MyxyMTEKLQl4b3IJcjEyLHJieAotCXJvcglyMTMsNAotCXhvcglyMTQscmR4Ci0JYW5kCXIxMixy
MTEKLQl4b3IJcjEzLHIxMQotCWFkZAlyY3gsUVdPUkRbNDArcnNwXQotCW1vdglyZGkscmR4Ci0J
eG9yCXIxMixyYngKLQlyb3IJcjE0LDYKLQl4b3IJcmRpLHI4Ci0JYWRkCXJjeCxyMTIKLQlyb3IJ
cjEzLDE0Ci0JYW5kCXIxNSxyZGkKLQl4b3IJcjE0LHJkeAotCWFkZAlyY3gscjEzCi0JeG9yCXIx
NSxyOAotCXJvcglyMTQsMjgKLQlhZGQJcjEwLHJjeAotCWFkZAlyY3gscjE1Ci0JbW92CXIxMyxy
MTAKLQlhZGQJcjE0LHJjeAotCXJvcglyMTMsMjMKLQltb3YJcmN4LHIxNAotCW1vdglyMTIscjEx
Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyMTAKLQl4b3IJcjEyLHJheAotCXJvcglyMTMsNAotCXhv
cglyMTQscmN4Ci0JYW5kCXIxMixyMTAKLQl4b3IJcjEzLHIxMAotCWFkZAlyYngsUVdPUkRbNDgr
cnNwXQotCW1vdglyMTUscmN4Ci0JeG9yCXIxMixyYXgKLQlyb3IJcjE0LDYKLQl4b3IJcjE1LHJk
eAotCWFkZAlyYngscjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyZGkscjE1Ci0JeG9yCXIxNCxyY3gK
LQlhZGQJcmJ4LHIxMwotCXhvcglyZGkscmR4Ci0Jcm9yCXIxNCwyOAotCWFkZAlyOSxyYngKLQlh
ZGQJcmJ4LHJkaQotCW1vdglyMTMscjkKLQlhZGQJcjE0LHJieAotCXJvcglyMTMsMjMKLQltb3YJ
cmJ4LHIxNAotCW1vdglyMTIscjEwCi0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyOQotCXhvcglyMTIs
cjExCi0Jcm9yCXIxMyw0Ci0JeG9yCXIxNCxyYngKLQlhbmQJcjEyLHI5Ci0JeG9yCXIxMyxyOQot
CWFkZAlyYXgsUVdPUkRbNTYrcnNwXQotCW1vdglyZGkscmJ4Ci0JeG9yCXIxMixyMTEKLQlyb3IJ
cjE0LDYKLQl4b3IJcmRpLHJjeAotCWFkZAlyYXgscjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyMTUs
cmRpCi0JeG9yCXIxNCxyYngKLQlhZGQJcmF4LHIxMwotCXhvcglyMTUscmN4Ci0Jcm9yCXIxNCwy
OAotCWFkZAlyOCxyYXgKLQlhZGQJcmF4LHIxNQotCW1vdglyMTMscjgKLQlhZGQJcjE0LHJheAot
CXJvcglyMTMsMjMKLQltb3YJcmF4LHIxNAotCW1vdglyMTIscjkKLQlyb3IJcjE0LDUKLQl4b3IJ
cjEzLHI4Ci0JeG9yCXIxMixyMTAKLQlyb3IJcjEzLDQKLQl4b3IJcjE0LHJheAotCWFuZAlyMTIs
cjgKLQl4b3IJcjEzLHI4Ci0JYWRkCXIxMSxRV09SRFs2NCtyc3BdCi0JbW92CXIxNSxyYXgKLQl4
b3IJcjEyLHIxMAotCXJvcglyMTQsNgotCXhvcglyMTUscmJ4Ci0JYWRkCXIxMSxyMTIKLQlyb3IJ
cjEzLDE0Ci0JYW5kCXJkaSxyMTUKLQl4b3IJcjE0LHJheAotCWFkZAlyMTEscjEzCi0JeG9yCXJk
aSxyYngKLQlyb3IJcjE0LDI4Ci0JYWRkCXJkeCxyMTEKLQlhZGQJcjExLHJkaQotCW1vdglyMTMs
cmR4Ci0JYWRkCXIxNCxyMTEKLQlyb3IJcjEzLDIzCi0JbW92CXIxMSxyMTQKLQltb3YJcjEyLHI4
Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyZHgKLQl4b3IJcjEyLHI5Ci0Jcm9yCXIxMyw0Ci0JeG9y
CXIxNCxyMTEKLQlhbmQJcjEyLHJkeAotCXhvcglyMTMscmR4Ci0JYWRkCXIxMCxRV09SRFs3Mity
c3BdCi0JbW92CXJkaSxyMTEKLQl4b3IJcjEyLHI5Ci0Jcm9yCXIxNCw2Ci0JeG9yCXJkaSxyYXgK
LQlhZGQJcjEwLHIxMgotCXJvcglyMTMsMTQKLQlhbmQJcjE1LHJkaQotCXhvcglyMTQscjExCi0J
YWRkCXIxMCxyMTMKLQl4b3IJcjE1LHJheAotCXJvcglyMTQsMjgKLQlhZGQJcmN4LHIxMAotCWFk
ZAlyMTAscjE1Ci0JbW92CXIxMyxyY3gKLQlhZGQJcjE0LHIxMAotCXJvcglyMTMsMjMKLQltb3YJ
cjEwLHIxNAotCW1vdglyMTIscmR4Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyY3gKLQl4b3IJcjEy
LHI4Ci0Jcm9yCXIxMyw0Ci0JeG9yCXIxNCxyMTAKLQlhbmQJcjEyLHJjeAotCXhvcglyMTMscmN4
Ci0JYWRkCXI5LFFXT1JEWzgwK3JzcF0KLQltb3YJcjE1LHIxMAotCXhvcglyMTIscjgKLQlyb3IJ
cjE0LDYKLQl4b3IJcjE1LHIxMQotCWFkZAlyOSxyMTIKLQlyb3IJcjEzLDE0Ci0JYW5kCXJkaSxy
MTUKLQl4b3IJcjE0LHIxMAotCWFkZAlyOSxyMTMKLQl4b3IJcmRpLHIxMQotCXJvcglyMTQsMjgK
LQlhZGQJcmJ4LHI5Ci0JYWRkCXI5LHJkaQotCW1vdglyMTMscmJ4Ci0JYWRkCXIxNCxyOQotCXJv
cglyMTMsMjMKLQltb3YJcjkscjE0Ci0JbW92CXIxMixyY3gKLQlyb3IJcjE0LDUKLQl4b3IJcjEz
LHJieAotCXhvcglyMTIscmR4Ci0Jcm9yCXIxMyw0Ci0JeG9yCXIxNCxyOQotCWFuZAlyMTIscmJ4
Ci0JeG9yCXIxMyxyYngKLQlhZGQJcjgsUVdPUkRbODgrcnNwXQotCW1vdglyZGkscjkKLQl4b3IJ
cjEyLHJkeAotCXJvcglyMTQsNgotCXhvcglyZGkscjEwCi0JYWRkCXI4LHIxMgotCXJvcglyMTMs
MTQKLQlhbmQJcjE1LHJkaQotCXhvcglyMTQscjkKLQlhZGQJcjgscjEzCi0JeG9yCXIxNSxyMTAK
LQlyb3IJcjE0LDI4Ci0JYWRkCXJheCxyOAotCWFkZAlyOCxyMTUKLQltb3YJcjEzLHJheAotCWFk
ZAlyMTQscjgKLQlyb3IJcjEzLDIzCi0JbW92CXI4LHIxNAotCW1vdglyMTIscmJ4Ci0Jcm9yCXIx
NCw1Ci0JeG9yCXIxMyxyYXgKLQl4b3IJcjEyLHJjeAotCXJvcglyMTMsNAotCXhvcglyMTQscjgK
LQlhbmQJcjEyLHJheAotCXhvcglyMTMscmF4Ci0JYWRkCXJkeCxRV09SRFs5Nityc3BdCi0JbW92
CXIxNSxyOAotCXhvcglyMTIscmN4Ci0Jcm9yCXIxNCw2Ci0JeG9yCXIxNSxyOQotCWFkZAlyZHgs
cjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyZGkscjE1Ci0JeG9yCXIxNCxyOAotCWFkZAlyZHgscjEz
Ci0JeG9yCXJkaSxyOQotCXJvcglyMTQsMjgKLQlhZGQJcjExLHJkeAotCWFkZAlyZHgscmRpCi0J
bW92CXIxMyxyMTEKLQlhZGQJcjE0LHJkeAotCXJvcglyMTMsMjMKLQltb3YJcmR4LHIxNAotCW1v
dglyMTIscmF4Ci0Jcm9yCXIxNCw1Ci0JeG9yCXIxMyxyMTEKLQl4b3IJcjEyLHJieAotCXJvcgly
MTMsNAotCXhvcglyMTQscmR4Ci0JYW5kCXIxMixyMTEKLQl4b3IJcjEzLHIxMQotCWFkZAlyY3gs
UVdPUkRbMTA0K3JzcF0KLQltb3YJcmRpLHJkeAotCXhvcglyMTIscmJ4Ci0Jcm9yCXIxNCw2Ci0J
eG9yCXJkaSxyOAotCWFkZAlyY3gscjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyMTUscmRpCi0JeG9y
CXIxNCxyZHgKLQlhZGQJcmN4LHIxMwotCXhvcglyMTUscjgKLQlyb3IJcjE0LDI4Ci0JYWRkCXIx
MCxyY3gKLQlhZGQJcmN4LHIxNQotCW1vdglyMTMscjEwCi0JYWRkCXIxNCxyY3gKLQlyb3IJcjEz
LDIzCi0JbW92CXJjeCxyMTQKLQltb3YJcjEyLHIxMQotCXJvcglyMTQsNQotCXhvcglyMTMscjEw
Ci0JeG9yCXIxMixyYXgKLQlyb3IJcjEzLDQKLQl4b3IJcjE0LHJjeAotCWFuZAlyMTIscjEwCi0J
eG9yCXIxMyxyMTAKLQlhZGQJcmJ4LFFXT1JEWzExMityc3BdCi0JbW92CXIxNSxyY3gKLQl4b3IJ
cjEyLHJheAotCXJvcglyMTQsNgotCXhvcglyMTUscmR4Ci0JYWRkCXJieCxyMTIKLQlyb3IJcjEz
LDE0Ci0JYW5kCXJkaSxyMTUKLQl4b3IJcjE0LHJjeAotCWFkZAlyYngscjEzCi0JeG9yCXJkaSxy
ZHgKLQlyb3IJcjE0LDI4Ci0JYWRkCXI5LHJieAotCWFkZAlyYngscmRpCi0JbW92CXIxMyxyOQot
CWFkZAlyMTQscmJ4Ci0Jcm9yCXIxMywyMwotCW1vdglyYngscjE0Ci0JbW92CXIxMixyMTAKLQly
b3IJcjE0LDUKLQl4b3IJcjEzLHI5Ci0JeG9yCXIxMixyMTEKLQlyb3IJcjEzLDQKLQl4b3IJcjE0
LHJieAotCWFuZAlyMTIscjkKLQl4b3IJcjEzLHI5Ci0JYWRkCXJheCxRV09SRFsxMjArcnNwXQot
CW1vdglyZGkscmJ4Ci0JeG9yCXIxMixyMTEKLQlyb3IJcjE0LDYKLQl4b3IJcmRpLHJjeAotCWFk
ZAlyYXgscjEyCi0Jcm9yCXIxMywxNAotCWFuZAlyMTUscmRpCi0JeG9yCXIxNCxyYngKLQlhZGQJ
cmF4LHIxMwotCXhvcglyMTUscmN4Ci0Jcm9yCXIxNCwyOAotCWFkZAlyOCxyYXgKLQlhZGQJcmF4
LHIxNQotCW1vdglyMTMscjgKLQlhZGQJcjE0LHJheAotCW1vdglyZGksUVdPUkRbKCgxMjgrMCkp
K3JzcF0KLQltb3YJcmF4LHIxNAotCi0JYWRkCXJheCxRV09SRFtyZGldCi0JbGVhCXJzaSxbMTI4
K3JzaV0KLQlhZGQJcmJ4LFFXT1JEWzgrcmRpXQotCWFkZAlyY3gsUVdPUkRbMTYrcmRpXQotCWFk
ZAlyZHgsUVdPUkRbMjQrcmRpXQotCWFkZAlyOCxRV09SRFszMityZGldCi0JYWRkCXI5LFFXT1JE
WzQwK3JkaV0KLQlhZGQJcjEwLFFXT1JEWzQ4K3JkaV0KLQlhZGQJcjExLFFXT1JEWzU2K3JkaV0K
LQotCWNtcAlyc2ksUVdPUkRbKCgxMjgrMTYpKStyc3BdCi0KLQltb3YJUVdPUkRbcmRpXSxyYXgK
LQltb3YJUVdPUkRbOCtyZGldLHJieAotCW1vdglRV09SRFsxNityZGldLHJjeAotCW1vdglRV09S
RFsyNCtyZGldLHJkeAotCW1vdglRV09SRFszMityZGldLHI4Ci0JbW92CVFXT1JEWzQwK3JkaV0s
cjkKLQltb3YJUVdPUkRbNDgrcmRpXSxyMTAKLQltb3YJUVdPUkRbNTYrcmRpXSxyMTEKLQlqYglO
RUFSICRMJGxvb3BfeG9wCi0KLQltb3YJcnNpLFFXT1JEWzE1Mityc3BdCi0KLQl2emVyb3VwcGVy
Ci0JbW92YXBzCXhtbTYsWE1NV09SRFsoKDEyOCszMikpK3JzcF0KLQltb3ZhcHMJeG1tNyxYTU1X
T1JEWygoMTI4KzQ4KSkrcnNwXQotCW1vdmFwcwl4bW04LFhNTVdPUkRbKCgxMjgrNjQpKStyc3Bd
Ci0JbW92YXBzCXhtbTksWE1NV09SRFsoKDEyOCs4MCkpK3JzcF0KLQltb3ZhcHMJeG1tMTAsWE1N
V09SRFsoKDEyOCs5NikpK3JzcF0KLQltb3ZhcHMJeG1tMTEsWE1NV09SRFsoKDEyOCsxMTIpKSty
c3BdCi0JbW92CXIxNSxRV09SRFsoKC00OCkpK3JzaV0KLQotCW1vdglyMTQsUVdPUkRbKCgtNDAp
KStyc2ldCi0KLQltb3YJcjEzLFFXT1JEWygoLTMyKSkrcnNpXQotCi0JbW92CXIxMixRV09SRFso
KC0yNCkpK3JzaV0KLQotCW1vdglyYnAsUVdPUkRbKCgtMTYpKStyc2ldCi0KLQltb3YJcmJ4LFFX
T1JEWygoLTgpKStyc2ldCi0KLQlsZWEJcnNwLFtyc2ldCi0KLSRMJGVwaWxvZ3VlX3hvcDoKLQlt
b3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKLQltb3YJcnNpLFFXT1JEWzE2K3Jz
cF0KLQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLQotJEwkU0VIX2VuZF9zaGE1MTJfYmxvY2tfZGF0
YV9vcmRlcl94b3A6Ci0KIEFMSUdOCTY0CiBzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdng6CiAJ
bW92CVFXT1JEWzgrcnNwXSxyZGkJO1dJTjY0IHByb2xvZ3VlCkBAIC00MjUwLDkgKzMxMjQsNiBA
QCBBTElHTgk0CiAJREQJJEwkU0VIX2JlZ2luX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyIHdydCAu
LmltYWdlYmFzZQogCURECSRMJFNFSF9lbmRfc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIgd3J0IC4u
aW1hZ2ViYXNlCiAJREQJJEwkU0VIX2luZm9fc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIgd3J0IC4u
aW1hZ2ViYXNlCi0JREQJJEwkU0VIX2JlZ2luX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcCB3
cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhfZW5kX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hv
cCB3cnQgLi5pbWFnZWJhc2UKLQlERAkkTCRTRUhfaW5mb19zaGE1MTJfYmxvY2tfZGF0YV9vcmRl
cl94b3Agd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkU0VIX2JlZ2luX3NoYTUxMl9ibG9ja19kYXRh
X29yZGVyX2F2eCB3cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRTRUhfZW5kX3NoYTUxMl9ibG9ja19k
YXRhX29yZGVyX2F2eCB3cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRTRUhfaW5mb19zaGE1MTJfYmxv
Y2tfZGF0YV9vcmRlcl9hdnggd3J0IC4uaW1hZ2ViYXNlCkBAIC00MjYyLDEwICszMTMzLDYgQEAg
JEwkU0VIX2luZm9fc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXI6CiBEQgk5LDAsMCwwCiAJREQJc2Vf
aGFuZGxlciB3cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRwcm9sb2d1ZSB3cnQgLi5pbWFnZWJhc2Us
JEwkZXBpbG9ndWUgd3J0IC4uaW1hZ2ViYXNlCi0kTCRTRUhfaW5mb19zaGE1MTJfYmxvY2tfZGF0
YV9vcmRlcl94b3A6Ci1EQgk5LDAsMCwwCi0JREQJc2VfaGFuZGxlciB3cnQgLi5pbWFnZWJhc2UK
LQlERAkkTCRwcm9sb2d1ZV94b3Agd3J0IC4uaW1hZ2ViYXNlLCRMJGVwaWxvZ3VlX3hvcCB3cnQg
Li5pbWFnZWJhc2UKICRMJFNFSF9pbmZvX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX2F2eDoKIERC
CTksMCwwLDAKIAlERAlzZV9oYW5kbGVyIHdydCAuLmltYWdlYmFzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2lu
LXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS92cGFlcy14ODZfNjQuYXNtIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9j
cnlwdG8vZmlwc21vZHVsZS92cGFlcy14ODZfNjQuYXNtCmluZGV4IGQxZDFmZTc0ODEyNTYwOGYw
MmY2MTVmYjhjZWNiYTEzZGM4Y2ExYzMuLjEwMDkyYzhhMTgzZjhiYjBjMThmOGQ4ZTY3OTU5ZGRi
NDJkZjEyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUvdnBhZXMt
eDg2XzY0LmFzbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9kdWxlL3ZwYWVzLXg4Nl82
NC5hc20KQEAgLTMwLDYgKzMwLDcgQEAgc2VjdGlvbgkudGV4dCBjb2RlIGFsaWduPTY0CiAKIEFM
SUdOCTE2CiBfdnBhZXNfZW5jcnlwdF9jb3JlOgorCiAJbW92CXI5LHJkeAogCW1vdglyMTEsMTYK
IAltb3YJZWF4LERXT1JEWzI0MCtyZHhdCkBAIC0xMTgsOCArMTE5LDE4NSBAQCBEQgkxMDIsMTUs
NTYsMCwxOTMKIAogCiAKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisK
KworCisKKworQUxJR04JMTYKK192cGFlc19lbmNyeXB0X2NvcmVfMng6CisKKwltb3YJcjkscmR4
CisJbW92CXIxMSwxNgorCW1vdgllYXgsRFdPUkRbMjQwK3JkeF0KKwltb3ZkcWEJeG1tMSx4bW05
CisJbW92ZHFhCXhtbTcseG1tOQorCW1vdmRxYQl4bW0yLFhNTVdPUkRbJEwka19pcHRdCisJbW92
ZHFhCXhtbTgseG1tMgorCXBhbmRuCXhtbTEseG1tMAorCXBhbmRuCXhtbTcseG1tNgorCW1vdmRx
dQl4bW01LFhNTVdPUkRbcjldCisKKwlwc3JsZAl4bW0xLDQKKwlwc3JsZAl4bW03LDQKKwlwYW5k
CXhtbTAseG1tOQorCXBhbmQJeG1tNix4bW05CitEQgkxMDIsMTUsNTYsMCwyMDgKK0RCCTEwMiw2
OCwxNSw1NiwwLDE5OAorCW1vdmRxYQl4bW0wLFhNTVdPUkRbKCgkTCRrX2lwdCsxNikpXQorCW1v
dmRxYQl4bW02LHhtbTAKK0RCCTEwMiwxNSw1NiwwLDE5MworREIJMTAyLDE1LDU2LDAsMjQ3CisJ
cHhvcgl4bW0yLHhtbTUKKwlweG9yCXhtbTgseG1tNQorCWFkZAlyOSwxNgorCXB4b3IJeG1tMCx4
bW0yCisJcHhvcgl4bW02LHhtbTgKKwlsZWEJcjEwLFskTCRrX21jX2JhY2t3YXJkXQorCWptcAlO
RUFSICRMJGVuYzJ4X2VudHJ5CisKK0FMSUdOCTE2CiskTCRlbmMyeF9sb29wOgorCisJbW92ZHFh
CXhtbTQsWE1NV09SRFskTCRrX3NiMV0KKwltb3ZkcWEJeG1tMCxYTU1XT1JEWygoJEwka19zYjEr
MTYpKV0KKwltb3ZkcWEJeG1tMTIseG1tNAorCW1vdmRxYQl4bW02LHhtbTAKK0RCCTEwMiwxNSw1
NiwwLDIyNgorREIJMTAyLDY5LDE1LDU2LDAsMjI0CitEQgkxMDIsMTUsNTYsMCwxOTUKK0RCCTEw
Miw2NSwxNSw1NiwwLDI0MworCXB4b3IJeG1tNCx4bW01CisJcHhvcgl4bW0xMix4bW01CisJbW92
ZHFhCXhtbTUsWE1NV09SRFskTCRrX3NiMl0KKwltb3ZkcWEJeG1tMTMseG1tNQorCXB4b3IJeG1t
MCx4bW00CisJcHhvcgl4bW02LHhtbTEyCisJbW92ZHFhCXhtbTEsWE1NV09SRFsoKC02NCkpK3Ix
MCoxK3IxMV0KKworREIJMTAyLDE1LDU2LDAsMjM0CitEQgkxMDIsNjksMTUsNTYsMCwyMzIKKwlt
b3ZkcWEJeG1tNCxYTU1XT1JEW3IxMCoxK3IxMV0KKworCW1vdmRxYQl4bW0yLFhNTVdPUkRbKCgk
TCRrX3NiMisxNikpXQorCW1vdmRxYQl4bW04LHhtbTIKK0RCCTEwMiwxNSw1NiwwLDIxMQorREIJ
MTAyLDY5LDE1LDU2LDAsMTk1CisJbW92ZHFhCXhtbTMseG1tMAorCW1vdmRxYQl4bW0xMSx4bW02
CisJcHhvcgl4bW0yLHhtbTUKKwlweG9yCXhtbTgseG1tMTMKK0RCCTEwMiwxNSw1NiwwLDE5Mwor
REIJMTAyLDE1LDU2LDAsMjQxCisJYWRkCXI5LDE2CisJcHhvcgl4bW0wLHhtbTIKKwlweG9yCXht
bTYseG1tOAorREIJMTAyLDE1LDU2LDAsMjIwCitEQgkxMDIsNjgsMTUsNTYsMCwyMjAKKwlhZGQJ
cjExLDE2CisJcHhvcgl4bW0zLHhtbTAKKwlweG9yCXhtbTExLHhtbTYKK0RCCTEwMiwxNSw1Niww
LDE5MworREIJMTAyLDE1LDU2LDAsMjQxCisJYW5kCXIxMSwweDMwCisJc3ViCXJheCwxCisJcHhv
cgl4bW0wLHhtbTMKKwlweG9yCXhtbTYseG1tMTEKKworJEwkZW5jMnhfZW50cnk6CisKKwltb3Zk
cWEJeG1tMSx4bW05CisJbW92ZHFhCXhtbTcseG1tOQorCW1vdmRxYQl4bW01LFhNTVdPUkRbKCgk
TCRrX2ludisxNikpXQorCW1vdmRxYQl4bW0xMyx4bW01CisJcGFuZG4JeG1tMSx4bW0wCisJcGFu
ZG4JeG1tNyx4bW02CisJcHNybGQJeG1tMSw0CisJcHNybGQJeG1tNyw0CisJcGFuZAl4bW0wLHht
bTkKKwlwYW5kCXhtbTYseG1tOQorREIJMTAyLDE1LDU2LDAsMjMyCitEQgkxMDIsNjgsMTUsNTYs
MCwyMzgKKwltb3ZkcWEJeG1tMyx4bW0xMAorCW1vdmRxYQl4bW0xMSx4bW0xMAorCXB4b3IJeG1t
MCx4bW0xCisJcHhvcgl4bW02LHhtbTcKK0RCCTEwMiwxNSw1NiwwLDIxNworREIJMTAyLDY4LDE1
LDU2LDAsMjIzCisJbW92ZHFhCXhtbTQseG1tMTAKKwltb3ZkcWEJeG1tMTIseG1tMTAKKwlweG9y
CXhtbTMseG1tNQorCXB4b3IJeG1tMTEseG1tMTMKK0RCCTEwMiwxNSw1NiwwLDIyNAorREIJMTAy
LDY4LDE1LDU2LDAsMjMwCisJbW92ZHFhCXhtbTIseG1tMTAKKwltb3ZkcWEJeG1tOCx4bW0xMAor
CXB4b3IJeG1tNCx4bW01CisJcHhvcgl4bW0xMix4bW0xMworREIJMTAyLDE1LDU2LDAsMjExCitE
QgkxMDIsNjksMTUsNTYsMCwxOTUKKwltb3ZkcWEJeG1tMyx4bW0xMAorCW1vdmRxYQl4bW0xMSx4
bW0xMAorCXB4b3IJeG1tMix4bW0wCisJcHhvcgl4bW04LHhtbTYKK0RCCTEwMiwxNSw1NiwwLDIy
MAorREIJMTAyLDY5LDE1LDU2LDAsMjIwCisJbW92ZHF1CXhtbTUsWE1NV09SRFtyOV0KKworCXB4
b3IJeG1tMyx4bW0xCisJcHhvcgl4bW0xMSx4bW03CisJam56CU5FQVIgJEwkZW5jMnhfbG9vcAor
CisKKwltb3ZkcWEJeG1tNCxYTU1XT1JEWygoLTk2KSkrcjEwXQorCW1vdmRxYQl4bW0wLFhNTVdP
UkRbKCgtODApKStyMTBdCisJbW92ZHFhCXhtbTEyLHhtbTQKKwltb3ZkcWEJeG1tNix4bW0wCitE
QgkxMDIsMTUsNTYsMCwyMjYKK0RCCTEwMiw2OSwxNSw1NiwwLDIyNAorCXB4b3IJeG1tNCx4bW01
CisJcHhvcgl4bW0xMix4bW01CitEQgkxMDIsMTUsNTYsMCwxOTUKK0RCCTEwMiw2NSwxNSw1Niww
LDI0MworCW1vdmRxYQl4bW0xLFhNTVdPUkRbNjQrcjEwKjErcjExXQorCisJcHhvcgl4bW0wLHht
bTQKKwlweG9yCXhtbTYseG1tMTIKK0RCCTEwMiwxNSw1NiwwLDE5MworREIJMTAyLDE1LDU2LDAs
MjQxCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKKworCisKKworCisKKworCiBBTElHTgkxNgog
X3ZwYWVzX2RlY3J5cHRfY29yZToKKwogCW1vdglyOSxyZHgKIAltb3YJZWF4LERXT1JEWzI0MCty
ZHhdCiAJbW92ZHFhCXhtbTEseG1tOQpAQCAtMjI0LDYgKzQwMiw3IEBAIERCCTEwMiwxNSw1Niww
LDE5NAogCiAKIAorCiBBTElHTgkxNgogX3ZwYWVzX3NjaGVkdWxlX2NvcmU6CiAKQEAgLTIzMSw2
ICs0MTAsNyBAQCBfdnBhZXNfc2NoZWR1bGVfY29yZToKIAogCiAKKwogCWNhbGwJX3ZwYWVzX3By
ZWhlYXQKIAltb3ZkcWEJeG1tOCxYTU1XT1JEWyRMJGtfcmNvbl0KIAltb3ZkcXUJeG1tMCxYTU1X
T1JEW3JkaV0KQEAgLTQwOSw4ICs1ODksMTAgQEAgJEwkc2NoZWR1bGVfbWFuZ2xlX2xhc3RfZGVj
OgogCiAKIAorCiBBTElHTgkxNgogX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVhcjoKKwogCXBzaHVm
ZAl4bW0xLHhtbTYsMHg4MAogCXBzaHVmZAl4bW0wLHhtbTcsMHhGRQogCXB4b3IJeG1tNix4bW0x
CkBAIC00MzgsMTEgKzYyMCwxMyBAQCBfdnBhZXNfc2NoZWR1bGVfMTkyX3NtZWFyOgogCiAKIAor
CiAKIAogQUxJR04JMTYKIF92cGFlc19zY2hlZHVsZV9yb3VuZDoKIAorCiAJcHhvcgl4bW0xLHht
bTEKIERCCTEwMiw2NSwxNSw1OCwxNSwyMDAsMTUKIERCCTEwMiw2OSwxNSw1OCwxNSwxOTIsMTUK
QEAgLTUwNyw4ICs2OTEsMTAgQEAgREIJMTAyLDE1LDU2LDAsMTk1CiAKIAogCisKIEFMSUdOCTE2
CiBfdnBhZXNfc2NoZWR1bGVfdHJhbnNmb3JtOgorCiAJbW92ZHFhCXhtbTEseG1tOQogCXBhbmRu
CXhtbTEseG1tMAogCXBzcmxkCXhtbTEsNApAQCAtNTQzLDEwICs3MjksMTIgQEAgREIJMTAyLDE1
LDU2LDAsMTkzCiAKIAogCisKIAogCiBBTElHTgkxNgogX3ZwYWVzX3NjaGVkdWxlX21hbmdsZToK
KwogCW1vdmRxYQl4bW00LHhtbTAKIAltb3ZkcWEJeG1tNSxYTU1XT1JEWyRMJGtfbWNfZm9yd2Fy
ZF0KIAl0ZXN0CXJjeCxyY3gKQEAgLTYxNiw2ICs4MDQsNyBAQCBEQgkxMDIsMTUsNTYsMCwyMTcK
IAogCiAKKwogZ2xvYmFsCXZwYWVzX3NldF9lbmNyeXB0X2tleQogCiBBTElHTgkxNgpAQCAtNjI5
LDYgKzgxOCwxNCBAQCAkTCRTRUhfYmVnaW5fdnBhZXNfc2V0X2VuY3J5cHRfa2V5OgogCW1vdgly
ZHgscjgKIAogCisKKyVpZm5kZWYgTkRFQlVHCislaWZuZGVmIEJPUklOR1NTTF9GSVBTCitFWFRF
Uk4JQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdAorCW1vdglCWVRFWygoQk9SSU5HU1NMX2Z1bmN0aW9u
X2hpdCs1KSldLDEKKyVlbmRpZgorJWVuZGlmCisKIAlsZWEJcnNwLFsoKC0xODQpKStyc3BdCiAJ
bW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW02CiAJbW92YXBzCVhNTVdPUkRbMzIrcnNwXSx4bW03
CkBAIC02NjUsNiArODYyLDcgQEAgJEwkZW5jX2tleV9lcGlsb2d1ZToKIAltb3YJcmRpLFFXT1JE
WzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKIAltb3YJcnNpLFFXT1JEWzE2K3JzcF0KIAlEQgkwRjNo
LDBDM2gJCTtyZXByZXQKKwogJEwkU0VIX2VuZF92cGFlc19zZXRfZW5jcnlwdF9rZXk6CiAKIGds
b2JhbAl2cGFlc19zZXRfZGVjcnlwdF9rZXkKQEAgLTY4MCw2ICs4NzgsNyBAQCAkTCRTRUhfYmVn
aW5fdnBhZXNfc2V0X2RlY3J5cHRfa2V5OgogCW1vdglyZHgscjgKIAogCisKIAlsZWEJcnNwLFso
KC0xODQpKStyc3BdCiAJbW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW02CiAJbW92YXBzCVhNTVdP
UkRbMzIrcnNwXSx4bW03CkBAIC03MjEsNiArOTIwLDcgQEAgJEwkZGVjX2tleV9lcGlsb2d1ZToK
IAltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKIAltb3YJcnNpLFFXT1JEWzE2
K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKwogJEwkU0VIX2VuZF92cGFlc19zZXRfZGVj
cnlwdF9rZXk6CiAKIGdsb2JhbAl2cGFlc19lbmNyeXB0CkBAIC03MzYsNiArOTM2LDEzIEBAICRM
JFNFSF9iZWdpbl92cGFlc19lbmNyeXB0OgogCW1vdglyZHgscjgKIAogCisKKyVpZm5kZWYgTkRF
QlVHCislaWZuZGVmIEJPUklOR1NTTF9GSVBTCitFWFRFUk4JQk9SSU5HU1NMX2Z1bmN0aW9uX2hp
dAorCW1vdglCWVRFWygoQk9SSU5HU1NMX2Z1bmN0aW9uX2hpdCs0KSldLDEKKyVlbmRpZgorJWVu
ZGlmCiAJbGVhCXJzcCxbKCgtMTg0KSkrcnNwXQogCW1vdmFwcwlYTU1XT1JEWzE2K3JzcF0seG1t
NgogCW1vdmFwcwlYTU1XT1JEWzMyK3JzcF0seG1tNwpAQCAtNzY3LDYgKzk3NCw3IEBAICRMJGVu
Y19lcGlsb2d1ZToKIAltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKIAltb3YJ
cnNpLFFXT1JEWzE2K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKwogJEwkU0VIX2VuZF92
cGFlc19lbmNyeXB0OgogCiBnbG9iYWwJdnBhZXNfZGVjcnlwdApAQCAtNzgyLDYgKzk5MCw3IEBA
ICRMJFNFSF9iZWdpbl92cGFlc19kZWNyeXB0OgogCW1vdglyZHgscjgKIAogCisKIAlsZWEJcnNw
LFsoKC0xODQpKStyc3BdCiAJbW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW02CiAJbW92YXBzCVhN
TVdPUkRbMzIrcnNwXSx4bW03CkBAIC04MTMsNiArMTAyMiw3IEBAICRMJGRlY19lcGlsb2d1ZToK
IAltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKIAltb3YJcnNpLFFXT1JEWzE2
K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKwogJEwkU0VIX2VuZF92cGFlc19kZWNyeXB0
OgogZ2xvYmFsCXZwYWVzX2NiY19lbmNyeXB0CiAKQEAgLTgzMCw2ICsxMDQwLDcgQEAgJEwkU0VI
X2JlZ2luX3ZwYWVzX2NiY19lbmNyeXB0OgogCW1vdglyOSxRV09SRFs0OCtyc3BdCiAKIAorCiAJ
eGNoZwlyZHgscmN4CiAJc3ViCXJjeCwxNgogCWpjCU5FQVIgJEwkY2JjX2Fib3J0CkBAIC04OTEs
NyArMTEwMiwxMDcgQEAgJEwkY2JjX2Fib3J0OgogCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42
NCBlcGlsb2d1ZQogCW1vdglyc2ksUVdPUkRbMTYrcnNwXQogCURCCTBGM2gsMEMzaAkJO3JlcHJl
dAorCiAkTCRTRUhfZW5kX3ZwYWVzX2NiY19lbmNyeXB0OgorZ2xvYmFsCXZwYWVzX2N0cjMyX2Vu
Y3J5cHRfYmxvY2tzCisKK0FMSUdOCTE2Cit2cGFlc19jdHIzMl9lbmNyeXB0X2Jsb2NrczoKKwlt
b3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKKwltb3YJUVdPUkRbMTYrcnNwXSxy
c2kKKwltb3YJcmF4LHJzcAorJEwkU0VIX2JlZ2luX3ZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tz
OgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisJbW92CXJjeCxyOQor
CW1vdglyOCxRV09SRFs0MCtyc3BdCisKKworCisKKwl4Y2hnCXJkeCxyY3gKKwl0ZXN0CXJjeCxy
Y3gKKwlqeglORUFSICRMJGN0cjMyX2Fib3J0CisJbGVhCXJzcCxbKCgtMTg0KSkrcnNwXQorCW1v
dmFwcwlYTU1XT1JEWzE2K3JzcF0seG1tNgorCW1vdmFwcwlYTU1XT1JEWzMyK3JzcF0seG1tNwor
CW1vdmFwcwlYTU1XT1JEWzQ4K3JzcF0seG1tOAorCW1vdmFwcwlYTU1XT1JEWzY0K3JzcF0seG1t
OQorCW1vdmFwcwlYTU1XT1JEWzgwK3JzcF0seG1tMTAKKwltb3ZhcHMJWE1NV09SRFs5Nityc3Bd
LHhtbTExCisJbW92YXBzCVhNTVdPUkRbMTEyK3JzcF0seG1tMTIKKwltb3ZhcHMJWE1NV09SRFsx
MjgrcnNwXSx4bW0xMworCW1vdmFwcwlYTU1XT1JEWzE0NCtyc3BdLHhtbTE0CisJbW92YXBzCVhN
TVdPUkRbMTYwK3JzcF0seG1tMTUKKyRMJGN0cjMyX2JvZHk6CisJbW92ZHF1CXhtbTAsWE1NV09S
RFtyOF0KKwltb3ZkcWEJeG1tOCxYTU1XT1JEWyRMJGN0cl9hZGRfb25lXQorCXN1Yglyc2kscmRp
CisJY2FsbAlfdnBhZXNfcHJlaGVhdAorCW1vdmRxYQl4bW02LHhtbTAKKwlwc2h1ZmIJeG1tNixY
TU1XT1JEWyRMJHJldl9jdHJdCisKKwl0ZXN0CXJjeCwxCisJanoJTkVBUiAkTCRjdHIzMl9wcmVw
X2xvb3AKKworCisKKwltb3ZkcXUJeG1tNyxYTU1XT1JEW3JkaV0KKwljYWxsCV92cGFlc19lbmNy
eXB0X2NvcmUKKwlweG9yCXhtbTAseG1tNworCXBhZGRkCXhtbTYseG1tOAorCW1vdmRxdQlYTU1X
T1JEW3JkaSoxK3JzaV0seG1tMAorCXN1YglyY3gsMQorCWxlYQlyZGksWzE2K3JkaV0KKwlqeglO
RUFSICRMJGN0cjMyX2RvbmUKKworJEwkY3RyMzJfcHJlcF9sb29wOgorCisKKwltb3ZkcWEJeG1t
MTQseG1tNgorCW1vdmRxYQl4bW0xNSx4bW02CisJcGFkZGQJeG1tMTUseG1tOAorCiskTCRjdHIz
Ml9sb29wOgorCW1vdmRxYQl4bW0xLFhNTVdPUkRbJEwkcmV2X2N0cl0KKwltb3ZkcWEJeG1tMCx4
bW0xNAorCW1vdmRxYQl4bW02LHhtbTE1CitEQgkxMDIsMTUsNTYsMCwxOTMKK0RCCTEwMiwxNSw1
NiwwLDI0MQorCWNhbGwJX3ZwYWVzX2VuY3J5cHRfY29yZV8yeAorCW1vdmRxdQl4bW0xLFhNTVdP
UkRbcmRpXQorCW1vdmRxdQl4bW0yLFhNTVdPUkRbMTYrcmRpXQorCW1vdmRxYQl4bW0zLFhNTVdP
UkRbJEwkY3RyX2FkZF90d29dCisJcHhvcgl4bW0wLHhtbTEKKwlweG9yCXhtbTYseG1tMgorCXBh
ZGRkCXhtbTE0LHhtbTMKKwlwYWRkZAl4bW0xNSx4bW0zCisJbW92ZHF1CVhNTVdPUkRbcmRpKjEr
cnNpXSx4bW0wCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpKjErcnNpXSx4bW02CisJc3ViCXJjeCwy
CisJbGVhCXJkaSxbMzIrcmRpXQorCWpueglORUFSICRMJGN0cjMyX2xvb3AKKworJEwkY3RyMzJf
ZG9uZToKKwltb3ZhcHMJeG1tNixYTU1XT1JEWzE2K3JzcF0KKwltb3ZhcHMJeG1tNyxYTU1XT1JE
WzMyK3JzcF0KKwltb3ZhcHMJeG1tOCxYTU1XT1JEWzQ4K3JzcF0KKwltb3ZhcHMJeG1tOSxYTU1X
T1JEWzY0K3JzcF0KKwltb3ZhcHMJeG1tMTAsWE1NV09SRFs4MCtyc3BdCisJbW92YXBzCXhtbTEx
LFhNTVdPUkRbOTYrcnNwXQorCW1vdmFwcwl4bW0xMixYTU1XT1JEWzExMityc3BdCisJbW92YXBz
CXhtbTEzLFhNTVdPUkRbMTI4K3JzcF0KKwltb3ZhcHMJeG1tMTQsWE1NV09SRFsxNDQrcnNwXQor
CW1vdmFwcwl4bW0xNSxYTU1XT1JEWzE2MCtyc3BdCisJbGVhCXJzcCxbMTg0K3JzcF0KKyRMJGN0
cjMyX2VwaWxvZ3VlOgorJEwkY3RyMzJfYWJvcnQ6CisJbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJ
TjY0IGVwaWxvZ3VlCisJbW92CXJzaSxRV09SRFsxNityc3BdCisJREIJMEYzaCwwQzNoCQk7cmVw
cmV0CisKKyRMJFNFSF9lbmRfdnBhZXNfY3RyMzJfZW5jcnlwdF9ibG9ja3M6CiAKIAogCkBAIC05
MDEsNiArMTIxMiw3IEBAICRMJFNFSF9lbmRfdnBhZXNfY2JjX2VuY3J5cHQ6CiAKIEFMSUdOCTE2
CiBfdnBhZXNfcHJlaGVhdDoKKwogCWxlYQlyMTAsWyRMJGtfczBGXQogCW1vdmRxYQl4bW0xMCxY
TU1XT1JEWygoLTMyKSkrcjEwXQogCW1vdmRxYQl4bW0xMSxYTU1XT1JEWygoLTE2KSkrcjEwXQpA
QCAtOTE3LDYgKzEyMjksNyBAQCBfdnBhZXNfcHJlaGVhdDoKIAogCiAKKwogQUxJR04JNjQKIF92
cGFlc19jb25zdHM6CiAkTCRrX2ludjoKQEAgLTEwMTIsNiArMTMyNSwxNyBAQCAkTCRrX2RzYmU6
CiAkTCRrX2RzYm86CiAJRFEJMHgxMzg3RUE1MzdFRjk0MDAwLDB4QzdBQTZEQjlENDk0M0UyRAog
CURRCTB4MTJENzU2MEY5MzQ0MUQwMCwweENBNEI4MTU5RDhDNThFOUMKKworCiskTCRyZXZfY3Ry
OgorCURRCTB4MDcwNjA1MDQwMzAyMDEwMCwweDBjMGQwZTBmMGIwYTA5MDgKKworCiskTCRjdHJf
YWRkX29uZToKKwlEUQkweDAwMDAwMDAwMDAwMDAwMDAsMHgwMDAwMDAwMTAwMDAwMDAwCiskTCRj
dHJfYWRkX3R3bzoKKwlEUQkweDAwMDAwMDAwMDAwMDAwMDAsMHgwMDAwMDAwMjAwMDAwMDAwCisK
IERCCTg2LDEwMSw5OSwxMTYsMTExLDExNCwzMiw4MCwxMDEsMTE0LDEwOSwxMTcsMTE2LDk3LDEx
NiwxMDUKIERCCTExMSwxMTAsMzIsNjUsNjksODMsMzIsMTAyLDExMSwxMTQsMzIsMTIwLDU2LDU0
LDk1LDU0CiBEQgk1Miw0Nyw4Myw4Myw4Myw2OSw1MSw0NCwzMiw3NywxMDUsMTA3LDEwMSwzMiw3
Miw5NwpAQCAtMTEyMCw2ICsxNDQ0LDEwIEBAIEFMSUdOCTQKIAlERAkkTCRTRUhfZW5kX3ZwYWVz
X2NiY19lbmNyeXB0IHdydCAuLmltYWdlYmFzZQogCURECSRMJFNFSF9pbmZvX3ZwYWVzX2NiY19l
bmNyeXB0IHdydCAuLmltYWdlYmFzZQogCisJREQJJEwkU0VIX2JlZ2luX3ZwYWVzX2N0cjMyX2Vu
Y3J5cHRfYmxvY2tzIHdydCAuLmltYWdlYmFzZQorCURECSRMJFNFSF9lbmRfdnBhZXNfY3RyMzJf
ZW5jcnlwdF9ibG9ja3Mgd3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkU0VIX2luZm9fdnBhZXNfY3Ry
MzJfZW5jcnlwdF9ibG9ja3Mgd3J0IC4uaW1hZ2ViYXNlCisKIHNlY3Rpb24JLnhkYXRhIHJkYXRh
IGFsaWduPTgKIEFMSUdOCTgKICRMJFNFSF9pbmZvX3ZwYWVzX3NldF9lbmNyeXB0X2tleToKQEAg
LTExNDIsMyArMTQ3MCw3IEBAICRMJFNFSF9pbmZvX3ZwYWVzX2NiY19lbmNyeXB0OgogREIJOSww
LDAsMAogCURECXNlX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkY2JjX2JvZHkgd3J0
IC4uaW1hZ2ViYXNlLCRMJGNiY19lcGlsb2d1ZSB3cnQgLi5pbWFnZWJhc2UKKyRMJFNFSF9pbmZv
X3ZwYWVzX2N0cjMyX2VuY3J5cHRfYmxvY2tzOgorREIJOSwwLDAsMAorCURECXNlX2hhbmRsZXIg
d3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkY3RyMzJfYm9keSB3cnQgLi5pbWFnZWJhc2UsJEwkY3Ry
MzJfZXBpbG9ndWUgd3J0IC4uaW1hZ2ViYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0
by9maXBzbW9kdWxlL3g4Nl82NC1tb250NS5hc20gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9maXBzbW9k
dWxlL3g4Nl82NC1tb250NS5hc20KaW5kZXggMmVmOTRmYzNkZmIyZmNmYjVmYmU5NmI5ZGY5MWU1
ZjczZjA2OGEwOS4uN2ExZDVkYmQ5YzQ4OWI0M2M0ODMxMDVlODY0ODU5MDMwODMyMGMwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9i
b3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZmlwc21vZHVsZS94ODZfNjQtbW9udDUuYXNtCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5n
c3NsL3dpbi14ODZfNjQvY3J5cHRvL2ZpcHNtb2R1bGUveDg2XzY0LW1vbnQ1LmFzbQpAQCAtNTkx
LDYgKzU5MSw3IEBAICRMJFNFSF9lbmRfYm5fbXVsNHhfbW9udF9nYXRoZXI1OgogCiBBTElHTgkz
MgogbXVsNHhfaW50ZXJuYWw6CisKIAlzaGwJcjksNQogCW1vdmQJeG1tNSxEV09SRFs1NityYXhd
CiAJbGVhCXJheCxbJEwkaW5jXQpAQCAtMTExMyw2ICsxMTE0LDcgQEAgJEwkaW5uZXI0eDoKIAlt
b3YJcjE1LFFXT1JEWzI0K3JicF0KIAlqbXAJTkVBUiAkTCRzcXI0eF9zdWJfZW50cnkKIAorCiBn
bG9iYWwJYm5fcG93ZXI1CiAKIEFMSUdOCTMyCkBAIC0xMzQwLDYgKzEzNDIsNyBAQCBfX2JuX3Nx
cjh4X2ludGVybmFsOgogCiAKIAorCiAKIAogCWxlYQlyYnAsWzMyK3IxMF0KQEAgLTIwNDUsOCAr
MjA0OCwxMCBAQCBEQgkxMDIsNzMsMTUsMTI2LDIxNwogCURCCTBGM2gsMEMzaAkJO3JlcHJldAog
CiAKKwogQUxJR04JMzIKIF9fYm5fcG9zdDR4X2ludGVybmFsOgorCiAJbW92CXIxMixRV09SRFty
YnBdCiAJbGVhCXJieCxbcjkqMStyZGldCiAJbW92CXJjeCxyOQpAQCAtMjA5OCwxMCArMjEwMywx
MiBAQCAkTCRzcXI0eF9zdWJfZW50cnk6CiAJbmVnCXI5CiAJREIJMEYzaCwwQzNoCQk7cmVwcmV0
CiAKKwogZ2xvYmFsCWJuX2Zyb21fbW9udGdvbWVyeQogCiBBTElHTgkzMgogYm5fZnJvbV9tb250
Z29tZXJ5OgorCiAJdGVzdAlEV09SRFs0OCtyc3BdLDcKIAlqeglORUFSIGJuX2Zyb21fbW9udDh4
CiAJeG9yCWVheCxlYXgKQEAgLTIxMDksNiArMjExNiw3IEBAIGJuX2Zyb21fbW9udGdvbWVyeToK
IAogCiAKKwogQUxJR04JMzIKIGJuX2Zyb21fbW9udDh4OgogCW1vdglRV09SRFs4K3JzcF0scmRp
CTtXSU42NCBwcm9sb2d1ZQpAQCAtMjQxOCw2ICsyNDI2LDcgQEAgJEwkU0VIX2VuZF9ibl9tdWx4
NHhfbW9udF9nYXRoZXI1OgogCiBBTElHTgkzMgogbXVseDR4X2ludGVybmFsOgorCiAJbW92CVFX
T1JEWzgrcnNwXSxyOQogCW1vdglyMTAscjkKIAluZWcJcjkKQEAgLTI4MzgsNiArMjg0Nyw3IEBA
ICRMJG11bHg0eF9pbm5lcjoKIAlqbXAJTkVBUiAkTCRzcXJ4NHhfc3ViX2VudHJ5CiAKIAorCiBB
TElHTgkzMgogYm5fcG93ZXJ4NToKIAltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9n
dWUKQEAgLTMwMzAsNiArMzA0MCw3IEBAIF9fYm5fc3FyeDh4X2ludGVybmFsOgogCiAKIAorCiAK
IAogCWxlYQlyZGksWygoNDgrOCkpK3JzcF0KQEAgLTM2MDQsOCArMzYxNSwxMSBAQCBEQgkxMDIs
NzIsMTUsMTI2LDIxMwogCWpiCU5FQVIgJEwkc3FyeDh4X3JlZHVjdGlvbl9sb29wCiAJREIJMEYz
aCwwQzNoCQk7cmVwcmV0CiAKKwogQUxJR04JMzIKKwogX19ibl9wb3N0eDR4X2ludGVybmFsOgor
CiAJbW92CXIxMixRV09SRFtyYnBdCiAJbW92CXIxMCxyY3gKIAltb3YJcjkscmN4CkBAIC0zNjU0
LDEwICszNjY4LDEyIEBAICRMJHNxcng0eF9zdWJfZW50cnk6CiAKIAlEQgkwRjNoLDBDM2gJCTty
ZXByZXQKIAorCiBnbG9iYWwJYm5fc2NhdHRlcjUKIAogQUxJR04JMTYKIGJuX3NjYXR0ZXI1Ogor
CiAJY21wCWVkeCwwCiAJanoJTkVBUiAkTCRzY2F0dGVyX2VwaWxvZ3VlCiAJbGVhCXI4LFtyOSo4
K3I4XQpAQCAtMzY3MiwxMyArMzY4OCwxNiBAQCAkTCRzY2F0dGVyX2VwaWxvZ3VlOgogCURCCTBG
M2gsMEMzaAkJO3JlcHJldAogCiAKKwogZ2xvYmFsCWJuX2dhdGhlcjUKIAogQUxJR04JMzIKIGJu
X2dhdGhlcjU6CisKICRMJFNFSF9iZWdpbl9ibl9nYXRoZXI1OgogCiBEQgkweDRjLDB4OGQsMHgx
NCwweDI0CisKIERCCTB4NDgsMHg4MSwweGVjLDB4MDgsMHgwMSwweDAwLDB4MDAKIAlsZWEJcmF4
LFskTCRpbmNdCiAJYW5kCXJzcCwtMTYKQEAgLTM4MzIsOSArMzg1MSwxMSBAQCAkTCRnYXRoZXI6
CiAJam56CU5FQVIgJEwkZ2F0aGVyCiAKIAlsZWEJcnNwLFtyMTBdCisKIAlEQgkwRjNoLDBDM2gJ
CTtyZXByZXQKICRMJFNFSF9lbmRfYm5fZ2F0aGVyNToKIAorCiBBTElHTgk2NAogJEwkaW5jOgog
CURECTAsMCwxLDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3
ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MTNmZTQyYzhm
NzM1ZTk5ZjgyZGY5NGM5MDVlOTAzMjIwNTlkMTYxLi5hOGZkM2NhYmZjNDU4MzdiZTJiYmQwNzJi
ODg1N2IyODA4N2M3YzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
bGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDUs
NiArMTA1LDE4IEBACiAJCTQxMzA5MjFBMUVGOEQ2M0YwMDc1N0M1NSAvKiBydHBfdHJhbnNwb3J0
X2NvbnRyb2xsZXJfc2VuZF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzA5MjE3MUVGOEQ2MzkwMDc1N0M1NSAvKiBydHBfdHJhbnNw
b3J0X2NvbnRyb2xsZXJfc2VuZF9pbnRlcmZhY2UuaCAqLzsgfTsKIAkJNDEzMDkyMUIxRUY4RDYz
RjAwNzU3QzU1IC8qIHJ0cF90cmFuc3BvcnRfY29udHJvbGxlcl9zZW5kLmNjIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDkyMTgxRUY4RDYzRjAwNzU3
QzU1IC8qIHJ0cF90cmFuc3BvcnRfY29udHJvbGxlcl9zZW5kLmNjICovOyB9OwogCQk0MTMwOTIz
MDFFRjhENzcxMDA3NTdDNTUgLyogYWVjX2R1bXBfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDkyMkQxRUY4RDc3MTAwNzU3QzU1IC8q
IGFlY19kdW1wX2ZhY3RvcnkuaCAqLzsgfTsKKwkJNDEzMUJFNkIyMzRCODUwNjAwMjhBNjE1IC8q
IHNpa2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MzFCRTYzMjM0Qjg1MDUwMDI4QTYxNSAvKiBzaWtlLmggKi87IH07CisJCTQxMzFCRTZDMjM0Qjg1
MDYwMDI4QTYxNSAvKiB1dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzMUJFNjQyMzRCODUwNTAwMjhBNjE1IC8qIHV0aWxzLmggKi87IH07CisJ
CTQxMzFCRTZEMjM0Qjg1MDYwMDI4QTYxNSAvKiBpc29nZW55LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxQkU2NTIzNEI4NTA1MDAyOEE2MTUgLyog
aXNvZ2VueS5oICovOyB9OworCQk0MTMxQkU2RTIzNEI4NTA2MDAyOEE2MTUgLyogY3VydmVfcGFy
YW1zLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMx
QkU2NjIzNEI4NTA1MDAyOEE2MTUgLyogY3VydmVfcGFyYW1zLmMgKi87IH07CisJCTQxMzFCRTZG
MjM0Qjg1MDYwMDI4QTYxNSAvKiBmcHguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMzFCRTY3MjM0Qjg1MDUwMDI4QTYxNSAvKiBmcHguaCAqLzsgfTsK
KwkJNDEzMUJFNzAyMzRCODUwNjAwMjhBNjE1IC8qIGlzb2dlbnkuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzFCRTY4MjM0Qjg1MDYwMDI4QTYxNSAv
KiBpc29nZW55LmMgKi87IH07CisJCTQxMzFCRTcxMjM0Qjg1MDYwMDI4QTYxNSAvKiBmcHguYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzFCRTY5MjM0
Qjg1MDYwMDI4QTYxNSAvKiBmcHguYyAqLzsgfTsKKwkJNDEzMUJFNzIyMzRCODUwNjAwMjhBNjE1
IC8qIHNpa2UuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMzFCRTZBMjM0Qjg1MDYwMDI4QTYxNSAvKiBzaWtlLmMgKi87IH07CisJCTQxMzFCRTc1MjM0
Qjg1NUEwMDI4QTYxNSAvKiBocnNzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTMxQkU3NDIzNEI4NTU5MDAyOEE2MTUgLyogaHJzcy5jICovOyB9Owor
CQk0MTMxQkU3ODIzNEI4NUE5MDAyOEE2MTUgLyogcF94MjU1MTlfYXNuMS5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMUJFNzYyMzRCODVBOTAwMjhB
NjE1IC8qIHBfeDI1NTE5X2FzbjEuYyAqLzsgfTsKKwkJNDEzMUJFNzkyMzRCODVBOTAwMjhBNjE1
IC8qIHBfeDI1NTE5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTMxQkU3NzIzNEI4NUE5MDAyOEE2MTUgLyogcF94MjU1MTkuYyAqLzsgfTsKKwkJNDEz
MUJFN0MyMzRCODYwMjAwMjhBNjE1IC8qIGZwX2dlbmVyaWMuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzFCRTdCMjM0Qjg2MDIwMDI4QTYxNSAvKiBm
cF9nZW5lcmljLmMgKi87IH07CiAJCTQxMzMwQTEzMjEyRTJCREYwMDI4MDkzOSAvKiBhZGRfbm9p
c2UuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzMw
OUU5MjEyRTJCRDQwMDI4MDkzOSAvKiBhZGRfbm9pc2UuYyAqLzsgfTsKIAkJNDEzMzBBMTQyMTJF
MkJERjAwMjgwOTM5IC8qIGF2Zy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzMzA5RTUyMTJFMkJENDAwMjgwOTM5IC8qIGF2Zy5jICovOyB9OwogCQk0
MTMzMEExNTIxMkUyQkRGMDAyODA5MzkgLyogYml0cmVhZGVyLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMzMDlFNjIxMkUyQkQ0MDAyODA5MzkgLyog
Yml0cmVhZGVyLmMgKi87IH07CkBAIC0zNzkzLDYgKzM4MDUsMTggQEAKIAkJNDEzMDkyMkIxRUY4
RDc2MTAwNzU3QzU1IC8qIGFlY19kdW1wX2ltcGwuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBhZWNfZHVtcF9pbXBsLmNjOyBwYXRoID0gU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjX2R1bXAvYWVjX2R1bXBfaW1wbC5jYzsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0MTMwOTIyQzFFRjhENzZBMDA3NTdDNTUgLyogYWVjX2R1
bXBfaW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBhZWNfZHVtcF9pbXBs
Lmg7IHBhdGggPSBTb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWNfZHVt
cC9hZWNfZHVtcF9pbXBsLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNDEzMDky
MkQxRUY4RDc3MTAwNzU3QzU1IC8qIGFlY19kdW1wX2ZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gYWVjX2R1bXBfZmFjdG9yeS5oOyBwYXRoID0gU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjX2R1bXAvYWVjX2R1bXBfZmFjdG9yeS5oOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTQxMzFCRTYzMjM0Qjg1MDUwMDI4QTYxNSAv
KiBzaWtlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHNpa2UuaDsgcGF0aCA9
IHNpa2Uvc2lrZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTMxQkU2NDIzNEI4
NTA1MDAyOEE2MTUgLyogdXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
dXRpbHMuaDsgcGF0aCA9IHNpa2UvdXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEzMUJFNjUyMzRCODUwNTAwMjhBNjE1IC8qIGlzb2dlbnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gaXNvZ2VueS5oOyBwYXRoID0gc2lrZS9pc29nZW55Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMzFCRTY2MjM0Qjg1MDUwMDI4QTYxNSAvKiBjdXJ2
ZV9wYXJhbXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gY3VydmVfcGFyYW1z
LmM7IHBhdGggPSBzaWtlL2N1cnZlX3BhcmFtcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTMxQkU2NzIzNEI4NTA1MDAyOEE2MTUgLyogZnB4LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IGZweC5oOyBwYXRoID0gc2lrZS9mcHguaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDEzMUJFNjgyMzRCODUwNjAwMjhBNjE1IC8qIGlzb2dlbnkuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gaXNvZ2VueS5jOyBwYXRoID0gc2lrZS9pc29n
ZW55LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMzFCRTY5MjM0Qjg1MDYwMDI4
QTYxNSAvKiBmcHguYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gZnB4LmM7IHBh
dGggPSBzaWtlL2ZweC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTMxQkU2QTIz
NEI4NTA2MDAyOEE2MTUgLyogc2lrZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUg
PSBzaWtlLmM7IHBhdGggPSBzaWtlL3Npa2UuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEzMUJFNzQyMzRCODU1OTAwMjhBNjE1IC8qIGhyc3MuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gaHJzcy5jOyBwYXRoID0gaHJzcy9ocnNzLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxMzFCRTc2MjM0Qjg1QTkwMDI4QTYxNSAvKiBwX3gyNTUxOV9hc24x
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBfeDI1NTE5X2FzbjEuYzsgcGF0
aCA9IGV2cC9wX3gyNTUxOV9hc24xLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MzFCRTc3MjM0Qjg1QTkwMDI4QTYxNSAvKiBwX3gyNTUxOS5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwX3gyNTUxOS5jOyBwYXRoID0gZXZwL3BfeDI1NTE5LmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMzFCRTdCMjM0Qjg2MDIwMDI4QTYxNSAvKiBmcF9nZW5l
cmljLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IGZwX2dlbmVyaWMuYzsgcGF0
aCA9IHNpa2UvYXNtL2ZwX2dlbmVyaWMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEzMzA5RTUyMTJFMkJENDAwMjgwOTM5IC8qIGF2Zy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBhdmcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMzA5RTYy
MTJFMkJENDAwMjgwOTM5IC8qIGJpdHJlYWRlci5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7
IHBhdGggPSBiaXRyZWFkZXIuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMzA5
RTcyMTJFMkJENDAwMjgwOTM5IC8qIHF1YW50aXplLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgcGF0aCA9IHF1YW50aXplLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03ODM1
LDYgKzc4NTksMzggQEAKIAkJCW5hbWUgPSBhZWNfZHVtcDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTQxMzFCRTYyMjM0Qjg0RTYwMDI4QTYxNSAvKiBzaWtlICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTMxQkU3QTIzNEI4NUY1
MDAyOEE2MTUgLyogYXNtICovLAorCQkJCTQxMzFCRTY2MjM0Qjg1MDUwMDI4QTYxNSAvKiBjdXJ2
ZV9wYXJhbXMuYyAqLywKKwkJCQk0MTMxQkU2OTIzNEI4NTA2MDAyOEE2MTUgLyogZnB4LmMgKi8s
CisJCQkJNDEzMUJFNjcyMzRCODUwNTAwMjhBNjE1IC8qIGZweC5oICovLAorCQkJCTQxMzFCRTY4
MjM0Qjg1MDYwMDI4QTYxNSAvKiBpc29nZW55LmMgKi8sCisJCQkJNDEzMUJFNjUyMzRCODUwNTAw
MjhBNjE1IC8qIGlzb2dlbnkuaCAqLywKKwkJCQk0MTMxQkU2QTIzNEI4NTA2MDAyOEE2MTUgLyog
c2lrZS5jICovLAorCQkJCTQxMzFCRTYzMjM0Qjg1MDUwMDI4QTYxNSAvKiBzaWtlLmggKi8sCisJ
CQkJNDEzMUJFNjQyMzRCODUwNTAwMjhBNjE1IC8qIHV0aWxzLmggKi8sCisJCQkpOworCQkJbmFt
ZSA9IHNpa2U7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk0MTMxQkU3MzIz
NEI4NTM4MDAyOEE2MTUgLyogaHJzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJNDEzMUJFNzQyMzRCODU1OTAwMjhBNjE1IC8qIGhyc3MuYyAqLywKKwkJ
CSk7CisJCQluYW1lID0gaHJzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CTQxMzFCRTdBMjM0Qjg1RjUwMDI4QTYxNSAvKiBhc20gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQxMzFCRTdCMjM0Qjg2MDIwMDI4QTYxNSAvKiBmcF9n
ZW5lcmljLmMgKi8sCisJCQkpOworCQkJbmFtZSA9IGFzbTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCTQxM0EyMTM3MUZFMEYwRDEwMDM3M0U5OSAvKiBpbmNsdWRlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxMDksNiArOTE2NSw3
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTQxOUM4NDdCMUZF
MjU2QTgwMDQwQzMwRiAvKiBmaWF0ICovLAorCQkJCTQxMzFCRTYyMjM0Qjg0RTYwMDI4QTYxNSAv
KiBzaWtlICovLAogCQkJKTsKIAkJCXBhdGggPSB0aGlyZF9wYXJ0eTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0xMDQ4NSw2ICsxMDU0Miw4IEBACiAJCQkJNDFBMzkyMDcxRUZDNEE3
MTAwQzQ1MTZBIC8qIHBfZWQyNTUxOV9hc24xLmMgKi8sCiAJCQkJNUM0QjQ1QzExRTQyQTg3RTAw
MjY1MUM4IC8qIHBfcnNhLmMgKi8sCiAJCQkJNUM0QjQ1QzAxRTQyQTg3RTAwMjY1MUM4IC8qIHBf
cnNhX2FzbjEuYyAqLywKKwkJCQk0MTMxQkU3NjIzNEI4NUE5MDAyOEE2MTUgLyogcF94MjU1MTlf
YXNuMS5jICovLAorCQkJCTQxMzFCRTc3MjM0Qjg1QTkwMDI4QTYxNSAvKiBwX3gyNTUxOS5jICov
LAogCQkJCTVDNEI0NUMzMUU0MkE4N0UwMDI2NTFDOCAvKiBwYmtkZi5jICovLAogCQkJCTVDNEI0
NUM0MUU0MkE4N0UwMDI2NTFDOCAvKiBwcmludC5jICovLAogCQkJCTVDNEI0NUM1MUU0MkE4N0Uw
MDI2NTFDOCAvKiBzaWduLmMgKi8sCkBAIC0xMTUzMiw2ICsxMTU5MSw3IEBACiAJCQkJNUM0QjQ0
NEYxRTQyQTYwOTAwMjY1MUM4IC8qIGV2cCAqLywKIAkJCQk0MUVBNTNBMjFFRkMyQkFGMDAyRkYw
NEMgLyogZmlwc21vZHVsZSAqLywKIAkJCQk1QzRCNDQ1MDFFNDJBNjBFMDAyNjUxQzggLyogaGtk
ZiAqLywKKwkJCQk0MTMxQkU3MzIzNEI4NTM4MDAyOEE2MTUgLyogaHJzcyAqLywKIAkJCQk1QzRC
NDQ1MjFFNDJBNjFBMDAyNjUxQzggLyogbGhhc2ggKi8sCiAJCQkJNUM0QjQ0NTcxRTQyQTY0NTAw
MjY1MUM4IC8qIG9iaiAqLywKIAkJCQk1QzRCNDQ1ODFFNDJBNjRCMDAyNjUxQzggLyogcGVtICov
LApAQCAtMTM4MTgsOCArMTM4NzgsMTAgQEAKIAkJCQk1QzRCNDY0OTFFNDJBQTM0MDAyNjUxQzgg
LyogZXh0X2RhdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMzkxQjMxRUZDNDU0RjAwQzQ1MTZB
IC8qIGludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzOTE5MzFFRkM0NEVCMDBDNDUx
NkEgLyogaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRTZDMjM0Qjg1MDYwMDI4
QTYxNSAvKiB1dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFQTUzQUQxRUZDMkM0RDAwMkZG
MDRDIC8qIGludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzOTFDNjFFRkM0NjU2MDBD
NDUxNkEgLyogaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRTZCMjM0Qjg1MDYw
MDI4QTYxNSAvKiBzaWtlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzOTFERjFFRkM0ODlBMDBD
NDUxNkEgLyogaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0NkJBMUU0MkFBNjYw
MDI2NTFDOCAvKiBpbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjQ3REMxRTQyQzAy
NjAwMjY1MUM4IC8qIGludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTEzODI3LDggKzEzODg5
LDEwIEBACiAJCQkJNUM0QjQ3MjIxRTQyQUFENjAwMjY1MUM4IC8qIGludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MUEzOTFFOTFFRkM0OTA0MDBDNDUxNkEgLyogaW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRUE1NDA3MUVGQzJEMUIwMDJGRjA0QyAvKiBpbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUJFNkYyMzRCODUwNjAwMjhBNjE1IC8qIGZweC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUM0QjQ2NzcxRTQyQUEzQzAwMjY1MUM4IC8qIGludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MUVBNTNDODFFRkMyQzhCMDAyRkYwNEMgLyogaW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFCRTZEMjM0Qjg1MDYwMDI4QTYxNSAvKiBpc29nZW55Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNDYzRTFFNDJBQTJDMDAyNjUxQzggLyogaW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0NkU3MUU0MkFBOTcwMDI2NTFDOCAvKiBpbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjQ3NDExRTQyQUFFQTAwMjY1MUM4IC8qIGludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTE2MDQ5LDEyICsxNjExMywxNCBAQAogCQkJCTQxRUE1
NDAwMUVGQzJEMUIwMDJGRjA0QyAvKiBieXRlcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ3
MjAxRTQyQUFENjAwMjY1MUM4IC8qIGNiYi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBMzkxNzcx
RUZDNDQ3QzAwQzQ1MTZBIC8qIGNiYy5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJFNzEyMzRC
ODUwNjAwMjhBNjE1IC8qIGZweC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ3MjExRTQyQUFE
NjAwMjY1MUM4IC8qIGNicy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBMzkxNzgxRUZDNDQ3QzAw
QzQ1MTZBIC8qIGNmYi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ3MUQxRTQyQUFEMDAwMjY1
MUM4IC8qIGNoYWNoYS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ3MDkxRTQyQUFCRTAwMjY1
MUM4IC8qIGNoZWNrLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUEzOTE5MDFFRkM0NEVCMDBDNDUx
NkEgLyogY2lwaGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUEzOTFBODFFRkM0NTRGMDBDNDUx
NkEgLyogY2lwaGVyX2V4dHJhLmMgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkU3QzIzNEI4NjAy
MDAyOEE2MTUgLyogZnBfZ2VuZXJpYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ3MEYxRTQy
QUFDNjAwMjY1MUM4IC8qIGNtYWMuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRUE1NDAxMUVGQzJE
MUIwMDJGRjA0QyAvKiBjbXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0N0RCMUU0MkMwMjEw
MDI2NTFDOCAvKiBjb25mLmMgaW4gU291cmNlcyAqLywKQEAgLTE2MTI5LDYgKzE2MTk1LDcgQEAK
IAkJCQk1QzRCNDY3NjFFNDJBQTNDMDAyNjUxQzggLyogaTJkX3ByLmMgaW4gU291cmNlcyAqLywK
IAkJCQk0MUVBNTQwODFFRkMyRDFCMDAyRkYwNEMgLyogamFjb2JpLmMgaW4gU291cmNlcyAqLywK
IAkJCQk0MTU0NDlBQjIxQ0FDM0NGMDAxQzBBNTUgLyoga2RmLmMgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTMxQkU3MjIzNEI4NTA2MDAyOEE2MTUgLyogc2lrZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDFBMzkyMDAxRUZDNDkzMDAwQzQ1MTZBIC8qIGtleV93cmFwLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzRCNDZERjFFNDJBQTg5MDAyNjUxQzggLyogbGhhc2guYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxRUE1NDE5MUVGQzJENTMwMDJGRjA0QyAvKiBtZDQuYyBpbiBTb3VyY2VzICovLApAQCAtMTYx
NTcsMTEgKzE2MjI0LDEzIEBACiAJCQkJNUM0QjQ3NDIxRTQyQUFFQTAwMjY1MUM4IC8qIHBhaXIu
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NzBDMUU0MkFBQkUwMDI2NTFDOCAvKiBwYXJhbXMu
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NkVFMUU0MkFBOTcwMDI2NTFDOCAvKiBwYmtkZi5j
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJFNzAyMzRCODUwNjAwMjhBNjE1IC8qIGlzb2dlbnku
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NjRBMUU0MkFBMzQwMDI2NTFDOCAvKiBwY3lfY2Fj
aGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NjRCMUU0MkFBMzQwMDI2NTFDOCAvKiBwY3lf
ZGF0YS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ2NEQxRTQyQUEzNDAwMjY1MUM4IC8qIHBj
eV9saWIuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NjRFMUU0MkFBMzQwMDI2NTFDOCAvKiBw
Y3lfbWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNDY0RjFFNDJBQTM0MDAyNjUxQzggLyog
cGN5X25vZGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRTZFMjM0Qjg1MDYwMDI4QTYxNSAv
KiBjdXJ2ZV9wYXJhbXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NjUwMUU0MkFBMzQwMDI2
NTFDOCAvKiBwY3lfdHJlZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ2QzExRTQyQUE2QjAw
MjY1MUM4IC8qIHBlbV9hbGwuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NkMyMUU0MkFBNkIw
MDI2NTFDOCAvKiBwZW1faW5mby5jIGluIFNvdXJjZXMgKi8sCkBAIC0xNjE3Nyw2ICsxNjI0Niw3
IEBACiAJCQkJNDFBMzkxQkUxRUZDNDYwRDAwQzQ1MTZBIC8qIHBrY3M4X3g1MDkuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDNEI0NkI5MUU0MkFBNjEwMDI2NTFDOCAvKiBwb2x5MTMwNS5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUM0QjQ2QjgxRTQyQUE2MTAwMjY1MUM4IC8qIHBvbHkxMzA1X3ZlYy5j
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJFNzkyMzRCODVBOTAwMjhBNjE1IC8qIHBfeDI1NTE5
LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUEzOTE3RTFFRkM0NDdDMDBDNDUxNkEgLyogcG9seXZh
bC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBMzkxQzcxRUZDNDY1NjAwQzQ1MTZBIC8qIHBvb2wu
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxRUE1NDBDMUVGQzJEMUIwMDJGRjA0QyAvKiBwcmltZS5j
IGluIFNvdXJjZXMgKi8sCkBAIC0xNjIyNCw4ICsxNjI5NCwxMCBAQAogCQkJCTVDRkFDRjRGMjI2
RTk3N0YwMDU2QzdEMCAvKiBzc2xfeDUwOS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NkE1
MUU0MkFBNDIwMDI2NTFDOCAvKiBzdGFjay5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNGQUNGNTAy
MjZFOTc4MzAwNTZDN0QwIC8qIHQxX2VuYy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRTc4
MjM0Qjg1QTkwMDI4QTYxNSAvKiBwX3gyNTUxOV9hc24xLmMgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0ZBQ0Y1MTIyNkU5Nzg2MDA1NkM3RDAgLyogdDFfbGliLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUM0QjQ2N0IxRTQyQUEzQzAwMjY1MUM4IC8qIHRfY3JsLmMgaW4gU291cmNlcyAqLywKKwkJCQk0
MTMxQkU3NTIzNEI4NTVBMDAyOEE2MTUgLyogaHJzcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0
QjQ2N0MxRTQyQUEzQzAwMjY1MUM4IC8qIHRfcmVxLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRC
NDY3RDFFNDJBQTNDMDAyNjUxQzggLyogdF94NTA5LmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRC
NDY3RTFFNDJBQTNDMDAyNjUxQzggLyogdF94NTA5YS5jIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380531</attachid>
            <date>2019-10-09 06:04:07 -0700</date>
            <delta_ts>2019-10-09 06:24:49 -0700</delta_ts>
            <desc>Integrated GTK/WPE build changes</desc>
            <filename>bug-202729-20191009150342.patch</filename>
            <type>text/plain</type>
            <size>1286138</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBmZWE3NmMwZGRhYzg0OTAwMmYzM2FmMWVlMTk0ZjE0ZjE4MGU5ZDBhLi5hODEz
MWUyMGU2ZjNmYjIyMjMyOGJhZmI3ODNlNzc2YzA1Y2E4MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMC0wOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyB0aGly
ZC1wYXJ0eSBqc29uY3BwIHRvIE03OAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcDogVXBkYXRlZC4KKwog
MjAxOS0xMC0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIGxpYndlYnJ0YyB0aGlyZC1wYXJ0eSBib3Jpbmdzc2wgdG8gTTc4CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKaW5kZXggMjIwMjY2MTEzNWVhNzAxYTYy
OTk2NjJhZmFkMWViYWFmODNjZWNjOS4uMWZiMTRmNTAyN2YxYWY1MWIxN2ZlYzRhMjA5N2NhMjg4
NjcwY2MyZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dApA
QCAtMjk0LDggKzI5NCw4IEBAIHNldCh3ZWJydGNfU09VUkNFUwogICAgIFNvdXJjZS90aGlyZF9w
YXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2UvZnB4LmMKICAgICBTb3VyY2UvdGhp
cmRfcGFydHkvYm9yaW5nc3NsL3NyYy90aGlyZF9wYXJ0eS9zaWtlL2lzb2dlbnkuYwogICAgIFNv
dXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL3RoaXJkX3BhcnR5L3Npa2Uvc2lrZS5jCi0g
ICAgU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29u
X3JlYWRlci5jcHAKLSAgICBTb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9vdmVycmlkZXMvc3Jj
L2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCisgICAgU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAKKyAgICBTb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCiAgICAgU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAK
ICAgICBTb3VyY2UvdGhpcmRfcGFydHkvbGlieXV2L3NvdXJjZS9jb21wYXJlLmNjCiAgICAgU291
cmNlL3RoaXJkX3BhcnR5L2xpYnl1di9zb3VyY2UvY29tcGFyZV9jb21tb24uY2MKQEAgLTE0MjIs
NiArMTQyMiw3IEBAIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKHdlYnJ0YyBQUklWQVRFCiAg
ICAgU291cmNlCiAgICAgU291cmNlL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAKICAgICBTb3VyY2Uv
dGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlCisgICAgU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvZ2VuZXJhdGVkCiAgICAgU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJp
ZGVzL2luY2x1ZGUKICAgICBTb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVk
ZQogICAgIFNvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9CVUlMRC5nbgppbmRleCBjZjQwODk1YmUwZGE4OGJjYjdjM2MwZjFi
MjcxZTgxZWJiYTA5YzgwLi5mMmY0OGI5ZWU3Y2ZiOGM5ODhiNWJmNjZhMjYzZTljMjExNDMzYmFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvQlVJTEQuZ24KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL0JVSUxELmduCkBAIC0yLDE4ICsyLDI2IEBACiAjIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAoraW1wb3J0KCIvL3Rl
c3RpbmcvbGliZnV6emVyL2Z1enplcl90ZXN0LmduaSIpCisKIGNvbmZpZygianNvbmNwcF9jb25m
aWciKSB7CiAgIGluY2x1ZGVfZGlycyA9IFsKLSAgICAib3ZlcnJpZGVzL2luY2x1ZGUiLAogICAg
ICJzb3VyY2UvaW5jbHVkZSIsCisgICAgImdlbmVyYXRlZCIsCiAgIF0KKworICAjIFRPRE8oY3Ji
dWcuY29tLzk4MzIyMyk6IFVwZGF0ZSBKc29uQ3BwIEJVSUxELmduIHRvIHJlbW92ZSBkZXByZWNh
dGVkCisgICMgZGVjbGFyYXRpb24gZmxhZy4KKyAgIyBUaGlzIHRlbXBvcmFyeSBmbGFnIGFsbG93
aW5nIGNsaWVudHMgdG8gdXBkYXRlIHRvIHRoZSBuZXcgdmVyc2lvbiwgYW5kIHRoZW4KKyAgIyB1
cGRhdGUgdG8gdGhlIG5ldyBTdHJlYW1Xcml0ZXIgYW5kIENoYXJSZWFkZXIgY2xhc3Nlcy4KKyAg
aWYgKCFpc193aW4gfHwgaXNfY2xhbmcpIHsKKyAgICBjZmxhZ3NfY2MgPSBbICItV25vLWRlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIiBdCisgIH0KIH0KIAogc291cmNlX3NldCgianNvbmNwcCIpIHsK
ICAgc291cmNlcyA9IFsKLSAgICAib3ZlcnJpZGVzL2luY2x1ZGUvanNvbi92YWx1ZS5oIiwKLSAg
ICAib3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAiLAotICAgICJvdmVycmlk
ZXMvc3JjL2xpYl9qc29uL2pzb25fdmFsdWUuY3BwIiwKKyAgICAiZ2VuZXJhdGVkL3ZlcnNpb24u
aCIsCiAgICAgInNvdXJjZS9pbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oIiwKICAgICAic291cmNl
L2luY2x1ZGUvanNvbi9hdXRvbGluay5oIiwKICAgICAic291cmNlL2luY2x1ZGUvanNvbi9jb25m
aWcuaCIsCkBAIC0yMSwxNSArMjksMzggQEAgc291cmNlX3NldCgianNvbmNwcCIpIHsKICAgICAi
c291cmNlL2luY2x1ZGUvanNvbi9mb3J3YXJkcy5oIiwKICAgICAic291cmNlL2luY2x1ZGUvanNv
bi9qc29uLmgiLAogICAgICJzb3VyY2UvaW5jbHVkZS9qc29uL3JlYWRlci5oIiwKKyAgICAic291
cmNlL2luY2x1ZGUvanNvbi92YWx1ZS5oIiwKICAgICAic291cmNlL2luY2x1ZGUvanNvbi93cml0
ZXIuaCIsCi0gICAgInNvdXJjZS9zcmMvbGliX2pzb24vanNvbl9iYXRjaGFsbG9jYXRvci5oIiwK
KyAgICAic291cmNlL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAiLAogICAgICJzb3VyY2Uv
c3JjL2xpYl9qc29uL2pzb25fdG9vbC5oIiwKKyAgICAic291cmNlL3NyYy9saWJfanNvbi9qc29u
X3ZhbHVlLmNwcCIsCiAgICAgInNvdXJjZS9zcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwIiwK
ICAgXQogCiAgIHB1YmxpY19jb25maWdzID0gWyAiOmpzb25jcHBfY29uZmlnIiBdCiAKLSAgZGVm
aW5lcyA9IFsgIkpTT05fVVNFX0VYQ0VQVElPTj0wIiBdCisgIGRlZmluZXMgPSBbCisgICAgIkpT
T05fVVNFX0VYQ0VQVElPTj0wIiwKKyAgICAiSlNPTl9VU0VfTlVMTFJFRj0wIiwKKyAgXQogCiAg
IGluY2x1ZGVfZGlycyA9IFsgInNvdXJjZS9zcmMvbGliX2pzb24iIF0KKworICBpZiAoIWlzX3dp
biB8fCBpc19jbGFuZykgeworICAgIGNmbGFnc19jYyA9IFsgIi1Xbm8taW1wbGljaXQtZmFsbHRo
cm91Z2giIF0KKyAgfQorfQorCitmdXp6ZXJfdGVzdCgianNvbmNwcF9mdXp6ZXIiKSB7CisgIHNv
dXJjZXMgPSBbCisgICAgImZ1enplcnMvanNvbl9mdXp6ZXIuY2MiLAorICBdCisKKyAgZGVwcyA9
IFsKKyAgICAiOmpzb25jcHAiLAorICBdCisKKyAgaW5jbHVkZV9kaXJzID0gWyAiZ2VuZXJhdGVk
IiBdCisKKyAgZGljdCA9ICIvL3Rlc3RpbmcvbGliZnV6emVyL2Z1enplcnMvZGljdHMvanNvbi5k
aWN0IgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL09XTkVSUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9PV05FUlMKaW5kZXggNGZiMmZlZDA3YjkxM2NmMmJh
OTJmOWNhNmFiY2YyYTU3MTg2NmY4ZS4uZjBlNzM1NDQyNTQyNzU2NzBjZjRlYWE5MTU3MmU4N2Uz
OTIyZDc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL09XTkVSUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvT1dORVJTCkBAIC0xLDIgKzEsMyBAQAotcHRo
YXRjaGVyQGNocm9taXVtLm9yZwotc2JjQGNocm9taXVtLm9yZworam9waGJhQGNocm9taXVtLm9y
ZworCisjIENPTVBPTkVOVDogSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvUkVBRE1FLmNocm9taXVtIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL1JF
QURNRS5jaHJvbWl1bQppbmRleCA1ZTdkYWM2MGU1ODY2MjIyNDc2ODc4MmRmYzYzNmRiMzVlNmE2
Y2NjLi40OGJjNTQzZjQxOGRlZWFhYzNkY2E3NDc4NGI0ZTE1YmQ2Yzk5YTlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
UkVBRE1FLmNocm9taXVtCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9SRUFETUUuY2hyb21pdW0KQEAgLTYsMTIgKzYsMTEgQEAgTGlj
ZW5zZSBGaWxlOiBMSUNFTlNFCiBTZWN1cml0eSBDcml0aWNhbDogeWVzCiAKIERlc2NyaXB0aW9u
OgotVGhlIGxpYmppbmdsZS93ZWJydGMvbGlibG91aXNfbmFjbCB1c2VzIGpzb25jcHAgZm9yIHNp
Z25hbGluZyBtZXNzYWdlCi1zZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uIFRoaXMg
bGlicmFyeSBpcyBhbHNvIHNoaXBwZWQgaW4gTmFDbAotU0RLIGFuZCB1c2VkIGluIHNldmVyYWwg
ZXhhbXBsZXMuCitKc29uQ3BwIGlzIHVzZWQgYnkgbXVsdGlwbGUgcHJvamVjdHMgZm9yIHBhcnNp
bmcgYW5kIGdlbmVyYXRpbmcgSlNPTiBkYXRhLiBUaGlzCitwcm9qZWN0IGlzIG1pcnJvcmVkIGhl
cmUgZnJvbSB0aGUgcHVibGljIEdpdEh1YiBwcm9qZWN0LCB3aXRoIGEgY3VzdG9tIEJVSUxELmdu
Cit0byBhbGxvdyBmb3IgYnVpbGRpbmcgd2l0aCBvdXIgTmluamEgKyBHTiBjb25maWd1cmF0aW9u
LiBUaGUgbWFpbiBwcm9qZWN0IHVzZXMKK01lc29uIG9yIENNYWtlIGZvciBidWlsZGluZy4KIAot
TG9jYWwgbW9kaWZpY2F0aW9uczoKLVRoZSBvdmVycmlkZXMgYXJlIHVzZWQgdG8gZWxpbWluYXRl
IHN0YXRpYyBpbml0aWFsaXplcnMgaW4ganNvbl92YWx1ZS5jcHAgYW5kCi1qc29uX3JlYWRlci5j
cHAgYWRkcyBpbmNsdWRlcyBmb3IgPHN0cmluZz4gYW5kIDxpc3RyZWFtPiB0byBidWlsZCBvbiBs
aWJjKysKLShodHRwczovL2xsdm0ub3JnL1BSMjUyMzIpLCBhbmQgdG8gY2hhbmdlIHNvbWUgb25l
LWJpdCBiaXQgZmllbGRzIHRvIHVuc2lnbmVkCi1zbyB0aGF0IHRoZXkgY2FuIGhvbGQgdGhlICcx
JyB2YWx1ZXMgdGhhdCBhcmUgc3RvcmVkIGluIHRoZW0uCitOb3RlOiB0byB1cGRhdGUgdGhpcyBw
cm9qZWN0IHRvIGEgbmV3IHZlcnNpb24sIHJlZ2VuZXJhdGluZyB0aGUgdmVyc2lvbi5oIGhlYWRl
cgoraXMgcmVxdWlyZWQuIFRoaXMgY2FuIGJlIGRvbmUgYnkgaW5zdGFsbGluZyBlaXRoZXIgQ01h
a2Ugb3IgTWVzb24sIGJ1aWxkaW5nIHRoZQorcHJvamVjdCwgYW5kIGNvcHlpbmcgdGhlIGdlbmVy
YXRlZCB2ZXJzaW9uLmggdG8gdGhlIGdlbmVyYXRlZC8gc3ViZm9sZGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL2Z1
enplcnMvanNvbl9mdXp6ZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvZnV6emVycy9qc29uX2Z1enplci5jYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MjNiNjcwZDliNTdmMGQwYmI2MGQwOGEyYmJlMzhmNTUyY2RmYmJmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L2Z1enplcnMvanNvbl9mdXp6ZXIuY2MKQEAgLTAsMCArMSw3MyBAQAorLy8gQ29weXJpZ2h0IDIw
MTkgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLy8KKy8vIEpzb25DcHAgZnV6
emluZyB3cmFwcGVyIHRvIGhlbHAgd2l0aCBhdXRvbWF0ZWQgZnV6eiB0ZXN0aW5nLgorCisjaW5j
bHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8YXJyYXk+CisjaW5jbHVkZSA8Y2xpbWl0cz4KKyNp
bmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8bWVtb3J5Pgor
I2luY2x1ZGUgInRoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9qc29uLmgi
CisKK25hbWVzcGFjZSB7CisvLyBKc29uQ3BwIGhhcyBhIGZldyBkaWZmZXJlbnQgcGFyc2luZyBv
cHRpb25zLiBUaGUgY29kZSBiZWxvdyBtYWtlcyBzdXJlIHRoYXQKKy8vIHRoZSBtb3N0IGludGVy
c3RpbmcgdmFyaWFudHMgYXJlIHRlc3RlZC4KK2VudW0geyBrQnVpbGRlckNvbmZpZ0RlZmF1bHQg
PSAwLCBrQnVpbGRlckNvbmZpZ1N0cmljdCwga051bUJ1aWxkZXJDb25maWcgfTsKK30gIC8vIG5h
bWVzcGFjZQorCitzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxKc29uOjpDaGFyUmVhZGVyQnVpbGRl
ciwga051bUJ1aWxkZXJDb25maWc+JgorSW5pdGlhbGl6ZSgpIHsKKyAgc3RhdGljIHN0ZDo6YXJy
YXk8SnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIsIGtOdW1CdWlsZGVyQ29uZmlnPiBidWlsZGVyc3t9
OworCisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKAorICAgICAgJmJ1aWxk
ZXJzW2tCdWlsZGVyQ29uZmlnU3RyaWN0XS5zZXR0aW5nc18pOworCisgIHJldHVybiBidWlsZGVy
czsKK30KKworZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50
OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgeworICBjb25zdCBhdXRvJiByZWFkZXJfYnVpbGRlcnMg
PSBJbml0aWFsaXplKCk7CisKKyAgZm9yIChjb25zdCBhdXRvJiByZWFkZXJfYnVpbGRlciA6IHJl
YWRlcl9idWlsZGVycykgeworICAgIC8vIFBhcnNlIEpzb24uCisgICAgYXV0byByZWFkZXIgPQor
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SnNvbjo6Q2hhclJlYWRlcj4ocmVhZGVyX2J1aWxkZXIu
bmV3Q2hhclJlYWRlcigpKTsKKyAgICBKc29uOjpWYWx1ZSByb290OworICAgIGJvb2wgcmVzID0g
cmVhZGVyLT5wYXJzZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0
YSArIHNpemUpLCAmcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciAv
KiBlcnJzICovKTsKKyAgICBpZiAoIXJlcykgeworICAgICAgY29udGludWU7CisgICAgfQorCisg
ICAgLy8gV3JpdGUgYW5kIHJlLXJlYWQganNvbi4KKyAgICBjb25zdCBKc29uOjpTdHJlYW1Xcml0
ZXJCdWlsZGVyIHdyaXRlcl9idWlsZGVyOworICAgIGF1dG8gd3JpdGVyID0KKyAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEpzb246OlN0cmVhbVdyaXRlcj4od3JpdGVyX2J1aWxkZXIubmV3U3RyZWFt
V3JpdGVyKCkpOworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIG91dF9zdHJlYW07CisgICAgd3JpdGVy
LT53cml0ZShyb290LCAmb3V0X3N0cmVhbSk7CisgICAgc3RkOjpzdHJpbmcgb3V0cHV0X2pzb24g
PSBvdXRfc3RyZWFtLnN0cigpOworCisgICAgSnNvbjo6VmFsdWUgcm9vdF9hZ2FpbjsKKyAgICBy
ZXMgPSByZWFkZXItPnBhcnNlKG91dHB1dF9qc29uLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dF9qc29uLmRhdGEoKSArIG91dHB1dF9qc29uLmxlbmd0aCgpLCAmcm9vdF9h
Z2FpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIgLyogZXJycyAqLyk7CisgICAg
aWYgKCFyZXMpIHsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKworICAgIC8vIFJ1biBlcXVhbGl0
eSB0ZXN0LgorICAgIC8vIE5vdGU6IFRoaXMgYWN0dWFsbHkgY2F1c2VzIHRoZSBKc29uOjpWYWx1
ZSB0cmVlIHRvIGJlIHRyYXZlcnNlZCBhbmQgYWxsCisgICAgLy8gdGhlIHZhbHVlcyB0byBiZSBk
ZXJlZmVyZW5jZWQgKHVudGlsIHR3byBvZiB0aGVtIGFyZSBmb3VuZCBub3QgZXF1YWwpLAorICAg
IC8vIHdoaWNoIGlzIGdyZWF0IGZvciBkZXRlY3RpbmcgbWVtb3J5IGNvcnJ1cHRpb24gYnVncyB3
aGVuIGNvbXBpbGVkIHdpdGgKKyAgICAvLyBBZGRyZXNzU2FuaXRpemVyLiBUaGUgcmVzdWx0IG9m
IHRoZSBjb21wYXJpc29uIGlzIGlnbm9yZWQsIGFzIGl0IGlzCisgICAgLy8gZXhwZWN0ZWQgdGhh
dCBib3RoIHRoZSBvcmlnaW5hbCBhbmQgdGhlIHJlLXJlYWQgdmVyc2lvbiB3aWxsIGRpZmZlciBm
cm9tCisgICAgLy8gdGltZSB0byB0aW1lIChlLmcuIGR1ZSB0byBmbG9hdGluZyBwb2ludCBhY2N1
cmFjeSBsb3NzKS4KKyAgICAodm9pZCkocm9vdCA9PSByb290X2FnYWluKTsKKyAgfQorCisgIHJl
dHVybiAwOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL2dlbmVyYXRlZC92ZXJzaW9uLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvZ2VuZXJhdGVkL3ZlcnNp
b24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45YTc2MDgyMWUyODNkNWUwN2U5MDZhZDE4ZTgzYzg5YzNjMGFiMzM1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL2dlbmVyYXRlZC92ZXJzaW9uLmgKQEAgLTAsMCArMSwyMiBAQAor
Ly8gRE8gTk9UIEVESVQuIFRoaXMgZmlsZSAoYW5kICJ2ZXJzaW9uIikgaXMgYSB0ZW1wbGF0ZSB1
c2VkIGJ5IHRoZSBidWlsZCBzeXN0ZW0KKy8vIChlaXRoZXIgQ01ha2Ugb3IgTWVzb24pIHRvIGdl
bmVyYXRlIGEgInZlcnNpb24uaCIgaGVhZGVyIGZpbGUuCisjaWZuZGVmIEpTT05fVkVSU0lPTl9I
X0lOQ0xVREVECisjZGVmaW5lIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVECisKKyNkZWZpbmUgSlNP
TkNQUF9WRVJTSU9OX1NUUklORyAiMS45LjAiCisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9NQUpP
UiAxCisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9NSU5PUiA5CisjZGVmaW5lIEpTT05DUFBfVkVS
U0lPTl9QQVRDSCAwCisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9RVUFMSUZJRVIKKyNkZWZpbmUg
SlNPTkNQUF9WRVJTSU9OX0hFWEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICgoSlNPTkNQUF9WRVJTSU9OX01BSk9SIDw8IDI0KSB8IChKU09OQ1BQX1ZFUlNJT05f
TUlOT1IgPDwgMTYpIHwgXAorICAgKEpTT05DUFBfVkVSU0lPTl9QQVRDSCA8PCA4KSkKKworI2lm
ZGVmIEpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWQorI3VuZGVmIEpTT05DUFBfVVNJTkdfU0VD
VVJFX01FTU9SWQorI2VuZGlmCisjZGVmaW5lIEpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWSAw
CisvLyBJZiBub24temVybywgdGhlIGxpYnJhcnkgemVyb2VzIGFueSBtZW1vcnkgdGhhdCBpdCBo
YXMgYWxsb2NhdGVkIGJlZm9yZQorLy8gaXQgZnJlZXMgaXRzIG1lbW9yeS4KKworI2VuZGlmICAv
LyBKU09OX1ZFUlNJT05fSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL292ZXJyaWRlcy9pbmNsdWRlL2pz
b24vdmFsdWUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9vdmVycmlkZXMvaW5jbHVkZS9qc29uL3ZhbHVlLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDU3MDcyNjAyMDM0ZTgxYjY3NGUzNTdjZWZkZGNhNDVlZDU3ODQ3M2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL292ZXJyaWRlcy9p
bmNsdWRlL2pzb24vdmFsdWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDExMTEgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVu
ZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNv
Z25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0
YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQot
I2lmbmRlZiBDUFBUTF9KU09OX0hfSU5DTFVERUQKLSMgZGVmaW5lIENQUFRMX0pTT05fSF9JTkNM
VURFRAotCi0jaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgInRo
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9mb3J3YXJkcy5oIgotI2VuZGlm
IC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDxzdHJpbmc+
Ci0jIGluY2x1ZGUgPHZlY3Rvcj4KLQotIyBpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAK
LSMgIGluY2x1ZGUgPG1hcD4KLSMgZWxzZQotIyAgaW5jbHVkZSA8Y3BwdGwvc21hbGxtYXAuaD4K
LSMgZW5kaWYKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSMgIGluY2x1ZGUgPGNwcHRsL2Zvcndh
cmRzLmg+Ci0jIGVuZGlmCi0KLS8qKiBcYnJpZWYgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90
YXRpb24pLgotICovCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLSAgIC8qKiBcYnJpZWYgVHlwZSBvZiB0
aGUgdmFsdWUgaGVsZCBieSBhIFZhbHVlIG9iamVjdC4KLSAgICAqLwotICAgZW51bSBWYWx1ZVR5
cGUKLSAgIHsKLSAgICAgIG51bGxWYWx1ZSA9IDAsIC8vLzwgJ251bGwnIHZhbHVlCi0gICAgICBp
bnRWYWx1ZSwgICAgICAvLy88IHNpZ25lZCBpbnRlZ2VyIHZhbHVlCi0gICAgICB1aW50VmFsdWUs
ICAgICAvLy88IHVuc2lnbmVkIGludGVnZXIgdmFsdWUKLSAgICAgIHJlYWxWYWx1ZSwgICAgIC8v
LzwgZG91YmxlIHZhbHVlCi0gICAgICBzdHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2
YWx1ZQotICAgICAgYm9vbGVhblZhbHVlLCAgLy8vPCBib29sIHZhbHVlCi0gICAgICBhcnJheVZh
bHVlLCAgICAvLy88IGFycmF5IHZhbHVlIChvcmRlcmVkIGxpc3QpCi0gICAgICBvYmplY3RWYWx1
ZSAgICAvLy88IG9iamVjdCB2YWx1ZSAoY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzKS4K
LSAgIH07Ci0KLSAgIGVudW0gQ29tbWVudFBsYWNlbWVudAotICAgewotICAgICAgY29tbWVudEJl
Zm9yZSA9IDAsICAgICAgICAvLy88IGEgY29tbWVudCBwbGFjZWQgb24gdGhlIGxpbmUgYmVmb3Jl
IGEgdmFsdWUKLSAgICAgIGNvbW1lbnRBZnRlck9uU2FtZUxpbmUsICAgLy8vPCBhIGNvbW1lbnQg
anVzdCBhZnRlciBhIHZhbHVlIG9uIHRoZSBzYW1lIGxpbmUKLSAgICAgIGNvbW1lbnRBZnRlciwg
ICAgICAgICAgICAgLy8vPCBhIGNvbW1lbnQgb24gdGhlIGxpbmUgYWZ0ZXIgYSB2YWx1ZSAob25s
eSBtYWtlIHNlbnNlIGZvciByb290IHZhbHVlKQotICAgICAgbnVtYmVyT2ZDb21tZW50UGxhY2Vt
ZW50Ci0gICB9OwotCi0vLyMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLS8vICAgdHlwZWRlZiBDcHBU
TDo6QW55RW51bWVyYXRvcjxjb25zdCBjaGFyICo+IEVudW1NZW1iZXJOYW1lczsKLS8vICAgdHlw
ZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25zdCBWYWx1ZSAmPiBFbnVtVmFsdWVzOwotLy8j
IGVuZGlmCi0KLSAgIC8qKiBcYnJpZWYgTGlnaHR3ZWlnaHQgd3JhcHBlciB0byB0YWcgc3RhdGlj
IHN0cmluZy4KLSAgICAqCi0gICAgKiBWYWx1ZSBjb25zdHJ1Y3RvciBhbmQgb2JqZWN0VmFsdWUg
bWVtYmVyIGFzc2lnbmVtZW50IHRha2VzIGFkdmFudGFnZSBvZiB0aGUKLSAgICAqIFN0YXRpY1N0
cmluZyBhbmQgYXZvaWQgdGhlIGNvc3Qgb2Ygc3RyaW5nIGR1cGxpY2F0aW9uIHdoZW4gc3Rvcmlu
ZyB0aGUKLSAgICAqIHN0cmluZyBvciB0aGUgbWVtYmVyIG5hbWUuCi0gICAgKgotICAgICogRXhh
bXBsZSBvZiB1c2FnZToKLSAgICAqIFxjb2RlCi0gICAgKiBKc29uOjpWYWx1ZSBhVmFsdWUoIFN0
YXRpY1N0cmluZygic29tZSB0ZXh0IikgKTsKLSAgICAqIEpzb246OlZhbHVlIG9iamVjdDsKLSAg
ICAqIHN0YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOwotICAgICogb2JqZWN0
W2NvZGVdID0gMTIzNDsKLSAgICAqIFxlbmRjb2RlCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJ
IFN0YXRpY1N0cmluZwotICAgewotICAgcHVibGljOgotICAgICAgZXhwbGljaXQgU3RhdGljU3Ry
aW5nKCBjb25zdCBjaGFyICpjenN0cmluZyApCi0gICAgICAgICA6IHN0cl8oIGN6c3RyaW5nICkK
LSAgICAgIHsKLSAgICAgIH0KLQotICAgICAgb3BlcmF0b3IgY29uc3QgY2hhciAqKCkgY29uc3QK
LSAgICAgIHsKLSAgICAgICAgIHJldHVybiBzdHJfOwotICAgICAgfQotCi0gICAgICBjb25zdCBj
aGFyICpjX3N0cigpIGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gc3RyXzsKLSAgICAg
IH0KLQotICAgcHJpdmF0ZToKLSAgICAgIGNvbnN0IGNoYXIgKnN0cl87Ci0gICB9OwotCi0gICAv
KiogXGJyaWVmIFJlcHJlc2VudHMgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09O
PC9hPiB2YWx1ZS4KLSAgICAqCi0gICAgKiBUaGlzIGNsYXNzIGlzIGEgZGlzY3JpbWluYXRlZCB1
bmlvbiB3cmFwcGVyIHRoYXQgY2FuIHJlcHJlc2VudHMgYToKLSAgICAqIC0gc2lnbmVkIGludGVn
ZXIgW3JhbmdlOiBWYWx1ZTo6bWluSW50IC0gVmFsdWU6Om1heEludF0KLSAgICAqIC0gdW5zaWdu
ZWQgaW50ZWdlciAocmFuZ2U6IDAgLSBWYWx1ZTo6bWF4VUludCkKLSAgICAqIC0gZG91YmxlCi0g
ICAgKiAtIFVURi04IHN0cmluZwotICAgICogLSBib29sZWFuCi0gICAgKiAtICdudWxsJwotICAg
ICogLSBhbiBvcmRlcmVkIGxpc3Qgb2YgVmFsdWUKLSAgICAqIC0gY29sbGVjdGlvbiBvZiBuYW1l
L3ZhbHVlIHBhaXJzIChqYXZhc2NyaXB0IG9iamVjdCkKLSAgICAqCi0gICAgKiBUaGUgdHlwZSBv
ZiB0aGUgaGVsZCB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBhICNWYWx1ZVR5cGUgYW5kIAotICAg
ICogY2FuIGJlIG9idGFpbmVkIHVzaW5nIHR5cGUoKS4KLSAgICAqCi0gICAgKiB2YWx1ZXMgb2Yg
YW4gI29iamVjdFZhbHVlIG9yICNhcnJheVZhbHVlIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBvcGVy
YXRvcltdKCkgbWV0aG9kcy4gCi0gICAgKiBOb24gY29uc3QgbWV0aG9kcyB3aWxsIGF1dG9tYXRp
Y2FsbHkgY3JlYXRlIHRoZSBhICNudWxsVmFsdWUgZWxlbWVudCAKLSAgICAqIGlmIGl0IGRvZXMg
bm90IGV4aXN0LiAKLSAgICAqIFRoZSBzZXF1ZW5jZSBvZiBhbiAjYXJyYXlWYWx1ZSB3aWxsIGJl
IGF1dG9tYXRpY2FsbHkgcmVzaXplIGFuZCBpbml0aWFsaXplZCAKLSAgICAqIHdpdGggI251bGxW
YWx1ZS4gcmVzaXplKCkgY2FuIGJlIHVzZWQgdG8gZW5sYXJnZSBvciB0cnVuY2F0ZSBhbiAjYXJy
YXlWYWx1ZS4KLSAgICAqCi0gICAgKiBUaGUgZ2V0KCkgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBv
YnRhbmlzIGRlZmF1bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlIHJlcXVpcmVkIGVsZW1lbnQKLSAg
ICAqIGRvZXMgbm90IGV4aXN0LgotICAgICoKLSAgICAqIEl0IGlzIHBvc3NpYmxlIHRvIGl0ZXJh
dGUgb3ZlciB0aGUgbGlzdCBvZiBhICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcgCi0gICAgKiB0
aGUgZ2V0TWVtYmVyTmFtZXMoKSBtZXRob2QuCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFZh
bHVlIAotICAgewotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotIyBpZmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZUlu
dGVybmFsTGluazsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZUludGVybmFsTWFwOwotIyBlbmRp
ZgotICAgcHVibGljOgotICAgICAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gTWVt
YmVyczsKLSAgICAgIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBpdGVyYXRvcjsKLSAgICAgIHR5cGVk
ZWYgVmFsdWVDb25zdEl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotICAgICAgdHlwZWRlZiBKc29u
OjpVSW50IFVJbnQ7Ci0gICAgICB0eXBlZGVmIEpzb246OkludCBJbnQ7Ci0jIGlmIGRlZmluZWQo
SlNPTl9IQVNfSU5UNjQpCi0gICAgICB0eXBlZGVmIEpzb246OlVJbnQ2NCBVSW50NjQ7Ci0gICAg
ICB0eXBlZGVmIEpzb246OkludDY0IEludDY0OwotI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCi0gICAgICB0eXBlZGVmIEpzb246Okxhcmdlc3RJbnQgTGFyZ2VzdEludDsKLSAgICAg
IHR5cGVkZWYgSnNvbjo6TGFyZ2VzdFVJbnQgTGFyZ2VzdFVJbnQ7Ci0gICAgICB0eXBlZGVmIEpz
b246OkFycmF5SW5kZXggQXJyYXlJbmRleDsKLQotICAgICAgc3RhdGljIGNvbnN0IFZhbHVlJiBu
dWxsOwotICAgICAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUg
c3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgTGFyZ2VzdEludCBt
aW5MYXJnZXN0SW50OwotICAgICAgLy8vIE1heGltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhh
dCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgTGFy
Z2VzdEludCBtYXhMYXJnZXN0SW50OwotICAgICAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50ZWdl
ciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRp
YyBjb25zdCBMYXJnZXN0VUludCBtYXhMYXJnZXN0VUludDsKLQotICAgICAgLy8vIE1pbmltdW0g
c2lnbmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAg
ICAgIHN0YXRpYyBjb25zdCBJbnQgbWluSW50OwotICAgICAgLy8vIE1heGltdW0gc2lnbmVkIGlu
dCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRp
YyBjb25zdCBJbnQgbWF4SW50OwotICAgICAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50IHZhbHVl
IHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0
IFVJbnQgbWF4VUludDsKLQotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgLy8v
IE1pbmltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBh
IEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IEludDY0IG1pbkludDY0OwotICAgICAg
Ly8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBp
biBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IEludDY0IG1heEludDY0OwotICAg
ICAgLy8vIE1heGltdW0gdW5zaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3Rv
cmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJbnQ2
NDsKLSNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotCi0gICBwcml2YXRlOgotI2lm
bmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0jIGlmbmRlZiBKU09OX1ZB
TFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGNsYXNzIENaU3RyaW5nIAotICAgICAgewotICAg
ICAgcHVibGljOgotICAgICAgICAgZW51bSBEdXBsaWNhdGlvblBvbGljeSAKLSAgICAgICAgIHsK
LSAgICAgICAgICAgIG5vRHVwbGljYXRpb24gPSAwLAotICAgICAgICAgICAgZHVwbGljYXRlLAot
ICAgICAgICAgICAgZHVwbGljYXRlT25Db3B5Ci0gICAgICAgICB9OwotICAgICAgICAgQ1pTdHJp
bmcoIEFycmF5SW5kZXggaW5kZXggKTsKLSAgICAgICAgIENaU3RyaW5nKCBjb25zdCBjaGFyICpj
c3RyLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSApOwotICAgICAgICAgQ1pTdHJpbmcoIGNv
bnN0IENaU3RyaW5nICZvdGhlciApOwotICAgICAgICAgfkNaU3RyaW5nKCk7Ci0gICAgICAgICBD
WlN0cmluZyAmb3BlcmF0b3IgPSggY29uc3QgQ1pTdHJpbmcgJm90aGVyICk7Ci0gICAgICAgICBi
b29sIG9wZXJhdG9yPCggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkgY29uc3Q7Ci0gICAgICAgICBi
b29sIG9wZXJhdG9yPT0oIGNvbnN0IENaU3RyaW5nICZvdGhlciApIGNvbnN0OwotICAgICAgICAg
QXJyYXlJbmRleCBpbmRleCgpIGNvbnN0OwotICAgICAgICAgY29uc3QgY2hhciAqY19zdHIoKSBj
b25zdDsKLSAgICAgICAgIGJvb2wgaXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKLSAgICAgIHByaXZh
dGU6Ci0gICAgICAgICB2b2lkIHN3YXAoIENaU3RyaW5nICZvdGhlciApOwotICAgICAgICAgY29u
c3QgY2hhciAqY3N0cl87Ci0gICAgICAgICBBcnJheUluZGV4IGluZGV4XzsKLSAgICAgIH07Ci0K
LSAgIHB1YmxpYzoKLSMgIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotICAgICAgdHlw
ZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVlczsKLSMgIGVsc2UKLSAg
ICAgIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVz
OwotIyAgZW5kaWYgLy8gaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCi0jIGVuZGlmIC8v
IGlmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSNlbmRpZiAvLyBpZm5kZWYgSlNP
TkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgotCi0gICBwdWJsaWM6Ci0gICAgICAvKiog
XGJyaWVmIENyZWF0ZSBhIGRlZmF1bHQgVmFsdWUgb2YgdGhlIGdpdmVuIHR5cGUuCi0KLSAgICAg
ICAgVGhpcyBpcyBhIHZlcnkgdXNlZnVsIGNvbnN0cnVjdG9yLgotICAgICAgICBUbyBjcmVhdGUg
YW4gZW1wdHkgYXJyYXksIHBhc3MgYXJyYXlWYWx1ZS4KLSAgICAgICAgVG8gY3JlYXRlIGFuIGVt
cHR5IG9iamVjdCwgcGFzcyBvYmplY3RWYWx1ZS4KLSAgICAgICAgQW5vdGhlciBWYWx1ZSBjYW4g
dGhlbiBiZSBzZXQgdG8gdGhpcyBvbmUgYnkgYXNzaWdubWVudC4KLSAgICBUaGlzIGlzIHVzZWZ1
bCBzaW5jZSBjbGVhcigpIGFuZCByZXNpemUoKSB3aWxsIG5vdCBhbHRlciB0eXBlcy4KLQotICAg
ICAgICBFeGFtcGxlczoKLSAgICBcY29kZQotICAgIEpzb246OlZhbHVlIG51bGxfdmFsdWU7IC8v
IG51bGwKLSAgICBKc29uOjpWYWx1ZSBhcnJfdmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSk7IC8vIFtd
Ci0gICAgSnNvbjo6VmFsdWUgb2JqX3ZhbHVlKEpzb246Om9iamVjdFZhbHVlKTsgLy8ge30KLSAg
ICBcZW5kY29kZQotICAgICAgKi8KLSAgICAgIFZhbHVlKCBWYWx1ZVR5cGUgdHlwZSA9IG51bGxW
YWx1ZSApOwotICAgICAgVmFsdWUoIEludCB2YWx1ZSApOwotICAgICAgVmFsdWUoIFVJbnQgdmFs
dWUgKTsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgVmFsdWUoIEludDY0IHZh
bHVlICk7Ci0gICAgICBWYWx1ZSggVUludDY0IHZhbHVlICk7Ci0jZW5kaWYgLy8gaWYgZGVmaW5l
ZChKU09OX0hBU19JTlQ2NCkKLSAgICAgIFZhbHVlKCBkb3VibGUgdmFsdWUgKTsKLSAgICAgIFZh
bHVlKCBjb25zdCBjaGFyICp2YWx1ZSApOwotICAgICAgVmFsdWUoIGNvbnN0IGNoYXIgKmJlZ2lu
VmFsdWUsIGNvbnN0IGNoYXIgKmVuZFZhbHVlICk7Ci0gICAgICAvKiogXGJyaWVmIENvbnN0cnVj
dHMgYSB2YWx1ZSBmcm9tIGEgc3RhdGljIHN0cmluZy4KLQotICAgICAgICogTGlrZSBvdGhlciB2
YWx1ZSBzdHJpbmcgY29uc3RydWN0b3IgYnV0IGRvIG5vdCBkdXBsaWNhdGUgdGhlIHN0cmluZyBm
b3IKLSAgICAgICAqIGludGVybmFsIHN0b3JhZ2UuIFRoZSBnaXZlbiBzdHJpbmcgbXVzdCByZW1h
aW4gYWxpdmUgYWZ0ZXIgdGhlIGNhbGwgdG8gdGhpcwotICAgICAgICogY29uc3RydWN0b3IuCi0g
ICAgICAgKiBFeGFtcGxlIG9mIHVzYWdlOgotICAgICAgICogXGNvZGUKLSAgICAgICAqIEpzb246
OlZhbHVlIGFWYWx1ZSggU3RhdGljU3RyaW5nKCJzb21lIHRleHQiKSApOwotICAgICAgICogXGVu
ZGNvZGUKLSAgICAgICAqLwotICAgICAgVmFsdWUoIGNvbnN0IFN0YXRpY1N0cmluZyAmdmFsdWUg
KTsKLSAgICAgIFZhbHVlKCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKTsKLSMgaWZkZWYgSlNP
Tl9VU0VfQ1BQVEwKLSAgICAgIFZhbHVlKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJnZhbHVl
ICk7Ci0jIGVuZGlmCi0gICAgICBWYWx1ZSggYm9vbCB2YWx1ZSApOwotICAgICAgVmFsdWUoIGNv
bnN0IFZhbHVlICZvdGhlciApOwotICAgICAgflZhbHVlKCk7Ci0KLSAgICAgIFZhbHVlICZvcGVy
YXRvcj0oIGNvbnN0IFZhbHVlICZvdGhlciApOwotICAgICAgLy8vIFN3YXAgdmFsdWVzLgotICAg
ICAgLy8vIFxub3RlIEN1cnJlbnRseSwgY29tbWVudHMgYXJlIGludGVudGlvbmFsbHkgbm90IHN3
YXBwZWQsIGZvcgotICAgICAgLy8vIGJvdGggbG9naWMgYW5kIGVmZmljaWVuY3kuCi0gICAgICB2
b2lkIHN3YXAoIFZhbHVlICZvdGhlciApOwotCi0gICAgICBWYWx1ZVR5cGUgdHlwZSgpIGNvbnN0
OwotCi0gICAgICBib29sIG9wZXJhdG9yIDwoIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Owot
ICAgICAgYm9vbCBvcGVyYXRvciA8PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAg
ICBib29sIG9wZXJhdG9yID49KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLSAgICAgIGJv
b2wgb3BlcmF0b3IgPiggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0KLSAgICAgIGJvb2wg
b3BlcmF0b3IgPT0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotICAgICAgYm9vbCBvcGVy
YXRvciAhPSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0KLSAgICAgIGludCBjb21wYXJl
KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgY29uc3QgY2hhciAqYXNDU3Ry
aW5nKCkgY29uc3Q7Ci0gICAgICBzdGQ6OnN0cmluZyBhc1N0cmluZygpIGNvbnN0OwotIyBpZmRl
ZiBKU09OX1VTRV9DUFBUTAotICAgICAgQ3BwVEw6OkNvbnN0U3RyaW5nIGFzQ29uc3RTdHJpbmco
KSBjb25zdDsKLSMgZW5kaWYKLSAgICAgIEludCBhc0ludCgpIGNvbnN0OwotICAgICAgVUludCBh
c1VJbnQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgSW50NjQg
YXNJbnQ2NCgpIGNvbnN0OwotICAgICAgVUludDY0IGFzVUludDY0KCkgY29uc3Q7Ci0jZW5kaWYg
Ly8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgICAgIExhcmdlc3RJbnQgYXNMYXJnZXN0
SW50KCkgY29uc3Q7Ci0gICAgICBMYXJnZXN0VUludCBhc0xhcmdlc3RVSW50KCkgY29uc3Q7Ci0g
ICAgICBmbG9hdCBhc0Zsb2F0KCkgY29uc3Q7Ci0gICAgICBkb3VibGUgYXNEb3VibGUoKSBjb25z
dDsKLSAgICAgIGJvb2wgYXNCb29sKCkgY29uc3Q7Ci0KLSAgICAgIGJvb2wgaXNOdWxsKCkgY29u
c3Q7Ci0gICAgICBib29sIGlzQm9vbCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludCgpIGNvbnN0
OwotICAgICAgYm9vbCBpc0ludDY0KCkgY29uc3Q7Ci0gICAgICBib29sIGlzVUludCgpIGNvbnN0
OwotICAgICAgYm9vbCBpc1VJbnQ2NCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludGVncmFsKCkg
Y29uc3Q7Ci0gICAgICBib29sIGlzRG91YmxlKCkgY29uc3Q7Ci0gICAgICBib29sIGlzTnVtZXJp
YygpIGNvbnN0OwotICAgICAgYm9vbCBpc1N0cmluZygpIGNvbnN0OwotICAgICAgYm9vbCBpc0Fy
cmF5KCkgY29uc3Q7Ci0gICAgICBib29sIGlzT2JqZWN0KCkgY29uc3Q7Ci0KLSAgICAgIGJvb2wg
aXNDb252ZXJ0aWJsZVRvKCBWYWx1ZVR5cGUgb3RoZXIgKSBjb25zdDsKLQotICAgICAgLy8vIE51
bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0Ci0gICAgICBBcnJheUluZGV4IHNpemUo
KSBjb25zdDsKLQotICAgICAgLy8vIFxicmllZiBSZXR1cm4gdHJ1ZSBpZiBlbXB0eSBhcnJheSwg
ZW1wdHkgb2JqZWN0LCBvciBudWxsOwotICAgICAgLy8vIG90aGVyd2lzZSwgZmFsc2UuCi0gICAg
ICBib29sIGVtcHR5KCkgY29uc3Q7Ci0KLSAgICAgIC8vLyBSZXR1cm4gaXNOdWxsKCkKLSAgICAg
IGJvb2wgb3BlcmF0b3IhKCkgY29uc3Q7Ci0KLSAgICAgIC8vLyBSZW1vdmUgYWxsIG9iamVjdCBt
ZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJh
eVZhbHVlLCBvYmplY3RWYWx1ZSwgb3IgbnVsbFZhbHVlCi0gICAgICAvLy8gXHBvc3QgdHlwZSgp
IGlzIHVuY2hhbmdlZAotICAgICAgdm9pZCBjbGVhcigpOwotCi0gICAgICAvLy8gUmVzaXplIHRo
ZSBhcnJheSB0byBzaXplIGVsZW1lbnRzLiAKLSAgICAgIC8vLyBOZXcgZWxlbWVudHMgYXJlIGlu
aXRpYWxpemVkIHRvIG51bGwuCi0gICAgICAvLy8gTWF5IG9ubHkgYmUgY2FsbGVkIG9uIG51bGxW
YWx1ZSBvciBhcnJheVZhbHVlLgotICAgICAgLy8vIFxwcmUgdHlwZSgpIGlzIGFycmF5VmFsdWUg
b3IgbnVsbFZhbHVlCi0gICAgICAvLy8gXHBvc3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKLSAgICAg
IHZvaWQgcmVzaXplKCBBcnJheUluZGV4IHNpemUgKTsKLQotICAgICAgLy8vIEFjY2VzcyBhbiBh
cnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCi0gICAgICAvLy8gSWYgdGhlIGFycmF5
IGNvbnRhaW5zIGxlc3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlIGlu
c2VydGVkCi0gICAgICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgr
MS4KLSAgICAgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91
ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAgICAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJh
dG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIEFy
cmF5SW5kZXggaW5kZXggKTsKLQotICAgICAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6
ZXJvIGJhc2VkIGluZGV4ICkuCi0gICAgICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3Mg
dGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlIGluc2VydGVkCi0gICAgICAv
Ly8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgICAgIC8vLyAo
WW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBk
aXN0aW5ndWlzaAotICAgICAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFr
ZXMgYSBzdHJpbmcuKQotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGludCBpbmRleCApOwotCi0g
ICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAg
ICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBp
bGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3
aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggQXJy
YXlJbmRleCBpbmRleCApIGNvbnN0OwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1l
bnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAgICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2
YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8g
IHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBj
b25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggaW50IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIC8vLyBJ
ZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywgcmV0dXJucyB0
aGUgZWxlbWVudCB2YWx1ZSwgCi0gICAgICAvLy8gb3RoZXJ3aXNlIHJldHVybnMgZGVmYXVsdFZh
bHVlLgotICAgICAgVmFsdWUgZ2V0KCBBcnJheUluZGV4IGluZGV4LCAKLSAgICAgICAgICAgICAg
ICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0OwotICAgICAgLy8vIFJldHVybiB0
cnVlIGlmIGluZGV4IDwgc2l6ZSgpLgotICAgICAgYm9vbCBpc1ZhbGlkSW5kZXgoIEFycmF5SW5k
ZXggaW5kZXggKSBjb25zdDsKLSAgICAgIC8vLyBcYnJpZWYgQXBwZW5kIHZhbHVlIHRvIGFycmF5
IGF0IHRoZSBlbmQuCi0gICAgICAvLy8KLSAgICAgIC8vLyBFcXVpdmFsZW50IHRvIGpzb252YWx1
ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOwotICAgICAgVmFsdWUgJmFwcGVuZCggY29uc3Qg
VmFsdWUgJnZhbHVlICk7Ci0KLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5h
bWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFs
dWUgJm9wZXJhdG9yW10oIGNvbnN0IGNoYXIgKmtleSApOwotICAgICAgLy8vIEFjY2VzcyBhbiBv
YmplY3QgdmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3
aXRoIHRoYXQgbmFtZS4KLSAgICAgIGNvbnN0IFZhbHVlICZvcGVyYXRvcltdKCBjb25zdCBjaGFy
ICprZXkgKSBjb25zdDsKLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUs
IGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFsdWUg
Jm9wZXJhdG9yW10oIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKTsKLSAgICAgIC8vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1i
ZXIgd2l0aCB0aGF0IG5hbWUuCi0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3Qg
c3RkOjpzdHJpbmcgJmtleSApIGNvbnN0OwotICAgICAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2Jq
ZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4
aXN0LgotCi0gICAgICAgKiBJZiB0aGUgb2JqZWN0IGFzIG5vIGVudHJ5IGZvciB0aGF0IG5hbWUs
IHRoZW4gdGhlIG1lbWJlciBuYW1lIHVzZWQgdG8gc3RvcmUKLSAgICAgICAqIHRoZSBuZXcgZW50
cnkgaXMgbm90IGR1cGxpY2F0ZWQuCi0gICAgICAgKiBFeGFtcGxlIG9mIHVzZToKLSAgICAgICAq
IFxjb2RlCi0gICAgICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Ci0gICAgICAgKiBzdGF0aWMgY29u
c3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUiKTsKLSAgICAgICAqIG9iamVjdFtjb2RlXSA9IDEy
MzQ7Ci0gICAgICAgKiBcZW5kY29kZQotICAgICAgICovCi0gICAgICBWYWx1ZSAmb3BlcmF0b3Jb
XSggY29uc3QgU3RhdGljU3RyaW5nICZrZXkgKTsKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAg
ICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVt
YmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0
IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICk7Ci0gICAgICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2
YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGggdGhh
dCBuYW1lLgotICAgICAgY29uc3QgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25z
dFN0cmluZyAma2V5ICkgY29uc3Q7Ci0jIGVuZGlmCi0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1i
ZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAg
VmFsdWUgZ2V0KCBjb25zdCBjaGFyICprZXksIAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1
ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFt
ZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAgVmFsdWUg
Z2V0KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5LAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1
ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0gICAgICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUg
b3RoZXJ3aXNlLgotICAgICAgVmFsdWUgZ2V0KCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtl
eSwKLSAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0Owot
IyBlbmRpZgotICAgICAgLy8vIFxicmllZiBSZW1vdmUgYW5kIHJldHVybiB0aGUgbmFtZWQgbWVt
YmVyLiAgCi0gICAgICAvLy8KLSAgICAgIC8vLyBEbyBub3RoaW5nIGlmIGl0IGRpZCBub3QgZXhp
c3QuCi0gICAgICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KLSAgICAg
IC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBc
cG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCi0gICAgICBWYWx1ZSByZW1vdmVNZW1iZXIoIGNvbnN0
IGNoYXIqIGtleSApOwotICAgICAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIq
KQotICAgICAgVmFsdWUgcmVtb3ZlTWVtYmVyKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICk7Ci0K
LSAgICAgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBr
ZXkuCi0gICAgICBib29sIGlzTWVtYmVyKCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLSAgICAg
IC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCi0g
ICAgICBib29sIGlzTWVtYmVyKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3Q7Ci0jIGlm
ZGVmIEpTT05fVVNFX0NQUFRMCi0gICAgICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBo
YXMgYSBtZW1iZXIgbmFtZWQga2V5LgotICAgICAgYm9vbCBpc01lbWJlciggY29uc3QgQ3BwVEw6
OkNvbnN0U3RyaW5nICZrZXkgKSBjb25zdDsKLSMgZW5kaWYKLQotICAgICAgLy8vIFxicmllZiBS
ZXR1cm4gYSBsaXN0IG9mIHRoZSBtZW1iZXIgbmFtZXMuCi0gICAgICAvLy8KLSAgICAgIC8vLyBJ
ZiBudWxsLCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBv
YmplY3RWYWx1ZSBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBccG9zdCBpZiB0eXBlKCkgd2FzIG51
bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUKLSAgICAgIE1lbWJlcnMgZ2V0TWVtYmVyTmFt
ZXMoKSBjb25zdDsKLQotLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0vLyAgICAgIEVudW1NZW1i
ZXJOYW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25zdDsKLS8vICAgICAgRW51bVZhbHVlcyBlbnVt
VmFsdWVzKCkgY29uc3Q7Ci0vLyMgZW5kaWYKLQotICAgICAgLy8vIENvbW1lbnRzIG11c3QgYmUg
Ly8uLi4gb3IgLyogLi4uICovCi0gICAgICB2b2lkIHNldENvbW1lbnQoIGNvbnN0IGNoYXIgKmNv
bW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50
ICk7Ci0gICAgICAvLy8gQ29tbWVudHMgbXVzdCBiZSAvLy4uLiBvciAvKiAuLi4gKi8KLSAgICAg
IHZvaWQgc2V0Q29tbWVudCggY29uc3Qgc3RkOjpzdHJpbmcgJmNvbW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICk7Ci0gICAgICBib29sIGhh
c0NvbW1lbnQoIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29uc3Q7Ci0gICAgICAvLy8g
SW5jbHVkZSBkZWxpbWl0ZXJzIGFuZCBlbWJlZGRlZCBuZXdsaW5lcy4KLSAgICAgIHN0ZDo6c3Ry
aW5nIGdldENvbW1lbnQoIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29uc3Q7Ci0KLSAg
ICAgIHN0ZDo6c3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7Ci0KLSAgICAgIGNvbnN0X2l0
ZXJhdG9yIGJlZ2luKCkgY29uc3Q7Ci0gICAgICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdDsK
LQotICAgICAgaXRlcmF0b3IgYmVnaW4oKTsKLSAgICAgIGl0ZXJhdG9yIGVuZCgpOwotCi0gICBw
cml2YXRlOgotICAgICAgVmFsdWUgJnJlc29sdmVSZWZlcmVuY2UoIGNvbnN0IGNoYXIgKmtleSwg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1N0YXRpYyApOwotCi0jIGlm
ZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgaW5saW5lIGJvb2wgaXNJdGVt
QXZhaWxhYmxlKCkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBpdGVtSXNVc2VkXyA9
PSAwOwotICAgICAgfQotCi0gICAgICBpbmxpbmUgdm9pZCBzZXRJdGVtVXNlZCggYm9vbCBpc1Vz
ZWQgPSB0cnVlICkKLSAgICAgIHsKLSAgICAgICAgIGl0ZW1Jc1VzZWRfID0gaXNVc2VkID8gMSA6
IDA7Ci0gICAgICB9Ci0KLSAgICAgIGlubGluZSBib29sIGlzTWVtYmVyTmFtZVN0YXRpYygpIGNv
bnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gbWVtYmVyTmFtZUlzU3RhdGljXyA9PSAwOwot
ICAgICAgfQotCi0gICAgICBpbmxpbmUgdm9pZCBzZXRNZW1iZXJOYW1lSXNTdGF0aWMoIGJvb2wg
aXNTdGF0aWMgKQotICAgICAgewotICAgICAgICAgbWVtYmVyTmFtZUlzU3RhdGljXyA9IGlzU3Rh
dGljID8gMSA6IDA7Ci0gICAgICB9Ci0jIGVuZGlmIC8vICMgaWZkZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi0KLSAgIHByaXZhdGU6Ci0gICAgICBzdHJ1Y3QgQ29tbWVudEluZm8KLSAg
ICAgIHsKLSAgICAgICAgIENvbW1lbnRJbmZvKCk7Ci0gICAgICAgICB+Q29tbWVudEluZm8oKTsK
LQotICAgICAgICAgdm9pZCBzZXRDb21tZW50KCBjb25zdCBjaGFyICp0ZXh0ICk7Ci0KLSAgICAg
ICAgIGNoYXIgKmNvbW1lbnRfOwotICAgICAgfTsKLQotICAgICAgLy9zdHJ1Y3QgTWVtYmVyTmFt
ZXNUcmFuc2Zvcm0KLSAgICAgIC8vewotICAgICAgLy8gICB0eXBlZGVmIGNvbnN0IGNoYXIgKnJl
c3VsdF90eXBlOwotICAgICAgLy8gICBjb25zdCBjaGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0
cmluZyAmbmFtZSApIGNvbnN0Ci0gICAgICAvLyAgIHsKLSAgICAgIC8vICAgICAgcmV0dXJuIG5h
bWUuY19zdHIoKTsKLSAgICAgIC8vICAgfQotICAgICAgLy99OwotCi0gICAgICB1bmlvbiBWYWx1
ZUhvbGRlcgotICAgICAgewotICAgICAgICAgTGFyZ2VzdEludCBpbnRfOwotICAgICAgICAgTGFy
Z2VzdFVJbnQgdWludF87Ci0gICAgICAgICBkb3VibGUgcmVhbF87Ci0gICAgICAgICBib29sIGJv
b2xfOwotICAgICAgICAgY2hhciAqc3RyaW5nXzsKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5U
RVJOQUxfTUFQCi0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5XzsKLSAgICAgICAg
IFZhbHVlSW50ZXJuYWxNYXAgKm1hcF87Ci0jZWxzZQotICAgICAgICAgT2JqZWN0VmFsdWVzICpt
YXBfOwotIyBlbmRpZgotICAgICAgfSB2YWx1ZV87Ci0gICAgICBWYWx1ZVR5cGUgdHlwZV8gOiA4
OwotICAgICAgLy8gT25lLWJpdCBiaXRmaWVsZHMgbXVzdCBiZSB1bnNpZ25lZCB0byBhbGxvdyBz
dG9yaW5nIDEuCi0gICAgICAvLyBUaGV5IG11c3QgYmUgMzItYml0cyB0byBzaGFyZSBzdG9yYWdl
IHdpdGggVmFsdWVIb2xkZXIuCi0gICAgICB1bnNpZ25lZCBpbnQgYWxsb2NhdGVkXyA6IDE7Ci0j
IGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgdW5zaWduZWQgaW50IGl0
ZW1Jc1VzZWRfIDogMTsgICAgICAvLyB1c2VkIGJ5IHRoZSBWYWx1ZUludGVybmFsTWFwIGNvbnRh
aW5lci4KLSAgICAgIHVuc2lnbmVkIGludCBtZW1iZXJOYW1lSXNTdGF0aWNfIDogMTsgLy8gdXNl
ZCBieSB0aGUgVmFsdWVJbnRlcm5hbE1hcCBjb250YWluZXIuCi0jIGVuZGlmCi0gICAgICBDb21t
ZW50SW5mbyAqY29tbWVudHNfOwotICAgfTsKLQotCi0gICAvKiogXGJyaWVmIEV4cGVyaW1lbnRh
bCBhbmQgdW50ZXN0ZWQ6IHJlcHJlc2VudHMgYW4gZWxlbWVudCBvZiB0aGUgInBhdGgiIHRvIGFj
Y2VzcyBhIG5vZGUuCi0gICAgKi8KLSAgIGNsYXNzIFBhdGhBcmd1bWVudAotICAgewotICAgcHVi
bGljOgotICAgICAgZnJpZW5kIGNsYXNzIFBhdGg7Ci0KLSAgICAgIFBhdGhBcmd1bWVudCgpOwot
ICAgICAgUGF0aEFyZ3VtZW50KCBBcnJheUluZGV4IGluZGV4ICk7Ci0gICAgICBQYXRoQXJndW1l
bnQoIGNvbnN0IGNoYXIgKmtleSApOwotICAgICAgUGF0aEFyZ3VtZW50KCBjb25zdCBzdGQ6OnN0
cmluZyAma2V5ICk7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICBlbnVtIEtpbmQKLSAgICAgIHsKLSAg
ICAgICAgIGtpbmROb25lID0gMCwKLSAgICAgICAgIGtpbmRJbmRleCwKLSAgICAgICAgIGtpbmRL
ZXkKLSAgICAgIH07Ci0gICAgICBzdGQ6OnN0cmluZyBrZXlfOwotICAgICAgQXJyYXlJbmRleCBp
bmRleF87Ci0gICAgICBLaW5kIGtpbmRfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBFeHBlcmlt
ZW50YWwgYW5kIHVudGVzdGVkOiByZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUu
Ci0gICAgKgotICAgICogU3ludGF4OgotICAgICogLSAiLiIgPT4gcm9vdCBub2RlCi0gICAgKiAt
ICIuW25dIiA9PiBlbGVtZW50cyBhdCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2
YWx1ZSkKLSAgICAqIC0gIi5uYW1lIiA9PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9k
ZSAoYW4gb2JqZWN0IHZhbHVlKQotICAgICogLSAiLm5hbWUxLm5hbWUyLm5hbWUzIgotICAgICog
LSAiLlswXVsxXVsyXS5uYW1lMVszXSIKLSAgICAqIC0gIi4lIiA9PiBtZW1iZXIgbmFtZSBpcyBw
cm92aWRlZCBhcyBwYXJhbWV0ZXIKLSAgICAqIC0gIi5bJV0iID0+IGluZGV4IGlzIHByb3ZpZWQg
YXMgcGFyYW1ldGVyCi0gICAgKi8KLSAgIGNsYXNzIFBhdGgKLSAgIHsKLSAgIHB1YmxpYzoKLSAg
ICAgIFBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5nICZwYXRoLAotICAgICAgICAgICAgY29uc3QgUGF0
aEFyZ3VtZW50ICZhMSA9IFBhdGhBcmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFy
Z3VtZW50ICZhMiA9IFBhdGhBcmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3Vt
ZW50ICZhMyA9IFBhdGhBcmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50
ICZhNCA9IFBhdGhBcmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZh
NSA9IFBhdGhBcmd1bWVudCgpICk7Ci0KLSAgICAgIGNvbnN0IFZhbHVlICZyZXNvbHZlKCBjb25z
dCBWYWx1ZSAmcm9vdCApIGNvbnN0OwotICAgICAgVmFsdWUgcmVzb2x2ZSggY29uc3QgVmFsdWUg
JnJvb3QsIAotICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSAp
IGNvbnN0OwotICAgICAgLy8vIENyZWF0ZXMgdGhlICJwYXRoIiB0byBhY2Nlc3MgdGhlIHNwZWNp
ZmllZCBub2RlIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlIG9uIHRoZSBub2RlLgotICAgICAgVmFs
dWUgJm1ha2UoIFZhbHVlICZyb290ICkgY29uc3Q7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPGNvbnN0IFBhdGhBcmd1bWVudCAqPiBJbkFyZ3M7Ci0gICAgICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPFBhdGhBcmd1bWVudD4gQXJnczsKLQotICAgICAgdm9pZCBtYWtlUGF0
aCggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBJ
bkFyZ3MgJmluICk7Ci0gICAgICB2b2lkIGFkZFBhdGhJbkFyZyggY29uc3Qgc3RkOjpzdHJpbmcg
JnBhdGgsIAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4sIAotICAg
ICAgICAgICAgICAgICAgICAgICAgIEluQXJnczo6Y29uc3RfaXRlcmF0b3IgJml0SW5BcmcsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kICk7Ci0gICAg
ICB2b2lkIGludmFsaWRQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgbG9jYXRpb24gKTsKLQotICAgICAgQXJncyBhcmdzXzsKLSAgIH07
Ci0KLQotCi0jaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAvKiogXGJyaWVm
IEFsbG9jYXRvciB0byBjdXN0b21pemUgVmFsdWUgaW50ZXJuYWwgbWFwLgotICAgICogQmVsb3cg
aXMgYW4gZXhhbXBsZSBvZiBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiAoZGVmYXVsdCBpbXBsZW1l
bnRhdGlvbiBhY3R1YWxseQotICAgICogdXNlIG1lbW9yeSBwb29sIGZvciBzcGVlZCkuCi0gICAg
KiBcY29kZQotICAgICAgY2xhc3MgRGVmYXVsdFZhbHVlTWFwQWxsb2NhdG9yIDogcHVibGljIFZh
bHVlTWFwQWxsb2NhdG9yCi0gICAgICB7Ci0gICAgICBwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJv
bSBWYWx1ZU1hcEFsbG9jYXRvcgotICAgICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpu
ZXdNYXAoKQotICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFs
TWFwKCk7Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAq
bmV3TWFwQ29weSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFsTWFwKCBvdGhlciApOwotICAgICAg
ICAgfQotCi0gICAgICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RNYXAoIFZhbHVlSW50ZXJuYWxN
YXAgKm1hcCApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBkZWxldGUgbWFwOwotICAgICAgICAg
fQotCi0gICAgICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxMaW5rICphbGxvY2F0ZU1hcEJ1Y2tl
dHMoIHVuc2lnbmVkIGludCBzaXplICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBu
ZXcgVmFsdWVJbnRlcm5hbExpbmtbc2l6ZV07Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHZpcnR1
YWwgdm9pZCByZWxlYXNlTWFwQnVja2V0cyggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtzICkKLSAg
ICAgICAgIHsKLSAgICAgICAgICAgIGRlbGV0ZSBbXSBsaW5rczsKLSAgICAgICAgIH0KLQotICAg
ICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTGluayAqYWxsb2NhdGVNYXBMaW5rKCkKLSAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbExpbmsoKTsKLSAgICAg
ICAgIH0KLQotICAgICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VNYXBMaW5rKCBWYWx1ZUludGVy
bmFsTGluayAqbGluayApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBkZWxldGUgbGluazsKLSAg
ICAgICAgIH0KLSAgICAgIH07Ci0gICAgKiBcZW5kY29kZQotICAgICovIAotICAgY2xhc3MgSlNP
Tl9BUEkgVmFsdWVNYXBBbGxvY2F0b3IKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIHZpcnR1YWwg
flZhbHVlTWFwQWxsb2NhdG9yKCk7Ci0gICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5l
d01hcCgpID0gMDsKLSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwQ29weSgg
Y29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQg
ZGVzdHJ1Y3RNYXAoIFZhbHVlSW50ZXJuYWxNYXAgKm1hcCApID0gMDsKLSAgICAgIHZpcnR1YWwg
VmFsdWVJbnRlcm5hbExpbmsgKmFsbG9jYXRlTWFwQnVja2V0cyggdW5zaWduZWQgaW50IHNpemUg
KSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcEJ1Y2tldHMoIFZhbHVlSW50ZXJu
YWxMaW5rICpsaW5rcyApID0gMDsKLSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFs
bG9jYXRlTWFwTGluaygpID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwTGluaygg
VmFsdWVJbnRlcm5hbExpbmsgKmxpbmsgKSA9IDA7Ci0gICB9OwotCi0gICAvKiogXGJyaWVmIFZh
bHVlSW50ZXJuYWxNYXAgaGFzaC1tYXAgYnVja2V0IGNoYWluIGxpbmsgKGZvciBpbnRlcm5hbCB1
c2Ugb25seSkuCi0gICAgKiBcaW50ZXJuYWwgcHJldmlvdXNfICYgbmV4dF8gYWxsb3dzIGZvciBi
aWRpcmVjdGlvbmFsIHRyYXZlcnNhbC4KLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVJ
bnRlcm5hbExpbmsKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIGVudW0geyBpdGVtUGVyTGluayA9
IDYgfTsgIC8vIHNpemVvZihWYWx1ZUludGVybmFsTGluaykgPSAxMjggb24gMzIgYml0cyBhcmNo
aXRlY3R1cmUuCi0gICAgICBlbnVtIEludGVybmFsRmxhZ3MgeyAKLSAgICAgICAgIGZsYWdBdmFp
bGFibGUgPSAwLAotICAgICAgICAgZmxhZ1VzZWQgPSAxCi0gICAgICB9OwotCi0gICAgICBWYWx1
ZUludGVybmFsTGluaygpOwotCi0gICAgICB+VmFsdWVJbnRlcm5hbExpbmsoKTsKLQotICAgICAg
VmFsdWUgaXRlbXNfW2l0ZW1QZXJMaW5rXTsKLSAgICAgIGNoYXIgKmtleXNfW2l0ZW1QZXJMaW5r
XTsKLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICpwcmV2aW91c187Ci0gICAgICBWYWx1ZUludGVy
bmFsTGluayAqbmV4dF87Ci0gICB9OwotCi0KLSAgIC8qKiBcYnJpZWYgQSBsaW5rZWQgcGFnZSBi
YXNlZCBoYXNoLXRhYmxlIGltcGxlbWVudGF0aW9uIHVzZWQgaW50ZXJuYWxseSBieSBWYWx1ZS4K
LSAgICAqIFxpbnRlcm5hbCBWYWx1ZUludGVybmFsTWFwIGlzIGEgdHJhZGlvbmFsIGJ1Y2tldCBi
YXNlZCBoYXNoLXRhYmxlLCB3aXRoIGEgbGlua2VkCi0gICAgKiBsaXN0IGluIGVhY2ggYnVja2V0
IHRvIGhhbmRsZSBjb2xsaXNpb24uIFRoZXJlIGlzIGFuIGFkZGlvbmFsIHR3aXN0IGluIHRoYXQK
LSAgICAqIGVhY2ggbm9kZSBvZiB0aGUgY29sbGlzaW9uIGxpbmtlZCBsaXN0IGlzIGEgcGFnZSBj
b250YWluaW5nIGEgZml4ZWQgYW1vdW50IG9mCi0gICAgKiB2YWx1ZS4gVGhpcyBwcm92aWRlcyBh
IGJldHRlciBjb21wcm9taXNlIGJldHdlZW4gbWVtb3J5IHVzYWdlIGFuZCBzcGVlZC4KLSAgICAq
IAotICAgICogRWFjaCBidWNrZXQgaXMgbWFkZSB1cCBvZiBhIGNoYWluZWQgbGlzdCBvZiBWYWx1
ZUludGVybmFsTGluay4gVGhlIGxhc3QKLSAgICAqIGxpbmsgb2YgYSBnaXZlbiBidWNrZXQgY2Fu
IGJlIGZvdW5kIGluIHRoZSAncHJldmlvdXNfJyBmaWVsZCBvZiB0aGUgZm9sbG93aW5nIGJ1Y2tl
dC4KLSAgICAqIFRoZSBsYXN0IGxpbmsgb2YgdGhlIGxhc3QgYnVja2V0IGlzIHN0b3JlZCBpbiB0
YWlsTGlua18gYXMgaXQgaGFzIG5vIGZvbGxvd2luZyBidWNrZXQuCi0gICAgKiBPbmx5IHRoZSBs
YXN0IGxpbmsgb2YgYSBidWNrZXQgbWF5IGNvbnRhaW5zICdhdmFpbGFibGUnIGl0ZW0uIFRoZSBs
YXN0IGxpbmsgYWx3YXlzCi0gICAgKiBjb250YWlucyBhdCBsZWFzdCBvbmUgZWxlbWVudCB1bmxl
c3MgaXMgaXQgdGhlIGJ1Y2tldCBvbmUgdmVyeSBmaXJzdCBsaW5rLgotICAgICovCi0gICBjbGFz
cyBKU09OX0FQSSBWYWx1ZUludGVybmFsTWFwCi0gICB7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFs
dWVJdGVyYXRvckJhc2U7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWU7Ci0gICBwdWJsaWM6Ci0g
ICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBIYXNoS2V5OwotICAgICAgdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgQnVja2V0SW5kZXg7Ci0KLSMgaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVN
RU5UQVRJT04KLSAgICAgIHN0cnVjdCBJdGVyYXRvclN0YXRlCi0gICAgICB7Ci0gICAgICAgICBJ
dGVyYXRvclN0YXRlKCkgCi0gICAgICAgICAgICA6IG1hcF8oMCkKLSAgICAgICAgICAgICwgbGlu
a18oMCkKLSAgICAgICAgICAgICwgaXRlbUluZGV4XygwKQotICAgICAgICAgICAgLCBidWNrZXRJ
bmRleF8oMCkgCi0gICAgICAgICB7Ci0gICAgICAgICB9Ci0gICAgICAgICBWYWx1ZUludGVybmFs
TWFwICptYXBfOwotICAgICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtfOwotICAgICAgICAg
QnVja2V0SW5kZXggaXRlbUluZGV4XzsKLSAgICAgICAgIEJ1Y2tldEluZGV4IGJ1Y2tldEluZGV4
XzsKLSAgICAgIH07Ci0jIGVuZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExF
TUVOVEFUSU9OCi0KLSAgICAgIFZhbHVlSW50ZXJuYWxNYXAoKTsKLSAgICAgIFZhbHVlSW50ZXJu
YWxNYXAoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICk7Ci0gICAgICBWYWx1ZUludGVy
bmFsTWFwICZvcGVyYXRvciA9KCBjb25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApOwotICAg
ICAgflZhbHVlSW50ZXJuYWxNYXAoKTsKLQotICAgICAgdm9pZCBzd2FwKCBWYWx1ZUludGVybmFs
TWFwICZvdGhlciApOwotCi0gICAgICBCdWNrZXRJbmRleCBzaXplKCkgY29uc3Q7Ci0KLSAgICAg
IHZvaWQgY2xlYXIoKTsKLQotICAgICAgYm9vbCByZXNlcnZlRGVsdGEoIEJ1Y2tldEluZGV4IGdy
b3d0aCApOwotCi0gICAgICBib29sIHJlc2VydmUoIEJ1Y2tldEluZGV4IG5ld0l0ZW1Db3VudCAp
OwotCi0gICAgICBjb25zdCBWYWx1ZSAqZmluZCggY29uc3QgY2hhciAqa2V5ICkgY29uc3Q7Ci0K
LSAgICAgIFZhbHVlICpmaW5kKCBjb25zdCBjaGFyICprZXkgKTsKLQotICAgICAgVmFsdWUgJnJl
c29sdmVSZWZlcmVuY2UoIGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBpc1N0YXRpYyApOwotCi0gICAgICB2b2lkIHJlbW92ZSggY29uc3QgY2hh
ciAqa2V5ICk7Ci0KLSAgICAgIHZvaWQgZG9BY3R1YWxSZW1vdmUoIFZhbHVlSW50ZXJuYWxMaW5r
ICpsaW5rLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1Y2tldEluZGV4IGluZGV4LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0SW5kZXggYnVja2V0SW5kZXggKTsKLQot
ICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKiZnZXRMYXN0TGlua0luQnVja2V0KCBCdWNrZXRJbmRl
eCBidWNrZXRJbmRleCApOwotCi0gICAgICBWYWx1ZSAmc2V0TmV3SXRlbSggY29uc3QgY2hhciAq
a2V5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsTGluayAqbGluaywgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgQnVja2V0SW5kZXggaW5kZXggKTsKLQotICAgICAgVmFsdWUgJnVuc2FmZUFk
ZCggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0
aWMsIAotICAgICAgICAgICAgICAgICAgICAgICAgSGFzaEtleSBoYXNoZWRLZXkgKTsKLQotICAg
ICAgSGFzaEtleSBoYXNoKCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLQotICAgICAgaW50IGNv
bXBhcmUoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICkgY29uc3Q7Ci0KLSAgIHByaXZh
dGU6Ci0gICAgICB2b2lkIG1ha2VCZWdpbkl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNv
bnN0OwotICAgICAgdm9pZCBtYWtlRW5kSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29u
c3Q7Ci0gICAgICBzdGF0aWMgYm9vbCBlcXVhbHMoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNv
bnN0IEl0ZXJhdG9yU3RhdGUgJm90aGVyICk7Ci0gICAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnQo
IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnRC
dWNrZXQoIEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgdm9pZCBkZWNy
ZW1lbnQoIEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqa2V5KCBjb25zdCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKmtleSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IsIGJvb2wgJmlzU3Rh
dGljICk7Ci0gICAgICBzdGF0aWMgVmFsdWUgJnZhbHVlKCBjb25zdCBJdGVyYXRvclN0YXRlICZp
dGVyYXRvciApOwotICAgICAgc3RhdGljIGludCBkaXN0YW5jZSggY29uc3QgSXRlcmF0b3JTdGF0
ZSAmeCwgY29uc3QgSXRlcmF0b3JTdGF0ZSAmeSApOwotCi0gICBwcml2YXRlOgotICAgICAgVmFs
dWVJbnRlcm5hbExpbmsgKmJ1Y2tldHNfOwotICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKnRhaWxM
aW5rXzsKLSAgICAgIEJ1Y2tldEluZGV4IGJ1Y2tldHNTaXplXzsKLSAgICAgIEJ1Y2tldEluZGV4
IGl0ZW1Db3VudF87Ci0gICB9OwotCi0gICAvKiogXGJyaWVmIEEgc2ltcGxpZmllZCBkZXF1ZSBp
bXBsZW1lbnRhdGlvbiB1c2VkIGludGVybmFsbHkgYnkgVmFsdWUuCi0gICAqIFxpbnRlcm5hbAot
ICAgKiBJdCBpcyBiYXNlZCBvbiBhIGxpc3Qgb2YgZml4ZWQgInBhZ2UiLCBlYWNoIHBhZ2UgY29u
dGFpbnMgYSBmaXhlZCBudW1iZXIgb2YgaXRlbXMuCi0gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBs
aW5rZWQtbGlzdCwgYSBhcnJheSBvZiBwb2ludGVyIGlzIHVzZWQgZm9yIGZhc3QgaXRlbSBsb29r
LXVwLgotICAgKiBMb29rLXVwIGZvciBhbiBlbGVtZW50IGlzIGFzIGZvbGxvdzoKLSAgICogLSBj
b21wdXRlIHBhZ2UgaW5kZXg6IHBhZ2VJbmRleCA9IGl0ZW1JbmRleCAvIGl0ZW1zUGVyUGFnZQot
ICAgKiAtIGxvb2stdXAgaXRlbSBpbiBwYWdlOiBwYWdlc19bcGFnZUluZGV4XVtpdGVtSW5kZXgg
JSBpdGVtc1BlclBhZ2VdCi0gICAqCi0gICAqIEluc2VydGlvbiBpcyBhbW9ydGl6ZWQgY29uc3Rh
bnQgdGltZSAob25seSB0aGUgYXJyYXkgY29udGFpbmluZyB0aGUgaW5kZXggb2YgcG9pbnRlcnMK
LSAgICogbmVlZCB0byBiZSByZWFsbG9jYXRlZCB3aGVuIGl0ZW1zIGFyZSBhcHBlbmRlZCkuCi0g
ICAqLwotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVJbnRlcm5hbEFycmF5Ci0gICB7Ci0gICAgICBm
cmllbmQgY2xhc3MgVmFsdWU7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7
Ci0gICBwdWJsaWM6Ci0gICAgICBlbnVtIHsgaXRlbXNQZXJQYWdlID0gOCB9OyAgICAvLyBzaG91
bGQgYmUgYSBwb3dlciBvZiAyIGZvciBmYXN0IGRpdmlkZSBhbmQgbW9kdWxvLgotICAgICAgdHlw
ZWRlZiBWYWx1ZTo6QXJyYXlJbmRleCBBcnJheUluZGV4OwotICAgICAgdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgUGFnZUluZGV4OwotCi0jIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVO
VEFUSU9OCi0gICAgICBzdHJ1Y3QgSXRlcmF0b3JTdGF0ZSAvLyBNdXN0IGJlIGEgUE9ECi0gICAg
ICB7Ci0gICAgICAgICBJdGVyYXRvclN0YXRlKCkgCi0gICAgICAgICAgICA6IGFycmF5XygwKQot
ICAgICAgICAgICAgLCBjdXJyZW50UGFnZUluZGV4XygwKQotICAgICAgICAgICAgLCBjdXJyZW50
SXRlbUluZGV4XygwKSAKLSAgICAgICAgIHsKLSAgICAgICAgIH0KLSAgICAgICAgIFZhbHVlSW50
ZXJuYWxBcnJheSAqYXJyYXlfOwotICAgICAgICAgVmFsdWUgKipjdXJyZW50UGFnZUluZGV4XzsK
LSAgICAgICAgIHVuc2lnbmVkIGludCBjdXJyZW50SXRlbUluZGV4XzsKLSAgICAgIH07Ci0jIGVu
ZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLSAgICAg
IFZhbHVlSW50ZXJuYWxBcnJheSgpOwotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5KCBjb25zdCBW
YWx1ZUludGVybmFsQXJyYXkgJm90aGVyICk7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXkgJm9w
ZXJhdG9yID0oIGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKTsKLSAgICAgIH5WYWx1
ZUludGVybmFsQXJyYXkoKTsKLSAgICAgIHZvaWQgc3dhcCggVmFsdWVJbnRlcm5hbEFycmF5ICZv
dGhlciApOwotCi0gICAgICB2b2lkIGNsZWFyKCk7Ci0gICAgICB2b2lkIHJlc2l6ZSggQXJyYXlJ
bmRleCBuZXdTaXplICk7Ci0KLSAgICAgIFZhbHVlICZyZXNvbHZlUmVmZXJlbmNlKCBBcnJheUlu
ZGV4IGluZGV4ICk7Ci0KLSAgICAgIFZhbHVlICpmaW5kKCBBcnJheUluZGV4IGluZGV4ICkgY29u
c3Q7Ci0KLSAgICAgIEFycmF5SW5kZXggc2l6ZSgpIGNvbnN0OwotCi0gICAgICBpbnQgY29tcGFy
ZSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApIGNvbnN0OwotCi0gICBwcml2YXRl
OgotICAgICAgc3RhdGljIGJvb2wgZXF1YWxzKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25z
dCBJdGVyYXRvclN0YXRlICZvdGhlciApOwotICAgICAgc3RhdGljIHZvaWQgaW5jcmVtZW50KCBJ
dGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIHZvaWQgZGVjcmVtZW50KCBJ
dGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIFZhbHVlICZkZXJlZmVyZW5j
ZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBWYWx1ZSAm
dW5zYWZlRGVyZWZlcmVuY2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAg
ICBzdGF0aWMgaW50IGRpc3RhbmNlKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25zdCBJdGVy
YXRvclN0YXRlICZ5ICk7Ci0gICAgICBzdGF0aWMgQXJyYXlJbmRleCBpbmRleE9mKCBjb25zdCBJ
dGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgdm9pZCBtYWtlQmVnaW5JdGVyYXRvcigg
SXRlcmF0b3JTdGF0ZSAmaXQgKSBjb25zdDsKLSAgICAgIHZvaWQgbWFrZUVuZEl0ZXJhdG9yKCBJ
dGVyYXRvclN0YXRlICZpdCApIGNvbnN0OwotICAgICAgdm9pZCBtYWtlSXRlcmF0b3IoIEl0ZXJh
dG9yU3RhdGUgJml0LCBBcnJheUluZGV4IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIHZvaWQgbWFr
ZUluZGV4VmFsaWQoIEFycmF5SW5kZXggaW5kZXggKTsKLQotICAgICAgVmFsdWUgKipwYWdlc187
Ci0gICAgICBBcnJheUluZGV4IHNpemVfOwotICAgICAgUGFnZUluZGV4IHBhZ2VDb3VudF87Ci0g
ICB9OwotCi0gICAvKiogXGJyaWVmIEV4cGVyaW1lbnRhbDogZG8gbm90IHVzZS4gQWxsb2NhdG9y
IHRvIGN1c3RvbWl6ZSBWYWx1ZSBpbnRlcm5hbCBhcnJheS4KLSAgICAqIEJlbG93IGlzIGFuIGV4
YW1wbGUgb2YgYSBzaW1wbGUgaW1wbGVtZW50YXRpb24gKGFjdHVhbCBpbXBsZW1lbnRhdGlvbiB1
c2UKLSAgICAqIG1lbW9yeSBwb29sKS4KLSAgICAgIFxjb2RlCi1jbGFzcyBEZWZhdWx0VmFsdWVB
cnJheUFsbG9jYXRvciA6IHB1YmxpYyBWYWx1ZUFycmF5QWxsb2NhdG9yCi17Ci1wdWJsaWM6IC8v
IG92ZXJyaWRkZW4gZnJvbSBWYWx1ZUFycmF5QWxsb2NhdG9yCi0gICB2aXJ0dWFsIH5EZWZhdWx0
VmFsdWVBcnJheUFsbG9jYXRvcigpCi0gICB7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRl
cm5hbEFycmF5ICpuZXdBcnJheSgpCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJu
YWxBcnJheSgpOwotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAqbmV3QXJy
YXlDb3B5KCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLSAgIHsKLSAgICAgIHJl
dHVybiBuZXcgVmFsdWVJbnRlcm5hbEFycmF5KCBvdGhlciApOwotICAgfQotCi0gICB2aXJ0dWFs
IHZvaWQgZGVzdHJ1Y3QoIFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXkgKQotICAgewotICAgICAg
ZGVsZXRlIGFycmF5OwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgcmVhbGxvY2F0ZUFycmF5UGFn
ZUluZGV4KCBWYWx1ZSAqKiZpbmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4ICZpbmRleENvdW50LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFy
cmF5OjpQYWdlSW5kZXggbWluTmV3SW5kZXhDb3VudCApCi0gICB7Ci0gICAgICBWYWx1ZUludGVy
bmFsQXJyYXk6OlBhZ2VJbmRleCBuZXdJbmRleENvdW50ID0gKGluZGV4Q291bnQqMykvMiArIDE7
Ci0gICAgICBpZiAoIG1pbk5ld0luZGV4Q291bnQgPiBuZXdJbmRleENvdW50ICkKLSAgICAgICAg
IG5ld0luZGV4Q291bnQgPSBtaW5OZXdJbmRleENvdW50OwotICAgICAgdm9pZCAqbmV3SW5kZXhl
cyA9IHJlYWxsb2MoIGluZGV4ZXMsIHNpemVvZihWYWx1ZSopICogbmV3SW5kZXhDb3VudCApOwot
ICAgICAgaWYgKCAhbmV3SW5kZXhlcyApCi0gICAgICAgICB0aHJvdyBzdGQ6OmJhZF9hbGxvYygp
OwotICAgICAgaW5kZXhDb3VudCA9IG5ld0luZGV4Q291bnQ7Ci0gICAgICBpbmRleGVzID0gc3Rh
dGljX2Nhc3Q8VmFsdWUgKio+KCBuZXdJbmRleGVzICk7Ci0gICB9Ci0gICB2aXJ0dWFsIHZvaWQg
cmVsZWFzZUFycmF5UGFnZUluZGV4KCBWYWx1ZSAqKmluZGV4ZXMsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggaW5k
ZXhDb3VudCApCi0gICB7Ci0gICAgICBpZiAoIGluZGV4ZXMgKQotICAgICAgICAgZnJlZSggaW5k
ZXhlcyApOwotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlICphbGxvY2F0ZUFycmF5UGFnZSgpCi0g
ICB7Ci0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmFsdWUgKj4oIG1hbGxvYyggc2l6ZW9mKFZh
bHVlKSAqIFZhbHVlSW50ZXJuYWxBcnJheTo6aXRlbXNQZXJQYWdlICkgKTsKLSAgIH0KLQotICAg
dmlydHVhbCB2b2lkIHJlbGVhc2VBcnJheVBhZ2UoIFZhbHVlICp2YWx1ZSApCi0gICB7Ci0gICAg
ICBpZiAoIHZhbHVlICkKLSAgICAgICAgIGZyZWUoIHZhbHVlICk7Ci0gICB9Ci19OwotICAgICAg
XGVuZGNvZGUKLSAgICAqLyAKLSAgIGNsYXNzIEpTT05fQVBJIFZhbHVlQXJyYXlBbGxvY2F0b3IK
LSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIHZpcnR1YWwgflZhbHVlQXJyYXlBbGxvY2F0b3IoKTsK
LSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheSgpID0gMDsKLSAgICAg
IHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheUNvcHkoIGNvbnN0IFZhbHVlSW50
ZXJuYWxBcnJheSAmb3RoZXIgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RBcnJh
eSggVmFsdWVJbnRlcm5hbEFycmF5ICphcnJheSApID0gMDsKLSAgICAgIC8qKiBcYnJpZWYgUmVh
bGxvY2F0ZSBhcnJheSBwYWdlIGluZGV4LgotICAgICAgICogUmVhbGxvY2F0ZXMgYW4gYXJyYXkg
b2YgcG9pbnRlciBvbiBlYWNoIHBhZ2UuCi0gICAgICAgKiBccGFyYW0gaW5kZXhlcyBbaW5wdXRd
IHBvaW50ZXIgb24gdGhlIGN1cnJlbnQgaW5kZXguIE1heSBiZSBcYyBOVUxMLgotICAgICAgICog
ICAgICAgICAgICAgICAgW291dHB1dF0gcG9pbnRlciBvbiB0aGUgbmV3IGluZGV4IG9mIGF0IGxl
YXN0IAotICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgXGEgbWluTmV3SW5kZXhDb3Vu
dCBwYWdlcy4gCi0gICAgICAgKiBccGFyYW0gaW5kZXhDb3VudCBbaW5wdXRdIGN1cnJlbnQgbnVt
YmVyIG9mIHBhZ2VzIGluIHRoZSBpbmRleC4KLSAgICAgICAqICAgICAgICAgICAgICAgICAgIFtv
dXRwdXRdIG51bWJlciBvZiBwYWdlIHRoZSByZWFsbG9jYXRlZCBpbmRleCBjYW4gaGFuZGxlLgot
ICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgXGIgTVVTVCBiZSA+PSBcYSBtaW5O
ZXdJbmRleENvdW50LgotICAgICAgICogXHBhcmFtIG1pbk5ld0luZGV4Q291bnQgTWluaW11bSBu
dW1iZXIgb2YgcGFnZSB0aGUgbmV3IGluZGV4IG11c3QgYmUgYWJsZSB0bwotICAgICAgICogICAg
ICAgICAgICAgICAgICAgICAgICAgaGFuZGxlLgotICAgICAgICovCi0gICAgICB2aXJ0dWFsIHZv
aWQgcmVhbGxvY2F0ZUFycmF5UGFnZUluZGV4KCBWYWx1ZSAqKiZpbmRleGVzLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6
UGFnZUluZGV4ICZpbmRleENvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggbWluTmV3SW5kZXhDb3Vu
dCApID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQXJyYXlQYWdlSW5kZXgoIFZhbHVl
ICoqaW5kZXhlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBpbmRleENvdW50ICkgPSAwOwotICAgICAgdmly
dHVhbCBWYWx1ZSAqYWxsb2NhdGVBcnJheVBhZ2UoKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQg
cmVsZWFzZUFycmF5UGFnZSggVmFsdWUgKnZhbHVlICkgPSAwOwotICAgfTsKLSNlbmRpZiAvLyAj
aWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0KLQotICAgLyoqIFxicmllZiBiYXNl
IGNsYXNzIGZvciBWYWx1ZSBpdGVyYXRvcnMuCi0gICAgKgotICAgICovCi0gICBjbGFzcyBWYWx1
ZUl0ZXJhdG9yQmFzZQotICAgewotICAgcHVibGljOgotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBp
bnQgc2l6ZV90OwotICAgICAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICAgICAgdHlw
ZWRlZiBWYWx1ZUl0ZXJhdG9yQmFzZSBTZWxmVHlwZTsKLQotICAgICAgVmFsdWVJdGVyYXRvckJh
c2UoKTsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICBleHBsaWNp
dCBWYWx1ZUl0ZXJhdG9yQmFzZSggY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3Ig
JmN1cnJlbnQgKTsKLSNlbHNlCi0gICAgICBWYWx1ZUl0ZXJhdG9yQmFzZSggY29uc3QgVmFsdWVJ
bnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlICZzdGF0ZSApOwotICAgICAgVmFsdWVJdGVyYXRv
ckJhc2UoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0j
ZW5kaWYKLQotICAgICAgYm9vbCBvcGVyYXRvciA9PSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkg
Y29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBpc0VxdWFsKCBvdGhlciApOwotICAgICAg
fQotCi0gICAgICBib29sIG9wZXJhdG9yICE9KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25z
dAotICAgICAgewotICAgICAgICAgcmV0dXJuICFpc0VxdWFsKCBvdGhlciApOwotICAgICAgfQot
Ci0gICAgICBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0b3IgLSggY29uc3QgU2VsZlR5cGUgJm90aGVy
ICkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBjb21wdXRlRGlzdGFuY2UoIG90aGVy
ICk7Ci0gICAgICB9Ci0KLSAgICAgIC8vLyBSZXR1cm4gZWl0aGVyIHRoZSBpbmRleCBvciB0aGUg
bWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgdmFsdWUgYXMgYSBWYWx1ZS4KLSAgICAgIFZh
bHVlIGtleSgpIGNvbnN0OwotCi0gICAgICAvLy8gUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgcmVm
ZXJlbmNlZCBWYWx1ZS4gLTEgaWYgaXQgaXMgbm90IGFuIGFycmF5VmFsdWUuCi0gICAgICBVSW50
IGluZGV4KCkgY29uc3Q7Ci0KLSAgICAgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRo
ZSByZWZlcmVuY2VkIFZhbHVlLiAiIiBpZiBpdCBpcyBub3QgYW4gb2JqZWN0VmFsdWUuCi0gICAg
ICBjb25zdCBjaGFyICptZW1iZXJOYW1lKCkgY29uc3Q7Ci0KLSAgIHByb3RlY3RlZDoKLSAgICAg
IFZhbHVlICZkZXJlZigpIGNvbnN0OwotCi0gICAgICB2b2lkIGluY3JlbWVudCgpOwotCi0gICAg
ICB2b2lkIGRlY3JlbWVudCgpOwotCi0gICAgICBkaWZmZXJlbmNlX3R5cGUgY29tcHV0ZURpc3Rh
bmNlKCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgYm9vbCBpc0VxdWFs
KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgdm9pZCBjb3B5KCBjb25z
dCBTZWxmVHlwZSAmb3RoZXIgKTsKLQotICAgcHJpdmF0ZToKLSNpZm5kZWYgSlNPTl9WQUxVRV9V
U0VfSU5URVJOQUxfTUFQCi0gICAgICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBjdXJy
ZW50XzsKLSAgICAgIC8vIEluZGljYXRlcyB0aGF0IGl0ZXJhdG9yIGlzIGZvciBhIG51bGwgdmFs
dWUuCi0gICAgICBib29sIGlzTnVsbF87Ci0jZWxzZQotICAgICAgdW5pb24KLSAgICAgIHsKLSAg
ICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSBhcnJheV87Ci0gICAgICAg
ICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIG1hcF87Ci0gICAgICB9IGl0ZXJhdG9y
XzsKLSAgICAgIGJvb2wgaXNBcnJheV87Ci0jZW5kaWYKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYg
Y29uc3QgaXRlcmF0b3IgZm9yIG9iamVjdCBhbmQgYXJyYXkgdmFsdWUuCi0gICAgKgotICAgICov
Ci0gICBjbGFzcyBWYWx1ZUNvbnN0SXRlcmF0b3IgOiBwdWJsaWMgVmFsdWVJdGVyYXRvckJhc2UK
LSAgIHsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKLSAgIHB1YmxpYzoKLSAgICAgIHR5cGVk
ZWYgdW5zaWduZWQgaW50IHNpemVfdDsKLSAgICAgIHR5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlw
ZTsKLSAgICAgIHR5cGVkZWYgY29uc3QgVmFsdWUgJnJlZmVyZW5jZTsKLSAgICAgIHR5cGVkZWYg
Y29uc3QgVmFsdWUgKnBvaW50ZXI7Ci0gICAgICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBT
ZWxmVHlwZTsKLQotICAgICAgVmFsdWVDb25zdEl0ZXJhdG9yKCk7Ci0gICBwcml2YXRlOgotICAg
ICAgLyohIFxpbnRlcm5hbCBVc2UgYnkgVmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgotICAg
ICAgICovCi0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgZXhwbGlj
aXQgVmFsdWVDb25zdEl0ZXJhdG9yKCBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRv
ciAmY3VycmVudCApOwotI2Vsc2UKLSAgICAgIFZhbHVlQ29uc3RJdGVyYXRvciggY29uc3QgVmFs
dWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlICZzdGF0ZSApOwotICAgICAgVmFsdWVDb25z
dEl0ZXJhdG9yKCBjb25zdCBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlICZzdGF0ZSAp
OwotI2VuZGlmCi0gICBwdWJsaWM6Ci0gICAgICBTZWxmVHlwZSAmb3BlcmF0b3IgPSggY29uc3Qg
VmFsdWVJdGVyYXRvckJhc2UgJm90aGVyICk7Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9yKyso
IGludCApCi0gICAgICB7Ci0gICAgICAgICBTZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAgICAg
ICAgKysqdGhpczsKLSAgICAgICAgIHJldHVybiB0ZW1wOwotICAgICAgfQotCi0gICAgICBTZWxm
VHlwZSBvcGVyYXRvci0tKCBpbnQgKQotICAgICAgewotICAgICAgICAgU2VsZlR5cGUgdGVtcCgg
KnRoaXMgKTsKLSAgICAgICAgIC0tKnRoaXM7Ci0gICAgICAgICByZXR1cm4gdGVtcDsKLSAgICAg
IH0KLQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9yLS0oKQotICAgICAgewotICAgICAgICAgZGVj
cmVtZW50KCk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZU
eXBlICZvcGVyYXRvcisrKCkKLSAgICAgIHsKLSAgICAgICAgIGluY3JlbWVudCgpOwotICAgICAg
ICAgcmV0dXJuICp0aGlzOwotICAgICAgfQotCi0gICAgICByZWZlcmVuY2Ugb3BlcmF0b3IgKigp
IGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gZGVyZWYoKTsKLSAgICAgIH0KLSAgIH07
Ci0KLQotICAgLyoqIFxicmllZiBJdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4K
LSAgICAqLwotICAgY2xhc3MgVmFsdWVJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9yQmFz
ZQotICAgewotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwotICAgcHVibGljOgotICAgICAgdHlw
ZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwotICAgICAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90
eXBlOwotICAgICAgdHlwZWRlZiBWYWx1ZSAmcmVmZXJlbmNlOwotICAgICAgdHlwZWRlZiBWYWx1
ZSAqcG9pbnRlcjsKLSAgICAgIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBTZWxmVHlwZTsKLQotICAg
ICAgVmFsdWVJdGVyYXRvcigpOwotICAgICAgVmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVDb25z
dEl0ZXJhdG9yICZvdGhlciApOwotICAgICAgVmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJdGVy
YXRvciAmb3RoZXIgKTsKLSAgIHByaXZhdGU6Ci0gICAgICAvKiEgXGludGVybmFsIFVzZSBieSBW
YWx1ZSB0byBjcmVhdGUgYW4gaXRlcmF0b3IuCi0gICAgICAgKi8KLSNpZm5kZWYgSlNPTl9WQUxV
RV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBW
YWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciAmY3VycmVudCApOwotI2Vsc2UKLSAgICAgIFZh
bHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSAmc3Rh
dGUgKTsKLSAgICAgIFZhbHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJh
dG9yU3RhdGUgJnN0YXRlICk7Ci0jZW5kaWYKLSAgIHB1YmxpYzoKLQotICAgICAgU2VsZlR5cGUg
Jm9wZXJhdG9yID0oIGNvbnN0IFNlbGZUeXBlICZvdGhlciApOwotCi0gICAgICBTZWxmVHlwZSBv
cGVyYXRvcisrKCBpbnQgKQotICAgICAgewotICAgICAgICAgU2VsZlR5cGUgdGVtcCggKnRoaXMg
KTsKLSAgICAgICAgICsrKnRoaXM7Ci0gICAgICAgICByZXR1cm4gdGVtcDsKLSAgICAgIH0KLQot
ICAgICAgU2VsZlR5cGUgb3BlcmF0b3ItLSggaW50ICkKLSAgICAgIHsKLSAgICAgICAgIFNlbGZU
eXBlIHRlbXAoICp0aGlzICk7Ci0gICAgICAgICAtLSp0aGlzOwotICAgICAgICAgcmV0dXJuIHRl
bXA7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlICZvcGVyYXRvci0tKCkKLSAgICAgIHsKLSAg
ICAgICAgIGRlY3JlbWVudCgpOwotICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgfQotCi0g
ICAgICBTZWxmVHlwZSAmb3BlcmF0b3IrKygpCi0gICAgICB7Ci0gICAgICAgICBpbmNyZW1lbnQo
KTsKLSAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgIH0KLQotICAgICAgcmVmZXJlbmNlIG9w
ZXJhdG9yICooKSBjb25zdAotICAgICAgewotICAgICAgICAgcmV0dXJuIGRlcmVmKCk7Ci0gICAg
ICB9Ci0gICB9OwotCi0KLX0gLy8gbmFtZXNwYWNlIEpzb24KLQotCi0jZW5kaWYgLy8gQ1BQVExf
SlNPTl9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29uX3Jl
YWRlci5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4Y2ZhZDcwNTEwYzJlODEwNzQ2ZGMyMzZlYjQ0MzUyNzk3
NjdkZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL292ZXJy
aWRlcy9zcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTIw
ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA3LTIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBE
aXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVk
IGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJ
Q0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5l
dC9MSUNFTlNFCi0KLSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVk
ZSA8anNvbi9hc3NlcnRpb25zLmg+Ci0jIGluY2x1ZGUgPGpzb24vcmVhZGVyLmg+Ci0jIGluY2x1
ZGUgPGpzb24vdmFsdWUuaD4KLSMgaW5jbHVkZSAianNvbl90b29sLmgiCi0jZW5kaWYgLy8gaWYg
IWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNs
dWRlIDxjc3RkaW8+Ci0jaW5jbHVkZSA8Y2Fzc2VydD4KLSNpbmNsdWRlIDxjc3RyaW5nPgotI2lu
Y2x1ZGUgPHN0ZGV4Y2VwdD4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0jaW5jbHVkZSA8aXN0cmVhbT4K
LQotI2lmIF9NU0NfVkVSID49IDE0MDAgLy8gVkMrKyA4LjAKLSNwcmFnbWEgd2FybmluZyggZGlz
YWJsZSA6IDQ5OTYgKSAgIC8vIGRpc2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVw
cmVjYXRlZC4KLSNlbmRpZgotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIEltcGxlbWVudGF0aW9u
IG9mIGNsYXNzIEZlYXR1cmVzCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ci1GZWF0dXJlczo6RmVhdHVyZXMoKQotICAgOiBhbGxvd0NvbW1lbnRzXyggdHJ1ZSApCi0gICAs
IHN0cmljdFJvb3RfKCBmYWxzZSApCi17Ci19Ci0KLQotRmVhdHVyZXMgCi1GZWF0dXJlczo6YWxs
KCkKLXsKLSAgIHJldHVybiBGZWF0dXJlcygpOwotfQotCi0KLUZlYXR1cmVzIAotRmVhdHVyZXM6
OnN0cmljdE1vZGUoKQotewotICAgRmVhdHVyZXMgZmVhdHVyZXM7Ci0gICBmZWF0dXJlcy5hbGxv
d0NvbW1lbnRzXyA9IGZhbHNlOwotICAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSB0cnVlOwotICAg
cmV0dXJuIGZlYXR1cmVzOwotfQotCi0vLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIK
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotc3RhdGljIGlubGluZSBi
b29sIAotaW4oIFJlYWRlcjo6Q2hhciBjLCBSZWFkZXI6OkNoYXIgYzEsIFJlYWRlcjo6Q2hhciBj
MiwgUmVhZGVyOjpDaGFyIGMzLCBSZWFkZXI6OkNoYXIgYzQgKQotewotICAgcmV0dXJuIGMgPT0g
YzEgIHx8ICBjID09IGMyICB8fCAgYyA9PSBjMyAgfHwgIGMgPT0gYzQ7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgYm9vbCAKLWluKCBSZWFkZXI6OkNoYXIgYywgUmVhZGVyOjpDaGFyIGMxLCBSZWFkZXI6
OkNoYXIgYzIsIFJlYWRlcjo6Q2hhciBjMywgUmVhZGVyOjpDaGFyIGM0LCBSZWFkZXI6OkNoYXIg
YzUgKQotewotICAgcmV0dXJuIGMgPT0gYzEgIHx8ICBjID09IGMyICB8fCAgYyA9PSBjMyAgfHwg
IGMgPT0gYzQgIHx8ICBjID09IGM1OwotfQotCi0KLXN0YXRpYyBib29sIAotY29udGFpbnNOZXdM
aW5lKCBSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCAKLSAgICAgICAgICAgICAgICAgUmVhZGVyOjpM
b2NhdGlvbiBlbmQgKQotewotICAgZm9yICggO2JlZ2luIDwgZW5kOyArK2JlZ2luICkKLSAgICAg
IGlmICggKmJlZ2luID09ICdcbicgIHx8ICAqYmVnaW4gPT0gJ1xyJyApCi0gICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgIHJldHVybiBmYWxzZTsKLX0KLQotCi0vLyBDbGFzcyBSZWFkZXIKLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotCi1SZWFkZXI6OlJlYWRlcigpCi0gICAgOiBlcnJvcnNfKCksCi0gICAgICBkb2N1
bWVudF8oKSwKLSAgICAgIGJlZ2luXygpLAotICAgICAgZW5kXygpLAotICAgICAgY3VycmVudF8o
KSwKLSAgICAgIGxhc3RWYWx1ZUVuZF8oKSwKLSAgICAgIGxhc3RWYWx1ZV8oKSwKLSAgICAgIGNv
bW1lbnRzQmVmb3JlXygpLAotICAgICAgZmVhdHVyZXNfKCBGZWF0dXJlczo6YWxsKCkgKSwKLSAg
ICAgIGNvbGxlY3RDb21tZW50c18oKQotewotfQotCi0KLVJlYWRlcjo6UmVhZGVyKCBjb25zdCBG
ZWF0dXJlcyAmZmVhdHVyZXMgKQotICAgIDogZXJyb3JzXygpLAotICAgICAgZG9jdW1lbnRfKCks
Ci0gICAgICBiZWdpbl8oKSwKLSAgICAgIGVuZF8oKSwKLSAgICAgIGN1cnJlbnRfKCksCi0gICAg
ICBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksCi0gICAgICBjb21tZW50c0Jl
Zm9yZV8oKSwKLSAgICAgIGZlYXR1cmVzXyggZmVhdHVyZXMgKSwKLSAgICAgIGNvbGxlY3RDb21t
ZW50c18oKQotewotfQotCi0KLWJvb2wKLVJlYWRlcjo6cGFyc2UoIGNvbnN0IHN0ZDo6c3RyaW5n
ICZkb2N1bWVudCwgCi0gICAgICAgICAgICAgICBWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAg
IGJvb2wgY29sbGVjdENvbW1lbnRzICkKLXsKLSAgIGRvY3VtZW50XyA9IGRvY3VtZW50OwotICAg
Y29uc3QgY2hhciAqYmVnaW4gPSBkb2N1bWVudF8uY19zdHIoKTsKLSAgIGNvbnN0IGNoYXIgKmVu
ZCA9IGJlZ2luICsgZG9jdW1lbnRfLmxlbmd0aCgpOwotICAgcmV0dXJuIHBhcnNlKCBiZWdpbiwg
ZW5kLCByb290LCBjb2xsZWN0Q29tbWVudHMgKTsKLX0KLQotCi1ib29sCi1SZWFkZXI6OnBhcnNl
KCBzdGQ6OmlzdHJlYW0mIHNpbiwKLSAgICAgICAgICAgICAgIFZhbHVlICZyb290LAotICAgICAg
ICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgKQotewotICAgLy9zdGQ6OmlzdHJlYW1faXRl
cmF0b3I8Y2hhcj4gYmVnaW4oc2luKTsKLSAgIC8vc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+
IGVuZDsKLSAgIC8vIFRob3NlIHdvdWxkIGFsbG93IHN0cmVhbWVkIGlucHV0IGZyb20gYSBmaWxl
LCBpZiBwYXJzZSgpIHdlcmUgYQotICAgLy8gdGVtcGxhdGUgZnVuY3Rpb24uCi0KLSAgIC8vIFNp
bmNlIHN0ZDo6c3RyaW5nIGlzIHJlZmVyZW5jZS1jb3VudGVkLCB0aGlzIGF0IGxlYXN0IGRvZXMg
bm90Ci0gICAvLyBjcmVhdGUgYW4gZXh0cmEgY29weS4KLSAgIHN0ZDo6c3RyaW5nIGRvYzsKLSAg
IHN0ZDo6Z2V0bGluZShzaW4sIGRvYywgKGNoYXIpRU9GKTsKLSAgIHJldHVybiBwYXJzZSggZG9j
LCByb290LCBjb2xsZWN0Q29tbWVudHMgKTsKLX0KLQotYm9vbCAKLVJlYWRlcjo6cGFyc2UoIGNv
bnN0IGNoYXIgKmJlZ2luRG9jLCBjb25zdCBjaGFyICplbmREb2MsIAotICAgICAgICAgICAgICAg
VmFsdWUgJnJvb3QsCi0gICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyApCi17Ci0g
ICBpZiAoICFmZWF0dXJlc18uYWxsb3dDb21tZW50c18gKQotICAgewotICAgICAgY29sbGVjdENv
bW1lbnRzID0gZmFsc2U7Ci0gICB9Ci0KLSAgIGJlZ2luXyA9IGJlZ2luRG9jOwotICAgZW5kXyA9
IGVuZERvYzsKLSAgIGNvbGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7Ci0gICBjdXJy
ZW50XyA9IGJlZ2luXzsKLSAgIGxhc3RWYWx1ZUVuZF8gPSAwOwotICAgbGFzdFZhbHVlXyA9IDA7
Ci0gICBjb21tZW50c0JlZm9yZV8gPSAiIjsKLSAgIGVycm9yc18uY2xlYXIoKTsKLSAgIHdoaWxl
ICggIW5vZGVzXy5lbXB0eSgpICkKLSAgICAgIG5vZGVzXy5wb3AoKTsKLSAgIG5vZGVzXy5wdXNo
KCAmcm9vdCApOwotICAgCi0gICBib29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFsdWUoKTsKLSAgIFRv
a2VuIHRva2VuOwotICAgc2tpcENvbW1lbnRUb2tlbnMoIHRva2VuICk7Ci0gICBpZiAoIGNvbGxl
Y3RDb21tZW50c18gICYmICAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkgKQotICAgICAgcm9vdC5z
ZXRDb21tZW50KCBjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlciApOwotICAgaWYgKCBmZWF0
dXJlc18uc3RyaWN0Um9vdF8gKQotICAgewotICAgICAgaWYgKCAhcm9vdC5pc0FycmF5KCkgICYm
ICAhcm9vdC5pc09iamVjdCgpICkKLSAgICAgIHsKLSAgICAgICAgIC8vIFNldCBlcnJvciBsb2Nh
dGlvbiB0byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5k
IGluIGRvYwotICAgICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOwotICAgICAgICAgdG9r
ZW4uc3RhcnRfID0gYmVnaW5Eb2M7Ci0gICAgICAgICB0b2tlbi5lbmRfID0gZW5kRG9jOwotICAg
ICAgICAgYWRkRXJyb3IoICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4g
YXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCi0gICAgICAgICAgICAgICAgICAgdG9rZW4gKTsK
LSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgIH0KLSAgIHJldHVybiBzdWNjZXNz
ZnVsOwotfQotCi0KLWJvb2wKLVJlYWRlcjo6cmVhZFZhbHVlKCkKLXsKLSAgIFRva2VuIHRva2Vu
OwotICAgc2tpcENvbW1lbnRUb2tlbnMoIHRva2VuICk7Ci0gICBib29sIHN1Y2Nlc3NmdWwgPSB0
cnVlOwotCi0gICBpZiAoIGNvbGxlY3RDb21tZW50c18gICYmICAhY29tbWVudHNCZWZvcmVfLmVt
cHR5KCkgKQotICAgewotICAgICAgY3VycmVudFZhbHVlKCkuc2V0Q29tbWVudCggY29tbWVudHNC
ZWZvcmVfLCBjb21tZW50QmVmb3JlICk7Ci0gICAgICBjb21tZW50c0JlZm9yZV8gPSAiIjsKLSAg
IH0KLQotCi0gICBzd2l0Y2ggKCB0b2tlbi50eXBlXyApCi0gICB7Ci0gICBjYXNlIHRva2VuT2Jq
ZWN0QmVnaW46Ci0gICAgICBzdWNjZXNzZnVsID0gcmVhZE9iamVjdCggdG9rZW4gKTsKLSAgICAg
IGJyZWFrOwotICAgY2FzZSB0b2tlbkFycmF5QmVnaW46Ci0gICAgICBzdWNjZXNzZnVsID0gcmVh
ZEFycmF5KCB0b2tlbiApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuTnVtYmVyOgotICAg
ICAgc3VjY2Vzc2Z1bCA9IGRlY29kZU51bWJlciggdG9rZW4gKTsKLSAgICAgIGJyZWFrOwotICAg
Y2FzZSB0b2tlblN0cmluZzoKLSAgICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcoIHRva2Vu
ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgdG9rZW5UcnVlOgotICAgICAgY3VycmVudFZhbHVl
KCkgPSB0cnVlOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuRmFsc2U6Ci0gICAgICBjdXJy
ZW50VmFsdWUoKSA9IGZhbHNlOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuTnVsbDoKLSAg
ICAgIGN1cnJlbnRWYWx1ZSgpID0gVmFsdWUoKTsKLSAgICAgIGJyZWFrOwotICAgZGVmYXVsdDoK
LSAgICAgIHJldHVybiBhZGRFcnJvciggIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBh
cnJheSBleHBlY3RlZC4iLCB0b2tlbiApOwotICAgfQotCi0gICBpZiAoIGNvbGxlY3RDb21tZW50
c18gKQotICAgewotICAgICAgbGFzdFZhbHVlRW5kXyA9IGN1cnJlbnRfOwotICAgICAgbGFzdFZh
bHVlXyA9ICZjdXJyZW50VmFsdWUoKTsKLSAgIH0KLQotICAgcmV0dXJuIHN1Y2Nlc3NmdWw7Ci19
Ci0KLQotdm9pZCAKLVJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoIFRva2VuICZ0b2tlbiApCi17
Ci0gICBpZiAoIGZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXyApCi0gICB7Ci0gICAgICBkbwotICAg
ICAgewotICAgICAgICAgcmVhZFRva2VuKCB0b2tlbiApOwotICAgICAgfQotICAgICAgd2hpbGUg
KCB0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQgKTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAg
ICAgIHJlYWRUb2tlbiggdG9rZW4gKTsKLSAgIH0KLX0KLQotCi1ib29sIAotUmVhZGVyOjpleHBl
Y3RUb2tlbiggVG9rZW5UeXBlIHR5cGUsIFRva2VuICZ0b2tlbiwgY29uc3QgY2hhciAqbWVzc2Fn
ZSApCi17Ci0gICByZWFkVG9rZW4oIHRva2VuICk7Ci0gICBpZiAoIHRva2VuLnR5cGVfICE9IHR5
cGUgKQotICAgICAgcmV0dXJuIGFkZEVycm9yKCBtZXNzYWdlLCB0b2tlbiApOwotICAgcmV0dXJu
IHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6cmVhZFRva2VuKCBUb2tlbiAmdG9rZW4gKQot
ewotICAgc2tpcFNwYWNlcygpOwotICAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87Ci0gICBDaGFy
IGMgPSBnZXROZXh0Q2hhcigpOwotICAgYm9vbCBvayA9IHRydWU7Ci0gICBzd2l0Y2ggKCBjICkK
LSAgIHsKLSAgIGNhc2UgJ3snOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2lu
OwotICAgICAgYnJlYWs7Ci0gICBjYXNlICd9JzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5P
YmplY3RFbmQ7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJ1snOgotICAgICAgdG9rZW4udHlwZV8g
PSB0b2tlbkFycmF5QmVnaW47Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJ10nOgotICAgICAgdG9r
ZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOwotICAgICAgYnJlYWs7Ci0gICBjYXNlICciJzoKLSAg
ICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7Ci0gICAgICBvayA9IHJlYWRTdHJpbmcoKTsK
LSAgICAgIGJyZWFrOwotICAgY2FzZSAnLyc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29t
bWVudDsKLSAgICAgIG9rID0gcmVhZENvbW1lbnQoKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAn
MCc6Ci0gICBjYXNlICcxJzoKLSAgIGNhc2UgJzInOgotICAgY2FzZSAnMyc6Ci0gICBjYXNlICc0
JzoKLSAgIGNhc2UgJzUnOgotICAgY2FzZSAnNic6Ci0gICBjYXNlICc3JzoKLSAgIGNhc2UgJzgn
OgotICAgY2FzZSAnOSc6Ci0gICBjYXNlICctJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5O
dW1iZXI7Ci0gICAgICByZWFkTnVtYmVyKCk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJ3QnOgot
ICAgICAgdG9rZW4udHlwZV8gPSB0b2tlblRydWU7Ci0gICAgICBvayA9IG1hdGNoKCAicnVlIiwg
MyApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlICdmJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5GYWxzZTsKLSAgICAgIG9rID0gbWF0Y2goICJhbHNlIiwgNCApOwotICAgICAgYnJlYWs7Ci0g
ICBjYXNlICduJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdWxsOwotICAgICAgb2sgPSBt
YXRjaCggInVsbCIsIDMgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAnLCc6Ci0gICAgICB0b2tl
bi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJzon
OgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk1lbWJlclNlcGFyYXRvcjsKLSAgICAgIGJyZWFr
OwotICAgY2FzZSAwOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOwotICAg
ICAgYnJlYWs7Ci0gICBkZWZhdWx0OgotICAgICAgb2sgPSBmYWxzZTsKLSAgICAgIGJyZWFrOwot
ICAgfQotICAgaWYgKCAhb2sgKQotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOwotICAg
dG9rZW4uZW5kXyA9IGN1cnJlbnRfOwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotdm9pZCAKLVJl
YWRlcjo6c2tpcFNwYWNlcygpCi17Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVuZF8gKQotICAg
ewotICAgICAgQ2hhciBjID0gKmN1cnJlbnRfOwotICAgICAgaWYgKCBjID09ICcgJyAgfHwgIGMg
PT0gJ1x0JyAgfHwgIGMgPT0gJ1xyJyAgfHwgIGMgPT0gJ1xuJyApCi0gICAgICAgICArK2N1cnJl
bnRfOwotICAgICAgZWxzZQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci19Ci0KLQotYm9vbCAKLVJl
YWRlcjo6bWF0Y2goIExvY2F0aW9uIHBhdHRlcm4sIAotICAgICAgICAgICAgICAgaW50IHBhdHRl
cm5MZW5ndGggKQotewotICAgaWYgKCBlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoICkK
LSAgICAgIHJldHVybiBmYWxzZTsKLSAgIGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7Ci0gICB3
aGlsZSAoIGluZGV4LS0gKQotICAgICAgaWYgKCBjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltp
bmRleF0gKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgY3VycmVudF8gKz0gcGF0dGVybkxl
bmd0aDsKLSAgIHJldHVybiB0cnVlOwotfQotCi0KLWJvb2wKLVJlYWRlcjo6cmVhZENvbW1lbnQo
KQotewotICAgTG9jYXRpb24gY29tbWVudEJlZ2luID0gY3VycmVudF8gLSAxOwotICAgQ2hhciBj
ID0gZ2V0TmV4dENoYXIoKTsKLSAgIGJvb2wgc3VjY2Vzc2Z1bCA9IGZhbHNlOwotICAgaWYgKCBj
ID09ICcqJyApCi0gICAgICBzdWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKLSAgIGVs
c2UgaWYgKCBjID09ICcvJyApCi0gICAgICBzdWNjZXNzZnVsID0gcmVhZENwcFN0eWxlQ29tbWVu
dCgpOwotICAgaWYgKCAhc3VjY2Vzc2Z1bCApCi0gICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgIGlm
ICggY29sbGVjdENvbW1lbnRzXyApCi0gICB7Ci0gICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCA9IGNvbW1lbnRCZWZvcmU7Ci0gICAgICBpZiAoIGxhc3RWYWx1ZUVuZF8gICYmICAhY29u
dGFpbnNOZXdMaW5lKCBsYXN0VmFsdWVFbmRfLCBjb21tZW50QmVnaW4gKSApCi0gICAgICB7Ci0g
ICAgICAgICBpZiAoIGMgIT0gJyonICB8fCAgIWNvbnRhaW5zTmV3TGluZSggY29tbWVudEJlZ2lu
LCBjdXJyZW50XyApICkKLSAgICAgICAgICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2Ft
ZUxpbmU7Ci0gICAgICB9Ci0KLSAgICAgIGFkZENvbW1lbnQoIGNvbW1lbnRCZWdpbiwgY3VycmVu
dF8sIHBsYWNlbWVudCApOwotICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotdm9pZCAKLVJl
YWRlcjo6YWRkQ29tbWVudCggTG9jYXRpb24gYmVnaW4sIAotICAgICAgICAgICAgICAgICAgICBM
b2NhdGlvbiBlbmQsIAotICAgICAgICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCApCi17Ci0gICBhc3NlcnQoIGNvbGxlY3RDb21tZW50c18gKTsKLSAgIGlmICggcGxhY2Vt
ZW50ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUgKQotICAgewotICAgICAgYXNzZXJ0KCBsYXN0
VmFsdWVfICE9IDAgKTsKLSAgICAgIGxhc3RWYWx1ZV8tPnNldENvbW1lbnQoIHN0ZDo6c3RyaW5n
KCBiZWdpbiwgZW5kICksIHBsYWNlbWVudCApOwotICAgfQotICAgZWxzZQotICAgewotICAgICAg
aWYgKCAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkgKQotICAgICAgICAgY29tbWVudHNCZWZvcmVf
ICs9ICJcbiI7Ci0gICAgICBjb21tZW50c0JlZm9yZV8gKz0gc3RkOjpzdHJpbmcoIGJlZ2luLCBl
bmQgKTsKLSAgIH0KLX0KLQotCi1ib29sIAotUmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCgpCi17
Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVuZF8gKQotICAgewotICAgICAgQ2hhciBjID0gZ2V0
TmV4dENoYXIoKTsKLSAgICAgIGlmICggYyA9PSAnKicgICYmICAqY3VycmVudF8gPT0gJy8nICkK
LSAgICAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIGdldE5leHRDaGFyKCkgPT0gJy8nOwot
fQotCi0KLWJvb2wgCi1SZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQoKQotewotICAgd2hpbGUg
KCBjdXJyZW50XyAhPSBlbmRfICkKLSAgIHsKLSAgICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7
Ci0gICAgICBpZiAoICBjID09ICdccicgIHx8ICBjID09ICdcbicgKQotICAgICAgICAgYnJlYWs7
Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi12b2lkIAotUmVhZGVyOjpyZWFkTnVtYmVy
KCkKLXsKLSAgIHdoaWxlICggY3VycmVudF8gIT0gZW5kXyApCi0gICB7Ci0gICAgICBpZiAoICEo
KmN1cnJlbnRfID49ICcwJyAgJiYgICpjdXJyZW50XyA8PSAnOScpICAmJgotICAgICAgICAgICAh
aW4oICpjdXJyZW50XywgJy4nLCAnZScsICdFJywgJysnLCAnLScgKSApCi0gICAgICAgICBicmVh
azsKLSAgICAgICsrY3VycmVudF87Ci0gICB9Ci19Ci0KLWJvb2wKLVJlYWRlcjo6cmVhZFN0cmlu
ZygpCi17Ci0gICBDaGFyIGMgPSAwOwotICAgd2hpbGUgKCBjdXJyZW50XyAhPSBlbmRfICkKLSAg
IHsKLSAgICAgIGMgPSBnZXROZXh0Q2hhcigpOwotICAgICAgaWYgKCBjID09ICdcXCcgKQotICAg
ICAgICAgZ2V0TmV4dENoYXIoKTsKLSAgICAgIGVsc2UgaWYgKCBjID09ICciJyApCi0gICAgICAg
ICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBjID09ICciJzsKLX0KLQotCi1ib29sIAotUmVhZGVy
OjpyZWFkT2JqZWN0KCBUb2tlbiAmLyp0b2tlblN0YXJ0Ki8gKQotewotICAgVG9rZW4gdG9rZW5O
YW1lOwotICAgc3RkOjpzdHJpbmcgbmFtZTsKLSAgIGN1cnJlbnRWYWx1ZSgpID0gVmFsdWUoIG9i
amVjdFZhbHVlICk7Ci0gICB3aGlsZSAoIHJlYWRUb2tlbiggdG9rZW5OYW1lICkgKQotICAgewot
ICAgICAgYm9vbCBpbml0aWFsVG9rZW5PayA9IHRydWU7Ci0gICAgICB3aGlsZSAoIHRva2VuTmFt
ZS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgICYmICBpbml0aWFsVG9rZW5PayApCi0gICAgICAgICBp
bml0aWFsVG9rZW5PayA9IHJlYWRUb2tlbiggdG9rZW5OYW1lICk7Ci0gICAgICBpZiAgKCAhaW5p
dGlhbFRva2VuT2sgKQotICAgICAgICAgYnJlYWs7Ci0gICAgICBpZiAoIHRva2VuTmFtZS50eXBl
XyA9PSB0b2tlbk9iamVjdEVuZCAgJiYgIG5hbWUuZW1wdHkoKSApICAvLyBlbXB0eSBvYmplY3QK
LSAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgaWYgKCB0b2tlbk5hbWUudHlwZV8gIT0gdG9r
ZW5TdHJpbmcgKQotICAgICAgICAgYnJlYWs7Ci0gICAgICAKLSAgICAgIG5hbWUgPSAiIjsKLSAg
ICAgIGlmICggIWRlY29kZVN0cmluZyggdG9rZW5OYW1lLCBuYW1lICkgKQotICAgICAgICAgcmV0
dXJuIHJlY292ZXJGcm9tRXJyb3IoIHRva2VuT2JqZWN0RW5kICk7Ci0KLSAgICAgIFRva2VuIGNv
bG9uOwotICAgICAgaWYgKCAhcmVhZFRva2VuKCBjb2xvbiApIHx8ICBjb2xvbi50eXBlXyAhPSB0
b2tlbk1lbWJlclNlcGFyYXRvciApCi0gICAgICB7Ci0gICAgICAgICByZXR1cm4gYWRkRXJyb3JB
bmRSZWNvdmVyKCAiTWlzc2luZyAnOicgYWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvbiwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0b2tlbk9iamVjdEVuZCApOwotICAgICAgfQotICAgICAgVmFs
dWUgJnZhbHVlID0gY3VycmVudFZhbHVlKClbIG5hbWUgXTsKLSAgICAgIG5vZGVzXy5wdXNoKCAm
dmFsdWUgKTsKLSAgICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKLSAgICAgIG5vZGVzXy5wb3Ao
KTsKLSAgICAgIGlmICggIW9rICkgLy8gZXJyb3IgYWxyZWFkeSBzZXQKLSAgICAgICAgIHJldHVy
biByZWNvdmVyRnJvbUVycm9yKCB0b2tlbk9iamVjdEVuZCApOwotCi0gICAgICBUb2tlbiBjb21t
YTsKLSAgICAgIGlmICggIXJlYWRUb2tlbiggY29tbWEgKQotICAgICAgICAgICAgfHwgICggY29t
bWEudHlwZV8gIT0gdG9rZW5PYmplY3RFbmQgICYmICAKLSAgICAgICAgICAgICAgICAgIGNvbW1h
LnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYKLSAgICAgICAgICAgICAgICAgIGNvbW1h
LnR5cGVfICE9IHRva2VuQ29tbWVudCApICkKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBhZGRF
cnJvckFuZFJlY292ZXIoICJNaXNzaW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9u
IiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbk9iamVjdEVuZCApOwotICAgICAgfQot
ICAgICAgYm9vbCBmaW5hbGl6ZVRva2VuT2sgPSB0cnVlOwotICAgICAgd2hpbGUgKCBjb21tYS50
eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYKLSAgICAgICAgICAgICAgZmluYWxpemVUb2tlbk9rICkK
LSAgICAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRUb2tlbiggY29tbWEgKTsKLSAgICAgIGlm
ICggY29tbWEudHlwZV8gPT0gdG9rZW5PYmplY3RFbmQgKQotICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICB9Ci0gICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCAiTWlzc2luZyAnfScgb3Igb2Jq
ZWN0IG1lbWJlciBuYW1lIiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbk5h
bWUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5PYmplY3RFbmQgKTsKLX0K
LQotCi1ib29sIAotUmVhZGVyOjpyZWFkQXJyYXkoIFRva2VuICYvKnRva2VuU3RhcnQqLyApCi17
Ci0gICBjdXJyZW50VmFsdWUoKSA9IFZhbHVlKCBhcnJheVZhbHVlICk7Ci0gICBza2lwU3BhY2Vz
KCk7Ci0gICBpZiAoICpjdXJyZW50XyA9PSAnXScgKSAvLyBlbXB0eSBhcnJheQotICAgewotICAg
ICAgVG9rZW4gZW5kQXJyYXk7Ci0gICAgICByZWFkVG9rZW4oIGVuZEFycmF5ICk7Ci0gICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgIH0KLSAgIGludCBpbmRleCA9IDA7Ci0gICBmb3IgKDs7KQotICAgewot
ICAgICAgVmFsdWUgJnZhbHVlID0gY3VycmVudFZhbHVlKClbIGluZGV4KysgXTsKLSAgICAgIG5v
ZGVzXy5wdXNoKCAmdmFsdWUgKTsKLSAgICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKLSAgICAg
IG5vZGVzXy5wb3AoKTsKLSAgICAgIGlmICggIW9rICkgLy8gZXJyb3IgYWxyZWFkeSBzZXQKLSAg
ICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKCB0b2tlbkFycmF5RW5kICk7Ci0KLSAgICAg
IFRva2VuIHRva2VuOwotICAgICAgLy8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGlu
IHRoZSBhcnJheS4KLSAgICAgIG9rID0gcmVhZFRva2VuKCB0b2tlbiApOwotICAgICAgd2hpbGUg
KCB0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQgICYmICBvayApCi0gICAgICB7Ci0gICAgICAg
ICBvayA9IHJlYWRUb2tlbiggdG9rZW4gKTsKLSAgICAgIH0KLSAgICAgIGJvb2wgYmFkVG9rZW5U
eXBlID0gKCB0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICAmJgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlFbmQgKTsKLSAgICAg
IGlmICggIW9rICB8fCAgYmFkVG9rZW5UeXBlICkKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBh
ZGRFcnJvckFuZFJlY292ZXIoICJNaXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkgZGVjbGFyYXRp
b24iLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuQXJyYXlFbmQgKTsKLSAgICAgIH0K
LSAgICAgIGlmICggdG9rZW4udHlwZV8gPT0gdG9rZW5BcnJheUVuZCApCi0gICAgICAgICBicmVh
azsKLSAgIH0KLSAgIHJldHVybiB0cnVlOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OmRlY29kZU51
bWJlciggVG9rZW4gJnRva2VuICkKLXsKLSAgIGJvb2wgaXNEb3VibGUgPSBmYWxzZTsKLSAgIGZv
ciAoIExvY2F0aW9uIGluc3BlY3QgPSB0b2tlbi5zdGFydF87IGluc3BlY3QgIT0gdG9rZW4uZW5k
XzsgKytpbnNwZWN0ICkKLSAgIHsKLSAgICAgIGlzRG91YmxlID0gaXNEb3VibGUgIAotICAgICAg
ICAgICAgICAgICB8fCAgaW4oICppbnNwZWN0LCAnLicsICdlJywgJ0UnLCAnKycgKSAgCi0gICAg
ICAgICAgICAgICAgIHx8ICAoICppbnNwZWN0ID09ICctJyAgJiYgIGluc3BlY3QgIT0gdG9rZW4u
c3RhcnRfICk7Ci0gICB9Ci0gICBpZiAoIGlzRG91YmxlICkKLSAgICAgIHJldHVybiBkZWNvZGVE
b3VibGUoIHRva2VuICk7Ci0gICAvLyBBdHRlbXB0cyB0byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFu
IGludGVnZXIuIElmIHRoZSBudW1iZXIgaXMKLSAgIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVt
IHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBpbnRlZ2VyIHRoZW4KLSAgIC8vIHdlIGRlY29kZSB0aGUg
bnVtYmVyIGFzIGEgZG91YmxlLgotICAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XzsK
LSAgIGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJyZW50ID09ICctJzsKLSAgIGlmICggaXNOZWdhdGl2
ZSApCi0gICAgICArK2N1cnJlbnQ7Ci0gICBWYWx1ZTo6TGFyZ2VzdFVJbnQgbWF4SW50ZWdlclZh
bHVlID0gaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJnZXN0VUludCgtVmFsdWU6Om1pbkxhcmdlc3RJ
bnQpIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OiBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQ7Ci0gICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xk
ID0gbWF4SW50ZWdlclZhbHVlIC8gMTA7Ci0gICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAw
OwotICAgd2hpbGUgKCBjdXJyZW50IDwgdG9rZW4uZW5kXyApCi0gICB7Ci0gICAgICBDaGFyIGMg
PSAqY3VycmVudCsrOwotICAgICAgaWYgKCBjIDwgJzAnICB8fCAgYyA+ICc5JyApCi0gICAgICAg
ICByZXR1cm4gYWRkRXJyb3IoICInIiArIHN0ZDo6c3RyaW5nKCB0b2tlbi5zdGFydF8sIHRva2Vu
LmVuZF8gKSArICInIGlzIG5vdCBhIG51bWJlci4iLCB0b2tlbiApOwotICAgICAgVmFsdWU6OlVJ
bnQgZGlnaXQoYyAtICcwJyk7Ci0gICAgICBpZiAoIHZhbHVlID49IHRocmVzaG9sZCApCi0gICAg
ICB7Ci0gICAgICAgICAvLyBXZSd2ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1heCB2YWx1ZSBkaXZp
ZGVkIGJ5IDEwIChyb3VuZGVkIGRvd24pLiBJZgotICAgICAgICAgLy8gYSkgd2UndmUgb25seSBq
dXN0IHRvdWNoZWQgdGhlIGxpbWl0LCBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0LCBhbmQKLSAg
ICAgICAgIC8vIGMpIGl0J3Mgc21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5kaW5nIGRl
bHRhLCB3ZSdyZSBva2F5LgotICAgICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVtYmVy
IGFzIGEgZG91YmxlIHRvIGF2b2lkIG92ZXJmbG93LgotICAgICAgICAgaWYgKHZhbHVlID4gdGhy
ZXNob2xkIHx8Ci0gICAgICAgICAgICAgY3VycmVudCAhPSB0b2tlbi5lbmRfIHx8Ci0gICAgICAg
ICAgICAgZGlnaXQgPiBtYXhJbnRlZ2VyVmFsdWUgJSAxMCkKLSAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBkZWNvZGVEb3VibGUoIHRva2VuICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0g
ICAgICB2YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsKLSAgIH0KLSAgIGlmICggaXNOZWdhdGl2
ZSApCi0gICAgICBjdXJyZW50VmFsdWUoKSA9IC1WYWx1ZTo6TGFyZ2VzdEludCggdmFsdWUgKTsK
LSAgIGVsc2UgaWYgKCB2YWx1ZSA8PSBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1heEludCkg
KQotICAgICAgY3VycmVudFZhbHVlKCkgPSBWYWx1ZTo6TGFyZ2VzdEludCggdmFsdWUgKTsKLSAg
IGVsc2UKLSAgICAgIGN1cnJlbnRWYWx1ZSgpID0gdmFsdWU7Ci0gICByZXR1cm4gdHJ1ZTsKLX0K
LQotCi1ib29sIAotUmVhZGVyOjpkZWNvZGVEb3VibGUoIFRva2VuICZ0b2tlbiApCi17Ci0gICBk
b3VibGUgdmFsdWUgPSAwOwotICAgY29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKLSAgIGludCBj
b3VudDsKLSAgIGludCBsZW5ndGggPSBpbnQodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0Xyk7Ci0K
LSAgIC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCBidWZmZXIgb3ZlcmZsb3cgZXhwbG9pdHMuCi0g
ICBpZiAobGVuZ3RoIDwgMCkgewotICAgICAgcmV0dXJuIGFkZEVycm9yKCAiVW5hYmxlIHRvIHBh
cnNlIHRva2VuIGxlbmd0aCIsIHRva2VuICk7Ci0gICB9Ci0KLSAgIC8vIEF2b2lkIHVzaW5nIGEg
c3RyaW5nIGNvbnN0YW50IGZvciB0aGUgZm9ybWF0IGNvbnRyb2wgc3RyaW5nIGdpdmVuIHRvCi0g
ICAvLyBzc2NhbmYsIGFzIHRoaXMgY2FuIGNhdXNlIGhhcmQgdG8gZGVidWcgY3Jhc2hlcyBvbiBP
UyBYLiBTZWUgaGVyZSBmb3IgbW9yZQotICAgLy8gaW5mbzoKLSAgIC8vCi0gICAvLyAgICAgaHR0
cDovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9tYWMvI0RPQ1VNRU5UQVRJT04vRGV2ZWxv
cGVyVG9vbHMvZ2NjLTQuMC4xL2djYy9JbmNvbXBhdGliaWxpdGllcy5odG1sCi0gICBjaGFyIGZv
cm1hdFtdID0gIiVsZiI7Ci0KLSAgIGlmICggbGVuZ3RoIDw9IGJ1ZmZlclNpemUgKQotICAgewot
ICAgICAgQ2hhciBidWZmZXJbYnVmZmVyU2l6ZSsxXTsKLSAgICAgIG1lbWNweSggYnVmZmVyLCB0
b2tlbi5zdGFydF8sIGxlbmd0aCApOwotICAgICAgYnVmZmVyW2xlbmd0aF0gPSAwOwotICAgICAg
Y291bnQgPSBzc2NhbmYoIGJ1ZmZlciwgZm9ybWF0LCAmdmFsdWUgKTsKLSAgIH0KLSAgIGVsc2UK
LSAgIHsKLSAgICAgIHN0ZDo6c3RyaW5nIGJ1ZmZlciggdG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRf
ICk7Ci0gICAgICBjb3VudCA9IHNzY2FuZiggYnVmZmVyLmNfc3RyKCksIGZvcm1hdCwgJnZhbHVl
ICk7Ci0gICB9Ci0KLSAgIGlmICggY291bnQgIT0gMSApCi0gICAgICByZXR1cm4gYWRkRXJyb3Io
ICInIiArIHN0ZDo6c3RyaW5nKCB0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8gKSArICInIGlzIG5v
dCBhIG51bWJlci4iLCB0b2tlbiApOwotICAgY3VycmVudFZhbHVlKCkgPSB2YWx1ZTsKLSAgIHJl
dHVybiB0cnVlOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OmRlY29kZVN0cmluZyggVG9rZW4gJnRv
a2VuICkKLXsKLSAgIHN0ZDo6c3RyaW5nIGRlY29kZWQ7Ci0gICBpZiAoICFkZWNvZGVTdHJpbmco
IHRva2VuLCBkZWNvZGVkICkgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgY3VycmVudFZhbHVl
KCkgPSBkZWNvZGVkOwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6ZGVj
b2RlU3RyaW5nKCBUb2tlbiAmdG9rZW4sIHN0ZDo6c3RyaW5nICZkZWNvZGVkICkKLXsKLSAgIGRl
Y29kZWQucmVzZXJ2ZSggdG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIgKTsKLSAgIExvY2F0
aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJwotICAgTG9jYXRpb24g
ZW5kID0gdG9rZW4uZW5kXyAtIDE7ICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCi0gICB3aGls
ZSAoIGN1cnJlbnQgIT0gZW5kICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0g
ICAgICBpZiAoIGMgPT0gJyInICkKLSAgICAgICAgIGJyZWFrOwotICAgICAgZWxzZSBpZiAoIGMg
PT0gJ1xcJyApCi0gICAgICB7Ci0gICAgICAgICBpZiAoIGN1cnJlbnQgPT0gZW5kICkKLSAgICAg
ICAgICAgIHJldHVybiBhZGRFcnJvciggIkVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmci
LCB0b2tlbiwgY3VycmVudCApOwotICAgICAgICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsrOwot
ICAgICAgICAgc3dpdGNoICggZXNjYXBlICkKLSAgICAgICAgIHsKLSAgICAgICAgIGNhc2UgJyIn
OiBkZWNvZGVkICs9ICciJzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICcvJzogZGVjb2RlZCArPSAn
Lyc7IGJyZWFrOwotICAgICAgICAgY2FzZSAnXFwnOiBkZWNvZGVkICs9ICdcXCc7IGJyZWFrOwot
ICAgICAgICAgY2FzZSAnYic6IGRlY29kZWQgKz0gJ1xiJzsgYnJlYWs7Ci0gICAgICAgICBjYXNl
ICdmJzogZGVjb2RlZCArPSAnXGYnOyBicmVhazsKLSAgICAgICAgIGNhc2UgJ24nOiBkZWNvZGVk
ICs9ICdcbic7IGJyZWFrOwotICAgICAgICAgY2FzZSAncic6IGRlY29kZWQgKz0gJ1xyJzsgYnJl
YWs7Ci0gICAgICAgICBjYXNlICd0JzogZGVjb2RlZCArPSAnXHQnOyBicmVhazsKLSAgICAgICAg
IGNhc2UgJ3UnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHVu
aWNvZGU7Ci0gICAgICAgICAgICAgICBpZiAoICFkZWNvZGVVbmljb2RlQ29kZVBvaW50KCB0b2tl
biwgY3VycmVudCwgZW5kLCB1bmljb2RlICkgKQotICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgodW5pY29kZSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICByZXR1cm4gYWRkRXJyb3IoICJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmlu
ZyIsIHRva2VuLCBjdXJyZW50ICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBlbHNlCi0g
ICAgICB7Ci0gICAgICAgICBkZWNvZGVkICs9IGM7Ci0gICAgICB9Ci0gICB9Ci0gICByZXR1cm4g
dHJ1ZTsKLX0KLQotYm9vbAotUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KCBUb2tlbiAm
dG9rZW4sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uICZj
dXJyZW50LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBl
bmQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAm
dW5pY29kZSApCi17Ci0KLSAgIGlmICggIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSggdG9r
ZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSApICkKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgIGlm
ICh1bmljb2RlID49IDB4RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikKLSAgIHsKLSAgICAgIC8v
IHN1cnJvZ2F0ZSBwYWlycwotICAgICAgaWYgKGVuZCAtIGN1cnJlbnQgPCA2KQotICAgICAgICAg
cmV0dXJuIGFkZEVycm9yKCAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBw
YXJzZSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyLiIsIHRva2VuLCBjdXJyZW50ICk7Ci0gICAgICB1
bnNpZ25lZCBpbnQgc3Vycm9nYXRlUGFpcjsKLSAgICAgIGlmICgqKGN1cnJlbnQrKykgPT0gJ1xc
JyAmJiAqKGN1cnJlbnQrKyk9PSAndScpCi0gICAgICB7Ci0gICAgICAgICBpZiAoZGVjb2RlVW5p
Y29kZUVzY2FwZVNlcXVlbmNlKCB0b2tlbiwgY3VycmVudCwgZW5kLCBzdXJyb2dhdGVQYWlyICkp
Ci0gICAgICAgICB7Ci0gICAgICAgICAgICB1bmljb2RlID0gMHgxMDAwMCArICgodW5pY29kZSAm
IDB4M0ZGKSA8PCAxMCkgKyAoc3Vycm9nYXRlUGFpciAmIDB4M0ZGKTsKLSAgICAgICAgIH0gCi0g
ICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9IAotICAgICAg
ZWxzZQotICAgICAgICAgcmV0dXJuIGFkZEVycm9yKCAiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRv
a2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiBhIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIi
LCB0b2tlbiwgY3VycmVudCApOwotICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgCi1S
ZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSggVG9rZW4gJnRva2VuLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiAmY3VycmVudCwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgJnVuaWNvZGUgKQotewot
ICAgaWYgKCBlbmQgLSBjdXJyZW50IDwgNCApCi0gICAgICByZXR1cm4gYWRkRXJyb3IoICJCYWQg
dW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBmb3VyIGRpZ2l0cyBleHBlY3RlZC4i
LCB0b2tlbiwgY3VycmVudCApOwotICAgdW5pY29kZSA9IDA7Ci0gICBmb3IgKCBpbnQgaW5kZXgg
PTA7IGluZGV4IDwgNDsgKytpbmRleCApCi0gICB7Ci0gICAgICBDaGFyIGMgPSAqY3VycmVudCsr
OwotICAgICAgdW5pY29kZSAqPSAxNjsKLSAgICAgIGlmICggYyA+PSAnMCcgICYmICBjIDw9ICc5
JyApCi0gICAgICAgICB1bmljb2RlICs9IGMgLSAnMCc7Ci0gICAgICBlbHNlIGlmICggYyA+PSAn
YScgICYmICBjIDw9ICdmJyApCi0gICAgICAgICB1bmljb2RlICs9IGMgLSAnYScgKyAxMDsKLSAg
ICAgIGVsc2UgaWYgKCBjID49ICdBJyAgJiYgIGMgPD0gJ0YnICkKLSAgICAgICAgIHVuaWNvZGUg
Kz0gYyAtICdBJyArIDEwOwotICAgICAgZWxzZQotICAgICAgICAgcmV0dXJuIGFkZEVycm9yKCAi
QmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwgZGlnaXQg
ZXhwZWN0ZWQuIiwgdG9rZW4sIGN1cnJlbnQgKTsKLSAgIH0KLSAgIHJldHVybiB0cnVlOwotfQot
Ci0KLWJvb2wgCi1SZWFkZXI6OmFkZEVycm9yKCBjb25zdCBzdGQ6OnN0cmluZyAmbWVzc2FnZSwg
Ci0gICAgICAgICAgICAgICAgICBUb2tlbiAmdG9rZW4sCi0gICAgICAgICAgICAgICAgICBMb2Nh
dGlvbiBleHRyYSApCi17Ci0gICBFcnJvckluZm8gaW5mbzsKLSAgIGluZm8udG9rZW5fID0gdG9r
ZW47Ci0gICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKLSAgIGluZm8uZXh0cmFfID0gZXh0cmE7
Ci0gICBlcnJvcnNfLnB1c2hfYmFjayggaW5mbyApOwotICAgcmV0dXJuIGZhbHNlOwotfQotCi0K
LWJvb2wgCi1SZWFkZXI6OnJlY292ZXJGcm9tRXJyb3IoIFRva2VuVHlwZSBza2lwVW50aWxUb2tl
biApCi17Ci0gICBpbnQgZXJyb3JDb3VudCA9IGludChlcnJvcnNfLnNpemUoKSk7Ci0gICBUb2tl
biBza2lwOwotICAgZm9yICg7OykKLSAgIHsKLSAgICAgIGlmICggIXJlYWRUb2tlbihza2lwKSAp
Ci0gICAgICAgICBlcnJvcnNfLnJlc2l6ZSggZXJyb3JDb3VudCApOyAvLyBkaXNjYXJkIGVycm9y
cyBjYXVzZWQgYnkgcmVjb3ZlcnkKLSAgICAgIGlmICggc2tpcC50eXBlXyA9PSBza2lwVW50aWxU
b2tlbiAgfHwgIHNraXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0cmVhbSApCi0gICAgICAgICBicmVh
azsKLSAgIH0KLSAgIGVycm9yc18ucmVzaXplKCBlcnJvckNvdW50ICk7Ci0gICByZXR1cm4gZmFs
c2U7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKCBjb25zdCBzdGQ6
OnN0cmluZyAmbWVzc2FnZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4gJnRv
a2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tl
biApCi17Ci0gICBhZGRFcnJvciggbWVzc2FnZSwgdG9rZW4gKTsKLSAgIHJldHVybiByZWNvdmVy
RnJvbUVycm9yKCBza2lwVW50aWxUb2tlbiApOwotfQotCi0KLVZhbHVlICYKLVJlYWRlcjo6Y3Vy
cmVudFZhbHVlKCkKLXsKLSAgIHJldHVybiAqKG5vZGVzXy50b3AoKSk7Ci19Ci0KLQotUmVhZGVy
OjpDaGFyIAotUmVhZGVyOjpnZXROZXh0Q2hhcigpCi17Ci0gICBpZiAoIGN1cnJlbnRfID09IGVu
ZF8gKQotICAgICAgcmV0dXJuIDA7Ci0gICByZXR1cm4gKmN1cnJlbnRfKys7Ci19Ci0KLQotdm9p
ZCAKLVJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKCBMb2NhdGlvbiBsb2NhdGlvbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgJmxpbmUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICZjb2x1bW4gKSBjb25zdAotewotICAgTG9jYXRp
b24gY3VycmVudCA9IGJlZ2luXzsKLSAgIExvY2F0aW9uIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50
OwotICAgbGluZSA9IDA7Ci0gICB3aGlsZSAoIGN1cnJlbnQgPCBsb2NhdGlvbiAgJiYgIGN1cnJl
bnQgIT0gZW5kXyApCi0gICB7Ci0gICAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgICAgaWYg
KCBjID09ICdccicgKQotICAgICAgewotICAgICAgICAgaWYgKCAqY3VycmVudCA9PSAnXG4nICkK
LSAgICAgICAgICAgICsrY3VycmVudDsKLSAgICAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50
OwotICAgICAgICAgKytsaW5lOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoIGMgPT0gJ1xuJyAp
Ci0gICAgICB7Ci0gICAgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgICAgICAgICsr
bGluZTsKLSAgICAgIH0KLSAgIH0KLSAgIC8vIGNvbHVtbiAmIGxpbmUgc3RhcnQgYXQgMQotICAg
Y29sdW1uID0gaW50KGxvY2F0aW9uIC0gbGFzdExpbmVTdGFydCkgKyAxOwotICAgKytsaW5lOwot
fQotCi0KLXN0ZDo6c3RyaW5nCi1SZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbiggTG9j
YXRpb24gbG9jYXRpb24gKSBjb25zdAotewotICAgaW50IGxpbmUsIGNvbHVtbjsKLSAgIGdldExv
Y2F0aW9uTGluZUFuZENvbHVtbiggbG9jYXRpb24sIGxpbmUsIGNvbHVtbiApOwotICAgY2hhciBi
dWZmZXJbMTgrMTYrMTYrMV07Ci0gICBzcHJpbnRmKCBidWZmZXIsICJMaW5lICVkLCBDb2x1bW4g
JWQiLCBsaW5lLCBjb2x1bW4gKTsKLSAgIHJldHVybiBidWZmZXI7Ci19Ci0KLQotLy8gRGVwcmVj
YXRlZC4gUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1zdGQ6OnN0cmluZyAK
LVJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOwotfQotCi0KLXN0ZDo6c3RyaW5nIAotUmVhZGVy
OjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QKLXsKLSAgIHN0ZDo6c3RyaW5nIGZv
cm1hdHRlZE1lc3NhZ2U7Ci0gICBmb3IgKCBFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3Ig
PSBlcnJvcnNfLmJlZ2luKCk7Ci0gICAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7Ci0g
ICAgICAgICArK2l0RXJyb3IgKQotICAgewotICAgICAgY29uc3QgRXJyb3JJbmZvICZlcnJvciA9
ICppdEVycm9yOwotICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiKiAiICsgZ2V0TG9jYXRpb25M
aW5lQW5kQ29sdW1uKCBlcnJvci50b2tlbl8uc3RhcnRfICkgKyAiXG4iOwotICAgICAgZm9ybWF0
dGVkTWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOwotICAgICAgaWYgKCBl
cnJvci5leHRyYV8gKQotICAgICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiU2VlICIgKyBnZXRM
b2NhdGlvbkxpbmVBbmRDb2x1bW4oIGVycm9yLmV4dHJhXyApICsgIiBmb3IgZGV0YWlsLlxuIjsK
LSAgIH0KLSAgIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOwotfQotCi0KLXN0ZDo6aXN0cmVhbSYg
b3BlcmF0b3I+Piggc3RkOjppc3RyZWFtICZzaW4sIFZhbHVlICZyb290ICkKLXsKLSAgICBKc29u
OjpSZWFkZXIgcmVhZGVyOwotICAgIGJvb2wgb2sgPSByZWFkZXIucGFyc2Uoc2luLCByb290LCB0
cnVlKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICBmcHJpbnRmKAotICAgICAgICAgIHN0ZGVyciwK
LSAgICAgICAgICAiRXJyb3IgZnJvbSByZWFkZXI6ICVzIiwKLSAgICAgICAgICByZWFkZXIuZ2V0
Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpLmNfc3RyKCkpOwotCi0gICAgICBKU09OX0ZBSUxfTUVT
U0FHRSgicmVhZGVyIGVycm9yIik7Ci0gICAgfQotICAgIHJldHVybiBzaW47Ci19Ci0KLQotfSAv
LyBuYW1lc3BhY2UgSnNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL292ZXJyaWRlcy9zcmMvbGliX2pzb24vanNvbl92
YWx1ZS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTJhNGE2NzYxZDJjZGIzNDZjMDc2NGM1ZGQ4NDI2NmNjNzYx
OWQzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJp
ZGVzL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MzAg
KzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmli
dXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAot
Ly8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0Ug
Zm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNF
TlNFCi0KLSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8anNv
bi9hc3NlcnRpb25zLmg+Ci0jIGluY2x1ZGUgPGpzb24vdmFsdWUuaD4KLSMgaW5jbHVkZSA8anNv
bi93cml0ZXIuaD4KLSMgaWZuZGVmIEpTT05fVVNFX1NJTVBMRV9JTlRFUk5BTF9BTExPQ0FUT1IK
LSMgIGluY2x1ZGUgImpzb25fYmF0Y2hhbGxvY2F0b3IuaCIKLSMgZW5kaWYgLy8gI2lmbmRlZiBK
U09OX1VTRV9TSU1QTEVfSU5URVJOQUxfQUxMT0NBVE9SCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgPHNzdHJl
YW0+Ci0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRlIDxzdGRleGNlcHQ+Ci0jaW5jbHVkZSA8
Y3N0cmluZz4KLSNpbmNsdWRlIDxjYXNzZXJ0PgotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0jIGlu
Y2x1ZGUgPGNwcHRsL2NvbnN0c3RyaW5nLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxjc3RkZGVmPiAg
ICAvLyBzaXplX3QKLQotI2RlZmluZSBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRSBhc3NlcnQoIGZh
bHNlICkKLQotbmFtZXNwYWNlIEpzb24gewotCi0vLyBUaGlzIGlzIGEgd2Fsa2Fyb3VuZCB0byBh
dm9pZCB0aGUgc3RhdGljIGluaXRpYWxpemF0aW9uIG9mIFZhbHVlOjpudWxsLgotLy8ga051bGwg
bXVzdCBiZSB3b3JkLWFsaWduZWQgdG8gYXZvaWQgY3Jhc2hpbmcgb24gQVJNLiAgV2UgdXNlIGFu
IGFsaWdubWVudCBvZgotLy8gOCAoaW5zdGVhZCBvZiA0KSBhcyBhIGJpdCBvZiBmdXR1cmUtcHJv
b2ZpbmcuCi0jaWYgZGVmaW5lZChfX0FSTUVMX18pCi0jZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGln
bm1lbnQpIF9fYXR0cmlidXRlX18oKGFsaWduZWQoYnl0ZV9hbGlnbm1lbnQpKSkKLSNlbHNlCi0j
ZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpCi0jZW5kaWYKLXN0YXRpYyBjb25zdCB1bnNp
Z25lZCBjaGFyIEFMSUdOQVMoOCkga051bGxbc2l6ZW9mKFZhbHVlKV0gPSB7MH07Ci1jb25zdCBW
YWx1ZSYgVmFsdWU6Om51bGwgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFZhbHVlJj4oa051bGwp
OwotCi1jb25zdCBJbnQgVmFsdWU6Om1pbkludCA9IEludCggfihVSW50KC0xKS8yKSApOwotY29u
c3QgSW50IFZhbHVlOjptYXhJbnQgPSBJbnQoIFVJbnQoLTEpLzIgKTsKLWNvbnN0IFVJbnQgVmFs
dWU6Om1heFVJbnQgPSBVSW50KC0xKTsKLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLWNv
bnN0IEludDY0IFZhbHVlOjptaW5JbnQ2NCA9IEludDY0KCB+KFVJbnQ2NCgtMSkvMikgKTsKLWNv
bnN0IEludDY0IFZhbHVlOjptYXhJbnQ2NCA9IEludDY0KCBVSW50NjQoLTEpLzIgKTsKLWNvbnN0
IFVJbnQ2NCBWYWx1ZTo6bWF4VUludDY0ID0gVUludDY0KC0xKTsKLS8vIFRoZSBjb25zdGFudCBp
cyBoYXJkLWNvZGVkIGJlY2F1c2Ugc29tZSBjb21waWxlciBoYXZlIHRyb3VibGUKLS8vIGNvbnZl
cnRpbmcgVmFsdWU6Om1heFVJbnQ2NCB0byBhIGRvdWJsZSBjb3JyZWN0bHkgKEFJWC94bEMpLgot
Ly8gQXNzdW1lcyB0aGF0IFVJbnQ2NCBpcyBhIDY0IGJpdHMgaW50ZWdlci4KLXN0YXRpYyBjb25z
dCBkb3VibGUgbWF4VUludDY0QXNEb3VibGUgPSAxODQ0Njc0NDA3MzcwOTU1MTYxNS4wOwotI2Vu
ZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi1jb25zdCBMYXJnZXN0SW50IFZhbHVlOjpt
aW5MYXJnZXN0SW50ID0gTGFyZ2VzdEludCggfihMYXJnZXN0VUludCgtMSkvMikgKTsKLWNvbnN0
IExhcmdlc3RJbnQgVmFsdWU6Om1heExhcmdlc3RJbnQgPSBMYXJnZXN0SW50KCBMYXJnZXN0VUlu
dCgtMSkvMiApOwotY29uc3QgTGFyZ2VzdFVJbnQgVmFsdWU6Om1heExhcmdlc3RVSW50ID0gTGFy
Z2VzdFVJbnQoLTEpOwotCi0KLS8vLyBVbmtub3duIHNpemUgbWFya2VyCi1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IHVua25vd24gPSAodW5zaWduZWQpLTE7Ci0KLSNpZiAhZGVmaW5lZChKU09O
X1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPgotc3RhdGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWluLCBVIG1h
eCkgewotICAgcmV0dXJuIGQgPj0gbWluICYmIGQgPD0gbWF4OwotfQotI2Vsc2UgLy8gaWYgIWRl
ZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi1zdGF0aWMgaW5saW5lIGRv
dWJsZSBpbnRlZ2VyVG9Eb3VibGUoIEpzb246OlVJbnQ2NCB2YWx1ZSApCi17Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4oIEludDY0KHZhbHVlLzIpICkgKiAyLjAgKyBJbnQ2NCh2YWx1
ZSAmIDEpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RhdGljIGlubGluZSBkb3VibGUg
aW50ZWdlclRvRG91YmxlKCBUIHZhbHVlICkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91
YmxlPiggdmFsdWUgKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1z
dGF0aWMgaW5saW5lIGJvb2wgSW5SYW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0gICBy
ZXR1cm4gZCA+PSBpbnRlZ2VyVG9Eb3VibGUobWluKSAmJiBkIDw9IGludGVnZXJUb0RvdWJsZSht
YXgpOwotfQotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05W
RVJTSU9OKQotCi0KLS8qKiBEdXBsaWNhdGVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHZhbHVlLgot
ICogQHBhcmFtIHZhbHVlIFBvaW50ZXIgdG8gdGhlIHN0cmluZyB0byBkdXBsaWNhdGUuIE11c3Qg
YmUgemVyby10ZXJtaW5hdGVkIGlmCi0gKiAgICAgICAgICAgICAgbGVuZ3RoIGlzICJ1bmtub3du
Ii4KLSAqIEBwYXJhbSBsZW5ndGggTGVuZ3RoIG9mIHRoZSB2YWx1ZS4gaWYgZXF1YWxzIHRvIHVu
a25vd24sIHRoZW4gaXQgd2lsbCBiZQotICogICAgICAgICAgICAgICBjb21wdXRlZCB1c2luZyBz
dHJsZW4odmFsdWUpLgotICogQHJldHVybiBQb2ludGVyIG9uIHRoZSBkdXBsaWNhdGUgaW5zdGFu
Y2Ugb2Ygc3RyaW5nLgotICovCi1zdGF0aWMgaW5saW5lIGNoYXIgKgotZHVwbGljYXRlU3RyaW5n
VmFsdWUoIGNvbnN0IGNoYXIgKnZhbHVlLCAKLSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgbGVuZ3RoID0gdW5rbm93biApCi17Ci0gICBpZiAoIGxlbmd0aCA9PSB1bmtub3duICkK
LSAgICAgIGxlbmd0aCA9ICh1bnNpZ25lZCBpbnQpc3RybGVuKHZhbHVlKTsKLQotICAgLy8gQXZv
aWQgYW4gaW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGlt
aXRpbmcgbGVuZ3RoCi0gICAvLyB0byBhIHNhbmUgdmFsdWUuCi0gICBpZiAobGVuZ3RoID49ICh1
bnNpZ25lZClWYWx1ZTo6bWF4SW50KQotICAgICAgbGVuZ3RoID0gVmFsdWU6Om1heEludCAtIDE7
Ci0KLSAgIGNoYXIgKm5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIgKj4oIG1hbGxvYyggbGVu
Z3RoICsgMSApICk7Ci0gICBKU09OX0FTU0VSVF9NRVNTQUdFKCBuZXdTdHJpbmcgIT0gMCwgIkZh
aWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIiApOwotICAgbWVtY3B5KCBuZXdT
dHJpbmcsIHZhbHVlLCBsZW5ndGggKTsKLSAgIG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKLSAgIHJl
dHVybiBuZXdTdHJpbmc7Ci19Ci0KLQotLyoqIEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5
IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCkuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAKLXJlbGVh
c2VTdHJpbmdWYWx1ZSggY2hhciAqdmFsdWUgKQotewotICAgaWYgKCB2YWx1ZSApCi0gICAgICBm
cmVlKCB2YWx1ZSApOwotfQotCi19IC8vIG5hbWVzcGFjZSBKc29uCi0KLQotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gVmFsdWVJbnRlcm5hbHMuLi4KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSNpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0jICBp
bmNsdWRlICJqc29uX2ludGVybmFsYXJyYXkuaW5sIgotIyAgaW5jbHVkZSAianNvbl9pbnRlcm5h
bG1hcC5pbmwiCi0jIGVuZGlmIC8vIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotCi0jIGlu
Y2x1ZGUgImpzb25fdmFsdWVpdGVyYXRvci5pbmwiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNP
Tl9JU19BTUFMR0FNQVRJT04pCi0KLW5hbWVzcGFjZSBKc29uIHsKLQotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gY2xhc3MgVmFsdWU6OkNvbW1lbnRJbmZvCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLQotVmFsdWU6OkNvbW1l
bnRJbmZvOjpDb21tZW50SW5mbygpCi0gICA6IGNvbW1lbnRfKCAwICkKLXsKLX0KLQotVmFsdWU6
OkNvbW1lbnRJbmZvOjp+Q29tbWVudEluZm8oKQotewotICAgaWYgKCBjb21tZW50XyApCi0gICAg
ICByZWxlYXNlU3RyaW5nVmFsdWUoIGNvbW1lbnRfICk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlOjpD
b21tZW50SW5mbzo6c2V0Q29tbWVudCggY29uc3QgY2hhciAqdGV4dCApCi17Ci0gICBpZiAoIGNv
bW1lbnRfICkKLSAgICAgIHJlbGVhc2VTdHJpbmdWYWx1ZSggY29tbWVudF8gKTsKLSAgIEpTT05f
QVNTRVJUKCB0ZXh0ICE9IDAgKTsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIHRleHRbMF09PSdc
MCcgfHwgdGV4dFswXT09Jy8nLCAiQ29tbWVudHMgbXVzdCBzdGFydCB3aXRoIC8iKTsKLSAgIC8v
IEl0IHNlZW1zIHRoYXQgLyoqLyBzdHlsZSBjb21tZW50cyBhcmUgYWNjZXB0YWJsZSBhcyB3ZWxs
LgotICAgY29tbWVudF8gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSggdGV4dCApOwotfQotCi0KLS8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlOjpD
WlN0cmluZwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotIyBpZm5k
ZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0KLS8vIE5vdGVzOiBpbmRleF8gaW5kaWNh
dGVzIGlmIHRoZSBzdHJpbmcgd2FzIGFsbG9jYXRlZCB3aGVuCi0vLyBhIHN0cmluZyBpcyBzdG9y
ZWQuCi0KLVZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoIEFycmF5SW5kZXggaW5kZXggKQotICAg
OiBjc3RyXyggMCApCi0gICAsIGluZGV4XyggaW5kZXggKQotewotfQotCi1WYWx1ZTo6Q1pTdHJp
bmc6OkNaU3RyaW5nKCBjb25zdCBjaGFyICpjc3RyLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0
ZSApCi0gICA6IGNzdHJfKCBhbGxvY2F0ZSA9PSBkdXBsaWNhdGUgPyBkdXBsaWNhdGVTdHJpbmdW
YWx1ZShjc3RyKSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNzdHIgKQot
ICAgLCBpbmRleF8oIGFsbG9jYXRlICkKLXsKLX0KLQotVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmlu
ZyggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkKLTogY3N0cl8oIG90aGVyLmluZGV4XyAhPSBub0R1
cGxpY2F0aW9uICYmICBvdGhlci5jc3RyXyAhPSAwCi0gICAgICAgICAgICAgICAgPyAgZHVwbGlj
YXRlU3RyaW5nVmFsdWUoIG90aGVyLmNzdHJfICkKLSAgICAgICAgICAgICAgICA6IG90aGVyLmNz
dHJfICkKLSAgICwgaW5kZXhfKCBvdGhlci5jc3RyXyA/IChvdGhlci5pbmRleF8gPT0gbm9EdXBs
aWNhdGlvbiA/IG5vRHVwbGljYXRpb24gOiBkdXBsaWNhdGUpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgOiBvdGhlci5pbmRleF8gKQotewotfQotCi1WYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmlu
ZygpCi17Ci0gICBpZiAoIGNzdHJfICAmJiAgaW5kZXhfID09IGR1cGxpY2F0ZSApCi0gICAgICBy
ZWxlYXNlU3RyaW5nVmFsdWUoIGNvbnN0X2Nhc3Q8Y2hhciAqPiggY3N0cl8gKSApOwotfQotCi12
b2lkIAotVmFsdWU6OkNaU3RyaW5nOjpzd2FwKCBDWlN0cmluZyAmb3RoZXIgKQotewotICAgc3Rk
Ojpzd2FwKCBjc3RyXywgb3RoZXIuY3N0cl8gKTsKLSAgIHN0ZDo6c3dhcCggaW5kZXhfLCBvdGhl
ci5pbmRleF8gKTsKLX0KLQotVmFsdWU6OkNaU3RyaW5nICYKLVZhbHVlOjpDWlN0cmluZzo6b3Bl
cmF0b3IgPSggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkKLXsKLSAgIENaU3RyaW5nIHRlbXAoIG90
aGVyICk7Ci0gICBzd2FwKCB0ZW1wICk7Ci0gICByZXR1cm4gKnRoaXM7Ci19Ci0KLWJvb2wgCi1W
YWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPCggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkgY29uc3Qg
Ci17Ci0gICBpZiAoIGNzdHJfICkKLSAgICAgIHJldHVybiBzdHJjbXAoIGNzdHJfLCBvdGhlci5j
c3RyXyApIDwgMDsKLSAgIHJldHVybiBpbmRleF8gPCBvdGhlci5pbmRleF87Ci19Ci0KLWJvb2wg
Ci1WYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPT0oIGNvbnN0IENaU3RyaW5nICZvdGhlciApIGNv
bnN0IAotewotICAgaWYgKCBjc3RyXyApCi0gICAgICByZXR1cm4gc3RyY21wKCBjc3RyXywgb3Ro
ZXIuY3N0cl8gKSA9PSAwOwotICAgcmV0dXJuIGluZGV4XyA9PSBvdGhlci5pbmRleF87Ci19Ci0K
LQotQXJyYXlJbmRleCAKLVZhbHVlOjpDWlN0cmluZzo6aW5kZXgoKSBjb25zdAotewotICAgcmV0
dXJuIGluZGV4XzsKLX0KLQotCi1jb25zdCBjaGFyICoKLVZhbHVlOjpDWlN0cmluZzo6Y19zdHIo
KSBjb25zdAotewotICAgcmV0dXJuIGNzdHJfOwotfQotCi1ib29sIAotVmFsdWU6OkNaU3RyaW5n
Ojppc1N0YXRpY1N0cmluZygpIGNvbnN0Ci17Ci0gICByZXR1cm4gaW5kZXhfID09IG5vRHVwbGlj
YXRpb247Ci19Ci0KLSNlbmRpZiAvLyBpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gY2xhc3Mg
VmFsdWU6OlZhbHVlCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0K
LS8qISBcaW50ZXJuYWwgRGVmYXVsdCBjb25zdHJ1Y3RvciBpbml0aWFsaXphdGlvbiBtdXN0IGJl
IGVxdWl2YWxlbnQgdG86Ci0gKiBtZW1zZXQoIHRoaXMsIDAsIHNpemVvZihWYWx1ZSkgKQotICog
VGhpcyBvcHRpbWl6YXRpb24gaXMgdXNlZCBpbiBWYWx1ZUludGVybmFsTWFwIGZhc3QgYWxsb2Nh
dG9yLgotICovCi1WYWx1ZTo6VmFsdWUoIFZhbHVlVHlwZSB0eXBlICkKLSAgIDogdHlwZV8oIHR5
cGUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lO
VEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNf
KCAwICkKLXsKLSAgIHN3aXRjaCAoIHR5cGUgKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0g
ICAgICBicmVhazsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAg
IHZhbHVlXy5pbnRfID0gMDsKLSAgICAgIGJyZWFrOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAg
ICB2YWx1ZV8ucmVhbF8gPSAwLjA7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6
Ci0gICAgICB2YWx1ZV8uc3RyaW5nXyA9IDA7Ci0gICAgICBicmVhazsKLSNpZm5kZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVj
dFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCk7Ci0gICAgICBi
cmVhazsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICB2YWx1ZV8uYXJyYXlfID0g
YXJyYXlBbGxvY2F0b3IoKS0+bmV3QXJyYXkoKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBvYmpl
Y3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfID0gbWFwQWxsb2NhdG9yKCktPm5ld01hcCgpOwot
ICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgdmFsdWVf
LmJvb2xfID0gZmFsc2U7Ci0gICAgICBicmVhazsKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0FT
U0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0KLX0KLQotCi1WYWx1ZTo6VmFsdWUoIFVJbnQgdmFsdWUg
KQotICAgOiB0eXBlXyggdWludFZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBp
ZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQot
I2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8udWludF8gPSB2YWx1ZTsK
LX0KLQotVmFsdWU6OlZhbHVlKCBJbnQgdmFsdWUgKQotICAgOiB0eXBlXyggaW50VmFsdWUgKQot
ICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFM
X01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkK
LXsKLSAgIHZhbHVlXy5pbnRfID0gdmFsdWU7Ci19Ci0KLQotIyBpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQotVmFsdWU6OlZhbHVlKCBJbnQ2NCB2YWx1ZSApCi0gICA6IHR5cGVfKCBpbnRWYWx1
ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5U
RVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18o
IDAgKQotewotICAgdmFsdWVfLmludF8gPSB2YWx1ZTsKLX0KLQotCi1WYWx1ZTo6VmFsdWUoIFVJ
bnQ2NCB2YWx1ZSApCi0gICA6IHR5cGVfKCB1aW50VmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCBm
YWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNV
c2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy51aW50
XyA9IHZhbHVlOwotfQotI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0KLVZhbHVl
OjpWYWx1ZSggZG91YmxlIHZhbHVlICkKLSAgIDogdHlwZV8oIHJlYWxWYWx1ZSApCi0gICAsIGFs
bG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0g
ICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAg
dmFsdWVfLnJlYWxfID0gdmFsdWU7Ci19Ci0KLVZhbHVlOjpWYWx1ZSggY29uc3QgY2hhciAqdmFs
dWUgKQotICAgOiB0eXBlXyggc3RyaW5nVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCB0cnVlICkK
LSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAw
ICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnN0cmluZ18gPSBk
dXBsaWNhdGVTdHJpbmdWYWx1ZSggdmFsdWUgKTsKLX0KLQotCi1WYWx1ZTo6VmFsdWUoIGNvbnN0
IGNoYXIgKmJlZ2luVmFsdWUsIAotICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmRWYWx1ZSAp
Ci0gICA6IHR5cGVfKCBzdHJpbmdWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBp
ZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQot
I2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxp
Y2F0ZVN0cmluZ1ZhbHVlKCBiZWdpblZhbHVlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpKGVuZFZhbHVlIC0gYmVnaW5WYWx1ZSkgKTsK
LX0KLQotCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YWx1ZSApCi0gICA6IHR5
cGVfKCBzdHJpbmdWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBpZmRlZiBKU09O
X1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0g
ICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmlu
Z1ZhbHVlKCB2YWx1ZS5jX3N0cigpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh1bnNpZ25lZCBpbnQpdmFsdWUubGVuZ3RoKCkgKTsKLQotfQotCi1WYWx1ZTo6
VmFsdWUoIGNvbnN0IFN0YXRpY1N0cmluZyAmdmFsdWUgKQotICAgOiB0eXBlXyggc3RyaW5nVmFs
dWUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lO
VEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNf
KCAwICkKLXsKLSAgIHZhbHVlXy5zdHJpbmdfID0gY29uc3RfY2FzdDxjaGFyICo+KCB2YWx1ZS5j
X3N0cigpICk7Ci19Ci0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotVmFsdWU6OlZhbHVlKCBj
b25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJnZhbHVlICkKLSAgIDogdHlwZV8oIHN0cmluZ1ZhbHVl
ICkKLSAgICwgYWxsb2NhdGVkXyggdHJ1ZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVS
TkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAw
ICkKLXsKLSAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUoIHZhbHVlLCB2
YWx1ZS5sZW5ndGgoKSApOwotfQotIyBlbmRpZgotCi1WYWx1ZTo6VmFsdWUoIGJvb2wgdmFsdWUg
KQotICAgOiB0eXBlXyggYm9vbGVhblZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQot
IyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAg
KQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8uYm9vbF8gPSB2YWx1
ZTsKLX0KLQotCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IFZhbHVlICZvdGhlciApCi0gICA6IHR5cGVf
KCBvdGhlci50eXBlXyApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAg
LCBjb21tZW50c18oIDAgKQotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBu
dWxsVmFsdWU6Ci0gICBjYXNlIGludFZhbHVlOgotICAgY2FzZSB1aW50VmFsdWU6Ci0gICBjYXNl
IHJlYWxWYWx1ZToKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgdmFsdWVfID0gb3RoZXIu
dmFsdWVfOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgaWYgKCBv
dGhlci52YWx1ZV8uc3RyaW5nXyApCi0gICAgICB7Ci0gICAgICAgICB2YWx1ZV8uc3RyaW5nXyA9
IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCBvdGhlci52YWx1ZV8uc3RyaW5nXyApOwotICAgICAgICAg
YWxsb2NhdGVkXyA9IHRydWU7Ci0gICAgICB9Ci0gICAgICBlbHNlCi0gICAgICAgICB2YWx1ZV8u
c3RyaW5nXyA9IDA7Ci0gICAgICBicmVhazsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJO
QUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAg
dmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCAqb3RoZXIudmFsdWVfLm1hcF8gKTsKLSAg
ICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHZhbHVlXy5hcnJh
eV8gPSBhcnJheUFsbG9jYXRvcigpLT5uZXdBcnJheUNvcHkoICpvdGhlci52YWx1ZV8uYXJyYXlf
ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFw
XyA9IG1hcEFsbG9jYXRvcigpLT5uZXdNYXBDb3B5KCAqb3RoZXIudmFsdWVfLm1hcF8gKTsKLSAg
ICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgSlNPTl9BU1NFUlRfVU5SRUFD
SEFCTEU7Ci0gICB9Ci0gICBpZiAoIG90aGVyLmNvbW1lbnRzXyApCi0gICB7Ci0gICAgICBjb21t
ZW50c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50XTsKLSAgICAg
IGZvciAoIGludCBjb21tZW50ID0wOyBjb21tZW50IDwgbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50
OyArK2NvbW1lbnQgKQotICAgICAgewotICAgICAgICAgY29uc3QgQ29tbWVudEluZm8gJm90aGVy
Q29tbWVudCA9IG90aGVyLmNvbW1lbnRzX1tjb21tZW50XTsKLSAgICAgICAgIGlmICggb3RoZXJD
b21tZW50LmNvbW1lbnRfICkKLSAgICAgICAgICAgIGNvbW1lbnRzX1tjb21tZW50XS5zZXRDb21t
ZW50KCBvdGhlckNvbW1lbnQuY29tbWVudF8gKTsKLSAgICAgIH0KLSAgIH0KLX0KLQotCi1WYWx1
ZTo6flZhbHVlKCkKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZh
bHVlOgotICAgY2FzZSBpbnRWYWx1ZToKLSAgIGNhc2UgdWludFZhbHVlOgotICAgY2FzZSByZWFs
VmFsdWU6Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIGJyZWFrOwotICAgY2FzZSBzdHJp
bmdWYWx1ZToKLSAgICAgIGlmICggYWxsb2NhdGVkXyApCi0gICAgICAgICByZWxlYXNlU3RyaW5n
VmFsdWUoIHZhbHVlXy5zdHJpbmdfICk7Ci0gICAgICBicmVhazsKLSNpZm5kZWYgSlNPTl9WQUxV
RV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZh
bHVlOgotICAgICAgZGVsZXRlIHZhbHVlXy5tYXBfOwotICAgICAgYnJlYWs7Ci0jZWxzZQotICAg
Y2FzZSBhcnJheVZhbHVlOgotICAgICAgYXJyYXlBbGxvY2F0b3IoKS0+ZGVzdHJ1Y3RBcnJheSgg
dmFsdWVfLmFycmF5XyApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAg
ICAgbWFwQWxsb2NhdG9yKCktPmRlc3RydWN0TWFwKCB2YWx1ZV8ubWFwXyApOwotICAgICAgYnJl
YWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsK
LSAgIH0KLQotICAgaWYgKCBjb21tZW50c18gKQotICAgICAgZGVsZXRlW10gY29tbWVudHNfOwot
fQotCi1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3I9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKQotewot
ICAgVmFsdWUgdGVtcCggb3RoZXIgKTsKLSAgIHN3YXAoIHRlbXAgKTsKLSAgIHJldHVybiAqdGhp
czsKLX0KLQotdm9pZCAKLVZhbHVlOjpzd2FwKCBWYWx1ZSAmb3RoZXIgKQotewotICAgVmFsdWVU
eXBlIHRlbXAgPSB0eXBlXzsKLSAgIHR5cGVfID0gb3RoZXIudHlwZV87Ci0gICBvdGhlci50eXBl
XyA9IHRlbXA7Ci0gICBzdGQ6OnN3YXAoIHZhbHVlXywgb3RoZXIudmFsdWVfICk7Ci0gICBpbnQg
dGVtcDIgPSBhbGxvY2F0ZWRfOwotICAgYWxsb2NhdGVkXyA9IG90aGVyLmFsbG9jYXRlZF87Ci0g
ICBvdGhlci5hbGxvY2F0ZWRfID0gdGVtcDI7Ci19Ci0KLVZhbHVlVHlwZSAKLVZhbHVlOjp0eXBl
KCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXzsKLX0KLQotCi1pbnQgCi1WYWx1ZTo6Y29tcGFy
ZSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3QKLXsKLSAgIGlmICggKnRoaXMgPCBvdGhlciAp
Ci0gICAgICByZXR1cm4gLTE7Ci0gICBpZiAoICp0aGlzID4gb3RoZXIgKQotICAgICAgcmV0dXJu
IDE7Ci0gICByZXR1cm4gMDsKLX0KLQotCi1ib29sIAotVmFsdWU6Om9wZXJhdG9yIDwoIGNvbnN0
IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICBpbnQgdHlwZURlbHRhID0gdHlwZV8gLSBvdGhl
ci50eXBlXzsKLSAgIGlmICggdHlwZURlbHRhICkKLSAgICAgIHJldHVybiB0eXBlRGVsdGEgPCAw
ID8gdHJ1ZSA6IGZhbHNlOwotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBudWxs
VmFsdWU6Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0
dXJuIHZhbHVlXy5pbnRfIDwgb3RoZXIudmFsdWVfLmludF87Ci0gICBjYXNlIHVpbnRWYWx1ZToK
LSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPCBvdGhlci52YWx1ZV8udWludF87Ci0gICBjYXNl
IHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPCBvdGhlci52YWx1ZV8ucmVh
bF87Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPCBv
dGhlci52YWx1ZV8uYm9vbF87Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgcmV0dXJuICgg
dmFsdWVfLnN0cmluZ18gPT0gMCAgJiYgIG90aGVyLnZhbHVlXy5zdHJpbmdfICkKLSAgICAgICAg
ICAgICB8fCAoIG90aGVyLnZhbHVlXy5zdHJpbmdfICAKLSAgICAgICAgICAgICAgICAgICYmICB2
YWx1ZV8uc3RyaW5nXyAgCi0gICAgICAgICAgICAgICAgICAmJiBzdHJjbXAoIHZhbHVlXy5zdHJp
bmdfLCBvdGhlci52YWx1ZV8uc3RyaW5nXyApIDwgMCApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VT
RV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6
Ci0gICAgICB7Ci0gICAgICAgICBpbnQgZGVsdGEgPSBpbnQoIHZhbHVlXy5tYXBfLT5zaXplKCkg
LSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpICk7Ci0gICAgICAgICBpZiAoIGRlbHRhICkKLSAg
ICAgICAgICAgIHJldHVybiBkZWx0YSA8IDA7Ci0gICAgICAgICByZXR1cm4gKCp2YWx1ZV8ubWFw
XykgPCAoKm90aGVyLnZhbHVlXy5tYXBfKTsKLSAgICAgIH0KLSNlbHNlCi0gICBjYXNlIGFycmF5
VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmFycmF5Xy0+Y29tcGFyZSggKihvdGhlci52YWx1
ZV8uYXJyYXlfKSApIDwgMDsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICByZXR1cm4gdmFs
dWVfLm1hcF8tPmNvbXBhcmUoICoob3RoZXIudmFsdWVfLm1hcF8pICkgPCAwOwotI2VuZGlmCi0g
ICBkZWZhdWx0OgotICAgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0gICByZXR1
cm4gZmFsc2U7ICAvLyB1bnJlYWNoYWJsZQotfQotCi1ib29sIAotVmFsdWU6Om9wZXJhdG9yIDw9
KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdAotewotICAgcmV0dXJuICEob3RoZXIgPCAqdGhp
cyk7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPj0oIGNvbnN0IFZhbHVlICZvdGhlciAp
IGNvbnN0Ci17Ci0gICByZXR1cm4gISgqdGhpcyA8IG90aGVyKTsKLX0KLQotYm9vbCAKLVZhbHVl
OjpvcGVyYXRvciA+KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdAotewotICAgcmV0dXJuIG90
aGVyIDwgKnRoaXM7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPT0oIGNvbnN0IFZhbHVl
ICZvdGhlciApIGNvbnN0Ci17Ci0gICAvL2lmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQotICAg
Ly8gR0NDIDIuOTUuMyBzYXlzOgotICAgLy8gYXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgYml0
LWZpZWxkIHN0cnVjdHVyZSBtZW1iZXIgYEpzb246OlZhbHVlOjp0eXBlXycKLSAgIC8vIEJlYXRz
IG1lLCBidXQgYSB0ZW1wIHNvbHZlcyB0aGUgcHJvYmxlbS4KLSAgIGludCB0ZW1wID0gb3RoZXIu
dHlwZV87Ci0gICBpZiAoIHR5cGVfICE9IHRlbXAgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAg
c3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4g
dHJ1ZTsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmludF8gPT0gb3Ro
ZXIudmFsdWVfLmludF87Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8u
dWludF8gPT0gb3RoZXIudmFsdWVfLnVpbnRfOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBy
ZXR1cm4gdmFsdWVfLnJlYWxfID09IG90aGVyLnZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgYm9vbGVh
blZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA9PSBvdGhlci52YWx1ZV8uYm9vbF87
Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgcmV0dXJuICggdmFsdWVfLnN0cmluZ18gPT0g
b3RoZXIudmFsdWVfLnN0cmluZ18gKQotICAgICAgICAgICAgIHx8ICggb3RoZXIudmFsdWVfLnN0
cmluZ18gIAotICAgICAgICAgICAgICAgICAgJiYgIHZhbHVlXy5zdHJpbmdfICAKLSAgICAgICAg
ICAgICAgICAgICYmIHN0cmNtcCggdmFsdWVfLnN0cmluZ18sIG90aGVyLnZhbHVlXy5zdHJpbmdf
ICkgPT0gMCApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2Ug
YXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLm1h
cF8tPnNpemUoKSA9PSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpCi0gICAgICAgICAgICAgJiYg
KCp2YWx1ZV8ubWFwXykgPT0gKCpvdGhlci52YWx1ZV8ubWFwXyk7Ci0jZWxzZQotICAgY2FzZSBh
cnJheVZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5hcnJheV8tPmNvbXBhcmUoICoob3RoZXIu
dmFsdWVfLmFycmF5XykgKSA9PSAwOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVy
biB2YWx1ZV8ubWFwXy0+Y29tcGFyZSggKihvdGhlci52YWx1ZV8ubWFwXykgKSA9PSAwOwotI2Vu
ZGlmCi0gICBkZWZhdWx0OgotICAgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0g
ICByZXR1cm4gZmFsc2U7ICAvLyB1bnJlYWNoYWJsZQotfQotCi1ib29sIAotVmFsdWU6Om9wZXJh
dG9yICE9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdAotewotICAgcmV0dXJuICEoICp0aGlz
ID09IG90aGVyICk7Ci19Ci0KLWNvbnN0IGNoYXIgKgotVmFsdWU6OmFzQ1N0cmluZygpIGNvbnN0
Ci17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gc3RyaW5nVmFsdWUgKTsKLSAgIHJldHVybiB2
YWx1ZV8uc3RyaW5nXzsKLX0KLQotCi1zdGQ6OnN0cmluZyAKLVZhbHVlOjphc1N0cmluZygpIGNv
bnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAg
ICAgIHJldHVybiAiIjsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVf
LnN0cmluZ18gPyB2YWx1ZV8uc3RyaW5nXyA6ICIiOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0g
ICAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gInRydWUiIDogImZhbHNlIjsKLSAgIGNhc2UgaW50
VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVUb1N0cmluZyggdmFsdWVfLmludF8gKTsKLSAgIGNh
c2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoIHZhbHVlXy51aW50XyAp
OwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVUb1N0cmluZyggdmFsdWVf
LnJlYWxfICk7Ci0gICBkZWZhdWx0OgotICAgICAgSlNPTl9GQUlMX01FU1NBR0UoICJUeXBlIGlz
IG5vdCBjb252ZXJ0aWJsZSB0byBzdHJpbmciICk7Ci0gICB9Ci19Ci0KLSMgaWZkZWYgSlNPTl9V
U0VfQ1BQVEwKLUNwcFRMOjpDb25zdFN0cmluZyAKLVZhbHVlOjphc0NvbnN0U3RyaW5nKCkgY29u
c3QKLXsKLSAgIHJldHVybiBDcHBUTDo6Q29uc3RTdHJpbmcoIGFzU3RyaW5nKCkuY19zdHIoKSAp
OwotfQotIyBlbmRpZgotCi0KLVZhbHVlOjpJbnQgCi1WYWx1ZTo6YXNJbnQoKSBjb25zdAotewot
ICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIEpTT05f
QVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RJbnQgb3V0IG9mIEludCByYW5nZSIpOwot
ICAgICAgcmV0dXJuIEludCh2YWx1ZV8uaW50Xyk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAg
IEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJbnQgcmFu
Z2UiKTsKLSAgICAgIHJldHVybiBJbnQodmFsdWVfLnVpbnRfKTsKLSAgIGNhc2UgcmVhbFZhbHVl
OgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50
LCBtYXhJbnQpLCAiZG91YmxlIG91dCBvZiBJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBJbnQo
dmFsdWVfLnJlYWxfKTsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDA7Ci0gICBj
YXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAg
IGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1
ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50LiIpOwotfQotCi0KLVZhbHVlOjpVSW50IAotVmFs
dWU6OmFzVUludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNl
IGludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxhcmdlc3RJ
bnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBVSW50KHZhbHVlXy5pbnRfKTsK
LSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwg
Ikxhcmdlc3RVSW50IG91dCBvZiBVSW50IHJhbmdlIik7Ci0gICAgICByZXR1cm4gVUludCh2YWx1
ZV8udWludF8pOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdF
KEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50KSwgImRvdWJsZSBvdXQgb2YgVUludCBy
YW5nZSIpOwotICAgICAgcmV0dXJuIFVJbnQoIHZhbHVlXy5yZWFsXyApOwotICAgY2FzZSBudWxs
VmFsdWU6Ci0gICAgICByZXR1cm4gMDsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0
dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAg
fQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBVSW50
LiIpOwotfQotCi0KLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotVmFsdWU6OkludDY0
Ci1WYWx1ZTo6YXNJbnQ2NCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0g
ICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRfKTsKLSAgIGNh
c2UgdWludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCksICJMYXJn
ZXN0VUludCBvdXQgb2YgSW50NjQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8u
dWludF8pOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKElu
UmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQ2NCwgbWF4SW50NjQpLCAiZG91YmxlIG91dCBvZiBJ
bnQ2NCByYW5nZSIpOwotICAgICAgcmV0dXJuIEludDY0KHZhbHVlXy5yZWFsXyk7Ci0gICBjYXNl
IG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAwOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAg
ICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7
Ci0gICB9Ci0gICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRv
IEludDY0LiIpOwotfQotCi0KLVZhbHVlOjpVSW50NjQKLVZhbHVlOjphc1VJbnQ2NCgpIGNvbnN0
Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQ2NCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludDY0
IHJhbmdlIik7Ci0gICAgICByZXR1cm4gVUludDY0KHZhbHVlXy5pbnRfKTsKLSAgIGNhc2UgdWlu
dFZhbHVlOgotICAgICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8udWludF8pOwotICAgY2FzZSByZWFs
VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAw
LCBtYXhVSW50NjQpLCAiZG91YmxlIG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAgICAgIHJldHVy
biBVSW50NjQoIHZhbHVlXy5yZWFsXyApOwotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1
cm4gMDsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/
IDEgOiAwOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01F
U1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBVSW50NjQuIik7Ci19Ci0jIGVuZGlm
IC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0KLQotTGFyZ2VzdEludCAKLVZhbHVlOjph
c0xhcmdlc3RJbnQoKSBjb25zdAotewotI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLSAgICBy
ZXR1cm4gYXNJbnQoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGFzSW50NjQoKTsKLSNlbmRpZgotfQot
Ci0KLUxhcmdlc3RVSW50IAotVmFsdWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25zdAotewotI2lmIGRl
ZmluZWQoSlNPTl9OT19JTlQ2NCkKLSAgICByZXR1cm4gYXNVSW50KCk7Ci0jZWxzZQotICAgIHJl
dHVybiBhc1VJbnQ2NCgpOwotI2VuZGlmCi19Ci0KLQotZG91YmxlIAotVmFsdWU6OmFzRG91Ymxl
KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6
Ci0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPiggdmFsdWVfLmludF8gKTsKLSAgIGNh
c2UgdWludFZhbHVlOgotI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJT
SU9OKQotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oIHZhbHVlXy51aW50XyApOwot
I2Vsc2UgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0g
ICAgICByZXR1cm4gaW50ZWdlclRvRG91YmxlKCB2YWx1ZV8udWludF8gKTsKLSNlbmRpZiAvLyBp
ZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgIGNhc2UgcmVh
bFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgbnVsbFZhbHVlOgot
ICAgICAgcmV0dXJuIDAuMDsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZh
bHVlXy5ib29sXyA/IDEuMCA6IDAuMDsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0K
LSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZG91Ymxl
LiIpOwotfQotCi1mbG9hdAotVmFsdWU6OmFzRmxvYXQoKSBjb25zdAotewotICAgc3dpdGNoICgg
dHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxmbG9hdD4oIHZhbHVlXy5pbnRfICk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSNpZiAhZGVmaW5l
ZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxmbG9hdD4oIHZhbHVlXy51aW50XyApOwotI2Vsc2UgLy8gaWYgIWRlZmluZWQoSlNPTl9V
U0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0gICAgICByZXR1cm4gaW50ZWdlclRvRG91Ymxl
KCB2YWx1ZV8udWludF8gKTsKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9E
T1VCTEVfQ09OVkVSU0lPTikKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGZsb2F0PiggdmFsdWVfLnJlYWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAg
IHJldHVybiAwLjA7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8u
Ym9vbF8gPyAxLjBmIDogMC4wZjsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAg
IEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZmxvYXQuIik7
Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6YXNCb29sKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVf
ICkKLSAgIHsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29s
XzsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIGZhbHNlOwotICAgY2FzZSBpbnRW
YWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uaW50XyA/IHRydWUgOiBmYWxzZTsKLSAgIGNhc2Ug
dWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA/IHRydWUgOiBmYWxzZTsKLSAg
IGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA/IHRydWUgOiBmYWxz
ZTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdF
KCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gYm9vbC4iKTsKLX0KLQotCi1ib29sIAotVmFs
dWU6OmlzQ29udmVydGlibGVUbyggVmFsdWVUeXBlIG90aGVyICkgY29uc3QKLXsKLSAgIHN3aXRj
aCAoIG90aGVyICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuICggaXNO
dW1lcmljKCkgJiYgYXNEb3VibGUoKSA9PSAwLjAgKQotICAgICAgICAgICAgIHx8ICggdHlwZV8g
PT0gYm9vbGVhblZhbHVlICYmIHZhbHVlXy5ib29sXyA9PSBmYWxzZSApCi0gICAgICAgICAgICAg
fHwgKCB0eXBlXyA9PSBzdHJpbmdWYWx1ZSAmJiBhc1N0cmluZygpID09ICIiICkKLSAgICAgICAg
ICAgICB8fCAoIHR5cGVfID09IGFycmF5VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAw
ICkKLSAgICAgICAgICAgICB8fCAoIHR5cGVfID09IG9iamVjdFZhbHVlICYmIHZhbHVlXy5tYXBf
LT5zaXplKCkgPT0gMCApCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAg
Y2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiBpc0ludCgpCi0gICAgICAgICAgICAgfHwgKHR5
cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQp
KQotICAgICAgICAgICAgIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8
IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIGlz
VUludCgpCi0gICAgICAgICAgICAgfHwgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZh
bHVlXy5yZWFsXywgMCwgbWF4VUludCkpCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gYm9vbGVh
blZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSByZWFs
VmFsdWU6Ci0gICAgICByZXR1cm4gaXNOdW1lcmljKCkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9
PSBib29sZWFuVmFsdWUKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBj
YXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiBpc051bWVyaWMoKQotICAgICAgICAgICAg
IHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxW
YWx1ZTsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICByZXR1cm4gaXNOdW1lcmljKCkKLSAg
ICAgICAgICAgICB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUKLSAgICAgICAgICAgICB8fCB0eXBl
XyA9PSBzdHJpbmdWYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAg
IGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVlCi0gICAg
ICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAg
ICAgIHJldHVybiB0eXBlXyA9PSBvYmplY3RWYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09
IG51bGxWYWx1ZTsKLSAgIH0KLSAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOwotICAgcmV0dXJu
IGZhbHNlOwotfQotCi0KLS8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5IG9yIG9iamVjdAot
QXJyYXlJbmRleCAKLVZhbHVlOjpzaXplKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkK
LSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgY2FzZSBpbnRWYWx1ZToKLSAgIGNhc2UgdWlu
dFZhbHVlOgotICAgY2FzZSByZWFsVmFsdWU6Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgIGNh
c2Ugc3RyaW5nVmFsdWU6Ci0gICAgICByZXR1cm4gMDsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6ICAvLyBzaXplIG9mIHRoZSBhcnJheSBp
cyBoaWdoZXN0IGluZGV4ICsgMQotICAgICAgaWYgKCAhdmFsdWVfLm1hcF8tPmVtcHR5KCkgKQot
ICAgICAgewotICAgICAgICAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdExhc3QgPSB2
YWx1ZV8ubWFwXy0+ZW5kKCk7Ci0gICAgICAgICAtLWl0TGFzdDsKLSAgICAgICAgIHJldHVybiAo
Kml0TGFzdCkuZmlyc3QuaW5kZXgoKSsxOwotICAgICAgfQotICAgICAgcmV0dXJuIDA7Ci0gICBj
YXNlIG9iamVjdFZhbHVlOgotICAgICAgcmV0dXJuIEFycmF5SW5kZXgoIHZhbHVlXy5tYXBfLT5z
aXplKCkgKTsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICByZXR1cm4gSW50KCB2
YWx1ZV8uYXJyYXlfLT5zaXplKCkgKTsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICByZXR1
cm4gSW50KCB2YWx1ZV8ubWFwXy0+c2l6ZSgpICk7Ci0jZW5kaWYKLSAgIH0KLSAgIEpTT05fQVNT
RVJUX1VOUkVBQ0hBQkxFOwotICAgcmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOwotfQotCi0KLWJv
b2wgCi1WYWx1ZTo6ZW1wdHkoKSBjb25zdAotewotICAgaWYgKCBpc051bGwoKSB8fCBpc0FycmF5
KCkgfHwgaXNPYmplY3QoKSApCi0gICAgICByZXR1cm4gc2l6ZSgpID09IDB1OwotICAgZWxzZQot
ICAgICAgcmV0dXJuIGZhbHNlOwotfQotCi0KLWJvb2wKLVZhbHVlOjpvcGVyYXRvciEoKSBjb25z
dAotewotICAgcmV0dXJuIGlzTnVsbCgpOwotfQotCi0KLXZvaWQgCi1WYWx1ZTo6Y2xlYXIoKQot
ewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IGFycmF5
VmFsdWUgIHx8IHR5cGVfID09IG9iamVjdFZhbHVlICk7Ci0KLSAgIHN3aXRjaCAoIHR5cGVfICkK
LSAgIHsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5
VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8tPmNsZWFyKCk7
Ci0gICAgICBicmVhazsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICB2YWx1ZV8u
YXJyYXlfLT5jbGVhcigpOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAg
ICAgdmFsdWVfLm1hcF8tPmNsZWFyKCk7Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVs
dDoKLSAgICAgIGJyZWFrOwotICAgfQotfQotCi12b2lkIAotVmFsdWU6OnJlc2l6ZSggQXJyYXlJ
bmRleCBuZXdTaXplICkKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8
ICB0eXBlXyA9PSBhcnJheVZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0g
ICAgICAqdGhpcyA9IFZhbHVlKCBhcnJheVZhbHVlICk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNF
X0lOVEVSTkFMX01BUAotICAgQXJyYXlJbmRleCBvbGRTaXplID0gc2l6ZSgpOwotICAgaWYgKCBu
ZXdTaXplID09IDAgKQotICAgICAgY2xlYXIoKTsKLSAgIGVsc2UgaWYgKCBuZXdTaXplID4gb2xk
U2l6ZSApCi0gICAgICAoKnRoaXMpWyBuZXdTaXplIC0gMSBdOwotICAgZWxzZQotICAgewotICAg
ICAgZm9yICggQXJyYXlJbmRleCBpbmRleCA9IG5ld1NpemU7IGluZGV4IDwgb2xkU2l6ZTsgKytp
bmRleCApCi0gICAgICB7Ci0gICAgICAgICB2YWx1ZV8ubWFwXy0+ZXJhc2UoIGluZGV4ICk7Ci0g
ICAgICB9Ci0gICAgICBhc3NlcnQoIHNpemUoKSA9PSBuZXdTaXplICk7Ci0gICB9Ci0jZWxzZQot
ICAgdmFsdWVfLmFycmF5Xy0+cmVzaXplKCBuZXdTaXplICk7Ci0jZW5kaWYKLX0KLQotCi1WYWx1
ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggQXJyYXlJbmRleCBpbmRleCApCi17Ci0gICBKU09OX0FT
U0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSApOwotICAg
aWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAgKnRoaXMgPSBWYWx1ZSggYXJyYXlWYWx1
ZSApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIENaU3RyaW5nIGtl
eSggaW5kZXggKTsKLSAgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+
bG93ZXJfYm91bmQoIGtleSApOwotICAgaWYgKCBpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgICYm
ICAoKml0KS5maXJzdCA9PSBrZXkgKQotICAgICAgcmV0dXJuICgqaXQpLnNlY29uZDsKLQotICAg
T2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZSgga2V5LCBudWxsICk7Ci0gICBp
dCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoIGl0LCBkZWZhdWx0VmFsdWUgKTsKLSAgIHJldHVybiAo
Kml0KS5zZWNvbmQ7Ci0jZWxzZQotICAgcmV0dXJuIHZhbHVlXy5hcnJheV8tPnJlc29sdmVSZWZl
cmVuY2UoIGluZGV4ICk7Ci0jZW5kaWYKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3Jb
XSggaW50IGluZGV4ICkKLXsKLSAgIEpTT05fQVNTRVJUKCBpbmRleCA+PSAwICk7Ci0gICByZXR1
cm4gKCp0aGlzKVsgQXJyYXlJbmRleChpbmRleCkgXTsKLX0KLQotCi1jb25zdCBWYWx1ZSAmCi1W
YWx1ZTo6b3BlcmF0b3JbXSggQXJyYXlJbmRleCBpbmRleCApIGNvbnN0Ci17Ci0gICBKU09OX0FT
U0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSApOwotICAg
aWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAgcmV0dXJuIG51bGw7Ci0jaWZuZGVmIEpT
T05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgQ1pTdHJpbmcga2V5KCBpbmRleCApOwotICAg
T2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKCBrZXkg
KTsKLSAgIGlmICggaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpICkKLSAgICAgIHJldHVybiBudWxs
OwotICAgcmV0dXJuICgqaXQpLnNlY29uZDsKLSNlbHNlCi0gICBWYWx1ZSAqdmFsdWUgPSB2YWx1
ZV8uYXJyYXlfLT5maW5kKCBpbmRleCApOwotICAgcmV0dXJuIHZhbHVlID8gKnZhbHVlIDogbnVs
bDsKLSNlbmRpZgotfQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBpbnQg
aW5kZXggKSBjb25zdAotewotICAgSlNPTl9BU1NFUlQoIGluZGV4ID49IDAgKTsKLSAgIHJldHVy
biAoKnRoaXMpWyBBcnJheUluZGV4KGluZGV4KSBdOwotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpv
cGVyYXRvcltdKCBjb25zdCBjaGFyICprZXkgKQotewotICAgcmV0dXJuIHJlc29sdmVSZWZlcmVu
Y2UoIGtleSwgZmFsc2UgKTsKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZTo6cmVzb2x2ZVJlZmVyZW5j
ZSggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU3Rh
dGljICkKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9
PSBvYmplY3RWYWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAgKnRo
aXMgPSBWYWx1ZSggb2JqZWN0VmFsdWUgKTsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJO
QUxfTUFQCi0gICBDWlN0cmluZyBhY3R1YWxLZXkoIGtleSwgaXNTdGF0aWMgPyBDWlN0cmluZzo6
bm9EdXBsaWNhdGlvbiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IENa
U3RyaW5nOjpkdXBsaWNhdGVPbkNvcHkgKTsKLSAgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQg
PSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoIGFjdHVhbEtleSApOwotICAgaWYgKCBpdCAhPSB2
YWx1ZV8ubWFwXy0+ZW5kKCkgICYmICAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkgKQotICAgICAg
cmV0dXJuICgqaXQpLnNlY29uZDsKLQotICAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1
bHRWYWx1ZSggYWN0dWFsS2V5LCBudWxsICk7Ci0gICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQo
IGl0LCBkZWZhdWx0VmFsdWUgKTsKLSAgIFZhbHVlICZ2YWx1ZSA9ICgqaXQpLnNlY29uZDsKLSAg
IHJldHVybiB2YWx1ZTsKLSNlbHNlCi0gICByZXR1cm4gdmFsdWVfLm1hcF8tPnJlc29sdmVSZWZl
cmVuY2UoIGtleSwgaXNTdGF0aWMgKTsKLSNlbmRpZgotfQotCi0KLVZhbHVlIAotVmFsdWU6Omdl
dCggQXJyYXlJbmRleCBpbmRleCwgCi0gICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZh
bHVlICkgY29uc3QKLXsKLSAgIGNvbnN0IFZhbHVlICp2YWx1ZSA9ICYoKCp0aGlzKVtpbmRleF0p
OwotICAgcmV0dXJuIHZhbHVlID09ICZudWxsID8gZGVmYXVsdFZhbHVlIDogKnZhbHVlOwotfQot
Ci0KLWJvb2wgCi1WYWx1ZTo6aXNWYWxpZEluZGV4KCBBcnJheUluZGV4IGluZGV4ICkgY29uc3QK
LXsKLSAgIHJldHVybiBpbmRleCA8IHNpemUoKTsKLX0KLQotCi0KLWNvbnN0IFZhbHVlICYKLVZh
bHVlOjpvcGVyYXRvcltdKCBjb25zdCBjaGFyICprZXkgKSBjb25zdAotewotICAgSlNPTl9BU1NF
UlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IG9iamVjdFZhbHVlICk7Ci0gICBp
ZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICByZXR1cm4gbnVsbDsKLSNpZm5kZWYgSlNP
Tl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBDWlN0cmluZyBhY3R1YWxLZXkoIGtleSwgQ1pT
dHJpbmc6Om5vRHVwbGljYXRpb24gKTsKLSAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB2YWx1ZV8ubWFwXy0+ZmluZCggYWN0dWFsS2V5ICk7Ci0gICBpZiAoIGl0ID09IHZhbHVl
Xy5tYXBfLT5lbmQoKSApCi0gICAgICByZXR1cm4gbnVsbDsKLSAgIHJldHVybiAoKml0KS5zZWNv
bmQ7Ci0jZWxzZQotICAgY29uc3QgVmFsdWUgKnZhbHVlID0gdmFsdWVfLm1hcF8tPmZpbmQoIGtl
eSApOwotICAgcmV0dXJuIHZhbHVlID8gKnZhbHVlIDogbnVsbDsKLSNlbmRpZgotfQotCi0KLVZh
bHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLXsKLSAg
IHJldHVybiAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOwotfQotCi0KLWNvbnN0IFZhbHVlICYKLVZh
bHVlOjpvcGVyYXRvcltdKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3QKLXsKLSAgIHJl
dHVybiAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOwotfQotCi1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0
b3JbXSggY29uc3QgU3RhdGljU3RyaW5nICZrZXkgKQotewotICAgcmV0dXJuIHJlc29sdmVSZWZl
cmVuY2UoIGtleSwgdHJ1ZSApOwotfQotCi0KLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLVZhbHVl
ICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSApCi17
Ci0gICByZXR1cm4gKCp0aGlzKVsga2V5LmNfc3RyKCkgXTsKLX0KLQotCi1jb25zdCBWYWx1ZSAm
Ci1WYWx1ZTo6b3BlcmF0b3JbXSggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXkgKSBjb25z
dAotewotICAgcmV0dXJuICgqdGhpcylbIGtleS5jX3N0cigpIF07Ci19Ci0jIGVuZGlmCi0KLQot
VmFsdWUgJgotVmFsdWU6OmFwcGVuZCggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAgIHJldHVy
biAoKnRoaXMpW3NpemUoKV0gPSB2YWx1ZTsKLX0KLQotCi1WYWx1ZSAKLVZhbHVlOjpnZXQoIGNv
bnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkg
Y29uc3QKLXsKLSAgIGNvbnN0IFZhbHVlICp2YWx1ZSA9ICYoKCp0aGlzKVtrZXldKTsKLSAgIHJl
dHVybiB2YWx1ZSA9PSAmbnVsbCA/IGRlZmF1bHRWYWx1ZSA6ICp2YWx1ZTsKLX0KLQotCi1WYWx1
ZSAKLVZhbHVlOjpnZXQoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXksCi0gICAgICAgICAgICBjb25z
dCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3QKLXsKLSAgIHJldHVybiBnZXQoIGtleS5jX3N0
cigpLCBkZWZhdWx0VmFsdWUgKTsKLX0KLQotVmFsdWUKLVZhbHVlOjpyZW1vdmVNZW1iZXIoIGNv
bnN0IGNoYXIqIGtleSApCi17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8
fCAgdHlwZV8gPT0gb2JqZWN0VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkK
LSAgICAgIHJldHVybiBudWxsOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAK
LSAgIENaU3RyaW5nIGFjdHVhbEtleSgga2V5LCBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbiApOwot
ICAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKCBhY3R1YWxL
ZXkgKTsKLSAgIGlmICggaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpICkKLSAgICAgIHJldHVybiBu
dWxsOwotICAgVmFsdWUgb2xkKGl0LT5zZWNvbmQpOwotICAgdmFsdWVfLm1hcF8tPmVyYXNlKGl0
KTsKLSAgIHJldHVybiBvbGQ7Ci0jZWxzZQotICAgVmFsdWUgKnZhbHVlID0gdmFsdWVfLm1hcF8t
PmZpbmQoIGtleSApOwotICAgaWYgKHZhbHVlKXsKLSAgICAgIFZhbHVlIG9sZCgqdmFsdWUpOwot
ICAgICAgdmFsdWVfLm1hcF8ucmVtb3ZlKCBrZXkgKTsKLSAgICAgIHJldHVybiBvbGQ7Ci0gICB9
IGVsc2UgewotICAgICAgcmV0dXJuIG51bGw7Ci0gICB9Ci0jZW5kaWYKLX0KLQotVmFsdWUKLVZh
bHVlOjpyZW1vdmVNZW1iZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKQotewotICAgcmV0dXJu
IHJlbW92ZU1lbWJlcigga2V5LmNfc3RyKCkgKTsKLX0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBU
TAotVmFsdWUgCi1WYWx1ZTo6Z2V0KCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSwKLSAg
ICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdAotewotICAgcmV0dXJu
IGdldCgga2V5LmNfc3RyKCksIGRlZmF1bHRWYWx1ZSApOwotfQotIyBlbmRpZgotCi1ib29sIAot
VmFsdWU6OmlzTWVtYmVyKCBjb25zdCBjaGFyICprZXkgKSBjb25zdAotewotICAgY29uc3QgVmFs
dWUgKnZhbHVlID0gJigoKnRoaXMpW2tleV0pOwotICAgcmV0dXJuIHZhbHVlICE9ICZudWxsOwot
fQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNNZW1iZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKSBj
b25zdAotewotICAgcmV0dXJuIGlzTWVtYmVyKCBrZXkuY19zdHIoKSApOwotfQotCi0KLSMgaWZk
ZWYgSlNPTl9VU0VfQ1BQVEwKLWJvb2wgCi1WYWx1ZTo6aXNNZW1iZXIoIGNvbnN0IENwcFRMOjpD
b25zdFN0cmluZyAma2V5ICkgY29uc3QKLXsKLSAgIHJldHVybiBpc01lbWJlcigga2V5LmNfc3Ry
KCkgKTsKLX0KLSNlbmRpZgotCi1WYWx1ZTo6TWVtYmVycyAKLVZhbHVlOjpnZXRNZW1iZXJOYW1l
cygpIGNvbnN0Ci17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlw
ZV8gPT0gb2JqZWN0VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAg
ICByZXR1cm4gVmFsdWU6Ok1lbWJlcnMoKTsKLSAgIE1lbWJlcnMgbWVtYmVyczsKLSAgIG1lbWJl
cnMucmVzZXJ2ZSggdmFsdWVfLm1hcF8tPnNpemUoKSApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VT
RV9JTlRFUk5BTF9NQVAKLSAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1
ZV8ubWFwXy0+YmVnaW4oKTsKLSAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQg
PSB2YWx1ZV8ubWFwXy0+ZW5kKCk7Ci0gICBmb3IgKCA7IGl0ICE9IGl0RW5kOyArK2l0ICkKLSAg
ICAgIG1lbWJlcnMucHVzaF9iYWNrKCBzdGQ6OnN0cmluZyggKCppdCkuZmlyc3QuY19zdHIoKSAp
ICk7Ci0jZWxzZQotICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgIFZh
bHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgaXRFbmQ7Ci0gICB2YWx1ZV8ubWFwXy0+bWFr
ZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICB2YWx1ZV8ubWFwXy0+bWFrZUVuZEl0ZXJhdG9yKCBp
dEVuZCApOwotICAgZm9yICggOyAhVmFsdWVJbnRlcm5hbE1hcDo6ZXF1YWxzKCBpdCwgaXRFbmQg
KTsgVmFsdWVJbnRlcm5hbE1hcDo6aW5jcmVtZW50KGl0KSApCi0gICAgICBtZW1iZXJzLnB1c2hf
YmFjayggc3RkOjpzdHJpbmcoIFZhbHVlSW50ZXJuYWxNYXA6OmtleSggaXQgKSApICk7Ci0jZW5k
aWYKLSAgIHJldHVybiBtZW1iZXJzOwotfQotLy8KLS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAot
Ly9FbnVtTWVtYmVyTmFtZXMKLS8vVmFsdWU6OmVudW1NZW1iZXJOYW1lcygpIGNvbnN0Ci0vL3sK
LS8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RWYWx1ZSApCi0vLyAgIHsKLS8vICAgICAgcmV0dXJu
IENwcFRMOjpFbnVtOjphbnkoICBDcHBUTDo6RW51bTo6dHJhbnNmb3JtKAotLy8gICAgICAgICBD
cHBUTDo6RW51bTo6a2V5cyggKih2YWx1ZV8ubWFwXyksIENwcFRMOjpUeXBlPGNvbnN0IENaU3Ry
aW5nICY+KCkgKSwKLS8vICAgICAgICAgTWVtYmVyTmFtZXNUcmFuc2Zvcm0oKSApICk7Ci0vLyAg
IH0KLS8vICAgcmV0dXJuIEVudW1NZW1iZXJOYW1lcygpOwotLy99Ci0vLwotLy8KLS8vRW51bVZh
bHVlcyAKLS8vVmFsdWU6OmVudW1WYWx1ZXMoKSBjb25zdAotLy97Ci0vLyAgIGlmICggdHlwZV8g
PT0gb2JqZWN0VmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICkKLS8vICAgICAgcmV0dXJu
IENwcFRMOjpFbnVtOjphbnlWYWx1ZXMoICoodmFsdWVfLm1hcF8pLCAKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENwcFRMOjpUeXBlPGNvbnN0IFZhbHVlICY+KCkgKTsK
LS8vICAgcmV0dXJuIEVudW1WYWx1ZXMoKTsKLS8vfQotLy8KLS8vIyBlbmRpZgotCi1zdGF0aWMg
Ym9vbCBJc0ludGVncmFsKGRvdWJsZSBkKSB7Ci0gIGRvdWJsZSBpbnRlZ3JhbF9wYXJ0OwotICBy
ZXR1cm4gbW9kZihkLCAmaW50ZWdyYWxfcGFydCkgPT0gMC4wOwotfQotCi0KLWJvb2wKLVZhbHVl
Ojppc051bGwoKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09IG51bGxWYWx1ZTsKLX0KLQot
Ci1ib29sIAotVmFsdWU6OmlzQm9vbCgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gYm9v
bGVhblZhbHVlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNJbnQoKSBjb25zdAotewotICAgc3dp
dGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1
ZV8uaW50XyA+PSBtaW5JbnQgICYmICB2YWx1ZV8uaW50XyA8PSBtYXhJbnQ7Ci0gICBjYXNlIHVp
bnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludChtYXhJbnQpOwotICAg
Y2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IG1pbkludCAmJgot
ICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8PSBtYXhJbnQgJiYKLSAgICAgICAgICAgICBJc0lu
dGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0g
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjppc1VJbnQoKSBjb25zdAotewot
ICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVy
biB2YWx1ZV8uaW50XyA+PSAwICYmIExhcmdlc3RVSW50KHZhbHVlXy5pbnRfKSA8PSBMYXJnZXN0
VUludChtYXhVSW50KTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51
aW50XyA8PSBtYXhVSW50OwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVf
LnJlYWxfID49IDAgJiYKLSAgICAgICAgICAgICB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAmJgot
ICAgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAg
ICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCAKLVZhbHVlOjppc0lu
dDY0KCkgY29uc3QKLXsKLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgIHN3aXRjaCAo
IHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgIHJldHVybiB0cnVlOwotICAg
Y2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQ2NChtYXhJ
bnQ2NCk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIC8vIE5vdGUgdGhhdCBtYXhJbnQ2NCAo
PSAyXjYzIC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCi0gICAgICAvLyBk
b3VibGUsIHNvIGRvdWJsZShtYXhJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjMuIFRo
ZXJlZm9yZSB3ZQotICAgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVz
cyB0aGFuIHRoZSBsaW1pdC4KLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gZG91YmxlKG1p
bkludDY0KSAmJgotICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IGRvdWJsZShtYXhJbnQ2NCkg
JiYKLSAgICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gICBkZWZhdWx0Ogot
ICAgICAgYnJlYWs7Ci0gICB9Ci0jIGVuZGlmICAvLyBKU09OX0hBU19JTlQ2NAotICAgcmV0dXJu
IGZhbHNlOwotfQotCi1ib29sIAotVmFsdWU6OmlzVUludDY0KCkgY29uc3QKLXsKLSMgaWYgZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2Ug
aW50VmFsdWU6Ci0gICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAwOwotICAgY2FzZSB1aW50VmFs
dWU6Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgLy8gTm90
ZSB0aGF0IG1heFVJbnQ2NCAoPSAyXjY0IC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJs
ZSBhcyBhCi0gICAgICAvLyBkb3VibGUsIHNvIGRvdWJsZShtYXhVSW50NjQpIHdpbGwgYmUgcm91
bmRlZCB1cCB0byAyXjY0LiBUaGVyZWZvcmUgd2UKLSAgICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVl
IHRvIGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgbGltaXQuCi0gICAgICByZXR1cm4gdmFsdWVf
LnJlYWxfID49IDAgJiYKLSAgICAgICAgICAgICB2YWx1ZV8ucmVhbF8gPCBtYXhVSW50NjRBc0Rv
dWJsZSAmJgotICAgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1
bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSMgZW5kaWYgIC8vIEpTT05fSEFTX0lOVDY0Ci0gICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjppc0ludGVncmFsKCkgY29uc3QKLXsK
LSNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICByZXR1cm4gaXNJbnQ2NCgpIHx8IGlzVUlu
dDY0KCk7Ci0jZWxzZQotICByZXR1cm4gaXNJbnQoKSB8fCBpc1VJbnQoKTsKLSNlbmRpZgotfQot
Ci0KLWJvb2wgCi1WYWx1ZTo6aXNEb3VibGUoKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09
IHJlYWxWYWx1ZSB8fCBpc0ludGVncmFsKCk7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjppc051bWVy
aWMoKSBjb25zdAotewotICAgcmV0dXJuIGlzSW50ZWdyYWwoKSB8fCBpc0RvdWJsZSgpOwotfQot
Ci0KLWJvb2wgCi1WYWx1ZTo6aXNTdHJpbmcoKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09
IHN0cmluZ1ZhbHVlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNBcnJheSgpIGNvbnN0Ci17Ci0g
ICByZXR1cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzT2Jq
ZWN0KCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXyA9PSBvYmplY3RWYWx1ZTsKLX0KLQotCi12
b2lkIAotVmFsdWU6OnNldENvbW1lbnQoIGNvbnN0IGNoYXIgKmNvbW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKQotewotICAgaWYgKCAhY29tbWVu
dHNfICkKLSAgICAgIGNvbW1lbnRzXyA9IG5ldyBDb21tZW50SW5mb1tudW1iZXJPZkNvbW1lbnRQ
bGFjZW1lbnRdOwotICAgY29tbWVudHNfW3BsYWNlbWVudF0uc2V0Q29tbWVudCggY29tbWVudCAp
OwotfQotCi0KLXZvaWQgCi1WYWx1ZTo6c2V0Q29tbWVudCggY29uc3Qgc3RkOjpzdHJpbmcgJmNv
bW1lbnQsCi0gICAgICAgICAgICAgICAgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKQot
ewotICAgc2V0Q29tbWVudCggY29tbWVudC5jX3N0cigpLCBwbGFjZW1lbnQgKTsKLX0KLQotCi1i
b29sIAotVmFsdWU6Omhhc0NvbW1lbnQoIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29u
c3QKLXsKLSAgIHJldHVybiBjb21tZW50c18gIT0gMCAgJiYgIGNvbW1lbnRzX1twbGFjZW1lbnRd
LmNvbW1lbnRfICE9IDA7Ci19Ci0KLXN0ZDo6c3RyaW5nIAotVmFsdWU6OmdldENvbW1lbnQoIENv
bW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29uc3QKLXsKLSAgIGlmICggaGFzQ29tbWVudChw
bGFjZW1lbnQpICkKLSAgICAgIHJldHVybiBjb21tZW50c19bcGxhY2VtZW50XS5jb21tZW50XzsK
LSAgIHJldHVybiAiIjsKLX0KLQotCi1zdGQ6OnN0cmluZyAKLVZhbHVlOjp0b1N0eWxlZFN0cmlu
ZygpIGNvbnN0Ci17Ci0gICBTdHlsZWRXcml0ZXIgd3JpdGVyOwotICAgcmV0dXJuIHdyaXRlci53
cml0ZSggKnRoaXMgKTsKLX0KLQotCi1WYWx1ZTo6Y29uc3RfaXRlcmF0b3IgCi1WYWx1ZTo6YmVn
aW4oKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotI2lmZGVmIEpTT05fVkFM
VUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgaWYgKCB2YWx1
ZV8uYXJyYXlfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0
b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5hcnJheV8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBp
dCApOwotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAg
ICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFwXyAp
Ci0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0Owot
ICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgICAgICAg
cmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0jZWxz
ZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICgg
dmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCB2YWx1ZV8ubWFw
Xy0+YmVnaW4oKSApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBi
cmVhazsKLSAgIH0KLSAgIHJldHVybiBjb25zdF9pdGVyYXRvcigpOwotfQotCi1WYWx1ZTo6Y29u
c3RfaXRlcmF0b3IgCi1WYWx1ZTo6ZW5kKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkK
LSAgIHsKLSNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlW
YWx1ZToKLSAgICAgIGlmICggdmFsdWVfLmFycmF5XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1
ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlf
LT5tYWtlRW5kSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3Io
IGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAg
ICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6
Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8ubWFwXy0+bWFrZUVuZEl0ZXJhdG9y
KCBpdCApOwotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQot
ICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RW
YWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0
ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+ZW5kKCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBk
ZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsK
LX0KLQotCi1WYWx1ZTo6aXRlcmF0b3IgCi1WYWx1ZTo6YmVnaW4oKQotewotICAgc3dpdGNoICgg
dHlwZV8gKQotICAgewotI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2Fz
ZSBhcnJheVZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8uYXJyYXlfICkKLSAgICAgIHsKLSAgICAg
ICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVl
Xy5hcnJheV8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0ZXJh
dG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgot
ICAgICAgaWYgKCB2YWx1ZV8ubWFwXyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFs
TWFwOjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VCZWdpbkl0
ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCBpdCApOwotICAgICAgfQot
ICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RW
YWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9y
KCB2YWx1ZV8ubWFwXy0+YmVnaW4oKSApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1
bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBpdGVyYXRvcigpOwotfQotCi1WYWx1
ZTo6aXRlcmF0b3IgCi1WYWx1ZTo6ZW5kKCkKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsK
LSNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToK
LSAgICAgIGlmICggdmFsdWVfLmFycmF5XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVy
bmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlfLT5tYWtl
RW5kSXRlcmF0b3IoIGl0ICk7Ci0gICAgICAgICByZXR1cm4gaXRlcmF0b3IoIGl0ICk7Ci0gICAg
ICB9Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVl
Xy5tYXBfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3Rh
dGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8ubWFwXy0+bWFrZUVuZEl0ZXJhdG9yKCBpdCApOwotICAg
ICAgICAgcmV0dXJuIGl0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0jZWxz
ZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICgg
dmFsdWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+ZW5k
KCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0g
ICB9Ci0gICByZXR1cm4gaXRlcmF0b3IoKTsKLX0KLQotCi0vLyBjbGFzcyBQYXRoQXJndW1lbnQK
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwotCi1QYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCgpCi0gICA6IGtleV8o
KQotICAgLCBpbmRleF8oKQotICAgLCBraW5kXygga2luZE5vbmUgKQotewotfQotCi0KLVBhdGhB
cmd1bWVudDo6UGF0aEFyZ3VtZW50KCBBcnJheUluZGV4IGluZGV4ICkKLSAgIDoga2V5XygpCi0g
ICAsIGluZGV4XyggaW5kZXggKQotICAgLCBraW5kXygga2luZEluZGV4ICkKLXsKLX0KLQotCi1Q
YXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCggY29uc3QgY2hhciAqa2V5ICkKLSAgIDoga2V5Xygg
a2V5ICkKLSAgICwgaW5kZXhfKCkKLSAgICwga2luZF8oIGtpbmRLZXkgKQotewotfQotCi0KLVBh
dGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLSAgIDog
a2V5Xygga2V5LmNfc3RyKCkgKQotICAgLCBpbmRleF8oKQotICAgLCBraW5kXygga2luZEtleSAp
Ci17Ci19Ci0KLS8vIGNsYXNzIFBhdGgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1QYXRoOjpQYXRoKCBjb25z
dCBzdGQ6OnN0cmluZyAmcGF0aCwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTEs
Ci0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmEyLAotICAgICAgICAgICAgY29uc3Qg
UGF0aEFyZ3VtZW50ICZhMywKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTQsCi0g
ICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmE1ICkKLXsKLSAgIEluQXJncyBpbjsKLSAg
IGluLnB1c2hfYmFjayggJmExICk7Ci0gICBpbi5wdXNoX2JhY2soICZhMiApOwotICAgaW4ucHVz
aF9iYWNrKCAmYTMgKTsKLSAgIGluLnB1c2hfYmFjayggJmE0ICk7Ci0gICBpbi5wdXNoX2JhY2so
ICZhNSApOwotICAgbWFrZVBhdGgoIHBhdGgsIGluICk7Ci19Ci0KLQotdm9pZCAKLVBhdGg6Om1h
a2VQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwKLSAgICAgICAgICAgICAgICBjb25zdCBJ
bkFyZ3MgJmluICkKLXsKLSAgIGNvbnN0IGNoYXIgKmN1cnJlbnQgPSBwYXRoLmNfc3RyKCk7Ci0g
ICBjb25zdCBjaGFyICplbmQgPSBjdXJyZW50ICsgcGF0aC5sZW5ndGgoKTsKLSAgIEluQXJnczo6
Y29uc3RfaXRlcmF0b3IgaXRJbkFyZyA9IGluLmJlZ2luKCk7Ci0gICB3aGlsZSAoIGN1cnJlbnQg
IT0gZW5kICkKLSAgIHsKLSAgICAgIGlmICggKmN1cnJlbnQgPT0gJ1snICkKLSAgICAgIHsKLSAg
ICAgICAgICsrY3VycmVudDsKLSAgICAgICAgIGlmICggKmN1cnJlbnQgPT0gJyUnICkKLSAgICAg
ICAgICAgIGFkZFBhdGhJbkFyZyggcGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2lu
ZEluZGV4ICk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICB7Ci0gICAgICAgICAgICBBcnJheUlu
ZGV4IGluZGV4ID0gMDsKLSAgICAgICAgICAgIGZvciAoIDsgY3VycmVudCAhPSBlbmQgJiYgKmN1
cnJlbnQgPj0gJzAnICAmJiAgKmN1cnJlbnQgPD0gJzknOyArK2N1cnJlbnQgKQotICAgICAgICAg
ICAgICAgaW5kZXggPSBpbmRleCAqIDEwICsgQXJyYXlJbmRleCgqY3VycmVudCAtICcwJyk7Ci0g
ICAgICAgICAgICBhcmdzXy5wdXNoX2JhY2soIGluZGV4ICk7Ci0gICAgICAgICB9Ci0gICAgICAg
ICBpZiAoIGN1cnJlbnQgPT0gZW5kICB8fCAgKmN1cnJlbnQrKyAhPSAnXScgKQotICAgICAgICAg
ICAgaW52YWxpZFBhdGgoIHBhdGgsIGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSApOwotICAg
ICAgfQotICAgICAgZWxzZSBpZiAoICpjdXJyZW50ID09ICclJyApCi0gICAgICB7Ci0gICAgICAg
ICBhZGRQYXRoSW5BcmcoIHBhdGgsIGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRLZXkg
KTsKLSAgICAgICAgICsrY3VycmVudDsKLSAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCAqY3VycmVu
dCA9PSAnLicgKQotICAgICAgewotICAgICAgICAgKytjdXJyZW50OwotICAgICAgfQotICAgICAg
ZWxzZQotICAgICAgewotICAgICAgICAgY29uc3QgY2hhciAqYmVnaW5OYW1lID0gY3VycmVudDsK
LSAgICAgICAgIHdoaWxlICggY3VycmVudCAhPSBlbmQgICYmICAhc3RyY2hyKCAiWy4iLCAqY3Vy
cmVudCApICkKLSAgICAgICAgICAgICsrY3VycmVudDsKLSAgICAgICAgIGFyZ3NfLnB1c2hfYmFj
ayggc3RkOjpzdHJpbmcoIGJlZ2luTmFtZSwgY3VycmVudCApICk7Ci0gICAgICB9Ci0gICB9Ci19
Ci0KLQotdm9pZCAKLVBhdGg6OmFkZFBhdGhJbkFyZyggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgs
IAotICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluLCAKLSAgICAgICAgICAgICAg
ICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciAmaXRJbkFyZywgCi0gICAgICAgICAgICAgICAg
ICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kICkKLXsKLSAgIGlmICggaXRJbkFyZyA9PSBpbi5l
bmQoKSApCi0gICB7Ci0gICAgICAvLyBFcnJvcjogbWlzc2luZyBhcmd1bWVudCAlZAotICAgfQot
ICAgZWxzZSBpZiAoICgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQgKQotICAgewotICAgICAgLy8g
RXJyb3I6IGJhZCBhcmd1bWVudCB0eXBlCi0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAgICBhcmdz
Xy5wdXNoX2JhY2soICoqaXRJbkFyZyApOwotICAgfQotfQotCi0KLXZvaWQgCi1QYXRoOjppbnZh
bGlkUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAgICAgICAgIGlu
dCBsb2NhdGlvbiApCi17Ci0gICAvLyBFcnJvcjogaW52YWxpZCBwYXRoLgotfQotCi0KLWNvbnN0
IFZhbHVlICYKLVBhdGg6OnJlc29sdmUoIGNvbnN0IFZhbHVlICZyb290ICkgY29uc3QKLXsKLSAg
IGNvbnN0IFZhbHVlICpub2RlID0gJnJvb3Q7Ci0gICBmb3IgKCBBcmdzOjpjb25zdF9pdGVyYXRv
ciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0ICkKLSAgIHsKLSAg
ICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYXJnID0gKml0OwotICAgICAgaWYgKCBhcmcua2luZF8g
PT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKQotICAgICAgewotICAgICAgICAgaWYgKCAhbm9k
ZS0+aXNBcnJheSgpICB8fCAgIW5vZGUtPmlzVmFsaWRJbmRleCggYXJnLmluZGV4XyApICkKLSAg
ICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChh
cnJheSB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLgotICAgICAgICAgfQotICAgICAgICAg
bm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICgg
YXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSApCi0gICAgICB7Ci0gICAgICAgICBp
ZiAoICFub2RlLT5pc09iamVjdCgpICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9y
OiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChvYmplY3QgdmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRp
b24uLi4pCi0gICAgICAgICB9Ci0gICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7
Ci0gICAgICAgICBpZiAoIG5vZGUgPT0gJlZhbHVlOjpudWxsICkKLSAgICAgICAgIHsKLSAgICAg
ICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChvYmplY3QgaGFzIG5vIG1l
bWJlciBuYW1lZCAnJyBhdCBwb3NpdGlvbi4uLikKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0K
LSAgIHJldHVybiAqbm9kZTsKLX0KLQotCi1WYWx1ZSAKLVBhdGg6OnJlc29sdmUoIGNvbnN0IFZh
bHVlICZyb290LCAKLSAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBj
b25zdAotewotICAgY29uc3QgVmFsdWUgKm5vZGUgPSAmcm9vdDsKLSAgIGZvciAoIEFyZ3M6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQg
KQotICAgewotICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhcmcgPSAqaXQ7Ci0gICAgICBpZiAo
IGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCApCi0gICAgICB7Ci0gICAgICAg
ICBpZiAoICFub2RlLT5pc0FycmF5KCkgIHx8ICAhbm9kZS0+aXNWYWxpZEluZGV4KCBhcmcuaW5k
ZXhfICkgKQotICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgIG5vZGUg
PSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoIGFyZy5r
aW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKQotICAgICAgewotICAgICAgICAgaWYgKCAh
bm9kZS0+aXNPYmplY3QoKSApCi0gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAg
ICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwotICAgICAgICAgaWYgKCBub2RlID09
ICZWYWx1ZTo6bnVsbCApCi0gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgICAg
fQotICAgfQotICAgcmV0dXJuICpub2RlOwotfQotCi0KLVZhbHVlICYKLVBhdGg6Om1ha2UoIFZh
bHVlICZyb290ICkgY29uc3QKLXsKLSAgIFZhbHVlICpub2RlID0gJnJvb3Q7Ci0gICBmb3IgKCBB
cmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgp
OyArK2l0ICkKLSAgIHsKLSAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYXJnID0gKml0OwotICAg
ICAgaWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKQotICAgICAgewot
ICAgICAgICAgaWYgKCAhbm9kZS0+aXNBcnJheSgpICkKLSAgICAgICAgIHsKLSAgICAgICAgICAg
IC8vIEVycm9yOiBub2RlIGlzIG5vdCBhbiBhcnJheSBhdCBwb3NpdGlvbiAuLi4KLSAgICAgICAg
IH0KLSAgICAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOwotICAgICAgfQotICAg
ICAgZWxzZSBpZiAoIGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKQotICAgICAg
ewotICAgICAgICAgaWYgKCAhbm9kZS0+aXNPYmplY3QoKSApCi0gICAgICAgICB7Ci0gICAgICAg
ICAgICAvLyBFcnJvcjogbm9kZSBpcyBub3QgYW4gb2JqZWN0IGF0IHBvc2l0aW9uLi4uCi0gICAg
ICAgICB9Ci0gICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICB9Ci0g
ICB9Ci0gICByZXR1cm4gKm5vZGU7Ci19Ci0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3BhdGNoZXMvdmFsdWUuaC5kaWZmIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3BhdGNoZXMvdmFsdWUuaC5kaWZmCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiY2U1N2IyZGE3NDE4ODUzZTZjZGUxY2NjMDQzZDdlMGJhYTM5
YWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9wYXRjaGVz
L3ZhbHVlLmguZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLWRpZmYgLS1naXQg
ImEvc291cmNlXFxpbmNsdWRlXFxqc29uXFx2YWx1ZS5oIiAiYi9vdmVycmlkZXNcXGluY2x1ZGVc
XGpzb25cXHZhbHVlLmgiCi1pbmRleCBiMDEzYzliLi41NzA3MjYwIDEwMDY0NAotLS0tICJhL3Nv
dXJjZVxcaW5jbHVkZVxcanNvblxcdmFsdWUuaCIKLSsrKyAiYi9vdmVycmlkZXNcXGluY2x1ZGVc
XGpzb25cXHZhbHVlLmgiCi1AQCAtNyw3ICs3LDcgQEAKLSAjIGRlZmluZSBDUFBUTF9KU09OX0hf
SU5DTFVERUQKLSAKLSAjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0tIyBpbmNs
dWRlICJmb3J3YXJkcy5oIgotKyMgaW5jbHVkZSAidGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
aW5jbHVkZS9qc29uL2ZvcndhcmRzLmgiCi0gI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNf
QU1BTEdBTUFUSU9OKQotICMgaW5jbHVkZSA8c3RyaW5nPgotICMgaW5jbHVkZSA8dmVjdG9yPgot
QEAgLTEzNiw3ICsxMzYsNyBAQCBuYW1lc3BhY2UgSnNvbiB7Ci0gICAgICAgdHlwZWRlZiBKc29u
OjpMYXJnZXN0VUludCBMYXJnZXN0VUludDsKLSAgICAgICB0eXBlZGVmIEpzb246OkFycmF5SW5k
ZXggQXJyYXlJbmRleDsKLSAKLS0gICAgICBzdGF0aWMgY29uc3QgVmFsdWUgbnVsbDsKLSsgICAg
ICBzdGF0aWMgY29uc3QgVmFsdWUmIG51bGw7Ci0gICAgICAgLy8vIE1pbmltdW0gc2lnbmVkIGlu
dGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICAg
c3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWluTGFyZ2VzdEludDsKLSAgICAgICAvLy8gTWF4aW11
bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1
ZS4KLUBAIC00OTYsMTAgKzQ5NiwxMiBAQCBuYW1lc3BhY2UgSnNvbiB7Ci0gIyBlbmRpZgotICAg
ICAgIH0gdmFsdWVfOwotICAgICAgIFZhbHVlVHlwZSB0eXBlXyA6IDg7Ci0tICAgICAgaW50IGFs
bG9jYXRlZF8gOiAxOyAgICAgLy8gTm90ZXM6IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxk
IGlzIHVzZWxlc3MuCi0rICAgICAgLy8gT25lLWJpdCBiaXRmaWVsZHMgbXVzdCBiZSB1bnNpZ25l
ZCB0byBhbGxvdyBzdG9yaW5nIDEuCi0rICAgICAgLy8gVGhleSBtdXN0IGJlIDMyLWJpdHMgdG8g
c2hhcmUgc3RvcmFnZSB3aXRoIFZhbHVlSG9sZGVyLgotKyAgICAgIHVuc2lnbmVkIGludCBhbGxv
Y2F0ZWRfIDogMTsKLSAjIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAg
IHVuc2lnbmVkIGludCBpdGVtSXNVc2VkXyA6IDE7ICAgICAgLy8gdXNlZCBieSB0aGUgVmFsdWVJ
bnRlcm5hbE1hcCBjb250YWluZXIuCi0tICAgICAgaW50IG1lbWJlck5hbWVJc1N0YXRpY18gOiAx
OyAgICAgICAvLyB1c2VkIGJ5IHRoZSBWYWx1ZUludGVybmFsTWFwIGNvbnRhaW5lci4KLSsgICAg
ICB1bnNpZ25lZCBpbnQgbWVtYmVyTmFtZUlzU3RhdGljXyA6IDE7IC8vIHVzZWQgYnkgdGhlIFZh
bHVlSW50ZXJuYWxNYXAgY29udGFpbmVyLgotICMgZW5kaWYKLSAgICAgICBDb21tZW50SW5mbyAq
Y29tbWVudHNfOwotICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5jbGFuZy1mb3JtYXQgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
Ly5jbGFuZy1mb3JtYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEzNzJmYzViZWViMjBiYzI1NGQzNjg0OGEyMjQy
MDY5ZmM5Yzg0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmNsYW5nLWZvcm1hdApAQCAtMCww
ICsxLDQ3IEBACistLS0KKyMgQmFzZWRPblN0eWxlOiAgTExWTQorQWNjZXNzTW9kaWZpZXJPZmZz
ZXQ6IC0yCitDb25zdHJ1Y3RvckluaXRpYWxpemVySW5kZW50V2lkdGg6IDQKK0FsaWduRXNjYXBl
ZE5ld2xpbmVzTGVmdDogZmFsc2UKK0FsaWduVHJhaWxpbmdDb21tZW50czogdHJ1ZQorQWxsb3dB
bGxQYXJhbWV0ZXJzT2ZEZWNsYXJhdGlvbk9uTmV4dExpbmU6IHRydWUKK0FsbG93U2hvcnRJZlN0
YXRlbWVudHNPbkFTaW5nbGVMaW5lOiBmYWxzZQorQWxsb3dTaG9ydExvb3BzT25BU2luZ2xlTGlu
ZTogZmFsc2UKK0Fsd2F5c0JyZWFrVGVtcGxhdGVEZWNsYXJhdGlvbnM6IGZhbHNlCitBbHdheXNC
cmVha0JlZm9yZU11bHRpbGluZVN0cmluZ3M6IGZhbHNlCitCcmVha0JlZm9yZUJpbmFyeU9wZXJh
dG9yczogZmFsc2UKK0JyZWFrQmVmb3JlVGVybmFyeU9wZXJhdG9yczogdHJ1ZQorQnJlYWtDb25z
dHJ1Y3RvckluaXRpYWxpemVyc0JlZm9yZUNvbW1hOiBmYWxzZQorQmluUGFja1BhcmFtZXRlcnM6
IGZhbHNlCitDb2x1bW5MaW1pdDogICAgIDgwCitDb25zdHJ1Y3RvckluaXRpYWxpemVyQWxsT25P
bmVMaW5lT3JPbmVQZXJMaW5lOiBmYWxzZQorRGVyaXZlUG9pbnRlckJpbmRpbmc6IGZhbHNlCitF
eHBlcmltZW50YWxBdXRvRGV0ZWN0QmluUGFja2luZzogZmFsc2UKK0luZGVudENhc2VMYWJlbHM6
IGZhbHNlCitNYXhFbXB0eUxpbmVzVG9LZWVwOiAxCitOYW1lc3BhY2VJbmRlbnRhdGlvbjogTm9u
ZQorT2JqQ1NwYWNlQmVmb3JlUHJvdG9jb2xMaXN0OiB0cnVlCitQZW5hbHR5QnJlYWtCZWZvcmVG
aXJzdENhbGxQYXJhbWV0ZXI6IDE5CitQZW5hbHR5QnJlYWtDb21tZW50OiA2MAorUGVuYWx0eUJy
ZWFrU3RyaW5nOiAxMDAwCitQZW5hbHR5QnJlYWtGaXJzdExlc3NMZXNzOiAxMjAKK1BlbmFsdHlF
eGNlc3NDaGFyYWN0ZXI6IDEwMDAwMDAKK1BlbmFsdHlSZXR1cm5UeXBlT25JdHNPd25MaW5lOiA2
MAorUG9pbnRlckJpbmRzVG9UeXBlOiB0cnVlCitTcGFjZXNCZWZvcmVUcmFpbGluZ0NvbW1lbnRz
OiAxCitDcHAxMUJyYWNlZExpc3RTdHlsZTogdHJ1ZQorU3RhbmRhcmQ6ICAgICAgICBDcHAxMQor
SW5kZW50V2lkdGg6ICAgICAyCitUYWJXaWR0aDogICAgICAgIDgKK1VzZVRhYjogICAgICAgICAg
TmV2ZXIKK0JyZWFrQmVmb3JlQnJhY2VzOiBBdHRhY2gKK0luZGVudEZ1bmN0aW9uRGVjbGFyYXRp
b25BZnRlclR5cGU6IGZhbHNlCitTcGFjZXNJblBhcmVudGhlc2VzOiBmYWxzZQorU3BhY2VzSW5B
bmdsZXM6ICBmYWxzZQorU3BhY2VJbkVtcHR5UGFyZW50aGVzZXM6IGZhbHNlCitTcGFjZXNJbkNT
dHlsZUNhc3RQYXJlbnRoZXNlczogZmFsc2UKK1NwYWNlQWZ0ZXJDb250cm9sU3RhdGVtZW50S2V5
d29yZDogdHJ1ZQorU3BhY2VCZWZvcmVBc3NpZ25tZW50T3BlcmF0b3JzOiB0cnVlCitDb250aW51
YXRpb25JbmRlbnRXaWR0aDogNAorLi4uCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGF0dHJpYnV0
ZXMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlLy5naXRhdHRyaWJ1dGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyZDJiN2E0NTVhMzhhNGMzZWVl
NGZkYTYwMmE1ODZmMzk2YWI4MTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRhdHRyaWJ1
dGVzCkBAIC0wLDAgKzEsMTEgQEAKKyogICAgICAgICAgIHRleHQ9YXV0bworKi5oICAgICAgICAg
dGV4dAorKi5jcHAgICAgICAgdGV4dAorKi5qc29uICAgICAgdGV4dAorKi5pbiAgICAgICAgdGV4
dAorKi5zaCAgICAgICAgZW9sPWxmCisqLmJhdCAgICAgICBlb2w9Y3JsZgorKi52Y3Byb2ogICAg
ZW9sPWNybGYKKyoudmN4cHJvaiAgIGVvbD1jcmxmCisqLnNsbiAgICAgICBlb2w9Y3JsZgorZGV2
dG9vbHMvYWdlbnRfdm0qIGVvbD1jcmxmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRodWIvSVNTVUVf
VEVNUExBVEUvYnVnX3JlcG9ydC5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS9idWdf
cmVwb3J0Lm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1NDc3MDk3YTYzNWIxNjllMWI3OTY3MzJhZDUyZWY3MTQ2
NWNkZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRodWIvSVNTVUVfVEVNUExBVEUvYnVn
X3JlcG9ydC5tZApAQCAtMCwwICsxLDI2IEBACistLS0KK25hbWU6IEJ1ZyByZXBvcnQKK2Fib3V0
OiBDcmVhdGUgYSByZXBvcnQgdG8gaGVscCB1cyBpbXByb3ZlCit0aXRsZTogJycKK2xhYmVsczog
JycKK2Fzc2lnbmVlczogJycKKworLS0tCisKKyoqRGVzY3JpYmUgdGhlIGJ1ZyoqCitBIGNsZWFy
IGFuZCBjb25jaXNlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIGJ1ZyBpcy4KKworKipUbyBSZXBy
b2R1Y2UqKgorU3RlcHMgdG8gcmVwcm9kdWNlIHRoZSBiZWhhdmlvcjoKKzEuCisKKyoqRXhwZWN0
ZWQgYmVoYXZpb3IqKgorQSBjbGVhciBhbmQgY29uY2lzZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHlv
dSBleHBlY3RlZCB0byBoYXBwZW4uCisKKyoqRGVza3RvcCAocGxlYXNlIGNvbXBsZXRlIHRoZSBm
b2xsb3dpbmcgaW5mb3JtYXRpb24pOioqCisgLSBPUzogW2UuZy4gaU9TXQorIC0gTWVzb24gdmVy
c2lvbgorIC0gTmluamEgdmVyc2lvbgorCisqKkFkZGl0aW9uYWwgY29udGV4dCoqCitBZGQgYW55
IG90aGVyIGNvbnRleHQgYWJvdXQgdGhlIHByb2JsZW0gaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
LmdpdGh1Yi9JU1NVRV9URU1QTEFURS9mZWF0dXJlX3JlcXVlc3QubWQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRodWIv
SVNTVUVfVEVNUExBVEUvZmVhdHVyZV9yZXF1ZXN0Lm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiY2JiZTdkNjE1
NThhZGRlM2NiZmQwYzdhNjNhNjdjMjdlZDZkMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5n
aXRodWIvSVNTVUVfVEVNUExBVEUvZmVhdHVyZV9yZXF1ZXN0Lm1kCkBAIC0wLDAgKzEsMjAgQEAK
Ky0tLQorbmFtZTogRmVhdHVyZSByZXF1ZXN0CithYm91dDogU3VnZ2VzdCBhbiBpZGVhIGZvciB0
aGlzIHByb2plY3QKK3RpdGxlOiAnJworbGFiZWxzOiAnJworYXNzaWduZWVzOiAnJworCistLS0K
KworKipJcyB5b3VyIGZlYXR1cmUgcmVxdWVzdCByZWxhdGVkIHRvIGEgcHJvYmxlbT8gUGxlYXNl
IGRlc2NyaWJlLioqCitBIGNsZWFyIGFuZCBjb25jaXNlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhl
IHByb2JsZW0gaXMuIEV4LiBJJ20gYWx3YXlzIGZydXN0cmF0ZWQgd2hlbiBbLi4uXQorCisqKkRl
c2NyaWJlIHRoZSBzb2x1dGlvbiB5b3UnZCBsaWtlKioKK0EgY2xlYXIgYW5kIGNvbmNpc2UgZGVz
Y3JpcHRpb24gb2Ygd2hhdCB5b3Ugd2FudCB0byBoYXBwZW4uCisKKyoqRGVzY3JpYmUgYWx0ZXJu
YXRpdmVzIHlvdSd2ZSBjb25zaWRlcmVkKioKK0EgY2xlYXIgYW5kIGNvbmNpc2UgZGVzY3JpcHRp
b24gb2YgYW55IGFsdGVybmF0aXZlIHNvbHV0aW9ucyBvciBmZWF0dXJlcyB5b3UndmUgY29uc2lk
ZXJlZC4KKworKipBZGRpdGlvbmFsIGNvbnRleHQqKgorQWRkIGFueSBvdGhlciBjb250ZXh0IG9y
IHNjcmVlbnNob3RzIGFib3V0IHRoZSBmZWF0dXJlIHJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvLmdpdGlnbm9yZSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDIwNjk3YzIz
MzU4MDJjYjM1ZDM2MGY1OTU4YTBkZTZlOGEyMDI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8u
Z2l0aWdub3JlCkBAIC0wLDAgKzEsNTUgQEAKKy9idWlsZC8KKy9idWlsZC0qLworKi5weWMKKyou
c3dwCisqLmFjdHVhbAorKi5hY3R1YWwtcmV3cml0ZQorKi5wcm9jZXNzLW91dHB1dAorKi5yZXdy
aXRlCisvYmluLworL2xpYnMvCisvZG9jL2RveHlmaWxlCisvZGlzdC8KKyMvdmVyc2lvbgorIy9p
bmNsdWRlL2pzb24vdmVyc2lvbi5oCisKKyMgTVNWQyBwcm9qZWN0IGZpbGVzOgorKi5zbG4KKyou
dmN4cHJvagorKi5maWx0ZXJzCisqLnVzZXIKKyouc2RmCisqLm9wZW5zZGYKKyouc3VvCisKKyMg
TVNWQyBidWlsZCBmaWxlczoKKyoubGliCisqLm9iagorKi50bG9nLworKi5wZGIKKworIyBDTWFr
ZS1nZW5lcmF0ZWQgZmlsZXM6CitDTWFrZUZpbGVzLworKi5jbWFrZQorL3BrZy1jb25maWcvanNv
bmNwcC5wYworanNvbmNwcF9saWJfc3RhdGljLmRpci8KKworIyBJbiBjYXNlIHNvbWVvbmUgcnVu
cyBjbWFrZSBpbiB0aGUgcm9vdC1kaXI6CisvQ01ha2VDYWNoZS50eHQKKy9NYWtlZmlsZQorL2lu
Y2x1ZGUvTWFrZWZpbGUKKy9zcmMvTWFrZWZpbGUKKy9zcmMvanNvbnRlc3RydW5uZXIvTWFrZWZp
bGUKKy9zcmMvanNvbnRlc3RydW5uZXIvanNvbnRlc3RydW5uZXJfZXhlCisvc3JjL2xpYl9qc29u
L01ha2VmaWxlCisvc3JjL3Rlc3RfbGliX2pzb24vTWFrZWZpbGUKKy9zcmMvdGVzdF9saWJfanNv
bi9qc29uY3BwX3Rlc3QKKyouYQorCisjIGVjbGlwc2UgcHJvamVjdCBmaWxlcworLnByb2plY3QK
Ky5jcHJvamVjdAorLy5zZXR0aW5ncy8KKworIyBEU19TdG9yZQorLkRTX1N0b3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlLy50cmF2aXMueW1sIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjQ5
YjQ2MzNiZGI5OWRkZDAxZDRjMTIyYjQzNzY3ZTA0OTc4YWViCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS8udHJhdmlzLnltbApAQCAtMCwwICsxLDY1IEBACisjIEJ1aWxkIG1hdHJpeCAvIGVudmly
b25tZW50IHZhcmlhYmxlcyBhcmUgZXhwbGFpbmVkIG9uOgorIyBodHRwOi8vYWJvdXQudHJhdmlz
LWNpLm9yZy9kb2NzL3VzZXIvYnVpbGQtY29uZmlndXJhdGlvbi8KKyMgVGhpcyBmaWxlIGNhbiBi
ZSB2YWxpZGF0ZWQgb246IGh0dHA6Ly93d3cueWFtbGxpbnQuY29tLworIyBPciB1c2luZyB0aGUg
UnVieSBiYXNlZCB0cmF2ZWwgY29tbWFuZCBsaW5lIHRvb2w6CisjIGdlbSBpbnN0YWxsIHRyYXZp
cyAtLW5vLXJkb2MgLS1uby1yaQorIyB0cmF2aXMgbGludCAudHJhdmlzLnltbAorbGFuZ3VhZ2U6
IGNwcAorc3VkbzogZmFsc2UKK2FkZG9uczoKKyAgaG9tZWJyZXc6CisgICAgcGFja2FnZXM6Cisg
ICAgLSBtZXNvbgorICAgIC0gbmluamEKKyAgICB1cGRhdGU6IGZhbHNlICMgZG8gbm90IHVwZGF0
ZSBob21lYnJldyBieSBkZWZhdWx0CisgIGFwdDoKKyAgICBzb3VyY2VzOgorICAgIC0gdWJ1bnR1
LXRvb2xjaGFpbi1yLXRlc3QKKyAgICAtIGxsdm0tdG9vbGNoYWluLXhlbmlhbC04CisgICAgcGFj
a2FnZXM6CisgICAgLSBjbGFuZy04CisgICAgLSB2YWxncmluZAorbWF0cml4OgorICBhbGxvd19m
YWlsdXJlczoKKyAgICAtIG9zOiBvc3gKKyAgaW5jbHVkZToKKyAgICAtIG5hbWU6IE1hYyBjbGFu
ZyBtZXNvbiBzdGF0aWMgcmVsZWFzZSB0ZXN0aW5nCisgICAgICBvczogb3N4CisgICAgICBvc3hf
aW1hZ2U6IHhjb2RlMTAuMgorICAgICAgY29tcGlsZXI6IGNsYW5nCisgICAgICBlbnY6CisgICAg
ICAgICBDWFg9ImNsYW5nKysiCisgICAgICAgICBDQz0iY2xhbmciCisgICAgICAgICBMSUJfVFlQ
RT1zdGF0aWMKKyAgICAgICAgIEJVSUxEX1RZUEU9cmVsZWFzZQorICAgICAgc2NyaXB0OiAuLy50
cmF2aXNfc2NyaXB0cy9tZXNvbl9idWlsZGVyLnNoCisgICAgLSBuYW1lOiBMaW51eCB4ZW5pYWwg
Y2xhbmcgbWVzb24gc3RhdGljIHJlbGVhc2UgdGVzdGluZworICAgICAgb3M6IGxpbnV4CisgICAg
ICBkaXN0OiB4ZW5pYWwKKyAgICAgIGNvbXBpbGVyOiBjbGFuZworICAgICAgZW52OgorICAgICAg
ICAgQ1hYPSJjbGFuZysrIgorICAgICAgICAgQ0M9ImNsYW5nIgorICAgICAgICAgTElCX1RZUEU9
c3RhdGljCisgICAgICAgICBCVUlMRF9UWVBFPXJlbGVhc2UKKyAgICAgICMgYmVmb3JlX2luc3Rh
bGwgYW5kIGluc3RhbGwgc3RlcHMgb25seSBuZWVkZWQgZm9yIGxpbnV4IG1lc29uIGJ1aWxkcwor
ICAgICAgYmVmb3JlX2luc3RhbGw6CisgICAgICAgICAgLSBzb3VyY2UgLi8udHJhdmlzX3Njcmlw
dHMvdHJhdmlzLmJlZm9yZV9pbnN0YWxsLiR7VFJBVklTX09TX05BTUV9LnNoCisgICAgICBpbnN0
YWxsOgorICAgICAgICAgICAtIHNvdXJjZSAuLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuaW5zdGFs
bC4ke1RSQVZJU19PU19OQU1FfS5zaAorICAgICAgc2NyaXB0OiAuLy50cmF2aXNfc2NyaXB0cy9t
ZXNvbl9idWlsZGVyLnNoCisgICAgLSBuYW1lOiBMaW51eCB4ZW5pYWwgZ2NjIGNtYWtlIGNvdmVy
YWdlCisgICAgICBvczogbGludXgKKyAgICAgIGRpc3Q6IHhlbmlhbAorICAgICAgY29tcGlsZXI6
IGdjYworICAgICAgZW52OgorICAgICAgICBDWFg9ZysrCisgICAgICAgIENDPWdjYworICAgICAg
ICBET19Db3ZlcmFnZT1PTgorICAgICAgICBCVUlMRF9UT09MPSJVbml4IE1ha2VmaWxlcyIKKyAg
ICAgICAgQlVJTERfVFlQRT1EZWJ1ZworICAgICAgICBMSUJfVFlQRT1zaGFyZWQKKyAgICAgICAg
REVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwCisgICAgICBzY3JpcHQ6IC4vLnRyYXZpc19zY3Jp
cHRzL2NtYWtlX2J1aWxkZXIuc2gKK25vdGlmaWNhdGlvbnM6CisgIGVtYWlsOiBmYWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvY21ha2VfYnVpbGRlci5zaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRy
YXZpc19zY3JpcHRzL2NtYWtlX2J1aWxkZXIuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiMzMzMTJlYTBmMjJj
YjViOTY5YzZkYWViZmM3NGZiYmRiYTJmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZp
c19zY3JpcHRzL2NtYWtlX2J1aWxkZXIuc2gKQEAgLTAsMCArMSwxMzAgQEAKKyMhL3Vzci9iaW4v
ZW52IHNoCisjIFRoaXMgc2NyaXB0IGNhbiBiZSB1c2VkIG9uIHRoZSBjb21tYW5kIGxpbmUgZGly
ZWN0bHkgdG8gY29uZmlndXJlIHNldmVyYWwKKyMgZGlmZmVyZW50IGJ1aWxkIGVudmlyb25tZW50
cy4KKyMgVGhpcyBpcyBjYWxsZWQgYnkgYC50cmF2aXMueW1sYCB2aWEgVHJhdmlzIENJLgorIyBU
cmF2aXMgc3VwcGxpZXMgJFRSQVZJU19PU19OQU1FLgorIyAgaHR0cDovL2RvY3MudHJhdmlzLWNp
LmNvbS91c2VyL211bHRpLW9zLworIyBPdXIgLnRyYXZpcy55bWwgYWxzbyBkZWZpbmVzOgorCisj
ICAgLSBCVUlMRF9UWVBFPVJlbGVhc2UvRGVidWcKKyMgICAtIExJQl9UWVBFPXN0YXRpYy9zaGFy
ZWQKKyMKKyMgT3B0aW9uYWwgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMKKyMgICAtIERFU1RESVIg
PC0gdXNlZCBmb3Igc2V0dGluZyB0aGUgaW5zdGFsbCBwcmVmaXgKKyMgICAtIEJVSUxEX1RPT0w9
WyJVbml4IE1ha2VmaWxlInwiTmluamEiXQorIyAgIC0gQlVJTEROQU1FIDwtIGhvdyB0byBpZGVu
dGlmeSB0aGlzIGJ1aWxkIG9uIHRoZSBkYXNoYm9hcmQKKyMgICAtIERPX01lbUNoZWNrIDwtIGlm
IHNldCwgdHJ5IHRvIHVzZSB2YWxncmluZAorIyAgIC0gRE9fQ292ZXJhZ2UgPC0gaWYgc2V0LCB0
cnkgdG8gZG8gZGFzaGJvYXJkIGNvdmVyYWdlIHRlc3RpbmcKKyMKKworZW52X3NldD0xCitpZiAk
e0JVSUxEX1RZUEUrZmFsc2V9OyB0aGVuCisgIGVjaG8gIkJVSUxEX1RZUEUgbm90IHNldCBpbiBl
bnZpcm9ubWVudC4iCisgIGVudl9zZXQ9MAorZmkKK2lmICR7TElCX1RZUEUrZmFsc2V9OyB0aGVu
CisgIGVjaG8gIkxJQl9UWVBFIG5vdCBzZXQgaW4gZW52aXJvbm1lbnQuIgorICBlbnZfc2V0PTAK
K2ZpCitpZiAke0NYWCtmYWxzZX07IHRoZW4KKyAgZWNobyAiQ1hYIG5vdCBzZXQgaW4gZW52aXJv
bm1lbnQuIgorICBlbnZfc2V0PTAKK2ZpCisKKworaWYgWyAke2Vudl9zZXR9IC1lcSAwIF07IHRo
ZW4KKyAgZWNobyAiVVNBR0U6ICBDWFg9JCh3aGljaCBjbGFuZysrKSAgQlVJTERfVFlQRT1bUmVs
ZWFzZXxEZWJ1Z10gTElCX1RZUEU9W3N0YXRpY3xzaGFyZWRdICQwIgorICBlY2hvICIiCisgIGVj
aG8gIkV4YW1wbGVzOiIKKyAgZWNobyAiICAgICAgICAgICBDWFg9JCh3aGljaCBjbGFuZysrKSBC
VUlMRF9UWVBFPVJlbGVhc2UgTElCX1RZUEU9c2hhcmVkIERFU1RESVI9L3RtcC9jbWFrZV9qc29u
X2NwcCAkMCIKKyAgZWNobyAiICAgICAgICAgICBDWFg9JCh3aGljaCBjbGFuZysrKSBCVUlMRF9U
WVBFPURlYnVnICAgTElCX1RZUEU9c2hhcmVkIERFU1RESVI9L3RtcC9jbWFrZV9qc29uX2NwcCAk
MCIKKyAgZWNobyAiICAgICAgICAgICBDWFg9JCh3aGljaCBjbGFuZysrKSBCVUlMRF9UWVBFPVJl
bGVhc2UgTElCX1RZUEU9c3RhdGljIERFU1RESVI9L3RtcC9jbWFrZV9qc29uX2NwcCAkMCIKKyAg
ZWNobyAiICAgICAgICAgICBDWFg9JCh3aGljaCBjbGFuZysrKSBCVUlMRF9UWVBFPURlYnVnICAg
TElCX1RZUEU9c3RhdGljIERFU1RESVI9L3RtcC9jbWFrZV9qc29uX2NwcCAkMCIKKworICBlY2hv
ICIgICAgICAgICAgIENYWD0kKHdoaWNoIGcrKykgICAgIEJVSUxEX1RZUEU9UmVsZWFzZSBMSUJf
VFlQRT1zaGFyZWQgREVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorICBlY2hvICIgICAg
ICAgICAgIENYWD0kKHdoaWNoIGcrKykgICAgIEJVSUxEX1RZUEU9RGVidWcgICBMSUJfVFlQRT1z
aGFyZWQgREVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAg
IENYWD0kKHdoaWNoIGcrKykgICAgIEJVSUxEX1RZUEU9UmVsZWFzZSBMSUJfVFlQRT1zdGF0aWMg
REVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0k
KHdoaWNoIGcrKykgICAgIEJVSUxEX1RZUEU9RGVidWcgICBMSUJfVFlQRT1zdGF0aWMgREVTVERJ
Uj0vdG1wL2NtYWtlX2pzb25fY3BwICQwIgorCisgIGV4aXQgLTEKK2ZpCisKK2lmICR7REVTVERJ
UitmYWxzZX07IHRoZW4KKyAgREVTVERJUj0iL3Vzci9sb2NhbCIKK2ZpCisKKyMgLWU6IGZhaWwg
b24gZXJyb3IKKyMgLXY6IHNob3cgY29tbWFuZHMKKyMgLXg6IHNob3cgZXhwYW5kZWQgY29tbWFu
ZHMKK3NldCAtdmV4CisKK2VudiB8IHNvcnQKKword2hpY2ggY21ha2UKK2NtYWtlIC0tdmVyc2lv
bgorCitlY2hvICR7Q1hYfQorJHtDWFh9IC0tdmVyc2lvbgorX0NPTVBJTEVSX05BTUU9YGJhc2Vu
YW1lICR7Q1hYfWAKK2lmIFsgIiR7QlVJTERfVFlQRX0iID09ICJzaGFyZWQiIF07IHRoZW4KKyAg
X0NNQUtFX0JVSUxEX1NIQVJFRF9MSUJTPU9OCitlbHNlCisgIF9DTUFLRV9CVUlMRF9TSEFSRURf
TElCUz1PRkYKK2ZpCisKK0NURVNUX1RFU1RJTkdfT1BUSU9OPSItRCBFeHBlcmltZW50YWxUZXN0
IgorIyAgIC0gRE9fTWVtQ2hlY2sgPC0gaWYgc2V0LCB0cnkgdG8gdXNlIHZhbGdyaW5kCitpZiAh
ICR7RE9fTWVtQ2hlY2srZmFsc2V9OyB0aGVuCisgICB2YWxncmluZCAtLXZlcnNpb24KKyAgIENU
RVNUX1RFU1RJTkdfT1BUSU9OPSItRCBFeHBlcmltZW50YWxNZW1DaGVjayIKK2Vsc2UKKyMgICAt
IERPX0NvdmVyYWdlIDwtIGlmIHNldCwgdHJ5IHRvIGRvIGRhc2hib2FyZCBjb3ZlcmFnZSB0ZXN0
aW5nCisgIGlmICEgJHtET19Db3ZlcmFnZStmYWxzZX07IHRoZW4KKyAgICAgZXhwb3J0IENYWEZM
QUdTPSItZnByb2ZpbGUtYXJjcyAtZnRlc3QtY292ZXJhZ2UiCisgICAgIGV4cG9ydCBMREZMQUdT
PSItZnByb2ZpbGUtYXJjcyAtZnRlc3QtY292ZXJhZ2UiCisgICAgIENURVNUX1RFU1RJTkdfT1BU
SU9OPSItRCBFeHBlcmltZW50YWxUZXN0IC1EIEV4cGVyaW1lbnRhbENvdmVyYWdlIgorICAgICAj
Z2NvdiAtLXZlcnNpb24KKyAgZmkKK2ZpCisKKyMgIE5pbmphICAgICAgICAgICAgICAgICAgICAg
ICAgPSBHZW5lcmF0ZXMgYnVpbGQubmluamEgZmlsZXMuCitpZiAke0JVSUxEX1RPT0wrZmFsc2V9
OyB0aGVuCisgIEJVSUxEX1RPT0w9Ik5pbmphIgorICBleHBvcnQgX0JVSUxEX0VYRT1uaW5qYQor
ICB3aGljaCBuaW5qYQorICBuaW5qYSAtLXZlcnNpb24KK2Vsc2UKKyMgIFVuaXggTWFrZWZpbGVz
ICAgICAgICAgICAgICAgPSBHZW5lcmF0ZXMgc3RhbmRhcmQgVU5JWCBtYWtlZmlsZXMuCisgIGV4
cG9ydCBfQlVJTERfRVhFPW1ha2UKK2ZpCisKK19CVUlMRF9ESVJfTkFNRT0iYnVpbGQtY21ha2Vf
JHtCVUlMRF9UWVBFfV8ke0xJQl9UWVBFfV8ke19DT01QSUxFUl9OQU1FfV8ke19CVUlMRF9FWEV9
IgorbWtkaXIgLXAgJHtfQlVJTERfRElSX05BTUV9CitjZCAiJHtfQlVJTERfRElSX05BTUV9Igor
ICBpZiAke0JVSUxETkFNRStmYWxzZX07IHRoZW4KKyAgICAgX0hPU1ROQU1FPWBob3N0bmFtZSAt
c2AKKyAgICAgQlVJTEROQU1FPSIke19IT1NUTkFNRX1fJHtCVUlMRF9UWVBFfV8ke0xJQl9UWVBF
fV8ke19DT01QSUxFUl9OQU1FfV8ke19CVUlMRF9FWEV9IgorICBmaQorICBjbWFrZSBcCisgICAg
LUcgIiR7QlVJTERfVE9PTH0iIFwKKyAgICAtREJVSUxETkFNRTpTVFJJTkc9IiR7QlVJTEROQU1F
fSIgXAorICAgIC1EQ01BS0VfQ1hYX0NPTVBJTEVSOlBBVEg9JHtDWFh9IFwKKyAgICAtRENNQUtF
X0JVSUxEX1RZUEU6U1RSSU5HPSR7QlVJTERfVFlQRX0gXAorICAgIC1EQlVJTERfU0hBUkVEX0xJ
QlM6Qk9PTD0ke19DTUFLRV9CVUlMRF9TSEFSRURfTElCU30gXAorICAgIC1EQ01BS0VfSU5TVEFM
TF9QUkVGSVg6UEFUSD0ke0RFU1RESVJ9IFwKKyAgICAuLi8KKworICBjdGVzdCAtQyAke0JVSUxE
X1RZUEV9IC1EIEV4cGVyaW1lbnRhbFN0YXJ0IC1EIEV4cGVyaW1lbnRhbENvbmZpZ3VyZSAtRCBF
eHBlcmltZW50YWxCdWlsZCAke0NURVNUX1RFU1RJTkdfT1BUSU9OfSAtRCBFeHBlcmltZW50YWxT
dWJtaXQKKyAgIyBGaW5hbCBzdGVwIGlzIHRvIHZlcmlmeSB0aGF0IGluc3RhbGxhdGlvbiBzdWNj
ZWVkcworICBjbWFrZSAtLWJ1aWxkIC4gLS1jb25maWcgJHtCVUlMRF9UWVBFfSAtLXRhcmdldCBp
bnN0YWxsCisKKyAgaWYgWyAiJHtERVNURElSfSIgIT0gIi91c3IvbG9jYWwiIF07IHRoZW4KKyAg
ICAgJHtfQlVJTERfRVhFfSBpbnN0YWxsCisgIGZpCitjZCAtCisKK2lmICR7Q0xFQU5VUCtmYWxz
ZX07IHRoZW4KKyAgZWNobyAiU2tpcHBpbmcgY2xlYW51cDogYnVpbGQgZGlyZWN0b3J5IHdpbGwg
cGVyc2lzdC4iCitlbHNlCisgIHJtIC1yICIke19CVUlMRF9ESVJfTkFNRX0iCitmaQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvbWVzb25fYnVpbGRlci5zaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZp
c19zY3JpcHRzL21lc29uX2J1aWxkZXIuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJmMDNjYjJmNThiNjFjOTJl
ZDQ0Y2M3Y2MwNjdjYmU4OWNhZmRhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19z
Y3JpcHRzL21lc29uX2J1aWxkZXIuc2gKQEAgLTAsMCArMSw4MSBAQAorIyEvdXNyL2Jpbi9lbnYg
c2gKKyMgVGhpcyBzY3JpcHQgY2FuIGJlIHVzZWQgb24gdGhlIGNvbW1hbmQgbGluZSBkaXJlY3Rs
eSB0byBjb25maWd1cmUgc2V2ZXJhbAorIyBkaWZmZXJlbnQgYnVpbGQgZW52aXJvbm1lbnRzLgor
IyBUaGlzIGlzIGNhbGxlZCBieSBgLnRyYXZpcy55bWxgIHZpYSBUcmF2aXMgQ0kuCisjIFRyYXZp
cyBzdXBwbGllcyAkVFJBVklTX09TX05BTUUuCisjICBodHRwOi8vZG9jcy50cmF2aXMtY2kuY29t
L3VzZXIvbXVsdGktb3MvCisjIE91ciAudHJhdmlzLnltbCBhbHNvIGRlZmluZXM6CisKKyMgICAt
IEJVSUxEX1RZUEU9cmVsZWFzZS9kZWJ1ZworIyAgIC0gTElCX1RZUEU9c3RhdGljL3NoYXJlZAor
CitlbnZfc2V0PTEKK2lmICR7QlVJTERfVFlQRStmYWxzZX07IHRoZW4KKyAgZWNobyAiQlVJTERf
VFlQRSBub3Qgc2V0IGluIGVudmlyb25tZW50LiIKKyAgZW52X3NldD0wCitmaQoraWYgJHtMSUJf
VFlQRStmYWxzZX07IHRoZW4KKyAgZWNobyAiTElCX1RZUEUgbm90IHNldCBpbiBlbnZpcm9ubWVu
dC4iCisgIGVudl9zZXQ9MAorZmkKK2lmICR7Q1hYK2ZhbHNlfTsgdGhlbgorICBlY2hvICJDWFgg
bm90IHNldCBpbiBlbnZpcm9ubWVudC4iCisgIGVudl9zZXQ9MAorZmkKKworCitpZiBbICR7ZW52
X3NldH0gLWVxIDAgXTsgdGhlbgorICBlY2hvICJVU0FHRTogIENYWD0kKHdoaWNoIGNsYW5nKysp
ICBCVUlMRF9UWVBFPVtyZWxlYXNlfGRlYnVnXSBMSUJfVFlQRT1bc3RhdGljfHNoYXJlZF0gJDAi
CisgIGVjaG8gIiIKKyAgZWNobyAiRXhhbXBsZXM6IgorICBlY2hvICIgICAgICAgICAgIENYWD0k
KHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9cmVsZWFzZSBMSUJfVFlQRT1zaGFyZWQgREVTVERJ
Uj0vdG1wL21lc29uX2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNo
IGNsYW5nKyspIEJVSUxEX1RZUEU9ZGVidWcgICBMSUJfVFlQRT1zaGFyZWQgREVTVERJUj0vdG1w
L21lc29uX2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5n
KyspIEJVSUxEX1RZUEU9cmVsZWFzZSBMSUJfVFlQRT1zdGF0aWMgREVTVERJUj0vdG1wL21lc29u
X2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJV
SUxEX1RZUEU9ZGVidWcgICBMSUJfVFlQRT1zdGF0aWMgREVTVERJUj0vdG1wL21lc29uX2pzb25f
Y3BwICQwIgorCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggZysrKSAgICAgQlVJTERf
VFlQRT1yZWxlYXNlIExJQl9UWVBFPXNoYXJlZCBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAg
JDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1k
ZWJ1ZyAgIExJQl9UWVBFPXNoYXJlZCBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAiCisg
IGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1yZWxlYXNl
IExJQl9UWVBFPXN0YXRpYyBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAiCisgIGVjaG8g
IiAgICAgICAgICAgQ1hYPSQod2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1kZWJ1ZyAgIExJQl9U
WVBFPXN0YXRpYyBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAiCisKKyAgZXhpdCAtMQor
ZmkKKworaWYgJHtERVNURElSK2ZhbHNlfTsgdGhlbgorICBERVNURElSPSIvdXNyL2xvY2FsIgor
ZmkKKworIyAtZTogZmFpbCBvbiBlcnJvcgorIyAtdjogc2hvdyBjb21tYW5kcworIyAteDogc2hv
dyBleHBhbmRlZCBjb21tYW5kcworc2V0IC12ZXgKKworCitlbnYgfCBzb3J0CisKK3doaWNoIHB5
dGhvbjMKK3doaWNoIG1lc29uCit3aGljaCBuaW5qYQorZWNobyAke0NYWH0KKyR7Q1hYfSAtLXZl
cnNpb24KK3B5dGhvbjMgLS12ZXJzaW9uCittZXNvbiAtLXZlcnNpb24KK25pbmphIC0tdmVyc2lv
bgorX0NPTVBJTEVSX05BTUU9YGJhc2VuYW1lICR7Q1hYfWAKK19CVUlMRF9ESVJfTkFNRT0iYnVp
bGQtJHtCVUlMRF9UWVBFfV8ke0xJQl9UWVBFfV8ke19DT01QSUxFUl9OQU1FfSIKK21lc29uIC0t
YnVpbGR0eXBlICR7QlVJTERfVFlQRX0gLS1kZWZhdWx0LWxpYnJhcnkgJHtMSUJfVFlQRX0gLiAi
JHtfQlVJTERfRElSX05BTUV9IgorbmluamEgLXYgLWogMiAtQyAiJHtfQlVJTERfRElSX05BTUV9
IgorI25pbmphIC12IC1qIDIgLUMgIiR7X0JVSUxEX0RJUl9OQU1FfSIgdGVzdAorY2QgIiR7X0JV
SUxEX0RJUl9OQU1FfSIKKyAgbWVzb24gdGVzdCAtLW5vLXJlYnVpbGQgLS1wcmludC1lcnJvcmxv
Z3MKKworICBpZiBbICIke0RFU1RESVJ9IiAhPSAiL3Vzci9sb2NhbCIgXTsgdGhlbgorICAgICBu
aW5qYSBpbnN0YWxsCisgIGZpCitjZCAtCisKK2lmICR7Q0xFQU5VUCtmYWxzZX07IHRoZW4KKyAg
ZWNobyAiU2tpcHBpbmcgY2xlYW51cDogIGJ1aWxkIGRpcmVjdG9yeSB3aWxsIHBlcnNpc3QuIgor
ZWxzZQorICBybSAtciAiJHtfQlVJTERfRElSX05BTUV9IgorZmkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
LnRyYXZpc19zY3JpcHRzL3RyYXZpcy5iZWZvcmVfaW5zdGFsbC5saW51eC5zaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRy
YXZpc19zY3JpcHRzL3RyYXZpcy5iZWZvcmVfaW5zdGFsbC5saW51eC5zaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YjU1NmRlMTU1ZGYwZGZmNzcyZmY4MTVhODhjMTU0MzA3ZjQ1MjFhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmJlZm9yZV9pbnN0YWxsLmxpbnV4LnNoCkBA
IC0wLDAgKzEsOCBAQAorc2V0IC12ZXgKKworIyBQcmVpbnN0YWxsZWQgdmVyc2lvbnMgb2YgcHl0
aG9uIGFyZSBkZXBlbmRlbnQgb24gd2hpY2ggVWJ1bnR1IGRpc3RyaWJ1dGlvbgorIyB5b3UgYXJl
IHJ1bm5pbmcuIFRoZSBiZWxvdyB2ZXJzaW9uIG5lZWRzIHRvIGJlIHVwZGF0ZWQgd2hlbmV2ZXIg
d2Ugcm9sbAorIyB0aGUgVWJ1bnR1IHZlcnNpb24gdXNlZCBpbiBUcmF2aXMuCisjIGh0dHBzOi8v
ZG9jcy50cmF2aXMtY2kuY29tL3VzZXIvbGFuZ3VhZ2VzL3B5dGhvbi8KKworcHllbnYgZ2xvYmFs
IDMuNy4xCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuYmVmb3JlX2lu
c3RhbGwub3N4LnNoIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmJlZm9yZV9pbnN0YWxs
Lm9zeC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZDgzYzBjNzFlNmY0OWE1NmRiZjBlNzI3YzJhMGNkOTg1NmRj
Mjc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmJlZm9y
ZV9pbnN0YWxsLm9zeC5zaApAQCAtMCwwICsxIEBACisjIE5PVEhJTkcgVE8gRE8gSEVSRQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmluc3RhbGwubGludXguc2ggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuaW5zdGFsbC5saW51eC5zaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YzU4NDZmMWE0MGU3YzFmNzA5Y2RiNTM0YTg0OTkzNzdiMjQzNjUxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmluc3RhbGwubGludXguc2gKQEAgLTAsMCAr
MSwxMCBAQAorc2V0IC12ZXgKKword2dldCBodHRwczovL2dpdGh1Yi5jb20vbmluamEtYnVpbGQv
bmluamEvcmVsZWFzZXMvZG93bmxvYWQvdjEuOS4wL25pbmphLWxpbnV4LnppcAordW56aXAgLXEg
bmluamEtbGludXguemlwIC1kIGJ1aWxkCisKK3BpcDMgaW5zdGFsbCBtZXNvbgorZWNobyAke1BB
VEh9CitscyAvdXNyL2xvY2FsCitscyAvdXNyL2xvY2FsL2JpbgorZXhwb3J0IFBBVEg9IiR7UFdE
fSIvYnVpbGQ6L3Vzci9sb2NhbC9iaW46L3Vzci9iaW46JHtQQVRIfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmluc3RhbGwub3N4LnNoIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3Nj
cmlwdHMvdHJhdmlzLmluc3RhbGwub3N4LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkODNjMGM3MWU2ZjQ5YTU2
ZGJmMGU3MjdjMmEwY2Q5ODU2ZGMyNzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXNf
c2NyaXB0cy90cmF2aXMuaW5zdGFsbC5vc3guc2gKQEAgLTAsMCArMSBAQAorIyBOT1RISU5HIFRP
IERPIEhFUkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvQVVUSE9SUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvQVVUSE9SUwppbmRleCBj
MGZiYmVlYzExMThjYzBmMTc5ZmNkZjNmMzI2MDFlOWQ4NzE3MzA1Li4zNzIzZDU0NmE3NWYyNWFj
ZGRlMmQ2YmRjMWZiMGRhMmIwYTI1M2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL0FVVEhPUlMKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9BVVRIT1JTCkBAIC0xICsxLDExMyBAQAogQmFwdGlzdGUgTGVwaWxsZXVyIDxibGVwQHVz
ZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworQWFyb24gSmFjb2JzIDxhYXJvbmpqYWNvYnNAZ21haWwu
Y29tPgorQWFyb24gSmFjb2JzIDxqYWNvYnNhQGdvb2dsZS5jb20+CitBZGFtIEJvc2VsZXkgPEFC
b3NlbGV5QGFnanVuY3Rpb24uY29tPgorQWRhbSBCb3NlbGV5IDxhZGFtLmJvc2VsZXlAZ21haWwu
Y29tPgorQWxla3NhbmRyIERlcmJlbmV2IDwxM2FsZXhhY0BnbWFpbC5jb20+CitBbGV4YW5kZXIg
R2F6YXJvdiA8RHJNZXRhbGxpdXNAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgorQWxleGFuZGVy
IFYuIEJyZXpnaW4gPGFicmV6Z2luQGFwcGxpZWR0ZWNoLnJ1PgorQWxleGFuZHIgQnJlemdpbiA8
YWxicmV6Z2luQG1haWwucnU+CitBbGV4ZXkgS3J1Y2hpbmluIDxhbGV4ZXlAbW9wYWxzLmNvbT4K
K0FudG9uIEluZHJhd2FuIDxhbnRvbi5pbmRyYXdhbkBnbWFpbC5jb20+CitCYXB0aXN0ZSBKb25n
bGV6IDxnaXRAYml0c29mbmV0d29ya3Mub3JnPgorQmFwdGlzdGUgTGVwaWxsZXVyIDxiYXB0aXN0
ZS5sZXBpbGxldXJAZ21haWwuY29tPgorQmFydWNoIFNpYWNoIDxiYXJ1Y2hAdGtvcy5jby5pbD4K
K0JlbiBCb2Vja2VsIDxtYXRoc3R1ZkBnbWFpbC5jb20+CitCZW5qYW1pbiBLbmVjaHQgPGJrbmVj
aHRAbG9naXRlY2guY29tPgorQmVybmQgS3VobHMgPGJlcm5kLmt1aGxzQHQtb25saW5lLmRlPgor
QmlsbHkgRG9uYWh1ZSA8YmlsbHlkb25haHVlQGdvb2dsZS5jb20+CitCcmFkZW4gTWNEb3JtYW4g
PGJtY2Rvcm1hbkBnbWFpbC5jb20+CitCcmFuZG9uIE15ZXJzIDxibXllcnMxNzg4QGdtYWlsLmNv
bT4KK0JyZW5kYW4gRHJldyA8YnJlbmRhbi5kcmV3QGRhcXJpLmNvbT4KK2NoYXNvbiA8Y3hjaGFv
ODAyQGdtYWlsLmNvbT4KK0NocmlzIEdpbGxpbmcgPGNnaWxsaW5nQGlwYXJhZGlnbXMuY29tPgor
Q2hyaXN0b3BoZXIgRGF3ZXMgPGNocmlzdG9waGVyLmRhd2VzLjE5ODFAZ29vZ2xlbWFpbC5jb20+
CitDaHJpc3RvcGhlciBEdW5uIDxjZHVubjIwMDFAZ21haWwuY29tPgorQ2h1Y2sgQXRraW5zIDxj
aHVjay5hdGtpbnNAa2l0d2FyZS5jb20+CitDb2R5IFAgU2NoYWZlciA8ZGV2QGNvZHlwcy5jb20+
CitDb25ub3IgTWFubmluZyA8Y29ubm9yQGhvYnUuY28+CitDb3J5IFF1YW1tZW4gPGNvcnkucXVh
bW1lbkBraXR3YXJlLmNvbT4KK0NyaXN0b8yBdmHMg28gQiBkYSBDcnV6IGUgU2lsdmEgPENyaXNY
ZWRAZ21haWwuY29tPgorRGFuaWVsIEtyw7xnbGVyIDxkYW5pZWwua3J1ZWdsZXJAZ21haWwuY29t
PgorRGFuaS1IdWIgPGRhbmllbC5rcnVlZ2xlckBnb29nbGVtYWlsLmNvbT4KK0RhbiBMaXUgPGd6
bGl1ZGFuPgorZGF0YWRpb2RlIDxkYXRhZGlvZGVAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgor
ZGF0YWRpb2RlIDxqb2NoZW4ubmV1YmVja0B2b2RhZm9uZS5kZT4KK0RhdmlkIFNlaWZlcnQgPHNv
YXBAZ2VudG9vLm9yZz4KK0RhdmlkIFdlc3QgPGRhdmlkLXdlc3RAaWRleHguY29tPgorZGF3ZXNj
IDxjaHJpcy5kYXdlc0BlZnRsYWIuY28udWs+CitEZXZpbiBKZWFucGllcnJlIDxqZWFucGllcnJl
ZGFAZ29vZ2xlLmNvbT4KK0RtaXRyeSBNYXJha2Fzb3YgPGFtZG1pM0BhbWRtaTMucnU+Citkb21p
bmljcGV6enV0byA8ZG9tQGRvbXBlenp1dG8uY29tPgorRG9uIE1pbGhhbSA8ZG1pbGhhbUBnbWFp
bC5jb20+CitkcmdsZXIgPGRhbmllbC5rcnVlZ2xlckBnbWFpbC5jb20+CitkczI4MyA8RC5TZWVy
eUBzdXNzZXguYWMudWs+CitFZ29yIFRlbnNpbiA8RWdvci5UZW5zaW5AZ21haWwuY29tPgorZWln
aHRub3RlaWdodCA8bXIuZWlnaHRub3RlaWdodEBnbWFpbC5jb20+CitFdmluY2UgPGJhbmV5dWVA
Z21haWwuY29tPgorZmlsaXBqcyA8ZmlsaXBqc0B1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Citm
aW5kYmxhciA8ZnRAZmluYmFyci5jYT4KK0Zsb3JpYW4gTWVpZXIgPGZsb3JpYW4ubWVpZXJAa29h
bG8uZGU+CitHYcOrdGFuIExlaG1hbm4gPGdhZXRhbi5sZWhtYW5uQGdtYWlsLmNvbT4KK0dhdXJh
diA8Zy5ndXB0YUBzYW1zdW5nLmNvbT4KK0dlcmdlbHkgTmFneSA8bmdnQG5nZy5odT4KK0dpZGEg
UGF0YWtpIDxnaWRhLnBhdGFraUBwcmV6aS5jb20+CitJM2NrIDxidWNrbWFydGluQGJ1Y2ttYXJ0
aW4uZGU+CitJw7Fha2kgQmF6IENhc3RpbGxvIDxpYmNAYWxpYXgubmV0PgorSmFjY28gPGphY2Nv
QGdldWwubmV0PgorSmVhbi1DaHJpc3RvcGhlIEZpbGxpb24tUm9iaW4gPGpjaHJpcy5maWxsaW9u
ckBraXR3YXJlLmNvbT4KK0pvbmFzIFBsYXR0ZSA8bWFpbEBqb25hc3BsYXR0ZS5kZT4KK0pvcmRh
biBCYXlsZXMgPGJheWxlcy5qb3JkYW5AZ21haWwuY29tPgorSsO2cmcgS3JhdXNlIDxqb2VyZy5r
cmF1c2VAZW1iZWRkZWQucm9ja3M+CitLZWl0aCBMZWEgPGtlaXRoQHdoYW1jaXR5bGlnaHRzLmNv
bT4KK0tldmluIEdyYW50IDxrYnJhZGxleWdyYW50QGdtYWlsLmNvbT4KK0tpcmlsbCBWLiBMeWFk
dmluc2t5IDxqaWEzZXBAZ21haWwuY29tPgorS2lyaWxsIFYuIEx5YWR2aW5za3kgPG1haWxAY29k
ZWF0Y3BwLmNvbT4KK0tvYmkgR3Vya2FuIDxrb2JpZ3Vya0BnbWFpbC5jb20+CitNYWdudXMgQmpl
cmtlIFZpayA8bWJ2ZXR0QGdtYWlsLmNvbT4KK01hbGF5IFNoYWggPG1hbGF5c0B1c2Vycy5zb3Vy
Y2Vmb3JnZS5uZXQ+CitNYXJhIEtpbSA8aGFja2VyLnJvb3RAZ21haWwuY29tPgorTWFyZWsgS290
ZXdpY3ogPG1hcmVrLmtvdGV3aWN6QGdtYWlsLmNvbT4KK01hcmsgTGFrYXRhIDxtYXJrQGxha2F0
YS5vcmc+CitNYXJrIFplcmVuIDxtemVyZW5Adm13YXJlLmNvbT4KK01hcnRpbiBCdWNrIDxidWNr
bWFydGluQGJ1Y2ttYXJ0aW4uZGU+CitNYXJ0eW4gR2lnZyA8bWFydHluLmdpZ2dAZ21haWwuY29t
PgorTWF0dGVzIEQgPGdpdGh1YkB4b2Z0LmN6PgorTWF0dGhpYXMgTG95IDxtYXR0aGlhcy5sb3lA
aGJtLmNvbT4KK01lcmx5biBNb3JnYW4tR3JhaGFtIDxrYXZpa2FAZ21haWwuY29tPgorTWljaGFl
bCBTaGllbGRzIDxtc2hpZWxkc0Bnb29nbGUuY29tPgorTWljaGHFgiBHw7NybnkgPG1nb3JueUBn
ZW50b28ub3JnPgorTWlrZSBOYWJlcmV6bnkgPG1pa2VAbmFiZXJlem55LmNvbT4KK21sb3kgPG1h
dHRoaWFzLmxveUBnb29nbGVtYWlsLmNvbT4KK01vdHRpIDxsYW56a3JvbkBnbWFpbC5jb20+Citu
bmt1ciA8bm5rdXJAbWFpbC5ydT4KK09ta2FyIFdhZ2ggPG93YWdoQG93YWdobGludXgubnkudG93
ZXItcmVzZWFyY2guY29tPgorcGF1bG8gPHBhdWxvYnJpem9sYXJhQHVzZXJzLm5vcmVwbHkuZ2l0
aHViLmNvbT4KK3BhdmVsLnBpbWVub3YgPHBhdmVsLnBpbWVub3ZAZ21haWwuY29tPgorUGF3ZcWC
IEJ5bGljYSA8Y2hmYXN0QGdtYWlsLmNvbT4KK1DDqXJpY2xlcyBMb3BlcyBNYWNoYWRvIDxwZXJp
Y2xlcy5yYXNrb2xuaWtvZmZAZ21haWwuY29tPgorUGV0ZXIgU3BpZXNzLUtuYWZsIDxwc2tAYXV0
aXN0aWNpLm9yZz4KK3BmZmFuZyA8cGZmYW5nQHZpcC5xcS5jb20+CitSw6ltaSBWZXJzY2hlbGRl
IDxyZW1pQHZlcnNjaGVsZGUuZnI+CityZW51NTU1IDxyZW51LnR5YWdpQHNhbXN1bmcuY29tPgor
Um9iZXJ0IERhaWxleSA8cmNkYWlsZXlAZ21haWwuY29tPgorU2FtIENsZWdnIDxzYmNAY2hyb21p
dW0ub3JnPgorc2VsYXNlbGFoIDxzZWxhaEBvdXRsb29rLmNvbT4KK1NlcmdpeTgwIDxzaWwyMDA0
QGdtYWlsLmNvbT4KK3Nlcmd6dWIgPHNlcmd6dWJAZ21haWwuY29tPgorU3RlZmFuIFNjaHdldGVy
IDxzdGVmYW5Ac2Nod2V0ZXIuaXQ+CitTdGVmZmVuIEtpZcOfIDxTdGVmZmVuLktpZXNzQGlwdnMu
dW5pLXN0dXR0Z2FydC5kZT4KK1N0ZXZlbiBIYWhuIDxoYWhuc2VAb3JubC5nb3Y+CitTdHVhcnQg
RWljaGVydCA8c3R1YXJ0QGZpdmVtaWNyby5jb20+CitTdXBlck1hbml0dSA8c3VwZXJtYW5pdHVA
Z21haWwuY29tPgorVGVjaHdvbGYgPGRyaW5nQGczM2t3b3JsZC5uZXQ+CitUZW5naXogU2hhcmFm
aWV2IDxidG9sZmErZ2l0aHViQGdtYWlsLmNvbT4KK1RvbWFzeiBNYWNpZWpld3NraSA8dG1hY2ll
amV3c2tAZ21haWwuY29tPgorVmljZW50ZSBPbGl2ZXJ0IFJpZXJhIDxWaW5jZW50LlJpZXJhQGlt
Z3RlYy5jb20+Cit4aWFveXVyMzQ3IDx4aWFveXVyMzQ3QGdtYWlsLmNvbT4KK3ljcWl1IDw0Mjkx
NDg4NDhAcXEuY29tPgoreWlxaWp1IDxmcmVkX2p1QHNlbGluYy5jb20+CitZdSBYaWFvbGVpIDxk
cmVpZmFjaHN0ZWluQGdtYWlsLmNvbT4KKworR29vZ2xlIEluYy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MWQwOGIw
YWIzNGJkMjUyZGJiMTNlZjUxY2QzYWExYWQ4NmE5NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsMTg2IEBACisjIHZpbTogZXQgdHM9NCBzdHM9NCBz
dz00IHR3PTAKKworIyA9PT09IERlZmluZSBjbWFrZSBidWlsZCBwb2xpY2llcyB0aGF0IGFmZmVj
dCBjb21waWxhdGlvbiBhbmQgbGlua2FnZSBkZWZhdWx0IGJlaGF2aW9ycworIworIyBTZXQgdGhl
IEpTT05DUFBfTkVXRVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJTSU9OIHN0cmluZyB0byB0aGUg
bmV3ZXN0IGNtYWtlIHZlcnNpb24KKyMgcG9saWNpZXMgdGhhdCBwcm92aWRlIHN1Y2Nlc3NmdWwg
YnVpbGRzLiBCeSBzZXR0aW5nIEpTT05DUFBfTkVXRVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJT
SU9OCisjIHRvIGEgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSBvbGRlc3QgcG9saWNpZXMsIGFsbCBw
b2xpY2llcyBiZXR3ZWVuCisjIEpTT05DUFBfT0xERVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJT
SU9OIGFuZCBDTUFLRV9WRVJTSU9OICh1c2VkIGZvciB0aGlzIGJ1aWxkKQorIyBhcmUgc2V0IHRv
IHRoZWlyIE5FVyBiZWhhaXZvciwgdGhlcmVieSBzdXBwcmVzc2luZyBwb2xpY3kgd2FybmluZ3Mg
cmVsYXRlZCB0byBwb2xpY2llcworIyBiZXR3ZWVuIHRoZSBKU09OQ1BQX09MREVTVF9WQUxJREFU
RURfUE9MSUNJRVNfVkVSU0lPTiBhbmQgQ01BS0VfVkVSU0lPTi4KKyMKKyMgQ01ha2UgdmVyc2lv
bnMgZ3JlYXRlciB0aGFuIHRoZSBKU09OQ1BQX05FV0VTVF9WQUxJREFURURfUE9MSUNJRVNfVkVS
U0lPTiBwb2xpY2llcyB3aWxsCisjIGNvbnRpbnVlIHRvIGdlbmVyYXRlIHBvbGljeSB3YXJuaW5n
cyAiQ01ha2UgV2FybmluZyAoZGV2KS4uLlBvbGljeSBDTVAwWFhYIGlzIG5vdCBzZXQ6IgorIwor
c2V0KEpTT05DUFBfT0xERVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJTSU9OICIzLjguMCIpCitz
ZXQoSlNPTkNQUF9ORVdFU1RfVkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT04gIjMuMTMuMiIpCitj
bWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gJHtKU09OQ1BQX09MREVTVF9WQUxJREFURURf
UE9MSUNJRVNfVkVSU0lPTn0pCitpZigiJHtDTUFLRV9WRVJTSU9OfSIgVkVSU0lPTl9MRVNTICIk
e0pTT05DUFBfTkVXRVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJTSU9OfSIpCisgICAgI1NldCBh
bmQgdXNlIHRoZSBuZXdlc3QgYXZhaWxhYmxlIGNtYWtlIHBvbGljaWVzIHRoYXQgYXJlIHZhbGlk
YXRlZCB0byB3b3JrCisgICAgc2V0KEpTT05DUFBfQ01BS0VfUE9MSUNZX1ZFUlNJT04gIiR7Q01B
S0VfVkVSU0lPTn0iKQorZWxzZSgpCisgICAgc2V0KEpTT05DUFBfQ01BS0VfUE9MSUNZX1ZFUlNJ
T04gIiR7SlNPTkNQUF9ORVdFU1RfVkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT059IikKK2VuZGlm
KCkKK2NtYWtlX3BvbGljeShWRVJTSU9OICR7SlNPTkNQUF9DTUFLRV9QT0xJQ1lfVkVSU0lPTn0p
CisjCisjIE5vdyBlbnVtZXJhdGUgc3BlY2lmaWMgcG9saWNpZXMgbmV3ZXIgdGhhbiBKU09OQ1BQ
X05FV0VTVF9WQUxJREFURURfUE9MSUNJRVNfVkVSU0lPTgorIyB0aGF0IG1heSBuZWVkIHRvIGJl
IGluZGl2aWR1YWxseSBzZXQgdG8gTkVXL09MRAorIworZm9yZWFjaChwbmV3ICIiKSAjIEN1cnJl
bnRseSBFbXB0eQorICAgIGlmKFBPTElDWSAke3BuZXd9KQorICAgICAgICBjbWFrZV9wb2xpY3ko
U0VUICR7cG5ld30gTkVXKQorICAgIGVuZGlmKCkKK2VuZGZvcmVhY2goKQorZm9yZWFjaChwb2xk
ICIiKSAjIEN1cnJlbnRseSBFbXB0eQorICAgIGlmKFBPTElDWSAke3BvbGR9KQorICAgICAgICBj
bWFrZV9wb2xpY3koU0VUICR7cG9sZH0gT0xEKQorICAgIGVuZGlmKCkKK2VuZGZvcmVhY2goKQor
CisjID09PT0gRGVmaW5lIGxhbmd1YWdlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb25zIHJlcXVpcmlu
ZyBhdCBsZWFzdCBjKysxMSBzdGFuZGFyZAoraWYoQ01BS0VfQ1hYX1NUQU5EQVJEIEVRVUFMICI5
OCIgKQorICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkNNQUtFX0NYWF9TVEFOREFSRDpTVFJJTkc9
OTggaXMgbm90IHN1cHBvcnRlZC4iKQorZW5kaWYoKQorCisjIyMjIworIyMgIFNldCB0aGUgZGVm
YXVsdCB0YXJnZXQgcHJvcGVydGllcworaWYoTk9UIENNQUtFX0NYWF9TVEFOREFSRCkKKyAgICBz
ZXQoQ01BS0VfQ1hYX1NUQU5EQVJEIDExKSAjIFN1cHBvcnRlZCB2YWx1ZXMgYXJlIGBgMTFgYCwg
YGAxNGBgLCBhbmQgYGAxN2BgLgorZW5kaWYoKQoraWYoTk9UIENNQUtFX0NYWF9TVEFOREFSRF9S
RVFVSVJFRCkKKyAgICBzZXQoQ01BS0VfQ1hYX1NUQU5EQVJEX1JFUVVJUkVEIE9OKQorZW5kaWYo
KQoraWYoTk9UIENNQUtFX0NYWF9FWFRFTlNJT05TKQorICAgIHNldChDTUFLRV9DWFhfRVhURU5T
SU9OUyBPRkYpCitlbmRpZigpCisKKyMgPT09PQorCisjIEVuc3VyZXMgdGhhdCBDTUFLRV9CVUlM
RF9UWVBFIGhhcyBhIGRlZmF1bHQgdmFsdWUKK2lmKE5PVCBERUZJTkVEIENNQUtFX0JVSUxEX1RZ
UEUpCisgICAgc2V0KENNQUtFX0JVSUxEX1RZUEUgUmVsZWFzZSBDQUNIRSBTVFJJTkcKKyAgICAg
ICAgIkNob29zZSB0aGUgdHlwZSBvZiBidWlsZCwgb3B0aW9ucyBhcmU6IE5vbmUgRGVidWcgUmVs
ZWFzZSBSZWxXaXRoRGViSW5mbyBNaW5TaXplUmVsIENvdmVyYWdlLiIpCitlbmRpZigpCisKK3By
b2plY3QoSlNPTkNQUAorICAgICAgICBWRVJTSU9OIDEuOS4wICMgPG1ham9yPlsuPG1pbm9yPlsu
PHBhdGNoPlsuPHR3ZWFrPl1dXQorICAgICAgICBMQU5HVUFHRVMgQ1hYKQorCittZXNzYWdlKFNU
QVRVUyAiSnNvbkNwcCBWZXJzaW9uOiAke0pTT05DUFBfVkVSU0lPTl9NQUpPUn0uJHtKU09OQ1BQ
X1ZFUlNJT05fTUlOT1J9LiR7SlNPTkNQUF9WRVJTSU9OX1BBVENIfSIpCitzZXQoIEpTT05DUFBf
U09WRVJTSU9OIDIxICkKKworb3B0aW9uKEpTT05DUFBfV0lUSF9URVNUUyAiQ29tcGlsZSBhbmQg
KGZvciBqc29uY3BwX2NoZWNrKSBydW4gSnNvbkNwcCB0ZXN0IGV4ZWN1dGFibGVzIiBPTikKK29w
dGlvbihKU09OQ1BQX1dJVEhfUE9TVF9CVUlMRF9VTklUVEVTVCAiQXV0b21hdGljYWxseSBydW4g
dW5pdC10ZXN0cyBhcyBhIHBvc3QgYnVpbGQgc3RlcCIgT04pCitvcHRpb24oSlNPTkNQUF9XSVRI
X1dBUk5JTkdfQVNfRVJST1IgIkZvcmNlIGNvbXBpbGF0aW9uIHRvIGZhaWwgaWYgYSB3YXJuaW5n
IG9jY3VycyIgT0ZGKQorb3B0aW9uKEpTT05DUFBfV0lUSF9TVFJJQ1RfSVNPICJJc3N1ZSBhbGwg
dGhlIHdhcm5pbmdzIGRlbWFuZGVkIGJ5IHN0cmljdCBJU08gQyBhbmQgSVNPIEMrKyIgT04pCitv
cHRpb24oSlNPTkNQUF9XSVRIX1BLR0NPTkZJR19TVVBQT1JUICJHZW5lcmF0ZSBhbmQgaW5zdGFs
bCAucGMgZmlsZXMiIE9OKQorb3B0aW9uKEpTT05DUFBfV0lUSF9DTUFLRV9QQUNLQUdFICJHZW5l
cmF0ZSBhbmQgaW5zdGFsbCBjbWFrZSBwYWNrYWdlIGZpbGVzIiBPTikKK29wdGlvbihCVUlMRF9T
SEFSRURfTElCUyAiQnVpbGQganNvbmNwcF9saWIgYXMgYSBzaGFyZWQgbGlicmFyeS4iIE9GRikK
KworIyBFbmFibGUgcnVudGltZSBzZWFyY2ggcGF0aCBzdXBwb3J0IGZvciBkeW5hbWljIGxpYnJh
cmllcyBvbiBPU1gKK2lmKEFQUExFKQorICAgIHNldChDTUFLRV9NQUNPU1hfUlBBVEggMSkKK2Vu
ZGlmKCkKKworIyBBZGhlcmUgdG8gR05VIGZpbGVzeXN0ZW0gbGF5b3V0IGNvbnZlbnRpb25zCitp
bmNsdWRlKEdOVUluc3RhbGxEaXJzKQorCitzZXQoREVCVUdfTElCTkFNRV9TVUZGSVggIiIgQ0FD
SEUgU1RSSU5HICJPcHRpb25hbCBzdWZmaXggdG8gYXBwZW5kIHRvIHRoZSBsaWJyYXJ5IG5hbWUg
Zm9yIGEgZGVidWcgYnVpbGQiKQorCitzZXQoSlNPTkNQUF9VU0VfU0VDVVJFX01FTU9SWSAiMCIg
Q0FDSEUgU1RSSU5HICItRC4uLj0xIHRvIHVzZSBtZW1vcnktd2lwaW5nIGFsbG9jYXRvciBmb3Ig
U1RMIiApCisKKyMgRmlsZSB2ZXJzaW9uLmggaXMgb25seSByZWdlbmVyYXRlZCBvbiBDTWFrZSBj
b25maWd1cmUgc3RlcAorY29uZmlndXJlX2ZpbGUoICIke1BST0pFQ1RfU09VUkNFX0RJUn0vc3Jj
L2xpYl9qc29uL3ZlcnNpb24uaC5pbiIKKyAgICAgICAgICAgICAgICAiJHtQUk9KRUNUX0JJTkFS
WV9ESVJ9L2luY2x1ZGUvanNvbi92ZXJzaW9uLmgiCisgICAgICAgICAgICAgICAgTkVXTElORV9T
VFlMRSBVTklYICkKK2NvbmZpZ3VyZV9maWxlKCAiJHtQUk9KRUNUX1NPVVJDRV9ESVJ9L3ZlcnNp
b24uaW4iCisgICAgICAgICAgICAgICAgIiR7UFJPSkVDVF9CSU5BUllfRElSfS92ZXJzaW9uIgor
ICAgICAgICAgICAgICAgIE5FV0xJTkVfU1RZTEUgVU5JWCApCisKK21hY3JvKFVzZUNvbXBpbGF0
aW9uV2FybmluZ0FzRXJyb3IpCisgICAgaWYoTVNWQykKKyAgICAgICAgIyBPbmx5IGVuYWJsZWQg
aW4gZGVidWcgYmVjYXVzZSBzb21lIG9sZCB2ZXJzaW9ucyBvZiBWUyBTVEwgZ2VuZXJhdGUKKyAg
ICAgICAgIyB3YXJuaW5ncyB3aGVuIGNvbXBpbGVkIGluIHJlbGVhc2UgY29uZmlndXJhdGlvbi4K
KyAgICAgICAgYWRkX2NvbXBpbGVfb3B0aW9ucygkPCQ8Q09ORklHOkRlYnVnPjovV1g+KQorICAg
IGVsc2VpZihDTUFLRV9DWFhfQ09NUElMRVJfSUQgU1RSRVFVQUwgIkdOVSIpCisgICAgICAgIGFk
ZF9jb21waWxlX29wdGlvbnMoLVdlcnJvcikKKyAgICAgICAgaWYoSlNPTkNQUF9XSVRIX1NUUklD
VF9JU08pCisgICAgICAgICAgICBhZGRfY29tcGlsZV9vcHRpb25zKC1wZWRhbnRpYy1lcnJvcnMp
CisgICAgICAgIGVuZGlmKCkKKyAgICBlbmRpZigpCitlbmRtYWNybygpCisKKyMgSW5jbHVkZSBv
dXIgY29uZmlndXJhdGlvbiBoZWFkZXIKK2luY2x1ZGVfZGlyZWN0b3JpZXMoICR7anNvbmNwcF9T
T1VSQ0VfRElSfS9pbmNsdWRlICkKKworaWYoTVNWQykKKyAgICAjIE9ubHkgZW5hYmxlZCBpbiBk
ZWJ1ZyBiZWNhdXNlIHNvbWUgb2xkIHZlcnNpb25zIG9mIFZTIFNUTCBnZW5lcmF0ZQorICAgICMg
dW5yZWFjaGFibGUgY29kZSB3YXJuaW5nIHdoZW4gY29tcGlsZWQgaW4gcmVsZWFzZSBjb25maWd1
cmF0aW9uLgorICAgIGFkZF9jb21waWxlX29wdGlvbnMoJDwkPENPTkZJRzpEZWJ1Zz46L1c0PikK
K2VuZGlmKCkKKworaWYoQ01BS0VfQ1hYX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIikKKyAg
ICAjIHVzaW5nIHJlZ3VsYXIgQ2xhbmcgb3IgQXBwbGVDbGFuZworICAgIGFkZF9jb21waWxlX29w
dGlvbnMoLVdhbGwgLVdjb252ZXJzaW9uIC1Xc2hhZG93IC1XZXJyb3I9Y29udmVyc2lvbiAtV2Vy
cm9yPXNpZ24tY29tcGFyZSkKK2Vsc2VpZihDTUFLRV9DWFhfQ09NUElMRVJfSUQgU1RSRVFVQUwg
IkdOVSIpCisgICAgIyB1c2luZyBHQ0MKKyAgICBhZGRfY29tcGlsZV9vcHRpb25zKC1XYWxsIC1X
Y29udmVyc2lvbiAtV3NoYWRvdyAtV2V4dHJhKQorICAgICMgbm90IHlldCByZWFkeSBmb3IgLVdz
aWduLWNvbnZlcnNpb24KKworICAgIGlmKEpTT05DUFBfV0lUSF9TVFJJQ1RfSVNPKQorICAgICAg
ICBhZGRfY29tcGlsZV9vcHRpb25zKC1wZWRhbnRpYykKKyAgICBlbmRpZigpCisgICAgaWYoSlNP
TkNQUF9XSVRIX1dBUk5JTkdfQVNfRVJST1IpCisgICAgICAgIGFkZF9jb21waWxlX29wdGlvbnMo
LVdlcnJvcj1jb252ZXJzaW9uKQorICAgIGVuZGlmKCkKK2Vsc2VpZihDTUFLRV9DWFhfQ09NUElM
RVJfSUQgU1RSRVFVQUwgIkludGVsIikKKyAgICAjwqB1c2luZyBJbnRlbCBjb21waWxlcgorICAg
IGFkZF9jb21waWxlX29wdGlvbnMoLVdhbGwgLVdjb252ZXJzaW9uIC1Xc2hhZG93IC1XZXh0cmEg
LVdlcnJvcj1jb252ZXJzaW9uKQorCisgICAgaWYoSlNPTkNQUF9XSVRIX1NUUklDVF9JU08gQU5E
IE5PVCBKU09OQ1BQX1dJVEhfV0FSTklOR19BU19FUlJPUikKKyAgICAgICAgYWRkX2NvbXBpbGVf
b3B0aW9ucygtcGVkYW50aWMpCisgICAgZW5kaWYoKQorZW5kaWYoKQorCitmaW5kX3Byb2dyYW0o
Q0NBQ0hFX0ZPVU5EIGNjYWNoZSkKK2lmKENDQUNIRV9GT1VORCkKKyAgICBzZXRfcHJvcGVydHko
R0xPQkFMIFBST1BFUlRZIFJVTEVfTEFVTkNIX0NPTVBJTEUgY2NhY2hlKQorICAgIHNldF9wcm9w
ZXJ0eShHTE9CQUwgUFJPUEVSVFkgUlVMRV9MQVVOQ0hfTElOSyBjY2FjaGUpCitlbmRpZihDQ0FD
SEVfRk9VTkQpCisKK2lmKEpTT05DUFBfV0lUSF9XQVJOSU5HX0FTX0VSUk9SKQorICAgIFVzZUNv
bXBpbGF0aW9uV2FybmluZ0FzRXJyb3IoKQorZW5kaWYoKQorCitpZihKU09OQ1BQX1dJVEhfUEtH
Q09ORklHX1NVUFBPUlQpCisgICAgY29uZmlndXJlX2ZpbGUoCisgICAgICAgICJwa2ctY29uZmln
L2pzb25jcHAucGMuaW4iCisgICAgICAgICJwa2ctY29uZmlnL2pzb25jcHAucGMiCisgICAgICAg
IEBPTkxZKQorICAgIGluc3RhbGwoRklMRVMgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9w
a2ctY29uZmlnL2pzb25jcHAucGMiCisgICAgICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RB
TExfTElCRElSfS9wa2djb25maWciKQorZW5kaWYoKQorCitpZihKU09OQ1BQX1dJVEhfQ01BS0Vf
UEFDS0FHRSkKKyAgICAgICAgaW5jbHVkZSAoQ01ha2VQYWNrYWdlQ29uZmlnSGVscGVycykKKyAg
ICAgICAgaW5zdGFsbChFWFBPUlQganNvbmNwcAorICAgICAgICAgICAgICAgIERFU1RJTkFUSU9O
ICR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9L2NtYWtlL2pzb25jcHAKKyAgICAgICAgICAgICAgICBG
SUxFICAgICAgICBqc29uY3BwQ29uZmlnLmNtYWtlKQorICAgICAgICB3cml0ZV9iYXNpY19wYWNr
YWdlX3ZlcnNpb25fZmlsZSAoIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9qc29uY3BwQ29u
ZmlnVmVyc2lvbi5jbWFrZSIKKyAgICAgICAgICAgICAgICBWRVJTSU9OICR7UFJPSkVDVF9WRVJT
SU9OfQorICAgICAgICAgICAgICAgIENPTVBBVElCSUxJVFkgU2FtZU1ham9yVmVyc2lvbikKKyAg
ICAgICAgaW5zdGFsbChGSUxFUyAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vanNvbmNwcENv
bmZpZ1ZlcnNpb24uY21ha2UKKyAgICAgICAgICAgICAgICBERVNUSU5BVElPTiAke0NNQUtFX0lO
U1RBTExfTElCRElSfS9jbWFrZS9qc29uY3BwKQorZW5kaWYoKQorCitpZihKU09OQ1BQX1dJVEhf
VEVTVFMpCisgIGVuYWJsZV90ZXN0aW5nKCkKKyAgaW5jbHVkZShDVGVzdCkKK2VuZGlmKCkKKwor
IyBCdWlsZCB0aGUgZGlmZmVyZW50IGFwcGxpY2F0aW9ucworYWRkX3N1YmRpcmVjdG9yeSggc3Jj
ICkKKworI2luc3RhbGwgdGhlIGluY2x1ZGVzCithZGRfc3ViZGlyZWN0b3J5KCBpbmNsdWRlICkK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9DT05UUklCVVRJTkcubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL0NPTlRSSUJVVElORy5t
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iN2U0YWI3YWZkZmE3YjJlOWQzMmU5ZjhlMmY1MTE2MTJjYjhjNzI3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9DT05UUklCVVRJTkcubWQKQEAgLTAsMCArMSwxNDUgQEAK
KyMgQ29udHJpYnV0aW5nIHRvIEpzb25DcHAKKworIyMgQnVpbGRpbmcKKworQm90aCBDTWFrZSBh
bmQgTWVzb24gdG9vbHMgYXJlIGNhcGFibGUgb2YgZ2VuZXJhdGluZyBhIHZhcmlldHkgb2YgYnVp
bGQgZW52aXJvbm1lbnRzIGZvciB5b3UgcHJlZmVycmVkIGRldmVsb3BtZW50IGVudmlyb25tZW50
LgorVXNpbmcgY21ha2Ugb3IgbWVzb24geW91IGNhbiBnZW5lcmF0ZSBhbiBYQ29kZSwgVmlzdWFs
IFN0dWRpbywgVW5peCBNYWtlZmlsZSwgTmluamEsIG9yIG90aGVyIGVudmlyb25tZW50IHRoYXQg
Zml0cyB5b3VyIG5lZWRzLgorCitBbiBleGFtcGxlIG9mIGEgY29tbW9uIE1lc29uL05pbmphIGVu
dmlyb25tZW50IGlzIGRlc2NyaWJlZCBuZXh0LgorCisjIyBCdWlsZGluZyBhbmQgdGVzdGluZyB3
aXRoIE1lc29uL05pbmphCitUaGFua3MgdG8gRGF2aWQgU2VpZmVydCAoQFNvYXBHZW50b28pLCB3
ZSAodGhlIG1haW50YWluZXJzKSBub3cgdXNlCitbbWVzb25dKGh0dHA6Ly9tZXNvbmJ1aWxkLmNv
bS8pIGFuZCBbbmluamFdKGh0dHBzOi8vbmluamEtYnVpbGQub3JnLykgdG8gYnVpbGQKK2ZvciBk
ZWJ1Z2dpbmcsIGFzIHdlbGwgYXMgZm9yIGNvbnRpbnVvdXMgaW50ZWdyYXRpb24gKHNlZQorW2Au
L3RyYXZpc19zY3JpcHRzL21lc29uX2J1aWxkZXIuc2hgXSguL3RyYXZpc19zY3JpcHRzL21lc29u
X2J1aWxkZXIuc2gpICkuIE90aGVyIHN5c3RlbXMgbWF5IHdvcmssIGJ1dCBtaW5vcgordGhpbmdz
IGxpa2UgdmVyc2lvbiBzdHJpbmdzIG1pZ2h0IGJyZWFrLgorCitGaXJzdCwgaW5zdGFsbCBib3Ro
IG1lc29uICh3aGljaCByZXF1aXJlcyBQeXRob24zKSBhbmQgbmluamEuCitJZiB5b3Ugd2lzaCB0
byBpbnN0YWxsIHRvIGEgZGlyZWN0b3J5IG90aGVyIHRoYW4gL3Vzci9sb2NhbCwgc2V0IGFuIGVu
dmlyb25tZW50IHZhcmlhYmxlIGNhbGxlZCBERVNURElSIHdpdGggdGhlIGRlc2lyZWQgcGF0aDoK
KyAgICBERVNURElSPS9wYXRoL3RvL2luc3RhbGwvZGlyCisKK1RoZW4sCisKKyAgICBjZCBqc29u
Y3BwLworICAgIEJVSUxEX1RZUEU9ZGVidWcKKyAgICAjQlVJTERfVFlQRT1yZWxlYXNlCisgICAg
TElCX1RZUEU9c2hhcmVkCisgICAgI0xJQl9UWVBFPXN0YXRpYworICAgIG1lc29uIC0tYnVpbGR0
eXBlICR7QlVJTERfVFlQRX0gLS1kZWZhdWx0LWxpYnJhcnkgJHtMSUJfVFlQRX0gLiBidWlsZC0k
e0xJQl9UWVBFfQorICAgICNuaW5qYSAtdiAtQyBidWlsZC0ke0xJQl9UWVBFfSB0ZXN0ICMgVGhp
cyBzdG9wcGVkIHdvcmtpbmcgb24gbXkgTWFjLgorICAgIG5pbmphIC12IC1DIGJ1aWxkLSR7TElC
X1RZUEV9CisgICAgY2QgYnVpbGQtJHtMSUJfVFlQRX0KKyAgICBtZXNvbiB0ZXN0IC0tbm8tcmVi
dWlsZCAtLXByaW50LWVycm9ybG9ncworICAgIHN1ZG8gbmluamEgaW5zdGFsbAorCisjIyBCdWls
ZGluZyBhbmQgdGVzdGluZyB3aXRoIG90aGVyIGJ1aWxkIHN5c3RlbXMKK1NlZSBodHRwczovL2dp
dGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3dpa2kvQnVpbGRpbmcKKworIyMg
UnVubmluZyB0aGUgdGVzdHMgbWFudWFsbHkKKworWW91IG5lZWQgdG8gcnVuIHRlc3RzIG1hbnVh
bGx5IG9ubHkgaWYgeW91IGFyZSB0cm91Ymxlc2hvb3RpbmcgYW4gaXNzdWUuCisKK0luIHRoZSBp
bnN0cnVjdGlvbnMgYmVsb3csIHJlcGxhY2UgYHBhdGgvdG8vanNvbnRlc3RgIHdpdGggdGhlIHBh
dGggb2YgdGhlCitganNvbnRlc3RgIGV4ZWN1dGFibGUgdGhhdCB3YXMgY29tcGlsZWQgb24geW91
ciBwbGF0Zm9ybS4KKworICAgIGNkIHRlc3QKKyAgICAjIFRoaXMgd2lsbCBydW4gdGhlIFJlYWRl
ci9Xcml0ZXIgdGVzdHMKKyAgICBweXRob24gcnVuanNvbnRlc3RzLnB5IHBhdGgvdG8vanNvbnRl
c3QKKworICAgICMgVGhpcyB3aWxsIHJ1biB0aGUgUmVhZGVyL1dyaXRlciB0ZXN0cywgdXNpbmcg
SlNPTkNoZWNrZXIgdGVzdCBzdWl0ZQorICAgICMgKGh0dHA6Ly93d3cuanNvbi5vcmcvSlNPTl9j
aGVja2VyLykuCisgICAgIyBOb3Rlczogbm90IGFsbCB0ZXN0cyBwYXNzOiBKc29uQ3BwIGlzIHRv
byBsZW5pZW50IChmb3IgZXhhbXBsZSwKKyAgICAjIGl0IGFsbG93cyBhbiBpbnRlZ2VyIHRvIHN0
YXJ0IHdpdGggJzAnKS4gVGhlIGdvYWwgaXMgdG8gaW1wcm92ZQorICAgICMgc3RyaWN0IG1vZGUg
cGFyc2luZyB0byBnZXQgYWxsIHRlc3RzIHRvIHBhc3MuCisgICAgcHl0aG9uIHJ1bmpzb250ZXN0
cy5weSAtLXdpdGgtanNvbi1jaGVja2VyIHBhdGgvdG8vanNvbnRlc3QKKworICAgICMgVGhpcyB3
aWxsIHJ1biB0aGUgdW5pdCB0ZXN0cyAobW9zdGx5IFZhbHVlKQorICAgIHB5dGhvbiBydW51bml0
dGVzdHMucHkgcGF0aC90by90ZXN0X2xpYl9qc29uCisKKyAgICAjIFlvdSBjYW4gcnVuIHRoZSB0
ZXN0cyB1c2luZyB2YWxncmluZDoKKyAgICBweXRob24gcnVudW5pdHRlc3RzLnB5IC0tdmFsZ3Jp
bmQgcGF0aC90by90ZXN0X2xpYl9qc29uCisKKyMjIEJ1aWxkaW5nIHRoZSBkb2N1bWVudGF0aW9u
CisKK1J1biB0aGUgUHl0aG9uIHNjcmlwdCBgZG94eWJ1aWxkLnB5YCBmcm9tIHRoZSB0b3AgZGly
ZWN0b3J5OgorCisgICAgcHl0aG9uIGRveHlidWlsZC5weSAtLWRveHlnZW49JCh3aGljaCBkb3h5
Z2VuKSAtLW9wZW4gLS13aXRoLWRvdAorCitTZWUgYGRveHlidWlsZC5weSAtLWhlbHBgIGZvciBv
cHRpb25zLgorCisjIyBBZGRpbmcgYSByZWFkZXIvd3JpdGVyIHRlc3QKKworVG8gYWRkIGEgdGVz
dCwgeW91IG5lZWQgdG8gY3JlYXRlIHR3byBmaWxlcyBpbiB0ZXN0L2RhdGE6CisKKyogYSBgVEVT
VE5BTUUuanNvbmAgZmlsZSwgdGhhdCBjb250YWlucyB0aGUgaW5wdXQgZG9jdW1lbnQgaW4gSlNP
TiBmb3JtYXQuCisqIGEgYFRFU1ROQU1FLmV4cGVjdGVkYCBmaWxlLCB0aGF0IGNvbnRhaW5zIGEg
ZmxhdGVuZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlCisgIGlucHV0IGRvY3VtZW50LgorCitUaGUg
YFRFU1ROQU1FLmV4cGVjdGVkYCBmaWxlIGZvcm1hdCBpcyBhcyBmb2xsb3dzOgorCisqIEVhY2gg
bGluZSByZXByZXNlbnRzIGEgSlNPTiBlbGVtZW50IG9mIHRoZSBlbGVtZW50IHRyZWUgcmVwcmVz
ZW50ZWQgYnkgdGhlCisgIGlucHV0IGRvY3VtZW50LgorKiBFYWNoIGxpbmUgaGFzIHR3byBwYXJ0
czogdGhlIHBhdGggdG8gYWNjZXNzIHRoZSBlbGVtZW50IHNlcGFyYXRlZCBmcm9tIHRoZQorICBl
bGVtZW50IHZhbHVlIGJ5IGA9YC4gQXJyYXkgYW5kIG9iamVjdCB2YWx1ZXMgYXJlIGFsd2F5cyBl
bXB0eSAoaS5lLgorICByZXByZXNlbnRlZCBieSBlaXRoZXIgYFtdYCBvciBge31gKS4KKyogRWxl
bWVudCBwYXRoIGAuYCByZXByZXNlbnRzIHRoZSByb290IGVsZW1lbnQsIGFuZCBpcyB1c2VkIHRv
IHNlcGFyYXRlIG9iamVjdAorICBtZW1iZXJzLiBgW05dYCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhl
IHZhbHVlIG9mIGFuIGFycmF5IGVsZW1lbnQgYXQgaW5kZXggYE5gLgorCitTZWUgdGhlIGV4YW1w
bGVzIGB0ZXN0X2NvbXBsZXhfMDEuanNvbmAgYW5kIGB0ZXN0X2NvbXBsZXhfMDEuZXhwZWN0ZWRg
IHRvIGJldHRlciB1bmRlcnN0YW5kIGVsZW1lbnQgcGF0aHMuCisKKyMjIFVuZGVyc3RhbmRpbmcg
cmVhZGVyL3dyaXRlciB0ZXN0IG91dHB1dAorCitXaGVuIGEgdGVzdCBpcyBydW4sIG91dHB1dCBm
aWxlcyBhcmUgZ2VuZXJhdGVkIGJlc2lkZSB0aGUgaW5wdXQgdGVzdCBmaWxlcy4gQmVsb3cgaXMg
YSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgY29udGVudCBvZiBlYWNoIGZpbGU6CisKKyogYHRl
c3RfY29tcGxleF8wMS5qc29uYDogaW5wdXQgSlNPTiBkb2N1bWVudC4KKyogYHRlc3RfY29tcGxl
eF8wMS5leHBlY3RlZGA6IGZsYXR0ZW5lZCBKU09OIGVsZW1lbnQgdHJlZSB1c2VkIHRvIGNoZWNr
IGlmCisgIHBhcnNpbmcgd2FzIGNvcnJlY3RlZC4KKyogYHRlc3RfY29tcGxleF8wMS5hY3R1YWxg
OiBmbGF0dGVuZWQgSlNPTiBlbGVtZW50IHRyZWUgcHJvZHVjZWQgYnkgYGpzb250ZXN0YAorICBm
cm9tIHJlYWRpbmcgYHRlc3RfY29tcGxleF8wMS5qc29uYC4KKyogYHRlc3RfY29tcGxleF8wMS5y
ZXdyaXRlYDogSlNPTiBkb2N1bWVudCB3cml0dGVuIGJ5IGBqc29udGVzdGAgdXNpbmcgdGhlCisg
IGBKc29uOjpWYWx1ZWAgcGFyc2VkIGZyb20gYHRlc3RfY29tcGxleF8wMS5qc29uYCBhbmQgc2Vy
aWFsaXplZCB1c2luZworICBgSnNvbjo6U3R5bGVkV3JpdHRlcmAuCisqIGB0ZXN0X2NvbXBsZXhf
MDEuYWN0dWFsLXJld3JpdGVgOiBmbGF0dGVuZWQgSlNPTiBlbGVtZW50IHRyZWUgcHJvZHVjZWQg
YnkKKyAgYGpzb250ZXN0YCBmcm9tIHJlYWRpbmcgYHRlc3RfY29tcGxleF8wMS5yZXdyaXRlYC4K
KyogYHRlc3RfY29tcGxleF8wMS5wcm9jZXNzLW91dHB1dGA6IGBqc29udGVzdGAgb3V0cHV0LCB0
eXBpY2FsbHkgdXNlZnVsIGZvcgorICB1bmRlcnN0YW5kaW5nIHBhcnNpbmcgZXJyb3JzLgorCisj
IyBWZXJzaW9uaW5nIHJ1bGVzCisKK0NvbnN1bWVycyBvZiB0aGlzIGxpYnJhcnkgcmVxdWlyZSBh
IHN0cmljdCBhcHByb2FjaCB0byBpbmNyZW1lbnRpbmcgdmVyc2lvbmluZyBvZiB0aGUgSnNvbkNw
cCBsaWJyYXJ5LiBDdXJyZW50bHksIHdlIGZvbGxvdyB0aGUgYmVsb3cgc2V0IG9mIHJ1bGVzOgor
CisqIEFueSBuZXcgcHVibGljIHN5bWJvbHMgcmVxdWlyZSBhIG1pbm9yIHZlcnNpb24gYnVtcC4K
KyogQW55IGFsdGVyYXRpb24gb3IgcmVtb3ZhbCBvZiBwdWJsaWMgc3ltYm9scyByZXF1aXJlcyBh
IG1ham9yIHZlcnNpb24gYnVtcCwgaW5jbHVkaW5nIGNoYW5naW5nIHRoZSBzaXplIG9mIGEgY2xh
c3MuIFRoaXMgaXMgbmVjZXNzYXJ5IGZvcgorY29uc3VtZXJzIHRvIGRvIGRlcGVuZGVuY3kgaW5q
ZWN0aW9uIHByb3Blcmx5LgorCisjIyBQcmVwYXJpbmcgY29kZSBmb3Igc3VibWlzc2lvbgorCitH
ZW5lcmFsbHksIEpzb25DcHAncyBzdHlsZSBndWlkZSBoYXMgYmVlbiBwcmV0dHkgcmVsYXhlZCwg
d2l0aCB0aGUgZm9sbG93aW5nIGNvbW1vbiB0aGVtZXM6CisKKyogVmFyaWFibGVzIGFuZCBmdW5j
dGlvbiBuYW1lcyB1c2UgbG93ZXIgY2FtZWwgY2FzZSAoRS5nLiBwYXJzZVZhbHVlIG9yIGNvbGxl
Y3RDb21tZW50cykuCisqIENsYXNzIHVzZSBjYW1lbCBjYXNlIChlLmcuIE91clJlYWRlcikKKyog
TWVtYmVyIHZhcmlhYmxlcyBoYXZlIGEgdHJhaWxpbmcgdW5kZXJzY29yZQorKiBQcmVmZXIgYG51
bGxwdHJgIG92ZXIgYE5VTExgLgorKiBQYXNzaW5nIGJ5IG5vbi1jb25zdCByZWZlcmVuY2UgaXMg
YWxsb3dlZC4KKyogU2luZ2xlIHN0YXRlbWVudCBpZiBibG9ja3MgbWF5IG9taXQgYnJhY2tldHMu
CisqIEdlbmVyYWxseSBwcmVmZXIgbGVzcyBzcGFjZSBvdmVyIG1vcmUgc3BhY2UuCisKK0ZvciBh
biBleGFtcGxlOgorCitgYGBjKysKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRv
a2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7CisgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuLCBkZWNv
ZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRl
Y29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBi
ZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CitgYGAKKworQmVmb3JlIHN1Ym1pdHRpbmcgeW91ciBj
b2RlLCBlbnN1cmUgdGhhdCB5b3UgbWVldCB0aGUgdmVyc2lvbmluZyByZXF1aXJlbWVudHMgYWJv
dmUsIGZvbGxvdyB0aGUgc3R5bGUgZ3VpZGUgb2YgdGhlIGZpbGUgeW91IGFyZSBtb2RpZnlpbmcg
KG9yIHRoZSBhYm92ZSBydWxlcyBmb3IgbmV3IGZpbGVzKSwgYW5kIHJ1biBjbGFuZyBmb3JtYXQu
IE1lc29uIGV4cG9zZXMgY2xhbmcgZm9ybWF0IHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kOgor
CitgYGAKK25pbmphIC12IC1DIGJ1aWxkLSR7TElCX1RZUEV9LyBjbGFuZy1mb3JtYXQKK2BgYApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9MSUNFTlNFIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9MSUNFTlNFCmluZGV4IGNhMmJmZTFhMDNl
ZTVlMzkxZjUxYjFiYzRkZTQ3MTE0NDIxZWVjOTguLjg5MjgwYTZjNDhhOWRiNTE1NTk3MDBkMzRj
ODQ5YjQ5ZTFjNDlhZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvTElDRU5TRQorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL0xJQ0VO
U0UKQEAgLTIsMTMgKzIsMTMgQEAgVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBp
bmNsdWRpbmcgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24sCiB0ZXN0cyBhbmQgZGVtb25zdHJh
dGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNlbnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCiBjb25k
aXRpb25zLi4uCiAKLVRoZSBhdXRob3IgKEJhcHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRseSBk
aXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAKK0JhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpz
b25DcHAgQXV0aG9ycyBleHBsaWNpdGx5IGRpc2NsYWltIGNvcHlyaWdodCBpbiBhbGwgCiBqdXJp
c2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBqdXJp
c2RpY3Rpb25zLCAKIHRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGljIERv
bWFpbi4KIAogSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1YmxpYyBE
b21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgotMjAxMCksIHRoaXMgc29mdHdhcmUg
aXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQgaXMK
LXJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyku
CisyMDEwKSwgdGhpcyBzb2Z0d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0
aXN0ZSBMZXBpbGxldXIgYW5kCitUaGUgSnNvbkNwcCBBdXRob3JzLCBhbmQgaXMgcmVsZWFzZWQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4KIAogSW4ganVy
aXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSwgdGhlIHVz
ZXIgb2YgdGhpcyAKIHNvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0IGVpdGhlciBhcyAx
KSBQdWJsaWMgRG9tYWluLCAyKSB1bmRlciB0aGUgCkBAIC0yMyw3ICsyMyw3IEBAIGRlc2NyaWJl
ZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBhdDoKIFRoZSBmdWxsIHRleHQgb2YgdGhlIE1JVCBM
aWNlbnNlIGZvbGxvd3M6CiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotQ29weXJpZ2h0IChjKSAyMDA3LTIw
MTAgQmFwdGlzdGUgTGVwaWxsZXVyCitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIAogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KIG9idGFpbmluZyBhIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL05FV1MudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9ORVdTLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODMxNmZmNmVmZTVkMWE4OTI1ZDI1MWI2YTExMTFjY2EyMTU4ODg3Mi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL05FV1MudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTQzICswLDAgQEAKLU5ldyBpbiBTVk4KLS0tLS0tLS0tLS0KLQotICog
IFVwZGF0ZWQgdGhlIHR5cGUgc3lzdGVtJ3MgYmVoYXZpb3IsIGluIG9yZGVyIHRvIGJldHRlciBz
dXBwb3J0IGJhY2t3YXJkcwotICAgIGNvbXBhdGliaWxpdHkgd2l0aCBjb2RlIHRoYXQgd2FzIHdy
aXR0ZW4gYmVmb3JlIDY0LWJpdCBpbnRlZ2VyIHN1cHBvcnQgd2FzCi0gICAgaW50cm9kdWNlZC4g
SGVyZSdzIGhvdyBpdCB3b3JrcyBub3c6Ci0KLSAgICAgKiAgaXNJbnQsIGlzSW50NjQsIGlzVUlu
dCwgYW5kIGlzVUludDY0IHJldHVybiB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZQotICAgICAgICB2
YWx1ZSBjYW4gYmUgZXhhY3RseSByZXByZXNlbnRlZCBhcyB0aGF0IHR5cGUuIEluIHBhcnRpY3Vs
YXIsIGEgdmFsdWUKLSAgICAgICAgY29uc3RydWN0ZWQgd2l0aCBhIGRvdWJsZSBsaWtlIDE3LjAg
d2lsbCBub3cgcmV0dXJuIHRydWUgZm9yIGFsbCBvZgotICAgICAgICB0aGVzZSBtZXRob2RzLgot
Ci0gICAgICogIGlzRG91YmxlIGFuZCBpc0Zsb2F0IG5vdyByZXR1cm4gdHJ1ZSBmb3IgYWxsIG51
bWVyaWMgdmFsdWVzLCBzaW5jZSBhbGwKLSAgICAgICAgbnVtZXJpYyB2YWx1ZXMgY2FuIGJlIGNv
bnZlcnRlZCB0byBhIGRvdWJsZSBvciBmbG9hdCB3aXRob3V0Ci0gICAgICAgIHRydW5jYXRpb24u
IE5vdGUgaG93ZXZlciB0aGF0IHRoZSBjb252ZXJzaW9uIG1heSBub3QgYmUgZXhhY3QgLS0gZm9y
Ci0gICAgICAgIGV4YW1wbGUsIGRvdWJsZXMgY2Fubm90IGV4YWN0bHkgcmVwcmVzZW50IGFsbCBp
bnRlZ2VycyBhYm92ZSAyXjUzICsgMS4KLQotICAgICAqICBpc0Jvb2wsIGlzTnVsbCwgaXNTdHJp
bmcsIGlzQXJyYXksIGFuZCBpc09iamVjdCBub3cgcmV0dXJuIHRydWUgaWYgYW5kCi0gICAgICAg
IG9ubHkgaWYgdGhlIHZhbHVlIGlzIG9mIHRoYXQgdHlwZS4KLQotICAgICAqICBpc0NvbnZlcnRp
YmxlVG8oZm9vVmFsdWUpIGluZGljYXRlcyB0aGF0IGl0IGlzIHNhZmUgdG8gY2FsbCBhc0Zvby4K
LSAgICAgICAgKEZvciBlYWNoIHR5cGUgZm9vLCBpc0ZvbyBhbHdheXMgaW1wbGllcyBpc0NvbnZl
cnRpYmxlVG8oZm9vVmFsdWUpLikKLSAgICAgICAgYXNGb28gcmV0dXJucyBhbiBhcHByb3hpbWF0
ZSBvciBleGFjdCByZXByZXNlbnRhdGlvbiBhcyBhcHByb3ByaWF0ZS4KLSAgICAgICAgRm9yIGV4
YW1wbGUsIGEgZG91YmxlIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgd2hlbiBhc0ludCBpcyBjYWxs
ZWQuCi0KLSAgICAgKiAgRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGNvZGUs
IGlzQ29udmVydGlibGVUbyhpbnRWYWx1ZSkKLSAgICAgICAgbWF5IHJldHVybiBmYWxzZSBldmVu
IGlmIHR5cGUoKSA9PSBpbnRWYWx1ZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSB2YWx1ZQotICAgICAg
ICBtYXkgaGF2ZSBiZWVuIGNvbnN0cnVjdGVkIHdpdGggYSA2NC1iaXQgaW50ZWdlciBsYXJnZXIg
dGhhbiBtYXhJbnQsCi0gICAgICAgIGFuZCBjYWxsaW5nIGFzSW50KCkgd291bGQgY2F1c2UgYW4g
ZXhjZXB0aW9uLiBJZiB5b3UncmUgd3JpdGluZyBuZXcKLSAgICAgICAgY29kZSwgdXNlIGlzSW50
NjQgdG8gZmluZCBvdXQgd2hldGhlciB0aGUgdmFsdWUgaXMgZXhhY3RseQotICAgICAgICByZXBy
ZXNlbnRhYmxlIHVzaW5nIGFuIEludDY0LCBvciBhc0RvdWJsZSgpIGNvbWJpbmVkIHdpdGggbWlu
SW50NjQgYW5kCi0gICAgICAgIG1heEludDY0IHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdCBpcyBh
cHByb3hpbWF0ZWx5IHJlcHJlc2VudGFibGUuCi0KLQotICBOZXcgaW4gSnNvbkNwcCAwLjYuMDoK
LSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSogQ29tcGlsYXRpb24KLQotICAtIExEX0xJQlJB
UllfUEFUSCBhbmQgTElCUkFSWV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgbm93IAot
ICAgIHByb3BhZ2F0ZWQgdG8gdGhlIGJ1aWxkIGVudmlyb25tZW50IGFzIHRoaXMgaXMgcmVxdWly
ZWQgZm9yIHNvbWUgCi0gICAgY29tcGlsZXIgaW5zdGFsbGF0aW9uLgotCi0gIC0gQWRkZWQgc3Vw
cG9ydCBmb3IgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMjAwOCAoYnVnICMyOTMwNDYyKTogCi0g
ICAgVGhlIHBsYXRmb3JtICJtc3ZjOTAiIGhhcyBiZWVuIGFkZGVkLgotCi0gICAgTm90ZXM6IHlv
dSBuZWVkIHRvIHNldHVwIHRoZSBlbnZpcm9ubWVudCBieSBydW5uaW5nIHZjdmFyczMyLmJhdCAK
LSAgICAoZS5nLiBNU1ZDIDIwMDggY29tbWFuZCBwcm9tcHQgaW4gc3RhcnQgbWVudSkgYmVmb3Jl
IHJ1bm5pbmcgc2NvbnMuCi0gICAgCi0gIC0gQWRkZWQgc3VwcG9ydCBmb3IgYW1hbGdhbWF0ZWQg
c291cmNlIGFuZCBoZWFkZXIgZ2VuZXJhdGlvbiAoYSBsYSBzcWxpdGUpLgotICAgIFJlZmVyIHRv
IFJFQURNRS50eHQgc2VjdGlvbiAiR2VuZXJhdGluZyBhbWFsZ2FtYXRlZCBzb3VyY2UgYW5kIGhl
YWRlciIKLSAgICBmb3IgZGV0YWlsLgotICAgIAotKiBWYWx1ZQotCi0gIC0gUmVtb3ZlZCBleHBl
cmltZW50YWwgVmFsdWVBbGxvY2F0b3IsIGl0IGNhdXNlZCBzdGF0aWMgCi0gICAgaW5pdGlhbGl6
YXRpb24vZGVzdHJ1Y3Rpb24gb3JkZXIgaXNzdWVzIChidWcgIzI5MzQ1MDApLiAKLSAgICBUaGUg
RGVmYXVsdFZhbHVlQWxsb2NhdG9yIGhhcyBiZWVuIGlubGluZWQgaW4gY29kZS4KLSAgICAKLSAg
LSBBZGRlZCBzdXBwb3J0IGZvciA2NCBiaXRzIGludGVnZXI6Ci0gIAotICAgIFR5cGVzIEpzb246
OkludDY0IGFuZCBKc29uOjpVSW50NjQgaGF2ZSBiZWVuIGFkZGVkLiBUaGV5IGFyZSBhbGlhc2Vk
Ci0JdG8gNjQgYml0cyBpbnRlZ2VycyBvbiBzeXN0ZW0gdGhhdCBzdXBwb3J0IHRoZW0gKGJhc2Vk
IG9uIF9faW50NjQgb24gCi0JTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gcGxhdGZvcm0sIGFuZCBs
b25nIGxvbmcgb24gb3RoZXIgcGxhdGZvcm1zKS4KLQkKLQlUeXBlcyBKc29uOjpMYXJnZXN0SW50
IGFuZCBKc29uOjpMYXJnZXN0VUludCBoYXZlIGJlZW4gYWRkZWQuIFRoZXkgYXJlCi0JYWxpYXNl
ZCB0byB0aGUgbGFyZ2VzdCBpbnRlZ2VyIHR5cGUgc3VwcG9ydGVkOiAKLQllaXRoZXIgSnNvbjo6
SW50L0pzb246OlVJbnQgb3IgSnNvbjo6SW50NjQvSnNvbjo6VUludDY0IHJlc3BlY3RpdmVseS4K
LQkKLQlKc29uOjpWYWx1ZTo6YXNJbnQoKSBhbmQgSnNvbjo6VmFsdWU6OmFzVUludCgpIHN0aWxs
IHJldHVybnMgcGxhaW4KLQkiaW50IiBiYXNlZCB0eXBlcywgYnV0IGFzc2VydHMgaWYgYW4gYXR0
ZW1wdCBpcyBtYWRlIHRvIHJldHJpZXZlCi0JYSA2NCBiaXRzIHZhbHVlIHRoYXQgY2FuIG5vdCBy
ZXByZXNlbnRlZCBhcyB0aGUgcmV0dXJuIHR5cGUuCi0JCi0JSnNvbjo6VmFsdWU6OmFzSW50NjQo
KSBhbmQgSnNvbjo6VmFsdWU6OmFzVUludDY0KCkgaGF2ZSBiZWVuIGFkZGVkCi0JdG8gb2J0YWlu
IHRoZSA2NCBiaXRzIGludGVnZXIgdmFsdWUuCi0JCi0JSnNvbjo6VmFsdWU6OmFzTGFyZ2VzdElu
dCgpIGFuZCBKc29uOjpWYWx1ZTo6YXNMYXJnZXN0VUludCgpIHJldHVybnMKLQl0aGUgaW50ZWdl
ciBhcyBhIExhcmdlc3RJbnQvTGFyZ2VzdFVJbnQgcmVzcGVjdGl2ZWx5LiBUaG9zZSBmdW5jdGlv
bnMKLQlmdW5jdGlvbnMgYXJlIHR5cGljYWxseSB1c2VkIHdoZW4gaW1wbGVtZW50aW5nIHdyaXRl
ci4KLQkKLQlUaGUgcmVhZGVyIGF0dGVtcHRzIHRvIHJlYWQgbnVtYmVyIGFzIDY0IGJpdHMgaW50
ZWdlciwgYW5kIGZhbGwgYmFjawotCXRvIHJlYWRpbmcgYSBkb3VibGUgaWYgdGhlIG51bWJlciBp
cyBub3QgaW4gdGhlIHJhbmdlIG9mIDY0IGJpdHMgCi0JaW50ZWdlci4KLSAgICAKLSAgICBXYXJu
aW5nOiBKc29uOjpWYWx1ZTo6YXNJbnQoKSBhbmQgSnNvbjo6VmFsdWU6OmFzVUludCgpIG5vdyBy
ZXR1cm5zCi0gICAgbG9uZyBsb25nLiBUaGlzIGNoYW5nZXMgYnJlYWsgY29kZSB0aGF0IHdhcyBw
YXNzaW5nIHRoZSByZXR1cm4gdmFsdWUKLSAgICB0byAqcHJpbnRmKCkgZnVuY3Rpb24uCi0gIAot
ICAgIFN1cHBvcnQgZm9yIDY0IGJpdHMgaW50ZWdlciBjYW4gYmUgZGlzYWJsZWQgYnkgZGVmaW5p
bmcgdGhlIG1hY3JvIAotCUpTT05fTk9fSU5UNjQgKHVuY29tbWVudCBpdCBpbiBqc29uL2NvbmZp
Zy5oIGZvciBleGFtcGxlKSwgdGhvdWdoCi0JaXQgc2hvdWxkIGhhdmUgbm8gaW1wYWN0IG9uIGV4
aXN0aW5nIHVzYWdlLgotICAgIAotICAtIFRoZSB0eXBlIEpzb246OkFycmF5SW5kZXggaXMgdXNl
ZCBmb3IgaW5kZXhlcyBvZiBhIEpTT04gdmFsdWUgYXJyYXkuIEl0Ci0gICAgaXMgYW4gdW5zaWdu
ZWQgaW50ICh0eXBpY2FsbHkgMzIgYml0cykuCi0JCi0gIC0gQXJyYXkgaW5kZXggY2FuIGJlIHBh
c3NlZCBhcyBpbnQgdG8gb3BlcmF0b3JbXSwgYWxsb3dpbmcgdXNlIG9mIGxpdGVyYWw6Ci0gICAg
SnNvbjo6VmFsdWUgYXJyYXk7Ci0JYXJyYXkuYXBwZW5kKCAxMjM0ICk7Ci0JaW50IHZhbHVlID0g
YXJyYXlbMF0uYXNJbnQoKTsgIC8vIGRpZCBub3QgY29tcGlsZSBwcmV2aW91c2x5Ci0KLSAgLSBB
ZGRlZCBmbG9hdCBKc29uOjpWYWx1ZTo6YXNGbG9hdCgpIHRvIG9idGFpbiBhIGZsb2F0aW5nIHBv
aW50IHZhbHVlIGFzIGEKLSAgICBmbG9hdCAoYXZvaWQgbG9zdCBvZiBwcmVjaXNpb24gd2Fybmlu
ZyBjYXVzZWQgYnkgdXNlZCBvZiBhc0RvdWJsZSgpIAotICAgIHRvIGluaXRpYWxpemUgYSBmbG9h
dCkuCi0KLSogUmVhZGVyCi0KLSAgLSBSZW5hbWVkIFJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1l
c3NhZ2VzKCkgdG8gZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcy4KLSAgICBCdWcgIzMwMjM3MDgg
KEZvcm1hdHRlZCBoYXMgMiAndCcpLiBUaGUgb2xkIG1lbWJlciBmdW5jdGlvbiBpcyBkZXByZWNh
dGVkCi0gICAgYnV0IHN0aWxsIHByZXNlbnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0g
ICAgCi0qIFRlc3RzCi0KLSAgLSBBZGRlZCB0ZXN0IHRvIGVuc3VyZSB0aGF0IHRoZSBlc2NhcGUg
c2VxdWVuY2UgIlwvIiBpcyBjb3JyZWN0ZWQgaGFuZGxlZCAKLSAgICBieSB0aGUgcGFyc2VyLgot
Ci0qIEJ1ZyBmaXhlcwotCi0gIC0gQnVnICMzMTM5Njc3OiBKU09OIFsxIDIgM10gd2FzIGluY29y
cmVjdGx5IHBhcnNlZCBhcyBbMSwgM10uIEVycm9yIGlzIG5vdyAKLSAgICBjb3JyZWN0bHkgZGV0
ZWN0ZWQuCi0gICAgCi0gIC0gQnVnICMzMTM5Njc4OiBzdGFjayBidWZmZXIgb3ZlcmZsb3cgd2hl
biBwYXJzaW5nIGEgZG91YmxlIHdpdGggYQotICAgIGxlbmd0aCBvZiAzMiBjaGFyYWN0ZXJzLgot
CQotICAtIEZpeGVkIFZhbHVlOjpvcGVyYXRvciA8PSBpbXBsZW1lbnRhdGlvbiAoaGFkIHRoZSBz
ZW1hbnRpYyBvZiBvcGVyYXRvciA+PSkuCi0gICAgRm91bmQgd2hlbiBhZGRpbmcgdW5pdCB0ZXN0
cyBmb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMuCi0gICAgCi0gIC0gVmFsdWU6OmNvbXBhcmUoKSBp
cyBub3cgY29uc3QgYW5kIGhhcyBhbiBhY3R1YWwgaW1wbGVtZW50YXRpb24gd2l0aAotICAgIHVu
aXQgdGVzdHMuCi0KLSAgLSBCdWcgIzI0MDc5MzI6IHN0cnBicmsoKSBjYW4gZmFpbCBmb3IgTlVM
TCBwb2ludGVyLgotCi0gIC0gQnVnICMzMzA2MzQ1OiBGaXhlZCBtaW5vciB0eXBvIGluIFBhdGg6
OnJlc29sdmUoKS4KLQotICAtIEJ1ZyAjMzMxNDg0MS8jMzMwNjg5NjogZXJyb3JzIGluIGFtYWxn
YW1hdGUucHkKLQotICAtIEZpeGVkIHNvbWUgQ292ZXJpdHkgd2FybmluZ3MgYW5kIGxpbmUtZW5k
aW5ncy4KLSAgICAKLSogTGljZW5zZQotICAKLSAgLSBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWxzLiBCYXNpY2FsbHkgSnNvbkNwcCBpcyBub3cgbGljZW5zZWQgdW5kZXIgCi0gICAgTUlUIGxp
Y2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQgcmVjb2duaXplZCBpbiB5b3Vy
IGp1cmlzZGljdGlvbi4KLSAgICBUaGFua3MgdG8gU3RlcGhhbiBHLiBCZWFsIFtodHRwOi8vd2Fu
ZGVyaW5naG9yc2UubmV0L2hvbWUvc3RlcGhhbi9dKSB3aG8KLQloZWxwZWQgZmlndXJpbmcgb3V0
IHRoZSBzb2x1dGlvbiB0byB0aGUgcHVibGljIGRvbWFpbiBpc3N1ZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvUkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM4NTg3MDYwZGIyYWQ4
ZDU2NTU2ZDAxNmI3NzgzY2FlMTg0MjcxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvUkVBRE1F
Lm1kCkBAIC0wLDAgKzEsNDYgQEAKKyMgSnNvbkNwcAorCitbIVtiYWRnZV0oaHR0cHM6Ly9pbWcu
c2hpZWxkcy5pby9iYWRnZS9jb25hbi5pby1qc29uY3BwJTJGMS44LjAtZ3JlZW4uc3ZnP2xvZ289
ZGF0YTppbWFnZS9wbmc7YmFzZTY0JTJDaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUE0QUFBQU9D
QU1BQUFBb2x0M2pBQUFBMVZCTVZFVUFBQUJobGN0amxzdGtsOHRsbU10bG1NeGxtY3htbWN4bm1z
eHBuTXhwbk0xcW5jMXNuODV2b005MW9NMTFvYzF4b3RCMm9jNTZwTkY2cE5KMnB0SjhwdEo4cHRO
OXB0TjhwOU41cU5KOXA5TjlwOVI4cXRPQnFkU0FxdE9BcXRSJTJCck5TQ3JOSi9yZFdEck5XQ3NO
V0NzTmFKczllTHM5aVJ2TnVWdmR5VnY5eVh3ZDJad3Q2YXhONmR4dCUyQmZ4JTJCQ2h5ZUdpeXVH
anl1Q2p5dUdseSUyQkdsek9LbXpPR296dUtveiUyQktxeiUyQk9xME9PdjFPV3cxT1d3MWVXeDFl
V3kxdWF5MSUyQmF6MSUyQmF6MSUyQmV6Mk9lMDJPZTEyZWUyMnVqVUd3SDNBQUFBQVhSU1RsTUFR
T2JZWmdBQUFBRmlTMGRFQUlnRkhVZ0FBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFBSGRF
bE5SUWZnQlFrUkV5T3hGSWgvQUFBQWlrbEVRVlFJMTJOZ0FBTWJPd1k0c0xaMk50UTFjb1ZLV052
b2MvRXE4WERyMndCNUlnNjJla3phOXZhT3FwSzJUcG9Nek94YUZ0d3FadWEyQm00bWFrSU03T3pN
QWpvYUNxWXV4b29TVXFKQUxqczdvNHlWcGJvd3Z6U1V5ODdLcVN3bXhRZm5zclBJU3lGeldlV0FY
Q2twTWFCVklDNGJtQ3NPZGdpVUt3aDNKb2pMZ0FRNFpDRTBBTW0yRDI5dFp3ZTZBQUFBQUVsRlRr
U3VRbUNDKV0oaHR0cHM6Ly9iaW50cmF5LmNvbS90aGVpcml4L2NvbmFuLXJlcG8vanNvbmNwcCUz
QXRoZWlyaXgpCisKK1tKU09OXVtqc29uLW9yZ10gaXMgYSBsaWdodHdlaWdodCBkYXRhLWludGVy
Y2hhbmdlIGZvcm1hdC4gSXQgY2FuIHJlcHJlc2VudAorbnVtYmVycywgc3RyaW5ncywgb3JkZXJl
ZCBzZXF1ZW5jZXMgb2YgdmFsdWVzLCBhbmQgY29sbGVjdGlvbnMgb2YgbmFtZS92YWx1ZQorcGFp
cnMuCisKK1tqc29uLW9yZ106IGh0dHA6Ly9qc29uLm9yZy8KKworSnNvbkNwcCBpcyBhIEMrKyBs
aWJyYXJ5IHRoYXQgYWxsb3dzIG1hbmlwdWxhdGluZyBKU09OIHZhbHVlcywgaW5jbHVkaW5nCitz
ZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gdG8gYW5kIGZyb20gc3RyaW5ncy4gSXQg
Y2FuIGFsc28gcHJlc2VydmUKK2V4aXN0aW5nIGNvbW1lbnQgaW4gdW5zZXJpYWxpemF0aW9uL3Nl
cmlhbGl6YXRpb24gc3RlcHMsIG1ha2luZyBpdCBhIGNvbnZlbmllbnQKK2Zvcm1hdCB0byBzdG9y
ZSB1c2VyIGlucHV0IGZpbGVzLgorCisKKyMjIERvY3VtZW50YXRpb24KKworW0pzb25DcHAgZG9j
dW1lbnRhdGlvbl1bSnNvbkNwcC1kb2N1bWVudGF0aW9uXSBpcyBnZW5lcmF0ZWQgdXNpbmcgW0Rv
eHlnZW5dW10uCisKK1tKc29uQ3BwLWRvY3VtZW50YXRpb25dOiBodHRwOi8vb3Blbi1zb3VyY2Ut
cGFyc2Vycy5naXRodWIuaW8vanNvbmNwcC1kb2NzL2RveHlnZW4vaW5kZXguaHRtbAorW0RveHln
ZW5dOiBodHRwOi8vd3d3LmRveHlnZW4ub3JnCisKKworIyMgQSBub3RlIG9uIGJhY2t3YXJkLWNv
bXBhdGliaWxpdHkKKworKiBgMS55LnpgIGlzIGJ1aWx0IHdpdGggQysrMTEuCisqIGAwLnkuemAg
Y2FuIGJlIHVzZWQgd2l0aCBvbGRlciBjb21waWxlcnMuCisqIE1ham9yIHZlcnNpb25zIG1haW50
YWluIGJpbmFyeS1jb21wYXRpYmlsaXR5LgorCisKKyMjIFVzaW5nIEpzb25DcHAgaW4geW91ciBw
cm9qZWN0CisKKyMjIyBBbWFsZ2FtYXRlZCBzb3VyY2UKK2h0dHBzOi8vZ2l0aHViLmNvbS9vcGVu
LXNvdXJjZS1wYXJzZXJzL2pzb25jcHAvd2lraS9BbWFsZ2FtYXRlZAorCisjIyMgVGhlIE1lc29u
IEJ1aWxkIFN5c3RlbQorSWYgeW91IGFyZSB1c2luZyB0aGUgW01lc29uIEJ1aWxkIFN5c3RlbV0o
aHR0cDovL21lc29uYnVpbGQuY29tKSwgdGhlbiB5b3UgY2FuIGdldCBhIHdyYXAgZmlsZSBieSBk
b3dubG9hZGluZyBpdCBmcm9tIFtNZXNvbiBXcmFwREJdKGh0dHBzOi8vd3JhcGRiLm1lc29uYnVp
bGQuY29tL2pzb25jcHApLCBvciBzaW1wbHkgdXNlIGBtZXNvbiB3cmFwIGluc3RhbGwganNvbmNw
cGAuCisKKyMjIyBPdGhlciB3YXlzCitJZiB5b3UgaGF2ZSB0cm91YmxlLCBzZWUgdGhlIFdpa2ks
IG9yIHBvc3QgYSBxdWVzdGlvbiBhcyBhbiBJc3N1ZS4KKworIyMgTGljZW5zZQorCitTZWUgdGhl
IGBMSUNFTlNFYCBmaWxlIGZvciBkZXRhaWxzLiBJbiBzdW1tYXJ5LCBKc29uQ3BwIGlzIGxpY2Vu
c2VkIHVuZGVyIHRoZQorTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBh
bmQgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvUkVB
RE1FLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvUkVBRE1FLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODhjMTE3OGQ3MjM3ZjhjYzg3ZGU3MTE2MzY2YWU3ZTgyY2YxNTE4ZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL1JFQURNRS50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxNzMgKzAsMCBAQAotKiBJbnRyb2R1Y3Rpb246Ci0gID09PT09PT09PT09PT0K
LQotSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pIGlzIGEgbGlnaHR3ZWlnaHQgZGF0
YS1pbnRlcmNoYW5nZSBmb3JtYXQuIAotSXQgY2FuIHJlcHJlc2VudCBpbnRlZ2VyLCByZWFsIG51
bWJlciwgc3RyaW5nLCBhbiBvcmRlcmVkIHNlcXVlbmNlIG9mIAotdmFsdWUsIGFuZCBhIGNvbGxl
Y3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycy4KLQotSnNvbkNwcCAoaHR0cDovL2pzb25jcHAuc291
cmNlZm9yZ2UubmV0LykgaXMgYSBzaW1wbGUgQVBJIHRvIG1hbmlwdWxhdGUgCi1KU09OIHZhbHVl
LCBoYW5kbGUgc2VyaWFsaXphdGlvbiBhbmQgdW5zZXJpYWxpemF0aW9uIHRvIHN0cmluZy4KLQot
SXQgY2FuIGFsc28gcHJlc2VydmUgZXhpc3RpbmcgY29tbWVudCBpbiB1bnNlcmlhbGl6YXRpb24v
c2VyaWFsaXphdGlvbiBzdGVwcywKLW1ha2luZyBpdCBhIGNvbnZlbmllbnQgZm9ybWF0IHRvIHN0
b3JlIHVzZXIgaW5wdXQgZmlsZXMuCi0KLVVuc2VyaWFsaXphdGlvbiBwYXJzaW5nIGlzIHVzZXIg
ZnJpZW5kbHkgYW5kIHByb3ZpZGVzIHByZWNpc2UgZXJyb3IgcmVwb3J0cy4KLQotCi0qIEJ1aWxk
aW5nL1Rlc3Rpbmc6Ci0gID09PT09PT09PT09PT09PT09Ci0KLUpzb25DcHAgdXNlcyBTY29ucyAo
aHR0cDovL3d3dy5zY29ucy5vcmcpIGFzIGEgYnVpbGQgc3lzdGVtLiBTY29ucyByZXF1aXJlcwot
cHl0aG9uIHRvIGJlIGluc3RhbGxlZCAoaHR0cDovL3d3dy5weXRob24ub3JnKS4KLQotWW91IGRv
d25sb2FkIHNjb25zLWxvY2FsIGRpc3RyaWJ1dGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgdXJsOgot
aHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9zY29ucy9maWxlcy9zY29ucy1sb2NhbC8x
LjIuMC8KLQotVW56aXAgaXQgaW4gdGhlIGRpcmVjdG9yeSB3aGVyZSB5b3UgZm91bmQgdGhpcyBS
RUFETUUgZmlsZS4gc2NvbnMucHkgU2hvdWxkIGJlIAotYXQgdGhlIHNhbWUgbGV2ZWwgYXMgUkVB
RE1FLgotCi1weXRob24gc2NvbnMucHkgcGxhdGZvcm09UExURlJNIFtUQVJHRVRdCi13aGVyZSBQ
TFRGUk0gbWF5IGJlIG9uZSBvZjoKLQlzdW5jYyBTdW4gQysrIChTb2xhcmlzKQotCXZhY3BwIFZp
c3VhbCBBZ2UgQysrIChBSVgpCi0JbWluZ3cgCi0JbXN2YzYgTWljcm9zb2Z0IFZpc3VhbCBTdHVk
aW8gNiBzZXJ2aWNlIHBhY2sgNS02Ci0JbXN2YzcwIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDIw
MDIKLQltc3ZjNzEgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMjAwMwotCW1zdmM4MCBNaWNyb3Nv
ZnQgVmlzdWFsIFN0dWRpbyAyMDA1Ci0JbXN2YzkwIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDIw
MDgKLQlsaW51eC1nY2MgR251IEMrKyAobGludXgsIGFsc28gcmVwb3J0ZWQgdG8gd29yayBmb3Ig
TWFjIE9TIFgpCi0KLU5vdGVzOiBpZiB5b3UgYXJlIGJ1aWxkaW5nIHdpdGggTWljcm9zb2Z0IFZp
c3VhbCBTdHVkaW8gMjAwOCwgeW91IG5lZWQgdG8gCi1zZXR1cCB0aGUgZW52aXJvbm1lbnQgYnkg
cnVubmluZyB2Y3ZhcnMzMi5iYXQgKGUuZy4gTVNWQyAyMDA4IGNvbW1hbmQgcHJvbXB0KQotYmVm
b3JlIHJ1bm5pbmcgc2NvbnMuCi0JCi1BZGRpbmcgcGxhdGZvcm0gaXMgZmFpcmx5IHNpbXBsZS4g
WW91IG5lZWQgdG8gY2hhbmdlIHRoZSBTY29uc3RydWN0IGZpbGUgCi10byBkbyBzby4KLQkKLWFu
ZCBUQVJHRVQgbWF5IGJlOgotCWNoZWNrOiBidWlsZCBsaWJyYXJ5IGFuZCBydW4gdW5pdCB0ZXN0
cy4KLQotICAgIAotKiBSdW5uaW5nIHRoZSB0ZXN0IG1hbnVhbGx5OgotICA9PT09PT09PT09PT09
PT09PT09PT09PT09PQotCi1Ob3RlcyB0aGF0IHRlc3QgY2FuIGJlIHJ1biBieSBzY29ucyB1c2lu
ZyB0aGUgJ2NoZWNrJyB0YXJnZXQgKHNlZSBhYm92ZSkuCi0KLVlvdSBuZWVkIHRvIHJ1biB0ZXN0
IG1hbnVhbGx5IG9ubHkgaWYgeW91IGFyZSB0cm91Ymxlc2hvb3RpbmcgYW4gaXNzdWUuCi0KLUlu
IHRoZSBpbnN0cnVjdGlvbiBiZWxvdywgcmVwbGFjZSAicGF0aCB0byBqc29udGVzdC5leGUiIHdp
dGggdGhlIHBhdGgKLW9mIHRoZSAnanNvbnRlc3QnIGV4ZWN1dGFibGUgdGhhdCB3YXMgY29tcGls
ZWQgb24geW91ciBwbGF0Zm9ybS4KLSAgCi1jZCB0ZXN0Ci0jIFRoaXMgd2lsbCBydW4gdGhlIFJl
YWRlci9Xcml0ZXIgdGVzdHMKLXB5dGhvbiBydW5qc29udGVzdHMucHkgInBhdGggdG8ganNvbnRl
c3QuZXhlIgotCi0jIFRoaXMgd2lsbCBydW4gdGhlIFJlYWRlci9Xcml0ZXIgdGVzdHMsIHVzaW5n
IEpTT05DaGVja2VyIHRlc3Qgc3VpdGUKLSMgKGh0dHA6Ly93d3cuanNvbi5vcmcvSlNPTl9jaGVj
a2VyLykuCi0jIE5vdGVzOiBub3QgYWxsIHRlc3RzIHBhc3M6IEpzb25DcHAgaXMgdG9vIGxlbmll
bnQgKGZvciBleGFtcGxlLAotIyBpdCBhbGxvd3MgYW4gaW50ZWdlciB0byBzdGFydCB3aXRoICcw
JykuIFRoZSBnb2FsIGlzIHRvIGltcHJvdmUKLSMgc3RyaWN0IG1vZGUgcGFyc2luZyB0byBnZXQg
YWxsIHRlc3RzIHRvIHBhc3MuCi1weXRob24gcnVuanNvbnRlc3RzLnB5IC0td2l0aC1qc29uLWNo
ZWNrZXIgInBhdGggdG8ganNvbnRlc3QuZXhlIgotCi0jIFRoaXMgd2lsbCBydW4gdGhlIHVuaXQg
dGVzdHMgKG1vc3RseSBWYWx1ZSkKLXB5dGhvbiBydW51bml0dGVzdHMucHkgInBhdGggdG8gdGVz
dF9saWJfanNvbi5leGUiCi0KLVlvdSBjYW4gcnVuIHRoZSB0ZXN0cyB1c2luZyB2YWxncmluZDoK
LXB5dGhvbiBydW51bml0dGVzdHMucHkgLS12YWxncmluZCAicGF0aCB0byB0ZXN0X2xpYl9qc29u
LmV4ZSIKLQotCi0qIEJ1aWxkaW5nIHRoZSBkb2N1bWVudGF0aW9uOgotICA9PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLQotUnVuIHRoZSBweXRob24gc2NyaXB0IGRveHlidWlsZC5weSBmcm9t
IHRoZSB0b3AgZGlyZWN0b3J5OgotCi1weXRob24gZG94eWJ1aWxkLnB5IC0tb3BlbiAtLXdpdGgt
ZG90Ci0KLVNlZSBkb3h5YnVpbGQucHkgLS1oZWxwIGZvciBvcHRpb25zLiAKLQotTm90ZXMgdGhh
dCB0aGUgZG9jdW1lbnRhdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgYXMgYSB0
YXJiYWxsLiAKLVRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBsYXRlc3QgcmVsZWFzZSBpcyBhdmFp
bGFibGUgb25saW5lIGF0OgotaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LwotCi0qIEdl
bmVyYXRpbmcgYW1hbGdhbWF0ZWQgc291cmNlIGFuZCBoZWFkZXIKLSAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1Kc29uQ3BwIGlzIHByb3ZpZGVkIHdpdGggYSBz
Y3JpcHQgdG8gZ2VuZXJhdGUgYSBzaW5nbGUgaGVhZGVyIGFuZCBhIHNpbmdsZQotc291cmNlIGZp
bGUgdG8gZWFzZSBpbmNsdXNpb24gaW4gYW4gZXhpc3RpbmcgcHJvamVjdC4KLQotVGhlIGFtYWxn
YW1hdGVkIHNvdXJjZSBjYW4gYmUgZ2VuZXJhdGVkIGF0IGFueSB0aW1lIGJ5IHJ1bm5pbmcgdGhl
IGZvbGxvd2luZwotY29tbWFuZCBmcm9tIHRoZSB0b3AtZGlyZWN0b3J5IChyZXF1aXJlcyBweXRo
b24gMi42KToKLQotcHl0aG9uIGFtYWxnYW1hdGUucHkKLQotSXQgaXMgcG9zc2libGUgdG8gc3Bl
Y2lmeSBoZWFkZXIgbmFtZS4gU2VlIC1oIG9wdGlvbnMgZm9yIGRldGFpbC4gQnkgZGVmYXVsdCwK
LXRoZSBmb2xsb3dpbmcgZmlsZXMgYXJlIGdlbmVyYXRlZDoKLS0gZGlzdC9qc29uY3BwLmNwcDog
c291cmNlIGZpbGUgdGhhdCBuZWVkIHRvIGJlIGFkZGVkIHRvIHlvdXIgcHJvamVjdAotLSBkaXN0
L2pzb24vanNvbi5oOiBoZWFkZXIgZmlsZSBjb3JyZXNwb25kaW5nIHRvIHVzZSBpbiB5b3VyIHBy
b2plY3QuIEl0IGlzCi1lcXVpdmFsZW50IHRvIGluY2x1ZGluZyBqc29uL2pzb24uaCBpbiBub24t
YW1hbGdhbWF0ZWQgc291cmNlLiBUaGlzIGhlYWRlcgotb25seSBkZXBlbmRzIG9uIHN0YW5kYXJk
IGhlYWRlcnMuIAotLSBkaXN0L2pzb24vanNvbi1mb3J3YXJkcy5oOiBoZWFkZXIgdGhlIHByb3Zp
ZGVzIGZvcndhcmQgZGVjbGFyYXRpb24KLW9mIGFsbCBKc29uQ3BwIHR5cGVzLiBUaGlzIHR5cGlj
YWxseSB3aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiBoZWFkZXJzIHRvCi1zcGVlZC11cCBjb21w
aWxhdGlvbi4KLQotVGhlIGFtYWxnYW1hdGVkIHNvdXJjZXMgYXJlIGdlbmVyYXRlZCBieSBjb25j
YXRlbmF0aW5nIEpzb25DcHAgc291cmNlIGluIHRoZQotY29ycmVjdCBvcmRlciBhbmQgZGVmaW5p
bmcgbWFjcm8gSlNPTl9JU19BTUFMR0FNQVRJT04gdG8gcHJldmVudCBpbmNsdXNpb24KLW9mIG90
aGVyIGhlYWRlcnMuCi0KLSogVXNpbmcganNvbi1jcHAgaW4geW91ciBwcm9qZWN0OgotICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLWluY2x1ZGUvIHNob3VsZCBiZSBhZGRlZCB0
byB5b3VyIGNvbXBpbGVyIGluY2x1ZGUgcGF0aC4ganNvbmNwcCBoZWFkZXJzIAotc2hvdWxkIGJl
IGluY2x1ZGVkIGFzIGZvbGxvdzoKLQotI2luY2x1ZGUgPGpzb24vanNvbi5oPgotICAKLQotKiBB
ZGRpbmcgYSByZWFkZXIvd3JpdGVyIHRlc3Q6Ci0gID09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLQotVG8gYWRkIGEgdGVzdCwgeW91IG5lZWQgdG8gY3JlYXRlIHR3byBmaWxlcyBpbiB0ZXN0
L2RhdGE6Ci0tIGEgVEVTVE5BTUUuanNvbiBmaWxlLCB0aGF0IGNvbnRhaW5zIHRoZSBpbnB1dCBk
b2N1bWVudCBpbiBKU09OIGZvcm1hdC4KLS0gYSBURVNUTkFNRS5leHBlY3RlZCBmaWxlLCB0aGF0
IGNvbnRhaW5zIGEgZmxhdGVuZWQgcmVwcmVzZW50YXRpb24gb2YgCi0gIHRoZSBpbnB1dCBkb2N1
bWVudC4KLSAgCi1URVNUTkFNRS5leHBlY3RlZCBmaWxlIGZvcm1hdDoKLS0gZWFjaCBsaW5lIHJl
cHJlc2VudHMgYSBKU09OIGVsZW1lbnQgb2YgdGhlIGVsZW1lbnQgdHJlZSByZXByZXNlbnRlZCAK
LSAgYnkgdGhlIGlucHV0IGRvY3VtZW50LgotLSBlYWNoIGxpbmUgaGFzIHR3byBwYXJ0czogdGhl
IHBhdGggdG8gYWNjZXNzIHRoZSBlbGVtZW50IHNlcGFyYXRlZCBmcm9tCi0gIHRoZSBlbGVtZW50
IHZhbHVlIGJ5ICc9Jy4gQXJyYXkgYW5kIG9iamVjdCB2YWx1ZXMgYXJlIGFsd2F5cyBlbXB0eSAK
LSAgKGUuZy4gcmVwcmVzZW50ZWQgYnkgZWl0aGVyIFtdIG9yIHt9KS4KLS0gZWxlbWVudCBwYXRo
OiAnLicgcmVwcmVzZW50ZWQgdGhlIHJvb3QgZWxlbWVudCwgYW5kIGlzIHVzZWQgdG8gc2VwYXJh
dGUgCi0gIG9iamVjdCBtZW1iZXJzLiBbTl0gaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSB2YWx1ZSBv
ZiBhbiBhcnJheSBlbGVtZW50Ci0gIGF0IGluZGV4IE4uCi1TZWUgdGVzdF9jb21wbGV4XzAxLmpz
b24gYW5kIHRlc3RfY29tcGxleF8wMS5leHBlY3RlZCB0byBiZXR0ZXIgdW5kZXJzdGFuZAotZWxl
bWVudCBwYXRoLgotCi0KLSogVW5kZXJzdGFuZGluZyByZWFkZXIvd3JpdGVyIHRlc3Qgb3V0cHV0
OgotICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVdoZW4gYSB0
ZXN0IGlzIHJ1biwgb3V0cHV0IGZpbGVzIGFyZSBnZW5lcmF0ZWQgYXNpZGUgdGhlIGlucHV0IHRl
c3QgZmlsZXMuIAotQmVsb3cgaXMgYSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgY29udGVudCBv
ZiBlYWNoIGZpbGU6Ci0KLS0gdGVzdF9jb21wbGV4XzAxLmpzb246IGlucHV0IEpTT04gZG9jdW1l
bnQKLS0gdGVzdF9jb21wbGV4XzAxLmV4cGVjdGVkOiBmbGF0dGVuZWQgSlNPTiBlbGVtZW50IHRy
ZWUgdXNlZCB0byBjaGVjayBpZiAKLSAgICBwYXJzaW5nIHdhcyBjb3JyZWN0ZWQuCi0KLS0gdGVz
dF9jb21wbGV4XzAxLmFjdHVhbDogZmxhdHRlbmVkIEpTT04gZWxlbWVudCB0cmVlIHByb2R1Y2Vk
IGJ5IAotICAgIGpzb250ZXN0LmV4ZSBmcm9tIHJlYWRpbmcgdGVzdF9jb21wbGV4XzAxLmpzb24K
LS0gdGVzdF9jb21wbGV4XzAxLnJld3JpdGU6IEpTT04gZG9jdW1lbnQgd3JpdHRlbiBieSBqc29u
dGVzdC5leGUgdXNpbmcgdGhlCi0gICAgSnNvbjo6VmFsdWUgcGFyc2VkIGZyb20gdGVzdF9jb21w
bGV4XzAxLmpzb24gYW5kIHNlcmlhbGl6ZWQgdXNpbmcKLSAgICBKc29uOjpTdHlsZWRXcml0dGVy
LgotLSB0ZXN0X2NvbXBsZXhfMDEuYWN0dWFsLXJld3JpdGU6IGZsYXR0ZW5lZCBKU09OIGVsZW1l
bnQgdHJlZSBwcm9kdWNlZCBieSAKLSAgICBqc29udGVzdC5leGUgZnJvbSByZWFkaW5nIHRlc3Rf
Y29tcGxleF8wMS5yZXdyaXRlLgotdGVzdF9jb21wbGV4XzAxLnByb2Nlc3Mtb3V0cHV0OiBqc29u
dGVzdC5leGUgb3V0cHV0LCB0eXBpY2FsbHkgdXNlZnVsIHRvCi0gICAgdW5kZXJzdGFuZCBwYXJz
aW5nIGVycm9yLgotCi0qIExpY2Vuc2UKLSAgPT09PT09PQotICAKLVNlZSBmaWxlIExJQ0VOU0Ug
Zm9yIGRldGFpbHMuIEJhc2ljYWxseSBKc29uQ3BwIGlzIGxpY2Vuc2VkIHVuZGVyIAotTUlUIGxp
Y2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQgcmVjb2duaXplZCBpbiB5b3Vy
IGp1cmlzZGljdGlvbi4KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9TQ29uc3RydWN0IGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9TQ29u
c3RydWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzIyNWNiYjc1OTg5YTU3MDUz
ZGIzMGU1YzFlZGMxZTEyZjA2ZjViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvU0NvbnN0cnVjdAorKysgL2Rldi9udWxsCkBAIC0xLDI0OCArMCww
IEBACi0iIiIKLU5vdGVzOiAKLS0gc2hhcmVkIGxpYnJhcnkgc3VwcG9ydCBpcyBidWdneTogaXQg
YXNzdW1lcyB0aGF0IGEgc3RhdGljIGFuZCBkeW5hbWljIGxpYnJhcnkgY2FuIGJlIGJ1aWxkIGZy
b20gdGhlIHNhbWUgb2JqZWN0IGZpbGVzLiBUaGlzIGlzIG5vdCB0cnVlIG9uIG1hbnkgcGxhdGZv
cm1zLiBGb3IgdGhpcyByZWFzb24gaXQgaXMgb25seSBlbmFibGVkIG9uIGxpbnV4LWdjYyBhdCB0
aGUgY3VycmVudCB0aW1lLgotCi1UbyBhZGQgYSBwbGF0Zm9ybToKLS0gYWRkIGl0cyBuYW1lIGlu
IG9wdGlvbnMgYWxsb3dlZF92YWx1ZXMgYmVsb3cKLS0gYWRkIHRvb2wgaW5pdGlhbGl6YXRpb24g
Zm9yIHRoaXMgcGxhdGZvcm0uIFNlYXJjaCBmb3IgImlmIHBsYXRmb3JtID09ICdzdW5jYyciIGFz
IGFuIGV4YW1wbGUuCi0iIiIKLQotaW1wb3J0IG9zCi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IHN5
cwotCi1KU09OQ1BQX1ZFUlNJT04gPSBvcGVuKEZpbGUoJyN2ZXJzaW9uJykuYWJzcGF0aCwncnQn
KS5yZWFkKCkuc3RyaXAoKQotRElTVF9ESVIgPSAnI2Rpc3QnCi0KLW9wdGlvbnMgPSBWYXJpYWJs
ZXMoKQotb3B0aW9ucy5BZGQoIEVudW1WYXJpYWJsZSgncGxhdGZvcm0nLAotICAgICAgICAgICAg
ICAgICAgICAgICAgJ1BsYXRmb3JtIChjb21waWxlci9zdGwpIHVzZWQgdG8gYnVpbGQgdGhlIHBy
b2plY3QnLAotICAgICAgICAgICAgICAgICAgICAgICAgJ21zdmM3MScsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBhbGxvd2VkX3ZhbHVlcz0nc3VuY2MgdmFjcHAgbWluZ3cgbXN2YzYgbXN2Yzcg
bXN2YzcxIG1zdmM4MCBtc3ZjOTAgbGludXgtZ2NjJy5zcGxpdCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgaWdub3JlY2FzZT0yKSApCi0KLXRyeToKLSAgICBwbGF0Zm9ybSA9IEFSR1VNRU5U
U1sncGxhdGZvcm0nXQotICAgIGlmIHBsYXRmb3JtID09ICdsaW51eC1nY2MnOgotICAgICAgICBD
WFggPSAnZysrJyAjIG5vdCBxdWl0ZSByaWdodCwgYnV0IGVudiBpcyBub3QgeWV0IGF2YWlsYWJs
ZS4KLSAgICAgICAgaW1wb3J0IGNvbW1hbmRzCi0gICAgICAgIHZlcnNpb24gPSBjb21tYW5kcy5n
ZXRvdXRwdXQoJyVzIC1kdW1wdmVyc2lvbicgJUNYWCkKLSAgICAgICAgcGxhdGZvcm0gPSAnbGlu
dXgtZ2NjLSVzJyAldmVyc2lvbgotICAgICAgICBwcmludCAiVXNpbmcgcGxhdGZvcm0gJyVzJyIg
JXBsYXRmb3JtCi0gICAgICAgIExEX0xJQlJBUllfUEFUSCA9IG9zLmVudmlyb24uZ2V0KCdMRF9M
SUJSQVJZX1BBVEgnLCAnJykKLSAgICAgICAgTERfTElCUkFSWV9QQVRIID0gIiVzOmxpYnMvJXMi
ICUoTERfTElCUkFSWV9QQVRILCBwbGF0Zm9ybSkKLSAgICAgICAgb3MuZW52aXJvblsnTERfTElC
UkFSWV9QQVRIJ10gPSBMRF9MSUJSQVJZX1BBVEgKLSAgICAgICAgcHJpbnQgIkxEX0xJQlJBUllf
UEFUSCA9IiwgTERfTElCUkFSWV9QQVRICi1leGNlcHQgS2V5RXJyb3I6Ci0gICAgcHJpbnQgJ1lv
dSBtdXN0IHNwZWNpZnkgYSAicGxhdGZvcm0iJwotICAgIHN5cy5leGl0KDIpCi0KLXByaW50ICJC
dWlsZGluZyB1c2luZyBQTEFURk9STSA9IiwgcGxhdGZvcm0KLQotcm9vdGJ1aWxkX2RpciA9IERp
cignI2J1aWxkc2NvbnMnKQotYnVpbGRfZGlyID0gb3MucGF0aC5qb2luKCAnI2J1aWxkc2NvbnMn
LCBwbGF0Zm9ybSApCi1iaW5fZGlyID0gb3MucGF0aC5qb2luKCAnI2JpbicsIHBsYXRmb3JtICkK
LWxpYl9kaXIgPSBvcy5wYXRoLmpvaW4oICcjbGlicycsIHBsYXRmb3JtICkKLXNjb25zaWduX2Rp
cl9wYXRoID0gRGlyKGJ1aWxkX2RpcikuYWJzcGF0aAotc2NvbnNpZ25fcGF0aCA9IG9zLnBhdGgu
am9pbiggc2NvbnNpZ25fZGlyX3BhdGgsICcuc2NvbnNpZ24uZGJtJyApCi0KLSMgRW5zdXJlIGJ1
aWxkIGRpcmVjdG9yeSBleGlzdCAoU0NvbnNpZ25GaWxlIGZhaWwgb3RoZXJ3aXNlISkKLWlmIG5v
dCBvcy5wYXRoLmV4aXN0cyggc2NvbnNpZ25fZGlyX3BhdGggKToKLSAgICBvcy5tYWtlZGlycygg
c2NvbnNpZ25fZGlyX3BhdGggKQotCi0jIFN0b3JlIGFsbCBkZXBlbmRlbmNpZXMgc2lnbmF0dXJl
IGluIGEgZGF0YWJhc2UKLVNDb25zaWduRmlsZSggc2NvbnNpZ25fcGF0aCApCi0KLWRlZiBtYWtl
X2Vudmlyb25fdmFycygpOgotCSIiIlJldHVybnMgYSBkaWN0aW9ubmFyeSB3aXRoIGVudmlyb25t
ZW50IHZhcmlhYmxlIHRvIHVzZSB3aGVuIGNvbXBpbGluZy4iIiIKLQkjIFBBVEggaXMgcmVxdWly
ZWQgdG8gZmluZCB0aGUgY29tcGlsZXIKLQkjIFRFTVAgaXMgcmVxdWlyZWQgZm9yIGF0IGxlYXN0
IG1pbmd3Ci0gICAgIyBMRF9MSUJSQVJZX1BBVEggJiBjbyBpcyByZXF1aXJlZCBvbiBzb21lIHN5
c3RlbSBmb3IgdGhlIGNvbXBpbGVyCi0JdmFycyA9IHt9Ci0JZm9yIG5hbWUgaW4gKCdQQVRIJywg
J1RFTVAnLCAnVE1QJywgJ0xEX0xJQlJBUllfUEFUSCcsICdMSUJSQVJZX1BBVEgnKToKLQkJaWYg
bmFtZSBpbiBvcy5lbnZpcm9uOgotCQkJdmFyc1tuYW1lXSA9IG9zLmVudmlyb25bbmFtZV0KLQly
ZXR1cm4gdmFycwotCQotCi1lbnYgPSBFbnZpcm9ubWVudCggRU5WID0gbWFrZV9lbnZpcm9uX3Zh
cnMoKSwKLSAgICAgICAgICAgICAgICAgICB0b29scGF0aCA9IFsnc2NvbnMtdG9vbHMnXSwKLSAg
ICAgICAgICAgICAgICAgICB0b29scz1bXSApICMsIHRvb2xzPVsnZGVmYXVsdCddICkKLQotaWYg
cGxhdGZvcm0gPT0gJ3N1bmNjJzoKLSAgICBlbnYuVG9vbCggJ3N1bmMrKycgKQotICAgIGVudi5U
b29sKCAnc3VubGluaycgKQotICAgIGVudi5Ub29sKCAnc3VuYXInICkKLSAgICBlbnYuQXBwZW5k
KCBDQ0ZMQUdTID0gWyctbXQnXSApCi1lbGlmIHBsYXRmb3JtID09ICd2YWNwcCc6Ci0gICAgZW52
LlRvb2woICdkZWZhdWx0JyApCi0gICAgZW52LlRvb2woICdhaXhjYycgKQotICAgIGVudlsnQ1hY
J10gPSAneGxDX3InICAgI3Njb25zIGRvZXMgbm90IHBpY2stdXAgdGhlIGNvcnJlY3Qgb25lICEK
LSAgICAjIHVzaW5nIHhsQ19yIGVuc3VyZSBtdWx0aS10aHJlYWRpbmcgaXMgZW5hYmxlZDoKLSAg
ICAjIGh0dHA6Ly9wdWJsaWIuYm91bGRlci5pYm0uY29tL2luZm9jZW50ZXIvcHNlcmllcy9pbmRl
eC5qc3A/dG9waWM9L2NvbS5pYm0udmFjcHA3YS5kb2MvY29tcGlsZXIvcmVmL2N1c2VsZWN0Lmh0
bQotICAgIGVudi5BcHBlbmQoIENDRkxBR1MgPSAnLXFydHRpPWFsbCcsCi0gICAgICAgICAgICAg
ICAgTElOS0ZMQUdTPSctYmg6NScgKSAgIyAtYmg6NSByZW1vdmUgZHVwbGljYXRlIHN5bWJvbCB3
YXJuaW5nCi1lbGlmIHBsYXRmb3JtID09ICdtc3ZjNic6Ci0gICAgZW52WydNU1ZTX1ZFUlNJT04n
XT0nNi4wJwotICAgIGZvciB0b29sIGluIFsnbXN2YycsICdtc3ZzJywgJ21zbGluaycsICdtYXNt
JywgJ21zbGliJ106Ci0gICAgICAgIGVudi5Ub29sKCB0b29sICkKLSAgICBlbnZbJ0NYWEZMQUdT
J109Jy1HUiAtR1ggL25vbG9nbyAvTVQnCi1lbGlmIHBsYXRmb3JtID09ICdtc3ZjNzAnOgotICAg
IGVudlsnTVNWU19WRVJTSU9OJ109JzcuMCcKLSAgICBmb3IgdG9vbCBpbiBbJ21zdmMnLCAnbXN2
cycsICdtc2xpbmsnLCAnbWFzbScsICdtc2xpYiddOgotICAgICAgICBlbnYuVG9vbCggdG9vbCAp
Ci0gICAgZW52WydDWFhGTEFHUyddPSctR1IgLUdYIC9ub2xvZ28gL01UJwotZWxpZiBwbGF0Zm9y
bSA9PSAnbXN2YzcxJzoKLSAgICBlbnZbJ01TVlNfVkVSU0lPTiddPSc3LjEnCi0gICAgZm9yIHRv
b2wgaW4gWydtc3ZjJywgJ21zdnMnLCAnbXNsaW5rJywgJ21hc20nLCAnbXNsaWInXToKLSAgICAg
ICAgZW52LlRvb2woIHRvb2wgKQotICAgIGVudlsnQ1hYRkxBR1MnXT0nLUdSIC1HWCAvbm9sb2dv
IC9NVCcKLWVsaWYgcGxhdGZvcm0gPT0gJ21zdmM4MCc6Ci0gICAgZW52WydNU1ZTX1ZFUlNJT04n
XT0nOC4wJwotICAgIGZvciB0b29sIGluIFsnbXN2YycsICdtc3ZzJywgJ21zbGluaycsICdtYXNt
JywgJ21zbGliJ106Ci0gICAgICAgIGVudi5Ub29sKCB0b29sICkKLSAgICBlbnZbJ0NYWEZMQUdT
J109Jy1HUiAtRUhzYyAvbm9sb2dvIC9NVCcKLWVsaWYgcGxhdGZvcm0gPT0gJ21zdmM5MCc6Ci0g
ICAgZW52WydNU1ZTX1ZFUlNJT04nXT0nOS4wJwotICAgICMgU2NvbnMgMS4yIGZhaWxzIHRvIGRl
dGVjdCB0aGUgY29ycmVjdCBsb2NhdGlvbiBvZiB0aGUgcGxhdGZvcm0gU0RLLgotICAgICMgU28g
d2UgcHJvcGFnYXRlIHRob3NlIGZyb20gdGhlIGVudmlyb25tZW50LiBUaGlzIHJlcXVpcmVzIHRo
YXQgdGhlCi0gICAgIyB1c2VyIHJ1biB2Y3ZhcnMzMi5iYXQgYmVmb3JlIGNvbXBpbGluZy4KLSAg
ICBpZiAnSU5DTFVERScgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgZW52WydFTlYnXVsnSU5DTFVE
RSddID0gb3MuZW52aXJvblsnSU5DTFVERSddCi0gICAgaWYgJ0xJQicgaW4gb3MuZW52aXJvbjoK
LSAgICAgICAgZW52WydFTlYnXVsnTElCJ10gPSBvcy5lbnZpcm9uWydMSUInXQotICAgIGZvciB0
b29sIGluIFsnbXN2YycsICdtc3ZzJywgJ21zbGluaycsICdtYXNtJywgJ21zbGliJ106Ci0gICAg
ICAgIGVudi5Ub29sKCB0b29sICkKLSAgICBlbnZbJ0NYWEZMQUdTJ109Jy1HUiAtRUhzYyAvbm9s
b2dvIC9NVCcKLWVsaWYgcGxhdGZvcm0gPT0gJ21pbmd3JzoKLSAgICBlbnYuVG9vbCggJ21pbmd3
JyApCi0gICAgZW52LkFwcGVuZCggQ1BQREVGSU5FUz1bICJXSU4zMiIsICJOREVCVUciLCAiX01U
IiBdICkKLWVsaWYgcGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgtZ2NjJyk6Ci0gICAgZW52LlRv
b2woICdkZWZhdWx0JyApCi0gICAgZW52LkFwcGVuZCggTElCUyA9IFsncHRocmVhZCddLCBDQ0ZM
QUdTID0gIi1XYWxsIiApCi0gICAgZW52WydTSEFSRURfTElCX0VOQUJMRUQnXSA9IFRydWUKLWVs
c2U6Ci0gICAgcHJpbnQgIlVOU1VQUE9SVEVEIFBMQVRGT1JNLiIKLSAgICBlbnYuRXhpdCgxKQot
Ci1lbnYuVG9vbCgndGFyZ3onKQotZW52LlRvb2woJ3NyY2Rpc3QnKQotZW52LlRvb2woJ2dsb2J0
b29sJykKLQotZW52LkFwcGVuZCggQ1BQUEFUSCA9IFsnI2luY2x1ZGUnXSwKLSAgICAgICAgICAg
IExJQlBBVEggPSBsaWJfZGlyICkKLXNob3J0X3BsYXRmb3JtID0gcGxhdGZvcm0KLWlmIHNob3J0
X3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ21zdmMnKToKLSAgICBzaG9ydF9wbGF0Zm9ybSA9IHNob3J0
X3BsYXRmb3JtWzI6XQotIyBOb3Rlczogb24gV2luZG93cyB5b3UgbmVlZCB0byByZWJ1aWxkIHRo
ZSBzb3VyY2UgZm9yIGVhY2ggdmFyaWFudAotIyBCdWlsZCBzY3JpcHQgZG9lcyBub3Qgc3VwcG9y
dCB0aGF0IHlldCBzbyB3ZSBvbmx5IGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuCi0jIFRoaXMgYWxz
byBmYWlscyBvbiBBSVggYmVjYXVzZSBib3RoIGR5bmFtaWMgYW5kIHN0YXRpYyBsaWJyYXJ5IGVu
ZHMgd2l0aAotIyBleHRlbnNpb24gLmEuCi1lbnZbJ1NIQVJFRF9MSUJfRU5BQkxFRCddID0gZW52
LmdldCgnU0hBUkVEX0xJQl9FTkFCTEVEJywgRmFsc2UpCi1lbnZbJ0xJQl9QTEFURk9STSddID0g
c2hvcnRfcGxhdGZvcm0KLWVudlsnTElCX0xJTktfVFlQRSddID0gJ2xpYicgICAgIyBzdGF0aWMK
LWVudlsnTElCX0NSVU5USU1FJ10gPSAnbXQnCi1lbnZbJ0xJQl9OQU1FX1NVRkZJWCddID0gJyR7
TElCX1BMQVRGT1JNfV8ke0xJQl9MSU5LX1RZUEV9JHtMSUJfQ1JVTlRJTUV9JyAgIyBtdXN0IG1h
dGNoIGF1dG9saW5rIG5hbWluZyBjb252ZW50aW9uCi1lbnZbJ0pTT05DUFBfVkVSU0lPTiddID0g
SlNPTkNQUF9WRVJTSU9OCi1lbnZbJ0JVSUxEX0RJUiddID0gZW52LkRpcihidWlsZF9kaXIpCi1l
bnZbJ1JPT1RCVUlMRF9ESVInXSA9IGVudi5EaXIocm9vdGJ1aWxkX2RpcikKLWVudlsnRElTVF9E
SVInXSA9IERJU1RfRElSCi1pZiAnVGFyR3onIGluIGVudlsnQlVJTERFUlMnXToKLQljbGFzcyBT
cmNEaXN0QWRkZXI6Ci0JCWRlZiBfX2luaXRfXyggc2VsZiwgZW52ICk6Ci0JCQlzZWxmLmVudiA9
IGVudgotCQlkZWYgX19jYWxsX18oIHNlbGYsICphcmdzLCAqKmt3ICk6Ci0JCQlhcHBseSggc2Vs
Zi5lbnYuU3JjRGlzdCwgKHNlbGYuZW52WydTUkNESVNUX1RBUkdFVCddLCkgKyBhcmdzLCBrdyAp
Ci0JZW52WydTUkNESVNUX0JVSUxERVInXSA9IGVudi5UYXJHegotZWxzZTogIyBJZiB0YXJmaWxl
IG1vZHVsZSBpcyBtaXNzaW5nCi0JY2xhc3MgU3JjRGlzdEFkZGVyOgotCQlkZWYgX19pbml0X18o
IHNlbGYsIGVudiApOgotCQkJcGFzcwotCQlkZWYgX19jYWxsX18oIHNlbGYsICphcmdzLCAqKmt3
ICk6Ci0JCQlwYXNzCi1lbnZbJ1NSQ0RJU1RfQUREJ10gPSBTcmNEaXN0QWRkZXIoIGVudiApCi1l
bnZbJ1NSQ0RJU1RfVEFSR0VUJ10gPSBvcy5wYXRoLmpvaW4oIERJU1RfRElSLCAnanNvbmNwcC1z
cmMtJXMudGFyLmd6JyAlIGVudlsnSlNPTkNQUF9WRVJTSU9OJ10gKQotICAgICAgICAgICAgICAg
ICAgICAgIAotZW52X3Rlc3RpbmcgPSBlbnYuQ2xvbmUoICkKLWVudl90ZXN0aW5nLkFwcGVuZCgg
TElCUyA9IFsnanNvbl8ke0xJQl9OQU1FX1NVRkZJWH0nXSApCi0KLWRlZiBidWlsZEpTT05FeGFt
cGxlKCBlbnYsIHRhcmdldF9zb3VyY2VzLCB0YXJnZXRfbmFtZSApOgotICAgIGVudiA9IGVudi5D
bG9uZSgpCi0gICAgZW52LkFwcGVuZCggQ1BQUEFUSCA9IFsnIyddICkKLSAgICBleGUgPSBlbnYu
UHJvZ3JhbSggdGFyZ2V0PXRhcmdldF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2U9dGFyZ2V0X3NvdXJjZXMgKQotICAgIGVudlsnU1JDRElTVF9BREQnXSggc291cmNlPVt0YXJn
ZXRfc291cmNlc10gKQotICAgIGdsb2JhbCBiaW5fZGlyCi0gICAgcmV0dXJuIGVudi5JbnN0YWxs
KCBiaW5fZGlyLCBleGUgKQotCi1kZWYgYnVpbGRKU09OVGVzdHMoIGVudiwgdGFyZ2V0X3NvdXJj
ZXMsIHRhcmdldF9uYW1lICk6Ci0gICAganNvbnRlc3RzX25vZGUgPSBidWlsZEpTT05FeGFtcGxl
KCBlbnYsIHRhcmdldF9zb3VyY2VzLCB0YXJnZXRfbmFtZSApCi0gICAgY2hlY2tfYWxpYXNfdGFy
Z2V0ID0gZW52LkFsaWFzKCAnY2hlY2snLCBqc29udGVzdHNfbm9kZSwgUnVuSlNPTlRlc3RzKCBq
c29udGVzdHNfbm9kZSwganNvbnRlc3RzX25vZGUgKSApCi0gICAgZW52LkFsd2F5c0J1aWxkKCBj
aGVja19hbGlhc190YXJnZXQgKQotCi1kZWYgYnVpbGRVbml0VGVzdHMoIGVudiwgdGFyZ2V0X3Nv
dXJjZXMsIHRhcmdldF9uYW1lICk6Ci0gICAganNvbnRlc3RzX25vZGUgPSBidWlsZEpTT05FeGFt
cGxlKCBlbnYsIHRhcmdldF9zb3VyY2VzLCB0YXJnZXRfbmFtZSApCi0gICAgY2hlY2tfYWxpYXNf
dGFyZ2V0ID0gZW52LkFsaWFzKCAnY2hlY2snLCBqc29udGVzdHNfbm9kZSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSdW5Vbml0VGVzdHMoIGpzb250ZXN0c19ub2RlLCBq
c29udGVzdHNfbm9kZSApICkKLSAgICBlbnYuQWx3YXlzQnVpbGQoIGNoZWNrX2FsaWFzX3Rhcmdl
dCApCi0KLWRlZiBidWlsZExpYnJhcnkoIGVudiwgdGFyZ2V0X3NvdXJjZXMsIHRhcmdldF9uYW1l
ICk6Ci0gICAgc3RhdGljX2xpYiA9IGVudi5TdGF0aWNMaWJyYXJ5KCB0YXJnZXQ9dGFyZ2V0X25h
bWUgKyAnXyR7TElCX05BTUVfU1VGRklYfScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2U9dGFyZ2V0X3NvdXJjZXMgKQotICAgIGdsb2JhbCBsaWJfZGlyCi0gICAg
ZW52Lkluc3RhbGwoIGxpYl9kaXIsIHN0YXRpY19saWIgKQotICAgIGlmIGVudlsnU0hBUkVEX0xJ
Ql9FTkFCTEVEJ106Ci0gICAgICAgIHNoYXJlZF9saWIgPSBlbnYuU2hhcmVkTGlicmFyeSggdGFy
Z2V0PXRhcmdldF9uYW1lICsgJ18ke0xJQl9OQU1FX1NVRkZJWH0nLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT10YXJnZXRfc291cmNlcyApCi0gICAgICAg
IGVudi5JbnN0YWxsKCBsaWJfZGlyLCBzaGFyZWRfbGliICkKLSAgICBlbnZbJ1NSQ0RJU1RfQURE
J10oIHNvdXJjZT1bdGFyZ2V0X3NvdXJjZXNdICkKLQotRXhwb3J0KCAnZW52IGVudl90ZXN0aW5n
IGJ1aWxkSlNPTkV4YW1wbGUgYnVpbGRMaWJyYXJ5IGJ1aWxkSlNPTlRlc3RzIGJ1aWxkVW5pdFRl
c3RzJyApCi0KLWRlZiBidWlsZFByb2plY3RJbkRpcmVjdG9yeSggdGFyZ2V0X2RpcmVjdG9yeSAp
OgotICAgIGdsb2JhbCBidWlsZF9kaXIKLSAgICB0YXJnZXRfYnVpbGRfZGlyID0gb3MucGF0aC5q
b2luKCBidWlsZF9kaXIsIHRhcmdldF9kaXJlY3RvcnkgKQotICAgIHRhcmdldCA9IG9zLnBhdGgu
am9pbiggdGFyZ2V0X2RpcmVjdG9yeSwgJ3Njb25zY3JpcHQnICkKLSAgICBTQ29uc2NyaXB0KCB0
YXJnZXQsIGJ1aWxkX2Rpcj10YXJnZXRfYnVpbGRfZGlyLCBkdXBsaWNhdGU9MCApCi0gICAgZW52
WydTUkNESVNUX0FERCddKCBzb3VyY2U9W3RhcmdldF0gKQotCi0KLWRlZiBydW5KU09OVGVzdHNf
YWN0aW9uKCB0YXJnZXQsIHNvdXJjZSA9IE5vbmUsIGVudiA9IE5vbmUgKToKLSAgICAjIEFkZCB0
ZXN0IHNjcmlwdHMgdG8gcHl0aG9uIHBhdGgKLSAgICBqc29udGVzdF9wYXRoID0gRGlyKCAnI3Rl
c3QnICkuYWJzcGF0aAotICAgIHN5cy5wYXRoLmluc2VydCggMCwganNvbnRlc3RfcGF0aCApCi0g
ICAgZGF0YV9wYXRoID0gb3MucGF0aC5qb2luKCBqc29udGVzdF9wYXRoLCAnZGF0YScgKQotICAg
IGltcG9ydCBydW5qc29udGVzdHMKLSAgICByZXR1cm4gcnVuanNvbnRlc3RzLnJ1bkFsbFRlc3Rz
KCBvcy5wYXRoLmFic3BhdGgoc291cmNlWzBdLnBhdGgpLCBkYXRhX3BhdGggKQotCi1kZWYgcnVu
SlNPTlRlc3RzX3N0cmluZyggdGFyZ2V0LCBzb3VyY2UgPSBOb25lLCBlbnYgPSBOb25lICk6Ci0g
ICAgcmV0dXJuICdSdW5KU09OVGVzdHMoIiVzIiknICUgc291cmNlWzBdCi0KLWltcG9ydCBTQ29u
cy5BY3Rpb24KLUFjdGlvbkZhY3RvcnkgPSBTQ29ucy5BY3Rpb24uQWN0aW9uRmFjdG9yeQotUnVu
SlNPTlRlc3RzID0gQWN0aW9uRmFjdG9yeShydW5KU09OVGVzdHNfYWN0aW9uLCBydW5KU09OVGVz
dHNfc3RyaW5nICkKLQotZGVmIHJ1blVuaXRUZXN0c19hY3Rpb24oIHRhcmdldCwgc291cmNlID0g
Tm9uZSwgZW52ID0gTm9uZSApOgotICAgICMgQWRkIHRlc3Qgc2NyaXB0cyB0byBweXRob24gcGF0
aAotICAgIGpzb250ZXN0X3BhdGggPSBEaXIoICcjdGVzdCcgKS5hYnNwYXRoCi0gICAgc3lzLnBh
dGguaW5zZXJ0KCAwLCBqc29udGVzdF9wYXRoICkKLSAgICBpbXBvcnQgcnVudW5pdHRlc3RzCi0g
ICAgcmV0dXJuIHJ1bnVuaXR0ZXN0cy5ydW5BbGxUZXN0cyggb3MucGF0aC5hYnNwYXRoKHNvdXJj
ZVswXS5wYXRoKSApCi0KLWRlZiBydW5Vbml0VGVzdHNfc3RyaW5nKCB0YXJnZXQsIHNvdXJjZSA9
IE5vbmUsIGVudiA9IE5vbmUgKToKLSAgICByZXR1cm4gJ1J1blVuaXRUZXN0cygiJXMiKScgJSBz
b3VyY2VbMF0KLQotUnVuVW5pdFRlc3RzID0gQWN0aW9uRmFjdG9yeShydW5Vbml0VGVzdHNfYWN0
aW9uLCBydW5Vbml0VGVzdHNfc3RyaW5nICkKLQotZW52LkFsaWFzKCAnY2hlY2snICkKLQotc3Jj
ZGlzdF9jbWQgPSBlbnZbJ1NSQ0RJU1RfQUREJ10oIHNvdXJjZSA9ICIiIgotICAgIEFVVEhPUlMg
UkVBRE1FLnR4dCBTQ29uc3RydWN0Ci0gICAgIiIiLnNwbGl0KCkgKQotZW52LkFsaWFzKCAnc3Jj
LWRpc3QnLCBzcmNkaXN0X2NtZCApCi0KLWJ1aWxkUHJvamVjdEluRGlyZWN0b3J5KCAnc3JjL2pz
b250ZXN0cnVubmVyJyApCi1idWlsZFByb2plY3RJbkRpcmVjdG9yeSggJ3NyYy9saWJfanNvbicg
KQotYnVpbGRQcm9qZWN0SW5EaXJlY3RvcnkoICdzcmMvdGVzdF9saWJfanNvbicgKQotI3ByaW50
IGVudi5EdW1wKCkKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9hbWFsZ2FtYXRlLnB5IGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9hbWFs
Z2FtYXRlLnB5CmluZGV4IGVhYjcyNGZlMWQ4YmE1OGQ5YzNiNmY3YWUwNjE4ZjI0OGU4NGY3MGUu
LmMxMjIxNWE4YjJiNjUxM2VhNzY5MTVmM2I0MTg5ZDZiMjhkYWU0YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvYW1hbGdhbWF0ZS5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2FtYWxnYW1hdGUucHkKQEAgLTEsMTQ4ICsxLDE1
NSBAQAotIiIiQW1hbGdhdGUganNvbi1jcHAgbGlicmFyeSBzb3VyY2VzIGludG8gYSBzaW5nbGUg
c291cmNlIGFuZCBoZWFkZXIgZmlsZS4KKyIiIkFtYWxnYW1hdGUganNvbi1jcHAgbGlicmFyeSBz
b3VyY2VzIGludG8gYSBzaW5nbGUgc291cmNlIGFuZCBoZWFkZXIgZmlsZS4KIAotUmVxdWlyZXMg
UHl0aG9uIDIuNgorV29ya3Mgd2l0aCBweXRob24yLjYrIGFuZCBweXRob24zLjQrLgogCiBFeGFt
cGxlIG9mIGludm9jYXRpb24gKG11c3QgYmUgaW52b2tlZCBmcm9tIGpzb24tY3BwIHRvcCBkaXJl
Y3RvcnkpOgotcHl0aG9uIGFtYWxnYXRlLnB5CitweXRob24gYW1hbGdhbWF0ZS5weQogIiIiCiBp
bXBvcnQgb3MKIGltcG9ydCBvcy5wYXRoCiBpbXBvcnQgc3lzCiAKIGNsYXNzIEFtYWxnYW1hdGlv
bkZpbGU6Ci0gICAgZGVmIF9faW5pdF9fKCBzZWxmLCB0b3BfZGlyICk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHRvcF9kaXIpOgogICAgICAgICBzZWxmLnRvcF9kaXIgPSB0b3BfZGlyCiAgICAg
ICAgIHNlbGYuYmxvY2tzID0gW10KIAotICAgIGRlZiBhZGRfdGV4dCggc2VsZiwgdGV4dCApOgot
ICAgICAgICBpZiBub3QgdGV4dC5lbmRzd2l0aCggJ1xuJyApOgotICAgICAgICAgICAgdGV4dCAr
PSAnXG4nCi0gICAgICAgIHNlbGYuYmxvY2tzLmFwcGVuZCggdGV4dCApCi0KLSAgICBkZWYgYWRk
X2ZpbGUoIHNlbGYsIHJlbGF0aXZlX2lucHV0X3BhdGgsIHdyYXBfaW5fY29tbWVudD1GYWxzZSAp
OgotICAgICAgICBkZWYgYWRkX21hcmtlciggcHJlZml4ICk6Ci0gICAgICAgICAgICBzZWxmLmFk
ZF90ZXh0KCAnJyApCi0gICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCAnLy8gJyArICcvJyo3MCAp
Ci0gICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCAnLy8gJXMgb2YgY29udGVudCBvZiBmaWxlOiAl
cycgJSAocHJlZml4LCByZWxhdGl2ZV9pbnB1dF9wYXRoLnJlcGxhY2UoJ1xcJywnLycpKSApCi0g
ICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCAnLy8gJyArICcvJyo3MCApCi0gICAgICAgICAgICBz
ZWxmLmFkZF90ZXh0KCAnJyApCi0gICAgICAgIGFkZF9tYXJrZXIoICdCZWdpbm5pbmcnICkKLSAg
ICAgICAgZiA9IG9wZW4oIG9zLnBhdGguam9pbiggc2VsZi50b3BfZGlyLCByZWxhdGl2ZV9pbnB1
dF9wYXRoICksICdydCcgKQorICAgIGRlZiBhZGRfdGV4dChzZWxmLCB0ZXh0KToKKyAgICAgICAg
aWYgbm90IHRleHQuZW5kc3dpdGgoIlxuIik6CisgICAgICAgICAgICB0ZXh0ICs9ICJcbiIKKyAg
ICAgICAgc2VsZi5ibG9ja3MuYXBwZW5kKHRleHQpCisKKyAgICBkZWYgYWRkX2ZpbGUoc2VsZiwg
cmVsYXRpdmVfaW5wdXRfcGF0aCwgd3JhcF9pbl9jb21tZW50PUZhbHNlKToKKyAgICAgICAgZGVm
IGFkZF9tYXJrZXIocHJlZml4KToKKyAgICAgICAgICAgIHNlbGYuYWRkX3RleHQoIiIpCisgICAg
ICAgICAgICBzZWxmLmFkZF90ZXh0KCIvLyAiICsgIi8iKjcwKQorICAgICAgICAgICAgc2VsZi5h
ZGRfdGV4dCgiLy8gJXMgb2YgY29udGVudCBvZiBmaWxlOiAlcyIgJSAocHJlZml4LCByZWxhdGl2
ZV9pbnB1dF9wYXRoLnJlcGxhY2UoIlxcIiwiLyIpKSkKKyAgICAgICAgICAgIHNlbGYuYWRkX3Rl
eHQoIi8vICIgKyAiLyIqNzApCisgICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCIiKQorICAgICAg
ICBhZGRfbWFya2VyKCJCZWdpbm5pbmciKQorICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4o
c2VsZi50b3BfZGlyLCByZWxhdGl2ZV9pbnB1dF9wYXRoKSwgInJ0IikKICAgICAgICAgY29udGVu
dCA9IGYucmVhZCgpCiAgICAgICAgIGlmIHdyYXBfaW5fY29tbWVudDoKLSAgICAgICAgICAgIGNv
bnRlbnQgPSAnLypcbicgKyBjb250ZW50ICsgJ1xuKi8nCi0gICAgICAgIHNlbGYuYWRkX3RleHQo
IGNvbnRlbnQgKQorICAgICAgICAgICAgY29udGVudCA9ICIvKlxuIiArIGNvbnRlbnQgKyAiXG4q
LyIKKyAgICAgICAgc2VsZi5hZGRfdGV4dChjb250ZW50KQogICAgICAgICBmLmNsb3NlKCkKLSAg
ICAgICAgYWRkX21hcmtlciggJ0VuZCcgKQotICAgICAgICBzZWxmLmFkZF90ZXh0KCAnXG5cblxu
XG4nICkKLQotICAgIGRlZiBnZXRfdmFsdWUoIHNlbGYgKToKLSAgICAgICAgcmV0dXJuICcnLmpv
aW4oIHNlbGYuYmxvY2tzICkucmVwbGFjZSgnXHJcbicsJ1xuJykKLQotICAgIGRlZiB3cml0ZV90
byggc2VsZiwgb3V0cHV0X3BhdGggKToKLSAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguZGly
bmFtZSggb3V0cHV0X3BhdGggKQotICAgICAgICBpZiBvdXRwdXRfZGlyIGFuZCBub3Qgb3MucGF0
aC5pc2Rpciggb3V0cHV0X2RpciApOgotICAgICAgICAgICAgb3MubWFrZWRpcnMoIG91dHB1dF9k
aXIgKQotICAgICAgICBmID0gb3Blbiggb3V0cHV0X3BhdGgsICd3YicgKQotICAgICAgICBmLndy
aXRlKCBzZWxmLmdldF92YWx1ZSgpICkKKyAgICAgICAgYWRkX21hcmtlcigiRW5kIikKKyAgICAg
ICAgc2VsZi5hZGRfdGV4dCgiXG5cblxuXG4iKQorCisgICAgZGVmIGdldF92YWx1ZShzZWxmKToK
KyAgICAgICAgcmV0dXJuICIiLmpvaW4oc2VsZi5ibG9ja3MpLnJlcGxhY2UoIlxyXG4iLCJcbiIp
CisKKyAgICBkZWYgd3JpdGVfdG8oc2VsZiwgb3V0cHV0X3BhdGgpOgorICAgICAgICBvdXRwdXRf
ZGlyID0gb3MucGF0aC5kaXJuYW1lKG91dHB1dF9wYXRoKQorICAgICAgICBpZiBvdXRwdXRfZGly
IGFuZCBub3Qgb3MucGF0aC5pc2RpcihvdXRwdXRfZGlyKToKKyAgICAgICAgICAgIG9zLm1ha2Vk
aXJzKG91dHB1dF9kaXIpCisgICAgICAgIGYgPSBvcGVuKG91dHB1dF9wYXRoLCAid2IiKQorICAg
ICAgICBmLndyaXRlKHN0ci5lbmNvZGUoc2VsZi5nZXRfdmFsdWUoKSwgJ1VURi04JykpCiAgICAg
ICAgIGYuY2xvc2UoKQogCi1kZWYgYW1hbGdhbWF0ZV9zb3VyY2UoIHNvdXJjZV90b3BfZGlyPU5v
bmUsCitkZWYgYW1hbGdhbWF0ZV9zb3VyY2Uoc291cmNlX3RvcF9kaXI9Tm9uZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0X3NvdXJjZV9wYXRoPU5vbmUsCi0gICAgICAgICAgICAgICAg
ICAgICAgIGhlYWRlcl9pbmNsdWRlX3BhdGg9Tm9uZSApOgotICAgICIiIlByb2R1Y2VzIGFtYWxn
YXRlZCBzb3VyY2UuCisgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlX3BhdGg9
Tm9uZSk6CisgICAgIiIiUHJvZHVjZXMgYW1hbGdhbWF0ZWQgc291cmNlLgogICAgICAgIFBhcmFt
ZXRlcnM6CiAgICAgICAgICAgIHNvdXJjZV90b3BfZGlyOiB0b3AtZGlyZWN0b3J5CiAgICAgICAg
ICAgIHRhcmdldF9zb3VyY2VfcGF0aDogb3V0cHV0IC5jcHAgcGF0aAogICAgICAgICAgICBoZWFk
ZXJfaW5jbHVkZV9wYXRoOiBnZW5lcmF0ZWQgaGVhZGVyIHBhdGggcmVsYXRpdmUgdG8gdGFyZ2V0
X3NvdXJjZV9wYXRoLgogICAgICIiIgotICAgIHByaW50ICdBbWFsZ2F0aW5nIGhlYWRlci4uLicK
LSAgICBoZWFkZXIgPSBBbWFsZ2FtYXRpb25GaWxlKCBzb3VyY2VfdG9wX2RpciApCi0gICAgaGVh
ZGVyLmFkZF90ZXh0KCAnLy8vIEpzb24tY3BwIGFtYWxnYXRlZCBoZWFkZXIgKGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC8pLicgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyBJdCBp
cyBpbnRlbnRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgPCVzPicgJSBoZWFkZXJfaW5jbHVk
ZV9wYXRoICkKLSAgICBoZWFkZXIuYWRkX2ZpbGUoICdMSUNFTlNFJywgd3JhcF9pbl9jb21tZW50
PVRydWUgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJyNpZm5kZWYgSlNPTl9BTUFMR0FURURfSF9J
TkNMVURFRCcgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJyMgZGVmaW5lIEpTT05fQU1BTEdBVEVE
X0hfSU5DTFVERUQnICkKLSAgICBoZWFkZXIuYWRkX3RleHQoICcvLy8gSWYgZGVmaW5lZCwgaW5k
aWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRlZCcgKQotICAgIGhlYWRlci5h
ZGRfdGV4dCggJy8vLyB0byBwcmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4nICkKLSAg
ICBoZWFkZXIuYWRkX3RleHQoICcjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OJyApCi0gICAg
aGVhZGVyLmFkZF9maWxlKCAnaW5jbHVkZS9qc29uL2NvbmZpZy5oJyApCi0gICAgaGVhZGVyLmFk
ZF9maWxlKCAnaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgnICkKLSAgICBoZWFkZXIuYWRkX2ZpbGUo
ICdpbmNsdWRlL2pzb24vZmVhdHVyZXMuaCcgKQotICAgIGhlYWRlci5hZGRfZmlsZSggJ2luY2x1
ZGUvanNvbi92YWx1ZS5oJyApCi0gICAgaGVhZGVyLmFkZF9maWxlKCAnaW5jbHVkZS9qc29uL3Jl
YWRlci5oJyApCi0gICAgaGVhZGVyLmFkZF9maWxlKCAnaW5jbHVkZS9qc29uL3dyaXRlci5oJyAp
Ci0gICAgaGVhZGVyLmFkZF90ZXh0KCAnI2VuZGlmIC8vaWZuZGVmIEpTT05fQU1BTEdBVEVEX0hf
SU5DTFVERUQnICkKLQotICAgIHRhcmdldF9oZWFkZXJfcGF0aCA9IG9zLnBhdGguam9pbiggb3Mu
cGF0aC5kaXJuYW1lKHRhcmdldF9zb3VyY2VfcGF0aCksIGhlYWRlcl9pbmNsdWRlX3BhdGggKQot
ICAgIHByaW50ICdXcml0aW5nIGFtYWxnYXRlZCBoZWFkZXIgdG8gJXInICUgdGFyZ2V0X2hlYWRl
cl9wYXRoCi0gICAgaGVhZGVyLndyaXRlX3RvKCB0YXJnZXRfaGVhZGVyX3BhdGggKQotCi0gICAg
YmFzZSwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dCggaGVhZGVyX2luY2x1ZGVfcGF0aCApCi0gICAg
Zm9yd2FyZF9oZWFkZXJfaW5jbHVkZV9wYXRoID0gYmFzZSArICctZm9yd2FyZHMnICsgZXh0Ci0g
ICAgcHJpbnQgJ0FtYWxnYXRpbmcgZm9yd2FyZCBoZWFkZXIuLi4nCi0gICAgaGVhZGVyID0gQW1h
bGdhbWF0aW9uRmlsZSggc291cmNlX3RvcF9kaXIgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8v
LyBKc29uLWNwcCBhbWFsZ2F0ZWQgZm9yd2FyZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC8pLicgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyBJdCBpcyBpbnRlbnRl
ZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgPCVzPicgJSBmb3J3YXJkX2hlYWRlcl9pbmNsdWRl
X3BhdGggKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyBUaGlzIGhlYWRlciBwcm92aWRlcyBm
b3J3YXJkIGRlY2xhcmF0aW9uIGZvciBhbGwgSnNvbkNwcCB0eXBlcy4nICkKLSAgICBoZWFkZXIu
YWRkX2ZpbGUoICdMSUNFTlNFJywgd3JhcF9pbl9jb21tZW50PVRydWUgKQotICAgIGhlYWRlci5h
ZGRfdGV4dCggJyNpZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVEJyApCi0g
ICAgaGVhZGVyLmFkZF90ZXh0KCAnIyBkZWZpbmUgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lO
Q0xVREVEJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnLy8vIElmIGRlZmluZWQsIGluZGljYXRl
cyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQnICkKLSAgICBoZWFkZXIuYWRkX3Rl
eHQoICcvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uJyApCi0gICAgaGVh
ZGVyLmFkZF90ZXh0KCAnI2RlZmluZSBKU09OX0lTX0FNQUxHQU1BVElPTicgKQotICAgIGhlYWRl
ci5hZGRfZmlsZSggJ2luY2x1ZGUvanNvbi9jb25maWcuaCcgKQotICAgIGhlYWRlci5hZGRfZmls
ZSggJ2luY2x1ZGUvanNvbi9mb3J3YXJkcy5oJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnI2Vu
ZGlmIC8vaWZuZGVmIEpTT05fRk9SV0FSRF9BTUFMR0FURURfSF9JTkNMVURFRCcgKQotCi0gICAg
dGFyZ2V0X2ZvcndhcmRfaGVhZGVyX3BhdGggPSBvcy5wYXRoLmpvaW4oIG9zLnBhdGguZGlybmFt
ZSh0YXJnZXRfc291cmNlX3BhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb3J3YXJkX2hlYWRlcl9pbmNsdWRlX3BhdGggKQotICAgIHByaW50ICdX
cml0aW5nIGFtYWxnYXRlZCBmb3J3YXJkIGhlYWRlciB0byAlcicgJSB0YXJnZXRfZm9yd2FyZF9o
ZWFkZXJfcGF0aAotICAgIGhlYWRlci53cml0ZV90byggdGFyZ2V0X2ZvcndhcmRfaGVhZGVyX3Bh
dGggKQotCi0gICAgcHJpbnQgJ0FtYWxnYXRpbmcgc291cmNlLi4uJwotICAgIHNvdXJjZSA9IEFt
YWxnYW1hdGlvbkZpbGUoIHNvdXJjZV90b3BfZGlyICkKLSAgICBzb3VyY2UuYWRkX3RleHQoICcv
Ly8gSnNvbi1jcHAgYW1hbGdhdGVkIHNvdXJjZSAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0LykuJyApCi0gICAgc291cmNlLmFkZF90ZXh0KCAnLy8vIEl0IGlzIGludGVudGVkIHRvIGJl
IHVzZWQgd2l0aCAjaW5jbHVkZSA8JXM+JyAlIGhlYWRlcl9pbmNsdWRlX3BhdGggKQotICAgIHNv
dXJjZS5hZGRfZmlsZSggJ0xJQ0VOU0UnLCB3cmFwX2luX2NvbW1lbnQ9VHJ1ZSApCi0gICAgc291
cmNlLmFkZF90ZXh0KCAnJyApCi0gICAgc291cmNlLmFkZF90ZXh0KCAnI2luY2x1ZGUgPCVzPicg
JSBoZWFkZXJfaW5jbHVkZV9wYXRoICkKLSAgICBzb3VyY2UuYWRkX3RleHQoICcnICkKLSAgICBs
aWJfanNvbiA9ICdzcmMvbGliX2pzb24nCi0gICAgc291cmNlLmFkZF9maWxlKCBvcy5wYXRoLmpv
aW4obGliX2pzb24sICdqc29uX3Rvb2wuaCcpICkKLSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBh
dGguam9pbihsaWJfanNvbiwgJ2pzb25fcmVhZGVyLmNwcCcpICkKLSAgICBzb3VyY2UuYWRkX2Zp
bGUoIG9zLnBhdGguam9pbihsaWJfanNvbiwgJ2pzb25fYmF0Y2hhbGxvY2F0b3IuaCcpICkKLSAg
ICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBhdGguam9pbihsaWJfanNvbiwgJ2pzb25fdmFsdWVpdGVy
YXRvci5pbmwnKSApCi0gICAgc291cmNlLmFkZF9maWxlKCBvcy5wYXRoLmpvaW4obGliX2pzb24s
ICdqc29uX3ZhbHVlLmNwcCcpICkKLSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBhdGguam9pbihs
aWJfanNvbiwgJ2pzb25fd3JpdGVyLmNwcCcpICkKLQotICAgIHByaW50ICdXcml0aW5nIGFtYWxn
YXRlZCBzb3VyY2UgdG8gJXInICUgdGFyZ2V0X3NvdXJjZV9wYXRoCi0gICAgc291cmNlLndyaXRl
X3RvKCB0YXJnZXRfc291cmNlX3BhdGggKQorICAgIHByaW50KCJBbWFsZ2FtYXRpbmcgaGVhZGVy
Li4uIikKKyAgICBoZWFkZXIgPSBBbWFsZ2FtYXRpb25GaWxlKHNvdXJjZV90b3BfZGlyKQorICAg
IGhlYWRlci5hZGRfdGV4dCgiLy8vIEpzb24tY3BwIGFtYWxnYW1hdGVkIGhlYWRlciAoaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuIikKKyAgICBoZWFkZXIuYWRkX3RleHQoJy8vLyBJ
dCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgIiVzIicgJSBoZWFkZXJfaW5j
bHVkZV9wYXRoKQorICAgIGhlYWRlci5hZGRfZmlsZSgiTElDRU5TRSIsIHdyYXBfaW5fY29tbWVu
dD1UcnVlKQorICAgIGhlYWRlci5hZGRfdGV4dCgiI2lmbmRlZiBKU09OX0FNQUxHQU1BVEVEX0hf
SU5DTFVERUQiKQorICAgIGhlYWRlci5hZGRfdGV4dCgiIyBkZWZpbmUgSlNPTl9BTUFMR0FNQVRF
RF9IX0lOQ0xVREVEIikKKyAgICBoZWFkZXIuYWRkX3RleHQoIi8vLyBJZiBkZWZpbmVkLCBpbmRp
Y2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhbWF0ZWQiKQorICAgIGhlYWRlci5h
ZGRfdGV4dCgiLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLiIpCisgICAg
aGVhZGVyLmFkZF90ZXh0KCIjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OIikKKyAgICBoZWFk
ZXIuYWRkX2ZpbGUoImluY2x1ZGUvanNvbi92ZXJzaW9uLmgiKQorICAgIGhlYWRlci5hZGRfZmls
ZSgiaW5jbHVkZS9qc29uL2FsbG9jYXRvci5oIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1
ZGUvanNvbi9jb25maWcuaCIpCisgICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pzb24vZm9y
d2FyZHMuaCIpCisgICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pzb24vZmVhdHVyZXMuaCIp
CisgICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pzb24vdmFsdWUuaCIpCisgICAgaGVhZGVy
LmFkZF9maWxlKCJpbmNsdWRlL2pzb24vcmVhZGVyLmgiKQorICAgIGhlYWRlci5hZGRfZmlsZSgi
aW5jbHVkZS9qc29uL3dyaXRlci5oIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUvanNv
bi9hc3NlcnRpb25zLmgiKQorICAgIGhlYWRlci5hZGRfdGV4dCgiI2VuZGlmIC8vaWZuZGVmIEpT
T05fQU1BTEdBTUFURURfSF9JTkNMVURFRCIpCisKKyAgICB0YXJnZXRfaGVhZGVyX3BhdGggPSBv
cy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHRhcmdldF9zb3VyY2VfcGF0aCksIGhlYWRlcl9p
bmNsdWRlX3BhdGgpCisgICAgcHJpbnQoIldyaXRpbmcgYW1hbGdhbWF0ZWQgaGVhZGVyIHRvICVy
IiAlIHRhcmdldF9oZWFkZXJfcGF0aCkKKyAgICBoZWFkZXIud3JpdGVfdG8odGFyZ2V0X2hlYWRl
cl9wYXRoKQorCisgICAgYmFzZSwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChoZWFkZXJfaW5jbHVk
ZV9wYXRoKQorICAgIGZvcndhcmRfaGVhZGVyX2luY2x1ZGVfcGF0aCA9IGJhc2UgKyAiLWZvcndh
cmRzIiArIGV4dAorICAgIHByaW50KCJBbWFsZ2FtYXRpbmcgZm9yd2FyZCBoZWFkZXIuLi4iKQor
ICAgIGhlYWRlciA9IEFtYWxnYW1hdGlvbkZpbGUoc291cmNlX3RvcF9kaXIpCisgICAgaGVhZGVy
LmFkZF90ZXh0KCIvLy8gSnNvbi1jcHAgYW1hbGdhbWF0ZWQgZm9yd2FyZCBoZWFkZXIgKGh0dHA6
Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLiIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCcvLy8g
SXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICIlcyInICUgZm9yd2FyZF9o
ZWFkZXJfaW5jbHVkZV9wYXRoKQorICAgIGhlYWRlci5hZGRfdGV4dCgiLy8vIFRoaXMgaGVhZGVy
IHByb3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRpb24gZm9yIGFsbCBKc29uQ3BwIHR5cGVzLiIpCisg
ICAgaGVhZGVyLmFkZF9maWxlKCJMSUNFTlNFIiwgd3JhcF9pbl9jb21tZW50PVRydWUpCisgICAg
aGVhZGVyLmFkZF90ZXh0KCIjaWZuZGVmIEpTT05fRk9SV0FSRF9BTUFMR0FNQVRFRF9IX0lOQ0xV
REVEIikKKyAgICBoZWFkZXIuYWRkX3RleHQoIiMgZGVmaW5lIEpTT05fRk9SV0FSRF9BTUFMR0FN
QVRFRF9IX0lOQ0xVREVEIikKKyAgICBoZWFkZXIuYWRkX3RleHQoIi8vLyBJZiBkZWZpbmVkLCBp
bmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhbWF0ZWQiKQorICAgIGhlYWRl
ci5hZGRfdGV4dCgiLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLiIpCisg
ICAgaGVhZGVyLmFkZF90ZXh0KCIjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OIikKKyAgICBo
ZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUvanNvbi9jb25maWcuaCIpCisgICAgaGVhZGVyLmFkZF9m
aWxlKCJpbmNsdWRlL2pzb24vZm9yd2FyZHMuaCIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIjZW5k
aWYgLy9pZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQU1BVEVEX0hfSU5DTFVERUQiKQorCisgICAg
dGFyZ2V0X2ZvcndhcmRfaGVhZGVyX3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1l
KHRhcmdldF9zb3VyY2VfcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvcndhcmRfaGVhZGVyX2luY2x1ZGVfcGF0aCkKKyAgICBwcmludCgiV3Jp
dGluZyBhbWFsZ2FtYXRlZCBmb3J3YXJkIGhlYWRlciB0byAlciIgJSB0YXJnZXRfZm9yd2FyZF9o
ZWFkZXJfcGF0aCkKKyAgICBoZWFkZXIud3JpdGVfdG8odGFyZ2V0X2ZvcndhcmRfaGVhZGVyX3Bh
dGgpCisKKyAgICBwcmludCgiQW1hbGdhbWF0aW5nIHNvdXJjZS4uLiIpCisgICAgc291cmNlID0g
QW1hbGdhbWF0aW9uRmlsZShzb3VyY2VfdG9wX2RpcikKKyAgICBzb3VyY2UuYWRkX3RleHQoIi8v
LyBKc29uLWNwcCBhbWFsZ2FtYXRlZCBzb3VyY2UgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC8pLiIpCisgICAgc291cmNlLmFkZF90ZXh0KCcvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUg
dXNlZCB3aXRoICNpbmNsdWRlICIlcyInICUgaGVhZGVyX2luY2x1ZGVfcGF0aCkKKyAgICBzb3Vy
Y2UuYWRkX2ZpbGUoIkxJQ0VOU0UiLCB3cmFwX2luX2NvbW1lbnQ9VHJ1ZSkKKyAgICBzb3VyY2Uu
YWRkX3RleHQoIiIpCisgICAgc291cmNlLmFkZF90ZXh0KCcjaW5jbHVkZSAiJXMiJyAlIGhlYWRl
cl9pbmNsdWRlX3BhdGgpCisgICAgc291cmNlLmFkZF90ZXh0KCIiIgorI2lmbmRlZiBKU09OX0lT
X0FNQUxHQU1BVElPTgorI2Vycm9yICJDb21waWxlIHdpdGggLUkgUEFUSF9UT19KU09OX0RJUkVD
VE9SWSIKKyNlbmRpZgorIiIiKQorICAgIHNvdXJjZS5hZGRfdGV4dCgiIikKKyAgICBsaWJfanNv
biA9ICJzcmMvbGliX2pzb24iCisgICAgc291cmNlLmFkZF9maWxlKG9zLnBhdGguam9pbihsaWJf
anNvbiwgImpzb25fdG9vbC5oIikpCisgICAgc291cmNlLmFkZF9maWxlKG9zLnBhdGguam9pbihs
aWJfanNvbiwgImpzb25fcmVhZGVyLmNwcCIpKQorICAgIHNvdXJjZS5hZGRfZmlsZShvcy5wYXRo
LmpvaW4obGliX2pzb24sICJqc29uX3ZhbHVlaXRlcmF0b3IuaW5sIikpCisgICAgc291cmNlLmFk
ZF9maWxlKG9zLnBhdGguam9pbihsaWJfanNvbiwgImpzb25fdmFsdWUuY3BwIikpCisgICAgc291
cmNlLmFkZF9maWxlKG9zLnBhdGguam9pbihsaWJfanNvbiwgImpzb25fd3JpdGVyLmNwcCIpKQor
CisgICAgcHJpbnQoIldyaXRpbmcgYW1hbGdhbWF0ZWQgc291cmNlIHRvICVyIiAlIHRhcmdldF9z
b3VyY2VfcGF0aCkKKyAgICBzb3VyY2Uud3JpdGVfdG8odGFyZ2V0X3NvdXJjZV9wYXRoKQogCiBk
ZWYgbWFpbigpOgogICAgIHVzYWdlID0gIiIiJXByb2cgW29wdGlvbnNdCi1HZW5lcmF0ZSBhIHNp
bmdsZSBhbWFsZ2F0ZWQgc291cmNlIGFuZCBoZWFkZXIgZmlsZSBmcm9tIHRoZSBzb3VyY2VzLgor
R2VuZXJhdGUgYSBzaW5nbGUgYW1hbGdhbWF0ZWQgc291cmNlIGFuZCBoZWFkZXIgZmlsZSBmcm9t
IHRoZSBzb3VyY2VzLgogIiIiCiAgICAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2Vy
CiAgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKHVzYWdlPXVzYWdlKQogICAgIHBhcnNlci5hbGxv
d19pbnRlcnNwZXJzZWRfYXJncyA9IEZhbHNlCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywg
Jy0tc291cmNlJywgZGVzdD0idGFyZ2V0X3NvdXJjZV9wYXRoIiwgYWN0aW9uPSdzdG9yZScsIGRl
ZmF1bHQ9J2Rpc3QvanNvbmNwcC5jcHAnLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCItcyIsICIt
LXNvdXJjZSIsIGRlc3Q9InRhcmdldF9zb3VyY2VfcGF0aCIsIGFjdGlvbj0ic3RvcmUiLCBkZWZh
dWx0PSJkaXN0L2pzb25jcHAuY3BwIiwKICAgICAgICAgaGVscD0iIiJPdXRwdXQgLmNwcCBzb3Vy
Y2UgcGF0aC4gW0RlZmF1bHQ6ICVkZWZhdWx0XSIiIikKLSAgICBwYXJzZXIuYWRkX29wdGlvbign
LWknLCAnLS1pbmNsdWRlJywgZGVzdD0iaGVhZGVyX2luY2x1ZGVfcGF0aCIsIGFjdGlvbj0nc3Rv
cmUnLCBkZWZhdWx0PSdqc29uL2pzb24uaCcsCi0gICAgICAgIGhlbHA9IiIiSGVhZGVyIGluY2x1
ZGUgcGF0aC4gVXNlZCB0byBpbmNsdWRlIHRoZSBoZWFkZXIgZnJvbSB0aGUgYW1hbGdhdGVkIHNv
dXJjZSBmaWxlLiBbRGVmYXVsdDogJWRlZmF1bHRdIiIiKQotICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctdCcsICctLXRvcC1kaXInLCBkZXN0PSJ0b3BfZGlyIiwgYWN0aW9uPSdzdG9yZScsIGRlZmF1
bHQ9b3MuZ2V0Y3dkKCksCisgICAgcGFyc2VyLmFkZF9vcHRpb24oIi1pIiwgIi0taW5jbHVkZSIs
IGRlc3Q9ImhlYWRlcl9pbmNsdWRlX3BhdGgiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0ianNv
bi9qc29uLmgiLAorICAgICAgICBoZWxwPSIiIkhlYWRlciBpbmNsdWRlIHBhdGguIFVzZWQgdG8g
aW5jbHVkZSB0aGUgaGVhZGVyIGZyb20gdGhlIGFtYWxnYW1hdGVkIHNvdXJjZSBmaWxlLiBbRGVm
YXVsdDogJWRlZmF1bHRdIiIiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCItdCIsICItLXRvcC1k
aXIiLCBkZXN0PSJ0b3BfZGlyIiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9b3MuZ2V0Y3dkKCks
CiAgICAgICAgIGhlbHA9IiIiU291cmNlIHRvcC1kaXJlY3RvcnkuIFtEZWZhdWx0OiAlZGVmYXVs
dF0iIiIpCiAgICAgcGFyc2VyLmVuYWJsZV9pbnRlcnNwZXJzZWRfYXJncygpCiAgICAgb3B0aW9u
cywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKIAotICAgIG1zZyA9IGFtYWxnYW1hdGVfc291
cmNlKCBzb3VyY2VfdG9wX2Rpcj1vcHRpb25zLnRvcF9kaXIsCisgICAgbXNnID0gYW1hbGdhbWF0
ZV9zb3VyY2Uoc291cmNlX3RvcF9kaXI9b3B0aW9ucy50b3BfZGlyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0YXJnZXRfc291cmNlX3BhdGg9b3B0aW9ucy50YXJnZXRfc291cmNlX3Bh
dGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlX3BhdGg9b3B0
aW9ucy5oZWFkZXJfaW5jbHVkZV9wYXRoICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVhZGVyX2luY2x1ZGVfcGF0aD1vcHRpb25zLmhlYWRlcl9pbmNsdWRlX3BhdGgpCiAgICAgaWYg
bXNnOgotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCBtc2cgKyAnXG4nICkKLSAgICAgICAgc3lz
LmV4aXQoIDEgKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKG1zZyArICJcbiIpCisgICAgICAg
IHN5cy5leGl0KDEpCiAgICAgZWxzZToKLSAgICAgICAgcHJpbnQgJ1NvdXJjZSBzdWNjZXNmdWxs
eSBhbWFsYWdhdGVkJwotIAotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgcHJp
bnQoIlNvdXJjZSBzdWNjZXNzZnVsbHkgYW1hbGdhbWF0ZWQiKQorCitpZiBfX25hbWVfXyA9PSAi
X19tYWluX18iOgogICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9hcHB2ZXlvci55bWwgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2FwcHZleW9yLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjljOGZlM2ZlYTBlOTAxOWRkMGUyNDI3MThm
ODlkNjBkYjVlMWMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9hcHB2ZXlvci55bWwKQEAgLTAs
MCArMSwzMiBAQAorY2xvbmVfZm9sZGVyOiBjOlxwcm9qZWN0c1xqc29uY3BwCisKK2Vudmlyb25t
ZW50OgorICBtYXRyaXg6CisgICAgLSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3Vh
bCBTdHVkaW8gMjAxNQorICAgICAgQ01BS0VfR0VORVJBVE9SOiBWaXN1YWwgU3R1ZGlvIDE0IDIw
MTUKKyAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE1
CisgICAgICBDTUFLRV9HRU5FUkFUT1I6IFZpc3VhbCBTdHVkaW8gMTQgMjAxNSBXaW42NAorICAg
IC0gQVBQVkVZT1JfQlVJTERfV09SS0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTcKKyAgICAg
IENNQUtFX0dFTkVSQVRPUjogVmlzdWFsIFN0dWRpbyAxNSAyMDE3CisgICAgLSBBUFBWRVlPUl9C
VUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxNworICAgICAgQ01BS0VfR0VORVJB
VE9SOiBWaXN1YWwgU3R1ZGlvIDE1IDIwMTcgV2luNjQKKworYnVpbGRfc2NyaXB0OgorICAtIGNt
YWtlIC0tdmVyc2lvbgorICAtIGNkIGM6XHByb2plY3RzXGpzb25jcHAKKyAgLSBjbWFrZSAtRyAi
JUNNQUtFX0dFTkVSQVRPUiUiIC1EQ01BS0VfSU5TVEFMTF9QUkVGSVg6UEFUSD0lQ0Q6XD0vJS9p
bnN0YWxsIC1EQlVJTERfU0hBUkVEX0xJQlM6Qk9PTD1PTiAuCisgICMgVXNlIGN0ZXN0IHRvIG1h
a2UgYSBkYXNoYm9hcmQgYnVpbGQ6CisgICMgLSBjdGVzdCAtRCBFeHBlcmltZW50YWwoU3RhcnR8
VXBkYXRlfENvbmZpZ3VyZXxCdWlsZHxUZXN0fENvdmVyYWdlfE1lbUNoZWNrfFN1Ym1pdCkKKyAg
IyBOT1RFOiBUZXN0aW5nIG9uIHdpbmRvdyBpcyBub3QgeWV0IGZpbmlzaGVkOgorICAjIC0gY3Rl
c3QgLUMgUmVsZWFzZSAtRCBFeHBlcmltZW50YWxTdGFydCAtRCBFeHBlcmltZW50YWxDb25maWd1
cmUgLUQgRXhwZXJpbWVudGFsQnVpbGQgLUQgRXhwZXJpbWVudGFsVGVzdCAtRCBFeHBlcmltZW50
YWxTdWJtaXQKKyAgLSBjdGVzdCAtQyBSZWxlYXNlIC1EIEV4cGVyaW1lbnRhbFN0YXJ0IC1EIEV4
cGVyaW1lbnRhbENvbmZpZ3VyZSAtRCBFeHBlcmltZW50YWxCdWlsZCAtRCBFeHBlcmltZW50YWxT
dWJtaXQKKyAgIyBGaW5hbCBzdGVwIGlzIHRvIHZlcmlmeSB0aGF0IGluc3RhbGxhdGlvbiBzdWNj
ZWVkcworICAtIGNtYWtlIC0tYnVpbGQgLiAtLWNvbmZpZyBSZWxlYXNlIC0tdGFyZ2V0IGluc3Rh
bGwKKworZGVwbG95OgorICAgIHByb3ZpZGVyOiBHaXRIdWIKKyAgICBhdXRoX3Rva2VuOgorICAg
ICAgICBzZWN1cmU6IEsyVHAxcThwSVo3cnMwT3QyNFpNV3V3cjEyRXY2VGM2UWtoTWpHUXhvUUcz
bmcxcFh0Z1Bhc2lKNDVJRFhHZGcKKyAgICBvbjoKKyAgICAgICAgYnJhbmNoOiBtYXN0ZXIKKyAg
ICAgICAgYXBwdmV5b3JfcmVwb190YWc6IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2Lm1ha2Vm
aWxlIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9kZXYubWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE0YmU2YTkxMzQ2ODE4Y2QwZTBh
MDMzMGUxZThmYmYxZmJhOTVjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2Lm1ha2VmaWxl
CkBAIC0wLDAgKzEsMzUgQEAKKyMgVGhpcyBpcyBvbmx5IGZvciBqc29uY3BwIGRldmVsb3BlcnMv
Y29udHJpYnV0b3JzLgorIyBXZSB1c2UgdGhpcyB0byBzaWduIHJlbGVhc2VzLCBnZW5lcmF0ZSBk
b2N1bWVudGF0aW9uLCBldGMuCitWRVI/PSQoc2hlbGwgY2F0IHZlcnNpb24udHh0KQorCitkZWZh
dWx0OgorCUBlY2hvICJWRVI9JHtWRVJ9Igorc2lnbjoganNvbmNwcC0ke1ZFUn0udGFyLmd6CisJ
Z3BnIC0tYXJtb3IgLS1kZXRhY2gtc2lnbiAkPAorCWdwZyAtLXZlcmlmeSAkPC5hc2MKKwkjIFRo
ZW4gdXBsb2FkIC5hc2MgdG8gdGhlIHJlbGVhc2UuCitqc29uY3BwLSUudGFyLmd6OgorCWN1cmwg
aHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcC9hcmNoaXZlLyQq
LnRhci5neiAtbyAkQAorZG94OgorCXB5dGhvbiBkb3h5YnVpbGQucHkgLS1kb3h5Z2VuPSQkKHdo
aWNoIGRveHlnZW4pIC0taW4gZG9jL3dlYl9kb3h5ZmlsZS5pbgorCXJzeW5jIC12YSAtYyAtLWRl
bGV0ZSBkaXN0L2RveHlnZW4vanNvbmNwcC1hcGktaHRtbC0ke1ZFUn0vIC4uL2pzb25jcHAtZG9j
cy9kb3h5Z2VuLworCSMgVGhlbiAnZ2l0IGFkZCAtQScgYW5kICdnaXQgcHVzaCcgaW4ganNvbmNw
cC1kb2NzLgorYnVpbGQ6CisJbWtkaXIgLXAgYnVpbGQvZGVidWcKKwljZCBidWlsZC9kZWJ1Zzsg
Y21ha2UgLURDTUFLRV9CVUlMRF9UWVBFPWRlYnVnIC1EQlVJTERfU0hBUkVEX0xJQlM9T04gLUcg
IlVuaXggTWFrZWZpbGVzIiAuLi8uLgorCW1ha2UgLUMgYnVpbGQvZGVidWcKKworIyBDdXJyZW50
bHksIHRoaXMgZGVwZW5kcyBvbiBpbmNsdWRlL2pzb24vdmVyc2lvbi5oIGdlbmVyYXRlZAorIyBi
eSBjbWFrZS4KK3Rlc3QtYW1hbGdhbWF0ZToKKwlweXRob24yLjcgYW1hbGdhbWF0ZS5weQorCXB5
dGhvbjMuNCBhbWFsZ2FtYXRlLnB5CisJY2QgZGlzdDsgZ2NjIC1JLiAtYyBqc29uY3BwLmNwcAor
Cit2YWxncmluZDoKKwl2YWxncmluZCAtLWVycm9yLWV4aXRjb2RlPTQyIC0tbGVhay1jaGVjaz1m
dWxsIC4vYnVpbGQvZGVidWcvc3JjL3Rlc3RfbGliX2pzb24vanNvbmNwcF90ZXN0CisKK2NsZWFu
OgorCVxybSAtcmYgKi5neiAqLmFzYyBkaXN0LworCisuUEhPTlk6IGJ1aWxkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL2RldnRvb2xzL19faW5pdF9fLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9fX2luaXRfXy5weQpp
bmRleCBjOTQ0ZTdjYjBjMDhlM2RkMDQyYzFlM2NlMDRmODIwYzAxZDM2NmQ1Li40YTUxZTY1MTQy
NWFhN2YzYzljYmJiMjg1ZTkwYzM1NzljMWY3NzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xz
L19faW5pdF9fLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvX19pbml0X18ucHkKQEAgLTEgKzEsNiBA
QAotIyBtb2R1bGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisjIENvcHlyaWdodCAyMDEw
IEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRl
ZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyBy
ZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBk
ZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQor
CisjIG1vZHVsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9hZ2VudF92bXc3Lmpzb24gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2RldnRvb2xzL2FnZW50X3ZtdzcuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDdiNzc3ZmU1ZDQ2MTA4
ODZmM2ZkNTdjNjk0OGFiNzliOWU4MzZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29s
cy9hZ2VudF92bXc3Lmpzb24KQEAgLTAsMCArMSwzMyBAQAoreworICAgICJjbWFrZV92YXJpYW50
cyIgOiBbCisgICAgICAgIHsibmFtZSI6ICJnZW5lcmF0b3IiLAorICAgICAgICAgImdlbmVyYXRv
cnMiOiBbCisgICAgICAgICAgICB7ImdlbmVyYXRvciI6IFsKKyAgICAgICAgICAgICAgICAiVmlz
dWFsIFN0dWRpbyA3IC5ORVQgMjAwMyIsCisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8g
OSAyMDA4IiwKKyAgICAgICAgICAgICAgICAiVmlzdWFsIFN0dWRpbyA5IDIwMDggV2luNjQiLAor
ICAgICAgICAgICAgICAgICJWaXN1YWwgU3R1ZGlvIDEwIiwKKyAgICAgICAgICAgICAgICAiVmlz
dWFsIFN0dWRpbyAxMCBXaW42NCIsCisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8gMTEi
LAorICAgICAgICAgICAgICAgICJWaXN1YWwgU3R1ZGlvIDExIFdpbjY0IgorICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ImdlbmVyYXRvciI6IFsiTWluR1cg
TWFrZWZpbGVzIl0sCisgICAgICAgICAgICAgImVudl9wcmVwZW5kIjogW3sicGF0aCI6ICJjOi93
dXQvcHJnL01pbkdXL2JpbiJ9XQorICAgICAgICAgICAgfQorICAgICAgICAgXQorICAgICAgICB9
LAorICAgICAgICB7Im5hbWUiOiAic2hhcmVkX2RsbCIsCisgICAgICAgICAidmFyaWFibGVzIjog
WworICAgICAgICAgICAgWyJCVUlMRF9TSEFSRURfTElCUz10cnVlIl0sCisgICAgICAgICAgICBb
IkJVSUxEX1NIQVJFRF9MSUJTPWZhbHNlIl0KKyAgICAgICAgICBdCisgICAgICAgIH0sCisgICAg
ICAgIHsibmFtZSI6ICJidWlsZF90eXBlIiwKKyAgICAgICAgICJidWlsZF90eXBlcyI6IFsKKyAg
ICAgICAgICAgICJkZWJ1ZyIsCisgICAgICAgICAgICAicmVsZWFzZSIKKyAgICAgICAgICAgIF0K
KyAgICAgICAgfQorICAgIF0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYWdlbnRfdm14
cC5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9kZXZ0b29scy9hZ2VudF92bXhwLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgyYTA3
NzNhMmYxZjU1NDVmOTRhMzE1Yjk1MGVmYzcxM2ViZWUzNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvZGV2dG9vbHMvYWdlbnRfdm14cC5qc29uCkBAIC0wLDAgKzEsMjYgQEAKK3sKKyAgICAiY21h
a2VfdmFyaWFudHMiIDogWworICAgICAgICB7Im5hbWUiOiAiZ2VuZXJhdG9yIiwKKyAgICAgICAg
ICJnZW5lcmF0b3JzIjogWworICAgICAgICAgICAgeyJnZW5lcmF0b3IiOiBbCisgICAgICAgICAg
ICAgICAgIlZpc3VhbCBTdHVkaW8gNiIsCisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8g
NyIsCisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8gOCAyMDA1IgorICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeyJu
YW1lIjogInNoYXJlZF9kbGwiLAorICAgICAgICAgInZhcmlhYmxlcyI6IFsKKyAgICAgICAgICAg
IFsiQlVJTERfU0hBUkVEX0xJQlM9dHJ1ZSJdLAorICAgICAgICAgICAgWyJCVUlMRF9TSEFSRURf
TElCUz1mYWxzZSJdCisgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Im5hbWUiOiAi
YnVpbGRfdHlwZSIsCisgICAgICAgICAiYnVpbGRfdHlwZXMiOiBbCisgICAgICAgICAgICAiZGVi
dWciLAorICAgICAgICAgICAgInJlbGVhc2UiCisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAg
ICBdCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2FudGdsb2IucHkgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRv
b2xzL2FudGdsb2IucHkKaW5kZXggMzA4MzdiNTc2Y2RlZjNhOWMxZmE2NDFmNDM0NGM5MGY0N2Yw
MDRlMC4uOTg0Mzc2NThjZTBiN2I5NjYxMzJiZWFiNDUzNWNiZmU1YzM4NWY5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9kZXZ0b29scy9hbnRnbG9iLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYW50Z2xvYi5w
eQpAQCAtMSw3ICsxLDExIEBACiAjIS91c3IvYmluL2VudiBweXRob24KICMgZW5jb2Rpbmc6IHV0
Zi04Ci0jIEJhcHRpc3RlIExlcGlsbGV1ciwgMjAwOQorIyBDb3B5cmlnaHQgMjAwOSBCYXB0aXN0
ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQgdW5kZXIg
TUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVjb2duaXpl
ZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogZnJvbSBkaXJjYWNoZSBpbXBvcnQgbGlz
dGRpcgogaW1wb3J0IHJlCiBpbXBvcnQgZm5tYXRjaApAQCAtNTMsOSArNTcsOSBAQCBMSU5LUyA9
IERJUl9MSU5LIHwgRklMRV9MSU5LCiBBTExfTk9fTElOSyA9IERJUiB8IEZJTEUKIEFMTCA9IERJ
UiB8IEZJTEUgfCBMSU5LUwogCi1fQU5UX1JFID0gcmUuY29tcGlsZSggcicoL1wqXCovKXwoXCpc
Ki8pfCgvXCpcKil8KFwqKXwoLyl8KFteXCovXSopJyApCitfQU5UX1JFID0gcmUuY29tcGlsZShy
JygvXCpcKi8pfChcKlwqLyl8KC9cKlwqKXwoXCopfCgvKXwoW15cKi9dKiknKQogCi1kZWYgYW50
X3BhdHRlcm5fdG9fcmUoIGFudF9wYXR0ZXJuICk6CitkZWYgYW50X3BhdHRlcm5fdG9fcmUoYW50
X3BhdHRlcm4pOgogICAgICIiIkdlbmVyYXRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBmcm9tIHRo
ZSBhbnQgcGF0dGVybi4KICAgICBNYXRjaGluZyBjb252ZW50aW9uOgogICAgICoqL2E6IG1hdGNo
ICdhJywgJ2Rpci9hJywgJ2RpcjEvZGlyMi9hJwpAQCAtNjQsMzAgKzY4LDMwIEBAIGRlZiBhbnRf
cGF0dGVybl90b19yZSggYW50X3BhdHRlcm4gKToKICAgICAiIiIKICAgICByZXggPSBbJ14nXQog
ICAgIG5leHRfcG9zID0gMAotICAgIHNlcF9yZXggPSByJyg/Oi98JXMpJyAlIHJlLmVzY2FwZSgg
b3MucGF0aC5zZXAgKQorICAgIHNlcF9yZXggPSByJyg/Oi98JXMpJyAlIHJlLmVzY2FwZShvcy5w
YXRoLnNlcCkKICMjICAgIHByaW50ICdDb252ZXJ0aW5nJywgYW50X3BhdHRlcm4KLSAgICBmb3Ig
bWF0Y2ggaW4gX0FOVF9SRS5maW5kaXRlciggYW50X3BhdHRlcm4gKToKKyAgICBmb3IgbWF0Y2gg
aW4gX0FOVF9SRS5maW5kaXRlcihhbnRfcGF0dGVybik6CiAjIyAgICAgICAgcHJpbnQgJ01hdGNo
ZWQnLCBtYXRjaC5ncm91cCgpCiAjIyAgICAgICAgcHJpbnQgbWF0Y2guc3RhcnQoMCksIG5leHRf
cG9zCiAgICAgICAgIGlmIG1hdGNoLnN0YXJ0KDApICE9IG5leHRfcG9zOgotICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvciggIkludmFsaWQgYW50IHBhdHRlcm4iICkKKyAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoIkludmFsaWQgYW50IHBhdHRlcm4iKQogICAgICAgICBpZiBtYXRjaC5n
cm91cCgxKTogIyAvKiovCi0gICAgICAgICAgICByZXguYXBwZW5kKCBzZXBfcmV4ICsgJyg/Oi4q
JXMpPycgJSBzZXBfcmV4ICkKKyAgICAgICAgICAgIHJleC5hcHBlbmQoc2VwX3JleCArICcoPzou
KiVzKT8nICUgc2VwX3JleCkKICAgICAgICAgZWxpZiBtYXRjaC5ncm91cCgyKTogIyAqKi8KLSAg
ICAgICAgICAgIHJleC5hcHBlbmQoICcoPzouKiVzKT8nICUgc2VwX3JleCApCisgICAgICAgICAg
ICByZXguYXBwZW5kKCcoPzouKiVzKT8nICUgc2VwX3JleCkKICAgICAgICAgZWxpZiBtYXRjaC5n
cm91cCgzKTogIyAvKioKLSAgICAgICAgICAgIHJleC5hcHBlbmQoIHNlcF9yZXggKyAnLionICkK
KyAgICAgICAgICAgIHJleC5hcHBlbmQoc2VwX3JleCArICcuKicpCiAgICAgICAgIGVsaWYgbWF0
Y2guZ3JvdXAoNCk6ICMgKgotICAgICAgICAgICAgcmV4LmFwcGVuZCggJ1teLyVzXSonICUgcmUu
ZXNjYXBlKG9zLnBhdGguc2VwKSApCisgICAgICAgICAgICByZXguYXBwZW5kKCdbXi8lc10qJyAl
IHJlLmVzY2FwZShvcy5wYXRoLnNlcCkpCiAgICAgICAgIGVsaWYgbWF0Y2guZ3JvdXAoNSk6ICMg
LwotICAgICAgICAgICAgcmV4LmFwcGVuZCggc2VwX3JleCApCisgICAgICAgICAgICByZXguYXBw
ZW5kKHNlcF9yZXgpCiAgICAgICAgIGVsc2U6ICMgc29tZXBhdGgKLSAgICAgICAgICAgIHJleC5h
cHBlbmQoIHJlLmVzY2FwZShtYXRjaC5ncm91cCg2KSkgKQorICAgICAgICAgICAgcmV4LmFwcGVu
ZChyZS5lc2NhcGUobWF0Y2guZ3JvdXAoNikpKQogICAgICAgICBuZXh0X3BvcyA9IG1hdGNoLmVu
ZCgpCiAgICAgcmV4LmFwcGVuZCgnJCcpCi0gICAgcmV0dXJuIHJlLmNvbXBpbGUoICcnLmpvaW4o
IHJleCApICkKKyAgICByZXR1cm4gcmUuY29tcGlsZSgnJy5qb2luKHJleCkpCiAKLWRlZiBfYXNf
bGlzdCggbCApOgorZGVmIF9hc19saXN0KGwpOgogICAgIGlmIGlzaW5zdGFuY2UobCwgYmFzZXN0
cmluZyk6CiAgICAgICAgIHJldHVybiBsLnNwbGl0KCkKICAgICByZXR1cm4gbApAQCAtMTA0LDM3
ICsxMDgsMzcgQEAgZGVmIGdsb2IoZGlyX3BhdGgsCiAgICAgZGlyX3BhdGggPSBkaXJfcGF0aC5y
ZXBsYWNlKCcvJyxvcy5wYXRoLnNlcCkKICAgICBlbnRyeV90eXBlX2ZpbHRlciA9IGVudHJ5X3R5
cGUKIAotICAgIGRlZiBpc19wcnVuZWRfZGlyKCBkaXJfbmFtZSApOgorICAgIGRlZiBpc19wcnVu
ZWRfZGlyKGRpcl9uYW1lKToKICAgICAgICAgZm9yIHBhdHRlcm4gaW4gcHJ1bmVfZGlyczoKLSAg
ICAgICAgICAgIGlmIGZubWF0Y2guZm5tYXRjaCggZGlyX25hbWUsIHBhdHRlcm4gKToKKyAgICAg
ICAgICAgIGlmIGZubWF0Y2guZm5tYXRjaChkaXJfbmFtZSwgcGF0dGVybik6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgYXBwbHlf
ZmlsdGVyKCBmdWxsX3BhdGgsIGZpbHRlcl9yZXhzICk6CisgICAgZGVmIGFwcGx5X2ZpbHRlcihm
dWxsX3BhdGgsIGZpbHRlcl9yZXhzKToKICAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgYXQgbGVh
c3Qgb25lIG9mIHRoZSBmaWx0ZXIgcmVndWxhciBleHByZXNzaW9uIG1hdGNoIGZ1bGxfcGF0aC4i
IiIKICAgICAgICAgZm9yIHJleCBpbiBmaWx0ZXJfcmV4czoKLSAgICAgICAgICAgIGlmIHJleC5t
YXRjaCggZnVsbF9wYXRoICk6CisgICAgICAgICAgICBpZiByZXgubWF0Y2goZnVsbF9wYXRoKToK
ICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAg
IGRlZiBnbG9iX2ltcGwoIHJvb3RfZGlyX3BhdGggKToKKyAgICBkZWYgZ2xvYl9pbXBsKHJvb3Rf
ZGlyX3BhdGgpOgogICAgICAgICBjaGlsZF9kaXJzID0gW3Jvb3RfZGlyX3BhdGhdCiAgICAgICAg
IHdoaWxlIGNoaWxkX2RpcnM6CiAgICAgICAgICAgICBkaXJfcGF0aCA9IGNoaWxkX2RpcnMucG9w
KCkKLSAgICAgICAgICAgIGZvciBlbnRyeSBpbiBsaXN0ZGlyKCBkaXJfcGF0aCApOgotICAgICAg
ICAgICAgICAgIGZ1bGxfcGF0aCA9IG9zLnBhdGguam9pbiggZGlyX3BhdGgsIGVudHJ5ICkKKyAg
ICAgICAgICAgIGZvciBlbnRyeSBpbiBsaXN0ZGlyKGRpcl9wYXRoKToKKyAgICAgICAgICAgICAg
ICBmdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlyX3BhdGgsIGVudHJ5KQogIyMgICAgICAgICAg
ICAgICAgcHJpbnQgJ1Rlc3Rpbmc6JywgZnVsbF9wYXRoLAotICAgICAgICAgICAgICAgIGlzX2Rp
ciA9IG9zLnBhdGguaXNkaXIoIGZ1bGxfcGF0aCApCi0gICAgICAgICAgICAgICAgaWYgaXNfZGly
IGFuZCBub3QgaXNfcHJ1bmVkX2RpciggZW50cnkgKTogIyBleHBsb3JlIGNoaWxkIGRpcmVjdG9y
eSA/CisgICAgICAgICAgICAgICAgaXNfZGlyID0gb3MucGF0aC5pc2RpcihmdWxsX3BhdGgpCisg
ICAgICAgICAgICAgICAgaWYgaXNfZGlyIGFuZCBub3QgaXNfcHJ1bmVkX2RpcihlbnRyeSk6ICMg
ZXhwbG9yZSBjaGlsZCBkaXJlY3RvcnkgPwogIyMgICAgICAgICAgICAgICAgICAgIHByaW50ICc9
PT0+IG1hcmtlZCBmb3IgcmVjdXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRfZGly
cy5hcHBlbmQoIGZ1bGxfcGF0aCApCi0gICAgICAgICAgICAgICAgaW5jbHVkZWQgPSBhcHBseV9m
aWx0ZXIoIGZ1bGxfcGF0aCwgaW5jbHVkZV9maWx0ZXIgKQotICAgICAgICAgICAgICAgIHJlamVj
dGVkID0gYXBwbHlfZmlsdGVyKCBmdWxsX3BhdGgsIGV4Y2x1ZGVfZmlsdGVyICkKKyAgICAgICAg
ICAgICAgICAgICAgY2hpbGRfZGlycy5hcHBlbmQoZnVsbF9wYXRoKQorICAgICAgICAgICAgICAg
IGluY2x1ZGVkID0gYXBwbHlfZmlsdGVyKGZ1bGxfcGF0aCwgaW5jbHVkZV9maWx0ZXIpCisgICAg
ICAgICAgICAgICAgcmVqZWN0ZWQgPSBhcHBseV9maWx0ZXIoZnVsbF9wYXRoLCBleGNsdWRlX2Zp
bHRlcikKICAgICAgICAgICAgICAgICBpZiBub3QgaW5jbHVkZWQgb3IgcmVqZWN0ZWQ6ICMgZG8g
bm90IGluY2x1ZGUgZW50cnkgPwogIyMgICAgICAgICAgICAgICAgICAgIHByaW50ICc9PiBub3Qg
aW5jbHVkZWQgb3IgcmVqZWN0ZWQnCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICAgICAgbGluayA9IG9zLnBhdGguaXNsaW5rKCBmdWxsX3BhdGggKQotICAgICAgICAg
ICAgICAgIGlzX2ZpbGUgPSBvcy5wYXRoLmlzZmlsZSggZnVsbF9wYXRoICkKKyAgICAgICAgICAg
ICAgICBsaW5rID0gb3MucGF0aC5pc2xpbmsoZnVsbF9wYXRoKQorICAgICAgICAgICAgICAgIGlz
X2ZpbGUgPSBvcy5wYXRoLmlzZmlsZShmdWxsX3BhdGgpCiAgICAgICAgICAgICAgICAgaWYgbm90
IGlzX2ZpbGUgYW5kIG5vdCBpc19kaXI6CiAjIyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJz0+
IHVua25vd24gZW50cnkgdHlwZScKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKQEAgLTE0
NSw1NyArMTQ5LDU3IEBAIGRlZiBnbG9iKGRpcl9wYXRoLAogIyMgICAgICAgICAgICAgICAgcHJp
bnQgJz0+IHR5cGU6ICVkJyAlIGVudHJ5X3R5cGUsIAogICAgICAgICAgICAgICAgIGlmIChlbnRy
eV90eXBlICYgZW50cnlfdHlwZV9maWx0ZXIpICE9IDA6CiAjIyAgICAgICAgICAgICAgICAgICAg
cHJpbnQgJyA9PiBLRUVQJwotICAgICAgICAgICAgICAgICAgICB5aWVsZCBvcy5wYXRoLmpvaW4o
IGRpcl9wYXRoLCBlbnRyeSApCisgICAgICAgICAgICAgICAgICAgIHlpZWxkIG9zLnBhdGguam9p
bihkaXJfcGF0aCwgZW50cnkpCiAjIyAgICAgICAgICAgICAgICBlbHNlOgogIyMgICAgICAgICAg
ICAgICAgICAgIHByaW50ICcgPT4gVFlQRSBSRUpFQ1RFRCcKLSAgICByZXR1cm4gbGlzdCggZ2xv
Yl9pbXBsKCBkaXJfcGF0aCApICkKKyAgICByZXR1cm4gbGlzdChnbG9iX2ltcGwoZGlyX3BhdGgp
KQogCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgaW1wb3J0IHVuaXR0ZXN0CiAK
ICAgICBjbGFzcyBBbnRQYXR0ZXJuVG9SRVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotIyMgICAg
ICAgIGRlZiB0ZXN0X2NvbnZlcnNpb24oIHNlbGYgKToKLSMjICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCggJ15zb21lcGF0aCQnLCBhbnRfcGF0dGVybl90b19yZSggJ3NvbWVwYXRoJyApLnBh
dHRlcm4gKQorIyMgICAgICAgIGRlZiB0ZXN0X2NvbnZlcnNpb24oc2VsZik6CisjIyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ15zb21lcGF0aCQnLCBhbnRfcGF0dGVybl90b19yZSgnc29t
ZXBhdGgnKS5wYXR0ZXJuKQogCi0gICAgICAgIGRlZiB0ZXN0X21hdGNoaW5nKCBzZWxmICk6Ci0g
ICAgICAgICAgICB0ZXN0X2Nhc2VzID0gWyAoICdwYXRoJywKKyAgICAgICAgZGVmIHRlc3RfbWF0
Y2hpbmcoc2VsZik6CisgICAgICAgICAgICB0ZXN0X2Nhc2VzID0gWyAoJ3BhdGgnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbJ3BhdGgnXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydzb21lcGF0aCcsICdwYXRoc3VmZml4JywgJy9wYXRoJywgJy9wYXRoJ10gKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICggJyoucHknLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ3NvbWVwYXRoJywgJ3BhdGhzdWZmaXgnLCAnL3BhdGgnLCAnL3BhdGgnXSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoJyoucHknLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ3NvdXJjZS5weScsICdzb3VyY2UuZXh0LnB5JywgJy5weSddLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbJ3BhdGgvc291cmNlLnB5JywgJy8ucHknLCAnZGlyLnB5L3on
LCAnei5weWMnLCAnei5jJ10gKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICggJyoqL3Bh
dGgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3BhdGgvc291cmNlLnB5JywgJy8u
cHknLCAnZGlyLnB5L3onLCAnei5weWMnLCAnei5jJ10pLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCcqKi9wYXRoJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydwYXRoJywg
Jy9wYXRoJywgJy9hL3BhdGgnLCAnYzovYS9wYXRoJywgJy9hL2IvcGF0aCcsICcvL2EvcGF0aCcs
ICcvYS9wYXRoL2IvcGF0aCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3BhdGgv
JywgJ2EvcGF0aC9iJywgJ2Rpci5weS96JywgJ3NvbWVwYXRoJywgJ3BhdGhzdWZmaXgnLCAnYS9z
b21lcGF0aCddICksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoICdwYXRoLyoqJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWydwYXRoLycsICdhL3BhdGgvYicsICdkaXIucHkv
eicsICdzb21lcGF0aCcsICdwYXRoc3VmZml4JywgJ2Evc29tZXBhdGgnXSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoJ3BhdGgvKionLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJ3BhdGgvYScsICdwYXRoL3BhdGgvYScsICdwYXRoLy8nXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWydwYXRoJywgJ3NvbWVwYXRoL2EnLCAnYS9wYXRoJywgJ2EvcGF0aC9hJywg
J3BhdGhzdWZmaXgvYSddICksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoICcvKiovcGF0
aCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsncGF0aCcsICdzb21lcGF0aC9hJywg
J2EvcGF0aCcsICdhL3BhdGgvYScsICdwYXRoc3VmZml4L2EnXSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoJy8qKi9wYXRoJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycv
cGF0aCcsICcvYS9wYXRoJywgJy9hL2IvcGF0aC9wYXRoJywgJy9wYXRoL3BhdGgnXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWydwYXRoJywgJ3BhdGgvJywgJ2EvcGF0aCcsICcvcGF0
aHN1ZmZpeCcsICcvc29tZXBhdGgnXSApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAn
YS9iJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydwYXRoJywgJ3BhdGgvJywgJ2Ev
cGF0aCcsICcvcGF0aHN1ZmZpeCcsICcvc29tZXBhdGgnXSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoJ2EvYicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYS9iJ10sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc29tZWEvYicsICdhL2JzdWZmaXgnLCAnYS9i
L2MnXSApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAnKiovKi5weScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsnc29tZWEvYicsICdhL2JzdWZmaXgnLCAnYS9iL2MnXSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJyoqLyoucHknLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJ3NjcmlwdC5weScsICdzcmMvc2NyaXB0LnB5JywgJ2EvYi9zY3JpcHQu
cHknLCAnL2EvYi9zY3JpcHQucHknXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydz
Y3JpcHQucHljJywgJ3NjcmlwdC5weW8nLCAnYS5weS9iJ10gKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICggJ3NyYy8qKi8qLnB5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WydzY3JpcHQucHljJywgJ3NjcmlwdC5weW8nLCAnYS5weS9iJ10pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCdzcmMvKiovKi5weScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnc3JjL2EucHknLCAnc3JjL2Rpci9hLnB5J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsnYS9zcmMvYS5weScsICcvc3JjL2EucHknXSApLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJ2Evc3JjL2EucHknLCAnL3NyYy9hLnB5J10pLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXQogICAgICAgICAgICAgZm9yIGFudF9wYXR0ZXJuLCBhY2NlcHRlZF9tYXRjaGVz
LCByZWplY3RlZF9tYXRjaGVzIGluIGxpc3QodGVzdF9jYXNlcyk6Ci0gICAgICAgICAgICAgICAg
ZGVmIGxvY2FsX3BhdGgoIHBhdGhzICk6CisgICAgICAgICAgICAgICAgZGVmIGxvY2FsX3BhdGgo
cGF0aHMpOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gWyBwLnJlcGxhY2UoJy8nLG9zLnBh
dGguc2VwKSBmb3IgcCBpbiBwYXRocyBdCi0gICAgICAgICAgICAgICAgdGVzdF9jYXNlcy5hcHBl
bmQoIChhbnRfcGF0dGVybiwgbG9jYWxfcGF0aChhY2NlcHRlZF9tYXRjaGVzKSwgbG9jYWxfcGF0
aCggcmVqZWN0ZWRfbWF0Y2hlcyApKSApCisgICAgICAgICAgICAgICAgdGVzdF9jYXNlcy5hcHBl
bmQoKGFudF9wYXR0ZXJuLCBsb2NhbF9wYXRoKGFjY2VwdGVkX21hdGNoZXMpLCBsb2NhbF9wYXRo
KHJlamVjdGVkX21hdGNoZXMpKSkKICAgICAgICAgICAgIGZvciBhbnRfcGF0dGVybiwgYWNjZXB0
ZWRfbWF0Y2hlcywgcmVqZWN0ZWRfbWF0Y2hlcyBpbiB0ZXN0X2Nhc2VzOgotICAgICAgICAgICAg
ICAgIHJleCA9IGFudF9wYXR0ZXJuX3RvX3JlKCBhbnRfcGF0dGVybiApCi0gICAgICAgICAgICAg
ICAgcHJpbnQgJ2FudF9wYXR0ZXJuOicsIGFudF9wYXR0ZXJuLCAnID0+ICcsIHJleC5wYXR0ZXJu
CisgICAgICAgICAgICAgICAgcmV4ID0gYW50X3BhdHRlcm5fdG9fcmUoYW50X3BhdHRlcm4pCisg
ICAgICAgICAgICAgICAgcHJpbnQoJ2FudF9wYXR0ZXJuOicsIGFudF9wYXR0ZXJuLCAnID0+ICcs
IHJleC5wYXR0ZXJuKQogICAgICAgICAgICAgICAgIGZvciBhY2NlcHRlZF9tYXRjaCBpbiBhY2Nl
cHRlZF9tYXRjaGVzOgotICAgICAgICAgICAgICAgICAgICBwcmludCAnQWNjZXB0ZWQ/OicsIGFj
Y2VwdGVkX21hdGNoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0XyggcmV4Lm1hdGNo
KCBhY2NlcHRlZF9tYXRjaCApIGlzIG5vdCBOb25lICkKKyAgICAgICAgICAgICAgICAgICAgcHJp
bnQoJ0FjY2VwdGVkPzonLCBhY2NlcHRlZF9tYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHJleC5tYXRjaChhY2NlcHRlZF9tYXRjaCkgaXMgbm90IE5vbmUpCiAgICAg
ICAgICAgICAgICAgZm9yIHJlamVjdGVkX21hdGNoIGluIHJlamVjdGVkX21hdGNoZXM6Ci0gICAg
ICAgICAgICAgICAgICAgIHByaW50ICdSZWplY3RlZD86JywgcmVqZWN0ZWRfbWF0Y2gKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRfKCByZXgubWF0Y2goIHJlamVjdGVkX21hdGNoICkg
aXMgTm9uZSApCisgICAgICAgICAgICAgICAgICAgIHByaW50KCdSZWplY3RlZD86JywgcmVqZWN0
ZWRfbWF0Y2gpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXgubWF0Y2go
cmVqZWN0ZWRfbWF0Y2gpIGlzIE5vbmUpCiAKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvZGV2dG9vbHMvYmF0Y2hidWlsZC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYmF0Y2hidWls
ZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZWIwNjkwZThjNmQ3M2FkMWVlOGIzNjMxY2VmN2Y5OTE1NDdmNDg5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9iYXRjaGJ1aWxkLnB5CkBAIC0wLDAg
KzEsMjc4IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCitpbXBvcnQg
Y29sbGVjdGlvbnMKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2lt
cG9ydCBvcy5wYXRoCitpbXBvcnQgcmUKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdHJpbmcKK2lt
cG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgY2dpCisKK2NsYXNzIEJ1aWxkRGVz
YzoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcHJlcGVuZF9lbnZzPU5vbmUsIHZhcmlhYmxlcz1O
b25lLCBidWlsZF90eXBlPU5vbmUsIGdlbmVyYXRvcj1Ob25lKToKKyAgICAgICAgc2VsZi5wcmVw
ZW5kX2VudnMgPSBwcmVwZW5kX2VudnMgb3IgW10gIyBbIHsgInZhciI6ICJ2YWx1ZSIgfSBdCisg
ICAgICAgIHNlbGYudmFyaWFibGVzID0gdmFyaWFibGVzIG9yIFtdCisgICAgICAgIHNlbGYuYnVp
bGRfdHlwZSA9IGJ1aWxkX3R5cGUKKyAgICAgICAgc2VsZi5nZW5lcmF0b3IgPSBnZW5lcmF0b3IK
KworICAgIGRlZiBtZXJnZWRfd2l0aChzZWxmLCBidWlsZF9kZXNjKToKKyAgICAgICAgIiIiUmV0
dXJucyBhIG5ldyBCdWlsZERlc2MgYnkgbWVyZ2luZyBmaWVsZCBjb250ZW50LgorICAgICAgICAg
ICBQcmVmZXIgYnVpbGRfZGVzYyBmaWVsZHMgdG8gc2VsZiBmaWVsZHMgZm9yIHNpbmdsZSB2YWx1
ZWQgZmllbGQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gQnVpbGREZXNjKHNlbGYucHJl
cGVuZF9lbnZzICsgYnVpbGRfZGVzYy5wcmVwZW5kX2VudnMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYudmFyaWFibGVzICsgYnVpbGRfZGVzYy52YXJpYWJsZXMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkX2Rlc2MuYnVpbGRfdHlwZSBvciBzZWxmLmJ1aWxkX3R5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX2Rlc2MuZ2VuZXJhdG9yIG9yIHNlbGYu
Z2VuZXJhdG9yKQorCisgICAgZGVmIGVudihzZWxmKToKKyAgICAgICAgZW52aXJvbiA9IG9zLmVu
dmlyb24uY29weSgpCisgICAgICAgIGZvciB2YWx1ZXNfYnlfbmFtZSBpbiBzZWxmLnByZXBlbmRf
ZW52czoKKyAgICAgICAgICAgIGZvciB2YXIsIHZhbHVlIGluIGxpc3QodmFsdWVzX2J5X25hbWUu
aXRlbXMoKSk6CisgICAgICAgICAgICAgICAgdmFyID0gdmFyLnVwcGVyKCkKKyAgICAgICAgICAg
ICAgICBpZiB0eXBlKHZhbHVlKSBpcyB1bmljb2RlOgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IHZhbHVlLmVuY29kZShzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpCisgICAgICAgICAgICAg
ICAgaWYgdmFyIGluIGVudmlyb246CisgICAgICAgICAgICAgICAgICAgIGVudmlyb25bdmFyXSA9
IHZhbHVlICsgb3MucGF0aHNlcCArIGVudmlyb25bdmFyXQorICAgICAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgICAgIGVudmlyb25bdmFyXSA9IHZhbHVlCisgICAgICAgIHJldHVy
biBlbnZpcm9uCisKKyAgICBkZWYgY21ha2VfYXJncyhzZWxmKToKKyAgICAgICAgYXJncyA9IFsi
LUQlcyIgJSB2YXIgZm9yIHZhciBpbiBzZWxmLnZhcmlhYmxlc10KKyAgICAgICAgIyBza2lwIGJ1
aWxkIHR5cGUgZm9yIFZpc3VhbCBTdHVkaW8gc29sdXRpb24gYXMgaXQgY2F1c2Ugd2FybmluZwor
ICAgICAgICBpZiBzZWxmLmJ1aWxkX3R5cGUgYW5kICdWaXN1YWwnIG5vdCBpbiBzZWxmLmdlbmVy
YXRvcjoKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItRENNQUtFX0JVSUxEX1RZUEU9JXMiICUg
c2VsZi5idWlsZF90eXBlKQorICAgICAgICBpZiBzZWxmLmdlbmVyYXRvcjoKKyAgICAgICAgICAg
IGFyZ3MuZXh0ZW5kKFsnLUcnLCBzZWxmLmdlbmVyYXRvcl0pCisgICAgICAgIHJldHVybiBhcmdz
CisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiQnVpbGREZXNjKCVz
LCBidWlsZF90eXBlPSVzKSIgJSAgKCIgIi5qb2luKHNlbGYuY21ha2VfYXJncygpKSwgc2VsZi5i
dWlsZF90eXBlKQorCitjbGFzcyBCdWlsZERhdGE6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRl
c2MsIHdvcmtfZGlyLCBzb3VyY2VfZGlyKToKKyAgICAgICAgc2VsZi5kZXNjID0gZGVzYworICAg
ICAgICBzZWxmLndvcmtfZGlyID0gd29ya19kaXIKKyAgICAgICAgc2VsZi5zb3VyY2VfZGlyID0g
c291cmNlX2RpcgorICAgICAgICBzZWxmLmNtYWtlX2xvZ19wYXRoID0gb3MucGF0aC5qb2luKHdv
cmtfZGlyLCAnYmF0Y2hidWlsZF9jbWFrZS5sb2cnKQorICAgICAgICBzZWxmLmJ1aWxkX2xvZ19w
YXRoID0gb3MucGF0aC5qb2luKHdvcmtfZGlyLCAnYmF0Y2hidWlsZF9idWlsZC5sb2cnKQorICAg
ICAgICBzZWxmLmNtYWtlX3N1Y2NlZWRlZCA9IEZhbHNlCisgICAgICAgIHNlbGYuYnVpbGRfc3Vj
Y2VlZGVkID0gRmFsc2UKKworICAgIGRlZiBleGVjdXRlX2J1aWxkKHNlbGYpOgorICAgICAgICBw
cmludCgnQnVpbGQgJXMnICUgc2VsZi5kZXNjKQorICAgICAgICBzZWxmLl9tYWtlX25ld193b3Jr
X2RpcigpCisgICAgICAgIHNlbGYuY21ha2Vfc3VjY2VlZGVkID0gc2VsZi5fZ2VuZXJhdGVfbWFr
ZWZpbGVzKCkKKyAgICAgICAgaWYgc2VsZi5jbWFrZV9zdWNjZWVkZWQ6CisgICAgICAgICAgICBz
ZWxmLmJ1aWxkX3N1Y2NlZWRlZCA9IHNlbGYuX2J1aWxkX3VzaW5nX21ha2VmaWxlcygpCisgICAg
ICAgIHJldHVybiBzZWxmLmJ1aWxkX3N1Y2NlZWRlZAorCisgICAgZGVmIF9nZW5lcmF0ZV9tYWtl
ZmlsZXMoc2VsZik6CisgICAgICAgIHByaW50KCcgIEdlbmVyYXRpbmcgbWFrZWZpbGVzOiAnLCBl
bmQ9JyAnKQorICAgICAgICBjbWQgPSBbJ2NtYWtlJ10gKyBzZWxmLmRlc2MuY21ha2VfYXJncygp
ICsgW29zLnBhdGguYWJzcGF0aChzZWxmLnNvdXJjZV9kaXIpXQorICAgICAgICBzdWNjZWVkZWQg
PSBzZWxmLl9leGVjdXRlX2J1aWxkX3N1YnByb2Nlc3MoY21kLCBzZWxmLmRlc2MuZW52KCksIHNl
bGYuY21ha2VfbG9nX3BhdGgpCisgICAgICAgIHByaW50KCdkb25lJyBpZiBzdWNjZWVkZWQgZWxz
ZSAnRkFJTEVEJykKKyAgICAgICAgcmV0dXJuIHN1Y2NlZWRlZAorCisgICAgZGVmIF9idWlsZF91
c2luZ19tYWtlZmlsZXMoc2VsZik6CisgICAgICAgIHByaW50KCcgIEJ1aWxkaW5nOicsIGVuZD0n
ICcpCisgICAgICAgIGNtZCA9IFsnY21ha2UnLCAnLS1idWlsZCcsIHNlbGYud29ya19kaXJdCisg
ICAgICAgIGlmIHNlbGYuZGVzYy5idWlsZF90eXBlOgorICAgICAgICAgICAgY21kICs9IFsnLS1j
b25maWcnLCBzZWxmLmRlc2MuYnVpbGRfdHlwZV0KKyAgICAgICAgc3VjY2VlZGVkID0gc2VsZi5f
ZXhlY3V0ZV9idWlsZF9zdWJwcm9jZXNzKGNtZCwgc2VsZi5kZXNjLmVudigpLCBzZWxmLmJ1aWxk
X2xvZ19wYXRoKQorICAgICAgICBwcmludCgnZG9uZScgaWYgc3VjY2VlZGVkIGVsc2UgJ0ZBSUxF
RCcpCisgICAgICAgIHJldHVybiBzdWNjZWVkZWQKKworICAgIGRlZiBfZXhlY3V0ZV9idWlsZF9z
dWJwcm9jZXNzKHNlbGYsIGNtZCwgZW52LCBsb2dfcGF0aCk6CisgICAgICAgIHByb2Nlc3MgPSBz
dWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnBy
b2Nlc3MuU1RET1VULCBjd2Q9c2VsZi53b3JrX2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVudj1lbnYpCisgICAgICAgIHN0ZG91dCwgXyA9IHByb2Nlc3MuY29tbXVu
aWNhdGUoKQorICAgICAgICBzdWNjZWVkZWQgPSAocHJvY2Vzcy5yZXR1cm5jb2RlID09IDApCisg
ICAgICAgIHdpdGggb3Blbihsb2dfcGF0aCwgJ3diJykgYXMgZmxvZzoKKyAgICAgICAgICAgIGxv
ZyA9ICcgJy5qb2luKGNtZCkgKyAnXG4nICsgc3Rkb3V0ICsgJ1xuRXhpdCBjb2RlOiAlclxuJyAl
IHByb2Nlc3MucmV0dXJuY29kZQorICAgICAgICAgICAgZmxvZy53cml0ZShmaXhfZW9sKGxvZykp
CisgICAgICAgIHJldHVybiBzdWNjZWVkZWQKKworICAgIGRlZiBfbWFrZV9uZXdfd29ya19kaXIo
c2VsZik6CisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoc2VsZi53b3JrX2Rpcik6CisgICAgICAg
ICAgICBwcmludCgnICBSZW1vdmluZyB3b3JrIGRpcmVjdG9yeScsIHNlbGYud29ya19kaXIpCisg
ICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYud29ya19kaXIsIGlnbm9yZV9lcnJvcnM9VHJ1
ZSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoc2VsZi53b3JrX2Rpcik6CisgICAgICAg
ICAgICBvcy5tYWtlZGlycyhzZWxmLndvcmtfZGlyKQorCitkZWYgZml4X2VvbChzdGRvdXQpOgor
ICAgICIiIkZpeGVzIHdyb25nIEVPTCBwcm9kdWNlZCBieSBjbWFrZSAtLWJ1aWxkIG9uIFdpbmRv
d3MgKFxyXHJcbiBpbnN0ZWFkIG9mIFxyXG4pLgorICAgICIiIgorICAgIHJldHVybiByZS5zdWIo
J1xyKlxuJywgb3MubGluZXNlcCwgc3Rkb3V0KQorCitkZWYgbG9hZF9idWlsZF92YXJpYW50c19m
cm9tX2NvbmZpZyhjb25maWdfcGF0aCk6CisgICAgd2l0aCBvcGVuKGNvbmZpZ19wYXRoLCAncmIn
KSBhcyBmY29uZmlnOgorICAgICAgICBkYXRhID0ganNvbi5sb2FkKGZjb25maWcpCisgICAgdmFy
aWFudHMgPSBkYXRhWyAnY21ha2VfdmFyaWFudHMnIF0KKyAgICBidWlsZF9kZXNjc19ieV9heGlz
ID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QobGlzdCkKKyAgICBmb3IgYXhpcyBpbiB2YXJpYW50
czoKKyAgICAgICAgYXhpc19uYW1lID0gYXhpc1sibmFtZSJdCisgICAgICAgIGJ1aWxkX2Rlc2Nz
ID0gW10KKyAgICAgICAgaWYgImdlbmVyYXRvcnMiIGluIGF4aXM6CisgICAgICAgICAgICBmb3Ig
Z2VuZXJhdG9yX2RhdGEgaW4gYXhpc1siZ2VuZXJhdG9ycyJdOgorICAgICAgICAgICAgICAgIGZv
ciBnZW5lcmF0b3IgaW4gZ2VuZXJhdG9yX2RhdGFbImdlbmVyYXRvciJdOgorICAgICAgICAgICAg
ICAgICAgICBidWlsZF9kZXNjID0gQnVpbGREZXNjKGdlbmVyYXRvcj1nZW5lcmF0b3IsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXBlbmRfZW52cz1nZW5l
cmF0b3JfZGF0YS5nZXQoImVudl9wcmVwZW5kIikpCisgICAgICAgICAgICAgICAgICAgIGJ1aWxk
X2Rlc2NzLmFwcGVuZChidWlsZF9kZXNjKQorICAgICAgICBlbGlmICJ2YXJpYWJsZXMiIGluIGF4
aXM6CisgICAgICAgICAgICBmb3IgdmFyaWFibGVzIGluIGF4aXNbInZhcmlhYmxlcyJdOgorICAg
ICAgICAgICAgICAgIGJ1aWxkX2Rlc2MgPSBCdWlsZERlc2ModmFyaWFibGVzPXZhcmlhYmxlcykK
KyAgICAgICAgICAgICAgICBidWlsZF9kZXNjcy5hcHBlbmQoYnVpbGRfZGVzYykKKyAgICAgICAg
ZWxpZiAiYnVpbGRfdHlwZXMiIGluIGF4aXM6CisgICAgICAgICAgICBmb3IgYnVpbGRfdHlwZSBp
biBheGlzWyJidWlsZF90eXBlcyJdOgorICAgICAgICAgICAgICAgIGJ1aWxkX2Rlc2MgPSBCdWls
ZERlc2MoYnVpbGRfdHlwZT1idWlsZF90eXBlKQorICAgICAgICAgICAgICAgIGJ1aWxkX2Rlc2Nz
LmFwcGVuZChidWlsZF9kZXNjKQorICAgICAgICBidWlsZF9kZXNjc19ieV9heGlzW2F4aXNfbmFt
ZV0uZXh0ZW5kKGJ1aWxkX2Rlc2NzKQorICAgIHJldHVybiBidWlsZF9kZXNjc19ieV9heGlzCisK
K2RlZiBnZW5lcmF0ZV9idWlsZF92YXJpYW50cyhidWlsZF9kZXNjc19ieV9heGlzKToKKyAgICAi
IiJSZXR1cm5zIGEgbGlzdCBvZiBCdWlsZERlc2MgZ2VuZXJhdGVkIGZvciB0aGUgcGFydGlhbCBC
dWlsZERlc2MgZm9yIGVhY2ggYXhpcy4iIiIKKyAgICBheGlzX25hbWVzID0gbGlzdChidWlsZF9k
ZXNjc19ieV9heGlzLmtleXMoKSkKKyAgICBidWlsZF9kZXNjcyA9IFtdCisgICAgZm9yIGF4aXNf
bmFtZSwgYXhpc19idWlsZF9kZXNjcyBpbiBsaXN0KGJ1aWxkX2Rlc2NzX2J5X2F4aXMuaXRlbXMo
KSk6CisgICAgICAgIGlmIGxlbihidWlsZF9kZXNjcyk6CisgICAgICAgICAgICAjIGZvciBlYWNo
IGV4aXN0aW5nIGJ1aWxkX2Rlc2MgYW5kIGVhY2ggYXhpcyBidWlsZCBkZXNjLCBjcmVhdGUgYSBu
ZXcgYnVpbGRfZGVzYworICAgICAgICAgICAgbmV3X2J1aWxkX2Rlc2NzID0gW10KKyAgICAgICAg
ICAgIGZvciBwcm90b3R5cGVfYnVpbGRfZGVzYywgYXhpc19idWlsZF9kZXNjIGluIGl0ZXJ0b29s
cy5wcm9kdWN0KGJ1aWxkX2Rlc2NzLCBheGlzX2J1aWxkX2Rlc2NzKToKKyAgICAgICAgICAgICAg
ICBuZXdfYnVpbGRfZGVzY3MuYXBwZW5kKHByb3RvdHlwZV9idWlsZF9kZXNjLm1lcmdlZF93aXRo
KGF4aXNfYnVpbGRfZGVzYykpCisgICAgICAgICAgICBidWlsZF9kZXNjcyA9IG5ld19idWlsZF9k
ZXNjcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnVpbGRfZGVzY3MgPSBheGlzX2J1aWxk
X2Rlc2NzCisgICAgcmV0dXJuIGJ1aWxkX2Rlc2NzCisKK0hUTUxfVEVNUExBVEUgPSBzdHJpbmcu
VGVtcGxhdGUoJycnPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+JHRpdGxlPC90aXRsZT4KKyAg
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgIHRkLmZhaWxlZCB7YmFja2dyb3VuZC1jb2xv
cjojZjA4MDgwO30KKyAgICB0ZC5vayB7YmFja2dyb3VuZC1jb2xvcjojYzBlZWMwO30KKyAgICA8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8dGFibGUgYm9yZGVyPSIxIj4KKzx0aGVhZD4KKyAg
ICA8dHI+CisgICAgICAgIDx0aD5WYXJpYWJsZXM8L3RoPgorICAgICAgICAkdGhfdmFycworICAg
IDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGg+QnVpbGQgdHlwZTwvdGg+CisgICAgICAgICR0
aF9idWlsZF90eXBlcworICAgIDwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorJHRyX2J1aWxkcwor
PC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+PC9odG1sPicnJykKKworZGVmIGdlbmVyYXRlX2h0
bWxfcmVwb3J0KGh0bWxfcmVwb3J0X3BhdGgsIGJ1aWxkcyk6CisgICAgcmVwb3J0X2RpciA9IG9z
LnBhdGguZGlybmFtZShodG1sX3JlcG9ydF9wYXRoKQorICAgICMgVmVydGljYWwgYXhpczogZ2Vu
ZXJhdG9yCisgICAgIyBIb3Jpem9udGFsOiB2YXJpYWJsZXMsIHRoZW4gYnVpbGRfdHlwZQorICAg
IGJ1aWxkc19ieV9nZW5lcmF0b3IgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsaXN0KQorICAg
IHZhcmlhYmxlcyA9IHNldCgpCisgICAgYnVpbGRfdHlwZXNfYnlfdmFyaWFibGUgPSBjb2xsZWN0
aW9ucy5kZWZhdWx0ZGljdChzZXQpCisgICAgYnVpbGRfYnlfcG9zX2tleSA9IHt9ICMgeyAoZ2Vu
ZXJhdG9yLCB2YXJfa2V5LCBidWlsZF90eXBlKTogYnVpbGQgfQorICAgIGZvciBidWlsZCBpbiBi
dWlsZHM6CisgICAgICAgIGJ1aWxkc19ieV9nZW5lcmF0b3JbYnVpbGQuZGVzYy5nZW5lcmF0b3Jd
LmFwcGVuZChidWlsZCkKKyAgICAgICAgdmFyX2tleSA9IHR1cGxlKHNvcnRlZChidWlsZC5kZXNj
LnZhcmlhYmxlcykpCisgICAgICAgIHZhcmlhYmxlcy5hZGQodmFyX2tleSkKKyAgICAgICAgYnVp
bGRfdHlwZXNfYnlfdmFyaWFibGVbdmFyX2tleV0uYWRkKGJ1aWxkLmRlc2MuYnVpbGRfdHlwZSkK
KyAgICAgICAgcG9zX2tleSA9IChidWlsZC5kZXNjLmdlbmVyYXRvciwgdmFyX2tleSwgYnVpbGQu
ZGVzYy5idWlsZF90eXBlKQorICAgICAgICBidWlsZF9ieV9wb3Nfa2V5W3Bvc19rZXldID0gYnVp
bGQKKyAgICB2YXJpYWJsZXMgPSBzb3J0ZWQodmFyaWFibGVzKQorICAgIHRoX3ZhcnMgPSBbXQor
ICAgIHRoX2J1aWxkX3R5cGVzID0gW10KKyAgICBmb3IgdmFyaWFibGUgaW4gdmFyaWFibGVzOgor
ICAgICAgICBidWlsZF90eXBlcyA9IHNvcnRlZChidWlsZF90eXBlc19ieV92YXJpYWJsZVt2YXJp
YWJsZV0pCisgICAgICAgIG5iX2J1aWxkX3R5cGUgPSBsZW4oYnVpbGRfdHlwZXNfYnlfdmFyaWFi
bGVbdmFyaWFibGVdKQorICAgICAgICB0aF92YXJzLmFwcGVuZCgnPHRoIGNvbHNwYW49IiVkIj4l
czwvdGg+JyAlIChuYl9idWlsZF90eXBlLCBjZ2kuZXNjYXBlKCcgJy5qb2luKHZhcmlhYmxlKSkp
KQorICAgICAgICBmb3IgYnVpbGRfdHlwZSBpbiBidWlsZF90eXBlczoKKyAgICAgICAgICAgIHRo
X2J1aWxkX3R5cGVzLmFwcGVuZCgnPHRoPiVzPC90aD4nICUgY2dpLmVzY2FwZShidWlsZF90eXBl
KSkKKyAgICB0cl9idWlsZHMgPSBbXQorICAgIGZvciBnZW5lcmF0b3IgaW4gc29ydGVkKGJ1aWxk
c19ieV9nZW5lcmF0b3IpOgorICAgICAgICB0ZHMgPSBbICc8dGQ+JXM8L3RkPlxuJyAlIGNnaS5l
c2NhcGUoZ2VuZXJhdG9yKSBdCisgICAgICAgIGZvciB2YXJpYWJsZSBpbiB2YXJpYWJsZXM6Cisg
ICAgICAgICAgICBidWlsZF90eXBlcyA9IHNvcnRlZChidWlsZF90eXBlc19ieV92YXJpYWJsZVt2
YXJpYWJsZV0pCisgICAgICAgICAgICBmb3IgYnVpbGRfdHlwZSBpbiBidWlsZF90eXBlczoKKyAg
ICAgICAgICAgICAgICBwb3Nfa2V5ID0gKGdlbmVyYXRvciwgdmFyaWFibGUsIGJ1aWxkX3R5cGUp
CisgICAgICAgICAgICAgICAgYnVpbGQgPSBidWlsZF9ieV9wb3Nfa2V5LmdldChwb3Nfa2V5KQor
ICAgICAgICAgICAgICAgIGlmIGJ1aWxkOgorICAgICAgICAgICAgICAgICAgICBjbWFrZV9zdGF0
dXMgPSAnb2snIGlmIGJ1aWxkLmNtYWtlX3N1Y2NlZWRlZCBlbHNlICdGQUlMRUQnCisgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkX3N0YXR1cyA9ICdvaycgaWYgYnVpbGQuYnVpbGRfc3VjY2VlZGVk
IGVsc2UgJ0ZBSUxFRCcKKyAgICAgICAgICAgICAgICAgICAgY21ha2VfbG9nX3VybCA9IG9zLnBh
dGgucmVscGF0aChidWlsZC5jbWFrZV9sb2dfcGF0aCwgcmVwb3J0X2RpcikKKyAgICAgICAgICAg
ICAgICAgICAgYnVpbGRfbG9nX3VybCA9IG9zLnBhdGgucmVscGF0aChidWlsZC5idWlsZF9sb2df
cGF0aCwgcmVwb3J0X2RpcikKKyAgICAgICAgICAgICAgICAgICAgdGQgPSAnPHRkIGNsYXNzPSIl
cyI+PGEgaHJlZj0iJXMiIGNsYXNzPSIlcyI+Q01ha2U6ICVzPC9hPicgJSAoICAgICAgICAgICAg
ICAgICAgICAgICAgYnVpbGRfc3RhdHVzLmxvd2VyKCksIGNtYWtlX2xvZ191cmwsIGNtYWtlX3N0
YXR1cy5sb3dlcigpLCBjbWFrZV9zdGF0dXMpCisgICAgICAgICAgICAgICAgICAgIGlmIGJ1aWxk
LmNtYWtlX3N1Y2NlZWRlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRkICs9ICc8YnI+PGEg
aHJlZj0iJXMiIGNsYXNzPSIlcyI+QnVpbGQ6ICVzPC9hPicgJSAoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkX2xvZ191cmwsIGJ1aWxkX3N0YXR1cy5sb3dlcigpLCBidWlsZF9zdGF0
dXMpCisgICAgICAgICAgICAgICAgICAgIHRkICs9ICc8L3RkPicKKyAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICB0ZCA9ICc8dGQ+PC90ZD4nCisgICAgICAgICAgICAg
ICAgdGRzLmFwcGVuZCh0ZCkKKyAgICAgICAgdHJfYnVpbGRzLmFwcGVuZCgnPHRyPiVzPC90cj4n
ICUgJ1xuJy5qb2luKHRkcykpCisgICAgaHRtbCA9IEhUTUxfVEVNUExBVEUuc3Vic3RpdHV0ZSgg
ICAgICAgIHRpdGxlPSdCYXRjaCBidWlsZCByZXBvcnQnLAorICAgICAgICB0aF92YXJzPScgJy5q
b2luKHRoX3ZhcnMpLAorICAgICAgICB0aF9idWlsZF90eXBlcz0nICcuam9pbih0aF9idWlsZF90
eXBlcyksCisgICAgICAgIHRyX2J1aWxkcz0nXG4nLmpvaW4odHJfYnVpbGRzKSkKKyAgICB3aXRo
IG9wZW4oaHRtbF9yZXBvcnRfcGF0aCwgJ3d0JykgYXMgZmh0bWw6CisgICAgICAgIGZodG1sLndy
aXRlKGh0bWwpCisgICAgcHJpbnQoJ0hUTUwgcmVwb3J0IGdlbmVyYXRlZCBpbjonLCBodG1sX3Jl
cG9ydF9wYXRoKQorCitkZWYgbWFpbigpOgorICAgIHVzYWdlID0gciIiIiVwcm9nIFdPUktfRElS
IFNPVVJDRV9ESVIgQ09ORklHX0pTT05fUEFUSCBbQ09ORklHMl9KU09OX1BBVEguLi5dCitCdWls
ZCBhIGdpdmVuIENNYWtlIGJhc2VkIHByb2plY3QgbG9jYXRlZCBpbiBTT1VSQ0VfRElSIHdpdGgg
bXVsdGlwbGUgZ2VuZXJhdG9ycy9vcHRpb25zLmRyeV9ydW4KK2FzIGRlc2NyaWJlZCBpbiBDT05G
SUdfSlNPTl9QQVRIIGJ1aWxkaW5nIGluIFdPUktfRElSLgorCitFeGFtcGxlIG9mIGNhbGw6Citw
eXRob24gZGV2dG9vbHNcYmF0Y2hidWlsZC5weSBlOlxidWlsZGJvdHNcanNvbmNwcFxidWlsZCAu
IGRldnRvb2xzXGFnZW50X3ZtdzcuanNvbgorIiIiCisgICAgZnJvbSBvcHRwYXJzZSBpbXBvcnQg
T3B0aW9uUGFyc2VyCisgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKHVzYWdlPXVzYWdlKQorICAg
IHBhcnNlci5hbGxvd19pbnRlcnNwZXJzZWRfYXJncyA9IFRydWUKKyMgICAgcGFyc2VyLmFkZF9v
cHRpb24oJy12JywgJy0tdmVyYm9zZScsIGRlc3Q9InZlcmJvc2UiLCBhY3Rpb249J3N0b3JlX3Ry
dWUnLAorIyAgICAgICAgaGVscD0iIiJCZSB2ZXJib3NlLiIiIikKKyAgICBwYXJzZXIuZW5hYmxl
X2ludGVyc3BlcnNlZF9hcmdzKCkKKyAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2Fy
Z3MoKQorICAgIGlmIGxlbihhcmdzKSA8IDM6CisgICAgICAgIHBhcnNlci5lcnJvcigiTWlzc2lu
ZyBvbmUgb2YgV09SS19ESVIgU09VUkNFX0RJUiBDT05GSUdfSlNPTl9QQVRILiIpCisgICAgd29y
a19kaXIgPSBhcmdzWzBdCisgICAgc291cmNlX2RpciA9IGFyZ3NbMV0ucnN0cmlwKCcvXFwnKQor
ICAgIGNvbmZpZ19wYXRocyA9IGFyZ3NbMjpdCisgICAgZm9yIGNvbmZpZ19wYXRoIGluIGNvbmZp
Z19wYXRoczoKKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGNvbmZpZ19wYXRoKToKKyAg
ICAgICAgICAgIHBhcnNlci5lcnJvcigiQ2FuIG5vdCByZWFkOiAlciIgJSBjb25maWdfcGF0aCkK
KworICAgICMgZ2VuZXJhdGUgYnVpbGQgdmFyaWFudHMKKyAgICBidWlsZF9kZXNjcyA9IFtdCisg
ICAgZm9yIGNvbmZpZ19wYXRoIGluIGNvbmZpZ19wYXRoczoKKyAgICAgICAgYnVpbGRfZGVzY3Nf
YnlfYXhpcyA9IGxvYWRfYnVpbGRfdmFyaWFudHNfZnJvbV9jb25maWcoY29uZmlnX3BhdGgpCisg
ICAgICAgIGJ1aWxkX2Rlc2NzLmV4dGVuZChnZW5lcmF0ZV9idWlsZF92YXJpYW50cyhidWlsZF9k
ZXNjc19ieV9heGlzKSkKKyAgICBwcmludCgnQnVpbGQgdmFyaWFudHMgKCVkKTonICUgbGVuKGJ1
aWxkX2Rlc2NzKSkKKyAgICAjIGFzc2lnbiBidWlsZCBkaXJlY3RvcnkgZm9yIGVhY2ggdmFyaWFu
dAorICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKHdvcmtfZGlyKToKKyAgICAgICAgb3MubWFrZWRp
cnMod29ya19kaXIpCisgICAgYnVpbGRzID0gW10KKyAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2lu
KHdvcmtfZGlyLCAnbWF0cml4LWRpci1tYXAudHh0JyksICd3dCcpIGFzIGZtYXRyaXhtYXA6Cisg
ICAgICAgIGZvciBpbmRleCwgYnVpbGRfZGVzYyBpbiBlbnVtZXJhdGUoYnVpbGRfZGVzY3MpOgor
ICAgICAgICAgICAgYnVpbGRfZGVzY193b3JrX2RpciA9IG9zLnBhdGguam9pbih3b3JrX2Rpciwg
JyUwM2QnICUgKGluZGV4KzEpKQorICAgICAgICAgICAgYnVpbGRzLmFwcGVuZChCdWlsZERhdGEo
YnVpbGRfZGVzYywgYnVpbGRfZGVzY193b3JrX2Rpciwgc291cmNlX2RpcikpCisgICAgICAgICAg
ICBmbWF0cml4bWFwLndyaXRlKCclczogJXNcbicgJSAoYnVpbGRfZGVzY193b3JrX2RpciwgYnVp
bGRfZGVzYykpCisgICAgZm9yIGJ1aWxkIGluIGJ1aWxkczoKKyAgICAgICAgYnVpbGQuZXhlY3V0
ZV9idWlsZCgpCisgICAgaHRtbF9yZXBvcnRfcGF0aCA9IG9zLnBhdGguam9pbih3b3JrX2Rpciwg
J2JhdGNoYnVpbGQtcmVwb3J0Lmh0bWwnKQorICAgIGdlbmVyYXRlX2h0bWxfcmVwb3J0KGh0bWxf
cmVwb3J0X3BhdGgsIGJ1aWxkcykKKyAgICBwcmludCgnRG9uZScpCisKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKCkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9m
aXhlb2wucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2ZpeGVvbC5weQppbmRleCA0ZmVkNmNlNGIwMWYzZjdi
NWJkOWNmZGVhYzBjZTAyNjEyYzU0YzhiLi40NTI1MmEwN2Q5MjM3Y2E0MWE3MDQyZDVjN2FmOWI3
NDdmYjRkYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2ZpeGVvbC5weQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L2RldnRvb2xzL2ZpeGVvbC5weQpAQCAtMSwxMyArMSwyMCBAQAorIyBDb3B5cmlnaHQgMjAxMCBC
YXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQg
dW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0
YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKwor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IG9zLnBhdGgKK2lt
cG9ydCBzeXMKIAotZGVmIGZpeF9zb3VyY2VfZW9sKCBwYXRoLCBpc19kcnlfcnVuID0gVHJ1ZSwg
dmVyYm9zZSA9IFRydWUsIGVvbCA9ICdcbicgKToKK2RlZiBmaXhfc291cmNlX2VvbChwYXRoLCBp
c19kcnlfcnVuID0gVHJ1ZSwgdmVyYm9zZSA9IFRydWUsIGVvbCA9ICdcbicpOgogICAgICIiIk1h
a2VzIHN1cmUgdGhhdCBhbGwgc291cmNlcyBoYXZlIHRoZSBzcGVjaWZpZWQgZW9sIHNlcXVlbmNl
IChkZWZhdWx0OiB1bml4KS4iIiIKLSAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoIHBhdGggKToK
LSAgICAgICAgcmFpc2UgVmFsdWVFcnJvciggJ1BhdGggIiVzIiBpcyBub3QgYSBmaWxlJyAlIHBh
dGggKQorICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShwYXRoKToKKyAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignUGF0aCAiJXMiIGlzIG5vdCBhIGZpbGUnICUgcGF0aCkKICAgICB0cnk6CiAgICAg
ICAgIGYgPSBvcGVuKHBhdGgsICdyYicpCi0gICAgZXhjZXB0IElPRXJyb3IsIG1zZzoKLSAgICAg
ICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgIiVzOiBJL08gRXJyb3I6ICVzIiAlIChmaWxlLCBzdHIo
bXNnKSkKKyAgICBleGNlcHQgSU9FcnJvciBhcyBtc2c6CisgICAgICAgIHByaW50KCIlczogSS9P
IEVycm9yOiAlcyIgJSAoZmlsZSwgc3RyKG1zZykpLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAg
IHJldHVybiBGYWxzZQogICAgIHRyeToKICAgICAgICAgcmF3X2xpbmVzID0gZi5yZWFkbGluZXMo
KQpAQCAtMTUsNyArMjIsNyBAQCBkZWYgZml4X3NvdXJjZV9lb2woIHBhdGgsIGlzX2RyeV9ydW4g
PSBUcnVlLCB2ZXJib3NlID0gVHJ1ZSwgZW9sID0gJ1xuJyApOgogICAgICAgICBmLmNsb3NlKCkK
ICAgICBmaXhlZF9saW5lcyA9IFtsaW5lLnJzdHJpcCgnXHJcbicpICsgZW9sIGZvciBsaW5lIGlu
IHJhd19saW5lc10KICAgICBpZiByYXdfbGluZXMgIT0gZml4ZWRfbGluZXM6Ci0gICAgICAgIHBy
aW50ICclcyA9PicgJSBwYXRoLAorICAgICAgICBwcmludCgnJXMgPT4nICUgcGF0aCwgZW5kPScg
JykKICAgICAgICAgaWYgbm90IGlzX2RyeV9ydW46CiAgICAgICAgICAgICBmID0gb3BlbihwYXRo
LCAid2IiKQogICAgICAgICAgICAgdHJ5OgpAQCAtMjMsMzIgKzMwLDMyIEBAIGRlZiBmaXhfc291
cmNlX2VvbCggcGF0aCwgaXNfZHJ5X3J1biA9IFRydWUsIHZlcmJvc2UgPSBUcnVlLCBlb2wgPSAn
XG4nICk6CiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIGYuY2xvc2UoKQog
ICAgICAgICBpZiB2ZXJib3NlOgotICAgICAgICAgICAgcHJpbnQgaXNfZHJ5X3J1biBhbmQgJyBO
RUVEIEZJWCcgb3IgJyBGSVhFRCcKKyAgICAgICAgICAgIHByaW50KGlzX2RyeV9ydW4gYW5kICcg
TkVFRCBGSVgnIG9yICcgRklYRUQnKQogICAgIHJldHVybiBUcnVlCiAjIyAgICAKICMjICAgIAog
IyMKLSMjZGVmIF9kb19maXgoIGlzX2RyeV9ydW4gPSBUcnVlICk6CisjI2RlZiBfZG9fZml4KGlz
X2RyeV9ydW4gPSBUcnVlKToKICMjICAgIGZyb20gd2FmdG9vbHMgaW1wb3J0IGFudGdsb2IKLSMj
ICAgIHB5dGhvbl9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKCAnLicsCisjIyAgICBweXRob25fc291
cmNlcyA9IGFudGdsb2IuZ2xvYignLicsCiAjIyAgICAgICAgaW5jbHVkZXMgPSAnKiovKi5weSAq
Ki93c2NyaXB0ICoqL3dzY3JpcHRfYnVpbGQnLAogIyMgICAgICAgIGV4Y2x1ZGVzID0gYW50Z2xv
Yi5kZWZhdWx0X2V4Y2x1ZGVzICsgJy4vd2FmLnB5JywKLSMjICAgICAgICBwcnVuZV9kaXJzID0g
YW50Z2xvYi5wcnVuZV9kaXJzICsgJ3dhZi0qIC4vYnVpbGQnICkKKyMjICAgICAgICBwcnVuZV9k
aXJzID0gYW50Z2xvYi5wcnVuZV9kaXJzICsgJ3dhZi0qIC4vYnVpbGQnKQogIyMgICAgZm9yIHBh
dGggaW4gcHl0aG9uX3NvdXJjZXM6Ci0jIyAgICAgICAgX2ZpeF9weXRob25fc291cmNlKCBwYXRo
LCBpc19kcnlfcnVuICkKKyMjICAgICAgICBfZml4X3B5dGhvbl9zb3VyY2UocGF0aCwgaXNfZHJ5
X3J1bikKICMjCi0jIyAgICBjcHBfc291cmNlcyA9IGFudGdsb2IuZ2xvYiggJy4nLAorIyMgICAg
Y3BwX3NvdXJjZXMgPSBhbnRnbG9iLmdsb2IoJy4nLAogIyMgICAgICAgIGluY2x1ZGVzID0gJyoq
LyouY3BwICoqLyouaCAqKi8qLmlubCcsCi0jIyAgICAgICAgcHJ1bmVfZGlycyA9IGFudGdsb2Iu
cHJ1bmVfZGlycyArICd3YWYtKiAuL2J1aWxkJyApCisjIyAgICAgICAgcHJ1bmVfZGlycyA9IGFu
dGdsb2IucHJ1bmVfZGlycyArICd3YWYtKiAuL2J1aWxkJykKICMjICAgIGZvciBwYXRoIGluIGNw
cF9zb3VyY2VzOgotIyMgICAgICAgIF9maXhfc291cmNlX2VvbCggcGF0aCwgaXNfZHJ5X3J1biAp
CisjIyAgICAgICAgX2ZpeF9zb3VyY2VfZW9sKHBhdGgsIGlzX2RyeV9ydW4pCiAjIwogIyMKICMj
ZGVmIGRyeV9maXgoY29udGV4dCk6Ci0jIyAgICBfZG9fZml4KCBpc19kcnlfcnVuID0gVHJ1ZSAp
CisjIyAgICBfZG9fZml4KGlzX2RyeV9ydW4gPSBUcnVlKQogIyMKICMjZGVmIGZpeChjb250ZXh0
KToKLSMjICAgIF9kb19maXgoIGlzX2RyeV9ydW4gPSBGYWxzZSApCisjIyAgICBfZG9fZml4KGlz
X2RyeV9ydW4gPSBGYWxzZSkKICMjCiAjI2RlZiBzaHV0ZG93bigpOgogIyMgICAgcGFzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9kZXZ0b29scy9saWNlbnNldXBkYXRlci5weSBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMv
bGljZW5zZXVwZGF0ZXIucHkKaW5kZXggODY2ZWFkYTIyNjFjNzk1YmMxMGRjYzk1ZmY1MmFhN2M5
YWZmNWUzNi4uMzZiZGI1YzA5YjYxYzk4NDA4N2U0MWYzM2M2YTllYzYzYWEwNzM5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9kZXZ0b29scy9saWNlbnNldXBkYXRlci5weQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xz
L2xpY2Vuc2V1cGRhdGVyLnB5CkBAIC0xLDE4ICsxLDE5IEBACiAiIiJVcGRhdGVzIHRoZSBsaWNl
bnNlIHRleHQgaW4gc291cmNlIGZpbGUuCiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp
bnRfZnVuY3Rpb24KIAogIyBBbiBleGlzdGluZyBsaWNlbnNlIGlzIGZvdW5kIGlmIHRoZSBmaWxl
IHN0YXJ0cyB3aXRoIHRoZSBzdHJpbmcgYmVsb3csCiAjIGFuZCBlbmRzIHdpdGggdGhlIGZpcnN0
IGJsYW5rIGxpbmUuCiBMSUNFTlNFX0JFR0lOID0gIi8vIENvcHlyaWdodCAiCiAKLUJSSUVGX0xJ
Q0VOU0UgPSBMSUNFTlNFX0JFR0lOICsgIiIiMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgor
QlJJRUZfTElDRU5TRSA9IExJQ0VOU0VfQkVHSU4gKyAiIiIyMDA3LTIwMTAgQmFwdGlzdGUgTGVw
aWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQg
bGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBp
biB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBj
b3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKICIiIi5yZXBs
YWNlKCdcclxuJywnXG4nKQogCi1kZWYgdXBkYXRlX2xpY2Vuc2UoIHBhdGgsIGRyeV9ydW4sIHNo
b3dfZGlmZiApOgorZGVmIHVwZGF0ZV9saWNlbnNlKHBhdGgsIGRyeV9ydW4sIHNob3dfZGlmZik6
CiAgICAgIiIiVXBkYXRlIHRoZSBsaWNlbnNlIHN0YXRlbWVudCBpbiB0aGUgc3BlY2lmaWVkIGZp
bGUuCiAgICAgUGFyYW1ldGVyczoKICAgICAgIHBhdGg6IHBhdGggb2YgdGhlIEMrKyBzb3VyY2Ug
ZmlsZSB0byB1cGRhdGUuCkBAIC0yMSwyOCArMjIsMjggQEAgZGVmIHVwZGF0ZV9saWNlbnNlKCBw
YXRoLCBkcnlfcnVuLCBzaG93X2RpZmYgKToKICAgICAgIHNob3dfZGlmZjogaWYgVHJ1ZSwgcHJp
bnQgdGhlIHBhdGggb2YgdGhlIGZpbGUgdGhhdCB3b3VsZCBiZSBtb2RpZmllZCwKICAgICAgICAg
ICAgICAgICAgYXMgd2VsbCBhcyB0aGUgY2hhbmdlIG1hZGUgdG8gdGhlIGZpbGUuIAogICAgICIi
IgotICAgIHdpdGggb3BlbiggcGF0aCwgJ3J0JyApIGFzIGZpbjoKKyAgICB3aXRoIG9wZW4ocGF0
aCwgJ3J0JykgYXMgZmluOgogICAgICAgICBvcmlnaW5hbF90ZXh0ID0gZmluLnJlYWQoKS5yZXBs
YWNlKCdcclxuJywnXG4nKQogICAgICAgICBuZXdsaW5lID0gZmluLm5ld2xpbmVzIGFuZCBmaW4u
bmV3bGluZXNbMF0gb3IgJ1xuJwotICAgIGlmIG5vdCBvcmlnaW5hbF90ZXh0LnN0YXJ0c3dpdGgo
IExJQ0VOU0VfQkVHSU4gKToKKyAgICBpZiBub3Qgb3JpZ2luYWxfdGV4dC5zdGFydHN3aXRoKExJ
Q0VOU0VfQkVHSU4pOgogICAgICAgICAjIE5vIGV4aXN0aW5nIGxpY2Vuc2UgZm91bmQgPT4gcHJl
cGVuZCBpdAogICAgICAgICBuZXdfdGV4dCA9IEJSSUVGX0xJQ0VOU0UgKyBvcmlnaW5hbF90ZXh0
CiAgICAgZWxzZToKLSAgICAgICAgbGljZW5zZV9lbmRfaW5kZXggPSBvcmlnaW5hbF90ZXh0Lmlu
ZGV4KCAnXG5cbicgKSAjIHNlYXJjaCBmaXJzdCBibGFuayBsaW5lCisgICAgICAgIGxpY2Vuc2Vf
ZW5kX2luZGV4ID0gb3JpZ2luYWxfdGV4dC5pbmRleCgnXG5cbicpICMgc2VhcmNoIGZpcnN0IGJs
YW5rIGxpbmUKICAgICAgICAgbmV3X3RleHQgPSBCUklFRl9MSUNFTlNFICsgb3JpZ2luYWxfdGV4
dFtsaWNlbnNlX2VuZF9pbmRleCsyOl0KICAgICBpZiBvcmlnaW5hbF90ZXh0ICE9IG5ld190ZXh0
OgogICAgICAgICBpZiBub3QgZHJ5X3J1bjoKLSAgICAgICAgICAgIHdpdGggb3BlbiggcGF0aCwg
J3diJyApIGFzIGZvdXQ6Ci0gICAgICAgICAgICAgICAgZm91dC53cml0ZSggbmV3X3RleHQucmVw
bGFjZSgnXG4nLCBuZXdsaW5lICkgKQotICAgICAgICBwcmludCAnVXBkYXRlZCcsIHBhdGgKKyAg
ICAgICAgICAgIHdpdGggb3BlbihwYXRoLCAnd2InKSBhcyBmb3V0OgorICAgICAgICAgICAgICAg
IGZvdXQud3JpdGUobmV3X3RleHQucmVwbGFjZSgnXG4nLCBuZXdsaW5lKSkKKyAgICAgICAgcHJp
bnQoJ1VwZGF0ZWQnLCBwYXRoKQogICAgICAgICBpZiBzaG93X2RpZmY6CiAgICAgICAgICAgICBp
bXBvcnQgZGlmZmxpYgotICAgICAgICAgICAgcHJpbnQgJ1xuJy5qb2luKCBkaWZmbGliLnVuaWZp
ZWRfZGlmZiggb3JpZ2luYWxfdGV4dC5zcGxpdCgnXG4nKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld190ZXh0LnNwbGl0KCdcbicpICkgKQor
ICAgICAgICAgICAgcHJpbnQoJ1xuJy5qb2luKGRpZmZsaWIudW5pZmllZF9kaWZmKG9yaWdpbmFs
X3RleHQuc3BsaXQoJ1xuJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuZXdfdGV4dC5zcGxpdCgnXG4nKSkpKQogICAgICAgICByZXR1cm4gVHJ1
ZQogICAgIHJldHVybiBGYWxzZQogCi1kZWYgdXBkYXRlX2xpY2Vuc2VfaW5fc291cmNlX2RpcmVj
dG9yaWVzKCBzb3VyY2VfZGlycywgZHJ5X3J1biwgc2hvd19kaWZmICk6CitkZWYgdXBkYXRlX2xp
Y2Vuc2VfaW5fc291cmNlX2RpcmVjdG9yaWVzKHNvdXJjZV9kaXJzLCBkcnlfcnVuLCBzaG93X2Rp
ZmYpOgogICAgICIiIlVwZGF0ZXMgbGljZW5zZSB0ZXh0IGluIEMrKyBzb3VyY2UgZmlsZXMgZm91
bmQgaW4gZGlyZWN0b3J5IHNvdXJjZV9kaXJzLgogICAgIFBhcmFtZXRlcnM6CiAgICAgICBzb3Vy
Y2VfZGlyczogbGlzdCBvZiBkaXJlY3RvcnkgdG8gc2NhbiBmb3IgQysrIHNvdXJjZXMuIERpcmVj
dG9yaWVzIGFyZQpAQCAtNTUsMTEgKzU2LDExIEBAIGRlZiB1cGRhdGVfbGljZW5zZV9pbl9zb3Vy
Y2VfZGlyZWN0b3JpZXMoIHNvdXJjZV9kaXJzLCBkcnlfcnVuLCBzaG93X2RpZmYgKToKICAgICBm
cm9tIGRldnRvb2xzIGltcG9ydCBhbnRnbG9iCiAgICAgcHJ1bmVfZGlycyA9IGFudGdsb2IucHJ1
bmVfZGlycyArICdzY29ucy1sb2NhbCogLi9idWlsZCogLi9saWJzIC4vZGlzdCcKICAgICBmb3Ig
c291cmNlX2RpciBpbiBzb3VyY2VfZGlyczoKLSAgICAgICAgY3BwX3NvdXJjZXMgPSBhbnRnbG9i
Lmdsb2IoIHNvdXJjZV9kaXIsCisgICAgICAgIGNwcF9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKHNv
dXJjZV9kaXIsCiAgICAgICAgICAgICBpbmNsdWRlcyA9ICcnJyoqLyouaCAqKi8qLmNwcCAqKi8q
LmlubCcnJywKLSAgICAgICAgICAgIHBydW5lX2RpcnMgPSBwcnVuZV9kaXJzICkKKyAgICAgICAg
ICAgIHBydW5lX2RpcnMgPSBwcnVuZV9kaXJzKQogICAgICAgICBmb3Igc291cmNlIGluIGNwcF9z
b3VyY2VzOgotICAgICAgICAgICAgdXBkYXRlX2xpY2Vuc2UoIHNvdXJjZSwgZHJ5X3J1biwgc2hv
d19kaWZmICkKKyAgICAgICAgICAgIHVwZGF0ZV9saWNlbnNlKHNvdXJjZSwgZHJ5X3J1biwgc2hv
d19kaWZmKQogCiBkZWYgbWFpbigpOgogICAgIHVzYWdlID0gIiIiJXByb2cgRElSIFtESVIyLi4u
XQpAQCAtODIsOCArODMsOCBAQCBweXRob24gZGV2dG9vbHNcbGljZW5zZXVwZGF0ZXIucHkgaW5j
bHVkZSBzcmMKICAgICAgICAgaGVscD0iIiJPbiB1cGRhdGUsIHNob3cgY2hhbmdlIG1hZGUgdG8g
dGhlIGZpbGUuIiIiKQogICAgIHBhcnNlci5lbmFibGVfaW50ZXJzcGVyc2VkX2FyZ3MoKQogICAg
IG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCi0gICAgdXBkYXRlX2xpY2Vuc2Vf
aW5fc291cmNlX2RpcmVjdG9yaWVzKCBhcmdzLCBvcHRpb25zLmRyeV9ydW4sIG9wdGlvbnMuc2hv
d19kaWZmICkKLSAgICBwcmludCAnRG9uZScKKyAgICB1cGRhdGVfbGljZW5zZV9pbl9zb3VyY2Vf
ZGlyZWN0b3JpZXMoYXJncywgb3B0aW9ucy5kcnlfcnVuLCBvcHRpb25zLnNob3dfZGlmZikKKyAg
ICBwcmludCgnRG9uZScpCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgaW1wb3J0
IHN5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy90YXJiYWxsLnB5IGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29s
cy90YXJiYWxsLnB5CmluZGV4IGNjYmRhMzk0MjU1YjU4MDYxYjJjZDUwODY3MTczMDQxNzVmYmRi
NmQuLjNjMGJhNjVlNzExYzA3MTcyZjU2MmVhYzA5NjBhZjlhYmYyODlmM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvZGV2dG9vbHMvdGFyYmFsbC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL3RhcmJhbGwucHkK
QEAgLTEsNSArMSwxMCBAQAotaW1wb3J0IG9zLnBhdGgKLWltcG9ydCBnemlwCisjIENvcHlyaWdo
dCAyMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0
cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFu
ZAorIyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQorCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNsb3NpbmcKK2ltcG9ydCBvcwogaW1wb3J0
IHRhcmZpbGUKIAogVEFSR1pfREVGQVVMVF9DT01QUkVTU0lPTl9MRVZFTCA9IDkKQEAgLTEzLDQx
ICsxOCwzNSBAQCBkZWYgbWFrZV90YXJiYWxsKHRhcmJhbGxfcGF0aCwgc291cmNlcywgYmFzZV9k
aXIsIHByZWZpeF9kaXI9JycpOgogICAgIHByZWZpeF9kaXI6IGFsbCBmaWxlcyBzdG9yZWQgaW4g
dGhlIHRhcmJhbGwgYmUgc3ViLWRpcmVjdG9yeSBvZiBwcmVmaXhfZGlyLiBTZXQgdG8gJycKICAg
ICAgICAgdG8gbWFrZSB0aGVtIGNoaWxkIG9mIHJvb3QuCiAgICAgIiIiCi0gICAgYmFzZV9kaXIg
PSBvcy5wYXRoLm5vcm1wYXRoKCBvcy5wYXRoLmFic3BhdGgoIGJhc2VfZGlyICkgKQotICAgIGRl
ZiBhcmNoaXZlX25hbWUoIHBhdGggKToKKyAgICBiYXNlX2RpciA9IG9zLnBhdGgubm9ybXBhdGgo
b3MucGF0aC5hYnNwYXRoKGJhc2VfZGlyKSkKKyAgICBkZWYgYXJjaGl2ZV9uYW1lKHBhdGgpOgog
ICAgICAgICAiIiJNYWtlcyBwYXRoIHJlbGF0aXZlIHRvIGJhc2VfZGlyLiIiIgotICAgICAgICBw
YXRoID0gb3MucGF0aC5ub3JtcGF0aCggb3MucGF0aC5hYnNwYXRoKCBwYXRoICkgKQotICAgICAg
ICBjb21tb25fcGF0aCA9IG9zLnBhdGguY29tbW9ucHJlZml4KCAoYmFzZV9kaXIsIHBhdGgpICkK
KyAgICAgICAgcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKHBhdGgpKQor
ICAgICAgICBjb21tb25fcGF0aCA9IG9zLnBhdGguY29tbW9ucHJlZml4KChiYXNlX2RpciwgcGF0
aCkpCiAgICAgICAgIGFyY2hpdmVfbmFtZSA9IHBhdGhbbGVuKGNvbW1vbl9wYXRoKTpdCi0gICAg
ICAgIGlmIG9zLnBhdGguaXNhYnMoIGFyY2hpdmVfbmFtZSApOgorICAgICAgICBpZiBvcy5wYXRo
LmlzYWJzKGFyY2hpdmVfbmFtZSk6CiAgICAgICAgICAgICBhcmNoaXZlX25hbWUgPSBhcmNoaXZl
X25hbWVbMTpdCi0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oIHByZWZpeF9kaXIsIGFyY2hp
dmVfbmFtZSApCisgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ocHJlZml4X2RpciwgYXJjaGl2
ZV9uYW1lKQogICAgIGRlZiB2aXNpdCh0YXIsIGRpcm5hbWUsIG5hbWVzKToKICAgICAgICAgZm9y
IG5hbWUgaW4gbmFtZXM6CiAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpcm5hbWUs
IG5hbWUpCiAgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShwYXRoKToKICAgICAgICAgICAg
ICAgICBwYXRoX2luX3RhciA9IGFyY2hpdmVfbmFtZShwYXRoKQotICAgICAgICAgICAgICAgIHRh
ci5hZGQocGF0aCwgcGF0aF9pbl90YXIgKQorICAgICAgICAgICAgICAgIHRhci5hZGQocGF0aCwg
cGF0aF9pbl90YXIpCiAgICAgY29tcHJlc3Npb24gPSBUQVJHWl9ERUZBVUxUX0NPTVBSRVNTSU9O
X0xFVkVMCi0gICAgdGFyID0gdGFyZmlsZS5UYXJGaWxlLmd6b3BlbiggdGFyYmFsbF9wYXRoLCAn
dycsIGNvbXByZXNzbGV2ZWw9Y29tcHJlc3Npb24gKQotICAgIHRyeToKKyAgICB3aXRoIGNsb3Np
bmcodGFyZmlsZS5UYXJGaWxlLm9wZW4odGFyYmFsbF9wYXRoLCAndzpneicsCisgICAgICAgICAg
ICBjb21wcmVzc2xldmVsPWNvbXByZXNzaW9uKSkgYXMgdGFyOgogICAgICAgICBmb3Igc291cmNl
IGluIHNvdXJjZXM6CiAgICAgICAgICAgICBzb3VyY2VfcGF0aCA9IHNvdXJjZQotICAgICAgICAg
ICAgaWYgb3MucGF0aC5pc2Rpciggc291cmNlICk6Ci0gICAgICAgICAgICAgICAgb3MucGF0aC53
YWxrKHNvdXJjZV9wYXRoLCB2aXNpdCwgdGFyKQorICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rp
cihzb3VyY2UpOgorICAgICAgICAgICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5h
bWVzIGluIG9zLndhbGsoc291cmNlX3BhdGgpOgorICAgICAgICAgICAgICAgICAgICB2aXNpdCh0
YXIsIGRpcnBhdGgsIGZpbGVuYW1lcykKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
ICAgcGF0aF9pbl90YXIgPSBhcmNoaXZlX25hbWUoc291cmNlX3BhdGgpCi0gICAgICAgICAgICAg
ICAgdGFyLmFkZChzb3VyY2VfcGF0aCwgcGF0aF9pbl90YXIgKSAgICAgICMgZmlsZW5hbWUsIGFy
Y25hbWUKLSAgICBmaW5hbGx5OgotICAgICAgICB0YXIuY2xvc2UoKQorICAgICAgICAgICAgICAg
IHRhci5hZGQoc291cmNlX3BhdGgsIHBhdGhfaW5fdGFyKSAgICAgICMgZmlsZW5hbWUsIGFyY25h
bWUKIAotZGVmIGRlY29tcHJlc3MoIHRhcmJhbGxfcGF0aCwgYmFzZV9kaXIgKToKK2RlZiBkZWNv
bXByZXNzKHRhcmJhbGxfcGF0aCwgYmFzZV9kaXIpOgogICAgICIiIkRlY29tcHJlc3MgdGhlIGd6
aXBwZWQgdGFyYmFsbCBpbnRvIGRpcmVjdG9yeSBiYXNlX2Rpci4KICAgICAiIiIKLSAgICAjICEh
ISBUaGlzIGNsYXNzIG1ldGhvZCBpcyBub3QgZG9jdW1lbnRlZCBpbiB0aGUgb25saW5lIGRvYwot
ICAgICMgbm9yIGlzIGJ6Mm9wZW4hCi0gICAgdGFyID0gdGFyZmlsZS5UYXJGaWxlLmd6b3Blbih0
YXJiYWxsX3BhdGgsIG1vZGU9J3InKQotICAgIHRyeToKLSAgICAgICAgdGFyLmV4dHJhY3RhbGwo
IGJhc2VfZGlyICkKLSAgICBmaW5hbGx5OgotICAgICAgICB0YXIuY2xvc2UoKQorICAgIHdpdGgg
Y2xvc2luZyh0YXJmaWxlLlRhckZpbGUub3Blbih0YXJiYWxsX3BhdGgpKSBhcyB0YXI6CisgICAg
ICAgIHRhci5leHRyYWN0YWxsKGJhc2VfZGlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2MvZG94eWZp
bGUuaW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL2RvYy9kb3h5ZmlsZS5pbgppbmRleCA0ODg2MWQyMzg1ZjdjYmIzMmZmMTkx
OTViMGEzNDdiYzM1ZWQyMzFiLi5kY2Y1MTRlYTM0ZGM2NDUyNWZkMTU0NDU2ZTI1NDJmZjk4Njhh
NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9kb3h5ZmlsZS5pbgorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9kb3h5
ZmlsZS5pbgpAQCAtMSw5MCArMSwxMTIgQEAKLSMgRG94eWZpbGUgMS41LjkKKyMgRG94eWZpbGUg
MS44LjUKIAogIyBUaGlzIGZpbGUgZGVzY3JpYmVzIHRoZSBzZXR0aW5ncyB0byBiZSB1c2VkIGJ5
IHRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbQotIyBkb3h5Z2VuICh3d3cuZG94eWdlbi5vcmcpIGZv
ciBhIHByb2plY3QKKyMgZG94eWdlbiAod3d3LmRveHlnZW4ub3JnKSBmb3IgYSBwcm9qZWN0Lgog
IwotIyBBbGwgdGV4dCBhZnRlciBhIGhhc2ggKCMpIGlzIGNvbnNpZGVyZWQgYSBjb21tZW50IGFu
ZCB3aWxsIGJlIGlnbm9yZWQKKyMgQWxsIHRleHQgYWZ0ZXIgYSBkb3VibGUgaGFzaCAoIyMpIGlz
IGNvbnNpZGVyZWQgYSBjb21tZW50IGFuZCBpcyBwbGFjZWQgaW4KKyMgZnJvbnQgb2YgdGhlIFRB
RyBpdCBpcyBwcmVjZWRpbmcuCisjCisjIEFsbCB0ZXh0IGFmdGVyIGEgc2luZ2xlIGhhc2ggKCMp
IGlzIGNvbnNpZGVyZWQgYSBjb21tZW50IGFuZCB3aWxsIGJlIGlnbm9yZWQuCiAjIFRoZSBmb3Jt
YXQgaXM6Ci0jICAgICAgIFRBRyA9IHZhbHVlIFt2YWx1ZSwgLi4uXQotIyBGb3IgbGlzdHMgaXRl
bXMgY2FuIGFsc28gYmUgYXBwZW5kZWQgdXNpbmc6Ci0jICAgICAgIFRBRyArPSB2YWx1ZSBbdmFs
dWUsIC4uLl0KLSMgVmFsdWVzIHRoYXQgY29udGFpbiBzcGFjZXMgc2hvdWxkIGJlIHBsYWNlZCBi
ZXR3ZWVuIHF1b3RlcyAoIiAiKQorIyBUQUcgPSB2YWx1ZSBbdmFsdWUsIC4uLl0KKyMgRm9yIGxp
c3RzLCBpdGVtcyBjYW4gYWxzbyBiZSBhcHBlbmRlZCB1c2luZzoKKyMgVEFHICs9IHZhbHVlIFt2
YWx1ZSwgLi4uXQorIyBWYWx1ZXMgdGhhdCBjb250YWluIHNwYWNlcyBzaG91bGQgYmUgcGxhY2Vk
IGJldHdlZW4gcXVvdGVzIChcIiBcIikuCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgUHJvamVj
dCByZWxhdGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0j
IFRoaXMgdGFnIHNwZWNpZmllcyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsIGNoYXJhY3RlcnMg
aW4gdGhlIGNvbmZpZyBmaWxlIAotIyB0aGF0IGZvbGxvdy4gVGhlIGRlZmF1bHQgaXMgVVRGLTgg
d2hpY2ggaXMgYWxzbyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsIAotIyB0ZXh0IGJlZm9yZSB0
aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGlzIHRhZy4gRG94eWdlbiB1c2VzIGxpYmljb252IChv
ciB0aGUgCi0jIGljb252IGJ1aWx0IGludG8gbGliYykgZm9yIHRoZSB0cmFuc2NvZGluZy4gU2Vl
IAotIyBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliaWNvbnYgZm9yIHRoZSBsaXN0IG9m
IHBvc3NpYmxlIGVuY29kaW5ncy4KKyMgVGhpcyB0YWcgc3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1
c2VkIGZvciBhbGwgY2hhcmFjdGVycyBpbiB0aGUgY29uZmlnIGZpbGUKKyMgdGhhdCBmb2xsb3cu
IFRoZSBkZWZhdWx0IGlzIFVURi04IHdoaWNoIGlzIGFsc28gdGhlIGVuY29kaW5nIHVzZWQgZm9y
IGFsbCB0ZXh0CisjIGJlZm9yZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGlzIHRhZy4gRG94
eWdlbiB1c2VzIGxpYmljb252IChvciB0aGUgaWNvbnYKKyMgYnVpbHQgaW50byBsaWJjKSBmb3Ig
dGhlIHRyYW5zY29kaW5nLiBTZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252
CisjIGZvciB0aGUgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBVVEYtOC4KIAogRE9YWUZJTEVfRU5DT0RJTkcgICAgICA9IFVURi04CiAKLSMgVGhl
IFBST0pFQ1RfTkFNRSB0YWcgaXMgYSBzaW5nbGUgd29yZCAob3IgYSBzZXF1ZW5jZSBvZiB3b3Jk
cyBzdXJyb3VuZGVkIAotIyBieSBxdW90ZXMpIHRoYXQgc2hvdWxkIGlkZW50aWZ5IHRoZSBwcm9q
ZWN0LgorIyBUaGUgUFJPSkVDVF9OQU1FIHRhZyBpcyBhIHNpbmdsZSB3b3JkIChvciBhIHNlcXVl
bmNlIG9mIHdvcmRzIHN1cnJvdW5kZWQgYnkKKyMgZG91YmxlLXF1b3RlcywgdW5sZXNzIHlvdSBh
cmUgdXNpbmcgRG94eXdpemFyZCkgdGhhdCBzaG91bGQgaWRlbnRpZnkgdGhlCisjIHByb2plY3Qg
Zm9yIHdoaWNoIHRoZSBkb2N1bWVudGF0aW9uIGlzIGdlbmVyYXRlZC4gVGhpcyBuYW1lIGlzIHVz
ZWQgaW4gdGhlCisjIHRpdGxlIG9mIG1vc3QgZ2VuZXJhdGVkIHBhZ2VzIGFuZCBpbiBhIGZldyBv
dGhlciBwbGFjZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBNeSBQcm9qZWN0LgogCiBQUk9K
RUNUX05BTUUgICAgICAgICAgID0gIkpzb25DcHAiCiAKLSMgVGhlIFBST0pFQ1RfTlVNQkVSIHRh
ZyBjYW4gYmUgdXNlZCB0byBlbnRlciBhIHByb2plY3Qgb3IgcmV2aXNpb24gbnVtYmVyLiAKLSMg
VGhpcyBjb3VsZCBiZSBoYW5keSBmb3IgYXJjaGl2aW5nIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRh
dGlvbiBvciAKLSMgaWYgc29tZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIGlzIHVzZWQuCisjIFRo
ZSBQUk9KRUNUX05VTUJFUiB0YWcgY2FuIGJlIHVzZWQgdG8gZW50ZXIgYSBwcm9qZWN0IG9yIHJl
dmlzaW9uIG51bWJlci4gVGhpcworIyBjb3VsZCBiZSBoYW5keSBmb3IgYXJjaGl2aW5nIHRoZSBn
ZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpZiBzb21lIHZlcnNpb24KKyMgY29udHJvbCBzeXN0
ZW0gaXMgdXNlZC4KIAogUFJPSkVDVF9OVU1CRVIgICAgICAgICA9ICVKU09OQ1BQX1ZFUlNJT04l
CiAKLSMgVGhlIE9VVFBVVF9ESVJFQ1RPUlkgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgKHJl
bGF0aXZlIG9yIGFic29sdXRlKSAKLSMgYmFzZSBwYXRoIHdoZXJlIHRoZSBnZW5lcmF0ZWQgZG9j
dW1lbnRhdGlvbiB3aWxsIGJlIHB1dC4gCi0jIElmIGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVk
LCBpdCB3aWxsIGJlIHJlbGF0aXZlIHRvIHRoZSBsb2NhdGlvbiAKLSMgd2hlcmUgZG94eWdlbiB3
YXMgc3RhcnRlZC4gSWYgbGVmdCBibGFuayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSB1
c2VkLgorIyBVc2luZyB0aGUgUFJPSkVDVF9CUklFRiB0YWcgb25lIGNhbiBwcm92aWRlIGFuIG9w
dGlvbmFsIG9uZSBsaW5lIGRlc2NyaXB0aW9uCisjIGZvciBhIHByb2plY3QgdGhhdCBhcHBlYXJz
IGF0IHRoZSB0b3Agb2YgZWFjaCBwYWdlIGFuZCBzaG91bGQgZ2l2ZSB2aWV3ZXIgYQorIyBxdWlj
ayBpZGVhIGFib3V0IHRoZSBwdXJwb3NlIG9mIHRoZSBwcm9qZWN0LiBLZWVwIHRoZSBkZXNjcmlw
dGlvbiBzaG9ydC4KKworUFJPSkVDVF9CUklFRiAgICAgICAgICA9CisKKyMgV2l0aCB0aGUgUFJP
SkVDVF9MT0dPIHRhZyBvbmUgY2FuIHNwZWNpZnkgYW4gbG9nbyBvciBpY29uIHRoYXQgaXMgaW5j
bHVkZWQgaW4KKyMgdGhlIGRvY3VtZW50YXRpb24uIFRoZSBtYXhpbXVtIGhlaWdodCBvZiB0aGUg
bG9nbyBzaG91bGQgbm90IGV4Y2VlZCA1NSBwaXhlbHMKKyMgYW5kIHRoZSBtYXhpbXVtIHdpZHRo
IHNob3VsZCBub3QgZXhjZWVkIDIwMCBwaXhlbHMuIERveHlnZW4gd2lsbCBjb3B5IHRoZSBsb2dv
CisjIHRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5LgorCitQUk9KRUNUX0xPR08gICAgICAgICAgID0K
KworIyBUaGUgT1VUUFVUX0RJUkVDVE9SWSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAocmVs
YXRpdmUgb3IgYWJzb2x1dGUpIHBhdGgKKyMgaW50byB3aGljaCB0aGUgZ2VuZXJhdGVkIGRvY3Vt
ZW50YXRpb24gd2lsbCBiZSB3cml0dGVuLiBJZiBhIHJlbGF0aXZlIHBhdGggaXMKKyMgZW50ZXJl
ZCwgaXQgd2lsbCBiZSByZWxhdGl2ZSB0byB0aGUgbG9jYXRpb24gd2hlcmUgZG94eWdlbiB3YXMg
c3RhcnRlZC4gSWYKKyMgbGVmdCBibGFuayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSB1
c2VkLgogCiBPVVRQVVRfRElSRUNUT1JZICAgICAgID0gJURPQ19UT1BESVIlCiAKLSMgSWYgdGhl
IENSRUFURV9TVUJESVJTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBjcmVh
dGUgCi0jIDQwOTYgc3ViLWRpcmVjdG9yaWVzIChpbiAyIGxldmVscykgdW5kZXIgdGhlIG91dHB1
dCBkaXJlY3Rvcnkgb2YgZWFjaCBvdXRwdXQgCi0jIGZvcm1hdCBhbmQgd2lsbCBkaXN0cmlidXRl
IHRoZSBnZW5lcmF0ZWQgZmlsZXMgb3ZlciB0aGVzZSBkaXJlY3Rvcmllcy4gCi0jIEVuYWJsaW5n
IHRoaXMgb3B0aW9uIGNhbiBiZSB1c2VmdWwgd2hlbiBmZWVkaW5nIGRveHlnZW4gYSBodWdlIGFt
b3VudCBvZiAKLSMgc291cmNlIGZpbGVzLCB3aGVyZSBwdXR0aW5nIGFsbCBnZW5lcmF0ZWQgZmls
ZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHdvdWxkIAotIyBvdGhlcndpc2UgY2F1c2UgcGVyZm9y
bWFuY2UgcHJvYmxlbXMgZm9yIHRoZSBmaWxlIHN5c3RlbS4KKyMgSWYgdGhlIENSRUFURV9TVUJE
SVJTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBjcmVhdGUgNDA5NiBzdWIt
CisjIGRpcmVjdG9yaWVzIChpbiAyIGxldmVscykgdW5kZXIgdGhlIG91dHB1dCBkaXJlY3Rvcnkg
b2YgZWFjaCBvdXRwdXQgZm9ybWF0IGFuZAorIyB3aWxsIGRpc3RyaWJ1dGUgdGhlIGdlbmVyYXRl
ZCBmaWxlcyBvdmVyIHRoZXNlIGRpcmVjdG9yaWVzLiBFbmFibGluZyB0aGlzCisjIG9wdGlvbiBj
YW4gYmUgdXNlZnVsIHdoZW4gZmVlZGluZyBkb3h5Z2VuIGEgaHVnZSBhbW91bnQgb2Ygc291cmNl
IGZpbGVzLCB3aGVyZQorIyBwdXR0aW5nIGFsbCBnZW5lcmF0ZWQgZmlsZXMgaW4gdGhlIHNhbWUg
ZGlyZWN0b3J5IHdvdWxkIG90aGVyd2lzZSBjYXVzZXMKKyMgcGVyZm9ybWFuY2UgcHJvYmxlbXMg
Zm9yIHRoZSBmaWxlIHN5c3RlbS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBDUkVB
VEVfU1VCRElSUyAgICAgICAgID0gTk8KIAotIyBUaGUgT1VUUFVUX0xBTkdVQUdFIHRhZyBpcyB1
c2VkIHRvIHNwZWNpZnkgdGhlIGxhbmd1YWdlIGluIHdoaWNoIGFsbCAKLSMgZG9jdW1lbnRhdGlv
biBnZW5lcmF0ZWQgYnkgZG94eWdlbiBpcyB3cml0dGVuLiBEb3h5Z2VuIHdpbGwgdXNlIHRoaXMg
Ci0jIGluZm9ybWF0aW9uIHRvIGdlbmVyYXRlIGFsbCBjb25zdGFudCBvdXRwdXQgaW4gdGhlIHBy
b3BlciBsYW5ndWFnZS4gCi0jIFRoZSBkZWZhdWx0IGxhbmd1YWdlIGlzIEVuZ2xpc2gsIG90aGVy
IHN1cHBvcnRlZCBsYW5ndWFnZXMgYXJlOiAKLSMgQWZyaWthYW5zLCBBcmFiaWMsIEJyYXppbGlh
biwgQ2F0YWxhbiwgQ2hpbmVzZSwgQ2hpbmVzZS1UcmFkaXRpb25hbCwgCi0jIENyb2F0aWFuLCBD
emVjaCwgRGFuaXNoLCBEdXRjaCwgRXNwZXJhbnRvLCBGYXJzaSwgRmlubmlzaCwgRnJlbmNoLCBH
ZXJtYW4sIAotIyBHcmVlaywgSHVuZ2FyaWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2Ut
ZW4gKEphcGFuZXNlIHdpdGggRW5nbGlzaCAKLSMgbWVzc2FnZXMpLCBLb3JlYW4sIEtvcmVhbi1l
biwgTGl0aHVhbmlhbiwgTm9yd2VnaWFuLCBNYWNlZG9uaWFuLCBQZXJzaWFuLCAKLSMgUG9saXNo
LCBQb3J0dWd1ZXNlLCBSb21hbmlhbiwgUnVzc2lhbiwgU2VyYmlhbiwgU2VyYmlhbi1DeXJpbGlj
LCBTbG92YWssIAotIyBTbG92ZW5lLCBTcGFuaXNoLCBTd2VkaXNoLCBVa3JhaW5pYW4sIGFuZCBW
aWV0bmFtZXNlLgorIyBUaGUgT1VUUFVUX0xBTkdVQUdFIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkg
dGhlIGxhbmd1YWdlIGluIHdoaWNoIGFsbAorIyBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSBk
b3h5Z2VuIGlzIHdyaXR0ZW4uIERveHlnZW4gd2lsbCB1c2UgdGhpcworIyBpbmZvcm1hdGlvbiB0
byBnZW5lcmF0ZSBhbGwgY29uc3RhbnQgb3V0cHV0IGluIHRoZSBwcm9wZXIgbGFuZ3VhZ2UuCisj
IFBvc3NpYmxlIHZhbHVlcyBhcmU6IEFmcmlrYWFucywgQXJhYmljLCBCcmF6aWxpYW4sIENhdGFs
YW4sIENoaW5lc2UsIENoaW5lc2UtCisjIFRyYWRpdGlvbmFsLCBDcm9hdGlhbiwgQ3plY2gsIERh
bmlzaCwgRHV0Y2gsIEVuZ2xpc2gsIEVzcGVyYW50bywgRmFyc2ksCisjIEZpbm5pc2gsIEZyZW5j
aCwgR2VybWFuLCBHcmVlaywgSHVuZ2FyaWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2Ut
ZW4sCisjIEtvcmVhbiwgS29yZWFuLWVuLCBMYXR2aWFuLCBOb3J3ZWdpYW4sIE1hY2Vkb25pYW4s
IFBlcnNpYW4sIFBvbGlzaCwKKyMgUG9ydHVndWVzZSwgUm9tYW5pYW4sIFJ1c3NpYW4sIFNlcmJp
YW4sIFNsb3ZhaywgU2xvdmVuZSwgU3BhbmlzaCwgU3dlZGlzaCwKKyMgVHVya2lzaCwgVWtyYWlu
aWFuIGFuZCBWaWV0bmFtZXNlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogRW5nbGlzaC4KIAog
T1VUUFVUX0xBTkdVQUdFICAgICAgICA9IEVuZ2xpc2gKIAotIyBJZiB0aGUgQlJJRUZfTUVNQkVS
X0RFU0MgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGlu
Y2x1ZGUgYnJpZWYgbWVtYmVyIGRlc2NyaXB0aW9ucyBhZnRlciB0aGUgbWVtYmVycyB0aGF0IGFy
ZSBsaXN0ZWQgaW4gCi0jIHRoZSBmaWxlIGFuZCBjbGFzcyBkb2N1bWVudGF0aW9uIChzaW1pbGFy
IHRvIEphdmFEb2MpLiAKLSMgU2V0IHRvIE5PIHRvIGRpc2FibGUgdGhpcy4KKyMgSWYgdGhlIEJS
SUVGX01FTUJFUl9ERVNDIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBpbmNsdWRlIGJy
aWVmIG1lbWJlcgorIyBkZXNjcmlwdGlvbnMgYWZ0ZXIgdGhlIG1lbWJlcnMgdGhhdCBhcmUgbGlz
dGVkIGluIHRoZSBmaWxlIGFuZCBjbGFzcworIyBkb2N1bWVudGF0aW9uIChzaW1pbGFyIHRvIEph
dmFkb2MpLiBTZXQgdG8gTk8gdG8gZGlzYWJsZSB0aGlzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgogCiBCUklFRl9NRU1CRVJfREVTQyAgICAgID0gWUVTCiAKLSMgSWYgdGhlIFJFUEVB
VF9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIERveHlnZW4gd2lsbCBwcmVw
ZW5kIAotIyB0aGUgYnJpZWYgZGVzY3JpcHRpb24gb2YgYSBtZW1iZXIgb3IgZnVuY3Rpb24gYmVm
b3JlIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi4gCi0jIE5vdGU6IGlmIGJvdGggSElERV9VTkRP
Q19NRU1CRVJTIGFuZCBCUklFRl9NRU1CRVJfREVTQyBhcmUgc2V0IHRvIE5PLCB0aGUgCisjIElm
IHRoZSBSRVBFQVRfQlJJRUYgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIHByZXBlbmQg
dGhlIGJyaWVmCisjIGRlc2NyaXB0aW9uIG9mIGEgbWVtYmVyIG9yIGZ1bmN0aW9uIGJlZm9yZSB0
aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24KKyMKKyMgTm90ZTogSWYgYm90aCBISURFX1VORE9DX01F
TUJFUlMgYW5kIEJSSUVGX01FTUJFUl9ERVNDIGFyZSBzZXQgdG8gTk8sIHRoZQogIyBicmllZiBk
ZXNjcmlwdGlvbnMgd2lsbCBiZSBjb21wbGV0ZWx5IHN1cHByZXNzZWQuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCiAKIFJFUEVBVF9CUklFRiAgICAgICAgICAgPSBZRVMKIAotIyBUaGlz
IHRhZyBpbXBsZW1lbnRzIGEgcXVhc2ktaW50ZWxsaWdlbnQgYnJpZWYgZGVzY3JpcHRpb24gYWJi
cmV2aWF0b3IgCi0jIHRoYXQgaXMgdXNlZCB0byBmb3JtIHRoZSB0ZXh0IGluIHZhcmlvdXMgbGlz
dGluZ3MuIEVhY2ggc3RyaW5nIAotIyBpbiB0aGlzIGxpc3QsIGlmIGZvdW5kIGFzIHRoZSBsZWFk
aW5nIHRleHQgb2YgdGhlIGJyaWVmIGRlc2NyaXB0aW9uLCB3aWxsIGJlIAotIyBzdHJpcHBlZCBm
cm9tIHRoZSB0ZXh0IGFuZCB0aGUgcmVzdWx0IGFmdGVyIHByb2Nlc3NpbmcgdGhlIHdob2xlIGxp
c3QsIGlzIAotIyB1c2VkIGFzIHRoZSBhbm5vdGF0ZWQgdGV4dC4gT3RoZXJ3aXNlLCB0aGUgYnJp
ZWYgZGVzY3JpcHRpb24gaXMgdXNlZCBhcy1pcy4gCi0jIElmIGxlZnQgYmxhbmssIHRoZSBmb2xs
b3dpbmcgdmFsdWVzIGFyZSB1c2VkICgiJG5hbWUiIGlzIGF1dG9tYXRpY2FsbHkgCi0jIHJlcGxh
Y2VkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGVudGl0eSk6ICJUaGUgJG5hbWUgY2xhc3MiICJUaGUg
JG5hbWUgd2lkZ2V0IiAKLSMgIlRoZSAkbmFtZSBmaWxlIiAiaXMiICJwcm92aWRlcyIgInNwZWNp
ZmllcyIgImNvbnRhaW5zIiAKLSMgInJlcHJlc2VudHMiICJhIiAiYW4iICJ0aGUiCisjIFRoaXMg
dGFnIGltcGxlbWVudHMgYSBxdWFzaS1pbnRlbGxpZ2VudCBicmllZiBkZXNjcmlwdGlvbiBhYmJy
ZXZpYXRvciB0aGF0IGlzCisjIHVzZWQgdG8gZm9ybSB0aGUgdGV4dCBpbiB2YXJpb3VzIGxpc3Rp
bmdzLiBFYWNoIHN0cmluZyBpbiB0aGlzIGxpc3QsIGlmIGZvdW5kCisjIGFzIHRoZSBsZWFkaW5n
IHRleHQgb2YgdGhlIGJyaWVmIGRlc2NyaXB0aW9uLCB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhl
IHRleHQKKyMgYW5kIHRoZSByZXN1bHQsIGFmdGVyIHByb2Nlc3NpbmcgdGhlIHdob2xlIGxpc3Qs
IGlzIHVzZWQgYXMgdGhlIGFubm90YXRlZAorIyB0ZXh0LiBPdGhlcndpc2UsIHRoZSBicmllZiBk
ZXNjcmlwdGlvbiBpcyB1c2VkIGFzLWlzLiBJZiBsZWZ0IGJsYW5rLCB0aGUKKyMgZm9sbG93aW5n
IHZhbHVlcyBhcmUgdXNlZCAoJG5hbWUgaXMgYXV0b21hdGljYWxseSByZXBsYWNlZCB3aXRoIHRo
ZSBuYW1lIG9mCisjIHRoZSBlbnRpdHkpOlRoZSAkbmFtZSBjbGFzcywgVGhlICRuYW1lIHdpZGdl
dCwgVGhlICRuYW1lIGZpbGUsIGlzLCBwcm92aWRlcywKKyMgc3BlY2lmaWVzLCBjb250YWlucywg
cmVwcmVzZW50cywgYSwgYW4gYW5kIHRoZS4KIAogQUJCUkVWSUFURV9CUklFRiAgICAgICA9ICJU
aGUgJG5hbWUgY2xhc3MiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlICRuYW1lIHdp
ZGdldCIgXApAQCAtOTgsMTQzNyArMTIwLDIxODMgQEAgQUJCUkVWSUFURV9CUklFRiAgICAgICA9
ICJUaGUgJG5hbWUgY2xhc3MiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBcCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhlCiAKLSMgSWYgdGhlIEFMV0FZU19ERVRBSUxFRF9TRUMg
YW5kIFJFUEVBVF9CUklFRiB0YWdzIGFyZSBib3RoIHNldCB0byBZRVMgdGhlbiAKLSMgRG94eWdl
biB3aWxsIGdlbmVyYXRlIGEgZGV0YWlsZWQgc2VjdGlvbiBldmVuIGlmIHRoZXJlIGlzIG9ubHkg
YSBicmllZiAKKyMgSWYgdGhlIEFMV0FZU19ERVRBSUxFRF9TRUMgYW5kIFJFUEVBVF9CUklFRiB0
YWdzIGFyZSBib3RoIHNldCB0byBZRVMgdGhlbgorIyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBk
ZXRhaWxlZCBzZWN0aW9uIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBhIGJyaWVmCiAjIGRlc2NyaXB0
aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEFMV0FZU19ERVRBSUxFRF9TRUMg
ICAgPSBOTwogCi0jIElmIHRoZSBJTkxJTkVfSU5IRVJJVEVEX01FTUIgdGFnIGlzIHNldCB0byBZ
RVMsIGRveHlnZW4gd2lsbCBzaG93IGFsbCAKLSMgaW5oZXJpdGVkIG1lbWJlcnMgb2YgYSBjbGFz
cyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGF0IGNsYXNzIGFzIGlmIHRob3NlIAotIyBtZW1i
ZXJzIHdlcmUgb3JkaW5hcnkgY2xhc3MgbWVtYmVycy4gQ29uc3RydWN0b3JzLCBkZXN0cnVjdG9y
cyBhbmQgYXNzaWdubWVudCAKKyMgSWYgdGhlIElOTElORV9JTkhFUklURURfTUVNQiB0YWcgaXMg
c2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIHNob3cgYWxsCisjIGluaGVyaXRlZCBtZW1iZXJzIG9m
IGEgY2xhc3MgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhhdCBjbGFzcyBhcyBpZiB0aG9zZQor
IyBtZW1iZXJzIHdlcmUgb3JkaW5hcnkgY2xhc3MgbWVtYmVycy4gQ29uc3RydWN0b3JzLCBkZXN0
cnVjdG9ycyBhbmQgYXNzaWdubWVudAogIyBvcGVyYXRvcnMgb2YgdGhlIGJhc2UgY2xhc3NlcyB3
aWxsIG5vdCBiZSBzaG93bi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBJTkxJTkVf
SU5IRVJJVEVEX01FTUIgID0gTk8KIAotIyBJZiB0aGUgRlVMTF9QQVRIX05BTUVTIHRhZyBpcyBz
ZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIHByZXBlbmQgdGhlIGZ1bGwgCi0jIHBhdGggYmVm
b3JlIGZpbGVzIG5hbWUgaW4gdGhlIGZpbGUgbGlzdCBhbmQgaW4gdGhlIGhlYWRlciBmaWxlcy4g
SWYgc2V0IAotIyB0byBOTyB0aGUgc2hvcnRlc3QgcGF0aCB0aGF0IG1ha2VzIHRoZSBmaWxlIG5h
bWUgdW5pcXVlIHdpbGwgYmUgdXNlZC4KKyMgSWYgdGhlIEZVTExfUEFUSF9OQU1FUyB0YWcgaXMg
c2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgcHJlcGVuZCB0aGUgZnVsbCBwYXRoCisjIGJlZm9yZSBm
aWxlcyBuYW1lIGluIHRoZSBmaWxlIGxpc3QgYW5kIGluIHRoZSBoZWFkZXIgZmlsZXMuIElmIHNl
dCB0byBOTyB0aGUKKyMgc2hvcnRlc3QgcGF0aCB0aGF0IG1ha2VzIHRoZSBmaWxlIG5hbWUgdW5p
cXVlIHdpbGwgYmUgdXNlZAorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBGVUxMX1BB
VEhfTkFNRVMgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIEZVTExfUEFUSF9OQU1FUyB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIHRoZSBTVFJJUF9GUk9NX1BBVEggdGFnIAotIyBjYW4gYmUgdXNlZCB0
byBzdHJpcCBhIHVzZXItZGVmaW5lZCBwYXJ0IG9mIHRoZSBwYXRoLiBTdHJpcHBpbmcgaXMgCi0j
IG9ubHkgZG9uZSBpZiBvbmUgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmdzIG1hdGNoZXMgdGhlIGxl
ZnQtaGFuZCBwYXJ0IG9mIAotIyB0aGUgcGF0aC4gVGhlIHRhZyBjYW4gYmUgdXNlZCB0byBzaG93
IHJlbGF0aXZlIHBhdGhzIGluIHRoZSBmaWxlIGxpc3QuIAotIyBJZiBsZWZ0IGJsYW5rIHRoZSBk
aXJlY3RvcnkgZnJvbSB3aGljaCBkb3h5Z2VuIGlzIHJ1biBpcyB1c2VkIGFzIHRoZSAKLSMgcGF0
aCB0byBzdHJpcC4KKyMgVGhlIFNUUklQX0ZST01fUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3Ry
aXAgYSB1c2VyLWRlZmluZWQgcGFydCBvZiB0aGUgcGF0aC4KKyMgU3RyaXBwaW5nIGlzIG9ubHkg
ZG9uZSBpZiBvbmUgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmdzIG1hdGNoZXMgdGhlIGxlZnQtaGFu
ZAorIyBwYXJ0IG9mIHRoZSBwYXRoLiBUaGUgdGFnIGNhbiBiZSB1c2VkIHRvIHNob3cgcmVsYXRp
dmUgcGF0aHMgaW4gdGhlIGZpbGUgbGlzdC4KKyMgSWYgbGVmdCBibGFuayB0aGUgZGlyZWN0b3J5
IGZyb20gd2hpY2ggZG94eWdlbiBpcyBydW4gaXMgdXNlZCBhcyB0aGUgcGF0aCB0bworIyBzdHJp
cC4KKyMKKyMgTm90ZSB0aGF0IHlvdSBjYW4gc3BlY2lmeSBhYnNvbHV0ZSBwYXRocyBoZXJlLCBi
dXQgYWxzbyByZWxhdGl2ZSBwYXRocywgd2hpY2gKKyMgd2lsbCBiZSByZWxhdGl2ZSBmcm9tIHRo
ZSBkaXJlY3Rvcnkgd2hlcmUgZG94eWdlbiBpcyBzdGFydGVkLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgRlVMTF9QQVRIX05BTUVTIGlzIHNldCB0byBZRVMuCiAKIFNUUklQX0ZS
T01fUEFUSCAgICAgICAgPSAlVE9QRElSJQogCi0jIFRoZSBTVFJJUF9GUk9NX0lOQ19QQVRIIHRh
ZyBjYW4gYmUgdXNlZCB0byBzdHJpcCBhIHVzZXItZGVmaW5lZCBwYXJ0IG9mIAotIyB0aGUgcGF0
aCBtZW50aW9uZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgYSBjbGFzcywgd2hpY2ggdGVsbHMg
Ci0jIHRoZSByZWFkZXIgd2hpY2ggaGVhZGVyIGZpbGUgdG8gaW5jbHVkZSBpbiBvcmRlciB0byB1
c2UgYSBjbGFzcy4gCi0jIElmIGxlZnQgYmxhbmsgb25seSB0aGUgbmFtZSBvZiB0aGUgaGVhZGVy
IGZpbGUgY29udGFpbmluZyB0aGUgY2xhc3MgCi0jIGRlZmluaXRpb24gaXMgdXNlZC4gT3RoZXJ3
aXNlIG9uZSBzaG91bGQgc3BlY2lmeSB0aGUgaW5jbHVkZSBwYXRocyB0aGF0IAotIyBhcmUgbm9y
bWFsbHkgcGFzc2VkIHRvIHRoZSBjb21waWxlciB1c2luZyB0aGUgLUkgZmxhZy4KKyMgVGhlIFNU
UklQX0ZST01fSU5DX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHN0cmlwIGEgdXNlci1kZWZpbmVk
IHBhcnQgb2YgdGhlCisjIHBhdGggbWVudGlvbmVkIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIGEg
Y2xhc3MsIHdoaWNoIHRlbGxzIHRoZSByZWFkZXIgd2hpY2gKKyMgaGVhZGVyIGZpbGUgdG8gaW5j
bHVkZSBpbiBvcmRlciB0byB1c2UgYSBjbGFzcy4gSWYgbGVmdCBibGFuayBvbmx5IHRoZSBuYW1l
IG9mCisjIHRoZSBoZWFkZXIgZmlsZSBjb250YWluaW5nIHRoZSBjbGFzcyBkZWZpbml0aW9uIGlz
IHVzZWQuIE90aGVyd2lzZSBvbmUgc2hvdWxkCisjIHNwZWNpZnkgdGhlIGxpc3Qgb2YgaW5jbHVk
ZSBwYXRocyB0aGF0IGFyZSBub3JtYWxseSBwYXNzZWQgdG8gdGhlIGNvbXBpbGVyCisjIHVzaW5n
IHRoZSAtSSBmbGFnLgogCiBTVFJJUF9GUk9NX0lOQ19QQVRIICAgID0gJVRPUERJUiUvaW5jbHVk
ZQogCi0jIElmIHRoZSBTSE9SVF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxs
IGdlbmVyYXRlIG11Y2ggc2hvcnRlciAKLSMgKGJ1dCBsZXNzIHJlYWRhYmxlKSBmaWxlIG5hbWVz
LiBUaGlzIGNhbiBiZSB1c2VmdWwgaXMgeW91ciBmaWxlIHN5c3RlbXMgCi0jIGRvZXNuJ3Qgc3Vw
cG9ydCBsb25nIG5hbWVzIGxpa2Ugb24gRE9TLCBNYWMsIG9yIENELVJPTS4KKyMgSWYgdGhlIFNI
T1JUX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgbXVjaCBz
aG9ydGVyIChidXQKKyMgbGVzcyByZWFkYWJsZSkgZmlsZSBuYW1lcy4gVGhpcyBjYW4gYmUgdXNl
ZnVsIGlzIHlvdXIgZmlsZSBzeXN0ZW1zIGRvZXNuJ3QKKyMgc3VwcG9ydCBsb25nIG5hbWVzIGxp
a2Ugb24gRE9TLCBNYWMsIG9yIENELVJPTS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgog
CiBTSE9SVF9OQU1FUyAgICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgSkFWQURPQ19BVVRPQlJJ
RUYgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIAotIyB3aWxsIGludGVycHJldCB0aGUg
Zmlyc3QgbGluZSAodW50aWwgdGhlIGZpcnN0IGRvdCkgb2YgYSBKYXZhRG9jLXN0eWxlIAotIyBj
b21tZW50IGFzIHRoZSBicmllZiBkZXNjcmlwdGlvbi4gSWYgc2V0IHRvIE5PLCB0aGUgSmF2YURv
YyAKLSMgY29tbWVudHMgd2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgUXQtc3R5bGUgY29t
bWVudHMgCi0jICh0aHVzIHJlcXVpcmluZyBhbiBleHBsaWNpdCBAYnJpZWYgY29tbWFuZCBmb3Ig
YSBicmllZiBkZXNjcmlwdGlvbi4pCisjIElmIHRoZSBKQVZBRE9DX0FVVE9CUklFRiB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBpbnRlcnByZXQgdGhlCisjIGZpcnN0IGxpbmUg
KHVudGlsIHRoZSBmaXJzdCBkb3QpIG9mIGEgSmF2YWRvYy1zdHlsZSBjb21tZW50IGFzIHRoZSBi
cmllZgorIyBkZXNjcmlwdGlvbi4gSWYgc2V0IHRvIE5PLCB0aGUgSmF2YWRvYy1zdHlsZSB3aWxs
IGJlaGF2ZSBqdXN0IGxpa2UgcmVndWxhciBRdC0KKyMgc3R5bGUgY29tbWVudHMgKHRodXMgcmVx
dWlyaW5nIGFuIGV4cGxpY2l0IEBicmllZiBjb21tYW5kIGZvciBhIGJyaWVmCisjIGRlc2NyaXB0
aW9uLikKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBKQVZBRE9DX0FVVE9CUklFRiAg
ICAgID0gWUVTCiAKLSMgSWYgdGhlIFFUX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVu
IERveHlnZW4gd2lsbCAKLSMgaW50ZXJwcmV0IHRoZSBmaXJzdCBsaW5lICh1bnRpbCB0aGUgZmly
c3QgZG90KSBvZiBhIFF0LXN0eWxlIAotIyBjb21tZW50IGFzIHRoZSBicmllZiBkZXNjcmlwdGlv
bi4gSWYgc2V0IHRvIE5PLCB0aGUgY29tbWVudHMgCi0jIHdpbGwgYmVoYXZlIGp1c3QgbGlrZSBy
ZWd1bGFyIFF0LXN0eWxlIGNvbW1lbnRzICh0aHVzIHJlcXVpcmluZyAKLSMgYW4gZXhwbGljaXQg
XGJyaWVmIGNvbW1hbmQgZm9yIGEgYnJpZWYgZGVzY3JpcHRpb24uKQorIyBJZiB0aGUgUVRfQVVU
T0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGludGVycHJldCB0aGUg
Zmlyc3QKKyMgbGluZSAodW50aWwgdGhlIGZpcnN0IGRvdCkgb2YgYSBRdC1zdHlsZSBjb21tZW50
IGFzIHRoZSBicmllZiBkZXNjcmlwdGlvbi4gSWYKKyMgc2V0IHRvIE5PLCB0aGUgUXQtc3R5bGUg
d2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgUXQtc3R5bGUgY29tbWVudHMgKHRodXMKKyMg
cmVxdWlyaW5nIGFuIGV4cGxpY2l0IFxicmllZiBjb21tYW5kIGZvciBhIGJyaWVmIGRlc2NyaXB0
aW9uLikKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBRVF9BVVRPQlJJRUYgICAgICAg
ICAgID0gTk8KIAotIyBUaGUgTVVMVElMSU5FX0NQUF9JU19CUklFRiB0YWcgY2FuIGJlIHNldCB0
byBZRVMgdG8gbWFrZSBEb3h5Z2VuIAotIyB0cmVhdCBhIG11bHRpLWxpbmUgQysrIHNwZWNpYWwg
Y29tbWVudCBibG9jayAoaS5lLiBhIGJsb2NrIG9mIC8vISBvciAvLy8gCi0jIGNvbW1lbnRzKSBh
cyBhIGJyaWVmIGRlc2NyaXB0aW9uLiBUaGlzIHVzZWQgdG8gYmUgdGhlIGRlZmF1bHQgYmVoYXZp
b3VyLiAKLSMgVGhlIG5ldyBkZWZhdWx0IGlzIHRvIHRyZWF0IGEgbXVsdGktbGluZSBDKysgY29t
bWVudCBibG9jayBhcyBhIGRldGFpbGVkIAotIyBkZXNjcmlwdGlvbi4gU2V0IHRoaXMgdGFnIHRv
IFlFUyBpZiB5b3UgcHJlZmVyIHRoZSBvbGQgYmVoYXZpb3VyIGluc3RlYWQuCisjIFRoZSBNVUxU
SUxJTkVfQ1BQX0lTX0JSSUVGIHRhZyBjYW4gYmUgc2V0IHRvIFlFUyB0byBtYWtlIGRveHlnZW4g
dHJlYXQgYQorIyBtdWx0aS1saW5lIEMrKyBzcGVjaWFsIGNvbW1lbnQgYmxvY2sgKGkuZS4gYSBi
bG9jayBvZiAvLyEgb3IgLy8vIGNvbW1lbnRzKSBhcworIyBhIGJyaWVmIGRlc2NyaXB0aW9uLiBU
aGlzIHVzZWQgdG8gYmUgdGhlIGRlZmF1bHQgYmVoYXZpb3IuIFRoZSBuZXcgZGVmYXVsdCBpcwor
IyB0byB0cmVhdCBhIG11bHRpLWxpbmUgQysrIGNvbW1lbnQgYmxvY2sgYXMgYSBkZXRhaWxlZCBk
ZXNjcmlwdGlvbi4gU2V0IHRoaXMKKyMgdGFnIHRvIFlFUyBpZiB5b3UgcHJlZmVyIHRoZSBvbGQg
YmVoYXZpb3IgaW5zdGVhZC4KKyMKKyMgTm90ZSB0aGF0IHNldHRpbmcgdGhpcyB0YWcgdG8gWUVT
IGFsc28gbWVhbnMgdGhhdCByYXRpb25hbCByb3NlIGNvbW1lbnRzIGFyZQorIyBub3QgcmVjb2du
aXplZCBhbnkgbW9yZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBNVUxUSUxJTkVf
Q1BQX0lTX0JSSUVGID0gTk8KIAotIyBJZiB0aGUgSU5IRVJJVF9ET0NTIHRhZyBpcyBzZXQgdG8g
WUVTICh0aGUgZGVmYXVsdCkgdGhlbiBhbiB1bmRvY3VtZW50ZWQgCi0jIG1lbWJlciBpbmhlcml0
cyB0aGUgZG9jdW1lbnRhdGlvbiBmcm9tIGFueSBkb2N1bWVudGVkIG1lbWJlciB0aGF0IGl0IAot
IyByZS1pbXBsZW1lbnRzLgorIyBJZiB0aGUgSU5IRVJJVF9ET0NTIHRhZyBpcyBzZXQgdG8gWUVT
IHRoZW4gYW4gdW5kb2N1bWVudGVkIG1lbWJlciBpbmhlcml0cyB0aGUKKyMgZG9jdW1lbnRhdGlv
biBmcm9tIGFueSBkb2N1bWVudGVkIG1lbWJlciB0aGF0IGl0IHJlLWltcGxlbWVudHMuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIElOSEVSSVRfRE9DUyAgICAgICAgICAgPSBZRVMK
IAotIyBJZiB0aGUgU0VQQVJBVEVfTUVNQkVSX1BBR0VTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVu
IGRveHlnZW4gd2lsbCBwcm9kdWNlIAotIyBhIG5ldyBwYWdlIGZvciBlYWNoIG1lbWJlci4gSWYg
c2V0IHRvIE5PLCB0aGUgZG9jdW1lbnRhdGlvbiBvZiBhIG1lbWJlciB3aWxsIAotIyBiZSBwYXJ0
IG9mIHRoZSBmaWxlL2NsYXNzL25hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIGl0LgorIyBJZiB0aGUg
U0VQQVJBVEVfTUVNQkVSX1BBR0VTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2ls
bCBwcm9kdWNlIGEKKyMgbmV3IHBhZ2UgZm9yIGVhY2ggbWVtYmVyLiBJZiBzZXQgdG8gTk8sIHRo
ZSBkb2N1bWVudGF0aW9uIG9mIGEgbWVtYmVyIHdpbGwgYmUKKyMgcGFydCBvZiB0aGUgZmlsZS9j
bGFzcy9uYW1lc3BhY2UgdGhhdCBjb250YWlucyBpdC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgogCiBTRVBBUkFURV9NRU1CRVJfUEFHRVMgID0gTk8KIAotIyBUaGUgVEFCX1NJWkUgdGFn
IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbnVtYmVyIG9mIHNwYWNlcyBpbiBhIHRhYi4gCi0jIERv
eHlnZW4gdXNlcyB0aGlzIHZhbHVlIHRvIHJlcGxhY2UgdGFicyBieSBzcGFjZXMgaW4gY29kZSBm
cmFnbWVudHMuCisjIFRoZSBUQUJfU0laRSB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBudW1i
ZXIgb2Ygc3BhY2VzIGluIGEgdGFiLiBEb3h5Z2VuCisjIHVzZXMgdGhpcyB2YWx1ZSB0byByZXBs
YWNlIHRhYnMgYnkgc3BhY2VzIGluIGNvZGUgZnJhZ21lbnRzLgorIyBNaW5pbXVtIHZhbHVlOiAx
LCBtYXhpbXVtIHZhbHVlOiAxNiwgZGVmYXVsdCB2YWx1ZTogNC4KIAogVEFCX1NJWkUgICAgICAg
ICAgICAgICA9IDMKIAotIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbnVtYmVy
IG9mIGFsaWFzZXMgdGhhdCBhY3RzIAotIyBhcyBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRhdGlv
bi4gQW4gYWxpYXMgaGFzIHRoZSBmb3JtICJuYW1lPXZhbHVlIi4gCi0jIEZvciBleGFtcGxlIGFk
ZGluZyAic2lkZWVmZmVjdD1ccGFyIFNpZGUgRWZmZWN0czpcbiIgd2lsbCBhbGxvdyB5b3UgdG8g
Ci0jIHB1dCB0aGUgY29tbWFuZCBcc2lkZWVmZmVjdCAob3IgQHNpZGVlZmZlY3QpIGluIHRoZSBk
b2N1bWVudGF0aW9uLCB3aGljaCAKLSMgd2lsbCByZXN1bHQgaW4gYSB1c2VyLWRlZmluZWQgcGFy
YWdyYXBoIHdpdGggaGVhZGluZyAiU2lkZSBFZmZlY3RzOiIuIAotIyBZb3UgY2FuIHB1dCBcbidz
IGluIHRoZSB2YWx1ZSBwYXJ0IG9mIGFuIGFsaWFzIHRvIGluc2VydCBuZXdsaW5lcy4KKyMgVGhp
cyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIG51bWJlciBvZiBhbGlhc2VzIHRoYXQgYWN0
IGFzIGNvbW1hbmRzIGluCisjIHRoZSBkb2N1bWVudGF0aW9uLiBBbiBhbGlhcyBoYXMgdGhlIGZv
cm06CisjIG5hbWU9dmFsdWUKKyMgRm9yIGV4YW1wbGUgYWRkaW5nCisjICJzaWRlZWZmZWN0PUBw
YXIgU2lkZSBFZmZlY3RzOlxuIgorIyB3aWxsIGFsbG93IHlvdSB0byBwdXQgdGhlIGNvbW1hbmQg
XHNpZGVlZmZlY3QgKG9yIEBzaWRlZWZmZWN0KSBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbiwgd2hp
Y2ggd2lsbCByZXN1bHQgaW4gYSB1c2VyLWRlZmluZWQgcGFyYWdyYXBoIHdpdGggaGVhZGluZwor
IyAiU2lkZSBFZmZlY3RzOiIuIFlvdSBjYW4gcHV0IFxuJ3MgaW4gdGhlIHZhbHVlIHBhcnQgb2Yg
YW4gYWxpYXMgdG8gaW5zZXJ0CisjIG5ld2xpbmVzLgogCiBBTElBU0VTICAgICAgICAgICAgICAg
ID0gInRlc3RDYXNlU2V0dXA9XGxpbmsgQ3BwVVQ6OlRlc3RDYXNlOjpzZXRVcCgpIHNldFVwKClc
ZW5kbGluayIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0Q2FzZVJ1bj1cbGluayBD
cHBVVDo6VGVzdENhc2U6OnJ1bigpIHJ1bigpXGVuZGxpbmsiIFwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAidGVzdENhc2VUZWFyRG93bj1cbGluayBDcHBVVDo6VGVzdENhc2U6OnRlYXJEb3du
KCkgdGVhckRvd24oKVxlbmRsaW5rIiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgImpzb25f
cmVmPTxhIEhSRUY9J2h0dHA6Ly93d3cuanNvbi5vcmcvJz5KU09OIChKYXZhU2NyaXB0IE9iamVj
dCBOb3RhdGlvbik8L2E+IgogCi0jIFNldCB0aGUgT1BUSU1JWkVfT1VUUFVUX0ZPUl9DIHRhZyB0
byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEMgCi0jIHNvdXJjZXMgb25seS4gRG94
eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZCBmb3Ig
Qy4gCi0jIEZvciBpbnN0YW5jZSwgc29tZSBvZiB0aGUgbmFtZXMgdGhhdCBhcmUgdXNlZCB3aWxs
IGJlIGRpZmZlcmVudC4gVGhlIGxpc3QgCi0jIG9mIGFsbCBtZW1iZXJzIHdpbGwgYmUgb21pdHRl
ZCwgZXRjLgorIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbnVtYmVyIG9mIHdv
cmQta2V5d29yZCBtYXBwaW5ncyAoVENMIG9ubHkpLgorIyBBIG1hcHBpbmcgaGFzIHRoZSBmb3Jt
ICJuYW1lPXZhbHVlIi4gRm9yIGV4YW1wbGUgYWRkaW5nICJjbGFzcz1pdGNsOjpjbGFzcyIKKyMg
d2lsbCBhbGxvdyB5b3UgdG8gdXNlIHRoZSBjb21tYW5kIGNsYXNzIGluIHRoZSBpdGNsOjpjbGFz
cyBtZWFuaW5nLgorCitUQ0xfU1VCU1QgICAgICAgICAgICAgID0KKworIyBTZXQgdGhlIE9QVElN
SVpFX09VVFBVVF9GT1JfQyB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBD
IHNvdXJjZXMKKyMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQg
aXMgbW9yZSB0YWlsb3JlZCBmb3IgQy4gRm9yCisjIGluc3RhbmNlLCBzb21lIG9mIHRoZSBuYW1l
cyB0aGF0IGFyZSB1c2VkIHdpbGwgYmUgZGlmZmVyZW50LiBUaGUgbGlzdCBvZiBhbGwKKyMgbWVt
YmVycyB3aWxsIGJlIG9taXR0ZWQsIGV0Yy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgog
CiBPUFRJTUlaRV9PVVRQVVRfRk9SX0MgID0gTk8KIAotIyBTZXQgdGhlIE9QVElNSVpFX09VVFBV
VF9KQVZBIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEphdmEgCi0jIHNv
dXJjZXMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9y
ZSB0YWlsb3JlZCBmb3IgCi0jIEphdmEuIEZvciBpbnN0YW5jZSwgbmFtZXNwYWNlcyB3aWxsIGJl
IHByZXNlbnRlZCBhcyBwYWNrYWdlcywgcXVhbGlmaWVkIAotIyBzY29wZXMgd2lsbCBsb29rIGRp
ZmZlcmVudCwgZXRjLgorIyBTZXQgdGhlIE9QVElNSVpFX09VVFBVVF9KQVZBIHRhZyB0byBZRVMg
aWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEphdmEgb3IKKyMgUHl0aG9uIHNvdXJjZXMgb25s
eS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3Jl
ZAorIyBmb3IgdGhhdCBsYW5ndWFnZS4gRm9yIGluc3RhbmNlLCBuYW1lc3BhY2VzIHdpbGwgYmUg
cHJlc2VudGVkIGFzIHBhY2thZ2VzLAorIyBxdWFsaWZpZWQgc2NvcGVzIHdpbGwgbG9vayBkaWZm
ZXJlbnQsIGV0Yy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBPUFRJTUlaRV9PVVRQ
VVRfSkFWQSAgID0gTk8KIAotIyBTZXQgdGhlIE9QVElNSVpFX0ZPUl9GT1JUUkFOIHRhZyB0byBZ
RVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEZvcnRyYW4gCi0jIHNvdXJjZXMgb25seS4g
RG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZCBm
b3IgCi0jIEZvcnRyYW4uCisjIFNldCB0aGUgT1BUSU1JWkVfRk9SX0ZPUlRSQU4gdGFnIHRvIFlF
UyBpZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2YgRm9ydHJhbgorIyBzb3VyY2VzLiBEb3h5Z2Vu
IHdpbGwgdGhlbiBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyB0YWlsb3JlZCBmb3IgRm9ydHJhbi4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBPUFRJTUlaRV9GT1JfRk9SVFJBTiAgID0g
Tk8KIAotIyBTZXQgdGhlIE9QVElNSVpFX09VVFBVVF9WSERMIHRhZyB0byBZRVMgaWYgeW91ciBw
cm9qZWN0IGNvbnNpc3RzIG9mIFZIREwgCi0jIHNvdXJjZXMuIERveHlnZW4gd2lsbCB0aGVuIGdl
bmVyYXRlIG91dHB1dCB0aGF0IGlzIHRhaWxvcmVkIGZvciAKLSMgVkhETC4KKyMgU2V0IHRoZSBP
UFRJTUlaRV9PVVRQVVRfVkhETCB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBv
ZiBWSERMCisjIHNvdXJjZXMuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0
IGlzIHRhaWxvcmVkIGZvciBWSERMLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIE9Q
VElNSVpFX09VVFBVVF9WSERMICAgPSBOTwogCi0jIERveHlnZW4gc2VsZWN0cyB0aGUgcGFyc2Vy
IHRvIHVzZSBkZXBlbmRpbmcgb24gdGhlIGV4dGVuc2lvbiBvZiB0aGUgZmlsZXMgaXQgcGFyc2Vz
LiAKLSMgV2l0aCB0aGlzIHRhZyB5b3UgY2FuIGFzc2lnbiB3aGljaCBwYXJzZXIgdG8gdXNlIGZv
ciBhIGdpdmVuIGV4dGVuc2lvbi4gCi0jIERveHlnZW4gaGFzIGEgYnVpbHQtaW4gbWFwcGluZywg
YnV0IHlvdSBjYW4gb3ZlcnJpZGUgb3IgZXh0ZW5kIGl0IHVzaW5nIHRoaXMgdGFnLiAKLSMgVGhl
IGZvcm1hdCBpcyBleHQ9bGFuZ3VhZ2UsIHdoZXJlIGV4dCBpcyBhIGZpbGUgZXh0ZW5zaW9uLCBh
bmQgbGFuZ3VhZ2UgaXMgb25lIG9mIAotIyB0aGUgcGFyc2VycyBzdXBwb3J0ZWQgYnkgZG94eWdl
bjogSURMLCBKYXZhLCBKYXZhc2NyaXB0LCBDIywgQywgQysrLCBELCBQSFAsIAotIyBPYmplY3Rp
dmUtQywgUHl0aG9uLCBGb3J0cmFuLCBWSERMLCBDLCBDKysuIEZvciBpbnN0YW5jZSB0byBtYWtl
IGRveHlnZW4gdHJlYXQgCi0jIC5pbmMgZmlsZXMgYXMgRm9ydHJhbiBmaWxlcyAoZGVmYXVsdCBp
cyBQSFApLCBhbmQgLmYgZmlsZXMgYXMgQyAoZGVmYXVsdCBpcyBGb3J0cmFuKSwgCi0jIHVzZTog
aW5jPUZvcnRyYW4gZj1DLiBOb3RlIHRoYXQgZm9yIGN1c3RvbSBleHRlbnNpb25zIHlvdSBhbHNv
IG5lZWQgdG8gc2V0IEZJTEVfUEFUVEVSTlMgb3RoZXJ3aXNlIHRoZSBmaWxlcyBhcmUgbm90IHJl
YWQgYnkgZG94eWdlbi4KLQotRVhURU5TSU9OX01BUFBJTkcgICAgICA9IAotCi0jIElmIHlvdSB1
c2UgU1RMIGNsYXNzZXMgKGkuZS4gc3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yLCBldGMuKSBidXQg
ZG8gbm90IHdhbnQgCi0jIHRvIGluY2x1ZGUgKGEgdGFnIGZpbGUgZm9yKSB0aGUgU1RMIHNvdXJj
ZXMgYXMgaW5wdXQsIHRoZW4geW91IHNob3VsZCAKLSMgc2V0IHRoaXMgdGFnIHRvIFlFUyBpbiBv
cmRlciB0byBsZXQgZG94eWdlbiBtYXRjaCBmdW5jdGlvbnMgZGVjbGFyYXRpb25zIGFuZCAKLSMg
ZGVmaW5pdGlvbnMgd2hvc2UgYXJndW1lbnRzIGNvbnRhaW4gU1RMIGNsYXNzZXMgKGUuZy4gZnVu
YyhzdGQ6OnN0cmluZyk7IHYucy4gCi0jIGZ1bmMoc3RkOjpzdHJpbmcpIHt9KS4gVGhpcyBhbHNv
IG1ha2UgdGhlIGluaGVyaXRhbmNlIGFuZCBjb2xsYWJvcmF0aW9uIAorIyBEb3h5Z2VuIHNlbGVj
dHMgdGhlIHBhcnNlciB0byB1c2UgZGVwZW5kaW5nIG9uIHRoZSBleHRlbnNpb24gb2YgdGhlIGZp
bGVzIGl0CisjIHBhcnNlcy4gV2l0aCB0aGlzIHRhZyB5b3UgY2FuIGFzc2lnbiB3aGljaCBwYXJz
ZXIgdG8gdXNlIGZvciBhIGdpdmVuCisjIGV4dGVuc2lvbi4gRG94eWdlbiBoYXMgYSBidWlsdC1p
biBtYXBwaW5nLCBidXQgeW91IGNhbiBvdmVycmlkZSBvciBleHRlbmQgaXQKKyMgdXNpbmcgdGhp
cyB0YWcuIFRoZSBmb3JtYXQgaXMgZXh0PWxhbmd1YWdlLCB3aGVyZSBleHQgaXMgYSBmaWxlIGV4
dGVuc2lvbiwgYW5kCisjIGxhbmd1YWdlIGlzIG9uZSBvZiB0aGUgcGFyc2VycyBzdXBwb3J0ZWQg
YnkgZG94eWdlbjogSURMLCBKYXZhLCBKYXZhU2NyaXB0LAorIyBDIywgQywgQysrLCBELCBQSFAs
IE9iamVjdGl2ZS1DLCBQeXRob24sIEZvcnRyYW4sIFZIREwuIEZvciBpbnN0YW5jZSB0byBtYWtl
CisjIGRveHlnZW4gdHJlYXQgLmluYyBmaWxlcyBhcyBGb3J0cmFuIGZpbGVzIChkZWZhdWx0IGlz
IFBIUCksIGFuZCAuZiBmaWxlcyBhcyBDCisjIChkZWZhdWx0IGlzIEZvcnRyYW4pLCB1c2U6IGlu
Yz1Gb3J0cmFuIGY9Qy4KKyMKKyMgTm90ZSBGb3IgZmlsZXMgd2l0aG91dCBleHRlbnNpb24geW91
IGNhbiB1c2Ugbm9fZXh0ZW5zaW9uIGFzIGEgcGxhY2Vob2xkZXIuCisjCisjIE5vdGUgdGhhdCBm
b3IgY3VzdG9tIGV4dGVuc2lvbnMgeW91IGFsc28gbmVlZCB0byBzZXQgRklMRV9QQVRURVJOUyBv
dGhlcndpc2UKKyMgdGhlIGZpbGVzIGFyZSBub3QgcmVhZCBieSBkb3h5Z2VuLgorCitFWFRFTlNJ
T05fTUFQUElORyAgICAgID0KKworIyBJZiB0aGUgTUFSS0RPV05fU1VQUE9SVCB0YWcgaXMgZW5h
YmxlZCB0aGVuIGRveHlnZW4gcHJlLXByb2Nlc3NlcyBhbGwgY29tbWVudHMKKyMgYWNjb3JkaW5n
IHRvIHRoZSBNYXJrZG93biBmb3JtYXQsIHdoaWNoIGFsbG93cyBmb3IgbW9yZSByZWFkYWJsZQor
IyBkb2N1bWVudGF0aW9uLiBTZWUgaHR0cDovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9t
YXJrZG93bi8gZm9yIGRldGFpbHMuCisjIFRoZSBvdXRwdXQgb2YgbWFya2Rvd24gcHJvY2Vzc2lu
ZyBpcyBmdXJ0aGVyIHByb2Nlc3NlZCBieSBkb3h5Z2VuLCBzbyB5b3UgY2FuCisjIG1peCBkb3h5
Z2VuLCBIVE1MLCBhbmQgWE1MIGNvbW1hbmRzIHdpdGggTWFya2Rvd24gZm9ybWF0dGluZy4gRGlz
YWJsZSBvbmx5IGluCisjIGNhc2Ugb2YgYmFja3dhcmQgY29tcGF0aWJpbGl0aWVzIGlzc3Vlcy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworTUFSS0RPV05fU1VQUE9SVCAgICAgICA9
IFlFUworCisjIFdoZW4gZW5hYmxlZCBkb3h5Z2VuIHRyaWVzIHRvIGxpbmsgd29yZHMgdGhhdCBj
b3JyZXNwb25kIHRvIGRvY3VtZW50ZWQKKyMgY2xhc3Nlcywgb3IgbmFtZXNwYWNlcyB0byB0aGVp
ciBjb3JyZXNwb25kaW5nIGRvY3VtZW50YXRpb24uIFN1Y2ggYSBsaW5rIGNhbgorIyBiZSBwcmV2
ZW50ZWQgaW4gaW5kaXZpZHVhbCBjYXNlcyBieSBieSBwdXR0aW5nIGEgJSBzaWduIGluIGZyb250
IG9mIHRoZSB3b3JkCisjIG9yIGdsb2JhbGx5IGJ5IHNldHRpbmcgQVVUT0xJTktfU1VQUE9SVCB0
byBOTy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworQVVUT0xJTktfU1VQUE9SVCAg
ICAgICA9IFlFUworCisjIElmIHlvdSB1c2UgU1RMIGNsYXNzZXMgKGkuZS4gc3RkOjpzdHJpbmcs
IHN0ZDo6dmVjdG9yLCBldGMuKSBidXQgZG8gbm90IHdhbnQKKyMgdG8gaW5jbHVkZSAoYSB0YWcg
ZmlsZSBmb3IpIHRoZSBTVEwgc291cmNlcyBhcyBpbnB1dCwgdGhlbiB5b3Ugc2hvdWxkIHNldCB0
aGlzCisjIHRhZyB0byBZRVMgaW4gb3JkZXIgdG8gbGV0IGRveHlnZW4gbWF0Y2ggZnVuY3Rpb25z
IGRlY2xhcmF0aW9ucyBhbmQKKyMgZGVmaW5pdGlvbnMgd2hvc2UgYXJndW1lbnRzIGNvbnRhaW4g
U1RMIGNsYXNzZXMgKGUuZy4gZnVuYyhzdGQ6OnN0cmluZyk7CisjIHZlcnN1cyBmdW5jKHN0ZDo6
c3RyaW5nKSB7fSkuIFRoaXMgYWxzbyBtYWtlIHRoZSBpbmhlcml0YW5jZSBhbmQgY29sbGFib3Jh
dGlvbgogIyBkaWFncmFtcyB0aGF0IGludm9sdmUgU1RMIGNsYXNzZXMgbW9yZSBjb21wbGV0ZSBh
bmQgYWNjdXJhdGUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogQlVJTFRJTl9TVExf
U1VQUE9SVCAgICA9IFlFUwogCi0jIElmIHlvdSB1c2UgTWljcm9zb2Z0J3MgQysrL0NMSSBsYW5n
dWFnZSwgeW91IHNob3VsZCBzZXQgdGhpcyBvcHRpb24gdG8gWUVTIHRvIAorIyBJZiB5b3UgdXNl
IE1pY3Jvc29mdCdzIEMrKy9DTEkgbGFuZ3VhZ2UsIHlvdSBzaG91bGQgc2V0IHRoaXMgb3B0aW9u
IHRvIFlFUyB0bwogIyBlbmFibGUgcGFyc2luZyBzdXBwb3J0LgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCiAKIENQUF9DTElfU1VQUE9SVCAgICAgICAgPSBOTwogCi0jIFNldCB0aGUgU0lQ
X1NVUFBPUlQgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2Ygc2lwIHNvdXJj
ZXMgb25seS4gCi0jIERveHlnZW4gd2lsbCBwYXJzZSB0aGVtIGxpa2Ugbm9ybWFsIEMrKyBidXQg
d2lsbCBhc3N1bWUgYWxsIGNsYXNzZXMgdXNlIHB1YmxpYyAKLSMgaW5zdGVhZCBvZiBwcml2YXRl
IGluaGVyaXRhbmNlIHdoZW4gbm8gZXhwbGljaXQgcHJvdGVjdGlvbiBrZXl3b3JkIGlzIHByZXNl
bnQuCisjIFNldCB0aGUgU0lQX1NVUFBPUlQgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29u
c2lzdHMgb2Ygc2lwIChzZWU6CisjIGh0dHA6Ly93d3cucml2ZXJiYW5rY29tcHV0aW5nLmNvLnVr
L3NvZnR3YXJlL3NpcC9pbnRybykgc291cmNlcyBvbmx5LiBEb3h5Z2VuCisjIHdpbGwgcGFyc2Ug
dGhlbSBsaWtlIG5vcm1hbCBDKysgYnV0IHdpbGwgYXNzdW1lIGFsbCBjbGFzc2VzIHVzZSBwdWJs
aWMgaW5zdGVhZAorIyBvZiBwcml2YXRlIGluaGVyaXRhbmNlIHdoZW4gbm8gZXhwbGljaXQgcHJv
dGVjdGlvbiBrZXl3b3JkIGlzIHByZXNlbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
IAogU0lQX1NVUFBPUlQgICAgICAgICAgICA9IE5PCiAKLSMgRm9yIE1pY3Jvc29mdCdzIElETCB0
aGVyZSBhcmUgcHJvcGdldCBhbmQgcHJvcHB1dCBhdHRyaWJ1dGVzIHRvIGluZGljYXRlIGdldHRl
ciAKLSMgYW5kIHNldHRlciBtZXRob2RzIGZvciBhIHByb3BlcnR5LiBTZXR0aW5nIHRoaXMgb3B0
aW9uIHRvIFlFUyAodGhlIGRlZmF1bHQpIAotIyB3aWxsIG1ha2UgZG94eWdlbiB0byByZXBsYWNl
IHRoZSBnZXQgYW5kIHNldCBtZXRob2RzIGJ5IGEgcHJvcGVydHkgaW4gdGhlIAotIyBkb2N1bWVu
dGF0aW9uLiBUaGlzIHdpbGwgb25seSB3b3JrIGlmIHRoZSBtZXRob2RzIGFyZSBpbmRlZWQgZ2V0
dGluZyBvciAKLSMgc2V0dGluZyBhIHNpbXBsZSB0eXBlLiBJZiB0aGlzIGlzIG5vdCB0aGUgY2Fz
ZSwgb3IgeW91IHdhbnQgdG8gc2hvdyB0aGUgCi0jIG1ldGhvZHMgYW55d2F5LCB5b3Ugc2hvdWxk
IHNldCB0aGlzIG9wdGlvbiB0byBOTy4KKyMgRm9yIE1pY3Jvc29mdCdzIElETCB0aGVyZSBhcmUg
cHJvcGdldCBhbmQgcHJvcHB1dCBhdHRyaWJ1dGVzIHRvIGluZGljYXRlCisjIGdldHRlciBhbmQg
c2V0dGVyIG1ldGhvZHMgZm9yIGEgcHJvcGVydHkuIFNldHRpbmcgdGhpcyBvcHRpb24gdG8gWUVT
IHdpbGwgbWFrZQorIyBkb3h5Z2VuIHRvIHJlcGxhY2UgdGhlIGdldCBhbmQgc2V0IG1ldGhvZHMg
YnkgYSBwcm9wZXJ0eSBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhpcyB3aWxsIG9ubHkgd29y
ayBpZiB0aGUgbWV0aG9kcyBhcmUgaW5kZWVkIGdldHRpbmcgb3Igc2V0dGluZyBhIHNpbXBsZQor
IyB0eXBlLiBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgb3IgeW91IHdhbnQgdG8gc2hvdyB0aGUg
bWV0aG9kcyBhbnl3YXksIHlvdQorIyBzaG91bGQgc2V0IHRoaXMgb3B0aW9uIHRvIE5PLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBJRExfUFJPUEVSVFlfU1VQUE9SVCAgID0gWUVT
CiAKLSMgSWYgbWVtYmVyIGdyb3VwaW5nIGlzIHVzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
IHRoZSBESVNUUklCVVRFX0dST1VQX0RPQyAKLSMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94
eWdlbiB3aWxsIHJldXNlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBmaXJzdCAKLSMgbWVtYmVy
IGluIHRoZSBncm91cCAoaWYgYW55KSBmb3IgdGhlIG90aGVyIG1lbWJlcnMgb2YgdGhlIGdyb3Vw
LiBCeSBkZWZhdWx0IAorIyBJZiBtZW1iZXIgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQgdGhlIERJU1RSSUJVVEVfR1JPVVBfRE9DCisjIHRhZyBpcyBzZXQgdG8gWUVT
LCB0aGVuIGRveHlnZW4gd2lsbCByZXVzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmlyc3QK
KyMgbWVtYmVyIGluIHRoZSBncm91cCAoaWYgYW55KSBmb3IgdGhlIG90aGVyIG1lbWJlcnMgb2Yg
dGhlIGdyb3VwLiBCeSBkZWZhdWx0CiAjIGFsbCBtZW1iZXJzIG9mIGEgZ3JvdXAgbXVzdCBiZSBk
b2N1bWVudGVkIGV4cGxpY2l0bHkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogRElT
VFJJQlVURV9HUk9VUF9ET0MgICA9IE5PCiAKLSMgU2V0IHRoZSBTVUJHUk9VUElORyB0YWcgdG8g
WUVTICh0aGUgZGVmYXVsdCkgdG8gYWxsb3cgY2xhc3MgbWVtYmVyIGdyb3VwcyBvZiAKLSMgdGhl
IHNhbWUgdHlwZSAoZm9yIGluc3RhbmNlIGEgZ3JvdXAgb2YgcHVibGljIGZ1bmN0aW9ucykgdG8g
YmUgcHV0IGFzIGEgCi0jIHN1Ymdyb3VwIG9mIHRoYXQgdHlwZSAoZS5nLiB1bmRlciB0aGUgUHVi
bGljIEZ1bmN0aW9ucyBzZWN0aW9uKS4gU2V0IGl0IHRvIAotIyBOTyB0byBwcmV2ZW50IHN1Ymdy
b3VwaW5nLiBBbHRlcm5hdGl2ZWx5LCB0aGlzIGNhbiBiZSBkb25lIHBlciBjbGFzcyB1c2luZyAK
LSMgdGhlIFxub3N1Ymdyb3VwaW5nIGNvbW1hbmQuCisjIFNldCB0aGUgU1VCR1JPVVBJTkcgdGFn
IHRvIFlFUyB0byBhbGxvdyBjbGFzcyBtZW1iZXIgZ3JvdXBzIG9mIHRoZSBzYW1lIHR5cGUKKyMg
KGZvciBpbnN0YW5jZSBhIGdyb3VwIG9mIHB1YmxpYyBmdW5jdGlvbnMpIHRvIGJlIHB1dCBhcyBh
IHN1Ymdyb3VwIG9mIHRoYXQKKyMgdHlwZSAoZS5nLiB1bmRlciB0aGUgUHVibGljIEZ1bmN0aW9u
cyBzZWN0aW9uKS4gU2V0IGl0IHRvIE5PIHRvIHByZXZlbnQKKyMgc3ViZ3JvdXBpbmcuIEFsdGVy
bmF0aXZlbHksIHRoaXMgY2FuIGJlIGRvbmUgcGVyIGNsYXNzIHVzaW5nIHRoZQorIyBcbm9zdWJn
cm91cGluZyBjb21tYW5kLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBTVUJHUk9V
UElORyAgICAgICAgICAgID0gWUVTCiAKLSMgV2hlbiBUWVBFREVGX0hJREVTX1NUUlVDVCBpcyBl
bmFibGVkLCBhIHR5cGVkZWYgb2YgYSBzdHJ1Y3QsIHVuaW9uLCBvciBlbnVtIAotIyBpcyBkb2N1
bWVudGVkIGFzIHN0cnVjdCwgdW5pb24sIG9yIGVudW0gd2l0aCB0aGUgbmFtZSBvZiB0aGUgdHlw
ZWRlZi4gU28gCi0jIHR5cGVkZWYgc3RydWN0IFR5cGVTIHt9IFR5cGVULCB3aWxsIGFwcGVhciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhcyBhIHN0cnVjdCAKLSMgd2l0aCBuYW1lIFR5cGVULiBXaGVu
IGRpc2FibGVkIHRoZSB0eXBlZGVmIHdpbGwgYXBwZWFyIGFzIGEgbWVtYmVyIG9mIGEgZmlsZSwg
Ci0jIG5hbWVzcGFjZSwgb3IgY2xhc3MuIEFuZCB0aGUgc3RydWN0IHdpbGwgYmUgbmFtZWQgVHlw
ZVMuIFRoaXMgY2FuIHR5cGljYWxseSAKLSMgYmUgdXNlZnVsIGZvciBDIGNvZGUgaW4gY2FzZSB0
aGUgY29kaW5nIGNvbnZlbnRpb24gZGljdGF0ZXMgdGhhdCBhbGwgY29tcG91bmQgCisjIFdoZW4g
dGhlIElOTElORV9HUk9VUEVEX0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMsIGNsYXNzZXMsIHN0
cnVjdHMgYW5kIHVuaW9ucworIyBhcmUgc2hvd24gaW5zaWRlIHRoZSBncm91cCBpbiB3aGljaCB0
aGV5IGFyZSBpbmNsdWRlZCAoZS5nLiB1c2luZyBcaW5ncm91cCkKKyMgaW5zdGVhZCBvZiBvbiBh
IHNlcGFyYXRlIHBhZ2UgKGZvciBIVE1MIGFuZCBNYW4gcGFnZXMpIG9yIHNlY3Rpb24gKGZvciBM
YVRlWAorIyBhbmQgUlRGKS4KKyMKKyMgTm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBkb2VzIG5vdCB3
b3JrIGluIGNvbWJpbmF0aW9uIHdpdGgKKyMgU0VQQVJBVEVfTUVNQkVSX1BBR0VTLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0lOTElORV9HUk9VUEVEX0NMQVNTRVMgPSBOTworCisj
IFdoZW4gdGhlIElOTElORV9TSU1QTEVfU1RSVUNUUyB0YWcgaXMgc2V0IHRvIFlFUywgc3RydWN0
cywgY2xhc3NlcywgYW5kIHVuaW9ucworIyB3aXRoIG9ubHkgcHVibGljIGRhdGEgZmllbGRzIG9y
IHNpbXBsZSB0eXBlZGVmIGZpZWxkcyB3aWxsIGJlIHNob3duIGlubGluZSBpbgorIyB0aGUgZG9j
dW1lbnRhdGlvbiBvZiB0aGUgc2NvcGUgaW4gd2hpY2ggdGhleSBhcmUgZGVmaW5lZCAoaS5lLiBm
aWxlLAorIyBuYW1lc3BhY2UsIG9yIGdyb3VwIGRvY3VtZW50YXRpb24pLCBwcm92aWRlZCB0aGlz
IHNjb3BlIGlzIGRvY3VtZW50ZWQuIElmIHNldAorIyB0byBOTywgc3RydWN0cywgY2xhc3Nlcywg
YW5kIHVuaW9ucyBhcmUgc2hvd24gb24gYSBzZXBhcmF0ZSBwYWdlIChmb3IgSFRNTCBhbmQKKyMg
TWFuIHBhZ2VzKSBvciBzZWN0aW9uIChmb3IgTGFUZVggYW5kIFJURikuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBOTy4KKworSU5MSU5FX1NJTVBMRV9TVFJVQ1RTICA9IE5PCisKKyMgV2hlbiBU
WVBFREVGX0hJREVTX1NUUlVDVCB0YWcgaXMgZW5hYmxlZCwgYSB0eXBlZGVmIG9mIGEgc3RydWN0
LCB1bmlvbiwgb3IKKyMgZW51bSBpcyBkb2N1bWVudGVkIGFzIHN0cnVjdCwgdW5pb24sIG9yIGVu
dW0gd2l0aCB0aGUgbmFtZSBvZiB0aGUgdHlwZWRlZi4gU28KKyMgdHlwZWRlZiBzdHJ1Y3QgVHlw
ZVMge30gVHlwZVQsIHdpbGwgYXBwZWFyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFzIGEgc3RydWN0
CisjIHdpdGggbmFtZSBUeXBlVC4gV2hlbiBkaXNhYmxlZCB0aGUgdHlwZWRlZiB3aWxsIGFwcGVh
ciBhcyBhIG1lbWJlciBvZiBhIGZpbGUsCisjIG5hbWVzcGFjZSwgb3IgY2xhc3MuIEFuZCB0aGUg
c3RydWN0IHdpbGwgYmUgbmFtZWQgVHlwZVMuIFRoaXMgY2FuIHR5cGljYWxseSBiZQorIyB1c2Vm
dWwgZm9yIEMgY29kZSBpbiBjYXNlIHRoZSBjb2RpbmcgY29udmVudGlvbiBkaWN0YXRlcyB0aGF0
IGFsbCBjb21wb3VuZAogIyB0eXBlcyBhcmUgdHlwZWRlZidlZCBhbmQgb25seSB0aGUgdHlwZWRl
ZiBpcyByZWZlcmVuY2VkLCBuZXZlciB0aGUgdGFnIG5hbWUuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KIAogVFlQRURFRl9ISURFU19TVFJVQ1QgICA9IE5PCiAKLSMgVGhlIFNZTUJPTF9D
QUNIRV9TSVpFIGRldGVybWluZXMgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGNhY2hlIHVzZSB0
byAKLSMgZGV0ZXJtaW5lIHdoaWNoIHN5bWJvbHMgdG8ga2VlcCBpbiBtZW1vcnkgYW5kIHdoaWNo
IHRvIGZsdXNoIHRvIGRpc2suIAotIyBXaGVuIHRoZSBjYWNoZSBpcyBmdWxsLCBsZXNzIG9mdGVu
IHVzZWQgc3ltYm9scyB3aWxsIGJlIHdyaXR0ZW4gdG8gZGlzay4gCi0jIEZvciBzbWFsbCB0byBt
ZWRpdW0gc2l6ZSBwcm9qZWN0cyAoPDEwMDAgaW5wdXQgZmlsZXMpIHRoZSBkZWZhdWx0IHZhbHVl
IGlzIAotIyBwcm9iYWJseSBnb29kIGVub3VnaC4gRm9yIGxhcmdlciBwcm9qZWN0cyBhIHRvbyBz
bWFsbCBjYWNoZSBzaXplIGNhbiBjYXVzZSAKLSMgZG94eWdlbiB0byBiZSBidXN5IHN3YXBwaW5n
IHN5bWJvbHMgdG8gYW5kIGZyb20gZGlzayBtb3N0IG9mIHRoZSB0aW1lIAotIyBjYXVzaW5nIGEg
c2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcGVuYWxpdHkuIAotIyBJZiB0aGUgc3lzdGVtIGhhcyBl
bm91Z2ggcGh5c2ljYWwgbWVtb3J5IGluY3JlYXNpbmcgdGhlIGNhY2hlIHdpbGwgaW1wcm92ZSB0
aGUgCi0jIHBlcmZvcm1hbmNlIGJ5IGtlZXBpbmcgbW9yZSBzeW1ib2xzIGluIG1lbW9yeS4gTm90
ZSB0aGF0IHRoZSB2YWx1ZSB3b3JrcyBvbiAKLSMgYSBsb2dhcml0aG1pYyBzY2FsZSBzbyBpbmNy
ZWFzaW5nIHRoZSBzaXplIGJ5IG9uZSB3aWxsIHJvdWdseSBkb3VibGUgdGhlIAotIyBtZW1vcnkg
dXNhZ2UuIFRoZSBjYWNoZSBzaXplIGlzIGdpdmVuIGJ5IHRoaXMgZm9ybXVsYTogCi0jIDJeKDE2
K1NZTUJPTF9DQUNIRV9TSVpFKS4gVGhlIHZhbGlkIHJhbmdlIGlzIDAuLjksIHRoZSBkZWZhdWx0
IGlzIDAsIAotIyBjb3JyZXNwb25kaW5nIHRvIGEgY2FjaGUgc2l6ZSBvZiAyXjE2ID0gNjU1MzYg
c3ltYm9scwotCi1TWU1CT0xfQ0FDSEVfU0laRSAgICAgID0gMAorIyBUaGUgc2l6ZSBvZiB0aGUg
c3ltYm9sIGxvb2t1cCBjYWNoZSBjYW4gYmUgc2V0IHVzaW5nIExPT0tVUF9DQUNIRV9TSVpFLiBU
aGlzCisjIGNhY2hlIGlzIHVzZWQgdG8gcmVzb2x2ZSBzeW1ib2xzIGdpdmVuIHRoZWlyIG5hbWUg
YW5kIHNjb3BlLiBTaW5jZSB0aGlzIGNhbiBiZQorIyBhbiBleHBlbnNpdmUgcHJvY2VzcyBhbmQg
b2Z0ZW4gdGhlIHNhbWUgc3ltYm9sIGFwcGVhcnMgbXVsdGlwbGUgdGltZXMgaW4gdGhlCisjIGNv
ZGUsIGRveHlnZW4ga2VlcHMgYSBjYWNoZSBvZiBwcmUtcmVzb2x2ZWQgc3ltYm9scy4gSWYgdGhl
IGNhY2hlIGlzIHRvbyBzbWFsbAorIyBkb3h5Z2VuIHdpbGwgYmVjb21lIHNsb3dlci4gSWYgdGhl
IGNhY2hlIGlzIHRvbyBsYXJnZSwgbWVtb3J5IGlzIHdhc3RlZC4gVGhlCisjIGNhY2hlIHNpemUg
aXMgZ2l2ZW4gYnkgdGhpcyBmb3JtdWxhOiAyXigxNitMT09LVVBfQ0FDSEVfU0laRSkuIFRoZSB2
YWxpZCByYW5nZQorIyBpcyAwLi45LCB0aGUgZGVmYXVsdCBpcyAwLCBjb3JyZXNwb25kaW5nIHRv
IGEgY2FjaGUgc2l6ZSBvZiAyXjE2PTY1NTM2CisjIHN5bWJvbHMuIEF0IHRoZSBlbmQgb2YgYSBy
dW4gZG94eWdlbiB3aWxsIHJlcG9ydCB0aGUgY2FjaGUgdXNhZ2UgYW5kIHN1Z2dlc3QKKyMgdGhl
IG9wdGltYWwgY2FjaGUgc2l6ZSBmcm9tIGEgc3BlZWQgcG9pbnQgb2Ygdmlldy4KKyMgTWluaW11
bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogOSwgZGVmYXVsdCB2YWx1ZTogMC4KKworTE9PS1VQ
X0NBQ0hFX1NJWkUgICAgICA9IDAKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBCdWlsZCByZWxh
dGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRo
ZSBFWFRSQUNUX0FMTCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgYXNzdW1lIGFsbCBl
bnRpdGllcyBpbiAKLSMgZG9jdW1lbnRhdGlvbiBhcmUgZG9jdW1lbnRlZCwgZXZlbiBpZiBubyBk
b2N1bWVudGF0aW9uIHdhcyBhdmFpbGFibGUuIAotIyBQcml2YXRlIGNsYXNzIG1lbWJlcnMgYW5k
IHN0YXRpYyBmaWxlIG1lbWJlcnMgd2lsbCBiZSBoaWRkZW4gdW5sZXNzIAotIyB0aGUgRVhUUkFD
VF9QUklWQVRFIGFuZCBFWFRSQUNUX1NUQVRJQyB0YWdzIGFyZSBzZXQgdG8gWUVTCisjIElmIHRo
ZSBFWFRSQUNUX0FMTCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgYXNzdW1lIGFsbCBl
bnRpdGllcyBpbgorIyBkb2N1bWVudGF0aW9uIGFyZSBkb2N1bWVudGVkLCBldmVuIGlmIG5vIGRv
Y3VtZW50YXRpb24gd2FzIGF2YWlsYWJsZS4gUHJpdmF0ZQorIyBjbGFzcyBtZW1iZXJzIGFuZCBz
dGF0aWMgZmlsZSBtZW1iZXJzIHdpbGwgYmUgaGlkZGVuIHVubGVzcyB0aGUKKyMgRVhUUkFDVF9Q
UklWQVRFIHJlc3BlY3RpdmVseSBFWFRSQUNUX1NUQVRJQyB0YWdzIGFyZSBzZXQgdG8gWUVTLgor
IyBOb3RlOiBUaGlzIHdpbGwgYWxzbyBkaXNhYmxlIHRoZSB3YXJuaW5ncyBhYm91dCB1bmRvY3Vt
ZW50ZWQgbWVtYmVycyB0aGF0IGFyZQorIyBub3JtYWxseSBwcm9kdWNlZCB3aGVuIFdBUk5JTkdT
IGlzIHNldCB0byBZRVMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogRVhUUkFDVF9B
TEwgICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBFWFRSQUNUX1BSSVZBVEUgdGFnIGlzIHNl
dCB0byBZRVMgYWxsIHByaXZhdGUgbWVtYmVycyBvZiBhIGNsYXNzIAotIyB3aWxsIGJlIGluY2x1
ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBJZiB0aGUgRVhUUkFDVF9QUklWQVRFIHRhZyBp
cyBzZXQgdG8gWUVTIGFsbCBwcml2YXRlIG1lbWJlcnMgb2YgYSBjbGFzcyB3aWxsCisjIGJlIGlu
Y2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CiAKIEVYVFJBQ1RfUFJJVkFURSAgICAgICAgPSBOTwogCi0jIElmIHRoZSBFWFRSQUNUX1NUQVRJ
QyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgc3RhdGljIG1lbWJlcnMgb2YgYSBmaWxlIAotIyB3aWxs
IGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBJZiB0aGUgRVhUUkFDVF9QQUNL
QUdFIHRhZyBpcyBzZXQgdG8gWUVTIGFsbCBtZW1iZXJzIHdpdGggcGFja2FnZSBvciBpbnRlcm5h
bAorIyBzY29wZSB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0VYVFJBQ1RfUEFDS0FHRSAgICAgICAgPSBOTworCisj
IElmIHRoZSBFWFRSQUNUX1NUQVRJQyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgc3RhdGljIG1lbWJl
cnMgb2YgYSBmaWxlIHdpbGwgYmUKKyMgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogRVhUUkFDVF9TVEFUSUMgICAgICAgICA9IFlF
UwogCi0jIElmIHRoZSBFWFRSQUNUX0xPQ0FMX0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMgY2xh
c3NlcyAoYW5kIHN0cnVjdHMpIAotIyBkZWZpbmVkIGxvY2FsbHkgaW4gc291cmNlIGZpbGVzIHdp
bGwgYmUgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uIAotIyBJZiBzZXQgdG8gTk8gb25s
eSBjbGFzc2VzIGRlZmluZWQgaW4gaGVhZGVyIGZpbGVzIGFyZSBpbmNsdWRlZC4KKyMgSWYgdGhl
IEVYVFJBQ1RfTE9DQUxfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlFUyBjbGFzc2VzIChhbmQgc3Ry
dWN0cykgZGVmaW5lZAorIyBsb2NhbGx5IGluIHNvdXJjZSBmaWxlcyB3aWxsIGJlIGluY2x1ZGVk
IGluIHRoZSBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gTk8KKyMgb25seSBjbGFzc2VzIGRlZmlu
ZWQgaW4gaGVhZGVyIGZpbGVzIGFyZSBpbmNsdWRlZC4gRG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0
CisjIGZvciBKYXZhIHNvdXJjZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEVY
VFJBQ1RfTE9DQUxfQ0xBU1NFUyAgPSBOTwogCi0jIFRoaXMgZmxhZyBpcyBvbmx5IHVzZWZ1bCBm
b3IgT2JqZWN0aXZlLUMgY29kZS4gV2hlbiBzZXQgdG8gWUVTIGxvY2FsIAotIyBtZXRob2RzLCB3
aGljaCBhcmUgZGVmaW5lZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gc2VjdGlvbiBidXQgbm90IGlu
IAotIyB0aGUgaW50ZXJmYWNlIGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gCi0j
IElmIHNldCB0byBOTyAodGhlIGRlZmF1bHQpIG9ubHkgbWV0aG9kcyBpbiB0aGUgaW50ZXJmYWNl
IGFyZSBpbmNsdWRlZC4KKyMgVGhpcyBmbGFnIGlzIG9ubHkgdXNlZnVsIGZvciBPYmplY3RpdmUt
QyBjb2RlLiBXaGVuIHNldCB0byBZRVMgbG9jYWwgbWV0aG9kcywKKyMgd2hpY2ggYXJlIGRlZmlu
ZWQgaW4gdGhlIGltcGxlbWVudGF0aW9uIHNlY3Rpb24gYnV0IG5vdCBpbiB0aGUgaW50ZXJmYWNl
IGFyZQorIyBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIE5PIG9ubHkg
bWV0aG9kcyBpbiB0aGUgaW50ZXJmYWNlIGFyZQorIyBpbmNsdWRlZC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgogCiBFWFRSQUNUX0xPQ0FMX01FVEhPRFMgID0gTk8KIAotIyBJZiB0aGlz
IGZsYWcgaXMgc2V0IHRvIFlFUywgdGhlIG1lbWJlcnMgb2YgYW5vbnltb3VzIG5hbWVzcGFjZXMg
d2lsbCBiZSAKLSMgZXh0cmFjdGVkIGFuZCBhcHBlYXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYXMg
YSBuYW1lc3BhY2UgY2FsbGVkIAotIyAnYW5vbnltb3VzX25hbWVzcGFjZXtmaWxlfScsIHdoZXJl
IGZpbGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBiYXNlIAotIyBuYW1lIG9mIHRoZSBmaWxl
IHRoYXQgY29udGFpbnMgdGhlIGFub255bW91cyBuYW1lc3BhY2UuIEJ5IGRlZmF1bHQgCi0jIGFu
b255bW91cyBuYW1lc3BhY2UgYXJlIGhpZGRlbi4KKyMgSWYgdGhpcyBmbGFnIGlzIHNldCB0byBZ
RVMsIHRoZSBtZW1iZXJzIG9mIGFub255bW91cyBuYW1lc3BhY2VzIHdpbGwgYmUKKyMgZXh0cmFj
dGVkIGFuZCBhcHBlYXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYXMgYSBuYW1lc3BhY2UgY2FsbGVk
CisjICdhbm9ueW1vdXNfbmFtZXNwYWNle2ZpbGV9Jywgd2hlcmUgZmlsZSB3aWxsIGJlIHJlcGxh
Y2VkIHdpdGggdGhlIGJhc2UgbmFtZSBvZgorIyB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBh
bm9ueW1vdXMgbmFtZXNwYWNlLiBCeSBkZWZhdWx0IGFub255bW91cyBuYW1lc3BhY2UKKyMgYXJl
IGhpZGRlbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBFWFRSQUNUX0FOT05fTlNQ
QUNFUyAgID0gTk8KIAotIyBJZiB0aGUgSElERV9VTkRPQ19NRU1CRVJTIHRhZyBpcyBzZXQgdG8g
WUVTLCBEb3h5Z2VuIHdpbGwgaGlkZSBhbGwgCi0jIHVuZG9jdW1lbnRlZCBtZW1iZXJzIG9mIGRv
Y3VtZW50ZWQgY2xhc3NlcywgZmlsZXMgb3IgbmFtZXNwYWNlcy4gCi0jIElmIHNldCB0byBOTyAo
dGhlIGRlZmF1bHQpIHRoZXNlIG1lbWJlcnMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgCi0jIHZh
cmlvdXMgb3ZlcnZpZXdzLCBidXQgbm8gZG9jdW1lbnRhdGlvbiBzZWN0aW9uIGlzIGdlbmVyYXRl
ZC4gCi0jIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QgaWYgRVhUUkFDVF9BTEwgaXMgZW5hYmxl
ZC4KKyMgSWYgdGhlIEhJREVfVU5ET0NfTUVNQkVSUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdl
biB3aWxsIGhpZGUgYWxsCisjIHVuZG9jdW1lbnRlZCBtZW1iZXJzIGluc2lkZSBkb2N1bWVudGVk
IGNsYXNzZXMgb3IgZmlsZXMuIElmIHNldCB0byBOTyB0aGVzZQorIyBtZW1iZXJzIHdpbGwgYmUg
aW5jbHVkZWQgaW4gdGhlIHZhcmlvdXMgb3ZlcnZpZXdzLCBidXQgbm8gZG9jdW1lbnRhdGlvbgor
IyBzZWN0aW9uIGlzIGdlbmVyYXRlZC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBpZiBFWFRS
QUNUX0FMTCBpcyBlbmFibGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEhJREVf
VU5ET0NfTUVNQkVSUyAgICAgPSBOTwogCi0jIElmIHRoZSBISURFX1VORE9DX0NMQVNTRVMgdGFn
IGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBoaWRlIGFsbCAKLSMgdW5kb2N1bWVudGVkIGNs
YXNzZXMgdGhhdCBhcmUgbm9ybWFsbHkgdmlzaWJsZSBpbiB0aGUgY2xhc3MgaGllcmFyY2h5LiAK
LSMgSWYgc2V0IHRvIE5PICh0aGUgZGVmYXVsdCkgdGhlc2UgY2xhc3NlcyB3aWxsIGJlIGluY2x1
ZGVkIGluIHRoZSB2YXJpb3VzIAotIyBvdmVydmlld3MuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZl
Y3QgaWYgRVhUUkFDVF9BTEwgaXMgZW5hYmxlZC4KKyMgSWYgdGhlIEhJREVfVU5ET0NfQ0xBU1NF
UyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYWxsCisjIHVuZG9jdW1lbnRl
ZCBjbGFzc2VzIHRoYXQgYXJlIG5vcm1hbGx5IHZpc2libGUgaW4gdGhlIGNsYXNzIGhpZXJhcmNo
eS4gSWYgc2V0CisjIHRvIE5PIHRoZXNlIGNsYXNzZXMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUg
dmFyaW91cyBvdmVydmlld3MuIFRoaXMgb3B0aW9uIGhhcworIyBubyBlZmZlY3QgaWYgRVhUUkFD
VF9BTEwgaXMgZW5hYmxlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBISURFX1VO
RE9DX0NMQVNTRVMgICAgID0gTk8KIAotIyBJZiB0aGUgSElERV9GUklFTkRfQ09NUE9VTkRTIHRh
ZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgaGlkZSBhbGwgCi0jIGZyaWVuZCAoY2xhc3N8
c3RydWN0fHVuaW9uKSBkZWNsYXJhdGlvbnMuIAotIyBJZiBzZXQgdG8gTk8gKHRoZSBkZWZhdWx0
KSB0aGVzZSBkZWNsYXJhdGlvbnMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgCi0jIGRvY3VtZW50
YXRpb24uCisjIElmIHRoZSBISURFX0ZSSUVORF9DT01QT1VORFMgdGFnIGlzIHNldCB0byBZRVMs
IGRveHlnZW4gd2lsbCBoaWRlIGFsbCBmcmllbmQKKyMgKGNsYXNzfHN0cnVjdHx1bmlvbikgZGVj
bGFyYXRpb25zLiBJZiBzZXQgdG8gTk8gdGhlc2UgZGVjbGFyYXRpb25zIHdpbGwgYmUKKyMgaW5j
bHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
IAogSElERV9GUklFTkRfQ09NUE9VTkRTICA9IE5PCiAKLSMgSWYgdGhlIEhJREVfSU5fQk9EWV9E
T0NTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgaGlkZSBhbnkgCi0jIGRvY3VtZW50
YXRpb24gYmxvY2tzIGZvdW5kIGluc2lkZSB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uLiAKLSMgSWYg
c2V0IHRvIE5PICh0aGUgZGVmYXVsdCkgdGhlc2UgYmxvY2tzIHdpbGwgYmUgYXBwZW5kZWQgdG8g
dGhlIAotIyBmdW5jdGlvbidzIGRldGFpbGVkIGRvY3VtZW50YXRpb24gYmxvY2suCisjIElmIHRo
ZSBISURFX0lOX0JPRFlfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUg
YW55CisjIGRvY3VtZW50YXRpb24gYmxvY2tzIGZvdW5kIGluc2lkZSB0aGUgYm9keSBvZiBhIGZ1
bmN0aW9uLiBJZiBzZXQgdG8gTk8gdGhlc2UKKyMgYmxvY2tzIHdpbGwgYmUgYXBwZW5kZWQgdG8g
dGhlIGZ1bmN0aW9uJ3MgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBibG9jay4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgogCiBISURFX0lOX0JPRFlfRE9DUyAgICAgID0gTk8KIAotIyBUaGUg
SU5URVJOQUxfRE9DUyB0YWcgZGV0ZXJtaW5lcyBpZiBkb2N1bWVudGF0aW9uIAotIyB0aGF0IGlz
IHR5cGVkIGFmdGVyIGEgXGludGVybmFsIGNvbW1hbmQgaXMgaW5jbHVkZWQuIElmIHRoZSB0YWcg
aXMgc2V0IAotIyB0byBOTyAodGhlIGRlZmF1bHQpIHRoZW4gdGhlIGRvY3VtZW50YXRpb24gd2ls
bCBiZSBleGNsdWRlZC4gCi0jIFNldCBpdCB0byBZRVMgdG8gaW5jbHVkZSB0aGUgaW50ZXJuYWwg
ZG9jdW1lbnRhdGlvbi4KKyMgVGhlIElOVEVSTkFMX0RPQ1MgdGFnIGRldGVybWluZXMgaWYgZG9j
dW1lbnRhdGlvbiB0aGF0IGlzIHR5cGVkIGFmdGVyIGEKKyMgXGludGVybmFsIGNvbW1hbmQgaXMg
aW5jbHVkZWQuIElmIHRoZSB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gdGhlIGRvY3VtZW50YXRpb24K
KyMgd2lsbCBiZSBleGNsdWRlZC4gU2V0IGl0IHRvIFlFUyB0byBpbmNsdWRlIHRoZSBpbnRlcm5h
bCBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIElOVEVSTkFM
X0RPQ1MgICAgICAgICAgPSBZRVMKIAotIyBJZiB0aGUgQ0FTRV9TRU5TRV9OQU1FUyB0YWcgaXMg
c2V0IHRvIE5PIHRoZW4gRG94eWdlbiB3aWxsIG9ubHkgZ2VuZXJhdGUgCi0jIGZpbGUgbmFtZXMg
aW4gbG93ZXItY2FzZSBsZXR0ZXJzLiBJZiBzZXQgdG8gWUVTIHVwcGVyLWNhc2UgbGV0dGVycyBh
cmUgYWxzbyAKLSMgYWxsb3dlZC4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IGhhdmUgY2xhc3NlcyBv
ciBmaWxlcyB3aG9zZSBuYW1lcyBvbmx5IGRpZmZlciAKLSMgaW4gY2FzZSBhbmQgaWYgeW91ciBm
aWxlIHN5c3RlbSBzdXBwb3J0cyBjYXNlIHNlbnNpdGl2ZSBmaWxlIG5hbWVzLiBXaW5kb3dzIAor
IyBJZiB0aGUgQ0FTRV9TRU5TRV9OQU1FUyB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gZG94eWdlbiB3
aWxsIG9ubHkgZ2VuZXJhdGUgZmlsZQorIyBuYW1lcyBpbiBsb3dlci1jYXNlIGxldHRlcnMuIElm
IHNldCB0byBZRVMgdXBwZXItY2FzZSBsZXR0ZXJzIGFyZSBhbHNvCisjIGFsbG93ZWQuIFRoaXMg
aXMgdXNlZnVsIGlmIHlvdSBoYXZlIGNsYXNzZXMgb3IgZmlsZXMgd2hvc2UgbmFtZXMgb25seSBk
aWZmZXIKKyMgaW4gY2FzZSBhbmQgaWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0cyBjYXNlIHNl
bnNpdGl2ZSBmaWxlIG5hbWVzLiBXaW5kb3dzCiAjIGFuZCBNYWMgdXNlcnMgYXJlIGFkdmlzZWQg
dG8gc2V0IHRoaXMgb3B0aW9uIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogc3lzdGVt
IGRlcGVuZGVudC4KIAogQ0FTRV9TRU5TRV9OQU1FUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIEhJ
REVfU0NPUEVfTkFNRVMgdGFnIGlzIHNldCB0byBOTyAodGhlIGRlZmF1bHQpIHRoZW4gRG94eWdl
biAKLSMgd2lsbCBzaG93IG1lbWJlcnMgd2l0aCB0aGVpciBmdWxsIGNsYXNzIGFuZCBuYW1lc3Bh
Y2Ugc2NvcGVzIGluIHRoZSAKLSMgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIFlFUyB0aGUgc2Nv
cGUgd2lsbCBiZSBoaWRkZW4uCisjIElmIHRoZSBISURFX1NDT1BFX05BTUVTIHRhZyBpcyBzZXQg
dG8gTk8gdGhlbiBkb3h5Z2VuIHdpbGwgc2hvdyBtZW1iZXJzIHdpdGgKKyMgdGhlaXIgZnVsbCBj
bGFzcyBhbmQgbmFtZXNwYWNlIHNjb3BlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRv
IFlFUyB0aGUKKyMgc2NvcGUgd2lsbCBiZSBoaWRkZW4uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KIAogSElERV9TQ09QRV9OQU1FUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFNIT1dfSU5D
TFVERV9GSUxFUyB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIHRoZW4gRG94eWdlbiAK
LSMgd2lsbCBwdXQgYSBsaXN0IG9mIHRoZSBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBieSBhIGZp
bGUgaW4gdGhlIGRvY3VtZW50YXRpb24gCi0jIG9mIHRoYXQgZmlsZS4KKyMgSWYgdGhlIFNIT1df
SU5DTFVERV9GSUxFUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBwdXQgYSBs
aXN0IG9mCisjIHRoZSBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBieSBhIGZpbGUgaW4gdGhlIGRv
Y3VtZW50YXRpb24gb2YgdGhhdCBmaWxlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgog
CiBTSE9XX0lOQ0xVREVfRklMRVMgICAgID0gWUVTCiAKLSMgSWYgdGhlIElOTElORV9JTkZPIHRh
ZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkgdGhlbiBhIHRhZyBbaW5saW5lXSAKLSMgaXMg
aW5zZXJ0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gZm9yIGlubGluZSBtZW1iZXJzLgorIyBJZiB0
aGUgRk9SQ0VfTE9DQUxfSU5DTFVERVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdp
bGwgbGlzdCBpbmNsdWRlCisjIGZpbGVzIHdpdGggZG91YmxlIHF1b3RlcyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiByYXRoZXIgdGhhbiB3aXRoIHNoYXJwIGJyYWNrZXRzLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCisKK0ZPUkNFX0xPQ0FMX0lOQ0xVREVTICAgPSBOTworCisjIElmIHRoZSBJ
TkxJTkVfSU5GTyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGEgdGFnIFtpbmxpbmVdIGlzIGluc2Vy
dGVkIGluIHRoZQorIyBkb2N1bWVudGF0aW9uIGZvciBpbmxpbmUgbWVtYmVycy4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogSU5MSU5FX0lORk8gICAgICAgICAgICA9IFlFUwogCi0j
IElmIHRoZSBTT1JUX01FTUJFUl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkg
dGhlbiBkb3h5Z2VuIAotIyB3aWxsIHNvcnQgdGhlIChkZXRhaWxlZCkgZG9jdW1lbnRhdGlvbiBv
ZiBmaWxlIGFuZCBjbGFzcyBtZW1iZXJzIAotIyBhbHBoYWJldGljYWxseSBieSBtZW1iZXIgbmFt
ZS4gSWYgc2V0IHRvIE5PIHRoZSBtZW1iZXJzIHdpbGwgYXBwZWFyIGluIAotIyBkZWNsYXJhdGlv
biBvcmRlci4KKyMgSWYgdGhlIFNPUlRfTUVNQkVSX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhl
biBkb3h5Z2VuIHdpbGwgc29ydCB0aGUKKyMgKGRldGFpbGVkKSBkb2N1bWVudGF0aW9uIG9mIGZp
bGUgYW5kIGNsYXNzIG1lbWJlcnMgYWxwaGFiZXRpY2FsbHkgYnkgbWVtYmVyCisjIG5hbWUuIElm
IHNldCB0byBOTyB0aGUgbWVtYmVycyB3aWxsIGFwcGVhciBpbiBkZWNsYXJhdGlvbiBvcmRlci4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogU09SVF9NRU1CRVJfRE9DUyAgICAgICA9
IFlFUwogCi0jIElmIHRoZSBTT1JUX0JSSUVGX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBk
b3h5Z2VuIHdpbGwgc29ydCB0aGUgCi0jIGJyaWVmIGRvY3VtZW50YXRpb24gb2YgZmlsZSwgbmFt
ZXNwYWNlIGFuZCBjbGFzcyBtZW1iZXJzIGFscGhhYmV0aWNhbGx5IAotIyBieSBtZW1iZXIgbmFt
ZS4gSWYgc2V0IHRvIE5PICh0aGUgZGVmYXVsdCkgdGhlIG1lbWJlcnMgd2lsbCBhcHBlYXIgaW4g
Ci0jIGRlY2xhcmF0aW9uIG9yZGVyLgorIyBJZiB0aGUgU09SVF9CUklFRl9ET0NTIHRhZyBpcyBz
ZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlIGJyaWVmCisjIGRlc2NyaXB0aW9u
cyBvZiBmaWxlLCBuYW1lc3BhY2UgYW5kIGNsYXNzIG1lbWJlcnMgYWxwaGFiZXRpY2FsbHkgYnkg
bWVtYmVyCisjIG5hbWUuIElmIHNldCB0byBOTyB0aGUgbWVtYmVycyB3aWxsIGFwcGVhciBpbiBk
ZWNsYXJhdGlvbiBvcmRlci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTT1JUX0JS
SUVGX0RPQ1MgICAgICAgID0gTk8KIAotIyBJZiB0aGUgU09SVF9HUk9VUF9OQU1FUyB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBzb3J0IHRoZSAKLSMgaGllcmFyY2h5IG9mIGdy
b3VwIG5hbWVzIGludG8gYWxwaGFiZXRpY2FsIG9yZGVyLiBJZiBzZXQgdG8gTk8gKHRoZSBkZWZh
dWx0KSAKLSMgdGhlIGdyb3VwIG5hbWVzIHdpbGwgYXBwZWFyIGluIHRoZWlyIGRlZmluZWQgb3Jk
ZXIuCisjIElmIHRoZSBTT1JUX01FTUJFUlNfQ1RPUlNfMVNUIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlCisjIChicmllZiBhbmQgZGV0YWlsZWQpIGRvY3VtZW50
YXRpb24gb2YgY2xhc3MgbWVtYmVycyBzbyB0aGF0IGNvbnN0cnVjdG9ycyBhbmQKKyMgZGVzdHJ1
Y3RvcnMgYXJlIGxpc3RlZCBmaXJzdC4gSWYgc2V0IHRvIE5PIHRoZSBjb25zdHJ1Y3RvcnMgd2ls
bCBhcHBlYXIgaW4gdGhlCisjIHJlc3BlY3RpdmUgb3JkZXJzIGRlZmluZWQgYnkgU09SVF9CUklF
Rl9ET0NTIGFuZCBTT1JUX01FTUJFUl9ET0NTLgorIyBOb3RlOiBJZiBTT1JUX0JSSUVGX0RPQ1Mg
aXMgc2V0IHRvIE5PIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgZm9yIHNvcnRpbmcgYnJpZWYKKyMg
bWVtYmVyIGRvY3VtZW50YXRpb24uCisjIE5vdGU6IElmIFNPUlRfTUVNQkVSX0RPQ1MgaXMgc2V0
IHRvIE5PIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgZm9yIHNvcnRpbmcKKyMgZGV0YWlsZWQgbWVt
YmVyIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworU09SVF9N
RU1CRVJTX0NUT1JTXzFTVCA9IE5PCisKKyMgSWYgdGhlIFNPUlRfR1JPVVBfTkFNRVMgdGFnIGlz
IHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc29ydCB0aGUgaGllcmFyY2h5CisjIG9mIGdy
b3VwIG5hbWVzIGludG8gYWxwaGFiZXRpY2FsIG9yZGVyLiBJZiBzZXQgdG8gTk8gdGhlIGdyb3Vw
IG5hbWVzIHdpbGwKKyMgYXBwZWFyIGluIHRoZWlyIGRlZmluZWQgb3JkZXIuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KIAogU09SVF9HUk9VUF9OQU1FUyAgICAgICA9IE5PCiAKLSMgSWYg
dGhlIFNPUlRfQllfU0NPUEVfTkFNRSB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIGNsYXNzIGxpc3Qg
d2lsbCBiZSAKLSMgc29ydGVkIGJ5IGZ1bGx5LXF1YWxpZmllZCBuYW1lcywgaW5jbHVkaW5nIG5h
bWVzcGFjZXMuIElmIHNldCB0byAKLSMgTk8gKHRoZSBkZWZhdWx0KSwgdGhlIGNsYXNzIGxpc3Qg
d2lsbCBiZSBzb3J0ZWQgb25seSBieSBjbGFzcyBuYW1lLCAKLSMgbm90IGluY2x1ZGluZyB0aGUg
bmFtZXNwYWNlIHBhcnQuIAotIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBub3QgdmVyeSB1c2VmdWwg
aWYgSElERV9TQ09QRV9OQU1FUyBpcyBzZXQgdG8gWUVTLiAKLSMgTm90ZTogVGhpcyBvcHRpb24g
YXBwbGllcyBvbmx5IHRvIHRoZSBjbGFzcyBsaXN0LCBub3QgdG8gdGhlIAotIyBhbHBoYWJldGlj
YWwgbGlzdC4KKyMgSWYgdGhlIFNPUlRfQllfU0NPUEVfTkFNRSB0YWcgaXMgc2V0IHRvIFlFUywg
dGhlIGNsYXNzIGxpc3Qgd2lsbCBiZSBzb3J0ZWQgYnkKKyMgZnVsbHktcXVhbGlmaWVkIG5hbWVz
LCBpbmNsdWRpbmcgbmFtZXNwYWNlcy4gSWYgc2V0IHRvIE5PLCB0aGUgY2xhc3MgbGlzdCB3aWxs
CisjIGJlIHNvcnRlZCBvbmx5IGJ5IGNsYXNzIG5hbWUsIG5vdCBpbmNsdWRpbmcgdGhlIG5hbWVz
cGFjZSBwYXJ0LgorIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBub3QgdmVyeSB1c2VmdWwgaWYgSElE
RV9TQ09QRV9OQU1FUyBpcyBzZXQgdG8gWUVTLgorIyBOb3RlOiBUaGlzIG9wdGlvbiBhcHBsaWVz
IG9ubHkgdG8gdGhlIGNsYXNzIGxpc3QsIG5vdCB0byB0aGUgYWxwaGFiZXRpY2FsCisjIGxpc3Qu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogU09SVF9CWV9TQ09QRV9OQU1FICAgICA9
IFlFUwogCi0jIFRoZSBHRU5FUkFURV9UT0RPTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxl
IChZRVMpIG9yIAotIyBkaXNhYmxlIChOTykgdGhlIHRvZG8gbGlzdC4gVGhpcyBsaXN0IGlzIGNy
ZWF0ZWQgYnkgcHV0dGluZyBcdG9kbyAKLSMgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24u
CisjIElmIHRoZSBTVFJJQ1RfUFJPVE9fTUFUQ0hJTkcgb3B0aW9uIGlzIGVuYWJsZWQgYW5kIGRv
eHlnZW4gZmFpbHMgdG8gZG8gcHJvcGVyCisjIHR5cGUgcmVzb2x1dGlvbiBvZiBhbGwgcGFyYW1l
dGVycyBvZiBhIGZ1bmN0aW9uIGl0IHdpbGwgcmVqZWN0IGEgbWF0Y2ggYmV0d2VlbgorIyB0aGUg
cHJvdG90eXBlIGFuZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgYSBtZW1iZXIgZnVuY3Rpb24gZXZl
biBpZiB0aGVyZSBpcworIyBvbmx5IG9uZSBjYW5kaWRhdGUgb3IgaXQgaXMgb2J2aW91cyB3aGlj
aCBjYW5kaWRhdGUgdG8gY2hvb3NlIGJ5IGRvaW5nIGEKKyMgc2ltcGxlIHN0cmluZyBtYXRjaC4g
QnkgZGlzYWJsaW5nIFNUUklDVF9QUk9UT19NQVRDSElORyBkb3h5Z2VuIHdpbGwgc3RpbGwKKyMg
YWNjZXB0IGEgbWF0Y2ggYmV0d2VlbiBwcm90b3R5cGUgYW5kIGltcGxlbWVudGF0aW9uIGluIHN1
Y2ggY2FzZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworU1RSSUNUX1BST1RPX01B
VENISU5HICA9IE5PCisKKyMgVGhlIEdFTkVSQVRFX1RPRE9MSVNUIHRhZyBjYW4gYmUgdXNlZCB0
byBlbmFibGUgKCBZRVMpIG9yIGRpc2FibGUgKCBOTykgdGhlCisjIHRvZG8gbGlzdC4gVGhpcyBs
aXN0IGlzIGNyZWF0ZWQgYnkgcHV0dGluZyBcdG9kbyBjb21tYW5kcyBpbiB0aGUKKyMgZG9jdW1l
bnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogR0VORVJBVEVfVE9ET0xJ
U1QgICAgICA9IFlFUwogCi0jIFRoZSBHRU5FUkFURV9URVNUTElTVCB0YWcgY2FuIGJlIHVzZWQg
dG8gZW5hYmxlIChZRVMpIG9yIAotIyBkaXNhYmxlIChOTykgdGhlIHRlc3QgbGlzdC4gVGhpcyBs
aXN0IGlzIGNyZWF0ZWQgYnkgcHV0dGluZyBcdGVzdCAKLSMgY29tbWFuZHMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24uCisjIFRoZSBHRU5FUkFURV9URVNUTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5h
YmxlICggWUVTKSBvciBkaXNhYmxlICggTk8pIHRoZQorIyB0ZXN0IGxpc3QuIFRoaXMgbGlzdCBp
cyBjcmVhdGVkIGJ5IHB1dHRpbmcgXHRlc3QgY29tbWFuZHMgaW4gdGhlCisjIGRvY3VtZW50YXRp
b24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEdFTkVSQVRFX1RFU1RMSVNUICAg
ICAgPSBOTwogCi0jIFRoZSBHRU5FUkFURV9CVUdMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFi
bGUgKFlFUykgb3IgCi0jIGRpc2FibGUgKE5PKSB0aGUgYnVnIGxpc3QuIFRoaXMgbGlzdCBpcyBj
cmVhdGVkIGJ5IHB1dHRpbmcgXGJ1ZyAKLSMgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24u
CisjIFRoZSBHRU5FUkFURV9CVUdMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKCBZRVMp
IG9yIGRpc2FibGUgKCBOTykgdGhlIGJ1ZworIyBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRlZCBi
eSBwdXR0aW5nIFxidWcgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBZRVMuCiAKIEdFTkVSQVRFX0JVR0xJU1QgICAgICAgPSBOTwogCi0jIFRo
ZSBHRU5FUkFURV9ERVBSRUNBVEVETElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIChZRVMp
IG9yIAotIyBkaXNhYmxlIChOTykgdGhlIGRlcHJlY2F0ZWQgbGlzdC4gVGhpcyBsaXN0IGlzIGNy
ZWF0ZWQgYnkgcHV0dGluZyAKLSMgXGRlcHJlY2F0ZWQgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50
YXRpb24uCisjIFRoZSBHRU5FUkFURV9ERVBSRUNBVEVETElTVCB0YWcgY2FuIGJlIHVzZWQgdG8g
ZW5hYmxlICggWUVTKSBvciBkaXNhYmxlICggTk8pCisjIHRoZSBkZXByZWNhdGVkIGxpc3QuIFRo
aXMgbGlzdCBpcyBjcmVhdGVkIGJ5IHB1dHRpbmcgXGRlcHJlY2F0ZWQgY29tbWFuZHMgaW4KKyMg
dGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEdFTkVS
QVRFX0RFUFJFQ0FURURMSVNUPSBZRVMKIAotIyBUaGUgRU5BQkxFRF9TRUNUSU9OUyB0YWcgY2Fu
IGJlIHVzZWQgdG8gZW5hYmxlIGNvbmRpdGlvbmFsIAotIyBkb2N1bWVudGF0aW9uIHNlY3Rpb25z
LCBtYXJrZWQgYnkgXGlmIHNlY3Rpb25uYW1lIC4uLiBcZW5kaWYuCisjIFRoZSBFTkFCTEVEX1NF
Q1RJT05TIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgY29uZGl0aW9uYWwgZG9jdW1lbnRhdGlv
bgorIyBzZWN0aW9ucywgbWFya2VkIGJ5IFxpZiA8c2VjdGlvbl9sYWJlbD4gLi4uIFxlbmRpZiBh
bmQgXGNvbmQgPHNlY3Rpb25fbGFiZWw+CisjIC4uLiBcZW5kY29uZCBibG9ja3MuCiAKLUVOQUJM
RURfU0VDVElPTlMgICAgICAgPSAKK0VOQUJMRURfU0VDVElPTlMgICAgICAgPQogCi0jIFRoZSBN
QVhfSU5JVElBTElaRVJfTElORVMgdGFnIGRldGVybWluZXMgdGhlIG1heGltdW0gbnVtYmVyIG9m
IGxpbmVzIAotIyB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBhIHZhcmlhYmxlIG9yIGRlZmluZSBjb25z
aXN0cyBvZiBmb3IgaXQgdG8gYXBwZWFyIGluIAotIyB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgdGhl
IGluaXRpYWxpemVyIGNvbnNpc3RzIG9mIG1vcmUgbGluZXMgdGhhbiBzcGVjaWZpZWQgCi0jIGhl
cmUgaXQgd2lsbCBiZSBoaWRkZW4uIFVzZSBhIHZhbHVlIG9mIDAgdG8gaGlkZSBpbml0aWFsaXpl
cnMgY29tcGxldGVseS4gCi0jIFRoZSBhcHBlYXJhbmNlIG9mIHRoZSBpbml0aWFsaXplciBvZiBp
bmRpdmlkdWFsIHZhcmlhYmxlcyBhbmQgZGVmaW5lcyBpbiB0aGUgCi0jIGRvY3VtZW50YXRpb24g
Y2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgXHNob3dpbml0aWFsaXplciBvciBcaGlkZWluaXRpYWxp
emVyIAotIyBjb21tYW5kIGluIHRoZSBkb2N1bWVudGF0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhpcyBz
ZXR0aW5nLgorIyBUaGUgTUFYX0lOSVRJQUxJWkVSX0xJTkVTIHRhZyBkZXRlcm1pbmVzIHRoZSBt
YXhpbXVtIG51bWJlciBvZiBsaW5lcyB0aGF0IHRoZQorIyBpbml0aWFsIHZhbHVlIG9mIGEgdmFy
aWFibGUgb3IgbWFjcm8gLyBkZWZpbmUgY2FuIGhhdmUgZm9yIGl0IHRvIGFwcGVhciBpbiB0aGUK
KyMgZG9jdW1lbnRhdGlvbi4gSWYgdGhlIGluaXRpYWxpemVyIGNvbnNpc3RzIG9mIG1vcmUgbGlu
ZXMgdGhhbiBzcGVjaWZpZWQgaGVyZQorIyBpdCB3aWxsIGJlIGhpZGRlbi4gVXNlIGEgdmFsdWUg
b2YgMCB0byBoaWRlIGluaXRpYWxpemVycyBjb21wbGV0ZWx5LiBUaGUKKyMgYXBwZWFyYW5jZSBv
ZiB0aGUgdmFsdWUgb2YgaW5kaXZpZHVhbCB2YXJpYWJsZXMgYW5kIG1hY3JvcyAvIGRlZmluZXMg
Y2FuIGJlCisjIGNvbnRyb2xsZWQgdXNpbmcgXHNob3dpbml0aWFsaXplciBvciBcaGlkZWluaXRp
YWxpemVyIGNvbW1hbmQgaW4gdGhlCisjIGRvY3VtZW50YXRpb24gcmVnYXJkbGVzcyBvZiB0aGlz
IHNldHRpbmcuCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMDAwLCBkZWZh
dWx0IHZhbHVlOiAzMC4KIAogTUFYX0lOSVRJQUxJWkVSX0xJTkVTICA9IDMwCiAKLSMgU2V0IHRo
ZSBTSE9XX1VTRURfRklMRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGxpc3Qgb2YgZmlsZXMg
Z2VuZXJhdGVkIAotIyBhdCB0aGUgYm90dG9tIG9mIHRoZSBkb2N1bWVudGF0aW9uIG9mIGNsYXNz
ZXMgYW5kIHN0cnVjdHMuIElmIHNldCB0byBZRVMgdGhlIAotIyBsaXN0IHdpbGwgbWVudGlvbiB0
aGUgZmlsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGRvY3VtZW50YXRpb24uCisj
IFNldCB0aGUgU0hPV19VU0VEX0ZJTEVTIHRhZyB0byBOTyB0byBkaXNhYmxlIHRoZSBsaXN0IG9m
IGZpbGVzIGdlbmVyYXRlZCBhdAorIyB0aGUgYm90dG9tIG9mIHRoZSBkb2N1bWVudGF0aW9uIG9m
IGNsYXNzZXMgYW5kIHN0cnVjdHMuIElmIHNldCB0byBZRVMgdGhlIGxpc3QKKyMgd2lsbCBtZW50
aW9uIHRoZSBmaWxlcyB0aGF0IHdlcmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlv
bi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogU0hPV19VU0VEX0ZJTEVTICAgICAg
ICA9IFlFUwogCi0jIElmIHRoZSBzb3VyY2VzIGluIHlvdXIgcHJvamVjdCBhcmUgZGlzdHJpYnV0
ZWQgb3ZlciBtdWx0aXBsZSBkaXJlY3RvcmllcyAKLSMgdGhlbiBzZXR0aW5nIHRoZSBTSE9XX0RJ
UkVDVE9SSUVTIHRhZyB0byBZRVMgd2lsbCBzaG93IHRoZSBkaXJlY3RvcnkgaGllcmFyY2h5IAot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gVGhlIGRlZmF1bHQgaXMgTk8uCi0KLVNIT1dfRElSRUNU
T1JJRVMgICAgICAgPSBZRVMKLQotIyBTZXQgdGhlIFNIT1dfRklMRVMgdGFnIHRvIE5PIHRvIGRp
c2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIEZpbGVzIHBhZ2UuIAotIyBUaGlzIHdpbGwgcmVt
b3ZlIHRoZSBGaWxlcyBlbnRyeSBmcm9tIHRoZSBRdWljayBJbmRleCBhbmQgZnJvbSB0aGUgCi0j
IEZvbGRlciBUcmVlIFZpZXcgKGlmIHNwZWNpZmllZCkuIFRoZSBkZWZhdWx0IGlzIFlFUy4KKyMg
U2V0IHRoZSBTSE9XX0ZJTEVTIHRhZyB0byBOTyB0byBkaXNhYmxlIHRoZSBnZW5lcmF0aW9uIG9m
IHRoZSBGaWxlcyBwYWdlLiBUaGlzCisjIHdpbGwgcmVtb3ZlIHRoZSBGaWxlcyBlbnRyeSBmcm9t
IHRoZSBRdWljayBJbmRleCBhbmQgZnJvbSB0aGUgRm9sZGVyIFRyZWUgVmlldworIyAoaWYgc3Bl
Y2lmaWVkKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogU0hPV19GSUxFUyAgICAg
ICAgICAgICA9IFlFUwogCi0jIFNldCB0aGUgU0hPV19OQU1FU1BBQ0VTIHRhZyB0byBOTyB0byBk
aXNhYmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSAKLSMgTmFtZXNwYWNlcyBwYWdlLiAKLSMgVGhp
cyB3aWxsIHJlbW92ZSB0aGUgTmFtZXNwYWNlcyBlbnRyeSBmcm9tIHRoZSBRdWljayBJbmRleCAK
LSMgYW5kIGZyb20gdGhlIEZvbGRlciBUcmVlIFZpZXcgKGlmIHNwZWNpZmllZCkuIFRoZSBkZWZh
dWx0IGlzIFlFUy4KKyMgU2V0IHRoZSBTSE9XX05BTUVTUEFDRVMgdGFnIHRvIE5PIHRvIGRpc2Fi
bGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIE5hbWVzcGFjZXMKKyMgcGFnZS4gVGhpcyB3aWxsIHJl
bW92ZSB0aGUgTmFtZXNwYWNlcyBlbnRyeSBmcm9tIHRoZSBRdWljayBJbmRleCBhbmQgZnJvbSB0
aGUKKyMgRm9sZGVyIFRyZWUgVmlldyAoaWYgc3BlY2lmaWVkKS4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KIAogU0hPV19OQU1FU1BBQ0VTICAgICAgICA9IFlFUwogCi0jIFRoZSBGSUxF
X1ZFUlNJT05fRklMVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJvZ3JhbSBvciBz
Y3JpcHQgdGhhdCAKLSMgZG94eWdlbiBzaG91bGQgaW52b2tlIHRvIGdldCB0aGUgY3VycmVudCB2
ZXJzaW9uIGZvciBlYWNoIGZpbGUgKHR5cGljYWxseSBmcm9tIAotIyB0aGUgdmVyc2lvbiBjb250
cm9sIHN5c3RlbSkuIERveHlnZW4gd2lsbCBpbnZva2UgdGhlIHByb2dyYW0gYnkgZXhlY3V0aW5n
ICh2aWEgCi0jIHBvcGVuKCkpIHRoZSBjb21tYW5kIDxjb21tYW5kPiA8aW5wdXQtZmlsZT4sIHdo
ZXJlIDxjb21tYW5kPiBpcyB0aGUgdmFsdWUgb2YgCi0jIHRoZSBGSUxFX1ZFUlNJT05fRklMVEVS
IHRhZywgYW5kIDxpbnB1dC1maWxlPiBpcyB0aGUgbmFtZSBvZiBhbiBpbnB1dCBmaWxlIAotIyBw
cm92aWRlZCBieSBkb3h5Z2VuLiBXaGF0ZXZlciB0aGUgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRh
cmQgb3V0cHV0IAotIyBpcyB1c2VkIGFzIHRoZSBmaWxlIHZlcnNpb24uIFNlZSB0aGUgbWFudWFs
IGZvciBleGFtcGxlcy4KKyMgVGhlIEZJTEVfVkVSU0lPTl9GSUxURVIgdGFnIGNhbiBiZSB1c2Vk
IHRvIHNwZWNpZnkgYSBwcm9ncmFtIG9yIHNjcmlwdCB0aGF0CisjIGRveHlnZW4gc2hvdWxkIGlu
dm9rZSB0byBnZXQgdGhlIGN1cnJlbnQgdmVyc2lvbiBmb3IgZWFjaCBmaWxlICh0eXBpY2FsbHkg
ZnJvbQorIyB0aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbSkuIERveHlnZW4gd2lsbCBpbnZva2Ug
dGhlIHByb2dyYW0gYnkgZXhlY3V0aW5nICh2aWEKKyMgcG9wZW4oKSkgdGhlIGNvbW1hbmQgY29t
bWFuZCBpbnB1dC1maWxlLCB3aGVyZSBjb21tYW5kIGlzIHRoZSB2YWx1ZSBvZiB0aGUKKyMgRklM
RV9WRVJTSU9OX0ZJTFRFUiB0YWcsIGFuZCBpbnB1dC1maWxlIGlzIHRoZSBuYW1lIG9mIGFuIGlu
cHV0IGZpbGUgcHJvdmlkZWQKKyMgYnkgZG94eWdlbi4gV2hhdGV2ZXIgdGhlIHByb2dyYW0gd3Jp
dGVzIHRvIHN0YW5kYXJkIG91dHB1dCBpcyB1c2VkIGFzIHRoZSBmaWxlCisjIHZlcnNpb24uIEZv
ciBhbiBleGFtcGxlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4KKworRklMRV9WRVJTSU9OX0ZJTFRF
UiAgICA9CisKKyMgVGhlIExBWU9VVF9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEg
bGF5b3V0IGZpbGUgd2hpY2ggd2lsbCBiZSBwYXJzZWQKKyMgYnkgZG94eWdlbi4gVGhlIGxheW91
dCBmaWxlIGNvbnRyb2xzIHRoZSBnbG9iYWwgc3RydWN0dXJlIG9mIHRoZSBnZW5lcmF0ZWQKKyMg
b3V0cHV0IGZpbGVzIGluIGFuIG91dHB1dCBmb3JtYXQgaW5kZXBlbmRlbnQgd2F5LiBUbyBjcmVh
dGUgdGhlIGxheW91dCBmaWxlCisjIHRoYXQgcmVwcmVzZW50cyBkb3h5Z2VuJ3MgZGVmYXVsdHMs
IHJ1biBkb3h5Z2VuIHdpdGggdGhlIC1sIG9wdGlvbi4gWW91IGNhbgorIyBvcHRpb25hbGx5IHNw
ZWNpZnkgYSBmaWxlIG5hbWUgYWZ0ZXIgdGhlIG9wdGlvbiwgaWYgb21pdHRlZCBEb3h5Z2VuTGF5
b3V0LnhtbAorIyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlIGxheW91dCBmaWxlLgor
IworIyBOb3RlIHRoYXQgaWYgeW91IHJ1biBkb3h5Z2VuIGZyb20gYSBkaXJlY3RvcnkgY29udGFp
bmluZyBhIGZpbGUgY2FsbGVkCisjIERveHlnZW5MYXlvdXQueG1sLCBkb3h5Z2VuIHdpbGwgcGFy
c2UgaXQgYXV0b21hdGljYWxseSBldmVuIGlmIHRoZSBMQVlPVVRfRklMRQorIyB0YWcgaXMgbGVm
dCBlbXB0eS4KIAotRklMRV9WRVJTSU9OX0ZJTFRFUiAgICA9IAorTEFZT1VUX0ZJTEUgICAgICAg
ICAgICA9CiAKLSMgVGhlIExBWU9VVF9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEg
bGF5b3V0IGZpbGUgd2hpY2ggd2lsbCBiZSBwYXJzZWQgYnkgCi0jIGRveHlnZW4uIFRoZSBsYXlv
dXQgZmlsZSBjb250cm9scyB0aGUgZ2xvYmFsIHN0cnVjdHVyZSBvZiB0aGUgZ2VuZXJhdGVkIG91
dHB1dCBmaWxlcyAKLSMgaW4gYW4gb3V0cHV0IGZvcm1hdCBpbmRlcGVuZGVudCB3YXkuIFRoZSBj
cmVhdGUgdGhlIGxheW91dCBmaWxlIHRoYXQgcmVwcmVzZW50cyAKLSMgZG94eWdlbidzIGRlZmF1
bHRzLCBydW4gZG94eWdlbiB3aXRoIHRoZSAtbCBvcHRpb24uIFlvdSBjYW4gb3B0aW9uYWxseSBz
cGVjaWZ5IGEgCi0jIGZpbGUgbmFtZSBhZnRlciB0aGUgb3B0aW9uLCBpZiBvbWl0dGVkIERveHln
ZW5MYXlvdXQueG1sIHdpbGwgYmUgdXNlZCBhcyB0aGUgbmFtZSAKLSMgb2YgdGhlIGxheW91dCBm
aWxlLgorIyBUaGUgQ0lURV9CSUJfRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25l
IG9yIG1vcmUgYmliIGZpbGVzIGNvbnRhaW5pbmcKKyMgdGhlIHJlZmVyZW5jZSBkZWZpbml0aW9u
cy4gVGhpcyBtdXN0IGJlIGEgbGlzdCBvZiAuYmliIGZpbGVzLiBUaGUgLmJpYgorIyBleHRlbnNp
b24gaXMgYXV0b21hdGljYWxseSBhcHBlbmRlZCBpZiBvbWl0dGVkLiBUaGlzIHJlcXVpcmVzIHRo
ZSBiaWJ0ZXggdG9vbAorIyB0byBiZSBpbnN0YWxsZWQuIFNlZSBhbHNvIGh0dHA6Ly9lbi53aWtp
cGVkaWEub3JnL3dpa2kvQmliVGVYIGZvciBtb3JlIGluZm8uCisjIEZvciBMYVRlWCB0aGUgc3R5
bGUgb2YgdGhlIGJpYmxpb2dyYXBoeSBjYW4gYmUgY29udHJvbGxlZCB1c2luZworIyBMQVRFWF9C
SUJfU1RZTEUuIFRvIHVzZSB0aGlzIGZlYXR1cmUgeW91IG5lZWQgYmlidGV4IGFuZCBwZXJsIGF2
YWlsYWJsZSBpbiB0aGUKKyMgc2VhcmNoIHBhdGguIERvIG5vdCB1c2UgZmlsZSBuYW1lcyB3aXRo
IHNwYWNlcywgYmlidGV4IGNhbm5vdCBoYW5kbGUgdGhlbS4gU2VlCisjIGFsc28gXGNpdGUgZm9y
IGluZm8gaG93IHRvIGNyZWF0ZSByZWZlcmVuY2VzLgogCi1MQVlPVVRfRklMRSAgICAgICAgICAg
ID0gCitDSVRFX0JJQl9GSUxFUyAgICAgICAgID0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBj
b25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB3YXJuaW5nIGFuZCBwcm9ncmVzcyBtZXNz
YWdlcworIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB3YXJuaW5nIGFuZCBwcm9n
cmVzcyBtZXNzYWdlcwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIFRoZSBRVUlFVCB0YWcgY2Fu
IGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIG1lc3NhZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCAK
LSMgYnkgZG94eWdlbi4gUG9zc2libGUgdmFsdWVzIGFyZSBZRVMgYW5kIE5PLiBJZiBsZWZ0IGJs
YW5rIE5PIGlzIHVzZWQuCisjIFRoZSBRVUlFVCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9v
ZmYgdGhlIG1lc3NhZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCB0bworIyBzdGFuZGFyZCBvdXRwdXQg
YnkgZG94eWdlbi4gSWYgUVVJRVQgaXMgc2V0IHRvIFlFUyB0aGlzIGltcGxpZXMgdGhhdCB0aGUK
KyMgbWVzc2FnZXMgYXJlIG9mZi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBRVUlF
VCAgICAgICAgICAgICAgICAgID0gTk8KIAotIyBUaGUgV0FSTklOR1MgdGFnIGNhbiBiZSB1c2Vk
IHRvIHR1cm4gb24vb2ZmIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIHRoYXQgYXJlIAotIyBnZW5lcmF0
ZWQgYnkgZG94eWdlbi4gUG9zc2libGUgdmFsdWVzIGFyZSBZRVMgYW5kIE5PLiBJZiBsZWZ0IGJs
YW5rIAotIyBOTyBpcyB1c2VkLgorIyBUaGUgV0FSTklOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIHR1
cm4gb24vb2ZmIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIHRoYXQgYXJlCisjIGdlbmVyYXRlZCB0byBz
dGFuZGFyZCBlcnJvciAoIHN0ZGVycikgYnkgZG94eWdlbi4gSWYgV0FSTklOR1MgaXMgc2V0IHRv
IFlFUworIyB0aGlzIGltcGxpZXMgdGhhdCB0aGUgd2FybmluZ3MgYXJlIG9uLgorIworIyBUaXA6
IFR1cm4gd2FybmluZ3Mgb24gd2hpbGUgd3JpdGluZyB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogV0FSTklOR1MgICAgICAgICAgICAgICA9IFlFUwog
Ci0jIElmIFdBUk5fSUZfVU5ET0NVTUVOVEVEIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3
aWxsIGdlbmVyYXRlIHdhcm5pbmdzIAotIyBmb3IgdW5kb2N1bWVudGVkIG1lbWJlcnMuIElmIEVY
VFJBQ1RfQUxMIGlzIHNldCB0byBZRVMgdGhlbiB0aGlzIGZsYWcgd2lsbCAKLSMgYXV0b21hdGlj
YWxseSBiZSBkaXNhYmxlZC4KKyMgSWYgdGhlIFdBUk5fSUZfVU5ET0NVTUVOVEVEIHRhZyBpcyBz
ZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZQorIyB3YXJuaW5ncyBmb3IgdW5k
b2N1bWVudGVkIG1lbWJlcnMuIElmIEVYVFJBQ1RfQUxMIGlzIHNldCB0byBZRVMgdGhlbiB0aGlz
IGZsYWcKKyMgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGRpc2FibGVkLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogWUVTLgogCiBXQVJOX0lGX1VORE9DVU1FTlRFRCAgID0gWUVTCiAKLSMgSWYgV0FS
Tl9JRl9ET0NfRVJST1IgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5p
bmdzIGZvciAKLSMgcG90ZW50aWFsIGVycm9ycyBpbiB0aGUgZG9jdW1lbnRhdGlvbiwgc3VjaCBh
cyBub3QgZG9jdW1lbnRpbmcgc29tZSAKLSMgcGFyYW1ldGVycyBpbiBhIGRvY3VtZW50ZWQgZnVu
Y3Rpb24sIG9yIGRvY3VtZW50aW5nIHBhcmFtZXRlcnMgdGhhdCAKLSMgZG9uJ3QgZXhpc3Qgb3Ig
dXNpbmcgbWFya3VwIGNvbW1hbmRzIHdyb25nbHkuCisjIElmIHRoZSBXQVJOX0lGX0RPQ19FUlJP
UiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5pbmdzIGZvcgor
IyBwb3RlbnRpYWwgZXJyb3JzIGluIHRoZSBkb2N1bWVudGF0aW9uLCBzdWNoIGFzIG5vdCBkb2N1
bWVudGluZyBzb21lIHBhcmFtZXRlcnMKKyMgaW4gYSBkb2N1bWVudGVkIGZ1bmN0aW9uLCBvciBk
b2N1bWVudGluZyBwYXJhbWV0ZXJzIHRoYXQgZG9uJ3QgZXhpc3Qgb3IgdXNpbmcKKyMgbWFya3Vw
IGNvbW1hbmRzIHdyb25nbHkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIFdBUk5f
SUZfRE9DX0VSUk9SICAgICAgPSBZRVMKIAotIyBUaGlzIFdBUk5fTk9fUEFSQU1ET0Mgb3B0aW9u
IGNhbiBiZSBhYmxlZCB0byBnZXQgd2FybmluZ3MgZm9yIAotIyBmdW5jdGlvbnMgdGhhdCBhcmUg
ZG9jdW1lbnRlZCwgYnV0IGhhdmUgbm8gZG9jdW1lbnRhdGlvbiBmb3IgdGhlaXIgcGFyYW1ldGVy
cyAKLSMgb3IgcmV0dXJuIHZhbHVlLiBJZiBzZXQgdG8gTk8gKHRoZSBkZWZhdWx0KSBkb3h5Z2Vu
IHdpbGwgb25seSB3YXJuIGFib3V0IAotIyB3cm9uZyBvciBpbmNvbXBsZXRlIHBhcmFtZXRlciBk
b2N1bWVudGF0aW9uLCBidXQgbm90IGFib3V0IHRoZSBhYnNlbmNlIG9mIAotIyBkb2N1bWVudGF0
aW9uLgorIyBUaGlzIFdBUk5fTk9fUEFSQU1ET0Mgb3B0aW9uIGNhbiBiZSBlbmFibGVkIHRvIGdl
dCB3YXJuaW5ncyBmb3IgZnVuY3Rpb25zIHRoYXQKKyMgYXJlIGRvY3VtZW50ZWQsIGJ1dCBoYXZl
IG5vIGRvY3VtZW50YXRpb24gZm9yIHRoZWlyIHBhcmFtZXRlcnMgb3IgcmV0dXJuCisjIHZhbHVl
LiBJZiBzZXQgdG8gTk8gZG94eWdlbiB3aWxsIG9ubHkgd2FybiBhYm91dCB3cm9uZyBvciBpbmNv
bXBsZXRlIHBhcmFtZXRlcgorIyBkb2N1bWVudGF0aW9uLCBidXQgbm90IGFib3V0IHRoZSBhYnNl
bmNlIG9mIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogV0FS
Tl9OT19QQVJBTURPQyAgICAgICA9IE5PCiAKLSMgVGhlIFdBUk5fRk9STUFUIHRhZyBkZXRlcm1p
bmVzIHRoZSBmb3JtYXQgb2YgdGhlIHdhcm5pbmcgbWVzc2FnZXMgdGhhdCAKLSMgZG94eWdlbiBj
YW4gcHJvZHVjZS4gVGhlIHN0cmluZyBzaG91bGQgY29udGFpbiB0aGUgJGZpbGUsICRsaW5lLCBh
bmQgJHRleHQgCi0jIHRhZ3MsIHdoaWNoIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGZpbGUgYW5k
IGxpbmUgbnVtYmVyIGZyb20gd2hpY2ggdGhlIAotIyB3YXJuaW5nIG9yaWdpbmF0ZWQgYW5kIHRo
ZSB3YXJuaW5nIHRleHQuIE9wdGlvbmFsbHkgdGhlIGZvcm1hdCBtYXkgY29udGFpbiAKLSMgJHZl
cnNpb24sIHdoaWNoIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIHZlcnNpb24gb2YgdGhlIGZpbGUg
KGlmIGl0IGNvdWxkIAotIyBiZSBvYnRhaW5lZCB2aWEgRklMRV9WRVJTSU9OX0ZJTFRFUikKKyMg
VGhlIFdBUk5fRk9STUFUIHRhZyBkZXRlcm1pbmVzIHRoZSBmb3JtYXQgb2YgdGhlIHdhcm5pbmcg
bWVzc2FnZXMgdGhhdCBkb3h5Z2VuCisjIGNhbiBwcm9kdWNlLiBUaGUgc3RyaW5nIHNob3VsZCBj
b250YWluIHRoZSAkZmlsZSwgJGxpbmUsIGFuZCAkdGV4dCB0YWdzLCB3aGljaAorIyB3aWxsIGJl
IHJlcGxhY2VkIGJ5IHRoZSBmaWxlIGFuZCBsaW5lIG51bWJlciBmcm9tIHdoaWNoIHRoZSB3YXJu
aW5nIG9yaWdpbmF0ZWQKKyMgYW5kIHRoZSB3YXJuaW5nIHRleHQuIE9wdGlvbmFsbHkgdGhlIGZv
cm1hdCBtYXkgY29udGFpbiAkdmVyc2lvbiwgd2hpY2ggd2lsbAorIyBiZSByZXBsYWNlZCBieSB0
aGUgdmVyc2lvbiBvZiB0aGUgZmlsZSAoaWYgaXQgY291bGQgYmUgb2J0YWluZWQgdmlhCisjIEZJ
TEVfVkVSU0lPTl9GSUxURVIpCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiAkZmlsZTokbGluZTog
JHRleHQuCiAKIFdBUk5fRk9STUFUICAgICAgICAgICAgPSAiJGZpbGU6JGxpbmU6ICR0ZXh0Igog
Ci0jIFRoZSBXQVJOX0xPR0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBmaWxlIHRv
IHdoaWNoIHdhcm5pbmcgCi0jIGFuZCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgd3JpdHRlbi4g
SWYgbGVmdCBibGFuayB0aGUgb3V0cHV0IGlzIHdyaXR0ZW4gCi0jIHRvIHN0ZGVyci4KKyMgVGhl
IFdBUk5fTE9HRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIGZpbGUgdG8gd2hpY2gg
d2FybmluZyBhbmQgZXJyb3IKKyMgbWVzc2FnZXMgc2hvdWxkIGJlIHdyaXR0ZW4uIElmIGxlZnQg
YmxhbmsgdGhlIG91dHB1dCBpcyB3cml0dGVuIHRvIHN0YW5kYXJkCisjIGVycm9yIChzdGRlcnIp
LgogCiBXQVJOX0xPR0ZJTEUgICAgICAgICAgID0gJVdBUk5JTkdfTE9HX1BBVEglCiAKICMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGlu
cHV0IGZpbGVzCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBpbnB1dCBm
aWxlcwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIFRoZSBJTlBVVCB0YWcgY2FuIGJlIHVzZWQg
dG8gc3BlY2lmeSB0aGUgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRoYXQgY29udGFpbiAKLSMg
ZG9jdW1lbnRlZCBzb3VyY2UgZmlsZXMuIFlvdSBtYXkgZW50ZXIgZmlsZSBuYW1lcyBsaWtlICJt
eWZpbGUuY3BwIiBvciAKLSMgZGlyZWN0b3JpZXMgbGlrZSAiL3Vzci9zcmMvbXlwcm9qZWN0Ii4g
U2VwYXJhdGUgdGhlIGZpbGVzIG9yIGRpcmVjdG9yaWVzIAotIyB3aXRoIHNwYWNlcy4KKyMgVGhl
IElOUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGVzIGFuZC9vciBkaXJlY3Rvcmll
cyB0aGF0IGNvbnRhaW4KKyMgZG9jdW1lbnRlZCBzb3VyY2UgZmlsZXMuIFlvdSBtYXkgZW50ZXIg
ZmlsZSBuYW1lcyBsaWtlIG15ZmlsZS5jcHAgb3IKKyMgZGlyZWN0b3JpZXMgbGlrZSAvdXNyL3Ny
Yy9teXByb2plY3QuIFNlcGFyYXRlIHRoZSBmaWxlcyBvciBkaXJlY3RvcmllcyB3aXRoCisjIHNw
YWNlcy4KKyMgTm90ZTogSWYgdGhpcyB0YWcgaXMgZW1wdHkgdGhlIGN1cnJlbnQgZGlyZWN0b3J5
IGlzIHNlYXJjaGVkLgogCi1JTlBVVCAgICAgICAgICAgICAgICAgID0gLi4vaW5jbHVkZSAuLi9z
cmMvbGliX2pzb24gLgorSU5QVVQgICAgICAgICAgICAgICAgICA9IC4uL2luY2x1ZGUgXAorICAg
ICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy9saWJfanNvbiBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgLgogCi0jIFRoaXMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNoYXJh
Y3RlciBlbmNvZGluZyBvZiB0aGUgc291cmNlIGZpbGVzIAotIyB0aGF0IGRveHlnZW4gcGFyc2Vz
LiBJbnRlcm5hbGx5IGRveHlnZW4gdXNlcyB0aGUgVVRGLTggZW5jb2RpbmcsIHdoaWNoIGlzIAot
IyBhbHNvIHRoZSBkZWZhdWx0IGlucHV0IGVuY29kaW5nLiBEb3h5Z2VuIHVzZXMgbGliaWNvbnYg
KG9yIHRoZSBpY29udiBidWlsdCAKLSMgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29kaW5nLiBT
ZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252IGZvciAKLSMgdGhlIGxpc3Qg
b2YgcG9zc2libGUgZW5jb2RpbmdzLgorIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5
IHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIHNvdXJjZSBmaWxlcworIyB0aGF0IGRveHln
ZW4gcGFyc2VzLiBJbnRlcm5hbGx5IGRveHlnZW4gdXNlcyB0aGUgVVRGLTggZW5jb2RpbmcuIERv
eHlnZW4gdXNlcworIyBsaWJpY29udiAob3IgdGhlIGljb252IGJ1aWx0IGludG8gbGliYykgZm9y
IHRoZSB0cmFuc2NvZGluZy4gU2VlIHRoZSBsaWJpY29udgorIyBkb2N1bWVudGF0aW9uIChzZWU6
IGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJpY29udikgZm9yIHRoZSBsaXN0IG9mCisj
IHBvc3NpYmxlIGVuY29kaW5ncy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFVURi04LgogCiBJ
TlBVVF9FTkNPRElORyAgICAgICAgID0gVVRGLTgKIAotIyBJZiB0aGUgdmFsdWUgb2YgdGhlIElO
UFVUIHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91IGNhbiB1c2UgdGhlIAotIyBGSUxFX1BB
VFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIHBhdHRlcm4gKGxpa2Ug
Ki5jcHAgCi0jIGFuZCAqLmgpIHRvIGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBpbiB0aGUg
ZGlyZWN0b3JpZXMuIElmIGxlZnQgCi0jIGJsYW5rIHRoZSBmb2xsb3dpbmcgcGF0dGVybnMgYXJl
IHRlc3RlZDogCi0jICouYyAqLmNjICouY3h4ICouY3BwICouYysrICouamF2YSAqLmlpICouaXh4
ICouaXBwICouaSsrICouaW5sICouaCAqLmhoICouaHh4IAotIyAqLmhwcCAqLmgrKyAqLmlkbCAq
Lm9kbCAqLmNzICoucGhwICoucGhwMyAqLmluYyAqLm0gKi5tbSAqLnB5ICouZjkwCisjIElmIHRo
ZSB2YWx1ZSBvZiB0aGUgSU5QVVQgdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3UgY2FuIHVz
ZSB0aGUKKyMgRklMRV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB3aWxkY2Fy
ZCBwYXR0ZXJucyAobGlrZSAqLmNwcCBhbmQKKyMgKi5oKSB0byBmaWx0ZXIgb3V0IHRoZSBzb3Vy
Y2UtZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzLiBJZiBsZWZ0IGJsYW5rIHRoZQorIyBmb2xsb3dp
bmcgcGF0dGVybnMgYXJlIHRlc3RlZDoqLmMsICouY2MsICouY3h4LCAqLmNwcCwgKi5jKyssICou
amF2YSwgKi5paSwKKyMgKi5peHgsICouaXBwLCAqLmkrKywgKi5pbmwsICouaWRsLCAqLmRkbCwg
Ki5vZGwsICouaCwgKi5oaCwgKi5oeHgsICouaHBwLAorIyAqLmgrKywgKi5jcywgKi5kLCAqLnBo
cCwgKi5waHA0LCAqLnBocDUsICoucGh0bWwsICouaW5jLCAqLm0sICoubWFya2Rvd24sCisjICou
bWQsICoubW0sICouZG94LCAqLnB5LCAqLmY5MCwgKi5mLCAqLmZvciwgKi50Y2wsICoudmhkLCAq
LnZoZGwsICoudWNmLAorIyAqLnFzZiwgKi5hcyBhbmQgKi5qcy4KIAogRklMRV9QQVRURVJOUyAg
ICAgICAgICA9ICouaCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgKi5jcHAgXAogICAgICAg
ICAgICAgICAgICAgICAgICAgICouaW5sIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAqLmRv
eAogCi0jIFRoZSBSRUNVUlNJVkUgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4gc3BlY2lmeSB3aGV0
aGVyIG9yIG5vdCBzdWJkaXJlY3RvcmllcyAKLSMgc2hvdWxkIGJlIHNlYXJjaGVkIGZvciBpbnB1
dCBmaWxlcyBhcyB3ZWxsLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIFlFUyBhbmQgTk8uIAotIyBJZiBs
ZWZ0IGJsYW5rIE5PIGlzIHVzZWQuCisjIFRoZSBSRUNVUlNJVkUgdGFnIGNhbiBiZSB1c2VkIHRv
IHNwZWNpZnkgd2hldGhlciBvciBub3Qgc3ViZGlyZWN0b3JpZXMgc2hvdWxkCisjIGJlIHNlYXJj
aGVkIGZvciBpbnB1dCBmaWxlcyBhcyB3ZWxsLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CiAKIFJFQ1VSU0lWRSAgICAgICAgICAgICAgPSBZRVMKIAotIyBUaGUgRVhDTFVERSB0YWcgY2Fu
IGJlIHVzZWQgdG8gc3BlY2lmeSBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQg
Ci0jIGV4Y2x1ZGVkIGZyb20gdGhlIElOUFVUIHNvdXJjZSBmaWxlcy4gVGhpcyB3YXkgeW91IGNh
biBlYXNpbHkgZXhjbHVkZSBhIAorIyBUaGUgRVhDTFVERSB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUKKyMgZXhjbHVkZWQg
ZnJvbSB0aGUgSU5QVVQgc291cmNlIGZpbGVzLiBUaGlzIHdheSB5b3UgY2FuIGVhc2lseSBleGNs
dWRlIGEKICMgc3ViZGlyZWN0b3J5IGZyb20gYSBkaXJlY3RvcnkgdHJlZSB3aG9zZSByb290IGlz
IHNwZWNpZmllZCB3aXRoIHRoZSBJTlBVVCB0YWcuCisjCisjIE5vdGUgdGhhdCByZWxhdGl2ZSBw
YXRocyBhcmUgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIGRveHlnZW4gaXMK
KyMgcnVuLgogCi1FWENMVURFICAgICAgICAgICAgICAgID0gCitFWENMVURFICAgICAgICAgICAg
ICAgID0KIAotIyBUaGUgRVhDTFVERV9TWU1MSU5LUyB0YWcgY2FuIGJlIHVzZWQgc2VsZWN0IHdo
ZXRoZXIgb3Igbm90IGZpbGVzIG9yIAotIyBkaXJlY3RvcmllcyB0aGF0IGFyZSBzeW1ib2xpYyBs
aW5rcyAoYSBVbml4IGZpbGVzeXN0ZW0gZmVhdHVyZSkgYXJlIGV4Y2x1ZGVkIAorIyBUaGUgRVhD
TFVERV9TWU1MSU5LUyB0YWcgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IHdoZXRoZXIgb3Igbm90IGZp
bGVzIG9yCisjIGRpcmVjdG9yaWVzIHRoYXQgYXJlIHN5bWJvbGljIGxpbmtzIChhIFVuaXggZmls
ZSBzeXN0ZW0gZmVhdHVyZSkgYXJlIGV4Y2x1ZGVkCiAjIGZyb20gdGhlIGlucHV0LgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEVYQ0xVREVfU1lNTElOS1MgICAgICAgPSBOTwogCi0j
IElmIHRoZSB2YWx1ZSBvZiB0aGUgSU5QVVQgdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3Ug
Y2FuIHVzZSB0aGUgCi0jIEVYQ0xVREVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1v
cmUgd2lsZGNhcmQgcGF0dGVybnMgdG8gZXhjbHVkZSAKLSMgY2VydGFpbiBmaWxlcyBmcm9tIHRo
b3NlIGRpcmVjdG9yaWVzLiBOb3RlIHRoYXQgdGhlIHdpbGRjYXJkcyBhcmUgbWF0Y2hlZCAKLSMg
YWdhaW5zdCB0aGUgZmlsZSB3aXRoIGFic29sdXRlIHBhdGgsIHNvIHRvIGV4Y2x1ZGUgYWxsIHRl
c3QgZGlyZWN0b3JpZXMgCi0jIGZvciBleGFtcGxlIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKgor
IyBJZiB0aGUgdmFsdWUgb2YgdGhlIElOUFVUIHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91
IGNhbiB1c2UgdGhlCisjIEVYQ0xVREVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1v
cmUgd2lsZGNhcmQgcGF0dGVybnMgdG8gZXhjbHVkZQorIyBjZXJ0YWluIGZpbGVzIGZyb20gdGhv
c2UgZGlyZWN0b3JpZXMuCisjCisjIE5vdGUgdGhhdCB0aGUgd2lsZGNhcmRzIGFyZSBtYXRjaGVk
IGFnYWluc3QgdGhlIGZpbGUgd2l0aCBhYnNvbHV0ZSBwYXRoLCBzbyB0bworIyBleGNsdWRlIGFs
bCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBleGFtcGxlIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKgog
Ci1FWENMVURFX1BBVFRFUk5TICAgICAgID0gCitFWENMVURFX1BBVFRFUk5TICAgICAgID0KIAot
IyBUaGUgRVhDTFVERV9TWU1CT0xTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBt
b3JlIHN5bWJvbCBuYW1lcyAKLSMgKG5hbWVzcGFjZXMsIGNsYXNzZXMsIGZ1bmN0aW9ucywgZXRj
LikgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUgCi0jIG91dHB1dC4gVGhlIHN5bWJv
bCBuYW1lIGNhbiBiZSBhIGZ1bGx5IHF1YWxpZmllZCBuYW1lLCBhIHdvcmQsIG9yIGlmIHRoZSAK
LSMgd2lsZGNhcmQgKiBpcyB1c2VkLCBhIHN1YnN0cmluZy4gRXhhbXBsZXM6IEFOYW1lc3BhY2Us
IEFDbGFzcywgCisjIFRoZSBFWENMVURFX1NZTUJPTFMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
Znkgb25lIG9yIG1vcmUgc3ltYm9sIG5hbWVzCisjIChuYW1lc3BhY2VzLCBjbGFzc2VzLCBmdW5j
dGlvbnMsIGV0Yy4pIHRoYXQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gdGhlCisjIG91dHB1dC4g
VGhlIHN5bWJvbCBuYW1lIGNhbiBiZSBhIGZ1bGx5IHF1YWxpZmllZCBuYW1lLCBhIHdvcmQsIG9y
IGlmIHRoZQorIyB3aWxkY2FyZCAqIGlzIHVzZWQsIGEgc3Vic3RyaW5nLiBFeGFtcGxlczogQU5h
bWVzcGFjZSwgQUNsYXNzLAogIyBBQ2xhc3M6OkFOYW1lc3BhY2UsIEFOYW1lc3BhY2U6OipUZXN0
CisjCisjIE5vdGUgdGhhdCB0aGUgd2lsZGNhcmRzIGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIGZp
bGUgd2l0aCBhYnNvbHV0ZSBwYXRoLCBzbyB0bworIyBleGNsdWRlIGFsbCB0ZXN0IGRpcmVjdG9y
aWVzIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKgogCi1FWENMVURFX1NZTUJPTFMgICAgICAgID0g
CitFWENMVURFX1NZTUJPTFMgICAgICAgID0KIAotIyBUaGUgRVhBTVBMRV9QQVRIIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGZpbGVzIG9yIAotIyBkaXJlY3RvcmllcyB0
aGF0IGNvbnRhaW4gZXhhbXBsZSBjb2RlIGZyYWdtZW50cyB0aGF0IGFyZSBpbmNsdWRlZCAoc2Vl
IAotIyB0aGUgXGluY2x1ZGUgY29tbWFuZCkuCisjIFRoZSBFWEFNUExFX1BBVEggdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZmlsZXMgb3IgZGlyZWN0b3JpZXMKKyMgdGhh
dCBjb250YWluIGV4YW1wbGUgY29kZSBmcmFnbWVudHMgdGhhdCBhcmUgaW5jbHVkZWQgKHNlZSB0
aGUgXGluY2x1ZGUKKyMgY29tbWFuZCkuCiAKLUVYQU1QTEVfUEFUSCAgICAgICAgICAgPSAKK0VY
QU1QTEVfUEFUSCAgICAgICAgICAgPSAuLgogCi0jIElmIHRoZSB2YWx1ZSBvZiB0aGUgRVhBTVBM
RV9QQVRIIHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91IGNhbiB1c2UgdGhlIAotIyBFWEFN
UExFX1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIHBhdHRlcm4g
KGxpa2UgKi5jcHAgCi0jIGFuZCAqLmgpIHRvIGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBp
biB0aGUgZGlyZWN0b3JpZXMuIElmIGxlZnQgCi0jIGJsYW5rIGFsbCBmaWxlcyBhcmUgaW5jbHVk
ZWQuCisjIElmIHRoZSB2YWx1ZSBvZiB0aGUgRVhBTVBMRV9QQVRIIHRhZyBjb250YWlucyBkaXJl
Y3RvcmllcywgeW91IGNhbiB1c2UgdGhlCisjIEVYQU1QTEVfUEFUVEVSTlMgdGFnIHRvIHNwZWNp
Znkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybiAobGlrZSAqLmNwcCBhbmQKKyMgKi5oKSB0
byBmaWx0ZXIgb3V0IHRoZSBzb3VyY2UtZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzLiBJZiBsZWZ0
IGJsYW5rIGFsbAorIyBmaWxlcyBhcmUgaW5jbHVkZWQuCiAKIEVYQU1QTEVfUEFUVEVSTlMgICAg
ICAgPSAqCiAKLSMgSWYgdGhlIEVYQU1QTEVfUkVDVVJTSVZFIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gc3ViZGlyZWN0b3JpZXMgd2lsbCBiZSAKLSMgc2VhcmNoZWQgZm9yIGlucHV0IGZpbGVzIHRv
IGJlIHVzZWQgd2l0aCB0aGUgXGluY2x1ZGUgb3IgXGRvbnRpbmNsdWRlIAotIyBjb21tYW5kcyBp
cnJlc3BlY3RpdmUgb2YgdGhlIHZhbHVlIG9mIHRoZSBSRUNVUlNJVkUgdGFnLiAKLSMgUG9zc2li
bGUgdmFsdWVzIGFyZSBZRVMgYW5kIE5PLiBJZiBsZWZ0IGJsYW5rIE5PIGlzIHVzZWQuCisjIElm
IHRoZSBFWEFNUExFX1JFQ1VSU0lWRSB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHN1YmRpcmVjdG9y
aWVzIHdpbGwgYmUKKyMgc2VhcmNoZWQgZm9yIGlucHV0IGZpbGVzIHRvIGJlIHVzZWQgd2l0aCB0
aGUgXGluY2x1ZGUgb3IgXGRvbnRpbmNsdWRlIGNvbW1hbmRzCisjIGlycmVzcGVjdGl2ZSBvZiB0
aGUgdmFsdWUgb2YgdGhlIFJFQ1VSU0lWRSB0YWcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBO
Ty4KIAogRVhBTVBMRV9SRUNVUlNJVkUgICAgICA9IE5PCiAKLSMgVGhlIElNQUdFX1BBVEggdGFn
IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZmlsZXMgb3IgCi0jIGRpcmVjdG9y
aWVzIHRoYXQgY29udGFpbiBpbWFnZSB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRh
dGlvbiAoc2VlIAotIyB0aGUgXGltYWdlIGNvbW1hbmQpLgorIyBUaGUgSU1BR0VfUEFUSCB0YWcg
Y2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBmaWxlcyBvciBkaXJlY3Rvcmllcwor
IyB0aGF0IGNvbnRhaW4gaW1hZ2VzIHRoYXQgYXJlIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1
bWVudGF0aW9uIChzZWUgdGhlCisjIFxpbWFnZSBjb21tYW5kKS4KIAotSU1BR0VfUEFUSCAgICAg
ICAgICAgICA9IAorSU1BR0VfUEFUSCAgICAgICAgICAgICA9CiAKLSMgVGhlIElOUFVUX0ZJTFRF
UiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb2dyYW0gdGhhdCBkb3h5Z2VuIHNob3Vs
ZCAKLSMgaW52b2tlIHRvIGZpbHRlciBmb3IgZWFjaCBpbnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwg
aW52b2tlIHRoZSBmaWx0ZXIgcHJvZ3JhbSAKLSMgYnkgZXhlY3V0aW5nICh2aWEgcG9wZW4oKSkg
dGhlIGNvbW1hbmQgPGZpbHRlcj4gPGlucHV0LWZpbGU+LCB3aGVyZSA8ZmlsdGVyPiAKLSMgaXMg
dGhlIHZhbHVlIG9mIHRoZSBJTlBVVF9GSUxURVIgdGFnLCBhbmQgPGlucHV0LWZpbGU+IGlzIHRo
ZSBuYW1lIG9mIGFuIAotIyBpbnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwgdGhlbiB1c2UgdGhlIG91
dHB1dCB0aGF0IHRoZSBmaWx0ZXIgcHJvZ3JhbSB3cml0ZXMgCi0jIHRvIHN0YW5kYXJkIG91dHB1
dC4gCi0jIElmIEZJTFRFUl9QQVRURVJOUyBpcyBzcGVjaWZpZWQsIHRoaXMgdGFnIHdpbGwgYmUg
Ci0jIGlnbm9yZWQuCisjIFRoZSBJTlBVVF9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
ZnkgYSBwcm9ncmFtIHRoYXQgZG94eWdlbiBzaG91bGQKKyMgaW52b2tlIHRvIGZpbHRlciBmb3Ig
ZWFjaCBpbnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwgaW52b2tlIHRoZSBmaWx0ZXIgcHJvZ3JhbQor
IyBieSBleGVjdXRpbmcgKHZpYSBwb3BlbigpKSB0aGUgY29tbWFuZDoKKyMKKyMgPGZpbHRlcj4g
PGlucHV0LWZpbGU+CisjCisjIHdoZXJlIDxmaWx0ZXI+IGlzIHRoZSB2YWx1ZSBvZiB0aGUgSU5Q
VVRfRklMVEVSIHRhZywgYW5kIDxpbnB1dC1maWxlPiBpcyB0aGUKKyMgbmFtZSBvZiBhbiBpbnB1
dCBmaWxlLiBEb3h5Z2VuIHdpbGwgdGhlbiB1c2UgdGhlIG91dHB1dCB0aGF0IHRoZSBmaWx0ZXIK
KyMgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRhcmQgb3V0cHV0LiBJZiBGSUxURVJfUEFUVEVSTlMg
aXMgc3BlY2lmaWVkLCB0aGlzIHRhZworIyB3aWxsIGJlIGlnbm9yZWQuCisjCisjIE5vdGUgdGhh
dCB0aGUgZmlsdGVyIG11c3Qgbm90IGFkZCBvciByZW1vdmUgbGluZXM7IGl0IGlzIGFwcGxpZWQg
YmVmb3JlIHRoZQorIyBjb2RlIGlzIHNjYW5uZWQsIGJ1dCBub3Qgd2hlbiB0aGUgb3V0cHV0IGNv
ZGUgaXMgZ2VuZXJhdGVkLiBJZiBsaW5lcyBhcmUgYWRkZWQKKyMgb3IgcmVtb3ZlZCwgdGhlIGFu
Y2hvcnMgd2lsbCBub3QgYmUgcGxhY2VkIGNvcnJlY3RseS4KIAotSU5QVVRfRklMVEVSICAgICAg
ICAgICA9IAorSU5QVVRfRklMVEVSICAgICAgICAgICA9CiAKLSMgVGhlIEZJTFRFUl9QQVRURVJO
UyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBmaWx0ZXJzIG9uIGEgcGVyIGZpbGUgcGF0dGVy
biAKLSMgYmFzaXMuIAotIyBEb3h5Z2VuIHdpbGwgY29tcGFyZSB0aGUgZmlsZSBuYW1lIHdpdGgg
ZWFjaCBwYXR0ZXJuIGFuZCBhcHBseSB0aGUgCi0jIGZpbHRlciBpZiB0aGVyZSBpcyBhIG1hdGNo
LiAKLSMgVGhlIGZpbHRlcnMgYXJlIGEgbGlzdCBvZiB0aGUgZm9ybTogCi0jIHBhdHRlcm49Zmls
dGVyIChsaWtlICouY3BwPW15X2NwcF9maWx0ZXIpLiBTZWUgSU5QVVRfRklMVEVSIGZvciBmdXJ0
aGVyIAotIyBpbmZvIG9uIGhvdyBmaWx0ZXJzIGFyZSB1c2VkLiBJZiBGSUxURVJfUEFUVEVSTlMg
aXMgZW1wdHksIElOUFVUX0ZJTFRFUiAKLSMgaXMgYXBwbGllZCB0byBhbGwgZmlsZXMuCisjIFRo
ZSBGSUxURVJfUEFUVEVSTlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZmlsdGVycyBvbiBh
IHBlciBmaWxlIHBhdHRlcm4KKyMgYmFzaXMuIERveHlnZW4gd2lsbCBjb21wYXJlIHRoZSBmaWxl
IG5hbWUgd2l0aCBlYWNoIHBhdHRlcm4gYW5kIGFwcGx5IHRoZQorIyBmaWx0ZXIgaWYgdGhlcmUg
aXMgYSBtYXRjaC4gVGhlIGZpbHRlcnMgYXJlIGEgbGlzdCBvZiB0aGUgZm9ybTogcGF0dGVybj1m
aWx0ZXIKKyMgKGxpa2UgKi5jcHA9bXlfY3BwX2ZpbHRlcikuIFNlZSBJTlBVVF9GSUxURVIgZm9y
IGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gaG93CisjIGZpbHRlcnMgYXJlIHVzZWQuIElmIHRoZSBG
SUxURVJfUEFUVEVSTlMgdGFnIGlzIGVtcHR5IG9yIGlmIG5vbmUgb2YgdGhlCisjIHBhdHRlcm5z
IG1hdGNoIHRoZSBmaWxlIG5hbWUsIElOUFVUX0ZJTFRFUiBpcyBhcHBsaWVkLgogCi1GSUxURVJf
UEFUVEVSTlMgICAgICAgID0gCitGSUxURVJfUEFUVEVSTlMgICAgICAgID0KIAotIyBJZiB0aGUg
RklMVEVSX1NPVVJDRV9GSUxFUyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIGlucHV0IGZpbHRlciAo
aWYgc2V0IHVzaW5nIAotIyBJTlBVVF9GSUxURVIpIHdpbGwgYmUgdXNlZCB0byBmaWx0ZXIgdGhl
IGlucHV0IGZpbGVzIHdoZW4gcHJvZHVjaW5nIHNvdXJjZSAKLSMgZmlsZXMgdG8gYnJvd3NlIChp
LmUuIHdoZW4gU09VUkNFX0JST1dTRVIgaXMgc2V0IHRvIFlFUykuCisjIElmIHRoZSBGSUxURVJf
U09VUkNFX0ZJTEVTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgaW5wdXQgZmlsdGVyIChpZiBzZXQg
dXNpbmcKKyMgSU5QVVRfRklMVEVSICkgd2lsbCBhbHNvIGJlIHVzZWQgdG8gZmlsdGVyIHRoZSBp
bnB1dCBmaWxlcyB0aGF0IGFyZSB1c2VkIGZvcgorIyBwcm9kdWNpbmcgdGhlIHNvdXJjZSBmaWxl
cyB0byBicm93c2UgKGkuZS4gd2hlbiBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTKS4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBGSUxURVJfU09VUkNFX0ZJTEVTICAgID0gTk8K
IAorIyBUaGUgRklMVEVSX1NPVVJDRV9QQVRURVJOUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBzb3VyY2UgZmlsdGVycyBwZXIgZmlsZQorIyBwYXR0ZXJuLiBBIHBhdHRlcm4gd2lsbCBvdmVy
cmlkZSB0aGUgc2V0dGluZyBmb3IgRklMVEVSX1BBVFRFUk4gKGlmIGFueSkgYW5kCisjIGl0IGlz
IGFsc28gcG9zc2libGUgdG8gZGlzYWJsZSBzb3VyY2UgZmlsdGVyaW5nIGZvciBhIHNwZWNpZmlj
IHBhdHRlcm4gdXNpbmcKKyMgKi5leHQ9IChzbyB3aXRob3V0IG5hbWluZyBhIGZpbHRlcikuCisj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBGSUxURVJfU09VUkNFX0ZJTEVTIGlzIHNl
dCB0byBZRVMuCisKK0ZJTFRFUl9TT1VSQ0VfUEFUVEVSTlMgPQorCisjIElmIHRoZSBVU0VfTURG
SUxFX0FTX01BSU5QQUdFIHRhZyByZWZlcnMgdG8gdGhlIG5hbWUgb2YgYSBtYXJrZG93biBmaWxl
IHRoYXQKKyMgaXMgcGFydCBvZiB0aGUgaW5wdXQsIGl0cyBjb250ZW50cyB3aWxsIGJlIHBsYWNl
ZCBvbiB0aGUgbWFpbiBwYWdlCisjIChpbmRleC5odG1sKS4gVGhpcyBjYW4gYmUgdXNlZnVsIGlm
IHlvdSBoYXZlIGEgcHJvamVjdCBvbiBmb3IgaW5zdGFuY2UgR2l0SHViCisjIGFuZCB3YW50IHRv
IHJldXNlIHRoZSBpbnRyb2R1Y3Rpb24gcGFnZSBhbHNvIGZvciB0aGUgZG94eWdlbiBvdXRwdXQu
CisKK1VTRV9NREZJTEVfQVNfTUFJTlBBR0UgPQorCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNv
bmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHNvdXJjZSBicm93c2luZworIyBDb25maWd1
cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBzb3VyY2UgYnJvd3NpbmcKICMtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotIyBJZiB0aGUgU09VUkNFX0JST1dTRVIgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBh
IGxpc3Qgb2Ygc291cmNlIGZpbGVzIHdpbGwgCi0jIGJlIGdlbmVyYXRlZC4gRG9jdW1lbnRlZCBl
bnRpdGllcyB3aWxsIGJlIGNyb3NzLXJlZmVyZW5jZWQgd2l0aCB0aGVzZSBzb3VyY2VzLiAKLSMg
Tm90ZTogVG8gZ2V0IHJpZCBvZiBhbGwgc291cmNlIGNvZGUgaW4gdGhlIGdlbmVyYXRlZCBvdXRw
dXQsIG1ha2Ugc3VyZSBhbHNvIAotIyBWRVJCQVRJTV9IRUFERVJTIGlzIHNldCB0byBOTy4KKyMg
SWYgdGhlIFNPVVJDRV9CUk9XU0VSIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gYSBsaXN0IG9mIHNv
dXJjZSBmaWxlcyB3aWxsIGJlCisjIGdlbmVyYXRlZC4gRG9jdW1lbnRlZCBlbnRpdGllcyB3aWxs
IGJlIGNyb3NzLXJlZmVyZW5jZWQgd2l0aCB0aGVzZSBzb3VyY2VzLgorIworIyBOb3RlOiBUbyBn
ZXQgcmlkIG9mIGFsbCBzb3VyY2UgY29kZSBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dCwgbWFrZSBz
dXJlIHRoYXQKKyMgYWxzbyBWRVJCQVRJTV9IRUFERVJTIGlzIHNldCB0byBOTy4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTT1VSQ0VfQlJPV1NFUiAgICAgICAgID0gWUVTCiAKLSMg
U2V0dGluZyB0aGUgSU5MSU5FX1NPVVJDRVMgdGFnIHRvIFlFUyB3aWxsIGluY2x1ZGUgdGhlIGJv
ZHkgCi0jIG9mIGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyBkaXJlY3RseSBpbiB0aGUgZG9jdW1lbnRh
dGlvbi4KKyMgU2V0dGluZyB0aGUgSU5MSU5FX1NPVVJDRVMgdGFnIHRvIFlFUyB3aWxsIGluY2x1
ZGUgdGhlIGJvZHkgb2YgZnVuY3Rpb25zLAorIyBjbGFzc2VzIGFuZCBlbnVtcyBkaXJlY3RseSBp
bnRvIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIElO
TElORV9TT1VSQ0VTICAgICAgICAgPSBOTwogCi0jIFNldHRpbmcgdGhlIFNUUklQX0NPREVfQ09N
TUVOVFMgdGFnIHRvIFlFUyAodGhlIGRlZmF1bHQpIHdpbGwgaW5zdHJ1Y3QgCi0jIGRveHlnZW4g
dG8gaGlkZSBhbnkgc3BlY2lhbCBjb21tZW50IGJsb2NrcyBmcm9tIGdlbmVyYXRlZCBzb3VyY2Ug
Y29kZSAKLSMgZnJhZ21lbnRzLiBOb3JtYWwgQyBhbmQgQysrIGNvbW1lbnRzIHdpbGwgYWx3YXlz
IHJlbWFpbiB2aXNpYmxlLgorIyBTZXR0aW5nIHRoZSBTVFJJUF9DT0RFX0NPTU1FTlRTIHRhZyB0
byBZRVMgd2lsbCBpbnN0cnVjdCBkb3h5Z2VuIHRvIGhpZGUgYW55CisjIHNwZWNpYWwgY29tbWVu
dCBibG9ja3MgZnJvbSBnZW5lcmF0ZWQgc291cmNlIGNvZGUgZnJhZ21lbnRzLiBOb3JtYWwgQywg
QysrIGFuZAorIyBGb3J0cmFuIGNvbW1lbnRzIHdpbGwgYWx3YXlzIHJlbWFpbiB2aXNpYmxlLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBTVFJJUF9DT0RFX0NPTU1FTlRTICAgID0g
WUVTCiAKLSMgSWYgdGhlIFJFRkVSRU5DRURfQllfUkVMQVRJT04gdGFnIGlzIHNldCB0byBZRVMg
Ci0jIHRoZW4gZm9yIGVhY2ggZG9jdW1lbnRlZCBmdW5jdGlvbiBhbGwgZG9jdW1lbnRlZCAKLSMg
ZnVuY3Rpb25zIHJlZmVyZW5jaW5nIGl0IHdpbGwgYmUgbGlzdGVkLgorIyBJZiB0aGUgUkVGRVJF
TkNFRF9CWV9SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRvY3VtZW50
ZWQKKyMgZnVuY3Rpb24gYWxsIGRvY3VtZW50ZWQgZnVuY3Rpb25zIHJlZmVyZW5jaW5nIGl0IHdp
bGwgYmUgbGlzdGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFJFRkVSRU5DRURf
QllfUkVMQVRJT04gPSBZRVMKIAotIyBJZiB0aGUgUkVGRVJFTkNFU19SRUxBVElPTiB0YWcgaXMg
c2V0IHRvIFlFUyAKLSMgdGhlbiBmb3IgZWFjaCBkb2N1bWVudGVkIGZ1bmN0aW9uIGFsbCBkb2N1
bWVudGVkIGVudGl0aWVzIAotIyBjYWxsZWQvdXNlZCBieSB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUg
bGlzdGVkLgorIyBJZiB0aGUgUkVGRVJFTkNFU19SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyB0
aGVuIGZvciBlYWNoIGRvY3VtZW50ZWQgZnVuY3Rpb24KKyMgYWxsIGRvY3VtZW50ZWQgZW50aXRp
ZXMgY2FsbGVkL3VzZWQgYnkgdGhhdCBmdW5jdGlvbiB3aWxsIGJlIGxpc3RlZC4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBSRUZFUkVOQ0VTX1JFTEFUSU9OICAgID0gWUVTCiAKLSMg
SWYgdGhlIFJFRkVSRU5DRVNfTElOS19TT1VSQ0UgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZh
dWx0KSAKLSMgYW5kIFNPVVJDRV9CUk9XU0VSIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIHRoZSBo
eXBlcmxpbmtzIGZyb20gCi0jIGZ1bmN0aW9ucyBpbiBSRUZFUkVOQ0VTX1JFTEFUSU9OIGFuZCBS
RUZFUkVOQ0VEX0JZX1JFTEFUSU9OIGxpc3RzIHdpbGwgCi0jIGxpbmsgdG8gdGhlIHNvdXJjZSBj
b2RlLiAKLSMgT3RoZXJ3aXNlIHRoZXkgd2lsbCBsaW5rIHRvIHRoZSBkb2N1bWVudGF0aW9uLgor
IyBJZiB0aGUgUkVGRVJFTkNFU19MSU5LX1NPVVJDRSB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgU09V
UkNFX0JST1dTRVIgdGFnIGlzIHNldAorIyB0byBZRVMsIHRoZW4gdGhlIGh5cGVybGlua3MgZnJv
bSBmdW5jdGlvbnMgaW4gUkVGRVJFTkNFU19SRUxBVElPTiBhbmQKKyMgUkVGRVJFTkNFRF9CWV9S
RUxBVElPTiBsaXN0cyB3aWxsIGxpbmsgdG8gdGhlIHNvdXJjZSBjb2RlLiBPdGhlcndpc2UgdGhl
eSB3aWxsCisjIGxpbmsgdG8gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCiAKIFJFRkVSRU5DRVNfTElOS19TT1VSQ0UgPSBZRVMKIAotIyBJZiB0aGUgVVNF
X0hUQUdTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIHJlZmVyZW5jZXMgdG8gc291cmNlIGNv
ZGUgCi0jIHdpbGwgcG9pbnQgdG8gdGhlIEhUTUwgZ2VuZXJhdGVkIGJ5IHRoZSBodGFncygxKSB0
b29sIGluc3RlYWQgb2YgZG94eWdlbiAKLSMgYnVpbHQtaW4gc291cmNlIGJyb3dzZXIuIFRoZSBo
dGFncyB0b29sIGlzIHBhcnQgb2YgR05VJ3MgZ2xvYmFsIHNvdXJjZSAKLSMgdGFnZ2luZyBzeXN0
ZW0gKHNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ2xvYmFsL2dsb2JhbC5odG1sKS4g
WW91IAotIyB3aWxsIG5lZWQgdmVyc2lvbiA0LjguNiBvciBoaWdoZXIuCisjIElmIFNPVVJDRV9U
T09MVElQUyBpcyBlbmFibGVkICh0aGUgZGVmYXVsdCkgdGhlbiBob3ZlcmluZyBhIGh5cGVybGlu
ayBpbiB0aGUKKyMgc291cmNlIGNvZGUgd2lsbCBzaG93IGEgdG9vbHRpcCB3aXRoIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24gc3VjaCBhcyBwcm90b3R5cGUsCisjIGJyaWVmIGRlc2NyaXB0aW9uIGFu
ZCBsaW5rcyB0byB0aGUgZGVmaW5pdGlvbiBhbmQgZG9jdW1lbnRhdGlvbi4gU2luY2UgdGhpcwor
IyB3aWxsIG1ha2UgdGhlIEhUTUwgZmlsZSBsYXJnZXIgYW5kIGxvYWRpbmcgb2YgbGFyZ2UgZmls
ZXMgYSBiaXQgc2xvd2VyLCB5b3UKKyMgY2FuIG9wdCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIFNPVVJDRV9CUk9XU0VSIGlzIHNldCB0byBZRVMuCisKK1NPVVJDRV9UT09MVElQUyAg
ICAgICAgPSBZRVMKKworIyBJZiB0aGUgVVNFX0hUQUdTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4g
dGhlIHJlZmVyZW5jZXMgdG8gc291cmNlIGNvZGUgd2lsbAorIyBwb2ludCB0byB0aGUgSFRNTCBn
ZW5lcmF0ZWQgYnkgdGhlIGh0YWdzKDEpIHRvb2wgaW5zdGVhZCBvZiBkb3h5Z2VuIGJ1aWx0LWlu
CisjIHNvdXJjZSBicm93c2VyLiBUaGUgaHRhZ3MgdG9vbCBpcyBwYXJ0IG9mIEdOVSdzIGdsb2Jh
bCBzb3VyY2UgdGFnZ2luZyBzeXN0ZW0KKyMgKHNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh
cmUvZ2xvYmFsL2dsb2JhbC5odG1sKS4gWW91IHdpbGwgbmVlZCB2ZXJzaW9uCisjIDQuOC42IG9y
IGhpZ2hlci4KKyMKKyMgVG8gdXNlIGl0IGRvIHRoZSBmb2xsb3dpbmc6CisjIC0gSW5zdGFsbCB0
aGUgbGF0ZXN0IHZlcnNpb24gb2YgZ2xvYmFsCisjIC0gRW5hYmxlIFNPVVJDRV9CUk9XU0VSIGFu
ZCBVU0VfSFRBR1MgaW4gdGhlIGNvbmZpZyBmaWxlCisjIC0gTWFrZSBzdXJlIHRoZSBJTlBVVCBw
b2ludHMgdG8gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlCisjIC0gUnVuIGRveHlnZW4gYXMg
bm9ybWFsCisjCisjIERveHlnZW4gd2lsbCBpbnZva2UgaHRhZ3MgKGFuZCB0aGF0IHdpbGwgaW4g
dHVybiBpbnZva2UgZ3RhZ3MpLCBzbyB0aGVzZQorIyB0b29scyBtdXN0IGJlIGF2YWlsYWJsZSBm
cm9tIHRoZSBjb21tYW5kIGxpbmUgKGkuZS4gaW4gdGhlIHNlYXJjaCBwYXRoKS4KKyMKKyMgVGhl
IHJlc3VsdDogaW5zdGVhZCBvZiB0aGUgc291cmNlIGJyb3dzZXIgZ2VuZXJhdGVkIGJ5IGRveHln
ZW4sIHRoZSBsaW5rcyB0bworIyBzb3VyY2UgY29kZSB3aWxsIG5vdyBwb2ludCB0byB0aGUgb3V0
cHV0IG9mIGh0YWdzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTLgogCiBVU0Vf
SFRBR1MgICAgICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgVkVSQkFUSU1fSEVBREVSUyB0YWcg
aXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIHRoZW4gRG94eWdlbiAKLSMgd2lsbCBnZW5lcmF0
ZSBhIHZlcmJhdGltIGNvcHkgb2YgdGhlIGhlYWRlciBmaWxlIGZvciBlYWNoIGNsYXNzIGZvciAK
LSMgd2hpY2ggYW4gaW5jbHVkZSBpcyBzcGVjaWZpZWQuIFNldCB0byBOTyB0byBkaXNhYmxlIHRo
aXMuCisjIElmIHRoZSBWRVJCQVRJTV9IRUFERVJTIHRhZyBpcyBzZXQgdGhlIFlFUyB0aGVuIGRv
eHlnZW4gd2lsbCBnZW5lcmF0ZSBhCisjIHZlcmJhdGltIGNvcHkgb2YgdGhlIGhlYWRlciBmaWxl
IGZvciBlYWNoIGNsYXNzIGZvciB3aGljaCBhbiBpbmNsdWRlIGlzCisjIHNwZWNpZmllZC4gU2V0
IHRvIE5PIHRvIGRpc2FibGUgdGhpcy4KKyMgU2VlIGFsc286IFNlY3Rpb24gXGNsYXNzLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBWRVJCQVRJTV9IRUFERVJTICAgICAgID0gWUVT
CiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQg
dG8gdGhlIGFscGhhYmV0aWNhbCBjbGFzcyBpbmRleAorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMg
cmVsYXRlZCB0byB0aGUgYWxwaGFiZXRpY2FsIGNsYXNzIGluZGV4CiAjLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLSMgSWYgdGhlIEFMUEhBQkVUSUNBTF9JTkRFWCB0YWcgaXMgc2V0IHRvIFlFUywgYW4g
YWxwaGFiZXRpY2FsIGluZGV4IAotIyBvZiBhbGwgY29tcG91bmRzIHdpbGwgYmUgZ2VuZXJhdGVk
LiBFbmFibGUgdGhpcyBpZiB0aGUgcHJvamVjdCAKLSMgY29udGFpbnMgYSBsb3Qgb2YgY2xhc3Nl
cywgc3RydWN0cywgdW5pb25zIG9yIGludGVyZmFjZXMuCisjIElmIHRoZSBBTFBIQUJFVElDQUxf
SU5ERVggdGFnIGlzIHNldCB0byBZRVMsIGFuIGFscGhhYmV0aWNhbCBpbmRleCBvZiBhbGwKKyMg
Y29tcG91bmRzIHdpbGwgYmUgZ2VuZXJhdGVkLiBFbmFibGUgdGhpcyBpZiB0aGUgcHJvamVjdCBj
b250YWlucyBhIGxvdCBvZgorIyBjbGFzc2VzLCBzdHJ1Y3RzLCB1bmlvbnMgb3IgaW50ZXJmYWNl
cy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAotQUxQSEFCRVRJQ0FMX0lOREVYICAg
ICA9IE5PCitBTFBIQUJFVElDQUxfSU5ERVggICAgID0gWUVTCitUT0NfSU5DTFVERV9IRUFESU5H
UyA9IDIKIAotIyBJZiB0aGUgYWxwaGFiZXRpY2FsIGluZGV4IGlzIGVuYWJsZWQgKHNlZSBBTFBI
QUJFVElDQUxfSU5ERVgpIHRoZW4gCi0jIHRoZSBDT0xTX0lOX0FMUEhBX0lOREVYIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY29sdW1ucyAKLSMgaW4gd2hpY2ggdGhp
cyBsaXN0IHdpbGwgYmUgc3BsaXQgKGNhbiBiZSBhIG51bWJlciBpbiB0aGUgcmFuZ2UgWzEuLjIw
XSkKKyMgVGhlIENPTFNfSU5fQUxQSEFfSU5ERVggdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkg
dGhlIG51bWJlciBvZiBjb2x1bW5zIGluCisjIHdoaWNoIHRoZSBhbHBoYWJldGljYWwgaW5kZXgg
bGlzdCB3aWxsIGJlIHNwbGl0LgorIyBNaW5pbXVtIHZhbHVlOiAxLCBtYXhpbXVtIHZhbHVlOiAy
MCwgZGVmYXVsdCB2YWx1ZTogNS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEFM
UEhBQkVUSUNBTF9JTkRFWCBpcyBzZXQgdG8gWUVTLgogCiBDT0xTX0lOX0FMUEhBX0lOREVYICAg
ID0gNQogCi0jIEluIGNhc2UgYWxsIGNsYXNzZXMgaW4gYSBwcm9qZWN0IHN0YXJ0IHdpdGggYSBj
b21tb24gcHJlZml4LCBhbGwgCi0jIGNsYXNzZXMgd2lsbCBiZSBwdXQgdW5kZXIgdGhlIHNhbWUg
aGVhZGVyIGluIHRoZSBhbHBoYWJldGljYWwgaW5kZXguIAotIyBUaGUgSUdOT1JFX1BSRUZJWCB0
YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBwcmVmaXhlcyB0aGF0IAotIyBz
aG91bGQgYmUgaWdub3JlZCB3aGlsZSBnZW5lcmF0aW5nIHRoZSBpbmRleCBoZWFkZXJzLgorIyBJ
biBjYXNlIGFsbCBjbGFzc2VzIGluIGEgcHJvamVjdCBzdGFydCB3aXRoIGEgY29tbW9uIHByZWZp
eCwgYWxsIGNsYXNzZXMgd2lsbAorIyBiZSBwdXQgdW5kZXIgdGhlIHNhbWUgaGVhZGVyIGluIHRo
ZSBhbHBoYWJldGljYWwgaW5kZXguIFRoZSBJR05PUkVfUFJFRklYIHRhZworIyBjYW4gYmUgdXNl
ZCB0byBzcGVjaWZ5IGEgcHJlZml4IChvciBhIGxpc3Qgb2YgcHJlZml4ZXMpIHRoYXQgc2hvdWxk
IGJlIGlnbm9yZWQKKyMgd2hpbGUgZ2VuZXJhdGluZyB0aGUgaW5kZXggaGVhZGVycy4KKyMgVGhp
cyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEFMUEhBQkVUSUNBTF9JTkRFWCBpcyBzZXQgdG8g
WUVTLgogCi1JR05PUkVfUFJFRklYICAgICAgICAgID0gCitJR05PUkVfUFJFRklYICAgICAgICAg
ID0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRl
ZCB0byB0aGUgSFRNTCBvdXRwdXQKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8g
dGhlIEhUTUwgb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRF
X0hUTUwgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGdl
bmVyYXRlIEhUTUwgb3V0cHV0LgorIyBJZiB0aGUgR0VORVJBVEVfSFRNTCB0YWcgaXMgc2V0IHRv
IFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgSFRNTCBvdXRwdXQKKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KIAogR0VORVJBVEVfSFRNTCAgICAgICAgICA9IFlFUwogCi0jIFRoZSBIVE1M
X09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBIVE1MIGRvY3Mgd2lsbCBi
ZSBwdXQuIAotIyBJZiBhIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VU
UFVUX0RJUkVDVE9SWSB3aWxsIGJlIAotIyBwdXQgaW4gZnJvbnQgb2YgaXQuIElmIGxlZnQgYmxh
bmsgYGh0bWwnIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBwYXRoLgorIyBUaGUgSFRNTF9P
VVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgSFRNTCBkb2NzIHdpbGwgYmUg
cHV0LiBJZiBhCisjIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVU
X0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBpbiBmcm9udCBvZgorIyBpdC4KKyMgVGhlIGRlZmF1bHQg
ZGlyZWN0b3J5IGlzOiBodG1sLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBIVE1MX09VVFBVVCAgICAgICAgICAgID0gJUhU
TUxfT1VUUFVUJQogCi0jIFRoZSBIVE1MX0ZJTEVfRVhURU5TSU9OIHRhZyBjYW4gYmUgdXNlZCB0
byBzcGVjaWZ5IHRoZSBmaWxlIGV4dGVuc2lvbiBmb3IgCi0jIGVhY2ggZ2VuZXJhdGVkIEhUTUwg
cGFnZSAoZm9yIGV4YW1wbGU6IC5odG0sLnBocCwuYXNwKS4gSWYgaXQgaXMgbGVmdCBibGFuayAK
LSMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGZpbGVzIHdpdGggLmh0bWwgZXh0ZW5zaW9uLgorIyBU
aGUgSFRNTF9GSUxFX0VYVEVOU0lPTiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmls
ZSBleHRlbnNpb24gZm9yIGVhY2gKKyMgZ2VuZXJhdGVkIEhUTUwgcGFnZSAoZm9yIGV4YW1wbGU6
IC5odG0sIC5waHAsIC5hc3ApLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogLmh0bWwuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMu
CiAKIEhUTUxfRklMRV9FWFRFTlNJT04gICAgPSAuaHRtbAogCi0jIFRoZSBIVE1MX0hFQURFUiB0
YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBlcnNvbmFsIEhUTUwgaGVhZGVyIGZvciAKLSMg
ZWFjaCBnZW5lcmF0ZWQgSFRNTCBwYWdlLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2ls
bCBnZW5lcmF0ZSBhIAorIyBUaGUgSFRNTF9IRUFERVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
ZnkgYSB1c2VyLWRlZmluZWQgSFRNTCBoZWFkZXIgZmlsZSBmb3IKKyMgZWFjaCBnZW5lcmF0ZWQg
SFRNTCBwYWdlLiBJZiB0aGUgdGFnIGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRl
IGEKICMgc3RhbmRhcmQgaGVhZGVyLgorIworIyBUbyBnZXQgdmFsaWQgSFRNTCB0aGUgaGVhZGVy
IGZpbGUgdGhhdCBpbmNsdWRlcyBhbnkgc2NyaXB0cyBhbmQgc3R5bGUgc2hlZXRzCisjIHRoYXQg
ZG94eWdlbiBuZWVkcywgd2hpY2ggaXMgZGVwZW5kZW50IG9uIHRoZSBjb25maWd1cmF0aW9uIG9w
dGlvbnMgdXNlZCAoZS5nLgorIyB0aGUgc2V0dGluZyBHRU5FUkFURV9UUkVFVklFVykuIEl0IGlz
IGhpZ2hseSByZWNvbW1lbmRlZCB0byBzdGFydCB3aXRoIGEKKyMgZGVmYXVsdCBoZWFkZXIgdXNp
bmcKKyMgZG94eWdlbiAtdyBodG1sIG5ld19oZWFkZXIuaHRtbCBuZXdfZm9vdGVyLmh0bWwgbmV3
X3N0eWxlc2hlZXQuY3NzCisjIFlvdXJDb25maWdGaWxlCisjIGFuZCB0aGVuIG1vZGlmeSB0aGUg
ZmlsZSBuZXdfaGVhZGVyLmh0bWwuIFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiCisj
IGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlIGRlZmF1bHQgaGVhZGVyIHRo
YXQgZG94eWdlbiBub3JtYWxseQorIyB1c2VzLgorIyBOb3RlOiBUaGUgaGVhZGVyIGlzIHN1Ympl
Y3QgdG8gY2hhbmdlIHNvIHlvdSB0eXBpY2FsbHkgaGF2ZSB0byByZWdlbmVyYXRlIHRoZQorIyBk
ZWZhdWx0IGhlYWRlciB3aGVuIHVwZ3JhZGluZyB0byBhIG5ld2VyIHZlcnNpb24gb2YgZG94eWdl
bi4gRm9yIGEgZGVzY3JpcHRpb24KKyMgb2YgdGhlIHBvc3NpYmxlIG1hcmtlcnMgYW5kIGJsb2Nr
IG5hbWVzIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAogSFRNTF9IRUFERVIgICAgICAg
ICAgICA9IGhlYWRlci5odG1sCiAKLSMgVGhlIEhUTUxfRk9PVEVSIHRhZyBjYW4gYmUgdXNlZCB0
byBzcGVjaWZ5IGEgcGVyc29uYWwgSFRNTCBmb290ZXIgZm9yIAotIyBlYWNoIGdlbmVyYXRlZCBI
VE1MIHBhZ2UuIElmIGl0IGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgCi0j
IHN0YW5kYXJkIGZvb3Rlci4KKyMgVGhlIEhUTUxfRk9PVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBz
cGVjaWZ5IGEgdXNlci1kZWZpbmVkIEhUTUwgZm9vdGVyIGZvciBlYWNoCisjIGdlbmVyYXRlZCBI
VE1MIHBhZ2UuIElmIHRoZSB0YWcgaXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUg
YSBzdGFuZGFyZAorIyBmb290ZXIuIFNlZSBIVE1MX0hFQURFUiBmb3IgbW9yZSBpbmZvcm1hdGlv
biBvbiBob3cgdG8gZ2VuZXJhdGUgYSBkZWZhdWx0CisjIGZvb3RlciBhbmQgd2hhdCBzcGVjaWFs
IGNvbW1hbmRzIGNhbiBiZSB1c2VkIGluc2lkZSB0aGUgZm9vdGVyLiBTZWUgYWxzbworIyBzZWN0
aW9uICJEb3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRo
ZSBkZWZhdWx0IGZvb3RlcgorIyB0aGF0IGRveHlnZW4gbm9ybWFsbHkgdXNlcy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAog
SFRNTF9GT09URVIgICAgICAgICAgICA9IGZvb3Rlci5odG1sCiAKLSMgVGhlIEhUTUxfU1RZTEVT
SEVFVCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHVzZXItZGVmaW5lZCBjYXNjYWRpbmcg
Ci0jIHN0eWxlIHNoZWV0IHRoYXQgaXMgdXNlZCBieSBlYWNoIEhUTUwgcGFnZS4gSXQgY2FuIGJl
IHVzZWQgdG8gCi0jIGZpbmUtdHVuZSB0aGUgbG9vayBvZiB0aGUgSFRNTCBvdXRwdXQuIElmIHRo
ZSB0YWcgaXMgbGVmdCBibGFuayBkb3h5Z2VuIAotIyB3aWxsIGdlbmVyYXRlIGEgZGVmYXVsdCBz
dHlsZSBzaGVldC4gTm90ZSB0aGF0IGRveHlnZW4gd2lsbCB0cnkgdG8gY29weSAKLSMgdGhlIHN0
eWxlIHNoZWV0IGZpbGUgdG8gdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeSwgc28gZG9uJ3QgcHV0
IHlvdXIgb3duIAotIyBzdHlsZXNoZWV0IGluIHRoZSBIVE1MIG91dHB1dCBkaXJlY3RvcnkgYXMg
d2VsbCwgb3IgaXQgd2lsbCBiZSBlcmFzZWQhCi0KLUhUTUxfU1RZTEVTSEVFVCAgICAgICAgPSAK
LQotIyBJZiB0aGUgSFRNTF9BTElHTl9NRU1CRVJTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgbWVt
YmVycyBvZiBjbGFzc2VzLCAKLSMgZmlsZXMgb3IgbmFtZXNwYWNlcyB3aWxsIGJlIGFsaWduZWQg
aW4gSFRNTCB1c2luZyB0YWJsZXMuIElmIHNldCB0byAKLSMgTk8gYSBidWxsZXQgbGlzdCB3aWxs
IGJlIHVzZWQuCi0KLUhUTUxfQUxJR05fTUVNQkVSUyAgICAgPSBZRVMKLQotIyBJZiB0aGUgSFRN
TF9EWU5BTUlDX1NFQ1RJT05TIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGdlbmVyYXRlZCBI
VE1MIAotIyBkb2N1bWVudGF0aW9uIHdpbGwgY29udGFpbiBzZWN0aW9ucyB0aGF0IGNhbiBiZSBo
aWRkZW4gYW5kIHNob3duIGFmdGVyIHRoZSAKLSMgcGFnZSBoYXMgbG9hZGVkLiBGb3IgdGhpcyB0
byB3b3JrIGEgYnJvd3NlciB0aGF0IHN1cHBvcnRzIAotIyBKYXZhU2NyaXB0IGFuZCBESFRNTCBp
cyByZXF1aXJlZCAoZm9yIGluc3RhbmNlIE1vemlsbGEgMS4wKywgRmlyZWZveCAKLSMgTmV0c2Nh
cGUgNi4wKywgSW50ZXJuZXQgZXhwbG9yZXIgNS4wKywgS29ucXVlcm9yLCBvciBTYWZhcmkpLgor
IyBUaGUgSFRNTF9TVFlMRVNIRUVUIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1k
ZWZpbmVkIGNhc2NhZGluZyBzdHlsZQorIyBzaGVldCB0aGF0IGlzIHVzZWQgYnkgZWFjaCBIVE1M
IHBhZ2UuIEl0IGNhbiBiZSB1c2VkIHRvIGZpbmUtdHVuZSB0aGUgbG9vayBvZgorIyB0aGUgSFRN
TCBvdXRwdXQuIElmIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZGVmYXVsdCBz
dHlsZSBzaGVldC4KKyMgU2VlIGFsc28gc2VjdGlvbiAiRG94eWdlbiB1c2FnZSIgZm9yIGluZm9y
bWF0aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSB0aGUgc3R5bGUKKyMgc2hlZXQgdGhhdCBkb3h5Z2Vu
IG5vcm1hbGx5IHVzZXMuCisjIE5vdGU6IEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBIVE1MX0VY
VFJBX1NUWUxFU0hFRVQgaW5zdGVhZCBvZiB0aGlzIHRhZywgYXMKKyMgaXQgaXMgbW9yZSByb2J1
c3QgYW5kIHRoaXMgdGFnIChIVE1MX1NUWUxFU0hFRVQpIHdpbGwgaW4gdGhlIGZ1dHVyZSBiZWNv
bWUKKyMgb2Jzb2xldGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfU1RZTEVTSEVFVCAgICAgICAgPQorCisjIFRo
ZSBIVE1MX0VYVFJBX1NUWUxFU0hFRVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gYWRk
aXRpb25hbCB1c2VyLQorIyBkZWZpbmVkIGNhc2NhZGluZyBzdHlsZSBzaGVldCB0aGF0IGlzIGlu
Y2x1ZGVkIGFmdGVyIHRoZSBzdGFuZGFyZCBzdHlsZSBzaGVldHMKKyMgY3JlYXRlZCBieSBkb3h5
Z2VuLiBVc2luZyB0aGlzIG9wdGlvbiBvbmUgY2FuIG92ZXJydWxlIGNlcnRhaW4gc3R5bGUgYXNw
ZWN0cy4KKyMgVGhpcyBpcyBwcmVmZXJyZWQgb3ZlciB1c2luZyBIVE1MX1NUWUxFU0hFRVQgc2lu
Y2UgaXQgZG9lcyBub3QgcmVwbGFjZSB0aGUKKyMgc3RhbmRhcmQgc3R5bGUgc2hlZXQgYW5kIGlz
IHRoZXJlZm9yZSBtb3JlIHJvYnVzdCBhZ2FpbnN0IGZ1dHVyZSB1cGRhdGVzLgorIyBEb3h5Z2Vu
IHdpbGwgY29weSB0aGUgc3R5bGUgc2hlZXQgZmlsZSB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4g
Rm9yIGFuIGV4YW1wbGUKKyMgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0VY
VFJBX1NUWUxFU0hFRVQgID0KKworIyBUaGUgSFRNTF9FWFRSQV9GSUxFUyB0YWcgY2FuIGJlIHVz
ZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBleHRyYSBpbWFnZXMgb3IKKyMgb3RoZXIgc291cmNl
IGZpbGVzIHdoaWNoIHNob3VsZCBiZSBjb3BpZWQgdG8gdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9y
eS4gTm90ZQorIyB0aGF0IHRoZXNlIGZpbGVzIHdpbGwgYmUgY29waWVkIHRvIHRoZSBiYXNlIEhU
TUwgb3V0cHV0IGRpcmVjdG9yeS4gVXNlIHRoZQorIyAkcmVscGF0aF4gbWFya2VyIGluIHRoZSBI
VE1MX0hFQURFUiBhbmQvb3IgSFRNTF9GT09URVIgZmlsZXMgdG8gbG9hZCB0aGVzZQorIyBmaWxl
cy4gSW4gdGhlIEhUTUxfU1RZTEVTSEVFVCBmaWxlLCB1c2UgdGhlIGZpbGUgbmFtZSBvbmx5LiBB
bHNvIG5vdGUgdGhhdCB0aGUKKyMgZmlsZXMgd2lsbCBiZSBjb3BpZWQgYXMtaXM7IHRoZXJlIGFy
ZSBubyBjb21tYW5kcyBvciBtYXJrZXJzIGF2YWlsYWJsZS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9FWFRSQV9G
SUxFUyAgICAgICA9CisKKyMgVGhlIEhUTUxfQ09MT1JTVFlMRV9IVUUgdGFnIGNvbnRyb2xzIHRo
ZSBjb2xvciBvZiB0aGUgSFRNTCBvdXRwdXQuIERveHlnZW4KKyMgd2lsbCBhZGp1c3QgdGhlIGNv
bG9ycyBpbiB0aGUgc3R5bGVzaGVldCBhbmQgYmFja2dyb3VuZCBpbWFnZXMgYWNjb3JkaW5nIHRv
CisjIHRoaXMgY29sb3IuIEh1ZSBpcyBzcGVjaWZpZWQgYXMgYW4gYW5nbGUgb24gYSBjb2xvcndo
ZWVsLCBzZWUKKyMgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IdWUgZm9yIG1vcmUgaW5m
b3JtYXRpb24uIEZvciBpbnN0YW5jZSB0aGUgdmFsdWUKKyMgMCByZXByZXNlbnRzIHJlZCwgNjAg
aXMgeWVsbG93LCAxMjAgaXMgZ3JlZW4sIDE4MCBpcyBjeWFuLCAyNDAgaXMgYmx1ZSwgMzAwCisj
IHB1cnBsZSwgYW5kIDM2MCBpcyByZWQgYWdhaW4uCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGlt
dW0gdmFsdWU6IDM1OSwgZGVmYXVsdCB2YWx1ZTogMjIwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0NPTE9SU1RZ
TEVfSFVFICAgID0gMjIwCisKKyMgVGhlIEhUTUxfQ09MT1JTVFlMRV9TQVQgdGFnIGNvbnRyb2xz
IHRoZSBwdXJpdHkgKG9yIHNhdHVyYXRpb24pIG9mIHRoZSBjb2xvcnMKKyMgaW4gdGhlIEhUTUwg
b3V0cHV0LiBGb3IgYSB2YWx1ZSBvZiAwIHRoZSBvdXRwdXQgd2lsbCB1c2UgZ3JheXNjYWxlcyBv
bmx5LiBBCisjIHZhbHVlIG9mIDI1NSB3aWxsIHByb2R1Y2UgdGhlIG1vc3Qgdml2aWQgY29sb3Jz
LgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAyNTUsIGRlZmF1bHQgdmFsdWU6
IDEwMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMg
c2V0IHRvIFlFUy4KKworSFRNTF9DT0xPUlNUWUxFX1NBVCAgICA9IDEwMAorCisjIFRoZSBIVE1M
X0NPTE9SU1RZTEVfR0FNTUEgdGFnIGNvbnRyb2xzIHRoZSBnYW1tYSBjb3JyZWN0aW9uIGFwcGxp
ZWQgdG8gdGhlCisjIGx1bWluYW5jZSBjb21wb25lbnQgb2YgdGhlIGNvbG9ycyBpbiB0aGUgSFRN
TCBvdXRwdXQuIFZhbHVlcyBiZWxvdyAxMDAKKyMgZ3JhZHVhbGx5IG1ha2UgdGhlIG91dHB1dCBs
aWdodGVyLCB3aGVyZWFzIHZhbHVlcyBhYm92ZSAxMDAgbWFrZSB0aGUgb3V0cHV0CisjIGRhcmtl
ci4gVGhlIHZhbHVlIGRpdmlkZWQgYnkgMTAwIGlzIHRoZSBhY3R1YWwgZ2FtbWEgYXBwbGllZCwg
c28gODAgcmVwcmVzZW50cworIyBhIGdhbW1hIG9mIDAuOCwgVGhlIHZhbHVlIDIyMCByZXByZXNl
bnRzIGEgZ2FtbWEgb2YgMi4yLCBhbmQgMTAwIGRvZXMgbm90CisjIGNoYW5nZSB0aGUgZ2FtbWEu
CisjIE1pbmltdW0gdmFsdWU6IDQwLCBtYXhpbXVtIHZhbHVlOiAyNDAsIGRlZmF1bHQgdmFsdWU6
IDgwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBz
ZXQgdG8gWUVTLgorCitIVE1MX0NPTE9SU1RZTEVfR0FNTUEgID0gODAKKworIyBJZiB0aGUgSFRN
TF9USU1FU1RBTVAgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgZm9vdGVyIG9mIGVhY2ggZ2Vu
ZXJhdGVkIEhUTUwKKyMgcGFnZSB3aWxsIGNvbnRhaW4gdGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0
aGUgcGFnZSB3YXMgZ2VuZXJhdGVkLiBTZXR0aW5nIHRoaXMKKyMgdG8gTk8gY2FuIGhlbHAgd2hl
biBjb21wYXJpbmcgdGhlIG91dHB1dCBvZiBtdWx0aXBsZSBydW5zLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
SFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX1RJTUVTVEFNUCAgICAgICAgID0gWUVTCisKKyMg
SWYgdGhlIEhUTUxfRFlOQU1JQ19TRUNUSU9OUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBn
ZW5lcmF0ZWQgSFRNTAorIyBkb2N1bWVudGF0aW9uIHdpbGwgY29udGFpbiBzZWN0aW9ucyB0aGF0
IGNhbiBiZSBoaWRkZW4gYW5kIHNob3duIGFmdGVyIHRoZQorIyBwYWdlIGhhcyBsb2FkZWQuCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAogSFRNTF9EWU5BTUlDX1NFQ1RJT05T
ICA9IFlFUwogCi0jIElmIHRoZSBHRU5FUkFURV9ET0NTRVQgdGFnIGlzIHNldCB0byBZRVMsIGFk
ZGl0aW9uYWwgaW5kZXggZmlsZXMgCi0jIHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVz
ZWQgYXMgaW5wdXQgZm9yIEFwcGxlJ3MgWGNvZGUgMyAKLSMgaW50ZWdyYXRlZCBkZXZlbG9wbWVu
dCBlbnZpcm9ubWVudCwgaW50cm9kdWNlZCB3aXRoIE9TWCAxMC41IChMZW9wYXJkKS4gCi0jIFRv
IGNyZWF0ZSBhIGRvY3VtZW50YXRpb24gc2V0LCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBNYWtl
ZmlsZSBpbiB0aGUgCi0jIEhUTUwgb3V0cHV0IGRpcmVjdG9yeS4gUnVubmluZyBtYWtlIHdpbGwg
cHJvZHVjZSB0aGUgZG9jc2V0IGluIHRoYXQgCi0jIGRpcmVjdG9yeSBhbmQgcnVubmluZyAibWFr
ZSBpbnN0YWxsIiB3aWxsIGluc3RhbGwgdGhlIGRvY3NldCBpbiAKLSMgfi9MaWJyYXJ5L0RldmVs
b3Blci9TaGFyZWQvRG9jdW1lbnRhdGlvbi9Eb2NTZXRzIHNvIHRoYXQgWGNvZGUgd2lsbCBmaW5k
IAotIyBpdCBhdCBzdGFydHVwLiAKLSMgU2VlIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3Rv
b2xzL2NyZWF0aW5nZG9jc2V0c3dpdGhkb3h5Z2VuLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24u
CisjIFdpdGggSFRNTF9JTkRFWF9OVU1fRU5UUklFUyBvbmUgY2FuIGNvbnRyb2wgdGhlIHByZWZl
cnJlZCBudW1iZXIgb2YgZW50cmllcworIyBzaG93biBpbiB0aGUgdmFyaW91cyB0cmVlIHN0cnVj
dHVyZWQgaW5kaWNlcyBpbml0aWFsbHk7IHRoZSB1c2VyIGNhbiBleHBhbmQKKyMgYW5kIGNvbGxh
cHNlIGVudHJpZXMgZHluYW1pY2FsbHkgbGF0ZXIgb24uIERveHlnZW4gd2lsbCBleHBhbmQgdGhl
IHRyZWUgdG8KKyMgc3VjaCBhIGxldmVsIHRoYXQgYXQgbW9zdCB0aGUgc3BlY2lmaWVkIG51bWJl
ciBvZiBlbnRyaWVzIGFyZSB2aXNpYmxlICh1bmxlc3MKKyMgYSBmdWxseSBjb2xsYXBzZWQgdHJl
ZSBhbHJlYWR5IGV4Y2VlZHMgdGhpcyBhbW91bnQpLiBTbyBzZXR0aW5nIHRoZSBudW1iZXIgb2YK
KyMgZW50cmllcyAxIHdpbGwgcHJvZHVjZSBhIGZ1bGwgY29sbGFwc2VkIHRyZWUgYnkgZGVmYXVs
dC4gMCBpcyBhIHNwZWNpYWwgdmFsdWUKKyMgcmVwcmVzZW50aW5nIGFuIGluZmluaXRlIG51bWJl
ciBvZiBlbnRyaWVzIGFuZCB3aWxsIHJlc3VsdCBpbiBhIGZ1bGwgZXhwYW5kZWQKKyMgdHJlZSBi
eSBkZWZhdWx0LgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5OTk5LCBkZWZh
dWx0IHZhbHVlOiAxMDAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfSU5ERVhfTlVNX0VOVFJJRVMgPSAxMDAKKwor
IyBJZiB0aGUgR0VORVJBVEVfRE9DU0VUIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGlu
ZGV4IGZpbGVzIHdpbGwgYmUKKyMgZ2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVzZWQgYXMgaW5wdXQg
Zm9yIEFwcGxlJ3MgWGNvZGUgMyBpbnRlZ3JhdGVkIGRldmVsb3BtZW50CisjIGVudmlyb25tZW50
IChzZWU6IGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlLyksIGludHJvZHVj
ZWQgd2l0aAorIyBPU1ggMTAuNSAoTGVvcGFyZCkuIFRvIGNyZWF0ZSBhIGRvY3VtZW50YXRpb24g
c2V0LCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQorIyBNYWtlZmlsZSBpbiB0aGUgSFRNTCBvdXRw
dXQgZGlyZWN0b3J5LiBSdW5uaW5nIG1ha2Ugd2lsbCBwcm9kdWNlIHRoZSBkb2NzZXQgaW4KKyMg
dGhhdCBkaXJlY3RvcnkgYW5kIHJ1bm5pbmcgbWFrZSBpbnN0YWxsIHdpbGwgaW5zdGFsbCB0aGUg
ZG9jc2V0IGluCisjIH4vTGlicmFyeS9EZXZlbG9wZXIvU2hhcmVkL0RvY3VtZW50YXRpb24vRG9j
U2V0cyBzbyB0aGF0IFhjb2RlIHdpbGwgZmluZCBpdCBhdAorIyBzdGFydHVwLiBTZWUgaHR0cDov
L2RldmVsb3Blci5hcHBsZS5jb20vdG9vbHMvY3JlYXRpbmdkb2NzZXRzd2l0aGRveHlnZW4uaHRt
bAorIyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8g
WUVTLgogCiBHRU5FUkFURV9ET0NTRVQgICAgICAgID0gTk8KIAotIyBXaGVuIEdFTkVSQVRFX0RP
Q1NFVCB0YWcgaXMgc2V0IHRvIFlFUywgdGhpcyB0YWcgZGV0ZXJtaW5lcyB0aGUgbmFtZSBvZiB0
aGUgCi0jIGZlZWQuIEEgZG9jdW1lbnRhdGlvbiBmZWVkIHByb3ZpZGVzIGFuIHVtYnJlbGxhIHVu
ZGVyIHdoaWNoIG11bHRpcGxlIAotIyBkb2N1bWVudGF0aW9uIHNldHMgZnJvbSBhIHNpbmdsZSBw
cm92aWRlciAoc3VjaCBhcyBhIGNvbXBhbnkgb3IgcHJvZHVjdCBzdWl0ZSkgCi0jIGNhbiBiZSBn
cm91cGVkLgorIyBUaGlzIHRhZyBkZXRlcm1pbmVzIHRoZSBuYW1lIG9mIHRoZSBkb2NzZXQgZmVl
ZC4gQSBkb2N1bWVudGF0aW9uIGZlZWQgcHJvdmlkZXMKKyMgYW4gdW1icmVsbGEgdW5kZXIgd2hp
Y2ggbXVsdGlwbGUgZG9jdW1lbnRhdGlvbiBzZXRzIGZyb20gYSBzaW5nbGUgcHJvdmlkZXIKKyMg
KHN1Y2ggYXMgYSBjb21wYW55IG9yIHByb2R1Y3Qgc3VpdGUpIGNhbiBiZSBncm91cGVkLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogRG94eWdlbiBnZW5lcmF0ZWQgZG9jcy4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgogCiBE
T0NTRVRfRkVFRE5BTUUgICAgICAgID0gIkRveHlnZW4gZ2VuZXJhdGVkIGRvY3MiCiAKLSMgV2hl
biBHRU5FUkFURV9ET0NTRVQgdGFnIGlzIHNldCB0byBZRVMsIHRoaXMgdGFnIHNwZWNpZmllcyBh
IHN0cmluZyB0aGF0IAotIyBzaG91bGQgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRvY3VtZW50YXRp
b24gc2V0IGJ1bmRsZS4gVGhpcyBzaG91bGQgYmUgYSAKLSMgcmV2ZXJzZSBkb21haW4tbmFtZSBz
dHlsZSBzdHJpbmcsIGUuZy4gY29tLm15Y29tcGFueS5NeURvY1NldC4gRG94eWdlbiAKLSMgd2ls
bCBhcHBlbmQgLmRvY3NldCB0byB0aGUgbmFtZS4KKyMgVGhpcyB0YWcgc3BlY2lmaWVzIGEgc3Ry
aW5nIHRoYXQgc2hvdWxkIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBkb2N1bWVudGF0aW9uCisjIHNl
dCBidW5kbGUuIFRoaXMgc2hvdWxkIGJlIGEgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZSBzdHJp
bmcsIGUuZy4KKyMgY29tLm15Y29tcGFueS5NeURvY1NldC4gRG94eWdlbiB3aWxsIGFwcGVuZCAu
ZG9jc2V0IHRvIHRoZSBuYW1lLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4u
UHJvamVjdC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NF
VCBpcyBzZXQgdG8gWUVTLgogCiBET0NTRVRfQlVORExFX0lEICAgICAgID0gb3JnLmRveHlnZW4u
UHJvamVjdAogCi0jIElmIHRoZSBHRU5FUkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUywg
YWRkaXRpb25hbCBpbmRleCBmaWxlcyAKLSMgd2lsbCBiZSBnZW5lcmF0ZWQgdGhhdCBjYW4gYmUg
dXNlZCBhcyBpbnB1dCBmb3IgdG9vbHMgbGlrZSB0aGUgCi0jIE1pY3Jvc29mdCBIVE1MIGhlbHAg
d29ya3Nob3AgdG8gZ2VuZXJhdGUgYSBjb21waWxlZCBIVE1MIGhlbHAgZmlsZSAoLmNobSkgCi0j
IG9mIHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgorIyBUaGUgRE9DU0VUX1BVQkxJ
U0hFUl9JRCB0YWcgc3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQgc2hvdWxkIHVuaXF1ZWx5IGlkZW50
aWZ5CisjIHRoZSBkb2N1bWVudGF0aW9uIHB1Ymxpc2hlci4gVGhpcyBzaG91bGQgYmUgYSByZXZl
cnNlIGRvbWFpbi1uYW1lIHN0eWxlCisjIHN0cmluZywgZS5nLiBjb20ubXljb21wYW55Lk15RG9j
U2V0LmRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5Q
dWJsaXNoZXIuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9ET0NT
RVQgaXMgc2V0IHRvIFlFUy4KKworRE9DU0VUX1BVQkxJU0hFUl9JRCAgICA9IG9yZy5kb3h5Z2Vu
LlB1Ymxpc2hlcgorCisjIFRoZSBET0NTRVRfUFVCTElTSEVSX05BTUUgdGFnIGlkZW50aWZpZXMg
dGhlIGRvY3VtZW50YXRpb24gcHVibGlzaGVyLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogUHVi
bGlzaGVyLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DU0VU
IGlzIHNldCB0byBZRVMuCisKK0RPQ1NFVF9QVUJMSVNIRVJfTkFNRSAgPSBQdWJsaXNoZXIKKwor
IyBJZiB0aGUgR0VORVJBVEVfSFRNTEhFTFAgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2Vu
IGdlbmVyYXRlcyB0aHJlZQorIyBhZGRpdGlvbmFsIEhUTUwgaW5kZXggZmlsZXM6IGluZGV4Lmho
cCwgaW5kZXguaGhjLCBhbmQgaW5kZXguaGhrLiBUaGUKKyMgaW5kZXguaGhwIGlzIGEgcHJvamVj
dCBmaWxlIHRoYXQgY2FuIGJlIHJlYWQgYnkgTWljcm9zb2Z0J3MgSFRNTCBIZWxwIFdvcmtzaG9w
CisjIChzZWU6IGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9lbi11cy9kb3dubG9hZC9kZXRhaWxz
LmFzcHg/aWQ9MjExMzgpIG9uCisjIFdpbmRvd3MuCisjCisjIFRoZSBIVE1MIEhlbHAgV29ya3No
b3AgY29udGFpbnMgYSBjb21waWxlciB0aGF0IGNhbiBjb252ZXJ0IGFsbCBIVE1MIG91dHB1dAor
IyBnZW5lcmF0ZWQgYnkgZG94eWdlbiBpbnRvIGEgc2luZ2xlIGNvbXBpbGVkIEhUTUwgZmlsZSAo
LmNobSkuIENvbXBpbGVkIEhUTUwKKyMgZmlsZXMgYXJlIG5vdyB1c2VkIGFzIHRoZSBXaW5kb3dz
IDk4IGhlbHAgZm9ybWF0LCBhbmQgd2lsbCByZXBsYWNlIHRoZSBvbGQKKyMgV2luZG93cyBoZWxw
IGZvcm1hdCAoLmhscCkgb24gYWxsIFdpbmRvd3MgcGxhdGZvcm1zIGluIHRoZSBmdXR1cmUuIENv
bXByZXNzZWQKKyMgSFRNTCBmaWxlcyBhbHNvIGNvbnRhaW4gYW4gaW5kZXgsIGEgdGFibGUgb2Yg
Y29udGVudHMsIGFuZCB5b3UgY2FuIHNlYXJjaCBmb3IKKyMgd29yZHMgaW4gdGhlIGRvY3VtZW50
YXRpb24uIFRoZSBIVE1MIHdvcmtzaG9wIGFsc28gY29udGFpbnMgYSB2aWV3ZXIgZm9yCisjIGNv
bXByZXNzZWQgSFRNTCBmaWxlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgog
CiBHRU5FUkFURV9IVE1MSEVMUCAgICAgID0gJUhUTUxfSEVMUCUKIAotIyBJZiB0aGUgR0VORVJB
VEVfSFRNTEhFTFAgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBDSE1fRklMRSB0YWcgY2FuIAotIyBi
ZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGUgbmFtZSBvZiB0aGUgcmVzdWx0aW5nIC5jaG0gZmls
ZS4gWW91IAotIyBjYW4gYWRkIGEgcGF0aCBpbiBmcm9udCBvZiB0aGUgZmlsZSBpZiB0aGUgcmVz
dWx0IHNob3VsZCBub3QgYmUgCisjIFRoZSBDSE1fRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSB0aGUgZmlsZSBuYW1lIG9mIHRoZSByZXN1bHRpbmcgLmNobQorIyBmaWxlLiBZb3UgY2Fu
IGFkZCBhIHBhdGggaW4gZnJvbnQgb2YgdGhlIGZpbGUgaWYgdGhlIHJlc3VsdCBzaG91bGQgbm90
IGJlCiAjIHdyaXR0ZW4gdG8gdGhlIGh0bWwgb3V0cHV0IGRpcmVjdG9yeS4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCiAK
IENITV9GSUxFICAgICAgICAgICAgICAgPSBqc29uY3BwLSVKU09OQ1BQX1ZFUlNJT04lLmNobQog
Ci0jIElmIHRoZSBHRU5FUkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIEhIQ19M
T0NBVElPTiB0YWcgY2FuIAotIyBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIChhYnNv
bHV0ZSBwYXRoIGluY2x1ZGluZyBmaWxlIG5hbWUpIG9mIAotIyB0aGUgSFRNTCBoZWxwIGNvbXBp
bGVyIChoaGMuZXhlKS4gSWYgbm9uLWVtcHR5IGRveHlnZW4gd2lsbCB0cnkgdG8gcnVuIAotIyB0
aGUgSFRNTCBoZWxwIGNvbXBpbGVyIG9uIHRoZSBnZW5lcmF0ZWQgaW5kZXguaGhwLgorIyBUaGUg
SEhDX0xPQ0FUSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiAoYWJz
b2x1dGUgcGF0aAorIyBpbmNsdWRpbmcgZmlsZSBuYW1lKSBvZiB0aGUgSFRNTCBoZWxwIGNvbXBp
bGVyICggaGhjLmV4ZSkuIElmIG5vbi1lbXB0eQorIyBkb3h5Z2VuIHdpbGwgdHJ5IHRvIHJ1biB0
aGUgSFRNTCBoZWxwIGNvbXBpbGVyIG9uIHRoZSBnZW5lcmF0ZWQgaW5kZXguaGhwLgorIyBUaGUg
ZmlsZSBoYXMgdG8gYmUgc3BlY2lmaWVkIHdpdGggZnVsbCBwYXRoLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KIAogSEhD
X0xPQ0FUSU9OICAgICAgICAgICA9ICJjOlxQcm9ncmFtIEZpbGVzXEhUTUwgSGVscCBXb3Jrc2hv
cFxoaGMuZXhlIgogCi0jIElmIHRoZSBHRU5FUkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlF
UywgdGhlIEdFTkVSQVRFX0NISSBmbGFnIAotIyBjb250cm9scyBpZiBhIHNlcGFyYXRlIC5jaGkg
aW5kZXggZmlsZSBpcyBnZW5lcmF0ZWQgKFlFUykgb3IgdGhhdCAKLSMgaXQgc2hvdWxkIGJlIGlu
Y2x1ZGVkIGluIHRoZSBtYXN0ZXIgLmNobSBmaWxlIChOTykuCisjIFRoZSBHRU5FUkFURV9DSEkg
ZmxhZyBjb250cm9scyBpZiBhIHNlcGFyYXRlIC5jaGkgaW5kZXggZmlsZSBpcyBnZW5lcmF0ZWQg
KAorIyBZRVMpIG9yIHRoYXQgaXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBtYXN0ZXIgLmNo
bSBmaWxlICggTk8pLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgogCiBH
RU5FUkFURV9DSEkgICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQ
IHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgQ0hNX0lOREVYX0VOQ09ESU5HIAotIyBpcyB1c2VkIHRv
IGVuY29kZSBIdG1sSGVscCBpbmRleCAoaGhrKSwgY29udGVudCAoaGhjKSBhbmQgcHJvamVjdCBm
aWxlIAotIyBjb250ZW50LgorIyBUaGUgQ0hNX0lOREVYX0VOQ09ESU5HIGlzIHVzZWQgdG8gZW5j
b2RlIEh0bWxIZWxwIGluZGV4ICggaGhrKSwgY29udGVudCAoIGhoYykKKyMgYW5kIHByb2plY3Qg
ZmlsZSBjb250ZW50LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
SFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KIAotQ0hNX0lOREVYX0VOQ09ESU5HICAgICA9IAorQ0hN
X0lOREVYX0VOQ09ESU5HICAgICA9CiAKLSMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBp
cyBzZXQgdG8gWUVTLCB0aGUgQklOQVJZX1RPQyBmbGFnIAotIyBjb250cm9scyB3aGV0aGVyIGEg
YmluYXJ5IHRhYmxlIG9mIGNvbnRlbnRzIGlzIGdlbmVyYXRlZCAoWUVTKSBvciBhIAotIyBub3Jt
YWwgdGFibGUgb2YgY29udGVudHMgKE5PKSBpbiB0aGUgLmNobSBmaWxlLgorIyBUaGUgQklOQVJZ
X1RPQyBmbGFnIGNvbnRyb2xzIHdoZXRoZXIgYSBiaW5hcnkgdGFibGUgb2YgY29udGVudHMgaXMg
Z2VuZXJhdGVkICgKKyMgWUVTKSBvciBhIG5vcm1hbCB0YWJsZSBvZiBjb250ZW50cyAoIE5PKSBp
biB0aGUgLmNobSBmaWxlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgog
CiBCSU5BUllfVE9DICAgICAgICAgICAgID0gWUVTCiAKLSMgVGhlIFRPQ19FWFBBTkQgZmxhZyBj
YW4gYmUgc2V0IHRvIFlFUyB0byBhZGQgZXh0cmEgaXRlbXMgZm9yIGdyb3VwIG1lbWJlcnMgCi0j
IHRvIHRoZSBjb250ZW50cyBvZiB0aGUgSFRNTCBoZWxwIGRvY3VtZW50YXRpb24gYW5kIHRvIHRo
ZSB0cmVlIHZpZXcuCisjIFRoZSBUT0NfRVhQQU5EIGZsYWcgY2FuIGJlIHNldCB0byBZRVMgdG8g
YWRkIGV4dHJhIGl0ZW1zIGZvciBncm91cCBtZW1iZXJzIHRvCisjIHRoZSB0YWJsZSBvZiBjb250
ZW50cyBvZiB0aGUgSFRNTCBoZWxwIGRvY3VtZW50YXRpb24gYW5kIHRvIHRoZSB0cmVlIHZpZXcu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCiAKIFRPQ19FWFBBTkQgICAg
ICAgICAgICAgPSBZRVMKIAotIyBJZiB0aGUgR0VORVJBVEVfUUhQIHRhZyBpcyBzZXQgdG8gWUVT
IGFuZCBib3RoIFFIUF9OQU1FU1BBQ0UgYW5kIFFIUF9WSVJUVUFMX0ZPTERFUiAKLSMgYXJlIHNl
dCwgYW4gYWRkaXRpb25hbCBpbmRleCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgY2FuIGJl
IHVzZWQgYXMgaW5wdXQgZm9yIAotIyBRdCdzIHFoZWxwZ2VuZXJhdG9yIHRvIGdlbmVyYXRlIGEg
UXQgQ29tcHJlc3NlZCBIZWxwICgucWNoKSBvZiB0aGUgZ2VuZXJhdGVkIAotIyBIVE1MIGRvY3Vt
ZW50YXRpb24uCisjIElmIHRoZSBHRU5FUkFURV9RSFAgdGFnIGlzIHNldCB0byBZRVMgYW5kIGJv
dGggUUhQX05BTUVTUEFDRSBhbmQKKyMgUUhQX1ZJUlRVQUxfRk9MREVSIGFyZSBzZXQsIGFuIGFk
ZGl0aW9uYWwgaW5kZXggZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCB0aGF0CisjIGNhbiBiZSB1c2Vk
IGFzIGlucHV0IGZvciBRdCdzIHFoZWxwZ2VuZXJhdG9yIHRvIGdlbmVyYXRlIGEgUXQgQ29tcHJl
c3NlZCBIZWxwCisjICgucWNoKSBvZiB0aGUgZ2VuZXJhdGVkIEhUTUwgZG9jdW1lbnRhdGlvbi4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBHRU5FUkFURV9RSFAgICAgICAg
ICAgID0gTk8KIAotIyBJZiB0aGUgUUhHX0xPQ0FUSU9OIHRhZyBpcyBzcGVjaWZpZWQsIHRoZSBR
Q0hfRklMRSB0YWcgY2FuIAotIyBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGUgbmFtZSBvZiB0
aGUgcmVzdWx0aW5nIC5xY2ggZmlsZS4gCi0jIFRoZSBwYXRoIHNwZWNpZmllZCBpcyByZWxhdGl2
ZSB0byB0aGUgSFRNTCBvdXRwdXQgZm9sZGVyLgorIyBJZiB0aGUgUUhHX0xPQ0FUSU9OIHRhZyBp
cyBzcGVjaWZpZWQsIHRoZSBRQ0hfRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQorIyB0
aGUgZmlsZSBuYW1lIG9mIHRoZSByZXN1bHRpbmcgLnFjaCBmaWxlLiBUaGUgcGF0aCBzcGVjaWZp
ZWQgaXMgcmVsYXRpdmUgdG8KKyMgdGhlIEhUTUwgb3V0cHV0IGZvbGRlci4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgogCi1RQ0hf
RklMRSAgICAgICAgICAgICAgID0gCitRQ0hfRklMRSAgICAgICAgICAgICAgID0KIAotIyBUaGUg
UUhQX05BTUVTUEFDRSB0YWcgc3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4gZ2Vu
ZXJhdGluZyAKLSMgUXQgSGVscCBQcm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24g
cGxlYXNlIHNlZSAKLSMgaHR0cDovL2RvYy50cm9sbHRlY2guY29tL3F0aGVscHByb2plY3QuaHRt
bCNuYW1lc3BhY2UKKyMgVGhlIFFIUF9OQU1FU1BBQ0UgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNw
YWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgUXQgSGVscAorIyBQcm9qZWN0IG91dHB1dC4gRm9y
IG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBOYW1lc3BhY2UK
KyMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5o
dG1sI25hbWVzcGFjZSkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5Qcm9q
ZWN0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNl
dCB0byBZRVMuCiAKLVFIUF9OQU1FU1BBQ0UgICAgICAgICAgPSAKK1FIUF9OQU1FU1BBQ0UgICAg
ICAgICAgPQogCi0jIFRoZSBRSFBfVklSVFVBTF9GT0xERVIgdGFnIHNwZWNpZmllcyB0aGUgbmFt
ZXNwYWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgCi0jIFF0IEhlbHAgUHJvamVjdCBvdXRwdXQu
IEZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgCi0jIGh0dHA6Ly9kb2MudHJvbGx0ZWNo
LmNvbS9xdGhlbHBwcm9qZWN0Lmh0bWwjdmlydHVhbC1mb2xkZXJzCisjIFRoZSBRSFBfVklSVFVB
TF9GT0xERVIgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNwYWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRp
bmcgUXQKKyMgSGVscCBQcm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNl
IHNlZSBRdCBIZWxwIFByb2plY3QgLyBWaXJ0dWFsCisjIEZvbGRlcnMgKHNlZTogaHR0cDovL3F0
LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI3ZpcnR1YWwtCisjIGZv
bGRlcnMpLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogZG9jLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCiAKIFFIUF9WSVJUVUFM
X0ZPTERFUiAgICAgPSBkb2MKIAotIyBJZiBRSFBfQ1VTVF9GSUxURVJfTkFNRSBpcyBzZXQsIGl0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIGN1c3RvbSBmaWx0ZXIgdG8gYWRkLiAKLSMgRm9yIG1v
cmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSAKLSMgaHR0cDovL2RvYy50cm9sbHRlY2guY29tL3F0
aGVscHByb2plY3QuaHRtbCNjdXN0b20tZmlsdGVycworIyBJZiB0aGUgUUhQX0NVU1RfRklMVEVS
X05BTUUgdGFnIGlzIHNldCwgaXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgY3VzdG9tCisjIGZp
bHRlciB0byBhZGQuIEZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgUXQgSGVscCBQcm9q
ZWN0IC8gQ3VzdG9tCisjIEZpbHRlcnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9x
dC00LjgvcXRoZWxwcHJvamVjdC5odG1sI2N1c3RvbS0KKyMgZmlsdGVycykuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KKworUUhQ
X0NVU1RfRklMVEVSX05BTUUgICA9CisKKyMgVGhlIFFIUF9DVVNUX0ZJTFRFUl9BVFRSUyB0YWcg
c3BlY2lmaWVzIHRoZSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZQorIyBjdXN0b20gZmls
dGVyIHRvIGFkZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2pl
Y3QgLyBDdXN0b20KKyMgRmlsdGVycyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0
LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjY3VzdG9tLQorIyBmaWx0ZXJzKS4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSFBf
Q1VTVF9GSUxURVJfQVRUUlMgID0KKworIyBUaGUgUUhQX1NFQ1RfRklMVEVSX0FUVFJTIHRhZyBz
cGVjaWZpZXMgdGhlIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgdGhpcworIyBwcm9qZWN0J3MgZmls
dGVyIHNlY3Rpb24gbWF0Y2hlcy4gUXQgSGVscCBQcm9qZWN0IC8gRmlsdGVyIEF0dHJpYnV0ZXMg
KHNlZToKKyMgaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5o
dG1sI2ZpbHRlci1hdHRyaWJ1dGVzKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSFBfU0VDVF9GSUxURVJfQVRUUlMgID0K
KworIyBUaGUgUUhHX0xPQ0FUSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2Nh
dGlvbiBvZiBRdCdzCisjIHFoZWxwZ2VuZXJhdG9yLiBJZiBub24tZW1wdHkgZG94eWdlbiB3aWxs
IHRyeSB0byBydW4gcWhlbHBnZW5lcmF0b3Igb24gdGhlCisjIGdlbmVyYXRlZCAucWhwIGZpbGUu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRv
IFlFUy4KKworUUhHX0xPQ0FUSU9OICAgICAgICAgICA9CisKKyMgSWYgdGhlIEdFTkVSQVRFX0VD
TElQU0VIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGluZGV4IGZpbGVzIHdpbGwg
YmUKKyMgZ2VuZXJhdGVkLCB0b2dldGhlciB3aXRoIHRoZSBIVE1MIGZpbGVzLCB0aGV5IGZvcm0g
YW4gRWNsaXBzZSBoZWxwIHBsdWdpbi4gVG8KKyMgaW5zdGFsbCB0aGlzIHBsdWdpbiBhbmQgbWFr
ZSBpdCBhdmFpbGFibGUgdW5kZXIgdGhlIGhlbHAgY29udGVudHMgbWVudSBpbgorIyBFY2xpcHNl
LCB0aGUgY29udGVudHMgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBIVE1MIGFuZCBY
TUwgZmlsZXMgbmVlZHMKKyMgdG8gYmUgY29waWVkIGludG8gdGhlIHBsdWdpbnMgZGlyZWN0b3J5
IG9mIGVjbGlwc2UuIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkKKyMgd2l0aGluIHRoZSBwbHVn
aW5zIGRpcmVjdG9yeSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIEVDTElQU0VfRE9DX0lEIHZh
bHVlLgorIyBBZnRlciBjb3B5aW5nIEVjbGlwc2UgbmVlZHMgdG8gYmUgcmVzdGFydGVkIGJlZm9y
ZSB0aGUgaGVscCBhcHBlYXJzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisK
K0dFTkVSQVRFX0VDTElQU0VIRUxQICAgPSBOTworCisjIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9y
IHRoZSBFY2xpcHNlIGhlbHAgcGx1Z2luLiBXaGVuIGluc3RhbGxpbmcgdGhlIHBsdWdpbgorIyB0
aGUgZGlyZWN0b3J5IG5hbWUgY29udGFpbmluZyB0aGUgSFRNTCBhbmQgWE1MIGZpbGVzIHNob3Vs
ZCBhbHNvIGhhdmUgdGhpcworIyBuYW1lLiBFYWNoIGRvY3VtZW50YXRpb24gc2V0IHNob3VsZCBo
YXZlIGl0cyBvd24gaWRlbnRpZmllci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5
Z2VuLlByb2plY3QuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9F
Q0xJUFNFSEVMUCBpcyBzZXQgdG8gWUVTLgorCitFQ0xJUFNFX0RPQ19JRCAgICAgICAgID0gb3Jn
LmRveHlnZW4uUHJvamVjdAorCisjIElmIHlvdSB3YW50IGZ1bGwgY29udHJvbCBvdmVyIHRoZSBs
YXlvdXQgb2YgdGhlIGdlbmVyYXRlZCBIVE1MIHBhZ2VzIGl0IG1pZ2h0CisjIGJlIG5lY2Vzc2Fy
eSB0byBkaXNhYmxlIHRoZSBpbmRleCBhbmQgcmVwbGFjZSBpdCB3aXRoIHlvdXIgb3duLiBUaGUK
KyMgRElTQUJMRV9JTkRFWCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIGNvbmRl
bnNlZCBpbmRleCAodGFicykgYXQgdG9wCisjIG9mIGVhY2ggSFRNTCBwYWdlLiBBIHZhbHVlIG9m
IE5PIGVuYWJsZXMgdGhlIGluZGV4IGFuZCB0aGUgdmFsdWUgWUVTIGRpc2FibGVzCisjIGl0LiBT
aW5jZSB0aGUgdGFicyBpbiB0aGUgaW5kZXggY29udGFpbiB0aGUgc2FtZSBpbmZvcm1hdGlvbiBh
cyB0aGUgbmF2aWdhdGlvbgorIyB0cmVlLCB5b3UgY2FuIHNldCB0aGlzIG9wdGlvbiB0byBZRVMg
aWYgeW91IGFsc28gc2V0IEdFTkVSQVRFX1RSRUVWSUVXIHRvIFlFUy4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
SFRNTCBpcyBzZXQgdG8gWUVTLgogCi1RSFBfQ1VTVF9GSUxURVJfTkFNRSAgID0gCitESVNBQkxF
X0lOREVYICAgICAgICAgID0gTk8KIAotIyBUaGUgUUhQX0NVU1RfRklMVF9BVFRSUyB0YWcgc3Bl
Y2lmaWVzIHRoZSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBjdXN0b20gZmlsdGVyIHRv
IGFkZC5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIAotIyA8YSBocmVmPSJodHRwOi8v
ZG9jLnRyb2xsdGVjaC5jb20vcXRoZWxwcHJvamVjdC5odG1sI2N1c3RvbS1maWx0ZXJzIj5RdCBI
ZWxwIFByb2plY3QgLyBDdXN0b20gRmlsdGVyczwvYT4uCisjIFRoZSBHRU5FUkFURV9UUkVFVklF
VyB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXRoZXIgYSB0cmVlLWxpa2UgaW5kZXgKKyMgc3Ry
dWN0dXJlIHNob3VsZCBiZSBnZW5lcmF0ZWQgdG8gZGlzcGxheSBoaWVyYXJjaGljYWwgaW5mb3Jt
YXRpb24uIElmIHRoZSB0YWcKKyMgdmFsdWUgaXMgc2V0IHRvIFlFUywgYSBzaWRlIHBhbmVsIHdp
bGwgYmUgZ2VuZXJhdGVkIGNvbnRhaW5pbmcgYSB0cmVlLWxpa2UKKyMgaW5kZXggc3RydWN0dXJl
IChqdXN0IGxpa2UgdGhlIG9uZSB0aGF0IGlzIGdlbmVyYXRlZCBmb3IgSFRNTCBIZWxwKS4gRm9y
IHRoaXMKKyMgdG8gd29yayBhIGJyb3dzZXIgdGhhdCBzdXBwb3J0cyBKYXZhU2NyaXB0LCBESFRN
TCwgQ1NTIGFuZCBmcmFtZXMgaXMgcmVxdWlyZWQKKyMgKGkuZS4gYW55IG1vZGVybiBicm93c2Vy
KS4gV2luZG93cyB1c2VycyBhcmUgcHJvYmFibHkgYmV0dGVyIG9mZiB1c2luZyB0aGUKKyMgSFRN
TCBoZWxwIGZlYXR1cmUuIFZpYSBjdXN0b20gc3R5bGVzaGVldHMgKHNlZSBIVE1MX0VYVFJBX1NU
WUxFU0hFRVQpIG9uZSBjYW4KKyMgZnVydGhlciBmaW5lLXR1bmUgdGhlIGxvb2sgb2YgdGhlIGlu
ZGV4LiBBcyBhbiBleGFtcGxlLCB0aGUgZGVmYXVsdCBzdHlsZQorIyBzaGVldCBnZW5lcmF0ZWQg
YnkgZG94eWdlbiBoYXMgYW4gZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0byBwdXQgYW4gaW1hZ2Ug
YXQKKyMgdGhlIHJvb3Qgb2YgdGhlIHRyZWUgaW5zdGVhZCBvZiB0aGUgUFJPSkVDVF9OQU1FLiBT
aW5jZSB0aGUgdHJlZSBiYXNpY2FsbHkgaGFzCisjIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIHRo
ZSB0YWIgaW5kZXgsIHlvdSBjb3VsZCBjb25zaWRlciBzZXR0aW5nCisjIERJU0FCTEVfSU5ERVgg
dG8gWUVTIHdoZW4gZW5hYmxpbmcgdGhpcyBvcHRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMg
c2V0IHRvIFlFUy4KIAotUUhQX0NVU1RfRklMVEVSX0FUVFJTICA9IAorR0VORVJBVEVfVFJFRVZJ
RVcgICAgICA9IE5PCiAKLSMgVGhlIFFIUF9TRUNUX0ZJTFRFUl9BVFRSUyB0YWcgc3BlY2lmaWVz
IHRoZSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIHRoaXMgcHJvamVjdCdzIAotIyBmaWx0ZXIgc2Vj
dGlvbiBtYXRjaGVzLiAKLSMgPGEgaHJlZj0iaHR0cDovL2RvYy50cm9sbHRlY2guY29tL3F0aGVs
cHByb2plY3QuaHRtbCNmaWx0ZXItYXR0cmlidXRlcyI+UXQgSGVscCBQcm9qZWN0IC8gRmlsdGVy
IEF0dHJpYnV0ZXM8L2E+LgorIyBUaGUgRU5VTV9WQUxVRVNfUEVSX0xJTkUgdGFnIGNhbiBiZSB1
c2VkIHRvIHNldCB0aGUgbnVtYmVyIG9mIGVudW0gdmFsdWVzIHRoYXQKKyMgZG94eWdlbiB3aWxs
IGdyb3VwIG9uIG9uZSBsaW5lIGluIHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgor
IworIyBOb3RlIHRoYXQgYSB2YWx1ZSBvZiAwIHdpbGwgY29tcGxldGVseSBzdXBwcmVzcyB0aGUg
ZW51bSB2YWx1ZXMgZnJvbSBhcHBlYXJpbmcKKyMgaW4gdGhlIG92ZXJ2aWV3IHNlY3Rpb24uCisj
IE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDIwLCBkZWZhdWx0IHZhbHVlOiA0Lgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8g
WUVTLgogCi1RSFBfU0VDVF9GSUxURVJfQVRUUlMgID0gCitFTlVNX1ZBTFVFU19QRVJfTElORSAg
ID0gNAogCi0jIElmIHRoZSBHRU5FUkFURV9RSFAgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBRSEdf
TE9DQVRJT04gdGFnIGNhbiAKLSMgYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBR
dCdzIHFoZWxwZ2VuZXJhdG9yLiAKLSMgSWYgbm9uLWVtcHR5IGRveHlnZW4gd2lsbCB0cnkgdG8g
cnVuIHFoZWxwZ2VuZXJhdG9yIG9uIHRoZSBnZW5lcmF0ZWQgCi0jIC5xaHAgZmlsZS4KKyMgSWYg
dGhlIHRyZWV2aWV3IGlzIGVuYWJsZWQgKHNlZSBHRU5FUkFURV9UUkVFVklFVykgdGhlbiB0aGlz
IHRhZyBjYW4gYmUgdXNlZAorIyB0byBzZXQgdGhlIGluaXRpYWwgd2lkdGggKGluIHBpeGVscykg
b2YgdGhlIGZyYW1lIGluIHdoaWNoIHRoZSB0cmVlIGlzIHNob3duLgorIyBNaW5pbXVtIHZhbHVl
OiAwLCBtYXhpbXVtIHZhbHVlOiAxNTAwLCBkZWZhdWx0IHZhbHVlOiAyNTAuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKLVFI
R19MT0NBVElPTiAgICAgICAgICAgPSAKK1RSRUVWSUVXX1dJRFRIICAgICAgICAgPSAyNTAKIAot
IyBUaGUgRElTQUJMRV9JTkRFWCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIGNv
bmRlbnNlZCBpbmRleCBhdCAKLSMgdG9wIG9mIGVhY2ggSFRNTCBwYWdlLiBUaGUgdmFsdWUgTk8g
KHRoZSBkZWZhdWx0KSBlbmFibGVzIHRoZSBpbmRleCBhbmQgCi0jIHRoZSB2YWx1ZSBZRVMgZGlz
YWJsZXMgaXQuCisjIFdoZW4gdGhlIEVYVF9MSU5LU19JTl9XSU5ET1cgb3B0aW9uIGlzIHNldCB0
byBZRVMgZG94eWdlbiB3aWxsIG9wZW4gbGlua3MgdG8KKyMgZXh0ZXJuYWwgc3ltYm9scyBpbXBv
cnRlZCB2aWEgdGFnIGZpbGVzIGluIGEgc2VwYXJhdGUgd2luZG93LgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9I
VE1MIGlzIHNldCB0byBZRVMuCiAKLURJU0FCTEVfSU5ERVggICAgICAgICAgPSBOTworRVhUX0xJ
TktTX0lOX1dJTkRPVyAgICA9IE5PCiAKLSMgVGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRo
ZSBudW1iZXIgb2YgZW51bSB2YWx1ZXMgKHJhbmdlIFsxLi4yMF0pIAotIyB0aGF0IGRveHlnZW4g
d2lsbCBncm91cCBvbiBvbmUgbGluZSBpbiB0aGUgZ2VuZXJhdGVkIEhUTUwgZG9jdW1lbnRhdGlv
bi4KKyMgVXNlIHRoaXMgdGFnIHRvIGNoYW5nZSB0aGUgZm9udCBzaXplIG9mIExhVGVYIGZvcm11
bGFzIGluY2x1ZGVkIGFzIGltYWdlcyBpbgorIyB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLiBXaGVu
IHlvdSBjaGFuZ2UgdGhlIGZvbnQgc2l6ZSBhZnRlciBhIHN1Y2Nlc3NmdWwKKyMgZG94eWdlbiBy
dW4geW91IG5lZWQgdG8gbWFudWFsbHkgcmVtb3ZlIGFueSBmb3JtXyoucG5nIGltYWdlcyBmcm9t
IHRoZSBIVE1MCisjIG91dHB1dCBkaXJlY3RvcnkgdG8gZm9yY2UgdGhlbSB0byBiZSByZWdlbmVy
YXRlZC4KKyMgTWluaW11bSB2YWx1ZTogOCwgbWF4aW11bSB2YWx1ZTogNTAsIGRlZmF1bHQgdmFs
dWU6IDEwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBp
cyBzZXQgdG8gWUVTLgogCi1FTlVNX1ZBTFVFU19QRVJfTElORSAgID0gNAorRk9STVVMQV9GT05U
U0laRSAgICAgICA9IDEwCiAKLSMgVGhlIEdFTkVSQVRFX1RSRUVWSUVXIHRhZyBpcyB1c2VkIHRv
IHNwZWNpZnkgd2hldGhlciBhIHRyZWUtbGlrZSBpbmRleCAKLSMgc3RydWN0dXJlIHNob3VsZCBi
ZSBnZW5lcmF0ZWQgdG8gZGlzcGxheSBoaWVyYXJjaGljYWwgaW5mb3JtYXRpb24uIAotIyBJZiB0
aGUgdGFnIHZhbHVlIGlzIHNldCB0byBGUkFNRSwgYSBzaWRlIHBhbmVsIHdpbGwgYmUgZ2VuZXJh
dGVkIAotIyBjb250YWluaW5nIGEgdHJlZS1saWtlIGluZGV4IHN0cnVjdHVyZSAoanVzdCBsaWtl
IHRoZSBvbmUgdGhhdCAKLSMgaXMgZ2VuZXJhdGVkIGZvciBIVE1MIEhlbHApLiBGb3IgdGhpcyB0
byB3b3JrIGEgYnJvd3NlciB0aGF0IHN1cHBvcnRzIAotIyBKYXZhU2NyaXB0LCBESFRNTCwgQ1NT
IGFuZCBmcmFtZXMgaXMgcmVxdWlyZWQgKGZvciBpbnN0YW5jZSBNb3ppbGxhIDEuMCssIAotIyBO
ZXRzY2FwZSA2LjArLCBJbnRlcm5ldCBleHBsb3JlciA1LjArLCBvciBLb25xdWVyb3IpLiBXaW5k
b3dzIHVzZXJzIGFyZSAKLSMgcHJvYmFibHkgYmV0dGVyIG9mZiB1c2luZyB0aGUgSFRNTCBoZWxw
IGZlYXR1cmUuIE90aGVyIHBvc3NpYmxlIHZhbHVlcyAKLSMgZm9yIHRoaXMgdGFnIGFyZTogSElF
UkFSQ0hJRVMsIHdoaWNoIHdpbGwgZ2VuZXJhdGUgdGhlIEdyb3VwcywgRGlyZWN0b3JpZXMsIAot
IyBhbmQgQ2xhc3MgSGllcmFyY2h5IHBhZ2VzIHVzaW5nIGEgdHJlZSB2aWV3IGluc3RlYWQgb2Yg
YW4gb3JkZXJlZCBsaXN0OyAKLSMgQUxMLCB3aGljaCBjb21iaW5lcyB0aGUgYmVoYXZpb3Igb2Yg
RlJBTUUgYW5kIEhJRVJBUkNISUVTOyBhbmQgTk9ORSwgd2hpY2ggCi0jIGRpc2FibGVzIHRoaXMg
YmVoYXZpb3IgY29tcGxldGVseS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggcHJl
dmlvdXMgCi0jIHJlbGVhc2VzIG9mIERveHlnZW4sIHRoZSB2YWx1ZXMgWUVTIGFuZCBOTyBhcmUg
ZXF1aXZhbGVudCB0byBGUkFNRSBhbmQgTk9ORSAKLSMgcmVzcGVjdGl2ZWx5LgorIyBVc2UgdGhl
IEZPUk1VTEFfVFJBTlBBUkVOVCB0YWcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBp
bWFnZXMKKyMgZ2VuZXJhdGVkIGZvciBmb3JtdWxhcyBhcmUgdHJhbnNwYXJlbnQgUE5Hcy4gVHJh
bnNwYXJlbnQgUE5HcyBhcmUgbm90CisjIHN1cHBvcnRlZCBwcm9wZXJseSBmb3IgSUUgNi4wLCBi
dXQgYXJlIHN1cHBvcnRlZCBvbiBhbGwgbW9kZXJuIGJyb3dzZXJzLgorIworIyBOb3RlIHRoYXQg
d2hlbiBjaGFuZ2luZyB0aGlzIG9wdGlvbiB5b3UgbmVlZCB0byBkZWxldGUgYW55IGZvcm1fKi5w
bmcgZmlsZXMgaW4KKyMgdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgdGhlIGNoYW5n
ZXMgaGF2ZSBlZmZlY3QuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0ZP
Uk1VTEFfVFJBTlNQQVJFTlQgICAgPSBZRVMKKworIyBFbmFibGUgdGhlIFVTRV9NQVRISkFYIG9w
dGlvbiB0byByZW5kZXIgTGFUZVggZm9ybXVsYXMgdXNpbmcgTWF0aEpheCAoc2VlCisjIGh0dHA6
Ly93d3cubWF0aGpheC5vcmcpIHdoaWNoIHVzZXMgY2xpZW50IHNpZGUgSmF2YVNjcmlwdCBmb3Ig
dGhlIHJlbmRlcmluZworIyBpbnN0ZWFkIG9mIHVzaW5nIHByZXJlbmRlcmVkIGJpdG1hcHMuIFVz
ZSB0aGlzIGlmIHlvdSBkbyBub3QgaGF2ZSBMYVRlWAorIyBpbnN0YWxsZWQgb3IgaWYgeW91IHdh
bnQgdG8gZm9ybXVsYXMgbG9vayBwcmV0dGllciBpbiB0aGUgSFRNTCBvdXRwdXQuIFdoZW4KKyMg
ZW5hYmxlZCB5b3UgbWF5IGFsc28gbmVlZCB0byBpbnN0YWxsIE1hdGhKYXggc2VwYXJhdGVseSBh
bmQgY29uZmlndXJlIHRoZSBwYXRoCisjIHRvIGl0IHVzaW5nIHRoZSBNQVRISkFYX1JFTFBBVEgg
b3B0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK1VTRV9NQVRISkFY
ICAgICAgICAgICAgPSBOTworCisjIFdoZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBjYW4gc2V0
IHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgdG8gYmUgdXNlZCBmb3IKKyMgdGhlIE1hdGhKYXgg
b3V0cHV0LiBTZWUgdGhlIE1hdGhKYXggc2l0ZSAoc2VlOgorIyBodHRwOi8vZG9jcy5tYXRoamF4
Lm9yZy9lbi9sYXRlc3Qvb3V0cHV0Lmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCisjIFBvc3NpYmxl
IHZhbHVlcyBhcmU6IEhUTUwtQ1NTICh3aGljaCBpcyBzbG93ZXIsIGJ1dCBoYXMgdGhlIGJlc3QK
KyMgY29tcGF0aWJpbGl0eSksIE5hdGl2ZU1NTCAoaS5lLiBNYXRoTUwpIGFuZCBTVkcuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBIVE1MLUNTUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIFVTRV9NQVRISkFYIGlzIHNldCB0byBZRVMuCisKK01BVEhKQVhfRk9STUFUICAgICAg
ICAgPSBIVE1MLUNTUworCisjIFdoZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBuZWVkIHRvIHNw
ZWNpZnkgdGhlIGxvY2F0aW9uIHJlbGF0aXZlIHRvIHRoZSBIVE1MCisjIG91dHB1dCBkaXJlY3Rv
cnkgdXNpbmcgdGhlIE1BVEhKQVhfUkVMUEFUSCBvcHRpb24uIFRoZSBkZXN0aW5hdGlvbiBkaXJl
Y3RvcnkKKyMgc2hvdWxkIGNvbnRhaW4gdGhlIE1hdGhKYXguanMgc2NyaXB0LiBGb3IgaW5zdGFu
Y2UsIGlmIHRoZSBtYXRoamF4IGRpcmVjdG9yeQorIyBpcyBsb2NhdGVkIGF0IHRoZSBzYW1lIGxl
dmVsIGFzIHRoZSBIVE1MIG91dHB1dCBkaXJlY3RvcnksIHRoZW4KKyMgTUFUSEpBWF9SRUxQQVRI
IHNob3VsZCBiZSAuLi9tYXRoamF4LiBUaGUgZGVmYXVsdCB2YWx1ZSBwb2ludHMgdG8gdGhlIE1h
dGhKYXgKKyMgQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrIHNvIHlvdSBjYW4gcXVpY2tseSBzZWUg
dGhlIHJlc3VsdCB3aXRob3V0IGluc3RhbGxpbmcKKyMgTWF0aEpheC4gSG93ZXZlciwgaXQgaXMg
c3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBhIGxvY2FsIGNvcHkgb2YKKyMgTWF0aEph
eCBmcm9tIGh0dHA6Ly93d3cubWF0aGpheC5vcmcgYmVmb3JlIGRlcGxveW1lbnQuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBodHRwOi8vY2RuLm1hdGhqYXgub3JnL21hdGhqYXgvbGF0ZXN0Lgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlF
Uy4KKworTUFUSEpBWF9SRUxQQVRIICAgICAgICA9IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0
aGpheC9sYXRlc3QKKworIyBUaGUgTUFUSEpBWF9FWFRFTlNJT05TIHRhZyBjYW4gYmUgdXNlZCB0
byBzcGVjaWZ5IG9uZSBvciBtb3JlIE1hdGhKYXgKKyMgZXh0ZW5zaW9uIG5hbWVzIHRoYXQgc2hv
dWxkIGJlIGVuYWJsZWQgZHVyaW5nIE1hdGhKYXggcmVuZGVyaW5nLiBGb3IgZXhhbXBsZQorIyBN
QVRISkFYX0VYVEVOU0lPTlMgPSBUZVgvQU1TbWF0aCBUZVgvQU1Tc3ltYm9scworIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFU
SEpBWF9FWFRFTlNJT05TICAgICA9CisKKyMgVGhlIE1BVEhKQVhfQ09ERUZJTEUgdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgYSBmaWxlIHdpdGggamF2YXNjcmlwdCBwaWVjZXMKKyMgb2YgY29k
ZSB0aGF0IHdpbGwgYmUgdXNlZCBvbiBzdGFydHVwIG9mIHRoZSBNYXRoSmF4IGNvZGUuIFNlZSB0
aGUgTWF0aEpheCBzaXRlCisjIChzZWU6IGh0dHA6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL2xhdGVz
dC9vdXRwdXQuaHRtbCkgZm9yIG1vcmUgZGV0YWlscy4gRm9yIGFuCisjIGV4YW1wbGUgc2VlIHRo
ZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01B
VEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9DT0RFRklMRSAgICAgICA9CisKKyMgV2hl
biB0aGUgU0VBUkNIRU5HSU5FIHRhZyBpcyBlbmFibGVkIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBh
IHNlYXJjaCBib3ggZm9yCisjIHRoZSBIVE1MIG91dHB1dC4gVGhlIHVuZGVybHlpbmcgc2VhcmNo
IGVuZ2luZSB1c2VzIGphdmFzY3JpcHQgYW5kIERIVE1MIGFuZAorIyBzaG91bGQgd29yayBvbiBh
bnkgbW9kZXJuIGJyb3dzZXIuIE5vdGUgdGhhdCB3aGVuIHVzaW5nIEhUTUwgaGVscAorIyAoR0VO
RVJBVEVfSFRNTEhFTFApLCBRdCBoZWxwIChHRU5FUkFURV9RSFApLCBvciBkb2NzZXRzIChHRU5F
UkFURV9ET0NTRVQpCisjIHRoZXJlIGlzIGFscmVhZHkgYSBzZWFyY2ggZnVuY3Rpb24gc28gdGhp
cyBvbmUgc2hvdWxkIHR5cGljYWxseSBiZSBkaXNhYmxlZC4KKyMgRm9yIGxhcmdlIHByb2plY3Rz
IHRoZSBqYXZhc2NyaXB0IGJhc2VkIHNlYXJjaCBlbmdpbmUgY2FuIGJlIHNsb3csIHRoZW4KKyMg
ZW5hYmxpbmcgU0VSVkVSX0JBU0VEX1NFQVJDSCBtYXkgcHJvdmlkZSBhIGJldHRlciBzb2x1dGlv
bi4gSXQgaXMgcG9zc2libGUgdG8KKyMgc2VhcmNoIHVzaW5nIHRoZSBrZXlib2FyZDsgdG8ganVt
cCB0byB0aGUgc2VhcmNoIGJveCB1c2UgPGFjY2VzcyBrZXk+ICsgUworIyAod2hhdCB0aGUgPGFj
Y2VzcyBrZXk+IGlzIGRlcGVuZHMgb24gdGhlIE9TIGFuZCBicm93c2VyLCBidXQgaXQgaXMgdHlw
aWNhbGx5CisjIDxDVFJMPiwgPEFMVD4vPG9wdGlvbj4sIG9yIGJvdGgpLiBJbnNpZGUgdGhlIHNl
YXJjaCBib3ggdXNlIHRoZSA8Y3Vyc29yIGRvd24KKyMga2V5PiB0byBqdW1wIGludG8gdGhlIHNl
YXJjaCByZXN1bHRzIHdpbmRvdywgdGhlIHJlc3VsdHMgY2FuIGJlIG5hdmlnYXRlZAorIyB1c2lu
ZyB0aGUgPGN1cnNvciBrZXlzPi4gUHJlc3MgPEVudGVyPiB0byBzZWxlY3QgYW4gaXRlbSBvciA8
ZXNjYXBlPiB0byBjYW5jZWwKKyMgdGhlIHNlYXJjaC4gVGhlIGZpbHRlciBvcHRpb25zIGNhbiBi
ZSBzZWxlY3RlZCB3aGVuIHRoZSBjdXJzb3IgaXMgaW5zaWRlIHRoZQorIyBzZWFyY2ggYm94IGJ5
IHByZXNzaW5nIDxTaGlmdD4rPGN1cnNvciBkb3duPi4gQWxzbyBoZXJlIHVzZSB0aGUgPGN1cnNv
ciBrZXlzPgorIyB0byBzZWxlY3QgYSBmaWx0ZXIgYW5kIDxFbnRlcj4gb3IgPGVzY2FwZT4gdG8g
YWN0aXZhdGUgb3IgY2FuY2VsIHRoZSBmaWx0ZXIKKyMgb3B0aW9uLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
SFRNTCBpcyBzZXQgdG8gWUVTLgogCi1HRU5FUkFURV9UUkVFVklFVyAgICAgID0gTk8KK1NFQVJD
SEVOR0lORSAgICAgICAgICAgPSBOTwogCi0jIElmIHRoZSB0cmVldmlldyBpcyBlbmFibGVkIChz
ZWUgR0VORVJBVEVfVFJFRVZJRVcpIHRoZW4gdGhpcyB0YWcgY2FuIGJlIAotIyB1c2VkIHRvIHNl
dCB0aGUgaW5pdGlhbCB3aWR0aCAoaW4gcGl4ZWxzKSBvZiB0aGUgZnJhbWUgaW4gd2hpY2ggdGhl
IHRyZWUgCi0jIGlzIHNob3duLgorIyBXaGVuIHRoZSBTRVJWRVJfQkFTRURfU0VBUkNIIHRhZyBp
cyBlbmFibGVkIHRoZSBzZWFyY2ggZW5naW5lIHdpbGwgYmUKKyMgaW1wbGVtZW50ZWQgdXNpbmcg
YSB3ZWIgc2VydmVyIGluc3RlYWQgb2YgYSB3ZWIgY2xpZW50IHVzaW5nIEphdmFTY3JpcHQuIFRo
ZXJlCisjIGFyZSB0d28gZmxhdm91cnMgb2Ygd2ViIHNlcnZlciBiYXNlZCBzZWFyY2hpbmcgZGVw
ZW5kaW5nIG9uIHRoZQorIyBFWFRFUk5BTF9TRUFSQ0ggc2V0dGluZy4gV2hlbiBkaXNhYmxlZCwg
ZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgUEhQIHNjcmlwdCBmb3IKKyMgc2VhcmNoaW5nIGFuZCBh
biBpbmRleCBmaWxlIHVzZWQgYnkgdGhlIHNjcmlwdC4gV2hlbiBFWFRFUk5BTF9TRUFSQ0ggaXMK
KyMgZW5hYmxlZCB0aGUgaW5kZXhpbmcgYW5kIHNlYXJjaGluZyBuZWVkcyB0byBiZSBwcm92aWRl
ZCBieSBleHRlcm5hbCB0b29scy4gU2VlCisjIHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGlu
ZyBhbmQgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0
byBZRVMuCisKK1NFUlZFUl9CQVNFRF9TRUFSQ0ggICAgPSBOTworCisjIFdoZW4gRVhURVJOQUxf
U0VBUkNIIHRhZyBpcyBlbmFibGVkIGRveHlnZW4gd2lsbCBubyBsb25nZXIgZ2VuZXJhdGUgdGhl
IFBIUAorIyBzY3JpcHQgZm9yIHNlYXJjaGluZy4gSW5zdGVhZCB0aGUgc2VhcmNoIHJlc3VsdHMg
YXJlIHdyaXR0ZW4gdG8gYW4gWE1MIGZpbGUKKyMgd2hpY2ggbmVlZHMgdG8gYmUgcHJvY2Vzc2Vk
IGJ5IGFuIGV4dGVybmFsIGluZGV4ZXIuIERveHlnZW4gd2lsbCBpbnZva2UgYW4KKyMgZXh0ZXJu
YWwgc2VhcmNoIGVuZ2luZSBwb2ludGVkIHRvIGJ5IHRoZSBTRUFSQ0hFTkdJTkVfVVJMIG9wdGlv
biB0byBvYnRhaW4gdGhlCisjIHNlYXJjaCByZXN1bHRzLgorIworIyBEb3h5Z2VuIHNoaXBzIHdp
dGggYW4gZXhhbXBsZSBpbmRleGVyICggZG94eWluZGV4ZXIpIGFuZCBzZWFyY2ggZW5naW5lCisj
IChkb3h5c2VhcmNoLmNnaSkgd2hpY2ggYXJlIGJhc2VkIG9uIHRoZSBvcGVuIHNvdXJjZSBzZWFy
Y2ggZW5naW5lIGxpYnJhcnkKKyMgWGFwaWFuIChzZWU6IGh0dHA6Ly94YXBpYW4ub3JnLykuCisj
CisjIFNlZSB0aGUgc2VjdGlvbiAiRXh0ZXJuYWwgSW5kZXhpbmcgYW5kIFNlYXJjaGluZyIgZm9y
IGRldGFpbHMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgogCi1UUkVFVklFV19X
SURUSCAgICAgICAgID0gMjUwCitFWFRFUk5BTF9TRUFSQ0ggICAgICAgID0gTk8KIAotIyBVc2Ug
dGhpcyB0YWcgdG8gY2hhbmdlIHRoZSBmb250IHNpemUgb2YgTGF0ZXggZm9ybXVsYXMgaW5jbHVk
ZWQgCi0jIGFzIGltYWdlcyBpbiB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLiBUaGUgZGVmYXVsdCBp
cyAxMC4gTm90ZSB0aGF0IAotIyB3aGVuIHlvdSBjaGFuZ2UgdGhlIGZvbnQgc2l6ZSBhZnRlciBh
IHN1Y2Nlc3NmdWwgZG94eWdlbiBydW4geW91IG5lZWQgCi0jIHRvIG1hbnVhbGx5IHJlbW92ZSBh
bnkgZm9ybV8qLnBuZyBpbWFnZXMgZnJvbSB0aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5IAotIyB0
byBmb3JjZSB0aGVtIHRvIGJlIHJlZ2VuZXJhdGVkLgorIyBUaGUgU0VBUkNIRU5HSU5FX1VSTCBz
aG91bGQgcG9pbnQgdG8gYSBzZWFyY2ggZW5naW5lIGhvc3RlZCBieSBhIHdlYiBzZXJ2ZXIKKyMg
d2hpY2ggd2lsbCByZXR1cm4gdGhlIHNlYXJjaCByZXN1bHRzIHdoZW4gRVhURVJOQUxfU0VBUkNI
IGlzIGVuYWJsZWQuCisjCisjIERveHlnZW4gc2hpcHMgd2l0aCBhbiBleGFtcGxlIGluZGV4ZXIg
KCBkb3h5aW5kZXhlcikgYW5kIHNlYXJjaCBlbmdpbmUKKyMgKGRveHlzZWFyY2guY2dpKSB3aGlj
aCBhcmUgYmFzZWQgb24gdGhlIG9wZW4gc291cmNlIHNlYXJjaCBlbmdpbmUgbGlicmFyeQorIyBY
YXBpYW4gKHNlZTogaHR0cDovL3hhcGlhbi5vcmcvKS4gU2VlIHRoZSBzZWN0aW9uICJFeHRlcm5h
bCBJbmRleGluZyBhbmQKKyMgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgogCi1GT1JNVUxB
X0ZPTlRTSVpFICAgICAgID0gMTAKK1NFQVJDSEVOR0lORV9VUkwgICAgICAgPQorCisjIFdoZW4g
U0VSVkVSX0JBU0VEX1NFQVJDSCBhbmQgRVhURVJOQUxfU0VBUkNIIGFyZSBib3RoIGVuYWJsZWQg
dGhlIHVuaW5kZXhlZAorIyBzZWFyY2ggZGF0YSBpcyB3cml0dGVuIHRvIGEgZmlsZSBmb3IgaW5k
ZXhpbmcgYnkgYW4gZXh0ZXJuYWwgdG9vbC4gV2l0aCB0aGUKKyMgU0VBUkNIREFUQV9GSUxFIHRh
ZyB0aGUgbmFtZSBvZiB0aGlzIGZpbGUgY2FuIGJlIHNwZWNpZmllZC4KKyMgVGhlIGRlZmF1bHQg
ZmlsZSBpczogc2VhcmNoZGF0YS54bWwuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4KKworU0VBUkNIREFUQV9GSUxFICAgICAgICA9
IHNlYXJjaGRhdGEueG1sCisKKyMgV2hlbiBTRVJWRVJfQkFTRURfU0VBUkNIIGFuZCBFWFRFUk5B
TF9TRUFSQ0ggYXJlIGJvdGggZW5hYmxlZCB0aGUKKyMgRVhURVJOQUxfU0VBUkNIX0lEIHRhZyBj
YW4gYmUgdXNlZCBhcyBhbiBpZGVudGlmaWVyIGZvciB0aGUgcHJvamVjdC4gVGhpcyBpcworIyB1
c2VmdWwgaW4gY29tYmluYXRpb24gd2l0aCBFWFRSQV9TRUFSQ0hfTUFQUElOR1MgdG8gc2VhcmNo
IHRocm91Z2ggbXVsdGlwbGUKKyMgcHJvamVjdHMgYW5kIHJlZGlyZWN0IHRoZSByZXN1bHRzIGJh
Y2sgdG8gdGhlIHJpZ2h0IHByb2plY3QuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4KKworRVhURVJOQUxfU0VBUkNIX0lEICAgICA9
CisKKyMgVGhlIEVYVFJBX1NFQVJDSF9NQVBQSU5HUyB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxl
IHNlYXJjaGluZyB0aHJvdWdoIGRveHlnZW4KKyMgcHJvamVjdHMgb3RoZXIgdGhhbiB0aGUgb25l
IGRlZmluZWQgYnkgdGhpcyBjb25maWd1cmF0aW9uIGZpbGUsIGJ1dCB0aGF0IGFyZQorIyBhbGwg
YWRkZWQgdG8gdGhlIHNhbWUgZXh0ZXJuYWwgc2VhcmNoIGluZGV4LiBFYWNoIHByb2plY3QgbmVl
ZHMgdG8gaGF2ZSBhCisjIHVuaXF1ZSBpZCBzZXQgdmlhIEVYVEVSTkFMX1NFQVJDSF9JRC4gVGhl
IHNlYXJjaCBtYXBwaW5nIHRoZW4gbWFwcyB0aGUgaWQgb2YKKyMgdG8gYSByZWxhdGl2ZSBsb2Nh
dGlvbiB3aGVyZSB0aGUgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQuIFRoZSBmb3JtYXQgaXM6
CisjIEVYVFJBX1NFQVJDSF9NQVBQSU5HUyA9IHRhZ25hbWUxPWxvYzEgdGFnbmFtZTI9bG9jMiAu
Li4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQg
dG8gWUVTLgorCitFWFRSQV9TRUFSQ0hfTUFQUElOR1MgID0KIAogIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgTGFUZVggb3V0cHV0Cisj
IENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBMYVRlWCBvdXRwdXQKICMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgR0VORVJBVEVfTEFURVggdGFnIGlzIHNldCB0byBZ
RVMgKHRoZSBkZWZhdWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIExhdGV4IG91dHB1dC4K
KyMgSWYgdGhlIEdFTkVSQVRFX0xBVEVYIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBn
ZW5lcmF0ZSBMYVRlWCBvdXRwdXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEdF
TkVSQVRFX0xBVEVYICAgICAgICAgPSBOTwogCi0jIFRoZSBMQVRFWF9PVVRQVVQgdGFnIGlzIHVz
ZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgTGFUZVggZG9jcyB3aWxsIGJlIHB1dC4gCi0jIElmIGEg
cmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdp
bGwgYmUgCi0jIHB1dCBpbiBmcm9udCBvZiBpdC4gSWYgbGVmdCBibGFuayBgbGF0ZXgnIHdpbGwg
YmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBwYXRoLgorIyBUaGUgTEFURVhfT1VUUFVUIHRhZyBpcyB1
c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIExhVGVYIGRvY3Mgd2lsbCBiZSBwdXQuIElmIGEKKyMg
cmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdp
bGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6
IGxhdGV4LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVgg
aXMgc2V0IHRvIFlFUy4KIAogTEFURVhfT1VUUFVUICAgICAgICAgICA9IGxhdGV4CiAKLSMgVGhl
IExBVEVYX0NNRF9OQU1FIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBMYVRlWCBjb21t
YW5kIG5hbWUgdG8gYmUgCi0jIGludm9rZWQuIElmIGxlZnQgYmxhbmsgYGxhdGV4JyB3aWxsIGJl
IHVzZWQgYXMgdGhlIGRlZmF1bHQgY29tbWFuZCBuYW1lLgorIyBUaGUgTEFURVhfQ01EX05BTUUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIExhVGVYIGNvbW1hbmQgbmFtZSB0byBiZQor
IyBpbnZva2VkLgorIworIyBOb3RlIHRoYXQgd2hlbiBlbmFibGluZyBVU0VfUERGTEFURVggdGhp
cyBvcHRpb24gaXMgb25seSB1c2VkIGZvciBnZW5lcmF0aW5nCisjIGJpdG1hcHMgZm9yIGZvcm11
bGFzIGluIHRoZSBIVE1MIG91dHB1dCwgYnV0IG5vdCBpbiB0aGUgTWFrZWZpbGUgdGhhdCBpcwor
IyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5LgorIyBUaGUgZGVmYXVsdCBmaWxlIGlz
OiBsYXRleC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVY
IGlzIHNldCB0byBZRVMuCiAKIExBVEVYX0NNRF9OQU1FICAgICAgICAgPSBsYXRleAogCi0jIFRo
ZSBNQUtFSU5ERVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNvbW1h
bmQgbmFtZSB0byAKLSMgZ2VuZXJhdGUgaW5kZXggZm9yIExhVGVYLiBJZiBsZWZ0IGJsYW5rIGBt
YWtlaW5kZXgnIHdpbGwgYmUgdXNlZCBhcyB0aGUgCi0jIGRlZmF1bHQgY29tbWFuZCBuYW1lLgor
IyBUaGUgTUFLRUlOREVYX0NNRF9OQU1FIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBj
b21tYW5kIG5hbWUgdG8gZ2VuZXJhdGUKKyMgaW5kZXggZm9yIExhVGVYLgorIyBUaGUgZGVmYXVs
dCBmaWxlIGlzOiBtYWtlaW5kZXguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCiBNQUtFSU5ERVhfQ01EX05BTUUgICAgID0g
bWFrZWluZGV4CiAKLSMgSWYgdGhlIENPTVBBQ1RfTEFURVggdGFnIGlzIHNldCB0byBZRVMgRG94
eWdlbiBnZW5lcmF0ZXMgbW9yZSBjb21wYWN0IAotIyBMYVRlWCBkb2N1bWVudHMuIFRoaXMgbWF5
IGJlIHVzZWZ1bCBmb3Igc21hbGwgcHJvamVjdHMgYW5kIG1heSBoZWxwIHRvIAotIyBzYXZlIHNv
bWUgdHJlZXMgaW4gZ2VuZXJhbC4KKyMgSWYgdGhlIENPTVBBQ1RfTEFURVggdGFnIGlzIHNldCB0
byBZRVMgZG94eWdlbiBnZW5lcmF0ZXMgbW9yZSBjb21wYWN0IExhVGVYCisjIGRvY3VtZW50cy4g
VGhpcyBtYXkgYmUgdXNlZnVsIGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gc2F2
ZSBzb21lCisjIHRyZWVzIGluIGdlbmVyYWwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0
byBZRVMuCiAKIENPTVBBQ1RfTEFURVggICAgICAgICAgPSBOTwogCi0jIFRoZSBQQVBFUl9UWVBF
IHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIHBhcGVyIHR5cGUgdGhhdCBpcyB1c2VkIAotIyBi
eSB0aGUgcHJpbnRlci4gUG9zc2libGUgdmFsdWVzIGFyZTogYTQsIGE0d2lkZSwgbGV0dGVyLCBs
ZWdhbCBhbmQgCi0jIGV4ZWN1dGl2ZS4gSWYgbGVmdCBibGFuayBhNHdpZGUgd2lsbCBiZSB1c2Vk
LgorIyBUaGUgUEFQRVJfVFlQRSB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBwYXBlciB0eXBl
IHRoYXQgaXMgdXNlZCBieSB0aGUKKyMgcHJpbnRlci4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTog
YTQgKDIxMCB4IDI5NyBtbSksIGxldHRlciAoOC41IHggMTEgaW5jaGVzKSwgbGVnYWwgKDguNSB4
CisjIDE0IGluY2hlcykgYW5kIGV4ZWN1dGl2ZSAoNy4yNSB4IDEwLjUgaW5jaGVzKS4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IGE0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
R0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogUEFQRVJfVFlQRSAgICAgICAgICAgICA9
IGE0d2lkZQogCi0jIFRoZSBFWFRSQV9QQUNLQUdFUyB0YWcgY2FuIGJlIHRvIHNwZWNpZnkgb25l
IG9yIG1vcmUgbmFtZXMgb2YgTGFUZVggCi0jIHBhY2thZ2VzIHRoYXQgc2hvdWxkIGJlIGluY2x1
ZGVkIGluIHRoZSBMYVRlWCBvdXRwdXQuCisjIFRoZSBFWFRSQV9QQUNLQUdFUyB0YWcgY2FuIGJl
IHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBMYVRlWCBwYWNrYWdlIG5hbWVzCisjIHRoYXQg
c2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBMYVRlWCBvdXRwdXQuIFRvIGdldCB0aGUgdGltZXMg
Zm9udCBmb3IKKyMgaW5zdGFuY2UgeW91IGNhbiBzcGVjaWZ5CisjIEVYVFJBX1BBQ0tBR0VTPXRp
bWVzCisjIElmIGxlZnQgYmxhbmsgbm8gZXh0cmEgcGFja2FnZXMgd2lsbCBiZSBpbmNsdWRlZC4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0
byBZRVMuCisKK0VYVFJBX1BBQ0tBR0VTICAgICAgICAgPQorCisjIFRoZSBMQVRFWF9IRUFERVIg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwZXJzb25hbCBMYVRlWCBoZWFkZXIgZm9yIHRo
ZQorIyBnZW5lcmF0ZWQgTGFUZVggZG9jdW1lbnQuIFRoZSBoZWFkZXIgc2hvdWxkIGNvbnRhaW4g
ZXZlcnl0aGluZyB1bnRpbCB0aGUgZmlyc3QKKyMgY2hhcHRlci4gSWYgaXQgaXMgbGVmdCBibGFu
ayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBzdGFuZGFyZCBoZWFkZXIuIFNlZQorIyBzZWN0aW9u
ICJEb3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGxldCBkb3h5Z2VuIHdy
aXRlIHRoZQorIyBkZWZhdWx0IGhlYWRlciB0byBhIHNlcGFyYXRlIGZpbGUuCisjCisjIE5vdGU6
IE9ubHkgdXNlIGEgdXNlci1kZWZpbmVkIGhlYWRlciBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUg
ZG9pbmchIFRoZQorIyBmb2xsb3dpbmcgY29tbWFuZHMgaGF2ZSBhIHNwZWNpYWwgbWVhbmluZyBp
bnNpZGUgdGhlIGhlYWRlcjogJHRpdGxlLAorIyAkZGF0ZXRpbWUsICRkYXRlLCAkZG94eWdlbnZl
cnNpb24sICRwcm9qZWN0bmFtZSwgJHByb2plY3RudW1iZXIuIERveHlnZW4gd2lsbAorIyByZXBs
YWNlIHRoZW0gYnkgcmVzcGVjdGl2ZWx5IHRoZSB0aXRsZSBvZiB0aGUgcGFnZSwgdGhlIGN1cnJl
bnQgZGF0ZSBhbmQgdGltZSwKKyMgb25seSB0aGUgY3VycmVudCBkYXRlLCB0aGUgdmVyc2lvbiBu
dW1iZXIgb2YgZG94eWdlbiwgdGhlIHByb2plY3QgbmFtZSAoc2VlCisjIFBST0pFQ1RfTkFNRSks
IG9yIHRoZSBwcm9qZWN0IG51bWJlciAoc2VlIFBST0pFQ1RfTlVNQkVSKS4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xB
VEVYX0hFQURFUiAgICAgICAgICAgPQorCisjIFRoZSBMQVRFWF9GT09URVIgdGFnIGNhbiBiZSB1
c2VkIHRvIHNwZWNpZnkgYSBwZXJzb25hbCBMYVRlWCBmb290ZXIgZm9yIHRoZQorIyBnZW5lcmF0
ZWQgTGFUZVggZG9jdW1lbnQuIFRoZSBmb290ZXIgc2hvdWxkIGNvbnRhaW4gZXZlcnl0aGluZyBh
ZnRlciB0aGUgbGFzdAorIyBjaGFwdGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2ls
bCBnZW5lcmF0ZSBhIHN0YW5kYXJkIGZvb3Rlci4KKyMKKyMgTm90ZTogT25seSB1c2UgYSB1c2Vy
LWRlZmluZWQgZm9vdGVyIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyEKKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAK
LUVYVFJBX1BBQ0tBR0VTICAgICAgICAgPSAKK0xBVEVYX0ZPT1RFUiAgICAgICAgICAgPQogCi0j
IFRoZSBMQVRFWF9IRUFERVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwZXJzb25hbCBM
YVRlWCBoZWFkZXIgZm9yIAotIyB0aGUgZ2VuZXJhdGVkIGxhdGV4IGRvY3VtZW50LiBUaGUgaGVh
ZGVyIHNob3VsZCBjb250YWluIGV2ZXJ5dGhpbmcgdW50aWwgCi0jIHRoZSBmaXJzdCBjaGFwdGVy
LiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIAotIyBzdGFuZGFy
ZCBoZWFkZXIuIE5vdGljZTogb25seSB1c2UgdGhpcyB0YWcgaWYgeW91IGtub3cgd2hhdCB5b3Ug
YXJlIGRvaW5nIQorIyBUaGUgTEFURVhfRVhUUkFfRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgb25lIG9yIG1vcmUgZXh0cmEgaW1hZ2VzIG9yCisjIG90aGVyIHNvdXJjZSBmaWxlcyB3
aGljaCBzaG91bGQgYmUgY29waWVkIHRvIHRoZSBMQVRFWF9PVVRQVVQgb3V0cHV0CisjIGRpcmVj
dG9yeS4gTm90ZSB0aGF0IHRoZSBmaWxlcyB3aWxsIGJlIGNvcGllZCBhcy1pczsgdGhlcmUgYXJl
IG5vIGNvbW1hbmRzIG9yCisjIG1hcmtlcnMgYXZhaWxhYmxlLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAotTEFURVhfSEVB
REVSICAgICAgICAgICA9IAorTEFURVhfRVhUUkFfRklMRVMgICAgICA9CiAKLSMgSWYgdGhlIFBE
Rl9IWVBFUkxJTktTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgTGFUZVggdGhhdCBpcyBnZW5lcmF0
ZWQgCi0jIGlzIHByZXBhcmVkIGZvciBjb252ZXJzaW9uIHRvIHBkZiAodXNpbmcgcHMycGRmKS4g
VGhlIHBkZiBmaWxlIHdpbGwgCi0jIGNvbnRhaW4gbGlua3MgKGp1c3QgbGlrZSB0aGUgSFRNTCBv
dXRwdXQpIGluc3RlYWQgb2YgcGFnZSByZWZlcmVuY2VzIAotIyBUaGlzIG1ha2VzIHRoZSBvdXRw
dXQgc3VpdGFibGUgZm9yIG9ubGluZSBicm93c2luZyB1c2luZyBhIHBkZiB2aWV3ZXIuCisjIElm
IHRoZSBQREZfSFlQRVJMSU5LUyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIExhVGVYIHRoYXQgaXMg
Z2VuZXJhdGVkIGlzCisjIHByZXBhcmVkIGZvciBjb252ZXJzaW9uIHRvIFBERiAodXNpbmcgcHMy
cGRmIG9yIHBkZmxhdGV4KS4gVGhlIFBERiBmaWxlIHdpbGwKKyMgY29udGFpbiBsaW5rcyAoanVz
dCBsaWtlIHRoZSBIVE1MIG91dHB1dCkgaW5zdGVhZCBvZiBwYWdlIHJlZmVyZW5jZXMuIFRoaXMK
KyMgbWFrZXMgdGhlIG91dHB1dCBzdWl0YWJsZSBmb3Igb25saW5lIGJyb3dzaW5nIHVzaW5nIGEg
UERGIHZpZXdlci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIFBERl9I
WVBFUkxJTktTICAgICAgICAgPSBOTwogCi0jIElmIHRoZSBVU0VfUERGTEFURVggdGFnIGlzIHNl
dCB0byBZRVMsIHBkZmxhdGV4IHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIAotIyBwbGFpbiBsYXRl
eCBpbiB0aGUgZ2VuZXJhdGVkIE1ha2VmaWxlLiBTZXQgdGhpcyBvcHRpb24gdG8gWUVTIHRvIGdl
dCBhIAorIyBJZiB0aGUgTEFURVhfUERGTEFURVggdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4g
d2lsbCB1c2UgcGRmbGF0ZXggdG8gZ2VuZXJhdGUKKyMgdGhlIFBERiBmaWxlIGRpcmVjdGx5IGZy
b20gdGhlIExhVGVYIGZpbGVzLiBTZXQgdGhpcyBvcHRpb24gdG8gWUVTIHRvIGdldCBhCiAjIGhp
Z2hlciBxdWFsaXR5IFBERiBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMg
c2V0IHRvIFlFUy4KIAogVVNFX1BERkxBVEVYICAgICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIExB
VEVYX0JBVENITU9ERSB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGFkZCB0aGUgXFxi
YXRjaG1vZGUuIAotIyBjb21tYW5kIHRvIHRoZSBnZW5lcmF0ZWQgTGFUZVggZmlsZXMuIFRoaXMg
d2lsbCBpbnN0cnVjdCBMYVRlWCB0byBrZWVwIAotIyBydW5uaW5nIGlmIGVycm9ycyBvY2N1ciwg
aW5zdGVhZCBvZiBhc2tpbmcgdGhlIHVzZXIgZm9yIGhlbHAuIAotIyBUaGlzIG9wdGlvbiBpcyBh
bHNvIHVzZWQgd2hlbiBnZW5lcmF0aW5nIGZvcm11bGFzIGluIEhUTUwuCisjIElmIHRoZSBMQVRF
WF9CQVRDSE1PREUgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBhZGQgdGhlIFxiYXRj
aG1vZGUKKyMgY29tbWFuZCB0byB0aGUgZ2VuZXJhdGVkIExhVGVYIGZpbGVzLiBUaGlzIHdpbGwg
aW5zdHJ1Y3QgTGFUZVggdG8ga2VlcCBydW5uaW5nCisjIGlmIGVycm9ycyBvY2N1ciwgaW5zdGVh
ZCBvZiBhc2tpbmcgdGhlIHVzZXIgZm9yIGhlbHAuIFRoaXMgb3B0aW9uIGlzIGFsc28gdXNlZAor
IyB3aGVuIGdlbmVyYXRpbmcgZm9ybXVsYXMgaW4gSFRNTC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVgg
aXMgc2V0IHRvIFlFUy4KIAogTEFURVhfQkFUQ0hNT0RFICAgICAgICA9IE5PCiAKLSMgSWYgTEFU
RVhfSElERV9JTkRJQ0VTIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgbm90IAotIyBp
bmNsdWRlIHRoZSBpbmRleCBjaGFwdGVycyAoc3VjaCBhcyBGaWxlIEluZGV4LCBDb21wb3VuZCBJ
bmRleCwgZXRjLikgCi0jIGluIHRoZSBvdXRwdXQuCisjIElmIHRoZSBMQVRFWF9ISURFX0lORElD
RVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgbm90IGluY2x1ZGUgdGhlCisj
IGluZGV4IGNoYXB0ZXJzIChzdWNoIGFzIEZpbGUgSW5kZXgsIENvbXBvdW5kIEluZGV4LCBldGMu
KSBpbiB0aGUgb3V0cHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCiBM
QVRFWF9ISURFX0lORElDRVMgICAgID0gTk8KIAotIyBJZiBMQVRFWF9TT1VSQ0VfQ09ERSBpcyBz
ZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGluY2x1ZGUgc291cmNlIGNvZGUgd2l0aCBzeW50
YXggaGlnaGxpZ2h0aW5nIGluIHRoZSBMYVRlWCBvdXRwdXQuIE5vdGUgdGhhdCB3aGljaCBzb3Vy
Y2VzIGFyZSBzaG93biBhbHNvIGRlcGVuZHMgb24gb3RoZXIgc2V0dGluZ3Mgc3VjaCBhcyBTT1VS
Q0VfQlJPV1NFUi4KKyMgSWYgdGhlIExBVEVYX1NPVVJDRV9DT0RFIHRhZyBpcyBzZXQgdG8gWUVT
IHRoZW4gZG94eWdlbiB3aWxsIGluY2x1ZGUgc291cmNlCisjIGNvZGUgd2l0aCBzeW50YXggaGln
aGxpZ2h0aW5nIGluIHRoZSBMYVRlWCBvdXRwdXQuCisjCisjIE5vdGUgdGhhdCB3aGljaCBzb3Vy
Y2VzIGFyZSBzaG93biBhbHNvIGRlcGVuZHMgb24gb3RoZXIgc2V0dGluZ3Mgc3VjaCBhcworIyBT
T1VSQ0VfQlJPV1NFUi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogTEFU
RVhfU09VUkNFX0NPREUgICAgICA9IE5PCiAKKyMgVGhlIExBVEVYX0JJQl9TVFlMRSB0YWcgY2Fu
IGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgc3R5bGUgdG8gdXNlIGZvciB0aGUKKyMgYmlibGlvZ3Jh
cGh5LCBlLmcuIHBsYWlubmF0LCBvciBpZWVldHIuIFNlZQorIyBodHRwOi8vZW4ud2lraXBlZGlh
Lm9yZy93aWtpL0JpYlRlWCBhbmQgXGNpdGUgZm9yIG1vcmUgaW5mby4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IHBsYWluLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworTEFURVhfQklCX1NUWUxFICAgICAgICA9IHBsYWlu
CisKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQg
dG8gdGhlIFJURiBvdXRwdXQKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhl
IFJURiBvdXRwdXQKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgR0VORVJBVEVfUlRG
IHRhZyBpcyBzZXQgdG8gWUVTIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBSVEYgb3V0cHV0IAotIyBU
aGUgUlRGIG91dHB1dCBpcyBvcHRpbWl6ZWQgZm9yIFdvcmQgOTcgYW5kIG1heSBub3QgbG9vayB2
ZXJ5IHByZXR0eSB3aXRoIAotIyBvdGhlciBSVEYgcmVhZGVycyBvciBlZGl0b3JzLgorIyBJZiB0
aGUgR0VORVJBVEVfUlRGIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBS
VEYgb3V0cHV0LiBUaGUKKyMgUlRGIG91dHB1dCBpcyBvcHRpbWl6ZWQgZm9yIFdvcmQgOTcgYW5k
IG1heSBub3QgbG9vayB0b28gcHJldHR5IHdpdGggb3RoZXIgUlRGCisjIHJlYWRlcnMvZWRpdG9y
cy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBHRU5FUkFURV9SVEYgICAgICAgICAg
ID0gTk8KIAotIyBUaGUgUlRGX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRo
ZSBSVEYgZG9jcyB3aWxsIGJlIHB1dC4gCi0jIElmIGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVk
IHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgCi0jIHB1dCBpbiBmcm9udCBv
ZiBpdC4gSWYgbGVmdCBibGFuayBgcnRmJyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgcGF0
aC4KKyMgVGhlIFJURl9PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgUlRG
IGRvY3Mgd2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2
YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0Lgor
IyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IHJ0Zi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQgdG8gWUVTLgogCiBSVEZfT1VUUFVUICAgICAg
ICAgICAgID0gcnRmCiAKLSMgSWYgdGhlIENPTVBBQ1RfUlRGIHRhZyBpcyBzZXQgdG8gWUVTIERv
eHlnZW4gZ2VuZXJhdGVzIG1vcmUgY29tcGFjdCAKLSMgUlRGIGRvY3VtZW50cy4gVGhpcyBtYXkg
YmUgdXNlZnVsIGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gCi0jIHNhdmUgc29t
ZSB0cmVlcyBpbiBnZW5lcmFsLgorIyBJZiB0aGUgQ09NUEFDVF9SVEYgdGFnIGlzIHNldCB0byBZ
RVMgZG94eWdlbiBnZW5lcmF0ZXMgbW9yZSBjb21wYWN0IFJURgorIyBkb2N1bWVudHMuIFRoaXMg
bWF5IGJlIHVzZWZ1bCBmb3Igc21hbGwgcHJvamVjdHMgYW5kIG1heSBoZWxwIHRvIHNhdmUgc29t
ZQorIyB0cmVlcyBpbiBnZW5lcmFsLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4K
IAogQ09NUEFDVF9SVEYgICAgICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFJURl9IWVBFUkxJTktT
IHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgUlRGIHRoYXQgaXMgZ2VuZXJhdGVkIAotIyB3aWxsIGNv
bnRhaW4gaHlwZXJsaW5rIGZpZWxkcy4gVGhlIFJURiBmaWxlIHdpbGwgCi0jIGNvbnRhaW4gbGlu
a3MgKGp1c3QgbGlrZSB0aGUgSFRNTCBvdXRwdXQpIGluc3RlYWQgb2YgcGFnZSByZWZlcmVuY2Vz
LiAKLSMgVGhpcyBtYWtlcyB0aGUgb3V0cHV0IHN1aXRhYmxlIGZvciBvbmxpbmUgYnJvd3Npbmcg
dXNpbmcgV09SRCBvciBvdGhlciAKLSMgcHJvZ3JhbXMgd2hpY2ggc3VwcG9ydCB0aG9zZSBmaWVs
ZHMuIAotIyBOb3RlOiB3b3JkcGFkICh3cml0ZSkgYW5kIG90aGVycyBkbyBub3Qgc3VwcG9ydCBs
aW5rcy4KKyMgSWYgdGhlIFJURl9IWVBFUkxJTktTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgUlRG
IHRoYXQgaXMgZ2VuZXJhdGVkIHdpbGwKKyMgY29udGFpbiBoeXBlcmxpbmsgZmllbGRzLiBUaGUg
UlRGIGZpbGUgd2lsbCBjb250YWluIGxpbmtzIChqdXN0IGxpa2UgdGhlIEhUTUwKKyMgb3V0cHV0
KSBpbnN0ZWFkIG9mIHBhZ2UgcmVmZXJlbmNlcy4gVGhpcyBtYWtlcyB0aGUgb3V0cHV0IHN1aXRh
YmxlIGZvciBvbmxpbmUKKyMgYnJvd3NpbmcgdXNpbmcgV29yZCBvciBzb21lIG90aGVyIFdvcmQg
Y29tcGF0aWJsZSByZWFkZXJzIHRoYXQgc3VwcG9ydCB0aG9zZQorIyBmaWVsZHMuCisjCisjIE5v
dGU6IFdvcmRQYWQgKHdyaXRlKSBhbmQgb3RoZXJzIGRvIG5vdCBzdXBwb3J0IGxpbmtzLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KIAogUlRGX0hZUEVSTElOS1MgICAgICAgICA9
IE5PCiAKLSMgTG9hZCBzdHlsZXNoZWV0IGRlZmluaXRpb25zIGZyb20gZmlsZS4gU3ludGF4IGlz
IHNpbWlsYXIgdG8gZG94eWdlbidzIAotIyBjb25maWcgZmlsZSwgaS5lLiBhIHNlcmllcyBvZiBh
c3NpZ25tZW50cy4gWW91IG9ubHkgaGF2ZSB0byBwcm92aWRlIAotIyByZXBsYWNlbWVudHMsIG1p
c3NpbmcgZGVmaW5pdGlvbnMgYXJlIHNldCB0byB0aGVpciBkZWZhdWx0IHZhbHVlLgorIyBMb2Fk
IHN0eWxlc2hlZXQgZGVmaW5pdGlvbnMgZnJvbSBmaWxlLiBTeW50YXggaXMgc2ltaWxhciB0byBk
b3h5Z2VuJ3MgY29uZmlnCisjIGZpbGUsIGkuZS4gYSBzZXJpZXMgb2YgYXNzaWdubWVudHMuIFlv
dSBvbmx5IGhhdmUgdG8gcHJvdmlkZSByZXBsYWNlbWVudHMsCisjIG1pc3NpbmcgZGVmaW5pdGlv
bnMgYXJlIHNldCB0byB0aGVpciBkZWZhdWx0IHZhbHVlLgorIworIyBTZWUgYWxzbyBzZWN0aW9u
ICJEb3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZQor
IyBkZWZhdWx0IHN0eWxlIHNoZWV0IHRoYXQgZG94eWdlbiBub3JtYWxseSB1c2VzLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCiAK
LVJURl9TVFlMRVNIRUVUX0ZJTEUgICAgPSAKK1JURl9TVFlMRVNIRUVUX0ZJTEUgICAgPQogCi0j
IFNldCBvcHRpb25hbCB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBydGYg
ZG9jdW1lbnQuIAotIyBTeW50YXggaXMgc2ltaWxhciB0byBkb3h5Z2VuJ3MgY29uZmlnIGZpbGUu
CisjIFNldCBvcHRpb25hbCB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBS
VEYgZG9jdW1lbnQuIFN5bnRheCBpcworIyBzaW1pbGFyIHRvIGRveHlnZW4ncyBjb25maWcgZmls
ZS4gQSB0ZW1wbGF0ZSBleHRlbnNpb25zIGZpbGUgY2FuIGJlIGdlbmVyYXRlZAorIyB1c2luZyBk
b3h5Z2VuIC1lIHJ0ZiBleHRlbnNpb25GaWxlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCiAKLVJURl9FWFRFTlNJT05TX0ZJTEUg
ICAgPSAKK1JURl9FWFRFTlNJT05TX0ZJTEUgICAgPQogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0j
IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBtYW4gcGFnZSBvdXRwdXQKKyMg
Q29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIG1hbiBwYWdlIG91dHB1dAogIy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9NQU4gdGFnIGlzIHNldCB0byBZ
RVMgKHRoZSBkZWZhdWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIG1hbiBwYWdlcworIyBJ
ZiB0aGUgR0VORVJBVEVfTUFOIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0
ZSBtYW4gcGFnZXMgZm9yCisjIGNsYXNzZXMgYW5kIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCiAKIEdFTkVSQVRFX01BTiAgICAgICAgICAgPSBOTwogCi0jIFRoZSBNQU5fT1VU
UFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIG1hbiBwYWdlcyB3aWxsIGJlIHB1
dC4gCi0jIElmIGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRf
RElSRUNUT1JZIHdpbGwgYmUgCi0jIHB1dCBpbiBmcm9udCBvZiBpdC4gSWYgbGVmdCBibGFuayBg
bWFuJyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgcGF0aC4KKyMgVGhlIE1BTl9PVVRQVVQg
dGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgbWFuIHBhZ2VzIHdpbGwgYmUgcHV0LiBJ
ZiBhCisjIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVD
VE9SWSB3aWxsIGJlIHB1dCBpbiBmcm9udCBvZgorIyBpdC4gQSBkaXJlY3RvcnkgbWFuMyB3aWxs
IGJlIGNyZWF0ZWQgaW5zaWRlIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5CisjIE1BTl9PVVRQ
VVQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogbWFuLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuCiAKIE1BTl9PVVRQVVQg
ICAgICAgICAgICAgPSBtYW4KIAotIyBUaGUgTUFOX0VYVEVOU0lPTiB0YWcgZGV0ZXJtaW5lcyB0
aGUgZXh0ZW5zaW9uIHRoYXQgaXMgYWRkZWQgdG8gCi0jIHRoZSBnZW5lcmF0ZWQgbWFuIHBhZ2Vz
IChkZWZhdWx0IGlzIHRoZSBzdWJyb3V0aW5lJ3Mgc2VjdGlvbiAuMykKKyMgVGhlIE1BTl9FWFRF
TlNJT04gdGFnIGRldGVybWluZXMgdGhlIGV4dGVuc2lvbiB0aGF0IGlzIGFkZGVkIHRvIHRoZSBn
ZW5lcmF0ZWQKKyMgbWFuIHBhZ2VzLiBJbiBjYXNlIHRoZSBtYW51YWwgc2VjdGlvbiBkb2VzIG5v
dCBzdGFydCB3aXRoIGEgbnVtYmVyLCB0aGUgbnVtYmVyCisjIDMgaXMgcHJlcGVuZGVkLiBUaGUg
ZG90ICguKSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBNQU5fRVhURU5TSU9OIHRhZyBpcworIyBv
cHRpb25hbC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IC4zLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuCiAKIE1BTl9FWFRFTlNJ
T04gICAgICAgICAgPSAuMwogCi0jIElmIHRoZSBNQU5fTElOS1MgdGFnIGlzIHNldCB0byBZRVMg
YW5kIERveHlnZW4gZ2VuZXJhdGVzIG1hbiBvdXRwdXQsIAotIyB0aGVuIGl0IHdpbGwgZ2VuZXJh
dGUgb25lIGFkZGl0aW9uYWwgbWFuIGZpbGUgZm9yIGVhY2ggZW50aXR5IAotIyBkb2N1bWVudGVk
IGluIHRoZSByZWFsIG1hbiBwYWdlKHMpLiBUaGVzZSBhZGRpdGlvbmFsIGZpbGVzIAotIyBvbmx5
IHNvdXJjZSB0aGUgcmVhbCBtYW4gcGFnZSwgYnV0IHdpdGhvdXQgdGhlbSB0aGUgbWFuIGNvbW1h
bmQgCi0jIHdvdWxkIGJlIHVuYWJsZSB0byBmaW5kIHRoZSBjb3JyZWN0IHBhZ2UuIFRoZSBkZWZh
dWx0IGlzIE5PLgorIyBJZiB0aGUgTUFOX0xJTktTIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBkb3h5
Z2VuIGdlbmVyYXRlcyBtYW4gb3V0cHV0LCB0aGVuIGl0CisjIHdpbGwgZ2VuZXJhdGUgb25lIGFk
ZGl0aW9uYWwgbWFuIGZpbGUgZm9yIGVhY2ggZW50aXR5IGRvY3VtZW50ZWQgaW4gdGhlIHJlYWwK
KyMgbWFuIHBhZ2UocykuIFRoZXNlIGFkZGl0aW9uYWwgZmlsZXMgb25seSBzb3VyY2UgdGhlIHJl
YWwgbWFuIHBhZ2UsIGJ1dCB3aXRob3V0CisjIHRoZW0gdGhlIG1hbiBjb21tYW5kIHdvdWxkIGJl
IHVuYWJsZSB0byBmaW5kIHRoZSBjb3JyZWN0IHBhZ2UuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX01BTiBpcyBz
ZXQgdG8gWUVTLgogCiBNQU5fTElOS1MgICAgICAgICAgICAgID0gTk8KIAogIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgWE1MIG91dHB1
dAorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgWE1MIG91dHB1dAogIy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9YTUwgdGFnIGlzIHNldCB0byBZ
RVMgRG94eWdlbiB3aWxsIAotIyBnZW5lcmF0ZSBhbiBYTUwgZmlsZSB0aGF0IGNhcHR1cmVzIHRo
ZSBzdHJ1Y3R1cmUgb2YgCi0jIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4K
KyMgSWYgdGhlIEdFTkVSQVRFX1hNTCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgYW4gWE1MIGZpbGUgdGhhdAorIyBjYXB0dXJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBj
b2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgogCiBHRU5FUkFURV9YTUwgICAgICAgICAgID0gTk8KIAotIyBUaGUgWE1MX09VVFBVVCB0
YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBYTUwgcGFnZXMgd2lsbCBiZSBwdXQuIAot
IyBJZiBhIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVD
VE9SWSB3aWxsIGJlIAotIyBwdXQgaW4gZnJvbnQgb2YgaXQuIElmIGxlZnQgYmxhbmsgYHhtbCcg
d2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHBhdGguCisjIFRoZSBYTUxfT1VUUFVUIHRhZyBp
cyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIFhNTCBwYWdlcyB3aWxsIGJlIHB1dC4gSWYgYQor
IyByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkg
d2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YKKyMgaXQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBp
czogeG1sLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfWE1MIGlz
IHNldCB0byBZRVMuCiAKIFhNTF9PVVRQVVQgICAgICAgICAgICAgPSB4bWwKIAotIyBUaGUgWE1M
X1NDSEVNQSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhbiBYTUwgc2NoZW1hLCAKLSMgd2hp
Y2ggY2FuIGJlIHVzZWQgYnkgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gY2hlY2sgdGhlIAot
IyBzeW50YXggb2YgdGhlIFhNTCBmaWxlcy4KKyMgVGhlIFhNTF9TQ0hFTUEgdGFnIGNhbiBiZSB1
c2VkIHRvIHNwZWNpZnkgYSBYTUwgc2NoZW1hLCB3aGljaCBjYW4gYmUgdXNlZCBieSBhCisjIHZh
bGlkYXRpbmcgWE1MIHBhcnNlciB0byBjaGVjayB0aGUgc3ludGF4IG9mIHRoZSBYTUwgZmlsZXMu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRv
IFlFUy4KIAotWE1MX1NDSEVNQSAgICAgICAgICAgICA9IAorWE1MX1NDSEVNQSAgICAgICAgICAg
ICA9CiAKLSMgVGhlIFhNTF9EVEQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gWE1MIERU
RCwgCi0jIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IGEgdmFsaWRhdGluZyBYTUwgcGFyc2VyIHRvIGNo
ZWNrIHRoZSAKLSMgc3ludGF4IG9mIHRoZSBYTUwgZmlsZXMuCisjIFRoZSBYTUxfRFREIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgWE1MIERURCwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgYQor
IyB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gY2hlY2sgdGhlIHN5bnRheCBvZiB0aGUgWE1MIGZp
bGVzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNl
dCB0byBZRVMuCiAKLVhNTF9EVEQgICAgICAgICAgICAgICAgPSAKK1hNTF9EVEQgICAgICAgICAg
ICAgICAgPQogCi0jIElmIHRoZSBYTUxfUFJPR1JBTUxJU1RJTkcgdGFnIGlzIHNldCB0byBZRVMg
RG94eWdlbiB3aWxsIAotIyBkdW1wIHRoZSBwcm9ncmFtIGxpc3RpbmdzIChpbmNsdWRpbmcgc3lu
dGF4IGhpZ2hsaWdodGluZyAKLSMgYW5kIGNyb3NzLXJlZmVyZW5jaW5nIGluZm9ybWF0aW9uKSB0
byB0aGUgWE1MIG91dHB1dC4gTm90ZSB0aGF0IAotIyBlbmFibGluZyB0aGlzIHdpbGwgc2lnbmlm
aWNhbnRseSBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgWE1MIG91dHB1dC4KKyMgSWYgdGhlIFhN
TF9QUk9HUkFNTElTVElORyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZHVtcCB0aGUg
cHJvZ3JhbQorIyBsaXN0aW5ncyAoaW5jbHVkaW5nIHN5bnRheCBoaWdobGlnaHRpbmcgYW5kIGNy
b3NzLXJlZmVyZW5jaW5nIGluZm9ybWF0aW9uKSB0bworIyB0aGUgWE1MIG91dHB1dC4gTm90ZSB0
aGF0IGVuYWJsaW5nIHRoaXMgd2lsbCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRoZSBzaXplCisj
IG9mIHRoZSBYTUwgb3V0cHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNldCB0byBZRVMuCiAK
IFhNTF9QUk9HUkFNTElTVElORyAgICAgPSBZRVMKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBj
b25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBBdXRvR2VuIERlZmluaXRpb25zIG91dHB1dAor
IyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgRE9DQk9PSyBvdXRwdXQKKyMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgR0VORVJBVEVfRE9DQk9PSyB0YWcgaXMgc2V0
IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgRG9jYm9vayBmaWxlcworIyB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGdlbmVyYXRlIFBERi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitH
RU5FUkFURV9ET0NCT09LICAgICAgID0gTk8KKworIyBUaGUgRE9DQk9PS19PVVRQVVQgdGFnIGlz
IHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgRG9jYm9vayBwYWdlcyB3aWxsIGJlIHB1dC4KKyMg
SWYgYSByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RP
Ulkgd2lsbCBiZSBwdXQgaW4KKyMgZnJvbnQgb2YgaXQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9y
eSBpczogZG9jYm9vay4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRF
X0RPQ0JPT0sgaXMgc2V0IHRvIFlFUy4KKworRE9DQk9PS19PVVRQVVQgICAgICAgICA9IGRvY2Jv
b2sKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRo
ZSBBdXRvR2VuIERlZmluaXRpb25zIG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElm
IHRoZSBHRU5FUkFURV9BVVRPR0VOX0RFRiB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwg
Ci0jIGdlbmVyYXRlIGFuIEF1dG9HZW4gRGVmaW5pdGlvbnMgKHNlZSBhdXRvZ2VuLnNmLm5ldCkg
ZmlsZSAKLSMgdGhhdCBjYXB0dXJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb2RlIGluY2x1ZGlu
ZyBhbGwgCi0jIGRvY3VtZW50YXRpb24uIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMgc3RpbGwg
ZXhwZXJpbWVudGFsIAotIyBhbmQgaW5jb21wbGV0ZSBhdCB0aGUgbW9tZW50LgorIyBJZiB0aGUg
R0VORVJBVEVfQVVUT0dFTl9ERUYgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVy
YXRlIGFuIEF1dG9HZW4KKyMgRGVmaW5pdGlvbnMgKHNlZSBodHRwOi8vYXV0b2dlbi5zZi5uZXQp
IGZpbGUgdGhhdCBjYXB0dXJlcyB0aGUgc3RydWN0dXJlIG9mCisjIHRoZSBjb2RlIGluY2x1ZGlu
ZyBhbGwgZG9jdW1lbnRhdGlvbi4gTm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBzdGlsbAorIyBl
eHBlcmltZW50YWwgYW5kIGluY29tcGxldGUgYXQgdGhlIG1vbWVudC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgogCiBHRU5FUkFURV9BVVRPR0VOX0RFRiAgID0gTk8KIAogIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgUGVybCBt
b2R1bGUgb3V0cHV0CisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBQZXJs
IG1vZHVsZSBvdXRwdXQKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgR0VORVJBVEVf
UEVSTE1PRCB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIGEgUGVy
bCBtb2R1bGUgZmlsZSB0aGF0IGNhcHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YgCi0jIHRoZSBjb2Rl
IGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4gTm90ZSB0aGF0IHRoaXMgCi0jIGZlYXR1cmUg
aXMgc3RpbGwgZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRoZSAKLSMgbW9tZW50Lgor
IyBJZiB0aGUgR0VORVJBVEVfUEVSTE1PRCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwg
Z2VuZXJhdGUgYSBQZXJsIG1vZHVsZQorIyBmaWxlIHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVy
ZSBvZiB0aGUgY29kZSBpbmNsdWRpbmcgYWxsIGRvY3VtZW50YXRpb24uCisjCisjIE5vdGUgdGhh
dCB0aGlzIGZlYXR1cmUgaXMgc3RpbGwgZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRo
ZSBtb21lbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogR0VORVJBVEVfUEVSTE1P
RCAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFBFUkxNT0RfTEFURVggdGFnIGlzIHNldCB0byBZRVMg
RG94eWdlbiB3aWxsIGdlbmVyYXRlIAotIyB0aGUgbmVjZXNzYXJ5IE1ha2VmaWxlIHJ1bGVzLCBQ
ZXJsIHNjcmlwdHMgYW5kIExhVGVYIGNvZGUgdG8gYmUgYWJsZSAKLSMgdG8gZ2VuZXJhdGUgUERG
IGFuZCBEVkkgb3V0cHV0IGZyb20gdGhlIFBlcmwgbW9kdWxlIG91dHB1dC4KKyMgSWYgdGhlIFBF
UkxNT0RfTEFURVggdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHRoZSBu
ZWNlc3NhcnkKKyMgTWFrZWZpbGUgcnVsZXMsIFBlcmwgc2NyaXB0cyBhbmQgTGFUZVggY29kZSB0
byBiZSBhYmxlIHRvIGdlbmVyYXRlIFBERiBhbmQgRFZJCisjIG91dHB1dCBmcm9tIHRoZSBQZXJs
IG1vZHVsZSBvdXRwdXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4KIAog
UEVSTE1PRF9MQVRFWCAgICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFBFUkxNT0RfUFJFVFRZIHRh
ZyBpcyBzZXQgdG8gWUVTIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQgd2lsbCBiZSAKLSMgbmljZWx5
IGZvcm1hdHRlZCBzbyBpdCBjYW4gYmUgcGFyc2VkIGJ5IGEgaHVtYW4gcmVhZGVyLiAKLSMgVGhp
cyBpcyB1c2VmdWwgCi0jIGlmIHlvdSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCBpcyBnb2luZyBv
bi4gCi0jIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGlzIAotIyB0YWcgaXMgc2V0IHRvIE5PIHRo
ZSBzaXplIG9mIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQgd2lsbCBiZSBtdWNoIHNtYWxsZXIgCi0j
IGFuZCBQZXJsIHdpbGwgcGFyc2UgaXQganVzdCB0aGUgc2FtZS4KKyMgSWYgdGhlIFBFUkxNT0Rf
UFJFVFRZIHRhZyBpcyBzZXQgdG8gWUVTIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQgd2lsbCBiZSBu
aWNlbHkKKyMgZm9ybWF0dGVkIHNvIGl0IGNhbiBiZSBwYXJzZWQgYnkgYSBodW1hbiByZWFkZXIu
IFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvCisjIHVuZGVyc3RhbmQgd2hhdCBpcyBnb2lu
ZyBvbi4gT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoaXMgdGFnIGlzIHNldCB0byBOTyB0aGUKKyMg
c2l6ZSBvZiB0aGUgUGVybCBtb2R1bGUgb3V0cHV0IHdpbGwgYmUgbXVjaCBzbWFsbGVyIGFuZCBQ
ZXJsIHdpbGwgcGFyc2UgaXQKKyMganVzdCB0aGUgc2FtZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BFUkxN
T0QgaXMgc2V0IHRvIFlFUy4KIAogUEVSTE1PRF9QUkVUVFkgICAgICAgICA9IFlFUwogCi0jIFRo
ZSBuYW1lcyBvZiB0aGUgbWFrZSB2YXJpYWJsZXMgaW4gdGhlIGdlbmVyYXRlZCBkb3h5cnVsZXMu
bWFrZSBmaWxlIAotIyBhcmUgcHJlZml4ZWQgd2l0aCB0aGUgc3RyaW5nIGNvbnRhaW5lZCBpbiBQ
RVJMTU9EX01BS0VWQVJfUFJFRklYLiAKLSMgVGhpcyBpcyB1c2VmdWwgc28gZGlmZmVyZW50IGRv
eHlydWxlcy5tYWtlIGZpbGVzIGluY2x1ZGVkIGJ5IHRoZSBzYW1lIAotIyBNYWtlZmlsZSBkb24n
dCBvdmVyd3JpdGUgZWFjaCBvdGhlcidzIHZhcmlhYmxlcy4KKyMgVGhlIG5hbWVzIG9mIHRoZSBt
YWtlIHZhcmlhYmxlcyBpbiB0aGUgZ2VuZXJhdGVkIGRveHlydWxlcy5tYWtlIGZpbGUgYXJlCisj
IHByZWZpeGVkIHdpdGggdGhlIHN0cmluZyBjb250YWluZWQgaW4gUEVSTE1PRF9NQUtFVkFSX1BS
RUZJWC4gVGhpcyBpcyB1c2VmdWwKKyMgc28gZGlmZmVyZW50IGRveHlydWxlcy5tYWtlIGZpbGVz
IGluY2x1ZGVkIGJ5IHRoZSBzYW1lIE1ha2VmaWxlIGRvbid0CisjIG92ZXJ3cml0ZSBlYWNoIG90
aGVyJ3MgdmFyaWFibGVzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfUEVSTE1PRCBpcyBzZXQgdG8gWUVTLgogCi1QRVJMTU9EX01BS0VWQVJfUFJFRklYID0gCitQ
RVJMTU9EX01BS0VWQVJfUFJFRklYID0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDb25maWd1
cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgcHJlcHJvY2Vzc29yICAgCisjIENvbmZpZ3Vy
YXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBwcmVwcm9jZXNzb3IKICMtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotIyBJZiB0aGUgRU5BQkxFX1BSRVBST0NFU1NJTkcgdGFnIGlzIHNldCB0byBZRVMg
KHRoZSBkZWZhdWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGV2YWx1YXRlIGFsbCBDLXByZXByb2Nlc3Nv
ciBkaXJlY3RpdmVzIGZvdW5kIGluIHRoZSBzb3VyY2VzIGFuZCBpbmNsdWRlIAotIyBmaWxlcy4K
KyMgSWYgdGhlIEVOQUJMRV9QUkVQUk9DRVNTSU5HIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4g
d2lsbCBldmFsdWF0ZSBhbGwKKyMgQy1wcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyBmb3VuZCBpbiB0
aGUgc291cmNlcyBhbmQgaW5jbHVkZSBmaWxlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlF
Uy4KIAogRU5BQkxFX1BSRVBST0NFU1NJTkcgICA9IFlFUwogCi0jIElmIHRoZSBNQUNST19FWFBB
TlNJT04gdGFnIGlzIHNldCB0byBZRVMgRG94eWdlbiB3aWxsIGV4cGFuZCBhbGwgbWFjcm8gCi0j
IG5hbWVzIGluIHRoZSBzb3VyY2UgY29kZS4gSWYgc2V0IHRvIE5PICh0aGUgZGVmYXVsdCkgb25s
eSBjb25kaXRpb25hbCAKLSMgY29tcGlsYXRpb24gd2lsbCBiZSBwZXJmb3JtZWQuIE1hY3JvIGV4
cGFuc2lvbiBjYW4gYmUgZG9uZSBpbiBhIGNvbnRyb2xsZWQgCi0jIHdheSBieSBzZXR0aW5nIEVY
UEFORF9PTkxZX1BSRURFRiB0byBZRVMuCisjIElmIHRoZSBNQUNST19FWFBBTlNJT04gdGFnIGlz
IHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGV4cGFuZCBhbGwgbWFjcm8gbmFtZXMKKyMgaW4gdGhl
IHNvdXJjZSBjb2RlLiBJZiBzZXQgdG8gTk8gb25seSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB3
aWxsIGJlCisjIHBlcmZvcm1lZC4gTWFjcm8gZXhwYW5zaW9uIGNhbiBiZSBkb25lIGluIGEgY29u
dHJvbGxlZCB3YXkgYnkgc2V0dGluZworIyBFWFBBTkRfT05MWV9QUkVERUYgdG8gWUVTLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8gWUVTLgogCiBNQUNST19FWFBBTlNJT04g
ICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIEVYUEFORF9PTkxZX1BSRURFRiBhbmQgTUFDUk9fRVhQ
QU5TSU9OIHRhZ3MgYXJlIGJvdGggc2V0IHRvIFlFUyAKLSMgdGhlbiB0aGUgbWFjcm8gZXhwYW5z
aW9uIGlzIGxpbWl0ZWQgdG8gdGhlIG1hY3JvcyBzcGVjaWZpZWQgd2l0aCB0aGUgCi0jIFBSRURF
RklORUQgYW5kIEVYUEFORF9BU19ERUZJTkVEIHRhZ3MuCisjIElmIHRoZSBFWFBBTkRfT05MWV9Q
UkVERUYgYW5kIE1BQ1JPX0VYUEFOU0lPTiB0YWdzIGFyZSBib3RoIHNldCB0byBZRVMgdGhlbgor
IyB0aGUgbWFjcm8gZXhwYW5zaW9uIGlzIGxpbWl0ZWQgdG8gdGhlIG1hY3JvcyBzcGVjaWZpZWQg
d2l0aCB0aGUgUFJFREVGSU5FRCBhbmQKKyMgRVhQQU5EX0FTX0RFRklORUQgdGFncy4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
RU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KIAogRVhQQU5EX09OTFlfUFJFREVG
ICAgICA9IE5PCiAKLSMgSWYgdGhlIFNFQVJDSF9JTkNMVURFUyB0YWcgaXMgc2V0IHRvIFlFUyAo
dGhlIGRlZmF1bHQpIHRoZSBpbmNsdWRlcyBmaWxlcyAKLSMgaW4gdGhlIElOQ0xVREVfUEFUSCAo
c2VlIGJlbG93KSB3aWxsIGJlIHNlYXJjaCBpZiBhICNpbmNsdWRlIGlzIGZvdW5kLgorIyBJZiB0
aGUgU0VBUkNIX0lOQ0xVREVTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZSBpbmNsdWRlcyBmaWxlcyBp
biB0aGUKKyMgSU5DTFVERV9QQVRIIHdpbGwgYmUgc2VhcmNoZWQgaWYgYSAjaW5jbHVkZSBpcyBm
b3VuZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCiAKIFNFQVJD
SF9JTkNMVURFUyAgICAgICAgPSBZRVMKIAotIyBUaGUgSU5DTFVERV9QQVRIIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGRpcmVjdG9yaWVzIHRoYXQgCi0jIGNvbnRhaW4g
aW5jbHVkZSBmaWxlcyB0aGF0IGFyZSBub3QgaW5wdXQgZmlsZXMgYnV0IHNob3VsZCBiZSBwcm9j
ZXNzZWQgYnkgCi0jIHRoZSBwcmVwcm9jZXNzb3IuCisjIFRoZSBJTkNMVURFX1BBVEggdGFnIGNh
biBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250
YWluIGluY2x1ZGUgZmlsZXMgdGhhdCBhcmUgbm90IGlucHV0IGZpbGVzIGJ1dCBzaG91bGQgYmUg
cHJvY2Vzc2VkIGJ5IHRoZQorIyBwcmVwcm9jZXNzb3IuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBTRUFSQ0hfSU5DTFVERVMgaXMgc2V0IHRvIFlFUy4KIAogSU5DTFVERV9QQVRI
ICAgICAgICAgICA9IC4uL2luY2x1ZGUKIAotIyBZb3UgY2FuIHVzZSB0aGUgSU5DTFVERV9GSUxF
X1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIAotIyBwYXR0ZXJu
cyAobGlrZSAqLmggYW5kICouaHBwKSB0byBmaWx0ZXIgb3V0IHRoZSBoZWFkZXItZmlsZXMgaW4g
dGhlIAotIyBkaXJlY3Rvcmllcy4gSWYgbGVmdCBibGFuaywgdGhlIHBhdHRlcm5zIHNwZWNpZmll
ZCB3aXRoIEZJTEVfUEFUVEVSTlMgd2lsbCAKLSMgYmUgdXNlZC4KKyMgWW91IGNhbiB1c2UgdGhl
IElOQ0xVREVfRklMRV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB3aWxkY2Fy
ZAorIyBwYXR0ZXJucyAobGlrZSAqLmggYW5kICouaHBwKSB0byBmaWx0ZXIgb3V0IHRoZSBoZWFk
ZXItZmlsZXMgaW4gdGhlCisjIGRpcmVjdG9yaWVzLiBJZiBsZWZ0IGJsYW5rLCB0aGUgcGF0dGVy
bnMgc3BlY2lmaWVkIHdpdGggRklMRV9QQVRURVJOUyB3aWxsIGJlCisjIHVzZWQuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8g
WUVTLgogCiBJTkNMVURFX0ZJTEVfUEFUVEVSTlMgID0gKi5oCiAKLSMgVGhlIFBSRURFRklORUQg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgbWFjcm8gbmFtZXMgdGhhdCAK
LSMgYXJlIGRlZmluZWQgYmVmb3JlIHRoZSBwcmVwcm9jZXNzb3IgaXMgc3RhcnRlZCAoc2ltaWxh
ciB0byB0aGUgLUQgb3B0aW9uIG9mIAotIyBnY2MpLiBUaGUgYXJndW1lbnQgb2YgdGhlIHRhZyBp
cyBhIGxpc3Qgb2YgbWFjcm9zIG9mIHRoZSBmb3JtOiBuYW1lIAotIyBvciBuYW1lPWRlZmluaXRp
b24gKG5vIHNwYWNlcykuIElmIHRoZSBkZWZpbml0aW9uIGFuZCB0aGUgPSBhcmUgCi0jIG9taXR0
ZWQgPTEgaXMgYXNzdW1lZC4gVG8gcHJldmVudCBhIG1hY3JvIGRlZmluaXRpb24gZnJvbSBiZWlu
ZyAKLSMgdW5kZWZpbmVkIHZpYSAjdW5kZWYgb3IgcmVjdXJzaXZlbHkgZXhwYW5kZWQgdXNlIHRo
ZSA6PSBvcGVyYXRvciAKLSMgaW5zdGVhZCBvZiB0aGUgPSBvcGVyYXRvci4KKyMgVGhlIFBSRURF
RklORUQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgbWFjcm8gbmFtZXMg
dGhhdCBhcmUKKyMgZGVmaW5lZCBiZWZvcmUgdGhlIHByZXByb2Nlc3NvciBpcyBzdGFydGVkIChz
aW1pbGFyIHRvIHRoZSAtRCBvcHRpb24gb2YgZS5nLgorIyBnY2MpLiBUaGUgYXJndW1lbnQgb2Yg
dGhlIHRhZyBpcyBhIGxpc3Qgb2YgbWFjcm9zIG9mIHRoZSBmb3JtOiBuYW1lIG9yCisjIG5hbWU9
ZGVmaW5pdGlvbiAobm8gc3BhY2VzKS4gSWYgdGhlIGRlZmluaXRpb24gYW5kIHRoZSAiPSIgYXJl
IG9taXR0ZWQsICI9MSIKKyMgaXMgYXNzdW1lZC4gVG8gcHJldmVudCBhIG1hY3JvIGRlZmluaXRp
b24gZnJvbSBiZWluZyB1bmRlZmluZWQgdmlhICN1bmRlZiBvcgorIyByZWN1cnNpdmVseSBleHBh
bmRlZCB1c2UgdGhlIDo9IG9wZXJhdG9yIGluc3RlYWQgb2YgdGhlID0gb3BlcmF0b3IuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQg
dG8gWUVTLgogCi1QUkVERUZJTkVEICAgICAgICAgICAgID0gIl9NU0NfVkVSPTE0MDAiIFwKK1BS
RURFRklORUQgICAgICAgICAgICAgPSAiX01TQ19WRVI9MTgwMCIgXAogICAgICAgICAgICAgICAg
ICAgICAgICAgIF9DUFBSVFRJIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBfV0lOMzIgXAot
ICAgICAgICAgICAgICAgICAgICAgICAgIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJ
T04gXAotICAgICAgICAgICAgICAgICAgICAgICAgIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01B
UAorICAgICAgICAgICAgICAgICAgICAgICAgIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5U
QVRJT04KIAotIyBJZiB0aGUgTUFDUk9fRVhQQU5TSU9OIGFuZCBFWFBBTkRfT05MWV9QUkVERUYg
dGFncyBhcmUgc2V0IHRvIFlFUyB0aGVuIAotIyB0aGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVj
aWZ5IGEgbGlzdCBvZiBtYWNybyBuYW1lcyB0aGF0IHNob3VsZCBiZSBleHBhbmRlZC4gCi0jIFRo
ZSBtYWNybyBkZWZpbml0aW9uIHRoYXQgaXMgZm91bmQgaW4gdGhlIHNvdXJjZXMgd2lsbCBiZSB1
c2VkLiAKLSMgVXNlIHRoZSBQUkVERUZJTkVEIHRhZyBpZiB5b3Ugd2FudCB0byB1c2UgYSBkaWZm
ZXJlbnQgbWFjcm8gZGVmaW5pdGlvbi4KKyMgSWYgdGhlIE1BQ1JPX0VYUEFOU0lPTiBhbmQgRVhQ
QU5EX09OTFlfUFJFREVGIHRhZ3MgYXJlIHNldCB0byBZRVMgdGhlbiB0aGlzCisjIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IGEgbGlzdCBvZiBtYWNybyBuYW1lcyB0aGF0IHNob3VsZCBiZSBl
eHBhbmRlZC4gVGhlCisjIG1hY3JvIGRlZmluaXRpb24gdGhhdCBpcyBmb3VuZCBpbiB0aGUgc291
cmNlcyB3aWxsIGJlIHVzZWQuIFVzZSB0aGUgUFJFREVGSU5FRAorIyB0YWcgaWYgeW91IHdhbnQg
dG8gdXNlIGEgZGlmZmVyZW50IG1hY3JvIGRlZmluaXRpb24gdGhhdCBvdmVycnVsZXMgdGhlCisj
IGRlZmluaXRpb24gZm91bmQgaW4gdGhlIHNvdXJjZSBjb2RlLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KIAotRVhQ
QU5EX0FTX0RFRklORUQgICAgICA9IAorRVhQQU5EX0FTX0RFRklORUQgICAgICA9CiAKLSMgSWYg
dGhlIFNLSVBfRlVOQ1RJT05fTUFDUk9TIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkg
dGhlbiAKLSMgZG94eWdlbidzIHByZXByb2Nlc3NvciB3aWxsIHJlbW92ZSBhbGwgZnVuY3Rpb24t
bGlrZSBtYWNyb3MgdGhhdCBhcmUgYWxvbmUgCi0jIG9uIGEgbGluZSwgaGF2ZSBhbiBhbGwgdXBw
ZXJjYXNlIG5hbWUsIGFuZCBkbyBub3QgZW5kIHdpdGggYSBzZW1pY29sb24uIFN1Y2ggCi0jIGZ1
bmN0aW9uIG1hY3JvcyBhcmUgdHlwaWNhbGx5IHVzZWQgZm9yIGJvaWxlci1wbGF0ZSBjb2RlLCBh
bmQgd2lsbCBjb25mdXNlIAotIyB0aGUgcGFyc2VyIGlmIG5vdCByZW1vdmVkLgorIyBJZiB0aGUg
U0tJUF9GVU5DVElPTl9NQUNST1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuJ3MgcHJl
cHJvY2Vzc29yIHdpbGwKKyMgcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIGZ1bmN0aW9uLWxpa2Ug
bWFjcm9zIHRoYXQgYXJlIGFsb25lIG9uIGEgbGluZSwgaGF2ZSBhbgorIyBhbGwgdXBwZXJjYXNl
IG5hbWUsIGFuZCBkbyBub3QgZW5kIHdpdGggYSBzZW1pY29sb24uIFN1Y2ggZnVuY3Rpb24gbWFj
cm9zIGFyZQorIyB0eXBpY2FsbHkgdXNlZCBmb3IgYm9pbGVyLXBsYXRlIGNvZGUsIGFuZCB3aWxs
IGNvbmZ1c2UgdGhlIHBhcnNlciBpZiBub3QKKyMgcmVtb3ZlZC4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQ
Uk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCiAKIFNLSVBfRlVOQ1RJT05fTUFDUk9TICAgPSBZRVMK
IAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDb25maWd1cmF0aW9uOjphZGRpdGlvbnMgcmVsYXRl
ZCB0byBleHRlcm5hbCByZWZlcmVuY2VzICAgCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxh
dGVkIHRvIGV4dGVybmFsIHJlZmVyZW5jZXMKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBUaGUg
VEFHRklMRVMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgdGFnZmls
ZXMuIAotIyBPcHRpb25hbGx5IGFuIGluaXRpYWwgbG9jYXRpb24gb2YgdGhlIGV4dGVybmFsIGRv
Y3VtZW50YXRpb24gCi0jIGNhbiBiZSBhZGRlZCBmb3IgZWFjaCB0YWdmaWxlLiBUaGUgZm9ybWF0
IG9mIGEgdGFnIGZpbGUgd2l0aG91dCAKLSMgdGhpcyBsb2NhdGlvbiBpcyBhcyBmb2xsb3dzOiAK
LSMgIAotIyBUQUdGSUxFUyA9IGZpbGUxIGZpbGUyIC4uLiAKLSMgQWRkaW5nIGxvY2F0aW9uIGZv
ciB0aGUgdGFnIGZpbGVzIGlzIGRvbmUgYXMgZm9sbG93czogCi0jICAKLSMgVEFHRklMRVMgPSBm
aWxlMT1sb2MxICJmaWxlMiA9IGxvYzIiIC4uLiAKLSMgd2hlcmUgImxvYzEiIGFuZCAibG9jMiIg
Y2FuIGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhzIG9yIAotIyBVUkxzLiBJZiBhIGxvY2F0
aW9uIGlzIHByZXNlbnQgZm9yIGVhY2ggdGFnLCB0aGUgaW5zdGFsbGRveCB0b29sIAotIyBkb2Vz
IG5vdCBoYXZlIHRvIGJlIHJ1biB0byBjb3JyZWN0IHRoZSBsaW5rcy4gCi0jIE5vdGUgdGhhdCBl
YWNoIHRhZyBmaWxlIG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lIAotIyAod2hlcmUgdGhlIG5hbWUg
ZG9lcyBOT1QgaW5jbHVkZSB0aGUgcGF0aCkgCi0jIElmIGEgdGFnIGZpbGUgaXMgbm90IGxvY2F0
ZWQgaW4gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBkb3h5Z2VuIAotIyBpcyBydW4sIHlvdSBtdXN0
IGFsc28gc3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgdGFnZmlsZSBoZXJlLgotCi1UQUdGSUxFUyAg
ICAgICAgICAgICAgID0gCi0KLSMgV2hlbiBhIGZpbGUgbmFtZSBpcyBzcGVjaWZpZWQgYWZ0ZXIg
R0VORVJBVEVfVEFHRklMRSwgZG94eWdlbiB3aWxsIGNyZWF0ZSAKLSMgYSB0YWcgZmlsZSB0aGF0
IGlzIGJhc2VkIG9uIHRoZSBpbnB1dCBmaWxlcyBpdCByZWFkcy4KLQotR0VORVJBVEVfVEFHRklM
RSAgICAgICA9IAotCi0jIElmIHRoZSBBTExFWFRFUk5BTFMgdGFnIGlzIHNldCB0byBZRVMgYWxs
IGV4dGVybmFsIGNsYXNzZXMgd2lsbCBiZSBsaXN0ZWQgCi0jIGluIHRoZSBjbGFzcyBpbmRleC4g
SWYgc2V0IHRvIE5PIG9ubHkgdGhlIGluaGVyaXRlZCBleHRlcm5hbCBjbGFzc2VzIAotIyB3aWxs
IGJlIGxpc3RlZC4KKyMgVGhlIFRBR0ZJTEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9u
ZSBvciBtb3JlIHRhZyBmaWxlcy4gRm9yIGVhY2ggdGFnCisjIGZpbGUgdGhlIGxvY2F0aW9uIG9m
IHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uIHNob3VsZCBiZSBhZGRlZC4gVGhlIGZvcm1hdCBv
ZgorIyBhIHRhZyBmaWxlIHdpdGhvdXQgdGhpcyBsb2NhdGlvbiBpcyBhcyBmb2xsb3dzOgorIyBU
QUdGSUxFUyA9IGZpbGUxIGZpbGUyIC4uLgorIyBBZGRpbmcgbG9jYXRpb24gZm9yIHRoZSB0YWcg
ZmlsZXMgaXMgZG9uZSBhcyBmb2xsb3dzOgorIyBUQUdGSUxFUyA9IGZpbGUxPWxvYzEgImZpbGUy
ID0gbG9jMiIgLi4uCisjIHdoZXJlIGxvYzEgYW5kIGxvYzIgY2FuIGJlIHJlbGF0aXZlIG9yIGFi
c29sdXRlIHBhdGhzIG9yIFVSTHMuIFNlZSB0aGUKKyMgc2VjdGlvbiAiTGlua2luZyB0byBleHRl
cm5hbCBkb2N1bWVudGF0aW9uIiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlCisj
IG9mIHRhZyBmaWxlcy4KKyMgTm90ZTogRWFjaCB0YWcgZmlsZSBtdXN0IGhhdmUgYW4gdW5pcXVl
IG5hbWUgKHdoZXJlIHRoZSBuYW1lIGRvZXMgTk9UIGluY2x1ZGUKKyMgdGhlIHBhdGgpLiBJZiBh
IHRhZyBmaWxlIGlzIG5vdCBsb2NhdGVkIGluIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggZG94eWdl
biBpcworIyBydW4sIHlvdSBtdXN0IGFsc28gc3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgdGFnZmls
ZSBoZXJlLgorCitUQUdGSUxFUyAgICAgICAgICAgICAgID0KKworIyBXaGVuIGEgZmlsZSBuYW1l
IGlzIHNwZWNpZmllZCBhZnRlciBHRU5FUkFURV9UQUdGSUxFLCBkb3h5Z2VuIHdpbGwgY3JlYXRl
IGEKKyMgdGFnIGZpbGUgdGhhdCBpcyBiYXNlZCBvbiB0aGUgaW5wdXQgZmlsZXMgaXQgcmVhZHMu
IFNlZSBzZWN0aW9uICJMaW5raW5nIHRvCisjIGV4dGVybmFsIGRvY3VtZW50YXRpb24iIGZvciBt
b3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2FnZSBvZiB0YWcgZmlsZXMuCisKK0dFTkVSQVRF
X1RBR0ZJTEUgICAgICAgPQorCisjIElmIHRoZSBBTExFWFRFUk5BTFMgdGFnIGlzIHNldCB0byBZ
RVMgYWxsIGV4dGVybmFsIGNsYXNzIHdpbGwgYmUgbGlzdGVkIGluIHRoZQorIyBjbGFzcyBpbmRl
eC4gSWYgc2V0IHRvIE5PIG9ubHkgdGhlIGluaGVyaXRlZCBleHRlcm5hbCBjbGFzc2VzIHdpbGwg
YmUgbGlzdGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEFMTEVYVEVSTkFMUyAg
ICAgICAgICAgPSBOTwogCi0jIElmIHRoZSBFWFRFUk5BTF9HUk9VUFMgdGFnIGlzIHNldCB0byBZ
RVMgYWxsIGV4dGVybmFsIGdyb3VwcyB3aWxsIGJlIGxpc3RlZCAKLSMgaW4gdGhlIG1vZHVsZXMg
aW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgY3VycmVudCBwcm9qZWN0J3MgZ3JvdXBzIHdp
bGwgCi0jIGJlIGxpc3RlZC4KKyMgSWYgdGhlIEVYVEVSTkFMX0dST1VQUyB0YWcgaXMgc2V0IHRv
IFlFUyBhbGwgZXh0ZXJuYWwgZ3JvdXBzIHdpbGwgYmUgbGlzdGVkIGluCisjIHRoZSBtb2R1bGVz
IGluZGV4LiBJZiBzZXQgdG8gTk8sIG9ubHkgdGhlIGN1cnJlbnQgcHJvamVjdCdzIGdyb3VwcyB3
aWxsIGJlCisjIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogRVhURVJO
QUxfR1JPVVBTICAgICAgICA9IFlFUwogCi0jIFRoZSBQRVJMX1BBVEggc2hvdWxkIGJlIHRoZSBh
YnNvbHV0ZSBwYXRoIGFuZCBuYW1lIG9mIHRoZSBwZXJsIHNjcmlwdCAKLSMgaW50ZXJwcmV0ZXIg
KGkuZS4gdGhlIHJlc3VsdCBvZiBgd2hpY2ggcGVybCcpLgorIyBJZiB0aGUgRVhURVJOQUxfUEFH
RVMgdGFnIGlzIHNldCB0byBZRVMgYWxsIGV4dGVybmFsIHBhZ2VzIHdpbGwgYmUgbGlzdGVkIGlu
CisjIHRoZSByZWxhdGVkIHBhZ2VzIGluZGV4LiBJZiBzZXQgdG8gTk8sIG9ubHkgdGhlIGN1cnJl
bnQgcHJvamVjdCdzIHBhZ2VzIHdpbGwKKyMgYmUgbGlzdGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogWUVTLgorCitFWFRFUk5BTF9QQUdFUyAgICAgICAgID0gWUVTCisKKyMgVGhlIFBFUkxf
UEFUSCBzaG91bGQgYmUgdGhlIGFic29sdXRlIHBhdGggYW5kIG5hbWUgb2YgdGhlIHBlcmwgc2Ny
aXB0CisjIGludGVycHJldGVyIChpLmUuIHRoZSByZXN1bHQgb2YgJ3doaWNoIHBlcmwnKS4KKyMg
VGhlIGRlZmF1bHQgZmlsZSAod2l0aCBhYnNvbHV0ZSBwYXRoKSBpczogL3Vzci9iaW4vcGVybC4K
IAogUEVSTF9QQVRIICAgICAgICAgICAgICA9IC91c3IvYmluL3BlcmwKIAogIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgZG90IHRvb2wg
ICAKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGRvdCB0b29sCiAjLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIENMQVNTX0RJQUdSQU1TIHRhZyBpcyBzZXQgdG8g
WUVTICh0aGUgZGVmYXVsdCkgRG94eWdlbiB3aWxsIAotIyBnZW5lcmF0ZSBhIGluaGVyaXRhbmNl
IGRpYWdyYW0gKGluIEhUTUwsIFJURiBhbmQgTGFUZVgpIGZvciBjbGFzc2VzIHdpdGggYmFzZSAK
LSMgb3Igc3VwZXIgY2xhc3Nlcy4gU2V0dGluZyB0aGUgdGFnIHRvIE5PIHR1cm5zIHRoZSBkaWFn
cmFtcyBvZmYuIE5vdGUgdGhhdCAKLSMgdGhpcyBvcHRpb24gaXMgc3VwZXJzZWRlZCBieSB0aGUg
SEFWRV9ET1Qgb3B0aW9uIGJlbG93LiBUaGlzIGlzIG9ubHkgYSAKLSMgZmFsbGJhY2suIEl0IGlz
IHJlY29tbWVuZGVkIHRvIGluc3RhbGwgYW5kIHVzZSBkb3QsIHNpbmNlIGl0IHlpZWxkcyBtb3Jl
IAorIyBJZiB0aGUgQ0xBU1NfRElBR1JBTVMgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxs
IGdlbmVyYXRlIGEgY2xhc3MgZGlhZ3JhbQorIyAoaW4gSFRNTCBhbmQgTGFUZVgpIGZvciBjbGFz
c2VzIHdpdGggYmFzZSBvciBzdXBlciBjbGFzc2VzLiBTZXR0aW5nIHRoZSB0YWcgdG8KKyMgTk8g
dHVybnMgdGhlIGRpYWdyYW1zIG9mZi4gTm90ZSB0aGF0IHRoaXMgb3B0aW9uIGFsc28gd29ya3Mg
d2l0aCBIQVZFX0RPVAorIyBkaXNhYmxlZCwgYnV0IGl0IGlzIHJlY29tbWVuZGVkIHRvIGluc3Rh
bGwgYW5kIHVzZSBkb3QsIHNpbmNlIGl0IHlpZWxkcyBtb3JlCiAjIHBvd2VyZnVsIGdyYXBocy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogQ0xBU1NfRElBR1JBTVMgICAgICAgICA9
IE5PCiAKLSMgWW91IGNhbiBkZWZpbmUgbWVzc2FnZSBzZXF1ZW5jZSBjaGFydHMgd2l0aGluIGRv
eHlnZW4gY29tbWVudHMgdXNpbmcgdGhlIFxtc2MgCi0jIGNvbW1hbmQuIERveHlnZW4gd2lsbCB0
aGVuIHJ1biB0aGUgbXNjZ2VuIHRvb2wgKHNlZSAKLSMgaHR0cDovL3d3dy5tY3Rlcm5hbi5tZS51
ay9tc2NnZW4vKSB0byBwcm9kdWNlIHRoZSBjaGFydCBhbmQgaW5zZXJ0IGl0IGluIHRoZSAKLSMg
ZG9jdW1lbnRhdGlvbi4gVGhlIE1TQ0dFTl9QQVRIIHRhZyBhbGxvd3MgeW91IHRvIHNwZWNpZnkg
dGhlIGRpcmVjdG9yeSB3aGVyZSAKLSMgdGhlIG1zY2dlbiB0b29sIHJlc2lkZXMuIElmIGxlZnQg
ZW1wdHkgdGhlIHRvb2wgaXMgYXNzdW1lZCB0byBiZSBmb3VuZCBpbiB0aGUgCisjIFlvdSBjYW4g
ZGVmaW5lIG1lc3NhZ2Ugc2VxdWVuY2UgY2hhcnRzIHdpdGhpbiBkb3h5Z2VuIGNvbW1lbnRzIHVz
aW5nIHRoZSBcbXNjCisjIGNvbW1hbmQuIERveHlnZW4gd2lsbCB0aGVuIHJ1biB0aGUgbXNjZ2Vu
IHRvb2wgKHNlZToKKyMgaHR0cDovL3d3dy5tY3Rlcm5hbi5tZS51ay9tc2NnZW4vKSkgdG8gcHJv
ZHVjZSB0aGUgY2hhcnQgYW5kIGluc2VydCBpdCBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbi4gVGhl
IE1TQ0dFTl9QQVRIIHRhZyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSB3aGVy
ZQorIyB0aGUgbXNjZ2VuIHRvb2wgcmVzaWRlcy4gSWYgbGVmdCBlbXB0eSB0aGUgdG9vbCBpcyBh
c3N1bWVkIHRvIGJlIGZvdW5kIGluIHRoZQogIyBkZWZhdWx0IHNlYXJjaCBwYXRoLgogCi1NU0NH
RU5fUEFUSCAgICAgICAgICAgID0gCitNU0NHRU5fUEFUSCAgICAgICAgICAgID0KIAotIyBJZiBz
ZXQgdG8gWUVTLCB0aGUgaW5oZXJpdGFuY2UgYW5kIGNvbGxhYm9yYXRpb24gZ3JhcGhzIHdpbGwg
aGlkZSAKLSMgaW5oZXJpdGFuY2UgYW5kIHVzYWdlIHJlbGF0aW9ucyBpZiB0aGUgdGFyZ2V0IGlz
IHVuZG9jdW1lbnRlZCAKLSMgb3IgaXMgbm90IGEgY2xhc3MuCisjIElmIHNldCB0byBZRVMsIHRo
ZSBpbmhlcml0YW5jZSBhbmQgY29sbGFib3JhdGlvbiBncmFwaHMgd2lsbCBoaWRlIGluaGVyaXRh
bmNlCisjIGFuZCB1c2FnZSByZWxhdGlvbnMgaWYgdGhlIHRhcmdldCBpcyB1bmRvY3VtZW50ZWQg
b3IgaXMgbm90IGEgY2xhc3MuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEhJREVf
VU5ET0NfUkVMQVRJT05TICAgPSBOTwogCi0jIElmIHlvdSBzZXQgdGhlIEhBVkVfRE9UIHRhZyB0
byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgYXNzdW1lIHRoZSBkb3QgdG9vbCBpcyAKLSMgYXZhaWxh
YmxlIGZyb20gdGhlIHBhdGguIFRoaXMgdG9vbCBpcyBwYXJ0IG9mIEdyYXBodml6LCBhIGdyYXBo
IHZpc3VhbGl6YXRpb24gCi0jIHRvb2xraXQgZnJvbSBBVCZUIGFuZCBMdWNlbnQgQmVsbCBMYWJz
LiBUaGUgb3RoZXIgb3B0aW9ucyBpbiB0aGlzIHNlY3Rpb24gCi0jIGhhdmUgbm8gZWZmZWN0IGlm
IHRoaXMgb3B0aW9uIGlzIHNldCB0byBOTyAodGhlIGRlZmF1bHQpCisjIElmIHlvdSBzZXQgdGhl
IEhBVkVfRE9UIHRhZyB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgYXNzdW1lIHRoZSBkb3QgdG9v
bCBpcworIyBhdmFpbGFibGUgZnJvbSB0aGUgcGF0aC4gVGhpcyB0b29sIGlzIHBhcnQgb2YgR3Jh
cGh2aXogKHNlZToKKyMgaHR0cDovL3d3dy5ncmFwaHZpei5vcmcvKSwgYSBncmFwaCB2aXN1YWxp
emF0aW9uIHRvb2xraXQgZnJvbSBBVCZUIGFuZCBMdWNlbnQKKyMgQmVsbCBMYWJzLiBUaGUgb3Ro
ZXIgb3B0aW9ucyBpbiB0aGlzIHNlY3Rpb24gaGF2ZSBubyBlZmZlY3QgaWYgdGhpcyBvcHRpb24g
aXMKKyMgc2V0IHRvIE5PCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSEFWRV9ET1Qg
ICAgICAgICAgICAgICA9ICVIQVZFX0RPVCUKIAotIyBCeSBkZWZhdWx0IGRveHlnZW4gd2lsbCB3
cml0ZSBhIGZvbnQgY2FsbGVkIEZyZWVTYW5zLnR0ZiB0byB0aGUgb3V0cHV0IAotIyBkaXJlY3Rv
cnkgYW5kIHJlZmVyZW5jZSBpdCBpbiBhbGwgZG90IGZpbGVzIHRoYXQgZG94eWdlbiBnZW5lcmF0
ZXMuIFRoaXMgCi0jIGZvbnQgZG9lcyBub3QgaW5jbHVkZSBhbGwgcG9zc2libGUgdW5pY29kZSBj
aGFyYWN0ZXJzIGhvd2V2ZXIsIHNvIHdoZW4geW91IG5lZWQgCi0jIHRoZXNlIChvciBqdXN0IHdh
bnQgYSBkaWZmZXJlbnRseSBsb29raW5nIGZvbnQpIHlvdSBjYW4gc3BlY2lmeSB0aGUgZm9udCBu
YW1lIAotIyB1c2luZyBET1RfRk9OVE5BTUUuIFlvdSBuZWVkIG5lZWQgdG8gbWFrZSBzdXJlIGRv
dCBpcyBhYmxlIHRvIGZpbmQgdGhlIGZvbnQsIAotIyB3aGljaCBjYW4gYmUgZG9uZSBieSBwdXR0
aW5nIGl0IGluIGEgc3RhbmRhcmQgbG9jYXRpb24gb3IgYnkgc2V0dGluZyB0aGUgCi0jIERPVEZP
TlRQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGJ5IHNldHRpbmcgRE9UX0ZPTlRQQVRIIHRv
IHRoZSBkaXJlY3RvcnkgCi0jIGNvbnRhaW5pbmcgdGhlIGZvbnQuCisjIFRoZSBET1RfTlVNX1RI
UkVBRFMgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZG90IGludm9jYXRpb25zIGRveHlnZW4gaXMg
YWxsb3dlZAorIyB0byBydW4gaW4gcGFyYWxsZWwuIFdoZW4gc2V0IHRvIDAgZG94eWdlbiB3aWxs
IGJhc2UgdGhpcyBvbiB0aGUgbnVtYmVyIG9mCisjIHByb2Nlc3NvcnMgYXZhaWxhYmxlIGluIHRo
ZSBzeXN0ZW0uIFlvdSBjYW4gc2V0IGl0IGV4cGxpY2l0bHkgdG8gYSB2YWx1ZQorIyBsYXJnZXIg
dGhhbiAwIHRvIGdldCBjb250cm9sIG92ZXIgdGhlIGJhbGFuY2UgYmV0d2VlbiBDUFUgbG9hZCBh
bmQgcHJvY2Vzc2luZworIyBzcGVlZC4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1
ZTogMzIsIGRlZmF1bHQgdmFsdWU6IDAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfTlVNX1RIUkVBRFMgICAgICAgID0gMAor
CisjIFdoZW4geW91IHdhbnQgYSBkaWZmZXJlbnRseSBsb29raW5nIGZvbnQgbiB0aGUgZG90IGZp
bGVzIHRoYXQgZG94eWdlbgorIyBnZW5lcmF0ZXMgeW91IGNhbiBzcGVjaWZ5IHRoZSBmb250IG5h
bWUgdXNpbmcgRE9UX0ZPTlROQU1FLiBZb3UgbmVlZCB0byBtYWtlCisjIHN1cmUgZG90IGlzIGFi
bGUgdG8gZmluZCB0aGUgZm9udCwgd2hpY2ggY2FuIGJlIGRvbmUgYnkgcHV0dGluZyBpdCBpbiBh
CisjIHN0YW5kYXJkIGxvY2F0aW9uIG9yIGJ5IHNldHRpbmcgdGhlIERPVEZPTlRQQVRIIGVudmly
b25tZW50IHZhcmlhYmxlIG9yIGJ5CisjIHNldHRpbmcgRE9UX0ZPTlRQQVRIIHRvIHRoZSBkaXJl
Y3RvcnkgY29udGFpbmluZyB0aGUgZm9udC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IEhlbHZl
dGljYS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0
byBZRVMuCiAKIERPVF9GT05UTkFNRSAgICAgICAgICAgPSBGcmVlU2FucwogCi0jIFRoZSBET1Rf
Rk9OVFNJWkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgc2l6ZSBvZiB0aGUgZm9udCBvZiBk
b3QgZ3JhcGhzLiAKLSMgVGhlIGRlZmF1bHQgc2l6ZSBpcyAxMHB0LgorIyBUaGUgRE9UX0ZPTlRT
SVpFIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIHNpemUgKGluIHBvaW50cykgb2YgdGhlIGZv
bnQgb2YKKyMgZG90IGdyYXBocy4KKyMgTWluaW11bSB2YWx1ZTogNCwgbWF4aW11bSB2YWx1ZTog
MjQsIGRlZmF1bHQgdmFsdWU6IDEwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
SEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogRE9UX0ZPTlRTSVpFICAgICAgICAgICA9IDEwCiAK
LSMgQnkgZGVmYXVsdCBkb3h5Z2VuIHdpbGwgdGVsbCBkb3QgdG8gdXNlIHRoZSBvdXRwdXQgZGly
ZWN0b3J5IHRvIGxvb2sgZm9yIHRoZSAKLSMgRnJlZVNhbnMudHRmIGZvbnQgKHdoaWNoIGRveHln
ZW4gd2lsbCBwdXQgdGhlcmUgaXRzZWxmKS4gSWYgeW91IHNwZWNpZnkgYSAKLSMgZGlmZmVyZW50
IGZvbnQgdXNpbmcgRE9UX0ZPTlROQU1FIHlvdSBjYW4gc2V0IHRoZSBwYXRoIHdoZXJlIGRvdCAK
LSMgY2FuIGZpbmQgaXQgdXNpbmcgdGhpcyB0YWcuCisjIEJ5IGRlZmF1bHQgZG94eWdlbiB3aWxs
IHRlbGwgZG90IHRvIHVzZSB0aGUgZGVmYXVsdCBmb250IGFzIHNwZWNpZmllZCB3aXRoCisjIERP
VF9GT05UTkFNRS4gSWYgeW91IHNwZWNpZnkgYSBkaWZmZXJlbnQgZm9udCB1c2luZyBET1RfRk9O
VE5BTUUgeW91IGNhbiBzZXQKKyMgdGhlIHBhdGggd2hlcmUgZG90IGNhbiBmaW5kIGl0IHVzaW5n
IHRoaXMgdGFnLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMg
c2V0IHRvIFlFUy4KIAotRE9UX0ZPTlRQQVRIICAgICAgICAgICA9IAorRE9UX0ZPTlRQQVRIICAg
ICAgICAgICA9CiAKLSMgSWYgdGhlIENMQVNTX0dSQVBIIGFuZCBIQVZFX0RPVCB0YWdzIGFyZSBz
ZXQgdG8gWUVTIHRoZW4gZG94eWdlbiAKLSMgd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNo
IGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGlyZWN0IGFuZCAKLSMgaW5kaXJlY3QgaW5o
ZXJpdGFuY2UgcmVsYXRpb25zLiBTZXR0aW5nIHRoaXMgdGFnIHRvIFlFUyB3aWxsIGZvcmNlIHRo
ZSAKLSMgdGhlIENMQVNTX0RJQUdSQU1TIHRhZyB0byBOTy4KKyMgSWYgdGhlIENMQVNTX0dSQVBI
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9y
CisjIGVhY2ggZG9jdW1lbnRlZCBjbGFzcyBzaG93aW5nIHRoZSBkaXJlY3QgYW5kIGluZGlyZWN0
IGluaGVyaXRhbmNlIHJlbGF0aW9ucy4KKyMgU2V0dGluZyB0aGlzIHRhZyB0byBZRVMgd2lsbCBm
b3JjZSB0aGUgQ0xBU1NfRElBR1JBTVMgdGFnIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0
IHRvIFlFUy4KIAogQ0xBU1NfR1JBUEggICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBDT0xM
QUJPUkFUSU9OX0dSQVBIIGFuZCBIQVZFX0RPVCB0YWdzIGFyZSBzZXQgdG8gWUVTIHRoZW4gZG94
eWdlbiAKLSMgd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mg
c2hvd2luZyB0aGUgZGlyZWN0IGFuZCAKLSMgaW5kaXJlY3QgaW1wbGVtZW50YXRpb24gZGVwZW5k
ZW5jaWVzIChpbmhlcml0YW5jZSwgY29udGFpbm1lbnQsIGFuZCAKLSMgY2xhc3MgcmVmZXJlbmNl
cyB2YXJpYWJsZXMpIG9mIHRoZSBjbGFzcyB3aXRoIG90aGVyIGRvY3VtZW50ZWQgY2xhc3Nlcy4K
KyMgSWYgdGhlIENPTExBQk9SQVRJT05fR1JBUEggdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5
Z2VuIHdpbGwgZ2VuZXJhdGUgYQorIyBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGNsYXNzIHNo
b3dpbmcgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QgaW1wbGVtZW50YXRpb24KKyMgZGVwZW5kZW5j
aWVzIChpbmhlcml0YW5jZSwgY29udGFpbm1lbnQsIGFuZCBjbGFzcyByZWZlcmVuY2VzIHZhcmlh
Ymxlcykgb2YgdGhlCisjIGNsYXNzIHdpdGggb3RoZXIgZG9jdW1lbnRlZCBjbGFzc2VzLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogQ09MTEFCT1JBVElPTl9HUkFQSCAgICA9IFlF
UwogCi0jIElmIHRoZSBHUk9VUF9HUkFQSFMgYW5kIEhBVkVfRE9UIHRhZ3MgYXJlIHNldCB0byBZ
RVMgdGhlbiBkb3h5Z2VuIAotIyB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yIGdyb3Vwcywgc2hv
d2luZyB0aGUgZGlyZWN0IGdyb3VwcyBkZXBlbmRlbmNpZXMKKyMgSWYgdGhlIEdST1VQX0dSQVBI
UyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZv
cgorIyBncm91cHMsIHNob3dpbmcgdGhlIGRpcmVjdCBncm91cHMgZGVwZW5kZW5jaWVzLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogR1JPVVBfR1JBUEhTICAgICAgICAgICA9IFlF
UwogCi0jIElmIHRoZSBVTUxfTE9PSyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgaW5oZXJpdGFuY2UgYW5kIAotIyBjb2xsYWJvcmF0aW9uIGRpYWdyYW1zIGluIGEgc3R5
bGUgc2ltaWxhciB0byB0aGUgT01HJ3MgVW5pZmllZCBNb2RlbGluZyAKKyMgSWYgdGhlIFVNTF9M
T09LIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBpbmhlcml0YW5jZSBh
bmQKKyMgY29sbGFib3JhdGlvbiBkaWFncmFtcyBpbiBhIHN0eWxlIHNpbWlsYXIgdG8gdGhlIE9N
RydzIFVuaWZpZWQgTW9kZWxpbmcKICMgTGFuZ3VhZ2UuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0
byBZRVMuCiAKIFVNTF9MT09LICAgICAgICAgICAgICAgPSAlVU1MX0xPT0slCiAKLSMgSWYgc2V0
IHRvIFlFUywgdGhlIGluaGVyaXRhbmNlIGFuZCBjb2xsYWJvcmF0aW9uIGdyYXBocyB3aWxsIHNo
b3cgdGhlIAotIyByZWxhdGlvbnMgYmV0d2VlbiB0ZW1wbGF0ZXMgYW5kIHRoZWlyIGluc3RhbmNl
cy4KKyMgSWYgdGhlIFVNTF9MT09LIHRhZyBpcyBlbmFibGVkLCB0aGUgZmllbGRzIGFuZCBtZXRo
b2RzIGFyZSBzaG93biBpbnNpZGUgdGhlCisjIGNsYXNzIG5vZGUuIElmIHRoZXJlIGFyZSBtYW55
IGZpZWxkcyBvciBtZXRob2RzIGFuZCBtYW55IG5vZGVzIHRoZSBncmFwaCBtYXkKKyMgYmVjb21l
IHRvbyBiaWcgdG8gYmUgdXNlZnVsLiBUaGUgVU1MX0xJTUlUX05VTV9GSUVMRFMgdGhyZXNob2xk
IGxpbWl0cyB0aGUKKyMgbnVtYmVyIG9mIGl0ZW1zIGZvciBlYWNoIHR5cGUgdG8gbWFrZSB0aGUg
c2l6ZSBtb3JlIG1hbmFnZWFibGUuIFNldCB0aGlzIHRvIDAKKyMgZm9yIG5vIGxpbWl0LiBOb3Rl
IHRoYXQgdGhlIHRocmVzaG9sZCBtYXkgYmUgZXhjZWVkZWQgYnkgNTAlIGJlZm9yZSB0aGUgbGlt
aXQKKyMgaXMgZW5mb3JjZWQuIFNvIHdoZW4geW91IHNldCB0aGUgdGhyZXNob2xkIHRvIDEwLCB1
cCB0byAxNSBmaWVsZHMgbWF5IGFwcGVhciwKKyMgYnV0IGlmIHRoZSBudW1iZXIgZXhjZWVkcyAx
NSwgdGhlIHRvdGFsIGFtb3VudCBvZiBmaWVsZHMgc2hvd24gaXMgbGltaXRlZCB0bworIyAxMC4K
KyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTAwLCBkZWZhdWx0IHZhbHVlOiAx
MC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZ
RVMuCisKK1VNTF9MSU1JVF9OVU1fRklFTERTICAgPSAxMAorCisjIElmIHRoZSBURU1QTEFURV9S
RUxBVElPTlMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgaW5oZXJpdGFuY2UgYW5kCisjIGNv
bGxhYm9yYXRpb24gZ3JhcGhzIHdpbGwgc2hvdyB0aGUgcmVsYXRpb25zIGJldHdlZW4gdGVtcGxh
dGVzIGFuZCB0aGVpcgorIyBpbnN0YW5jZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CiAKIFRFTVBMQVRFX1JFTEFUSU9OUyAgICAgPSBZRVMKIAotIyBJZiB0aGUgRU5BQkxFX1BSRVBS
T0NFU1NJTkcsIFNFQVJDSF9JTkNMVURFUywgSU5DTFVERV9HUkFQSCwgYW5kIEhBVkVfRE9UIAot
IyB0YWdzIGFyZSBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGgg
Zm9yIGVhY2ggZG9jdW1lbnRlZCAKLSMgZmlsZSBzaG93aW5nIHRoZSBkaXJlY3QgYW5kIGluZGly
ZWN0IGluY2x1ZGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBmaWxlIHdpdGggCi0jIG90aGVyIGRvY3Vt
ZW50ZWQgZmlsZXMuCisjIElmIHRoZSBJTkNMVURFX0dSQVBILCBFTkFCTEVfUFJFUFJPQ0VTU0lO
RyBhbmQgU0VBUkNIX0lOQ0xVREVTIHRhZ3MgYXJlIHNldCB0bworIyBZRVMgdGhlbiBkb3h5Z2Vu
IHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGZpbGUgc2hvd2luZyB0
aGUKKyMgZGlyZWN0IGFuZCBpbmRpcmVjdCBpbmNsdWRlIGRlcGVuZGVuY2llcyBvZiB0aGUgZmls
ZSB3aXRoIG90aGVyIGRvY3VtZW50ZWQKKyMgZmlsZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQg
dG8gWUVTLgogCiBJTkNMVURFX0dSQVBIICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIEVOQUJM
RV9QUkVQUk9DRVNTSU5HLCBTRUFSQ0hfSU5DTFVERVMsIElOQ0xVREVEX0JZX0dSQVBILCBhbmQg
Ci0jIEhBVkVfRE9UIHRhZ3MgYXJlIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJh
dGUgYSBncmFwaCBmb3IgZWFjaCAKLSMgZG9jdW1lbnRlZCBoZWFkZXIgZmlsZSBzaG93aW5nIHRo
ZSBkb2N1bWVudGVkIGZpbGVzIHRoYXQgZGlyZWN0bHkgb3IgCi0jIGluZGlyZWN0bHkgaW5jbHVk
ZSB0aGlzIGZpbGUuCisjIElmIHRoZSBJTkNMVURFRF9CWV9HUkFQSCwgRU5BQkxFX1BSRVBST0NF
U1NJTkcgYW5kIFNFQVJDSF9JTkNMVURFUyB0YWdzIGFyZQorIyBzZXQgdG8gWUVTIHRoZW4gZG94
eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yIGVhY2ggZG9jdW1lbnRlZCBmaWxlIHNob3dp
bmcKKyMgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QgaW5jbHVkZSBkZXBlbmRlbmNpZXMgb2YgdGhl
IGZpbGUgd2l0aCBvdGhlciBkb2N1bWVudGVkCisjIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMg
c2V0IHRvIFlFUy4KIAogSU5DTFVERURfQllfR1JBUEggICAgICA9IFlFUwogCi0jIElmIHRoZSBD
QUxMX0dSQVBIIGFuZCBIQVZFX0RPVCBvcHRpb25zIGFyZSBzZXQgdG8gWUVTIHRoZW4gCi0jIGRv
eHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNhbGwgZGVwZW5kZW5jeSBncmFwaCBmb3IgZXZlcnkgZ2xv
YmFsIGZ1bmN0aW9uIAotIyBvciBjbGFzcyBtZXRob2QuIE5vdGUgdGhhdCBlbmFibGluZyB0aGlz
IG9wdGlvbiB3aWxsIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgCi0jIHRoZSB0aW1lIG9mIGEgcnVu
LiBTbyBpbiBtb3N0IGNhc2VzIGl0IHdpbGwgYmUgYmV0dGVyIHRvIGVuYWJsZSBjYWxsIGdyYXBo
cyAKLSMgZm9yIHNlbGVjdGVkIGZ1bmN0aW9ucyBvbmx5IHVzaW5nIHRoZSBcY2FsbGdyYXBoIGNv
bW1hbmQuCisjIElmIHRoZSBDQUxMX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdl
biB3aWxsIGdlbmVyYXRlIGEgY2FsbAorIyBkZXBlbmRlbmN5IGdyYXBoIGZvciBldmVyeSBnbG9i
YWwgZnVuY3Rpb24gb3IgY2xhc3MgbWV0aG9kLgorIworIyBOb3RlIHRoYXQgZW5hYmxpbmcgdGhp
cyBvcHRpb24gd2lsbCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRoZSB0aW1lIG9mIGEgcnVuLgor
IyBTbyBpbiBtb3N0IGNhc2VzIGl0IHdpbGwgYmUgYmV0dGVyIHRvIGVuYWJsZSBjYWxsIGdyYXBo
cyBmb3Igc2VsZWN0ZWQKKyMgZnVuY3Rpb25zIG9ubHkgdXNpbmcgdGhlIFxjYWxsZ3JhcGggY29t
bWFuZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogQ0FMTF9HUkFQSCAgICAgICAg
ICAgICA9IE5PCiAKLSMgSWYgdGhlIENBTExFUl9HUkFQSCBhbmQgSEFWRV9ET1QgdGFncyBhcmUg
c2V0IHRvIFlFUyB0aGVuIAotIyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjYWxsZXIgZGVwZW5k
ZW5jeSBncmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1bmN0aW9uIAotIyBvciBjbGFzcyBtZXRob2Qu
IE5vdGUgdGhhdCBlbmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIHNpZ25pZmljYW50bHkgaW5jcmVh
c2UgCi0jIHRoZSB0aW1lIG9mIGEgcnVuLiBTbyBpbiBtb3N0IGNhc2VzIGl0IHdpbGwgYmUgYmV0
dGVyIHRvIGVuYWJsZSBjYWxsZXIgCi0jIGdyYXBocyBmb3Igc2VsZWN0ZWQgZnVuY3Rpb25zIG9u
bHkgdXNpbmcgdGhlIFxjYWxsZXJncmFwaCBjb21tYW5kLgorIyBJZiB0aGUgQ0FMTEVSX0dSQVBI
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgY2FsbGVyCisj
IGRlcGVuZGVuY3kgZ3JhcGggZm9yIGV2ZXJ5IGdsb2JhbCBmdW5jdGlvbiBvciBjbGFzcyBtZXRo
b2QuCisjCisjIE5vdGUgdGhhdCBlbmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIHNpZ25pZmljYW50
bHkgaW5jcmVhc2UgdGhlIHRpbWUgb2YgYSBydW4uCisjIFNvIGluIG1vc3QgY2FzZXMgaXQgd2ls
bCBiZSBiZXR0ZXIgdG8gZW5hYmxlIGNhbGxlciBncmFwaHMgZm9yIHNlbGVjdGVkCisjIGZ1bmN0
aW9ucyBvbmx5IHVzaW5nIHRoZSBcY2FsbGVyZ3JhcGggY29tbWFuZC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1Qg
aXMgc2V0IHRvIFlFUy4KIAogQ0FMTEVSX0dSQVBIICAgICAgICAgICA9IFlFUwogCi0jIElmIHRo
ZSBHUkFQSElDQUxfSElFUkFSQ0hZIGFuZCBIQVZFX0RPVCB0YWdzIGFyZSBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiAKLSMgd2lsbCBncmFwaGljYWwgaGllcmFyY2h5IG9mIGFsbCBjbGFzc2VzIGlu
c3RlYWQgb2YgYSB0ZXh0dWFsIG9uZS4KKyMgSWYgdGhlIEdSQVBISUNBTF9ISUVSQVJDSFkgdGFn
IGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ3JhcGhpY2FsCisjIGhpZXJhcmNoeSBv
ZiBhbGwgY2xhc3NlcyBpbnN0ZWFkIG9mIGEgdGV4dHVhbCBvbmUuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBp
cyBzZXQgdG8gWUVTLgogCiBHUkFQSElDQUxfSElFUkFSQ0hZICAgID0gWUVTCiAKLSMgSWYgdGhl
IERJUkVDVE9SWV9HUkFQSCwgU0hPV19ESVJFQ1RPUklFUyBhbmQgSEFWRV9ET1QgdGFncyBhcmUg
c2V0IHRvIFlFUyAKLSMgdGhlbiBkb3h5Z2VuIHdpbGwgc2hvdyB0aGUgZGVwZW5kZW5jaWVzIGEg
ZGlyZWN0b3J5IGhhcyBvbiBvdGhlciBkaXJlY3RvcmllcyAKLSMgaW4gYSBncmFwaGljYWwgd2F5
LiBUaGUgZGVwZW5kZW5jeSByZWxhdGlvbnMgYXJlIGRldGVybWluZWQgYnkgdGhlICNpbmNsdWRl
IAotIyByZWxhdGlvbnMgYmV0d2VlbiB0aGUgZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzLgorIyBJ
ZiB0aGUgRElSRUNUT1JZX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxs
IHNob3cgdGhlCisjIGRlcGVuZGVuY2llcyBhIGRpcmVjdG9yeSBoYXMgb24gb3RoZXIgZGlyZWN0
b3JpZXMgaW4gYSBncmFwaGljYWwgd2F5LiBUaGUKKyMgZGVwZW5kZW5jeSByZWxhdGlvbnMgYXJl
IGRldGVybWluZWQgYnkgdGhlICNpbmNsdWRlIHJlbGF0aW9ucyBiZXR3ZWVuIHRoZQorIyBmaWxl
cyBpbiB0aGUgZGlyZWN0b3JpZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBE
SVJFQ1RPUllfR1JBUEggICAgICAgID0gWUVTCiAKLSMgVGhlIERPVF9JTUFHRV9GT1JNQVQgdGFn
IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgaW1hZ2UgZm9ybWF0IG9mIHRoZSBpbWFnZXMgCi0jIGdl
bmVyYXRlZCBieSBkb3QuIFBvc3NpYmxlIHZhbHVlcyBhcmUgcG5nLCBqcGcsIG9yIGdpZiAKLSMg
SWYgbGVmdCBibGFuayBwbmcgd2lsbCBiZSB1c2VkLgorIyBUaGUgRE9UX0lNQUdFX0ZPUk1BVCB0
YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBpbWFnZSBmb3JtYXQgb2YgdGhlIGltYWdlcworIyBn
ZW5lcmF0ZWQgYnkgZG90LgorIyBOb3RlOiBJZiB5b3UgY2hvb3NlIHN2ZyB5b3UgbmVlZCB0byBz
ZXQgSFRNTF9GSUxFX0VYVEVOU0lPTiB0byB4aHRtbCBpbiBvcmRlcgorIyB0byBtYWtlIHRoZSBT
VkcgZmlsZXMgdmlzaWJsZSBpbiBJRSA5KyAob3RoZXIgYnJvd3NlcnMgZG8gbm90IGhhdmUgdGhp
cworIyByZXF1aXJlbWVudCkuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IHBuZywganBnLCBnaWYg
YW5kIHN2Zy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IHBuZy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9JTUFHRV9GT1JN
QVQgICAgICAgPSBwbmcKIAotIyBUaGUgdGFnIERPVF9QQVRIIGNhbiBiZSB1c2VkIHRvIHNwZWNp
ZnkgdGhlIHBhdGggd2hlcmUgdGhlIGRvdCB0b29sIGNhbiBiZSAKKyMgSWYgRE9UX0lNQUdFX0ZP
Uk1BVCBpcyBzZXQgdG8gc3ZnLCB0aGVuIHRoaXMgb3B0aW9uIGNhbiBiZSBzZXQgdG8gWUVTIHRv
CisjIGVuYWJsZSBnZW5lcmF0aW9uIG9mIGludGVyYWN0aXZlIFNWRyBpbWFnZXMgdGhhdCBhbGxv
dyB6b29taW5nIGFuZCBwYW5uaW5nLgorIworIyBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyBhIG1v
ZGVybiBicm93c2VyIG90aGVyIHRoYW4gSW50ZXJuZXQgRXhwbG9yZXIuIFRlc3RlZAorIyBhbmQg
d29ya2luZyBhcmUgRmlyZWZveCwgQ2hyb21lLCBTYWZhcmksIGFuZCBPcGVyYS4KKyMgTm90ZTog
Rm9yIElFIDkrIHlvdSBuZWVkIHRvIHNldCBIVE1MX0ZJTEVfRVhURU5TSU9OIHRvIHhodG1sIGlu
IG9yZGVyIHRvIG1ha2UKKyMgdGhlIFNWRyBmaWxlcyB2aXNpYmxlLiBPbGRlciB2ZXJzaW9ucyBv
ZiBJRSBkbyBub3QgaGF2ZSBTVkcgc3VwcG9ydC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlF
Uy4KKworSU5URVJBQ1RJVkVfU1ZHICAgICAgICA9IE5PCisKKyMgVGhlIERPVF9QQVRIIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBwYXRoIHdoZXJlIHRoZSBkb3QgdG9vbCBjYW4gYmUK
ICMgZm91bmQuIElmIGxlZnQgYmxhbmssIGl0IGlzIGFzc3VtZWQgdGhlIGRvdCB0b29sIGNhbiBi
ZSBmb3VuZCBpbiB0aGUgcGF0aC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhB
VkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9QQVRIICAgICAgICAgICAgICAgPSAlRE9UX1BB
VEglCiAKLSMgVGhlIERPVEZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUg
b3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0IAotIyBjb250YWluIGRvdCBmaWxlcyB0aGF0IGFyZSBp
bmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIHRoZSAKLSMgXGRvdGZpbGUgY29tbWFu
ZCkuCisjIFRoZSBET1RGSUxFX0RJUlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9y
IG1vcmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250YWluIGRvdCBmaWxlcyB0aGF0IGFyZSBpbmNs
dWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIHRoZSBcZG90ZmlsZQorIyBjb21tYW5kKS4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CisKK0RPVEZJTEVfRElSUyAgICAgICAgICAgPQorCisjIFRoZSBNU0NGSUxFX0RJUlMgdGFnIGNh
biBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250
YWluIG1zYyBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2Vl
IHRoZSBcbXNjZmlsZQorIyBjb21tYW5kKS4KIAotRE9URklMRV9ESVJTICAgICAgICAgICA9IAor
TVNDRklMRV9ESVJTICAgICAgICAgICA9CiAKLSMgVGhlIERPVF9HUkFQSF9NQVhfTk9ERVMgdGFn
IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWF4aW11bSBudW1iZXIgb2YgCi0jIG5vZGVzIHRoYXQg
d2lsbCBiZSBzaG93biBpbiB0aGUgZ3JhcGguIElmIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBn
cmFwaCAKLSMgYmVjb21lcyBsYXJnZXIgdGhhbiB0aGlzIHZhbHVlLCBkb3h5Z2VuIHdpbGwgdHJ1
bmNhdGUgdGhlIGdyYXBoLCB3aGljaCBpcyAKLSMgdmlzdWFsaXplZCBieSByZXByZXNlbnRpbmcg
YSBub2RlIGFzIGEgcmVkIGJveC4gTm90ZSB0aGF0IGRveHlnZW4gaWYgdGhlIAotIyBudW1iZXIg
b2YgZGlyZWN0IGNoaWxkcmVuIG9mIHRoZSByb290IG5vZGUgaW4gYSBncmFwaCBpcyBhbHJlYWR5
IGxhcmdlciB0aGFuIAotIyBET1RfR1JBUEhfTUFYX05PREVTIHRoZW4gdGhlIGdyYXBoIHdpbGwg
bm90IGJlIHNob3duIGF0IGFsbC4gQWxzbyBub3RlIAotIyB0aGF0IHRoZSBzaXplIG9mIGEgZ3Jh
cGggY2FuIGJlIGZ1cnRoZXIgcmVzdHJpY3RlZCBieSBNQVhfRE9UX0dSQVBIX0RFUFRILgorIyBU
aGUgRE9UX0dSQVBIX01BWF9OT0RFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBtYXhpbXVt
IG51bWJlciBvZiBub2RlcworIyB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIGdyYXBoLiBJZiB0
aGUgbnVtYmVyIG9mIG5vZGVzIGluIGEgZ3JhcGggYmVjb21lcworIyBsYXJnZXIgdGhhbiB0aGlz
IHZhbHVlLCBkb3h5Z2VuIHdpbGwgdHJ1bmNhdGUgdGhlIGdyYXBoLCB3aGljaCBpcyB2aXN1YWxp
emVkCisjIGJ5IHJlcHJlc2VudGluZyBhIG5vZGUgYXMgYSByZWQgYm94LiBOb3RlIHRoYXQgZG94
eWdlbiBpZiB0aGUgbnVtYmVyIG9mIGRpcmVjdAorIyBjaGlsZHJlbiBvZiB0aGUgcm9vdCBub2Rl
IGluIGEgZ3JhcGggaXMgYWxyZWFkeSBsYXJnZXIgdGhhbgorIyBET1RfR1JBUEhfTUFYX05PREVT
IHRoZW4gdGhlIGdyYXBoIHdpbGwgbm90IGJlIHNob3duIGF0IGFsbC4gQWxzbyBub3RlIHRoYXQK
KyMgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVydGhlciByZXN0cmljdGVkIGJ5IE1BWF9E
T1RfR1JBUEhfREVQVEguCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMDAw
LCBkZWZhdWx0IHZhbHVlOiA1MC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhB
VkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9HUkFQSF9NQVhfTk9ERVMgICAgPSA1MAogCi0j
IFRoZSBNQVhfRE9UX0dSQVBIX0RFUFRIIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG1heGlt
dW0gZGVwdGggb2YgdGhlIAotIyBncmFwaHMgZ2VuZXJhdGVkIGJ5IGRvdC4gQSBkZXB0aCB2YWx1
ZSBvZiAzIG1lYW5zIHRoYXQgb25seSBub2RlcyByZWFjaGFibGUgCi0jIGZyb20gdGhlIHJvb3Qg
YnkgZm9sbG93aW5nIGEgcGF0aCB2aWEgYXQgbW9zdCAzIGVkZ2VzIHdpbGwgYmUgc2hvd24uIE5v
ZGVzIAotIyB0aGF0IGxheSBmdXJ0aGVyIGZyb20gdGhlIHJvb3Qgbm9kZSB3aWxsIGJlIG9taXR0
ZWQuIE5vdGUgdGhhdCBzZXR0aW5nIHRoaXMgCi0jIG9wdGlvbiB0byAxIG9yIDIgbWF5IGdyZWF0
bHkgcmVkdWNlIHRoZSBjb21wdXRhdGlvbiB0aW1lIG5lZWRlZCBmb3IgbGFyZ2UgCi0jIGNvZGUg
YmFzZXMuIEFsc28gbm90ZSB0aGF0IHRoZSBzaXplIG9mIGEgZ3JhcGggY2FuIGJlIGZ1cnRoZXIg
cmVzdHJpY3RlZCBieSAKKyMgVGhlIE1BWF9ET1RfR1JBUEhfREVQVEggdGFnIGNhbiBiZSB1c2Vk
IHRvIHNldCB0aGUgbWF4aW11bSBkZXB0aCBvZiB0aGUgZ3JhcGhzCisjIGdlbmVyYXRlZCBieSBk
b3QuIEEgZGVwdGggdmFsdWUgb2YgMyBtZWFucyB0aGF0IG9ubHkgbm9kZXMgcmVhY2hhYmxlIGZy
b20gdGhlCisjIHJvb3QgYnkgZm9sbG93aW5nIGEgcGF0aCB2aWEgYXQgbW9zdCAzIGVkZ2VzIHdp
bGwgYmUgc2hvd24uIE5vZGVzIHRoYXQgbGF5CisjIGZ1cnRoZXIgZnJvbSB0aGUgcm9vdCBub2Rl
IHdpbGwgYmUgb21pdHRlZC4gTm90ZSB0aGF0IHNldHRpbmcgdGhpcyBvcHRpb24gdG8gMQorIyBv
ciAyIG1heSBncmVhdGx5IHJlZHVjZSB0aGUgY29tcHV0YXRpb24gdGltZSBuZWVkZWQgZm9yIGxh
cmdlIGNvZGUgYmFzZXMuIEFsc28KKyMgbm90ZSB0aGF0IHRoZSBzaXplIG9mIGEgZ3JhcGggY2Fu
IGJlIGZ1cnRoZXIgcmVzdHJpY3RlZCBieQogIyBET1RfR1JBUEhfTUFYX05PREVTLiBVc2luZyBh
IGRlcHRoIG9mIDAgbWVhbnMgbm8gZGVwdGggcmVzdHJpY3Rpb24uCisjIE1pbmltdW0gdmFsdWU6
IDAsIG1heGltdW0gdmFsdWU6IDEwMDAsIGRlZmF1bHQgdmFsdWU6IDAuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBNQVhfRE9UX0dS
QVBIX0RFUFRIICAgID0gMTAwMAogCi0jIFNldCB0aGUgRE9UX1RSQU5TUEFSRU5UIHRhZyB0byBZ
RVMgdG8gZ2VuZXJhdGUgaW1hZ2VzIHdpdGggYSB0cmFuc3BhcmVudCAKLSMgYmFja2dyb3VuZC4g
VGhpcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBiZWNhdXNlIGRvdCBvbiBXaW5kb3dzIGRvZXMg
bm90IAotIyBzZWVtIHRvIHN1cHBvcnQgdGhpcyBvdXQgb2YgdGhlIGJveC4gV2FybmluZzogRGVw
ZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSB1c2VkLCAKLSMgZW5hYmxpbmcgdGhpcyBvcHRpb24gbWF5
IGxlYWQgdG8gYmFkbHkgYW50aS1hbGlhc2VkIGxhYmVscyBvbiB0aGUgZWRnZXMgb2YgCi0jIGEg
Z3JhcGggKGkuZS4gdGhleSBiZWNvbWUgaGFyZCB0byByZWFkKS4KKyMgU2V0IHRoZSBET1RfVFJB
TlNQQVJFTlQgdGFnIHRvIFlFUyB0byBnZW5lcmF0ZSBpbWFnZXMgd2l0aCBhIHRyYW5zcGFyZW50
CisjIGJhY2tncm91bmQuIFRoaXMgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwgYmVjYXVzZSBkb3Qg
b24gV2luZG93cyBkb2VzIG5vdCBzZWVtCisjIHRvIHN1cHBvcnQgdGhpcyBvdXQgb2YgdGhlIGJv
eC4KKyMKKyMgV2FybmluZzogRGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSB1c2VkLCBlbmFibGlu
ZyB0aGlzIG9wdGlvbiBtYXkgbGVhZCB0bworIyBiYWRseSBhbnRpLWFsaWFzZWQgbGFiZWxzIG9u
IHRoZSBlZGdlcyBvZiBhIGdyYXBoIChpLmUuIHRoZXkgYmVjb21lIGhhcmQgdG8KKyMgcmVhZCku
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9UUkFOU1BBUkVOVCAgICAgICAg
PSBOTwogCi0jIFNldCB0aGUgRE9UX01VTFRJX1RBUkdFVFMgdGFnIHRvIFlFUyBhbGxvdyBkb3Qg
dG8gZ2VuZXJhdGUgbXVsdGlwbGUgb3V0cHV0IAotIyBmaWxlcyBpbiBvbmUgcnVuIChpLmUuIG11
bHRpcGxlIC1vIGFuZCAtVCBvcHRpb25zIG9uIHRoZSBjb21tYW5kIGxpbmUpLiBUaGlzIAotIyBt
YWtlcyBkb3QgcnVuIGZhc3RlciwgYnV0IHNpbmNlIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgZG90
ICg+MS44LjEwKSAKLSMgc3VwcG9ydCB0aGlzLCB0aGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4KKyMgU2V0IHRoZSBET1RfTVVMVElfVEFSR0VUUyB0YWcgdG8gWUVTIGFsbG93IGRv
dCB0byBnZW5lcmF0ZSBtdWx0aXBsZSBvdXRwdXQKKyMgZmlsZXMgaW4gb25lIHJ1biAoaS5lLiBt
dWx0aXBsZSAtbyBhbmQgLVQgb3B0aW9ucyBvbiB0aGUgY29tbWFuZCBsaW5lKS4gVGhpcworIyBt
YWtlcyBkb3QgcnVuIGZhc3RlciwgYnV0IHNpbmNlIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgZG90
ICg+MS44LjEwKSBzdXBwb3J0CisjIHRoaXMsIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBk
ZWZhdWx0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBET1RfTVVMVElfVEFSR0VU
UyAgICAgID0gWUVTCiAKLSMgSWYgdGhlIEdFTkVSQVRFX0xFR0VORCB0YWcgaXMgc2V0IHRvIFlF
UyAodGhlIGRlZmF1bHQpIERveHlnZW4gd2lsbCAKLSMgZ2VuZXJhdGUgYSBsZWdlbmQgcGFnZSBl
eHBsYWluaW5nIHRoZSBtZWFuaW5nIG9mIHRoZSB2YXJpb3VzIGJveGVzIGFuZCAKLSMgYXJyb3dz
IGluIHRoZSBkb3QgZ2VuZXJhdGVkIGdyYXBocy4KKyMgSWYgdGhlIEdFTkVSQVRFX0xFR0VORCB0
YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBsZWdlbmQgcGFnZQorIyBl
eHBsYWluaW5nIHRoZSBtZWFuaW5nIG9mIHRoZSB2YXJpb3VzIGJveGVzIGFuZCBhcnJvd3MgaW4g
dGhlIGRvdCBnZW5lcmF0ZWQKKyMgZ3JhcGhzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVT
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlF
Uy4KIAogR0VORVJBVEVfTEVHRU5EICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBET1RfQ0xFQU5V
UCB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIERveHlnZW4gd2lsbCAKLSMgcmVtb3Zl
IHRoZSBpbnRlcm1lZGlhdGUgZG90IGZpbGVzIHRoYXQgYXJlIHVzZWQgdG8gZ2VuZXJhdGUgCi0j
IHRoZSB2YXJpb3VzIGdyYXBocy4KKyMgSWYgdGhlIERPVF9DTEVBTlVQIHRhZyBpcyBzZXQgdG8g
WUVTIGRveHlnZW4gd2lsbCByZW1vdmUgdGhlIGludGVybWVkaWF0ZSBkb3QKKyMgZmlsZXMgdGhh
dCBhcmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdmFyaW91cyBncmFwaHMuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RP
VCBpcyBzZXQgdG8gWUVTLgogCiBET1RfQ0xFQU5VUCAgICAgICAgICAgID0gWUVTCi0KLSMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSMgT3B0aW9ucyByZWxhdGVkIHRvIHRoZSBzZWFyY2ggZW5naW5lCi0j
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgVGhlIFNFQVJDSEVOR0lORSB0YWcgc3BlY2lmaWVzIHdo
ZXRoZXIgb3Igbm90IGEgc2VhcmNoIGVuZ2luZSBzaG91bGQgYmUgCi0jIHVzZWQuIElmIHNldCB0
byBOTyB0aGUgdmFsdWVzIG9mIGFsbCB0YWdzIGJlbG93IHRoaXMgb25lIHdpbGwgYmUgaWdub3Jl
ZC4KLQotU0VBUkNIRU5HSU5FICAgICAgICAgICA9IE5PCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9m
b290ZXIuaHRtbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvZG9jL2Zvb3Rlci5odG1sCmluZGV4IGE2MWQ5NTI4YTE2MTU5ZmI3
YzBjMDY3Zjc0Mzk1NGQxOTE3N2QxMTMuLmEyNGJmMmI5YjQ3ZTk5OTIyNTI4OWZlOGI2MWIyMGVi
OWNmYjVjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2Zvb3Rlci5odG1sCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9j
L2Zvb3Rlci5odG1sCkBAIC0xLDIzICsxLDIxIEBACi08aHI+Ci08dGFibGUgd2lkdGg9IjEwMCUi
PgotICA8dHI+Ci0gICAgPHRkIHdpZHRoPSIxMCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249ImNlbnRl
ciI+Ci0gICAgICA8YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0Ij4gCi0gICAgICA8aW1n
Ci0gICAgICBzcmM9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvc2Zsb2dvLnBocD9ncm91cF9pZD0x
NDQ0NDYiCi0gICAgICB3aWR0aD0iODgiIGhlaWdodD0iMzEiIGJvcmRlcj0iMCIgYWx0PSJTb3Vy
Y2VGb3JnZSBMb2dvIj48L2E+Ci0gICAgPC90ZD4KLSAgICA8dGQgd2lkdGg9IjIwJSIgYWxpZ249
ImxlZnQiIHZhbGlnbj0iY2VudGVyIj4KLSAgICAgIGhvc3RzIHRoaXMgc2l0ZS4KLSAgICA8L3Rk
PgotICAgIDx0ZD4KLSAgICA8L3RkPgotICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iY2Vu
dGVyIj4KLSAgICAgIFNlbmQgY29tbWVudHMgdG86PGJyPgotICAgICAgPGEgaHJlZj0ibWFpbHRv
Ompzb25jcHAtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Ij5Kc29uLWNwcCBEZXZlbG9wZXJz
PC9hPgotICAgIDwvdGQ+Ci0gIDwvdHI+Ci08L3RhYmxlPgotCi08L2JvZHk+IAorPCEtLSBIVE1M
IGZvb3RlciBmb3IgZG94eWdlbiAxLjguMTMtLT4KKzwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+
Cis8IS0tQkVHSU4gR0VORVJBVEVfVFJFRVZJRVctLT4KKzxkaXYgaWQ9Im5hdi1wYXRoIiBjbGFz
cz0ibmF2cGF0aCI+PCEtLSBpZCBpcyBuZWVkZWQgZm9yIHRyZWV2aWV3IGZ1bmN0aW9uISAtLT4K
KyAgPHVsPgorICAgICRuYXZwYXRoCisgICAgPGxpIGNsYXNzPSJmb290ZXIiPiRnZW5lcmF0ZWRi
eQorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZG94eWdlbi5vcmcvaW5kZXguaHRtbCI+CisgICAg
PGltZyBjbGFzcz0iZm9vdGVyIiBzcmM9IiRyZWxwYXRoXmRveHlnZW4ucG5nIiBhbHQ9ImRveHln
ZW4iLz48L2E+ICRkb3h5Z2VudmVyc2lvbiA8L2xpPgorICA8L3VsPgorPC9kaXY+Cis8IS0tRU5E
IEdFTkVSQVRFX1RSRUVWSUVXLS0+Cis8IS0tQkVHSU4gIUdFTkVSQVRFX1RSRUVWSUVXLS0+Cis8
aHIgY2xhc3M9ImZvb3RlciIvPjxhZGRyZXNzIGNsYXNzPSJmb290ZXIiPjxzbWFsbD4KKyRnZW5l
cmF0ZWRieSAmIzE2MDs8YSBocmVmPSJodHRwOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwi
PgorPGltZyBjbGFzcz0iZm9vdGVyIiBzcmM9IiRyZWxwYXRoXmRveHlnZW4ucG5nIiBhbHQ9ImRv
eHlnZW4iLz4KKzwvYT4gJGRveHlnZW52ZXJzaW9uCis8L3NtYWxsPjwvYWRkcmVzcz4KKzwhLS1F
TkQgIUdFTkVSQVRFX1RSRUVWSUVXLS0+Cis8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2RvYy9oZWFkZXIuaHRtbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2hlYWRlci5odG1sCmluZGV4IDFhNmFkNjEy
MGFlY2Y4MWI4Y2U3YzIyNWRkZGQ3NDAxZmNjMmE4NTYuLmYwYjkzZTA4NGQ1YmU2ZDEwZTViODk5
MjQyMGVkNjcwMDRhNDI3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2hlYWRlci5odG1sCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvZG9jL2hlYWRlci5odG1sCkBAIC0xLDI0ICsxLDY0IEBACi08aHRtbD4KKzwhLS0gSFRN
TCBoZWFkZXIgZm9yIGRveHlnZW4gMS44LjEzLS0+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcv
VFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CiA8aGVhZD4KLTx0aXRsZT4KLUpzb25DcHAgLSBK
U09OIGRhdGEgZm9ybWF0IG1hbmlwdWxhdGlvbiBsaWJyYXJ5Ci08L3RpdGxlPgotPGxpbmsgaHJl
Zj0iZG94eWdlbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgotPGxpbmsg
aHJlZj0idGFicy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgorPG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L3hodG1sO2NoYXJzZXQ9VVRG
LTgiLz4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9OSIv
PgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb3h5Z2VuICRkb3h5Z2VudmVyc2lv
biIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xIi8+Cis8bGluayBocmVmPSIkcmVscGF0aF50YWJzLmNzcyIgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iJHJlbHBhdGheanF1ZXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9IiRyZWxwYXRoXmR5bnNlY3Rpb25zLmpzIj48L3NjcmlwdD4KKyR0
cmVldmlldworJHNlYXJjaAorJG1hdGhqYXgKKzxsaW5rIGhyZWY9IiRyZWxwYXRoXiRzdHlsZXNo
ZWV0IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgorJGV4dHJhc3R5bGVzaGVl
dAogPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0b3AiPjwhLS0gZG8gbm90IHJlbW92ZSB0aGlz
IGRpdiwgaXQgaXMgY2xvc2VkIGJ5IGRveHlnZW4hIC0tPgogCi08Ym9keSBiZ2NvbG9yPSIjZmZm
ZmZmIj4gCis8IS0tQkVHSU4gVElUTEVBUkVBLS0+Cis8ZGl2IGlkPSJ0aXRsZWFyZWEiPgorPHRh
YmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CisgPHRib2R5PgorIDx0ciBzdHls
ZT0iaGVpZ2h0OiA1NnB4OyI+CisgIDwhLS1CRUdJTiBQUk9KRUNUX0xPR08tLT4KKyAgPHRkIGlk
PSJwcm9qZWN0bG9nbyI+PGltZyBhbHQ9IkxvZ28iIHNyYz0iJHJlbHBhdGheJHByb2plY3Rsb2dv
Ii8+PC90ZD4KKyAgPCEtLUVORCBQUk9KRUNUX0xPR08tLT4KKyAgPCEtLUJFR0lOIERJU0FCTEVf
SU5ERVgtLT4KKyAgIDwhLS1CRUdJTiBTRUFSQ0hFTkdJTkUtLT4KKyAgIDx0ZD4kc2VhcmNoYm94
PC90ZD4KKyAgIDwhLS1FTkQgU0VBUkNIRU5HSU5FLS0+CisgIDwhLS1FTkQgRElTQUJMRV9JTkRF
WC0tPgorIDwvdHI+CisgPC90Ym9keT4KKzwvdGFibGU+Cis8L2Rpdj4KKzwhLS1FTkQgVElUTEVB
UkVBLS0+Cis8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KIDx0YWJsZSB3aWR0aD0iMTAwJSI+CiAg
IDx0cj4KLSAgICA8dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0iY2VudGVyIj4K
LSAgICAgIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvanNvbmNwcC8i
PgorICAgIDx0ZCB3aWR0aD0iMzAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJjZW50ZXIiPgorICAg
ICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNw
cCI+CiAgICAgICBKc29uQ3BwIHByb2plY3QgcGFnZQogICAgICAgPC9hPgogICAgIDwvdGQ+Ci0g
ICAgPHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJjZW50ZXIiPgotICAgICAg
PGEgaHJlZj0iaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0Ij5Kc29uQ3BwIGhvbWUgcGFn
ZTwvYT4KKyAgICA8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJjZW50ZXIi
PgorICAgICAgPGEgaHJlZj0iaGllcmFyY2h5Lmh0bWwiPgorICAgICAgICBDbGFzc2VzCisgICAg
ICA8L2E+CisgICAgPC90ZD4KKyAgICA8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciIgdmFs
aWduPSJjZW50ZXIiPgorICAgICAgPGEgaHJlZj0ibmFtZXNwYWNlX2pzb24uaHRtbCI+CisgICAg
ICAgIE5hbWVzcGFjZQorICAgICAgPC9hPgorICAgIDwvdGQ+CisgICAgPHRkIHdpZHRoPSIzMCUi
IGFsaWduPSJyaWdodCIgdmFsaWduPSJjZW50ZXIiPgorICAgICAgPGEgaHJlZj0iaHR0cDovL29w
ZW4tc291cmNlLXBhcnNlcnMuZ2l0aHViLmlvL2pzb25jcHAtZG9jcy9kb3h5Z2VuLyI+SnNvbkNw
cCBob21lIHBhZ2U8L2E+CiAgICAgPC90ZD4KICAgPC90cj4KIDwvdGFibGU+CiAKIDxocj4KKzwh
LS0gZW5kIGhlYWRlciBwYXJ0IC0tPgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2MvanNvbmNwcC5kb3gg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL2RvYy9qc29uY3BwLmRveAppbmRleCA5N2NjMTA4ZDMzMWIxYjExZDAwZGY4OGExNmIy
MmRhZTA1M2UxZWY5Li40N2VmYzhhMzU3NmNmNDU0YjVjYWYyNTU4MmEzODRjZDUwYjg1MzY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2RvYy9qc29uY3BwLmRveAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9qc29uY3BwLmRv
eApAQCAtNCwxMSArNCwyMSBAQAogCiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnLyI+SlNP
TiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pPC9hPgogIGlzIGEgbGlnaHR3ZWlnaHQgZGF0
YS1pbnRlcmNoYW5nZSBmb3JtYXQuIAotSXQgY2FuIHJlcHJlc2VudCBpbnRlZ2VyLCByZWFsIG51
bWJlciwgc3RyaW5nLCBhbiBvcmRlcmVkIHNlcXVlbmNlIG9mIHZhbHVlLCBhbmQKLWEgY29sbGVj
dGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzLgogCiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgSlNPTiBk
YXRhOgogXHZlcmJhdGltCit7CisgICAgImVuY29kaW5nIiA6ICJVVEYtOCIsCisgICAgInBsdWct
aW5zIiA6IFsKKyAgICAgICAgInB5dGhvbiIsCisgICAgICAgICJjKysiLAorICAgICAgICAicnVi
eSIKKyAgICAgICAgXSwKKyAgICAiaW5kZW50IiA6IHsgImxlbmd0aCIgOiAzLCAidXNlX3NwYWNl
IjogdHJ1ZSB9Cit9CitcZW5kdmVyYmF0aW0KKzxiPkpzb25DcHA8L2I+IHN1cHBvcnRzIGNvbW1l
bnRzIGFzIDxpPm1ldGEtZGF0YTwvaT46CitcY29kZQogLy8gQ29uZmlndXJhdGlvbiBvcHRpb25z
CiB7CiAgICAgLy8gRGVmYXVsdCBlbmNvZGluZyBmb3IgdGV4dApAQCAtMTcsMjEgKzI3LDIyIEBA
IEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBKU09OIGRhdGE6CiAgICAgLy8gUGx1Zy1pbnMgbG9hZGVk
IGF0IHN0YXJ0LXVwCiAgICAgInBsdWctaW5zIiA6IFsKICAgICAgICAgInB5dGhvbiIsCi0gICAg
ICAgICJjKysiLAorICAgICAgICAiYysrIiwgIC8vIHRyYWlsaW5nIGNvbW1lbnQKICAgICAgICAg
InJ1YnkiCiAgICAgICAgIF0sCiAgICAgICAgIAogICAgIC8vIFRhYiBpbmRlbnQgc2l6ZQotICAg
ICJpbmRlbnQiIDogeyAibGVuZ3RoIiA6IDMsICJ1c2Vfc3BhY2UiOiB0cnVlIH0KKyAgICAvLyAo
bXVsdGktbGluZSBjb21tZW50KQorICAgICJpbmRlbnQiIDogeyAvKmVtYmVkZGVkIGNvbW1lbnQq
LyAibGVuZ3RoIiA6IDMsICJ1c2Vfc3BhY2UiOiB0cnVlIH0KIH0KLVxlbmR2ZXJiYXRpbQorXGVu
ZGNvZGUKIAogXHNlY3Rpb24gX2ZlYXR1cmVzIEZlYXR1cmVzCiAtIHJlYWQgYW5kIHdyaXRlIEpT
T04gZG9jdW1lbnQKLS0gYXR0YWNoIEMgYW5kIEMrKyBzdHlsZSBjb21tZW50cyB0byBlbGVtZW50
IGR1cmluZyBwYXJzaW5nCistIGF0dGFjaCBDKysgc3R5bGUgY29tbWVudHMgdG8gZWxlbWVudCBk
dXJpbmcgcGFyc2luZwogLSByZXdyaXRlIEpTT04gZG9jdW1lbnQgcHJlc2VydmluZyBvcmlnaW5h
bCBjb21tZW50cwogCi1Ob3RlczogQ29tbWVudHMgdXNlZCB0byBiZSBzdXBwb3J0ZWQgaW4gSlNP
TiBidXQgd2hlcmUgcmVtb3ZlZCBmb3IgCitOb3RlczogQ29tbWVudHMgdXNlZCB0byBiZSBzdXBw
b3J0ZWQgaW4gSlNPTiBidXQgd2VyZSByZW1vdmVkIGZvcgogcG9ydGFiaWxpdHkgKEMgbGlrZSBj
b21tZW50cyBhcmUgbm90IHN1cHBvcnRlZCBpbiBQeXRob24pLiBTaW5jZQogY29tbWVudHMgYXJl
IHVzZWZ1bCBpbiBjb25maWd1cmF0aW9uL2lucHV0IGZpbGUsIHRoaXMgZmVhdHVyZSB3YXMKIHBy
ZXNlcnZlZC4KQEAgLTM5LDg4ICs1MCwxMTUgQEAgcHJlc2VydmVkLgogXHNlY3Rpb24gX2V4YW1w
bGUgQ29kZSBleGFtcGxlCiAKIFxjb2RlCi1Kc29uOjpWYWx1ZSByb290OyAgIC8vIHdpbGwgY29u
dGFpbnMgdGhlIHJvb3QgdmFsdWUgYWZ0ZXIgcGFyc2luZy4KLUpzb246OlJlYWRlciByZWFkZXI7
Ci1ib29sIHBhcnNpbmdTdWNjZXNzZnVsID0gcmVhZGVyLnBhcnNlKCBjb25maWdfZG9jLCByb290
ICk7Ci1pZiAoICFwYXJzaW5nU3VjY2Vzc2Z1bCApCi17Ci0gICAgLy8gcmVwb3J0IHRvIHRoZSB1
c2VyIHRoZSBmYWlsdXJlIGFuZCB0aGVpciBsb2NhdGlvbnMgaW4gdGhlIGRvY3VtZW50LgotICAg
IHN0ZDo6Y291dCAgPDwgIkZhaWxlZCB0byBwYXJzZSBjb25maWd1cmF0aW9uXG4iCi0gICAgICAg
ICAgICAgICA8PCByZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOwotICAgIHJldHVy
bjsKLX0KK0pzb246OlZhbHVlIHJvb3Q7ICAgLy8gJ3Jvb3QnIHdpbGwgY29udGFpbiB0aGUgcm9v
dCB2YWx1ZSBhZnRlciBwYXJzaW5nLgorc3RkOjpjaW4gPj4gcm9vdDsKKworLy8gWW91IGNhbiBh
bHNvIHJlYWQgaW50byBhIHBhcnRpY3VsYXIgc3ViLXZhbHVlLgorc3RkOjpjaW4gPj4gcm9vdFsi
c3VidHJlZSJdOwogCi0vLyBHZXQgdGhlIHZhbHVlIG9mIHRoZSBtZW1iZXIgb2Ygcm9vdCBuYW1l
ZCAnZW5jb2RpbmcnLCByZXR1cm4gJ1VURi04JyBpZiB0aGVyZSBpcyBubwotLy8gc3VjaCBtZW1i
ZXIuCisvLyBHZXQgdGhlIHZhbHVlIG9mIHRoZSBtZW1iZXIgb2Ygcm9vdCBuYW1lZCAnZW5jb2Rp
bmcnLAorLy8gYW5kIHJldHVybiAnVVRGLTgnIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbWVtYmVyLgog
c3RkOjpzdHJpbmcgZW5jb2RpbmcgPSByb290LmdldCgiZW5jb2RpbmciLCAiVVRGLTgiICkuYXNT
dHJpbmcoKTsKLS8vIEdldCB0aGUgdmFsdWUgb2YgdGhlIG1lbWJlciBvZiByb290IG5hbWVkICdl
bmNvZGluZycsIHJldHVybiBhICdudWxsJyB2YWx1ZSBpZgorCisvLyBHZXQgdGhlIHZhbHVlIG9m
IHRoZSBtZW1iZXIgb2Ygcm9vdCBuYW1lZCAncGx1Zy1pbnMnOyByZXR1cm4gYSAnbnVsbCcgdmFs
dWUgaWYKIC8vIHRoZXJlIGlzIG5vIHN1Y2ggbWVtYmVyLgogY29uc3QgSnNvbjo6VmFsdWUgcGx1
Z2lucyA9IHJvb3RbInBsdWctaW5zIl07Ci1mb3IgKCBpbnQgaW5kZXggPSAwOyBpbmRleCA8IHBs
dWdpbnMuc2l6ZSgpOyArK2luZGV4ICkgIC8vIEl0ZXJhdGVzIG92ZXIgdGhlIHNlcXVlbmNlIGVs
ZW1lbnRzLgorCisvLyBJdGVyYXRlIG92ZXIgdGhlIHNlcXVlbmNlIGVsZW1lbnRzLgorZm9yICgg
aW50IGluZGV4ID0gMDsgaW5kZXggPCBwbHVnaW5zLnNpemUoKTsgKytpbmRleCApCiAgICBsb2Fk
UGx1Z0luKCBwbHVnaW5zW2luZGV4XS5hc1N0cmluZygpICk7CiAgICAKLXNldEluZGVudExlbmd0
aCggcm9vdFsiaW5kZW50Il0uZ2V0KCJsZW5ndGgiLCAzKS5hc0ludCgpICk7Ci1zZXRJbmRlbnRV
c2VTcGFjZSggcm9vdFsiaW5kZW50Il0uZ2V0KCJ1c2Vfc3BhY2UiLCB0cnVlKS5hc0Jvb2woKSAp
OworLy8gVHJ5IG90aGVyIGRhdGF0eXBlcy4gU29tZSBhcmUgYXV0by1jb252ZXJ0aWJsZSB0byBv
dGhlcnMuCitmb286OnNldEluZGVudExlbmd0aCggcm9vdFsiaW5kZW50Il0uZ2V0KCJsZW5ndGgi
LCAzKS5hc0ludCgpICk7Citmb286OnNldEluZGVudFVzZVNwYWNlKCByb290WyJpbmRlbnQiXS5n
ZXQoInVzZV9zcGFjZSIsIHRydWUpLmFzQm9vbCgpICk7CiAKLS8vIC4uLgotLy8gQXQgYXBwbGlj
YXRpb24gc2h1dGRvd24gdG8gbWFrZSB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZG9jdW1lbnQ6Ci0v
LyBTaW5jZSBKc29uOjpWYWx1ZSBoYXMgaW1wbGljaXQgY29uc3RydWN0b3IgZm9yIGFsbCB2YWx1
ZSB0eXBlcywgaXQgaXMgbm90Ci0vLyBuZWNlc3NhcnkgdG8gZXhwbGljaXRseSBjb25zdHJ1Y3Qg
dGhlIEpzb246OlZhbHVlIG9iamVjdDoKLXJvb3RbImVuY29kaW5nIl0gPSBnZXRDdXJyZW50RW5j
b2RpbmcoKTsKLXJvb3RbImluZGVudCJdWyJsZW5ndGgiXSA9IGdldEN1cnJlbnRJbmRlbnRMZW5n
dGgoKTsKLXJvb3RbImluZGVudCJdWyJ1c2Vfc3BhY2UiXSA9IGdldEN1cnJlbnRJbmRlbnRVc2VT
cGFjZSgpOwotCi1Kc29uOjpTdHlsZWRXcml0ZXIgd3JpdGVyOwotLy8gTWFrZSBhIG5ldyBKU09O
IGRvY3VtZW50IGZvciB0aGUgY29uZmlndXJhdGlvbi4gUHJlc2VydmUgb3JpZ2luYWwgY29tbWVu
dHMuCi1zdGQ6OnN0cmluZyBvdXRwdXRDb25maWcgPSB3cml0ZXIud3JpdGUoIHJvb3QgKTsKLQot
Ly8gWW91IGNhbiBhbHNvIHVzZSBzdHJlYW1zLiAgVGhpcyB3aWxsIHB1dCB0aGUgY29udGVudHMg
b2YgYW55IEpTT04KLS8vIHN0cmVhbSBhdCBhIHBhcnRpY3VsYXIgc3ViLXZhbHVlLCBpZiB5b3Un
ZCBsaWtlLgotc3RkOjpjaW4gPj4gcm9vdFsic3VidHJlZSJdOworLy8gU2luY2UgSnNvbjo6VmFs
dWUgaGFzIGFuIGltcGxpY2l0IGNvbnN0cnVjdG9yIGZvciBhbGwgdmFsdWUgdHlwZXMsIGl0IGlz
IG5vdAorLy8gbmVjZXNzYXJ5IHRvIGV4cGxpY2l0bHkgY29uc3RydWN0IHRoZSBKc29uOjpWYWx1
ZSBvYmplY3QuCityb290WyJlbmNvZGluZyJdID0gZm9vOjpnZXRDdXJyZW50RW5jb2RpbmcoKTsK
K3Jvb3RbImluZGVudCJdWyJsZW5ndGgiXSA9IGZvbzo6Z2V0Q3VycmVudEluZGVudExlbmd0aCgp
Oworcm9vdFsiaW5kZW50Il1bInVzZV9zcGFjZSJdID0gZm9vOjpnZXRDdXJyZW50SW5kZW50VXNl
U3BhY2UoKTsKIAotLy8gQW5kIHlvdSBjYW4gd3JpdGUgdG8gYSBzdHJlYW0sIHVzaW5nIHRoZSBT
dHlsZWRXcml0ZXIgYXV0b21hdGljYWxseS4KKy8vIElmIHlvdSBsaWtlIHRoZSBkZWZhdWx0cywg
eW91IGNhbiBpbnNlcnQgZGlyZWN0bHkgaW50byBhIHN0cmVhbS4KIHN0ZDo6Y291dCA8PCByb290
OworLy8gT2YgY291cnNlLCB5b3UgY2FuIHdyaXRlIHRvIGBzdGQ6Om9zdHJpbmdzdHJlYW1gIGlm
IHlvdSBwcmVmZXIuCisKKy8vIElmIGRlc2lyZWQsIHJlbWVtYmVyIHRvIGFkZCBhIGxpbmVmZWVk
IGFuZCBmbHVzaC4KK3N0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CiBcZW5kY29kZQogCi1cc2VjdGlv
biBfcGJ1aWxkIEJ1aWxkIGluc3RydWN0aW9ucwotVGhlIGJ1aWxkIGluc3RydWN0aW9ucyBhcmUg
bG9jYXRlZCBpbiB0aGUgZmlsZSAKLTxhIEhSRUY9IlJFQURNRS50eHQiPlJFQURNRS50eHQ8L2E+
IGluIHRoZSB0b3AtZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LgorXHNlY3Rpb24gX2FkdmFuY2Vk
IEFkdmFuY2VkIHVzYWdlCiAKLVBlcm1hbmVudCBsaW5rIHRvIHRoZSBsYXRlc3QgcmV2aXNpb24g
b2YgdGhlIGZpbGUgaW4gc3VidmVyc2lvbjogCi08YSBIUkVGPSJodHRwOi8vanNvbmNwcC5zdm4u
c291cmNlZm9yZ2UubmV0L3ZpZXd2Yy9qc29uY3BwL3RydW5rL2pzb25jcHAvUkVBRE1FLnR4dD92
aWV3PW1hcmt1cCI+bGF0ZXN0IFJFQURNRS50eHQ8L2E+CitDb25maWd1cmUgKmJ1aWxkZXJzKiB0
byBjcmVhdGUgKnJlYWRlcnMqIGFuZCAqd3JpdGVycyouIEZvcgorY29uZmlndXJhdGlvbiwgd2Ug
dXNlIG91ciBvd24gYEpzb246OlZhbHVlYCAocmF0aGVyIHRoYW4KK3N0YW5kYXJkIHNldHRlcnMv
Z2V0dGVycykgc28gdGhhdCB3ZSBjYW4gYWRkCitmZWF0dXJlcyB3aXRob3V0IGxvc2luZyBiaW5h
cnktY29tcGF0aWJpbGl0eS4KIAotXHNlY3Rpb24gX3Bkb3dubG9hZCBEb3dubG9hZAotVGhlIHNv
dXJjZXMgY2FuIGJlIGRvd25sb2FkZWQgZnJvbSAKLTxhIEhSRUY9Imh0dHA6Ly9zb3VyY2Vmb3Jn
ZS5uZXQvcHJvamVjdHMvanNvbmNwcC9maWxlcy8iPlNvdXJjZUZvcmdlIGRvd25sb2FkIHBhZ2U8
L2E+LgorXGNvZGUKKy8vIEZvciBjb252ZW5pZW5jZSwgdXNlIGB3cml0ZVN0cmluZygpYCB3aXRo
IGEgc3BlY2lhbGl6ZWQgYnVpbGRlci4KK0pzb246OlN0cmVhbVdyaXRlckJ1aWxkZXIgd2J1aWxk
ZXI7Cit3YnVpbGRlclsiaW5kZW50YXRpb24iXSA9ICJcdCI7CitzdGQ6OnN0cmluZyBkb2N1bWVu
dCA9IEpzb246OndyaXRlU3RyaW5nKHdidWlsZGVyLCByb290KTsKKworLy8gSGVyZSwgdXNpbmcg
YSBzcGVjaWFsaXplZCBCdWlsZGVyLCB3ZSBkaXNjYXJkIGNvbW1lbnRzIGFuZAorLy8gcmVjb3Jk
IGVycm9ycyBhcyB3ZSBwYXJzZS4KK0pzb246OkNoYXJSZWFkZXJCdWlsZGVyIHJidWlsZGVyOwor
cmJ1aWxkZXJbImNvbGxlY3RDb21tZW50cyJdID0gZmFsc2U7CitzdGQ6OnN0cmluZyBlcnJzOwor
Ym9vbCBvayA9IEpzb246OnBhcnNlRnJvbVN0cmVhbShyYnVpbGRlciwgc3RkOjpjaW4sICZyb290
LCAmZXJycyk7CitcZW5kY29kZQogCi1UaGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHNvdXJjZSBp
cyBhdmFpbGFibGUgaW4gdGhlIHByb2plY3QncyBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnk6IAotPGEg
SFJFRj0iaHR0cDovL2pzb25jcHAuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2pzb25jcHAv
dHJ1bmsvIj4KLWh0dHA6Ly9qc29uY3BwLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9qc29u
Y3BwL3RydW5rLzwvYT4KK1llcywgY29tcGlsZS10aW1lIGNvbmZpZ3VyYXRpb24tY2hlY2tpbmcg
d291bGQgYmUgaGVscGZ1bCwKK2J1dCBgSnNvbjo6VmFsdWVgIGxldHMgeW91Cit3cml0ZSBhbmQg
cmVhZCB0aGUgYnVpbGRlciBjb25maWd1cmF0aW9uLCB3aGljaCBpcyBiZXR0ZXIhIEluIG90aGVy
IHdvcmRzLAoreW91IGNhbiBjb25maWd1cmUgeW91ciBKU09OIHBhcnNlciB1c2luZyBKU09OLgog
Ci1UbyBjaGVja291dCB0aGUgc291cmNlLCBzZWUgdGhlIGZvbGxvd2luZyAKLTxhIEhSRUY9Imh0
dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvc2NtLz90eXBlPXN2biZncm91cF9pZD0xNDQ0NDYiPmluc3Ry
dWN0aW9uczwvYT4uCitDaGFyUmVhZGVycyBhbmQgU3RyZWFtV3JpdGVycyBhcmUgbm90IHRocmVh
ZC1zYWZlLCBidXQgdGhleSBhcmUgcmUtdXNhYmxlLgorXGNvZGUKK0pzb246OkNoYXJSZWFkZXJC
dWlsZGVyIHJidWlsZGVyOworY2ZnID4+IHJidWlsZGVyLnNldHRpbmdzXzsKK3N0ZDo6dW5pcXVl
X3B0cjxKc29uOjpDaGFyUmVhZGVyPiBjb25zdCByZWFkZXIocmJ1aWxkZXIubmV3Q2hhclJlYWRl
cigpKTsKK3JlYWRlci0+cGFyc2Uoc3RhcnQsIHN0b3AsICZ2YWx1ZTEsICZlcnJzKTsKKy8vIC4u
LgorcmVhZGVyLT5wYXJzZShzdGFydCwgc3RvcCwgJnZhbHVlMiwgJmVycnMpOworLy8gZXRjLgor
XGVuZGNvZGUKIAotXHNlY3Rpb24gX25ld3MgV2hhdCdzIE5ldz8KLVRoZSBkZXNjcmlwdGlvbiBv
ZiBsYXRlc3QgY2hhbmdlcyBjYW4gYmUgZm91bmQgaW4gCi08YSBIUkVGPSJORVdTLnR4dCI+TkVX
Uy50eHQ8L2E+IGluIHRoZSB0b3AtZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LgorXHNlY3Rpb24g
X3BidWlsZCBCdWlsZCBpbnN0cnVjdGlvbnMKK1RoZSBidWlsZCBpbnN0cnVjdGlvbnMgYXJlIGxv
Y2F0ZWQgaW4gdGhlIGZpbGUgCis8YSBIUkVGPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3Vy
Y2UtcGFyc2Vycy9qc29uY3BwL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCI+UkVBRE1FLm1kPC9hPiBp
biB0aGUgdG9wLWRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC4KIAotUGVybWFuZW50IGxpbmsgdG8g
dGhlIGxhdGVzdCByZXZpc2lvbiBvZiB0aGUgZmlsZSBpbiBzdWJ2ZXJzaW9uOiAKLTxhIEhSRUY9
Imh0dHA6Ly9zdm4uc291cmNlZm9yZ2UubmV0L3ZpZXdjdnMuY2dpL2pzb25jcHAvUkVBRE1FLnR4
dD92aWV3PW1hcmt1cCI+bGF0ZXN0IE5FV1MudHh0PC9hPgorVGhlIGxhdGVzdCB2ZXJzaW9uIG9m
IHRoZSBzb3VyY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBwcm9qZWN0J3MgR2l0SHViIHJlcG9zaXRv
cnk6Cis8YSBIUkVGPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29u
Y3BwLyI+Citqc29uY3BwPC9hPgogCi1cc2VjdGlvbiBfcGxpbmtzIFByb2plY3QgbGlua3MKLS0g
PGEgSFJFRj0iaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0Ij5qc29uLWNwcCBob21lPC9h
PgotLSA8YSBIUkVGPSJodHRwOi8vd3d3LnNvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9qc29uY3Bw
LyI+anNvbi1jcHAgc291cmNlZm9yZ2UgcHJvamVjdDwvYT4KK1xzZWN0aW9uIF9uZXdzIFdoYXQn
cyBOZXc/CitUaGUgZGVzY3JpcHRpb24gb2YgbGF0ZXN0IGNoYW5nZXMgY2FuIGJlIGZvdW5kIGlu
IAorPGEgSFJFRj0iaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNw
cC93aWtpL05FV1MiPgorICB0aGUgTkVXUyB3aWtpCis8L2E+LgogCiBcc2VjdGlvbiBfcmxpbmtz
IFJlbGF0ZWQgbGlua3MKIC0gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZy8iPkpTT048L2E+
IFNwZWNpZmljYXRpb24gYW5kIGFsdGVybmF0ZSBsYW5ndWFnZSBpbXBsZW1lbnRhdGlvbnMuCiAt
IDxhIEhSRUY9Imh0dHA6Ly93d3cueWFtbC5vcmcvIj5ZQU1MPC9hPiBBIGRhdGEgZm9ybWF0IGRl
c2lnbmVkIGZvciBodW1hbiByZWFkYWJpbGl0eS4KIC0gPGEgSFJFRj0iaHR0cDovL3d3dy5jbC5j
YW0uYWMudWsvfm1nazI1L3VuaWNvZGUuaHRtbCI+VVRGLTggYW5kIFVuaWNvZGUgRkFRPC9hPi4K
IAorXHNlY3Rpb24gX3BsaW5rcyBPbGQgcHJvamVjdCBsaW5rcworLSA8YSBocmVmPSJodHRwczov
L3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9qc29uY3BwLyI+aHR0cHM6Ly9zb3VyY2Vmb3JnZS5u
ZXQvcHJvamVjdHMvanNvbmNwcC88L2E+CistIDxhIGhyZWY9Imh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldCI+aHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0PC9hPgorLSA8YSBocmVm
PSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2pzb25jcHAvZmlsZXMvIj5odHRwOi8v
c291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2pzb25jcHAvZmlsZXMvPC9hPgorLSA8YSBocmVmPSJo
dHRwOi8vanNvbmNwcC5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvanNvbmNwcC90cnVuay8i
Pmh0dHA6Ly9qc29uY3BwLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9qc29uY3BwL3RydW5r
LzwvYT4KKy0gPGEgaHJlZj0iaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L29sZC5odG1s
Ij5odHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvb2xkLmh0bWw8L2E+CisKIFxzZWN0aW9u
IF9saWNlbnNlIExpY2Vuc2UKLVNlZSBmaWxlIDxhIEhSRUY9IkxJQ0VOU0UiPkxJQ0VOU0U8L2E+
IGluIHRoZSB0b3AtZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LgorU2VlIGZpbGUgPGEgaHJlZj0i
aHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcC9ibG9iL21hc3Rl
ci9MSUNFTlNFIj48Y29kZT5MSUNFTlNFPC9jb2RlPjwvYT4gaW4gdGhlIHRvcC1kaXJlY3Rvcnkg
b2YgdGhlIHByb2plY3QuCiAKIEJhc2ljYWxseSBKc29uQ3BwIGlzIGxpY2Vuc2VkIHVuZGVyIE1J
VCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgCiBhbmQgcmVjb2duaXplZCBp
biB5b3VyIGp1cmlzZGljdGlvbi4KIAotXGF1dGhvciBCYXB0aXN0ZSBMZXBpbGxldXIgPGJsZXBA
dXNlcnMuc291cmNlZm9yZ2UubmV0PgorXGF1dGhvciBCYXB0aXN0ZSBMZXBpbGxldXIgPGJsZXBA
dXNlcnMuc291cmNlZm9yZ2UubmV0PiAob3JpZ2luYXRvcikKK1xhdXRob3IgQ2hyaXN0b3BoZXIg
RHVubiA8Y2R1bm4yMDAxQGdtYWlsLmNvbT4gKHByaW1hcnkgbWFpbnRhaW5lcikKK1x2ZXJzaW9u
IFxpbmNsdWRlIHZlcnNpb24KK1dlIG1ha2Ugc3Ryb25nIGd1YXJhbnRlZXMgYWJvdXQgYmluYXJ5
LWNvbXBhdGliaWxpdHksIGNvbnNpc3RlbnQgd2l0aAorPGEgaHJlZj0iaHR0cDovL2Fwci5hcGFj
aGUub3JnL3ZlcnNpb25pbmcuaHRtbCI+dGhlIEFwYWNoZSB2ZXJzaW9uaW5nIHNjaGVtZTwvYT4u
Citcc2EgdmVyc2lvbi5oCiAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2Mvcm9hZG1hcC5kb3ggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2RvYy9yb2FkbWFwLmRveAppbmRleCBlNmZjMTdhYTY4ZDNlZDVkZmI3ZGQ1NDY3ZGJmMWZi
ZTJiOTM5Yjg2Li4xMjI5NGJiYmQyOWQxOTg2OWIxOGI2YzI3NGQzYTNlMTliOWZkODliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL2RvYy9yb2FkbWFwLmRveAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9yb2FkbWFwLmRveApA
QCAtMSwzNyArMSwzIEBACiAvKiEgXHBhZ2Ugcm9hZG1hcCBKc29uQ3BwIHJvYWRtYXAKLSAgXHNl
Y3Rpb24gbXNfcmVsZWFzZSBNYWtlcyBKc29uQ3BwIHJlYWR5IGZvciByZWxlYXNlCi0gIC0gQnVp
bGQgc3lzdGVtIGNsZWFuLXVwOgotCS0gRml4IGJ1aWxkIG9uIFdpbmRvd3MgKHNoYXJlZC1saWJy
YXJ5IGJ1aWxkIGlzIGJyb2tlbikKLQktIEFkZCBlbmFibGUvZGlzYWJsZSBmbGFnIGZvciBzdGF0
aWMgYW5kIHNoYXJlZCBsaWJyYXJ5IGJ1aWxkCi0JLSBFbmhhbmNlIGhlbHAKLSAgLSBQbGF0Zm9y
bSBwb3J0YWJpbGl0eSBjaGVjazogKE5vdGVzOiB3YXMgb2sgb24gbGFzdCBjaGVjaykKLQktIGxp
bnV4L2djYywgCi0JLSBzb2xhcmlzL2NjLCAKLQktIHdpbmRvd3MvbXN2YzY3OCwgCi0JLSBhaXgv
dmFjcHAKLSAgLSBBZGQgSnNvbkNwcCB2ZXJzaW9uIHRvIGhlYWRlciBhcyBudW1lcmljIGZvciB1
c2UgaW4gcHJlcHJvY2Vzc29yIHRlc3QKLSAgLSBSZW1vdmUgYnVnZ3kgZXhwZXJpbWVudGFsIGhh
c2ggc3R1ZmYKLSAgXHNlY3Rpb24gbXNfc3RyaWN0IEFkZHMgYSBzdHJpY3QgbW9kZSB0byByZWFk
ZXIvcGFyc2VyCi0JU3RyaWN0IEpTT04gc3VwcG9ydCBhcyBzcGVjaWZpYyBpbiBSRkMgNDYyNyAo
aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjNDYyNy50eHQ/bnVtYmVyPTQ2MjcpLgotCS0gRW5m
b3JjZSBvbmx5IG9iamVjdCBvciBhcnJheSBhcyByb290IGVsZW1lbnQKLQktIERpc2FibGUgY29t
bWVudCBzdXBwb3J0Ci0gICAgLSBHZXQganNvbmNoZWNrZXIgZmFpbGluZyB0ZXN0cyB0byBwYXNz
IGluIHN0cmljdCBtb2RlCi0gIFxzZWN0aW9uIG1zX3dyaXRlciBXcml0dGVyIGNvbnRyb2wKLSAg
ICBQcm92aWRlcyBtb3JlIGNvbnRyb2wgdG8gZGV0ZXJtaW5lIGhvdyBzcGVjaWZpYyBpdGVtcyBh
cmUgc2VyaWFsaXplZCB3aGVuIEpTT04gYWxsb3cgY2hvaWNlOgotCS0gT3B0aW9uYWxseSBhbGxv
dyBlc2NhcGluZyBvZiBub24tQVNDSUkgY2hhcmFjdGVycyB1c2luZyB1bmljb2RlIGVzY2FwZSBz
ZXF1ZW5jZSAiXFx1Ii4KLQktIE9wdGlvbmFsbHkgYWxsb3cgZXNjYXBpbmcgb2YgIi8iIHVzaW5n
ICJcLyIuCi0gIFxzZWN0aW9uIG1zX3NlcGFyYXRpb24gRXhwb3NlIGpzb24gcmVhZGVyL3dyaXRl
ciBBUEkgdGhhdCBkbyBub3QgaW1wb3NlIHVzaW5nIEpzb246OlZhbHVlLgotCVNvbWUgdHlwaWNh
bCB1c2UtY2FzZSBpbnZvbHZlIGFuIGFwcGxpY2F0aW9uIHNwZWNpZmljIHN0cnVjdHVyZSB0by9m
cm9tIGEgSlNPTiBkb2N1bWVudC4KLSAgICAtIEV2ZW50IGJhc2UgcGFyc2VyIHRvIGFsbG93IHVu
c2VyaWFsaXppbmcgYSBKc29uIGRvY3VtZW50IGRpcmVjdGx5IGluIGRhdGFzdHJ1Y3R1cmUgaW5z
dGVhZCBvZgotICAgICAgdXNpbmcgdGhlIGludGVybWVkaWF0ZSBKc29uOjpWYWx1ZS4KLSAgICAt
IFN0cmVhbSBiYXNlZCBwYXJzZXIgdG8gc2VyaWFsaXplZCBhIEpzb24gZG9jdW1lbnQgd2l0aG91
dCB1c2luZyBKc29uOjpWYWx1ZSBhcyBpbnB1dC4KLQktIFBlcmZvcm1hbmNlIG9yaWVudGVkIHBh
cnNlci93cml0ZXI6Ci0JCS0gUHJvdmlkZXMgYW4gZXZlbnQgYmFzZWQgcGFyc2VyLiBTaG91bGQg
YWxsb3cgcHVsbGluZyAmIHNraXBwaW5nIGV2ZW50cyBmb3IgZWFzZSBvZiB1c2UuCi0JCS0gUHJv
dmlkZXMgYSBKU09OIGRvY3VtZW50IGJ1aWxkZXI6IGZhc3Qgb25seS4KLSAgXHNlY3Rpb24gbXNf
cGVyZm8gUGVyZm9ybWFuY2UgdHVuaW5nCi0gICAgLSBQcm92aWRlcyBzdXBwb3J0IGZvciBzdGF0
aWMgcHJvcGVydHkgbmFtZSBkZWZpbml0aW9uIGF2b2lkaW5nIGFsbG9jYXRpb24gCi0gICAgLSBT
dGF0aWMgcHJvcGVydHkgZGljdGlvbm5hcnkgY2FuIGJlIHByb3ZpZGVkIHRvIEpTT04gcmVhZGVy
Ci0gICAgLSBQZXJmb3JtYW5jZSBzY2VuYXJpbyAmIGJlbmNobWFya2luZwotICBcc2VjdGlvbiB0
ZXN0aW5nIFRlc3RpbmcKLSAgICAtIEFkZHMgbW9yZSB0ZXN0cyBmb3IgdW5pY29kZSBwYXJzaW5n
IChlLmcuIGluY2x1ZGluZyBzdXJyb2dhdGUgYW5kIGVycm9yIGRldGVjdGlvbikuCisgIE1vdmVk
IHRvOiBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3dpa2kv
Um9hZG1hcAogKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL3dlYl9kb3h5ZmlsZS5pbiBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
ZG9jL3dlYl9kb3h5ZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjA5ZGNjYWVjNTAwZTMxNTdmMWYyNGVm
M2EzNjYyZGNhZGQyZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2Mvd2ViX2RveHlmaWxl
LmluCkBAIC0wLDAgKzEsMjI5MCBAQAorIyBEb3h5ZmlsZSAxLjguNQorCisjIFRoaXMgZmlsZSBk
ZXNjcmliZXMgdGhlIHNldHRpbmdzIHRvIGJlIHVzZWQgYnkgdGhlIGRvY3VtZW50YXRpb24gc3lz
dGVtCisjIGRveHlnZW4gKHd3dy5kb3h5Z2VuLm9yZykgZm9yIGEgcHJvamVjdC4KKyMKKyMgQWxs
IHRleHQgYWZ0ZXIgYSBkb3VibGUgaGFzaCAoIyMpIGlzIGNvbnNpZGVyZWQgYSBjb21tZW50IGFu
ZCBpcyBwbGFjZWQgaW4KKyMgZnJvbnQgb2YgdGhlIFRBRyBpdCBpcyBwcmVjZWRpbmcuCisjCisj
IEFsbCB0ZXh0IGFmdGVyIGEgc2luZ2xlIGhhc2ggKCMpIGlzIGNvbnNpZGVyZWQgYSBjb21tZW50
IGFuZCB3aWxsIGJlIGlnbm9yZWQuCisjIFRoZSBmb3JtYXQgaXM6CisjIFRBRyA9IHZhbHVlIFt2
YWx1ZSwgLi4uXQorIyBGb3IgbGlzdHMsIGl0ZW1zIGNhbiBhbHNvIGJlIGFwcGVuZGVkIHVzaW5n
OgorIyBUQUcgKz0gdmFsdWUgW3ZhbHVlLCAuLi5dCisjIFZhbHVlcyB0aGF0IGNvbnRhaW4gc3Bh
Y2VzIHNob3VsZCBiZSBwbGFjZWQgYmV0d2VlbiBxdW90ZXMgKFwiIFwiKS4KKworIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorIyBQcm9qZWN0IHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zCisjLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyMgVGhpcyB0YWcgc3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1c2Vk
IGZvciBhbGwgY2hhcmFjdGVycyBpbiB0aGUgY29uZmlnIGZpbGUKKyMgdGhhdCBmb2xsb3cuIFRo
ZSBkZWZhdWx0IGlzIFVURi04IHdoaWNoIGlzIGFsc28gdGhlIGVuY29kaW5nIHVzZWQgZm9yIGFs
bCB0ZXh0CisjIGJlZm9yZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGlzIHRhZy4gRG94eWdl
biB1c2VzIGxpYmljb252IChvciB0aGUgaWNvbnYKKyMgYnVpbHQgaW50byBsaWJjKSBmb3IgdGhl
IHRyYW5zY29kaW5nLiBTZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252Cisj
IGZvciB0aGUgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBVVEYtOC4KKworRE9YWUZJTEVfRU5DT0RJTkcgICAgICA9IFVURi04CisKKyMgVGhlIFBS
T0pFQ1RfTkFNRSB0YWcgaXMgYSBzaW5nbGUgd29yZCAob3IgYSBzZXF1ZW5jZSBvZiB3b3JkcyBz
dXJyb3VuZGVkIGJ5CisjIGRvdWJsZS1xdW90ZXMsIHVubGVzcyB5b3UgYXJlIHVzaW5nIERveHl3
aXphcmQpIHRoYXQgc2hvdWxkIGlkZW50aWZ5IHRoZQorIyBwcm9qZWN0IGZvciB3aGljaCB0aGUg
ZG9jdW1lbnRhdGlvbiBpcyBnZW5lcmF0ZWQuIFRoaXMgbmFtZSBpcyB1c2VkIGluIHRoZQorIyB0
aXRsZSBvZiBtb3N0IGdlbmVyYXRlZCBwYWdlcyBhbmQgaW4gYSBmZXcgb3RoZXIgcGxhY2VzLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTXkgUHJvamVjdC4KKworUFJPSkVDVF9OQU1FICAgICAg
ICAgICA9ICJKc29uQ3BwIgorCisjIFRoZSBQUk9KRUNUX05VTUJFUiB0YWcgY2FuIGJlIHVzZWQg
dG8gZW50ZXIgYSBwcm9qZWN0IG9yIHJldmlzaW9uIG51bWJlci4gVGhpcworIyBjb3VsZCBiZSBo
YW5keSBmb3IgYXJjaGl2aW5nIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpZiBzb21l
IHZlcnNpb24KKyMgY29udHJvbCBzeXN0ZW0gaXMgdXNlZC4KKworUFJPSkVDVF9OVU1CRVIgICAg
ICAgICA9ICVKU09OQ1BQX1ZFUlNJT04lCisKKyMgVXNpbmcgdGhlIFBST0pFQ1RfQlJJRUYgdGFn
IG9uZSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbCBvbmUgbGluZSBkZXNjcmlwdGlvbgorIyBmb3Ig
YSBwcm9qZWN0IHRoYXQgYXBwZWFycyBhdCB0aGUgdG9wIG9mIGVhY2ggcGFnZSBhbmQgc2hvdWxk
IGdpdmUgdmlld2VyIGEKKyMgcXVpY2sgaWRlYSBhYm91dCB0aGUgcHVycG9zZSBvZiB0aGUgcHJv
amVjdC4gS2VlcCB0aGUgZGVzY3JpcHRpb24gc2hvcnQuCisKK1BST0pFQ1RfQlJJRUYgICAgICAg
ICAgID0gIkpTT04gZGF0YSBmb3JtYXQgbWFuaXB1bGF0aW9uIGxpYnJhcnkiCisKKyMgV2l0aCB0
aGUgUFJPSkVDVF9MT0dPIHRhZyBvbmUgY2FuIHNwZWNpZnkgYW4gbG9nbyBvciBpY29uIHRoYXQg
aXMgaW5jbHVkZWQgaW4KKyMgdGhlIGRvY3VtZW50YXRpb24uIFRoZSBtYXhpbXVtIGhlaWdodCBv
ZiB0aGUgbG9nbyBzaG91bGQgbm90IGV4Y2VlZCA1NSBwaXhlbHMKKyMgYW5kIHRoZSBtYXhpbXVt
IHdpZHRoIHNob3VsZCBub3QgZXhjZWVkIDIwMCBwaXhlbHMuIERveHlnZW4gd2lsbCBjb3B5IHRo
ZSBsb2dvCisjIHRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5LgorCitQUk9KRUNUX0xPR08gICAgICAg
ICAgID0KKworIyBUaGUgT1VUUFVUX0RJUkVDVE9SWSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRo
ZSAocmVsYXRpdmUgb3IgYWJzb2x1dGUpIHBhdGgKKyMgaW50byB3aGljaCB0aGUgZ2VuZXJhdGVk
IGRvY3VtZW50YXRpb24gd2lsbCBiZSB3cml0dGVuLiBJZiBhIHJlbGF0aXZlIHBhdGggaXMKKyMg
ZW50ZXJlZCwgaXQgd2lsbCBiZSByZWxhdGl2ZSB0byB0aGUgbG9jYXRpb24gd2hlcmUgZG94eWdl
biB3YXMgc3RhcnRlZC4gSWYKKyMgbGVmdCBibGFuayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2ls
bCBiZSB1c2VkLgorCitPVVRQVVRfRElSRUNUT1JZICAgICAgID0gJURPQ19UT1BESVIlCisKKyMg
SWYgdGhlIENSRUFURV9TVUJESVJTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2ls
bCBjcmVhdGUgNDA5NiBzdWItCisjIGRpcmVjdG9yaWVzIChpbiAyIGxldmVscykgdW5kZXIgdGhl
IG91dHB1dCBkaXJlY3Rvcnkgb2YgZWFjaCBvdXRwdXQgZm9ybWF0IGFuZAorIyB3aWxsIGRpc3Ry
aWJ1dGUgdGhlIGdlbmVyYXRlZCBmaWxlcyBvdmVyIHRoZXNlIGRpcmVjdG9yaWVzLiBFbmFibGlu
ZyB0aGlzCisjIG9wdGlvbiBjYW4gYmUgdXNlZnVsIHdoZW4gZmVlZGluZyBkb3h5Z2VuIGEgaHVn
ZSBhbW91bnQgb2Ygc291cmNlIGZpbGVzLCB3aGVyZQorIyBwdXR0aW5nIGFsbCBnZW5lcmF0ZWQg
ZmlsZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHdvdWxkIG90aGVyd2lzZSBjYXVzZXMKKyMgcGVy
Zm9ybWFuY2UgcHJvYmxlbXMgZm9yIHRoZSBmaWxlIHN5c3RlbS4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgorCitDUkVBVEVfU1VCRElSUyAgICAgICAgID0gTk8KKworIyBUaGUgT1VUUFVU
X0xBTkdVQUdFIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGxhbmd1YWdlIGluIHdoaWNoIGFs
bAorIyBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSBkb3h5Z2VuIGlzIHdyaXR0ZW4uIERveHln
ZW4gd2lsbCB1c2UgdGhpcworIyBpbmZvcm1hdGlvbiB0byBnZW5lcmF0ZSBhbGwgY29uc3RhbnQg
b3V0cHV0IGluIHRoZSBwcm9wZXIgbGFuZ3VhZ2UuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IEFm
cmlrYWFucywgQXJhYmljLCBCcmF6aWxpYW4sIENhdGFsYW4sIENoaW5lc2UsIENoaW5lc2UtCisj
IFRyYWRpdGlvbmFsLCBDcm9hdGlhbiwgQ3plY2gsIERhbmlzaCwgRHV0Y2gsIEVuZ2xpc2gsIEVz
cGVyYW50bywgRmFyc2ksCisjIEZpbm5pc2gsIEZyZW5jaCwgR2VybWFuLCBHcmVlaywgSHVuZ2Fy
aWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2UtZW4sCisjIEtvcmVhbiwgS29yZWFuLWVu
LCBMYXR2aWFuLCBOb3J3ZWdpYW4sIE1hY2Vkb25pYW4sIFBlcnNpYW4sIFBvbGlzaCwKKyMgUG9y
dHVndWVzZSwgUm9tYW5pYW4sIFJ1c3NpYW4sIFNlcmJpYW4sIFNsb3ZhaywgU2xvdmVuZSwgU3Bh
bmlzaCwgU3dlZGlzaCwKKyMgVHVya2lzaCwgVWtyYWluaWFuIGFuZCBWaWV0bmFtZXNlLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogRW5nbGlzaC4KKworT1VUUFVUX0xBTkdVQUdFICAgICAgICA9
IEVuZ2xpc2gKKworIyBJZiB0aGUgQlJJRUZfTUVNQkVSX0RFU0MgdGFnIGlzIHNldCB0byBZRVMg
ZG94eWdlbiB3aWxsIGluY2x1ZGUgYnJpZWYgbWVtYmVyCisjIGRlc2NyaXB0aW9ucyBhZnRlciB0
aGUgbWVtYmVycyB0aGF0IGFyZSBsaXN0ZWQgaW4gdGhlIGZpbGUgYW5kIGNsYXNzCisjIGRvY3Vt
ZW50YXRpb24gKHNpbWlsYXIgdG8gSmF2YWRvYykuIFNldCB0byBOTyB0byBkaXNhYmxlIHRoaXMu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0JSSUVGX01FTUJFUl9ERVNDICAgICAg
PSBZRVMKKworIyBJZiB0aGUgUkVQRUFUX0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4g
d2lsbCBwcmVwZW5kIHRoZSBicmllZgorIyBkZXNjcmlwdGlvbiBvZiBhIG1lbWJlciBvciBmdW5j
dGlvbiBiZWZvcmUgdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uCisjCisjIE5vdGU6IElmIGJvdGgg
SElERV9VTkRPQ19NRU1CRVJTIGFuZCBCUklFRl9NRU1CRVJfREVTQyBhcmUgc2V0IHRvIE5PLCB0
aGUKKyMgYnJpZWYgZGVzY3JpcHRpb25zIHdpbGwgYmUgY29tcGxldGVseSBzdXBwcmVzc2VkLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitSRVBFQVRfQlJJRUYgICAgICAgICAgID0g
WUVTCisKKyMgVGhpcyB0YWcgaW1wbGVtZW50cyBhIHF1YXNpLWludGVsbGlnZW50IGJyaWVmIGRl
c2NyaXB0aW9uIGFiYnJldmlhdG9yIHRoYXQgaXMKKyMgdXNlZCB0byBmb3JtIHRoZSB0ZXh0IGlu
IHZhcmlvdXMgbGlzdGluZ3MuIEVhY2ggc3RyaW5nIGluIHRoaXMgbGlzdCwgaWYgZm91bmQKKyMg
YXMgdGhlIGxlYWRpbmcgdGV4dCBvZiB0aGUgYnJpZWYgZGVzY3JpcHRpb24sIHdpbGwgYmUgc3Ry
aXBwZWQgZnJvbSB0aGUgdGV4dAorIyBhbmQgdGhlIHJlc3VsdCwgYWZ0ZXIgcHJvY2Vzc2luZyB0
aGUgd2hvbGUgbGlzdCwgaXMgdXNlZCBhcyB0aGUgYW5ub3RhdGVkCisjIHRleHQuIE90aGVyd2lz
ZSwgdGhlIGJyaWVmIGRlc2NyaXB0aW9uIGlzIHVzZWQgYXMtaXMuIElmIGxlZnQgYmxhbmssIHRo
ZQorIyBmb2xsb3dpbmcgdmFsdWVzIGFyZSB1c2VkICgkbmFtZSBpcyBhdXRvbWF0aWNhbGx5IHJl
cGxhY2VkIHdpdGggdGhlIG5hbWUgb2YKKyMgdGhlIGVudGl0eSk6VGhlICRuYW1lIGNsYXNzLCBU
aGUgJG5hbWUgd2lkZ2V0LCBUaGUgJG5hbWUgZmlsZSwgaXMsIHByb3ZpZGVzLAorIyBzcGVjaWZp
ZXMsIGNvbnRhaW5zLCByZXByZXNlbnRzLCBhLCBhbiBhbmQgdGhlLgorCitBQkJSRVZJQVRFX0JS
SUVGICAgICAgID0gIlRoZSAkbmFtZSBjbGFzcyIgXAorICAgICAgICAgICAgICAgICAgICAgICAg
ICJUaGUgJG5hbWUgd2lkZ2V0IiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSAkbmFt
ZSBmaWxlIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgaXMgXAorICAgICAgICAgICAgICAg
ICAgICAgICAgIHByb3ZpZGVzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZXMg
XAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICByZXByZXNlbnRzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBhbiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhlCisK
KyMgSWYgdGhlIEFMV0FZU19ERVRBSUxFRF9TRUMgYW5kIFJFUEVBVF9CUklFRiB0YWdzIGFyZSBi
b3RoIHNldCB0byBZRVMgdGhlbgorIyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBkZXRhaWxlZCBz
ZWN0aW9uIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBhIGJyaWVmCisjIGRlc2NyaXB0aW9uLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0FMV0FZU19ERVRBSUxFRF9TRUMgICAgPSBOTwor
CisjIElmIHRoZSBJTkxJTkVfSU5IRVJJVEVEX01FTUIgdGFnIGlzIHNldCB0byBZRVMsIGRveHln
ZW4gd2lsbCBzaG93IGFsbAorIyBpbmhlcml0ZWQgbWVtYmVycyBvZiBhIGNsYXNzIGluIHRoZSBk
b2N1bWVudGF0aW9uIG9mIHRoYXQgY2xhc3MgYXMgaWYgdGhvc2UKKyMgbWVtYmVycyB3ZXJlIG9y
ZGluYXJ5IGNsYXNzIG1lbWJlcnMuIENvbnN0cnVjdG9ycywgZGVzdHJ1Y3RvcnMgYW5kIGFzc2ln
bm1lbnQKKyMgb3BlcmF0b3JzIG9mIHRoZSBiYXNlIGNsYXNzZXMgd2lsbCBub3QgYmUgc2hvd24u
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworSU5MSU5FX0lOSEVSSVRFRF9NRU1CICA9
IE5PCisKKyMgSWYgdGhlIEZVTExfUEFUSF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2Vu
IHdpbGwgcHJlcGVuZCB0aGUgZnVsbCBwYXRoCisjIGJlZm9yZSBmaWxlcyBuYW1lIGluIHRoZSBm
aWxlIGxpc3QgYW5kIGluIHRoZSBoZWFkZXIgZmlsZXMuIElmIHNldCB0byBOTyB0aGUKKyMgc2hv
cnRlc3QgcGF0aCB0aGF0IG1ha2VzIHRoZSBmaWxlIG5hbWUgdW5pcXVlIHdpbGwgYmUgdXNlZAor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitGVUxMX1BBVEhfTkFNRVMgICAgICAgID0g
WUVTCisKKyMgVGhlIFNUUklQX0ZST01fUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3RyaXAgYSB1
c2VyLWRlZmluZWQgcGFydCBvZiB0aGUgcGF0aC4KKyMgU3RyaXBwaW5nIGlzIG9ubHkgZG9uZSBp
ZiBvbmUgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmdzIG1hdGNoZXMgdGhlIGxlZnQtaGFuZAorIyBw
YXJ0IG9mIHRoZSBwYXRoLiBUaGUgdGFnIGNhbiBiZSB1c2VkIHRvIHNob3cgcmVsYXRpdmUgcGF0
aHMgaW4gdGhlIGZpbGUgbGlzdC4KKyMgSWYgbGVmdCBibGFuayB0aGUgZGlyZWN0b3J5IGZyb20g
d2hpY2ggZG94eWdlbiBpcyBydW4gaXMgdXNlZCBhcyB0aGUgcGF0aCB0bworIyBzdHJpcC4KKyMK
KyMgTm90ZSB0aGF0IHlvdSBjYW4gc3BlY2lmeSBhYnNvbHV0ZSBwYXRocyBoZXJlLCBidXQgYWxz
byByZWxhdGl2ZSBwYXRocywgd2hpY2gKKyMgd2lsbCBiZSByZWxhdGl2ZSBmcm9tIHRoZSBkaXJl
Y3Rvcnkgd2hlcmUgZG94eWdlbiBpcyBzdGFydGVkLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgRlVMTF9QQVRIX05BTUVTIGlzIHNldCB0byBZRVMuCisKK1NUUklQX0ZST01fUEFU
SCAgICAgICAgPSAlVE9QRElSJQorCisjIFRoZSBTVFJJUF9GUk9NX0lOQ19QQVRIIHRhZyBjYW4g
YmUgdXNlZCB0byBzdHJpcCBhIHVzZXItZGVmaW5lZCBwYXJ0IG9mIHRoZQorIyBwYXRoIG1lbnRp
b25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiBhIGNsYXNzLCB3aGljaCB0ZWxscyB0aGUgcmVh
ZGVyIHdoaWNoCisjIGhlYWRlciBmaWxlIHRvIGluY2x1ZGUgaW4gb3JkZXIgdG8gdXNlIGEgY2xh
c3MuIElmIGxlZnQgYmxhbmsgb25seSB0aGUgbmFtZSBvZgorIyB0aGUgaGVhZGVyIGZpbGUgY29u
dGFpbmluZyB0aGUgY2xhc3MgZGVmaW5pdGlvbiBpcyB1c2VkLiBPdGhlcndpc2Ugb25lIHNob3Vs
ZAorIyBzcGVjaWZ5IHRoZSBsaXN0IG9mIGluY2x1ZGUgcGF0aHMgdGhhdCBhcmUgbm9ybWFsbHkg
cGFzc2VkIHRvIHRoZSBjb21waWxlcgorIyB1c2luZyB0aGUgLUkgZmxhZy4KKworU1RSSVBfRlJP
TV9JTkNfUEFUSCAgICA9ICVUT1BESVIlL2luY2x1ZGUKKworIyBJZiB0aGUgU0hPUlRfTkFNRVMg
dGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBtdWNoIHNob3J0ZXIgKGJ1
dAorIyBsZXNzIHJlYWRhYmxlKSBmaWxlIG5hbWVzLiBUaGlzIGNhbiBiZSB1c2VmdWwgaXMgeW91
ciBmaWxlIHN5c3RlbXMgZG9lc24ndAorIyBzdXBwb3J0IGxvbmcgbmFtZXMgbGlrZSBvbiBET1Ms
IE1hYywgb3IgQ0QtUk9NLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NIT1JUX05B
TUVTICAgICAgICAgICAgPSBOTworCisjIElmIHRoZSBKQVZBRE9DX0FVVE9CUklFRiB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBpbnRlcnByZXQgdGhlCisjIGZpcnN0IGxpbmUg
KHVudGlsIHRoZSBmaXJzdCBkb3QpIG9mIGEgSmF2YWRvYy1zdHlsZSBjb21tZW50IGFzIHRoZSBi
cmllZgorIyBkZXNjcmlwdGlvbi4gSWYgc2V0IHRvIE5PLCB0aGUgSmF2YWRvYy1zdHlsZSB3aWxs
IGJlaGF2ZSBqdXN0IGxpa2UgcmVndWxhciBRdC0KKyMgc3R5bGUgY29tbWVudHMgKHRodXMgcmVx
dWlyaW5nIGFuIGV4cGxpY2l0IEBicmllZiBjb21tYW5kIGZvciBhIGJyaWVmCisjIGRlc2NyaXB0
aW9uLikKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitKQVZBRE9DX0FVVE9CUklFRiAg
ICAgID0gWUVTCisKKyMgSWYgdGhlIFFUX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVu
IGRveHlnZW4gd2lsbCBpbnRlcnByZXQgdGhlIGZpcnN0CisjIGxpbmUgKHVudGlsIHRoZSBmaXJz
dCBkb3QpIG9mIGEgUXQtc3R5bGUgY29tbWVudCBhcyB0aGUgYnJpZWYgZGVzY3JpcHRpb24uIElm
CisjIHNldCB0byBOTywgdGhlIFF0LXN0eWxlIHdpbGwgYmVoYXZlIGp1c3QgbGlrZSByZWd1bGFy
IFF0LXN0eWxlIGNvbW1lbnRzICh0aHVzCisjIHJlcXVpcmluZyBhbiBleHBsaWNpdCBcYnJpZWYg
Y29tbWFuZCBmb3IgYSBicmllZiBkZXNjcmlwdGlvbi4pCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KKworUVRfQVVUT0JSSUVGICAgICAgICAgICA9IE5PCisKKyMgVGhlIE1VTFRJTElORV9D
UFBfSVNfQlJJRUYgdGFnIGNhbiBiZSBzZXQgdG8gWUVTIHRvIG1ha2UgZG94eWdlbiB0cmVhdCBh
CisjIG11bHRpLWxpbmUgQysrIHNwZWNpYWwgY29tbWVudCBibG9jayAoaS5lLiBhIGJsb2NrIG9m
IC8vISBvciAvLy8gY29tbWVudHMpIGFzCisjIGEgYnJpZWYgZGVzY3JpcHRpb24uIFRoaXMgdXNl
ZCB0byBiZSB0aGUgZGVmYXVsdCBiZWhhdmlvci4gVGhlIG5ldyBkZWZhdWx0IGlzCisjIHRvIHRy
ZWF0IGEgbXVsdGktbGluZSBDKysgY29tbWVudCBibG9jayBhcyBhIGRldGFpbGVkIGRlc2NyaXB0
aW9uLiBTZXQgdGhpcworIyB0YWcgdG8gWUVTIGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBiZWhhdmlv
ciBpbnN0ZWFkLgorIworIyBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIHRhZyB0byBZRVMgYWxzbyBt
ZWFucyB0aGF0IHJhdGlvbmFsIHJvc2UgY29tbWVudHMgYXJlCisjIG5vdCByZWNvZ25pemVkIGFu
eSBtb3JlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK01VTFRJTElORV9DUFBfSVNf
QlJJRUYgPSBOTworCisjIElmIHRoZSBJTkhFUklUX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhl
biBhbiB1bmRvY3VtZW50ZWQgbWVtYmVyIGluaGVyaXRzIHRoZQorIyBkb2N1bWVudGF0aW9uIGZy
b20gYW55IGRvY3VtZW50ZWQgbWVtYmVyIHRoYXQgaXQgcmUtaW1wbGVtZW50cy4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworSU5IRVJJVF9ET0NTICAgICAgICAgICA9IFlFUworCisj
IElmIHRoZSBTRVBBUkFURV9NRU1CRVJfUEFHRVMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94
eWdlbiB3aWxsIHByb2R1Y2UgYQorIyBuZXcgcGFnZSBmb3IgZWFjaCBtZW1iZXIuIElmIHNldCB0
byBOTywgdGhlIGRvY3VtZW50YXRpb24gb2YgYSBtZW1iZXIgd2lsbCBiZQorIyBwYXJ0IG9mIHRo
ZSBmaWxlL2NsYXNzL25hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIGl0LgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCisKK1NFUEFSQVRFX01FTUJFUl9QQUdFUyAgPSBOTworCisjIFRoZSBUQUJf
U0laRSB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBudW1iZXIgb2Ygc3BhY2VzIGluIGEgdGFi
LiBEb3h5Z2VuCisjIHVzZXMgdGhpcyB2YWx1ZSB0byByZXBsYWNlIHRhYnMgYnkgc3BhY2VzIGlu
IGNvZGUgZnJhZ21lbnRzLgorIyBNaW5pbXVtIHZhbHVlOiAxLCBtYXhpbXVtIHZhbHVlOiAxNiwg
ZGVmYXVsdCB2YWx1ZTogNC4KKworVEFCX1NJWkUgICAgICAgICAgICAgICA9IDMKKworIyBUaGlz
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbnVtYmVyIG9mIGFsaWFzZXMgdGhhdCBhY3Qg
YXMgY29tbWFuZHMgaW4KKyMgdGhlIGRvY3VtZW50YXRpb24uIEFuIGFsaWFzIGhhcyB0aGUgZm9y
bToKKyMgbmFtZT12YWx1ZQorIyBGb3IgZXhhbXBsZSBhZGRpbmcKKyMgInNpZGVlZmZlY3Q9QHBh
ciBTaWRlIEVmZmVjdHM6XG4iCisjIHdpbGwgYWxsb3cgeW91IHRvIHB1dCB0aGUgY29tbWFuZCBc
c2lkZWVmZmVjdCAob3IgQHNpZGVlZmZlY3QpIGluIHRoZQorIyBkb2N1bWVudGF0aW9uLCB3aGlj
aCB3aWxsIHJlc3VsdCBpbiBhIHVzZXItZGVmaW5lZCBwYXJhZ3JhcGggd2l0aCBoZWFkaW5nCisj
ICJTaWRlIEVmZmVjdHM6Ii4gWW91IGNhbiBwdXQgXG4ncyBpbiB0aGUgdmFsdWUgcGFydCBvZiBh
biBhbGlhcyB0byBpbnNlcnQKKyMgbmV3bGluZXMuCisKK0FMSUFTRVMgICAgICAgICAgICAgICAg
PSAidGVzdENhc2VTZXR1cD1cbGluayBDcHBVVDo6VGVzdENhc2U6OnNldFVwKCkgc2V0VXAoKVxl
bmRsaW5rIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RDYXNlUnVuPVxsaW5rIENw
cFVUOjpUZXN0Q2FzZTo6cnVuKCkgcnVuKClcZW5kbGluayIgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICJ0ZXN0Q2FzZVRlYXJEb3duPVxsaW5rIENwcFVUOjpUZXN0Q2FzZTo6dGVhckRvd24o
KSB0ZWFyRG93bigpXGVuZGxpbmsiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAianNvbl9y
ZWY9PGEgSFJFRj0naHR0cDovL3d3dy5qc29uLm9yZy8nPkpTT04gKEphdmFTY3JpcHQgT2JqZWN0
IE5vdGF0aW9uKTwvYT4iCisKKyMgVGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIG51
bWJlciBvZiB3b3JkLWtleXdvcmQgbWFwcGluZ3MgKFRDTCBvbmx5KS4KKyMgQSBtYXBwaW5nIGhh
cyB0aGUgZm9ybSAibmFtZT12YWx1ZSIuIEZvciBleGFtcGxlIGFkZGluZyAiY2xhc3M9aXRjbDo6
Y2xhc3MiCisjIHdpbGwgYWxsb3cgeW91IHRvIHVzZSB0aGUgY29tbWFuZCBjbGFzcyBpbiB0aGUg
aXRjbDo6Y2xhc3MgbWVhbmluZy4KKworVENMX1NVQlNUICAgICAgICAgICAgICA9CisKKyMgU2V0
IHRoZSBPUFRJTUlaRV9PVVRQVVRfRk9SX0MgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29u
c2lzdHMgb2YgQyBzb3VyY2VzCisjIG9ubHkuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91
dHB1dCB0aGF0IGlzIG1vcmUgdGFpbG9yZWQgZm9yIEMuIEZvcgorIyBpbnN0YW5jZSwgc29tZSBv
ZiB0aGUgbmFtZXMgdGhhdCBhcmUgdXNlZCB3aWxsIGJlIGRpZmZlcmVudC4gVGhlIGxpc3Qgb2Yg
YWxsCisjIG1lbWJlcnMgd2lsbCBiZSBvbWl0dGVkLCBldGMuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKworT1BUSU1JWkVfT1VUUFVUX0ZPUl9DICA9IE5PCisKKyMgU2V0IHRoZSBPUFRJ
TUlaRV9PVVRQVVRfSkFWQSB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBK
YXZhIG9yCisjIFB5dGhvbiBzb3VyY2VzIG9ubHkuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRl
IG91dHB1dCB0aGF0IGlzIG1vcmUgdGFpbG9yZWQKKyMgZm9yIHRoYXQgbGFuZ3VhZ2UuIEZvciBp
bnN0YW5jZSwgbmFtZXNwYWNlcyB3aWxsIGJlIHByZXNlbnRlZCBhcyBwYWNrYWdlcywKKyMgcXVh
bGlmaWVkIHNjb3BlcyB3aWxsIGxvb2sgZGlmZmVyZW50LCBldGMuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKworT1BUSU1JWkVfT1VUUFVUX0pBVkEgICA9IE5PCisKKyMgU2V0IHRoZSBP
UFRJTUlaRV9GT1JfRk9SVFJBTiB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBv
ZiBGb3J0cmFuCisjIHNvdXJjZXMuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0
aGF0IGlzIHRhaWxvcmVkIGZvciBGb3J0cmFuLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisKK09QVElNSVpFX0ZPUl9GT1JUUkFOICAgPSBOTworCisjIFNldCB0aGUgT1BUSU1JWkVfT1VU
UFVUX1ZIREwgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2YgVkhETAorIyBz
b3VyY2VzLiBEb3h5Z2VuIHdpbGwgdGhlbiBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyB0YWlsb3Jl
ZCBmb3IgVkhETC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitPUFRJTUlaRV9PVVRQ
VVRfVkhETCAgID0gTk8KKworIyBEb3h5Z2VuIHNlbGVjdHMgdGhlIHBhcnNlciB0byB1c2UgZGVw
ZW5kaW5nIG9uIHRoZSBleHRlbnNpb24gb2YgdGhlIGZpbGVzIGl0CisjIHBhcnNlcy4gV2l0aCB0
aGlzIHRhZyB5b3UgY2FuIGFzc2lnbiB3aGljaCBwYXJzZXIgdG8gdXNlIGZvciBhIGdpdmVuCisj
IGV4dGVuc2lvbi4gRG94eWdlbiBoYXMgYSBidWlsdC1pbiBtYXBwaW5nLCBidXQgeW91IGNhbiBv
dmVycmlkZSBvciBleHRlbmQgaXQKKyMgdXNpbmcgdGhpcyB0YWcuIFRoZSBmb3JtYXQgaXMgZXh0
PWxhbmd1YWdlLCB3aGVyZSBleHQgaXMgYSBmaWxlIGV4dGVuc2lvbiwgYW5kCisjIGxhbmd1YWdl
IGlzIG9uZSBvZiB0aGUgcGFyc2VycyBzdXBwb3J0ZWQgYnkgZG94eWdlbjogSURMLCBKYXZhLCBK
YXZhU2NyaXB0LAorIyBDIywgQywgQysrLCBELCBQSFAsIE9iamVjdGl2ZS1DLCBQeXRob24sIEZv
cnRyYW4sIFZIREwuIEZvciBpbnN0YW5jZSB0byBtYWtlCisjIGRveHlnZW4gdHJlYXQgLmluYyBm
aWxlcyBhcyBGb3J0cmFuIGZpbGVzIChkZWZhdWx0IGlzIFBIUCksIGFuZCAuZiBmaWxlcyBhcyBD
CisjIChkZWZhdWx0IGlzIEZvcnRyYW4pLCB1c2U6IGluYz1Gb3J0cmFuIGY9Qy4KKyMKKyMgTm90
ZSBGb3IgZmlsZXMgd2l0aG91dCBleHRlbnNpb24geW91IGNhbiB1c2Ugbm9fZXh0ZW5zaW9uIGFz
IGEgcGxhY2Vob2xkZXIuCisjCisjIE5vdGUgdGhhdCBmb3IgY3VzdG9tIGV4dGVuc2lvbnMgeW91
IGFsc28gbmVlZCB0byBzZXQgRklMRV9QQVRURVJOUyBvdGhlcndpc2UKKyMgdGhlIGZpbGVzIGFy
ZSBub3QgcmVhZCBieSBkb3h5Z2VuLgorCitFWFRFTlNJT05fTUFQUElORyAgICAgID0KKworIyBJ
ZiB0aGUgTUFSS0RPV05fU1VQUE9SVCB0YWcgaXMgZW5hYmxlZCB0aGVuIGRveHlnZW4gcHJlLXBy
b2Nlc3NlcyBhbGwgY29tbWVudHMKKyMgYWNjb3JkaW5nIHRvIHRoZSBNYXJrZG93biBmb3JtYXQs
IHdoaWNoIGFsbG93cyBmb3IgbW9yZSByZWFkYWJsZQorIyBkb2N1bWVudGF0aW9uLiBTZWUgaHR0
cDovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi8gZm9yIGRldGFpbHMuCisj
IFRoZSBvdXRwdXQgb2YgbWFya2Rvd24gcHJvY2Vzc2luZyBpcyBmdXJ0aGVyIHByb2Nlc3NlZCBi
eSBkb3h5Z2VuLCBzbyB5b3UgY2FuCisjIG1peCBkb3h5Z2VuLCBIVE1MLCBhbmQgWE1MIGNvbW1h
bmRzIHdpdGggTWFya2Rvd24gZm9ybWF0dGluZy4gRGlzYWJsZSBvbmx5IGluCisjIGNhc2Ugb2Yg
YmFja3dhcmQgY29tcGF0aWJpbGl0aWVzIGlzc3Vlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IFlFUy4KKworTUFSS0RPV05fU1VQUE9SVCAgICAgICA9IFlFUworCisjIFdoZW4gZW5hYmxlZCBk
b3h5Z2VuIHRyaWVzIHRvIGxpbmsgd29yZHMgdGhhdCBjb3JyZXNwb25kIHRvIGRvY3VtZW50ZWQK
KyMgY2xhc3Nlcywgb3IgbmFtZXNwYWNlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIGRvY3VtZW50
YXRpb24uIFN1Y2ggYSBsaW5rIGNhbgorIyBiZSBwcmV2ZW50ZWQgaW4gaW5kaXZpZHVhbCBjYXNl
cyBieSBieSBwdXR0aW5nIGEgJSBzaWduIGluIGZyb250IG9mIHRoZSB3b3JkCisjIG9yIGdsb2Jh
bGx5IGJ5IHNldHRpbmcgQVVUT0xJTktfU1VQUE9SVCB0byBOTy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KKworQVVUT0xJTktfU1VQUE9SVCAgICAgICA9IFlFUworCisjIElmIHlvdSB1
c2UgU1RMIGNsYXNzZXMgKGkuZS4gc3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yLCBldGMuKSBidXQg
ZG8gbm90IHdhbnQKKyMgdG8gaW5jbHVkZSAoYSB0YWcgZmlsZSBmb3IpIHRoZSBTVEwgc291cmNl
cyBhcyBpbnB1dCwgdGhlbiB5b3Ugc2hvdWxkIHNldCB0aGlzCisjIHRhZyB0byBZRVMgaW4gb3Jk
ZXIgdG8gbGV0IGRveHlnZW4gbWF0Y2ggZnVuY3Rpb25zIGRlY2xhcmF0aW9ucyBhbmQKKyMgZGVm
aW5pdGlvbnMgd2hvc2UgYXJndW1lbnRzIGNvbnRhaW4gU1RMIGNsYXNzZXMgKGUuZy4gZnVuYyhz
dGQ6OnN0cmluZyk7CisjIHZlcnN1cyBmdW5jKHN0ZDo6c3RyaW5nKSB7fSkuIFRoaXMgYWxzbyBt
YWtlIHRoZSBpbmhlcml0YW5jZSBhbmQgY29sbGFib3JhdGlvbgorIyBkaWFncmFtcyB0aGF0IGlu
dm9sdmUgU1RMIGNsYXNzZXMgbW9yZSBjb21wbGV0ZSBhbmQgYWNjdXJhdGUuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKworQlVJTFRJTl9TVExfU1VQUE9SVCAgICA9IFlFUworCisjIElm
IHlvdSB1c2UgTWljcm9zb2Z0J3MgQysrL0NMSSBsYW5ndWFnZSwgeW91IHNob3VsZCBzZXQgdGhp
cyBvcHRpb24gdG8gWUVTIHRvCisjIGVuYWJsZSBwYXJzaW5nIHN1cHBvcnQuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKworQ1BQX0NMSV9TVVBQT1JUICAgICAgICA9IE5PCisKKyMgU2V0
IHRoZSBTSVBfU1VQUE9SVCB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBz
aXAgKHNlZToKKyMgaHR0cDovL3d3dy5yaXZlcmJhbmtjb21wdXRpbmcuY28udWsvc29mdHdhcmUv
c2lwL2ludHJvKSBzb3VyY2VzIG9ubHkuIERveHlnZW4KKyMgd2lsbCBwYXJzZSB0aGVtIGxpa2Ug
bm9ybWFsIEMrKyBidXQgd2lsbCBhc3N1bWUgYWxsIGNsYXNzZXMgdXNlIHB1YmxpYyBpbnN0ZWFk
CisjIG9mIHByaXZhdGUgaW5oZXJpdGFuY2Ugd2hlbiBubyBleHBsaWNpdCBwcm90ZWN0aW9uIGtl
eXdvcmQgaXMgcHJlc2VudC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitTSVBfU1VQ
UE9SVCAgICAgICAgICAgID0gTk8KKworIyBGb3IgTWljcm9zb2Z0J3MgSURMIHRoZXJlIGFyZSBw
cm9wZ2V0IGFuZCBwcm9wcHV0IGF0dHJpYnV0ZXMgdG8gaW5kaWNhdGUKKyMgZ2V0dGVyIGFuZCBz
ZXR0ZXIgbWV0aG9kcyBmb3IgYSBwcm9wZXJ0eS4gU2V0dGluZyB0aGlzIG9wdGlvbiB0byBZRVMg
d2lsbCBtYWtlCisjIGRveHlnZW4gdG8gcmVwbGFjZSB0aGUgZ2V0IGFuZCBzZXQgbWV0aG9kcyBi
eSBhIHByb3BlcnR5IGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHdpbGwgb25seSB3b3Jr
IGlmIHRoZSBtZXRob2RzIGFyZSBpbmRlZWQgZ2V0dGluZyBvciBzZXR0aW5nIGEgc2ltcGxlCisj
IHR5cGUuIElmIHRoaXMgaXMgbm90IHRoZSBjYXNlLCBvciB5b3Ugd2FudCB0byBzaG93IHRoZSBt
ZXRob2RzIGFueXdheSwgeW91CisjIHNob3VsZCBzZXQgdGhpcyBvcHRpb24gdG8gTk8uCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0lETF9QUk9QRVJUWV9TVVBQT1JUICAgPSBZRVMK
KworIyBJZiBtZW1iZXIgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQg
dGhlIERJU1RSSUJVVEVfR1JPVVBfRE9DCisjIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHln
ZW4gd2lsbCByZXVzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmlyc3QKKyMgbWVtYmVyIGlu
IHRoZSBncm91cCAoaWYgYW55KSBmb3IgdGhlIG90aGVyIG1lbWJlcnMgb2YgdGhlIGdyb3VwLiBC
eSBkZWZhdWx0CisjIGFsbCBtZW1iZXJzIG9mIGEgZ3JvdXAgbXVzdCBiZSBkb2N1bWVudGVkIGV4
cGxpY2l0bHkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworRElTVFJJQlVURV9HUk9V
UF9ET0MgICA9IE5PCisKKyMgU2V0IHRoZSBTVUJHUk9VUElORyB0YWcgdG8gWUVTIHRvIGFsbG93
IGNsYXNzIG1lbWJlciBncm91cHMgb2YgdGhlIHNhbWUgdHlwZQorIyAoZm9yIGluc3RhbmNlIGEg
Z3JvdXAgb2YgcHVibGljIGZ1bmN0aW9ucykgdG8gYmUgcHV0IGFzIGEgc3ViZ3JvdXAgb2YgdGhh
dAorIyB0eXBlIChlLmcuIHVuZGVyIHRoZSBQdWJsaWMgRnVuY3Rpb25zIHNlY3Rpb24pLiBTZXQg
aXQgdG8gTk8gdG8gcHJldmVudAorIyBzdWJncm91cGluZy4gQWx0ZXJuYXRpdmVseSwgdGhpcyBj
YW4gYmUgZG9uZSBwZXIgY2xhc3MgdXNpbmcgdGhlCisjIFxub3N1Ymdyb3VwaW5nIGNvbW1hbmQu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1NVQkdST1VQSU5HICAgICAgICAgICAg
PSBZRVMKKworIyBXaGVuIHRoZSBJTkxJTkVfR1JPVVBFRF9DTEFTU0VTIHRhZyBpcyBzZXQgdG8g
WUVTLCBjbGFzc2VzLCBzdHJ1Y3RzIGFuZCB1bmlvbnMKKyMgYXJlIHNob3duIGluc2lkZSB0aGUg
Z3JvdXAgaW4gd2hpY2ggdGhleSBhcmUgaW5jbHVkZWQgKGUuZy4gdXNpbmcgXGluZ3JvdXApCisj
IGluc3RlYWQgb2Ygb24gYSBzZXBhcmF0ZSBwYWdlIChmb3IgSFRNTCBhbmQgTWFuIHBhZ2VzKSBv
ciBzZWN0aW9uIChmb3IgTGFUZVgKKyMgYW5kIFJURikuCisjCisjIE5vdGUgdGhhdCB0aGlzIGZl
YXR1cmUgZG9lcyBub3Qgd29yayBpbiBjb21iaW5hdGlvbiB3aXRoCisjIFNFUEFSQVRFX01FTUJF
Ul9QQUdFUy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitJTkxJTkVfR1JPVVBFRF9D
TEFTU0VTID0gTk8KKworIyBXaGVuIHRoZSBJTkxJTkVfU0lNUExFX1NUUlVDVFMgdGFnIGlzIHNl
dCB0byBZRVMsIHN0cnVjdHMsIGNsYXNzZXMsIGFuZCB1bmlvbnMKKyMgd2l0aCBvbmx5IHB1Ymxp
YyBkYXRhIGZpZWxkcyBvciBzaW1wbGUgdHlwZWRlZiBmaWVsZHMgd2lsbCBiZSBzaG93biBpbmxp
bmUgaW4KKyMgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIHNjb3BlIGluIHdoaWNoIHRoZXkgYXJl
IGRlZmluZWQgKGkuZS4gZmlsZSwKKyMgbmFtZXNwYWNlLCBvciBncm91cCBkb2N1bWVudGF0aW9u
KSwgcHJvdmlkZWQgdGhpcyBzY29wZSBpcyBkb2N1bWVudGVkLiBJZiBzZXQKKyMgdG8gTk8sIHN0
cnVjdHMsIGNsYXNzZXMsIGFuZCB1bmlvbnMgYXJlIHNob3duIG9uIGEgc2VwYXJhdGUgcGFnZSAo
Zm9yIEhUTUwgYW5kCisjIE1hbiBwYWdlcykgb3Igc2VjdGlvbiAoZm9yIExhVGVYIGFuZCBSVEYp
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0lOTElORV9TSU1QTEVfU1RSVUNUUyAg
PSBOTworCisjIFdoZW4gVFlQRURFRl9ISURFU19TVFJVQ1QgdGFnIGlzIGVuYWJsZWQsIGEgdHlw
ZWRlZiBvZiBhIHN0cnVjdCwgdW5pb24sIG9yCisjIGVudW0gaXMgZG9jdW1lbnRlZCBhcyBzdHJ1
Y3QsIHVuaW9uLCBvciBlbnVtIHdpdGggdGhlIG5hbWUgb2YgdGhlIHR5cGVkZWYuIFNvCisjIHR5
cGVkZWYgc3RydWN0IFR5cGVTIHt9IFR5cGVULCB3aWxsIGFwcGVhciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhcyBhIHN0cnVjdAorIyB3aXRoIG5hbWUgVHlwZVQuIFdoZW4gZGlzYWJsZWQgdGhlIHR5
cGVkZWYgd2lsbCBhcHBlYXIgYXMgYSBtZW1iZXIgb2YgYSBmaWxlLAorIyBuYW1lc3BhY2UsIG9y
IGNsYXNzLiBBbmQgdGhlIHN0cnVjdCB3aWxsIGJlIG5hbWVkIFR5cGVTLiBUaGlzIGNhbiB0eXBp
Y2FsbHkgYmUKKyMgdXNlZnVsIGZvciBDIGNvZGUgaW4gY2FzZSB0aGUgY29kaW5nIGNvbnZlbnRp
b24gZGljdGF0ZXMgdGhhdCBhbGwgY29tcG91bmQKKyMgdHlwZXMgYXJlIHR5cGVkZWYnZWQgYW5k
IG9ubHkgdGhlIHR5cGVkZWYgaXMgcmVmZXJlbmNlZCwgbmV2ZXIgdGhlIHRhZyBuYW1lLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1RZUEVERUZfSElERVNfU1RSVUNUICAgPSBOTwor
CisjIFRoZSBzaXplIG9mIHRoZSBzeW1ib2wgbG9va3VwIGNhY2hlIGNhbiBiZSBzZXQgdXNpbmcg
TE9PS1VQX0NBQ0hFX1NJWkUuIFRoaXMKKyMgY2FjaGUgaXMgdXNlZCB0byByZXNvbHZlIHN5bWJv
bHMgZ2l2ZW4gdGhlaXIgbmFtZSBhbmQgc2NvcGUuIFNpbmNlIHRoaXMgY2FuIGJlCisjIGFuIGV4
cGVuc2l2ZSBwcm9jZXNzIGFuZCBvZnRlbiB0aGUgc2FtZSBzeW1ib2wgYXBwZWFycyBtdWx0aXBs
ZSB0aW1lcyBpbiB0aGUKKyMgY29kZSwgZG94eWdlbiBrZWVwcyBhIGNhY2hlIG9mIHByZS1yZXNv
bHZlZCBzeW1ib2xzLiBJZiB0aGUgY2FjaGUgaXMgdG9vIHNtYWxsCisjIGRveHlnZW4gd2lsbCBi
ZWNvbWUgc2xvd2VyLiBJZiB0aGUgY2FjaGUgaXMgdG9vIGxhcmdlLCBtZW1vcnkgaXMgd2FzdGVk
LiBUaGUKKyMgY2FjaGUgc2l6ZSBpcyBnaXZlbiBieSB0aGlzIGZvcm11bGE6IDJeKDE2K0xPT0tV
UF9DQUNIRV9TSVpFKS4gVGhlIHZhbGlkIHJhbmdlCisjIGlzIDAuLjksIHRoZSBkZWZhdWx0IGlz
IDAsIGNvcnJlc3BvbmRpbmcgdG8gYSBjYWNoZSBzaXplIG9mIDJeMTY9NjU1MzYKKyMgc3ltYm9s
cy4gQXQgdGhlIGVuZCBvZiBhIHJ1biBkb3h5Z2VuIHdpbGwgcmVwb3J0IHRoZSBjYWNoZSB1c2Fn
ZSBhbmQgc3VnZ2VzdAorIyB0aGUgb3B0aW1hbCBjYWNoZSBzaXplIGZyb20gYSBzcGVlZCBwb2lu
dCBvZiB2aWV3LgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5LCBkZWZhdWx0
IHZhbHVlOiAwLgorCitMT09LVVBfQ0FDSEVfU0laRSAgICAgID0gMAorCisjLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisjIEJ1aWxkIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zCisjLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyMgSWYgdGhlIEVYVFJBQ1RfQUxMIHRhZyBpcyBzZXQgdG8gWUVTIGRveHln
ZW4gd2lsbCBhc3N1bWUgYWxsIGVudGl0aWVzIGluCisjIGRvY3VtZW50YXRpb24gYXJlIGRvY3Vt
ZW50ZWQsIGV2ZW4gaWYgbm8gZG9jdW1lbnRhdGlvbiB3YXMgYXZhaWxhYmxlLiBQcml2YXRlCisj
IGNsYXNzIG1lbWJlcnMgYW5kIHN0YXRpYyBmaWxlIG1lbWJlcnMgd2lsbCBiZSBoaWRkZW4gdW5s
ZXNzIHRoZQorIyBFWFRSQUNUX1BSSVZBVEUgcmVzcGVjdGl2ZWx5IEVYVFJBQ1RfU1RBVElDIHRh
Z3MgYXJlIHNldCB0byBZRVMuCisjIE5vdGU6IFRoaXMgd2lsbCBhbHNvIGRpc2FibGUgdGhlIHdh
cm5pbmdzIGFib3V0IHVuZG9jdW1lbnRlZCBtZW1iZXJzIHRoYXQgYXJlCisjIG5vcm1hbGx5IHBy
b2R1Y2VkIHdoZW4gV0FSTklOR1MgaXMgc2V0IHRvIFlFUy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgorCitFWFRSQUNUX0FMTCAgICAgICAgICAgID0gWUVTCisKKyMgSWYgdGhlIEVYVFJB
Q1RfUFJJVkFURSB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgcHJpdmF0ZSBtZW1iZXJzIG9mIGEgY2xh
c3Mgd2lsbAorIyBiZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgorCitFWFRSQUNUX1BSSVZBVEUgICAgICAgID0gTk8KKworIyBJZiB0
aGUgRVhUUkFDVF9QQUNLQUdFIHRhZyBpcyBzZXQgdG8gWUVTIGFsbCBtZW1iZXJzIHdpdGggcGFj
a2FnZSBvciBpbnRlcm5hbAorIyBzY29wZSB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVu
dGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0VYVFJBQ1RfUEFDS0FHRSAg
ICAgICAgPSBOTworCisjIElmIHRoZSBFWFRSQUNUX1NUQVRJQyB0YWcgaXMgc2V0IHRvIFlFUyBh
bGwgc3RhdGljIG1lbWJlcnMgb2YgYSBmaWxlIHdpbGwgYmUKKyMgaW5jbHVkZWQgaW4gdGhlIGRv
Y3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworRVhUUkFDVF9TVEFU
SUMgICAgICAgICA9IFlFUworCisjIElmIHRoZSBFWFRSQUNUX0xPQ0FMX0NMQVNTRVMgdGFnIGlz
IHNldCB0byBZRVMgY2xhc3NlcyAoYW5kIHN0cnVjdHMpIGRlZmluZWQKKyMgbG9jYWxseSBpbiBz
b3VyY2UgZmlsZXMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgc2V0
IHRvIE5PCisjIG9ubHkgY2xhc3NlcyBkZWZpbmVkIGluIGhlYWRlciBmaWxlcyBhcmUgaW5jbHVk
ZWQuIERvZXMgbm90IGhhdmUgYW55IGVmZmVjdAorIyBmb3IgSmF2YSBzb3VyY2VzLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitFWFRSQUNUX0xPQ0FMX0NMQVNTRVMgID0gTk8KKwor
IyBUaGlzIGZsYWcgaXMgb25seSB1c2VmdWwgZm9yIE9iamVjdGl2ZS1DIGNvZGUuIFdoZW4gc2V0
IHRvIFlFUyBsb2NhbCBtZXRob2RzLAorIyB3aGljaCBhcmUgZGVmaW5lZCBpbiB0aGUgaW1wbGVt
ZW50YXRpb24gc2VjdGlvbiBidXQgbm90IGluIHRoZSBpbnRlcmZhY2UgYXJlCisjIGluY2x1ZGVk
IGluIHRoZSBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gTk8gb25seSBtZXRob2RzIGluIHRoZSBp
bnRlcmZhY2UgYXJlCisjIGluY2x1ZGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisK
K0VYVFJBQ1RfTE9DQUxfTUVUSE9EUyAgPSBOTworCisjIElmIHRoaXMgZmxhZyBpcyBzZXQgdG8g
WUVTLCB0aGUgbWVtYmVycyBvZiBhbm9ueW1vdXMgbmFtZXNwYWNlcyB3aWxsIGJlCisjIGV4dHJh
Y3RlZCBhbmQgYXBwZWFyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFzIGEgbmFtZXNwYWNlIGNhbGxl
ZAorIyAnYW5vbnltb3VzX25hbWVzcGFjZXtmaWxlfScsIHdoZXJlIGZpbGUgd2lsbCBiZSByZXBs
YWNlZCB3aXRoIHRoZSBiYXNlIG5hbWUgb2YKKyMgdGhlIGZpbGUgdGhhdCBjb250YWlucyB0aGUg
YW5vbnltb3VzIG5hbWVzcGFjZS4gQnkgZGVmYXVsdCBhbm9ueW1vdXMgbmFtZXNwYWNlCisjIGFy
ZSBoaWRkZW4uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworRVhUUkFDVF9BTk9OX05T
UEFDRVMgICA9IE5PCisKKyMgSWYgdGhlIEhJREVfVU5ET0NfTUVNQkVSUyB0YWcgaXMgc2V0IHRv
IFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYWxsCisjIHVuZG9jdW1lbnRlZCBtZW1iZXJzIGluc2lk
ZSBkb2N1bWVudGVkIGNsYXNzZXMgb3IgZmlsZXMuIElmIHNldCB0byBOTyB0aGVzZQorIyBtZW1i
ZXJzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHZhcmlvdXMgb3ZlcnZpZXdzLCBidXQgbm8gZG9j
dW1lbnRhdGlvbgorIyBzZWN0aW9uIGlzIGdlbmVyYXRlZC4gVGhpcyBvcHRpb24gaGFzIG5vIGVm
ZmVjdCBpZiBFWFRSQUNUX0FMTCBpcyBlbmFibGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisKK0hJREVfVU5ET0NfTUVNQkVSUyAgICAgPSBOTworCisjIElmIHRoZSBISURFX1VORE9D
X0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBoaWRlIGFsbAorIyB1bmRv
Y3VtZW50ZWQgY2xhc3NlcyB0aGF0IGFyZSBub3JtYWxseSB2aXNpYmxlIGluIHRoZSBjbGFzcyBo
aWVyYXJjaHkuIElmIHNldAorIyB0byBOTyB0aGVzZSBjbGFzc2VzIHdpbGwgYmUgaW5jbHVkZWQg
aW4gdGhlIHZhcmlvdXMgb3ZlcnZpZXdzLiBUaGlzIG9wdGlvbiBoYXMKKyMgbm8gZWZmZWN0IGlm
IEVYVFJBQ1RfQUxMIGlzIGVuYWJsZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKwor
SElERV9VTkRPQ19DTEFTU0VTICAgICA9IE5PCisKKyMgSWYgdGhlIEhJREVfRlJJRU5EX0NPTVBP
VU5EUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYWxsIGZyaWVuZAorIyAo
Y2xhc3N8c3RydWN0fHVuaW9uKSBkZWNsYXJhdGlvbnMuIElmIHNldCB0byBOTyB0aGVzZSBkZWNs
YXJhdGlvbnMgd2lsbCBiZQorIyBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitISURFX0ZSSUVORF9DT01QT1VORFMgID0gTk8KKwor
IyBJZiB0aGUgSElERV9JTl9CT0RZX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2ls
bCBoaWRlIGFueQorIyBkb2N1bWVudGF0aW9uIGJsb2NrcyBmb3VuZCBpbnNpZGUgdGhlIGJvZHkg
b2YgYSBmdW5jdGlvbi4gSWYgc2V0IHRvIE5PIHRoZXNlCisjIGJsb2NrcyB3aWxsIGJlIGFwcGVu
ZGVkIHRvIHRoZSBmdW5jdGlvbidzIGRldGFpbGVkIGRvY3VtZW50YXRpb24gYmxvY2suCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworSElERV9JTl9CT0RZX0RPQ1MgICAgICA9IE5PCisK
KyMgVGhlIElOVEVSTkFMX0RPQ1MgdGFnIGRldGVybWluZXMgaWYgZG9jdW1lbnRhdGlvbiB0aGF0
IGlzIHR5cGVkIGFmdGVyIGEKKyMgXGludGVybmFsIGNvbW1hbmQgaXMgaW5jbHVkZWQuIElmIHRo
ZSB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gdGhlIGRvY3VtZW50YXRpb24KKyMgd2lsbCBiZSBleGNs
dWRlZC4gU2V0IGl0IHRvIFlFUyB0byBpbmNsdWRlIHRoZSBpbnRlcm5hbCBkb2N1bWVudGF0aW9u
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0lOVEVSTkFMX0RPQ1MgICAgICAgICAg
PSBZRVMKKworIyBJZiB0aGUgQ0FTRV9TRU5TRV9OQU1FUyB0YWcgaXMgc2V0IHRvIE5PIHRoZW4g
ZG94eWdlbiB3aWxsIG9ubHkgZ2VuZXJhdGUgZmlsZQorIyBuYW1lcyBpbiBsb3dlci1jYXNlIGxl
dHRlcnMuIElmIHNldCB0byBZRVMgdXBwZXItY2FzZSBsZXR0ZXJzIGFyZSBhbHNvCisjIGFsbG93
ZWQuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIGNsYXNzZXMgb3IgZmlsZXMgd2hvc2UgbmFt
ZXMgb25seSBkaWZmZXIKKyMgaW4gY2FzZSBhbmQgaWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0
cyBjYXNlIHNlbnNpdGl2ZSBmaWxlIG5hbWVzLiBXaW5kb3dzCisjIGFuZCBNYWMgdXNlcnMgYXJl
IGFkdmlzZWQgdG8gc2V0IHRoaXMgb3B0aW9uIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogc3lzdGVtIGRlcGVuZGVudC4KKworQ0FTRV9TRU5TRV9OQU1FUyAgICAgICA9IE5PCisKKyMg
SWYgdGhlIEhJREVfU0NPUEVfTkFNRVMgdGFnIGlzIHNldCB0byBOTyB0aGVuIGRveHlnZW4gd2ls
bCBzaG93IG1lbWJlcnMgd2l0aAorIyB0aGVpciBmdWxsIGNsYXNzIGFuZCBuYW1lc3BhY2Ugc2Nv
cGVzIGluIHRoZSBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gWUVTIHRoZQorIyBzY29wZSB3aWxs
IGJlIGhpZGRlbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitISURFX1NDT1BFX05B
TUVTICAgICAgID0gTk8KKworIyBJZiB0aGUgU0hPV19JTkNMVURFX0ZJTEVTIHRhZyBpcyBzZXQg
dG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHB1dCBhIGxpc3Qgb2YKKyMgdGhlIGZpbGVzIHRoYXQg
YXJlIGluY2x1ZGVkIGJ5IGEgZmlsZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGF0IGZpbGUu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1NIT1dfSU5DTFVERV9GSUxFUyAgICAg
PSBZRVMKKworIyBJZiB0aGUgRk9SQ0VfTE9DQUxfSU5DTFVERVMgdGFnIGlzIHNldCB0byBZRVMg
dGhlbiBkb3h5Z2VuIHdpbGwgbGlzdCBpbmNsdWRlCisjIGZpbGVzIHdpdGggZG91YmxlIHF1b3Rl
cyBpbiB0aGUgZG9jdW1lbnRhdGlvbiByYXRoZXIgdGhhbiB3aXRoIHNoYXJwIGJyYWNrZXRzLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0ZPUkNFX0xPQ0FMX0lOQ0xVREVTICAgPSBO
TworCisjIElmIHRoZSBJTkxJTkVfSU5GTyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGEgdGFnIFtp
bmxpbmVdIGlzIGluc2VydGVkIGluIHRoZQorIyBkb2N1bWVudGF0aW9uIGZvciBpbmxpbmUgbWVt
YmVycy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworSU5MSU5FX0lORk8gICAgICAg
ICAgICA9IFlFUworCisjIElmIHRoZSBTT1JUX01FTUJFUl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVT
IHRoZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlCisjIChkZXRhaWxlZCkgZG9jdW1lbnRhdGlvbiBv
ZiBmaWxlIGFuZCBjbGFzcyBtZW1iZXJzIGFscGhhYmV0aWNhbGx5IGJ5IG1lbWJlcgorIyBuYW1l
LiBJZiBzZXQgdG8gTk8gdGhlIG1lbWJlcnMgd2lsbCBhcHBlYXIgaW4gZGVjbGFyYXRpb24gb3Jk
ZXIuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1NPUlRfTUVNQkVSX0RPQ1MgICAg
ICAgPSBZRVMKKworIyBJZiB0aGUgU09SVF9CUklFRl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlIGJyaWVmCisjIGRlc2NyaXB0aW9ucyBvZiBmaWxlLCBu
YW1lc3BhY2UgYW5kIGNsYXNzIG1lbWJlcnMgYWxwaGFiZXRpY2FsbHkgYnkgbWVtYmVyCisjIG5h
bWUuIElmIHNldCB0byBOTyB0aGUgbWVtYmVycyB3aWxsIGFwcGVhciBpbiBkZWNsYXJhdGlvbiBv
cmRlci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitTT1JUX0JSSUVGX0RPQ1MgICAg
ICAgID0gTk8KKworIyBJZiB0aGUgU09SVF9NRU1CRVJTX0NUT1JTXzFTVCB0YWcgaXMgc2V0IHRv
IFlFUyB0aGVuIGRveHlnZW4gd2lsbCBzb3J0IHRoZQorIyAoYnJpZWYgYW5kIGRldGFpbGVkKSBk
b2N1bWVudGF0aW9uIG9mIGNsYXNzIG1lbWJlcnMgc28gdGhhdCBjb25zdHJ1Y3RvcnMgYW5kCisj
IGRlc3RydWN0b3JzIGFyZSBsaXN0ZWQgZmlyc3QuIElmIHNldCB0byBOTyB0aGUgY29uc3RydWN0
b3JzIHdpbGwgYXBwZWFyIGluIHRoZQorIyByZXNwZWN0aXZlIG9yZGVycyBkZWZpbmVkIGJ5IFNP
UlRfQlJJRUZfRE9DUyBhbmQgU09SVF9NRU1CRVJfRE9DUy4KKyMgTm90ZTogSWYgU09SVF9CUklF
Rl9ET0NTIGlzIHNldCB0byBOTyB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkIGZvciBzb3J0aW5nIGJy
aWVmCisjIG1lbWJlciBkb2N1bWVudGF0aW9uLgorIyBOb3RlOiBJZiBTT1JUX01FTUJFUl9ET0NT
IGlzIHNldCB0byBOTyB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkIGZvciBzb3J0aW5nCisjIGRldGFp
bGVkIG1lbWJlciBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisK
K1NPUlRfTUVNQkVSU19DVE9SU18xU1QgPSBOTworCisjIElmIHRoZSBTT1JUX0dST1VQX05BTUVT
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlIGhpZXJhcmNoeQor
IyBvZiBncm91cCBuYW1lcyBpbnRvIGFscGhhYmV0aWNhbCBvcmRlci4gSWYgc2V0IHRvIE5PIHRo
ZSBncm91cCBuYW1lcyB3aWxsCisjIGFwcGVhciBpbiB0aGVpciBkZWZpbmVkIG9yZGVyLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NPUlRfR1JPVVBfTkFNRVMgICAgICAgPSBOTwor
CisjIElmIHRoZSBTT1JUX0JZX1NDT1BFX05BTUUgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBjbGFz
cyBsaXN0IHdpbGwgYmUgc29ydGVkIGJ5CisjIGZ1bGx5LXF1YWxpZmllZCBuYW1lcywgaW5jbHVk
aW5nIG5hbWVzcGFjZXMuIElmIHNldCB0byBOTywgdGhlIGNsYXNzIGxpc3Qgd2lsbAorIyBiZSBz
b3J0ZWQgb25seSBieSBjbGFzcyBuYW1lLCBub3QgaW5jbHVkaW5nIHRoZSBuYW1lc3BhY2UgcGFy
dC4KKyMgTm90ZTogVGhpcyBvcHRpb24gaXMgbm90IHZlcnkgdXNlZnVsIGlmIEhJREVfU0NPUEVf
TkFNRVMgaXMgc2V0IHRvIFlFUy4KKyMgTm90ZTogVGhpcyBvcHRpb24gYXBwbGllcyBvbmx5IHRv
IHRoZSBjbGFzcyBsaXN0LCBub3QgdG8gdGhlIGFscGhhYmV0aWNhbAorIyBsaXN0LgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NPUlRfQllfU0NPUEVfTkFNRSAgICAgPSBZRVMKKwor
IyBJZiB0aGUgU1RSSUNUX1BST1RPX01BVENISU5HIG9wdGlvbiBpcyBlbmFibGVkIGFuZCBkb3h5
Z2VuIGZhaWxzIHRvIGRvIHByb3BlcgorIyB0eXBlIHJlc29sdXRpb24gb2YgYWxsIHBhcmFtZXRl
cnMgb2YgYSBmdW5jdGlvbiBpdCB3aWxsIHJlamVjdCBhIG1hdGNoIGJldHdlZW4KKyMgdGhlIHBy
b3RvdHlwZSBhbmQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGEgbWVtYmVyIGZ1bmN0aW9uIGV2ZW4g
aWYgdGhlcmUgaXMKKyMgb25seSBvbmUgY2FuZGlkYXRlIG9yIGl0IGlzIG9idmlvdXMgd2hpY2gg
Y2FuZGlkYXRlIHRvIGNob29zZSBieSBkb2luZyBhCisjIHNpbXBsZSBzdHJpbmcgbWF0Y2guIEJ5
IGRpc2FibGluZyBTVFJJQ1RfUFJPVE9fTUFUQ0hJTkcgZG94eWdlbiB3aWxsIHN0aWxsCisjIGFj
Y2VwdCBhIG1hdGNoIGJldHdlZW4gcHJvdG90eXBlIGFuZCBpbXBsZW1lbnRhdGlvbiBpbiBzdWNo
IGNhc2VzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NUUklDVF9QUk9UT19NQVRD
SElORyAgPSBOTworCisjIFRoZSBHRU5FUkFURV9UT0RPTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8g
ZW5hYmxlICggWUVTKSBvciBkaXNhYmxlICggTk8pIHRoZQorIyB0b2RvIGxpc3QuIFRoaXMgbGlz
dCBpcyBjcmVhdGVkIGJ5IHB1dHRpbmcgXHRvZG8gY29tbWFuZHMgaW4gdGhlCisjIGRvY3VtZW50
YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0dFTkVSQVRFX1RPRE9MSVNU
ICAgICAgPSBZRVMKKworIyBUaGUgR0VORVJBVEVfVEVTVExJU1QgdGFnIGNhbiBiZSB1c2VkIHRv
IGVuYWJsZSAoIFlFUykgb3IgZGlzYWJsZSAoIE5PKSB0aGUKKyMgdGVzdCBsaXN0LiBUaGlzIGxp
c3QgaXMgY3JlYXRlZCBieSBwdXR0aW5nIFx0ZXN0IGNvbW1hbmRzIGluIHRoZQorIyBkb2N1bWVu
dGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitHRU5FUkFURV9URVNUTElT
VCAgICAgID0gTk8KKworIyBUaGUgR0VORVJBVEVfQlVHTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8g
ZW5hYmxlICggWUVTKSBvciBkaXNhYmxlICggTk8pIHRoZSBidWcKKyMgbGlzdC4gVGhpcyBsaXN0
IGlzIGNyZWF0ZWQgYnkgcHV0dGluZyBcYnVnIGNvbW1hbmRzIGluIHRoZSBkb2N1bWVudGF0aW9u
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitHRU5FUkFURV9CVUdMSVNUICAgICAg
ID0gTk8KKworIyBUaGUgR0VORVJBVEVfREVQUkVDQVRFRExJU1QgdGFnIGNhbiBiZSB1c2VkIHRv
IGVuYWJsZSAoIFlFUykgb3IgZGlzYWJsZSAoIE5PKQorIyB0aGUgZGVwcmVjYXRlZCBsaXN0LiBU
aGlzIGxpc3QgaXMgY3JlYXRlZCBieSBwdXR0aW5nIFxkZXByZWNhdGVkIGNvbW1hbmRzIGluCisj
IHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitHRU5F
UkFURV9ERVBSRUNBVEVETElTVD0gWUVTCisKKyMgVGhlIEVOQUJMRURfU0VDVElPTlMgdGFnIGNh
biBiZSB1c2VkIHRvIGVuYWJsZSBjb25kaXRpb25hbCBkb2N1bWVudGF0aW9uCisjIHNlY3Rpb25z
LCBtYXJrZWQgYnkgXGlmIDxzZWN0aW9uX2xhYmVsPiAuLi4gXGVuZGlmIGFuZCBcY29uZCA8c2Vj
dGlvbl9sYWJlbD4KKyMgLi4uIFxlbmRjb25kIGJsb2Nrcy4KKworRU5BQkxFRF9TRUNUSU9OUyAg
ICAgICA9CisKKyMgVGhlIE1BWF9JTklUSUFMSVpFUl9MSU5FUyB0YWcgZGV0ZXJtaW5lcyB0aGUg
bWF4aW11bSBudW1iZXIgb2YgbGluZXMgdGhhdCB0aGUKKyMgaW5pdGlhbCB2YWx1ZSBvZiBhIHZh
cmlhYmxlIG9yIG1hY3JvIC8gZGVmaW5lIGNhbiBoYXZlIGZvciBpdCB0byBhcHBlYXIgaW4gdGhl
CisjIGRvY3VtZW50YXRpb24uIElmIHRoZSBpbml0aWFsaXplciBjb25zaXN0cyBvZiBtb3JlIGxp
bmVzIHRoYW4gc3BlY2lmaWVkIGhlcmUKKyMgaXQgd2lsbCBiZSBoaWRkZW4uIFVzZSBhIHZhbHVl
IG9mIDAgdG8gaGlkZSBpbml0aWFsaXplcnMgY29tcGxldGVseS4gVGhlCisjIGFwcGVhcmFuY2Ug
b2YgdGhlIHZhbHVlIG9mIGluZGl2aWR1YWwgdmFyaWFibGVzIGFuZCBtYWNyb3MgLyBkZWZpbmVz
IGNhbiBiZQorIyBjb250cm9sbGVkIHVzaW5nIFxzaG93aW5pdGlhbGl6ZXIgb3IgXGhpZGVpbml0
aWFsaXplciBjb21tYW5kIGluIHRoZQorIyBkb2N1bWVudGF0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhp
cyBzZXR0aW5nLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAxMDAwMCwgZGVm
YXVsdCB2YWx1ZTogMzAuCisKK01BWF9JTklUSUFMSVpFUl9MSU5FUyAgPSAzMAorCisjIFNldCB0
aGUgU0hPV19VU0VEX0ZJTEVTIHRhZyB0byBOTyB0byBkaXNhYmxlIHRoZSBsaXN0IG9mIGZpbGVz
IGdlbmVyYXRlZCBhdAorIyB0aGUgYm90dG9tIG9mIHRoZSBkb2N1bWVudGF0aW9uIG9mIGNsYXNz
ZXMgYW5kIHN0cnVjdHMuIElmIHNldCB0byBZRVMgdGhlIGxpc3QKKyMgd2lsbCBtZW50aW9uIHRo
ZSBmaWxlcyB0aGF0IHdlcmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworU0hPV19VU0VEX0ZJTEVTICAgICAgICA9IFlF
UworCisjIFNldCB0aGUgU0hPV19GSUxFUyB0YWcgdG8gTk8gdG8gZGlzYWJsZSB0aGUgZ2VuZXJh
dGlvbiBvZiB0aGUgRmlsZXMgcGFnZS4gVGhpcworIyB3aWxsIHJlbW92ZSB0aGUgRmlsZXMgZW50
cnkgZnJvbSB0aGUgUXVpY2sgSW5kZXggYW5kIGZyb20gdGhlIEZvbGRlciBUcmVlIFZpZXcKKyMg
KGlmIHNwZWNpZmllZCkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1NIT1dfRklM
RVMgICAgICAgICAgICAgPSBZRVMKKworIyBTZXQgdGhlIFNIT1dfTkFNRVNQQUNFUyB0YWcgdG8g
Tk8gdG8gZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgTmFtZXNwYWNlcworIyBwYWdlLiBU
aGlzIHdpbGwgcmVtb3ZlIHRoZSBOYW1lc3BhY2VzIGVudHJ5IGZyb20gdGhlIFF1aWNrIEluZGV4
IGFuZCBmcm9tIHRoZQorIyBGb2xkZXIgVHJlZSBWaWV3IChpZiBzcGVjaWZpZWQpLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitTSE9XX05BTUVTUEFDRVMgICAgICAgID0gWUVTCisK
KyMgVGhlIEZJTEVfVkVSU0lPTl9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBw
cm9ncmFtIG9yIHNjcmlwdCB0aGF0CisjIGRveHlnZW4gc2hvdWxkIGludm9rZSB0byBnZXQgdGhl
IGN1cnJlbnQgdmVyc2lvbiBmb3IgZWFjaCBmaWxlICh0eXBpY2FsbHkgZnJvbQorIyB0aGUgdmVy
c2lvbiBjb250cm9sIHN5c3RlbSkuIERveHlnZW4gd2lsbCBpbnZva2UgdGhlIHByb2dyYW0gYnkg
ZXhlY3V0aW5nICh2aWEKKyMgcG9wZW4oKSkgdGhlIGNvbW1hbmQgY29tbWFuZCBpbnB1dC1maWxl
LCB3aGVyZSBjb21tYW5kIGlzIHRoZSB2YWx1ZSBvZiB0aGUKKyMgRklMRV9WRVJTSU9OX0ZJTFRF
UiB0YWcsIGFuZCBpbnB1dC1maWxlIGlzIHRoZSBuYW1lIG9mIGFuIGlucHV0IGZpbGUgcHJvdmlk
ZWQKKyMgYnkgZG94eWdlbi4gV2hhdGV2ZXIgdGhlIHByb2dyYW0gd3JpdGVzIHRvIHN0YW5kYXJk
IG91dHB1dCBpcyB1c2VkIGFzIHRoZSBmaWxlCisjIHZlcnNpb24uIEZvciBhbiBleGFtcGxlIHNl
ZSB0aGUgZG9jdW1lbnRhdGlvbi4KKworRklMRV9WRVJTSU9OX0ZJTFRFUiAgICA9CisKKyMgVGhl
IExBWU9VVF9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbGF5b3V0IGZpbGUgd2hp
Y2ggd2lsbCBiZSBwYXJzZWQKKyMgYnkgZG94eWdlbi4gVGhlIGxheW91dCBmaWxlIGNvbnRyb2xz
IHRoZSBnbG9iYWwgc3RydWN0dXJlIG9mIHRoZSBnZW5lcmF0ZWQKKyMgb3V0cHV0IGZpbGVzIGlu
IGFuIG91dHB1dCBmb3JtYXQgaW5kZXBlbmRlbnQgd2F5LiBUbyBjcmVhdGUgdGhlIGxheW91dCBm
aWxlCisjIHRoYXQgcmVwcmVzZW50cyBkb3h5Z2VuJ3MgZGVmYXVsdHMsIHJ1biBkb3h5Z2VuIHdp
dGggdGhlIC1sIG9wdGlvbi4gWW91IGNhbgorIyBvcHRpb25hbGx5IHNwZWNpZnkgYSBmaWxlIG5h
bWUgYWZ0ZXIgdGhlIG9wdGlvbiwgaWYgb21pdHRlZCBEb3h5Z2VuTGF5b3V0LnhtbAorIyB3aWxs
IGJlIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlIGxheW91dCBmaWxlLgorIworIyBOb3RlIHRoYXQg
aWYgeW91IHJ1biBkb3h5Z2VuIGZyb20gYSBkaXJlY3RvcnkgY29udGFpbmluZyBhIGZpbGUgY2Fs
bGVkCisjIERveHlnZW5MYXlvdXQueG1sLCBkb3h5Z2VuIHdpbGwgcGFyc2UgaXQgYXV0b21hdGlj
YWxseSBldmVuIGlmIHRoZSBMQVlPVVRfRklMRQorIyB0YWcgaXMgbGVmdCBlbXB0eS4KKworTEFZ
T1VUX0ZJTEUgICAgICAgICAgICA9CisKKyMgVGhlIENJVEVfQklCX0ZJTEVTIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGJpYiBmaWxlcyBjb250YWluaW5nCisjIHRoZSBy
ZWZlcmVuY2UgZGVmaW5pdGlvbnMuIFRoaXMgbXVzdCBiZSBhIGxpc3Qgb2YgLmJpYiBmaWxlcy4g
VGhlIC5iaWIKKyMgZXh0ZW5zaW9uIGlzIGF1dG9tYXRpY2FsbHkgYXBwZW5kZWQgaWYgb21pdHRl
ZC4gVGhpcyByZXF1aXJlcyB0aGUgYmlidGV4IHRvb2wKKyMgdG8gYmUgaW5zdGFsbGVkLiBTZWUg
YWxzbyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JpYlRlWCBmb3IgbW9yZSBpbmZvLgor
IyBGb3IgTGFUZVggdGhlIHN0eWxlIG9mIHRoZSBiaWJsaW9ncmFwaHkgY2FuIGJlIGNvbnRyb2xs
ZWQgdXNpbmcKKyMgTEFURVhfQklCX1NUWUxFLiBUbyB1c2UgdGhpcyBmZWF0dXJlIHlvdSBuZWVk
IGJpYnRleCBhbmQgcGVybCBhdmFpbGFibGUgaW4gdGhlCisjIHNlYXJjaCBwYXRoLiBEbyBub3Qg
dXNlIGZpbGUgbmFtZXMgd2l0aCBzcGFjZXMsIGJpYnRleCBjYW5ub3QgaGFuZGxlIHRoZW0uIFNl
ZQorIyBhbHNvIFxjaXRlIGZvciBpbmZvIGhvdyB0byBjcmVhdGUgcmVmZXJlbmNlcy4KKworQ0lU
RV9CSUJfRklMRVMgICAgICAgICA9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJh
dGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gd2FybmluZyBhbmQgcHJvZ3Jlc3MgbWVzc2FnZXMKKyMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgUVVJRVQgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4g
b24vb2ZmIHRoZSBtZXNzYWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgdG8KKyMgc3RhbmRhcmQgb3V0
cHV0IGJ5IGRveHlnZW4uIElmIFFVSUVUIGlzIHNldCB0byBZRVMgdGhpcyBpbXBsaWVzIHRoYXQg
dGhlCisjIG1lc3NhZ2VzIGFyZSBvZmYuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKwor
UVVJRVQgICAgICAgICAgICAgICAgICA9IE5PCisKKyMgVGhlIFdBUk5JTkdTIHRhZyBjYW4gYmUg
dXNlZCB0byB0dXJuIG9uL29mZiB0aGUgd2FybmluZyBtZXNzYWdlcyB0aGF0IGFyZQorIyBnZW5l
cmF0ZWQgdG8gc3RhbmRhcmQgZXJyb3IgKCBzdGRlcnIpIGJ5IGRveHlnZW4uIElmIFdBUk5JTkdT
IGlzIHNldCB0byBZRVMKKyMgdGhpcyBpbXBsaWVzIHRoYXQgdGhlIHdhcm5pbmdzIGFyZSBvbi4K
KyMKKyMgVGlwOiBUdXJuIHdhcm5pbmdzIG9uIHdoaWxlIHdyaXRpbmcgdGhlIGRvY3VtZW50YXRp
b24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1dBUk5JTkdTICAgICAgICAgICAg
ICAgPSBZRVMKKworIyBJZiB0aGUgV0FSTl9JRl9VTkRPQ1VNRU5URUQgdGFnIGlzIHNldCB0byBZ
RVMsIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlCisjIHdhcm5pbmdzIGZvciB1bmRvY3VtZW50
ZWQgbWVtYmVycy4gSWYgRVhUUkFDVF9BTEwgaXMgc2V0IHRvIFlFUyB0aGVuIHRoaXMgZmxhZwor
IyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgZGlzYWJsZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBZRVMuCisKK1dBUk5fSUZfVU5ET0NVTUVOVEVEICAgPSBZRVMKKworIyBJZiB0aGUgV0FSTl9J
Rl9ET0NfRVJST1IgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSB3YXJu
aW5ncyBmb3IKKyMgcG90ZW50aWFsIGVycm9ycyBpbiB0aGUgZG9jdW1lbnRhdGlvbiwgc3VjaCBh
cyBub3QgZG9jdW1lbnRpbmcgc29tZSBwYXJhbWV0ZXJzCisjIGluIGEgZG9jdW1lbnRlZCBmdW5j
dGlvbiwgb3IgZG9jdW1lbnRpbmcgcGFyYW1ldGVycyB0aGF0IGRvbid0IGV4aXN0IG9yIHVzaW5n
CisjIG1hcmt1cCBjb21tYW5kcyB3cm9uZ2x5LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVT
LgorCitXQVJOX0lGX0RPQ19FUlJPUiAgICAgID0gWUVTCisKKyMgVGhpcyBXQVJOX05PX1BBUkFN
RE9DIG9wdGlvbiBjYW4gYmUgZW5hYmxlZCB0byBnZXQgd2FybmluZ3MgZm9yIGZ1bmN0aW9ucyB0
aGF0CisjIGFyZSBkb2N1bWVudGVkLCBidXQgaGF2ZSBubyBkb2N1bWVudGF0aW9uIGZvciB0aGVp
ciBwYXJhbWV0ZXJzIG9yIHJldHVybgorIyB2YWx1ZS4gSWYgc2V0IHRvIE5PIGRveHlnZW4gd2ls
bCBvbmx5IHdhcm4gYWJvdXQgd3Jvbmcgb3IgaW5jb21wbGV0ZSBwYXJhbWV0ZXIKKyMgZG9jdW1l
bnRhdGlvbiwgYnV0IG5vdCBhYm91dCB0aGUgYWJzZW5jZSBvZiBkb2N1bWVudGF0aW9uLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1dBUk5fTk9fUEFSQU1ET0MgICAgICAgPSBOTwor
CisjIFRoZSBXQVJOX0ZPUk1BVCB0YWcgZGV0ZXJtaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSB3YXJu
aW5nIG1lc3NhZ2VzIHRoYXQgZG94eWdlbgorIyBjYW4gcHJvZHVjZS4gVGhlIHN0cmluZyBzaG91
bGQgY29udGFpbiB0aGUgJGZpbGUsICRsaW5lLCBhbmQgJHRleHQgdGFncywgd2hpY2gKKyMgd2ls
bCBiZSByZXBsYWNlZCBieSB0aGUgZmlsZSBhbmQgbGluZSBudW1iZXIgZnJvbSB3aGljaCB0aGUg
d2FybmluZyBvcmlnaW5hdGVkCisjIGFuZCB0aGUgd2FybmluZyB0ZXh0LiBPcHRpb25hbGx5IHRo
ZSBmb3JtYXQgbWF5IGNvbnRhaW4gJHZlcnNpb24sIHdoaWNoIHdpbGwKKyMgYmUgcmVwbGFjZWQg
YnkgdGhlIHZlcnNpb24gb2YgdGhlIGZpbGUgKGlmIGl0IGNvdWxkIGJlIG9idGFpbmVkIHZpYQor
IyBGSUxFX1ZFUlNJT05fRklMVEVSKQorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogJGZpbGU6JGxp
bmU6ICR0ZXh0LgorCitXQVJOX0ZPUk1BVCAgICAgICAgICAgID0gIiRmaWxlOiRsaW5lOiAkdGV4
dCIKKworIyBUaGUgV0FSTl9MT0dGSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZmls
ZSB0byB3aGljaCB3YXJuaW5nIGFuZCBlcnJvcgorIyBtZXNzYWdlcyBzaG91bGQgYmUgd3JpdHRl
bi4gSWYgbGVmdCBibGFuayB0aGUgb3V0cHV0IGlzIHdyaXR0ZW4gdG8gc3RhbmRhcmQKKyMgZXJy
b3IgKHN0ZGVycikuCisKK1dBUk5fTE9HRklMRSAgICAgICAgICAgPSAlV0FSTklOR19MT0dfUEFU
SCUKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRl
ZCB0byB0aGUgaW5wdXQgZmlsZXMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgSU5QVVQg
dGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRoYXQg
Y29udGFpbgorIyBkb2N1bWVudGVkIHNvdXJjZSBmaWxlcy4gWW91IG1heSBlbnRlciBmaWxlIG5h
bWVzIGxpa2UgbXlmaWxlLmNwcCBvcgorIyBkaXJlY3RvcmllcyBsaWtlIC91c3Ivc3JjL215cHJv
amVjdC4gU2VwYXJhdGUgdGhlIGZpbGVzIG9yIGRpcmVjdG9yaWVzIHdpdGgKKyMgc3BhY2VzLgor
IyBOb3RlOiBJZiB0aGlzIHRhZyBpcyBlbXB0eSB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgc2Vh
cmNoZWQuCisKK0lOUFVUICAgICAgICAgICAgICAgICAgPSAuLi9pbmNsdWRlIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAuLi9zcmMvbGliX2pzb24gXAorICAgICAgICAgICAgICAgICAgICAg
ICAgIC4KKworIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXIg
ZW5jb2Rpbmcgb2YgdGhlIHNvdXJjZSBmaWxlcworIyB0aGF0IGRveHlnZW4gcGFyc2VzLiBJbnRl
cm5hbGx5IGRveHlnZW4gdXNlcyB0aGUgVVRGLTggZW5jb2RpbmcuIERveHlnZW4gdXNlcworIyBs
aWJpY29udiAob3IgdGhlIGljb252IGJ1aWx0IGludG8gbGliYykgZm9yIHRoZSB0cmFuc2NvZGlu
Zy4gU2VlIHRoZSBsaWJpY29udgorIyBkb2N1bWVudGF0aW9uIChzZWU6IGh0dHA6Ly93d3cuZ251
Lm9yZy9zb2Z0d2FyZS9saWJpY29udikgZm9yIHRoZSBsaXN0IG9mCisjIHBvc3NpYmxlIGVuY29k
aW5ncy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFVURi04LgorCitJTlBVVF9FTkNPRElORyAg
ICAgICAgID0gVVRGLTgKKworIyBJZiB0aGUgdmFsdWUgb2YgdGhlIElOUFVUIHRhZyBjb250YWlu
cyBkaXJlY3RvcmllcywgeW91IGNhbiB1c2UgdGhlCisjIEZJTEVfUEFUVEVSTlMgdGFnIHRvIHNw
ZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybnMgKGxpa2UgKi5jcHAgYW5kCisjICou
aCkgdG8gZmlsdGVyIG91dCB0aGUgc291cmNlLWZpbGVzIGluIHRoZSBkaXJlY3Rvcmllcy4gSWYg
bGVmdCBibGFuayB0aGUKKyMgZm9sbG93aW5nIHBhdHRlcm5zIGFyZSB0ZXN0ZWQ6Ki5jLCAqLmNj
LCAqLmN4eCwgKi5jcHAsICouYysrLCAqLmphdmEsICouaWksCisjICouaXh4LCAqLmlwcCwgKi5p
KyssICouaW5sLCAqLmlkbCwgKi5kZGwsICoub2RsLCAqLmgsICouaGgsICouaHh4LCAqLmhwcCwK
KyMgKi5oKyssICouY3MsICouZCwgKi5waHAsICoucGhwNCwgKi5waHA1LCAqLnBodG1sLCAqLmlu
YywgKi5tLCAqLm1hcmtkb3duLAorIyAqLm1kLCAqLm1tLCAqLmRveCwgKi5weSwgKi5mOTAsICou
ZiwgKi5mb3IsICoudGNsLCAqLnZoZCwgKi52aGRsLCAqLnVjZiwKKyMgKi5xc2YsICouYXMgYW5k
ICouanMuCisKK0ZJTEVfUEFUVEVSTlMgICAgICAgICAgPSAqLmggXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICouY3BwIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLmlubCBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKi5kb3gKKworIyBUaGUgUkVDVVJTSVZFIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHN1YmRpcmVjdG9yaWVzIHNob3VsZAorIyBi
ZSBzZWFyY2hlZCBmb3IgaW5wdXQgZmlsZXMgYXMgd2VsbC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgorCitSRUNVUlNJVkUgICAgICAgICAgICAgID0gWUVTCisKKyMgVGhlIEVYQ0xVREUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRoYXQg
c2hvdWxkIGJlCisjIGV4Y2x1ZGVkIGZyb20gdGhlIElOUFVUIHNvdXJjZSBmaWxlcy4gVGhpcyB3
YXkgeW91IGNhbiBlYXNpbHkgZXhjbHVkZSBhCisjIHN1YmRpcmVjdG9yeSBmcm9tIGEgZGlyZWN0
b3J5IHRyZWUgd2hvc2Ugcm9vdCBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgSU5QVVQgdGFnLgorIwor
IyBOb3RlIHRoYXQgcmVsYXRpdmUgcGF0aHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3Rvcnkg
ZnJvbSB3aGljaCBkb3h5Z2VuIGlzCisjIHJ1bi4KKworRVhDTFVERSAgICAgICAgICAgICAgICA9
CisKKyMgVGhlIEVYQ0xVREVfU1lNTElOS1MgdGFnIGNhbiBiZSB1c2VkIHRvIHNlbGVjdCB3aGV0
aGVyIG9yIG5vdCBmaWxlcyBvcgorIyBkaXJlY3RvcmllcyB0aGF0IGFyZSBzeW1ib2xpYyBsaW5r
cyAoYSBVbml4IGZpbGUgc3lzdGVtIGZlYXR1cmUpIGFyZSBleGNsdWRlZAorIyBmcm9tIHRoZSBp
bnB1dC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitFWENMVURFX1NZTUxJTktTICAg
ICAgID0gTk8KKworIyBJZiB0aGUgdmFsdWUgb2YgdGhlIElOUFVUIHRhZyBjb250YWlucyBkaXJl
Y3RvcmllcywgeW91IGNhbiB1c2UgdGhlCisjIEVYQ0xVREVfUEFUVEVSTlMgdGFnIHRvIHNwZWNp
Znkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybnMgdG8gZXhjbHVkZQorIyBjZXJ0YWluIGZp
bGVzIGZyb20gdGhvc2UgZGlyZWN0b3JpZXMuCisjCisjIE5vdGUgdGhhdCB0aGUgd2lsZGNhcmRz
IGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIGZpbGUgd2l0aCBhYnNvbHV0ZSBwYXRoLCBzbyB0bwor
IyBleGNsdWRlIGFsbCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBleGFtcGxlIHVzZSB0aGUgcGF0dGVy
biAqL3Rlc3QvKgorCitFWENMVURFX1BBVFRFUk5TICAgICAgID0KKworIyBUaGUgRVhDTFVERV9T
WU1CT0xTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHN5bWJvbCBuYW1l
cworIyAobmFtZXNwYWNlcywgY2xhc3NlcywgZnVuY3Rpb25zLCBldGMuKSB0aGF0IHNob3VsZCBi
ZSBleGNsdWRlZCBmcm9tIHRoZQorIyBvdXRwdXQuIFRoZSBzeW1ib2wgbmFtZSBjYW4gYmUgYSBm
dWxseSBxdWFsaWZpZWQgbmFtZSwgYSB3b3JkLCBvciBpZiB0aGUKKyMgd2lsZGNhcmQgKiBpcyB1
c2VkLCBhIHN1YnN0cmluZy4gRXhhbXBsZXM6IEFOYW1lc3BhY2UsIEFDbGFzcywKKyMgQUNsYXNz
OjpBTmFtZXNwYWNlLCBBTmFtZXNwYWNlOjoqVGVzdAorIworIyBOb3RlIHRoYXQgdGhlIHdpbGRj
YXJkcyBhcmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBmaWxlIHdpdGggYWJzb2x1dGUgcGF0aCwgc28g
dG8KKyMgZXhjbHVkZSBhbGwgdGVzdCBkaXJlY3RvcmllcyB1c2UgdGhlIHBhdHRlcm4gKi90ZXN0
LyoKKworRVhDTFVERV9TWU1CT0xTICAgICAgICA9CisKKyMgVGhlIEVYQU1QTEVfUEFUSCB0YWcg
Y2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBmaWxlcyBvciBkaXJlY3Rvcmllcwor
IyB0aGF0IGNvbnRhaW4gZXhhbXBsZSBjb2RlIGZyYWdtZW50cyB0aGF0IGFyZSBpbmNsdWRlZCAo
c2VlIHRoZSBcaW5jbHVkZQorIyBjb21tYW5kKS4KKworRVhBTVBMRV9QQVRIICAgICAgICAgICA9
IC4uCisKKyMgSWYgdGhlIHZhbHVlIG9mIHRoZSBFWEFNUExFX1BBVEggdGFnIGNvbnRhaW5zIGRp
cmVjdG9yaWVzLCB5b3UgY2FuIHVzZSB0aGUKKyMgRVhBTVBMRV9QQVRURVJOUyB0YWcgdG8gc3Bl
Y2lmeSBvbmUgb3IgbW9yZSB3aWxkY2FyZCBwYXR0ZXJuIChsaWtlICouY3BwIGFuZAorIyAqLmgp
IHRvIGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuIElmIGxl
ZnQgYmxhbmsgYWxsCisjIGZpbGVzIGFyZSBpbmNsdWRlZC4KKworRVhBTVBMRV9QQVRURVJOUyAg
ICAgICA9ICoKKworIyBJZiB0aGUgRVhBTVBMRV9SRUNVUlNJVkUgdGFnIGlzIHNldCB0byBZRVMg
dGhlbiBzdWJkaXJlY3RvcmllcyB3aWxsIGJlCisjIHNlYXJjaGVkIGZvciBpbnB1dCBmaWxlcyB0
byBiZSB1c2VkIHdpdGggdGhlIFxpbmNsdWRlIG9yIFxkb250aW5jbHVkZSBjb21tYW5kcworIyBp
cnJlc3BlY3RpdmUgb2YgdGhlIHZhbHVlIG9mIHRoZSBSRUNVUlNJVkUgdGFnLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogTk8uCisKK0VYQU1QTEVfUkVDVVJTSVZFICAgICAgPSBOTworCisjIFRo
ZSBJTUFHRV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGZpbGVz
IG9yIGRpcmVjdG9yaWVzCisjIHRoYXQgY29udGFpbiBpbWFnZXMgdGhhdCBhcmUgdG8gYmUgaW5j
bHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gKHNlZSB0aGUKKyMgXGltYWdlIGNvbW1hbmQpLgor
CitJTUFHRV9QQVRIICAgICAgICAgICAgID0KKworIyBUaGUgSU5QVVRfRklMVEVSIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJvZ3JhbSB0aGF0IGRveHlnZW4gc2hvdWxkCisjIGludm9r
ZSB0byBmaWx0ZXIgZm9yIGVhY2ggaW5wdXQgZmlsZS4gRG94eWdlbiB3aWxsIGludm9rZSB0aGUg
ZmlsdGVyIHByb2dyYW0KKyMgYnkgZXhlY3V0aW5nICh2aWEgcG9wZW4oKSkgdGhlIGNvbW1hbmQ6
CisjCisjIDxmaWx0ZXI+IDxpbnB1dC1maWxlPgorIworIyB3aGVyZSA8ZmlsdGVyPiBpcyB0aGUg
dmFsdWUgb2YgdGhlIElOUFVUX0ZJTFRFUiB0YWcsIGFuZCA8aW5wdXQtZmlsZT4gaXMgdGhlCisj
IG5hbWUgb2YgYW4gaW5wdXQgZmlsZS4gRG94eWdlbiB3aWxsIHRoZW4gdXNlIHRoZSBvdXRwdXQg
dGhhdCB0aGUgZmlsdGVyCisjIHByb2dyYW0gd3JpdGVzIHRvIHN0YW5kYXJkIG91dHB1dC4gSWYg
RklMVEVSX1BBVFRFUk5TIGlzIHNwZWNpZmllZCwgdGhpcyB0YWcKKyMgd2lsbCBiZSBpZ25vcmVk
LgorIworIyBOb3RlIHRoYXQgdGhlIGZpbHRlciBtdXN0IG5vdCBhZGQgb3IgcmVtb3ZlIGxpbmVz
OyBpdCBpcyBhcHBsaWVkIGJlZm9yZSB0aGUKKyMgY29kZSBpcyBzY2FubmVkLCBidXQgbm90IHdo
ZW4gdGhlIG91dHB1dCBjb2RlIGlzIGdlbmVyYXRlZC4gSWYgbGluZXMgYXJlIGFkZGVkCisjIG9y
IHJlbW92ZWQsIHRoZSBhbmNob3JzIHdpbGwgbm90IGJlIHBsYWNlZCBjb3JyZWN0bHkuCisKK0lO
UFVUX0ZJTFRFUiAgICAgICAgICAgPQorCisjIFRoZSBGSUxURVJfUEFUVEVSTlMgdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgZmlsdGVycyBvbiBhIHBlciBmaWxlIHBhdHRlcm4KKyMgYmFzaXMu
IERveHlnZW4gd2lsbCBjb21wYXJlIHRoZSBmaWxlIG5hbWUgd2l0aCBlYWNoIHBhdHRlcm4gYW5k
IGFwcGx5IHRoZQorIyBmaWx0ZXIgaWYgdGhlcmUgaXMgYSBtYXRjaC4gVGhlIGZpbHRlcnMgYXJl
IGEgbGlzdCBvZiB0aGUgZm9ybTogcGF0dGVybj1maWx0ZXIKKyMgKGxpa2UgKi5jcHA9bXlfY3Bw
X2ZpbHRlcikuIFNlZSBJTlBVVF9GSUxURVIgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gaG93
CisjIGZpbHRlcnMgYXJlIHVzZWQuIElmIHRoZSBGSUxURVJfUEFUVEVSTlMgdGFnIGlzIGVtcHR5
IG9yIGlmIG5vbmUgb2YgdGhlCisjIHBhdHRlcm5zIG1hdGNoIHRoZSBmaWxlIG5hbWUsIElOUFVU
X0ZJTFRFUiBpcyBhcHBsaWVkLgorCitGSUxURVJfUEFUVEVSTlMgICAgICAgID0KKworIyBJZiB0
aGUgRklMVEVSX1NPVVJDRV9GSUxFUyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIGlucHV0IGZpbHRl
ciAoaWYgc2V0IHVzaW5nCisjIElOUFVUX0ZJTFRFUiApIHdpbGwgYWxzbyBiZSB1c2VkIHRvIGZp
bHRlciB0aGUgaW5wdXQgZmlsZXMgdGhhdCBhcmUgdXNlZCBmb3IKKyMgcHJvZHVjaW5nIHRoZSBz
b3VyY2UgZmlsZXMgdG8gYnJvd3NlIChpLmUuIHdoZW4gU09VUkNFX0JST1dTRVIgaXMgc2V0IHRv
IFlFUykuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworRklMVEVSX1NPVVJDRV9GSUxF
UyAgICA9IE5PCisKKyMgVGhlIEZJTFRFUl9TT1VSQ0VfUEFUVEVSTlMgdGFnIGNhbiBiZSB1c2Vk
IHRvIHNwZWNpZnkgc291cmNlIGZpbHRlcnMgcGVyIGZpbGUKKyMgcGF0dGVybi4gQSBwYXR0ZXJu
IHdpbGwgb3ZlcnJpZGUgdGhlIHNldHRpbmcgZm9yIEZJTFRFUl9QQVRURVJOIChpZiBhbnkpIGFu
ZAorIyBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGRpc2FibGUgc291cmNlIGZpbHRlcmluZyBmb3Ig
YSBzcGVjaWZpYyBwYXR0ZXJuIHVzaW5nCisjICouZXh0PSAoc28gd2l0aG91dCBuYW1pbmcgYSBm
aWx0ZXIpLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRklMVEVSX1NPVVJDRV9G
SUxFUyBpcyBzZXQgdG8gWUVTLgorCitGSUxURVJfU09VUkNFX1BBVFRFUk5TID0KKworIyBJZiB0
aGUgVVNFX01ERklMRV9BU19NQUlOUEFHRSB0YWcgcmVmZXJzIHRvIHRoZSBuYW1lIG9mIGEgbWFy
a2Rvd24gZmlsZSB0aGF0CisjIGlzIHBhcnQgb2YgdGhlIGlucHV0LCBpdHMgY29udGVudHMgd2ls
bCBiZSBwbGFjZWQgb24gdGhlIG1haW4gcGFnZQorIyAoaW5kZXguaHRtbCkuIFRoaXMgY2FuIGJl
IHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIHByb2plY3Qgb24gZm9yIGluc3RhbmNlIEdpdEh1YgorIyBh
bmQgd2FudCB0byByZXVzZSB0aGUgaW50cm9kdWN0aW9uIHBhZ2UgYWxzbyBmb3IgdGhlIGRveHln
ZW4gb3V0cHV0LgorCitVU0VfTURGSUxFX0FTX01BSU5QQUdFID0KKworIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBzb3VyY2UgYnJvd3NpbmcK
KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgU09VUkNFX0JST1dTRVIgdGFnIGlzIHNl
dCB0byBZRVMgdGhlbiBhIGxpc3Qgb2Ygc291cmNlIGZpbGVzIHdpbGwgYmUKKyMgZ2VuZXJhdGVk
LiBEb2N1bWVudGVkIGVudGl0aWVzIHdpbGwgYmUgY3Jvc3MtcmVmZXJlbmNlZCB3aXRoIHRoZXNl
IHNvdXJjZXMuCisjCisjIE5vdGU6IFRvIGdldCByaWQgb2YgYWxsIHNvdXJjZSBjb2RlIGluIHRo
ZSBnZW5lcmF0ZWQgb3V0cHV0LCBtYWtlIHN1cmUgdGhhdAorIyBhbHNvIFZFUkJBVElNX0hFQURF
UlMgaXMgc2V0IHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NPVVJDRV9C
Uk9XU0VSICAgICAgICAgPSBOTworCisjIFNldHRpbmcgdGhlIElOTElORV9TT1VSQ0VTIHRhZyB0
byBZRVMgd2lsbCBpbmNsdWRlIHRoZSBib2R5IG9mIGZ1bmN0aW9ucywKKyMgY2xhc3NlcyBhbmQg
ZW51bXMgZGlyZWN0bHkgaW50byB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgorCitJTkxJTkVfU09VUkNFUyAgICAgICAgID0gTk8KKworIyBTZXR0aW5nIHRo
ZSBTVFJJUF9DT0RFX0NPTU1FTlRTIHRhZyB0byBZRVMgd2lsbCBpbnN0cnVjdCBkb3h5Z2VuIHRv
IGhpZGUgYW55CisjIHNwZWNpYWwgY29tbWVudCBibG9ja3MgZnJvbSBnZW5lcmF0ZWQgc291cmNl
IGNvZGUgZnJhZ21lbnRzLiBOb3JtYWwgQywgQysrIGFuZAorIyBGb3J0cmFuIGNvbW1lbnRzIHdp
bGwgYWx3YXlzIHJlbWFpbiB2aXNpYmxlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgor
CitTVFJJUF9DT0RFX0NPTU1FTlRTICAgID0gWUVTCisKKyMgSWYgdGhlIFJFRkVSRU5DRURfQllf
UkVMQVRJT04gdGFnIGlzIHNldCB0byBZRVMgdGhlbiBmb3IgZWFjaCBkb2N1bWVudGVkCisjIGZ1
bmN0aW9uIGFsbCBkb2N1bWVudGVkIGZ1bmN0aW9ucyByZWZlcmVuY2luZyBpdCB3aWxsIGJlIGxp
c3RlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitSRUZFUkVOQ0VEX0JZX1JFTEFU
SU9OID0gTk8KKworIyBJZiB0aGUgUkVGRVJFTkNFU19SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlF
UyB0aGVuIGZvciBlYWNoIGRvY3VtZW50ZWQgZnVuY3Rpb24KKyMgYWxsIGRvY3VtZW50ZWQgZW50
aXRpZXMgY2FsbGVkL3VzZWQgYnkgdGhhdCBmdW5jdGlvbiB3aWxsIGJlIGxpc3RlZC4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitSRUZFUkVOQ0VTX1JFTEFUSU9OICAgID0gTk8KKwor
IyBJZiB0aGUgUkVGRVJFTkNFU19MSU5LX1NPVVJDRSB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgU09V
UkNFX0JST1dTRVIgdGFnIGlzIHNldAorIyB0byBZRVMsIHRoZW4gdGhlIGh5cGVybGlua3MgZnJv
bSBmdW5jdGlvbnMgaW4gUkVGRVJFTkNFU19SRUxBVElPTiBhbmQKKyMgUkVGRVJFTkNFRF9CWV9S
RUxBVElPTiBsaXN0cyB3aWxsIGxpbmsgdG8gdGhlIHNvdXJjZSBjb2RlLiBPdGhlcndpc2UgdGhl
eSB3aWxsCisjIGxpbmsgdG8gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCisKK1JFRkVSRU5DRVNfTElOS19TT1VSQ0UgPSBZRVMKKworIyBJZiBTT1VSQ0Vf
VE9PTFRJUFMgaXMgZW5hYmxlZCAodGhlIGRlZmF1bHQpIHRoZW4gaG92ZXJpbmcgYSBoeXBlcmxp
bmsgaW4gdGhlCisjIHNvdXJjZSBjb2RlIHdpbGwgc2hvdyBhIHRvb2x0aXAgd2l0aCBhZGRpdGlv
bmFsIGluZm9ybWF0aW9uIHN1Y2ggYXMgcHJvdG90eXBlLAorIyBicmllZiBkZXNjcmlwdGlvbiBh
bmQgbGlua3MgdG8gdGhlIGRlZmluaXRpb24gYW5kIGRvY3VtZW50YXRpb24uIFNpbmNlIHRoaXMK
KyMgd2lsbCBtYWtlIHRoZSBIVE1MIGZpbGUgbGFyZ2VyIGFuZCBsb2FkaW5nIG9mIGxhcmdlIGZp
bGVzIGEgYml0IHNsb3dlciwgeW91CisjIGNhbiBvcHQgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTLgorCitTT1VSQ0VfVE9PTFRJUFMg
ICAgICAgID0gWUVTCisKKyMgSWYgdGhlIFVTRV9IVEFHUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVu
IHRoZSByZWZlcmVuY2VzIHRvIHNvdXJjZSBjb2RlIHdpbGwKKyMgcG9pbnQgdG8gdGhlIEhUTUwg
Z2VuZXJhdGVkIGJ5IHRoZSBodGFncygxKSB0b29sIGluc3RlYWQgb2YgZG94eWdlbiBidWlsdC1p
bgorIyBzb3VyY2UgYnJvd3Nlci4gVGhlIGh0YWdzIHRvb2wgaXMgcGFydCBvZiBHTlUncyBnbG9i
YWwgc291cmNlIHRhZ2dpbmcgc3lzdGVtCisjIChzZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3
YXJlL2dsb2JhbC9nbG9iYWwuaHRtbCkuIFlvdSB3aWxsIG5lZWQgdmVyc2lvbgorIyA0LjguNiBv
ciBoaWdoZXIuCisjCisjIFRvIHVzZSBpdCBkbyB0aGUgZm9sbG93aW5nOgorIyAtIEluc3RhbGwg
dGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGdsb2JhbAorIyAtIEVuYWJsZSBTT1VSQ0VfQlJPV1NFUiBh
bmQgVVNFX0hUQUdTIGluIHRoZSBjb25maWcgZmlsZQorIyAtIE1ha2Ugc3VyZSB0aGUgSU5QVVQg
cG9pbnRzIHRvIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZQorIyAtIFJ1biBkb3h5Z2VuIGFz
IG5vcm1hbAorIworIyBEb3h5Z2VuIHdpbGwgaW52b2tlIGh0YWdzIChhbmQgdGhhdCB3aWxsIGlu
IHR1cm4gaW52b2tlIGd0YWdzKSwgc28gdGhlc2UKKyMgdG9vbHMgbXVzdCBiZSBhdmFpbGFibGUg
ZnJvbSB0aGUgY29tbWFuZCBsaW5lIChpLmUuIGluIHRoZSBzZWFyY2ggcGF0aCkuCisjCisjIFRo
ZSByZXN1bHQ6IGluc3RlYWQgb2YgdGhlIHNvdXJjZSBicm93c2VyIGdlbmVyYXRlZCBieSBkb3h5
Z2VuLCB0aGUgbGlua3MgdG8KKyMgc291cmNlIGNvZGUgd2lsbCBub3cgcG9pbnQgdG8gdGhlIG91
dHB1dCBvZiBodGFncy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgU09VUkNFX0JST1dTRVIgaXMgc2V0IHRvIFlFUy4KKworVVNF
X0hUQUdTICAgICAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIFZFUkJBVElNX0hFQURFUlMgdGFn
IGlzIHNldCB0aGUgWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKKyMgdmVyYmF0aW0g
Y29weSBvZiB0aGUgaGVhZGVyIGZpbGUgZm9yIGVhY2ggY2xhc3MgZm9yIHdoaWNoIGFuIGluY2x1
ZGUgaXMKKyMgc3BlY2lmaWVkLiBTZXQgdG8gTk8gdG8gZGlzYWJsZSB0aGlzLgorIyBTZWUgYWxz
bzogU2VjdGlvbiBcY2xhc3MuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1ZFUkJB
VElNX0hFQURFUlMgICAgICAgPSBOTworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3Vy
YXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBhbHBoYWJldGljYWwgY2xhc3MgaW5kZXgKKyMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgQUxQSEFCRVRJQ0FMX0lOREVYIHRhZyBpcyBz
ZXQgdG8gWUVTLCBhbiBhbHBoYWJldGljYWwgaW5kZXggb2YgYWxsCisjIGNvbXBvdW5kcyB3aWxs
IGJlIGdlbmVyYXRlZC4gRW5hYmxlIHRoaXMgaWYgdGhlIHByb2plY3QgY29udGFpbnMgYSBsb3Qg
b2YKKyMgY2xhc3Nlcywgc3RydWN0cywgdW5pb25zIG9yIGludGVyZmFjZXMuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBZRVMuCisKK0FMUEhBQkVUSUNBTF9JTkRFWCAgICAgPSBZRVMKK1RPQ19J
TkNMVURFX0hFQURJTkdTID0gMgorCisjIFRoZSBDT0xTX0lOX0FMUEhBX0lOREVYIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbgorIyB3aGljaCB0aGUg
YWxwaGFiZXRpY2FsIGluZGV4IGxpc3Qgd2lsbCBiZSBzcGxpdC4KKyMgTWluaW11bSB2YWx1ZTog
MSwgbWF4aW11bSB2YWx1ZTogMjAsIGRlZmF1bHQgdmFsdWU6IDUuCisjIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBBTFBIQUJFVElDQUxfSU5ERVggaXMgc2V0IHRvIFlFUy4KKworQ09M
U19JTl9BTFBIQV9JTkRFWCAgICA9IDUKKworIyBJbiBjYXNlIGFsbCBjbGFzc2VzIGluIGEgcHJv
amVjdCBzdGFydCB3aXRoIGEgY29tbW9uIHByZWZpeCwgYWxsIGNsYXNzZXMgd2lsbAorIyBiZSBw
dXQgdW5kZXIgdGhlIHNhbWUgaGVhZGVyIGluIHRoZSBhbHBoYWJldGljYWwgaW5kZXguIFRoZSBJ
R05PUkVfUFJFRklYIHRhZworIyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJlZml4IChvciBh
IGxpc3Qgb2YgcHJlZml4ZXMpIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQKKyMgd2hpbGUgZ2VuZXJh
dGluZyB0aGUgaW5kZXggaGVhZGVycy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEFMUEhBQkVUSUNBTF9JTkRFWCBpcyBzZXQgdG8gWUVTLgorCitJR05PUkVfUFJFRklYICAgICAg
ICAgID0KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVs
YXRlZCB0byB0aGUgSFRNTCBvdXRwdXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUg
R0VORVJBVEVfSFRNTCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgSFRN
TCBvdXRwdXQKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworR0VORVJBVEVfSFRNTCAg
ICAgICAgICA9IFlFUworCisjIFRoZSBIVE1MX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5
IHdoZXJlIHRoZSBIVE1MIGRvY3Mgd2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0aCBp
cyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGluIGZy
b250IG9mCisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IGh0bWwuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisK
K0hUTUxfT1VUUFVUICAgICAgICAgICAgPSAlSFRNTF9PVVRQVVQlCisKKyMgVGhlIEhUTUxfRklM
RV9FWFRFTlNJT04gdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGUgZXh0ZW5zaW9u
IGZvciBlYWNoCisjIGdlbmVyYXRlZCBIVE1MIHBhZ2UgKGZvciBleGFtcGxlOiAuaHRtLCAucGhw
LCAuYXNwKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IC5odG1sLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0ZJ
TEVfRVhURU5TSU9OICAgID0gLmh0bWwKKworIyBUaGUgSFRNTF9IRUFERVIgdGFnIGNhbiBiZSB1
c2VkIHRvIHNwZWNpZnkgYSB1c2VyLWRlZmluZWQgSFRNTCBoZWFkZXIgZmlsZSBmb3IKKyMgZWFj
aCBnZW5lcmF0ZWQgSFRNTCBwYWdlLiBJZiB0aGUgdGFnIGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3
aWxsIGdlbmVyYXRlIGEKKyMgc3RhbmRhcmQgaGVhZGVyLgorIworIyBUbyBnZXQgdmFsaWQgSFRN
TCB0aGUgaGVhZGVyIGZpbGUgdGhhdCBpbmNsdWRlcyBhbnkgc2NyaXB0cyBhbmQgc3R5bGUgc2hl
ZXRzCisjIHRoYXQgZG94eWdlbiBuZWVkcywgd2hpY2ggaXMgZGVwZW5kZW50IG9uIHRoZSBjb25m
aWd1cmF0aW9uIG9wdGlvbnMgdXNlZCAoZS5nLgorIyB0aGUgc2V0dGluZyBHRU5FUkFURV9UUkVF
VklFVykuIEl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0byBzdGFydCB3aXRoIGEKKyMgZGVmYXVs
dCBoZWFkZXIgdXNpbmcKKyMgZG94eWdlbiAtdyBodG1sIG5ld19oZWFkZXIuaHRtbCBuZXdfZm9v
dGVyLmh0bWwgbmV3X3N0eWxlc2hlZXQuY3NzCisjIFlvdXJDb25maWdGaWxlCisjIGFuZCB0aGVu
IG1vZGlmeSB0aGUgZmlsZSBuZXdfaGVhZGVyLmh0bWwuIFNlZSBhbHNvIHNlY3Rpb24gIkRveHln
ZW4gdXNhZ2UiCisjIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlIGRlZmF1
bHQgaGVhZGVyIHRoYXQgZG94eWdlbiBub3JtYWxseQorIyB1c2VzLgorIyBOb3RlOiBUaGUgaGVh
ZGVyIGlzIHN1YmplY3QgdG8gY2hhbmdlIHNvIHlvdSB0eXBpY2FsbHkgaGF2ZSB0byByZWdlbmVy
YXRlIHRoZQorIyBkZWZhdWx0IGhlYWRlciB3aGVuIHVwZ3JhZGluZyB0byBhIG5ld2VyIHZlcnNp
b24gb2YgZG94eWdlbi4gRm9yIGEgZGVzY3JpcHRpb24KKyMgb2YgdGhlIHBvc3NpYmxlIG1hcmtl
cnMgYW5kIGJsb2NrIG5hbWVzIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9I
RUFERVIgICAgICAgICAgICA9IGhlYWRlci5odG1sCisKKyMgVGhlIEhUTUxfRk9PVEVSIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIEhUTUwgZm9vdGVyIGZvciBlYWNo
CisjIGdlbmVyYXRlZCBIVE1MIHBhZ2UuIElmIHRoZSB0YWcgaXMgbGVmdCBibGFuayBkb3h5Z2Vu
IHdpbGwgZ2VuZXJhdGUgYSBzdGFuZGFyZAorIyBmb290ZXIuIFNlZSBIVE1MX0hFQURFUiBmb3Ig
bW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgYSBkZWZhdWx0CisjIGZvb3RlciBh
bmQgd2hhdCBzcGVjaWFsIGNvbW1hbmRzIGNhbiBiZSB1c2VkIGluc2lkZSB0aGUgZm9vdGVyLiBT
ZWUgYWxzbworIyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93
IHRvIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGZvb3RlcgorIyB0aGF0IGRveHlnZW4gbm9ybWFsbHkg
dXNlcy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMg
c2V0IHRvIFlFUy4KKworSFRNTF9GT09URVIgICAgICAgICAgICA9IGZvb3Rlci5odG1sCisKKyMg
VGhlIEhUTUxfU1RZTEVTSEVFVCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHVzZXItZGVm
aW5lZCBjYXNjYWRpbmcgc3R5bGUKKyMgc2hlZXQgdGhhdCBpcyB1c2VkIGJ5IGVhY2ggSFRNTCBw
YWdlLiBJdCBjYW4gYmUgdXNlZCB0byBmaW5lLXR1bmUgdGhlIGxvb2sgb2YKKyMgdGhlIEhUTUwg
b3V0cHV0LiBJZiBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGRlZmF1bHQgc3R5
bGUgc2hlZXQuCisjIFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBpbmZvcm1h
dGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlIHN0eWxlCisjIHNoZWV0IHRoYXQgZG94eWdlbiBu
b3JtYWxseSB1c2VzLgorIyBOb3RlOiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgSFRNTF9FWFRS
QV9TVFlMRVNIRUVUIGluc3RlYWQgb2YgdGhpcyB0YWcsIGFzCisjIGl0IGlzIG1vcmUgcm9idXN0
IGFuZCB0aGlzIHRhZyAoSFRNTF9TVFlMRVNIRUVUKSB3aWxsIGluIHRoZSBmdXR1cmUgYmVjb21l
CisjIG9ic29sZXRlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
SFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX1NUWUxFU0hFRVQgICAgICAgID0KKworIyBUaGUg
SFRNTF9FWFRSQV9TVFlMRVNIRUVUIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFuIGFkZGl0
aW9uYWwgdXNlci0KKyMgZGVmaW5lZCBjYXNjYWRpbmcgc3R5bGUgc2hlZXQgdGhhdCBpcyBpbmNs
dWRlZCBhZnRlciB0aGUgc3RhbmRhcmQgc3R5bGUgc2hlZXRzCisjIGNyZWF0ZWQgYnkgZG94eWdl
bi4gVXNpbmcgdGhpcyBvcHRpb24gb25lIGNhbiBvdmVycnVsZSBjZXJ0YWluIHN0eWxlIGFzcGVj
dHMuCisjIFRoaXMgaXMgcHJlZmVycmVkIG92ZXIgdXNpbmcgSFRNTF9TVFlMRVNIRUVUIHNpbmNl
IGl0IGRvZXMgbm90IHJlcGxhY2UgdGhlCisjIHN0YW5kYXJkIHN0eWxlIHNoZWV0IGFuZCBpcyB0
aGVyZWZvcmUgbW9yZSByb2J1c3QgYWdhaW5zdCBmdXR1cmUgdXBkYXRlcy4KKyMgRG94eWdlbiB3
aWxsIGNvcHkgdGhlIHN0eWxlIHNoZWV0IGZpbGUgdG8gdGhlIG91dHB1dCBkaXJlY3RvcnkuIEZv
ciBhbiBleGFtcGxlCisjIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9FWFRS
QV9TVFlMRVNIRUVUICA9CisKKyMgVGhlIEhUTUxfRVhUUkFfRklMRVMgdGFnIGNhbiBiZSB1c2Vk
IHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZXh0cmEgaW1hZ2VzIG9yCisjIG90aGVyIHNvdXJjZSBm
aWxlcyB3aGljaCBzaG91bGQgYmUgY29waWVkIHRvIHRoZSBIVE1MIG91dHB1dCBkaXJlY3Rvcnku
IE5vdGUKKyMgdGhhdCB0aGVzZSBmaWxlcyB3aWxsIGJlIGNvcGllZCB0byB0aGUgYmFzZSBIVE1M
IG91dHB1dCBkaXJlY3RvcnkuIFVzZSB0aGUKKyMgJHJlbHBhdGheIG1hcmtlciBpbiB0aGUgSFRN
TF9IRUFERVIgYW5kL29yIEhUTUxfRk9PVEVSIGZpbGVzIHRvIGxvYWQgdGhlc2UKKyMgZmlsZXMu
IEluIHRoZSBIVE1MX1NUWUxFU0hFRVQgZmlsZSwgdXNlIHRoZSBmaWxlIG5hbWUgb25seS4gQWxz
byBub3RlIHRoYXQgdGhlCisjIGZpbGVzIHdpbGwgYmUgY29waWVkIGFzLWlzOyB0aGVyZSBhcmUg
bm8gY29tbWFuZHMgb3IgbWFya2VycyBhdmFpbGFibGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfRVhUUkFfRklM
RVMgICAgICAgPQorCisjIFRoZSBIVE1MX0NPTE9SU1RZTEVfSFVFIHRhZyBjb250cm9scyB0aGUg
Y29sb3Igb2YgdGhlIEhUTUwgb3V0cHV0LiBEb3h5Z2VuCisjIHdpbGwgYWRqdXN0IHRoZSBjb2xv
cnMgaW4gdGhlIHN0eWxlc2hlZXQgYW5kIGJhY2tncm91bmQgaW1hZ2VzIGFjY29yZGluZyB0bwor
IyB0aGlzIGNvbG9yLiBIdWUgaXMgc3BlY2lmaWVkIGFzIGFuIGFuZ2xlIG9uIGEgY29sb3J3aGVl
bCwgc2VlCisjIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSHVlIGZvciBtb3JlIGluZm9y
bWF0aW9uLiBGb3IgaW5zdGFuY2UgdGhlIHZhbHVlCisjIDAgcmVwcmVzZW50cyByZWQsIDYwIGlz
IHllbGxvdywgMTIwIGlzIGdyZWVuLCAxODAgaXMgY3lhbiwgMjQwIGlzIGJsdWUsIDMwMAorIyBw
dXJwbGUsIGFuZCAzNjAgaXMgcmVkIGFnYWluLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVt
IHZhbHVlOiAzNTksIGRlZmF1bHQgdmFsdWU6IDIyMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9DT0xPUlNUWUxF
X0hVRSAgICA9IDIyMAorCisjIFRoZSBIVE1MX0NPTE9SU1RZTEVfU0FUIHRhZyBjb250cm9scyB0
aGUgcHVyaXR5IChvciBzYXR1cmF0aW9uKSBvZiB0aGUgY29sb3JzCisjIGluIHRoZSBIVE1MIG91
dHB1dC4gRm9yIGEgdmFsdWUgb2YgMCB0aGUgb3V0cHV0IHdpbGwgdXNlIGdyYXlzY2FsZXMgb25s
eS4gQQorIyB2YWx1ZSBvZiAyNTUgd2lsbCBwcm9kdWNlIHRoZSBtb3N0IHZpdmlkIGNvbG9ycy4K
KyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMjU1LCBkZWZhdWx0IHZhbHVlOiAx
MDAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNl
dCB0byBZRVMuCisKK0hUTUxfQ09MT1JTVFlMRV9TQVQgICAgPSAxMDAKKworIyBUaGUgSFRNTF9D
T0xPUlNUWUxFX0dBTU1BIHRhZyBjb250cm9scyB0aGUgZ2FtbWEgY29ycmVjdGlvbiBhcHBsaWVk
IHRvIHRoZQorIyBsdW1pbmFuY2UgY29tcG9uZW50IG9mIHRoZSBjb2xvcnMgaW4gdGhlIEhUTUwg
b3V0cHV0LiBWYWx1ZXMgYmVsb3cgMTAwCisjIGdyYWR1YWxseSBtYWtlIHRoZSBvdXRwdXQgbGln
aHRlciwgd2hlcmVhcyB2YWx1ZXMgYWJvdmUgMTAwIG1ha2UgdGhlIG91dHB1dAorIyBkYXJrZXIu
IFRoZSB2YWx1ZSBkaXZpZGVkIGJ5IDEwMCBpcyB0aGUgYWN0dWFsIGdhbW1hIGFwcGxpZWQsIHNv
IDgwIHJlcHJlc2VudHMKKyMgYSBnYW1tYSBvZiAwLjgsIFRoZSB2YWx1ZSAyMjAgcmVwcmVzZW50
cyBhIGdhbW1hIG9mIDIuMiwgYW5kIDEwMCBkb2VzIG5vdAorIyBjaGFuZ2UgdGhlIGdhbW1hLgor
IyBNaW5pbXVtIHZhbHVlOiA0MCwgbWF4aW11bSB2YWx1ZTogMjQwLCBkZWZhdWx0IHZhbHVlOiA4
MC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0
IHRvIFlFUy4KKworSFRNTF9DT0xPUlNUWUxFX0dBTU1BICA9IDgwCisKKyMgSWYgdGhlIEhUTUxf
VElNRVNUQU1QIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGZvb3RlciBvZiBlYWNoIGdlbmVy
YXRlZCBIVE1MCisjIHBhZ2Ugd2lsbCBjb250YWluIHRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhl
IHBhZ2Ugd2FzIGdlbmVyYXRlZC4gU2V0dGluZyB0aGlzCisjIHRvIE5PIGNhbiBoZWxwIHdoZW4g
Y29tcGFyaW5nIHRoZSBvdXRwdXQgb2YgbXVsdGlwbGUgcnVucy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hU
TUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9USU1FU1RBTVAgICAgICAgICA9IE5PCisKKyMgSWYg
dGhlIEhUTUxfRFlOQU1JQ19TRUNUSU9OUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBnZW5l
cmF0ZWQgSFRNTAorIyBkb2N1bWVudGF0aW9uIHdpbGwgY29udGFpbiBzZWN0aW9ucyB0aGF0IGNh
biBiZSBoaWRkZW4gYW5kIHNob3duIGFmdGVyIHRoZQorIyBwYWdlIGhhcyBsb2FkZWQuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9EWU5BTUlDX1NFQ1RJT05TICA9
IFlFUworCisjIFdpdGggSFRNTF9JTkRFWF9OVU1fRU5UUklFUyBvbmUgY2FuIGNvbnRyb2wgdGhl
IHByZWZlcnJlZCBudW1iZXIgb2YgZW50cmllcworIyBzaG93biBpbiB0aGUgdmFyaW91cyB0cmVl
IHN0cnVjdHVyZWQgaW5kaWNlcyBpbml0aWFsbHk7IHRoZSB1c2VyIGNhbiBleHBhbmQKKyMgYW5k
IGNvbGxhcHNlIGVudHJpZXMgZHluYW1pY2FsbHkgbGF0ZXIgb24uIERveHlnZW4gd2lsbCBleHBh
bmQgdGhlIHRyZWUgdG8KKyMgc3VjaCBhIGxldmVsIHRoYXQgYXQgbW9zdCB0aGUgc3BlY2lmaWVk
IG51bWJlciBvZiBlbnRyaWVzIGFyZSB2aXNpYmxlICh1bmxlc3MKKyMgYSBmdWxseSBjb2xsYXBz
ZWQgdHJlZSBhbHJlYWR5IGV4Y2VlZHMgdGhpcyBhbW91bnQpLiBTbyBzZXR0aW5nIHRoZSBudW1i
ZXIgb2YKKyMgZW50cmllcyAxIHdpbGwgcHJvZHVjZSBhIGZ1bGwgY29sbGFwc2VkIHRyZWUgYnkg
ZGVmYXVsdC4gMCBpcyBhIHNwZWNpYWwgdmFsdWUKKyMgcmVwcmVzZW50aW5nIGFuIGluZmluaXRl
IG51bWJlciBvZiBlbnRyaWVzIGFuZCB3aWxsIHJlc3VsdCBpbiBhIGZ1bGwgZXhwYW5kZWQKKyMg
dHJlZSBieSBkZWZhdWx0LgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5OTk5
LCBkZWZhdWx0IHZhbHVlOiAxMDAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfSU5ERVhfTlVNX0VOVFJJRVMgPSAx
MDAKKworIyBJZiB0aGUgR0VORVJBVEVfRE9DU0VUIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlv
bmFsIGluZGV4IGZpbGVzIHdpbGwgYmUKKyMgZ2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVzZWQgYXMg
aW5wdXQgZm9yIEFwcGxlJ3MgWGNvZGUgMyBpbnRlZ3JhdGVkIGRldmVsb3BtZW50CisjIGVudmly
b25tZW50IChzZWU6IGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlLyksIGlu
dHJvZHVjZWQgd2l0aAorIyBPU1ggMTAuNSAoTGVvcGFyZCkuIFRvIGNyZWF0ZSBhIGRvY3VtZW50
YXRpb24gc2V0LCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQorIyBNYWtlZmlsZSBpbiB0aGUgSFRN
TCBvdXRwdXQgZGlyZWN0b3J5LiBSdW5uaW5nIG1ha2Ugd2lsbCBwcm9kdWNlIHRoZSBkb2NzZXQg
aW4KKyMgdGhhdCBkaXJlY3RvcnkgYW5kIHJ1bm5pbmcgbWFrZSBpbnN0YWxsIHdpbGwgaW5zdGFs
bCB0aGUgZG9jc2V0IGluCisjIH4vTGlicmFyeS9EZXZlbG9wZXIvU2hhcmVkL0RvY3VtZW50YXRp
b24vRG9jU2V0cyBzbyB0aGF0IFhjb2RlIHdpbGwgZmluZCBpdCBhdAorIyBzdGFydHVwLiBTZWUg
aHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vdG9vbHMvY3JlYXRpbmdkb2NzZXRzd2l0aGRveHln
ZW4uaHRtbAorIyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBz
ZXQgdG8gWUVTLgorCitHRU5FUkFURV9ET0NTRVQgICAgICAgID0gTk8KKworIyBUaGlzIHRhZyBk
ZXRlcm1pbmVzIHRoZSBuYW1lIG9mIHRoZSBkb2NzZXQgZmVlZC4gQSBkb2N1bWVudGF0aW9uIGZl
ZWQgcHJvdmlkZXMKKyMgYW4gdW1icmVsbGEgdW5kZXIgd2hpY2ggbXVsdGlwbGUgZG9jdW1lbnRh
dGlvbiBzZXRzIGZyb20gYSBzaW5nbGUgcHJvdmlkZXIKKyMgKHN1Y2ggYXMgYSBjb21wYW55IG9y
IHByb2R1Y3Qgc3VpdGUpIGNhbiBiZSBncm91cGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
RG94eWdlbiBnZW5lcmF0ZWQgZG9jcy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgorCitET0NTRVRfRkVFRE5BTUUgICAgICAg
ID0gIkRveHlnZW4gZ2VuZXJhdGVkIGRvY3MiCisKKyMgVGhpcyB0YWcgc3BlY2lmaWVzIGEgc3Ry
aW5nIHRoYXQgc2hvdWxkIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBkb2N1bWVudGF0aW9uCisjIHNl
dCBidW5kbGUuIFRoaXMgc2hvdWxkIGJlIGEgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZSBzdHJp
bmcsIGUuZy4KKyMgY29tLm15Y29tcGFueS5NeURvY1NldC4gRG94eWdlbiB3aWxsIGFwcGVuZCAu
ZG9jc2V0IHRvIHRoZSBuYW1lLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4u
UHJvamVjdC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NF
VCBpcyBzZXQgdG8gWUVTLgorCitET0NTRVRfQlVORExFX0lEICAgICAgID0gb3JnLmRveHlnZW4u
UHJvamVjdAorCisjIFRoZSBET0NTRVRfUFVCTElTSEVSX0lEIHRhZyBzcGVjaWZpZXMgYSBzdHJp
bmcgdGhhdCBzaG91bGQgdW5pcXVlbHkgaWRlbnRpZnkKKyMgdGhlIGRvY3VtZW50YXRpb24gcHVi
bGlzaGVyLiBUaGlzIHNob3VsZCBiZSBhIHJldmVyc2UgZG9tYWluLW5hbWUgc3R5bGUKKyMgc3Ry
aW5nLCBlLmcuIGNvbS5teWNvbXBhbnkuTXlEb2NTZXQuZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5Z2VuLlB1Ymxpc2hlci4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgorCitET0NTRVRf
UFVCTElTSEVSX0lEICAgID0gb3JnLmRveHlnZW4uUHVibGlzaGVyCisKKyMgVGhlIERPQ1NFVF9Q
VUJMSVNIRVJfTkFNRSB0YWcgaWRlbnRpZmllcyB0aGUgZG9jdW1lbnRhdGlvbiBwdWJsaXNoZXIu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBQdWJsaXNoZXIuCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9ET0NTRVQgaXMgc2V0IHRvIFlFUy4KKworRE9DU0VUX1BV
QkxJU0hFUl9OQU1FICA9IFB1Ymxpc2hlcgorCisjIElmIHRoZSBHRU5FUkFURV9IVE1MSEVMUCB0
YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gZ2VuZXJhdGVzIHRocmVlCisjIGFkZGl0aW9u
YWwgSFRNTCBpbmRleCBmaWxlczogaW5kZXguaGhwLCBpbmRleC5oaGMsIGFuZCBpbmRleC5oaGsu
IFRoZQorIyBpbmRleC5oaHAgaXMgYSBwcm9qZWN0IGZpbGUgdGhhdCBjYW4gYmUgcmVhZCBieSBN
aWNyb3NvZnQncyBIVE1MIEhlbHAgV29ya3Nob3AKKyMgKHNlZTogaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tL2VuLXVzL2Rvd25sb2FkL2RldGFpbHMuYXNweD9pZD0yMTEzOCkgb24KKyMgV2luZG93
cy4KKyMKKyMgVGhlIEhUTUwgSGVscCBXb3Jrc2hvcCBjb250YWlucyBhIGNvbXBpbGVyIHRoYXQg
Y2FuIGNvbnZlcnQgYWxsIEhUTUwgb3V0cHV0CisjIGdlbmVyYXRlZCBieSBkb3h5Z2VuIGludG8g
YSBzaW5nbGUgY29tcGlsZWQgSFRNTCBmaWxlICguY2htKS4gQ29tcGlsZWQgSFRNTAorIyBmaWxl
cyBhcmUgbm93IHVzZWQgYXMgdGhlIFdpbmRvd3MgOTggaGVscCBmb3JtYXQsIGFuZCB3aWxsIHJl
cGxhY2UgdGhlIG9sZAorIyBXaW5kb3dzIGhlbHAgZm9ybWF0ICguaGxwKSBvbiBhbGwgV2luZG93
cyBwbGF0Zm9ybXMgaW4gdGhlIGZ1dHVyZS4gQ29tcHJlc3NlZAorIyBIVE1MIGZpbGVzIGFsc28g
Y29udGFpbiBhbiBpbmRleCwgYSB0YWJsZSBvZiBjb250ZW50cywgYW5kIHlvdSBjYW4gc2VhcmNo
IGZvcgorIyB3b3JkcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gVGhlIEhUTUwgd29ya3Nob3AgYWxz
byBjb250YWlucyBhIHZpZXdlciBmb3IKKyMgY29tcHJlc3NlZCBIVE1MIGZpbGVzLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0dFTkVSQVRFX0hUTUxIRUxQICAgICAgPSAl
SFRNTF9IRUxQJQorCisjIFRoZSBDSE1fRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0
aGUgZmlsZSBuYW1lIG9mIHRoZSByZXN1bHRpbmcgLmNobQorIyBmaWxlLiBZb3UgY2FuIGFkZCBh
IHBhdGggaW4gZnJvbnQgb2YgdGhlIGZpbGUgaWYgdGhlIHJlc3VsdCBzaG91bGQgbm90IGJlCisj
IHdyaXR0ZW4gdG8gdGhlIGh0bWwgb3V0cHV0IGRpcmVjdG9yeS4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCisKK0NITV9G
SUxFICAgICAgICAgICAgICAgPSBqc29uY3BwLSVKU09OQ1BQX1ZFUlNJT04lLmNobQorCisjIFRo
ZSBISENfTE9DQVRJT04gdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIChh
YnNvbHV0ZSBwYXRoCisjIGluY2x1ZGluZyBmaWxlIG5hbWUpIG9mIHRoZSBIVE1MIGhlbHAgY29t
cGlsZXIgKCBoaGMuZXhlKS4gSWYgbm9uLWVtcHR5CisjIGRveHlnZW4gd2lsbCB0cnkgdG8gcnVu
IHRoZSBIVE1MIGhlbHAgY29tcGlsZXIgb24gdGhlIGdlbmVyYXRlZCBpbmRleC5oaHAuCisjIFRo
ZSBmaWxlIGhhcyB0byBiZSBzcGVjaWZpZWQgd2l0aCBmdWxsIHBhdGguCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgorCitI
SENfTE9DQVRJT04gICAgICAgICAgID0gImM6XFByb2dyYW0gRmlsZXNcSFRNTCBIZWxwIFdvcmtz
aG9wXGhoYy5leGUiCisKKyMgVGhlIEdFTkVSQVRFX0NISSBmbGFnIGNvbnRyb2xzIGlmIGEgc2Vw
YXJhdGUgLmNoaSBpbmRleCBmaWxlIGlzIGdlbmVyYXRlZCAoCisjIFlFUykgb3IgdGhhdCBpdCBz
aG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIG1hc3RlciAuY2htIGZpbGUgKCBOTykuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCisKK0dFTkVSQVRFX0NISSAgICAgICAgICAg
PSBZRVMKKworIyBUaGUgQ0hNX0lOREVYX0VOQ09ESU5HIGlzIHVzZWQgdG8gZW5jb2RlIEh0bWxI
ZWxwIGluZGV4ICggaGhrKSwgY29udGVudCAoIGhoYykKKyMgYW5kIHByb2plY3QgZmlsZSBjb250
ZW50LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAg
aXMgc2V0IHRvIFlFUy4KKworQ0hNX0lOREVYX0VOQ09ESU5HICAgICA9CisKKyMgVGhlIEJJTkFS
WV9UT0MgZmxhZyBjb250cm9scyB3aGV0aGVyIGEgYmluYXJ5IHRhYmxlIG9mIGNvbnRlbnRzIGlz
IGdlbmVyYXRlZCAoCisjIFlFUykgb3IgYSBub3JtYWwgdGFibGUgb2YgY29udGVudHMgKCBOTykg
aW4gdGhlIC5jaG0gZmlsZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4K
KworQklOQVJZX1RPQyAgICAgICAgICAgICA9IFlFUworCisjIFRoZSBUT0NfRVhQQU5EIGZsYWcg
Y2FuIGJlIHNldCB0byBZRVMgdG8gYWRkIGV4dHJhIGl0ZW1zIGZvciBncm91cCBtZW1iZXJzIHRv
CisjIHRoZSB0YWJsZSBvZiBjb250ZW50cyBvZiB0aGUgSFRNTCBoZWxwIGRvY3VtZW50YXRpb24g
YW5kIHRvIHRoZSB0cmVlIHZpZXcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhp
cyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZ
RVMuCisKK1RPQ19FWFBBTkQgICAgICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgR0VORVJBVEVf
UUhQIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBib3RoIFFIUF9OQU1FU1BBQ0UgYW5kCisjIFFIUF9W
SVJUVUFMX0ZPTERFUiBhcmUgc2V0LCBhbiBhZGRpdGlvbmFsIGluZGV4IGZpbGUgd2lsbCBiZSBn
ZW5lcmF0ZWQgdGhhdAorIyBjYW4gYmUgdXNlZCBhcyBpbnB1dCBmb3IgUXQncyBxaGVscGdlbmVy
YXRvciB0byBnZW5lcmF0ZSBhIFF0IENvbXByZXNzZWQgSGVscAorIyAoLnFjaCkgb2YgdGhlIGdl
bmVyYXRlZCBIVE1MIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRv
IFlFUy4KKworR0VORVJBVEVfUUhQICAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIFFIR19MT0NB
VElPTiB0YWcgaXMgc3BlY2lmaWVkLCB0aGUgUUNIX0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkKKyMgdGhlIGZpbGUgbmFtZSBvZiB0aGUgcmVzdWx0aW5nIC5xY2ggZmlsZS4gVGhlIHBh
dGggc3BlY2lmaWVkIGlzIHJlbGF0aXZlIHRvCisjIHRoZSBIVE1MIG91dHB1dCBmb2xkZXIuCisj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlF
Uy4KKworUUNIX0ZJTEUgICAgICAgICAgICAgICA9CisKKyMgVGhlIFFIUF9OQU1FU1BBQ0UgdGFn
IHNwZWNpZmllcyB0aGUgbmFtZXNwYWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgUXQgSGVscAor
IyBQcm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxw
IFByb2plY3QgLyBOYW1lc3BhY2UKKyMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9x
dC00LjgvcXRoZWxwcHJvamVjdC5odG1sI25hbWVzcGFjZSkuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBvcmcuZG94eWdlbi5Qcm9qZWN0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCisKK1FIUF9OQU1FU1BBQ0UgICAgICAgICAg
PQorCisjIFRoZSBRSFBfVklSVFVBTF9GT0xERVIgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNwYWNl
IHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgUXQKKyMgSGVscCBQcm9qZWN0IG91dHB1dC4gRm9yIG1v
cmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBWaXJ0dWFsCisjIEZv
bGRlcnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVj
dC5odG1sI3ZpcnR1YWwtCisjIGZvbGRlcnMpLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogZG9j
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0
byBZRVMuCisKK1FIUF9WSVJUVUFMX0ZPTERFUiAgICAgPSBkb2MKKworIyBJZiB0aGUgUUhQX0NV
U1RfRklMVEVSX05BTUUgdGFnIGlzIHNldCwgaXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgY3Vz
dG9tCisjIGZpbHRlciB0byBhZGQuIEZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgUXQg
SGVscCBQcm9qZWN0IC8gQ3VzdG9tCisjIEZpbHRlcnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qu
b3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI2N1c3RvbS0KKyMgZmlsdGVycykuCisj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlF
Uy4KKworUUhQX0NVU1RfRklMVEVSX05BTUUgICA9CisKKyMgVGhlIFFIUF9DVVNUX0ZJTFRFUl9B
VFRSUyB0YWcgc3BlY2lmaWVzIHRoZSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZQorIyBj
dXN0b20gZmlsdGVyIHRvIGFkZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBI
ZWxwIFByb2plY3QgLyBDdXN0b20KKyMgRmlsdGVycyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5v
cmcvZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjY3VzdG9tLQorIyBmaWx0ZXJzKS4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVT
LgorCitRSFBfQ1VTVF9GSUxURVJfQVRUUlMgID0KKworIyBUaGUgUUhQX1NFQ1RfRklMVEVSX0FU
VFJTIHRhZyBzcGVjaWZpZXMgdGhlIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgdGhpcworIyBwcm9q
ZWN0J3MgZmlsdGVyIHNlY3Rpb24gbWF0Y2hlcy4gUXQgSGVscCBQcm9qZWN0IC8gRmlsdGVyIEF0
dHJpYnV0ZXMgKHNlZToKKyMgaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxw
cHJvamVjdC5odG1sI2ZpbHRlci1hdHRyaWJ1dGVzKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSFBfU0VDVF9GSUxURVJf
QVRUUlMgID0KKworIyBUaGUgUUhHX0xPQ0FUSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5
IHRoZSBsb2NhdGlvbiBvZiBRdCdzCisjIHFoZWxwZ2VuZXJhdG9yLiBJZiBub24tZW1wdHkgZG94
eWdlbiB3aWxsIHRyeSB0byBydW4gcWhlbHBnZW5lcmF0b3Igb24gdGhlCisjIGdlbmVyYXRlZCAu
cWhwIGZpbGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAg
aXMgc2V0IHRvIFlFUy4KKworUUhHX0xPQ0FUSU9OICAgICAgICAgICA9CisKKyMgSWYgdGhlIEdF
TkVSQVRFX0VDTElQU0VIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGluZGV4IGZp
bGVzIHdpbGwgYmUKKyMgZ2VuZXJhdGVkLCB0b2dldGhlciB3aXRoIHRoZSBIVE1MIGZpbGVzLCB0
aGV5IGZvcm0gYW4gRWNsaXBzZSBoZWxwIHBsdWdpbi4gVG8KKyMgaW5zdGFsbCB0aGlzIHBsdWdp
biBhbmQgbWFrZSBpdCBhdmFpbGFibGUgdW5kZXIgdGhlIGhlbHAgY29udGVudHMgbWVudSBpbgor
IyBFY2xpcHNlLCB0aGUgY29udGVudHMgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBI
VE1MIGFuZCBYTUwgZmlsZXMgbmVlZHMKKyMgdG8gYmUgY29waWVkIGludG8gdGhlIHBsdWdpbnMg
ZGlyZWN0b3J5IG9mIGVjbGlwc2UuIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkKKyMgd2l0aGlu
IHRoZSBwbHVnaW5zIGRpcmVjdG9yeSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIEVDTElQU0Vf
RE9DX0lEIHZhbHVlLgorIyBBZnRlciBjb3B5aW5nIEVjbGlwc2UgbmVlZHMgdG8gYmUgcmVzdGFy
dGVkIGJlZm9yZSB0aGUgaGVscCBhcHBlYXJzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0
byBZRVMuCisKK0dFTkVSQVRFX0VDTElQU0VIRUxQICAgPSBOTworCisjIEEgdW5pcXVlIGlkZW50
aWZpZXIgZm9yIHRoZSBFY2xpcHNlIGhlbHAgcGx1Z2luLiBXaGVuIGluc3RhbGxpbmcgdGhlIHBs
dWdpbgorIyB0aGUgZGlyZWN0b3J5IG5hbWUgY29udGFpbmluZyB0aGUgSFRNTCBhbmQgWE1MIGZp
bGVzIHNob3VsZCBhbHNvIGhhdmUgdGhpcworIyBuYW1lLiBFYWNoIGRvY3VtZW50YXRpb24gc2V0
IHNob3VsZCBoYXZlIGl0cyBvd24gaWRlbnRpZmllci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IG9yZy5kb3h5Z2VuLlByb2plY3QuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9FQ0xJUFNFSEVMUCBpcyBzZXQgdG8gWUVTLgorCitFQ0xJUFNFX0RPQ19JRCAgICAg
ICAgID0gb3JnLmRveHlnZW4uUHJvamVjdAorCisjIElmIHlvdSB3YW50IGZ1bGwgY29udHJvbCBv
dmVyIHRoZSBsYXlvdXQgb2YgdGhlIGdlbmVyYXRlZCBIVE1MIHBhZ2VzIGl0IG1pZ2h0CisjIGJl
IG5lY2Vzc2FyeSB0byBkaXNhYmxlIHRoZSBpbmRleCBhbmQgcmVwbGFjZSBpdCB3aXRoIHlvdXIg
b3duLiBUaGUKKyMgRElTQUJMRV9JTkRFWCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYg
dGhlIGNvbmRlbnNlZCBpbmRleCAodGFicykgYXQgdG9wCisjIG9mIGVhY2ggSFRNTCBwYWdlLiBB
IHZhbHVlIG9mIE5PIGVuYWJsZXMgdGhlIGluZGV4IGFuZCB0aGUgdmFsdWUgWUVTIGRpc2FibGVz
CisjIGl0LiBTaW5jZSB0aGUgdGFicyBpbiB0aGUgaW5kZXggY29udGFpbiB0aGUgc2FtZSBpbmZv
cm1hdGlvbiBhcyB0aGUgbmF2aWdhdGlvbgorIyB0cmVlLCB5b3UgY2FuIHNldCB0aGlzIG9wdGlv
biB0byBZRVMgaWYgeW91IGFsc28gc2V0IEdFTkVSQVRFX1RSRUVWSUVXIHRvIFlFUy4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
R0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitESVNBQkxFX0lOREVYICAgICAgICAgID0g
Tk8KKworIyBUaGUgR0VORVJBVEVfVFJFRVZJRVcgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGV0
aGVyIGEgdHJlZS1saWtlIGluZGV4CisjIHN0cnVjdHVyZSBzaG91bGQgYmUgZ2VuZXJhdGVkIHRv
IGRpc3BsYXkgaGllcmFyY2hpY2FsIGluZm9ybWF0aW9uLiBJZiB0aGUgdGFnCisjIHZhbHVlIGlz
IHNldCB0byBZRVMsIGEgc2lkZSBwYW5lbCB3aWxsIGJlIGdlbmVyYXRlZCBjb250YWluaW5nIGEg
dHJlZS1saWtlCisjIGluZGV4IHN0cnVjdHVyZSAoanVzdCBsaWtlIHRoZSBvbmUgdGhhdCBpcyBn
ZW5lcmF0ZWQgZm9yIEhUTUwgSGVscCkuIEZvciB0aGlzCisjIHRvIHdvcmsgYSBicm93c2VyIHRo
YXQgc3VwcG9ydHMgSmF2YVNjcmlwdCwgREhUTUwsIENTUyBhbmQgZnJhbWVzIGlzIHJlcXVpcmVk
CisjIChpLmUuIGFueSBtb2Rlcm4gYnJvd3NlcikuIFdpbmRvd3MgdXNlcnMgYXJlIHByb2JhYmx5
IGJldHRlciBvZmYgdXNpbmcgdGhlCisjIEhUTUwgaGVscCBmZWF0dXJlLiBWaWEgY3VzdG9tIHN0
eWxlc2hlZXRzIChzZWUgSFRNTF9FWFRSQV9TVFlMRVNIRUVUKSBvbmUgY2FuCisjIGZ1cnRoZXIg
ZmluZS10dW5lIHRoZSBsb29rIG9mIHRoZSBpbmRleC4gQXMgYW4gZXhhbXBsZSwgdGhlIGRlZmF1
bHQgc3R5bGUKKyMgc2hlZXQgZ2VuZXJhdGVkIGJ5IGRveHlnZW4gaGFzIGFuIGV4YW1wbGUgdGhh
dCBzaG93cyBob3cgdG8gcHV0IGFuIGltYWdlIGF0CisjIHRoZSByb290IG9mIHRoZSB0cmVlIGlu
c3RlYWQgb2YgdGhlIFBST0pFQ1RfTkFNRS4gU2luY2UgdGhlIHRyZWUgYmFzaWNhbGx5IGhhcwor
IyB0aGUgc2FtZSBpbmZvcm1hdGlvbiBhcyB0aGUgdGFiIGluZGV4LCB5b3UgY291bGQgY29uc2lk
ZXIgc2V0dGluZworIyBESVNBQkxFX0lOREVYIHRvIFlFUyB3aGVuIGVuYWJsaW5nIHRoaXMgb3B0
aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0dFTkVSQVRFX1RSRUVW
SUVXICAgICAgPSBZRVMKKworIyBUaGUgRU5VTV9WQUxVRVNfUEVSX0xJTkUgdGFnIGNhbiBiZSB1
c2VkIHRvIHNldCB0aGUgbnVtYmVyIG9mIGVudW0gdmFsdWVzIHRoYXQKKyMgZG94eWdlbiB3aWxs
IGdyb3VwIG9uIG9uZSBsaW5lIGluIHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgor
IworIyBOb3RlIHRoYXQgYSB2YWx1ZSBvZiAwIHdpbGwgY29tcGxldGVseSBzdXBwcmVzcyB0aGUg
ZW51bSB2YWx1ZXMgZnJvbSBhcHBlYXJpbmcKKyMgaW4gdGhlIG92ZXJ2aWV3IHNlY3Rpb24uCisj
IE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDIwLCBkZWZhdWx0IHZhbHVlOiA0Lgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8g
WUVTLgorCitFTlVNX1ZBTFVFU19QRVJfTElORSAgID0gNAorCisjIElmIHRoZSB0cmVldmlldyBp
cyBlbmFibGVkIChzZWUgR0VORVJBVEVfVFJFRVZJRVcpIHRoZW4gdGhpcyB0YWcgY2FuIGJlIHVz
ZWQKKyMgdG8gc2V0IHRoZSBpbml0aWFsIHdpZHRoIChpbiBwaXhlbHMpIG9mIHRoZSBmcmFtZSBp
biB3aGljaCB0aGUgdHJlZSBpcyBzaG93bi4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2
YWx1ZTogMTUwMCwgZGVmYXVsdCB2YWx1ZTogMjUwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitUUkVFVklFV19XSURUSCAg
ICAgICAgID0gMjUwCisKKyMgV2hlbiB0aGUgRVhUX0xJTktTX0lOX1dJTkRPVyBvcHRpb24gaXMg
c2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgb3BlbiBsaW5rcyB0bworIyBleHRlcm5hbCBzeW1ib2xz
IGltcG9ydGVkIHZpYSB0YWcgZmlsZXMgaW4gYSBzZXBhcmF0ZSB3aW5kb3cuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVS
QVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworRVhUX0xJTktTX0lOX1dJTkRPVyAgICA9IE5PCisK
KyMgVXNlIHRoaXMgdGFnIHRvIGNoYW5nZSB0aGUgZm9udCBzaXplIG9mIExhVGVYIGZvcm11bGFz
IGluY2x1ZGVkIGFzIGltYWdlcyBpbgorIyB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLiBXaGVuIHlv
dSBjaGFuZ2UgdGhlIGZvbnQgc2l6ZSBhZnRlciBhIHN1Y2Nlc3NmdWwKKyMgZG94eWdlbiBydW4g
eW91IG5lZWQgdG8gbWFudWFsbHkgcmVtb3ZlIGFueSBmb3JtXyoucG5nIGltYWdlcyBmcm9tIHRo
ZSBIVE1MCisjIG91dHB1dCBkaXJlY3RvcnkgdG8gZm9yY2UgdGhlbSB0byBiZSByZWdlbmVyYXRl
ZC4KKyMgTWluaW11bSB2YWx1ZTogOCwgbWF4aW11bSB2YWx1ZTogNTAsIGRlZmF1bHQgdmFsdWU6
IDEwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBz
ZXQgdG8gWUVTLgorCitGT1JNVUxBX0ZPTlRTSVpFICAgICAgID0gMTAKKworIyBVc2UgdGhlIEZP
Uk1VTEFfVFJBTlBBUkVOVCB0YWcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBpbWFn
ZXMKKyMgZ2VuZXJhdGVkIGZvciBmb3JtdWxhcyBhcmUgdHJhbnNwYXJlbnQgUE5Hcy4gVHJhbnNw
YXJlbnQgUE5HcyBhcmUgbm90CisjIHN1cHBvcnRlZCBwcm9wZXJseSBmb3IgSUUgNi4wLCBidXQg
YXJlIHN1cHBvcnRlZCBvbiBhbGwgbW9kZXJuIGJyb3dzZXJzLgorIworIyBOb3RlIHRoYXQgd2hl
biBjaGFuZ2luZyB0aGlzIG9wdGlvbiB5b3UgbmVlZCB0byBkZWxldGUgYW55IGZvcm1fKi5wbmcg
ZmlsZXMgaW4KKyMgdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgdGhlIGNoYW5nZXMg
aGF2ZSBlZmZlY3QuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0ZPUk1V
TEFfVFJBTlNQQVJFTlQgICAgPSBZRVMKKworIyBFbmFibGUgdGhlIFVTRV9NQVRISkFYIG9wdGlv
biB0byByZW5kZXIgTGFUZVggZm9ybXVsYXMgdXNpbmcgTWF0aEpheCAoc2VlCisjIGh0dHA6Ly93
d3cubWF0aGpheC5vcmcpIHdoaWNoIHVzZXMgY2xpZW50IHNpZGUgSmF2YVNjcmlwdCBmb3IgdGhl
IHJlbmRlcmluZworIyBpbnN0ZWFkIG9mIHVzaW5nIHByZXJlbmRlcmVkIGJpdG1hcHMuIFVzZSB0
aGlzIGlmIHlvdSBkbyBub3QgaGF2ZSBMYVRlWAorIyBpbnN0YWxsZWQgb3IgaWYgeW91IHdhbnQg
dG8gZm9ybXVsYXMgbG9vayBwcmV0dGllciBpbiB0aGUgSFRNTCBvdXRwdXQuIFdoZW4KKyMgZW5h
YmxlZCB5b3UgbWF5IGFsc28gbmVlZCB0byBpbnN0YWxsIE1hdGhKYXggc2VwYXJhdGVseSBhbmQg
Y29uZmlndXJlIHRoZSBwYXRoCisjIHRvIGl0IHVzaW5nIHRoZSBNQVRISkFYX1JFTFBBVEggb3B0
aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK1VTRV9NQVRISkFYICAg
ICAgICAgICAgPSBOTworCisjIFdoZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBjYW4gc2V0IHRo
ZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgdG8gYmUgdXNlZCBmb3IKKyMgdGhlIE1hdGhKYXggb3V0
cHV0LiBTZWUgdGhlIE1hdGhKYXggc2l0ZSAoc2VlOgorIyBodHRwOi8vZG9jcy5tYXRoamF4Lm9y
Zy9lbi9sYXRlc3Qvb3V0cHV0Lmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCisjIFBvc3NpYmxlIHZh
bHVlcyBhcmU6IEhUTUwtQ1NTICh3aGljaCBpcyBzbG93ZXIsIGJ1dCBoYXMgdGhlIGJlc3QKKyMg
Y29tcGF0aWJpbGl0eSksIE5hdGl2ZU1NTCAoaS5lLiBNYXRoTUwpIGFuZCBTVkcuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBIVE1MLUNTUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIFVTRV9NQVRISkFYIGlzIHNldCB0byBZRVMuCisKK01BVEhKQVhfRk9STUFUICAgICAgICAg
PSBIVE1MLUNTUworCisjIFdoZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBuZWVkIHRvIHNwZWNp
ZnkgdGhlIGxvY2F0aW9uIHJlbGF0aXZlIHRvIHRoZSBIVE1MCisjIG91dHB1dCBkaXJlY3Rvcnkg
dXNpbmcgdGhlIE1BVEhKQVhfUkVMUEFUSCBvcHRpb24uIFRoZSBkZXN0aW5hdGlvbiBkaXJlY3Rv
cnkKKyMgc2hvdWxkIGNvbnRhaW4gdGhlIE1hdGhKYXguanMgc2NyaXB0LiBGb3IgaW5zdGFuY2Us
IGlmIHRoZSBtYXRoamF4IGRpcmVjdG9yeQorIyBpcyBsb2NhdGVkIGF0IHRoZSBzYW1lIGxldmVs
IGFzIHRoZSBIVE1MIG91dHB1dCBkaXJlY3RvcnksIHRoZW4KKyMgTUFUSEpBWF9SRUxQQVRIIHNo
b3VsZCBiZSAuLi9tYXRoamF4LiBUaGUgZGVmYXVsdCB2YWx1ZSBwb2ludHMgdG8gdGhlIE1hdGhK
YXgKKyMgQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrIHNvIHlvdSBjYW4gcXVpY2tseSBzZWUgdGhl
IHJlc3VsdCB3aXRob3V0IGluc3RhbGxpbmcKKyMgTWF0aEpheC4gSG93ZXZlciwgaXQgaXMgc3Ry
b25nbHkgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBhIGxvY2FsIGNvcHkgb2YKKyMgTWF0aEpheCBm
cm9tIGh0dHA6Ly93d3cubWF0aGpheC5vcmcgYmVmb3JlIGRlcGxveW1lbnQuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBodHRwOi8vY2RuLm1hdGhqYXgub3JnL21hdGhqYXgvbGF0ZXN0LgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4K
KworTUFUSEpBWF9SRUxQQVRIICAgICAgICA9IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0aGph
eC9sYXRlc3QKKworIyBUaGUgTUFUSEpBWF9FWFRFTlNJT05TIHRhZyBjYW4gYmUgdXNlZCB0byBz
cGVjaWZ5IG9uZSBvciBtb3JlIE1hdGhKYXgKKyMgZXh0ZW5zaW9uIG5hbWVzIHRoYXQgc2hvdWxk
IGJlIGVuYWJsZWQgZHVyaW5nIE1hdGhKYXggcmVuZGVyaW5nLiBGb3IgZXhhbXBsZQorIyBNQVRI
SkFYX0VYVEVOU0lPTlMgPSBUZVgvQU1TbWF0aCBUZVgvQU1Tc3ltYm9scworIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpB
WF9FWFRFTlNJT05TICAgICA9CisKKyMgVGhlIE1BVEhKQVhfQ09ERUZJTEUgdGFnIGNhbiBiZSB1
c2VkIHRvIHNwZWNpZnkgYSBmaWxlIHdpdGggamF2YXNjcmlwdCBwaWVjZXMKKyMgb2YgY29kZSB0
aGF0IHdpbGwgYmUgdXNlZCBvbiBzdGFydHVwIG9mIHRoZSBNYXRoSmF4IGNvZGUuIFNlZSB0aGUg
TWF0aEpheCBzaXRlCisjIChzZWU6IGh0dHA6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL2xhdGVzdC9v
dXRwdXQuaHRtbCkgZm9yIG1vcmUgZGV0YWlscy4gRm9yIGFuCisjIGV4YW1wbGUgc2VlIHRoZSBk
b2N1bWVudGF0aW9uLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhK
QVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9DT0RFRklMRSAgICAgICA9CisKKyMgV2hlbiB0
aGUgU0VBUkNIRU5HSU5FIHRhZyBpcyBlbmFibGVkIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHNl
YXJjaCBib3ggZm9yCisjIHRoZSBIVE1MIG91dHB1dC4gVGhlIHVuZGVybHlpbmcgc2VhcmNoIGVu
Z2luZSB1c2VzIGphdmFzY3JpcHQgYW5kIERIVE1MIGFuZAorIyBzaG91bGQgd29yayBvbiBhbnkg
bW9kZXJuIGJyb3dzZXIuIE5vdGUgdGhhdCB3aGVuIHVzaW5nIEhUTUwgaGVscAorIyAoR0VORVJB
VEVfSFRNTEhFTFApLCBRdCBoZWxwIChHRU5FUkFURV9RSFApLCBvciBkb2NzZXRzIChHRU5FUkFU
RV9ET0NTRVQpCisjIHRoZXJlIGlzIGFscmVhZHkgYSBzZWFyY2ggZnVuY3Rpb24gc28gdGhpcyBv
bmUgc2hvdWxkIHR5cGljYWxseSBiZSBkaXNhYmxlZC4KKyMgRm9yIGxhcmdlIHByb2plY3RzIHRo
ZSBqYXZhc2NyaXB0IGJhc2VkIHNlYXJjaCBlbmdpbmUgY2FuIGJlIHNsb3csIHRoZW4KKyMgZW5h
YmxpbmcgU0VSVkVSX0JBU0VEX1NFQVJDSCBtYXkgcHJvdmlkZSBhIGJldHRlciBzb2x1dGlvbi4g
SXQgaXMgcG9zc2libGUgdG8KKyMgc2VhcmNoIHVzaW5nIHRoZSBrZXlib2FyZDsgdG8ganVtcCB0
byB0aGUgc2VhcmNoIGJveCB1c2UgPGFjY2VzcyBrZXk+ICsgUworIyAod2hhdCB0aGUgPGFjY2Vz
cyBrZXk+IGlzIGRlcGVuZHMgb24gdGhlIE9TIGFuZCBicm93c2VyLCBidXQgaXQgaXMgdHlwaWNh
bGx5CisjIDxDVFJMPiwgPEFMVD4vPG9wdGlvbj4sIG9yIGJvdGgpLiBJbnNpZGUgdGhlIHNlYXJj
aCBib3ggdXNlIHRoZSA8Y3Vyc29yIGRvd24KKyMga2V5PiB0byBqdW1wIGludG8gdGhlIHNlYXJj
aCByZXN1bHRzIHdpbmRvdywgdGhlIHJlc3VsdHMgY2FuIGJlIG5hdmlnYXRlZAorIyB1c2luZyB0
aGUgPGN1cnNvciBrZXlzPi4gUHJlc3MgPEVudGVyPiB0byBzZWxlY3QgYW4gaXRlbSBvciA8ZXNj
YXBlPiB0byBjYW5jZWwKKyMgdGhlIHNlYXJjaC4gVGhlIGZpbHRlciBvcHRpb25zIGNhbiBiZSBz
ZWxlY3RlZCB3aGVuIHRoZSBjdXJzb3IgaXMgaW5zaWRlIHRoZQorIyBzZWFyY2ggYm94IGJ5IHBy
ZXNzaW5nIDxTaGlmdD4rPGN1cnNvciBkb3duPi4gQWxzbyBoZXJlIHVzZSB0aGUgPGN1cnNvciBr
ZXlzPgorIyB0byBzZWxlY3QgYSBmaWx0ZXIgYW5kIDxFbnRlcj4gb3IgPGVzY2FwZT4gdG8gYWN0
aXZhdGUgb3IgY2FuY2VsIHRoZSBmaWx0ZXIKKyMgb3B0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRN
TCBpcyBzZXQgdG8gWUVTLgorCitTRUFSQ0hFTkdJTkUgICAgICAgICAgID0gTk8KKworIyBXaGVu
IHRoZSBTRVJWRVJfQkFTRURfU0VBUkNIIHRhZyBpcyBlbmFibGVkIHRoZSBzZWFyY2ggZW5naW5l
IHdpbGwgYmUKKyMgaW1wbGVtZW50ZWQgdXNpbmcgYSB3ZWIgc2VydmVyIGluc3RlYWQgb2YgYSB3
ZWIgY2xpZW50IHVzaW5nIEphdmFTY3JpcHQuIFRoZXJlCisjIGFyZSB0d28gZmxhdm91cnMgb2Yg
d2ViIHNlcnZlciBiYXNlZCBzZWFyY2hpbmcgZGVwZW5kaW5nIG9uIHRoZQorIyBFWFRFUk5BTF9T
RUFSQ0ggc2V0dGluZy4gV2hlbiBkaXNhYmxlZCwgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgUEhQ
IHNjcmlwdCBmb3IKKyMgc2VhcmNoaW5nIGFuZCBhbiBpbmRleCBmaWxlIHVzZWQgYnkgdGhlIHNj
cmlwdC4gV2hlbiBFWFRFUk5BTF9TRUFSQ0ggaXMKKyMgZW5hYmxlZCB0aGUgaW5kZXhpbmcgYW5k
IHNlYXJjaGluZyBuZWVkcyB0byBiZSBwcm92aWRlZCBieSBleHRlcm5hbCB0b29scy4gU2VlCisj
IHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBhbmQgU2VhcmNoaW5nIiBmb3IgZGV0YWls
cy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCisKK1NFUlZFUl9CQVNFRF9TRUFS
Q0ggICAgPSBOTworCisjIFdoZW4gRVhURVJOQUxfU0VBUkNIIHRhZyBpcyBlbmFibGVkIGRveHln
ZW4gd2lsbCBubyBsb25nZXIgZ2VuZXJhdGUgdGhlIFBIUAorIyBzY3JpcHQgZm9yIHNlYXJjaGlu
Zy4gSW5zdGVhZCB0aGUgc2VhcmNoIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYW4gWE1MIGZpbGUK
KyMgd2hpY2ggbmVlZHMgdG8gYmUgcHJvY2Vzc2VkIGJ5IGFuIGV4dGVybmFsIGluZGV4ZXIuIERv
eHlnZW4gd2lsbCBpbnZva2UgYW4KKyMgZXh0ZXJuYWwgc2VhcmNoIGVuZ2luZSBwb2ludGVkIHRv
IGJ5IHRoZSBTRUFSQ0hFTkdJTkVfVVJMIG9wdGlvbiB0byBvYnRhaW4gdGhlCisjIHNlYXJjaCBy
ZXN1bHRzLgorIworIyBEb3h5Z2VuIHNoaXBzIHdpdGggYW4gZXhhbXBsZSBpbmRleGVyICggZG94
eWluZGV4ZXIpIGFuZCBzZWFyY2ggZW5naW5lCisjIChkb3h5c2VhcmNoLmNnaSkgd2hpY2ggYXJl
IGJhc2VkIG9uIHRoZSBvcGVuIHNvdXJjZSBzZWFyY2ggZW5naW5lIGxpYnJhcnkKKyMgWGFwaWFu
IChzZWU6IGh0dHA6Ly94YXBpYW4ub3JnLykuCisjCisjIFNlZSB0aGUgc2VjdGlvbiAiRXh0ZXJu
YWwgSW5kZXhpbmcgYW5kIFNlYXJjaGluZyIgZm9yIGRldGFpbHMuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lO
RSBpcyBzZXQgdG8gWUVTLgorCitFWFRFUk5BTF9TRUFSQ0ggICAgICAgID0gTk8KKworIyBUaGUg
U0VBUkNIRU5HSU5FX1VSTCBzaG91bGQgcG9pbnQgdG8gYSBzZWFyY2ggZW5naW5lIGhvc3RlZCBi
eSBhIHdlYiBzZXJ2ZXIKKyMgd2hpY2ggd2lsbCByZXR1cm4gdGhlIHNlYXJjaCByZXN1bHRzIHdo
ZW4gRVhURVJOQUxfU0VBUkNIIGlzIGVuYWJsZWQuCisjCisjIERveHlnZW4gc2hpcHMgd2l0aCBh
biBleGFtcGxlIGluZGV4ZXIgKCBkb3h5aW5kZXhlcikgYW5kIHNlYXJjaCBlbmdpbmUKKyMgKGRv
eHlzZWFyY2guY2dpKSB3aGljaCBhcmUgYmFzZWQgb24gdGhlIG9wZW4gc291cmNlIHNlYXJjaCBl
bmdpbmUgbGlicmFyeQorIyBYYXBpYW4gKHNlZTogaHR0cDovL3hhcGlhbi5vcmcvKS4gU2VlIHRo
ZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBhbmQKKyMgU2VhcmNoaW5nIiBmb3IgZGV0YWls
cy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQg
dG8gWUVTLgorCitTRUFSQ0hFTkdJTkVfVVJMICAgICAgID0KKworIyBXaGVuIFNFUlZFUl9CQVNF
RF9TRUFSQ0ggYW5kIEVYVEVSTkFMX1NFQVJDSCBhcmUgYm90aCBlbmFibGVkIHRoZSB1bmluZGV4
ZWQKKyMgc2VhcmNoIGRhdGEgaXMgd3JpdHRlbiB0byBhIGZpbGUgZm9yIGluZGV4aW5nIGJ5IGFu
IGV4dGVybmFsIHRvb2wuIFdpdGggdGhlCisjIFNFQVJDSERBVEFfRklMRSB0YWcgdGhlIG5hbWUg
b2YgdGhpcyBmaWxlIGNhbiBiZSBzcGVjaWZpZWQuCisjIFRoZSBkZWZhdWx0IGZpbGUgaXM6IHNl
YXJjaGRhdGEueG1sLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5H
SU5FIGlzIHNldCB0byBZRVMuCisKK1NFQVJDSERBVEFfRklMRSAgICAgICAgPSBzZWFyY2hkYXRh
LnhtbAorCisjIFdoZW4gU0VSVkVSX0JBU0VEX1NFQVJDSCBhbmQgRVhURVJOQUxfU0VBUkNIIGFy
ZSBib3RoIGVuYWJsZWQgdGhlCisjIEVYVEVSTkFMX1NFQVJDSF9JRCB0YWcgY2FuIGJlIHVzZWQg
YXMgYW4gaWRlbnRpZmllciBmb3IgdGhlIHByb2plY3QuIFRoaXMgaXMKKyMgdXNlZnVsIGluIGNv
bWJpbmF0aW9uIHdpdGggRVhUUkFfU0VBUkNIX01BUFBJTkdTIHRvIHNlYXJjaCB0aHJvdWdoIG11
bHRpcGxlCisjIHByb2plY3RzIGFuZCByZWRpcmVjdCB0aGUgcmVzdWx0cyBiYWNrIHRvIHRoZSBy
aWdodCBwcm9qZWN0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5H
SU5FIGlzIHNldCB0byBZRVMuCisKK0VYVEVSTkFMX1NFQVJDSF9JRCAgICAgPQorCisjIFRoZSBF
WFRSQV9TRUFSQ0hfTUFQUElOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBzZWFyY2hpbmcg
dGhyb3VnaCBkb3h5Z2VuCisjIHByb2plY3RzIG90aGVyIHRoYW4gdGhlIG9uZSBkZWZpbmVkIGJ5
IHRoaXMgY29uZmlndXJhdGlvbiBmaWxlLCBidXQgdGhhdCBhcmUKKyMgYWxsIGFkZGVkIHRvIHRo
ZSBzYW1lIGV4dGVybmFsIHNlYXJjaCBpbmRleC4gRWFjaCBwcm9qZWN0IG5lZWRzIHRvIGhhdmUg
YQorIyB1bmlxdWUgaWQgc2V0IHZpYSBFWFRFUk5BTF9TRUFSQ0hfSUQuIFRoZSBzZWFyY2ggbWFw
cGluZyB0aGVuIG1hcHMgdGhlIGlkIG9mCisjIHRvIGEgcmVsYXRpdmUgbG9jYXRpb24gd2hlcmUg
dGhlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kLiBUaGUgZm9ybWF0IGlzOgorIyBFWFRSQV9T
RUFSQ0hfTUFQUElOR1MgPSB0YWduYW1lMT1sb2MxIHRhZ25hbWUyPWxvYzIgLi4uCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4KKwor
RVhUUkFfU0VBUkNIX01BUFBJTkdTICA9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmln
dXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIExhVGVYIG91dHB1dAorIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisjIElmIHRoZSBHRU5FUkFURV9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5
Z2VuIHdpbGwgZ2VuZXJhdGUgTGFUZVggb3V0cHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLgorCitHRU5FUkFURV9MQVRFWCAgICAgICAgID0gTk8KKworIyBUaGUgTEFURVhfT1VUUFVU
IHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIExhVGVYIGRvY3Mgd2lsbCBiZSBwdXQu
IElmIGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElS
RUNUT1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJl
Y3RvcnkgaXM6IGxhdGV4LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworTEFURVhfT1VUUFVUICAgICAgICAgICA9IGxhdGV4
CisKKyMgVGhlIExBVEVYX0NNRF9OQU1FIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBM
YVRlWCBjb21tYW5kIG5hbWUgdG8gYmUKKyMgaW52b2tlZC4KKyMKKyMgTm90ZSB0aGF0IHdoZW4g
ZW5hYmxpbmcgVVNFX1BERkxBVEVYIHRoaXMgb3B0aW9uIGlzIG9ubHkgdXNlZCBmb3IgZ2VuZXJh
dGluZworIyBiaXRtYXBzIGZvciBmb3JtdWxhcyBpbiB0aGUgSFRNTCBvdXRwdXQsIGJ1dCBub3Qg
aW4gdGhlIE1ha2VmaWxlIHRoYXQgaXMKKyMgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGRpcmVjdG9y
eS4KKyMgVGhlIGRlZmF1bHQgZmlsZSBpczogbGF0ZXguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9DTURfTkFN
RSAgICAgICAgID0gbGF0ZXgKKworIyBUaGUgTUFLRUlOREVYX0NNRF9OQU1FIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IHRoZSBjb21tYW5kIG5hbWUgdG8gZ2VuZXJhdGUKKyMgaW5kZXggZm9y
IExhVGVYLgorIyBUaGUgZGVmYXVsdCBmaWxlIGlzOiBtYWtlaW5kZXguCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitNQUtF
SU5ERVhfQ01EX05BTUUgICAgID0gbWFrZWluZGV4CisKKyMgSWYgdGhlIENPTVBBQ1RfTEFURVgg
dGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiBnZW5lcmF0ZXMgbW9yZSBjb21wYWN0IExhVGVYCisj
IGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5
IGhlbHAgdG8gc2F2ZSBzb21lCisjIHRyZWVzIGluIGdlbmVyYWwuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xB
VEVYIGlzIHNldCB0byBZRVMuCisKK0NPTVBBQ1RfTEFURVggICAgICAgICAgPSBOTworCisjIFRo
ZSBQQVBFUl9UWVBFIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIHBhcGVyIHR5cGUgdGhhdCBp
cyB1c2VkIGJ5IHRoZQorIyBwcmludGVyLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBhNCAoMjEw
IHggMjk3IG1tKSwgbGV0dGVyICg4LjUgeCAxMSBpbmNoZXMpLCBsZWdhbCAoOC41IHgKKyMgMTQg
aW5jaGVzKSBhbmQgZXhlY3V0aXZlICg3LjI1IHggMTAuNSBpbmNoZXMpLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogYTQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitQQVBFUl9UWVBFICAgICAgICAgICAgID0gYTR3aWRl
CisKKyMgVGhlIEVYVFJBX1BBQ0tBR0VTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBv
ciBtb3JlIExhVGVYIHBhY2thZ2UgbmFtZXMKKyMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4g
dGhlIExhVGVYIG91dHB1dC4gVG8gZ2V0IHRoZSB0aW1lcyBmb250IGZvcgorIyBpbnN0YW5jZSB5
b3UgY2FuIHNwZWNpZnkKKyMgRVhUUkFfUEFDS0FHRVM9dGltZXMKKyMgSWYgbGVmdCBibGFuayBu
byBleHRyYSBwYWNrYWdlcyB3aWxsIGJlIGluY2x1ZGVkLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworRVhUUkFfUEFDS0FH
RVMgICAgICAgICA9CisKKyMgVGhlIExBVEVYX0hFQURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBhIHBlcnNvbmFsIExhVGVYIGhlYWRlciBmb3IgdGhlCisjIGdlbmVyYXRlZCBMYVRlWCBk
b2N1bWVudC4gVGhlIGhlYWRlciBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIHVudGlsIHRoZSBm
aXJzdAorIyBjaGFwdGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0
ZSBhIHN0YW5kYXJkIGhlYWRlci4gU2VlCisjIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBp
bmZvcm1hdGlvbiBvbiBob3cgdG8gbGV0IGRveHlnZW4gd3JpdGUgdGhlCisjIGRlZmF1bHQgaGVh
ZGVyIHRvIGEgc2VwYXJhdGUgZmlsZS4KKyMKKyMgTm90ZTogT25seSB1c2UgYSB1c2VyLWRlZmlu
ZWQgaGVhZGVyIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyEgVGhlCisjIGZvbGxvd2lu
ZyBjb21tYW5kcyBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nIGluc2lkZSB0aGUgaGVhZGVyOiAkdGl0
bGUsCisjICRkYXRldGltZSwgJGRhdGUsICRkb3h5Z2VudmVyc2lvbiwgJHByb2plY3RuYW1lLCAk
cHJvamVjdG51bWJlci4gRG94eWdlbiB3aWxsCisjIHJlcGxhY2UgdGhlbSBieSByZXNwZWN0aXZl
bHkgdGhlIHRpdGxlIG9mIHRoZSBwYWdlLCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lLAorIyBv
bmx5IHRoZSBjdXJyZW50IGRhdGUsIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBkb3h5Z2VuLCB0aGUg
cHJvamVjdCBuYW1lIChzZWUKKyMgUFJPSkVDVF9OQU1FKSwgb3IgdGhlIHByb2plY3QgbnVtYmVy
IChzZWUgUFJPSkVDVF9OVU1CRVIpLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
R0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworTEFURVhfSEVBREVSICAgICAgICAgICA9
CisKKyMgVGhlIExBVEVYX0ZPT1RFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBlcnNv
bmFsIExhVGVYIGZvb3RlciBmb3IgdGhlCisjIGdlbmVyYXRlZCBMYVRlWCBkb2N1bWVudC4gVGhl
IGZvb3RlciBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIGFmdGVyIHRoZSBsYXN0CisjIGNoYXB0
ZXIuIElmIGl0IGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhcmQg
Zm9vdGVyLgorIworIyBOb3RlOiBPbmx5IHVzZSBhIHVzZXItZGVmaW5lZCBmb290ZXIgaWYgeW91
IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIQorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KKworTEFURVhfRk9PVEVSICAgICAgICAg
ICA9CisKKyMgVGhlIExBVEVYX0VYVFJBX0ZJTEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5
IG9uZSBvciBtb3JlIGV4dHJhIGltYWdlcyBvcgorIyBvdGhlciBzb3VyY2UgZmlsZXMgd2hpY2gg
c2hvdWxkIGJlIGNvcGllZCB0byB0aGUgTEFURVhfT1VUUFVUIG91dHB1dAorIyBkaXJlY3Rvcnku
IE5vdGUgdGhhdCB0aGUgZmlsZXMgd2lsbCBiZSBjb3BpZWQgYXMtaXM7IHRoZXJlIGFyZSBubyBj
b21tYW5kcyBvcgorIyBtYXJrZXJzIGF2YWlsYWJsZS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX0VYVFJBX0ZJ
TEVTICAgICAgPQorCisjIElmIHRoZSBQREZfSFlQRVJMSU5LUyB0YWcgaXMgc2V0IHRvIFlFUywg
dGhlIExhVGVYIHRoYXQgaXMgZ2VuZXJhdGVkIGlzCisjIHByZXBhcmVkIGZvciBjb252ZXJzaW9u
IHRvIFBERiAodXNpbmcgcHMycGRmIG9yIHBkZmxhdGV4KS4gVGhlIFBERiBmaWxlIHdpbGwKKyMg
Y29udGFpbiBsaW5rcyAoanVzdCBsaWtlIHRoZSBIVE1MIG91dHB1dCkgaW5zdGVhZCBvZiBwYWdl
IHJlZmVyZW5jZXMuIFRoaXMKKyMgbWFrZXMgdGhlIG91dHB1dCBzdWl0YWJsZSBmb3Igb25saW5l
IGJyb3dzaW5nIHVzaW5nIGEgUERGIHZpZXdlci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlF
Uy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNl
dCB0byBZRVMuCisKK1BERl9IWVBFUkxJTktTICAgICAgICAgPSBOTworCisjIElmIHRoZSBMQVRF
WF9QREZMQVRFWCB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIHVzZSBwZGZsYXRleCB0
byBnZW5lcmF0ZQorIyB0aGUgUERGIGZpbGUgZGlyZWN0bHkgZnJvbSB0aGUgTGFUZVggZmlsZXMu
IFNldCB0aGlzIG9wdGlvbiB0byBZRVMgdG8gZ2V0IGEKKyMgaGlnaGVyIHF1YWxpdHkgUERGIGRv
Y3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitVU0Vf
UERGTEFURVggICAgICAgICAgID0gTk8KKworIyBJZiB0aGUgTEFURVhfQkFUQ0hNT0RFIHRhZyBp
cyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgYWRkIHRoZSBcYmF0Y2htb2RlCisjIGNvbW1hbmQg
dG8gdGhlIGdlbmVyYXRlZCBMYVRlWCBmaWxlcy4gVGhpcyB3aWxsIGluc3RydWN0IExhVGVYIHRv
IGtlZXAgcnVubmluZworIyBpZiBlcnJvcnMgb2NjdXIsIGluc3RlYWQgb2YgYXNraW5nIHRoZSB1
c2VyIGZvciBoZWxwLiBUaGlzIG9wdGlvbiBpcyBhbHNvIHVzZWQKKyMgd2hlbiBnZW5lcmF0aW5n
IGZvcm11bGFzIGluIEhUTUwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisK
K0xBVEVYX0JBVENITU9ERSAgICAgICAgPSBOTworCisjIElmIHRoZSBMQVRFWF9ISURFX0lORElD
RVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgbm90IGluY2x1ZGUgdGhlCisj
IGluZGV4IGNoYXB0ZXJzIChzdWNoIGFzIEZpbGUgSW5kZXgsIENvbXBvdW5kIEluZGV4LCBldGMu
KSBpbiB0aGUgb3V0cHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitM
QVRFWF9ISURFX0lORElDRVMgICAgID0gTk8KKworIyBJZiB0aGUgTEFURVhfU09VUkNFX0NPREUg
dGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgaW5jbHVkZSBzb3VyY2UKKyMgY29k
ZSB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgaW4gdGhlIExhVGVYIG91dHB1dC4KKyMKKyMgTm90
ZSB0aGF0IHdoaWNoIHNvdXJjZXMgYXJlIHNob3duIGFsc28gZGVwZW5kcyBvbiBvdGhlciBzZXR0
aW5ncyBzdWNoIGFzCisjIFNPVVJDRV9CUk9XU0VSLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBz
ZXQgdG8gWUVTLgorCitMQVRFWF9TT1VSQ0VfQ09ERSAgICAgID0gTk8KKworIyBUaGUgTEFURVhf
QklCX1NUWUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBzdHlsZSB0byB1c2UgZm9y
IHRoZQorIyBiaWJsaW9ncmFwaHksIGUuZy4gcGxhaW5uYXQsIG9yIGllZWV0ci4gU2VlCisjIGh0
dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmliVGVYIGFuZCBcY2l0ZSBmb3IgbW9yZSBpbmZv
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogcGxhaW4uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9CSUJfU1RZ
TEUgICAgICAgID0gcGxhaW4KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9u
IG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgUlRGIG91dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisjIElmIHRoZSBHRU5FUkFURV9SVEYgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdl
bmVyYXRlIFJURiBvdXRwdXQuIFRoZQorIyBSVEYgb3V0cHV0IGlzIG9wdGltaXplZCBmb3IgV29y
ZCA5NyBhbmQgbWF5IG5vdCBsb29rIHRvbyBwcmV0dHkgd2l0aCBvdGhlciBSVEYKKyMgcmVhZGVy
cy9lZGl0b3JzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0dFTkVSQVRFX1JURiAg
ICAgICAgICAgPSBOTworCisjIFRoZSBSVEZfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkg
d2hlcmUgdGhlIFJURiBkb2NzIHdpbGwgYmUgcHV0LiBJZiBhCisjIHJlbGF0aXZlIHBhdGggaXMg
ZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBpbiBmcm9u
dCBvZgorIyBpdC4KKyMgVGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiBydGYuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KKworUlRG
X09VVFBVVCAgICAgICAgICAgICA9IHJ0ZgorCisjIElmIHRoZSBDT01QQUNUX1JURiB0YWcgaXMg
c2V0IHRvIFlFUyBkb3h5Z2VuIGdlbmVyYXRlcyBtb3JlIGNvbXBhY3QgUlRGCisjIGRvY3VtZW50
cy4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8g
c2F2ZSBzb21lCisjIHRyZWVzIGluIGdlbmVyYWwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBO
Ty4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQg
dG8gWUVTLgorCitDT01QQUNUX1JURiAgICAgICAgICAgID0gTk8KKworIyBJZiB0aGUgUlRGX0hZ
UEVSTElOS1MgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBSVEYgdGhhdCBpcyBnZW5lcmF0ZWQgd2ls
bAorIyBjb250YWluIGh5cGVybGluayBmaWVsZHMuIFRoZSBSVEYgZmlsZSB3aWxsIGNvbnRhaW4g
bGlua3MgKGp1c3QgbGlrZSB0aGUgSFRNTAorIyBvdXRwdXQpIGluc3RlYWQgb2YgcGFnZSByZWZl
cmVuY2VzLiBUaGlzIG1ha2VzIHRoZSBvdXRwdXQgc3VpdGFibGUgZm9yIG9ubGluZQorIyBicm93
c2luZyB1c2luZyBXb3JkIG9yIHNvbWUgb3RoZXIgV29yZCBjb21wYXRpYmxlIHJlYWRlcnMgdGhh
dCBzdXBwb3J0IHRob3NlCisjIGZpZWxkcy4KKyMKKyMgTm90ZTogV29yZFBhZCAod3JpdGUpIGFu
ZCBvdGhlcnMgZG8gbm90IHN1cHBvcnQgbGlua3MuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBO
Ty4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQg
dG8gWUVTLgorCitSVEZfSFlQRVJMSU5LUyAgICAgICAgID0gTk8KKworIyBMb2FkIHN0eWxlc2hl
ZXQgZGVmaW5pdGlvbnMgZnJvbSBmaWxlLiBTeW50YXggaXMgc2ltaWxhciB0byBkb3h5Z2VuJ3Mg
Y29uZmlnCisjIGZpbGUsIGkuZS4gYSBzZXJpZXMgb2YgYXNzaWdubWVudHMuIFlvdSBvbmx5IGhh
dmUgdG8gcHJvdmlkZSByZXBsYWNlbWVudHMsCisjIG1pc3NpbmcgZGVmaW5pdGlvbnMgYXJlIHNl
dCB0byB0aGVpciBkZWZhdWx0IHZhbHVlLgorIworIyBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2Vu
IHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZQorIyBkZWZhdWx0
IHN0eWxlIHNoZWV0IHRoYXQgZG94eWdlbiBub3JtYWxseSB1c2VzLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCisKK1JURl9TVFlM
RVNIRUVUX0ZJTEUgICAgPQorCisjIFNldCBvcHRpb25hbCB2YXJpYWJsZXMgdXNlZCBpbiB0aGUg
Z2VuZXJhdGlvbiBvZiBhbiBSVEYgZG9jdW1lbnQuIFN5bnRheCBpcworIyBzaW1pbGFyIHRvIGRv
eHlnZW4ncyBjb25maWcgZmlsZS4gQSB0ZW1wbGF0ZSBleHRlbnNpb25zIGZpbGUgY2FuIGJlIGdl
bmVyYXRlZAorIyB1c2luZyBkb3h5Z2VuIC1lIHJ0ZiBleHRlbnNpb25GaWxlLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCisKK1JU
Rl9FWFRFTlNJT05TX0ZJTEUgICAgPQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3Vy
YXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBtYW4gcGFnZSBvdXRwdXQKKyMtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworIyBJZiB0aGUgR0VORVJBVEVfTUFOIHRhZyBpcyBzZXQgdG8gWUVTIGRveHln
ZW4gd2lsbCBnZW5lcmF0ZSBtYW4gcGFnZXMgZm9yCisjIGNsYXNzZXMgYW5kIGZpbGVzLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0dFTkVSQVRFX01BTiAgICAgICAgICAgPSBOTwor
CisjIFRoZSBNQU5fT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIG1hbiBw
YWdlcyB3aWxsIGJlIHB1dC4gSWYgYQorIyByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZh
bHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YKKyMgaXQuIEEg
ZGlyZWN0b3J5IG1hbjMgd2lsbCBiZSBjcmVhdGVkIGluc2lkZSB0aGUgZGlyZWN0b3J5IHNwZWNp
ZmllZCBieQorIyBNQU5fT1VUUFVULgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IG1hbi4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX01BTiBpcyBzZXQgdG8g
WUVTLgorCitNQU5fT1VUUFVUICAgICAgICAgICAgID0gbWFuCisKKyMgVGhlIE1BTl9FWFRFTlNJ
T04gdGFnIGRldGVybWluZXMgdGhlIGV4dGVuc2lvbiB0aGF0IGlzIGFkZGVkIHRvIHRoZSBnZW5l
cmF0ZWQKKyMgbWFuIHBhZ2VzLiBJbiBjYXNlIHRoZSBtYW51YWwgc2VjdGlvbiBkb2VzIG5vdCBz
dGFydCB3aXRoIGEgbnVtYmVyLCB0aGUgbnVtYmVyCisjIDMgaXMgcHJlcGVuZGVkLiBUaGUgZG90
ICguKSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBNQU5fRVhURU5TSU9OIHRhZyBpcworIyBvcHRp
b25hbC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IC4zLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuCisKK01BTl9FWFRFTlNJT04g
ICAgICAgICAgPSAuMworCisjIElmIHRoZSBNQU5fTElOS1MgdGFnIGlzIHNldCB0byBZRVMgYW5k
IGRveHlnZW4gZ2VuZXJhdGVzIG1hbiBvdXRwdXQsIHRoZW4gaXQKKyMgd2lsbCBnZW5lcmF0ZSBv
bmUgYWRkaXRpb25hbCBtYW4gZmlsZSBmb3IgZWFjaCBlbnRpdHkgZG9jdW1lbnRlZCBpbiB0aGUg
cmVhbAorIyBtYW4gcGFnZShzKS4gVGhlc2UgYWRkaXRpb25hbCBmaWxlcyBvbmx5IHNvdXJjZSB0
aGUgcmVhbCBtYW4gcGFnZSwgYnV0IHdpdGhvdXQKKyMgdGhlbSB0aGUgbWFuIGNvbW1hbmQgd291
bGQgYmUgdW5hYmxlIHRvIGZpbmQgdGhlIGNvcnJlY3QgcGFnZS4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFO
IGlzIHNldCB0byBZRVMuCisKK01BTl9MSU5LUyAgICAgICAgICAgICAgPSBOTworCisjLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBYTUwg
b3V0cHV0CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgdGhlIEdFTkVSQVRFX1hNTCB0YWcg
aXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYW4gWE1MIGZpbGUgdGhhdAorIyBj
YXB0dXJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRh
dGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitHRU5FUkFURV9YTUwgICAgICAg
ICAgID0gTk8KKworIyBUaGUgWE1MX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJl
IHRoZSBYTUwgcGFnZXMgd2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRl
cmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9m
CisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IHhtbC4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1hNTCBpcyBzZXQgdG8gWUVTLgorCitYTUxfT1VU
UFVUICAgICAgICAgICAgID0geG1sCisKKyMgSWYgdGhlIFhNTF9QUk9HUkFNTElTVElORyB0YWcg
aXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZHVtcCB0aGUgcHJvZ3JhbQorIyBsaXN0aW5ncyAo
aW5jbHVkaW5nIHN5bnRheCBoaWdobGlnaHRpbmcgYW5kIGNyb3NzLXJlZmVyZW5jaW5nIGluZm9y
bWF0aW9uKSB0bworIyB0aGUgWE1MIG91dHB1dC4gTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgd2ls
bCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRoZSBzaXplCisjIG9mIHRoZSBYTUwgb3V0cHV0Lgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNldCB0byBZRVMuCisKK1hNTF9QUk9HUkFNTElTVElORyAg
ICAgPSBZRVMKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMg
cmVsYXRlZCB0byB0aGUgRE9DQk9PSyBvdXRwdXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJ
ZiB0aGUgR0VORVJBVEVfRE9DQk9PSyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgRG9jYm9vayBmaWxlcworIyB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIFBERi4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitHRU5FUkFURV9ET0NCT09LICAgICAgID0g
Tk8KKworIyBUaGUgRE9DQk9PS19PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0
aGUgRG9jYm9vayBwYWdlcyB3aWxsIGJlIHB1dC4KKyMgSWYgYSByZWxhdGl2ZSBwYXRoIGlzIGVu
dGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4KKyMgZnJv
bnQgb2YgaXQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogZG9jYm9vay4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ0JPT0sgaXMgc2V0IHRvIFlFUy4K
KworRE9DQk9PS19PVVRQVVQgICAgICAgICA9IGRvY2Jvb2sKKworIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBBdXRvR2VuIERlZmluaXRpb25zIG91
dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBHRU5FUkFURV9BVVRPR0VOX0RF
RiB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYW4gQXV0b0dlbgorIyBE
ZWZpbml0aW9ucyAoc2VlIGh0dHA6Ly9hdXRvZ2VuLnNmLm5ldCkgZmlsZSB0aGF0IGNhcHR1cmVz
IHRoZSBzdHJ1Y3R1cmUgb2YKKyMgdGhlIGNvZGUgaW5jbHVkaW5nIGFsbCBkb2N1bWVudGF0aW9u
LiBOb3RlIHRoYXQgdGhpcyBmZWF0dXJlIGlzIHN0aWxsCisjIGV4cGVyaW1lbnRhbCBhbmQgaW5j
b21wbGV0ZSBhdCB0aGUgbW9tZW50LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0dF
TkVSQVRFX0FVVE9HRU5fREVGICAgPSBOTworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZp
Z3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQKKyMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgR0VORVJBVEVfUEVSTE1PRCB0YWcgaXMgc2V0IHRv
IFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBQZXJsIG1vZHVsZQorIyBmaWxlIHRoYXQgY2Fw
dHVyZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29kZSBpbmNsdWRpbmcgYWxsIGRvY3VtZW50YXRp
b24uCisjCisjIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMgc3RpbGwgZXhwZXJpbWVudGFsIGFu
ZCBpbmNvbXBsZXRlIGF0IHRoZSBtb21lbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KworR0VORVJBVEVfUEVSTE1PRCAgICAgICA9IE5PCisKKyMgSWYgdGhlIFBFUkxNT0RfTEFURVgg
dGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHRoZSBuZWNlc3NhcnkKKyMg
TWFrZWZpbGUgcnVsZXMsIFBlcmwgc2NyaXB0cyBhbmQgTGFUZVggY29kZSB0byBiZSBhYmxlIHRv
IGdlbmVyYXRlIFBERiBhbmQgRFZJCisjIG91dHB1dCBmcm9tIHRoZSBQZXJsIG1vZHVsZSBvdXRw
dXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4KKworUEVSTE1PRF9MQVRF
WCAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIFBFUkxNT0RfUFJFVFRZIHRhZyBpcyBzZXQgdG8g
WUVTIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQgd2lsbCBiZSBuaWNlbHkKKyMgZm9ybWF0dGVkIHNv
IGl0IGNhbiBiZSBwYXJzZWQgYnkgYSBodW1hbiByZWFkZXIuIFRoaXMgaXMgdXNlZnVsIGlmIHlv
dSB3YW50IHRvCisjIHVuZGVyc3RhbmQgd2hhdCBpcyBnb2luZyBvbi4gT24gdGhlIG90aGVyIGhh
bmQsIGlmIHRoaXMgdGFnIGlzIHNldCB0byBOTyB0aGUKKyMgc2l6ZSBvZiB0aGUgUGVybCBtb2R1
bGUgb3V0cHV0IHdpbGwgYmUgbXVjaCBzbWFsbGVyIGFuZCBQZXJsIHdpbGwgcGFyc2UgaXQKKyMg
anVzdCB0aGUgc2FtZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4KKwor
UEVSTE1PRF9QUkVUVFkgICAgICAgICA9IFlFUworCisjIFRoZSBuYW1lcyBvZiB0aGUgbWFrZSB2
YXJpYWJsZXMgaW4gdGhlIGdlbmVyYXRlZCBkb3h5cnVsZXMubWFrZSBmaWxlIGFyZQorIyBwcmVm
aXhlZCB3aXRoIHRoZSBzdHJpbmcgY29udGFpbmVkIGluIFBFUkxNT0RfTUFLRVZBUl9QUkVGSVgu
IFRoaXMgaXMgdXNlZnVsCisjIHNvIGRpZmZlcmVudCBkb3h5cnVsZXMubWFrZSBmaWxlcyBpbmNs
dWRlZCBieSB0aGUgc2FtZSBNYWtlZmlsZSBkb24ndAorIyBvdmVyd3JpdGUgZWFjaCBvdGhlcidz
IHZhcmlhYmxlcy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BF
UkxNT0QgaXMgc2V0IHRvIFlFUy4KKworUEVSTE1PRF9NQUtFVkFSX1BSRUZJWCA9CisKKyMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIHBy
ZXByb2Nlc3NvcgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBFTkFCTEVfUFJFUFJP
Q0VTU0lORyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZXZhbHVhdGUgYWxsCisjIEMt
cHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgZm91bmQgaW4gdGhlIHNvdXJjZXMgYW5kIGluY2x1ZGUg
ZmlsZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0VOQUJMRV9QUkVQUk9DRVNT
SU5HICAgPSBZRVMKKworIyBJZiB0aGUgTUFDUk9fRVhQQU5TSU9OIHRhZyBpcyBzZXQgdG8gWUVT
IGRveHlnZW4gd2lsbCBleHBhbmQgYWxsIG1hY3JvIG5hbWVzCisjIGluIHRoZSBzb3VyY2UgY29k
ZS4gSWYgc2V0IHRvIE5PIG9ubHkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gd2lsbCBiZQorIyBw
ZXJmb3JtZWQuIE1hY3JvIGV4cGFuc2lvbiBjYW4gYmUgZG9uZSBpbiBhIGNvbnRyb2xsZWQgd2F5
IGJ5IHNldHRpbmcKKyMgRVhQQU5EX09OTFlfUFJFREVGIHRvIFlFUy4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BS
RVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KKworTUFDUk9fRVhQQU5TSU9OICAgICAgICA9IFlF
UworCisjIElmIHRoZSBFWFBBTkRfT05MWV9QUkVERUYgYW5kIE1BQ1JPX0VYUEFOU0lPTiB0YWdz
IGFyZSBib3RoIHNldCB0byBZRVMgdGhlbgorIyB0aGUgbWFjcm8gZXhwYW5zaW9uIGlzIGxpbWl0
ZWQgdG8gdGhlIG1hY3JvcyBzcGVjaWZpZWQgd2l0aCB0aGUgUFJFREVGSU5FRCBhbmQKKyMgRVhQ
QU5EX0FTX0RFRklORUQgdGFncy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRv
IFlFUy4KKworRVhQQU5EX09OTFlfUFJFREVGICAgICA9IE5PCisKKyMgSWYgdGhlIFNFQVJDSF9J
TkNMVURFUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGUgaW5jbHVkZXMgZmlsZXMgaW4gdGhlCisjIElO
Q0xVREVfUEFUSCB3aWxsIGJlIHNlYXJjaGVkIGlmIGEgI2luY2x1ZGUgaXMgZm91bmQuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8gWUVTLgorCitTRUFSQ0hfSU5DTFVERVMg
ICAgICAgID0gWUVTCisKKyMgVGhlIElOQ0xVREVfUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0CisjIGNvbnRhaW4gaW5jbHVkZSBmaWxl
cyB0aGF0IGFyZSBub3QgaW5wdXQgZmlsZXMgYnV0IHNob3VsZCBiZSBwcm9jZXNzZWQgYnkgdGhl
CisjIHByZXByb2Nlc3Nvci4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJD
SF9JTkNMVURFUyBpcyBzZXQgdG8gWUVTLgorCitJTkNMVURFX1BBVEggICAgICAgICAgID0gLi4v
aW5jbHVkZQorCisjIFlvdSBjYW4gdXNlIHRoZSBJTkNMVURFX0ZJTEVfUEFUVEVSTlMgdGFnIHRv
IHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQKKyMgcGF0dGVybnMgKGxpa2UgKi5oIGFuZCAq
LmhwcCkgdG8gZmlsdGVyIG91dCB0aGUgaGVhZGVyLWZpbGVzIGluIHRoZQorIyBkaXJlY3Rvcmll
cy4gSWYgbGVmdCBibGFuaywgdGhlIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIEZJTEVfUEFUVEVS
TlMgd2lsbCBiZQorIyB1c2VkLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5B
QkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KKworSU5DTFVERV9GSUxFX1BBVFRFUk5T
ICA9ICouaAorCisjIFRoZSBQUkVERUZJTkVEIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9u
ZSBvciBtb3JlIG1hY3JvIG5hbWVzIHRoYXQgYXJlCisjIGRlZmluZWQgYmVmb3JlIHRoZSBwcmVw
cm9jZXNzb3IgaXMgc3RhcnRlZCAoc2ltaWxhciB0byB0aGUgLUQgb3B0aW9uIG9mIGUuZy4KKyMg
Z2NjKS4gVGhlIGFyZ3VtZW50IG9mIHRoZSB0YWcgaXMgYSBsaXN0IG9mIG1hY3JvcyBvZiB0aGUg
Zm9ybTogbmFtZSBvcgorIyBuYW1lPWRlZmluaXRpb24gKG5vIHNwYWNlcykuIElmIHRoZSBkZWZp
bml0aW9uIGFuZCB0aGUgIj0iIGFyZSBvbWl0dGVkLCAiPTEiCisjIGlzIGFzc3VtZWQuIFRvIHBy
ZXZlbnQgYSBtYWNybyBkZWZpbml0aW9uIGZyb20gYmVpbmcgdW5kZWZpbmVkIHZpYSAjdW5kZWYg
b3IKKyMgcmVjdXJzaXZlbHkgZXhwYW5kZWQgdXNlIHRoZSA6PSBvcGVyYXRvciBpbnN0ZWFkIG9m
IHRoZSA9IG9wZXJhdG9yLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxF
X1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KKworUFJFREVGSU5FRCAgICAgICAgICAgICA9
ICJfTVNDX1ZFUj0xODAwIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgX0NQUFJUVEkgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgIF9XSU4zMiBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgorCisjIElmIHRoZSBNQUNST19F
WFBBTlNJT04gYW5kIEVYUEFORF9PTkxZX1BSRURFRiB0YWdzIGFyZSBzZXQgdG8gWUVTIHRoZW4g
dGhpcworIyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIGxpc3Qgb2YgbWFjcm8gbmFtZXMg
dGhhdCBzaG91bGQgYmUgZXhwYW5kZWQuIFRoZQorIyBtYWNybyBkZWZpbml0aW9uIHRoYXQgaXMg
Zm91bmQgaW4gdGhlIHNvdXJjZXMgd2lsbCBiZSB1c2VkLiBVc2UgdGhlIFBSRURFRklORUQKKyMg
dGFnIGlmIHlvdSB3YW50IHRvIHVzZSBhIGRpZmZlcmVudCBtYWNybyBkZWZpbml0aW9uIHRoYXQg
b3ZlcnJ1bGVzIHRoZQorIyBkZWZpbml0aW9uIGZvdW5kIGluIHRoZSBzb3VyY2UgY29kZS4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGlzIHNl
dCB0byBZRVMuCisKK0VYUEFORF9BU19ERUZJTkVEICAgICAgPQorCisjIElmIHRoZSBTS0lQX0ZV
TkNUSU9OX01BQ1JPUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4ncyBwcmVwcm9jZXNz
b3Igd2lsbAorIyByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gZnVuY3Rpb24tbGlrZSBtYWNyb3Mg
dGhhdCBhcmUgYWxvbmUgb24gYSBsaW5lLCBoYXZlIGFuCisjIGFsbCB1cHBlcmNhc2UgbmFtZSwg
YW5kIGRvIG5vdCBlbmQgd2l0aCBhIHNlbWljb2xvbi4gU3VjaCBmdW5jdGlvbiBtYWNyb3MgYXJl
CisjIHR5cGljYWxseSB1c2VkIGZvciBib2lsZXItcGxhdGUgY29kZSwgYW5kIHdpbGwgY29uZnVz
ZSB0aGUgcGFyc2VyIGlmIG5vdAorIyByZW1vdmVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJ
TkcgaXMgc2V0IHRvIFlFUy4KKworU0tJUF9GVU5DVElPTl9NQUNST1MgICA9IFlFUworCisjLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIGV4dGVy
bmFsIHJlZmVyZW5jZXMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgVEFHRklMRVMgdGFn
IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgdGFnIGZpbGVzLiBGb3IgZWFjaCB0
YWcKKyMgZmlsZSB0aGUgbG9jYXRpb24gb2YgdGhlIGV4dGVybmFsIGRvY3VtZW50YXRpb24gc2hv
dWxkIGJlIGFkZGVkLiBUaGUgZm9ybWF0IG9mCisjIGEgdGFnIGZpbGUgd2l0aG91dCB0aGlzIGxv
Y2F0aW9uIGlzIGFzIGZvbGxvd3M6CisjIFRBR0ZJTEVTID0gZmlsZTEgZmlsZTIgLi4uCisjIEFk
ZGluZyBsb2NhdGlvbiBmb3IgdGhlIHRhZyBmaWxlcyBpcyBkb25lIGFzIGZvbGxvd3M6CisjIFRB
R0ZJTEVTID0gZmlsZTE9bG9jMSAiZmlsZTIgPSBsb2MyIiAuLi4KKyMgd2hlcmUgbG9jMSBhbmQg
bG9jMiBjYW4gYmUgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHMgb3IgVVJMcy4gU2VlIHRoZQor
IyBzZWN0aW9uICJMaW5raW5nIHRvIGV4dGVybmFsIGRvY3VtZW50YXRpb24iIGZvciBtb3JlIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSB1c2UKKyMgb2YgdGFnIGZpbGVzLgorIyBOb3RlOiBFYWNoIHRh
ZyBmaWxlIG11c3QgaGF2ZSBhbiB1bmlxdWUgbmFtZSAod2hlcmUgdGhlIG5hbWUgZG9lcyBOT1Qg
aW5jbHVkZQorIyB0aGUgcGF0aCkuIElmIGEgdGFnIGZpbGUgaXMgbm90IGxvY2F0ZWQgaW4gdGhl
IGRpcmVjdG9yeSBpbiB3aGljaCBkb3h5Z2VuIGlzCisjIHJ1biwgeW91IG11c3QgYWxzbyBzcGVj
aWZ5IHRoZSBwYXRoIHRvIHRoZSB0YWdmaWxlIGhlcmUuCisKK1RBR0ZJTEVTICAgICAgICAgICAg
ICAgPQorCisjIFdoZW4gYSBmaWxlIG5hbWUgaXMgc3BlY2lmaWVkIGFmdGVyIEdFTkVSQVRFX1RB
R0ZJTEUsIGRveHlnZW4gd2lsbCBjcmVhdGUgYQorIyB0YWcgZmlsZSB0aGF0IGlzIGJhc2VkIG9u
IHRoZSBpbnB1dCBmaWxlcyBpdCByZWFkcy4gU2VlIHNlY3Rpb24gIkxpbmtpbmcgdG8KKyMgZXh0
ZXJuYWwgZG9jdW1lbnRhdGlvbiIgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzYWdl
IG9mIHRhZyBmaWxlcy4KKworR0VORVJBVEVfVEFHRklMRSAgICAgICA9CisKKyMgSWYgdGhlIEFM
TEVYVEVSTkFMUyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJuYWwgY2xhc3Mgd2lsbCBiZSBs
aXN0ZWQgaW4gdGhlCisjIGNsYXNzIGluZGV4LiBJZiBzZXQgdG8gTk8gb25seSB0aGUgaW5oZXJp
dGVkIGV4dGVybmFsIGNsYXNzZXMgd2lsbCBiZSBsaXN0ZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKworQUxMRVhURVJOQUxTICAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIEVYVEVS
TkFMX0dST1VQUyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJuYWwgZ3JvdXBzIHdpbGwgYmUg
bGlzdGVkIGluCisjIHRoZSBtb2R1bGVzIGluZGV4LiBJZiBzZXQgdG8gTk8sIG9ubHkgdGhlIGN1
cnJlbnQgcHJvamVjdCdzIGdyb3VwcyB3aWxsIGJlCisjIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IFlFUy4KKworRVhURVJOQUxfR1JPVVBTICAgICAgICA9IFlFUworCisjIElmIHRo
ZSBFWFRFUk5BTF9QQUdFUyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJuYWwgcGFnZXMgd2ls
bCBiZSBsaXN0ZWQgaW4KKyMgdGhlIHJlbGF0ZWQgcGFnZXMgaW5kZXguIElmIHNldCB0byBOTywg
b25seSB0aGUgY3VycmVudCBwcm9qZWN0J3MgcGFnZXMgd2lsbAorIyBiZSBsaXN0ZWQuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK0VYVEVSTkFMX1BBR0VTICAgICAgICAgPSBZRVMK
KworIyBUaGUgUEVSTF9QQVRIIHNob3VsZCBiZSB0aGUgYWJzb2x1dGUgcGF0aCBhbmQgbmFtZSBv
ZiB0aGUgcGVybCBzY3JpcHQKKyMgaW50ZXJwcmV0ZXIgKGkuZS4gdGhlIHJlc3VsdCBvZiAnd2hp
Y2ggcGVybCcpLgorIyBUaGUgZGVmYXVsdCBmaWxlICh3aXRoIGFic29sdXRlIHBhdGgpIGlzOiAv
dXNyL2Jpbi9wZXJsLgorCitQRVJMX1BBVEggICAgICAgICAgICAgID0gL3Vzci9iaW4vcGVybAor
CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRv
IHRoZSBkb3QgdG9vbAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBDTEFTU19ESUFH
UkFNUyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjbGFzcyBkaWFn
cmFtCisjIChpbiBIVE1MIGFuZCBMYVRlWCkgZm9yIGNsYXNzZXMgd2l0aCBiYXNlIG9yIHN1cGVy
IGNsYXNzZXMuIFNldHRpbmcgdGhlIHRhZyB0bworIyBOTyB0dXJucyB0aGUgZGlhZ3JhbXMgb2Zm
LiBOb3RlIHRoYXQgdGhpcyBvcHRpb24gYWxzbyB3b3JrcyB3aXRoIEhBVkVfRE9UCisjIGRpc2Fi
bGVkLCBidXQgaXQgaXMgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBhbmQgdXNlIGRvdCwgc2luY2Ug
aXQgeWllbGRzIG1vcmUKKyMgcG93ZXJmdWwgZ3JhcGhzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgorCitDTEFTU19ESUFHUkFNUyAgICAgICAgID0gTk8KKworIyBZb3UgY2FuIGRlZmlu
ZSBtZXNzYWdlIHNlcXVlbmNlIGNoYXJ0cyB3aXRoaW4gZG94eWdlbiBjb21tZW50cyB1c2luZyB0
aGUgXG1zYworIyBjb21tYW5kLiBEb3h5Z2VuIHdpbGwgdGhlbiBydW4gdGhlIG1zY2dlbiB0b29s
IChzZWU6CisjIGh0dHA6Ly93d3cubWN0ZXJuYW4ubWUudWsvbXNjZ2VuLykpIHRvIHByb2R1Y2Ug
dGhlIGNoYXJ0IGFuZCBpbnNlcnQgaXQgaW4gdGhlCisjIGRvY3VtZW50YXRpb24uIFRoZSBNU0NH
RU5fUEFUSCB0YWcgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHRoZSBkaXJlY3Rvcnkgd2hlcmUKKyMg
dGhlIG1zY2dlbiB0b29sIHJlc2lkZXMuIElmIGxlZnQgZW1wdHkgdGhlIHRvb2wgaXMgYXNzdW1l
ZCB0byBiZSBmb3VuZCBpbiB0aGUKKyMgZGVmYXVsdCBzZWFyY2ggcGF0aC4KKworTVNDR0VOX1BB
VEggICAgICAgICAgICA9CisKKyMgSWYgc2V0IHRvIFlFUywgdGhlIGluaGVyaXRhbmNlIGFuZCBj
b2xsYWJvcmF0aW9uIGdyYXBocyB3aWxsIGhpZGUgaW5oZXJpdGFuY2UKKyMgYW5kIHVzYWdlIHJl
bGF0aW9ucyBpZiB0aGUgdGFyZ2V0IGlzIHVuZG9jdW1lbnRlZCBvciBpcyBub3QgYSBjbGFzcy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworSElERV9VTkRPQ19SRUxBVElPTlMgICA9
IE5PCisKKyMgSWYgeW91IHNldCB0aGUgSEFWRV9ET1QgdGFnIHRvIFlFUyB0aGVuIGRveHlnZW4g
d2lsbCBhc3N1bWUgdGhlIGRvdCB0b29sIGlzCisjIGF2YWlsYWJsZSBmcm9tIHRoZSBwYXRoLiBU
aGlzIHRvb2wgaXMgcGFydCBvZiBHcmFwaHZpeiAoc2VlOgorIyBodHRwOi8vd3d3LmdyYXBodml6
Lm9yZy8pLCBhIGdyYXBoIHZpc3VhbGl6YXRpb24gdG9vbGtpdCBmcm9tIEFUJlQgYW5kIEx1Y2Vu
dAorIyBCZWxsIExhYnMuIFRoZSBvdGhlciBvcHRpb25zIGluIHRoaXMgc2VjdGlvbiBoYXZlIG5v
IGVmZmVjdCBpZiB0aGlzIG9wdGlvbiBpcworIyBzZXQgdG8gTk8KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgorCitIQVZFX0RPVCAgICAgICAgICAgICAgID0gJUhBVkVfRE9UJQorCisjIFRo
ZSBET1RfTlVNX1RIUkVBRFMgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZG90IGludm9jYXRpb25z
IGRveHlnZW4gaXMgYWxsb3dlZAorIyB0byBydW4gaW4gcGFyYWxsZWwuIFdoZW4gc2V0IHRvIDAg
ZG94eWdlbiB3aWxsIGJhc2UgdGhpcyBvbiB0aGUgbnVtYmVyIG9mCisjIHByb2Nlc3NvcnMgYXZh
aWxhYmxlIGluIHRoZSBzeXN0ZW0uIFlvdSBjYW4gc2V0IGl0IGV4cGxpY2l0bHkgdG8gYSB2YWx1
ZQorIyBsYXJnZXIgdGhhbiAwIHRvIGdldCBjb250cm9sIG92ZXIgdGhlIGJhbGFuY2UgYmV0d2Vl
biBDUFUgbG9hZCBhbmQgcHJvY2Vzc2luZworIyBzcGVlZC4KKyMgTWluaW11bSB2YWx1ZTogMCwg
bWF4aW11bSB2YWx1ZTogMzIsIGRlZmF1bHQgdmFsdWU6IDAuCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfTlVNX1RIUkVBRFMg
ICAgICAgID0gMAorCisjIFdoZW4geW91IHdhbnQgYSBkaWZmZXJlbnRseSBsb29raW5nIGZvbnQg
biB0aGUgZG90IGZpbGVzIHRoYXQgZG94eWdlbgorIyBnZW5lcmF0ZXMgeW91IGNhbiBzcGVjaWZ5
IHRoZSBmb250IG5hbWUgdXNpbmcgRE9UX0ZPTlROQU1FLiBZb3UgbmVlZCB0byBtYWtlCisjIHN1
cmUgZG90IGlzIGFibGUgdG8gZmluZCB0aGUgZm9udCwgd2hpY2ggY2FuIGJlIGRvbmUgYnkgcHV0
dGluZyBpdCBpbiBhCisjIHN0YW5kYXJkIGxvY2F0aW9uIG9yIGJ5IHNldHRpbmcgdGhlIERPVEZP
TlRQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGJ5CisjIHNldHRpbmcgRE9UX0ZPTlRQQVRI
IHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZm9udC4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IEhlbHZldGljYS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVf
RE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9GT05UTkFNRSAgICAgICAgICAgPSBGcmVlU2Fucwor
CisjIFRoZSBET1RfRk9OVFNJWkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgc2l6ZSAoaW4g
cG9pbnRzKSBvZiB0aGUgZm9udCBvZgorIyBkb3QgZ3JhcGhzLgorIyBNaW5pbXVtIHZhbHVlOiA0
LCBtYXhpbXVtIHZhbHVlOiAyNCwgZGVmYXVsdCB2YWx1ZTogMTAuCisjIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfRk9OVFNJWkUg
ICAgICAgICAgID0gMTAKKworIyBCeSBkZWZhdWx0IGRveHlnZW4gd2lsbCB0ZWxsIGRvdCB0byB1
c2UgdGhlIGRlZmF1bHQgZm9udCBhcyBzcGVjaWZpZWQgd2l0aAorIyBET1RfRk9OVE5BTUUuIElm
IHlvdSBzcGVjaWZ5IGEgZGlmZmVyZW50IGZvbnQgdXNpbmcgRE9UX0ZPTlROQU1FIHlvdSBjYW4g
c2V0CisjIHRoZSBwYXRoIHdoZXJlIGRvdCBjYW4gZmluZCBpdCB1c2luZyB0aGlzIHRhZy4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisK
K0RPVF9GT05UUEFUSCAgICAgICAgICAgPQorCisjIElmIHRoZSBDTEFTU19HUkFQSCB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvcgorIyBlYWNo
IGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGlyZWN0IGFuZCBpbmRpcmVjdCBpbmhlcml0
YW5jZSByZWxhdGlvbnMuCisjIFNldHRpbmcgdGhpcyB0YWcgdG8gWUVTIHdpbGwgZm9yY2UgdGhl
IENMQVNTX0RJQUdSQU1TIHRhZyB0byBOTy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CisKK0NMQVNTX0dSQVBIICAgICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgQ09MTEFCT1JBVElP
Tl9HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhCisj
IGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGlyZWN0IGFuZCBp
bmRpcmVjdCBpbXBsZW1lbnRhdGlvbgorIyBkZXBlbmRlbmNpZXMgKGluaGVyaXRhbmNlLCBjb250
YWlubWVudCwgYW5kIGNsYXNzIHJlZmVyZW5jZXMgdmFyaWFibGVzKSBvZiB0aGUKKyMgY2xhc3Mg
d2l0aCBvdGhlciBkb2N1bWVudGVkIGNsYXNzZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZ
RVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8g
WUVTLgorCitDT0xMQUJPUkFUSU9OX0dSQVBIICAgID0gWUVTCisKKyMgSWYgdGhlIEdST1VQX0dS
QVBIUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBo
IGZvcgorIyBncm91cHMsIHNob3dpbmcgdGhlIGRpcmVjdCBncm91cHMgZGVwZW5kZW5jaWVzLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworR1JPVVBfR1JBUEhTICAgICAgICAgICA9
IFlFUworCisjIElmIHRoZSBVTUxfTE9PSyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwg
Z2VuZXJhdGUgaW5oZXJpdGFuY2UgYW5kCisjIGNvbGxhYm9yYXRpb24gZGlhZ3JhbXMgaW4gYSBz
dHlsZSBzaW1pbGFyIHRvIHRoZSBPTUcncyBVbmlmaWVkIE1vZGVsaW5nCisjIExhbmd1YWdlLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitVTUxfTE9PSyAgICAgICAgICAgICAgID0g
JVVNTF9MT09LJQorCisjIElmIHRoZSBVTUxfTE9PSyB0YWcgaXMgZW5hYmxlZCwgdGhlIGZpZWxk
cyBhbmQgbWV0aG9kcyBhcmUgc2hvd24gaW5zaWRlIHRoZQorIyBjbGFzcyBub2RlLiBJZiB0aGVy
ZSBhcmUgbWFueSBmaWVsZHMgb3IgbWV0aG9kcyBhbmQgbWFueSBub2RlcyB0aGUgZ3JhcGggbWF5
CisjIGJlY29tZSB0b28gYmlnIHRvIGJlIHVzZWZ1bC4gVGhlIFVNTF9MSU1JVF9OVU1fRklFTERT
IHRocmVzaG9sZCBsaW1pdHMgdGhlCisjIG51bWJlciBvZiBpdGVtcyBmb3IgZWFjaCB0eXBlIHRv
IG1ha2UgdGhlIHNpemUgbW9yZSBtYW5hZ2VhYmxlLiBTZXQgdGhpcyB0byAwCisjIGZvciBubyBs
aW1pdC4gTm90ZSB0aGF0IHRoZSB0aHJlc2hvbGQgbWF5IGJlIGV4Y2VlZGVkIGJ5IDUwJSBiZWZv
cmUgdGhlIGxpbWl0CisjIGlzIGVuZm9yY2VkLiBTbyB3aGVuIHlvdSBzZXQgdGhlIHRocmVzaG9s
ZCB0byAxMCwgdXAgdG8gMTUgZmllbGRzIG1heSBhcHBlYXIsCisjIGJ1dCBpZiB0aGUgbnVtYmVy
IGV4Y2VlZHMgMTUsIHRoZSB0b3RhbCBhbW91bnQgb2YgZmllbGRzIHNob3duIGlzIGxpbWl0ZWQg
dG8KKyMgMTAuCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMCwgZGVmYXVs
dCB2YWx1ZTogMTAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBp
cyBzZXQgdG8gWUVTLgorCitVTUxfTElNSVRfTlVNX0ZJRUxEUyAgID0gMTAKKworIyBJZiB0aGUg
VEVNUExBVEVfUkVMQVRJT05TIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGluaGVyaXRhbmNl
IGFuZAorIyBjb2xsYWJvcmF0aW9uIGdyYXBocyB3aWxsIHNob3cgdGhlIHJlbGF0aW9ucyBiZXR3
ZWVuIHRlbXBsYXRlcyBhbmQgdGhlaXIKKyMgaW5zdGFuY2VzLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBz
ZXQgdG8gWUVTLgorCitURU1QTEFURV9SRUxBVElPTlMgICAgID0gWUVTCisKKyMgSWYgdGhlIElO
Q0xVREVfR1JBUEgsIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGFuZCBTRUFSQ0hfSU5DTFVERVMgdGFn
cyBhcmUgc2V0IHRvCisjIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZv
ciBlYWNoIGRvY3VtZW50ZWQgZmlsZSBzaG93aW5nIHRoZQorIyBkaXJlY3QgYW5kIGluZGlyZWN0
IGluY2x1ZGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBmaWxlIHdpdGggb3RoZXIgZG9jdW1lbnRlZAor
IyBmaWxlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0lOQ0xVREVfR1JBUEgg
ICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgSU5DTFVERURfQllfR1JBUEgsIEVOQUJMRV9QUkVQ
Uk9DRVNTSU5HIGFuZCBTRUFSQ0hfSU5DTFVERVMgdGFncyBhcmUKKyMgc2V0IHRvIFlFUyB0aGVu
IGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgZmlsZSBz
aG93aW5nCisjIHRoZSBkaXJlY3QgYW5kIGluZGlyZWN0IGluY2x1ZGUgZGVwZW5kZW5jaWVzIG9m
IHRoZSBmaWxlIHdpdGggb3RoZXIgZG9jdW1lbnRlZAorIyBmaWxlcy4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9U
IGlzIHNldCB0byBZRVMuCisKK0lOQ0xVREVEX0JZX0dSQVBIICAgICAgPSBZRVMKKworIyBJZiB0
aGUgQ0FMTF9HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0
ZSBhIGNhbGwKKyMgZGVwZW5kZW5jeSBncmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1bmN0aW9uIG9y
IGNsYXNzIG1ldGhvZC4KKyMKKyMgTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwg
c2lnbmlmaWNhbnRseSBpbmNyZWFzZSB0aGUgdGltZSBvZiBhIHJ1bi4KKyMgU28gaW4gbW9zdCBj
YXNlcyBpdCB3aWxsIGJlIGJldHRlciB0byBlbmFibGUgY2FsbCBncmFwaHMgZm9yIHNlbGVjdGVk
CisjIGZ1bmN0aW9ucyBvbmx5IHVzaW5nIHRoZSBcY2FsbGdyYXBoIGNvbW1hbmQuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhB
VkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0NBTExfR1JBUEggICAgICAgICAgICAgPSBOTworCisj
IElmIHRoZSBDQUxMRVJfR1JBUEggdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwg
Z2VuZXJhdGUgYSBjYWxsZXIKKyMgZGVwZW5kZW5jeSBncmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1
bmN0aW9uIG9yIGNsYXNzIG1ldGhvZC4KKyMKKyMgTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgb3B0
aW9uIHdpbGwgc2lnbmlmaWNhbnRseSBpbmNyZWFzZSB0aGUgdGltZSBvZiBhIHJ1bi4KKyMgU28g
aW4gbW9zdCBjYXNlcyBpdCB3aWxsIGJlIGJldHRlciB0byBlbmFibGUgY2FsbGVyIGdyYXBocyBm
b3Igc2VsZWN0ZWQKKyMgZnVuY3Rpb25zIG9ubHkgdXNpbmcgdGhlIFxjYWxsZXJncmFwaCBjb21t
YW5kLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitDQUxMRVJfR1JBUEggICAgICAg
ICAgID0gWUVTCisKKyMgSWYgdGhlIEdSQVBISUNBTF9ISUVSQVJDSFkgdGFnIGlzIHNldCB0byBZ
RVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ3JhcGhpY2FsCisjIGhpZXJhcmNoeSBvZiBhbGwgY2xhc3Nl
cyBpbnN0ZWFkIG9mIGEgdGV4dHVhbCBvbmUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVT
LgorCitHUkFQSElDQUxfSElFUkFSQ0hZICAgID0gWUVTCisKKyMgSWYgdGhlIERJUkVDVE9SWV9H
UkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBzaG93IHRoZQorIyBkZXBl
bmRlbmNpZXMgYSBkaXJlY3RvcnkgaGFzIG9uIG90aGVyIGRpcmVjdG9yaWVzIGluIGEgZ3JhcGhp
Y2FsIHdheS4gVGhlCisjIGRlcGVuZGVuY3kgcmVsYXRpb25zIGFyZSBkZXRlcm1pbmVkIGJ5IHRo
ZSAjaW5jbHVkZSByZWxhdGlvbnMgYmV0d2VlbiB0aGUKKyMgZmlsZXMgaW4gdGhlIGRpcmVjdG9y
aWVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworRElSRUNUT1JZX0dSQVBIICAg
ICAgICA9IFlFUworCisjIFRoZSBET1RfSU1BR0VfRk9STUFUIHRhZyBjYW4gYmUgdXNlZCB0byBz
ZXQgdGhlIGltYWdlIGZvcm1hdCBvZiB0aGUgaW1hZ2VzCisjIGdlbmVyYXRlZCBieSBkb3QuCisj
IE5vdGU6IElmIHlvdSBjaG9vc2Ugc3ZnIHlvdSBuZWVkIHRvIHNldCBIVE1MX0ZJTEVfRVhURU5T
SU9OIHRvIHhodG1sIGluIG9yZGVyCisjIHRvIG1ha2UgdGhlIFNWRyBmaWxlcyB2aXNpYmxlIGlu
IElFIDkrIChvdGhlciBicm93c2VycyBkbyBub3QgaGF2ZSB0aGlzCisjIHJlcXVpcmVtZW50KS4K
KyMgUG9zc2libGUgdmFsdWVzIGFyZTogcG5nLCBqcGcsIGdpZiBhbmQgc3ZnLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogcG5nLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFW
RV9ET1QgaXMgc2V0IHRvIFlFUy4KKworRE9UX0lNQUdFX0ZPUk1BVCAgICAgICA9IHBuZworCisj
IElmIERPVF9JTUFHRV9GT1JNQVQgaXMgc2V0IHRvIHN2ZywgdGhlbiB0aGlzIG9wdGlvbiBjYW4g
YmUgc2V0IHRvIFlFUyB0bworIyBlbmFibGUgZ2VuZXJhdGlvbiBvZiBpbnRlcmFjdGl2ZSBTVkcg
aW1hZ2VzIHRoYXQgYWxsb3cgem9vbWluZyBhbmQgcGFubmluZy4KKyMKKyMgTm90ZSB0aGF0IHRo
aXMgcmVxdWlyZXMgYSBtb2Rlcm4gYnJvd3NlciBvdGhlciB0aGFuIEludGVybmV0IEV4cGxvcmVy
LiBUZXN0ZWQKKyMgYW5kIHdvcmtpbmcgYXJlIEZpcmVmb3gsIENocm9tZSwgU2FmYXJpLCBhbmQg
T3BlcmEuCisjIE5vdGU6IEZvciBJRSA5KyB5b3UgbmVlZCB0byBzZXQgSFRNTF9GSUxFX0VYVEVO
U0lPTiB0byB4aHRtbCBpbiBvcmRlciB0byBtYWtlCisjIHRoZSBTVkcgZmlsZXMgdmlzaWJsZS4g
T2xkZXIgdmVyc2lvbnMgb2YgSUUgZG8gbm90IGhhdmUgU1ZHIHN1cHBvcnQuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVf
RE9UIGlzIHNldCB0byBZRVMuCisKK0lOVEVSQUNUSVZFX1NWRyAgICAgICAgPSBOTworCisjIFRo
ZSBET1RfUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgcGF0aCB3aGVyZSB0aGUg
ZG90IHRvb2wgY2FuIGJlCisjIGZvdW5kLiBJZiBsZWZ0IGJsYW5rLCBpdCBpcyBhc3N1bWVkIHRo
ZSBkb3QgdG9vbCBjYW4gYmUgZm91bmQgaW4gdGhlIHBhdGguCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfUEFUSCAgICAgICAg
ICAgICAgID0gJURPVF9QQVRIJQorCisjIFRoZSBET1RGSUxFX0RJUlMgdGFnIGNhbiBiZSB1c2Vk
IHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250YWluIGRvdCBm
aWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIHRoZSBcZG90
ZmlsZQorIyBjb21tYW5kKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVf
RE9UIGlzIHNldCB0byBZRVMuCisKK0RPVEZJTEVfRElSUyAgICAgICAgICAgPQorCisjIFRoZSBN
U0NGSUxFX0RJUlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZGlyZWN0
b3JpZXMgdGhhdAorIyBjb250YWluIG1zYyBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiAoc2VlIHRoZSBcbXNjZmlsZQorIyBjb21tYW5kKS4KKworTVNDRklMRV9E
SVJTICAgICAgICAgICA9CisKKyMgVGhlIERPVF9HUkFQSF9NQVhfTk9ERVMgdGFnIGNhbiBiZSB1
c2VkIHRvIHNldCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygbm9kZXMKKyMgdGhhdCB3aWxsIGJlIHNo
b3duIGluIHRoZSBncmFwaC4gSWYgdGhlIG51bWJlciBvZiBub2RlcyBpbiBhIGdyYXBoIGJlY29t
ZXMKKyMgbGFyZ2VyIHRoYW4gdGhpcyB2YWx1ZSwgZG94eWdlbiB3aWxsIHRydW5jYXRlIHRoZSBn
cmFwaCwgd2hpY2ggaXMgdmlzdWFsaXplZAorIyBieSByZXByZXNlbnRpbmcgYSBub2RlIGFzIGEg
cmVkIGJveC4gTm90ZSB0aGF0IGRveHlnZW4gaWYgdGhlIG51bWJlciBvZiBkaXJlY3QKKyMgY2hp
bGRyZW4gb2YgdGhlIHJvb3Qgbm9kZSBpbiBhIGdyYXBoIGlzIGFscmVhZHkgbGFyZ2VyIHRoYW4K
KyMgRE9UX0dSQVBIX01BWF9OT0RFUyB0aGVuIHRoZSBncmFwaCB3aWxsIG5vdCBiZSBzaG93biBh
dCBhbGwuIEFsc28gbm90ZSB0aGF0CisjIHRoZSBzaXplIG9mIGEgZ3JhcGggY2FuIGJlIGZ1cnRo
ZXIgcmVzdHJpY3RlZCBieSBNQVhfRE9UX0dSQVBIX0RFUFRILgorIyBNaW5pbXVtIHZhbHVlOiAw
LCBtYXhpbXVtIHZhbHVlOiAxMDAwMCwgZGVmYXVsdCB2YWx1ZTogNTAuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfR1JBUEhf
TUFYX05PREVTICAgID0gNTAKKworIyBUaGUgTUFYX0RPVF9HUkFQSF9ERVBUSCB0YWcgY2FuIGJl
IHVzZWQgdG8gc2V0IHRoZSBtYXhpbXVtIGRlcHRoIG9mIHRoZSBncmFwaHMKKyMgZ2VuZXJhdGVk
IGJ5IGRvdC4gQSBkZXB0aCB2YWx1ZSBvZiAzIG1lYW5zIHRoYXQgb25seSBub2RlcyByZWFjaGFi
bGUgZnJvbSB0aGUKKyMgcm9vdCBieSBmb2xsb3dpbmcgYSBwYXRoIHZpYSBhdCBtb3N0IDMgZWRn
ZXMgd2lsbCBiZSBzaG93bi4gTm9kZXMgdGhhdCBsYXkKKyMgZnVydGhlciBmcm9tIHRoZSByb290
IG5vZGUgd2lsbCBiZSBvbWl0dGVkLiBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIG9wdGlvbiB0byAx
CisjIG9yIDIgbWF5IGdyZWF0bHkgcmVkdWNlIHRoZSBjb21wdXRhdGlvbiB0aW1lIG5lZWRlZCBm
b3IgbGFyZ2UgY29kZSBiYXNlcy4gQWxzbworIyBub3RlIHRoYXQgdGhlIHNpemUgb2YgYSBncmFw
aCBjYW4gYmUgZnVydGhlciByZXN0cmljdGVkIGJ5CisjIERPVF9HUkFQSF9NQVhfTk9ERVMuIFVz
aW5nIGEgZGVwdGggb2YgMCBtZWFucyBubyBkZXB0aCByZXN0cmljdGlvbi4KKyMgTWluaW11bSB2
YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTAwMCwgZGVmYXVsdCB2YWx1ZTogMC4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK01BWF9E
T1RfR1JBUEhfREVQVEggICAgPSAxMDAwCisKKyMgU2V0IHRoZSBET1RfVFJBTlNQQVJFTlQgdGFn
IHRvIFlFUyB0byBnZW5lcmF0ZSBpbWFnZXMgd2l0aCBhIHRyYW5zcGFyZW50CisjIGJhY2tncm91
bmQuIFRoaXMgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwgYmVjYXVzZSBkb3Qgb24gV2luZG93cyBk
b2VzIG5vdCBzZWVtCisjIHRvIHN1cHBvcnQgdGhpcyBvdXQgb2YgdGhlIGJveC4KKyMKKyMgV2Fy
bmluZzogRGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSB1c2VkLCBlbmFibGluZyB0aGlzIG9wdGlv
biBtYXkgbGVhZCB0bworIyBiYWRseSBhbnRpLWFsaWFzZWQgbGFiZWxzIG9uIHRoZSBlZGdlcyBv
ZiBhIGdyYXBoIChpLmUuIHRoZXkgYmVjb21lIGhhcmQgdG8KKyMgcmVhZCkuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVf
RE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9UUkFOU1BBUkVOVCAgICAgICAgPSBOTworCisjIFNl
dCB0aGUgRE9UX01VTFRJX1RBUkdFVFMgdGFnIHRvIFlFUyBhbGxvdyBkb3QgdG8gZ2VuZXJhdGUg
bXVsdGlwbGUgb3V0cHV0CisjIGZpbGVzIGluIG9uZSBydW4gKGkuZS4gbXVsdGlwbGUgLW8gYW5k
IC1UIG9wdGlvbnMgb24gdGhlIGNvbW1hbmQgbGluZSkuIFRoaXMKKyMgbWFrZXMgZG90IHJ1biBm
YXN0ZXIsIGJ1dCBzaW5jZSBvbmx5IG5ld2VyIHZlcnNpb25zIG9mIGRvdCAoPjEuOC4xMCkgc3Vw
cG9ydAorIyB0aGlzLCB0aGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
SEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworRE9UX01VTFRJX1RBUkdFVFMgICAgICA9IFlFUwor
CisjIElmIHRoZSBHRU5FUkFURV9MRUdFTkQgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxs
IGdlbmVyYXRlIGEgbGVnZW5kIHBhZ2UKKyMgZXhwbGFpbmluZyB0aGUgbWVhbmluZyBvZiB0aGUg
dmFyaW91cyBib3hlcyBhbmQgYXJyb3dzIGluIHRoZSBkb3QgZ2VuZXJhdGVkCisjIGdyYXBocy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0dFTkVSQVRFX0xFR0VORCAgICAgICAg
PSBZRVMKKworIyBJZiB0aGUgRE9UX0NMRUFOVVAgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3
aWxsIHJlbW92ZSB0aGUgaW50ZXJtZWRpYXRlIGRvdAorIyBmaWxlcyB0aGF0IGFyZSB1c2VkIHRv
IGdlbmVyYXRlIHRoZSB2YXJpb3VzIGdyYXBocy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlF
Uy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZ
RVMuCisKK0RPVF9DTEVBTlVQICAgICAgICAgICAgPSBZRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG94
eWJ1aWxkLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9kb3h5YnVpbGQucHkKaW5kZXggMDNhZDY4ZGYwMjc3NjM4YTEzMTY5
NmIxNWJjMTgyN2QxZjhhMTVhNy4uODYyYzFmNDNmZjRiMGQ2MzQ5MjFkYTRmNzkwM2FiM2MyMjAy
ZDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb3h5YnVpbGQucHkKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb3h5YnVpbGQu
cHkKQEAgLTEsMTIgKzEsMjcgQEAKICIiIlNjcmlwdCB0byBnZW5lcmF0ZSBkb3h5Z2VuIGRvY3Vt
ZW50YXRpb24uCiAiIiIKLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCitmcm9tIGRldnRvb2xzIGlt
cG9ydCB0YXJiYWxsCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCitpbXBv
cnQgc3VicHJvY2VzcworaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHJlCiBpbXBvcnQgb3MKLWlt
cG9ydCBvcy5wYXRoCiBpbXBvcnQgc3lzCiBpbXBvcnQgc2h1dGlsCi1mcm9tIGRldnRvb2xzIGlt
cG9ydCB0YXJiYWxsCisKK0Bjb250ZXh0bWFuYWdlcgorZGVmIGNkKG5ld2Rpcik6CisgICAgIiIi
CisgICAgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MzE2ODQvaG93LWRvLWkt
Y2QtaW4tcHl0aG9uCisgICAgIiIiCisgICAgcHJldmRpciA9IG9zLmdldGN3ZCgpCisgICAgb3Mu
Y2hkaXIobmV3ZGlyKQorICAgIHRyeToKKyAgICAgICAgeWllbGQKKyAgICBmaW5hbGx5OgorICAg
ICAgICBvcy5jaGRpcihwcmV2ZGlyKQogCiBkZWYgZmluZF9wcm9ncmFtKCpmaWxlbmFtZXMpOgog
ICAgICIiImZpbmQgYSBwcm9ncmFtIGluIGZvbGRlcnMgcGF0aF9sc3QsIGFuZCBzZXRzIGVudlt2
YXJdCkBAIC0xNCw5ICsyOSw5IEBAIGRlZiBmaW5kX3Byb2dyYW0oKmZpbGVuYW1lcyk6CiAgICAg
QHJldHVybjogdGhlIGZ1bGwgcGF0aCBvZiB0aGUgZmlsZW5hbWUgaWYgZm91bmQsIG9yICcnIGlm
IGZpbGVuYW1lIGNvdWxkIG5vdCBiZSBmb3VuZAogIiIiCiAgICAgcGF0aHMgPSBvcy5lbnZpcm9u
LmdldCgnUEFUSCcsICcnKS5zcGxpdChvcy5wYXRoc2VwKQotICAgIHN1ZmZpeGVzID0gKCd3aW4z
MicgaW4gc3lzLnBsYXRmb3JtICkgYW5kICcuZXhlIC5jb20gLmJhdCAuY21kJyBvciAnJworICAg
IHN1ZmZpeGVzID0gKCd3aW4zMicgaW4gc3lzLnBsYXRmb3JtKSBhbmQgJy5leGUgLmNvbSAuYmF0
IC5jbWQnIG9yICcnCiAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoKLSAgICAgICAgZm9y
IG5hbWUgaW4gW2ZpbGVuYW1lK2V4dCBmb3IgZXh0IGluIHN1ZmZpeGVzLnNwbGl0KCldOgorICAg
ICAgICBmb3IgbmFtZSBpbiBbZmlsZW5hbWUrZXh0IGZvciBleHQgaW4gc3VmZml4ZXMuc3BsaXQo
JyAnKV06CiAgICAgICAgICAgICBmb3IgZGlyZWN0b3J5IGluIHBhdGhzOgogICAgICAgICAgICAg
ICAgIGZ1bGxfcGF0aCA9IG9zLnBhdGguam9pbihkaXJlY3RvcnksIG5hbWUpCiAgICAgICAgICAg
ICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZnVsbF9wYXRoKToKQEAgLTI4LDUzICs0Myw1NiBAQCBk
ZWYgZG9fc3Vic3RfaW5fZmlsZSh0YXJnZXRmaWxlLCBzb3VyY2VmaWxlLCBkaWN0KToKICAgICBG
b3IgZXhhbXBsZSwgaWYgZGljdCBpcyB7JyVWRVJTSU9OJSc6ICcxLjIzNDUnLCAnJUJBU0UlJzog
J015UHJvZyd9LAogICAgIHRoZW4gYWxsIGluc3RhbmNlcyBvZiAlVkVSU0lPTiUgaW4gdGhlIGZp
bGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoIDEuMjM0NSBldGMuCiAgICAgIiIiCi0gICAgdHJ5Ogot
ICAgICAgICBmID0gb3Blbihzb3VyY2VmaWxlLCAncmInKQorICAgIHdpdGggb3Blbihzb3VyY2Vm
aWxlLCAncicpIGFzIGY6CiAgICAgICAgIGNvbnRlbnRzID0gZi5yZWFkKCkKLSAgICAgICAgZi5j
bG9zZSgpCi0gICAgZXhjZXB0OgotICAgICAgICBwcmludCAiQ2FuJ3QgcmVhZCBzb3VyY2UgZmls
ZSAlcyIlc291cmNlZmlsZQotICAgICAgICByYWlzZQotICAgIGZvciAoayx2KSBpbiBkaWN0Lml0
ZW1zKCk6CisgICAgZm9yIChrLHYpIGluIGxpc3QoZGljdC5pdGVtcygpKToKICAgICAgICAgdiA9
IHYucmVwbGFjZSgnXFwnLCdcXFxcJykgCiAgICAgICAgIGNvbnRlbnRzID0gcmUuc3ViKGssIHYs
IGNvbnRlbnRzKQotICAgIHRyeToKLSAgICAgICAgZiA9IG9wZW4odGFyZ2V0ZmlsZSwgJ3diJykK
KyAgICB3aXRoIG9wZW4odGFyZ2V0ZmlsZSwgJ3cnKSBhcyBmOgogICAgICAgICBmLndyaXRlKGNv
bnRlbnRzKQotICAgICAgICBmLmNsb3NlKCkKKworZGVmIGdldHN0YXR1c291dHB1dChjbWQpOgor
ICAgICIiImNtZCBpcyBhIGxpc3QuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBwcm9jZXNz
ID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1z
dWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAgb3V0cHV0LCBfID0gcHJvY2Vzcy5jb21tdW5pY2F0
ZSgpCisgICAgICAgIHN0YXR1cyA9IHByb2Nlc3MucmV0dXJuY29kZQogICAgIGV4Y2VwdDoKLSAg
ICAgICAgcHJpbnQgIkNhbid0IHdyaXRlIHRhcmdldCBmaWxlICVzIiV0YXJnZXRmaWxlCi0gICAg
ICAgIHJhaXNlCisgICAgICAgIHN0YXR1cyA9IC0xCisgICAgICAgIG91dHB1dCA9IHRyYWNlYmFj
ay5mb3JtYXRfZXhjKCkKKyAgICByZXR1cm4gc3RhdHVzLCBvdXRwdXQKKworZGVmIHJ1bl9jbWQo
Y21kLCBzaWxlbnQ9RmFsc2UpOgorICAgICIiIlJhaXNlIGV4Y2VwdGlvbiBvbiBmYWlsdXJlLgor
ICAgICIiIgorICAgIGluZm8gPSAnUnVubmluZzogJXIgaW4gJXInICUoJyAnLmpvaW4oY21kKSwg
b3MuZ2V0Y3dkKCkpCisgICAgcHJpbnQoaW5mbykKKyAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKyAg
ICBpZiBzaWxlbnQ6CisgICAgICAgIHN0YXR1cywgb3V0cHV0ID0gZ2V0c3RhdHVzb3V0cHV0KGNt
ZCkKKyAgICBlbHNlOgorICAgICAgICBzdGF0dXMsIG91dHB1dCA9IHN1YnByb2Nlc3MuY2FsbChj
bWQpLCAnJworICAgIGlmIHN0YXR1czoKKyAgICAgICAgbXNnID0gJ0Vycm9yIHdoaWxlICVzIC4u
LlxuXHRlcnJvcj0lZCwgb3V0cHV0PSIiIiVzIiIiJyAlKGluZm8sIHN0YXR1cywgb3V0cHV0KQor
ICAgICAgICByYWlzZSBFeGNlcHRpb24obXNnKQorCitkZWYgYXNzZXJ0X2lzX2V4ZShwYXRoKToK
KyAgICBpZiBub3QgcGF0aDoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdwYXRoIGlzIGVtcHR5
LicpCisgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHBhdGgpOgorICAgICAgICByYWlzZSBFeGNl
cHRpb24oJyVyIGlzIG5vdCBhIGZpbGUuJyAlcGF0aCkKKyAgICBpZiBub3Qgb3MuYWNjZXNzKHBh
dGgsIG9zLlhfT0spOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVyIGlzIG5vdCBleGVjdXRh
YmxlIGJ5IHRoaXMgdXNlci4nICVwYXRoKQogCiBkZWYgcnVuX2RveHlnZW4oZG94eWdlbl9wYXRo
LCBjb25maWdfZmlsZSwgd29ya2luZ19kaXIsIGlzX3NpbGVudCk6Ci0gICAgY29uZmlnX2ZpbGUg
PSBvcy5wYXRoLmFic3BhdGgoIGNvbmZpZ19maWxlICkKLSAgICBkb3h5Z2VuX3BhdGggPSBkb3h5
Z2VuX3BhdGgKLSAgICBvbGRfY3dkID0gb3MuZ2V0Y3dkKCkKLSAgICB0cnk6Ci0gICAgICAgIG9z
LmNoZGlyKCB3b3JraW5nX2RpciApCisgICAgYXNzZXJ0X2lzX2V4ZShkb3h5Z2VuX3BhdGgpCisg
ICAgY29uZmlnX2ZpbGUgPSBvcy5wYXRoLmFic3BhdGgoY29uZmlnX2ZpbGUpCisgICAgd2l0aCBj
ZCh3b3JraW5nX2Rpcik6CiAgICAgICAgIGNtZCA9IFtkb3h5Z2VuX3BhdGgsIGNvbmZpZ19maWxl
XQotICAgICAgICBwcmludCAnUnVubmluZzonLCAnICcuam9pbiggY21kICkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgaW1wb3J0IHN1YnByb2Nlc3MKLSAgICAgICAgZXhjZXB0OgotICAgICAg
ICAgICAgaWYgb3Muc3lzdGVtKCAnICcuam9pbiggY21kICkgKSAhPSAwOgotICAgICAgICAgICAg
ICAgIHByaW50ICdEb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gZmFpbGVkJwotICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgaXNfc2lsZW50
OgotICAgICAgICAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQsIHN0ZG91
dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCApCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQg
KQotICAgICAgICAgICAgc3Rkb3V0LCBfID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCi0gICAgICAg
ICAgICBpZiBwcm9jZXNzLnJldHVybmNvZGU6Ci0gICAgICAgICAgICAgICAgcHJpbnQgJ0RvY3Vt
ZW50YXRpb24gZ2VuZXJhdGlvbiBmYWlsZWQ6JwotICAgICAgICAgICAgICAgIHByaW50IHN0ZG91
dAotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQotICAg
IGZpbmFsbHk6Ci0gICAgICAgIG9zLmNoZGlyKCBvbGRfY3dkICkKKyAgICAgICAgcnVuX2NtZChj
bWQsIGlzX3NpbGVudCkKIAotZGVmIGJ1aWxkX2RvYyggb3B0aW9ucywgIG1ha2VfcmVsZWFzZT1G
YWxzZSApOgorZGVmIGJ1aWxkX2RvYyhvcHRpb25zLCAgbWFrZV9yZWxlYXNlPUZhbHNlKToKICAg
ICBpZiBtYWtlX3JlbGVhc2U6CiAgICAgICAgIG9wdGlvbnMubWFrZV90YXJiYWxsID0gVHJ1ZQog
ICAgICAgICBvcHRpb25zLndpdGhfZG90ID0gVHJ1ZQpAQCAtODMsNjIgKzEwMSw2MiBAQCBkZWYg
YnVpbGRfZG9jKCBvcHRpb25zLCAgbWFrZV9yZWxlYXNlPUZhbHNlICk6CiAgICAgICAgIG9wdGlv
bnMub3BlbiA9IEZhbHNlCiAgICAgICAgIG9wdGlvbnMuc2lsZW50ID0gVHJ1ZQogCi0gICAgdmVy
c2lvbiA9IG9wZW4oJ3ZlcnNpb24nLCdydCcpLnJlYWQoKS5zdHJpcCgpCisgICAgdmVyc2lvbiA9
IG9wZW4oJ3ZlcnNpb24nLCAncnQnKS5yZWFkKCkuc3RyaXAoKQogICAgIG91dHB1dF9kaXIgPSAn
ZGlzdC9kb3h5Z2VuJyAjIHJlbGF0aXZlIHRvIGRvYy9kb3h5ZmlsZSBsb2NhdGlvbi4KLSAgICBp
ZiBub3Qgb3MucGF0aC5pc2Rpciggb3V0cHV0X2RpciApOgotICAgICAgICBvcy5tYWtlZGlycygg
b3V0cHV0X2RpciApCi0gICAgdG9wX2RpciA9IG9zLnBhdGguYWJzcGF0aCggJy4nICkKKyAgICBp
ZiBub3Qgb3MucGF0aC5pc2RpcihvdXRwdXRfZGlyKToKKyAgICAgICAgb3MubWFrZWRpcnMob3V0
cHV0X2RpcikKKyAgICB0b3BfZGlyID0gb3MucGF0aC5hYnNwYXRoKCcuJykKICAgICBodG1sX291
dHB1dF9kaXJuYW1lID0gJ2pzb25jcHAtYXBpLWh0bWwtJyArIHZlcnNpb24KLSAgICB0YXJiYWxs
X3BhdGggPSBvcy5wYXRoLmpvaW4oICdkaXN0JywgaHRtbF9vdXRwdXRfZGlybmFtZSArICcudGFy
Lmd6JyApCi0gICAgd2FybmluZ19sb2dfcGF0aCA9IG9zLnBhdGguam9pbiggb3V0cHV0X2Rpciwg
Jy4uL2pzb25jcHAtZG94eWdlbi13YXJuaW5nLmxvZycgKQotICAgIGh0bWxfb3V0cHV0X3BhdGgg
PSBvcy5wYXRoLmpvaW4oIG91dHB1dF9kaXIsIGh0bWxfb3V0cHV0X2Rpcm5hbWUgKQotICAgIGRl
ZiB5ZXNubyggYm9vbCApOgorICAgIHRhcmJhbGxfcGF0aCA9IG9zLnBhdGguam9pbignZGlzdCcs
IGh0bWxfb3V0cHV0X2Rpcm5hbWUgKyAnLnRhci5neicpCisgICAgd2FybmluZ19sb2dfcGF0aCA9
IG9zLnBhdGguam9pbihvdXRwdXRfZGlyLCAnLi4vanNvbmNwcC1kb3h5Z2VuLXdhcm5pbmcubG9n
JykKKyAgICBodG1sX291dHB1dF9wYXRoID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsIGh0bWxf
b3V0cHV0X2Rpcm5hbWUpCisgICAgZGVmIHllc25vKGJvb2wpOgogICAgICAgICByZXR1cm4gYm9v
bCBhbmQgJ1lFUycgb3IgJ05PJwogICAgIHN1YnN0X2tleXMgPSB7CiAgICAgICAgICclSlNPTkNQ
UF9WRVJTSU9OJSc6IHZlcnNpb24sCiAgICAgICAgICclRE9DX1RPUERJUiUnOiAnJywKICAgICAg
ICAgJyVUT1BESVIlJzogdG9wX2RpciwKLSAgICAgICAgJyVIVE1MX09VVFBVVCUnOiBvcy5wYXRo
LmpvaW4oICcuLicsIG91dHB1dF9kaXIsIGh0bWxfb3V0cHV0X2Rpcm5hbWUgKSwKKyAgICAgICAg
JyVIVE1MX09VVFBVVCUnOiBvcy5wYXRoLmpvaW4oJy4uJywgb3V0cHV0X2RpciwgaHRtbF9vdXRw
dXRfZGlybmFtZSksCiAgICAgICAgICclSEFWRV9ET1QlJzogeWVzbm8ob3B0aW9ucy53aXRoX2Rv
dCksCiAgICAgICAgICclRE9UX1BBVEglJzogb3MucGF0aC5zcGxpdChvcHRpb25zLmRvdF9wYXRo
KVswXSwKICAgICAgICAgJyVIVE1MX0hFTFAlJzogeWVzbm8ob3B0aW9ucy53aXRoX2h0bWxfaGVs
cCksCiAgICAgICAgICclVU1MX0xPT0slJzogeWVzbm8ob3B0aW9ucy53aXRoX3VtbF9sb29rKSwK
LSAgICAgICAgJyVXQVJOSU5HX0xPR19QQVRIJSc6IG9zLnBhdGguam9pbiggJy4uJywgd2Fybmlu
Z19sb2dfcGF0aCApCisgICAgICAgICclV0FSTklOR19MT0dfUEFUSCUnOiBvcy5wYXRoLmpvaW4o
Jy4uJywgd2FybmluZ19sb2dfcGF0aCkKICAgICAgICAgfQogCi0gICAgaWYgb3MucGF0aC5pc2Rp
ciggb3V0cHV0X2RpciApOgotICAgICAgICBwcmludCAnRGVsZXRpbmcgZGlyZWN0b3J5OicsIG91
dHB1dF9kaXIKLSAgICAgICAgc2h1dGlsLnJtdHJlZSggb3V0cHV0X2RpciApCi0gICAgaWYgbm90
IG9zLnBhdGguaXNkaXIoIG91dHB1dF9kaXIgKToKLSAgICAgICAgb3MubWFrZWRpcnMoIG91dHB1
dF9kaXIgKQorICAgIGlmIG9zLnBhdGguaXNkaXIob3V0cHV0X2Rpcik6CisgICAgICAgIHByaW50
KCdEZWxldGluZyBkaXJlY3Rvcnk6Jywgb3V0cHV0X2RpcikKKyAgICAgICAgc2h1dGlsLnJtdHJl
ZShvdXRwdXRfZGlyKQorICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKG91dHB1dF9kaXIpOgorICAg
ICAgICBvcy5tYWtlZGlycyhvdXRwdXRfZGlyKQogCi0gICAgZG9fc3Vic3RfaW5fZmlsZSggJ2Rv
Yy9kb3h5ZmlsZScsICdkb2MvZG94eWZpbGUuaW4nLCBzdWJzdF9rZXlzICkKLSAgICBvayA9IHJ1
bl9kb3h5Z2VuKCBvcHRpb25zLmRveHlnZW5fcGF0aCwgJ2RvYy9kb3h5ZmlsZScsICdkb2MnLCBp
c19zaWxlbnQ9b3B0aW9ucy5zaWxlbnQgKQorICAgIGRvX3N1YnN0X2luX2ZpbGUoJ2RvYy9kb3h5
ZmlsZScsIG9wdGlvbnMuZG94eWZpbGVfaW5wdXRfcGF0aCwgc3Vic3Rfa2V5cykKKyAgICBydW5f
ZG94eWdlbihvcHRpb25zLmRveHlnZW5fcGF0aCwgJ2RvYy9kb3h5ZmlsZScsICdkb2MnLCBpc19z
aWxlbnQ9b3B0aW9ucy5zaWxlbnQpCiAgICAgaWYgbm90IG9wdGlvbnMuc2lsZW50OgotICAgICAg
ICBwcmludCBvcGVuKHdhcm5pbmdfbG9nX3BhdGgsICdyYicpLnJlYWQoKQotICAgIGluZGV4X3Bh
dGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHN1YnN0X2tleXNbJyVIVE1MX09VVFBV
VCUnXSwgJ2luZGV4Lmh0bWwnKSkKLSAgICBwcmludCAnR2VuZXJhdGVkIGRvY3VtZW50YXRpb24g
Y2FuIGJlIGZvdW5kIGluOicKLSAgICBwcmludCBpbmRleF9wYXRoCisgICAgICAgIHByaW50KG9w
ZW4od2FybmluZ19sb2dfcGF0aCwgJ3InKS5yZWFkKCkpCisgICAgaW5kZXhfcGF0aCA9IG9zLnBh
dGguYWJzcGF0aChvcy5wYXRoLmpvaW4oJ2RvYycsIHN1YnN0X2tleXNbJyVIVE1MX09VVFBVVCUn
XSwgJ2luZGV4Lmh0bWwnKSkKKyAgICBwcmludCgnR2VuZXJhdGVkIGRvY3VtZW50YXRpb24gY2Fu
IGJlIGZvdW5kIGluOicpCisgICAgcHJpbnQoaW5kZXhfcGF0aCkKICAgICBpZiBvcHRpb25zLm9w
ZW46CiAgICAgICAgIGltcG9ydCB3ZWJicm93c2VyCi0gICAgICAgIHdlYmJyb3dzZXIub3Blbigg
J2ZpbGU6Ly8nICsgaW5kZXhfcGF0aCApCisgICAgICAgIHdlYmJyb3dzZXIub3BlbignZmlsZTov
LycgKyBpbmRleF9wYXRoKQogICAgIGlmIG9wdGlvbnMubWFrZV90YXJiYWxsOgotICAgICAgICBw
cmludCAnR2VuZXJhdGluZyBkb2MgdGFyYmFsbCB0bycsIHRhcmJhbGxfcGF0aAorICAgICAgICBw
cmludCgnR2VuZXJhdGluZyBkb2MgdGFyYmFsbCB0bycsIHRhcmJhbGxfcGF0aCkKICAgICAgICAg
dGFyYmFsbF9zb3VyY2VzID0gWwogICAgICAgICAgICAgb3V0cHV0X2RpciwKLSAgICAgICAgICAg
ICdSRUFETUUudHh0JywKKyAgICAgICAgICAgICdSRUFETUUubWQnLAogICAgICAgICAgICAgJ0xJ
Q0VOU0UnLAogICAgICAgICAgICAgJ05FV1MudHh0JywKICAgICAgICAgICAgICd2ZXJzaW9uJwog
ICAgICAgICAgICAgXQotICAgICAgICB0YXJiYWxsX2Jhc2VkaXIgPSBvcy5wYXRoLmpvaW4oIG91
dHB1dF9kaXIsIGh0bWxfb3V0cHV0X2Rpcm5hbWUgKQotICAgICAgICB0YXJiYWxsLm1ha2VfdGFy
YmFsbCggdGFyYmFsbF9wYXRoLCB0YXJiYWxsX3NvdXJjZXMsIHRhcmJhbGxfYmFzZWRpciwgaHRt
bF9vdXRwdXRfZGlybmFtZSApCisgICAgICAgIHRhcmJhbGxfYmFzZWRpciA9IG9zLnBhdGguam9p
bihvdXRwdXRfZGlyLCBodG1sX291dHB1dF9kaXJuYW1lKQorICAgICAgICB0YXJiYWxsLm1ha2Vf
dGFyYmFsbCh0YXJiYWxsX3BhdGgsIHRhcmJhbGxfc291cmNlcywgdGFyYmFsbF9iYXNlZGlyLCBo
dG1sX291dHB1dF9kaXJuYW1lKQogICAgIHJldHVybiB0YXJiYWxsX3BhdGgsIGh0bWxfb3V0cHV0
X2Rpcm5hbWUKIAogZGVmIG1haW4oKToKICAgICB1c2FnZSA9ICIiIiVwcm9nCiAgICAgR2VuZXJh
dGVzIGRveHlnZW4gZG9jdW1lbnRhdGlvbiBpbiBidWlsZC9kb3h5Z2VuLgotICAgIE9wdGlvbmFs
eSBtYWtlcyBhIHRhcmJhbGwgb2YgdGhlIGRvY3VtZW50YXRpb24gdG8gZGlzdC8uCisgICAgT3B0
aW9uYWxseSBtYWtlcyBhIHRhcmJhbGwgb2YgdGhlIGRvY3VtZW50YXRpb24gdG8gZGlzdC8uCiAK
ICAgICBNdXN0IGJlIHN0YXJ0ZWQgaW4gdGhlIHByb2plY3QgdG9wIGRpcmVjdG9yeS4gICAgCiAg
ICAgIiIiCkBAIC0xNTEsNiArMTY5LDggQEAgZGVmIG1haW4oKToKICAgICAgICAgaGVscD0iIiJQ
YXRoIHRvIEdyYXBoVml6IGRvdCB0b29sLiBNdXN0IGJlIGZ1bGwgcXVhbGlmaWVkIHBhdGguIFtE
ZWZhdWx0OiAlZGVmYXVsdF0iIiIpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZG94eWdlbics
IGRlc3Q9ImRveHlnZW5fcGF0aCIsIGFjdGlvbj0nc3RvcmUnLCBkZWZhdWx0PWZpbmRfcHJvZ3Jh
bSgnZG94eWdlbicpLAogICAgICAgICBoZWxwPSIiIlBhdGggdG8gRG94eWdlbiB0b29sLiBbRGVm
YXVsdDogJWRlZmF1bHRdIiIiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWluJywgZGVzdD0i
ZG94eWZpbGVfaW5wdXRfcGF0aCIsIGFjdGlvbj0nc3RvcmUnLCBkZWZhdWx0PSdkb2MvZG94eWZp
bGUuaW4nLAorICAgICAgICBoZWxwPSIiIlBhdGggdG8gZG94eWdlbiBpbnB1dHMuIFtEZWZhdWx0
OiAlZGVmYXVsdF0iIiIpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0td2l0aC1odG1sLWhlbHAn
LCBkZXN0PSJ3aXRoX2h0bWxfaGVscCIsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFs
c2UsCiAgICAgICAgIGhlbHA9IiIiRW5hYmxlIGdlbmVyYXRpb24gb2YgTWljcm9zb2Z0IEhUTUwg
SEVMUCIiIikKICAgICBwYXJzZXIuYWRkX29wdGlvbignLS1uby11bWwtbG9vaycsIGRlc3Q9Indp
dGhfdW1sX2xvb2siLCBhY3Rpb249J3N0b3JlX2ZhbHNlJywgZGVmYXVsdD1UcnVlLApAQCAtMTYz
LDcgKzE4Myw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIGhlbHA9IiIiSGlkZXMgZG94eWdlbiBv
dXRwdXQiIiIpCiAgICAgcGFyc2VyLmVuYWJsZV9pbnRlcnNwZXJzZWRfYXJncygpCiAgICAgb3B0
aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLSAgICBidWlsZF9kb2MoIG9wdGlvbnMg
KQorICAgIGJ1aWxkX2RvYyhvcHRpb25zKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgog
ICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhY2ZhYjFjNWEzYmFhOTU2MGNm
ZjZmNjZjY2NmOGRlZWNlODcyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvQ01h
a2VMaXN0cy50eHQKQEAgLTAsMCArMSw2IEBACitmaWxlKEdMT0IgSU5DTFVERV9GSUxFUyAianNv
bi8qLmgiKQoraW5zdGFsbChGSUxFUworICAgICR7SU5DTFVERV9GSUxFU30KKyAgICAke1BST0pF
Q1RfQklOQVJZX0RJUn0vaW5jbHVkZS9qc29uL3ZlcnNpb24uaAorICAgIERFU1RJTkFUSU9OICR7
Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS9qc29uKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1
ZGUvanNvbi9hbGxvY2F0b3IuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2FsbG9jYXRvci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ1Zjk4N2U5N2IzMTNmY2I1MWY3ZTk4Yjk2OWQyYjQzOGM5MjdkY2MKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9hbGxvY2F0b3IuaApAQCAtMCwwICsxLDg5IEBA
CisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25D
cHAgQXV0aG9ycworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
CisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fQUxMT0NBVE9S
X0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9BTExPQ0FUT1JfSF9JTkNMVURFRAorCisj
aW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNwcmFnbWEgcGFjayhwdXNo
LCA4KQorCituYW1lc3BhY2UgSnNvbiB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgU2Vj
dXJlQWxsb2NhdG9yIHsKK3B1YmxpYzoKKyAgLy8gVHlwZSBkZWZpbml0aW9ucworICB1c2luZyB2
YWx1ZV90eXBlID0gVDsKKyAgdXNpbmcgcG9pbnRlciA9IFQqOworICB1c2luZyBjb25zdF9wb2lu
dGVyID0gY29uc3QgVCo7CisgIHVzaW5nIHJlZmVyZW5jZSA9IFQmOworICB1c2luZyBjb25zdF9y
ZWZlcmVuY2UgPSBjb25zdCBUJjsKKyAgdXNpbmcgc2l6ZV90eXBlID0gc3RkOjpzaXplX3Q7Cisg
IHVzaW5nIGRpZmZlcmVuY2VfdHlwZSA9IHN0ZDo6cHRyZGlmZl90OworCisgIC8qKgorICAgKiBB
bGxvY2F0ZSBtZW1vcnkgZm9yIE4gaXRlbXMgdXNpbmcgdGhlIHN0YW5kYXJkIGFsbG9jYXRvci4K
KyAgICovCisgIHBvaW50ZXIgYWxsb2NhdGUoc2l6ZV90eXBlIG4pIHsKKyAgICAvLyBhbGxvY2F0
ZSB1c2luZyAiZ2xvYmFsIG9wZXJhdG9yIG5ldyIKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8cG9p
bnRlcj4oOjpvcGVyYXRvciBuZXcobiAqIHNpemVvZihUKSkpOworICB9CisKKyAgLyoqCisgICAq
IFJlbGVhc2UgbWVtb3J5IHdoaWNoIHdhcyBhbGxvY2F0ZWQgZm9yIE4gaXRlbXMgYXQgcG9pbnRl
ciBQLgorICAgKgorICAgKiBUaGUgbWVtb3J5IGJsb2NrIGlzIGZpbGxlZCB3aXRoIHplcm9lcyBi
ZWZvcmUgYmVpbmcgcmVsZWFzZWQuCisgICAqIFRoZSBwb2ludGVyIGFyZ3VtZW50IGlzIHRhZ2dl
ZCBhcyAidm9sYXRpbGUiIHRvIHByZXZlbnQgdGhlCisgICAqIGNvbXBpbGVyIG9wdGltaXppbmcg
b3V0IHRoaXMgY3JpdGljYWwgc3RlcC4KKyAgICovCisgIHZvaWQgZGVhbGxvY2F0ZSh2b2xhdGls
ZSBwb2ludGVyIHAsIHNpemVfdHlwZSBuKSB7CisgICAgc3RkOjptZW1zZXQocCwgMCwgbiAqIHNp
emVvZihUKSk7CisgICAgLy8gZnJlZSB1c2luZyAiZ2xvYmFsIG9wZXJhdG9yIGRlbGV0ZSIKKyAg
ICA6Om9wZXJhdG9yIGRlbGV0ZShwKTsKKyAgfQorCisgIC8qKgorICAgKiBDb25zdHJ1Y3QgYW4g
aXRlbSBpbi1wbGFjZSBhdCBwb2ludGVyIFAuCisgICAqLworICB0ZW1wbGF0ZSA8dHlwZW5hbWUu
Li4gQXJncz4gdm9pZCBjb25zdHJ1Y3QocG9pbnRlciBwLCBBcmdzJiYuLi4gYXJncykgeworICAg
IC8vIGNvbnN0cnVjdCB1c2luZyAicGxhY2VtZW50IG5ldyIgYW5kICJwZXJmZWN0IGZvcndhcmRp
bmciCisgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQqPihwKSkgVChzdGQ6OmZvcndhcmQ8QXJn
cz4oYXJncykuLi4pOworICB9CisKKyAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeyByZXR1
cm4gc2l6ZV90KC0xKSAvIHNpemVvZihUKTsgfQorCisgIHBvaW50ZXIgYWRkcmVzcyhyZWZlcmVu
Y2UgeCkgY29uc3QgeyByZXR1cm4gc3RkOjphZGRyZXNzb2YoeCk7IH0KKworICBjb25zdF9wb2lu
dGVyIGFkZHJlc3MoY29uc3RfcmVmZXJlbmNlIHgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6YWRkcmVz
c29mKHgpOyB9CisKKyAgLyoqCisgICAqIERlc3Ryb3kgYW4gaXRlbSBpbi1wbGFjZSBhdCBwb2lu
dGVyIFAuCisgICAqLworICB2b2lkIGRlc3Ryb3kocG9pbnRlciBwKSB7CisgICAgLy8gZGVzdHJv
eSB1c2luZyAiZXhwbGljaXQgZGVzdHJ1Y3RvciIKKyAgICBwLT5+VCgpOworICB9CisKKyAgLy8g
Qm9pbGVycGxhdGUKKyAgU2VjdXJlQWxsb2NhdG9yKCkge30KKyAgdGVtcGxhdGUgPHR5cGVuYW1l
IFU+IFNlY3VyZUFsbG9jYXRvcihjb25zdCBTZWN1cmVBbGxvY2F0b3I8VT4mKSB7fQorICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4gc3RydWN0IHJlYmluZCB7IHVzaW5nIG90aGVyID0gU2VjdXJlQWxs
b2NhdG9yPFU+OyB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Citi
b29sIG9wZXJhdG9yPT0oY29uc3QgU2VjdXJlQWxsb2NhdG9yPFQ+JiwgY29uc3QgU2VjdXJlQWxs
b2NhdG9yPFU+JikgeworICByZXR1cm4gdHJ1ZTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+Citib29sIG9wZXJhdG9yIT0oY29uc3QgU2VjdXJlQWxsb2NhdG9yPFQ+Jiwg
Y29uc3QgU2VjdXJlQWxsb2NhdG9yPFU+JikgeworICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8g
bmFtZXNwYWNlIEpzb24KKworI3ByYWdtYSBwYWNrKHBvcCkKKworI2VuZGlmIC8vIENQUFRMX0pT
T05fQUxMT0NBVE9SX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2Fz
c2VydGlvbnMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMuaAppbmRleCBhNDgwNTg1
YTBhMDZlNzdkNWEyMzIzNzYyMzE4YjkyMGY3MmE2YjgzLi4yMDcxNmIwNjc0YmE3ODc3YmZmY2Nk
NDA5OGI5YTU1ODYxMjgwYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9hc3NlcnRp
b25zLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oCkBAIC0xLDMxICsxLDU5
IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJp
Z2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMK
IC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRl
c2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZp
bGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9y
Z2UubmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURF
RAotIyBkZWZpbmUgQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQ
VExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQKIAotI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2lu
Y2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8c3N0cmVhbT4KIAogI2lmICFkZWZpbmVkKEpTT05f
SVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDxqc29uL2NvbmZpZy5oPgorI2luY2x1ZGUgImNv
bmZpZy5oIgogI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQogCisv
KiogSXQgc2hvdWxkIG5vdCBiZSBwb3NzaWJsZSBmb3IgYSBtYWxpY2lvdXNseSBkZXNpZ25lZCBm
aWxlIHRvCisgKiAgY2F1c2UgYW4gYWJvcnQoKSBvciBzZWctZmF1bHQsIHNvIHRoZXNlIG1hY3Jv
cyBhcmUgdXNlZCBvbmx5CisgKiAgZm9yIHByZS1jb25kaXRpb24gdmlvbGF0aW9ucyBhbmQgaW50
ZXJuYWwgbG9naWMgZXJyb3JzLgorICovCiAjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0jZGVmaW5l
IEpTT05fQVNTRVJUKCBjb25kaXRpb24gKSBhc3NlcnQoIGNvbmRpdGlvbiApOyAgLy8gQHRvZG8g
PD0gY2hhbmdlIHRoaXMgaW50byBhbiBleGNlcHRpb24gdGhyb3cKLSNkZWZpbmUgSlNPTl9GQUlM
X01FU1NBR0UoIG1lc3NhZ2UgKSB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIG1lc3NhZ2UgKTsK
LSNlbHNlICAvLyBKU09OX1VTRV9FWENFUFRJT04KLSNkZWZpbmUgSlNPTl9BU1NFUlQoIGNvbmRp
dGlvbiApIGFzc2VydCggY29uZGl0aW9uICk7CisKKy8vIEB0b2RvIDw9IGFkZCBkZXRhaWwgYWJv
dXQgY29uZGl0aW9uIGluIGV4Y2VwdGlvbgorI2RlZmluZSBKU09OX0FTU0VSVChjb25kaXRpb24p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEoY29uZGl0aW9uKSkgeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgSnNvbjo6
dGhyb3dMb2dpY0Vycm9yKCJhc3NlcnQganNvbiBmYWlsZWQiKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworI2RlZmluZSBKU09O
X0ZBSUxfTUVTU0FHRShtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgT1N0cmluZ1N0cmVhbSBv
c3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIG9zcyA8PCBtZXNzYWdlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBKc29uOjp0aHJvd0xvZ2ljRXJyb3Io
b3NzLnN0cigpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKyNlbHNlIC8vIEpTT05fVVNFX0VYQ0VQVElP
TgorCisjZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgYXNzZXJ0KGNvbmRpdGlvbikKIAog
Ly8gVGhlIGNhbGwgdG8gYXNzZXJ0KCkgd2lsbCBzaG93IHRoZSBmYWlsdXJlIG1lc3NhZ2UgaW4g
ZGVidWcgYnVpbGRzLiBJbgotLy8gcmVsZWFzZSBidWdzIHdlIHdyaXRlIHRvIGludmFsaWQgbWVt
b3J5IGluIG9yZGVyIHRvIGNyYXNoIGhhcmQsIHNvIHRoYXQgYQotLy8gZGVidWdnZXIgb3IgY3Jh
c2ggcmVwb3J0ZXIgZ2V0cyB0aGUgY2hhbmNlIHRvIHRha2Ugb3Zlci4gV2Ugc3RpbGwgY2FsbCBl
eGl0KCkKLS8vIGFmdGVyd2FyZCBpbiBvcmRlciB0byB0ZWxsIHRoZSBjb21waWxlciB0aGF0IHRo
aXMgbWFjcm8gZG9lc24ndCByZXR1cm4uCi0jZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKCBtZXNz
YWdlICkgeyBhc3NlcnQoZmFsc2UgJiYgbWVzc2FnZSk7IHN0cmNweShyZWludGVycHJldF9jYXN0
PGNoYXIqPig2NjYpLCBtZXNzYWdlKTsgZXhpdCgxMjMpOyB9CisvLyByZWxlYXNlIGJ1aWxkcyB3
ZSBhYm9ydCwgZm9yIGEgY29yZS1kdW1wIG9yIGRlYnVnZ2VyLgorI2RlZmluZSBKU09OX0ZBSUxf
TUVTU0FHRShtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgT1N0cmluZ1N0cmVhbSBvc3M7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIG9zcyA8PCBtZXNzYWdlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhc3NlcnQoZmFsc2UgJiYgb3NzLnN0cigpLmNf
c3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgYWJv
cnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICB9CiAKICNlbmRpZgogCi0jZGVmaW5lIEpTT05fQVNTRVJUX01F
U1NBR0UoIGNvbmRpdGlvbiwgbWVzc2FnZSApIGlmICghKCBjb25kaXRpb24gKSkgeyBKU09OX0ZB
SUxfTUVTU0FHRSggbWVzc2FnZSApIH0KKyNkZWZpbmUgSlNPTl9BU1NFUlRfTUVTU0FHRShjb25k
aXRpb24sIG1lc3NhZ2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGlmICgh
KGNvbmRpdGlvbikpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2UpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQogCiAjZW5kaWYg
Ly8gQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5j
bHVkZS9qc29uL2F1dG9saW5rLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9hdXRvbGluay5oCmluZGV4
IDAyMzI4ZDFmMWE1YmNjZGU0MDNhYmE0ZWZhODY0YWQxZmIxMzdiYTYuLmIyYzBmMDAyNGZjODNl
ZmIxNmU5ZmM0NjY0ZWEzZjJhZmUzZTg1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29u
L2F1dG9saW5rLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vYXV0b2xpbmsuaApAQCAtMSwyNCAr
MSwyNSBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENv
cHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRo
b3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBp
ZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNl
ZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC9MSUNFTlNFCiAKICNpZm5kZWYgSlNPTl9BVVRPTElOS19IX0lOQ0xVREVECi0j
IGRlZmluZSBKU09OX0FVVE9MSU5LX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9BVVRPTElOS19I
X0lOQ0xVREVECiAKLSMgaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAK
LSMgaWZkZWYgSlNPTl9JTl9DUFBUTAotIyAgaW5jbHVkZSA8Y3BwdGwvY3BwdGxfYXV0b2xpbmsu
aD4KLSMgZW5kaWYKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvY3BwdGxf
YXV0b2xpbmsuaD4KKyNlbmRpZgogCi0jIGlmICFkZWZpbmVkKEpTT05fTk9fQVVUT0xJTkspICAm
JiAgIWRlZmluZWQoSlNPTl9ETExfQlVJTEQpICAmJiAgIWRlZmluZWQoSlNPTl9JTl9DUFBUTCkK
LSMgIGRlZmluZSBDUFBUTF9BVVRPTElOS19OQU1FICJqc29uIgotIyAgdW5kZWYgQ1BQVExfQVVU
T0xJTktfRExMCi0jICBpZmRlZiBKU09OX0RMTAotIyAgIGRlZmluZSBDUFBUTF9BVVRPTElOS19E
TEwKLSMgIGVuZGlmCi0jICBpbmNsdWRlICJhdXRvbGluay5oIgotIyBlbmRpZgorI2lmICFkZWZp
bmVkKEpTT05fTk9fQVVUT0xJTkspICYmICFkZWZpbmVkKEpTT05fRExMX0JVSUxEKSAmJiAgICAg
ICAgICAgICAgICAgIFwKKyAgICAhZGVmaW5lZChKU09OX0lOX0NQUFRMKQorI2RlZmluZSBDUFBU
TF9BVVRPTElOS19OQU1FICJqc29uIgorI3VuZGVmIENQUFRMX0FVVE9MSU5LX0RMTAorI2lmZGVm
IEpTT05fRExMCisjZGVmaW5lIENQUFRMX0FVVE9MSU5LX0RMTAorI2VuZGlmCisjaW5jbHVkZSAi
YXV0b2xpbmsuaCIKKyNlbmRpZgogCiAjZW5kaWYgLy8gSlNPTl9BVVRPTElOS19IX0lOQ0xVREVE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9jb25maWcuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9q
c29uL2NvbmZpZy5oCmluZGV4IDcyNDM3YzRiYzhjNzg4N2QzOGNhMWE1ZDQ0MmQ3OTU5NjZkMTVl
ZDguLjg3MjRhZDk1YTBlODMyZjYyNWQwMjYzNWE4NjgxNmMzYTI2OTVlYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvaW5jbHVkZS9qc29uL2NvbmZpZy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2NvbmZp
Zy5oCkBAIC0xLDk4ICsxLDE4MCBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBU
aGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3Ig
cHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlz
ZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6
Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKICNpZm5kZWYgSlNPTl9DT05GSUdf
SF9JTkNMVURFRAotIyBkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorI2RlZmluZSBKU09O
X0NPTkZJR19IX0lOQ0xVREVECisjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDxjc3RkaW50
PgorI2luY2x1ZGUgPGlzdHJlYW0+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG9zdHJl
YW0+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dHlw
ZV90cmFpdHM+CiAKIC8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIGxpYnJhcnkg
aXMgZW1iZWRkZWQgaW4gQ3BwVEwgbGlicmFyeS4KIC8vIyBkZWZpbmUgSlNPTl9JTl9DUFBUTCAx
CiAKIC8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIG1heSBsZXZlcmFnZSBDcHBU
TCBsaWJyYXJ5CiAvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTCAxCi0vLy8gSWYgZGVmaW5lZCwg
aW5kaWNhdGVzIHRoYXQgY3BwdGwgdmVjdG9yIGJhc2VkIG1hcCBzaG91bGQgYmUgdXNlZCBpbnN0
ZWFkIG9mIHN0ZDo6bWFwCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgY3BwdGwgdmVj
dG9yIGJhc2VkIG1hcCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mCisvLy8gc3RkOjptYXAKIC8v
LyBhcyBWYWx1ZSBjb250YWluZXIuCiAvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTF9TTUFMTE1B
UCAxCi0vLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgSnNvbiBzcGVjaWZpYyBjb250YWlu
ZXIgc2hvdWxkIGJlIHVzZWQKLS8vLyAoaGFzaCB0YWJsZSAmIHNpbXBsZSBkZXF1ZSBjb250YWlu
ZXIgd2l0aCBjdXN0b21pemFibGUgYWxsb2NhdG9yKS4KLS8vLyBUSElTIEZFQVRVUkUgSVMgU1RJ
TEwgRVhQRVJJTUVOVEFMISBUaGVyZSBpcyBrbm93IGJ1Z3M6IFNlZSAjMzE3NzMzMgotLy8jICBk
ZWZpbmUgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQIDEKLS8vLyBGb3JjZSB1c2FnZSBvZiBz
dGFuZGFyZCBuZXcvbWFsbG9jIGJhc2VkIGFsbG9jYXRvciBpbnN0ZWFkIG9mIG1lbW9yeSBwb29s
IGJhc2VkIGFsbG9jYXRvci4KLS8vLyBUaGUgbWVtb3J5IHBvb2xzIGFsbG9jYXRvciB1c2VkIG9w
dGltaXphdGlvbiAoaW5pdGlhbGl6aW5nIFZhbHVlIGFuZCBWYWx1ZUludGVybmFsTGluawotLy8v
IGFzIGlmIGl0IHdhcyBhIFBPRCkgdGhhdCBtYXkgY2F1c2Ugc29tZSB2YWxpZGF0aW9uIHRvb2wg
dG8gcmVwb3J0IGVycm9ycy4KLS8vLyBPbmx5IGhhcyBlZmZlY3RzIGlmIEpTT05fVkFMVUVfVVNF
X0lOVEVSTkFMX01BUCBpcyBkZWZpbmVkLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfU0lNUExFX0lO
VEVSTkFMX0FMTE9DQVRPUiAxCiAKIC8vIElmIG5vbi16ZXJvLCB0aGUgbGlicmFyeSB1c2VzIGV4
Y2VwdGlvbnMgdG8gcmVwb3J0IGJhZCBpbnB1dCBpbnN0ZWFkIG9mIEMKIC8vIGFzc2VydGlvbiBt
YWNyb3MuIFRoZSBkZWZhdWx0IGlzIHRvIHVzZSBleGNlcHRpb25zLgotIyBpZm5kZWYgSlNPTl9V
U0VfRVhDRVBUSU9OCi0jIGRlZmluZSBKU09OX1VTRV9FWENFUFRJT04gMQotIyBlbmRpZgorI2lm
bmRlZiBKU09OX1VTRV9FWENFUFRJT04KKyNkZWZpbmUgSlNPTl9VU0VfRVhDRVBUSU9OIDEKKyNl
bmRpZgorCisvLyBUZW1wb3JhcnksIHRyYWNrZWQgZm9yIHJlbW92YWwgd2l0aCBpc3N1ZSAjOTgy
LgorI2lmbmRlZiBKU09OX1VTRV9OVUxMUkVGCisjZGVmaW5lIEpTT05fVVNFX05VTExSRUYgMQor
I2VuZGlmCiAKLS8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUg
aXMgYW1hbGdhdGVkCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBm
aWxlIGlzIGFtYWxnYW1hdGVkCiAvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNp
b24uCi0vLy8gUmVtYXJrczogaXQgaXMgYXV0b21hdGljYWxseSBkZWZpbmVkIGluIHRoZSBnZW5l
cmF0ZWQgYW1hbGdhdGVkIGhlYWRlci4KKy8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5
IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2FtYXRlZCBoZWFkZXIuCiAvLyAjZGVmaW5l
IEpTT05fSVNfQU1BTEdBTUFUSU9OCiAKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjaW5jbHVkZSA8
Y3BwdGwvY29uZmlnLmg+CisjaWZuZGVmIEpTT05fVVNFX0NQUFRMCisjZGVmaW5lIEpTT05fVVNF
X0NQUFRMIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjZGVmaW5l
IEpTT05fQVBJIENQUFRMX0FQSQorI2VsaWYgZGVmaW5lZChKU09OX0RMTF9CVUlMRCkKKyNpZiBk
ZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fTUlOR1czMl9fKQorI2RlZmluZSBKU09OX0FQ
SSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRF
UkZBQ0VfV0FSTklORworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX2NsYW5n
X18pCisjZGVmaW5lIEpTT05fQVBJIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQi
KSkpCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNlbGlmIGRlZmluZWQoSlNPTl9E
TEwpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX01JTkdXMzJfXykKKyNkZWZp
bmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjZGVmaW5lIEpTT05DUFBfRElTQUJM
RV9ETExfSU5URVJGQUNFX1dBUk5JTkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQor
I2VuZGlmIC8vIGlmZGVmIEpTT05fSU5fQ1BQVEwKKyNpZiAhZGVmaW5lZChKU09OX0FQSSkKKyNk
ZWZpbmUgSlNPTl9BUEkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19W
RVIgPCAxODAwCisjZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICJFUlJPUjogIFZpc3VhbCBT
dHVkaW8gMTIgKDIwMTMpIHdpdGggX01TQ19WRVI9MTgwMCBpcyB0aGUgb2xkZXN0IHN1cHBvcnRl
ZCBjb21waWxlciB3aXRoIHN1ZmZpY2llbnQgQysrMTEgY2FwYWJpbGl0aWVzIgorI2VuZGlmCisK
KyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE5MDAKKy8vIEFzIHJlY29tbWVu
ZGVkIGF0CisvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yOTE1NjcyL3Nu
cHJpbnRmLWFuZC12aXN1YWwtc3R1ZGlvLTIwMTAKK2V4dGVybiBKU09OX0FQSSBpbnQKK21zdmNf
cHJlMTkwMF9jOTlfc25wcmludGYoY2hhciogb3V0QnVmLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hh
ciogZm9ybWF0LCAuLi4pOworI2RlZmluZSBqc29uY3BwX3NucHJpbnRmIG1zdmNfcHJlMTkwMF9j
OTlfc25wcmludGYKKyNlbHNlCisjZGVmaW5lIGpzb25jcHBfc25wcmludGYgc3RkOjpzbnByaW50
ZgorI2VuZGlmCiAKLSMgaWZkZWYgSlNPTl9JTl9DUFBUTAotIyAgaW5jbHVkZSA8Y3BwdGwvY29u
ZmlnLmg+Ci0jICBpZm5kZWYgSlNPTl9VU0VfQ1BQVEwKLSMgICBkZWZpbmUgSlNPTl9VU0VfQ1BQ
VEwgMQotIyAgZW5kaWYKLSMgZW5kaWYKLQotIyBpZmRlZiBKU09OX0lOX0NQUFRMCi0jICBkZWZp
bmUgSlNPTl9BUEkgQ1BQVExfQVBJCi0jIGVsaWYgZGVmaW5lZChKU09OX0RMTF9CVUlMRCkKLSMg
IGRlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKLSMgZWxpZiBkZWZpbmVkKEpT
T05fRExMKQotIyAgZGVmaW5lIEpTT05fQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQotIyBlbHNl
Ci0jICBkZWZpbmUgSlNPTl9BUEkKLSMgZW5kaWYKLQotLy8gSWYgSlNPTl9OT19JTlQ2NCBpcyBk
ZWZpbmVkLCB0aGVuIEpzb24gb25seSBzdXBwb3J0IEMrKyAiaW50IiB0eXBlIGZvciBpbnRlZ2Vy
CisvLyBJZiBKU09OX05PX0lOVDY0IGlzIGRlZmluZWQsIHRoZW4gSnNvbiBvbmx5IHN1cHBvcnQg
QysrICJpbnQiIHR5cGUgZm9yCisvLyBpbnRlZ2VyCiAvLyBTdG9yYWdlcywgYW5kIDY0IGJpdHMg
aW50ZWdlciBzdXBwb3J0IGlzIGRpc2FibGVkLgogLy8gI2RlZmluZSBKU09OX05PX0lOVDY0IDEK
IAotI2lmIGRlZmluZWQoX01TQ19WRVIpICAmJiAgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYK
LS8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYgb25seSBzdXBwb3J0IGNvbnZlcnNpb24gZnJv
bSBfX2ludDY0IHRvIGRvdWJsZQotLy8gKG5vIGNvbnZlcnNpb24gZnJvbSB1bnNpZ25lZCBfX2lu
dDY0KS4KLSNkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQotI2VuZGlm
IC8vIGlmIGRlZmluZWQoX01TQ19WRVIpICAmJiAgX01TQ19WRVIgPCAxMjAwIC8vIE1TVkMgNgor
Ly8gSlNPTkNQUF9PVkVSUklERSBpcyBtYWludGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJp
bGl0eSBvZiBleHRlcm5hbCB0b29scy4KKy8vIEMrKzExIHNob3VsZCBiZSB1c2VkIGRpcmVjdGx5
IGluIEpTT05DUFAuCisjZGVmaW5lIEpTT05DUFBfT1ZFUlJJREUgb3ZlcnJpZGUKKworI2lmIF9f
Y3BsdXNwbHVzID49IDIwMTEwM0wKKyNkZWZpbmUgSlNPTkNQUF9OT0VYQ0VQVCBub2V4Y2VwdAor
I2RlZmluZSBKU09OQ1BQX09QX0VYUExJQ0lUIGV4cGxpY2l0CisjZWxpZiBkZWZpbmVkKF9NU0Nf
VkVSKSAmJiBfTVNDX1ZFUiA8IDE5MDAKKyNkZWZpbmUgSlNPTkNQUF9OT0VYQ0VQVCB0aHJvdygp
CisjZGVmaW5lIEpTT05DUFBfT1BfRVhQTElDSVQgZXhwbGljaXQKKyNlbGlmIGRlZmluZWQoX01T
Q19WRVIpICYmIF9NU0NfVkVSID49IDE5MDAKKyNkZWZpbmUgSlNPTkNQUF9OT0VYQ0VQVCBub2V4
Y2VwdAorI2RlZmluZSBKU09OQ1BQX09QX0VYUExJQ0lUIGV4cGxpY2l0CisjZWxzZQorI2RlZmlu
ZSBKU09OQ1BQX05PRVhDRVBUIHRocm93KCkKKyNkZWZpbmUgSlNPTkNQUF9PUF9FWFBMSUNJVAor
I2VuZGlmCiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAgJiYgIF9NU0NfVkVSID49IDE1MDAgLy8g
TVNWQyAyMDA4Ci0vLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBk
ZXByZWNhdGVkLgotIyBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNw
ZWMoZGVwcmVjYXRlZChtZXNzYWdlKSkKKyNpZmRlZiBfX2NsYW5nX18KKyNpZiBfX2hhc19leHRl
bnNpb24oYXR0cmlidXRlX2RlcHJlY2F0ZWRfd2l0aF9tZXNzYWdlKQorI2RlZmluZSBKU09OQ1BQ
X0RFUFJFQ0FURUQobWVzc2FnZSkgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZChtZXNzYWdlKSkp
CiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMg
bGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQorI2lmIChfX0dOVUNfXyA+IDQgfHwgKF9f
R05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gNSkpCisjZGVmaW5lIEpTT05DUFBfREVQ
UkVDQVRFRChtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyNl
bGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0g
MSkpCisjZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChf
X2RlcHJlY2F0ZWRfXykpCisjZW5kaWYgICAgICAgICAgICAgICAgICAvLyBHTlVDIHZlcnNpb24K
KyNlbGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1TVkMgKGFmdGVyIGNsYW5nIGJlY2F1c2UgY2xh
bmcgb24gV2luZG93cyBlbXVsYXRlcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTVNWQykK
KyNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVjYXRl
ZChtZXNzYWdlKSkKKyNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18gfHwgX01TQ19WRVIK
IAogI2lmICFkZWZpbmVkKEpTT05DUFBfREVQUkVDQVRFRCkKLSMgZGVmaW5lIEpTT05DUFBfREVQ
UkVDQVRFRChtZXNzYWdlKQorI2RlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkKICNl
bmRpZiAvLyBpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQpCiAKKyNpZiBfX0dOVUNfXyA+
PSA2CisjZGVmaW5lIEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisKKyNpbmNsdWRlICJhbGxvY2F0
b3IuaCIKKyNpbmNsdWRlICJ2ZXJzaW9uLmgiCisKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09O
X0lTX0FNQUxHQU1BVElPTikKKwogbmFtZXNwYWNlIEpzb24gewotICAgdHlwZWRlZiBpbnQgSW50
OwotICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgVUludDsKLSMgaWYgZGVmaW5lZChKU09OX05PX0lO
VDY0KQotICAgdHlwZWRlZiBpbnQgTGFyZ2VzdEludDsKLSAgIHR5cGVkZWYgdW5zaWduZWQgaW50
IExhcmdlc3RVSW50OwotIyAgdW5kZWYgSlNPTl9IQVNfSU5UNjQKLSMgZWxzZSAvLyBpZiBkZWZp
bmVkKEpTT05fTk9fSU5UNjQpCi0gICAvLyBGb3IgTWljcm9zb2Z0IFZpc3VhbCB1c2Ugc3BlY2lm
aWMgdHlwZXMgYXMgbG9uZyBsb25nIGlzIG5vdCBzdXBwb3J0ZWQKLSMgIGlmIGRlZmluZWQoX01T
Q19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCi0gICB0eXBlZGVmIF9faW50NjQgSW50
NjQ7Ci0gICB0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0OwotIyAgZWxzZSAvLyBpZiBk
ZWZpbmVkKF9NU0NfVkVSKSAvLyBPdGhlciBwbGF0Zm9ybXMsIHVzZSBsb25nIGxvbmcKLSAgIHR5
cGVkZWYgbG9uZyBsb25nIGludCBJbnQ2NDsKLSAgIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n
IGludCBVSW50NjQ7Ci0jICBlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQotICAgdHlwZWRl
ZiBJbnQ2NCBMYXJnZXN0SW50OwotICAgdHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJbnQ7Ci0jICBk
ZWZpbmUgSlNPTl9IQVNfSU5UNjQKLSMgZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0
KQotfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KK3R5cGVkZWYgaW50IEludDsKK3R5cGVkZWYgdW5z
aWduZWQgaW50IFVJbnQ7CisjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQordHlwZWRlZiBpbnQg
TGFyZ2VzdEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IExhcmdlc3RVSW50OworI3VuZGVmIEpT
T05fSEFTX0lOVDY0CisjZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQorLy8gRm9yIE1pY3Jvc29mdCBWaXN1YWwgdXNlIHNwZWNpZmljIHR5cGVzIGFzIGxv
bmcgbG9uZyBpcyBub3Qgc3VwcG9ydGVkCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTWljcm9z
b2Z0IFZpc3VhbCBTdHVkaW8KK3R5cGVkZWYgX19pbnQ2NCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWdu
ZWQgX19pbnQ2NCBVSW50NjQ7CisjZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChf
TVNDX1ZFUikgLy8gT3RoZXIgcGxhdGZvcm1zLCB1c2UgbG9uZyBsb25nCit0eXBlZGVmIGludDY0
X3QgSW50NjQ7Cit0eXBlZGVmIHVpbnQ2NF90IFVJbnQ2NDsKKyNlbmRpZiAgICAgICAgICAgICAg
ICAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQordHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwordHlw
ZWRlZiBVSW50NjQgTGFyZ2VzdFVJbnQ7CisjZGVmaW5lIEpTT05fSEFTX0lOVDY0CisjZW5kaWYg
Ly8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vz
aW5nIEFsbG9jYXRvciA9IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8SlNPTkNQUF9VU0lOR19T
RUNVUkVfTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTZWN1cmVBbGxvY2F0b3I8VD4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZDo6YWxsb2NhdG9yPFQ+Pjo6dHlwZTsKK3VzaW5nIFN0cmluZyA9IHN0ZDo6
YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIEFsbG9jYXRvcjxjaGFy
Pj47Cit1c2luZyBJU3RyaW5nU3RyZWFtID0gc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPFN0cmlu
Zzo6dmFsdWVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU3RyaW5nOjp0cmFpdHNfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU3RyaW5nOjphbGxvY2F0b3JfdHlwZT47Cit1c2luZyBPU3RyaW5n
U3RyZWFtID0gc3RkOjpiYXNpY19vc3RyaW5nc3RyZWFtPFN0cmluZzo6dmFsdWVfdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOjp0cmFp
dHNfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U3RyaW5nOjphbGxvY2F0b3JfdHlwZT47Cit1c2luZyBJU3RyZWFtID0gc3RkOjppc3RyZWFtOwor
dXNpbmcgT1N0cmVhbSA9IHN0ZDo6b3N0cmVhbTsKK30gLy8gbmFtZXNwYWNlIEpzb24KIAorLy8g
TGVnYWN5IG5hbWVzIChmb3JtZXJseSBtYWNyb3MpLgordXNpbmcgSlNPTkNQUF9TVFJJTkcgPSBK
c29uOjpTdHJpbmc7Cit1c2luZyBKU09OQ1BQX0lTVFJJTkdTVFJFQU0gPSBKc29uOjpJU3RyaW5n
U3RyZWFtOwordXNpbmcgSlNPTkNQUF9PU1RSSU5HU1RSRUFNID0gSnNvbjo6T1N0cmluZ1N0cmVh
bTsKK3VzaW5nIEpTT05DUFBfSVNUUkVBTSA9IEpzb246OklTdHJlYW07Cit1c2luZyBKU09OQ1BQ
X09TVFJFQU0gPSBKc29uOjpPU3RyZWFtOwogCiAjZW5kaWYgLy8gSlNPTl9DT05GSUdfSF9JTkNM
VURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vZmVhdHVyZXMuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5j
bHVkZS9qc29uL2ZlYXR1cmVzLmgKaW5kZXggNDM1MzI3ODQ0NmQ3ZjllYjFmZmRjZWY0YmY2ZjUx
ZGM1ZjY0NWY4OC4uYmEyNWU4ZGE2NDZhMDQzZjFjODk3NGZhYmU2MjA1Njc3NDMzNmY3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vZmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUv
anNvbi9mZWF0dXJlcy5oCkBAIC0xLDQ5ICsxLDYxIEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEw
IEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBp
bGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGlu
IHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNv
cHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBD
UFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKLSMgZGVmaW5lIENQUFRMX0pTT05fRkVBVFVS
RVNfSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKIAog
I2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlICJmb3J3YXJkcy5o
IgorI2luY2x1ZGUgImZvcndhcmRzLmgiCiAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCiAKKyNwcmFnbWEgcGFjayhwdXNoLCA4KQorCiBuYW1lc3BhY2UgSnNvbiB7
CiAKLSAgIC8qKiBcYnJpZWYgQ29uZmlndXJhdGlvbiBwYXNzZWQgdG8gcmVhZGVyIGFuZCB3cml0
ZXIuCi0gICAgKiBUaGlzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGNhbiBiZSB1c2VkIHRvIGZvcmNl
IHRoZSBSZWFkZXIgb3IgV3JpdGVyCi0gICAgKiB0byBiZWhhdmUgaW4gYSBzdGFuZGFyZCBjb25m
b3JtaW5nIHdheS4KLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgRmVhdHVyZXMKLSAgIHsKLSAg
IHB1YmxpYzoKLSAgICAgIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGFs
bCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3RyaW5ncyBhcmUgVVRGLTguCi0gICAgICAgKiAt
IEMgJiBDKysgY29tbWVudHMgYXJlIGFsbG93ZWQKLSAgICAgICAqIC0gUm9vdCBvYmplY3QgY2Fu
IGJlIGFueSBKU09OIHZhbHVlCi0gICAgICAgKiAtIEFzc3VtZXMgVmFsdWUgc3RyaW5ncyBhcmUg
ZW5jb2RlZCBpbiBVVEYtOAotICAgICAgICovCi0gICAgICBzdGF0aWMgRmVhdHVyZXMgYWxsKCk7
Ci0KLSAgICAgIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkgY29t
cGF0aWJsZSB3aXRoIHRoZSBKU09OIHNwZWNpZmljYXRpb24uCi0gICAgICAgKiAtIENvbW1lbnRz
IGFyZSBmb3JiaWRkZW4uCi0gICAgICAgKiAtIFJvb3Qgb2JqZWN0IG11c3QgYmUgZWl0aGVyIGFu
IGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4KLSAgICAgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJp
bmdzIGFyZSBlbmNvZGVkIGluIFVURi04Ci0gICAgICAgKi8KLSAgICAgIHN0YXRpYyBGZWF0dXJl
cyBzdHJpY3RNb2RlKCk7Ci0KLSAgICAgIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmln
dXJhdGlvbiBsaWtlIEpzb25Db25maWc6OmFsbEZlYXR1cmVzOwotICAgICAgICovCi0gICAgICBG
ZWF0dXJlcygpOwotCi0gICAgICAvLy8gXGMgdHJ1ZSBpZiBjb21tZW50cyBhcmUgYWxsb3dlZC4g
RGVmYXVsdDogXGMgdHJ1ZS4KLSAgICAgIGJvb2wgYWxsb3dDb21tZW50c187Ci0KLSAgICAgIC8v
LyBcYyB0cnVlIGlmIHJvb3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZh
bHVlLiBEZWZhdWx0OiBcYyBmYWxzZS4KLSAgICAgIGJvb2wgc3RyaWN0Um9vdF87Ci0gICB9Owor
LyoqIFxicmllZiBDb25maWd1cmF0aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KKyAq
IFRoaXMgY29uZmlndXJhdGlvbiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRl
ciBvciBXcml0ZXIKKyAqIHRvIGJlaGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5Lgor
ICovCitjbGFzcyBKU09OX0FQSSBGZWF0dXJlcyB7CitwdWJsaWM6CisgIC8qKiBcYnJpZWYgQSBj
b25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3Ry
aW5ncworICAgKiBhcmUgVVRGLTguCisgICAqIC0gQyAmIEMrKyBjb21tZW50cyBhcmUgYWxsb3dl
ZAorICAgKiAtIFJvb3Qgb2JqZWN0IGNhbiBiZSBhbnkgSlNPTiB2YWx1ZQorICAgKiAtIEFzc3Vt
ZXMgVmFsdWUgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAorICAgKi8KKyAgc3RhdGljIEZl
YXR1cmVzIGFsbCgpOworCisgIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3Ry
aWN0bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBKU09OCisgICAqIHNwZWNpZmljYXRpb24uCisgICAq
IC0gQ29tbWVudHMgYXJlIGZvcmJpZGRlbi4KKyAgICogLSBSb290IG9iamVjdCBtdXN0IGJlIGVp
dGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuCisgICAqIC0gQXNzdW1lcyBWYWx1ZSBz
dHJpbmdzIGFyZSBlbmNvZGVkIGluIFVURi04CisgICAqLworICBzdGF0aWMgRmVhdHVyZXMgc3Ry
aWN0TW9kZSgpOworCisgIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBs
aWtlIEpzb25Db25maWc6OmFsbEZlYXR1cmVzOworICAgKi8KKyAgRmVhdHVyZXMoKTsKKworICAv
Ly8gXGMgdHJ1ZSBpZiBjb21tZW50cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KKyAg
Ym9vbCBhbGxvd0NvbW1lbnRzX3t0cnVlfTsKKworICAvLy8gXGMgdHJ1ZSBpZiByb290IG11c3Qg
YmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4gRGVmYXVsdDogXGMKKyAgLy8v
IGZhbHNlLgorICBib29sIHN0cmljdFJvb3Rfe2ZhbHNlfTsKKworICAvLy8gXGMgdHJ1ZSBpZiBk
cm9wcGVkIG51bGwgcGxhY2Vob2xkZXJzIGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyBmYWxzZS4K
KyAgYm9vbCBhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzX3tmYWxzZX07CisKKyAgLy8vIFxj
IHRydWUgaWYgbnVtZXJpYyBvYmplY3Qga2V5IGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyBmYWxz
ZS4KKyAgYm9vbCBhbGxvd051bWVyaWNLZXlzX3tmYWxzZX07Cit9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKc29uCiAKKyNwcmFnbWEgcGFjayhwb3ApCisKICNlbmRpZiAvLyBDUFBUTF9KU09OX0ZFQVRV
UkVTX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL2luY2x1ZGUvanNvbi9mb3J3YXJkcy5oCmluZGV4IGFiODYzZGE4NTNiZThhMDA4ODUz
YzhjZmZiZTAyNGZhYWQxMWYxZmQuLjk1OGI1YmNjODAzNDhhMmIyNzc1ZmY4NWZmNjUxMjU2YzM4
MTZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9pbmNsdWRlL2pzb24vZm9yd2FyZHMuaApAQCAtMSw0NCArMSw0MyBAQAotLy8gQ29weXJpZ2h0
IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFw
dGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAK
ICNpZm5kZWYgSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX0ZPUldBUkRT
X0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECiAKICNpZiAhZGVm
aW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
CiAKIG5hbWVzcGFjZSBKc29uIHsKIAotICAgLy8gd3JpdGVyLmgKLSAgIGNsYXNzIEZhc3RXcml0
ZXI7Ci0gICBjbGFzcyBTdHlsZWRXcml0ZXI7Ci0KLSAgIC8vIHJlYWRlci5oCi0gICBjbGFzcyBS
ZWFkZXI7Ci0KLSAgIC8vIGZlYXR1cmVzLmgKLSAgIGNsYXNzIEZlYXR1cmVzOwotCi0gICAvLyB2
YWx1ZS5oCi0gICB0eXBlZGVmIHVuc2lnbmVkIGludCBBcnJheUluZGV4OwotICAgY2xhc3MgU3Rh
dGljU3RyaW5nOwotICAgY2xhc3MgUGF0aDsKLSAgIGNsYXNzIFBhdGhBcmd1bWVudDsKLSAgIGNs
YXNzIFZhbHVlOwotICAgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7Ci0gICBjbGFzcyBWYWx1ZUl0
ZXJhdG9yOwotICAgY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9yOwotI2lmZGVmIEpTT05fVkFMVUVf
VVNFX0lOVEVSTkFMX01BUAotICAgY2xhc3MgVmFsdWVNYXBBbGxvY2F0b3I7Ci0gICBjbGFzcyBW
YWx1ZUludGVybmFsTGluazsKLSAgIGNsYXNzIFZhbHVlSW50ZXJuYWxBcnJheTsKLSAgIGNsYXNz
IFZhbHVlSW50ZXJuYWxNYXA7Ci0jZW5kaWYgLy8gI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVS
TkFMX01BUAorLy8gd3JpdGVyLmgKK2NsYXNzIFN0cmVhbVdyaXRlcjsKK2NsYXNzIFN0cmVhbVdy
aXRlckJ1aWxkZXI7CitjbGFzcyBXcml0ZXI7CitjbGFzcyBGYXN0V3JpdGVyOworY2xhc3MgU3R5
bGVkV3JpdGVyOworY2xhc3MgU3R5bGVkU3RyZWFtV3JpdGVyOworCisvLyByZWFkZXIuaAorY2xh
c3MgUmVhZGVyOworY2xhc3MgQ2hhclJlYWRlcjsKK2NsYXNzIENoYXJSZWFkZXJCdWlsZGVyOwor
CisvLyBmZWF0dXJlcy5oCitjbGFzcyBGZWF0dXJlczsKKworLy8gdmFsdWUuaAordHlwZWRlZiB1
bnNpZ25lZCBpbnQgQXJyYXlJbmRleDsKK2NsYXNzIFN0YXRpY1N0cmluZzsKK2NsYXNzIFBhdGg7
CitjbGFzcyBQYXRoQXJndW1lbnQ7CitjbGFzcyBWYWx1ZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3JC
YXNlOworY2xhc3MgVmFsdWVJdGVyYXRvcjsKK2NsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKIAog
fSAvLyBuYW1lc3BhY2UgSnNvbgogCi0KICNlbmRpZiAvLyBKU09OX0ZPUldBUkRTX0hfSU5DTFVE
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2pzb24uaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9q
c29uL2pzb24uaAppbmRleCBkYTVmYzk2N2ViMjFhMGI3MjUzNGIzNDgzNWFlYTY2Y2I3NjM1YzYz
Li4xOWYxNGMyNjY0YTZmZGZjZDcxMmE1ODdhMDliZWI4ZDEyMDcwMjk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2luY2x1ZGUvanNvbi9qc29uLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vanNvbi5oCkBA
IC0xLDE1ICsxLDE1IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1
cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29u
Q3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMg
ZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9u
LgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25j
cHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBKU09OX0pTT05fSF9JTkNMVURF
RAotIyBkZWZpbmUgSlNPTl9KU09OX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9KU09OX0hfSU5D
TFVERUQKIAotIyBpbmNsdWRlICJhdXRvbGluay5oIgotIyBpbmNsdWRlICJ2YWx1ZS5oIgotIyBp
bmNsdWRlICJyZWFkZXIuaCIKLSMgaW5jbHVkZSAid3JpdGVyLmgiCi0jIGluY2x1ZGUgImZlYXR1
cmVzLmgiCisjaW5jbHVkZSAiYXV0b2xpbmsuaCIKKyNpbmNsdWRlICJmZWF0dXJlcy5oIgorI2lu
Y2x1ZGUgInJlYWRlci5oIgorI2luY2x1ZGUgInZhbHVlLmgiCisjaW5jbHVkZSAid3JpdGVyLmgi
CiAKICNlbmRpZiAvLyBKU09OX0pTT05fSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNs
dWRlL2pzb24vcmVhZGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9yZWFkZXIuaAppbmRleCBhMzAy
M2IzMWY1ZmU3Mjk5ZTlhZDgzMjg4Y2ExNzc3OGMzMzYyNTc4Li4wZjQ4OWQ2YWRiMWIwN2Q5OWQ4
YmY3OWFiYTgzYWYzMDEyYTAyN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9yZWFk
ZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9yZWFkZXIuaApAQCAtMSwyMTMgKzEsNDE3IEBA
Ci0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0
IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8v
IERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2ly
ZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0jIGRl
ZmluZSBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05fUkVB
REVSX0hfSU5DTFVERUQKIAogI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBp
bmNsdWRlICJmZWF0dXJlcy5oIgotIyBpbmNsdWRlICJ2YWx1ZS5oIgorI2luY2x1ZGUgImZlYXR1
cmVzLmgiCisjaW5jbHVkZSAidmFsdWUuaCIKICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8ZGVxdWU+Ci0jIGluY2x1ZGUgPHN0YWNrPgotIyBp
bmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8aW9zZndkPgorI2lu
Y2x1ZGUgPGlzdHJlYW0+CisjaW5jbHVkZSA8c3RhY2s+CisjaW5jbHVkZSA8c3RyaW5nPgorCisv
LyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBo
YXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05D
UFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkK
KyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpT
T05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNwcmFnbWEgcGFjayhwdXNo
LCA4KQogCiBuYW1lc3BhY2UgSnNvbiB7CiAKLSAgIC8qKiBcYnJpZWYgVW5zZXJpYWxpemUgYSA8
YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBkb2N1bWVudCBpbnRvIGEgVmFs
dWUuCi0gICAgKgorLyoqIFxicmllZiBVbnNlcmlhbGl6ZSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cu
anNvbi5vcmciPkpTT048L2E+IGRvY3VtZW50IGludG8gYQorICpWYWx1ZS4KKyAqCisgKiBcZGVw
cmVjYXRlZCBVc2UgQ2hhclJlYWRlciBhbmQgQ2hhclJlYWRlckJ1aWxkZXIuCisgKi8KK2NsYXNz
IEpTT05fQVBJIFJlYWRlciB7CitwdWJsaWM6CisgIHR5cGVkZWYgY2hhciBDaGFyOworICB0eXBl
ZGVmIGNvbnN0IENoYXIqIExvY2F0aW9uOworCisgIC8qKiBcYnJpZWYgQW4gZXJyb3IgdGFnZ2Vk
IHdpdGggd2hlcmUgaW4gdGhlIEpTT04gdGV4dCBpdCB3YXMgZW5jb3VudGVyZWQuCisgICAqCisg
ICAqIFRoZSBvZmZzZXRzIGdpdmUgdGhlIFtzdGFydCwgbGltaXQpIHJhbmdlIG9mIGJ5dGVzIHdp
dGhpbiB0aGUgdGV4dC4gTm90ZQorICAgKiB0aGF0IHRoaXMgaXMgYnl0ZXMsIG5vdCBjb2RlcG9p
bnRzLgorICAgKgorICAgKi8KKyAgc3RydWN0IFN0cnVjdHVyZWRFcnJvciB7CisgICAgcHRyZGlm
Zl90IG9mZnNldF9zdGFydDsKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0X2xpbWl0OworICAgIFN0cmlu
ZyBtZXNzYWdlOworICB9OworCisgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxv
d2luZyBhbGwgZmVhdHVyZXMKKyAgICogZm9yIHBhcnNpbmcuCisgICAqLworICBKU09OQ1BQX0RF
UFJFQ0FURUQoIlVzZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRlciBpbnN0ZWFkIikK
KyAgUmVhZGVyKCk7CisKKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5n
IHRoZSBzcGVjaWZpZWQgZmVhdHVyZSBzZXQKKyAgICogZm9yIHBhcnNpbmcuCisgICAqLworICBK
U09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRlciBp
bnN0ZWFkIikKKyAgUmVhZGVyKGNvbnN0IEZlYXR1cmVzJiBmZWF0dXJlcyk7CisKKyAgLyoqIFxi
cmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpT
T048L2E+CisgICAqIGRvY3VtZW50LgorICAgKiBccGFyYW0gZG9jdW1lbnQgVVRGLTggZW5jb2Rl
ZCBzdHJpbmcgY29udGFpbmluZyB0aGUgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogXHBhcmFtIHJv
b3QgW291dF0gQ29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdh
cworICAgKiAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgorICAgKiBccGFyYW0gY29s
bGVjdENvbW1lbnRzIFxjIHRydWUgdG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5n
IHRoZW0KKyAgICogYmFjayBkdXJpbmcKKyAgICogICAgICAgICAgICAgICAgICAgICAgICBzZXJp
YWxpemF0aW9uLCBcYyBmYWxzZSB0byBkaXNjYXJkIGNvbW1lbnRzLgorICAgKiAgICAgICAgICAg
ICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYKKyAgICogRmVhdHVyZXM6
OmFsbG93Q29tbWVudHNfCisgICAqICAgICAgICAgICAgICAgICAgICAgICAgaXMgXGMgZmFsc2Uu
CisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBw
YXJzZWQsIFxjIGZhbHNlIGlmIGFuCisgICAqIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgYm9v
bAorICBwYXJzZShjb25zdCBzdGQ6OnN0cmluZyYgZG9jdW1lbnQsIFZhbHVlJiByb290LCBib29s
IGNvbGxlY3RDb21tZW50cyA9IHRydWUpOworCisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZy
b20gYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPgorICAgZG9jdW1lbnQu
CisgICAqIFxwYXJhbSBiZWdpbkRvYyBQb2ludGVyIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFVU
Ri04IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogXHBh
cmFtIGVuZERvYyBQb2ludGVyIG9uIHRoZSBlbmQgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5n
IG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogICAgICAgICAgICAgICBNdXN0IGJl
ID49IGJlZ2luRG9jLgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2
YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAgICAgICAgIHN1Y2Nlc3Nm
dWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBjb2xsZWN0Q29tbWVudHMgXGMgdHJ1ZSB0byBjb2xs
ZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQorICAgYmFjayBkdXJpbmcKKyAgICog
ICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemF0aW9uLCBcYyBmYWxzZSB0byBkaXNjYXJk
IGNvbW1lbnRzLgorICAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlz
IGlnbm9yZWQgaWYKKyAgIEZlYXR1cmVzOjphbGxvd0NvbW1lbnRzXworICAgKiAgICAgICAgICAg
ICAgICAgICAgICAgIGlzIFxjIGZhbHNlLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRv
Y3VtZW50IHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgorICAgZXJyb3Ig
b2NjdXJyZWQuCisgICAqLworICBib29sIHBhcnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwK
KyAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOworCisgIC8vLyBcYnJp
ZWYgUGFyc2UgZnJvbSBpbnB1dCBzdHJlYW0uCisgIC8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4o
c3RkOjppc3RyZWFtJiwgSnNvbjo6VmFsdWUmKS4KKyAgYm9vbCBwYXJzZShJU3RyZWFtJiBpcywg
VmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLyoqIFxicmll
ZiBSZXR1cm5zIGEgdXNlciBmcmllbmRseSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUg
cGFyc2VkCisgICAqIGRvY3VtZW50LgorICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNz
YWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRpb24KKyAgICogaW4K
KyAgICogICAgICAgICB0aGUgcGFyc2VkIGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0
dXJuZWQgaWYgbm8gZXJyb3IKKyAgICogb2NjdXJyZWQKKyAgICogICAgICAgICBkdXJpbmcgcGFy
c2luZy4KKyAgICogXGRlcHJlY2F0ZWQgVXNlIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBp
bnN0ZWFkICh0eXBvIGZpeCkuCisgICAqLworICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBnZXRG
b3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5zdGVhZC4iKQorICBTdHJpbmcgZ2V0Rm9ybWF0ZWRF
cnJvck1lc3NhZ2VzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmll
bmRseSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3VtZW50
LgorICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2Yg
ZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUgcGFy
c2VkIGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKKyAg
ICogb2NjdXJyZWQKKyAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICovCisgIFN0cmlu
ZyBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBSZXR1
cm5zIGEgdmVjdG9yIG9mIHN0cnVjdHVyZWQgZXJyb3MgZW5jb3VudGVkIHdoaWxlIHBhcnNpbmcu
CisgICAqIFxyZXR1cm4gQSAocG9zc2libHkgZW1wdHkpIHZlY3RvciBvZiBTdHJ1Y3R1cmVkRXJy
b3Igb2JqZWN0cy4gQ3VycmVudGx5CisgICAqICAgICAgICAgb25seSBvbmUgZXJyb3IgY2FuIGJl
IHJldHVybmVkLCBidXQgdGhlIGNhbGxlciBzaG91bGQgdG9sZXJhdGUKKyAgICogbXVsdGlwbGUK
KyAgICogICAgICAgICBlcnJvcnMuICBUaGlzIGNhbiBvY2N1ciBpZiB0aGUgcGFyc2VyIHJlY292
ZXJzIGZyb20gYSBub24tZmF0YWwKKyAgICogICAgICAgICBwYXJzZSBlcnJvciBhbmQgdGhlbiBl
bmNvdW50ZXJzIGFkZGl0aW9uYWwgZXJyb3JzLgorICAgKi8KKyAgc3RkOjp2ZWN0b3I8U3RydWN0
dXJlZEVycm9yPiBnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBB
ZGQgYSBzZW1hbnRpYyBlcnJvciBtZXNzYWdlLgorICAgKiBccGFyYW0gdmFsdWUgSlNPTiBWYWx1
ZSBsb2NhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yCisgICAqIFxwYXJhbSBtZXNzYWdl
IFRoZSBlcnJvciBtZXNzYWdlLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdh
cyBzdWNjZXNzZnVsbHkgYWRkZWQsIFxjIGZhbHNlIGlmIHRoZQorICAgKiBWYWx1ZSBvZmZzZXQg
ZXhjZWVkcyB0aGUgZG9jdW1lbnQgc2l6ZS4KKyAgICovCisgIGJvb2wgcHVzaEVycm9yKGNvbnN0
IFZhbHVlJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKworICAvKiogXGJyaWVmIEFk
ZCBhIHNlbWFudGljIGVycm9yIG1lc3NhZ2Ugd2l0aCBleHRyYSBjb250ZXh0LgorICAgKiBccGFy
YW0gdmFsdWUgSlNPTiBWYWx1ZSBsb2NhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yCisg
ICAqIFxwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLgorICAgKiBccGFyYW0gZXh0cmEg
QWRkaXRpb25hbCBKU09OIFZhbHVlIGxvY2F0aW9uIHRvIGNvbnRleHR1YWxpemUgdGhlIGVycm9y
CisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZXJyb3Igd2FzIHN1Y2Nlc3NmdWxseSBhZGRl
ZCwgXGMgZmFsc2UgaWYgZWl0aGVyCisgICAqIFZhbHVlIG9mZnNldCBleGNlZWRzIHRoZSBkb2N1
bWVudCBzaXplLgorICAgKi8KKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7CisKKyAgLyoqIFxicmll
ZiBSZXR1cm4gd2hldGhlciB0aGVyZSBhcmUgYW55IGVycm9ycy4KKyAgICogXHJldHVybiBcYyB0
cnVlIGlmIHRoZXJlIGFyZSBubyBlcnJvcnMgdG8gcmVwb3J0IFxjIGZhbHNlIGlmCisgICAqIGVy
cm9ycyBoYXZlIG9jY3VycmVkLgorICAgKi8KKyAgYm9vbCBnb29kKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgIGVudW0gVG9rZW5UeXBlIHsKKyAgICB0b2tlbkVuZE9mU3RyZWFtID0gMCwKKyAgICB0
b2tlbk9iamVjdEJlZ2luLAorICAgIHRva2VuT2JqZWN0RW5kLAorICAgIHRva2VuQXJyYXlCZWdp
biwKKyAgICB0b2tlbkFycmF5RW5kLAorICAgIHRva2VuU3RyaW5nLAorICAgIHRva2VuTnVtYmVy
LAorICAgIHRva2VuVHJ1ZSwKKyAgICB0b2tlbkZhbHNlLAorICAgIHRva2VuTnVsbCwKKyAgICB0
b2tlbkFycmF5U2VwYXJhdG9yLAorICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAorICAgIHRva2Vu
Q29tbWVudCwKKyAgICB0b2tlbkVycm9yCisgIH07CisKKyAgY2xhc3MgVG9rZW4geworICBwdWJs
aWM6CisgICAgVG9rZW5UeXBlIHR5cGVfOworICAgIExvY2F0aW9uIHN0YXJ0XzsKKyAgICBMb2Nh
dGlvbiBlbmRfOworICB9OworCisgIGNsYXNzIEVycm9ySW5mbyB7CisgIHB1YmxpYzoKKyAgICBU
b2tlbiB0b2tlbl87CisgICAgU3RyaW5nIG1lc3NhZ2VfOworICAgIExvY2F0aW9uIGV4dHJhXzsK
KyAgfTsKKworICB0eXBlZGVmIHN0ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7CisKKyAgYm9v
bCByZWFkVG9rZW4oVG9rZW4mIHRva2VuKTsKKyAgdm9pZCBza2lwU3BhY2VzKCk7CisgIGJvb2wg
bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpOworICBib29sIHJlYWRD
b21tZW50KCk7CisgIGJvb2wgcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ3BwU3R5
bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZFN0cmluZygpOworICB2b2lkIHJlYWROdW1iZXIoKTsK
KyAgYm9vbCByZWFkVmFsdWUoKTsKKyAgYm9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7Cisg
IGJvb2wgcmVhZEFycmF5KFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2Vu
JiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29k
ZWQpOworICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZVN0
cmluZyhUb2tlbiYgdG9rZW4sIFN0cmluZyYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlRG91Ymxl
KFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUm
IGRlY29kZWQpOworICBib29sIGRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29sIGRlY29kZVVuaWNvZGVF
c2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgYWRkRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4dHJhID0gbnVsbHB0cik7CisgIGJvb2wgcmVj
b3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pOworICBib29sIGFkZEVycm9y
QW5kUmVjb3Zlcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNr
aXBVbnRpbFRva2VuKTsKKyAgdm9pZCBza2lwVW50aWxTcGFjZSgpOworICBWYWx1ZSYgY3VycmVu
dFZhbHVlKCk7CisgIENoYXIgZ2V0TmV4dENoYXIoKTsKKyAgdm9pZAorICBnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sIGludCYgbGluZSwgaW50JiBjb2x1bW4pIGNv
bnN0OworICBTdHJpbmcgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9u
KSBjb25zdDsKKyAgdm9pZCBhZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQs
IENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgdm9pZCBza2lwQ29tbWVudFRva2VucyhU
b2tlbiYgdG9rZW4pOworCisgIHN0YXRpYyBib29sIGNvbnRhaW5zTmV3TGluZShMb2NhdGlvbiBi
ZWdpbiwgTG9jYXRpb24gZW5kKTsKKyAgc3RhdGljIFN0cmluZyBub3JtYWxpemVFT0woTG9jYXRp
b24gYmVnaW4sIExvY2F0aW9uIGVuZCk7CisKKyAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVlKj4g
Tm9kZXM7CisgIE5vZGVzIG5vZGVzXzsKKyAgRXJyb3JzIGVycm9yc187CisgIFN0cmluZyBkb2N1
bWVudF87CisgIExvY2F0aW9uIGJlZ2luX3t9OworICBMb2NhdGlvbiBlbmRfe307CisgIExvY2F0
aW9uIGN1cnJlbnRfe307CisgIExvY2F0aW9uIGxhc3RWYWx1ZUVuZF97fTsKKyAgVmFsdWUqIGxh
c3RWYWx1ZV97fTsKKyAgU3RyaW5nIGNvbW1lbnRzQmVmb3JlXzsKKyAgRmVhdHVyZXMgZmVhdHVy
ZXNfOworICBib29sIGNvbGxlY3RDb21tZW50c197fTsKK307IC8vIFJlYWRlcgorCisvKiogSW50
ZXJmYWNlIGZvciByZWFkaW5nIEpTT04gZnJvbSBhIGNoYXIgYXJyYXkuCisgKi8KK2NsYXNzIEpT
T05fQVBJIENoYXJSZWFkZXIgeworcHVibGljOgorICB2aXJ0dWFsIH5DaGFyUmVhZGVyKCkgPSBk
ZWZhdWx0OworICAvKiogXGJyaWVmIFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDov
L3d3dy5qc29uLm9yZyI+SlNPTjwvYT4KKyAgIGRvY3VtZW50LgorICAgKiBUaGUgZG9jdW1lbnQg
bXVzdCBiZSBhIFVURi04IGVuY29kZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50IHRv
CisgICByZWFkLgorICAgKgorICAgKiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVn
aW5uaW5nIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRv
IHJlYWQuCisgICAqIFxwYXJhbSBlbmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYt
OCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqICAgICAg
ICBNdXN0IGJlID49IGJlZ2luRG9jLgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0
aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAgICAgICAg
IHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBlcnJzIFtvdXRdIEZvcm1hdHRlZCBl
cnJvciBtZXNzYWdlcyAoaWYgbm90IE5VTEwpCisgICAqICAgICAgICBhIHVzZXIgZnJpZW5kbHkg
c3RyaW5nIHRoYXQgbGlzdHMgZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisg
ICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJz
ZWQsIFxjIGZhbHNlIGlmIGFuCisgICBlcnJvciBvY2N1cnJlZC4KKyAgICovCisgIHZpcnR1YWwg
Ym9vbCBwYXJzZShjaGFyIGNvbnN0KiBiZWdpbkRvYywKKyAgICAgICAgICAgICAgICAgICAgIGNo
YXIgY29uc3QqIGVuZERvYywKKyAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiByb290LAorICAg
ICAgICAgICAgICAgICAgICAgU3RyaW5nKiBlcnJzKSA9IDA7CisKKyAgY2xhc3MgSlNPTl9BUEkg
RmFjdG9yeSB7CisgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5GYWN0b3J5KCkgPSBkZWZhdWx0Owor
ICAgIC8qKiBcYnJpZWYgQWxsb2NhdGUgYSBDaGFyUmVhZGVyIHZpYSBvcGVyYXRvciBuZXcoKS4K
KyAgICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUu
Zy4gaW52YWxpZCBzZXR0aW5ncykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJSZWFkZXIqIG5l
d0NoYXJSZWFkZXIoKSBjb25zdCA9IDA7CisgIH07IC8vIEZhY3RvcnkKK307ICAgLy8gQ2hhclJl
YWRlcgorCisvKiogXGJyaWVmIEJ1aWxkIGEgQ2hhclJlYWRlciBpbXBsZW1lbnRhdGlvbi4KKwor
VXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgQ2hhclJlYWRlckJ1aWxk
ZXIgYnVpbGRlcjsKKyAgYnVpbGRlclsiY29sbGVjdENvbW1lbnRzIl0gPSBmYWxzZTsKKyAgVmFs
dWUgdmFsdWU7CisgIFN0cmluZyBlcnJzOworICBib29sIG9rID0gcGFyc2VGcm9tU3RyZWFtKGJ1
aWxkZXIsIHN0ZDo6Y2luLCAmdmFsdWUsICZlcnJzKTsKK1xlbmRjb2RlCisqLworY2xhc3MgSlNP
Tl9BUEkgQ2hhclJlYWRlckJ1aWxkZXIgOiBwdWJsaWMgQ2hhclJlYWRlcjo6RmFjdG9yeSB7Citw
dWJsaWM6CisgIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246OlZhbHVlIHNvIHRoYXQgd2UgY2FuIGFk
ZCBkYXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcworICAvLyB3aXRob3V0IGEgbWFqb3IgdmVyc2lv
biBidW1wLgorICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGlzIGJ1aWxkZXIuCisgICAgVGhlc2Ug
YXJlIGNhc2Utc2Vuc2l0aXZlLgorICAgIEF2YWlsYWJsZSBzZXR0aW5ncyAoY2FzZS1zZW5zaXRp
dmUpOgorICAgIC0gYCJjb2xsZWN0Q29tbWVudHMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0
cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGluZyB0aGVtCisgICAgICAgIGJh
Y2sgZHVyaW5nIHNlcmlhbGl6YXRpb24sIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCisgICAg
ICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgYWxsb3dDb21tZW50cyBpcyBmYWxzZS4K
KyAgICAtIGAiYWxsb3dDb21tZW50cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgaWYg
Y29tbWVudHMgYXJlIGFsbG93ZWQuCisgICAgLSBgInN0cmljdFJvb3QiOiBmYWxzZSBvciB0cnVl
YAorICAgICAgLSB0cnVlIGlmIHJvb3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2Jq
ZWN0IHZhbHVlCisgICAgLSBgImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiOiBmYWxzZSBv
ciB0cnVlYAorICAgICAgLSB0cnVlIGlmIGRyb3BwZWQgbnVsbCBwbGFjZWhvbGRlcnMgYXJlIGFs
bG93ZWQuIChTZWUKKyAgICBTdHJlYW1Xcml0ZXJCdWlsZGVyLikKKyAgICAtIGAiYWxsb3dOdW1l
cmljS2V5cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgaWYgbnVtZXJpYyBvYmplY3Qg
a2V5cyBhcmUgYWxsb3dlZC4KKyAgICAtIGAiYWxsb3dTaW5nbGVRdW90ZXMiOiBmYWxzZSBvciB0
cnVlYAorICAgICAgLSB0cnVlIGlmICcnIGFyZSBhbGxvd2VkIGZvciBzdHJpbmdzIChib3RoIGtl
eXMgYW5kIHZhbHVlcykKKyAgICAtIGAic3RhY2tMaW1pdCI6IGludGVnZXJgCisgICAgICAtIEV4
Y2VlZGluZyBzdGFja0xpbWl0IChyZWN1cnNpdmUgZGVwdGggb2YgYHJlYWRWYWx1ZSgpYCkgd2ls
bAorICAgICAgICBjYXVzZSBhbiBleGNlcHRpb24uCisgICAgICAtIFRoaXMgaXMgYSBzZWN1cml0
eSBpc3N1ZSAoc2VnLWZhdWx0cyBjYXVzZWQgYnkgZGVlcGx5IG5lc3RlZCBKU09OKSwKKyAgICAg
ICAgc28gdGhlIGRlZmF1bHQgaXMgbG93LgorICAgIC0gYCJmYWlsSWZFeHRyYSI6IGZhbHNlIG9y
IHRydWVgCisgICAgICAtIElmIHRydWUsIGBwYXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4gZXh0
cmEgbm9uLXdoaXRlc3BhY2UgdHJhaWxzCisgICAgICAgIHRoZSBKU09OIHZhbHVlIGluIHRoZSBp
bnB1dCBzdHJpbmcuCisgICAgLSBgInJlamVjdER1cEtleXMiOiBmYWxzZSBvciB0cnVlYAorICAg
ICAgLSBJZiB0cnVlLCBgcGFyc2UoKWAgcmV0dXJucyBmYWxzZSB3aGVuIGEga2V5IGlzIGR1cGxp
Y2F0ZWQgd2l0aGluIGFuCisgICAgb2JqZWN0LgorICAgIC0gYCJhbGxvd1NwZWNpYWxGbG9hdHMi
OiBmYWxzZSBvciB0cnVlYAorICAgICAgLSBJZiB0cnVlLCBzcGVjaWFsIGZsb2F0IHZhbHVlcyAo
TmFOcyBhbmQgaW5maW5pdGllcykgYXJlIGFsbG93ZWQKKyAgICAgICAgYW5kIHRoZWlyIHZhbHVl
cyBhcmUgbG9zc2ZyZWUgcmVzdG9yYWJsZS4KKworICAgIFlvdSBjYW4gZXhhbWluZSAnc2V0dGlu
Z3NfYCB5b3Vyc2VsZgorICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4gYWxzbyB3cml0
ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKKyAgICBKU09OIFZhbHVlLgorICAgIFxzYSBz
ZXREZWZhdWx0cygpCiAgICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFJlYWRlcgotICAgewotICAg
cHVibGljOgotICAgICAgdHlwZWRlZiBjaGFyIENoYXI7Ci0gICAgICB0eXBlZGVmIGNvbnN0IENo
YXIgKkxvY2F0aW9uOwotCi0gICAgICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSBSZWFkZXIgYWxs
b3dpbmcgYWxsIGZlYXR1cmVzCi0gICAgICAgKiBmb3IgcGFyc2luZy4KLSAgICAgICAqLwotICAg
ICAgUmVhZGVyKCk7Ci0KLSAgICAgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxv
d2luZyB0aGUgc3BlY2lmaWVkIGZlYXR1cmUgc2V0Ci0gICAgICAgKiBmb3IgcGFyc2luZy4KLSAg
ICAgICAqLwotICAgICAgUmVhZGVyKCBjb25zdCBGZWF0dXJlcyAmZmVhdHVyZXMgKTsKLQotICAg
ICAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNv
bi5vcmciPkpTT048L2E+IGRvY3VtZW50LgotICAgICAgICogXHBhcmFtIGRvY3VtZW50IFVURi04
IGVuY29kZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50IHRvIHJlYWQuCi0gICAgICAg
KiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1l
bnQgaWYgaXQgd2FzCi0gICAgICAgKiAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgot
ICAgICAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVu
dCBhbmQgYWxsb3cgd3JpdGluZyB0aGVtIGJhY2sgZHVyaW5nCi0gICAgICAgKiAgICAgICAgICAg
ICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMu
Ci0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9y
ZWQgaWYgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCi0gICAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICAgIGlzIFxjIGZhbHNlLgotICAgICAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZSBkb2N1
bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFsc2UgaWYgYW4gZXJyb3Igb2NjdXJy
ZWQuCi0gICAgICAgKi8KLSAgICAgIGJvb2wgcGFyc2UoIGNvbnN0IHN0ZDo6c3RyaW5nICZkb2N1
bWVudCwgCi0gICAgICAgICAgICAgICAgICBWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAgICAg
IGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSApOwotCi0gICAgICAvKiogXGJyaWVmIFJlYWQg
YSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZG9j
dW1lbnQuCi0gICAgICAgKiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0aGUgZG9jdW1lbnQgdG8gcmVhZC4KLSAg
ICAgICAqIFxwYXJhbSBlbmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYtOCBlbmNv
ZGVkIHN0cmluZyBvZiB0aGUgZG9jdW1lbnQgdG8gcmVhZC4gCi0gICAgICAgXCAgICAgICAgICAg
ICAgIE11c3QgYmUgPj0gYmVnaW5Eb2MuCi0gICAgICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250
YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCi0gICAgICAgKiAg
ICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgotICAgICAgICogXHBhcmFtIGNvbGxlY3RD
b21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGluZyB0aGVt
IGJhY2sgZHVyaW5nCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRp
b24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0gICAgICAgKiAgICAgICAgICAgICAg
ICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgRmVhdHVyZXM6OmFsbG93Q29t
bWVudHNfCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGlzIFxjIGZhbHNlLgotICAg
ICAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBh
cnNlZCwgXGMgZmFsc2UgaWYgYW4gZXJyb3Igb2NjdXJyZWQuCi0gICAgICAgKi8KLSAgICAgIGJv
b2wgcGFyc2UoIGNvbnN0IGNoYXIgKmJlZ2luRG9jLCBjb25zdCBjaGFyICplbmREb2MsIAotICAg
ICAgICAgICAgICAgICAgVmFsdWUgJnJvb3QsCi0gICAgICAgICAgICAgICAgICBib29sIGNvbGxl
Y3RDb21tZW50cyA9IHRydWUgKTsKLQotICAgICAgLy8vIFxicmllZiBQYXJzZSBmcm9tIGlucHV0
IHN0cmVhbS4KLSAgICAgIC8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiwg
SnNvbjo6VmFsdWUmKS4KLSAgICAgIGJvb2wgcGFyc2UoIHN0ZDo6aXN0cmVhbSAmaXMsCi0gICAg
ICAgICAgICAgICAgICBWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVj
dENvbW1lbnRzID0gdHJ1ZSApOwotCi0gICAgICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZy
aWVuZGx5IHN0cmluZyB0aGF0IGxpc3QgZXJyb3JzIGluIHRoZSBwYXJzZWQgZG9jdW1lbnQuCi0g
ICAgICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2Yg
ZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRpb24gaW4gCi0gICAgICAgKiAgICAgICAgIHRoZSBwYXJz
ZWQgZG9jdW1lbnQuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvciBvY2N1
cnJlZAotICAgICAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KLSAgICAgICAqIFxkZXByZWNh
dGVkIFVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5zdGVhZCAodHlwbyBmaXgpLgot
ICAgICAgICovCi0gICAgICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBnZXRGb3JtYXR0ZWRFcnJv
ck1lc3NhZ2VzIGluc3RlYWQiKSAKLSAgICAgIHN0ZDo6c3RyaW5nIGdldEZvcm1hdGVkRXJyb3JN
ZXNzYWdlcygpIGNvbnN0OwotCi0gICAgICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVu
ZGx5IHN0cmluZyB0aGF0IGxpc3QgZXJyb3JzIGluIHRoZSBwYXJzZWQgZG9jdW1lbnQuCi0gICAg
ICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJy
b3JzIHdpdGggdGhlaXIgbG9jYXRpb24gaW4gCi0gICAgICAgKiAgICAgICAgIHRoZSBwYXJzZWQg
ZG9jdW1lbnQuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvciBvY2N1cnJl
ZAotICAgICAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KLSAgICAgICAqLwotICAgICAgc3Rk
OjpzdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OwotCi0gICBwcml2YXRl
OgotICAgICAgZW51bSBUb2tlblR5cGUKLSAgICAgIHsKLSAgICAgICAgIHRva2VuRW5kT2ZTdHJl
YW0gPSAwLAotICAgICAgICAgdG9rZW5PYmplY3RCZWdpbiwKLSAgICAgICAgIHRva2VuT2JqZWN0
RW5kLAotICAgICAgICAgdG9rZW5BcnJheUJlZ2luLAotICAgICAgICAgdG9rZW5BcnJheUVuZCwK
LSAgICAgICAgIHRva2VuU3RyaW5nLAotICAgICAgICAgdG9rZW5OdW1iZXIsCi0gICAgICAgICB0
b2tlblRydWUsCi0gICAgICAgICB0b2tlbkZhbHNlLAotICAgICAgICAgdG9rZW5OdWxsLAotICAg
ICAgICAgdG9rZW5BcnJheVNlcGFyYXRvciwKLSAgICAgICAgIHRva2VuTWVtYmVyU2VwYXJhdG9y
LAotICAgICAgICAgdG9rZW5Db21tZW50LAotICAgICAgICAgdG9rZW5FcnJvcgotICAgICAgfTsK
LQotICAgICAgY2xhc3MgVG9rZW4KLSAgICAgIHsKLSAgICAgIHB1YmxpYzoKLSAgICAgICAgIFRv
a2VuVHlwZSB0eXBlXzsKLSAgICAgICAgIExvY2F0aW9uIHN0YXJ0XzsKLSAgICAgICAgIExvY2F0
aW9uIGVuZF87Ci0gICAgICB9OwotCi0gICAgICBjbGFzcyBFcnJvckluZm8KLSAgICAgIHsKLSAg
ICAgIHB1YmxpYzoKLSAgICAgICAgIFRva2VuIHRva2VuXzsKLSAgICAgICAgIHN0ZDo6c3RyaW5n
IG1lc3NhZ2VfOwotICAgICAgICAgTG9jYXRpb24gZXh0cmFfOwotICAgICAgfTsKLQotICAgICAg
dHlwZWRlZiBzdGQ6OmRlcXVlPEVycm9ySW5mbz4gRXJyb3JzOwotCi0gICAgICBib29sIGV4cGVj
dFRva2VuKCBUb2tlblR5cGUgdHlwZSwgVG9rZW4gJnRva2VuLCBjb25zdCBjaGFyICptZXNzYWdl
ICk7Ci0gICAgICBib29sIHJlYWRUb2tlbiggVG9rZW4gJnRva2VuICk7Ci0gICAgICB2b2lkIHNr
aXBTcGFjZXMoKTsKLSAgICAgIGJvb2wgbWF0Y2goIExvY2F0aW9uIHBhdHRlcm4sIAotICAgICAg
ICAgICAgICAgICAgaW50IHBhdHRlcm5MZW5ndGggKTsKLSAgICAgIGJvb2wgcmVhZENvbW1lbnQo
KTsKLSAgICAgIGJvb2wgcmVhZENTdHlsZUNvbW1lbnQoKTsKLSAgICAgIGJvb2wgcmVhZENwcFN0
eWxlQ29tbWVudCgpOwotICAgICAgYm9vbCByZWFkU3RyaW5nKCk7Ci0gICAgICB2b2lkIHJlYWRO
dW1iZXIoKTsKLSAgICAgIGJvb2wgcmVhZFZhbHVlKCk7Ci0gICAgICBib29sIHJlYWRPYmplY3Qo
IFRva2VuICZ0b2tlbiApOwotICAgICAgYm9vbCByZWFkQXJyYXkoIFRva2VuICZ0b2tlbiApOwot
ICAgICAgYm9vbCBkZWNvZGVOdW1iZXIoIFRva2VuICZ0b2tlbiApOwotICAgICAgYm9vbCBkZWNv
ZGVTdHJpbmcoIFRva2VuICZ0b2tlbiApOwotICAgICAgYm9vbCBkZWNvZGVTdHJpbmcoIFRva2Vu
ICZ0b2tlbiwgc3RkOjpzdHJpbmcgJmRlY29kZWQgKTsKLSAgICAgIGJvb2wgZGVjb2RlRG91Ymxl
KCBUb2tlbiAmdG9rZW4gKTsKLSAgICAgIGJvb2wgZGVjb2RlVW5pY29kZUNvZGVQb2ludCggVG9r
ZW4gJnRva2VuLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24g
JmN1cnJlbnQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBl
bmQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgJnVu
aWNvZGUgKTsKLSAgICAgIGJvb2wgZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKCBUb2tlbiAm
dG9rZW4sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9u
ICZjdXJyZW50LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
dGlvbiBlbmQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCAmdW5pY29kZSApOwotICAgICAgYm9vbCBhZGRFcnJvciggY29uc3Qgc3RkOjpzdHJp
bmcgJm1lc3NhZ2UsIAotICAgICAgICAgICAgICAgICAgICAgVG9rZW4gJnRva2VuLAotICAgICAg
ICAgICAgICAgICAgICAgTG9jYXRpb24gZXh0cmEgPSAwICk7Ci0gICAgICBib29sIHJlY292ZXJG
cm9tRXJyb3IoIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbiApOwotICAgICAgYm9vbCBhZGRFcnJv
ckFuZFJlY292ZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNzYWdlLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUb2tlbiAmdG9rZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuICk7Ci0gICAgICB2b2lkIHNraXBVbnRpbFNw
YWNlKCk7Ci0gICAgICBWYWx1ZSAmY3VycmVudFZhbHVlKCk7Ci0gICAgICBDaGFyIGdldE5leHRD
aGFyKCk7Ci0gICAgICB2b2lkIGdldExvY2F0aW9uTGluZUFuZENvbHVtbiggTG9jYXRpb24gbG9j
YXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICZsaW5lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAmY29sdW1uICkgY29uc3Q7
Ci0gICAgICBzdGQ6OnN0cmluZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oIExvY2F0aW9uIGxv
Y2F0aW9uICkgY29uc3Q7Ci0gICAgICB2b2lkIGFkZENvbW1lbnQoIExvY2F0aW9uIGJlZ2luLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKTsKLSAgICAgIHZvaWQgc2tpcENvbW1l
bnRUb2tlbnMoIFRva2VuICZ0b2tlbiApOwotICAgCi0gICAgICB0eXBlZGVmIHN0ZDo6c3RhY2s8
VmFsdWUgKj4gTm9kZXM7Ci0gICAgICBOb2RlcyBub2Rlc187Ci0gICAgICBFcnJvcnMgZXJyb3Jz
XzsKLSAgICAgIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKLSAgICAgIExvY2F0aW9uIGJlZ2luXzsK
LSAgICAgIExvY2F0aW9uIGVuZF87Ci0gICAgICBMb2NhdGlvbiBjdXJyZW50XzsKLSAgICAgIExv
Y2F0aW9uIGxhc3RWYWx1ZUVuZF87Ci0gICAgICBWYWx1ZSAqbGFzdFZhbHVlXzsKLSAgICAgIHN0
ZDo6c3RyaW5nIGNvbW1lbnRzQmVmb3JlXzsKLSAgICAgIEZlYXR1cmVzIGZlYXR1cmVzXzsKLSAg
ICAgIGJvb2wgY29sbGVjdENvbW1lbnRzXzsKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgUmVhZCBm
cm9tICdzaW4nIGludG8gJ3Jvb3QnLgotCi0gICAgQWx3YXlzIGtlZXAgY29tbWVudHMgZnJvbSB0
aGUgaW5wdXQgSlNPTi4KLQotICAgIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVhZCBhIGZpbGUgaW50
byBhIHBhcnRpY3VsYXIgc3ViLW9iamVjdC4KLSAgICBGb3IgZXhhbXBsZToKLSAgICBcY29kZQot
ICAgIEpzb246OlZhbHVlIHJvb3Q7Ci0gICAgY2luID4+IHJvb3RbImRpciJdWyJmaWxlIl07Ci0g
ICAgY291dCA8PCByb290OwotICAgIFxlbmRjb2RlCi0gICAgUmVzdWx0OgotICAgIFx2ZXJiYXRp
bQotICAgIHsKLSAgICAiZGlyIjogewotICAgICAgICAiZmlsZSI6IHsKLSAgICAgICAgLy8gVGhl
IGlucHV0IHN0cmVhbSBKU09OIHdvdWxkIGJlIG5lc3RlZCBoZXJlLgotICAgICAgICB9Ci0gICAg
fQotICAgIH0KLSAgICBcZW5kdmVyYmF0aW0KLSAgICBcdGhyb3cgc3RkOjpleGNlcHRpb24gb24g
cGFyc2UgZXJyb3IuCi0gICAgXHNlZSBKc29uOjpvcGVyYXRvcjw8KCkKLSAgICovCi0gICBzdGQ6
OmlzdHJlYW0mIG9wZXJhdG9yPj4oIHN0ZDo6aXN0cmVhbSYsIFZhbHVlJiApOworICBKc29uOjpW
YWx1ZSBzZXR0aW5nc187CisKKyAgQ2hhclJlYWRlckJ1aWxkZXIoKTsKKyAgfkNoYXJSZWFkZXJC
dWlsZGVyKCkgb3ZlcnJpZGU7CisKKyAgQ2hhclJlYWRlciogbmV3Q2hhclJlYWRlcigpIGNvbnN0
IG92ZXJyaWRlOworCisgIC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRpbmdzJyBhcmUgbGVnYWwg
YW5kIGNvbnNpc3RlbnQ7CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBiYWQgc2V0dGluZ3Mg
dmlhICdpbnZhbGlkJy4KKyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFs
aWQpIGNvbnN0OworCisgIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEgc3BlY2lmaWMgc2V0
dGluZy4KKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IFN0cmluZyYga2V5KTsKKwor
ICAvKiogQ2FsbGVkIGJ5IGN0b3IsIGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0IHNldHRp
bmdzXy4KKyAgICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZp
bmUpCisgICAqIFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9q
c29uX3JlYWRlci5jcHAgQ2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0cworICAgKi8KKyAgc3RhdGlj
IHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKKyAgLyoqIFNhbWUgYXMg
b2xkIEZlYXR1cmVzOjpzdHJpY3RNb2RlKCkuCisgICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxM
IChidXQgSnNvbjo6bnVsbCBpcyBmaW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBc
c25pcHBldCBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwIENoYXJSZWFkZXJCdWlsZGVyU3Ry
aWN0TW9kZQorICAgKi8KKyAgc3RhdGljIHZvaWQgc3RyaWN0TW9kZShKc29uOjpWYWx1ZSogc2V0
dGluZ3MpOworfTsKKworLyoqIENvbnN1bWUgZW50aXJlIHN0cmVhbSBhbmQgdXNlIGl0cyBiZWdp
bi9lbmQuCisgKiBTb21lZGF5IHdlIG1pZ2h0IGhhdmUgYSByZWFsIFN0cmVhbVJlYWRlciwgYnV0
IGZvciBub3cgdGhpcworICogaXMgY29udmVuaWVudC4KKyAqLworYm9vbCBKU09OX0FQSSBwYXJz
ZUZyb21TdHJlYW0oQ2hhclJlYWRlcjo6RmFjdG9yeSBjb25zdCYsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJU3RyZWFtJiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlKiByb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKiBlcnJzKTsK
KworLyoqIFxicmllZiBSZWFkIGZyb20gJ3NpbicgaW50byAncm9vdCcuCisKKyBBbHdheXMga2Vl
cCBjb21tZW50cyBmcm9tIHRoZSBpbnB1dCBKU09OLgorCisgVGhpcyBjYW4gYmUgdXNlZCB0byBy
ZWFkIGEgZmlsZSBpbnRvIGEgcGFydGljdWxhciBzdWItb2JqZWN0LgorIEZvciBleGFtcGxlOgor
IFxjb2RlCisgSnNvbjo6VmFsdWUgcm9vdDsKKyBjaW4gPj4gcm9vdFsiZGlyIl1bImZpbGUiXTsK
KyBjb3V0IDw8IHJvb3Q7CisgXGVuZGNvZGUKKyBSZXN1bHQ6CisgXHZlcmJhdGltCisgeworICJk
aXIiOiB7CisgICAgICJmaWxlIjogeworICAgICAvLyBUaGUgaW5wdXQgc3RyZWFtIEpTT04gd291
bGQgYmUgbmVzdGVkIGhlcmUuCisgICAgIH0KKyB9CisgfQorIFxlbmR2ZXJiYXRpbQorIFx0aHJv
dyBzdGQ6OmV4Y2VwdGlvbiBvbiBwYXJzZSBlcnJvci4KKyBcc2VlIEpzb246Om9wZXJhdG9yPDwo
KQorKi8KK0pTT05fQVBJIElTdHJlYW0mIG9wZXJhdG9yPj4oSVN0cmVhbSYsIFZhbHVlJik7CiAK
IH0gLy8gbmFtZXNwYWNlIEpzb24KIAorI3ByYWdtYSBwYWNrKHBvcCkKKworI2lmIGRlZmluZWQo
SlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhw
b3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HKQorCiAjZW5kaWYgLy8gQ1BQVExfSlNPTl9SRUFERVJfSF9JTkNMVURFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vdmFsdWUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3ZhbHVl
LmgKaW5kZXggYjAxM2M5YjhlYWM2OGJhMTI2NDllYWU1NDVmNTE2YWUzNzA1NzlkOS4uOTU3ZjNm
NmY2NzY1NmJmNTNlZTVmZTdhYzY4ZDk0OWY5MGI3ZjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNs
dWRlL2pzb24vdmFsdWUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi92YWx1ZS5oCkBAIC0xLDEx
MDkgKzEsOTA3IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgor
Ly8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3Bw
IEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgog
Ly8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAu
c291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBDUFBUTF9KU09OX0hfSU5DTFVERUQK
LSMgZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX0hfSU5D
TFVERUQKIAogI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlICJm
b3J3YXJkcy5oIgorI2luY2x1ZGUgImZvcndhcmRzLmgiCiAjZW5kaWYgLy8gaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgPHN0cmluZz4KLSMgaW5jbHVkZSA8dmVj
dG9yPgotCi0jIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotIyAgaW5jbHVkZSA8bWFw
PgotIyBlbHNlCi0jICBpbmNsdWRlIDxjcHB0bC9zbWFsbG1hcC5oPgotIyBlbmRpZgotIyBpZmRl
ZiBKU09OX1VTRV9DUFBUTAotIyAgaW5jbHVkZSA8Y3BwdGwvZm9yd2FyZHMuaD4KLSMgZW5kaWYK
KyNpbmNsdWRlIDxhcnJheT4KKyNpbmNsdWRlIDxleGNlcHRpb24+CisjaW5jbHVkZSA8bWVtb3J5
PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpZm5kZWYgSlNPTl9V
U0VfQ1BQVExfU01BTExNQVAKKyNpbmNsdWRlIDxtYXA+CisjZWxzZQorI2luY2x1ZGUgPGNwcHRs
L3NtYWxsbWFwLmg+CisjZW5kaWYKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorI2luY2x1ZGUgPGNw
cHRsL2ZvcndhcmRzLmg+CisjZW5kaWYKKworLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0
YSBtZW1iZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1
c2VkIGJ5Li4uCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQy
NTEpCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HKQorCisjcHJhZ21hIHBhY2socHVzaCwgOCkKIAogLyoqIFxicmllZiBKU09OIChKYXZh
U2NyaXB0IE9iamVjdCBOb3RhdGlvbikuCiAgKi8KIG5hbWVzcGFjZSBKc29uIHsKIAotICAgLyoq
IFxicmllZiBUeXBlIG9mIHRoZSB2YWx1ZSBoZWxkIGJ5IGEgVmFsdWUgb2JqZWN0LgotICAgICov
Ci0gICBlbnVtIFZhbHVlVHlwZQotICAgewotICAgICAgbnVsbFZhbHVlID0gMCwgLy8vPCAnbnVs
bCcgdmFsdWUKLSAgICAgIGludFZhbHVlLCAgICAgIC8vLzwgc2lnbmVkIGludGVnZXIgdmFsdWUK
LSAgICAgIHVpbnRWYWx1ZSwgICAgIC8vLzwgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQotICAgICAg
cmVhbFZhbHVlLCAgICAgLy8vPCBkb3VibGUgdmFsdWUKLSAgICAgIHN0cmluZ1ZhbHVlLCAgIC8v
LzwgVVRGLTggc3RyaW5nIHZhbHVlCi0gICAgICBib29sZWFuVmFsdWUsICAvLy88IGJvb2wgdmFs
dWUKLSAgICAgIGFycmF5VmFsdWUsICAgIC8vLzwgYXJyYXkgdmFsdWUgKG9yZGVyZWQgbGlzdCkK
LSAgICAgIG9iamVjdFZhbHVlICAgIC8vLzwgb2JqZWN0IHZhbHVlIChjb2xsZWN0aW9uIG9mIG5h
bWUvdmFsdWUgcGFpcnMpLgotICAgfTsKLQotICAgZW51bSBDb21tZW50UGxhY2VtZW50Ci0gICB7
Ci0gICAgICBjb21tZW50QmVmb3JlID0gMCwgICAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNlZCBv
biB0aGUgbGluZSBiZWZvcmUgYSB2YWx1ZQotICAgICAgY29tbWVudEFmdGVyT25TYW1lTGluZSwg
ICAvLy88IGEgY29tbWVudCBqdXN0IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQotICAg
ICAgY29tbWVudEFmdGVyLCAgICAgICAgICAgICAvLy88IGEgY29tbWVudCBvbiB0aGUgbGluZSBh
ZnRlciBhIHZhbHVlIChvbmx5IG1ha2Ugc2Vuc2UgZm9yIHJvb3QgdmFsdWUpCi0gICAgICBudW1i
ZXJPZkNvbW1lbnRQbGFjZW1lbnQKLSAgIH07CisjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCisvKiog
QmFzZSBjbGFzcyBmb3IgYWxsIGV4Y2VwdGlvbnMgd2UgdGhyb3cuCisgKgorICogV2UgdXNlIG5v
dGhpbmcgYnV0IHRoZXNlIGludGVybmFsbHkuIE9mIGNvdXJzZSwgU1RMIGNhbiB0aHJvdyBvdGhl
cnMuCisgKi8KK2NsYXNzIEpTT05fQVBJIEV4Y2VwdGlvbiA6IHB1YmxpYyBzdGQ6OmV4Y2VwdGlv
biB7CitwdWJsaWM6CisgIEV4Y2VwdGlvbihTdHJpbmcgbXNnKTsKKyAgfkV4Y2VwdGlvbigpIEpT
T05DUFBfTk9FWENFUFQgb3ZlcnJpZGU7CisgIGNoYXIgY29uc3QqIHdoYXQoKSBjb25zdCBKU09O
Q1BQX05PRVhDRVBUIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgIFN0cmluZyBtc2dfOworfTsK
KworLyoqIEV4Y2VwdGlvbnMgd2hpY2ggdGhlIHVzZXIgY2Fubm90IGVhc2lseSBhdm9pZC4KKyAq
CisgKiBFLmcuIG91dC1vZi1tZW1vcnkgKHdoZW4gd2UgdXNlIG1hbGxvYyksIHN0YWNrLW92ZXJm
bG93LCBtYWxpY2lvdXMgaW5wdXQKKyAqCisgKiBccmVtYXJrIGRlcml2ZWQgZnJvbSBKc29uOjpF
eGNlcHRpb24KKyAqLworY2xhc3MgSlNPTl9BUEkgUnVudGltZUVycm9yIDogcHVibGljIEV4Y2Vw
dGlvbiB7CitwdWJsaWM6CisgIFJ1bnRpbWVFcnJvcihTdHJpbmcgY29uc3QmIG1zZyk7Cit9Owor
CisvKiogRXhjZXB0aW9ucyB0aHJvd24gYnkgSlNPTl9BU1NFUlQvSlNPTl9GQUlMIG1hY3Jvcy4K
KyAqCisgKiBUaGVzZSBhcmUgcHJlY29uZGl0aW9uLXZpb2xhdGlvbnMgKHVzZXIgYnVncykgYW5k
IGludGVybmFsIGVycm9ycyAob3VyIGJ1Z3MpLgorICoKKyAqIFxyZW1hcmsgZGVyaXZlZCBmcm9t
IEpzb246OkV4Y2VwdGlvbgorICovCitjbGFzcyBKU09OX0FQSSBMb2dpY0Vycm9yIDogcHVibGlj
IEV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIExvZ2ljRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpOwor
fTsKKyNlbmRpZgorCisvLy8gdXNlZCBpbnRlcm5hbGx5CitbW25vcmV0dXJuXV0gdm9pZCB0aHJv
d1J1bnRpbWVFcnJvcihTdHJpbmcgY29uc3QmIG1zZyk7CisvLy8gdXNlZCBpbnRlcm5hbGx5Citb
W25vcmV0dXJuXV0gdm9pZCB0aHJvd0xvZ2ljRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpOworCisv
KiogXGJyaWVmIFR5cGUgb2YgdGhlIHZhbHVlIGhlbGQgYnkgYSBWYWx1ZSBvYmplY3QuCisgKi8K
K2VudW0gVmFsdWVUeXBlIHsKKyAgbnVsbFZhbHVlID0gMCwgLy8vPCAnbnVsbCcgdmFsdWUKKyAg
aW50VmFsdWUsICAgICAgLy8vPCBzaWduZWQgaW50ZWdlciB2YWx1ZQorICB1aW50VmFsdWUsICAg
ICAvLy88IHVuc2lnbmVkIGludGVnZXIgdmFsdWUKKyAgcmVhbFZhbHVlLCAgICAgLy8vPCBkb3Vi
bGUgdmFsdWUKKyAgc3RyaW5nVmFsdWUsICAgLy8vPCBVVEYtOCBzdHJpbmcgdmFsdWUKKyAgYm9v
bGVhblZhbHVlLCAgLy8vPCBib29sIHZhbHVlCisgIGFycmF5VmFsdWUsICAgIC8vLzwgYXJyYXkg
dmFsdWUgKG9yZGVyZWQgbGlzdCkKKyAgb2JqZWN0VmFsdWUgICAgLy8vPCBvYmplY3QgdmFsdWUg
KGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycykuCit9OworCitlbnVtIENvbW1lbnRQbGFj
ZW1lbnQgeworICBjb21tZW50QmVmb3JlID0gMCwgICAgICAvLy88IGEgY29tbWVudCBwbGFjZWQg
b24gdGhlIGxpbmUgYmVmb3JlIGEgdmFsdWUKKyAgY29tbWVudEFmdGVyT25TYW1lTGluZSwgLy8v
PCBhIGNvbW1lbnQganVzdCBhZnRlciBhIHZhbHVlIG9uIHRoZSBzYW1lIGxpbmUKKyAgY29tbWVu
dEFmdGVyLCAvLy88IGEgY29tbWVudCBvbiB0aGUgbGluZSBhZnRlciBhIHZhbHVlIChvbmx5IG1h
a2Ugc2Vuc2UgZm9yCisgIC8vLyByb290IHZhbHVlKQorICBudW1iZXJPZkNvbW1lbnRQbGFjZW1l
bnQKK307CisKKy8qKiBcYnJpZWYgVHlwZSBvZiBwcmVjaXNpb24gZm9yIGZvcm1hdHRpbmcgb2Yg
cmVhbCB2YWx1ZXMuCisgKi8KK2VudW0gUHJlY2lzaW9uVHlwZSB7CisgIHNpZ25pZmljYW50RGln
aXRzID0gMCwgLy8vPCB3ZSBzZXQgbWF4IG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgaW4g
c3RyaW5nCisgIGRlY2ltYWxQbGFjZXMgICAgICAgICAgLy8vPCB3ZSBzZXQgbWF4IG51bWJlciBv
ZiBkaWdpdHMgYWZ0ZXIgIi4iIGluIHN0cmluZworfTsKIAogLy8jIGlmZGVmIEpTT05fVVNFX0NQ
UFRMCiAvLyAgIHR5cGVkZWYgQ3BwVEw6OkFueUVudW1lcmF0b3I8Y29uc3QgY2hhciAqPiBFbnVt
TWVtYmVyTmFtZXM7CiAvLyAgIHR5cGVkZWYgQ3BwVEw6OkFueUVudW1lcmF0b3I8Y29uc3QgVmFs
dWUgJj4gRW51bVZhbHVlczsKIC8vIyBlbmRpZgogCi0gICAvKiogXGJyaWVmIExpZ2h0d2VpZ2h0
IHdyYXBwZXIgdG8gdGFnIHN0YXRpYyBzdHJpbmcuCi0gICAgKgotICAgICogVmFsdWUgY29uc3Ry
dWN0b3IgYW5kIG9iamVjdFZhbHVlIG1lbWJlciBhc3NpZ25lbWVudCB0YWtlcyBhZHZhbnRhZ2Ug
b2YgdGhlCi0gICAgKiBTdGF0aWNTdHJpbmcgYW5kIGF2b2lkIHRoZSBjb3N0IG9mIHN0cmluZyBk
dXBsaWNhdGlvbiB3aGVuIHN0b3JpbmcgdGhlCi0gICAgKiBzdHJpbmcgb3IgdGhlIG1lbWJlciBu
YW1lLgotICAgICoKLSAgICAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gICAgKiBcY29kZQotICAgICog
SnNvbjo6VmFsdWUgYVZhbHVlKCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gICAgKiBK
c29uOjpWYWx1ZSBvYmplY3Q7Ci0gICAgKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUo
ImNvZGUiKTsKLSAgICAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7Ci0gICAgKiBcZW5kY29kZQotICAg
ICovCi0gICBjbGFzcyBKU09OX0FQSSBTdGF0aWNTdHJpbmcKLSAgIHsKLSAgIHB1YmxpYzoKLSAg
ICAgIGV4cGxpY2l0IFN0YXRpY1N0cmluZyggY29uc3QgY2hhciAqY3pzdHJpbmcgKQotICAgICAg
ICAgOiBzdHJfKCBjenN0cmluZyApCi0gICAgICB7Ci0gICAgICB9Ci0KLSAgICAgIG9wZXJhdG9y
IGNvbnN0IGNoYXIgKigpIGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gc3RyXzsKLSAg
ICAgIH0KLQotICAgICAgY29uc3QgY2hhciAqY19zdHIoKSBjb25zdAotICAgICAgewotICAgICAg
ICAgcmV0dXJuIHN0cl87Ci0gICAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgICBjb25zdCBjaGFy
ICpzdHJfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0
cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gdmFsdWUuCi0gICAgKgotICAgICogVGhpcyBjbGFz
cyBpcyBhIGRpc2NyaW1pbmF0ZWQgdW5pb24gd3JhcHBlciB0aGF0IGNhbiByZXByZXNlbnRzIGE6
Ci0gICAgKiAtIHNpZ25lZCBpbnRlZ2VyIFtyYW5nZTogVmFsdWU6Om1pbkludCAtIFZhbHVlOjpt
YXhJbnRdCi0gICAgKiAtIHVuc2lnbmVkIGludGVnZXIgKHJhbmdlOiAwIC0gVmFsdWU6Om1heFVJ
bnQpCi0gICAgKiAtIGRvdWJsZQotICAgICogLSBVVEYtOCBzdHJpbmcKLSAgICAqIC0gYm9vbGVh
bgotICAgICogLSAnbnVsbCcKLSAgICAqIC0gYW4gb3JkZXJlZCBsaXN0IG9mIFZhbHVlCi0gICAg
KiAtIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyAoamF2YXNjcmlwdCBvYmplY3QpCi0g
ICAgKgotICAgICogVGhlIHR5cGUgb2YgdGhlIGhlbGQgdmFsdWUgaXMgcmVwcmVzZW50ZWQgYnkg
YSAjVmFsdWVUeXBlIGFuZCAKLSAgICAqIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0eXBlKCkuCi0g
ICAgKgotICAgICogdmFsdWVzIG9mIGFuICNvYmplY3RWYWx1ZSBvciAjYXJyYXlWYWx1ZSBjYW4g
YmUgYWNjZXNzZWQgdXNpbmcgb3BlcmF0b3JbXSgpIG1ldGhvZHMuIAotICAgICogTm9uIGNvbnN0
IG1ldGhvZHMgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aGUgYSAjbnVsbFZhbHVlIGVsZW1l
bnQgCi0gICAgKiBpZiBpdCBkb2VzIG5vdCBleGlzdC4gCi0gICAgKiBUaGUgc2VxdWVuY2Ugb2Yg
YW4gI2FycmF5VmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlc2l6ZSBhbmQgaW5pdGlhbGl6
ZWQgCi0gICAgKiB3aXRoICNudWxsVmFsdWUuIHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFy
Z2Ugb3IgdHJ1bmNhdGUgYW4gI2FycmF5VmFsdWUuCi0gICAgKgotICAgICogVGhlIGdldCgpIG1l
dGhvZHMgY2FuIGJlIHVzZWQgdG8gb2J0YW5pcyBkZWZhdWx0IHZhbHVlIGluIHRoZSBjYXNlIHRo
ZSByZXF1aXJlZCBlbGVtZW50Ci0gICAgKiBkb2VzIG5vdCBleGlzdC4KLSAgICAqCi0gICAgKiBJ
dCBpcyBwb3NzaWJsZSB0byBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgYSAjb2JqZWN0VmFsdWUg
dmFsdWVzIHVzaW5nIAotICAgICogdGhlIGdldE1lbWJlck5hbWVzKCkgbWV0aG9kLgotICAgICov
Ci0gICBjbGFzcyBKU09OX0FQSSBWYWx1ZSAKLSAgIHsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1
ZUl0ZXJhdG9yQmFzZTsKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAg
ICBmcmllbmQgY2xhc3MgVmFsdWVJbnRlcm5hbExpbms7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFs
dWVJbnRlcm5hbE1hcDsKLSMgZW5kaWYKLSAgIHB1YmxpYzoKLSAgICAgIHR5cGVkZWYgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+IE1lbWJlcnM7Ci0gICAgICB0eXBlZGVmIFZhbHVlSXRlcmF0b3Ig
aXRlcmF0b3I7Ci0gICAgICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBjb25zdF9pdGVyYXRv
cjsKLSAgICAgIHR5cGVkZWYgSnNvbjo6VUludCBVSW50OwotICAgICAgdHlwZWRlZiBKc29uOjpJ
bnQgSW50OwotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgdHlwZWRlZiBKc29u
OjpVSW50NjQgVUludDY0OwotICAgICAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJbnQ2NDsKKy8qKiBc
YnJpZWYgTGlnaHR3ZWlnaHQgd3JhcHBlciB0byB0YWcgc3RhdGljIHN0cmluZy4KKyAqCisgKiBW
YWx1ZSBjb25zdHJ1Y3RvciBhbmQgb2JqZWN0VmFsdWUgbWVtYmVyIGFzc2lnbm1lbnQgdGFrZXMg
YWR2YW50YWdlIG9mIHRoZQorICogU3RhdGljU3RyaW5nIGFuZCBhdm9pZCB0aGUgY29zdCBvZiBz
dHJpbmcgZHVwbGljYXRpb24gd2hlbiBzdG9yaW5nIHRoZQorICogc3RyaW5nIG9yIHRoZSBtZW1i
ZXIgbmFtZS4KKyAqCisgKiBFeGFtcGxlIG9mIHVzYWdlOgorICogXGNvZGUKKyAqIEpzb246OlZh
bHVlIGFWYWx1ZSggU3RhdGljU3RyaW5nKCJzb21lIHRleHQiKSApOworICogSnNvbjo6VmFsdWUg
b2JqZWN0OworICogc3RhdGljIGNvbnN0IFN0YXRpY1N0cmluZyBjb2RlKCJjb2RlIik7CisgKiBv
YmplY3RbY29kZV0gPSAxMjM0OworICogXGVuZGNvZGUKKyAqLworY2xhc3MgSlNPTl9BUEkgU3Rh
dGljU3RyaW5nIHsKK3B1YmxpYzoKKyAgZXhwbGljaXQgU3RhdGljU3RyaW5nKGNvbnN0IGNoYXIq
IGN6c3RyaW5nKSA6IGNfc3RyXyhjenN0cmluZykge30KKworICBvcGVyYXRvciBjb25zdCBjaGFy
KigpIGNvbnN0IHsgcmV0dXJuIGNfc3RyXzsgfQorCisgIGNvbnN0IGNoYXIqIGNfc3RyKCkgY29u
c3QgeyByZXR1cm4gY19zdHJfOyB9CisKK3ByaXZhdGU6CisgIGNvbnN0IGNoYXIqIGNfc3RyXzsK
K307CisKKy8qKiBcYnJpZWYgUmVwcmVzZW50cyBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5v
cmciPkpTT048L2E+IHZhbHVlLgorICoKKyAqIFRoaXMgY2xhc3MgaXMgYSBkaXNjcmltaW5hdGVk
IHVuaW9uIHdyYXBwZXIgdGhhdCBjYW4gcmVwcmVzZW50cyBhOgorICogLSBzaWduZWQgaW50ZWdl
ciBbcmFuZ2U6IFZhbHVlOjptaW5JbnQgLSBWYWx1ZTo6bWF4SW50XQorICogLSB1bnNpZ25lZCBp
bnRlZ2VyIChyYW5nZTogMCAtIFZhbHVlOjptYXhVSW50KQorICogLSBkb3VibGUKKyAqIC0gVVRG
LTggc3RyaW5nCisgKiAtIGJvb2xlYW4KKyAqIC0gJ251bGwnCisgKiAtIGFuIG9yZGVyZWQgbGlz
dCBvZiBWYWx1ZQorICogLSBjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMgKGphdmFzY3Jp
cHQgb2JqZWN0KQorICoKKyAqIFRoZSB0eXBlIG9mIHRoZSBoZWxkIHZhbHVlIGlzIHJlcHJlc2Vu
dGVkIGJ5IGEgI1ZhbHVlVHlwZSBhbmQKKyAqIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0eXBlKCku
CisgKgorICogVmFsdWVzIG9mIGFuICNvYmplY3RWYWx1ZSBvciAjYXJyYXlWYWx1ZSBjYW4gYmUg
YWNjZXNzZWQgdXNpbmcgb3BlcmF0b3JbXSgpCisgKiBtZXRob2RzLgorICogTm9uLWNvbnN0IG1l
dGhvZHMgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aGUgYSAjbnVsbFZhbHVlIGVsZW1lbnQK
KyAqIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorICogVGhlIHNlcXVlbmNlIG9mIGFuICNhcnJheVZh
bHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSByZXNpemVkIGFuZCBpbml0aWFsaXplZAorICogd2l0
aCAjbnVsbFZhbHVlLiByZXNpemUoKSBjYW4gYmUgdXNlZCB0byBlbmxhcmdlIG9yIHRydW5jYXRl
IGFuICNhcnJheVZhbHVlLgorICoKKyAqIFRoZSBnZXQoKSBtZXRob2RzIGNhbiBiZSB1c2VkIHRv
IG9idGFpbiBkZWZhdWx0IHZhbHVlIGluIHRoZSBjYXNlIHRoZQorICogcmVxdWlyZWQgZWxlbWVu
dCBkb2VzIG5vdCBleGlzdC4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0byBpdGVyYXRlIG92ZXIg
dGhlIGxpc3Qgb2YgbWVtYmVyIGtleXMgb2YgYW4gb2JqZWN0IHVzaW5nCisgKiB0aGUgZ2V0TWVt
YmVyTmFtZXMoKSBtZXRob2QuCisgKgorICogXG5vdGUgI1ZhbHVlIHN0cmluZy1sZW5ndGggZml0
IGluIHNpemVfdCwgYnV0IGtleXMgbXVzdCBiZSA8IDJeMzAuCisgKiAoVGhlIHJlYXNvbiBpcyBh
biBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKSBBICNDaGFyUmVhZGVyIHdpbGwgcmFpc2UgYW4KKyAq
IGV4Y2VwdGlvbiBpZiBhIGJvdW5kIGlzIGV4Y2VlZGVkIHRvIGF2b2lkIHNlY3VyaXR5IGhvbGVz
IGluIHlvdXIgYXBwLAorICogYnV0IHRoZSBWYWx1ZSBBUEkgZG9lcyAqbm90KiBjaGVjayBib3Vu
ZHMuIFRoYXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5CisgKiBvZiB0aGUgY2FsbGVyLgorICovCitj
bGFzcyBKU09OX0FQSSBWYWx1ZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsK
KworcHVibGljOgorICB0eXBlZGVmIHN0ZDo6dmVjdG9yPFN0cmluZz4gTWVtYmVyczsKKyAgdHlw
ZWRlZiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yOworICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRv
ciBjb25zdF9pdGVyYXRvcjsKKyAgdHlwZWRlZiBKc29uOjpVSW50IFVJbnQ7CisgIHR5cGVkZWYg
SnNvbjo6SW50IEludDsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICB0eXBlZGVmIEpz
b246OlVJbnQ2NCBVSW50NjQ7CisgIHR5cGVkZWYgSnNvbjo6SW50NjQgSW50NjQ7CiAjZW5kaWYg
Ly8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgICAgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdElu
dCBMYXJnZXN0SW50OwotICAgICAgdHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJnZXN0VUlu
dDsKLSAgICAgIHR5cGVkZWYgSnNvbjo6QXJyYXlJbmRleCBBcnJheUluZGV4OwotCi0gICAgICBz
dGF0aWMgY29uc3QgVmFsdWUgbnVsbDsKLSAgICAgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnRlZ2Vy
IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGlj
IGNvbnN0IExhcmdlc3RJbnQgbWluTGFyZ2VzdEludDsKLSAgICAgIC8vLyBNYXhpbXVtIHNpZ25l
ZCBpbnRlZ2VyIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAg
ICAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWF4TGFyZ2VzdEludDsKLSAgICAgIC8vLyBNYXhp
bXVtIHVuc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6
VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgTGFyZ2VzdFVJbnQgbWF4TGFyZ2VzdFVJbnQ7Ci0K
LSAgICAgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGlu
IGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgSW50IG1pbkludDsKLSAgICAgIC8v
LyBNYXhpbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6
VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgSW50IG1heEludDsKLSAgICAgIC8vLyBNYXhpbXVt
IHVuc2lnbmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4K
LSAgICAgIHN0YXRpYyBjb25zdCBVSW50IG1heFVJbnQ7Ci0KLSMgaWYgZGVmaW5lZChKU09OX0hB
U19JTlQ2NCkKLSAgICAgIC8vLyBNaW5pbXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0
IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBJbnQ2
NCBtaW5JbnQ2NDsKLSAgICAgIC8vLyBNYXhpbXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0
aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBJ
bnQ2NCBtYXhJbnQ2NDsKLSAgICAgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZh
bHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNv
bnN0IFVJbnQ2NCBtYXhVSW50NjQ7CisgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdEludCBMYXJnZXN0
SW50OworICB0eXBlZGVmIEpzb246Okxhcmdlc3RVSW50IExhcmdlc3RVSW50OworICB0eXBlZGVm
IEpzb246OkFycmF5SW5kZXggQXJyYXlJbmRleDsKKworICAvLyBSZXF1aXJlZCBmb3IgYm9vc3Qg
aW50ZWdyYXRpb24sIGUuIGcuIEJPT1NUX1RFU1QKKyAgdHlwZWRlZiBzdGQ6OnN0cmluZyB2YWx1
ZV90eXBlOworCisjaWYgSlNPTl9VU0VfTlVMTFJFRgorICAvLyBCaW5hcnkgY29tcGF0aWJpbGl0
eSBrbHVkZ2VzLCBkbyBub3QgdXNlLgorICBzdGF0aWMgY29uc3QgVmFsdWUmIG51bGw7CisgIHN0
YXRpYyBjb25zdCBWYWx1ZSYgbnVsbFJlZjsKKyNlbmRpZgorCisgIC8vIG51bGwgYW5kIG51bGxS
ZWYgYXJlIGRlcHJlY2F0ZWQsIHVzZSB0aGlzIGluc3RlYWQuCisgIHN0YXRpYyBWYWx1ZSBjb25z
dCYgbnVsbFNpbmdsZXRvbigpOworCisgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVl
IHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgTGFy
Z2VzdEludCBtaW5MYXJnZXN0SW50OworICAvLy8gTWF4aW11bSBzaWduZWQgaW50ZWdlciB2YWx1
ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IExh
cmdlc3RJbnQgbWF4TGFyZ2VzdEludDsKKyAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50ZWdlciB2
YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0
IExhcmdlc3RVSW50IG1heExhcmdlc3RVSW50OworCisgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnQg
dmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25z
dCBJbnQgbWluSW50OworICAvLy8gTWF4aW11bSBzaWduZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJl
IHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50IG1heEludDsKKyAg
Ly8vIE1heGltdW0gdW5zaWduZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpz
b246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgVUludCBtYXhVSW50OworCisjaWYgZGVmaW5lZChK
U09OX0hBU19JTlQ2NCkKKyAgLy8vIE1pbmltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRo
YXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50NjQg
bWluSW50NjQ7CisgIC8vLyBNYXhpbXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNh
biBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IEludDY0IG1heElu
dDY0OworICAvLy8gTWF4aW11bSB1bnNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBi
ZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IFVJbnQ2NCBtYXhVSW50
NjQ7CiAjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKIAotICAgcHJpdmF0ZToKKyAg
Ly8vIERlZmF1bHQgcHJlY2lzaW9uIGZvciByZWFsIHZhbHVlIGZvciBzdHJpbmcgcmVwcmVzZW50
YXRpb24uCisgIHN0YXRpYyBjb25zdCBVSW50IGRlZmF1bHRSZWFsUHJlY2lzaW9uOworCisvLyBX
b3JrYXJvdW5kIGZvciBidWcgaW4gdGhlIE5WSURJQXMgQ1VEQSA5LjEgbnZjYyBjb21waWxlcgor
Ly8gd2hlbiB1c2luZyBnY2MgYW5kIGNsYW5nIGJhY2tlbmQgY29tcGlsZXJzLiAgQ1pTdHJpbmcK
Ky8vIGNhbm5vdCBiZSBkZWZpbmVkIGFzIHByaXZhdGUuICBTZWUgaXNzdWUgIzQ4NgorI2lmZGVm
IF9fTlZDQ19fCitwdWJsaWM6CisjZWxzZQorcHJpdmF0ZToKKyNlbmRpZgogI2lmbmRlZiBKU09O
Q1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0jIGlmbmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgICAgIGNsYXNzIENaU3RyaW5nIAotICAgICAgewotICAgICAgcHVibGlj
OgotICAgICAgICAgZW51bSBEdXBsaWNhdGlvblBvbGljeSAKLSAgICAgICAgIHsKLSAgICAgICAg
ICAgIG5vRHVwbGljYXRpb24gPSAwLAotICAgICAgICAgICAgZHVwbGljYXRlLAotICAgICAgICAg
ICAgZHVwbGljYXRlT25Db3B5Ci0gICAgICAgICB9OwotICAgICAgICAgQ1pTdHJpbmcoIEFycmF5
SW5kZXggaW5kZXggKTsKLSAgICAgICAgIENaU3RyaW5nKCBjb25zdCBjaGFyICpjc3RyLCBEdXBs
aWNhdGlvblBvbGljeSBhbGxvY2F0ZSApOwotICAgICAgICAgQ1pTdHJpbmcoIGNvbnN0IENaU3Ry
aW5nICZvdGhlciApOwotICAgICAgICAgfkNaU3RyaW5nKCk7Ci0gICAgICAgICBDWlN0cmluZyAm
b3BlcmF0b3IgPSggY29uc3QgQ1pTdHJpbmcgJm90aGVyICk7Ci0gICAgICAgICBib29sIG9wZXJh
dG9yPCggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkgY29uc3Q7Ci0gICAgICAgICBib29sIG9wZXJh
dG9yPT0oIGNvbnN0IENaU3RyaW5nICZvdGhlciApIGNvbnN0OwotICAgICAgICAgQXJyYXlJbmRl
eCBpbmRleCgpIGNvbnN0OwotICAgICAgICAgY29uc3QgY2hhciAqY19zdHIoKSBjb25zdDsKLSAg
ICAgICAgIGJvb2wgaXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKLSAgICAgIHByaXZhdGU6Ci0gICAg
ICAgICB2b2lkIHN3YXAoIENaU3RyaW5nICZvdGhlciApOwotICAgICAgICAgY29uc3QgY2hhciAq
Y3N0cl87Ci0gICAgICAgICBBcnJheUluZGV4IGluZGV4XzsKLSAgICAgIH07Ci0KLSAgIHB1Ymxp
YzoKLSMgIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotICAgICAgdHlwZWRlZiBzdGQ6
Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVlczsKLSMgIGVsc2UKLSAgICAgIHR5cGVk
ZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOwotIyAgZW5k
aWYgLy8gaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCi0jIGVuZGlmIC8vIGlmbmRlZiBK
U09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKKyAgY2xhc3MgQ1pTdHJpbmcgeworICBwdWJsaWM6
CisgICAgZW51bSBEdXBsaWNhdGlvblBvbGljeSB7IG5vRHVwbGljYXRpb24gPSAwLCBkdXBsaWNh
dGUsIGR1cGxpY2F0ZU9uQ29weSB9OworICAgIENaU3RyaW5nKEFycmF5SW5kZXggaW5kZXgpOwor
ICAgIENaU3RyaW5nKGNoYXIgY29uc3QqIHN0ciwgdW5zaWduZWQgbGVuZ3RoLCBEdXBsaWNhdGlv
blBvbGljeSBhbGxvY2F0ZSk7CisgICAgQ1pTdHJpbmcoQ1pTdHJpbmcgY29uc3QmIG90aGVyKTsK
KyAgICBDWlN0cmluZyhDWlN0cmluZyYmIG90aGVyKTsKKyAgICB+Q1pTdHJpbmcoKTsKKyAgICBD
WlN0cmluZyYgb3BlcmF0b3I9KGNvbnN0IENaU3RyaW5nJiBvdGhlcik7CisgICAgQ1pTdHJpbmcm
IG9wZXJhdG9yPShDWlN0cmluZyYmIG90aGVyKTsKKworICAgIGJvb2wgb3BlcmF0b3I8KENaU3Ry
aW5nIGNvbnN0JiBvdGhlcikgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvcj09KENaU3RyaW5nIGNv
bnN0JiBvdGhlcikgY29uc3Q7CisgICAgQXJyYXlJbmRleCBpbmRleCgpIGNvbnN0OworICAgIC8v
IGNvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3Q7IC8vLzwgXGRlcHJlY2F0ZWQKKyAgICBjaGFyIGNv
bnN0KiBkYXRhKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgYm9v
bCBpc1N0YXRpY1N0cmluZygpIGNvbnN0OworCisgIHByaXZhdGU6CisgICAgdm9pZCBzd2FwKENa
U3RyaW5nJiBvdGhlcik7CisKKyAgICBzdHJ1Y3QgU3RyaW5nU3RvcmFnZSB7CisgICAgICB1bnNp
Z25lZCBwb2xpY3lfIDogMjsKKyAgICAgIHVuc2lnbmVkIGxlbmd0aF8gOiAzMDsgLy8gMUdCIG1h
eAorICAgIH07CisKKyAgICBjaGFyIGNvbnN0KiBjc3RyXzsgLy8gYWN0dWFsbHksIGEgcHJlZml4
ZWQgc3RyaW5nLCB1bmxlc3MgcG9saWN5IGlzIG5vRHVwCisgICAgdW5pb24geworICAgICAgQXJy
YXlJbmRleCBpbmRleF87CisgICAgICBTdHJpbmdTdG9yYWdlIHN0b3JhZ2VfOworICAgIH07Cisg
IH07CisKK3B1YmxpYzoKKyNpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyAgdHlwZWRl
ZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVlczsKKyNlbHNlCisgIHR5cGVk
ZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOworI2VuZGlm
IC8vIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAogI2VuZGlmIC8vIGlmbmRlZiBKU09O
Q1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCiAKLSAgIHB1YmxpYzoKLSAgICAgIC8qKiBc
YnJpZWYgQ3JlYXRlIGEgZGVmYXVsdCBWYWx1ZSBvZiB0aGUgZ2l2ZW4gdHlwZS4KLQotICAgICAg
ICBUaGlzIGlzIGEgdmVyeSB1c2VmdWwgY29uc3RydWN0b3IuCi0gICAgICAgIFRvIGNyZWF0ZSBh
biBlbXB0eSBhcnJheSwgcGFzcyBhcnJheVZhbHVlLgotICAgICAgICBUbyBjcmVhdGUgYW4gZW1w
dHkgb2JqZWN0LCBwYXNzIG9iamVjdFZhbHVlLgotICAgICAgICBBbm90aGVyIFZhbHVlIGNhbiB0
aGVuIGJlIHNldCB0byB0aGlzIG9uZSBieSBhc3NpZ25tZW50LgotICAgIFRoaXMgaXMgdXNlZnVs
IHNpbmNlIGNsZWFyKCkgYW5kIHJlc2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgotCi0gICAg
ICAgIEV4YW1wbGVzOgotICAgIFxjb2RlCi0gICAgSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8g
bnVsbAotICAgIEpzb246OlZhbHVlIGFycl92YWx1ZShKc29uOjphcnJheVZhbHVlKTsgLy8gW10K
LSAgICBKc29uOjpWYWx1ZSBvYmpfdmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpOyAvLyB7fQotICAg
IFxlbmRjb2RlCi0gICAgICAqLwotICAgICAgVmFsdWUoIFZhbHVlVHlwZSB0eXBlID0gbnVsbFZh
bHVlICk7Ci0gICAgICBWYWx1ZSggSW50IHZhbHVlICk7Ci0gICAgICBWYWx1ZSggVUludCB2YWx1
ZSApOworcHVibGljOgorICAvKiogXGJyaWVmIENyZWF0ZSBhIGRlZmF1bHQgVmFsdWUgb2YgdGhl
IGdpdmVuIHR5cGUuCisKKyAgICBUaGlzIGlzIGEgdmVyeSB1c2VmdWwgY29uc3RydWN0b3IuCisg
ICAgVG8gY3JlYXRlIGFuIGVtcHR5IGFycmF5LCBwYXNzIGFycmF5VmFsdWUuCisgICAgVG8gY3Jl
YXRlIGFuIGVtcHR5IG9iamVjdCwgcGFzcyBvYmplY3RWYWx1ZS4KKyAgICBBbm90aGVyIFZhbHVl
IGNhbiB0aGVuIGJlIHNldCB0byB0aGlzIG9uZSBieSBhc3NpZ25tZW50LgorVGhpcyBpcyB1c2Vm
dWwgc2luY2UgY2xlYXIoKSBhbmQgcmVzaXplKCkgd2lsbCBub3QgYWx0ZXIgdHlwZXMuCisKKyAg
ICBFeGFtcGxlczoKK1xjb2RlCitKc29uOjpWYWx1ZSBudWxsX3ZhbHVlOyAvLyBudWxsCitKc29u
OjpWYWx1ZSBhcnJfdmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSk7IC8vIFtdCitKc29uOjpWYWx1ZSBv
YmpfdmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpOyAvLyB7fQorXGVuZGNvZGUKKyAgKi8KKyAgVmFs
dWUoVmFsdWVUeXBlIHR5cGUgPSBudWxsVmFsdWUpOworICBWYWx1ZShJbnQgdmFsdWUpOworICBW
YWx1ZShVSW50IHZhbHVlKTsKICNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgVmFs
dWUoIEludDY0IHZhbHVlICk7Ci0gICAgICBWYWx1ZSggVUludDY0IHZhbHVlICk7CisgIFZhbHVl
KEludDY0IHZhbHVlKTsKKyAgVmFsdWUoVUludDY0IHZhbHVlKTsKICNlbmRpZiAvLyBpZiBkZWZp
bmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgVmFsdWUoIGRvdWJsZSB2YWx1ZSApOwotICAgICAg
VmFsdWUoIGNvbnN0IGNoYXIgKnZhbHVlICk7Ci0gICAgICBWYWx1ZSggY29uc3QgY2hhciAqYmVn
aW5WYWx1ZSwgY29uc3QgY2hhciAqZW5kVmFsdWUgKTsKLSAgICAgIC8qKiBcYnJpZWYgQ29uc3Ry
dWN0cyBhIHZhbHVlIGZyb20gYSBzdGF0aWMgc3RyaW5nLgotCi0gICAgICAgKiBMaWtlIG90aGVy
IHZhbHVlIHN0cmluZyBjb25zdHJ1Y3RvciBidXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5n
IGZvcgotICAgICAgICogaW50ZXJuYWwgc3RvcmFnZS4gVGhlIGdpdmVuIHN0cmluZyBtdXN0IHJl
bWFpbiBhbGl2ZSBhZnRlciB0aGUgY2FsbCB0byB0aGlzCi0gICAgICAgKiBjb25zdHJ1Y3Rvci4K
LSAgICAgICAqIEV4YW1wbGUgb2YgdXNhZ2U6Ci0gICAgICAgKiBcY29kZQotICAgICAgICogSnNv
bjo6VmFsdWUgYVZhbHVlKCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gICAgICAgKiBc
ZW5kY29kZQotICAgICAgICovCi0gICAgICBWYWx1ZSggY29uc3QgU3RhdGljU3RyaW5nICZ2YWx1
ZSApOwotICAgICAgVmFsdWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YWx1ZSApOwotIyBpZmRlZiBK
U09OX1VTRV9DUFBUTAotICAgICAgVmFsdWUoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAmdmFs
dWUgKTsKLSMgZW5kaWYKLSAgICAgIFZhbHVlKCBib29sIHZhbHVlICk7Ci0gICAgICBWYWx1ZSgg
Y29uc3QgVmFsdWUgJm90aGVyICk7Ci0gICAgICB+VmFsdWUoKTsKLQotICAgICAgVmFsdWUgJm9w
ZXJhdG9yPSggY29uc3QgVmFsdWUgJm90aGVyICk7Ci0gICAgICAvLy8gU3dhcCB2YWx1ZXMuCi0g
ICAgICAvLy8gXG5vdGUgQ3VycmVudGx5LCBjb21tZW50cyBhcmUgaW50ZW50aW9uYWxseSBub3Qg
c3dhcHBlZCwgZm9yCi0gICAgICAvLy8gYm90aCBsb2dpYyBhbmQgZWZmaWNpZW5jeS4KLSAgICAg
IHZvaWQgc3dhcCggVmFsdWUgJm90aGVyICk7Ci0KLSAgICAgIFZhbHVlVHlwZSB0eXBlKCkgY29u
c3Q7Ci0KLSAgICAgIGJvb2wgb3BlcmF0b3IgPCggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7
Ci0gICAgICBib29sIG9wZXJhdG9yIDw9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLSAg
ICAgIGJvb2wgb3BlcmF0b3IgPj0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotICAgICAg
Ym9vbCBvcGVyYXRvciA+KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgYm9v
bCBvcGVyYXRvciA9PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAgICBib29sIG9w
ZXJhdG9yICE9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgaW50IGNvbXBh
cmUoIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotCi0gICAgICBjb25zdCBjaGFyICphc0NT
dHJpbmcoKSBjb25zdDsKLSAgICAgIHN0ZDo6c3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7Ci0jIGlm
ZGVmIEpTT05fVVNFX0NQUFRMCi0gICAgICBDcHBUTDo6Q29uc3RTdHJpbmcgYXNDb25zdFN0cmlu
ZygpIGNvbnN0OwotIyBlbmRpZgotICAgICAgSW50IGFzSW50KCkgY29uc3Q7Ci0gICAgICBVSW50
IGFzVUludCgpIGNvbnN0OworICBWYWx1ZShkb3VibGUgdmFsdWUpOworICBWYWx1ZShjb25zdCBj
aGFyKiB2YWx1ZSk7IC8vLzwgQ29weSB0aWwgZmlyc3QgMC4gKE5VTEwgY2F1c2VzIHRvIHNlZy1m
YXVsdC4pCisgIFZhbHVlKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpOyAvLy88
IENvcHkgYWxsLCBpbmNsIHplcm9lcy4KKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgdmFsdWUg
ZnJvbSBhIHN0YXRpYyBzdHJpbmcuCisKKyAgICogTGlrZSBvdGhlciB2YWx1ZSBzdHJpbmcgY29u
c3RydWN0b3IgYnV0IGRvIG5vdCBkdXBsaWNhdGUgdGhlIHN0cmluZyBmb3IKKyAgICogaW50ZXJu
YWwgc3RvcmFnZS4gVGhlIGdpdmVuIHN0cmluZyBtdXN0IHJlbWFpbiBhbGl2ZSBhZnRlciB0aGUg
Y2FsbCB0byB0aGlzCisgICAqIGNvbnN0cnVjdG9yLgorICAgKiBcbm90ZSBUaGlzIHdvcmtzIG9u
bHkgZm9yIG51bGwtdGVybWluYXRlZCBzdHJpbmdzLiAoV2UgY2Fubm90IGNoYW5nZSB0aGUKKyAg
ICogICBzaXplIG9mIHRoaXMgY2xhc3MsIHNvIHdlIGhhdmUgbm93aGVyZSB0byBzdG9yZSB0aGUg
bGVuZ3RoLAorICAgKiAgIHdoaWNoIG1pZ2h0IGJlIGNvbXB1dGVkIGxhdGVyIGZvciB2YXJpb3Vz
IG9wZXJhdGlvbnMuKQorICAgKgorICAgKiBFeGFtcGxlIG9mIHVzYWdlOgorICAgKiBcY29kZQor
ICAgKiBzdGF0aWMgU3RhdGljU3RyaW5nIGZvbygic29tZSB0ZXh0Iik7CisgICAqIEpzb246OlZh
bHVlIGFWYWx1ZShmb28pOworICAgKiBcZW5kY29kZQorICAgKi8KKyAgVmFsdWUoY29uc3QgU3Rh
dGljU3RyaW5nJiB2YWx1ZSk7CisgIFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpOyAvLy88IENv
cHkgZGF0YSgpIHRpbCBzaXplKCkuIEVtYmVkZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLy88IHplcm9lcyB0b28uCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgVmFsdWUoY29u
c3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiB2YWx1ZSk7CisjZW5kaWYKKyAgVmFsdWUoYm9vbCB2YWx1
ZSk7CisgIFZhbHVlKGNvbnN0IFZhbHVlJiBvdGhlcik7CisgIFZhbHVlKFZhbHVlJiYgb3RoZXIp
OworICB+VmFsdWUoKTsKKworICAvLy8gXG5vdGUgT3ZlcndyaXRlIGV4aXN0aW5nIGNvbW1lbnRz
LiBUbyBwcmVzZXJ2ZSBjb21tZW50cywgdXNlCisgIC8vLyAjc3dhcFBheWxvYWQoKS4KKyAgVmFs
dWUmIG9wZXJhdG9yPShjb25zdCBWYWx1ZSYgb3RoZXIpOworICBWYWx1ZSYgb3BlcmF0b3I9KFZh
bHVlJiYgb3RoZXIpOworCisgIC8vLyBTd2FwIGV2ZXJ5dGhpbmcuCisgIHZvaWQgc3dhcChWYWx1
ZSYgb3RoZXIpOworICAvLy8gU3dhcCB2YWx1ZXMgYnV0IGxlYXZlIGNvbW1lbnRzIGFuZCBzb3Vy
Y2Ugb2Zmc2V0cyBpbiBwbGFjZS4KKyAgdm9pZCBzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpOwor
CisgIC8vLyBjb3B5IGV2ZXJ5dGhpbmcuCisgIHZvaWQgY29weShjb25zdCBWYWx1ZSYgb3RoZXIp
OworICAvLy8gY29weSB2YWx1ZXMgYnV0IGxlYXZlIGNvbW1lbnRzIGFuZCBzb3VyY2Ugb2Zmc2V0
cyBpbiBwbGFjZS4KKyAgdm9pZCBjb3B5UGF5bG9hZChjb25zdCBWYWx1ZSYgb3RoZXIpOworCisg
IFZhbHVlVHlwZSB0eXBlKCkgY29uc3Q7CisKKyAgLy8vIENvbXBhcmUgcGF5bG9hZCBvbmx5LCBu
b3QgY29tbWVudHMgZXRjLgorICBib29sIG9wZXJhdG9yPChjb25zdCBWYWx1ZSYgb3RoZXIpIGNv
bnN0OworICBib29sIG9wZXJhdG9yPD0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKyAgYm9v
bCBvcGVyYXRvcj49KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I+
KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWYWx1
ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yIT0oY29uc3QgVmFsdWUmIG90aGVyKSBj
b25zdDsKKyAgaW50IGNvbXBhcmUoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKworICBjb25z
dCBjaGFyKiBhc0NTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgY291bGQgY2F1
c2UgeW91IHRyb3VibGUhCisjaWYgSlNPTkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZCisgIHVuc2ln
bmVkIGdldENTdHJpbmdMZW5ndGgoKSBjb25zdDsgLy8gQWxsb3dzIHlvdSB0byB1bmRlcnN0YW5k
IHRoZSBsZW5ndGggb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0
aGUgQ1N0cmluZworI2VuZGlmCisgIFN0cmluZyBhc1N0cmluZygpIGNvbnN0OyAvLy88IEVtYmVk
ZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIC8qKiBHZXQgcmF3IGNoYXIqIG9mIHN0cmluZy12
YWx1ZS4KKyAgICogIFxyZXR1cm4gZmFsc2UgaWYgIXN0cmluZy4gKFNlZy1mYXVsdCBpZiBzdHIg
b3IgZW5kIGFyZSBOVUxMLikKKyAgICovCisgIGJvb2wgZ2V0U3RyaW5nKGNoYXIgY29uc3QqKiBi
ZWdpbiwgY2hhciBjb25zdCoqIGVuZCkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAg
Q3BwVEw6OkNvbnN0U3RyaW5nIGFzQ29uc3RTdHJpbmcoKSBjb25zdDsKKyNlbmRpZgorICBJbnQg
YXNJbnQoKSBjb25zdDsKKyAgVUludCBhc1VJbnQoKSBjb25zdDsKICNpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQotICAgICAgSW50NjQgYXNJbnQ2NCgpIGNvbnN0OwotICAgICAgVUludDY0IGFz
VUludDY0KCkgY29uc3Q7CisgIEludDY0IGFzSW50NjQoKSBjb25zdDsKKyAgVUludDY0IGFzVUlu
dDY0KCkgY29uc3Q7CiAjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgICAg
IExhcmdlc3RJbnQgYXNMYXJnZXN0SW50KCkgY29uc3Q7Ci0gICAgICBMYXJnZXN0VUludCBhc0xh
cmdlc3RVSW50KCkgY29uc3Q7Ci0gICAgICBmbG9hdCBhc0Zsb2F0KCkgY29uc3Q7Ci0gICAgICBk
b3VibGUgYXNEb3VibGUoKSBjb25zdDsKLSAgICAgIGJvb2wgYXNCb29sKCkgY29uc3Q7Ci0KLSAg
ICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7Ci0gICAgICBib29sIGlzQm9vbCgpIGNvbnN0OwotICAg
ICAgYm9vbCBpc0ludCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludDY0KCkgY29uc3Q7Ci0gICAg
ICBib29sIGlzVUludCgpIGNvbnN0OwotICAgICAgYm9vbCBpc1VJbnQ2NCgpIGNvbnN0OwotICAg
ICAgYm9vbCBpc0ludGVncmFsKCkgY29uc3Q7Ci0gICAgICBib29sIGlzRG91YmxlKCkgY29uc3Q7
Ci0gICAgICBib29sIGlzTnVtZXJpYygpIGNvbnN0OwotICAgICAgYm9vbCBpc1N0cmluZygpIGNv
bnN0OwotICAgICAgYm9vbCBpc0FycmF5KCkgY29uc3Q7Ci0gICAgICBib29sIGlzT2JqZWN0KCkg
Y29uc3Q7Ci0KLSAgICAgIGJvb2wgaXNDb252ZXJ0aWJsZVRvKCBWYWx1ZVR5cGUgb3RoZXIgKSBj
b25zdDsKLQotICAgICAgLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0Ci0g
ICAgICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKLQotICAgICAgLy8vIFxicmllZiBSZXR1cm4g
dHJ1ZSBpZiBlbXB0eSBhcnJheSwgZW1wdHkgb2JqZWN0LCBvciBudWxsOwotICAgICAgLy8vIG90
aGVyd2lzZSwgZmFsc2UuCi0gICAgICBib29sIGVtcHR5KCkgY29uc3Q7Ci0KLSAgICAgIC8vLyBS
ZXR1cm4gaXNOdWxsKCkKLSAgICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3Q7Ci0KLSAgICAgIC8v
LyBSZW1vdmUgYWxsIG9iamVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KLSAgICAgIC8v
LyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlLCBvYmplY3RWYWx1ZSwgb3IgbnVsbFZhbHVlCi0g
ICAgICAvLy8gXHBvc3QgdHlwZSgpIGlzIHVuY2hhbmdlZAotICAgICAgdm9pZCBjbGVhcigpOwot
Ci0gICAgICAvLy8gUmVzaXplIHRoZSBhcnJheSB0byBzaXplIGVsZW1lbnRzLiAKLSAgICAgIC8v
LyBOZXcgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIG51bGwuCi0gICAgICAvLy8gTWF5IG9u
bHkgYmUgY2FsbGVkIG9uIG51bGxWYWx1ZSBvciBhcnJheVZhbHVlLgotICAgICAgLy8vIFxwcmUg
dHlwZSgpIGlzIGFycmF5VmFsdWUgb3IgbnVsbFZhbHVlCi0gICAgICAvLy8gXHBvc3QgdHlwZSgp
IGlzIGFycmF5VmFsdWUKLSAgICAgIHZvaWQgcmVzaXplKCBBcnJheUluZGV4IHNpemUgKTsKLQot
ICAgICAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCi0g
ICAgICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3MgdGhhbiBpbmRleCBlbGVtZW50LCB0
aGVuIG51bGwgdmFsdWUgYXJlIGluc2VydGVkCi0gICAgICAvLy8gaW4gdGhlIGFycmF5IHNvIHRo
YXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgICAgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAn
dmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAgICAgLy8v
ICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICAgICAg
VmFsdWUgJm9wZXJhdG9yW10oIEFycmF5SW5kZXggaW5kZXggKTsKLQotICAgICAgLy8vIEFjY2Vz
cyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCi0gICAgICAvLy8gSWYgdGhl
IGFycmF5IGNvbnRhaW5zIGxlc3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUg
YXJlIGluc2VydGVkCi0gICAgICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMg
aW5kZXgrMS4KLSAgICAgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBn
ZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAgICAgLy8vICB0aGlzIGZyb20gdGhl
IG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICAgICAgVmFsdWUgJm9wZXJhdG9y
W10oIGludCBpbmRleCApOwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHpl
cm8gYmFzZWQgaW5kZXggKQotICAgICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVsw
dV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMg
ZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBjb25zdCBW
YWx1ZSAmb3BlcmF0b3JbXSggQXJyYXlJbmRleCBpbmRleCApIGNvbnN0OwotCi0gICAgICAvLy8g
QWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAgICAgLy8vIChZ
b3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRp
c3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtl
cyBhIHN0cmluZy4pCi0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggaW50IGluZGV4ICkg
Y29uc3Q7Ci0KLSAgICAgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgr
MSBlbGVtZW50cywgcmV0dXJucyB0aGUgZWxlbWVudCB2YWx1ZSwgCi0gICAgICAvLy8gb3RoZXJ3
aXNlIHJldHVybnMgZGVmYXVsdFZhbHVlLgotICAgICAgVmFsdWUgZ2V0KCBBcnJheUluZGV4IGlu
ZGV4LCAKLSAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0
OwotICAgICAgLy8vIFJldHVybiB0cnVlIGlmIGluZGV4IDwgc2l6ZSgpLgotICAgICAgYm9vbCBp
c1ZhbGlkSW5kZXgoIEFycmF5SW5kZXggaW5kZXggKSBjb25zdDsKLSAgICAgIC8vLyBcYnJpZWYg
QXBwZW5kIHZhbHVlIHRvIGFycmF5IGF0IHRoZSBlbmQuCi0gICAgICAvLy8KLSAgICAgIC8vLyBF
cXVpdmFsZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOwotICAgICAg
VmFsdWUgJmFwcGVuZCggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0KLSAgICAgIC8vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMg
bm90IGV4aXN0LgotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IGNoYXIgKmtleSApOwot
ICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlm
IHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoIHRoYXQgbmFtZS4KLSAgICAgIGNvbnN0IFZhbHVlICZv
cGVyYXRvcltdKCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLSAgICAgIC8vLyBBY2Nlc3MgYW4g
b2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90
IGV4aXN0LgotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkg
KTsKLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVs
bCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aCB0aGF0IG5hbWUuCi0gICAgICBjb25zdCBWYWx1
ZSAmb3BlcmF0b3JbXSggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApIGNvbnN0OwotICAgICAgLyoq
IFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVt
YmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotCi0gICAgICAgKiBJZiB0aGUgb2JqZWN0IGFzIG5v
IGVudHJ5IGZvciB0aGF0IG5hbWUsIHRoZW4gdGhlIG1lbWJlciBuYW1lIHVzZWQgdG8gc3RvcmUK
LSAgICAgICAqIHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQuCi0gICAgICAgKiBFeGFt
cGxlIG9mIHVzZToKLSAgICAgICAqIFxjb2RlCi0gICAgICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7
Ci0gICAgICAgKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUiKTsKLSAgICAg
ICAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7Ci0gICAgICAgKiBcZW5kY29kZQotICAgICAgICovCi0g
ICAgICBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3QgU3RhdGljU3RyaW5nICZrZXkgKTsKLSMgaWZk
ZWYgSlNPTl9VU0VfQ1BQVEwKLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5h
bWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFs
dWUgJm9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICk7Ci0gICAgICAv
Ly8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUg
aXMgbm8gbWVtYmVyIHdpdGggdGhhdCBuYW1lLgotICAgICAgY29uc3QgVmFsdWUgJm9wZXJhdG9y
W10oIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICkgY29uc3Q7Ci0jIGVuZGlmCi0gICAg
ICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFs
dWUgb3RoZXJ3aXNlLgotICAgICAgVmFsdWUgZ2V0KCBjb25zdCBjaGFyICprZXksIAotICAgICAg
ICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0gICAgICAvLy8g
UmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3Ro
ZXJ3aXNlLgotICAgICAgVmFsdWUgZ2V0KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5LAotICAgICAg
ICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0jIGlmZGVmIEpT
T05fVVNFX0NQUFRMCi0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0
IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAgVmFsdWUgZ2V0KCBjb25zdCBD
cHBUTDo6Q29uc3RTdHJpbmcgJmtleSwKLSAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRl
ZmF1bHRWYWx1ZSApIGNvbnN0OwotIyBlbmRpZgotICAgICAgLy8vIFxicmllZiBSZW1vdmUgYW5k
IHJldHVybiB0aGUgbmFtZWQgbWVtYmVyLiAgCi0gICAgICAvLy8KLSAgICAgIC8vLyBEbyBub3Ro
aW5nIGlmIGl0IGRpZCBub3QgZXhpc3QuCi0gICAgICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBW
YWx1ZSwgb3IgbnVsbC4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBu
dWxsVmFsdWUKLSAgICAgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCi0gICAgICBWYWx1
ZSByZW1vdmVNZW1iZXIoIGNvbnN0IGNoYXIqIGtleSApOwotICAgICAgLy8vIFNhbWUgYXMgcmVt
b3ZlTWVtYmVyKGNvbnN0IGNoYXIqKQotICAgICAgVmFsdWUgcmVtb3ZlTWVtYmVyKCBjb25zdCBz
dGQ6OnN0cmluZyAma2V5ICk7Ci0KLSAgICAgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0
IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCi0gICAgICBib29sIGlzTWVtYmVyKCBjb25zdCBjaGFy
ICprZXkgKSBjb25zdDsKLSAgICAgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBh
IG1lbWJlciBuYW1lZCBrZXkuCi0gICAgICBib29sIGlzTWVtYmVyKCBjb25zdCBzdGQ6OnN0cmlu
ZyAma2V5ICkgY29uc3Q7Ci0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0gICAgICAvLy8gUmV0dXJu
IHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgotICAgICAgYm9vbCBp
c01lbWJlciggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXkgKSBjb25zdDsKLSMgZW5kaWYK
LQotICAgICAgLy8vIFxicmllZiBSZXR1cm4gYSBsaXN0IG9mIHRoZSBtZW1iZXIgbmFtZXMuCi0g
ICAgICAvLy8KLSAgICAgIC8vLyBJZiBudWxsLCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KLSAgICAg
IC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBc
cG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUKLSAgICAg
IE1lbWJlcnMgZ2V0TWVtYmVyTmFtZXMoKSBjb25zdDsKKyAgTGFyZ2VzdEludCBhc0xhcmdlc3RJ
bnQoKSBjb25zdDsKKyAgTGFyZ2VzdFVJbnQgYXNMYXJnZXN0VUludCgpIGNvbnN0OworICBmbG9h
dCBhc0Zsb2F0KCkgY29uc3Q7CisgIGRvdWJsZSBhc0RvdWJsZSgpIGNvbnN0OworICBib29sIGFz
Qm9vbCgpIGNvbnN0OworCisgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CisgIGJvb2wgaXNCb29sKCkg
Y29uc3Q7CisgIGJvb2wgaXNJbnQoKSBjb25zdDsKKyAgYm9vbCBpc0ludDY0KCkgY29uc3Q7Cisg
IGJvb2wgaXNVSW50KCkgY29uc3Q7CisgIGJvb2wgaXNVSW50NjQoKSBjb25zdDsKKyAgYm9vbCBp
c0ludGVncmFsKCkgY29uc3Q7CisgIGJvb2wgaXNEb3VibGUoKSBjb25zdDsKKyAgYm9vbCBpc051
bWVyaWMoKSBjb25zdDsKKyAgYm9vbCBpc1N0cmluZygpIGNvbnN0OworICBib29sIGlzQXJyYXko
KSBjb25zdDsKKyAgYm9vbCBpc09iamVjdCgpIGNvbnN0OworCisgIGJvb2wgaXNDb252ZXJ0aWJs
ZVRvKFZhbHVlVHlwZSBvdGhlcikgY29uc3Q7CisKKyAgLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4g
YXJyYXkgb3Igb2JqZWN0CisgIEFycmF5SW5kZXggc2l6ZSgpIGNvbnN0OworCisgIC8vLyBcYnJp
ZWYgUmV0dXJuIHRydWUgaWYgZW1wdHkgYXJyYXksIGVtcHR5IG9iamVjdCwgb3IgbnVsbDsKKyAg
Ly8vIG90aGVyd2lzZSwgZmFsc2UuCisgIGJvb2wgZW1wdHkoKSBjb25zdDsKKworICAvLy8gUmV0
dXJuICFpc051bGwoKQorICBKU09OQ1BQX09QX0VYUExJQ0lUIG9wZXJhdG9yIGJvb2woKSBjb25z
dDsKKworICAvLy8gUmVtb3ZlIGFsbCBvYmplY3QgbWVtYmVycyBhbmQgYXJyYXkgZWxlbWVudHMu
CisgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlLCBvYmplY3RWYWx1ZSwgb3IgbnVsbFZh
bHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCisgIHZvaWQgY2xlYXIoKTsKKwor
ICAvLy8gUmVzaXplIHRoZSBhcnJheSB0byBuZXdTaXplIGVsZW1lbnRzLgorICAvLy8gTmV3IGVs
ZW1lbnRzIGFyZSBpbml0aWFsaXplZCB0byBudWxsLgorICAvLy8gTWF5IG9ubHkgYmUgY2FsbGVk
IG9uIG51bGxWYWx1ZSBvciBhcnJheVZhbHVlLgorICAvLy8gXHByZSB0eXBlKCkgaXMgYXJyYXlW
YWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5cGUoKSBpcyBhcnJheVZhbHVlCisgIHZv
aWQgcmVzaXplKEFycmF5SW5kZXggbmV3U2l6ZSk7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBl
bGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCisgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMg
bGVzcyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUKKyAgLy8vIGluc2Vy
dGVkCisgIC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBpbmRleCsxLgorICAv
Ly8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIg
dG8gZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFr
ZXMgYSBzdHJpbmcuKQorICBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KTsKKwor
ICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KKyAgLy8v
IElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwgdGhlbiBudWxs
IHZhbHVlIGFyZQorICAvLy8gaW5zZXJ0ZWQKKyAgLy8vIGluIHRoZSBhcnJheSBzbyB0aGF0IGl0
cyBzaXplIGlzIGluZGV4KzEuCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVd
JyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMgZnJvbSB0
aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIFZhbHVlJiBvcGVyYXRvcltd
KGludCBpbmRleCk7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2Vk
IGluZGV4ICkKKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5
b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRv
cltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oQXJy
YXlJbmRleCBpbmRleCkgY29uc3Q7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6
ZXJvIGJhc2VkIGluZGV4ICkKKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0n
IHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRo
ZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgY29uc3QgVmFsdWUmIG9wZXJh
dG9yW10oaW50IGluZGV4KSBjb25zdDsKKworICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGF0
IGxlYXN0IGluZGV4KzEgZWxlbWVudHMsIHJldHVybnMgdGhlIGVsZW1lbnQKKyAgLy8vIHZhbHVl
LAorICAvLy8gb3RoZXJ3aXNlIHJldHVybnMgZGVmYXVsdFZhbHVlLgorICBWYWx1ZSBnZXQoQXJy
YXlJbmRleCBpbmRleCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBS
ZXR1cm4gdHJ1ZSBpZiBpbmRleCA8IHNpemUoKS4KKyAgYm9vbCBpc1ZhbGlkSW5kZXgoQXJyYXlJ
bmRleCBpbmRleCkgY29uc3Q7CisgIC8vLyBcYnJpZWYgQXBwZW5kIHZhbHVlIHRvIGFycmF5IGF0
IHRoZSBlbmQuCisgIC8vLworICAvLy8gRXF1aXZhbGVudCB0byBqc29udmFsdWVbanNvbnZhbHVl
LnNpemUoKV0gPSB2YWx1ZTsKKyAgVmFsdWUmIGFwcGVuZChjb25zdCBWYWx1ZSYgdmFsdWUpOwor
ICBWYWx1ZSYgYXBwZW5kKFZhbHVlJiYgdmFsdWUpOworCisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0
IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0
LgorICAvLy8gXG5vdGUgQmVjYXVzZSBvZiBvdXIgaW1wbGVtZW50YXRpb24sIGtleXMgYXJlIGxp
bWl0ZWQgdG8gMl4zMCAtMSBjaGFycy4KKyAgLy8vICBFeGNlZWRpbmcgdGhhdCB3aWxsIGNhdXNl
IGFuIGV4Y2VwdGlvbi4KKyAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KTsKKyAg
Ly8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJl
IGlzIG5vIG1lbWJlciB3aXRoCisgIC8vLyB0aGF0IG5hbWUuCisgIGNvbnN0IFZhbHVlJiBvcGVy
YXRvcltdKGNvbnN0IGNoYXIqIGtleSkgY29uc3Q7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZh
bHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0Lgor
ICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgVmFsdWUmIG9w
ZXJhdG9yW10oY29uc3QgU3RyaW5nJiBrZXkpOworICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1
ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8v
IHRoYXQgbmFtZS4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMu
CisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKKyAg
LyoqIFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwg
bWVtYmVyIGlmIGl0IGRvZXMgbm90CisgICBleGlzdC4KKworICAgKiBJZiB0aGUgb2JqZWN0IGhh
cyBubyBlbnRyeSBmb3IgdGhhdCBuYW1lLCB0aGVuIHRoZSBtZW1iZXIgbmFtZSB1c2VkIHRvCisg
ICBzdG9yZQorICAgKiB0aGUgbmV3IGVudHJ5IGlzIG5vdCBkdXBsaWNhdGVkLgorICAgKiBFeGFt
cGxlIG9mIHVzZToKKyAgICogXGNvZGUKKyAgICogSnNvbjo6VmFsdWUgb2JqZWN0OworICAgKiBz
dGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUiKTsKKyAgICogb2JqZWN0W2NvZGVd
ID0gMTIzNDsKKyAgICogXGVuZGNvZGUKKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0
IFN0YXRpY1N0cmluZyYga2V5KTsKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICAvLy8gQWNjZXNz
IGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2Vz
IG5vdCBleGlzdC4KKyAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5n
JiBrZXkpOworICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51
bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgY29uc3Qg
VmFsdWUmIG9wZXJhdG9yW10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0Owor
I2VuZGlmCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRl
ZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgVmFsdWUgZ2V0
KGNvbnN0IGNoYXIqIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8v
LyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBv
dGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgLy8vIFxub3RlIGtleSBtYXkgY29u
dGFpbiBlbWJlZGRlZCBudWxscy4KKyAgVmFsdWUKKyAgZ2V0KGNvbnN0IGNoYXIqIGJlZ2luLCBj
b25zdCBjaGFyKiBlbmQsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8g
UmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3Ro
ZXJ3aXNlLgorICAvLy8gXG5vdGUgZGVlcCBjb3B5CisgIC8vLyBccGFyYW0ga2V5IG1heSBjb250
YWluIGVtYmVkZGVkIG51bGxzLgorICBWYWx1ZSBnZXQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8v
LyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBv
dGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgVmFsdWUgZ2V0KGNvbnN0IENwcFRM
OjpDb25zdFN0cmluZyYga2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyNl
bmRpZgorICAvLy8gTW9zdCBnZW5lcmFsIGFuZCBlZmZpY2llbnQgdmVyc2lvbiBvZiBpc01lbWJl
cigpY29uc3QsIGdldCgpY29uc3QsCisgIC8vLyBhbmQgb3BlcmF0b3JbXWNvbnN0CisgIC8vLyBc
bm90ZSBBcyBzdGF0ZWQgZWxzZXdoZXJlLCBiZWhhdmlvciBpcyB1bmRlZmluZWQgaWYgKGVuZC1i
ZWdpbikgPj0gMl4zMAorICBWYWx1ZSBjb25zdCogZmluZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hh
ciBjb25zdCogZW5kKSBjb25zdDsKKyAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZl
cnNpb24gb2Ygb2JqZWN0LW11dGF0b3JzLgorICAvLy8gXG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVy
ZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIChlbmQtYmVnaW4pID49IDJeMzAKKyAgLy8vIFxy
ZXR1cm4gbm9uLXplcm8sIGJ1dCBKU09OX0FTU0VSVCBpZiB0aGlzIGlzIG5laXRoZXIgb2JqZWN0
IG5vciBudWxsVmFsdWUuCisgIFZhbHVlKiBkZW1hbmQoY2hhciBjb25zdCogYmVnaW4sIGNoYXIg
Y29uc3QqIGVuZCk7CisgIC8vLyBcYnJpZWYgUmVtb3ZlIGFuZCByZXR1cm4gdGhlIG5hbWVkIG1l
bWJlci4KKyAgLy8vCisgIC8vLyBEbyBub3RoaW5nIGlmIGl0IGRpZCBub3QgZXhpc3QuCisgIC8v
LyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5
cGUoKSBpcyB1bmNoYW5nZWQKKyAgdm9pZCByZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5KTsK
KyAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqKQorICAvLy8gXHBhcmFtIGtl
eSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgdm9pZCByZW1vdmVNZW1iZXIoY29uc3Qg
U3RyaW5nJiBrZXkpOworICAvLy8gU2FtZSBhcyByZW1vdmVNZW1iZXIoY29uc3QgY2hhciogYmVn
aW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpLAorICAvLy8gYnV0ICdrZXknIGlz
IG51bGwtdGVybWluYXRlZC4KKyAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBW
YWx1ZSogcmVtb3ZlZCk7CisgIC8qKiBcYnJpZWYgUmVtb3ZlIHRoZSBuYW1lZCBtYXAgbWVtYmVy
LgorCisgICAgICBVcGRhdGUgJ3JlbW92ZWQnIGlmZiByZW1vdmVkLgorICAgICAgXHBhcmFtIGtl
eSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgICAgIFxyZXR1cm4gdHJ1ZSBpZmYgcmVt
b3ZlZCAobm8gZXhjZXB0aW9ucykKKyAgKi8KKyAgYm9vbCByZW1vdmVNZW1iZXIoU3RyaW5nIGNv
bnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKTsKKyAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKFN0
cmluZyBjb25zdCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKKyAgYm9vbCByZW1vdmVNZW1iZXIoY29u
c3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpOworICAvKiog
XGJyaWVmIFJlbW92ZSB0aGUgaW5kZXhlZCBhcnJheSBlbGVtZW50LgorCisgICAgICBPKG4pIGV4
cGVuc2l2ZSBvcGVyYXRpb25zLgorICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4K
KyAgICAgIFxyZXR1cm4gdHJ1ZSBpZiByZW1vdmVkIChubyBleGNlcHRpb25zKQorICAqLworICBi
b29sIHJlbW92ZUluZGV4KEFycmF5SW5kZXggaW5kZXgsIFZhbHVlKiByZW1vdmVkKTsKKworICAv
Ly8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgorICAv
Ly8gXG5vdGUgJ2tleScgbXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCisgIGJvb2wgaXNNZW1iZXIo
Y29uc3QgY2hhcioga2V5KSBjb25zdDsKKyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3Qg
aGFzIGEgbWVtYmVyIG5hbWVkIGtleS4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1i
ZWRkZWQgbnVsbHMuCisgIGJvb2wgaXNNZW1iZXIoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0Owor
ICAvLy8gU2FtZSBhcyBpc01lbWJlcihTdHJpbmcgY29uc3QmIGtleSljb25zdAorICBib29sIGlz
TWVtYmVyKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpIGNvbnN0OworI2lmZGVm
IEpTT05fVVNFX0NQUFRMCisgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1l
bWJlciBuYW1lZCBrZXkuCisgIGJvb2wgaXNNZW1iZXIoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5n
JiBrZXkpIGNvbnN0OworI2VuZGlmCiAKLS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotLy8gICAg
ICBFbnVtTWVtYmVyTmFtZXMgZW51bU1lbWJlck5hbWVzKCkgY29uc3Q7Ci0vLyAgICAgIEVudW1W
YWx1ZXMgZW51bVZhbHVlcygpIGNvbnN0OwotLy8jIGVuZGlmCisgIC8vLyBcYnJpZWYgUmV0dXJu
IGEgbGlzdCBvZiB0aGUgbWVtYmVyIG5hbWVzLgorICAvLy8KKyAgLy8vIElmIG51bGwsIHJldHVy
biBhbiBlbXB0eSBsaXN0LgorICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVs
bFZhbHVlCisgIC8vLyBccG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBu
dWxsVmFsdWUKKyAgTWVtYmVycyBnZXRNZW1iZXJOYW1lcygpIGNvbnN0OworCisgIC8vIyBpZmRl
ZiBKU09OX1VTRV9DUFBUTAorICAvLyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFt
ZXMoKSBjb25zdDsKKyAgLy8gICAgICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25zdDsKKyAg
Ly8jIGVuZGlmCisKKyAgLy8vIFxkZXByZWNhdGVkIEFsd2F5cyBwYXNzIGxlbi4KKyAgSlNPTkNQ
UF9ERVBSRUNBVEVEKCJVc2Ugc2V0Q29tbWVudChTdHJpbmcgY29uc3QmKSBpbnN0ZWFkLiIpCisg
IHZvaWQgc2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCkgeworICAgIHNldENvbW1lbnQoU3RyaW5nKGNvbW1lbnQsIHN0cmxlbihjb21tZW50
KSksIHBsYWNlbWVudCk7CisgIH0KKyAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyog
Li4uICovCisgIHZvaWQgc2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50LCBzaXplX3QgbGVu
LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICAgIHNldENvbW1lbnQoU3RyaW5nKGNv
bW1lbnQsIGxlbiksIHBsYWNlbWVudCk7CisgIH0KKyAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8u
Li4gb3IgLyogLi4uICovCisgIHZvaWQgc2V0Q29tbWVudChTdHJpbmcgY29tbWVudCwgQ29tbWVu
dFBsYWNlbWVudCBwbGFjZW1lbnQpOworICBib29sIGhhc0NvbW1lbnQoQ29tbWVudFBsYWNlbWVu
dCBwbGFjZW1lbnQpIGNvbnN0OworICAvLy8gSW5jbHVkZSBkZWxpbWl0ZXJzIGFuZCBlbWJlZGRl
ZCBuZXdsaW5lcy4KKyAgU3RyaW5nIGdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQpIGNvbnN0OworCisgIFN0cmluZyB0b1N0eWxlZFN0cmluZygpIGNvbnN0OworCisgIGNvbnN0
X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3Q7CisgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0Owor
CisgIGl0ZXJhdG9yIGJlZ2luKCk7CisgIGl0ZXJhdG9yIGVuZCgpOworCisgIC8vIEFjY2Vzc29y
cyBmb3IgdGhlIFtzdGFydCwgbGltaXQpIHJhbmdlIG9mIGJ5dGVzIHdpdGhpbiB0aGUgSlNPTiB0
ZXh0IGZyb20KKyAgLy8gd2hpY2ggdGhpcyB2YWx1ZSB3YXMgcGFyc2VkLCBpZiBhbnkuCisgIHZv
aWQgc2V0T2Zmc2V0U3RhcnQocHRyZGlmZl90IHN0YXJ0KTsKKyAgdm9pZCBzZXRPZmZzZXRMaW1p
dChwdHJkaWZmX3QgbGltaXQpOworICBwdHJkaWZmX3QgZ2V0T2Zmc2V0U3RhcnQoKSBjb25zdDsK
KyAgcHRyZGlmZl90IGdldE9mZnNldExpbWl0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgIHZvaWQg
c2V0VHlwZShWYWx1ZVR5cGUgdikgeworICAgIGJpdHNfLnZhbHVlX3R5cGVfID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4odik7CisgIH0KKyAgYm9vbCBpc0FsbG9jYXRlZCgpIGNvbnN0IHsg
cmV0dXJuIGJpdHNfLmFsbG9jYXRlZF87IH0KKyAgdm9pZCBzZXRJc0FsbG9jYXRlZChib29sIHYp
IHsgYml0c18uYWxsb2NhdGVkXyA9IHY7IH0KKworICB2b2lkIGluaXRCYXNpYyhWYWx1ZVR5cGUg
dHlwZSwgYm9vbCBhbGxvY2F0ZWQgPSBmYWxzZSk7CisgIHZvaWQgZHVwUGF5bG9hZChjb25zdCBW
YWx1ZSYgb3RoZXIpOworICB2b2lkIHJlbGVhc2VQYXlsb2FkKCk7CisgIHZvaWQgZHVwTWV0YShj
b25zdCBWYWx1ZSYgb3RoZXIpOworCisgIFZhbHVlJiByZXNvbHZlUmVmZXJlbmNlKGNvbnN0IGNo
YXIqIGtleSk7CisgIFZhbHVlJiByZXNvbHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSwgY29u
c3QgY2hhciogZW5kKTsKKworICAvLyBzdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0KKyAgLy97
CisgIC8vICAgdHlwZWRlZiBjb25zdCBjaGFyICpyZXN1bHRfdHlwZTsKKyAgLy8gICBjb25zdCBj
aGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0CisgIC8vICAgewor
ICAvLyAgICAgIHJldHVybiBuYW1lLmNfc3RyKCk7CisgIC8vICAgfQorICAvL307CisKKyAgdW5p
b24gVmFsdWVIb2xkZXIgeworICAgIExhcmdlc3RJbnQgaW50XzsKKyAgICBMYXJnZXN0VUludCB1
aW50XzsKKyAgICBkb3VibGUgcmVhbF87CisgICAgYm9vbCBib29sXzsKKyAgICBjaGFyKiBzdHJp
bmdfOyAvLyBpZiBhbGxvY2F0ZWRfLCBwdHIgdG8geyB1bnNpZ25lZCwgY2hhcltdIH0uCisgICAg
T2JqZWN0VmFsdWVzKiBtYXBfOworICB9IHZhbHVlXzsKKworICBzdHJ1Y3QgeworICAgIC8vIFJl
YWxseSBhIFZhbHVlVHlwZSwgYnV0IHR5cGVzIHNob3VsZCBhZ3JlZSBmb3IgYml0ZmllbGQgcGFj
a2luZy4KKyAgICB1bnNpZ25lZCBpbnQgdmFsdWVfdHlwZV8gOiA4OworICAgIC8vIFVubGVzcyBh
bGxvY2F0ZWRfLCBzdHJpbmdfIG11c3QgYmUgbnVsbC10ZXJtaW5hdGVkLgorICAgIHVuc2lnbmVk
IGludCBhbGxvY2F0ZWRfIDogMTsKKyAgfSBiaXRzXzsKKworICBjbGFzcyBDb21tZW50cyB7Cisg
IHB1YmxpYzoKKyAgICBDb21tZW50cygpID0gZGVmYXVsdDsKKyAgICBDb21tZW50cyhjb25zdCBD
b21tZW50cyYgdGhhdCk7CisgICAgQ29tbWVudHMoQ29tbWVudHMmJiB0aGF0KTsKKyAgICBDb21t
ZW50cyYgb3BlcmF0b3I9KGNvbnN0IENvbW1lbnRzJiB0aGF0KTsKKyAgICBDb21tZW50cyYgb3Bl
cmF0b3I9KENvbW1lbnRzJiYgdGhhdCk7CisgICAgYm9vbCBoYXMoQ29tbWVudFBsYWNlbWVudCBz
bG90KSBjb25zdDsKKyAgICBTdHJpbmcgZ2V0KENvbW1lbnRQbGFjZW1lbnQgc2xvdCkgY29uc3Q7
CisgICAgdm9pZCBzZXQoQ29tbWVudFBsYWNlbWVudCBzbG90LCBTdHJpbmcgcyk7CisKKyAgcHJp
dmF0ZToKKyAgICB1c2luZyBBcnJheSA9IHN0ZDo6YXJyYXk8U3RyaW5nLCBudW1iZXJPZkNvbW1l
bnRQbGFjZW1lbnQ+OworICAgIHN0ZDo6dW5pcXVlX3B0cjxBcnJheT4gcHRyXzsKKyAgfTsKKyAg
Q29tbWVudHMgY29tbWVudHNfOworCisgIC8vIFtzdGFydCwgbGltaXQpIGJ5dGUgb2Zmc2V0cyBp
biB0aGUgc291cmNlIEpTT04gdGV4dCBmcm9tIHdoaWNoIHRoaXMgVmFsdWUKKyAgLy8gd2FzIGV4
dHJhY3RlZC4KKyAgcHRyZGlmZl90IHN0YXJ0XzsKKyAgcHRyZGlmZl90IGxpbWl0XzsKK307CiAK
LSAgICAgIC8vLyBDb21tZW50cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAqLwotICAgICAgdm9p
ZCBzZXRDb21tZW50KCBjb25zdCBjaGFyICpjb21tZW50LAotICAgICAgICAgICAgICAgICAgICAg
ICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApOwotICAgICAgLy8vIENvbW1lbnRzIG11c3Qg
YmUgLy8uLi4gb3IgLyogLi4uICovCi0gICAgICB2b2lkIHNldENvbW1lbnQoIGNvbnN0IHN0ZDo6
c3RyaW5nICZjb21tZW50LAotICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCApOwotICAgICAgYm9vbCBoYXNDb21tZW50KCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCApIGNvbnN0OwotICAgICAgLy8vIEluY2x1ZGUgZGVsaW1pdGVycyBhbmQgZW1iZWRk
ZWQgbmV3bGluZXMuCi0gICAgICBzdGQ6OnN0cmluZyBnZXRDb21tZW50KCBDb21tZW50UGxhY2Vt
ZW50IHBsYWNlbWVudCApIGNvbnN0OwotCi0gICAgICBzdGQ6OnN0cmluZyB0b1N0eWxlZFN0cmlu
ZygpIGNvbnN0OwotCi0gICAgICBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0OwotICAgICAg
Y29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7Ci0KLSAgICAgIGl0ZXJhdG9yIGJlZ2luKCk7Ci0g
ICAgICBpdGVyYXRvciBlbmQoKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIFZhbHVlICZyZXNvbHZl
UmVmZXJlbmNlKCBjb25zdCBjaGFyICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgaXNTdGF0aWMgKTsKLQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9N
QVAKLSAgICAgIGlubGluZSBib29sIGlzSXRlbUF2YWlsYWJsZSgpIGNvbnN0Ci0gICAgICB7Ci0g
ICAgICAgICByZXR1cm4gaXRlbUlzVXNlZF8gPT0gMDsKLSAgICAgIH0KLQotICAgICAgaW5saW5l
IHZvaWQgc2V0SXRlbVVzZWQoIGJvb2wgaXNVc2VkID0gdHJ1ZSApCi0gICAgICB7Ci0gICAgICAg
ICBpdGVtSXNVc2VkXyA9IGlzVXNlZCA/IDEgOiAwOwotICAgICAgfQotCi0gICAgICBpbmxpbmUg
Ym9vbCBpc01lbWJlck5hbWVTdGF0aWMoKSBjb25zdAotICAgICAgewotICAgICAgICAgcmV0dXJu
IG1lbWJlck5hbWVJc1N0YXRpY18gPT0gMDsKLSAgICAgIH0KLQotICAgICAgaW5saW5lIHZvaWQg
c2V0TWVtYmVyTmFtZUlzU3RhdGljKCBib29sIGlzU3RhdGljICkKLSAgICAgIHsKLSAgICAgICAg
IG1lbWJlck5hbWVJc1N0YXRpY18gPSBpc1N0YXRpYyA/IDEgOiAwOwotICAgICAgfQotIyBlbmRp
ZiAvLyAjIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotCi0gICBwcml2YXRlOgot
ICAgICAgc3RydWN0IENvbW1lbnRJbmZvCi0gICAgICB7Ci0gICAgICAgICBDb21tZW50SW5mbygp
OwotICAgICAgICAgfkNvbW1lbnRJbmZvKCk7Ci0KLSAgICAgICAgIHZvaWQgc2V0Q29tbWVudCgg
Y29uc3QgY2hhciAqdGV4dCApOwotCi0gICAgICAgICBjaGFyICpjb21tZW50XzsKLSAgICAgIH07
Ci0KLSAgICAgIC8vc3RydWN0IE1lbWJlck5hbWVzVHJhbnNmb3JtCi0gICAgICAvL3sKLSAgICAg
IC8vICAgdHlwZWRlZiBjb25zdCBjaGFyICpyZXN1bHRfdHlwZTsKLSAgICAgIC8vICAgY29uc3Qg
Y2hhciAqb3BlcmF0b3IoKSggY29uc3QgQ1pTdHJpbmcgJm5hbWUgKSBjb25zdAotICAgICAgLy8g
ICB7Ci0gICAgICAvLyAgICAgIHJldHVybiBuYW1lLmNfc3RyKCk7Ci0gICAgICAvLyAgIH0KLSAg
ICAgIC8vfTsKLQotICAgICAgdW5pb24gVmFsdWVIb2xkZXIKLSAgICAgIHsKLSAgICAgICAgIExh
cmdlc3RJbnQgaW50XzsKLSAgICAgICAgIExhcmdlc3RVSW50IHVpbnRfOwotICAgICAgICAgZG91
YmxlIHJlYWxfOwotICAgICAgICAgYm9vbCBib29sXzsKLSAgICAgICAgIGNoYXIgKnN0cmluZ187
Ci0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgICAgVmFsdWVJbnRl
cm5hbEFycmF5ICphcnJheV87Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwICptYXBfOwotI2Vs
c2UKLSAgICAgICAgIE9iamVjdFZhbHVlcyAqbWFwXzsKLSMgZW5kaWYKLSAgICAgIH0gdmFsdWVf
OwotICAgICAgVmFsdWVUeXBlIHR5cGVfIDogODsKLSAgICAgIGludCBhbGxvY2F0ZWRfIDogMTsg
ICAgIC8vIE5vdGVzOiBpZiBkZWNsYXJlZCBhcyBib29sLCBiaXRmaWVsZCBpcyB1c2VsZXNzLgot
IyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIHVuc2lnbmVkIGludCBp
dGVtSXNVc2VkXyA6IDE7ICAgICAgLy8gdXNlZCBieSB0aGUgVmFsdWVJbnRlcm5hbE1hcCBjb250
YWluZXIuCi0gICAgICBpbnQgbWVtYmVyTmFtZUlzU3RhdGljXyA6IDE7ICAgICAgIC8vIHVzZWQg
YnkgdGhlIFZhbHVlSW50ZXJuYWxNYXAgY29udGFpbmVyLgotIyBlbmRpZgotICAgICAgQ29tbWVu
dEluZm8gKmNvbW1lbnRzXzsKLSAgIH07Ci0KLQotICAgLyoqIFxicmllZiBFeHBlcmltZW50YWwg
YW5kIHVudGVzdGVkOiByZXByZXNlbnRzIGFuIGVsZW1lbnQgb2YgdGhlICJwYXRoIiB0byBhY2Nl
c3MgYSBub2RlLgotICAgICovCi0gICBjbGFzcyBQYXRoQXJndW1lbnQKLSAgIHsKLSAgIHB1Ymxp
YzoKLSAgICAgIGZyaWVuZCBjbGFzcyBQYXRoOwotCi0gICAgICBQYXRoQXJndW1lbnQoKTsKLSAg
ICAgIFBhdGhBcmd1bWVudCggQXJyYXlJbmRleCBpbmRleCApOwotICAgICAgUGF0aEFyZ3VtZW50
KCBjb25zdCBjaGFyICprZXkgKTsKLSAgICAgIFBhdGhBcmd1bWVudCggY29uc3Qgc3RkOjpzdHJp
bmcgJmtleSApOwotCi0gICBwcml2YXRlOgotICAgICAgZW51bSBLaW5kCi0gICAgICB7Ci0gICAg
ICAgICBraW5kTm9uZSA9IDAsCi0gICAgICAgICBraW5kSW5kZXgsCi0gICAgICAgICBraW5kS2V5
Ci0gICAgICB9OwotICAgICAgc3RkOjpzdHJpbmcga2V5XzsKLSAgICAgIEFycmF5SW5kZXggaW5k
ZXhfOwotICAgICAgS2luZCBraW5kXzsKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgRXhwZXJpbWVu
dGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBhICJwYXRoIiB0byBhY2Nlc3MgYSBub2RlLgot
ICAgICoKLSAgICAqIFN5bnRheDoKLSAgICAqIC0gIi4iID0+IHJvb3Qgbm9kZQotICAgICogLSAi
LltuXSIgPT4gZWxlbWVudHMgYXQgaW5kZXggJ24nIG9mIHJvb3Qgbm9kZSAoYW4gYXJyYXkgdmFs
dWUpCi0gICAgKiAtICIubmFtZSIgPT4gbWVtYmVyIG5hbWVkICduYW1lJyBvZiByb290IG5vZGUg
KGFuIG9iamVjdCB2YWx1ZSkKLSAgICAqIC0gIi5uYW1lMS5uYW1lMi5uYW1lMyIKLSAgICAqIC0g
Ii5bMF1bMV1bMl0ubmFtZTFbM10iCi0gICAgKiAtICIuJSIgPT4gbWVtYmVyIG5hbWUgaXMgcHJv
dmlkZWQgYXMgcGFyYW1ldGVyCi0gICAgKiAtICIuWyVdIiA9PiBpbmRleCBpcyBwcm92aWVkIGFz
IHBhcmFtZXRlcgotICAgICovCi0gICBjbGFzcyBQYXRoCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAg
ICBQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhB
cmd1bWVudCAmYTEgPSBQYXRoQXJndW1lbnQoKSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1
bWVudCAmYTIgPSBQYXRoQXJndW1lbnQoKSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVu
dCAmYTMgPSBQYXRoQXJndW1lbnQoKSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAm
YTQgPSBQYXRoQXJndW1lbnQoKSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTUg
PSBQYXRoQXJndW1lbnQoKSApOwotCi0gICAgICBjb25zdCBWYWx1ZSAmcmVzb2x2ZSggY29uc3Qg
VmFsdWUgJnJvb3QgKSBjb25zdDsKLSAgICAgIFZhbHVlIHJlc29sdmUoIGNvbnN0IFZhbHVlICZy
b290LCAKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBj
b25zdDsKLSAgICAgIC8vLyBDcmVhdGVzIHRoZSAicGF0aCIgdG8gYWNjZXNzIHRoZSBzcGVjaWZp
ZWQgbm9kZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSBvbiB0aGUgbm9kZS4KLSAgICAgIFZhbHVl
ICZtYWtlKCBWYWx1ZSAmcm9vdCApIGNvbnN0OwotCi0gICBwcml2YXRlOgotICAgICAgdHlwZWRl
ZiBzdGQ6OnZlY3Rvcjxjb25zdCBQYXRoQXJndW1lbnQgKj4gSW5BcmdzOwotICAgICAgdHlwZWRl
ZiBzdGQ6OnZlY3RvcjxQYXRoQXJndW1lbnQ+IEFyZ3M7Ci0KLSAgICAgIHZvaWQgbWFrZVBhdGgo
IGNvbnN0IHN0ZDo6c3RyaW5nICZwYXRoLAotICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5B
cmdzICZpbiApOwotICAgICAgdm9pZCBhZGRQYXRoSW5BcmcoIGNvbnN0IHN0ZDo6c3RyaW5nICZw
YXRoLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yICZpdEluQXJnLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBQYXRoQXJndW1lbnQ6OktpbmQga2luZCApOwotICAgICAg
dm9pZCBpbnZhbGlkUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGxvY2F0aW9uICk7Ci0KLSAgICAgIEFyZ3MgYXJnc187Ci0gICB9Owot
Ci0KLQotI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLyoqIFxicmllZiBB
bGxvY2F0b3IgdG8gY3VzdG9taXplIFZhbHVlIGludGVybmFsIG1hcC4KLSAgICAqIEJlbG93IGlz
IGFuIGV4YW1wbGUgb2YgYSBzaW1wbGUgaW1wbGVtZW50YXRpb24gKGRlZmF1bHQgaW1wbGVtZW50
YXRpb24gYWN0dWFsbHkKLSAgICAqIHVzZSBtZW1vcnkgcG9vbCBmb3Igc3BlZWQpLgotICAgICog
XGNvZGUKLSAgICAgIGNsYXNzIERlZmF1bHRWYWx1ZU1hcEFsbG9jYXRvciA6IHB1YmxpYyBWYWx1
ZU1hcEFsbG9jYXRvcgotICAgICAgewotICAgICAgcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20g
VmFsdWVNYXBBbGxvY2F0b3IKLSAgICAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3
TWFwKCkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbE1h
cCgpOwotICAgICAgICAgfQotCi0gICAgICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5l
d01hcENvcHkoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICkKLSAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbE1hcCggb3RoZXIgKTsKLSAgICAgICAg
IH0KLQotICAgICAgICAgdmlydHVhbCB2b2lkIGRlc3RydWN0TWFwKCBWYWx1ZUludGVybmFsTWFw
ICptYXAgKQotICAgICAgICAgewotICAgICAgICAgICAgZGVsZXRlIG1hcDsKLSAgICAgICAgIH0K
LQotICAgICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTGluayAqYWxsb2NhdGVNYXBCdWNrZXRz
KCB1bnNpZ25lZCBpbnQgc2l6ZSApCi0gICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3
IFZhbHVlSW50ZXJuYWxMaW5rW3NpemVdOwotICAgICAgICAgfQotCi0gICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVsZWFzZU1hcEJ1Y2tldHMoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rcyApCi0gICAg
ICAgICB7Ci0gICAgICAgICAgICBkZWxldGUgW10gbGlua3M7Ci0gICAgICAgICB9Ci0KLSAgICAg
ICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFsbG9jYXRlTWFwTGluaygpCi0gICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxMaW5rKCk7Ci0gICAgICAg
ICB9Ci0KLSAgICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwTGluayggVmFsdWVJbnRlcm5h
bExpbmsgKmxpbmsgKQotICAgICAgICAgewotICAgICAgICAgICAgZGVsZXRlIGxpbms7Ci0gICAg
ICAgICB9Ci0gICAgICB9OwotICAgICogXGVuZGNvZGUKLSAgICAqLyAKLSAgIGNsYXNzIEpTT05f
QVBJIFZhbHVlTWFwQWxsb2NhdG9yCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICB2aXJ0dWFsIH5W
YWx1ZU1hcEFsbG9jYXRvcigpOwotICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdN
YXAoKSA9IDA7Ci0gICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcENvcHkoIGNv
bnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICkgPSAwOwotICAgICAgdmlydHVhbCB2b2lkIGRl
c3RydWN0TWFwKCBWYWx1ZUludGVybmFsTWFwICptYXAgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIFZh
bHVlSW50ZXJuYWxMaW5rICphbGxvY2F0ZU1hcEJ1Y2tldHMoIHVuc2lnbmVkIGludCBzaXplICkg
PSAwOwotICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VNYXBCdWNrZXRzKCBWYWx1ZUludGVybmFs
TGluayAqbGlua3MgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxMaW5rICphbGxv
Y2F0ZU1hcExpbmsoKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcExpbmsoIFZh
bHVlSW50ZXJuYWxMaW5rICpsaW5rICkgPSAwOwotICAgfTsKLQotICAgLyoqIFxicmllZiBWYWx1
ZUludGVybmFsTWFwIGhhc2gtbWFwIGJ1Y2tldCBjaGFpbiBsaW5rIChmb3IgaW50ZXJuYWwgdXNl
IG9ubHkpLgotICAgICogXGludGVybmFsIHByZXZpb3VzXyAmIG5leHRfIGFsbG93cyBmb3IgYmlk
aXJlY3Rpb25hbCB0cmF2ZXJzYWwuCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFZhbHVlSW50
ZXJuYWxMaW5rCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICBlbnVtIHsgaXRlbVBlckxpbmsgPSA2
IH07ICAvLyBzaXplb2YoVmFsdWVJbnRlcm5hbExpbmspID0gMTI4IG9uIDMyIGJpdHMgYXJjaGl0
ZWN0dXJlLgotICAgICAgZW51bSBJbnRlcm5hbEZsYWdzIHsgCi0gICAgICAgICBmbGFnQXZhaWxh
YmxlID0gMCwKLSAgICAgICAgIGZsYWdVc2VkID0gMQotICAgICAgfTsKLQotICAgICAgVmFsdWVJ
bnRlcm5hbExpbmsoKTsKLQotICAgICAgflZhbHVlSW50ZXJuYWxMaW5rKCk7Ci0KLSAgICAgIFZh
bHVlIGl0ZW1zX1tpdGVtUGVyTGlua107Ci0gICAgICBjaGFyICprZXlzX1tpdGVtUGVyTGlua107
Ci0gICAgICBWYWx1ZUludGVybmFsTGluayAqcHJldmlvdXNfOwotICAgICAgVmFsdWVJbnRlcm5h
bExpbmsgKm5leHRfOwotICAgfTsKLQotCi0gICAvKiogXGJyaWVmIEEgbGlua2VkIHBhZ2UgYmFz
ZWQgaGFzaC10YWJsZSBpbXBsZW1lbnRhdGlvbiB1c2VkIGludGVybmFsbHkgYnkgVmFsdWUuCi0g
ICAgKiBcaW50ZXJuYWwgVmFsdWVJbnRlcm5hbE1hcCBpcyBhIHRyYWRpb25hbCBidWNrZXQgYmFz
ZWQgaGFzaC10YWJsZSwgd2l0aCBhIGxpbmtlZAotICAgICogbGlzdCBpbiBlYWNoIGJ1Y2tldCB0
byBoYW5kbGUgY29sbGlzaW9uLiBUaGVyZSBpcyBhbiBhZGRpb25hbCB0d2lzdCBpbiB0aGF0Ci0g
ICAgKiBlYWNoIG5vZGUgb2YgdGhlIGNvbGxpc2lvbiBsaW5rZWQgbGlzdCBpcyBhIHBhZ2UgY29u
dGFpbmluZyBhIGZpeGVkIGFtb3VudCBvZgotICAgICogdmFsdWUuIFRoaXMgcHJvdmlkZXMgYSBi
ZXR0ZXIgY29tcHJvbWlzZSBiZXR3ZWVuIG1lbW9yeSB1c2FnZSBhbmQgc3BlZWQuCi0gICAgKiAK
LSAgICAqIEVhY2ggYnVja2V0IGlzIG1hZGUgdXAgb2YgYSBjaGFpbmVkIGxpc3Qgb2YgVmFsdWVJ
bnRlcm5hbExpbmsuIFRoZSBsYXN0Ci0gICAgKiBsaW5rIG9mIGEgZ2l2ZW4gYnVja2V0IGNhbiBi
ZSBmb3VuZCBpbiB0aGUgJ3ByZXZpb3VzXycgZmllbGQgb2YgdGhlIGZvbGxvd2luZyBidWNrZXQu
Ci0gICAgKiBUaGUgbGFzdCBsaW5rIG9mIHRoZSBsYXN0IGJ1Y2tldCBpcyBzdG9yZWQgaW4gdGFp
bExpbmtfIGFzIGl0IGhhcyBubyBmb2xsb3dpbmcgYnVja2V0LgotICAgICogT25seSB0aGUgbGFz
dCBsaW5rIG9mIGEgYnVja2V0IG1heSBjb250YWlucyAnYXZhaWxhYmxlJyBpdGVtLiBUaGUgbGFz
dCBsaW5rIGFsd2F5cwotICAgICogY29udGFpbnMgYXQgbGVhc3Qgb25lIGVsZW1lbnQgdW5sZXNz
IGlzIGl0IHRoZSBidWNrZXQgb25lIHZlcnkgZmlyc3QgbGluay4KLSAgICAqLwotICAgY2xhc3Mg
SlNPTl9BUEkgVmFsdWVJbnRlcm5hbE1hcAotICAgewotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVl
SXRlcmF0b3JCYXNlOwotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwotICAgcHVibGljOgotICAg
ICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgSGFzaEtleTsKLSAgICAgIHR5cGVkZWYgdW5zaWduZWQg
aW50IEJ1Y2tldEluZGV4OwotCi0jIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVO
VEFUSU9OCi0gICAgICBzdHJ1Y3QgSXRlcmF0b3JTdGF0ZQotICAgICAgewotICAgICAgICAgSXRl
cmF0b3JTdGF0ZSgpIAotICAgICAgICAgICAgOiBtYXBfKDApCi0gICAgICAgICAgICAsIGxpbmtf
KDApCi0gICAgICAgICAgICAsIGl0ZW1JbmRleF8oMCkKLSAgICAgICAgICAgICwgYnVja2V0SW5k
ZXhfKDApIAotICAgICAgICAgewotICAgICAgICAgfQotICAgICAgICAgVmFsdWVJbnRlcm5hbE1h
cCAqbWFwXzsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rXzsKLSAgICAgICAgIEJ1
Y2tldEluZGV4IGl0ZW1JbmRleF87Ci0gICAgICAgICBCdWNrZXRJbmRleCBidWNrZXRJbmRleF87
Ci0gICAgICB9OwotIyBlbmRpZiAvLyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1F
TlRBVElPTgotCi0gICAgICBWYWx1ZUludGVybmFsTWFwKCk7Ci0gICAgICBWYWx1ZUludGVybmFs
TWFwKCBjb25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApOwotICAgICAgVmFsdWVJbnRlcm5h
bE1hcCAmb3BlcmF0b3IgPSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKTsKLSAgICAg
IH5WYWx1ZUludGVybmFsTWFwKCk7Ci0KLSAgICAgIHZvaWQgc3dhcCggVmFsdWVJbnRlcm5hbE1h
cCAmb3RoZXIgKTsKLQotICAgICAgQnVja2V0SW5kZXggc2l6ZSgpIGNvbnN0OwotCi0gICAgICB2
b2lkIGNsZWFyKCk7Ci0KLSAgICAgIGJvb2wgcmVzZXJ2ZURlbHRhKCBCdWNrZXRJbmRleCBncm93
dGggKTsKLQotICAgICAgYm9vbCByZXNlcnZlKCBCdWNrZXRJbmRleCBuZXdJdGVtQ291bnQgKTsK
LQotICAgICAgY29uc3QgVmFsdWUgKmZpbmQoIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0OwotCi0g
ICAgICBWYWx1ZSAqZmluZCggY29uc3QgY2hhciAqa2V5ICk7Ci0KLSAgICAgIFZhbHVlICZyZXNv
bHZlUmVmZXJlbmNlKCBjb25zdCBjaGFyICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgaXNTdGF0aWMgKTsKLQotICAgICAgdm9pZCByZW1vdmUoIGNvbnN0IGNoYXIg
KmtleSApOwotCi0gICAgICB2b2lkIGRvQWN0dWFsUmVtb3ZlKCBWYWx1ZUludGVybmFsTGluayAq
bGluaywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWNrZXRJbmRleCBpbmRleCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJ1Y2tldEluZGV4IGJ1Y2tldEluZGV4ICk7Ci0KLSAg
ICAgIFZhbHVlSW50ZXJuYWxMaW5rIComZ2V0TGFzdExpbmtJbkJ1Y2tldCggQnVja2V0SW5kZXgg
YnVja2V0SW5kZXggKTsKLQotICAgICAgVmFsdWUgJnNldE5ld0l0ZW0oIGNvbnN0IGNoYXIgKmtl
eSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1N0YXRpYywgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmssIAotICAgICAgICAgICAgICAg
ICAgICAgICAgIEJ1Y2tldEluZGV4IGluZGV4ICk7Ci0KLSAgICAgIFZhbHVlICZ1bnNhZmVBZGQo
IGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGlj
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgIEhhc2hLZXkgaGFzaGVkS2V5ICk7Ci0KLSAgICAg
IEhhc2hLZXkgaGFzaCggY29uc3QgY2hhciAqa2V5ICkgY29uc3Q7Ci0KLSAgICAgIGludCBjb21w
YXJlKCBjb25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApIGNvbnN0OwotCi0gICBwcml2YXRl
OgotICAgICAgdm9pZCBtYWtlQmVnaW5JdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQgKSBjb25z
dDsKLSAgICAgIHZvaWQgbWFrZUVuZEl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0
OwotICAgICAgc3RhdGljIGJvb2wgZXF1YWxzKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25z
dCBJdGVyYXRvclN0YXRlICZvdGhlciApOwotICAgICAgc3RhdGljIHZvaWQgaW5jcmVtZW50KCBJ
dGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIHZvaWQgaW5jcmVtZW50QnVj
a2V0KCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIHZvaWQgZGVjcmVt
ZW50KCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KmtleSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICprZXkoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yLCBib29sICZpc1N0YXRp
YyApOwotICAgICAgc3RhdGljIFZhbHVlICZ2YWx1ZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRl
cmF0b3IgKTsKLSAgICAgIHN0YXRpYyBpbnQgZGlzdGFuY2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUg
JngsIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJnkgKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIFZhbHVl
SW50ZXJuYWxMaW5rICpidWNrZXRzXzsKLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICp0YWlsTGlu
a187Ci0gICAgICBCdWNrZXRJbmRleCBidWNrZXRzU2l6ZV87Ci0gICAgICBCdWNrZXRJbmRleCBp
dGVtQ291bnRfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBBIHNpbXBsaWZpZWQgZGVxdWUgaW1w
bGVtZW50YXRpb24gdXNlZCBpbnRlcm5hbGx5IGJ5IFZhbHVlLgotICAgKiBcaW50ZXJuYWwKLSAg
ICogSXQgaXMgYmFzZWQgb24gYSBsaXN0IG9mIGZpeGVkICJwYWdlIiwgZWFjaCBwYWdlIGNvbnRh
aW5zIGEgZml4ZWQgbnVtYmVyIG9mIGl0ZW1zLgotICAgKiBJbnN0ZWFkIG9mIHVzaW5nIGEgbGlu
a2VkLWxpc3QsIGEgYXJyYXkgb2YgcG9pbnRlciBpcyB1c2VkIGZvciBmYXN0IGl0ZW0gbG9vay11
cC4KLSAgICogTG9vay11cCBmb3IgYW4gZWxlbWVudCBpcyBhcyBmb2xsb3c6Ci0gICAqIC0gY29t
cHV0ZSBwYWdlIGluZGV4OiBwYWdlSW5kZXggPSBpdGVtSW5kZXggLyBpdGVtc1BlclBhZ2UKLSAg
ICogLSBsb29rLXVwIGl0ZW0gaW4gcGFnZTogcGFnZXNfW3BhZ2VJbmRleF1baXRlbUluZGV4ICUg
aXRlbXNQZXJQYWdlXQotICAgKgotICAgKiBJbnNlcnRpb24gaXMgYW1vcnRpemVkIGNvbnN0YW50
IHRpbWUgKG9ubHkgdGhlIGFycmF5IGNvbnRhaW5pbmcgdGhlIGluZGV4IG9mIHBvaW50ZXJzCi0g
ICAqIG5lZWQgdG8gYmUgcmVhbGxvY2F0ZWQgd2hlbiBpdGVtcyBhcmUgYXBwZW5kZWQpLgotICAg
Ki8KLSAgIGNsYXNzIEpTT05fQVBJIFZhbHVlSW50ZXJuYWxBcnJheQotICAgewotICAgICAgZnJp
ZW5kIGNsYXNzIFZhbHVlOwotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwot
ICAgcHVibGljOgotICAgICAgZW51bSB7IGl0ZW1zUGVyUGFnZSA9IDggfTsgICAgLy8gc2hvdWxk
IGJlIGEgcG93ZXIgb2YgMiBmb3IgZmFzdCBkaXZpZGUgYW5kIG1vZHVsby4KLSAgICAgIHR5cGVk
ZWYgVmFsdWU6OkFycmF5SW5kZXggQXJyYXlJbmRleDsKLSAgICAgIHR5cGVkZWYgdW5zaWduZWQg
aW50IFBhZ2VJbmRleDsKLQotIyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRB
VElPTgotICAgICAgc3RydWN0IEl0ZXJhdG9yU3RhdGUgLy8gTXVzdCBiZSBhIFBPRAotICAgICAg
ewotICAgICAgICAgSXRlcmF0b3JTdGF0ZSgpIAotICAgICAgICAgICAgOiBhcnJheV8oMCkKLSAg
ICAgICAgICAgICwgY3VycmVudFBhZ2VJbmRleF8oMCkKLSAgICAgICAgICAgICwgY3VycmVudEl0
ZW1JbmRleF8oMCkgCi0gICAgICAgICB7Ci0gICAgICAgICB9Ci0gICAgICAgICBWYWx1ZUludGVy
bmFsQXJyYXkgKmFycmF5XzsKLSAgICAgICAgIFZhbHVlICoqY3VycmVudFBhZ2VJbmRleF87Ci0g
ICAgICAgICB1bnNpZ25lZCBpbnQgY3VycmVudEl0ZW1JbmRleF87Ci0gICAgICB9OwotIyBlbmRp
ZiAvLyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgotCi0gICAgICBW
YWx1ZUludGVybmFsQXJyYXkoKTsKLSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSggY29uc3QgVmFs
dWVJbnRlcm5hbEFycmF5ICZvdGhlciApOwotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5ICZvcGVy
YXRvciA9KCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICk7Ci0gICAgICB+VmFsdWVJ
bnRlcm5hbEFycmF5KCk7Ci0gICAgICB2b2lkIHN3YXAoIFZhbHVlSW50ZXJuYWxBcnJheSAmb3Ro
ZXIgKTsKLQotICAgICAgdm9pZCBjbGVhcigpOwotICAgICAgdm9pZCByZXNpemUoIEFycmF5SW5k
ZXggbmV3U2l6ZSApOwotCi0gICAgICBWYWx1ZSAmcmVzb2x2ZVJlZmVyZW5jZSggQXJyYXlJbmRl
eCBpbmRleCApOwotCi0gICAgICBWYWx1ZSAqZmluZCggQXJyYXlJbmRleCBpbmRleCApIGNvbnN0
OwotCi0gICAgICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKLQotICAgICAgaW50IGNvbXBhcmUo
IGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKSBjb25zdDsKLQotICAgcHJpdmF0ZToK
LSAgICAgIHN0YXRpYyBib29sIGVxdWFscyggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3Qg
SXRlcmF0b3JTdGF0ZSAmb3RoZXIgKTsKLSAgICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudCggSXRl
cmF0b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyB2b2lkIGRlY3JlbWVudCggSXRl
cmF0b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBWYWx1ZSAmZGVyZWZlcmVuY2Uo
IGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgVmFsdWUgJnVu
c2FmZURlcmVmZXJlbmNlKCBjb25zdCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAg
c3RhdGljIGludCBkaXN0YW5jZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3QgSXRlcmF0
b3JTdGF0ZSAmeSApOwotICAgICAgc3RhdGljIEFycmF5SW5kZXggaW5kZXhPZiggY29uc3QgSXRl
cmF0b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHZvaWQgbWFrZUJlZ2luSXRlcmF0b3IoIEl0
ZXJhdG9yU3RhdGUgJml0ICkgY29uc3Q7Ci0gICAgICB2b2lkIG1ha2VFbmRJdGVyYXRvciggSXRl
cmF0b3JTdGF0ZSAmaXQgKSBjb25zdDsKLSAgICAgIHZvaWQgbWFrZUl0ZXJhdG9yKCBJdGVyYXRv
clN0YXRlICZpdCwgQXJyYXlJbmRleCBpbmRleCApIGNvbnN0OwotCi0gICAgICB2b2lkIG1ha2VJ
bmRleFZhbGlkKCBBcnJheUluZGV4IGluZGV4ICk7Ci0KLSAgICAgIFZhbHVlICoqcGFnZXNfOwot
ICAgICAgQXJyYXlJbmRleCBzaXplXzsKLSAgICAgIFBhZ2VJbmRleCBwYWdlQ291bnRfOwotICAg
fTsKLQotICAgLyoqIFxicmllZiBFeHBlcmltZW50YWw6IGRvIG5vdCB1c2UuIEFsbG9jYXRvciB0
byBjdXN0b21pemUgVmFsdWUgaW50ZXJuYWwgYXJyYXkuCi0gICAgKiBCZWxvdyBpcyBhbiBleGFt
cGxlIG9mIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIChhY3R1YWwgaW1wbGVtZW50YXRpb24gdXNl
Ci0gICAgKiBtZW1vcnkgcG9vbCkuCi0gICAgICBcY29kZQotY2xhc3MgRGVmYXVsdFZhbHVlQXJy
YXlBbGxvY2F0b3IgOiBwdWJsaWMgVmFsdWVBcnJheUFsbG9jYXRvcgotewotcHVibGljOiAvLyBv
dmVycmlkZGVuIGZyb20gVmFsdWVBcnJheUFsbG9jYXRvcgotICAgdmlydHVhbCB+RGVmYXVsdFZh
bHVlQXJyYXlBbGxvY2F0b3IoKQotICAgewotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJu
YWxBcnJheSAqbmV3QXJyYXkoKQotICAgewotICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFs
QXJyYXkoKTsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5
Q29weSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApCi0gICB7Ci0gICAgICByZXR1
cm4gbmV3IFZhbHVlSW50ZXJuYWxBcnJheSggb3RoZXIgKTsKLSAgIH0KLQotICAgdmlydHVhbCB2
b2lkIGRlc3RydWN0KCBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5ICkKLSAgIHsKLSAgICAgIGRl
bGV0ZSBhcnJheTsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlYWxsb2NhdGVBcnJheVBhZ2VJ
bmRleCggVmFsdWUgKiomaW5kZXhlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCAmaW5kZXhDb3VudCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJh
eTo6UGFnZUluZGV4IG1pbk5ld0luZGV4Q291bnQgKQotICAgewotICAgICAgVmFsdWVJbnRlcm5h
bEFycmF5OjpQYWdlSW5kZXggbmV3SW5kZXhDb3VudCA9IChpbmRleENvdW50KjMpLzIgKyAxOwot
ICAgICAgaWYgKCBtaW5OZXdJbmRleENvdW50ID4gbmV3SW5kZXhDb3VudCApCi0gICAgICAgICBu
ZXdJbmRleENvdW50ID0gbWluTmV3SW5kZXhDb3VudDsKLSAgICAgIHZvaWQgKm5ld0luZGV4ZXMg
PSByZWFsbG9jKCBpbmRleGVzLCBzaXplb2YoVmFsdWUqKSAqIG5ld0luZGV4Q291bnQgKTsKLSAg
ICAgIGlmICggIW5ld0luZGV4ZXMgKQotICAgICAgICAgdGhyb3cgc3RkOjpiYWRfYWxsb2MoKTsK
LSAgICAgIGluZGV4Q291bnQgPSBuZXdJbmRleENvdW50OwotICAgICAgaW5kZXhlcyA9IHN0YXRp
Y19jYXN0PFZhbHVlICoqPiggbmV3SW5kZXhlcyApOwotICAgfQotICAgdmlydHVhbCB2b2lkIHJl
bGVhc2VBcnJheVBhZ2VJbmRleCggVmFsdWUgKippbmRleGVzLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IGluZGV4
Q291bnQgKQotICAgewotICAgICAgaWYgKCBpbmRleGVzICkKLSAgICAgICAgIGZyZWUoIGluZGV4
ZXMgKTsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZSAqYWxsb2NhdGVBcnJheVBhZ2UoKQotICAg
ewotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlICo+KCBtYWxsb2MoIHNpemVvZihWYWx1
ZSkgKiBWYWx1ZUludGVybmFsQXJyYXk6Oml0ZW1zUGVyUGFnZSApICk7Ci0gICB9Ci0KLSAgIHZp
cnR1YWwgdm9pZCByZWxlYXNlQXJyYXlQYWdlKCBWYWx1ZSAqdmFsdWUgKQotICAgewotICAgICAg
aWYgKCB2YWx1ZSApCi0gICAgICAgICBmcmVlKCB2YWx1ZSApOwotICAgfQorLyoqIFxicmllZiBF
eHBlcmltZW50YWwgYW5kIHVudGVzdGVkOiByZXByZXNlbnRzIGFuIGVsZW1lbnQgb2YgdGhlICJw
YXRoIiB0bworICogYWNjZXNzIGEgbm9kZS4KKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aEFyZ3Vt
ZW50IHsKK3B1YmxpYzoKKyAgZnJpZW5kIGNsYXNzIFBhdGg7CisKKyAgUGF0aEFyZ3VtZW50KCk7
CisgIFBhdGhBcmd1bWVudChBcnJheUluZGV4IGluZGV4KTsKKyAgUGF0aEFyZ3VtZW50KGNvbnN0
IGNoYXIqIGtleSk7CisgIFBhdGhBcmd1bWVudChjb25zdCBTdHJpbmcmIGtleSk7CisKK3ByaXZh
dGU6CisgIGVudW0gS2luZCB7IGtpbmROb25lID0gMCwga2luZEluZGV4LCBraW5kS2V5IH07Cisg
IFN0cmluZyBrZXlfOworICBBcnJheUluZGV4IGluZGV4X3t9OworICBLaW5kIGtpbmRfe2tpbmRO
b25lfTsKIH07Ci0gICAgICBcZW5kY29kZQotICAgICovIAotICAgY2xhc3MgSlNPTl9BUEkgVmFs
dWVBcnJheUFsbG9jYXRvcgotICAgewotICAgcHVibGljOgotICAgICAgdmlydHVhbCB+VmFsdWVB
cnJheUFsbG9jYXRvcigpOwotICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0Fy
cmF5KCkgPSAwOwotICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5Q29w
eSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApID0gMDsKLSAgICAgIHZpcnR1YWwg
dm9pZCBkZXN0cnVjdEFycmF5KCBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5ICkgPSAwOwotICAg
ICAgLyoqIFxicmllZiBSZWFsbG9jYXRlIGFycmF5IHBhZ2UgaW5kZXguCi0gICAgICAgKiBSZWFs
bG9jYXRlcyBhbiBhcnJheSBvZiBwb2ludGVyIG9uIGVhY2ggcGFnZS4KLSAgICAgICAqIFxwYXJh
bSBpbmRleGVzIFtpbnB1dF0gcG9pbnRlciBvbiB0aGUgY3VycmVudCBpbmRleC4gTWF5IGJlIFxj
IE5VTEwuCi0gICAgICAgKiAgICAgICAgICAgICAgICBbb3V0cHV0XSBwb2ludGVyIG9uIHRoZSBu
ZXcgaW5kZXggb2YgYXQgbGVhc3QgCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBc
YSBtaW5OZXdJbmRleENvdW50IHBhZ2VzLiAKLSAgICAgICAqIFxwYXJhbSBpbmRleENvdW50IFtp
bnB1dF0gY3VycmVudCBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIGluZGV4LgotICAgICAgICogICAg
ICAgICAgICAgICAgICAgW291dHB1dF0gbnVtYmVyIG9mIHBhZ2UgdGhlIHJlYWxsb2NhdGVkIGlu
ZGV4IGNhbiBoYW5kbGUuCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYiBN
VVNUIGJlID49IFxhIG1pbk5ld0luZGV4Q291bnQuCi0gICAgICAgKiBccGFyYW0gbWluTmV3SW5k
ZXhDb3VudCBNaW5pbXVtIG51bWJlciBvZiBwYWdlIHRoZSBuZXcgaW5kZXggbXVzdCBiZSBhYmxl
IHRvCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGUuCi0gICAgICAgKi8K
LSAgICAgIHZpcnR1YWwgdm9pZCByZWFsbG9jYXRlQXJyYXlQYWdlSW5kZXgoIFZhbHVlICoqJmlu
ZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggJmluZGV4Q291bnQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRl
eCBtaW5OZXdJbmRleENvdW50ICkgPSAwOwotICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VBcnJh
eVBhZ2VJbmRleCggVmFsdWUgKippbmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IGluZGV4Q291bnQg
KSA9IDA7Ci0gICAgICB2aXJ0dWFsIFZhbHVlICphbGxvY2F0ZUFycmF5UGFnZSgpID0gMDsKLSAg
ICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQXJyYXlQYWdlKCBWYWx1ZSAqdmFsdWUgKSA9IDA7Ci0g
ICB9OwotI2VuZGlmIC8vICNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLQotCi0g
ICAvKiogXGJyaWVmIGJhc2UgY2xhc3MgZm9yIFZhbHVlIGl0ZXJhdG9ycy4KLSAgICAqCi0gICAg
Ki8KLSAgIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICB0
eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7Ci0gICAgICB0eXBlZGVmIGludCBkaWZmZXJlbmNl
X3R5cGU7Ci0gICAgICB0eXBlZGVmIFZhbHVlSXRlcmF0b3JCYXNlIFNlbGZUeXBlOwotCi0gICAg
ICBWYWx1ZUl0ZXJhdG9yQmFzZSgpOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9N
QVAKLSAgICAgIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3JCYXNlKCBjb25zdCBWYWx1ZTo6T2JqZWN0
VmFsdWVzOjppdGVyYXRvciAmY3VycmVudCApOwotI2Vsc2UKLSAgICAgIFZhbHVlSXRlcmF0b3JC
YXNlKCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0g
ICAgICBWYWx1ZUl0ZXJhdG9yQmFzZSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JT
dGF0ZSAmc3RhdGUgKTsKLSNlbmRpZgogCi0gICAgICBib29sIG9wZXJhdG9yID09KCBjb25zdCBT
ZWxmVHlwZSAmb3RoZXIgKSBjb25zdAotICAgICAgewotICAgICAgICAgcmV0dXJuIGlzRXF1YWwo
IG90aGVyICk7Ci0gICAgICB9CisvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6
IHJlcHJlc2VudHMgYSAicGF0aCIgdG8gYWNjZXNzIGEgbm9kZS4KKyAqCisgKiBTeW50YXg6Cisg
KiAtICIuIiA9PiByb290IG5vZGUKKyAqIC0gIi5bbl0iID0+IGVsZW1lbnRzIGF0IGluZGV4ICdu
JyBvZiByb290IG5vZGUgKGFuIGFycmF5IHZhbHVlKQorICogLSAiLm5hbWUiID0+IG1lbWJlciBu
YW1lZCAnbmFtZScgb2Ygcm9vdCBub2RlIChhbiBvYmplY3QgdmFsdWUpCisgKiAtICIubmFtZTEu
bmFtZTIubmFtZTMiCisgKiAtICIuWzBdWzFdWzJdLm5hbWUxWzNdIgorICogLSAiLiUiID0+IG1l
bWJlciBuYW1lIGlzIHByb3ZpZGVkIGFzIHBhcmFtZXRlcgorICogLSAiLlslXSIgPT4gaW5kZXgg
aXMgcHJvdmllZCBhcyBwYXJhbWV0ZXIKKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aCB7CitwdWJs
aWM6CisgIFBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVu
dCYgYTEgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEyID0g
UGF0aEFyZ3VtZW50KCksCisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMyA9IFBhdGhBcmd1
bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTQgPSBQYXRoQXJndW1lbnQoKSwK
KyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE1ID0gUGF0aEFyZ3VtZW50KCkpOworCisgIGNv
bnN0IFZhbHVlJiByZXNvbHZlKGNvbnN0IFZhbHVlJiByb290KSBjb25zdDsKKyAgVmFsdWUgcmVz
b2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7
CisgIC8vLyBDcmVhdGVzIHRoZSAicGF0aCIgdG8gYWNjZXNzIHRoZSBzcGVjaWZpZWQgbm9kZSBh
bmQgcmV0dXJucyBhIHJlZmVyZW5jZSBvbgorICAvLy8gdGhlIG5vZGUuCisgIFZhbHVlJiBtYWtl
KFZhbHVlJiByb290KSBjb25zdDsKKworcHJpdmF0ZToKKyAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjxj
b25zdCBQYXRoQXJndW1lbnQqPiBJbkFyZ3M7CisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8UGF0aEFy
Z3VtZW50PiBBcmdzOworCisgIHZvaWQgbWFrZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25z
dCBJbkFyZ3MmIGluKTsKKyAgdm9pZCBhZGRQYXRoSW5BcmcoY29uc3QgU3RyaW5nJiBwYXRoLAor
ICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MmIGluLAorICAgICAgICAgICAgICAgICAg
ICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yJiBpdEluQXJnLAorICAgICAgICAgICAgICAgICAgICBQ
YXRoQXJndW1lbnQ6OktpbmQga2luZCk7CisgIHN0YXRpYyB2b2lkIGludmFsaWRQYXRoKGNvbnN0
IFN0cmluZyYgcGF0aCwgaW50IGxvY2F0aW9uKTsKKworICBBcmdzIGFyZ3NfOworfTsKIAotICAg
ICAgYm9vbCBvcGVyYXRvciAhPSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3QKLSAgICAg
IHsKLSAgICAgICAgIHJldHVybiAhaXNFcXVhbCggb3RoZXIgKTsKLSAgICAgIH0KKy8qKiBcYnJp
ZWYgYmFzZSBjbGFzcyBmb3IgVmFsdWUgaXRlcmF0b3JzLgorICoKKyAqLworY2xhc3MgSlNPTl9B
UEkgVmFsdWVJdGVyYXRvckJhc2UgeworcHVibGljOgorICB0eXBlZGVmIHN0ZDo6YmlkaXJlY3Rp
b25hbF9pdGVyYXRvcl90YWcgaXRlcmF0b3JfY2F0ZWdvcnk7CisgIHR5cGVkZWYgdW5zaWduZWQg
aW50IHNpemVfdDsKKyAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIFZh
bHVlSXRlcmF0b3JCYXNlIFNlbGZUeXBlOwogCi0gICAgICBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0
b3IgLSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJl
dHVybiBjb21wdXRlRGlzdGFuY2UoIG90aGVyICk7Ci0gICAgICB9CisgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIGlzRXF1YWwob3RoZXIpOyB9
CiAKLSAgICAgIC8vLyBSZXR1cm4gZWl0aGVyIHRoZSBpbmRleCBvciB0aGUgbWVtYmVyIG5hbWUg
b2YgdGhlIHJlZmVyZW5jZWQgdmFsdWUgYXMgYSBWYWx1ZS4KLSAgICAgIFZhbHVlIGtleSgpIGNv
bnN0OworICBib29sIG9wZXJhdG9yIT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiAhaXNFcXVhbChvdGhlcik7IH0KIAotICAgICAgLy8vIFJldHVybiB0aGUgaW5kZXggb2Yg
dGhlIHJlZmVyZW5jZWQgVmFsdWUuIC0xIGlmIGl0IGlzIG5vdCBhbiBhcnJheVZhbHVlLgotICAg
ICAgVUludCBpbmRleCgpIGNvbnN0OworICBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0b3ItKGNvbnN0
IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeworICAgIHJldHVybiBvdGhlci5jb21wdXRlRGlzdGFu
Y2UoKnRoaXMpOworICB9CiAKLSAgICAgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRo
ZSByZWZlcmVuY2VkIFZhbHVlLiAiIiBpZiBpdCBpcyBub3QgYW4gb2JqZWN0VmFsdWUuCi0gICAg
ICBjb25zdCBjaGFyICptZW1iZXJOYW1lKCkgY29uc3Q7CisgIC8vLyBSZXR1cm4gZWl0aGVyIHRo
ZSBpbmRleCBvciB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgdmFsdWUgYXMgYQor
ICAvLy8gVmFsdWUuCisgIFZhbHVlIGtleSgpIGNvbnN0OwogCi0gICBwcm90ZWN0ZWQ6Ci0gICAg
ICBWYWx1ZSAmZGVyZWYoKSBjb25zdDsKKyAgLy8vIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHJl
ZmVyZW5jZWQgVmFsdWUsIG9yIC0xIGlmIGl0IGlzIG5vdCBhbgorICAvLy8gYXJyYXlWYWx1ZS4K
KyAgVUludCBpbmRleCgpIGNvbnN0OwogCi0gICAgICB2b2lkIGluY3JlbWVudCgpOworICAvLy8g
UmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgIiIgaWYg
aXQgaXMgbm90IGFuCisgIC8vLyBvYmplY3RWYWx1ZS4KKyAgLy8vIFxub3RlIEF2b2lkIGBjX3N0
cigpYCBvbiByZXN1bHQsIGFzIGVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIFN0cmlu
ZyBuYW1lKCkgY29uc3Q7CiAKLSAgICAgIHZvaWQgZGVjcmVtZW50KCk7CisgIC8vLyBSZXR1cm4g
dGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLiAiIiBpZiBpdCBpcyBub3Qg
YW4KKyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXGRlcHJlY2F0ZWQgVGhpcyBjYW5ub3QgYmUg
dXNlZCBmb3IgVVRGLTggc3RyaW5ncywgc2luY2UgdGhlcmUgY2FuIGJlCisgIC8vLyBlbWJlZGRl
ZCBudWxscy4KKyAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgYGtleSA9IG5hbWUoKTtgIGluc3Rl
YWQuIikKKyAgY2hhciBjb25zdCogbWVtYmVyTmFtZSgpIGNvbnN0OworICAvLy8gUmV0dXJuIHRo
ZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgTlVMTCBpZiBpdCBpcyBu
b3QgYW4KKyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXG5vdGUgQmV0dGVyIHZlcnNpb24gdGhh
biBtZW1iZXJOYW1lKCkuIEFsbG93cyBlbWJlZGRlZCBudWxscy4KKyAgY2hhciBjb25zdCogbWVt
YmVyTmFtZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKIAotICAgICAgZGlmZmVyZW5jZV90eXBl
IGNvbXB1dGVEaXN0YW5jZSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3Q7Citwcm90ZWN0
ZWQ6CisgIFZhbHVlJiBkZXJlZigpIGNvbnN0OwogCi0gICAgICBib29sIGlzRXF1YWwoIGNvbnN0
IFNlbGZUeXBlICZvdGhlciApIGNvbnN0OworICB2b2lkIGluY3JlbWVudCgpOwogCi0gICAgICB2
b2lkIGNvcHkoIGNvbnN0IFNlbGZUeXBlICZvdGhlciApOworICB2b2lkIGRlY3JlbWVudCgpOwog
Ci0gICBwcml2YXRlOgotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAg
IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGN1cnJlbnRfOwotICAgICAgLy8gSW5kaWNh
dGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2YWx1ZS4KLSAgICAgIGJvb2wgaXNOdWxs
XzsKLSNlbHNlCi0gICAgICB1bmlvbgotICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbEFy
cmF5OjpJdGVyYXRvclN0YXRlIGFycmF5XzsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0
ZXJhdG9yU3RhdGUgbWFwXzsKLSAgICAgIH0gaXRlcmF0b3JfOwotICAgICAgYm9vbCBpc0FycmF5
XzsKLSNlbmRpZgotICAgfTsKLQotICAgLyoqIFxicmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2Jq
ZWN0IGFuZCBhcnJheSB2YWx1ZS4KLSAgICAqCi0gICAgKi8KLSAgIGNsYXNzIFZhbHVlQ29uc3RJ
dGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9yQmFzZQotICAgewotICAgICAgZnJpZW5kIGNs
YXNzIFZhbHVlOwotICAgcHVibGljOgotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90
OwotICAgICAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICAgICAgdHlwZWRlZiBjb25z
dCBWYWx1ZSAmcmVmZXJlbmNlOwotICAgICAgdHlwZWRlZiBjb25zdCBWYWx1ZSAqcG9pbnRlcjsK
LSAgICAgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9yIFNlbGZUeXBlOwotCi0gICAgICBWYWx1
ZUNvbnN0SXRlcmF0b3IoKTsKLSAgIHByaXZhdGU6Ci0gICAgICAvKiEgXGludGVybmFsIFVzZSBi
eSBWYWx1ZSB0byBjcmVhdGUgYW4gaXRlcmF0b3IuCi0gICAgICAgKi8KLSNpZm5kZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3Io
IGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yICZjdXJyZW50ICk7Ci0jZWxzZQot
ICAgICAgVmFsdWVDb25zdEl0ZXJhdG9yKCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJh
dG9yU3RhdGUgJnN0YXRlICk7Ci0gICAgICBWYWx1ZUNvbnN0SXRlcmF0b3IoIGNvbnN0IFZhbHVl
SW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0jZW5kaWYKLSAgIHB1YmxpYzoK
LSAgICAgIFNlbGZUeXBlICZvcGVyYXRvciA9KCBjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSAmb3Ro
ZXIgKTsKLQotICAgICAgU2VsZlR5cGUgb3BlcmF0b3IrKyggaW50ICkKLSAgICAgIHsKLSAgICAg
ICAgIFNlbGZUeXBlIHRlbXAoICp0aGlzICk7Ci0gICAgICAgICArKyp0aGlzOwotICAgICAgICAg
cmV0dXJuIHRlbXA7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9yLS0oIGludCAp
Ci0gICAgICB7Ci0gICAgICAgICBTZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAgICAgICAgLS0q
dGhpczsKLSAgICAgICAgIHJldHVybiB0ZW1wOwotICAgICAgfQotCi0gICAgICBTZWxmVHlwZSAm
b3BlcmF0b3ItLSgpCi0gICAgICB7Ci0gICAgICAgICBkZWNyZW1lbnQoKTsKLSAgICAgICAgIHJl
dHVybiAqdGhpczsKLSAgICAgIH0KLQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9yKysoKQotICAg
ICAgewotICAgICAgICAgaW5jcmVtZW50KCk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAg
ICB9Ci0KLSAgICAgIHJlZmVyZW5jZSBvcGVyYXRvciAqKCkgY29uc3QKLSAgICAgIHsKLSAgICAg
ICAgIHJldHVybiBkZXJlZigpOwotICAgICAgfQotICAgfTsKLQotCi0gICAvKiogXGJyaWVmIEl0
ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5IHZhbHVlLgotICAgICovCi0gICBjbGFzcyBWYWx1
ZUl0ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlCi0gICB7Ci0gICAgICBmcmllbmQg
Y2xhc3MgVmFsdWU7Ci0gICBwdWJsaWM6Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXpl
X3Q7Ci0gICAgICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7Ci0gICAgICB0eXBlZGVmIFZh
bHVlICZyZWZlcmVuY2U7Ci0gICAgICB0eXBlZGVmIFZhbHVlICpwb2ludGVyOwotICAgICAgdHlw
ZWRlZiBWYWx1ZUl0ZXJhdG9yIFNlbGZUeXBlOwotCi0gICAgICBWYWx1ZUl0ZXJhdG9yKCk7Ci0g
ICAgICBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3IgJm90aGVyICk7Ci0g
ICAgICBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZUl0ZXJhdG9yICZvdGhlciApOwotICAgcHJp
dmF0ZToKLSAgICAgIC8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVy
YXRvci4KLSAgICAgICAqLwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAg
ICAgIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0
ZXJhdG9yICZjdXJyZW50ICk7Ci0jZWxzZQotICAgICAgVmFsdWVJdGVyYXRvciggY29uc3QgVmFs
dWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlICZzdGF0ZSApOwotICAgICAgVmFsdWVJdGVy
YXRvciggY29uc3QgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKTsKLSNl
bmRpZgotICAgcHVibGljOgotCi0gICAgICBTZWxmVHlwZSAmb3BlcmF0b3IgPSggY29uc3QgU2Vs
ZlR5cGUgJm90aGVyICk7Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9yKysoIGludCApCi0gICAg
ICB7Ci0gICAgICAgICBTZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAgICAgICAgKysqdGhpczsK
LSAgICAgICAgIHJldHVybiB0ZW1wOwotICAgICAgfQotCi0gICAgICBTZWxmVHlwZSBvcGVyYXRv
ci0tKCBpbnQgKQotICAgICAgewotICAgICAgICAgU2VsZlR5cGUgdGVtcCggKnRoaXMgKTsKLSAg
ICAgICAgIC0tKnRoaXM7Ci0gICAgICAgICByZXR1cm4gdGVtcDsKLSAgICAgIH0KLQotICAgICAg
U2VsZlR5cGUgJm9wZXJhdG9yLS0oKQotICAgICAgewotICAgICAgICAgZGVjcmVtZW50KCk7Ci0g
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlICZvcGVyYXRv
cisrKCkKLSAgICAgIHsKLSAgICAgICAgIGluY3JlbWVudCgpOwotICAgICAgICAgcmV0dXJuICp0
aGlzOwotICAgICAgfQotCi0gICAgICByZWZlcmVuY2Ugb3BlcmF0b3IgKigpIGNvbnN0Ci0gICAg
ICB7Ci0gICAgICAgICByZXR1cm4gZGVyZWYoKTsKLSAgICAgIH0KLSAgIH07CisgIGRpZmZlcmVu
Y2VfdHlwZSBjb21wdXRlRGlzdGFuY2UoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdDsKIAor
ICBib29sIGlzRXF1YWwoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdDsKKworICB2b2lkIGNv
cHkoY29uc3QgU2VsZlR5cGUmIG90aGVyKTsKKworcHJpdmF0ZToKKyAgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3IgY3VycmVudF87CisgIC8vIEluZGljYXRlcyB0aGF0IGl0ZXJhdG9yIGlz
IGZvciBhIG51bGwgdmFsdWUuCisgIGJvb2wgaXNOdWxsX3t0cnVlfTsKKworcHVibGljOgorICAv
LyBGb3Igc29tZSByZWFzb24sIEJPUkxBTkQgbmVlZHMgdGhlc2UgYXQgdGhlIGVuZCwgcmF0aGVy
CisgIC8vIHRoYW4gZWFybGllci4gTm8gaWRlYSB3aHkuCisgIFZhbHVlSXRlcmF0b3JCYXNlKCk7
CisgIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3JCYXNlKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6
Oml0ZXJhdG9yJiBjdXJyZW50KTsKK307CisKKy8qKiBcYnJpZWYgY29uc3QgaXRlcmF0b3IgZm9y
IG9iamVjdCBhbmQgYXJyYXkgdmFsdWUuCisgKgorICovCitjbGFzcyBKU09OX0FQSSBWYWx1ZUNv
bnN0SXRlcmF0b3IgOiBwdWJsaWMgVmFsdWVJdGVyYXRvckJhc2UgeworICBmcmllbmQgY2xhc3Mg
VmFsdWU7CisKK3B1YmxpYzoKKyAgdHlwZWRlZiBjb25zdCBWYWx1ZSB2YWx1ZV90eXBlOworICAv
LyB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CisgIC8vIHR5cGVkZWYgaW50IGRpZmZlcmVu
Y2VfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCBWYWx1ZSYgcmVmZXJlbmNlOworICB0eXBlZGVmIGNv
bnN0IFZhbHVlKiBwb2ludGVyOworICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBTZWxmVHlw
ZTsKKworICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsKKyAgVmFsdWVDb25zdEl0ZXJhdG9yKFZhbHVl
SXRlcmF0b3IgY29uc3QmIG90aGVyKTsKKworcHJpdmF0ZToKKyAgLyohIFxpbnRlcm5hbCBVc2Ug
YnkgVmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgorICAgKi8KKyAgZXhwbGljaXQgVmFsdWVD
b25zdEl0ZXJhdG9yKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50
KTsKKworcHVibGljOgorICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0IFZhbHVlSXRlcmF0b3JC
YXNlJiBvdGhlcik7CisKKyAgU2VsZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKKyAgICBTZWxmVHlw
ZSB0ZW1wKCp0aGlzKTsKKyAgICArKyp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisKKyAg
U2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAg
ICAtLSp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9y
LS0oKSB7CisgICAgZGVjcmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgU2Vs
ZlR5cGUmIG9wZXJhdG9yKysoKSB7CisgICAgaW5jcmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlz
OworICB9CisKKyAgcmVmZXJlbmNlIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7
IH0KKworICBwb2ludGVyIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQor
fTsKKworLyoqIFxicmllZiBJdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KKyAq
LworY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9yQmFz
ZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKKworcHVibGljOgorICB0eXBlZGVmIFZhbHVlIHZh
bHVlX3R5cGU7CisgIHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKKyAgdHlwZWRlZiBpbnQg
ZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIFZhbHVlJiByZWZlcmVuY2U7CisgIHR5cGVkZWYg
VmFsdWUqIHBvaW50ZXI7CisgIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBTZWxmVHlwZTsKKworICBW
YWx1ZUl0ZXJhdG9yKCk7CisgIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVDb25z
dEl0ZXJhdG9yJiBvdGhlcik7CisgIFZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVJdGVyYXRvciYg
b3RoZXIpOworCitwcml2YXRlOgorICAvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBjcmVh
dGUgYW4gaXRlcmF0b3IuCisgICAqLworICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZh
bHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KTsKKworcHVibGljOgorICBTZWxm
VHlwZSYgb3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7CisKKyAgU2VsZlR5cGUgb3Bl
cmF0b3IrKyhpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICArKyp0aGlzOwor
ICAgIHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKKyAg
ICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICAtLSp0aGlzOworICAgIHJldHVybiB0ZW1wOwor
ICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7CisgICAgZGVjcmVtZW50KCk7CisgICAg
cmV0dXJuICp0aGlzOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7CisgICAgaW5j
cmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgcmVmZXJlbmNlIG9wZXJhdG9y
KigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KKworICBwb2ludGVyIG9wZXJhdG9yLT4oKSBj
b25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQorfTsKKworaW5saW5lIHZvaWQgc3dhcChWYWx1ZSYg
YSwgVmFsdWUmIGIpIHsgYS5zd2FwKGIpOyB9CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24KIAorI3By
YWdtYSBwYWNrKHBvcCkKKworI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZB
Q0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChK
U09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQogCiAjZW5kaWYgLy8gQ1BQVExf
SlNPTl9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi93cml0ZXIuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvaW5jbHVkZS9qc29uL3dyaXRlci5oCmluZGV4IDM4ZDQxZTFlZWRlMjU0YmUyNTJhZmM5
ZDk5MjcyNjdhYzMzMzFjZWIuLjEyZmQzNmE3YTg0NWNlODExMjEwYzBjYjQ1MjA5OTBkYzYxZGM2
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3dyaXRlci5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5j
bHVkZS9qc29uL3dyaXRlci5oCkBAIC0xLDE4NCArMSwzNjggQEAKLS8vIENvcHlyaWdodCAyMDA3
LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycwogLy8gRGlzdHJpYnV0ZWQgdW5kZXIg
TUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8vIHJlY29nbml6
ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwg
b3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCiAjaWZu
ZGVmIEpTT05fV1JJVEVSX0hfSU5DTFVERUQKLSMgZGVmaW5lIEpTT05fV1JJVEVSX0hfSU5DTFVE
RUQKKyNkZWZpbmUgSlNPTl9XUklURVJfSF9JTkNMVURFRAogCiAjaWYgIWRlZmluZWQoSlNPTl9J
U19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgInZhbHVlLmgiCisjaW5jbHVkZSAidmFsdWUuaCIK
ICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8
dmVjdG9yPgotIyBpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNpbmNsdWRl
IDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6
IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8v
IGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNF
X1dBUk5JTkcpICYmIGRlZmluZWQoX01TQ19WRVIpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNw
cmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05D
UFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNwcmFnbWEgcGFjayhwdXNoLCA4
KQogCiBuYW1lc3BhY2UgSnNvbiB7CiAKLSAgIGNsYXNzIFZhbHVlOworY2xhc3MgVmFsdWU7CiAK
LSAgIC8qKiBcYnJpZWYgQWJzdHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCi0gICAgKi8KLSAgIGNs
YXNzIEpTT05fQVBJIFdyaXRlcgotICAgewotICAgcHVibGljOgotICAgICAgdmlydHVhbCB+V3Jp
dGVyKCk7Ci0KLSAgICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgd3JpdGUoIGNvbnN0IFZhbHVlICZy
b290ICkgPSAwOwotICAgfTsKLQotICAgLyoqIFxicmllZiBPdXRwdXRzIGEgVmFsdWUgaW4gPGEg
SFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0IHdpdGhvdXQgZm9ybWF0
dGluZyAobm90IGh1bWFuIGZyaWVuZGx5KS4KLSAgICAqCi0gICAgKiBUaGUgSlNPTiBkb2N1bWVu
dCBpcyB3cml0dGVuIGluIGEgc2luZ2xlIGxpbmUuIEl0IGlzIG5vdCBpbnRlbmRlZCBmb3IgJ2h1
bWFuJyBjb25zdW1wdGlvbiwKLSAgICAqIGJ1dCBtYXkgYmUgdXNlZnVsbCB0byBzdXBwb3J0IGZl
YXR1cmUgc3VjaCBhcyBSUEMgd2hlcmUgYmFuZHdpdGggaXMgbGltaXRlZC4KLSAgICAqIFxzYSBS
ZWFkZXIsIFZhbHVlCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIEZhc3RXcml0ZXIgOiBwdWJs
aWMgV3JpdGVyCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICBGYXN0V3JpdGVyKCk7Ci0gICAgICB2
aXJ0dWFsIH5GYXN0V3JpdGVyKCl7fQotCi0gICAgICB2b2lkIGVuYWJsZVlBTUxDb21wYXRpYmls
aXR5KCk7Ci0KLSAgIHB1YmxpYzogLy8gb3ZlcnJpZGRlbiBmcm9tIFdyaXRlcgotICAgICAgdmly
dHVhbCBzdGQ6OnN0cmluZyB3cml0ZSggY29uc3QgVmFsdWUgJnJvb3QgKTsKLQotICAgcHJpdmF0
ZToKLSAgICAgIHZvaWQgd3JpdGVWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0KLSAgICAg
IHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKLSAgICAgIGJvb2wgeWFtbENvbXBhdGlibGl0eUVuYWJs
ZWRfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJo
dHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQgaW4gYSBodW1hbiBmcmllbmRseSB3
YXkuCi0gICAgKgotICAgICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBpbmRlbnQgYXJl
IGFzIGZvbGxvdzoKLSAgICAqIC0gT2JqZWN0IHZhbHVlOgotICAgICogICAgIC0gaWYgZW1wdHkg
dGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhawotICAgICogICAgIC0g
aWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9u
ZSB2YWx1ZSBwZXIgbGluZQotICAgICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUg
YnJlYWsgYW5kIHByaW50ICd9Jy4KLSAgICAqIC0gQXJyYXkgdmFsdWU6Ci0gICAgKiAgICAgLSBp
ZiBlbXB0eSB0aGVuIHByaW50IFtdIHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCi0gICAg
KiAgICAgLSBpZiB0aGUgYXJyYXkgY29udGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJh
eSBvciBzb21lIG90aGVyIHZhbHVlIHR5cGVzLAotICAgICogICAgICAgYW5kIGFsbCB0aGUgdmFs
dWVzIGZpdCBvbiBvbmUgbGluZXMsIHRoZW4gcHJpbnQgdGhlIGFycmF5IG9uIGEgc2luZ2xlIGxp
bmUuCi0gICAgKiAgICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBv
bmUgbGluZSwgb3IgdGhlIGFycmF5IGNvbnRhaW5zCi0gICAgKiAgICAgICBvYmplY3Qgb3Igbm9u
IGVtcHR5IGFycmF5LCB0aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KLSAgICAqCi0gICAg
KiBJZiB0aGUgVmFsdWUgaGF2ZSBjb21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29y
ZGluZyB0byB0aGVpciAjQ29tbWVudFBsYWNlbWVudC4KLSAgICAqCi0gICAgKiBcc2EgUmVhZGVy
LCBWYWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQotICAgICovCi0gICBjbGFzcyBKU09OX0FQSSBT
dHlsZWRXcml0ZXI6IHB1YmxpYyBXcml0ZXIKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIFN0eWxl
ZFdyaXRlcigpOwotICAgICAgdmlydHVhbCB+U3R5bGVkV3JpdGVyKCl7fQotCi0gICBwdWJsaWM6
IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKLSAgICAgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEg
VmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0Lgot
ICAgICAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8gc2VyaWFsaXplLgotICAgICAgICogXHJldHVy
biBTdHJpbmcgY29udGFpbmluZyB0aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhl
IHJvb3QgdmFsdWUuCi0gICAgICAgKi8KLSAgICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgd3JpdGUo
IGNvbnN0IFZhbHVlICZyb290ICk7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB2b2lkIHdyaXRlVmFs
dWUoIGNvbnN0IFZhbHVlICZ2YWx1ZSApOwotICAgICAgdm9pZCB3cml0ZUFycmF5VmFsdWUoIGNv
bnN0IFZhbHVlICZ2YWx1ZSApOwotICAgICAgYm9vbCBpc011bHRpbmVBcnJheSggY29uc3QgVmFs
dWUgJnZhbHVlICk7Ci0gICAgICB2b2lkIHB1c2hWYWx1ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnZh
bHVlICk7Ci0gICAgICB2b2lkIHdyaXRlSW5kZW50KCk7Ci0gICAgICB2b2lkIHdyaXRlV2l0aElu
ZGVudCggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICk7Ci0gICAgICB2b2lkIGluZGVudCgpOwot
ICAgICAgdm9pZCB1bmluZGVudCgpOwotICAgICAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZSggY29uc3QgVmFsdWUgJnJvb3QgKTsKLSAgICAgIHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1
ZU9uU2FtZUxpbmUoIGNvbnN0IFZhbHVlICZyb290ICk7Ci0gICAgICBib29sIGhhc0NvbW1lbnRG
b3JWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0gICAgICBzdGF0aWMgc3RkOjpzdHJpbmcg
bm9ybWFsaXplRU9MKCBjb25zdCBzdGQ6OnN0cmluZyAmdGV4dCApOwotCi0gICAgICB0eXBlZGVm
IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKLQotICAgICAgQ2hpbGRWYWx1
ZXMgY2hpbGRWYWx1ZXNfOwotICAgICAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwotICAgICAgc3Rk
OjpzdHJpbmcgaW5kZW50U3RyaW5nXzsKLSAgICAgIGludCByaWdodE1hcmdpbl87Ci0gICAgICBp
bnQgaW5kZW50U2l6ZV87Ci0gICAgICBib29sIGFkZENoaWxkVmFsdWVzXzsKLSAgIH07Ci0KLSAg
IC8qKiBcYnJpZWYgV3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9y
ZyI+SlNPTjwvYT4gZm9ybWF0IGluIGEgaHVtYW4gZnJpZW5kbHkgd2F5LAotICAgICAgICB0byBh
IHN0cmVhbSByYXRoZXIgdGhhbiB0byBhIHN0cmluZy4KLSAgICAqCi0gICAgKiBUaGUgcnVsZXMg
Zm9yIGxpbmUgYnJlYWsgYW5kIGluZGVudCBhcmUgYXMgZm9sbG93OgotICAgICogLSBPYmplY3Qg
dmFsdWU6Ci0gICAgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IHt9IHdpdGhvdXQgaW5kZW50
IGFuZCBsaW5lIGJyZWFrCi0gICAgKiAgICAgLSBpZiBub3QgZW1wdHkgdGhlIHByaW50ICd7Jywg
bGluZSBicmVhayAmIGluZGVudCwgcHJpbnQgb25lIHZhbHVlIHBlciBsaW5lCi0gICAgKiAgICAg
ICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBicmVhayBhbmQgcHJpbnQgJ30nLgotICAgICog
LSBBcnJheSB2YWx1ZToKLSAgICAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQgW10gd2l0aG91
dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKLSAgICAqICAgICAtIGlmIHRoZSBhcnJheSBjb250YWlu
cyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUgb3RoZXIgdmFsdWUgdHlwZXMs
Ci0gICAgKiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0IG9uIG9uZSBsaW5lcywgdGhlbiBw
cmludCB0aGUgYXJyYXkgb24gYSBzaW5nbGUgbGluZS4KLSAgICAqICAgICAtIG90aGVyd2lzZSwg
aXQgdGhlIHZhbHVlcyBkbyBub3QgZml0IG9uIG9uZSBsaW5lLCBvciB0aGUgYXJyYXkgY29udGFp
bnMKLSAgICAqICAgICAgIG9iamVjdCBvciBub24gZW1wdHkgYXJyYXksIHRoZW4gcHJpbnQgb25l
IHZhbHVlIHBlciBsaW5lLgotICAgICoKLSAgICAqIElmIHRoZSBWYWx1ZSBoYXZlIGNvbW1lbnRz
IHRoZW4gdGhleSBhcmUgb3V0cHV0ZWQgYWNjb3JkaW5nIHRvIHRoZWlyICNDb21tZW50UGxhY2Vt
ZW50LgotICAgICoKLSAgICAqIFxwYXJhbSBpbmRlbnRhdGlvbiBFYWNoIGxldmVsIHdpbGwgYmUg
aW5kZW50ZWQgYnkgdGhpcyBhbW91bnQgZXh0cmEuCi0gICAgKiBcc2EgUmVhZGVyLCBWYWx1ZSwg
VmFsdWU6OnNldENvbW1lbnQoKQorLyoqCisKK1VzYWdlOgorXGNvZGUKKyAgdXNpbmcgbmFtZXNw
YWNlIEpzb247CisgIHZvaWQgd3JpdGVUb1N0ZG91dChTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgY29u
c3QmIGZhY3RvcnksIFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxT
dHJlYW1Xcml0ZXI+IGNvbnN0IHdyaXRlcigKKyAgICAgIGZhY3RvcnkubmV3U3RyZWFtV3JpdGVy
KCkpOworICAgIHdyaXRlci0+d3JpdGUodmFsdWUsICZzdGQ6OmNvdXQpOworICAgIHN0ZDo6Y291
dCA8PCBzdGQ6OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCisgIH0KK1xlbmRjb2RlCisqLwor
Y2xhc3MgSlNPTl9BUEkgU3RyZWFtV3JpdGVyIHsKK3Byb3RlY3RlZDoKKyAgT1N0cmVhbSogc291
dF87IC8vIG5vdCBvd25lZDsgd2lsbCBub3QgZGVsZXRlCitwdWJsaWM6CisgIFN0cmVhbVdyaXRl
cigpOworICB2aXJ0dWFsIH5TdHJlYW1Xcml0ZXIoKTsKKyAgLyoqIFdyaXRlIFZhbHVlIGludG8g
ZG9jdW1lbnQgYXMgY29uZmlndXJlZCBpbiBzdWItY2xhc3MuCisgICAgICBEbyBub3QgdGFrZSBv
d25lcnNoaXAgb2Ygc291dCwgYnV0IG1haW50YWluIGEgcmVmZXJlbmNlIGR1cmluZyBmdW5jdGlv
bi4KKyAgICAgIFxwcmUgc291dCAhPSBOVUxMCisgICAgICBccmV0dXJuIHplcm8gb24gc3VjY2Vz
cyAoRm9yIG5vdywgd2UgYWx3YXlzIHJldHVybiB6ZXJvLCBzbyBjaGVjayB0aGUKKyAgICAgc3Ry
ZWFtIGluc3RlYWQuKSBcdGhyb3cgc3RkOjpleGNlcHRpb24gcG9zc2libHksIGRlcGVuZGluZyBv
biBjb25maWd1cmF0aW9uCisgICAqLworICB2aXJ0dWFsIGludCB3cml0ZShWYWx1ZSBjb25zdCYg
cm9vdCwgT1N0cmVhbSogc291dCkgPSAwOworCisgIC8qKiBcYnJpZWYgQSBzaW1wbGUgYWJzdHJh
Y3QgZmFjdG9yeS4KKyAgICovCisgIGNsYXNzIEpTT05fQVBJIEZhY3RvcnkgeworICBwdWJsaWM6
CisgICAgdmlydHVhbCB+RmFjdG9yeSgpOworICAgIC8qKiBcYnJpZWYgQWxsb2NhdGUgYSBDaGFy
UmVhZGVyIHZpYSBvcGVyYXRvciBuZXcoKS4KKyAgICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24g
aWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFN0cmVhbVdyaXRlciogbmV3U3RyZWFtV3JpdGVyKCkgY29uc3QgPSAwOwor
ICB9OyAvLyBGYWN0b3J5Cit9OyAgIC8vIFN0cmVhbVdyaXRlcgorCisvKiogXGJyaWVmIFdyaXRl
IGludG8gc3RyaW5nc3RyZWFtLCB0aGVuIHJldHVybiBzdHJpbmcsIGZvciBjb252ZW5pZW5jZS4K
KyAqIEEgU3RyZWFtV3JpdGVyIHdpbGwgYmUgY3JlYXRlZCBmcm9tIHRoZSBmYWN0b3J5LCB1c2Vk
LCBhbmQgdGhlbiBkZWxldGVkLgorICovCitTdHJpbmcgSlNPTl9BUEkgd3JpdGVTdHJpbmcoU3Ry
ZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlIGNvbnN0JiByb290KTsKKworLyoqIFxicmllZiBCdWlsZCBhIFN0cmVhbVdy
aXRlciBpbXBsZW1lbnRhdGlvbi4KKworVXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2Ug
SnNvbjsKKyAgVmFsdWUgdmFsdWUgPSAuLi47CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRl
cjsKKyAgYnVpbGRlclsiY29tbWVudFN0eWxlIl0gPSAiTm9uZSI7CisgIGJ1aWxkZXJbImluZGVu
dGF0aW9uIl0gPSAiICAgIjsgIC8vIG9yIHdoYXRldmVyIHlvdSBsaWtlCisgIHN0ZDo6dW5pcXVl
X3B0cjxKc29uOjpTdHJlYW1Xcml0ZXI+IHdyaXRlcigKKyAgICAgIGJ1aWxkZXIubmV3U3RyZWFt
V3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAgc3RkOjpj
b3V0IDw8IHN0ZDo6ZW5kbDsgIC8vIGFkZCBsZiBhbmQgZmx1c2gKK1xlbmRjb2RlCisqLworY2xh
c3MgSlNPTl9BUEkgU3RyZWFtV3JpdGVyQnVpbGRlciA6IHB1YmxpYyBTdHJlYW1Xcml0ZXI6OkZh
Y3RvcnkgeworcHVibGljOgorICAvLyBOb3RlOiBXZSB1c2UgYSBKc29uOjpWYWx1ZSBzbyB0aGF0
IHdlIGNhbiBhZGQgZGF0YS1tZW1iZXJzIHRvIHRoaXMgY2xhc3MKKyAgLy8gd2l0aG91dCBhIG1h
am9yIHZlcnNpb24gYnVtcC4KKyAgLyoqIENvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWlsZGVyLgor
ICAgIEF2YWlsYWJsZSBzZXR0aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gImNvbW1lbnRT
dHlsZSI6ICJOb25lIiBvciAiQWxsIgorICAgIC0gImluZGVudGF0aW9uIjogICI8YW55dGhpbmc+
Ii4KKyAgICAgIC0gU2V0dGluZyB0aGlzIHRvIGFuIGVtcHR5IHN0cmluZyBhbHNvIG9taXRzIG5l
d2xpbmUgY2hhcmFjdGVycy4KKyAgICAtICJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSI6IGZhbHNl
IG9yIHRydWUKKyAgICAgIC0gc2xpZ2h0bHkgY2hhbmdlIHRoZSB3aGl0ZXNwYWNlIGFyb3VuZCBj
b2xvbnMKKyAgICAtICJkcm9wTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWUKKyAgICAg
IC0gRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51
bGxWYWx1ZXMuCisgICAgICAgIFN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBK
U09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCisgICAgICAgIGZlZCB0byBhIGJyb3dz
ZXIncyBKYXZhU2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRoZQorICAg
ICAgICBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCisgICAgLSAidXNl
U3BlY2lhbEZsb2F0cyI6IGZhbHNlIG9yIHRydWUKKyAgICAgIC0gSWYgdHJ1ZSwgb3V0cHV0cyBu
b24tZmluaXRlIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKKyAg
ICAgICAgTmFOIHZhbHVlcyBhcyAiTmFOIiwgcG9zaXRpdmUgaW5maW5pdHkgYXMgIkluZmluaXR5
IiwgYW5kIG5lZ2F0aXZlCisgICAgaW5maW5pdHkgYXMgIi1JbmZpbml0eSIuCisgICAgLSAicHJl
Y2lzaW9uIjogaW50CisgICAgICAtIE51bWJlciBvZiBwcmVjaXNpb24gZGlnaXRzIGZvciBmb3Jt
YXR0aW5nIG9mIHJlYWwgdmFsdWVzLgorICAgIC0gInByZWNpc2lvblR5cGUiOiAic2lnbmlmaWNh
bnQiKGRlZmF1bHQpIG9yICJkZWNpbWFsIgorICAgICAgLSBUeXBlIG9mIHByZWNpc2lvbiBmb3Ig
Zm9ybWF0dGluZyBvZiByZWFsIHZhbHVlcy4KKworICAgIFlvdSBjYW4gZXhhbWluZSAnc2V0dGlu
Z3NfYCB5b3Vyc2VsZgorICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4gYWxzbyB3cml0
ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKKyAgICBKU09OIFZhbHVlLgorICAgIFxzYSBz
ZXREZWZhdWx0cygpCiAgICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFN0eWxlZFN0cmVhbVdyaXRl
cgotICAgewotICAgcHVibGljOgotICAgICAgU3R5bGVkU3RyZWFtV3JpdGVyKCBzdGQ6OnN0cmlu
ZyBpbmRlbnRhdGlvbj0iXHQiICk7Ci0gICAgICB+U3R5bGVkU3RyZWFtV3JpdGVyKCl7fQotCi0g
ICBwdWJsaWM6Ci0gICAgICAvKiogXGJyaWVmIFNlcmlhbGl6ZSBhIFZhbHVlIGluIDxhIEhSRUY9
Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdC4KLSAgICAgICAqIFxwYXJhbSBv
dXQgU3RyZWFtIHRvIHdyaXRlIHRvLiAoQ2FuIGJlIG9zdHJpbmdzdHJlYW0sIGUuZy4pCi0gICAg
ICAgKiBccGFyYW0gcm9vdCBWYWx1ZSB0byBzZXJpYWxpemUuCi0gICAgICAgKiBcbm90ZSBUaGVy
ZSBpcyBubyBwb2ludCBpbiBkZXJpdmluZyBmcm9tIFdyaXRlciwgc2luY2Ugd3JpdGUoKSBzaG91
bGQgbm90IHJldHVybiBhIHZhbHVlLgotICAgICAgICovCi0gICAgICB2b2lkIHdyaXRlKCBzdGQ6
Om9zdHJlYW0gJm91dCwgY29uc3QgVmFsdWUgJnJvb3QgKTsKLQotICAgcHJpdmF0ZToKLSAgICAg
IHZvaWQgd3JpdGVWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0gICAgICB2b2lkIHdyaXRl
QXJyYXlWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0gICAgICBib29sIGlzTXVsdGluZUFy
cmF5KCBjb25zdCBWYWx1ZSAmdmFsdWUgKTsKLSAgICAgIHZvaWQgcHVzaFZhbHVlKCBjb25zdCBz
dGQ6OnN0cmluZyAmdmFsdWUgKTsKLSAgICAgIHZvaWQgd3JpdGVJbmRlbnQoKTsKLSAgICAgIHZv
aWQgd3JpdGVXaXRoSW5kZW50KCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKTsKLSAgICAgIHZv
aWQgaW5kZW50KCk7Ci0gICAgICB2b2lkIHVuaW5kZW50KCk7Ci0gICAgICB2b2lkIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKCBjb25zdCBWYWx1ZSAmcm9vdCApOwotICAgICAgdm9pZCB3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY29uc3QgVmFsdWUgJnJvb3QgKTsKLSAgICAgIGJv
b2wgaGFzQ29tbWVudEZvclZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsdWUgKTsKLSAgICAgIHN0YXRp
YyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0ICk7Ci0K
LSAgICAgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOwotCi0g
ICAgICBDaGlsZFZhbHVlcyBjaGlsZFZhbHVlc187Ci0gICAgICBzdGQ6Om9zdHJlYW0qIGRvY3Vt
ZW50XzsKLSAgICAgIHN0ZDo6c3RyaW5nIGluZGVudFN0cmluZ187Ci0gICAgICBpbnQgcmlnaHRN
YXJnaW5fOwotICAgICAgc3RkOjpzdHJpbmcgaW5kZW50YXRpb25fOwotICAgICAgYm9vbCBhZGRD
aGlsZFZhbHVlc187Ci0gICB9OwotCi0jIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICBz
dGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKCBJbnQgdmFsdWUgKTsKLSAgIHN0ZDo6
c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoIFVJbnQgdmFsdWUgKTsKLSMgZW5kaWYgLy8g
aWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9TdHJpbmcoIExhcmdlc3RJbnQgdmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZh
bHVlVG9TdHJpbmcoIExhcmdlc3RVSW50IHZhbHVlICk7Ci0gICBzdGQ6OnN0cmluZyBKU09OX0FQ
SSB2YWx1ZVRvU3RyaW5nKCBkb3VibGUgdmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJ
IHZhbHVlVG9TdHJpbmcoIGJvb2wgdmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZh
bHVlVG9RdW90ZWRTdHJpbmcoIGNvbnN0IGNoYXIgKnZhbHVlICk7Ci0KLSAgIC8vLyBcYnJpZWYg
T3V0cHV0IHVzaW5nIHRoZSBTdHlsZWRTdHJlYW1Xcml0ZXIuCi0gICAvLy8gXHNlZSBKc29uOjpv
cGVyYXRvcj4+KCkKLSAgIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCggc3RkOjpvc3RyZWFtJiwg
Y29uc3QgVmFsdWUgJnJvb3QgKTsKKyAgSnNvbjo6VmFsdWUgc2V0dGluZ3NfOworCisgIFN0cmVh
bVdyaXRlckJ1aWxkZXIoKTsKKyAgflN0cmVhbVdyaXRlckJ1aWxkZXIoKSBvdmVycmlkZTsKKwor
ICAvKioKKyAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBnb2VzIHdyb25n
IChlLmcuIGludmFsaWQgc2V0dGluZ3MpCisgICAqLworICBTdHJlYW1Xcml0ZXIqIG5ld1N0cmVh
bVdyaXRlcigpIGNvbnN0IG92ZXJyaWRlOworCisgIC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRp
bmdzJyBhcmUgbGVnYWwgYW5kIGNvbnNpc3RlbnQ7CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0
ZSBiYWQgc2V0dGluZ3MgdmlhICdpbnZhbGlkJy4KKyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNv
bjo6VmFsdWUqIGludmFsaWQpIGNvbnN0OworICAvKiogQSBzaW1wbGUgd2F5IHRvIHVwZGF0ZSBh
IHNwZWNpZmljIHNldHRpbmcuCisgICAqLworICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBTdHJp
bmcmIGtleSk7CisKKyAgLyoqIENhbGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0
byByZXNldCBzZXR0aW5nc18uCisgICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNv
bjo6bnVsbCBpcyBmaW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBldCBz
cmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwIFN0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0cwor
ICAgKi8KKyAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsK
K307CisKKy8qKiBcYnJpZWYgQWJzdHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCisgKiBcZGVwcmVj
YXRlZCBVc2UgU3RyZWFtV3JpdGVyLiAoQW5kIHJlYWxseSwgdGhpcyBpcyBhbiBpbXBsZW1lbnRh
dGlvbiBkZXRhaWwuKQorICovCitjbGFzcyBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBTdHJlYW1X
cml0ZXIgaW5zdGVhZCIpIEpTT05fQVBJIFdyaXRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfldy
aXRlcigpOworCisgIHZpcnR1YWwgU3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KSA9IDA7
Cit9OworCisvKiogXGJyaWVmIE91dHB1dHMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3
Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQKKyAqd2l0aG91dCBmb3JtYXR0aW5nIChub3QgaHVt
YW4gZnJpZW5kbHkpLgorICoKKyAqIFRoZSBKU09OIGRvY3VtZW50IGlzIHdyaXR0ZW4gaW4gYSBz
aW5nbGUgbGluZS4gSXQgaXMgbm90IGludGVuZGVkIGZvciAnaHVtYW4nCisgKmNvbnN1bXB0aW9u
LAorICogYnV0IG1heSBiZSB1c2VmdWwgdG8gc3VwcG9ydCBmZWF0dXJlIHN1Y2ggYXMgUlBDIHdo
ZXJlIGJhbmR3aWR0aCBpcyBsaW1pdGVkLgorICogXHNhIFJlYWRlciwgVmFsdWUKKyAqIFxkZXBy
ZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgorICovCisjaWYgZGVmaW5lZChfTVNDX1ZF
UikKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0OTk2
KSAvLyBEZXJpdmluZyBmcm9tIGRlcHJlY2F0ZWQgY2xhc3MKKyNlbmRpZgorY2xhc3MgSlNPTkNQ
UF9ERVBSRUNBVEVEKCJVc2UgU3RyZWFtV3JpdGVyQnVpbGRlciBpbnN0ZWFkIikgSlNPTl9BUEkg
RmFzdFdyaXRlcgorICAgIDogcHVibGljIFdyaXRlciB7CitwdWJsaWM6CisgIEZhc3RXcml0ZXIo
KTsKKyAgfkZhc3RXcml0ZXIoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CisKKyAgdm9pZCBlbmFibGVZ
QU1MQ29tcGF0aWJpbGl0eSgpOworCisgIC8qKiBcYnJpZWYgRHJvcCB0aGUgIm51bGwiIHN0cmlu
ZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1ZXMuCisgICAqIFN0cmljdGx5
IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlz
IGJlaW5nCisgICAqIGZlZCB0byBhIGJyb3dzZXIncyBKYXZhU2NyaXB0LCBpdCBtYWtlcyBmb3Ig
c21hbGxlciBvdXRwdXQgYW5kIHRoZQorICAgKiBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1
dCBqdXN0IGZpbmUuCisgICAqLworICB2b2lkIGRyb3BOdWxsUGxhY2Vob2xkZXJzKCk7CisKKyAg
dm9pZCBvbWl0RW5kaW5nTGluZUZlZWQoKTsKKworcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20g
V3JpdGVyCisgIFN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgb3ZlcnJpZGU7CisKK3By
aXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworCisgIFN0cmlu
ZyBkb2N1bWVudF87CisgIGJvb2wgeWFtbENvbXBhdGliaWxpdHlFbmFibGVkX3tmYWxzZX07Cisg
IGJvb2wgZHJvcE51bGxQbGFjZWhvbGRlcnNfe2ZhbHNlfTsKKyAgYm9vbCBvbWl0RW5kaW5nTGlu
ZUZlZWRfe2ZhbHNlfTsKK307CisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNwcmFnbWEgd2Fybmlu
Zyhwb3ApCisjZW5kaWYKKworLyoqIFxicmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJo
dHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQgaW4gYQorICpodW1hbiBmcmllbmRs
eSB3YXkuCisgKgorICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBpbmRlbnQgYXJlIGFz
IGZvbGxvdzoKKyAqIC0gT2JqZWN0IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmlu
dCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICogICAgIC0gaWYgbm90IGVtcHR5
IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9uZSB2YWx1ZSBwZXIK
KyAqbGluZQorICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHBy
aW50ICd9Jy4KKyAqIC0gQXJyYXkgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50
IFtdIHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiB0aGUgYXJyYXkg
Y29udGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVl
CisgKnR5cGVzLAorICogICAgICAgYW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMs
IHRoZW4gcHJpbnQgdGhlIGFycmF5IG9uIGEgc2luZ2xlCisgKmxpbmUuCisgKiAgICAgLSBvdGhl
cndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3IgdGhlIGFycmF5
IGNvbnRhaW5zCisgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0aGVuIHByaW50
IG9uZSB2YWx1ZSBwZXIgbGluZS4KKyAqCisgKiBJZiB0aGUgVmFsdWUgaGF2ZSBjb21tZW50cyB0
aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgorICojQ29tbWVudFBsYWNl
bWVudC4KKyAqCisgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQorICog
XGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIuCisgKi8KKyNpZiBkZWZpbmVkKF9N
U0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6
IDQ5OTYpIC8vIERlcml2aW5nIGZyb20gZGVwcmVjYXRlZCBjbGFzcworI2VuZGlmCitjbGFzcyBK
U09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyIGluc3RlYWQiKSBKU09O
X0FQSQorICAgIFN0eWxlZFdyaXRlciA6IHB1YmxpYyBXcml0ZXIgeworcHVibGljOgorICBTdHls
ZWRXcml0ZXIoKTsKKyAgflN0eWxlZFdyaXRlcigpIG92ZXJyaWRlID0gZGVmYXVsdDsKKworcHVi
bGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVyCisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEg
VmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0Lgor
ICAgKiBccGFyYW0gcm9vdCBWYWx1ZSB0byBzZXJpYWxpemUuCisgICAqIFxyZXR1cm4gU3RyaW5n
IGNvbnRhaW5pbmcgdGhlIEpTT04gZG9jdW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSByb290IHZh
bHVlLgorICAgKi8KKyAgU3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KSBvdmVycmlkZTsK
KworcHJpdmF0ZToKKyAgdm9pZCB3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZv
aWQgd3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIGJvb2wgaXNNdWx0aWxp
bmVBcnJheShjb25zdCBWYWx1ZSYgdmFsdWUpOworICB2b2lkIHB1c2hWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUluZGVudCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVu
dChjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCBpbmRlbnQoKTsKKyAgdm9pZCB1bmluZGVu
dCgpOworICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiByb290KTsK
KyAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9v
dCk7CisgIHN0YXRpYyBib29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUp
OworICBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZUVPTChjb25zdCBTdHJpbmcmIHRleHQpOworCisg
IHR5cGVkZWYgc3RkOjp2ZWN0b3I8U3RyaW5nPiBDaGlsZFZhbHVlczsKKworICBDaGlsZFZhbHVl
cyBjaGlsZFZhbHVlc187CisgIFN0cmluZyBkb2N1bWVudF87CisgIFN0cmluZyBpbmRlbnRTdHJp
bmdfOworICB1bnNpZ25lZCBpbnQgcmlnaHRNYXJnaW5fezc0fTsKKyAgdW5zaWduZWQgaW50IGlu
ZGVudFNpemVfezN9OworICBib29sIGFkZENoaWxkVmFsdWVzX3tmYWxzZX07Cit9OworI2lmIGRl
ZmluZWQoX01TQ19WRVIpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKy8qKiBcYnJp
ZWYgV3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwv
YT4gZm9ybWF0IGluIGEKKyBodW1hbiBmcmllbmRseSB3YXksCisgICAgIHRvIGEgc3RyZWFtIHJh
dGhlciB0aGFuIHRvIGEgc3RyaW5nLgorICoKKyAqIFRoZSBydWxlcyBmb3IgbGluZSBicmVhayBh
bmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6CisgKiAtIE9iamVjdCB2YWx1ZToKKyAqICAgICAtIGlm
IGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAg
ICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBsaW5lIGJyZWFrICYgaW5kZW50LCBwcmlu
dCBvbmUgdmFsdWUgcGVyCisgbGluZQorICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxp
bmUgYnJlYWsgYW5kIHByaW50ICd9Jy4KKyAqIC0gQXJyYXkgdmFsdWU6CisgKiAgICAgLSBpZiBl
bXB0eSB0aGVuIHByaW50IFtdIHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAg
LSBpZiB0aGUgYXJyYXkgY29udGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBvciBz
b21lIG90aGVyIHZhbHVlCisgdHlwZXMsCisgKiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0
IG9uIG9uZSBsaW5lcywgdGhlbiBwcmludCB0aGUgYXJyYXkgb24gYSBzaW5nbGUKKyBsaW5lLgor
ICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVzIGRvIG5vdCBmaXQgb24gb25lIGxpbmUs
IG9yIHRoZSBhcnJheSBjb250YWlucworICogICAgICAgb2JqZWN0IG9yIG5vbiBlbXB0eSBhcnJh
eSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUuCisgKgorICogSWYgdGhlIFZhbHVlIGhh
dmUgY29tbWVudHMgdGhlbiB0aGV5IGFyZSBvdXRwdXRlZCBhY2NvcmRpbmcgdG8gdGhlaXIKKyAj
Q29tbWVudFBsYWNlbWVudC4KKyAqCisgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENv
bW1lbnQoKQorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIuCisgKi8KKyNp
ZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5p
bmcoZGlzYWJsZSA6IDQ5OTYpIC8vIERlcml2aW5nIGZyb20gZGVwcmVjYXRlZCBjbGFzcworI2Vu
ZGlmCitjbGFzcyBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyIGlu
c3RlYWQiKSBKU09OX0FQSQorICAgIFN0eWxlZFN0cmVhbVdyaXRlciB7CitwdWJsaWM6CisgIC8q
KgorICAgKiBccGFyYW0gaW5kZW50YXRpb24gRWFjaCBsZXZlbCB3aWxsIGJlIGluZGVudGVkIGJ5
IHRoaXMgYW1vdW50IGV4dHJhLgorICAgKi8KKyAgU3R5bGVkU3RyZWFtV3JpdGVyKFN0cmluZyBp
bmRlbnRhdGlvbiA9ICJcdCIpOworICB+U3R5bGVkU3RyZWFtV3JpdGVyKCkgPSBkZWZhdWx0Owor
CitwdWJsaWM6CisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0
cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgorICAgKiBccGFyYW0gb3V0IFN0cmVh
bSB0byB3cml0ZSB0by4gKENhbiBiZSBvc3RyaW5nc3RyZWFtLCBlLmcuKQorICAgKiBccGFyYW0g
cm9vdCBWYWx1ZSB0byBzZXJpYWxpemUuCisgICAqIFxub3RlIFRoZXJlIGlzIG5vIHBvaW50IGlu
IGRlcml2aW5nIGZyb20gV3JpdGVyLCBzaW5jZSB3cml0ZSgpIHNob3VsZCBub3QKKyAgICogcmV0
dXJuIGEgdmFsdWUuCisgICAqLworICB2b2lkIHdyaXRlKE9TdHJlYW0mIG91dCwgY29uc3QgVmFs
dWUmIHJvb3QpOworCitwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZh
bHVlKTsKKyAgdm9pZCB3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgYm9v
bCBpc011bHRpbGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsdWUpOworICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3Jp
dGVXaXRoSW5kZW50KGNvbnN0IFN0cmluZyYgdmFsdWUpOworICB2b2lkIGluZGVudCgpOworICB2
b2lkIHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFs
dWUmIHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0
IFZhbHVlJiByb290KTsKKyAgc3RhdGljIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZh
bHVlJiB2YWx1ZSk7CisgIHN0YXRpYyBTdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IFN0cmluZyYg
dGV4dCk7CisKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxTdHJpbmc+IENoaWxkVmFsdWVzOworCisg
IENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgT1N0cmVhbSogZG9jdW1lbnRfOworICBTdHJp
bmcgaW5kZW50U3RyaW5nXzsKKyAgdW5zaWduZWQgaW50IHJpZ2h0TWFyZ2luX3s3NH07CisgIFN0
cmluZyBpbmRlbnRhdGlvbl87CisgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKKyAgYm9vbCBp
bmRlbnRlZF8gOiAxOworfTsKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5n
KHBvcCkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK1N0cmluZyBKU09O
X0FQSSB2YWx1ZVRvU3RyaW5nKEludCB2YWx1ZSk7CitTdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0
cmluZyhVSW50IHZhbHVlKTsKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQor
U3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSk7CitTdHJpbmcg
SlNPTl9BUEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSk7CitTdHJpbmcgSlNPTl9B
UEkKK3ZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlLAorICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgcHJlY2lzaW9uID0gVmFsdWU6OmRlZmF1bHRSZWFsUHJlY2lzaW9uLAorICAgICAgICAgICAg
ICBQcmVjaXNpb25UeXBlIHByZWNpc2lvblR5cGUgPSBQcmVjaXNpb25UeXBlOjpzaWduaWZpY2Fu
dERpZ2l0cyk7CitTdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhib29sIHZhbHVlKTsKK1N0
cmluZyBKU09OX0FQSSB2YWx1ZVRvUXVvdGVkU3RyaW5nKGNvbnN0IGNoYXIqIHZhbHVlKTsKKwor
Ly8vIFxicmllZiBPdXRwdXQgdXNpbmcgdGhlIFN0eWxlZFN0cmVhbVdyaXRlci4KKy8vLyBcc2Vl
IEpzb246Om9wZXJhdG9yPj4oKQorSlNPTl9BUEkgT1N0cmVhbSYgb3BlcmF0b3I8PChPU3RyZWFt
JiwgY29uc3QgVmFsdWUmIHJvb3QpOwogCiB9IC8vIG5hbWVzcGFjZSBKc29uCiAKKyNwcmFnbWEg
cGFjayhwb3ApCiAKKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dB
Uk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQ
UF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKIAogI2VuZGlmIC8vIEpTT05fV1JJVEVS
X0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvanNvbmNwcC5zbG4g
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL21ha2VmaWxlcy92czcxL2pzb25jcHAuc2xuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkZDJmOTFiNDQyMGI5YjIyMTA2MGY5NWQ5NDIyMzJlYzJmNGQzYmZjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3Zz
NzEvanNvbmNwcC5zbG4KKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi1NaWNyb3NvZnQg
VmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiA4LjAwCi1Qcm9qZWN0
KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImxpYl9qc29uIiwg
ImxpYl9qc29uLnZjcHJvaiIsICJ7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVC
fSIKLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0Ci0J
RW5kUHJvamVjdFNlY3Rpb24KLUVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTEx
RDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAianNvbnRlc3QiLCAianNvbnRlc3QudmNwcm9qIiwg
InsyNUFGMkREMi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9IgotCVByb2plY3RTZWN0aW9u
KFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKLQkJe0I4NEY3MjMxLTE2Q0UtNDFE
OC04QzA4LTdCNTIzRkY0MjI1Qn0gPSB7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQy
MjVCfQotCUVuZFByb2plY3RTZWN0aW9uCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgt
OEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInRlc3RfbGliX2pzb24iLCAidGVzdF9s
aWJfanNvbi52Y3Byb2oiLCAie0I3QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0i
Ci0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdAotCQl7
Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfSA9IHtCODRGNzIzMS0xNkNFLTQx
RDgtOEMwOC03QjUyM0ZGNDIyNUJ9Ci0JRW5kUHJvamVjdFNlY3Rpb24KLUVuZFByb2plY3QKLUds
b2JhbAotCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uKSA9IHByZVNvbHV0aW9u
Ci0JCURlYnVnID0gRGVidWcKLQkJZHVtbXkgPSBkdW1teQotCQlSZWxlYXNlID0gUmVsZWFzZQot
CUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uKSA9
IHBvc3RTb2x1dGlvbgotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfS5E
ZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgt
N0I1MjNGRjQyMjVCfS5EZWJ1Zy5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJe0I4NEY3MjMxLTE2
Q0UtNDFEOC04QzA4LTdCNTIzRkY0MjI1Qn0uZHVtbXkuQWN0aXZlQ2ZnID0gZHVtbXl8V2luMzIK
LQkJe0I4NEY3MjMxLTE2Q0UtNDFEOC04QzA4LTdCNTIzRkY0MjI1Qn0uZHVtbXkuQnVpbGQuMCA9
IGR1bW15fFdpbjMyCi0JCXtCODRGNzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9LlJl
bGVhc2UuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThD
MDgtN0I1MjNGRjQyMjVCfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXsyNUFG
MkREMi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9LkRlYnVnLkFjdGl2ZUNmZyA9IERlYnVn
fFdpbjMyCi0JCXsyNUFGMkREMi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9LkRlYnVnLkJ1
aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7MjVBRjJERDItRDM5Ni00NjY4LUIxODgtNDg4QzMzQjhF
NjIwfS5kdW1teS5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7MjVBRjJERDItRDM5Ni00NjY4
LUIxODgtNDg4QzMzQjhFNjIwfS5kdW1teS5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezI1QUYy
REQyLUQzOTYtNDY2OC1CMTg4LTQ4OEMzM0I4RTYyMH0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxl
YXNlfFdpbjMyCi0JCXsyNUFGMkREMi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9LlJlbGVh
c2UuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJe0I3QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEy
REVGMkI5QzI2RH0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJe0I3QTk2Qjc4LTI3
ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0uRGVidWcuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0J
CXtCN0E5NkI3OC0yNzgyLTQwRDItOEYzNy1BMkRFRjJCOUMyNkR9LmR1bW15LkFjdGl2ZUNmZyA9
IERlYnVnfFdpbjMyCi0JCXtCN0E5NkI3OC0yNzgyLTQwRDItOEYzNy1BMkRFRjJCOUMyNkR9LmR1
bW15LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7QjdBOTZCNzgtMjc4Mi00MEQyLThGMzctQTJE
RUYyQjlDMjZEfS5SZWxlYXNlLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJe0I3QTk2Qjc4
LTI3ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0uUmVsZWFzZS5CdWlsZC4wID0gUmVsZWFzZXxX
aW4zMgotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKEV4dGVuc2liaWxpdHlHbG9i
YWxzKSA9IHBvc3RTb2x1dGlvbgotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKEV4
dGVuc2liaWxpdHlBZGRJbnMpID0gcG9zdFNvbHV0aW9uCi0JRW5kR2xvYmFsU2VjdGlvbgotRW5k
R2xvYmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VmaWxlcy92czcxL2pzb250ZXN0LnZjcHJvaiBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvbWFrZWZpbGVzL3ZzNzEvanNvbnRlc3QudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1NjJjNzFmNjFhZDRiOGI0N2ViMjBlNTZkMDM4YTAxNTgwY2FlYTYzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVz
L3ZzNzEvanNvbnRlc3QudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/PgotPFZpc3VhbFN0dWRp
b1Byb2plY3QKLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyIKLQlWZXJzaW9uPSI3LjEwIgotCU5h
bWU9Impzb250ZXN0IgotCVByb2plY3RHVUlEPSJ7MjVBRjJERDItRDM5Ni00NjY4LUIxODgtNDg4
QzMzQjhFNjIwfSIKLQlLZXl3b3JkPSJXaW4zMlByb2oiPgotCTxQbGF0Zm9ybXM+Ci0JCTxQbGF0
Zm9ybQotCQkJTmFtZT0iV2luMzIiLz4KLQk8L1BsYXRmb3Jtcz4KLQk8Q29uZmlndXJhdGlvbnM+
Ci0JCTxDb25maWd1cmF0aW9uCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCU91dHB1dERpcmVj
dG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy9qc29udGVzdCIKLQkJCUludGVybWVkaWF0ZURp
cmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy9qc29udGVzdCIKLQkJCUNvbmZpZ3VyYXRp
b25UeXBlPSIxIgotCQkJQ2hhcmFjdGVyU2V0PSIyIj4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQlPcHRpbWl6YXRpb249IjAiCi0JCQkJQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcz0iLi4vLi4vaW5jbHVkZSIKLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz0iV0lOMzI7X0RFQlVHO19DT05TT0xFIgotCQkJCU1pbmltYWxSZWJ1aWxkPSJUUlVFIgotCQkJ
CUJhc2ljUnVudGltZUNoZWNrcz0iMyIKLQkJCQlSdW50aW1lTGlicmFyeT0iMSIKLQkJCQlVc2VQ
cmVjb21waWxlZEhlYWRlcj0iMCIKLQkJCQlXYXJuaW5nTGV2ZWw9IjMiCi0JCQkJRGV0ZWN0NjRC
aXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9
IjQiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4KLQkJCTxUb29s
Ci0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIgotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKS9qc29u
dGVzdC5leGUiCi0JCQkJTGlua0luY3JlbWVudGFsPSIyIgotCQkJCUdlbmVyYXRlRGVidWdJbmZv
cm1hdGlvbj0iVFJVRSIKLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcikvanNvbnRl
c3QucGRiIgotCQkJCVN1YlN5c3RlbT0iMSIKLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+Ci0JCQk8
VG9vbAotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQb3N0
QnVpbGRFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9v
bCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4KLQkJCTxUb29s
Ci0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1l
PSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0i
VkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYkRlcGxv
eW1lbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0
b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJH
ZW5lcmF0b3JUb29sIi8+Ci0JCTwvQ29uZmlndXJhdGlvbj4KLQkJPENvbmZpZ3VyYXRpb24KLQkJ
CU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4uLy4uL2J1aWxkL3Zz
NzEvcmVsZWFzZS9qc29udGVzdCIKLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLi4vLi4vYnVp
bGQvdnM3MS9yZWxlYXNlL2pzb250ZXN0IgotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiCi0JCQlD
aGFyYWN0ZXJTZXQ9IjIiPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uLy4uL2luY2x1ZGUiCi0JCQkJUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfQ09OU09MRSIKLQkJCQlSdW50aW1l
TGlicmFyeT0iMCIKLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKLQkJCQlXYXJuaW5nTGV2
ZWw9IjMiCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJCURl
YnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0b21C
dWlsZFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIgotCQkJCU91dHB1
dEZpbGU9IiQoT3V0RGlyKS9qc29udGVzdC5leGUiCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIgot
CQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSIKLQkJCQlTdWJTeXN0ZW09IjEiCi0J
CQkJT3B0aW1pemVSZWZlcmVuY2VzPSIyIgotCQkJCUVuYWJsZUNPTURBVEZvbGRpbmc9IjIiCi0J
CQkJVGFyZ2V0TWFjaGluZT0iMSIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+
Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAot
CQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQ
cmVMaW5rRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxl
clRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JU
b29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4KLQkJ
CTxUb29sCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlO
YW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1l
PSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQk8L0NvbmZpZ3Vy
YXRpb24+Ci0JPC9Db25maWd1cmF0aW9ucz4KLQk8UmVmZXJlbmNlcz4KLQk8L1JlZmVyZW5jZXM+
Ci0JPEZpbGVzPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcanNvbnRlc3Ry
dW5uZXJcbWFpbi5jcHAiPgotCQk8L0ZpbGU+Ci0JPC9GaWxlcz4KLQk8R2xvYmFscz4KLQk8L0ds
b2JhbHM+Ci08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VmaWxl
cy92czcxL2xpYl9qc29uLnZjcHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvbGliX2pzb24udmNw
cm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYWE1OTc4YTFmZWYzNzc5NWVlZmQx
OGRjM2E4ODNjODZlMzlkOWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvbGliX2pzb24udmNwcm9qCisrKyAvZGV2L251
bGwKQEAgLTEsMjE0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRv
d3MtMTI1MiI/PgotPFZpc3VhbFN0dWRpb1Byb2plY3QKLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMr
KyIKLQlWZXJzaW9uPSI3LjEwIgotCU5hbWU9ImxpYl9qc29uIgotCVByb2plY3RHVUlEPSJ7Qjg0
RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfSIKLQlLZXl3b3JkPSJXaW4zMlByb2oi
PgotCTxQbGF0Zm9ybXM+Ci0JCTxQbGF0Zm9ybQotCQkJTmFtZT0iV2luMzIiLz4KLQk8L1BsYXRm
b3Jtcz4KLQk8Q29uZmlndXJhdGlvbnM+Ci0JCTxDb25maWd1cmF0aW9uCi0JCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKLQkJCU91dHB1dERpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy9saWJf
anNvbiIKLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy9s
aWJfanNvbiIKLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSI0IgotCQkJQ2hhcmFjdGVyU2V0PSIyIj4K
LQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQlPcHRpbWl6YXRpb249
IjAiCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi4vLi4vaW5jbHVkZSIKLQkJ
CQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0RFQlVHO19MSUIiCi0JCQkJU3RyaW5n
UG9vbGluZz0iVFJVRSIKLQkJCQlNaW5pbWFsUmVidWlsZD0iVFJVRSIKLQkJCQlCYXNpY1J1bnRp
bWVDaGVja3M9IjMiCi0JCQkJUnVudGltZUxpYnJhcnk9IjEiCi0JCQkJRW5hYmxlRnVuY3Rpb25M
ZXZlbExpbmtpbmc9IlRSVUUiCi0JCQkJRGlzYWJsZUxhbmd1YWdlRXh0ZW5zaW9ucz0iVFJVRSIK
LQkJCQlGb3JjZUNvbmZvcm1hbmNlSW5Gb3JMb29wU2NvcGU9IkZBTFNFIgotCQkJCVJ1bnRpbWVU
eXBlSW5mbz0iVFJVRSIKLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKLQkJCQlXYXJuaW5n
TGV2ZWw9IjMiCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJ
CURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjQiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0
b21CdWlsZFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNMaWJyYXJpYW5Ub29sIgotCQkJ
CU91dHB1dEZpbGU9IiQoT3V0RGlyKS9qc29uX3ZjNzFfbGlibXRkLmxpYiIvPgotCQkJPFRvb2wK
LQkJCQlOYW1lPSJWQ01JRExUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUG9zdEJ1aWxk
RXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4K
LQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJ
CU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNX
ZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDWE1M
RGF0YUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBl
ckdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2Vk
V3JhcHBlckdlbmVyYXRvclRvb2wiLz4KLQkJPC9Db25maWd1cmF0aW9uPgotCQk8Q29uZmlndXJh
dGlvbgotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCU91dHB1dERpcmVjdG9yeT0iLi4vLi4v
YnVpbGQvdnM3MS9yZWxlYXNlL2xpYl9qc29uIgotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIu
Li8uLi9idWlsZC92czcxL3JlbGVhc2UvbGliX2pzb24iCi0JCQlDb25maWd1cmF0aW9uVHlwZT0i
NCIKLQkJCUNoYXJhY3RlclNldD0iMiIKLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iVFJV
RSI+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJR2xvYmFsT3B0
aW1pemF0aW9ucz0iVFJVRSIKLQkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9IlRSVUUiCi0J
CQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi4vLi4vaW5jbHVkZSIKLQkJCQlQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7TkRFQlVHO19MSUIiCi0JCQkJU3RyaW5nUG9vbGlu
Zz0iVFJVRSIKLQkJCQlSdW50aW1lTGlicmFyeT0iMCIKLQkJCQlFbmFibGVGdW5jdGlvbkxldmVs
TGlua2luZz0iVFJVRSIKLQkJCQlEaXNhYmxlTGFuZ3VhZ2VFeHRlbnNpb25zPSJUUlVFIgotCQkJ
CUZvcmNlQ29uZm9ybWFuY2VJbkZvckxvb3BTY29wZT0iRkFMU0UiCi0JCQkJUnVudGltZVR5cGVJ
bmZvPSJUUlVFIgotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgotCQkJCUFzc2VtYmxlck91
dHB1dD0iNCIKLQkJCQlXYXJuaW5nTGV2ZWw9IjMiCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0
eVByb2JsZW1zPSJUUlVFIgotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiLz4KLQkJCTxU
b29sCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0i
VkNMaWJyYXJpYW5Ub29sIgotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKS9qc29uX3ZjNzFfbGli
bXQubGliIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4KLQkJCTxUb29sCi0J
CQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQ
cmVCdWlsZEV2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRv
b2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJ
PFRvb2wKLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxU
b29sCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlO
YW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1l
PSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQk8L0NvbmZpZ3Vy
YXRpb24+Ci0JCTxDb25maWd1cmF0aW9uCi0JCQlOYW1lPSJkdW1teXxXaW4zMiIKLQkJCU91dHB1
dERpcmVjdG9yeT0iJChDb25maWd1cmF0aW9uTmFtZSkiCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rv
cnk9IiQoQ29uZmlndXJhdGlvbk5hbWUpIgotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiCi0JCQlD
aGFyYWN0ZXJTZXQ9IjIiCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IlRSVUUiPgotCQkJ
PFRvb2wKLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCUdsb2JhbE9wdGltaXphdGlv
bnM9IlRSVUUiCi0JCQkJRW5hYmxlSW50cmluc2ljRnVuY3Rpb25zPSJUUlVFIgotCQkJCUFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uLy4uL2luY2x1ZGUiCi0JCQkJUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfTElCIgotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUi
Ci0JCQkJUnVudGltZUxpYnJhcnk9IjQiCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9
IlRSVUUiCi0JCQkJRGlzYWJsZUxhbmd1YWdlRXh0ZW5zaW9ucz0iVFJVRSIKLQkJCQlGb3JjZUNv
bmZvcm1hbmNlSW5Gb3JMb29wU2NvcGU9IkZBTFNFIgotCQkJCVJ1bnRpbWVUeXBlSW5mbz0iVFJV
RSIKLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKLQkJCQlBc3NlbWJsZXJPdXRwdXQ9IjQi
Ci0JCQkJV2FybmluZ0xldmVsPSIzIgotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVt
cz0iVFJVRSIKLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIi8+Ci0JCQk8VG9vbAotCQkJ
CU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTGlua2Vy
VG9vbCIKLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiCi0JCQkJU3ViU3lzdGVt
PSIyIgotCQkJCU9wdGltaXplUmVmZXJlbmNlcz0iMiIKLQkJCQlFbmFibGVDT01EQVRGb2xkaW5n
PSIyIgotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNSURM
VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPgotCQkJ
PFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5h
bWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1Jlc291cmNl
Q29tcGlsZXJUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2Vu
ZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29s
Ii8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4KLQkJCTxUb29s
Ci0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0J
CQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4KLQkJPC9D
b25maWd1cmF0aW9uPgotCTwvQ29uZmlndXJhdGlvbnM+Ci0JPFJlZmVyZW5jZXM+Ci0JPC9SZWZl
cmVuY2VzPgotCTxGaWxlcz4KLQkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caW5jbHVk
ZVxqc29uXGF1dG9saW5rLmgiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXGluY2x1ZGVcanNvblxjb25maWcuaCI+Ci0JCTwvRmlsZT4KLQkJPEZpbGUKLQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5caW5jbHVkZVxqc29uXGZlYXR1cmVzLmgiPgotCQk8L0ZpbGU+Ci0J
CTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGluY2x1ZGVcanNvblxmb3J3YXJkcy5oIj4K
LQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxpbmNsdWRlXGpzb25c
anNvbi5oIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNc
bGliX2pzb25canNvbl9iYXRjaGFsbG9jYXRvci5oIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcbGliX2pzb25canNvbl9pbnRlcm5hbGFycmF5LmlubCI+
Ci0JCTwvRmlsZT4KLQkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cc3JjXGxpYl9qc29u
XGpzb25faW50ZXJuYWxtYXAuaW5sIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlxzcmNcbGliX2pzb25canNvbl9yZWFkZXIuY3BwIj4KLQkJPC9GaWxlPgotCQk8
RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcbGliX2pzb25canNvbl92YWx1ZS5jcHAi
PgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNyY1xsaWJfanNv
blxqc29uX3ZhbHVlaXRlcmF0b3IuaW5sIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRp
dmVQYXRoPSIuLlwuLlxzcmNcbGliX2pzb25canNvbl93cml0ZXIuY3BwIj4KLQkJPC9GaWxlPgot
CQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxpbmNsdWRlXGpzb25ccmVhZGVyLmgiPgot
CQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGluY2x1ZGVcanNvblx2
YWx1ZS5oIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxpbmNs
dWRlXGpzb25cd3JpdGVyLmgiPgotCQk8L0ZpbGU+Ci0JPC9GaWxlcz4KLQk8R2xvYmFscz4KLQk8
L0dsb2JhbHM+Ci08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2Vm
aWxlcy92czcxL3Rlc3RfbGliX2pzb24udmNwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tYWtlZmlsZXMvdnM3MS90ZXN0
X2xpYl9qc29uLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWViYjk4NmE2
NjViNWIxMTVkMGQzYTc0YzBkYzgzOTAzNWNkYjk5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VmaWxlcy92czcxL3Rlc3RfbGliX2pzb24u
dmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/PgotPFZpc3VhbFN0dWRpb1Byb2plY3QKLQlQcm9q
ZWN0VHlwZT0iVmlzdWFsIEMrKyIKLQlWZXJzaW9uPSI3LjEwIgotCU5hbWU9InRlc3RfbGliX2pz
b24iCi0JUHJvamVjdEdVSUQ9IntCN0E5NkI3OC0yNzgyLTQwRDItOEYzNy1BMkRFRjJCOUMyNkR9
IgotCVJvb3ROYW1lc3BhY2U9InRlc3RfbGliX2pzb24iCi0JS2V5d29yZD0iV2luMzJQcm9qIj4K
LQk8UGxhdGZvcm1zPgotCQk8UGxhdGZvcm0KLQkJCU5hbWU9IldpbjMyIi8+Ci0JPC9QbGF0Zm9y
bXM+Ci0JPENvbmZpZ3VyYXRpb25zPgotCQk8Q29uZmlndXJhdGlvbgotCQkJTmFtZT0iRGVidWd8
V2luMzIiCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4uLy4uL2J1aWxkL3ZzNzEvZGVidWcvdGVzdF9s
aWJfanNvbiIKLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1
Zy90ZXN0X2xpYl9qc29uIgotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiCi0JCQlDaGFyYWN0ZXJT
ZXQ9IjIiPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCU9wdGlt
aXphdGlvbj0iMCIKLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLi8uLi9pbmNs
dWRlIgotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfREVCVUc7X0NPTlNPTEUi
Ci0JCQkJTWluaW1hbFJlYnVpbGQ9IlRSVUUiCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIzIgot
CQkJCVJ1bnRpbWVMaWJyYXJ5PSIxIgotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgotCQkJ
CVdhcm5pbmdMZXZlbD0iMyIKLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRS
VUUiCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iNCIvPgotCQkJPFRvb2wKLQkJCQlOYW1l
PSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wi
Ci0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpL3Rlc3RfbGliX2pzb24uZXhlIgotCQkJCUxpbmtJ
bmNyZW1lbnRhbD0iMiIKLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiCi0JCQkJ
UHJvZ3JhbURhdGFiYXNlRmlsZT0iJChPdXREaXIpL3Rlc3RfbGliX2pzb24ucGRiIgotCQkJCVN1
YlN5c3RlbT0iMSIKLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9
IlZDTUlETFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wi
Ci0JCQkJRGVzY3JpcHRpb249IlJ1bm5pbmcgYWxsIHVuaXQgdGVzdHMiCi0JCQkJQ29tbWFuZExp
bmU9IiQoVGFyZ2V0UGF0aCkiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50
VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4KLQkJCTxU
b29sCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlO
YW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFt
ZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYkRl
cGxveW1lbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5l
cmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBw
ZXJHZW5lcmF0b3JUb29sIi8+Ci0JCTwvQ29uZmlndXJhdGlvbj4KLQkJPENvbmZpZ3VyYXRpb24K
LQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4uLy4uL2J1aWxk
L3ZzNzEvcmVsZWFzZS90ZXN0X2xpYl9qc29uIgotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIu
Li8uLi9idWlsZC92czcxL3JlbGVhc2UvdGVzdF9saWJfanNvbiIKLQkJCUNvbmZpZ3VyYXRpb25U
eXBlPSIxIgotCQkJQ2hhcmFjdGVyU2V0PSIyIj4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLi8uLi9pbmNs
dWRlIgotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtOREVCVUc7X0NPTlNPTEUi
Ci0JCQkJUnVudGltZUxpYnJhcnk9IjAiCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCi0J
CQkJV2FybmluZ0xldmVsPSIzIgotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0i
VFJVRSIKLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIi8+Ci0JCQk8VG9vbAotCQkJCU5h
bWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTGlua2VyVG9v
bCIKLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcikvdGVzdF9saWJfanNvbi5leGUiCi0JCQkJTGlu
a0luY3JlbWVudGFsPSIxIgotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSIKLQkJ
CQlTdWJTeXN0ZW09IjEiCi0JCQkJT3B0aW1pemVSZWZlcmVuY2VzPSIyIgotCQkJCUVuYWJsZUNP
TURBVEZvbGRpbmc9IjIiCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPgotCQkJPFRvb2wKLQkJCQlO
YW1lPSJWQ01JRExUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRU
b29sIgotCQkJCURlc2NyaXB0aW9uPSJSdW5uaW5nIGFsbCB1bml0IHRlc3RzIgotCQkJCUNvbW1h
bmRMaW5lPSIkKFRhcmdldFBhdGgpIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUHJlQnVpbGRF
dmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+Ci0J
CQk8VG9vbAotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4KLQkJCTxUb29sCi0J
CQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJ
CU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNX
ZWJEZXBsb3ltZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVy
R2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRX
cmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQk8L0NvbmZpZ3VyYXRpb24+Ci0JPC9Db25maWd1cmF0
aW9ucz4KLQk8UmVmZXJlbmNlcz4KLQk8L1JlZmVyZW5jZXM+Ci0JPEZpbGVzPgotCQk8RmlsZQot
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcdGVzdF9saWJfanNvblxqc29udGVzdC5jcHAiPgot
CQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNyY1x0ZXN0X2xpYl9q
c29uXGpzb250ZXN0LmgiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4u
XC4uXHNyY1x0ZXN0X2xpYl9qc29uXG1haW4uY3BwIj4KLQkJPC9GaWxlPgotCTwvRmlsZXM+Ci0J
PEdsb2JhbHM+Ci0JPC9HbG9iYWxzPgotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9tYWtlcmVsZWFzZS5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZXJlbGVhc2UucHkKaW5kZXggNmI4ZWVj
MzA3MDc3OGU1NzZhYmE0OTcyN2NlMjBmYmJkZGUwMTNhYS4uYmM3MTZjYmFiM2MzY2ZhMThkZWE3
ODk2MzgyZDA4NTJhMTQyYTI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tYWtlcmVsZWFzZS5weQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL21ha2VyZWxlYXNlLnB5CkBAIC0xLDMgKzEsOCBAQAorIyBDb3B5cmlnaHQgMjAxMCBC
YXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQg
dW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0
YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKwog
IiIiVGFnIHRoZSBzYW5kYm94IGZvciByZWxlYXNlLCBtYWtlIHNvdXJjZSBhbmQgZG9jIHRhcmJh
bGxzLgogCiBSZXF1aXJlcyBQeXRob24gMi42CkBAIC0xMCw3ICsxNSwxMiBAQCBweXRob24gbWFr
ZXJlbGVhc2UucHkgLS1mb3JjZSAtLXJldGFnIC0tcGxhdGZvcm09bXN2YzYsbXN2YzcxLG1zdmM4
MCxtaW5ndyAtdWJsZQogCiBFeGFtcGxlIG9mIGludm9jYXRpb24gd2hlbiBkb2luZyBhIHJlbGVh
c2U6CiBweXRob24gbWFrZXJlbGVhc2UucHkgMC41LjAgMC42LjAtZGV2CisKK05vdGU6IFRoaXMg
d2FzIGZvciBTdWJ2ZXJzaW9uLiBOb3cgdGhhdCB3ZSBhcmUgaW4gR2l0SHViLCB3ZSBkbyBub3QK
K25lZWQgdG8gYnVpbGQgdmVyc2lvbmVkIHRhcmJhbGxzIGFueW1vcmUsIHNvIG1ha2VyZWxlYXNl
LnB5IGlzIGRlZnVuY3QuCiAiIiIKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j
dGlvbgogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCkBAIC0z
MCwxNDAgKzQwLDE0MCBAQCBTVk5fVEFHX1JPT1QgPSBTVk5fUk9PVCArICd0YWdzL2pzb25jcHAn
CiBTQ09OU19MT0NBTF9VUkwgPSAnaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9zY29u
cy9maWxlcy9zY29ucy1sb2NhbC8xLjIuMC9zY29ucy1sb2NhbC0xLjIuMC50YXIuZ3ovZG93bmxv
YWQnCiBTT1VSQ0VGT1JHRV9QUk9KRUNUID0gJ2pzb25jcHAnCiAKLWRlZiBzZXRfdmVyc2lvbigg
dmVyc2lvbiApOgorZGVmIHNldF92ZXJzaW9uKHZlcnNpb24pOgogICAgIHdpdGggb3BlbigndmVy
c2lvbicsJ3diJykgYXMgZjoKLSAgICAgICAgZi53cml0ZSggdmVyc2lvbi5zdHJpcCgpICkKKyAg
ICAgICAgZi53cml0ZSh2ZXJzaW9uLnN0cmlwKCkpCiAKLWRlZiBybWRpcl9pZl9leGlzdCggZGly
X3BhdGggKToKLSAgICBpZiBvcy5wYXRoLmlzZGlyKCBkaXJfcGF0aCApOgotICAgICAgICBzaHV0
aWwucm10cmVlKCBkaXJfcGF0aCApCitkZWYgcm1kaXJfaWZfZXhpc3QoZGlyX3BhdGgpOgorICAg
IGlmIG9zLnBhdGguaXNkaXIoZGlyX3BhdGgpOgorICAgICAgICBzaHV0aWwucm10cmVlKGRpcl9w
YXRoKQogCiBjbGFzcyBTVk5FcnJvcihFeGNlcHRpb24pOgogICAgIHBhc3MKIAotZGVmIHN2bl9j
b21tYW5kKCBjb21tYW5kLCAqYXJncyApOgorZGVmIHN2bl9jb21tYW5kKGNvbW1hbmQsICphcmdz
KToKICAgICBjbWQgPSBbJ3N2bicsICctLW5vbi1pbnRlcmFjdGl2ZScsIGNvbW1hbmRdICsgbGlz
dChhcmdzKQotICAgIHByaW50ICdSdW5uaW5nOicsICcgJy5qb2luKCBjbWQgKQotICAgIHByb2Nl
c3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQsCisgICAgcHJpbnQoJ1J1bm5pbmc6JywgJyAnLmpv
aW4oY21kKSkKKyAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKICAgICBz
dGRvdXQgPSBwcm9jZXNzLmNvbW11bmljYXRlKClbMF0KICAgICBpZiBwcm9jZXNzLnJldHVybmNv
ZGU6Ci0gICAgICAgIGVycm9yID0gU1ZORXJyb3IoICdTVk4gY29tbWFuZCBmYWlsZWQ6XG4nICsg
c3Rkb3V0ICkKKyAgICAgICAgZXJyb3IgPSBTVk5FcnJvcignU1ZOIGNvbW1hbmQgZmFpbGVkOlxu
JyArIHN0ZG91dCkKICAgICAgICAgZXJyb3IucmV0dXJuY29kZSA9IHByb2Nlc3MucmV0dXJuY29k
ZQogICAgICAgICByYWlzZSBlcnJvcgogICAgIHJldHVybiBzdGRvdXQKIAogZGVmIGNoZWNrX25v
X3BlbmRpbmdfY29tbWl0KCk6CiAgICAgIiIiQ2hlY2tzIHRoYXQgdGhlcmUgaXMgbm8gcGVuZGlu
ZyBjb21taXQgaW4gdGhlIHNhbmRib3guIiIiCi0gICAgc3Rkb3V0ID0gc3ZuX2NvbW1hbmQoICdz
dGF0dXMnLCAnLS14bWwnICkKLSAgICBldHJlZSA9IEVsZW1lbnRUcmVlLmZyb21zdHJpbmcoIHN0
ZG91dCApCisgICAgc3Rkb3V0ID0gc3ZuX2NvbW1hbmQoJ3N0YXR1cycsICctLXhtbCcpCisgICAg
ZXRyZWUgPSBFbGVtZW50VHJlZS5mcm9tc3RyaW5nKHN0ZG91dCkKICAgICBtc2cgPSBbXQotICAg
IGZvciBlbnRyeSBpbiBldHJlZS5nZXRpdGVyYXRvciggJ2VudHJ5JyApOgorICAgIGZvciBlbnRy
eSBpbiBldHJlZS5nZXRpdGVyYXRvcignZW50cnknKToKICAgICAgICAgcGF0aCA9IGVudHJ5Lmdl
dCgncGF0aCcpCiAgICAgICAgIHN0YXR1cyA9IGVudHJ5LmZpbmQoJ3djLXN0YXR1cycpLmdldCgn
aXRlbScpCiAgICAgICAgIGlmIHN0YXR1cyAhPSAndW52ZXJzaW9uZWQnIGFuZCBwYXRoICE9ICd2
ZXJzaW9uJzoKLSAgICAgICAgICAgIG1zZy5hcHBlbmQoICdGaWxlICIlcyIgaGFzIHBlbmRpbmcg
Y2hhbmdlIChzdGF0dXM9IiVzIiknICUgKHBhdGgsIHN0YXR1cykgKQorICAgICAgICAgICAgbXNn
LmFwcGVuZCgnRmlsZSAiJXMiIGhhcyBwZW5kaW5nIGNoYW5nZSAoc3RhdHVzPSIlcyIpJyAlIChw
YXRoLCBzdGF0dXMpKQogICAgIGlmIG1zZzoKLSAgICAgICAgbXNnLmluc2VydCgwLCAnUGVuZGlu
ZyBjaGFuZ2UgdG8gY29tbWl0IGZvdW5kIGluIHNhbmRib3guIENvbW1pdCB0aGVtIGZpcnN0IScg
KQotICAgIHJldHVybiAnXG4nLmpvaW4oIG1zZyApCisgICAgICAgIG1zZy5pbnNlcnQoMCwgJ1Bl
bmRpbmcgY2hhbmdlIHRvIGNvbW1pdCBmb3VuZCBpbiBzYW5kYm94LiBDb21taXQgdGhlbSBmaXJz
dCEnKQorICAgIHJldHVybiAnXG4nLmpvaW4obXNnKQogCi1kZWYgc3ZuX2pvaW5fdXJsKCBiYXNl
X3VybCwgc3VmZml4ICk6CitkZWYgc3ZuX2pvaW5fdXJsKGJhc2VfdXJsLCBzdWZmaXgpOgogICAg
IGlmIG5vdCBiYXNlX3VybC5lbmRzd2l0aCgnLycpOgogICAgICAgICBiYXNlX3VybCArPSAnLycK
ICAgICBpZiBzdWZmaXguc3RhcnRzd2l0aCgnLycpOgogICAgICAgICBzdWZmaXggPSBzdWZmaXhb
MTpdCiAgICAgcmV0dXJuIGJhc2VfdXJsICsgc3VmZml4CiAKLWRlZiBzdm5fY2hlY2tfaWZfdGFn
X2V4aXN0KCB0YWdfdXJsICk6CitkZWYgc3ZuX2NoZWNrX2lmX3RhZ19leGlzdCh0YWdfdXJsKToK
ICAgICAiIiJDaGVja3MgaWYgYSB0YWcgZXhpc3QuCiAgICAgUmV0dXJuczogVHJ1ZSBpZiB0aGUg
dGFnIGV4aXN0LCBGYWxzZSBvdGhlcndpc2UuCiAgICAgIiIiCiAgICAgdHJ5OgotICAgICAgICBs
aXN0X3N0ZG91dCA9IHN2bl9jb21tYW5kKCAnbGlzdCcsIHRhZ191cmwgKQotICAgIGV4Y2VwdCBT
Vk5FcnJvciwgZToKKyAgICAgICAgbGlzdF9zdGRvdXQgPSBzdm5fY29tbWFuZCgnbGlzdCcsIHRh
Z191cmwpCisgICAgZXhjZXB0IFNWTkVycm9yIGFzIGU6CiAgICAgICAgIGlmIGUucmV0dXJuY29k
ZSAhPSAxIG9yIG5vdCBzdHIoZSkuZmluZCgndGFnX3VybCcpOgogICAgICAgICAgICAgcmFpc2Ug
ZQogICAgICAgICAjIG90aGVyd2lzZSBpZ25vcmUgZXJyb3IsIG1lYW5pbmcgdGFnIGRvZXMgbm90
IGV4aXN0CiAgICAgICAgIHJldHVybiBGYWxzZQogICAgIHJldHVybiBUcnVlCiAKLWRlZiBzdm5f
Y29tbWl0KCBtZXNzYWdlICk6CitkZWYgc3ZuX2NvbW1pdChtZXNzYWdlKToKICAgICAiIiJDb21t
aXQgdGhlIHNhbmRib3gsIHByb3ZpZGluZyB0aGUgc3BlY2lmaWVkIGNvbW1lbnQuCiAgICAgIiIi
Ci0gICAgc3ZuX2NvbW1hbmQoICdjaScsICctbScsIG1lc3NhZ2UgKQorICAgIHN2bl9jb21tYW5k
KCdjaScsICctbScsIG1lc3NhZ2UpCiAKLWRlZiBzdm5fdGFnX3NhbmRib3goIHRhZ191cmwsIG1l
c3NhZ2UgKToKK2RlZiBzdm5fdGFnX3NhbmRib3godGFnX3VybCwgbWVzc2FnZSk6CiAgICAgIiIi
TWFrZXMgYSB0YWcgYmFzZWQgb24gdGhlIHNhbmRib3ggcmV2aXNpb25zLgogICAgICIiIgotICAg
IHN2bl9jb21tYW5kKCAnY29weScsICctbScsIG1lc3NhZ2UsICcuJywgdGFnX3VybCApCisgICAg
c3ZuX2NvbW1hbmQoJ2NvcHknLCAnLW0nLCBtZXNzYWdlLCAnLicsIHRhZ191cmwpCiAKLWRlZiBz
dm5fcmVtb3ZlX3RhZyggdGFnX3VybCwgbWVzc2FnZSApOgorZGVmIHN2bl9yZW1vdmVfdGFnKHRh
Z191cmwsIG1lc3NhZ2UpOgogICAgICIiIlJlbW92ZXMgYW4gZXhpc3RpbmcgdGFnLgogICAgICIi
IgotICAgIHN2bl9jb21tYW5kKCAnZGVsZXRlJywgJy1tJywgbWVzc2FnZSwgdGFnX3VybCApCisg
ICAgc3ZuX2NvbW1hbmQoJ2RlbGV0ZScsICctbScsIG1lc3NhZ2UsIHRhZ191cmwpCiAKLWRlZiBz
dm5fZXhwb3J0KCB0YWdfdXJsLCBleHBvcnRfZGlyICk6CitkZWYgc3ZuX2V4cG9ydCh0YWdfdXJs
LCBleHBvcnRfZGlyKToKICAgICAiIiJFeHBvcnRzIHRoZSB0YWdfdXJsIHJldmlzaW9uIHRvIGV4
cG9ydF9kaXIuCiAgICAgICAgVGFyZ2V0IGRpcmVjdG9yeSwgaW5jbHVkaW5nIGl0cyBwYXJlbnQg
aXMgY3JlYXRlZCBpZiBpdCBkb2VzIG5vdCBleGlzdC4KICAgICAgICBJZiB0aGUgZGlyZWN0b3J5
IGV4cG9ydF9kaXIgZXhpc3QsIGl0IGlzIGRlbGV0ZWQgYmVmb3JlIGV4cG9ydCBwcm9jZWVkLgog
ICAgICIiIgotICAgIHJtZGlyX2lmX2V4aXN0KCBleHBvcnRfZGlyICkKLSAgICBzdm5fY29tbWFu
ZCggJ2V4cG9ydCcsIHRhZ191cmwsIGV4cG9ydF9kaXIgKQorICAgIHJtZGlyX2lmX2V4aXN0KGV4
cG9ydF9kaXIpCisgICAgc3ZuX2NvbW1hbmQoJ2V4cG9ydCcsIHRhZ191cmwsIGV4cG9ydF9kaXIp
CiAKLWRlZiBmaXhfc291cmNlc19lb2woIGRpc3RfZGlyICk6CitkZWYgZml4X3NvdXJjZXNfZW9s
KGRpc3RfZGlyKToKICAgICAiIiJTZXQgZmlsZSBFT0wgZm9yIHRhcmJhbGwgZGlzdHJpYnV0aW9u
LgogICAgICIiIgotICAgIHByaW50ICdQcmVwYXJpbmcgZXhwb3J0ZWQgc291cmNlIGZpbGUgRU9M
IGZvciBkaXN0cmlidXRpb24uLi4nCisgICAgcHJpbnQoJ1ByZXBhcmluZyBleHBvcnRlZCBzb3Vy
Y2UgZmlsZSBFT0wgZm9yIGRpc3RyaWJ1dGlvbi4uLicpCiAgICAgcHJ1bmVfZGlycyA9IGFudGds
b2IucHJ1bmVfZGlycyArICdzY29ucy1sb2NhbCogLi9idWlsZCogLi9saWJzIC4vZGlzdCcKLSAg
ICB3aW5fc291cmNlcyA9IGFudGdsb2IuZ2xvYiggZGlzdF9kaXIsIAorICAgIHdpbl9zb3VyY2Vz
ID0gYW50Z2xvYi5nbG9iKGRpc3RfZGlyLCAKICAgICAgICAgaW5jbHVkZXMgPSAnKiovKi5zbG4g
KiovKi52Y3Byb2onLAotICAgICAgICBwcnVuZV9kaXJzID0gcHJ1bmVfZGlycyApCi0gICAgdW5p
eF9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKCBkaXN0X2RpciwKKyAgICAgICAgcHJ1bmVfZGlycyA9
IHBydW5lX2RpcnMpCisgICAgdW5peF9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKGRpc3RfZGlyLAog
ICAgICAgICBpbmNsdWRlcyA9ICcnJyoqLyouaCAqKi8qLmNwcCAqKi8qLmlubCAqKi8qLnR4dCAq
Ki8qLmRveCAqKi8qLnB5ICoqLyouaHRtbCAqKi8qLmluCiAgICAgICAgIHNjb25zY3JpcHQgKi5q
c29uICouZXhwZWN0ZWQgQVVUSE9SUyBMSUNFTlNFJycnLAogICAgICAgICBleGNsdWRlcyA9IGFu
dGdsb2IuZGVmYXVsdF9leGNsdWRlcyArICdzY29ucy5weSBzY29uc2lnbi5weSBzY29ucy0qJywK
LSAgICAgICAgcHJ1bmVfZGlycyA9IHBydW5lX2RpcnMgKQorICAgICAgICBwcnVuZV9kaXJzID0g
cHJ1bmVfZGlycykKICAgICBmb3IgcGF0aCBpbiB3aW5fc291cmNlczoKLSAgICAgICAgZml4ZW9s
LmZpeF9zb3VyY2VfZW9sKCBwYXRoLCBpc19kcnlfcnVuID0gRmFsc2UsIHZlcmJvc2UgPSBUcnVl
LCBlb2wgPSAnXHJcbicgKQorICAgICAgICBmaXhlb2wuZml4X3NvdXJjZV9lb2wocGF0aCwgaXNf
ZHJ5X3J1biA9IEZhbHNlLCB2ZXJib3NlID0gVHJ1ZSwgZW9sID0gJ1xyXG4nKQogICAgIGZvciBw
YXRoIGluIHVuaXhfc291cmNlczoKLSAgICAgICAgZml4ZW9sLmZpeF9zb3VyY2VfZW9sKCBwYXRo
LCBpc19kcnlfcnVuID0gRmFsc2UsIHZlcmJvc2UgPSBUcnVlLCBlb2wgPSAnXG4nICkKKyAgICAg
ICAgZml4ZW9sLmZpeF9zb3VyY2VfZW9sKHBhdGgsIGlzX2RyeV9ydW4gPSBGYWxzZSwgdmVyYm9z
ZSA9IFRydWUsIGVvbCA9ICdcbicpCiAKLWRlZiBkb3dubG9hZCggdXJsLCB0YXJnZXRfcGF0aCAp
OgorZGVmIGRvd25sb2FkKHVybCwgdGFyZ2V0X3BhdGgpOgogICAgICIiIkRvd25sb2FkIGZpbGUg
cmVwcmVzZW50ZWQgYnkgdXJsIHRvIHRhcmdldF9wYXRoLgogICAgICIiIgotICAgIGYgPSB1cmxs
aWIyLnVybG9wZW4oIHVybCApCisgICAgZiA9IHVybGxpYjIudXJsb3Blbih1cmwpCiAgICAgdHJ5
OgogICAgICAgICBkYXRhID0gZi5yZWFkKCkKICAgICBmaW5hbGx5OgogICAgICAgICBmLmNsb3Nl
KCkKLSAgICBmb3V0ID0gb3BlbiggdGFyZ2V0X3BhdGgsICd3YicgKQorICAgIGZvdXQgPSBvcGVu
KHRhcmdldF9wYXRoLCAnd2InKQogICAgIHRyeToKLSAgICAgICAgZm91dC53cml0ZSggZGF0YSAp
CisgICAgICAgIGZvdXQud3JpdGUoZGF0YSkKICAgICBmaW5hbGx5OgogICAgICAgICBmb3V0LmNs
b3NlKCkKIAotZGVmIGNoZWNrX2NvbXBpbGUoIGRpc3RjaGVja190b3BfZGlyLCBwbGF0Zm9ybSAp
OgorZGVmIGNoZWNrX2NvbXBpbGUoZGlzdGNoZWNrX3RvcF9kaXIsIHBsYXRmb3JtKToKICAgICBj
bWQgPSBbc3lzLmV4ZWN1dGFibGUsICdzY29ucy5weScsICdwbGF0Zm9ybT0lcycgJSBwbGF0Zm9y
bSwgJ2NoZWNrJ10KLSAgICBwcmludCAnUnVubmluZzonLCAnICcuam9pbiggY21kICkKLSAgICBs
b2dfcGF0aCA9IG9zLnBhdGguam9pbiggZGlzdGNoZWNrX3RvcF9kaXIsICdidWlsZC0lcy5sb2cn
ICUgcGxhdGZvcm0gKQotICAgIGZsb2cgPSBvcGVuKCBsb2dfcGF0aCwgJ3diJyApCisgICAgcHJp
bnQoJ1J1bm5pbmc6JywgJyAnLmpvaW4oY21kKSkKKyAgICBsb2dfcGF0aCA9IG9zLnBhdGguam9p
bihkaXN0Y2hlY2tfdG9wX2RpciwgJ2J1aWxkLSVzLmxvZycgJSBwbGF0Zm9ybSkKKyAgICBmbG9n
ID0gb3Blbihsb2dfcGF0aCwgJ3diJykKICAgICB0cnk6Ci0gICAgICAgIHByb2Nlc3MgPSBzdWJw
cm9jZXNzLlBvcGVuKCBjbWQsCisgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNt
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1mbG9nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VU
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dkPWRpc3RjaGVja190b3Bf
ZGlyICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD1kaXN0Y2hlY2tf
dG9wX2RpcikKICAgICAgICAgc3Rkb3V0ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpWzBdCiAgICAg
ICAgIHN0YXR1cyA9IChwcm9jZXNzLnJldHVybmNvZGUgPT0gMCkKICAgICBmaW5hbGx5OgogICAg
ICAgICBmbG9nLmNsb3NlKCkKICAgICByZXR1cm4gKHN0YXR1cywgbG9nX3BhdGgpCiAKLWRlZiB3
cml0ZV90ZW1wZmlsZSggY29udGVudCwgKiprd2FyZ3MgKToKLSAgICBmZCwgcGF0aCA9IHRlbXBm
aWxlLm1rc3RlbXAoICoqa3dhcmdzICkKLSAgICBmID0gb3MuZmRvcGVuKCBmZCwgJ3d0JyApCitk
ZWYgd3JpdGVfdGVtcGZpbGUoY29udGVudCwgKiprd2FyZ3MpOgorICAgIGZkLCBwYXRoID0gdGVt
cGZpbGUubWtzdGVtcCgqKmt3YXJncykKKyAgICBmID0gb3MuZmRvcGVuKGZkLCAnd3QnKQogICAg
IHRyeToKLSAgICAgICAgZi53cml0ZSggY29udGVudCApCisgICAgICAgIGYud3JpdGUoY29udGVu
dCkKICAgICBmaW5hbGx5OgogICAgICAgICBmLmNsb3NlKCkKICAgICByZXR1cm4gcGF0aApAQCAt
MTcxLDM0ICsxODEsMzQgQEAgZGVmIHdyaXRlX3RlbXBmaWxlKCBjb250ZW50LCAqKmt3YXJncyAp
OgogY2xhc3MgU0ZUUEVycm9yKEV4Y2VwdGlvbik6CiAgICAgcGFzcwogCi1kZWYgcnVuX3NmdHBf
YmF0Y2goIHVzZXJob3N0LCBzZnRwLCBiYXRjaCwgcmV0cnk9MCApOgotICAgIHBhdGggPSB3cml0
ZV90ZW1wZmlsZSggYmF0Y2gsIHN1ZmZpeD0nLnNmdHAnLCB0ZXh0PVRydWUgKQorZGVmIHJ1bl9z
ZnRwX2JhdGNoKHVzZXJob3N0LCBzZnRwLCBiYXRjaCwgcmV0cnk9MCk6CisgICAgcGF0aCA9IHdy
aXRlX3RlbXBmaWxlKGJhdGNoLCBzdWZmaXg9Jy5zZnRwJywgdGV4dD1UcnVlKQogICAgICMgcHNm
dHAgLWFnZW50IC1DIGJsZXAsanNvbmNwcEB3ZWIuc291cmNlZm9yZ2UubmV0IC1iYXRjaCAtYiBi
YXRjaC5zZnRwIC1iYwogICAgIGNtZCA9IFtzZnRwLCAnLWFnZW50JywgJy1DJywgJy1iYXRjaCcs
ICctYicsIHBhdGgsICctYmMnLCB1c2VyaG9zdF0KICAgICBlcnJvciA9IE5vbmUKLSAgICBmb3Ig
cmV0cnlfaW5kZXggaW4geHJhbmdlKDAsIG1heCgxLHJldHJ5KSk6CisgICAgZm9yIHJldHJ5X2lu
ZGV4IGluIHJhbmdlKDAsIG1heCgxLHJldHJ5KSk6CiAgICAgICAgIGhlYWRpbmcgPSByZXRyeV9p
bmRleCA9PSAwIGFuZCAnUnVubmluZzonIG9yICdSZXRyeWluZzonCi0gICAgICAgIHByaW50IGhl
YWRpbmcsICcgJy5qb2luKCBjbWQgKQotICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3Bl
biggY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQg
KQorICAgICAgICBwcmludChoZWFkaW5nLCAnICcuam9pbihjbWQpKQorICAgICAgICBwcm9jZXNz
ID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1z
dWJwcm9jZXNzLlNURE9VVCkKICAgICAgICAgc3Rkb3V0ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgp
WzBdCiAgICAgICAgIGlmIHByb2Nlc3MucmV0dXJuY29kZSAhPSAwOgotICAgICAgICAgICAgZXJy
b3IgPSBTRlRQRXJyb3IoICdTRlRQIGJhdGNoIGZhaWxlZDpcbicgKyBzdGRvdXQgKQorICAgICAg
ICAgICAgZXJyb3IgPSBTRlRQRXJyb3IoJ1NGVFAgYmF0Y2ggZmFpbGVkOlxuJyArIHN0ZG91dCkK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGJyZWFrCiAgICAgaWYgZXJyb3I6CiAgICAgICAg
IHJhaXNlIGVycm9yCiAgICAgcmV0dXJuIHN0ZG91dAogCi1kZWYgc291cmNlZm9yZ2Vfd2ViX3N5
bmNocm8oIHNvdXJjZWZvcmdlX3Byb2plY3QsIGRvY19kaXIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVzZXI9Tm9uZSwgc2Z0cD0nc2Z0cCcgKToKK2RlZiBzb3VyY2Vmb3JnZV93ZWJf
c3luY2hybyhzb3VyY2Vmb3JnZV9wcm9qZWN0LCBkb2NfZGlyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1c2VyPU5vbmUsIHNmdHA9J3NmdHAnKToKICAgICAiIiJOb3RlczogZG9lcyBu
b3Qgc3luY2hyb25pemUgc3ViLWRpcmVjdG9yeSBvZiBkb2MtZGlyLgogICAgICIiIgogICAgIHVz
ZXJob3N0ID0gJyVzLCVzQHdlYi5zb3VyY2Vmb3JnZS5uZXQnICUgKHVzZXIsIHNvdXJjZWZvcmdl
X3Byb2plY3QpCi0gICAgc3Rkb3V0ID0gcnVuX3NmdHBfYmF0Y2goIHVzZXJob3N0LCBzZnRwLCAi
IiIKKyAgICBzdGRvdXQgPSBydW5fc2Z0cF9iYXRjaCh1c2VyaG9zdCwgc2Z0cCwgIiIiCiBjZCBo
dGRvY3MKIGRpcgogZXhpdAotIiIiICkKKyIiIikKICAgICBleGlzdGluZ19wYXRocyA9IHNldCgp
CiAgICAgY29sbGVjdCA9IDAKICAgICBmb3IgbGluZSBpbiBzdGRvdXQuc3BsaXQoJ1xuJyk6CkBA
IC0yMTIsMzYgKzIyMiwzNiBAQCBleGl0CiAgICAgICAgIGVsaWYgY29sbGVjdCA9PSAyOgogICAg
ICAgICAgICAgcGF0aCA9IGxpbmUuc3RyaXAoKS5zcGxpdCgpWy0xOl0KICAgICAgICAgICAgIGlm
IHBhdGggYW5kIHBhdGhbMF0gbm90IGluICgnLicsICcuLicpOgotICAgICAgICAgICAgICAgIGV4
aXN0aW5nX3BhdGhzLmFkZCggcGF0aFswXSApCi0gICAgdXBsb2FkX3BhdGhzID0gc2V0KCBbb3Mu
cGF0aC5iYXNlbmFtZShwKSBmb3IgcCBpbiBhbnRnbG9iLmdsb2IoIGRvY19kaXIgKV0gKQorICAg
ICAgICAgICAgICAgIGV4aXN0aW5nX3BhdGhzLmFkZChwYXRoWzBdKQorICAgIHVwbG9hZF9wYXRo
cyA9IHNldChbb3MucGF0aC5iYXNlbmFtZShwKSBmb3IgcCBpbiBhbnRnbG9iLmdsb2IoZG9jX2Rp
cildKQogICAgIHBhdGhzX3RvX3JlbW92ZSA9IGV4aXN0aW5nX3BhdGhzIC0gdXBsb2FkX3BhdGhz
CiAgICAgaWYgcGF0aHNfdG9fcmVtb3ZlOgotICAgICAgICBwcmludCAnUmVtb3ZpbmcgdGhlIGZv
bGxvd2luZyBmaWxlIGZyb20gd2ViOicKLSAgICAgICAgcHJpbnQgJ1xuJy5qb2luKCBwYXRoc190
b19yZW1vdmUgKQotICAgICAgICBzdGRvdXQgPSBydW5fc2Z0cF9iYXRjaCggdXNlcmhvc3QsIHNm
dHAsICIiImNkIGh0ZG9jcworICAgICAgICBwcmludCgnUmVtb3ZpbmcgdGhlIGZvbGxvd2luZyBm
aWxlIGZyb20gd2ViOicpCisgICAgICAgIHByaW50KCdcbicuam9pbihwYXRoc190b19yZW1vdmUp
KQorICAgICAgICBzdGRvdXQgPSBydW5fc2Z0cF9iYXRjaCh1c2VyaG9zdCwgc2Z0cCwgIiIiY2Qg
aHRkb2NzCiBybSAlcwotZXhpdCIiIiAlICcgJy5qb2luKHBhdGhzX3RvX3JlbW92ZSkgKQotICAg
IHByaW50ICdVcGxvYWRpbmcgJWQgZmlsZXM6JyAlIGxlbih1cGxvYWRfcGF0aHMpCitleGl0IiIi
ICUgJyAnLmpvaW4ocGF0aHNfdG9fcmVtb3ZlKSkKKyAgICBwcmludCgnVXBsb2FkaW5nICVkIGZp
bGVzOicgJSBsZW4odXBsb2FkX3BhdGhzKSkKICAgICBiYXRjaF9zaXplID0gMTAKICAgICB1cGxv
YWRfcGF0aHMgPSBsaXN0KHVwbG9hZF9wYXRocykKICAgICBzdGFydF90aW1lID0gdGltZS50aW1l
KCkKLSAgICBmb3IgaW5kZXggaW4geHJhbmdlKDAsbGVuKHVwbG9hZF9wYXRocyksYmF0Y2hfc2l6
ZSk6CisgICAgZm9yIGluZGV4IGluIHJhbmdlKDAsbGVuKHVwbG9hZF9wYXRocyksYmF0Y2hfc2l6
ZSk6CiAgICAgICAgIHBhdGhzID0gdXBsb2FkX3BhdGhzW2luZGV4OmluZGV4K2JhdGNoX3NpemVd
CiAgICAgICAgIGZpbGVfcGVyX3NlYyA9ICh0aW1lLnRpbWUoKSAtIHN0YXJ0X3RpbWUpIC8gKGlu
ZGV4KzEpCiAgICAgICAgIHJlbWFpbmluZ19maWxlcyA9IGxlbih1cGxvYWRfcGF0aHMpIC0gaW5k
ZXgKICAgICAgICAgcmVtYWluaW5nX3NlYyA9IGZpbGVfcGVyX3NlYyAqIHJlbWFpbmluZ19maWxl
cwotICAgICAgICBwcmludCAnJWQvJWQsIEVUQT0lLjFmcycgJSAoaW5kZXgrMSwgbGVuKHVwbG9h
ZF9wYXRocyksIHJlbWFpbmluZ19zZWMpCi0gICAgICAgIHJ1bl9zZnRwX2JhdGNoKCB1c2VyaG9z
dCwgc2Z0cCwgIiIiY2QgaHRkb2NzCisgICAgICAgIHByaW50KCclZC8lZCwgRVRBPSUuMWZzJyAl
IChpbmRleCsxLCBsZW4odXBsb2FkX3BhdGhzKSwgcmVtYWluaW5nX3NlYykpCisgICAgICAgIHJ1
bl9zZnRwX2JhdGNoKHVzZXJob3N0LCBzZnRwLCAiIiJjZCBodGRvY3MKIGxjZCAlcwogbXB1dCAl
cwotZXhpdCIiIiAlIChkb2NfZGlyLCAnICcuam9pbihwYXRocykgKSwgcmV0cnk9MyApCitleGl0
IiIiICUgKGRvY19kaXIsICcgJy5qb2luKHBhdGhzKSksIHJldHJ5PTMpCiAKLWRlZiBzb3VyY2Vm
b3JnZV9yZWxlYXNlX3RhcmJhbGwoIHNvdXJjZWZvcmdlX3Byb2plY3QsIHBhdGhzLCB1c2VyPU5v
bmUsIHNmdHA9J3NmdHAnICk6CitkZWYgc291cmNlZm9yZ2VfcmVsZWFzZV90YXJiYWxsKHNvdXJj
ZWZvcmdlX3Byb2plY3QsIHBhdGhzLCB1c2VyPU5vbmUsIHNmdHA9J3NmdHAnKToKICAgICB1c2Vy
aG9zdCA9ICclcywlc0BmcnMuc291cmNlZm9yZ2UubmV0JyAlICh1c2VyLCBzb3VyY2Vmb3JnZV9w
cm9qZWN0KQotICAgIHJ1bl9zZnRwX2JhdGNoKCB1c2VyaG9zdCwgc2Z0cCwgIiIiCisgICAgcnVu
X3NmdHBfYmF0Y2godXNlcmhvc3QsIHNmdHAsICIiIgogbXB1dCAlcwogZXhpdAotIiIiICUgKCcg
Jy5qb2luKHBhdGhzKSwpICkKKyIiIiAlICgnICcuam9pbihwYXRocyksKSkKIAogCiBkZWYgbWFp
bigpOgpAQCAtMjU1LDcgKzI2NSw3IEBAIFBlcmZvcm1zIGFuIHN2biBleHBvcnQgb2YgdGFnIHJl
bGVhc2UgdmVyc2lvbiwgYW5kIGJ1aWxkIGEgc291cmNlIHRhcmJhbGwuCiAKIE11c3QgYmUgc3Rh
cnRlZCBpbiB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5LgogCi1XYXJuaW5nOiAtLWZvcmNlIHNo
b3VsZCBvbmx5IGJlIHVzZWQgd2hlbiBkZXZlbG9wcGluZy90ZXN0aW5nIHRoZSByZWxlYXNlIHNj
cmlwdC4KK1dhcm5pbmc6IC0tZm9yY2Ugc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGRldmVsb3Bp
bmcvdGVzdGluZyB0aGUgcmVsZWFzZSBzY3JpcHQuCiAiIiIKICAgICBmcm9tIG9wdHBhcnNlIGlt
cG9ydCBPcHRpb25QYXJzZXIKICAgICBwYXJzZXIgPSBPcHRpb25QYXJzZXIodXNhZ2U9dXNhZ2Up
CkBAIC0yODIsOTkgKzI5Miw5OSBAQCBXYXJuaW5nOiAtLWZvcmNlIHNob3VsZCBvbmx5IGJlIHVz
ZWQgd2hlbiBkZXZlbG9wcGluZy90ZXN0aW5nIHRoZSByZWxlYXNlIHNjcmlwdAogICAgIG9wdGlv
bnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCiAKICAgICBpZiBsZW4oYXJncykgIT0gMjoK
LSAgICAgICAgcGFyc2VyLmVycm9yKCAncmVsZWFzZV92ZXJzaW9uIG1pc3Npbmcgb24gY29tbWFu
ZC1saW5lLicgKQorICAgICAgICBwYXJzZXIuZXJyb3IoJ3JlbGVhc2VfdmVyc2lvbiBtaXNzaW5n
IG9uIGNvbW1hbmQtbGluZS4nKQogICAgIHJlbGVhc2VfdmVyc2lvbiA9IGFyZ3NbMF0KICAgICBu
ZXh0X3ZlcnNpb24gPSBhcmdzWzFdCiAKICAgICBpZiBub3Qgb3B0aW9ucy5wbGF0Zm9ybXMgYW5k
IG5vdCBvcHRpb25zLm5vX3Rlc3Q6Ci0gICAgICAgIHBhcnNlci5lcnJvciggJ1lvdSBtdXN0IHNw
ZWNpZnkgZWl0aGVyIC0tcGxhdGZvcm0gb3IgLS1uby10ZXN0IG9wdGlvbi4nICkKKyAgICAgICAg
cGFyc2VyLmVycm9yKCdZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXBsYXRmb3JtIG9yIC0tbm8t
dGVzdCBvcHRpb24uJykKIAogICAgIGlmIG9wdGlvbnMuaWdub3JlX3BlbmRpbmdfY29tbWl0Ogog
ICAgICAgICBtc2cgPSAnJwogICAgIGVsc2U6CiAgICAgICAgIG1zZyA9IGNoZWNrX25vX3BlbmRp
bmdfY29tbWl0KCkKICAgICBpZiBub3QgbXNnOgotICAgICAgICBwcmludCAnU2V0dGluZyB2ZXJz
aW9uIHRvJywgcmVsZWFzZV92ZXJzaW9uCi0gICAgICAgIHNldF92ZXJzaW9uKCByZWxlYXNlX3Zl
cnNpb24gKQotICAgICAgICBzdm5fY29tbWl0KCAnUmVsZWFzZSAnICsgcmVsZWFzZV92ZXJzaW9u
ICkKLSAgICAgICAgdGFnX3VybCA9IHN2bl9qb2luX3VybCggU1ZOX1RBR19ST09ULCByZWxlYXNl
X3ZlcnNpb24gKQotICAgICAgICBpZiBzdm5fY2hlY2tfaWZfdGFnX2V4aXN0KCB0YWdfdXJsICk6
CisgICAgICAgIHByaW50KCdTZXR0aW5nIHZlcnNpb24gdG8nLCByZWxlYXNlX3ZlcnNpb24pCisg
ICAgICAgIHNldF92ZXJzaW9uKHJlbGVhc2VfdmVyc2lvbikKKyAgICAgICAgc3ZuX2NvbW1pdCgn
UmVsZWFzZSAnICsgcmVsZWFzZV92ZXJzaW9uKQorICAgICAgICB0YWdfdXJsID0gc3ZuX2pvaW5f
dXJsKFNWTl9UQUdfUk9PVCwgcmVsZWFzZV92ZXJzaW9uKQorICAgICAgICBpZiBzdm5fY2hlY2tf
aWZfdGFnX2V4aXN0KHRhZ191cmwpOgogICAgICAgICAgICAgaWYgb3B0aW9ucy5yZXRhZ19yZWxl
YXNlOgotICAgICAgICAgICAgICAgIHN2bl9yZW1vdmVfdGFnKCB0YWdfdXJsLCAnT3ZlcndyaXRp
bmcgcHJldmlvdXMgdGFnJyApCisgICAgICAgICAgICAgICAgc3ZuX3JlbW92ZV90YWcodGFnX3Vy
bCwgJ092ZXJ3cml0aW5nIHByZXZpb3VzIHRhZycpCiAgICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIHByaW50ICdBYm9ydGluZywgdGFnICVzIGFscmVhZHkgZXhpc3QuIFVzZSAtLXJl
dGFnIHRvIG92ZXJ3cml0ZSBpdCEnICUgdGFnX3VybAotICAgICAgICAgICAgICAgIHN5cy5leGl0
KCAxICkKLSAgICAgICAgc3ZuX3RhZ19zYW5kYm94KCB0YWdfdXJsLCAnUmVsZWFzZSAnICsgcmVs
ZWFzZV92ZXJzaW9uICkKKyAgICAgICAgICAgICAgICBwcmludCgnQWJvcnRpbmcsIHRhZyAlcyBh
bHJlYWR5IGV4aXN0LiBVc2UgLS1yZXRhZyB0byBvdmVyd3JpdGUgaXQhJyAlIHRhZ191cmwpCisg
ICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgc3ZuX3RhZ19zYW5kYm94KHRhZ191
cmwsICdSZWxlYXNlICcgKyByZWxlYXNlX3ZlcnNpb24pCiAKLSAgICAgICAgcHJpbnQgJ0dlbmVy
YXRlZCBkb3h5Z2VuIGRvY3VtZW50Li4uJworICAgICAgICBwcmludCgnR2VuZXJhdGVkIGRveHln
ZW4gZG9jdW1lbnQuLi4nKQogIyMgICAgICAgIGRvY19kaXJuYW1lID0gcidqc29uY3BwLWFwaS1o
dG1sLTAuNS4wJwogIyMgICAgICAgIGRvY190YXJiYWxsX3BhdGggPSByJ2U6XHByZ1x2Y1xMaWJc
anNvbmNwcC10cnVua1xkaXN0XGpzb25jcHAtYXBpLWh0bWwtMC41LjAudGFyLmd6JwotICAgICAg
ICBkb2NfdGFyYmFsbF9wYXRoLCBkb2NfZGlybmFtZSA9IGRveHlidWlsZC5idWlsZF9kb2MoIG9w
dGlvbnMsIG1ha2VfcmVsZWFzZT1UcnVlICkKKyAgICAgICAgZG9jX3RhcmJhbGxfcGF0aCwgZG9j
X2Rpcm5hbWUgPSBkb3h5YnVpbGQuYnVpbGRfZG9jKG9wdGlvbnMsIG1ha2VfcmVsZWFzZT1UcnVl
KQogICAgICAgICBkb2NfZGlzdGNoZWNrX2RpciA9ICdkaXN0L2RvY2NoZWNrJwotICAgICAgICB0
YXJiYWxsLmRlY29tcHJlc3MoIGRvY190YXJiYWxsX3BhdGgsIGRvY19kaXN0Y2hlY2tfZGlyICkK
LSAgICAgICAgZG9jX2Rpc3RjaGVja190b3BfZGlyID0gb3MucGF0aC5qb2luKCBkb2NfZGlzdGNo
ZWNrX2RpciwgZG9jX2Rpcm5hbWUgKQorICAgICAgICB0YXJiYWxsLmRlY29tcHJlc3MoZG9jX3Rh
cmJhbGxfcGF0aCwgZG9jX2Rpc3RjaGVja19kaXIpCisgICAgICAgIGRvY19kaXN0Y2hlY2tfdG9w
X2RpciA9IG9zLnBhdGguam9pbihkb2NfZGlzdGNoZWNrX2RpciwgZG9jX2Rpcm5hbWUpCiAgICAg
ICAgIAogICAgICAgICBleHBvcnRfZGlyID0gJ2Rpc3QvZXhwb3J0JwotICAgICAgICBzdm5fZXhw
b3J0KCB0YWdfdXJsLCBleHBvcnRfZGlyICkKLSAgICAgICAgZml4X3NvdXJjZXNfZW9sKCBleHBv
cnRfZGlyICkKKyAgICAgICAgc3ZuX2V4cG9ydCh0YWdfdXJsLCBleHBvcnRfZGlyKQorICAgICAg
ICBmaXhfc291cmNlc19lb2woZXhwb3J0X2RpcikKICAgICAgICAgCiAgICAgICAgIHNvdXJjZV9k
aXIgPSAnanNvbmNwcC1zcmMtJyArIHJlbGVhc2VfdmVyc2lvbgogICAgICAgICBzb3VyY2VfdGFy
YmFsbF9wYXRoID0gJ2Rpc3QvJXMudGFyLmd6JyAlIHNvdXJjZV9kaXIKLSAgICAgICAgcHJpbnQg
J0dlbmVyYXRpbmcgc291cmNlIHRhcmJhbGwgdG8nLCBzb3VyY2VfdGFyYmFsbF9wYXRoCi0gICAg
ICAgIHRhcmJhbGwubWFrZV90YXJiYWxsKCBzb3VyY2VfdGFyYmFsbF9wYXRoLCBbZXhwb3J0X2Rp
cl0sIGV4cG9ydF9kaXIsIHByZWZpeF9kaXI9c291cmNlX2RpciApCisgICAgICAgIHByaW50KCdH
ZW5lcmF0aW5nIHNvdXJjZSB0YXJiYWxsIHRvJywgc291cmNlX3RhcmJhbGxfcGF0aCkKKyAgICAg
ICAgdGFyYmFsbC5tYWtlX3RhcmJhbGwoc291cmNlX3RhcmJhbGxfcGF0aCwgW2V4cG9ydF9kaXJd
LCBleHBvcnRfZGlyLCBwcmVmaXhfZGlyPXNvdXJjZV9kaXIpCiAKICAgICAgICAgYW1hbGdhbWF0
aW9uX3RhcmJhbGxfcGF0aCA9ICdkaXN0LyVzLWFtYWxnYW1hdGlvbi50YXIuZ3onICUgc291cmNl
X2RpcgotICAgICAgICBwcmludCAnR2VuZXJhdGluZyBhbWFsZ2FtYXRpb24gc291cmNlIHRhcmJh
bGwgdG8nLCBhbWFsZ2FtYXRpb25fdGFyYmFsbF9wYXRoCisgICAgICAgIHByaW50KCdHZW5lcmF0
aW5nIGFtYWxnYW1hdGlvbiBzb3VyY2UgdGFyYmFsbCB0bycsIGFtYWxnYW1hdGlvbl90YXJiYWxs
X3BhdGgpCiAgICAgICAgIGFtYWxnYW1hdGlvbl9kaXIgPSAnZGlzdC9hbWFsZ2FtYXRpb24nCi0g
ICAgICAgIGFtYWxnYW1hdGUuYW1hbGdhbWF0ZV9zb3VyY2UoIGV4cG9ydF9kaXIsICclcy9qc29u
Y3BwLmNwcCcgJSBhbWFsZ2FtYXRpb25fZGlyLCAnanNvbi9qc29uLmgnICkKKyAgICAgICAgYW1h
bGdhbWF0ZS5hbWFsZ2FtYXRlX3NvdXJjZShleHBvcnRfZGlyLCAnJXMvanNvbmNwcC5jcHAnICUg
YW1hbGdhbWF0aW9uX2RpciwgJ2pzb24vanNvbi5oJykKICAgICAgICAgYW1hbGdhbWF0aW9uX3Nv
dXJjZV9kaXIgPSAnanNvbmNwcC1zcmMtYW1hbGdhbWF0aW9uJyArIHJlbGVhc2VfdmVyc2lvbgot
ICAgICAgICB0YXJiYWxsLm1ha2VfdGFyYmFsbCggYW1hbGdhbWF0aW9uX3RhcmJhbGxfcGF0aCwg
W2FtYWxnYW1hdGlvbl9kaXJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1hbGdh
bWF0aW9uX2RpciwgcHJlZml4X2Rpcj1hbWFsZ2FtYXRpb25fc291cmNlX2RpciApCisgICAgICAg
IHRhcmJhbGwubWFrZV90YXJiYWxsKGFtYWxnYW1hdGlvbl90YXJiYWxsX3BhdGgsIFthbWFsZ2Ft
YXRpb25fZGlyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtYWxnYW1hdGlvbl9k
aXIsIHByZWZpeF9kaXI9YW1hbGdhbWF0aW9uX3NvdXJjZV9kaXIpCiAKICAgICAgICAgIyBEZWNv
bXByZXNzIHNvdXJjZSB0YXJiYWxsLCBkb3dubG9hZCBhbmQgaW5zdGFsbCBzY29ucy1sb2NhbAog
ICAgICAgICBkaXN0Y2hlY2tfZGlyID0gJ2Rpc3QvZGlzdGNoZWNrJwogICAgICAgICBkaXN0Y2hl
Y2tfdG9wX2RpciA9IGRpc3RjaGVja19kaXIgKyAnLycgKyBzb3VyY2VfZGlyCi0gICAgICAgIHBy
aW50ICdEZWNvbXByZXNzaW5nIHNvdXJjZSB0YXJiYWxsIHRvJywgZGlzdGNoZWNrX2RpcgotICAg
ICAgICBybWRpcl9pZl9leGlzdCggZGlzdGNoZWNrX2RpciApCi0gICAgICAgIHRhcmJhbGwuZGVj
b21wcmVzcyggc291cmNlX3RhcmJhbGxfcGF0aCwgZGlzdGNoZWNrX2RpciApCisgICAgICAgIHBy
aW50KCdEZWNvbXByZXNzaW5nIHNvdXJjZSB0YXJiYWxsIHRvJywgZGlzdGNoZWNrX2RpcikKKyAg
ICAgICAgcm1kaXJfaWZfZXhpc3QoZGlzdGNoZWNrX2RpcikKKyAgICAgICAgdGFyYmFsbC5kZWNv
bXByZXNzKHNvdXJjZV90YXJiYWxsX3BhdGgsIGRpc3RjaGVja19kaXIpCiAgICAgICAgIHNjb25z
X2xvY2FsX3BhdGggPSAnZGlzdC9zY29ucy1sb2NhbC50YXIuZ3onCi0gICAgICAgIHByaW50ICdE
b3dubG9hZGluZyBzY29ucy1sb2NhbCB0bycsIHNjb25zX2xvY2FsX3BhdGgKLSAgICAgICAgZG93
bmxvYWQoIFNDT05TX0xPQ0FMX1VSTCwgc2NvbnNfbG9jYWxfcGF0aCApCi0gICAgICAgIHByaW50
ICdEZWNvbXByZXNzaW5nIHNjb25zLWxvY2FsIHRvJywgZGlzdGNoZWNrX3RvcF9kaXIKLSAgICAg
ICAgdGFyYmFsbC5kZWNvbXByZXNzKCBzY29uc19sb2NhbF9wYXRoLCBkaXN0Y2hlY2tfdG9wX2Rp
ciApCisgICAgICAgIHByaW50KCdEb3dubG9hZGluZyBzY29ucy1sb2NhbCB0bycsIHNjb25zX2xv
Y2FsX3BhdGgpCisgICAgICAgIGRvd25sb2FkKFNDT05TX0xPQ0FMX1VSTCwgc2NvbnNfbG9jYWxf
cGF0aCkKKyAgICAgICAgcHJpbnQoJ0RlY29tcHJlc3Npbmcgc2NvbnMtbG9jYWwgdG8nLCBkaXN0
Y2hlY2tfdG9wX2RpcikKKyAgICAgICAgdGFyYmFsbC5kZWNvbXByZXNzKHNjb25zX2xvY2FsX3Bh
dGgsIGRpc3RjaGVja190b3BfZGlyKQogCiAgICAgICAgICMgUnVuIGNvbXBpbGF0aW9uCi0gICAg
ICAgIHByaW50ICdDb21waWxpbmcgZGVjb21wcmVzc2VkIHRhcmJhbGwnCisgICAgICAgIHByaW50
KCdDb21waWxpbmcgZGVjb21wcmVzc2VkIHRhcmJhbGwnKQogICAgICAgICBhbGxfYnVpbGRfc3Rh
dHVzID0gVHJ1ZQogICAgICAgICBmb3IgcGxhdGZvcm0gaW4gb3B0aW9ucy5wbGF0Zm9ybXMuc3Bs
aXQoJywnKToKLSAgICAgICAgICAgIHByaW50ICdUZXN0aW5nIHBsYXRmb3JtOicsIHBsYXRmb3Jt
Ci0gICAgICAgICAgICBidWlsZF9zdGF0dXMsIGxvZ19wYXRoID0gY2hlY2tfY29tcGlsZSggZGlz
dGNoZWNrX3RvcF9kaXIsIHBsYXRmb3JtICkKLSAgICAgICAgICAgIHByaW50ICdzZWUgYnVpbGQg
bG9nOicsIGxvZ19wYXRoCi0gICAgICAgICAgICBwcmludCBidWlsZF9zdGF0dXMgYW5kICc9PiBv
aycgb3IgJz0+IEZBSUxFRCcKKyAgICAgICAgICAgIHByaW50KCdUZXN0aW5nIHBsYXRmb3JtOics
IHBsYXRmb3JtKQorICAgICAgICAgICAgYnVpbGRfc3RhdHVzLCBsb2dfcGF0aCA9IGNoZWNrX2Nv
bXBpbGUoZGlzdGNoZWNrX3RvcF9kaXIsIHBsYXRmb3JtKQorICAgICAgICAgICAgcHJpbnQoJ3Nl
ZSBidWlsZCBsb2c6JywgbG9nX3BhdGgpCisgICAgICAgICAgICBwcmludChidWlsZF9zdGF0dXMg
YW5kICc9PiBvaycgb3IgJz0+IEZBSUxFRCcpCiAgICAgICAgICAgICBhbGxfYnVpbGRfc3RhdHVz
ID0gYWxsX2J1aWxkX3N0YXR1cyBhbmQgYnVpbGRfc3RhdHVzCiAgICAgICAgIGlmIG5vdCBidWls
ZF9zdGF0dXM6Ci0gICAgICAgICAgICBwcmludCAnVGVzdGluZyBmYWlsZWQgb24gYXQgbGVhc3Qg
b25lIHBsYXRmb3JtLCBhYm9ydGluZy4uLicKLSAgICAgICAgICAgIHN2bl9yZW1vdmVfdGFnKCB0
YWdfdXJsLCAnUmVtb3ZpbmcgdGFnIGR1ZSB0byBmYWlsZWQgdGVzdGluZycgKQorICAgICAgICAg
ICAgcHJpbnQoJ1Rlc3RpbmcgZmFpbGVkIG9uIGF0IGxlYXN0IG9uZSBwbGF0Zm9ybSwgYWJvcnRp
bmcuLi4nKQorICAgICAgICAgICAgc3ZuX3JlbW92ZV90YWcodGFnX3VybCwgJ1JlbW92aW5nIHRh
ZyBkdWUgdG8gZmFpbGVkIHRlc3RpbmcnKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKICAgICAg
ICAgaWYgb3B0aW9ucy51c2VyOgogICAgICAgICAgICAgaWYgbm90IG9wdGlvbnMubm9fd2ViOgot
ICAgICAgICAgICAgICAgIHByaW50ICdVcGxvYWRpbmcgZG9jdW1lbnRhdGlvbiB1c2luZyB1c2Vy
Jywgb3B0aW9ucy51c2VyCi0gICAgICAgICAgICAgICAgc291cmNlZm9yZ2Vfd2ViX3N5bmNocm8o
IFNPVVJDRUZPUkdFX1BST0pFQ1QsIGRvY19kaXN0Y2hlY2tfdG9wX2RpciwgdXNlcj1vcHRpb25z
LnVzZXIsIHNmdHA9b3B0aW9ucy5zZnRwICkKLSAgICAgICAgICAgICAgICBwcmludCAnQ29tcGxl
dGVkIGRvY3VtZW50YXRpb24gdXBsb2FkJwotICAgICAgICAgICAgcHJpbnQgJ1VwbG9hZGluZyBz
b3VyY2UgYW5kIGRvY3VtZW50YXRpb24gdGFyYmFsbHMgZm9yIHJlbGVhc2UgdXNpbmcgdXNlcics
IG9wdGlvbnMudXNlcgotICAgICAgICAgICAgc291cmNlZm9yZ2VfcmVsZWFzZV90YXJiYWxsKCBT
T1VSQ0VGT1JHRV9QUk9KRUNULAorICAgICAgICAgICAgICAgIHByaW50KCdVcGxvYWRpbmcgZG9j
dW1lbnRhdGlvbiB1c2luZyB1c2VyJywgb3B0aW9ucy51c2VyKQorICAgICAgICAgICAgICAgIHNv
dXJjZWZvcmdlX3dlYl9zeW5jaHJvKFNPVVJDRUZPUkdFX1BST0pFQ1QsIGRvY19kaXN0Y2hlY2tf
dG9wX2RpciwgdXNlcj1vcHRpb25zLnVzZXIsIHNmdHA9b3B0aW9ucy5zZnRwKQorICAgICAgICAg
ICAgICAgIHByaW50KCdDb21wbGV0ZWQgZG9jdW1lbnRhdGlvbiB1cGxvYWQnKQorICAgICAgICAg
ICAgcHJpbnQoJ1VwbG9hZGluZyBzb3VyY2UgYW5kIGRvY3VtZW50YXRpb24gdGFyYmFsbHMgZm9y
IHJlbGVhc2UgdXNpbmcgdXNlcicsIG9wdGlvbnMudXNlcikKKyAgICAgICAgICAgIHNvdXJjZWZv
cmdlX3JlbGVhc2VfdGFyYmFsbChTT1VSQ0VGT1JHRV9QUk9KRUNULAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbc291cmNlX3RhcmJhbGxfcGF0aCwgZG9jX3RhcmJh
bGxfcGF0aF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9
b3B0aW9ucy51c2VyLCBzZnRwPW9wdGlvbnMuc2Z0cCApCi0gICAgICAgICAgICBwcmludCAnU291
cmNlIGFuZCBkb2MgcmVsZWFzZSB0YXJiYWxscyB1cGxvYWRlZCcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj1vcHRpb25zLnVzZXIsIHNmdHA9b3B0aW9ucy5z
ZnRwKQorICAgICAgICAgICAgcHJpbnQoJ1NvdXJjZSBhbmQgZG9jIHJlbGVhc2UgdGFyYmFsbHMg
dXBsb2FkZWQnKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJpbnQgJ05vIHVwbG9hZCB1
c2VyIHNwZWNpZmllZC4gV2ViIHNpdGUgYW5kIGRvd25sb2FkIHRhcmJhbCB3ZXJlIG5vdCB1cGxv
YWRlZC4nCi0gICAgICAgICAgICBwcmludCAnVGFyYmFsbCBjYW4gYmUgZm91bmQgYXQ6JywgZG9j
X3RhcmJhbGxfcGF0aAorICAgICAgICAgICAgcHJpbnQoJ05vIHVwbG9hZCB1c2VyIHNwZWNpZmll
ZC4gV2ViIHNpdGUgYW5kIGRvd25sb2FkIHRhcmJhbGwgd2VyZSBub3QgdXBsb2FkZWQuJykKKyAg
ICAgICAgICAgIHByaW50KCdUYXJiYWxsIGNhbiBiZSBmb3VuZCBhdDonLCBkb2NfdGFyYmFsbF9w
YXRoKQogCiAgICAgICAgICMgU2V0IG5leHQgdmVyc2lvbiBudW1iZXIgYW5kIGNvbW1pdCAgICAg
ICAgICAgIAotICAgICAgICBzZXRfdmVyc2lvbiggbmV4dF92ZXJzaW9uICkKLSAgICAgICAgc3Zu
X2NvbW1pdCggJ1JlbGVhc2VkICcgKyByZWxlYXNlX3ZlcnNpb24gKQorICAgICAgICBzZXRfdmVy
c2lvbihuZXh0X3ZlcnNpb24pCisgICAgICAgIHN2bl9jb21taXQoJ1JlbGVhc2VkICcgKyByZWxl
YXNlX3ZlcnNpb24pCiAgICAgZWxzZToKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSggbXNnICsg
J1xuJyApCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUobXNnICsgJ1xuJykKICAKIGlmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6CiAgICAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21lc29uLmJ1
aWxkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9tZXNvbi5idWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGU5NDdjNGNkZjgwZWE4ZWY3NzEy
NWUzZmUyZTI3OTYwM2Q4ZTRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tZXNvbi5idWlsZApA
QCAtMCwwICsxLDExNiBAQAorcHJvamVjdCgKKyAgJ2pzb25jcHAnLAorICAnY3BwJywKKyAgdmVy
c2lvbiA6ICcxLjkuMCcsCisgIGRlZmF1bHRfb3B0aW9ucyA6IFsKKyAgICAnYnVpbGR0eXBlPXJl
bGVhc2UnLAorICAgICdjcHBfc3RkPWMrKzExJywKKyAgICAnd2FybmluZ19sZXZlbD0xJ10sCisg
IGxpY2Vuc2UgOiAnUHVibGljIERvbWFpbicsCisgIG1lc29uX3ZlcnNpb24gOiAnPj0gMC41MC4w
JykKKworanNvbmNwcF92ZXJfYXJyID0gbWVzb24ucHJvamVjdF92ZXJzaW9uKCkuc3BsaXQoJy4n
KQoranNvbmNwcF9tYWpvcl92ZXJzaW9uID0ganNvbmNwcF92ZXJfYXJyWzBdCitqc29uY3BwX21p
bm9yX3ZlcnNpb24gPSBqc29uY3BwX3Zlcl9hcnJbMV0KK2pzb25jcHBfcGF0Y2hfdmVyc2lvbiA9
IGpzb25jcHBfdmVyX2FyclsyXQorCitqc29uY3BwX2NkYXRhID0gY29uZmlndXJhdGlvbl9kYXRh
KCkKK2pzb25jcHBfY2RhdGEuc2V0KCdKU09OQ1BQX1ZFUlNJT04nLCBtZXNvbi5wcm9qZWN0X3Zl
cnNpb24oKSkKK2pzb25jcHBfY2RhdGEuc2V0KCdKU09OQ1BQX1ZFUlNJT05fTUFKT1InLCBqc29u
Y3BwX21ham9yX3ZlcnNpb24pCitqc29uY3BwX2NkYXRhLnNldCgnSlNPTkNQUF9WRVJTSU9OX01J
Tk9SJywganNvbmNwcF9taW5vcl92ZXJzaW9uKQoranNvbmNwcF9jZGF0YS5zZXQoJ0pTT05DUFBf
VkVSU0lPTl9QQVRDSCcsIGpzb25jcHBfcGF0Y2hfdmVyc2lvbikKK2pzb25jcHBfY2RhdGEuc2V0
KCdKU09OQ1BQX1VTRV9TRUNVUkVfTUVNT1JZJywwKQorCitqc29uY3BwX2dlbl9zb3VyY2VzID0g
Y29uZmlndXJlX2ZpbGUoCisgIGlucHV0IDogJ3NyYy9saWJfanNvbi92ZXJzaW9uLmguaW4nLAor
ICBvdXRwdXQgOiAndmVyc2lvbi5oJywKKyAgY29uZmlndXJhdGlvbiA6IGpzb25jcHBfY2RhdGEs
CisgIGluc3RhbGwgOiB0cnVlLAorICBpbnN0YWxsX2RpciA6IGpvaW5fcGF0aHMoZ2V0X29wdGlv
bigncHJlZml4JyksIGdldF9vcHRpb24oJ2luY2x1ZGVkaXInKSwgJ2pzb24nKQorKQorCitqc29u
Y3BwX2hlYWRlcnMgPSBbCisgICdpbmNsdWRlL2pzb24vYWxsb2NhdG9yLmgnLAorICAnaW5jbHVk
ZS9qc29uL2Fzc2VydGlvbnMuaCcsCisgICdpbmNsdWRlL2pzb24vYXV0b2xpbmsuaCcsCisgICdp
bmNsdWRlL2pzb24vY29uZmlnLmgnLAorICAnaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgnLAorICAn
aW5jbHVkZS9qc29uL2ZvcndhcmRzLmgnLAorICAnaW5jbHVkZS9qc29uL2pzb24uaCcsCisgICdp
bmNsdWRlL2pzb24vcmVhZGVyLmgnLAorICAnaW5jbHVkZS9qc29uL3ZhbHVlLmgnLAorICAnaW5j
bHVkZS9qc29uL3dyaXRlci5oJ10KK2pzb25jcHBfaW5jbHVkZV9kaXJlY3RvcmllcyA9IGluY2x1
ZGVfZGlyZWN0b3JpZXMoJ2luY2x1ZGUnKQorCitpbnN0YWxsX2hlYWRlcnMoCisgIGpzb25jcHBf
aGVhZGVycywKKyAgc3ViZGlyIDogJ2pzb24nKQorCitpZiBnZXRfb3B0aW9uKCdkZWZhdWx0X2xp
YnJhcnknKSA9PSAnc2hhcmVkJyBhbmQgbWVzb24uZ2V0X2NvbXBpbGVyKCdjcHAnKS5nZXRfaWQo
KSA9PSAnbXN2YycKKyAgZGxsX2V4cG9ydF9mbGFnID0gJy1ESlNPTl9ETExfQlVJTEQnCisgIGRs
bF9pbXBvcnRfZmxhZyA9ICctREpTT05fRExMJworZWxzZQorICBkbGxfZXhwb3J0X2ZsYWcgPSBb
XQorICBkbGxfaW1wb3J0X2ZsYWcgPSBbXQorZW5kaWYKKworanNvbmNwcF9saWIgPSBsaWJyYXJ5
KAorICAnanNvbmNwcCcsCisgIFsganNvbmNwcF9nZW5fc291cmNlcywKKyAgICBqc29uY3BwX2hl
YWRlcnMsCisgICAgJ3NyYy9saWJfanNvbi9qc29uX3Rvb2wuaCcsCisgICAgJ3NyYy9saWJfanNv
bi9qc29uX3JlYWRlci5jcHAnLAorICAgICdzcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAnLAor
ICAgICdzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwJ10sCisgIHNvdmVyc2lvbiA6IDIxLAor
ICBpbnN0YWxsIDogdHJ1ZSwKKyAgaW5jbHVkZV9kaXJlY3RvcmllcyA6IGpzb25jcHBfaW5jbHVk
ZV9kaXJlY3RvcmllcywKKyAgY3BwX2FyZ3M6IGRsbF9leHBvcnRfZmxhZykKKworaW1wb3J0KCdw
a2djb25maWcnKS5nZW5lcmF0ZSgKKyAgbGlicmFyaWVzIDoganNvbmNwcF9saWIsCisgIHZlcnNp
b24gOiBtZXNvbi5wcm9qZWN0X3ZlcnNpb24oKSwKKyAgbmFtZSA6ICdqc29uY3BwJywKKyAgZmls
ZWJhc2UgOiAnanNvbmNwcCcsCisgIGRlc2NyaXB0aW9uIDogJ0EgQysrIGxpYnJhcnkgZm9yIGlu
dGVyYWN0aW5nIHdpdGggSlNPTicpCisKKyMgZm9yIGxpYnJhcmllcyBidW5kbGluZyBqc29uY3Bw
Citqc29uY3BwX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKKyAgaW5jbHVkZV9kaXJlY3Rvcmll
cyA6IGpzb25jcHBfaW5jbHVkZV9kaXJlY3RvcmllcywKKyAgbGlua193aXRoIDoganNvbmNwcF9s
aWIsCisgIHZlcnNpb24gOiBtZXNvbi5wcm9qZWN0X3ZlcnNpb24oKSwKKyAgc291cmNlcyA6IGpz
b25jcHBfZ2VuX3NvdXJjZXMpCisKKyMgdGVzdHMKK3B5dGhvbiA9IGltcG9ydCgncHl0aG9uMycp
LmZpbmRfcHl0aG9uKCkKKworanNvbmNwcF90ZXN0ID0gZXhlY3V0YWJsZSgKKyAgJ2pzb25jcHBf
dGVzdCcsCisgIFsgJ3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0LmNwcCcsCisgICAgJ3NyYy90
ZXN0X2xpYl9qc29uL2pzb250ZXN0LmgnLAorICAgICdzcmMvdGVzdF9saWJfanNvbi9tYWluLmNw
cCcsCisgICAgJ3NyYy90ZXN0X2xpYl9qc29uL2Z1enouY3BwJ10sCisgIGluY2x1ZGVfZGlyZWN0
b3JpZXMgOiBqc29uY3BwX2luY2x1ZGVfZGlyZWN0b3JpZXMsCisgIGxpbmtfd2l0aCA6IGpzb25j
cHBfbGliLAorICBpbnN0YWxsIDogZmFsc2UsCisgIGNwcF9hcmdzOiBkbGxfaW1wb3J0X2ZsYWcp
Cit0ZXN0KAorICAndW5pdHRlc3RfanNvbmNwcF90ZXN0JywKKyAganNvbmNwcF90ZXN0KQorCitq
c29udGVzdHJ1bm5lciA9IGV4ZWN1dGFibGUoCisgICdqc29udGVzdHJ1bm5lcicsCisgICdzcmMv
anNvbnRlc3RydW5uZXIvbWFpbi5jcHAnLAorICBpbmNsdWRlX2RpcmVjdG9yaWVzIDoganNvbmNw
cF9pbmNsdWRlX2RpcmVjdG9yaWVzLAorICBsaW5rX3dpdGggOiBqc29uY3BwX2xpYiwKKyAgaW5z
dGFsbCA6IGZhbHNlLAorICBjcHBfYXJnczogZGxsX2ltcG9ydF9mbGFnKQordGVzdCgKKyAgJ3Vu
aXR0ZXN0X2pzb250ZXN0cnVubmVyJywKKyAgcHl0aG9uLAorICBhcmdzIDogWworICAgICctQics
CisgICAgam9pbl9wYXRocyhtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwgJ3Rlc3QvcnVuanNv
bnRlc3RzLnB5JyksCisgICAganNvbnRlc3RydW5uZXIsCisgICAgam9pbl9wYXRocyhtZXNvbi5j
dXJyZW50X3NvdXJjZV9kaXIoKSwgJ3Rlc3QvZGF0YScpXQorICApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3BrZy1jb25maWcvanNvbmNwcC5wYy5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvcGtnLWNvbmZpZy9qc29uY3BwLnBjLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRlYTUxZjUxMjVhMmQ3NWRmYzU2Y2EyZDQ2NjEyNzU0ZmIyNGFjZjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3BrZy1jb25maWcvanNvbmNwcC5wYy5pbgpAQCAtMCwwICsx
LDkgQEAKK2xpYmRpcj1AQ01BS0VfSU5TVEFMTF9GVUxMX0xJQkRJUkAKK2luY2x1ZGVkaXI9QENN
QUtFX0lOU1RBTExfRlVMTF9JTkNMVURFRElSQAorCitOYW1lOiBqc29uY3BwCitEZXNjcmlwdGlv
bjogQSBDKysgbGlicmFyeSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBKU09OCitWZXJzaW9uOiBASlNP
TkNQUF9WRVJTSU9OQAorVVJMOiBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vy
cy9qc29uY3BwCitMaWJzOiAtTCR7bGliZGlyfSAtbGpzb25jcHAKK0NmbGFnczogLUkke2luY2x1
ZGVkaXJ9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL2dsb2J0b29sLnB5IGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9z
Y29ucy10b29scy9nbG9idG9vbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEx
MTQwZThhYWI2MjBlNDRkOWFlZWE4YzUwOWE1NjczMGY4MDk2NC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL2dsb2J0b29sLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotaW1wb3J0IGZubWF0Y2gKLWltcG9ydCBv
cwotCi1kZWYgZ2VuZXJhdGUoIGVudiApOiAKLSAgIGRlZiBHbG9iKCBlbnYsIGluY2x1ZGVzID0g
Tm9uZSwgZXhjbHVkZXMgPSBOb25lLCBkaXIgPSAnLicgKToKLSAgICAgICIiIkFkZHMgR2xvYigg
aW5jbHVkZXMgPSBTcGxpdCggJyonICksIGV4Y2x1ZGVzID0gTm9uZSwgZGlyID0gJy4nKQotICAg
ICAgIGhlbHBlciBmdW5jdGlvbiB0byBlbnZpcm9ubWVudC4KLQotICAgICAgIEdsb2IgYm90aCB0
aGUgZmlsZS1zeXN0ZW0gZmlsZXMuCi0KLSAgICAgICBpbmNsdWRlczogbGlzdCBvZiBmaWxlIG5h
bWUgcGF0dGVybiBpbmNsdWRlZCBpbiB0aGUgcmV0dXJuIGxpc3Qgd2hlbiBtYXRjaGVkLgotICAg
ICAgIGV4Y2x1ZGVzOiBsaXN0IG9mIGZpbGUgbmFtZSBwYXR0ZXJuIGV4bHVjZWQgZnJvbSB0aGUg
cmV0dXJuIGxpc3QuCi0KLSAgICAgICBFeGFtcGxlOgotICAgICAgIHNvdXJjZXMgPSBlbnYuR2xv
YiggKCIqLmNwcCIsICcqLmgnKSwgIn4qLmNwcCIsICIjc3JjIiApCi0gICAgICAiIiIKLSAgICAg
IGRlZiBmaWx0ZXJGaWxlbmFtZShwYXRoKToKLSAgICAgICAgIGFic19wYXRoID0gb3MucGF0aC5q
b2luKCBkaXIsIHBhdGggKQotICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGFic19wYXRo
KToKLSAgICAgICAgICAgIHJldHVybiAwCi0gICAgICAgICBmbiA9IG9zLnBhdGguYmFzZW5hbWUo
cGF0aCkKLSAgICAgICAgIG1hdGNoID0gMAotICAgICAgICAgZm9yIGluY2x1ZGUgaW4gaW5jbHVk
ZXM6Ci0gICAgICAgICAgICBpZiBmbm1hdGNoLmZubWF0Y2hjYXNlKCBmbiwgaW5jbHVkZSApOgot
ICAgICAgICAgICAgICAgbWF0Y2ggPSAxCi0gICAgICAgICAgICAgICBicmVhawotICAgICAgICAg
aWYgbWF0Y2ggPT0gMSBhbmQgbm90IGV4Y2x1ZGVzIGlzIE5vbmU6Ci0gICAgICAgICAgICBmb3Ig
ZXhjbHVkZSBpbiBleGNsdWRlczoKLSAgICAgICAgICAgICAgIGlmIGZubWF0Y2guZm5tYXRjaGNh
c2UoIGZuLCBleGNsdWRlICk6Ci0gICAgICAgICAgICAgICAgICBtYXRjaCA9IDAKLSAgICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgICByZXR1cm4gbWF0Y2gKLSAgICAgIGlmIGluY2x1ZGVz
IGlzIE5vbmU6Ci0gICAgICAgICBpbmNsdWRlcyA9ICgnKicsKQotICAgICAgZWxpZiB0eXBlKGlu
Y2x1ZGVzKSBpbiAoIHR5cGUoJycpLCB0eXBlKHUnJykgKToKLSAgICAgICAgIGluY2x1ZGVzID0g
KGluY2x1ZGVzLCkKLSAgICAgIGlmIHR5cGUoZXhjbHVkZXMpIGluICggdHlwZSgnJyksIHR5cGUo
dScnKSApOgotICAgICAgICAgZXhjbHVkZXMgPSAoZXhjbHVkZXMsKQotICAgICAgZGlyID0gZW52
LkRpcihkaXIpLmFic3BhdGgKLSAgICAgIHBhdGhzID0gb3MubGlzdGRpciggZGlyICkKLSAgICAg
IGRlZiBtYWtlQWJzRmlsZU5vZGUoIHBhdGggKToKLSAgICAgICAgIHJldHVybiBlbnYuRmlsZSgg
b3MucGF0aC5qb2luKCBkaXIsIHBhdGggKSApCi0gICAgICBub2RlcyA9IGZpbHRlciggZmlsdGVy
RmlsZW5hbWUsIHBhdGhzICkKLSAgICAgIHJldHVybiBtYXAoIG1ha2VBYnNGaWxlTm9kZSwgbm9k
ZXMgKQotCi0gICBmcm9tIFNDb25zLlNjcmlwdCBpbXBvcnQgRW52aXJvbm1lbnQKLSAgIEVudmly
b25tZW50Lkdsb2IgPSBHbG9iCi0KLWRlZiBleGlzdHMoZW52KToKLSAgICAiIiIKLSAgICBUb29s
IGFsd2F5cyBleGlzdHMuCi0gICAgIiIiCi0gICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2Uvc2NvbnMtdG9vbHMvc3JjZGlzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvc3JjZGlzdC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY0ZmY0MDgxNTgwZWQxNWEwNTY0ZjRiY2Yw
ZTFiMzdlZGRlMzdkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3Njb25zLXRvb2xzL3NyY2Rpc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkg
KzAsMCBAQAotaW1wb3J0IG9zCi1pbXBvcnQgb3MucGF0aAotZnJvbSBmbm1hdGNoIGltcG9ydCBm
bm1hdGNoCi1pbXBvcnQgdGFyZ3oKLQotIyNkZWYgRG94eWZpbGVQYXJzZShmaWxlX2NvbnRlbnRz
KToKLSMjICAgIiIiCi0jIyAgIFBhcnNlIGEgRG94eWdlbiBzb3VyY2UgZmlsZSBhbmQgcmV0dXJu
IGEgZGljdGlvbmFyeSBvZiBhbGwgdGhlIHZhbHVlcy4KLSMjICAgVmFsdWVzIHdpbGwgYmUgc3Ry
aW5ncyBhbmQgbGlzdHMgb2Ygc3RyaW5ncy4KLSMjICAgIiIiCi0jIyAgIGRhdGEgPSB7fQotIyMK
LSMjICAgaW1wb3J0IHNobGV4Ci0jIyAgIGxleCA9IHNobGV4LnNobGV4KGluc3RyZWFtID0gZmls
ZV9jb250ZW50cywgcG9zaXggPSBUcnVlKQotIyMgICBsZXgud29yZGNoYXJzICs9ICIqKy4vLToi
Ci0jIyAgIGxleC53aGl0ZXNwYWNlID0gbGV4LndoaXRlc3BhY2UucmVwbGFjZSgiXG4iLCAiIikK
LSMjICAgbGV4LmVzY2FwZSA9ICIiCi0jIwotIyMgICBsaW5lbm8gPSBsZXgubGluZW5vCi0jIyAg
IGxhc3RfYmFja3NsYXNoX2xpbmVubyA9IGxpbmVubwotIyMgICB0b2tlbiA9IGxleC5nZXRfdG9r
ZW4oKQotIyMgICBrZXkgPSB0b2tlbiAgICMgdGhlIGZpcnN0IHRva2VuIHNob3VsZCBiZSBhIGtl
eQotIyMgICBsYXN0X3Rva2VuID0gIiIKLSMjICAga2V5X3Rva2VuID0gRmFsc2UKLSMjICAgbmV4
dF9rZXkgPSBGYWxzZQotIyMgICBuZXdfZGF0YSA9IFRydWUKLSMjCi0jIyAgIGRlZiBhcHBlbmRf
ZGF0YShkYXRhLCBrZXksIG5ld19kYXRhLCB0b2tlbik6Ci0jIyAgICAgIGlmIG5ld19kYXRhIG9y
IGxlbihkYXRhW2tleV0pID09IDA6Ci0jIyAgICAgICAgIGRhdGFba2V5XS5hcHBlbmQodG9rZW4p
Ci0jIyAgICAgIGVsc2U6Ci0jIyAgICAgICAgIGRhdGFba2V5XVstMV0gKz0gdG9rZW4KLSMjCi0j
IyAgIHdoaWxlIHRva2VuOgotIyMgICAgICBpZiB0b2tlbiBpbiBbJ1xuJ106Ci0jIyAgICAgICAg
IGlmIGxhc3RfdG9rZW4gbm90IGluIFsnXFwnXToKLSMjICAgICAgICAgICAga2V5X3Rva2VuID0g
VHJ1ZQotIyMgICAgICBlbGlmIHRva2VuIGluIFsnXFwnXToKLSMjICAgICAgICAgcGFzcwotIyMg
ICAgICBlbGlmIGtleV90b2tlbjoKLSMjICAgICAgICAga2V5ID0gdG9rZW4KLSMjICAgICAgICAg
a2V5X3Rva2VuID0gRmFsc2UKLSMjICAgICAgZWxzZToKLSMjICAgICAgICAgaWYgdG9rZW4gPT0g
Iis9IjoKLSMjICAgICAgICAgICAgaWYgbm90IGRhdGEuaGFzX2tleShrZXkpOgotIyMgICAgICAg
ICAgICAgICBkYXRhW2tleV0gPSBsaXN0KCkKLSMjICAgICAgICAgZWxpZiB0b2tlbiA9PSAiPSI6
Ci0jIyAgICAgICAgICAgIGRhdGFba2V5XSA9IGxpc3QoKQotIyMgICAgICAgICBlbHNlOgotIyMg
ICAgICAgICAgICBhcHBlbmRfZGF0YSggZGF0YSwga2V5LCBuZXdfZGF0YSwgdG9rZW4gKQotIyMg
ICAgICAgICAgICBuZXdfZGF0YSA9IFRydWUKLSMjCi0jIyAgICAgIGxhc3RfdG9rZW4gPSB0b2tl
bgotIyMgICAgICB0b2tlbiA9IGxleC5nZXRfdG9rZW4oKQotIyMgICAgICAKLSMjICAgICAgaWYg
bGFzdF90b2tlbiA9PSAnXFwnIGFuZCB0b2tlbiAhPSAnXG4nOgotIyMgICAgICAgICBuZXdfZGF0
YSA9IEZhbHNlCi0jIyAgICAgICAgIGFwcGVuZF9kYXRhKCBkYXRhLCBrZXksIG5ld19kYXRhLCAn
XFwnICkKLSMjCi0jIyAgICMgY29tcHJlc3MgbGlzdHMgb2YgbGVuIDEgaW50byBzaW5nbGUgc3Ry
aW5ncwotIyMgICBmb3IgKGssIHYpIGluIGRhdGEuaXRlbXMoKToKLSMjICAgICAgaWYgbGVuKHYp
ID09IDA6Ci0jIyAgICAgICAgIGRhdGEucG9wKGspCi0jIwotIyMgICAgICAjIGl0ZW1zIGluIHRo
ZSBmb2xsb3dpbmcgbGlzdCB3aWxsIGJlIGtlcHQgYXMgbGlzdHMgYW5kIG5vdCBjb252ZXJ0ZWQg
dG8gc3RyaW5ncwotIyMgICAgICBpZiBrIGluIFsiSU5QVVQiLCAiRklMRV9QQVRURVJOUyIsICJF
WENMVURFX1BBVFRFUk5TIl06Ci0jIyAgICAgICAgIGNvbnRpbnVlCi0jIwotIyMgICAgICBpZiBs
ZW4odikgPT0gMToKLSMjICAgICAgICAgZGF0YVtrXSA9IHZbMF0KLSMjCi0jIyAgIHJldHVybiBk
YXRhCi0jIwotIyNkZWYgRG94eVNvdXJjZVNjYW4obm9kZSwgZW52LCBwYXRoKToKLSMjICAgIiIi
Ci0jIyAgIERveHlnZW4gRG94eWZpbGUgc291cmNlIHNjYW5uZXIuICBUaGlzIHNob3VsZCBzY2Fu
IHRoZSBEb3h5Z2VuIGZpbGUgYW5kIGFkZAotIyMgICBhbnkgZmlsZXMgdXNlZCB0byBnZW5lcmF0
ZSBkb2NzIHRvIHRoZSBsaXN0IG9mIHNvdXJjZSBmaWxlcy4KLSMjICAgIiIiCi0jIyAgIGRlZmF1
bHRfZmlsZV9wYXR0ZXJucyA9IFsKLSMjICAgICAgJyouYycsICcqLmNjJywgJyouY3h4JywgJyou
Y3BwJywgJyouYysrJywgJyouamF2YScsICcqLmlpJywgJyouaXh4JywKLSMjICAgICAgJyouaXBw
JywgJyouaSsrJywgJyouaW5sJywgJyouaCcsICcqLmhoICcsICcqLmh4eCcsICcqLmhwcCcsICcq
LmgrKycsCi0jIyAgICAgICcqLmlkbCcsICcqLm9kbCcsICcqLmNzJywgJyoucGhwJywgJyoucGhw
MycsICcqLmluYycsICcqLm0nLCAnKi5tbScsCi0jIyAgICAgICcqLnB5JywKLSMjICAgXQotIyMK
LSMjICAgZGVmYXVsdF9leGNsdWRlX3BhdHRlcm5zID0gWwotIyMgICAgICAnKn4nLAotIyMgICBd
Ci0jIwotIyMgICBzb3VyY2VzID0gW10KLSMjCi0jIyAgIGRhdGEgPSBEb3h5ZmlsZVBhcnNlKG5v
ZGUuZ2V0X2NvbnRlbnRzKCkpCi0jIwotIyMgICBpZiBkYXRhLmdldCgiUkVDVVJTSVZFIiwgIk5P
IikgPT0gIllFUyI6Ci0jIyAgICAgIHJlY3Vyc2l2ZSA9IFRydWUKLSMjICAgZWxzZToKLSMjICAg
ICAgcmVjdXJzaXZlID0gRmFsc2UKLSMjCi0jIyAgIGZpbGVfcGF0dGVybnMgPSBkYXRhLmdldCgi
RklMRV9QQVRURVJOUyIsIGRlZmF1bHRfZmlsZV9wYXR0ZXJucykKLSMjICAgZXhjbHVkZV9wYXR0
ZXJucyA9IGRhdGEuZ2V0KCJFWENMVURFX1BBVFRFUk5TIiwgZGVmYXVsdF9leGNsdWRlX3BhdHRl
cm5zKQotIyMKLSMjICAgZm9yIG5vZGUgaW4gZGF0YS5nZXQoIklOUFVUIiwgW10pOgotIyMgICAg
ICBpZiBvcy5wYXRoLmlzZmlsZShub2RlKToKLSMjICAgICAgICAgc291cmNlcy5hZGQobm9kZSkK
LSMjICAgICAgZWxpZiBvcy5wYXRoLmlzZGlyKG5vZGUpOgotIyMgICAgICAgICBpZiByZWN1cnNp
dmU6Ci0jIyAgICAgICAgICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKG5vZGUp
OgotIyMgICAgICAgICAgICAgICBmb3IgZiBpbiBmaWxlczoKLSMjICAgICAgICAgICAgICAgICAg
ZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4ocm9vdCwgZikKLSMjCi0jIyAgICAgICAgICAgICAgICAg
IHBhdHRlcm5fY2hlY2sgPSByZWR1Y2UobGFtYmRhIHgsIHk6IHggb3IgYm9vbChmbm1hdGNoKGZp
bGVuYW1lLCB5KSksIGZpbGVfcGF0dGVybnMsIEZhbHNlKQotIyMgICAgICAgICAgICAgICAgICBl
eGNsdWRlX2NoZWNrID0gcmVkdWNlKGxhbWJkYSB4LCB5OiB4IGFuZCBmbm1hdGNoKGZpbGVuYW1l
LCB5KSwgZXhjbHVkZV9wYXR0ZXJucywgVHJ1ZSkKLSMjCi0jIyAgICAgICAgICAgICAgICAgIGlm
IHBhdHRlcm5fY2hlY2sgYW5kIG5vdCBleGNsdWRlX2NoZWNrOgotIyMgICAgICAgICAgICAgICAg
ICAgICBzb3VyY2VzLmFwcGVuZChmaWxlbmFtZSkKLSMjICAgICAgICAgZWxzZToKLSMjICAgICAg
ICAgICAgZm9yIHBhdHRlcm4gaW4gZmlsZV9wYXR0ZXJuczoKLSMjICAgICAgICAgICAgICAgc291
cmNlcy5leHRlbmQoZ2xvYi5nbG9iKCIvIi5qb2luKFtub2RlLCBwYXR0ZXJuXSkpKQotIyMgICBz
b3VyY2VzID0gbWFwKCBsYW1iZGEgcGF0aDogZW52LkZpbGUocGF0aCksIHNvdXJjZXMgKQotIyMg
ICByZXR1cm4gc291cmNlcwotIyMKLSMjCi0jI2RlZiBEb3h5U291cmNlU2NhbkNoZWNrKG5vZGUs
IGVudik6Ci0jIyAgICIiIkNoZWNrIGlmIHdlIHNob3VsZCBzY2FuIHRoaXMgZmlsZSIiIgotIyMg
ICByZXR1cm4gb3MucGF0aC5pc2ZpbGUobm9kZS5wYXRoKQotCi1kZWYgc3JjRGlzdEVtaXR0ZXIo
c291cmNlLCB0YXJnZXQsIGVudik6Ci0jIyAgICIiIkRveHlnZW4gRG94eWZpbGUgZW1pdHRlciIi
IgotIyMgICAjIHBvc3NpYmxlIG91dHB1dCBmb3JtYXRzIGFuZCB0aGVpciBkZWZhdWx0IHZhbHVl
cyBhbmQgb3V0cHV0IGxvY2F0aW9ucwotIyMgICBvdXRwdXRfZm9ybWF0cyA9IHsKLSMjICAgICAg
IkhUTUwiOiAoIllFUyIsICJodG1sIiksCi0jIyAgICAgICJMQVRFWCI6ICgiWUVTIiwgImxhdGV4
IiksCi0jIyAgICAgICJSVEYiOiAoIk5PIiwgInJ0ZiIpLAotIyMgICAgICAiTUFOIjogKCJZRVMi
LCAibWFuIiksCi0jIyAgICAgICJYTUwiOiAoIk5PIiwgInhtbCIpLAotIyMgICB9Ci0jIwotIyMg
ICBkYXRhID0gRG94eWZpbGVQYXJzZShzb3VyY2VbMF0uZ2V0X2NvbnRlbnRzKCkpCi0jIwotIyMg
ICB0YXJnZXRzID0gW10KLSMjICAgb3V0X2RpciA9IGRhdGEuZ2V0KCJPVVRQVVRfRElSRUNUT1JZ
IiwgIi4iKQotIyMKLSMjICAgIyBhZGQgb3VyIG91dHB1dCBsb2NhdGlvbnMKLSMjICAgZm9yIChr
LCB2KSBpbiBvdXRwdXRfZm9ybWF0cy5pdGVtcygpOgotIyMgICAgICBpZiBkYXRhLmdldCgiR0VO
RVJBVEVfIiArIGssIHZbMF0pID09ICJZRVMiOgotIyMgICAgICAgICB0YXJnZXRzLmFwcGVuZChl
bnYuRGlyKCBvcy5wYXRoLmpvaW4ob3V0X2RpciwgZGF0YS5nZXQoayArICJfT1VUUFVUIiwgdlsx
XSkpKSApCi0jIwotIyMgICAjIGRvbid0IGNsb2JiZXIgdGFyZ2V0cwotIyMgICBmb3Igbm9kZSBp
biB0YXJnZXRzOgotIyMgICAgICBlbnYuUHJlY2lvdXMobm9kZSkKLSMjCi0jIyAgICMgc2V0IHVw
IGNsZWFuaW5nIHN0dWZmCi0jIyAgIGZvciBub2RlIGluIHRhcmdldHM6Ci0jIyAgICAgIGVudi5D
bGVhbihub2RlLCBub2RlKQotIyMKLSMjICAgcmV0dXJuICh0YXJnZXRzLCBzb3VyY2UpCi0gICBy
ZXR1cm4gKHRhcmdldCxzb3VyY2UpCi0KLWRlZiBnZW5lcmF0ZShlbnYpOgotICAgIiIiCi0gICBB
ZGQgYnVpbGRlcnMgYW5kIGNvbnN0cnVjdGlvbiB2YXJpYWJsZXMgZm9yIHRoZQotICAgU3JjRGlz
dCB0b29sLgotICAgIiIiCi0jIyAgIGRveHlmaWxlX3NjYW5uZXIgPSBlbnYuU2Nhbm5lcigKLSMj
ICAgICAgRG94eVNvdXJjZVNjYW4sCi0jIyAgICAgICJEb3h5U291cmNlU2NhbiIsCi0jIyAgICAg
IHNjYW5fY2hlY2sgPSBEb3h5U291cmNlU2NhbkNoZWNrLAotIyMgICApCi0KLSAgIGlmIHRhcmd6
LmV4aXN0cyhlbnYpOgotICAgICAgc3JjZGlzdF9idWlsZGVyID0gdGFyZ3oubWFrZUJ1aWxkZXIo
IHNyY0Rpc3RFbWl0dGVyICkKLQotICAgICAgZW52WydCVUlMREVSUyddWydTcmNEaXN0J10gPSBz
cmNkaXN0X2J1aWxkZXIKLQotZGVmIGV4aXN0cyhlbnYpOgotICAgIiIiCi0gICBNYWtlIHN1cmUg
c3JjZGlzdCBleGlzdHMuCi0gICAiIiIKLSAgIHJldHVybiB0YXJnei5leGlzdHMoZW52KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9zY29ucy10b29scy9zdWJzdGluZmlsZS5weSBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc2NvbnMtdG9v
bHMvc3Vic3RpbmZpbGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMzA1ODUx
YmIwYmEwNzczNTFkZmMyMjU1NDYxNGM1M2M2YzQxMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zY29ucy10b29scy9zdWJzdGluZmlsZS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLWltcG9ydCByZQotZnJvbSBTQ29ucy5TY3Jp
cHQgaW1wb3J0ICogICMgdGhlIHVzdWFsIHNjb25zIHN0dWZmIHlvdSBnZXQgaW4gYSBTQ29uc2Ny
aXB0Ci0KLWRlZiBnZW5lcmF0ZShlbnYpOgotICAgICIiIgotICAgIEFkZCBidWlsZGVycyBhbmQg
Y29uc3RydWN0aW9uIHZhcmlhYmxlcyBmb3IgdGhlCi0gICAgU3Vic3RJbkZpbGUgdG9vbC4KLQot
ICAgIEFkZHMgU3Vic3RJbkZpbGUgYnVpbGRlciwgd2hpY2ggc3Vic3RpdHV0ZXMgdGhlIGtleXMt
PnZhbHVlcyBvZiBTVUJTVF9ESUNUCi0gICAgZnJvbSB0aGUgc291cmNlIHRvIHRoZSB0YXJnZXQu
Ci0gICAgVGhlIHZhbHVlcyBvZiBTVUJTVF9ESUNUIGZpcnN0IGhhdmUgYW55IGNvbnN0cnVjdGlv
biB2YXJpYWJsZXMgZXhwYW5kZWQKLSAgICAoaXRzIGtleXMgYXJlIG5vdCBleHBhbmRlZCkuCi0g
ICAgSWYgYSB2YWx1ZSBvZiBTVUJTVF9ESUNUIGlzIGEgcHl0aG9uIGNhbGxhYmxlIGZ1bmN0aW9u
LCBpdCBpcyBjYWxsZWQgYW5kCi0gICAgdGhlIHJlc3VsdCBpcyBleHBhbmRlZCBhcyB0aGUgdmFs
dWUuCi0gICAgSWYgdGhlcmUncyBtb3JlIHRoYW4gb25lIHNvdXJjZSBhbmQgbW9yZSB0aGFuIG9u
ZSB0YXJnZXQsIGVhY2ggdGFyZ2V0IGdldHMKLSAgICBzdWJzdGl0dXRlZCBmcm9tIHRoZSBjb3Jy
ZXNwb25kaW5nIHNvdXJjZS4KLSAgICAiIiIKLSAgICBkZWYgZG9fc3Vic3RfaW5fZmlsZSh0YXJn
ZXRmaWxlLCBzb3VyY2VmaWxlLCBkaWN0KToKLSAgICAgICAgIiIiUmVwbGFjZSBhbGwgaW5zdGFu
Y2VzIG9mIHRoZSBrZXlzIG9mIGRpY3Qgd2l0aCB0aGVpciB2YWx1ZXMuCi0gICAgICAgIEZvciBl
eGFtcGxlLCBpZiBkaWN0IGlzIHsnJVZFUlNJT04lJzogJzEuMjM0NScsICclQkFTRSUnOiAnTXlQ
cm9nJ30sCi0gICAgICAgIHRoZW4gYWxsIGluc3RhbmNlcyBvZiAlVkVSU0lPTiUgaW4gdGhlIGZp
bGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoIDEuMjM0NSBldGMuCi0gICAgICAgICIiIgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBmID0gb3Blbihzb3VyY2VmaWxlLCAncmInKQotICAgICAgICAg
ICAgY29udGVudHMgPSBmLnJlYWQoKQotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgIGV4
Y2VwdDoKLSAgICAgICAgICAgIHJhaXNlIFNDb25zLkVycm9ycy5Vc2VyRXJyb3IsICJDYW4ndCBy
ZWFkIHNvdXJjZSBmaWxlICVzIiVzb3VyY2VmaWxlCi0gICAgICAgIGZvciAoayx2KSBpbiBkaWN0
Lml0ZW1zKCk6Ci0gICAgICAgICAgICBjb250ZW50cyA9IHJlLnN1YihrLCB2LCBjb250ZW50cykK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZiA9IG9wZW4odGFyZ2V0ZmlsZSwgJ3diJykKLSAg
ICAgICAgICAgIGYud3JpdGUoY29udGVudHMpCi0gICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAg
ICAgZXhjZXB0OgotICAgICAgICAgICAgcmFpc2UgU0NvbnMuRXJyb3JzLlVzZXJFcnJvciwgIkNh
bid0IHdyaXRlIHRhcmdldCBmaWxlICVzIiV0YXJnZXRmaWxlCi0gICAgICAgIHJldHVybiAwICMg
c3VjY2VzcwotCi0gICAgZGVmIHN1YnN0X2luX2ZpbGUodGFyZ2V0LCBzb3VyY2UsIGVudik6Ci0g
ICAgICAgIGlmIG5vdCBlbnYuaGFzX2tleSgnU1VCU1RfRElDVCcpOgotICAgICAgICAgICAgcmFp
c2UgU0NvbnMuRXJyb3JzLlVzZXJFcnJvciwgIlN1YnN0SW5GaWxlIHJlcXVpcmVzIFNVQlNUX0RJ
Q1QgdG8gYmUgc2V0LiIKLSAgICAgICAgZCA9IGRpY3QoZW52WydTVUJTVF9ESUNUJ10pICMgY29w
eSBpdAotICAgICAgICBmb3IgKGssdikgaW4gZC5pdGVtcygpOgotICAgICAgICAgICAgaWYgY2Fs
bGFibGUodik6Ci0gICAgICAgICAgICAgICAgZFtrXSA9IGVudi5zdWJzdCh2KCkpLnJlcGxhY2Uo
J1xcJywnXFxcXCcpCi0gICAgICAgICAgICBlbGlmIFNDb25zLlV0aWwuaXNfU3RyaW5nKHYpOgot
ICAgICAgICAgICAgICAgIGRba10gPSBlbnYuc3Vic3QodikucmVwbGFjZSgnXFwnLCdcXFxcJykK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgU0NvbnMuRXJyb3JzLlVz
ZXJFcnJvciwgIlN1YnN0SW5GaWxlOiBrZXkgJXM6ICVzIG11c3QgYmUgYSBzdHJpbmcgb3IgY2Fs
bGFibGUiJShrLCByZXByKHYpKQotICAgICAgICBmb3IgKHQscykgaW4gemlwKHRhcmdldCwgc291
cmNlKToKLSAgICAgICAgICAgIHJldHVybiBkb19zdWJzdF9pbl9maWxlKHN0cih0KSwgc3RyKHMp
LCBkKQotCi0gICAgZGVmIHN1YnN0X2luX2ZpbGVfc3RyaW5nKHRhcmdldCwgc291cmNlLCBlbnYp
OgotICAgICAgICAiIiJUaGlzIGlzIHdoYXQgZ2V0cyBwcmludGVkIG9uIHRoZSBjb25zb2xlLiIi
IgotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKFsnU3Vic3RpdHV0aW5nIHZhcnMgZnJvbSAlcyBp
bnRvICVzJyUoc3RyKHMpLCBzdHIodCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo
dCxzKSBpbiB6aXAodGFyZ2V0LCBzb3VyY2UpXSkKLQotICAgIGRlZiBzdWJzdF9lbWl0dGVyKHRh
cmdldCwgc291cmNlLCBlbnYpOgotICAgICAgICAiIiJBZGQgZGVwZW5kZW5jeSBmcm9tIHN1YnN0
aXR1dGVkIFNVQlNUX0RJQ1QgdG8gdGFyZ2V0LgotICAgICAgICBSZXR1cm5zIG9yaWdpbmFsIHRh
cmdldCwgc291cmNlIHR1cGxlIHVuY2hhbmdlZC4KLSAgICAgICAgIiIiCi0gICAgICAgIGQgPSBl
bnZbJ1NVQlNUX0RJQ1QnXS5jb3B5KCkgIyBjb3B5IGl0Ci0gICAgICAgIGZvciAoayx2KSBpbiBk
Lml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBjYWxsYWJsZSh2KToKLSAgICAgICAgICAgICAgICBk
W2tdID0gZW52LnN1YnN0KHYoKSkKLSAgICAgICAgICAgIGVsaWYgU0NvbnMuVXRpbC5pc19TdHJp
bmcodik6Ci0gICAgICAgICAgICAgICAgZFtrXT1lbnYuc3Vic3QodikKLSAgICAgICAgRGVwZW5k
cyh0YXJnZXQsIFNDb25zLk5vZGUuUHl0aG9uLlZhbHVlKGQpKQotICAgICAgICByZXR1cm4gdGFy
Z2V0LCBzb3VyY2UKLQotIyMgICAgZW52LkFwcGVuZChUT09MUyA9ICdzdWJzdGluZmlsZScpICAg
ICAgICMgdGhpcyBzaG91bGQgYmUgYXV0b21hdGljYWx5IGRvbmUgYnkgU2NvbnMgPyE/Ci0gICAg
c3Vic3RfYWN0aW9uID0gU0NvbnMuQWN0aW9uLkFjdGlvbiggc3Vic3RfaW5fZmlsZSwgc3Vic3Rf
aW5fZmlsZV9zdHJpbmcgKQotICAgIGVudlsnQlVJTERFUlMnXVsnU3Vic3RJbkZpbGUnXSA9IEJ1
aWxkZXIoYWN0aW9uPXN1YnN0X2FjdGlvbiwgZW1pdHRlcj1zdWJzdF9lbWl0dGVyKQotCi1kZWYg
ZXhpc3RzKGVudik6Ci0gICAgIiIiCi0gICAgTWFrZSBzdXJlIHRvb2wgZXhpc3RzLgotICAgICIi
IgotICAgIHJldHVybiBUcnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL3Rhcmd6LnB5
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9zY29ucy10b29scy90YXJnei5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjU0MzIwMDNkZjczMWRmNjA0YzMzMWY1ZDA3MmMzNGZmNDliMmZiZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL3Rhcmd6
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotIiIidGFyYmFsbAotCi1Ub29sLXNw
ZWNpZmljIGluaXRpYWxpemF0aW9uIGZvciB0YXJiYWxsLgotCi0iIiIKLQotIyMgQ29tbWFuZHMg
dG8gdGFja2xlIGEgY29tbWFuZCBiYXNlZCBpbXBsZW1lbnRhdGlvbjoKLSMjdG8gdW5wYWNrIG9u
IHRoZSBmbHkuLi4KLSMjZ3VuemlwIDwgRklMRS50YXIuZ3ogfCB0YXIgeHZmIC0KLSMjdG8gcGFj
ayBvbiB0aGUgZmx5Li4uCi0jI3RhciBjdmYgLSBGSUxFLUxJU1QgfCBnemlwIC1jID4gRklMRS50
YXIuZ3ogCi0KLWltcG9ydCBvcy5wYXRoCi0KLWltcG9ydCBTQ29ucy5CdWlsZGVyCi1pbXBvcnQg
U0NvbnMuTm9kZS5GUwotaW1wb3J0IFNDb25zLlV0aWwKLQotdHJ5OgotICAgIGltcG9ydCBnemlw
Ci0gICAgaW1wb3J0IHRhcmZpbGUKLSAgICBpbnRlcm5hbF90YXJneiA9IDEKLWV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICBpbnRlcm5hbF90YXJneiA9IDAKLQotVEFSR1pfREVGQVVMVF9DT01QUkVT
U0lPTl9MRVZFTCA9IDkKLQotaWYgaW50ZXJuYWxfdGFyZ3o6Ci0gICAgZGVmIHRhcmd6KHRhcmdl
dCwgc291cmNlLCBlbnYpOgotICAgICAgICBkZWYgYXJjaGl2ZV9uYW1lKCBwYXRoICk6Ci0gICAg
ICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtcGF0aCggb3MucGF0aC5hYnNwYXRoKCBwYXRoICkg
KQotICAgICAgICAgICAgY29tbW9uX3BhdGggPSBvcy5wYXRoLmNvbW1vbnByZWZpeCggKGJhc2Vf
ZGlyLCBwYXRoKSApCi0gICAgICAgICAgICBhcmNoaXZlX25hbWUgPSBwYXRoW2xlbihjb21tb25f
cGF0aCk6XQotICAgICAgICAgICAgcmV0dXJuIGFyY2hpdmVfbmFtZQotICAgICAgICAgICAgCi0g
ICAgICAgIGRlZiB2aXNpdCh0YXIsIGRpcm5hbWUsIG5hbWVzKToKLSAgICAgICAgICAgIGZvciBu
YW1lIGluIG5hbWVzOgotICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oZGlybmFt
ZSwgbmFtZSkKLSAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShwYXRoKToKLSAgICAg
ICAgICAgICAgICAgICAgdGFyLmFkZChwYXRoLCBhcmNoaXZlX25hbWUocGF0aCkgKQotICAgICAg
ICBjb21wcmVzc2lvbiA9IGVudi5nZXQoJ1RBUkdaX0NPTVBSRVNTSU9OX0xFVkVMJyxUQVJHWl9E
RUZBVUxUX0NPTVBSRVNTSU9OX0xFVkVMKQotICAgICAgICBiYXNlX2RpciA9IG9zLnBhdGgubm9y
bXBhdGgoIGVudi5nZXQoJ1RBUkdaX0JBU0VESVInLCBlbnYuRGlyKCcuJykpLmFic3BhdGggKQot
ICAgICAgICB0YXJnZXRfcGF0aCA9IHN0cih0YXJnZXRbMF0pCi0gICAgICAgIGZpbGVvYmogPSBn
emlwLkd6aXBGaWxlKCB0YXJnZXRfcGF0aCwgJ3diJywgY29tcHJlc3Npb24gKQotICAgICAgICB0
YXIgPSB0YXJmaWxlLlRhckZpbGUob3MucGF0aC5zcGxpdGV4dCh0YXJnZXRfcGF0aClbMF0sICd3
JywgZmlsZW9iaikKLSAgICAgICAgZm9yIHNvdXJjZSBpbiBzb3VyY2U6Ci0gICAgICAgICAgICBz
b3VyY2VfcGF0aCA9IHN0cihzb3VyY2UpCi0gICAgICAgICAgICBpZiBzb3VyY2UuaXNkaXIoKToK
LSAgICAgICAgICAgICAgICBvcy5wYXRoLndhbGsoc291cmNlX3BhdGgsIHZpc2l0LCB0YXIpCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHRhci5hZGQoc291cmNlX3BhdGgsIGFy
Y2hpdmVfbmFtZShzb3VyY2VfcGF0aCkgKSAgICAgICMgZmlsZW5hbWUsIGFyY25hbWUKLSAgICAg
ICAgdGFyLmNsb3NlKCkKLQotICAgIHRhcmd6QWN0aW9uID0gU0NvbnMuQWN0aW9uLkFjdGlvbih0
YXJneiwgdmFybGlzdD1bJ1RBUkdaX0NPTVBSRVNTSU9OX0xFVkVMJywnVEFSR1pfQkFTRURJUidd
KQotCi0gICAgZGVmIG1ha2VCdWlsZGVyKCBlbWl0dGVyID0gTm9uZSApOgotICAgICAgICByZXR1
cm4gU0NvbnMuQnVpbGRlci5CdWlsZGVyKGFjdGlvbiA9IFNDb25zLkFjdGlvbi5BY3Rpb24oJyRU
QVJHWl9DT00nLCAnJFRBUkdaX0NPTVNUUicpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNvdXJjZV9mYWN0b3J5ID0gU0NvbnMuTm9kZS5GUy5FbnRyeSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc2Nhbm5lciA9IFNDb25zLkRlZmF1
bHRzLkRpclNjYW5uZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vm
Zml4ID0gJyRUQVJHWl9TVUZGSVgnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11bHRpID0gMSkKLSAgICBUYXJHekJ1aWxkZXIgPSBtYWtlQnVpbGRlcigpCi0KLSAgICBk
ZWYgZ2VuZXJhdGUoZW52KToKLSAgICAgICAgIiIiQWRkIEJ1aWxkZXJzIGFuZCBjb25zdHJ1Y3Rp
b24gdmFyaWFibGVzIGZvciB6aXAgdG8gYW4gRW52aXJvbm1lbnQuCi0gICAgICAgICAgIFRoZSBm
b2xsb3dpbmcgZW52aXJvbm5lbWVudCB2YXJpYWJsZXMgbWF5IGJlIHNldDoKLSAgICAgICAgICAg
VEFSR1pfQ09NUFJFU1NJT05fTEVWRUw6IGludGVnZXIsIFswLTldLiAwOiBubyBjb21wcmVzc2lv
biwgOTogYmVzdCBjb21wcmVzc2lvbiAoc2FtZSBhcyBnemlwIGNvbXByZXNzaW9uIGxldmVsKS4K
LSAgICAgICAgICAgVEFSR1pfQkFTRURJUjogYmFzZS1kaXJlY3RvcnkgdXNlZCB0byBkZXRlcm1p
bmUgYXJjaGl2ZSBuYW1lICh0aGlzIGFsbG93IGFyY2hpdmUgbmFtZSB0byBiZSByZWxhdGl2ZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiB0b3AtZGly
KS4KLSAgICAgICAgIiIiCi0gICAgICAgIGVudlsnQlVJTERFUlMnXVsnVGFyR3onXSA9IFRhckd6
QnVpbGRlcgotICAgICAgICBlbnZbJ1RBUkdaX0NPTSddID0gdGFyZ3pBY3Rpb24KLSAgICAgICAg
ZW52WydUQVJHWl9DT01QUkVTU0lPTl9MRVZFTCddID0gVEFSR1pfREVGQVVMVF9DT01QUkVTU0lP
Tl9MRVZFTCAjIHJhbmdlIDAtOQotICAgICAgICBlbnZbJ1RBUkdaX1NVRkZJWCddICA9ICcudGFy
Lmd6JwotICAgICAgICBlbnZbJ1RBUkdaX0JBU0VESVInXSA9IGVudi5EaXIoJy4nKSAgICAgIyBT
b3VyY2VzIGFyY2hpdmUgbmFtZSBhcmUgbWFkZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS4K
LWVsc2U6Ci0gICAgZGVmIGdlbmVyYXRlKGVudik6Ci0gICAgICAgIHBhc3MKLQotCi1kZWYgZXhp
c3RzKGVudik6Ci0gICAgcmV0dXJuIGludGVybmFsX3Rhcmd6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Ny
Yy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBm
ODJhNzQ2MzMxMjFlNDBlYjQwMzEwM2JjMThkZGIzMWM3YmQ1YzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDUgQEAKK2FkZF9zdWJkaXJlY3Rv
cnkobGliX2pzb24pCitpZihKU09OQ1BQX1dJVEhfVEVTVFMpCisgICAgYWRkX3N1YmRpcmVjdG9y
eShqc29udGVzdHJ1bm5lcikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KHRlc3RfbGliX2pzb24pCitl
bmRpZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9qc29udGVzdHJ1bm5lci9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL2pzb250ZXN0cnVubmVyL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAy
M2E0NGU2NGJhNTI2NDRkMDFjZjk1MDNjNzgxN2YwZWQ5NWE1MDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9qc29udGVzdHJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDM2IEBA
CitmaW5kX3BhY2thZ2UoUHl0aG9uSW50ZXJwIDIuNikKKworYWRkX2V4ZWN1dGFibGUoanNvbnRl
c3RydW5uZXJfZXhlCisgICAgICAgICAgICAgICBtYWluLmNwcAorICAgICAgICAgICAgICAgKQor
CitpZihCVUlMRF9TSEFSRURfTElCUykKKyAgICBhZGRfY29tcGlsZV9kZWZpbml0aW9ucyggSlNP
Tl9ETEwgKQorZW5kaWYoKQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGpzb250ZXN0cnVubmVyX2V4
ZSBqc29uY3BwX2xpYikKKworc2V0X3RhcmdldF9wcm9wZXJ0aWVzKGpzb250ZXN0cnVubmVyX2V4
ZSBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FIGpzb250ZXN0cnVubmVyX2V4ZSkKKworaWYoUFlUSE9O
SU5URVJQX0ZPVU5EKQorICAgICMgUnVuIGVuZCB0byBlbmQgcGFyc2VyL3dyaXRlciB0ZXN0cwor
ICAgIHNldChURVNUX0RJUiAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vLi4vdGVzdCkK
KyAgICBzZXQoUlVOSlNPTlRFU1RTX1BBVEggJHtURVNUX0RJUn0vcnVuanNvbnRlc3RzLnB5KQor
CisgICAgIyBSdW4gdW5pdCB0ZXN0cyBpbiBwb3N0LWJ1aWxkCisgICAgIyAoZGVmYXVsdCBjbWFr
ZSB3b3JrZmxvdyBoaWRlcyBhd2F5IHRoZSB0ZXN0IHJlc3VsdCBpbnRvIGEgZmlsZSwgcmVzdWx0
aW5nIGluIHBvb3IgZGV2IHdvcmtmbG93PyE/KQorICAgIGFkZF9jdXN0b21fdGFyZ2V0KGpzb25j
cHBfcmVhZGVyd3JpdGVyX3Rlc3RzCisgICAgICAgICAgICAgICAgICAgICAgIiR7UFlUSE9OX0VY
RUNVVEFCTEV9IiAtQiAiJHtSVU5KU09OVEVTVFNfUEFUSH0iICQ8VEFSR0VUX0ZJTEU6anNvbnRl
c3RydW5uZXJfZXhlPiAiJHtURVNUX0RJUn0vZGF0YSIKKyAgICAgICAgICAgICAgICAgICAgICBE
RVBFTkRTIGpzb250ZXN0cnVubmVyX2V4ZSBqc29uY3BwX3Rlc3QKKyAgICAgICAgICAgICAgICAg
ICAgICApCisgICAgYWRkX2N1c3RvbV90YXJnZXQoanNvbmNwcF9jaGVjayBERVBFTkRTIGpzb25j
cHBfcmVhZGVyd3JpdGVyX3Rlc3RzKQorCisgICAgIyMgQ3JlYXRlIHRlc3RzIGZvciBkYXNoYm9h
cmQgc3VibWlzc2lvbiwgYWxsb3dzIGVhc3kgcmV2aWV3IG9mIENJIHJlc3VsdHMgaHR0cHM6Ly9t
eS5jZGFzaC5vcmcvaW5kZXgucGhwP3Byb2plY3Q9anNvbmNwcAorICAgIGFkZF90ZXN0KE5BTUUg
anNvbmNwcF9yZWFkZXJ3cml0ZXIKKyAgICAgICAgICAgICBDT01NQU5EICIke1BZVEhPTl9FWEVD
VVRBQkxFfSIgLUIgIiR7UlVOSlNPTlRFU1RTX1BBVEh9IiAkPFRBUkdFVF9GSUxFOmpzb250ZXN0
cnVubmVyX2V4ZT4gIiR7VEVTVF9ESVJ9L2RhdGEiCisgICAgICAgICAgICAgV09SS0lOR19ESVJF
Q1RPUlkgIiR7VEVTVF9ESVJ9L2RhdGEiCisgICAgKQorICAgIGFkZF90ZXN0KE5BTUUganNvbmNw
cF9yZWFkZXJ3cml0ZXJfanNvbl9jaGVja2VyCisgICAgICAgICAgICAgQ09NTUFORCAiJHtQWVRI
T05fRVhFQ1VUQUJMRX0iIC1CICIke1JVTkpTT05URVNUU19QQVRIfSIgLS13aXRoLWpzb24tY2hl
Y2tlciAgJDxUQVJHRVRfRklMRTpqc29udGVzdHJ1bm5lcl9leGU+ICIke1RFU1RfRElSfS9kYXRh
IgorICAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICIke1RFU1RfRElSfS9kYXRhIgorICAg
ICkKK2VuZGlmKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2pzb250ZXN0cnVubmVyL21haW4uY3Bw
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9zcmMvanNvbnRlc3RydW5uZXIvbWFpbi5jcHAKaW5kZXggNzRmMDIxNjVjM2MyZDhl
ZjBlZjQ2YjlkYjg4MzMyYzVlODRiNWIzYy4uZDJkNDFhYTVmZDk5YjEwMDBkZDUyZDUzZjQ4ODJi
Zjc2Yjc3OWI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRlc3RydW5uZXIvbWFpbi5jcHAK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9zcmMvanNvbnRlc3RydW5uZXIvbWFpbi5jcHAKQEAgLTEsMjkzICsxLDMwMCBA
QAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdo
dCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAv
LyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNp
cmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxl
IExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC9MSUNFTlNFCiAKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKGRp
c2FibGUgOiA0OTk2KQorI2VuZGlmCisKIC8qIFRoaXMgZXhlY3V0YWJsZSBpcyB1c2VkIGZvciB0
ZXN0aW5nIHBhcnNlci93cml0ZXIgdXNpbmcgcmVhbCBKU09OIGZpbGVzLgogICovCiAKLQotI2lu
Y2x1ZGUgPGpzb24vanNvbi5oPgogI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gc29ydAotI2luY2x1
ZGUgPHN0ZGlvLmg+Ci0KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAgJiYgIF9NU0NfVkVSID49IDEz
MTAKLSMgcHJhZ21hIHdhcm5pbmcoIGRpc2FibGU6IDQ5OTYgKSAgICAgLy8gZGlzYWJsZSBmb3Bl
biBkZXByZWNhdGlvbiB3YXJuaW5nCi0jZW5kaWYKLQotc3RhdGljIHN0ZDo6c3RyaW5nIAotbm9y
bWFsaXplRmxvYXRpbmdQb2ludFN0ciggZG91YmxlIHZhbHVlICkKLXsKLSAgICBjaGFyIGJ1ZmZl
clszMl07Ci0gICAgc3ByaW50ZiggYnVmZmVyLCAiJS4xNmciLCB2YWx1ZSApOwotICAgIGJ1ZmZl
cltzaXplb2YoYnVmZmVyKS0xXSA9IDA7Ci0gICAgc3RkOjpzdHJpbmcgcyggYnVmZmVyICk7Ci0g
ICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpbmRleCA9IHMuZmluZF9sYXN0X29mKCAiZUUiICk7
Ci0gICAgaWYgKCBpbmRleCAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCisjaW5jbHVkZSA8Y3N0ZGlv
PgorI2luY2x1ZGUgPGpzb24vanNvbi5oPgorI2luY2x1ZGUgPHNzdHJlYW0+CisKK3N0cnVjdCBP
cHRpb25zIHsKKyAgSnNvbjo6U3RyaW5nIHBhdGg7CisgIEpzb246OkZlYXR1cmVzIGZlYXR1cmVz
OworICBib29sIHBhcnNlT25seTsKKyAgdXNpbmcgd3JpdGVGdW5jVHlwZSA9IEpzb246OlN0cmlu
ZyAoKikoSnNvbjo6VmFsdWUgY29uc3QmKTsKKyAgd3JpdGVGdW5jVHlwZSB3cml0ZTsKK307CisK
K3N0YXRpYyBKc29uOjpTdHJpbmcgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihkb3VibGUgdmFs
dWUpIHsKKyAgY2hhciBidWZmZXJbMzJdOworICBqc29uY3BwX3NucHJpbnRmKGJ1ZmZlciwgc2l6
ZW9mKGJ1ZmZlciksICIlLjE2ZyIsIHZhbHVlKTsKKyAgYnVmZmVyW3NpemVvZihidWZmZXIpIC0g
MV0gPSAwOworICBKc29uOjpTdHJpbmcgcyhidWZmZXIpOworICBKc29uOjpTdHJpbmc6OnNpemVf
dHlwZSBpbmRleCA9IHMuZmluZF9sYXN0X29mKCJlRSIpOworICBpZiAoaW5kZXggIT0gSnNvbjo6
U3RyaW5nOjpucG9zKSB7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgaGFzU2lnbiA9Cisg
ICAgICAgIChzW2luZGV4ICsgMV0gPT0gJysnIHx8IHNbaW5kZXggKyAxXSA9PSAnLScpID8gMSA6
IDA7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgZXhwb25lbnRTdGFydEluZGV4ID0gaW5k
ZXggKyAxICsgaGFzU2lnbjsKKyAgICBKc29uOjpTdHJpbmcgbm9ybWFsaXplZCA9IHMuc3Vic3Ry
KDAsIGV4cG9uZW50U3RhcnRJbmRleCk7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgaW5k
ZXhEaWdpdCA9CisgICAgICAgIHMuZmluZF9maXJzdF9ub3Rfb2YoJzAnLCBleHBvbmVudFN0YXJ0
SW5kZXgpOworICAgIEpzb246OlN0cmluZyBleHBvbmVudCA9ICIwIjsKKyAgICBpZiAoaW5kZXhE
aWdpdCAhPSBKc29uOjpTdHJpbmc6Om5wb3MpIC8vIFRoZXJlIGlzIGFuIGV4cG9uZW50IGRpZmZl
cmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSAw
CiAgICAgewotICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGhhc1NpZ24gPSAoc1tpbmRl
eCsxXSA9PSAnKycgfHwgc1tpbmRleCsxXSA9PSAnLScpID8gMSA6IDA7Ci0gICAgICAgIHN0ZDo6
c3RyaW5nOjpzaXplX3R5cGUgZXhwb25lbnRTdGFydEluZGV4ID0gaW5kZXggKyAxICsgaGFzU2ln
bjsKLSAgICAgICAgc3RkOjpzdHJpbmcgbm9ybWFsaXplZCA9IHMuc3Vic3RyKCAwLCBleHBvbmVu
dFN0YXJ0SW5kZXggKTsKLSAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpbmRleERpZ2l0
ID0gcy5maW5kX2ZpcnN0X25vdF9vZiggJzAnLCBleHBvbmVudFN0YXJ0SW5kZXggKTsKLSAgICAg
ICAgc3RkOjpzdHJpbmcgZXhwb25lbnQgPSAiMCI7Ci0gICAgICAgIGlmICggaW5kZXhEaWdpdCAh
PSBzdGQ6OnN0cmluZzo6bnBvcyApIC8vIFRoZXJlIGlzIGFuIGV4cG9uZW50IGRpZmZlcmVudCBm
cm9tIDAKLSAgICAgICAgewotICAgICAgICAgICAgZXhwb25lbnQgPSBzLnN1YnN0ciggaW5kZXhE
aWdpdCApOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVkICsgZXhwb25lbnQ7
CisgICAgICBleHBvbmVudCA9IHMuc3Vic3RyKGluZGV4RGlnaXQpOwogICAgIH0KLSAgICByZXR1
cm4gczsKKyAgICByZXR1cm4gbm9ybWFsaXplZCArIGV4cG9uZW50OworICB9CisgIHJldHVybiBz
OwogfQogCi0KLXN0YXRpYyBzdGQ6OnN0cmluZwotcmVhZElucHV0VGVzdEZpbGUoIGNvbnN0IGNo
YXIgKnBhdGggKQotewotICAgRklMRSAqZmlsZSA9IGZvcGVuKCBwYXRoLCAicmIiICk7Ci0gICBp
ZiAoICFmaWxlICkKLSAgICAgIHJldHVybiBzdGQ6OnN0cmluZygiIik7Ci0gICBmc2VlayggZmls
ZSwgMCwgU0VFS19FTkQgKTsKLSAgIGxvbmcgc2l6ZSA9IGZ0ZWxsKCBmaWxlICk7Ci0gICBmc2Vl
ayggZmlsZSwgMCwgU0VFS19TRVQgKTsKLSAgIHN0ZDo6c3RyaW5nIHRleHQ7Ci0gICBjaGFyICpi
dWZmZXIgPSBuZXcgY2hhcltzaXplKzFdOwotICAgYnVmZmVyW3NpemVdID0gMDsKLSAgIGlmICgg
ZnJlYWQoIGJ1ZmZlciwgMSwgc2l6ZSwgZmlsZSApID09ICh1bnNpZ25lZCBsb25nKXNpemUgKQot
ICAgICAgdGV4dCA9IGJ1ZmZlcjsKLSAgIGZjbG9zZSggZmlsZSApOwotICAgZGVsZXRlW10gYnVm
ZmVyOwotICAgcmV0dXJuIHRleHQ7CitzdGF0aWMgSnNvbjo6U3RyaW5nIHJlYWRJbnB1dFRlc3RG
aWxlKGNvbnN0IGNoYXIqIHBhdGgpIHsKKyAgRklMRSogZmlsZSA9IGZvcGVuKHBhdGgsICJyYiIp
OworICBpZiAoIWZpbGUpCisgICAgcmV0dXJuICIiOworICBmc2VlayhmaWxlLCAwLCBTRUVLX0VO
RCk7CisgIGxvbmcgY29uc3Qgc2l6ZSA9IGZ0ZWxsKGZpbGUpOworICBzaXplX3QgY29uc3QgdXNp
emUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihzaXplKTsKKyAgZnNlZWsoZmlsZSwgMCwg
U0VFS19TRVQpOworICBjaGFyKiBidWZmZXIgPSBuZXcgY2hhcltzaXplICsgMV07CisgIGJ1ZmZl
cltzaXplXSA9IDA7CisgIEpzb246OlN0cmluZyB0ZXh0OworICBpZiAoZnJlYWQoYnVmZmVyLCAx
LCB1c2l6ZSwgZmlsZSkgPT0gdXNpemUpCisgICAgdGV4dCA9IGJ1ZmZlcjsKKyAgZmNsb3NlKGZp
bGUpOworICBkZWxldGVbXSBidWZmZXI7CisgIHJldHVybiB0ZXh0OwogfQogCiBzdGF0aWMgdm9p
ZAotcHJpbnRWYWx1ZVRyZWUoIEZJTEUgKmZvdXQsIEpzb246OlZhbHVlICZ2YWx1ZSwgY29uc3Qg
c3RkOjpzdHJpbmcgJnBhdGggPSAiLiIgKQotewotICAgc3dpdGNoICggdmFsdWUudHlwZSgpICkK
LSAgIHsKLSAgIGNhc2UgSnNvbjo6bnVsbFZhbHVlOgotICAgICAgZnByaW50ZiggZm91dCwgIiVz
PW51bGxcbiIsIHBhdGguY19zdHIoKSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIEpzb246Omlu
dFZhbHVlOgotICAgICAgZnByaW50ZiggZm91dCwgIiVzPSVzXG4iLCBwYXRoLmNfc3RyKCksIEpz
b246OnZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzTGFyZ2VzdEludCgpICkuY19zdHIoKSApOwotICAg
ICAgYnJlYWs7Ci0gICBjYXNlIEpzb246OnVpbnRWYWx1ZToKLSAgICAgIGZwcmludGYoIGZvdXQs
ICIlcz0lc1xuIiwgcGF0aC5jX3N0cigpLCBKc29uOjp2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xh
cmdlc3RVSW50KCkgKS5jX3N0cigpICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgSnNvbjo6cmVh
bFZhbHVlOgotICAgICAgIGZwcmludGYoIGZvdXQsICIlcz0lc1xuIiwgcGF0aC5jX3N0cigpLCBu
b3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKHZhbHVlLmFzRG91YmxlKCkpLmNfc3RyKCkgKTsKLSAg
ICAgIGJyZWFrOwotICAgY2FzZSBKc29uOjpzdHJpbmdWYWx1ZToKLSAgICAgIGZwcmludGYoIGZv
dXQsICIlcz1cIiVzXCJcbiIsIHBhdGguY19zdHIoKSwgdmFsdWUuYXNTdHJpbmcoKS5jX3N0cigp
ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgSnNvbjo6Ym9vbGVhblZhbHVlOgotICAgICAgZnBy
aW50ZiggZm91dCwgIiVzPSVzXG4iLCBwYXRoLmNfc3RyKCksIHZhbHVlLmFzQm9vbCgpID8gInRy
dWUiIDogImZhbHNlIiApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIEpzb246OmFycmF5VmFsdWU6
Ci0gICAgICB7Ci0gICAgICAgICBmcHJpbnRmKCBmb3V0LCAiJXM9W11cbiIsIHBhdGguY19zdHIo
KSApOwotICAgICAgICAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICAgICAgICBmb3IgKCBp
bnQgaW5kZXggPTA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCApCi0gICAgICAgICB7Ci0gICAgICAg
ICAgICBzdGF0aWMgY2hhciBidWZmZXJbMTZdOwotICAgICAgICAgICAgc3ByaW50ZiggYnVmZmVy
LCAiWyVkXSIsIGluZGV4ICk7Ci0gICAgICAgICAgICBwcmludFZhbHVlVHJlZSggZm91dCwgdmFs
dWVbaW5kZXhdLCBwYXRoICsgYnVmZmVyICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBi
cmVhazsKLSAgIGNhc2UgSnNvbjo6b2JqZWN0VmFsdWU6Ci0gICAgICB7Ci0gICAgICAgICBmcHJp
bnRmKCBmb3V0LCAiJXM9e31cbiIsIHBhdGguY19zdHIoKSApOwotICAgICAgICAgSnNvbjo6VmFs
dWU6Ok1lbWJlcnMgbWVtYmVycyggdmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSApOwotICAgICAgICAg
c3RkOjpzb3J0KCBtZW1iZXJzLmJlZ2luKCksIG1lbWJlcnMuZW5kKCkgKTsKLSAgICAgICAgIHN0
ZDo6c3RyaW5nIHN1ZmZpeCA9ICoocGF0aC5lbmQoKS0xKSA9PSAnLicgPyAiIiA6ICIuIjsKLSAg
ICAgICAgIGZvciAoIEpzb246OlZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMu
YmVnaW4oKTsgCi0gICAgICAgICAgICAgICBpdCAhPSBtZW1iZXJzLmVuZCgpOyAKLSAgICAgICAg
ICAgICAgICsraXQgKQotICAgICAgICAgewotICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcg
Jm5hbWUgPSAqaXQ7Ci0gICAgICAgICAgICBwcmludFZhbHVlVHJlZSggZm91dCwgdmFsdWVbbmFt
ZV0sIHBhdGggKyBzdWZmaXggKyBuYW1lICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBi
cmVhazsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLX0KLQotCi1zdGF0aWMgaW50
Ci1wYXJzZUFuZFNhdmVWYWx1ZVRyZWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZpbnB1dCwgCi0gICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZhY3R1YWwsCi0gICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZraW5kLAotICAgICAgICAgICAgICAgICAg
ICAgICBKc29uOjpWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNv
bjo6RmVhdHVyZXMgJmZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICBib29sIHBhcnNl
T25seSApCi17Ci0gICBKc29uOjpSZWFkZXIgcmVhZGVyKCBmZWF0dXJlcyApOwotICAgYm9vbCBw
YXJzaW5nU3VjY2Vzc2Z1bCA9IHJlYWRlci5wYXJzZSggaW5wdXQsIHJvb3QgKTsKLSAgIGlmICgg
IXBhcnNpbmdTdWNjZXNzZnVsICkKLSAgIHsKLSAgICAgIHByaW50ZiggIkZhaWxlZCB0byBwYXJz
ZSAlcyBmaWxlOiBcbiVzXG4iLCAKLSAgICAgICAgICAgICAga2luZC5jX3N0cigpLAotICAgICAg
ICAgICAgICByZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpLmNfc3RyKCkgKTsKLSAg
ICAgIHJldHVybiAxOwotICAgfQotCi0gICBpZiAoICFwYXJzZU9ubHkgKQotICAgewotICAgICAg
RklMRSAqZmFjdHVhbCA9IGZvcGVuKCBhY3R1YWwuY19zdHIoKSwgInd0IiApOwotICAgICAgaWYg
KCAhZmFjdHVhbCApCi0gICAgICB7Ci0gICAgICAgICBwcmludGYoICJGYWlsZWQgdG8gY3JlYXRl
ICVzIGFjdHVhbCBmaWxlLlxuIiwga2luZC5jX3N0cigpICk7Ci0gICAgICAgICByZXR1cm4gMjsK
LSAgICAgIH0KLSAgICAgIHByaW50VmFsdWVUcmVlKCBmYWN0dWFsLCByb290ICk7Ci0gICAgICBm
Y2xvc2UoIGZhY3R1YWwgKTsKLSAgIH0KLSAgIHJldHVybiAwOworcHJpbnRWYWx1ZVRyZWUoRklM
RSogZm91dCwgSnNvbjo6VmFsdWUmIHZhbHVlLCBjb25zdCBKc29uOjpTdHJpbmcmIHBhdGggPSAi
LiIpIHsKKyAgaWYgKHZhbHVlLmhhc0NvbW1lbnQoSnNvbjo6Y29tbWVudEJlZm9yZSkpIHsKKyAg
ICBmcHJpbnRmKGZvdXQsICIlc1xuIiwgdmFsdWUuZ2V0Q29tbWVudChKc29uOjpjb21tZW50QmVm
b3JlKS5jX3N0cigpKTsKKyAgfQorICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIEpz
b246Om51bGxWYWx1ZToKKyAgICBmcHJpbnRmKGZvdXQsICIlcz1udWxsXG4iLCBwYXRoLmNfc3Ry
KCkpOworICAgIGJyZWFrOworICBjYXNlIEpzb246OmludFZhbHVlOgorICAgIGZwcmludGYoZm91
dCwgIiVzPSVzXG4iLCBwYXRoLmNfc3RyKCksCisgICAgICAgICAgICBKc29uOjp2YWx1ZVRvU3Ry
aW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKS5jX3N0cigpKTsKKyAgICBicmVhazsKKyAgY2FzZSBK
c29uOjp1aW50VmFsdWU6CisgICAgZnByaW50Zihmb3V0LCAiJXM9JXNcbiIsIHBhdGguY19zdHIo
KSwKKyAgICAgICAgICAgIEpzb246OnZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgp
KS5jX3N0cigpKTsKKyAgICBicmVhazsKKyAgY2FzZSBKc29uOjpyZWFsVmFsdWU6CisgICAgZnBy
aW50Zihmb3V0LCAiJXM9JXNcbiIsIHBhdGguY19zdHIoKSwKKyAgICAgICAgICAgIG5vcm1hbGl6
ZUZsb2F0aW5nUG9pbnRTdHIodmFsdWUuYXNEb3VibGUoKSkuY19zdHIoKSk7CisgICAgYnJlYWs7
CisgIGNhc2UgSnNvbjo6c3RyaW5nVmFsdWU6CisgICAgZnByaW50Zihmb3V0LCAiJXM9XCIlc1wi
XG4iLCBwYXRoLmNfc3RyKCksIHZhbHVlLmFzU3RyaW5nKCkuY19zdHIoKSk7CisgICAgYnJlYWs7
CisgIGNhc2UgSnNvbjo6Ym9vbGVhblZhbHVlOgorICAgIGZwcmludGYoZm91dCwgIiVzPSVzXG4i
LCBwYXRoLmNfc3RyKCksIHZhbHVlLmFzQm9vbCgpID8gInRydWUiIDogImZhbHNlIik7CisgICAg
YnJlYWs7CisgIGNhc2UgSnNvbjo6YXJyYXlWYWx1ZTogeworICAgIGZwcmludGYoZm91dCwgIiVz
PVtdXG4iLCBwYXRoLmNfc3RyKCkpOworICAgIEpzb246OkFycmF5SW5kZXggc2l6ZSA9IHZhbHVl
LnNpemUoKTsKKyAgICBmb3IgKEpzb246OkFycmF5SW5kZXggaW5kZXggPSAwOyBpbmRleCA8IHNp
emU7ICsraW5kZXgpIHsKKyAgICAgIHN0YXRpYyBjaGFyIGJ1ZmZlclsxNl07CisgICAgICBqc29u
Y3BwX3NucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICJbJXVdIiwgaW5kZXgpOworICAg
ICAgcHJpbnRWYWx1ZVRyZWUoZm91dCwgdmFsdWVbaW5kZXhdLCBwYXRoICsgYnVmZmVyKTsKKyAg
ICB9CisgIH0gYnJlYWs7CisgIGNhc2UgSnNvbjo6b2JqZWN0VmFsdWU6IHsKKyAgICBmcHJpbnRm
KGZvdXQsICIlcz17fVxuIiwgcGF0aC5jX3N0cigpKTsKKyAgICBKc29uOjpWYWx1ZTo6TWVtYmVy
cyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOworICAgIHN0ZDo6c29ydChtZW1iZXJz
LmJlZ2luKCksIG1lbWJlcnMuZW5kKCkpOworICAgIEpzb246OlN0cmluZyBzdWZmaXggPSAqKHBh
dGguZW5kKCkgLSAxKSA9PSAnLicgPyAiIiA6ICIuIjsKKyAgICBmb3IgKGF1dG8gbmFtZSA6IG1l
bWJlcnMpIHsKKyAgICAgIHByaW50VmFsdWVUcmVlKGZvdXQsIHZhbHVlW25hbWVdLCBwYXRoICsg
c3VmZml4ICsgbmFtZSk7CisgICAgfQorICB9IGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFr
OworICB9CisKKyAgaWYgKHZhbHVlLmhhc0NvbW1lbnQoSnNvbjo6Y29tbWVudEFmdGVyKSkgewor
ICAgIGZwcmludGYoZm91dCwgIiVzXG4iLCB2YWx1ZS5nZXRDb21tZW50KEpzb246OmNvbW1lbnRB
ZnRlcikuY19zdHIoKSk7CisgIH0KIH0KIAotCi1zdGF0aWMgaW50Ci1yZXdyaXRlVmFsdWVUcmVl
KCBjb25zdCBzdGQ6OnN0cmluZyAmcmV3cml0ZVBhdGgsIAotICAgICAgICAgICAgICAgICAgY29u
c3QgSnNvbjo6VmFsdWUgJnJvb3QsIAotICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgJnJl
d3JpdGUgKQotewotICAgLy9Kc29uOjpGYXN0V3JpdGVyIHdyaXRlcjsKLSAgIC8vd3JpdGVyLmVu
YWJsZVlBTUxDb21wYXRpYmlsaXR5KCk7Ci0gICBKc29uOjpTdHlsZWRXcml0ZXIgd3JpdGVyOwot
ICAgcmV3cml0ZSA9IHdyaXRlci53cml0ZSggcm9vdCApOwotICAgRklMRSAqZm91dCA9IGZvcGVu
KCByZXdyaXRlUGF0aC5jX3N0cigpLCAid3QiICk7Ci0gICBpZiAoICFmb3V0ICkKLSAgIHsKLSAg
ICAgIHByaW50ZiggIkZhaWxlZCB0byBjcmVhdGUgcmV3cml0ZSBmaWxlOiAlc1xuIiwgcmV3cml0
ZVBhdGguY19zdHIoKSApOworc3RhdGljIGludCBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUoY29uc3Qg
SnNvbjo6U3RyaW5nJiBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IEpzb246OlN0cmluZyYgYWN0dWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgSnNvbjo6U3RyaW5nJiBraW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgSnNvbjo6RmVhdHVyZXMmIGZlYXR1cmVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBwYXJzZU9ubHksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBKc29uOjpWYWx1ZSogcm9vdCkgeworICBKc29uOjpSZWFkZXIgcmVhZGVyKGZlYXR1
cmVzKTsKKyAgYm9vbCBwYXJzaW5nU3VjY2Vzc2Z1bCA9CisgICAgICByZWFkZXIucGFyc2UoaW5w
dXQuZGF0YSgpLCBpbnB1dC5kYXRhKCkgKyBpbnB1dC5zaXplKCksICpyb290KTsKKyAgaWYgKCFw
YXJzaW5nU3VjY2Vzc2Z1bCkgeworICAgIHByaW50ZigiRmFpbGVkIHRvIHBhcnNlICVzIGZpbGU6
IFxuJXNcbiIsIGtpbmQuY19zdHIoKSwKKyAgICAgICAgICAgcmVhZGVyLmdldEZvcm1hdHRlZEVy
cm9yTWVzc2FnZXMoKS5jX3N0cigpKTsKKyAgICByZXR1cm4gMTsKKyAgfQorICBpZiAoIXBhcnNl
T25seSkgeworICAgIEZJTEUqIGZhY3R1YWwgPSBmb3BlbihhY3R1YWwuY19zdHIoKSwgInd0Iik7
CisgICAgaWYgKCFmYWN0dWFsKSB7CisgICAgICBwcmludGYoIkZhaWxlZCB0byBjcmVhdGUgJXMg
YWN0dWFsIGZpbGUuXG4iLCBraW5kLmNfc3RyKCkpOwogICAgICAgcmV0dXJuIDI7Ci0gICB9Ci0g
ICBmcHJpbnRmKCBmb3V0LCAiJXNcbiIsIHJld3JpdGUuY19zdHIoKSApOwotICAgZmNsb3NlKCBm
b3V0ICk7Ci0gICByZXR1cm4gMDsKKyAgICB9CisgICAgcHJpbnRWYWx1ZVRyZWUoZmFjdHVhbCwg
KnJvb3QpOworICAgIGZjbG9zZShmYWN0dWFsKTsKKyAgfQorICByZXR1cm4gMDsKIH0KLQotCi1z
dGF0aWMgc3RkOjpzdHJpbmcKLXJlbW92ZVN1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgs
IAotICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmZXh0ZW5zaW9uICkKLXsKLSAgIGlm
ICggZXh0ZW5zaW9uLmxlbmd0aCgpID49IHBhdGgubGVuZ3RoKCkgKQotICAgICAgcmV0dXJuIHN0
ZDo6c3RyaW5nKCIiKTsKLSAgIHN0ZDo6c3RyaW5nIHN1ZmZpeCA9IHBhdGguc3Vic3RyKCBwYXRo
Lmxlbmd0aCgpIC0gZXh0ZW5zaW9uLmxlbmd0aCgpICk7Ci0gICBpZiAoIHN1ZmZpeCAhPSBleHRl
bnNpb24gKQotICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCIiKTsKLSAgIHJldHVybiBwYXRoLnN1
YnN0ciggMCwgcGF0aC5sZW5ndGgoKSAtIGV4dGVuc2lvbi5sZW5ndGgoKSApOworLy8gc3RhdGlj
IEpzb246OlN0cmluZyB1c2VGYXN0V3JpdGVyKEpzb246OlZhbHVlIGNvbnN0JiByb290KSB7Cisv
LyAgIEpzb246OkZhc3RXcml0ZXIgd3JpdGVyOworLy8gICB3cml0ZXIuZW5hYmxlWUFNTENvbXBh
dGliaWxpdHkoKTsKKy8vICAgcmV0dXJuIHdyaXRlci53cml0ZShyb290KTsKKy8vIH0KK3N0YXRp
YyBKc29uOjpTdHJpbmcgdXNlU3R5bGVkV3JpdGVyKEpzb246OlZhbHVlIGNvbnN0JiByb290KSB7
CisgIEpzb246OlN0eWxlZFdyaXRlciB3cml0ZXI7CisgIHJldHVybiB3cml0ZXIud3JpdGUocm9v
dCk7Cit9CitzdGF0aWMgSnNvbjo6U3RyaW5nIHVzZVN0eWxlZFN0cmVhbVdyaXRlcihKc29uOjpW
YWx1ZSBjb25zdCYgcm9vdCkgeworICBKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXIgd3JpdGVyOwor
ICBKc29uOjpPU3RyaW5nU3RyZWFtIHNvdXQ7CisgIHdyaXRlci53cml0ZShzb3V0LCByb290KTsK
KyAgcmV0dXJuIHNvdXQuc3RyKCk7Cit9CitzdGF0aWMgSnNvbjo6U3RyaW5nIHVzZUJ1aWx0U3R5
bGVkU3RyZWFtV3JpdGVyKEpzb246OlZhbHVlIGNvbnN0JiByb290KSB7CisgIEpzb246OlN0cmVh
bVdyaXRlckJ1aWxkZXIgYnVpbGRlcjsKKyAgcmV0dXJuIEpzb246OndyaXRlU3RyaW5nKGJ1aWxk
ZXIsIHJvb3QpOworfQorc3RhdGljIGludCByZXdyaXRlVmFsdWVUcmVlKGNvbnN0IEpzb246OlN0
cmluZyYgcmV3cml0ZVBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNv
bjo6VmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9uczo6d3Jp
dGVGdW5jVHlwZSB3cml0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBKc29uOjpTdHJp
bmcqIHJld3JpdGUpIHsKKyAgKnJld3JpdGUgPSB3cml0ZShyb290KTsKKyAgRklMRSogZm91dCA9
IGZvcGVuKHJld3JpdGVQYXRoLmNfc3RyKCksICJ3dCIpOworICBpZiAoIWZvdXQpIHsKKyAgICBw
cmludGYoIkZhaWxlZCB0byBjcmVhdGUgcmV3cml0ZSBmaWxlOiAlc1xuIiwgcmV3cml0ZVBhdGgu
Y19zdHIoKSk7CisgICAgcmV0dXJuIDI7CisgIH0KKyAgZnByaW50Zihmb3V0LCAiJXNcbiIsIHJl
d3JpdGUtPmNfc3RyKCkpOworICBmY2xvc2UoZm91dCk7CisgIHJldHVybiAwOwogfQogCitzdGF0
aWMgSnNvbjo6U3RyaW5nIHJlbW92ZVN1ZmZpeChjb25zdCBKc29uOjpTdHJpbmcmIHBhdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBKc29uOjpTdHJpbmcmIGV4dGVu
c2lvbikgeworICBpZiAoZXh0ZW5zaW9uLmxlbmd0aCgpID49IHBhdGgubGVuZ3RoKCkpCisgICAg
cmV0dXJuIEpzb246OlN0cmluZygiIik7CisgIEpzb246OlN0cmluZyBzdWZmaXggPSBwYXRoLnN1
YnN0cihwYXRoLmxlbmd0aCgpIC0gZXh0ZW5zaW9uLmxlbmd0aCgpKTsKKyAgaWYgKHN1ZmZpeCAh
PSBleHRlbnNpb24pCisgICAgcmV0dXJuIEpzb246OlN0cmluZygiIik7CisgIHJldHVybiBwYXRo
LnN1YnN0cigwLCBwYXRoLmxlbmd0aCgpIC0gZXh0ZW5zaW9uLmxlbmd0aCgpKTsKK30KIAotc3Rh
dGljIHZvaWQKLXByaW50Q29uZmlnKCkKLXsKLSAgIC8vIFByaW50IHRoZSBjb25maWd1cmF0aW9u
IHVzZWQgdG8gY29tcGlsZSBKc29uQ3BwCitzdGF0aWMgdm9pZCBwcmludENvbmZpZygpIHsKKy8v
IFByaW50IHRoZSBjb25maWd1cmF0aW9uIHVzZWQgdG8gY29tcGlsZSBKc29uQ3BwCiAjaWYgZGVm
aW5lZChKU09OX05PX0lOVDY0KQotICAgcHJpbnRmKCAiSlNPTl9OT19JTlQ2ND0xXG4iICk7Cisg
IHByaW50ZigiSlNPTl9OT19JTlQ2ND0xXG4iKTsKICNlbHNlCi0gICBwcmludGYoICJKU09OX05P
X0lOVDY0PTBcbiIgKTsKKyAgcHJpbnRmKCJKU09OX05PX0lOVDY0PTBcbiIpOwogI2VuZGlmCiB9
CiAKLQotc3RhdGljIGludCAKLXByaW50VXNhZ2UoIGNvbnN0IGNoYXIgKmFyZ3ZbXSApCi17Ci0g
ICBwcmludGYoICJVc2FnZTogJXMgWy0tc3RyaWN0XSBpbnB1dC1qc29uLWZpbGUiLCBhcmd2WzBd
ICk7Ci0gICByZXR1cm4gMzsKK3N0YXRpYyBpbnQgcHJpbnRVc2FnZShjb25zdCBjaGFyKiBhcmd2
W10pIHsKKyAgcHJpbnRmKCJVc2FnZTogJXMgWy0tc3RyaWN0XSBpbnB1dC1qc29uLWZpbGUiLCBh
cmd2WzBdKTsKKyAgcmV0dXJuIDM7CiB9CiAKLQotaW50Ci1wYXJzZUNvbW1hbmRMaW5lKCBpbnQg
YXJnYywgY29uc3QgY2hhciAqYXJndltdLCAKLSAgICAgICAgICAgICAgICAgIEpzb246OkZlYXR1
cmVzICZmZWF0dXJlcywgc3RkOjpzdHJpbmcgJnBhdGgsCi0gICAgICAgICAgICAgICAgICBib29s
ICZwYXJzZU9ubHkgKQotewotICAgcGFyc2VPbmx5ID0gZmFsc2U7Ci0gICBpZiAoIGFyZ2MgPCAy
ICkKLSAgIHsKLSAgICAgIHJldHVybiBwcmludFVzYWdlKCBhcmd2ICk7Ci0gICB9Ci0KLSAgIGlu
dCBpbmRleCA9IDE7Ci0gICBpZiAoIHN0ZDo6c3RyaW5nKGFyZ3ZbMV0pID09ICItLWpzb24tY2hl
Y2tlciIgKQotICAgewotICAgICAgZmVhdHVyZXMgPSBKc29uOjpGZWF0dXJlczo6c3RyaWN0TW9k
ZSgpOwotICAgICAgcGFyc2VPbmx5ID0gdHJ1ZTsKLSAgICAgICsraW5kZXg7Ci0gICB9Ci0KLSAg
IGlmICggc3RkOjpzdHJpbmcoYXJndlsxXSkgPT0gIi0tanNvbi1jb25maWciICkKLSAgIHsKLSAg
ICAgIHByaW50Q29uZmlnKCk7Ci0gICAgICByZXR1cm4gMzsKLSAgIH0KLQotICAgaWYgKCBpbmRl
eCA9PSBhcmdjICB8fCAgaW5kZXggKyAxIDwgYXJnYyApCi0gICB7Ci0gICAgICByZXR1cm4gcHJp
bnRVc2FnZSggYXJndiApOwotICAgfQotCi0gICBwYXRoID0gYXJndltpbmRleF07Ci0gICByZXR1
cm4gMDsKK3N0YXRpYyBpbnQgcGFyc2VDb21tYW5kTGluZShpbnQgYXJnYywgY29uc3QgY2hhciog
YXJndltdLCBPcHRpb25zKiBvcHRzKSB7CisgIG9wdHMtPnBhcnNlT25seSA9IGZhbHNlOworICBv
cHRzLT53cml0ZSA9ICZ1c2VTdHlsZWRXcml0ZXI7CisgIGlmIChhcmdjIDwgMikgeworICAgIHJl
dHVybiBwcmludFVzYWdlKGFyZ3YpOworICB9CisgIGludCBpbmRleCA9IDE7CisgIGlmIChKc29u
OjpTdHJpbmcoYXJndltpbmRleF0pID09ICItLWpzb24tY2hlY2tlciIpIHsKKyAgICBvcHRzLT5m
ZWF0dXJlcyA9IEpzb246OkZlYXR1cmVzOjpzdHJpY3RNb2RlKCk7CisgICAgb3B0cy0+cGFyc2VP
bmx5ID0gdHJ1ZTsKKyAgICArK2luZGV4OworICB9CisgIGlmIChKc29uOjpTdHJpbmcoYXJndltp
bmRleF0pID09ICItLWpzb24tY29uZmlnIikgeworICAgIHByaW50Q29uZmlnKCk7CisgICAgcmV0
dXJuIDM7CisgIH0KKyAgaWYgKEpzb246OlN0cmluZyhhcmd2W2luZGV4XSkgPT0gIi0tanNvbi13
cml0ZXIiKSB7CisgICAgKytpbmRleDsKKyAgICBKc29uOjpTdHJpbmcgY29uc3Qgd3JpdGVyTmFt
ZShhcmd2W2luZGV4KytdKTsKKyAgICBpZiAod3JpdGVyTmFtZSA9PSAiU3R5bGVkV3JpdGVyIikg
eworICAgICAgb3B0cy0+d3JpdGUgPSAmdXNlU3R5bGVkV3JpdGVyOworICAgIH0gZWxzZSBpZiAo
d3JpdGVyTmFtZSA9PSAiU3R5bGVkU3RyZWFtV3JpdGVyIikgeworICAgICAgb3B0cy0+d3JpdGUg
PSAmdXNlU3R5bGVkU3RyZWFtV3JpdGVyOworICAgIH0gZWxzZSBpZiAod3JpdGVyTmFtZSA9PSAi
QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIiKSB7CisgICAgICBvcHRzLT53cml0ZSA9ICZ1c2VCdWls
dFN0eWxlZFN0cmVhbVdyaXRlcjsKKyAgICB9IGVsc2UgeworICAgICAgcHJpbnRmKCJVbmtub3du
ICctLWpzb24td3JpdGVyICVzJ1xuIiwgd3JpdGVyTmFtZS5jX3N0cigpKTsKKyAgICAgIHJldHVy
biA0OworICAgIH0KKyAgfQorICBpZiAoaW5kZXggPT0gYXJnYyB8fCBpbmRleCArIDEgPCBhcmdj
KSB7CisgICAgcmV0dXJuIHByaW50VXNhZ2UoYXJndik7CisgIH0KKyAgb3B0cy0+cGF0aCA9IGFy
Z3ZbaW5kZXhdOworICByZXR1cm4gMDsKIH0KLQotCi1pbnQgbWFpbiggaW50IGFyZ2MsIGNvbnN0
IGNoYXIgKmFyZ3ZbXSApCi17Ci0gICBzdGQ6OnN0cmluZyBwYXRoOwotICAgSnNvbjo6RmVhdHVy
ZXMgZmVhdHVyZXM7Ci0gICBib29sIHBhcnNlT25seTsKLSAgIGludCBleGl0Q29kZSA9IHBhcnNl
Q29tbWFuZExpbmUoIGFyZ2MsIGFyZ3YsIGZlYXR1cmVzLCBwYXRoLCBwYXJzZU9ubHkgKTsKLSAg
IGlmICggZXhpdENvZGUgIT0gMCApCi0gICB7CitzdGF0aWMgaW50IHJ1blRlc3QoT3B0aW9ucyBj
b25zdCYgb3B0cykgeworICBpbnQgZXhpdENvZGUgPSAwOworCisgIEpzb246OlN0cmluZyBpbnB1
dCA9IHJlYWRJbnB1dFRlc3RGaWxlKG9wdHMucGF0aC5jX3N0cigpKTsKKyAgaWYgKGlucHV0LmVt
cHR5KCkpIHsKKyAgICBwcmludGYoIkZhaWxlZCB0byByZWFkIGlucHV0IG9yIGVtcHR5IGlucHV0
OiAlc1xuIiwgb3B0cy5wYXRoLmNfc3RyKCkpOworICAgIHJldHVybiAzOworICB9CisKKyAgSnNv
bjo6U3RyaW5nIGJhc2VQYXRoID0gcmVtb3ZlU3VmZml4KG9wdHMucGF0aCwgIi5qc29uIik7Cisg
IGlmICghb3B0cy5wYXJzZU9ubHkgJiYgYmFzZVBhdGguZW1wdHkoKSkgeworICAgIHByaW50Zigi
QmFkIGlucHV0IHBhdGguIFBhdGggZG9lcyBub3QgZW5kIHdpdGggJy5leHBlY3RlZCc6XG4lc1xu
IiwKKyAgICAgICAgICAgb3B0cy5wYXRoLmNfc3RyKCkpOworICAgIHJldHVybiAzOworICB9CisK
KyAgSnNvbjo6U3RyaW5nIGNvbnN0IGFjdHVhbFBhdGggPSBiYXNlUGF0aCArICIuYWN0dWFsIjsK
KyAgSnNvbjo6U3RyaW5nIGNvbnN0IHJld3JpdGVQYXRoID0gYmFzZVBhdGggKyAiLnJld3JpdGUi
OworICBKc29uOjpTdHJpbmcgY29uc3QgcmV3cml0ZUFjdHVhbFBhdGggPSBiYXNlUGF0aCArICIu
YWN0dWFsLXJld3JpdGUiOworCisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGV4aXRDb2RlID0gcGFy
c2VBbmRTYXZlVmFsdWVUcmVlKGlucHV0LCBhY3R1YWxQYXRoLCAiaW5wdXQiLCBvcHRzLmZlYXR1
cmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLnBhcnNlT25seSwg
JnJvb3QpOworICBpZiAoZXhpdENvZGUgfHwgb3B0cy5wYXJzZU9ubHkpIHsKKyAgICByZXR1cm4g
ZXhpdENvZGU7CisgIH0KKyAgSnNvbjo6U3RyaW5nIHJld3JpdGU7CisgIGV4aXRDb2RlID0gcmV3
cml0ZVZhbHVlVHJlZShyZXdyaXRlUGF0aCwgcm9vdCwgb3B0cy53cml0ZSwgJnJld3JpdGUpOwor
ICBpZiAoZXhpdENvZGUpIHsKKyAgICByZXR1cm4gZXhpdENvZGU7CisgIH0KKyAgSnNvbjo6VmFs
dWUgcmV3cml0ZVJvb3Q7CisgIGV4aXRDb2RlID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKHJld3Jp
dGUsIHJld3JpdGVBY3R1YWxQYXRoLCAicmV3cml0ZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdHMuZmVhdHVyZXMsIG9wdHMucGFyc2VPbmx5LCAmcmV3cml0ZVJvb3Qp
OworICBpZiAoZXhpdENvZGUpIHsKKyAgICByZXR1cm4gZXhpdENvZGU7CisgIH0KKyAgcmV0dXJu
IDA7Cit9CitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKSB7CisgIE9wdGlv
bnMgb3B0czsKKyAgdHJ5IHsKKyAgICBpbnQgZXhpdENvZGUgPSBwYXJzZUNvbW1hbmRMaW5lKGFy
Z2MsIGFyZ3YsICZvcHRzKTsKKyAgICBpZiAoZXhpdENvZGUgIT0gMCkgeworICAgICAgcHJpbnRm
KCJGYWlsZWQgdG8gcGFyc2UgY29tbWFuZC1saW5lLiIpOwogICAgICAgcmV0dXJuIGV4aXRDb2Rl
OwotICAgfQotCi0gICB0cnkKLSAgIHsKLSAgICAgIHN0ZDo6c3RyaW5nIGlucHV0ID0gcmVhZElu
cHV0VGVzdEZpbGUoIHBhdGguY19zdHIoKSApOwotICAgICAgaWYgKCBpbnB1dC5lbXB0eSgpICkK
LSAgICAgIHsKLSAgICAgICAgIHByaW50ZiggIkZhaWxlZCB0byByZWFkIGlucHV0IG9yIGVtcHR5
IGlucHV0OiAlc1xuIiwgcGF0aC5jX3N0cigpICk7Ci0gICAgICAgICByZXR1cm4gMzsKLSAgICAg
IH0KLQotICAgICAgc3RkOjpzdHJpbmcgYmFzZVBhdGggPSByZW1vdmVTdWZmaXgoIGFyZ3ZbMV0s
ICIuanNvbiIgKTsKLSAgICAgIGlmICggIXBhcnNlT25seSAgJiYgIGJhc2VQYXRoLmVtcHR5KCkg
KQotICAgICAgewotICAgICAgICAgcHJpbnRmKCAiQmFkIGlucHV0IHBhdGguIFBhdGggZG9lcyBu
b3QgZW5kIHdpdGggJy5leHBlY3RlZCc6XG4lc1xuIiwgcGF0aC5jX3N0cigpICk7Ci0gICAgICAg
ICByZXR1cm4gMzsKLSAgICAgIH0KLQotICAgICAgc3RkOjpzdHJpbmcgYWN0dWFsUGF0aCA9IGJh
c2VQYXRoICsgIi5hY3R1YWwiOwotICAgICAgc3RkOjpzdHJpbmcgcmV3cml0ZVBhdGggPSBiYXNl
UGF0aCArICIucmV3cml0ZSI7Ci0gICAgICBzdGQ6OnN0cmluZyByZXdyaXRlQWN0dWFsUGF0aCA9
IGJhc2VQYXRoICsgIi5hY3R1YWwtcmV3cml0ZSI7Ci0KLSAgICAgIEpzb246OlZhbHVlIHJvb3Q7
Ci0gICAgICBleGl0Q29kZSA9IHBhcnNlQW5kU2F2ZVZhbHVlVHJlZSggaW5wdXQsIGFjdHVhbFBh
dGgsICJpbnB1dCIsIHJvb3QsIGZlYXR1cmVzLCBwYXJzZU9ubHkgKTsKLSAgICAgIGlmICggZXhp
dENvZGUgPT0gMCAgJiYgICFwYXJzZU9ubHkgKQotICAgICAgewotICAgICAgICAgc3RkOjpzdHJp
bmcgcmV3cml0ZTsKLSAgICAgICAgIGV4aXRDb2RlID0gcmV3cml0ZVZhbHVlVHJlZSggcmV3cml0
ZVBhdGgsIHJvb3QsIHJld3JpdGUgKTsKLSAgICAgICAgIGlmICggZXhpdENvZGUgPT0gMCApCi0g
ICAgICAgICB7Ci0gICAgICAgICAgICBKc29uOjpWYWx1ZSByZXdyaXRlUm9vdDsKLSAgICAgICAg
ICAgIGV4aXRDb2RlID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKCByZXdyaXRlLCByZXdyaXRlQWN0
dWFsUGF0aCwgCi0gICAgICAgICAgICAgICAicmV3cml0ZSIsIHJld3JpdGVSb290LCBmZWF0dXJl
cywgcGFyc2VPbmx5ICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBjYXRjaCAoIGNv
bnN0IHN0ZDo6ZXhjZXB0aW9uICZlICkKLSAgIHsKLSAgICAgIHByaW50ZiggIlVuaGFuZGxlZCBl
eGNlcHRpb246XG4lc1xuIiwgZS53aGF0KCkgKTsKLSAgICAgIGV4aXRDb2RlID0gMTsKLSAgIH0K
LQotICAgcmV0dXJuIGV4aXRDb2RlOworICAgIH0KKyAgICByZXR1cm4gcnVuVGVzdChvcHRzKTsK
KyAgfSBjYXRjaCAoY29uc3Qgc3RkOjpleGNlcHRpb24mIGUpIHsKKyAgICBwcmludGYoIlVuaGFu
ZGxlZCBleGNlcHRpb246XG4lc1xuIiwgZS53aGF0KCkpOworICAgIHJldHVybiAxOworICB9CiB9
CiAKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRlc3RydW5uZXIvc2NvbnNjcmlwdCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2Uvc3JjL2pzb250ZXN0cnVubmVyL3Njb25zY3JpcHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZlNjhlMzE1MzNlZjQzZTA3YmJkZTM5NzlhNzg5NmU1ZjZmMmEzYTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRlc3Ry
dW5uZXIvc2NvbnNjcmlwdAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotSW1wb3J0KCAn
ZW52X3Rlc3RpbmcgYnVpbGRKU09OVGVzdHMnICkKLQotYnVpbGRKU09OVGVzdHMoIGVudl90ZXN0
aW5nLCBTcGxpdCggIiIiCi0gICAgbWFpbi5jcHAKLSAgICAgIiIiICksCi0gICAgJ2pzb250ZXN0
cnVubmVyJyApCi0KLSMgRm9yICdjaGVjaycgdG8gd29yaywgJ2xpYnMnIG11c3QgYmUgYnVpbHQg
Zmlyc3QuCi1lbnZfdGVzdGluZy5EZXBlbmRzKCdqc29udGVzdHJ1bm5lcicsICcjbGlicycpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xp
Yl9qc29uL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzOTIwOTJhZjdhNWU0ZmNlZjdiNGM0
OWIzYzU3MmViNDVmZGRkMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9D
TWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDE0NiBAQAoraWYoIENNQUtFX0NPTVBJTEVSX0lTX0dO
VUNYWCApCisgICAgI0dldCBjb21waWxlciB2ZXJzaW9uLgorICAgIGV4ZWN1dGVfcHJvY2Vzcygg
Q09NTUFORCAke0NNQUtFX0NYWF9DT01QSUxFUn0gLWR1bXB2ZXJzaW9uCisgICAgICAgICAgICAg
ICAgICAgICBPVVRQVVRfVkFSSUFCTEUgR05VQ1hYX1ZFUlNJT04gKQorCisgICAgIy1XZXJyb3I9
KiB3YXMgaW50cm9kdWNlZCAtYWZ0ZXItIEdDQyA0LjEuMgorICAgIGlmKCBHTlVDWFhfVkVSU0lP
TiBWRVJTSU9OX0dSRUFURVIgNC4xLjIgKQorICAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIk
e0NNQUtFX0NYWF9GTEFHU30gLVdlcnJvcj1zdHJpY3QtYWxpYXNpbmciKQorICAgIGVuZGlmKCkK
K2VuZGlmKCBDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggKQorCitpbmNsdWRlKENoZWNrSW5jbHVk
ZUZpbGVDWFgpCitpbmNsdWRlKENoZWNrVHlwZVNpemUpCitpbmNsdWRlKENoZWNrU3RydWN0SGFz
TWVtYmVyKQoraW5jbHVkZShDaGVja0NYWFN5bWJvbEV4aXN0cykKKworY2hlY2tfaW5jbHVkZV9m
aWxlX2N4eChjbG9jYWxlIEhBVkVfQ0xPQ0FMRSkKK2NoZWNrX2N4eF9zeW1ib2xfZXhpc3RzKGxv
Y2FsZWNvbnYgY2xvY2FsZSBIQVZFX0xPQ0FMRUNPTlYpCisKK2lmKENNQUtFX1ZFUlNJT04gVkVS
U0lPTl9MRVNTIDMuMC4wKQorICAgICMgVGhlICJMQU5HVUFHRSBDWFgiIHBhcmFtZXRlciBpcyBu
b3Qgc3VwcG9ydGVkIGluIENNYWtlIHZlcnNpb25zIGJlbG93IDMsCisgICAgIyBzbyB0aGUgQyBj
b21waWxlciBhbmQgaGVhZGVyIGhhcyB0byBiZSB1c2VkLgorICAgIGNoZWNrX2luY2x1ZGVfZmls
ZShsb2NhbGUuaCBIQVZFX0xPQ0FMRV9IKQorICAgIHNldChDTUFLRV9FWFRSQV9JTkNMVURFX0ZJ
TEVTIGxvY2FsZS5oKQorICAgIGNoZWNrX3R5cGVfc2l6ZSgic3RydWN0IGxjb252IiBMQ09OVl9T
SVpFKQorICAgIHVuc2V0KENNQUtFX0VYVFJBX0lOQ0xVREVfRklMRVMpCisgICAgY2hlY2tfc3Ry
dWN0X2hhc19tZW1iZXIoInN0cnVjdCBsY29udiIgZGVjaW1hbF9wb2ludCBsb2NhbGUuaCBIQVZF
X0RFQ0lNQUxfUE9JTlQpCitlbHNlKCkKKyAgICBzZXQoQ01BS0VfRVhUUkFfSU5DTFVERV9GSUxF
UyBjbG9jYWxlKQorICAgIGNoZWNrX3R5cGVfc2l6ZShsY29udiBMQ09OVl9TSVpFIExBTkdVQUdF
IENYWCkKKyAgICB1bnNldChDTUFLRV9FWFRSQV9JTkNMVURFX0ZJTEVTKQorICAgIGNoZWNrX3N0
cnVjdF9oYXNfbWVtYmVyKGxjb252IGRlY2ltYWxfcG9pbnQgY2xvY2FsZSBIQVZFX0RFQ0lNQUxf
UE9JTlQgTEFOR1VBR0UgQ1hYKQorZW5kaWYoKQorCitpZihOT1QgKEhBVkVfQ0xPQ0FMRSBBTkQg
SEFWRV9MQ09OVl9TSVpFIEFORCBIQVZFX0RFQ0lNQUxfUE9JTlQgQU5EIEhBVkVfTE9DQUxFQ09O
VikpCisgICAgbWVzc2FnZShXQVJOSU5HICJMb2NhbGUgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3Vw
cG9ydGVkIikKKyAgICBhZGRfY29tcGlsZV9kZWZpbml0aW9ucyhKU09OQ1BQX05PX0xPQ0FMRV9T
VVBQT1JUKQorZW5kaWYoKQorCitzZXQoIEpTT05DUFBfSU5DTFVERV9ESVIgLi4vLi4vaW5jbHVk
ZSApCisKK3NldCggUFVCTElDX0hFQURFUlMKKyAgICAke0pTT05DUFBfSU5DTFVERV9ESVJ9L2pz
b24vY29uZmlnLmgKKyAgICAke0pTT05DUFBfSU5DTFVERV9ESVJ9L2pzb24vZm9yd2FyZHMuaAor
ICAgICR7SlNPTkNQUF9JTkNMVURFX0RJUn0vanNvbi9mZWF0dXJlcy5oCisgICAgJHtKU09OQ1BQ
X0lOQ0xVREVfRElSfS9qc29uL3ZhbHVlLmgKKyAgICAke0pTT05DUFBfSU5DTFVERV9ESVJ9L2pz
b24vcmVhZGVyLmgKKyAgICAke0pTT05DUFBfSU5DTFVERV9ESVJ9L2pzb24vd3JpdGVyLmgKKyAg
ICAke0pTT05DUFBfSU5DTFVERV9ESVJ9L2pzb24vYXNzZXJ0aW9ucy5oCisgICAgJHtQUk9KRUNU
X0JJTkFSWV9ESVJ9L2luY2x1ZGUvanNvbi92ZXJzaW9uLmgKKyAgICApCisKK3NvdXJjZV9ncm91
cCggIlB1YmxpYyBBUEkiIEZJTEVTICR7UFVCTElDX0hFQURFUlN9ICkKKworc2V0KGpzb25jcHBf
c291cmNlcworICAgICAgICAgICAgICAgIGpzb25fdG9vbC5oCisgICAgICAgICAgICAgICAganNv
bl9yZWFkZXIuY3BwCisgICAgICAgICAgICAgICAganNvbl92YWx1ZWl0ZXJhdG9yLmlubAorICAg
ICAgICAgICAgICAgIGpzb25fdmFsdWUuY3BwCisgICAgICAgICAgICAgICAganNvbl93cml0ZXIu
Y3BwCisgICAgICAgICAgICAgICAgdmVyc2lvbi5oLmluKQorCisjIEluc3RhbGwgaW5zdHJ1Y3Rp
b25zIGZvciB0aGlzIHRhcmdldAoraWYoSlNPTkNQUF9XSVRIX0NNQUtFX1BBQ0tBR0UpCisgICAg
c2V0KElOU1RBTExfRVhQT1JUIEVYUE9SVCBqc29uY3BwKQorZWxzZShKU09OQ1BQX1dJVEhfQ01B
S0VfUEFDS0FHRSkKKyAgICBzZXQoSU5TVEFMTF9FWFBPUlQpCitlbmRpZigpCisKK2lmKEJVSUxE
X1NIQVJFRF9MSUJTKQorICAgIGFkZF9jb21waWxlX2RlZmluaXRpb25zKCBKU09OX0RMTF9CVUlM
RCApCitlbmRpZigpCisKKworYWRkX2xpYnJhcnkoanNvbmNwcF9saWIgJHtQVUJMSUNfSEVBREVS
U30gJHtqc29uY3BwX3NvdXJjZXN9KQorc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCBqc29uY3BwX2xp
YiBQUk9QRVJUSUVTIFZFUlNJT04gJHtKU09OQ1BQX1ZFUlNJT059IFNPVkVSU0lPTiAke0pTT05D
UFBfU09WRVJTSU9OfSkKK3NldF90YXJnZXRfcHJvcGVydGllcygganNvbmNwcF9saWIgUFJPUEVS
VElFUyBPVVRQVVRfTkFNRSBqc29uY3BwCisgICAgICAgICAgICAgICAgICAgICAgICBERUJVR19P
VVRQVVRfTkFNRSBqc29uY3BwJHtERUJVR19MSUJOQU1FX1NVRkZJWH0gKQorc2V0X3RhcmdldF9w
cm9wZXJ0aWVzKCBqc29uY3BwX2xpYiBQUk9QRVJUSUVTIFBPU0lUSU9OX0lOREVQRU5ERU5UX0NP
REUgT04pCisKKyMgU2V0IGxpYnJhcnkncyBydW50aW1lIHNlYXJjaCBwYXRoIG9uIE9TWAoraWYo
QVBQTEUpCisgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCBqc29uY3BwX2xpYiBQUk9QRVJUSUVT
IElOU1RBTExfUlBBVEggIkBsb2FkZXJfcGF0aC8uIiApCitlbmRpZigpCisKKyMgU3BlY2lmeSBj
b21waWxlciBmZWF0dXJlcyByZXF1aXJlZCB3aGVuIGNvbXBpbGluZyBhIGdpdmVuIHRhcmdldC4K
KyMgU2VlIGh0dHBzOi8vY21ha2Uub3JnL2NtYWtlL2hlbHAvdjMuMS9wcm9wX2dibC9DTUFLRV9D
WFhfS05PV05fRkVBVFVSRVMuaHRtbCNwcm9wX2dibDpDTUFLRV9DWFhfS05PV05fRkVBVFVSRVMK
KyMgZm9yIGNvbXBsZXRlIGxpc3Qgb2YgZmVhdHVyZXMgYXZhaWxhYmxlCit0YXJnZXRfY29tcGls
ZV9mZWF0dXJlcyhqc29uY3BwX2xpYiBQVUJMSUMKKyAgICAgICAgY3h4X3N0ZF8xMSAjIENvbXBp
bGVyIG1vZGUgaXMgYXdhcmUgb2YgQysrIDExLgorICAgICAgICAjTVNWQyAxOTAwIGN4eF9hbGln
bmFzICMgQWxpZ25tZW50IGNvbnRyb2wgYWxpZ25hcywgYXMgZGVmaW5lZCBpbiBOMjM0MS4KKyAg
ICAgICAgI01TVkMgMTkwMCBjeHhfYWxpZ25vZiAjIEFsaWdubWVudCBjb250cm9sIGFsaWdub2Ys
IGFzIGRlZmluZWQgaW4gTjIzNDEuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2F0dHJpYnV0ZXMg
IyBHZW5lcmljIGF0dHJpYnV0ZXMsIGFzIGRlZmluZWQgaW4gTjI3NjEuCisgICAgICAgIGN4eF9h
dXRvX3R5cGUgIyBBdXRvbWF0aWMgdHlwZSBkZWR1Y3Rpb24sIGFzIGRlZmluZWQgaW4gTjE5ODQu
CisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2NvbnN0ZXhwciAjIENvbnN0YW50IGV4cHJlc3Npb25z
LCBhcyBkZWZpbmVkIGluIE4yMjM1LgorICAgICAgICBjeHhfZGVjbHR5cGUgIyBEZWNsdHlwZSwg
YXMgZGVmaW5lZCBpbiBOMjM0My4KKyAgICAgICAgY3h4X2RlZmF1bHRfZnVuY3Rpb25fdGVtcGxh
dGVfYXJncyAjIERlZmF1bHQgdGVtcGxhdGUgYXJndW1lbnRzIGZvciBmdW5jdGlvbiB0ZW1wbGF0
ZXMsIGFzIGRlZmluZWQgaW4gRFIyMjYKKyAgICAgICAgY3h4X2RlZmF1bHRlZF9mdW5jdGlvbnMg
IyBEZWZhdWx0ZWQgZnVuY3Rpb25zLCBhcyBkZWZpbmVkIGluIE4yMzQ2LgorICAgICAgICAjTVNW
QyAxOTAwIGN4eF9kZWZhdWx0ZWRfbW92ZV9pbml0aWFsaXplcnMgIyBEZWZhdWx0ZWQgbW92ZSBp
bml0aWFsaXplcnMsIGFzIGRlZmluZWQgaW4gTjMwNTMuCisgICAgICAgIGN4eF9kZWxlZ2F0aW5n
X2NvbnN0cnVjdG9ycyAjIERlbGVnYXRpbmcgY29uc3RydWN0b3JzLCBhcyBkZWZpbmVkIGluIE4x
OTg2LgorICAgICAgICAjTVNWQyAxOTAwIGN4eF9kZWxldGVkX2Z1bmN0aW9ucyAjIERlbGV0ZWQg
ZnVuY3Rpb25zLCBhcyBkZWZpbmVkIGluIE4yMzQ2LgorICAgICAgICBjeHhfZW51bV9mb3J3YXJk
X2RlY2xhcmF0aW9ucyAjIEVudW0gZm9yd2FyZCBkZWNsYXJhdGlvbnMsIGFzIGRlZmluZWQgaW4g
TjI3NjQuCisgICAgICAgIGN4eF9leHBsaWNpdF9jb252ZXJzaW9ucyAjIEV4cGxpY2l0IGNvbnZl
cnNpb24gb3BlcmF0b3JzLCBhcyBkZWZpbmVkIGluIE4yNDM3LgorICAgICAgICBjeHhfZXh0ZW5k
ZWRfZnJpZW5kX2RlY2xhcmF0aW9ucyAjIEV4dGVuZGVkIGZyaWVuZCBkZWNsYXJhdGlvbnMsIGFz
IGRlZmluZWQgaW4gTjE3OTEuCisgICAgICAgIGN4eF9leHRlcm5fdGVtcGxhdGVzICMgRXh0ZXJu
IHRlbXBsYXRlcywgYXMgZGVmaW5lZCBpbiBOMTk4Ny4KKyAgICAgICAgY3h4X2ZpbmFsICMgT3Zl
cnJpZGUgY29udHJvbCBmaW5hbCBrZXl3b3JkLCBhcyBkZWZpbmVkIGluIE4yOTI4LCBOMzIwNiBh
bmQgTjMyNzIuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2Z1bmNfaWRlbnRpZmllciAjIFByZWRl
ZmluZWQgX19mdW5jX18gaWRlbnRpZmllciwgYXMgZGVmaW5lZCBpbiBOMjM0MC4KKyAgICAgICAg
I01TVkMgMTkwMCBjeHhfZ2VuZXJhbGl6ZWRfaW5pdGlhbGl6ZXJzICMgSW5pdGlhbGl6ZXIgbGlz
dHMsIGFzIGRlZmluZWQgaW4gTjI2NzIuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2luaGVyaXRp
bmdfY29uc3RydWN0b3JzICMgSW5oZXJpdGluZyBjb25zdHJ1Y3RvcnMsIGFzIGRlZmluZWQgaW4g
TjI1NDAuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2lubGluZV9uYW1lc3BhY2VzICMgSW5saW5l
IG5hbWVzcGFjZXMsIGFzIGRlZmluZWQgaW4gTjI1MzUuCisgICAgICAgIGN4eF9sYW1iZGFzICMg
TGFtYmRhIGZ1bmN0aW9ucywgYXMgZGVmaW5lZCBpbiBOMjkyNy4KKyAgICAgICAgI01TVkMgMTkw
MCBjeHhfbG9jYWxfdHlwZV90ZW1wbGF0ZV9hcmdzICMgTG9jYWwgYW5kIHVubmFtZWQgdHlwZXMg
YXMgdGVtcGxhdGUgYXJndW1lbnRzLCBhcyBkZWZpbmVkIGluIE4yNjU3LgorICAgICAgICBjeHhf
bG9uZ19sb25nX3R5cGUgIyBsb25nIGxvbmcgdHlwZSwgYXMgZGVmaW5lZCBpbiBOMTgxMS4KKyAg
ICAgICAgI01TVkMgMTkwMCBjeHhfbm9leGNlcHQgIyBFeGNlcHRpb24gc3BlY2lmaWNhdGlvbnMs
IGFzIGRlZmluZWQgaW4gTjMwNTAuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X25vbnN0YXRpY19t
ZW1iZXJfaW5pdCAjIE5vbi1zdGF0aWMgZGF0YSBtZW1iZXIgaW5pdGlhbGl6YXRpb24sIGFzIGRl
ZmluZWQgaW4gTjI3NTYuCisgICAgICAgIGN4eF9udWxscHRyICMgTnVsbCBwb2ludGVyLCBhcyBk
ZWZpbmVkIGluIE4yNDMxLgorICAgICAgICBjeHhfb3ZlcnJpZGUgIyBPdmVycmlkZSBjb250cm9s
IG92ZXJyaWRlIGtleXdvcmQsIGFzIGRlZmluZWQgaW4gTjI5MjgsIE4zMjA2IGFuZCBOMzI3Mi4K
KyAgICAgICAgY3h4X3JhbmdlX2ZvciAjIFJhbmdlLWJhc2VkIGZvciwgYXMgZGVmaW5lZCBpbiBO
MjkzMC4KKyAgICAgICAgY3h4X3Jhd19zdHJpbmdfbGl0ZXJhbHMgIyBSYXcgc3RyaW5nIGxpdGVy
YWxzLCBhcyBkZWZpbmVkIGluIE4yNDQyLgorICAgICAgICAjTVNWQyAxOTAwIGN4eF9yZWZlcmVu
Y2VfcXVhbGlmaWVkX2Z1bmN0aW9ucyAjIFJlZmVyZW5jZSBxdWFsaWZpZWQgZnVuY3Rpb25zLCBh
cyBkZWZpbmVkIGluIE4yNDM5LgorICAgICAgICBjeHhfcmlnaHRfYW5nbGVfYnJhY2tldHMgIyBS
aWdodCBhbmdsZSBicmFja2V0IHBhcnNpbmcsIGFzIGRlZmluZWQgaW4gTjE3NTcuCisgICAgICAg
IGN4eF9ydmFsdWVfcmVmZXJlbmNlcyAjIFItdmFsdWUgcmVmZXJlbmNlcywgYXMgZGVmaW5lZCBp
biBOMjExOC4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhfc2l6ZW9mX21lbWJlciAjIFNpemUgb2Yg
bm9uLXN0YXRpYyBkYXRhIG1lbWJlcnMsIGFzIGRlZmluZWQgaW4gTjIyNTMuCisgICAgICAgIGN4
eF9zdGF0aWNfYXNzZXJ0ICMgU3RhdGljIGFzc2VydCwgYXMgZGVmaW5lZCBpbiBOMTcyMC4KKyAg
ICAgICAgY3h4X3N0cm9uZ19lbnVtcyAjIFN0cm9uZ2x5IHR5cGVkIGVudW1zLCBhcyBkZWZpbmVk
IGluIE4yMzQ3LgorICAgICAgICAjTVNWQyAxOTAwIGN4eF90aHJlYWRfbG9jYWwgIyBUaHJlYWQt
bG9jYWwgdmFyaWFibGVzLCBhcyBkZWZpbmVkIGluIE4yNjU5LgorICAgICAgICBjeHhfdHJhaWxp
bmdfcmV0dXJuX3R5cGVzICMgQXV0b21hdGljIGZ1bmN0aW9uIHJldHVybiB0eXBlLCBhcyBkZWZp
bmVkIGluIE4yNTQxLgorICAgICAgICAjTVNWQyAxOTAwIGN4eF91bmljb2RlX2xpdGVyYWxzICMg
VW5pY29kZSBzdHJpbmcgbGl0ZXJhbHMsIGFzIGRlZmluZWQgaW4gTjI0NDIuCisgICAgICAgIGN4
eF91bmlmb3JtX2luaXRpYWxpemF0aW9uICMgVW5pZm9ybSBpbml0aWFsaXphdGlvbiwgYXMgZGVm
aW5lZCBpbiBOMjY0MC4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhfdW5yZXN0cmljdGVkX3VuaW9u
cyAjIFVucmVzdHJpY3RlZCB1bmlvbnMsIGFzIGRlZmluZWQgaW4gTjI1NDQuCisgICAgICAgICNN
U1ZDIDE5MDAgY3h4X3VzZXJfbGl0ZXJhbHMgIyBVc2VyLWRlZmluZWQgbGl0ZXJhbHMsIGFzIGRl
ZmluZWQgaW4gTjI3NjUuCisgICAgICAgIGN4eF92YXJpYWRpY19tYWNyb3MgIyBWYXJpYWRpYyBt
YWNyb3MsIGFzIGRlZmluZWQgaW4gTjE2NTMuCisgICAgICAgIGN4eF92YXJpYWRpY190ZW1wbGF0
ZXMgIyBWYXJpYWRpYyB0ZW1wbGF0ZXMsIGFzIGRlZmluZWQgaW4gTjIyNDIuCispCisKK2luc3Rh
bGwoIFRBUkdFVFMganNvbmNwcF9saWIgJHtJTlNUQUxMX0VYUE9SVH0KKyAgICAgICAgICBSVU5U
SU1FIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9CSU5ESVJ9CisgICAgICAgICAgTElCUkFS
WSBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfTElCRElSfQorICAgICAgICAgIEFSQ0hJVkUg
REVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0pCisKK2lmKE5PVCBDTUFLRV9WRVJT
SU9OIFZFUlNJT05fTEVTUyAyLjguMTEpCisgICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMo
IGpzb25jcHBfbGliIFBVQkxJQworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkPElO
U1RBTExfSU5URVJGQUNFOiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX0xJ
U1RfRElSfS8ke0pTT05DUFBfSU5DTFVERV9ESVJ9PgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkPEJVSUxEX0lOVEVSRkFDRToke1BST0pFQ1RfQklOQVJZX0RJUn0vaW5jbHVkZS9q
c29uPikKK2VuZGlmKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fYmF0Y2hh
bGxvY2F0b3IuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fYmF0Y2hhbGxvY2F0b3IuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE3YzAyNDE3MWM3OThhZjM1YWY1ZTI4N2Q0NmZh
YzAzY2UwOWE3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9saWJfanNvbi9qc29uX2JhdGNoYWxsb2NhdG9yLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxMjcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxl
dXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlm
IGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2Vl
IGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNl
Zm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmbmRlZiBKU09OQ1BQX0JBVENIQUxMT0NBVE9SX0hfSU5D
TFVERUQKLSMgZGVmaW5lIEpTT05DUFBfQkFUQ0hBTExPQ0FUT1JfSF9JTkNMVURFRAotCi0jIGlu
Y2x1ZGUgPHN0ZGxpYi5oPgotIyBpbmNsdWRlIDxhc3NlcnQuaD4KLQotIyBpZm5kZWYgSlNPTkNQ
UF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8qIEZh
c3QgbWVtb3J5IGFsbG9jYXRvci4KLSAqCi0gKiBUaGlzIG1lbW9yeSBhbGxvY2F0b3IgYWxsb2Nh
dGVzIG1lbW9yeSBmb3IgYSBiYXRjaCBvZiBvYmplY3QgKHNwZWNpZmllZCBieQotICogdGhlIHBh
Z2Ugc2l6ZSwgdGhlIG51bWJlciBvZiBvYmplY3QgaW4gZWFjaCBwYWdlKS4KLSAqCi0gKiBJdCBk
b2VzIG5vdCBhbGxvdyB0aGUgZGVzdHJ1Y3Rpb24gb2YgYSBzaW5nbGUgb2JqZWN0LiBBbGwgdGhl
IGFsbG9jYXRlZCBvYmplY3RzCi0gKiBjYW4gYmUgZGVzdHJveWVkIGF0IG9uY2UuIFRoZSBtZW1v
cnkgY2FuIGJlIGVpdGhlciByZWxlYXNlZCBvciByZXVzZWQgZm9yIGZ1dHVyZQotICogYWxsb2Nh
dGlvbi4KLSAqIAotICogVGhlIGluLXBsYWNlIG5ldyBvcGVyYXRvciBtdXN0IGJlIHVzZWQgdG8g
Y29uc3RydWN0IHRoZSBvYmplY3QgdXNpbmcgdGhlIHBvaW50ZXIKLSAqIHJldHVybmVkIGJ5IGFs
bG9jYXRlLgotICovCi10ZW1wbGF0ZTx0eXBlbmFtZSBBbGxvY2F0ZWRUeXBlCi0gICAgICAgICxj
b25zdCB1bnNpZ25lZCBpbnQgb2JqZWN0UGVyQWxsb2NhdGlvbj4KLWNsYXNzIEJhdGNoQWxsb2Nh
dG9yCi17Ci1wdWJsaWM6Ci0gICBCYXRjaEFsbG9jYXRvciggdW5zaWduZWQgaW50IG9iamVjdHNQ
ZXJQYWdlID0gMjU1ICkKLSAgICAgIDogZnJlZUhlYWRfKCAwICkKLSAgICAgICwgb2JqZWN0c1Bl
clBhZ2VfKCBvYmplY3RzUGVyUGFnZSApCi0gICB7Ci0vLyAgICAgIHByaW50ZiggIlNpemU6ICVk
ID0+ICVzXG4iLCBzaXplb2YoQWxsb2NhdGVkVHlwZSksIHR5cGVpZChBbGxvY2F0ZWRUeXBlKS5u
YW1lKCkgKTsKLSAgICAgIGFzc2VydCggc2l6ZW9mKEFsbG9jYXRlZFR5cGUpICogb2JqZWN0UGVy
QWxsb2NhdGlvbiA+PSBzaXplb2YoQWxsb2NhdGVkVHlwZSAqKSApOyAvLyBXZSBtdXN0IGJlIGFi
bGUgdG8gc3RvcmUgYSBzbGlzdCBpbiB0aGUgb2JqZWN0IGZyZWUgc3BhY2UuCi0gICAgICBhc3Nl
cnQoIG9iamVjdHNQZXJQYWdlID49IDE2ICk7Ci0gICAgICBiYXRjaGVzXyA9IGFsbG9jYXRlQmF0
Y2goIDAgKTsgICAvLyBhbGxvY2F0ZWQgYSBkdW1teSBwYWdlCi0gICAgICBjdXJyZW50QmF0Y2hf
ID0gYmF0Y2hlc187Ci0gICB9Ci0KLSAgIH5CYXRjaEFsbG9jYXRvcigpCi0gICB7Ci0gICAgICBm
b3IgKCBCYXRjaEluZm8gKmJhdGNoID0gYmF0Y2hlc187IGJhdGNoOyAgKQotICAgICAgewotICAg
ICAgICAgQmF0Y2hJbmZvICpuZXh0QmF0Y2ggPSBiYXRjaC0+bmV4dF87Ci0gICAgICAgICBmcmVl
KCBiYXRjaCApOwotICAgICAgICAgYmF0Y2ggPSBuZXh0QmF0Y2g7Ci0gICAgICB9Ci0gICB9Ci0K
LSAgIC8vLyBhbGxvY2F0ZSBzcGFjZSBmb3IgYW4gYXJyYXkgb2Ygb2JqZWN0UGVyQWxsb2NhdGlv
biBvYmplY3QuCi0gICAvLy8gQHdhcm5pbmcgaXQgaXMgdGhlIHJlc3BvbnNhYmlsaXR5IG9mIHRo
ZSBjYWxsZXIgdG8gY2FsbCBvYmplY3RzIGNvbnN0cnVjdG9ycy4KLSAgIEFsbG9jYXRlZFR5cGUg
KmFsbG9jYXRlKCkKLSAgIHsKLSAgICAgIGlmICggZnJlZUhlYWRfICkgLy8gcmV0dXJucyBub2Rl
IGZyb20gZnJlZSBsaXN0LgotICAgICAgewotICAgICAgICAgQWxsb2NhdGVkVHlwZSAqb2JqZWN0
ID0gZnJlZUhlYWRfOwotICAgICAgICAgZnJlZUhlYWRfID0gKihBbGxvY2F0ZWRUeXBlICoqKW9i
amVjdDsKLSAgICAgICAgIHJldHVybiBvYmplY3Q7Ci0gICAgICB9Ci0gICAgICBpZiAoIGN1cnJl
bnRCYXRjaF8tPnVzZWRfID09IGN1cnJlbnRCYXRjaF8tPmVuZF8gKQotICAgICAgewotICAgICAg
ICAgY3VycmVudEJhdGNoXyA9IGN1cnJlbnRCYXRjaF8tPm5leHRfOwotICAgICAgICAgd2hpbGUg
KCBjdXJyZW50QmF0Y2hfICAmJiAgY3VycmVudEJhdGNoXy0+dXNlZF8gPT0gY3VycmVudEJhdGNo
Xy0+ZW5kXyApCi0gICAgICAgICAgICBjdXJyZW50QmF0Y2hfID0gY3VycmVudEJhdGNoXy0+bmV4
dF87Ci0KLSAgICAgICAgIGlmICggIWN1cnJlbnRCYXRjaF8gICkgLy8gbm8gZnJlZSBiYXRjaCBm
b3VuZCwgYWxsb2NhdGUgYSBuZXcgb25lCi0gICAgICAgICB7IAotICAgICAgICAgICAgY3VycmVu
dEJhdGNoXyA9IGFsbG9jYXRlQmF0Y2goIG9iamVjdHNQZXJQYWdlXyApOwotICAgICAgICAgICAg
Y3VycmVudEJhdGNoXy0+bmV4dF8gPSBiYXRjaGVzXzsgLy8gaW5zZXJ0IGF0IHRoZSBoZWFkIG9m
IHRoZSBsaXN0Ci0gICAgICAgICAgICBiYXRjaGVzXyA9IGN1cnJlbnRCYXRjaF87Ci0gICAgICAg
ICB9Ci0gICAgICB9Ci0gICAgICBBbGxvY2F0ZWRUeXBlICphbGxvY2F0ZWQgPSBjdXJyZW50QmF0
Y2hfLT51c2VkXzsKLSAgICAgIGN1cnJlbnRCYXRjaF8tPnVzZWRfICs9IG9iamVjdFBlckFsbG9j
YXRpb247Ci0gICAgICByZXR1cm4gYWxsb2NhdGVkOwotICAgfQotCi0gICAvLy8gUmVsZWFzZSB0
aGUgb2JqZWN0LgotICAgLy8vIEB3YXJuaW5nIGl0IGlzIHRoZSByZXNwb25zYWJpbGl0eSBvZiB0
aGUgY2FsbGVyIHRvIGFjdHVhbGx5IGRlc3RydWN0IHRoZSBvYmplY3QuCi0gICB2b2lkIHJlbGVh
c2UoIEFsbG9jYXRlZFR5cGUgKm9iamVjdCApCi0gICB7Ci0gICAgICBhc3NlcnQoIG9iamVjdCAh
PSAwICk7Ci0gICAgICAqKEFsbG9jYXRlZFR5cGUgKiopb2JqZWN0ID0gZnJlZUhlYWRfOwotICAg
ICAgZnJlZUhlYWRfID0gb2JqZWN0OwotICAgfQotCi1wcml2YXRlOgotICAgc3RydWN0IEJhdGNo
SW5mbwotICAgewotICAgICAgQmF0Y2hJbmZvICpuZXh0XzsKLSAgICAgIEFsbG9jYXRlZFR5cGUg
KnVzZWRfOwotICAgICAgQWxsb2NhdGVkVHlwZSAqZW5kXzsKLSAgICAgIEFsbG9jYXRlZFR5cGUg
YnVmZmVyX1tvYmplY3RQZXJBbGxvY2F0aW9uXTsKLSAgIH07Ci0KLSAgIC8vIGRpc2FibGVkIGNv
cHkgY29uc3RydWN0b3IgYW5kIGFzc2lnbmVtZW50IG9wZXJhdG9yLgotICAgQmF0Y2hBbGxvY2F0
b3IoIGNvbnN0IEJhdGNoQWxsb2NhdG9yICYgKTsKLSAgIHZvaWQgb3BlcmF0b3IgPSggY29uc3Qg
QmF0Y2hBbGxvY2F0b3IgJik7Ci0KLSAgIHN0YXRpYyBCYXRjaEluZm8gKmFsbG9jYXRlQmF0Y2go
IHVuc2lnbmVkIGludCBvYmplY3RzUGVyUGFnZSApCi0gICB7Ci0gICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgbWFsbG9jU2l6ZSA9IHNpemVvZihCYXRjaEluZm8pIC0gc2l6ZW9mKEFsbG9jYXRlZFR5
cGUpKiBvYmplY3RQZXJBbGxvY2F0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICsgc2l6ZW9mKEFsbG9jYXRlZFR5cGUpICogb2JqZWN0UGVyQWxsb2NhdGlvbiAqIG9iamVjdHNQ
ZXJQYWdlOwotICAgICAgQmF0Y2hJbmZvICpiYXRjaCA9IHN0YXRpY19jYXN0PEJhdGNoSW5mbyo+
KCBtYWxsb2MoIG1hbGxvY1NpemUgKSApOwotICAgICAgYmF0Y2gtPm5leHRfID0gMDsKLSAgICAg
IGJhdGNoLT51c2VkXyA9IGJhdGNoLT5idWZmZXJfOwotICAgICAgYmF0Y2gtPmVuZF8gPSBiYXRj
aC0+YnVmZmVyXyArIG9iamVjdHNQZXJQYWdlOwotICAgICAgcmV0dXJuIGJhdGNoOwotICAgfQot
Ci0gICBCYXRjaEluZm8gKmJhdGNoZXNfOwotICAgQmF0Y2hJbmZvICpjdXJyZW50QmF0Y2hfOwot
ICAgLy8vIEhlYWQgb2YgYSBzaW5nbGUgbGlua2VkIGxpc3Qgd2l0aGluIHRoZSBhbGxvY2F0ZWQg
c3BhY2Ugb2YgZnJlZWVkIG9iamVjdAotICAgQWxsb2NhdGVkVHlwZSAqZnJlZUhlYWRfOwotICAg
dW5zaWduZWQgaW50IG9iamVjdHNQZXJQYWdlXzsKLX07Ci0KLQotfSAvLyBuYW1lc3BhY2UgSnNv
bgotCi0jIGVuZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19JTkNMVURFX0lNUExFTUVOVEFUSU9O
Ci0KLSNlbmRpZiAvLyBKU09OQ1BQX0JBVENIQUxMT0NBVE9SX0hfSU5DTFVERUQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25faW50ZXJuYWxhcnJheS5pbmwgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9s
aWJfanNvbi9qc29uX2ludGVybmFsYXJyYXkuaW5sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1ZThiOGVmZjQxZTQyZTEyYjA5Yjg3ODkxNjhhOWY0NGQ4ZGM0ZDRhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pz
b25faW50ZXJuYWxhcnJheS5pbmwKKysrIC9kZXYvbnVsbApAQCAtMSw0NTQgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVu
ZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNv
Z25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0
YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQot
Ly8gaW5jbHVkZWQgYnkganNvbl92YWx1ZS5jcHAKLQotbmFtZXNwYWNlIEpzb24gewotCi0vLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZUludGVy
bmFsQXJyYXkKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotVmFs
dWVBcnJheUFsbG9jYXRvcjo6flZhbHVlQXJyYXlBbGxvY2F0b3IoKQotewotfQotCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIGNsYXNzIERlZmF1bHRWYWx1ZUFycmF5QWxsb2NhdG9yCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LSNpZmRlZiBKU09OX1VTRV9TSU1QTEVfSU5URVJOQUxfQUxMT0NBVE9SCi1jbGFzcyBEZWZhdWx0
VmFsdWVBcnJheUFsbG9jYXRvciA6IHB1YmxpYyBWYWx1ZUFycmF5QWxsb2NhdG9yCi17Ci1wdWJs
aWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1ZUFycmF5QWxsb2NhdG9yCi0gICB2aXJ0dWFsIH5E
ZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvcigpCi0gICB7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFs
dWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheSgpCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVl
SW50ZXJuYWxBcnJheSgpOwotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAq
bmV3QXJyYXlDb3B5KCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLSAgIHsKLSAg
ICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbEFycmF5KCBvdGhlciApOwotICAgfQotCi0gICB2
aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RBcnJheSggVmFsdWVJbnRlcm5hbEFycmF5ICphcnJheSApCi0g
ICB7Ci0gICAgICBkZWxldGUgYXJyYXk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCByZWFsbG9j
YXRlQXJyYXlQYWdlSW5kZXgoIFZhbHVlICoqJmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggJmlu
ZGV4Q291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBtaW5OZXdJbmRleENvdW50ICkKLSAgIHsKLSAgICAg
IFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IG5ld0luZGV4Q291bnQgPSAoaW5kZXhDb3Vu
dCozKS8yICsgMTsKLSAgICAgIGlmICggbWluTmV3SW5kZXhDb3VudCA+IG5ld0luZGV4Q291bnQg
KQotICAgICAgICAgbmV3SW5kZXhDb3VudCA9IG1pbk5ld0luZGV4Q291bnQ7Ci0gICAgICB2b2lk
ICpuZXdJbmRleGVzID0gcmVhbGxvYyggaW5kZXhlcywgc2l6ZW9mKFZhbHVlKikgKiBuZXdJbmRl
eENvdW50ICk7Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKG5ld0luZGV4ZXMsICJDb3VsZG4n
dCByZWFsbG9jLiIpOwotICAgICAgaW5kZXhDb3VudCA9IG5ld0luZGV4Q291bnQ7Ci0gICAgICBp
bmRleGVzID0gc3RhdGljX2Nhc3Q8VmFsdWUgKio+KCBuZXdJbmRleGVzICk7Ci0gICB9Ci0gICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZUFycmF5UGFnZUluZGV4KCBWYWx1ZSAqKmluZGV4ZXMsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQ
YWdlSW5kZXggaW5kZXhDb3VudCApCi0gICB7Ci0gICAgICBpZiAoIGluZGV4ZXMgKQotICAgICAg
ICAgZnJlZSggaW5kZXhlcyApOwotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlICphbGxvY2F0ZUFy
cmF5UGFnZSgpCi0gICB7Ci0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmFsdWUgKj4oIG1hbGxv
Yyggc2l6ZW9mKFZhbHVlKSAqIFZhbHVlSW50ZXJuYWxBcnJheTo6aXRlbXNQZXJQYWdlICkgKTsK
LSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlbGVhc2VBcnJheVBhZ2UoIFZhbHVlICp2YWx1ZSAp
Ci0gICB7Ci0gICAgICBpZiAoIHZhbHVlICkKLSAgICAgICAgIGZyZWUoIHZhbHVlICk7Ci0gICB9
Ci19OwotCi0jZWxzZSAvLyAjaWZkZWYgSlNPTl9VU0VfU0lNUExFX0lOVEVSTkFMX0FMTE9DQVRP
UgotLy8vIEB0b2RvIG1ha2UgdGhpcyB0aHJlYWQtc2FmZSAobG9jayB3aGVuIGFjY2Vzc2lnbiBi
YXRjaCBhbGxvY2F0b3IpCi1jbGFzcyBEZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvciA6IHB1Ymxp
YyBWYWx1ZUFycmF5QWxsb2NhdG9yCi17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1
ZUFycmF5QWxsb2NhdG9yCi0gICB2aXJ0dWFsIH5EZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvcigp
Ci0gICB7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheSgp
Ci0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5ID0gYXJyYXlzQWxsb2NhdG9y
Xy5hbGxvY2F0ZSgpOwotICAgICAgbmV3IChhcnJheSkgVmFsdWVJbnRlcm5hbEFycmF5KCk7IC8v
IHBsYWNlbWVudCBuZXcKLSAgICAgIHJldHVybiBhcnJheTsKLSAgIH0KLQotICAgdmlydHVhbCBW
YWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5Q29weSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5
ICZvdGhlciApCi0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5ID0gYXJyYXlz
QWxsb2NhdG9yXy5hbGxvY2F0ZSgpOwotICAgICAgbmV3IChhcnJheSkgVmFsdWVJbnRlcm5hbEFy
cmF5KCBvdGhlciApOyAvLyBwbGFjZW1lbnQgbmV3Ci0gICAgICByZXR1cm4gYXJyYXk7Ci0gICB9
Ci0KLSAgIHZpcnR1YWwgdm9pZCBkZXN0cnVjdEFycmF5KCBWYWx1ZUludGVybmFsQXJyYXkgKmFy
cmF5ICkKLSAgIHsKLSAgICAgIGlmICggYXJyYXkgKQotICAgICAgewotICAgICAgICAgYXJyYXkt
Pn5WYWx1ZUludGVybmFsQXJyYXkoKTsKLSAgICAgICAgIGFycmF5c0FsbG9jYXRvcl8ucmVsZWFz
ZSggYXJyYXkgKTsKLSAgICAgIH0KLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlYWxsb2NhdGVB
cnJheVBhZ2VJbmRleCggVmFsdWUgKiomaW5kZXhlcywgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCAmaW5kZXhD
b3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50
ZXJuYWxBcnJheTo6UGFnZUluZGV4IG1pbk5ld0luZGV4Q291bnQgKQotICAgewotICAgICAgVmFs
dWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggbmV3SW5kZXhDb3VudCA9IChpbmRleENvdW50KjMp
LzIgKyAxOwotICAgICAgaWYgKCBtaW5OZXdJbmRleENvdW50ID4gbmV3SW5kZXhDb3VudCApCi0g
ICAgICAgICBuZXdJbmRleENvdW50ID0gbWluTmV3SW5kZXhDb3VudDsKLSAgICAgIHZvaWQgKm5l
d0luZGV4ZXMgPSByZWFsbG9jKCBpbmRleGVzLCBzaXplb2YoVmFsdWUqKSAqIG5ld0luZGV4Q291
bnQgKTsKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UobmV3SW5kZXhlcywgIkNvdWxkbid0IHJl
YWxsb2MuIik7Ci0gICAgICBpbmRleENvdW50ID0gbmV3SW5kZXhDb3VudDsKLSAgICAgIGluZGV4
ZXMgPSBzdGF0aWNfY2FzdDxWYWx1ZSAqKj4oIG5ld0luZGV4ZXMgKTsKLSAgIH0KLSAgIHZpcnR1
YWwgdm9pZCByZWxlYXNlQXJyYXlQYWdlSW5kZXgoIFZhbHVlICoqaW5kZXhlcywgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJ
bmRleCBpbmRleENvdW50ICkKLSAgIHsKLSAgICAgIGlmICggaW5kZXhlcyApCi0gICAgICAgICBm
cmVlKCBpbmRleGVzICk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWUgKmFsbG9jYXRlQXJyYXlQ
YWdlKCkKLSAgIHsKLSAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxWYWx1ZSAqPiggcGFnZXNBbGxv
Y2F0b3JfLmFsbG9jYXRlKCkgKTsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlbGVhc2VBcnJh
eVBhZ2UoIFZhbHVlICp2YWx1ZSApCi0gICB7Ci0gICAgICBpZiAoIHZhbHVlICkKLSAgICAgICAg
IHBhZ2VzQWxsb2NhdG9yXy5yZWxlYXNlKCB2YWx1ZSApOwotICAgfQotcHJpdmF0ZToKLSAgIEJh
dGNoQWxsb2NhdG9yPFZhbHVlSW50ZXJuYWxBcnJheSwxPiBhcnJheXNBbGxvY2F0b3JfOwotICAg
QmF0Y2hBbGxvY2F0b3I8VmFsdWUsVmFsdWVJbnRlcm5hbEFycmF5OjppdGVtc1BlclBhZ2U+IHBh
Z2VzQWxsb2NhdG9yXzsKLX07Ci0jZW5kaWYgLy8gI2lmZGVmIEpTT05fVVNFX1NJTVBMRV9JTlRF
Uk5BTF9BTExPQ0FUT1IKLQotc3RhdGljIFZhbHVlQXJyYXlBbGxvY2F0b3IgKiZhcnJheUFsbG9j
YXRvcigpCi17Ci0gICBzdGF0aWMgRGVmYXVsdFZhbHVlQXJyYXlBbGxvY2F0b3IgZGVmYXVsdEFs
bG9jYXRvcjsKLSAgIHN0YXRpYyBWYWx1ZUFycmF5QWxsb2NhdG9yICphcnJheUFsbG9jYXRvciA9
ICZkZWZhdWx0QWxsb2NhdG9yOwotICAgcmV0dXJuIGFycmF5QWxsb2NhdG9yOwotfQotCi1zdGF0
aWMgc3RydWN0IER1bW15QXJyYXlBbGxvY2F0b3JJbml0aWFsaXplciB7Ci0gICBEdW1teUFycmF5
QWxsb2NhdG9ySW5pdGlhbGl6ZXIoKSAKLSAgIHsKLSAgICAgIGFycmF5QWxsb2NhdG9yKCk7ICAg
ICAgLy8gZW5zdXJlIGFycmF5QWxsb2NhdG9yKCkgc3RhdGljcyBhcmUgaW5pdGlhbGl6ZWQgYmVm
b3JlIG1haW4oKS4KLSAgIH0KLX0gZHVtbXlBcnJheUFsbG9jYXRvckluaXRpYWxpemVyOwotCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlSW50ZXJuYWxBcnJheQotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi1i
b29sIAotVmFsdWVJbnRlcm5hbEFycmF5OjplcXVhbHMoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJm90aGVy
ICkKLXsKLSAgIHJldHVybiB4LmFycmF5XyA9PSBvdGhlci5hcnJheV8gIAotICAgICAgICAgICYm
ICB4LmN1cnJlbnRJdGVtSW5kZXhfID09IG90aGVyLmN1cnJlbnRJdGVtSW5kZXhfICAKLSAgICAg
ICAgICAmJiAgeC5jdXJyZW50UGFnZUluZGV4XyA9PSBvdGhlci5jdXJyZW50UGFnZUluZGV4XzsK
LX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbEFycmF5OjppbmNyZW1lbnQoIEl0ZXJhdG9yU3Rh
dGUgJml0ICkKLXsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0LmFycmF5XyAgJiYKLSAgICAg
IChpdC5jdXJyZW50UGFnZUluZGV4XyAtIGl0LmFycmF5Xy0+cGFnZXNfKSppdGVtc1BlclBhZ2Ug
KyBpdC5jdXJyZW50SXRlbUluZGV4XwotICAgICAgIT0gaXQuYXJyYXlfLT5zaXplXywKLSAgICAg
ICJWYWx1ZUludGVybmFsQXJyYXk6OmluY3JlbWVudCgpOiBtb3ZpbmcgaXRlcmF0b3IgYmV5b25k
IGVuZCIgKTsKLSAgICsrKGl0LmN1cnJlbnRJdGVtSW5kZXhfKTsKLSAgIGlmICggaXQuY3VycmVu
dEl0ZW1JbmRleF8gPT0gaXRlbXNQZXJQYWdlICkKLSAgIHsKLSAgICAgIGl0LmN1cnJlbnRJdGVt
SW5kZXhfID0gMDsKLSAgICAgICsrKGl0LmN1cnJlbnRQYWdlSW5kZXhfKTsKLSAgIH0KLX0KLQot
Ci12b2lkIAotVmFsdWVJbnRlcm5hbEFycmF5OjpkZWNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUgJml0
ICkKLXsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0LmFycmF5XyAgJiYgIGl0LmN1cnJlbnRQ
YWdlSW5kZXhfID09IGl0LmFycmF5Xy0+cGFnZXNfIAotICAgICAgICAgICAgICAgICAgICAgICAg
JiYgIGl0LmN1cnJlbnRJdGVtSW5kZXhfID09IDAsCi0gICAgICAiVmFsdWVJbnRlcm5hbEFycmF5
OjpkZWNyZW1lbnQoKTogbW92aW5nIGl0ZXJhdG9yIGJleW9uZCBlbmQiICk7Ci0gICBpZiAoIGl0
LmN1cnJlbnRJdGVtSW5kZXhfID09IDAgKQotICAgewotICAgICAgaXQuY3VycmVudEl0ZW1JbmRl
eF8gPSBpdGVtc1BlclBhZ2UtMTsKLSAgICAgIC0tKGl0LmN1cnJlbnRQYWdlSW5kZXhfKTsKLSAg
IH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIC0tKGl0LmN1cnJlbnRJdGVtSW5kZXhfKTsKLSAgIH0K
LX0KLQotCi1WYWx1ZSAmCi1WYWx1ZUludGVybmFsQXJyYXk6OnVuc2FmZURlcmVmZXJlbmNlKCBj
b25zdCBJdGVyYXRvclN0YXRlICZpdCApCi17Ci0gICByZXR1cm4gKCooaXQuY3VycmVudFBhZ2VJ
bmRleF8pKVtpdC5jdXJyZW50SXRlbUluZGV4X107Ci19Ci0KLQotVmFsdWUgJgotVmFsdWVJbnRl
cm5hbEFycmF5OjpkZXJlZmVyZW5jZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXQgKQotewotICAg
SlNPTl9BU1NFUlRfTUVTU0FHRSggaXQuYXJyYXlfICAmJgotICAgICAgKGl0LmN1cnJlbnRQYWdl
SW5kZXhfIC0gaXQuYXJyYXlfLT5wYWdlc18pKml0ZW1zUGVyUGFnZSArIGl0LmN1cnJlbnRJdGVt
SW5kZXhfCi0gICAgICA8IGl0LmFycmF5Xy0+c2l6ZV8sCi0gICAgICAiVmFsdWVJbnRlcm5hbEFy
cmF5OjpkZXJlZmVyZW5jZSgpOiBkZXJlZmVyZW5jaW5nIGludmFsaWQgaXRlcmF0b3IiICk7Ci0g
ICByZXR1cm4gdW5zYWZlRGVyZWZlcmVuY2UoIGl0ICk7Ci19Ci0KLXZvaWQgCi1WYWx1ZUludGVy
bmFsQXJyYXk6Om1ha2VCZWdpbkl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0Ci17
Ci0gICBpdC5hcnJheV8gPSBjb25zdF9jYXN0PFZhbHVlSW50ZXJuYWxBcnJheSAqPiggdGhpcyAp
OwotICAgaXQuY3VycmVudEl0ZW1JbmRleF8gPSAwOwotICAgaXQuY3VycmVudFBhZ2VJbmRleF8g
PSBwYWdlc187Ci19Ci0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6bWFrZUl0ZXJhdG9y
KCBJdGVyYXRvclN0YXRlICZpdCwgQXJyYXlJbmRleCBpbmRleCApIGNvbnN0Ci17Ci0gICBpdC5h
cnJheV8gPSBjb25zdF9jYXN0PFZhbHVlSW50ZXJuYWxBcnJheSAqPiggdGhpcyApOwotICAgaXQu
Y3VycmVudEl0ZW1JbmRleF8gPSBpbmRleCAlIGl0ZW1zUGVyUGFnZTsKLSAgIGl0LmN1cnJlbnRQ
YWdlSW5kZXhfID0gcGFnZXNfICsgaW5kZXggLyBpdGVtc1BlclBhZ2U7Ci19Ci0KLQotdm9pZCAK
LVZhbHVlSW50ZXJuYWxBcnJheTo6bWFrZUVuZEl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCAp
IGNvbnN0Ci17Ci0gICBtYWtlSXRlcmF0b3IoIGl0LCBzaXplXyApOwotfQotCi0KLVZhbHVlSW50
ZXJuYWxBcnJheTo6VmFsdWVJbnRlcm5hbEFycmF5KCkKLSAgIDogcGFnZXNfKCAwICkKLSAgICwg
c2l6ZV8oIDAgKQotICAgLCBwYWdlQ291bnRfKCAwICkKLXsKLX0KLQotCi1WYWx1ZUludGVybmFs
QXJyYXk6OlZhbHVlSW50ZXJuYWxBcnJheSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhl
ciApCi0gICA6IHBhZ2VzXyggMCApCi0gICAsIHNpemVfKCBvdGhlci5zaXplXyApCi0gICAsIHBh
Z2VDb3VudF8oIDAgKQotewotICAgUGFnZUluZGV4IG1pbk5ld1BhZ2VzID0gb3RoZXIuc2l6ZV8g
LyBpdGVtc1BlclBhZ2U7Ci0gICBhcnJheUFsbG9jYXRvcigpLT5yZWFsbG9jYXRlQXJyYXlQYWdl
SW5kZXgoIHBhZ2VzXywgcGFnZUNvdW50XywgbWluTmV3UGFnZXMgKTsKLSAgIEpTT05fQVNTRVJU
X01FU1NBR0UoIHBhZ2VDb3VudF8gPj0gbWluTmV3UGFnZXMsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgIlZhbHVlSW50ZXJuYWxBcnJheTo6cmVzZXJ2ZSgpOiBiYWQgcmVhbGxvY2F0aW9uIiAp
OwotICAgSXRlcmF0b3JTdGF0ZSBpdE90aGVyOwotICAgb3RoZXIubWFrZUJlZ2luSXRlcmF0b3Io
IGl0T3RoZXIgKTsKLSAgIFZhbHVlICp2YWx1ZTsKLSAgIGZvciAoIEFycmF5SW5kZXggaW5kZXgg
PSAwOyBpbmRleCA8IHNpemVfOyArK2luZGV4LCBpbmNyZW1lbnQoaXRPdGhlcikgKQotICAgewot
ICAgICAgaWYgKCBpbmRleCAlIGl0ZW1zUGVyUGFnZSA9PSAwICkKLSAgICAgIHsKLSAgICAgICAg
IFBhZ2VJbmRleCBwYWdlSW5kZXggPSBpbmRleCAvIGl0ZW1zUGVyUGFnZTsKLSAgICAgICAgIHZh
bHVlID0gYXJyYXlBbGxvY2F0b3IoKS0+YWxsb2NhdGVBcnJheVBhZ2UoKTsKLSAgICAgICAgIHBh
Z2VzX1twYWdlSW5kZXhdID0gdmFsdWU7Ci0gICAgICB9Ci0gICAgICBuZXcgKHZhbHVlKSBWYWx1
ZSggZGVyZWZlcmVuY2UoIGl0T3RoZXIgKSApOwotICAgfQotfQotCi0KLVZhbHVlSW50ZXJuYWxB
cnJheSAmCi1WYWx1ZUludGVybmFsQXJyYXk6Om9wZXJhdG9yID0oIGNvbnN0IFZhbHVlSW50ZXJu
YWxBcnJheSAmb3RoZXIgKQotewotICAgVmFsdWVJbnRlcm5hbEFycmF5IHRlbXAoIG90aGVyICk7
Ci0gICBzd2FwKCB0ZW1wICk7Ci0gICByZXR1cm4gKnRoaXM7Ci19Ci0KLQotVmFsdWVJbnRlcm5h
bEFycmF5Ojp+VmFsdWVJbnRlcm5hbEFycmF5KCkKLXsKLSAgIC8vIGRlc3Ryb3kgYWxsIGNvbnN0
cnVjdGVkIGl0ZW1zCi0gICBJdGVyYXRvclN0YXRlIGl0OwotICAgSXRlcmF0b3JTdGF0ZSBpdEVu
ZDsKLSAgIG1ha2VCZWdpbkl0ZXJhdG9yKCBpdCk7Ci0gICBtYWtlRW5kSXRlcmF0b3IoIGl0RW5k
ICk7Ci0gICBmb3IgKCA7ICFlcXVhbHMoaXQsaXRFbmQpOyBpbmNyZW1lbnQoaXQpICkKLSAgIHsK
LSAgICAgIFZhbHVlICp2YWx1ZSA9ICZkZXJlZmVyZW5jZShpdCk7Ci0gICAgICB2YWx1ZS0+flZh
bHVlKCk7Ci0gICB9Ci0gICAvLyByZWxlYXNlIGFsbCBwYWdlcwotICAgUGFnZUluZGV4IGxhc3RQ
YWdlSW5kZXggPSBzaXplXyAvIGl0ZW1zUGVyUGFnZTsKLSAgIGZvciAoIFBhZ2VJbmRleCBwYWdl
SW5kZXggPSAwOyBwYWdlSW5kZXggPCBsYXN0UGFnZUluZGV4OyArK3BhZ2VJbmRleCApCi0gICAg
ICBhcnJheUFsbG9jYXRvcigpLT5yZWxlYXNlQXJyYXlQYWdlKCBwYWdlc19bcGFnZUluZGV4XSAp
OwotICAgLy8gcmVsZWFzZSBwYWdlcyBpbmRleAotICAgYXJyYXlBbGxvY2F0b3IoKS0+cmVsZWFz
ZUFycmF5UGFnZUluZGV4KCBwYWdlc18sIHBhZ2VDb3VudF8gKTsKLX0KLQotCi12b2lkIAotVmFs
dWVJbnRlcm5hbEFycmF5Ojpzd2FwKCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLXsKLSAg
IFZhbHVlICoqdGVtcFBhZ2VzID0gcGFnZXNfOwotICAgcGFnZXNfID0gb3RoZXIucGFnZXNfOwot
ICAgb3RoZXIucGFnZXNfID0gdGVtcFBhZ2VzOwotICAgQXJyYXlJbmRleCB0ZW1wU2l6ZSA9IHNp
emVfOwotICAgc2l6ZV8gPSBvdGhlci5zaXplXzsKLSAgIG90aGVyLnNpemVfID0gdGVtcFNpemU7
Ci0gICBQYWdlSW5kZXggdGVtcFBhZ2VDb3VudCA9IHBhZ2VDb3VudF87Ci0gICBwYWdlQ291bnRf
ID0gb3RoZXIucGFnZUNvdW50XzsKLSAgIG90aGVyLnBhZ2VDb3VudF8gPSB0ZW1wUGFnZUNvdW50
OwotfQotCi12b2lkIAotVmFsdWVJbnRlcm5hbEFycmF5OjpjbGVhcigpCi17Ci0gICBWYWx1ZUlu
dGVybmFsQXJyYXkgZHVtbXk7Ci0gICBzd2FwKCBkdW1teSApOwotfQotCi0KLXZvaWQgCi1WYWx1
ZUludGVybmFsQXJyYXk6OnJlc2l6ZSggQXJyYXlJbmRleCBuZXdTaXplICkKLXsKLSAgIGlmICgg
bmV3U2l6ZSA9PSAwICkKLSAgICAgIGNsZWFyKCk7Ci0gICBlbHNlIGlmICggbmV3U2l6ZSA8IHNp
emVfICkKLSAgIHsKLSAgICAgIEl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICBJdGVyYXRvclN0YXRl
IGl0RW5kOwotICAgICAgbWFrZUl0ZXJhdG9yKCBpdCwgbmV3U2l6ZSApOwotICAgICAgbWFrZUl0
ZXJhdG9yKCBpdEVuZCwgc2l6ZV8gKTsKLSAgICAgIGZvciAoIDsgIWVxdWFscyhpdCxpdEVuZCk7
IGluY3JlbWVudChpdCkgKQotICAgICAgewotICAgICAgICAgVmFsdWUgKnZhbHVlID0gJmRlcmVm
ZXJlbmNlKGl0KTsKLSAgICAgICAgIHZhbHVlLT5+VmFsdWUoKTsKLSAgICAgIH0KLSAgICAgIFBh
Z2VJbmRleCBwYWdlSW5kZXggPSAobmV3U2l6ZSArIGl0ZW1zUGVyUGFnZSAtIDEpIC8gaXRlbXNQ
ZXJQYWdlOwotICAgICAgUGFnZUluZGV4IGxhc3RQYWdlSW5kZXggPSBzaXplXyAvIGl0ZW1zUGVy
UGFnZTsKLSAgICAgIGZvciAoIDsgcGFnZUluZGV4IDwgbGFzdFBhZ2VJbmRleDsgKytwYWdlSW5k
ZXggKQotICAgICAgICAgYXJyYXlBbGxvY2F0b3IoKS0+cmVsZWFzZUFycmF5UGFnZSggcGFnZXNf
W3BhZ2VJbmRleF0gKTsKLSAgICAgIHNpemVfID0gbmV3U2l6ZTsKLSAgIH0KLSAgIGVsc2UgaWYg
KCBuZXdTaXplID4gc2l6ZV8gKQotICAgICAgcmVzb2x2ZVJlZmVyZW5jZSggbmV3U2l6ZSApOwot
fQotCi0KLXZvaWQgCi1WYWx1ZUludGVybmFsQXJyYXk6Om1ha2VJbmRleFZhbGlkKCBBcnJheUlu
ZGV4IGluZGV4ICkKLXsKLSAgIC8vIE5lZWQgdG8gZW5sYXJnZSBwYWdlIGluZGV4ID8KLSAgIGlm
ICggaW5kZXggPj0gcGFnZUNvdW50XyAqIGl0ZW1zUGVyUGFnZSApCi0gICB7Ci0gICAgICBQYWdl
SW5kZXggbWluTmV3UGFnZXMgPSAoaW5kZXggKyAxKSAvIGl0ZW1zUGVyUGFnZTsKLSAgICAgIGFy
cmF5QWxsb2NhdG9yKCktPnJlYWxsb2NhdGVBcnJheVBhZ2VJbmRleCggcGFnZXNfLCBwYWdlQ291
bnRfLCBtaW5OZXdQYWdlcyApOwotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggcGFnZUNvdW50
XyA+PSBtaW5OZXdQYWdlcywgIlZhbHVlSW50ZXJuYWxBcnJheTo6cmVzZXJ2ZSgpOiBiYWQgcmVh
bGxvY2F0aW9uIiApOwotICAgfQotCi0gICAvLyBOZWVkIHRvIGFsbG9jYXRlIG5ldyBwYWdlcyA/
Ci0gICBBcnJheUluZGV4IG5leHRQYWdlSW5kZXggPSAKLSAgICAgIChzaXplXyAlIGl0ZW1zUGVy
UGFnZSkgIT0gMCA/IHNpemVfIC0gKHNpemVfJWl0ZW1zUGVyUGFnZSkgKyBpdGVtc1BlclBhZ2UK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNpemVfOwotICAgaWYgKCBuZXh0
UGFnZUluZGV4IDw9IGluZGV4ICkKLSAgIHsKLSAgICAgIFBhZ2VJbmRleCBwYWdlSW5kZXggPSBu
ZXh0UGFnZUluZGV4IC8gaXRlbXNQZXJQYWdlOwotICAgICAgUGFnZUluZGV4IHBhZ2VUb0FsbG9j
YXRlID0gKGluZGV4IC0gbmV4dFBhZ2VJbmRleCkgLyBpdGVtc1BlclBhZ2UgKyAxOwotICAgICAg
Zm9yICggOyBwYWdlVG9BbGxvY2F0ZS0tID4gMDsgKytwYWdlSW5kZXggKQotICAgICAgICAgcGFn
ZXNfW3BhZ2VJbmRleF0gPSBhcnJheUFsbG9jYXRvcigpLT5hbGxvY2F0ZUFycmF5UGFnZSgpOwot
ICAgfQotCi0gICAvLyBJbml0aWFsaXplIGFsbCBuZXcgZW50cmllcwotICAgSXRlcmF0b3JTdGF0
ZSBpdDsKLSAgIEl0ZXJhdG9yU3RhdGUgaXRFbmQ7Ci0gICBtYWtlSXRlcmF0b3IoIGl0LCBzaXpl
XyApOwotICAgc2l6ZV8gPSBpbmRleCArIDE7Ci0gICBtYWtlSXRlcmF0b3IoIGl0RW5kLCBzaXpl
XyApOwotICAgZm9yICggOyAhZXF1YWxzKGl0LGl0RW5kKTsgaW5jcmVtZW50KGl0KSApCi0gICB7
Ci0gICAgICBWYWx1ZSAqdmFsdWUgPSAmZGVyZWZlcmVuY2UoaXQpOwotICAgICAgbmV3ICh2YWx1
ZSkgVmFsdWUoKTsgLy8gQ29uc3RydWN0IGEgZGVmYXVsdCB2YWx1ZSB1c2luZyBwbGFjZW1lbnQg
bmV3Ci0gICB9Ci19Ci0KLVZhbHVlICYKLVZhbHVlSW50ZXJuYWxBcnJheTo6cmVzb2x2ZVJlZmVy
ZW5jZSggQXJyYXlJbmRleCBpbmRleCApCi17Ci0gICBpZiAoIGluZGV4ID49IHNpemVfICkKLSAg
ICAgIG1ha2VJbmRleFZhbGlkKCBpbmRleCApOwotICAgcmV0dXJuIHBhZ2VzX1tpbmRleC9pdGVt
c1BlclBhZ2VdW2luZGV4JWl0ZW1zUGVyUGFnZV07Ci19Ci0KLVZhbHVlICoKLVZhbHVlSW50ZXJu
YWxBcnJheTo6ZmluZCggQXJyYXlJbmRleCBpbmRleCApIGNvbnN0Ci17Ci0gICBpZiAoIGluZGV4
ID49IHNpemVfICkKLSAgICAgIHJldHVybiAwOwotICAgcmV0dXJuICYocGFnZXNfW2luZGV4L2l0
ZW1zUGVyUGFnZV1baW5kZXglaXRlbXNQZXJQYWdlXSk7Ci19Ci0KLVZhbHVlSW50ZXJuYWxBcnJh
eTo6QXJyYXlJbmRleCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6c2l6ZSgpIGNvbnN0Ci17Ci0gICBy
ZXR1cm4gc2l6ZV87Ci19Ci0KLWludCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6ZGlzdGFuY2UoIGNv
bnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJnkgKQotewotICAgcmV0
dXJuIGluZGV4T2YoeSkgLSBpbmRleE9mKHgpOwotfQotCi0KLVZhbHVlSW50ZXJuYWxBcnJheTo6
QXJyYXlJbmRleCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6aW5kZXhPZiggY29uc3QgSXRlcmF0b3JT
dGF0ZSAmaXRlcmF0b3IgKQotewotICAgaWYgKCAhaXRlcmF0b3IuYXJyYXlfICkKLSAgICAgIHJl
dHVybiBBcnJheUluZGV4KC0xKTsKLSAgIHJldHVybiBBcnJheUluZGV4KAotICAgICAgKGl0ZXJh
dG9yLmN1cnJlbnRQYWdlSW5kZXhfIC0gaXRlcmF0b3IuYXJyYXlfLT5wYWdlc18pICogaXRlbXNQ
ZXJQYWdlIAotICAgICAgKyBpdGVyYXRvci5jdXJyZW50SXRlbUluZGV4XyApOwotfQotCi0KLWlu
dCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6Y29tcGFyZSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5
ICZvdGhlciApIGNvbnN0Ci17Ci0gICBpbnQgc2l6ZURpZmYoIHNpemVfIC0gb3RoZXIuc2l6ZV8g
KTsKLSAgIGlmICggc2l6ZURpZmYgIT0gMCApCi0gICAgICByZXR1cm4gc2l6ZURpZmY7Ci0gICAK
LSAgIGZvciAoIEFycmF5SW5kZXggaW5kZXggPTA7IGluZGV4IDwgc2l6ZV87ICsraW5kZXggKQot
ICAgewotICAgICAgaW50IGRpZmYgPSBwYWdlc19baW5kZXgvaXRlbXNQZXJQYWdlXVtpbmRleCVp
dGVtc1BlclBhZ2VdLmNvbXBhcmUoIAotICAgICAgICAgb3RoZXIucGFnZXNfW2luZGV4L2l0ZW1z
UGVyUGFnZV1baW5kZXglaXRlbXNQZXJQYWdlXSApOwotICAgICAgaWYgKCBkaWZmICE9IDAgKQot
ICAgICAgICAgcmV0dXJuIGRpZmY7Ci0gICB9Ci0gICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgSnNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl9pbnRlcm5hbG1h
cC5pbmwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX2ludGVybmFsbWFwLmlubApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjJmYTE2MDY1NTJhZTYwOWM5YmEzZGY0OWI5NzNlMDg3OWUy
ZTZhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3NyYy9saWJfanNvbi9qc29uX2ludGVybmFsbWFwLmlubAorKysgL2Rldi9udWxsCkBAIC0xLDYx
NSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8g
RGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJl
ZCBhbmQKLS8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBM
SUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5u
ZXQvTElDRU5TRQotCi0vLyBpbmNsdWRlZCBieSBqc29uX3ZhbHVlLmNwcAotCi1uYW1lc3BhY2Ug
SnNvbiB7Ci0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGNs
YXNzIFZhbHVlSW50ZXJuYWxNYXAKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLQotLyoqIFxpbnRlcm5hbCBNVVNUIGJlIHNhZmVseSBpbml0aWFsaXplZCB1c2luZyBt
ZW1zZXQoIHRoaXMsIDAsIHNpemVvZihWYWx1ZUludGVybmFsTGluaykgKTsKLSAgICogVGhpcyBv
cHRpbWl6YXRpb24gaXMgdXNlZCBieSB0aGUgZmFzdCBhbGxvY2F0b3IuCi0gICAqLwotVmFsdWVJ
bnRlcm5hbExpbms6OlZhbHVlSW50ZXJuYWxMaW5rKCkKLSAgIDogcHJldmlvdXNfKCAwICkKLSAg
ICwgbmV4dF8oIDAgKQotewotfQotCi1WYWx1ZUludGVybmFsTGluazo6flZhbHVlSW50ZXJuYWxM
aW5rKCkKLXsgCi0gICBmb3IgKCBpbnQgaW5kZXggPTA7IGluZGV4IDwgaXRlbVBlckxpbms7ICsr
aW5kZXggKQotICAgewotICAgICAgaWYgKCAhaXRlbXNfW2luZGV4XS5pc0l0ZW1BdmFpbGFibGUo
KSApCi0gICAgICB7Ci0gICAgICAgICBpZiAoICFpdGVtc19baW5kZXhdLmlzTWVtYmVyTmFtZVN0
YXRpYygpICkKLSAgICAgICAgICAgIGZyZWUoIGtleXNfW2luZGV4XSApOwotICAgICAgfQotICAg
ICAgZWxzZQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci19Ci0KLQotCi1WYWx1ZU1hcEFsbG9jYXRv
cjo6flZhbHVlTWFwQWxsb2NhdG9yKCkKLXsKLX0KLQotI2lmZGVmIEpTT05fVVNFX1NJTVBMRV9J
TlRFUk5BTF9BTExPQ0FUT1IKLWNsYXNzIERlZmF1bHRWYWx1ZU1hcEFsbG9jYXRvciA6IHB1Ymxp
YyBWYWx1ZU1hcEFsbG9jYXRvcgotewotcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gVmFsdWVN
YXBBbGxvY2F0b3IKLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwKCkKLSAgIHsK
LSAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbE1hcCgpOwotICAgfQotCi0gICB2aXJ0dWFs
IFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcENvcHkoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90
aGVyICkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbE1hcCggb3RoZXIgKTsK
LSAgIH0KLQotICAgdmlydHVhbCB2b2lkIGRlc3RydWN0TWFwKCBWYWx1ZUludGVybmFsTWFwICpt
YXAgKQotICAgewotICAgICAgZGVsZXRlIG1hcDsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUlu
dGVybmFsTGluayAqYWxsb2NhdGVNYXBCdWNrZXRzKCB1bnNpZ25lZCBpbnQgc2l6ZSApCi0gICB7
Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxMaW5rW3NpemVdOwotICAgfQotCi0gICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcEJ1Y2tldHMoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rcyAp
Ci0gICB7Ci0gICAgICBkZWxldGUgW10gbGlua3M7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJ
bnRlcm5hbExpbmsgKmFsbG9jYXRlTWFwTGluaygpCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZh
bHVlSW50ZXJuYWxMaW5rKCk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwTGlu
ayggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmsgKQotICAgewotICAgICAgZGVsZXRlIGxpbms7Ci0g
ICB9Ci19OwotI2Vsc2UKLS8vLyBAdG9kbyBtYWtlIHRoaXMgdGhyZWFkLXNhZmUgKGxvY2sgd2hl
biBhY2Nlc3NpZ24gYmF0Y2ggYWxsb2NhdG9yKQotY2xhc3MgRGVmYXVsdFZhbHVlTWFwQWxsb2Nh
dG9yIDogcHVibGljIFZhbHVlTWFwQWxsb2NhdG9yCi17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4g
ZnJvbSBWYWx1ZU1hcEFsbG9jYXRvcgotICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdN
YXAoKQotICAgewotICAgICAgVmFsdWVJbnRlcm5hbE1hcCAqbWFwID0gbWFwc0FsbG9jYXRvcl8u
YWxsb2NhdGUoKTsKLSAgICAgIG5ldyAobWFwKSBWYWx1ZUludGVybmFsTWFwKCk7IC8vIHBsYWNl
bWVudCBuZXcKLSAgICAgIHJldHVybiBtYXA7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRl
cm5hbE1hcCAqbmV3TWFwQ29weSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotICAg
ewotICAgICAgVmFsdWVJbnRlcm5hbE1hcCAqbWFwID0gbWFwc0FsbG9jYXRvcl8uYWxsb2NhdGUo
KTsKLSAgICAgIG5ldyAobWFwKSBWYWx1ZUludGVybmFsTWFwKCBvdGhlciApOyAvLyBwbGFjZW1l
bnQgbmV3Ci0gICAgICByZXR1cm4gbWFwOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgZGVzdHJ1
Y3RNYXAoIFZhbHVlSW50ZXJuYWxNYXAgKm1hcCApCi0gICB7Ci0gICAgICBpZiAoIG1hcCApCi0g
ICAgICB7Ci0gICAgICAgICBtYXAtPn5WYWx1ZUludGVybmFsTWFwKCk7Ci0gICAgICAgICBtYXBz
QWxsb2NhdG9yXy5yZWxlYXNlKCBtYXAgKTsKLSAgICAgIH0KLSAgIH0KLQotICAgdmlydHVhbCBW
YWx1ZUludGVybmFsTGluayAqYWxsb2NhdGVNYXBCdWNrZXRzKCB1bnNpZ25lZCBpbnQgc2l6ZSAp
Ci0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxMaW5rW3NpemVdOwotICAgfQot
Ci0gICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcEJ1Y2tldHMoIFZhbHVlSW50ZXJuYWxMaW5rICps
aW5rcyApCi0gICB7Ci0gICAgICBkZWxldGUgW10gbGlua3M7Ci0gICB9Ci0KLSAgIHZpcnR1YWwg
VmFsdWVJbnRlcm5hbExpbmsgKmFsbG9jYXRlTWFwTGluaygpCi0gICB7Ci0gICAgICBWYWx1ZUlu
dGVybmFsTGluayAqbGluayA9IGxpbmtzQWxsb2NhdG9yXy5hbGxvY2F0ZSgpOwotICAgICAgbWVt
c2V0KCBsaW5rLCAwLCBzaXplb2YoVmFsdWVJbnRlcm5hbExpbmspICk7Ci0gICAgICByZXR1cm4g
bGluazsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlbGVhc2VNYXBMaW5rKCBWYWx1ZUludGVy
bmFsTGluayAqbGluayApCi0gICB7Ci0gICAgICBsaW5rLT5+VmFsdWVJbnRlcm5hbExpbmsoKTsK
LSAgICAgIGxpbmtzQWxsb2NhdG9yXy5yZWxlYXNlKCBsaW5rICk7Ci0gICB9Ci1wcml2YXRlOgot
ICAgQmF0Y2hBbGxvY2F0b3I8VmFsdWVJbnRlcm5hbE1hcCwxPiBtYXBzQWxsb2NhdG9yXzsKLSAg
IEJhdGNoQWxsb2NhdG9yPFZhbHVlSW50ZXJuYWxMaW5rLDE+IGxpbmtzQWxsb2NhdG9yXzsKLX07
Ci0jZW5kaWYKLQotc3RhdGljIFZhbHVlTWFwQWxsb2NhdG9yICombWFwQWxsb2NhdG9yKCkKLXsK
LSAgIHN0YXRpYyBEZWZhdWx0VmFsdWVNYXBBbGxvY2F0b3IgZGVmYXVsdEFsbG9jYXRvcjsKLSAg
IHN0YXRpYyBWYWx1ZU1hcEFsbG9jYXRvciAqbWFwQWxsb2NhdG9yID0gJmRlZmF1bHRBbGxvY2F0
b3I7Ci0gICByZXR1cm4gbWFwQWxsb2NhdG9yOwotfQotCi1zdGF0aWMgc3RydWN0IER1bW15TWFw
QWxsb2NhdG9ySW5pdGlhbGl6ZXIgewotICAgRHVtbXlNYXBBbGxvY2F0b3JJbml0aWFsaXplcigp
IAotICAgewotICAgICAgbWFwQWxsb2NhdG9yKCk7ICAgICAgLy8gZW5zdXJlIG1hcEFsbG9jYXRv
cigpIHN0YXRpY3MgYXJlIGluaXRpYWxpemVkIGJlZm9yZSBtYWluKCkuCi0gICB9Ci19IGR1bW15
TWFwQWxsb2NhdG9ySW5pdGlhbGl6ZXI7Ci0KLQotCi0vLyBoKEspID0gdmFsdWUgKiBLID4+IHcg
OyB3aXRoIHcgPSAzMiAmIEsgcHJpbWUgdy5yLnQuIDJeMzIuCi0KLS8qCi11c2UgbGlua2VkIGxp
c3QgaGFzaCBtYXAuIAotYnVja2V0cyBhcnJheSBpcyBhIGNvbnRhaW5lci4KLWxpbmtlZCBsaXN0
IGVsZW1lbnQgY29udGFpbnMgNiBrZXkvdmFsdWVzLiAobWVtb3J5ID0gKDE2KzQpICogNiArIDQg
PSAxMjQpCi12YWx1ZSBoYXZlIGV4dHJhIHN0YXRlOiB2YWxpZCwgYXZhaWxhYmxlLCBkZWxldGVk
Ci0qLwotCi0KLVZhbHVlSW50ZXJuYWxNYXA6OlZhbHVlSW50ZXJuYWxNYXAoKQotICAgOiBidWNr
ZXRzXyggMCApCi0gICAsIHRhaWxMaW5rXyggMCApCi0gICAsIGJ1Y2tldHNTaXplXyggMCApCi0g
ICAsIGl0ZW1Db3VudF8oIDAgKQotewotfQotCi0KLVZhbHVlSW50ZXJuYWxNYXA6OlZhbHVlSW50
ZXJuYWxNYXAoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICkKLSAgIDogYnVja2V0c18o
IDAgKQotICAgLCB0YWlsTGlua18oIDAgKQotICAgLCBidWNrZXRzU2l6ZV8oIDAgKQotICAgLCBp
dGVtQ291bnRfKCAwICkKLXsKLSAgIHJlc2VydmUoIG90aGVyLml0ZW1Db3VudF8gKTsKLSAgIEl0
ZXJhdG9yU3RhdGUgaXQ7Ci0gICBJdGVyYXRvclN0YXRlIGl0RW5kOwotICAgb3RoZXIubWFrZUJl
Z2luSXRlcmF0b3IoIGl0ICk7Ci0gICBvdGhlci5tYWtlRW5kSXRlcmF0b3IoIGl0RW5kICk7Ci0g
ICBmb3IgKCA7ICFlcXVhbHMoaXQsaXRFbmQpOyBpbmNyZW1lbnQoaXQpICkKLSAgIHsKLSAgICAg
IGJvb2wgaXNTdGF0aWM7Ci0gICAgICBjb25zdCBjaGFyICptZW1iZXJOYW1lID0ga2V5KCBpdCwg
aXNTdGF0aWMgKTsKLSAgICAgIGNvbnN0IFZhbHVlICZhVmFsdWUgPSB2YWx1ZSggaXQgKTsKLSAg
ICAgIHJlc29sdmVSZWZlcmVuY2UobWVtYmVyTmFtZSwgaXNTdGF0aWMpID0gYVZhbHVlOwotICAg
fQotfQotCi0KLVZhbHVlSW50ZXJuYWxNYXAgJgotVmFsdWVJbnRlcm5hbE1hcDo6b3BlcmF0b3Ig
PSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotewotICAgVmFsdWVJbnRlcm5hbE1h
cCBkdW1teSggb3RoZXIgKTsKLSAgIHN3YXAoIGR1bW15ICk7Ci0gICByZXR1cm4gKnRoaXM7Ci19
Ci0KLQotVmFsdWVJbnRlcm5hbE1hcDo6flZhbHVlSW50ZXJuYWxNYXAoKQotewotICAgaWYgKCBi
dWNrZXRzXyApCi0gICB7Ci0gICAgICBmb3IgKCBCdWNrZXRJbmRleCBidWNrZXRJbmRleCA9MDsg
YnVja2V0SW5kZXggPCBidWNrZXRzU2l6ZV87ICsrYnVja2V0SW5kZXggKQotICAgICAgewotICAg
ICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmsgPSBidWNrZXRzX1tidWNrZXRJbmRleF0ubmV4
dF87Ci0gICAgICAgICB3aGlsZSAoIGxpbmsgKQotICAgICAgICAgewotICAgICAgICAgICAgVmFs
dWVJbnRlcm5hbExpbmsgKmxpbmtUb1JlbGVhc2UgPSBsaW5rOwotICAgICAgICAgICAgbGluayA9
IGxpbmstPm5leHRfOwotICAgICAgICAgICAgbWFwQWxsb2NhdG9yKCktPnJlbGVhc2VNYXBMaW5r
KCBsaW5rVG9SZWxlYXNlICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBtYXBBbGxvY2F0
b3IoKS0+cmVsZWFzZU1hcEJ1Y2tldHMoIGJ1Y2tldHNfICk7Ci0gICB9Ci19Ci0KLQotdm9pZCAK
LVZhbHVlSW50ZXJuYWxNYXA6OnN3YXAoIFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICkKLXsKLSAg
IFZhbHVlSW50ZXJuYWxMaW5rICp0ZW1wQnVja2V0cyA9IGJ1Y2tldHNfOwotICAgYnVja2V0c18g
PSBvdGhlci5idWNrZXRzXzsKLSAgIG90aGVyLmJ1Y2tldHNfID0gdGVtcEJ1Y2tldHM7Ci0gICBW
YWx1ZUludGVybmFsTGluayAqdGVtcFRhaWxMaW5rID0gdGFpbExpbmtfOwotICAgdGFpbExpbmtf
ID0gb3RoZXIudGFpbExpbmtfOwotICAgb3RoZXIudGFpbExpbmtfID0gdGVtcFRhaWxMaW5rOwot
ICAgQnVja2V0SW5kZXggdGVtcEJ1Y2tldHNTaXplID0gYnVja2V0c1NpemVfOwotICAgYnVja2V0
c1NpemVfID0gb3RoZXIuYnVja2V0c1NpemVfOwotICAgb3RoZXIuYnVja2V0c1NpemVfID0gdGVt
cEJ1Y2tldHNTaXplOwotICAgQnVja2V0SW5kZXggdGVtcEl0ZW1Db3VudCA9IGl0ZW1Db3VudF87
Ci0gICBpdGVtQ291bnRfID0gb3RoZXIuaXRlbUNvdW50XzsKLSAgIG90aGVyLml0ZW1Db3VudF8g
PSB0ZW1wSXRlbUNvdW50OwotfQotCi0KLXZvaWQgCi1WYWx1ZUludGVybmFsTWFwOjpjbGVhcigp
Ci17Ci0gICBWYWx1ZUludGVybmFsTWFwIGR1bW15OwotICAgc3dhcCggZHVtbXkgKTsKLX0KLQot
Ci1WYWx1ZUludGVybmFsTWFwOjpCdWNrZXRJbmRleCAKLVZhbHVlSW50ZXJuYWxNYXA6OnNpemUo
KSBjb25zdAotewotICAgcmV0dXJuIGl0ZW1Db3VudF87Ci19Ci0KLWJvb2wgCi1WYWx1ZUludGVy
bmFsTWFwOjpyZXNlcnZlRGVsdGEoIEJ1Y2tldEluZGV4IGdyb3d0aCApCi17Ci0gICByZXR1cm4g
cmVzZXJ2ZSggaXRlbUNvdW50XyArIGdyb3d0aCApOwotfQotCi1ib29sIAotVmFsdWVJbnRlcm5h
bE1hcDo6cmVzZXJ2ZSggQnVja2V0SW5kZXggbmV3SXRlbUNvdW50ICkKLXsKLSAgIGlmICggIWJ1
Y2tldHNfICAmJiAgbmV3SXRlbUNvdW50ID4gMCApCi0gICB7Ci0gICAgICBidWNrZXRzXyA9IG1h
cEFsbG9jYXRvcigpLT5hbGxvY2F0ZU1hcEJ1Y2tldHMoIDEgKTsKLSAgICAgIGJ1Y2tldHNTaXpl
XyA9IDE7Ci0gICAgICB0YWlsTGlua18gPSAmYnVja2V0c19bMF07Ci0gICB9Ci0vLyAgIEJ1Y2tl
dEluZGV4IGlkZWFsQnVja2V0Q291bnQgPSAobmV3SXRlbUNvdW50ICsgVmFsdWVJbnRlcm5hbExp
bms6Oml0ZW1QZXJMaW5rKSAvIFZhbHVlSW50ZXJuYWxMaW5rOjppdGVtUGVyTGluazsKLSAgIHJl
dHVybiB0cnVlOwotfQotCi0KLWNvbnN0IFZhbHVlICoKLVZhbHVlSW50ZXJuYWxNYXA6OmZpbmQo
IGNvbnN0IGNoYXIgKmtleSApIGNvbnN0Ci17Ci0gICBpZiAoICFidWNrZXRzU2l6ZV8gKQotICAg
ICAgcmV0dXJuIDA7Ci0gICBIYXNoS2V5IGhhc2hlZEtleSA9IGhhc2goIGtleSApOwotICAgQnVj
a2V0SW5kZXggYnVja2V0SW5kZXggPSBoYXNoZWRLZXkgJSBidWNrZXRzU2l6ZV87Ci0gICBmb3Ig
KCBjb25zdCBWYWx1ZUludGVybmFsTGluayAqY3VycmVudCA9ICZidWNrZXRzX1tidWNrZXRJbmRl
eF07IAotICAgICAgICAgY3VycmVudCAhPSAwOyAKLSAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50
LT5uZXh0XyApCi0gICB7Ci0gICAgICBmb3IgKCBCdWNrZXRJbmRleCBpbmRleD0wOyBpbmRleCA8
IFZhbHVlSW50ZXJuYWxMaW5rOjppdGVtUGVyTGluazsgKytpbmRleCApCi0gICAgICB7Ci0gICAg
ICAgICBpZiAoIGN1cnJlbnQtPml0ZW1zX1tpbmRleF0uaXNJdGVtQXZhaWxhYmxlKCkgKQotICAg
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICBpZiAoIHN0cmNtcCgga2V5LCBjdXJyZW50LT5r
ZXlzX1tpbmRleF0gKSA9PSAwICkKLSAgICAgICAgICAgIHJldHVybiAmY3VycmVudC0+aXRlbXNf
W2luZGV4XTsKLSAgICAgIH0KLSAgIH0KLSAgIHJldHVybiAwOwotfQotCi0KLVZhbHVlICoKLVZh
bHVlSW50ZXJuYWxNYXA6OmZpbmQoIGNvbnN0IGNoYXIgKmtleSApCi17Ci0gICBjb25zdCBWYWx1
ZUludGVybmFsTWFwICpjb25zdFRoaXMgPSB0aGlzOwotICAgcmV0dXJuIGNvbnN0X2Nhc3Q8VmFs
dWUgKj4oIGNvbnN0VGhpcy0+ZmluZCgga2V5ICkgKTsKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZUlu
dGVybmFsTWFwOjpyZXNvbHZlUmVmZXJlbmNlKCBjb25zdCBjaGFyICprZXksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljICkKLXsKLSAgIEhhc2hLZXkg
aGFzaGVkS2V5ID0gaGFzaCgga2V5ICk7Ci0gICBpZiAoIGJ1Y2tldHNTaXplXyApCi0gICB7Ci0g
ICAgICBCdWNrZXRJbmRleCBidWNrZXRJbmRleCA9IGhhc2hlZEtleSAlIGJ1Y2tldHNTaXplXzsK
LSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICoqcHJldmlvdXMgPSAwOwotICAgICAgQnVja2V0SW5k
ZXggaW5kZXg7Ci0gICAgICBmb3IgKCBWYWx1ZUludGVybmFsTGluayAqY3VycmVudCA9ICZidWNr
ZXRzX1tidWNrZXRJbmRleF07IAotICAgICAgICAgICAgY3VycmVudCAhPSAwOyAKLSAgICAgICAg
ICAgIHByZXZpb3VzID0gJmN1cnJlbnQtPm5leHRfLCBjdXJyZW50ID0gY3VycmVudC0+bmV4dF8g
KQotICAgICAgewotICAgICAgICAgZm9yICggaW5kZXg9MDsgaW5kZXggPCBWYWx1ZUludGVybmFs
TGluazo6aXRlbVBlckxpbms7ICsraW5kZXggKQotICAgICAgICAgewotICAgICAgICAgICAgaWYg
KCBjdXJyZW50LT5pdGVtc19baW5kZXhdLmlzSXRlbUF2YWlsYWJsZSgpICkKLSAgICAgICAgICAg
ICAgIHJldHVybiBzZXROZXdJdGVtKCBrZXksIGlzU3RhdGljLCBjdXJyZW50LCBpbmRleCApOwot
ICAgICAgICAgICAgaWYgKCBzdHJjbXAoIGtleSwgY3VycmVudC0+a2V5c19baW5kZXhdICkgPT0g
MCApCi0gICAgICAgICAgICAgICByZXR1cm4gY3VycmVudC0+aXRlbXNfW2luZGV4XTsKLSAgICAg
ICAgIH0KLSAgICAgIH0KLSAgIH0KLQotICAgcmVzZXJ2ZURlbHRhKCAxICk7Ci0gICByZXR1cm4g
dW5zYWZlQWRkKCBrZXksIGlzU3RhdGljLCBoYXNoZWRLZXkgKTsKLX0KLQotCi12b2lkIAotVmFs
dWVJbnRlcm5hbE1hcDo6cmVtb3ZlKCBjb25zdCBjaGFyICprZXkgKQotewotICAgSGFzaEtleSBo
YXNoZWRLZXkgPSBoYXNoKCBrZXkgKTsKLSAgIGlmICggIWJ1Y2tldHNTaXplXyApCi0gICAgICBy
ZXR1cm47Ci0gICBCdWNrZXRJbmRleCBidWNrZXRJbmRleCA9IGhhc2hlZEtleSAlIGJ1Y2tldHNT
aXplXzsKLSAgIGZvciAoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rID0gJmJ1Y2tldHNfW2J1Y2tl
dEluZGV4XTsgCi0gICAgICAgICBsaW5rICE9IDA7IAotICAgICAgICAgbGluayA9IGxpbmstPm5l
eHRfICkKLSAgIHsKLSAgICAgIEJ1Y2tldEluZGV4IGluZGV4OwotICAgICAgZm9yICggaW5kZXgg
PTA7IGluZGV4IDwgVmFsdWVJbnRlcm5hbExpbms6Oml0ZW1QZXJMaW5rOyArK2luZGV4ICkKLSAg
ICAgIHsKLSAgICAgICAgIGlmICggbGluay0+aXRlbXNfW2luZGV4XS5pc0l0ZW1BdmFpbGFibGUo
KSApCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICBpZiAoIHN0cmNtcCgga2V5LCBsaW5r
LT5rZXlzX1tpbmRleF0gKSA9PSAwICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIGRvQWN0dWFs
UmVtb3ZlKCBsaW5rLCBpbmRleCwgYnVja2V0SW5kZXggKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLX0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxNYXA6
OmRvQWN0dWFsUmVtb3ZlKCBWYWx1ZUludGVybmFsTGluayAqbGluaywgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQnVja2V0SW5kZXggaW5kZXgsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQnVja2V0SW5kZXggYnVja2V0SW5kZXggKQotewotICAgLy8gZmlu
ZCBsYXN0IGl0ZW0gb2YgdGhlIGJ1Y2tldCBhbmQgc3dhcCBpdCB3aXRoIHRoZSAncmVtb3ZlZCcg
b25lLgotICAgLy8gc2V0IHJlbW92ZWQgaXRlbXMgZmxhZ3MgdG8gJ2F2YWlsYWJsZScuCi0gICAv
LyBpZiBsYXN0IHBhZ2Ugb25seSBjb250YWlucyAnYXZhaWxhYmxlJyBpdGVtcywgdGhlbiBkZXNh
bGxvY2F0ZSBpdCAoaXQncyBlbXB0eSkKLSAgIFZhbHVlSW50ZXJuYWxMaW5rICombGFzdExpbmsg
PSBnZXRMYXN0TGlua0luQnVja2V0KCBpbmRleCApOwotICAgQnVja2V0SW5kZXggbGFzdEl0ZW1J
bmRleCA9IDE7IC8vIGEgbGluayBjYW4gbmV2ZXIgYmUgZW1wdHksIHNvIHN0YXJ0IGF0IDEKLSAg
IGZvciAoIDsgICAKLSAgICAgICAgIGxhc3RJdGVtSW5kZXggPCBWYWx1ZUludGVybmFsTGluazo6
aXRlbVBlckxpbms7IAotICAgICAgICAgKytsYXN0SXRlbUluZGV4ICkgLy8gbWF5IGJlIG9wdGlt
aXplZCB3aXRoIGRpY290b21pYyBzZWFyY2gKLSAgIHsKLSAgICAgIGlmICggbGFzdExpbmstPml0
ZW1zX1tsYXN0SXRlbUluZGV4XS5pc0l0ZW1BdmFpbGFibGUoKSApCi0gICAgICAgICBicmVhazsK
LSAgIH0KLSAgIAotICAgQnVja2V0SW5kZXggbGFzdFVzZWRJbmRleCA9IGxhc3RJdGVtSW5kZXgg
LSAxOwotICAgVmFsdWUgKnZhbHVlVG9EZWxldGUgPSAmbGluay0+aXRlbXNfW2luZGV4XTsKLSAg
IFZhbHVlICp2YWx1ZVRvUHJlc2VydmUgPSAmbGFzdExpbmstPml0ZW1zX1tsYXN0VXNlZEluZGV4
XTsKLSAgIGlmICggdmFsdWVUb0RlbGV0ZSAhPSB2YWx1ZVRvUHJlc2VydmUgKQotICAgICAgdmFs
dWVUb0RlbGV0ZS0+c3dhcCggKnZhbHVlVG9QcmVzZXJ2ZSApOwotICAgaWYgKCBsYXN0VXNlZElu
ZGV4ID09IDAgKSAgLy8gcGFnZSBpcyBub3cgZW1wdHkKLSAgIHsgIC8vIHJlbW92ZSBpdCBmcm9t
IGJ1Y2tldCBsaW5rZWQgbGlzdCBhbmQgZGVsZXRlIGl0LgotICAgICAgVmFsdWVJbnRlcm5hbExp
bmsgKmxpbmtQcmV2aW91c1RvTGFzdCA9IGxhc3RMaW5rLT5wcmV2aW91c187Ci0gICAgICBpZiAo
IGxpbmtQcmV2aW91c1RvTGFzdCAhPSAwICkgICAvLyBjYW4gbm90IGRlbGV0ZWQgYnVja2V0IGxp
bmsuCi0gICAgICB7Ci0gICAgICAgICBtYXBBbGxvY2F0b3IoKS0+cmVsZWFzZU1hcExpbmsoIGxh
c3RMaW5rICk7Ci0gICAgICAgICBsaW5rUHJldmlvdXNUb0xhc3QtPm5leHRfID0gMDsKLSAgICAg
ICAgIGxhc3RMaW5rID0gbGlua1ByZXZpb3VzVG9MYXN0OwotICAgICAgfQotICAgfQotICAgZWxz
ZQotICAgewotICAgICAgVmFsdWUgZHVtbXk7Ci0gICAgICB2YWx1ZVRvUHJlc2VydmUtPnN3YXAo
IGR1bW15ICk7IC8vIHJlc3RvcmUgZGVsZXRlZCB0byBkZWZhdWx0IFZhbHVlLgotICAgICAgdmFs
dWVUb1ByZXNlcnZlLT5zZXRJdGVtVXNlZCggZmFsc2UgKTsKLSAgIH0KLSAgIC0taXRlbUNvdW50
XzsKLX0KLQotCi1WYWx1ZUludGVybmFsTGluayAqJgotVmFsdWVJbnRlcm5hbE1hcDo6Z2V0TGFz
dExpbmtJbkJ1Y2tldCggQnVja2V0SW5kZXggYnVja2V0SW5kZXggKQotewotICAgaWYgKCBidWNr
ZXRJbmRleCA9PSBidWNrZXRzU2l6ZV8gLSAxICkKLSAgICAgIHJldHVybiB0YWlsTGlua187Ci0g
ICBWYWx1ZUludGVybmFsTGluayAqJnByZXZpb3VzID0gYnVja2V0c19bYnVja2V0SW5kZXgrMV0u
cHJldmlvdXNfOwotICAgaWYgKCAhcHJldmlvdXMgKQotICAgICAgcHJldmlvdXMgPSAmYnVja2V0
c19bYnVja2V0SW5kZXhdOwotICAgcmV0dXJuIHByZXZpb3VzOwotfQotCi0KLVZhbHVlICYKLVZh
bHVlSW50ZXJuYWxNYXA6OnNldE5ld0l0ZW0oIGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmssIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQnVja2V0SW5kZXggaW5kZXggKQotewotICAgY2hhciAqZHVwbGljYXRlZEtleSA9
IG1ha2VNZW1iZXJOYW1lKCBrZXkgKTsKLSAgICsraXRlbUNvdW50XzsKLSAgIGxpbmstPmtleXNf
W2luZGV4XSA9IGR1cGxpY2F0ZWRLZXk7Ci0gICBsaW5rLT5pdGVtc19baW5kZXhdLnNldEl0ZW1V
c2VkKCk7Ci0gICBsaW5rLT5pdGVtc19baW5kZXhdLnNldE1lbWJlck5hbWVJc1N0YXRpYyggaXNT
dGF0aWMgKTsKLSAgIHJldHVybiBsaW5rLT5pdGVtc19baW5kZXhdOyAvLyBpdGVtcyBhbHJlYWR5
IGRlZmF1bHQgY29uc3RydWN0ZWQuCi19Ci0KLQotVmFsdWUgJgotVmFsdWVJbnRlcm5hbE1hcDo6
dW5zYWZlQWRkKCBjb25zdCBjaGFyICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGlzU3RhdGljLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzaEtleSBo
YXNoZWRLZXkgKQotewotICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggYnVja2V0c1NpemVfID4gMCwg
IlZhbHVlSW50ZXJuYWxNYXA6OnVuc2FmZUFkZCgpOiBpbnRlcm5hbCBsb2dpYyBlcnJvci4iICk7
Ci0gICBCdWNrZXRJbmRleCBidWNrZXRJbmRleCA9IGhhc2hlZEtleSAlIGJ1Y2tldHNTaXplXzsK
LSAgIFZhbHVlSW50ZXJuYWxMaW5rIComcHJldmlvdXNMaW5rID0gZ2V0TGFzdExpbmtJbkJ1Y2tl
dCggYnVja2V0SW5kZXggKTsKLSAgIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rID0gcHJldmlvdXNM
aW5rOwotICAgQnVja2V0SW5kZXggaW5kZXg7Ci0gICBmb3IgKCBpbmRleCA9MDsgaW5kZXggPCBW
YWx1ZUludGVybmFsTGluazo6aXRlbVBlckxpbms7ICsraW5kZXggKQotICAgewotICAgICAgaWYg
KCBsaW5rLT5pdGVtc19baW5kZXhdLmlzSXRlbUF2YWlsYWJsZSgpICkKLSAgICAgICAgIGJyZWFr
OwotICAgfQotICAgaWYgKCBpbmRleCA9PSBWYWx1ZUludGVybmFsTGluazo6aXRlbVBlckxpbmsg
KSAvLyBuZWVkIHRvIGFkZCBhIG5ldyBwYWdlCi0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsTGlu
ayAqbmV3TGluayA9IG1hcEFsbG9jYXRvcigpLT5hbGxvY2F0ZU1hcExpbmsoKTsKLSAgICAgIGlu
ZGV4ID0gMDsKLSAgICAgIGxpbmstPm5leHRfID0gbmV3TGluazsKLSAgICAgIHByZXZpb3VzTGlu
ayA9IG5ld0xpbms7Ci0gICAgICBsaW5rID0gbmV3TGluazsKLSAgIH0KLSAgIHJldHVybiBzZXRO
ZXdJdGVtKCBrZXksIGlzU3RhdGljLCBsaW5rLCBpbmRleCApOwotfQotCi0KLVZhbHVlSW50ZXJu
YWxNYXA6Okhhc2hLZXkgCi1WYWx1ZUludGVybmFsTWFwOjpoYXNoKCBjb25zdCBjaGFyICprZXkg
KSBjb25zdAotewotICAgSGFzaEtleSBoYXNoID0gMDsKLSAgIHdoaWxlICggKmtleSApCi0gICAg
ICBoYXNoICs9ICprZXkrKyAqIDM3OwotICAgcmV0dXJuIGhhc2g7Ci19Ci0KLQotaW50IAotVmFs
dWVJbnRlcm5hbE1hcDo6Y29tcGFyZSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKSBj
b25zdAotewotICAgaW50IHNpemVEaWZmKCBpdGVtQ291bnRfIC0gb3RoZXIuaXRlbUNvdW50XyAp
OwotICAgaWYgKCBzaXplRGlmZiAhPSAwICkKLSAgICAgIHJldHVybiBzaXplRGlmZjsKLSAgIC8v
IFN0cmljdCBvcmRlciBndWFyYW50eSBpcyByZXF1aXJlZC4gQ29tcGFyZSBhbGwga2V5cyBGSVJT
VCwgdGhlbiBjb21wYXJlIHZhbHVlcy4KLSAgIEl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICBJdGVyYXRv
clN0YXRlIGl0RW5kOwotICAgbWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICBtYWtlRW5kSXRl
cmF0b3IoIGl0RW5kICk7Ci0gICBmb3IgKCA7ICFlcXVhbHMoaXQsaXRFbmQpOyBpbmNyZW1lbnQo
aXQpICkKLSAgIHsKLSAgICAgIGlmICggIW90aGVyLmZpbmQoIGtleSggaXQgKSApICkKLSAgICAg
ICAgIHJldHVybiAxOwotICAgfQotCi0gICAvLyBBbGwga2V5cyBhcmUgZXF1YWxzLCBsZXQncyBj
b21wYXJlIHZhbHVlcwotICAgbWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICBmb3IgKCA7ICFl
cXVhbHMoaXQsaXRFbmQpOyBpbmNyZW1lbnQoaXQpICkKLSAgIHsKLSAgICAgIGNvbnN0IFZhbHVl
ICpvdGhlclZhbHVlID0gb3RoZXIuZmluZCgga2V5KCBpdCApICk7Ci0gICAgICBpbnQgdmFsdWVE
aWZmID0gdmFsdWUoaXQpLmNvbXBhcmUoICpvdGhlclZhbHVlICk7Ci0gICAgICBpZiAoIHZhbHVl
RGlmZiAhPSAwICkKLSAgICAgICAgIHJldHVybiB2YWx1ZURpZmY7Ci0gICB9Ci0gICByZXR1cm4g
MDsKLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbE1hcDo6bWFrZUJlZ2luSXRlcmF0b3IoIEl0
ZXJhdG9yU3RhdGUgJml0ICkgY29uc3QKLXsKLSAgIGl0Lm1hcF8gPSBjb25zdF9jYXN0PFZhbHVl
SW50ZXJuYWxNYXAgKj4oIHRoaXMgKTsKLSAgIGl0LmJ1Y2tldEluZGV4XyA9IDA7Ci0gICBpdC5p
dGVtSW5kZXhfID0gMDsKLSAgIGl0LmxpbmtfID0gYnVja2V0c187Ci19Ci0KLQotdm9pZCAKLVZh
bHVlSW50ZXJuYWxNYXA6Om1ha2VFbmRJdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQgKSBjb25z
dAotewotICAgaXQubWFwXyA9IGNvbnN0X2Nhc3Q8VmFsdWVJbnRlcm5hbE1hcCAqPiggdGhpcyAp
OwotICAgaXQuYnVja2V0SW5kZXhfID0gYnVja2V0c1NpemVfOwotICAgaXQuaXRlbUluZGV4XyA9
IDA7Ci0gICBpdC5saW5rXyA9IDA7Ci19Ci0KLQotYm9vbCAKLVZhbHVlSW50ZXJuYWxNYXA6OmVx
dWFscyggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JTdGF0ZSAmb3RoZXIg
KQotewotICAgcmV0dXJuIHgubWFwXyA9PSBvdGhlci5tYXBfICAKLSAgICAgICAgICAmJiAgeC5i
dWNrZXRJbmRleF8gPT0gb3RoZXIuYnVja2V0SW5kZXhfICAKLSAgICAgICAgICAmJiAgeC5saW5r
XyA9PSBvdGhlci5saW5rXwotICAgICAgICAgICYmICB4Lml0ZW1JbmRleF8gPT0gb3RoZXIuaXRl
bUluZGV4XzsKLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbE1hcDo6aW5jcmVtZW50QnVja2V0
KCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApCi17Ci0gICArK2l0ZXJhdG9yLmJ1Y2tldEluZGV4
XzsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0ZXJhdG9yLmJ1Y2tldEluZGV4XyA8PSBpdGVy
YXRvci5tYXBfLT5idWNrZXRzU2l6ZV8sCi0gICAgICAiVmFsdWVJbnRlcm5hbE1hcDo6aW5jcmVt
ZW50KCk6IGF0dGVtcHRpbmcgdG8gaXRlcmF0ZSBiZXlvbmQgZW5kLiIgKTsKLSAgIGlmICggaXRl
cmF0b3IuYnVja2V0SW5kZXhfID09IGl0ZXJhdG9yLm1hcF8tPmJ1Y2tldHNTaXplXyApCi0gICAg
ICBpdGVyYXRvci5saW5rXyA9IDA7Ci0gICBlbHNlCi0gICAgICBpdGVyYXRvci5saW5rXyA9ICYo
aXRlcmF0b3IubWFwXy0+YnVja2V0c19baXRlcmF0b3IuYnVja2V0SW5kZXhfXSk7Ci0gICBpdGVy
YXRvci5pdGVtSW5kZXhfID0gMDsKLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbE1hcDo6aW5j
cmVtZW50KCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApCi17Ci0gICBKU09OX0FTU0VSVF9NRVNT
QUdFKCBpdGVyYXRvci5tYXBfLCAiQXR0ZW1wdGluZyB0byBpdGVyYXRvciB1c2luZyBpbnZhbGlk
IGl0ZXJhdG9yLiIgKTsKLSAgICsraXRlcmF0b3IuaXRlbUluZGV4XzsKLSAgIGlmICggaXRlcmF0
b3IuaXRlbUluZGV4XyA9PSBWYWx1ZUludGVybmFsTGluazo6aXRlbVBlckxpbmsgKQotICAgewot
ICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggaXRlcmF0b3IubGlua18gIT0gMCwKLSAgICAgICAg
ICJWYWx1ZUludGVybmFsTWFwOjppbmNyZW1lbnQoKTogYXR0ZW1wdGluZyB0byBpdGVyYXRlIGJl
eW9uZCBlbmQuIiApOwotICAgICAgaXRlcmF0b3IubGlua18gPSBpdGVyYXRvci5saW5rXy0+bmV4
dF87Ci0gICAgICBpZiAoIGl0ZXJhdG9yLmxpbmtfID09IDAgKQotICAgICAgICAgaW5jcmVtZW50
QnVja2V0KCBpdGVyYXRvciApOwotICAgfQotICAgZWxzZSBpZiAoIGl0ZXJhdG9yLmxpbmtfLT5p
dGVtc19baXRlcmF0b3IuaXRlbUluZGV4X10uaXNJdGVtQXZhaWxhYmxlKCkgKQotICAgewotICAg
ICAgaW5jcmVtZW50QnVja2V0KCBpdGVyYXRvciApOwotICAgfQotfQotCi0KLXZvaWQgCi1WYWx1
ZUludGVybmFsTWFwOjpkZWNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICkKLXsKLSAg
IGlmICggaXRlcmF0b3IuaXRlbUluZGV4XyA9PSAwICkKLSAgIHsKLSAgICAgIEpTT05fQVNTRVJU
X01FU1NBR0UoIGl0ZXJhdG9yLm1hcF8sICJBdHRlbXB0aW5nIHRvIGl0ZXJhdGUgdXNpbmcgaW52
YWxpZCBpdGVyYXRvci4iICk7Ci0gICAgICBpZiAoIGl0ZXJhdG9yLmxpbmtfID09ICZpdGVyYXRv
ci5tYXBfLT5idWNrZXRzX1tpdGVyYXRvci5idWNrZXRJbmRleF9dICkKLSAgICAgIHsKLSAgICAg
ICAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0ZXJhdG9yLmJ1Y2tldEluZGV4XyA+IDAsICJBdHRl
bXB0aW5nIHRvIGl0ZXJhdGUgYmV5b25kIGJlZ2lubmluZy4iICk7Ci0gICAgICAgICAtLShpdGVy
YXRvci5idWNrZXRJbmRleF8pOwotICAgICAgfQotICAgICAgaXRlcmF0b3IubGlua18gPSBpdGVy
YXRvci5saW5rXy0+cHJldmlvdXNfOwotICAgICAgaXRlcmF0b3IuaXRlbUluZGV4XyA9IFZhbHVl
SW50ZXJuYWxMaW5rOjppdGVtUGVyTGluayAtIDE7Ci0gICB9Ci19Ci0KLQotY29uc3QgY2hhciAq
Ci1WYWx1ZUludGVybmFsTWFwOjprZXkoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICkK
LXsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0ZXJhdG9yLmxpbmtfLCAiQXR0ZW1wdGluZyB0
byBpdGVyYXRlIHVzaW5nIGludmFsaWQgaXRlcmF0b3IuIiApOwotICAgcmV0dXJuIGl0ZXJhdG9y
LmxpbmtfLT5rZXlzX1tpdGVyYXRvci5pdGVtSW5kZXhfXTsKLX0KLQotY29uc3QgY2hhciAqCi1W
YWx1ZUludGVybmFsTWFwOjprZXkoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yLCBib29s
ICZpc1N0YXRpYyApCi17Ci0gICBKU09OX0FTU0VSVF9NRVNTQUdFKCBpdGVyYXRvci5saW5rXywg
IkF0dGVtcHRpbmcgdG8gaXRlcmF0ZSB1c2luZyBpbnZhbGlkIGl0ZXJhdG9yLiIgKTsKLSAgIGlz
U3RhdGljID0gaXRlcmF0b3IubGlua18tPml0ZW1zX1tpdGVyYXRvci5pdGVtSW5kZXhfXS5pc01l
bWJlck5hbWVTdGF0aWMoKTsKLSAgIHJldHVybiBpdGVyYXRvci5saW5rXy0+a2V5c19baXRlcmF0
b3IuaXRlbUluZGV4X107Ci19Ci0KLQotVmFsdWUgJgotVmFsdWVJbnRlcm5hbE1hcDo6dmFsdWUo
IGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICkKLXsKLSAgIEpTT05fQVNTRVJUX01FU1NB
R0UoIGl0ZXJhdG9yLmxpbmtfLCAiQXR0ZW1wdGluZyB0byBpdGVyYXRlIHVzaW5nIGludmFsaWQg
aXRlcmF0b3IuIiApOwotICAgcmV0dXJuIGl0ZXJhdG9yLmxpbmtfLT5pdGVtc19baXRlcmF0b3Iu
aXRlbUluZGV4X107Ci19Ci0KLQotaW50IAotVmFsdWVJbnRlcm5hbE1hcDo6ZGlzdGFuY2UoIGNv
bnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJnkgKQotewotICAgaW50
IG9mZnNldCA9IDA7Ci0gICBJdGVyYXRvclN0YXRlIGl0ID0geDsKLSAgIHdoaWxlICggIWVxdWFs
cyggaXQsIHkgKSApCi0gICAgICBpbmNyZW1lbnQoIGl0ICk7Ci0gICByZXR1cm4gb2Zmc2V0Owot
fQotCi19IC8vIG5hbWVzcGFjZSBKc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9q
c29uX3JlYWRlci5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAKaW5kZXgg
MWYzODczYWQ5NTU2Nzk0ZjMxZWNhODBhNGUxYzJjYzI5ZWZlOGI3ZC4uMDA1YWIyNjg5MjdiZjVl
ODhmMzBlMDc2ZmMzOTZkZjM1MTFiZjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24v
anNvbl9yZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcApA
QCAtMSw5MTggKzEsMjAxNyBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBp
bGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUg
SnNvbkNwcCBBdXRob3JzCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgSW5mb1RlQ1MgSlNDLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1
YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2Rp
Y3Rpb24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCiAjaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgotIyBpbmNsdWRlIDxq
c29uL3JlYWRlci5oPgotIyBpbmNsdWRlIDxqc29uL3ZhbHVlLmg+Ci0jIGluY2x1ZGUgImpzb25f
dG9vbC5oIgorI2luY2x1ZGUgImpzb25fdG9vbC5oIgorI2luY2x1ZGUgPGpzb24vYXNzZXJ0aW9u
cy5oPgorI2luY2x1ZGUgPGpzb24vcmVhZGVyLmg+CisjaW5jbHVkZSA8anNvbi92YWx1ZS5oPgog
I2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPHV0
aWxpdHk+Ci0jaW5jbHVkZSA8Y3N0ZGlvPgogI2luY2x1ZGUgPGNhc3NlcnQ+CiAjaW5jbHVkZSA8
Y3N0cmluZz4KLSNpbmNsdWRlIDxzdGRleGNlcHQ+CisjaW5jbHVkZSA8aXN0cmVhbT4KKyNpbmNs
dWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRl
IDxzc3RyZWFtPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKKyNpbmNsdWRlIDxjc3RkaW8+CisjaWYg
X19jcGx1c3BsdXMgPj0gMjAxMTAzTAogCi0jaWYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDgu
MAotI3ByYWdtYSB3YXJuaW5nKCBkaXNhYmxlIDogNDk5NiApICAgLy8gZGlzYWJsZSB3YXJuaW5n
IGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgorI2lmICFkZWZpbmVkKHNzY2FuZikKKyNk
ZWZpbmUgc3NjYW5mIHN0ZDo6c3NjYW5mCiAjZW5kaWYKIAorI2VuZGlmIC8vX19jcGx1c3BsdXMK
KworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWYgIWRlZmluZWQoX0NSVF9TRUNVUkVfQ1BQX09W
RVJMT0FEX1NUQU5EQVJEX05BTUVTKQorI2RlZmluZSBfQ1JUX1NFQ1VSRV9DUFBfT1ZFUkxPQURf
U1RBTkRBUkRfTkFNRVMgMQorI2VuZGlmIC8vX0NSVF9TRUNVUkVfQ1BQX09WRVJMT0FEX1NUQU5E
QVJEX05BTUVTCisjZW5kaWYgLy9fTVNDX1ZFUgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKy8v
IERpc2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KKyNwcmFnbWEg
d2FybmluZyhkaXNhYmxlIDogNDk5NikKKyNlbmRpZgorCisvLyBEZWZpbmUgSlNPTkNQUF9ERVBS
RUNBVEVEX1NUQUNLX0xJTUlUIGFzIGFuIGFwcHJvcHJpYXRlIGludGVnZXIgYXQgY29tcGlsZQor
Ly8gdGltZSB0byBjaGFuZ2UgdGhlIHN0YWNrIGxpbWl0CisjaWYgIWRlZmluZWQoSlNPTkNQUF9E
RVBSRUNBVEVEX1NUQUNLX0xJTUlUKQorI2RlZmluZSBKU09OQ1BQX0RFUFJFQ0FURURfU1RBQ0tf
TElNSVQgMTAwMAorI2VuZGlmCisKK3N0YXRpYyBzaXplX3QgY29uc3Qgc3RhY2tMaW1pdF9nID0K
KyAgICBKU09OQ1BQX0RFUFJFQ0FURURfU1RBQ0tfTElNSVQ7IC8vIHNlZSByZWFkVmFsdWUoKQor
CiBuYW1lc3BhY2UgSnNvbiB7CiAKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChkZWZp
bmVkKF9DUFBMSUJfVkVSKSAmJiBfQ1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6dW5p
cXVlX3B0cjxDaGFyUmVhZGVyPiBDaGFyUmVhZGVyUHRyOworI2Vsc2UKK3R5cGVkZWYgc3RkOjph
dXRvX3B0cjxDaGFyUmVhZGVyPiBDaGFyUmVhZGVyUHRyOworI2VuZGlmCisKIC8vIEltcGxlbWVu
dGF0aW9uIG9mIGNsYXNzIEZlYXR1cmVzCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCi1GZWF0dXJlczo6RmVhdHVyZXMoKQotICAgOiBhbGxvd0NvbW1lbnRzXyggdHJ1ZSAp
Ci0gICAsIHN0cmljdFJvb3RfKCBmYWxzZSApCi17Ci19CitGZWF0dXJlczo6RmVhdHVyZXMoKSA9
IGRlZmF1bHQ7CiAKK0ZlYXR1cmVzIEZlYXR1cmVzOjphbGwoKSB7IHJldHVybiB7fTsgfQogCi1G
ZWF0dXJlcyAKLUZlYXR1cmVzOjphbGwoKQotewotICAgcmV0dXJuIEZlYXR1cmVzKCk7CitGZWF0
dXJlcyBGZWF0dXJlczo6c3RyaWN0TW9kZSgpIHsKKyAgRmVhdHVyZXMgZmVhdHVyZXM7CisgIGZl
YXR1cmVzLmFsbG93Q29tbWVudHNfID0gZmFsc2U7CisgIGZlYXR1cmVzLnN0cmljdFJvb3RfID0g
dHJ1ZTsKKyAgZmVhdHVyZXMuYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18gPSBmYWxzZTsK
KyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBmYWxzZTsKKyAgcmV0dXJuIGZlYXR1cmVz
OwogfQogCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLUZlYXR1cmVzIAotRmVhdHVyZXM6OnN0cmljdE1vZGUo
KQotewotICAgRmVhdHVyZXMgZmVhdHVyZXM7Ci0gICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9
IGZhbHNlOwotICAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSB0cnVlOwotICAgcmV0dXJuIGZlYXR1
cmVzOworYm9vbCBSZWFkZXI6OmNvbnRhaW5zTmV3TGluZShSZWFkZXI6OkxvY2F0aW9uIGJlZ2lu
LCBSZWFkZXI6OkxvY2F0aW9uIGVuZCkgeworICBmb3IgKDsgYmVnaW4gPCBlbmQ7ICsrYmVnaW4p
CisgICAgaWYgKCpiZWdpbiA9PSAnXG4nIHx8ICpiZWdpbiA9PSAnXHInKQorICAgICAgcmV0dXJu
IHRydWU7CisgIHJldHVybiBmYWxzZTsKIH0KIAotLy8gSW1wbGVtZW50YXRpb24gb2YgY2xhc3Mg
UmVhZGVyCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQ2xhc3MgUmVh
ZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KIAorUmVhZGVyOjpSZWFkZXIoKQorICAgIDogZXJyb3JzXygpLCBk
b2N1bWVudF8oKSwgY29tbWVudHNCZWZvcmVfKCksIGZlYXR1cmVzXyhGZWF0dXJlczo6YWxsKCkp
IHt9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCAKLWluKCBSZWFkZXI6OkNoYXIgYywgUmVhZGVyOjpD
aGFyIGMxLCBSZWFkZXI6OkNoYXIgYzIsIFJlYWRlcjo6Q2hhciBjMywgUmVhZGVyOjpDaGFyIGM0
ICkKLXsKLSAgIHJldHVybiBjID09IGMxICB8fCAgYyA9PSBjMiAgfHwgIGMgPT0gYzMgIHx8ICBj
ID09IGM0OworUmVhZGVyOjpSZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKQorICAgIDog
ZXJyb3JzXygpLCBkb2N1bWVudF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwgbGFz
dFZhbHVlRW5kXygpLAorICAgICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwgZmVh
dHVyZXNfKGZlYXR1cmVzKSwgY29sbGVjdENvbW1lbnRzXygpIHsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIAotaW4oIFJlYWRlcjo6Q2hhciBjLCBSZWFkZXI6OkNoYXIgYzEsIFJlYWRlcjo6Q2hh
ciBjMiwgUmVhZGVyOjpDaGFyIGMzLCBSZWFkZXI6OkNoYXIgYzQsIFJlYWRlcjo6Q2hhciBjNSAp
Ci17Ci0gICByZXR1cm4gYyA9PSBjMSAgfHwgIGMgPT0gYzIgIHx8ICBjID09IGMzICB8fCAgYyA9
PSBjNCAgfHwgIGMgPT0gYzU7Citib29sIFJlYWRlcjo6cGFyc2UoY29uc3Qgc3RkOjpzdHJpbmcm
IGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAg
ICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7CisgIGRvY3VtZW50Xy5hc3NpZ24oZG9jdW1l
bnQuYmVnaW4oKSwgZG9jdW1lbnQuZW5kKCkpOworICBjb25zdCBjaGFyKiBiZWdpbiA9IGRvY3Vt
ZW50Xy5jX3N0cigpOworICBjb25zdCBjaGFyKiBlbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5n
dGgoKTsKKyAgcmV0dXJuIHBhcnNlKGJlZ2luLCBlbmQsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7
CiB9CiAKK2Jvb2wgUmVhZGVyOjpwYXJzZShzdGQ6OmlzdHJlYW0mIGlzLCBWYWx1ZSYgcm9vdCwg
Ym9vbCBjb2xsZWN0Q29tbWVudHMpIHsKKyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+
IGJlZ2luKGlzKTsKKyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGVuZDsKKyAgLy8g
VGhvc2Ugd291bGQgYWxsb3cgc3RyZWFtZWQgaW5wdXQgZnJvbSBhIGZpbGUsIGlmIHBhcnNlKCkg
d2VyZSBhCisgIC8vIHRlbXBsYXRlIGZ1bmN0aW9uLgorCisgIC8vIFNpbmNlIFN0cmluZyBpcyBy
ZWZlcmVuY2UtY291bnRlZCwgdGhpcyBhdCBsZWFzdCBkb2VzIG5vdAorICAvLyBjcmVhdGUgYW4g
ZXh0cmEgY29weS4KKyAgU3RyaW5nIGRvYzsKKyAgc3RkOjpnZXRsaW5lKGlzLCBkb2MsIChjaGFy
KUVPRik7CisgIHJldHVybiBwYXJzZShkb2MuZGF0YSgpLCBkb2MuZGF0YSgpICsgZG9jLnNpemUo
KSwgcm9vdCwgY29sbGVjdENvbW1lbnRzKTsKK30KIAotc3RhdGljIGJvb2wgCi1jb250YWluc05l
d0xpbmUoIFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIAotICAgICAgICAgICAgICAgICBSZWFkZXI6
OkxvY2F0aW9uIGVuZCApCi17Ci0gICBmb3IgKCA7YmVnaW4gPCBlbmQ7ICsrYmVnaW4gKQotICAg
ICAgaWYgKCAqYmVnaW4gPT0gJ1xuJyAgfHwgICpiZWdpbiA9PSAnXHInICkKLSAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgcmV0dXJuIGZhbHNlOworYm9vbCBSZWFkZXI6OnBhcnNlKGNvbnN0IGNo
YXIqIGJlZ2luRG9jLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAg
ICAgICAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICAgICAgICBib29sIGNv
bGxlY3RDb21tZW50cykgeworICBpZiAoIWZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAg
IGNvbGxlY3RDb21tZW50cyA9IGZhbHNlOworICB9CisKKyAgYmVnaW5fID0gYmVnaW5Eb2M7Cisg
IGVuZF8gPSBlbmREb2M7CisgIGNvbGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7Cisg
IGN1cnJlbnRfID0gYmVnaW5fOworICBsYXN0VmFsdWVFbmRfID0gbnVsbHB0cjsKKyAgbGFzdFZh
bHVlXyA9IG51bGxwdHI7CisgIGNvbW1lbnRzQmVmb3JlXy5jbGVhcigpOworICBlcnJvcnNfLmNs
ZWFyKCk7CisgIHdoaWxlICghbm9kZXNfLmVtcHR5KCkpCisgICAgbm9kZXNfLnBvcCgpOworICBu
b2Rlc18ucHVzaCgmcm9vdCk7CisKKyAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7Cisg
IFRva2VuIHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGlmIChjb2xsZWN0
Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkKKyAgICByb290LnNldENvbW1l
bnQoY29tbWVudHNCZWZvcmVfLCBjb21tZW50QWZ0ZXIpOworICBpZiAoZmVhdHVyZXNfLnN0cmlj
dFJvb3RfKSB7CisgICAgaWYgKCFyb290LmlzQXJyYXkoKSAmJiAhcm9vdC5pc09iamVjdCgpKSB7
CisgICAgICAvLyBTZXQgZXJyb3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNo
b3VsZCBiZSBmaXJzdCB0b2tlbiBmb3VuZAorICAgICAgLy8gaW4gZG9jCisgICAgICB0b2tlbi50
eXBlXyA9IHRva2VuRXJyb3I7CisgICAgICB0b2tlbi5zdGFydF8gPSBiZWdpbkRvYzsKKyAgICAg
IHRva2VuLmVuZF8gPSBlbmREb2M7CisgICAgICBhZGRFcnJvcigKKyAgICAgICAgICAiQSB2YWxp
ZCBKU09OIGRvY3VtZW50IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1
ZS4iLAorICAgICAgICAgIHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuIHN1Y2Nlc3NmdWw7CiB9CiAKK2Jvb2wgUmVhZGVyOjpyZWFkVmFsdWUoKSB7Cisg
IC8vIHJlYWRWYWx1ZSgpIG1heSBjYWxsIGl0c2VsZiBvbmx5IGlmIGl0IGNhbGxzIHJlYWRPYmpl
Y3QoKSBvciBSZWFkQXJyYXkoKS4KKyAgLy8gVGhlc2UgbWV0aG9kcyBleGVjdXRlIG5vZGVzXy5w
dXNoKCkganVzdCBiZWZvcmUgYW5kIG5vZGVzXy5wb3ApKCkganVzdAorICAvLyBhZnRlciBjYWxs
aW5nIHJlYWRWYWx1ZSgpLiBwYXJzZSgpIGV4ZWN1dGVzIG9uZSBub2Rlc18ucHVzaCgpLCBzbyA+
IGluc3RlYWQKKyAgLy8gb2YgPj0uCisgIGlmIChub2Rlc18uc2l6ZSgpID4gc3RhY2tMaW1pdF9n
KQorICAgIHRocm93UnVudGltZUVycm9yKCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1
ZSgpLiIpOworCisgIFRva2VuIHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7Cisg
IGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNv
bW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7CisgICAgY3VycmVudFZhbHVlKCkuc2V0Q29tbWVudChj
b21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOworICAgIGNvbW1lbnRzQmVmb3JlXy5jbGVh
cigpOworICB9CisKKyAgc3dpdGNoICh0b2tlbi50eXBlXykgeworICBjYXNlIHRva2VuT2JqZWN0
QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QodG9rZW4pOworICAgIGN1cnJlbnRW
YWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsKKyAg
Y2FzZSB0b2tlbkFycmF5QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRBcnJheSh0b2tlbik7
CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOwor
ICAgIGJyZWFrOworICBjYXNlIHRva2VuTnVtYmVyOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVO
dW1iZXIodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuU3RyaW5nOgorICAgIHN1Y2Nl
c3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuVHJ1
ZTogeworICAgIFZhbHVlIHYodHJ1ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
dik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbkZhbHNlOiB7CisgICAgVmFsdWUgdihmYWxz
ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAg
Y2FzZSB0b2tlbk51bGw6IHsKKyAgICBWYWx1ZSB2OworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQ
YXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0
XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5k
XyAtIGJlZ2luXyk7CisgIH0gYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJheVNlcGFyYXRvcjoKKyAg
Y2FzZSB0b2tlbk9iamVjdEVuZDoKKyAgY2FzZSB0b2tlbkFycmF5RW5kOgorICAgIGlmIChmZWF0
dXJlc18uYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18pIHsKKyAgICAgIC8vICJVbi1yZWFk
IiB0aGUgY3VycmVudCB0b2tlbiBhbmQgbWFyayB0aGUgY3VycmVudCB2YWx1ZSBhcyBhIG51bGwK
KyAgICAgIC8vIHRva2VuLgorICAgICAgY3VycmVudF8tLTsKKyAgICAgIFZhbHVlIHY7CisgICAg
ICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldFN0YXJ0KGN1cnJlbnRfIC0gYmVnaW5fIC0gMSk7CisgICAgICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgICBicmVhazsKKyAgICB9
IC8vIEVsc2UsIGZhbGwgdGhyb3VnaC4uLgorICBkZWZhdWx0OgorICAgIGN1cnJlbnRWYWx1ZSgp
LnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgcmV0dXJuIGFkZEVy
cm9yKCJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3IgYXJyYXkgZXhwZWN0ZWQuIiwgdG9r
ZW4pOworICB9CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBsYXN0VmFsdWVFbmRf
ID0gY3VycmVudF87CisgICAgbGFzdFZhbHVlXyA9ICZjdXJyZW50VmFsdWUoKTsKKyAgfQorCisg
IHJldHVybiBzdWNjZXNzZnVsOworfQogCi0vLyBDbGFzcyBSZWFkZXIKLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
dm9pZCBSZWFkZXI6OnNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVh
dHVyZXNfLmFsbG93Q29tbWVudHNfKSB7CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2Vu
KTsKKyAgICB9IHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2Ug
eworICAgIHJlYWRUb2tlbih0b2tlbik7CisgIH0KK30KIAotUmVhZGVyOjpSZWFkZXIoKQotICAg
IDogZXJyb3JzXygpLAotICAgICAgZG9jdW1lbnRfKCksCi0gICAgICBiZWdpbl8oKSwKLSAgICAg
IGVuZF8oKSwKLSAgICAgIGN1cnJlbnRfKCksCi0gICAgICBsYXN0VmFsdWVFbmRfKCksCi0gICAg
ICBsYXN0VmFsdWVfKCksCi0gICAgICBjb21tZW50c0JlZm9yZV8oKSwKLSAgICAgIGZlYXR1cmVz
XyggRmVhdHVyZXM6OmFsbCgpICksCi0gICAgICBjb2xsZWN0Q29tbWVudHNfKCkKLXsKLX0KLQot
Ci1SZWFkZXI6OlJlYWRlciggY29uc3QgRmVhdHVyZXMgJmZlYXR1cmVzICkKLSAgICA6IGVycm9y
c18oKSwKLSAgICAgIGRvY3VtZW50XygpLAotICAgICAgYmVnaW5fKCksCi0gICAgICBlbmRfKCks
Ci0gICAgICBjdXJyZW50XygpLAotICAgICAgbGFzdFZhbHVlRW5kXygpLAotICAgICAgbGFzdFZh
bHVlXygpLAotICAgICAgY29tbWVudHNCZWZvcmVfKCksCi0gICAgICBmZWF0dXJlc18oIGZlYXR1
cmVzICksCi0gICAgICBjb2xsZWN0Q29tbWVudHNfKCkKLXsKLX0KLQotCi1ib29sCi1SZWFkZXI6
OnBhcnNlKCBjb25zdCBzdGQ6OnN0cmluZyAmZG9jdW1lbnQsIAotICAgICAgICAgICAgICAgVmFs
dWUgJnJvb3QsCi0gICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyApCi17Ci0gICBk
b2N1bWVudF8gPSBkb2N1bWVudDsKLSAgIGNvbnN0IGNoYXIgKmJlZ2luID0gZG9jdW1lbnRfLmNf
c3RyKCk7Ci0gICBjb25zdCBjaGFyICplbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5ndGgoKTsK
LSAgIHJldHVybiBwYXJzZSggYmVnaW4sIGVuZCwgcm9vdCwgY29sbGVjdENvbW1lbnRzICk7Ci19
Ci0KLQotYm9vbAotUmVhZGVyOjpwYXJzZSggc3RkOjppc3RyZWFtJiBzaW4sCi0gICAgICAgICAg
ICAgICBWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzICkK
LXsKLSAgIC8vc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGJlZ2luKHNpbik7Ci0gICAvL3N0
ZDo6aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBlbmQ7Ci0gICAvLyBUaG9zZSB3b3VsZCBhbGxvdyBz
dHJlYW1lZCBpbnB1dCBmcm9tIGEgZmlsZSwgaWYgcGFyc2UoKSB3ZXJlIGEKLSAgIC8vIHRlbXBs
YXRlIGZ1bmN0aW9uLgotCi0gICAvLyBTaW5jZSBzdGQ6OnN0cmluZyBpcyByZWZlcmVuY2UtY291
bnRlZCwgdGhpcyBhdCBsZWFzdCBkb2VzIG5vdAotICAgLy8gY3JlYXRlIGFuIGV4dHJhIGNvcHku
Ci0gICBzdGQ6OnN0cmluZyBkb2M7Ci0gICBzdGQ6OmdldGxpbmUoc2luLCBkb2MsIChjaGFyKUVP
Rik7Ci0gICByZXR1cm4gcGFyc2UoIGRvYywgcm9vdCwgY29sbGVjdENvbW1lbnRzICk7Ci19Ci0K
LWJvb2wgCi1SZWFkZXI6OnBhcnNlKCBjb25zdCBjaGFyICpiZWdpbkRvYywgY29uc3QgY2hhciAq
ZW5kRG9jLCAKLSAgICAgICAgICAgICAgIFZhbHVlICZyb290LAotICAgICAgICAgICAgICAgYm9v
bCBjb2xsZWN0Q29tbWVudHMgKQotewotICAgaWYgKCAhZmVhdHVyZXNfLmFsbG93Q29tbWVudHNf
ICkKLSAgIHsKLSAgICAgIGNvbGxlY3RDb21tZW50cyA9IGZhbHNlOwotICAgfQotCi0gICBiZWdp
bl8gPSBiZWdpbkRvYzsKLSAgIGVuZF8gPSBlbmREb2M7Ci0gICBjb2xsZWN0Q29tbWVudHNfID0g
Y29sbGVjdENvbW1lbnRzOwotICAgY3VycmVudF8gPSBiZWdpbl87Ci0gICBsYXN0VmFsdWVFbmRf
ID0gMDsKLSAgIGxhc3RWYWx1ZV8gPSAwOwotICAgY29tbWVudHNCZWZvcmVfID0gIiI7Ci0gICBl
cnJvcnNfLmNsZWFyKCk7Ci0gICB3aGlsZSAoICFub2Rlc18uZW1wdHkoKSApCi0gICAgICBub2Rl
c18ucG9wKCk7Ci0gICBub2Rlc18ucHVzaCggJnJvb3QgKTsKLSAgIAotICAgYm9vbCBzdWNjZXNz
ZnVsID0gcmVhZFZhbHVlKCk7Ci0gICBUb2tlbiB0b2tlbjsKLSAgIHNraXBDb21tZW50VG9rZW5z
KCB0b2tlbiApOwotICAgaWYgKCBjb2xsZWN0Q29tbWVudHNfICAmJiAgIWNvbW1lbnRzQmVmb3Jl
Xy5lbXB0eSgpICkKLSAgICAgIHJvb3Quc2V0Q29tbWVudCggY29tbWVudHNCZWZvcmVfLCBjb21t
ZW50QWZ0ZXIgKTsKLSAgIGlmICggZmVhdHVyZXNfLnN0cmljdFJvb3RfICkKLSAgIHsKLSAgICAg
IGlmICggIXJvb3QuaXNBcnJheSgpICAmJiAgIXJvb3QuaXNPYmplY3QoKSApCi0gICAgICB7Ci0g
ICAgICAgICAvLyBTZXQgZXJyb3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNo
b3VsZCBiZSBmaXJzdCB0b2tlbiBmb3VuZCBpbiBkb2MKLSAgICAgICAgIHRva2VuLnR5cGVfID0g
dG9rZW5FcnJvcjsKLSAgICAgICAgIHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9jOwotICAgICAgICAg
dG9rZW4uZW5kXyA9IGVuZERvYzsKLSAgICAgICAgIGFkZEVycm9yKCAiQSB2YWxpZCBKU09OIGRv
Y3VtZW50IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4iLAotICAg
ICAgICAgICAgICAgICAgIHRva2VuICk7Ci0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9
Ci0gICB9Ci0gICByZXR1cm4gc3VjY2Vzc2Z1bDsKK2Jvb2wgUmVhZGVyOjpyZWFkVG9rZW4oVG9r
ZW4mIHRva2VuKSB7CisgIHNraXBTcGFjZXMoKTsKKyAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87
CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wgb2sgPSB0cnVlOworICBzd2l0Y2gg
KGMpIHsKKyAgY2FzZSAneyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOwor
ICAgIGJyZWFrOworICBjYXNlICd9JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0RW5k
OworICAgIGJyZWFrOworICBjYXNlICdbJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlC
ZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnXSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFy
cmF5RW5kOworICAgIGJyZWFrOworICBjYXNlICciJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2Vu
U3RyaW5nOworICAgIG9rID0gcmVhZFN0cmluZygpOworICAgIGJyZWFrOworICBjYXNlICcvJzoK
KyAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVudDsKKyAgICBvayA9IHJlYWRDb21tZW50KCk7
CisgICAgYnJlYWs7CisgIGNhc2UgJzAnOgorICBjYXNlICcxJzoKKyAgY2FzZSAnMic6CisgIGNh
c2UgJzMnOgorICBjYXNlICc0JzoKKyAgY2FzZSAnNSc6CisgIGNhc2UgJzYnOgorICBjYXNlICc3
JzoKKyAgY2FzZSAnOCc6CisgIGNhc2UgJzknOgorICBjYXNlICctJzoKKyAgICB0b2tlbi50eXBl
XyA9IHRva2VuTnVtYmVyOworICAgIHJlYWROdW1iZXIoKTsKKyAgICBicmVhazsKKyAgY2FzZSAn
dCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblRydWU7CisgICAgb2sgPSBtYXRjaCgicnVlIiwg
Myk7CisgICAgYnJlYWs7CisgIGNhc2UgJ2YnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxz
ZTsKKyAgICBvayA9IG1hdGNoKCJhbHNlIiwgNCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ24nOgor
ICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdWxsOworICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOwor
ICAgIGJyZWFrOworICBjYXNlICcsJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBh
cmF0b3I7CisgICAgYnJlYWs7CisgIGNhc2UgJzonOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5N
ZW1iZXJTZXBhcmF0b3I7CisgICAgYnJlYWs7CisgIGNhc2UgMDoKKyAgICB0b2tlbi50eXBlXyA9
IHRva2VuRW5kT2ZTdHJlYW07CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgb2sgPSBmYWxz
ZTsKKyAgICBicmVhazsKKyAgfQorICBpZiAoIW9rKQorICAgIHRva2VuLnR5cGVfID0gdG9rZW5F
cnJvcjsKKyAgdG9rZW4uZW5kXyA9IGN1cnJlbnRfOworICByZXR1cm4gdHJ1ZTsKIH0KIAordm9p
ZCBSZWFkZXI6OnNraXBTcGFjZXMoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Cisg
ICAgQ2hhciBjID0gKmN1cnJlbnRfOworICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwg
YyA9PSAnXHInIHx8IGMgPT0gJ1xuJykKKyAgICAgICsrY3VycmVudF87CisgICAgZWxzZQorICAg
ICAgYnJlYWs7CisgIH0KK30KIAotYm9vbAotUmVhZGVyOjpyZWFkVmFsdWUoKQotewotICAgVG9r
ZW4gdG9rZW47Ci0gICBza2lwQ29tbWVudFRva2VucyggdG9rZW4gKTsKLSAgIGJvb2wgc3VjY2Vz
c2Z1bCA9IHRydWU7Citib29sIFJlYWRlcjo6bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBh
dHRlcm5MZW5ndGgpIHsKKyAgaWYgKGVuZF8gLSBjdXJyZW50XyA8IHBhdHRlcm5MZW5ndGgpCisg
ICAgcmV0dXJuIGZhbHNlOworICBpbnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3RoOworICB3aGlsZSAo
aW5kZXgtLSkKKyAgICBpZiAoY3VycmVudF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhdKQorICAg
ICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50XyArPSBwYXR0ZXJuTGVuZ3RoOworICByZXR1cm4g
dHJ1ZTsKK30KIAotICAgaWYgKCBjb2xsZWN0Q29tbWVudHNfICAmJiAgIWNvbW1lbnRzQmVmb3Jl
Xy5lbXB0eSgpICkKLSAgIHsKLSAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldENvbW1lbnQoIGNvbW1l
bnRzQmVmb3JlXywgY29tbWVudEJlZm9yZSApOwotICAgICAgY29tbWVudHNCZWZvcmVfID0gIiI7
Ci0gICB9Citib29sIFJlYWRlcjo6cmVhZENvbW1lbnQoKSB7CisgIExvY2F0aW9uIGNvbW1lbnRC
ZWdpbiA9IGN1cnJlbnRfIC0gMTsKKyAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBz
dWNjZXNzZnVsID0gZmFsc2U7CisgIGlmIChjID09ICcqJykKKyAgICBzdWNjZXNzZnVsID0gcmVh
ZENTdHlsZUNvbW1lbnQoKTsKKyAgZWxzZSBpZiAoYyA9PSAnLycpCisgICAgc3VjY2Vzc2Z1bCA9
IHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgaWYgKCFzdWNjZXNzZnVsKQorICAgIHJldHVybiBm
YWxzZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXykgeworICAgIENvbW1lbnRQbGFjZW1lbnQg
cGxhY2VtZW50ID0gY29tbWVudEJlZm9yZTsKKyAgICBpZiAobGFzdFZhbHVlRW5kXyAmJiAhY29u
dGFpbnNOZXdMaW5lKGxhc3RWYWx1ZUVuZF8sIGNvbW1lbnRCZWdpbikpIHsKKyAgICAgIGlmIChj
ICE9ICcqJyB8fCAhY29udGFpbnNOZXdMaW5lKGNvbW1lbnRCZWdpbiwgY3VycmVudF8pKQorICAg
ICAgICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lOworICAgIH0KIAorICAgIGFk
ZENvbW1lbnQoY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50KTsKKyAgfQorICByZXR1
cm4gdHJ1ZTsKK30KIAotICAgc3dpdGNoICggdG9rZW4udHlwZV8gKQotICAgewotICAgY2FzZSB0
b2tlbk9iamVjdEJlZ2luOgotICAgICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QoIHRva2VuICk7
Ci0gICAgICBicmVhazsKLSAgIGNhc2UgdG9rZW5BcnJheUJlZ2luOgotICAgICAgc3VjY2Vzc2Z1
bCA9IHJlYWRBcnJheSggdG9rZW4gKTsKK1N0cmluZyBSZWFkZXI6Om5vcm1hbGl6ZUVPTChSZWFk
ZXI6OkxvY2F0aW9uIGJlZ2luLCBSZWFkZXI6OkxvY2F0aW9uIGVuZCkgeworICBTdHJpbmcgbm9y
bWFsaXplZDsKKyAgbm9ybWFsaXplZC5yZXNlcnZlKHN0YXRpY19jYXN0PHNpemVfdD4oZW5kIC0g
YmVnaW4pKTsKKyAgUmVhZGVyOjpMb2NhdGlvbiBjdXJyZW50ID0gYmVnaW47CisgIHdoaWxlIChj
dXJyZW50ICE9IGVuZCkgeworICAgIGNoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0g
J1xyJykgeworICAgICAgaWYgKGN1cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID09ICdcbicpCisg
ICAgICAgIC8vIGNvbnZlcnQgZG9zIEVPTAorICAgICAgICArK2N1cnJlbnQ7CisgICAgICAvLyBj
b252ZXJ0IE1hYyBFT0wKKyAgICAgIG5vcm1hbGl6ZWQgKz0gJ1xuJzsKKyAgICB9IGVsc2Ugewor
ICAgICAgbm9ybWFsaXplZCArPSBjOworICAgIH0KKyAgfQorICByZXR1cm4gbm9ybWFsaXplZDsK
K30KKwordm9pZCBSZWFkZXI6OmFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICBDb21t
ZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBhc3NlcnQoY29sbGVjdENvbW1lbnRzXyk7Cisg
IGNvbnN0IFN0cmluZyYgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUVPTChiZWdpbiwgZW5kKTsKKyAg
aWYgKHBsYWNlbWVudCA9PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB7CisgICAgYXNzZXJ0KGxh
c3RWYWx1ZV8gIT0gbnVsbHB0cik7CisgICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVudChub3JtYWxp
emVkLCBwbGFjZW1lbnQpOworICB9IGVsc2UgeworICAgIGNvbW1lbnRzQmVmb3JlXyArPSBub3Jt
YWxpemVkOworICB9Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCgpIHsKKyAg
d2hpbGUgKChjdXJyZW50XyArIDEpIDwgZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFy
KCk7CisgICAgaWYgKGMgPT0gJyonICYmICpjdXJyZW50XyA9PSAnLycpCiAgICAgICBicmVhazsK
LSAgIGNhc2UgdG9rZW5OdW1iZXI6Ci0gICAgICBzdWNjZXNzZnVsID0gZGVjb2RlTnVtYmVyKCB0
b2tlbiApOworICB9CisgIHJldHVybiBnZXROZXh0Q2hhcigpID09ICcvJzsKK30KKworYm9vbCBS
ZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRf
KSB7CisgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXG4nKQogICAg
ICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuU3RyaW5nOgotICAgICAgc3VjY2Vzc2Z1bCA9IGRlY29k
ZVN0cmluZyggdG9rZW4gKTsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAgICAvLyBDb25zdW1l
IERPUyBFT0wuIEl0IHdpbGwgYmUgbm9ybWFsaXplZCBpbiBhZGRDb21tZW50LgorICAgICAgaWYg
KGN1cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09ICdcbicpCisgICAgICAgIGdldE5leHRD
aGFyKCk7CisgICAgICAvLyBCcmVhayBvbiBNb2MgT1MgOSBFT0wuCiAgICAgICBicmVhazsKLSAg
IGNhc2UgdG9rZW5UcnVlOgotICAgICAgY3VycmVudFZhbHVlKCkgPSB0cnVlOworICAgIH0KKyAg
fQorICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZWFkZXI6OnJlYWROdW1iZXIoKSB7CisgIGNv
bnN0IGNoYXIqIHAgPSBjdXJyZW50XzsKKyAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBh
bHJlYWR5IGNvbnN1bWVkIGNoYXJhY3RlcgorICAvLyBpbnRlZ3JhbCBwYXJ0CisgIHdoaWxlIChj
ID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnAr
KyA6ICdcMCc7CisgIC8vIGZyYWN0aW9uYWwgcGFydAorICBpZiAoYyA9PSAnLicpIHsKKyAgICBj
ID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgICAgd2hpbGUgKGMgPj0g
JzAnICYmIGMgPD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysg
OiAnXDAnOworICB9CisgIC8vIGV4cG9uZW50aWFsIHBhcnQKKyAgaWYgKGMgPT0gJ2UnIHx8IGMg
PT0gJ0UnKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAnXDAnOwor
ICAgIGlmIChjID09ICcrJyB8fCBjID09ICctJykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8
IGVuZF8gPyAqcCsrIDogJ1wwJzsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisg
ICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIH0KK30KKwor
Ym9vbCBSZWFkZXI6OnJlYWRTdHJpbmcoKSB7CisgIENoYXIgYyA9ICdcMCc7CisgIHdoaWxlIChj
dXJyZW50XyAhPSBlbmRfKSB7CisgICAgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0g
J1xcJykKKyAgICAgIGdldE5leHRDaGFyKCk7CisgICAgZWxzZSBpZiAoYyA9PSAnIicpCiAgICAg
ICBicmVhazsKLSAgIGNhc2UgdG9rZW5GYWxzZToKLSAgICAgIGN1cnJlbnRWYWx1ZSgpID0gZmFs
c2U7CisgIH0KKyAgcmV0dXJuIGMgPT0gJyInOworfQorCitib29sIFJlYWRlcjo6cmVhZE9iamVj
dChUb2tlbiYgdG9rZW4pIHsKKyAgVG9rZW4gdG9rZW5OYW1lOworICBTdHJpbmcgbmFtZTsKKyAg
VmFsdWUgaW5pdChvYmplY3RWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGlu
aXQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdp
bl8pOworICB3aGlsZSAocmVhZFRva2VuKHRva2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxU
b2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVu
dCAmJiBpbml0aWFsVG9rZW5PaykKKyAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRv
a2VuTmFtZSk7CisgICAgaWYgKCFpbml0aWFsVG9rZW5PaykKICAgICAgIGJyZWFrOwotICAgY2Fz
ZSB0b2tlbk51bGw6Ci0gICAgICBjdXJyZW50VmFsdWUoKSA9IFZhbHVlKCk7CisgICAgaWYgKHRv
a2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBuYW1lLmVtcHR5KCkpIC8vIGVtcHR5
IG9iamVjdAorICAgICAgcmV0dXJuIHRydWU7CisgICAgbmFtZS5jbGVhcigpOworICAgIGlmICh0
b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKKyAgICAgIGlmICghZGVjb2RlU3RyaW5n
KHRva2VuTmFtZSwgbmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2Vu
T2JqZWN0RW5kKTsKKyAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk51bWJl
ciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKKyAgICAgIFZhbHVlIG51bWJlck5h
bWU7CisgICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUsIG51bWJlck5hbWUpKQorICAg
ICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgICBuYW1l
ID0gU3RyaW5nKG51bWJlck5hbWUuYXNDU3RyaW5nKCkpOworICAgIH0gZWxzZSB7CiAgICAgICBi
cmVhazsKLSAgIGRlZmF1bHQ6Ci0gICAgICByZXR1cm4gYWRkRXJyb3IoICJTeW50YXggZXJyb3I6
IHZhbHVlLCBvYmplY3Qgb3IgYXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4gKTsKLSAgIH0KKyAgICB9
CiAKLSAgIGlmICggY29sbGVjdENvbW1lbnRzXyApCi0gICB7Ci0gICAgICBsYXN0VmFsdWVFbmRf
ID0gY3VycmVudF87Ci0gICAgICBsYXN0VmFsdWVfID0gJmN1cnJlbnRWYWx1ZSgpOwotICAgfQor
ICAgIFRva2VuIGNvbG9uOworICAgIGlmICghcmVhZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50eXBl
XyAhPSB0b2tlbk1lbWJlclNlcGFyYXRvcikgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVj
b3ZlcigiTWlzc2luZyAnOicgYWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgY29sb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAg
VmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbbmFtZV07CisgICAgbm9kZXNfLnB1c2goJnZh
bHVlKTsKKyAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAg
IGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21F
cnJvcih0b2tlbk9iamVjdEVuZCk7CisKKyAgICBUb2tlbiBjb21tYTsKKyAgICBpZiAoIXJlYWRU
b2tlbihjb21tYSkgfHwKKyAgICAgICAgKGNvbW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICYm
IGNvbW1hLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYKKyAgICAgICAgIGNvbW1hLnR5
cGVfICE9IHRva2VuQ29tbWVudCkpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIo
Ik1pc3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYSwgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBi
b29sIGZpbmFsaXplVG9rZW5PayA9IHRydWU7CisgICAgd2hpbGUgKGNvbW1hLnR5cGVfID09IHRv
a2VuQ29tbWVudCAmJiBmaW5hbGl6ZVRva2VuT2spCisgICAgICBmaW5hbGl6ZVRva2VuT2sgPSBy
ZWFkVG9rZW4oY29tbWEpOworICAgIGlmIChjb21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCkK
KyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoIk1p
c3NpbmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZSIsIHRva2VuTmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0b2tlbk9iamVjdEVuZCk7Cit9CiAKLSAgIHJldHVybiBzdWNjZXNz
ZnVsOworYm9vbCBSZWFkZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgaW5p
dChhcnJheVZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIHNr
aXBTcGFjZXMoKTsKKyAgaWYgKGN1cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09ICddJykg
Ly8gZW1wdHkgYXJyYXkKKyAgeworICAgIFRva2VuIGVuZEFycmF5OworICAgIHJlYWRUb2tlbihl
bmRBcnJheSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgaW50IGluZGV4ID0gMDsKKyAgZm9y
ICg7OykgeworICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOworICAg
IG5vZGVzXy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5v
ZGVzXy5wb3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0
dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7CisKKyAgICBUb2tlbiBjdXJyZW50
VG9rZW47CisgICAgLy8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJh
eS4KKyAgICBvayA9IHJlYWRUb2tlbihjdXJyZW50VG9rZW4pOworICAgIHdoaWxlIChjdXJyZW50
VG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIG9rKSB7CisgICAgICBvayA9IHJlYWRUb2tl
bihjdXJyZW50VG9rZW4pOworICAgIH0KKyAgICBib29sIGJhZFRva2VuVHlwZSA9IChjdXJyZW50
VG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgorICAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cnJlbnRUb2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKKyAgICBpZiAoIW9r
IHx8IGJhZFRva2VuVHlwZSkgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlz
c2luZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3VycmVudFRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9CisgICAg
aWYgKGN1cnJlbnRUb2tlbi50eXBlXyA9PSB0b2tlbkFycmF5RW5kKQorICAgICAgYnJlYWs7Cisg
IH0KKyAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4m
IHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7CisgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuLCBk
ZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2Fk
KGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8g
LSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0g
YmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CiAKLXZvaWQgCi1SZWFkZXI6OnNraXBDb21tZW50
VG9rZW5zKCBUb2tlbiAmdG9rZW4gKQotewotICAgaWYgKCBmZWF0dXJlc18uYWxsb3dDb21tZW50
c18gKQotICAgewotICAgICAgZG8KLSAgICAgIHsKLSAgICAgICAgIHJlYWRUb2tlbiggdG9rZW4g
KTsKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2Rl
ZCkgeworICAvLyBBdHRlbXB0cyB0byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFuIGludGVnZXIuIElm
IHRoZSBudW1iZXIgaXMKKyAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZh
bHVlIG9mIGFuIGludGVnZXIgdGhlbgorICAvLyB3ZSBkZWNvZGUgdGhlIG51bWJlciBhcyBhIGRv
dWJsZS4KKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XzsKKyAgYm9vbCBpc05lZ2F0
aXZlID0gKmN1cnJlbnQgPT0gJy0nOworICBpZiAoaXNOZWdhdGl2ZSkKKyAgICArK2N1cnJlbnQ7
CisgIC8vIFRPRE86IEhlbHAgdGhlIGNvbXBpbGVyIGRvIHRoZSBkaXYgYW5kIG1vZCBhdCBjb21w
aWxlIHRpbWUgb3IgZ2V0IHJpZCBvZgorICAvLyB0aGVtLgorICBWYWx1ZTo6TGFyZ2VzdFVJbnQg
bWF4SW50ZWdlclZhbHVlID0KKyAgICAgIGlzTmVnYXRpdmUgPyBWYWx1ZTo6TGFyZ2VzdFVJbnQo
VmFsdWU6Om1heExhcmdlc3RJbnQpICsgMQorICAgICAgICAgICAgICAgICA6IFZhbHVlOjptYXhM
YXJnZXN0VUludDsKKyAgVmFsdWU6Okxhcmdlc3RVSW50IHRocmVzaG9sZCA9IG1heEludGVnZXJW
YWx1ZSAvIDEwOworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGlsZSAoY3Vy
cmVudCA8IHRva2VuLmVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChj
IDwgJzAnIHx8IGMgPiAnOScpCisgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNv
ZGVkKTsKKyAgICBhdXRvIGRpZ2l0KHN0YXRpY19jYXN0PFZhbHVlOjpVSW50PihjIC0gJzAnKSk7
CisgICAgaWYgKHZhbHVlID49IHRocmVzaG9sZCkgeworICAgICAgLy8gV2UndmUgaGl0IG9yIGV4
Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAocm91bmRlZCBkb3duKS4gSWYKKyAg
ICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRoZSBsaW1pdCwgYikgdGhpcyBpcyB0
aGUgbGFzdCBkaWdpdCwgYW5kCisgICAgICAvLyBjKSBpdCdzIHNtYWxsIGVub3VnaCB0byBmaXQg
aW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4KKyAgICAgIC8vIE90aGVyd2lzZSB0
cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9pZCBvdmVyZmxvdy4KKyAgICAgIGlm
ICh2YWx1ZSA+IHRocmVzaG9sZCB8fCBjdXJyZW50ICE9IHRva2VuLmVuZF8gfHwKKyAgICAgICAg
ICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKSB7CisgICAgICAgIHJldHVybiBkZWNvZGVE
b3VibGUodG9rZW4sIGRlY29kZWQpOwogICAgICAgfQotICAgICAgd2hpbGUgKCB0b2tlbi50eXBl
XyA9PSB0b2tlbkNvbW1lbnQgKTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIHJlYWRUb2tl
biggdG9rZW4gKTsKLSAgIH0KLX0KLQotCi1ib29sIAotUmVhZGVyOjpleHBlY3RUb2tlbiggVG9r
ZW5UeXBlIHR5cGUsIFRva2VuICZ0b2tlbiwgY29uc3QgY2hhciAqbWVzc2FnZSApCi17Ci0gICBy
ZWFkVG9rZW4oIHRva2VuICk7Ci0gICBpZiAoIHRva2VuLnR5cGVfICE9IHR5cGUgKQotICAgICAg
cmV0dXJuIGFkZEVycm9yKCBtZXNzYWdlLCB0b2tlbiApOwotICAgcmV0dXJuIHRydWU7Ci19Ci0K
LQotYm9vbCAKLVJlYWRlcjo6cmVhZFRva2VuKCBUb2tlbiAmdG9rZW4gKQotewotICAgc2tpcFNw
YWNlcygpOwotICAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87Ci0gICBDaGFyIGMgPSBnZXROZXh0
Q2hhcigpOwotICAgYm9vbCBvayA9IHRydWU7Ci0gICBzd2l0Y2ggKCBjICkKLSAgIHsKLSAgIGNh
c2UgJ3snOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOwotICAgICAgYnJl
YWs7Ci0gICBjYXNlICd9JzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7Cisg
ICAgfQorICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0OworICB9CisgIGlmIChpc05lZ2F0
aXZlICYmIHZhbHVlID09IG1heEludGVnZXJWYWx1ZSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Om1p
bkxhcmdlc3RJbnQ7CisgIGVsc2UgaWYgKGlzTmVnYXRpdmUpCisgICAgZGVjb2RlZCA9IC1WYWx1
ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UgaWYgKHZhbHVlIDw9IFZhbHVlOjpMYXJnZXN0
VUludChWYWx1ZTo6bWF4SW50KSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Okxhcmdlc3RJbnQodmFs
dWUpOworICBlbHNlCisgICAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2Rl
ZDsKKyAgaWYgKCFkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVybiBmYWxz
ZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNv
ZGVkKSB7CisgIGRvdWJsZSB2YWx1ZSA9IDA7CisgIFN0cmluZyBidWZmZXIodG9rZW4uc3RhcnRf
LCB0b2tlbi5lbmRfKTsKKyAgSVN0cmluZ1N0cmVhbSBpcyhidWZmZXIpOworICBpZiAoIShpcyA+
PiB2YWx1ZSkpCisgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAiJyIgKyBTdHJpbmcodG9r
ZW4uc3RhcnRfLCB0b2tlbi5lbmRfKSArICInIGlzIG5vdCBhIG51bWJlci4iLCB0b2tlbik7Cisg
IGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNv
ZGVTdHJpbmcoVG9rZW4mIHRva2VuKSB7CisgIFN0cmluZyBkZWNvZGVkX3N0cmluZzsKKyAgaWYg
KCFkZWNvZGVTdHJpbmcodG9rZW4sIGRlY29kZWRfc3RyaW5nKSkKKyAgICByZXR1cm4gZmFsc2U7
CisgIFZhbHVlIGRlY29kZWQoZGVjb2RlZF9zdHJpbmcpOworICBjdXJyZW50VmFsdWUoKS5zd2Fw
UGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4u
c3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4u
ZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2Rl
U3RyaW5nKFRva2VuJiB0b2tlbiwgU3RyaW5nJiBkZWNvZGVkKSB7CisgIGRlY29kZWQucmVzZXJ2
ZShzdGF0aWNfY2FzdDxzaXplX3Q+KHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8gLSAyKSk7Cisg
IExvY2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJworICBMb2Nh
dGlvbiBlbmQgPSB0b2tlbi5lbmRfIC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCisg
IHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAg
aWYgKGMgPT0gJyInKQogICAgICAgYnJlYWs7Ci0gICBjYXNlICdbJzoKLSAgICAgIHRva2VuLnR5
cGVfID0gdG9rZW5BcnJheUJlZ2luOworICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykgeworICAgICAg
aWYgKGN1cnJlbnQgPT0gZW5kKQorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkVtcHR5IGVzY2Fw
ZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7CisgICAgICBDaGFyIGVzY2Fw
ZSA9ICpjdXJyZW50Kys7CisgICAgICBzd2l0Y2ggKGVzY2FwZSkgeworICAgICAgY2FzZSAnIic6
CisgICAgICAgIGRlY29kZWQgKz0gJyInOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJy8n
OgorICAgICAgICBkZWNvZGVkICs9ICcvJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdc
XCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1xcJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNl
ICdiJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGInOworICAgICAgICBicmVhazsKKyAgICAgIGNh
c2UgJ2YnOgorICAgICAgICBkZWNvZGVkICs9ICdcZic7CisgICAgICAgIGJyZWFrOworICAgICAg
Y2FzZSAnbic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKKyAgICAgICAgYnJlYWs7CisgICAg
ICBjYXNlICdyJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHInOworICAgICAgICBicmVhazsKKyAg
ICAgIGNhc2UgJ3QnOgorICAgICAgICBkZWNvZGVkICs9ICdcdCc7CisgICAgICAgIGJyZWFrOwor
ICAgICAgY2FzZSAndSc6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7CisgICAgICAg
IGlmICghZGVjb2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2Rl
KSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlY29kZWQgKz0gY29kZVBvaW50
VG9VVEY4KHVuaWNvZGUpOworICAgICAgfSBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBhZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwg
Y3VycmVudCk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGRlY29kZWQgKz0gYzsKKyAg
ICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVVbmljb2Rl
Q29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50JiB1bmljb2RlKSB7CisKKyAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVu
Y2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgcmV0dXJuIGZhbHNlOworICBp
ZiAodW5pY29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERCRkYpIHsKKyAgICAvLyBzdXJy
b2dhdGUgcGFpcnMKKyAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCisgICAgICByZXR1cm4gYWRk
RXJyb3IoCisgICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8g
cGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAorICAgICAgICAgIHRva2VuLCBjdXJyZW50
KTsKKyAgICBpZiAoKihjdXJyZW50KyspID09ICdcXCcgJiYgKihjdXJyZW50KyspID09ICd1Jykg
eworICAgICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7CisgICAgICBpZiAoZGVjb2RlVW5p
Y29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIpKSB7
CisgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEwKSAr
IChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOworICAgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9IGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5nIGFub3Ro
ZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiAiCisgICAgICAgICAgICAg
ICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsCisgICAgICAgICAgICAgICAgICAg
ICAgdG9rZW4sIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRl
cjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiByZXRfdW5pY29k
ZSkgeworICBpZiAoZW5kIC0gY3VycmVudCA8IDQpCisgICAgcmV0dXJuIGFkZEVycm9yKAorICAg
ICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMg
ZXhwZWN0ZWQuIiwgdG9rZW4sCisgICAgICAgIGN1cnJlbnQpOworICBpbnQgdW5pY29kZSA9IDA7
CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7CisgICAgQ2hhciBj
ID0gKmN1cnJlbnQrKzsKKyAgICB1bmljb2RlICo9IDE2OworICAgIGlmIChjID49ICcwJyAmJiBj
IDw9ICc5JykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICcwJzsKKyAgICBlbHNlIGlmIChjID49ICdh
JyAmJiBjIDw9ICdmJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOworICAgIGVsc2Ug
aWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7
CisgICAgZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJCYWQgdW5pY29k
ZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4i
LAorICAgICAgICAgIHRva2VuLCBjdXJyZW50KTsKKyAgfQorICByZXRfdW5pY29kZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGludD4odW5pY29kZSk7CisgIHJldHVybiB0cnVlOworfQorCitib29s
IFJlYWRlcjo6YWRkRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExv
Y2F0aW9uIGV4dHJhKSB7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2Vu
OworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBleHRyYTsKKyAg
ZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZWFk
ZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIHNpemVf
dCBjb25zdCBlcnJvckNvdW50ID0gZXJyb3JzXy5zaXplKCk7CisgIFRva2VuIHNraXA7CisgIGZv
ciAoOzspIHsKKyAgICBpZiAoIXJlYWRUb2tlbihza2lwKSkKKyAgICAgIGVycm9yc18ucmVzaXpl
KGVycm9yQ291bnQpOyAvLyBkaXNjYXJkIGVycm9ycyBjYXVzZWQgYnkgcmVjb3ZlcnkKKyAgICBp
ZiAoc2tpcC50eXBlXyA9PSBza2lwVW50aWxUb2tlbiB8fCBza2lwLnR5cGVfID09IHRva2VuRW5k
T2ZTdHJlYW0pCiAgICAgICBicmVhazsKLSAgIGNhc2UgJ10nOgotICAgICAgdG9rZW4udHlwZV8g
PSB0b2tlbkFycmF5RW5kOworICB9CisgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOworICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYg
dG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50
aWxUb2tlbikgeworICBhZGRFcnJvcihtZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVy
RnJvbUVycm9yKHNraXBVbnRpbFRva2VuKTsKK30KKworVmFsdWUmIFJlYWRlcjo6Y3VycmVudFZh
bHVlKCkgeyByZXR1cm4gKihub2Rlc18udG9wKCkpOyB9CisKK1JlYWRlcjo6Q2hhciBSZWFkZXI6
OmdldE5leHRDaGFyKCkgeworICBpZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1cm4gMDsK
KyAgcmV0dXJuICpjdXJyZW50XysrOworfQorCit2b2lkIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5l
QW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQmIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCYgY29sdW1uKSBjb25zdCB7CisgIExvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbl87Cisg
IExvY2F0aW9uIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICBsaW5lID0gMDsKKyAgd2hpbGUg
KGN1cnJlbnQgPCBsb2NhdGlvbiAmJiBjdXJyZW50ICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAq
Y3VycmVudCsrOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmICgqY3VycmVudCA9PSAn
XG4nKQorICAgICAgICArK2N1cnJlbnQ7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsK
KyAgICAgICsrbGluZTsKKyAgICB9IGVsc2UgaWYgKGMgPT0gJ1xuJykgeworICAgICAgbGFzdExp
bmVTdGFydCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfQorICB9CisgIC8vIGNvbHVt
biAmIGxpbmUgc3RhcnQgYXQgMQorICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0
YXJ0KSArIDE7CisgICsrbGluZTsKK30KKworU3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5l
QW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdCB7CisgIGludCBsaW5lLCBjb2x1bW47
CisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKKyAg
Y2hhciBidWZmZXJbMTggKyAxNiArIDE2ICsgMV07CisgIGpzb25jcHBfc25wcmludGYoYnVmZmVy
LCBzaXplb2YoYnVmZmVyKSwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNvbHVtbik7Cisg
IHJldHVybiBidWZmZXI7Cit9CisKKy8vIERlcHJlY2F0ZWQuIFByZXNlcnZlZCBmb3IgYmFja3dh
cmQgY29tcGF0aWJpbGl0eQorU3RyaW5nIFJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2Vz
KCkgY29uc3QgeworICByZXR1cm4gZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOworfQorCitT
dHJpbmcgUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgeworICBTdHJp
bmcgZm9ybWF0dGVkTWVzc2FnZTsKKyAgZm9yIChjb25zdCBhdXRvJiBlcnJvciA6IGVycm9yc18p
IHsKKyAgICBmb3JtYXR0ZWRNZXNzYWdlICs9CisgICAgICAgICIqICIgKyBnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4oZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAiXG4iOworICAgIGZvcm1hdHRlZE1l
c3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsgIlxuIjsKKyAgICBpZiAoZXJyb3IuZXh0
cmFfKQorICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAgICJTZWUgIiArIGdldExv
Y2F0aW9uTGluZUFuZENvbHVtbihlcnJvci5leHRyYV8pICsgIiBmb3IgZGV0YWlsLlxuIjsKKyAg
fQorICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKK30KKworc3RkOjp2ZWN0b3I8UmVhZGVyOjpT
dHJ1Y3R1cmVkRXJyb3I+IFJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0IHsKKyAg
c3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IGFsbEVycm9yczsKKyAgZm9yIChj
b25zdCBhdXRvJiBlcnJvciA6IGVycm9yc18pIHsKKyAgICBSZWFkZXI6OlN0cnVjdHVyZWRFcnJv
ciBzdHJ1Y3R1cmVkOworICAgIHN0cnVjdHVyZWQub2Zmc2V0X3N0YXJ0ID0gZXJyb3IudG9rZW5f
LnN0YXJ0XyAtIGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9saW1pdCA9IGVycm9yLnRv
a2VuXy5lbmRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVyZWQubWVzc2FnZSA9IGVycm9yLm1lc3Nh
Z2VfOworICAgIGFsbEVycm9ycy5wdXNoX2JhY2soc3RydWN0dXJlZCk7CisgIH0KKyAgcmV0dXJu
IGFsbEVycm9yczsKK30KKworYm9vbCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFs
dWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeworICBwdHJkaWZmX3QgY29uc3QgbGVuZ3RoID0g
ZW5kXyAtIGJlZ2luXzsKKyAgaWYgKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGggfHwg
dmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRv
a2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9
IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBiZWdpbl8g
KyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tl
bl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0g
bnVsbHB0cjsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQor
Citib29sIFJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBWYWx1ZSYgZXh0cmEpIHsKKyAgcHRyZGlmZl90IGNvbnN0IGxlbmd0aCA9IGVuZF8g
LSBiZWdpbl87CisgIGlmICh2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoIHx8IHZhbHVl
LmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGggfHwKKyAgICAgIGV4dHJhLmdldE9mZnNldExpbWl0
KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4u
dHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRP
ZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0TGlt
aXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8u
bWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IGJlZ2luXyArIGV4dHJhLmdldE9m
ZnNldFN0YXJ0KCk7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBSZWFkZXI6Omdvb2QoKSBjb25zdCB7IHJldHVybiBlcnJvcnNfLmVtcHR5KCk7
IH0KKworLy8gT3JpZ2luYWxseSBjb3BpZWQgZnJvbSB0aGUgRmVhdHVyZXMgY2xhc3MgKG5vdyBk
ZXByZWNhdGVkKSwgdXNlZCBpbnRlcm5hbGx5CisvLyBmb3IgZmVhdHVyZXMgaW1wbGVtZW50YXRp
b24uCitjbGFzcyBPdXJGZWF0dXJlcyB7CitwdWJsaWM6CisgIHN0YXRpYyBPdXJGZWF0dXJlcyBh
bGwoKTsKKyAgYm9vbCBhbGxvd0NvbW1lbnRzXzsKKyAgYm9vbCBzdHJpY3RSb290XzsKKyAgYm9v
bCBhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXzsKKyAgYm9vbCBhbGxvd051bWVyaWNLZXlz
XzsKKyAgYm9vbCBhbGxvd1NpbmdsZVF1b3Rlc187CisgIGJvb2wgZmFpbElmRXh0cmFfOworICBi
b29sIHJlamVjdER1cEtleXNfOworICBib29sIGFsbG93U3BlY2lhbEZsb2F0c187CisgIHNpemVf
dCBzdGFja0xpbWl0XzsKK307IC8vIE91ckZlYXR1cmVzCisKK091ckZlYXR1cmVzIE91ckZlYXR1
cmVzOjphbGwoKSB7IHJldHVybiB7fTsgfQorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBS
ZWFkZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIE9yaWdpbmFs
bHkgY29waWVkIGZyb20gdGhlIFJlYWRlciBjbGFzcyAobm93IGRlcHJlY2F0ZWQpLCB1c2VkIGlu
dGVybmFsbHkKKy8vIGZvciBpbXBsZW1lbnRpbmcgSlNPTiByZWFkaW5nLgorY2xhc3MgT3VyUmVh
ZGVyIHsKK3B1YmxpYzoKKyAgdHlwZWRlZiBjaGFyIENoYXI7CisgIHR5cGVkZWYgY29uc3QgQ2hh
ciogTG9jYXRpb247CisgIHN0cnVjdCBTdHJ1Y3R1cmVkRXJyb3IgeworICAgIHB0cmRpZmZfdCBv
ZmZzZXRfc3RhcnQ7CisgICAgcHRyZGlmZl90IG9mZnNldF9saW1pdDsKKyAgICBTdHJpbmcgbWVz
c2FnZTsKKyAgfTsKKworICBPdXJSZWFkZXIoT3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKTsK
KyAgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRvYywKKyAgICAgICAgICAgICBjb25zdCBj
aGFyKiBlbmREb2MsCisgICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgYm9v
bCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKKyAgU3RyaW5nIGdldEZvcm1hdHRlZEVycm9yTWVz
c2FnZXMoKSBjb25zdDsKKyAgc3RkOjp2ZWN0b3I8U3RydWN0dXJlZEVycm9yPiBnZXRTdHJ1Y3R1
cmVkRXJyb3JzKCkgY29uc3Q7CisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZh
bHVlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7CisgIGJvb2wg
Z29vZCgpIGNvbnN0OworCitwcml2YXRlOgorICBPdXJSZWFkZXIoT3VyUmVhZGVyIGNvbnN0Jik7
ICAgICAgLy8gbm8gaW1wbAorICB2b2lkIG9wZXJhdG9yPShPdXJSZWFkZXIgY29uc3QmKTsgLy8g
bm8gaW1wbAorCisgIGVudW0gVG9rZW5UeXBlIHsKKyAgICB0b2tlbkVuZE9mU3RyZWFtID0gMCwK
KyAgICB0b2tlbk9iamVjdEJlZ2luLAorICAgIHRva2VuT2JqZWN0RW5kLAorICAgIHRva2VuQXJy
YXlCZWdpbiwKKyAgICB0b2tlbkFycmF5RW5kLAorICAgIHRva2VuU3RyaW5nLAorICAgIHRva2Vu
TnVtYmVyLAorICAgIHRva2VuVHJ1ZSwKKyAgICB0b2tlbkZhbHNlLAorICAgIHRva2VuTnVsbCwK
KyAgICB0b2tlbk5hTiwKKyAgICB0b2tlblBvc0luZiwKKyAgICB0b2tlbk5lZ0luZiwKKyAgICB0
b2tlbkFycmF5U2VwYXJhdG9yLAorICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAorICAgIHRva2Vu
Q29tbWVudCwKKyAgICB0b2tlbkVycm9yCisgIH07CisKKyAgY2xhc3MgVG9rZW4geworICBwdWJs
aWM6CisgICAgVG9rZW5UeXBlIHR5cGVfOworICAgIExvY2F0aW9uIHN0YXJ0XzsKKyAgICBMb2Nh
dGlvbiBlbmRfOworICB9OworCisgIGNsYXNzIEVycm9ySW5mbyB7CisgIHB1YmxpYzoKKyAgICBU
b2tlbiB0b2tlbl87CisgICAgU3RyaW5nIG1lc3NhZ2VfOworICAgIExvY2F0aW9uIGV4dHJhXzsK
KyAgfTsKKworICB0eXBlZGVmIHN0ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7CisKKyAgYm9v
bCByZWFkVG9rZW4oVG9rZW4mIHRva2VuKTsKKyAgdm9pZCBza2lwU3BhY2VzKCk7CisgIGJvb2wg
bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpOworICBib29sIHJlYWRD
b21tZW50KCk7CisgIGJvb2wgcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ3BwU3R5
bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZFN0cmluZygpOworICBib29sIHJlYWRTdHJpbmdTaW5n
bGVRdW90ZSgpOworICBib29sIHJlYWROdW1iZXIoYm9vbCBjaGVja0luZik7CisgIGJvb2wgcmVh
ZFZhbHVlKCk7CisgIGJvb2wgcmVhZE9iamVjdChUb2tlbiYgdG9rZW4pOworICBib29sIHJlYWRB
cnJheShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pOwor
ICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9v
bCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4m
IHRva2VuLCBTdHJpbmcmIGRlY29kZWQpOworICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9r
ZW4pOworICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsK
KyAgYm9vbCBkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgaW50JiB1bmljb2RlKTsKKyAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVu
Y2UoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
dGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRp
b24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQm
IHVuaWNvZGUpOworICBib29sIGFkZEVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgVG9rZW4m
IHRva2VuLCBMb2NhdGlvbiBleHRyYSA9IG51bGxwdHIpOworICBib29sIHJlY292ZXJGcm9tRXJy
b3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgYm9vbCBhZGRFcnJvckFuZFJlY292ZXIo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYg
dG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tl
bik7CisgIHZvaWQgc2tpcFVudGlsU3BhY2UoKTsKKyAgVmFsdWUmIGN1cnJlbnRWYWx1ZSgpOwor
ICBDaGFyIGdldE5leHRDaGFyKCk7CisgIHZvaWQKKyAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1u
KExvY2F0aW9uIGxvY2F0aW9uLCBpbnQmIGxpbmUsIGludCYgY29sdW1uKSBjb25zdDsKKyAgU3Ry
aW5nIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7Cisg
IHZvaWQgYWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxh
Y2VtZW50IHBsYWNlbWVudCk7CisgIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2Vu
KTsKKworICBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZUVPTChMb2NhdGlvbiBiZWdpbiwgTG9jYXRp
b24gZW5kKTsKKyAgc3RhdGljIGJvb2wgY29udGFpbnNOZXdMaW5lKExvY2F0aW9uIGJlZ2luLCBM
b2NhdGlvbiBlbmQpOworCisgIHR5cGVkZWYgc3RkOjpzdGFjazxWYWx1ZSo+IE5vZGVzOworICBO
b2RlcyBub2Rlc187CisgIEVycm9ycyBlcnJvcnNfOworICBTdHJpbmcgZG9jdW1lbnRfOworICBM
b2NhdGlvbiBiZWdpbl87CisgIExvY2F0aW9uIGVuZF87CisgIExvY2F0aW9uIGN1cnJlbnRfOwor
ICBMb2NhdGlvbiBsYXN0VmFsdWVFbmRfOworICBWYWx1ZSogbGFzdFZhbHVlXzsKKyAgU3RyaW5n
IGNvbW1lbnRzQmVmb3JlXzsKKworICBPdXJGZWF0dXJlcyBjb25zdCBmZWF0dXJlc187CisgIGJv
b2wgY29sbGVjdENvbW1lbnRzXzsKK307IC8vIE91clJlYWRlcgorCisvLyBjb21wbGV0ZSBjb3B5
IG9mIFJlYWQgaW1wbCwgZm9yIE91clJlYWRlcgorCitib29sIE91clJlYWRlcjo6Y29udGFpbnNO
ZXdMaW5lKE91clJlYWRlcjo6TG9jYXRpb24gYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE91clJlYWRlcjo6TG9jYXRpb24gZW5kKSB7CisgIGZvciAoOyBiZWdpbiA8IGVu
ZDsgKytiZWdpbikKKyAgICBpZiAoKmJlZ2luID09ICdcbicgfHwgKmJlZ2luID09ICdccicpCisg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitPdXJSZWFkZXI6Ok91clJl
YWRlcihPdXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpCisgICAgOiBlcnJvcnNfKCksIGRvY3Vt
ZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCisg
ICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18oZmVhdHVyZXMp
LCBjb2xsZWN0Q29tbWVudHNfKCkgeworfQorCitib29sIE91clJlYWRlcjo6cGFyc2UoY29uc3Qg
Y2hhciogYmVnaW5Eb2MsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9j
LAorICAgICAgICAgICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7CisgIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVu
dHNfKSB7CisgICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7CisgIH0KKworICBiZWdpbl8gPSBi
ZWdpbkRvYzsKKyAgZW5kXyA9IGVuZERvYzsKKyAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RD
b21tZW50czsKKyAgY3VycmVudF8gPSBiZWdpbl87CisgIGxhc3RWYWx1ZUVuZF8gPSBudWxscHRy
OworICBsYXN0VmFsdWVfID0gbnVsbHB0cjsKKyAgY29tbWVudHNCZWZvcmVfLmNsZWFyKCk7Cisg
IGVycm9yc18uY2xlYXIoKTsKKyAgd2hpbGUgKCFub2Rlc18uZW1wdHkoKSkKKyAgICBub2Rlc18u
cG9wKCk7CisgIG5vZGVzXy5wdXNoKCZyb290KTsKKworICBib29sIHN1Y2Nlc3NmdWwgPSByZWFk
VmFsdWUoKTsKKyAgbm9kZXNfLnBvcCgpOworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRU
b2tlbnModG9rZW4pOworICBpZiAoZmVhdHVyZXNfLmZhaWxJZkV4dHJhXykgeworICAgIGlmICgo
ZmVhdHVyZXNfLnN0cmljdFJvb3RfIHx8IHRva2VuLnR5cGVfICE9IHRva2VuRXJyb3IpICYmCisg
ICAgICAgIHRva2VuLnR5cGVfICE9IHRva2VuRW5kT2ZTdHJlYW0pIHsKKyAgICAgIGFkZEVycm9y
KCJFeHRyYSBub24td2hpdGVzcGFjZSBhZnRlciBKU09OIHZhbHVlLiIsIHRva2VuKTsKKyAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNv
bW1lbnRzQmVmb3JlXy5lbXB0eSgpKQorICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9y
ZV8sIGNvbW1lbnRBZnRlcik7CisgIGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKKyAgICBp
ZiAoIXJvb3QuaXNBcnJheSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsKKyAgICAgIC8vIFNldCBl
cnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRv
a2VuIGZvdW5kCisgICAgICAvLyBpbiBkb2MKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJv
cjsKKyAgICAgIHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9jOworICAgICAgdG9rZW4uZW5kXyA9IGVu
ZERvYzsKKyAgICAgIGFkZEVycm9yKAorICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQg
bXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCisgICAgICAgICAg
dG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICByZXR1cm4gc3VjY2Vz
c2Z1bDsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKKyAgLy8gIFRvIHByZXNl
cnZlIHRoZSBvbGQgYmVoYXZpb3VyIHdlIGNhc3Qgc2l6ZV90IHRvIGludC4KKyAgaWYgKG5vZGVz
Xy5zaXplKCkgPiBmZWF0dXJlc18uc3RhY2tMaW1pdF8pCisgICAgdGhyb3dSdW50aW1lRXJyb3Io
IkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4gcmVhZFZhbHVlKCkuIik7CisgIFRva2VuIHRva2VuOwor
ICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7CisK
KyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7Cisg
ICAgY3VycmVudFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZv
cmUpOworICAgIGNvbW1lbnRzQmVmb3JlXy5jbGVhcigpOworICB9CisKKyAgc3dpdGNoICh0b2tl
bi50eXBlXykgeworICBjYXNlIHRva2VuT2JqZWN0QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJl
YWRPYmplY3QodG9rZW4pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJl
bnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5QmVnaW46CisgICAg
c3VjY2Vzc2Z1bCA9IHJlYWRBcnJheSh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zm
c2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuTnVt
YmVyOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4pOworICAgIGJyZWFrOwor
ICBjYXNlIHRva2VuU3RyaW5nOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4p
OworICAgIGJyZWFrOworICBjYXNlIHRva2VuVHJ1ZTogeworICAgIFZhbHVlIHYodHJ1ZSk7Cisg
ICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5z
ZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0
b2tlbkZhbHNlOiB7CisgICAgVmFsdWUgdihmYWxzZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dh
cFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3Rh
cnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5l
bmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbk51bGw6IHsKKyAgICBWYWx1
ZSB2OworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZh
bHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIH0gYnJlYWs7Cisg
IGNhc2UgdG9rZW5OYU46IHsKKyAgICBWYWx1ZSB2KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCkpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAg
IGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7Cisg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Cisg
IH0gYnJlYWs7CisgIGNhc2UgdG9rZW5Qb3NJbmY6IHsKKyAgICBWYWx1ZSB2KHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBh
eWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRf
IC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRf
IC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbk5lZ0luZjogeworICAgIFZhbHVl
IHYoLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5
U2VwYXJhdG9yOgorICBjYXNlIHRva2VuT2JqZWN0RW5kOgorICBjYXNlIHRva2VuQXJyYXlFbmQ6
CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykgeworICAg
ICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJyZW50IHZh
bHVlIGFzIGEgbnVsbAorICAgICAgLy8gdG9rZW4uCisgICAgICBjdXJyZW50Xy0tOworICAgICAg
VmFsdWUgdjsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgICAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsKKyAgICAg
IGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKICAgICAg
IGJyZWFrOwotICAgY2FzZSAnIic6CisgICAgfSAvLyBlbHNlLCBmYWxsIHRocm91Z2ggLi4uCisg
IGRlZmF1bHQ6CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRf
IC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRf
IC0gYmVnaW5fKTsKKyAgICByZXR1cm4gYWRkRXJyb3IoIlN5bnRheCBlcnJvcjogdmFsdWUsIG9i
amVjdCBvciBhcnJheSBleHBlY3RlZC4iLCB0b2tlbik7CisgIH0KKworICBpZiAoY29sbGVjdENv
bW1lbnRzXykgeworICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsKKyAgICBsYXN0VmFsdWVf
ID0gJmN1cnJlbnRWYWx1ZSgpOworICB9CisKKyAgcmV0dXJuIHN1Y2Nlc3NmdWw7Cit9CisKK3Zv
aWQgT3VyUmVhZGVyOjpza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pIHsKKyAgaWYgKGZl
YXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGRvIHsKKyAgICAgIHJlYWRUb2tlbih0b2tl
bik7CisgICAgfSB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50KTsKKyAgfSBlbHNl
IHsKKyAgICByZWFkVG9rZW4odG9rZW4pOworICB9Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFk
VG9rZW4oVG9rZW4mIHRva2VuKSB7CisgIHNraXBTcGFjZXMoKTsKKyAgdG9rZW4uc3RhcnRfID0g
Y3VycmVudF87CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wgb2sgPSB0cnVlOwor
ICBzd2l0Y2ggKGMpIHsKKyAgY2FzZSAneyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVj
dEJlZ2luOworICAgIGJyZWFrOworICBjYXNlICd9JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2Vu
T2JqZWN0RW5kOworICAgIGJyZWFrOworICBjYXNlICdbJzoKKyAgICB0b2tlbi50eXBlXyA9IHRv
a2VuQXJyYXlCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnXSc6CisgICAgdG9rZW4udHlwZV8g
PSB0b2tlbkFycmF5RW5kOworICAgIGJyZWFrOworICBjYXNlICciJzoKKyAgICB0b2tlbi50eXBl
XyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVhZFN0cmluZygpOworICAgIGJyZWFrOworICBj
YXNlICdcJyc6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NpbmdsZVF1b3Rlc18pIHsKICAgICAg
IHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7Ci0gICAgICBvayA9IHJlYWRTdHJpbmcoKTsKLSAg
ICAgIGJyZWFrOwotICAgY2FzZSAnLyc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVu
dDsKLSAgICAgIG9rID0gcmVhZENvbW1lbnQoKTsKKyAgICAgIG9rID0gcmVhZFN0cmluZ1Npbmds
ZVF1b3RlKCk7CiAgICAgICBicmVhazsKLSAgIGNhc2UgJzAnOgotICAgY2FzZSAnMSc6Ci0gICBj
YXNlICcyJzoKLSAgIGNhc2UgJzMnOgotICAgY2FzZSAnNCc6Ci0gICBjYXNlICc1JzoKLSAgIGNh
c2UgJzYnOgotICAgY2FzZSAnNyc6Ci0gICBjYXNlICc4JzoKLSAgIGNhc2UgJzknOgotICAgY2Fz
ZSAnLSc6CisgICAgfSAvLyBlbHNlIGZhbGwgdGhyb3VnaAorICBjYXNlICcvJzoKKyAgICB0b2tl
bi50eXBlXyA9IHRva2VuQ29tbWVudDsKKyAgICBvayA9IHJlYWRDb21tZW50KCk7CisgICAgYnJl
YWs7CisgIGNhc2UgJzAnOgorICBjYXNlICcxJzoKKyAgY2FzZSAnMic6CisgIGNhc2UgJzMnOgor
ICBjYXNlICc0JzoKKyAgY2FzZSAnNSc6CisgIGNhc2UgJzYnOgorICBjYXNlICc3JzoKKyAgY2Fz
ZSAnOCc6CisgIGNhc2UgJzknOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdW1iZXI7CisgICAg
cmVhZE51bWJlcihmYWxzZSk7CisgICAgYnJlYWs7CisgIGNhc2UgJy0nOgorICAgIGlmIChyZWFk
TnVtYmVyKHRydWUpKSB7CiAgICAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOwotICAgICAg
cmVhZE51bWJlcigpOworICAgIH0gZWxzZSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmVn
SW5mOworICAgICAgb2sgPSBmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXyAmJiBtYXRjaCgi
bmZpbml0eSIsIDcpOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSAndCc6CisgICAgdG9rZW4u
dHlwZV8gPSB0b2tlblRydWU7CisgICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7CisgICAgYnJlYWs7
CisgIGNhc2UgJ2YnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKKyAgICBvayA9IG1h
dGNoKCJhbHNlIiwgNCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ24nOgorICAgIHRva2VuLnR5cGVf
ID0gdG9rZW5OdWxsOworICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOworICAgIGJyZWFrOworICBj
YXNlICdOJzoKKyAgICBpZiAoZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKKyAgICAg
IHRva2VuLnR5cGVfID0gdG9rZW5OYU47CisgICAgICBvayA9IG1hdGNoKCJhTiIsIDIpOworICAg
IH0gZWxzZSB7CisgICAgICBvayA9IGZhbHNlOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSAn
SSc6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfKSB7CisgICAgICB0b2tl
bi50eXBlXyA9IHRva2VuUG9zSW5mOworICAgICAgb2sgPSBtYXRjaCgibmZpbml0eSIsIDcpOwor
ICAgIH0gZWxzZSB7CisgICAgICBvayA9IGZhbHNlOworICAgIH0KKyAgICBicmVhazsKKyAgY2Fz
ZSAnLCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5U2VwYXJhdG9yOworICAgIGJyZWFr
OworICBjYXNlICc6JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOwor
ICAgIGJyZWFrOworICBjYXNlIDA6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFt
OworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIG9rID0gZmFsc2U7CisgICAgYnJlYWs7Cisg
IH0KKyAgaWYgKCFvaykKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLmVu
ZF8gPSBjdXJyZW50XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpza2lw
U3BhY2VzKCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9ICpj
dXJyZW50XzsKKyAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBj
ID09ICdcbicpCisgICAgICArK2N1cnJlbnRfOworICAgIGVsc2UKICAgICAgIGJyZWFrOwotICAg
Y2FzZSAndCc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuVHJ1ZTsKLSAgICAgIG9rID0gbWF0
Y2goICJydWUiLCAzICk7CisgIH0KK30KKworYm9vbCBPdXJSZWFkZXI6Om1hdGNoKExvY2F0aW9u
IHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKSB7CisgIGlmIChlbmRfIC0gY3VycmVudF8gPCBw
YXR0ZXJuTGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgaW50IGluZGV4ID0gcGF0dGVybkxl
bmd0aDsKKyAgd2hpbGUgKGluZGV4LS0pCisgICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0
ZXJuW2luZGV4XSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudF8gKz0gcGF0dGVybkxl
bmd0aDsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ29tbWVudCgp
IHsKKyAgTG9jYXRpb24gY29tbWVudEJlZ2luID0gY3VycmVudF8gLSAxOworICBDaGFyIGMgPSBn
ZXROZXh0Q2hhcigpOworICBib29sIHN1Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgaWYgKGMgPT0gJyon
KQorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ1N0eWxlQ29tbWVudCgpOworICBlbHNlIGlmIChjID09
ICcvJykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENwcFN0eWxlQ29tbWVudCgpOworICBpZiAoIXN1
Y2Nlc3NmdWwpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7
CisgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOworICAgIGlm
IChsYXN0VmFsdWVFbmRfICYmICFjb250YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVu
dEJlZ2luKSkgeworICAgICAgaWYgKGMgIT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVu
dEJlZ2luLCBjdXJyZW50XykpCisgICAgICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2Ft
ZUxpbmU7CisgICAgfQorCisgICAgYWRkQ29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBw
bGFjZW1lbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitTdHJpbmcgT3VyUmVhZGVyOjpu
b3JtYWxpemVFT0woT3VyUmVhZGVyOjpMb2NhdGlvbiBiZWdpbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBPdXJSZWFkZXI6OkxvY2F0aW9uIGVuZCkgeworICBTdHJpbmcgbm9ybWFs
aXplZDsKKyAgbm9ybWFsaXplZC5yZXNlcnZlKHN0YXRpY19jYXN0PHNpemVfdD4oZW5kIC0gYmVn
aW4pKTsKKyAgT3VyUmVhZGVyOjpMb2NhdGlvbiBjdXJyZW50ID0gYmVnaW47CisgIHdoaWxlIChj
dXJyZW50ICE9IGVuZCkgeworICAgIGNoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0g
J1xyJykgeworICAgICAgaWYgKGN1cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID09ICdcbicpCisg
ICAgICAgIC8vIGNvbnZlcnQgZG9zIEVPTAorICAgICAgICArK2N1cnJlbnQ7CisgICAgICAvLyBj
b252ZXJ0IE1hYyBFT0wKKyAgICAgIG5vcm1hbGl6ZWQgKz0gJ1xuJzsKKyAgICB9IGVsc2Ugewor
ICAgICAgbm9ybWFsaXplZCArPSBjOworICAgIH0KKyAgfQorICByZXR1cm4gbm9ybWFsaXplZDsK
K30KKwordm9pZCBPdXJSZWFkZXI6OmFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBhc3NlcnQoY29sbGVjdENvbW1l
bnRzXyk7CisgIGNvbnN0IFN0cmluZyYgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUVPTChiZWdpbiwg
ZW5kKTsKKyAgaWYgKHBsYWNlbWVudCA9PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB7CisgICAg
YXNzZXJ0KGxhc3RWYWx1ZV8gIT0gbnVsbHB0cik7CisgICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVu
dChub3JtYWxpemVkLCBwbGFjZW1lbnQpOworICB9IGVsc2UgeworICAgIGNvbW1lbnRzQmVmb3Jl
XyArPSBub3JtYWxpemVkOworICB9Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ1N0eWxlQ29t
bWVudCgpIHsKKyAgd2hpbGUgKChjdXJyZW50XyArIDEpIDwgZW5kXykgeworICAgIENoYXIgYyA9
IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJyonICYmICpjdXJyZW50XyA9PSAnLycpCiAg
ICAgICBicmVhazsKLSAgIGNhc2UgJ2YnOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNl
OwotICAgICAgb2sgPSBtYXRjaCggImFsc2UiLCA0ICk7CisgIH0KKyAgcmV0dXJuIGdldE5leHRD
aGFyKCkgPT0gJy8nOworfQorCitib29sIE91clJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVudCgp
IHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0Q2hh
cigpOworICAgIGlmIChjID09ICdcbicpCiAgICAgICBicmVhazsKLSAgIGNhc2UgJ24nOgotICAg
ICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bGw7Ci0gICAgICBvayA9IG1hdGNoKCAidWxsIiwgMyAp
OworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4gSXQgd2ls
bCBiZSBub3JtYWxpemVkIGluIGFkZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8gIT0gZW5k
XyAmJiAqY3VycmVudF8gPT0gJ1xuJykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICAgIC8v
IEJyZWFrIG9uIE1vYyBPUyA5IEVPTC4KICAgICAgIGJyZWFrOwotICAgY2FzZSAnLCc6Ci0gICAg
ICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7CisgICAgfQorICB9CisgIHJldHVy
biB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6cmVhZE51bWJlcihib29sIGNoZWNrSW5mKSB7
CisgIGNvbnN0IGNoYXIqIHAgPSBjdXJyZW50XzsKKyAgaWYgKGNoZWNrSW5mICYmIHAgIT0gZW5k
XyAmJiAqcCA9PSAnSScpIHsKKyAgICBjdXJyZW50XyA9ICsrcDsKKyAgICByZXR1cm4gZmFsc2U7
CisgIH0KKyAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBhbHJlYWR5IGNvbnN1bWVkIGNo
YXJhY3RlcgorICAvLyBpbnRlZ3JhbCBwYXJ0CisgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5
JykKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIC8vIGZy
YWN0aW9uYWwgcGFydAorICBpZiAoYyA9PSAnLicpIHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkg
PCBlbmRfID8gKnArKyA6ICdcMCc7CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQor
ICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAnXDAnOworICB9CisgIC8v
IGV4cG9uZW50aWFsIHBhcnQKKyAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7CisgICAgYyA9
IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAnXDAnOworICAgIGlmIChjID09ICcrJyB8
fCBjID09ICctJykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogJ1ww
JzsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRf
ID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9Citib29s
IE91clJlYWRlcjo6cmVhZFN0cmluZygpIHsKKyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKKyAgICBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwn
KQorICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICBlbHNlIGlmIChjID09ICciJykKICAgICAgIGJy
ZWFrOwotICAgY2FzZSAnOic6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJh
dG9yOworICB9CisgIHJldHVybiBjID09ICciJzsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRT
dHJpbmdTaW5nbGVRdW90ZSgpIHsKKyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9
IGVuZF8pIHsKKyAgICBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAg
ICAgZ2V0TmV4dENoYXIoKTsKKyAgICBlbHNlIGlmIChjID09ICdcJycpCiAgICAgICBicmVhazsK
LSAgIGNhc2UgMDoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FbmRPZlN0cmVhbTsKKyAgfQor
ICByZXR1cm4gYyA9PSAnXCcnOworfQorCitib29sIE91clJlYWRlcjo6cmVhZE9iamVjdChUb2tl
biYgdG9rZW4pIHsKKyAgVG9rZW4gdG9rZW5OYW1lOworICBTdHJpbmcgbmFtZTsKKyAgVmFsdWUg
aW5pdChvYmplY3RWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOwor
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwor
ICB3aGlsZSAocmVhZFRva2VuKHRva2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxUb2tlbk9r
ID0gdHJ1ZTsKKyAgICB3aGlsZSAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBp
bml0aWFsVG9rZW5PaykKKyAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRva2VuTmFt
ZSk7CisgICAgaWYgKCFpbml0aWFsVG9rZW5PaykKICAgICAgIGJyZWFrOwotICAgZGVmYXVsdDoK
LSAgICAgIG9rID0gZmFsc2U7CisgICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVj
dEVuZCAmJiBuYW1lLmVtcHR5KCkpIC8vIGVtcHR5IG9iamVjdAorICAgICAgcmV0dXJuIHRydWU7
CisgICAgbmFtZS5jbGVhcigpOworICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJp
bmcpIHsKKyAgICAgIGlmICghZGVjb2RlU3RyaW5nKHRva2VuTmFtZSwgbmFtZSkpCisgICAgICAg
IHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKyAgICB9IGVsc2UgaWYg
KHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk51bWJlciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmlj
S2V5c18pIHsKKyAgICAgIFZhbHVlIG51bWJlck5hbWU7CisgICAgICBpZiAoIWRlY29kZU51bWJl
cih0b2tlbk5hbWUsIG51bWJlck5hbWUpKQorICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJv
cih0b2tlbk9iamVjdEVuZCk7CisgICAgICBuYW1lID0gbnVtYmVyTmFtZS5hc1N0cmluZygpOwor
ICAgIH0gZWxzZSB7CiAgICAgICBicmVhazsKLSAgIH0KLSAgIGlmICggIW9rICkKLSAgICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgIHRva2VuLmVuZF8gPSBjdXJyZW50XzsKLSAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICBpZiAobmFtZS5sZW5ndGgoKSA+PSAoMVUgPDwgMzApKQor
ICAgICAgdGhyb3dSdW50aW1lRXJyb3IoImtleWxlbmd0aCA+PSAyXjMwIik7CisgICAgaWYgKGZl
YXR1cmVzXy5yZWplY3REdXBLZXlzXyAmJiBjdXJyZW50VmFsdWUoKS5pc01lbWJlcihuYW1lKSkg
eworICAgICAgU3RyaW5nIG1zZyA9ICJEdXBsaWNhdGUga2V5OiAnIiArIG5hbWUgKyAiJyI7Cisg
ICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKG1zZywgdG9rZW5OYW1lLCB0b2tlbk9iamVj
dEVuZCk7CisgICAgfQorCisgICAgVG9rZW4gY29sb247CisgICAgaWYgKCFyZWFkVG9rZW4oY29s
b24pIHx8IGNvbG9uLnR5cGVfICE9IHRva2VuTWVtYmVyU2VwYXJhdG9yKSB7CisgICAgICByZXR1
cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCJNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5h
bWUiLCBjb2xvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5PYmplY3RF
bmQpOworICAgIH0KKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKKyAg
ICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBu
b2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJl
dHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKworICAgIFRva2VuIGNvbW1h
OworICAgIGlmICghcmVhZFRva2VuKGNvbW1hKSB8fAorICAgICAgICAoY29tbWEudHlwZV8gIT0g
dG9rZW5PYmplY3RFbmQgJiYgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgor
ICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50KSkgeworICAgICAgcmV0dXJuIGFk
ZEVycm9yQW5kUmVjb3ZlcigiTWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJhdGlv
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hLCB0b2tlbk9iamVjdEVu
ZCk7CisgICAgfQorICAgIGJvb2wgZmluYWxpemVUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAo
Y29tbWEudHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIGZpbmFsaXplVG9rZW5PaykKKyAgICAgIGZp
bmFsaXplVG9rZW5PayA9IHJlYWRUb2tlbihjb21tYSk7CisgICAgaWYgKGNvbW1hLnR5cGVfID09
IHRva2VuT2JqZWN0RW5kKQorICAgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGFkZEVy
cm9yQW5kUmVjb3ZlcigiTWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5O
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuT2JqZWN0RW5kKTsKIH0KIAor
Ym9vbCBPdXJSZWFkZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgaW5pdChh
cnJheVZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIHNraXBT
cGFjZXMoKTsKKyAgaWYgKGN1cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09ICddJykgLy8g
ZW1wdHkgYXJyYXkKKyAgeworICAgIFRva2VuIGVuZEFycmF5OworICAgIHJlYWRUb2tlbihlbmRB
cnJheSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgaW50IGluZGV4ID0gMDsKKyAgZm9yICg7
OykgeworICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOworICAgIG5v
ZGVzXy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVz
Xy5wb3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJu
IHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7CisKKyAgICBUb2tlbiBjdXJyZW50VG9r
ZW47CisgICAgLy8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4K
KyAgICBvayA9IHJlYWRUb2tlbihjdXJyZW50VG9rZW4pOworICAgIHdoaWxlIChjdXJyZW50VG9r
ZW4udHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIG9rKSB7CisgICAgICBvayA9IHJlYWRUb2tlbihj
dXJyZW50VG9rZW4pOworICAgIH0KKyAgICBib29sIGJhZFRva2VuVHlwZSA9IChjdXJyZW50VG9r
ZW4udHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgorICAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRUb2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKKyAgICBpZiAoIW9rIHx8
IGJhZFRva2VuVHlwZSkgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlzc2lu
ZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3VycmVudFRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9CisgICAgaWYg
KGN1cnJlbnRUb2tlbi50eXBlXyA9PSB0b2tlbkFycmF5RW5kKQorICAgICAgYnJlYWs7CisgIH0K
KyAgcmV0dXJuIHRydWU7Cit9CiAKLXZvaWQgCi1SZWFkZXI6OnNraXBTcGFjZXMoKQotewotICAg
d2hpbGUgKCBjdXJyZW50XyAhPSBlbmRfICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50
XzsKLSAgICAgIGlmICggYyA9PSAnICcgIHx8ICBjID09ICdcdCcgIHx8ICBjID09ICdccicgIHx8
ICBjID09ICdcbicgKQotICAgICAgICAgKytjdXJyZW50XzsKLSAgICAgIGVsc2UKLSAgICAgICAg
IGJyZWFrOwotICAgfQorYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4p
IHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRlY29kZWQp
KQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2Rl
ZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2lu
Xyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8p
OworICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tl
biYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBu
dW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBpcworICAvLyBsYXJnZXIgdGhhbiB0
aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50ZWdlciB0aGVuCisgIC8vIHdlIGRl
Y29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgorICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4u
c3RhcnRfOworICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVudCA9PSAnLSc7CisgIGlmIChpc05l
Z2F0aXZlKQorICAgICsrY3VycmVudDsKKworICAvLyBUT0RPKGlzc3VlICM5NjApOiBDaGFuZ2Ug
dG8gY29uc3RleHByCisgIHN0YXRpYyBjb25zdCBhdXRvIHBvc2l0aXZlX3RocmVzaG9sZCA9IFZh
bHVlOjptYXhMYXJnZXN0VUludCAvIDEwOworICBzdGF0aWMgY29uc3QgYXV0byBwb3NpdGl2ZV9s
YXN0X2RpZ2l0ID0gVmFsdWU6Om1heExhcmdlc3RVSW50ICUgMTA7CisgIHN0YXRpYyBjb25zdCBh
dXRvIG5lZ2F0aXZlX3RocmVzaG9sZCA9CisgICAgICBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6
Om1pbkxhcmdlc3RJbnQpIC8gMTA7CisgIHN0YXRpYyBjb25zdCBhdXRvIG5lZ2F0aXZlX2xhc3Rf
ZGlnaXQgPQorICAgICAgVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptaW5MYXJnZXN0SW50KSAl
IDEwOworCisgIGNvbnN0IGF1dG8gdGhyZXNob2xkID0gaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlX3Ro
cmVzaG9sZCA6IHBvc2l0aXZlX3RocmVzaG9sZDsKKyAgY29uc3QgYXV0byBsYXN0X2RpZ2l0ID0K
KyAgICAgIGlzTmVnYXRpdmUgPyBuZWdhdGl2ZV9sYXN0X2RpZ2l0IDogcG9zaXRpdmVfbGFzdF9k
aWdpdDsKKworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGlsZSAoY3VycmVu
dCA8IHRva2VuLmVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjIDwg
JzAnIHx8IGMgPiAnOScpCisgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVk
KTsKKworICAgIGNvbnN0IGF1dG8gZGlnaXQoc3RhdGljX2Nhc3Q8VmFsdWU6OlVJbnQ+KGMgLSAn
MCcpKTsKKyAgICBpZiAodmFsdWUgPj0gdGhyZXNob2xkKSB7CisgICAgICAvLyBXZSd2ZSBoaXQg
b3IgZXhjZWVkZWQgdGhlIG1heCB2YWx1ZSBkaXZpZGVkIGJ5IDEwIChyb3VuZGVkIGRvd24pLiBJ
ZgorICAgICAgLy8gYSkgd2UndmUgb25seSBqdXN0IHRvdWNoZWQgdGhlIGxpbWl0LCBtZWFpbmcg
dmFsdWUgPT0gdGhyZXNob2xkLAorICAgICAgLy8gYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwg
b3IKKyAgICAgIC8vIGMpIGl0J3Mgc21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5kaW5n
IGRlbHRhLCB3ZSdyZSBva2F5LgorICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVtYmVy
IGFzIGEgZG91YmxlIHRvIGF2b2lkIG92ZXJmbG93LgorICAgICAgaWYgKHZhbHVlID4gdGhyZXNo
b2xkIHx8IGN1cnJlbnQgIT0gdG9rZW4uZW5kXyB8fCBkaWdpdCA+IGxhc3RfZGlnaXQpIHsKKyAg
ICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgICB9CisgICAg
fQorICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0OworICB9CiAKLWJvb2wgCi1SZWFkZXI6
Om1hdGNoKCBMb2NhdGlvbiBwYXR0ZXJuLCAKLSAgICAgICAgICAgICAgIGludCBwYXR0ZXJuTGVu
Z3RoICkKLXsKLSAgIGlmICggZW5kXyAtIGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCApCi0gICAg
ICByZXR1cm4gZmFsc2U7Ci0gICBpbnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3RoOwotICAgd2hpbGUg
KCBpbmRleC0tICkKLSAgICAgIGlmICggY3VycmVudF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhd
ICkKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgIGN1cnJlbnRfICs9IHBhdHRlcm5MZW5ndGg7
Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1ib29sCi1SZWFkZXI6OnJlYWRDb21tZW50KCkKLXsK
LSAgIExvY2F0aW9uIGNvbW1lbnRCZWdpbiA9IGN1cnJlbnRfIC0gMTsKLSAgIENoYXIgYyA9IGdl
dE5leHRDaGFyKCk7Ci0gICBib29sIHN1Y2Nlc3NmdWwgPSBmYWxzZTsKLSAgIGlmICggYyA9PSAn
KicgKQotICAgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDU3R5bGVDb21tZW50KCk7Ci0gICBlbHNlIGlm
ICggYyA9PSAnLycgKQotICAgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsK
LSAgIGlmICggIXN1Y2Nlc3NmdWwgKQotICAgICAgcmV0dXJuIGZhbHNlOworICBpZiAoaXNOZWdh
dGl2ZSkKKyAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKKyAgZWxzZSBp
ZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhMYXJnZXN0SW50KSkKKyAg
ICBkZWNvZGVkID0gVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlCisgICAgZGVjb2Rl
ZCA9IHZhbHVlOwogCi0gICBpZiAoIGNvbGxlY3RDb21tZW50c18gKQotICAgewotICAgICAgQ29t
bWVudFBsYWNlbWVudCBwbGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOwotICAgICAgaWYgKCBsYXN0
VmFsdWVFbmRfICAmJiAgIWNvbnRhaW5zTmV3TGluZSggbGFzdFZhbHVlRW5kXywgY29tbWVudEJl
Z2luICkgKQotICAgICAgewotICAgICAgICAgaWYgKCBjICE9ICcqJyAgfHwgICFjb250YWluc05l
d0xpbmUoIGNvbW1lbnRCZWdpbiwgY3VycmVudF8gKSApCi0gICAgICAgICAgICBwbGFjZW1lbnQg
PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lOwotICAgICAgfQorICByZXR1cm4gdHJ1ZTsKK30KIAot
ICAgICAgYWRkQ29tbWVudCggY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50ICk7Ci0g
ICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi12b2lkIAotUmVhZGVyOjphZGRDb21tZW50KCBM
b2NhdGlvbiBiZWdpbiwgCi0gICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwgCi0gICAg
ICAgICAgICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkKLXsKLSAgIGFzc2Vy
dCggY29sbGVjdENvbW1lbnRzXyApOwotICAgaWYgKCBwbGFjZW1lbnQgPT0gY29tbWVudEFmdGVy
T25TYW1lTGluZSApCi0gICB7Ci0gICAgICBhc3NlcnQoIGxhc3RWYWx1ZV8gIT0gMCApOwotICAg
ICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVudCggc3RkOjpzdHJpbmcoIGJlZ2luLCBlbmQgKSwgcGxh
Y2VtZW50ICk7Ci0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAgICBpZiAoICFjb21tZW50c0JlZm9y
ZV8uZW1wdHkoKSApCi0gICAgICAgICBjb21tZW50c0JlZm9yZV8gKz0gIlxuIjsKLSAgICAgIGNv
bW1lbnRzQmVmb3JlXyArPSBzdGQ6OnN0cmluZyggYmVnaW4sIGVuZCApOwotICAgfQotfQotCi0K
LWJvb2wgCi1SZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50KCkKLXsKLSAgIHdoaWxlICggY3VycmVu
dF8gIT0gZW5kXyApCi0gICB7Ci0gICAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICAgICAg
aWYgKCBjID09ICcqJyAgJiYgICpjdXJyZW50XyA9PSAnLycgKQotICAgICAgICAgYnJlYWs7Ci0g
ICB9Ci0gICByZXR1cm4gZ2V0TmV4dENoYXIoKSA9PSAnLyc7Ci19Ci0KLQotYm9vbCAKLVJlYWRl
cjo6cmVhZENwcFN0eWxlQ29tbWVudCgpCi17Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVuZF8g
KQotICAgewotICAgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICAgIGlmICggIGMgPT0g
J1xyJyAgfHwgIGMgPT0gJ1xuJyApCi0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVybiB0
cnVlOwotfQotCi0KLXZvaWQgCi1SZWFkZXI6OnJlYWROdW1iZXIoKQotewotICAgd2hpbGUgKCBj
dXJyZW50XyAhPSBlbmRfICkKLSAgIHsKLSAgICAgIGlmICggISgqY3VycmVudF8gPj0gJzAnICAm
JiAgKmN1cnJlbnRfIDw9ICc5JykgICYmCi0gICAgICAgICAgICFpbiggKmN1cnJlbnRfLCAnLics
ICdlJywgJ0UnLCAnKycsICctJyApICkKLSAgICAgICAgIGJyZWFrOwotICAgICAgKytjdXJyZW50
XzsKLSAgIH0KLX0KLQotYm9vbAotUmVhZGVyOjpyZWFkU3RyaW5nKCkKLXsKLSAgIENoYXIgYyA9
IDA7Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVuZF8gKQotICAgewotICAgICAgYyA9IGdldE5l
eHRDaGFyKCk7Ci0gICAgICBpZiAoIGMgPT0gJ1xcJyApCi0gICAgICAgICBnZXROZXh0Q2hhcigp
OwotICAgICAgZWxzZSBpZiAoIGMgPT0gJyInICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAg
cmV0dXJuIGMgPT0gJyInOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OnJlYWRPYmplY3QoIFRva2Vu
ICYvKnRva2VuU3RhcnQqLyApCi17Ci0gICBUb2tlbiB0b2tlbk5hbWU7Ci0gICBzdGQ6OnN0cmlu
ZyBuYW1lOwotICAgY3VycmVudFZhbHVlKCkgPSBWYWx1ZSggb2JqZWN0VmFsdWUgKTsKLSAgIHdo
aWxlICggcmVhZFRva2VuKCB0b2tlbk5hbWUgKSApCi0gICB7Ci0gICAgICBib29sIGluaXRpYWxU
b2tlbk9rID0gdHJ1ZTsKLSAgICAgIHdoaWxlICggdG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29t
bWVudCAgJiYgIGluaXRpYWxUb2tlbk9rICkKLSAgICAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVh
ZFRva2VuKCB0b2tlbk5hbWUgKTsKLSAgICAgIGlmICAoICFpbml0aWFsVG9rZW5PayApCi0gICAg
ICAgICBicmVhazsKLSAgICAgIGlmICggdG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2JqZWN0RW5k
ICAmJiAgbmFtZS5lbXB0eSgpICkgIC8vIGVtcHR5IG9iamVjdAotICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICBpZiAoIHRva2VuTmFtZS50eXBlXyAhPSB0b2tlblN0cmluZyApCi0gICAgICAg
ICBicmVhazsKLSAgICAgIAotICAgICAgbmFtZSA9ICIiOwotICAgICAgaWYgKCAhZGVjb2RlU3Ry
aW5nKCB0b2tlbk5hbWUsIG5hbWUgKSApCi0gICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJv
ciggdG9rZW5PYmplY3RFbmQgKTsKLQotICAgICAgVG9rZW4gY29sb247Ci0gICAgICBpZiAoICFy
ZWFkVG9rZW4oIGNvbG9uICkgfHwgIGNvbG9uLnR5cGVfICE9IHRva2VuTWVtYmVyU2VwYXJhdG9y
ICkKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoICJNaXNzaW5n
ICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbG9uLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRva2VuT2JqZWN0RW5kICk7Ci0gICAgICB9Ci0gICAgICBWYWx1ZSAmdmFsdWUgPSBjdXJyZW50
VmFsdWUoKVsgbmFtZSBdOwotICAgICAgbm9kZXNfLnB1c2goICZ2YWx1ZSApOwotICAgICAgYm9v
bCBvayA9IHJlYWRWYWx1ZSgpOwotICAgICAgbm9kZXNfLnBvcCgpOwotICAgICAgaWYgKCAhb2sg
KSAvLyBlcnJvciBhbHJlYWR5IHNldAotICAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Io
IHRva2VuT2JqZWN0RW5kICk7Ci0KLSAgICAgIFRva2VuIGNvbW1hOwotICAgICAgaWYgKCAhcmVh
ZFRva2VuKCBjb21tYSApCi0gICAgICAgICAgICB8fCAgKCBjb21tYS50eXBlXyAhPSB0b2tlbk9i
amVjdEVuZCAgJiYgIAotICAgICAgICAgICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJh
eVNlcGFyYXRvciAmJgotICAgICAgICAgICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5Db21t
ZW50ICkgKQotICAgICAgewotICAgICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlciggIk1p
c3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbW1hLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRva2VuT2JqZWN0RW5kICk7Ci0gICAgICB9Ci0gICAgICBib29sIGZpbmFsaXpl
VG9rZW5PayA9IHRydWU7Ci0gICAgICB3aGlsZSAoIGNvbW1hLnR5cGVfID09IHRva2VuQ29tbWVu
dCAmJgotICAgICAgICAgICAgICBmaW5hbGl6ZVRva2VuT2sgKQotICAgICAgICAgZmluYWxpemVU
b2tlbk9rID0gcmVhZFRva2VuKCBjb21tYSApOwotICAgICAgaWYgKCBjb21tYS50eXBlXyA9PSB0
b2tlbk9iamVjdEVuZCApCi0gICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgIH0KLSAgIHJldHVybiBh
ZGRFcnJvckFuZFJlY292ZXIoICJNaXNzaW5nICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuTmFtZSwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0b2tlbk9iamVjdEVuZCApOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6
OnJlYWRBcnJheSggVG9rZW4gJi8qdG9rZW5TdGFydCovICkKLXsKLSAgIGN1cnJlbnRWYWx1ZSgp
ID0gVmFsdWUoIGFycmF5VmFsdWUgKTsKLSAgIHNraXBTcGFjZXMoKTsKLSAgIGlmICggKmN1cnJl
bnRfID09ICddJyApIC8vIGVtcHR5IGFycmF5Ci0gICB7Ci0gICAgICBUb2tlbiBlbmRBcnJheTsK
LSAgICAgIHJlYWRUb2tlbiggZW5kQXJyYXkgKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgfQot
ICAgaW50IGluZGV4ID0gMDsKLSAgIGZvciAoOzspCi0gICB7Ci0gICAgICBWYWx1ZSAmdmFsdWUg
PSBjdXJyZW50VmFsdWUoKVsgaW5kZXgrKyBdOwotICAgICAgbm9kZXNfLnB1c2goICZ2YWx1ZSAp
OwotICAgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOwotICAgICAgbm9kZXNfLnBvcCgpOwotICAg
ICAgaWYgKCAhb2sgKSAvLyBlcnJvciBhbHJlYWR5IHNldAotICAgICAgICAgcmV0dXJuIHJlY292
ZXJGcm9tRXJyb3IoIHRva2VuQXJyYXlFbmQgKTsKLQotICAgICAgVG9rZW4gdG9rZW47Ci0gICAg
ICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgotICAgICAg
b2sgPSByZWFkVG9rZW4oIHRva2VuICk7Ci0gICAgICB3aGlsZSAoIHRva2VuLnR5cGVfID09IHRv
a2VuQ29tbWVudCAgJiYgIG9rICkKLSAgICAgIHsKLSAgICAgICAgIG9rID0gcmVhZFRva2VuKCB0
b2tlbiApOwotICAgICAgfQotICAgICAgYm9vbCBiYWRUb2tlblR5cGUgPSAoIHRva2VuLnR5cGVf
ICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheUVuZCApOwotICAgICAgaWYgKCAhb2sgIHx8ICBiYWRU
b2tlblR5cGUgKQotICAgICAgewotICAgICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3Zlcigg
Ik1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbiIsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdG9rZW5BcnJheUVuZCApOwotICAgICAgfQotICAgICAgaWYgKCB0b2tlbi50
eXBlXyA9PSB0b2tlbkFycmF5RW5kICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJu
IHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2RlTnVtYmVyKCBUb2tlbiAmdG9rZW4g
KQotewotICAgYm9vbCBpc0RvdWJsZSA9IGZhbHNlOwotICAgZm9yICggTG9jYXRpb24gaW5zcGVj
dCA9IHRva2VuLnN0YXJ0XzsgaW5zcGVjdCAhPSB0b2tlbi5lbmRfOyArK2luc3BlY3QgKQotICAg
ewotICAgICAgaXNEb3VibGUgPSBpc0RvdWJsZSAgCi0gICAgICAgICAgICAgICAgIHx8ICBpbigg
Kmluc3BlY3QsICcuJywgJ2UnLCAnRScsICcrJyApICAKLSAgICAgICAgICAgICAgICAgfHwgICgg
Kmluc3BlY3QgPT0gJy0nICAmJiAgaW5zcGVjdCAhPSB0b2tlbi5zdGFydF8gKTsKLSAgIH0KLSAg
IGlmICggaXNEb3VibGUgKQotICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSggdG9rZW4gKTsKLSAg
IC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51
bWJlciBpcwotICAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZhbHVlIG9m
IGFuIGludGVnZXIgdGhlbgotICAgLy8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUu
Ci0gICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOwotICAgYm9vbCBpc05lZ2F0aXZl
ID0gKmN1cnJlbnQgPT0gJy0nOwotICAgaWYgKCBpc05lZ2F0aXZlICkKLSAgICAgICsrY3VycmVu
dDsKLSAgIFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPSBpc05lZ2F0aXZlID8g
VmFsdWU6Okxhcmdlc3RVSW50KC1WYWx1ZTo6bWluTGFyZ2VzdEludCkgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZhbHVlOjptYXhMYXJnZXN0
VUludDsKLSAgIFZhbHVlOjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUg
LyAxMDsKLSAgIFZhbHVlOjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7Ci0gICB3aGlsZSAoIGN1cnJl
bnQgPCB0b2tlbi5lbmRfICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAg
ICBpZiAoIGMgPCAnMCcgIHx8ICBjID4gJzknICkKLSAgICAgICAgIHJldHVybiBhZGRFcnJvcigg
IiciICsgc3RkOjpzdHJpbmcoIHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyApICsgIicgaXMgbm90
IGEgbnVtYmVyLiIsIHRva2VuICk7Ci0gICAgICBWYWx1ZTo6VUludCBkaWdpdChjIC0gJzAnKTsK
LSAgICAgIGlmICggdmFsdWUgPj0gdGhyZXNob2xkICkKLSAgICAgIHsKLSAgICAgICAgIC8vIFdl
J3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQg
ZG93bikuIElmCi0gICAgICAgICAvLyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUgbGlt
aXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQsIGFuZAotICAgICAgICAgLy8gYykgaXQncyBz
bWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9rYXkuCi0g
ICAgICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUgdG8gYXZv
aWQgb3ZlcmZsb3cuCi0gICAgICAgICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwKLSAgICAgICAg
ICAgICBjdXJyZW50ICE9IHRva2VuLmVuZF8gfHwKLSAgICAgICAgICAgICBkaWdpdCA+IG1heElu
dGVnZXJWYWx1ZSAlIDEwKQotICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGRlY29kZURv
dWJsZSggdG9rZW4gKTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHZhbHVlID0gdmFsdWUg
KiAxMCArIGRpZ2l0OwotICAgfQotICAgaWYgKCBpc05lZ2F0aXZlICkKLSAgICAgIGN1cnJlbnRW
YWx1ZSgpID0gLVZhbHVlOjpMYXJnZXN0SW50KCB2YWx1ZSApOwotICAgZWxzZSBpZiAoIHZhbHVl
IDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4SW50KSApCi0gICAgICBjdXJyZW50VmFs
dWUoKSA9IFZhbHVlOjpMYXJnZXN0SW50KCB2YWx1ZSApOwotICAgZWxzZQotICAgICAgY3VycmVu
dFZhbHVlKCkgPSB2YWx1ZTsKLSAgIHJldHVybiB0cnVlOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6
OmRlY29kZURvdWJsZSggVG9rZW4gJnRva2VuICkKLXsKLSAgIGRvdWJsZSB2YWx1ZSA9IDA7Ci0g
ICBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDMyOwotICAgaW50IGNvdW50OwotICAgaW50IGxlbmd0
aCA9IGludCh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfKTsKLQotICAgLy8gU2FuaXR5IGNoZWNr
IHRvIGF2b2lkIGJ1ZmZlciBvdmVyZmxvdyBleHBsb2l0cy4KLSAgIGlmIChsZW5ndGggPCAwKSB7
Ci0gICAgICByZXR1cm4gYWRkRXJyb3IoICJVbmFibGUgdG8gcGFyc2UgdG9rZW4gbGVuZ3RoIiwg
dG9rZW4gKTsKLSAgIH0KLQotICAgLy8gQXZvaWQgdXNpbmcgYSBzdHJpbmcgY29uc3RhbnQgZm9y
IHRoZSBmb3JtYXQgY29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KLSAgIC8vIHNzY2FuZiwgYXMgdGhp
cyBjYW4gY2F1c2UgaGFyZCB0byBkZWJ1ZyBjcmFzaGVzIG9uIE9TIFguIFNlZSBoZXJlIGZvciBt
b3JlCi0gICAvLyBpbmZvOgotICAgLy8KLSAgIC8vICAgICBodHRwOi8vZGV2ZWxvcGVyLmFwcGxl
LmNvbS9saWJyYXJ5L21hYy8jRE9DVU1FTlRBVElPTi9EZXZlbG9wZXJUb29scy9nY2MtNC4wLjEv
Z2NjL0luY29tcGF0aWJpbGl0aWVzLmh0bWwKLSAgIGNoYXIgZm9ybWF0W10gPSAiJWxmIjsKLQot
ICAgaWYgKCBsZW5ndGggPD0gYnVmZmVyU2l6ZSApCi0gICB7Ci0gICAgICBDaGFyIGJ1ZmZlclti
dWZmZXJTaXplKzFdOwotICAgICAgbWVtY3B5KCBidWZmZXIsIHRva2VuLnN0YXJ0XywgbGVuZ3Ro
ICk7Ci0gICAgICBidWZmZXJbbGVuZ3RoXSA9IDA7Ci0gICAgICBjb3VudCA9IHNzY2FuZiggYnVm
ZmVyLCBmb3JtYXQsICZ2YWx1ZSApOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgc3RkOjpz
dHJpbmcgYnVmZmVyKCB0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8gKTsKLSAgICAgIGNvdW50ID0g
c3NjYW5mKCBidWZmZXIuY19zdHIoKSwgZm9ybWF0LCAmdmFsdWUgKTsKLSAgIH0KLQotICAgaWYg
KCBjb3VudCAhPSAxICkKLSAgICAgIHJldHVybiBhZGRFcnJvciggIiciICsgc3RkOjpzdHJpbmco
IHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyApICsgIicgaXMgbm90IGEgbnVtYmVyLiIsIHRva2Vu
ICk7Ci0gICBjdXJyZW50VmFsdWUoKSA9IHZhbHVlOwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQot
Ym9vbCAKLVJlYWRlcjo6ZGVjb2RlU3RyaW5nKCBUb2tlbiAmdG9rZW4gKQotewotICAgc3RkOjpz
dHJpbmcgZGVjb2RlZDsKLSAgIGlmICggIWRlY29kZVN0cmluZyggdG9rZW4sIGRlY29kZWQgKSAp
Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBjdXJyZW50VmFsdWUoKSA9IGRlY29kZWQ7Ci0gICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotCi1ib29sIAotUmVhZGVyOjpkZWNvZGVTdHJpbmcoIFRva2VuICZ0
b2tlbiwgc3RkOjpzdHJpbmcgJmRlY29kZWQgKQotewotICAgZGVjb2RlZC5yZXNlcnZlKCB0b2tl
bi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMiApOwotICAgTG9jYXRpb24gY3VycmVudCA9IHRva2Vu
LnN0YXJ0XyArIDE7IC8vIHNraXAgJyInCi0gICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRfIC0g
MTsgICAgICAvLyBkbyBub3QgaW5jbHVkZSAnIicKLSAgIHdoaWxlICggY3VycmVudCAhPSBlbmQg
KQotICAgewotICAgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICAgIGlmICggYyA9PSAnIicg
KQotICAgICAgICAgYnJlYWs7Ci0gICAgICBlbHNlIGlmICggYyA9PSAnXFwnICkKLSAgICAgIHsK
LSAgICAgICAgIGlmICggY3VycmVudCA9PSBlbmQgKQotICAgICAgICAgICAgcmV0dXJuIGFkZEVy
cm9yKCAiRW1wdHkgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50ICk7
Ci0gICAgICAgICBDaGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7Ci0gICAgICAgICBzd2l0Y2ggKCBl
c2NhcGUgKQotICAgICAgICAgewotICAgICAgICAgY2FzZSAnIic6IGRlY29kZWQgKz0gJyInOyBi
cmVhazsKLSAgICAgICAgIGNhc2UgJy8nOiBkZWNvZGVkICs9ICcvJzsgYnJlYWs7Ci0gICAgICAg
ICBjYXNlICdcXCc6IGRlY29kZWQgKz0gJ1xcJzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICdiJzog
ZGVjb2RlZCArPSAnXGInOyBicmVhazsKLSAgICAgICAgIGNhc2UgJ2YnOiBkZWNvZGVkICs9ICdc
Zic7IGJyZWFrOwotICAgICAgICAgY2FzZSAnbic6IGRlY29kZWQgKz0gJ1xuJzsgYnJlYWs7Ci0g
ICAgICAgICBjYXNlICdyJzogZGVjb2RlZCArPSAnXHInOyBicmVhazsKLSAgICAgICAgIGNhc2Ug
J3QnOiBkZWNvZGVkICs9ICdcdCc7IGJyZWFrOwotICAgICAgICAgY2FzZSAndSc6Ci0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKLSAgICAgICAgICAg
ICAgIGlmICggIWRlY29kZVVuaWNvZGVDb2RlUG9pbnQoIHRva2VuLCBjdXJyZW50LCBlbmQsIHVu
aWNvZGUgKSApCi0gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAg
ICBkZWNvZGVkICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2RlKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBh
ZGRFcnJvciggIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQg
KTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgIHsKLSAgICAgICAgIGRl
Y29kZWQgKz0gYzsKLSAgICAgIH0KLSAgIH0KLSAgIHJldHVybiB0cnVlOworYm9vbCBPdXJSZWFk
ZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYg
KCFkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bAotUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KCBUb2tlbiAmdG9rZW4sIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uICZjdXJyZW50LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApCi17Citi
b29sIE91clJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQp
IHsKKyAgZG91YmxlIHZhbHVlID0gMDsKKyAgY29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKKyAg
aW50IGNvdW50OworICBwdHJkaWZmX3QgY29uc3QgbGVuZ3RoID0gdG9rZW4uZW5kXyAtIHRva2Vu
LnN0YXJ0XzsKKworICAvLyBTYW5pdHkgY2hlY2sgdG8gYXZvaWQgYnVmZmVyIG92ZXJmbG93IGV4
cGxvaXRzLgorICBpZiAobGVuZ3RoIDwgMCkgeworICAgIHJldHVybiBhZGRFcnJvcigiVW5hYmxl
IHRvIHBhcnNlIHRva2VuIGxlbmd0aCIsIHRva2VuKTsKKyAgfQorICBhdXRvIGNvbnN0IHVsZW5n
dGggPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCk7CisKKyAgLy8gQXZvaWQgdXNpbmcgYSBz
dHJpbmcgY29uc3RhbnQgZm9yIHRoZSBmb3JtYXQgY29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KKyAg
Ly8gc3NjYW5mLCBhcyB0aGlzIGNhbiBjYXVzZSBoYXJkIHRvIGRlYnVnIGNyYXNoZXMgb24gT1Mg
WC4gU2VlIGhlcmUgZm9yIG1vcmUKKyAgLy8gaW5mbzoKKyAgLy8KKyAgLy8gICAgIGh0dHA6Ly9k
ZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFjLyNET0NVTUVOVEFUSU9OL0RldmVsb3BlclRv
b2xzL2djYy00LjAuMS9nY2MvSW5jb21wYXRpYmlsaXRpZXMuaHRtbAorICBjaGFyIGZvcm1hdFtd
ID0gIiVsZiI7CisKKyAgaWYgKGxlbmd0aCA8PSBidWZmZXJTaXplKSB7CisgICAgQ2hhciBidWZm
ZXJbYnVmZmVyU2l6ZSArIDFdOworICAgIG1lbWNweShidWZmZXIsIHRva2VuLnN0YXJ0XywgdWxl
bmd0aCk7CisgICAgYnVmZmVyW2xlbmd0aF0gPSAwOworICAgIGZpeE51bWVyaWNMb2NhbGVJbnB1
dChidWZmZXIsIGJ1ZmZlciArIGxlbmd0aCk7CisgICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLCBm
b3JtYXQsICZ2YWx1ZSk7CisgIH0gZWxzZSB7CisgICAgU3RyaW5nIGJ1ZmZlcih0b2tlbi5zdGFy
dF8sIHRva2VuLmVuZF8pOworICAgIGNvdW50ID0gc3NjYW5mKGJ1ZmZlci5jX3N0cigpLCBmb3Jt
YXQsICZ2YWx1ZSk7CisgIH0KKworICBpZiAoY291bnQgIT0gMSkKKyAgICByZXR1cm4gYWRkRXJy
b3IoCisgICAgICAgICInIiArIFN0cmluZyh0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsgIicg
aXMgbm90IGEgbnVtYmVyLiIsIHRva2VuKTsKKyAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4g
dHJ1ZTsKK30KIAotICAgaWYgKCAhZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKCB0b2tlbiwg
Y3VycmVudCwgZW5kLCB1bmljb2RlICkgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgaWYgKHVu
aWNvZGUgPj0gMHhEODAwICYmIHVuaWNvZGUgPD0gMHhEQkZGKQotICAgewotICAgICAgLy8gc3Vy
cm9nYXRlIHBhaXJzCi0gICAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCi0gICAgICAgICByZXR1
cm4gYWRkRXJyb3IoICJhZGRpdGlvbmFsIHNpeCBjaGFyYWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNl
IHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIuIiwgdG9rZW4sIGN1cnJlbnQgKTsKLSAgICAgIHVuc2ln
bmVkIGludCBzdXJyb2dhdGVQYWlyOwotICAgICAgaWYgKCooY3VycmVudCsrKSA9PSAnXFwnICYm
ICooY3VycmVudCsrKT09ICd1JykKLSAgICAgIHsKLSAgICAgICAgIGlmIChkZWNvZGVVbmljb2Rl
RXNjYXBlU2VxdWVuY2UoIHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIgKSkKLSAg
ICAgICAgIHsKLSAgICAgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgz
RkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOwotICAgICAgICAgfSAKLSAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0gCi0gICAgICBlbHNl
Ci0gICAgICAgICByZXR1cm4gYWRkRXJyb3IoICJleHBlY3RpbmcgYW5vdGhlciBcXHUgdG9rZW4g
dG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mIGEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsIHRv
a2VuLCBjdXJyZW50ICk7Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCAKLVJlYWRl
cjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKCBUb2tlbiAmdG9rZW4sIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uICZjdXJyZW50LCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApCi17Ci0gICBp
ZiAoIGVuZCAtIGN1cnJlbnQgPCA0ICkKLSAgICAgIHJldHVybiBhZGRFcnJvciggIkJhZCB1bmlj
b2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsIHRv
a2VuLCBjdXJyZW50ICk7Ci0gICB1bmljb2RlID0gMDsKLSAgIGZvciAoIGludCBpbmRleCA9MDsg
aW5kZXggPCA0OyArK2luZGV4ICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0g
ICAgICB1bmljb2RlICo9IDE2OwotICAgICAgaWYgKCBjID49ICcwJyAgJiYgIGMgPD0gJzknICkK
LSAgICAgICAgIHVuaWNvZGUgKz0gYyAtICcwJzsKLSAgICAgIGVsc2UgaWYgKCBjID49ICdhJyAg
JiYgIGMgPD0gJ2YnICkKLSAgICAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOwotICAgICAg
ZWxzZSBpZiAoIGMgPj0gJ0EnICAmJiAgYyA8PSAnRicgKQotICAgICAgICAgdW5pY29kZSArPSBj
IC0gJ0EnICsgMTA7Ci0gICAgICBlbHNlCi0gICAgICAgICByZXR1cm4gYWRkRXJyb3IoICJCYWQg
dW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBl
Y3RlZC4iLCB0b2tlbiwgY3VycmVudCApOwotICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQot
Ym9vbCAKLVJlYWRlcjo6YWRkRXJyb3IoIGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNzYWdlLCAKLSAg
ICAgICAgICAgICAgICAgIFRva2VuICZ0b2tlbiwKLSAgICAgICAgICAgICAgICAgIExvY2F0aW9u
IGV4dHJhICkKLXsKLSAgIEVycm9ySW5mbyBpbmZvOwotICAgaW5mby50b2tlbl8gPSB0b2tlbjsK
LSAgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOwotICAgaW5mby5leHRyYV8gPSBleHRyYTsKLSAg
IGVycm9yc18ucHVzaF9iYWNrKCBpbmZvICk7Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotYm9v
bCAKLVJlYWRlcjo6cmVjb3ZlckZyb21FcnJvciggVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuICkK
LXsKLSAgIGludCBlcnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKLSAgIFRva2VuIHNr
aXA7Ci0gICBmb3IgKDs7KQotICAgewotICAgICAgaWYgKCAhcmVhZFRva2VuKHNraXApICkKLSAg
ICAgICAgIGVycm9yc18ucmVzaXplKCBlcnJvckNvdW50ICk7IC8vIGRpc2NhcmQgZXJyb3JzIGNh
dXNlZCBieSByZWNvdmVyeQotICAgICAgaWYgKCBza2lwLnR5cGVfID09IHNraXBVbnRpbFRva2Vu
ICB8fCAgc2tpcC50eXBlXyA9PSB0b2tlbkVuZE9mU3RyZWFtICkKLSAgICAgICAgIGJyZWFrOwot
ICAgfQotICAgZXJyb3JzXy5yZXNpemUoIGVycm9yQ291bnQgKTsKLSAgIHJldHVybiBmYWxzZTsK
LX0KLQotCi1ib29sIAotUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIoIGNvbnN0IHN0ZDo6c3Ry
aW5nICZtZXNzYWdlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiAmdG9rZW4s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuICkK
LXsKLSAgIGFkZEVycm9yKCBtZXNzYWdlLCB0b2tlbiApOwotICAgcmV0dXJuIHJlY292ZXJGcm9t
RXJyb3IoIHNraXBVbnRpbFRva2VuICk7Ci19Ci0KLQotVmFsdWUgJgotUmVhZGVyOjpjdXJyZW50
VmFsdWUoKQotewotICAgcmV0dXJuICoobm9kZXNfLnRvcCgpKTsKLX0KLQotCi1SZWFkZXI6OkNo
YXIgCi1SZWFkZXI6OmdldE5leHRDaGFyKCkKLXsKLSAgIGlmICggY3VycmVudF8gPT0gZW5kXyAp
Ci0gICAgICByZXR1cm4gMDsKLSAgIHJldHVybiAqY3VycmVudF8rKzsKLX0KLQotCi12b2lkIAot
UmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oIExvY2F0aW9uIGxvY2F0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAmbGluZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgJmNvbHVtbiApIGNvbnN0Ci17Ci0gICBMb2NhdGlvbiBj
dXJyZW50ID0gYmVnaW5fOwotICAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0g
ICBsaW5lID0gMDsKLSAgIHdoaWxlICggY3VycmVudCA8IGxvY2F0aW9uICAmJiAgY3VycmVudCAh
PSBlbmRfICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICBpZiAoIGMg
PT0gJ1xyJyApCi0gICAgICB7Ci0gICAgICAgICBpZiAoICpjdXJyZW50ID09ICdcbicgKQotICAg
ICAgICAgICAgKytjdXJyZW50OwotICAgICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0g
ICAgICAgICArK2xpbmU7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICggYyA9PSAnXG4nICkKLSAg
ICAgIHsKLSAgICAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OwotICAgICAgICAgKytsaW5l
OworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pIHsKKyAgU3RyaW5n
IGRlY29kZWRfc3RyaW5nOworICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJp
bmcpKQorICAgIHJldHVybiBmYWxzZTsKKyAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7
CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBTdHJpbmcmIGRl
Y29kZWQpIHsKKyAgZGVjb2RlZC5yZXNlcnZlKHN0YXRpY19jYXN0PHNpemVfdD4odG9rZW4uZW5k
XyAtIHRva2VuLnN0YXJ0XyAtIDIpKTsKKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0
XyArIDE7IC8vIHNraXAgJyInCisgIExvY2F0aW9uIGVuZCA9IHRva2VuLmVuZF8gLSAxOyAgICAg
ICAvLyBkbyBub3QgaW5jbHVkZSAnIicKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7CisgICAg
Q2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAg
ICBlbHNlIGlmIChjID09ICdcXCcpIHsKKyAgICAgIGlmIChjdXJyZW50ID09IGVuZCkKKyAgICAg
ICAgcmV0dXJuIGFkZEVycm9yKCJFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9r
ZW4sIGN1cnJlbnQpOworICAgICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsrOworICAgICAgc3dp
dGNoIChlc2NhcGUpIHsKKyAgICAgIGNhc2UgJyInOgorICAgICAgICBkZWNvZGVkICs9ICciJzsK
KyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICcvJzoKKyAgICAgICAgZGVjb2RlZCArPSAnLyc7
CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnXFwnOgorICAgICAgICBkZWNvZGVkICs9ICdc
XCc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnYic6CisgICAgICAgIGRlY29kZWQgKz0g
J1xiJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdmJzoKKyAgICAgICAgZGVjb2RlZCAr
PSAnXGYnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ24nOgorICAgICAgICBkZWNvZGVk
ICs9ICdcbic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncic6CisgICAgICAgIGRlY29k
ZWQgKz0gJ1xyJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd0JzoKKyAgICAgICAgZGVj
b2RlZCArPSAnXHQnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3UnOiB7CisgICAgICAg
IHVuc2lnbmVkIGludCB1bmljb2RlOworICAgICAgICBpZiAoIWRlY29kZVVuaWNvZGVDb2RlUG9p
bnQodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBkZWNvZGVkICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2RlKTsKKyAgICAgIH0g
YnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkJhZCBlc2Nh
cGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOwogICAgICAgfQotICAgfQot
ICAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCi0gICBjb2x1bW4gPSBpbnQobG9jYXRpb24g
LSBsYXN0TGluZVN0YXJ0KSArIDE7Ci0gICArK2xpbmU7CisgICAgfSBlbHNlIHsKKyAgICAgIGRl
Y29kZWQgKz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgT3VyUmVh
ZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisKKyAgaWYg
KCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29k
ZSkpCisgICAgcmV0dXJuIGZhbHNlOworICBpZiAodW5pY29kZSA+PSAweEQ4MDAgJiYgdW5pY29k
ZSA8PSAweERCRkYpIHsKKyAgICAvLyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAoZW5kIC0gY3Vy
cmVudCA8IDYpCisgICAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFkZGl0aW9uYWwg
c2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4i
LAorICAgICAgICAgIHRva2VuLCBjdXJyZW50KTsKKyAgICBpZiAoKihjdXJyZW50KyspID09ICdc
XCcgJiYgKihjdXJyZW50KyspID09ICd1JykgeworICAgICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0
ZVBhaXI7CisgICAgICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJy
ZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIpKSB7CisgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsg
KCh1bmljb2RlICYgMHgzRkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOworICAg
ICAgfSBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgIHJldHVy
biBhZGRFcnJvcigiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNv
bmQgaGFsZiBvZiAiCisgICAgICAgICAgICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUg
cGFpciIsCisgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIGN1cnJlbnQpOworICB9CisgIHJl
dHVybiB0cnVlOworfQogCi1zdGQ6OnN0cmluZwotUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRD
b2x1bW4oIExvY2F0aW9uIGxvY2F0aW9uICkgY29uc3QKLXsKLSAgIGludCBsaW5lLCBjb2x1bW47
Ci0gICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oIGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4gKTsK
LSAgIGNoYXIgYnVmZmVyWzE4KzE2KzE2KzFdOwotICAgc3ByaW50ZiggYnVmZmVyLCAiTGluZSAl
ZCwgQ29sdW1uICVkIiwgbGluZSwgY29sdW1uICk7Ci0gICByZXR1cm4gYnVmZmVyOworYm9vbCBP
dXJSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBl
bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgcmV0X3VuaWNvZGUpIHsKKyAgaWYgKGVuZCAtIGN1cnJlbnQgPCA0KQorICAgIHJldHVy
biBhZGRFcnJvcigKKyAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJp
bmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsIHRva2VuLAorICAgICAgICBjdXJyZW50KTsKKyAg
aW50IHVuaWNvZGUgPSAwOworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytpbmRl
eCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgdW5pY29kZSAqPSAxNjsKKyAgICBp
ZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICB1bmljb2RlICs9IGMgLSAnMCc7CisgICAg
ZWxzZSBpZiAoYyA+PSAnYScgJiYgYyA8PSAnZicpCisgICAgICB1bmljb2RlICs9IGMgLSAnYScg
KyAxMDsKKyAgICBlbHNlIGlmIChjID49ICdBJyAmJiBjIDw9ICdGJykKKyAgICAgIHVuaWNvZGUg
Kz0gYyAtICdBJyArIDEwOworICAgIGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAg
ICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwg
ZGlnaXQgZXhwZWN0ZWQuIiwKKyAgICAgICAgICB0b2tlbiwgY3VycmVudCk7CisgIH0KKyAgcmV0
X3VuaWNvZGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHVuaWNvZGUpOworICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBPdXJSZWFkZXI6OmFkZEVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSkgeworICBFcnJvckluZm8gaW5mbzsKKyAg
aW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8u
ZXh0cmFfID0gZXh0cmE7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gZmFs
c2U7Cit9CiAKLS8vIERlcHJlY2F0ZWQuIFByZXNlcnZlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJp
bGl0eQotc3RkOjpzdHJpbmcgCi1SZWFkZXI6OmdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKLX0KLQotCi1z
dGQ6OnN0cmluZyAKLVJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0Ci17
Ci0gICBzdGQ6OnN0cmluZyBmb3JtYXR0ZWRNZXNzYWdlOwotICAgZm9yICggRXJyb3JzOjpjb25z
dF9pdGVyYXRvciBpdEVycm9yID0gZXJyb3JzXy5iZWdpbigpOwotICAgICAgICAgaXRFcnJvciAh
PSBlcnJvcnNfLmVuZCgpOwotICAgICAgICAgKytpdEVycm9yICkKLSAgIHsKLSAgICAgIGNvbnN0
IEVycm9ySW5mbyAmZXJyb3IgPSAqaXRFcnJvcjsKLSAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0g
IiogIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbiggZXJyb3IudG9rZW5fLnN0YXJ0XyApICsg
IlxuIjsKLSAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsg
IlxuIjsKLSAgICAgIGlmICggZXJyb3IuZXh0cmFfICkKLSAgICAgICAgIGZvcm1hdHRlZE1lc3Nh
Z2UgKz0gIlNlZSAiICsgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKCBlcnJvci5leHRyYV8gKSAr
ICIgZm9yIGRldGFpbC5cbiI7Ci0gICB9Ci0gICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKLX0K
LQotCi1zdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oIHN0ZDo6aXN0cmVhbSAmc2luLCBWYWx1ZSAm
cm9vdCApCi17Ci0gICAgSnNvbjo6UmVhZGVyIHJlYWRlcjsKLSAgICBib29sIG9rID0gcmVhZGVy
LnBhcnNlKHNpbiwgcm9vdCwgdHJ1ZSk7Ci0gICAgaWYgKCFvaykgewotICAgICAgZnByaW50ZigK
LSAgICAgICAgICBzdGRlcnIsCi0gICAgICAgICAgIkVycm9yIGZyb20gcmVhZGVyOiAlcyIsCi0g
ICAgICAgICAgcmVhZGVyLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKS5jX3N0cigpKTsKLQot
ICAgICAgSlNPTl9GQUlMX01FU1NBR0UoInJlYWRlciBlcnJvciIpOworYm9vbCBPdXJSZWFkZXI6
OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIHNpemVfdCBl
cnJvckNvdW50ID0gZXJyb3JzXy5zaXplKCk7CisgIFRva2VuIHNraXA7CisgIGZvciAoOzspIHsK
KyAgICBpZiAoIXJlYWRUb2tlbihza2lwKSkKKyAgICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291
bnQpOyAvLyBkaXNjYXJkIGVycm9ycyBjYXVzZWQgYnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50
eXBlXyA9PSBza2lwVW50aWxUb2tlbiB8fCBza2lwLnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0p
CisgICAgICBicmVhazsKKyAgfQorICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsKKyAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIE91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9r
ZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUg
c2tpcFVudGlsVG9rZW4pIHsKKyAgYWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOworICByZXR1cm4g
cmVjb3ZlckZyb21FcnJvcihza2lwVW50aWxUb2tlbik7Cit9CisKK1ZhbHVlJiBPdXJSZWFkZXI6
OmN1cnJlbnRWYWx1ZSgpIHsgcmV0dXJuICoobm9kZXNfLnRvcCgpKTsgfQorCitPdXJSZWFkZXI6
OkNoYXIgT3VyUmVhZGVyOjpnZXROZXh0Q2hhcigpIHsKKyAgaWYgKGN1cnJlbnRfID09IGVuZF8p
CisgICAgcmV0dXJuIDA7CisgIHJldHVybiAqY3VycmVudF8rKzsKK30KKwordm9pZCBPdXJSZWFk
ZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBsaW5lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGNvbHVtbikgY29uc3QgeworICBMb2Nh
dGlvbiBjdXJyZW50ID0gYmVnaW5fOworICBMb2NhdGlvbiBsYXN0TGluZVN0YXJ0ID0gY3VycmVu
dDsKKyAgbGluZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgbG9jYXRpb24gJiYgY3VycmVudCAh
PSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7
CisgICAgICBpZiAoKmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgKytjdXJyZW50OworICAgICAg
bGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfSBlbHNlIGlmIChj
ID09ICdcbicpIHsKKyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKytsaW5l
OwogICAgIH0KLSAgICByZXR1cm4gc2luOworICB9CisgIC8vIGNvbHVtbiAmIGxpbmUgc3RhcnQg
YXQgMQorICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7CisgICsr
bGluZTsKK30KKworU3RyaW5nIE91clJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExv
Y2F0aW9uIGxvY2F0aW9uKSBjb25zdCB7CisgIGludCBsaW5lLCBjb2x1bW47CisgIGdldExvY2F0
aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKKyAgY2hhciBidWZmZXJb
MTggKyAxNiArIDE2ICsgMV07CisgIGpzb25jcHBfc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNvbHVtbik7CisgIHJldHVybiBidWZm
ZXI7Cit9CisKK1N0cmluZyBPdXJSZWFkZXI6OmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBj
b25zdCB7CisgIFN0cmluZyBmb3JtYXR0ZWRNZXNzYWdlOworICBmb3IgKGNvbnN0IGF1dG8mIGVy
cm9yIDogZXJyb3JzXykgeworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgIiogIiAr
IGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7Cisg
ICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOworICAg
IGlmIChlcnJvci5leHRyYV8pCisgICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9CisgICAgICAgICAg
IlNlZSAiICsgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGVycm9yLmV4dHJhXykgKyAiIGZvciBk
ZXRhaWwuXG4iOworICB9CisgIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOworfQorCitzdGQ6OnZl
Y3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gT3VyUmVhZGVyOjpnZXRTdHJ1Y3R1cmVk
RXJyb3JzKCkgY29uc3QgeworICBzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJv
cj4gYWxsRXJyb3JzOworICBmb3IgKGNvbnN0IGF1dG8mIGVycm9yIDogZXJyb3JzXykgeworICAg
IE91clJlYWRlcjo6U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7CisgICAgc3RydWN0dXJlZC5v
ZmZzZXRfc3RhcnQgPSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVy
ZWQub2Zmc2V0X2xpbWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBiZWdpbl87CisgICAgc3RydWN0
dXJlZC5tZXNzYWdlID0gZXJyb3IubWVzc2FnZV87CisgICAgYWxsRXJyb3JzLnB1c2hfYmFjayhz
dHJ1Y3R1cmVkKTsKKyAgfQorICByZXR1cm4gYWxsRXJyb3JzOworfQorCitib29sIE91clJlYWRl
cjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7
CisgIHB0cmRpZmZfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBpZiAodmFsdWUuZ2V0T2Zm
c2V0U3RhcnQoKSA+IGxlbmd0aCB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQor
ICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5F
cnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsK
KyAgdG9rZW4uZW5kXyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9y
SW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVz
c2FnZTsKKyAgaW5mby5leHRyYV8gPSBudWxscHRyOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZv
KTsKKyAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgT3VyUmVhZGVyOjpwdXNoRXJyb3IoY29uc3Qg
VmFsdWUmIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlJiBleHRyYSkgewor
ICBwdHJkaWZmX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYgKHZhbHVlLmdldE9mZnNl
dFN0YXJ0KCkgPiBsZW5ndGggfHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCB8fAor
ICAgICAgZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7
CisgIFRva2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0
YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBi
ZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5m
by50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0
cmFfID0gYmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAgZXJyb3JzXy5wdXNoX2Jh
Y2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6Z29vZCgpIGNv
bnN0IHsgcmV0dXJuIGVycm9yc18uZW1wdHkoKTsgfQorCitjbGFzcyBPdXJDaGFyUmVhZGVyIDog
cHVibGljIENoYXJSZWFkZXIgeworICBib29sIGNvbnN0IGNvbGxlY3RDb21tZW50c187CisgIE91
clJlYWRlciByZWFkZXJfOworCitwdWJsaWM6CisgIE91ckNoYXJSZWFkZXIoYm9vbCBjb2xsZWN0
Q29tbWVudHMsIE91ckZlYXR1cmVzIGNvbnN0JiBmZWF0dXJlcykKKyAgICAgIDogY29sbGVjdENv
bW1lbnRzXyhjb2xsZWN0Q29tbWVudHMpLCByZWFkZXJfKGZlYXR1cmVzKSB7fQorICBib29sIHBh
cnNlKGNoYXIgY29uc3QqIGJlZ2luRG9jLAorICAgICAgICAgICAgIGNoYXIgY29uc3QqIGVuZERv
YywKKyAgICAgICAgICAgICBWYWx1ZSogcm9vdCwKKyAgICAgICAgICAgICBTdHJpbmcqIGVycnMp
IG92ZXJyaWRlIHsKKyAgICBib29sIG9rID0gcmVhZGVyXy5wYXJzZShiZWdpbkRvYywgZW5kRG9j
LCAqcm9vdCwgY29sbGVjdENvbW1lbnRzXyk7CisgICAgaWYgKGVycnMpIHsKKyAgICAgICplcnJz
ID0gcmVhZGVyXy5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCk7CisgICAgfQorICAgIHJldHVy
biBvazsKKyAgfQorfTsKKworQ2hhclJlYWRlckJ1aWxkZXI6OkNoYXJSZWFkZXJCdWlsZGVyKCkg
eyBzZXREZWZhdWx0cygmc2V0dGluZ3NfKTsgfQorQ2hhclJlYWRlckJ1aWxkZXI6On5DaGFyUmVh
ZGVyQnVpbGRlcigpID0gZGVmYXVsdDsKK0NoYXJSZWFkZXIqIENoYXJSZWFkZXJCdWlsZGVyOjpu
ZXdDaGFyUmVhZGVyKCkgY29uc3QgeworICBib29sIGNvbGxlY3RDb21tZW50cyA9IHNldHRpbmdz
X1siY29sbGVjdENvbW1lbnRzIl0uYXNCb29sKCk7CisgIE91ckZlYXR1cmVzIGZlYXR1cmVzID0g
T3VyRmVhdHVyZXM6OmFsbCgpOworICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IHNldHRpbmdz
X1siYWxsb3dDb21tZW50cyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHNl
dHRpbmdzX1sic3RyaWN0Um9vdCJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd0Ryb3BwZWRO
dWxsUGxhY2Vob2xkZXJzXyA9CisgICAgICBzZXR0aW5nc19bImFsbG93RHJvcHBlZE51bGxQbGFj
ZWhvbGRlcnMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBzZXR0
aW5nc19bImFsbG93TnVtZXJpY0tleXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTaW5n
bGVRdW90ZXNfID0gc2V0dGluZ3NfWyJhbGxvd1NpbmdsZVF1b3RlcyJdLmFzQm9vbCgpOworCisg
IC8vIFN0YWNrIGxpbWl0IGlzIGFsd2F5cyBhIHNpemVfdCwgc28gd2UgZ2V0IHRoaXMgYXMgYW4g
dW5zaWduZWQgaW50CisgIC8vIHJlZ2FyZGxlc3Mgb2YgaXQgd2UgaGF2ZSA2NC1iaXQgaW50ZWdl
ciBzdXBwb3J0IGVuYWJsZWQuCisgIGZlYXR1cmVzLnN0YWNrTGltaXRfID0gc3RhdGljX2Nhc3Q8
c2l6ZV90PihzZXR0aW5nc19bInN0YWNrTGltaXQiXS5hc1VJbnQoKSk7CisgIGZlYXR1cmVzLmZh
aWxJZkV4dHJhXyA9IHNldHRpbmdzX1siZmFpbElmRXh0cmEiXS5hc0Jvb2woKTsKKyAgZmVhdHVy
ZXMucmVqZWN0RHVwS2V5c18gPSBzZXR0aW5nc19bInJlamVjdER1cEtleXMiXS5hc0Jvb2woKTsK
KyAgZmVhdHVyZXMuYWxsb3dTcGVjaWFsRmxvYXRzXyA9IHNldHRpbmdzX1siYWxsb3dTcGVjaWFs
RmxvYXRzIl0uYXNCb29sKCk7CisgIHJldHVybiBuZXcgT3VyQ2hhclJlYWRlcihjb2xsZWN0Q29t
bWVudHMsIGZlYXR1cmVzKTsKK30KK3N0YXRpYyB2b2lkIGdldFZhbGlkUmVhZGVyS2V5cyhzdGQ6
OnNldDxTdHJpbmc+KiB2YWxpZF9rZXlzKSB7CisgIHZhbGlkX2tleXMtPmNsZWFyKCk7CisgIHZh
bGlkX2tleXMtPmluc2VydCgiY29sbGVjdENvbW1lbnRzIik7CisgIHZhbGlkX2tleXMtPmluc2Vy
dCgiYWxsb3dDb21tZW50cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInN0cmljdFJvb3QiKTsK
KyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIik7Cisg
IHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dOdW1lcmljS2V5cyIpOworICB2YWxpZF9rZXlzLT5p
bnNlcnQoImFsbG93U2luZ2xlUXVvdGVzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgic3RhY2tM
aW1pdCIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImZhaWxJZkV4dHJhIik7CisgIHZhbGlkX2tl
eXMtPmluc2VydCgicmVqZWN0RHVwS2V5cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93
U3BlY2lhbEZsb2F0cyIpOworfQorYm9vbCBDaGFyUmVhZGVyQnVpbGRlcjo6dmFsaWRhdGUoSnNv
bjo6VmFsdWUqIGludmFsaWQpIGNvbnN0IHsKKyAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKKyAg
aWYgKCFpbnZhbGlkKQorICAgIGludmFsaWQgPSAmbXlfaW52YWxpZDsgLy8gc28gd2UgZG8gbm90
IG5lZWQgdG8gdGVzdCBmb3IgTlVMTAorICBKc29uOjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7Cisg
IHN0ZDo6c2V0PFN0cmluZz4gdmFsaWRfa2V5czsKKyAgZ2V0VmFsaWRSZWFkZXJLZXlzKCZ2YWxp
ZF9rZXlzKTsKKyAgVmFsdWU6Ok1lbWJlcnMga2V5cyA9IHNldHRpbmdzXy5nZXRNZW1iZXJOYW1l
cygpOworICBzaXplX3QgbiA9IGtleXMuc2l6ZSgpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG47ICsraSkgeworICAgIFN0cmluZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKKyAgICBpZiAodmFs
aWRfa2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQoKSkgeworICAgICAgaW52W2tleV0g
PSBzZXR0aW5nc19ba2V5XTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIGludi5lbXB0eSgpOworfQor
VmFsdWUmIENoYXJSZWFkZXJCdWlsZGVyOjpvcGVyYXRvcltdKGNvbnN0IFN0cmluZyYga2V5KSB7
CisgIHJldHVybiBzZXR0aW5nc19ba2V5XTsKK30KKy8vIHN0YXRpYwordm9pZCBDaGFyUmVhZGVy
QnVpbGRlcjo6c3RyaWN0TW9kZShKc29uOjpWYWx1ZSogc2V0dGluZ3MpIHsKKyAgLy8hIFtDaGFy
UmVhZGVyQnVpbGRlclN0cmljdE1vZGVdCisgICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0g
PSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IHRydWU7CisgICgqc2V0dGlu
Z3MpWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5n
cylbImFsbG93TnVtZXJpY0tleXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dTaW5n
bGVRdW90ZXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAwMDsK
KyAgKCpzZXR0aW5ncylbImZhaWxJZkV4dHJhIl0gPSB0cnVlOworICAoKnNldHRpbmdzKVsicmVq
ZWN0RHVwS2V5cyJdID0gdHJ1ZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJd
ID0gZmFsc2U7CisgIC8vISBbQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlXQorfQorLy8gc3Rh
dGljCit2b2lkIENoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0
dGluZ3MpIHsKKyAgLy8hIFtDaGFyUmVhZGVyQnVpbGRlckRlZmF1bHRzXQorICAoKnNldHRpbmdz
KVsiY29sbGVjdENvbW1lbnRzIl0gPSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dDb21tZW50
cyJdID0gdHJ1ZTsKKyAgKCpzZXR0aW5ncylbInN0cmljdFJvb3QiXSA9IGZhbHNlOworICAoKnNl
dHRpbmdzKVsiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdID0gZmFsc2U7CisgICgqc2V0
dGluZ3MpWyJhbGxvd051bWVyaWNLZXlzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93
U2luZ2xlUXVvdGVzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbInN0YWNrTGltaXQiXSA9IDEw
MDA7CisgICgqc2V0dGluZ3MpWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7CisgICgqc2V0dGluZ3Mp
WyJyZWplY3REdXBLZXlzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZs
b2F0cyJdID0gZmFsc2U7CisgIC8vISBbQ2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0c10KK30KKwor
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gZ2xvYmFsIGZ1bmN0aW9ucwor
Citib29sIHBhcnNlRnJvbVN0cmVhbShDaGFyUmVhZGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0LAor
ICAgICAgICAgICAgICAgICAgICAgSVN0cmVhbSYgc2luLAorICAgICAgICAgICAgICAgICAgICAg
VmFsdWUqIHJvb3QsCisgICAgICAgICAgICAgICAgICAgICBTdHJpbmcqIGVycnMpIHsKKyAgT1N0
cmluZ1N0cmVhbSBzc2luOworICBzc2luIDw8IHNpbi5yZGJ1ZigpOworICBTdHJpbmcgZG9jID0g
c3Npbi5zdHIoKTsKKyAgY2hhciBjb25zdCogYmVnaW4gPSBkb2MuZGF0YSgpOworICBjaGFyIGNv
bnN0KiBlbmQgPSBiZWdpbiArIGRvYy5zaXplKCk7CisgIC8vIE5vdGUgdGhhdCB3ZSBkbyBub3Qg
YWN0dWFsbHkgbmVlZCBhIG51bGwtdGVybWluYXRvci4KKyAgQ2hhclJlYWRlclB0ciBjb25zdCBy
ZWFkZXIoZmFjdC5uZXdDaGFyUmVhZGVyKCkpOworICByZXR1cm4gcmVhZGVyLT5wYXJzZShiZWdp
biwgZW5kLCByb290LCBlcnJzKTsKK30KKworSVN0cmVhbSYgb3BlcmF0b3I+PihJU3RyZWFtJiBz
aW4sIFZhbHVlJiByb290KSB7CisgIENoYXJSZWFkZXJCdWlsZGVyIGI7CisgIFN0cmluZyBlcnJz
OworICBib29sIG9rID0gcGFyc2VGcm9tU3RyZWFtKGIsIHNpbiwgJnJvb3QsICZlcnJzKTsKKyAg
aWYgKCFvaykgeworICAgIHRocm93UnVudGltZUVycm9yKGVycnMpOworICB9CisgIHJldHVybiBz
aW47Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9q
c29uL2pzb25fdG9vbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl90b29sLmgKaW5kZXggNjU4
MDMxYmJiYTM5NjA3NTk4MWE4ODgxYzk0ZDFhMjUyOGMyN2M1YS4uNWMxM2YxZmVkMjA3ZDU4NmI5
M2VjZWNkYWM4ZDQ1ZTczNTcyODlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNv
bl90b29sLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl90b29sLmgKQEAgLTEsMTAgKzEs
MjMgQEAKLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5
cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9y
cwogLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYg
ZGVzaXJlZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUg
ZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vm
b3JnZS5uZXQvTElDRU5TRQogCiAjaWZuZGVmIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xV
REVECi0jIGRlZmluZSBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorI2RlZmluZSBM
SUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCisjaW5jbHVkZSA8anNvbi9jb25maWcuaD4KKyNlbmRpZgorCisvLyBBbHNv
IHN1cHBvcnQgb2xkIGZsYWcgTk9fTE9DQUxFX1NVUFBPUlQKKyNpZmRlZiBOT19MT0NBTEVfU1VQ
UE9SVAorI2RlZmluZSBKU09OQ1BQX05PX0xPQ0FMRV9TVVBQT1JUCisjZW5kaWYKKworI2lmbmRl
ZiBKU09OQ1BQX05PX0xPQ0FMRV9TVVBQT1JUCisjaW5jbHVkZSA8Y2xvY2FsZT4KKyNlbmRpZgog
CiAvKiBUaGlzIGhlYWRlciBwcm92aWRlcyBjb21tb24gc3RyaW5nIG1hbmlwdWxhdGlvbiBzdXBw
b3J0LCBzdWNoIGFzIFVURi04LAogICogcG9ydGFibGUgY29udmVyc2lvbiBmcm9tL3RvIHN0cmlu
Zy4uLgpAQCAtMTMsODEgKzI2LDEwOSBAQAogICovCiAKIG5hbWVzcGFjZSBKc29uIHsKK3N0YXRp
YyBpbmxpbmUgY2hhciBnZXREZWNpbWFsUG9pbnQoKSB7CisjaWZkZWYgSlNPTkNQUF9OT19MT0NB
TEVfU1VQUE9SVAorICByZXR1cm4gJ1wwJzsKKyNlbHNlCisgIHN0cnVjdCBsY29udiogbGMgPSBs
b2NhbGVjb252KCk7CisgIHJldHVybiBsYyA/ICoobGMtPmRlY2ltYWxfcG9pbnQpIDogJ1wwJzsK
KyNlbmRpZgorfQogCiAvLy8gQ29udmVydHMgYSB1bmljb2RlIGNvZGUtcG9pbnQgdG8gVVRGLTgu
Ci1zdGF0aWMgaW5saW5lIHN0ZDo6c3RyaW5nIAotY29kZVBvaW50VG9VVEY4KHVuc2lnbmVkIGlu
dCBjcCkKLXsKLSAgIHN0ZDo6c3RyaW5nIHJlc3VsdDsKLSAgIAotICAgLy8gYmFzZWQgb24gZGVz
Y3JpcHRpb24gZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04Ci0KLSAgIGlm
IChjcCA8PSAweDdmKSAKLSAgIHsKLSAgICAgIHJlc3VsdC5yZXNpemUoMSk7Ci0gICAgICByZXN1
bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPihjcCk7Ci0gICB9IAotICAgZWxzZSBpZiAoY3AgPD0g
MHg3RkYpIAotICAgewotICAgICAgcmVzdWx0LnJlc2l6ZSgyKTsKLSAgICAgIHJlc3VsdFsxXSA9
IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgICByZXN1bHRbMF0g
PSBzdGF0aWNfY2FzdDxjaGFyPigweEMwIHwgKDB4MWYgJiAoY3AgPj4gNikpKTsKLSAgIH0gCi0g
ICBlbHNlIGlmIChjcCA8PSAweEZGRkYpIAotICAgewotICAgICAgcmVzdWx0LnJlc2l6ZSgzKTsK
LSAgICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7
Ci0gICAgICByZXN1bHRbMV0gPSAweDgwIHwgc3RhdGljX2Nhc3Q8Y2hhcj4oKDB4M2YgJiAoY3Ag
Pj4gNikpKTsKLSAgICAgIHJlc3VsdFswXSA9IDB4RTAgfCBzdGF0aWNfY2FzdDxjaGFyPigoMHhm
ICYgKGNwID4+IDEyKSkpOwotICAgfQotICAgZWxzZSBpZiAoY3AgPD0gMHgxMEZGRkYpIAotICAg
ewotICAgICAgcmVzdWx0LnJlc2l6ZSg0KTsKLSAgICAgIHJlc3VsdFszXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgICByZXN1bHRbMl0gPSBzdGF0aWNfY2Fz
dDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gNikpKTsKLSAgICAgIHJlc3VsdFsxXSA9IHN0
YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIChjcCA+PiAxMikpKTsKLSAgICAgIHJlc3Vs
dFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RjAgfCAoMHg3ICYgKGNwID4+IDE4KSkpOwotICAg
fQotCi0gICByZXR1cm4gcmVzdWx0OwotfQorc3RhdGljIGlubGluZSBTdHJpbmcgY29kZVBvaW50
VG9VVEY4KHVuc2lnbmVkIGludCBjcCkgeworICBTdHJpbmcgcmVzdWx0OwogCisgIC8vIGJhc2Vk
IG9uIGRlc2NyaXB0aW9uIGZyb20gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOAog
Ci0vLy8gUmV0dXJucyB0cnVlIGlmIGNoIGlzIGEgY29udHJvbCBjaGFyYWN0ZXIgKGluIHJhbmdl
IFswLDMyWykuCi1zdGF0aWMgaW5saW5lIGJvb2wgCi1pc0NvbnRyb2xDaGFyYWN0ZXIoY2hhciBj
aCkKLXsKLSAgIHJldHVybiBjaCA+IDAgJiYgY2ggPD0gMHgxRjsKLX0KKyAgaWYgKGNwIDw9IDB4
N2YpIHsKKyAgICByZXN1bHQucmVzaXplKDEpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0
PGNoYXI+KGNwKTsKKyAgfSBlbHNlIGlmIChjcCA8PSAweDdGRikgeworICAgIHJlc3VsdC5yZXNp
emUoMik7CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYg
Y3ApKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPigweEMwIHwgKDB4MWYgJiAo
Y3AgPj4gNikpKTsKKyAgfSBlbHNlIGlmIChjcCA8PSAweEZGRkYpIHsKKyAgICByZXN1bHQucmVz
aXplKDMpOworICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAm
IGNwKSk7CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYg
KGNwID4+IDYpKSk7CisgICAgcmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhFMCB8ICgw
eGYgJiAoY3AgPj4gMTIpKSk7CisgIH0gZWxzZSBpZiAoY3AgPD0gMHgxMEZGRkYpIHsKKyAgICBy
ZXN1bHQucmVzaXplKDQpOworICAgIHJlc3VsdFszXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAg
fCAoMHgzZiAmIGNwKSk7CisgICAgcmVzdWx0WzJdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8
ICgweDNmICYgKGNwID4+IDYpKSk7CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4o
MHg4MCB8ICgweDNmICYgKGNwID4+IDEyKSkpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4RjAgfCAoMHg3ICYgKGNwID4+IDE4KSkpOworICB9CiAKKyAgcmV0dXJuIHJlc3Vs
dDsKK30KIAotZW51bSB7IAotICAgLy8vIENvbnN0YW50IHRoYXQgc3BlY2lmeSB0aGUgc2l6ZSBv
ZiB0aGUgYnVmZmVyIHRoYXQgbXVzdCBiZSBwYXNzZWQgdG8gdWludFRvU3RyaW5nLgotICAgdWlu
dFRvU3RyaW5nQnVmZmVyU2l6ZSA9IDMqc2l6ZW9mKExhcmdlc3RVSW50KSsxIAorZW51bSB7Cisg
IC8vLyBDb25zdGFudCB0aGF0IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0IG11
c3QgYmUgcGFzc2VkIHRvCisgIC8vLyB1aW50VG9TdHJpbmcuCisgIHVpbnRUb1N0cmluZ0J1ZmZl
clNpemUgPSAzICogc2l6ZW9mKExhcmdlc3RVSW50KSArIDEKIH07CiAKIC8vIERlZmluZXMgYSBj
aGFyIGJ1ZmZlciBmb3IgdXNlIHdpdGggdWludFRvU3RyaW5nKCkuCiB0eXBlZGVmIGNoYXIgVUlu
dFRvU3RyaW5nQnVmZmVyW3VpbnRUb1N0cmluZ0J1ZmZlclNpemVdOwogCi0KIC8qKiBDb252ZXJ0
cyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHRvIHN0cmluZy4KLSAqIEBwYXJhbSB2YWx1ZSBVbnNpZ25l
ZCBpbnRlcmdlciB0byBjb252ZXJ0IHRvIHN0cmluZwotICogQHBhcmFtIGN1cnJlbnQgSW5wdXQv
T3V0cHV0IHN0cmluZyBidWZmZXIuIAorICogQHBhcmFtIHZhbHVlIFVuc2lnbmVkIGludGVnZXIg
dG8gY29udmVydCB0byBzdHJpbmcKKyAqIEBwYXJhbSBjdXJyZW50IElucHV0L091dHB1dCBzdHJp
bmcgYnVmZmVyLgogICogICAgICAgIE11c3QgaGF2ZSBhdCBsZWFzdCB1aW50VG9TdHJpbmdCdWZm
ZXJTaXplIGNoYXJzIGZyZWUuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAKLXVpbnRUb1N0cmlu
ZyggTGFyZ2VzdFVJbnQgdmFsdWUsIAotICAgICAgICAgICAgICBjaGFyIComY3VycmVudCApCi17
Ci0gICAqLS1jdXJyZW50ID0gMDsKLSAgIGRvCi0gICB7Ci0gICAgICAqLS1jdXJyZW50ID0gY2hh
cih2YWx1ZSAlIDEwKSArICcwJzsKLSAgICAgIHZhbHVlIC89IDEwOwotICAgfQotICAgd2hpbGUg
KCB2YWx1ZSAhPSAwICk7CitzdGF0aWMgaW5saW5lIHZvaWQgdWludFRvU3RyaW5nKExhcmdlc3RV
SW50IHZhbHVlLCBjaGFyKiYgY3VycmVudCkgeworICAqLS1jdXJyZW50ID0gMDsKKyAgZG8gewor
ICAgICotLWN1cnJlbnQgPSBzdGF0aWNfY2FzdDxjaGFyPih2YWx1ZSAlIDEwVSArIHN0YXRpY19j
YXN0PHVuc2lnbmVkPignMCcpKTsKKyAgICB2YWx1ZSAvPSAxMDsKKyAgfSB3aGlsZSAodmFsdWUg
IT0gMCk7Cit9CisKKy8qKiBDaGFuZ2UgJywnIHRvICcuJyBldmVyeXdoZXJlIGluIGJ1ZmZlci4K
KyAqCisgKiBXZSBoYWQgYSBzb3BoaXN0aWNhdGVkIHdheSwgYnV0IGl0IGRpZCBub3Qgd29yayBp
biBXaW5DRS4KKyAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMv
anNvbmNwcC9wdWxsLzkKKyAqLwordGVtcGxhdGUgPHR5cGVuYW1lIEl0ZXI+IEl0ZXIgZml4TnVt
ZXJpY0xvY2FsZShJdGVyIGJlZ2luLCBJdGVyIGVuZCkgeworICBmb3IgKDsgYmVnaW4gIT0gZW5k
OyArK2JlZ2luKSB7CisgICAgaWYgKCpiZWdpbiA9PSAnLCcpIHsKKyAgICAgICpiZWdpbiA9ICcu
JzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIGJlZ2luOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUg
SXRlcj4gdm9pZCBmaXhOdW1lcmljTG9jYWxlSW5wdXQoSXRlciBiZWdpbiwgSXRlciBlbmQpIHsK
KyAgY2hhciBkZWNpbWFsUG9pbnQgPSBnZXREZWNpbWFsUG9pbnQoKTsKKyAgaWYgKGRlY2ltYWxQ
b2ludCA9PSAnXDAnIHx8IGRlY2ltYWxQb2ludCA9PSAnLicpIHsKKyAgICByZXR1cm47CisgIH0K
KyAgZm9yICg7IGJlZ2luICE9IGVuZDsgKytiZWdpbikgeworICAgIGlmICgqYmVnaW4gPT0gJy4n
KSB7CisgICAgICAqYmVnaW4gPSBkZWNpbWFsUG9pbnQ7CisgICAgfQorICB9Cit9CisKKy8qKgor
ICogUmV0dXJuIGl0ZXJhdG9yIHRoYXQgd291bGQgYmUgdGhlIG5ldyBlbmQgb2YgdGhlIHJhbmdl
IFtiZWdpbixlbmQpLCBpZiB3ZQorICogd2VyZSB0byBkZWxldGUgemVyb3MgaW4gdGhlIGVuZCBv
ZiBzdHJpbmcsIGJ1dCBub3QgdGhlIGxhc3QgemVybyBiZWZvcmUgJy4nLgorICovCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgSXRlcj4gSXRlciBmaXhaZXJvc0luVGhlRW5kKEl0ZXIgYmVnaW4sIEl0ZXIg
ZW5kKSB7CisgIGZvciAoOyBiZWdpbiAhPSBlbmQ7IC0tZW5kKSB7CisgICAgaWYgKCooZW5kIC0g
MSkgIT0gJzAnKSB7CisgICAgICByZXR1cm4gZW5kOworICAgIH0KKyAgICAvLyBEb24ndCBkZWxl
dGUgdGhlIGxhc3QgemVybyBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQuCisgICAgaWYgKGJlZ2lu
ICE9IChlbmQgLSAxKSAmJiAqKGVuZCAtIDIpID09ICcuJykgeworICAgICAgcmV0dXJuIGVuZDsK
KyAgICB9CisgIH0KKyAgcmV0dXJuIGVuZDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSnNvbiB7Cit9
IC8vIG5hbWVzcGFjZSBKc29uCiAKICNlbmRpZiAvLyBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9J
TkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAppbmRleCA5MWYzMTJlMWQ4NDFmZWUxZGMz
YWZkNDFiZjRjMDFjMWM5NzhlZWRhLi5kODEzYzE2YTBlOGQ4YmJmN2UzYTRhZjEzYWVlMDYxY2I2
NzQ5NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcApAQCAtMSw3NiArMSwxMzUgQEAKLS8v
IENvcHlyaWdodCAyMDExIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMTEgQmFw
dGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAK
ICNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8anNvbi9hc3Nl
cnRpb25zLmg+Ci0jIGluY2x1ZGUgPGpzb24vdmFsdWUuaD4KLSMgaW5jbHVkZSA8anNvbi93cml0
ZXIuaD4KLSMgaWZuZGVmIEpTT05fVVNFX1NJTVBMRV9JTlRFUk5BTF9BTExPQ0FUT1IKLSMgIGlu
Y2x1ZGUgImpzb25fYmF0Y2hhbGxvY2F0b3IuaCIKLSMgZW5kaWYgLy8gI2lmbmRlZiBKU09OX1VT
RV9TSU1QTEVfSU5URVJOQUxfQUxMT0NBVE9SCisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+
CisjaW5jbHVkZSA8anNvbi92YWx1ZS5oPgorI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CiAjZW5k
aWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8bWF0aC5o
PgorI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8Y3N0cmlu
Zz4KICNpbmNsdWRlIDxzc3RyZWFtPgogI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8c3Rk
ZXhjZXB0PgotI2luY2x1ZGUgPGNzdHJpbmc+Ci0jaW5jbHVkZSA8Y2Fzc2VydD4KICNpZmRlZiBK
U09OX1VTRV9DUFBUTAotIyBpbmNsdWRlIDxjcHB0bC9jb25zdHN0cmluZy5oPgorI2luY2x1ZGUg
PGNwcHRsL2NvbnN0c3RyaW5nLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIG1p
bigpCisjaW5jbHVkZSA8Y3N0ZGRlZj4gICAvLyBzaXplX3QKKworLy8gUHJvdmlkZSBpbXBsZW1l
bnRhdGlvbiBlcXVpdmFsZW50IG9mIHN0ZDo6c25wcmludGYgZm9yIG9sZGVyIF9NU0MgY29tcGls
ZXJzCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxOTAwCisjaW5jbHVkZSA8
c3RkYXJnLmg+CitzdGF0aWMgaW50IG1zdmNfcHJlMTkwMF9jOTlfdnNucHJpbnRmKGNoYXIqIG91
dEJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcCkgewor
ICBpbnQgY291bnQgPSAtMTsKKyAgaWYgKHNpemUgIT0gMCkKKyAgICBjb3VudCA9IF92c25wcmlu
dGZfcyhvdXRCdWYsIHNpemUsIF9UUlVOQ0FURSwgZm9ybWF0LCBhcCk7CisgIGlmIChjb3VudCA9
PSAtMSkKKyAgICBjb3VudCA9IF92c2NwcmludGYoZm9ybWF0LCBhcCk7CisgIHJldHVybiBjb3Vu
dDsKK30KKworaW50IEpTT05fQVBJIG1zdmNfcHJlMTkwMF9jOTlfc25wcmludGYoY2hhciogb3V0
QnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmb3Jt
YXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pIHsKKyAgdmFf
bGlzdCBhcDsKKyAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisgIGNvbnN0IGludCBjb3VudCA9IG1z
dmNfcHJlMTkwMF9jOTlfdnNucHJpbnRmKG91dEJ1Ziwgc2l6ZSwgZm9ybWF0LCBhcCk7CisgIHZh
X2VuZChhcCk7CisgIHJldHVybiBjb3VudDsKK30KKyNlbmRpZgorCisvLyBEaXNhYmxlIHdhcm5p
bmcgQzQ3MDIgOiB1bnJlYWNoYWJsZSBjb2RlCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNwcmFn
bWEgd2FybmluZyhkaXNhYmxlIDogNDcwMikKICNlbmRpZgotI2luY2x1ZGUgPGNzdGRkZWY+ICAg
IC8vIHNpemVfdAogCi0jZGVmaW5lIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFIGFzc2VydCggZmFs
c2UgKQorI2RlZmluZSBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRSBhc3NlcnQoZmFsc2UpCiAKIG5h
bWVzcGFjZSBKc29uIHsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxUPiBjbG9uZVVuaXF1ZShjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8VD4mIHApIHsKKyAgc3Rk
Ojp1bmlxdWVfcHRyPFQ+IHI7CisgIGlmIChwKSB7CisgICAgciA9IHN0ZDo6dW5pcXVlX3B0cjxU
PihuZXcgVCgqcCkpOworICB9CisgIHJldHVybiByOworfQorCisvLyBUaGlzIGlzIGEgd2Fsa2Fy
b3VuZCB0byBhdm9pZCB0aGUgc3RhdGljIGluaXRpYWxpemF0aW9uIG9mIFZhbHVlOjpudWxsLgor
Ly8ga051bGwgbXVzdCBiZSB3b3JkLWFsaWduZWQgdG8gYXZvaWQgY3Jhc2hpbmcgb24gQVJNLiAg
V2UgdXNlIGFuIGFsaWdubWVudCBvZgorLy8gOCAoaW5zdGVhZCBvZiA0KSBhcyBhIGJpdCBvZiBm
dXR1cmUtcHJvb2ZpbmcuCisjaWYgZGVmaW5lZChfX0FSTUVMX18pCisjZGVmaW5lIEFMSUdOQVMo
Ynl0ZV9hbGlnbm1lbnQpIF9fYXR0cmlidXRlX18oKGFsaWduZWQoYnl0ZV9hbGlnbm1lbnQpKSkK
KyNlbHNlCisjZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpCisjZW5kaWYKKworLy8gc3Rh
dGljCitWYWx1ZSBjb25zdCYgVmFsdWU6Om51bGxTaW5nbGV0b24oKSB7CisgIHN0YXRpYyBWYWx1
ZSBjb25zdCBudWxsU3RhdGljOworICByZXR1cm4gbnVsbFN0YXRpYzsKK30KKworI2lmIEpTT05f
VVNFX05VTExSRUYKKy8vIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2UnbGwgbGVhdmUg
dGhlc2UgZ2xvYmFsIHJlZmVyZW5jZXMgYXJvdW5kLCBidXQKKy8vIERPIE5PVCB1c2UgdGhlbSBp
biBKU09OQ1BQIGxpYnJhcnkgY29kZSBhbnkgbW9yZSEKKy8vIHN0YXRpYworVmFsdWUgY29uc3Qm
IFZhbHVlOjpudWxsID0gVmFsdWU6Om51bGxTaW5nbGV0b24oKTsKIAotY29uc3QgVmFsdWUgVmFs
dWU6Om51bGw7Ci1jb25zdCBJbnQgVmFsdWU6Om1pbkludCA9IEludCggfihVSW50KC0xKS8yKSAp
OwotY29uc3QgSW50IFZhbHVlOjptYXhJbnQgPSBJbnQoIFVJbnQoLTEpLzIgKTsKKy8vIHN0YXRp
YworVmFsdWUgY29uc3QmIFZhbHVlOjpudWxsUmVmID0gVmFsdWU6Om51bGxTaW5nbGV0b24oKTsK
KyNlbmRpZgorCitjb25zdCBJbnQgVmFsdWU6Om1pbkludCA9IEludCh+KFVJbnQoLTEpIC8gMikp
OworY29uc3QgSW50IFZhbHVlOjptYXhJbnQgPSBJbnQoVUludCgtMSkgLyAyKTsKIGNvbnN0IFVJ
bnQgVmFsdWU6Om1heFVJbnQgPSBVSW50KC0xKTsKLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2
NCkKLWNvbnN0IEludDY0IFZhbHVlOjptaW5JbnQ2NCA9IEludDY0KCB+KFVJbnQ2NCgtMSkvMikg
KTsKLWNvbnN0IEludDY0IFZhbHVlOjptYXhJbnQ2NCA9IEludDY0KCBVSW50NjQoLTEpLzIgKTsK
KyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorY29uc3QgSW50NjQgVmFsdWU6Om1pbkludDY0
ID0gSW50NjQofihVSW50NjQoLTEpIC8gMikpOworY29uc3QgSW50NjQgVmFsdWU6Om1heEludDY0
ID0gSW50NjQoVUludDY0KC0xKSAvIDIpOwogY29uc3QgVUludDY0IFZhbHVlOjptYXhVSW50NjQg
PSBVSW50NjQoLTEpOwogLy8gVGhlIGNvbnN0YW50IGlzIGhhcmQtY29kZWQgYmVjYXVzZSBzb21l
IGNvbXBpbGVyIGhhdmUgdHJvdWJsZQogLy8gY29udmVydGluZyBWYWx1ZTo6bWF4VUludDY0IHRv
IGEgZG91YmxlIGNvcnJlY3RseSAoQUlYL3hsQykuCiAvLyBBc3N1bWVzIHRoYXQgVUludDY0IGlz
IGEgNjQgYml0cyBpbnRlZ2VyLgogc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhVSW50NjRBc0RvdWJs
ZSA9IDE4NDQ2NzQ0MDczNzA5NTUxNjE1LjA7CiAjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19J
TlQ2NCkKLWNvbnN0IExhcmdlc3RJbnQgVmFsdWU6Om1pbkxhcmdlc3RJbnQgPSBMYXJnZXN0SW50
KCB+KExhcmdlc3RVSW50KC0xKS8yKSApOwotY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWF4TGFy
Z2VzdEludCA9IExhcmdlc3RJbnQoIExhcmdlc3RVSW50KC0xKS8yICk7Citjb25zdCBMYXJnZXN0
SW50IFZhbHVlOjptaW5MYXJnZXN0SW50ID0gTGFyZ2VzdEludCh+KExhcmdlc3RVSW50KC0xKSAv
IDIpKTsKK2NvbnN0IExhcmdlc3RJbnQgVmFsdWU6Om1heExhcmdlc3RJbnQgPSBMYXJnZXN0SW50
KExhcmdlc3RVSW50KC0xKSAvIDIpOwogY29uc3QgTGFyZ2VzdFVJbnQgVmFsdWU6Om1heExhcmdl
c3RVSW50ID0gTGFyZ2VzdFVJbnQoLTEpOwogCi0KLS8vLyBVbmtub3duIHNpemUgbWFya2VyCi1z
dGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHVua25vd24gPSAodW5zaWduZWQpLTE7Citjb25zdCBV
SW50IFZhbHVlOjpkZWZhdWx0UmVhbFByZWNpc2lvbiA9IDE3OwogCiAjaWYgIWRlZmluZWQoSlNP
Tl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4KIHN0YXRpYyBpbmxpbmUgYm9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBt
YXgpIHsKLSAgIHJldHVybiBkID49IG1pbiAmJiBkIDw9IG1heDsKKyAgLy8gVGhlIGNhc3RzIGNh
biBsb3NlIHByZWNpc2lvbiwgYnV0IHdlIGFyZSBsb29raW5nIG9ubHkgZm9yCisgIC8vIGFuIGFw
cHJveGltYXRlIHJhbmdlLiBNaWdodCBmYWlsIG9uIGVkZ2UgY2FzZXMgdGhvdWdoLiB+Y2R1bm4K
KyAgLy8gcmV0dXJuIGQgPj0gc3RhdGljX2Nhc3Q8ZG91YmxlPihtaW4pICYmIGQgPD0gc3RhdGlj
X2Nhc3Q8ZG91YmxlPihtYXgpOworICByZXR1cm4gZCA+PSBtaW4gJiYgZCA8PSBtYXg7CiB9Ci0j
ZWxzZSAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLXN0
YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0RvdWJsZSggSnNvbjo6VUludDY0IHZhbHVlICkK
LXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPiggSW50NjQodmFsdWUvMikgKSAqIDIu
MCArIEludDY0KHZhbHVlICYgMSk7CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5U
NjRfRE9VQkxFX0NPTlZFUlNJT04pCitzdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3Vi
bGUoSnNvbjo6VUludDY0IHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KElu
dDY0KHZhbHVlIC8gMikpICogMi4wICsKKyAgICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4oSW50
NjQodmFsdWUgJiAxKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgaW5saW5l
IGRvdWJsZSBpbnRlZ2VyVG9Eb3VibGUoIFQgdmFsdWUgKQotewotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxkb3VibGU+KCB2YWx1ZSApOwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxp
bmUgZG91YmxlIGludGVnZXJUb0RvdWJsZShUIHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KHZhbHVlKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+
CiBzdGF0aWMgaW5saW5lIGJvb2wgSW5SYW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0g
ICByZXR1cm4gZCA+PSBpbnRlZ2VyVG9Eb3VibGUobWluKSAmJiBkIDw9IGludGVnZXJUb0RvdWJs
ZShtYXgpOworICByZXR1cm4gZCA+PSBpbnRlZ2VyVG9Eb3VibGUobWluKSAmJiBkIDw9IGludGVn
ZXJUb0RvdWJsZShtYXgpOwogfQogI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0
X0RPVUJMRV9DT05WRVJTSU9OKQogCi0KIC8qKiBEdXBsaWNhdGVzIHRoZSBzcGVjaWZpZWQgc3Ry
aW5nIHZhbHVlLgogICogQHBhcmFtIHZhbHVlIFBvaW50ZXIgdG8gdGhlIHN0cmluZyB0byBkdXBs
aWNhdGUuIE11c3QgYmUgemVyby10ZXJtaW5hdGVkIGlmCiAgKiAgICAgICAgICAgICAgbGVuZ3Ro
IGlzICJ1bmtub3duIi4KQEAgLTc4LDM4ICsxMzcsODEgQEAgc3RhdGljIGlubGluZSBib29sIElu
UmFuZ2UoZG91YmxlIGQsIFQgbWluLCBVIG1heCkgewogICogICAgICAgICAgICAgICBjb21wdXRl
ZCB1c2luZyBzdHJsZW4odmFsdWUpLgogICogQHJldHVybiBQb2ludGVyIG9uIHRoZSBkdXBsaWNh
dGUgaW5zdGFuY2Ugb2Ygc3RyaW5nLgogICovCi1zdGF0aWMgaW5saW5lIGNoYXIgKgotZHVwbGlj
YXRlU3RyaW5nVmFsdWUoIGNvbnN0IGNoYXIgKnZhbHVlLCAKLSAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gdW5rbm93biApCi17Ci0gICBpZiAoIGxlbmd0aCA9PSB1
bmtub3duICkKLSAgICAgIGxlbmd0aCA9ICh1bnNpZ25lZCBpbnQpc3RybGVuKHZhbHVlKTsKLQot
ICAgLy8gQXZvaWQgYW4gaW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVs
b3cgYnkgbGltaXRpbmcgbGVuZ3RoCi0gICAvLyB0byBhIHNhbmUgdmFsdWUuCi0gICBpZiAobGVu
Z3RoID49ICh1bnNpZ25lZClWYWx1ZTo6bWF4SW50KQotICAgICAgbGVuZ3RoID0gVmFsdWU6Om1h
eEludCAtIDE7Ci0KLSAgIGNoYXIgKm5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIgKj4oIG1h
bGxvYyggbGVuZ3RoICsgMSApICk7Ci0gICBKU09OX0FTU0VSVF9NRVNTQUdFKCBuZXdTdHJpbmcg
IT0gMCwgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIiApOwotICAgbWVt
Y3B5KCBuZXdTdHJpbmcsIHZhbHVlLCBsZW5ndGggKTsKLSAgIG5ld1N0cmluZ1tsZW5ndGhdID0g
MDsKLSAgIHJldHVybiBuZXdTdHJpbmc7Ci19Ci0KLQotLyoqIEZyZWUgdGhlIHN0cmluZyBkdXBs
aWNhdGVkIGJ5IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCkuCitzdGF0aWMgaW5saW5lIGNoYXIqIGR1
cGxpY2F0ZVN0cmluZ1ZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlLCBzaXplX3QgbGVuZ3RoKSB7Cisg
IC8vIEF2b2lkIGFuIGludGVnZXIgb3ZlcmZsb3cgaW4gdGhlIGNhbGwgdG8gbWFsbG9jIGJlbG93
IGJ5IGxpbWl0aW5nIGxlbmd0aAorICAvLyB0byBhIHNhbmUgdmFsdWUuCisgIGlmIChsZW5ndGgg
Pj0gc3RhdGljX2Nhc3Q8c2l6ZV90PihWYWx1ZTo6bWF4SW50KSkKKyAgICBsZW5ndGggPSBWYWx1
ZTo6bWF4SW50IC0gMTsKKworICBjaGFyKiBuZXdTdHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4o
bWFsbG9jKGxlbmd0aCArIDEpKTsKKyAgaWYgKG5ld1N0cmluZyA9PSBudWxscHRyKSB7CisgICAg
dGhyb3dSdW50aW1lRXJyb3IoImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVTdHJpbmdWYWx1ZSgp
OiAiCisgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFs
dWUgYnVmZmVyIik7CisgIH0KKyAgbWVtY3B5KG5ld1N0cmluZywgdmFsdWUsIGxlbmd0aCk7Cisg
IG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKKyAgcmV0dXJuIG5ld1N0cmluZzsKK30KKworLyogUmVj
b3JkIHRoZSBsZW5ndGggYXMgYSBwcmVmaXguCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAKLXJl
bGVhc2VTdHJpbmdWYWx1ZSggY2hhciAqdmFsdWUgKQotewotICAgaWYgKCB2YWx1ZSApCi0gICAg
ICBmcmVlKCB2YWx1ZSApOwotfQorc3RhdGljIGlubGluZSBjaGFyKiBkdXBsaWNhdGVBbmRQcmVm
aXhTdHJpbmdWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbmd0aCkgeworICAvLyBB
dm9pZCBhbiBpbnRlZ2VyIG92ZXJmbG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBs
aW1pdGluZyBsZW5ndGgKKyAgLy8gdG8gYSBzYW5lIHZhbHVlLgorICBKU09OX0FTU0VSVF9NRVNT
QUdFKGxlbmd0aCA8PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oVmFsdWU6Om1heEludCkgLQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHVuc2lnbmVkKSAtIDFVLAor
ICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4
U3RyaW5nVmFsdWUoKTogIgorICAgICAgICAgICAgICAgICAgICAgICJsZW5ndGggdG9vIGJpZyBm
b3IgcHJlZml4aW5nIik7CisgIHVuc2lnbmVkIGFjdHVhbExlbmd0aCA9IGxlbmd0aCArIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzaXplb2YodW5zaWduZWQpKSArIDFVOworICBjaGFyKiBuZXdTdHJp
bmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKGFjdHVhbExlbmd0aCkpOworICBpZiAobmV3
U3RyaW5nID09IG51bGxwdHIpIHsKKyAgICB0aHJvd1J1bnRpbWVFcnJvcigiaW4gSnNvbjo6VmFs
dWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCk6ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAiRmFpbGVkIHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiKTsKKyAgfQorICAq
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG5ld1N0cmluZykgPSBsZW5ndGg7CisgIG1lbWNw
eShuZXdTdHJpbmcgKyBzaXplb2YodW5zaWduZWQpLCB2YWx1ZSwgbGVuZ3RoKTsKKyAgbmV3U3Ry
aW5nW2FjdHVhbExlbmd0aCAtIDFVXSA9CisgICAgICAwOyAvLyB0byBhdm9pZCBidWZmZXIgb3Zl
ci1ydW4gYWNjaWRlbnRzIGJ5IHVzZXJzIGxhdGVyCisgIHJldHVybiBuZXdTdHJpbmc7Cit9Citp
bmxpbmUgc3RhdGljIHZvaWQgZGVjb2RlUHJlZml4ZWRTdHJpbmcoYm9vbCBpc1ByZWZpeGVkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY29uc3QqIHByZWZp
eGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBs
ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjb25z
dCoqIHZhbHVlKSB7CisgIGlmICghaXNQcmVmaXhlZCkgeworICAgICpsZW5ndGggPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oc3RybGVuKHByZWZpeGVkKSk7CisgICAgKnZhbHVlID0gcHJlZml4ZWQ7
CisgIH0gZWxzZSB7CisgICAgKmxlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNv
bnN0Kj4ocHJlZml4ZWQpOworICAgICp2YWx1ZSA9IHByZWZpeGVkICsgc2l6ZW9mKHVuc2lnbmVk
KTsKKyAgfQorfQorLyoqIEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5CisgKiBkdXBsaWNh
dGVTdHJpbmdWYWx1ZSgpL2R1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCkuCisgKi8KKyNp
ZiBKU09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1PUlkKK3N0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNl
UHJlZml4ZWRTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSkgeworICB1bnNpZ25lZCBsZW5ndGggPSAw
OworICBjaGFyIGNvbnN0KiB2YWx1ZURlY29kZWQ7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRy
dWUsIHZhbHVlLCAmbGVuZ3RoLCAmdmFsdWVEZWNvZGVkKTsKKyAgc2l6ZV90IGNvbnN0IHNpemUg
PSBzaXplb2YodW5zaWduZWQpICsgbGVuZ3RoICsgMVU7CisgIG1lbXNldCh2YWx1ZSwgMCwgc2l6
ZSk7CisgIGZyZWUodmFsdWUpOworfQorc3RhdGljIGlubGluZSB2b2lkIHJlbGVhc2VTdHJpbmdW
YWx1ZShjaGFyKiB2YWx1ZSwgdW5zaWduZWQgbGVuZ3RoKSB7CisgIC8vIGxlbmd0aD09MCA9PiB3
ZSBhbGxvY2F0ZWQgdGhlIHN0cmluZ3MgbWVtb3J5CisgIHNpemVfdCBzaXplID0gKGxlbmd0aCA9
PSAwKSA/IHN0cmxlbih2YWx1ZSkgOiBsZW5ndGg7CisgIG1lbXNldCh2YWx1ZSwgMCwgc2l6ZSk7
CisgIGZyZWUodmFsdWUpOworfQorI2Vsc2UgIC8vICFKU09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1P
UlkKK3N0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNlUHJlZml4ZWRTdHJpbmdWYWx1ZShjaGFyKiB2
YWx1ZSkgeyBmcmVlKHZhbHVlKTsgfQorc3RhdGljIGlubGluZSB2b2lkIHJlbGVhc2VTdHJpbmdW
YWx1ZShjaGFyKiB2YWx1ZSwgdW5zaWduZWQpIHsgZnJlZSh2YWx1ZSk7IH0KKyNlbmRpZiAvLyBK
U09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1PUlkKIAogfSAvLyBuYW1lc3BhY2UgSnNvbgogCi0KIC8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTExOCw0OCArMjIwLDI4
IEBAIHJlbGVhc2VTdHJpbmdWYWx1ZSggY2hhciAqdmFsdWUgKQogLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KICNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaWZkZWYgSlNP
Tl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0jICBpbmNsdWRlICJqc29uX2ludGVybmFsYXJyYXku
aW5sIgotIyAgaW5jbHVkZSAianNvbl9pbnRlcm5hbG1hcC5pbmwiCi0jIGVuZGlmIC8vIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAogCi0jIGluY2x1ZGUgImpzb25fdmFsdWVpdGVyYXRvci5p
bmwiCisjaW5jbHVkZSAianNvbl92YWx1ZWl0ZXJhdG9yLmlubCIKICNlbmRpZiAvLyBpZiAhZGVm
aW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKIAogbmFtZXNwYWNlIEpzb24gewogCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZTo6Q29tbWVu
dEluZm8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi1WYWx1
ZTo6Q29tbWVudEluZm86OkNvbW1lbnRJbmZvKCkKLSAgIDogY29tbWVudF8oIDAgKQotewotfQot
Ci1WYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbygpCi17Ci0gICBpZiAoIGNvbW1lbnRf
ICkKLSAgICAgIHJlbGVhc2VTdHJpbmdWYWx1ZSggY29tbWVudF8gKTsKLX0KLQotCi12b2lkIAot
VmFsdWU6OkNvbW1lbnRJbmZvOjpzZXRDb21tZW50KCBjb25zdCBjaGFyICp0ZXh0ICkKLXsKLSAg
IGlmICggY29tbWVudF8gKQotICAgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKCBjb21tZW50XyApOwot
ICAgSlNPTl9BU1NFUlQoIHRleHQgIT0gMCApOwotICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggdGV4
dFswXT09J1wwJyB8fCB0ZXh0WzBdPT0nLycsICJDb21tZW50cyBtdXN0IHN0YXJ0IHdpdGggLyIp
OwotICAgLy8gSXQgc2VlbXMgdGhhdCAvKiovIHN0eWxlIGNvbW1lbnRzIGFyZSBhY2NlcHRhYmxl
IGFzIHdlbGwuCi0gICBjb21tZW50XyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCB0ZXh0ICk7Ci19
Ci0KKyNpZiBKU09OX1VTRV9FWENFUFRJT04KK0V4Y2VwdGlvbjo6RXhjZXB0aW9uKFN0cmluZyBt
c2cpIDogbXNnXyhzdGQ6Om1vdmUobXNnKSkge30KK0V4Y2VwdGlvbjo6fkV4Y2VwdGlvbigpIEpT
T05DUFBfTk9FWENFUFQge30KK2NoYXIgY29uc3QqIEV4Y2VwdGlvbjo6d2hhdCgpIGNvbnN0IEpT
T05DUFBfTk9FWENFUFQgeyByZXR1cm4gbXNnXy5jX3N0cigpOyB9CitSdW50aW1lRXJyb3I6OlJ1
bnRpbWVFcnJvcihTdHJpbmcgY29uc3QmIG1zZykgOiBFeGNlcHRpb24obXNnKSB7fQorTG9naWNF
cnJvcjo6TG9naWNFcnJvcihTdHJpbmcgY29uc3QmIG1zZykgOiBFeGNlcHRpb24obXNnKSB7fQor
W1tub3JldHVybl1dIHZvaWQgdGhyb3dSdW50aW1lRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpIHsK
KyAgdGhyb3cgUnVudGltZUVycm9yKG1zZyk7Cit9CitbW25vcmV0dXJuXV0gdm9pZCB0aHJvd0xv
Z2ljRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpIHsKKyAgdGhyb3cgTG9naWNFcnJvcihtc2cpOwor
fQorI2Vsc2UgLy8gIUpTT05fVVNFX0VYQ0VQVElPTgorW1tub3JldHVybl1dIHZvaWQgdGhyb3dS
dW50aW1lRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpIHsgYWJvcnQoKTsgfQorW1tub3JldHVybl1d
IHZvaWQgdGhyb3dMb2dpY0Vycm9yKFN0cmluZyBjb25zdCYgbXNnKSB7IGFib3J0KCk7IH0KKyNl
bmRpZgogCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMTY4LDkzICsyNTAsMTEwIEBA
IFZhbHVlOjpDb21tZW50SW5mbzo6c2V0Q29tbWVudCggY29uc3QgY2hhciAqdGV4dCApCiAvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0jIGlmbmRlZiBKU09OX1ZBTFVF
X1VTRV9JTlRFUk5BTF9NQVAKIAotLy8gTm90ZXM6IGluZGV4XyBpbmRpY2F0ZXMgaWYgdGhlIHN0
cmluZyB3YXMgYWxsb2NhdGVkIHdoZW4KKy8vIE5vdGVzOiBwb2xpY3lfIGluZGljYXRlcyBpZiB0
aGUgc3RyaW5nIHdhcyBhbGxvY2F0ZWQgd2hlbgogLy8gYSBzdHJpbmcgaXMgc3RvcmVkLgogCi1W
YWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKCBBcnJheUluZGV4IGluZGV4ICkKLSAgIDogY3N0cl8o
IDAgKQotICAgLCBpbmRleF8oIGluZGV4ICkKLXsKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmco
QXJyYXlJbmRleCBpbmRleCkgOiBjc3RyXyhudWxscHRyKSwgaW5kZXhfKGluZGV4KSB7fQorCitW
YWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNoYXIgY29uc3QqIHN0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBE
dXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSkKKyAgICA6IGNzdHJfKHN0cikgeworICAvLyBhbGxv
Y2F0ZSAhPSBkdXBsaWNhdGUKKyAgc3RvcmFnZV8ucG9saWN5XyA9IGFsbG9jYXRlICYgMHgzOwor
ICBzdG9yYWdlXy5sZW5ndGhfID0gbGVuZ3RoICYgMHgzRkZGRkZGRjsKK30KKworVmFsdWU6OkNa
U3RyaW5nOjpDWlN0cmluZyhjb25zdCBDWlN0cmluZyYgb3RoZXIpIHsKKyAgY3N0cl8gPSAob3Ro
ZXIuc3RvcmFnZV8ucG9saWN5XyAhPSBub0R1cGxpY2F0aW9uICYmIG90aGVyLmNzdHJfICE9IG51
bGxwdHIKKyAgICAgICAgICAgICAgID8gZHVwbGljYXRlU3RyaW5nVmFsdWUob3RoZXIuY3N0cl8s
IG90aGVyLnN0b3JhZ2VfLmxlbmd0aF8pCisgICAgICAgICAgICAgICA6IG90aGVyLmNzdHJfKTsK
KyAgc3RvcmFnZV8ucG9saWN5XyA9CisgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oCisgICAg
ICAgICAgb3RoZXIuY3N0cl8KKyAgICAgICAgICAgICAgPyAoc3RhdGljX2Nhc3Q8RHVwbGljYXRp
b25Qb2xpY3k+KG90aGVyLnN0b3JhZ2VfLnBvbGljeV8pID09CisgICAgICAgICAgICAgICAgICAg
ICAgICAgbm9EdXBsaWNhdGlvbgorICAgICAgICAgICAgICAgICAgICAgPyBub0R1cGxpY2F0aW9u
CisgICAgICAgICAgICAgICAgICAgICA6IGR1cGxpY2F0ZSkKKyAgICAgICAgICAgICAgOiBzdGF0
aWNfY2FzdDxEdXBsaWNhdGlvblBvbGljeT4ob3RoZXIuc3RvcmFnZV8ucG9saWN5XykpICYKKyAg
ICAgIDNVOworICBzdG9yYWdlXy5sZW5ndGhfID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKK30K
KworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhDWlN0cmluZyYmIG90aGVyKQorICAgIDogY3N0
cl8ob3RoZXIuY3N0cl8pLCBpbmRleF8ob3RoZXIuaW5kZXhfKSB7CisgIG90aGVyLmNzdHJfID0g
bnVsbHB0cjsKK30KKworVmFsdWU6OkNaU3RyaW5nOjp+Q1pTdHJpbmcoKSB7CisgIGlmIChjc3Ry
XyAmJiBzdG9yYWdlXy5wb2xpY3lfID09IGR1cGxpY2F0ZSkgeworICAgIHJlbGVhc2VTdHJpbmdW
YWx1ZShjb25zdF9jYXN0PGNoYXIqPihjc3RyXyksCisgICAgICAgICAgICAgICAgICAgICAgIHN0
b3JhZ2VfLmxlbmd0aF8gKyAxdSk7IC8vICsxIGZvciBudWxsIHRlcm1pbmF0aW5nCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBmb3Ig
c2FrZSBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBjb21wbGV0ZW5lc3MgYnV0IG5vdCBhY3R1YWxseQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWNlc3NhcnkKKyAgfQorfQorCit2b2lkIFZhbHVl
OjpDWlN0cmluZzo6c3dhcChDWlN0cmluZyYgb3RoZXIpIHsKKyAgc3RkOjpzd2FwKGNzdHJfLCBv
dGhlci5jc3RyXyk7CisgIHN0ZDo6c3dhcChpbmRleF8sIG90aGVyLmluZGV4Xyk7Cit9CisKK1Zh
bHVlOjpDWlN0cmluZyYgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0oY29uc3QgQ1pTdHJpbmcm
IG90aGVyKSB7CisgIGNzdHJfID0gb3RoZXIuY3N0cl87CisgIGluZGV4XyA9IG90aGVyLmluZGV4
XzsKKyAgcmV0dXJuICp0aGlzOworfQorCitWYWx1ZTo6Q1pTdHJpbmcmIFZhbHVlOjpDWlN0cmlu
Zzo6b3BlcmF0b3I9KENaU3RyaW5nJiYgb3RoZXIpIHsKKyAgY3N0cl8gPSBvdGhlci5jc3RyXzsK
KyAgaW5kZXhfID0gb3RoZXIuaW5kZXhfOworICBvdGhlci5jc3RyXyA9IG51bGxwdHI7CisgIHJl
dHVybiAqdGhpczsKK30KKworYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPChjb25zdCBD
WlN0cmluZyYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKCFjc3RyXykKKyAgICByZXR1cm4gaW5kZXhf
IDwgb3RoZXIuaW5kZXhfOworICAvLyByZXR1cm4gc3RyY21wKGNzdHJfLCBvdGhlci5jc3RyXykg
PCAwOworICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KKyAgdW5zaWduZWQgdGhpc19sZW4g
PSB0aGlzLT5zdG9yYWdlXy5sZW5ndGhfOworICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5z
dG9yYWdlXy5sZW5ndGhfOworICB1bnNpZ25lZCBtaW5fbGVuID0gc3RkOjptaW48dW5zaWduZWQ+
KHRoaXNfbGVuLCBvdGhlcl9sZW4pOworICBKU09OX0FTU0VSVCh0aGlzLT5jc3RyXyAmJiBvdGhl
ci5jc3RyXyk7CisgIGludCBjb21wID0gbWVtY21wKHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywg
bWluX2xlbik7CisgIGlmIChjb21wIDwgMCkKKyAgICByZXR1cm4gdHJ1ZTsKKyAgaWYgKGNvbXAg
PiAwKQorICAgIHJldHVybiBmYWxzZTsKKyAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7
Cit9CisKK2Jvb2wgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09KGNvbnN0IENaU3RyaW5nJiBv
dGhlcikgY29uc3QgeworICBpZiAoIWNzdHJfKQorICAgIHJldHVybiBpbmRleF8gPT0gb3RoZXIu
aW5kZXhfOworICAvLyByZXR1cm4gc3RyY21wKGNzdHJfLCBvdGhlci5jc3RyXykgPT0gMDsKKyAg
Ly8gQXNzdW1lIGJvdGggYXJlIHN0cmluZ3MuCisgIHVuc2lnbmVkIHRoaXNfbGVuID0gdGhpcy0+
c3RvcmFnZV8ubGVuZ3RoXzsKKyAgdW5zaWduZWQgb3RoZXJfbGVuID0gb3RoZXIuc3RvcmFnZV8u
bGVuZ3RoXzsKKyAgaWYgKHRoaXNfbGVuICE9IG90aGVyX2xlbikKKyAgICByZXR1cm4gZmFsc2U7
CisgIEpTT05fQVNTRVJUKHRoaXMtPmNzdHJfICYmIG90aGVyLmNzdHJfKTsKKyAgaW50IGNvbXAg
PSBtZW1jbXAodGhpcy0+Y3N0cl8sIG90aGVyLmNzdHJfLCB0aGlzX2xlbik7CisgIHJldHVybiBj
b21wID09IDA7Cit9CisKK0FycmF5SW5kZXggVmFsdWU6OkNaU3RyaW5nOjppbmRleCgpIGNvbnN0
IHsgcmV0dXJuIGluZGV4XzsgfQorCisvLyBjb25zdCBjaGFyKiBWYWx1ZTo6Q1pTdHJpbmc6OmNf
c3RyKCkgY29uc3QgeyByZXR1cm4gY3N0cl87IH0KK2NvbnN0IGNoYXIqIFZhbHVlOjpDWlN0cmlu
Zzo6ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIGNzdHJfOyB9Cit1bnNpZ25lZCBWYWx1ZTo6Q1pTdHJp
bmc6Omxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLmxlbmd0aF87IH0KK2Jvb2wgVmFs
dWU6OkNaU3RyaW5nOjppc1N0YXRpY1N0cmluZygpIGNvbnN0IHsKKyAgcmV0dXJuIHN0b3JhZ2Vf
LnBvbGljeV8gPT0gbm9EdXBsaWNhdGlvbjsKIH0KIAotVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmlu
ZyggY29uc3QgY2hhciAqY3N0ciwgRHVwbGljYXRpb25Qb2xpY3kgYWxsb2NhdGUgKQotICAgOiBj
c3RyXyggYWxsb2NhdGUgPT0gZHVwbGljYXRlID8gZHVwbGljYXRlU3RyaW5nVmFsdWUoY3N0cikg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjc3RyICkKLSAgICwgaW5kZXhf
KCBhbGxvY2F0ZSApCi17Ci19Ci0KLVZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoIGNvbnN0IENa
U3RyaW5nICZvdGhlciApCi06IGNzdHJfKCBvdGhlci5pbmRleF8gIT0gbm9EdXBsaWNhdGlvbiAm
JiAgb3RoZXIuY3N0cl8gIT0gMAotICAgICAgICAgICAgICAgID8gIGR1cGxpY2F0ZVN0cmluZ1Zh
bHVlKCBvdGhlci5jc3RyXyApCi0gICAgICAgICAgICAgICAgOiBvdGhlci5jc3RyXyApCi0gICAs
IGluZGV4Xyggb3RoZXIuY3N0cl8gPyAob3RoZXIuaW5kZXhfID09IG5vRHVwbGljYXRpb24gPyBu
b0R1cGxpY2F0aW9uIDogZHVwbGljYXRlKQotICAgICAgICAgICAgICAgICAgICAgICAgIDogb3Ro
ZXIuaW5kZXhfICkKLXsKLX0KLQotVmFsdWU6OkNaU3RyaW5nOjp+Q1pTdHJpbmcoKQotewotICAg
aWYgKCBjc3RyXyAgJiYgIGluZGV4XyA9PSBkdXBsaWNhdGUgKQotICAgICAgcmVsZWFzZVN0cmlu
Z1ZhbHVlKCBjb25zdF9jYXN0PGNoYXIgKj4oIGNzdHJfICkgKTsKLX0KLQotdm9pZCAKLVZhbHVl
OjpDWlN0cmluZzo6c3dhcCggQ1pTdHJpbmcgJm90aGVyICkKLXsKLSAgIHN0ZDo6c3dhcCggY3N0
cl8sIG90aGVyLmNzdHJfICk7Ci0gICBzdGQ6OnN3YXAoIGluZGV4Xywgb3RoZXIuaW5kZXhfICk7
Ci19Ci0KLVZhbHVlOjpDWlN0cmluZyAmCi1WYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yID0oIGNv
bnN0IENaU3RyaW5nICZvdGhlciApCi17Ci0gICBDWlN0cmluZyB0ZW1wKCBvdGhlciApOwotICAg
c3dhcCggdGVtcCApOwotICAgcmV0dXJuICp0aGlzOwotfQotCi1ib29sIAotVmFsdWU6OkNaU3Ry
aW5nOjpvcGVyYXRvcjwoIGNvbnN0IENaU3RyaW5nICZvdGhlciApIGNvbnN0IAotewotICAgaWYg
KCBjc3RyXyApCi0gICAgICByZXR1cm4gc3RyY21wKCBjc3RyXywgb3RoZXIuY3N0cl8gKSA8IDA7
Ci0gICByZXR1cm4gaW5kZXhfIDwgb3RoZXIuaW5kZXhfOwotfQotCi1ib29sIAotVmFsdWU6OkNa
U3RyaW5nOjpvcGVyYXRvcj09KCBjb25zdCBDWlN0cmluZyAmb3RoZXIgKSBjb25zdCAKLXsKLSAg
IGlmICggY3N0cl8gKQotICAgICAgcmV0dXJuIHN0cmNtcCggY3N0cl8sIG90aGVyLmNzdHJfICkg
PT0gMDsKLSAgIHJldHVybiBpbmRleF8gPT0gb3RoZXIuaW5kZXhfOwotfQotCi0KLUFycmF5SW5k
ZXggCi1WYWx1ZTo6Q1pTdHJpbmc6OmluZGV4KCkgY29uc3QKLXsKLSAgIHJldHVybiBpbmRleF87
Ci19Ci0KLQotY29uc3QgY2hhciAqCi1WYWx1ZTo6Q1pTdHJpbmc6OmNfc3RyKCkgY29uc3QKLXsK
LSAgIHJldHVybiBjc3RyXzsKLX0KLQotYm9vbCAKLVZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNT
dHJpbmcoKSBjb25zdAotewotICAgcmV0dXJuIGluZGV4XyA9PSBub0R1cGxpY2F0aW9uOwotfQot
Ci0jZW5kaWYgLy8gaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotCi0KIC8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTI2NywxMDg1ICszNjYsOTM1
IEBAIFZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJpbmcoKSBjb25zdAogICogbWVtc2V0KCB0
aGlzLCAwLCBzaXplb2YoVmFsdWUpICkKICAqIFRoaXMgb3B0aW1pemF0aW9uIGlzIHVzZWQgaW4g
VmFsdWVJbnRlcm5hbE1hcCBmYXN0IGFsbG9jYXRvci4KICAqLwotVmFsdWU6OlZhbHVlKCBWYWx1
ZVR5cGUgdHlwZSApCi0gICA6IHR5cGVfKCB0eXBlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2Ug
KQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8o
IDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICBzd2l0Y2ggKCB0eXBlICkK
LSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgYnJlYWs7Ci0gICBjYXNlIGludFZhbHVl
OgotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICB2YWx1ZV8uaW50XyA9IDA7Ci0gICAgICBicmVh
azsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgdmFsdWVfLnJlYWxfID0gMC4wOwotICAgICAg
YnJlYWs7Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgdmFsdWVfLnN0cmluZ18gPSAwOwot
ICAgICAgYnJlYWs7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2Fz
ZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfID0g
bmV3IE9iamVjdFZhbHVlcygpOwotICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZh
bHVlOgotICAgICAgdmFsdWVfLmFycmF5XyA9IGFycmF5QWxsb2NhdG9yKCktPm5ld0FycmF5KCk7
Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXyA9
IG1hcEFsbG9jYXRvcigpLT5uZXdNYXAoKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBjYXNl
IGJvb2xlYW5WYWx1ZToKLSAgICAgIHZhbHVlXy5ib29sXyA9IGZhbHNlOwotICAgICAgYnJlYWs7
Ci0gICBkZWZhdWx0OgotICAgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9CitWYWx1
ZTo6VmFsdWUoVmFsdWVUeXBlIHR5cGUpIHsKKyAgc3RhdGljIGNoYXIgY29uc3QgZW1wdHlTdHJp
bmdbXSA9ICIiOworICBpbml0QmFzaWModHlwZSk7CisgIHN3aXRjaCAodHlwZSkgeworICBjYXNl
IG51bGxWYWx1ZToKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFs
dWU6CisgICAgdmFsdWVfLmludF8gPSAwOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToK
KyAgICB2YWx1ZV8ucmVhbF8gPSAwLjA7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6
CisgICAgLy8gYWxsb2NhdGVkXyA9PSBmYWxzZSwgc28gdGhpcyBpcyBzYWZlLgorICAgIHZhbHVl
Xy5zdHJpbmdfID0gY29uc3RfY2FzdDxjaGFyKj4oc3RhdGljX2Nhc3Q8Y2hhciBjb25zdCo+KGVt
cHR5U3RyaW5nKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmpl
Y3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFwXyA9IG5ldyBPYmplY3RWYWx1ZXMoKTsKKyAgICBicmVh
azsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgdmFsdWVfLmJvb2xfID0gZmFsc2U7CisgICAg
YnJlYWs7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIH0KK30K
KworVmFsdWU6OlZhbHVlKEludCB2YWx1ZSkgeworICBpbml0QmFzaWMoaW50VmFsdWUpOworICB2
YWx1ZV8uaW50XyA9IHZhbHVlOworfQorCitWYWx1ZTo6VmFsdWUoVUludCB2YWx1ZSkgeworICBp
bml0QmFzaWModWludFZhbHVlKTsKKyAgdmFsdWVfLnVpbnRfID0gdmFsdWU7CiB9Ci0KLQotVmFs
dWU6OlZhbHVlKCBVSW50IHZhbHVlICkKLSAgIDogdHlwZV8oIHVpbnRWYWx1ZSApCi0gICAsIGFs
bG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0g
ICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAg
dmFsdWVfLnVpbnRfID0gdmFsdWU7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK1ZhbHVl
OjpWYWx1ZShJbnQ2NCB2YWx1ZSkgeworICBpbml0QmFzaWMoaW50VmFsdWUpOworICB2YWx1ZV8u
aW50XyA9IHZhbHVlOwogfQotCi1WYWx1ZTo6VmFsdWUoIEludCB2YWx1ZSApCi0gICA6IHR5cGVf
KCBpbnRWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxV
RV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBj
b21tZW50c18oIDAgKQotewotICAgdmFsdWVfLmludF8gPSB2YWx1ZTsKK1ZhbHVlOjpWYWx1ZShV
SW50NjQgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHVpbnRWYWx1ZSk7CisgIHZhbHVlXy51aW50XyA9
IHZhbHVlOwogfQorI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCiAKLQotIyBpZiBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotVmFsdWU6OlZhbHVlKCBJbnQ2NCB2YWx1ZSApCi0gICA6
IHR5cGVfKCBpbnRWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNP
Tl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgot
ICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLmludF8gPSB2YWx1ZTsKK1ZhbHVlOjpW
YWx1ZShkb3VibGUgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHJlYWxWYWx1ZSk7CisgIHZhbHVlXy5y
ZWFsXyA9IHZhbHVlOwogfQogCi0KLVZhbHVlOjpWYWx1ZSggVUludDY0IHZhbHVlICkKLSAgIDog
dHlwZV8oIHVpbnRWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNP
Tl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgot
ICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnVpbnRfID0gdmFsdWU7CitWYWx1ZTo6
VmFsdWUoY29uc3QgY2hhciogdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVl
KTsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh2YWx1ZSAhPSBudWxscHRyLAorICAgICAgICAgICAg
ICAgICAgICAgICJOdWxsIFZhbHVlIFBhc3NlZCB0byBWYWx1ZSBDb25zdHJ1Y3RvciIpOworICB2
YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKAorICAgICAgdmFs
dWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdHJsZW4odmFsdWUpKSk7CiB9Ci0jZW5kaWYgLy8g
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKIAotVmFsdWU6OlZhbHVlKCBkb3VibGUgdmFsdWUgKQot
ICAgOiB0eXBlXyggcmVhbFZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2Vu
ZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8ucmVhbF8gPSB2YWx1ZTsKK1Zh
bHVlOjpWYWx1ZShjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKSB7CisgIGluaXRC
YXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0KKyAgICAgIGR1cGxp
Y2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKGJlZ2luLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5k
IC0gYmVnaW4pKTsKIH0KIAotVmFsdWU6OlZhbHVlKCBjb25zdCBjaGFyICp2YWx1ZSApCi0gICA6
IHR5cGVfKCBzdHJpbmdWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBpZmRlZiBK
U09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlm
Ci0gICAsIGNvbW1lbnRzXyggMCApCi17Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0
cmluZ1ZhbHVlKCB2YWx1ZSApOworVmFsdWU6OlZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsK
KyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPSBkdXBs
aWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgKKyAgICAgIHZhbHVlLmRhdGEoKSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHZhbHVlLmxlbmd0aCgpKSk7CiB9CiAKLQotVmFsdWU6OlZhbHVlKCBjb25z
dCBjaGFyICpiZWdpblZhbHVlLCAKLSAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5kVmFsdWUg
KQotICAgOiB0eXBlXyggc3RyaW5nVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCB0cnVlICkKLSMg
aWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkK
LSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnN0cmluZ18gPSBkdXBs
aWNhdGVTdHJpbmdWYWx1ZSggYmVnaW5WYWx1ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KShlbmRWYWx1ZSAtIGJlZ2luVmFsdWUpICk7
CitWYWx1ZTo6VmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSkgeworICBpbml0QmFzaWMo
c3RyaW5nVmFsdWUpOworICB2YWx1ZV8uc3RyaW5nXyA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHZhbHVl
LmNfc3RyKCkpOwogfQogCi0KLVZhbHVlOjpWYWx1ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVl
ICkKLSAgIDogdHlwZV8oIHN0cmluZ1ZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggdHJ1ZSApCi0j
IGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCAp
Ci0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5zdHJpbmdfID0gZHVw
bGljYXRlU3RyaW5nVmFsdWUoIHZhbHVlLmNfc3RyKCksIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGludCl2YWx1ZS5sZW5ndGgoKSApOwotCisj
aWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1ZhbHVlOjpWYWx1ZShjb25zdCBDcHBUTDo6Q29uc3RTdHJp
bmcmIHZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5z
dHJpbmdfID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoCisgICAgICB2YWx1ZSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlLmxlbmd0aCgpKSk7CiB9Ci0KLVZhbHVlOjpWYWx1ZSgg
Y29uc3QgU3RhdGljU3RyaW5nICZ2YWx1ZSApCi0gICA6IHR5cGVfKCBzdHJpbmdWYWx1ZSApCi0g
ICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKICNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQot
ewotICAgdmFsdWVfLnN0cmluZ18gPSBjb25zdF9jYXN0PGNoYXIgKj4oIHZhbHVlLmNfc3RyKCkg
KTsKLX0KLQogCi0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IENw
cFRMOjpDb25zdFN0cmluZyAmdmFsdWUgKQotICAgOiB0eXBlXyggc3RyaW5nVmFsdWUgKQotICAg
LCBhbGxvY2F0ZWRfKCB0cnVlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewot
ICAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSggdmFsdWUsIHZhbHVlLmxl
bmd0aCgpICk7CitWYWx1ZTo6VmFsdWUoYm9vbCB2YWx1ZSkgeworICBpbml0QmFzaWMoYm9vbGVh
blZhbHVlKTsKKyAgdmFsdWVfLmJvb2xfID0gdmFsdWU7CiB9Ci0jIGVuZGlmCiAKLVZhbHVlOjpW
YWx1ZSggYm9vbCB2YWx1ZSApCi0gICA6IHR5cGVfKCBib29sZWFuVmFsdWUgKQotICAgLCBhbGxv
Y2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAg
LCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZh
bHVlXy5ib29sXyA9IHZhbHVlOworVmFsdWU6OlZhbHVlKGNvbnN0IFZhbHVlJiBvdGhlcikgewor
ICBkdXBQYXlsb2FkKG90aGVyKTsKKyAgZHVwTWV0YShvdGhlcik7CiB9CiAKLQotVmFsdWU6OlZh
bHVlKCBjb25zdCBWYWx1ZSAmb3RoZXIgKQotICAgOiB0eXBlXyggb3RoZXIudHlwZV8gKQotICAg
LCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01B
UAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsK
LSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgY2FzZSBp
bnRWYWx1ZToKLSAgIGNhc2UgdWludFZhbHVlOgotICAgY2FzZSByZWFsVmFsdWU6Ci0gICBjYXNl
IGJvb2xlYW5WYWx1ZToKLSAgICAgIHZhbHVlXyA9IG90aGVyLnZhbHVlXzsKLSAgICAgIGJyZWFr
OwotICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIGlmICggb3RoZXIudmFsdWVfLnN0cmluZ18g
KQotICAgICAgewotICAgICAgICAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVTdHJpbmdWYWx1
ZSggb3RoZXIudmFsdWVfLnN0cmluZ18gKTsKLSAgICAgICAgIGFsbG9jYXRlZF8gPSB0cnVlOwot
ICAgICAgfQotICAgICAgZWxzZQotICAgICAgICAgdmFsdWVfLnN0cmluZ18gPSAwOwotICAgICAg
YnJlYWs7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJh
eVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfID0gbmV3IE9i
amVjdFZhbHVlcyggKm90aGVyLnZhbHVlXy5tYXBfICk7Ci0gICAgICBicmVhazsKLSNlbHNlCi0g
ICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICB2YWx1ZV8uYXJyYXlfID0gYXJyYXlBbGxvY2F0b3Io
KS0+bmV3QXJyYXlDb3B5KCAqb3RoZXIudmFsdWVfLmFycmF5XyApOwotICAgICAgYnJlYWs7Ci0g
ICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8gPSBtYXBBbGxvY2F0b3IoKS0+
bmV3TWFwQ29weSggKm90aGVyLnZhbHVlXy5tYXBfICk7Ci0gICAgICBicmVhazsKLSNlbmRpZgot
ICAgZGVmYXVsdDoKLSAgICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOwotICAgfQotICAgaWYg
KCBvdGhlci5jb21tZW50c18gKQotICAgewotICAgICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJ
bmZvW251bWJlck9mQ29tbWVudFBsYWNlbWVudF07Ci0gICAgICBmb3IgKCBpbnQgY29tbWVudCA9
MDsgY29tbWVudCA8IG51bWJlck9mQ29tbWVudFBsYWNlbWVudDsgKytjb21tZW50ICkKLSAgICAg
IHsKLSAgICAgICAgIGNvbnN0IENvbW1lbnRJbmZvICZvdGhlckNvbW1lbnQgPSBvdGhlci5jb21t
ZW50c19bY29tbWVudF07Ci0gICAgICAgICBpZiAoIG90aGVyQ29tbWVudC5jb21tZW50XyApCi0g
ICAgICAgICAgICBjb21tZW50c19bY29tbWVudF0uc2V0Q29tbWVudCggb3RoZXJDb21tZW50LmNv
bW1lbnRfICk7Ci0gICAgICB9Ci0gICB9Ci19Ci0KLQotVmFsdWU6On5WYWx1ZSgpCi17Ci0gICBz
d2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgIGNhc2UgaW50VmFs
dWU6Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgY2FzZSBib29s
ZWFuVmFsdWU6Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICBpZiAo
IGFsbG9jYXRlZF8gKQotICAgICAgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKCB2YWx1ZV8uc3RyaW5n
XyApOwotICAgICAgYnJlYWs7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAot
ICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGRlbGV0ZSB2
YWx1ZV8ubWFwXzsKLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAg
ICAgIGFycmF5QWxsb2NhdG9yKCktPmRlc3RydWN0QXJyYXkoIHZhbHVlXy5hcnJheV8gKTsKLSAg
ICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIG1hcEFsbG9jYXRvcigpLT5k
ZXN0cnVjdE1hcCggdmFsdWVfLm1hcF8gKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZh
dWx0OgotICAgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0KLSAgIGlmICggY29t
bWVudHNfICkKLSAgICAgIGRlbGV0ZVtdIGNvbW1lbnRzXzsKK1ZhbHVlOjpWYWx1ZShWYWx1ZSYm
IG90aGVyKSB7CisgIGluaXRCYXNpYyhudWxsVmFsdWUpOworICBzd2FwKG90aGVyKTsKIH0KIAot
VmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yPSggY29uc3QgVmFsdWUgJm90aGVyICkKLXsKLSAgIFZh
bHVlIHRlbXAoIG90aGVyICk7Ci0gICBzd2FwKCB0ZW1wICk7Ci0gICByZXR1cm4gKnRoaXM7CitW
YWx1ZTo6flZhbHVlKCkgeworICByZWxlYXNlUGF5bG9hZCgpOworICB2YWx1ZV8udWludF8gPSAw
OwogfQogCi12b2lkIAotVmFsdWU6OnN3YXAoIFZhbHVlICZvdGhlciApCi17Ci0gICBWYWx1ZVR5
cGUgdGVtcCA9IHR5cGVfOwotICAgdHlwZV8gPSBvdGhlci50eXBlXzsKLSAgIG90aGVyLnR5cGVf
ID0gdGVtcDsKLSAgIHN0ZDo6c3dhcCggdmFsdWVfLCBvdGhlci52YWx1ZV8gKTsKLSAgIGludCB0
ZW1wMiA9IGFsbG9jYXRlZF87Ci0gICBhbGxvY2F0ZWRfID0gb3RoZXIuYWxsb2NhdGVkXzsKLSAg
IG90aGVyLmFsbG9jYXRlZF8gPSB0ZW1wMjsKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3I9KGNvbnN0
IFZhbHVlJiBvdGhlcikgeworICBWYWx1ZShvdGhlcikuc3dhcCgqdGhpcyk7CisgIHJldHVybiAq
dGhpczsKIH0KIAotVmFsdWVUeXBlIAotVmFsdWU6OnR5cGUoKSBjb25zdAotewotICAgcmV0dXJu
IHR5cGVfOworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcj0oVmFsdWUmJiBvdGhlcikgeworICBvdGhl
ci5zd2FwKCp0aGlzKTsKKyAgcmV0dXJuICp0aGlzOwogfQogCi0KLWludCAKLVZhbHVlOjpjb21w
YXJlKCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdAotewotICAgaWYgKCAqdGhpcyA8IG90aGVy
ICkKLSAgICAgIHJldHVybiAtMTsKLSAgIGlmICggKnRoaXMgPiBvdGhlciApCi0gICAgICByZXR1
cm4gMTsKLSAgIHJldHVybiAwOwordm9pZCBWYWx1ZTo6c3dhcFBheWxvYWQoVmFsdWUmIG90aGVy
KSB7CisgIHN0ZDo6c3dhcChiaXRzXywgb3RoZXIuYml0c18pOworICBzdGQ6OnN3YXAodmFsdWVf
LCBvdGhlci52YWx1ZV8pOwogfQogCit2b2lkIFZhbHVlOjpjb3B5UGF5bG9hZChjb25zdCBWYWx1
ZSYgb3RoZXIpIHsKKyAgcmVsZWFzZVBheWxvYWQoKTsKKyAgZHVwUGF5bG9hZChvdGhlcik7Cit9
CiAKLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPCggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3QK
LXsKLSAgIGludCB0eXBlRGVsdGEgPSB0eXBlXyAtIG90aGVyLnR5cGVfOwotICAgaWYgKCB0eXBl
RGVsdGEgKQotICAgICAgcmV0dXJuIHR5cGVEZWx0YSA8IDAgPyB0cnVlIDogZmFsc2U7Ci0gICBz
d2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiBm
YWxzZTsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmludF8gPCBvdGhl
ci52YWx1ZV8uaW50XzsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51
aW50XyA8IG90aGVyLnZhbHVlXy51aW50XzsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0
dXJuIHZhbHVlXy5yZWFsXyA8IG90aGVyLnZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgYm9vbGVhblZh
bHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA8IG90aGVyLnZhbHVlXy5ib29sXzsKLSAg
IGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICByZXR1cm4gKCB2YWx1ZV8uc3RyaW5nXyA9PSAwICAm
JiAgb3RoZXIudmFsdWVfLnN0cmluZ18gKQotICAgICAgICAgICAgIHx8ICggb3RoZXIudmFsdWVf
LnN0cmluZ18gIAotICAgICAgICAgICAgICAgICAgJiYgIHZhbHVlXy5zdHJpbmdfICAKLSAgICAg
ICAgICAgICAgICAgICYmIHN0cmNtcCggdmFsdWVfLnN0cmluZ18sIG90aGVyLnZhbHVlXy5zdHJp
bmdfICkgPCAwICk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2Fz
ZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHsKLSAgICAgICAgIGlu
dCBkZWx0YSA9IGludCggdmFsdWVfLm1hcF8tPnNpemUoKSAtIG90aGVyLnZhbHVlXy5tYXBfLT5z
aXplKCkgKTsKLSAgICAgICAgIGlmICggZGVsdGEgKQotICAgICAgICAgICAgcmV0dXJuIGRlbHRh
IDwgMDsKLSAgICAgICAgIHJldHVybiAoKnZhbHVlXy5tYXBfKSA8ICgqb3RoZXIudmFsdWVfLm1h
cF8pOwotICAgICAgfQotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHJldHVybiB2
YWx1ZV8uYXJyYXlfLT5jb21wYXJlKCAqKG90aGVyLnZhbHVlXy5hcnJheV8pICkgPCAwOwotICAg
Y2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+Y29tcGFyZSggKihv
dGhlci52YWx1ZV8ubWFwXykgKSA8IDA7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09O
X0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0KLSAgIHJldHVybiBmYWxzZTsgIC8vIHVucmVhY2hh
YmxlCit2b2lkIFZhbHVlOjpzd2FwKFZhbHVlJiBvdGhlcikgeworICBzd2FwUGF5bG9hZChvdGhl
cik7CisgIHN0ZDo6c3dhcChjb21tZW50c18sIG90aGVyLmNvbW1lbnRzXyk7CisgIHN0ZDo6c3dh
cChzdGFydF8sIG90aGVyLnN0YXJ0Xyk7CisgIHN0ZDo6c3dhcChsaW1pdF8sIG90aGVyLmxpbWl0
Xyk7CiB9CiAKLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPD0oIGNvbnN0IFZhbHVlICZvdGhlciAp
IGNvbnN0Ci17Ci0gICByZXR1cm4gIShvdGhlciA8ICp0aGlzKTsKK3ZvaWQgVmFsdWU6OmNvcHko
Y29uc3QgVmFsdWUmIG90aGVyKSB7CisgIGNvcHlQYXlsb2FkKG90aGVyKTsKKyAgZHVwTWV0YShv
dGhlcik7CiB9CiAKLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPj0oIGNvbnN0IFZhbHVlICZvdGhl
ciApIGNvbnN0Ci17Ci0gICByZXR1cm4gISgqdGhpcyA8IG90aGVyKTsKK1ZhbHVlVHlwZSBWYWx1
ZTo6dHlwZSgpIGNvbnN0IHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlVHlwZT4oYml0c18u
dmFsdWVfdHlwZV8pOwogfQogCi1ib29sIAotVmFsdWU6Om9wZXJhdG9yID4oIGNvbnN0IFZhbHVl
ICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1cm4gb3RoZXIgPCAqdGhpczsKK2ludCBWYWx1ZTo6
Y29tcGFyZShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKCp0aGlzIDwgb3RoZXIp
CisgICAgcmV0dXJuIC0xOworICBpZiAoKnRoaXMgPiBvdGhlcikKKyAgICByZXR1cm4gMTsKKyAg
cmV0dXJuIDA7CiB9CiAKLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgPT0oIGNvbnN0IFZhbHVlICZv
dGhlciApIGNvbnN0Ci17Ci0gICAvL2lmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQotICAgLy8g
R0NDIDIuOTUuMyBzYXlzOgotICAgLy8gYXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgYml0LWZp
ZWxkIHN0cnVjdHVyZSBtZW1iZXIgYEpzb246OlZhbHVlOjp0eXBlXycKLSAgIC8vIEJlYXRzIG1l
LCBidXQgYSB0ZW1wIHNvbHZlcyB0aGUgcHJvYmxlbS4KLSAgIGludCB0ZW1wID0gb3RoZXIudHlw
ZV87Ci0gICBpZiAoIHR5cGVfICE9IHRlbXAgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgc3dp
dGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Citib29sIFZhbHVlOjpvcGVy
YXRvcjwoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7CisgIGludCB0eXBlRGVsdGEgPSB0eXBl
KCkgLSBvdGhlci50eXBlKCk7CisgIGlmICh0eXBlRGVsdGEpCisgICAgcmV0dXJuIHR5cGVEZWx0
YSA8IDAgPyB0cnVlIDogZmFsc2U7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgbnVsbFZh
bHVlOgorICAgIHJldHVybiBmYWxzZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLmludF8gPCBvdGhlci52YWx1ZV8uaW50XzsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0
dXJuIHZhbHVlXy51aW50XyA8IG90aGVyLnZhbHVlXy51aW50XzsKKyAgY2FzZSByZWFsVmFsdWU6
CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA8IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2FzZSBi
b29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA8IG90aGVyLnZhbHVlXy5ib29s
XzsKKyAgY2FzZSBzdHJpbmdWYWx1ZTogeworICAgIGlmICgodmFsdWVfLnN0cmluZ18gPT0gbnVs
bHB0cikgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IG51bGxwdHIpKSB7CisgICAgICBpZiAo
b3RoZXIudmFsdWVfLnN0cmluZ18pCisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgZWxzZQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHVuc2lnbmVkIHRoaXNfbGVuOworICAg
IHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAgICBjaGFy
IGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+aXNBbGxv
Y2F0ZWQoKSwgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAmdGhpc19zdHIpOworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmlz
QWxsb2NhdGVkKCksIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJfbGVuLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICZvdGhlcl9zdHIpOworICAgIHVuc2lnbmVkIG1pbl9sZW4gPSBzdGQ6
Om1pbjx1bnNpZ25lZD4odGhpc19sZW4sIG90aGVyX2xlbik7CisgICAgSlNPTl9BU1NFUlQodGhp
c19zdHIgJiYgb3RoZXJfc3RyKTsKKyAgICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzX3N0ciwgb3Ro
ZXJfc3RyLCBtaW5fbGVuKTsKKyAgICBpZiAoY29tcCA8IDApCiAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmludF8gPT0gb3RoZXIudmFs
dWVfLmludF87Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8udWludF8g
PT0gb3RoZXIudmFsdWVfLnVpbnRfOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4g
dmFsdWVfLnJlYWxfID09IG90aGVyLnZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgYm9vbGVhblZhbHVl
OgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA9PSBvdGhlci52YWx1ZV8uYm9vbF87Ci0gICBj
YXNlIHN0cmluZ1ZhbHVlOgotICAgICAgcmV0dXJuICggdmFsdWVfLnN0cmluZ18gPT0gb3RoZXIu
dmFsdWVfLnN0cmluZ18gKQotICAgICAgICAgICAgIHx8ICggb3RoZXIudmFsdWVfLnN0cmluZ18g
IAotICAgICAgICAgICAgICAgICAgJiYgIHZhbHVlXy5zdHJpbmdfICAKLSAgICAgICAgICAgICAg
ICAgICYmIHN0cmNtcCggdmFsdWVfLnN0cmluZ18sIG90aGVyLnZhbHVlXy5zdHJpbmdfICkgPT0g
MCApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlW
YWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLm1hcF8tPnNp
emUoKSA9PSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpCi0gICAgICAgICAgICAgJiYgKCp2YWx1
ZV8ubWFwXykgPT0gKCpvdGhlci52YWx1ZV8ubWFwXyk7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZh
bHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5hcnJheV8tPmNvbXBhcmUoICoob3RoZXIudmFsdWVf
LmFycmF5XykgKSA9PSAwOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1
ZV8ubWFwXy0+Y29tcGFyZSggKihvdGhlci52YWx1ZV8ubWFwXykgKSA9PSAwOworICAgIGlmIChj
b21wID4gMCkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gKHRoaXNfbGVuIDwgb3Ro
ZXJfbGVuKTsKKyAgfQorICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsK
KyAgICBpbnQgZGVsdGEgPSBpbnQodmFsdWVfLm1hcF8tPnNpemUoKSAtIG90aGVyLnZhbHVlXy5t
YXBfLT5zaXplKCkpOworICAgIGlmIChkZWx0YSkKKyAgICAgIHJldHVybiBkZWx0YSA8IDA7Cisg
ICAgcmV0dXJuICgqdmFsdWVfLm1hcF8pIDwgKCpvdGhlci52YWx1ZV8ubWFwXyk7CisgIH0KKyAg
ZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorICByZXR1cm4gZmFs
c2U7IC8vIHVucmVhY2hhYmxlCit9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPD0oY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKG90aGVyIDwgKnRoaXMpOyB9CisKK2Jvb2wgVmFs
dWU6Om9wZXJhdG9yPj0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlz
IDwgb3RoZXIpOyB9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPihjb25zdCBWYWx1ZSYgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuIG90aGVyIDwgKnRoaXM7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I9
PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKHR5cGUoKSAhPSBvdGhlci50eXBl
KCkpCisgICAgcmV0dXJuIGZhbHNlOworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIG51bGxW
YWx1ZToKKyAgICByZXR1cm4gdHJ1ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLmludF8gPT0gb3RoZXIudmFsdWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJl
dHVybiB2YWx1ZV8udWludF8gPT0gb3RoZXIudmFsdWVfLnVpbnRfOworICBjYXNlIHJlYWxWYWx1
ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID09IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2Fz
ZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA9PSBvdGhlci52YWx1ZV8u
Ym9vbF87CisgIGNhc2Ugc3RyaW5nVmFsdWU6IHsKKyAgICBpZiAoKHZhbHVlXy5zdHJpbmdfID09
IG51bGxwdHIpIHx8IChvdGhlci52YWx1ZV8uc3RyaW5nXyA9PSBudWxscHRyKSkgeworICAgICAg
cmV0dXJuICh2YWx1ZV8uc3RyaW5nXyA9PSBvdGhlci52YWx1ZV8uc3RyaW5nXyk7CisgICAgfQor
ICAgIHVuc2lnbmVkIHRoaXNfbGVuOworICAgIHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFy
IGNvbnN0KiB0aGlzX3N0cjsKKyAgICBjaGFyIGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2Rl
UHJlZml4ZWRTdHJpbmcodGhpcy0+aXNBbGxvY2F0ZWQoKSwgdGhpcy0+dmFsdWVfLnN0cmluZ18s
ICZ0aGlzX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmdGhpc19zdHIpOworICAgIGRl
Y29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmlzQWxsb2NhdGVkKCksIG90aGVyLnZhbHVlXy5zdHJp
bmdfLCAmb3RoZXJfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICZvdGhlcl9zdHIpOwor
ICAgIGlmICh0aGlzX2xlbiAhPSBvdGhlcl9sZW4pCisgICAgICByZXR1cm4gZmFsc2U7CisgICAg
SlNPTl9BU1NFUlQodGhpc19zdHIgJiYgb3RoZXJfc3RyKTsKKyAgICBpbnQgY29tcCA9IG1lbWNt
cCh0aGlzX3N0ciwgb3RoZXJfc3RyLCB0aGlzX2xlbik7CisgICAgcmV0dXJuIGNvbXAgPT0gMDsK
KyAgfQorICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gb3RoZXIudmFsdWVfLm1hcF8tPnNpemUoKSAmJgorICAg
ICAgICAgICAoKnZhbHVlXy5tYXBfKSA9PSAoKm90aGVyLnZhbHVlXy5tYXBfKTsKKyAgZGVmYXVs
dDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorICByZXR1cm4gZmFsc2U7IC8v
IHVucmVhY2hhYmxlCit9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgVmFsdWUmIG90
aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorCitjb25zdCBjaGFyKiBW
YWx1ZTo6YXNDU3RyaW5nKCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9
PSBzdHJpbmdWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmFz
Q1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZSIpOworICBpZiAodmFsdWVfLnN0cmluZ18g
PT0gbnVsbHB0cikKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgdW5zaWduZWQgdGhpc19sZW47Cisg
IGNoYXIgY29uc3QqIHRoaXNfc3RyOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5pc0Fs
bG9jYXRlZCgpLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLAorICAgICAgICAgICAg
ICAgICAgICAgICAmdGhpc19zdHIpOworICByZXR1cm4gdGhpc19zdHI7Cit9CisKKyNpZiBKU09O
Q1BQX1VTSU5HX1NFQ1VSRV9NRU1PUlkKK3Vuc2lnbmVkIFZhbHVlOjpnZXRDU3RyaW5nTGVuZ3Ro
KCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBzdHJpbmdWYWx1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1
aXJlcyBzdHJpbmdWYWx1ZSIpOworICBpZiAodmFsdWVfLnN0cmluZ18gPT0gMCkKKyAgICByZXR1
cm4gMDsKKyAgdW5zaWduZWQgdGhpc19sZW47CisgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICBk
ZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5pc0FsbG9jYXRlZCgpLCB0aGlzLT52YWx1ZV8uc3Ry
aW5nXywgJnRoaXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAmdGhpc19zdHIpOworICBy
ZXR1cm4gdGhpc19sZW47Cit9CiAjZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0FTU0VS
VF9VTlJFQUNIQUJMRTsKLSAgIH0KLSAgIHJldHVybiBmYWxzZTsgIC8vIHVucmVhY2hhYmxlCisK
K2Jvb2wgVmFsdWU6OmdldFN0cmluZyhjaGFyIGNvbnN0KiogYmVnaW4sIGNoYXIgY29uc3QqKiBl
bmQpIGNvbnN0IHsKKyAgaWYgKHR5cGUoKSAhPSBzdHJpbmdWYWx1ZSkKKyAgICByZXR1cm4gZmFs
c2U7CisgIGlmICh2YWx1ZV8uc3RyaW5nXyA9PSBudWxscHRyKQorICAgIHJldHVybiBmYWxzZTsK
KyAgdW5zaWduZWQgbGVuZ3RoOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5pc0FsbG9j
YXRlZCgpLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJmxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgYmVnaW4pOworICAqZW5kID0gKmJlZ2luICsgbGVuZ3RoOworICByZXR1cm4gdHJ1ZTsK
K30KKworU3RyaW5nIFZhbHVlOjphc1N0cmluZygpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkp
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuICIiOworICBjYXNlIHN0cmluZ1ZhbHVl
OiB7CisgICAgaWYgKHZhbHVlXy5zdHJpbmdfID09IG51bGxwdHIpCisgICAgICByZXR1cm4gIiI7
CisgICAgdW5zaWduZWQgdGhpc19sZW47CisgICAgY2hhciBjb25zdCogdGhpc19zdHI7CisgICAg
ZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+aXNBbGxvY2F0ZWQoKSwgdGhpcy0+dmFsdWVfLnN0
cmluZ18sICZ0aGlzX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmdGhpc19zdHIpOwor
ICAgIHJldHVybiBTdHJpbmcodGhpc19zdHIsIHRoaXNfbGVuKTsKKyAgfQorICBjYXNlIGJvb2xl
YW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gInRydWUiIDogImZhbHNlIjsKKyAg
Y2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8uaW50Xyk7Cisg
IGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy51aW50Xyk7
CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy5yZWFs
Xyk7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9GQUlMX01FU1NBR0UoIlR5cGUgaXMgbm90IGNvbnZl
cnRpYmxlIHRvIHN0cmluZyIpOworICB9CiB9CiAKLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgIT0o
IGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1cm4gISggKnRoaXMgPT0gb3Ro
ZXIgKTsKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorQ3BwVEw6OkNvbnN0U3RyaW5nIFZhbHVlOjph
c0NvbnN0U3RyaW5nKCkgY29uc3QgeworICB1bnNpZ25lZCBsZW47CisgIGNoYXIgY29uc3QqIHN0
cjsKKyAgZGVjb2RlUHJlZml4ZWRTdHJpbmcoaXNBbGxvY2F0ZWQoKSwgdmFsdWVfLnN0cmluZ18s
ICZsZW4sICZzdHIpOworICByZXR1cm4gQ3BwVEw6OkNvbnN0U3RyaW5nKHN0ciwgbGVuKTsKIH0K
KyNlbmRpZgogCi1jb25zdCBjaGFyICoKLVZhbHVlOjphc0NTdHJpbmcoKSBjb25zdAotewotICAg
SlNPTl9BU1NFUlQoIHR5cGVfID09IHN0cmluZ1ZhbHVlICk7Ci0gICByZXR1cm4gdmFsdWVfLnN0
cmluZ187CitWYWx1ZTo6SW50IFZhbHVlOjphc0ludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBl
KCkpIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCks
ICJMYXJnZXN0SW50IG91dCBvZiBJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50KHZhbHVlXy5p
bnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgp
LCAiTGFyZ2VzdFVJbnQgb3V0IG9mIEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQodmFsdWVf
LnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJh
bmdlKHZhbHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgImRvdWJsZSBvdXQgb2YgSW50IHJhbmdlIik7CisgICAgcmV0dXJuIEludCh2YWx1ZV8ucmVh
bF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFs
dWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0OgorICAgIGJy
ZWFrOworICB9CisgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUg
dG8gSW50LiIpOworfQorCitWYWx1ZTo6VUludCBWYWx1ZTo6YXNVSW50KCkgY29uc3QgeworICBz
d2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NB
R0UoaXNVSW50KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0dXJu
IFVJbnQodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9N
RVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICBy
ZXR1cm4gVUludCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FT
U0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4g
VUludCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAg
Y2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBk
ZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBu
b3QgY29udmVydGlibGUgdG8gVUludC4iKTsKIH0KIAorI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCiAKLXN0ZDo6c3RyaW5nIAotVmFsdWU6OmFzU3RyaW5nKCkgY29uc3QKLXsKLSAgIHN3aXRj
aCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuICIiOwot
ICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uc3RyaW5nXyA/IHZhbHVl
Xy5zdHJpbmdfIDogIiI7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1
ZV8uYm9vbF8gPyAidHJ1ZSIgOiAiZmFsc2UiOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJl
dHVybiB2YWx1ZVRvU3RyaW5nKCB2YWx1ZV8uaW50XyApOwotICAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgICByZXR1cm4gdmFsdWVUb1N0cmluZyggdmFsdWVfLnVpbnRfICk7Ci0gICBjYXNlIHJlYWxW
YWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKCB2YWx1ZV8ucmVhbF8gKTsKLSAgIGRl
ZmF1bHQ6Ci0gICAgICBKU09OX0ZBSUxfTUVTU0FHRSggIlR5cGUgaXMgbm90IGNvbnZlcnRpYmxl
IHRvIHN0cmluZyIgKTsKLSAgIH0KLX0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotQ3BwVEw6
OkNvbnN0U3RyaW5nIAotVmFsdWU6OmFzQ29uc3RTdHJpbmcoKSBjb25zdAotewotICAgcmV0dXJu
IENwcFRMOjpDb25zdFN0cmluZyggYXNTdHJpbmcoKS5jX3N0cigpICk7Ci19Ci0jIGVuZGlmCi0K
LQotVmFsdWU6OkludCAKLVZhbHVlOjphc0ludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBl
XyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShp
c0ludCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgSW50IHJhbmdlIik7Ci0gICAgICByZXR1cm4gSW50
KHZhbHVlXy5pbnRfKTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVT
U0FHRShpc0ludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIEludCByYW5nZSIpOwotICAgICAgcmV0
dXJuIEludCh2YWx1ZV8udWludF8pOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBKU09OX0FT
U0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCksICJkb3Vi
bGUgb3V0IG9mIEludCByYW5nZSIpOwotICAgICAgcmV0dXJuIEludCh2YWx1ZV8ucmVhbF8pOwot
ICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gMDsKLSAgIGNhc2UgYm9vbGVhblZhbHVl
OgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwotICAgZGVmYXVsdDoKLSAgICAg
IGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0
aWJsZSB0byBJbnQuIik7Ci19Ci0KLQotVmFsdWU6OlVJbnQgCi1WYWx1ZTo6YXNVSW50KCkgY29u
c3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAg
ICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludCBy
YW5nZSIpOwotICAgICAgcmV0dXJuIFVJbnQodmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50VmFs
dWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdFVJbnQgb3V0
IG9mIFVJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBVSW50KHZhbHVlXy51aW50Xyk7Ci0gICBj
YXNlIHJlYWxWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8u
cmVhbF8sIDAsIG1heFVJbnQpLCAiZG91YmxlIG91dCBvZiBVSW50IHJhbmdlIik7Ci0gICAgICBy
ZXR1cm4gVUludCggdmFsdWVfLnJlYWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJl
dHVybiAwOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xf
ID8gMSA6IDA7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBKU09OX0ZBSUxf
TUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFVJbnQuIik7Ci19Ci0KLQotIyBp
ZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotCi1WYWx1ZTo6SW50NjQKLVZhbHVlOjphc0ludDY0
KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6
Ci0gICAgICByZXR1cm4gSW50NjQodmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50VmFsdWU6Ci0g
ICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50NjQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJ
bnQ2NCByYW5nZSIpOwotICAgICAgcmV0dXJuIEludDY0KHZhbHVlXy51aW50Xyk7Ci0gICBjYXNl
IHJlYWxWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVh
bF8sIG1pbkludDY0LCBtYXhJbnQ2NCksICJkb3VibGUgb3V0IG9mIEludDY0IHJhbmdlIik7Ci0g
ICAgICByZXR1cm4gSW50NjQodmFsdWVfLnJlYWxfKTsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAg
ICAgcmV0dXJuIDA7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8u
Ym9vbF8gPyAxIDogMDsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05f
RkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50NjQuIik7Ci19Ci0K
LQotVmFsdWU6OlVJbnQ2NAotVmFsdWU6OmFzVUludDY0KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAo
IHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNT
QUdFKGlzVUludDY0KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAgICAg
IHJldHVybiBVSW50NjQodmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICBy
ZXR1cm4gVUludDY0KHZhbHVlXy51aW50Xyk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIEpT
T05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQ2NCksICJk
b3VibGUgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOwotICAgICAgcmV0dXJuIFVJbnQ2NCggdmFsdWVf
LnJlYWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAwOwotICAgY2FzZSBi
b29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gICBkZWZh
dWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMg
bm90IGNvbnZlcnRpYmxlIHRvIFVJbnQ2NC4iKTsKLX0KLSMgZW5kaWYgLy8gaWYgZGVmaW5lZChK
U09OX0hBU19JTlQ2NCkKLQotCi1MYXJnZXN0SW50IAotVmFsdWU6OmFzTGFyZ2VzdEludCgpIGNv
bnN0Ci17CitWYWx1ZTo6SW50NjQgVmFsdWU6OmFzSW50NjQoKSBjb25zdCB7CisgIHN3aXRjaCAo
dHlwZSgpKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRf
KTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCks
ICJMYXJnZXN0VUludCBvdXQgb2YgSW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50NjQodmFs
dWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJ
blJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50NjQsIG1heEludDY0KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJkb3VibGUgb3V0IG9mIEludDY0IHJhbmdlIik7CisgICAgcmV0dXJuIEludDY0
KHZhbHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNl
IGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1
bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBj
b252ZXJ0aWJsZSB0byBJbnQ2NC4iKTsKK30KKworVmFsdWU6OlVJbnQ2NCBWYWx1ZTo6YXNVSW50
NjQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQ2NCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludDY0
IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZh
bHVlOgorICAgIHJldHVybiBVSW50NjQodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6
CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUlu
dDY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQ2NCByYW5n
ZSIpOworICAgIHJldHVybiBVSW50NjQodmFsdWVfLnJlYWxfKTsKKyAgY2FzZSBudWxsVmFsdWU6
CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
Ym9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICBKU09OX0ZBSUxf
TUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFVJbnQ2NC4iKTsKK30KKyNlbmRp
ZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitMYXJnZXN0SW50IFZhbHVlOjphc0xh
cmdlc3RJbnQoKSBjb25zdCB7CiAjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICAgIHJldHVy
biBhc0ludCgpOworICByZXR1cm4gYXNJbnQoKTsKICNlbHNlCi0gICAgcmV0dXJuIGFzSW50NjQo
KTsKKyAgcmV0dXJuIGFzSW50NjQoKTsKICNlbmRpZgogfQogCi0KLUxhcmdlc3RVSW50IAotVmFs
dWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25zdAoteworTGFyZ2VzdFVJbnQgVmFsdWU6OmFzTGFyZ2Vz
dFVJbnQoKSBjb25zdCB7CiAjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICAgIHJldHVybiBh
c1VJbnQoKTsKKyAgcmV0dXJuIGFzVUludCgpOwogI2Vsc2UKLSAgICByZXR1cm4gYXNVSW50NjQo
KTsKKyAgcmV0dXJuIGFzVUludDY0KCk7CiAjZW5kaWYKIH0KIAotCi1kb3VibGUgCi1WYWx1ZTo6
YXNEb3VibGUoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBp
bnRWYWx1ZToKLSAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KCB2YWx1ZV8uaW50XyAp
OwotICAgY2FzZSB1aW50VmFsdWU6Citkb3VibGUgVmFsdWU6OmFzRG91YmxlKCkgY29uc3Qgewor
ICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxkb3VibGU+KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CiAjaWYgIWRlZmlu
ZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0gICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8ZG91YmxlPiggdmFsdWVfLnVpbnRfICk7Ci0jZWxzZSAvLyBpZiAhZGVmaW5lZChKU09O
X1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgICAgIHJldHVybiBpbnRlZ2VyVG9Eb3Vi
bGUoIHZhbHVlXy51aW50XyApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVl
Xy51aW50Xyk7CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NP
TlZFUlNJT04pCisgICAgcmV0dXJuIGludGVnZXJUb0RvdWJsZSh2YWx1ZV8udWludF8pOwogI2Vu
ZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAg
Y2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfOwotICAgY2FzZSBudWxs
VmFsdWU6Ci0gICAgICByZXR1cm4gMC4wOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICBy
ZXR1cm4gdmFsdWVfLmJvb2xfID8gMS4wIDogMC4wOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFr
OwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0
byBkb3VibGUuIik7Ci19Ci0KLWZsb2F0Ci1WYWx1ZTo6YXNGbG9hdCgpIGNvbnN0Ci17Ci0gICBz
d2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGZsb2F0PiggdmFsdWVfLmludF8gKTsKLSAgIGNhc2UgdWludFZhbHVlOgorICBj
YXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfOworICBjYXNlIG51bGxWYWx1
ZToKKyAgICByZXR1cm4gMC4wOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLmJvb2xfID8gMS4wIDogMC4wOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIEpT
T05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZG91YmxlLiIpOwor
fQorCitmbG9hdCBWYWx1ZTo6YXNGbG9hdCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkpIHsK
KyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5p
bnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CiAjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9V
QkxFX0NPTlZFUlNJT04pCi0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KCB2YWx1ZV8u
dWludF8gKTsKLSNlbHNlIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05W
RVJTSU9OKQotICAgICAgcmV0dXJuIGludGVnZXJUb0RvdWJsZSggdmFsdWVfLnVpbnRfICk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZV8udWludF8pOworI2Vsc2UgIC8vIGlm
ICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAgIC8vIFRoaXMg
Y2FuIGZhaWwgKHNpbGVudGx5PykgaWYgdGhlIHZhbHVlIGlzIGJpZ2dlciB0aGFuIE1BWF9GTE9B
VC4KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGludGVnZXJUb0RvdWJsZSh2YWx1ZV8u
dWludF8pKTsKICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZs
b2F0PiggdmFsdWVfLnJlYWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAw
LjA7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAx
LjBmIDogMC4wZjsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJ
TF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZmxvYXQuIik7Ci19Ci0KLWJv
b2wgCi1WYWx1ZTo6YXNCb29sKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsK
LSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXzsKLSAgIGNh
c2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIGZhbHNlOwotICAgY2FzZSBpbnRWYWx1ZToKLSAg
ICAgIHJldHVybiB2YWx1ZV8uaW50XyA/IHRydWUgOiBmYWxzZTsKLSAgIGNhc2UgdWludFZhbHVl
OgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA/IHRydWUgOiBmYWxzZTsKLSAgIGNhc2UgcmVh
bFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA/IHRydWUgOiBmYWxzZTsKLSAgIGRl
ZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBp
cyBub3QgY29udmVydGlibGUgdG8gYm9vbC4iKTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzQ29u
dmVydGlibGVUbyggVmFsdWVUeXBlIG90aGVyICkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIG90aGVy
ICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuICggaXNOdW1lcmljKCkg
JiYgYXNEb3VibGUoKSA9PSAwLjAgKQotICAgICAgICAgICAgIHx8ICggdHlwZV8gPT0gYm9vbGVh
blZhbHVlICYmIHZhbHVlXy5ib29sXyA9PSBmYWxzZSApCi0gICAgICAgICAgICAgfHwgKCB0eXBl
XyA9PSBzdHJpbmdWYWx1ZSAmJiBhc1N0cmluZygpID09ICIiICkKLSAgICAgICAgICAgICB8fCAo
IHR5cGVfID09IGFycmF5VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwICkKLSAgICAg
ICAgICAgICB8fCAoIHR5cGVfID09IG9iamVjdFZhbHVlICYmIHZhbHVlXy5tYXBfLT5zaXplKCkg
PT0gMCApCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBpbnRW
YWx1ZToKLSAgICAgIHJldHVybiBpc0ludCgpCi0gICAgICAgICAgICAgfHwgKHR5cGVfID09IHJl
YWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQpKQotICAgICAg
ICAgICAgIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09
IG51bGxWYWx1ZTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIGlzVUludCgpCi0g
ICAgICAgICAgICAgfHwgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFs
XywgMCwgbWF4VUludCkpCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlCi0g
ICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSByZWFsVmFsdWU6Ci0g
ICAgICByZXR1cm4gaXNOdW1lcmljKCkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBib29sZWFu
VmFsdWUKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIGJvb2xl
YW5WYWx1ZToKLSAgICAgIHJldHVybiBpc051bWVyaWMoKQotICAgICAgICAgICAgIHx8IHR5cGVf
ID09IGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAg
IGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICByZXR1cm4gaXNOdW1lcmljKCkKLSAgICAgICAgICAg
ICB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBzdHJp
bmdWYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2UgYXJy
YXlWYWx1ZToKLSAgICAgIHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVlCi0gICAgICAgICAgICAg
fHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVy
biB0eXBlXyA9PSBvYmplY3RWYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1
ZTsKLSAgIH0KLSAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOwotICAgcmV0dXJuIGZhbHNlOwor
ICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5y
ZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwLjA7CisgIGNhc2UgYm9vbGVh
blZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxLjBmIDogMC4wZjsKKyAgZGVmYXVs
dDoKKyAgICBicmVhazsKKyAgfQorICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNv
bnZlcnRpYmxlIHRvIGZsb2F0LiIpOworfQorCitib29sIFZhbHVlOjphc0Jvb2woKSBjb25zdCB7
CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2
YWx1ZV8uYm9vbF87CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiBmYWxzZTsKKyAgY2Fz
ZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPyB0cnVlIDogZmFsc2U7CisgIGNh
c2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPyB0cnVlIDogZmFsc2U7Cisg
IGNhc2UgcmVhbFZhbHVlOiB7CisgICAgLy8gQWNjb3JkaW5nIHRvIEphdmFTY3JpcHQgbGFuZ3Vh
Z2UgemVybyBvciBOYU4gaXMgcmVnYXJkZWQgYXMgZmFsc2UKKyAgICBjb25zdCBhdXRvIHZhbHVl
X2NsYXNzaWZpY2F0aW9uID0gc3RkOjpmcGNsYXNzaWZ5KHZhbHVlXy5yZWFsXyk7CisgICAgcmV0
dXJuIHZhbHVlX2NsYXNzaWZpY2F0aW9uICE9IEZQX1pFUk8gJiYgdmFsdWVfY2xhc3NpZmljYXRp
b24gIT0gRlBfTkFOOworICB9CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgSlNPTl9G
QUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBib29sLiIpOworfQorCiti
b29sIFZhbHVlOjppc0NvbnZlcnRpYmxlVG8oVmFsdWVUeXBlIG90aGVyKSBjb25zdCB7CisgIHN3
aXRjaCAob3RoZXIpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIChpc051bWVyaWMo
KSAmJiBhc0RvdWJsZSgpID09IDAuMCkgfHwKKyAgICAgICAgICAgKHR5cGUoKSA9PSBib29sZWFu
VmFsdWUgJiYgdmFsdWVfLmJvb2xfID09IGZhbHNlKSB8fAorICAgICAgICAgICAodHlwZSgpID09
IHN0cmluZ1ZhbHVlICYmIGFzU3RyaW5nKCkuZW1wdHkoKSkgfHwKKyAgICAgICAgICAgKHR5cGUo
KSA9PSBhcnJheVZhbHVlICYmIHZhbHVlXy5tYXBfLT5lbXB0eSgpKSB8fAorICAgICAgICAgICAo
dHlwZSgpID09IG9iamVjdFZhbHVlICYmIHZhbHVlXy5tYXBfLT5lbXB0eSgpKSB8fAorICAgICAg
ICAgICB0eXBlKCkgPT0gbnVsbFZhbHVlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBp
c0ludCgpIHx8CisgICAgICAgICAgICh0eXBlKCkgPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFs
dWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCkpIHx8CisgICAgICAgICAgIHR5cGUoKSA9PSBib29s
ZWFuVmFsdWUgfHwgdHlwZSgpID09IG51bGxWYWx1ZTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAg
cmV0dXJuIGlzVUludCgpIHx8CisgICAgICAgICAgICh0eXBlKCkgPT0gcmVhbFZhbHVlICYmIElu
UmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50KSkgfHwKKyAgICAgICAgICAgdHlwZSgpID09
IGJvb2xlYW5WYWx1ZSB8fCB0eXBlKCkgPT0gbnVsbFZhbHVlOworICBjYXNlIHJlYWxWYWx1ZToK
KyAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZSgpID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBl
KCkgPT0gbnVsbFZhbHVlOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gaXNOdW1l
cmljKCkgfHwgdHlwZSgpID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlKCkgPT0gbnVsbFZhbHVlOwor
ICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlKCkgPT0g
Ym9vbGVhblZhbHVlIHx8IHR5cGUoKSA9PSBzdHJpbmdWYWx1ZSB8fAorICAgICAgICAgICB0eXBl
KCkgPT0gbnVsbFZhbHVlOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgcmV0dXJuIHR5cGUoKSA9
PSBhcnJheVZhbHVlIHx8IHR5cGUoKSA9PSBudWxsVmFsdWU7CisgIGNhc2Ugb2JqZWN0VmFsdWU6
CisgICAgcmV0dXJuIHR5cGUoKSA9PSBvYmplY3RWYWx1ZSB8fCB0eXBlKCkgPT0gbnVsbFZhbHVl
OworICB9CisgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICByZXR1cm4gZmFsc2U7CiB9CiAK
LQogLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0Ci1BcnJheUluZGV4IAot
VmFsdWU6OnNpemUoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2Fz
ZSBudWxsVmFsdWU6Ci0gICBjYXNlIGludFZhbHVlOgotICAgY2FzZSB1aW50VmFsdWU6Ci0gICBj
YXNlIHJlYWxWYWx1ZToKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgY2FzZSBzdHJpbmdWYWx1
ZToKLSAgICAgIHJldHVybiAwOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAK
LSAgIGNhc2UgYXJyYXlWYWx1ZTogIC8vIHNpemUgb2YgdGhlIGFycmF5IGlzIGhpZ2hlc3QgaW5k
ZXggKyAxCi0gICAgICBpZiAoICF2YWx1ZV8ubWFwXy0+ZW1wdHkoKSApCi0gICAgICB7Ci0gICAg
ICAgICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5l
bmQoKTsKLSAgICAgICAgIC0taXRMYXN0OwotICAgICAgICAgcmV0dXJuICgqaXRMYXN0KS5maXJz
dC5pbmRleCgpKzE7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gMDsKLSAgIGNhc2Ugb2JqZWN0VmFs
dWU6Ci0gICAgICByZXR1cm4gQXJyYXlJbmRleCggdmFsdWVfLm1hcF8tPnNpemUoKSApOwotI2Vs
c2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHJldHVybiBJbnQoIHZhbHVlXy5hcnJheV8t
PnNpemUoKSApOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiBJbnQoIHZhbHVl
Xy5tYXBfLT5zaXplKCkgKTsKLSNlbmRpZgotICAgfQotICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFC
TEU7Ci0gICByZXR1cm4gMDsgLy8gdW5yZWFjaGFibGU7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjpl
bXB0eSgpIGNvbnN0Ci17Ci0gICBpZiAoIGlzTnVsbCgpIHx8IGlzQXJyYXkoKSB8fCBpc09iamVj
dCgpICkKLSAgICAgIHJldHVybiBzaXplKCkgPT0gMHU7Ci0gICBlbHNlCi0gICAgICByZXR1cm4g
ZmFsc2U7CitBcnJheUluZGV4IFZhbHVlOjpzaXplKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUo
KSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFs
dWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgY2FzZSBzdHJp
bmdWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBhcnJheVZhbHVlOiAvLyBzaXplIG9mIHRo
ZSBhcnJheSBpcyBoaWdoZXN0IGluZGV4ICsgMQorICAgIGlmICghdmFsdWVfLm1hcF8tPmVtcHR5
KCkpIHsKKyAgICAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFsdWVf
Lm1hcF8tPmVuZCgpOworICAgICAgLS1pdExhc3Q7CisgICAgICByZXR1cm4gKCppdExhc3QpLmZp
cnN0LmluZGV4KCkgKyAxOworICAgIH0KKyAgICByZXR1cm4gMDsKKyAgY2FzZSBvYmplY3RWYWx1
ZToKKyAgICByZXR1cm4gQXJyYXlJbmRleCh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgfQorICBK
U09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgcmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOworfQor
Citib29sIFZhbHVlOjplbXB0eSgpIGNvbnN0IHsKKyAgaWYgKGlzTnVsbCgpIHx8IGlzQXJyYXko
KSB8fCBpc09iamVjdCgpKQorICAgIHJldHVybiBzaXplKCkgPT0gMHU7CisgIGVsc2UKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK1ZhbHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4g
IWlzTnVsbCgpOyB9CisKK3ZvaWQgVmFsdWU6OmNsZWFyKCkgeworICBKU09OX0FTU0VSVF9NRVNT
QUdFKHR5cGUoKSA9PSBudWxsVmFsdWUgfHwgdHlwZSgpID09IGFycmF5VmFsdWUgfHwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZSgpID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAg
ICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6Y2xlYXIoKTogcmVxdWlyZXMgY29tcGxleCB2YWx1
ZSIpOworICBzdGFydF8gPSAwOworICBsaW1pdF8gPSAwOworICBzd2l0Y2ggKHR5cGUoKSkgewor
ICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgdmFsdWVfLm1hcF8t
PmNsZWFyKCk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KK30KKwor
dm9pZCBWYWx1ZTo6cmVzaXplKEFycmF5SW5kZXggbmV3U2l6ZSkgeworICBKU09OX0FTU0VSVF9N
RVNTQUdFKHR5cGUoKSA9PSBudWxsVmFsdWUgfHwgdHlwZSgpID09IGFycmF5VmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpyZXNpemUoKTogcmVxdWlyZXMgYXJy
YXlWYWx1ZSIpOworICBpZiAodHlwZSgpID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVl
KGFycmF5VmFsdWUpOworICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7CisgIGlmIChuZXdT
aXplID09IDApCisgICAgY2xlYXIoKTsKKyAgZWxzZSBpZiAobmV3U2l6ZSA+IG9sZFNpemUpCisg
ICAgdGhpcy0+b3BlcmF0b3JbXShuZXdTaXplIC0gMSk7CisgIGVsc2UgeworICAgIGZvciAoQXJy
YXlJbmRleCBpbmRleCA9IG5ld1NpemU7IGluZGV4IDwgb2xkU2l6ZTsgKytpbmRleCkgeworICAg
ICAgdmFsdWVfLm1hcF8tPmVyYXNlKGluZGV4KTsKKyAgICB9CisgICAgSlNPTl9BU1NFUlQoc2l6
ZSgpID09IG5ld1NpemUpOworICB9Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShBcnJh
eUluZGV4IGluZGV4KSB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlKCkgPT0g
bnVsbFZhbHVlIHx8IHR5cGUoKSA9PSBhcnJheVZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVl
OjpvcGVyYXRvcltdKEFycmF5SW5kZXgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0
eXBlKCkgPT0gbnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUoYXJyYXlWYWx1ZSk7CisgIENa
U3RyaW5nIGtleShpbmRleCk7CisgIGF1dG8gaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQo
a2V5KTsKKyAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBr
ZXkpCisgICAgcmV0dXJuICgqaXQpLnNlY29uZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5
cGUgZGVmYXVsdFZhbHVlKGtleSwgbnVsbFNpbmdsZXRvbigpKTsKKyAgaXQgPSB2YWx1ZV8ubWFw
Xy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOworICByZXR1cm4gKCppdCkuc2Vjb25kOworfQor
CitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSB7CisgIEpTT05fQVNTRVJUX01F
U1NBR0UoCisgICAgICBpbmRleCA+PSAwLAorICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRv
cltdKGludCBpbmRleCk6IGluZGV4IGNhbm5vdCBiZSBuZWdhdGl2ZSIpOworICByZXR1cm4gKCp0
aGlzKVtBcnJheUluZGV4KGluZGV4KV07Cit9CisKK2NvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0
b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisg
ICAgICB0eXBlKCkgPT0gbnVsbFZhbHVlIHx8IHR5cGUoKSA9PSBhcnJheVZhbHVlLAorICAgICAg
ImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXgpY29uc3Q6IHJlcXVpcmVzIGFy
cmF5VmFsdWUiKTsKKyAgaWYgKHR5cGUoKSA9PSBudWxsVmFsdWUpCisgICAgcmV0dXJuIG51bGxT
aW5nbGV0b24oKTsKKyAgQ1pTdHJpbmcga2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjpjb25z
dF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7CisgIGlmIChpdCA9PSB2YWx1
ZV8ubWFwXy0+ZW5kKCkpCisgICAgcmV0dXJuIG51bGxTaW5nbGV0b24oKTsKKyAgcmV0dXJuICgq
aXQpLnNlY29uZDsKK30KKworY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRl
eCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgaW5kZXggPj0gMCwKKyAg
ICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0OiBpbmRleCBj
YW5ub3QgYmUgbmVnYXRpdmUiKTsKKyAgcmV0dXJuICgqdGhpcylbQXJyYXlJbmRleChpbmRleCld
OworfQorCit2b2lkIFZhbHVlOjppbml0QmFzaWMoVmFsdWVUeXBlIHR5cGUsIGJvb2wgYWxsb2Nh
dGVkKSB7CisgIHNldFR5cGUodHlwZSk7CisgIHNldElzQWxsb2NhdGVkKGFsbG9jYXRlZCk7Cisg
IGNvbW1lbnRzXyA9IENvbW1lbnRze307CisgIHN0YXJ0XyA9IDA7CisgIGxpbWl0XyA9IDA7Cit9
CisKK3ZvaWQgVmFsdWU6OmR1cFBheWxvYWQoY29uc3QgVmFsdWUmIG90aGVyKSB7CisgIHNldFR5
cGUob3RoZXIudHlwZSgpKTsKKyAgc2V0SXNBbGxvY2F0ZWQoZmFsc2UpOworICBzd2l0Y2ggKHR5
cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50
VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICB2YWx1
ZV8gPSBvdGhlci52YWx1ZV87CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAg
aWYgKG90aGVyLnZhbHVlXy5zdHJpbmdfICYmIG90aGVyLmlzQWxsb2NhdGVkKCkpIHsKKyAgICAg
IHVuc2lnbmVkIGxlbjsKKyAgICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICAgIGRlY29kZVByZWZp
eGVkU3RyaW5nKG90aGVyLmlzQWxsb2NhdGVkKCksIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmbGVu
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0cik7CisgICAgICB2YWx1ZV8uc3RyaW5n
XyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHN0ciwgbGVuKTsKKyAgICAgIHNldElz
QWxsb2NhdGVkKHRydWUpOworICAgIH0gZWxzZSB7CisgICAgICB2YWx1ZV8uc3RyaW5nXyA9IG90
aGVyLnZhbHVlXy5zdHJpbmdfOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVl
OgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVl
cygqb3RoZXIudmFsdWVfLm1hcF8pOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIEpTT05f
QVNTRVJUX1VOUkVBQ0hBQkxFOworICB9Cit9CisKK3ZvaWQgVmFsdWU6OnJlbGVhc2VQYXlsb2Fk
KCkgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2FzZSBpbnRW
YWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNlIGJvb2xl
YW5WYWx1ZToKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICBpZiAoaXNBbGxv
Y2F0ZWQoKSkKKyAgICAgIHJlbGVhc2VQcmVmaXhlZFN0cmluZ1ZhbHVlKHZhbHVlXy5zdHJpbmdf
KTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgor
ICAgIGRlbGV0ZSB2YWx1ZV8ubWFwXzsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBKU09O
X0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorfQorCit2b2lkIFZhbHVlOjpkdXBNZXRhKGNvbnN0
IFZhbHVlJiBvdGhlcikgeworICBjb21tZW50c18gPSBvdGhlci5jb21tZW50c187CisgIHN0YXJ0
XyA9IG90aGVyLnN0YXJ0XzsKKyAgbGltaXRfID0gb3RoZXIubGltaXRfOworfQorCisvLyBBY2Nl
c3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRv
ZXMgbm90IGV4aXN0LgorLy8gQHByZSBUeXBlIG9mICcqdGhpcycgaXMgb2JqZWN0IG9yIG51bGwu
CisvLyBAcGFyYW0ga2V5IGlzIG51bGwtdGVybWluYXRlZC4KK1ZhbHVlJiBWYWx1ZTo6cmVzb2x2
ZVJlZmVyZW5jZShjb25zdCBjaGFyKiBrZXkpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAg
ICAgIHR5cGUoKSA9PSBudWxsVmFsdWUgfHwgdHlwZSgpID09IG9iamVjdFZhbHVlLAorICAgICAg
ImluIEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVl
Iik7CisgIGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUob2JqZWN0
VmFsdWUpOworICBDWlN0cmluZyBhY3R1YWxLZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
c3RybGVuKGtleSkpLAorICAgICAgICAgICAgICAgICAgICAgQ1pTdHJpbmc6Om5vRHVwbGljYXRp
b24pOyAvLyBOT1RFIQorICBhdXRvIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGFjdHVh
bEtleSk7CisgIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0g
YWN0dWFsS2V5KQorICAgIHJldHVybiAoKml0KS5zZWNvbmQ7CisKKyAgT2JqZWN0VmFsdWVzOjp2
YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZShhY3R1YWxLZXksIG51bGxTaW5nbGV0b24oKSk7CisgIGl0
ID0gdmFsdWVfLm1hcF8tPmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsKKyAgVmFsdWUmIHZhbHVl
ID0gKCppdCkuc2Vjb25kOworICByZXR1cm4gdmFsdWU7Cit9CisKKy8vIEBwYXJhbSBrZXkgaXMg
bm90IG51bGwtdGVybWluYXRlZC4KK1ZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShjaGFy
IGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGVuZCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAor
ICAgICAgdHlwZSgpID09IG51bGxWYWx1ZSB8fCB0eXBlKCkgPT0gb2JqZWN0VmFsdWUsCisgICAg
ICAiaW4gSnNvbjo6VmFsdWU6OnJlc29sdmVSZWZlcmVuY2Uoa2V5LCBlbmQpOiByZXF1aXJlcyBv
YmplY3RWYWx1ZSIpOworICBpZiAodHlwZSgpID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZh
bHVlKG9iamVjdFZhbHVlKTsKKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KGtleSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGVuZCAtIGtleSksCisgICAgICAgICAgICAgICAgICAgICBDWlN0cmluZzo6ZHVw
bGljYXRlT25Db3B5KTsKKyAgYXV0byBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1
YWxLZXkpOworICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09
IGFjdHVhbEtleSkKKyAgICByZXR1cm4gKCppdCkuc2Vjb25kOworCisgIE9iamVjdFZhbHVlczo6
dmFsdWVfdHlwZSBkZWZhdWx0VmFsdWUoYWN0dWFsS2V5LCBudWxsU2luZ2xldG9uKCkpOworICBp
dCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQsIGRlZmF1bHRWYWx1ZSk7CisgIFZhbHVlJiB2YWx1
ZSA9ICgqaXQpLnNlY29uZDsKKyAgcmV0dXJuIHZhbHVlOworfQorCitWYWx1ZSBWYWx1ZTo6Z2V0
KEFycmF5SW5kZXggaW5kZXgsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAg
Y29uc3QgVmFsdWUqIHZhbHVlID0gJigoKnRoaXMpW2luZGV4XSk7CisgIHJldHVybiB2YWx1ZSA9
PSAmbnVsbFNpbmdsZXRvbigpID8gZGVmYXVsdFZhbHVlIDogKnZhbHVlOworfQorCitib29sIFZh
bHVlOjppc1ZhbGlkSW5kZXgoQXJyYXlJbmRleCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXgg
PCBzaXplKCk7IH0KKworVmFsdWUgY29uc3QqIFZhbHVlOjpmaW5kKGNoYXIgY29uc3QqIGJlZ2lu
LCBjaGFyIGNvbnN0KiBlbmQpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlKCkg
PT0gbnVsbFZhbHVlIHx8IHR5cGUoKSA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAiaW4gSnNvbjo6VmFsdWU6OmZpbmQoYmVnaW4sIGVuZCk6IHJlcXVpcmVzICIKKyAgICAg
ICAgICAgICAgICAgICAgICAib2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlIik7CisgIGlmICh0eXBl
KCkgPT0gbnVsbFZhbHVlKQorICAgIHJldHVybiBudWxscHRyOworICBDWlN0cmluZyBhY3R1YWxL
ZXkoYmVnaW4sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBiZWdpbiksCisgICAgICAgICAg
ICAgICAgICAgICBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbik7CisgIE9iamVjdFZhbHVlczo6Y29u
c3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQg
PT0gdmFsdWVfLm1hcF8tPmVuZCgpKQorICAgIHJldHVybiBudWxscHRyOworICByZXR1cm4gJigq
aXQpLnNlY29uZDsKK30KK1ZhbHVlKiBWYWx1ZTo6ZGVtYW5kKGNoYXIgY29uc3QqIGJlZ2luLCBj
aGFyIGNvbnN0KiBlbmQpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlKCkgPT0gbnVsbFZh
bHVlIHx8IHR5cGUoKSA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4g
SnNvbjo6VmFsdWU6OmRlbWFuZChiZWdpbiwgZW5kKTogcmVxdWlyZXMgIgorICAgICAgICAgICAg
ICAgICAgICAgICJvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUiKTsKKyAgcmV0dXJuICZyZXNvbHZl
UmVmZXJlbmNlKGJlZ2luLCBlbmQpOworfQorY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltd
KGNvbnN0IGNoYXIqIGtleSkgY29uc3QgeworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtl
eSwga2V5ICsgc3RybGVuKGtleSkpOworICBpZiAoIWZvdW5kKQorICAgIHJldHVybiBudWxsU2lu
Z2xldG9uKCk7CisgIHJldHVybiAqZm91bmQ7Cit9CitWYWx1ZSBjb25zdCYgVmFsdWU6Om9wZXJh
dG9yW10oY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0IHsKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0g
ZmluZChrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKKyAgaWYgKCFmb3Vu
ZCkKKyAgICByZXR1cm4gbnVsbFNpbmdsZXRvbigpOworICByZXR1cm4gKmZvdW5kOworfQorCitW
YWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KSB7CisgIHJldHVybiByZXNv
bHZlUmVmZXJlbmNlKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworfQorCitWYWx1ZSYgVmFsdWU6
Om9wZXJhdG9yW10oY29uc3QgU3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVu
Y2Uoa2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7Cit9CisKK1ZhbHVlJiBW
YWx1ZTo6b3BlcmF0b3JbXShjb25zdCBTdGF0aWNTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVz
b2x2ZVJlZmVyZW5jZShrZXkuY19zdHIoKSk7CiB9CiAKLQotYm9vbAotVmFsdWU6Om9wZXJhdG9y
ISgpIGNvbnN0Ci17Ci0gICByZXR1cm4gaXNOdWxsKCk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlOjpj
bGVhcigpCi17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8g
PT0gYXJyYXlWYWx1ZSAgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUgKTsKLQotICAgc3dpdGNoICgg
dHlwZV8gKQotICAgewotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNh
c2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXy0+
Y2xlYXIoKTsKLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAg
IHZhbHVlXy5hcnJheV8tPmNsZWFyKCk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFs
dWU6Ci0gICAgICB2YWx1ZV8ubWFwXy0+Y2xlYXIoKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0g
ICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci19Ci0KLXZvaWQgCi1WYWx1ZTo6cmVzaXpl
KCBBcnJheUluZGV4IG5ld1NpemUgKQotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxW
YWx1ZSAgfHwgIHR5cGVfID09IGFycmF5VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVsbFZh
bHVlICkKLSAgICAgICp0aGlzID0gVmFsdWUoIGFycmF5VmFsdWUgKTsKLSNpZm5kZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0g
ICBpZiAoIG5ld1NpemUgPT0gMCApCi0gICAgICBjbGVhcigpOwotICAgZWxzZSBpZiAoIG5ld1Np
emUgPiBvbGRTaXplICkKLSAgICAgICgqdGhpcylbIG5ld1NpemUgLSAxIF07Ci0gICBlbHNlCi0g
ICB7Ci0gICAgICBmb3IgKCBBcnJheUluZGV4IGluZGV4ID0gbmV3U2l6ZTsgaW5kZXggPCBvbGRT
aXplOyArK2luZGV4ICkKLSAgICAgIHsKLSAgICAgICAgIHZhbHVlXy5tYXBfLT5lcmFzZSggaW5k
ZXggKTsKLSAgICAgIH0KLSAgICAgIGFzc2VydCggc2l6ZSgpID09IG5ld1NpemUgKTsKLSAgIH0K
LSNlbHNlCi0gICB2YWx1ZV8uYXJyYXlfLT5yZXNpemUoIG5ld1NpemUgKTsKLSNlbmRpZgotfQot
Ci0KLVZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBBcnJheUluZGV4IGluZGV4ICkKLXsKLSAg
IEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVl
ICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICAqdGhpcyA9IFZhbHVlKCBh
cnJheVZhbHVlICk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgQ1pT
dHJpbmcga2V5KCBpbmRleCApOwotICAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVl
Xy5tYXBfLT5sb3dlcl9ib3VuZCgga2V5ICk7Ci0gICBpZiAoIGl0ICE9IHZhbHVlXy5tYXBfLT5l
bmQoKSAgJiYgICgqaXQpLmZpcnN0ID09IGtleSApCi0gICAgICByZXR1cm4gKCppdCkuc2Vjb25k
OwotCi0gICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKCBrZXksIG51bGwg
KTsKLSAgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydCggaXQsIGRlZmF1bHRWYWx1ZSApOwotICAg
cmV0dXJuICgqaXQpLnNlY29uZDsKLSNlbHNlCi0gICByZXR1cm4gdmFsdWVfLmFycmF5Xy0+cmVz
b2x2ZVJlZmVyZW5jZSggaW5kZXggKTsKLSNlbmRpZgorI2lmZGVmIEpTT05fVVNFX0NQUFRMCitW
YWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIHsK
KyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7
CiB9Ci0KLQotVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGludCBpbmRleCApCi17Ci0gICBK
U09OX0FTU0VSVCggaW5kZXggPj0gMCApOwotICAgcmV0dXJuICgqdGhpcylbIEFycmF5SW5kZXgo
aW5kZXgpIF07CitWYWx1ZSBjb25zdCYgVmFsdWU6Om9wZXJhdG9yW10oQ3BwVEw6OkNvbnN0U3Ry
aW5nIGNvbnN0JiBrZXkpIGNvbnN0IHsKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXku
Y19zdHIoKSwga2V5LmVuZF9jX3N0cigpKTsKKyAgaWYgKCFmb3VuZCkKKyAgICByZXR1cm4gbnVs
bFNpbmdsZXRvbigpOworICByZXR1cm4gKmZvdW5kOwogfQotCi0KLWNvbnN0IFZhbHVlICYKLVZh
bHVlOjpvcGVyYXRvcltdKCBBcnJheUluZGV4IGluZGV4ICkgY29uc3QKLXsKLSAgIEpTT05fQVNT
RVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICk7Ci0gICBp
ZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICByZXR1cm4gbnVsbDsKLSNpZm5kZWYgSlNP
Tl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBDWlN0cmluZyBrZXkoIGluZGV4ICk7Ci0gICBP
YmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoIGtleSAp
OwotICAgaWYgKCBpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkgKQotICAgICAgcmV0dXJuIG51bGw7
Ci0gICByZXR1cm4gKCppdCkuc2Vjb25kOwotI2Vsc2UKLSAgIFZhbHVlICp2YWx1ZSA9IHZhbHVl
Xy5hcnJheV8tPmZpbmQoIGluZGV4ICk7Ci0gICByZXR1cm4gdmFsdWUgPyAqdmFsdWUgOiBudWxs
OwogI2VuZGlmCi19Ci0KIAotY29uc3QgVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGludCBp
bmRleCApIGNvbnN0Ci17Ci0gICBKU09OX0FTU0VSVCggaW5kZXggPj0gMCApOwotICAgcmV0dXJu
ICgqdGhpcylbIEFycmF5SW5kZXgoaW5kZXgpIF07CitWYWx1ZSYgVmFsdWU6OmFwcGVuZChjb25z
dCBWYWx1ZSYgdmFsdWUpIHsgcmV0dXJuICgqdGhpcylbc2l6ZSgpXSA9IHZhbHVlOyB9CisKK1Zh
bHVlJiBWYWx1ZTo6YXBwZW5kKFZhbHVlJiYgdmFsdWUpIHsKKyAgcmV0dXJuICgqdGhpcylbc2l6
ZSgpXSA9IHN0ZDo6bW92ZSh2YWx1ZSk7Cit9CisKK1ZhbHVlIFZhbHVlOjpnZXQoY2hhciBjb25z
dCogYmVnaW4sCisgICAgICAgICAgICAgICAgIGNoYXIgY29uc3QqIGVuZCwKKyAgICAgICAgICAg
ICAgICAgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QgeworICBWYWx1ZSBjb25zdCog
Zm91bmQgPSBmaW5kKGJlZ2luLCBlbmQpOworICByZXR1cm4gIWZvdW5kID8gZGVmYXVsdFZhbHVl
IDogKmZvdW5kOworfQorVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXksIFZhbHVlIGNv
bnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgcmV0dXJuIGdldChrZXksIGtleSArIHN0cmxl
bihrZXkpLCBkZWZhdWx0VmFsdWUpOworfQorVmFsdWUgVmFsdWU6OmdldChTdHJpbmcgY29uc3Qm
IGtleSwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QgeworICByZXR1cm4gZ2V0KGtl
eS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCksIGRlZmF1bHRWYWx1ZSk7Cit9CisK
K2Jvb2wgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciog
ZW5kLCBWYWx1ZSogcmVtb3ZlZCkgeworICBpZiAodHlwZSgpICE9IG9iamVjdFZhbHVlKSB7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9CisgIENaU3RyaW5nIGFjdHVhbEtleShiZWdpbiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGVuZCAtIGJlZ2luKSwKKyAgICAgICAgICAgICAgICAgICAgIENaU3Ry
aW5nOjpub0R1cGxpY2F0aW9uKTsKKyAgYXV0byBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVh
bEtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCisgICAgcmV0dXJuIGZhbHNl
OworICBpZiAocmVtb3ZlZCkKKyAgICAqcmVtb3ZlZCA9IHN0ZDo6bW92ZShpdC0+c2Vjb25kKTsK
KyAgdmFsdWVfLm1hcF8tPmVyYXNlKGl0KTsKKyAgcmV0dXJuIHRydWU7Cit9Citib29sIFZhbHVl
OjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBWYWx1ZSogcmVtb3ZlZCkgeworICByZXR1
cm4gcmVtb3ZlTWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtleSksIHJlbW92ZWQpOworfQorYm9v
bCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKFN0cmluZyBjb25zdCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkg
eworICByZXR1cm4gcmVtb3ZlTWVtYmVyKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVu
Z3RoKCksIHJlbW92ZWQpOworfQordm9pZCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIq
IGtleSkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBudWxsVmFsdWUgfHwgdHlw
ZSgpID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1
ZTo6cmVtb3ZlTWVtYmVyKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlKCkg
PT0gbnVsbFZhbHVlKQorICAgIHJldHVybjsKKworICBDWlN0cmluZyBhY3R1YWxLZXkoa2V5LCB1
bnNpZ25lZChzdHJsZW4oa2V5KSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKKyAgdmFsdWVf
Lm1hcF8tPmVyYXNlKGFjdHVhbEtleSk7Cit9Cit2b2lkIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29u
c3QgU3RyaW5nJiBrZXkpIHsgcmVtb3ZlTWVtYmVyKGtleS5jX3N0cigpKTsgfQorCitib29sIFZh
bHVlOjpyZW1vdmVJbmRleChBcnJheUluZGV4IGluZGV4LCBWYWx1ZSogcmVtb3ZlZCkgeworICBp
ZiAodHlwZSgpICE9IGFycmF5VmFsdWUpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ1pT
dHJpbmcga2V5KGluZGV4KTsKKyAgYXV0byBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7Cisg
IGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K
KyAgaWYgKHJlbW92ZWQpCisgICAgKnJlbW92ZWQgPSBpdC0+c2Vjb25kOworICBBcnJheUluZGV4
IG9sZFNpemUgPSBzaXplKCk7CisgIC8vIHNoaWZ0IGxlZnQgYWxsIGl0ZW1zIGxlZnQsIGludG8g
dGhlIHBsYWNlIG9mIHRoZSAicmVtb3ZlZCIKKyAgZm9yIChBcnJheUluZGV4IGkgPSBpbmRleDsg
aSA8IChvbGRTaXplIC0gMSk7ICsraSkgeworICAgIENaU3RyaW5nIGtlZXkoaSk7CisgICAgKCp2
YWx1ZV8ubWFwXylba2VleV0gPSAoKnRoaXMpW2kgKyAxXTsKKyAgfQorICAvLyBlcmFzZSB0aGUg
bGFzdCBvbmUgKCJsZWZ0b3ZlciIpCisgIENaU3RyaW5nIGtleUxhc3Qob2xkU2l6ZSAtIDEpOwor
ICBhdXRvIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleUxhc3QpOworICB2YWx1ZV8ubWFw
Xy0+ZXJhc2UoaXRMYXN0KTsKKyAgcmV0dXJuIHRydWU7CiB9CiAKLQotVmFsdWUgJgotVmFsdWU6
Om9wZXJhdG9yW10oIGNvbnN0IGNoYXIgKmtleSApCi17Ci0gICByZXR1cm4gcmVzb2x2ZVJlZmVy
ZW5jZSgga2V5LCBmYWxzZSApOwotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpyZXNvbHZlUmVmZXJl
bmNlKCBjb25zdCBjaGFyICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNT
dGF0aWMgKQotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVf
ID09IG9iamVjdFZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICAq
dGhpcyA9IFZhbHVlKCBvYmplY3RWYWx1ZSApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgIENaU3RyaW5nIGFjdHVhbEtleSgga2V5LCBpc1N0YXRpYyA/IENaU3RyaW5n
Ojpub0R1cGxpY2F0aW9uIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog
Q1pTdHJpbmc6OmR1cGxpY2F0ZU9uQ29weSApOwotICAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBp
dCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZCggYWN0dWFsS2V5ICk7Ci0gICBpZiAoIGl0ICE9
IHZhbHVlXy5tYXBfLT5lbmQoKSAgJiYgICgqaXQpLmZpcnN0ID09IGFjdHVhbEtleSApCi0gICAg
ICByZXR1cm4gKCppdCkuc2Vjb25kOwotCi0gICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVm
YXVsdFZhbHVlKCBhY3R1YWxLZXksIG51bGwgKTsKLSAgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2Vy
dCggaXQsIGRlZmF1bHRWYWx1ZSApOwotICAgVmFsdWUgJnZhbHVlID0gKCppdCkuc2Vjb25kOwot
ICAgcmV0dXJuIHZhbHVlOwotI2Vsc2UKLSAgIHJldHVybiB2YWx1ZV8ubWFwXy0+cmVzb2x2ZVJl
ZmVyZW5jZSgga2V5LCBpc1N0YXRpYyApOwotI2VuZGlmCi19Ci0KLQotVmFsdWUgCi1WYWx1ZTo6
Z2V0KCBBcnJheUluZGV4IGluZGV4LCAKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0
VmFsdWUgKSBjb25zdAotewotICAgY29uc3QgVmFsdWUgKnZhbHVlID0gJigoKnRoaXMpW2luZGV4
XSk7Ci0gICByZXR1cm4gdmFsdWUgPT0gJm51bGwgPyBkZWZhdWx0VmFsdWUgOiAqdmFsdWU7Ci19
Ci0KLQotYm9vbCAKLVZhbHVlOjppc1ZhbGlkSW5kZXgoIEFycmF5SW5kZXggaW5kZXggKSBjb25z
dAotewotICAgcmV0dXJuIGluZGV4IDwgc2l6ZSgpOworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitW
YWx1ZSBWYWx1ZTo6Z2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5LAorICAgICAgICAg
ICAgICAgICBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdCB7CisgIHJldHVybiBnZXQo
a2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSwgZGVmYXVsdFZhbHVlKTsKIH0KLQotCi0KLWNv
bnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBjaGFyICprZXkgKSBjb25zdAot
ewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IG9iamVj
dFZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICByZXR1cm4gbnVs
bDsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBDWlN0cmluZyBhY3R1
YWxLZXkoIGtleSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24gKTsKLSAgIE9iamVjdFZhbHVlczo6
Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZCggYWN0dWFsS2V5ICk7Ci0gICBp
ZiAoIGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSApCi0gICAgICByZXR1cm4gbnVsbDsKLSAgIHJl
dHVybiAoKml0KS5zZWNvbmQ7Ci0jZWxzZQotICAgY29uc3QgVmFsdWUgKnZhbHVlID0gdmFsdWVf
Lm1hcF8tPmZpbmQoIGtleSApOwotICAgcmV0dXJuIHZhbHVlID8gKnZhbHVlIDogbnVsbDsKICNl
bmRpZgotfQogCi0KLVZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBzdGQ6OnN0cmlu
ZyAma2V5ICkKLXsKLSAgIHJldHVybiAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOwotfQotCi0KLWNv
bnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkg
Y29uc3QKLXsKLSAgIHJldHVybiAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOworYm9vbCBWYWx1ZTo6
aXNNZW1iZXIoY2hhciBjb25zdCogYmVnaW4sIGNoYXIgY29uc3QqIGVuZCkgY29uc3QgeworICBW
YWx1ZSBjb25zdCogdmFsdWUgPSBmaW5kKGJlZ2luLCBlbmQpOworICByZXR1cm4gbnVsbHB0ciAh
PSB2YWx1ZTsKIH0KLQotVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGNvbnN0IFN0YXRpY1N0
cmluZyAma2V5ICkKLXsKLSAgIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKCBrZXksIHRydWUgKTsK
K2Jvb2wgVmFsdWU6OmlzTWVtYmVyKGNoYXIgY29uc3QqIGtleSkgY29uc3QgeworICByZXR1cm4g
aXNNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSk7CiB9Ci0KLQotIyBpZmRlZiBKU09OX1VT
RV9DUFBUTAotVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25zdFN0
cmluZyAma2V5ICkKLXsKLSAgIHJldHVybiAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOworYm9vbCBW
YWx1ZTo6aXNNZW1iZXIoU3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0IHsKKyAgcmV0dXJuIGlzTWVt
YmVyKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCkpOwogfQogCi0KLWNvbnN0
IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtl
eSApIGNvbnN0Ci17Ci0gICByZXR1cm4gKCp0aGlzKVsga2V5LmNfc3RyKCkgXTsKLX0KLSMgZW5k
aWYKLQotCi1WYWx1ZSAmCi1WYWx1ZTo6YXBwZW5kKCBjb25zdCBWYWx1ZSAmdmFsdWUgKQotewot
ICAgcmV0dXJuICgqdGhpcylbc2l6ZSgpXSA9IHZhbHVlOwotfQotCi0KLVZhbHVlIAotVmFsdWU6
OmdldCggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0
VmFsdWUgKSBjb25zdAotewotICAgY29uc3QgVmFsdWUgKnZhbHVlID0gJigoKnRoaXMpW2tleV0p
OwotICAgcmV0dXJuIHZhbHVlID09ICZudWxsID8gZGVmYXVsdFZhbHVlIDogKnZhbHVlOwotfQot
Ci0KLVZhbHVlIAotVmFsdWU6OmdldCggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSwKLSAgICAgICAg
ICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdAotewotICAgcmV0dXJuIGdldCgg
a2V5LmNfc3RyKCksIGRlZmF1bHRWYWx1ZSApOwotfQotCi1WYWx1ZQotVmFsdWU6OnJlbW92ZU1l
bWJlciggY29uc3QgY2hhcioga2V5ICkKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxs
VmFsdWUgIHx8ICB0eXBlXyA9PSBvYmplY3RWYWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxs
VmFsdWUgKQotICAgICAgcmV0dXJuIG51bGw7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVS
TkFMX01BUAotICAgQ1pTdHJpbmcgYWN0dWFsS2V5KCBrZXksIENaU3RyaW5nOjpub0R1cGxpY2F0
aW9uICk7Ci0gICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQo
IGFjdHVhbEtleSApOwotICAgaWYgKCBpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkgKQotICAgICAg
cmV0dXJuIG51bGw7Ci0gICBWYWx1ZSBvbGQoaXQtPnNlY29uZCk7Ci0gICB2YWx1ZV8ubWFwXy0+
ZXJhc2UoaXQpOwotICAgcmV0dXJuIG9sZDsKLSNlbHNlCi0gICBWYWx1ZSAqdmFsdWUgPSB2YWx1
ZV8ubWFwXy0+ZmluZCgga2V5ICk7Ci0gICBpZiAodmFsdWUpewotICAgICAgVmFsdWUgb2xkKCp2
YWx1ZSk7Ci0gICAgICB2YWx1ZV8ubWFwXy5yZW1vdmUoIGtleSApOwotICAgICAgcmV0dXJuIG9s
ZDsKLSAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gbnVsbDsKLSAgIH0KLSNlbmRpZgotfQotCi1W
YWx1ZQotVmFsdWU6OnJlbW92ZU1lbWJlciggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApCi17Ci0g
ICByZXR1cm4gcmVtb3ZlTWVtYmVyKCBrZXkuY19zdHIoKSApOwotfQotCi0jIGlmZGVmIEpTT05f
VVNFX0NQUFRMCi1WYWx1ZSAKLVZhbHVlOjpnZXQoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAm
a2V5LAotICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0Ci17Ci0g
ICByZXR1cm4gZ2V0KCBrZXkuY19zdHIoKSwgZGVmYXVsdFZhbHVlICk7Ci19Ci0jIGVuZGlmCi0K
LWJvb2wgCi1WYWx1ZTo6aXNNZW1iZXIoIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0Ci17Ci0gICBj
b25zdCBWYWx1ZSAqdmFsdWUgPSAmKCgqdGhpcylba2V5XSk7Ci0gICByZXR1cm4gdmFsdWUgIT0g
Jm51bGw7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjppc01lbWJlciggY29uc3Qgc3RkOjpzdHJpbmcg
JmtleSApIGNvbnN0Ci17Ci0gICByZXR1cm4gaXNNZW1iZXIoIGtleS5jX3N0cigpICk7Ci19Ci0K
LQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotYm9vbCAKLVZhbHVlOjppc01lbWJlciggY29uc3Qg
Q3BwVEw6OkNvbnN0U3RyaW5nICZrZXkgKSBjb25zdAotewotICAgcmV0dXJuIGlzTWVtYmVyKCBr
ZXkuY19zdHIoKSApOworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitib29sIFZhbHVlOjppc01lbWJl
cihjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3QgeworICByZXR1cm4gaXNNZW1i
ZXIoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7CiB9CiAjZW5kaWYKIAotVmFsdWU6Ok1l
bWJlcnMgCi1WYWx1ZTo6Z2V0TWVtYmVyTmFtZXMoKSBjb25zdAotewotICAgSlNPTl9BU1NFUlQo
IHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IG9iamVjdFZhbHVlICk7Ci0gICBpZiAo
IHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICAgcmV0dXJuIFZhbHVlOjpNZW1iZXJzKCk7Ci0g
ICBNZW1iZXJzIG1lbWJlcnM7Ci0gICBtZW1iZXJzLnJlc2VydmUoIHZhbHVlXy5tYXBfLT5zaXpl
KCkgKTsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBPYmplY3RWYWx1
ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmJlZ2luKCk7Ci0gICBPYmplY3RW
YWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0RW5kID0gdmFsdWVfLm1hcF8tPmVuZCgpOwotICAgZm9y
ICggOyBpdCAhPSBpdEVuZDsgKytpdCApCi0gICAgICBtZW1iZXJzLnB1c2hfYmFjayggc3RkOjpz
dHJpbmcoICgqaXQpLmZpcnN0LmNfc3RyKCkgKSApOwotI2Vsc2UKLSAgIFZhbHVlSW50ZXJuYWxN
YXA6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRl
IGl0RW5kOwotICAgdmFsdWVfLm1hcF8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgdmFs
dWVfLm1hcF8tPm1ha2VFbmRJdGVyYXRvciggaXRFbmQgKTsKLSAgIGZvciAoIDsgIVZhbHVlSW50
ZXJuYWxNYXA6OmVxdWFscyggaXQsIGl0RW5kICk7IFZhbHVlSW50ZXJuYWxNYXA6OmluY3JlbWVu
dChpdCkgKQotICAgICAgbWVtYmVycy5wdXNoX2JhY2soIHN0ZDo6c3RyaW5nKCBWYWx1ZUludGVy
bmFsTWFwOjprZXkoIGl0ICkgKSApOwotI2VuZGlmCi0gICByZXR1cm4gbWVtYmVyczsKK1ZhbHVl
OjpNZW1iZXJzIFZhbHVlOjpnZXRNZW1iZXJOYW1lcygpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRf
TUVTU0FHRSgKKyAgICAgIHR5cGUoKSA9PSBudWxsVmFsdWUgfHwgdHlwZSgpID09IG9iamVjdFZh
bHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpnZXRNZW1iZXJOYW1lcygpLCB2YWx1ZSBtdXN0
IGJlIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQorICAgIHJldHVy
biBWYWx1ZTo6TWVtYmVycygpOworICBNZW1iZXJzIG1lbWJlcnM7CisgIG1lbWJlcnMucmVzZXJ2
ZSh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBp
dCA9IHZhbHVlXy5tYXBfLT5iZWdpbigpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9y
IGl0RW5kID0gdmFsdWVfLm1hcF8tPmVuZCgpOworICBmb3IgKDsgaXQgIT0gaXRFbmQ7ICsraXQp
IHsKKyAgICBtZW1iZXJzLnB1c2hfYmFjayhTdHJpbmcoKCppdCkuZmlyc3QuZGF0YSgpLCAoKml0
KS5maXJzdC5sZW5ndGgoKSkpOworICB9CisgIHJldHVybiBtZW1iZXJzOwogfQogLy8KIC8vIyBp
ZmRlZiBKU09OX1VTRV9DUFBUTAotLy9FbnVtTWVtYmVyTmFtZXMKLS8vVmFsdWU6OmVudW1NZW1i
ZXJOYW1lcygpIGNvbnN0CisvLyBFbnVtTWVtYmVyTmFtZXMKKy8vIFZhbHVlOjplbnVtTWVtYmVy
TmFtZXMoKSBjb25zdAogLy97Ci0vLyAgIGlmICggdHlwZV8gPT0gb2JqZWN0VmFsdWUgKQorLy8g
ICBpZiAoIHR5cGUoKSA9PSBvYmplY3RWYWx1ZSApCiAvLyAgIHsKIC8vICAgICAgcmV0dXJuIENw
cFRMOjpFbnVtOjphbnkoICBDcHBUTDo6RW51bTo6dHJhbnNmb3JtKAogLy8gICAgICAgICBDcHBU
TDo6RW51bTo6a2V5cyggKih2YWx1ZV8ubWFwXyksIENwcFRMOjpUeXBlPGNvbnN0IENaU3RyaW5n
ICY+KCkgKSwKQEAgLTEzNTUsMTEgKzEzMDQsMTEgQEAgVmFsdWU6OmdldE1lbWJlck5hbWVzKCkg
Y29uc3QKIC8vfQogLy8KIC8vCi0vL0VudW1WYWx1ZXMgCi0vL1ZhbHVlOjplbnVtVmFsdWVzKCkg
Y29uc3QKKy8vIEVudW1WYWx1ZXMKKy8vIFZhbHVlOjplbnVtVmFsdWVzKCkgY29uc3QKIC8vewot
Ly8gICBpZiAoIHR5cGVfID09IG9iamVjdFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSAp
Ci0vLyAgICAgIHJldHVybiBDcHBUTDo6RW51bTo6YW55VmFsdWVzKCAqKHZhbHVlXy5tYXBfKSwg
CisvLyAgIGlmICggdHlwZSgpID09IG9iamVjdFZhbHVlICB8fCAgdHlwZSgpID09IGFycmF5VmFs
dWUgKQorLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06OmFueVZhbHVlcyggKih2YWx1ZV8ubWFw
XyksCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcHBUTDo6VHlwZTxj
b25zdCBWYWx1ZSAmPigpICk7CiAvLyAgIHJldHVybiBFbnVtVmFsdWVzKCk7CiAvL30KQEAgLTEz
NzEsNTUwICsxMzIwLDM4OCBAQCBzdGF0aWMgYm9vbCBJc0ludGVncmFsKGRvdWJsZSBkKSB7CiAg
IHJldHVybiBtb2RmKGQsICZpbnRlZ3JhbF9wYXJ0KSA9PSAwLjA7CiB9CiAKK2Jvb2wgVmFsdWU6
OmlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBudWxsVmFsdWU7IH0KIAotYm9vbAot
VmFsdWU6OmlzTnVsbCgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gbnVsbFZhbHVlOwot
fQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNCb29sKCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXyA9
PSBib29sZWFuVmFsdWU7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjppc0ludCgpIGNvbnN0Ci17Ci0g
ICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJu
IHZhbHVlXy5pbnRfID49IG1pbkludCAgJiYgIHZhbHVlXy5pbnRfIDw9IG1heEludDsKLSAgIGNh
c2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50KG1heEludCk7
Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gbWluSW50
ICYmCi0gICAgICAgICAgICAgdmFsdWVfLnJlYWxfIDw9IG1heEludCAmJgotICAgICAgICAgICAg
IElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAg
IH0KLSAgIHJldHVybiBmYWxzZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzVUludCgpIGNvbnN0
Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAg
cmV0dXJuIHZhbHVlXy5pbnRfID49IDAgJiYgTGFyZ2VzdFVJbnQodmFsdWVfLmludF8pIDw9IExh
cmdlc3RVSW50KG1heFVJbnQpOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFs
dWVfLnVpbnRfIDw9IG1heFVJbnQ7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2
YWx1ZV8ucmVhbF8gPj0gMCAmJgotICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8PSBtYXhVSW50
ICYmCi0gICAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOwotICAgZGVmYXVsdDoK
LSAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIAotVmFsdWU6
OmlzSW50NjQoKSBjb25zdAotewotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgc3dp
dGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgcmV0dXJuIHRydWU7
Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludDY0
KG1heEludDY0KTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgLy8gTm90ZSB0aGF0IG1heElu
dDY0ICg9IDJeNjMgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKLSAgICAg
IC8vIGRvdWJsZSwgc28gZG91YmxlKG1heEludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42
My4gVGhlcmVmb3JlIHdlCi0gICAgICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3Rs
eSBsZXNzIHRoYW4gdGhlIGxpbWl0LgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBkb3Vi
bGUobWluSW50NjQpICYmCi0gICAgICAgICAgICAgdmFsdWVfLnJlYWxfIDwgZG91YmxlKG1heElu
dDY0KSAmJgotICAgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1
bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSMgZW5kaWYgIC8vIEpTT05fSEFTX0lOVDY0Ci0gICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6aXNVSW50NjQoKSBjb25zdAotewotIyBp
ZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAg
Y2FzZSBpbnRWYWx1ZToKLSAgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IDA7Ci0gICBjYXNlIHVp
bnRWYWx1ZToKLSAgICAgIHJldHVybiB0cnVlOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICAv
LyBOb3RlIHRoYXQgbWF4VUludDY0ICg9IDJeNjQgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNl
bnRhYmxlIGFzIGEKLSAgICAgIC8vIGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2lsbCBi
ZSByb3VuZGVkIHVwIHRvIDJeNjQuIFRoZXJlZm9yZSB3ZQotICAgICAgLy8gcmVxdWlyZSB0aGUg
dmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KLSAgICAgIHJldHVybiB2
YWx1ZV8ucmVhbF8gPj0gMCAmJgotICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IG1heFVJbnQ2
NEFzRG91YmxlICYmCi0gICAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOwotICAg
ZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotIyBlbmRpZiAgLy8gSlNPTl9IQVNfSU5UNjQK
LSAgIHJldHVybiBmYWxzZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzSW50ZWdyYWwoKSBjb25z
dAoteworYm9vbCBWYWx1ZTo6aXNCb29sKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IGJvb2xl
YW5WYWx1ZTsgfQorCitib29sIFZhbHVlOjppc0ludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBl
KCkpIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICAg
IHJldHVybiB2YWx1ZV8uaW50XyA+PSBtaW5JbnQgJiYgdmFsdWVfLmludF8gPD0gbWF4SW50Owor
I2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICBjYXNlIHVpbnRWYWx1ZToKKyAgICBy
ZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQobWF4SW50KTsKKyAgY2FzZSByZWFsVmFsdWU6Cisg
ICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBtaW5JbnQgJiYgdmFsdWVfLnJlYWxfIDw9IG1heElu
dCAmJgorICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6Cisg
ICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjppc1VJbnQo
KSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgaW50VmFsdWU6CiAjaWYgZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKLSAgcmV0dXJuIGlzSW50NjQoKSB8fCBpc1VJbnQ2NCgpOwor
ICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAwICYmIExhcmdlc3RVSW50KHZhbHVlXy5pbnRfKSA8
PSBMYXJnZXN0VUludChtYXhVSW50KTsKICNlbHNlCi0gIHJldHVybiBpc0ludCgpIHx8IGlzVUlu
dCgpOworICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAwOwogI2VuZGlmCisgIGNhc2UgdWludFZh
bHVlOgorI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgICAgcmV0dXJuIHZhbHVlXy51aW50
XyA8PSBtYXhVSW50OworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICBjYXNlIHJl
YWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IDAgJiYgdmFsdWVfLnJlYWxfIDw9
IG1heFVJbnQgJiYKKyAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZh
dWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBmYWxzZTsKIH0KIAotCi1ib29sIAotVmFs
dWU6OmlzRG91YmxlKCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXyA9PSByZWFsVmFsdWUgfHwg
aXNJbnRlZ3JhbCgpOworYm9vbCBWYWx1ZTo6aXNJbnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVk
KEpTT05fSEFTX0lOVDY0KQorICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGludFZhbHVlOgor
ICAgIHJldHVybiB0cnVlOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVp
bnRfIDw9IFVJbnQ2NChtYXhJbnQ2NCk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIC8vIE5vdGUg
dGhhdCBtYXhJbnQ2NCAoPSAyXjYzIC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBh
cyBhCisgICAgLy8gZG91YmxlLCBzbyBkb3VibGUobWF4SW50NjQpIHdpbGwgYmUgcm91bmRlZCB1
cCB0byAyXjYzLiBUaGVyZWZvcmUgd2UKKyAgICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBz
dHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0LgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0g
ZG91YmxlKG1pbkludDY0KSAmJgorICAgICAgICAgICB2YWx1ZV8ucmVhbF8gPCBkb3VibGUobWF4
SW50NjQpICYmIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICBicmVh
azsKKyAgfQorI2VuZGlmIC8vIEpTT05fSEFTX0lOVDY0CisgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBWYWx1ZTo6aXNVSW50NjQoKSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2
NCkKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLmludF8gPj0gMDsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNh
c2UgcmVhbFZhbHVlOgorICAgIC8vIE5vdGUgdGhhdCBtYXhVSW50NjQgKD0gMl42NCAtIDEpIGlz
IG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQorICAgIC8vIGRvdWJsZSwgc28gZG91Ymxl
KG1heFVJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjQuIFRoZXJlZm9yZSB3ZQorICAg
IC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgbGltaXQu
CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSAwICYmIHZhbHVlXy5yZWFsXyA8IG1heFVJbnQ2
NEFzRG91YmxlICYmCisgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVm
YXVsdDoKKyAgICBicmVhazsKKyAgfQorI2VuZGlmIC8vIEpTT05fSEFTX0lOVDY0CisgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNJbnRlZ3JhbCgpIGNvbnN0IHsKKyAgc3dpdGNo
ICh0eXBlKCkpIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0
dXJuIHRydWU7CisgIGNhc2UgcmVhbFZhbHVlOgorI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisgICAgLy8gTm90ZSB0aGF0IG1heFVJbnQ2NCAoPSAyXjY0IC0gMSkgaXMgbm90IGV4YWN0bHkg
cmVwcmVzZW50YWJsZSBhcyBhCisgICAgLy8gZG91YmxlLCBzbyBkb3VibGUobWF4VUludDY0KSB3
aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42NC4gVGhlcmVmb3JlIHdlCisgICAgLy8gcmVxdWlyZSB0
aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KKyAgICByZXR1cm4g
dmFsdWVfLnJlYWxfID49IGRvdWJsZShtaW5JbnQ2NCkgJiYKKyAgICAgICAgICAgdmFsdWVfLnJl
YWxfIDwgbWF4VUludDY0QXNEb3VibGUgJiYgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworI2Vs
c2UKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IG1pbkludCAmJiB2YWx1ZV8ucmVhbF8gPD0g
bWF4VUludCAmJgorICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisjZW5kaWYg
Ly8gSlNPTl9IQVNfSU5UNjQKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4g
ZmFsc2U7CiB9CiAKLQotYm9vbCAKLVZhbHVlOjppc051bWVyaWMoKSBjb25zdAotewotICAgcmV0
dXJuIGlzSW50ZWdyYWwoKSB8fCBpc0RvdWJsZSgpOworYm9vbCBWYWx1ZTo6aXNEb3VibGUoKSBj
b25zdCB7CisgIHJldHVybiB0eXBlKCkgPT0gaW50VmFsdWUgfHwgdHlwZSgpID09IHVpbnRWYWx1
ZSB8fCB0eXBlKCkgPT0gcmVhbFZhbHVlOwogfQogCitib29sIFZhbHVlOjppc051bWVyaWMoKSBj
b25zdCB7IHJldHVybiBpc0RvdWJsZSgpOyB9CiAKLWJvb2wgCi1WYWx1ZTo6aXNTdHJpbmcoKSBj
b25zdAotewotICAgcmV0dXJuIHR5cGVfID09IHN0cmluZ1ZhbHVlOwotfQorYm9vbCBWYWx1ZTo6
aXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gc3RyaW5nVmFsdWU7IH0KIAorYm9v
bCBWYWx1ZTo6aXNBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBhcnJheVZhbHVlOyB9
CiAKLWJvb2wgCi1WYWx1ZTo6aXNBcnJheSgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0g
YXJyYXlWYWx1ZTsKLX0KK2Jvb2wgVmFsdWU6OmlzT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHlw
ZSgpID09IG9iamVjdFZhbHVlOyB9CisKK1ZhbHVlOjpDb21tZW50czo6Q29tbWVudHMoY29uc3Qg
Q29tbWVudHMmIHRoYXQpCisgICAgOiBwdHJfe2Nsb25lVW5pcXVlKHRoYXQucHRyXyl9IHt9CiAK
K1ZhbHVlOjpDb21tZW50czo6Q29tbWVudHMoQ29tbWVudHMmJiB0aGF0KSA6IHB0cl97c3RkOjpt
b3ZlKHRoYXQucHRyXyl9IHt9CiAKLWJvb2wgCi1WYWx1ZTo6aXNPYmplY3QoKSBjb25zdAotewot
ICAgcmV0dXJuIHR5cGVfID09IG9iamVjdFZhbHVlOworVmFsdWU6OkNvbW1lbnRzJiBWYWx1ZTo6
Q29tbWVudHM6Om9wZXJhdG9yPShjb25zdCBDb21tZW50cyYgdGhhdCkgeworICBwdHJfID0gY2xv
bmVVbmlxdWUodGhhdC5wdHJfKTsKKyAgcmV0dXJuICp0aGlzOwogfQogCitWYWx1ZTo6Q29tbWVu
dHMmIFZhbHVlOjpDb21tZW50czo6b3BlcmF0b3I9KENvbW1lbnRzJiYgdGhhdCkgeworICBwdHJf
ID0gc3RkOjptb3ZlKHRoYXQucHRyXyk7CisgIHJldHVybiAqdGhpczsKK30KIAotdm9pZCAKLVZh
bHVlOjpzZXRDb21tZW50KCBjb25zdCBjaGFyICpjb21tZW50LAotICAgICAgICAgICAgICAgICAg
IENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkKLXsKLSAgIGlmICggIWNvbW1lbnRzXyApCi0g
ICAgICBjb21tZW50c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50
XTsKLSAgIGNvbW1lbnRzX1twbGFjZW1lbnRdLnNldENvbW1lbnQoIGNvbW1lbnQgKTsKK2Jvb2wg
VmFsdWU6OkNvbW1lbnRzOjpoYXMoQ29tbWVudFBsYWNlbWVudCBzbG90KSBjb25zdCB7CisgIHJl
dHVybiBwdHJfICYmICEoKnB0cl8pW3Nsb3RdLmVtcHR5KCk7CiB9CiAKK1N0cmluZyBWYWx1ZTo6
Q29tbWVudHM6OmdldChDb21tZW50UGxhY2VtZW50IHNsb3QpIGNvbnN0IHsKKyAgaWYgKCFwdHJf
KQorICAgIHJldHVybiB7fTsKKyAgcmV0dXJuICgqcHRyXylbc2xvdF07Cit9CiAKLXZvaWQgCi1W
YWx1ZTo6c2V0Q29tbWVudCggY29uc3Qgc3RkOjpzdHJpbmcgJmNvbW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKQotewotICAgc2V0Q29tbWVudCgg
Y29tbWVudC5jX3N0cigpLCBwbGFjZW1lbnQgKTsKK3ZvaWQgVmFsdWU6OkNvbW1lbnRzOjpzZXQo
Q29tbWVudFBsYWNlbWVudCBzbG90LCBTdHJpbmcgY29tbWVudCkgeworICBpZiAoIXB0cl8pIHsK
KyAgICBwdHJfID0gc3RkOjp1bmlxdWVfcHRyPEFycmF5PihuZXcgQXJyYXkoKSk7CisgIH0KKyAg
KCpwdHJfKVtzbG90XSA9IHN0ZDo6bW92ZShjb21tZW50KTsKIH0KIAordm9pZCBWYWx1ZTo6c2V0
Q29tbWVudChTdHJpbmcgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAg
aWYgKCFjb21tZW50LmVtcHR5KCkgJiYgKGNvbW1lbnQuYmFjaygpID09ICdcbicpKSB7CisgICAg
Ly8gQWx3YXlzIGRpc2NhcmQgdHJhaWxpbmcgbmV3bGluZSwgdG8gYWlkIGluZGVudGF0aW9uLgor
ICAgIGNvbW1lbnQucG9wX2JhY2soKTsKKyAgfQorICBKU09OX0FTU0VSVCghY29tbWVudC5lbXB0
eSgpKTsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIGNvbW1lbnRbMF0gPT0gJ1wwJyB8
fCBjb21tZW50WzBdID09ICcvJywKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6c2V0Q29tbWVudCgp
OiBDb21tZW50cyBtdXN0IHN0YXJ0IHdpdGggLyIpOworICBjb21tZW50c18uc2V0KHBsYWNlbWVu
dCwgc3RkOjptb3ZlKGNvbW1lbnQpKTsKK30KIAotYm9vbCAKLVZhbHVlOjpoYXNDb21tZW50KCBD
b21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApIGNvbnN0Ci17Ci0gICByZXR1cm4gY29tbWVudHNf
ICE9IDAgICYmICBjb21tZW50c19bcGxhY2VtZW50XS5jb21tZW50XyAhPSAwOworYm9vbCBWYWx1
ZTo6aGFzQ29tbWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3QgeworICByZXR1
cm4gY29tbWVudHNfLmhhcyhwbGFjZW1lbnQpOwogfQogCi1zdGQ6OnN0cmluZyAKLVZhbHVlOjpn
ZXRDb21tZW50KCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApIGNvbnN0Ci17Ci0gICBpZiAo
IGhhc0NvbW1lbnQocGxhY2VtZW50KSApCi0gICAgICByZXR1cm4gY29tbWVudHNfW3BsYWNlbWVu
dF0uY29tbWVudF87Ci0gICByZXR1cm4gIiI7CitTdHJpbmcgVmFsdWU6OmdldENvbW1lbnQoQ29t
bWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0IHsKKyAgcmV0dXJuIGNvbW1lbnRzXy5nZXQo
cGxhY2VtZW50KTsKIH0KIAordm9pZCBWYWx1ZTo6c2V0T2Zmc2V0U3RhcnQocHRyZGlmZl90IHN0
YXJ0KSB7IHN0YXJ0XyA9IHN0YXJ0OyB9CiAKLXN0ZDo6c3RyaW5nIAotVmFsdWU6OnRvU3R5bGVk
U3RyaW5nKCkgY29uc3QKLXsKLSAgIFN0eWxlZFdyaXRlciB3cml0ZXI7Ci0gICByZXR1cm4gd3Jp
dGVyLndyaXRlKCAqdGhpcyApOwotfQordm9pZCBWYWx1ZTo6c2V0T2Zmc2V0TGltaXQocHRyZGlm
Zl90IGxpbWl0KSB7IGxpbWl0XyA9IGxpbWl0OyB9CiAKK3B0cmRpZmZfdCBWYWx1ZTo6Z2V0T2Zm
c2V0U3RhcnQoKSBjb25zdCB7IHJldHVybiBzdGFydF87IH0KIAotVmFsdWU6OmNvbnN0X2l0ZXJh
dG9yIAotVmFsdWU6OmJlZ2luKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsK
LSNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToK
LSAgICAgIGlmICggdmFsdWVfLmFycmF5XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVy
bmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlfLT5tYWtl
QmVnaW5JdGVyYXRvciggaXQgKTsKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvciggaXQg
KTsKLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlm
ICggdmFsdWVfLm1hcF8gKQotICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRl
cmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5tYXBfLT5tYWtlQmVnaW5JdGVyYXRvcigg
aXQgKTsKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAg
ICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFs
dWU6Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVy
YXRvciggdmFsdWVfLm1hcF8tPmJlZ2luKCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBk
ZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsK
LX0KLQotVmFsdWU6OmNvbnN0X2l0ZXJhdG9yIAotVmFsdWU6OmVuZCgpIGNvbnN0Ci17Ci0gICBz
d2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0jaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5hcnJheV8gKQotICAgICAg
ewotICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAg
ICAgdmFsdWVfLmFycmF5Xy0+bWFrZUVuZEl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJu
IGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9i
amVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFwXyApCi0gICAgICB7Ci0gICAgICAgICBW
YWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLm1hcF8t
Pm1ha2VFbmRJdGVyYXRvciggaXQgKTsKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcigg
aXQgKTsKLSAgICAgIH0KLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToK
LSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgICAg
IHJldHVybiBjb25zdF9pdGVyYXRvciggdmFsdWVfLm1hcF8tPmVuZCgpICk7Ci0gICAgICBicmVh
azsKLSNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIGNv
bnN0X2l0ZXJhdG9yKCk7Ci19Ci0KLQotVmFsdWU6Oml0ZXJhdG9yIAotVmFsdWU6OmJlZ2luKCkK
LXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLmFycmF5XyAp
Ci0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgaXQ7
Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlfLT5tYWtlQmVnaW5JdGVyYXRvciggaXQgKTsKLSAgICAg
ICAgIHJldHVybiBpdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgY2Fz
ZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAgICAgewotICAgICAg
ICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5t
YXBfLT5tYWtlQmVnaW5JdGVyYXRvciggaXQgKTsKLSAgICAgICAgIHJldHVybiBpdGVyYXRvcigg
aXQgKTsKLSAgICAgIH0KLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToK
LSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgICAg
IHJldHVybiBpdGVyYXRvciggdmFsdWVfLm1hcF8tPmJlZ2luKCkgKTsKLSAgICAgIGJyZWFrOwot
I2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gaXRlcmF0
b3IoKTsKLX0KLQotVmFsdWU6Oml0ZXJhdG9yIAotVmFsdWU6OmVuZCgpCi17Ci0gICBzd2l0Y2gg
KCB0eXBlXyApCi0gICB7Ci0jaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBj
YXNlIGFycmF5VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5hcnJheV8gKQotICAgICAgewotICAg
ICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFs
dWVfLmFycmF5Xy0+bWFrZUVuZEl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0ZXJh
dG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgot
ICAgICAgaWYgKCB2YWx1ZV8ubWFwXyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFs
TWFwOjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VFbmRJdGVy
YXRvciggaXQgKTsKLSAgICAgICAgIHJldHVybiBpdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAg
ICAgIGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFs
dWU6Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgICAgIHJldHVybiBpdGVyYXRvcigg
dmFsdWVfLm1hcF8tPmVuZCgpICk7Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVsdDoK
LSAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIGl0ZXJhdG9yKCk7Ci19CitwdHJkaWZmX3Qg
VmFsdWU6OmdldE9mZnNldExpbWl0KCkgY29uc3QgeyByZXR1cm4gbGltaXRfOyB9CiAKK1N0cmlu
ZyBWYWx1ZTo6dG9TdHlsZWRTdHJpbmcoKSBjb25zdCB7CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIg
YnVpbGRlcjsKIAotLy8gY2xhc3MgUGF0aEFyZ3VtZW50Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgU3RyaW5n
IG91dCA9IHRoaXMtPmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgPyAiXG4iIDogIiI7CisgIG91
dCArPSBKc29uOjp3cml0ZVN0cmluZyhidWlsZGVyLCAqdGhpcyk7CisgIG91dCArPSAnXG4nOwog
Ci1QYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCgpCi0gICA6IGtleV8oKQotICAgLCBpbmRleF8o
KQotICAgLCBraW5kXygga2luZE5vbmUgKQoteworICByZXR1cm4gb3V0OwogfQogCitWYWx1ZTo6
Y29uc3RfaXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkg
eworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVl
Xy5tYXBfKQorICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdpbigp
KTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4ge307
Cit9CiAKLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KCBBcnJheUluZGV4IGluZGV4ICkKLSAg
IDoga2V5XygpCi0gICAsIGluZGV4XyggaW5kZXggKQotICAgLCBraW5kXygga2luZEluZGV4ICkK
LXsKK1ZhbHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6ZW5kKCkgY29uc3QgeworICBzd2l0Y2gg
KHR5cGUoKSkgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAg
aWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHZhbHVlXy5tYXBf
LT5lbmQoKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0
dXJuIHt9OwogfQogCitWYWx1ZTo6aXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgeworICBzd2l0Y2gg
KHR5cGUoKSkgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAg
aWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdp
bigpKTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4g
aXRlcmF0b3IoKTsKK30KIAotUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoIGNvbnN0IGNoYXIg
KmtleSApCi0gICA6IGtleV8oIGtleSApCi0gICAsIGluZGV4XygpCi0gICAsIGtpbmRfKCBraW5k
S2V5ICkKLXsKK1ZhbHVlOjppdGVyYXRvciBWYWx1ZTo6ZW5kKCkgeworICBzd2l0Y2ggKHR5cGUo
KSkgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZh
bHVlXy5tYXBfKQorICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBfLT5lbmQoKSk7Cisg
ICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGl0ZXJhdG9y
KCk7CiB9CiAKKy8vIGNsYXNzIFBhdGhBcmd1bWVudAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLVBhdGhBcmd1
bWVudDo6UGF0aEFyZ3VtZW50KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLSAgIDoga2V5Xygg
a2V5LmNfc3RyKCkgKQotICAgLCBpbmRleF8oKQotICAgLCBraW5kXygga2luZEtleSApCi17Ci19
CitQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCgpIDoga2V5XygpIHt9CisKK1BhdGhBcmd1bWVu
dDo6UGF0aEFyZ3VtZW50KEFycmF5SW5kZXggaW5kZXgpCisgICAgOiBrZXlfKCksIGluZGV4Xyhp
bmRleCksIGtpbmRfKGtpbmRJbmRleCkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQo
Y29uc3QgY2hhcioga2V5KQorICAgIDoga2V5XyhrZXkpLCBpbmRleF8oKSwga2luZF8oa2luZEtl
eSkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29uc3QgU3RyaW5nJiBrZXkpCisg
ICAgOiBrZXlfKGtleS5jX3N0cigpKSwgaW5kZXhfKCksIGtpbmRfKGtpbmRLZXkpIHt9CiAKIC8v
IGNsYXNzIFBhdGgKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi1QYXRoOjpQYXRoKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmcGF0aCwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTEsCi0gICAgICAgICAg
ICBjb25zdCBQYXRoQXJndW1lbnQgJmEyLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50
ICZhMywKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTQsCi0gICAgICAgICAgICBj
b25zdCBQYXRoQXJndW1lbnQgJmE1ICkKLXsKLSAgIEluQXJncyBpbjsKLSAgIGluLnB1c2hfYmFj
ayggJmExICk7Ci0gICBpbi5wdXNoX2JhY2soICZhMiApOwotICAgaW4ucHVzaF9iYWNrKCAmYTMg
KTsKLSAgIGluLnB1c2hfYmFjayggJmE0ICk7Ci0gICBpbi5wdXNoX2JhY2soICZhNSApOwotICAg
bWFrZVBhdGgoIHBhdGgsIGluICk7Ci19Ci0KLQotdm9pZCAKLVBhdGg6Om1ha2VQYXRoKCBjb25z
dCBzdGQ6OnN0cmluZyAmcGF0aCwKLSAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluICkK
LXsKLSAgIGNvbnN0IGNoYXIgKmN1cnJlbnQgPSBwYXRoLmNfc3RyKCk7Ci0gICBjb25zdCBjaGFy
ICplbmQgPSBjdXJyZW50ICsgcGF0aC5sZW5ndGgoKTsKLSAgIEluQXJnczo6Y29uc3RfaXRlcmF0
b3IgaXRJbkFyZyA9IGluLmJlZ2luKCk7Ci0gICB3aGlsZSAoIGN1cnJlbnQgIT0gZW5kICkKLSAg
IHsKLSAgICAgIGlmICggKmN1cnJlbnQgPT0gJ1snICkKLSAgICAgIHsKLSAgICAgICAgICsrY3Vy
cmVudDsKLSAgICAgICAgIGlmICggKmN1cnJlbnQgPT0gJyUnICkKLSAgICAgICAgICAgIGFkZFBh
dGhJbkFyZyggcGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZEluZGV4ICk7Ci0g
ICAgICAgICBlbHNlCi0gICAgICAgICB7Ci0gICAgICAgICAgICBBcnJheUluZGV4IGluZGV4ID0g
MDsKLSAgICAgICAgICAgIGZvciAoIDsgY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPj0gJzAn
ICAmJiAgKmN1cnJlbnQgPD0gJzknOyArK2N1cnJlbnQgKQotICAgICAgICAgICAgICAgaW5kZXgg
PSBpbmRleCAqIDEwICsgQXJyYXlJbmRleCgqY3VycmVudCAtICcwJyk7Ci0gICAgICAgICAgICBh
cmdzXy5wdXNoX2JhY2soIGluZGV4ICk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAoIGN1cnJl
bnQgPT0gZW5kICB8fCAgKmN1cnJlbnQrKyAhPSAnXScgKQotICAgICAgICAgICAgaW52YWxpZFBh
dGgoIHBhdGgsIGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSApOwotICAgICAgfQotICAgICAg
ZWxzZSBpZiAoICpjdXJyZW50ID09ICclJyApCi0gICAgICB7Ci0gICAgICAgICBhZGRQYXRoSW5B
cmcoIHBhdGgsIGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKTsKLSAgICAgICAg
ICsrY3VycmVudDsKLSAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCAqY3VycmVudCA9PSAnLicgKQot
ICAgICAgewotICAgICAgICAgKytjdXJyZW50OworUGF0aDo6UGF0aChjb25zdCBTdHJpbmcmIHBh
dGgsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTEsCisgICAgICAgICAgIGNvbnN0
IFBhdGhBcmd1bWVudCYgYTIsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTMsCisg
ICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTQsCisgICAgICAgICAgIGNvbnN0IFBhdGhB
cmd1bWVudCYgYTUpIHsKKyAgSW5BcmdzIGluOworICBpbi5yZXNlcnZlKDUpOworICBpbi5wdXNo
X2JhY2soJmExKTsKKyAgaW4ucHVzaF9iYWNrKCZhMik7CisgIGluLnB1c2hfYmFjaygmYTMpOwor
ICBpbi5wdXNoX2JhY2soJmE0KTsKKyAgaW4ucHVzaF9iYWNrKCZhNSk7CisgIG1ha2VQYXRoKHBh
dGgsIGluKTsKK30KKwordm9pZCBQYXRoOjptYWtlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIGNv
bnN0IEluQXJncyYgaW4pIHsKKyAgY29uc3QgY2hhciogY3VycmVudCA9IHBhdGguY19zdHIoKTsK
KyAgY29uc3QgY2hhciogZW5kID0gY3VycmVudCArIHBhdGgubGVuZ3RoKCk7CisgIGF1dG8gaXRJ
bkFyZyA9IGluLmJlZ2luKCk7CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAgIGlmICgq
Y3VycmVudCA9PSAnWycpIHsKKyAgICAgICsrY3VycmVudDsKKyAgICAgIGlmICgqY3VycmVudCA9
PSAnJScpCisgICAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBpbiwgaXRJbkFyZywgUGF0aEFyZ3Vt
ZW50OjpraW5kSW5kZXgpOworICAgICAgZWxzZSB7CisgICAgICAgIEFycmF5SW5kZXggaW5kZXgg
PSAwOworICAgICAgICBmb3IgKDsgY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPj0gJzAnICYm
ICpjdXJyZW50IDw9ICc5JzsgKytjdXJyZW50KQorICAgICAgICAgIGluZGV4ID0gaW5kZXggKiAx
MCArIEFycmF5SW5kZXgoKmN1cnJlbnQgLSAnMCcpOworICAgICAgICBhcmdzXy5wdXNoX2JhY2so
aW5kZXgpOwogICAgICAgfQotICAgICAgZWxzZQotICAgICAgewotICAgICAgICAgY29uc3QgY2hh
ciAqYmVnaW5OYW1lID0gY3VycmVudDsKLSAgICAgICAgIHdoaWxlICggY3VycmVudCAhPSBlbmQg
ICYmICAhc3RyY2hyKCAiWy4iLCAqY3VycmVudCApICkKLSAgICAgICAgICAgICsrY3VycmVudDsK
LSAgICAgICAgIGFyZ3NfLnB1c2hfYmFjayggc3RkOjpzdHJpbmcoIGJlZ2luTmFtZSwgY3VycmVu
dCApICk7Ci0gICAgICB9Ci0gICB9Ci19Ci0KLQotdm9pZCAKLVBhdGg6OmFkZFBhdGhJbkFyZygg
Y29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFy
Z3MgJmluLCAKLSAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciAmaXRJ
bkFyZywgCi0gICAgICAgICAgICAgICAgICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kICkKLXsK
LSAgIGlmICggaXRJbkFyZyA9PSBpbi5lbmQoKSApCi0gICB7Ci0gICAgICAvLyBFcnJvcjogbWlz
c2luZyBhcmd1bWVudCAlZAotICAgfQotICAgZWxzZSBpZiAoICgqaXRJbkFyZyktPmtpbmRfICE9
IGtpbmQgKQotICAgewotICAgICAgLy8gRXJyb3I6IGJhZCBhcmd1bWVudCB0eXBlCi0gICB9Ci0g
ICBlbHNlCi0gICB7Ci0gICAgICBhcmdzXy5wdXNoX2JhY2soICoqaXRJbkFyZyApOwotICAgfQot
fQotCi0KLXZvaWQgCi1QYXRoOjppbnZhbGlkUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgs
IAotICAgICAgICAgICAgICAgICAgIGludCBsb2NhdGlvbiApCi17Ci0gICAvLyBFcnJvcjogaW52
YWxpZCBwYXRoLgotfQotCi0KLWNvbnN0IFZhbHVlICYKLVBhdGg6OnJlc29sdmUoIGNvbnN0IFZh
bHVlICZyb290ICkgY29uc3QKLXsKLSAgIGNvbnN0IFZhbHVlICpub2RlID0gJnJvb3Q7Ci0gICBm
b3IgKCBBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3Nf
LmVuZCgpOyArK2l0ICkKLSAgIHsKLSAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYXJnID0gKml0
OwotICAgICAgaWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKQotICAg
ICAgewotICAgICAgICAgaWYgKCAhbm9kZS0+aXNBcnJheSgpICB8fCAgIW5vZGUtPmlzVmFsaWRJ
bmRleCggYXJnLmluZGV4XyApICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9yOiB1
bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChhcnJheSB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4u
LgotICAgICAgICAgfQotICAgICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7Cisg
ICAgICBpZiAoY3VycmVudCA9PSBlbmQgfHwgKisrY3VycmVudCAhPSAnXScpCisgICAgICAgIGlu
dmFsaWRQYXRoKHBhdGgsIGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSk7CisgICAgfSBlbHNl
IGlmICgqY3VycmVudCA9PSAnJScpIHsKKyAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBpbiwgaXRJ
bkFyZywgUGF0aEFyZ3VtZW50OjpraW5kS2V5KTsKKyAgICAgICsrY3VycmVudDsKKyAgICB9IGVs
c2UgaWYgKCpjdXJyZW50ID09ICcuJyB8fCAqY3VycmVudCA9PSAnXScpIHsKKyAgICAgICsrY3Vy
cmVudDsKKyAgICB9IGVsc2UgeworICAgICAgY29uc3QgY2hhciogYmVnaW5OYW1lID0gY3VycmVu
dDsKKyAgICAgIHdoaWxlIChjdXJyZW50ICE9IGVuZCAmJiAhc3RyY2hyKCJbLiIsICpjdXJyZW50
KSkKKyAgICAgICAgKytjdXJyZW50OworICAgICAgYXJnc18ucHVzaF9iYWNrKFN0cmluZyhiZWdp
bk5hbWUsIGN1cnJlbnQpKTsKKyAgICB9CisgIH0KK30KKwordm9pZCBQYXRoOjphZGRQYXRoSW5B
cmcoY29uc3QgU3RyaW5nJiAvKnBhdGgqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEluQXJncyYgaW4sCisgICAgICAgICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJh
dG9yJiBpdEluQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5k
IGtpbmQpIHsKKyAgaWYgKGl0SW5BcmcgPT0gaW4uZW5kKCkpIHsKKyAgICAvLyBFcnJvcjogbWlz
c2luZyBhcmd1bWVudCAlZAorICB9IGVsc2UgaWYgKCgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQp
IHsKKyAgICAvLyBFcnJvcjogYmFkIGFyZ3VtZW50IHR5cGUKKyAgfSBlbHNlIHsKKyAgICBhcmdz
Xy5wdXNoX2JhY2soKippdEluQXJnKyspOworICB9Cit9CisKK3ZvaWQgUGF0aDo6aW52YWxpZFBh
dGgoY29uc3QgU3RyaW5nJiAvKnBhdGgqLywgaW50IC8qbG9jYXRpb24qLykgeworICAvLyBFcnJv
cjogaW52YWxpZCBwYXRoLgorfQorCitjb25zdCBWYWx1ZSYgUGF0aDo6cmVzb2x2ZShjb25zdCBW
YWx1ZSYgcm9vdCkgY29uc3QgeworICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3Ig
KGNvbnN0IGF1dG8mIGFyZyA6IGFyZ3NfKSB7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJn
dW1lbnQ6OmtpbmRJbmRleCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5vZGUt
PmlzVmFsaWRJbmRleChhcmcuaW5kZXhfKSkgeworICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRv
IHJlc29sdmUgcGF0aCAoYXJyYXkgdmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4gKQorICAg
ICAgICByZXR1cm4gVmFsdWU6Om51bGxTaW5nbGV0b24oKTsKICAgICAgIH0KLSAgICAgIGVsc2Ug
aWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5ICkKLSAgICAgIHsKLSAgICAg
ICAgIGlmICggIW5vZGUtPmlzT2JqZWN0KCkgKQotICAgICAgICAgewotICAgICAgICAgICAgLy8g
RXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBw
b3NpdGlvbi4uLikKLSAgICAgICAgIH0KLSAgICAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtl
eV9dKTsKLSAgICAgICAgIGlmICggbm9kZSA9PSAmVmFsdWU6Om51bGwgKQotICAgICAgICAgewot
ICAgICAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCBoYXMg
bm8gbWVtYmVyIG5hbWVkICcnIGF0IHBvc2l0aW9uLi4uKQotICAgICAgICAgfQorICAgICAgbm9k
ZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0g
UGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsK
KyAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBl
eHBlY3RlZCBhdCBwb3NpdGlvbi4uLikKKyAgICAgICAgcmV0dXJuIFZhbHVlOjpudWxsU2luZ2xl
dG9uKCk7CiAgICAgICB9Ci0gICB9Ci0gICByZXR1cm4gKm5vZGU7Ci19Ci0KLQotVmFsdWUgCi1Q
YXRoOjpyZXNvbHZlKCBjb25zdCBWYWx1ZSAmcm9vdCwgCi0gICAgICAgICAgICAgICBjb25zdCBW
YWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3QKLXsKLSAgIGNvbnN0IFZhbHVlICpub2RlID0gJnJv
b3Q7Ci0gICBmb3IgKCBBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0
ICE9IGFyZ3NfLmVuZCgpOyArK2l0ICkKLSAgIHsKLSAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAm
YXJnID0gKml0OwotICAgICAgaWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5k
ZXggKQotICAgICAgewotICAgICAgICAgaWYgKCAhbm9kZS0+aXNBcnJheSgpICB8fCAgIW5vZGUt
PmlzVmFsaWRJbmRleCggYXJnLmluZGV4XyApICkKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0
VmFsdWU7Ci0gICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsKKyAgICAgIG5v
ZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKKyAgICAgIGlmIChub2RlID09ICZWYWx1ZTo6bnVs
bFNpbmdsZXRvbigpKSB7CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRo
IChvYmplY3QgaGFzIG5vIG1lbWJlciBuYW1lZCAnJyBhdAorICAgICAgICAvLyBwb3NpdGlvbi4u
LikKKyAgICAgICAgcmV0dXJuIFZhbHVlOjpudWxsU2luZ2xldG9uKCk7CiAgICAgICB9Ci0gICAg
ICBlbHNlIGlmICggYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSApCi0gICAgICB7
Ci0gICAgICAgICBpZiAoICFub2RlLT5pc09iamVjdCgpICkKLSAgICAgICAgICAgIHJldHVybiBk
ZWZhdWx0VmFsdWU7Ci0gICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAg
ICAgICBpZiAoIG5vZGUgPT0gJlZhbHVlOjpudWxsICkKLSAgICAgICAgICAgIHJldHVybiBkZWZh
dWx0VmFsdWU7CisgICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30KKworVmFsdWUgUGF0aDo6
cmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29u
c3QgeworICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3IgKGNvbnN0IGF1dG8mIGFy
ZyA6IGFyZ3NfKSB7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRl
eCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5vZGUtPmlzVmFsaWRJbmRleChh
cmcuaW5kZXhfKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICAgIG5vZGUgPSAm
KCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhB
cmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKQorICAgICAg
ICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10p
OworICAgICAgaWYgKG5vZGUgPT0gJlZhbHVlOjpudWxsU2luZ2xldG9uKCkpCisgICAgICAgIHJl
dHVybiBkZWZhdWx0VmFsdWU7CisgICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30KKworVmFs
dWUmIFBhdGg6Om1ha2UoVmFsdWUmIHJvb3QpIGNvbnN0IHsKKyAgVmFsdWUqIG5vZGUgPSAmcm9v
dDsKKyAgZm9yIChjb25zdCBhdXRvJiBhcmcgOiBhcmdzXykgeworICAgIGlmIChhcmcua2luZF8g
PT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpIHsKKyAgICAgIGlmICghbm9kZS0+aXNBcnJheSgp
KSB7CisgICAgICAgIC8vIEVycm9yOiBub2RlIGlzIG5vdCBhbiBhcnJheSBhdCBwb3NpdGlvbiAu
Li4KICAgICAgIH0KLSAgIH0KLSAgIHJldHVybiAqbm9kZTsKLX0KLQotCi1WYWx1ZSAmCi1QYXRo
OjptYWtlKCBWYWx1ZSAmcm9vdCApIGNvbnN0Ci17Ci0gICBWYWx1ZSAqbm9kZSA9ICZyb290Owot
ICAgZm9yICggQXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBh
cmdzXy5lbmQoKTsgKytpdCApCi0gICB7Ci0gICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmFyZyA9
ICppdDsKLSAgICAgIGlmICggYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4ICkK
LSAgICAgIHsKLSAgICAgICAgIGlmICggIW5vZGUtPmlzQXJyYXkoKSApCi0gICAgICAgICB7Ci0g
ICAgICAgICAgICAvLyBFcnJvcjogbm9kZSBpcyBub3QgYW4gYXJyYXkgYXQgcG9zaXRpb24gLi4u
Ci0gICAgICAgICB9Ci0gICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsKKyAg
ICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtp
bmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVj
dCgpKSB7CisgICAgICAgIC8vIEVycm9yOiBub2RlIGlzIG5vdCBhbiBvYmplY3QgYXQgcG9zaXRp
b24uLi4KICAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50
OjpraW5kS2V5ICkKLSAgICAgIHsKLSAgICAgICAgIGlmICggIW5vZGUtPmlzT2JqZWN0KCkgKQot
ICAgICAgICAgewotICAgICAgICAgICAgLy8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIG9iamVjdCBh
dCBwb3NpdGlvbi4uLgotICAgICAgICAgfQotICAgICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcu
a2V5X10pOwotICAgICAgfQotICAgfQotICAgcmV0dXJuICpub2RlOworICAgICAgbm9kZSA9ICYo
KCpub2RlKVthcmcua2V5X10pOworICAgIH0KKyAgfQorICByZXR1cm4gKm5vZGU7CiB9CiAKLQog
fSAvLyBuYW1lc3BhY2UgSnNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl92
YWx1ZWl0ZXJhdG9yLmlubCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fdmFsdWVpdGVyYXRvci5p
bmwKaW5kZXggNzQ1N2NhMzg5ZTYwMmRjYzYwNTJkZGQ0NDhhMTk4Mzk0N2M1NGZiNi4uNGEzZDIx
MGRlMzFjNjRjODM1MWU4NDFiMTdkYWNiMDhhNTk0NzljZiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMv
bGliX2pzb24vanNvbl92YWx1ZWl0ZXJhdG9yLmlubAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9q
c29uX3ZhbHVlaXRlcmF0b3IuaW5sCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMDct
MjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUg
TGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBN
SVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXpl
ZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBv
ciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCkBAIC0xNSwy
MDIgKzE1LDk5IEBAIG5hbWVzcGFjZSBKc29uIHsKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAKLVZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9yQmFzZSgpCi0jaWZuZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgOiBjdXJyZW50XygpCi0gICAsIGlzTnVsbF8oIHRy
dWUgKQotewotfQotI2Vsc2UKLSAgIDogaXNBcnJheV8oIHRydWUgKQotICAgLCBpc051bGxfKCB0
cnVlICkKLXsKLSAgIGl0ZXJhdG9yXy5hcnJheV8gPSBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJh
dG9yU3RhdGUoKTsKLX0KLSNlbmRpZgorVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0b3JC
YXNlKCkgOiBjdXJyZW50XygpIHt9CiAKK1ZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9y
QmFzZSgKKyAgICBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCkK
KyAgICA6IGN1cnJlbnRfKGN1cnJlbnQpLCBpc051bGxfKGZhbHNlKSB7fQogCi0jaWZuZGVmIEpT
T05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0
b3JCYXNlKCBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciAmY3VycmVudCApCi0g
ICA6IGN1cnJlbnRfKCBjdXJyZW50ICkKLSAgICwgaXNOdWxsXyggZmFsc2UgKQotewotfQotI2Vs
c2UKLVZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9yQmFzZSggY29uc3QgVmFsdWVJbnRl
cm5hbEFycmF5OjpJdGVyYXRvclN0YXRlICZzdGF0ZSApCi0gICA6IGlzQXJyYXlfKCB0cnVlICkK
LXsKLSAgIGl0ZXJhdG9yXy5hcnJheV8gPSBzdGF0ZTsKLX0KK1ZhbHVlJiBWYWx1ZUl0ZXJhdG9y
QmFzZTo6ZGVyZWYoKSBjb25zdCB7IHJldHVybiBjdXJyZW50Xy0+c2Vjb25kOyB9CiAKK3ZvaWQg
VmFsdWVJdGVyYXRvckJhc2U6OmluY3JlbWVudCgpIHsgKytjdXJyZW50XzsgfQogCi1WYWx1ZUl0
ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0
ZXJhdG9yU3RhdGUgJnN0YXRlICkKLSAgIDogaXNBcnJheV8oIGZhbHNlICkKLXsKLSAgIGl0ZXJh
dG9yXy5tYXBfID0gc3RhdGU7Ci19Ci0jZW5kaWYKK3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmRl
Y3JlbWVudCgpIHsgLS1jdXJyZW50XzsgfQogCi1WYWx1ZSAmCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6
ZGVyZWYoKSBjb25zdAotewotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAg
IHJldHVybiBjdXJyZW50Xy0+c2Vjb25kOworVmFsdWVJdGVyYXRvckJhc2U6OmRpZmZlcmVuY2Vf
dHlwZQorVmFsdWVJdGVyYXRvckJhc2U6OmNvbXB1dGVEaXN0YW5jZShjb25zdCBTZWxmVHlwZSYg
b3RoZXIpIGNvbnN0IHsKKyNpZmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAorICByZXR1cm4g
b3RoZXIuY3VycmVudF8gLSBjdXJyZW50XzsKICNlbHNlCi0gICBpZiAoIGlzQXJyYXlfICkKLSAg
ICAgIHJldHVybiBWYWx1ZUludGVybmFsQXJyYXk6OmRlcmVmZXJlbmNlKCBpdGVyYXRvcl8uYXJy
YXlfICk7Ci0gICByZXR1cm4gVmFsdWVJbnRlcm5hbE1hcDo6dmFsdWUoIGl0ZXJhdG9yXy5tYXBf
ICk7CisgIC8vIEl0ZXJhdG9yIGZvciBudWxsIHZhbHVlIGFyZSBpbml0aWFsaXplZCB1c2luZyB0
aGUgZGVmYXVsdAorICAvLyBjb25zdHJ1Y3Rvciwgd2hpY2ggaW5pdGlhbGl6ZSBjdXJyZW50XyB0
byB0aGUgZGVmYXVsdAorICAvLyBzdGQ6Om1hcDo6aXRlcmF0b3IuIEFzIGJlZ2luKCkgYW5kIGVu
ZCgpIGFyZSB0d28gaW5zdGFuY2UKKyAgLy8gb2YgdGhlIGRlZmF1bHQgc3RkOjptYXA6Oml0ZXJh
dG9yLCB0aGV5IGNhbiBub3QgYmUgY29tcGFyZWQuCisgIC8vIFRvIGFsbG93IHRoaXMsIHdlIGhh
bmRsZSB0aGlzIGNvbXBhcmlzb24gc3BlY2lmaWNhbGx5LgorICBpZiAoaXNOdWxsXyAmJiBvdGhl
ci5pc051bGxfKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKworICAvLyBVc2FnZSBvZiBzdGQ6OmRp
c3RhbmNlIGlzIG5vdCBwb3J0YWJsZSAoZG9lcyBub3QgY29tcGlsZSB3aXRoIFN1biBTdHVkaW8g
MTIKKyAgLy8gUm9ndWVXYXZlIFNUTCwKKyAgLy8gd2hpY2ggaXMgdGhlIG9uZSB1c2VkIGJ5IGRl
ZmF1bHQpLgorICAvLyBVc2luZyBhIHBvcnRhYmxlIGhhbmQtbWFkZSB2ZXJzaW9uIGZvciBub24g
cmFuZG9tIGl0ZXJhdG9yIGluc3RlYWQ6CisgIC8vICAgcmV0dXJuIGRpZmZlcmVuY2VfdHlwZSgg
c3RkOjpkaXN0YW5jZSggY3VycmVudF8sIG90aGVyLmN1cnJlbnRfICkgKTsKKyAgZGlmZmVyZW5j
ZV90eXBlIG15RGlzdGFuY2UgPSAwOworICBmb3IgKFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJh
dG9yIGl0ID0gY3VycmVudF87IGl0ICE9IG90aGVyLmN1cnJlbnRfOworICAgICAgICsraXQpIHsK
KyAgICArK215RGlzdGFuY2U7CisgIH0KKyAgcmV0dXJuIG15RGlzdGFuY2U7CiAjZW5kaWYKIH0K
IAotCi12b2lkIAotVmFsdWVJdGVyYXRvckJhc2U6OmluY3JlbWVudCgpCi17Ci0jaWZuZGVmIEpT
T05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgKytjdXJyZW50XzsKLSNlbHNlCi0gICBpZiAo
IGlzQXJyYXlfICkKLSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6aW5jcmVtZW50KCBpdGVyYXRv
cl8uYXJyYXlfICk7Ci0gICBWYWx1ZUludGVybmFsTWFwOjppbmNyZW1lbnQoIGl0ZXJhdG9yXy5t
YXBfICk7Ci0jZW5kaWYKK2Jvb2wgVmFsdWVJdGVyYXRvckJhc2U6OmlzRXF1YWwoY29uc3QgU2Vs
ZlR5cGUmIG90aGVyKSBjb25zdCB7CisgIGlmIChpc051bGxfKSB7CisgICAgcmV0dXJuIG90aGVy
LmlzTnVsbF87CisgIH0KKyAgcmV0dXJuIGN1cnJlbnRfID09IG90aGVyLmN1cnJlbnRfOwogfQog
Ci0KLXZvaWQgCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVjcmVtZW50KCkKLXsKLSNpZm5kZWYgSlNP
Tl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAtLWN1cnJlbnRfOwotI2Vsc2UKLSAgIGlmICgg
aXNBcnJheV8gKQotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpkZWNyZW1lbnQoIGl0ZXJhdG9y
Xy5hcnJheV8gKTsKLSAgIFZhbHVlSW50ZXJuYWxNYXA6OmRlY3JlbWVudCggaXRlcmF0b3JfLm1h
cF8gKTsKLSNlbmRpZgordm9pZCBWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29weShjb25zdCBTZWxmVHlw
ZSYgb3RoZXIpIHsKKyAgY3VycmVudF8gPSBvdGhlci5jdXJyZW50XzsKKyAgaXNOdWxsXyA9IG90
aGVyLmlzTnVsbF87CiB9CiAKLQotVmFsdWVJdGVyYXRvckJhc2U6OmRpZmZlcmVuY2VfdHlwZSAK
LVZhbHVlSXRlcmF0b3JCYXNlOjpjb21wdXRlRGlzdGFuY2UoIGNvbnN0IFNlbGZUeXBlICZvdGhl
ciApIGNvbnN0Ci17Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotIyBpZmRl
ZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotICAgcmV0dXJuIGN1cnJlbnRfIC0gb3RoZXIuY3Vy
cmVudF87Ci0jIGVsc2UKLSAgIC8vIEl0ZXJhdG9yIGZvciBudWxsIHZhbHVlIGFyZSBpbml0aWFs
aXplZCB1c2luZyB0aGUgZGVmYXVsdAotICAgLy8gY29uc3RydWN0b3IsIHdoaWNoIGluaXRpYWxp
emUgY3VycmVudF8gdG8gdGhlIGRlZmF1bHQKLSAgIC8vIHN0ZDo6bWFwOjppdGVyYXRvci4gQXMg
YmVnaW4oKSBhbmQgZW5kKCkgYXJlIHR3byBpbnN0YW5jZSAKLSAgIC8vIG9mIHRoZSBkZWZhdWx0
IHN0ZDo6bWFwOjppdGVyYXRvciwgdGhleSBjYW4gbm90IGJlIGNvbXBhcmVkLgotICAgLy8gVG8g
YWxsb3cgdGhpcywgd2UgaGFuZGxlIHRoaXMgY29tcGFyaXNvbiBzcGVjaWZpY2FsbHkuCi0gICBp
ZiAoIGlzTnVsbF8gICYmICBvdGhlci5pc051bGxfICkKLSAgIHsKLSAgICAgIHJldHVybiAwOwot
ICAgfQotCi0KLSAgIC8vIFVzYWdlIG9mIHN0ZDo6ZGlzdGFuY2UgaXMgbm90IHBvcnRhYmxlIChk
b2VzIG5vdCBjb21waWxlIHdpdGggU3VuIFN0dWRpbyAxMiBSb2d1ZVdhdmUgU1RMLAotICAgLy8g
d2hpY2ggaXMgdGhlIG9uZSB1c2VkIGJ5IGRlZmF1bHQpLgotICAgLy8gVXNpbmcgYSBwb3J0YWJs
ZSBoYW5kLW1hZGUgdmVyc2lvbiBmb3Igbm9uIHJhbmRvbSBpdGVyYXRvciBpbnN0ZWFkOgotICAg
Ly8gICByZXR1cm4gZGlmZmVyZW5jZV90eXBlKCBzdGQ6OmRpc3RhbmNlKCBjdXJyZW50Xywgb3Ro
ZXIuY3VycmVudF8gKSApOwotICAgZGlmZmVyZW5jZV90eXBlIG15RGlzdGFuY2UgPSAwOwotICAg
Zm9yICggVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSBjdXJyZW50XzsgaXQgIT0g
b3RoZXIuY3VycmVudF87ICsraXQgKQotICAgewotICAgICAgKytteURpc3RhbmNlOwotICAgfQot
ICAgcmV0dXJuIG15RGlzdGFuY2U7Ci0jIGVuZGlmCi0jZWxzZQotICAgaWYgKCBpc0FycmF5XyAp
Ci0gICAgICByZXR1cm4gVmFsdWVJbnRlcm5hbEFycmF5OjpkaXN0YW5jZSggaXRlcmF0b3JfLmFy
cmF5Xywgb3RoZXIuaXRlcmF0b3JfLmFycmF5XyApOwotICAgcmV0dXJuIFZhbHVlSW50ZXJuYWxN
YXA6OmRpc3RhbmNlKCBpdGVyYXRvcl8ubWFwXywgb3RoZXIuaXRlcmF0b3JfLm1hcF8gKTsKLSNl
bmRpZgorVmFsdWUgVmFsdWVJdGVyYXRvckJhc2U6OmtleSgpIGNvbnN0IHsKKyAgY29uc3QgVmFs
dWU6OkNaU3RyaW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7CisgIGlmIChjenN0cmlu
Zy5kYXRhKCkpIHsKKyAgICBpZiAoY3pzdHJpbmcuaXNTdGF0aWNTdHJpbmcoKSkKKyAgICAgIHJl
dHVybiBWYWx1ZShTdGF0aWNTdHJpbmcoY3pzdHJpbmcuZGF0YSgpKSk7CisgICAgcmV0dXJuIFZh
bHVlKGN6c3RyaW5nLmRhdGEoKSwgY3pzdHJpbmcuZGF0YSgpICsgY3pzdHJpbmcubGVuZ3RoKCkp
OworICB9CisgIHJldHVybiBWYWx1ZShjenN0cmluZy5pbmRleCgpKTsKIH0KIAotCi1ib29sIAot
VmFsdWVJdGVyYXRvckJhc2U6OmlzRXF1YWwoIGNvbnN0IFNlbGZUeXBlICZvdGhlciApIGNvbnN0
Ci17Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgaWYgKCBpc051bGxf
ICkKLSAgIHsKLSAgICAgIHJldHVybiBvdGhlci5pc051bGxfOwotICAgfQotICAgcmV0dXJuIGN1
cnJlbnRfID09IG90aGVyLmN1cnJlbnRfOwotI2Vsc2UKLSAgIGlmICggaXNBcnJheV8gKQotICAg
ICAgcmV0dXJuIFZhbHVlSW50ZXJuYWxBcnJheTo6ZXF1YWxzKCBpdGVyYXRvcl8uYXJyYXlfLCBv
dGhlci5pdGVyYXRvcl8uYXJyYXlfICk7Ci0gICByZXR1cm4gVmFsdWVJbnRlcm5hbE1hcDo6ZXF1
YWxzKCBpdGVyYXRvcl8ubWFwXywgb3RoZXIuaXRlcmF0b3JfLm1hcF8gKTsKLSNlbmRpZgorVUlu
dCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aW5kZXgoKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlOjpDWlN0
cmluZyBjenN0cmluZyA9ICgqY3VycmVudF8pLmZpcnN0OworICBpZiAoIWN6c3RyaW5nLmRhdGEo
KSkKKyAgICByZXR1cm4gY3pzdHJpbmcuaW5kZXgoKTsKKyAgcmV0dXJuIFZhbHVlOjpVSW50KC0x
KTsKIH0KIAotCi12b2lkIAotVmFsdWVJdGVyYXRvckJhc2U6OmNvcHkoIGNvbnN0IFNlbGZUeXBl
ICZvdGhlciApCi17Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY3Vy
cmVudF8gPSBvdGhlci5jdXJyZW50XzsKLSNlbHNlCi0gICBpZiAoIGlzQXJyYXlfICkKLSAgICAg
IGl0ZXJhdG9yXy5hcnJheV8gPSBvdGhlci5pdGVyYXRvcl8uYXJyYXlfOwotICAgaXRlcmF0b3Jf
Lm1hcF8gPSBvdGhlci5pdGVyYXRvcl8ubWFwXzsKLSNlbmRpZgorU3RyaW5nIFZhbHVlSXRlcmF0
b3JCYXNlOjpuYW1lKCkgY29uc3QgeworICBjaGFyIGNvbnN0KiBrZWV5OworICBjaGFyIGNvbnN0
KiBlbmQ7CisgIGtlZXkgPSBtZW1iZXJOYW1lKCZlbmQpOworICBpZiAoIWtlZXkpCisgICAgcmV0
dXJuIFN0cmluZygpOworICByZXR1cm4gU3RyaW5nKGtlZXksIGVuZCk7CiB9CiAKLQotVmFsdWUg
Ci1WYWx1ZUl0ZXJhdG9yQmFzZTo6a2V5KCkgY29uc3QKLXsKLSNpZm5kZWYgSlNPTl9WQUxVRV9V
U0VfSU5URVJOQUxfTUFQCi0gICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1
cnJlbnRfKS5maXJzdDsKLSAgIGlmICggY3pzdHJpbmcuY19zdHIoKSApCi0gICB7Ci0gICAgICBp
ZiAoIGN6c3RyaW5nLmlzU3RhdGljU3RyaW5nKCkgKQotICAgICAgICAgcmV0dXJuIFZhbHVlKCBT
dGF0aWNTdHJpbmcoIGN6c3RyaW5nLmNfc3RyKCkgKSApOwotICAgICAgcmV0dXJuIFZhbHVlKCBj
enN0cmluZy5jX3N0cigpICk7Ci0gICB9Ci0gICByZXR1cm4gVmFsdWUoIGN6c3RyaW5nLmluZGV4
KCkgKTsKLSNlbHNlCi0gICBpZiAoIGlzQXJyYXlfICkKLSAgICAgIHJldHVybiBWYWx1ZSggVmFs
dWVJbnRlcm5hbEFycmF5OjppbmRleE9mKCBpdGVyYXRvcl8uYXJyYXlfICkgKTsKLSAgIGJvb2wg
aXNTdGF0aWM7Ci0gICBjb25zdCBjaGFyICptZW1iZXJOYW1lID0gVmFsdWVJbnRlcm5hbE1hcDo6
a2V5KCBpdGVyYXRvcl8ubWFwXywgaXNTdGF0aWMgKTsKLSAgIGlmICggaXNTdGF0aWMgKQotICAg
ICAgcmV0dXJuIFZhbHVlKCBTdGF0aWNTdHJpbmcoIG1lbWJlck5hbWUgKSApOwotICAgcmV0dXJu
IFZhbHVlKCBtZW1iZXJOYW1lICk7Ci0jZW5kaWYKK2NoYXIgY29uc3QqIFZhbHVlSXRlcmF0b3JC
YXNlOjptZW1iZXJOYW1lKCkgY29uc3QgeworICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVu
dF8pLmZpcnN0LmRhdGEoKTsKKyAgcmV0dXJuIGNuYW1lID8gY25hbWUgOiAiIjsKIH0KIAotCi1V
SW50IAotVmFsdWVJdGVyYXRvckJhc2U6OmluZGV4KCkgY29uc3QKLXsKLSNpZm5kZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcg
PSAoKmN1cnJlbnRfKS5maXJzdDsKLSAgIGlmICggIWN6c3RyaW5nLmNfc3RyKCkgKQotICAgICAg
cmV0dXJuIGN6c3RyaW5nLmluZGV4KCk7Ci0gICByZXR1cm4gVmFsdWU6OlVJbnQoIC0xICk7Ci0j
ZWxzZQotICAgaWYgKCBpc0FycmF5XyApCi0gICAgICByZXR1cm4gVmFsdWU6OlVJbnQoIFZhbHVl
SW50ZXJuYWxBcnJheTo6aW5kZXhPZiggaXRlcmF0b3JfLmFycmF5XyApICk7Ci0gICByZXR1cm4g
VmFsdWU6OlVJbnQoIC0xICk7Ci0jZW5kaWYKLX0KLQotCi1jb25zdCBjaGFyICoKLVZhbHVlSXRl
cmF0b3JCYXNlOjptZW1iZXJOYW1lKCkgY29uc3QKLXsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi0gICBjb25zdCBjaGFyICpuYW1lID0gKCpjdXJyZW50XykuZmlyc3QuY19z
dHIoKTsKLSAgIHJldHVybiBuYW1lID8gbmFtZSA6ICIiOwotI2Vsc2UKLSAgIGlmICggIWlzQXJy
YXlfICkKLSAgICAgIHJldHVybiBWYWx1ZUludGVybmFsTWFwOjprZXkoIGl0ZXJhdG9yXy5tYXBf
ICk7Ci0gICByZXR1cm4gIiI7Ci0jZW5kaWYKK2NoYXIgY29uc3QqIFZhbHVlSXRlcmF0b3JCYXNl
OjptZW1iZXJOYW1lKGNoYXIgY29uc3QqKiBlbmQpIGNvbnN0IHsKKyAgY29uc3QgY2hhciogY25h
bWUgPSAoKmN1cnJlbnRfKS5maXJzdC5kYXRhKCk7CisgIGlmICghY25hbWUpIHsKKyAgICAqZW5k
ID0gbnVsbHB0cjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICAqZW5kID0gY25hbWUgKyAo
KmN1cnJlbnRfKS5maXJzdC5sZW5ndGgoKTsKKyAgcmV0dXJuIGNuYW1lOwogfQogCi0KIC8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTIxOSwzNSArMTE2LDIwIEBA
IFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKCkgY29uc3QKIC8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAKLVZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKCkKLXsK
LX0KK1ZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKCkgPSBkZWZhdWx0Owog
CitWYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvcigKKyAgICBjb25zdCBWYWx1
ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IFZhbHVlSXRlcmF0b3JC
YXNlKGN1cnJlbnQpIHt9CiAKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi1W
YWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvciggY29uc3QgVmFsdWU6Ok9iamVj
dFZhbHVlczo6aXRlcmF0b3IgJmN1cnJlbnQgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggY3Vy
cmVudCApCi17Ci19Ci0jZWxzZQotVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0
b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKQotICAg
OiBWYWx1ZUl0ZXJhdG9yQmFzZSggc3RhdGUgKQotewotfQorVmFsdWVDb25zdEl0ZXJhdG9yOjpW
YWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRvciBjb25zdCYgb3RoZXIpCisgICAgOiBWYWx1
ZUl0ZXJhdG9yQmFzZShvdGhlcikge30KIAotVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0
SXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICkK
LSAgIDogVmFsdWVJdGVyYXRvckJhc2UoIHN0YXRlICkKLXsKK1ZhbHVlQ29uc3RJdGVyYXRvciYg
VmFsdWVDb25zdEl0ZXJhdG9yOjoKK29wZXJhdG9yPShjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSYg
b3RoZXIpIHsKKyAgY29weShvdGhlcik7CisgIHJldHVybiAqdGhpczsKIH0KLSNlbmRpZgotCi1W
YWx1ZUNvbnN0SXRlcmF0b3IgJgotVmFsdWVDb25zdEl0ZXJhdG9yOjpvcGVyYXRvciA9KCBjb25z
dCBWYWx1ZUl0ZXJhdG9yQmFzZSAmb3RoZXIgKQotewotICAgY29weSggb3RoZXIgKTsKLSAgIHJl
dHVybiAqdGhpczsKLX0KLQogCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjU3LDQz
ICsxMzksMjEgQEAgVmFsdWVDb25zdEl0ZXJhdG9yOjpvcGVyYXRvciA9KCBjb25zdCBWYWx1ZUl0
ZXJhdG9yQmFzZSAmb3RoZXIgKQogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotVmFsdWVJ
dGVyYXRvcjo6VmFsdWVJdGVyYXRvcigpCi17Ci19CitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJh
dG9yKCkgPSBkZWZhdWx0OwogCitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZh
bHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQorICAgIDogVmFsdWVJdGVyYXRv
ckJhc2UoY3VycmVudCkge30KIAotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAK
LVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6
Oml0ZXJhdG9yICZjdXJyZW50ICkKLSAgIDogVmFsdWVJdGVyYXRvckJhc2UoIGN1cnJlbnQgKQot
ewotfQotI2Vsc2UKLVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50
ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFz
ZSggc3RhdGUgKQoteworVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUNv
bnN0SXRlcmF0b3ImIG90aGVyKQorICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHsKKyAg
dGhyb3dSdW50aW1lRXJyb3IoIkNvbnN0SXRlcmF0b3IgdG8gSXRlcmF0b3Igc2hvdWxkIG5ldmVy
IGJlIGFsbG93ZWQuIik7CiB9CiAKLVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoIGNvbnN0
IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICkKLSAgIDogVmFsdWVJdGVy
YXRvckJhc2UoIHN0YXRlICkKLXsKLX0KLSNlbmRpZgotCi1WYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0
ZXJhdG9yKCBjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3IgJm90aGVyICkKLSAgIDogVmFsdWVJdGVy
YXRvckJhc2UoIG90aGVyICkKLXsKLX0KLQotVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcigg
Y29uc3QgVmFsdWVJdGVyYXRvciAmb3RoZXIgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggb3Ro
ZXIgKQotewotfQorVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUl0ZXJh
dG9yJiBvdGhlcikgPSBkZWZhdWx0OwogCi1WYWx1ZUl0ZXJhdG9yICYKLVZhbHVlSXRlcmF0b3I6
Om9wZXJhdG9yID0oIGNvbnN0IFNlbGZUeXBlICZvdGhlciApCi17Ci0gICBjb3B5KCBvdGhlciAp
OwotICAgcmV0dXJuICp0aGlzOworVmFsdWVJdGVyYXRvciYgVmFsdWVJdGVyYXRvcjo6b3BlcmF0
b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgeworICBjb3B5KG90aGVyKTsKKyAgcmV0dXJuICp0
aGlzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJf
anNvbi9qc29uX3dyaXRlci5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAK
aW5kZXggYjQ0ZGVmMzcxNmRmNjZlMWE2OGY2ZDRlZDQyNDg1Y2JiYTVjYWY2OC4uNDFkZmQ4Y2Y2
MDhjY2Y1MDM1Mjc3YmY1NmRjZjkyNWNhMjE2MGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGli
X2pzb24vanNvbl93cml0ZXIuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fd3JpdGVy
LmNwcApAQCAtMSw4NDEgKzEsMTI1MyBAQAotLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVw
aWxsZXVyCisvLyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29u
Q3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMg
ZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9u
LgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25j
cHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQotIyBpbmNsdWRlIDxqc29uL3dyaXRlci5oPgotIyBpbmNsdWRlICJqc29uX3Rvb2wu
aCIKKyNpbmNsdWRlICJqc29uX3Rvb2wuaCIKKyNpbmNsdWRlIDxqc29uL3dyaXRlci5oPgogI2Vu
ZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPHV0aWxp
dHk+Ci0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxz
dHJpbmcuaD4KLSNpbmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVk
ZSA8Y3N0cmluZz4KICNpbmNsdWRlIDxpb21hbmlwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDxzZXQ+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDx1dGlsaXR5PgogCi0jaWYg
X01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDguMAotI3ByYWdtYSB3YXJuaW5nKCBkaXNhYmxlIDog
NDk5NiApICAgLy8gZGlzYWJsZSB3YXJuaW5nIGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVk
LgorI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRl
IDxjc3RkaW8+CisKKyNpZiAhZGVmaW5lZChpc25hbikKKyNkZWZpbmUgaXNuYW4gc3RkOjppc25h
bgogI2VuZGlmCiAKLW5hbWVzcGFjZSBKc29uIHsKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNk
ZWZpbmUgaXNmaW5pdGUgc3RkOjppc2Zpbml0ZQorI2VuZGlmCiAKLXN0YXRpYyBib29sIGNvbnRh
aW5zQ29udHJvbENoYXJhY3RlciggY29uc3QgY2hhciogc3RyICkKLXsKLSAgIHdoaWxlICggKnN0
ciApIAotICAgewotICAgICAgaWYgKCBpc0NvbnRyb2xDaGFyYWN0ZXIoICooc3RyKyspICkgKQot
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICB9Ci0gICByZXR1cm4gZmFsc2U7Ci19CisjZWxzZQor
I2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGNzdGRpbz4KIAorI2lmIGRlZmluZWQoX01TQ19W
RVIpCisjaWYgIWRlZmluZWQoaXNuYW4pCisjaW5jbHVkZSA8ZmxvYXQuaD4KKyNkZWZpbmUgaXNu
YW4gX2lzbmFuCisjZW5kaWYKIAotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyggTGFyZ2VzdElu
dCB2YWx1ZSApCi17Ci0gICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgY2hhciAqY3Vy
cmVudCA9IGJ1ZmZlciArIHNpemVvZihidWZmZXIpOwotICAgYm9vbCBpc05lZ2F0aXZlID0gdmFs
dWUgPCAwOwotICAgaWYgKCBpc05lZ2F0aXZlICkKLSAgICAgIHZhbHVlID0gLXZhbHVlOwotICAg
dWludFRvU3RyaW5nKCBMYXJnZXN0VUludCh2YWx1ZSksIGN1cnJlbnQgKTsKLSAgIGlmICggaXNO
ZWdhdGl2ZSApCi0gICAgICAqLS1jdXJyZW50ID0gJy0nOwotICAgYXNzZXJ0KCBjdXJyZW50ID49
IGJ1ZmZlciApOwotICAgcmV0dXJuIGN1cnJlbnQ7Ci19CisjaWYgIWRlZmluZWQoaXNmaW5pdGUp
CisjaW5jbHVkZSA8ZmxvYXQuaD4KKyNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQorI2VuZGlmCiAK
KyNpZiAhZGVmaW5lZChfQ1JUX1NFQ1VSRV9DUFBfT1ZFUkxPQURfU1RBTkRBUkRfTkFNRVMpCisj
ZGVmaW5lIF9DUlRfU0VDVVJFX0NQUF9PVkVSTE9BRF9TVEFOREFSRF9OQU1FUyAxCisjZW5kaWYg
Ly9fQ1JUX1NFQ1VSRV9DUFBfT1ZFUkxPQURfU1RBTkRBUkRfTkFNRVMKIAotc3RkOjpzdHJpbmcg
dmFsdWVUb1N0cmluZyggTGFyZ2VzdFVJbnQgdmFsdWUgKQotewotICAgVUludFRvU3RyaW5nQnVm
ZmVyIGJ1ZmZlcjsKLSAgIGNoYXIgKmN1cnJlbnQgPSBidWZmZXIgKyBzaXplb2YoYnVmZmVyKTsK
LSAgIHVpbnRUb1N0cmluZyggdmFsdWUsIGN1cnJlbnQgKTsKLSAgIGFzc2VydCggY3VycmVudCA+
PSBidWZmZXIgKTsKLSAgIHJldHVybiBjdXJyZW50OwotfQorI2VuZGlmIC8vX01TQ19WRVIKIAot
I2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisjaWYgZGVmaW5lZChfX3N1bikgJiYgZGVmaW5l
ZChfX1NWUjQpIC8vIFNvbGFyaXMKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNpbmNsdWRlIDxp
ZWVlZnAuaD4KKyNkZWZpbmUgaXNmaW5pdGUgZmluaXRlCisjZW5kaWYKKyNlbmRpZgogCi1zdGQ6
OnN0cmluZyB2YWx1ZVRvU3RyaW5nKCBJbnQgdmFsdWUgKQotewotICAgcmV0dXJuIHZhbHVlVG9T
dHJpbmcoIExhcmdlc3RJbnQodmFsdWUpICk7Ci19CisjaWYgZGVmaW5lZChfX2hwdXgpCisjaWYg
IWRlZmluZWQoaXNmaW5pdGUpCisjaWYgZGVmaW5lZChfX2lhNjQpICYmICFkZWZpbmVkKGZpbml0
ZSkKKyNkZWZpbmUgaXNmaW5pdGUoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICgoc2l6ZW9mKHgpID09IHNpemVvZihmbG9h
dCkgPyBfSXNmaW5pdGVmKHgpIDogX0lzRmluaXRlKHgpKSkKKyNlbmRpZgorI2VuZGlmCisjZW5k
aWYKIAorI2lmICFkZWZpbmVkKGlzbmFuKQorLy8gSUVFRSBzdGFuZGFyZCBzdGF0ZXMgdGhhdCBO
YU4gdmFsdWVzIHdpbGwgbm90IGNvbXBhcmUgdG8gdGhlbXNlbHZlcworI2RlZmluZSBpc25hbih4
KSAoeCAhPSB4KQorI2VuZGlmCiAKLXN0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoIFVJbnQgdmFs
dWUgKQotewotICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoIExhcmdlc3RVSW50KHZhbHVlKSApOwot
fQorI2lmICFkZWZpbmVkKF9fQVBQTEVfXykKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNkZWZp
bmUgaXNmaW5pdGUgZmluaXRlCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCiAKLSNlbmRpZiAvLyAj
IGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKy8vIERp
c2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KKyNwcmFnbWEgd2Fy
bmluZyhkaXNhYmxlIDogNDk5NikKKyNlbmRpZgogCituYW1lc3BhY2UgSnNvbiB7CiAKLXN0ZDo6
c3RyaW5nIHZhbHVlVG9TdHJpbmcoIGRvdWJsZSB2YWx1ZSApCi17Ci0gICBjaGFyIGJ1ZmZlclsz
Ml07Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVmaW5lZChfX1NURENfU0VDVVJFX0xJQl9f
KSAvLyBVc2Ugc2VjdXJlIHZlcnNpb24gd2l0aCB2aXN1YWwgc3R1ZGlvIDIwMDUgdG8gYXZvaWQg
d2FybmluZy4gCi0gICBzcHJpbnRmX3MoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIiUjLjE2ZyIs
IHZhbHVlKTsgCi0jZWxzZQkKLSAgIHNwcmludGYoYnVmZmVyLCAiJSMuMTZnIiwgdmFsdWUpOyAK
KyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChkZWZpbmVkKF9DUFBMSUJfVkVSKSAmJiBf
Q1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxTdHJlYW1Xcml0ZXI+
IFN0cmVhbVdyaXRlclB0cjsKKyNlbHNlCit0eXBlZGVmIHN0ZDo6YXV0b19wdHI8U3RyZWFtV3Jp
dGVyPiBTdHJlYW1Xcml0ZXJQdHI7CiAjZW5kaWYKLSAgIGNoYXIqIGNoID0gYnVmZmVyICsgc3Ry
bGVuKGJ1ZmZlcikgLSAxOwotICAgaWYgKCpjaCAhPSAnMCcpIHJldHVybiBidWZmZXI7IC8vIG5v
dGhpbmcgdG8gdHJ1bmNhdGUsIHNvIHNhdmUgdGltZQotICAgd2hpbGUoY2ggPiBidWZmZXIgJiYg
KmNoID09ICcwJyl7Ci0gICAgIC0tY2g7Ci0gICB9Ci0gICBjaGFyKiBsYXN0X25vbnplcm8gPSBj
aDsKLSAgIHdoaWxlKGNoID49IGJ1ZmZlcil7Ci0gICAgIHN3aXRjaCgqY2gpewotICAgICBjYXNl
ICcwJzoKLSAgICAgY2FzZSAnMSc6Ci0gICAgIGNhc2UgJzInOgotICAgICBjYXNlICczJzoKLSAg
ICAgY2FzZSAnNCc6Ci0gICAgIGNhc2UgJzUnOgotICAgICBjYXNlICc2JzoKLSAgICAgY2FzZSAn
Nyc6Ci0gICAgIGNhc2UgJzgnOgotICAgICBjYXNlICc5JzoKLSAgICAgICAtLWNoOwotICAgICAg
IGNvbnRpbnVlOwotICAgICBjYXNlICcuJzoKLSAgICAgICAvLyBUcnVuY2F0ZSB6ZXJvZXMgdG8g
c2F2ZSBieXRlcyBpbiBvdXRwdXQsIGJ1dCBrZWVwIG9uZS4KLSAgICAgICAqKGxhc3Rfbm9uemVy
bysyKSA9ICdcMCc7Ci0gICAgICAgcmV0dXJuIGJ1ZmZlcjsKLSAgICAgZGVmYXVsdDoKLSAgICAg
ICByZXR1cm4gYnVmZmVyOwotICAgICB9Ci0gICB9Ci0gICByZXR1cm4gYnVmZmVyOwotfQotCi0K
LXN0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoIGJvb2wgdmFsdWUgKQotewotICAgcmV0dXJuIHZh
bHVlID8gInRydWUiIDogImZhbHNlIjsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0
cmluZyggY29uc3QgY2hhciAqdmFsdWUgKQotewotICAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAg
ICByZXR1cm4gIiI7Ci0gICAvLyBOb3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNvZGUuLi4KLSAg
IGlmIChzdHJwYnJrKHZhbHVlLCAiXCJcXFxiXGZcblxyXHQiKSA9PSBOVUxMICYmICFjb250YWlu
c0NvbnRyb2xDaGFyYWN0ZXIoIHZhbHVlICkpCi0gICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIlwi
IikgKyB2YWx1ZSArICJcIiI7Ci0gICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5kIGVzY2Fw
ZSBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzLgotICAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6c3RyaW5n
IGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNob3VsZCBiZSByYXJlLgotICAgLy8gKE5vdGU6
IGZvcndhcmQgc2xhc2hlcyBhcmUgKm5vdCogcmFyZSwgYnV0IEkgYW0gbm90IGVzY2FwaW5nIHRo
ZW0uKQotICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBtYXhzaXplID0gc3RybGVuKHZhbHVlKSoy
ICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVMTAotICAgc3RkOjpzdHJpbmcgcmVzdWx0Owot
ICAgcmVzdWx0LnJlc2VydmUobWF4c2l6ZSk7IC8vIHRvIGF2b2lkIGxvdHMgb2YgbWFsbG9jcwot
ICAgcmVzdWx0ICs9ICJcIiI7Ci0gICBmb3IgKGNvbnN0IGNoYXIqIGM9dmFsdWU7ICpjICE9IDA7
ICsrYykKLSAgIHsKLSAgICAgIHN3aXRjaCgqYykKLSAgICAgIHsKLSAgICAgICAgIGNhc2UgJ1wi
JzoKLSAgICAgICAgICAgIHJlc3VsdCArPSAiXFxcIiI7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgIGNhc2UgJ1xcJzoKLSAgICAgICAgICAgIHJlc3VsdCArPSAiXFxcXCI7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgIGNhc2UgJ1xiJzoKLSAgICAgICAgICAgIHJlc3VsdCArPSAi
XFxiIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgY2FzZSAnXGYnOgotICAgICAgICAg
ICAgcmVzdWx0ICs9ICJcXGYiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICBjYXNlICdc
bic6Ci0gICAgICAgICAgICByZXN1bHQgKz0gIlxcbiI7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgIGNhc2UgJ1xyJzoKLSAgICAgICAgICAgIHJlc3VsdCArPSAiXFxyIjsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgY2FzZSAnXHQnOgotICAgICAgICAgICAgcmVzdWx0ICs9ICJc
XHQiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAvL2Nhc2UgJy8nOgotICAgICAgICAg
ICAgLy8gRXZlbiB0aG91Z2ggXC8gaXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVzY2FwZSBpbiBKU09O
LCBhIGJhcmUKLSAgICAgICAgICAgIC8vIHNsYXNoIGlzIGFsc28gbGVnYWwsIHNvIEkgc2VlIG5v
IHJlYXNvbiB0byBlc2NhcGUgaXQuCi0gICAgICAgICAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1p
c3VuZGVyc3RhbmRpbmcgc29tZXRoaW5nLgotICAgICAgICAgICAgLy8gYmxlcCBub3RlczogYWN0
dWFsbHkgZXNjYXBpbmcgXC8gbWF5IGJlIHVzZWZ1bCBpbiBqYXZhc2NyaXB0IHRvIGF2b2lkIDwv
IAotICAgICAgICAgICAgLy8gc2VxdWVuY2UuCi0gICAgICAgICAgICAvLyBTaG91bGQgYWRkIGEg
ZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgcHJldmVudCB0aGlzIAot
ICAgICAgICAgICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcuCi0gICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgaWYgKCBpc0NvbnRyb2xDaGFyYWN0ZXIoICpjICkgKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKLSAgICAgICAgICAg
ICAgIG9zcyA8PCAiXFx1IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNl
dGZpbGwoJzAnKSA8PCBzdGQ6OnNldHcoNCkgPDwgc3RhdGljX2Nhc3Q8aW50PigqYyk7Ci0gICAg
ICAgICAgICAgICByZXN1bHQgKz0gb3NzLnN0cigpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgcmVzdWx0ICs9ICpjOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICB9Ci0gICByZXN1bHQg
Kz0gIlwiIjsKLSAgIHJldHVybiByZXN1bHQ7CisKK1N0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdl
c3RJbnQgdmFsdWUpIHsKKyAgVUludFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgY2hhciogY3Vy
cmVudCA9IGJ1ZmZlciArIHNpemVvZihidWZmZXIpOworICBpZiAodmFsdWUgPT0gVmFsdWU6Om1p
bkxhcmdlc3RJbnQpIHsKKyAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoVmFsdWU6Om1heExh
cmdlc3RJbnQpICsgMSwgY3VycmVudCk7CisgICAgKi0tY3VycmVudCA9ICctJzsKKyAgfSBlbHNl
IGlmICh2YWx1ZSA8IDApIHsKKyAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoLXZhbHVlKSwg
Y3VycmVudCk7CisgICAgKi0tY3VycmVudCA9ICctJzsKKyAgfSBlbHNlIHsKKyAgICB1aW50VG9T
dHJpbmcoTGFyZ2VzdFVJbnQodmFsdWUpLCBjdXJyZW50KTsKKyAgfQorICBhc3NlcnQoY3VycmVu
dCA+PSBidWZmZXIpOworICByZXR1cm4gY3VycmVudDsKIH0KIAotLy8gQ2xhc3MgV3JpdGVyCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLVdyaXRlcjo6fldyaXRlcigpCi17CitTdHJpbmcgdmFsdWVUb1N0cmluZyhM
YXJnZXN0VUludCB2YWx1ZSkgeworICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICBjaGFy
KiBjdXJyZW50ID0gYnVmZmVyICsgc2l6ZW9mKGJ1ZmZlcik7CisgIHVpbnRUb1N0cmluZyh2YWx1
ZSwgY3VycmVudCk7CisgIGFzc2VydChjdXJyZW50ID49IGJ1ZmZlcik7CisgIHJldHVybiBjdXJy
ZW50OwogfQogCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKworU3RyaW5nIHZhbHVlVG9T
dHJpbmcoSW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQodmFsdWUp
KTsgfQogCi0vLyBDbGFzcyBGYXN0V3JpdGVyCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK1N0cmluZyB2YWx1ZVRv
U3RyaW5nKFVJbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFs
dWUpKTsgfQogCi1GYXN0V3JpdGVyOjpGYXN0V3JpdGVyKCkKLSAgIDogeWFtbENvbXBhdGlibGl0
eUVuYWJsZWRfKCBmYWxzZSApCi17Ci19CisjZW5kaWYgLy8gIyBpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQogCituYW1lc3BhY2UgeworU3RyaW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgYm9vbCB1c2VTcGVjaWFsRmxvYXRzLAorICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IHByZWNpc2lvbiwKKyAgICAgICAgICAgICAgICAgICAg
IFByZWNpc2lvblR5cGUgcHJlY2lzaW9uVHlwZSkgeworICAvLyBQcmludCBpbnRvIHRoZSBidWZm
ZXIuIFdlIG5lZWQgbm90IHJlcXVlc3QgdGhlIGFsdGVybmF0aXZlIHJlcHJlc2VudGF0aW9uCisg
IC8vIHRoYXQgYWx3YXlzIGhhcyBhIGRlY2ltYWwgcG9pbnQgYmVjYXVzZSBKU09OIGRvZXNuJ3Qg
ZGlzdGluZ3Vpc2ggdGhlCisgIC8vIGNvbmNlcHRzIG9mIHJlYWxzIGFuZCBpbnRlZ2Vycy4KKyAg
aWYgKCFpc2Zpbml0ZSh2YWx1ZSkpIHsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgcmVw
c1syXVszXSA9IHt7Ik5hTiIsICItSW5maW5pdHkiLCAiSW5maW5pdHkifSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im51bGwiLCAiLTFlKzk5OTkiLCAiMWUr
OTk5OSJ9fTsKKyAgICByZXR1cm4gcmVwc1t1c2VTcGVjaWFsRmxvYXRzID8gMCA6IDFdCisgICAg
ICAgICAgICAgICBbaXNuYW4odmFsdWUpID8gMCA6ICh2YWx1ZSA8IDApID8gMSA6IDJdOworICB9
CisKKyAgU3RyaW5nIGJ1ZmZlcihzaXplX3QoMzYpLCAnXDAnKTsKKyAgd2hpbGUgKHRydWUpIHsK
KyAgICBpbnQgbGVuID0ganNvbmNwcF9zbnByaW50ZigKKyAgICAgICAgJipidWZmZXIuYmVnaW4o
KSwgYnVmZmVyLnNpemUoKSwKKyAgICAgICAgKHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9uVHlw
ZTo6c2lnbmlmaWNhbnREaWdpdHMpID8gIiUuKmciIDogIiUuKmYiLAorICAgICAgICBwcmVjaXNp
b24sIHZhbHVlKTsKKyAgICBhc3NlcnQobGVuID49IDApOworICAgIGF1dG8gd291bGRQcmludCA9
IHN0YXRpY19jYXN0PHNpemVfdD4obGVuKTsKKyAgICBpZiAod291bGRQcmludCA+PSBidWZmZXIu
c2l6ZSgpKSB7CisgICAgICBidWZmZXIucmVzaXplKHdvdWxkUHJpbnQgKyAxKTsKKyAgICAgIGNv
bnRpbnVlOworICAgIH0KKyAgICBidWZmZXIucmVzaXplKHdvdWxkUHJpbnQpOworICAgIGJyZWFr
OworICB9CisKKyAgYnVmZmVyLmVyYXNlKGZpeE51bWVyaWNMb2NhbGUoYnVmZmVyLmJlZ2luKCks
IGJ1ZmZlci5lbmQoKSksIGJ1ZmZlci5lbmQoKSk7CisKKyAgLy8gc3RyaXAgdGhlIHplcm8gcGFk
ZGluZyBmcm9tIHRoZSByaWdodAorICBpZiAocHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb25UeXBl
OjpkZWNpbWFsUGxhY2VzKSB7CisgICAgYnVmZmVyLmVyYXNlKGZpeFplcm9zSW5UaGVFbmQoYnVm
ZmVyLmJlZ2luKCksIGJ1ZmZlci5lbmQoKSksIGJ1ZmZlci5lbmQoKSk7CisgIH0KKworICAvLyB0
cnkgdG8gZW5zdXJlIHdlIHByZXNlcnZlIHRoZSBmYWN0IHRoYXQgdGhpcyB3YXMgZ2l2ZW4gdG8g
dXMgYXMgYSBkb3VibGUgb24KKyAgLy8gaW5wdXQKKyAgaWYgKGJ1ZmZlci5maW5kKCcuJykgPT0g
YnVmZmVyLm5wb3MgJiYgYnVmZmVyLmZpbmQoJ2UnKSA9PSBidWZmZXIubnBvcykgeworICAgIGJ1
ZmZlciArPSAiLjAiOworICB9CisgIHJldHVybiBidWZmZXI7Cit9Cit9IC8vIG5hbWVzcGFjZQog
Ci12b2lkIAotRmFzdFdyaXRlcjo6ZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKQotewotICAgeWFt
bENvbXBhdGlibGl0eUVuYWJsZWRfID0gdHJ1ZTsKK1N0cmluZyB2YWx1ZVRvU3RyaW5nKGRvdWJs
ZSB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwcmVjaXNpb24sCisg
ICAgICAgICAgICAgICAgICAgICBQcmVjaXNpb25UeXBlIHByZWNpc2lvblR5cGUpIHsKKyAgcmV0
dXJuIHZhbHVlVG9TdHJpbmcodmFsdWUsIGZhbHNlLCBwcmVjaXNpb24sIHByZWNpc2lvblR5cGUp
OwogfQogCitTdHJpbmcgdmFsdWVUb1N0cmluZyhib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/
ICJ0cnVlIiA6ICJmYWxzZSI7IH0KKworc3RhdGljIGJvb2wgaXNBbnlDaGFyUmVxdWlyZWRRdW90
aW5nKGNoYXIgY29uc3QqIHMsIHNpemVfdCBuKSB7CisgIGFzc2VydChzIHx8ICFuKTsKIAotc3Rk
OjpzdHJpbmcgCi1GYXN0V3JpdGVyOjp3cml0ZSggY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAg
ZG9jdW1lbnRfID0gIiI7Ci0gICB3cml0ZVZhbHVlKCByb290ICk7Ci0gICBkb2N1bWVudF8gKz0g
IlxuIjsKLSAgIHJldHVybiBkb2N1bWVudF87CisgIGNoYXIgY29uc3QqIGNvbnN0IGVuZCA9IHMg
KyBuOworICBmb3IgKGNoYXIgY29uc3QqIGN1ciA9IHM7IGN1ciA8IGVuZDsgKytjdXIpIHsKKyAg
ICBpZiAoKmN1ciA9PSAnXFwnIHx8ICpjdXIgPT0gJ1wiJyB8fCAqY3VyIDwgJyAnIHx8CisgICAg
ICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KCpjdXIpIDwgMHg4MCkKKyAgICAgIHJldHVy
biB0cnVlOworICB9CisgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGludCB1
dGY4VG9Db2RlcG9pbnQoY29uc3QgY2hhciomIHMsIGNvbnN0IGNoYXIqIGUpIHsKKyAgY29uc3Qg
dW5zaWduZWQgaW50IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA9IDB4RkZGRDsKKworICB1bnNpZ25l
ZCBpbnQgZmlyc3RCeXRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oKnMpOworCisgIGlm
IChmaXJzdEJ5dGUgPCAweDgwKQorICAgIHJldHVybiBmaXJzdEJ5dGU7CisKKyAgaWYgKGZpcnN0
Qnl0ZSA8IDB4RTApIHsKKyAgICBpZiAoZSAtIHMgPCAyKQorICAgICAgcmV0dXJuIFJFUExBQ0VN
RU5UX0NIQVJBQ1RFUjsKKworICAgIHVuc2lnbmVkIGludCBjYWxjdWxhdGVkID0KKyAgICAgICAg
KChmaXJzdEJ5dGUgJiAweDFGKSA8PCA2KSB8IChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHNb
MV0pICYgMHgzRik7CisgICAgcyArPSAxOworICAgIC8vIG92ZXJzaXplZCBlbmNvZGVkIGNoYXJh
Y3RlcnMgYXJlIGludmFsaWQKKyAgICByZXR1cm4gY2FsY3VsYXRlZCA8IDB4ODAgPyBSRVBMQUNF
TUVOVF9DSEFSQUNURVIgOiBjYWxjdWxhdGVkOworICB9CisKKyAgaWYgKGZpcnN0Qnl0ZSA8IDB4
RjApIHsKKyAgICBpZiAoZSAtIHMgPCAzKQorICAgICAgcmV0dXJuIFJFUExBQ0VNRU5UX0NIQVJB
Q1RFUjsKKworICAgIHVuc2lnbmVkIGludCBjYWxjdWxhdGVkID0gKChmaXJzdEJ5dGUgJiAweDBG
KSA8PCAxMikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdGF0aWNfY2FzdDx1
bnNpZ25lZCBpbnQ+KHNbMV0pICYgMHgzRikgPDwgNikgfAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oc1syXSkgJiAweDNGKTsKKyAgICBz
ICs9IDI7CisgICAgLy8gc3Vycm9nYXRlcyBhcmVuJ3QgdmFsaWQgY29kZXBvaW50cyBpdHNlbGYK
KyAgICAvLyBzaG91bGRuJ3QgYmUgVVRGLTggZW5jb2RlZAorICAgIGlmIChjYWxjdWxhdGVkID49
IDB4RDgwMCAmJiBjYWxjdWxhdGVkIDw9IDB4REZGRikKKyAgICAgIHJldHVybiBSRVBMQUNFTUVO
VF9DSEFSQUNURVI7CisgICAgLy8gb3ZlcnNpemVkIGVuY29kZWQgY2hhcmFjdGVycyBhcmUgaW52
YWxpZAorICAgIHJldHVybiBjYWxjdWxhdGVkIDwgMHg4MDAgPyBSRVBMQUNFTUVOVF9DSEFSQUNU
RVIgOiBjYWxjdWxhdGVkOworICB9CisKKyAgaWYgKGZpcnN0Qnl0ZSA8IDB4RjgpIHsKKyAgICBp
ZiAoZSAtIHMgPCA0KQorICAgICAgcmV0dXJuIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAg
IHVuc2lnbmVkIGludCBjYWxjdWxhdGVkID0gKChmaXJzdEJ5dGUgJiAweDA3KSA8PCAxOCkgfAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+
KHNbMV0pICYgMHgzRikgPDwgMTIpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo
c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihzWzJdKSAmIDB4M0YpIDw8IDYpIHwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHNbM10pICYg
MHgzRik7CisgICAgcyArPSAzOworICAgIC8vIG92ZXJzaXplZCBlbmNvZGVkIGNoYXJhY3RlcnMg
YXJlIGludmFsaWQKKyAgICByZXR1cm4gY2FsY3VsYXRlZCA8IDB4MTAwMDAgPyBSRVBMQUNFTUVO
VF9DSEFSQUNURVIgOiBjYWxjdWxhdGVkOworICB9CisKKyAgcmV0dXJuIFJFUExBQ0VNRU5UX0NI
QVJBQ1RFUjsKK30KIAotdm9pZCAKLUZhc3RXcml0ZXI6OndyaXRlVmFsdWUoIGNvbnN0IFZhbHVl
ICZ2YWx1ZSApCi17Ci0gICBzd2l0Y2ggKCB2YWx1ZS50eXBlKCkgKQotICAgewotICAgY2FzZSBu
dWxsVmFsdWU6Ci0gICAgICBkb2N1bWVudF8gKz0gIm51bGwiOworc3RhdGljIGNvbnN0IGNoYXIg
aGV4MltdID0gIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2Qz
ZTNmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0
YjRjNGQ0ZTRmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUwNTE1MjUzNTQ1NTU2NTc1
ODU5NWE1YjVjNWQ1ZTVmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjYwNjE2MjYzNjQ2
NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjcwNzE3
MjczNzQ3NTc2Nzc3ODc5N2E3YjdjN2Q3ZTdmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjgwODE4MjgzODQ4NTg2ODc4ODg5OGE4YjhjOGQ4ZThmIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjkwOTE5MjkzOTQ5NTk2OTc5ODk5OWE5YjljOWQ5ZTlmIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImEwYTFhMmEzYTRhNWE2YTdhOGE5YWFhYmFjYWRhZWFmIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImIwYjFiMmIzYjRiNWI2YjdiOGI5YmFiYmJjYmRiZWJmIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImMwYzFjMmMzYzRjNWM2YzdjOGM5Y2FjYmNjY2RjZWNm
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImQwZDFkMmQzZDRkNWQ2ZDdkOGQ5ZGFkYmRj
ZGRkZWRmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImUwZTFlMmUzZTRlNWU2ZTdlOGU5
ZWFlYmVjZWRlZWVmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImYwZjFmMmYzZjRmNWY2
ZjdmOGY5ZmFmYmZjZmRmZWZmIjsKKworc3RhdGljIFN0cmluZyB0b0hleDE2Qml0KHVuc2lnbmVk
IGludCB4KSB7CisgIGNvbnN0IHVuc2lnbmVkIGludCBoaSA9ICh4ID4+IDgpICYgMHhmZjsKKyAg
Y29uc3QgdW5zaWduZWQgaW50IGxvID0geCAmIDB4ZmY7CisgIFN0cmluZyByZXN1bHQoNCwgJyAn
KTsKKyAgcmVzdWx0WzBdID0gaGV4MlsyICogaGldOworICByZXN1bHRbMV0gPSBoZXgyWzIgKiBo
aSArIDFdOworICByZXN1bHRbMl0gPSBoZXgyWzIgKiBsb107CisgIHJlc3VsdFszXSA9IGhleDJb
MiAqIGxvICsgMV07CisgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBTdHJpbmcgdmFsdWVU
b1F1b3RlZFN0cmluZ04oY29uc3QgY2hhciogdmFsdWUsIHVuc2lnbmVkIGxlbmd0aCkgeworICBp
ZiAodmFsdWUgPT0gbnVsbHB0cikKKyAgICByZXR1cm4gIiI7CisKKyAgaWYgKCFpc0FueUNoYXJS
ZXF1aXJlZFF1b3RpbmcodmFsdWUsIGxlbmd0aCkpCisgICAgcmV0dXJuIFN0cmluZygiXCIiKSAr
IHZhbHVlICsgIlwiIjsKKyAgLy8gV2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBlc2NhcGUgYW55
IHNwZWNpYWwgY2hhcmFjdGVycy4KKyAgLy8gQXBwZW5kaW5nIHRvIFN0cmluZyBpcyBub3QgZWZm
aWNpZW50LCBidXQgdGhpcyBzaG91bGQgYmUgcmFyZS4KKyAgLy8gKE5vdGU6IGZvcndhcmQgc2xh
c2hlcyBhcmUgKm5vdCogcmFyZSwgYnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQorICBTdHJp
bmc6OnNpemVfdHlwZSBtYXhzaXplID0gbGVuZ3RoICogMiArIDM7IC8vIGFsbGVzY2FwZWQrcXVv
dGVzK05VTEwKKyAgU3RyaW5nIHJlc3VsdDsKKyAgcmVzdWx0LnJlc2VydmUobWF4c2l6ZSk7IC8v
IHRvIGF2b2lkIGxvdHMgb2YgbWFsbG9jcworICByZXN1bHQgKz0gIlwiIjsKKyAgY2hhciBjb25z
dCogZW5kID0gdmFsdWUgKyBsZW5ndGg7CisgIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVlOyBj
ICE9IGVuZDsgKytjKSB7CisgICAgc3dpdGNoICgqYykgeworICAgIGNhc2UgJ1wiJzoKKyAgICAg
IHJlc3VsdCArPSAiXFxcIiI7CiAgICAgICBicmVhazsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAg
ICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyggdmFsdWUuYXNMYXJnZXN0SW50KCkgKTsKKyAg
ICBjYXNlICdcXCc6CisgICAgICByZXN1bHQgKz0gIlxcXFwiOwogICAgICAgYnJlYWs7Ci0gICBj
YXNlIHVpbnRWYWx1ZToKLSAgICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5h
c0xhcmdlc3RVSW50KCkgKTsKKyAgICBjYXNlICdcYic6CisgICAgICByZXN1bHQgKz0gIlxcYiI7
CiAgICAgICBicmVhazsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgZG9jdW1lbnRfICs9IHZh
bHVlVG9TdHJpbmcoIHZhbHVlLmFzRG91YmxlKCkgKTsKKyAgICBjYXNlICdcZic6CisgICAgICBy
ZXN1bHQgKz0gIlxcZiI7CiAgICAgICBicmVhazsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAg
ICBkb2N1bWVudF8gKz0gdmFsdWVUb1F1b3RlZFN0cmluZyggdmFsdWUuYXNDU3RyaW5nKCkgKTsK
KyAgICBjYXNlICdcbic6CisgICAgICByZXN1bHQgKz0gIlxcbiI7CiAgICAgICBicmVhazsKLSAg
IGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcoIHZh
bHVlLmFzQm9vbCgpICk7CisgICAgY2FzZSAnXHInOgorICAgICAgcmVzdWx0ICs9ICJcXHIiOwog
ICAgICAgYnJlYWs7Ci0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICB7Ci0gICAgICAgICBkb2N1
bWVudF8gKz0gIlsiOwotICAgICAgICAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICAgICAg
ICBmb3IgKCBpbnQgaW5kZXggPTA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCApCi0gICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoIGluZGV4ID4gMCApCi0gICAgICAgICAgICAgICBkb2N1bWVudF8g
Kz0gIiwiOwotICAgICAgICAgICAgd3JpdGVWYWx1ZSggdmFsdWVbaW5kZXhdICk7Ci0gICAgICAg
ICB9Ci0gICAgICAgICBkb2N1bWVudF8gKz0gIl0iOwotICAgICAgfQorICAgIGNhc2UgJ1x0JzoK
KyAgICAgIHJlc3VsdCArPSAiXFx0IjsKICAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1
ZToKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnMoIHZhbHVlLmdldE1l
bWJlck5hbWVzKCkgKTsKLSAgICAgICAgIGRvY3VtZW50XyArPSAieyI7Ci0gICAgICAgICBmb3Ig
KCBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7IAotICAgICAg
ICAgICAgICAgaXQgIT0gbWVtYmVycy5lbmQoKTsgCi0gICAgICAgICAgICAgICArK2l0ICkKLSAg
ICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lID0gKml0OwotICAg
ICAgICAgICAgaWYgKCBpdCAhPSBtZW1iZXJzLmJlZ2luKCkgKQotICAgICAgICAgICAgICAgZG9j
dW1lbnRfICs9ICIsIjsKLSAgICAgICAgICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvUXVvdGVkU3Ry
aW5nKCBuYW1lLmNfc3RyKCkgKTsKLSAgICAgICAgICAgIGRvY3VtZW50XyArPSB5YW1sQ29tcGF0
aWJsaXR5RW5hYmxlZF8gPyAiOiAiIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6ICI6IjsKLSAgICAgICAgICAgIHdyaXRlVmFsdWUoIHZhbHVlW25h
bWVdICk7Ci0gICAgICAgICB9Ci0gICAgICAgICBkb2N1bWVudF8gKz0gIn0iOworICAgIC8vIGNh
c2UgJy8nOgorICAgIC8vIEV2ZW4gdGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdhbCBlc2Nh
cGUgaW4gSlNPTiwgYSBiYXJlCisgICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28gSSBzZWUg
bm8gcmVhc29uIHRvIGVzY2FwZSBpdC4KKyAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1pc3VuZGVy
c3RhbmRpbmcgc29tZXRoaW5nLikKKyAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGlu
ZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KKyAgICAvLyBzZXF1
ZW5jZS4KKyAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxp
dHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCisgICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcu
CisgICAgZGVmYXVsdDogeworICAgICAgdW5zaWduZWQgaW50IGNwID0gdXRmOFRvQ29kZXBvaW50
KGMsIGVuZCk7CisgICAgICAvLyBkb24ndCBlc2NhcGUgbm9uLWNvbnRyb2wgY2hhcmFjdGVycwor
ICAgICAgLy8gKHNob3J0IGVzY2FwZSBzZXF1ZW5jZSBhcmUgYXBwbGllZCBhYm92ZSkKKyAgICAg
IGlmIChjcCA8IDB4ODAgJiYgY3AgPj0gMHgyMCkKKyAgICAgICAgcmVzdWx0ICs9IHN0YXRpY19j
YXN0PGNoYXI+KGNwKTsKKyAgICAgIGVsc2UgaWYgKGNwIDwgMHgxMDAwMCkgeyAvLyBjb2RlcG9p
bnQgaXMgaW4gQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lCisgICAgICAgIHJlc3VsdCArPSAiXFx1
IjsKKyAgICAgICAgcmVzdWx0ICs9IHRvSGV4MTZCaXQoY3ApOworICAgICAgfSBlbHNlIHsgLy8g
Y29kZXBvaW50IGlzIG5vdCBpbiBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUKKyAgICAgICAgICAg
ICAgIC8vIGNvbnZlcnQgdG8gc3Vycm9nYXRlIHBhaXIgZmlyc3QKKyAgICAgICAgY3AgLT0gMHgx
MDAwMDsKKyAgICAgICAgcmVzdWx0ICs9ICJcXHUiOworICAgICAgICByZXN1bHQgKz0gdG9IZXgx
NkJpdCgoY3AgPj4gMTApICsgMHhEODAwKTsKKyAgICAgICAgcmVzdWx0ICs9ICJcXHUiOworICAg
ICAgICByZXN1bHQgKz0gdG9IZXgxNkJpdCgoY3AgJiAweDNGRikgKyAweERDMDApOwogICAgICAg
fQotICAgICAgYnJlYWs7Ci0gICB9CisgICAgfSBicmVhazsKKyAgICB9CisgIH0KKyAgcmVzdWx0
ICs9ICJcIiI7CisgIHJldHVybiByZXN1bHQ7CiB9CiAKK1N0cmluZyB2YWx1ZVRvUXVvdGVkU3Ry
aW5nKGNvbnN0IGNoYXIqIHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZVRvUXVvdGVkU3RyaW5nTih2
YWx1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihzdHJsZW4odmFsdWUpKSk7Cit9CiAKLS8v
IENsYXNzIFN0eWxlZFdyaXRlcgorLy8gQ2xhc3MgV3JpdGVyCiAvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK1dyaXRl
cjo6fldyaXRlcigpID0gZGVmYXVsdDsKIAotU3R5bGVkV3JpdGVyOjpTdHlsZWRXcml0ZXIoKQot
ICAgOiByaWdodE1hcmdpbl8oIDc0ICkKLSAgICwgaW5kZW50U2l6ZV8oIDMgKQotICAgLCBhZGRD
aGlsZFZhbHVlc18oKQotewotfQorLy8gQ2xhc3MgRmFzdFdyaXRlcgorLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
K0Zhc3RXcml0ZXI6OkZhc3RXcml0ZXIoKQorCisgICAgPSBkZWZhdWx0OworCit2b2lkIEZhc3RX
cml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KCkgeyB5YW1sQ29tcGF0aWJpbGl0eUVuYWJs
ZWRfID0gdHJ1ZTsgfQogCit2b2lkIEZhc3RXcml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKCkg
eyBkcm9wTnVsbFBsYWNlaG9sZGVyc18gPSB0cnVlOyB9CiAKLXN0ZDo6c3RyaW5nIAotU3R5bGVk
V3JpdGVyOjp3cml0ZSggY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAgZG9jdW1lbnRfID0gIiI7
Ci0gICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKLSAgIGluZGVudFN0cmluZ18gPSAiIjsKLSAg
IHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKCByb290ICk7Ci0gICB3cml0ZVZhbHVlKCByb290ICk7
Ci0gICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggcm9vdCApOwotICAgZG9jdW1l
bnRfICs9ICJcbiI7Ci0gICByZXR1cm4gZG9jdW1lbnRfOwordm9pZCBGYXN0V3JpdGVyOjpvbWl0
RW5kaW5nTGluZUZlZWQoKSB7IG9taXRFbmRpbmdMaW5lRmVlZF8gPSB0cnVlOyB9CisKK1N0cmlu
ZyBGYXN0V3JpdGVyOjp3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8uY2xl
YXIoKTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgaWYgKCFvbWl0RW5kaW5nTGluZUZlZWRfKQor
ICAgIGRvY3VtZW50XyArPSAnXG4nOworICByZXR1cm4gZG9jdW1lbnRfOwogfQogCit2b2lkIEZh
c3RXcml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFs
dWUudHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIGlmICghZHJvcE51bGxQbGFjZWhv
bGRlcnNfKQorICAgICAgZG9jdW1lbnRfICs9ICJudWxsIjsKKyAgICBicmVhazsKKyAgY2FzZSBp
bnRWYWx1ZToKKyAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJ
bnQoKSk7CisgICAgYnJlYWs7CisgIGNhc2UgdWludFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2
YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSk7CisgICAgYnJlYWs7CisgIGNhc2Ug
cmVhbFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91Ymxl
KCkpOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOiB7CisgICAgLy8gSXMgTlVMTCBw
b3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8gTm8uCisgICAgY2hhciBjb25zdCogc3RyOworICAg
IGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZl
bmQpOworICAgIGlmIChvaykKKyAgICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvUXVvdGVkU3RyaW5n
TihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBzdHIpKTsKKyAgICBicmVhazsKKyAg
fQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2
YWx1ZS5hc0Jvb2woKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZTogeworICAgIGRv
Y3VtZW50XyArPSAnWyc7CisgICAgQXJyYXlJbmRleCBzaXplID0gdmFsdWUuc2l6ZSgpOworICAg
IGZvciAoQXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAg
ICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgIHdyaXRl
VmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICB9CisgICAgZG9jdW1lbnRfICs9ICddJzsKKyAgfSBi
cmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnMo
dmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgZG9jdW1lbnRfICs9ICd7JzsKKyAgICBmb3Ig
KGF1dG8gaXQgPSBtZW1iZXJzLmJlZ2luKCk7IGl0ICE9IG1lbWJlcnMuZW5kKCk7ICsraXQpIHsK
KyAgICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9ICppdDsKKyAgICAgIGlmIChpdCAhPSBtZW1iZXJz
LmJlZ2luKCkpCisgICAgICAgIGRvY3VtZW50XyArPSAnLCc7CisgICAgICBkb2N1bWVudF8gKz0g
dmFsdWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG5hbWUubGVuZ3RoKCkpKTsK
KyAgICAgIGRvY3VtZW50XyArPSB5YW1sQ29tcGF0aWJpbGl0eUVuYWJsZWRfID8gIjogIiA6ICI6
IjsKKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbbmFtZV0pOworICAgIH0KKyAgICBkb2N1bWVudF8g
Kz0gJ30nOworICB9IGJyZWFrOworICB9Cit9CiAKLXZvaWQgCi1TdHlsZWRXcml0ZXI6OndyaXRl
VmFsdWUoIGNvbnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICBzd2l0Y2ggKCB2YWx1ZS50eXBlKCkg
KQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoICJudWxsIiApOwot
ICAgICAgYnJlYWs7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRv
U3RyaW5nKCB2YWx1ZS5hc0xhcmdlc3RJbnQoKSApICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ug
dWludFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xhcmdl
c3RVSW50KCkgKSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHB1
c2hWYWx1ZSggdmFsdWVUb1N0cmluZyggdmFsdWUuYXNEb3VibGUoKSApICk7Ci0gICAgICBicmVh
azsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoIHZhbHVlVG9RdW90ZWRT
dHJpbmcoIHZhbHVlLmFzQ1N0cmluZygpICkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBib29s
ZWFuVmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoIHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzQm9vbCgp
ICkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgd3JpdGVBcnJh
eVZhbHVlKCB2YWx1ZSk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAg
ICB7Ci0gICAgICAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKCB2YWx1ZS5nZXRNZW1iZXJOYW1l
cygpICk7Ci0gICAgICAgICBpZiAoIG1lbWJlcnMuZW1wdHkoKSApCi0gICAgICAgICAgICBwdXNo
VmFsdWUoICJ7fSIgKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHdy
aXRlV2l0aEluZGVudCggInsiICk7Ci0gICAgICAgICAgICBpbmRlbnQoKTsKLSAgICAgICAgICAg
IFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKLSAgICAgICAg
ICAgIGZvciAoOzspCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyAmbmFtZSA9ICppdDsKLSAgICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZjaGlsZFZhbHVl
ID0gdmFsdWVbbmFtZV07Ci0gICAgICAgICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSgg
Y2hpbGRWYWx1ZSApOwotICAgICAgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCB2YWx1ZVRvUXVv
dGVkU3RyaW5nKCBuYW1lLmNfc3RyKCkgKSApOwotICAgICAgICAgICAgICAgZG9jdW1lbnRfICs9
ICIgOiAiOwotICAgICAgICAgICAgICAgd3JpdGVWYWx1ZSggY2hpbGRWYWx1ZSApOwotICAgICAg
ICAgICAgICAgaWYgKCArK2l0ID09IG1lbWJlcnMuZW5kKCkgKQotICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNoaWxk
VmFsdWUgKTsKLSAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgZG9jdW1lbnRfICs9ICIsIjsKLSAgICAgICAgICAgICAgIHdyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB1bmluZGVudCgpOwotICAgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCAifSIgKTsK
LSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgfQotfQotCi0KLXZvaWQgCi1T
dHlsZWRXcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAg
IHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICBpZiAoIHNpemUgPT0gMCApCi0gICAg
ICBwdXNoVmFsdWUoICJbXSIgKTsKLSAgIGVsc2UKLSAgIHsKLSAgICAgIGJvb2wgaXNBcnJheU11
bHRpTGluZSA9IGlzTXVsdGluZUFycmF5KCB2YWx1ZSApOwotICAgICAgaWYgKCBpc0FycmF5TXVs
dGlMaW5lICkKLSAgICAgIHsKLSAgICAgICAgIHdyaXRlV2l0aEluZGVudCggIlsiICk7Ci0gICAg
ICAgICBpbmRlbnQoKTsKLSAgICAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVl
c18uZW1wdHkoKTsKLSAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0wOwotICAgICAgICAgZm9yICg7
OykKLSAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZjaGlsZFZhbHVlID0gdmFs
dWVbaW5kZXhdOwotICAgICAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoIGNoaWxkVmFs
dWUgKTsKLSAgICAgICAgICAgIGlmICggaGFzQ2hpbGRWYWx1ZSApCi0gICAgICAgICAgICAgICB3
cml0ZVdpdGhJbmRlbnQoIGNoaWxkVmFsdWVzX1tpbmRleF0gKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KCk7Ci0gICAgICAgICAg
ICAgICB3cml0ZVZhbHVlKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAoICsraW5kZXggPT0gc2l6ZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICB3
cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY2hpbGRWYWx1ZSApOwotICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkb2N1bWVudF8gKz0gIiwi
OwotICAgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNoaWxkVmFs
dWUgKTsKLSAgICAgICAgIH0KLSAgICAgICAgIHVuaW5kZW50KCk7Ci0gICAgICAgICB3cml0ZVdp
dGhJbmRlbnQoICJdIiApOworLy8gQ2xhc3MgU3R5bGVkV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor
U3R5bGVkV3JpdGVyOjpTdHlsZWRXcml0ZXIoKSA9IGRlZmF1bHQ7CisKK1N0cmluZyBTdHlsZWRX
cml0ZXI6OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50Xy5jbGVhcigpOwor
ICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50U3RyaW5nXy5jbGVhcigpOworICB3
cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgIGRvY3VtZW50XyArPSAnXG4n
OworICByZXR1cm4gZG9jdW1lbnRfOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVWYWx1
ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgICAgcHVzaFZhbHVlKCJudWxsIik7CisgICAgYnJlYWs7CisgIGNhc2Ug
aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50
KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVl
VG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVh
bFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCkpKTsK
KyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZTogeworICAgIC8vIElzIE5VTEwgcG9zc2li
bGUgZm9yIHZhbHVlLnN0cmluZ18/IE5vLgorICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFy
IGNvbnN0KiBlbmQ7CisgICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsK
KyAgICBpZiAob2spCisgICAgICBwdXNoVmFsdWUodmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kIC0gc3RyKSkpOworICAgIGVsc2UKKyAgICAgIHB1c2hW
YWx1ZSgiIik7CisgICAgYnJlYWs7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcHVz
aFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNCb29sKCkpKTsKKyAgICBicmVhazsKKyAgY2Fz
ZSBhcnJheVZhbHVlOgorICAgIHdyaXRlQXJyYXlWYWx1ZSh2YWx1ZSk7CisgICAgYnJlYWs7Cisg
IGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdl
dE1lbWJlck5hbWVzKCkpOworICAgIGlmIChtZW1iZXJzLmVtcHR5KCkpCisgICAgICBwdXNoVmFs
dWUoInt9Iik7CisgICAgZWxzZSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoInsiKTsKKyAgICAg
IGluZGVudCgpOworICAgICAgYXV0byBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKKyAgICAgIGZvciAo
OzspIHsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBuYW1lID0gKml0OworICAgICAgICBjb25zdCBW
YWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZv
cmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90
ZWRTdHJpbmcobmFtZS5jX3N0cigpKSk7CisgICAgICAgIGRvY3VtZW50XyArPSAiIDogIjsKKyAg
ICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVy
cy5lbmQoKSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNo
aWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50
XyArPSAnLCc7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxk
VmFsdWUpOwogICAgICAgfQotICAgICAgZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQot
ICAgICAgewotICAgICAgICAgYXNzZXJ0KCBjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUgKTsK
LSAgICAgICAgIGRvY3VtZW50XyArPSAiWyAiOwotICAgICAgICAgZm9yICggdW5zaWduZWQgaW5k
ZXggPTA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoIGluZGV4ID4gMCApCi0gICAgICAgICAgICAgICBkb2N1bWVudF8gKz0gIiwgIjsKLSAgICAg
ICAgICAgIGRvY3VtZW50XyArPSBjaGlsZFZhbHVlc19baW5kZXhdOwotICAgICAgICAgfQotICAg
ICAgICAgZG9jdW1lbnRfICs9ICIgXSI7CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVX
aXRoSW5kZW50KCJ9Iik7CisgICAgfQorICB9IGJyZWFrOworICB9Cit9CisKK3ZvaWQgU3R5bGVk
V3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHVuc2lnbmVk
IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZhbHVlKCJb
XSIpOworICBlbHNlIHsKKyAgICBib29sIGlzQXJyYXlNdWx0aUxpbmUgPSBpc011bHRpbGluZUFy
cmF5KHZhbHVlKTsKKyAgICBpZiAoaXNBcnJheU11bHRpTGluZSkgeworICAgICAgd3JpdGVXaXRo
SW5kZW50KCJbIik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9
ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKKyAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAg
IGZvciAoOzspIHsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRl
eF07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAg
ICBpZiAoaGFzQ2hpbGRWYWx1ZSkKKyAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1
ZXNfW2luZGV4XSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgIHdyaXRlSW5kZW50KCk7Cisg
ICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
KytpbmRleCA9PSBzaXplKSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2Ft
ZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxp
bmUoY2hpbGRWYWx1ZSk7CiAgICAgICB9Ci0gICB9Ci19Ci0KLQotYm9vbCAKLVN0eWxlZFdyaXRl
cjo6aXNNdWx0aW5lQXJyYXkoIGNvbnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICBpbnQgc2l6ZSA9
IHZhbHVlLnNpemUoKTsKLSAgIGJvb2wgaXNNdWx0aUxpbmUgPSBzaXplKjMgPj0gcmlnaHRNYXJn
aW5fIDsKLSAgIGNoaWxkVmFsdWVzXy5jbGVhcigpOwotICAgZm9yICggaW50IGluZGV4ID0wOyBp
bmRleCA8IHNpemUgICYmICAhaXNNdWx0aUxpbmU7ICsraW5kZXggKQotICAgewotICAgICAgY29u
c3QgVmFsdWUgJmNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07Ci0gICAgICBpc011bHRpTGluZSA9
IGlzTXVsdGlMaW5lICB8fAotICAgICAgICAgICAgICAgICAgICAgKCAoY2hpbGRWYWx1ZS5pc0Fy
cmF5KCkgIHx8ICBjaGlsZFZhbHVlLmlzT2JqZWN0KCkpICAmJiAgCi0gICAgICAgICAgICAgICAg
ICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDAgKTsKLSAgIH0KLSAgIGlmICggIWlzTXVsdGlM
aW5lICkgLy8gY2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKLSAgIHsKLSAg
ICAgIGNoaWxkVmFsdWVzXy5yZXNlcnZlKCBzaXplICk7Ci0gICAgICBhZGRDaGlsZFZhbHVlc18g
PSB0cnVlOwotICAgICAgaW50IGxpbmVMZW5ndGggPSA0ICsgKHNpemUtMSkqMjsgLy8gJ1sgJyAr
ICcsICcqbiArICcgXScKLSAgICAgIGZvciAoIGludCBpbmRleCA9MDsgaW5kZXggPCBzaXplICAm
JiAgIWlzTXVsdGlMaW5lOyArK2luZGV4ICkKLSAgICAgIHsKLSAgICAgICAgIHdyaXRlVmFsdWUo
IHZhbHVlW2luZGV4XSApOwotICAgICAgICAgbGluZUxlbmd0aCArPSBpbnQoIGNoaWxkVmFsdWVz
X1tpbmRleF0ubGVuZ3RoKCkgKTsKLSAgICAgICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUg
ICYmICBoYXNDb21tZW50Rm9yVmFsdWUoIHZhbHVlW2luZGV4XSApOworICAgICAgdW5pbmRlbnQo
KTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOworICAgIH0gZWxzZSAvLyBvdXRwdXQgb24g
YSBzaW5nbGUgbGluZQorICAgIHsKKyAgICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09
IHNpemUpOworICAgICAgZG9jdW1lbnRfICs9ICJbICI7CisgICAgICBmb3IgKHVuc2lnbmVkIGlu
ZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+IDAp
CisgICAgICAgICAgZG9jdW1lbnRfICs9ICIsICI7CisgICAgICAgIGRvY3VtZW50XyArPSBjaGls
ZFZhbHVlc19baW5kZXhdOwogICAgICAgfQotICAgICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7
Ci0gICAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lICB8fCAgbGluZUxlbmd0aCA+PSByaWdo
dE1hcmdpbl87Ci0gICB9Ci0gICByZXR1cm4gaXNNdWx0aUxpbmU7CisgICAgICBkb2N1bWVudF8g
Kz0gIiBdIjsKKyAgICB9CisgIH0KIH0KIAorYm9vbCBTdHlsZWRXcml0ZXI6OmlzTXVsdGlsaW5l
QXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIEFycmF5SW5kZXggY29uc3Qgc2l6ZSA9IHZh
bHVlLnNpemUoKTsKKyAgYm9vbCBpc011bHRpTGluZSA9IHNpemUgKiAzID49IHJpZ2h0TWFyZ2lu
XzsKKyAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7CisgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9IDA7
IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBjb25zdCBWYWx1
ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hpbGRW
YWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAgICAg
ICAgICAgICFjaGlsZFZhbHVlLmVtcHR5KCkpOworICB9CisgIGlmICghaXNNdWx0aUxpbmUpIC8v
IGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCisgIHsKKyAgICBjaGlsZFZh
bHVlc18ucmVzZXJ2ZShzaXplKTsKKyAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOworICAgIEFy
cmF5SW5kZXggbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcsICcq
biArICcgXScKKyAgICBmb3IgKEFycmF5SW5kZXggaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsr
aW5kZXgpIHsKKyAgICAgIGlmIChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgewor
ICAgICAgICBpc011bHRpTGluZSA9IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZh
bHVlW2luZGV4XSk7CisgICAgICBsaW5lTGVuZ3RoICs9IHN0YXRpY19jYXN0PEFycmF5SW5kZXg+
KGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0KKyAgICBhZGRDaGlsZFZhbHVl
c18gPSBmYWxzZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGgg
Pj0gcmlnaHRNYXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRpTGluZTsKK30KIAotdm9pZCAK
LVN0eWxlZFdyaXRlcjo6cHVzaFZhbHVlKCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKQotewot
ICAgaWYgKCBhZGRDaGlsZFZhbHVlc18gKQotICAgICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjaygg
dmFsdWUgKTsKLSAgIGVsc2UKLSAgICAgIGRvY3VtZW50XyArPSB2YWx1ZTsKK3ZvaWQgU3R5bGVk
V3JpdGVyOjpwdXNoVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICBpZiAoYWRkQ2hpbGRW
YWx1ZXNfKQorICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNlCisgICAg
ZG9jdW1lbnRfICs9IHZhbHVlOwogfQogCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVJbmRlbnQo
KSB7CisgIGlmICghZG9jdW1lbnRfLmVtcHR5KCkpIHsKKyAgICBjaGFyIGxhc3QgPSBkb2N1bWVu
dF9bZG9jdW1lbnRfLmxlbmd0aCgpIC0gMV07CisgICAgaWYgKGxhc3QgPT0gJyAnKSAvLyBhbHJl
YWR5IGluZGVudGVkCisgICAgICByZXR1cm47CisgICAgaWYgKGxhc3QgIT0gJ1xuJykgLy8gQ29t
bWVudHMgbWF5IGFkZCBuZXctbGluZQorICAgICAgZG9jdW1lbnRfICs9ICdcbic7CisgIH0KKyAg
ZG9jdW1lbnRfICs9IGluZGVudFN0cmluZ187Cit9CiAKLXZvaWQgCi1TdHlsZWRXcml0ZXI6Ondy
aXRlSW5kZW50KCkKLXsKLSAgIGlmICggIWRvY3VtZW50Xy5lbXB0eSgpICkKLSAgIHsKLSAgICAg
IGNoYXIgbGFzdCA9IGRvY3VtZW50X1tkb2N1bWVudF8ubGVuZ3RoKCktMV07Ci0gICAgICBpZiAo
IGxhc3QgPT0gJyAnICkgICAgIC8vIGFscmVhZHkgaW5kZW50ZWQKLSAgICAgICAgIHJldHVybjsK
LSAgICAgIGlmICggbGFzdCAhPSAnXG4nICkgICAgLy8gQ29tbWVudHMgbWF5IGFkZCBuZXctbGlu
ZQotICAgICAgICAgZG9jdW1lbnRfICs9ICdcbic7Ci0gICB9Ci0gICBkb2N1bWVudF8gKz0gaW5k
ZW50U3RyaW5nXzsKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkgeworICB3cml0ZUluZGVudCgpOworICBkb2N1bWVudF8gKz0gdmFsdWU7CiB9
CiAKK3ZvaWQgU3R5bGVkV3JpdGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmluZ18gKz0gU3RyaW5n
KGluZGVudFNpemVfLCAnICcpOyB9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp1bmluZGVudCgpIHsK
KyAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGluZGVudFNpemVfKTsKKyAgaW5kZW50
U3RyaW5nXy5yZXNpemUoaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRTaXplXyk7Cit9CiAK
LXZvaWQgCi1TdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudCggY29uc3Qgc3RkOjpzdHJpbmcg
JnZhbHVlICkKLXsKLSAgIHdyaXRlSW5kZW50KCk7Ci0gICBkb2N1bWVudF8gKz0gdmFsdWU7Cit2
b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJv
b3QpIHsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisgICAgcmV0dXJu
OworCisgIGRvY3VtZW50XyArPSAnXG4nOworICB3cml0ZUluZGVudCgpOworICBjb25zdCBTdHJp
bmcmIGNvbW1lbnQgPSByb290LmdldENvbW1lbnQoY29tbWVudEJlZm9yZSk7CisgIFN0cmluZzo6
Y29uc3RfaXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0g
Y29tbWVudC5lbmQoKSkgeworICAgIGRvY3VtZW50XyArPSAqaXRlcjsKKyAgICBpZiAoKml0ZXIg
PT0gJ1xuJyAmJiAoKGl0ZXIgKyAxKSAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09
ICcvJykpCisgICAgICB3cml0ZUluZGVudCgpOworICAgICsraXRlcjsKKyAgfQorCisgIC8vIENv
bW1lbnRzIGFyZSBzdHJpcHBlZCBvZiB0cmFpbGluZyBuZXdsaW5lcywgc28gYWRkIG9uZSBoZXJl
CisgIGRvY3VtZW50XyArPSAnXG4nOwogfQogCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKHJvb3Qu
aGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSkKKyAgICBkb2N1bWVudF8gKz0gIiAi
ICsgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOworCisgIGlmIChyb290
Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgeworICAgIGRvY3VtZW50XyArPSAnXG4nOworICAg
IGRvY3VtZW50XyArPSByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgICBkb2N1bWVu
dF8gKz0gJ1xuJzsKKyAgfQorfQogCi12b2lkIAotU3R5bGVkV3JpdGVyOjppbmRlbnQoKQotewot
ICAgaW5kZW50U3RyaW5nXyArPSBzdGQ6OnN0cmluZyggaW5kZW50U2l6ZV8sICcgJyApOworYm9v
bCBTdHlsZWRXcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsK
KyAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAgICAgICAgIHZh
bHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAgICAgIHZhbHVl
Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKIH0KIAorLy8gQ2xhc3MgU3R5bGVkU3RyZWFtV3Jp
dGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KIAotdm9pZCAKLVN0eWxlZFdyaXRlcjo6dW5pbmRlbnQoKQotewot
ICAgYXNzZXJ0KCBpbnQoaW5kZW50U3RyaW5nXy5zaXplKCkpID49IGluZGVudFNpemVfICk7Ci0g
ICBpbmRlbnRTdHJpbmdfLnJlc2l6ZSggaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRTaXpl
XyApOworU3R5bGVkU3RyZWFtV3JpdGVyOjpTdHlsZWRTdHJlYW1Xcml0ZXIoU3RyaW5nIGluZGVu
dGF0aW9uKQorICAgIDogZG9jdW1lbnRfKG51bGxwdHIpLCBpbmRlbnRhdGlvbl8oc3RkOjptb3Zl
KGluZGVudGF0aW9uKSksCisgICAgICBhZGRDaGlsZFZhbHVlc18oKSwgaW5kZW50ZWRfKGZhbHNl
KSB7fQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoT1N0cmVhbSYgb3V0LCBjb25z
dCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8gPSAmb3V0OworICBhZGRDaGlsZFZhbHVlc18g
PSBmYWxzZTsKKyAgaW5kZW50U3RyaW5nXy5jbGVhcigpOworICBpbmRlbnRlZF8gPSB0cnVlOwor
ICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKKyAgaWYgKCFpbmRlbnRlZF8pCisgICAg
d3JpdGVJbmRlbnQoKTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVWYWx1ZShyb290KTsK
KyAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgICpkb2N1bWVudF8g
PDwgIlxuIjsKKyAgZG9jdW1lbnRfID0gbnVsbHB0cjsgLy8gRm9yZ2V0IHRoZSBzdHJlYW0sIGZv
ciBzYWZldHkuCiB9CiAKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0
IFZhbHVlJiB2YWx1ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxW
YWx1ZToKKyAgICBwdXNoVmFsdWUoIm51bGwiKTsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1
ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOwor
ICAgIGJyZWFrOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmlu
Zyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6
CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSkpOworICAgIGJy
ZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOiB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3Ig
dmFsdWUuc3RyaW5nXz8gTm8uCisgICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3Qq
IGVuZDsKKyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlm
IChvaykKKyAgICAgIHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihlbmQgLSBzdHIpKSk7CisgICAgZWxzZQorICAgICAgcHVzaFZhbHVlKCIi
KTsKKyAgICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUo
dmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5
VmFsdWU6CisgICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBv
YmplY3RWYWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVy
TmFtZXMoKSk7CisgICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30i
KTsKKyAgICBlbHNlIHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50
KCk7CisgICAgICBhdXRvIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAgICAgZm9yICg7Oykgewor
ICAgICAgICBjb25zdCBTdHJpbmcmIG5hbWUgPSAqaXQ7CisgICAgICAgIGNvbnN0IFZhbHVlJiBj
aGlsZFZhbHVlID0gdmFsdWVbbmFtZV07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVl
KGNoaWxkVmFsdWUpOworICAgICAgICB3cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmlu
ZyhuYW1lLmNfc3RyKCkpKTsKKyAgICAgICAgKmRvY3VtZW50XyA8PCAiIDogIjsKKyAgICAgICAg
d3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQo
KSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFs
dWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICpkb2N1bWVudF8gPDwg
IiwiOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVl
KTsKKyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0i
KTsKKyAgICB9CisgIH0gYnJlYWs7CisgIH0KK30KIAotdm9pZCAKLVN0eWxlZFdyaXRlcjo6d3Jp
dGVDb21tZW50QmVmb3JlVmFsdWUoIGNvbnN0IFZhbHVlICZyb290ICkKLXsKLSAgIGlmICggIXJv
b3QuaGFzQ29tbWVudCggY29tbWVudEJlZm9yZSApICkKLSAgICAgIHJldHVybjsKLSAgIGRvY3Vt
ZW50XyArPSBub3JtYWxpemVFT0woIHJvb3QuZ2V0Q29tbWVudCggY29tbWVudEJlZm9yZSApICk7
Ci0gICBkb2N1bWVudF8gKz0gIlxuIjsKLX0KLQotCi12b2lkIAotU3R5bGVkV3JpdGVyOjp3cml0
ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAg
aWYgKCByb290Lmhhc0NvbW1lbnQoIGNvbW1lbnRBZnRlck9uU2FtZUxpbmUgKSApCi0gICAgICBk
b2N1bWVudF8gKz0gIiAiICsgbm9ybWFsaXplRU9MKCByb290LmdldENvbW1lbnQoIGNvbW1lbnRB
ZnRlck9uU2FtZUxpbmUgKSApOwotCi0gICBpZiAoIHJvb3QuaGFzQ29tbWVudCggY29tbWVudEFm
dGVyICkgKQotICAgewotICAgICAgZG9jdW1lbnRfICs9ICJcbiI7Ci0gICAgICBkb2N1bWVudF8g
Kz0gbm9ybWFsaXplRU9MKCByb290LmdldENvbW1lbnQoIGNvbW1lbnRBZnRlciApICk7Ci0gICAg
ICBkb2N1bWVudF8gKz0gIlxuIjsKLSAgIH0KLX0KLQotCi1ib29sIAotU3R5bGVkV3JpdGVyOjpo
YXNDb21tZW50Rm9yVmFsdWUoIGNvbnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICByZXR1cm4gdmFs
dWUuaGFzQ29tbWVudCggY29tbWVudEJlZm9yZSApCi0gICAgICAgICAgfHwgIHZhbHVlLmhhc0Nv
bW1lbnQoIGNvbW1lbnRBZnRlck9uU2FtZUxpbmUgKQotICAgICAgICAgIHx8ICB2YWx1ZS5oYXND
b21tZW50KCBjb21tZW50QWZ0ZXIgKTsKLX0KLQotCi1zdGQ6OnN0cmluZyAKLVN0eWxlZFdyaXRl
cjo6bm9ybWFsaXplRU9MKCBjb25zdCBzdGQ6OnN0cmluZyAmdGV4dCApCi17Ci0gICBzdGQ6OnN0
cmluZyBub3JtYWxpemVkOwotICAgbm9ybWFsaXplZC5yZXNlcnZlKCB0ZXh0Lmxlbmd0aCgpICk7
Ci0gICBjb25zdCBjaGFyICpiZWdpbiA9IHRleHQuY19zdHIoKTsKLSAgIGNvbnN0IGNoYXIgKmVu
ZCA9IGJlZ2luICsgdGV4dC5sZW5ndGgoKTsKLSAgIGNvbnN0IGNoYXIgKmN1cnJlbnQgPSBiZWdp
bjsKLSAgIHdoaWxlICggY3VycmVudCAhPSBlbmQgKQotICAgewotICAgICAgY2hhciBjID0gKmN1
cnJlbnQrKzsKLSAgICAgIGlmICggYyA9PSAnXHInICkgLy8gbWFjIG9yIGRvcyBFT0wKLSAgICAg
IHsKLSAgICAgICAgIGlmICggKmN1cnJlbnQgPT0gJ1xuJyApIC8vIGNvbnZlcnQgZG9zIEVPTAot
ICAgICAgICAgICAgKytjdXJyZW50OwotICAgICAgICAgbm9ybWFsaXplZCArPSAnXG4nOwordm9p
ZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUp
IHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgaWYgKHNpemUgPT0gMCkKKyAg
ICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2UgeworICAgIGJvb2wgaXNBcnJheU11bHRpTGluZSA9
IGlzTXVsdGlsaW5lQXJyYXkodmFsdWUpOworICAgIGlmIChpc0FycmF5TXVsdGlMaW5lKSB7Cisg
ICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBo
YXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5k
ZXggPSAwOworICAgICAgZm9yICg7OykgeworICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1
ZSA9IHZhbHVlW2luZGV4XTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRW
YWx1ZSk7CisgICAgICAgIGlmIChoYXNDaGlsZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aElu
ZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYg
KCFpbmRlbnRlZF8pCisgICAgICAgICAgICB3cml0ZUluZGVudCgpOworICAgICAgICAgIGluZGVu
dGVkXyA9IHRydWU7CisgICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAg
ICBpbmRlbnRlZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBz
aXplKSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRW
YWx1ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKmRvY3VtZW50XyA8
PCAiLCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFs
dWUpOwogICAgICAgfQotICAgICAgZWxzZSAvLyBoYW5kbGUgdW5peCBFT0wgJiBvdGhlciBjaGFy
Ci0gICAgICAgICBub3JtYWxpemVkICs9IGM7Ci0gICB9Ci0gICByZXR1cm4gbm9ybWFsaXplZDsK
KyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKKyAgICB9IGVs
c2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKKyAgICB7CisgICAgICBhc3NlcnQoY2hpbGRW
YWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKKyAgICAgICpkb2N1bWVudF8gPDwgIlsgIjsKKyAgICAg
IGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAg
ICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgICAqZG9jdW1lbnRfIDw8ICIsICI7CisgICAgICAg
ICpkb2N1bWVudF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsKKyAgICAgIH0KKyAgICAgICpkb2N1
bWVudF8gPDwgIiBdIjsKKyAgICB9CisgIH0KIH0KIAorYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6
OmlzTXVsdGlsaW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIEFycmF5SW5kZXggY29u
c3Qgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgYm9vbCBpc011bHRpTGluZSA9IHNpemUgKiAzID49
IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7CisgIGZvciAoQXJyYXlJbmRl
eCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAg
ICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICBpc011bHRpTGlu
ZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgor
ICAgICAgICAgICAgICAgICAgICFjaGlsZFZhbHVlLmVtcHR5KCkpOworICB9CisgIGlmICghaXNN
dWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCisgIHsK
KyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKKyAgICBhZGRDaGlsZFZhbHVlc18gPSB0
cnVlOworICAgIEFycmF5SW5kZXggbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8g
J1sgJyArICcsICcqbiArICcgXScKKyAgICBmb3IgKEFycmF5SW5kZXggaW5kZXggPSAwOyBpbmRl
eCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgIGlmIChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVb
aW5kZXhdKSkgeworICAgICAgICBpc011bHRpTGluZSA9IHRydWU7CisgICAgICB9CisgICAgICB3
cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7CisgICAgICBsaW5lTGVuZ3RoICs9IHN0YXRpY19jYXN0
PEFycmF5SW5kZXg+KGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0KKyAgICBh
ZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8
IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRpTGluZTsK
K30KIAotLy8gQ2xhc3MgU3R5bGVkU3RyZWFtV3JpdGVyCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK3ZvaWQgU3R5
bGVkU3RyZWFtV3JpdGVyOjpwdXNoVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICBpZiAo
YWRkQ2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBl
bHNlCisgICAgKmRvY3VtZW50XyA8PCB2YWx1ZTsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0
ZXI6OndyaXRlSW5kZW50KCkgeworICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBhdCB0
aGUgc28tZmFyLXdyaXR0ZW4gc3RyaW5nCisgIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFy
ZSBhbHJlYWR5IGluZGVudGVkLCBidXQKKyAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3QgZG8g
dGhhdC4gU28gd2UgcmVseSBvbiBzb21lIHNhdmVkIHN0YXRlLgorICAvLyBUaGUgY2FsbGVyIGNo
ZWNrcyBpbmRlbnRlZF8uCisgICpkb2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOwor
fQogCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OlN0eWxlZFN0cmVhbVdyaXRlciggc3RkOjpzdHJpbmcg
aW5kZW50YXRpb24gKQotICAgOiBkb2N1bWVudF8oTlVMTCkKLSAgICwgcmlnaHRNYXJnaW5fKCA3
NCApCi0gICAsIGluZGVudGF0aW9uXyggaW5kZW50YXRpb24gKQotICAgLCBhZGRDaGlsZFZhbHVl
c18oKQotewordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVudChjb25zdCBT
dHJpbmcmIHZhbHVlKSB7CisgIGlmICghaW5kZW50ZWRfKQorICAgIHdyaXRlSW5kZW50KCk7Cisg
ICpkb2N1bWVudF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9IGZhbHNlOwogfQogCit2b2lkIFN0
eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IGluZGVudGF0aW9u
XzsgfQogCi12b2lkCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlKCBzdGQ6Om9zdHJlYW0gJm91
dCwgY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAgZG9jdW1lbnRfID0gJm91dDsKLSAgIGFkZENo
aWxkVmFsdWVzXyA9IGZhbHNlOwotICAgaW5kZW50U3RyaW5nXyA9ICIiOwotICAgd3JpdGVDb21t
ZW50QmVmb3JlVmFsdWUoIHJvb3QgKTsKLSAgIHdyaXRlVmFsdWUoIHJvb3QgKTsKLSAgIHdyaXRl
Q29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKCByb290ICk7Ci0gICAqZG9jdW1lbnRfIDw8ICJc
biI7Ci0gICBkb2N1bWVudF8gPSBOVUxMOyAvLyBGb3JnZXQgdGhlIHN0cmVhbSwgZm9yIHNhZmV0
eS4KK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp1bmluZGVudCgpIHsKKyAgYXNzZXJ0KGluZGVu
dFN0cmluZ18uc2l6ZSgpID49IGluZGVudGF0aW9uXy5zaXplKCkpOworICBpbmRlbnRTdHJpbmdf
LnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwogfQog
Cit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3Qg
VmFsdWUmIHJvb3QpIHsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisg
ICAgcmV0dXJuOworCisgIGlmICghaW5kZW50ZWRfKQorICAgIHdyaXRlSW5kZW50KCk7CisgIGNv
bnN0IFN0cmluZyYgY29tbWVudCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKKyAg
U3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVyID0gY29tbWVudC5iZWdpbigpOworICB3aGlsZSAo
aXRlciAhPSBjb21tZW50LmVuZCgpKSB7CisgICAgKmRvY3VtZW50XyA8PCAqaXRlcjsKKyAgICBp
ZiAoKml0ZXIgPT0gJ1xuJyAmJiAoKGl0ZXIgKyAxKSAhPSBjb21tZW50LmVuZCgpICYmICooaXRl
ciArIDEpID09ICcvJykpCisgICAgICAvLyB3cml0ZUluZGVudCgpOyAgLy8gd291bGQgaW5jbHVk
ZSBuZXdsaW5lCisgICAgICAqZG9jdW1lbnRfIDw8IGluZGVudFN0cmluZ187CisgICAgKytpdGVy
OworICB9CisgIGluZGVudGVkXyA9IGZhbHNlOworfQogCi12b2lkIAotU3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZVZhbHVlKCBjb25zdCBWYWx1ZSAmdmFsdWUgKQotewotICAgc3dpdGNoICggdmFs
dWUudHlwZSgpICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCAi
bnVsbCIgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHB1c2hWYWx1
ZSggdmFsdWVUb1N0cmluZyggdmFsdWUuYXNMYXJnZXN0SW50KCkgKSApOwotICAgICAgYnJlYWs7
Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHB1c2hWYWx1ZSggdmFsdWVUb1N0cmluZyggdmFs
dWUuYXNMYXJnZXN0VUludCgpICkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSByZWFsVmFsdWU6
Ci0gICAgICBwdXNoVmFsdWUoIHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzRG91YmxlKCkgKSApOwot
ICAgICAgYnJlYWs7Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1
ZVRvUXVvdGVkU3RyaW5nKCB2YWx1ZS5hc0NTdHJpbmcoKSApICk7Ci0gICAgICBicmVhazsKLSAg
IGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRvU3RyaW5nKCB2YWx1
ZS5hc0Jvb2woKSApICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAg
IHdyaXRlQXJyYXlWYWx1ZSggdmFsdWUpOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZh
bHVlOgotICAgICAgewotICAgICAgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyggdmFsdWUuZ2V0
TWVtYmVyTmFtZXMoKSApOwotICAgICAgICAgaWYgKCBtZW1iZXJzLmVtcHR5KCkgKQotICAgICAg
ICAgICAgcHVzaFZhbHVlKCAie30iICk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICB7Ci0gICAg
ICAgICAgICB3cml0ZVdpdGhJbmRlbnQoICJ7IiApOwotICAgICAgICAgICAgaW5kZW50KCk7Ci0g
ICAgICAgICAgICBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7
Ci0gICAgICAgICAgICBmb3IgKDs7KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcgJm5hbWUgPSAqaXQ7Ci0gICAgICAgICAgICAgICBjb25zdCBWYWx1ZSAm
Y2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOwotICAgICAgICAgICAgICAgd3JpdGVDb21tZW50QmVm
b3JlVmFsdWUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAgICAgIHdyaXRlV2l0aEluZGVudCgg
dmFsdWVUb1F1b3RlZFN0cmluZyggbmFtZS5jX3N0cigpICkgKTsKLSAgICAgICAgICAgICAgICpk
b2N1bWVudF8gPDwgIiA6ICI7Ci0gICAgICAgICAgICAgICB3cml0ZVZhbHVlKCBjaGlsZFZhbHVl
ICk7Ci0gICAgICAgICAgICAgICBpZiAoICsraXQgPT0gbWVtYmVycy5lbmQoKSApCi0gICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZSggY2hpbGRWYWx1ZSApOwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKLSAgICAgICAgICAgICAg
IHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKCBjaGlsZFZhbHVlICk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB1bmluZGVudCgpOwotICAgICAgICAgICAgd3JpdGVXaXRoSW5k
ZW50KCAifSIgKTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgfQotfQot
Ci0KLXZvaWQgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSggY29uc3QgVmFs
dWUgJnZhbHVlICkKLXsKLSAgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICBpZiAo
IHNpemUgPT0gMCApCi0gICAgICBwdXNoVmFsdWUoICJbXSIgKTsKLSAgIGVsc2UKLSAgIHsKLSAg
ICAgIGJvb2wgaXNBcnJheU11bHRpTGluZSA9IGlzTXVsdGluZUFycmF5KCB2YWx1ZSApOwotICAg
ICAgaWYgKCBpc0FycmF5TXVsdGlMaW5lICkKLSAgICAgIHsKLSAgICAgICAgIHdyaXRlV2l0aElu
ZGVudCggIlsiICk7Ci0gICAgICAgICBpbmRlbnQoKTsKLSAgICAgICAgIGJvb2wgaGFzQ2hpbGRW
YWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKLSAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0w
OwotICAgICAgICAgZm9yICg7OykKLSAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IFZhbHVl
ICZjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICAgICAgd3JpdGVDb21tZW50QmVm
b3JlVmFsdWUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAgIGlmICggaGFzQ2hpbGRWYWx1ZSAp
Ci0gICAgICAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoIGNoaWxkVmFsdWVzX1tpbmRleF0gKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIHdyaXRlSW5k
ZW50KCk7Ci0gICAgICAgICAgICAgICB3cml0ZVZhbHVlKCBjaGlsZFZhbHVlICk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoICsraW5kZXggPT0gc2l6ZSApCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY2hpbGRW
YWx1ZSApOwotICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAqZG9jdW1lbnRfIDw8ICIsIjsKLSAgICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVP
blNhbWVMaW5lKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICB9Ci0gICAgICAgICB1bmluZGVudCgp
OwotICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCAiXSIgKTsKK3ZvaWQgU3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCkg
eworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgICpk
b2N1bWVudF8gPDwgJyAnIDw8IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5l
KTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICB3cml0ZUlu
ZGVudCgpOworICAgICpkb2N1bWVudF8gPDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlcik7
CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK2Jvb2wgU3R5bGVkU3RyZWFtV3JpdGVy
OjpoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJldHVybiB2YWx1
ZS5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50
KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNv
bW1lbnRBZnRlcik7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCdWlsdFN0
eWxlZFN0cmVhbVdyaXRlcgorCisvLy8gU2NvcGVkIGVudW1zIGFyZSBub3QgYXZhaWxhYmxlIHVu
dGlsIEMrKzExLgorc3RydWN0IENvbW1lbnRTdHlsZSB7CisgIC8vLyBEZWNpZGUgd2hldGhlciB0
byB3cml0ZSBjb21tZW50cy4KKyAgZW51bSBFbnVtIHsKKyAgICBOb25lLCAvLy88IERyb3AgYWxs
IGNvbW1lbnRzLgorICAgIE1vc3QsIC8vLzwgUmVjb3ZlciBvZGQgYmVoYXZpb3Igb2YgcHJldmlv
dXMgdmVyc2lvbnMgKG5vdCBpbXBsZW1lbnRlZCB5ZXQpLgorICAgIEFsbCAgIC8vLzwgS2VlcCBh
bGwgY29tbWVudHMuCisgIH07Cit9OworCitzdHJ1Y3QgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIg
OiBwdWJsaWMgU3RyZWFtV3JpdGVyIHsKKyAgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoU3RyaW5n
IGluZGVudGF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50U3R5bGU6OkVu
dW0gY3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb2xvblN5bWJvbCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG51bGxTeW1ib2wsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIFN0cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCB1c2VTcGVjaWFsRmxvYXRzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQ
cmVjaXNpb25UeXBlIHByZWNpc2lvblR5cGUpOworICBpbnQgd3JpdGUoVmFsdWUgY29uc3QmIHJv
b3QsIE9TdHJlYW0qIHNvdXQpIG92ZXJyaWRlOworCitwcml2YXRlOgorICB2b2lkIHdyaXRlVmFs
dWUoVmFsdWUgY29uc3QmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUFycmF5VmFsdWUoVmFsdWUgY29u
c3QmIHZhbHVlKTsKKyAgYm9vbCBpc011bHRpbGluZUFycmF5KFZhbHVlIGNvbnN0JiB2YWx1ZSk7
CisgIHZvaWQgcHVzaFZhbHVlKFN0cmluZyBjb25zdCYgdmFsdWUpOworICB2b2lkIHdyaXRlSW5k
ZW50KCk7CisgIHZvaWQgd3JpdGVXaXRoSW5kZW50KFN0cmluZyBjb25zdCYgdmFsdWUpOworICB2
b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21tZW50QmVm
b3JlVmFsdWUoVmFsdWUgY29uc3QmIHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFs
dWVPblNhbWVMaW5lKFZhbHVlIGNvbnN0JiByb290KTsKKyAgc3RhdGljIGJvb2wgaGFzQ29tbWVu
dEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxT
dHJpbmc+IENoaWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgU3Ry
aW5nIGluZGVudFN0cmluZ187CisgIHVuc2lnbmVkIGludCByaWdodE1hcmdpbl87CisgIFN0cmlu
ZyBpbmRlbnRhdGlvbl87CisgIENvbW1lbnRTdHlsZTo6RW51bSBjc187CisgIFN0cmluZyBjb2xv
blN5bWJvbF87CisgIFN0cmluZyBudWxsU3ltYm9sXzsKKyAgU3RyaW5nIGVuZGluZ0xpbmVGZWVk
U3ltYm9sXzsKKyAgYm9vbCBhZGRDaGlsZFZhbHVlc18gOiAxOworICBib29sIGluZGVudGVkXyA6
IDE7CisgIGJvb2wgdXNlU3BlY2lhbEZsb2F0c18gOiAxOworICB1bnNpZ25lZCBpbnQgcHJlY2lz
aW9uXzsKKyAgUHJlY2lzaW9uVHlwZSBwcmVjaXNpb25UeXBlXzsKK307CitCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoU3RyaW5nIGluZGVudGF0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRT
dHlsZTo6RW51bSBjcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJpbmcgY29sb25TeW1ib2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG51bGxTeW1ib2wsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVuZGluZ0xpbmVGZWVkU3lt
Ym9sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgdXNlU3BlY2lhbEZsb2F0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByZWNpc2lvblR5cGUgcHJlY2lzaW9uVHlw
ZSkKKyAgICA6IHJpZ2h0TWFyZ2luXyg3NCksIGluZGVudGF0aW9uXyhzdGQ6Om1vdmUoaW5kZW50
YXRpb24pKSwgY3NfKGNzKSwKKyAgICAgIGNvbG9uU3ltYm9sXyhzdGQ6Om1vdmUoY29sb25TeW1i
b2wpKSwgbnVsbFN5bWJvbF8oc3RkOjptb3ZlKG51bGxTeW1ib2wpKSwKKyAgICAgIGVuZGluZ0xp
bmVGZWVkU3ltYm9sXyhzdGQ6Om1vdmUoZW5kaW5nTGluZUZlZWRTeW1ib2wpKSwKKyAgICAgIGFk
ZENoaWxkVmFsdWVzXyhmYWxzZSksIGluZGVudGVkXyhmYWxzZSksCisgICAgICB1c2VTcGVjaWFs
RmxvYXRzXyh1c2VTcGVjaWFsRmxvYXRzKSwgcHJlY2lzaW9uXyhwcmVjaXNpb24pLAorICAgICAg
cHJlY2lzaW9uVHlwZV8ocHJlY2lzaW9uVHlwZSkge30KK2ludCBCdWlsdFN0eWxlZFN0cmVhbVdy
aXRlcjo6d3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIE9TdHJlYW0qIHNvdXQpIHsKKyAgc291dF8g
PSBzb3V0OworICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsK
KyAgaW5kZW50U3RyaW5nXy5jbGVhcigpOworICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290
KTsKKyAgaWYgKCFpbmRlbnRlZF8pCisgICAgd3JpdGVJbmRlbnQoKTsKKyAgaW5kZW50ZWRfID0g
dHJ1ZTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2Ft
ZUxpbmUocm9vdCk7CisgICpzb3V0XyA8PCBlbmRpbmdMaW5lRmVlZFN5bWJvbF87CisgIHNvdXRf
ID0gbnVsbHB0cjsKKyAgcmV0dXJuIDA7Cit9Cit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojp3cml0ZVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUo
KSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBwdXNoVmFsdWUobnVsbFN5bWJvbF8pOworICAg
IGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzTGFyZ2VzdEludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgdWludFZhbHVlOgorICAg
IHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSkpOworICAgIGJy
ZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1
ZS5hc0RvdWJsZSgpLCB1c2VTcGVjaWFsRmxvYXRzXywgcHJlY2lzaW9uXywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmVjaXNpb25UeXBlXykpOworICAgIGJyZWFrOworICBjYXNlIHN0
cmluZ1ZhbHVlOiB7CisgICAgLy8gSXMgTlVMTCBpcyBwb3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5n
Xz8gTm8uCisgICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBi
b29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykKKyAgICAg
IHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihlbmQgLSBzdHIpKSk7CisgICAgZWxzZQorICAgICAgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVh
azsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmlu
Zyh2YWx1ZS5hc0Jvb2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAg
d3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTog
eworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7Cisg
ICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNl
IHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBh
dXRvIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAgICAgZm9yICg7OykgeworICAgICAgICBTdHJp
bmcgY29uc3QmIG5hbWUgPSAqaXQ7CisgICAgICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0g
dmFsdWVbbmFtZV07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUp
OworICAgICAgICB3cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZ04oCisgICAgICAg
ICAgICBuYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG5hbWUubGVuZ3RoKCkpKSk7
CisgICAgICAgICpzb3V0XyA8PCBjb2xvblN5bWJvbF87CisgICAgICAgIHdyaXRlVmFsdWUoY2hp
bGRWYWx1ZSk7CisgICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMuZW5kKCkpIHsKKyAgICAgICAg
ICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqc291dF8gPDwgIiwiOworICAgICAgICB3cml0
ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKICAgICAgIH0KLSAgICAg
IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKLSAgICAgIHsKLSAgICAgICAgIGFzc2Vy
dCggY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplICk7Ci0gICAgICAgICAqZG9jdW1lbnRfIDw8
ICJbICI7Ci0gICAgICAgICBmb3IgKCB1bnNpZ25lZCBpbmRleCA9MDsgaW5kZXggPCBzaXplOyAr
K2luZGV4ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICggaW5kZXggPiAwICkKLSAgICAg
ICAgICAgICAgICpkb2N1bWVudF8gPDwgIiwgIjsKLSAgICAgICAgICAgICpkb2N1bWVudF8gPDwg
Y2hpbGRWYWx1ZXNfW2luZGV4XTsKLSAgICAgICAgIH0KLSAgICAgICAgICpkb2N1bWVudF8gPDwg
IiBdIjsKKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0iKTsKKyAg
ICB9CisgIH0gYnJlYWs7CisgIH0KK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6
d3JpdGVBcnJheVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICB1bnNpZ25lZCBzaXplID0g
dmFsdWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10iKTsKKyAg
ZWxzZSB7CisgICAgYm9vbCBpc011bHRpTGluZSA9IChjc18gPT0gQ29tbWVudFN0eWxlOjpBbGwp
IHx8IGlzTXVsdGlsaW5lQXJyYXkodmFsdWUpOworICAgIGlmIChpc011bHRpTGluZSkgeworICAg
ICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGJvb2wgaGFz
Q2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKKyAgICAgIHVuc2lnbmVkIGluZGV4
ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUg
PSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFs
dWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1ZSkKKyAgICAgICAgICB3cml0ZVdpdGhJbmRl
bnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgIGlmICgh
aW5kZW50ZWRfKQorICAgICAgICAgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICBpbmRlbnRl
ZF8gPSB0cnVlOworICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAg
aW5kZW50ZWRfID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6
ZSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFs
dWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICpzb3V0XyA8PCAiLCI7
CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwog
ICAgICAgfQotICAgfQotfQotCi0KLWJvb2wgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGlu
ZUFycmF5KCBjb25zdCBWYWx1ZSAmdmFsdWUgKQotewotICAgaW50IHNpemUgPSB2YWx1ZS5zaXpl
KCk7Ci0gICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSozID49IHJpZ2h0TWFyZ2luXyA7Ci0gICBj
aGlsZFZhbHVlc18uY2xlYXIoKTsKLSAgIGZvciAoIGludCBpbmRleCA9MDsgaW5kZXggPCBzaXpl
ICAmJiAgIWlzTXVsdGlMaW5lOyArK2luZGV4ICkKLSAgIHsKLSAgICAgIGNvbnN0IFZhbHVlICZj
aGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGlu
ZSAgfHwKLSAgICAgICAgICAgICAgICAgICAgICggKGNoaWxkVmFsdWUuaXNBcnJheSgpICB8fCAg
Y2hpbGRWYWx1ZS5pc09iamVjdCgpKSAgJiYgIAotICAgICAgICAgICAgICAgICAgICAgICAgY2hp
bGRWYWx1ZS5zaXplKCkgPiAwICk7Ci0gICB9Ci0gICBpZiAoICFpc011bHRpTGluZSApIC8vIGNo
ZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCi0gICB7Ci0gICAgICBjaGlsZFZh
bHVlc18ucmVzZXJ2ZSggc2l6ZSApOwotICAgICAgYWRkQ2hpbGRWYWx1ZXNfID0gdHJ1ZTsKLSAg
ICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplLTEpKjI7IC8vICdbICcgKyAnLCAnKm4gKyAn
IF0nCi0gICAgICBmb3IgKCBpbnQgaW5kZXggPTA7IGluZGV4IDwgc2l6ZSAgJiYgICFpc011bHRp
TGluZTsgKytpbmRleCApCi0gICAgICB7Ci0gICAgICAgICB3cml0ZVZhbHVlKCB2YWx1ZVtpbmRl
eF0gKTsKLSAgICAgICAgIGxpbmVMZW5ndGggKz0gaW50KCBjaGlsZFZhbHVlc19baW5kZXhdLmxl
bmd0aCgpICk7Ci0gICAgICAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lICAmJiAgaGFzQ29t
bWVudEZvclZhbHVlKCB2YWx1ZVtpbmRleF0gKTsKKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3
cml0ZVdpdGhJbmRlbnQoIl0iKTsKKyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxp
bmUKKyAgICB7CisgICAgICBhc3NlcnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKKyAg
ICAgICpzb3V0XyA8PCAiWyI7CisgICAgICBpZiAoIWluZGVudGF0aW9uXy5lbXB0eSgpKQorICAg
ICAgICAqc291dF8gPDwgIiAiOworICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4
IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgICpz
b3V0XyA8PCAoKCFpbmRlbnRhdGlvbl8uZW1wdHkoKSkgPyAiLCAiIDogIiwiKTsKKyAgICAgICAg
KnNvdXRfIDw8IGNoaWxkVmFsdWVzX1tpbmRleF07CiAgICAgICB9Ci0gICAgICBhZGRDaGlsZFZh
bHVlc18gPSBmYWxzZTsKLSAgICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgIHx8ICBsaW5l
TGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKLSAgIH0KLSAgIHJldHVybiBpc011bHRpTGluZTsKKyAg
ICAgIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpCisgICAgICAgICpzb3V0XyA8PCAiICI7Cisg
ICAgICAqc291dF8gPDwgIl0iOworICAgIH0KKyAgfQogfQogCi0KLXZvaWQgCi1TdHlsZWRTdHJl
YW1Xcml0ZXI6OnB1c2hWYWx1ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICkKLXsKLSAgIGlm
ICggYWRkQ2hpbGRWYWx1ZXNfICkKLSAgICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2soIHZhbHVl
ICk7Ci0gICBlbHNlCi0gICAgICAqZG9jdW1lbnRfIDw8IHZhbHVlOworYm9vbCBCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6aXNNdWx0aWxpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAg
QXJyYXlJbmRleCBjb25zdCBzaXplID0gdmFsdWUuc2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5l
ID0gc2l6ZSAqIDMgPj0gcmlnaHRNYXJnaW5fOworICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAg
Zm9yIChBcnJheUluZGV4IGluZGV4ID0gMDsgaW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsg
KytpbmRleCkgeworICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwor
ICAgIGlzTXVsdGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlz
T2JqZWN0KCkpICYmCisgICAgICAgICAgICAgICAgICAgIWNoaWxkVmFsdWUuZW1wdHkoKSk7Cisg
IH0KKyAgaWYgKCFpc011bHRpTGluZSkgLy8gY2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGlu
ZSBsZW5ndGgKKyAgeworICAgIGNoaWxkVmFsdWVzXy5yZXNlcnZlKHNpemUpOworICAgIGFkZENo
aWxkVmFsdWVzXyA9IHRydWU7CisgICAgQXJyYXlJbmRleCBsaW5lTGVuZ3RoID0gNCArIChzaXpl
IC0gMSkgKiAyOyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAgIGZvciAoQXJyYXlJbmRleCBp
bmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGhhc0NvbW1lbnRG
b3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7CisgICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKKyAg
ICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICAgIGxpbmVMZW5ndGgg
Kz0gc3RhdGljX2Nhc3Q8QXJyYXlJbmRleD4oY2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgoKSk7
CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOworICAgIGlzTXVsdGlMaW5lID0g
aXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSByaWdodE1hcmdpbl87CisgIH0KKyAgcmV0dXJu
IGlzTXVsdGlMaW5lOwogfQogCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpwdXNoVmFs
dWUoU3RyaW5nIGNvbnN0JiB2YWx1ZSkgeworICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQorICAgIGNo
aWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNlCisgICAgKnNvdXRfIDw8IHZhbHVl
OworfQogCi12b2lkIAotU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUluZGVudCgpCi17Ci0gIC8q
Ci0gICAgU29tZSBjb21tZW50cyBpbiB0aGlzIG1ldGhvZCB3b3VsZCBoYXZlIGJlZW4gbmljZS4g
Oy0pCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgLy8g
YmxlcCBpbnRlbmRlZCB0aGlzIHRvIGxvb2sgYXQgdGhlIHNvLWZhci13cml0dGVuIHN0cmluZwor
ICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBhcmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0Cisg
IC8vIHdpdGggYSBzdHJlYW0gd2UgY2Fubm90IGRvIHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBz
YXZlZCBzdGF0ZS4KKyAgLy8gVGhlIGNhbGxlciBjaGVja3MgaW5kZW50ZWRfLgogCi0gICBpZiAo
ICFkb2N1bWVudF8uZW1wdHkoKSApCi0gICB7Ci0gICAgICBjaGFyIGxhc3QgPSBkb2N1bWVudF9b
ZG9jdW1lbnRfLmxlbmd0aCgpLTFdOwotICAgICAgaWYgKCBsYXN0ID09ICcgJyApICAgICAvLyBh
bHJlYWR5IGluZGVudGVkCi0gICAgICAgICByZXR1cm47Ci0gICAgICBpZiAoIGxhc3QgIT0gJ1xu
JyApICAgIC8vIENvbW1lbnRzIG1heSBhZGQgbmV3LWxpbmUKLSAgICAgICAgICpkb2N1bWVudF8g
PDwgJ1xuJzsKLSAgIH0KLSAgKi8KLSAgICpkb2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJp
bmdfOworICBpZiAoIWluZGVudGF0aW9uXy5lbXB0eSgpKSB7CisgICAgLy8gSW4gdGhpcyBjYXNl
LCBkcm9wIG5ld2xpbmVzIHRvby4KKyAgICAqc291dF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdf
OworICB9CiB9CiAKLQotdm9pZCAKLVN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50
KCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKQotewotICAgd3JpdGVJbmRlbnQoKTsKLSAgICpk
b2N1bWVudF8gPDwgdmFsdWU7Cit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVdp
dGhJbmRlbnQoU3RyaW5nIGNvbnN0JiB2YWx1ZSkgeworICBpZiAoIWluZGVudGVkXykKKyAgICB3
cml0ZUluZGVudCgpOworICAqc291dF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9IGZhbHNlOwog
fQogCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmlu
Z18gKz0gaW5kZW50YXRpb25fOyB9CiAKLXZvaWQgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OmluZGVu
dCgpCi17Ci0gICBpbmRlbnRTdHJpbmdfICs9IGluZGVudGF0aW9uXzsKK3ZvaWQgQnVpbHRTdHls
ZWRTdHJlYW1Xcml0ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW5kZW50U3RyaW5nXy5zaXpl
KCkgPj0gaW5kZW50YXRpb25fLnNpemUoKSk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVu
dFN0cmluZ18uc2l6ZSgpIC0gaW5kZW50YXRpb25fLnNpemUoKSk7CiB9CiAKLQotdm9pZCAKLVN0
eWxlZFN0cmVhbVdyaXRlcjo6dW5pbmRlbnQoKQotewotICAgYXNzZXJ0KCBpbmRlbnRTdHJpbmdf
LnNpemUoKSA+PSBpbmRlbnRhdGlvbl8uc2l6ZSgpICk7Ci0gICBpbmRlbnRTdHJpbmdfLnJlc2l6
ZSggaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRhdGlvbl8uc2l6ZSgpICk7Cit2b2lkIEJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1ZSBjb25z
dCYgcm9vdCkgeworICBpZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkKKyAgICByZXR1cm47
CisgIGlmICghcm9vdC5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpKQorICAgIHJldHVybjsKKwor
ICBpZiAoIWluZGVudGVkXykKKyAgICB3cml0ZUluZGVudCgpOworICBjb25zdCBTdHJpbmcmIGNv
bW1lbnQgPSByb290LmdldENvbW1lbnQoY29tbWVudEJlZm9yZSk7CisgIFN0cmluZzo6Y29uc3Rf
aXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0gY29tbWVu
dC5lbmQoKSkgeworICAgICpzb3V0XyA8PCAqaXRlcjsKKyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAm
JiAoKGl0ZXIgKyAxKSAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcvJykpCisg
ICAgICAvLyB3cml0ZUluZGVudCgpOyAgLy8gd291bGQgd3JpdGUgZXh0cmEgbmV3bGluZQorICAg
ICAgKnNvdXRfIDw8IGluZGVudFN0cmluZ187CisgICAgKytpdGVyOworICB9CisgIGluZGVudGVk
XyA9IGZhbHNlOwogfQogCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZSgKKyAgICBWYWx1ZSBjb25zdCYgcm9vdCkgeworICBpZiAo
Y3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkKKyAgICByZXR1cm47CisgIGlmIChyb290Lmhhc0Nv
bW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCisgICAgKnNvdXRfIDw8ICIgIiArIHJvb3Qu
Z2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21t
ZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICB3cml0ZUluZGVudCgpOworICAgICpzb3V0XyA8PCBy
b290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgfQorfQogCi12b2lkIAotU3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSggY29uc3QgVmFsdWUgJnJvb3QgKQot
ewotICAgaWYgKCAhcm9vdC5oYXNDb21tZW50KCBjb21tZW50QmVmb3JlICkgKQotICAgICAgcmV0
dXJuOwotICAgKmRvY3VtZW50XyA8PCBub3JtYWxpemVFT0woIHJvb3QuZ2V0Q29tbWVudCggY29t
bWVudEJlZm9yZSApICk7Ci0gICAqZG9jdW1lbnRfIDw8ICJcbiI7Ci19Ci0KLQotdm9pZCAKLVN0
eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNvbnN0
IFZhbHVlICZyb290ICkKLXsKLSAgIGlmICggcm9vdC5oYXNDb21tZW50KCBjb21tZW50QWZ0ZXJP
blNhbWVMaW5lICkgKQotICAgICAgKmRvY3VtZW50XyA8PCAiICIgKyBub3JtYWxpemVFT0woIHJv
b3QuZ2V0Q29tbWVudCggY29tbWVudEFmdGVyT25TYW1lTGluZSApICk7Ci0KLSAgIGlmICggcm9v
dC5oYXNDb21tZW50KCBjb21tZW50QWZ0ZXIgKSApCi0gICB7Ci0gICAgICAqZG9jdW1lbnRfIDw8
ICJcbiI7Ci0gICAgICAqZG9jdW1lbnRfIDw8IG5vcm1hbGl6ZUVPTCggcm9vdC5nZXRDb21tZW50
KCBjb21tZW50QWZ0ZXIgKSApOwotICAgICAgKmRvY3VtZW50XyA8PCAiXG4iOwotICAgfQotfQot
Ci0KLWJvb2wgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZSggY29uc3Qg
VmFsdWUgJnZhbHVlICkKLXsKLSAgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KCBjb21tZW50QmVm
b3JlICkKLSAgICAgICAgICB8fCAgdmFsdWUuaGFzQ29tbWVudCggY29tbWVudEFmdGVyT25TYW1l
TGluZSApCi0gICAgICAgICAgfHwgIHZhbHVlLmhhc0NvbW1lbnQoIGNvbW1lbnRBZnRlciApOwot
fQotCi0KLXN0ZDo6c3RyaW5nIAotU3R5bGVkU3RyZWFtV3JpdGVyOjpub3JtYWxpemVFT0woIGNv
bnN0IHN0ZDo6c3RyaW5nICZ0ZXh0ICkKLXsKLSAgIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZWQ7Ci0g
ICBub3JtYWxpemVkLnJlc2VydmUoIHRleHQubGVuZ3RoKCkgKTsKLSAgIGNvbnN0IGNoYXIgKmJl
Z2luID0gdGV4dC5jX3N0cigpOwotICAgY29uc3QgY2hhciAqZW5kID0gYmVnaW4gKyB0ZXh0Lmxl
bmd0aCgpOwotICAgY29uc3QgY2hhciAqY3VycmVudCA9IGJlZ2luOwotICAgd2hpbGUgKCBjdXJy
ZW50ICE9IGVuZCApCi0gICB7Ci0gICAgICBjaGFyIGMgPSAqY3VycmVudCsrOwotICAgICAgaWYg
KCBjID09ICdccicgKSAvLyBtYWMgb3IgZG9zIEVPTAotICAgICAgewotICAgICAgICAgaWYgKCAq
Y3VycmVudCA9PSAnXG4nICkgLy8gY29udmVydCBkb3MgRU9MCi0gICAgICAgICAgICArK2N1cnJl
bnQ7Ci0gICAgICAgICBub3JtYWxpemVkICs9ICdcbic7Ci0gICAgICB9Ci0gICAgICBlbHNlIC8v
IGhhbmRsZSB1bml4IEVPTCAmIG90aGVyIGNoYXIKLSAgICAgICAgIG5vcm1hbGl6ZWQgKz0gYzsK
LSAgIH0KLSAgIHJldHVybiBub3JtYWxpemVkOworLy8gc3RhdGljCitib29sIEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7Cisg
IHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1
ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5o
YXNDb21tZW50KGNvbW1lbnRBZnRlcik7CiB9CiAKKy8vLy8vLy8vLy8vLy8vLworLy8gU3RyZWFt
V3JpdGVyCisKK1N0cmVhbVdyaXRlcjo6U3RyZWFtV3JpdGVyKCkgOiBzb3V0XyhudWxscHRyKSB7
fQorU3RyZWFtV3JpdGVyOjp+U3RyZWFtV3JpdGVyKCkgPSBkZWZhdWx0OworU3RyZWFtV3JpdGVy
OjpGYWN0b3J5Ojp+RmFjdG9yeSgpID0gZGVmYXVsdDsKK1N0cmVhbVdyaXRlckJ1aWxkZXI6OlN0
cmVhbVdyaXRlckJ1aWxkZXIoKSB7IHNldERlZmF1bHRzKCZzZXR0aW5nc18pOyB9CitTdHJlYW1X
cml0ZXJCdWlsZGVyOjp+U3RyZWFtV3JpdGVyQnVpbGRlcigpID0gZGVmYXVsdDsKK1N0cmVhbVdy
aXRlciogU3RyZWFtV3JpdGVyQnVpbGRlcjo6bmV3U3RyZWFtV3JpdGVyKCkgY29uc3QgeworICBT
dHJpbmcgaW5kZW50YXRpb24gPSBzZXR0aW5nc19bImluZGVudGF0aW9uIl0uYXNTdHJpbmcoKTsK
KyAgU3RyaW5nIGNzX3N0ciA9IHNldHRpbmdzX1siY29tbWVudFN0eWxlIl0uYXNTdHJpbmcoKTsK
KyAgU3RyaW5nIHB0X3N0ciA9IHNldHRpbmdzX1sicHJlY2lzaW9uVHlwZSJdLmFzU3RyaW5nKCk7
CisgIGJvb2wgZXljID0gc2V0dGluZ3NfWyJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSJdLmFzQm9v
bCgpOworICBib29sIGRucCA9IHNldHRpbmdzX1siZHJvcE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jv
b2woKTsKKyAgYm9vbCB1c2YgPSBzZXR0aW5nc19bInVzZVNwZWNpYWxGbG9hdHMiXS5hc0Jvb2wo
KTsKKyAgdW5zaWduZWQgaW50IHByZSA9IHNldHRpbmdzX1sicHJlY2lzaW9uIl0uYXNVSW50KCk7
CisgIENvbW1lbnRTdHlsZTo6RW51bSBjcyA9IENvbW1lbnRTdHlsZTo6QWxsOworICBpZiAoY3Nf
c3RyID09ICJBbGwiKSB7CisgICAgY3MgPSBDb21tZW50U3R5bGU6OkFsbDsKKyAgfSBlbHNlIGlm
IChjc19zdHIgPT0gIk5vbmUiKSB7CisgICAgY3MgPSBDb21tZW50U3R5bGU6Ok5vbmU7CisgIH0g
ZWxzZSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoImNvbW1lbnRTdHlsZSBtdXN0IGJlICdBbGwn
IG9yICdOb25lJyIpOworICB9CisgIFByZWNpc2lvblR5cGUgcHJlY2lzaW9uVHlwZShzaWduaWZp
Y2FudERpZ2l0cyk7CisgIGlmIChwdF9zdHIgPT0gInNpZ25pZmljYW50IikgeworICAgIHByZWNp
c2lvblR5cGUgPSBQcmVjaXNpb25UeXBlOjpzaWduaWZpY2FudERpZ2l0czsKKyAgfSBlbHNlIGlm
IChwdF9zdHIgPT0gImRlY2ltYWwiKSB7CisgICAgcHJlY2lzaW9uVHlwZSA9IFByZWNpc2lvblR5
cGU6OmRlY2ltYWxQbGFjZXM7CisgIH0gZWxzZSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoInBy
ZWNpc2lvblR5cGUgbXVzdCBiZSAnc2lnbmlmaWNhbnQnIG9yICdkZWNpbWFsJyIpOworICB9Cisg
IFN0cmluZyBjb2xvblN5bWJvbCA9ICIgOiAiOworICBpZiAoZXljKSB7CisgICAgY29sb25TeW1i
b2wgPSAiOiAiOworICB9IGVsc2UgaWYgKGluZGVudGF0aW9uLmVtcHR5KCkpIHsKKyAgICBjb2xv
blN5bWJvbCA9ICI6IjsKKyAgfQorICBTdHJpbmcgbnVsbFN5bWJvbCA9ICJudWxsIjsKKyAgaWYg
KGRucCkgeworICAgIG51bGxTeW1ib2wuY2xlYXIoKTsKKyAgfQorICBpZiAocHJlID4gMTcpCisg
ICAgcHJlID0gMTc7CisgIFN0cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbDsKKyAgcmV0dXJuIG5l
dyBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcihpbmRlbnRhdGlvbiwgY3MsIGNvbG9uU3ltYm9sLCBu
dWxsU3ltYm9sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZGluZ0xp
bmVGZWVkU3ltYm9sLCB1c2YsIHByZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmVjaXNpb25UeXBlKTsKK30KK3N0YXRpYyB2b2lkIGdldFZhbGlkV3JpdGVyS2V5cyhz
dGQ6OnNldDxTdHJpbmc+KiB2YWxpZF9rZXlzKSB7CisgIHZhbGlkX2tleXMtPmNsZWFyKCk7Cisg
IHZhbGlkX2tleXMtPmluc2VydCgiaW5kZW50YXRpb24iKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0
KCJjb21tZW50U3R5bGUiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJlbmFibGVZQU1MQ29tcGF0
aWJpbGl0eSIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImRyb3BOdWxsUGxhY2Vob2xkZXJzIik7
CisgIHZhbGlkX2tleXMtPmluc2VydCgidXNlU3BlY2lhbEZsb2F0cyIpOworICB2YWxpZF9rZXlz
LT5pbnNlcnQoInByZWNpc2lvbiIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInByZWNpc2lvblR5
cGUiKTsKK30KK2Jvb2wgU3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUoSnNvbjo6VmFsdWUq
IGludmFsaWQpIGNvbnN0IHsKKyAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKKyAgaWYgKCFpbnZh
bGlkKQorICAgIGludmFsaWQgPSAmbXlfaW52YWxpZDsgLy8gc28gd2UgZG8gbm90IG5lZWQgdG8g
dGVzdCBmb3IgTlVMTAorICBKc29uOjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7CisgIHN0ZDo6c2V0
PFN0cmluZz4gdmFsaWRfa2V5czsKKyAgZ2V0VmFsaWRXcml0ZXJLZXlzKCZ2YWxpZF9rZXlzKTsK
KyAgVmFsdWU6Ok1lbWJlcnMga2V5cyA9IHNldHRpbmdzXy5nZXRNZW1iZXJOYW1lcygpOworICBz
aXplX3QgbiA9IGtleXMuc2l6ZSgpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkg
eworICAgIFN0cmluZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKKyAgICBpZiAodmFsaWRfa2V5cy5m
aW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQoKSkgeworICAgICAgaW52W2tleV0gPSBzZXR0aW5n
c19ba2V5XTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIGludi5lbXB0eSgpOworfQorVmFsdWUmIFN0
cmVhbVdyaXRlckJ1aWxkZXI6Om9wZXJhdG9yW10oY29uc3QgU3RyaW5nJiBrZXkpIHsKKyAgcmV0
dXJuIHNldHRpbmdzX1trZXldOworfQorLy8gc3RhdGljCit2b2lkIFN0cmVhbVdyaXRlckJ1aWxk
ZXI6OnNldERlZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncykgeworICAvLyEgW1N0cmVhbVdy
aXRlckJ1aWxkZXJEZWZhdWx0c10KKyAgKCpzZXR0aW5ncylbImNvbW1lbnRTdHlsZSJdID0gIkFs
bCI7CisgICgqc2V0dGluZ3MpWyJpbmRlbnRhdGlvbiJdID0gIlx0IjsKKyAgKCpzZXR0aW5ncylb
ImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImRyb3BO
dWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbInVzZVNwZWNpYWxGbG9h
dHMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsicHJlY2lzaW9uIl0gPSAxNzsKKyAgKCpzZXR0
aW5ncylbInByZWNpc2lvblR5cGUiXSA9ICJzaWduaWZpY2FudCI7CisgIC8vISBbU3RyZWFtV3Jp
dGVyQnVpbGRlckRlZmF1bHRzXQorfQogCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoIHN0ZDo6
b3N0cmVhbSAmc291dCwgY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAgSnNvbjo6U3R5bGVkU3Ry
ZWFtV3JpdGVyIHdyaXRlcjsKLSAgIHdyaXRlci53cml0ZShzb3V0LCByb290KTsKLSAgIHJldHVy
biBzb3V0OworU3RyaW5nIHdyaXRlU3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYg
ZmFjdG9yeSwgVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgT1N0cmluZ1N0cmVhbSBzb3V0OworICBT
dHJlYW1Xcml0ZXJQdHIgY29uc3Qgd3JpdGVyKGZhY3RvcnkubmV3U3RyZWFtV3JpdGVyKCkpOwor
ICB3cml0ZXItPndyaXRlKHJvb3QsICZzb3V0KTsKKyAgcmV0dXJuIHNvdXQuc3RyKCk7CiB9CiAK
K09TdHJlYW0mIG9wZXJhdG9yPDwoT1N0cmVhbSYgc291dCwgVmFsdWUgY29uc3QmIHJvb3QpIHsK
KyAgU3RyZWFtV3JpdGVyQnVpbGRlciBidWlsZGVyOworICBTdHJlYW1Xcml0ZXJQdHIgY29uc3Qg
d3JpdGVyKGJ1aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHJvb3Qs
ICZzb3V0KTsKKyAgcmV0dXJuIHNvdXQ7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL3Njb25zY3JpcHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9z
Y29uc2NyaXB0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTdjNmM4YTA3NmM0ODgw
NTA1MDVkNTdhNjM0YmExYzkyZTBlMmNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL3Njb25zY3JpcHQKKysrIC9kZXYvbnVs
bApAQCAtMSw4ICswLDAgQEAKLUltcG9ydCggJ2VudiBidWlsZExpYnJhcnknICkKLQotYnVpbGRM
aWJyYXJ5KCBlbnYsIFNwbGl0KCAiIiIKLSAgICBqc29uX3JlYWRlci5jcHAgCi0gICAganNvbl92
YWx1ZS5jcHAgCi0gICAganNvbl93cml0ZXIuY3BwCi0gICAgICIiIiApLAotICAgICdqc29uJyAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi92ZXJzaW9uLmguaW4gYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9s
aWJfanNvbi92ZXJzaW9uLmguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNmNDM5Y2NjOGIzZmYxNGNiNGNhNjll
MGNiODEzNjY1MzM3MTNiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL3Zl
cnNpb24uaC5pbgpAQCAtMCwwICsxLDIyIEBACisvLyBETyBOT1QgRURJVC4gVGhpcyBmaWxlIChh
bmQgInZlcnNpb24iKSBpcyBhIHRlbXBsYXRlIHVzZWQgYnkgdGhlIGJ1aWxkIHN5c3RlbQorLy8g
KGVpdGhlciBDTWFrZSBvciBNZXNvbikgdG8gZ2VuZXJhdGUgYSAidmVyc2lvbi5oIiBoZWFkZXIg
ZmlsZS4KKyNpZm5kZWYgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9WRVJT
SU9OX0hfSU5DTFVERUQKKworI2RlZmluZSBKU09OQ1BQX1ZFUlNJT05fU1RSSU5HICJASlNPTkNQ
UF9WRVJTSU9OQCIKKyNkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX01BSk9SIEBKU09OQ1BQX1ZFUlNJ
T05fTUFKT1JACisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9NSU5PUiBASlNPTkNQUF9WRVJTSU9O
X01JTk9SQAorI2RlZmluZSBKU09OQ1BQX1ZFUlNJT05fUEFUQ0ggQEpTT05DUFBfVkVSU0lPTl9Q
QVRDSEAKKyNkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1FVQUxJRklFUgorI2RlZmluZSBKU09OQ1BQ
X1ZFUlNJT05fSEVYQSAoKEpTT05DUFBfVkVSU0lPTl9NQUpPUiA8PCAyNCkgXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgKEpTT05DUFBfVkVSU0lPTl9NSU5PUiA8PCAxNikgXAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKEpTT05DUFBfVkVSU0lPTl9QQVRDSCA8PCA4KSkK
KworI2lmZGVmIEpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWQorI3VuZGVmIEpTT05DUFBfVVNJ
TkdfU0VDVVJFX01FTU9SWQorI2VuZGlmCisjZGVmaW5lIEpTT05DUFBfVVNJTkdfU0VDVVJFX01F
TU9SWSBASlNPTkNQUF9VU0VfU0VDVVJFX01FTU9SWUAKKy8vIElmIG5vbi16ZXJvLCB0aGUgbGli
cmFyeSB6ZXJvZXMgYW55IG1lbW9yeSB0aGF0IGl0IGhhcyBhbGxvY2F0ZWQgYmVmb3JlCisvLyBp
dCBmcmVlcyBpdHMgbWVtb3J5LgorCisjZW5kaWYgLy8gSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3NyYy90ZXN0X2xpYl9qc29uL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYjE4MTM2MWIy
YmYyY2Y3Y2M5NzYyZmE2YjJiNDgxNmE4OWJkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Ny
Yy90ZXN0X2xpYl9qc29uL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsNDIgQEAKKyMgdmltOiBl
dCB0cz00IHN0cz00IHN3PTQgdHc9MAorCithZGRfZXhlY3V0YWJsZSgganNvbmNwcF90ZXN0Cisg
ICAgICAgICAgICAgICAganNvbnRlc3QuY3BwCisgICAgICAgICAgICAgICAganNvbnRlc3QuaAor
ICAgICAgICAgICAgICAgIGZ1enouY3BwCisgICAgICAgICAgICAgICAgZnV6ei5oCisgICAgICAg
ICAgICAgICAgbWFpbi5jcHAKKyAgICAgICAgICAgICAgICApCisKKworaWYoQlVJTERfU0hBUkVE
X0xJQlMpCisgICAgYWRkX2NvbXBpbGVfZGVmaW5pdGlvbnMoIEpTT05fRExMICkKK2VuZGlmKCkK
K3RhcmdldF9saW5rX2xpYnJhcmllcyhqc29uY3BwX3Rlc3QganNvbmNwcF9saWIpCisKKyMgYW5v
dGhlciB3YXkgdG8gc29sdmUgaXNzdWUgIzkwCisjc2V0X3RhcmdldF9wcm9wZXJ0aWVzKGpzb25j
cHBfdGVzdCBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgLWZmbG9hdC1zdG9yZSkKKworIyBSdW4g
dW5pdCB0ZXN0cyBpbiBwb3N0LWJ1aWxkCisjIChkZWZhdWx0IGNtYWtlIHdvcmtmbG93IGhpZGVz
IGF3YXkgdGhlIHRlc3QgcmVzdWx0IGludG8gYSBmaWxlLCByZXN1bHRpbmcgaW4gcG9vciBkZXYg
d29ya2Zsb3c/IT8pCitpZihKU09OQ1BQX1dJVEhfUE9TVF9CVUlMRF9VTklUVEVTVCkKKyAgICBp
ZihCVUlMRF9TSEFSRURfTElCUykKKyAgICAgICAgIyBGaXJzdCwgY29weSB0aGUgc2hhcmVkIGxp
YiwgZm9yIE1pY3Jvc29mdC4KKyAgICAgICAgIyBUaGVuLCBydW4gdGhlIHRlc3QgZXhlY3V0YWJs
ZS4KKyAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKCBUQVJHRVQganNvbmNwcF90ZXN0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUE9TVF9CVUlMRAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5X2lmX2RpZmZlcmVudCAkPFRB
UkdFVF9GSUxFOmpzb25jcHBfbGliPiAkPFRBUkdFVF9GSUxFX0RJUjpqc29uY3BwX3Rlc3Q+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09NTUFORCAke0NNQUtFX0NST1NTQ09NUElMSU5H
X0VNVUxBVE9SfSAkPFRBUkdFVF9GSUxFOmpzb25jcHBfdGVzdD4pCisgICAgZWxzZShCVUlMRF9T
SEFSRURfTElCUykKKyAgICAgICAgIyBKdXN0IHJ1biB0aGUgdGVzdCBleGVjdXRhYmxlLgorICAg
ICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoIFRBUkdFVCBqc29uY3BwX3Rlc3QKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQT1NUX0JVSUxECisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q09NTUFORCAke0NNQUtFX0NST1NTQ09NUElMSU5HX0VNVUxBVE9SfSAkPFRBUkdFVF9GSUxFOmpz
b25jcHBfdGVzdD4pCisgICAgZW5kaWYoKQorICAgICMjIENyZWF0ZSB0ZXN0cyBmb3IgZGFzaGJv
YXJkIHN1Ym1pc3Npb24sIGFsbG93cyBlYXN5IHJldmlldyBvZiBDSSByZXN1bHRzIGh0dHBzOi8v
bXkuY2Rhc2gub3JnL2luZGV4LnBocD9wcm9qZWN0PWpzb25jcHAKKyAgICBhZGRfdGVzdChOQU1F
IGpzb25jcHBfdGVzdAorICAgICAgIENPTU1BTkQgJHtDTUFLRV9DUk9TU0NPTVBJTElOR19FTVVM
QVRPUn0gICQ8VEFSR0VUX0ZJTEU6anNvbmNwcF90ZXN0PgorICAgICkKK2VuZGlmKCkKKworc2V0
X3RhcmdldF9wcm9wZXJ0aWVzKGpzb25jcHBfdGVzdCBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FIGpz
b25jcHBfdGVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vZnV6ei5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2Z1enouY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3OWYxOWZmZWU0
ZGE0NzFhYWMxZjg3NjBkZjY5ODI0ZGEwM2U1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Ny
Yy90ZXN0X2xpYl9qc29uL2Z1enouY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8vIENvcHlyaWdodCAy
MDA3LTIwMTkgVGhlIEpzb25DcHAgQXV0aG9ycworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxp
Y2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4g
eW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29w
eSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaW5jbHVkZSAi
ZnV6ei5oIgorCisjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxqc29uL2NvbmZpZy5oPgor
I2luY2x1ZGUgPGpzb24vanNvbi5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzdGRp
bnQuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZSBKc29uIHsKK2NsYXNzIEV4Y2Vw
dGlvbjsKK30KKworZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1
aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBi
dWlsZGVyOworCisgIGlmIChzaXplIDwgc2l6ZW9mKHVpbnQzMl90KSkgeworICAgIHJldHVybiAw
OworICB9CisKKyAgdWludDMyX3QgaGFzaF9zZXR0aW5ncyA9ICooY29uc3QgdWludDMyX3QqKWRh
dGE7CisgIGRhdGEgKz0gc2l6ZW9mKHVpbnQzMl90KTsKKworICBidWlsZGVyLnNldHRpbmdzX1si
ZmFpbElmRXh0cmEiXSA9IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCAwKTsKKyAgYnVpbGRlci5zZXR0
aW5nc19bImFsbG93Q29tbWVudHNfIl0gPSBoYXNoX3NldHRpbmdzICYgKDEgPDwgMSk7CisgIGJ1
aWxkZXIuc2V0dGluZ3NfWyJzdHJpY3RSb290XyJdID0gaGFzaF9zZXR0aW5ncyAmICgxIDw8IDIp
OworICBidWlsZGVyLnNldHRpbmdzX1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18iXSA9
IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCAzKTsKKyAgYnVpbGRlci5zZXR0aW5nc19bImFsbG93TnVt
ZXJpY0tleXNfIl0gPSBoYXNoX3NldHRpbmdzICYgKDEgPDwgNCk7CisgIGJ1aWxkZXIuc2V0dGlu
Z3NfWyJhbGxvd1NpbmdsZVF1b3Rlc18iXSA9IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCA1KTsKKyAg
YnVpbGRlci5zZXR0aW5nc19bImZhaWxJZkV4dHJhXyJdID0gaGFzaF9zZXR0aW5ncyAmICgxIDw8
IDYpOworICBidWlsZGVyLnNldHRpbmdzX1sicmVqZWN0RHVwS2V5c18iXSA9IGhhc2hfc2V0dGlu
Z3MgJiAoMSA8PCA3KTsKKyAgYnVpbGRlci5zZXR0aW5nc19bImFsbG93U3BlY2lhbEZsb2F0c18i
XSA9IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCA4KTsKKworICBzdGQ6OnVuaXF1ZV9wdHI8SnNvbjo6
Q2hhclJlYWRlcj4gcmVhZGVyKGJ1aWxkZXIubmV3Q2hhclJlYWRlcigpKTsKKworICBKc29uOjpW
YWx1ZSByb290OworICBjb25zdCBjaGFyKiBkYXRhX3N0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KGRhdGEpOworICB0cnkgeworICAgIHJlYWRlci0+cGFyc2UoZGF0YV9zdHIsIGRh
dGFfc3RyICsgc2l6ZSwgJnJvb3QsIG51bGxwdHIpOworICB9IGNhdGNoIChKc29uOjpFeGNlcHRp
b24gY29uc3QmKSB7CisgIH0KKyAgLy8gV2hldGhlciBpdCBzdWNjZWVkZWQgb3Igbm90IGRvZXNu
J3QgbWF0dGVyLgorICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGli
X2pzb24vZnV6ei5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9mdXp6LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDgxNmQyNzU3Y2U1ODk2OTRkZTcxYWNiYTRlYzRhYTBiNmM5NTNhYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vZnV6ei5oCkBAIC0wLDAgKzEsMTQgQEAKKy8vIENv
cHlyaWdodCAyMDA3LTIwMTAgVGhlIEpzb25DcHAgQXV0aG9ycworLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisj
aWZuZGVmIEZVWlpfSF9JTkNMVURFRAorI2RlZmluZSBGVVpaX0hfSU5DTFVERUQKKworI2luY2x1
ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK2V4dGVybiAiQyIgaW50IExMVk1G
dXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpOworCisj
ZW5kaWYgLy8gaWZuZGVmIEZVWlpfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVz
dF9saWJfanNvbi9qc29udGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0
LmNwcAppbmRleCAzMjdkMzQ0YmNlYTlmZTc2Zjk1NDZlNmUyOGEwOWRiZjljOWVmYzhlLi5jMGI1
Mjk2ZDkzNzdmNjc3MmJhYWZlYTE4YzgzYjY3ZDQ3NmQ3MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Ny
Yy90ZXN0X2xpYl9qc29uL2pzb250ZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29u
L2pzb250ZXN0LmNwcApAQCAtMSw1NzUgKzEsNDM1IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEw
IEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBp
bGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGlu
IHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNv
cHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2RlZmluZSBf
Q1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAxIC8vIFByZXZlbnRzIGRlcHJlY2F0aW9uIHdhcm5pbmcg
d2l0aCBNU1ZDCiAjaW5jbHVkZSAianNvbnRlc3QuaCIKLSNpbmNsdWRlIDxzdGRpby5oPgorI2lu
Y2x1ZGUgPGNzdGRpbz4KICNpbmNsdWRlIDxzdHJpbmc+CiAKICNpZiBkZWZpbmVkKF9NU0NfVkVS
KQogLy8gVXNlZCB0byBpbnN0YWxsIGEgcmVwb3J0IGhvb2sgdGhhdCBwcmV2ZW50IGRpYWxvZyBv
biBhc3NlcnRpb24gYW5kIGVycm9yLgotIyBpbmNsdWRlIDxjcnRkYmcuaD4KKyNpbmNsdWRlIDxj
cnRkYmcuaD4KICNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQogCiAjaWYgZGVmaW5lZChf
V0lOMzIpCiAvLyBVc2VkIHRvIHByZXZlbnQgZGlhbG9nIG9uIG1lbW9yeSBmYXVsdC4KIC8vIExp
bWl0cyBoZWFkZXJzIGluY2x1ZGVkIGJ5IFdpbmRvd3MuaAotIyBkZWZpbmUgV0lOMzJfTEVBTl9B
TkRfTUVBTgotIyBkZWZpbmUgTk9TRVJWSUNFCi0jIGRlZmluZSBOT01DWAotIyBkZWZpbmUgTk9J
TUUKLSMgZGVmaW5lIE5PU09VTkQKLSMgZGVmaW5lIE5PQ09NTQotIyBkZWZpbmUgTk9SUEMKLSMg
ZGVmaW5lIE5PR0RJCi0jIGRlZmluZSBOT1VTRVIKLSMgZGVmaW5lIE5PRFJJVkVSUwotIyBkZWZp
bmUgTk9MT0dFUlJPUgotIyBkZWZpbmUgTk9QUk9GSUxFUgotIyBkZWZpbmUgTk9NRU1NR1IKLSMg
ZGVmaW5lIE5PTEZJTEVJTwotIyBkZWZpbmUgTk9PUEVORklMRQotIyBkZWZpbmUgTk9SRVNPVVJD
RQotIyBkZWZpbmUgTk9BVE9NCi0jIGRlZmluZSBOT0xBTkdVQUdFCi0jIGRlZmluZSBOT0xTVFJJ
TkcKLSMgZGVmaW5lIE5PREJDUwotIyBkZWZpbmUgTk9LRVlCT0FSRElORk8KLSMgZGVmaW5lIE5P
R0RJQ0FQTUFTS1MKLSMgZGVmaW5lIE5PQ09MT1IKLSMgZGVmaW5lIE5PR0RJT0JKCi0jIGRlZmlu
ZSBOT0RSQVdURVhUCi0jIGRlZmluZSBOT1RFWFRNRVRSSUMKLSMgZGVmaW5lIE5PU0NBTEFCTEVG
T05UCi0jIGRlZmluZSBOT0JJVE1BUAotIyBkZWZpbmUgTk9SQVNURVJPUFMKLSMgZGVmaW5lIE5P
TUVUQUZJTEUKLSMgZGVmaW5lIE5PU1lTTUVUUklDUwotIyBkZWZpbmUgTk9TWVNURU1QQVJBTVNJ
TkZPCi0jIGRlZmluZSBOT01TRwotIyBkZWZpbmUgTk9XSU5TVFlMRVMKLSMgZGVmaW5lIE5PV0lO
T0ZGU0VUUwotIyBkZWZpbmUgTk9TSE9XV0lORE9XCi0jIGRlZmluZSBOT0RFRkVSV0lORE9XUE9T
Ci0jIGRlZmluZSBOT1ZJUlRVQUxLRVlDT0RFUwotIyBkZWZpbmUgTk9LRVlTVEFURVMKLSMgZGVm
aW5lIE5PV0gKLSMgZGVmaW5lIE5PTUVOVVMKLSMgZGVmaW5lIE5PU0NST0xMCi0jIGRlZmluZSBO
T0NMSVBCT0FSRAotIyBkZWZpbmUgTk9JQ09OUwotIyBkZWZpbmUgTk9NQgotIyBkZWZpbmUgTk9T
WVNDT01NQU5EUwotIyBkZWZpbmUgTk9NREkKLSMgZGVmaW5lIE5PQ1RMTUdSCi0jIGRlZmluZSBO
T1dJTk1FU1NBR0VTCi0jIGluY2x1ZGUgPHdpbmRvd3MuaD4KKyNkZWZpbmUgV0lOMzJfTEVBTl9B
TkRfTUVBTgorI2RlZmluZSBOT1NFUlZJQ0UKKyNkZWZpbmUgTk9NQ1gKKyNkZWZpbmUgTk9JTUUK
KyNkZWZpbmUgTk9TT1VORAorI2RlZmluZSBOT0NPTU0KKyNkZWZpbmUgTk9SUEMKKyNkZWZpbmUg
Tk9HREkKKyNkZWZpbmUgTk9VU0VSCisjZGVmaW5lIE5PRFJJVkVSUworI2RlZmluZSBOT0xPR0VS
Uk9SCisjZGVmaW5lIE5PUFJPRklMRVIKKyNkZWZpbmUgTk9NRU1NR1IKKyNkZWZpbmUgTk9MRklM
RUlPCisjZGVmaW5lIE5PT1BFTkZJTEUKKyNkZWZpbmUgTk9SRVNPVVJDRQorI2RlZmluZSBOT0FU
T00KKyNkZWZpbmUgTk9MQU5HVUFHRQorI2RlZmluZSBOT0xTVFJJTkcKKyNkZWZpbmUgTk9EQkNT
CisjZGVmaW5lIE5PS0VZQk9BUkRJTkZPCisjZGVmaW5lIE5PR0RJQ0FQTUFTS1MKKyNkZWZpbmUg
Tk9DT0xPUgorI2RlZmluZSBOT0dESU9CSgorI2RlZmluZSBOT0RSQVdURVhUCisjZGVmaW5lIE5P
VEVYVE1FVFJJQworI2RlZmluZSBOT1NDQUxBQkxFRk9OVAorI2RlZmluZSBOT0JJVE1BUAorI2Rl
ZmluZSBOT1JBU1RFUk9QUworI2RlZmluZSBOT01FVEFGSUxFCisjZGVmaW5lIE5PU1lTTUVUUklD
UworI2RlZmluZSBOT1NZU1RFTVBBUkFNU0lORk8KKyNkZWZpbmUgTk9NU0cKKyNkZWZpbmUgTk9X
SU5TVFlMRVMKKyNkZWZpbmUgTk9XSU5PRkZTRVRTCisjZGVmaW5lIE5PU0hPV1dJTkRPVworI2Rl
ZmluZSBOT0RFRkVSV0lORE9XUE9TCisjZGVmaW5lIE5PVklSVFVBTEtFWUNPREVTCisjZGVmaW5l
IE5PS0VZU1RBVEVTCisjZGVmaW5lIE5PV0gKKyNkZWZpbmUgTk9NRU5VUworI2RlZmluZSBOT1ND
Uk9MTAorI2RlZmluZSBOT0NMSVBCT0FSRAorI2RlZmluZSBOT0lDT05TCisjZGVmaW5lIE5PTUIK
KyNkZWZpbmUgTk9TWVNDT01NQU5EUworI2RlZmluZSBOT01ESQorI2RlZmluZSBOT0NUTE1HUgor
I2RlZmluZSBOT1dJTk1FU1NBR0VTCisjaW5jbHVkZSA8d2luZG93cy5oPgogI2VuZGlmIC8vIGlm
IGRlZmluZWQoX1dJTjMyKQogCiBuYW1lc3BhY2UgSnNvblRlc3QgewogCi0KIC8vIGNsYXNzIFRl
c3RSZXN1bHQKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi1UZXN0UmVzdWx0OjpUZXN0UmVzdWx0KCkKLSAgIDog
cHJlZGljYXRlSWRfKCAxICkKLSAgICwgbGFzdFVzZWRQcmVkaWNhdGVJZF8oIDAgKQotICAgLCBt
ZXNzYWdlVGFyZ2V0XyggMCApCi17Ci0gICAvLyBUaGUgcm9vdCBwcmVkaWNhdGUgaGFzIGlkIDAK
LSAgIHJvb3RQcmVkaWNhdGVOb2RlXy5pZF8gPSAwOwotICAgcm9vdFByZWRpY2F0ZU5vZGVfLm5l
eHRfID0gMDsKLSAgIHByZWRpY2F0ZVN0YWNrVGFpbF8gPSAmcm9vdFByZWRpY2F0ZU5vZGVfOwot
fQotCi0KLXZvaWQgCi1UZXN0UmVzdWx0OjpzZXRUZXN0TmFtZSggY29uc3Qgc3RkOjpzdHJpbmcg
Jm5hbWUgKQotewotICAgbmFtZV8gPSBuYW1lOwotfQotCi1UZXN0UmVzdWx0ICYKLVRlc3RSZXN1
bHQ6OmFkZEZhaWx1cmUoIGNvbnN0IGNoYXIgKmZpbGUsIHVuc2lnbmVkIGludCBsaW5lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXhwciApCi17Ci0gICAvLy8gV2Fsa3Mg
dGhlIFByZWRpY2F0ZUNvbnRleHQgc3RhY2sgYWRkaW5nIHRoZW0gdG8gZmFpbHVyZXNfIGlmIG5v
dCBhbHJlYWR5IGFkZGVkLgotICAgdW5zaWduZWQgaW50IG5lc3RpbmdMZXZlbCA9IDA7Ci0gICBQ
cmVkaWNhdGVDb250ZXh0ICpsYXN0Tm9kZSA9IHJvb3RQcmVkaWNhdGVOb2RlXy5uZXh0XzsKLSAg
IGZvciAoIDsgbGFzdE5vZGUgIT0gMDsgbGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF8gKQotICAg
ewotICAgICAgaWYgKCBsYXN0Tm9kZS0+aWRfID4gbGFzdFVzZWRQcmVkaWNhdGVJZF8gKSAvLyBu
ZXcgUHJlZGljYXRlQ29udGV4dAotICAgICAgewotICAgICAgICAgbGFzdFVzZWRQcmVkaWNhdGVJ
ZF8gPSBsYXN0Tm9kZS0+aWRfOwotICAgICAgICAgYWRkRmFpbHVyZUluZm8oIGxhc3ROb2RlLT5m
aWxlXywgbGFzdE5vZGUtPmxpbmVfLCBsYXN0Tm9kZS0+ZXhwcl8sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgbmVzdGluZ0xldmVsICk7Ci0gICAgICAgICAvLyBMaW5rIHRoZSBQcmVkaWNhdGVD
b250ZXh0IHRvIHRoZSBmYWlsdXJlIGZvciBtZXNzYWdlIHRhcmdldCB3aGVuIAotICAgICAgICAg
Ly8gcG9wcGluZyB0aGUgUHJlZGljYXRlQ29udGV4dC4KLSAgICAgICAgIGxhc3ROb2RlLT5mYWls
dXJlXyA9ICYoIGZhaWx1cmVzXy5iYWNrKCkgKTsKLSAgICAgIH0KLSAgICAgICsrbmVzdGluZ0xl
dmVsOwotICAgfQotCi0gICAvLyBBZGRzIHRoZSBmYWlsZWQgYXNzZXJ0aW9uCi0gICBhZGRGYWls
dXJlSW5mbyggZmlsZSwgbGluZSwgZXhwciwgbmVzdGluZ0xldmVsICk7Ci0gICBtZXNzYWdlVGFy
Z2V0XyA9ICYoIGZhaWx1cmVzXy5iYWNrKCkgKTsKLSAgIHJldHVybiAqdGhpczsKK1Rlc3RSZXN1
bHQ6OlRlc3RSZXN1bHQoKSB7CisgIC8vIFRoZSByb290IHByZWRpY2F0ZSBoYXMgaWQgMAorICBy
b290UHJlZGljYXRlTm9kZV8uaWRfID0gMDsKKyAgcm9vdFByZWRpY2F0ZU5vZGVfLm5leHRfID0g
bnVsbHB0cjsKKyAgcHJlZGljYXRlU3RhY2tUYWlsXyA9ICZyb290UHJlZGljYXRlTm9kZV87CiB9
CiAKLQotdm9pZCAKLVRlc3RSZXN1bHQ6OmFkZEZhaWx1cmVJbmZvKCBjb25zdCBjaGFyICpmaWxl
LCB1bnNpZ25lZCBpbnQgbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyICpleHByLCB1bnNpZ25lZCBpbnQgbmVzdGluZ0xldmVsICkKLXsKLSAgIEZhaWx1cmUgZmFp
bHVyZTsKLSAgIGZhaWx1cmUuZmlsZV8gPSBmaWxlOwotICAgZmFpbHVyZS5saW5lXyA9IGxpbmU7
Ci0gICBpZiAoIGV4cHIgKQotICAgewotICAgICAgZmFpbHVyZS5leHByXyA9IGV4cHI7Ci0gICB9
Ci0gICBmYWlsdXJlLm5lc3RpbmdMZXZlbF8gPSBuZXN0aW5nTGV2ZWw7Ci0gICBmYWlsdXJlc18u
cHVzaF9iYWNrKCBmYWlsdXJlICk7Ci19Ci0KLQotVGVzdFJlc3VsdCAmCi1UZXN0UmVzdWx0Ojpw
b3BQcmVkaWNhdGVDb250ZXh0KCkKLXsKLSAgIFByZWRpY2F0ZUNvbnRleHQgKmxhc3ROb2RlID0g
JnJvb3RQcmVkaWNhdGVOb2RlXzsKLSAgIHdoaWxlICggbGFzdE5vZGUtPm5leHRfICE9IDAgICYm
ICBsYXN0Tm9kZS0+bmV4dF8tPm5leHRfICE9IDAgKQotICAgewotICAgICAgbGFzdE5vZGUgPSBs
YXN0Tm9kZS0+bmV4dF87Ci0gICB9Ci0gICAvLyBTZXQgbWVzc2FnZSB0YXJnZXQgdG8gcG9wcGVk
IGZhaWx1cmUKLSAgIFByZWRpY2F0ZUNvbnRleHQgKnRhaWwgPSBsYXN0Tm9kZS0+bmV4dF87Ci0g
ICBpZiAoIHRhaWwgIT0gMCAgJiYgIHRhaWwtPmZhaWx1cmVfICE9IDAgKQotICAgewotICAgICAg
bWVzc2FnZVRhcmdldF8gPSB0YWlsLT5mYWlsdXJlXzsKLSAgIH0KLSAgIC8vIFJlbW92ZSB0YWls
IGZyb20gbGlzdAotICAgcHJlZGljYXRlU3RhY2tUYWlsXyA9IGxhc3ROb2RlOwotICAgbGFzdE5v
ZGUtPm5leHRfID0gMDsKLSAgIHJldHVybiAqdGhpczsKK3ZvaWQgVGVzdFJlc3VsdDo6c2V0VGVz
dE5hbWUoY29uc3QgSnNvbjo6U3RyaW5nJiBuYW1lKSB7IG5hbWVfID0gbmFtZTsgfQorCitUZXN0
UmVzdWx0JgorVGVzdFJlc3VsdDo6YWRkRmFpbHVyZShjb25zdCBjaGFyKiBmaWxlLCB1bnNpZ25l
ZCBpbnQgbGluZSwgY29uc3QgY2hhciogZXhwcikgeworICAvLy8gV2Fsa3MgdGhlIFByZWRpY2F0
ZUNvbnRleHQgc3RhY2sgYWRkaW5nIHRoZW0gdG8gZmFpbHVyZXNfIGlmIG5vdCBhbHJlYWR5Cisg
IC8vLyBhZGRlZC4KKyAgdW5zaWduZWQgaW50IG5lc3RpbmdMZXZlbCA9IDA7CisgIFByZWRpY2F0
ZUNvbnRleHQqIGxhc3ROb2RlID0gcm9vdFByZWRpY2F0ZU5vZGVfLm5leHRfOworICBmb3IgKDsg
bGFzdE5vZGUgIT0gbnVsbHB0cjsgbGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF8pIHsKKyAgICBp
ZiAobGFzdE5vZGUtPmlkXyA+IGxhc3RVc2VkUHJlZGljYXRlSWRfKSAvLyBuZXcgUHJlZGljYXRl
Q29udGV4dAorICAgIHsKKyAgICAgIGxhc3RVc2VkUHJlZGljYXRlSWRfID0gbGFzdE5vZGUtPmlk
XzsKKyAgICAgIGFkZEZhaWx1cmVJbmZvKGxhc3ROb2RlLT5maWxlXywgbGFzdE5vZGUtPmxpbmVf
LCBsYXN0Tm9kZS0+ZXhwcl8sCisgICAgICAgICAgICAgICAgICAgICBuZXN0aW5nTGV2ZWwpOwor
ICAgICAgLy8gTGluayB0aGUgUHJlZGljYXRlQ29udGV4dCB0byB0aGUgZmFpbHVyZSBmb3IgbWVz
c2FnZSB0YXJnZXQgd2hlbgorICAgICAgLy8gcG9wcGluZyB0aGUgUHJlZGljYXRlQ29udGV4dC4K
KyAgICAgIGxhc3ROb2RlLT5mYWlsdXJlXyA9ICYoZmFpbHVyZXNfLmJhY2soKSk7CisgICAgfQor
ICAgICsrbmVzdGluZ0xldmVsOworICB9CisKKyAgLy8gQWRkcyB0aGUgZmFpbGVkIGFzc2VydGlv
bgorICBhZGRGYWlsdXJlSW5mbyhmaWxlLCBsaW5lLCBleHByLCBuZXN0aW5nTGV2ZWwpOworICBt
ZXNzYWdlVGFyZ2V0XyA9ICYoZmFpbHVyZXNfLmJhY2soKSk7CisgIHJldHVybiAqdGhpczsKIH0K
IAotCi1ib29sIAotVGVzdFJlc3VsdDo6ZmFpbGVkKCkgY29uc3QKLXsKLSAgIHJldHVybiAhZmFp
bHVyZXNfLmVtcHR5KCk7Cit2b2lkIFRlc3RSZXN1bHQ6OmFkZEZhaWx1cmVJbmZvKGNvbnN0IGNo
YXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBs
aW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHByLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbmVzdGluZ0xldmVs
KSB7CisgIEZhaWx1cmUgZmFpbHVyZTsKKyAgZmFpbHVyZS5maWxlXyA9IGZpbGU7CisgIGZhaWx1
cmUubGluZV8gPSBsaW5lOworICBpZiAoZXhwcikgeworICAgIGZhaWx1cmUuZXhwcl8gPSBleHBy
OworICB9CisgIGZhaWx1cmUubmVzdGluZ0xldmVsXyA9IG5lc3RpbmdMZXZlbDsKKyAgZmFpbHVy
ZXNfLnB1c2hfYmFjayhmYWlsdXJlKTsKIH0KIAotCi11bnNpZ25lZCBpbnQgCi1UZXN0UmVzdWx0
OjpnZXRBc3NlcnRpb25OZXN0aW5nTGV2ZWwoKSBjb25zdAotewotICAgdW5zaWduZWQgaW50IGxl
dmVsID0gMDsKLSAgIGNvbnN0IFByZWRpY2F0ZUNvbnRleHQgKmxhc3ROb2RlID0gJnJvb3RQcmVk
aWNhdGVOb2RlXzsKLSAgIHdoaWxlICggbGFzdE5vZGUtPm5leHRfICE9IDAgKQotICAgewotICAg
ICAgbGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF87Ci0gICAgICArK2xldmVsOwotICAgfQotICAg
cmV0dXJuIGxldmVsOworVGVzdFJlc3VsdCYgVGVzdFJlc3VsdDo6cG9wUHJlZGljYXRlQ29udGV4
dCgpIHsKKyAgUHJlZGljYXRlQ29udGV4dCogbGFzdE5vZGUgPSAmcm9vdFByZWRpY2F0ZU5vZGVf
OworICB3aGlsZSAobGFzdE5vZGUtPm5leHRfICE9IG51bGxwdHIgJiYgbGFzdE5vZGUtPm5leHRf
LT5uZXh0XyAhPSBudWxscHRyKSB7CisgICAgbGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF87Cisg
IH0KKyAgLy8gU2V0IG1lc3NhZ2UgdGFyZ2V0IHRvIHBvcHBlZCBmYWlsdXJlCisgIFByZWRpY2F0
ZUNvbnRleHQqIHRhaWwgPSBsYXN0Tm9kZS0+bmV4dF87CisgIGlmICh0YWlsICE9IG51bGxwdHIg
JiYgdGFpbC0+ZmFpbHVyZV8gIT0gbnVsbHB0cikgeworICAgIG1lc3NhZ2VUYXJnZXRfID0gdGFp
bC0+ZmFpbHVyZV87CisgIH0KKyAgLy8gUmVtb3ZlIHRhaWwgZnJvbSBsaXN0CisgIHByZWRpY2F0
ZVN0YWNrVGFpbF8gPSBsYXN0Tm9kZTsKKyAgbGFzdE5vZGUtPm5leHRfID0gbnVsbHB0cjsKKyAg
cmV0dXJuICp0aGlzOwogfQogCi0KLXZvaWQgCi1UZXN0UmVzdWx0OjpwcmludEZhaWx1cmUoIGJv
b2wgcHJpbnRUZXN0TmFtZSApIGNvbnN0Ci17Ci0gICBpZiAoIGZhaWx1cmVzXy5lbXB0eSgpICkK
LSAgIHsKLSAgICAgIHJldHVybjsKLSAgIH0KLQotICAgaWYgKCBwcmludFRlc3ROYW1lICkKLSAg
IHsKLSAgICAgIHByaW50ZiggIiogRGV0YWlsIG9mICVzIHRlc3QgZmFpbHVyZTpcbiIsIG5hbWVf
LmNfc3RyKCkgKTsKLSAgIH0KLQotICAgLy8gUHJpbnQgaW4gcmV2ZXJzZSB0byBkaXNwbGF5IHRo
ZSBjYWxsc3RhY2sgaW4gdGhlIHJpZ2h0IG9yZGVyCi0gICBGYWlsdXJlczo6Y29uc3RfaXRlcmF0
b3IgaXRFbmQgPSBmYWlsdXJlc18uZW5kKCk7Ci0gICBmb3IgKCBGYWlsdXJlczo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBmYWlsdXJlc18uYmVnaW4oKTsgaXQgIT0gaXRFbmQ7ICsraXQgKQotICAgewot
ICAgICAgY29uc3QgRmFpbHVyZSAmZmFpbHVyZSA9ICppdDsKLSAgICAgIHN0ZDo6c3RyaW5nIGlu
ZGVudCggZmFpbHVyZS5uZXN0aW5nTGV2ZWxfICogMiwgJyAnICk7Ci0gICAgICBpZiAoIGZhaWx1
cmUuZmlsZV8gKQotICAgICAgewotICAgICAgICAgcHJpbnRmKCAiJXMlcyglZCk6ICIsIGluZGVu
dC5jX3N0cigpLCBmYWlsdXJlLmZpbGVfLCBmYWlsdXJlLmxpbmVfICk7Ci0gICAgICB9Ci0gICAg
ICBpZiAoICFmYWlsdXJlLmV4cHJfLmVtcHR5KCkgKQotICAgICAgewotICAgICAgICAgcHJpbnRm
KCAiJXNcbiIsIGZhaWx1cmUuZXhwcl8uY19zdHIoKSApOwotICAgICAgfQotICAgICAgZWxzZSBp
ZiAoIGZhaWx1cmUuZmlsZV8gKQotICAgICAgewotICAgICAgICAgcHJpbnRmKCAiXG4iICk7Ci0g
ICAgICB9Ci0gICAgICBpZiAoICFmYWlsdXJlLm1lc3NhZ2VfLmVtcHR5KCkgKQotICAgICAgewot
ICAgICAgICAgc3RkOjpzdHJpbmcgcmVpbmRlbnRlZCA9IGluZGVudFRleHQoIGZhaWx1cmUubWVz
c2FnZV8sIGluZGVudCArICIgICIgKTsKLSAgICAgICAgIHByaW50ZiggIiVzXG4iLCByZWluZGVu
dGVkLmNfc3RyKCkgKTsKLSAgICAgIH0KLSAgIH0KK2Jvb2wgVGVzdFJlc3VsdDo6ZmFpbGVkKCkg
Y29uc3QgeyByZXR1cm4gIWZhaWx1cmVzXy5lbXB0eSgpOyB9CisKK3ZvaWQgVGVzdFJlc3VsdDo6
cHJpbnRGYWlsdXJlKGJvb2wgcHJpbnRUZXN0TmFtZSkgY29uc3QgeworICBpZiAoZmFpbHVyZXNf
LmVtcHR5KCkpIHsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAocHJpbnRUZXN0TmFtZSkgewor
ICAgIHByaW50ZigiKiBEZXRhaWwgb2YgJXMgdGVzdCBmYWlsdXJlOlxuIiwgbmFtZV8uY19zdHIo
KSk7CisgIH0KKworICAvLyBQcmludCBpbiByZXZlcnNlIHRvIGRpc3BsYXkgdGhlIGNhbGxzdGFj
ayBpbiB0aGUgcmlnaHQgb3JkZXIKKyAgZm9yIChjb25zdCBhdXRvJiBmYWlsdXJlIDogZmFpbHVy
ZXNfKSB7CisgICAgSnNvbjo6U3RyaW5nIGluZGVudChmYWlsdXJlLm5lc3RpbmdMZXZlbF8gKiAy
LCAnICcpOworICAgIGlmIChmYWlsdXJlLmZpbGVfKSB7CisgICAgICBwcmludGYoIiVzJXMoJXUp
OiAiLCBpbmRlbnQuY19zdHIoKSwgZmFpbHVyZS5maWxlXywgZmFpbHVyZS5saW5lXyk7CisgICAg
fQorICAgIGlmICghZmFpbHVyZS5leHByXy5lbXB0eSgpKSB7CisgICAgICBwcmludGYoIiVzXG4i
LCBmYWlsdXJlLmV4cHJfLmNfc3RyKCkpOworICAgIH0gZWxzZSBpZiAoZmFpbHVyZS5maWxlXykg
eworICAgICAgcHJpbnRmKCJcbiIpOworICAgIH0KKyAgICBpZiAoIWZhaWx1cmUubWVzc2FnZV8u
ZW1wdHkoKSkgeworICAgICAgSnNvbjo6U3RyaW5nIHJlaW5kZW50ZWQgPSBpbmRlbnRUZXh0KGZh
aWx1cmUubWVzc2FnZV8sIGluZGVudCArICIgICIpOworICAgICAgcHJpbnRmKCIlc1xuIiwgcmVp
bmRlbnRlZC5jX3N0cigpKTsKKyAgICB9CisgIH0KIH0KIAotCi1zdGQ6OnN0cmluZyAKLVRlc3RS
ZXN1bHQ6OmluZGVudFRleHQoIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0LCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZpbmRlbnQgKQotewotICAgc3RkOjpzdHJp
bmcgcmVpbmRlbnRlZDsKLSAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbGFzdEluZGV4ID0gMDsK
LSAgIHdoaWxlICggbGFzdEluZGV4IDwgdGV4dC5zaXplKCkgKQotICAgewotICAgICAgc3RkOjpz
dHJpbmc6OnNpemVfdHlwZSBuZXh0SW5kZXggPSB0ZXh0LmZpbmQoICdcbicsIGxhc3RJbmRleCAp
OwotICAgICAgaWYgKCBuZXh0SW5kZXggPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQotICAgICAgewot
ICAgICAgICAgbmV4dEluZGV4ID0gdGV4dC5zaXplKCkgLSAxOwotICAgICAgfQotICAgICAgcmVp
bmRlbnRlZCArPSBpbmRlbnQ7Ci0gICAgICByZWluZGVudGVkICs9IHRleHQuc3Vic3RyKCBsYXN0
SW5kZXgsIG5leHRJbmRleCAtIGxhc3RJbmRleCArIDEgKTsKLSAgICAgIGxhc3RJbmRleCA9IG5l
eHRJbmRleCArIDE7Ci0gICB9Ci0gICByZXR1cm4gcmVpbmRlbnRlZDsKK0pzb246OlN0cmluZyBU
ZXN0UmVzdWx0OjppbmRlbnRUZXh0KGNvbnN0IEpzb246OlN0cmluZyYgdGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEpzb246OlN0cmluZyYgaW5kZW50KSB7
CisgIEpzb246OlN0cmluZyByZWluZGVudGVkOworICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBs
YXN0SW5kZXggPSAwOworICB3aGlsZSAobGFzdEluZGV4IDwgdGV4dC5zaXplKCkpIHsKKyAgICBK
c29uOjpTdHJpbmc6OnNpemVfdHlwZSBuZXh0SW5kZXggPSB0ZXh0LmZpbmQoJ1xuJywgbGFzdElu
ZGV4KTsKKyAgICBpZiAobmV4dEluZGV4ID09IEpzb246OlN0cmluZzo6bnBvcykgeworICAgICAg
bmV4dEluZGV4ID0gdGV4dC5zaXplKCkgLSAxOworICAgIH0KKyAgICByZWluZGVudGVkICs9IGlu
ZGVudDsKKyAgICByZWluZGVudGVkICs9IHRleHQuc3Vic3RyKGxhc3RJbmRleCwgbmV4dEluZGV4
IC0gbGFzdEluZGV4ICsgMSk7CisgICAgbGFzdEluZGV4ID0gbmV4dEluZGV4ICsgMTsKKyAgfQor
ICByZXR1cm4gcmVpbmRlbnRlZDsKIH0KIAotCi1UZXN0UmVzdWx0ICYKLVRlc3RSZXN1bHQ6OmFk
ZFRvTGFzdEZhaWx1cmUoIGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNzYWdlICkKLXsKLSAgIGlmICgg
bWVzc2FnZVRhcmdldF8gIT0gMCApCi0gICB7Ci0gICAgICBtZXNzYWdlVGFyZ2V0Xy0+bWVzc2Fn
ZV8gKz0gbWVzc2FnZTsKLSAgIH0KLSAgIHJldHVybiAqdGhpczsKK1Rlc3RSZXN1bHQmIFRlc3RS
ZXN1bHQ6OmFkZFRvTGFzdEZhaWx1cmUoY29uc3QgSnNvbjo6U3RyaW5nJiBtZXNzYWdlKSB7Cisg
IGlmIChtZXNzYWdlVGFyZ2V0XyAhPSBudWxscHRyKSB7CisgICAgbWVzc2FnZVRhcmdldF8tPm1l
c3NhZ2VfICs9IG1lc3NhZ2U7CisgIH0KKyAgcmV0dXJuICp0aGlzOwogfQogCi1UZXN0UmVzdWx0
ICYKLVRlc3RSZXN1bHQ6Om9wZXJhdG9yIDw8ICggSnNvbjo6SW50NjQgdmFsdWUgKSB7Ci0gICBy
ZXR1cm4gYWRkVG9MYXN0RmFpbHVyZSggSnNvbjo6dmFsdWVUb1N0cmluZyh2YWx1ZSkgKTsKK1Rl
c3RSZXN1bHQmIFRlc3RSZXN1bHQ6Om9wZXJhdG9yPDwoSnNvbjo6SW50NjQgdmFsdWUpIHsKKyAg
cmV0dXJuIGFkZFRvTGFzdEZhaWx1cmUoSnNvbjo6dmFsdWVUb1N0cmluZyh2YWx1ZSkpOwogfQog
Ci0KLVRlc3RSZXN1bHQgJgotVGVzdFJlc3VsdDo6b3BlcmF0b3IgPDwgKCBKc29uOjpVSW50NjQg
dmFsdWUgKSB7Ci0gICByZXR1cm4gYWRkVG9MYXN0RmFpbHVyZSggSnNvbjo6dmFsdWVUb1N0cmlu
Zyh2YWx1ZSkgKTsKK1Rlc3RSZXN1bHQmIFRlc3RSZXN1bHQ6Om9wZXJhdG9yPDwoSnNvbjo6VUlu
dDY0IHZhbHVlKSB7CisgIHJldHVybiBhZGRUb0xhc3RGYWlsdXJlKEpzb246OnZhbHVlVG9TdHJp
bmcodmFsdWUpKTsKIH0KIAotCi1UZXN0UmVzdWx0ICYKLVRlc3RSZXN1bHQ6Om9wZXJhdG9yIDw8
ICggYm9vbCB2YWx1ZSApIHsKLSAgIHJldHVybiBhZGRUb0xhc3RGYWlsdXJlKHZhbHVlID8gInRy
dWUiIDogImZhbHNlIik7CitUZXN0UmVzdWx0JiBUZXN0UmVzdWx0OjpvcGVyYXRvcjw8KGJvb2wg
dmFsdWUpIHsKKyAgcmV0dXJuIGFkZFRvTGFzdEZhaWx1cmUodmFsdWUgPyAidHJ1ZSIgOiAiZmFs
c2UiKTsKIH0KIAotCiAvLyBjbGFzcyBUZXN0Q2FzZQogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLVRlc3RDYXNl
OjpUZXN0Q2FzZSgpCi0gICA6IHJlc3VsdF8oIDAgKQotewotfQotCi0KLVRlc3RDYXNlOjp+VGVz
dENhc2UoKQotewotfQorVGVzdENhc2U6OlRlc3RDYXNlKCkgPSBkZWZhdWx0OwogCitUZXN0Q2Fz
ZTo6flRlc3RDYXNlKCkgPSBkZWZhdWx0OwogCi12b2lkIAotVGVzdENhc2U6OnJ1biggVGVzdFJl
c3VsdCAmcmVzdWx0ICkKLXsKLSAgIHJlc3VsdF8gPSAmcmVzdWx0OwotICAgcnVuVGVzdENhc2Uo
KTsKK3ZvaWQgVGVzdENhc2U6OnJ1bihUZXN0UmVzdWx0JiByZXN1bHQpIHsKKyAgcmVzdWx0XyA9
ICZyZXN1bHQ7CisgIHJ1blRlc3RDYXNlKCk7CiB9CiAKLQotCiAvLyBjbGFzcyBSdW5uZXIKIC8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwogCi1SdW5uZXI6OlJ1bm5lcigpCi17Ci19CitSdW5uZXI6OlJ1bm5lcigpID0g
ZGVmYXVsdDsKIAotCi1SdW5uZXIgJgotUnVubmVyOjphZGQoIFRlc3RDYXNlRmFjdG9yeSBmYWN0
b3J5ICkKLXsKLSAgIHRlc3RzXy5wdXNoX2JhY2soIGZhY3RvcnkgKTsKLSAgIHJldHVybiAqdGhp
czsKLX0KLQotCi11bnNpZ25lZCBpbnQgCi1SdW5uZXI6OnRlc3RDb3VudCgpIGNvbnN0Ci17Ci0g
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PiggdGVzdHNfLnNpemUoKSApOworUnVu
bmVyJiBSdW5uZXI6OmFkZChUZXN0Q2FzZUZhY3RvcnkgZmFjdG9yeSkgeworICB0ZXN0c18ucHVz
aF9iYWNrKGZhY3RvcnkpOworICByZXR1cm4gKnRoaXM7CiB9CiAKK3NpemVfdCBSdW5uZXI6OnRl
c3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIHRlc3RzXy5zaXplKCk7IH0KIAotc3RkOjpzdHJpbmcg
Ci1SdW5uZXI6OnRlc3ROYW1lQXQoIHVuc2lnbmVkIGludCBpbmRleCApIGNvbnN0Ci17Ci0gICBU
ZXN0Q2FzZSAqdGVzdCA9IHRlc3RzX1tpbmRleF0oKTsKLSAgIHN0ZDo6c3RyaW5nIG5hbWUgPSB0
ZXN0LT50ZXN0TmFtZSgpOwotICAgZGVsZXRlIHRlc3Q7Ci0gICByZXR1cm4gbmFtZTsKK0pzb246
OlN0cmluZyBSdW5uZXI6OnRlc3ROYW1lQXQoc2l6ZV90IGluZGV4KSBjb25zdCB7CisgIFRlc3RD
YXNlKiB0ZXN0ID0gdGVzdHNfW2luZGV4XSgpOworICBKc29uOjpTdHJpbmcgbmFtZSA9IHRlc3Qt
PnRlc3ROYW1lKCk7CisgIGRlbGV0ZSB0ZXN0OworICByZXR1cm4gbmFtZTsKIH0KIAotCi12b2lk
IAotUnVubmVyOjpydW5UZXN0QXQoIHVuc2lnbmVkIGludCBpbmRleCwgVGVzdFJlc3VsdCAmcmVz
dWx0ICkgY29uc3QKLXsKLSAgIFRlc3RDYXNlICp0ZXN0ID0gdGVzdHNfW2luZGV4XSgpOwotICAg
cmVzdWx0LnNldFRlc3ROYW1lKCB0ZXN0LT50ZXN0TmFtZSgpICk7Ci0gICBwcmludGYoICJUZXN0
aW5nICVzOiAiLCB0ZXN0LT50ZXN0TmFtZSgpICk7Ci0gICBmZmx1c2goIHN0ZG91dCApOwordm9p
ZCBSdW5uZXI6OnJ1blRlc3RBdChzaXplX3QgaW5kZXgsIFRlc3RSZXN1bHQmIHJlc3VsdCkgY29u
c3QgeworICBUZXN0Q2FzZSogdGVzdCA9IHRlc3RzX1tpbmRleF0oKTsKKyAgcmVzdWx0LnNldFRl
c3ROYW1lKHRlc3QtPnRlc3ROYW1lKCkpOworICBwcmludGYoIlRlc3RpbmcgJXM6ICIsIHRlc3Qt
PnRlc3ROYW1lKCkpOworICBmZmx1c2goc3Rkb3V0KTsKICNpZiBKU09OX1VTRV9FWENFUFRJT04K
LSAgIHRyeSAKLSAgIHsKKyAgdHJ5IHsKICNlbmRpZiAvLyBpZiBKU09OX1VTRV9FWENFUFRJT04K
LSAgICAgIHRlc3QtPnJ1biggcmVzdWx0ICk7CisgICAgdGVzdC0+cnVuKHJlc3VsdCk7CiAjaWYg
SlNPTl9VU0VfRVhDRVBUSU9OCi0gICB9IAotICAgY2F0Y2ggKCBjb25zdCBzdGQ6OmV4Y2VwdGlv
biAmZSApIAotICAgewotICAgICAgcmVzdWx0LmFkZEZhaWx1cmUoIF9fRklMRV9fLCBfX0xJTkVf
XywgCi0gICAgICAgICAiVW5leHBlY3RlZCBleGNlcHRpb24gY2F1Z2h0OiIgKSA8PCBlLndoYXQo
KTsKLSAgIH0KKyAgfSBjYXRjaCAoY29uc3Qgc3RkOjpleGNlcHRpb24mIGUpIHsKKyAgICByZXN1
bHQuYWRkRmFpbHVyZShfX0ZJTEVfXywgX19MSU5FX18sICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiBj
YXVnaHQ6IikKKyAgICAgICAgPDwgZS53aGF0KCk7CisgIH0KICNlbmRpZiAvLyBpZiBKU09OX1VT
RV9FWENFUFRJT04KLSAgIGRlbGV0ZSB0ZXN0OwotICAgY29uc3QgY2hhciAqc3RhdHVzID0gcmVz
dWx0LmZhaWxlZCgpID8gIkZBSUxFRCIgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOiAiT0siOwotICAgcHJpbnRmKCAiJXNcbiIsIHN0YXR1cyApOwotICAgZmZsdXNo
KCBzdGRvdXQgKTsKKyAgZGVsZXRlIHRlc3Q7CisgIGNvbnN0IGNoYXIqIHN0YXR1cyA9IHJlc3Vs
dC5mYWlsZWQoKSA/ICJGQUlMRUQiIDogIk9LIjsKKyAgcHJpbnRmKCIlc1xuIiwgc3RhdHVzKTsK
KyAgZmZsdXNoKHN0ZG91dCk7CiB9CiAKK2Jvb2wgUnVubmVyOjpydW5BbGxUZXN0KGJvb2wgcHJp
bnRTdW1tYXJ5KSBjb25zdCB7CisgIHNpemVfdCBjb25zdCBjb3VudCA9IHRlc3RDb3VudCgpOwor
ICBzdGQ6OmRlcXVlPFRlc3RSZXN1bHQ+IGZhaWx1cmVzOworICBmb3IgKHNpemVfdCBpbmRleCA9
IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICBUZXN0UmVzdWx0IHJlc3VsdDsKKyAg
ICBydW5UZXN0QXQoaW5kZXgsIHJlc3VsdCk7CisgICAgaWYgKHJlc3VsdC5mYWlsZWQoKSkgewor
ICAgICAgZmFpbHVyZXMucHVzaF9iYWNrKHJlc3VsdCk7CisgICAgfQorICB9CisKKyAgaWYgKGZh
aWx1cmVzLmVtcHR5KCkpIHsKKyAgICBpZiAocHJpbnRTdW1tYXJ5KSB7CisgICAgICBwcmludGYo
IkFsbCAlenUgdGVzdHMgcGFzc2VkXG4iLCBjb3VudCk7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworICB9IGVsc2UgeworICAgIGZvciAoYXV0byYgcmVzdWx0IDogZmFpbHVyZXMpIHsKKyAgICAg
IHJlc3VsdC5wcmludEZhaWx1cmUoY291bnQgPiAxKTsKKyAgICB9CisKKyAgICBpZiAocHJpbnRT
dW1tYXJ5KSB7CisgICAgICBzaXplX3QgY29uc3QgZmFpbGVkQ291bnQgPSBmYWlsdXJlcy5zaXpl
KCk7CisgICAgICBzaXplX3QgY29uc3QgcGFzc2VkQ291bnQgPSBjb3VudCAtIGZhaWxlZENvdW50
OworICAgICAgcHJpbnRmKCIlenUvJXp1IHRlc3RzIHBhc3NlZCAoJXp1IGZhaWx1cmUocykpXG4i
LCBwYXNzZWRDb3VudCwgY291bnQsCisgICAgICAgICAgICAgZmFpbGVkQ291bnQpOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KIAotYm9vbCAKLVJ1bm5lcjo6cnVuQWxsVGVzdCgg
Ym9vbCBwcmludFN1bW1hcnkgKSBjb25zdAotewotICAgdW5zaWduZWQgaW50IGNvdW50ID0gdGVz
dENvdW50KCk7Ci0gICBzdGQ6OmRlcXVlPFRlc3RSZXN1bHQ+IGZhaWx1cmVzOwotICAgZm9yICgg
dW5zaWduZWQgaW50IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCApCi0gICB7Ci0g
ICAgICBUZXN0UmVzdWx0IHJlc3VsdDsKLSAgICAgIHJ1blRlc3RBdCggaW5kZXgsIHJlc3VsdCAp
OwotICAgICAgaWYgKCByZXN1bHQuZmFpbGVkKCkgKQotICAgICAgewotICAgICAgICAgZmFpbHVy
ZXMucHVzaF9iYWNrKCByZXN1bHQgKTsKLSAgICAgIH0KLSAgIH0KLQotICAgaWYgKCBmYWlsdXJl
cy5lbXB0eSgpICkKLSAgIHsKLSAgICAgIGlmICggcHJpbnRTdW1tYXJ5ICkKLSAgICAgIHsKLSAg
ICAgICAgIHByaW50ZiggIkFsbCAlZCB0ZXN0cyBwYXNzZWRcbiIsIGNvdW50ICk7Ci0gICAgICB9
Citib29sIFJ1bm5lcjo6dGVzdEluZGV4KGNvbnN0IEpzb246OlN0cmluZyYgdGVzdE5hbWUsIHNp
emVfdCYgaW5kZXhPdXQpIGNvbnN0IHsKKyAgY29uc3Qgc2l6ZV90IGNvdW50ID0gdGVzdENvdW50
KCk7CisgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgewor
ICAgIGlmICh0ZXN0TmFtZUF0KGluZGV4KSA9PSB0ZXN0TmFtZSkgeworICAgICAgaW5kZXhPdXQg
PSBpbmRleDsKICAgICAgIHJldHVybiB0cnVlOwotICAgfQotICAgZWxzZQotICAgewotICAgICAg
Zm9yICggdW5zaWduZWQgaW50IGluZGV4ID0gMDsgaW5kZXggPCBmYWlsdXJlcy5zaXplKCk7ICsr
aW5kZXggKQotICAgICAgewotICAgICAgICAgVGVzdFJlc3VsdCAmcmVzdWx0ID0gZmFpbHVyZXNb
aW5kZXhdOwotICAgICAgICAgcmVzdWx0LnByaW50RmFpbHVyZSggY291bnQgPiAxICk7Ci0gICAg
ICB9Ci0KLSAgICAgIGlmICggcHJpbnRTdW1tYXJ5ICkKLSAgICAgIHsKLSAgICAgICAgIHVuc2ln
bmVkIGludCBmYWlsZWRDb3VudCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oIGZhaWx1cmVz
LnNpemUoKSApOwotICAgICAgICAgdW5zaWduZWQgaW50IHBhc3NlZENvdW50ID0gY291bnQgLSBm
YWlsZWRDb3VudDsKLSAgICAgICAgIHByaW50ZiggIiVkLyVkIHRlc3RzIHBhc3NlZCAoJWQgZmFp
bHVyZShzKSlcbiIsIHBhc3NlZENvdW50LCBjb3VudCwgZmFpbGVkQ291bnQgKTsKLSAgICAgIH0K
LSAgICAgIHJldHVybiBmYWxzZTsKLSAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuIGZhbHNlOwog
fQogCi0KLWJvb2wgCi1SdW5uZXI6OnRlc3RJbmRleCggY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3RO
YW1lLCAKLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgJmluZGV4T3V0ICkgY29uc3QK
LXsKLSAgIHVuc2lnbmVkIGludCBjb3VudCA9IHRlc3RDb3VudCgpOwotICAgZm9yICggdW5zaWdu
ZWQgaW50IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCApCi0gICB7Ci0gICAgICBp
ZiAoIHRlc3ROYW1lQXQoaW5kZXgpID09IHRlc3ROYW1lICkKLSAgICAgIHsKLSAgICAgICAgIGlu
ZGV4T3V0ID0gaW5kZXg7Ci0gICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0KLSAgIH0KLSAg
IHJldHVybiBmYWxzZTsKK3ZvaWQgUnVubmVyOjpsaXN0VGVzdHMoKSBjb25zdCB7CisgIGNvbnN0
IHNpemVfdCBjb3VudCA9IHRlc3RDb3VudCgpOworICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICBwcmludGYoIiVzXG4iLCB0ZXN0TmFtZUF0KGlu
ZGV4KS5jX3N0cigpKTsKKyAgfQogfQogCi0KLXZvaWQgCi1SdW5uZXI6Omxpc3RUZXN0cygpIGNv
bnN0Ci17Ci0gICB1bnNpZ25lZCBpbnQgY291bnQgPSB0ZXN0Q291bnQoKTsKLSAgIGZvciAoIHVu
c2lnbmVkIGludCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXggKQotICAgewotICAg
ICAgcHJpbnRmKCAiJXNcbiIsIHRlc3ROYW1lQXQoIGluZGV4ICkuY19zdHIoKSApOwotICAgfQot
fQotCi0KLWludCAKLVJ1bm5lcjo6cnVuQ29tbWFuZExpbmUoIGludCBhcmdjLCBjb25zdCBjaGFy
ICphcmd2W10gKSBjb25zdAotewotICAgdHlwZWRlZiBzdGQ6OmRlcXVlPHN0ZDo6c3RyaW5nPiBU
ZXN0TmFtZXM7Ci0gICBSdW5uZXIgc3VicnVubmVyOwotICAgZm9yICggaW50IGluZGV4ID0gMTsg
aW5kZXggPCBhcmdjOyArK2luZGV4ICkKLSAgIHsKLSAgICAgIHN0ZDo6c3RyaW5nIG9wdCA9IGFy
Z3ZbaW5kZXhdOwotICAgICAgaWYgKCBvcHQgPT0gIi0tbGlzdC10ZXN0cyIgKQotICAgICAgewot
ICAgICAgICAgbGlzdFRlc3RzKCk7Ci0gICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0KLSAgICAg
IGVsc2UgaWYgKCBvcHQgPT0gIi0tdGVzdC1hdXRvIiApCi0gICAgICB7Ci0gICAgICAgICBwcmV2
ZW50RGlhbG9nT25DcmFzaCgpOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoIG9wdCA9PSAiLS10
ZXN0IiApCi0gICAgICB7Ci0gICAgICAgICArK2luZGV4OwotICAgICAgICAgaWYgKCBpbmRleCA8
IGFyZ2MgKQotICAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgaW50IHRlc3ROYW1lSW5k
ZXg7Ci0gICAgICAgICAgICBpZiAoIHRlc3RJbmRleCggYXJndltpbmRleF0sIHRlc3ROYW1lSW5k
ZXggKSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICBzdWJydW5uZXIuYWRkKCB0ZXN0
c19bdGVzdE5hbWVJbmRleF0gKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIGZwcmludGYoIHN0ZGVyciwgIlRlc3QgJyVzJyBk
b2VzIG5vdCBleGlzdCFcbiIsIGFyZ3ZbaW5kZXhdICk7Ci0gICAgICAgICAgICAgICByZXR1cm4g
MjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGVsc2UKLSAgICAgICAgIHsK
LSAgICAgICAgICAgIHByaW50VXNhZ2UoIGFyZ3ZbMF0gKTsKLSAgICAgICAgICAgIHJldHVybiAy
OwotICAgICAgICAgfQoraW50IFJ1bm5lcjo6cnVuQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNvbnN0
IGNoYXIqIGFyZ3ZbXSkgY29uc3QgeworICAvLyB0eXBlZGVmIHN0ZDo6ZGVxdWU8U3RyaW5nPiBU
ZXN0TmFtZXM7CisgIFJ1bm5lciBzdWJydW5uZXI7CisgIGZvciAoaW50IGluZGV4ID0gMTsgaW5k
ZXggPCBhcmdjOyArK2luZGV4KSB7CisgICAgSnNvbjo6U3RyaW5nIG9wdCA9IGFyZ3ZbaW5kZXhd
OworICAgIGlmIChvcHQgPT0gIi0tbGlzdC10ZXN0cyIpIHsKKyAgICAgIGxpc3RUZXN0cygpOwor
ICAgICAgcmV0dXJuIDA7CisgICAgfSBlbHNlIGlmIChvcHQgPT0gIi0tdGVzdC1hdXRvIikgewor
ICAgICAgcHJldmVudERpYWxvZ09uQ3Jhc2goKTsKKyAgICB9IGVsc2UgaWYgKG9wdCA9PSAiLS10
ZXN0IikgeworICAgICAgKytpbmRleDsKKyAgICAgIGlmIChpbmRleCA8IGFyZ2MpIHsKKyAgICAg
ICAgc2l6ZV90IHRlc3ROYW1lSW5kZXg7CisgICAgICAgIGlmICh0ZXN0SW5kZXgoYXJndltpbmRl
eF0sIHRlc3ROYW1lSW5kZXgpKSB7CisgICAgICAgICAgc3VicnVubmVyLmFkZCh0ZXN0c19bdGVz
dE5hbWVJbmRleF0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiVGVzdCAnJXMnIGRvZXMgbm90IGV4aXN0IVxuIiwgYXJndltpbmRleF0pOworICAgICAgICAg
IHJldHVybiAyOworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICBwcmludFVzYWdl
KGFyZ3ZbMF0pOworICAgICAgICByZXR1cm4gMjsKICAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAg
IHsKLSAgICAgICAgIHByaW50VXNhZ2UoIGFyZ3ZbMF0gKTsKLSAgICAgICAgIHJldHVybiAyOwot
ICAgICAgfQotICAgfQotICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICBpZiAoIHN1YnJ1bm5lci50ZXN0
Q291bnQoKSA+IDAgKQotICAgewotICAgICAgc3VjY2VlZGVkID0gc3VicnVubmVyLnJ1bkFsbFRl
c3QoIHN1YnJ1bm5lci50ZXN0Q291bnQoKSA+IDEgKTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAg
ICAgIHN1Y2NlZWRlZCA9IHJ1bkFsbFRlc3QoIHRydWUgKTsKLSAgIH0KLSAgIHJldHVybiBzdWNj
ZWVkZWQgPyAwIAotICAgICAgICAgICAgICAgICAgICA6IDE7CisgICAgfSBlbHNlIHsKKyAgICAg
IHByaW50VXNhZ2UoYXJndlswXSk7CisgICAgICByZXR1cm4gMjsKKyAgICB9CisgIH0KKyAgYm9v
bCBzdWNjZWVkZWQ7CisgIGlmIChzdWJydW5uZXIudGVzdENvdW50KCkgPiAwKSB7CisgICAgc3Vj
Y2VlZGVkID0gc3VicnVubmVyLnJ1bkFsbFRlc3Qoc3VicnVubmVyLnRlc3RDb3VudCgpID4gMSk7
CisgIH0gZWxzZSB7CisgICAgc3VjY2VlZGVkID0gcnVuQWxsVGVzdCh0cnVlKTsKKyAgfQorICBy
ZXR1cm4gc3VjY2VlZGVkID8gMCA6IDE7CiB9CiAKLQotI2lmIGRlZmluZWQoX01TQ19WRVIpCisj
aWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVmaW5lZChfREVCVUcpCiAvLyBIb29rIE1TVkNSVCBh
c3NlcnRpb25zIHRvIHByZXZlbnQgZGlhbG9nIGZyb20gYXBwZWFyaW5nCi1zdGF0aWMgaW50IAot
bXN2Y3J0U2lsZW50UmVwb3J0SG9vayggaW50IHJlcG9ydFR5cGUsIGNoYXIgKm1lc3NhZ2UsIGlu
dCAqcmV0dXJuVmFsdWUgKQotewotICAgLy8gVGhlIGRlZmF1bHQgQ1JUIGhhbmRsaW5nIG9mIGVy
cm9yIGFuZCBhc3NlcnRpb24gaXMgdG8gZGlzcGxheQotICAgLy8gYW4gZXJyb3IgZGlhbG9nIHRv
IHRoZSB1c2VyLgotICAgLy8gSW5zdGVhZCwgd2hlbiBhbiBlcnJvciBvciBhbiBhc3NlcnRpb24g
b2NjdXJzLCB3ZSBmb3JjZSB0aGUgCi0gICAvLyBhcHBsaWNhdGlvbiB0byB0ZXJtaW5hdGUgdXNp
bmcgYWJvcnQoKSBhZnRlciBkaXNwbGF5Ci0gICAvLyB0aGUgbWVzc2FnZSBvbiBzdGRlcnIuIAot
ICAgaWYgKCByZXBvcnRUeXBlID09IF9DUlRfRVJST1IgIHx8ICAKLSAgICAgICAgcmVwb3J0VHlw
ZSA9PSBfQ1JUX0FTU0VSVCApCi0gICB7Ci0gICAgICAvLyBjYWxsaW5nIGFib3J0KCkgY2F1c2Ug
dGhlIFJlcG9ydEhvb2sgdG8gYmUgY2FsbGVkCi0gICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIHVz
ZWQgdG8gZGV0ZWN0IHRoaXMgY2FzZSBhbmQgbGV0J3MgdGhlCi0gICAgICAvLyBlcnJvciBoYW5k
bGVyIGZhbGxiYWNrIG9uIGl0cyBkZWZhdWx0IGJlaGF2aW91ciAoCi0gICAgICAvLyBkaXNwbGF5
IGEgd2FybmluZyBtZXNzYWdlKQotICAgICAgc3RhdGljIHZvbGF0aWxlIGJvb2wgaXNBYm9ydGlu
ZyA9IGZhbHNlOwotICAgICAgaWYgKCBpc0Fib3J0aW5nICkgCi0gICAgICB7Ci0gICAgICAgICBy
ZXR1cm4gVFJVRTsKLSAgICAgIH0KLSAgICAgIGlzQWJvcnRpbmcgPSB0cnVlOwotCi0gICAgICBm
cHJpbnRmKCBzdGRlcnIsICJDUlQgRXJyb3IvQXNzZXJ0OlxuJXNcbiIsIG1lc3NhZ2UgKTsKLSAg
ICAgIGZmbHVzaCggc3RkZXJyICk7Ci0gICAgICBhYm9ydCgpOwotICAgfQotICAgLy8gTGV0J3Mg
b3RoZXIgcmVwb3J0VHlwZSAoX0NSVF9XQVJOSU5HKSBiZSBoYW5kbGVkIGFzIHRoZXkgd291bGQg
YnkgZGVmYXVsdAotICAgcmV0dXJuIEZBTFNFOworc3RhdGljIGludAorbXN2Y3J0U2lsZW50UmVw
b3J0SG9vayhpbnQgcmVwb3J0VHlwZSwgY2hhciogbWVzc2FnZSwgaW50KiAvKnJldHVyblZhbHVl
Ki8pIHsKKyAgLy8gVGhlIGRlZmF1bHQgQ1JUIGhhbmRsaW5nIG9mIGVycm9yIGFuZCBhc3NlcnRp
b24gaXMgdG8gZGlzcGxheQorICAvLyBhbiBlcnJvciBkaWFsb2cgdG8gdGhlIHVzZXIuCisgIC8v
IEluc3RlYWQsIHdoZW4gYW4gZXJyb3Igb3IgYW4gYXNzZXJ0aW9uIG9jY3Vycywgd2UgZm9yY2Ug
dGhlCisgIC8vIGFwcGxpY2F0aW9uIHRvIHRlcm1pbmF0ZSB1c2luZyBhYm9ydCgpIGFmdGVyIGRp
c3BsYXkKKyAgLy8gdGhlIG1lc3NhZ2Ugb24gc3RkZXJyLgorICBpZiAocmVwb3J0VHlwZSA9PSBf
Q1JUX0VSUk9SIHx8IHJlcG9ydFR5cGUgPT0gX0NSVF9BU1NFUlQpIHsKKyAgICAvLyBjYWxsaW5n
IGFib3J0KCkgY2F1c2UgdGhlIFJlcG9ydEhvb2sgdG8gYmUgY2FsbGVkCisgICAgLy8gVGhlIGZv
bGxvd2luZyBpcyB1c2VkIHRvIGRldGVjdCB0aGlzIGNhc2UgYW5kIGxldCdzIHRoZQorICAgIC8v
IGVycm9yIGhhbmRsZXIgZmFsbGJhY2sgb24gaXRzIGRlZmF1bHQgYmVoYXZpb3VyICgKKyAgICAv
LyBkaXNwbGF5IGEgd2FybmluZyBtZXNzYWdlKQorICAgIHN0YXRpYyB2b2xhdGlsZSBib29sIGlz
QWJvcnRpbmcgPSBmYWxzZTsKKyAgICBpZiAoaXNBYm9ydGluZykgeworICAgICAgcmV0dXJuIFRS
VUU7CisgICAgfQorICAgIGlzQWJvcnRpbmcgPSB0cnVlOworCisgICAgZnByaW50ZihzdGRlcnIs
ICJDUlQgRXJyb3IvQXNzZXJ0OlxuJXNcbiIsIG1lc3NhZ2UpOworICAgIGZmbHVzaChzdGRlcnIp
OworICAgIGFib3J0KCk7CisgIH0KKyAgLy8gTGV0J3Mgb3RoZXIgcmVwb3J0VHlwZSAoX0NSVF9X
QVJOSU5HKSBiZSBoYW5kbGVkIGFzIHRoZXkgd291bGQgYnkgZGVmYXVsdAorICByZXR1cm4gRkFM
U0U7CiB9CiAjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKIAotCi12b2lkIAotUnVubmVy
OjpwcmV2ZW50RGlhbG9nT25DcmFzaCgpCi17Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSAgIC8v
IEluc3RhbGwgYSBob29rIHRvIHByZXZlbnQgTVNWQ1JUIGVycm9yIGFuZCBhc3NlcnRpb24gZnJv
bQotICAgLy8gcG9wcGluZyBhIGRpYWxvZy4KLSAgIF9DcnRTZXRSZXBvcnRIb29rKCAmbXN2Y3J0
U2lsZW50UmVwb3J0SG9vayApOwordm9pZCBSdW5uZXI6OnByZXZlbnREaWFsb2dPbkNyYXNoKCkg
eworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIGRlZmluZWQoX0RFQlVHKQorICAvLyBJbnN0YWxs
IGEgaG9vayB0byBwcmV2ZW50IE1TVkNSVCBlcnJvciBhbmQgYXNzZXJ0aW9uIGZyb20KKyAgLy8g
cG9wcGluZyBhIGRpYWxvZworICAvLyBUaGlzIGZ1bmN0aW9uIGEgTk8tT1AgaW4gcmVsZWFzZSBj
b25maWd1cmF0aW9uCisgIC8vICh3aGljaCBjYXVzZSB3YXJuaW5nIHNpbmNlIG1zdmNydFNpbGVu
dFJlcG9ydEhvb2sgaXMgbm90IHJlZmVyZW5jZWQpCisgIF9DcnRTZXRSZXBvcnRIb29rKCZtc3Zj
cnRTaWxlbnRSZXBvcnRIb29rKTsKICNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQogCi0g
ICAvLyBAdG9kbyBpbnZlc3RpZ3VhdGUgdGhpcyBoYW5kbGVyIChmb3IgYnVmZmVyIG92ZXJmbG93
KQotICAgLy8gX3NldF9zZWN1cml0eV9lcnJvcl9oYW5kbGVyCisgIC8vIEB0b2RvIGludmVzdGln
YXRlIHRoaXMgaGFuZGxlciAoZm9yIGJ1ZmZlciBvdmVyZmxvdykKKyAgLy8gX3NldF9zZWN1cml0
eV9lcnJvcl9oYW5kbGVyCiAKICNpZiBkZWZpbmVkKF9XSU4zMikKLSAgIC8vIFByZXZlbnRzIHRo
ZSBzeXN0ZW0gZnJvbSBwb3BwaW5nIGEgZGlhbG9nIGZvciBkZWJ1Z2dpbmcgaWYgdGhlCi0gICAv
LyBhcHBsaWNhdGlvbiBmYWlscyBkdWUgdG8gaW52YWxpZCBtZW1vcnkgYWNjZXNzLgotICAgU2V0
RXJyb3JNb2RlKCBTRU1fRkFJTENSSVRJQ0FMRVJST1JTIAotICAgICAgICAgICAgICAgICB8IFNF
TV9OT0dQRkFVTFRFUlJPUkJPWCAKLSAgICAgICAgICAgICAgICAgfCBTRU1fTk9PUEVORklMRUVS
Uk9SQk9YICk7CisgIC8vIFByZXZlbnRzIHRoZSBzeXN0ZW0gZnJvbSBwb3BwaW5nIGEgZGlhbG9n
IGZvciBkZWJ1Z2dpbmcgaWYgdGhlCisgIC8vIGFwcGxpY2F0aW9uIGZhaWxzIGR1ZSB0byBpbnZh
bGlkIG1lbW9yeSBhY2Nlc3MuCisgIFNldEVycm9yTW9kZShTRU1fRkFJTENSSVRJQ0FMRVJST1JT
IHwgU0VNX05PR1BGQVVMVEVSUk9SQk9YIHwKKyAgICAgICAgICAgICAgIFNFTV9OT09QRU5GSUxF
RVJST1JCT1gpOwogI2VuZGlmIC8vIGlmIGRlZmluZWQoX1dJTjMyKQogfQogCi12b2lkIAotUnVu
bmVyOjpwcmludFVzYWdlKCBjb25zdCBjaGFyICphcHBOYW1lICkKLXsKLSAgIHByaW50ZiggCi0g
ICAgICAiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgotICAgICAgIlxuIgotICAgICAgIklmIC0tdGVz
dCBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIGFsbCB0aGUgdGVzdCBjYXNlcyBiZSBydW4uXG4iCi0g
ICAgICAiXG4iCi0gICAgICAiVmFsaWQgb3B0aW9uczpcbiIKLSAgICAgICItLWxpc3QtdGVzdHM6
IHByaW50IHRoZSBuYW1lIG9mIGFsbCB0ZXN0IGNhc2VzIG9uIHRoZSBzdGFuZGFyZFxuIgotICAg
ICAgIiAgICAgICAgICAgICAgb3V0cHV0IGFuZCBleGl0LlxuIgotICAgICAgIi0tdGVzdCBURVNU
TkFNRTogZXhlY3V0ZXMgdGhlIHRlc3QgY2FzZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS5cbiIK
LSAgICAgICIgICAgICAgICAgICAgICAgIE1heSBiZSByZXBlYXRlZC5cbiIKLSAgICAgICItLXRl
c3QtYXV0bzogcHJldmVudCBkaWFsb2cgcHJvbXB0aW5nIGZvciBkZWJ1Z2dpbmcgb24gY3Jhc2gu
XG4iCi0gICAgICAsIGFwcE5hbWUgKTsKK3ZvaWQgUnVubmVyOjpwcmludFVzYWdlKGNvbnN0IGNo
YXIqIGFwcE5hbWUpIHsKKyAgcHJpbnRmKCJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisgICAgICAg
ICAiXG4iCisgICAgICAgICAiSWYgLS10ZXN0IGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gYWxsIHRo
ZSB0ZXN0IGNhc2VzIGJlIHJ1bi5cbiIKKyAgICAgICAgICJcbiIKKyAgICAgICAgICJWYWxpZCBv
cHRpb25zOlxuIgorICAgICAgICAgIi0tbGlzdC10ZXN0czogcHJpbnQgdGhlIG5hbWUgb2YgYWxs
IHRlc3QgY2FzZXMgb24gdGhlIHN0YW5kYXJkXG4iCisgICAgICAgICAiICAgICAgICAgICAgICBv
dXRwdXQgYW5kIGV4aXQuXG4iCisgICAgICAgICAiLS10ZXN0IFRFU1ROQU1FOiBleGVjdXRlcyB0
aGUgdGVzdCBjYXNlIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLlxuIgorICAgICAgICAgIiAgICAg
ICAgICAgICAgICAgTWF5IGJlIHJlcGVhdGVkLlxuIgorICAgICAgICAgIi0tdGVzdC1hdXRvOiBw
cmV2ZW50IGRpYWxvZyBwcm9tcHRpbmcgZm9yIGRlYnVnZ2luZyBvbiBjcmFzaC5cbiIsCisgICAg
ICAgICBhcHBOYW1lKTsKIH0KIAotCi0KIC8vIEFzc2VydGlvbiBmdW5jdGlvbnMKIC8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCi1UZXN0UmVzdWx0ICYKLWNoZWNrU3RyaW5nRXF1YWwoIFRlc3RSZXN1bHQgJnJlc3Vs
dCwgCi0gICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmZXhwZWN0ZWQsIGNvbnN0
IHN0ZDo6c3RyaW5nICZhY3R1YWwsCi0gICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxl
LCB1bnNpZ25lZCBpbnQgbGluZSwgY29uc3QgY2hhciAqZXhwciApCi17Ci0gICBpZiAoIGV4cGVj
dGVkICE9IGFjdHVhbCApCi0gICB7Ci0gICAgICByZXN1bHQuYWRkRmFpbHVyZSggZmlsZSwgbGlu
ZSwgZXhwciApOwotICAgICAgcmVzdWx0IDw8ICJFeHBlY3RlZDogJyIgPDwgZXhwZWN0ZWQgPDwg
IidcbiI7Ci0gICAgICByZXN1bHQgPDwgIkFjdHVhbCAgOiAnIiA8PCBhY3R1YWwgPDwgIiciOwot
ICAgfQotICAgcmV0dXJuIHJlc3VsdDsKK0pzb246OlN0cmluZyBUb0pzb25TdHJpbmcoY29uc3Qg
Y2hhciogdG9Db252ZXJ0KSB7CisgIHJldHVybiBKc29uOjpTdHJpbmcodG9Db252ZXJ0KTsKIH0K
IAorSnNvbjo6U3RyaW5nIFRvSnNvblN0cmluZyhKc29uOjpTdHJpbmcgaW4pIHsgcmV0dXJuIGlu
OyB9CisKKyNpZiBKU09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1PUlkKK0pzb246OlN0cmluZyBUb0pz
b25TdHJpbmcoc3RkOjpzdHJpbmcgaW4pIHsKKyAgcmV0dXJuIEpzb246OlN0cmluZyhpbi5kYXRh
KCksIGluLmRhdGEoKSArIGluLmxlbmd0aCgpKTsKK30KKyNlbmRpZgorCitUZXN0UmVzdWx0JiBj
aGVja1N0cmluZ0VxdWFsKFRlc3RSZXN1bHQmIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgSnNvbjo6U3RyaW5nJiBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgSnNvbjo6U3RyaW5nJiBhY3R1YWwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyKiBleHByKSB7CisgIGlmIChleHBlY3RlZCAhPSBhY3R1YWwpIHsKKyAgICByZXN1bHQu
YWRkRmFpbHVyZShmaWxlLCBsaW5lLCBleHByKTsKKyAgICByZXN1bHQgPDwgIkV4cGVjdGVkOiAn
IiA8PCBleHBlY3RlZCA8PCAiJ1xuIjsKKyAgICByZXN1bHQgPDwgIkFjdHVhbCAgOiAnIiA8PCBh
Y3R1YWwgPDwgIiciOworICB9CisgIHJldHVybiByZXN1bHQ7Cit9CiAKIH0gLy8gbmFtZXNwYWNl
IEpzb25UZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0LmgKaW5kZXggMjA3NjkyYmMxNWNjYjZl
ZmI1YjdmNDc4NjdjYWIwYThiMTVhY2I0MS4uZTljMTFhNDcwN2QyNzdjMjk5YWRjOTVkMWE2MzUw
NTE2MWM3MTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9qc29udGVzdC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vanNvbnRlc3QuaApAQCAtMSwxOCArMSwxOCBA
QAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdo
dCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAv
LyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNp
cmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxl
IExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC9MSUNFTlNFCiAKICNpZm5kZWYgSlNPTlRFU1RfSF9JTkNMVURFRAotIyBkZWZpbmUgSlNP
TlRFU1RfSF9JTkNMVURFRAorI2RlZmluZSBKU09OVEVTVF9IX0lOQ0xVREVECiAKLSMgaW5jbHVk
ZSA8anNvbi9jb25maWcuaD4KLSMgaW5jbHVkZSA8anNvbi92YWx1ZS5oPgotIyBpbmNsdWRlIDxq
c29uL3dyaXRlci5oPgotIyBpbmNsdWRlIDxzdGRpby5oPgotIyBpbmNsdWRlIDxkZXF1ZT4KLSMg
aW5jbHVkZSA8c3N0cmVhbT4KLSMgaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPGNzdGRpbz4K
KyNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxqc29uL2NvbmZpZy5oPgorI2luY2x1ZGUgPGpz
b24vdmFsdWUuaD4KKyNpbmNsdWRlIDxqc29uL3dyaXRlci5oPgorI2luY2x1ZGUgPHNzdHJlYW0+
CisjaW5jbHVkZSA8c3RyaW5nPgogCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjAs
OCArMjAsNiBAQAogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotCi0KIC8qKiBcYnJpZWYg
VW5pdCB0ZXN0aW5nIGZyYW1ld29yay4KICAqIFx3YXJuaW5nOiBhbGwgYXNzZXJ0aW9ucyBhcmUg
bm9uLWFib3J0aW5nLCB0ZXN0IGNhc2UgZXhlY3V0aW9uIHdpbGwgY29udGludWUKICAqICAgICAg
ICAgICBldmVuIGlmIGFuIGFzc2VydGlvbiBuYW1lc3BhY2UuCkBAIC0zMCwyNDQgKzI4LDI0OSBA
QAogICovCiBuYW1lc3BhY2UgSnNvblRlc3QgewogCi0KLSAgIGNsYXNzIEZhaWx1cmUKLSAgIHsK
LSAgIHB1YmxpYzoKLSAgICAgIGNvbnN0IGNoYXIgKmZpbGVfOwotICAgICAgdW5zaWduZWQgaW50
IGxpbmVfOwotICAgICAgc3RkOjpzdHJpbmcgZXhwcl87Ci0gICAgICBzdGQ6OnN0cmluZyBtZXNz
YWdlXzsKLSAgICAgIHVuc2lnbmVkIGludCBuZXN0aW5nTGV2ZWxfOwotICAgfTsKLQotCi0gICAv
Ly8gQ29udGV4dCB1c2VkIHRvIGNyZWF0ZSB0aGUgYXNzZXJ0aW9uIGNhbGxzdGFjayBvbiBmYWls
dXJlLgotICAgLy8vIE11c3QgYmUgYSBQT0QgdG8gYWxsb3cgaW5saW5lIGluaXRpYWxpc2F0aW9u
IHdpdGhvdXQgc3RlcHBpbmcgCi0gICAvLy8gaW50byB0aGUgZGVidWdnZXIuCi0gICBzdHJ1Y3Qg
UHJlZGljYXRlQ29udGV4dAotICAgewotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgSWQ7Ci0g
ICAgICBJZCBpZF87Ci0gICAgICBjb25zdCBjaGFyICpmaWxlXzsKLSAgICAgIHVuc2lnbmVkIGlu
dCBsaW5lXzsKLSAgICAgIGNvbnN0IGNoYXIgKmV4cHJfOwotICAgICAgUHJlZGljYXRlQ29udGV4
dCAqbmV4dF87Ci0gICAgICAvLy8gUmVsYXRlZCBGYWlsdXJlLCBzZXQgd2hlbiB0aGUgUHJlZGlj
YXRlQ29udGV4dCBpcyBjb252ZXJ0ZWQKLSAgICAgIC8vLyBpbnRvIGEgRmFpbHVyZS4KLSAgICAg
IEZhaWx1cmUgKmZhaWx1cmVfOwotICAgfTsKLQotICAgY2xhc3MgVGVzdFJlc3VsdAotICAgewot
ICAgcHVibGljOgotICAgICAgVGVzdFJlc3VsdCgpOwotCi0gICAgICAvLy8gXGludGVybmFsIElt
cGxlbWVudGF0aW9uIGRldGFpbCBmb3IgYXNzZXJ0aW9uIG1hY3JvcwotICAgICAgLy8vIE5vdCBl
bmNhcHN1bGF0ZWQgdG8gcHJldmVudCBzdGVwIGludG8gd2hlbiBkZWJ1Z2dpbmcgZmFpbGVkIGFz
c2VydGlvbnMKLSAgICAgIC8vLyBJbmNyZW1lbnRlZCBieSBvbmUgb24gYXNzZXJ0aW9uIHByZWRp
Y2F0ZSBlbnRyeSwgZGVjcmVhc2VkIGJ5IG9uZQotICAgICAgLy8vIGJ5IGFkZFByZWRpY2F0ZUNv
bnRleHQoKS4KLSAgICAgIFByZWRpY2F0ZUNvbnRleHQ6OklkIHByZWRpY2F0ZUlkXzsKLQotICAg
ICAgLy8vIFxpbnRlcm5hbCBJbXBsZW1lbnRhdGlvbiBkZXRhaWwgZm9yIHByZWRpY2F0ZSBtYWNy
b3MKLSAgICAgIFByZWRpY2F0ZUNvbnRleHQgKnByZWRpY2F0ZVN0YWNrVGFpbF87Ci0KLSAgICAg
IHZvaWQgc2V0VGVzdE5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lICk7Ci0KLSAgICAgIC8v
LyBBZGRzIGFuIGFzc2VydGlvbiBmYWlsdXJlLgotICAgICAgVGVzdFJlc3VsdCAmYWRkRmFpbHVy
ZSggY29uc3QgY2hhciAqZmlsZSwgdW5zaWduZWQgaW50IGxpbmUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpleHByID0gMCApOwotCi0gICAgICAvLy8gUmVtb3Zl
cyB0aGUgbGFzdCBQcmVkaWNhdGVDb250ZXh0IGFkZGVkIHRvIHRoZSBwcmVkaWNhdGUgc3RhY2sK
LSAgICAgIC8vLyBjaGFpbmVkIGxpc3QuCi0gICAgICAvLy8gTmV4dCBtZXNzYWdlcyB3aWxsIGJl
IHRhcmdlZCBhdCB0aGUgUHJlZGljYXRlQ29udGV4dCB0aGF0IHdhcyByZW1vdmVkLgotICAgICAg
VGVzdFJlc3VsdCAmcG9wUHJlZGljYXRlQ29udGV4dCgpOwotCi0gICAgICBib29sIGZhaWxlZCgp
IGNvbnN0OwotCi0gICAgICB2b2lkIHByaW50RmFpbHVyZSggYm9vbCBwcmludFRlc3ROYW1lICkg
Y29uc3Q7Ci0KLSAgICAgIC8vIEdlbmVyaWMgb3BlcmF0b3IgdGhhdCB3aWxsIHdvcmsgd2l0aCBh
bnl0aGluZyBvc3RyZWFtIGNhbiBkZWFsIHdpdGguCi0gICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgICAgIFRlc3RSZXN1bHQgJm9wZXJhdG9yIDw8ICggY29uc3QgVCYgdmFsdWUgKSB7Ci0g
ICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gb3NzOwotICAgICAgICAgb3NzLnByZWNpc2lvbigg
MTYgKTsKLSAgICAgICAgIG9zcy5zZXRmKCBzdGQ6Omlvc19iYXNlOjpmbG9hdGZpZWxkICk7Ci0g
ICAgICAgICBvc3MgPDwgdmFsdWU7Ci0gICAgICAgICByZXR1cm4gYWRkVG9MYXN0RmFpbHVyZShv
c3Muc3RyKCkpOwotICAgICAgfQotCi0gICAgICAvLyBTcGVjaWFsaXplZCB2ZXJzaW9ucy4KLSAg
ICAgIFRlc3RSZXN1bHQgJm9wZXJhdG9yIDw8ICggYm9vbCB2YWx1ZSApOwotICAgICAgLy8gc3Rk
Om9zdHJlYW0gZG9lcyBub3Qgc3VwcG9ydCA2NGJpdHMgaW50ZWdlcnMgb24gYWxsIFNUTCBpbXBs
ZW1lbnRhdGlvbgotICAgICAgVGVzdFJlc3VsdCAmb3BlcmF0b3IgPDwgKCBKc29uOjpJbnQ2NCB2
YWx1ZSApOwotICAgICAgVGVzdFJlc3VsdCAmb3BlcmF0b3IgPDwgKCBKc29uOjpVSW50NjQgdmFs
dWUgKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIFRlc3RSZXN1bHQgJmFkZFRvTGFzdEZhaWx1cmUo
IGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNzYWdlICk7Ci0gICAgICB1bnNpZ25lZCBpbnQgZ2V0QXNz
ZXJ0aW9uTmVzdGluZ0xldmVsKCkgY29uc3Q7Ci0gICAgICAvLy8gQWRkcyBhIGZhaWx1cmUgb3Ig
YSBwcmVkaWNhdGUgY29udGV4dAotICAgICAgdm9pZCBhZGRGYWlsdXJlSW5mbyggY29uc3QgY2hh
ciAqZmlsZSwgdW5zaWduZWQgaW50IGxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICpleHByLCB1bnNpZ25lZCBpbnQgbmVzdGluZ0xldmVsICApOwotICAgICAgc3Rh
dGljIHN0ZDo6c3RyaW5nIGluZGVudFRleHQoIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0LCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmaW5k
ZW50ICk7Ci0KLSAgICAgIHR5cGVkZWYgc3RkOjpkZXF1ZTxGYWlsdXJlPiBGYWlsdXJlczsKLSAg
ICAgIEZhaWx1cmVzIGZhaWx1cmVzXzsKLSAgICAgIHN0ZDo6c3RyaW5nIG5hbWVfOwotICAgICAg
UHJlZGljYXRlQ29udGV4dCByb290UHJlZGljYXRlTm9kZV87Ci0gICAgICBQcmVkaWNhdGVDb250
ZXh0OjpJZCBsYXN0VXNlZFByZWRpY2F0ZUlkXzsKLSAgICAgIC8vLyBGYWlsdXJlIHdoaWNoIGlz
IHRoZSB0YXJnZXQgb2YgdGhlIG1lc3NhZ2VzIGFkZGVkIHVzaW5nIG9wZXJhdG9yIDw8Ci0gICAg
ICBGYWlsdXJlICptZXNzYWdlVGFyZ2V0XzsKLSAgIH07Ci0KLQotICAgY2xhc3MgVGVzdENhc2UK
LSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIFRlc3RDYXNlKCk7Ci0KLSAgICAgIHZpcnR1YWwgflRl
c3RDYXNlKCk7Ci0KLSAgICAgIHZvaWQgcnVuKCBUZXN0UmVzdWx0ICZyZXN1bHQgKTsKLQotICAg
ICAgdmlydHVhbCBjb25zdCBjaGFyICp0ZXN0TmFtZSgpIGNvbnN0ID0gMDsKLQotICAgcHJvdGVj
dGVkOgotICAgICAgVGVzdFJlc3VsdCAqcmVzdWx0XzsKLQotICAgcHJpdmF0ZToKLSAgICAgIHZp
cnR1YWwgdm9pZCBydW5UZXN0Q2FzZSgpID0gMDsKLSAgIH07Ci0KLSAgIC8vLyBGdW5jdGlvbiBw
b2ludGVyIHR5cGUgZm9yIFRlc3RDYXNlIGZhY3RvcnkKLSAgIHR5cGVkZWYgVGVzdENhc2UgKigq
VGVzdENhc2VGYWN0b3J5KSgpOwotCi0gICBjbGFzcyBSdW5uZXIKLSAgIHsKLSAgIHB1YmxpYzoK
LSAgICAgIFJ1bm5lcigpOwotCi0gICAgICAvLy8gQWRkcyBhIHRlc3QgdG8gdGhlIHN1aXRlCi0g
ICAgICBSdW5uZXIgJmFkZCggVGVzdENhc2VGYWN0b3J5IGZhY3RvcnkgKTsKLQotICAgICAgLy8v
IFJ1bnMgdGVzdCBhcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQtbGluZQotICAgICAgLy8vIElm
IG5vIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLCBydW4gYWxsIHRlc3RzLgot
ICAgICAgLy8vIElmIC0tbGlzdC10ZXN0cyBpcyBwcm92aWRlZCwgdGhlbiBwcmludCB0aGUgbGlz
dCBvZiBhbGwgdGVzdCBjYXNlcwotICAgICAgLy8vIElmIC0tdGVzdCA8dGVzdG5hbWU+IGlzIHBy
b3ZpZGVkLCB0aGVuIHJ1biB0ZXN0IHRlc3RuYW1lLgotICAgICAgaW50IHJ1bkNvbW1hbmRMaW5l
KCBpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdICkgY29uc3Q7Ci0KLSAgICAgIC8vLyBSdW5z
IGFsbCB0aGUgdGVzdCBjYXNlcwotICAgICAgYm9vbCBydW5BbGxUZXN0KCBib29sIHByaW50U3Vt
bWFyeSApIGNvbnN0OwotCi0gICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRlc3QgY2Fz
ZSBpbiB0aGUgc3VpdGUKLSAgICAgIHVuc2lnbmVkIGludCB0ZXN0Q291bnQoKSBjb25zdDsKLQot
ICAgICAgLy8vIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSBhdCB0aGUgc3BlY2lm
aWVkIGluZGV4Ci0gICAgICBzdGQ6OnN0cmluZyB0ZXN0TmFtZUF0KCB1bnNpZ25lZCBpbnQgaW5k
ZXggKSBjb25zdDsKLQotICAgICAgLy8vIFJ1bnMgdGhlIHRlc3QgY2FzZSBhdCB0aGUgc3BlY2lm
aWVkIGluZGV4IHVzaW5nIHRoZSBzcGVjaWZpZWQgVGVzdFJlc3VsdAotICAgICAgdm9pZCBydW5U
ZXN0QXQoIHVuc2lnbmVkIGludCBpbmRleCwgVGVzdFJlc3VsdCAmcmVzdWx0ICkgY29uc3Q7Ci0K
LSAgICAgIHN0YXRpYyB2b2lkIHByaW50VXNhZ2UoIGNvbnN0IGNoYXIgKmFwcE5hbWUgKTsKLQot
ICAgcHJpdmF0ZTogLy8gcHJldmVudHMgY29weSBjb25zdHJ1Y3Rpb24gYW5kIGFzc2lnbm1lbnQK
LSAgICAgIFJ1bm5lciggY29uc3QgUnVubmVyICZvdGhlciApOwotICAgICAgUnVubmVyICZvcGVy
YXRvciA9KCBjb25zdCBSdW5uZXIgJm90aGVyICk7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB2b2lk
IGxpc3RUZXN0cygpIGNvbnN0OwotICAgICAgYm9vbCB0ZXN0SW5kZXgoIGNvbnN0IHN0ZDo6c3Ry
aW5nICZ0ZXN0TmFtZSwgdW5zaWduZWQgaW50ICZpbmRleCApIGNvbnN0OwotICAgICAgc3RhdGlj
IHZvaWQgcHJldmVudERpYWxvZ09uQ3Jhc2goKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIHR5cGVk
ZWYgc3RkOjpkZXF1ZTxUZXN0Q2FzZUZhY3Rvcnk+IEZhY3RvcmllczsKLSAgICAgIEZhY3Rvcmll
cyB0ZXN0c187Ci0gICB9OwotCi0gICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgot
ICAgVGVzdFJlc3VsdCAmCi0gICBjaGVja0VxdWFsKCBUZXN0UmVzdWx0ICZyZXN1bHQsIGNvbnN0
IFQgJmV4cGVjdGVkLCBjb25zdCBVICZhY3R1YWwsIAotICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAqZmlsZSwgdW5zaWduZWQgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmV4cHIgKQotICAgewotICAg
ICAgaWYgKCBleHBlY3RlZCAhPSBhY3R1YWwgKQotICAgICAgewotICAgICAgICAgcmVzdWx0LmFk
ZEZhaWx1cmUoIGZpbGUsIGxpbmUsIGV4cHIgKTsKLSAgICAgICAgIHJlc3VsdCA8PCAiRXhwZWN0
ZWQ6ICIgPDwgZXhwZWN0ZWQgPDwgIlxuIjsKLSAgICAgICAgIHJlc3VsdCA8PCAiQWN0dWFsICA6
ICIgPDwgYWN0dWFsOwotICAgICAgfQotICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgIH0KLQotCi0g
ICBUZXN0UmVzdWx0ICYKLSAgIGNoZWNrU3RyaW5nRXF1YWwoIFRlc3RSZXN1bHQgJnJlc3VsdCwg
Ci0gICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmZXhwZWN0ZWQsIGNvbnN0
IHN0ZDo6c3RyaW5nICZhY3R1YWwsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpm
aWxlLCB1bnNpZ25lZCBpbnQgbGluZSwgY29uc3QgY2hhciAqZXhwciApOworY2xhc3MgRmFpbHVy
ZSB7CitwdWJsaWM6CisgIGNvbnN0IGNoYXIqIGZpbGVfOworICB1bnNpZ25lZCBpbnQgbGluZV87
CisgIEpzb246OlN0cmluZyBleHByXzsKKyAgSnNvbjo6U3RyaW5nIG1lc3NhZ2VfOworICB1bnNp
Z25lZCBpbnQgbmVzdGluZ0xldmVsXzsKK307CisKKy8vLyBDb250ZXh0IHVzZWQgdG8gY3JlYXRl
IHRoZSBhc3NlcnRpb24gY2FsbHN0YWNrIG9uIGZhaWx1cmUuCisvLy8gTXVzdCBiZSBhIFBPRCB0
byBhbGxvdyBpbmxpbmUgaW5pdGlhbGlzYXRpb24gd2l0aG91dCBzdGVwcGluZworLy8vIGludG8g
dGhlIGRlYnVnZ2VyLgorc3RydWN0IFByZWRpY2F0ZUNvbnRleHQgeworICB0eXBlZGVmIHVuc2ln
bmVkIGludCBJZDsKKyAgSWQgaWRfOworICBjb25zdCBjaGFyKiBmaWxlXzsKKyAgdW5zaWduZWQg
aW50IGxpbmVfOworICBjb25zdCBjaGFyKiBleHByXzsKKyAgUHJlZGljYXRlQ29udGV4dCogbmV4
dF87CisgIC8vLyBSZWxhdGVkIEZhaWx1cmUsIHNldCB3aGVuIHRoZSBQcmVkaWNhdGVDb250ZXh0
IGlzIGNvbnZlcnRlZAorICAvLy8gaW50byBhIEZhaWx1cmUuCisgIEZhaWx1cmUqIGZhaWx1cmVf
OworfTsKKworY2xhc3MgVGVzdFJlc3VsdCB7CitwdWJsaWM6CisgIFRlc3RSZXN1bHQoKTsKKwor
ICAvLy8gXGludGVybmFsIEltcGxlbWVudGF0aW9uIGRldGFpbCBmb3IgYXNzZXJ0aW9uIG1hY3Jv
cworICAvLy8gTm90IGVuY2Fwc3VsYXRlZCB0byBwcmV2ZW50IHN0ZXAgaW50byB3aGVuIGRlYnVn
Z2luZyBmYWlsZWQgYXNzZXJ0aW9ucworICAvLy8gSW5jcmVtZW50ZWQgYnkgb25lIG9uIGFzc2Vy
dGlvbiBwcmVkaWNhdGUgZW50cnksIGRlY3JlYXNlZCBieSBvbmUKKyAgLy8vIGJ5IGFkZFByZWRp
Y2F0ZUNvbnRleHQoKS4KKyAgUHJlZGljYXRlQ29udGV4dDo6SWQgcHJlZGljYXRlSWRfezF9Owor
CisgIC8vLyBcaW50ZXJuYWwgSW1wbGVtZW50YXRpb24gZGV0YWlsIGZvciBwcmVkaWNhdGUgbWFj
cm9zCisgIFByZWRpY2F0ZUNvbnRleHQqIHByZWRpY2F0ZVN0YWNrVGFpbF87CisKKyAgdm9pZCBz
ZXRUZXN0TmFtZShjb25zdCBKc29uOjpTdHJpbmcmIG5hbWUpOworCisgIC8vLyBBZGRzIGFuIGFz
c2VydGlvbiBmYWlsdXJlLgorICBUZXN0UmVzdWx0JgorICBhZGRGYWlsdXJlKGNvbnN0IGNoYXIq
IGZpbGUsIHVuc2lnbmVkIGludCBsaW5lLCBjb25zdCBjaGFyKiBleHByID0gbnVsbHB0cik7CisK
KyAgLy8vIFJlbW92ZXMgdGhlIGxhc3QgUHJlZGljYXRlQ29udGV4dCBhZGRlZCB0byB0aGUgcHJl
ZGljYXRlIHN0YWNrCisgIC8vLyBjaGFpbmVkIGxpc3QuCisgIC8vLyBOZXh0IG1lc3NhZ2VzIHdp
bGwgYmUgdGFyZ2VkIGF0IHRoZSBQcmVkaWNhdGVDb250ZXh0IHRoYXQgd2FzIHJlbW92ZWQuCisg
IFRlc3RSZXN1bHQmIHBvcFByZWRpY2F0ZUNvbnRleHQoKTsKKworICBib29sIGZhaWxlZCgpIGNv
bnN0OworCisgIHZvaWQgcHJpbnRGYWlsdXJlKGJvb2wgcHJpbnRUZXN0TmFtZSkgY29uc3Q7CisK
KyAgLy8gR2VuZXJpYyBvcGVyYXRvciB0aGF0IHdpbGwgd29yayB3aXRoIGFueXRoaW5nIG9zdHJl
YW0gY2FuIGRlYWwgd2l0aC4KKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFRlc3RSZXN1bHQmIG9w
ZXJhdG9yPDwoY29uc3QgVCYgdmFsdWUpIHsKKyAgICBKc29uOjpPU3RyaW5nU3RyZWFtIG9zczsK
KyAgICBvc3MucHJlY2lzaW9uKDE2KTsKKyAgICBvc3Muc2V0ZihzdGQ6Omlvc19iYXNlOjpmbG9h
dGZpZWxkKTsKKyAgICBvc3MgPDwgdmFsdWU7CisgICAgcmV0dXJuIGFkZFRvTGFzdEZhaWx1cmUo
b3NzLnN0cigpKTsKKyAgfQorCisgIC8vIFNwZWNpYWxpemVkIHZlcnNpb25zLgorICBUZXN0UmVz
dWx0JiBvcGVyYXRvcjw8KGJvb2wgdmFsdWUpOworICAvLyBzdGQ6b3N0cmVhbSBkb2VzIG5vdCBz
dXBwb3J0IDY0Yml0cyBpbnRlZ2VycyBvbiBhbGwgU1RMIGltcGxlbWVudGF0aW9uCisgIFRlc3RS
ZXN1bHQmIG9wZXJhdG9yPDwoSnNvbjo6SW50NjQgdmFsdWUpOworICBUZXN0UmVzdWx0JiBvcGVy
YXRvcjw8KEpzb246OlVJbnQ2NCB2YWx1ZSk7CisKK3ByaXZhdGU6CisgIFRlc3RSZXN1bHQmIGFk
ZFRvTGFzdEZhaWx1cmUoY29uc3QgSnNvbjo6U3RyaW5nJiBtZXNzYWdlKTsKKyAgLy8vIEFkZHMg
YSBmYWlsdXJlIG9yIGEgcHJlZGljYXRlIGNvbnRleHQKKyAgdm9pZCBhZGRGYWlsdXJlSW5mbyhj
b25zdCBjaGFyKiBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5l
LAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IG5lc3RpbmdMZXZlbCk7CisgIHN0YXRpYyBKc29uOjpTdHJp
bmcgaW5kZW50VGV4dChjb25zdCBKc29uOjpTdHJpbmcmIHRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBKc29uOjpTdHJpbmcmIGluZGVudCk7CisKKyAgdHlwZWRl
ZiBzdGQ6OmRlcXVlPEZhaWx1cmU+IEZhaWx1cmVzOworICBGYWlsdXJlcyBmYWlsdXJlc187Cisg
IEpzb246OlN0cmluZyBuYW1lXzsKKyAgUHJlZGljYXRlQ29udGV4dCByb290UHJlZGljYXRlTm9k
ZV87CisgIFByZWRpY2F0ZUNvbnRleHQ6OklkIGxhc3RVc2VkUHJlZGljYXRlSWRfezB9OworICAv
Ly8gRmFpbHVyZSB3aGljaCBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBtZXNzYWdlcyBhZGRlZCB1c2lu
ZyBvcGVyYXRvciA8PAorICBGYWlsdXJlKiBtZXNzYWdlVGFyZ2V0X3tudWxscHRyfTsKK307CisK
K2NsYXNzIFRlc3RDYXNlIHsKK3B1YmxpYzoKKyAgVGVzdENhc2UoKTsKKworICB2aXJ0dWFsIH5U
ZXN0Q2FzZSgpOworCisgIHZvaWQgcnVuKFRlc3RSZXN1bHQmIHJlc3VsdCk7CisKKyAgdmlydHVh
bCBjb25zdCBjaGFyKiB0ZXN0TmFtZSgpIGNvbnN0ID0gMDsKKworcHJvdGVjdGVkOgorICBUZXN0
UmVzdWx0KiByZXN1bHRfe251bGxwdHJ9OworCitwcml2YXRlOgorICB2aXJ0dWFsIHZvaWQgcnVu
VGVzdENhc2UoKSA9IDA7Cit9OworCisvLy8gRnVuY3Rpb24gcG9pbnRlciB0eXBlIGZvciBUZXN0
Q2FzZSBmYWN0b3J5Cit0eXBlZGVmIFRlc3RDYXNlKiAoKlRlc3RDYXNlRmFjdG9yeSkoKTsKKwor
Y2xhc3MgUnVubmVyIHsKK3B1YmxpYzoKKyAgUnVubmVyKCk7CisKKyAgLy8vIEFkZHMgYSB0ZXN0
IHRvIHRoZSBzdWl0ZQorICBSdW5uZXImIGFkZChUZXN0Q2FzZUZhY3RvcnkgZmFjdG9yeSk7CisK
KyAgLy8vIFJ1bnMgdGVzdCBhcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQtbGluZQorICAvLy8g
SWYgbm8gY29tbWFuZC1saW5lIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQsIHJ1biBhbGwgdGVzdHMu
CisgIC8vLyBJZiAtLWxpc3QtdGVzdHMgaXMgcHJvdmlkZWQsIHRoZW4gcHJpbnQgdGhlIGxpc3Qg
b2YgYWxsIHRlc3QgY2FzZXMKKyAgLy8vIElmIC0tdGVzdCA8dGVzdG5hbWU+IGlzIHByb3ZpZGVk
LCB0aGVuIHJ1biB0ZXN0IHRlc3RuYW1lLgorICBpbnQgcnVuQ29tbWFuZExpbmUoaW50IGFyZ2Ms
IGNvbnN0IGNoYXIqIGFyZ3ZbXSkgY29uc3Q7CisKKyAgLy8vIFJ1bnMgYWxsIHRoZSB0ZXN0IGNh
c2VzCisgIGJvb2wgcnVuQWxsVGVzdChib29sIHByaW50U3VtbWFyeSkgY29uc3Q7CisKKyAgLy8v
IFJldHVybnMgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2UgaW4gdGhlIHN1aXRlCisgIHNpemVfdCB0
ZXN0Q291bnQoKSBjb25zdDsKKworICAvLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBj
YXNlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXgKKyAgSnNvbjo6U3RyaW5nIHRlc3ROYW1lQXQoc2l6
ZV90IGluZGV4KSBjb25zdDsKKworICAvLy8gUnVucyB0aGUgdGVzdCBjYXNlIGF0IHRoZSBzcGVj
aWZpZWQgaW5kZXggdXNpbmcgdGhlIHNwZWNpZmllZCBUZXN0UmVzdWx0CisgIHZvaWQgcnVuVGVz
dEF0KHNpemVfdCBpbmRleCwgVGVzdFJlc3VsdCYgcmVzdWx0KSBjb25zdDsKKworICBzdGF0aWMg
dm9pZCBwcmludFVzYWdlKGNvbnN0IGNoYXIqIGFwcE5hbWUpOworCitwcml2YXRlOiAvLyBwcmV2
ZW50cyBjb3B5IGNvbnN0cnVjdGlvbiBhbmQgYXNzaWdubWVudAorICBSdW5uZXIoY29uc3QgUnVu
bmVyJiBvdGhlcikgPSBkZWxldGU7CisgIFJ1bm5lciYgb3BlcmF0b3I9KGNvbnN0IFJ1bm5lciYg
b3RoZXIpID0gZGVsZXRlOworCitwcml2YXRlOgorICB2b2lkIGxpc3RUZXN0cygpIGNvbnN0Owor
ICBib29sIHRlc3RJbmRleChjb25zdCBKc29uOjpTdHJpbmcmIHRlc3ROYW1lLCBzaXplX3QmIGlu
ZGV4T3V0KSBjb25zdDsKKyAgc3RhdGljIHZvaWQgcHJldmVudERpYWxvZ09uQ3Jhc2goKTsKKwor
cHJpdmF0ZToKKyAgdHlwZWRlZiBzdGQ6OmRlcXVlPFRlc3RDYXNlRmFjdG9yeT4gRmFjdG9yaWVz
OworICBGYWN0b3JpZXMgdGVzdHNfOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+CitUZXN0UmVzdWx0JiBjaGVja0VxdWFsKFRlc3RSZXN1bHQmIHJlc3VsdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgVCBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgVSBh
Y3R1YWwsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5lLAorICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiBleHByKSB7CisgIGlmIChzdGF0aWNfY2FzdDxVPihleHBlY3RlZCkgIT0g
YWN0dWFsKSB7CisgICAgcmVzdWx0LmFkZEZhaWx1cmUoZmlsZSwgbGluZSwgZXhwcik7CisgICAg
cmVzdWx0IDw8ICJFeHBlY3RlZDogIiA8PCBzdGF0aWNfY2FzdDxVPihleHBlY3RlZCkgPDwgIlxu
IjsKKyAgICByZXN1bHQgPDwgIkFjdHVhbCAgOiAiIDw8IGFjdHVhbDsKKyAgfQorICByZXR1cm4g
cmVzdWx0OworfQorCitKc29uOjpTdHJpbmcgVG9Kc29uU3RyaW5nKGNvbnN0IGNoYXIqIHRvQ29u
dmVydCk7CitKc29uOjpTdHJpbmcgVG9Kc29uU3RyaW5nKEpzb246OlN0cmluZyBpbik7CisjaWYg
SlNPTkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZCitKc29uOjpTdHJpbmcgVG9Kc29uU3RyaW5nKHN0
ZDo6c3RyaW5nIGluKTsKKyNlbmRpZgorCitUZXN0UmVzdWx0JiBjaGVja1N0cmluZ0VxdWFsKFRl
c3RSZXN1bHQmIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNv
bjo6U3RyaW5nJiBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SnNvbjo6U3RyaW5nJiBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBs
aW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHByKTsKIAog
fSAvLyBuYW1lc3BhY2UgSnNvblRlc3QKIAotCiAvLy8gXGJyaWVmIEFzc2VydHMgdGhhdCB0aGUg
Z2l2ZW4gZXhwcmVzc2lvbiBpcyB0cnVlLgogLy8vIEpTT05URVNUX0FTU0VSVCggeCA9PSB5ICkg
PDwgIng9IiA8PCB4IDw8ICIsIHk9IiA8PCB5OwogLy8vIEpTT05URVNUX0FTU0VSVCggeCA9PSB5
ICk7Ci0jZGVmaW5lIEpTT05URVNUX0FTU0VSVCggZXhwciApICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBpZiAoIGV4cHIgKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBlbHNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICByZXN1bHRfLT5hZGRGYWlsdXJlKCBfX0ZJTEVfXywgX19MSU5FX18s
ICNleHByICkKKyNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUKGV4cHIpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGlmIChleHByKSB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXN1bHRfLT5hZGRGYWlsdXJlKF9fRklM
RV9fLCBfX0xJTkVfXywgI2V4cHIpCiAKIC8vLyBcYnJpZWYgQXNzZXJ0cyB0aGF0IHRoZSBnaXZl
biBwcmVkaWNhdGUgaXMgdHJ1ZS4KLS8vLyBUaGUgcHJlZGljYXRlIG1heSBkbyBvdGhlciBhc3Nl
cnRpb25zIGFuZCBiZSBhIG1lbWJlciBmdW5jdGlvbiBvZiB0aGUgZml4dHVyZS4KLSNkZWZpbmUg
SlNPTlRFU1RfQVNTRVJUX1BSRUQoIGV4cHIgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIEpzb25UZXN0OjpQcmVkaWNhdGVDb250
ZXh0IF9taW5pdGVzdF9Db250ZXh0ID0geyAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgIHJl
c3VsdF8tPnByZWRpY2F0ZUlkXywgX19GSUxFX18sIF9fTElORV9fLCAjZXhwciB9OyAgICAgICAg
ICAgIFwKLSAgICAgIHJlc3VsdF8tPnByZWRpY2F0ZVN0YWNrVGFpbF8tPm5leHRfID0gJl9taW5p
dGVzdF9Db250ZXh0OyAgICAgICAgIFwKLSAgICAgIHJlc3VsdF8tPnByZWRpY2F0ZUlkXyArPSAx
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHJlc3VsdF8t
PnByZWRpY2F0ZVN0YWNrVGFpbF8gPSAmX21pbml0ZXN0X0NvbnRleHQ7ICAgICAgICAgICAgICAg
IFwKLSAgICAgIChleHByKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHJlc3VsdF8tPnBvcFByZWRpY2F0ZUNvbnRleHQo
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIH0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICpyZXN1bHRfCisvLy8gVGhlIHByZWRpY2F0ZSBtYXkgZG8gb3RoZXIgYXNzZXJ0aW9ucyBh
bmQgYmUgYSBtZW1iZXIgZnVuY3Rpb24gb2YgdGhlCisvLy8gZml4dHVyZS4KKyNkZWZpbmUgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoZXhwcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEpzb25UZXN0OjpQcmVk
aWNhdGVDb250ZXh0IF9taW5pdGVzdF9Db250ZXh0ID0geyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgcmVzdWx0Xy0+cHJlZGljYXRlSWRfLCBfX0ZJTEVfXywgX19MSU5FX18s
ICNleHByLCBOVUxMLCBOVUxMfTsgICAgICAgICBcCisgICAgcmVzdWx0Xy0+cHJlZGljYXRlU3Rh
Y2tUYWlsXy0+bmV4dF8gPSAmX21pbml0ZXN0X0NvbnRleHQ7ICAgICAgICAgICAgICAgICAgXAor
ICAgIHJlc3VsdF8tPnByZWRpY2F0ZUlkXyArPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXN1bHRfLT5wcmVkaWNhdGVTdGFja1RhaWxf
ID0gJl9taW5pdGVzdF9Db250ZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGV4
cHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIHJlc3VsdF8tPnBvcFByZWRpY2F0ZUNvbnRleHQoKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQogCiAvLy8gXGJy
aWVmIEFzc2VydHMgdGhhdCB0d28gdmFsdWVzIGFyZSBlcXVhbHMuCi0jZGVmaW5lIEpTT05URVNU
X0FTU0VSVF9FUVVBTCggZXhwZWN0ZWQsIGFjdHVhbCApICAgICAgICAgIFwKLSAgIEpzb25UZXN0
OjpjaGVja0VxdWFsKCAqcmVzdWx0XywgZXhwZWN0ZWQsIGFjdHVhbCwgICAgICAgXAotICAgICAg
ICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgI2V4cGVjdGVkICIgPT0gIiAjYWN0dWFsICkKKyNkZWZp
bmUgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVkLCBhY3R1YWwpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIEpzb25UZXN0OjpjaGVja0VxdWFsKCpyZXN1bHRfLCBleHBl
Y3RlZCwgYWN0dWFsLCBfX0ZJTEVfXywgX19MSU5FX18sICAgICAgICAgXAorICAgICAgICAgICAg
ICAgICAgICAgICAjZXhwZWN0ZWQgIiA9PSAiICNhY3R1YWwpCiAKIC8vLyBcYnJpZWYgQXNzZXJ0
cyB0aGF0IHR3byB2YWx1ZXMgYXJlIGVxdWFscy4KLSNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCggZXhwZWN0ZWQsIGFjdHVhbCApIFwKLSAgIEpzb25UZXN0OjpjaGVja1N0cmlu
Z0VxdWFsKCAqcmVzdWx0XywgICAgICAgICAgICAgICAgIFwKLSAgICAgIHN0ZDo6c3RyaW5nKGV4
cGVjdGVkKSwgc3RkOjpzdHJpbmcoYWN0dWFsKSwgICAgICAgIFwKLSAgICAgIF9fRklMRV9fLCBf
X0xJTkVfXywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICNleHBlY3Rl
ZCAiID09ICIgI2FjdHVhbCApCisjZGVmaW5lIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
ZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBKc29uVGVzdDo6
Y2hlY2tTdHJpbmdFcXVhbCgqcmVzdWx0XywgSnNvblRlc3Q6OlRvSnNvblN0cmluZyhleHBlY3Rl
ZCksICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSnNvblRlc3Q6OlRvSnNv
blN0cmluZyhhY3R1YWwpLCBfX0ZJTEVfXywgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF9fTElORV9fLCAjZXhwZWN0ZWQgIiA9PSAiICNhY3R1YWwpCisKKy8vLyBcYnJp
ZWYgQXNzZXJ0cyB0aGF0IGEgZ2l2ZW4gZXhwcmVzc2lvbiB0aHJvd3MgYW4gZXhjZXB0aW9uCisj
ZGVmaW5lIEpTT05URVNUX0FTU0VSVF9USFJPV1MoZXhwcikgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBib29s
IF90aHJldyA9IGZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgdHJ5IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgZXhwcjsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICB9IGNhdGNoICguLi4pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBfdGhyZXcgPSB0cnVlOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIV90aHJldykgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICByZXN1bHRfLT5hZGRGYWlsdXJlKF9fRklMRV9fLCBfX0xJTkVfXywgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQg
ZXhjZXB0aW9uIHRocm93bjogIiAjZXhwcik7ICAgICAgICAgICAgICAgIFwKKyAgfQogCiAvLy8g
XGJyaWVmIEJlZ2luIGEgZml4dHVyZSB0ZXN0IGNhc2UuCi0jZGVmaW5lIEpTT05URVNUX0ZJWFRV
UkUoIEZpeHR1cmVUeXBlLCBuYW1lICkgICAgICAgICAgICAgICAgICBcCi0gICBjbGFzcyBUZXN0
IyNGaXh0dXJlVHlwZSMjbmFtZSA6IHB1YmxpYyBGaXh0dXJlVHlwZSAgICAgICAgICBcCi0gICB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICBwdWJsaWM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICBzdGF0aWMgSnNvblRlc3Q6OlRlc3RDYXNlICpmYWN0b3J5KCkg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICByZXR1cm4gbmV3IFRlc3Qj
I0ZpeHR1cmVUeXBlIyNuYW1lKCk7ICAgICAgICAgICAgICAgICBcCi0gICAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBwdWJs
aWM6IC8qIG92ZXJpZGRlbiBmcm9tIFRlc3RDYXNlICovICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKnRlc3ROYW1lKCkgY29uc3QgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICByZXR1cm4gI0ZpeHR1cmVUeXBlICIvIiAjbmFt
ZTsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB2aXJ0dWFsIHZvaWQg
cnVuVGVzdENhc2UoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICB9OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICB2b2lkIFRlc3QjI0ZpeHR1cmVUeXBlIyNuYW1lOjpydW5UZXN0Q2FzZSgpCi0K
LSNkZWZpbmUgSlNPTlRFU1RfRklYVFVSRV9GQUNUT1JZKCBGaXh0dXJlVHlwZSwgbmFtZSApIFwK
LSAgICZUZXN0IyNGaXh0dXJlVHlwZSMjbmFtZTo6ZmFjdG9yeQotCi0jZGVmaW5lIEpTT05URVNU
X1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgRml4dHVyZVR5cGUsIG5hbWUgKSBcCi0gICAocnVu
bmVyKS5hZGQoIEpTT05URVNUX0ZJWFRVUkVfRkFDVE9SWSggRml4dHVyZVR5cGUsIG5hbWUgKSAp
CisjZGVmaW5lIEpTT05URVNUX0ZJWFRVUkUoRml4dHVyZVR5cGUsIG5hbWUpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICBjbGFzcyBUZXN0IyNGaXh0dXJlVHlwZSMjbmFt
ZSA6IHB1YmxpYyBGaXh0dXJlVHlwZSB7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgcHVi
bGljOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgc3RhdGljIEpzb25UZXN0OjpUZXN0Q2FzZSogZmFjdG9y
eSgpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgcmV0dXJu
IG5ldyBUZXN0IyNGaXh0dXJlVHlwZSMjbmFtZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICBwdWJsaWM6IC8qIG92ZXJyaWRkZW4gZnJvbSBUZXN0Q2FzZSAqLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjb25zdCBjaGFyKiB0ZXN0TmFtZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICNGaXh0dXJlVHlwZSAiLyIgI25hbWU7IH0gICBcCisg
ICAgdm9pZCBydW5UZXN0Q2FzZSgpIG92ZXJyaWRlOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgIHZvaWQgVGVzdCMjRml4dHVyZVR5cGUjI25hbWU6OnJ1blRlc3RD
YXNlKCkKKworI2RlZmluZSBKU09OVEVTVF9GSVhUVVJFX0ZBQ1RPUlkoRml4dHVyZVR5cGUsIG5h
bWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgJlRlc3QjI0ZpeHR1cmVUeXBlIyNu
YW1lOjpmYWN0b3J5CisKKyNkZWZpbmUgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIs
IEZpeHR1cmVUeXBlLCBuYW1lKSAgICAgICAgICAgICAgICAgICBcCisgIChydW5uZXIpLmFkZChK
U09OVEVTVF9GSVhUVVJFX0ZBQ1RPUlkoRml4dHVyZVR5cGUsIG5hbWUpKQogCiAjZW5kaWYgLy8g
aWZuZGVmIEpTT05URVNUX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGli
X2pzb24vbWFpbi5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL21haW4uY3BwCmluZGV4IGM2
YWI2MTk4ODJkZWNiYjRkMzBjMTRiNjc4ZGFhODkxYWVkMzJiMzMuLmZjZGE2MGU4MWM0Njg4NWUw
N2ZmNDg3NzUxMzVjZWE0MjZiMjA5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pz
b24vbWFpbi5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9tYWluLmNwcApAQCAtMSwx
MSArMSwyNiBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8v
IENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBB
dXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFp
biBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8v
IFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNv
dXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3
YXJuaW5nKGRpc2FibGUgOiA0OTk2KQorI2VuZGlmCisKKyNpbmNsdWRlICJmdXp6LmgiCisjaW5j
bHVkZSAianNvbnRlc3QuaCIKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxjc3RyaW5nPgor
I2luY2x1ZGUgPGlvbWFuaXA+CisjaW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8anNvbi9j
b25maWcuaD4KICNpbmNsdWRlIDxqc29uL2pzb24uaD4KLSNpbmNsdWRlICJqc29udGVzdC5oIgor
I2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPHN0cmluZz4K
IAogLy8gTWFrZSBudW1lcmljIGxpbWl0cyBtb3JlIGNvbnZlbmllbnQgdG8gdGFsayBhYm91dC4K
IC8vIEFzc3VtZXMgaW50IHR5cGUgaW4gMzIgYml0cy4KQEAgLTE2LDEyICszMSwxMSBAQAogI2Rl
ZmluZSBraW50NjRtaW4gSnNvbjo6VmFsdWU6Om1pbkludDY0CiAjZGVmaW5lIGt1aW50NjRtYXgg
SnNvbjo6VmFsdWU6Om1heFVJbnQ2NAogCi1zdGF0aWMgY29uc3QgZG91YmxlIGtkaW50NjRtYXgg
PSBkb3VibGUoa2ludDY0bWF4KTsKLXN0YXRpYyBjb25zdCBmbG9hdCBrZmludDY0bWF4ID0gZmxv
YXQoa2ludDY0bWF4KTsKKy8vIHN0YXRpYyBjb25zdCBkb3VibGUga2RpbnQ2NG1heCA9IGRvdWJs
ZShraW50NjRtYXgpOworLy8gc3RhdGljIGNvbnN0IGZsb2F0IGtmaW50NjRtYXggPSBmbG9hdChr
aW50NjRtYXgpOwogc3RhdGljIGNvbnN0IGZsb2F0IGtmaW50MzJtYXggPSBmbG9hdChraW50MzJt
YXgpOwogc3RhdGljIGNvbnN0IGZsb2F0IGtmdWludDMybWF4ID0gZmxvYXQoa3VpbnQzMm1heCk7
CiAKLQogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIEpzb24gTGlicmFyeSB0ZXN0IGNh
c2VzCkBAIC0yOSwxMzk2ICs0MywyNjE1IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBrZnVpbnQzMm1h
eCA9IGZsb2F0KGt1aW50MzJtYXgpOwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKICNpZiAhZGVmaW5lZChKU09O
X1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLXN0YXRpYyBpbmxpbmUgZG91YmxlIHVpbnQ2
NFRvRG91YmxlKCBKc29uOjpVSW50NjQgdmFsdWUgKQotewotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KCB2YWx1ZSApOworc3RhdGljIGlubGluZSBkb3VibGUgdWludDY0VG9Eb3VibGUo
SnNvbjo6VUludDY0IHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVl
KTsKIH0KLSNlbHNlIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJT
SU9OKQotc3RhdGljIGlubGluZSBkb3VibGUgdWludDY0VG9Eb3VibGUoIEpzb246OlVJbnQ2NCB2
YWx1ZSApCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oIEpzb246OkludDY0KHZh
bHVlLzIpICkgKiAyLjAgKyBKc29uOjpJbnQ2NCh2YWx1ZSAmIDEpOworI2Vsc2UgIC8vIGlmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorc3RhdGljIGlubGluZSBk
b3VibGUgdWludDY0VG9Eb3VibGUoSnNvbjo6VUludDY0IHZhbHVlKSB7CisgIHJldHVybiBzdGF0
aWNfY2FzdDxkb3VibGU+KEpzb246OkludDY0KHZhbHVlIC8gMikpICogMi4wICsKKyAgICAgICAg
IHN0YXRpY19jYXN0PGRvdWJsZT4oSnNvbjo6SW50NjQodmFsdWUgJiAxKSk7CiB9CiAjZW5kaWYg
Ly8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCiAKLXN0cnVj
dCBWYWx1ZVRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2UKLXsKLSAgIEpzb246OlZhbHVlIG51bGxf
OwotICAgSnNvbjo6VmFsdWUgZW1wdHlBcnJheV87Ci0gICBKc29uOjpWYWx1ZSBlbXB0eU9iamVj
dF87Ci0gICBKc29uOjpWYWx1ZSBpbnRlZ2VyXzsKLSAgIEpzb246OlZhbHVlIHVuc2lnbmVkSW50
ZWdlcl87Ci0gICBKc29uOjpWYWx1ZSBzbWFsbFVuc2lnbmVkSW50ZWdlcl87Ci0gICBKc29uOjpW
YWx1ZSByZWFsXzsKLSAgIEpzb246OlZhbHVlIGZsb2F0XzsKLSAgIEpzb246OlZhbHVlIGFycmF5
MV87Ci0gICBKc29uOjpWYWx1ZSBvYmplY3QxXzsKLSAgIEpzb246OlZhbHVlIGVtcHR5U3RyaW5n
XzsKLSAgIEpzb246OlZhbHVlIHN0cmluZzFfOwotICAgSnNvbjo6VmFsdWUgc3RyaW5nXzsKLSAg
IEpzb246OlZhbHVlIHRydWVfOwotICAgSnNvbjo6VmFsdWUgZmFsc2VfOwotCi0KLSAgIFZhbHVl
VGVzdCgpCi0gICAgICA6IGVtcHR5QXJyYXlfKCBKc29uOjphcnJheVZhbHVlICkKLSAgICAgICwg
ZW1wdHlPYmplY3RfKCBKc29uOjpvYmplY3RWYWx1ZSApCi0gICAgICAsIGludGVnZXJfKCAxMjM0
NTY3ODkgKQotICAgICAgLCBzbWFsbFVuc2lnbmVkSW50ZWdlcl8oIEpzb246OlZhbHVlOjpVSW50
KCBKc29uOjpWYWx1ZTo6bWF4SW50ICkgKQotICAgICAgLCB1bnNpZ25lZEludGVnZXJfKCAzNDU2
Nzg5MHUgKQotICAgICAgLCByZWFsXyggMTIzNC41Njc4OSApCi0gICAgICAsIGZsb2F0XyggMC4w
MDM5MDYyNWYgKQotICAgICAgLCBlbXB0eVN0cmluZ18oICIiICkKLSAgICAgICwgc3RyaW5nMV8o
ICJhIiApCi0gICAgICAsIHN0cmluZ18oICJzb21ldGV4dCB3aXRoIHNwYWNlIiApCi0gICAgICAs
IHRydWVfKCB0cnVlICkKLSAgICAgICwgZmFsc2VfKCBmYWxzZSApCi0gICB7Ci0gICAgICBhcnJh
eTFfLmFwcGVuZCggMTIzNCApOwotICAgICAgb2JqZWN0MV9bImlkIl0gPSAxMjM0OwotICAgfQot
Ci0gICBzdHJ1Y3QgSXNDaGVjawotICAgewotICAgICAgLy8vIEluaXRpYWxpemUgYWxsIGNoZWNr
cyB0byBcYyBmYWxzZSBieSBkZWZhdWx0LgotICAgICAgSXNDaGVjaygpOwotCi0gICAgICBib29s
IGlzT2JqZWN0XzsKLSAgICAgIGJvb2wgaXNBcnJheV87Ci0gICAgICBib29sIGlzQm9vbF87Ci0g
ICAgICBib29sIGlzU3RyaW5nXzsKLSAgICAgIGJvb2wgaXNOdWxsXzsKLQotICAgICAgYm9vbCBp
c0ludF87Ci0gICAgICBib29sIGlzSW50NjRfOwotICAgICAgYm9vbCBpc1VJbnRfOwotICAgICAg
Ym9vbCBpc1VJbnQ2NF87Ci0gICAgICBib29sIGlzSW50ZWdyYWxfOwotICAgICAgYm9vbCBpc0Rv
dWJsZV87Ci0gICAgICBib29sIGlzTnVtZXJpY187Ci0gICB9OwotCi0gICB2b2lkIGNoZWNrQ29u
c3RNZW1iZXJDb3VudCggY29uc3QgSnNvbjo6VmFsdWUgJnZhbHVlLCB1bnNpZ25lZCBpbnQgZXhw
ZWN0ZWRDb3VudCApOwotCi0gICB2b2lkIGNoZWNrTWVtYmVyQ291bnQoIEpzb246OlZhbHVlICZ2
YWx1ZSwgdW5zaWduZWQgaW50IGV4cGVjdGVkQ291bnQgKTsKLQotICAgdm9pZCBjaGVja0lzKCBj
b25zdCBKc29uOjpWYWx1ZSAmdmFsdWUsIGNvbnN0IElzQ2hlY2sgJmNoZWNrICk7Ci0KLSAgIHZv
aWQgY2hlY2tJc0xlc3MoIGNvbnN0IEpzb246OlZhbHVlICZ4LCBjb25zdCBKc29uOjpWYWx1ZSAm
eSApOwotCi0gICB2b2lkIGNoZWNrSXNFcXVhbCggY29uc3QgSnNvbjo6VmFsdWUgJngsIGNvbnN0
IEpzb246OlZhbHVlICZ5ICk7Ci0KLSAgIC8vLyBOb3JtYWxpemUgdGhlIHJlcHJlc2VudGF0aW9u
IG9mIGZsb2F0aW5nLXBvaW50IG51bWJlciBieSBzdHJpcHBlZCBsZWFkaW5nIDAgaW4gZXhwb25l
bnQuCi0gICBzdGF0aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0ciggY29u
c3Qgc3RkOjpzdHJpbmcgJnMgKTsKK3N0cnVjdCBWYWx1ZVRlc3QgOiBKc29uVGVzdDo6VGVzdENh
c2UgeworICBKc29uOjpWYWx1ZSBudWxsXzsKKyAgSnNvbjo6VmFsdWUgZW1wdHlBcnJheV87Cisg
IEpzb246OlZhbHVlIGVtcHR5T2JqZWN0XzsKKyAgSnNvbjo6VmFsdWUgaW50ZWdlcl87CisgIEpz
b246OlZhbHVlIHVuc2lnbmVkSW50ZWdlcl87CisgIEpzb246OlZhbHVlIHNtYWxsVW5zaWduZWRJ
bnRlZ2VyXzsKKyAgSnNvbjo6VmFsdWUgcmVhbF87CisgIEpzb246OlZhbHVlIGZsb2F0XzsKKyAg
SnNvbjo6VmFsdWUgYXJyYXkxXzsKKyAgSnNvbjo6VmFsdWUgb2JqZWN0MV87CisgIEpzb246OlZh
bHVlIGVtcHR5U3RyaW5nXzsKKyAgSnNvbjo6VmFsdWUgc3RyaW5nMV87CisgIEpzb246OlZhbHVl
IHN0cmluZ187CisgIEpzb246OlZhbHVlIHRydWVfOworICBKc29uOjpWYWx1ZSBmYWxzZV87CisK
KyAgVmFsdWVUZXN0KCkKKyAgICAgIDogZW1wdHlBcnJheV8oSnNvbjo6YXJyYXlWYWx1ZSksIGVt
cHR5T2JqZWN0XyhKc29uOjpvYmplY3RWYWx1ZSksCisgICAgICAgIGludGVnZXJfKDEyMzQ1Njc4
OSksIHVuc2lnbmVkSW50ZWdlcl8oMzQ1Njc4OTB1KSwKKyAgICAgICAgc21hbGxVbnNpZ25lZElu
dGVnZXJfKEpzb246OlZhbHVlOjpVSW50KEpzb246OlZhbHVlOjptYXhJbnQpKSwKKyAgICAgICAg
cmVhbF8oMTIzNC41Njc4OSksIGZsb2F0XygwLjAwMzkwNjI1ZiksIGVtcHR5U3RyaW5nXygiIiks
IHN0cmluZzFfKCJhIiksCisgICAgICAgIHN0cmluZ18oInNvbWV0ZXh0IHdpdGggc3BhY2UiKSwg
dHJ1ZV8odHJ1ZSksIGZhbHNlXyhmYWxzZSkgeworICAgIGFycmF5MV8uYXBwZW5kKDEyMzQpOwor
ICAgIG9iamVjdDFfWyJpZCJdID0gMTIzNDsKKyAgfQorCisgIHN0cnVjdCBJc0NoZWNrIHsKKyAg
ICAvLy8gSW5pdGlhbGl6ZSBhbGwgY2hlY2tzIHRvIFxjIGZhbHNlIGJ5IGRlZmF1bHQuCisgICAg
SXNDaGVjaygpOworCisgICAgYm9vbCBpc09iamVjdF97ZmFsc2V9OworICAgIGJvb2wgaXNBcnJh
eV97ZmFsc2V9OworICAgIGJvb2wgaXNCb29sX3tmYWxzZX07CisgICAgYm9vbCBpc1N0cmluZ197
ZmFsc2V9OworICAgIGJvb2wgaXNOdWxsX3tmYWxzZX07CisKKyAgICBib29sIGlzSW50X3tmYWxz
ZX07CisgICAgYm9vbCBpc0ludDY0X3tmYWxzZX07CisgICAgYm9vbCBpc1VJbnRfe2ZhbHNlfTsK
KyAgICBib29sIGlzVUludDY0X3tmYWxzZX07CisgICAgYm9vbCBpc0ludGVncmFsX3tmYWxzZX07
CisgICAgYm9vbCBpc0RvdWJsZV97ZmFsc2V9OworICAgIGJvb2wgaXNOdW1lcmljX3tmYWxzZX07
CisgIH07CisKKyAgdm9pZCBjaGVja0NvbnN0TWVtYmVyQ291bnQoY29uc3QgSnNvbjo6VmFsdWUm
IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXhwZWN0
ZWRDb3VudCk7CisKKyAgdm9pZCBjaGVja01lbWJlckNvdW50KEpzb246OlZhbHVlJiB2YWx1ZSwg
dW5zaWduZWQgaW50IGV4cGVjdGVkQ291bnQpOworCisgIHZvaWQgY2hlY2tJcyhjb25zdCBKc29u
OjpWYWx1ZSYgdmFsdWUsIGNvbnN0IElzQ2hlY2smIGNoZWNrKTsKKworICB2b2lkIGNoZWNrSXNM
ZXNzKGNvbnN0IEpzb246OlZhbHVlJiB4LCBjb25zdCBKc29uOjpWYWx1ZSYgeSk7CisKKyAgdm9p
ZCBjaGVja0lzRXF1YWwoY29uc3QgSnNvbjo6VmFsdWUmIHgsIGNvbnN0IEpzb246OlZhbHVlJiB5
KTsKKworICAvLy8gTm9ybWFsaXplIHRoZSByZXByZXNlbnRhdGlvbiBvZiBmbG9hdGluZy1wb2lu
dCBudW1iZXIgYnkgc3RyaXBwZWQgbGVhZGluZworICAvLy8gMCBpbiBleHBvbmVudC4KKyAgc3Rh
dGljIEpzb246OlN0cmluZyBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKGNvbnN0IEpzb246OlN0
cmluZyYgcyk7CiB9OwogCi0KLXN0ZDo6c3RyaW5nIAotVmFsdWVUZXN0Ojpub3JtYWxpemVGbG9h
dGluZ1BvaW50U3RyKCBjb25zdCBzdGQ6OnN0cmluZyAmcyApCi17Ci0gICAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBpbmRleCA9IHMuZmluZF9sYXN0X29mKCAiZUUiICk7Ci0gICAgaWYgKCBpbmRl
eCAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCitKc29uOjpTdHJpbmcgVmFsdWVUZXN0Ojpub3JtYWxp
emVGbG9hdGluZ1BvaW50U3RyKGNvbnN0IEpzb246OlN0cmluZyYgcykgeworICBKc29uOjpTdHJp
bmc6OnNpemVfdHlwZSBpbmRleCA9IHMuZmluZF9sYXN0X29mKCJlRSIpOworICBpZiAoaW5kZXgg
IT0gSnNvbjo6U3RyaW5nOjpucG9zKSB7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgaGFz
U2lnbiA9CisgICAgICAgIChzW2luZGV4ICsgMV0gPT0gJysnIHx8IHNbaW5kZXggKyAxXSA9PSAn
LScpID8gMSA6IDA7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgZXhwb25lbnRTdGFydElu
ZGV4ID0gaW5kZXggKyAxICsgaGFzU2lnbjsKKyAgICBKc29uOjpTdHJpbmcgbm9ybWFsaXplZCA9
IHMuc3Vic3RyKDAsIGV4cG9uZW50U3RhcnRJbmRleCk7CisgICAgSnNvbjo6U3RyaW5nOjpzaXpl
X3R5cGUgaW5kZXhEaWdpdCA9CisgICAgICAgIHMuZmluZF9maXJzdF9ub3Rfb2YoJzAnLCBleHBv
bmVudFN0YXJ0SW5kZXgpOworICAgIEpzb246OlN0cmluZyBleHBvbmVudCA9ICIwIjsKKyAgICBp
ZiAoaW5kZXhEaWdpdCAhPSBKc29uOjpTdHJpbmc6Om5wb3MpIC8vIFRoZXJlIGlzIGFuIGV4cG9u
ZW50IGRpZmZlcmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gZnJvbSAwCiAgICAgewotICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGhhc1NpZ24g
PSAoc1tpbmRleCsxXSA9PSAnKycgfHwgc1tpbmRleCsxXSA9PSAnLScpID8gMSA6IDA7Ci0gICAg
ICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgZXhwb25lbnRTdGFydEluZGV4ID0gaW5kZXggKyAx
ICsgaGFzU2lnbjsKLSAgICAgICAgc3RkOjpzdHJpbmcgbm9ybWFsaXplZCA9IHMuc3Vic3RyKCAw
LCBleHBvbmVudFN0YXJ0SW5kZXggKTsKLSAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBp
bmRleERpZ2l0ID0gcy5maW5kX2ZpcnN0X25vdF9vZiggJzAnLCBleHBvbmVudFN0YXJ0SW5kZXgg
KTsKLSAgICAgICAgc3RkOjpzdHJpbmcgZXhwb25lbnQgPSAiMCI7Ci0gICAgICAgIGlmICggaW5k
ZXhEaWdpdCAhPSBzdGQ6OnN0cmluZzo6bnBvcyApIC8vIFRoZXJlIGlzIGFuIGV4cG9uZW50IGRp
ZmZlcmVudCBmcm9tIDAKLSAgICAgICAgewotICAgICAgICAgICAgZXhwb25lbnQgPSBzLnN1YnN0
ciggaW5kZXhEaWdpdCApOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVkICsg
ZXhwb25lbnQ7CisgICAgICBleHBvbmVudCA9IHMuc3Vic3RyKGluZGV4RGlnaXQpOwogICAgIH0K
LSAgICByZXR1cm4gczsKKyAgICByZXR1cm4gbm9ybWFsaXplZCArIGV4cG9uZW50OworICB9Cisg
IHJldHVybiBzOwogfQogCitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY2hlY2tOb3JtYWxp
emVGbG9hdGluZ1BvaW50U3RyKSB7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAu
MCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjAuMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X1NUUklOR19FUVVBTCgiMGUwIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMGUwIikpOwor
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMjM0LjAiLCBub3JtYWxpemVGbG9hdGlu
Z1BvaW50U3RyKCIxMjM0LjAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEy
MzQuMGUwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGlu
Z1BvaW50U3RyKCIxMjM0LjBlMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgi
MTIzNC4wZSswIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9h
dGluZ1BvaW50U3RyKCIxMjM0LjBlKzAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoIjEyMzRlLTEiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0ZS0xIikpOworICBK
U09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMjM0ZTEwIiwgbm9ybWFsaXplRmxvYXRpbmdQ
b2ludFN0cigiMTIzNGUxMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIz
NGUxMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplRmxvYXRpbmdQ
b2ludFN0cigiMTIzNGUwMTAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEy
MzRlKzEwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGlu
Z1BvaW50U3RyKCIxMjM0ZSswMTAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
IjEyMzRlLTEwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9h
dGluZ1BvaW50U3RyKCIxMjM0ZS0wMTAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoIjEyMzRlKzEwMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXpl
RmxvYXRpbmdQb2ludFN0cigiMTIzNGUrMTAwIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKCIxMjM0ZS0xMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1h
bGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlLTEwMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCgiMTIzNGUrMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9y
bWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNGUrMDAxIikpOworfQogCi1KU09OVEVTVF9GSVhU
VVJFKCBWYWx1ZVRlc3QsIGNoZWNrTm9ybWFsaXplRmxvYXRpbmdQb2ludFN0ciApCi17Ci0gICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjAuMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9p
bnRTdHIoIjAuMCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjBlMCIs
IG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjBlMCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJU
X1NUUklOR19FUVVBTCggIjEyMzQuMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzQu
MCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzQuMGUwIiwgbm9y
bWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNC4wZTAiKSApOwotICAgIEpTT05URVNUX0FTU0VS
VF9TVFJJTkdfRVFVQUwoICIxMjM0LjBlKzAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIx
MjM0LjBlKzAiKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoICIxMjM0ZS0x
Iiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNGUtMSIpICk7Ci0gICAgSlNPTlRFU1Rf
QVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzRlMTAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3Ry
KCIxMjM0ZTEwIikgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMTIzNGUx
MCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlMDEwIikgKTsKLSAgICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMTIzNGUrMTAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50
U3RyKCIxMjM0ZSswMTAiKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoICIx
MjM0ZS0xMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlLTAxMCIpICk7Ci0gICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzRlKzEwMCIsIG5vcm1hbGl6ZUZsb2F0
aW5nUG9pbnRTdHIoIjEyMzRlKzEwMCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19F
UVVBTCggIjEyMzRlLTEwMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlLTEwMCIp
ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzRlKzEiLCBub3JtYWxp
emVGbG9hdGluZ1BvaW50U3RyKCIxMjM0ZSswMDEiKSApOworSlNPTlRFU1RfRklYVFVSRShWYWx1
ZVRlc3QsIG1lbWJlckNvdW50KSB7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVy
Q291bnQoZW1wdHlBcnJheV8sIDApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1i
ZXJDb3VudChlbXB0eU9iamVjdF8sIDApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tN
ZW1iZXJDb3VudChhcnJheTFfLCAxKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVt
YmVyQ291bnQob2JqZWN0MV8sIDEpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1i
ZXJDb3VudChudWxsXywgMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNv
dW50KGludGVnZXJfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291
bnQodW5zaWduZWRJbnRlZ2VyXywgMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01l
bWJlckNvdW50KHNtYWxsVW5zaWduZWRJbnRlZ2VyXywgMCkpOworICBKU09OVEVTVF9BU1NFUlRf
UFJFRChjaGVja01lbWJlckNvdW50KHJlYWxfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVE
KGNoZWNrTWVtYmVyQ291bnQoZW1wdHlTdHJpbmdfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrTWVtYmVyQ291bnQoc3RyaW5nXywgMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJF
RChjaGVja01lbWJlckNvdW50KHRydWVfLCAwKSk7CiB9CiAKK0pTT05URVNUX0ZJWFRVUkUoVmFs
dWVUZXN0LCBvYmplY3RzKSB7CisgIC8vIFR5cGVzCisgIElzQ2hlY2sgY2hlY2tzOworICBjaGVj
a3MuaXNPYmplY3RfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyhlbXB0
eU9iamVjdF8sIGNoZWNrcykpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKG9iamVj
dDFfLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6b2JqZWN0VmFs
dWUsIGVtcHR5T2JqZWN0Xy50eXBlKCkpOworCisgIC8vIEVtcHR5IG9iamVjdCBva2F5CisgIEpT
T05URVNUX0FTU0VSVChlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1
ZSkpOworCisgIC8vIE5vbi1lbXB0eSBvYmplY3Qgbm90IG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJU
KCFvYmplY3QxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisKKyAgLy8gQWx3
YXlzIG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKGVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICAvLyBOZXZlciBva2F5CisgIEpTT05URVNUX0FTU0VS
VCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1
ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVy
dGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eU9iamVj
dF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQoIWVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKwor
ICAvLyBBY2Nlc3MgdGhyb3VnaCBjb25zdCByZWZlcmVuY2UKKyAgY29uc3QgSnNvbjo6VmFsdWUm
IGNvbnN0T2JqZWN0ID0gb2JqZWN0MV87CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OlZhbHVlKDEyMzQpLCBjb25zdE9iamVjdFsiaWQiXSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjpWYWx1ZSgpLCBjb25zdE9iamVjdFsidW5rbm93biBpZCJdKTsKKworICAvLyBBY2Nl
c3MgdGhyb3VnaCBmaW5kKCkKKyAgY29uc3QgY2hhciBpZEtleVtdID0gImlkIjsKKyAgY29uc3Qg
SnNvbjo6VmFsdWUqIGZvdW5kSWQgPSBvYmplY3QxXy5maW5kKGlkS2V5LCBpZEtleSArIHN0cmxl
bihpZEtleSkpOworICBKU09OVEVTVF9BU1NFUlQoZm91bmRJZCAhPSBudWxscHRyKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCAqZm91bmRJZCk7CisKKyAgY29u
c3QgY2hhciB1bmtub3duSWRLZXlbXSA9ICJ1bmtub3duIGlkIjsKKyAgY29uc3QgSnNvbjo6VmFs
dWUqIGZvdW5kVW5rbm93bklkID0KKyAgICAgIG9iamVjdDFfLmZpbmQodW5rbm93bklkS2V5LCB1
bmtub3duSWRLZXkgKyBzdHJsZW4odW5rbm93bklkS2V5KSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChudWxscHRyLCBmb3VuZFVua25vd25JZCk7CisKKyAgLy8gQWNjZXNzIHRocm91Z2ggZGVt
YW5kKCkKKyAgY29uc3QgY2hhciB5ZXRBbm90aGVySWRLZXlbXSA9ICJ5ZXQgYW5vdGhlciBpZCI7
CisgIGNvbnN0IEpzb246OlZhbHVlKiBmb3VuZFlldEFub3RoZXJJZCA9CisgICAgICBvYmplY3Qx
Xy5maW5kKHlldEFub3RoZXJJZEtleSwgeWV0QW5vdGhlcklkS2V5ICsgc3RybGVuKHlldEFub3Ro
ZXJJZEtleSkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwobnVsbHB0ciwgZm91bmRZZXRBbm90
aGVySWQpOworICBKc29uOjpWYWx1ZSogZGVtYW5kZWRZZXRBbm90aGVySWQgPSBvYmplY3QxXy5k
ZW1hbmQoCisgICAgICB5ZXRBbm90aGVySWRLZXksIHlldEFub3RoZXJJZEtleSArIHN0cmxlbih5
ZXRBbm90aGVySWRLZXkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGRlbWFuZGVkWWV0QW5vdGhlcklk
ICE9IG51bGxwdHIpOworICAqZGVtYW5kZWRZZXRBbm90aGVySWQgPSAiYmF6IjsKKworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoImJheiIpLCBvYmplY3QxX1sieWV0IGFub3Ro
ZXIgaWQiXSk7CisKKyAgLy8gQWNjZXNzIHRocm91Z2ggbm9uLWNvbnN0IHJlZmVyZW5jZQorICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCksIG9iamVjdDFfWyJpZCJdKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCksIG9iamVjdDFfWyJ1bmtub3du
IGlkIl0pOworCisgIG9iamVjdDFfWyJzb21lIG90aGVyIGlkIl0gPSAiZm9vIjsKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCJmb28iKSwgb2JqZWN0MV9bInNvbWUgb3RoZXIg
aWQiXSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgiZm9vIiksIG9iamVj
dDFfWyJzb21lIG90aGVyIGlkIl0pOworCisgIC8vIFJlbW92ZS4KKyAgSnNvbjo6VmFsdWUgZ290
OworICBib29sIGRpZDsKKyAgZGlkID0gb2JqZWN0MV8ucmVtb3ZlTWVtYmVyKCJzb21lIG90aGVy
IGlkIiwgJmdvdCk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgiZm9vIiks
IGdvdCk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCBkaWQpOworICBnb3QgPSBKc29u
OjpWYWx1ZSgiYmFyIik7CisgIGRpZCA9IG9iamVjdDFfLnJlbW92ZU1lbWJlcigic29tZSBvdGhl
ciBpZCIsICZnb3QpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoImJhciIp
LCBnb3QpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIGRpZCk7CisKKyAgb2JqZWN0
MV9bInNvbWUgb3RoZXIgaWQiXSA9ICJmb28iOworICBKc29uOjpWYWx1ZSogZ290UHRyID0gbnVs
bHB0cjsKKyAgZGlkID0gb2JqZWN0MV8ucmVtb3ZlTWVtYmVyKCJzb21lIG90aGVyIGlkIiwgZ290
UHRyKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKG51bGxwdHIsIGdvdFB0cik7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCh0cnVlLCBkaWQpOworfQogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1
ZVRlc3QsIG1lbWJlckNvdW50ICkKLXsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01l
bWJlckNvdW50KGVtcHR5QXJyYXlfLCAwKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNo
ZWNrTWVtYmVyQ291bnQoZW1wdHlPYmplY3RfLCAwKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoIGNoZWNrTWVtYmVyQ291bnQoYXJyYXkxXywgMSkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKCBjaGVja01lbWJlckNvdW50KG9iamVjdDFfLCAxKSApOwotICAgSlNPTlRFU1RfQVNTRVJU
X1BSRUQoIGNoZWNrTWVtYmVyQ291bnQobnVsbF8sIDApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
UFJFRCggY2hlY2tNZW1iZXJDb3VudChpbnRlZ2VyXywgMCkgKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9QUkVEKCBjaGVja01lbWJlckNvdW50KHVuc2lnbmVkSW50ZWdlcl8sIDApICk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfUFJFRCggY2hlY2tNZW1iZXJDb3VudChzbWFsbFVuc2lnbmVkSW50ZWdlcl8s
IDApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tNZW1iZXJDb3VudChyZWFsXywg
MCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50KGVtcHR5U3Ry
aW5nXywgMCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50KHN0
cmluZ18sIDApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tNZW1iZXJDb3VudCh0
cnVlXywgMCkgKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBhcnJheXMpIHsKKyAgY29u
c3QgdW5zaWduZWQgaW50IGluZGV4MCA9IDA7CisKKyAgLy8gVHlwZXMKKyAgSXNDaGVjayBjaGVj
a3M7CisgIGNoZWNrcy5pc0FycmF5XyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNo
ZWNrSXMoZW1wdHlBcnJheV8sIGNoZWNrcykpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVj
a0lzKGFycmF5MV8sIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjph
cnJheVZhbHVlLCBhcnJheTFfLnR5cGUoKSk7CisKKyAgLy8gRW1wdHkgYXJyYXkgb2theQorICBK
U09OVEVTVF9BU1NFUlQoZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1
ZSkpOworCisgIC8vIE5vbi1lbXB0eSBhcnJheSBub3Qgb2theQorICBKU09OVEVTVF9BU1NFUlQo
IWFycmF5MV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworCisgIC8vIEFsd2F5
cyBva2F5CisgIEpTT05URVNUX0FTU0VSVChlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6YXJyYXlWYWx1ZSkpOworCisgIC8vIE5ldmVyIG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKCFl
bXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWlu
dFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRv
KEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlzQ29u
dmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0
eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKworICAvLyBBY2Nl
c3MgdGhyb3VnaCBjb25zdCByZWZlcmVuY2UKKyAgY29uc3QgSnNvbjo6VmFsdWUmIGNvbnN0QXJy
YXkgPSBhcnJheTFfOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCks
IGNvbnN0QXJyYXlbaW5kZXgwXSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1
ZSgxMjM0KSwgY29uc3RBcnJheVswXSk7CisKKyAgLy8gQWNjZXNzIHRocm91Z2ggbm9uLWNvbnN0
IHJlZmVyZW5jZQorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCksIGFy
cmF5MV9baW5kZXgwXSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0
KSwgYXJyYXkxX1swXSk7CisKKyAgYXJyYXkxX1syXSA9IEpzb246OlZhbHVlKDE3KTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCksIGFycmF5MV9bMV0pOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTcpLCBhcnJheTFfWzJdKTsKKyAgSnNvbjo6VmFs
dWUgZ290OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgYXJyYXkxXy5yZW1vdmVJbmRl
eCgyLCAmZ290KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxNyksIGdv
dCk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgYXJyYXkxXy5yZW1vdmVJbmRleCgy
LCAmZ290KSk7IC8vIGdvbmUgbm93Cit9CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgYXJy
YXlJc3N1ZTI1MikgeworICBpbnQgY291bnQgPSA1OworICBKc29uOjpWYWx1ZSByb290OworICBK
c29uOjpWYWx1ZSBpdGVtOworICByb290WyJhcnJheSJdID0gSnNvbjo6VmFsdWU6Om51bGxSZWY7
CisgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgIGl0ZW1bImEiXSA9IGk7
CisgICAgaXRlbVsiYiJdID0gaTsKKyAgICByb290WyJhcnJheSJdW2ldID0gaXRlbTsKKyAgfQor
ICAvLyBKU09OVEVTVF9BU1NFUlRfRVFVQUwoNSwgcm9vdFsiYXJyYXkiXS5zaXplKCkpOwogfQog
CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgbnVsbCkgeworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoSnNvbjo6bnVsbFZhbHVlLCBudWxsXy50eXBlKCkpOworCisgIElzQ2hlY2sgY2hlY2tz
OworICBjaGVja3MuaXNOdWxsXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNr
SXMobnVsbF8sIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29u
dmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlz
Q29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxf
LmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQobnVsbF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpJbnQoMCksIG51bGxfLmFzSW50KCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6TGFyZ2VzdEludCgwKSwgbnVsbF8uYXNMYXJnZXN0
SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VUludCgwKSwgbnVsbF8uYXNV
SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6TGFyZ2VzdFVJbnQoMCksIG51
bGxfLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIG51bGxf
LmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCBudWxsXy5hc0Zsb2F0
KCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBudWxsXy5hc1N0cmluZygp
KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWU6Om51bGwsIG51bGxfKTsK
KworICAvLyBUZXN0IHVzaW5nIGEgVmFsdWUgaW4gYSBib29sZWFuIGNvbnRleHQgKGZhbHNlIGlm
ZiBudWxsKQorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwobnVsbF8sIGZhbHNlKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKG9iamVjdDFfLCB0cnVlKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KCFudWxsXywgdHJ1ZSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCghb2JqZWN0MV8sIGZhbHNl
KTsKK30KKworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIHN0cmluZ3MpIHsKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKEpzb246OnN0cmluZ1ZhbHVlLCBzdHJpbmcxXy50eXBlKCkpOworCisg
IElzQ2hlY2sgY2hlY2tzOworICBjaGVja3MuaXNTdHJpbmdfID0gdHJ1ZTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoY2hlY2tJcyhlbXB0eVN0cmluZ18sIGNoZWNrcykpOworICBKU09OVEVTVF9B
U1NFUlRfUFJFRChjaGVja0lzKHN0cmluZ18sIGNoZWNrcykpOworICBKU09OVEVTVF9BU1NFUlRf
UFJFRChjaGVja0lzKHN0cmluZzFfLCBjaGVja3MpKTsKKworICAvLyBFbXB0eSBzdHJpbmcgb2th
eQorICBKU09OVEVTVF9BU1NFUlQoZW1wdHlTdHJpbmdfLmlzQ29udmVydGlibGVUbyhKc29uOjpu
dWxsVmFsdWUpKTsKKworICAvLyBOb24tZW1wdHkgc3RyaW5nIG5vdCBva2F5CisgIEpTT05URVNU
X0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworCisg
IC8vIEFsd2F5cyBva2F5CisgIEpTT05URVNUX0FTU0VSVChzdHJpbmcxXy5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKworICAvLyBOZXZlciBva2F5CisgIEpTT05URVNUX0FT
U0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnJlYWxWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
ImEiLCBzdHJpbmcxXy5hc1N0cmluZygpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TCgiYSIsIHN0cmluZzFfLmFzQ1N0cmluZygpKTsKK30KIAotSlNPTlRFU1RfRklYVFVSRSggVmFs
dWVUZXN0LCBvYmplY3RzICkKLXsKLSAgIC8vIFR5cGVzCi0gICBJc0NoZWNrIGNoZWNrczsKLSAg
IGNoZWNrcy5pc09iamVjdF8gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNr
SXMoIGVtcHR5T2JqZWN0XywgY2hlY2tzICkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBj
aGVja0lzKCBvYmplY3QxXywgY2hlY2tzICkgKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0
LCBib29scykgeworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6Ym9vbGVhblZhbHVlLCBm
YWxzZV8udHlwZSgpKTsKKworICBJc0NoZWNrIGNoZWNrczsKKyAgY2hlY2tzLmlzQm9vbF8gPSB0
cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKGZhbHNlXywgY2hlY2tzKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModHJ1ZV8sIGNoZWNrcykpOworCisgIC8vIEZh
bHNlIG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKGZhbHNlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
bnVsbFZhbHVlKSk7CisKKyAgLy8gVHJ1ZSBub3Qgb2theQorICBKU09OVEVTVF9BU1NFUlQoIXRy
dWVfLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKworICAvLyBBbHdheXMgb2th
eQorICBKU09OVEVTVF9BU1NFUlQodHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVl
KSk7CisgIEpTT05URVNUX0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVh
bFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
Ym9vbGVhblZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6c3RyaW5nVmFsdWUpKTsKKworICAvLyBOZXZlciBva2F5CisgIEpTT05URVNUX0FTU0VS
VCghdHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKCF0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdHJ1ZV8uYXNCb29sKCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMSwgdHJ1ZV8uYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgx
LCB0cnVlXy5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB0cnVl
Xy5hc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB0cnVlXy5hc0xhcmdlc3RV
SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMS4wLCB0cnVlXy5hc0RvdWJsZSgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEuMCwgdHJ1ZV8uYXNGbG9hdCgpKTsKKworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIGZhbHNlXy5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgwLCBmYWxzZV8uYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgw
LCBmYWxzZV8uYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgZmFs
c2VfLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIGZhbHNlXy5hc0xhcmdl
c3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCBmYWxzZV8uYXNEb3VibGUo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIGZhbHNlXy5hc0Zsb2F0KCkpOworfQog
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6b2JqZWN0VmFsdWUsIGVtcHR5T2JqZWN0
Xy50eXBlKCkpOwotCi0gICAvLyBFbXB0eSBvYmplY3Qgb2theQotICAgSlNPTlRFU1RfQVNTRVJU
KGVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CitKU09OVEVT
VF9GSVhUVVJFKFZhbHVlVGVzdCwgaW50ZWdlcnMpIHsKKyAgSXNDaGVjayBjaGVja3M7CisgIEpz
b246OlZhbHVlIHZhbDsKKworICAvLyBDb252ZXJzaW9ucyB0aGF0IGRvbid0IGRlcGVuZCBvbiB0
aGUgdmFsdWUuCisgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcp
LmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQo
SnNvbjo6VmFsdWUoMTcpLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKCFKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFy
cmF5VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0
aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZh
bHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoSnNvbjo6VmFsdWUoMTdVKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpz
b246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3VSku
aXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFK
c29uOjpWYWx1ZSgxN1UpLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisg
IEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
cmVhbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNy4wKS5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZh
bHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCFKc29uOjpWYWx1ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlW
YWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGli
bGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisgIC8vIERlZmF1bHQgaW50CisgIHZhbCA9IEpz
b246OlZhbHVlKEpzb246OmludFZhbHVlKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hl
Y2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5p
c1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0lu
dGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNO
dW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVj
a3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxs
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWlu
dFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0ludCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
MCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZh
bC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRmxvYXQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBE
ZWZhdWx0IHVpbnQKKyAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6dWludFZhbHVlKTsKKworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBj
aGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVlOworICBjaGVja3MuaXNJ
bnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2
NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3Vi
bGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NF
UlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgwLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNM
YXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFs
c2UsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAiLCB2
YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gRGVmYXVsdCByZWFsCisgIHZhbCA9IEpzb246OlZhbHVl
KEpzb246OnJlYWxWYWx1ZSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxW
YWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tz
LmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJ
bnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVn
cmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1l
cmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3Mp
KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzSW50KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDAsIHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwu
YXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRG91
YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIwLjAiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gWmVybyAo
c2lnbmVkIGNvbnN0cnVjdG9yIGFyZykKKyAgdmFsID0gSnNvbjo6VmFsdWUoMCk7CisKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVj
a3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVlOworICBjaGVja3MuaXNJbnQ2
NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8g
PSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVf
ID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRf
UFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgwLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJn
ZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2Us
IHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAiLCB2YWwu
YXNTdHJpbmcoKSk7CisKKyAgLy8gWmVybyAodW5zaWduZWQgY29uc3RydWN0b3IgYXJnKQorICB2
YWwgPSBKc29uOjpWYWx1ZSgwdSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVp
bnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3Mu
aXNJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUlu
dF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdy
YWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVy
aWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykp
OworCisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1
ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1
ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFs
dWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzSW50KCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKDAsIHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2
YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFz
RG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIwIiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIFplcm8g
KGZsb2F0aW5nLXBvaW50IGNvbnN0cnVjdG9yIGFyZykKKyAgdmFsID0gSnNvbjo6VmFsdWUoMC4w
KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgp
KTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVlOworICBj
aGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNr
cy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVj
a3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNT
RVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgw
LCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFz
VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoIjAuMCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyAyXjIwIChzaWduZWQgY29uc3RydWN0
b3IgYXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZSgxIDw8IDIwKTsKKworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOworICBjaGVja3MgPSBJc0NoZWNr
KCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVlOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwor
ICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBj
aGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAg
Y2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lz
KHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVU
byhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVU
byhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjAp
LCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5h
c0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5h
c1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdl
c3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNEb3Vi
bGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0Zsb2F0KCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTA0ODU3NiIsIHZhbC5hc1N0cmluZygpKTsKKworICAv
LyAyXjIwICh1bnNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCisgIHZhbCA9IEpzb246OlZhbHVlKEpz
b246OlVJbnQoMSA8PCAyMCkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjp1aW50
VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlz
SW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnRf
ID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFs
XyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmlj
XyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsK
KworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVl
KSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVl
KSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1
ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0ludCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzVUludCgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKCIxMDQ4NTc2IiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIDJeMjAgKGZsb2F0aW5n
LXBvaW50IGNvbnN0cnVjdG9yIGFyZykKKyAgdmFsID0gSnNvbjo6VmFsdWUoKDEgPDwgMjApIC8g
MS4wKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlw
ZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwor
ICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNo
ZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBj
aGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBK
U09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVT
VF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVT
VF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoKDEgPDwgMjApLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoMSA8PCAyMCksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1
ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAg
ICIxMDQ4NTc2LjAiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVzdDo6
VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworCisgIC8vIC0yXjIwCisgIHZhbCA9IEpz
b246OlZhbHVlKC0oMSA8PCAyMCkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpp
bnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3Mu
aXNJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50
ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051
bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNr
cykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxs
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNJ
bnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0
SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLSgxIDw8IDIwKSwgdmFsLmFzRG91Ymxl
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLSgxIDw8IDIwKSwgdmFsLmFzRmxvYXQoKSk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItMTA0ODU3NiIsIHZhbC5hc1N0cmluZygpKTsKKworICAv
LyBpbnQzMiBtYXgKKyAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMybWF4KTsKKworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9
IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9
IHRydWU7CisgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRy
dWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0
cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVE
KGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChr
aW50MzJtYXgsIHZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1h
eCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1h
eCwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFs
LmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtYXgsIHZh
bC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtmaW50MzJtYXgsIHZhbC5h
c0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMjE0NzQ4MzY0NyIsIHZhbC5hc1N0cmlu
ZygpKTsKKworICAvLyBpbnQzMiBtaW4KKyAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMybWluKTsK
KworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwor
CisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNr
cy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNr
cy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NF
UlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoa2ludDMybWluLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChraW50MzJtaW4sIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChraW50MzJtaW4sIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGtpbnQzMm1pbiwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0
cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItMjE0
NzQ4MzY0OCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyB1aW50MzIgbWF4CisgIHZhbCA9IEpz
b246OlZhbHVlKGt1aW50MzJtYXgpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjp1
aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tz
LmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludF8gPSB0cnVlOworICBjaGVja3MuaXNV
SW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlz
RG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VS
VCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwogCi0gICAvLyBOb24tZW1w
dHkgb2JqZWN0IG5vdCBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQoIW9iamVjdDFfLmlzQ29udmVy
dGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyNpZm5kZWYgSlNPTl9OT19JTlQ2NAorICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQzMm1heCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyNlbmRp
ZgorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQzMm1heCwgdmFsLmFzVUludCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50MzJtYXgsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwor
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQzMm1heCwgdmFsLmFzRG91YmxlKCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoa2Z1aW50MzJtYXgsIHZhbC5hc0Zsb2F0KCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X1NUUklOR19FUVVBTCgiNDI5NDk2NzI5NSIsIHZhbC5hc1N0cmluZygpKTsKIAotICAgLy8gQWx3
YXlzIG9rYXkKLSAgIEpTT05URVNUX0FTU0VSVChlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRv
KEpzb246Om9iamVjdFZhbHVlKSk7CisjaWZkZWYgSlNPTl9OT19JTlQ2NAorICAvLyBpbnQ2NCBt
YXgKKyAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGtpbnQ2NG1heCkpOworCisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9
IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVy
aWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykp
OworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFs
dWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50
VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZG91YmxlKGtpbnQ2NG1heCksIHZh
bC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KGtpbnQ2NG1heCks
IHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9v
bCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiOS4yMjMzN2UrMTgiLCB2YWwu
YXNTdHJpbmcoKSk7CisKKyAgLy8gaW50NjQgbWluCisgIHZhbCA9IEpzb246OlZhbHVlKGRvdWJs
ZShraW50NjRtaW4pKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVl
LCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0RvdWJs
ZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VS
VF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKGRvdWJsZShraW50NjRtaW4pLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChmbG9hdChraW50NjRtaW4pLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIi05LjIyMzM3ZSsxOCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyB1aW50NjQg
bWF4CisgIHZhbCA9IEpzb246OlZhbHVlKGRvdWJsZShrdWludDY0bWF4KSk7CisKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tz
ID0gSXNDaGVjaygpOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVt
ZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tz
KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxW
YWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChkb3VibGUoa3VpbnQ2NG1heCks
IHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KGt1aW50NjRt
YXgpLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5h
c0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEuODQ0NjdlKzE5Iiwg
dmFsLmFzU3RyaW5nKCkpOworI2Vsc2UgLy8gaWZkZWYgSlNPTl9OT19JTlQ2NAorICAvLyAyXjQw
IChzaWduZWQgY29uc3RydWN0b3IgYXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpJbnQ2
NCgxKSA8PCA0MCk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2
YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludDY0XyA9
IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8g
PSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18g
PSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkp
OworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1
ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2
YWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8
PCA0MCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNv
bjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0RvdWJsZSgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5h
c0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTA5OTUxMTYyNzc3NiIsIHZhbC5hc1N0
cmluZygpKTsKKworICAvLyAyXjQwICh1bnNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCisgIHZhbCA9
IEpzb246OlZhbHVlKEpzb246OlVJbnQ2NCgxKSA8PCA0MCk7CisKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKEpzb246OnVpbnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVj
aygpOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1
ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRy
dWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
KEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzVUludDY0
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFs
LmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQo
MSkgPDwgNDApLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNv
bjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
IjEwOTk1MTE2Mjc3NzYiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gMl40MCAoZmxvYXRpbmct
cG9pbnQgY29uc3RydWN0b3IgYXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZSgoSnNvbjo6SW50NjQo
MSkgPDwgNDApIC8gMS4wKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZh
bHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0lu
dDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRl
Z3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVt
ZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tz
KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxW
YWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwg
NDApLCB2YWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2
NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0Rv
dWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCks
IHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9v
bCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAgICIxMDk5NTExNjI3
Nzc2LjAiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVzdDo6VG9Kc29u
U3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworCisgIC8vIC0yXjQwCisgIHZhbCA9IEpzb246OlZh
bHVlKC0oSnNvbjo6SW50NjQoMSkgPDwgNDApKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
SnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAg
Y2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAg
Y2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0ludDY0
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZh
bC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKEpzb246OkludDY0
KDEpIDw8IDQwKSwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLShK
c29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TCgiLTEwOTk1MTE2Mjc3NzYiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gaW50NjQgbWF4Cisg
IHZhbCA9IEpzb246OlZhbHVlKEpzb246OkludDY0KGtpbnQ2NG1heCkpOworCisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0g
SXNDaGVjaygpOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50NjRf
ID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91Ymxl
XyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJU
X1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoa2ludDY0bWF4LCB2YWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGtpbnQ2NG1heCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGtpbnQ2NG1heCwgdmFsLmFzVUludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2lu
dDY0bWF4LCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGRv
dWJsZShraW50NjRtYXgpLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChmbG9hdChraW50NjRtYXgpLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
IjkyMjMzNzIwMzY4NTQ3NzU4MDciLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gaW50NjQgbWF4
IChmbG9hdGluZyBwb2ludCBjb25zdHJ1Y3RvcikuIE5vdGUgdGhhdCBraW50NjRtYXggaXMgbm90
IGV4YWN0bHkKKyAgLy8gcmVwcmVzZW50YWJsZSBhcyBhIGRvdWJsZSwgYW5kIHdpbGwgYmUgcm91
bmRlZCB1cCB0byBiZSBoaWdoZXIuCisgIHZhbCA9IEpzb246OlZhbHVlKGRvdWJsZShraW50NjRt
YXgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlw
ZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVl
OworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1
ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChj
aGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChK
c29uOjpVSW50NjQoMSkgPDwgNjMsIHZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKEpzb246OlVJbnQ2NCgxKSA8PCA2MywgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCh1aW50NjRUb0RvdWJsZShKc29uOjpVSW50NjQoMSkgPDwgNjMp
LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChKc29uOjpV
SW50NjQoMSkgPDwgNjMpLCB2YWwuYXNGbG9hdCgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgK
KyAgICAgICI5LjIyMzM3MjAzNjg1NDc3NThlKzE4IiwKKyAgICAgIG5vcm1hbGl6ZUZsb2F0aW5n
UG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwuYXNTdHJpbmcoKSkpKTsKKworICAv
LyBpbnQ2NCBtaW4KKyAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6SW50NjQoa2ludDY0bWluKSk7
CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsK
KworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNo
ZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBj
aGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMo
dmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVU
byhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1p
biwgdmFsLmFzSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtaW4sIHZh
bC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChkb3VibGUoa2ludDY0
bWluKSwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoa2lu
dDY0bWluKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2
YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItOTIyMzM3MjAz
Njg1NDc3NTgwOCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBpbnQ2NCBtaW4gKGZsb2F0aW5n
IHBvaW50IGNvbnN0cnVjdG9yKS4gTm90ZSB0aGF0IGtpbnQ2NG1pbiAqaXMqIGV4YWN0bHkKKyAg
Ly8gcmVwcmVzZW50YWJsZSBhcyBhIGRvdWJsZS4KKyAgdmFsID0gSnNvbjo6VmFsdWUoZG91Ymxl
KGtpbnQ2NG1pbikpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUs
IHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50NjRf
ID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91Ymxl
XyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJU
X1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoa2ludDY0bWluLCB2YWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGtpbnQ2NG1pbiwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KC05MjIzMzcyMDM2ODU0Nzc1ODA4LjAsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKC05MjIzMzcyMDM2ODU0Nzc1ODA4LjAsIHZhbC5hc0Zsb2F0KCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X1NUUklOR19FUVVBTCgKKyAgICAgICItOS4yMjMzNzIwMzY4NTQ3NzU4ZSsxOCIsCisgICAgICBu
b3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3Ry
aW5nKCkpKSk7CisKKyAgLy8gMTBeMTkKKyAgY29uc3QgYXV0byB0ZW5fdG9fMTkgPSBzdGF0aWNf
Y2FzdDxKc29uOjpVSW50NjQ+KDFlMTkpOworICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpVSW50
NjQodGVuX3RvXzE5KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1
ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNVSW50
NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91
YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwodGVuX3RvXzE5LCB2YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCh0ZW5fdG9fMTksIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwodWludDY0VG9Eb3VibGUodGVuX3RvXzE5KSwgdmFsLmFzRG91YmxlKCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQodWludDY0VG9Eb3VibGUodGVuX3RvXzE5KSksIHZhbC5h
c0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTAwMDAwMDAwMDAwMDAwMDAwMDAiLCB2
YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gMTBeMTkgKGRvdWJsZSBjb25zdHJ1Y3RvcikuIE5vdGUg
dGhhdCAxMF4xOSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlCisgIC8vIGFzIGEgZG91Ymxl
LgorICB2YWwgPSBKc29uOjpWYWx1ZSh1aW50NjRUb0RvdWJsZSh0ZW5fdG9fMTkpKTsKKworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBj
aGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3Mu
aXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tz
LmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwg
Y2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxZTE5LCB2YWwuYXNE
b3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxZTE5LCB2YWwuYXNGbG9hdCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoCisgICAgICAiMWUrMTkiLAorICAgICAgbm9ybWFsaXplRmxv
YXRpbmdQb2ludFN0cihKc29uVGVzdDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOwor
CisgIC8vIHVpbnQ2NCBtYXgKKyAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6VUludDY0KGt1aW50
NjRtYXgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwu
dHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0
cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0g
dHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJF
RChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChrdWludDY0bWF4LCB2YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChr
dWludDY0bWF4LCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KHVpbnQ2NFRvRG91YmxlKGt1aW50NjRtYXgpLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChmbG9hdCh1aW50NjRUb0RvdWJsZShrdWludDY0bWF4KSksIHZhbC5hc0Zs
b2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTg0NDY3NDQwNzM3MDk1NTE2MTUiLCB2YWwu
YXNTdHJpbmcoKSk7CisKKyAgLy8gdWludDY0IG1heCAoZmxvYXRpbmcgcG9pbnQgY29uc3RydWN0
b3IpLiBOb3RlIHRoYXQga3VpbnQ2NG1heCBpcyBub3QKKyAgLy8gZXhhY3RseSByZXByZXNlbnRh
YmxlIGFzIGEgZG91YmxlLCBhbmQgd2lsbCBiZSByb3VuZGVkIHVwIHRvIGJlIGhpZ2hlci4KKyAg
dmFsID0gSnNvbjo6VmFsdWUodWludDY0VG9Eb3VibGUoa3VpbnQ2NG1heCkpOworCisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNr
cyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051
bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNr
cykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxs
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Omlu
dFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1
aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMTg0NDY3NDQwNzM3MDk1NTE2
MTYuMCwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMTg0NDY3NDQw
NzM3MDk1NTE2MTYuMCwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0
cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAg
ICAgIjEuODQ0Njc0NDA3MzcwOTU1MmUrMTkiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2lu
dFN0cihKc29uVGVzdDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworI2VuZGlmCit9
CiAKLSAgIC8vIE5ldmVyIG9rYXkKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlz
Q29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIWVt
cHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjpy
ZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGli
bGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmpl
Y3RfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworSlNPTlRFU1RfRklYVFVS
RShWYWx1ZVRlc3QsIG5vbkludGVnZXJzKSB7CisgIElzQ2hlY2sgY2hlY2tzOworICBKc29uOjpW
YWx1ZSB2YWw7CisKKyAgLy8gU21hbGwgcG9zaXRpdmUgbnVtYmVyCisgIHZhbCA9IEpzb246OlZh
bHVlKDEuNSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFs
LnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNEb3VibGVfID0g
dHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJF
RChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMS41LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgxLjUsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdmFs
LmFzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzTGFyZ2VzdEludCgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgxLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgiMS41
IiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIFNtYWxsIG5lZ2F0aXZlIG51bWJlcgorICB2YWwg
PSBKc29uOjpWYWx1ZSgtMS41KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVh
bFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5p
c0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNU
X0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQo
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQo
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7CisgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsK
KworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEuNSwgdmFsLmFzRG91YmxlKCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoLTEuNSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgtMSwgdmFsLmFzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEsIHZh
bC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNC
b29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoIi0xLjUiLCB2YWwuYXNTdHJpbmcoKSk7
CisKKyAgLy8gQSBiaXQgb3ZlciBpbnQzMiBtYXgKKyAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMy
bWF4ICsgMC41KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2
YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0RvdWJsZV8g
PSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMjE0NzQ4MzY0Ny41LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChmbG9hdCgyMTQ3NDgzNjQ3LjUpLCB2YWwuYXNGbG9hdCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKDIxNDc0ODM2NDdVLCB2YWwuYXNVSW50KCkpOworI2lmZGVm
IEpTT05fSEFTX0lOVDY0CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgyMTQ3NDgzNjQ3TCwgdmFs
LmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDIxNDc0ODM2NDdVLCB2
YWwuYXNMYXJnZXN0VUludCgpKTsKKyNlbmRpZgorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1
ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKAorICAgICAgIjIxNDc0
ODM2NDcuNSIsCisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pz
b25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7CisKKyAgLy8gQSBiaXQgdW5kZXIgaW50MzIgbWlu
CisgIHZhbCA9IEpzb246OlZhbHVlKGtpbnQzMm1pbiAtIDAuNSk7CisKKyAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXND
aGVjaygpOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18g
PSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7
CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1
ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdW
YWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVs
bFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpp
bnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
dWludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjphcnJheVZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjpvYmplY3RWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMjE0NzQ4MzY0
OC41LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdCgtMjE0
NzQ4MzY0OC41KSwgdmFsLmFzRmxvYXQoKSk7CisjaWZkZWYgSlNPTl9IQVNfSU5UNjQKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKC0oSnNvbjo6SW50NjQoMSkgPDwgMzEpLCB2YWwuYXNMYXJnZXN0
SW50KCkpOworI2VuZGlmCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29s
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoCisgICAgICAiLTIxNDc0ODM2NDguNSIsCisg
ICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFs
LmFzU3RyaW5nKCkpKSk7CisKKyAgLy8gQSBiaXQgb3ZlciB1aW50MzIgbWF4CisgIHZhbCA9IEpz
b246OlZhbHVlKGt1aW50MzJtYXggKyAwLjUpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChK
c29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAg
Y2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNU
X0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVT
VF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkp
OworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1
ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0
VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoNDI5NDk2NzI5NS41LCB2YWwuYXNE
b3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdCg0Mjk0OTY3Mjk1LjUpLCB2
YWwuYXNGbG9hdCgpKTsKKyNpZmRlZiBKU09OX0hBU19JTlQ2NAorICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoKEpzb246OkludDY0KDEpIDw8IDMyKSAtIDEsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6VUludDY0KDEpIDw8IDMyKSAtIEpzb246OlVJ
bnQ2NCgxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbC5hc0xhcmdlc3RVSW50KCkpOwor
I2VuZGlmCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoCisgICAgICAiNDI5NDk2NzI5NS41IiwKKyAgICAgIG5vcm1h
bGl6ZUZsb2F0aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwuYXNTdHJpbmco
KSkpKTsKKworICB2YWwgPSBKc29uOjpWYWx1ZSgxLjIzNDU2Nzg5MDEyMzQpOworICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjEuMjM0NTY3ODkwMTIzNDAwMSIsCisgICAg
ICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFz
U3RyaW5nKCkpKSk7CisKKyAgLy8gQSAxNi1kaWdpdCBmbG9hdGluZyBwb2ludCBudW1iZXIuCisg
IHZhbCA9IEpzb246OlZhbHVlKDIxOTkwMjMyNTU1NTIwMDAuMGYpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoZmxvYXQoMjE5OTAyMzI1NTU1MjAwMC4wZiksIHZhbC5hc0Zsb2F0KCkpOworICBK
U09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjIxOTkwMjMyNTU1NTIwMDAuMCIs
CisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmco
dmFsLmFzU3RyaW5nKCkpKSk7CisKKyAgLy8gQSB2ZXJ5IGxhcmdlIGZsb2F0aW5nIHBvaW50IG51
bWJlci4KKyAgdmFsID0gSnNvbjo6VmFsdWUoMy40MDI4MjM0NjYzODUyODllMzgpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoMy40MDI4MjM0NjYzODUyODllMzgpLCB2YWwuYXNGbG9h
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAgICIzLjQwMjgyMzQ2
NjM4NTI4OWUrMzgiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVzdDo6
VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworCisgIC8vIEFuIGV2ZW4gbGFyZ2VyIGZs
b2F0aW5nIHBvaW50IG51bWJlci4KKyAgdmFsID0gSnNvbjo6VmFsdWUoMS4yMzQ1Njc4ZTMwMCk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChkb3VibGUoMS4yMzQ1Njc4ZTMwMCksIHZhbC5hc0Rv
dWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAgICIxLjIzNDU2
NzhlKzMwMCIsCisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pz
b25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7Cit9CiAKLSAgIC8vIEFjY2VzcyB0aHJvdWdoIGNv
bnN0IHJlZmVyZW5jZQotICAgY29uc3QgSnNvbjo6VmFsdWUgJmNvbnN0T2JqZWN0ID0gb2JqZWN0
MV87Cit2b2lkIFZhbHVlVGVzdDo6Y2hlY2tDb25zdE1lbWJlckNvdW50KGNvbnN0IEpzb246OlZh
bHVlJiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IGV4cGVjdGVkQ291bnQpIHsKKyAgdW5zaWduZWQgaW50IGNvdW50ID0gMDsKKyAgSnNv
bjo6VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIGl0RW5kID0gdmFsdWUuZW5kKCk7CisgIGZvciAoSnNv
bjo6VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWUuYmVnaW4oKTsgaXQgIT0gaXRFbmQ7
ICsraXQpIHsKKyAgICArK2NvdW50OworICB9CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChleHBl
Y3RlZENvdW50LCBjb3VudCkgPDwgIkpzb246OlZhbHVlOjpjb25zdF9pdGVyYXRvciI7Cit9CiAK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgY29uc3RPYmplY3Rb
ImlkIl0pOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCksIGNvbnN0T2Jq
ZWN0WyJ1bmtub3duIGlkIl0pOwordm9pZCBWYWx1ZVRlc3Q6OmNoZWNrTWVtYmVyQ291bnQoSnNv
bjo6VmFsdWUmIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IGV4cGVjdGVkQ291bnQpIHsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVk
Q291bnQsIHZhbHVlLnNpemUoKSk7CiAKLSAgIC8vIEFjY2VzcyB0aHJvdWdoIG5vbi1jb25zdCBy
ZWZlcmVuY2UKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgb2Jq
ZWN0MV9bImlkIl0pOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCksIG9i
amVjdDFfWyJ1bmtub3duIGlkIl0pOworICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOworICBKc29u
OjpWYWx1ZTo6aXRlcmF0b3IgaXRFbmQgPSB2YWx1ZS5lbmQoKTsKKyAgZm9yIChKc29uOjpWYWx1
ZTo6aXRlcmF0b3IgaXQgPSB2YWx1ZS5iZWdpbigpOyBpdCAhPSBpdEVuZDsgKytpdCkgeworICAg
ICsrY291bnQ7CisgIH0KKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVkQ291bnQsIGNv
dW50KSA8PCAiSnNvbjo6VmFsdWU6Oml0ZXJhdG9yIjsKIAotICAgb2JqZWN0MV9bInNvbWUgb3Ro
ZXIgaWQiXSA9ICJmb28iOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCJm
b28iKSwgb2JqZWN0MV9bInNvbWUgb3RoZXIgaWQiXSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVE
KGNoZWNrQ29uc3RNZW1iZXJDb3VudCh2YWx1ZSwgZXhwZWN0ZWRDb3VudCkpOwogfQogCitWYWx1
ZVRlc3Q6OklzQ2hlY2s6OklzQ2hlY2soKQorCisgICAgPSBkZWZhdWx0OwogCi1KU09OVEVTVF9G
SVhUVVJFKCBWYWx1ZVRlc3QsIGFycmF5cyApCi17Ci0gICBjb25zdCB1bnNpZ25lZCBpbnQgaW5k
ZXgwID0gMDsKK3ZvaWQgVmFsdWVUZXN0OjpjaGVja0lzKGNvbnN0IEpzb246OlZhbHVlJiB2YWx1
ZSwgY29uc3QgSXNDaGVjayYgY2hlY2spIHsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNr
LmlzT2JqZWN0XywgdmFsdWUuaXNPYmplY3QoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChj
aGVjay5pc0FycmF5XywgdmFsdWUuaXNBcnJheSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGNoZWNrLmlzQm9vbF8sIHZhbHVlLmlzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGNoZWNrLmlzRG91YmxlXywgdmFsdWUuaXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChjaGVjay5pc0ludF8sIHZhbHVlLmlzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoY2hlY2suaXNVSW50XywgdmFsdWUuaXNVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoY2hlY2suaXNJbnRlZ3JhbF8sIHZhbHVlLmlzSW50ZWdyYWwoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChjaGVjay5pc051bWVyaWNfLCB2YWx1ZS5pc051bWVyaWMoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc1N0cmluZ18sIHZhbHVlLmlzU3RyaW5nKCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNOdWxsXywgdmFsdWUuaXNOdWxsKCkpOwogCi0g
ICAvLyBUeXBlcwotICAgSXNDaGVjayBjaGVja3M7Ci0gICBjaGVja3MuaXNBcnJheV8gPSB0cnVl
OwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIGVtcHR5QXJyYXlfLCBjaGVja3Mg
KSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIGFycmF5MV8sIGNoZWNrcyAp
ICk7CisjaWZkZWYgSlNPTl9IQVNfSU5UNjQKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNr
LmlzSW50NjRfLCB2YWx1ZS5pc0ludDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hl
Y2suaXNVSW50NjRfLCB2YWx1ZS5pc1VJbnQ2NCgpKTsKKyNlbHNlCisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChmYWxzZSwgdmFsdWUuaXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGZhbHNlLCB2YWx1ZS5pc1VJbnQ2NCgpKTsKKyNlbmRpZgorfQogCi0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6YXJyYXlWYWx1ZSwgYXJyYXkxXy50eXBlKCkpOworSlNPTlRFU1RfRklY
VFVSRShWYWx1ZVRlc3QsIGNvbXBhcmVOdWxsKSB7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNo
ZWNrSXNFcXVhbChKc29uOjpWYWx1ZSgpLCBKc29uOjpWYWx1ZSgpKSk7Cit9CiAKLSAgIC8vIEVt
cHR5IGFycmF5IG9rYXkKLSAgIEpTT05URVNUX0FTU0VSVChlbXB0eUFycmF5Xy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY29t
cGFyZUludCkgeworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygwLCAxMCkpOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwoMTAsIDEwKSk7CisgIEpTT05URVNU
X0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbCgtMTAsIC0xMCkpOworICBKU09OVEVTVF9BU1NFUlRf
UFJFRChjaGVja0lzTGVzcygtMTAsIDApKTsKK30KIAotICAgLy8gTm9uLWVtcHR5IGFycmF5IG5v
dCBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQoIWFycmF5MV8uaXNDb252ZXJ0aWJsZVRvKEpzb246
Om51bGxWYWx1ZSkpOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIGNvbXBhcmVVSW50KSB7
CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKDB1LCAxMHUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoMHUsIEpzb246OlZhbHVlOjptYXhVSW50KSk7Cisg
IEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbCgxMHUsIDEwdSkpOworfQogCi0gICAv
LyBBbHdheXMgb2theQotICAgSlNPTlRFU1RfQVNTRVJUKGVtcHR5QXJyYXlfLmlzQ29udmVydGli
bGVUbyhKc29uOjphcnJheVZhbHVlKSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY29t
cGFyZURvdWJsZSkgeworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygwLjAsIDEw
LjApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFsKDEwLjAsIDEwLjApKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFsKC0xMC4wLCAtMTAuMCkpOworICBK
U09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygtMTAuMCwgMC4wKSk7Cit9CiAKLSAgIC8v
IE5ldmVyIG9rYXkKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJs
ZVRvKEpzb246Om9iamVjdFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlf
LmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCFl
bXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmJv
b2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBj
b21wYXJlU3RyaW5nKSB7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKCIiLCAi
ICIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoIiIsICJhIikpOworICBK
U09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygiYWJjZCIsICJ6eXVpIikpOworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygiYWJjIiwgImFiY2QiKSk7CisgIEpTT05URVNU
X0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbCgiYWJjZCIsICJhYmNkIikpOworICBKU09OVEVTVF9B
U1NFUlRfUFJFRChjaGVja0lzRXF1YWwoIiAiLCAiICIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoY2hlY2tJc0xlc3MoIkFCQ0QiLCAiYWJjZCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJc0VxdWFsKCJBQkNEIiwgIkFCQ0QiKSk7Cit9CiAKLSAgIC8vIEFjY2VzcyB0aHJvdWdo
IGNvbnN0IHJlZmVyZW5jZQotICAgY29uc3QgSnNvbjo6VmFsdWUgJmNvbnN0QXJyYXkgPSBhcnJh
eTFfOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBjb25zdEFy
cmF5W2luZGV4MF0pOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQp
LCBjb25zdEFycmF5WzBdKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21wYXJlQm9v
bGVhbikgeworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhmYWxzZSwgdHJ1ZSkp
OworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwoZmFsc2UsIGZhbHNlKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbCh0cnVlLCB0cnVlKSk7Cit9CiAKLSAg
IC8vIEFjY2VzcyB0aHJvdWdoIG5vbi1jb25zdCByZWZlcmVuY2UKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgYXJyYXkxX1tpbmRleDBdKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgYXJyYXkxX1swXSk7Ci0KLSAgIGFycmF5
MV9bMl0gPSBKc29uOjpWYWx1ZSgxNyk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
VmFsdWUoKSwgYXJyYXkxX1sxXSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFs
dWUoMTcpLCBhcnJheTFfWzJdKTsKLX0KK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21w
YXJlQXJyYXkpIHsKKyAgLy8gYXJyYXkgY29tcGFyZSBzaXplIHRoZW4gY29udGVudAorICBKc29u
OjpWYWx1ZSBlbXB0eUFycmF5KEpzb246OmFycmF5VmFsdWUpOworICBKc29uOjpWYWx1ZSBsMWFB
cnJheTsKKyAgbDFhQXJyYXkuYXBwZW5kKDApOworICBKc29uOjpWYWx1ZSBsMWJBcnJheTsKKyAg
bDFiQXJyYXkuYXBwZW5kKDEwKTsKKyAgSnNvbjo6VmFsdWUgbDJhQXJyYXk7CisgIGwyYUFycmF5
LmFwcGVuZCgwKTsKKyAgbDJhQXJyYXkuYXBwZW5kKDApOworICBKc29uOjpWYWx1ZSBsMmJBcnJh
eTsKKyAgbDJiQXJyYXkuYXBwZW5kKDApOworICBsMmJBcnJheS5hcHBlbmQoMTApOworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhlbXB0eUFycmF5LCBsMWFBcnJheSkpOworICBK
U09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhlbXB0eUFycmF5LCBsMmFBcnJheSkpOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhsMWFBcnJheSwgbDJhQXJyYXkpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MobDJhQXJyYXksIGwyYkFycmF5KSk7
CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbChlbXB0eUFycmF5LCBKc29uOjpW
YWx1ZShlbXB0eUFycmF5KSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwo
bDFhQXJyYXksIEpzb246OlZhbHVlKGwxYUFycmF5KSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJF
RChjaGVja0lzRXF1YWwobDJiQXJyYXksIEpzb246OlZhbHVlKGwyYkFycmF5KSkpOworfQogCitK
U09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY29tcGFyZU9iamVjdCkgeworICAvLyBvYmplY3Qg
Y29tcGFyZSBzaXplIHRoZW4gY29udGVudAorICBKc29uOjpWYWx1ZSBlbXB0eU9iamVjdChKc29u
OjpvYmplY3RWYWx1ZSk7CisgIEpzb246OlZhbHVlIGwxYU9iamVjdDsKKyAgbDFhT2JqZWN0WyJr
ZXkxIl0gPSAwOworICBKc29uOjpWYWx1ZSBsMWJPYmplY3Q7CisgIGwxYU9iamVjdFsia2V5MSJd
ID0gMTA7CisgIEpzb246OlZhbHVlIGwyYU9iamVjdDsKKyAgbDJhT2JqZWN0WyJrZXkxIl0gPSAw
OworICBsMmFPYmplY3RbImtleTIiXSA9IDA7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNr
SXNMZXNzKGVtcHR5T2JqZWN0LCBsMWFPYmplY3QpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJc0xlc3MoZW1wdHlPYmplY3QsIGwyYU9iamVjdCkpOworICBKU09OVEVTVF9BU1NFUlRf
UFJFRChjaGVja0lzTGVzcyhsMWFPYmplY3QsIGwyYU9iamVjdCkpOworICBKU09OVEVTVF9BU1NF
UlRfUFJFRChjaGVja0lzRXF1YWwoZW1wdHlPYmplY3QsIEpzb246OlZhbHVlKGVtcHR5T2JqZWN0
KSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwobDFhT2JqZWN0LCBKc29u
OjpWYWx1ZShsMWFPYmplY3QpKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVh
bChsMmFPYmplY3QsIEpzb246OlZhbHVlKGwyYU9iamVjdCkpKTsKK30KIAotSlNPTlRFU1RfRklY
VFVSRSggVmFsdWVUZXN0LCBudWxsICkKLXsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29u
OjpudWxsVmFsdWUsIG51bGxfLnR5cGUoKSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwg
Y29tcGFyZVR5cGUpIHsKKyAgLy8gb2JqZWN0IG9mIGRpZmZlcmVudCB0eXBlIGFyZSBvcmRlcmVk
IGFjY29yZGluZyB0byB0aGVpciB0eXBlCisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNM
ZXNzKEpzb246OlZhbHVlKCksIEpzb246OlZhbHVlKDEpKSk7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrSXNMZXNzKEpzb246OlZhbHVlKDEpLCBKc29uOjpWYWx1ZSgxdSkpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoSnNvbjo6VmFsdWUoMXUpLCBKc29uOjpWYWx1
ZSgxLjApKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKEpzb246OlZhbHVl
KDEuMCksIEpzb246OlZhbHVlKCJhIikpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJ
c0xlc3MoSnNvbjo6VmFsdWUoImEiKSwgSnNvbjo6VmFsdWUodHJ1ZSkpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoCisgICAgICBjaGVja0lzTGVzcyhKc29uOjpWYWx1ZSh0cnVlKSwgSnNvbjo6
VmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJ
c0xlc3MoSnNvbjo6VmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEpzb246OlZhbHVlKEpzb246Om9iamVjdFZhbHVlKSkpOworfQogCi0g
ICBJc0NoZWNrIGNoZWNrczsKLSAgIGNoZWNrcy5pc051bGxfID0gdHJ1ZTsKLSAgIEpTT05URVNU
X0FTU0VSVF9QUkVEKCBjaGVja0lzKCBudWxsXywgY2hlY2tzICkgKTsKK0pTT05URVNUX0ZJWFRV
UkUoVmFsdWVUZXN0LCBDb3B5T2JqZWN0KSB7CisgIEpzb246OlZhbHVlIGFycmF5VmFsOworICBh
cnJheVZhbC5hcHBlbmQoInZhbDEiKTsKKyAgYXJyYXlWYWwuYXBwZW5kKCJ2YWwyIik7CisgIGFy
cmF5VmFsLmFwcGVuZCgidmFsMyIpOworICBKc29uOjpWYWx1ZSBzdHJpbmdWYWwoInN0cmluZyB2
YWx1ZSIpOworICBKc29uOjpWYWx1ZSBjb3B5MSwgY29weTI7CisgIHsKKyAgICBKc29uOjpWYWx1
ZSBhcnJheUNvcHksIHN0cmluZ0NvcHk7CisgICAgYXJyYXlDb3B5LmNvcHkoYXJyYXlWYWwpOwor
ICAgIHN0cmluZ0NvcHkuY29weShzdHJpbmdWYWwpOworICAgIEpTT05URVNUX0FTU0VSVF9QUkVE
KGNoZWNrSXNFcXVhbChhcnJheUNvcHksIGFycmF5VmFsKSk7CisgICAgSlNPTlRFU1RfQVNTRVJU
X1BSRUQoY2hlY2tJc0VxdWFsKHN0cmluZ0NvcHksIHN0cmluZ1ZhbCkpOworICAgIGFycmF5Q29w
eS5hcHBlbmQoInZhbDQiKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoYXJyYXlDb3B5LnNpemUoKSA9
PSA0KTsKKyAgICBhcnJheVZhbC5hcHBlbmQoIm5ldzQiKTsKKyAgICBhcnJheVZhbC5hcHBlbmQo
Im5ldzUiKTsKKyAgICBKU09OVEVTVF9BU1NFUlQoYXJyYXlWYWwuc2l6ZSgpID09IDUpOworICAg
IEpTT05URVNUX0FTU0VSVCghKGFycmF5Q29weSA9PSBhcnJheVZhbCkpOworICAgIHN0cmluZ0Nv
cHkgPSAiYW5vdGhlciBzdHJpbmciOworICAgIEpTT05URVNUX0FTU0VSVCghKHN0cmluZ0NvcHkg
PT0gc3RyaW5nVmFsKSk7CisgICAgY29weTEuY29weShhcnJheUNvcHkpOworICAgIGNvcHkyLmNv
cHkoc3RyaW5nQ29weSk7CisgIH0KKyAgSlNPTlRFU1RfQVNTRVJUKGFycmF5VmFsLnNpemUoKSA9
PSA1KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHN0cmluZ1ZhbCA9PSAic3RyaW5nIHZhbHVlIik7Cisg
IEpTT05URVNUX0FTU0VSVChjb3B5MS5zaXplKCkgPT0gNCk7CisgIEpTT05URVNUX0FTU0VSVChj
b3B5MiA9PSAiYW5vdGhlciBzdHJpbmciKTsKKyAgY29weTEuY29weShzdHJpbmdWYWwpOworICBK
U09OVEVTVF9BU1NFUlQoY29weTEgPT0gInN0cmluZyB2YWx1ZSIpOworICBjb3B5Mi5jb3B5KGFy
cmF5VmFsKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGNvcHkyLnNpemUoKSA9PSA1KTsKK30KIAotICAg
SlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZh
bHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnJl
YWxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29u
Ojpib29sZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlz
Q29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwordm9pZCBWYWx1ZVRlc3Q6OmNoZWNr
SXNMZXNzKGNvbnN0IEpzb246OlZhbHVlJiB4LCBjb25zdCBKc29uOjpWYWx1ZSYgeSkgeworICBK
U09OVEVTVF9BU1NFUlQoeCA8IHkpOworICBKU09OVEVTVF9BU1NFUlQoeSA+IHgpOworICBKU09O
VEVTVF9BU1NFUlQoeCA8PSB5KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkgPj0geCk7CisgIEpTT05U
RVNUX0FTU0VSVCghKHggPT0geSkpOworICBKU09OVEVTVF9BU1NFUlQoISh5ID09IHgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKCEoeCA+PSB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkgPD0geCkp
OworICBKU09OVEVTVF9BU1NFUlQoISh4ID4geSkpOworICBKU09OVEVTVF9BU1NFUlQoISh5IDwg
eCkpOworICBKU09OVEVTVF9BU1NFUlQoeC5jb21wYXJlKHkpIDwgMCk7CisgIEpTT05URVNUX0FT
U0VSVCh5LmNvbXBhcmUoeCkgPj0gMCk7Cit9CiAKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChK
c29uOjpJbnQoMCksIG51bGxfLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpz
b246Okxhcmdlc3RJbnQoMCksIG51bGxfLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChKc29uOjpVSW50KDApLCBudWxsXy5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoSnNvbjo6TGFyZ2VzdFVJbnQoMCksIG51bGxfLmFzTGFyZ2VzdFVJbnQoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCBudWxsXy5hc0RvdWJsZSgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIG51bGxfLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBudWxsXy5hc1N0cmluZygpKTsKK3ZvaWQgVmFsdWVUZXN0
OjpjaGVja0lzRXF1YWwoY29uc3QgSnNvbjo6VmFsdWUmIHgsIGNvbnN0IEpzb246OlZhbHVlJiB5
KSB7CisgIEpTT05URVNUX0FTU0VSVCh4ID09IHkpOworICBKU09OVEVTVF9BU1NFUlQoeSA9PSB4
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHggPD0geSk7CisgIEpTT05URVNUX0FTU0VSVCh5IDw9IHgp
OworICBKU09OVEVTVF9BU1NFUlQoeCA+PSB5KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkgPj0geCk7
CisgIEpTT05URVNUX0FTU0VSVCghKHggPCB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkgPCB4
KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHggPiB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkg
PiB4KSk7CisgIEpTT05URVNUX0FTU0VSVCh4LmNvbXBhcmUoeSkgPT0gMCk7CisgIEpTT05URVNU
X0FTU0VSVCh5LmNvbXBhcmUoeCkgPT0gMCk7CiB9CiAKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVU
ZXN0LCB0eXBlQ2hlY2tzVGhyb3dFeGNlcHRpb25zKSB7CisjaWYgSlNPTl9VU0VfRVhDRVBUSU9O
CiAKLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgc3RyaW5ncyApCi17Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6c3RyaW5nVmFsdWUsIHN0cmluZzFfLnR5cGUoKSk7CisgIEpz
b246OlZhbHVlIGludFZhbCgxKTsKKyAgSnNvbjo6VmFsdWUgc3RyVmFsKCJUZXN0Iik7CisgIEpz
b246OlZhbHVlIG9ialZhbChKc29uOjpvYmplY3RWYWx1ZSk7CisgIEpzb246OlZhbHVlIGFyclZh
bChKc29uOjphcnJheVZhbHVlKTsKIAotICAgSXNDaGVjayBjaGVja3M7Ci0gICBjaGVja3MuaXNT
dHJpbmdfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCBlbXB0eVN0
cmluZ18sIGNoZWNrcyApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggc3Ry
aW5nXywgY2hlY2tzICkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCBzdHJp
bmcxXywgY2hlY2tzICkgKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWxbInRlc3Qi
XSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsWyJ0ZXN0Il0pOworICBKU09OVEVT
VF9BU1NFUlRfVEhST1dTKGFyclZhbFsidGVzdCJdKTsKIAotICAgLy8gRW1wdHkgc3RyaW5nIG9r
YXkKLSAgIEpTT05URVNUX0FTU0VSVChlbXB0eVN0cmluZ18uaXNDb252ZXJ0aWJsZVRvKEpzb246
Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGludFZhbC5yZW1vdmVNZW1i
ZXIoInRlc3QiKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLnJlbW92ZU1lbWJl
cigidGVzdCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwucmVtb3ZlTWVtYmVy
KCJ0ZXN0IikpOwogCi0gICAvLyBOb24tZW1wdHkgc3RyaW5nIG5vdCBva2F5Ci0gICBKU09OVEVT
VF9BU1NFUlQoIXN0cmluZzFfLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWwuZ2V0TWVtYmVyTmFtZXMoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLmdldE1lbWJlck5hbWVzKCkpOworICBKU09OVEVTVF9B
U1NFUlRfVEhST1dTKGFyclZhbC5nZXRNZW1iZXJOYW1lcygpKTsKIAotICAgLy8gQWx3YXlzIG9r
YXkKLSAgIEpTT05URVNUX0FTU0VSVChzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3Ry
aW5nVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWxbMF0pOworICBKU09O
VEVTVF9BU1NFUlRfVEhST1dTKG9ialZhbFswXSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mo
c3RyVmFsWzBdKTsKIAotICAgLy8gTmV2ZXIgb2theQotICAgSlNPTlRFU1RfQVNTRVJUKCFzdHJp
bmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKLSAgIEpTT05URVNUX0FT
U0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpT
T05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlQoIXN0cmluZzFfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50
VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpz
b246OnJlYWxWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJhIiwg
c3RyaW5nMV8uYXNTdHJpbmcoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJh
Iiwgc3RyaW5nMV8uYXNDU3RyaW5nKCkpOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVl
VGVzdCwgYm9vbHMgKQotewotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmJvb2xlYW5W
YWx1ZSwgZmFsc2VfLnR5cGUoKSk7Ci0KLSAgIElzQ2hlY2sgY2hlY2tzOwotICAgY2hlY2tzLmlz
Qm9vbF8gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIGZhbHNlXywg
Y2hlY2tzICkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB0cnVlXywgY2hl
Y2tzICkgKTsKLQotICAgLy8gRmFsc2Ugb2theQotICAgSlNPTlRFU1RfQVNTRVJUKGZhbHNlXy5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0KLSAgIC8vIFRydWUgbm90IG9rYXkK
LSAgIEpTT05URVNUX0FTU0VSVCghdHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1
ZSkpOwotCi0gICAvLyBBbHdheXMgb2theQotICAgSlNPTlRFU1RfQVNTRVJUKHRydWVfLmlzQ29u
dmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHRydWVfLmlz
Q29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh0cnVl
Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
dHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKHRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOwotCi0gICAv
LyBOZXZlciBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQoIXRydWVfLmlzQ29udmVydGlibGVUbyhK
c29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXRydWVfLmlzQ29udmVydGli
bGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1
ZSwgdHJ1ZV8uYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHRydWVfLmFz
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHRydWVfLmFzTGFyZ2VzdEludCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB0cnVlXy5hc1VJbnQoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMSwgdHJ1ZV8uYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgxLjAsIHRydWVfLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDEuMCwgdHJ1ZV8uYXNGbG9hdCgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGZhbHNlLCBmYWxzZV8uYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIGZh
bHNlXy5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCBmYWxzZV8uYXNMYXJn
ZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIGZhbHNlXy5hc1VJbnQoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgZmFsc2VfLmFzTGFyZ2VzdFVJbnQoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCBmYWxzZV8uYXNEb3VibGUoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMC4wLCBmYWxzZV8uYXNGbG9hdCgpKTsKLX0KLQotCi1KU09OVEVT
VF9GSVhUVVJFKCBWYWx1ZVRlc3QsIGludGVnZXJzICkKLXsKLSAgIElzQ2hlY2sgY2hlY2tzOwot
ICAgSnNvbjo6VmFsdWUgdmFsOwotCi0gICAvLyBDb252ZXJzaW9ucyB0aGF0IGRvbid0IGRlcGVu
ZCBvbiB0aGUgdmFsdWUuCi0gICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcpLmlzQ29u
dmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChKc29uOjpW
YWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcpLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFs
dWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTcpLmlzQ29udmVydGlibGVU
byhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3
KS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUKEpzb246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246
OnN0cmluZ1ZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTdVKS5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIUpz
b246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpT
T05URVNUX0FTU0VSVCghSnNvbjo6VmFsdWUoMTdVKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2Jq
ZWN0VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3LjApLmlzQ29u
dmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChKc29uOjpW
YWx1ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVh
blZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3LjApLmlzQ29udmVy
dGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZh
bHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotCi0gICAvLyBE
ZWZhdWx0IGludAotICAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6aW50VmFsdWUpOwotCi0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBj
aGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5p
c0ludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNV
SW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3Mu
aXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNU
X0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
MCwgdmFsLmFzVUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJn
ZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgiMCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gRGVmYXVsdCB1
aW50Ci0gICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjp1aW50VmFsdWUpOwotCi0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tz
ID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2
NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0
XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91
YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9B
U1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NF
UlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FT
U0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgwLCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZh
bC5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJ
bnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9T
VFJJTkdfRVFVQUwoIjAiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIERlZmF1bHQgcmVhbAot
ICAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6cmVhbFZhbHVlKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBjaGVj
a3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0lu
dDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50
NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNE
b3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNU
X0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwg
dmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNV
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKCIwLjAiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIFplcm8gKHNpZ25lZCBjb25z
dHJ1Y3RvciBhcmcpCi0gICB2YWwgPSBKc29uOjpWYWx1ZSgwKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXND
aGVjaygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0
cnVlOwotICAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRy
dWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9
IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRf
UFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKDAsIHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2
YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJ
bnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChmYWxzZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdf
RVFVQUwoIjAiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIFplcm8gKHVuc2lnbmVkIGNvbnN0
cnVjdG9yIGFyZykKLSAgIHZhbCA9IEpzb246OlZhbHVlKDB1KTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKEpzb246OnVpbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElz
Q2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50NjRfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0
cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8g
PSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJU
X1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKHZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJU
KHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwg
dmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNV
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKCIwIiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyBaZXJvIChmbG9hdGluZy1wb2lu
dCBjb25zdHJ1Y3RvciBhcmcpCi0gICB2YWwgPSBKc29uOjpWYWx1ZSgwLjApOwotCi0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hl
Y2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJ
bnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUlu
dDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlz
RG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVT
VF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9B
U1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgwLCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAs
IHZhbC5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2Vz
dFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9TVFJJTkdfRVFVQUwoIjAuMCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gMl4yMCAoc2ln
bmVkIGNvbnN0cnVjdG9yIGFyZykKLSAgIHZhbCA9IEpzb246OlZhbHVlKDEgPDwgMjApOwotCi0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwotICAg
Y2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3Mu
aXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlz
VUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tz
LmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09O
VEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVT
VF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNP
TlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0ludCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNVSW50KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19F
UVVBTCgiMTA0ODU3NiIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gMl4yMCAodW5zaWduZWQg
Y29uc3RydWN0b3IgYXJnKQotICAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6VUludCgxIDw8IDIw
KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBl
KCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsK
LSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7
Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1
ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVl
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFs
dWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzSW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc1VJbnQoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0RvdWJsZSgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCIxMDQ4NTc2IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyAyXjIw
IChmbG9hdGluZy1wb2ludCBjb25zdHJ1Y3RvciBhcmcpCi0gICB2YWwgPSBKc29uOjpWYWx1ZSgo
MSA8PCAyMCkgLyAxLjApOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZh
bHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlz
SW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUlu
dF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRl
Z3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNO
dW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBj
aGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCks
IHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5h
c0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwu
YXNVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFy
Z2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNE
b3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNGbG9h
dCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTA0ODU3Ni4wIiwgbm9ybWFsaXplRmxvYXRp
bmdQb2ludFN0cih2YWwuYXNTdHJpbmcoKSkpOwotCi0gICAvLyAtMl4yMAotICAgdmFsID0gSnNv
bjo6VmFsdWUoLSgxIDw8IDIwKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpp
bnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNr
cy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5p
c0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2
YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVU
byhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEg
PDwgMjApLCB2YWwuYXNJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLSgxIDw8IDIw
KSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwg
MjApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLSgxIDw8IDIw
KSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFz
Qm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIi0xMDQ4NTc2IiwgdmFs
LmFzU3RyaW5nKCkpOwotCi0gICAvLyBpbnQzMiBtYXgKLSAgIHZhbCA9IEpzb246OlZhbHVlKGtp
bnQzMm1heCk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFs
LnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0
cnVlOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnRfID0gdHJ1
ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18g
PSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkg
KTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNJ
bnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNMYXJnZXN0
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzVUludCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtYXgsIHZhbC5hc0xhcmdlc3RVSW50
KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzRG91YmxlKCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtmaW50MzJtYXgsIHZhbC5hc0Zsb2F0KCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIyMTQ3NDgzNjQ3IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0g
ICAvLyBpbnQzMiBtaW4KLSAgIHZhbCA9IEpzb246OlZhbHVlKGtpbnQzMm1pbik7Ci0KLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNo
ZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlz
SW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3Mu
aXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtaW4sIHZhbC5hc0ludCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChraW50MzJtaW4sIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWluLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoa2ludDMybWluLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCgiLTIxNDc0ODM2NDgiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIHVpbnQzMiBt
YXgKLSAgIHZhbCA9IEpzb246OlZhbHVlKGt1aW50MzJtYXgpOwotCi0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXND
aGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnRfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxf
ID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJp
Y18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tz
ICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51
bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
Ojp1aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWwuY2xlYXIoKSk7
CiAKLSNpZm5kZWYgSlNPTl9OT19JTlQ2NAotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50
MzJtYXgsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0jZW5kaWYKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChrdWludDMybWF4LCB2YWwuYXNVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGt1aW50MzJtYXgsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGt1aW50MzJtYXgsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChrZnVpbnQzMm1heCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
dHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjQy
OTQ5NjcyOTUiLCB2YWwuYXNTdHJpbmcoKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1MoaW50
VmFsLnJlc2l6ZSgxKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLnJlc2l6ZSgx
KSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mob2JqVmFsLnJlc2l6ZSgxKSk7CisKKyAgSlNP
TlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWwuYXNDU3RyaW5nKCkpOworCisgIEpTT05URVNUX0FT
U0VSVF9USFJPV1Mob2JqVmFsLmFzU3RyaW5nKCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dT
KGFyclZhbC5hc1N0cmluZygpKTsKKworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKHN0clZhbC5h
c0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9USFJPV1MoYXJyVmFsLmFzSW50KCkpOworCisgIEpTT05URVNUX0FTU0VS
VF9USFJPV1Moc3RyVmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpW
YWwuYXNVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5hc1VJbnQoKSk7
CisKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhzdHJWYWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RI
Uk9XUyhhcnJWYWwuYXNJbnQ2NCgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKHN0clZh
bC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNVSW50NjQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1MoYXJyVmFsLmFzVUludDY0KCkpOworCisgIEpT
T05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NF
UlRfVEhST1dTKG9ialZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhh
cnJWYWwuYXNEb3VibGUoKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhzdHJWYWwuYXNG
bG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNGbG9hdCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwuYXNGbG9hdCgpKTsKKworICBKU09OVEVTVF9B
U1NFUlRfVEhST1dTKHN0clZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mo
b2JqVmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwuYXNCb29s
KCkpOwogCi0jaWZkZWYgSlNPTl9OT19JTlQ2NAotICAgLy8gaW50NjQgbWF4Ci0gICB2YWwgPSBK
c29uOjpWYWx1ZShkb3VibGUoa2ludDY0bWF4KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7
Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1
ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1
ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRW
YWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZG91YmxlKGtpbnQ2NG1heCksIHZh
bC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChraW50NjRtYXgp
LCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNC
b29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiOS4yMjMzN2UrMTgiLCB2
YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIGludDY0IG1pbgotICAgdmFsID0gSnNvbjo6VmFsdWUo
ZG91YmxlKGtpbnQ2NG1pbikpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVh
bFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tz
LmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09O
VEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVT
VF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpT
T05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGRvdWJsZShraW50NjRtaW4pLCB2YWwuYXNEb3VibGUo
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoa2ludDY0bWluKSwgdmFsLmFzRmxv
YXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIi05LjIyMzM3ZSsxOCIsIHZhbC5hc1N0cmlu
ZygpKTsKLQotICAgLy8gdWludDY0IG1heAotICAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGt1
aW50NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwg
dmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0RvdWJs
ZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJU
KCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChkb3VibGUoa3VpbnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChrdWludDY0bWF4KSwgdmFsLmFzRmxvYXQoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEuODQ0NjdlKzE5IiwgdmFsLmFzU3RyaW5nKCkpOwot
I2Vsc2UgIC8vIGlmZGVmIEpTT05fTk9fSU5UNjQKLSAgIC8vIDJeNDAgKHNpZ25lZCBjb25zdHJ1
Y3RvciBhcmcpCi0gICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpJbnQ2NCgxKSA8PCA0MCk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0K
LSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBj
aGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsK
LSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAg
IEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkp
OwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1
ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwg
dmFsLmFzSW50NjQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEp
IDw8IDQwKSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgo
SnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNVSW50NjQoKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRG91
YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCks
IHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jv
b2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMDk5NTExNjI3Nzc2Iiwg
dmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyAyXjQwICh1bnNpZ25lZCBjb25zdHJ1Y3RvciBhcmcp
Ci0gICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpVSW50NjQoMSkgPDwgNDApOwotCi0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hl
Y2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5p
c1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNP
TlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNJ
bnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDAp
LCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJ
bnQ2NCgxKSA8PCA0MCksIHZhbC5hc1VJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNEb3VibGUoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFz
RmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEwOTk1MTE2Mjc3NzYiLCB2YWwuYXNT
dHJpbmcoKSk7Ci0KLSAgIC8vIDJeNDAgKGZsb2F0aW5nLXBvaW50IGNvbnN0cnVjdG9yIGFyZykK
LSAgIHZhbCA9IEpzb246OlZhbHVlKChKc29uOjpJbnQ2NCgxKSA8PCA0MCkgLyAxLjApOwotCi0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQot
ICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNo
ZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAg
IGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwot
ICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAg
SlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVl
KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2
YWwuYXNJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkg
PDwgNDApLCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChK
c29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc1VJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNEb3Vi
bGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwg
dmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9v
bCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEwOTk1MTE2Mjc3NzYuMCIs
IG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsKLQotICAgLy8gLTJe
NDAKLSAgIHZhbCA9IEpzb246OlZhbHVlKC0oSnNvbjo6SW50NjQoMSkgPDwgNDApKTsKLQotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAg
Y2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNo
ZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
KCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
LShKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0ludDY0KCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKC0oSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0SW50KCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0oSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNE
b3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0
MCksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5h
c0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItMTA5OTUxMTYyNzc3
NiIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gaW50NjQgbWF4Ci0gICB2YWwgPSBKc29uOjpW
YWx1ZShKc29uOjpJbnQ2NChraW50NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwot
ICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwot
ICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVl
OwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
IGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChraW50NjRtYXgsIHZhbC5hc0ludDY0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGtpbnQ2NG1heCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChraW50NjRtYXgsIHZhbC5hc1VJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChraW50NjRtYXgsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGRvdWJsZShraW50NjRtYXgpLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoZmxvYXQoa2ludDY0bWF4KSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIjkyMjMzNzIwMzY4NTQ3NzU4MDciLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8v
IGludDY0IG1heCAoZmxvYXRpbmcgcG9pbnQgY29uc3RydWN0b3IpLiBOb3RlIHRoYXQga2ludDY0
bWF4IGlzIG5vdCBleGFjdGx5Ci0gICAvLyByZXByZXNlbnRhYmxlIGFzIGEgZG91YmxlLCBhbmQg
d2lsbCBiZSByb3VuZGVkIHVwIHRvIGJlIGhpZ2hlci4KLSAgIHZhbCA9IEpzb246OlZhbHVlKGRv
dWJsZShraW50NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxW
YWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5p
c1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNP
TlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpVSW50NjQoMSkgPDwgNjMsIHZhbC5hc1VJ
bnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpVSW50NjQoMSkgPDwgNjMs
IHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHVpbnQ2NFRv
RG91YmxlKEpzb246OlVJbnQ2NCgxKSA8PCA2MyksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChmbG9hdCh1aW50NjRUb0RvdWJsZShKc29uOjpVSW50NjQoMSkgPDwg
NjMpKSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFs
LmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjkuMjIzMzcyMDM2
ODU0Nzc2ZSsxOCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsK
LQotICAgLy8gaW50NjQgbWluCi0gICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpJbnQ2NChraW50
NjRtaW4pKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwu
dHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVf
ID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VS
VF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoa2ludDY0bWluLCB2YWwuYXNJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChraW50NjRtaW4sIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoZG91YmxlKGtpbnQ2NG1pbiksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChmbG9hdChraW50NjRtaW4pLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiLCB2YWwuYXNTdHJpbmcoKSk7
Ci0KLSAgIC8vIGludDY0IG1pbiAoZmxvYXRpbmcgcG9pbnQgY29uc3RydWN0b3IpLiBOb3RlIHRo
YXQga2ludDY0bWluICppcyogZXhhY3RseQotICAgLy8gcmVwcmVzZW50YWJsZSBhcyBhIGRvdWJs
ZS4KLSAgIHZhbCA9IEpzb246OlZhbHVlKGRvdWJsZShraW50NjRtaW4pKTsKLQotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNr
cyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJ
bnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3Mu
aXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFs
LCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2
NG1pbiwgdmFsLmFzSW50NjQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWlu
LCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC05MjIzMzcy
MDM2ODU0Nzc1ODA4LjAsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgtOTIyMzM3MjAzNjg1NDc3NTgwOC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCgiLTkuMjIzMzcyMDM2ODU0Nzc2ZSsxOCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRT
dHIodmFsLmFzU3RyaW5nKCkpKTsKLQotICAgLy8gdWludDY0IG1heAotICAgdmFsID0gSnNvbjo6
VmFsdWUoSnNvbjo6VUludDY0KGt1aW50NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKEpzb246OnVpbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2so
KTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18g
PSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkg
KTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Omlu
dFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChrdWludDY0bWF4LCB2YWwu
YXNVSW50NjQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQ2NG1heCwgdmFsLmFz
TGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodWludDY0VG9Eb3VibGUo
a3VpbnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChm
bG9hdCh1aW50NjRUb0RvdWJsZShrdWludDY0bWF4KSksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCIxODQ0Njc0NDA3MzcwOTU1MTYxNSIsIHZhbC5hc1N0cmluZygpKTsK
LQotICAgLy8gdWludDY0IG1heCAoZmxvYXRpbmcgcG9pbnQgY29uc3RydWN0b3IpLiBOb3RlIHRo
YXQga3VpbnQ2NG1heCBpcyBub3QKLSAgIC8vIGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhIGRv
dWJsZSwgYW5kIHdpbGwgYmUgcm91bmRlZCB1cCB0byBiZSBoaWdoZXIuCi0gICB2YWwgPSBKc29u
OjpWYWx1ZSh1aW50NjRUb0RvdWJsZShrdWludDY0bWF4KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0No
ZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNf
ID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyAp
ICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxs
VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpp
bnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMTg0NDY3NDQwNzM3MDk1
NTE2MTYuMCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDE4NDQ2
NzQ0MDczNzA5NTUxNjE2LjAsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCIxLjg0NDY3NDQwNzM3MDk1NWUrMTkiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKHZhbC5h
c1N0cmluZygpKSk7CiAjZW5kaWYKIH0KIAorSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIG9m
ZnNldEFjY2Vzc29ycykgeworICBKc29uOjpWYWx1ZSB4OworICBKU09OVEVTVF9BU1NFUlQoeC5n
ZXRPZmZzZXRTdGFydCgpID09IDApOworICBKU09OVEVTVF9BU1NFUlQoeC5nZXRPZmZzZXRMaW1p
dCgpID09IDApOworICB4LnNldE9mZnNldFN0YXJ0KDEwKTsKKyAgeC5zZXRPZmZzZXRMaW1pdCgy
MCk7CisgIEpTT05URVNUX0FTU0VSVCh4LmdldE9mZnNldFN0YXJ0KCkgPT0gMTApOworICBKU09O
VEVTVF9BU1NFUlQoeC5nZXRPZmZzZXRMaW1pdCgpID09IDIwKTsKKyAgSnNvbjo6VmFsdWUgeSh4
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkuZ2V0T2Zmc2V0U3RhcnQoKSA9PSAxMCk7CisgIEpTT05U
RVNUX0FTU0VSVCh5LmdldE9mZnNldExpbWl0KCkgPT0gMjApOworICBKc29uOjpWYWx1ZSB6Owor
ICB6LnN3YXAoeSk7CisgIEpTT05URVNUX0FTU0VSVCh6LmdldE9mZnNldFN0YXJ0KCkgPT0gMTAp
OworICBKU09OVEVTVF9BU1NFUlQoei5nZXRPZmZzZXRMaW1pdCgpID09IDIwKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKHkuZ2V0T2Zmc2V0U3RhcnQoKSA9PSAwKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHku
Z2V0T2Zmc2V0TGltaXQoKSA9PSAwKTsKK30KIAotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0
LCBub25JbnRlZ2VycyApCi17Ci0gICBJc0NoZWNrIGNoZWNrczsKLSAgIEpzb246OlZhbHVlIHZh
bDsKLQotICAgLy8gU21hbGwgcG9zaXRpdmUgbnVtYmVyCi0gICB2YWwgPSBKc29uOjpWYWx1ZSgx
LjUpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlw
ZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRy
dWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJF
RCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNT
RVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsK
LQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEuNSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDEuNSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoMSwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHZh
bC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzVUlu
dCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB2YWwuYXNMYXJnZXN0VUludCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKCIxLjUwIiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyBTbWFsbCBu
ZWdhdGl2ZSBudW1iZXIKLSAgIHZhbCA9IEpzb246OlZhbHVlKC0xLjUpOwotCi0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tz
ID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNO
dW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBj
aGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6cmVhbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjpib29sZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgtMS41LCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoLTEuNSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEsIHZh
bC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMSwgdmFsLmFzTGFyZ2VzdElu
dCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKCItMS41MCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8g
QSBiaXQgb3ZlciBpbnQzMiBtYXgKLSAgIHZhbCA9IEpzb246OlZhbHVlKGtpbnQzMm1heCArIDAu
NSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBl
KCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1
ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVE
KCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsK
LQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDIxNDc0ODM2NDcuNSwgdmFsLmFzRG91YmxlKCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KDIxNDc0ODM2NDcuNSksIHZhbC5hc0Zs
b2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDIxNDc0ODM2NDdVLCB2YWwuYXNVSW50
KCkpOwotI2lmZGVmIEpTT05fSEFTX0lOVDY0Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMjE0
NzQ4MzY0N0wsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
MjE0NzQ4MzY0N1UsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotI2VuZGlmCi0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgiMjE0NzQ4MzY0Ny41MCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5n
KCkpKTsKLQotICAgLy8gQSBiaXQgdW5kZXIgaW50MzIgbWluCi0gICB2YWwgPSBKc29uOjpWYWx1
ZShraW50MzJtaW4gLSAwLjUpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVh
bFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tz
LmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09O
VEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVT
VF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAg
SlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1
ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFy
cmF5VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjpvYmplY3RWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTIxNDc0ODM2NDgu
NSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KC0yMTQ3
NDgzNjQ4LjUpLCB2YWwuYXNGbG9hdCgpKTsKLSNpZmRlZiBKU09OX0hBU19JTlQ2NAotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKC1Kc29uOjpJbnQ2NCgxKTw8IDMxLCB2YWwuYXNMYXJnZXN0SW50
KCkpOwotI2VuZGlmCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgiLTIxNDc0ODM2NDguNTAiLCBub3JtYWxpemVG
bG9hdGluZ1BvaW50U3RyKHZhbC5hc1N0cmluZygpKSk7Ci0KLSAgIC8vIEEgYml0IG92ZXIgdWlu
dDMyIG1heAotICAgdmFsID0gSnNvbjo6VmFsdWUoa3VpbnQzMm1heCArIDAuNSk7Ci0KLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBj
aGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2
YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7Ci0KLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCg0Mjk0OTY3Mjk1LjUsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChmbG9hdCg0Mjk0OTY3Mjk1LjUpLCB2YWwuYXNGbG9hdCgpKTsKLSNp
ZmRlZiBKU09OX0hBU19JTlQ2NAotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2
NCgxKSA8PCAzMiktMSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgoSnNvbjo6VUludDY0KDEpIDw8IDMyKS1Kc29uOjpVSW50NjQoMSksIHZhbC5hc0xhcmdl
c3RVSW50KCkpOwotI2VuZGlmCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFz
Qm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgiNDI5NDk2NzI5NS41MCIsIG5vcm1h
bGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsKK0pTT05URVNUX0ZJWFRVUkUo
VmFsdWVUZXN0LCBTdGF0aWNTdHJpbmcpIHsKKyAgY2hhciBtdXRhbnRbXSA9ICJoZWxsbyI7Cisg
IEpzb246OlN0YXRpY1N0cmluZyBzcyhtdXRhbnQpOworICBKc29uOjpTdHJpbmcgcmVndWxhciht
dXRhbnQpOworICBtdXRhbnRbMV0gPSAnYSc7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoImhhbGxvIiwgc3MuY19zdHIoKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
ImhlbGxvIiwgcmVndWxhci5jX3N0cigpKTsKKyAgeworICAgIEpzb246OlZhbHVlIHJvb3Q7Cisg
ICAgcm9vdFsidG9wIl0gPSBzczsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJo
YWxsbyIsIHJvb3RbInRvcCJdLmFzU3RyaW5nKCkpOworICAgIG11dGFudFsxXSA9ICd1JzsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJodWxsbyIsIHJvb3RbInRvcCJdLmFzU3Ry
aW5nKCkpOworICB9CisgIHsKKyAgICBKc29uOjpWYWx1ZSByb290OworICAgIHJvb3RbInRvcCJd
ID0gcmVndWxhcjsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJoZWxsbyIsIHJv
b3RbInRvcCJdLmFzU3RyaW5nKCkpOworICAgIG11dGFudFsxXSA9ICd1JzsKKyAgICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJoZWxsbyIsIHJvb3RbInRvcCJdLmFzU3RyaW5nKCkpOwor
ICB9Cit9CiAKLSAgIHZhbCA9IEpzb246OlZhbHVlKDEuMjM0NTY3ODkwMTIzNCk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMS4yMzQ1Njc4OTAxMjM0MCIsIG5vcm1hbGl6ZUZs
b2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVU
ZXN0LCBXaWRlU3RyaW5nKSB7CisgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1w
YXJzZXJzL2pzb25jcHAvaXNzdWVzLzc1NgorICBjb25zdCBzdGQ6OnN0cmluZyB1bmkgPSB1OCLl
vI/vvIzov5siOyAvLyAiXHU1ZjBmXHVmZjBjXHU4ZmRiIgorICBzdGQ6OnN0cmluZyBzdHlsZWQ7
CisgIHsKKyAgICBKc29uOjpWYWx1ZSB2OworICAgIHZbImFiYyJdID0gdW5pOworICAgIHN0eWxl
ZCA9IHYudG9TdHlsZWRTdHJpbmcoKTsKKyAgfQorICBKc29uOjpWYWx1ZSByb290OworICB7Cisg
ICAgSlNPTkNQUF9TVFJJTkcgZXJyczsKKyAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzKHN0eWxl
ZCk7CisgICAgYm9vbCBvayA9IHBhcnNlRnJvbVN0cmVhbShKc29uOjpDaGFyUmVhZGVyQnVpbGRl
cigpLCBpc3MsICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBp
ZiAoIW9rKSB7CisgICAgICBzdGQ6OmNlcnIgPDwgImVycnM6ICIgPDwgZXJycyA8PCBzdGQ6OmVu
ZGw7CisgICAgfQorICB9CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwocm9vdFsiYWJj
Il0uYXNTdHJpbmcoKSwgdW5pKTsKIH0KIAorSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIENv
bW1lbnRCZWZvcmUpIHsKKyAgSnNvbjo6VmFsdWUgdmFsOyAvLyBmaWxsIHZhbAorICB2YWwuc2V0
Q29tbWVudChKc29uOjpTdHJpbmcoIi8vIHRoaXMgY29tbWVudCBzaG91bGQgYXBwZWFyIGJlZm9y
ZSIpLAorICAgICAgICAgICAgICAgICBKc29uOjpjb21tZW50QmVmb3JlKTsKKyAgSnNvbjo6U3Ry
ZWFtV3JpdGVyQnVpbGRlciB3YnVpbGRlcjsKKyAgd2J1aWxkZXIuc2V0dGluZ3NfWyJjb21tZW50
U3R5bGUiXSA9ICJBbGwiOworICB7CisgICAgY2hhciBjb25zdCBleHBlY3RlZFtdID0gIi8vIHRo
aXMgY29tbWVudCBzaG91bGQgYXBwZWFyIGJlZm9yZVxubnVsbCI7CisgICAgSnNvbjo6U3RyaW5n
IHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKHdidWlsZGVyLCB2YWwpOworICAgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisgICAgSnNvbjo6U3RyaW5n
IHJlczIgPSB2YWwudG9TdHlsZWRTdHJpbmcoKTsKKyAgICBKc29uOjpTdHJpbmcgZXhwMiA9ICJc
biI7CisgICAgZXhwMiArPSBleHBlY3RlZDsKKyAgICBleHAyICs9ICJcbiI7CisgICAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTChleHAyLCByZXMyKTsKKyAgfQorICBKc29uOjpWYWx1ZSBv
dGhlciA9ICJoZWxsbyI7CisgIHZhbC5zd2FwUGF5bG9hZChvdGhlcik7CisgIHsKKyAgICBjaGFy
IGNvbnN0IGV4cGVjdGVkW10gPSAiLy8gdGhpcyBjb21tZW50IHNob3VsZCBhcHBlYXIgYmVmb3Jl
XG5cImhlbGxvXCIiOworICAgIEpzb246OlN0cmluZyByZXN1bHQgPSBKc29uOjp3cml0ZVN0cmlu
Zyh3YnVpbGRlciwgdmFsKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVj
dGVkLCByZXN1bHQpOworICAgIEpzb246OlN0cmluZyByZXMyID0gdmFsLnRvU3R5bGVkU3RyaW5n
KCk7CisgICAgSnNvbjo6U3RyaW5nIGV4cDIgPSAiXG4iOworICAgIGV4cDIgKz0gZXhwZWN0ZWQ7
CisgICAgZXhwMiArPSAiXG4iOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhw
MiwgcmVzMik7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgibnVsbFxuIiwgb3Ro
ZXIudG9TdHlsZWRTdHJpbmcoKSk7CisgIH0KKyAgdmFsID0gImhlbGxvIjsKKyAgLy8gdmFsLnNl
dENvbW1lbnQoIi8vIHRoaXMgY29tbWVudCBzaG91bGQgYXBwZWFyIGJlZm9yZSIsCisgIC8vIEpz
b246OkNvbW1lbnRQbGFjZW1lbnQ6OmNvbW1lbnRCZWZvcmUpOyBBc3NpZ25tZW50IG92ZXItd3Jp
dGVzIGNvbW1lbnRzLgorICB7CisgICAgY2hhciBjb25zdCBleHBlY3RlZFtdID0gIlwiaGVsbG9c
IiI7CisgICAgSnNvbjo6U3RyaW5nIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKHdidWlsZGVy
LCB2YWwpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3Vs
dCk7CisgICAgSnNvbjo6U3RyaW5nIHJlczIgPSB2YWwudG9TdHlsZWRTdHJpbmcoKTsKKyAgICBK
c29uOjpTdHJpbmcgZXhwMiA9ICIiOworICAgIGV4cDIgKz0gZXhwZWN0ZWQ7CisgICAgZXhwMiAr
PSAiXG4iOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwMiwgcmVzMik7Cisg
IH0KK30KKworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIHplcm9lcykgeworICBjaGFyIGNv
bnN0IGNzdHJbXSA9ICJoXDBpIjsKKyAgSnNvbjo6U3RyaW5nIGJpbmFyeShjc3RyLCBzaXplb2Yo
Y3N0cikpOyAvLyBpbmNsdWRlIHRyYWlsaW5nIDAKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDRV
LCBiaW5hcnkubGVuZ3RoKCkpOworICBKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyIGI7CisgIHsK
KyAgICBKc29uOjpWYWx1ZSByb290OworICAgIHJvb3QgPSBiaW5hcnk7CisgICAgSlNPTlRFU1Rf
QVNTRVJUX1NUUklOR19FUVVBTChiaW5hcnksIHJvb3QuYXNTdHJpbmcoKSk7CisgIH0KKyAgewor
ICAgIGNoYXIgY29uc3QgdG9wW10gPSAidG9wIjsKKyAgICBKc29uOjpWYWx1ZSByb290OworICAg
IHJvb3RbdG9wXSA9IGJpbmFyeTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGJp
bmFyeSwgcm9vdFt0b3BdLmFzU3RyaW5nKCkpOworICAgIEpzb246OlZhbHVlIHJlbW92ZWQ7Cisg
ICAgYm9vbCBkaWQ7CisgICAgZGlkID0gcm9vdC5yZW1vdmVNZW1iZXIodG9wLCB0b3AgKyBzaXpl
b2YodG9wKSAtIDFVLCAmcmVtb3ZlZCk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGRpZCk7CisgICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChiaW5hcnksIHJlbW92ZWQuYXNTdHJpbmcoKSk7
CisgICAgZGlkID0gcm9vdC5yZW1vdmVNZW1iZXIodG9wLCB0b3AgKyBzaXplb2YodG9wKSAtIDFV
LCAmcmVtb3ZlZCk7CisgICAgSlNPTlRFU1RfQVNTRVJUKCFkaWQpOworICAgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoYmluYXJ5LCByZW1vdmVkLmFzU3RyaW5nKCkpOyAvLyBzdGlsbAor
ICB9Cit9CiAKLXZvaWQKLVZhbHVlVGVzdDo6Y2hlY2tDb25zdE1lbWJlckNvdW50KCBjb25zdCBK
c29uOjpWYWx1ZSAmdmFsdWUsIHVuc2lnbmVkIGludCBleHBlY3RlZENvdW50ICkKLXsKLSAgIHVu
c2lnbmVkIGludCBjb3VudCA9IDA7Ci0gICBKc29uOjpWYWx1ZTo6Y29uc3RfaXRlcmF0b3IgaXRF
bmQgPSB2YWx1ZS5lbmQoKTsKLSAgIGZvciAoIEpzb246OlZhbHVlOjpjb25zdF9pdGVyYXRvciBp
dCA9IHZhbHVlLmJlZ2luKCk7IGl0ICE9IGl0RW5kOyArK2l0ICkKLSAgIHsKLSAgICAgICsrY291
bnQ7Ci0gICB9Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoIGV4cGVjdGVkQ291bnQsIGNvdW50
ICkgPDwgIkpzb246OlZhbHVlOjpjb25zdF9pdGVyYXRvciI7CitKU09OVEVTVF9GSVhUVVJFKFZh
bHVlVGVzdCwgemVyb2VzSW5LZXlzKSB7CisgIGNoYXIgY29uc3QgY3N0cltdID0gImhcMGkiOwor
ICBKc29uOjpTdHJpbmcgYmluYXJ5KGNzdHIsIHNpemVvZihjc3RyKSk7IC8vIGluY2x1ZGUgdHJh
aWxpbmcgMAorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoNFUsIGJpbmFyeS5sZW5ndGgoKSk7Cisg
IHsKKyAgICBKc29uOjpWYWx1ZSByb290OworICAgIHJvb3RbYmluYXJ5XSA9ICJ0aGVyZSI7Cisg
ICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgidGhlcmUiLCByb290W2JpbmFyeV0uYXNT
dHJpbmcoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUKCFyb290LmlzTWVtYmVyKCJoIikpOworICAg
IEpTT05URVNUX0FTU0VSVChyb290LmlzTWVtYmVyKGJpbmFyeSkpOworICAgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoCisgICAgICAgICJ0aGVyZSIsIHJvb3QuZ2V0KGJpbmFyeSwgSnNv
bjo6VmFsdWU6Om51bGxSZWYpLmFzU3RyaW5nKCkpOworICAgIEpzb246OlZhbHVlIHJlbW92ZWQ7
CisgICAgYm9vbCBkaWQ7CisgICAgZGlkID0gcm9vdC5yZW1vdmVNZW1iZXIoYmluYXJ5LmRhdGEo
KSwgYmluYXJ5LmRhdGEoKSArIGJpbmFyeS5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmcmVtb3ZlZCk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGRpZCk7CisgICAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTCgidGhlcmUiLCByZW1vdmVkLmFzU3RyaW5nKCkpOworICAg
IGRpZCA9IHJvb3QucmVtb3ZlTWVtYmVyKGJpbmFyeS5kYXRhKCksIGJpbmFyeS5kYXRhKCkgKyBi
aW5hcnkubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlbW92ZWQpOwor
ICAgIEpTT05URVNUX0FTU0VSVCghZGlkKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VR
VUFMKCJ0aGVyZSIsIHJlbW92ZWQuYXNTdHJpbmcoKSk7IC8vIHN0aWxsCisgICAgSlNPTlRFU1Rf
QVNTRVJUKCFyb290LmlzTWVtYmVyKGJpbmFyeSkpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoCisgICAgICAgICIiLCByb290LmdldChiaW5hcnksIEpzb246OlZhbHVlOjpudWxs
UmVmKS5hc1N0cmluZygpKTsKKyAgfQogfQogCi12b2lkCi1WYWx1ZVRlc3Q6OmNoZWNrTWVtYmVy
Q291bnQoIEpzb246OlZhbHVlICZ2YWx1ZSwgdW5zaWduZWQgaW50IGV4cGVjdGVkQ291bnQgKQot
ewotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVkQ291bnQsIHZhbHVlLnNpemUoKSAp
OworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIHNwZWNpYWxGbG9hdHMpIHsKKyAgSnNvbjo6
U3RyZWFtV3JpdGVyQnVpbGRlciBiOworICBiLnNldHRpbmdzX1sidXNlU3BlY2lhbEZsb2F0cyJd
ID0gdHJ1ZTsKIAotICAgdW5zaWduZWQgaW50IGNvdW50ID0gMDsKLSAgIEpzb246OlZhbHVlOjpp
dGVyYXRvciBpdEVuZCA9IHZhbHVlLmVuZCgpOwotICAgZm9yICggSnNvbjo6VmFsdWU6Oml0ZXJh
dG9yIGl0ID0gdmFsdWUuYmVnaW4oKTsgaXQgIT0gaXRFbmQ7ICsraXQgKQotICAgewotICAgICAg
Kytjb3VudDsKLSAgIH0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCggZXhwZWN0ZWRDb3VudCwg
Y291bnQgKSA8PCAiSnNvbjo6VmFsdWU6Oml0ZXJhdG9yIjsKKyAgSnNvbjo6VmFsdWUgdiA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgIEpzb246OlN0cmluZyBl
eHBlY3RlZCA9ICJOYU4iOworICBKc29uOjpTdHJpbmcgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJp
bmcoYiwgdik7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3Vs
dCk7CiAKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0NvbnN0TWVtYmVyQ291bnQodmFs
dWUsIGV4cGVjdGVkQ291bnQpICk7CisgIHYgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OmluZmluaXR5KCk7CisgIGV4cGVjdGVkID0gIkluZmluaXR5IjsKKyAgcmVzdWx0ID0gSnNvbjo6
d3JpdGVTdHJpbmcoYiwgdik7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0
ZWQsIHJlc3VsdCk7CisKKyAgdiA9IC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmlu
aXR5KCk7CisgIGV4cGVjdGVkID0gIi1JbmZpbml0eSI7CisgIHJlc3VsdCA9IEpzb246OndyaXRl
U3RyaW5nKGIsIHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCBy
ZXN1bHQpOwogfQogCitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgcHJlY2lzaW9uKSB7Cisg
IEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXIgYjsKKyAgYi5zZXR0aW5nc19bInByZWNpc2lvbiJd
ID0gNTsKKworICBKc29uOjpWYWx1ZSB2ID0gMTAwLjAgLyAzOworICBKc29uOjpTdHJpbmcgZXhw
ZWN0ZWQgPSAiMzMuMzMzIjsKKyAgSnNvbjo6U3RyaW5nIHJlc3VsdCA9IEpzb246OndyaXRlU3Ry
aW5nKGIsIHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1
bHQpOworCisgIHYgPSAwLjI1MDAwMDAwOworICBleHBlY3RlZCA9ICIwLjI1IjsKKyAgcmVzdWx0
ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisKKyAgdiA9IDAuMjU2MzQ1NjsKKyAgZXhwZWN0ZWQgPSAi
MC4yNTYzNSI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworCisgIGIuc2V0dGluZ3Nf
WyJwcmVjaXNpb24iXSA9IDE7CisgIGV4cGVjdGVkID0gIjAuMyI7CisgIHJlc3VsdCA9IEpzb246
OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVj
dGVkLCByZXN1bHQpOworCisgIGIuc2V0dGluZ3NfWyJwcmVjaXNpb24iXSA9IDE3OworICB2ID0g
MTIzNDg1NzQ3NjMwNS4yNTYzNDU2OTQ4NzM3NDA1NDUwNjg7CisgIGV4cGVjdGVkID0gIjEyMzQ4
NTc0NzYzMDUuMjU2MyI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBK
U09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworCisgIGIuc2V0
dGluZ3NfWyJwcmVjaXNpb24iXSA9IDI0OworICB2ID0gMC4yNTYzNDU2OTQ4NzM3NDA1NDUwNjg7
CisgIGV4cGVjdGVkID0gIjAuMjU2MzQ1Njk0ODczNzQwNTQiOworICByZXN1bHQgPSBKc29uOjp3
cml0ZVN0cmluZyhiLCB2KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3Rl
ZCwgcmVzdWx0KTsKKworICBiLnNldHRpbmdzX1sicHJlY2lzaW9uIl0gPSA1OworICBiLnNldHRp
bmdzX1sicHJlY2lzaW9uVHlwZSJdID0gImRlY2ltYWwiOworICB2ID0gMC4yNTYzNDU2OTQ4NzM3
NDA1NDUwNjg7CisgIGV4cGVjdGVkID0gIjAuMjU2MzUiOworICByZXN1bHQgPSBKc29uOjp3cml0
ZVN0cmluZyhiLCB2KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwg
cmVzdWx0KTsKKworICBiLnNldHRpbmdzX1sicHJlY2lzaW9uIl0gPSAxOworICBiLnNldHRpbmdz
X1sicHJlY2lzaW9uVHlwZSJdID0gImRlY2ltYWwiOworICB2ID0gMC4yNTYzNDU2OTQ4NzM3NDA1
NDUwNjg7CisgIGV4cGVjdGVkID0gIjAuMyI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5n
KGIsIHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQp
OworCisgIGIuc2V0dGluZ3NfWyJwcmVjaXNpb24iXSA9IDEwOworICBiLnNldHRpbmdzX1sicHJl
Y2lzaW9uVHlwZSJdID0gImRlY2ltYWwiOworICB2ID0gMC4yMzMwMDAwMDsKKyAgZXhwZWN0ZWQg
PSAiMC4yMzMiOworICByZXN1bHQgPSBKc29uOjp3cml0ZVN0cmluZyhiLCB2KTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgcmVzdWx0KTsKK30KIAotVmFsdWVUZXN0
OjpJc0NoZWNrOjpJc0NoZWNrKCkKLSAgIDogaXNPYmplY3RfKCBmYWxzZSApCi0gICAsIGlzQXJy
YXlfKCBmYWxzZSApCi0gICAsIGlzQm9vbF8oIGZhbHNlICkKLSAgICwgaXNTdHJpbmdfKCBmYWxz
ZSApCi0gICAsIGlzTnVsbF8oIGZhbHNlICkKLSAgICwgaXNJbnRfKCBmYWxzZSApCi0gICAsIGlz
SW50NjRfKCBmYWxzZSApCi0gICAsIGlzVUludF8oIGZhbHNlICkKLSAgICwgaXNVSW50NjRfKCBm
YWxzZSApCi0gICAsIGlzSW50ZWdyYWxfKCBmYWxzZSApCi0gICAsIGlzRG91YmxlXyggZmFsc2Ug
KQotICAgLCBpc051bWVyaWNfKCBmYWxzZSApCi17Ci19Ci0KLQotdm9pZCAKLVZhbHVlVGVzdDo6
Y2hlY2tJcyggY29uc3QgSnNvbjo6VmFsdWUgJnZhbHVlLCBjb25zdCBJc0NoZWNrICZjaGVjayAp
Ci17Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNPYmplY3RfLCB2YWx1ZS5pc09i
amVjdCgpICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNBcnJheV8sIHZhbHVl
LmlzQXJyYXkoKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzQm9vbF8sIHZh
bHVlLmlzQm9vbCgpICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNEb3VibGVf
LCB2YWx1ZS5pc0RvdWJsZSgpICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNJ
bnRfLCB2YWx1ZS5pc0ludCgpICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNV
SW50XywgdmFsdWUuaXNVSW50KCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5p
c0ludGVncmFsXywgdmFsdWUuaXNJbnRlZ3JhbCgpICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoY2hlY2suaXNOdW1lcmljXywgdmFsdWUuaXNOdW1lcmljKCkgKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChjaGVjay5pc1N0cmluZ18sIHZhbHVlLmlzU3RyaW5nKCkgKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc051bGxfLCB2YWx1ZS5pc051bGwoKSApOworc3RydWN0
IFdyaXRlclRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307CiAKLSNpZmRlZiBKU09OX0hBU19J
TlQ2NAotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzSW50NjRfLCB2YWx1ZS5pc0lu
dDY0KCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc1VJbnQ2NF8sIHZhbHVl
LmlzVUludDY0KCkgKTsKLSNlbHNlCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZh
bHVlLmlzSW50NjQoKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNlLCB2YWx1ZS5p
c1VJbnQ2NCgpICk7Ci0jZW5kaWYKK0pTT05URVNUX0ZJWFRVUkUoV3JpdGVyVGVzdCwgZHJvcE51
bGxQbGFjZWhvbGRlcnMpIHsKKyAgSnNvbjo6RmFzdFdyaXRlciB3cml0ZXI7CisgIEpzb246OlZh
bHVlIG51bGxWYWx1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUKHdyaXRlci53cml0ZShudWxsVmFsdWUp
ID09ICJudWxsXG4iKTsKKworICB3cml0ZXIuZHJvcE51bGxQbGFjZWhvbGRlcnMoKTsKKyAgSlNP
TlRFU1RfQVNTRVJUKHdyaXRlci53cml0ZShudWxsVmFsdWUpID09ICJcbiIpOworfQorCitzdHJ1
Y3QgU3RyZWFtV3JpdGVyVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1Rf
RklYVFVSRShTdHJlYW1Xcml0ZXJUZXN0LCBkcm9wTnVsbFBsYWNlaG9sZGVycykgeworICBKc29u
OjpTdHJlYW1Xcml0ZXJCdWlsZGVyIGI7CisgIEpzb246OlZhbHVlIG51bGxWYWx1ZTsKKyAgYi5z
ZXR0aW5nc19bImRyb3BOdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgSlNPTlRFU1RfQVNT
RVJUKEpzb246OndyaXRlU3RyaW5nKGIsIG51bGxWYWx1ZSkgPT0gIm51bGwiKTsKKyAgYi5zZXR0
aW5nc19bImRyb3BOdWxsUGxhY2Vob2xkZXJzIl0gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlQo
SnNvbjo6d3JpdGVTdHJpbmcoYiwgbnVsbFZhbHVlKS5lbXB0eSgpKTsKK30KKworSlNPTlRFU1Rf
RklYVFVSRShTdHJlYW1Xcml0ZXJUZXN0LCB3cml0ZVplcm9lcykgeworICBKc29uOjpTdHJpbmcg
YmluYXJ5KCJoaSIsIDMpOyAvLyBpbmNsdWRlIHRyYWlsaW5nIDAKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDMsIGJpbmFyeS5sZW5ndGgoKSk7CisgIEpzb246OlN0cmluZyBleHBlY3RlZCgiXCJo
aVxcdTAwMDBcIiIpOyAvLyB1bmljb2RlZCB6ZXJvCisgIEpzb246OlN0cmVhbVdyaXRlckJ1aWxk
ZXIgYjsKKyAgeworICAgIEpzb246OlZhbHVlIHJvb3Q7CisgICAgcm9vdCA9IGJpbmFyeTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGJpbmFyeSwgcm9vdC5hc1N0cmluZygpKTsK
KyAgICBKc29uOjpTdHJpbmcgb3V0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgcm9vdCk7CisgICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVkLnNpemUoKSwgb3V0LnNpemUoKSk7CisgICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgb3V0KTsKKyAgfQorICB7Cisg
ICAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgICByb290WyJ0b3AiXSA9IGJpbmFyeTsKKyAgICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGJpbmFyeSwgcm9vdFsidG9wIl0uYXNTdHJpbmcoKSk7
CisgICAgSnNvbjo6U3RyaW5nIG91dCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHJvb3RbInRvcCJd
KTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCBvdXQpOworICB9
CiB9CiAKLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgY29tcGFyZU51bGwgKQotewotICAg
IEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIEpzb246OlZhbHVlKCksIEpzb246
OlZhbHVlKCkgKSApOworc3RydWN0IFJlYWRlclRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307
CisKK0pTT05URVNUX0ZJWFRVUkUoUmVhZGVyVGVzdCwgcGFyc2VXaXRoTm9FcnJvcnMpIHsKKyAg
SnNvbjo6UmVhZGVyIHJlYWRlcjsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgYm9vbCBvayA9IHJl
YWRlci5wYXJzZSgieyBcInByb3BlcnR5XCIgOiBcInZhbHVlXCIgfSIsIHJvb3QpOworICBKU09O
VEVTVF9BU1NFUlQob2spOworICBKU09OVEVTVF9BU1NFUlQocmVhZGVyLmdldEZvcm1hdHRlZEVy
cm9yTWVzc2FnZXMoKS5lbXB0eSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJlYWRlci5nZXRTdHJ1
Y3R1cmVkRXJyb3JzKCkuZW1wdHkoKSk7CiB9CiAKLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVU
ZXN0LCBjb21wYXJlSW50ICkKLXsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xl
c3MoIDAsIDEwICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCAx
MCwgMTAgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIC0xMCwg
LTEwICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIC0xMCwgMCAp
ICk7CitKU09OVEVTVF9GSVhUVVJFKFJlYWRlclRlc3QsIHBhcnNlV2l0aE5vRXJyb3JzVGVzdGlu
Z09mZnNldHMpIHsKKyAgSnNvbjo6UmVhZGVyIHJlYWRlcjsKKyAgSnNvbjo6VmFsdWUgcm9vdDsK
KyAgYm9vbCBvayA9IHJlYWRlci5wYXJzZSgieyBcInByb3BlcnR5XCIgOiBbXCJ2YWx1ZVwiLCBc
InZhbHVlMlwiXSwgXCJvYmpcIiA6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAieyBcIm5l
c3RlZFwiIDogMTIzLCBcImJvb2xcIiA6IHRydWV9LCBcIm51bGxcIiA6ICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAibnVsbCwgXCJmYWxzZVwiIDogZmFsc2UgfSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgcm9vdCk7CisgIEpTT05URVNUX0FTU0VSVChvayk7CisgIEpTT05URVNUX0FT
U0VSVChyZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpLmVtcHR5KCkpOworICBKU09O
VEVTVF9BU1NFUlQocmVhZGVyLmdldFN0cnVjdHVyZWRFcnJvcnMoKS5lbXB0eSgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUKHJvb3RbInByb3BlcnR5Il0uZ2V0T2Zmc2V0U3RhcnQoKSA9PSAxNSk7Cisg
IEpTT05URVNUX0FTU0VSVChyb290WyJwcm9wZXJ0eSJdLmdldE9mZnNldExpbWl0KCkgPT0gMzQp
OworICBKU09OVEVTVF9BU1NFUlQocm9vdFsicHJvcGVydHkiXVswXS5nZXRPZmZzZXRTdGFydCgp
ID09IDE2KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbInByb3BlcnR5Il1bMF0uZ2V0T2Zmc2V0
TGltaXQoKSA9PSAyMyk7CisgIEpTT05URVNUX0FTU0VSVChyb290WyJwcm9wZXJ0eSJdWzFdLmdl
dE9mZnNldFN0YXJ0KCkgPT0gMjUpOworICBKU09OVEVTVF9BU1NFUlQocm9vdFsicHJvcGVydHki
XVsxXS5nZXRPZmZzZXRMaW1pdCgpID09IDMzKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbIm9i
aiJdLmdldE9mZnNldFN0YXJ0KCkgPT0gNDQpOworICBKU09OVEVTVF9BU1NFUlQocm9vdFsib2Jq
Il0uZ2V0T2Zmc2V0TGltaXQoKSA9PSA3Nik7CisgIEpTT05URVNUX0FTU0VSVChyb290WyJvYmoi
XVsibmVzdGVkIl0uZ2V0T2Zmc2V0U3RhcnQoKSA9PSA1Nyk7CisgIEpTT05URVNUX0FTU0VSVChy
b290WyJvYmoiXVsibmVzdGVkIl0uZ2V0T2Zmc2V0TGltaXQoKSA9PSA2MCk7CisgIEpTT05URVNU
X0FTU0VSVChyb290WyJvYmoiXVsiYm9vbCJdLmdldE9mZnNldFN0YXJ0KCkgPT0gNzEpOworICBK
U09OVEVTVF9BU1NFUlQocm9vdFsib2JqIl1bImJvb2wiXS5nZXRPZmZzZXRMaW1pdCgpID09IDc1
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbIm51bGwiXS5nZXRPZmZzZXRTdGFydCgpID09IDg3
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbIm51bGwiXS5nZXRPZmZzZXRMaW1pdCgpID09IDkx
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbImZhbHNlIl0uZ2V0T2Zmc2V0U3RhcnQoKSA9PSAx
MDMpOworICBKU09OVEVTVF9BU1NFUlQocm9vdFsiZmFsc2UiXS5nZXRPZmZzZXRMaW1pdCgpID09
IDEwOCk7CisgIEpTT05URVNUX0FTU0VSVChyb290LmdldE9mZnNldFN0YXJ0KCkgPT0gMCk7Cisg
IEpTT05URVNUX0FTU0VSVChyb290LmdldE9mZnNldExpbWl0KCkgPT0gMTEwKTsKIH0KIAorSlNP
TlRFU1RfRklYVFVSRShSZWFkZXJUZXN0LCBwYXJzZVdpdGhPbmVFcnJvcikgeworICBKc29uOjpS
ZWFkZXIgcmVhZGVyOworICBKc29uOjpWYWx1ZSByb290OworICBib29sIG9rID0gcmVhZGVyLnBh
cnNlKCJ7IFwicHJvcGVydHlcIiA6OiBcInZhbHVlXCIgfSIsIHJvb3QpOworICBKU09OVEVTVF9B
U1NFUlQoIW9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzKCkgPT0KKyAgICAgICAgICAgICAgICAgICIqIExpbmUgMSwgQ29sdW1uIDE1XG4gIFN5
bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSAiCisgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQuXG4iKTsKKyAgc3RkOjp2ZWN0b3I8SnNvbjo6UmVhZGVyOjpTdHJ1Y3R1cmVkRXJy
b3I+IGVycm9ycyA9CisgICAgICByZWFkZXIuZ2V0U3RydWN0dXJlZEVycm9ycygpOworICBKU09O
VEVTVF9BU1NFUlQoZXJyb3JzLnNpemUoKSA9PSAxKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9y
cy5hdCgwKS5vZmZzZXRfc3RhcnQgPT0gMTQpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0
KDApLm9mZnNldF9saW1pdCA9PSAxNSk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCku
bWVzc2FnZSA9PQorICAgICAgICAgICAgICAgICAgIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVj
dCBvciBhcnJheSBleHBlY3RlZC4iKTsKK30KIAotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0
LCBjb21wYXJlVUludCApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNz
KCAwdSwgMTB1ICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIDB1
LCBKc29uOjpWYWx1ZTo6bWF4VUludCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNo
ZWNrSXNFcXVhbCggMTB1LCAxMHUgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVl
VGVzdCwgY29tcGFyZURvdWJsZSApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNr
SXNMZXNzKCAwLjAsIDEwLjAgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
RXF1YWwoIDEwLjAsIDEwLjAgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
RXF1YWwoIC0xMC4wLCAtMTAuMCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNr
SXNMZXNzKCAtMTAuMCwgMC4wICkgKTsKLX0KLQotCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRl
c3QsIGNvbXBhcmVTdHJpbmcgKQotewotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
TGVzcyggIiIsICIgIiApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNz
KCAiIiwgImEiICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoICJh
YmNkIiwgInp5dWkiICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3Mo
ICJhYmMiLCAiYWJjZCIgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1
YWwoICJhYmNkIiwgImFiY2QiICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJ
c0VxdWFsKCAiICIsICIgIiApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNM
ZXNzKCAiQUJDRCIsICJhYmNkIiApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNr
SXNFcXVhbCggIkFCQ0QiLCAiQUJDRCIgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZh
bHVlVGVzdCwgY29tcGFyZUJvb2xlYW4gKQotewotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBj
aGVja0lzTGVzcyggZmFsc2UsIHRydWUgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBj
aGVja0lzRXF1YWwoIGZhbHNlLCBmYWxzZSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
IGNoZWNrSXNFcXVhbCggdHJ1ZSwgdHJ1ZSApICk7Ci19Ci0KLQotSlNPTlRFU1RfRklYVFVSRSgg
VmFsdWVUZXN0LCBjb21wYXJlQXJyYXkgKQotewotICAgIC8vIGFycmF5IGNvbXBhcmUgc2l6ZSB0
aGVuIGNvbnRlbnQKLSAgICBKc29uOjpWYWx1ZSBlbXB0eUFycmF5KEpzb246OmFycmF5VmFsdWUp
OwotICAgIEpzb246OlZhbHVlIGwxYUFycmF5OwotICAgIGwxYUFycmF5LmFwcGVuZCggMCApOwot
ICAgIEpzb246OlZhbHVlIGwxYkFycmF5OwotICAgIGwxYkFycmF5LmFwcGVuZCggMTAgKTsKLSAg
ICBKc29uOjpWYWx1ZSBsMmFBcnJheTsKLSAgICBsMmFBcnJheS5hcHBlbmQoIDAgKTsKLSAgICBs
MmFBcnJheS5hcHBlbmQoIDAgKTsKLSAgICBKc29uOjpWYWx1ZSBsMmJBcnJheTsKLSAgICBsMmJB
cnJheS5hcHBlbmQoIDAgKTsKLSAgICBsMmJBcnJheS5hcHBlbmQoIDEwICk7Ci0gICAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBlbXB0eUFycmF5LCBsMWFBcnJheSApICk7Ci0g
ICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBlbXB0eUFycmF5LCBsMmFBcnJh
eSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBsMWFBcnJheSwg
bDJhQXJyYXkgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggbDJh
QXJyYXksIGwyYkFycmF5ICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0Vx
dWFsKCBlbXB0eUFycmF5LCBKc29uOjpWYWx1ZSggZW1wdHlBcnJheSApICkgKTsKLSAgICBKU09O
VEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCBsMWFBcnJheSwgSnNvbjo6VmFsdWUoIGwx
YUFycmF5KSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggbDJi
QXJyYXksIEpzb246OlZhbHVlKCBsMmJBcnJheSkgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRV
UkUoIFZhbHVlVGVzdCwgY29tcGFyZU9iamVjdCApCi17Ci0gICAgLy8gb2JqZWN0IGNvbXBhcmUg
c2l6ZSB0aGVuIGNvbnRlbnQKLSAgICBKc29uOjpWYWx1ZSBlbXB0eU9iamVjdChKc29uOjpvYmpl
Y3RWYWx1ZSk7Ci0gICAgSnNvbjo6VmFsdWUgbDFhT2JqZWN0OwotICAgIGwxYU9iamVjdFsia2V5
MSJdID0gMDsKLSAgICBKc29uOjpWYWx1ZSBsMWJPYmplY3Q7Ci0gICAgbDFhT2JqZWN0WyJrZXkx
Il0gPSAxMDsKLSAgICBKc29uOjpWYWx1ZSBsMmFPYmplY3Q7Ci0gICAgbDJhT2JqZWN0WyJrZXkx
Il0gPSAwOwotICAgIGwyYU9iamVjdFsia2V5MiJdID0gMDsKLSAgICBKU09OVEVTVF9BU1NFUlRf
UFJFRCggY2hlY2tJc0xlc3MoIGVtcHR5T2JqZWN0LCBsMWFPYmplY3QgKSApOwotICAgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggZW1wdHlPYmplY3QsIGwyYU9iamVjdCApICk7
Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBsMWFPYmplY3QsIGwyYU9i
amVjdCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggZW1wdHlP
YmplY3QsIEpzb246OlZhbHVlKCBlbXB0eU9iamVjdCApICkgKTsKLSAgICBKU09OVEVTVF9BU1NF
UlRfUFJFRCggY2hlY2tJc0VxdWFsKCBsMWFPYmplY3QsIEpzb246OlZhbHVlKCBsMWFPYmplY3Qg
KSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggbDJhT2JqZWN0
LCBKc29uOjpWYWx1ZSggbDJhT2JqZWN0ICkgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUo
IFZhbHVlVGVzdCwgY29tcGFyZVR5cGUgKQotewotICAgIC8vIG9iamVjdCBvZiBkaWZmZXJlbnQg
dHlwZSBhcmUgb3JkZXJlZCBhY2NvcmRpbmcgdG8gdGhlaXIgdHlwZQotICAgIEpTT05URVNUX0FT
U0VSVF9QUkVEKCBjaGVja0lzTGVzcyggSnNvbjo6VmFsdWUoKSwgSnNvbjo6VmFsdWUoMSkgKSAp
OwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggSnNvbjo6VmFsdWUoMSks
IEpzb246OlZhbHVlKDF1KSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNM
ZXNzKCBKc29uOjpWYWx1ZSgxdSksIEpzb246OlZhbHVlKDEuMCkgKSApOwotICAgIEpTT05URVNU
X0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggSnNvbjo6VmFsdWUoMS4wKSwgSnNvbjo6VmFsdWUo
ImEiKSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBKc29uOjpW
YWx1ZSgiYSIpLCBKc29uOjpWYWx1ZSh0cnVlKSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoIGNoZWNrSXNMZXNzKCBKc29uOjpWYWx1ZSh0cnVlKSwgSnNvbjo6VmFsdWUoSnNvbjo6YXJy
YXlWYWx1ZSkgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggSnNv
bjo6VmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSksIEpzb246OlZhbHVlKEpzb246Om9iamVjdFZhbHVl
KSApICk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlVGVzdDo6Y2hlY2tJc0xlc3MoIGNvbnN0IEpzb246
OlZhbHVlICZ4LCBjb25zdCBKc29uOjpWYWx1ZSAmeSApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJU
KCB4IDwgeSApOwotICAgIEpTT05URVNUX0FTU0VSVCggeSA+IHggKTsKLSAgICBKU09OVEVTVF9B
U1NFUlQoIHggPD0geSApOwotICAgIEpTT05URVNUX0FTU0VSVCggeSA+PSB4ICk7Ci0gICAgSlNP
TlRFU1RfQVNTRVJUKCAhKHggPT0geSkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoICEoeSA9PSB4
KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggISh4ID49IHkpICk7Ci0gICAgSlNPTlRFU1RfQVNT
RVJUKCAhKHkgPD0geCkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoICEoeCA+IHkpICk7Ci0gICAg
SlNPTlRFU1RfQVNTRVJUKCAhKHkgPCB4KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggeC5jb21w
YXJlKCB5ICkgPCAwICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB5LmNvbXBhcmUoIHggKSA+PSAw
ICk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlVGVzdDo6Y2hlY2tJc0VxdWFsKCBjb25zdCBKc29uOjpW
YWx1ZSAmeCwgY29uc3QgSnNvbjo6VmFsdWUgJnkgKQotewotICAgIEpTT05URVNUX0FTU0VSVCgg
eCA9PSB5ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB5ID09IHggKTsKLSAgICBKU09OVEVTVF9B
U1NFUlQoIHggPD0geSApOwotICAgIEpTT05URVNUX0FTU0VSVCggeSA8PSB4ICk7Ci0gICAgSlNP
TlRFU1RfQVNTRVJUKCB4ID49IHkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHkgPj0geCApOwot
ICAgIEpTT05URVNUX0FTU0VSVCggISh4IDwgeSkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoICEo
eSA8IHgpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCAhKHggPiB5KSApOwotICAgIEpTT05URVNU
X0FTU0VSVCggISh5ID4geCkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHguY29tcGFyZSggeSAp
ID09IDAgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHkuY29tcGFyZSggeCApID09IDAgKTsKLX0K
LQotaW50IG1haW4oIGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10gKQotewotICAgSnNvblRl
c3Q6OlJ1bm5lciBydW5uZXI7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIs
IFZhbHVlVGVzdCwgY2hlY2tOb3JtYWxpemVGbG9hdGluZ1BvaW50U3RyICk7Ci0gICBKU09OVEVT
VF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgbWVtYmVyQ291bnQgKTsKLSAg
IEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBvYmplY3RzICk7
Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgYXJyYXlz
ICk7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgbnVs
bCApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIHN0
cmluZ3MgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0
LCBib29scyApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRl
c3QsIGludGVnZXJzICk7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZh
bHVlVGVzdCwgbm9uSW50ZWdlcnMgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1
bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlTnVsbCApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklY
VFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVJbnQgKTsKLSAgIEpTT05URVNUX1JFR0lT
VEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlVUludCApOwotICAgSlNPTlRF
U1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVEb3VibGUgKTsK
LSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJl
U3RyaW5nICk7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVz
dCwgY29tcGFyZUJvb2xlYW4gKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5l
ciwgVmFsdWVUZXN0LCBjb21wYXJlQXJyYXkgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRV
UkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlT2JqZWN0ICk7Ci0gICBKU09OVEVTVF9SRUdJ
U1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgY29tcGFyZVR5cGUgKTsKLSAgIHJldHVy
biBydW5uZXIucnVuQ29tbWFuZExpbmUoIGFyZ2MsIGFyZ3YgKTsKK0pTT05URVNUX0ZJWFRVUkUo
UmVhZGVyVGVzdCwgcGFyc2VDaGluZXNlV2l0aE9uZUVycm9yKSB7CisgIEpzb246OlJlYWRlciBy
ZWFkZXI7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGJvb2wgb2sgPSByZWFkZXIucGFyc2UoInsg
XCJwcuS9kOiXpGVydHlcIiA6OiBcInZhbHVlXCIgfSIsIHJvb3QpOworICBKU09OVEVTVF9BU1NF
UlQoIW9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJvck1lc3Nh
Z2VzKCkgPT0KKyAgICAgICAgICAgICAgICAgICIqIExpbmUgMSwgQ29sdW1uIDE5XG4gIFN5bnRh
eCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSAiCisgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQuXG4iKTsKKyAgc3RkOjp2ZWN0b3I8SnNvbjo6UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+
IGVycm9ycyA9CisgICAgICByZWFkZXIuZ2V0U3RydWN0dXJlZEVycm9ycygpOworICBKU09OVEVT
VF9BU1NFUlQoZXJyb3JzLnNpemUoKSA9PSAxKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5h
dCgwKS5vZmZzZXRfc3RhcnQgPT0gMTgpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDAp
Lm9mZnNldF9saW1pdCA9PSAxOSk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCkubWVz
c2FnZSA9PQorICAgICAgICAgICAgICAgICAgIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBv
ciBhcnJheSBleHBlY3RlZC4iKTsKIH0KKworSlNPTlRFU1RfRklYVFVSRShSZWFkZXJUZXN0LCBw
YXJzZVdpdGhEZXRhaWxFcnJvcikgeworICBKc29uOjpSZWFkZXIgcmVhZGVyOworICBKc29uOjpW
YWx1ZSByb290OworICBib29sIG9rID0gcmVhZGVyLnBhcnNlKCJ7IFwicHJvcGVydHlcIiA6IFwi
dlxcYWx1ZVwiIH0iLCByb290KTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFvayk7CisgIEpTT05URVNU
X0FTU0VSVChyZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpID09CisgICAgICAgICAg
ICAgICAgICAiKiBMaW5lIDEsIENvbHVtbiAxNlxuICBCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0
cmluZ1xuU2VlICIKKyAgICAgICAgICAgICAgICAgICJMaW5lIDEsIENvbHVtbiAyMCBmb3IgZGV0
YWlsLlxuIik7CisgIHN0ZDo6dmVjdG9yPEpzb246OlJlYWRlcjo6U3RydWN0dXJlZEVycm9yPiBl
cnJvcnMgPQorICAgICAgcmVhZGVyLmdldFN0cnVjdHVyZWRFcnJvcnMoKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKGVycm9ycy5zaXplKCkgPT0gMSk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQo
MCkub2Zmc2V0X3N0YXJ0ID09IDE1KTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5hdCgwKS5v
ZmZzZXRfbGltaXQgPT0gMjMpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDApLm1lc3Nh
Z2UgPT0gIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIik7Cit9CisKK3N0cnVjdCBDaGFy
UmVhZGVyVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVSRShD
aGFyUmVhZGVyVGVzdCwgcGFyc2VXaXRoTm9FcnJvcnMpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXIgYjsKKyAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsK
KyAgSnNvbjo6U3RyaW5nIGVycnM7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3Qg
ZG9jW10gPSAieyBcInByb3BlcnR5XCIgOiBcInZhbHVlXCIgfSI7CisgIGJvb2wgb2sgPSByZWFk
ZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7Cisg
IGRlbGV0ZSByZWFkZXI7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlclRlc3QsIHBh
cnNlV2l0aE5vRXJyb3JzVGVzdGluZ09mZnNldHMpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxk
ZXIgYjsKKyAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAg
SnNvbjo6U3RyaW5nIGVycnM7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3QgZG9j
W10gPSAieyBcInByb3BlcnR5XCIgOiBbXCJ2YWx1ZVwiLCBcInZhbHVlMlwiXSwgXCJvYmpcIiA6
ICIKKyAgICAgICAgICAgICAgICAgICAgICJ7IFwibmVzdGVkXCIgOiAxMjMsIFwiYm9vbFwiIDog
dHJ1ZX0sIFwibnVsbFwiIDogIgorICAgICAgICAgICAgICAgICAgICAgIm51bGwsIFwiZmFsc2Vc
IiA6IGZhbHNlIH0iOworICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6
c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgIEpTT05URVNUX0FTU0VSVChvayk7CisgIEpT
T05URVNUX0FTU0VSVChlcnJzLmVtcHR5KCkpOworICBkZWxldGUgcmVhZGVyOworfQorCitKU09O
VEVTVF9GSVhUVVJFKENoYXJSZWFkZXJUZXN0LCBwYXJzZVdpdGhPbmVFcnJvcikgeworICBKc29u
OjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdD
aGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6VmFsdWUgcm9vdDsK
KyAgY2hhciBjb25zdCBkb2NbXSA9ICJ7IFwicHJvcGVydHlcIiA6OiBcInZhbHVlXCIgfSI7Cisg
IGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJv
b3QsICZlcnJzKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFvayk7CisgIEpTT05URVNUX0FTU0VSVChl
cnJzID09CisgICAgICAgICAgICAgICAgICAiKiBMaW5lIDEsIENvbHVtbiAxNVxuICBTeW50YXgg
ZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3IgYXJyYXkgIgorICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkLlxuIik7CisgIGRlbGV0ZSByZWFkZXI7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJl
YWRlclRlc3QsIHBhcnNlQ2hpbmVzZVdpdGhPbmVFcnJvcikgeworICBKc29uOjpDaGFyUmVhZGVy
QnVpbGRlciBiOworICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkp
OworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBjb25z
dCBkb2NbXSA9ICJ7IFwicHLkvZDol6RlcnR5XCIgOjogXCJ2YWx1ZVwiIH0iOworICBib29sIG9r
ID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJy
cyk7CisgIEpTT05URVNUX0FTU0VSVCghb2spOworICBKU09OVEVTVF9BU1NFUlQoZXJycyA9PQor
ICAgICAgICAgICAgICAgICAgIiogTGluZSAxLCBDb2x1bW4gMTlcbiAgU3ludGF4IGVycm9yOiB2
YWx1ZSwgb2JqZWN0IG9yIGFycmF5ICIKKyAgICAgICAgICAgICAgICAgICJleHBlY3RlZC5cbiIp
OworICBkZWxldGUgcmVhZGVyOworfQorCitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJUZXN0
LCBwYXJzZVdpdGhEZXRhaWxFcnJvcikgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOwor
ICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpT
dHJpbmcgZXJyczsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9ICJ7
IFwicHJvcGVydHlcIiA6IFwidlxcYWx1ZVwiIH0iOworICBib29sIG9rID0gcmVhZGVyLT5wYXJz
ZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgIEpTT05URVNU
X0FTU0VSVCghb2spOworICBKU09OVEVTVF9BU1NFUlQoZXJycyA9PQorICAgICAgICAgICAgICAg
ICAgIiogTGluZSAxLCBDb2x1bW4gMTZcbiAgQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmdc
blNlZSAiCisgICAgICAgICAgICAgICAgICAiTGluZSAxLCBDb2x1bW4gMjAgZm9yIGRldGFpbC5c
biIpOworICBkZWxldGUgcmVhZGVyOworfQorCitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJU
ZXN0LCBwYXJzZVdpdGhTdGFja0xpbWl0KSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7
CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3QgZG9jW10gPSAieyBcInByb3BlcnR5
XCIgOiBcInZhbHVlXCIgfSI7CisgIHsKKyAgICBiLnNldHRpbmdzX1sic3RhY2tMaW1pdCJdID0g
MjsKKyAgICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICAg
IEpzb246OlN0cmluZyBlcnJzOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9j
ICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQo
b2spOworICAgIEpTT05URVNUX0FTU0VSVChlcnJzLmVtcHR5KCkpOworICAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgidmFsdWUiLCByb290WyJwcm9wZXJ0eSJdKTsKKyAgICBkZWxldGUgcmVhZGVy
OworICB9CisgIHsKKyAgICBiLnNldHRpbmdzX1sic3RhY2tMaW1pdCJdID0gMTsKKyAgICBKc29u
OjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICAgIEpzb246OlN0cmlu
ZyBlcnJzOworICAgIEpTT05URVNUX0FTU0VSVF9USFJPV1MoCisgICAgICAgIHJlYWRlci0+cGFy
c2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpKTsKKyAgICBkZWxl
dGUgcmVhZGVyOworICB9Cit9CisKK3N0cnVjdCBDaGFyUmVhZGVyU3RyaWN0TW9kZVRlc3QgOiBK
c29uVGVzdDo6VGVzdENhc2Uge307CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlclN0cmlj
dE1vZGVUZXN0LCBkdXBLZXlzKSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIEpz
b246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3QgZG9jW10gPQorICAgICAgInsgXCJwcm9wZXJ0
eVwiIDogXCJ2YWx1ZVwiLCBcImtleVwiIDogXCJ2YWwxXCIsIFwia2V5XCIgOiBcInZhbDJcIiB9
IjsKKyAgeworICAgIGIuc3RyaWN0TW9kZSgmYi5zZXR0aW5nc18pOworICAgIEpzb246OkNoYXJS
ZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgICAgSnNvbjo6U3RyaW5nIGVycnM7
CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2Mp
LCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVCghb2spOworICAgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoIiogTGluZSAxLCBDb2x1bW4gNDFcbiIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIgIER1cGxpY2F0ZSBrZXk6ICdrZXknXG4iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKCJ2YWwxIiwgcm9vdFsia2V5Il0pOyAvLyBzbyBmYXIKKyAgICBkZWxldGUgcmVhZGVyOwor
ICB9Cit9CitzdHJ1Y3QgQ2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCA6IEpzb25UZXN0OjpUZXN0
Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0LCBp
c3N1ZTE2NCkgeworICAvLyBUaGlzIGlzIGludGVycHJldGVkIGFzIGEgc3RyaW5nIHZhbHVlIGZv
bGxvd2VkIGJ5IGEgY29sb24uCisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIEpzb246
OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3QgZG9jW10gPSAiIFwicHJvcGVydHlcIiA6IFwidmFs
dWVcIiB9IjsKKyAgeworICAgIGIuc2V0dGluZ3NfWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7Cisg
ICAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgICBKc29u
OjpTdHJpbmcgZXJyczsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0
ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsK
KyAgICBKU09OVEVTVF9BU1NFUlQoZXJycy5lbXB0eSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoInByb3BlcnR5Iiwgcm9vdCk7CisgICAgZGVsZXRlIHJlYWRlcjsKKyAgfQorICB7Cisg
ICAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJhIl0gPSB0cnVlOworICAgIEpzb246OkNoYXJSZWFk
ZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7CisgICAgSnNvbjo6U3RyaW5nIGVycnM7Cisg
ICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAm
cm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVCghb2spOworICAgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoZXJycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIqIExpbmUgMSwgQ29sdW1uIDEzXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiICBFeHRyYSBub24td2hpdGVzcGFjZSBhZnRlciBKU09OIHZhbHVlLlxuIik7CisgICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKCJwcm9wZXJ0eSIsIHJvb3QpOworICAgIGRlbGV0ZSByZWFkZXI7
CisgIH0KKyAgeworICAgIGIuc2V0dGluZ3NfWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7CisgICAg
Yi5zdHJpY3RNb2RlKCZiLnNldHRpbmdzXyk7CisgICAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVy
KGIubmV3Q2hhclJlYWRlcigpKTsKKyAgICBKc29uOjpTdHJpbmcgZXJyczsKKyAgICBib29sIG9r
ID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJy
cyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKCFvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTChlcnJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiogTGluZSAx
LCBDb2x1bW4gMTNcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIEV4dHJh
IG5vbi13aGl0ZXNwYWNlIGFmdGVyIEpTT04gdmFsdWUuXG4iKTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoInByb3BlcnR5Iiwgcm9vdCk7CisgICAgZGVsZXRlIHJlYWRlcjsKKyAgfQorfQor
SlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0LCBpc3N1ZTEwNykgewor
ICAvLyBUaGlzIGlzIGludGVycHJldGVkIGFzIGFuIGludCB2YWx1ZSBmb2xsb3dlZCBieSBhIGNv
bG9uLgorICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBKc29uOjpWYWx1ZSByb290Owor
ICBjaGFyIGNvbnN0IGRvY1tdID0gIjE6MjozIjsKKyAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJh
Il0gPSB0cnVlOworICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkp
OworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBk
b2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICBKU09OVEVTVF9BU1NFUlQo
IW9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiKiBMaW5lIDEsIENvbHVtbiAy
XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgRXh0cmEgbm9uLXdoaXRlc3Bh
Y2UgYWZ0ZXIgSlNPTiB2YWx1ZS5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXJycyk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCByb290LmFzSW50KCkpOworICBkZWxl
dGUgcmVhZGVyOworfQorSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0
LCBjb21tZW50QWZ0ZXJPYmplY3QpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAg
SnNvbjo6VmFsdWUgcm9vdDsKKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAieyBcInByb3Bl
cnR5XCIgOiBcInZhbHVlXCIgfSAvL3RyYWlsaW5nXG4vL2NvbW1lbnRcbiI7CisgICAgYi5zZXR0
aW5nc19bImZhaWxJZkV4dHJhIl0gPSB0cnVlOworICAgIEpzb246OkNoYXJSZWFkZXIqIHJlYWRl
cihiLm5ld0NoYXJSZWFkZXIoKSk7CisgICAgSnNvbjo6U3RyaW5nIGVycnM7CisgICAgYm9vbCBv
ayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVy
cnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCgiIiwgZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCJ2YWx1ZSIsIHJv
b3RbInByb3BlcnR5Il0pOworICAgIGRlbGV0ZSByZWFkZXI7CisgIH0KK30KK0pTT05URVNUX0ZJ
WFRVUkUoQ2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCwgY29tbWVudEFmdGVyQXJyYXkpIHsKKyAg
SnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBj
b25zdCBkb2NbXSA9ICJbIFwicHJvcGVydHlcIiAsIFwidmFsdWVcIiBdIC8vdHJhaWxpbmdcbi8v
Y29tbWVudFxuIjsKKyAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJhIl0gPSB0cnVlOworICBKc29u
OjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJpbmcg
ZXJyczsKKyAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihk
b2MpLCAmcm9vdCwgJmVycnMpOworICBKU09OVEVTVF9BU1NFUlQob2spOworICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCJ2
YWx1ZSIsIHJvb3RbMXVdKTsKKyAgZGVsZXRlIHJlYWRlcjsKK30KK0pTT05URVNUX0ZJWFRVUkUo
Q2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCwgY29tbWVudEFmdGVyQm9vbCkgeworICBKc29uOjpD
aGFyUmVhZGVyQnVpbGRlciBiOworICBKc29uOjpWYWx1ZSByb290OworICBjaGFyIGNvbnN0IGRv
Y1tdID0gIiB0cnVlIC8qdHJhaWxpbmdcbmNvbW1lbnQqLyI7CisgIGIuc2V0dGluZ3NfWyJmYWls
SWZFeHRyYSJdID0gdHJ1ZTsKKyAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJl
YWRlcigpKTsKKyAgSnNvbjo6U3RyaW5nIGVycnM7CisgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNl
KGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKG9rKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByb290LmFzQm9vbCgpKTsKKyAgZGVsZXRlIHJl
YWRlcjsKK30KK3N0cnVjdCBDaGFyUmVhZGVyQWxsb3dEcm9wTnVsbFRlc3QgOiBKc29uVGVzdDo6
VGVzdENhc2Uge307CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlckFsbG93RHJvcE51bGxU
ZXN0LCBpc3N1ZTE3OCkgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBiLnNldHRp
bmdzX1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJdID0gdHJ1ZTsKKyAgSnNvbjo6VmFs
dWUgcm9vdDsKKyAgSnNvbjo6U3RyaW5nIGVycnM7CisgIEpzb246OkNoYXJSZWFkZXIqIHJlYWRl
cihiLm5ld0NoYXJSZWFkZXIoKSk7CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIntcImFc
IjosXCJiXCI6dHJ1ZX0iOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsg
c3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2sp
OworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgydSwgcm9vdC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChKc29uOjpudWxsVmFsdWUsIHJvb3QuZ2V0KCJhIiwgdHJ1ZSkpOworICB9CisgIHsKKyAg
ICBjaGFyIGNvbnN0IGRvY1tdID0gIntcImFcIjp9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5w
YXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNP
TlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBl
cnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMXUsIHJvb3Quc2l6ZSgpKTsKKyAgICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6bnVsbFZhbHVlLCByb290LmdldCgiYSIsIHRydWUp
KTsKKyAgfQorICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJbXSI7CisgICAgYm9vbCBvayA9
IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMp
OworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1w
dHkoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDB1LCByb290LnNpemUoKSk7CisgICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmFycmF5VmFsdWUsIHJvb3QpOworICB9CisgIHsK
KyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIltudWxsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+
cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpT
T05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7Cisg
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDF1LCByb290LnNpemUoKSk7CisgIH0KKyAgeworICAg
IGNoYXIgY29uc3QgZG9jW10gPSAiWyxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShk
b2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1Rf
QVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsK
KyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7Cisg
ICAgY2hhciBjb25zdCBkb2NbXSA9ICJbLCwsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFy
c2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05U
RVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJy
cyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDR1LCByb290LnNpemUoKSk7CisgIH0KKyAg
eworICAgIGNoYXIgY29uc3QgZG9jW10gPSAiW251bGwsXSI7CisgICAgYm9vbCBvayA9IHJlYWRl
ci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAg
IEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgi
IiwgZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDJ1LCByb290LnNpemUoKSk7Cisg
IH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAiWyxudWxsXSI7CisgICAgYm9vbCBvayA9
IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMp
OworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1w
dHkoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDJ1LCByb290LnNpemUoKSk7CisgIH0K
KyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAiWywsXSI7CisgICAgYm9vbCBvayA9IHJlYWRl
ci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAg
IEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgi
IiwgZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDN1LCByb290LnNpemUoKSk7Cisg
IH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAiW251bGwsLF0iOworICAgIGJvb2wgb2sg
PSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJz
KTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdf
RVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgzdSwgcm9vdC5zaXpl
KCkpOworICB9CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIlssbnVsbCxdIjsKKyAgICBi
b29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290
LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRf
U1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoM3UsIHJv
b3Quc2l6ZSgpKTsKKyAgfQorICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJbLCxudWxsXSI7
CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2Mp
LCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1Rf
QVNTRVJUKGVycnMuZW1wdHkoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDN1LCByb290
LnNpemUoKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAiW1tdLCwsXSI7Cisg
ICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAm
cm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDR1
LCByb290LnNpemUoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmFycmF5VmFs
dWUsIHJvb3RbMHVdKTsKKyAgfQorICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJbLFtdLCxd
IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRv
YyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoNHUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6YXJy
YXlWYWx1ZSwgcm9vdFsxdV0pOworICB9CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIlss
LCxbXV0iOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJs
ZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpT
T05URVNUX0FTU0VSVChlcnJzLmVtcHR5KCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCg0
dSwgcm9vdC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjphcnJheVZh
bHVlLCByb290WzN1XSk7CisgIH0KKyAgZGVsZXRlIHJlYWRlcjsKK30KKworc3RydWN0IENoYXJS
ZWFkZXJBbGxvd1NpbmdsZVF1b3Rlc1Rlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307CisKK0pT
T05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlckFsbG93U2luZ2xlUXVvdGVzVGVzdCwgaXNzdWUxODIp
IHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgYi5zZXR0aW5nc19bImFsbG93U2lu
Z2xlUXVvdGVzIl0gPSB0cnVlOworICBKc29uOjpWYWx1ZSByb290OworICBKc29uOjpTdHJpbmcg
ZXJyczsKKyAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAg
eworICAgIGNoYXIgY29uc3QgZG9jW10gPSAieydhJzp0cnVlLFwiYlwiOnRydWV9IjsKKyAgICBi
b29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290
LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRf
U1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJv
b3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgcm9vdC5nZXQoImEi
LCBmYWxzZSkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByb290LmdldCgiYiIs
IGZhbHNlKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAieydhJzogJ3gnLCBc
ImJcIjoneSd9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6
c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKCJ4Iiwgcm9vdFsiYSJdLmFzU3RyaW5nKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9T
VFJJTkdfRVFVQUwoInkiLCByb290WyJiIl0uYXNTdHJpbmcoKSk7CisgIH0KKyAgZGVsZXRlIHJl
YWRlcjsKK30KKworc3RydWN0IENoYXJSZWFkZXJBbGxvd1plcm9lc1Rlc3QgOiBKc29uVGVzdDo6
VGVzdENhc2Uge307CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlckFsbG93WmVyb2VzVGVz
dCwgaXNzdWUxNzYpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgYi5zZXR0aW5n
c19bImFsbG93U2luZ2xlUXVvdGVzIl0gPSB0cnVlOworICBKc29uOjpWYWx1ZSByb290OworICBK
c29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJl
YWRlcigpKTsKKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAieydhJzp0cnVlLFwiYlwiOnRy
dWV9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVu
KGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwg
cm9vdC5nZXQoImEiLCBmYWxzZSkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCBy
b290LmdldCgiYiIsIGZhbHNlKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAi
eydhJzogJ3gnLCBcImJcIjoneSd9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2Ms
IGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCJ4Iiwgcm9vdFsiYSJdLmFzU3RyaW5nKCkpOworICAgIEpTT05U
RVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoInkiLCByb290WyJiIl0uYXNTdHJpbmcoKSk7CisgIH0K
KyAgZGVsZXRlIHJlYWRlcjsKK30KKworc3RydWN0IENoYXJSZWFkZXJBbGxvd1NwZWNpYWxGbG9h
dHNUZXN0IDogSnNvblRlc3Q6OlRlc3RDYXNlIHt9OworCitKU09OVEVTVF9GSVhUVVJFKENoYXJS
ZWFkZXJBbGxvd1NwZWNpYWxGbG9hdHNUZXN0LCBpc3N1ZTIwOSkgeworICBKc29uOjpDaGFyUmVh
ZGVyQnVpbGRlciBiOworICBiLnNldHRpbmdzX1siYWxsb3dTcGVjaWFsRmxvYXRzIl0gPSB0cnVl
OworICBKc29uOjpWYWx1ZSByb290OworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6Q2hh
clJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgeworICAgIGNoYXIgY29uc3Qg
ZG9jW10gPSAie1wiYVwiOk5hTixcImJcIjpJbmZpbml0eSxcImNcIjotSW5maW5pdHl9IjsKKyAg
ICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZy
b290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoM3Us
IHJvb3Quc2l6ZSgpKTsKKyAgICBkb3VibGUgbiA9IHJvb3RbImEiXS5hc0RvdWJsZSgpOworICAg
IEpTT05URVNUX0FTU0VSVChzdGQ6OmlzbmFuKG4pKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICByb290LmdldCgiYiIsIDAuMCkpOworICAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICByb290LmdldCgiYyIsIDAuMCkpOworICB9CisKKyAgc3RydWN0IFRl
c3REYXRhIHsKKyAgICBpbnQgbGluZTsKKyAgICBib29sIG9rOworICAgIEpzb246OlN0cmluZyBp
bjsKKyAgfTsKKyAgY29uc3QgVGVzdERhdGEgdGVzdF9kYXRhW10gPSB7CisgICAgICB7X19MSU5F
X18sIHRydWUsICJ7XCJhXCI6OX0ifSwgICAgICAgICAgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFs
c2UsICJ7XCJhXCI6MEluZmluaXR5fSJ9LCAvLworICAgICAge19fTElORV9fLCBmYWxzZSwgIntc
ImFcIjoxSW5maW5pdHl9In0sIC8vCisgICAgICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOjlJ
bmZpbml0eX0ifSwgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6MG5maW5pdHl9
In0sICAvLworICAgICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjoxbmZpbml0eX0ifSwgIC8v
CisgICAgICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOjluZmluaXR5fSJ9LCAgLy8KKyAgICAg
IHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6bmZpbml0eX0ifSwgICAvLworICAgICAge19fTElO
RV9fLCBmYWxzZSwgIntcImFcIjoubmZpbml0eX0ifSwgIC8vCisgICAgICB7X19MSU5FX18sIGZh
bHNlLCAie1wiYVwiOjluZmluaXR5fSJ9LCAgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7
XCJhXCI6LW5maW5pdHl9In0sICAvLworICAgICAge19fTElORV9fLCB0cnVlLCAie1wiYVwiOklu
ZmluaXR5fSJ9LCAgIC8vCisgICAgICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOi5JbmZpbml0
eX0ifSwgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6X0luZmluaXR5fSJ9LCAv
LworICAgICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjpfbmZpbml0eX0ifSwgIC8vCisgICAg
ICB7X19MSU5FX18sIHRydWUsICJ7XCJhXCI6LUluZmluaXR5fSJ9ICAgLy8KKyAgfTsKKyAgZm9y
IChjb25zdCBhdXRvJiB0ZCA6IHRlc3RfZGF0YSkgeworICAgIGJvb2wgb2sgPSByZWFkZXItPnBh
cnNlKCYqdGQuaW4uYmVnaW4oKSwgJip0ZC5pbi5iZWdpbigpICsgdGQuaW4uc2l6ZSgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKHRkLm9rID09IG9rKSA8PCAibGluZToiIDw8IHRkLmxpbmUgPDwgIlxuIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiAgZXhwZWN0ZWQ6IHsiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8PCAib2s6IiA8PCB0ZC5vayA8PCAiLCBpbjpcJyIgPDwgdGQu
aW4gPDwgIlwnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIn1cbiIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgIGFjdHVhbDogeyIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJvazoiIDw8IG9rIDw8ICJ9XG4iOworICB9CisK
KyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAie1wicG9zSW5mXCI6IEluZmluaXR5LCBcIk5l
Z0luZlwiOiAtSW5maW5pdHl9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRv
YyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJU
KG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICByb290WyJwb3NJbmYiXS5hc0RvdWJsZSgpKTsKKyAgICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFsiTmVnSW5mIl0uYXNEb3VibGUoKSk7
CisgIH0KKyAgZGVsZXRlIHJlYWRlcjsKK30KKworc3RydWN0IEJ1aWxkZXJUZXN0IDogSnNvblRl
c3Q6OlRlc3RDYXNlIHt9OworCitKU09OVEVTVF9GSVhUVVJFKEJ1aWxkZXJUZXN0LCBzZXR0aW5n
cykgeworICB7CisgICAgSnNvbjo6VmFsdWUgZXJyczsKKyAgICBKc29uOjpDaGFyUmVhZGVyQnVp
bGRlciByYjsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHJiLnNldHRpbmdzXy5p
c01lbWJlcigiZm9vIikpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByYi52YWxp
ZGF0ZSgmZXJycykpOworICAgIHJiWyJmb28iXSA9ICJiYXIiOworICAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCh0cnVlLCByYi5zZXR0aW5nc18uaXNNZW1iZXIoImZvbyIpKTsKKyAgICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoZmFsc2UsIHJiLnZhbGlkYXRlKCZlcnJzKSk7CisgIH0KKyAgeworICAg
IEpzb246OlZhbHVlIGVycnM7CisgICAgSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlciB3YjsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHdiLnNldHRpbmdzXy5pc01lbWJlcigiZm9v
IikpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB3Yi52YWxpZGF0ZSgmZXJycykp
OworICAgIHdiWyJmb28iXSA9ICJiYXIiOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVl
LCB3Yi5zZXR0aW5nc18uaXNNZW1iZXIoImZvbyIpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoZmFsc2UsIHdiLnZhbGlkYXRlKCZlcnJzKSk7CisgIH0KK30KKworc3RydWN0IEl0ZXJhdG9y
VGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVSRShJdGVyYXRv
clRlc3QsIGRpc3RhbmNlKSB7CisgIEpzb246OlZhbHVlIGpzb247CisgIGpzb25bImsxIl0gPSAi
YSI7CisgIGpzb25bImsyIl0gPSAiYiI7CisgIGludCBkaXN0ID0gMDsKKyAgSnNvbjo6U3RyaW5n
IHN0cjsKKyAgZm9yIChKc29uOjpWYWx1ZUl0ZXJhdG9yIGl0ID0ganNvbi5iZWdpbigpOyBpdCAh
PSBqc29uLmVuZCgpOyArK2l0KSB7CisgICAgZGlzdCA9IGl0IC0ganNvbi5iZWdpbigpOworICAg
IHN0ciA9IGl0LT5hc1N0cmluZygpLmNfc3RyKCk7CisgIH0KKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKDEsIGRpc3QpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJiIiwgc3RyKTsK
K30KKworSlNPTlRFU1RfRklYVFVSRShJdGVyYXRvclRlc3QsIG5hbWVzKSB7CisgIEpzb246OlZh
bHVlIGpzb247CisgIGpzb25bImsxIl0gPSAiYSI7CisgIGpzb25bImsyIl0gPSAiYiI7CisgIEpz
b246OlZhbHVlSXRlcmF0b3IgaXQgPSBqc29uLmJlZ2luKCk7CisgIEpTT05URVNUX0FTU0VSVChp
dCAhPSBqc29uLmVuZCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCJr
MSIpLCBpdC5rZXkoKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImsxIiwgaXQu
bmFtZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0xLCBpdC5pbmRleCgpKTsKKyAgKytp
dDsKKyAgSlNPTlRFU1RfQVNTRVJUKGl0ICE9IGpzb24uZW5kKCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6VmFsdWUoImsyIiksIGl0LmtleSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X1NUUklOR19FUVVBTCgiazIiLCBpdC5uYW1lKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
LTEsIGl0LmluZGV4KCkpOworICArK2l0OworICBKU09OVEVTVF9BU1NFUlQoaXQgPT0ganNvbi5l
bmQoKSk7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUoSXRlcmF0b3JUZXN0LCBpbmRleGVzKSB7Cisg
IEpzb246OlZhbHVlIGpzb247CisgIGpzb25bMF0gPSAiYSI7CisgIGpzb25bMV0gPSAiYiI7Cisg
IEpzb246OlZhbHVlSXRlcmF0b3IgaXQgPSBqc29uLmJlZ2luKCk7CisgIEpTT05URVNUX0FTU0VS
VChpdCAhPSBqc29uLmVuZCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVl
KEpzb246OkFycmF5SW5kZXgoMCkpLCBpdC5rZXkoKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIiIsIGl0Lm5hbWUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCBpdC5p
bmRleCgpKTsKKyAgKytpdDsKKyAgSlNPTlRFU1RfQVNTRVJUKGl0ICE9IGpzb24uZW5kKCkpOwor
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoSnNvbjo6QXJyYXlJbmRleCgxKSks
IGl0LmtleSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgaXQubmFtZSgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIGl0LmluZGV4KCkpOworICArK2l0OworICBK
U09OVEVTVF9BU1NFUlQoaXQgPT0ganNvbi5lbmQoKSk7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUo
SXRlcmF0b3JUZXN0LCBjb25zdCkgeworICBKc29uOjpWYWx1ZSBjb25zdCB2OworICBKU09OVEVT
VF9BU1NFUlRfVEhST1dTKAorICAgICAgSnNvbjo6VmFsdWU6Oml0ZXJhdG9yIGl0KHYuYmVnaW4o
KSkgLy8gQ29tcGlsZSwgYnV0IHRocm93LgorICApOworCisgIEpzb246OlZhbHVlIHZhbHVlOwor
CisgIGZvciAoaW50IGkgPSA5OyBpIDwgMTI7ICsraSkgeworICAgIEpzb246Ok9TdHJpbmdTdHJl
YW0gb3V0OworICAgIG91dCA8PCBzdGQ6OnNldHcoMikgPDwgaTsKKyAgICBKc29uOjpTdHJpbmcg
c3RyID0gb3V0LnN0cigpOworICAgIHZhbHVlW3N0cl0gPSBzdHI7CisgIH0KKworICBKc29uOjpP
U3RyaW5nU3RyZWFtIG91dDsKKyAgLy8gaW4gb2xkIGNvZGUsIHRoaXMgd2lsbCBnZXQgYSBjb21w
aWxlIGVycm9yCisgIEpzb246OlZhbHVlOjpjb25zdF9pdGVyYXRvciBpdGVyID0gdmFsdWUuYmVn
aW4oKTsKKyAgZm9yICg7IGl0ZXIgIT0gdmFsdWUuZW5kKCk7ICsraXRlcikgeworICAgIG91dCA8
PCAqaXRlciA8PCAnLCc7CisgIH0KKyAgSnNvbjo6U3RyaW5nIGV4cGVjdGVkID0gIlwiIDlcIixc
IjEwXCIsXCIxMVwiLCI7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQs
IG91dC5zdHIoKSk7Cit9CisKK3N0cnVjdCBSVmFsdWVUZXN0IDogSnNvblRlc3Q6OlRlc3RDYXNl
IHt9OworCitKU09OVEVTVF9GSVhUVVJFKFJWYWx1ZVRlc3QsIG1vdmVDb25zdHJ1Y3Rpb24pIHsK
KyAgSnNvbjo6VmFsdWUganNvbjsKKyAganNvblsia2V5Il0gPSAidmFsdWUiOworICBKc29uOjpW
YWx1ZSBtb3ZlZCA9IHN0ZDo6bW92ZShqc29uKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG1vdmVkICE9
IGpzb24pOyAvLyBQb3NzaWJseSBub3QgbnVsbFZhbHVlOyBkZWZpbml0ZWx5IG5vdAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVxdWFsLgorICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoSnNvbjo6b2JqZWN0VmFsdWUsIG1vdmVkLnR5cGUoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChKc29uOjpzdHJpbmdWYWx1ZSwgbW92ZWRbImtleSJdLnR5cGUoKSk7Cit9CisKK3N0
cnVjdCBGdXp6VGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworLy8gQnVpbGQgYW5kIHJ1
biB0aGUgZnV6eiB0ZXN0IHdpdGhvdXQgYW55IGZ1enplciwgc28gdGhhdCBpdCdzIGd1YXJhbnRl
ZWQgbm90CisvLyBnbyBvdXQgb2YgZGF0ZSwgZXZlbiBpZiBpdCdzIG5ldmVyIHJ1biBhcyBhbiBh
Y3R1YWwgZnV6eiB0ZXN0LgorSlNPTlRFU1RfRklYVFVSRShGdXp6VGVzdCwgZnV6ekRvZXNudENy
YXNoKSB7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGV4YW1wbGUgPSAie30iOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoCisgICAgICAwLAorICAgICAgTExWTUZ1enplclRlc3RPbmVJbnB1dChyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihleGFtcGxlLmNfc3RyKCkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleGFtcGxlLnNpemUoKSkpOworfQorCitpbnQgbWFpbihpbnQg
YXJnYywgY29uc3QgY2hhciogYXJndltdKSB7CisgIEpzb25UZXN0OjpSdW5uZXIgcnVubmVyOwor
ICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjaGVja05vcm1h
bGl6ZUZsb2F0aW5nUG9pbnRTdHIpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgVmFsdWVUZXN0LCBtZW1iZXJDb3VudCk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUo
cnVubmVyLCBWYWx1ZVRlc3QsIG9iamVjdHMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJF
KHJ1bm5lciwgVmFsdWVUZXN0LCBhcnJheXMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJF
KHJ1bm5lciwgVmFsdWVUZXN0LCBhcnJheUlzc3VlMjUyKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJf
RklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgbnVsbCk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJ
WFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIHN0cmluZ3MpOworICBKU09OVEVTVF9SRUdJU1RFUl9G
SVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBib29scyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJ
WFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGludGVnZXJzKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJf
RklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgbm9uSW50ZWdlcnMpOworICBKU09OVEVTVF9SRUdJ
U1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlTnVsbCk7CisgIEpTT05URVNU
X1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVJbnQpOworICBKU09O
VEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlVUludCk7Cisg
IEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVEb3Vi
bGUpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjb21w
YXJlU3RyaW5nKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVz
dCwgY29tcGFyZUJvb2xlYW4pOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwg
VmFsdWVUZXN0LCBjb21wYXJlQXJyYXkpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1
bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlT2JqZWN0KTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklY
VFVSRShydW5uZXIsIFZhbHVlVGVzdCwgY29tcGFyZVR5cGUpOworICBKU09OVEVTVF9SRUdJU1RF
Ul9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBDb3B5T2JqZWN0KTsKKyAgSlNPTlRFU1RfUkVH
SVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgb2Zmc2V0QWNjZXNzb3JzKTsKKyAgSlNP
TlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgdHlwZUNoZWNrc1Rocm93
RXhjZXB0aW9ucyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRl
c3QsIFN0YXRpY1N0cmluZyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBW
YWx1ZVRlc3QsIFdpZGVTdHJpbmcpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgVmFsdWVUZXN0LCBDb21tZW50QmVmb3JlKTsKKyAgLy8gSlNPTlRFU1RfUkVHSVNURVJfRklY
VFVSRShydW5uZXIsIFZhbHVlVGVzdCwgbnVsbHMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhU
VVJFKHJ1bm5lciwgVmFsdWVUZXN0LCB6ZXJvZXMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhU
VVJFKHJ1bm5lciwgVmFsdWVUZXN0LCB6ZXJvZXNJbktleXMpOworICBKU09OVEVTVF9SRUdJU1RF
Ul9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBzcGVjaWFsRmxvYXRzKTsKKyAgSlNPTlRFU1Rf
UkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgcHJlY2lzaW9uKTsKKworICBKU09O
VEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgV3JpdGVyVGVzdCwgZHJvcE51bGxQbGFjZWhv
bGRlcnMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgU3RyZWFtV3JpdGVy
VGVzdCwgZHJvcE51bGxQbGFjZWhvbGRlcnMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJF
KHJ1bm5lciwgU3RyZWFtV3JpdGVyVGVzdCwgd3JpdGVaZXJvZXMpOworCisgIEpTT05URVNUX1JF
R0lTVEVSX0ZJWFRVUkUocnVubmVyLCBSZWFkZXJUZXN0LCBwYXJzZVdpdGhOb0Vycm9ycyk7Cisg
IEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBSZWFkZXJUZXN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcnNlV2l0aE5vRXJyb3JzVGVzdGluZ09mZnNldHMpOworICBK
U09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgUmVhZGVyVGVzdCwgcGFyc2VXaXRoT25l
RXJyb3IpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgUmVhZGVyVGVzdCwg
cGFyc2VDaGluZXNlV2l0aE9uZUVycm9yKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShy
dW5uZXIsIFJlYWRlclRlc3QsIHBhcnNlV2l0aERldGFpbEVycm9yKTsKKworICBKU09OVEVTVF9S
RUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aE5vRXJyb3Jz
KTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJUZXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlV2l0aE5vRXJyb3JzVGVzdGluZ09mZnNl
dHMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclRlc3Qs
IHBhcnNlV2l0aE9uZUVycm9yKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIs
IENoYXJSZWFkZXJUZXN0LCBwYXJzZUNoaW5lc2VXaXRoT25lRXJyb3IpOworICBKU09OVEVTVF9S
RUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aERldGFpbEVy
cm9yKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJUZXN0
LCBwYXJzZVdpdGhTdGFja0xpbWl0KTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1
bm5lciwgQ2hhclJlYWRlclN0cmljdE1vZGVUZXN0LCBkdXBLZXlzKTsKKworICBKU09OVEVTVF9S
RUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCwgaXNzdWUx
NjQpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlckZhaWxJ
ZkV4dHJhVGVzdCwgaXNzdWUxMDcpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgQ2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21tZW50QWZ0ZXJPYmplY3QpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgQ2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21tZW50QWZ0ZXJBcnJheSk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVy
LCBDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbW1lbnRBZnRlckJvb2wpOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVy
LCBDaGFyUmVhZGVyQWxsb3dEcm9wTnVsbFRlc3QsIGlzc3VlMTc4KTsKKworICBKU09OVEVTVF9S
RUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlckFsbG93U2luZ2xlUXVvdGVzVGVzdCwg
aXNzdWUxODIpOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVh
ZGVyQWxsb3daZXJvZXNUZXN0LCBpc3N1ZTE3Nik7CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklY
VFVSRShydW5uZXIsIENoYXJSZWFkZXJBbGxvd1NwZWNpYWxGbG9hdHNUZXN0LCBpc3N1ZTIwOSk7
CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIEJ1aWxkZXJUZXN0LCBzZXR0
aW5ncyk7CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIEl0ZXJhdG9yVGVz
dCwgZGlzdGFuY2UpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgSXRlcmF0
b3JUZXN0LCBuYW1lcyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBJdGVy
YXRvclRlc3QsIGluZGV4ZXMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwg
SXRlcmF0b3JUZXN0LCBjb25zdCk7CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5u
ZXIsIFJWYWx1ZVRlc3QsIG1vdmVDb25zdHJ1Y3Rpb24pOworCisgIEpTT05URVNUX1JFR0lTVEVS
X0ZJWFRVUkUocnVubmVyLCBGdXp6VGVzdCwgZnV6ekRvZXNudENyYXNoKTsKKworICByZXR1cm4g
cnVubmVyLnJ1bkNvbW1hbmRMaW5lKGFyZ2MsIGFyZ3YpOworfQorCisjaWYgZGVmaW5lZChfX0dO
VUNfXykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2Uvc3JjL3Rlc3RfbGliX2pzb24vc2NvbnNjcmlwdCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24v
c2NvbnNjcmlwdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTE1ZmQwMWMwYTM5Mzgw
N2U5NmQyMGM4Mzg3NGU2ODY3NDM3NjVlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL3Njb25zY3JpcHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1JbXBvcnQoICdlbnZfdGVzdGluZyBidWlsZFVuaXRU
ZXN0cycgKQotCi1idWlsZFVuaXRUZXN0cyggZW52X3Rlc3RpbmcsIFNwbGl0KCAiIiIKLSAgICBt
YWluLmNwcAotICAgIGpzb250ZXN0LmNwcAotICAgICAiIiIgKSwKLSAgICAndGVzdF9saWJfanNv
bicgKQotCi0jIEZvciAnY2hlY2snIHRvIHdvcmssICdsaWJzJyBtdXN0IGJlIGJ1aWx0IGZpcnN0
LgotZW52X3Rlc3RpbmcuRGVwZW5kcygndGVzdF9saWJfanNvbicsICcjbGlicycpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3Rlc3QvY2xlYW50ZXN0cy5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9jbGVhbnRlc3RzLnB5Cmlu
ZGV4IGMzOGZkOGZmZGQxOGE0MWJmYmM3Y2Y5MjAxYTYzMmFiYjAyNzUzZjYuLjM2ZDViOWI0NjEw
NDhiMjQwNTVjMWQ2OGEyN2Q1ODJjNzNjYzgwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9jbGVh
bnRlc3RzLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9jbGVhbnRlc3RzLnB5CkBAIC0xLDEwICsxLDE2IEBA
Ci0jIHJlbW92ZXMgYWxsIGZpbGVzIGNyZWF0ZWQgZHVyaW5nIHRlc3RpbmcKKyMgQ29weXJpZ2h0
IDIwMDcgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisjIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
CisjIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxlIExJQ0VOU0Ug
Zm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNF
TlNFCisKKyIiIlJlbW92ZXMgYWxsIGZpbGVzIGNyZWF0ZWQgZHVyaW5nIHRlc3RpbmcuIiIiCisK
IGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKIAogcGF0aHMgPSBbXQogZm9yIHBhdHRlcm4gaW4gWyAn
Ki5hY3R1YWwnLCAnKi5hY3R1YWwtcmV3cml0ZScsICcqLnJld3JpdGUnLCAnKi5wcm9jZXNzLW91
dHB1dCcgXToKLSAgICBwYXRocyArPSBnbG9iLmdsb2IoICdkYXRhLycgKyBwYXR0ZXJuICkKKyAg
ICBwYXRocyArPSBnbG9iLmdsb2IoJ2RhdGEvJyArIHBhdHRlcm4pCiAKIGZvciBwYXRoIGluIHBh
dGhzOgotICAgIG9zLnVubGluayggcGF0aCApCisgICAgb3MudW5saW5rKHBhdGgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3Rlc3QvZGF0YS9mYWlsX3Rlc3Rfc3RhY2tfbGltaXQuanNvbiBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVz
dC9kYXRhL2ZhaWxfdGVzdF9zdGFja19saW1pdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MjRlMGJiYjk1
NWNjNDE2ODU3ZjE2YzljODA2M2ZkMTg5OTA0NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rl
c3QvZGF0YS9mYWlsX3Rlc3Rfc3RhY2tfbGltaXQuanNvbgpAQCAtMCwwICsxIEBACitbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW11d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2Jhc2ljXzA4LmV4cGVjdGVkIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS90ZXN0L2RhdGEvdGVzdF9iYXNpY18wOC5leHBlY3RlZAppbmRleCBjOGRiODIyZTU4NGIz
NTg3MDQzOGE2MjcxMjMxMTBjZjZhNWQ2NzY4Li5jYWY1MzUyYTExMzk5M2RhZDc5YjkxMTlhY2Iy
ODhlNzhkNDE2ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2Jhc2ljXzA4LmV4
cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfYmFzaWNfMDguZXhwZWN0ZWQKQEAgLTEs
MiArMSwzIEBACisvLyBDKysgc3R5bGUgY29tbWVudAogLj1udWxsCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvdGVzdC9kYXRhL3Rlc3RfYmFzaWNfMDkuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0
X2Jhc2ljXzA5LmV4cGVjdGVkCmluZGV4IGM4ZGI4MjJlNTg0YjM1ODcwNDM4YTYyNzEyMzExMGNm
NmE1ZDY3NjguLjhiMTI5ZGE0MmU0Y2RkYjExNDUzNWExZWRmYjQ3MDNmYjA4ODljODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfYmFzaWNfMDkuZXhwZWN0ZWQKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9iYXNpY18wOS5leHBlY3RlZApAQCAtMSwyICsxLDQgQEAKKy8qIEMgc3R5
bGUgY29tbWVudAorICovCiAuPW51bGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVz
dF9jb21tZW50XzAwLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAwLmV4
cGVjdGVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI4NGE3OTdkNzE0NzI5MjhhODVjZTVjN2Y4OWFmNzQxZDljOTQ1
YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDAuZXhw
ZWN0ZWQKQEAgLTAsMCArMSw0IEBACisvLyBDb21tZW50IGZvciBhcnJheQorLj1bXQorLy8gQ29t
bWVudCB3aXRoaW4gYXJyYXkKKy5bMF09Im9uZS1lbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAwLmpzb24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1l
bnRfMDAuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGY1NzdhOGFlMjIwNzYxMWUxZGI5ZGFjNGVlZTkzMDYw
ZjFlZjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAw
Lmpzb24KQEAgLTAsMCArMSw1IEBACisvLyBDb21tZW50IGZvciBhcnJheQorWworICAgLy8gQ29t
bWVudCB3aXRoaW4gYXJyYXkKKyAgICJvbmUtZWxlbWVudCIKK10KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMS5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3Rf
Y29tbWVudF8wMS5leHBlY3RlZAppbmRleCAyYTdmMDBjNDUwYjQzYzc4OTQ5NTA2Y2M1MTYxZmNj
YTY1M2JkMDg4Li4xZWQwMWJhMTAwYzRiZGJiYTM3NTNkODA5MmQ2ODBiYjU2OTU5NjhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDEuZXhwZWN0ZWQKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAxLmV4cGVjdGVkCkBAIC0xLDUgKzEsNyBAQAogLj17
fQorLy8gQ29tbWVudCBmb3IgYXJyYXkKIC50ZXN0PVtdCisvLyBDb21tZW50IHdpdGhpbiBhcnJh
eQogLnRlc3RbMF09e30KIC50ZXN0WzBdLmE9ImFhYSIKIC50ZXN0WzFdPXt9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDEuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rl
c3RfY29tbWVudF8wMS5qc29uCmluZGV4IDczNjM0OTBhOTFkOTkxOGM2MzU2ZjE0MGY3NjAxMzA2
YTRlN2NiZTguLjZkZWZlNDAwNDA0YTE3YjUwYTBkZmExZDM5ZWFlODcyNWU5OTIzZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMS5qc29uCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVz
dC9kYXRhL3Rlc3RfY29tbWVudF8wMS5qc29uCkBAIC0xLDYgKzEsOCBAQAogewogICAgICJ0ZXN0
IjoKKyAgICAvLyBDb21tZW50IGZvciBhcnJheQogICAgIFsKKyAgICAgICAvLyBDb21tZW50IHdp
dGhpbiBhcnJheQogICAgICAgIHsgImEiIDogImFhYSIgfSwgLy8gQ29tbWVudCBmb3IgYQogICAg
ICAgIHsgImIiIDogImJiYiIgfSwgLy8gQ29tbWVudCBmb3IgYgogICAgICAgIHsgImMiIDogImNj
YyIgfSAvLyBDb21tZW50IGZvciBjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2Nv
bW1lbnRfMDIuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDIuZXhwZWN0
ZWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODk4NmRiYWMwNWViYmY0Y2UwMGIzZDNiNDNmMWFkYjNiNmVkMDU2YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMi5leHBlY3Rl
ZApAQCAtMCwwICsxLDIzIEBACisuPXt9CisvKiBDLXN0eWxlIGNvbW1lbnQKKworICAgIEMtc3R5
bGUtMiBjb21tZW50ICovCisuYy10ZXN0PXt9CisuYy10ZXN0LmE9MQorLyogSW50ZXJuYWwgY29t
bWVudCBjLXN0eWxlICovCisuYy10ZXN0LmI9MgorLy8gQysrLXN0eWxlIGNvbW1lbnQKKy5jcHAt
dGVzdD17fQorLy8gTXVsdGlsaW5lIGNvbW1lbnQgY3BwLXN0eWxlCisvLyBTZWNvbmQgbGluZQor
LmNwcC10ZXN0LmM9MworLy8gQ29tbWVudCBiZWZvcmUgZG91YmxlCisuY3BwLXRlc3QuZD00LjEK
Ky8vIENvbW1lbnQgYmVmb3JlIHN0cmluZworLmNwcC10ZXN0LmU9ImUtc3RyaW5nIgorLy8gQ29t
bWVudCBiZWZvcmUgdHJ1ZQorLmNwcC10ZXN0LmY9dHJ1ZQorLy8gQ29tbWVudCBiZWZvcmUgZmFs
c2UKKy5jcHAtdGVzdC5nPWZhbHNlCisvLyBDb21tZW50IGJlZm9yZSBudWxsCisuY3BwLXRlc3Qu
aD1udWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDIuanNvbiBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMi5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1MDQyZTBk
ZDY4ZWFjM2ZhYmU0OGQxYWIwOTQ5MzA2YmEzZGNkODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDIuanNvbgpAQCAtMCwwICsxLDI2IEBACit7CisgICAv
KiBDLXN0eWxlIGNvbW1lbnQKKworICAgIEMtc3R5bGUtMiBjb21tZW50ICovCisgICAiYy10ZXN0
IiA6IHsKKyAgICAgICJhIiA6IDEsCisgICAgICAvKiBJbnRlcm5hbCBjb21tZW50IGMtc3R5bGUg
Ki8KKyAgICAgICJiIiA6IDIKKyAgIH0sCisgICAvLyBDKystc3R5bGUgY29tbWVudAorICAgImNw
cC10ZXN0IiA6IHsKKyAgICAgIC8vIE11bHRpbGluZSBjb21tZW50IGNwcC1zdHlsZQorICAgICAg
Ly8gU2Vjb25kIGxpbmUKKyAgICAgICJjIiA6IDMsCisgICAgICAvLyBDb21tZW50IGJlZm9yZSBk
b3VibGUKKyAgICAgICJkIiA6IDQuMSwKKyAgICAgIC8vIENvbW1lbnQgYmVmb3JlIHN0cmluZwor
ICAgICAgImUiIDogImUtc3RyaW5nIiwKKyAgICAgIC8vIENvbW1lbnQgYmVmb3JlIHRydWUKKyAg
ICAgICJmIiA6IHRydWUsCisgICAgICAvLyBDb21tZW50IGJlZm9yZSBmYWxzZQorICAgICAgImci
IDogZmFsc2UsCisgICAgICAvLyBDb21tZW50IGJlZm9yZSBudWxsCisgICAgICAiaCIgOiBudWxs
CisgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDEuZXhw
ZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDEuZXhwZWN0ZWQKaW5kZXggNTkz
ZjFkYjMyYmI2OWYwMmNjNDU1NzlkNTk2NjYyYTlkZTVjNWE3OS4uNDYzZTE0OWRlODcxMzA5ZTQz
NTUyMjQ3MGVlNmQxNWYzNzI1NWEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9p
bnRlZ2VyXzAxLmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMS5l
eHBlY3RlZApAQCAtMSArMSwyIEBACisvLyBNYXggc2lnbmVkIGludGVnZXIKIC49MjE0NzQ4MzY0
NwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAyLmV4cGVjdGVkIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAyLmV4cGVjdGVkCmluZGV4IDRiODNiZDdjYWUz
ZDhlNTg2MGE5MTU4ZWVmOTMzZjBhOWY4YWNjMzQuLjA3NzNlMDg1MWE0OWRhN2FiNzViYWM5ZTcz
MjhjNjA0OGJiMmFlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8w
Mi5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDIuZXhwZWN0ZWQK
QEAgLTEgKzEsMiBAQAorLy8gTWluIHNpZ25lZCBpbnRlZ2VyCiAuPS0yMTQ3NDgzNjQ4CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDMuZXhwZWN0ZWQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rl
c3QvZGF0YS90ZXN0X2ludGVnZXJfMDMuZXhwZWN0ZWQKaW5kZXggMzdjMWNiMTQ2YjBlMWRiZDJl
ZDJlNTQwN2ViYWJjMjYwYTBiODE3OS4uYzdlZmZmNzk5ZWIzMzY5YWFlZmNlMmMzYzU4NmQ3OGUw
N2JkZDhhNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAzLmV4cGVj
dGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMy5leHBlY3RlZApAQCAtMSAr
MSwyIEBACisvLyBNYXggdW5zaWduZWQgaW50ZWdlcgogLj00Mjk0OTY3Mjk1CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDQuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X2ludGVnZXJfMDQuZXhwZWN0ZWQKaW5kZXggYjdiNTQ4ZTNkMzMyOGVmNzYwZTRkMTkz
YzI5YzhjNDRiODllOTVjNi4uMzlmODU2NzA0MGZjOGM5ZDJjMTNhOWZkMzhhZWQ0ZjZmZTFhMDI4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzA0LmV4cGVjdGVkCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wNC5leHBlY3RlZApAQCAtMSwyICsxLDMg
QEAKKy8vIE1pbiB1bnNpZ25lZCBpbnRlZ2VyCiAuPTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0
L2RhdGEvdGVzdF9wcmVzZXJ2ZV9jb21tZW50XzAxLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEv
dGVzdF9wcmVzZXJ2ZV9jb21tZW50XzAxLmV4cGVjdGVkCmluZGV4IDhkODgwNDEwODY2YTM4NjRi
NDk3Y2ZlNGExNmNiYmIwYWUxNTE1MTAuLjI3OTdhYTdkNmJlZGY1NDI1NDlmMWU5MjgxNzdlOTky
NjE3ZDYxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcHJlc2VydmVfY29tbWVu
dF8wMS5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3ByZXNlcnZlX2NvbW1lbnRf
MDEuZXhwZWN0ZWQKQEAgLTEsMyArMSwxMSBAQAorLyogQSBjb21tZW50CisgICBhdCB0aGUgYmVn
aW5uaW5nIG9mIHRoZSBmaWxlLgorICovCiAuPXt9CiAuZmlyc3Q9MQorLyogQ29tbWVudCBiZWZv
cmUgJ3NlY29uZCcKKyAqLwogLnNlY29uZD0yCisvKiBBIGNvbW1lbnQgYXQgCisgICB0aGUgZW5k
IG9mIHRoZSBmaWxlLgorICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxf
MDEuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDEuZXhwZWN0ZWQKaW5kZXgg
YWUyMzU3MjMxZTk0YjU4ZGU1ODk3NTEyODFhNWYzYjQ3MDRkMTYzMC4uOTUxNDgyNzA4YTBhNGMy
YzAyM2Q5ZTMzNDJhZDRlZjQ5OTZlNDA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVz
dF9yZWFsXzAxLmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wMS5leHBl
Y3RlZApAQCAtMSwyICsxLDMgQEAKKy8vIDJeMzMgPT4gb3V0IG9mIGludGVnZXIgcmFuZ2UsIHN3
aXRjaCB0byBkb3VibGUKIC49ODU4OTkzNDU5MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X3JlYWxfMDIuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDIuZXhw
ZWN0ZWQKaW5kZXggZGY4ZGU0MjEwOWFkMGM5ZDk0NWU4NWY1Njg1MTAwYmRiODYwY2M5ZC4uYjgw
YzAwNDgxMTk0NjA0NzViMzdlOTU4OGNlYmYyNzRhZjBkOWMwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9yZWFsXzAyLmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3Rf
cmVhbF8wMi5leHBlY3RlZApAQCAtMSwyICsxLDMgQEAKKy8vIC0yXjMyID0+IG91dCBvZiBzaWdu
ZWQgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRvdWJsZQogLj0tNDI5NDk2NzI5NQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDMuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3Qv
ZGF0YS90ZXN0X3JlYWxfMDMuZXhwZWN0ZWQKaW5kZXggZGY4ZGU0MjEwOWFkMGM5ZDk0NWU4NWY1
Njg1MTAwYmRiODYwY2M5ZC4uYjgwYzAwNDgxMTk0NjA0NzViMzdlOTU4OGNlYmYyNzRhZjBkOWMw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzAzLmV4cGVjdGVkCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wMy5leHBlY3RlZApAQCAtMSwyICsxLDMgQEAKKy8v
IC0yXjMyID0+IG91dCBvZiBzaWduZWQgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRvdWJsZQog
Lj0tNDI5NDk2NzI5NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDQu
ZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDQuZXhwZWN0ZWQKaW5kZXggZDcy
NmFiZTQwYmE0MjQyNWZkZTgzYWFmNGFlMGYyOGExMTNiYjZiNy4uZmY3MWEyM2UxNDE1NTdjMmI1
Nzg4ZGY5MzI4MTE5ZTQwNGNlOGVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9y
ZWFsXzA0LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNC5leHBlY3Rl
ZApAQCAtMSwyICsxLDMgQEAKKy8vIDEuMjM0NTY3OAogLj0xLjIzNDU2NzgKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA1LmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEv
dGVzdF9yZWFsXzA1LmV4cGVjdGVkCmluZGV4IDk0OWZkOGY1NWRlOTdhNDI2NmM5YWI2NWRiZjUy
YjBlMWExZmUwZGQuLjdhNDYwOTMyZDdiN2M1ZmE2NDJiYTY3OTMzN2FiNDcyYmUwMTcxYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNS5leHBlY3RlZAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDUuZXhwZWN0ZWQKQEAgLTEsMyArMSw0IEBACisvLyAxMjM0
NTY3LjgKIC49MTIzNDU2Ny44CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9y
ZWFsXzA2LmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA2LmV4cGVjdGVkCmlu
ZGV4IDAzYjdkN2Y5ODcyOWY5YmI5ZDY2NjRlZjhiNDRlZTNjNDBiMTc2MzMuLmE0YTAwNGRlYjE0
MDQyNWE5YmMyOWFiYTY2ZDZjMjFmZTNhMTE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRh
L3Rlc3RfcmVhbF8wNi5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDYu
ZXhwZWN0ZWQKQEAgLTEsMyArMSw0IEBACisvLyAtMS4yMzQ1Njc4CiAuPS0xLjIzNDU2NzgKIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDcuZXhwZWN0ZWQgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDcuZXhwZWN0ZWQKaW5kZXggMTIwMjVhNDA0YjBlYTlkNWMy
ODcwODdmMGM2OTJlZTA0MzRmMjhjOS4uZGMwMmE4OTU4MzExMjkzY2NmOGU1NWY3OGY0OGZlN2I1
NjVkYzY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA3LmV4cGVjdGVk
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNy5leHBlY3RlZApAQCAtMSwzICsxLDQg
QEAKKy8vIC0xMjM0NTY3LjgKIC49LTEyMzQ1NjcuOAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVz
dC9kYXRhL3Rlc3RfcmVhbF8wOC5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8w
OC5leHBlY3RlZAppbmRleCA5YTVmMDYyODQyMWZiN2MzOTkyN2JlZTJlMjk1ZGI3YTRkOWJhZmJm
Li5iMWRlZWY5MTllOTViMjgyY2ExODUxNGFkNzkzNzU0MjZhZmMwNmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDguZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEv
dGVzdF9yZWFsXzA4LmV4cGVjdGVkCkBAIC0xICsxLDQgQEAKKy8vIE91dCBvZiAzMi1iaXQgaW50
ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRvdWJsZSBpbiAzMi1iaXQgbW9kZS4gTGVuZ3RoIHRoZQor
Ly8gc2FtZSBhcyBVSU5UX01BWCBpbiBiYXNlIDEwIGFuZCBkaWdpdCBsZXNzIHRoYW4gVUlOVF9N
QVgncyBsYXN0IGRpZ2l0IGluCisvLyBvcmRlciB0byBjYXRjaCBhIGJ1ZyBpbiB0aGUgcGFyc2lu
ZyBjb2RlLgogLj00MzAwMDAwMDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3Jl
YWxfMDkuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDkuZXhwZWN0ZWQKaW5k
ZXggNmRhODE1ZTY2OWVjOTEyMDI0OWRmMmUyYTFlNGRhZTVmZDE0NjQyYy4uYWEyZGJiMjg0OWQy
NTFiZWQ1YmIxOWRhMDU1MWE5YTZmNGYxNzQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEv
dGVzdF9yZWFsXzA5LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wOS5l
eHBlY3RlZApAQCAtMSArMSw0IEBACisvLyBPdXQgb2YgNjQtYml0IGludGVnZXIgcmFuZ2UsIHN3
aXRjaCB0byBkb3VibGUgaW4gYWxsIG1vZGVzLiBMZW5ndGggdGhlIHNhbWUKKy8vIGFzIFVMT05H
X01BWCBpbiBiYXNlIDEwIGFuZCBkaWdpdCBsZXNzIHRoYW4gVUxPTkdfTUFYJ3MgbGFzdCBkaWdp
dCBpbiBvcmRlcgorLy8gdG8gY2F0Y2ggYSBidWcgaW4gdGhlIHBhcnNpbmcgY29kZS4KIC49MS45
ZSsxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzEwLmV4cGVjdGVkIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzEwLmV4cGVjdGVkCmluZGV4IDAxMTI2YmZiZWMxZmY1
MTA1NTI2ODYwNWMwMjczNGVmZjgxYjNlOTguLmQyOGE0MzBlYWI0ZDljNzM3Y2RjYjgyNjVmNGFj
YzliODdmOTAxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8xMC5leHBl
Y3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMTAuZXhwZWN0ZWQKQEAgLTEgKzEs
NCBAQAorLy8gT3V0IG9mIDMyLWJpdCBzaWduZWQgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRv
dWJsZSBpbiBhbGwgbW9kZXMuIExlbmd0aAorLy8gdGhlIHNhbWUgYXMgSU5UX01JTiBpbiBiYXNl
IDEwIGFuZCBkaWdpdCBsZXNzIHRoYW4gSU5UX01JTidzIGxhc3QgZGlnaXQgaW4KKy8vIG9yZGVy
IHRvIGNhdGNoIGEgYnVnIGluIHRoZSBwYXJzaW5nIGNvZGUuCiAuPS0yMjAwMDAwMDAxCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMTEuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3Qv
ZGF0YS90ZXN0X3JlYWxfMTEuZXhwZWN0ZWQKaW5kZXggMTdmNDE4N2I5OGU1ODJhOWM0NGIwNzNh
OGRkNmE5MjA2MGZkNWU0YS4uMjU1MTk0NmY1MmY2YTRiOWFjZWMxNTI2OTI0MDU3ZWM3ZmRhN2Vl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzExLmV4cGVjdGVkCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8xMS5leHBlY3RlZApAQCAtMSArMSw0IEBACisvLyBP
dXQgb2YgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHJhbmdlLCBzd2l0Y2ggdG8gZG91YmxlIGluIGFs
bCBtb2Rlcy4gTGVuZ3RoCisvLyB0aGUgc2FtZSBhcyBMT05HX01JTiBpbiBiYXNlIDEwIGFuZCBk
aWdpdCBsZXNzIHRoYW4gTE9OR19NSU4ncyBsYXN0IGRpZ2l0IGluCisvLyBvcmRlciB0byBjYXRj
aCBhIGJ1ZyBpbiB0aGUgcGFyc2luZyBjb2RlLgogLj0tOS4zZSsxOApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzEyLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9y
ZWFsXzEyLmV4cGVjdGVkCmluZGV4IGEwMDAzMTkyZGQxOWI3MWNmOWIyN2ExZjZlMjAxZjEzYTNm
NzYyYjUuLjkzZTI0MTdkMzQyNGRlYTFiMjc1MTk2MjBiMmEzYjI0NWUxMjEzYWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8xMi5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3Qv
ZGF0YS90ZXN0X3JlYWxfMTIuZXhwZWN0ZWQKQEAgLTEgKzEsMiBAQAorLy8gMl42NCAtPiBzd2l0
Y2ggdG8gZG91YmxlLgogLj0xLjg0NDY3NDQwNzM3MDk1NWUrMTkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9nZW5lcmF0ZV9leHBlY3RlZC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9nZW5lcmF0ZV9leHBlY3RlZC5w
eQppbmRleCA1YjIxNWM0NjcwNGI1MjIyNTYzYjZhM2Q4OTM0NmFlNGQzMjk0OTVkLi5lMDQ5YWI1
ZjRkMTIzMzYzZjBlY2NlZjc0OWJmNGE4YTQyMGRlMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3Qv
Z2VuZXJhdGVfZXhwZWN0ZWQucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2dlbmVyYXRlX2V4cGVjdGVkLnB5
CkBAIC0xLDExICsxLDE3IEBACisjIENvcHlyaWdodCAyMDA3IEJhcHRpc3RlIExlcGlsbGV1ciBh
bmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlvdXIganVy
aXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9zLnBhdGgKLWZvciBwYXRo
IGluIGdsb2IuZ2xvYiggJyouanNvbicgKToKK2ZvciBwYXRoIGluIGdsb2IuZ2xvYignKi5qc29u
Jyk6CiAgICAgdGV4dCA9IGZpbGUocGF0aCwncnQnKS5yZWFkKCkKICAgICB0YXJnZXQgPSBvcy5w
YXRoLnNwbGl0ZXh0KHBhdGgpWzBdICsgJy5leHBlY3RlZCcKLSAgICBpZiBvcy5wYXRoLmV4aXN0
cyggdGFyZ2V0ICk6Ci0gICAgICAgIHByaW50ICdza2lwcGluZzonLCB0YXJnZXQKKyAgICBpZiBv
cy5wYXRoLmV4aXN0cyh0YXJnZXQpOgorICAgICAgICBwcmludCgnc2tpcHBpbmc6JywgdGFyZ2V0
KQogICAgIGVsc2U6Ci0gICAgICAgIHByaW50ICdjcmVhdGluZzonLCB0YXJnZXQKKyAgICAgICAg
cHJpbnQoJ2NyZWF0aW5nOicsIHRhcmdldCkKICAgICAgICAgZmlsZSh0YXJnZXQsJ3d0Jykud3Jp
dGUodGV4dCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L3B5anNvbnRlc3RydW5uZXIucHkgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3Rlc3QvcHlqc29udGVzdHJ1bm5lci5weQppbmRleCA1MDRmM2RiMmU3OWEyODExNzQxMjJm
ZWMzODUxN2NlNTgyMTIwMzM5Li5iZDc0OWI1MzBmMzBlODI2NDIyMWZhZjBmOTJkZjY1ZGU3Mjk0
OTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcHlqc29udGVzdHJ1bm5lci5weQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvcHlqc29udGVzdHJ1bm5lci5weQpAQCAtMSwxMiArMSwxOSBAQAotIyBTaW1wbGUgaW1w
bGVtZW50YXRpb24gb2YgYSBqc29uIHRlc3QgcnVubmVyIHRvIHJ1biB0aGUgdGVzdCBhZ2FpbnN0
IGpzb24tcHkuCisjIENvcHlyaWdodCAyMDA3IEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpz
b25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9u
LgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCisiIiJTaW1wbGUgaW1wbGVtZW50YXRpb24gb2Yg
YSBqc29uIHRlc3QgcnVubmVyIHRvIHJ1biB0aGUgdGVzdCBhZ2FpbnN0Citqc29uLXB5LiIiIgor
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgc3lzCiBpbXBv
cnQgb3MucGF0aAogaW1wb3J0IGpzb24KIGltcG9ydCB0eXBlcwogCiBpZiBsZW4oc3lzLmFyZ3Yp
ICE9IDI6Ci0gICAgcHJpbnQgIlVzYWdlOiAlcyBpbnB1dC1qc29uLWZpbGUiLCBzeXMuYXJndlsw
XQorICAgIHByaW50KCJVc2FnZTogJXMgaW5wdXQtanNvbi1maWxlIiwgc3lzLmFyZ3ZbMF0pCiAg
ICAgc3lzLmV4aXQoMykKICAgICAKIGlucHV0X3BhdGggPSBzeXMuYXJndlsxXQpAQCAtMTUsNTAg
KzIyLDUwIEBAIGFjdHVhbF9wYXRoID0gYmFzZV9wYXRoICsgJy5hY3R1YWwnCiByZXdyaXRlX3Bh
dGggPSBiYXNlX3BhdGggKyAnLnJld3JpdGUnCiByZXdyaXRlX2FjdHVhbF9wYXRoID0gYmFzZV9w
YXRoICsgJy5hY3R1YWwtcmV3cml0ZScKIAotZGVmIHZhbHVlVHJlZVRvU3RyaW5nKCBmb3V0LCB2
YWx1ZSwgcGF0aCA9ICcuJyApOgorZGVmIHZhbHVlVHJlZVRvU3RyaW5nKGZvdXQsIHZhbHVlLCBw
YXRoID0gJy4nKToKICAgICB0eSA9IHR5cGUodmFsdWUpIAogICAgIGlmIHR5ICBpcyB0eXBlcy5E
aWN0VHlwZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPXt9XG4nICUgcGF0aCApCisgICAgICAg
IGZvdXQud3JpdGUoJyVzPXt9XG4nICUgcGF0aCkKICAgICAgICAgc3VmZml4ID0gcGF0aFstMV0g
IT0gJy4nIGFuZCAnLicgb3IgJycKICAgICAgICAgbmFtZXMgPSB2YWx1ZS5rZXlzKCkKICAgICAg
ICAgbmFtZXMuc29ydCgpCiAgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgotICAgICAgICAgICAg
dmFsdWVUcmVlVG9TdHJpbmcoIGZvdXQsIHZhbHVlW25hbWVdLCBwYXRoICsgc3VmZml4ICsgbmFt
ZSApCisgICAgICAgICAgICB2YWx1ZVRyZWVUb1N0cmluZyhmb3V0LCB2YWx1ZVtuYW1lXSwgcGF0
aCArIHN1ZmZpeCArIG5hbWUpCiAgICAgZWxpZiB0eSBpcyB0eXBlcy5MaXN0VHlwZToKLSAgICAg
ICAgZm91dC53cml0ZSggJyVzPVtdXG4nICUgcGF0aCApCi0gICAgICAgIGZvciBpbmRleCwgY2hp
bGRWYWx1ZSBpbiB6aXAoIHhyYW5nZSgwLGxlbih2YWx1ZSkpLCB2YWx1ZSApOgotICAgICAgICAg
ICAgdmFsdWVUcmVlVG9TdHJpbmcoIGZvdXQsIGNoaWxkVmFsdWUsIHBhdGggKyAnWyVkXScgJSBp
bmRleCApCisgICAgICAgIGZvdXQud3JpdGUoJyVzPVtdXG4nICUgcGF0aCkKKyAgICAgICAgZm9y
IGluZGV4LCBjaGlsZFZhbHVlIGluIHppcCh4cmFuZ2UoMCxsZW4odmFsdWUpKSwgdmFsdWUpOgor
ICAgICAgICAgICAgdmFsdWVUcmVlVG9TdHJpbmcoZm91dCwgY2hpbGRWYWx1ZSwgcGF0aCArICdb
JWRdJyAlIGluZGV4KQogICAgIGVsaWYgdHkgaXMgdHlwZXMuU3RyaW5nVHlwZToKLSAgICAgICAg
Zm91dC53cml0ZSggJyVzPSIlcyJcbicgJSAocGF0aCx2YWx1ZSkgKQorICAgICAgICBmb3V0Lndy
aXRlKCclcz0iJXMiXG4nICUgKHBhdGgsdmFsdWUpKQogICAgIGVsaWYgdHkgaXMgdHlwZXMuSW50
VHlwZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPSVkXG4nICUgKHBhdGgsdmFsdWUpICkKKyAg
ICAgICAgZm91dC53cml0ZSgnJXM9JWRcbicgJSAocGF0aCx2YWx1ZSkpCiAgICAgZWxpZiB0eSBp
cyB0eXBlcy5GbG9hdFR5cGU6Ci0gICAgICAgIGZvdXQud3JpdGUoICclcz0lLjE2Z1xuJyAlIChw
YXRoLHZhbHVlKSApCisgICAgICAgIGZvdXQud3JpdGUoJyVzPSUuMTZnXG4nICUgKHBhdGgsdmFs
dWUpKQogICAgIGVsaWYgdmFsdWUgaXMgVHJ1ZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPXRy
dWVcbicgJSBwYXRoICkKKyAgICAgICAgZm91dC53cml0ZSgnJXM9dHJ1ZVxuJyAlIHBhdGgpCiAg
ICAgZWxpZiB2YWx1ZSBpcyBGYWxzZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPWZhbHNlXG4n
ICUgcGF0aCApCisgICAgICAgIGZvdXQud3JpdGUoJyVzPWZhbHNlXG4nICUgcGF0aCkKICAgICBl
bGlmIHZhbHVlIGlzIE5vbmU6Ci0gICAgICAgIGZvdXQud3JpdGUoICclcz1udWxsXG4nICUgcGF0
aCApCisgICAgICAgIGZvdXQud3JpdGUoJyVzPW51bGxcbicgJSBwYXRoKQogICAgIGVsc2U6CiAg
ICAgICAgIGFzc2VydCBGYWxzZSBhbmQgIlVuZXhwZWN0ZWQgdmFsdWUgdHlwZSIKICAgICAgICAg
Ci1kZWYgcGFyc2VBbmRTYXZlVmFsdWVUcmVlKCBpbnB1dCwgYWN0dWFsX3BhdGggKToKLSAgICBy
b290ID0ganNvbi5sb2FkcyggaW5wdXQgKQotICAgIGZvdXQgPSBmaWxlKCBhY3R1YWxfcGF0aCwg
J3d0JyApCi0gICAgdmFsdWVUcmVlVG9TdHJpbmcoIGZvdXQsIHJvb3QgKQorZGVmIHBhcnNlQW5k
U2F2ZVZhbHVlVHJlZShpbnB1dCwgYWN0dWFsX3BhdGgpOgorICAgIHJvb3QgPSBqc29uLmxvYWRz
KGlucHV0KQorICAgIGZvdXQgPSBmaWxlKGFjdHVhbF9wYXRoLCAnd3QnKQorICAgIHZhbHVlVHJl
ZVRvU3RyaW5nKGZvdXQsIHJvb3QpCiAgICAgZm91dC5jbG9zZSgpCiAgICAgcmV0dXJuIHJvb3QK
IAotZGVmIHJld3JpdGVWYWx1ZVRyZWUoIHZhbHVlLCByZXdyaXRlX3BhdGggKToKLSAgICByZXdy
aXRlID0ganNvbi5kdW1wcyggdmFsdWUgKQorZGVmIHJld3JpdGVWYWx1ZVRyZWUodmFsdWUsIHJl
d3JpdGVfcGF0aCk6CisgICAgcmV3cml0ZSA9IGpzb24uZHVtcHModmFsdWUpCiAgICAgI3Jld3Jp
dGUgPSByZXdyaXRlWzE6LTFdICAjIFNvbWVob3cgdGhlIHN0cmluZyBpcyBxdW90ZWQgISBqc29u
cHkgYnVnID8KLSAgICBmaWxlKCByZXdyaXRlX3BhdGgsICd3dCcpLndyaXRlKCByZXdyaXRlICsg
J1xuJyApCisgICAgZmlsZShyZXdyaXRlX3BhdGgsICd3dCcpLndyaXRlKHJld3JpdGUgKyAnXG4n
KQogICAgIHJldHVybiByZXdyaXRlCiAgICAgCi1pbnB1dCA9IGZpbGUoIGlucHV0X3BhdGgsICdy
dCcgKS5yZWFkKCkKLXJvb3QgPSBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUoIGlucHV0LCBhY3R1YWxf
cGF0aCApCi1yZXdyaXRlID0gcmV3cml0ZVZhbHVlVHJlZSgganNvbi53cml0ZSggcm9vdCApLCBy
ZXdyaXRlX3BhdGggKQotcmV3cml0ZV9yb290ID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKCByZXdy
aXRlLCByZXdyaXRlX2FjdHVhbF9wYXRoICkKK2lucHV0ID0gZmlsZShpbnB1dF9wYXRoLCAncnQn
KS5yZWFkKCkKK3Jvb3QgPSBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUoaW5wdXQsIGFjdHVhbF9wYXRo
KQorcmV3cml0ZSA9IHJld3JpdGVWYWx1ZVRyZWUoanNvbi53cml0ZShyb290KSwgcmV3cml0ZV9w
YXRoKQorcmV3cml0ZV9yb290ID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKHJld3JpdGUsIHJld3Jp
dGVfYWN0dWFsX3BhdGgpCiAKLXN5cy5leGl0KCAwICkKK3N5cy5leGl0KDApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvcnVuanNvbnRlc3RzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L3J1bmpzb250ZXN0cy5weQpp
bmRleCBmZmU4YmQ1MWVhMmRmMTA2NDhjMTJkNDJkMjBjNzA1MDBhZmQ1OTk0Li5kZmRlY2EzZWFi
ZmU2MDVlMjIxMmU5NDE1YzAzYjU3ZjNjMWFjODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcnVu
anNvbnRlc3RzLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9ydW5qc29udGVzdHMucHkKQEAgLTEsMTcgKzEs
NDIgQEAKKyMgQ29weXJpZ2h0IDIwMDcgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNw
cCBBdXRob3JzCisjIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCisjIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisj
IFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNv
dXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu
Y3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworZnJvbSBpbyBp
bXBvcnQgb3BlbgorZnJvbSBnbG9iIGltcG9ydCBnbG9iCiBpbXBvcnQgc3lzCiBpbXBvcnQgb3MK
IGltcG9ydCBvcy5wYXRoCi1mcm9tIGdsb2IgaW1wb3J0IGdsb2IKIGltcG9ydCBvcHRwYXJzZQog
CiBWQUxHUklORF9DTUQgPSAndmFsZ3JpbmQgLS10b29sPW1lbWNoZWNrIC0tbGVhay1jaGVjaz15
ZXMgLS11bmRlZi12YWx1ZS1lcnJvcnM9eWVzICcKIAotZGVmIGNvbXBhcmVPdXRwdXRzKCBleHBl
Y3RlZCwgYWN0dWFsLCBtZXNzYWdlICk6CitkZWYgZ2V0U3RhdHVzT3V0cHV0KGNtZCk6CisgICAg
IiIiCisgICAgUmV0dXJuIGludCwgdW5pY29kZSAoZm9yIGJvdGggUHl0aG9uIDIgYW5kIDMpLgor
ICAgIE5vdGU6IG9zLnBvcGVuKCkuY2xvc2UoKSB3b3VsZCByZXR1cm4gTm9uZSBmb3IgMC4KKyAg
ICAiIiIKKyAgICBwcmludChjbWQsIGZpbGU9c3lzLnN0ZGVycikKKyAgICBwaXBlID0gb3MucG9w
ZW4oY21kKQorICAgIHByb2Nlc3Nfb3V0cHV0ID0gcGlwZS5yZWFkKCkKKyAgICB0cnk6CisgICAg
ICAgICMgV2UgaGF2ZSBiZWVuIHVzaW5nIG9zLnBvcGVuKCkuIFdoZW4gd2UgcmVhZCgpIHRoZSBy
ZXN1bHQKKyAgICAgICAgIyB3ZSBnZXQgJ3N0cicgKGJ5dGVzKSBpbiBweTIsIGFuZCAnc3RyJyAo
dW5pY29kZSkgaW4gcHkzLgorICAgICAgICAjIFVnaCEgVGhlcmUgbXVzdCBiZSBhIGJldHRlciB3
YXkgdG8gaGFuZGxlIHRoaXMuCisgICAgICAgIHByb2Nlc3Nfb3V0cHV0ID0gcHJvY2Vzc19vdXRw
dXQuZGVjb2RlKCd1dGYtOCcpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBw
YXNzICAjIHB5dGhvbjMKKyAgICBzdGF0dXMgPSBwaXBlLmNsb3NlKCkKKyAgICByZXR1cm4gc3Rh
dHVzLCBwcm9jZXNzX291dHB1dAorZGVmIGNvbXBhcmVPdXRwdXRzKGV4cGVjdGVkLCBhY3R1YWws
IG1lc3NhZ2UpOgogICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQuc3RyaXAoKS5yZXBsYWNlKCdccics
JycpLnNwbGl0KCdcbicpCiAgICAgYWN0dWFsID0gYWN0dWFsLnN0cmlwKCkucmVwbGFjZSgnXHIn
LCcnKS5zcGxpdCgnXG4nKQogICAgIGRpZmZfbGluZSA9IDAKLSAgICBtYXhfbGluZV90b19jb21w
YXJlID0gbWluKCBsZW4oZXhwZWN0ZWQpLCBsZW4oYWN0dWFsKSApCi0gICAgZm9yIGluZGV4IGlu
IHhyYW5nZSgwLG1heF9saW5lX3RvX2NvbXBhcmUpOgorICAgIG1heF9saW5lX3RvX2NvbXBhcmUg
PSBtaW4obGVuKGV4cGVjdGVkKSwgbGVuKGFjdHVhbCkpCisgICAgZm9yIGluZGV4IGluIHJhbmdl
KDAsbWF4X2xpbmVfdG9fY29tcGFyZSk6CiAgICAgICAgIGlmIGV4cGVjdGVkW2luZGV4XS5zdHJp
cCgpICE9IGFjdHVhbFtpbmRleF0uc3RyaXAoKToKICAgICAgICAgICAgIGRpZmZfbGluZSA9IGlu
ZGV4ICsgMQogICAgICAgICAgICAgYnJlYWsKQEAgLTE5LDcgKzQ0LDcgQEAgZGVmIGNvbXBhcmVP
dXRwdXRzKCBleHBlY3RlZCwgYWN0dWFsLCBtZXNzYWdlICk6CiAgICAgICAgIGRpZmZfbGluZSA9
IG1heF9saW5lX3RvX2NvbXBhcmUrMQogICAgIGlmIGRpZmZfbGluZSA9PSAwOgogICAgICAgICBy
ZXR1cm4gTm9uZQotICAgIGRlZiBzYWZlR2V0TGluZSggbGluZXMsIGluZGV4ICk6CisgICAgZGVm
IHNhZmVHZXRMaW5lKGxpbmVzLCBpbmRleCk6CiAgICAgICAgIGluZGV4ICs9IC0xCiAgICAgICAg
IGlmIGluZGV4ID49IGxlbihsaW5lcyk6CiAgICAgICAgICAgICByZXR1cm4gJycKQEAgLTI5LDg1
ICs1NCwxMjEgQEAgZGVmIGNvbXBhcmVPdXRwdXRzKCBleHBlY3RlZCwgYWN0dWFsLCBtZXNzYWdl
ICk6CiAgIEFjdHVhbDogICAnJXMnCiAiIiIgJSAobWVzc2FnZSwgZGlmZl9saW5lLAogICAgICAg
IHNhZmVHZXRMaW5lKGV4cGVjdGVkLGRpZmZfbGluZSksCi0gICAgICAgc2FmZUdldExpbmUoYWN0
dWFsLGRpZmZfbGluZSkgKQotICAgICAgICAKLWRlZiBzYWZlUmVhZEZpbGUoIHBhdGggKToKKyAg
ICAgICBzYWZlR2V0TGluZShhY3R1YWwsZGlmZl9saW5lKSkKKworZGVmIHNhZmVSZWFkRmlsZShw
YXRoKToKICAgICB0cnk6Ci0gICAgICAgIHJldHVybiBmaWxlKCBwYXRoLCAncnQnICkucmVhZCgp
Ci0gICAgZXhjZXB0IElPRXJyb3IsIGU6CisgICAgICAgIHJldHVybiBvcGVuKHBhdGgsICdydCcs
IGVuY29kaW5nID0gJ3V0Zi04JykucmVhZCgpCisgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKICAg
ICAgICAgcmV0dXJuICc8RmlsZSAiJXMiIGlzIG1pc3Npbmc6ICVzPicgJSAocGF0aCxlKQogCi1k
ZWYgcnVuQWxsVGVzdHMoIGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRfZGlyID0gTm9u
ZSwKLSAgICAgICAgICAgICAgICAgdXNlX3ZhbGdyaW5kPUZhbHNlLCB3aXRoX2pzb25fY2hlY2tl
cj1GYWxzZSApOgorZGVmIHJ1bkFsbFRlc3RzKGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5w
dXRfZGlyID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgdXNlX3ZhbGdyaW5kPUZhbHNlLCB3aXRo
X2pzb25fY2hlY2tlcj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgd3JpdGVyQ2xhc3M9J1N0eWxl
ZFdyaXRlcicpOgogICAgIGlmIG5vdCBpbnB1dF9kaXI6Ci0gICAgICAgIGlucHV0X2RpciA9IG9z
LnBhdGguam9pbiggb3MuZ2V0Y3dkKCksICdkYXRhJyApCi0gICAgdGVzdHMgPSBnbG9iKCBvcy5w
YXRoLmpvaW4oIGlucHV0X2RpciwgJyouanNvbicgKSApCisgICAgICAgIGlucHV0X2RpciA9IG9z
LnBhdGguam9pbihvcy5nZXRjd2QoKSwgJ2RhdGEnKQorICAgIHRlc3RzID0gZ2xvYihvcy5wYXRo
LmpvaW4oaW5wdXRfZGlyLCAnKi5qc29uJykpCiAgICAgaWYgd2l0aF9qc29uX2NoZWNrZXI6Ci0g
ICAgICAgIHRlc3RfanNvbmNoZWNrZXIgPSBnbG9iKCBvcy5wYXRoLmpvaW4oIGlucHV0X2Rpciwg
Jy4uL2pzb25jaGVja2VyJywgJyouanNvbicgKSApCisgICAgICAgIGFsbF90ZXN0X2pzb25jaGVj
a2VyID0gZ2xvYihvcy5wYXRoLmpvaW4oaW5wdXRfZGlyLCAnLi4vanNvbmNoZWNrZXInLCAnKi5q
c29uJykpCisgICAgICAgICMgVGhlc2UgdGVzdHMgZmFpbCB3aXRoIHN0cmljdCBqc29uIHN1cHBv
cnQsIGJ1dCBwYXNzIHdpdGgganNvbmNwcCBleHRyYSBsaWVuaWVuY3kKKyAgICAgICAgIiIiCisg
ICAgICAgIEZhaWx1cmUgZGV0YWlsczoKKyAgICAgICAgKiBUZXN0IC4uL2pzb25jaGVja2VyL2Zh
aWwyNS5qc29uCisgICAgICAgIFBhcnNpbmcgc2hvdWxkIGhhdmUgZmFpbGVkOgorICAgICAgICBb
Igl0YWIJY2hhcmFjdGVyCWluCXN0cmluZwkiXQorCisgICAgICAgICogVGVzdCAuLi9qc29uY2hl
Y2tlci9mYWlsMTMuanNvbgorICAgICAgICBQYXJzaW5nIHNob3VsZCBoYXZlIGZhaWxlZDoKKyAg
ICAgICAgeyJOdW1iZXJzIGNhbm5vdCBoYXZlIGxlYWRpbmcgemVyb2VzIjogMDEzfQorCisgICAg
ICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsMTguanNvbgorICAgICAgICBQYXJzaW5nIHNo
b3VsZCBoYXZlIGZhaWxlZDoKKyAgICAgICAgW1tbW1tbW1tbW1tbW1tbW1tbW1siVG9vIGRlZXAi
XV1dXV1dXV1dXV1dXV1dXV1dXV0KKworICAgICAgICAqIFRlc3QgLi4vanNvbmNoZWNrZXIvZmFp
bDguanNvbgorICAgICAgICBQYXJzaW5nIHNob3VsZCBoYXZlIGZhaWxlZDoKKyAgICAgICAgWyJF
eHRyYSBjbG9zZSJdXQorCisgICAgICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsNy5qc29u
CisgICAgICAgIFBhcnNpbmcgc2hvdWxkIGhhdmUgZmFpbGVkOgorICAgICAgICBbIkNvbW1hIGFm
dGVyIHRoZSBjbG9zZSJdLAorCisgICAgICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsMTAu
anNvbgorICAgICAgICBQYXJzaW5nIHNob3VsZCBoYXZlIGZhaWxlZDoKKyAgICAgICAgeyJFeHRy
YSB2YWx1ZSBhZnRlciBjbG9zZSI6IHRydWV9ICJtaXNwbGFjZWQgcXVvdGVkIHZhbHVlIgorCisg
ICAgICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsMjcuanNvbgorICAgICAgICBQYXJzaW5n
IHNob3VsZCBoYXZlIGZhaWxlZDoKKyAgICAgICAgWyJsaW5lCisgICAgICAgIGJyZWFrIl0KKyAg
ICAgICAgIiIiCisgICAgICAgIGtub3duX2RpZmZlcmVuY2VzX3dpdGhqc29uY2hlY2tlciA9IFsg
ImZhaWwyNS5qc29uIiwgImZhaWwxMy5qc29uIiwgImZhaWwxOC5qc29uIiwgImZhaWw4Lmpzb24i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsNy5q
c29uIiwgImZhaWwxMC5qc29uIiwgImZhaWwyNy5qc29uIiBdCisgICAgICAgIHRlc3RfanNvbmNo
ZWNrZXIgPSBbIHRlc3QgZm9yIHRlc3QgaW4gYWxsX3Rlc3RfanNvbmNoZWNrZXIgaWYgb3MucGF0
aC5iYXNlbmFtZSh0ZXN0KSBub3QgaW4ga25vd25fZGlmZmVyZW5jZXNfd2l0aGpzb25jaGVja2Vy
IF0KKwogICAgIGVsc2U6CiAgICAgICAgIHRlc3RfanNvbmNoZWNrZXIgPSBbXQogICAgIGZhaWxl
ZF90ZXN0cyA9IFtdCiAgICAgdmFsZ3JpbmRfcGF0aCA9IHVzZV92YWxncmluZCBhbmQgVkFMR1JJ
TkRfQ01EIG9yICcnCiAgICAgZm9yIGlucHV0X3BhdGggaW4gdGVzdHMgKyB0ZXN0X2pzb25jaGVj
a2VyOgotICAgICAgICBleHBlY3RfZmFpbHVyZSA9IG9zLnBhdGguYmFzZW5hbWUoIGlucHV0X3Bh
dGggKS5zdGFydHN3aXRoKCAnZmFpbCcgKQorICAgICAgICBleHBlY3RfZmFpbHVyZSA9IG9zLnBh
dGguYmFzZW5hbWUoaW5wdXRfcGF0aCkuc3RhcnRzd2l0aCgnZmFpbCcpCiAgICAgICAgIGlzX2pz
b25fY2hlY2tlcl90ZXN0ID0gKGlucHV0X3BhdGggaW4gdGVzdF9qc29uY2hlY2tlcikgb3IgZXhw
ZWN0X2ZhaWx1cmUKLSAgICAgICAgcHJpbnQgJ1RFU1RJTkc6JywgaW5wdXRfcGF0aCwKKyAgICAg
ICAgcHJpbnQoJ1RFU1RJTkc6JywgaW5wdXRfcGF0aCwgZW5kPScgJykKICAgICAgICAgb3B0aW9u
cyA9IGlzX2pzb25fY2hlY2tlcl90ZXN0IGFuZCAnLS1qc29uLWNoZWNrZXInIG9yICcnCi0gICAg
ICAgIHBpcGUgPSBvcy5wb3BlbiggIiVzJXMgJXMgJXMiICUgKAotICAgICAgICAgICAgdmFsZ3Jp
bmRfcGF0aCwganNvbnRlc3RfZXhlY3V0YWJsZV9wYXRoLCBvcHRpb25zLAotICAgICAgICAgICAg
aW5wdXRfcGF0aCkgKQotICAgICAgICBwcm9jZXNzX291dHB1dCA9IHBpcGUucmVhZCgpCi0gICAg
ICAgIHN0YXR1cyA9IHBpcGUuY2xvc2UoKQorICAgICAgICBvcHRpb25zICs9ICcgLS1qc29uLXdy
aXRlciAlcycld3JpdGVyQ2xhc3MKKyAgICAgICAgY21kID0gJyVzJXMgJXMgIiVzIicgJSAoICAg
ICAgICAgICAgdmFsZ3JpbmRfcGF0aCwganNvbnRlc3RfZXhlY3V0YWJsZV9wYXRoLCBvcHRpb25z
LAorICAgICAgICAgICAgaW5wdXRfcGF0aCkKKyAgICAgICAgc3RhdHVzLCBwcm9jZXNzX291dHB1
dCA9IGdldFN0YXR1c091dHB1dChjbWQpCiAgICAgICAgIGlmIGlzX2pzb25fY2hlY2tlcl90ZXN0
OgogICAgICAgICAgICAgaWYgZXhwZWN0X2ZhaWx1cmU6Ci0gICAgICAgICAgICAgICAgaWYgc3Rh
dHVzIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICdGQUlMRUQnCi0gICAgICAg
ICAgICAgICAgICAgIGZhaWxlZF90ZXN0cy5hcHBlbmQoIChpbnB1dF9wYXRoLCAnUGFyc2luZyBz
aG91bGQgaGF2ZSBmYWlsZWQ6XG4lcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2FmZVJlYWRGaWxlKGlucHV0X3BhdGgpKSApCisgICAgICAgICAgICAgICAg
aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ0ZBSUxFRCcpCisgICAg
ICAgICAgICAgICAgICAgIGZhaWxlZF90ZXN0cy5hcHBlbmQoKGlucHV0X3BhdGgsICdQYXJzaW5n
IHNob3VsZCBoYXZlIGZhaWxlZDpcbiVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzYWZlUmVhZEZpbGUoaW5wdXRfcGF0aCkpKQogICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICdPSycKKyAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoJ09LJykKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgc3Rh
dHVzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBwcmludCAnRkFJTEVEJwotICAg
ICAgICAgICAgICAgICAgICBmYWlsZWRfdGVzdHMuYXBwZW5kKCAoaW5wdXRfcGF0aCwgJ1BhcnNp
bmcgZmFpbGVkOlxuJyArIHByb2Nlc3Nfb3V0cHV0KSApCisgICAgICAgICAgICAgICAgaWYgc3Rh
dHVzOgorICAgICAgICAgICAgICAgICAgICBwcmludCgnRkFJTEVEJykKKyAgICAgICAgICAgICAg
ICAgICAgZmFpbGVkX3Rlc3RzLmFwcGVuZCgoaW5wdXRfcGF0aCwgJ1BhcnNpbmcgZmFpbGVkOlxu
JyArIHByb2Nlc3Nfb3V0cHV0KSkKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICBwcmludCAnT0snCisgICAgICAgICAgICAgICAgICAgIHByaW50KCdPSycpCiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICBiYXNlX3BhdGggPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0
X3BhdGgpWzBdCi0gICAgICAgICAgICBhY3R1YWxfb3V0cHV0ID0gc2FmZVJlYWRGaWxlKCBiYXNl
X3BhdGggKyAnLmFjdHVhbCcgKQotICAgICAgICAgICAgYWN0dWFsX3Jld3JpdGVfb3V0cHV0ID0g
c2FmZVJlYWRGaWxlKCBiYXNlX3BhdGggKyAnLmFjdHVhbC1yZXdyaXRlJyApCi0gICAgICAgICAg
ICBmaWxlKGJhc2VfcGF0aCArICcucHJvY2Vzcy1vdXRwdXQnLCd3dCcpLndyaXRlKCBwcm9jZXNz
X291dHB1dCApCisgICAgICAgICAgICBhY3R1YWxfb3V0cHV0ID0gc2FmZVJlYWRGaWxlKGJhc2Vf
cGF0aCArICcuYWN0dWFsJykKKyAgICAgICAgICAgIGFjdHVhbF9yZXdyaXRlX291dHB1dCA9IHNh
ZmVSZWFkRmlsZShiYXNlX3BhdGggKyAnLmFjdHVhbC1yZXdyaXRlJykKKyAgICAgICAgICAgIG9w
ZW4oYmFzZV9wYXRoICsgJy5wcm9jZXNzLW91dHB1dCcsICd3dCcsIGVuY29kaW5nID0gJ3V0Zi04
Jykud3JpdGUocHJvY2Vzc19vdXRwdXQpCiAgICAgICAgICAgICBpZiBzdGF0dXM6Ci0gICAgICAg
ICAgICAgICAgcHJpbnQgJ3BhcnNpbmcgZmFpbGVkJwotICAgICAgICAgICAgICAgIGZhaWxlZF90
ZXN0cy5hcHBlbmQoIChpbnB1dF9wYXRoLCAnUGFyc2luZyBmYWlsZWQ6XG4nICsgcHJvY2Vzc19v
dXRwdXQpICkKKyAgICAgICAgICAgICAgICBwcmludCgncGFyc2luZyBmYWlsZWQnKQorICAgICAg
ICAgICAgICAgIGZhaWxlZF90ZXN0cy5hcHBlbmQoKGlucHV0X3BhdGgsICdQYXJzaW5nIGZhaWxl
ZDpcbicgKyBwcm9jZXNzX291dHB1dCkpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAg
ICAgIGV4cGVjdGVkX291dHB1dF9wYXRoID0gb3MucGF0aC5zcGxpdGV4dChpbnB1dF9wYXRoKVsw
XSArICcuZXhwZWN0ZWQnCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0ID0gZmlsZSgg
ZXhwZWN0ZWRfb3V0cHV0X3BhdGgsICdydCcgKS5yZWFkKCkKLSAgICAgICAgICAgICAgICBkZXRh
aWwgPSAoIGNvbXBhcmVPdXRwdXRzKCBleHBlY3RlZF9vdXRwdXQsIGFjdHVhbF9vdXRwdXQsICdp
bnB1dCcgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGNvbXBhcmVPdXRwdXRzKCBl
eHBlY3RlZF9vdXRwdXQsIGFjdHVhbF9yZXdyaXRlX291dHB1dCwgJ3Jld3JpdGUnICkgKQorICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX291dHB1dCA9IG9wZW4oZXhwZWN0ZWRfb3V0cHV0X3BhdGgs
ICdydCcsIGVuY29kaW5nID0gJ3V0Zi04JykucmVhZCgpCisgICAgICAgICAgICAgICAgZGV0YWls
ID0gKGNvbXBhcmVPdXRwdXRzKGV4cGVjdGVkX291dHB1dCwgYWN0dWFsX291dHB1dCwgJ2lucHV0
JykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBjb21wYXJlT3V0cHV0cyhleHBlY3Rl
ZF9vdXRwdXQsIGFjdHVhbF9yZXdyaXRlX291dHB1dCwgJ3Jld3JpdGUnKSkKICAgICAgICAgICAg
ICAgICBpZiBkZXRhaWw6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICdGQUlMRUQnCi0gICAg
ICAgICAgICAgICAgICAgIGZhaWxlZF90ZXN0cy5hcHBlbmQoIChpbnB1dF9wYXRoLCBkZXRhaWwp
ICkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ0ZBSUxFRCcpCisgICAgICAgICAgICAgICAg
ICAgIGZhaWxlZF90ZXN0cy5hcHBlbmQoKGlucHV0X3BhdGgsIGRldGFpbCkpCiAgICAgICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ09LJworICAgICAgICAgICAg
ICAgICAgICBwcmludCgnT0snKQogCiAgICAgaWYgZmFpbGVkX3Rlc3RzOgotICAgICAgICBwcmlu
dAotICAgICAgICBwcmludCAnRmFpbHVyZSBkZXRhaWxzOicKKyAgICAgICAgcHJpbnQoKQorICAg
ICAgICBwcmludCgnRmFpbHVyZSBkZXRhaWxzOicpCiAgICAgICAgIGZvciBmYWlsZWRfdGVzdCBp
biBmYWlsZWRfdGVzdHM6Ci0gICAgICAgICAgICBwcmludCAnKiBUZXN0JywgZmFpbGVkX3Rlc3Rb
MF0KLSAgICAgICAgICAgIHByaW50IGZhaWxlZF90ZXN0WzFdCi0gICAgICAgICAgICBwcmludAot
ICAgICAgICBwcmludCAnVGVzdCByZXN1bHRzOiAlZCBwYXNzZWQsICVkIGZhaWxlZC4nICUgKGxl
bih0ZXN0cyktbGVuKGZhaWxlZF90ZXN0cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGZhaWxlZF90ZXN0cykgKQorICAgICAgICAg
ICAgcHJpbnQoJyogVGVzdCcsIGZhaWxlZF90ZXN0WzBdKQorICAgICAgICAgICAgcHJpbnQoZmFp
bGVkX3Rlc3RbMV0pCisgICAgICAgICAgICBwcmludCgpCisgICAgICAgIHByaW50KCdUZXN0IHJl
c3VsdHM6ICVkIHBhc3NlZCwgJWQgZmFpbGVkLicgJSAobGVuKHRlc3RzKS1sZW4oZmFpbGVkX3Rl
c3RzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZW4oZmFpbGVkX3Rlc3RzKSkpCiAgICAgICAgIHJldHVybiAxCiAgICAgZWxzZToKLSAg
ICAgICAgcHJpbnQgJ0FsbCAlZCB0ZXN0cyBwYXNzZWQuJyAlIGxlbih0ZXN0cykKKyAgICAgICAg
cHJpbnQoJ0FsbCAlZCB0ZXN0cyBwYXNzZWQuJyAlIGxlbih0ZXN0cykpCiAgICAgICAgIHJldHVy
biAwCiAKIGRlZiBtYWluKCk6CiAgICAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2Vy
Ci0gICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKCB1c2FnZT0iJXByb2cgW29wdGlvbnNdIDxwYXRo
IHRvIGpzb250ZXN0cnVubmVyLmV4ZT4gW3Rlc3QgY2FzZSBkaXJlY3RvcnldIiApCisgICAgcGFy
c2VyID0gT3B0aW9uUGFyc2VyKHVzYWdlPSIlcHJvZyBbb3B0aW9uc10gPHBhdGggdG8ganNvbnRl
c3RydW5uZXIuZXhlPiBbdGVzdCBjYXNlIGRpcmVjdG9yeV0iKQogICAgIHBhcnNlci5hZGRfb3B0
aW9uKCItLXZhbGdyaW5kIiwKICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlc3Q9InZhbGdyaW5kIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgIGhlbHA9
InJ1biBhbGwgdGhlIHRlc3RzIHVzaW5nIHZhbGdyaW5kIHRvIGRldGVjdCBtZW1vcnkgbGVha3Mi
KQpAQCAtMTE4LDE3ICsxNzksMzIgQEAgZGVmIG1haW4oKToKICAgICBvcHRpb25zLCBhcmdzID0g
cGFyc2VyLnBhcnNlX2FyZ3MoKQogCiAgICAgaWYgbGVuKGFyZ3MpIDwgMSBvciBsZW4oYXJncykg
PiAyOgotICAgICAgICBwYXJzZXIuZXJyb3IoICdNdXN0IHByb3ZpZGVzIGF0IGxlYXN0IHBhdGgg
dG8ganNvbnRlc3RydW5uZXIgZXhlY3V0YWJsZS4nICkKLSAgICAgICAgc3lzLmV4aXQoIDEgKQor
ICAgICAgICBwYXJzZXIuZXJyb3IoJ011c3QgcHJvdmlkZXMgYXQgbGVhc3QgcGF0aCB0byBqc29u
dGVzdHJ1bm5lciBleGVjdXRhYmxlLicpCisgICAgICAgIHN5cy5leGl0KDEpCiAKLSAgICBqc29u
dGVzdF9leGVjdXRhYmxlX3BhdGggPSBvcy5wYXRoLm5vcm1wYXRoKCBvcy5wYXRoLmFic3BhdGgo
IGFyZ3NbMF0gKSApCisgICAganNvbnRlc3RfZXhlY3V0YWJsZV9wYXRoID0gb3MucGF0aC5ub3Jt
cGF0aChvcy5wYXRoLmFic3BhdGgoYXJnc1swXSkpCiAgICAgaWYgbGVuKGFyZ3MpID4gMToKLSAg
ICAgICAgaW5wdXRfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgoIG9zLnBhdGguYWJzcGF0aCggYXJn
c1sxXSApICkKKyAgICAgICAgaW5wdXRfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5h
YnNwYXRoKGFyZ3NbMV0pKQogICAgIGVsc2U6CiAgICAgICAgIGlucHV0X3BhdGggPSBOb25lCi0g
ICAgc3RhdHVzID0gcnVuQWxsVGVzdHMoIGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRf
cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX3ZhbGdyaW5kPW9wdGlvbnMudmFs
Z3JpbmQsIHdpdGhfanNvbl9jaGVja2VyPW9wdGlvbnMud2l0aF9qc29uX2NoZWNrZXIgKQotICAg
IHN5cy5leGl0KCBzdGF0dXMgKQorICAgIHN0YXR1cyA9IHJ1bkFsbFRlc3RzKGpzb250ZXN0X2V4
ZWN1dGFibGVfcGF0aCwgaW5wdXRfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vf
dmFsZ3JpbmQ9b3B0aW9ucy52YWxncmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3aXRo
X2pzb25fY2hlY2tlcj1vcHRpb25zLndpdGhfanNvbl9jaGVja2VyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIHdyaXRlckNsYXNzPSdTdHlsZWRXcml0ZXInKQorICAgIGlmIHN0YXR1czoKKyAg
ICAgICAgc3lzLmV4aXQoc3RhdHVzKQorICAgIHN0YXR1cyA9IHJ1bkFsbFRlc3RzKGpzb250ZXN0
X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1
c2VfdmFsZ3JpbmQ9b3B0aW9ucy52YWxncmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3
aXRoX2pzb25fY2hlY2tlcj1vcHRpb25zLndpdGhfanNvbl9jaGVja2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHdyaXRlckNsYXNzPSdTdHlsZWRTdHJlYW1Xcml0ZXInKQorICAgIGlmIHN0
YXR1czoKKyAgICAgICAgc3lzLmV4aXQoc3RhdHVzKQorICAgIHN0YXR1cyA9IHJ1bkFsbFRlc3Rz
KGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRfcGF0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB1c2VfdmFsZ3JpbmQ9b3B0aW9ucy52YWxncmluZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB3aXRoX2pzb25fY2hlY2tlcj1vcHRpb25zLndpdGhfanNvbl9jaGVja2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIHdyaXRlckNsYXNzPSdCdWlsdFN0eWxlZFN0cmVhbVdyaXRl
cicpCisgICAgaWYgc3RhdHVzOgorICAgICAgICBzeXMuZXhpdChzdGF0dXMpCiAKIGlmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6CiAgICAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcnVu
dW5pdHRlc3RzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L3J1bnVuaXR0ZXN0cy5weQppbmRleCAzNjYxODRjZmI1
MDA3MTM1MWFjYTA5NGQxZmZjMDE2ZDI2NTczMjAyLi42NjM0ZTcyNDE5Njc4Y2E0M2ZjOGIwODc2
ZDBhOWM3OTc3N2E3ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcnVudW5pdHRlc3RzLnB5Cisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9ydW51bml0dGVzdHMucHkKQEAgLTEsNjEgKzEsNzIgQEAKKyMgQ29weXJp
Z2h0IDIwMDkgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisjIERp
c3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQg
YW5kCisjIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxlIExJQ0VO
U0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9M
SUNFTlNFCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19m
dXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworZnJvbSBpbyBpbXBvcnQgb3BlbgorZnJv
bSBnbG9iIGltcG9ydCBnbG9iCiBpbXBvcnQgc3lzCiBpbXBvcnQgb3MKIGltcG9ydCBvcy5wYXRo
CiBpbXBvcnQgc3VicHJvY2VzcwotZnJvbSBnbG9iIGltcG9ydCBnbG9iCiBpbXBvcnQgb3B0cGFy
c2UKIAogVkFMR1JJTkRfQ01EID0gJ3ZhbGdyaW5kIC0tdG9vbD1tZW1jaGVjayAtLWxlYWstY2hl
Y2s9eWVzIC0tdW5kZWYtdmFsdWUtZXJyb3JzPXllcycKIAogY2xhc3MgVGVzdFByb3h5KG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKCBzZWxmLCB0ZXN0X2V4ZV9wYXRoLCB1c2VfdmFsZ3JpbmQ9
RmFsc2UgKToKLSAgICAgICAgc2VsZi50ZXN0X2V4ZV9wYXRoID0gb3MucGF0aC5ub3JtcGF0aCgg
b3MucGF0aC5hYnNwYXRoKCB0ZXN0X2V4ZV9wYXRoICkgKQorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCB0ZXN0X2V4ZV9wYXRoLCB1c2VfdmFsZ3JpbmQ9RmFsc2UpOgorICAgICAgICBzZWxmLnRlc3Rf
ZXhlX3BhdGggPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguYWJzcGF0aCh0ZXN0X2V4ZV9wYXRo
KSkKICAgICAgICAgc2VsZi51c2VfdmFsZ3JpbmQgPSB1c2VfdmFsZ3JpbmQKIAotICAgIGRlZiBy
dW4oIHNlbGYsIG9wdGlvbnMgKToKKyAgICBkZWYgcnVuKHNlbGYsIG9wdGlvbnMpOgogICAgICAg
ICBpZiBzZWxmLnVzZV92YWxncmluZDoKICAgICAgICAgICAgIGNtZCA9IFZBTEdSSU5EX0NNRC5z
cGxpdCgpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjbWQgPSBbXQotICAgICAgICBjbWQu
ZXh0ZW5kKCBbc2VsZi50ZXN0X2V4ZV9wYXRoLCAnLS10ZXN0LWF1dG8nXSArIG9wdGlvbnMgKQot
ICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbiggY21kLCBzdGRvdXQ9c3VicHJvY2Vz
cy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQgKQorICAgICAgICBjbWQuZXh0ZW5kKFtz
ZWxmLnRlc3RfZXhlX3BhdGgsICctLXRlc3QtYXV0byddICsgb3B0aW9ucykKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLCBzdGRvdXQ9c3Vi
cHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisgICAgICAgIGV4Y2VwdDoK
KyAgICAgICAgICAgIHByaW50KGNtZCkKKyAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIHN0ZG91
dCA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKVswXQogICAgICAgICBpZiBwcm9jZXNzLnJldHVybmNv
ZGU6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIHN0ZG91dAogICAgICAgICByZXR1cm4gVHJ1
ZSwgc3Rkb3V0CiAKLWRlZiBydW5BbGxUZXN0cyggZXhlX3BhdGgsIHVzZV92YWxncmluZD1GYWxz
ZSApOgotICAgIHRlc3RfcHJveHkgPSBUZXN0UHJveHkoIGV4ZV9wYXRoLCB1c2VfdmFsZ3JpbmQ9
dXNlX3ZhbGdyaW5kICkKLSAgICBzdGF0dXMsIHRlc3RfbmFtZXMgPSB0ZXN0X3Byb3h5LnJ1bigg
WyctLWxpc3QtdGVzdHMnXSApCitkZWYgcnVuQWxsVGVzdHMoZXhlX3BhdGgsIHVzZV92YWxncmlu
ZD1GYWxzZSk6CisgICAgdGVzdF9wcm94eSA9IFRlc3RQcm94eShleGVfcGF0aCwgdXNlX3ZhbGdy
aW5kPXVzZV92YWxncmluZCkKKyAgICBzdGF0dXMsIHRlc3RfbmFtZXMgPSB0ZXN0X3Byb3h5LnJ1
bihbJy0tbGlzdC10ZXN0cyddKQogICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgIHByaW50ID4+
IHN5cy5zdGRlcnIsICJGYWlsZWQgdG8gb2J0YWluIHVuaXQgdGVzdHMgbGlzdDpcbiIgKyB0ZXN0
X25hbWVzCisgICAgICAgIHByaW50KCJGYWlsZWQgdG8gb2J0YWluIHVuaXQgdGVzdHMgbGlzdDpc
biIgKyB0ZXN0X25hbWVzLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgIHJldHVybiAxCi0gICAg
dGVzdF9uYW1lcyA9IFtuYW1lLnN0cmlwKCkgZm9yIG5hbWUgaW4gdGVzdF9uYW1lcy5zdHJpcCgp
LnNwbGl0KCdcbicpXQorICAgIHRlc3RfbmFtZXMgPSBbbmFtZS5zdHJpcCgpIGZvciBuYW1lIGlu
IHRlc3RfbmFtZXMuZGVjb2RlKCd1dGYtOCcpLnN0cmlwKCkuc3BsaXQoJ1xuJyldCiAgICAgZmFp
bHVyZXMgPSBbXQogICAgIGZvciBuYW1lIGluIHRlc3RfbmFtZXM6Ci0gICAgICAgIHByaW50ICdU
RVNUSU5HICVzOicgJSBuYW1lLAotICAgICAgICBzdWNjZWVkLCByZXN1bHQgPSB0ZXN0X3Byb3h5
LnJ1biggWyctLXRlc3QnLCBuYW1lXSApCisgICAgICAgIHByaW50KCdURVNUSU5HICVzOicgJSBu
YW1lLCBlbmQ9JyAnKQorICAgICAgICBzdWNjZWVkLCByZXN1bHQgPSB0ZXN0X3Byb3h5LnJ1bihb
Jy0tdGVzdCcsIG5hbWVdKQogICAgICAgICBpZiBzdWNjZWVkOgotICAgICAgICAgICAgcHJpbnQg
J09LJworICAgICAgICAgICAgcHJpbnQoJ09LJykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGZhaWx1cmVzLmFwcGVuZCggKG5hbWUsIHJlc3VsdCkgKQotICAgICAgICAgICAgcHJpbnQgJ0ZB
SUxFRCcKKyAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCgobmFtZSwgcmVzdWx0KSkKKyAgICAg
ICAgICAgIHByaW50KCdGQUlMRUQnKQogICAgIGZhaWxlZF9jb3VudCA9IGxlbihmYWlsdXJlcykK
ICAgICBwYXNzX2NvdW50ID0gbGVuKHRlc3RfbmFtZXMpIC0gZmFpbGVkX2NvdW50CiAgICAgaWYg
ZmFpbGVkX2NvdW50OgotICAgICAgICBwcmludAorICAgICAgICBwcmludCgpCiAgICAgICAgIGZv
ciBuYW1lLCByZXN1bHQgaW4gZmFpbHVyZXM6Ci0gICAgICAgICAgICBwcmludCByZXN1bHQKLSAg
ICAgICAgcHJpbnQgJyVkLyVkIHRlc3RzIHBhc3NlZCAoJWQgZmFpbHVyZShzKSknICUgKAotICAg
ICAgICAgICAgcGFzc19jb3VudCwgbGVuKHRlc3RfbmFtZXMpLCBmYWlsZWRfY291bnQpCisgICAg
ICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAgIHByaW50KCclZC8lZCB0ZXN0cyBwYXNzZWQg
KCVkIGZhaWx1cmUocykpJyAlICggICAgICAgICAgICBwYXNzX2NvdW50LCBsZW4odGVzdF9uYW1l
cyksIGZhaWxlZF9jb3VudCkpCiAgICAgICAgIHJldHVybiAxCiAgICAgZWxzZToKLSAgICAgICAg
cHJpbnQgJ0FsbCAlZCB0ZXN0cyBwYXNzZWQnICUgbGVuKHRlc3RfbmFtZXMpCisgICAgICAgIHBy
aW50KCdBbGwgJWQgdGVzdHMgcGFzc2VkJyAlIGxlbih0ZXN0X25hbWVzKSkKICAgICAgICAgcmV0
dXJuIDAKIAogZGVmIG1haW4oKToKICAgICBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJz
ZXIKLSAgICBwYXJzZXIgPSBPcHRpb25QYXJzZXIoIHVzYWdlPSIlcHJvZyBbb3B0aW9uc10gPHBh
dGggdG8gdGVzdF9saWJfanNvbi5leGU+IiApCisgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKHVz
YWdlPSIlcHJvZyBbb3B0aW9uc10gPHBhdGggdG8gdGVzdF9saWJfanNvbi5leGU+IikKICAgICBw
YXJzZXIuYWRkX29wdGlvbigiLS12YWxncmluZCIsCiAgICAgICAgICAgICAgICAgICBhY3Rpb249
InN0b3JlX3RydWUiLCBkZXN0PSJ2YWxncmluZCIsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAg
ICAgICAgICBoZWxwPSJydW4gYWxsIHRoZSB0ZXN0cyB1c2luZyB2YWxncmluZCB0byBkZXRlY3Qg
bWVtb3J5IGxlYWtzIikKQEAgLTYzLDExICs3NCwxMSBAQCBkZWYgbWFpbigpOgogICAgIG9wdGlv
bnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCiAKICAgICBpZiBsZW4oYXJncykgIT0gMToK
LSAgICAgICAgcGFyc2VyLmVycm9yKCAnTXVzdCBwcm92aWRlcyBhdCBsZWFzdCBwYXRoIHRvIHRl
c3RfbGliX2pzb24gZXhlY3V0YWJsZS4nICkKLSAgICAgICAgc3lzLmV4aXQoIDEgKQorICAgICAg
ICBwYXJzZXIuZXJyb3IoJ011c3QgcHJvdmlkZXMgYXQgbGVhc3QgcGF0aCB0byB0ZXN0X2xpYl9q
c29uIGV4ZWN1dGFibGUuJykKKyAgICAgICAgc3lzLmV4aXQoMSkKIAotICAgIGV4aXRfY29kZSA9
IHJ1bkFsbFRlc3RzKCBhcmdzWzBdLCB1c2VfdmFsZ3JpbmQ9b3B0aW9ucy52YWxncmluZCApCi0g
ICAgc3lzLmV4aXQoIGV4aXRfY29kZSApCisgICAgZXhpdF9jb2RlID0gcnVuQWxsVGVzdHMoYXJn
c1swXSwgdXNlX3ZhbGdyaW5kPW9wdGlvbnMudmFsZ3JpbmQpCisgICAgc3lzLmV4aXQoZXhpdF9j
b2RlKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIG1haW4oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS92ZXJzaW9uIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3ZGVmZTFlYTEwNjNjNDIzNzJjMWQ0YjM3MDgxMzM5MGE5YTdlZDgxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdmVyc2lvbgorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTAuNi4wLWRldgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdmVyc2lvbi5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdmVyc2lvbi5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZmMwM2Y3ZGQ3Mjk2NmQyN2Q5NjE3MjAyOTc4Yjg5MjRiNTkxYzBhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS92ZXJzaW9uLmluCkBAIC0wLDAgKzEgQEAKK0BKU09OQ1BQX1ZFUlNJT05A
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3ZlcnNpb24udHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9uLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZmEzNjNlNzZlZDcxNzM4YjkyNTFjNjg4YjVmODEzYzM1MWI5OWE4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS92ZXJzaW9uLnR4dApAQCAtMCwwICsxIEBACisxLjguNAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380532</attachid>
            <date>2019-10-09 06:25:14 -0700</date>
            <delta_ts>2019-10-10 08:56:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202729-20191009152452.patch</filename>
            <type>text/plain</type>
            <size>1286117</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBlNzNhNTgwZDIzNTE3MDVhNTFjMDA3MzM1NDIxMGQ5ODAwOTQyMmViLi4xZjRi
YmUzNzViNTc1NWIwMmM5YjkxZWZlNjU0OTNhZWQwZmIzMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMC0wOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyB0aGly
ZC1wYXJ0eSBqc29uY3BwIHRvIE03OAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcDogVXBkYXRlZC4KKwog
MjAxOS0xMC0wOSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIHlhc20tMS4zLjAgZm9sZGVyIHRvIHlhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9DTWFrZUxpc3RzLnR4dAppbmRleCBiYjJlZjYyY2VhMDc2Njg1ZTVkYmZlNDM1NzM2Yzk4
MDgyYzE4YzlmLi5mYTNiNTIyOTE4ZTZiZmI2NzBiNGM1ZjVjZWI0MzlhMGM4MDE4ZDc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CkBAIC0yODcsOCArMjg3
LDggQEAgc2V0KHdlYnJ0Y19TT1VSQ0VTCiAgICAgU291cmNlL3RoaXJkX3BhcnR5L2JvcmluZ3Nz
bC9zcmMvc3NsL3Rsc19tZXRob2QuY2MKICAgICBTb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9zc2wvdGxzX3JlY29yZC5jYwogICAgIFNvdXJjZS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wv
c3JjL3RoaXJkX3BhcnR5L2ZpYXQvY3VydmUyNTUxOS5jCi0gICAgU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAKLSAgICBTb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9vdmVycmlkZXMvc3JjL2xpYl9qc29uL2pzb25fdmFsdWUu
Y3BwCisgICAgU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9q
c29uX3JlYWRlci5jcHAKKyAgICBTb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3Jj
L2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCiAgICAgU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAKICAgICBTb3VyY2UvdGhpcmRfcGFy
dHkvbGlieXV2L3NvdXJjZS9jb21wYXJlLmNjCiAgICAgU291cmNlL3RoaXJkX3BhcnR5L2xpYnl1
di9zb3VyY2UvY29tcGFyZV9jb21tb24uY2MKQEAgLTE0MTUsNiArMTQxNSw3IEBAIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKHdlYnJ0YyBQUklWQVRFCiAgICAgU291cmNlCiAgICAgU291cmNl
L3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAKICAgICBTb3VyY2UvdGhpcmRfcGFydHkvYm9yaW5nc3Ns
L3NyYy9pbmNsdWRlCisgICAgU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvZ2VuZXJhdGVkCiAg
ICAgU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL2luY2x1ZGUKICAgICBTb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZQogICAgIFNvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9CVUlMRC5nbiBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9CVUlM
RC5nbgppbmRleCBjZjQwODk1YmUwZGE4OGJjYjdjM2MwZjFiMjcxZTgxZWJiYTA5YzgwLi5mMmY0
OGI5ZWU3Y2ZiOGM5ODhiNWJmNjZhMjYzZTljMjExNDMzYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvQlVJTEQuZ24K
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL0JVSUxELmduCkBAIC0yLDE4ICsyLDI2IEBACiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KIAoraW1wb3J0KCIvL3Rlc3RpbmcvbGliZnV6emVyL2Z1enpl
cl90ZXN0LmduaSIpCisKIGNvbmZpZygianNvbmNwcF9jb25maWciKSB7CiAgIGluY2x1ZGVfZGly
cyA9IFsKLSAgICAib3ZlcnJpZGVzL2luY2x1ZGUiLAogICAgICJzb3VyY2UvaW5jbHVkZSIsCisg
ICAgImdlbmVyYXRlZCIsCiAgIF0KKworICAjIFRPRE8oY3JidWcuY29tLzk4MzIyMyk6IFVwZGF0
ZSBKc29uQ3BwIEJVSUxELmduIHRvIHJlbW92ZSBkZXByZWNhdGVkCisgICMgZGVjbGFyYXRpb24g
ZmxhZy4KKyAgIyBUaGlzIHRlbXBvcmFyeSBmbGFnIGFsbG93aW5nIGNsaWVudHMgdG8gdXBkYXRl
IHRvIHRoZSBuZXcgdmVyc2lvbiwgYW5kIHRoZW4KKyAgIyB1cGRhdGUgdG8gdGhlIG5ldyBTdHJl
YW1Xcml0ZXIgYW5kIENoYXJSZWFkZXIgY2xhc3Nlcy4KKyAgaWYgKCFpc193aW4gfHwgaXNfY2xh
bmcpIHsKKyAgICBjZmxhZ3NfY2MgPSBbICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIiBd
CisgIH0KIH0KIAogc291cmNlX3NldCgianNvbmNwcCIpIHsKICAgc291cmNlcyA9IFsKLSAgICAi
b3ZlcnJpZGVzL2luY2x1ZGUvanNvbi92YWx1ZS5oIiwKLSAgICAib3ZlcnJpZGVzL3NyYy9saWJf
anNvbi9qc29uX3JlYWRlci5jcHAiLAotICAgICJvdmVycmlkZXMvc3JjL2xpYl9qc29uL2pzb25f
dmFsdWUuY3BwIiwKKyAgICAiZ2VuZXJhdGVkL3ZlcnNpb24uaCIsCiAgICAgInNvdXJjZS9pbmNs
dWRlL2pzb24vYXNzZXJ0aW9ucy5oIiwKICAgICAic291cmNlL2luY2x1ZGUvanNvbi9hdXRvbGlu
ay5oIiwKICAgICAic291cmNlL2luY2x1ZGUvanNvbi9jb25maWcuaCIsCkBAIC0yMSwxNSArMjks
MzggQEAgc291cmNlX3NldCgianNvbmNwcCIpIHsKICAgICAic291cmNlL2luY2x1ZGUvanNvbi9m
b3J3YXJkcy5oIiwKICAgICAic291cmNlL2luY2x1ZGUvanNvbi9qc29uLmgiLAogICAgICJzb3Vy
Y2UvaW5jbHVkZS9qc29uL3JlYWRlci5oIiwKKyAgICAic291cmNlL2luY2x1ZGUvanNvbi92YWx1
ZS5oIiwKICAgICAic291cmNlL2luY2x1ZGUvanNvbi93cml0ZXIuaCIsCi0gICAgInNvdXJjZS9z
cmMvbGliX2pzb24vanNvbl9iYXRjaGFsbG9jYXRvci5oIiwKKyAgICAic291cmNlL3NyYy9saWJf
anNvbi9qc29uX3JlYWRlci5jcHAiLAogICAgICJzb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fdG9v
bC5oIiwKKyAgICAic291cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcCIsCiAgICAgInNv
dXJjZS9zcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwIiwKICAgXQogCiAgIHB1YmxpY19jb25m
aWdzID0gWyAiOmpzb25jcHBfY29uZmlnIiBdCiAKLSAgZGVmaW5lcyA9IFsgIkpTT05fVVNFX0VY
Q0VQVElPTj0wIiBdCisgIGRlZmluZXMgPSBbCisgICAgIkpTT05fVVNFX0VYQ0VQVElPTj0wIiwK
KyAgICAiSlNPTl9VU0VfTlVMTFJFRj0wIiwKKyAgXQogCiAgIGluY2x1ZGVfZGlycyA9IFsgInNv
dXJjZS9zcmMvbGliX2pzb24iIF0KKworICBpZiAoIWlzX3dpbiB8fCBpc19jbGFuZykgeworICAg
IGNmbGFnc19jYyA9IFsgIi1Xbm8taW1wbGljaXQtZmFsbHRocm91Z2giIF0KKyAgfQorfQorCitm
dXp6ZXJfdGVzdCgianNvbmNwcF9mdXp6ZXIiKSB7CisgIHNvdXJjZXMgPSBbCisgICAgImZ1enpl
cnMvanNvbl9mdXp6ZXIuY2MiLAorICBdCisKKyAgZGVwcyA9IFsKKyAgICAiOmpzb25jcHAiLAor
ICBdCisKKyAgaW5jbHVkZV9kaXJzID0gWyAiZ2VuZXJhdGVkIiBdCisKKyAgZGljdCA9ICIvL3Rl
c3RpbmcvbGliZnV6emVyL2Z1enplcnMvZGljdHMvanNvbi5kaWN0IgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL09X
TkVSUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9PV05FUlMKaW5kZXggNGZiMmZlZDA3YjkxM2NmMmJhOTJmOWNhNmFiY2YyYTU3MTg2NmY4
ZS4uZjBlNzM1NDQyNTQyNzU2NzBjZjRlYWE5MTU3MmU4N2UzOTIyZDc0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL09X
TkVSUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvT1dORVJTCkBAIC0xLDIgKzEsMyBAQAotcHRoYXRjaGVyQGNocm9taXVtLm9yZwot
c2JjQGNocm9taXVtLm9yZworam9waGJhQGNocm9taXVtLm9yZworCisjIENPTVBPTkVOVDogSW50
ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvUkVBRE1FLmNocm9taXVtIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL1JFQURNRS5jaHJvbWl1bQppbmRleCA1
ZTdkYWM2MGU1ODY2MjIyNDc2ODc4MmRmYzYzNmRiMzVlNmE2Y2NjLi40OGJjNTQzZjQxOGRlZWFh
YzNkY2E3NDc4NGI0ZTE1YmQ2Yzk5YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvUkVBRE1FLmNocm9taXVtCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9S
RUFETUUuY2hyb21pdW0KQEAgLTYsMTIgKzYsMTEgQEAgTGljZW5zZSBGaWxlOiBMSUNFTlNFCiBT
ZWN1cml0eSBDcml0aWNhbDogeWVzCiAKIERlc2NyaXB0aW9uOgotVGhlIGxpYmppbmdsZS93ZWJy
dGMvbGlibG91aXNfbmFjbCB1c2VzIGpzb25jcHAgZm9yIHNpZ25hbGluZyBtZXNzYWdlCi1zZXJp
YWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uIFRoaXMgbGlicmFyeSBpcyBhbHNvIHNoaXBw
ZWQgaW4gTmFDbAotU0RLIGFuZCB1c2VkIGluIHNldmVyYWwgZXhhbXBsZXMuCitKc29uQ3BwIGlz
IHVzZWQgYnkgbXVsdGlwbGUgcHJvamVjdHMgZm9yIHBhcnNpbmcgYW5kIGdlbmVyYXRpbmcgSlNP
TiBkYXRhLiBUaGlzCitwcm9qZWN0IGlzIG1pcnJvcmVkIGhlcmUgZnJvbSB0aGUgcHVibGljIEdp
dEh1YiBwcm9qZWN0LCB3aXRoIGEgY3VzdG9tIEJVSUxELmduCit0byBhbGxvdyBmb3IgYnVpbGRp
bmcgd2l0aCBvdXIgTmluamEgKyBHTiBjb25maWd1cmF0aW9uLiBUaGUgbWFpbiBwcm9qZWN0IHVz
ZXMKK01lc29uIG9yIENNYWtlIGZvciBidWlsZGluZy4KIAotTG9jYWwgbW9kaWZpY2F0aW9uczoK
LVRoZSBvdmVycmlkZXMgYXJlIHVzZWQgdG8gZWxpbWluYXRlIHN0YXRpYyBpbml0aWFsaXplcnMg
aW4ganNvbl92YWx1ZS5jcHAgYW5kCi1qc29uX3JlYWRlci5jcHAgYWRkcyBpbmNsdWRlcyBmb3Ig
PHN0cmluZz4gYW5kIDxpc3RyZWFtPiB0byBidWlsZCBvbiBsaWJjKysKLShodHRwczovL2xsdm0u
b3JnL1BSMjUyMzIpLCBhbmQgdG8gY2hhbmdlIHNvbWUgb25lLWJpdCBiaXQgZmllbGRzIHRvIHVu
c2lnbmVkCi1zbyB0aGF0IHRoZXkgY2FuIGhvbGQgdGhlICcxJyB2YWx1ZXMgdGhhdCBhcmUgc3Rv
cmVkIGluIHRoZW0uCitOb3RlOiB0byB1cGRhdGUgdGhpcyBwcm9qZWN0IHRvIGEgbmV3IHZlcnNp
b24sIHJlZ2VuZXJhdGluZyB0aGUgdmVyc2lvbi5oIGhlYWRlcgoraXMgcmVxdWlyZWQuIFRoaXMg
Y2FuIGJlIGRvbmUgYnkgaW5zdGFsbGluZyBlaXRoZXIgQ01ha2Ugb3IgTWVzb24sIGJ1aWxkaW5n
IHRoZQorcHJvamVjdCwgYW5kIGNvcHlpbmcgdGhlIGdlbmVyYXRlZCB2ZXJzaW9uLmggdG8gdGhl
IGdlbmVyYXRlZC8gc3ViZm9sZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL2Z1enplcnMvanNvbl9mdXp6ZXIuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
ZnV6emVycy9qc29uX2Z1enplci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjNiNjcwZDliNTdmMGQwYmI2MGQw
OGEyYmJlMzhmNTUyY2RmYmJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL2Z1enplcnMvanNvbl9mdXp6ZXIu
Y2MKQEAgLTAsMCArMSw3MyBAQAorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIENocm9taXVtIEF1dGhv
cnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorLy8KKy8vIEpzb25DcHAgZnV6emluZyB3cmFwcGVyIHRvIGhlbHAg
d2l0aCBhdXRvbWF0ZWQgZnV6eiB0ZXN0aW5nLgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5j
bHVkZSA8YXJyYXk+CisjaW5jbHVkZSA8Y2xpbWl0cz4KKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5j
bHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgInRoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9qc29uLmgiCisKK25hbWVzcGFjZSB7CisvLyBK
c29uQ3BwIGhhcyBhIGZldyBkaWZmZXJlbnQgcGFyc2luZyBvcHRpb25zLiBUaGUgY29kZSBiZWxv
dyBtYWtlcyBzdXJlIHRoYXQKKy8vIHRoZSBtb3N0IGludGVyc3RpbmcgdmFyaWFudHMgYXJlIHRl
c3RlZC4KK2VudW0geyBrQnVpbGRlckNvbmZpZ0RlZmF1bHQgPSAwLCBrQnVpbGRlckNvbmZpZ1N0
cmljdCwga051bUJ1aWxkZXJDb25maWcgfTsKK30gIC8vIG5hbWVzcGFjZQorCitzdGF0aWMgY29u
c3Qgc3RkOjphcnJheTxKc29uOjpDaGFyUmVhZGVyQnVpbGRlciwga051bUJ1aWxkZXJDb25maWc+
JgorSW5pdGlhbGl6ZSgpIHsKKyAgc3RhdGljIHN0ZDo6YXJyYXk8SnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXIsIGtOdW1CdWlsZGVyQ29uZmlnPiBidWlsZGVyc3t9OworCisgIEpzb246OkNoYXJSZWFk
ZXJCdWlsZGVyOjpzdHJpY3RNb2RlKAorICAgICAgJmJ1aWxkZXJzW2tCdWlsZGVyQ29uZmlnU3Ry
aWN0XS5zZXR0aW5nc18pOworCisgIHJldHVybiBidWlsZGVyczsKK30KKworZXh0ZXJuICJDIiBp
bnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6
ZSkgeworICBjb25zdCBhdXRvJiByZWFkZXJfYnVpbGRlcnMgPSBJbml0aWFsaXplKCk7CisKKyAg
Zm9yIChjb25zdCBhdXRvJiByZWFkZXJfYnVpbGRlciA6IHJlYWRlcl9idWlsZGVycykgeworICAg
IC8vIFBhcnNlIEpzb24uCisgICAgYXV0byByZWFkZXIgPQorICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SnNvbjo6Q2hhclJlYWRlcj4ocmVhZGVyX2J1aWxkZXIubmV3Q2hhclJlYWRlcigpKTsKKyAg
ICBKc29uOjpWYWx1ZSByb290OworICAgIGJvb2wgcmVzID0gcmVhZGVyLT5wYXJzZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSArIHNpemUpLCAmcm9vdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciAvKiBlcnJzICovKTsKKyAgICBpZiAo
IXJlcykgeworICAgICAgY29udGludWU7CisgICAgfQorCisgICAgLy8gV3JpdGUgYW5kIHJlLXJl
YWQganNvbi4KKyAgICBjb25zdCBKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyIHdyaXRlcl9idWls
ZGVyOworICAgIGF1dG8gd3JpdGVyID0KKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEpzb246OlN0
cmVhbVdyaXRlcj4od3JpdGVyX2J1aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICAgIHN0ZDo6
c3RyaW5nc3RyZWFtIG91dF9zdHJlYW07CisgICAgd3JpdGVyLT53cml0ZShyb290LCAmb3V0X3N0
cmVhbSk7CisgICAgc3RkOjpzdHJpbmcgb3V0cHV0X2pzb24gPSBvdXRfc3RyZWFtLnN0cigpOwor
CisgICAgSnNvbjo6VmFsdWUgcm9vdF9hZ2FpbjsKKyAgICByZXMgPSByZWFkZXItPnBhcnNlKG91
dHB1dF9qc29uLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9qc29uLmRh
dGEoKSArIG91dHB1dF9qc29uLmxlbmd0aCgpLCAmcm9vdF9hZ2FpbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG51bGxwdHIgLyogZXJycyAqLyk7CisgICAgaWYgKCFyZXMpIHsKKyAgICAgIGNv
bnRpbnVlOworICAgIH0KKworICAgIC8vIFJ1biBlcXVhbGl0eSB0ZXN0LgorICAgIC8vIE5vdGU6
IFRoaXMgYWN0dWFsbHkgY2F1c2VzIHRoZSBKc29uOjpWYWx1ZSB0cmVlIHRvIGJlIHRyYXZlcnNl
ZCBhbmQgYWxsCisgICAgLy8gdGhlIHZhbHVlcyB0byBiZSBkZXJlZmVyZW5jZWQgKHVudGlsIHR3
byBvZiB0aGVtIGFyZSBmb3VuZCBub3QgZXF1YWwpLAorICAgIC8vIHdoaWNoIGlzIGdyZWF0IGZv
ciBkZXRlY3RpbmcgbWVtb3J5IGNvcnJ1cHRpb24gYnVncyB3aGVuIGNvbXBpbGVkIHdpdGgKKyAg
ICAvLyBBZGRyZXNzU2FuaXRpemVyLiBUaGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGlzIGln
bm9yZWQsIGFzIGl0IGlzCisgICAgLy8gZXhwZWN0ZWQgdGhhdCBib3RoIHRoZSBvcmlnaW5hbCBh
bmQgdGhlIHJlLXJlYWQgdmVyc2lvbiB3aWxsIGRpZmZlciBmcm9tCisgICAgLy8gdGltZSB0byB0
aW1lIChlLmcuIGR1ZSB0byBmbG9hdGluZyBwb2ludCBhY2N1cmFjeSBsb3NzKS4KKyAgICAodm9p
ZCkocm9vdCA9PSByb290X2FnYWluKTsKKyAgfQorCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L2dlbmVyYXRlZC92ZXJzaW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvZ2VuZXJhdGVkL3ZlcnNpb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTc2
MDgyMWUyODNkNWUwN2U5MDZhZDE4ZTgzYzg5YzNjMGFiMzM1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL2dl
bmVyYXRlZC92ZXJzaW9uLmgKQEAgLTAsMCArMSwyMiBAQAorLy8gRE8gTk9UIEVESVQuIFRoaXMg
ZmlsZSAoYW5kICJ2ZXJzaW9uIikgaXMgYSB0ZW1wbGF0ZSB1c2VkIGJ5IHRoZSBidWlsZCBzeXN0
ZW0KKy8vIChlaXRoZXIgQ01ha2Ugb3IgTWVzb24pIHRvIGdlbmVyYXRlIGEgInZlcnNpb24uaCIg
aGVhZGVyIGZpbGUuCisjaWZuZGVmIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVECisjZGVmaW5lIEpT
T05fVkVSU0lPTl9IX0lOQ0xVREVECisKKyNkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1NUUklORyAi
MS45LjAiCisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9NQUpPUiAxCisjZGVmaW5lIEpTT05DUFBf
VkVSU0lPTl9NSU5PUiA5CisjZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9QQVRDSCAwCisjZGVmaW5l
IEpTT05DUFBfVkVSU0lPTl9RVUFMSUZJRVIKKyNkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX0hFWEEg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICgoSlNPTkNQUF9WRVJT
SU9OX01BSk9SIDw8IDI0KSB8IChKU09OQ1BQX1ZFUlNJT05fTUlOT1IgPDwgMTYpIHwgXAorICAg
KEpTT05DUFBfVkVSU0lPTl9QQVRDSCA8PCA4KSkKKworI2lmZGVmIEpTT05DUFBfVVNJTkdfU0VD
VVJFX01FTU9SWQorI3VuZGVmIEpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWQorI2VuZGlmCisj
ZGVmaW5lIEpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWSAwCisvLyBJZiBub24temVybywgdGhl
IGxpYnJhcnkgemVyb2VzIGFueSBtZW1vcnkgdGhhdCBpdCBoYXMgYWxsb2NhdGVkIGJlZm9yZQor
Ly8gaXQgZnJlZXMgaXRzIG1lbW9yeS4KKworI2VuZGlmICAvLyBKU09OX1ZFUlNJT05fSF9JTkNM
VURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL292ZXJyaWRlcy9pbmNsdWRlL2pzb24vdmFsdWUuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9vdmVycmlkZXMv
aW5jbHVkZS9qc29uL3ZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MDcy
NjAyMDM0ZTgxYjY3NGUzNTdjZWZkZGNhNDVlZDU3ODQ3M2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL292ZXJyaWRlcy9pbmNsdWRlL2pzb24vdmFsdWUuaAor
KysgL2Rldi9udWxsCkBAIC0xLDExMTEgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBC
YXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBw
dWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNk
aWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotI2lmbmRlZiBDUFBUTF9KU09OX0hf
SU5DTFVERUQKLSMgZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAotCi0jaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1ZGUgInRoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2luY2x1ZGUvanNvbi9mb3J3YXJkcy5oIgotI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05f
SVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDxzdHJpbmc+Ci0jIGluY2x1ZGUgPHZlY3Rvcj4K
LQotIyBpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKLSMgIGluY2x1ZGUgPG1hcD4KLSMg
ZWxzZQotIyAgaW5jbHVkZSA8Y3BwdGwvc21hbGxtYXAuaD4KLSMgZW5kaWYKLSMgaWZkZWYgSlNP
Tl9VU0VfQ1BQVEwKLSMgIGluY2x1ZGUgPGNwcHRsL2ZvcndhcmRzLmg+Ci0jIGVuZGlmCi0KLS8q
KiBcYnJpZWYgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pLgotICovCi1uYW1lc3Bh
Y2UgSnNvbiB7Ci0KLSAgIC8qKiBcYnJpZWYgVHlwZSBvZiB0aGUgdmFsdWUgaGVsZCBieSBhIFZh
bHVlIG9iamVjdC4KLSAgICAqLwotICAgZW51bSBWYWx1ZVR5cGUKLSAgIHsKLSAgICAgIG51bGxW
YWx1ZSA9IDAsIC8vLzwgJ251bGwnIHZhbHVlCi0gICAgICBpbnRWYWx1ZSwgICAgICAvLy88IHNp
Z25lZCBpbnRlZ2VyIHZhbHVlCi0gICAgICB1aW50VmFsdWUsICAgICAvLy88IHVuc2lnbmVkIGlu
dGVnZXIgdmFsdWUKLSAgICAgIHJlYWxWYWx1ZSwgICAgIC8vLzwgZG91YmxlIHZhbHVlCi0gICAg
ICBzdHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2YWx1ZQotICAgICAgYm9vbGVhblZh
bHVlLCAgLy8vPCBib29sIHZhbHVlCi0gICAgICBhcnJheVZhbHVlLCAgICAvLy88IGFycmF5IHZh
bHVlIChvcmRlcmVkIGxpc3QpCi0gICAgICBvYmplY3RWYWx1ZSAgICAvLy88IG9iamVjdCB2YWx1
ZSAoY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzKS4KLSAgIH07Ci0KLSAgIGVudW0gQ29t
bWVudFBsYWNlbWVudAotICAgewotICAgICAgY29tbWVudEJlZm9yZSA9IDAsICAgICAgICAvLy88
IGEgY29tbWVudCBwbGFjZWQgb24gdGhlIGxpbmUgYmVmb3JlIGEgdmFsdWUKLSAgICAgIGNvbW1l
bnRBZnRlck9uU2FtZUxpbmUsICAgLy8vPCBhIGNvbW1lbnQganVzdCBhZnRlciBhIHZhbHVlIG9u
IHRoZSBzYW1lIGxpbmUKLSAgICAgIGNvbW1lbnRBZnRlciwgICAgICAgICAgICAgLy8vPCBhIGNv
bW1lbnQgb24gdGhlIGxpbmUgYWZ0ZXIgYSB2YWx1ZSAob25seSBtYWtlIHNlbnNlIGZvciByb290
IHZhbHVlKQotICAgICAgbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50Ci0gICB9OwotCi0vLyMgaWZk
ZWYgSlNPTl9VU0VfQ1BQVEwKLS8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25z
dCBjaGFyICo+IEVudW1NZW1iZXJOYW1lczsKLS8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVy
YXRvcjxjb25zdCBWYWx1ZSAmPiBFbnVtVmFsdWVzOwotLy8jIGVuZGlmCi0KLSAgIC8qKiBcYnJp
ZWYgTGlnaHR3ZWlnaHQgd3JhcHBlciB0byB0YWcgc3RhdGljIHN0cmluZy4KLSAgICAqCi0gICAg
KiBWYWx1ZSBjb25zdHJ1Y3RvciBhbmQgb2JqZWN0VmFsdWUgbWVtYmVyIGFzc2lnbmVtZW50IHRh
a2VzIGFkdmFudGFnZSBvZiB0aGUKLSAgICAqIFN0YXRpY1N0cmluZyBhbmQgYXZvaWQgdGhlIGNv
c3Qgb2Ygc3RyaW5nIGR1cGxpY2F0aW9uIHdoZW4gc3RvcmluZyB0aGUKLSAgICAqIHN0cmluZyBv
ciB0aGUgbWVtYmVyIG5hbWUuCi0gICAgKgotICAgICogRXhhbXBsZSBvZiB1c2FnZToKLSAgICAq
IFxjb2RlCi0gICAgKiBKc29uOjpWYWx1ZSBhVmFsdWUoIFN0YXRpY1N0cmluZygic29tZSB0ZXh0
IikgKTsKLSAgICAqIEpzb246OlZhbHVlIG9iamVjdDsKLSAgICAqIHN0YXRpYyBjb25zdCBTdGF0
aWNTdHJpbmcgY29kZSgiY29kZSIpOwotICAgICogb2JqZWN0W2NvZGVdID0gMTIzNDsKLSAgICAq
IFxlbmRjb2RlCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFN0YXRpY1N0cmluZwotICAgewot
ICAgcHVibGljOgotICAgICAgZXhwbGljaXQgU3RhdGljU3RyaW5nKCBjb25zdCBjaGFyICpjenN0
cmluZyApCi0gICAgICAgICA6IHN0cl8oIGN6c3RyaW5nICkKLSAgICAgIHsKLSAgICAgIH0KLQot
ICAgICAgb3BlcmF0b3IgY29uc3QgY2hhciAqKCkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJl
dHVybiBzdHJfOwotICAgICAgfQotCi0gICAgICBjb25zdCBjaGFyICpjX3N0cigpIGNvbnN0Ci0g
ICAgICB7Ci0gICAgICAgICByZXR1cm4gc3RyXzsKLSAgICAgIH0KLQotICAgcHJpdmF0ZToKLSAg
ICAgIGNvbnN0IGNoYXIgKnN0cl87Ci0gICB9OwotCi0gICAvKiogXGJyaWVmIFJlcHJlc2VudHMg
YSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiB2YWx1ZS4KLSAgICAqCi0g
ICAgKiBUaGlzIGNsYXNzIGlzIGEgZGlzY3JpbWluYXRlZCB1bmlvbiB3cmFwcGVyIHRoYXQgY2Fu
IHJlcHJlc2VudHMgYToKLSAgICAqIC0gc2lnbmVkIGludGVnZXIgW3JhbmdlOiBWYWx1ZTo6bWlu
SW50IC0gVmFsdWU6Om1heEludF0KLSAgICAqIC0gdW5zaWduZWQgaW50ZWdlciAocmFuZ2U6IDAg
LSBWYWx1ZTo6bWF4VUludCkKLSAgICAqIC0gZG91YmxlCi0gICAgKiAtIFVURi04IHN0cmluZwot
ICAgICogLSBib29sZWFuCi0gICAgKiAtICdudWxsJwotICAgICogLSBhbiBvcmRlcmVkIGxpc3Qg
b2YgVmFsdWUKLSAgICAqIC0gY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzIChqYXZhc2Ny
aXB0IG9iamVjdCkKLSAgICAqCi0gICAgKiBUaGUgdHlwZSBvZiB0aGUgaGVsZCB2YWx1ZSBpcyBy
ZXByZXNlbnRlZCBieSBhICNWYWx1ZVR5cGUgYW5kIAotICAgICogY2FuIGJlIG9idGFpbmVkIHVz
aW5nIHR5cGUoKS4KLSAgICAqCi0gICAgKiB2YWx1ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNh
cnJheVZhbHVlIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBvcGVyYXRvcltdKCkgbWV0aG9kcy4gCi0g
ICAgKiBOb24gY29uc3QgbWV0aG9kcyB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNu
dWxsVmFsdWUgZWxlbWVudCAKLSAgICAqIGlmIGl0IGRvZXMgbm90IGV4aXN0LiAKLSAgICAqIFRo
ZSBzZXF1ZW5jZSBvZiBhbiAjYXJyYXlWYWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVzaXpl
IGFuZCBpbml0aWFsaXplZCAKLSAgICAqIHdpdGggI251bGxWYWx1ZS4gcmVzaXplKCkgY2FuIGJl
IHVzZWQgdG8gZW5sYXJnZSBvciB0cnVuY2F0ZSBhbiAjYXJyYXlWYWx1ZS4KLSAgICAqCi0gICAg
KiBUaGUgZ2V0KCkgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBvYnRhbmlzIGRlZmF1bHQgdmFsdWUg
aW4gdGhlIGNhc2UgdGhlIHJlcXVpcmVkIGVsZW1lbnQKLSAgICAqIGRvZXMgbm90IGV4aXN0Lgot
ICAgICoKLSAgICAqIEl0IGlzIHBvc3NpYmxlIHRvIGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBh
ICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcgCi0gICAgKiB0aGUgZ2V0TWVtYmVyTmFtZXMoKSBt
ZXRob2QuCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFZhbHVlIAotICAgewotICAgICAgZnJp
ZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZUludGVybmFsTGluazsKLSAgICAgIGZy
aWVuZCBjbGFzcyBWYWx1ZUludGVybmFsTWFwOwotIyBlbmRpZgotICAgcHVibGljOgotICAgICAg
dHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gTWVtYmVyczsKLSAgICAgIHR5cGVkZWYg
VmFsdWVJdGVyYXRvciBpdGVyYXRvcjsKLSAgICAgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9y
IGNvbnN0X2l0ZXJhdG9yOwotICAgICAgdHlwZWRlZiBKc29uOjpVSW50IFVJbnQ7Ci0gICAgICB0
eXBlZGVmIEpzb246OkludCBJbnQ7Ci0jIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICAg
ICB0eXBlZGVmIEpzb246OlVJbnQ2NCBVSW50NjQ7Ci0gICAgICB0eXBlZGVmIEpzb246OkludDY0
IEludDY0OwotI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICAgICB0eXBlZGVm
IEpzb246Okxhcmdlc3RJbnQgTGFyZ2VzdEludDsKLSAgICAgIHR5cGVkZWYgSnNvbjo6TGFyZ2Vz
dFVJbnQgTGFyZ2VzdFVJbnQ7Ci0gICAgICB0eXBlZGVmIEpzb246OkFycmF5SW5kZXggQXJyYXlJ
bmRleDsKLQotICAgICAgc3RhdGljIGNvbnN0IFZhbHVlJiBudWxsOwotICAgICAgLy8vIE1pbmlt
dW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFs
dWUuCi0gICAgICBzdGF0aWMgY29uc3QgTGFyZ2VzdEludCBtaW5MYXJnZXN0SW50OwotICAgICAg
Ly8vIE1heGltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEg
SnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMgY29uc3QgTGFyZ2VzdEludCBtYXhMYXJnZXN0SW50
OwotICAgICAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBz
dG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBMYXJnZXN0VUludCBt
YXhMYXJnZXN0VUludDsKLQotICAgICAgLy8vIE1pbmltdW0gc2lnbmVkIGludCB2YWx1ZSB0aGF0
IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBJbnQg
bWluSW50OwotICAgICAgLy8vIE1heGltdW0gc2lnbmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBz
dG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBJbnQgbWF4SW50Owot
ICAgICAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBp
biBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IFVJbnQgbWF4VUludDsKLQotIyBp
ZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgLy8vIE1pbmltdW0gc2lnbmVkIDY0IGJp
dHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAg
c3RhdGljIGNvbnN0IEludDY0IG1pbkludDY0OwotICAgICAgLy8vIE1heGltdW0gc2lnbmVkIDY0
IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAg
ICAgc3RhdGljIGNvbnN0IEludDY0IG1heEludDY0OwotICAgICAgLy8vIE1heGltdW0gdW5zaWdu
ZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUu
Ci0gICAgICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJbnQ2NDsKLSNlbmRpZiAvLyBkZWZpbmVk
KEpTT05fSEFTX0lOVDY0KQotCi0gICBwcml2YXRlOgotI2lmbmRlZiBKU09OQ1BQX0RPQ19FWENM
VURFX0lNUExFTUVOVEFUSU9OCi0jIGlmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAK
LSAgICAgIGNsYXNzIENaU3RyaW5nIAotICAgICAgewotICAgICAgcHVibGljOgotICAgICAgICAg
ZW51bSBEdXBsaWNhdGlvblBvbGljeSAKLSAgICAgICAgIHsKLSAgICAgICAgICAgIG5vRHVwbGlj
YXRpb24gPSAwLAotICAgICAgICAgICAgZHVwbGljYXRlLAotICAgICAgICAgICAgZHVwbGljYXRl
T25Db3B5Ci0gICAgICAgICB9OwotICAgICAgICAgQ1pTdHJpbmcoIEFycmF5SW5kZXggaW5kZXgg
KTsKLSAgICAgICAgIENaU3RyaW5nKCBjb25zdCBjaGFyICpjc3RyLCBEdXBsaWNhdGlvblBvbGlj
eSBhbGxvY2F0ZSApOwotICAgICAgICAgQ1pTdHJpbmcoIGNvbnN0IENaU3RyaW5nICZvdGhlciAp
OwotICAgICAgICAgfkNaU3RyaW5nKCk7Ci0gICAgICAgICBDWlN0cmluZyAmb3BlcmF0b3IgPSgg
Y29uc3QgQ1pTdHJpbmcgJm90aGVyICk7Ci0gICAgICAgICBib29sIG9wZXJhdG9yPCggY29uc3Qg
Q1pTdHJpbmcgJm90aGVyICkgY29uc3Q7Ci0gICAgICAgICBib29sIG9wZXJhdG9yPT0oIGNvbnN0
IENaU3RyaW5nICZvdGhlciApIGNvbnN0OwotICAgICAgICAgQXJyYXlJbmRleCBpbmRleCgpIGNv
bnN0OwotICAgICAgICAgY29uc3QgY2hhciAqY19zdHIoKSBjb25zdDsKLSAgICAgICAgIGJvb2wg
aXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKLSAgICAgIHByaXZhdGU6Ci0gICAgICAgICB2b2lkIHN3
YXAoIENaU3RyaW5nICZvdGhlciApOwotICAgICAgICAgY29uc3QgY2hhciAqY3N0cl87Ci0gICAg
ICAgICBBcnJheUluZGV4IGluZGV4XzsKLSAgICAgIH07Ci0KLSAgIHB1YmxpYzoKLSMgIGlmbmRl
ZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAotICAgICAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmlu
ZywgVmFsdWU+IE9iamVjdFZhbHVlczsKLSMgIGVsc2UKLSAgICAgIHR5cGVkZWYgQ3BwVEw6OlNt
YWxsTWFwPENaU3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOwotIyAgZW5kaWYgLy8gaWZuZGVm
IEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCi0jIGVuZGlmIC8vIGlmbmRlZiBKU09OX1ZBTFVFX1VT
RV9JTlRFUk5BTF9NQVAKLSNlbmRpZiAvLyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBM
RU1FTlRBVElPTgotCi0gICBwdWJsaWM6Ci0gICAgICAvKiogXGJyaWVmIENyZWF0ZSBhIGRlZmF1
bHQgVmFsdWUgb2YgdGhlIGdpdmVuIHR5cGUuCi0KLSAgICAgICAgVGhpcyBpcyBhIHZlcnkgdXNl
ZnVsIGNvbnN0cnVjdG9yLgotICAgICAgICBUbyBjcmVhdGUgYW4gZW1wdHkgYXJyYXksIHBhc3Mg
YXJyYXlWYWx1ZS4KLSAgICAgICAgVG8gY3JlYXRlIGFuIGVtcHR5IG9iamVjdCwgcGFzcyBvYmpl
Y3RWYWx1ZS4KLSAgICAgICAgQW5vdGhlciBWYWx1ZSBjYW4gdGhlbiBiZSBzZXQgdG8gdGhpcyBv
bmUgYnkgYXNzaWdubWVudC4KLSAgICBUaGlzIGlzIHVzZWZ1bCBzaW5jZSBjbGVhcigpIGFuZCBy
ZXNpemUoKSB3aWxsIG5vdCBhbHRlciB0eXBlcy4KLQotICAgICAgICBFeGFtcGxlczoKLSAgICBc
Y29kZQotICAgIEpzb246OlZhbHVlIG51bGxfdmFsdWU7IC8vIG51bGwKLSAgICBKc29uOjpWYWx1
ZSBhcnJfdmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSk7IC8vIFtdCi0gICAgSnNvbjo6VmFsdWUgb2Jq
X3ZhbHVlKEpzb246Om9iamVjdFZhbHVlKTsgLy8ge30KLSAgICBcZW5kY29kZQotICAgICAgKi8K
LSAgICAgIFZhbHVlKCBWYWx1ZVR5cGUgdHlwZSA9IG51bGxWYWx1ZSApOwotICAgICAgVmFsdWUo
IEludCB2YWx1ZSApOwotICAgICAgVmFsdWUoIFVJbnQgdmFsdWUgKTsKLSNpZiBkZWZpbmVkKEpT
T05fSEFTX0lOVDY0KQotICAgICAgVmFsdWUoIEludDY0IHZhbHVlICk7Ci0gICAgICBWYWx1ZSgg
VUludDY0IHZhbHVlICk7Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAg
ICAgIFZhbHVlKCBkb3VibGUgdmFsdWUgKTsKLSAgICAgIFZhbHVlKCBjb25zdCBjaGFyICp2YWx1
ZSApOwotICAgICAgVmFsdWUoIGNvbnN0IGNoYXIgKmJlZ2luVmFsdWUsIGNvbnN0IGNoYXIgKmVu
ZFZhbHVlICk7Ci0gICAgICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSB2YWx1ZSBmcm9tIGEgc3Rh
dGljIHN0cmluZy4KLQotICAgICAgICogTGlrZSBvdGhlciB2YWx1ZSBzdHJpbmcgY29uc3RydWN0
b3IgYnV0IGRvIG5vdCBkdXBsaWNhdGUgdGhlIHN0cmluZyBmb3IKLSAgICAgICAqIGludGVybmFs
IHN0b3JhZ2UuIFRoZSBnaXZlbiBzdHJpbmcgbXVzdCByZW1haW4gYWxpdmUgYWZ0ZXIgdGhlIGNh
bGwgdG8gdGhpcwotICAgICAgICogY29uc3RydWN0b3IuCi0gICAgICAgKiBFeGFtcGxlIG9mIHVz
YWdlOgotICAgICAgICogXGNvZGUKLSAgICAgICAqIEpzb246OlZhbHVlIGFWYWx1ZSggU3RhdGlj
U3RyaW5nKCJzb21lIHRleHQiKSApOwotICAgICAgICogXGVuZGNvZGUKLSAgICAgICAqLwotICAg
ICAgVmFsdWUoIGNvbnN0IFN0YXRpY1N0cmluZyAmdmFsdWUgKTsKLSAgICAgIFZhbHVlKCBjb25z
dCBzdGQ6OnN0cmluZyAmdmFsdWUgKTsKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAgICAgIFZh
bHVlKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJnZhbHVlICk7Ci0jIGVuZGlmCi0gICAgICBW
YWx1ZSggYm9vbCB2YWx1ZSApOwotICAgICAgVmFsdWUoIGNvbnN0IFZhbHVlICZvdGhlciApOwot
ICAgICAgflZhbHVlKCk7Ci0KLSAgICAgIFZhbHVlICZvcGVyYXRvcj0oIGNvbnN0IFZhbHVlICZv
dGhlciApOwotICAgICAgLy8vIFN3YXAgdmFsdWVzLgotICAgICAgLy8vIFxub3RlIEN1cnJlbnRs
eSwgY29tbWVudHMgYXJlIGludGVudGlvbmFsbHkgbm90IHN3YXBwZWQsIGZvcgotICAgICAgLy8v
IGJvdGggbG9naWMgYW5kIGVmZmljaWVuY3kuCi0gICAgICB2b2lkIHN3YXAoIFZhbHVlICZvdGhl
ciApOwotCi0gICAgICBWYWx1ZVR5cGUgdHlwZSgpIGNvbnN0OwotCi0gICAgICBib29sIG9wZXJh
dG9yIDwoIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotICAgICAgYm9vbCBvcGVyYXRvciA8
PSggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAgICBib29sIG9wZXJhdG9yID49KCBj
b25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLSAgICAgIGJvb2wgb3BlcmF0b3IgPiggY29uc3Qg
VmFsdWUgJm90aGVyICkgY29uc3Q7Ci0KLSAgICAgIGJvb2wgb3BlcmF0b3IgPT0oIGNvbnN0IFZh
bHVlICZvdGhlciApIGNvbnN0OwotICAgICAgYm9vbCBvcGVyYXRvciAhPSggY29uc3QgVmFsdWUg
Jm90aGVyICkgY29uc3Q7Ci0KLSAgICAgIGludCBjb21wYXJlKCBjb25zdCBWYWx1ZSAmb3RoZXIg
KSBjb25zdDsKLQotICAgICAgY29uc3QgY2hhciAqYXNDU3RyaW5nKCkgY29uc3Q7Ci0gICAgICBz
dGQ6OnN0cmluZyBhc1N0cmluZygpIGNvbnN0OwotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotICAg
ICAgQ3BwVEw6OkNvbnN0U3RyaW5nIGFzQ29uc3RTdHJpbmcoKSBjb25zdDsKLSMgZW5kaWYKLSAg
ICAgIEludCBhc0ludCgpIGNvbnN0OwotICAgICAgVUludCBhc1VJbnQoKSBjb25zdDsKLSNpZiBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgSW50NjQgYXNJbnQ2NCgpIGNvbnN0OwotICAg
ICAgVUludDY0IGFzVUludDY0KCkgY29uc3Q7Ci0jZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hB
U19JTlQ2NCkKLSAgICAgIExhcmdlc3RJbnQgYXNMYXJnZXN0SW50KCkgY29uc3Q7Ci0gICAgICBM
YXJnZXN0VUludCBhc0xhcmdlc3RVSW50KCkgY29uc3Q7Ci0gICAgICBmbG9hdCBhc0Zsb2F0KCkg
Y29uc3Q7Ci0gICAgICBkb3VibGUgYXNEb3VibGUoKSBjb25zdDsKLSAgICAgIGJvb2wgYXNCb29s
KCkgY29uc3Q7Ci0KLSAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7Ci0gICAgICBib29sIGlzQm9v
bCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludDY0
KCkgY29uc3Q7Ci0gICAgICBib29sIGlzVUludCgpIGNvbnN0OwotICAgICAgYm9vbCBpc1VJbnQ2
NCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludGVncmFsKCkgY29uc3Q7Ci0gICAgICBib29sIGlz
RG91YmxlKCkgY29uc3Q7Ci0gICAgICBib29sIGlzTnVtZXJpYygpIGNvbnN0OwotICAgICAgYm9v
bCBpc1N0cmluZygpIGNvbnN0OwotICAgICAgYm9vbCBpc0FycmF5KCkgY29uc3Q7Ci0gICAgICBi
b29sIGlzT2JqZWN0KCkgY29uc3Q7Ci0KLSAgICAgIGJvb2wgaXNDb252ZXJ0aWJsZVRvKCBWYWx1
ZVR5cGUgb3RoZXIgKSBjb25zdDsKLQotICAgICAgLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJy
YXkgb3Igb2JqZWN0Ci0gICAgICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKLQotICAgICAgLy8v
IFxicmllZiBSZXR1cm4gdHJ1ZSBpZiBlbXB0eSBhcnJheSwgZW1wdHkgb2JqZWN0LCBvciBudWxs
OwotICAgICAgLy8vIG90aGVyd2lzZSwgZmFsc2UuCi0gICAgICBib29sIGVtcHR5KCkgY29uc3Q7
Ci0KLSAgICAgIC8vLyBSZXR1cm4gaXNOdWxsKCkKLSAgICAgIGJvb2wgb3BlcmF0b3IhKCkgY29u
c3Q7Ci0KLSAgICAgIC8vLyBSZW1vdmUgYWxsIG9iamVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVt
ZW50cy4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlLCBvYmplY3RWYWx1ZSwg
b3IgbnVsbFZhbHVlCi0gICAgICAvLy8gXHBvc3QgdHlwZSgpIGlzIHVuY2hhbmdlZAotICAgICAg
dm9pZCBjbGVhcigpOwotCi0gICAgICAvLy8gUmVzaXplIHRoZSBhcnJheSB0byBzaXplIGVsZW1l
bnRzLiAKLSAgICAgIC8vLyBOZXcgZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIHRvIG51bGwuCi0g
ICAgICAvLy8gTWF5IG9ubHkgYmUgY2FsbGVkIG9uIG51bGxWYWx1ZSBvciBhcnJheVZhbHVlLgot
ICAgICAgLy8vIFxwcmUgdHlwZSgpIGlzIGFycmF5VmFsdWUgb3IgbnVsbFZhbHVlCi0gICAgICAv
Ly8gXHBvc3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKLSAgICAgIHZvaWQgcmVzaXplKCBBcnJheUlu
ZGV4IHNpemUgKTsKLQotICAgICAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJh
c2VkIGluZGV4ICkuCi0gICAgICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3MgdGhhbiBp
bmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlIGluc2VydGVkCi0gICAgICAvLy8gaW4g
dGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgICAgIC8vLyAoWW91IG1h
eSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5n
dWlzaAotICAgICAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBz
dHJpbmcuKQotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIEFycmF5SW5kZXggaW5kZXggKTsKLQot
ICAgICAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCi0g
ICAgICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3MgdGhhbiBpbmRleCBlbGVtZW50LCB0
aGVuIG51bGwgdmFsdWUgYXJlIGluc2VydGVkCi0gICAgICAvLy8gaW4gdGhlIGFycmF5IHNvIHRo
YXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgICAgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAn
dmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAgICAgLy8v
ICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICAgICAg
VmFsdWUgJm9wZXJhdG9yW10oIGludCBpbmRleCApOwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFy
cmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAgICAgLy8vIChZb3UgbWF5IG5lZWQg
dG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCi0g
ICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4p
Ci0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggQXJyYXlJbmRleCBpbmRleCApIGNvbnN0
OwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXgg
KQotICAgICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3Vy
IGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0
b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3Jb
XSggaW50IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMg
YXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywgcmV0dXJucyB0aGUgZWxlbWVudCB2YWx1ZSwgCi0g
ICAgICAvLy8gb3RoZXJ3aXNlIHJldHVybnMgZGVmYXVsdFZhbHVlLgotICAgICAgVmFsdWUgZ2V0
KCBBcnJheUluZGV4IGluZGV4LCAKLSAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1
bHRWYWx1ZSApIGNvbnN0OwotICAgICAgLy8vIFJldHVybiB0cnVlIGlmIGluZGV4IDwgc2l6ZSgp
LgotICAgICAgYm9vbCBpc1ZhbGlkSW5kZXgoIEFycmF5SW5kZXggaW5kZXggKSBjb25zdDsKLSAg
ICAgIC8vLyBcYnJpZWYgQXBwZW5kIHZhbHVlIHRvIGFycmF5IGF0IHRoZSBlbmQuCi0gICAgICAv
Ly8KLSAgICAgIC8vLyBFcXVpdmFsZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9
IHZhbHVlOwotICAgICAgVmFsdWUgJmFwcGVuZCggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0KLSAg
ICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVt
YmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0
IGNoYXIgKmtleSApOwotICAgICAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwg
cmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoIHRoYXQgbmFtZS4KLSAgICAg
IGNvbnN0IFZhbHVlICZvcGVyYXRvcltdKCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLSAgICAg
IC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVy
IGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IHN0
ZDo6c3RyaW5nICZrZXkgKTsKLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5h
bWUsIHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aCB0aGF0IG5hbWUuCi0g
ICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApIGNv
bnN0OwotICAgICAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNy
ZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotCi0gICAgICAgKiBJZiB0
aGUgb2JqZWN0IGFzIG5vIGVudHJ5IGZvciB0aGF0IG5hbWUsIHRoZW4gdGhlIG1lbWJlciBuYW1l
IHVzZWQgdG8gc3RvcmUKLSAgICAgICAqIHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQu
Ci0gICAgICAgKiBFeGFtcGxlIG9mIHVzZToKLSAgICAgICAqIFxjb2RlCi0gICAgICAgKiBKc29u
OjpWYWx1ZSBvYmplY3Q7Ci0gICAgICAgKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUo
ImNvZGUiKTsKLSAgICAgICAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7Ci0gICAgICAgKiBcZW5kY29k
ZQotICAgICAgICovCi0gICAgICBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3QgU3RhdGljU3RyaW5n
ICZrZXkgKTsKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2Jq
ZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4
aXN0LgotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAm
a2V5ICk7Ci0gICAgICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5z
IG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGggdGhhdCBuYW1lLgotICAgICAgY29uc3Qg
VmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICkgY29uc3Q7
Ci0jIGVuZGlmCi0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4
aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAgVmFsdWUgZ2V0KCBjb25zdCBjaGFy
ICprZXksIAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29u
c3Q7Ci0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBk
ZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAgVmFsdWUgZ2V0KCBjb25zdCBzdGQ6OnN0cmlu
ZyAma2V5LAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29u
c3Q7Ci0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIg
bmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAgVmFs
dWUgZ2V0KCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSwKLSAgICAgICAgICAgICAgICAg
Y29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0OwotIyBlbmRpZgotICAgICAgLy8vIFxi
cmllZiBSZW1vdmUgYW5kIHJldHVybiB0aGUgbmFtZWQgbWVtYmVyLiAgCi0gICAgICAvLy8KLSAg
ICAgIC8vLyBEbyBub3RoaW5nIGlmIGl0IGRpZCBub3QgZXhpc3QuCi0gICAgICAvLy8gXHJldHVy
biB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBv
YmplY3RWYWx1ZSBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFu
Z2VkCi0gICAgICBWYWx1ZSByZW1vdmVNZW1iZXIoIGNvbnN0IGNoYXIqIGtleSApOwotICAgICAg
Ly8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqKQotICAgICAgVmFsdWUgcmVtb3Zl
TWVtYmVyKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICk7Ci0KLSAgICAgIC8vLyBSZXR1cm4gdHJ1
ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCi0gICAgICBib29sIGlzTWVt
YmVyKCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLSAgICAgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0
aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCi0gICAgICBib29sIGlzTWVtYmVyKCBj
b25zdCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3Q7Ci0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0g
ICAgICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5
LgotICAgICAgYm9vbCBpc01lbWJlciggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXkgKSBj
b25zdDsKLSMgZW5kaWYKLQotICAgICAgLy8vIFxicmllZiBSZXR1cm4gYSBsaXN0IG9mIHRoZSBt
ZW1iZXIgbmFtZXMuCi0gICAgICAvLy8KLSAgICAgIC8vLyBJZiBudWxsLCByZXR1cm4gYW4gZW1w
dHkgbGlzdC4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxsVmFs
dWUKLSAgICAgIC8vLyBccG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBu
dWxsVmFsdWUKLSAgICAgIE1lbWJlcnMgZ2V0TWVtYmVyTmFtZXMoKSBjb25zdDsKLQotLy8jIGlm
ZGVmIEpTT05fVVNFX0NQUFRMCi0vLyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFt
ZXMoKSBjb25zdDsKLS8vICAgICAgRW51bVZhbHVlcyBlbnVtVmFsdWVzKCkgY29uc3Q7Ci0vLyMg
ZW5kaWYKLQotICAgICAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCi0g
ICAgICB2b2lkIHNldENvbW1lbnQoIGNvbnN0IGNoYXIgKmNvbW1lbnQsCi0gICAgICAgICAgICAg
ICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICk7Ci0gICAgICAvLy8gQ29tbWVu
dHMgbXVzdCBiZSAvLy4uLiBvciAvKiAuLi4gKi8KLSAgICAgIHZvaWQgc2V0Q29tbWVudCggY29u
c3Qgc3RkOjpzdHJpbmcgJmNvbW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRQ
bGFjZW1lbnQgcGxhY2VtZW50ICk7Ci0gICAgICBib29sIGhhc0NvbW1lbnQoIENvbW1lbnRQbGFj
ZW1lbnQgcGxhY2VtZW50ICkgY29uc3Q7Ci0gICAgICAvLy8gSW5jbHVkZSBkZWxpbWl0ZXJzIGFu
ZCBlbWJlZGRlZCBuZXdsaW5lcy4KLSAgICAgIHN0ZDo6c3RyaW5nIGdldENvbW1lbnQoIENvbW1l
bnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29uc3Q7Ci0KLSAgICAgIHN0ZDo6c3RyaW5nIHRvU3R5
bGVkU3RyaW5nKCkgY29uc3Q7Ci0KLSAgICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3Q7
Ci0gICAgICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdDsKLQotICAgICAgaXRlcmF0b3IgYmVn
aW4oKTsKLSAgICAgIGl0ZXJhdG9yIGVuZCgpOwotCi0gICBwcml2YXRlOgotICAgICAgVmFsdWUg
JnJlc29sdmVSZWZlcmVuY2UoIGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBpc1N0YXRpYyApOwotCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lO
VEVSTkFMX01BUAotICAgICAgaW5saW5lIGJvb2wgaXNJdGVtQXZhaWxhYmxlKCkgY29uc3QKLSAg
ICAgIHsKLSAgICAgICAgIHJldHVybiBpdGVtSXNVc2VkXyA9PSAwOwotICAgICAgfQotCi0gICAg
ICBpbmxpbmUgdm9pZCBzZXRJdGVtVXNlZCggYm9vbCBpc1VzZWQgPSB0cnVlICkKLSAgICAgIHsK
LSAgICAgICAgIGl0ZW1Jc1VzZWRfID0gaXNVc2VkID8gMSA6IDA7Ci0gICAgICB9Ci0KLSAgICAg
IGlubGluZSBib29sIGlzTWVtYmVyTmFtZVN0YXRpYygpIGNvbnN0Ci0gICAgICB7Ci0gICAgICAg
ICByZXR1cm4gbWVtYmVyTmFtZUlzU3RhdGljXyA9PSAwOwotICAgICAgfQotCi0gICAgICBpbmxp
bmUgdm9pZCBzZXRNZW1iZXJOYW1lSXNTdGF0aWMoIGJvb2wgaXNTdGF0aWMgKQotICAgICAgewot
ICAgICAgICAgbWVtYmVyTmFtZUlzU3RhdGljXyA9IGlzU3RhdGljID8gMSA6IDA7Ci0gICAgICB9
Ci0jIGVuZGlmIC8vICMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0KLSAgIHBy
aXZhdGU6Ci0gICAgICBzdHJ1Y3QgQ29tbWVudEluZm8KLSAgICAgIHsKLSAgICAgICAgIENvbW1l
bnRJbmZvKCk7Ci0gICAgICAgICB+Q29tbWVudEluZm8oKTsKLQotICAgICAgICAgdm9pZCBzZXRD
b21tZW50KCBjb25zdCBjaGFyICp0ZXh0ICk7Ci0KLSAgICAgICAgIGNoYXIgKmNvbW1lbnRfOwot
ICAgICAgfTsKLQotICAgICAgLy9zdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0KLSAgICAgIC8v
ewotICAgICAgLy8gICB0eXBlZGVmIGNvbnN0IGNoYXIgKnJlc3VsdF90eXBlOwotICAgICAgLy8g
ICBjb25zdCBjaGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0Ci0g
ICAgICAvLyAgIHsKLSAgICAgIC8vICAgICAgcmV0dXJuIG5hbWUuY19zdHIoKTsKLSAgICAgIC8v
ICAgfQotICAgICAgLy99OwotCi0gICAgICB1bmlvbiBWYWx1ZUhvbGRlcgotICAgICAgewotICAg
ICAgICAgTGFyZ2VzdEludCBpbnRfOwotICAgICAgICAgTGFyZ2VzdFVJbnQgdWludF87Ci0gICAg
ICAgICBkb3VibGUgcmVhbF87Ci0gICAgICAgICBib29sIGJvb2xfOwotICAgICAgICAgY2hhciAq
c3RyaW5nXzsKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICAgICBW
YWx1ZUludGVybmFsQXJyYXkgKmFycmF5XzsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXAgKm1h
cF87Ci0jZWxzZQotICAgICAgICAgT2JqZWN0VmFsdWVzICptYXBfOwotIyBlbmRpZgotICAgICAg
fSB2YWx1ZV87Ci0gICAgICBWYWx1ZVR5cGUgdHlwZV8gOiA4OwotICAgICAgLy8gT25lLWJpdCBi
aXRmaWVsZHMgbXVzdCBiZSB1bnNpZ25lZCB0byBhbGxvdyBzdG9yaW5nIDEuCi0gICAgICAvLyBU
aGV5IG11c3QgYmUgMzItYml0cyB0byBzaGFyZSBzdG9yYWdlIHdpdGggVmFsdWVIb2xkZXIuCi0g
ICAgICB1bnNpZ25lZCBpbnQgYWxsb2NhdGVkXyA6IDE7Ci0jIGlmZGVmIEpTT05fVkFMVUVfVVNF
X0lOVEVSTkFMX01BUAotICAgICAgdW5zaWduZWQgaW50IGl0ZW1Jc1VzZWRfIDogMTsgICAgICAv
LyB1c2VkIGJ5IHRoZSBWYWx1ZUludGVybmFsTWFwIGNvbnRhaW5lci4KLSAgICAgIHVuc2lnbmVk
IGludCBtZW1iZXJOYW1lSXNTdGF0aWNfIDogMTsgLy8gdXNlZCBieSB0aGUgVmFsdWVJbnRlcm5h
bE1hcCBjb250YWluZXIuCi0jIGVuZGlmCi0gICAgICBDb21tZW50SW5mbyAqY29tbWVudHNfOwot
ICAgfTsKLQotCi0gICAvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6IHJlcHJl
c2VudHMgYW4gZWxlbWVudCBvZiB0aGUgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCi0gICAgKi8K
LSAgIGNsYXNzIFBhdGhBcmd1bWVudAotICAgewotICAgcHVibGljOgotICAgICAgZnJpZW5kIGNs
YXNzIFBhdGg7Ci0KLSAgICAgIFBhdGhBcmd1bWVudCgpOwotICAgICAgUGF0aEFyZ3VtZW50KCBB
cnJheUluZGV4IGluZGV4ICk7Ci0gICAgICBQYXRoQXJndW1lbnQoIGNvbnN0IGNoYXIgKmtleSAp
OwotICAgICAgUGF0aEFyZ3VtZW50KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICk7Ci0KLSAgIHBy
aXZhdGU6Ci0gICAgICBlbnVtIEtpbmQKLSAgICAgIHsKLSAgICAgICAgIGtpbmROb25lID0gMCwK
LSAgICAgICAgIGtpbmRJbmRleCwKLSAgICAgICAgIGtpbmRLZXkKLSAgICAgIH07Ci0gICAgICBz
dGQ6OnN0cmluZyBrZXlfOwotICAgICAgQXJyYXlJbmRleCBpbmRleF87Ci0gICAgICBLaW5kIGtp
bmRfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5kIHVudGVzdGVkOiBy
ZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCi0gICAgKgotICAgICogU3ludGF4
OgotICAgICogLSAiLiIgPT4gcm9vdCBub2RlCi0gICAgKiAtICIuW25dIiA9PiBlbGVtZW50cyBh
dCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2YWx1ZSkKLSAgICAqIC0gIi5uYW1l
IiA9PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9kZSAoYW4gb2JqZWN0IHZhbHVlKQot
ICAgICogLSAiLm5hbWUxLm5hbWUyLm5hbWUzIgotICAgICogLSAiLlswXVsxXVsyXS5uYW1lMVsz
XSIKLSAgICAqIC0gIi4lIiA9PiBtZW1iZXIgbmFtZSBpcyBwcm92aWRlZCBhcyBwYXJhbWV0ZXIK
LSAgICAqIC0gIi5bJV0iID0+IGluZGV4IGlzIHByb3ZpZWQgYXMgcGFyYW1ldGVyCi0gICAgKi8K
LSAgIGNsYXNzIFBhdGgKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIFBhdGgoIGNvbnN0IHN0ZDo6
c3RyaW5nICZwYXRoLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMSA9IFBhdGhB
cmd1bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMiA9IFBhdGhBcmd1
bWVudCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMyA9IFBhdGhBcmd1bWVu
dCgpLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhNCA9IFBhdGhBcmd1bWVudCgp
LAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhNSA9IFBhdGhBcmd1bWVudCgpICk7
Ci0KLSAgICAgIGNvbnN0IFZhbHVlICZyZXNvbHZlKCBjb25zdCBWYWx1ZSAmcm9vdCApIGNvbnN0
OwotICAgICAgVmFsdWUgcmVzb2x2ZSggY29uc3QgVmFsdWUgJnJvb3QsIAotICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0OwotICAgICAgLy8vIENy
ZWF0ZXMgdGhlICJwYXRoIiB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBub2RlIGFuZCByZXR1cm5z
IGEgcmVmZXJlbmNlIG9uIHRoZSBub2RlLgotICAgICAgVmFsdWUgJm1ha2UoIFZhbHVlICZyb290
ICkgY29uc3Q7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB0eXBlZGVmIHN0ZDo6dmVjdG9yPGNvbnN0
IFBhdGhBcmd1bWVudCAqPiBJbkFyZ3M7Ci0gICAgICB0eXBlZGVmIHN0ZDo6dmVjdG9yPFBhdGhB
cmd1bWVudD4gQXJnczsKLQotICAgICAgdm9pZCBtYWtlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcg
JnBhdGgsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluICk7Ci0gICAgICB2
b2lkIGFkZFBhdGhJbkFyZyggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEluQXJncyAmaW4sIAotICAgICAgICAgICAgICAgICAgICAgICAg
IEluQXJnczo6Y29uc3RfaXRlcmF0b3IgJml0SW5BcmcsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kICk7Ci0gICAgICB2b2lkIGludmFsaWRQYXRoKCBj
b25zdCBzdGQ6OnN0cmluZyAmcGF0aCwgCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG9j
YXRpb24gKTsKLQotICAgICAgQXJncyBhcmdzXzsKLSAgIH07Ci0KLQotCi0jaWZkZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAvKiogXGJyaWVmIEFsbG9jYXRvciB0byBjdXN0b21p
emUgVmFsdWUgaW50ZXJuYWwgbWFwLgotICAgICogQmVsb3cgaXMgYW4gZXhhbXBsZSBvZiBhIHNp
bXBsZSBpbXBsZW1lbnRhdGlvbiAoZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseQotICAg
ICogdXNlIG1lbW9yeSBwb29sIGZvciBzcGVlZCkuCi0gICAgKiBcY29kZQotICAgICAgY2xhc3Mg
RGVmYXVsdFZhbHVlTWFwQWxsb2NhdG9yIDogcHVibGljIFZhbHVlTWFwQWxsb2NhdG9yCi0gICAg
ICB7Ci0gICAgICBwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1ZU1hcEFsbG9jYXRvcgot
ICAgICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdNYXAoKQotICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFsTWFwKCk7Ci0gICAgICAgICB9Ci0K
LSAgICAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwQ29weSggY29uc3QgVmFs
dWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5l
dyBWYWx1ZUludGVybmFsTWFwKCBvdGhlciApOwotICAgICAgICAgfQotCi0gICAgICAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJ1Y3RNYXAoIFZhbHVlSW50ZXJuYWxNYXAgKm1hcCApCi0gICAgICAgICB7
Ci0gICAgICAgICAgICBkZWxldGUgbWFwOwotICAgICAgICAgfQotCi0gICAgICAgICB2aXJ0dWFs
IFZhbHVlSW50ZXJuYWxMaW5rICphbGxvY2F0ZU1hcEJ1Y2tldHMoIHVuc2lnbmVkIGludCBzaXpl
ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbExpbmtb
c2l6ZV07Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwQnVj
a2V0cyggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtzICkKLSAgICAgICAgIHsKLSAgICAgICAgICAg
IGRlbGV0ZSBbXSBsaW5rczsKLSAgICAgICAgIH0KLQotICAgICAgICAgdmlydHVhbCBWYWx1ZUlu
dGVybmFsTGluayAqYWxsb2NhdGVNYXBMaW5rKCkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgVmFsdWVJbnRlcm5hbExpbmsoKTsKLSAgICAgICAgIH0KLQotICAgICAgICAgdmly
dHVhbCB2b2lkIHJlbGVhc2VNYXBMaW5rKCBWYWx1ZUludGVybmFsTGluayAqbGluayApCi0gICAg
ICAgICB7Ci0gICAgICAgICAgICBkZWxldGUgbGluazsKLSAgICAgICAgIH0KLSAgICAgIH07Ci0g
ICAgKiBcZW5kY29kZQotICAgICovIAotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVNYXBBbGxvY2F0
b3IKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIHZpcnR1YWwgflZhbHVlTWFwQWxsb2NhdG9yKCk7
Ci0gICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcCgpID0gMDsKLSAgICAgIHZp
cnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwQ29weSggY29uc3QgVmFsdWVJbnRlcm5hbE1h
cCAmb3RoZXIgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RNYXAoIFZhbHVlSW50
ZXJuYWxNYXAgKm1hcCApID0gMDsKLSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFs
bG9jYXRlTWFwQnVja2V0cyggdW5zaWduZWQgaW50IHNpemUgKSA9IDA7Ci0gICAgICB2aXJ0dWFs
IHZvaWQgcmVsZWFzZU1hcEJ1Y2tldHMoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rcyApID0gMDsK
LSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFsbG9jYXRlTWFwTGluaygpID0gMDsK
LSAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwTGluayggVmFsdWVJbnRlcm5hbExpbmsgKmxp
bmsgKSA9IDA7Ci0gICB9OwotCi0gICAvKiogXGJyaWVmIFZhbHVlSW50ZXJuYWxNYXAgaGFzaC1t
YXAgYnVja2V0IGNoYWluIGxpbmsgKGZvciBpbnRlcm5hbCB1c2Ugb25seSkuCi0gICAgKiBcaW50
ZXJuYWwgcHJldmlvdXNfICYgbmV4dF8gYWxsb3dzIGZvciBiaWRpcmVjdGlvbmFsIHRyYXZlcnNh
bC4KLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVJbnRlcm5hbExpbmsKLSAgIHsKLSAg
IHB1YmxpYzoKLSAgICAgIGVudW0geyBpdGVtUGVyTGluayA9IDYgfTsgIC8vIHNpemVvZihWYWx1
ZUludGVybmFsTGluaykgPSAxMjggb24gMzIgYml0cyBhcmNoaXRlY3R1cmUuCi0gICAgICBlbnVt
IEludGVybmFsRmxhZ3MgeyAKLSAgICAgICAgIGZsYWdBdmFpbGFibGUgPSAwLAotICAgICAgICAg
ZmxhZ1VzZWQgPSAxCi0gICAgICB9OwotCi0gICAgICBWYWx1ZUludGVybmFsTGluaygpOwotCi0g
ICAgICB+VmFsdWVJbnRlcm5hbExpbmsoKTsKLQotICAgICAgVmFsdWUgaXRlbXNfW2l0ZW1QZXJM
aW5rXTsKLSAgICAgIGNoYXIgKmtleXNfW2l0ZW1QZXJMaW5rXTsKLSAgICAgIFZhbHVlSW50ZXJu
YWxMaW5rICpwcmV2aW91c187Ci0gICAgICBWYWx1ZUludGVybmFsTGluayAqbmV4dF87Ci0gICB9
OwotCi0KLSAgIC8qKiBcYnJpZWYgQSBsaW5rZWQgcGFnZSBiYXNlZCBoYXNoLXRhYmxlIGltcGxl
bWVudGF0aW9uIHVzZWQgaW50ZXJuYWxseSBieSBWYWx1ZS4KLSAgICAqIFxpbnRlcm5hbCBWYWx1
ZUludGVybmFsTWFwIGlzIGEgdHJhZGlvbmFsIGJ1Y2tldCBiYXNlZCBoYXNoLXRhYmxlLCB3aXRo
IGEgbGlua2VkCi0gICAgKiBsaXN0IGluIGVhY2ggYnVja2V0IHRvIGhhbmRsZSBjb2xsaXNpb24u
IFRoZXJlIGlzIGFuIGFkZGlvbmFsIHR3aXN0IGluIHRoYXQKLSAgICAqIGVhY2ggbm9kZSBvZiB0
aGUgY29sbGlzaW9uIGxpbmtlZCBsaXN0IGlzIGEgcGFnZSBjb250YWluaW5nIGEgZml4ZWQgYW1v
dW50IG9mCi0gICAgKiB2YWx1ZS4gVGhpcyBwcm92aWRlcyBhIGJldHRlciBjb21wcm9taXNlIGJl
dHdlZW4gbWVtb3J5IHVzYWdlIGFuZCBzcGVlZC4KLSAgICAqIAotICAgICogRWFjaCBidWNrZXQg
aXMgbWFkZSB1cCBvZiBhIGNoYWluZWQgbGlzdCBvZiBWYWx1ZUludGVybmFsTGluay4gVGhlIGxh
c3QKLSAgICAqIGxpbmsgb2YgYSBnaXZlbiBidWNrZXQgY2FuIGJlIGZvdW5kIGluIHRoZSAncHJl
dmlvdXNfJyBmaWVsZCBvZiB0aGUgZm9sbG93aW5nIGJ1Y2tldC4KLSAgICAqIFRoZSBsYXN0IGxp
bmsgb2YgdGhlIGxhc3QgYnVja2V0IGlzIHN0b3JlZCBpbiB0YWlsTGlua18gYXMgaXQgaGFzIG5v
IGZvbGxvd2luZyBidWNrZXQuCi0gICAgKiBPbmx5IHRoZSBsYXN0IGxpbmsgb2YgYSBidWNrZXQg
bWF5IGNvbnRhaW5zICdhdmFpbGFibGUnIGl0ZW0uIFRoZSBsYXN0IGxpbmsgYWx3YXlzCi0gICAg
KiBjb250YWlucyBhdCBsZWFzdCBvbmUgZWxlbWVudCB1bmxlc3MgaXMgaXQgdGhlIGJ1Y2tldCBv
bmUgdmVyeSBmaXJzdCBsaW5rLgotICAgICovCi0gICBjbGFzcyBKU09OX0FQSSBWYWx1ZUludGVy
bmFsTWFwCi0gICB7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7Ci0gICAg
ICBmcmllbmQgY2xhc3MgVmFsdWU7Ci0gICBwdWJsaWM6Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVk
IGludCBIYXNoS2V5OwotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgQnVja2V0SW5kZXg7Ci0K
LSMgaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KLSAgICAgIHN0cnVj
dCBJdGVyYXRvclN0YXRlCi0gICAgICB7Ci0gICAgICAgICBJdGVyYXRvclN0YXRlKCkgCi0gICAg
ICAgICAgICA6IG1hcF8oMCkKLSAgICAgICAgICAgICwgbGlua18oMCkKLSAgICAgICAgICAgICwg
aXRlbUluZGV4XygwKQotICAgICAgICAgICAgLCBidWNrZXRJbmRleF8oMCkgCi0gICAgICAgICB7
Ci0gICAgICAgICB9Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwICptYXBfOwotICAgICAgICAg
VmFsdWVJbnRlcm5hbExpbmsgKmxpbmtfOwotICAgICAgICAgQnVja2V0SW5kZXggaXRlbUluZGV4
XzsKLSAgICAgICAgIEJ1Y2tldEluZGV4IGJ1Y2tldEluZGV4XzsKLSAgICAgIH07Ci0jIGVuZGlm
IC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLSAgICAgIFZh
bHVlSW50ZXJuYWxNYXAoKTsKLSAgICAgIFZhbHVlSW50ZXJuYWxNYXAoIGNvbnN0IFZhbHVlSW50
ZXJuYWxNYXAgJm90aGVyICk7Ci0gICAgICBWYWx1ZUludGVybmFsTWFwICZvcGVyYXRvciA9KCBj
b25zdCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApOwotICAgICAgflZhbHVlSW50ZXJuYWxNYXAo
KTsKLQotICAgICAgdm9pZCBzd2FwKCBWYWx1ZUludGVybmFsTWFwICZvdGhlciApOwotCi0gICAg
ICBCdWNrZXRJbmRleCBzaXplKCkgY29uc3Q7Ci0KLSAgICAgIHZvaWQgY2xlYXIoKTsKLQotICAg
ICAgYm9vbCByZXNlcnZlRGVsdGEoIEJ1Y2tldEluZGV4IGdyb3d0aCApOwotCi0gICAgICBib29s
IHJlc2VydmUoIEJ1Y2tldEluZGV4IG5ld0l0ZW1Db3VudCApOwotCi0gICAgICBjb25zdCBWYWx1
ZSAqZmluZCggY29uc3QgY2hhciAqa2V5ICkgY29uc3Q7Ci0KLSAgICAgIFZhbHVlICpmaW5kKCBj
b25zdCBjaGFyICprZXkgKTsKLQotICAgICAgVmFsdWUgJnJlc29sdmVSZWZlcmVuY2UoIGNvbnN0
IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1N0YXRp
YyApOwotCi0gICAgICB2b2lkIHJlbW92ZSggY29uc3QgY2hhciAqa2V5ICk7Ci0KLSAgICAgIHZv
aWQgZG9BY3R1YWxSZW1vdmUoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEJ1Y2tldEluZGV4IGluZGV4LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQnVja2V0SW5kZXggYnVja2V0SW5kZXggKTsKLQotICAgICAgVmFsdWVJbnRlcm5hbExp
bmsgKiZnZXRMYXN0TGlua0luQnVja2V0KCBCdWNrZXRJbmRleCBidWNrZXRJbmRleCApOwotCi0g
ICAgICBWYWx1ZSAmc2V0TmV3SXRlbSggY29uc3QgY2hhciAqa2V5LCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sIGlzU3RhdGljLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZUludGVybmFsTGluayAqbGluaywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0SW5k
ZXggaW5kZXggKTsKLQotICAgICAgVmFsdWUgJnVuc2FmZUFkZCggY29uc3QgY2hhciAqa2V5LCAK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgSGFzaEtleSBoYXNoZWRLZXkgKTsKLQotICAgICAgSGFzaEtleSBoYXNoKCBjb25z
dCBjaGFyICprZXkgKSBjb25zdDsKLQotICAgICAgaW50IGNvbXBhcmUoIGNvbnN0IFZhbHVlSW50
ZXJuYWxNYXAgJm90aGVyICkgY29uc3Q7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB2b2lkIG1ha2VC
ZWdpbkl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0OwotICAgICAgdm9pZCBtYWtl
RW5kSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29uc3Q7Ci0gICAgICBzdGF0aWMgYm9v
bCBlcXVhbHMoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJm90
aGVyICk7Ci0gICAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUgJml0ZXJh
dG9yICk7Ci0gICAgICBzdGF0aWMgdm9pZCBpbmNyZW1lbnRCdWNrZXQoIEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgdm9pZCBkZWNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgY29uc3QgY2hhciAqa2V5KCBjb25zdCBJdGVyYXRv
clN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmtleSggY29uc3Qg
SXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IsIGJvb2wgJmlzU3RhdGljICk7Ci0gICAgICBzdGF0aWMg
VmFsdWUgJnZhbHVlKCBjb25zdCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3Rh
dGljIGludCBkaXN0YW5jZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JT
dGF0ZSAmeSApOwotCi0gICBwcml2YXRlOgotICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmJ1Y2tl
dHNfOwotICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKnRhaWxMaW5rXzsKLSAgICAgIEJ1Y2tldElu
ZGV4IGJ1Y2tldHNTaXplXzsKLSAgICAgIEJ1Y2tldEluZGV4IGl0ZW1Db3VudF87Ci0gICB9Owot
Ci0gICAvKiogXGJyaWVmIEEgc2ltcGxpZmllZCBkZXF1ZSBpbXBsZW1lbnRhdGlvbiB1c2VkIGlu
dGVybmFsbHkgYnkgVmFsdWUuCi0gICAqIFxpbnRlcm5hbAotICAgKiBJdCBpcyBiYXNlZCBvbiBh
IGxpc3Qgb2YgZml4ZWQgInBhZ2UiLCBlYWNoIHBhZ2UgY29udGFpbnMgYSBmaXhlZCBudW1iZXIg
b2YgaXRlbXMuCi0gICAqIEluc3RlYWQgb2YgdXNpbmcgYSBsaW5rZWQtbGlzdCwgYSBhcnJheSBv
ZiBwb2ludGVyIGlzIHVzZWQgZm9yIGZhc3QgaXRlbSBsb29rLXVwLgotICAgKiBMb29rLXVwIGZv
ciBhbiBlbGVtZW50IGlzIGFzIGZvbGxvdzoKLSAgICogLSBjb21wdXRlIHBhZ2UgaW5kZXg6IHBh
Z2VJbmRleCA9IGl0ZW1JbmRleCAvIGl0ZW1zUGVyUGFnZQotICAgKiAtIGxvb2stdXAgaXRlbSBp
biBwYWdlOiBwYWdlc19bcGFnZUluZGV4XVtpdGVtSW5kZXggJSBpdGVtc1BlclBhZ2VdCi0gICAq
Ci0gICAqIEluc2VydGlvbiBpcyBhbW9ydGl6ZWQgY29uc3RhbnQgdGltZSAob25seSB0aGUgYXJy
YXkgY29udGFpbmluZyB0aGUgaW5kZXggb2YgcG9pbnRlcnMKLSAgICogbmVlZCB0byBiZSByZWFs
bG9jYXRlZCB3aGVuIGl0ZW1zIGFyZSBhcHBlbmRlZCkuCi0gICAqLwotICAgY2xhc3MgSlNPTl9B
UEkgVmFsdWVJbnRlcm5hbEFycmF5Ci0gICB7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWU7Ci0g
ICAgICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7Ci0gICBwdWJsaWM6Ci0gICAgICBl
bnVtIHsgaXRlbXNQZXJQYWdlID0gOCB9OyAgICAvLyBzaG91bGQgYmUgYSBwb3dlciBvZiAyIGZv
ciBmYXN0IGRpdmlkZSBhbmQgbW9kdWxvLgotICAgICAgdHlwZWRlZiBWYWx1ZTo6QXJyYXlJbmRl
eCBBcnJheUluZGV4OwotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgUGFnZUluZGV4OwotCi0j
IGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0gICAgICBzdHJ1Y3Qg
SXRlcmF0b3JTdGF0ZSAvLyBNdXN0IGJlIGEgUE9ECi0gICAgICB7Ci0gICAgICAgICBJdGVyYXRv
clN0YXRlKCkgCi0gICAgICAgICAgICA6IGFycmF5XygwKQotICAgICAgICAgICAgLCBjdXJyZW50
UGFnZUluZGV4XygwKQotICAgICAgICAgICAgLCBjdXJyZW50SXRlbUluZGV4XygwKSAKLSAgICAg
ICAgIHsKLSAgICAgICAgIH0KLSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSAqYXJyYXlfOwot
ICAgICAgICAgVmFsdWUgKipjdXJyZW50UGFnZUluZGV4XzsKLSAgICAgICAgIHVuc2lnbmVkIGlu
dCBjdXJyZW50SXRlbUluZGV4XzsKLSAgICAgIH07Ci0jIGVuZGlmIC8vIGlmbmRlZiBKU09OQ1BQ
X0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0KLSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSgp
OwotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5KCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXkgJm90
aGVyICk7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXkgJm9wZXJhdG9yID0oIGNvbnN0IFZhbHVl
SW50ZXJuYWxBcnJheSAmb3RoZXIgKTsKLSAgICAgIH5WYWx1ZUludGVybmFsQXJyYXkoKTsKLSAg
ICAgIHZvaWQgc3dhcCggVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApOwotCi0gICAgICB2b2lk
IGNsZWFyKCk7Ci0gICAgICB2b2lkIHJlc2l6ZSggQXJyYXlJbmRleCBuZXdTaXplICk7Ci0KLSAg
ICAgIFZhbHVlICZyZXNvbHZlUmVmZXJlbmNlKCBBcnJheUluZGV4IGluZGV4ICk7Ci0KLSAgICAg
IFZhbHVlICpmaW5kKCBBcnJheUluZGV4IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIEFycmF5SW5k
ZXggc2l6ZSgpIGNvbnN0OwotCi0gICAgICBpbnQgY29tcGFyZSggY29uc3QgVmFsdWVJbnRlcm5h
bEFycmF5ICZvdGhlciApIGNvbnN0OwotCi0gICBwcml2YXRlOgotICAgICAgc3RhdGljIGJvb2wg
ZXF1YWxzKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25zdCBJdGVyYXRvclN0YXRlICZvdGhl
ciApOwotICAgICAgc3RhdGljIHZvaWQgaW5jcmVtZW50KCBJdGVyYXRvclN0YXRlICZpdGVyYXRv
ciApOwotICAgICAgc3RhdGljIHZvaWQgZGVjcmVtZW50KCBJdGVyYXRvclN0YXRlICZpdGVyYXRv
ciApOwotICAgICAgc3RhdGljIFZhbHVlICZkZXJlZmVyZW5jZSggY29uc3QgSXRlcmF0b3JTdGF0
ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBWYWx1ZSAmdW5zYWZlRGVyZWZlcmVuY2UoIGNv
bnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgaW50IGRpc3RhbmNl
KCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25zdCBJdGVyYXRvclN0YXRlICZ5ICk7Ci0gICAg
ICBzdGF0aWMgQXJyYXlJbmRleCBpbmRleE9mKCBjb25zdCBJdGVyYXRvclN0YXRlICZpdGVyYXRv
ciApOwotICAgICAgdm9pZCBtYWtlQmVnaW5JdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQgKSBj
b25zdDsKLSAgICAgIHZvaWQgbWFrZUVuZEl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNv
bnN0OwotICAgICAgdm9pZCBtYWtlSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0LCBBcnJheUlu
ZGV4IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIHZvaWQgbWFrZUluZGV4VmFsaWQoIEFycmF5SW5k
ZXggaW5kZXggKTsKLQotICAgICAgVmFsdWUgKipwYWdlc187Ci0gICAgICBBcnJheUluZGV4IHNp
emVfOwotICAgICAgUGFnZUluZGV4IHBhZ2VDb3VudF87Ci0gICB9OwotCi0gICAvKiogXGJyaWVm
IEV4cGVyaW1lbnRhbDogZG8gbm90IHVzZS4gQWxsb2NhdG9yIHRvIGN1c3RvbWl6ZSBWYWx1ZSBp
bnRlcm5hbCBhcnJheS4KLSAgICAqIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBzaW1wbGUgaW1w
bGVtZW50YXRpb24gKGFjdHVhbCBpbXBsZW1lbnRhdGlvbiB1c2UKLSAgICAqIG1lbW9yeSBwb29s
KS4KLSAgICAgIFxjb2RlCi1jbGFzcyBEZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvciA6IHB1Ymxp
YyBWYWx1ZUFycmF5QWxsb2NhdG9yCi17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1
ZUFycmF5QWxsb2NhdG9yCi0gICB2aXJ0dWFsIH5EZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvcigp
Ci0gICB7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheSgp
Ci0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxBcnJheSgpOwotICAgfQotCi0g
ICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAqbmV3QXJyYXlDb3B5KCBjb25zdCBWYWx1ZUlu
dGVybmFsQXJyYXkgJm90aGVyICkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5h
bEFycmF5KCBvdGhlciApOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3QoIFZhbHVl
SW50ZXJuYWxBcnJheSAqYXJyYXkgKQotICAgewotICAgICAgZGVsZXRlIGFycmF5OwotICAgfQot
Ci0gICB2aXJ0dWFsIHZvaWQgcmVhbGxvY2F0ZUFycmF5UGFnZUluZGV4KCBWYWx1ZSAqKiZpbmRl
eGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50
ZXJuYWxBcnJheTo6UGFnZUluZGV4ICZpbmRleENvdW50LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggbWluTmV3
SW5kZXhDb3VudCApCi0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBu
ZXdJbmRleENvdW50ID0gKGluZGV4Q291bnQqMykvMiArIDE7Ci0gICAgICBpZiAoIG1pbk5ld0lu
ZGV4Q291bnQgPiBuZXdJbmRleENvdW50ICkKLSAgICAgICAgIG5ld0luZGV4Q291bnQgPSBtaW5O
ZXdJbmRleENvdW50OwotICAgICAgdm9pZCAqbmV3SW5kZXhlcyA9IHJlYWxsb2MoIGluZGV4ZXMs
IHNpemVvZihWYWx1ZSopICogbmV3SW5kZXhDb3VudCApOwotICAgICAgaWYgKCAhbmV3SW5kZXhl
cyApCi0gICAgICAgICB0aHJvdyBzdGQ6OmJhZF9hbGxvYygpOwotICAgICAgaW5kZXhDb3VudCA9
IG5ld0luZGV4Q291bnQ7Ci0gICAgICBpbmRleGVzID0gc3RhdGljX2Nhc3Q8VmFsdWUgKio+KCBu
ZXdJbmRleGVzICk7Ci0gICB9Ci0gICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUFycmF5UGFnZUluZGV4
KCBWYWx1ZSAqKmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggaW5kZXhDb3VudCApCi0gICB7Ci0gICAg
ICBpZiAoIGluZGV4ZXMgKQotICAgICAgICAgZnJlZSggaW5kZXhlcyApOwotICAgfQotCi0gICB2
aXJ0dWFsIFZhbHVlICphbGxvY2F0ZUFycmF5UGFnZSgpCi0gICB7Ci0gICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8VmFsdWUgKj4oIG1hbGxvYyggc2l6ZW9mKFZhbHVlKSAqIFZhbHVlSW50ZXJuYWxB
cnJheTo6aXRlbXNQZXJQYWdlICkgKTsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlbGVhc2VB
cnJheVBhZ2UoIFZhbHVlICp2YWx1ZSApCi0gICB7Ci0gICAgICBpZiAoIHZhbHVlICkKLSAgICAg
ICAgIGZyZWUoIHZhbHVlICk7Ci0gICB9Ci19OwotICAgICAgXGVuZGNvZGUKLSAgICAqLyAKLSAg
IGNsYXNzIEpTT05fQVBJIFZhbHVlQXJyYXlBbGxvY2F0b3IKLSAgIHsKLSAgIHB1YmxpYzoKLSAg
ICAgIHZpcnR1YWwgflZhbHVlQXJyYXlBbGxvY2F0b3IoKTsKLSAgICAgIHZpcnR1YWwgVmFsdWVJ
bnRlcm5hbEFycmF5ICpuZXdBcnJheSgpID0gMDsKLSAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5h
bEFycmF5ICpuZXdBcnJheUNvcHkoIGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKSA9
IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RBcnJheSggVmFsdWVJbnRlcm5hbEFycmF5
ICphcnJheSApID0gMDsKLSAgICAgIC8qKiBcYnJpZWYgUmVhbGxvY2F0ZSBhcnJheSBwYWdlIGlu
ZGV4LgotICAgICAgICogUmVhbGxvY2F0ZXMgYW4gYXJyYXkgb2YgcG9pbnRlciBvbiBlYWNoIHBh
Z2UuCi0gICAgICAgKiBccGFyYW0gaW5kZXhlcyBbaW5wdXRdIHBvaW50ZXIgb24gdGhlIGN1cnJl
bnQgaW5kZXguIE1heSBiZSBcYyBOVUxMLgotICAgICAgICogICAgICAgICAgICAgICAgW291dHB1
dF0gcG9pbnRlciBvbiB0aGUgbmV3IGluZGV4IG9mIGF0IGxlYXN0IAotICAgICAgICogICAgICAg
ICAgICAgICAgICAgICAgICAgXGEgbWluTmV3SW5kZXhDb3VudCBwYWdlcy4gCi0gICAgICAgKiBc
cGFyYW0gaW5kZXhDb3VudCBbaW5wdXRdIGN1cnJlbnQgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBp
bmRleC4KLSAgICAgICAqICAgICAgICAgICAgICAgICAgIFtvdXRwdXRdIG51bWJlciBvZiBwYWdl
IHRoZSByZWFsbG9jYXRlZCBpbmRleCBjYW4gaGFuZGxlLgotICAgICAgICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXGIgTVVTVCBiZSA+PSBcYSBtaW5OZXdJbmRleENvdW50LgotICAgICAg
ICogXHBhcmFtIG1pbk5ld0luZGV4Q291bnQgTWluaW11bSBudW1iZXIgb2YgcGFnZSB0aGUgbmV3
IGluZGV4IG11c3QgYmUgYWJsZSB0bwotICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlLgotICAgICAgICovCi0gICAgICB2aXJ0dWFsIHZvaWQgcmVhbGxvY2F0ZUFycmF5UGFn
ZUluZGV4KCBWYWx1ZSAqKiZpbmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4ICZpbmRleENvdW50
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRl
cm5hbEFycmF5OjpQYWdlSW5kZXggbWluTmV3SW5kZXhDb3VudCApID0gMDsKLSAgICAgIHZpcnR1
YWwgdm9pZCByZWxlYXNlQXJyYXlQYWdlSW5kZXgoIFZhbHVlICoqaW5kZXhlcywgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBh
Z2VJbmRleCBpbmRleENvdW50ICkgPSAwOwotICAgICAgdmlydHVhbCBWYWx1ZSAqYWxsb2NhdGVB
cnJheVBhZ2UoKSA9IDA7Ci0gICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUFycmF5UGFnZSggVmFs
dWUgKnZhbHVlICkgPSAwOwotICAgfTsKLSNlbmRpZiAvLyAjaWZkZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi0KLQotICAgLyoqIFxicmllZiBiYXNlIGNsYXNzIGZvciBWYWx1ZSBpdGVy
YXRvcnMuCi0gICAgKgotICAgICovCi0gICBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZQotICAgewot
ICAgcHVibGljOgotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwotICAgICAgdHlw
ZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICAgICAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yQmFz
ZSBTZWxmVHlwZTsKLQotICAgICAgVmFsdWVJdGVyYXRvckJhc2UoKTsKLSNpZm5kZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yQmFzZSgg
Y29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgJmN1cnJlbnQgKTsKLSNlbHNlCi0g
ICAgICBWYWx1ZUl0ZXJhdG9yQmFzZSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVyYXRv
clN0YXRlICZzdGF0ZSApOwotICAgICAgVmFsdWVJdGVyYXRvckJhc2UoIGNvbnN0IFZhbHVlSW50
ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0jZW5kaWYKLQotICAgICAgYm9vbCBv
cGVyYXRvciA9PSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3QKLSAgICAgIHsKLSAgICAg
ICAgIHJldHVybiBpc0VxdWFsKCBvdGhlciApOwotICAgICAgfQotCi0gICAgICBib29sIG9wZXJh
dG9yICE9KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25zdAotICAgICAgewotICAgICAgICAg
cmV0dXJuICFpc0VxdWFsKCBvdGhlciApOwotICAgICAgfQotCi0gICAgICBkaWZmZXJlbmNlX3R5
cGUgb3BlcmF0b3IgLSggY29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3QKLSAgICAgIHsKLSAg
ICAgICAgIHJldHVybiBjb21wdXRlRGlzdGFuY2UoIG90aGVyICk7Ci0gICAgICB9Ci0KLSAgICAg
IC8vLyBSZXR1cm4gZWl0aGVyIHRoZSBpbmRleCBvciB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJl
ZmVyZW5jZWQgdmFsdWUgYXMgYSBWYWx1ZS4KLSAgICAgIFZhbHVlIGtleSgpIGNvbnN0OwotCi0g
ICAgICAvLy8gUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZS4gLTEgaWYg
aXQgaXMgbm90IGFuIGFycmF5VmFsdWUuCi0gICAgICBVSW50IGluZGV4KCkgY29uc3Q7Ci0KLSAg
ICAgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLiAi
IiBpZiBpdCBpcyBub3QgYW4gb2JqZWN0VmFsdWUuCi0gICAgICBjb25zdCBjaGFyICptZW1iZXJO
YW1lKCkgY29uc3Q7Ci0KLSAgIHByb3RlY3RlZDoKLSAgICAgIFZhbHVlICZkZXJlZigpIGNvbnN0
OwotCi0gICAgICB2b2lkIGluY3JlbWVudCgpOwotCi0gICAgICB2b2lkIGRlY3JlbWVudCgpOwot
Ci0gICAgICBkaWZmZXJlbmNlX3R5cGUgY29tcHV0ZURpc3RhbmNlKCBjb25zdCBTZWxmVHlwZSAm
b3RoZXIgKSBjb25zdDsKLQotICAgICAgYm9vbCBpc0VxdWFsKCBjb25zdCBTZWxmVHlwZSAmb3Ro
ZXIgKSBjb25zdDsKLQotICAgICAgdm9pZCBjb3B5KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKTsK
LQotICAgcHJpdmF0ZToKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAg
ICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBjdXJyZW50XzsKLSAgICAgIC8vIEluZGlj
YXRlcyB0aGF0IGl0ZXJhdG9yIGlzIGZvciBhIG51bGwgdmFsdWUuCi0gICAgICBib29sIGlzTnVs
bF87Ci0jZWxzZQotICAgICAgdW5pb24KLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxB
cnJheTo6SXRlcmF0b3JTdGF0ZSBhcnJheV87Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwOjpJ
dGVyYXRvclN0YXRlIG1hcF87Ci0gICAgICB9IGl0ZXJhdG9yXzsKLSAgICAgIGJvb2wgaXNBcnJh
eV87Ci0jZW5kaWYKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgY29uc3QgaXRlcmF0b3IgZm9yIG9i
amVjdCBhbmQgYXJyYXkgdmFsdWUuCi0gICAgKgotICAgICovCi0gICBjbGFzcyBWYWx1ZUNvbnN0
SXRlcmF0b3IgOiBwdWJsaWMgVmFsdWVJdGVyYXRvckJhc2UKLSAgIHsKLSAgICAgIGZyaWVuZCBj
bGFzcyBWYWx1ZTsKLSAgIHB1YmxpYzoKLSAgICAgIHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVf
dDsKLSAgICAgIHR5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKLSAgICAgIHR5cGVkZWYgY29u
c3QgVmFsdWUgJnJlZmVyZW5jZTsKLSAgICAgIHR5cGVkZWYgY29uc3QgVmFsdWUgKnBvaW50ZXI7
Ci0gICAgICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBTZWxmVHlwZTsKLQotICAgICAgVmFs
dWVDb25zdEl0ZXJhdG9yKCk7Ci0gICBwcml2YXRlOgotICAgICAgLyohIFxpbnRlcm5hbCBVc2Ug
YnkgVmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgotICAgICAgICovCi0jaWZuZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgZXhwbGljaXQgVmFsdWVDb25zdEl0ZXJhdG9y
KCBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciAmY3VycmVudCApOwotI2Vsc2UK
LSAgICAgIFZhbHVlQ29uc3RJdGVyYXRvciggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVy
YXRvclN0YXRlICZzdGF0ZSApOwotICAgICAgVmFsdWVDb25zdEl0ZXJhdG9yKCBjb25zdCBWYWx1
ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlICZzdGF0ZSApOwotI2VuZGlmCi0gICBwdWJsaWM6
Ci0gICAgICBTZWxmVHlwZSAmb3BlcmF0b3IgPSggY29uc3QgVmFsdWVJdGVyYXRvckJhc2UgJm90
aGVyICk7Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9yKysoIGludCApCi0gICAgICB7Ci0gICAg
ICAgICBTZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAgICAgICAgKysqdGhpczsKLSAgICAgICAg
IHJldHVybiB0ZW1wOwotICAgICAgfQotCi0gICAgICBTZWxmVHlwZSBvcGVyYXRvci0tKCBpbnQg
KQotICAgICAgewotICAgICAgICAgU2VsZlR5cGUgdGVtcCggKnRoaXMgKTsKLSAgICAgICAgIC0t
KnRoaXM7Ci0gICAgICAgICByZXR1cm4gdGVtcDsKLSAgICAgIH0KLQotICAgICAgU2VsZlR5cGUg
Jm9wZXJhdG9yLS0oKQotICAgICAgewotICAgICAgICAgZGVjcmVtZW50KCk7Ci0gICAgICAgICBy
ZXR1cm4gKnRoaXM7Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlICZvcGVyYXRvcisrKCkKLSAg
ICAgIHsKLSAgICAgICAgIGluY3JlbWVudCgpOwotICAgICAgICAgcmV0dXJuICp0aGlzOwotICAg
ICAgfQotCi0gICAgICByZWZlcmVuY2Ugb3BlcmF0b3IgKigpIGNvbnN0Ci0gICAgICB7Ci0gICAg
ICAgICByZXR1cm4gZGVyZWYoKTsKLSAgICAgIH0KLSAgIH07Ci0KLQotICAgLyoqIFxicmllZiBJ
dGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KLSAgICAqLwotICAgY2xhc3MgVmFs
dWVJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9yQmFzZQotICAgewotICAgICAgZnJpZW5k
IGNsYXNzIFZhbHVlOwotICAgcHVibGljOgotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6
ZV90OwotICAgICAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwotICAgICAgdHlwZWRlZiBW
YWx1ZSAmcmVmZXJlbmNlOwotICAgICAgdHlwZWRlZiBWYWx1ZSAqcG9pbnRlcjsKLSAgICAgIHR5
cGVkZWYgVmFsdWVJdGVyYXRvciBTZWxmVHlwZTsKLQotICAgICAgVmFsdWVJdGVyYXRvcigpOwot
ICAgICAgVmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yICZvdGhlciApOwot
ICAgICAgVmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJdGVyYXRvciAmb3RoZXIgKTsKLSAgIHBy
aXZhdGU6Ci0gICAgICAvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBjcmVhdGUgYW4gaXRl
cmF0b3IuCi0gICAgICAgKi8KLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0g
ICAgICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjpp
dGVyYXRvciAmY3VycmVudCApOwotI2Vsc2UKLSAgICAgIFZhbHVlSXRlcmF0b3IoIGNvbnN0IFZh
bHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKTsKLSAgICAgIFZhbHVlSXRl
cmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0j
ZW5kaWYKLSAgIHB1YmxpYzoKLQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9yID0oIGNvbnN0IFNl
bGZUeXBlICZvdGhlciApOwotCi0gICAgICBTZWxmVHlwZSBvcGVyYXRvcisrKCBpbnQgKQotICAg
ICAgewotICAgICAgICAgU2VsZlR5cGUgdGVtcCggKnRoaXMgKTsKLSAgICAgICAgICsrKnRoaXM7
Ci0gICAgICAgICByZXR1cm4gdGVtcDsKLSAgICAgIH0KLQotICAgICAgU2VsZlR5cGUgb3BlcmF0
b3ItLSggaW50ICkKLSAgICAgIHsKLSAgICAgICAgIFNlbGZUeXBlIHRlbXAoICp0aGlzICk7Ci0g
ICAgICAgICAtLSp0aGlzOwotICAgICAgICAgcmV0dXJuIHRlbXA7Ci0gICAgICB9Ci0KLSAgICAg
IFNlbGZUeXBlICZvcGVyYXRvci0tKCkKLSAgICAgIHsKLSAgICAgICAgIGRlY3JlbWVudCgpOwot
ICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgfQotCi0gICAgICBTZWxmVHlwZSAmb3BlcmF0
b3IrKygpCi0gICAgICB7Ci0gICAgICAgICBpbmNyZW1lbnQoKTsKLSAgICAgICAgIHJldHVybiAq
dGhpczsKLSAgICAgIH0KLQotICAgICAgcmVmZXJlbmNlIG9wZXJhdG9yICooKSBjb25zdAotICAg
ICAgewotICAgICAgICAgcmV0dXJuIGRlcmVmKCk7Ci0gICAgICB9Ci0gICB9OwotCi0KLX0gLy8g
bmFtZXNwYWNlIEpzb24KLQotCi0jZW5kaWYgLy8gQ1BQVExfSlNPTl9IX0lOQ0xVREVECmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL3Ny
Yy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY4Y2ZhZDcwNTEwYzJlODEwNzQ2ZGMyMzZlYjQ0MzUyNzk3NjdkZDMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL292ZXJyaWRlcy9zcmMvbGliX2pzb24vanNv
bl9yZWFkZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTIwICswLDAgQEAKLS8vIENvcHlyaWdo
dCAyMDA3LTIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQg
bGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBp
biB5b3VyIGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBj
b3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZiAhZGVm
aW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+
Ci0jIGluY2x1ZGUgPGpzb24vcmVhZGVyLmg+Ci0jIGluY2x1ZGUgPGpzb24vdmFsdWUuaD4KLSMg
aW5jbHVkZSAianNvbl90b29sLmgiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFM
R0FNQVRJT04pCi0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRlIDxjc3RkaW8+Ci0jaW5jbHVk
ZSA8Y2Fzc2VydD4KLSNpbmNsdWRlIDxjc3RyaW5nPgotI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KLSNp
bmNsdWRlIDxzdHJpbmc+Ci0jaW5jbHVkZSA8aXN0cmVhbT4KLQotI2lmIF9NU0NfVkVSID49IDE0
MDAgLy8gVkMrKyA4LjAKLSNwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ5OTYgKSAgIC8vIGRp
c2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KLSNlbmRpZgotCi1u
YW1lc3BhY2UgSnNvbiB7Ci0KLS8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIEZlYXR1cmVzCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1GZWF0dXJlczo6RmVhdHVyZXMo
KQotICAgOiBhbGxvd0NvbW1lbnRzXyggdHJ1ZSApCi0gICAsIHN0cmljdFJvb3RfKCBmYWxzZSAp
Ci17Ci19Ci0KLQotRmVhdHVyZXMgCi1GZWF0dXJlczo6YWxsKCkKLXsKLSAgIHJldHVybiBGZWF0
dXJlcygpOwotfQotCi0KLUZlYXR1cmVzIAotRmVhdHVyZXM6OnN0cmljdE1vZGUoKQotewotICAg
RmVhdHVyZXMgZmVhdHVyZXM7Ci0gICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IGZhbHNlOwot
ICAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSB0cnVlOwotICAgcmV0dXJuIGZlYXR1cmVzOwotfQot
Ci0vLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0KLQotc3RhdGljIGlubGluZSBib29sIAotaW4oIFJlYWRlcjo6Q2hh
ciBjLCBSZWFkZXI6OkNoYXIgYzEsIFJlYWRlcjo6Q2hhciBjMiwgUmVhZGVyOjpDaGFyIGMzLCBS
ZWFkZXI6OkNoYXIgYzQgKQotewotICAgcmV0dXJuIGMgPT0gYzEgIHx8ICBjID09IGMyICB8fCAg
YyA9PSBjMyAgfHwgIGMgPT0gYzQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCAKLWluKCBSZWFk
ZXI6OkNoYXIgYywgUmVhZGVyOjpDaGFyIGMxLCBSZWFkZXI6OkNoYXIgYzIsIFJlYWRlcjo6Q2hh
ciBjMywgUmVhZGVyOjpDaGFyIGM0LCBSZWFkZXI6OkNoYXIgYzUgKQotewotICAgcmV0dXJuIGMg
PT0gYzEgIHx8ICBjID09IGMyICB8fCAgYyA9PSBjMyAgfHwgIGMgPT0gYzQgIHx8ICBjID09IGM1
OwotfQotCi0KLXN0YXRpYyBib29sIAotY29udGFpbnNOZXdMaW5lKCBSZWFkZXI6OkxvY2F0aW9u
IGJlZ2luLCAKLSAgICAgICAgICAgICAgICAgUmVhZGVyOjpMb2NhdGlvbiBlbmQgKQotewotICAg
Zm9yICggO2JlZ2luIDwgZW5kOyArK2JlZ2luICkKLSAgICAgIGlmICggKmJlZ2luID09ICdcbicg
IHx8ICAqYmVnaW4gPT0gJ1xyJyApCi0gICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgIHJldHVybiBm
YWxzZTsKLX0KLQotCi0vLyBDbGFzcyBSZWFkZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1SZWFkZXI6OlJl
YWRlcigpCi0gICAgOiBlcnJvcnNfKCksCi0gICAgICBkb2N1bWVudF8oKSwKLSAgICAgIGJlZ2lu
XygpLAotICAgICAgZW5kXygpLAotICAgICAgY3VycmVudF8oKSwKLSAgICAgIGxhc3RWYWx1ZUVu
ZF8oKSwKLSAgICAgIGxhc3RWYWx1ZV8oKSwKLSAgICAgIGNvbW1lbnRzQmVmb3JlXygpLAotICAg
ICAgZmVhdHVyZXNfKCBGZWF0dXJlczo6YWxsKCkgKSwKLSAgICAgIGNvbGxlY3RDb21tZW50c18o
KQotewotfQotCi0KLVJlYWRlcjo6UmVhZGVyKCBjb25zdCBGZWF0dXJlcyAmZmVhdHVyZXMgKQot
ICAgIDogZXJyb3JzXygpLAotICAgICAgZG9jdW1lbnRfKCksCi0gICAgICBiZWdpbl8oKSwKLSAg
ICAgIGVuZF8oKSwKLSAgICAgIGN1cnJlbnRfKCksCi0gICAgICBsYXN0VmFsdWVFbmRfKCksCi0g
ICAgICBsYXN0VmFsdWVfKCksCi0gICAgICBjb21tZW50c0JlZm9yZV8oKSwKLSAgICAgIGZlYXR1
cmVzXyggZmVhdHVyZXMgKSwKLSAgICAgIGNvbGxlY3RDb21tZW50c18oKQotewotfQotCi0KLWJv
b2wKLVJlYWRlcjo6cGFyc2UoIGNvbnN0IHN0ZDo6c3RyaW5nICZkb2N1bWVudCwgCi0gICAgICAg
ICAgICAgICBWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRz
ICkKLXsKLSAgIGRvY3VtZW50XyA9IGRvY3VtZW50OwotICAgY29uc3QgY2hhciAqYmVnaW4gPSBk
b2N1bWVudF8uY19zdHIoKTsKLSAgIGNvbnN0IGNoYXIgKmVuZCA9IGJlZ2luICsgZG9jdW1lbnRf
Lmxlbmd0aCgpOwotICAgcmV0dXJuIHBhcnNlKCBiZWdpbiwgZW5kLCByb290LCBjb2xsZWN0Q29t
bWVudHMgKTsKLX0KLQotCi1ib29sCi1SZWFkZXI6OnBhcnNlKCBzdGQ6OmlzdHJlYW0mIHNpbiwK
LSAgICAgICAgICAgICAgIFZhbHVlICZyb290LAotICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0
Q29tbWVudHMgKQotewotICAgLy9zdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4gYmVnaW4oc2lu
KTsKLSAgIC8vc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGVuZDsKLSAgIC8vIFRob3NlIHdv
dWxkIGFsbG93IHN0cmVhbWVkIGlucHV0IGZyb20gYSBmaWxlLCBpZiBwYXJzZSgpIHdlcmUgYQot
ICAgLy8gdGVtcGxhdGUgZnVuY3Rpb24uCi0KLSAgIC8vIFNpbmNlIHN0ZDo6c3RyaW5nIGlzIHJl
ZmVyZW5jZS1jb3VudGVkLCB0aGlzIGF0IGxlYXN0IGRvZXMgbm90Ci0gICAvLyBjcmVhdGUgYW4g
ZXh0cmEgY29weS4KLSAgIHN0ZDo6c3RyaW5nIGRvYzsKLSAgIHN0ZDo6Z2V0bGluZShzaW4sIGRv
YywgKGNoYXIpRU9GKTsKLSAgIHJldHVybiBwYXJzZSggZG9jLCByb290LCBjb2xsZWN0Q29tbWVu
dHMgKTsKLX0KLQotYm9vbCAKLVJlYWRlcjo6cGFyc2UoIGNvbnN0IGNoYXIgKmJlZ2luRG9jLCBj
b25zdCBjaGFyICplbmREb2MsIAotICAgICAgICAgICAgICAgVmFsdWUgJnJvb3QsCi0gICAgICAg
ICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyApCi17Ci0gICBpZiAoICFmZWF0dXJlc18uYWxs
b3dDb21tZW50c18gKQotICAgewotICAgICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7Ci0gICB9
Ci0KLSAgIGJlZ2luXyA9IGJlZ2luRG9jOwotICAgZW5kXyA9IGVuZERvYzsKLSAgIGNvbGxlY3RD
b21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7Ci0gICBjdXJyZW50XyA9IGJlZ2luXzsKLSAgIGxh
c3RWYWx1ZUVuZF8gPSAwOwotICAgbGFzdFZhbHVlXyA9IDA7Ci0gICBjb21tZW50c0JlZm9yZV8g
PSAiIjsKLSAgIGVycm9yc18uY2xlYXIoKTsKLSAgIHdoaWxlICggIW5vZGVzXy5lbXB0eSgpICkK
LSAgICAgIG5vZGVzXy5wb3AoKTsKLSAgIG5vZGVzXy5wdXNoKCAmcm9vdCApOwotICAgCi0gICBi
b29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFsdWUoKTsKLSAgIFRva2VuIHRva2VuOwotICAgc2tpcENv
bW1lbnRUb2tlbnMoIHRva2VuICk7Ci0gICBpZiAoIGNvbGxlY3RDb21tZW50c18gICYmICAhY29t
bWVudHNCZWZvcmVfLmVtcHR5KCkgKQotICAgICAgcm9vdC5zZXRDb21tZW50KCBjb21tZW50c0Jl
Zm9yZV8sIGNvbW1lbnRBZnRlciApOwotICAgaWYgKCBmZWF0dXJlc18uc3RyaWN0Um9vdF8gKQot
ICAgewotICAgICAgaWYgKCAhcm9vdC5pc0FycmF5KCkgICYmICAhcm9vdC5pc09iamVjdCgpICkK
LSAgICAgIHsKLSAgICAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2Ms
IGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kIGluIGRvYwotICAgICAgICAgdG9r
ZW4udHlwZV8gPSB0b2tlbkVycm9yOwotICAgICAgICAgdG9rZW4uc3RhcnRfID0gYmVnaW5Eb2M7
Ci0gICAgICAgICB0b2tlbi5lbmRfID0gZW5kRG9jOwotICAgICAgICAgYWRkRXJyb3IoICJBIHZh
bGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZh
bHVlLiIsCi0gICAgICAgICAgICAgICAgICAgdG9rZW4gKTsKLSAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgIH0KLSAgIH0KLSAgIHJldHVybiBzdWNjZXNzZnVsOwotfQotCi0KLWJvb2wKLVJl
YWRlcjo6cmVhZFZhbHVlKCkKLXsKLSAgIFRva2VuIHRva2VuOwotICAgc2tpcENvbW1lbnRUb2tl
bnMoIHRva2VuICk7Ci0gICBib29sIHN1Y2Nlc3NmdWwgPSB0cnVlOwotCi0gICBpZiAoIGNvbGxl
Y3RDb21tZW50c18gICYmICAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkgKQotICAgewotICAgICAg
Y3VycmVudFZhbHVlKCkuc2V0Q29tbWVudCggY29tbWVudHNCZWZvcmVfLCBjb21tZW50QmVmb3Jl
ICk7Ci0gICAgICBjb21tZW50c0JlZm9yZV8gPSAiIjsKLSAgIH0KLQotCi0gICBzd2l0Y2ggKCB0
b2tlbi50eXBlXyApCi0gICB7Ci0gICBjYXNlIHRva2VuT2JqZWN0QmVnaW46Ci0gICAgICBzdWNj
ZXNzZnVsID0gcmVhZE9iamVjdCggdG9rZW4gKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSB0b2tl
bkFycmF5QmVnaW46Ci0gICAgICBzdWNjZXNzZnVsID0gcmVhZEFycmF5KCB0b2tlbiApOwotICAg
ICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuTnVtYmVyOgotICAgICAgc3VjY2Vzc2Z1bCA9IGRlY29k
ZU51bWJlciggdG9rZW4gKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSB0b2tlblN0cmluZzoKLSAg
ICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcoIHRva2VuICk7Ci0gICAgICBicmVhazsKLSAg
IGNhc2UgdG9rZW5UcnVlOgotICAgICAgY3VycmVudFZhbHVlKCkgPSB0cnVlOwotICAgICAgYnJl
YWs7Ci0gICBjYXNlIHRva2VuRmFsc2U6Ci0gICAgICBjdXJyZW50VmFsdWUoKSA9IGZhbHNlOwot
ICAgICAgYnJlYWs7Ci0gICBjYXNlIHRva2VuTnVsbDoKLSAgICAgIGN1cnJlbnRWYWx1ZSgpID0g
VmFsdWUoKTsKLSAgICAgIGJyZWFrOwotICAgZGVmYXVsdDoKLSAgICAgIHJldHVybiBhZGRFcnJv
ciggIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSBleHBlY3RlZC4iLCB0b2tl
biApOwotICAgfQotCi0gICBpZiAoIGNvbGxlY3RDb21tZW50c18gKQotICAgewotICAgICAgbGFz
dFZhbHVlRW5kXyA9IGN1cnJlbnRfOwotICAgICAgbGFzdFZhbHVlXyA9ICZjdXJyZW50VmFsdWUo
KTsKLSAgIH0KLQotICAgcmV0dXJuIHN1Y2Nlc3NmdWw7Ci19Ci0KLQotdm9pZCAKLVJlYWRlcjo6
c2tpcENvbW1lbnRUb2tlbnMoIFRva2VuICZ0b2tlbiApCi17Ci0gICBpZiAoIGZlYXR1cmVzXy5h
bGxvd0NvbW1lbnRzXyApCi0gICB7Ci0gICAgICBkbwotICAgICAgewotICAgICAgICAgcmVhZFRv
a2VuKCB0b2tlbiApOwotICAgICAgfQotICAgICAgd2hpbGUgKCB0b2tlbi50eXBlXyA9PSB0b2tl
bkNvbW1lbnQgKTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIHJlYWRUb2tlbiggdG9rZW4g
KTsKLSAgIH0KLX0KLQotCi1ib29sIAotUmVhZGVyOjpleHBlY3RUb2tlbiggVG9rZW5UeXBlIHR5
cGUsIFRva2VuICZ0b2tlbiwgY29uc3QgY2hhciAqbWVzc2FnZSApCi17Ci0gICByZWFkVG9rZW4o
IHRva2VuICk7Ci0gICBpZiAoIHRva2VuLnR5cGVfICE9IHR5cGUgKQotICAgICAgcmV0dXJuIGFk
ZEVycm9yKCBtZXNzYWdlLCB0b2tlbiApOwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAK
LVJlYWRlcjo6cmVhZFRva2VuKCBUb2tlbiAmdG9rZW4gKQotewotICAgc2tpcFNwYWNlcygpOwot
ICAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87Ci0gICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwot
ICAgYm9vbCBvayA9IHRydWU7Ci0gICBzd2l0Y2ggKCBjICkKLSAgIHsKLSAgIGNhc2UgJ3snOgot
ICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOwotICAgICAgYnJlYWs7Ci0gICBj
YXNlICd9JzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7Ci0gICAgICBicmVh
azsKLSAgIGNhc2UgJ1snOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5QmVnaW47Ci0g
ICAgICBicmVhazsKLSAgIGNhc2UgJ10nOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5
RW5kOwotICAgICAgYnJlYWs7Ci0gICBjYXNlICciJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5TdHJpbmc7Ci0gICAgICBvayA9IHJlYWRTdHJpbmcoKTsKLSAgICAgIGJyZWFrOwotICAgY2Fz
ZSAnLyc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICAgIG9rID0gcmVh
ZENvbW1lbnQoKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAnMCc6Ci0gICBjYXNlICcxJzoKLSAg
IGNhc2UgJzInOgotICAgY2FzZSAnMyc6Ci0gICBjYXNlICc0JzoKLSAgIGNhc2UgJzUnOgotICAg
Y2FzZSAnNic6Ci0gICBjYXNlICc3JzoKLSAgIGNhc2UgJzgnOgotICAgY2FzZSAnOSc6Ci0gICBj
YXNlICctJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdW1iZXI7Ci0gICAgICByZWFkTnVt
YmVyKCk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJ3QnOgotICAgICAgdG9rZW4udHlwZV8gPSB0
b2tlblRydWU7Ci0gICAgICBvayA9IG1hdGNoKCAicnVlIiwgMyApOwotICAgICAgYnJlYWs7Ci0g
ICBjYXNlICdmJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKLSAgICAgIG9rID0g
bWF0Y2goICJhbHNlIiwgNCApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlICduJzoKLSAgICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5OdWxsOwotICAgICAgb2sgPSBtYXRjaCggInVsbCIsIDMgKTsKLSAg
ICAgIGJyZWFrOwotICAgY2FzZSAnLCc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlT
ZXBhcmF0b3I7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgJzonOgotICAgICAgdG9rZW4udHlwZV8g
PSB0b2tlbk1lbWJlclNlcGFyYXRvcjsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAwOgotICAgICAg
dG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOwotICAgICAgYnJlYWs7Ci0gICBkZWZhdWx0
OgotICAgICAgb2sgPSBmYWxzZTsKLSAgICAgIGJyZWFrOwotICAgfQotICAgaWYgKCAhb2sgKQot
ICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOwotICAgdG9rZW4uZW5kXyA9IGN1cnJlbnRf
OwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotdm9pZCAKLVJlYWRlcjo6c2tpcFNwYWNlcygpCi17
Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVuZF8gKQotICAgewotICAgICAgQ2hhciBjID0gKmN1
cnJlbnRfOwotICAgICAgaWYgKCBjID09ICcgJyAgfHwgIGMgPT0gJ1x0JyAgfHwgIGMgPT0gJ1xy
JyAgfHwgIGMgPT0gJ1xuJyApCi0gICAgICAgICArK2N1cnJlbnRfOwotICAgICAgZWxzZQotICAg
ICAgICAgYnJlYWs7Ci0gICB9Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6bWF0Y2goIExvY2F0aW9u
IHBhdHRlcm4sIAotICAgICAgICAgICAgICAgaW50IHBhdHRlcm5MZW5ndGggKQotewotICAgaWYg
KCBlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoICkKLSAgICAgIHJldHVybiBmYWxzZTsK
LSAgIGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7Ci0gICB3aGlsZSAoIGluZGV4LS0gKQotICAg
ICAgaWYgKCBjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltpbmRleF0gKQotICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKLSAgIHJldHVybiB0cnVl
OwotfQotCi0KLWJvb2wKLVJlYWRlcjo6cmVhZENvbW1lbnQoKQotewotICAgTG9jYXRpb24gY29t
bWVudEJlZ2luID0gY3VycmVudF8gLSAxOwotICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAg
IGJvb2wgc3VjY2Vzc2Z1bCA9IGZhbHNlOwotICAgaWYgKCBjID09ICcqJyApCi0gICAgICBzdWNj
ZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKLSAgIGVsc2UgaWYgKCBjID09ICcvJyApCi0g
ICAgICBzdWNjZXNzZnVsID0gcmVhZENwcFN0eWxlQ29tbWVudCgpOwotICAgaWYgKCAhc3VjY2Vz
c2Z1bCApCi0gICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgIGlmICggY29sbGVjdENvbW1lbnRzXyAp
Ci0gICB7Ci0gICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCA9IGNvbW1lbnRCZWZvcmU7
Ci0gICAgICBpZiAoIGxhc3RWYWx1ZUVuZF8gICYmICAhY29udGFpbnNOZXdMaW5lKCBsYXN0VmFs
dWVFbmRfLCBjb21tZW50QmVnaW4gKSApCi0gICAgICB7Ci0gICAgICAgICBpZiAoIGMgIT0gJyon
ICB8fCAgIWNvbnRhaW5zTmV3TGluZSggY29tbWVudEJlZ2luLCBjdXJyZW50XyApICkKLSAgICAg
ICAgICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7Ci0gICAgICB9Ci0KLSAg
ICAgIGFkZENvbW1lbnQoIGNvbW1lbnRCZWdpbiwgY3VycmVudF8sIHBsYWNlbWVudCApOwotICAg
fQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotdm9pZCAKLVJlYWRlcjo6YWRkQ29tbWVudCggTG9j
YXRpb24gYmVnaW4sIAotICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAg
ICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApCi17Ci0gICBhc3NlcnQo
IGNvbGxlY3RDb21tZW50c18gKTsKLSAgIGlmICggcGxhY2VtZW50ID09IGNvbW1lbnRBZnRlck9u
U2FtZUxpbmUgKQotICAgewotICAgICAgYXNzZXJ0KCBsYXN0VmFsdWVfICE9IDAgKTsKLSAgICAg
IGxhc3RWYWx1ZV8tPnNldENvbW1lbnQoIHN0ZDo6c3RyaW5nKCBiZWdpbiwgZW5kICksIHBsYWNl
bWVudCApOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgaWYgKCAhY29tbWVudHNCZWZvcmVf
LmVtcHR5KCkgKQotICAgICAgICAgY29tbWVudHNCZWZvcmVfICs9ICJcbiI7Ci0gICAgICBjb21t
ZW50c0JlZm9yZV8gKz0gc3RkOjpzdHJpbmcoIGJlZ2luLCBlbmQgKTsKLSAgIH0KLX0KLQotCi1i
b29sIAotUmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCgpCi17Ci0gICB3aGlsZSAoIGN1cnJlbnRf
ICE9IGVuZF8gKQotICAgewotICAgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKLSAgICAgIGlm
ICggYyA9PSAnKicgICYmICAqY3VycmVudF8gPT0gJy8nICkKLSAgICAgICAgIGJyZWFrOwotICAg
fQotICAgcmV0dXJuIGdldE5leHRDaGFyKCkgPT0gJy8nOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6
OnJlYWRDcHBTdHlsZUNvbW1lbnQoKQotewotICAgd2hpbGUgKCBjdXJyZW50XyAhPSBlbmRfICkK
LSAgIHsKLSAgICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7Ci0gICAgICBpZiAoICBjID09ICdc
cicgIHx8ICBjID09ICdcbicgKQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gdHJ1
ZTsKLX0KLQotCi12b2lkIAotUmVhZGVyOjpyZWFkTnVtYmVyKCkKLXsKLSAgIHdoaWxlICggY3Vy
cmVudF8gIT0gZW5kXyApCi0gICB7Ci0gICAgICBpZiAoICEoKmN1cnJlbnRfID49ICcwJyAgJiYg
ICpjdXJyZW50XyA8PSAnOScpICAmJgotICAgICAgICAgICAhaW4oICpjdXJyZW50XywgJy4nLCAn
ZScsICdFJywgJysnLCAnLScgKSApCi0gICAgICAgICBicmVhazsKLSAgICAgICsrY3VycmVudF87
Ci0gICB9Ci19Ci0KLWJvb2wKLVJlYWRlcjo6cmVhZFN0cmluZygpCi17Ci0gICBDaGFyIGMgPSAw
OwotICAgd2hpbGUgKCBjdXJyZW50XyAhPSBlbmRfICkKLSAgIHsKLSAgICAgIGMgPSBnZXROZXh0
Q2hhcigpOwotICAgICAgaWYgKCBjID09ICdcXCcgKQotICAgICAgICAgZ2V0TmV4dENoYXIoKTsK
LSAgICAgIGVsc2UgaWYgKCBjID09ICciJyApCi0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIHJl
dHVybiBjID09ICciJzsKLX0KLQotCi1ib29sIAotUmVhZGVyOjpyZWFkT2JqZWN0KCBUb2tlbiAm
Lyp0b2tlblN0YXJ0Ki8gKQotewotICAgVG9rZW4gdG9rZW5OYW1lOwotICAgc3RkOjpzdHJpbmcg
bmFtZTsKLSAgIGN1cnJlbnRWYWx1ZSgpID0gVmFsdWUoIG9iamVjdFZhbHVlICk7Ci0gICB3aGls
ZSAoIHJlYWRUb2tlbiggdG9rZW5OYW1lICkgKQotICAgewotICAgICAgYm9vbCBpbml0aWFsVG9r
ZW5PayA9IHRydWU7Ci0gICAgICB3aGlsZSAoIHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbkNvbW1l
bnQgICYmICBpbml0aWFsVG9rZW5PayApCi0gICAgICAgICBpbml0aWFsVG9rZW5PayA9IHJlYWRU
b2tlbiggdG9rZW5OYW1lICk7Ci0gICAgICBpZiAgKCAhaW5pdGlhbFRva2VuT2sgKQotICAgICAg
ICAgYnJlYWs7Ci0gICAgICBpZiAoIHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAg
JiYgIG5hbWUuZW1wdHkoKSApICAvLyBlbXB0eSBvYmplY3QKLSAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgaWYgKCB0b2tlbk5hbWUudHlwZV8gIT0gdG9rZW5TdHJpbmcgKQotICAgICAgICAg
YnJlYWs7Ci0gICAgICAKLSAgICAgIG5hbWUgPSAiIjsKLSAgICAgIGlmICggIWRlY29kZVN0cmlu
ZyggdG9rZW5OYW1lLCBuYW1lICkgKQotICAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Io
IHRva2VuT2JqZWN0RW5kICk7Ci0KLSAgICAgIFRva2VuIGNvbG9uOwotICAgICAgaWYgKCAhcmVh
ZFRva2VuKCBjb2xvbiApIHx8ICBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFyYXRvciAp
Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKCAiTWlzc2luZyAn
OicgYWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2xvbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
b2tlbk9iamVjdEVuZCApOwotICAgICAgfQotICAgICAgVmFsdWUgJnZhbHVlID0gY3VycmVudFZh
bHVlKClbIG5hbWUgXTsKLSAgICAgIG5vZGVzXy5wdXNoKCAmdmFsdWUgKTsKLSAgICAgIGJvb2wg
b2sgPSByZWFkVmFsdWUoKTsKLSAgICAgIG5vZGVzXy5wb3AoKTsKLSAgICAgIGlmICggIW9rICkg
Ly8gZXJyb3IgYWxyZWFkeSBzZXQKLSAgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKCB0
b2tlbk9iamVjdEVuZCApOwotCi0gICAgICBUb2tlbiBjb21tYTsKLSAgICAgIGlmICggIXJlYWRU
b2tlbiggY29tbWEgKQotICAgICAgICAgICAgfHwgICggY29tbWEudHlwZV8gIT0gdG9rZW5PYmpl
Y3RFbmQgICYmICAKLSAgICAgICAgICAgICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQXJyYXlT
ZXBhcmF0b3IgJiYKLSAgICAgICAgICAgICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVu
dCApICkKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoICJNaXNz
aW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9uIiwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0b2tlbk9iamVjdEVuZCApOwotICAgICAgfQotICAgICAgYm9vbCBmaW5hbGl6ZVRv
a2VuT2sgPSB0cnVlOwotICAgICAgd2hpbGUgKCBjb21tYS50eXBlXyA9PSB0b2tlbkNvbW1lbnQg
JiYKLSAgICAgICAgICAgICAgZmluYWxpemVUb2tlbk9rICkKLSAgICAgICAgIGZpbmFsaXplVG9r
ZW5PayA9IHJlYWRUb2tlbiggY29tbWEgKTsKLSAgICAgIGlmICggY29tbWEudHlwZV8gPT0gdG9r
ZW5PYmplY3RFbmQgKQotICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICB9Ci0gICByZXR1cm4gYWRk
RXJyb3JBbmRSZWNvdmVyKCAiTWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbk5hbWUsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdG9rZW5PYmplY3RFbmQgKTsKLX0KLQotCi1ib29sIAotUmVhZGVyOjpy
ZWFkQXJyYXkoIFRva2VuICYvKnRva2VuU3RhcnQqLyApCi17Ci0gICBjdXJyZW50VmFsdWUoKSA9
IFZhbHVlKCBhcnJheVZhbHVlICk7Ci0gICBza2lwU3BhY2VzKCk7Ci0gICBpZiAoICpjdXJyZW50
XyA9PSAnXScgKSAvLyBlbXB0eSBhcnJheQotICAgewotICAgICAgVG9rZW4gZW5kQXJyYXk7Ci0g
ICAgICByZWFkVG9rZW4oIGVuZEFycmF5ICk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgIH0KLSAg
IGludCBpbmRleCA9IDA7Ci0gICBmb3IgKDs7KQotICAgewotICAgICAgVmFsdWUgJnZhbHVlID0g
Y3VycmVudFZhbHVlKClbIGluZGV4KysgXTsKLSAgICAgIG5vZGVzXy5wdXNoKCAmdmFsdWUgKTsK
LSAgICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKLSAgICAgIG5vZGVzXy5wb3AoKTsKLSAgICAg
IGlmICggIW9rICkgLy8gZXJyb3IgYWxyZWFkeSBzZXQKLSAgICAgICAgIHJldHVybiByZWNvdmVy
RnJvbUVycm9yKCB0b2tlbkFycmF5RW5kICk7Ci0KLSAgICAgIFRva2VuIHRva2VuOwotICAgICAg
Ly8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KLSAgICAgIG9r
ID0gcmVhZFRva2VuKCB0b2tlbiApOwotICAgICAgd2hpbGUgKCB0b2tlbi50eXBlXyA9PSB0b2tl
bkNvbW1lbnQgICYmICBvayApCi0gICAgICB7Ci0gICAgICAgICBvayA9IHJlYWRUb2tlbiggdG9r
ZW4gKTsKLSAgICAgIH0KLSAgICAgIGJvb2wgYmFkVG9rZW5UeXBlID0gKCB0b2tlbi50eXBlXyAh
PSB0b2tlbkFycmF5U2VwYXJhdG9yICAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv
a2VuLnR5cGVfICE9IHRva2VuQXJyYXlFbmQgKTsKLSAgICAgIGlmICggIW9rICB8fCAgYmFkVG9r
ZW5UeXBlICkKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoICJN
aXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkgZGVjbGFyYXRpb24iLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRva2VuQXJyYXlFbmQgKTsKLSAgICAgIH0KLSAgICAgIGlmICggdG9rZW4udHlw
ZV8gPT0gdG9rZW5BcnJheUVuZCApCi0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVybiB0
cnVlOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OmRlY29kZU51bWJlciggVG9rZW4gJnRva2VuICkK
LXsKLSAgIGJvb2wgaXNEb3VibGUgPSBmYWxzZTsKLSAgIGZvciAoIExvY2F0aW9uIGluc3BlY3Qg
PSB0b2tlbi5zdGFydF87IGluc3BlY3QgIT0gdG9rZW4uZW5kXzsgKytpbnNwZWN0ICkKLSAgIHsK
LSAgICAgIGlzRG91YmxlID0gaXNEb3VibGUgIAotICAgICAgICAgICAgICAgICB8fCAgaW4oICpp
bnNwZWN0LCAnLicsICdlJywgJ0UnLCAnKycgKSAgCi0gICAgICAgICAgICAgICAgIHx8ICAoICpp
bnNwZWN0ID09ICctJyAgJiYgIGluc3BlY3QgIT0gdG9rZW4uc3RhcnRfICk7Ci0gICB9Ci0gICBp
ZiAoIGlzRG91YmxlICkKLSAgICAgIHJldHVybiBkZWNvZGVEb3VibGUoIHRva2VuICk7Ci0gICAv
LyBBdHRlbXB0cyB0byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFuIGludGVnZXIuIElmIHRoZSBudW1i
ZXIgaXMKLSAgIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBvZiBh
biBpbnRlZ2VyIHRoZW4KLSAgIC8vIHdlIGRlY29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgot
ICAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XzsKLSAgIGJvb2wgaXNOZWdhdGl2ZSA9
ICpjdXJyZW50ID09ICctJzsKLSAgIGlmICggaXNOZWdhdGl2ZSApCi0gICAgICArK2N1cnJlbnQ7
Ci0gICBWYWx1ZTo6TGFyZ2VzdFVJbnQgbWF4SW50ZWdlclZhbHVlID0gaXNOZWdhdGl2ZSA/IFZh
bHVlOjpMYXJnZXN0VUludCgtVmFsdWU6Om1pbkxhcmdlc3RJbnQpIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBWYWx1ZTo6bWF4TGFyZ2VzdFVJ
bnQ7Ci0gICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50ZWdlclZhbHVlIC8g
MTA7Ci0gICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOwotICAgd2hpbGUgKCBjdXJyZW50
IDwgdG9rZW4uZW5kXyApCi0gICB7Ci0gICAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgICAg
aWYgKCBjIDwgJzAnICB8fCAgYyA+ICc5JyApCi0gICAgICAgICByZXR1cm4gYWRkRXJyb3IoICIn
IiArIHN0ZDo6c3RyaW5nKCB0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8gKSArICInIGlzIG5vdCBh
IG51bWJlci4iLCB0b2tlbiApOwotICAgICAgVmFsdWU6OlVJbnQgZGlnaXQoYyAtICcwJyk7Ci0g
ICAgICBpZiAoIHZhbHVlID49IHRocmVzaG9sZCApCi0gICAgICB7Ci0gICAgICAgICAvLyBXZSd2
ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1heCB2YWx1ZSBkaXZpZGVkIGJ5IDEwIChyb3VuZGVkIGRv
d24pLiBJZgotICAgICAgICAgLy8gYSkgd2UndmUgb25seSBqdXN0IHRvdWNoZWQgdGhlIGxpbWl0
LCBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0LCBhbmQKLSAgICAgICAgIC8vIGMpIGl0J3Mgc21h
bGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5kaW5nIGRlbHRhLCB3ZSdyZSBva2F5LgotICAg
ICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVtYmVyIGFzIGEgZG91YmxlIHRvIGF2b2lk
IG92ZXJmbG93LgotICAgICAgICAgaWYgKHZhbHVlID4gdGhyZXNob2xkIHx8Ci0gICAgICAgICAg
ICAgY3VycmVudCAhPSB0b2tlbi5lbmRfIHx8Ci0gICAgICAgICAgICAgZGlnaXQgPiBtYXhJbnRl
Z2VyVmFsdWUgJSAxMCkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVEb3Vi
bGUoIHRva2VuICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB2YWx1ZSA9IHZhbHVlICog
MTAgKyBkaWdpdDsKLSAgIH0KLSAgIGlmICggaXNOZWdhdGl2ZSApCi0gICAgICBjdXJyZW50VmFs
dWUoKSA9IC1WYWx1ZTo6TGFyZ2VzdEludCggdmFsdWUgKTsKLSAgIGVsc2UgaWYgKCB2YWx1ZSA8
PSBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1heEludCkgKQotICAgICAgY3VycmVudFZhbHVl
KCkgPSBWYWx1ZTo6TGFyZ2VzdEludCggdmFsdWUgKTsKLSAgIGVsc2UKLSAgICAgIGN1cnJlbnRW
YWx1ZSgpID0gdmFsdWU7Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1ib29sIAotUmVhZGVyOjpk
ZWNvZGVEb3VibGUoIFRva2VuICZ0b2tlbiApCi17Ci0gICBkb3VibGUgdmFsdWUgPSAwOwotICAg
Y29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKLSAgIGludCBjb3VudDsKLSAgIGludCBsZW5ndGgg
PSBpbnQodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0Xyk7Ci0KLSAgIC8vIFNhbml0eSBjaGVjayB0
byBhdm9pZCBidWZmZXIgb3ZlcmZsb3cgZXhwbG9pdHMuCi0gICBpZiAobGVuZ3RoIDwgMCkgewot
ICAgICAgcmV0dXJuIGFkZEVycm9yKCAiVW5hYmxlIHRvIHBhcnNlIHRva2VuIGxlbmd0aCIsIHRv
a2VuICk7Ci0gICB9Ci0KLSAgIC8vIEF2b2lkIHVzaW5nIGEgc3RyaW5nIGNvbnN0YW50IGZvciB0
aGUgZm9ybWF0IGNvbnRyb2wgc3RyaW5nIGdpdmVuIHRvCi0gICAvLyBzc2NhbmYsIGFzIHRoaXMg
Y2FuIGNhdXNlIGhhcmQgdG8gZGVidWcgY3Jhc2hlcyBvbiBPUyBYLiBTZWUgaGVyZSBmb3IgbW9y
ZQotICAgLy8gaW5mbzoKLSAgIC8vCi0gICAvLyAgICAgaHR0cDovL2RldmVsb3Blci5hcHBsZS5j
b20vbGlicmFyeS9tYWMvI0RPQ1VNRU5UQVRJT04vRGV2ZWxvcGVyVG9vbHMvZ2NjLTQuMC4xL2dj
Yy9JbmNvbXBhdGliaWxpdGllcy5odG1sCi0gICBjaGFyIGZvcm1hdFtdID0gIiVsZiI7Ci0KLSAg
IGlmICggbGVuZ3RoIDw9IGJ1ZmZlclNpemUgKQotICAgewotICAgICAgQ2hhciBidWZmZXJbYnVm
ZmVyU2l6ZSsxXTsKLSAgICAgIG1lbWNweSggYnVmZmVyLCB0b2tlbi5zdGFydF8sIGxlbmd0aCAp
OwotICAgICAgYnVmZmVyW2xlbmd0aF0gPSAwOwotICAgICAgY291bnQgPSBzc2NhbmYoIGJ1ZmZl
ciwgZm9ybWF0LCAmdmFsdWUgKTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIHN0ZDo6c3Ry
aW5nIGJ1ZmZlciggdG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfICk7Ci0gICAgICBjb3VudCA9IHNz
Y2FuZiggYnVmZmVyLmNfc3RyKCksIGZvcm1hdCwgJnZhbHVlICk7Ci0gICB9Ci0KLSAgIGlmICgg
Y291bnQgIT0gMSApCi0gICAgICByZXR1cm4gYWRkRXJyb3IoICInIiArIHN0ZDo6c3RyaW5nKCB0
b2tlbi5zdGFydF8sIHRva2VuLmVuZF8gKSArICInIGlzIG5vdCBhIG51bWJlci4iLCB0b2tlbiAp
OwotICAgY3VycmVudFZhbHVlKCkgPSB2YWx1ZTsKLSAgIHJldHVybiB0cnVlOwotfQotCi0KLWJv
b2wgCi1SZWFkZXI6OmRlY29kZVN0cmluZyggVG9rZW4gJnRva2VuICkKLXsKLSAgIHN0ZDo6c3Ry
aW5nIGRlY29kZWQ7Ci0gICBpZiAoICFkZWNvZGVTdHJpbmcoIHRva2VuLCBkZWNvZGVkICkgKQot
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgY3VycmVudFZhbHVlKCkgPSBkZWNvZGVkOwotICAgcmV0
dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2RlU3RyaW5nKCBUb2tlbiAmdG9r
ZW4sIHN0ZDo6c3RyaW5nICZkZWNvZGVkICkKLXsKLSAgIGRlY29kZWQucmVzZXJ2ZSggdG9rZW4u
ZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIgKTsKLSAgIExvY2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5z
dGFydF8gKyAxOyAvLyBza2lwICciJwotICAgTG9jYXRpb24gZW5kID0gdG9rZW4uZW5kXyAtIDE7
ICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCi0gICB3aGlsZSAoIGN1cnJlbnQgIT0gZW5kICkK
LSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICBpZiAoIGMgPT0gJyInICkK
LSAgICAgICAgIGJyZWFrOwotICAgICAgZWxzZSBpZiAoIGMgPT0gJ1xcJyApCi0gICAgICB7Ci0g
ICAgICAgICBpZiAoIGN1cnJlbnQgPT0gZW5kICkKLSAgICAgICAgICAgIHJldHVybiBhZGRFcnJv
ciggIkVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCApOwot
ICAgICAgICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsrOwotICAgICAgICAgc3dpdGNoICggZXNj
YXBlICkKLSAgICAgICAgIHsKLSAgICAgICAgIGNhc2UgJyInOiBkZWNvZGVkICs9ICciJzsgYnJl
YWs7Ci0gICAgICAgICBjYXNlICcvJzogZGVjb2RlZCArPSAnLyc7IGJyZWFrOwotICAgICAgICAg
Y2FzZSAnXFwnOiBkZWNvZGVkICs9ICdcXCc7IGJyZWFrOwotICAgICAgICAgY2FzZSAnYic6IGRl
Y29kZWQgKz0gJ1xiJzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICdmJzogZGVjb2RlZCArPSAnXGYn
OyBicmVhazsKLSAgICAgICAgIGNhc2UgJ24nOiBkZWNvZGVkICs9ICdcbic7IGJyZWFrOwotICAg
ICAgICAgY2FzZSAncic6IGRlY29kZWQgKz0gJ1xyJzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICd0
JzogZGVjb2RlZCArPSAnXHQnOyBicmVhazsKLSAgICAgICAgIGNhc2UgJ3UnOgotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7Ci0gICAgICAgICAgICAg
ICBpZiAoICFkZWNvZGVVbmljb2RlQ29kZVBvaW50KCB0b2tlbiwgY3VycmVudCwgZW5kLCB1bmlj
b2RlICkgKQotICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAg
ZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgodW5pY29kZSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gYWRk
RXJyb3IoICJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50ICk7
Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBlbHNlCi0gICAgICB7Ci0gICAgICAgICBkZWNv
ZGVkICs9IGM7Ci0gICAgICB9Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbAotUmVh
ZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KCBUb2tlbiAmdG9rZW4sIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uICZjdXJyZW50LCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApCi17Ci0KLSAgIGlm
ICggIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSggdG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5p
Y29kZSApICkKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgIGlmICh1bmljb2RlID49IDB4RDgwMCAm
JiB1bmljb2RlIDw9IDB4REJGRikKLSAgIHsKLSAgICAgIC8vIHN1cnJvZ2F0ZSBwYWlycwotICAg
ICAgaWYgKGVuZCAtIGN1cnJlbnQgPCA2KQotICAgICAgICAgcmV0dXJuIGFkZEVycm9yKCAiYWRk
aXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2RlIHN1cnJvZ2F0
ZSBwYWlyLiIsIHRva2VuLCBjdXJyZW50ICk7Ci0gICAgICB1bnNpZ25lZCBpbnQgc3Vycm9nYXRl
UGFpcjsKLSAgICAgIGlmICgqKGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKyk9PSAn
dScpCi0gICAgICB7Ci0gICAgICAgICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKCB0
b2tlbiwgY3VycmVudCwgZW5kLCBzdXJyb2dhdGVQYWlyICkpCi0gICAgICAgICB7Ci0gICAgICAg
ICAgICB1bmljb2RlID0gMHgxMDAwMCArICgodW5pY29kZSAmIDB4M0ZGKSA8PCAxMCkgKyAoc3Vy
cm9nYXRlUGFpciAmIDB4M0ZGKTsKLSAgICAgICAgIH0gCi0gICAgICAgICBlbHNlCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9IAotICAgICAgZWxzZQotICAgICAgICAgcmV0dXJu
IGFkZEVycm9yKCAiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNv
bmQgaGFsZiBvZiBhIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIiLCB0b2tlbiwgY3VycmVudCApOwot
ICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgCi1SZWFkZXI6OmRlY29kZVVuaWNvZGVF
c2NhcGVTZXF1ZW5jZSggVG9rZW4gJnRva2VuLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiAmY3VycmVudCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYXRpb24gZW5kLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgJnVuaWNvZGUgKQotewotICAgaWYgKCBlbmQgLSBjdXJyZW50
IDwgNCApCi0gICAgICByZXR1cm4gYWRkRXJyb3IoICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVu
Y2UgaW4gc3RyaW5nOiBmb3VyIGRpZ2l0cyBleHBlY3RlZC4iLCB0b2tlbiwgY3VycmVudCApOwot
ICAgdW5pY29kZSA9IDA7Ci0gICBmb3IgKCBpbnQgaW5kZXggPTA7IGluZGV4IDwgNDsgKytpbmRl
eCApCi0gICB7Ci0gICAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgICAgdW5pY29kZSAqPSAx
NjsKLSAgICAgIGlmICggYyA+PSAnMCcgICYmICBjIDw9ICc5JyApCi0gICAgICAgICB1bmljb2Rl
ICs9IGMgLSAnMCc7Ci0gICAgICBlbHNlIGlmICggYyA+PSAnYScgICYmICBjIDw9ICdmJyApCi0g
ICAgICAgICB1bmljb2RlICs9IGMgLSAnYScgKyAxMDsKLSAgICAgIGVsc2UgaWYgKCBjID49ICdB
JyAgJiYgIGMgPD0gJ0YnICkKLSAgICAgICAgIHVuaWNvZGUgKz0gYyAtICdBJyArIDEwOwotICAg
ICAgZWxzZQotICAgICAgICAgcmV0dXJuIGFkZEVycm9yKCAiQmFkIHVuaWNvZGUgZXNjYXBlIHNl
cXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwgZGlnaXQgZXhwZWN0ZWQuIiwgdG9rZW4sIGN1
cnJlbnQgKTsKLSAgIH0KLSAgIHJldHVybiB0cnVlOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OmFk
ZEVycm9yKCBjb25zdCBzdGQ6OnN0cmluZyAmbWVzc2FnZSwgCi0gICAgICAgICAgICAgICAgICBU
b2tlbiAmdG9rZW4sCi0gICAgICAgICAgICAgICAgICBMb2NhdGlvbiBleHRyYSApCi17Ci0gICBF
cnJvckluZm8gaW5mbzsKLSAgIGluZm8udG9rZW5fID0gdG9rZW47Ci0gICBpbmZvLm1lc3NhZ2Vf
ID0gbWVzc2FnZTsKLSAgIGluZm8uZXh0cmFfID0gZXh0cmE7Ci0gICBlcnJvcnNfLnB1c2hfYmFj
ayggaW5mbyApOwotICAgcmV0dXJuIGZhbHNlOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OnJlY292
ZXJGcm9tRXJyb3IoIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbiApCi17Ci0gICBpbnQgZXJyb3JD
b3VudCA9IGludChlcnJvcnNfLnNpemUoKSk7Ci0gICBUb2tlbiBza2lwOwotICAgZm9yICg7OykK
LSAgIHsKLSAgICAgIGlmICggIXJlYWRUb2tlbihza2lwKSApCi0gICAgICAgICBlcnJvcnNfLnJl
c2l6ZSggZXJyb3JDb3VudCApOyAvLyBkaXNjYXJkIGVycm9ycyBjYXVzZWQgYnkgcmVjb3ZlcnkK
LSAgICAgIGlmICggc2tpcC50eXBlXyA9PSBza2lwVW50aWxUb2tlbiAgfHwgIHNraXAudHlwZV8g
PT0gdG9rZW5FbmRPZlN0cmVhbSApCi0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIGVycm9yc18u
cmVzaXplKCBlcnJvckNvdW50ICk7Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotYm9vbCAKLVJl
YWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKCBjb25zdCBzdGQ6OnN0cmluZyAmbWVzc2FnZSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4gJnRva2VuLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbiApCi17Ci0gICBhZGRFcnJvcigg
bWVzc2FnZSwgdG9rZW4gKTsKLSAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKCBza2lwVW50aWxU
b2tlbiApOwotfQotCi0KLVZhbHVlICYKLVJlYWRlcjo6Y3VycmVudFZhbHVlKCkKLXsKLSAgIHJl
dHVybiAqKG5vZGVzXy50b3AoKSk7Ci19Ci0KLQotUmVhZGVyOjpDaGFyIAotUmVhZGVyOjpnZXRO
ZXh0Q2hhcigpCi17Ci0gICBpZiAoIGN1cnJlbnRfID09IGVuZF8gKQotICAgICAgcmV0dXJuIDA7
Ci0gICByZXR1cm4gKmN1cnJlbnRfKys7Ci19Ci0KLQotdm9pZCAKLVJlYWRlcjo6Z2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKCBMb2NhdGlvbiBsb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgJmxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50ICZjb2x1bW4gKSBjb25zdAotewotICAgTG9jYXRpb24gY3VycmVudCA9IGJlZ2luXzsK
LSAgIExvY2F0aW9uIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OwotICAgbGluZSA9IDA7Ci0gICB3
aGlsZSAoIGN1cnJlbnQgPCBsb2NhdGlvbiAgJiYgIGN1cnJlbnQgIT0gZW5kXyApCi0gICB7Ci0g
ICAgICBDaGFyIGMgPSAqY3VycmVudCsrOwotICAgICAgaWYgKCBjID09ICdccicgKQotICAgICAg
ewotICAgICAgICAgaWYgKCAqY3VycmVudCA9PSAnXG4nICkKLSAgICAgICAgICAgICsrY3VycmVu
dDsKLSAgICAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OwotICAgICAgICAgKytsaW5lOwot
ICAgICAgfQotICAgICAgZWxzZSBpZiAoIGMgPT0gJ1xuJyApCi0gICAgICB7Ci0gICAgICAgICBs
YXN0TGluZVN0YXJ0ID0gY3VycmVudDsKLSAgICAgICAgICsrbGluZTsKLSAgICAgIH0KLSAgIH0K
LSAgIC8vIGNvbHVtbiAmIGxpbmUgc3RhcnQgYXQgMQotICAgY29sdW1uID0gaW50KGxvY2F0aW9u
IC0gbGFzdExpbmVTdGFydCkgKyAxOwotICAgKytsaW5lOwotfQotCi0KLXN0ZDo6c3RyaW5nCi1S
ZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbiggTG9jYXRpb24gbG9jYXRpb24gKSBjb25z
dAotewotICAgaW50IGxpbmUsIGNvbHVtbjsKLSAgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbigg
bG9jYXRpb24sIGxpbmUsIGNvbHVtbiApOwotICAgY2hhciBidWZmZXJbMTgrMTYrMTYrMV07Ci0g
ICBzcHJpbnRmKCBidWZmZXIsICJMaW5lICVkLCBDb2x1bW4gJWQiLCBsaW5lLCBjb2x1bW4gKTsK
LSAgIHJldHVybiBidWZmZXI7Ci19Ci0KLQotLy8gRGVwcmVjYXRlZC4gUHJlc2VydmVkIGZvciBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1zdGQ6OnN0cmluZyAKLVJlYWRlcjo6Z2V0Rm9ybWF0ZWRF
cnJvck1lc3NhZ2VzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZ2V0Rm9ybWF0dGVkRXJyb3JNZXNz
YWdlcygpOwotfQotCi0KLXN0ZDo6c3RyaW5nIAotUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzKCkgY29uc3QKLXsKLSAgIHN0ZDo6c3RyaW5nIGZvcm1hdHRlZE1lc3NhZ2U7Ci0gICBm
b3IgKCBFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7Ci0g
ICAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7Ci0gICAgICAgICArK2l0RXJyb3IgKQot
ICAgewotICAgICAgY29uc3QgRXJyb3JJbmZvICZlcnJvciA9ICppdEVycm9yOwotICAgICAgZm9y
bWF0dGVkTWVzc2FnZSArPSAiKiAiICsgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKCBlcnJvci50
b2tlbl8uc3RhcnRfICkgKyAiXG4iOwotICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiICAiICsg
ZXJyb3IubWVzc2FnZV8gKyAiXG4iOwotICAgICAgaWYgKCBlcnJvci5leHRyYV8gKQotICAgICAg
ICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiU2VlICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4o
IGVycm9yLmV4dHJhXyApICsgIiBmb3IgZGV0YWlsLlxuIjsKLSAgIH0KLSAgIHJldHVybiBmb3Jt
YXR0ZWRNZXNzYWdlOwotfQotCi0KLXN0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+Piggc3RkOjppc3Ry
ZWFtICZzaW4sIFZhbHVlICZyb290ICkKLXsKLSAgICBKc29uOjpSZWFkZXIgcmVhZGVyOwotICAg
IGJvb2wgb2sgPSByZWFkZXIucGFyc2Uoc2luLCByb290LCB0cnVlKTsKLSAgICBpZiAoIW9rKSB7
Ci0gICAgICBmcHJpbnRmKAotICAgICAgICAgIHN0ZGVyciwKLSAgICAgICAgICAiRXJyb3IgZnJv
bSByZWFkZXI6ICVzIiwKLSAgICAgICAgICByZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdl
cygpLmNfc3RyKCkpOwotCi0gICAgICBKU09OX0ZBSUxfTUVTU0FHRSgicmVhZGVyIGVycm9yIik7
Ci0gICAgfQotICAgIHJldHVybiBzaW47Ci19Ci0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL292ZXJyaWRlcy9zcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL3Ny
Yy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTJhNGE2NzYxZDJjZGIzNDZjMDc2NGM1ZGQ4NDI2NmNjNzYxOWQzYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvb3ZlcnJpZGVzL3NyYy9saWJfanNvbi9qc29u
X3ZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MzAgKzAsMCBAQAotLy8gQ29weXJpZ2h0
IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCi0vLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5z
ZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAotLy8gcmVjb2duaXplZCBpbiB5b3Vy
IGp1cmlzZGljdGlvbi4KLS8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0
IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCi0KLSNpZiAhZGVmaW5lZChK
U09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+Ci0jIGlu
Y2x1ZGUgPGpzb24vdmFsdWUuaD4KLSMgaW5jbHVkZSA8anNvbi93cml0ZXIuaD4KLSMgaWZuZGVm
IEpTT05fVVNFX1NJTVBMRV9JTlRFUk5BTF9BTExPQ0FUT1IKLSMgIGluY2x1ZGUgImpzb25fYmF0
Y2hhbGxvY2F0b3IuaCIKLSMgZW5kaWYgLy8gI2lmbmRlZiBKU09OX1VTRV9TSU1QTEVfSU5URVJO
QUxfQUxMT0NBVE9SCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
Ci0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgPHNzdHJlYW0+Ci0jaW5jbHVkZSA8dXRpbGl0
eT4KLSNpbmNsdWRlIDxzdGRleGNlcHQ+Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxj
YXNzZXJ0PgotI2lmZGVmIEpTT05fVVNFX0NQUFRMCi0jIGluY2x1ZGUgPGNwcHRsL2NvbnN0c3Ry
aW5nLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxjc3RkZGVmPiAgICAvLyBzaXplX3QKLQotI2RlZmlu
ZSBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRSBhc3NlcnQoIGZhbHNlICkKLQotbmFtZXNwYWNlIEpz
b24gewotCi0vLyBUaGlzIGlzIGEgd2Fsa2Fyb3VuZCB0byBhdm9pZCB0aGUgc3RhdGljIGluaXRp
YWxpemF0aW9uIG9mIFZhbHVlOjpudWxsLgotLy8ga051bGwgbXVzdCBiZSB3b3JkLWFsaWduZWQg
dG8gYXZvaWQgY3Jhc2hpbmcgb24gQVJNLiAgV2UgdXNlIGFuIGFsaWdubWVudCBvZgotLy8gOCAo
aW5zdGVhZCBvZiA0KSBhcyBhIGJpdCBvZiBmdXR1cmUtcHJvb2ZpbmcuCi0jaWYgZGVmaW5lZChf
X0FSTUVMX18pCi0jZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpIF9fYXR0cmlidXRlX18o
KGFsaWduZWQoYnl0ZV9hbGlnbm1lbnQpKSkKLSNlbHNlCi0jZGVmaW5lIEFMSUdOQVMoYnl0ZV9h
bGlnbm1lbnQpCi0jZW5kaWYKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEFMSUdOQVMoOCkg
a051bGxbc2l6ZW9mKFZhbHVlKV0gPSB7MH07Ci1jb25zdCBWYWx1ZSYgVmFsdWU6Om51bGwgPSBy
ZWludGVycHJldF9jYXN0PGNvbnN0IFZhbHVlJj4oa051bGwpOwotCi1jb25zdCBJbnQgVmFsdWU6
Om1pbkludCA9IEludCggfihVSW50KC0xKS8yKSApOwotY29uc3QgSW50IFZhbHVlOjptYXhJbnQg
PSBJbnQoIFVJbnQoLTEpLzIgKTsKLWNvbnN0IFVJbnQgVmFsdWU6Om1heFVJbnQgPSBVSW50KC0x
KTsKLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLWNvbnN0IEludDY0IFZhbHVlOjptaW5J
bnQ2NCA9IEludDY0KCB+KFVJbnQ2NCgtMSkvMikgKTsKLWNvbnN0IEludDY0IFZhbHVlOjptYXhJ
bnQ2NCA9IEludDY0KCBVSW50NjQoLTEpLzIgKTsKLWNvbnN0IFVJbnQ2NCBWYWx1ZTo6bWF4VUlu
dDY0ID0gVUludDY0KC0xKTsKLS8vIFRoZSBjb25zdGFudCBpcyBoYXJkLWNvZGVkIGJlY2F1c2Ug
c29tZSBjb21waWxlciBoYXZlIHRyb3VibGUKLS8vIGNvbnZlcnRpbmcgVmFsdWU6Om1heFVJbnQ2
NCB0byBhIGRvdWJsZSBjb3JyZWN0bHkgKEFJWC94bEMpLgotLy8gQXNzdW1lcyB0aGF0IFVJbnQ2
NCBpcyBhIDY0IGJpdHMgaW50ZWdlci4KLXN0YXRpYyBjb25zdCBkb3VibGUgbWF4VUludDY0QXNE
b3VibGUgPSAxODQ0Njc0NDA3MzcwOTU1MTYxNS4wOwotI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9I
QVNfSU5UNjQpCi1jb25zdCBMYXJnZXN0SW50IFZhbHVlOjptaW5MYXJnZXN0SW50ID0gTGFyZ2Vz
dEludCggfihMYXJnZXN0VUludCgtMSkvMikgKTsKLWNvbnN0IExhcmdlc3RJbnQgVmFsdWU6Om1h
eExhcmdlc3RJbnQgPSBMYXJnZXN0SW50KCBMYXJnZXN0VUludCgtMSkvMiApOwotY29uc3QgTGFy
Z2VzdFVJbnQgVmFsdWU6Om1heExhcmdlc3RVSW50ID0gTGFyZ2VzdFVJbnQoLTEpOwotCi0KLS8v
LyBVbmtub3duIHNpemUgbWFya2VyCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHVua25vd24g
PSAodW5zaWduZWQpLTE7Ci0KLSNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotc3RhdGljIGlubGlu
ZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWluLCBVIG1heCkgewotICAgcmV0dXJuIGQgPj0g
bWluICYmIGQgPD0gbWF4OwotfQotI2Vsc2UgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRf
RE9VQkxFX0NPTlZFUlNJT04pCi1zdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3VibGUo
IEpzb246OlVJbnQ2NCB2YWx1ZSApCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4o
IEludDY0KHZhbHVlLzIpICkgKiAyLjAgKyBJbnQ2NCh2YWx1ZSAmIDEpOwotfQotCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPgotc3RhdGljIGlubGluZSBkb3VibGUgaW50ZWdlclRvRG91YmxlKCBUIHZh
bHVlICkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPiggdmFsdWUgKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci1zdGF0aWMgaW5saW5lIGJvb2wgSW5S
YW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0gICByZXR1cm4gZCA+PSBpbnRlZ2VyVG9E
b3VibGUobWluKSAmJiBkIDw9IGludGVnZXJUb0RvdWJsZShtYXgpOwotfQotI2VuZGlmIC8vIGlm
ICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotCi0KLS8qKiBEdXBs
aWNhdGVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHZhbHVlLgotICogQHBhcmFtIHZhbHVlIFBvaW50
ZXIgdG8gdGhlIHN0cmluZyB0byBkdXBsaWNhdGUuIE11c3QgYmUgemVyby10ZXJtaW5hdGVkIGlm
Ci0gKiAgICAgICAgICAgICAgbGVuZ3RoIGlzICJ1bmtub3duIi4KLSAqIEBwYXJhbSBsZW5ndGgg
TGVuZ3RoIG9mIHRoZSB2YWx1ZS4gaWYgZXF1YWxzIHRvIHVua25vd24sIHRoZW4gaXQgd2lsbCBi
ZQotICogICAgICAgICAgICAgICBjb21wdXRlZCB1c2luZyBzdHJsZW4odmFsdWUpLgotICogQHJl
dHVybiBQb2ludGVyIG9uIHRoZSBkdXBsaWNhdGUgaW5zdGFuY2Ugb2Ygc3RyaW5nLgotICovCi1z
dGF0aWMgaW5saW5lIGNoYXIgKgotZHVwbGljYXRlU3RyaW5nVmFsdWUoIGNvbnN0IGNoYXIgKnZh
bHVlLCAKLSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gdW5rbm93
biApCi17Ci0gICBpZiAoIGxlbmd0aCA9PSB1bmtub3duICkKLSAgICAgIGxlbmd0aCA9ICh1bnNp
Z25lZCBpbnQpc3RybGVuKHZhbHVlKTsKLQotICAgLy8gQXZvaWQgYW4gaW50ZWdlciBvdmVyZmxv
dyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3RoCi0gICAvLyB0
byBhIHNhbmUgdmFsdWUuCi0gICBpZiAobGVuZ3RoID49ICh1bnNpZ25lZClWYWx1ZTo6bWF4SW50
KQotICAgICAgbGVuZ3RoID0gVmFsdWU6Om1heEludCAtIDE7Ci0KLSAgIGNoYXIgKm5ld1N0cmlu
ZyA9IHN0YXRpY19jYXN0PGNoYXIgKj4oIG1hbGxvYyggbGVuZ3RoICsgMSApICk7Ci0gICBKU09O
X0FTU0VSVF9NRVNTQUdFKCBuZXdTdHJpbmcgIT0gMCwgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJp
bmcgdmFsdWUgYnVmZmVyIiApOwotICAgbWVtY3B5KCBuZXdTdHJpbmcsIHZhbHVlLCBsZW5ndGgg
KTsKLSAgIG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKLSAgIHJldHVybiBuZXdTdHJpbmc7Ci19Ci0K
LQotLyoqIEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5IGR1cGxpY2F0ZVN0cmluZ1ZhbHVl
KCkuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAKLXJlbGVhc2VTdHJpbmdWYWx1ZSggY2hhciAq
dmFsdWUgKQotewotICAgaWYgKCB2YWx1ZSApCi0gICAgICBmcmVlKCB2YWx1ZSApOwotfQotCi19
IC8vIG5hbWVzcGFjZSBKc29uCi0KLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotLy8gVmFsdWVJbnRlcm5hbHMuLi4KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLSNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaWZk
ZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0jICBpbmNsdWRlICJqc29uX2ludGVybmFs
YXJyYXkuaW5sIgotIyAgaW5jbHVkZSAianNvbl9pbnRlcm5hbG1hcC5pbmwiCi0jIGVuZGlmIC8v
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotCi0jIGluY2x1ZGUgImpzb25fdmFsdWVpdGVy
YXRvci5pbmwiCi0jZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0K
LW5hbWVzcGFjZSBKc29uIHsKLQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwotLy8gY2xhc3MgVmFsdWU6OkNvbW1lbnRJbmZvCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi0KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbygp
Ci0gICA6IGNvbW1lbnRfKCAwICkKLXsKLX0KLQotVmFsdWU6OkNvbW1lbnRJbmZvOjp+Q29tbWVu
dEluZm8oKQotewotICAgaWYgKCBjb21tZW50XyApCi0gICAgICByZWxlYXNlU3RyaW5nVmFsdWUo
IGNvbW1lbnRfICk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlOjpDb21tZW50SW5mbzo6c2V0Q29tbWVu
dCggY29uc3QgY2hhciAqdGV4dCApCi17Ci0gICBpZiAoIGNvbW1lbnRfICkKLSAgICAgIHJlbGVh
c2VTdHJpbmdWYWx1ZSggY29tbWVudF8gKTsKLSAgIEpTT05fQVNTRVJUKCB0ZXh0ICE9IDAgKTsK
LSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIHRleHRbMF09PSdcMCcgfHwgdGV4dFswXT09Jy8nLCAi
Q29tbWVudHMgbXVzdCBzdGFydCB3aXRoIC8iKTsKLSAgIC8vIEl0IHNlZW1zIHRoYXQgLyoqLyBz
dHlsZSBjb21tZW50cyBhcmUgYWNjZXB0YWJsZSBhcyB3ZWxsLgotICAgY29tbWVudF8gPSBkdXBs
aWNhdGVTdHJpbmdWYWx1ZSggdGV4dCApOwotfQotCi0KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlOjpDWlN0cmluZwotLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotIyBpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5U
RVJOQUxfTUFQCi0KLS8vIE5vdGVzOiBpbmRleF8gaW5kaWNhdGVzIGlmIHRoZSBzdHJpbmcgd2Fz
IGFsbG9jYXRlZCB3aGVuCi0vLyBhIHN0cmluZyBpcyBzdG9yZWQuCi0KLVZhbHVlOjpDWlN0cmlu
Zzo6Q1pTdHJpbmcoIEFycmF5SW5kZXggaW5kZXggKQotICAgOiBjc3RyXyggMCApCi0gICAsIGlu
ZGV4XyggaW5kZXggKQotewotfQotCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKCBjb25zdCBj
aGFyICpjc3RyLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSApCi0gICA6IGNzdHJfKCBhbGxv
Y2F0ZSA9PSBkdXBsaWNhdGUgPyBkdXBsaWNhdGVTdHJpbmdWYWx1ZShjc3RyKSAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNzdHIgKQotICAgLCBpbmRleF8oIGFsbG9jYXRl
ICkKLXsKLX0KLQotVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyggY29uc3QgQ1pTdHJpbmcgJm90
aGVyICkKLTogY3N0cl8oIG90aGVyLmluZGV4XyAhPSBub0R1cGxpY2F0aW9uICYmICBvdGhlci5j
c3RyXyAhPSAwCi0gICAgICAgICAgICAgICAgPyAgZHVwbGljYXRlU3RyaW5nVmFsdWUoIG90aGVy
LmNzdHJfICkKLSAgICAgICAgICAgICAgICA6IG90aGVyLmNzdHJfICkKLSAgICwgaW5kZXhfKCBv
dGhlci5jc3RyXyA/IChvdGhlci5pbmRleF8gPT0gbm9EdXBsaWNhdGlvbiA/IG5vRHVwbGljYXRp
b24gOiBkdXBsaWNhdGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgOiBvdGhlci5pbmRleF8g
KQotewotfQotCi1WYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmluZygpCi17Ci0gICBpZiAoIGNzdHJf
ICAmJiAgaW5kZXhfID09IGR1cGxpY2F0ZSApCi0gICAgICByZWxlYXNlU3RyaW5nVmFsdWUoIGNv
bnN0X2Nhc3Q8Y2hhciAqPiggY3N0cl8gKSApOwotfQotCi12b2lkIAotVmFsdWU6OkNaU3RyaW5n
Ojpzd2FwKCBDWlN0cmluZyAmb3RoZXIgKQotewotICAgc3RkOjpzd2FwKCBjc3RyXywgb3RoZXIu
Y3N0cl8gKTsKLSAgIHN0ZDo6c3dhcCggaW5kZXhfLCBvdGhlci5pbmRleF8gKTsKLX0KLQotVmFs
dWU6OkNaU3RyaW5nICYKLVZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3IgPSggY29uc3QgQ1pTdHJp
bmcgJm90aGVyICkKLXsKLSAgIENaU3RyaW5nIHRlbXAoIG90aGVyICk7Ci0gICBzd2FwKCB0ZW1w
ICk7Ci0gICByZXR1cm4gKnRoaXM7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6Q1pTdHJpbmc6Om9wZXJh
dG9yPCggY29uc3QgQ1pTdHJpbmcgJm90aGVyICkgY29uc3QgCi17Ci0gICBpZiAoIGNzdHJfICkK
LSAgICAgIHJldHVybiBzdHJjbXAoIGNzdHJfLCBvdGhlci5jc3RyXyApIDwgMDsKLSAgIHJldHVy
biBpbmRleF8gPCBvdGhlci5pbmRleF87Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6Q1pTdHJpbmc6Om9w
ZXJhdG9yPT0oIGNvbnN0IENaU3RyaW5nICZvdGhlciApIGNvbnN0IAotewotICAgaWYgKCBjc3Ry
XyApCi0gICAgICByZXR1cm4gc3RyY21wKCBjc3RyXywgb3RoZXIuY3N0cl8gKSA9PSAwOwotICAg
cmV0dXJuIGluZGV4XyA9PSBvdGhlci5pbmRleF87Ci19Ci0KLQotQXJyYXlJbmRleCAKLVZhbHVl
OjpDWlN0cmluZzo6aW5kZXgoKSBjb25zdAotewotICAgcmV0dXJuIGluZGV4XzsKLX0KLQotCi1j
b25zdCBjaGFyICoKLVZhbHVlOjpDWlN0cmluZzo6Y19zdHIoKSBjb25zdAotewotICAgcmV0dXJu
IGNzdHJfOwotfQotCi1ib29sIAotVmFsdWU6OkNaU3RyaW5nOjppc1N0YXRpY1N0cmluZygpIGNv
bnN0Ci17Ci0gICByZXR1cm4gaW5kZXhfID09IG5vRHVwbGljYXRpb247Ci19Ci0KLSNlbmRpZiAv
LyBpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0KLQotLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0v
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gY2xhc3MgVmFsdWU6OlZhbHVlCi0vLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8qISBcaW50ZXJuYWwgRGVmYXVs
dCBjb25zdHJ1Y3RvciBpbml0aWFsaXphdGlvbiBtdXN0IGJlIGVxdWl2YWxlbnQgdG86Ci0gKiBt
ZW1zZXQoIHRoaXMsIDAsIHNpemVvZihWYWx1ZSkgKQotICogVGhpcyBvcHRpbWl6YXRpb24gaXMg
dXNlZCBpbiBWYWx1ZUludGVybmFsTWFwIGZhc3QgYWxsb2NhdG9yLgotICovCi1WYWx1ZTo6VmFs
dWUoIFZhbHVlVHlwZSB0eXBlICkKLSAgIDogdHlwZV8oIHR5cGUgKQotICAgLCBhbGxvY2F0ZWRf
KCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVt
SXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHN3aXRjaCAo
IHR5cGUgKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICBicmVhazsKLSAgIGNhc2Ug
aW50VmFsdWU6Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHZhbHVlXy5pbnRfID0gMDsKLSAg
ICAgIGJyZWFrOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICB2YWx1ZV8ucmVhbF8gPSAwLjA7
Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICB2YWx1ZV8uc3RyaW5n
XyA9IDA7Ci0gICAgICBicmVhazsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgdmFsdWVf
Lm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCk7Ci0gICAgICBicmVhazsKLSNlbHNlCi0gICBjYXNl
IGFycmF5VmFsdWU6Ci0gICAgICB2YWx1ZV8uYXJyYXlfID0gYXJyYXlBbGxvY2F0b3IoKS0+bmV3
QXJyYXkoKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHZhbHVl
Xy5tYXBfID0gbWFwQWxsb2NhdG9yKCktPm5ld01hcCgpOwotICAgICAgYnJlYWs7Ci0jZW5kaWYK
LSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgdmFsdWVfLmJvb2xfID0gZmFsc2U7Ci0gICAg
ICBicmVhazsKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAg
IH0KLX0KLQotCi1WYWx1ZTo6VmFsdWUoIFVJbnQgdmFsdWUgKQotICAgOiB0eXBlXyggdWludFZh
bHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRz
XyggMCApCi17Ci0gICB2YWx1ZV8udWludF8gPSB2YWx1ZTsKLX0KLQotVmFsdWU6OlZhbHVlKCBJ
bnQgdmFsdWUgKQotICAgOiB0eXBlXyggaW50VmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxz
ZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2Vk
XyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5pbnRfID0g
dmFsdWU7Ci19Ci0KLQotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotVmFsdWU6OlZhbHVl
KCBJbnQ2NCB2YWx1ZSApCi0gICA6IHR5cGVfKCBpbnRWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8o
IGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1J
c1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLmlu
dF8gPSB2YWx1ZTsKLX0KLQotCi1WYWx1ZTo6VmFsdWUoIFVJbnQ2NCB2YWx1ZSApCi0gICA6IHR5
cGVfKCB1aW50VmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlmZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAg
ICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy51aW50XyA9IHZhbHVlOwotfQotI2VuZGlm
IC8vIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0KLVZhbHVlOjpWYWx1ZSggZG91YmxlIHZhbHVl
ICkKLSAgIDogdHlwZV8oIHJlYWxWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMg
aWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkK
LSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnJlYWxfID0gdmFsdWU7
Ci19Ci0KLVZhbHVlOjpWYWx1ZSggY29uc3QgY2hhciAqdmFsdWUgKQotICAgOiB0eXBlXyggc3Ry
aW5nVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCB0cnVlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9V
U0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21t
ZW50c18oIDAgKQotewotICAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSgg
dmFsdWUgKTsKLX0KLQotCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IGNoYXIgKmJlZ2luVmFsdWUsIAot
ICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmRWYWx1ZSApCi0gICA6IHR5cGVfKCBzdHJpbmdW
YWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9J
TlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRz
XyggMCApCi17Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCBiZWdp
blZhbHVlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNp
Z25lZCBpbnQpKGVuZFZhbHVlIC0gYmVnaW5WYWx1ZSkgKTsKLX0KLQotCi1WYWx1ZTo6VmFsdWUo
IGNvbnN0IHN0ZDo6c3RyaW5nICZ2YWx1ZSApCi0gICA6IHR5cGVfKCBzdHJpbmdWYWx1ZSApCi0g
ICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9N
QVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCApCi17
Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCB2YWx1ZS5jX3N0cigp
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBp
bnQpdmFsdWUubGVuZ3RoKCkgKTsKLQotfQotCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IFN0YXRpY1N0
cmluZyAmdmFsdWUgKQotICAgOiB0eXBlXyggc3RyaW5nVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRf
KCBmYWxzZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVt
SXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5z
dHJpbmdfID0gY29uc3RfY2FzdDxjaGFyICo+KCB2YWx1ZS5jX3N0cigpICk7Ci19Ci0KLQotIyBp
ZmRlZiBKU09OX1VTRV9DUFBUTAotVmFsdWU6OlZhbHVlKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJp
bmcgJnZhbHVlICkKLSAgIDogdHlwZV8oIHN0cmluZ1ZhbHVlICkKLSAgICwgYWxsb2NhdGVkXygg
dHJ1ZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNV
c2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5zdHJp
bmdfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUoIHZhbHVlLCB2YWx1ZS5sZW5ndGgoKSApOwotfQot
IyBlbmRpZgotCi1WYWx1ZTo6VmFsdWUoIGJvb2wgdmFsdWUgKQotICAgOiB0eXBlXyggYm9vbGVh
blZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VT
RV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1l
bnRzXyggMCApCi17Ci0gICB2YWx1ZV8uYm9vbF8gPSB2YWx1ZTsKLX0KLQotCi1WYWx1ZTo6VmFs
dWUoIGNvbnN0IFZhbHVlICZvdGhlciApCi0gICA6IHR5cGVfKCBvdGhlci50eXBlXyApCi0gICAs
IGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewot
ICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICBjYXNlIGlu
dFZhbHVlOgotICAgY2FzZSB1aW50VmFsdWU6Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgIGNhc2Ug
Ym9vbGVhblZhbHVlOgotICAgICAgdmFsdWVfID0gb3RoZXIudmFsdWVfOwotICAgICAgYnJlYWs7
Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgaWYgKCBvdGhlci52YWx1ZV8uc3RyaW5nXyAp
Ci0gICAgICB7Ci0gICAgICAgICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVl
KCBvdGhlci52YWx1ZV8uc3RyaW5nXyApOwotICAgICAgICAgYWxsb2NhdGVkXyA9IHRydWU7Ci0g
ICAgICB9Ci0gICAgICBlbHNlCi0gICAgICAgICB2YWx1ZV8uc3RyaW5nXyA9IDA7Ci0gICAgICBi
cmVhazsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5
VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2Jq
ZWN0VmFsdWVzKCAqb3RoZXIudmFsdWVfLm1hcF8gKTsKLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAg
IGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHZhbHVlXy5hcnJheV8gPSBhcnJheUFsbG9jYXRvcigp
LT5uZXdBcnJheUNvcHkoICpvdGhlci52YWx1ZV8uYXJyYXlfICk7Ci0gICAgICBicmVhazsKLSAg
IGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXyA9IG1hcEFsbG9jYXRvcigpLT5u
ZXdNYXBDb3B5KCAqb3RoZXIudmFsdWVfLm1hcF8gKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0g
ICBkZWZhdWx0OgotICAgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0gICBpZiAo
IG90aGVyLmNvbW1lbnRzXyApCi0gICB7Ci0gICAgICBjb21tZW50c18gPSBuZXcgQ29tbWVudElu
Zm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50XTsKLSAgICAgIGZvciAoIGludCBjb21tZW50ID0w
OyBjb21tZW50IDwgbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50OyArK2NvbW1lbnQgKQotICAgICAg
ewotICAgICAgICAgY29uc3QgQ29tbWVudEluZm8gJm90aGVyQ29tbWVudCA9IG90aGVyLmNvbW1l
bnRzX1tjb21tZW50XTsKLSAgICAgICAgIGlmICggb3RoZXJDb21tZW50LmNvbW1lbnRfICkKLSAg
ICAgICAgICAgIGNvbW1lbnRzX1tjb21tZW50XS5zZXRDb21tZW50KCBvdGhlckNvbW1lbnQuY29t
bWVudF8gKTsKLSAgICAgIH0KLSAgIH0KLX0KLQotCi1WYWx1ZTo6flZhbHVlKCkKLXsKLSAgIHN3
aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgY2FzZSBpbnRWYWx1
ZToKLSAgIGNhc2UgdWludFZhbHVlOgotICAgY2FzZSByZWFsVmFsdWU6Ci0gICBjYXNlIGJvb2xl
YW5WYWx1ZToKLSAgICAgIGJyZWFrOwotICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIGlmICgg
YWxsb2NhdGVkXyApCi0gICAgICAgICByZWxlYXNlU3RyaW5nVmFsdWUoIHZhbHVlXy5zdHJpbmdf
ICk7Ci0gICAgICBicmVhazsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0g
ICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgZGVsZXRlIHZh
bHVlXy5tYXBfOwotICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAg
ICAgYXJyYXlBbGxvY2F0b3IoKS0+ZGVzdHJ1Y3RBcnJheSggdmFsdWVfLmFycmF5XyApOwotICAg
ICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgbWFwQWxsb2NhdG9yKCktPmRl
c3RydWN0TWFwKCB2YWx1ZV8ubWFwXyApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1
bHQ6Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0KLQotICAgaWYgKCBjb21t
ZW50c18gKQotICAgICAgZGVsZXRlW10gY29tbWVudHNfOwotfQotCi1WYWx1ZSAmCi1WYWx1ZTo6
b3BlcmF0b3I9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKQotewotICAgVmFsdWUgdGVtcCggb3RoZXIg
KTsKLSAgIHN3YXAoIHRlbXAgKTsKLSAgIHJldHVybiAqdGhpczsKLX0KLQotdm9pZCAKLVZhbHVl
Ojpzd2FwKCBWYWx1ZSAmb3RoZXIgKQotewotICAgVmFsdWVUeXBlIHRlbXAgPSB0eXBlXzsKLSAg
IHR5cGVfID0gb3RoZXIudHlwZV87Ci0gICBvdGhlci50eXBlXyA9IHRlbXA7Ci0gICBzdGQ6OnN3
YXAoIHZhbHVlXywgb3RoZXIudmFsdWVfICk7Ci0gICBpbnQgdGVtcDIgPSBhbGxvY2F0ZWRfOwot
ICAgYWxsb2NhdGVkXyA9IG90aGVyLmFsbG9jYXRlZF87Ci0gICBvdGhlci5hbGxvY2F0ZWRfID0g
dGVtcDI7Ci19Ci0KLVZhbHVlVHlwZSAKLVZhbHVlOjp0eXBlKCkgY29uc3QKLXsKLSAgIHJldHVy
biB0eXBlXzsKLX0KLQotCi1pbnQgCi1WYWx1ZTo6Y29tcGFyZSggY29uc3QgVmFsdWUgJm90aGVy
ICkgY29uc3QKLXsKLSAgIGlmICggKnRoaXMgPCBvdGhlciApCi0gICAgICByZXR1cm4gLTE7Ci0g
ICBpZiAoICp0aGlzID4gb3RoZXIgKQotICAgICAgcmV0dXJuIDE7Ci0gICByZXR1cm4gMDsKLX0K
LQotCi1ib29sIAotVmFsdWU6Om9wZXJhdG9yIDwoIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0
Ci17Ci0gICBpbnQgdHlwZURlbHRhID0gdHlwZV8gLSBvdGhlci50eXBlXzsKLSAgIGlmICggdHlw
ZURlbHRhICkKLSAgICAgIHJldHVybiB0eXBlRGVsdGEgPCAwID8gdHJ1ZSA6IGZhbHNlOwotICAg
c3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4g
ZmFsc2U7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5pbnRfIDwgb3Ro
ZXIudmFsdWVfLmludF87Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8u
dWludF8gPCBvdGhlci52YWx1ZV8udWludF87Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJl
dHVybiB2YWx1ZV8ucmVhbF8gPCBvdGhlci52YWx1ZV8ucmVhbF87Ci0gICBjYXNlIGJvb2xlYW5W
YWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPCBvdGhlci52YWx1ZV8uYm9vbF87Ci0g
ICBjYXNlIHN0cmluZ1ZhbHVlOgotICAgICAgcmV0dXJuICggdmFsdWVfLnN0cmluZ18gPT0gMCAg
JiYgIG90aGVyLnZhbHVlXy5zdHJpbmdfICkKLSAgICAgICAgICAgICB8fCAoIG90aGVyLnZhbHVl
Xy5zdHJpbmdfICAKLSAgICAgICAgICAgICAgICAgICYmICB2YWx1ZV8uc3RyaW5nXyAgCi0gICAg
ICAgICAgICAgICAgICAmJiBzdHJjbXAoIHZhbHVlXy5zdHJpbmdfLCBvdGhlci52YWx1ZV8uc3Ry
aW5nXyApIDwgMCApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNh
c2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB7Ci0gICAgICAgICBp
bnQgZGVsdGEgPSBpbnQoIHZhbHVlXy5tYXBfLT5zaXplKCkgLSBvdGhlci52YWx1ZV8ubWFwXy0+
c2l6ZSgpICk7Ci0gICAgICAgICBpZiAoIGRlbHRhICkKLSAgICAgICAgICAgIHJldHVybiBkZWx0
YSA8IDA7Ci0gICAgICAgICByZXR1cm4gKCp2YWx1ZV8ubWFwXykgPCAoKm90aGVyLnZhbHVlXy5t
YXBfKTsKLSAgICAgIH0KLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICByZXR1cm4g
dmFsdWVfLmFycmF5Xy0+Y29tcGFyZSggKihvdGhlci52YWx1ZV8uYXJyYXlfKSApIDwgMDsKLSAg
IGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLm1hcF8tPmNvbXBhcmUoICoo
b3RoZXIudmFsdWVfLm1hcF8pICkgPCAwOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgSlNP
Tl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0gICByZXR1cm4gZmFsc2U7ICAvLyB1bnJlYWNo
YWJsZQotfQotCi1ib29sIAotVmFsdWU6Om9wZXJhdG9yIDw9KCBjb25zdCBWYWx1ZSAmb3RoZXIg
KSBjb25zdAotewotICAgcmV0dXJuICEob3RoZXIgPCAqdGhpcyk7Ci19Ci0KLWJvb2wgCi1WYWx1
ZTo6b3BlcmF0b3IgPj0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1cm4g
ISgqdGhpcyA8IG90aGVyKTsKLX0KLQotYm9vbCAKLVZhbHVlOjpvcGVyYXRvciA+KCBjb25zdCBW
YWx1ZSAmb3RoZXIgKSBjb25zdAotewotICAgcmV0dXJuIG90aGVyIDwgKnRoaXM7Ci19Ci0KLWJv
b2wgCi1WYWx1ZTo6b3BlcmF0b3IgPT0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0g
ICAvL2lmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQotICAgLy8gR0NDIDIuOTUuMyBzYXlzOgot
ICAgLy8gYXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgYml0LWZpZWxkIHN0cnVjdHVyZSBtZW1i
ZXIgYEpzb246OlZhbHVlOjp0eXBlXycKLSAgIC8vIEJlYXRzIG1lLCBidXQgYSB0ZW1wIHNvbHZl
cyB0aGUgcHJvYmxlbS4KLSAgIGludCB0ZW1wID0gb3RoZXIudHlwZV87Ci0gICBpZiAoIHR5cGVf
ICE9IHRlbXAgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgc3dpdGNoICggdHlwZV8gKQotICAg
ewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgIGNhc2UgaW50VmFs
dWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmludF8gPT0gb3RoZXIudmFsdWVfLmludF87Ci0gICBj
YXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPT0gb3RoZXIudmFsdWVf
LnVpbnRfOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfID09
IG90aGVyLnZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJu
IHZhbHVlXy5ib29sXyA9PSBvdGhlci52YWx1ZV8uYm9vbF87Ci0gICBjYXNlIHN0cmluZ1ZhbHVl
OgotICAgICAgcmV0dXJuICggdmFsdWVfLnN0cmluZ18gPT0gb3RoZXIudmFsdWVfLnN0cmluZ18g
KQotICAgICAgICAgICAgIHx8ICggb3RoZXIudmFsdWVfLnN0cmluZ18gIAotICAgICAgICAgICAg
ICAgICAgJiYgIHZhbHVlXy5zdHJpbmdfICAKLSAgICAgICAgICAgICAgICAgICYmIHN0cmNtcCgg
dmFsdWVfLnN0cmluZ18sIG90aGVyLnZhbHVlXy5zdHJpbmdfICkgPT0gMCApOwotI2lmbmRlZiBK
U09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ug
b2JqZWN0VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLm1hcF8tPnNpemUoKSA9PSBvdGhlci52
YWx1ZV8ubWFwXy0+c2l6ZSgpCi0gICAgICAgICAgICAgJiYgKCp2YWx1ZV8ubWFwXykgPT0gKCpv
dGhlci52YWx1ZV8ubWFwXyk7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgcmV0
dXJuIHZhbHVlXy5hcnJheV8tPmNvbXBhcmUoICoob3RoZXIudmFsdWVfLmFycmF5XykgKSA9PSAw
OwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+Y29tcGFy
ZSggKihvdGhlci52YWx1ZV8ubWFwXykgKSA9PSAwOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAg
ICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0gICByZXR1cm4gZmFsc2U7ICAvLyB1
bnJlYWNoYWJsZQotfQotCi1ib29sIAotVmFsdWU6Om9wZXJhdG9yICE9KCBjb25zdCBWYWx1ZSAm
b3RoZXIgKSBjb25zdAotewotICAgcmV0dXJuICEoICp0aGlzID09IG90aGVyICk7Ci19Ci0KLWNv
bnN0IGNoYXIgKgotVmFsdWU6OmFzQ1N0cmluZygpIGNvbnN0Ci17Ci0gICBKU09OX0FTU0VSVCgg
dHlwZV8gPT0gc3RyaW5nVmFsdWUgKTsKLSAgIHJldHVybiB2YWx1ZV8uc3RyaW5nXzsKLX0KLQot
Ci1zdGQ6OnN0cmluZyAKLVZhbHVlOjphc1N0cmluZygpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0
eXBlXyApCi0gICB7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAiIjsKLSAgIGNh
c2Ugc3RyaW5nVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnN0cmluZ18gPyB2YWx1ZV8uc3Ry
aW5nXyA6ICIiOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJv
b2xfID8gInRydWUiIDogImZhbHNlIjsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4g
dmFsdWVUb1N0cmluZyggdmFsdWVfLmludF8gKTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAg
cmV0dXJuIHZhbHVlVG9TdHJpbmcoIHZhbHVlXy51aW50XyApOwotICAgY2FzZSByZWFsVmFsdWU6
Ci0gICAgICByZXR1cm4gdmFsdWVUb1N0cmluZyggdmFsdWVfLnJlYWxfICk7Ci0gICBkZWZhdWx0
OgotICAgICAgSlNPTl9GQUlMX01FU1NBR0UoICJUeXBlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBz
dHJpbmciICk7Ci0gICB9Ci19Ci0KLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLUNwcFRMOjpDb25z
dFN0cmluZyAKLVZhbHVlOjphc0NvbnN0U3RyaW5nKCkgY29uc3QKLXsKLSAgIHJldHVybiBDcHBU
TDo6Q29uc3RTdHJpbmcoIGFzU3RyaW5nKCkuY19zdHIoKSApOwotfQotIyBlbmRpZgotCi0KLVZh
bHVlOjpJbnQgCi1WYWx1ZTo6YXNJbnQoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQot
ICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQo
KSwgIkxhcmdlc3RJbnQgb3V0IG9mIEludCByYW5nZSIpOwotICAgICAgcmV0dXJuIEludCh2YWx1
ZV8uaW50Xyk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0Uo
aXNJbnQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBJ
bnQodmFsdWVfLnVpbnRfKTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRf
TUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQpLCAiZG91YmxlIG91
dCBvZiBJbnQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBJbnQodmFsdWVfLnJlYWxfKTsKLSAgIGNh
c2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDA7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVh
azsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUg
dG8gSW50LiIpOwotfQotCi0KLVZhbHVlOjpVSW50IAotVmFsdWU6OmFzVUludCgpIGNvbnN0Ci17
Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgSlNP
Tl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxhcmdlc3RJbnQgb3V0IG9mIFVJbnQgcmFuZ2Ui
KTsKLSAgICAgIHJldHVybiBVSW50KHZhbHVlXy5pbnRfKTsKLSAgIGNhc2UgdWludFZhbHVlOgot
ICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBV
SW50IHJhbmdlIik7Ci0gICAgICByZXR1cm4gVUludCh2YWx1ZV8udWludF8pOwotICAgY2FzZSBy
ZWFsVmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxf
LCAwLCBtYXhVSW50KSwgImRvdWJsZSBvdXQgb2YgVUludCByYW5nZSIpOwotICAgICAgcmV0dXJu
IFVJbnQoIHZhbHVlXy5yZWFsXyApOwotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4g
MDsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEg
OiAwOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NB
R0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBVSW50LiIpOwotfQotCi0KLSMgaWYgZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKLQotVmFsdWU6OkludDY0Ci1WYWx1ZTo6YXNJbnQ2NCgpIGNv
bnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAg
ICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRfKTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50NjQg
cmFuZ2UiKTsKLSAgICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8udWludF8pOwotICAgY2FzZSByZWFs
VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCBt
aW5JbnQ2NCwgbWF4SW50NjQpLCAiZG91YmxlIG91dCBvZiBJbnQ2NCByYW5nZSIpOwotICAgICAg
cmV0dXJuIEludDY0KHZhbHVlXy5yZWFsXyk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJl
dHVybiAwOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xf
ID8gMSA6IDA7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBKU09OX0ZBSUxf
TUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIEludDY0LiIpOwotfQotCi0KLVZh
bHVlOjpVSW50NjQKLVZhbHVlOjphc1VJbnQ2NCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBl
XyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShp
c1VJbnQ2NCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludDY0IHJhbmdlIik7Ci0gICAgICByZXR1
cm4gVUludDY0KHZhbHVlXy5pbnRfKTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJu
IFVJbnQ2NCh2YWx1ZV8udWludF8pOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBKU09OX0FT
U0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50NjQpLCAiZG91Ymxl
IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBVSW50NjQoIHZhbHVlXy5yZWFs
XyApOwotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4gMDsKLSAgIGNhc2UgYm9vbGVh
blZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwotICAgZGVmYXVsdDoK
LSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBj
b252ZXJ0aWJsZSB0byBVSW50NjQuIik7Ci19Ci0jIGVuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9I
QVNfSU5UNjQpCi0KLQotTGFyZ2VzdEludCAKLVZhbHVlOjphc0xhcmdlc3RJbnQoKSBjb25zdAot
ewotI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKLSAgICByZXR1cm4gYXNJbnQoKTsKLSNlbHNl
Ci0gICAgcmV0dXJuIGFzSW50NjQoKTsKLSNlbmRpZgotfQotCi0KLUxhcmdlc3RVSW50IAotVmFs
dWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25zdAotewotI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkK
LSAgICByZXR1cm4gYXNVSW50KCk7Ci0jZWxzZQotICAgIHJldHVybiBhc1VJbnQ2NCgpOwotI2Vu
ZGlmCi19Ci0KLQotZG91YmxlIAotVmFsdWU6OmFzRG91YmxlKCkgY29uc3QKLXsKLSAgIHN3aXRj
aCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8ZG91YmxlPiggdmFsdWVfLmludF8gKTsKLSAgIGNhc2UgdWludFZhbHVlOgotI2lmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGRvdWJsZT4oIHZhbHVlXy51aW50XyApOwotI2Vsc2UgLy8gaWYgIWRlZmluZWQo
SlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0gICAgICByZXR1cm4gaW50ZWdlclRv
RG91YmxlKCB2YWx1ZV8udWludF8gKTsKLSNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9J
TlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJu
IHZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDAuMDsKLSAg
IGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMCA6IDAu
MDsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdF
KCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZG91YmxlLiIpOwotfQotCi1mbG9hdAotVmFs
dWU6OmFzRmxvYXQoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2Fz
ZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oIHZhbHVlXy5pbnRf
ICk7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VC
TEVfQ09OVkVSU0lPTikKLSAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oIHZhbHVlXy51
aW50XyApOwotI2Vsc2UgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZF
UlNJT04pCi0gICAgICByZXR1cm4gaW50ZWdlclRvRG91YmxlKCB2YWx1ZV8udWludF8gKTsKLSNl
bmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAg
IGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PiggdmFsdWVf
LnJlYWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAwLjA7Ci0gICBjYXNl
IGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxLjBmIDogMC4wZjsK
LSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJW
YWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZmxvYXQuIik7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6
YXNCb29sKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgYm9v
bGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXzsKLSAgIGNhc2UgbnVsbFZhbHVl
OgotICAgICAgcmV0dXJuIGZhbHNlOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2
YWx1ZV8uaW50XyA/IHRydWUgOiBmYWxzZTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0
dXJuIHZhbHVlXy51aW50XyA/IHRydWUgOiBmYWxzZTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAg
ICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA/IHRydWUgOiBmYWxzZTsKLSAgIGRlZmF1bHQ6Ci0gICAg
ICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVy
dGlibGUgdG8gYm9vbC4iKTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzQ29udmVydGlibGVUbygg
VmFsdWVUeXBlIG90aGVyICkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIG90aGVyICkKLSAgIHsKLSAg
IGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuICggaXNOdW1lcmljKCkgJiYgYXNEb3VibGUo
KSA9PSAwLjAgKQotICAgICAgICAgICAgIHx8ICggdHlwZV8gPT0gYm9vbGVhblZhbHVlICYmIHZh
bHVlXy5ib29sXyA9PSBmYWxzZSApCi0gICAgICAgICAgICAgfHwgKCB0eXBlXyA9PSBzdHJpbmdW
YWx1ZSAmJiBhc1N0cmluZygpID09ICIiICkKLSAgICAgICAgICAgICB8fCAoIHR5cGVfID09IGFy
cmF5VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwICkKLSAgICAgICAgICAgICB8fCAo
IHR5cGVfID09IG9iamVjdFZhbHVlICYmIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gMCApCi0gICAg
ICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAg
IHJldHVybiBpc0ludCgpCi0gICAgICAgICAgICAgfHwgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJ
blJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQpKQotICAgICAgICAgICAgIHx8IHR5
cGVfID09IGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsK
LSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIGlzVUludCgpCi0gICAgICAgICAgICAg
fHwgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUlu
dCkpCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlCi0gICAgICAgICAgICAg
fHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4g
aXNOdW1lcmljKCkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUKLSAgICAg
ICAgICAgICB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAg
ICAgIHJldHVybiBpc051bWVyaWMoKQotICAgICAgICAgICAgIHx8IHR5cGVfID09IGJvb2xlYW5W
YWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2Ugc3RyaW5n
VmFsdWU6Ci0gICAgICByZXR1cm4gaXNOdW1lcmljKCkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9
PSBib29sZWFuVmFsdWUKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBzdHJpbmdWYWx1ZQotICAg
ICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAg
ICAgIHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0g
bnVsbFZhbHVlOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB0eXBlXyA9PSBv
YmplY3RWYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIH0KLSAg
IEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOwotICAgcmV0dXJuIGZhbHNlOwotfQotCi0KLS8vLyBO
dW1iZXIgb2YgdmFsdWVzIGluIGFycmF5IG9yIG9iamVjdAotQXJyYXlJbmRleCAKLVZhbHVlOjpz
aXplKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZh
bHVlOgotICAgY2FzZSBpbnRWYWx1ZToKLSAgIGNhc2UgdWludFZhbHVlOgotICAgY2FzZSByZWFs
VmFsdWU6Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAg
ICByZXR1cm4gMDsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNl
IGFycmF5VmFsdWU6ICAvLyBzaXplIG9mIHRoZSBhcnJheSBpcyBoaWdoZXN0IGluZGV4ICsgMQot
ICAgICAgaWYgKCAhdmFsdWVfLm1hcF8tPmVtcHR5KCkgKQotICAgICAgewotICAgICAgICAgT2Jq
ZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdExhc3QgPSB2YWx1ZV8ubWFwXy0+ZW5kKCk7Ci0g
ICAgICAgICAtLWl0TGFzdDsKLSAgICAgICAgIHJldHVybiAoKml0TGFzdCkuZmlyc3QuaW5kZXgo
KSsxOwotICAgICAgfQotICAgICAgcmV0dXJuIDA7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAg
ICAgcmV0dXJuIEFycmF5SW5kZXgoIHZhbHVlXy5tYXBfLT5zaXplKCkgKTsKLSNlbHNlCi0gICBj
YXNlIGFycmF5VmFsdWU6Ci0gICAgICByZXR1cm4gSW50KCB2YWx1ZV8uYXJyYXlfLT5zaXplKCkg
KTsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICByZXR1cm4gSW50KCB2YWx1ZV8ubWFwXy0+
c2l6ZSgpICk7Ci0jZW5kaWYKLSAgIH0KLSAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOwotICAg
cmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6ZW1wdHkoKSBj
b25zdAotewotICAgaWYgKCBpc051bGwoKSB8fCBpc0FycmF5KCkgfHwgaXNPYmplY3QoKSApCi0g
ICAgICByZXR1cm4gc2l6ZSgpID09IDB1OwotICAgZWxzZQotICAgICAgcmV0dXJuIGZhbHNlOwot
fQotCi0KLWJvb2wKLVZhbHVlOjpvcGVyYXRvciEoKSBjb25zdAotewotICAgcmV0dXJuIGlzTnVs
bCgpOwotfQotCi0KLXZvaWQgCi1WYWx1ZTo6Y2xlYXIoKQotewotICAgSlNPTl9BU1NFUlQoIHR5
cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IGFycmF5VmFsdWUgIHx8IHR5cGVfID09IG9i
amVjdFZhbHVlICk7Ci0KLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSNpZm5kZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICBjYXNlIG9iamVj
dFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8tPmNsZWFyKCk7Ci0gICAgICBicmVhazsKLSNlbHNl
Ci0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAgICB2YWx1ZV8uYXJyYXlfLT5jbGVhcigpOwotICAg
ICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgdmFsdWVfLm1hcF8tPmNsZWFy
KCk7Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAg
fQotfQotCi12b2lkIAotVmFsdWU6OnJlc2l6ZSggQXJyYXlJbmRleCBuZXdTaXplICkKLXsKLSAg
IEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVl
ICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICAqdGhpcyA9IFZhbHVlKCBh
cnJheVZhbHVlICk7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgQXJy
YXlJbmRleCBvbGRTaXplID0gc2l6ZSgpOwotICAgaWYgKCBuZXdTaXplID09IDAgKQotICAgICAg
Y2xlYXIoKTsKLSAgIGVsc2UgaWYgKCBuZXdTaXplID4gb2xkU2l6ZSApCi0gICAgICAoKnRoaXMp
WyBuZXdTaXplIC0gMSBdOwotICAgZWxzZQotICAgewotICAgICAgZm9yICggQXJyYXlJbmRleCBp
bmRleCA9IG5ld1NpemU7IGluZGV4IDwgb2xkU2l6ZTsgKytpbmRleCApCi0gICAgICB7Ci0gICAg
ICAgICB2YWx1ZV8ubWFwXy0+ZXJhc2UoIGluZGV4ICk7Ci0gICAgICB9Ci0gICAgICBhc3NlcnQo
IHNpemUoKSA9PSBuZXdTaXplICk7Ci0gICB9Ci0jZWxzZQotICAgdmFsdWVfLmFycmF5Xy0+cmVz
aXplKCBuZXdTaXplICk7Ci0jZW5kaWYKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3Jb
XSggQXJyYXlJbmRleCBpbmRleCApCi17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZh
bHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxsVmFs
dWUgKQotICAgICAgKnRoaXMgPSBWYWx1ZSggYXJyYXlWYWx1ZSApOwotI2lmbmRlZiBKU09OX1ZB
TFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIENaU3RyaW5nIGtleSggaW5kZXggKTsKLSAgIE9iamVj
dFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoIGtleSApOwot
ICAgaWYgKCBpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgICYmICAoKml0KS5maXJzdCA9PSBrZXkg
KQotICAgICAgcmV0dXJuICgqaXQpLnNlY29uZDsKLQotICAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90
eXBlIGRlZmF1bHRWYWx1ZSgga2V5LCBudWxsICk7Ci0gICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNl
cnQoIGl0LCBkZWZhdWx0VmFsdWUgKTsKLSAgIHJldHVybiAoKml0KS5zZWNvbmQ7Ci0jZWxzZQot
ICAgcmV0dXJuIHZhbHVlXy5hcnJheV8tPnJlc29sdmVSZWZlcmVuY2UoIGluZGV4ICk7Ci0jZW5k
aWYKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggaW50IGluZGV4ICkKLXsKLSAg
IEpTT05fQVNTRVJUKCBpbmRleCA+PSAwICk7Ci0gICByZXR1cm4gKCp0aGlzKVsgQXJyYXlJbmRl
eChpbmRleCkgXTsKLX0KLQotCi1jb25zdCBWYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggQXJy
YXlJbmRleCBpbmRleCApIGNvbnN0Ci17Ci0gICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZh
bHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxsVmFs
dWUgKQotICAgICAgcmV0dXJuIG51bGw7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFM
X01BUAotICAgQ1pTdHJpbmcga2V5KCBpbmRleCApOwotICAgT2JqZWN0VmFsdWVzOjpjb25zdF9p
dGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKCBrZXkgKTsKLSAgIGlmICggaXQgPT0gdmFs
dWVfLm1hcF8tPmVuZCgpICkKLSAgICAgIHJldHVybiBudWxsOwotICAgcmV0dXJuICgqaXQpLnNl
Y29uZDsKLSNlbHNlCi0gICBWYWx1ZSAqdmFsdWUgPSB2YWx1ZV8uYXJyYXlfLT5maW5kKCBpbmRl
eCApOwotICAgcmV0dXJuIHZhbHVlID8gKnZhbHVlIDogbnVsbDsKLSNlbmRpZgotfQotCi0KLWNv
bnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBpbnQgaW5kZXggKSBjb25zdAotewotICAg
SlNPTl9BU1NFUlQoIGluZGV4ID49IDAgKTsKLSAgIHJldHVybiAoKnRoaXMpWyBBcnJheUluZGV4
KGluZGV4KSBdOwotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBjaGFy
ICprZXkgKQotewotICAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2UoIGtleSwgZmFsc2UgKTsKLX0K
LQotCi1WYWx1ZSAmCi1WYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZSggY29uc3QgY2hhciAqa2V5LCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljICkKLXsKLSAgIEpTT05fQVNT
RVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBvYmplY3RWYWx1ZSApOwotICAg
aWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAgKnRoaXMgPSBWYWx1ZSggb2JqZWN0VmFs
dWUgKTsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBDWlN0cmluZyBh
Y3R1YWxLZXkoIGtleSwgaXNTdGF0aWMgPyBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbiAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IENaU3RyaW5nOjpkdXBsaWNhdGVPbkNv
cHkgKTsKLSAgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJf
Ym91bmQoIGFjdHVhbEtleSApOwotICAgaWYgKCBpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgICYm
ICAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkgKQotICAgICAgcmV0dXJuICgqaXQpLnNlY29uZDsK
LQotICAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZSggYWN0dWFsS2V5LCBu
dWxsICk7Ci0gICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoIGl0LCBkZWZhdWx0VmFsdWUgKTsK
LSAgIFZhbHVlICZ2YWx1ZSA9ICgqaXQpLnNlY29uZDsKLSAgIHJldHVybiB2YWx1ZTsKLSNlbHNl
Ci0gICByZXR1cm4gdmFsdWVfLm1hcF8tPnJlc29sdmVSZWZlcmVuY2UoIGtleSwgaXNTdGF0aWMg
KTsKLSNlbmRpZgotfQotCi0KLVZhbHVlIAotVmFsdWU6OmdldCggQXJyYXlJbmRleCBpbmRleCwg
Ci0gICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3QKLXsKLSAgIGNv
bnN0IFZhbHVlICp2YWx1ZSA9ICYoKCp0aGlzKVtpbmRleF0pOwotICAgcmV0dXJuIHZhbHVlID09
ICZudWxsID8gZGVmYXVsdFZhbHVlIDogKnZhbHVlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNW
YWxpZEluZGV4KCBBcnJheUluZGV4IGluZGV4ICkgY29uc3QKLXsKLSAgIHJldHVybiBpbmRleCA8
IHNpemUoKTsKLX0KLQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25z
dCBjaGFyICprZXkgKSBjb25zdAotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1
ZSAgfHwgIHR5cGVfID09IG9iamVjdFZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1
ZSApCi0gICAgICByZXR1cm4gbnVsbDsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0gICBDWlN0cmluZyBhY3R1YWxLZXkoIGtleSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24g
KTsKLSAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+Zmlu
ZCggYWN0dWFsS2V5ICk7Ci0gICBpZiAoIGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSApCi0gICAg
ICByZXR1cm4gbnVsbDsKLSAgIHJldHVybiAoKml0KS5zZWNvbmQ7Ci0jZWxzZQotICAgY29uc3Qg
VmFsdWUgKnZhbHVlID0gdmFsdWVfLm1hcF8tPmZpbmQoIGtleSApOwotICAgcmV0dXJuIHZhbHVl
ID8gKnZhbHVlIDogbnVsbDsKLSNlbmRpZgotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpvcGVyYXRv
cltdKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLXsKLSAgIHJldHVybiAoKnRoaXMpWyBrZXku
Y19zdHIoKSBdOwotfQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBjb25z
dCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3QKLXsKLSAgIHJldHVybiAoKnRoaXMpWyBrZXkuY19z
dHIoKSBdOwotfQotCi1WYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSggY29uc3QgU3RhdGljU3Ry
aW5nICZrZXkgKQotewotICAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2UoIGtleSwgdHJ1ZSApOwot
fQotCi0KLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLVZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltd
KCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSApCi17Ci0gICByZXR1cm4gKCp0aGlzKVsg
a2V5LmNfc3RyKCkgXTsKLX0KLQotCi1jb25zdCBWYWx1ZSAmCi1WYWx1ZTo6b3BlcmF0b3JbXSgg
Y29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZrZXkgKSBjb25zdAotewotICAgcmV0dXJuICgqdGhp
cylbIGtleS5jX3N0cigpIF07Ci19Ci0jIGVuZGlmCi0KLQotVmFsdWUgJgotVmFsdWU6OmFwcGVu
ZCggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAgIHJldHVybiAoKnRoaXMpW3NpemUoKV0gPSB2
YWx1ZTsKLX0KLQotCi1WYWx1ZSAKLVZhbHVlOjpnZXQoIGNvbnN0IGNoYXIgKmtleSwgCi0gICAg
ICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkgY29uc3QKLXsKLSAgIGNvbnN0IFZh
bHVlICp2YWx1ZSA9ICYoKCp0aGlzKVtrZXldKTsKLSAgIHJldHVybiB2YWx1ZSA9PSAmbnVsbCA/
IGRlZmF1bHRWYWx1ZSA6ICp2YWx1ZTsKLX0KLQotCi1WYWx1ZSAKLVZhbHVlOjpnZXQoIGNvbnN0
IHN0ZDo6c3RyaW5nICZrZXksCi0gICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVl
ICkgY29uc3QKLXsKLSAgIHJldHVybiBnZXQoIGtleS5jX3N0cigpLCBkZWZhdWx0VmFsdWUgKTsK
LX0KLQotVmFsdWUKLVZhbHVlOjpyZW1vdmVNZW1iZXIoIGNvbnN0IGNoYXIqIGtleSApCi17Ci0g
ICBKU09OX0FTU0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gb2JqZWN0VmFs
dWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAgIHJldHVybiBudWxsOwot
I2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIENaU3RyaW5nIGFjdHVhbEtl
eSgga2V5LCBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbiApOwotICAgT2JqZWN0VmFsdWVzOjppdGVy
YXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKCBhY3R1YWxLZXkgKTsKLSAgIGlmICggaXQgPT0g
dmFsdWVfLm1hcF8tPmVuZCgpICkKLSAgICAgIHJldHVybiBudWxsOwotICAgVmFsdWUgb2xkKGl0
LT5zZWNvbmQpOwotICAgdmFsdWVfLm1hcF8tPmVyYXNlKGl0KTsKLSAgIHJldHVybiBvbGQ7Ci0j
ZWxzZQotICAgVmFsdWUgKnZhbHVlID0gdmFsdWVfLm1hcF8tPmZpbmQoIGtleSApOwotICAgaWYg
KHZhbHVlKXsKLSAgICAgIFZhbHVlIG9sZCgqdmFsdWUpOwotICAgICAgdmFsdWVfLm1hcF8ucmVt
b3ZlKCBrZXkgKTsKLSAgICAgIHJldHVybiBvbGQ7Ci0gICB9IGVsc2UgewotICAgICAgcmV0dXJu
IG51bGw7Ci0gICB9Ci0jZW5kaWYKLX0KLQotVmFsdWUKLVZhbHVlOjpyZW1vdmVNZW1iZXIoIGNv
bnN0IHN0ZDo6c3RyaW5nICZrZXkgKQotewotICAgcmV0dXJuIHJlbW92ZU1lbWJlcigga2V5LmNf
c3RyKCkgKTsKLX0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotVmFsdWUgCi1WYWx1ZTo6Z2V0
KCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSwKLSAgICAgICAgICAgIGNvbnN0IFZhbHVl
ICZkZWZhdWx0VmFsdWUgKSBjb25zdAotewotICAgcmV0dXJuIGdldCgga2V5LmNfc3RyKCksIGRl
ZmF1bHRWYWx1ZSApOwotfQotIyBlbmRpZgotCi1ib29sIAotVmFsdWU6OmlzTWVtYmVyKCBjb25z
dCBjaGFyICprZXkgKSBjb25zdAotewotICAgY29uc3QgVmFsdWUgKnZhbHVlID0gJigoKnRoaXMp
W2tleV0pOwotICAgcmV0dXJuIHZhbHVlICE9ICZudWxsOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6
aXNNZW1iZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKSBjb25zdAotewotICAgcmV0dXJuIGlz
TWVtYmVyKCBrZXkuY19zdHIoKSApOwotfQotCi0KLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLWJv
b2wgCi1WYWx1ZTo6aXNNZW1iZXIoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICkgY29u
c3QKLXsKLSAgIHJldHVybiBpc01lbWJlcigga2V5LmNfc3RyKCkgKTsKLX0KLSNlbmRpZgotCi1W
YWx1ZTo6TWVtYmVycyAKLVZhbHVlOjpnZXRNZW1iZXJOYW1lcygpIGNvbnN0Ci17Ci0gICBKU09O
X0FTU0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gb2JqZWN0VmFsdWUgKTsK
LSAgIGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAgICByZXR1cm4gVmFsdWU6Ok1lbWJl
cnMoKTsKLSAgIE1lbWJlcnMgbWVtYmVyczsKLSAgIG1lbWJlcnMucmVzZXJ2ZSggdmFsdWVfLm1h
cF8tPnNpemUoKSApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIE9i
amVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+YmVnaW4oKTsKLSAg
IE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1ZV8ubWFwXy0+ZW5kKCk7
Ci0gICBmb3IgKCA7IGl0ICE9IGl0RW5kOyArK2l0ICkKLSAgICAgIG1lbWJlcnMucHVzaF9iYWNr
KCBzdGQ6OnN0cmluZyggKCppdCkuZmlyc3QuY19zdHIoKSApICk7Ci0jZWxzZQotICAgVmFsdWVJ
bnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJh
dG9yU3RhdGUgaXRFbmQ7Ci0gICB2YWx1ZV8ubWFwXy0+bWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7
Ci0gICB2YWx1ZV8ubWFwXy0+bWFrZUVuZEl0ZXJhdG9yKCBpdEVuZCApOwotICAgZm9yICggOyAh
VmFsdWVJbnRlcm5hbE1hcDo6ZXF1YWxzKCBpdCwgaXRFbmQgKTsgVmFsdWVJbnRlcm5hbE1hcDo6
aW5jcmVtZW50KGl0KSApCi0gICAgICBtZW1iZXJzLnB1c2hfYmFjayggc3RkOjpzdHJpbmcoIFZh
bHVlSW50ZXJuYWxNYXA6OmtleSggaXQgKSApICk7Ci0jZW5kaWYKLSAgIHJldHVybiBtZW1iZXJz
OwotfQotLy8KLS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotLy9FbnVtTWVtYmVyTmFtZXMKLS8v
VmFsdWU6OmVudW1NZW1iZXJOYW1lcygpIGNvbnN0Ci0vL3sKLS8vICAgaWYgKCB0eXBlXyA9PSBv
YmplY3RWYWx1ZSApCi0vLyAgIHsKLS8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnkoICBD
cHBUTDo6RW51bTo6dHJhbnNmb3JtKAotLy8gICAgICAgICBDcHBUTDo6RW51bTo6a2V5cyggKih2
YWx1ZV8ubWFwXyksIENwcFRMOjpUeXBlPGNvbnN0IENaU3RyaW5nICY+KCkgKSwKLS8vICAgICAg
ICAgTWVtYmVyTmFtZXNUcmFuc2Zvcm0oKSApICk7Ci0vLyAgIH0KLS8vICAgcmV0dXJuIEVudW1N
ZW1iZXJOYW1lcygpOwotLy99Ci0vLwotLy8KLS8vRW51bVZhbHVlcyAKLS8vVmFsdWU6OmVudW1W
YWx1ZXMoKSBjb25zdAotLy97Ci0vLyAgIGlmICggdHlwZV8gPT0gb2JqZWN0VmFsdWUgIHx8ICB0
eXBlXyA9PSBhcnJheVZhbHVlICkKLS8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnlWYWx1
ZXMoICoodmFsdWVfLm1hcF8pLCAKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENwcFRMOjpUeXBlPGNvbnN0IFZhbHVlICY+KCkgKTsKLS8vICAgcmV0dXJuIEVudW1WYWx1
ZXMoKTsKLS8vfQotLy8KLS8vIyBlbmRpZgotCi1zdGF0aWMgYm9vbCBJc0ludGVncmFsKGRvdWJs
ZSBkKSB7Ci0gIGRvdWJsZSBpbnRlZ3JhbF9wYXJ0OwotICByZXR1cm4gbW9kZihkLCAmaW50ZWdy
YWxfcGFydCkgPT0gMC4wOwotfQotCi0KLWJvb2wKLVZhbHVlOjppc051bGwoKSBjb25zdAotewot
ICAgcmV0dXJuIHR5cGVfID09IG51bGxWYWx1ZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzQm9v
bCgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gYm9vbGVhblZhbHVlOwotfQotCi0KLWJv
b2wgCi1WYWx1ZTo6aXNJbnQoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewot
ICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSBtaW5JbnQgICYm
ICB2YWx1ZV8uaW50XyA8PSBtYXhJbnQ7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVy
biB2YWx1ZV8udWludF8gPD0gVUludChtYXhJbnQpOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAg
ICByZXR1cm4gdmFsdWVfLnJlYWxfID49IG1pbkludCAmJgotICAgICAgICAgICAgIHZhbHVlXy5y
ZWFsXyA8PSBtYXhJbnQgJiYKLSAgICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7
Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0K
LQotYm9vbCAKLVZhbHVlOjppc1VJbnQoKSBjb25zdAotewotICAgc3dpdGNoICggdHlwZV8gKQot
ICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAwICYm
IExhcmdlc3RVSW50KHZhbHVlXy5pbnRfKSA8PSBMYXJnZXN0VUludChtYXhVSW50KTsKLSAgIGNh
c2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBtYXhVSW50OwotICAg
Y2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IDAgJiYKLSAgICAg
ICAgICAgICB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAmJgotICAgICAgICAgICAgIElzSW50ZWdy
YWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIHJl
dHVybiBmYWxzZTsKLX0KLQotYm9vbCAKLVZhbHVlOjppc0ludDY0KCkgY29uc3QKLXsKLSMgaWYg
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNh
c2UgaW50VmFsdWU6Ci0gICAgIHJldHVybiB0cnVlOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAg
ICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQ2NChtYXhJbnQ2NCk7Ci0gICBjYXNlIHJlYWxW
YWx1ZToKLSAgICAgIC8vIE5vdGUgdGhhdCBtYXhJbnQ2NCAoPSAyXjYzIC0gMSkgaXMgbm90IGV4
YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCi0gICAgICAvLyBkb3VibGUsIHNvIGRvdWJsZShtYXhJ
bnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjMuIFRoZXJlZm9yZSB3ZQotICAgICAgLy8g
cmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KLSAg
ICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gZG91YmxlKG1pbkludDY0KSAmJgotICAgICAgICAg
ICAgIHZhbHVlXy5yZWFsXyA8IGRvdWJsZShtYXhJbnQ2NCkgJiYKLSAgICAgICAgICAgICBJc0lu
dGVncmFsKHZhbHVlXy5yZWFsXyk7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0j
IGVuZGlmICAvLyBKU09OX0hBU19JTlQ2NAotICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIAot
VmFsdWU6OmlzVUludDY0KCkgY29uc3QKLXsKLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkK
LSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgIHJldHVy
biB2YWx1ZV8uaW50XyA+PSAwOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgLy8gTm90ZSB0aGF0IG1heFVJbnQ2NCAoPSAy
XjY0IC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCi0gICAgICAvLyBkb3Vi
bGUsIHNvIGRvdWJsZShtYXhVSW50NjQpIHdpbGwgYmUgcm91bmRlZCB1cCB0byAyXjY0LiBUaGVy
ZWZvcmUgd2UKLSAgICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3Mg
dGhhbiB0aGUgbGltaXQuCi0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IDAgJiYKLSAgICAg
ICAgICAgICB2YWx1ZV8ucmVhbF8gPCBtYXhVSW50NjRBc0RvdWJsZSAmJgotICAgICAgICAgICAg
IElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAg
IH0KLSMgZW5kaWYgIC8vIEpTT05fSEFTX0lOVDY0Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0KLQot
Ym9vbCAKLVZhbHVlOjppc0ludGVncmFsKCkgY29uc3QKLXsKLSNpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQotICByZXR1cm4gaXNJbnQ2NCgpIHx8IGlzVUludDY0KCk7Ci0jZWxzZQotICByZXR1
cm4gaXNJbnQoKSB8fCBpc1VJbnQoKTsKLSNlbmRpZgotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNE
b3VibGUoKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09IHJlYWxWYWx1ZSB8fCBpc0ludGVn
cmFsKCk7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjppc051bWVyaWMoKSBjb25zdAotewotICAgcmV0
dXJuIGlzSW50ZWdyYWwoKSB8fCBpc0RvdWJsZSgpOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6aXNT
dHJpbmcoKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09IHN0cmluZ1ZhbHVlOwotfQotCi0K
LWJvb2wgCi1WYWx1ZTo6aXNBcnJheSgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gYXJy
YXlWYWx1ZTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzT2JqZWN0KCkgY29uc3QKLXsKLSAgIHJl
dHVybiB0eXBlXyA9PSBvYmplY3RWYWx1ZTsKLX0KLQotCi12b2lkIAotVmFsdWU6OnNldENvbW1l
bnQoIGNvbnN0IGNoYXIgKmNvbW1lbnQsCi0gICAgICAgICAgICAgICAgICAgQ29tbWVudFBsYWNl
bWVudCBwbGFjZW1lbnQgKQotewotICAgaWYgKCAhY29tbWVudHNfICkKLSAgICAgIGNvbW1lbnRz
XyA9IG5ldyBDb21tZW50SW5mb1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOwotICAgY29tbWVu
dHNfW3BsYWNlbWVudF0uc2V0Q29tbWVudCggY29tbWVudCApOwotfQotCi0KLXZvaWQgCi1WYWx1
ZTo6c2V0Q29tbWVudCggY29uc3Qgc3RkOjpzdHJpbmcgJmNvbW1lbnQsCi0gICAgICAgICAgICAg
ICAgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgKQotewotICAgc2V0Q29tbWVudCggY29t
bWVudC5jX3N0cigpLCBwbGFjZW1lbnQgKTsKLX0KLQotCi1ib29sIAotVmFsdWU6Omhhc0NvbW1l
bnQoIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ICkgY29uc3QKLXsKLSAgIHJldHVybiBjb21t
ZW50c18gIT0gMCAgJiYgIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfICE9IDA7Ci19Ci0K
LXN0ZDo6c3RyaW5nIAotVmFsdWU6OmdldENvbW1lbnQoIENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50ICkgY29uc3QKLXsKLSAgIGlmICggaGFzQ29tbWVudChwbGFjZW1lbnQpICkKLSAgICAgIHJl
dHVybiBjb21tZW50c19bcGxhY2VtZW50XS5jb21tZW50XzsKLSAgIHJldHVybiAiIjsKLX0KLQot
Ci1zdGQ6OnN0cmluZyAKLVZhbHVlOjp0b1N0eWxlZFN0cmluZygpIGNvbnN0Ci17Ci0gICBTdHls
ZWRXcml0ZXIgd3JpdGVyOwotICAgcmV0dXJuIHdyaXRlci53cml0ZSggKnRoaXMgKTsKLX0KLQot
Ci1WYWx1ZTo6Y29uc3RfaXRlcmF0b3IgCi1WYWx1ZTo6YmVnaW4oKSBjb25zdAotewotICAgc3dp
dGNoICggdHlwZV8gKQotICAgewotI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAot
ICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8uYXJyYXlfICkKLSAgICAgIHsK
LSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgICAg
IHZhbHVlXy5hcnJheV8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJu
IGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9i
amVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFwXyApCi0gICAgICB7Ci0gICAgICAgICBW
YWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLm1hcF8t
Pm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9y
KCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVl
OgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAgICAg
ICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+YmVnaW4oKSApOwotICAgICAg
YnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVy
biBjb25zdF9pdGVyYXRvcigpOwotfQotCi1WYWx1ZTo6Y29uc3RfaXRlcmF0b3IgCi1WYWx1ZTo6
ZW5kKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSNpZmRlZiBKU09OX1ZB
TFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIGlmICggdmFs
dWVfLmFycmF5XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJh
dG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlfLT5tYWtlRW5kSXRlcmF0b3IoIGl0
ICk7Ci0gICAgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAg
ICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkK
LSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0g
ICAgICAgICB2YWx1ZV8ubWFwXy0+bWFrZUVuZEl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0
dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0jZWxzZQot
ICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFs
dWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+
ZW5kKCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7
Ci0gICB9Ci0gICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsKLX0KLQotCi1WYWx1ZTo6aXRlcmF0
b3IgCi1WYWx1ZTo6YmVnaW4oKQotewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotI2lmZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAg
aWYgKCB2YWx1ZV8uYXJyYXlfICkKLSAgICAgIHsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJh
eTo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5hcnJheV8tPm1ha2VCZWdpbkl0
ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCBpdCApOwotICAgICAgfQot
ICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFw
XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0
OwotICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgICAg
ICAgcmV0dXJuIGl0ZXJhdG9yKCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0jZWxzZQot
ICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFs
dWVfLm1hcF8gKQotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+YmVnaW4o
KSApOwotICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAg
IH0KLSAgIHJldHVybiBpdGVyYXRvcigpOwotfQotCi1WYWx1ZTo6aXRlcmF0b3IgCi1WYWx1ZTo6
ZW5kKCkKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSNpZmRlZiBKU09OX1ZBTFVFX1VT
RV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLmFy
cmF5XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3Rh
dGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlfLT5tYWtlRW5kSXRlcmF0b3IoIGl0ICk7Ci0g
ICAgICAgICByZXR1cm4gaXRlcmF0b3IoIGl0ICk7Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSAg
IGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgIHsKLSAg
ICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1
ZV8ubWFwXy0+bWFrZUVuZEl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9y
KCBpdCApOwotICAgICAgfQotICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVl
OgotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAgICAg
ICAgcmV0dXJuIGl0ZXJhdG9yKCB2YWx1ZV8ubWFwXy0+ZW5kKCkgKTsKLSAgICAgIGJyZWFrOwot
I2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gaXRlcmF0
b3IoKTsKLX0KLQotCi0vLyBjbGFzcyBQYXRoQXJndW1lbnQKLS8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1QYXRo
QXJndW1lbnQ6OlBhdGhBcmd1bWVudCgpCi0gICA6IGtleV8oKQotICAgLCBpbmRleF8oKQotICAg
LCBraW5kXygga2luZE5vbmUgKQotewotfQotCi0KLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50
KCBBcnJheUluZGV4IGluZGV4ICkKLSAgIDoga2V5XygpCi0gICAsIGluZGV4XyggaW5kZXggKQot
ICAgLCBraW5kXygga2luZEluZGV4ICkKLXsKLX0KLQotCi1QYXRoQXJndW1lbnQ6OlBhdGhBcmd1
bWVudCggY29uc3QgY2hhciAqa2V5ICkKLSAgIDoga2V5Xygga2V5ICkKLSAgICwgaW5kZXhfKCkK
LSAgICwga2luZF8oIGtpbmRLZXkgKQotewotfQotCi0KLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3Vt
ZW50KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLSAgIDoga2V5Xygga2V5LmNfc3RyKCkgKQot
ICAgLCBpbmRleF8oKQotICAgLCBraW5kXygga2luZEtleSApCi17Ci19Ci0KLS8vIGNsYXNzIFBh
dGgKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwotCi1QYXRoOjpQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwK
LSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTEsCi0gICAgICAgICAgICBjb25zdCBQ
YXRoQXJndW1lbnQgJmEyLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMywKLSAg
ICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTQsCi0gICAgICAgICAgICBjb25zdCBQYXRo
QXJndW1lbnQgJmE1ICkKLXsKLSAgIEluQXJncyBpbjsKLSAgIGluLnB1c2hfYmFjayggJmExICk7
Ci0gICBpbi5wdXNoX2JhY2soICZhMiApOwotICAgaW4ucHVzaF9iYWNrKCAmYTMgKTsKLSAgIGlu
LnB1c2hfYmFjayggJmE0ICk7Ci0gICBpbi5wdXNoX2JhY2soICZhNSApOwotICAgbWFrZVBhdGgo
IHBhdGgsIGluICk7Ci19Ci0KLQotdm9pZCAKLVBhdGg6Om1ha2VQYXRoKCBjb25zdCBzdGQ6OnN0
cmluZyAmcGF0aCwKLSAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluICkKLXsKLSAgIGNv
bnN0IGNoYXIgKmN1cnJlbnQgPSBwYXRoLmNfc3RyKCk7Ci0gICBjb25zdCBjaGFyICplbmQgPSBj
dXJyZW50ICsgcGF0aC5sZW5ndGgoKTsKLSAgIEluQXJnczo6Y29uc3RfaXRlcmF0b3IgaXRJbkFy
ZyA9IGluLmJlZ2luKCk7Ci0gICB3aGlsZSAoIGN1cnJlbnQgIT0gZW5kICkKLSAgIHsKLSAgICAg
IGlmICggKmN1cnJlbnQgPT0gJ1snICkKLSAgICAgIHsKLSAgICAgICAgICsrY3VycmVudDsKLSAg
ICAgICAgIGlmICggKmN1cnJlbnQgPT0gJyUnICkKLSAgICAgICAgICAgIGFkZFBhdGhJbkFyZygg
cGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZEluZGV4ICk7Ci0gICAgICAgICBl
bHNlCi0gICAgICAgICB7Ci0gICAgICAgICAgICBBcnJheUluZGV4IGluZGV4ID0gMDsKLSAgICAg
ICAgICAgIGZvciAoIDsgY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPj0gJzAnICAmJiAgKmN1
cnJlbnQgPD0gJzknOyArK2N1cnJlbnQgKQotICAgICAgICAgICAgICAgaW5kZXggPSBpbmRleCAq
IDEwICsgQXJyYXlJbmRleCgqY3VycmVudCAtICcwJyk7Ci0gICAgICAgICAgICBhcmdzXy5wdXNo
X2JhY2soIGluZGV4ICk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAoIGN1cnJlbnQgPT0gZW5k
ICB8fCAgKmN1cnJlbnQrKyAhPSAnXScgKQotICAgICAgICAgICAgaW52YWxpZFBhdGgoIHBhdGgs
IGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSApOwotICAgICAgfQotICAgICAgZWxzZSBpZiAo
ICpjdXJyZW50ID09ICclJyApCi0gICAgICB7Ci0gICAgICAgICBhZGRQYXRoSW5BcmcoIHBhdGgs
IGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKTsKLSAgICAgICAgICsrY3VycmVu
dDsKLSAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCAqY3VycmVudCA9PSAnLicgKQotICAgICAgewot
ICAgICAgICAgKytjdXJyZW50OwotICAgICAgfQotICAgICAgZWxzZQotICAgICAgewotICAgICAg
ICAgY29uc3QgY2hhciAqYmVnaW5OYW1lID0gY3VycmVudDsKLSAgICAgICAgIHdoaWxlICggY3Vy
cmVudCAhPSBlbmQgICYmICAhc3RyY2hyKCAiWy4iLCAqY3VycmVudCApICkKLSAgICAgICAgICAg
ICsrY3VycmVudDsKLSAgICAgICAgIGFyZ3NfLnB1c2hfYmFjayggc3RkOjpzdHJpbmcoIGJlZ2lu
TmFtZSwgY3VycmVudCApICk7Ci0gICAgICB9Ci0gICB9Ci19Ci0KLQotdm9pZCAKLVBhdGg6OmFk
ZFBhdGhJbkFyZyggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAgICAgICAg
ICBjb25zdCBJbkFyZ3MgJmluLCAKLSAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9p
dGVyYXRvciAmaXRJbkFyZywgCi0gICAgICAgICAgICAgICAgICAgIFBhdGhBcmd1bWVudDo6S2lu
ZCBraW5kICkKLXsKLSAgIGlmICggaXRJbkFyZyA9PSBpbi5lbmQoKSApCi0gICB7Ci0gICAgICAv
LyBFcnJvcjogbWlzc2luZyBhcmd1bWVudCAlZAotICAgfQotICAgZWxzZSBpZiAoICgqaXRJbkFy
ZyktPmtpbmRfICE9IGtpbmQgKQotICAgewotICAgICAgLy8gRXJyb3I6IGJhZCBhcmd1bWVudCB0
eXBlCi0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAgICBhcmdzXy5wdXNoX2JhY2soICoqaXRJbkFy
ZyApOwotICAgfQotfQotCi0KLXZvaWQgCi1QYXRoOjppbnZhbGlkUGF0aCggY29uc3Qgc3RkOjpz
dHJpbmcgJnBhdGgsIAotICAgICAgICAgICAgICAgICAgIGludCBsb2NhdGlvbiApCi17Ci0gICAv
LyBFcnJvcjogaW52YWxpZCBwYXRoLgotfQotCi0KLWNvbnN0IFZhbHVlICYKLVBhdGg6OnJlc29s
dmUoIGNvbnN0IFZhbHVlICZyb290ICkgY29uc3QKLXsKLSAgIGNvbnN0IFZhbHVlICpub2RlID0g
JnJvb3Q7Ci0gICBmb3IgKCBBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7
IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0ICkKLSAgIHsKLSAgICAgIGNvbnN0IFBhdGhBcmd1bWVu
dCAmYXJnID0gKml0OwotICAgICAgaWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5k
SW5kZXggKQotICAgICAgewotICAgICAgICAgaWYgKCAhbm9kZS0+aXNBcnJheSgpICB8fCAgIW5v
ZGUtPmlzVmFsaWRJbmRleCggYXJnLmluZGV4XyApICkKLSAgICAgICAgIHsKLSAgICAgICAgICAg
IC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChhcnJheSB2YWx1ZSBleHBlY3RlZCBh
dCBwb3NpdGlvbi4uLgotICAgICAgICAgfQotICAgICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcu
aW5kZXhfXSk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmICggYXJnLmtpbmRfID09IFBhdGhBcmd1
bWVudDo6a2luZEtleSApCi0gICAgICB7Ci0gICAgICAgICBpZiAoICFub2RlLT5pc09iamVjdCgp
ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBw
YXRoIChvYmplY3QgdmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4pCi0gICAgICAgICB9Ci0g
ICAgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICAgICBpZiAoIG5vZGUg
PT0gJlZhbHVlOjpudWxsICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9yOiB1bmFi
bGUgdG8gcmVzb2x2ZSBwYXRoIChvYmplY3QgaGFzIG5vIG1lbWJlciBuYW1lZCAnJyBhdCBwb3Np
dGlvbi4uLikKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0KLSAgIHJldHVybiAqbm9kZTsKLX0K
LQotCi1WYWx1ZSAKLVBhdGg6OnJlc29sdmUoIGNvbnN0IFZhbHVlICZyb290LCAKLSAgICAgICAg
ICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdAotewotICAgY29uc3QgVmFs
dWUgKm5vZGUgPSAmcm9vdDsKLSAgIGZvciAoIEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJn
c18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQgKQotICAgewotICAgICAgY29uc3Qg
UGF0aEFyZ3VtZW50ICZhcmcgPSAqaXQ7Ci0gICAgICBpZiAoIGFyZy5raW5kXyA9PSBQYXRoQXJn
dW1lbnQ6OmtpbmRJbmRleCApCi0gICAgICB7Ci0gICAgICAgICBpZiAoICFub2RlLT5pc0FycmF5
KCkgIHx8ICAhbm9kZS0+aXNWYWxpZEluZGV4KCBhcmcuaW5kZXhfICkgKQotICAgICAgICAgICAg
cmV0dXJuIGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4
X10pOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoIGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6
OmtpbmRLZXkgKQotICAgICAgewotICAgICAgICAgaWYgKCAhbm9kZS0+aXNPYmplY3QoKSApCi0g
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgICAgICAgbm9kZSA9ICYoKCpub2Rl
KVthcmcua2V5X10pOwotICAgICAgICAgaWYgKCBub2RlID09ICZWYWx1ZTo6bnVsbCApCi0gICAg
ICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgICAgfQotICAgfQotICAgcmV0dXJuICpu
b2RlOwotfQotCi0KLVZhbHVlICYKLVBhdGg6Om1ha2UoIFZhbHVlICZyb290ICkgY29uc3QKLXsK
LSAgIFZhbHVlICpub2RlID0gJnJvb3Q7Ci0gICBmb3IgKCBBcmdzOjpjb25zdF9pdGVyYXRvciBp
dCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0ICkKLSAgIHsKLSAgICAg
IGNvbnN0IFBhdGhBcmd1bWVudCAmYXJnID0gKml0OwotICAgICAgaWYgKCBhcmcua2luZF8gPT0g
UGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKQotICAgICAgewotICAgICAgICAgaWYgKCAhbm9kZS0+
aXNBcnJheSgpICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9yOiBub2RlIGlzIG5v
dCBhbiBhcnJheSBhdCBwb3NpdGlvbiAuLi4KLSAgICAgICAgIH0KLSAgICAgICAgIG5vZGUgPSAm
KCgqbm9kZSlbYXJnLmluZGV4X10pOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoIGFyZy5raW5k
XyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKQotICAgICAgewotICAgICAgICAgaWYgKCAhbm9k
ZS0+aXNPYmplY3QoKSApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAvLyBFcnJvcjogbm9kZSBp
cyBub3QgYW4gb2JqZWN0IGF0IHBvc2l0aW9uLi4uCi0gICAgICAgICB9Ci0gICAgICAgICBub2Rl
ID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICB9Ci0gICB9Ci0gICByZXR1cm4gKm5vZGU7
Ci19Ci0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3BhdGNoZXMvdmFsdWUuaC5k
aWZmIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3BhdGNoZXMvdmFsdWUuaC5kaWZmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
Y2U1N2IyZGE3NDE4ODUzZTZjZGUxY2NjMDQzZDdlMGJhYTM5YWY3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9wYXRjaGVzL3ZhbHVlLmguZGlmZgorKysgL2Rl
di9udWxsCkBAIC0xLDM3ICswLDAgQEAKLWRpZmYgLS1naXQgImEvc291cmNlXFxpbmNsdWRlXFxq
c29uXFx2YWx1ZS5oIiAiYi9vdmVycmlkZXNcXGluY2x1ZGVcXGpzb25cXHZhbHVlLmgiCi1pbmRl
eCBiMDEzYzliLi41NzA3MjYwIDEwMDY0NAotLS0tICJhL3NvdXJjZVxcaW5jbHVkZVxcanNvblxc
dmFsdWUuaCIKLSsrKyAiYi9vdmVycmlkZXNcXGluY2x1ZGVcXGpzb25cXHZhbHVlLmgiCi1AQCAt
Nyw3ICs3LDcgQEAKLSAjIGRlZmluZSBDUFBUTF9KU09OX0hfSU5DTFVERUQKLSAKLSAjaWYgIWRl
ZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0tIyBpbmNsdWRlICJmb3J3YXJkcy5oIgotKyMg
aW5jbHVkZSAidGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2ZvcndhcmRz
LmgiCi0gI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotICMgaW5j
bHVkZSA8c3RyaW5nPgotICMgaW5jbHVkZSA8dmVjdG9yPgotQEAgLTEzNiw3ICsxMzYsNyBAQCBu
YW1lc3BhY2UgSnNvbiB7Ci0gICAgICAgdHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJnZXN0
VUludDsKLSAgICAgICB0eXBlZGVmIEpzb246OkFycmF5SW5kZXggQXJyYXlJbmRleDsKLSAKLS0g
ICAgICBzdGF0aWMgY29uc3QgVmFsdWUgbnVsbDsKLSsgICAgICBzdGF0aWMgY29uc3QgVmFsdWUm
IG51bGw7Ci0gICAgICAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4g
YmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICAgc3RhdGljIGNvbnN0IExhcmdlc3RJ
bnQgbWluTGFyZ2VzdEludDsKLSAgICAgICAvLy8gTWF4aW11bSBzaWduZWQgaW50ZWdlciB2YWx1
ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLUBAIC00OTYsMTAgKzQ5Niwx
MiBAQCBuYW1lc3BhY2UgSnNvbiB7Ci0gIyBlbmRpZgotICAgICAgIH0gdmFsdWVfOwotICAgICAg
IFZhbHVlVHlwZSB0eXBlXyA6IDg7Ci0tICAgICAgaW50IGFsbG9jYXRlZF8gOiAxOyAgICAgLy8g
Tm90ZXM6IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxkIGlzIHVzZWxlc3MuCi0rICAgICAg
Ly8gT25lLWJpdCBiaXRmaWVsZHMgbXVzdCBiZSB1bnNpZ25lZCB0byBhbGxvdyBzdG9yaW5nIDEu
Ci0rICAgICAgLy8gVGhleSBtdXN0IGJlIDMyLWJpdHMgdG8gc2hhcmUgc3RvcmFnZSB3aXRoIFZh
bHVlSG9sZGVyLgotKyAgICAgIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsKLSAjIGlmZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgICAgIHVuc2lnbmVkIGludCBpdGVtSXNV
c2VkXyA6IDE7ICAgICAgLy8gdXNlZCBieSB0aGUgVmFsdWVJbnRlcm5hbE1hcCBjb250YWluZXIu
Ci0tICAgICAgaW50IG1lbWJlck5hbWVJc1N0YXRpY18gOiAxOyAgICAgICAvLyB1c2VkIGJ5IHRo
ZSBWYWx1ZUludGVybmFsTWFwIGNvbnRhaW5lci4KLSsgICAgICB1bnNpZ25lZCBpbnQgbWVtYmVy
TmFtZUlzU3RhdGljXyA6IDE7IC8vIHVzZWQgYnkgdGhlIFZhbHVlSW50ZXJuYWxNYXAgY29udGFp
bmVyLgotICMgZW5kaWYKLSAgICAgICBDb21tZW50SW5mbyAqY29tbWVudHNfOwotICAgIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlLy5jbGFuZy1mb3JtYXQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5jbGFuZy1mb3JtYXQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmEzNzJmYzViZWViMjBiYzI1NGQzNjg0OGEyMjQyMDY5ZmM5Yzg0NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvLmNsYW5nLWZvcm1hdApAQCAtMCwwICsxLDQ3IEBACistLS0KKyMgQmFz
ZWRPblN0eWxlOiAgTExWTQorQWNjZXNzTW9kaWZpZXJPZmZzZXQ6IC0yCitDb25zdHJ1Y3Rvcklu
aXRpYWxpemVySW5kZW50V2lkdGg6IDQKK0FsaWduRXNjYXBlZE5ld2xpbmVzTGVmdDogZmFsc2UK
K0FsaWduVHJhaWxpbmdDb21tZW50czogdHJ1ZQorQWxsb3dBbGxQYXJhbWV0ZXJzT2ZEZWNsYXJh
dGlvbk9uTmV4dExpbmU6IHRydWUKK0FsbG93U2hvcnRJZlN0YXRlbWVudHNPbkFTaW5nbGVMaW5l
OiBmYWxzZQorQWxsb3dTaG9ydExvb3BzT25BU2luZ2xlTGluZTogZmFsc2UKK0Fsd2F5c0JyZWFr
VGVtcGxhdGVEZWNsYXJhdGlvbnM6IGZhbHNlCitBbHdheXNCcmVha0JlZm9yZU11bHRpbGluZVN0
cmluZ3M6IGZhbHNlCitCcmVha0JlZm9yZUJpbmFyeU9wZXJhdG9yczogZmFsc2UKK0JyZWFrQmVm
b3JlVGVybmFyeU9wZXJhdG9yczogdHJ1ZQorQnJlYWtDb25zdHJ1Y3RvckluaXRpYWxpemVyc0Jl
Zm9yZUNvbW1hOiBmYWxzZQorQmluUGFja1BhcmFtZXRlcnM6IGZhbHNlCitDb2x1bW5MaW1pdDog
ICAgIDgwCitDb25zdHJ1Y3RvckluaXRpYWxpemVyQWxsT25PbmVMaW5lT3JPbmVQZXJMaW5lOiBm
YWxzZQorRGVyaXZlUG9pbnRlckJpbmRpbmc6IGZhbHNlCitFeHBlcmltZW50YWxBdXRvRGV0ZWN0
QmluUGFja2luZzogZmFsc2UKK0luZGVudENhc2VMYWJlbHM6IGZhbHNlCitNYXhFbXB0eUxpbmVz
VG9LZWVwOiAxCitOYW1lc3BhY2VJbmRlbnRhdGlvbjogTm9uZQorT2JqQ1NwYWNlQmVmb3JlUHJv
dG9jb2xMaXN0OiB0cnVlCitQZW5hbHR5QnJlYWtCZWZvcmVGaXJzdENhbGxQYXJhbWV0ZXI6IDE5
CitQZW5hbHR5QnJlYWtDb21tZW50OiA2MAorUGVuYWx0eUJyZWFrU3RyaW5nOiAxMDAwCitQZW5h
bHR5QnJlYWtGaXJzdExlc3NMZXNzOiAxMjAKK1BlbmFsdHlFeGNlc3NDaGFyYWN0ZXI6IDEwMDAw
MDAKK1BlbmFsdHlSZXR1cm5UeXBlT25JdHNPd25MaW5lOiA2MAorUG9pbnRlckJpbmRzVG9UeXBl
OiB0cnVlCitTcGFjZXNCZWZvcmVUcmFpbGluZ0NvbW1lbnRzOiAxCitDcHAxMUJyYWNlZExpc3RT
dHlsZTogdHJ1ZQorU3RhbmRhcmQ6ICAgICAgICBDcHAxMQorSW5kZW50V2lkdGg6ICAgICAyCitU
YWJXaWR0aDogICAgICAgIDgKK1VzZVRhYjogICAgICAgICAgTmV2ZXIKK0JyZWFrQmVmb3JlQnJh
Y2VzOiBBdHRhY2gKK0luZGVudEZ1bmN0aW9uRGVjbGFyYXRpb25BZnRlclR5cGU6IGZhbHNlCitT
cGFjZXNJblBhcmVudGhlc2VzOiBmYWxzZQorU3BhY2VzSW5BbmdsZXM6ICBmYWxzZQorU3BhY2VJ
bkVtcHR5UGFyZW50aGVzZXM6IGZhbHNlCitTcGFjZXNJbkNTdHlsZUNhc3RQYXJlbnRoZXNlczog
ZmFsc2UKK1NwYWNlQWZ0ZXJDb250cm9sU3RhdGVtZW50S2V5d29yZDogdHJ1ZQorU3BhY2VCZWZv
cmVBc3NpZ25tZW50T3BlcmF0b3JzOiB0cnVlCitDb250aW51YXRpb25JbmRlbnRXaWR0aDogNAor
Li4uCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGF0dHJpYnV0ZXMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRhdHRyaWJ1
dGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIyZDJiN2E0NTVhMzhhNGMzZWVlNGZkYTYwMmE1ODZmMzk2YWI4MTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRhdHRyaWJ1dGVzCkBAIC0wLDAgKzEsMTEgQEAK
KyogICAgICAgICAgIHRleHQ9YXV0bworKi5oICAgICAgICAgdGV4dAorKi5jcHAgICAgICAgdGV4
dAorKi5qc29uICAgICAgdGV4dAorKi5pbiAgICAgICAgdGV4dAorKi5zaCAgICAgICAgZW9sPWxm
CisqLmJhdCAgICAgICBlb2w9Y3JsZgorKi52Y3Byb2ogICAgZW9sPWNybGYKKyoudmN4cHJvaiAg
IGVvbD1jcmxmCisqLnNsbiAgICAgICBlb2w9Y3JsZgorZGV2dG9vbHMvYWdlbnRfdm0qIGVvbD1j
cmxmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRodWIvSVNTVUVfVEVNUExBVEUvYnVnX3JlcG9ydC5t
ZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS9idWdfcmVwb3J0Lm1kCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM1NDc3MDk3YTYzNWIxNjllMWI3OTY3MzJhZDUyZWY3MTQ2NWNkZmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlLy5naXRodWIvSVNTVUVfVEVNUExBVEUvYnVnX3JlcG9ydC5tZApAQCAtMCwwICsx
LDI2IEBACistLS0KK25hbWU6IEJ1ZyByZXBvcnQKK2Fib3V0OiBDcmVhdGUgYSByZXBvcnQgdG8g
aGVscCB1cyBpbXByb3ZlCit0aXRsZTogJycKK2xhYmVsczogJycKK2Fzc2lnbmVlczogJycKKwor
LS0tCisKKyoqRGVzY3JpYmUgdGhlIGJ1ZyoqCitBIGNsZWFyIGFuZCBjb25jaXNlIGRlc2NyaXB0
aW9uIG9mIHdoYXQgdGhlIGJ1ZyBpcy4KKworKipUbyBSZXByb2R1Y2UqKgorU3RlcHMgdG8gcmVw
cm9kdWNlIHRoZSBiZWhhdmlvcjoKKzEuCisKKyoqRXhwZWN0ZWQgYmVoYXZpb3IqKgorQSBjbGVh
ciBhbmQgY29uY2lzZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHlvdSBleHBlY3RlZCB0byBoYXBwZW4u
CisKKyoqRGVza3RvcCAocGxlYXNlIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24p
OioqCisgLSBPUzogW2UuZy4gaU9TXQorIC0gTWVzb24gdmVyc2lvbgorIC0gTmluamEgdmVyc2lv
bgorCisqKkFkZGl0aW9uYWwgY29udGV4dCoqCitBZGQgYW55IG90aGVyIGNvbnRleHQgYWJvdXQg
dGhlIHByb2JsZW0gaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGh1Yi9JU1NVRV9URU1QTEFU
RS9mZWF0dXJlX3JlcXVlc3QubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRodWIvSVNTVUVfVEVNUExBVEUvZmVhdHVy
ZV9yZXF1ZXN0Lm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiY2JiZTdkNjE1NThhZGRlM2NiZmQwYzdhNjNhNjdj
MjdlZDZkMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy5naXRodWIvSVNTVUVfVEVNUExBVEUv
ZmVhdHVyZV9yZXF1ZXN0Lm1kCkBAIC0wLDAgKzEsMjAgQEAKKy0tLQorbmFtZTogRmVhdHVyZSBy
ZXF1ZXN0CithYm91dDogU3VnZ2VzdCBhbiBpZGVhIGZvciB0aGlzIHByb2plY3QKK3RpdGxlOiAn
JworbGFiZWxzOiAnJworYXNzaWduZWVzOiAnJworCistLS0KKworKipJcyB5b3VyIGZlYXR1cmUg
cmVxdWVzdCByZWxhdGVkIHRvIGEgcHJvYmxlbT8gUGxlYXNlIGRlc2NyaWJlLioqCitBIGNsZWFy
IGFuZCBjb25jaXNlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIHByb2JsZW0gaXMuIEV4LiBJJ20g
YWx3YXlzIGZydXN0cmF0ZWQgd2hlbiBbLi4uXQorCisqKkRlc2NyaWJlIHRoZSBzb2x1dGlvbiB5
b3UnZCBsaWtlKioKK0EgY2xlYXIgYW5kIGNvbmNpc2UgZGVzY3JpcHRpb24gb2Ygd2hhdCB5b3Ug
d2FudCB0byBoYXBwZW4uCisKKyoqRGVzY3JpYmUgYWx0ZXJuYXRpdmVzIHlvdSd2ZSBjb25zaWRl
cmVkKioKK0EgY2xlYXIgYW5kIGNvbmNpc2UgZGVzY3JpcHRpb24gb2YgYW55IGFsdGVybmF0aXZl
IHNvbHV0aW9ucyBvciBmZWF0dXJlcyB5b3UndmUgY29uc2lkZXJlZC4KKworKipBZGRpdGlvbmFs
IGNvbnRleHQqKgorQWRkIGFueSBvdGhlciBjb250ZXh0IG9yIHNjcmVlbnNob3RzIGFib3V0IHRo
ZSBmZWF0dXJlIHJlcXVlc3QgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLmdpdGlnbm9yZSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDIwNjk3YzIzMzU4MDJjYjM1ZDM2MGY1OTU4YTBk
ZTZlOGEyMDI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8uZ2l0aWdub3JlCkBAIC0wLDAgKzEs
NTUgQEAKKy9idWlsZC8KKy9idWlsZC0qLworKi5weWMKKyouc3dwCisqLmFjdHVhbAorKi5hY3R1
YWwtcmV3cml0ZQorKi5wcm9jZXNzLW91dHB1dAorKi5yZXdyaXRlCisvYmluLworL2xpYnMvCisv
ZG9jL2RveHlmaWxlCisvZGlzdC8KKyMvdmVyc2lvbgorIy9pbmNsdWRlL2pzb24vdmVyc2lvbi5o
CisKKyMgTVNWQyBwcm9qZWN0IGZpbGVzOgorKi5zbG4KKyoudmN4cHJvagorKi5maWx0ZXJzCisq
LnVzZXIKKyouc2RmCisqLm9wZW5zZGYKKyouc3VvCisKKyMgTVNWQyBidWlsZCBmaWxlczoKKyou
bGliCisqLm9iagorKi50bG9nLworKi5wZGIKKworIyBDTWFrZS1nZW5lcmF0ZWQgZmlsZXM6CitD
TWFrZUZpbGVzLworKi5jbWFrZQorL3BrZy1jb25maWcvanNvbmNwcC5wYworanNvbmNwcF9saWJf
c3RhdGljLmRpci8KKworIyBJbiBjYXNlIHNvbWVvbmUgcnVucyBjbWFrZSBpbiB0aGUgcm9vdC1k
aXI6CisvQ01ha2VDYWNoZS50eHQKKy9NYWtlZmlsZQorL2luY2x1ZGUvTWFrZWZpbGUKKy9zcmMv
TWFrZWZpbGUKKy9zcmMvanNvbnRlc3RydW5uZXIvTWFrZWZpbGUKKy9zcmMvanNvbnRlc3RydW5u
ZXIvanNvbnRlc3RydW5uZXJfZXhlCisvc3JjL2xpYl9qc29uL01ha2VmaWxlCisvc3JjL3Rlc3Rf
bGliX2pzb24vTWFrZWZpbGUKKy9zcmMvdGVzdF9saWJfanNvbi9qc29uY3BwX3Rlc3QKKyouYQor
CisjIGVjbGlwc2UgcHJvamVjdCBmaWxlcworLnByb2plY3QKKy5jcHJvamVjdAorLy5zZXR0aW5n
cy8KKworIyBEU19TdG9yZQorLkRTX1N0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXMueW1s
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjQ5YjQ2MzNiZGI5OWRkZDAxZDRjMTIy
YjQzNzY3ZTA0OTc4YWViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzLnltbApAQCAt
MCwwICsxLDY1IEBACisjIEJ1aWxkIG1hdHJpeCAvIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUg
ZXhwbGFpbmVkIG9uOgorIyBodHRwOi8vYWJvdXQudHJhdmlzLWNpLm9yZy9kb2NzL3VzZXIvYnVp
bGQtY29uZmlndXJhdGlvbi8KKyMgVGhpcyBmaWxlIGNhbiBiZSB2YWxpZGF0ZWQgb246IGh0dHA6
Ly93d3cueWFtbGxpbnQuY29tLworIyBPciB1c2luZyB0aGUgUnVieSBiYXNlZCB0cmF2ZWwgY29t
bWFuZCBsaW5lIHRvb2w6CisjIGdlbSBpbnN0YWxsIHRyYXZpcyAtLW5vLXJkb2MgLS1uby1yaQor
IyB0cmF2aXMgbGludCAudHJhdmlzLnltbAorbGFuZ3VhZ2U6IGNwcAorc3VkbzogZmFsc2UKK2Fk
ZG9uczoKKyAgaG9tZWJyZXc6CisgICAgcGFja2FnZXM6CisgICAgLSBtZXNvbgorICAgIC0gbmlu
amEKKyAgICB1cGRhdGU6IGZhbHNlICMgZG8gbm90IHVwZGF0ZSBob21lYnJldyBieSBkZWZhdWx0
CisgIGFwdDoKKyAgICBzb3VyY2VzOgorICAgIC0gdWJ1bnR1LXRvb2xjaGFpbi1yLXRlc3QKKyAg
ICAtIGxsdm0tdG9vbGNoYWluLXhlbmlhbC04CisgICAgcGFja2FnZXM6CisgICAgLSBjbGFuZy04
CisgICAgLSB2YWxncmluZAorbWF0cml4OgorICBhbGxvd19mYWlsdXJlczoKKyAgICAtIG9zOiBv
c3gKKyAgaW5jbHVkZToKKyAgICAtIG5hbWU6IE1hYyBjbGFuZyBtZXNvbiBzdGF0aWMgcmVsZWFz
ZSB0ZXN0aW5nCisgICAgICBvczogb3N4CisgICAgICBvc3hfaW1hZ2U6IHhjb2RlMTAuMgorICAg
ICAgY29tcGlsZXI6IGNsYW5nCisgICAgICBlbnY6CisgICAgICAgICBDWFg9ImNsYW5nKysiCisg
ICAgICAgICBDQz0iY2xhbmciCisgICAgICAgICBMSUJfVFlQRT1zdGF0aWMKKyAgICAgICAgIEJV
SUxEX1RZUEU9cmVsZWFzZQorICAgICAgc2NyaXB0OiAuLy50cmF2aXNfc2NyaXB0cy9tZXNvbl9i
dWlsZGVyLnNoCisgICAgLSBuYW1lOiBMaW51eCB4ZW5pYWwgY2xhbmcgbWVzb24gc3RhdGljIHJl
bGVhc2UgdGVzdGluZworICAgICAgb3M6IGxpbnV4CisgICAgICBkaXN0OiB4ZW5pYWwKKyAgICAg
IGNvbXBpbGVyOiBjbGFuZworICAgICAgZW52OgorICAgICAgICAgQ1hYPSJjbGFuZysrIgorICAg
ICAgICAgQ0M9ImNsYW5nIgorICAgICAgICAgTElCX1RZUEU9c3RhdGljCisgICAgICAgICBCVUlM
RF9UWVBFPXJlbGVhc2UKKyAgICAgICMgYmVmb3JlX2luc3RhbGwgYW5kIGluc3RhbGwgc3RlcHMg
b25seSBuZWVkZWQgZm9yIGxpbnV4IG1lc29uIGJ1aWxkcworICAgICAgYmVmb3JlX2luc3RhbGw6
CisgICAgICAgICAgLSBzb3VyY2UgLi8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmJlZm9yZV9pbnN0
YWxsLiR7VFJBVklTX09TX05BTUV9LnNoCisgICAgICBpbnN0YWxsOgorICAgICAgICAgICAtIHNv
dXJjZSAuLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuaW5zdGFsbC4ke1RSQVZJU19PU19OQU1FfS5z
aAorICAgICAgc2NyaXB0OiAuLy50cmF2aXNfc2NyaXB0cy9tZXNvbl9idWlsZGVyLnNoCisgICAg
LSBuYW1lOiBMaW51eCB4ZW5pYWwgZ2NjIGNtYWtlIGNvdmVyYWdlCisgICAgICBvczogbGludXgK
KyAgICAgIGRpc3Q6IHhlbmlhbAorICAgICAgY29tcGlsZXI6IGdjYworICAgICAgZW52OgorICAg
ICAgICBDWFg9ZysrCisgICAgICAgIENDPWdjYworICAgICAgICBET19Db3ZlcmFnZT1PTgorICAg
ICAgICBCVUlMRF9UT09MPSJVbml4IE1ha2VmaWxlcyIKKyAgICAgICAgQlVJTERfVFlQRT1EZWJ1
ZworICAgICAgICBMSUJfVFlQRT1zaGFyZWQKKyAgICAgICAgREVTVERJUj0vdG1wL2NtYWtlX2pz
b25fY3BwCisgICAgICBzY3JpcHQ6IC4vLnRyYXZpc19zY3JpcHRzL2NtYWtlX2J1aWxkZXIuc2gK
K25vdGlmaWNhdGlvbnM6CisgIGVtYWlsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlz
X3NjcmlwdHMvY21ha2VfYnVpbGRlci5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL2NtYWtlX2J1
aWxkZXIuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiMzMzMTJlYTBmMjJjYjViOTY5YzZkYWViZmM3NGZiYmRi
YTJmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL2NtYWtlX2J1aWxk
ZXIuc2gKQEAgLTAsMCArMSwxMzAgQEAKKyMhL3Vzci9iaW4vZW52IHNoCisjIFRoaXMgc2NyaXB0
IGNhbiBiZSB1c2VkIG9uIHRoZSBjb21tYW5kIGxpbmUgZGlyZWN0bHkgdG8gY29uZmlndXJlIHNl
dmVyYWwKKyMgZGlmZmVyZW50IGJ1aWxkIGVudmlyb25tZW50cy4KKyMgVGhpcyBpcyBjYWxsZWQg
YnkgYC50cmF2aXMueW1sYCB2aWEgVHJhdmlzIENJLgorIyBUcmF2aXMgc3VwcGxpZXMgJFRSQVZJ
U19PU19OQU1FLgorIyAgaHR0cDovL2RvY3MudHJhdmlzLWNpLmNvbS91c2VyL211bHRpLW9zLwor
IyBPdXIgLnRyYXZpcy55bWwgYWxzbyBkZWZpbmVzOgorCisjICAgLSBCVUlMRF9UWVBFPVJlbGVh
c2UvRGVidWcKKyMgICAtIExJQl9UWVBFPXN0YXRpYy9zaGFyZWQKKyMKKyMgT3B0aW9uYWwgZW52
aXJvbm1lbnRhbCB2YXJpYWJsZXMKKyMgICAtIERFU1RESVIgPC0gdXNlZCBmb3Igc2V0dGluZyB0
aGUgaW5zdGFsbCBwcmVmaXgKKyMgICAtIEJVSUxEX1RPT0w9WyJVbml4IE1ha2VmaWxlInwiTmlu
amEiXQorIyAgIC0gQlVJTEROQU1FIDwtIGhvdyB0byBpZGVudGlmeSB0aGlzIGJ1aWxkIG9uIHRo
ZSBkYXNoYm9hcmQKKyMgICAtIERPX01lbUNoZWNrIDwtIGlmIHNldCwgdHJ5IHRvIHVzZSB2YWxn
cmluZAorIyAgIC0gRE9fQ292ZXJhZ2UgPC0gaWYgc2V0LCB0cnkgdG8gZG8gZGFzaGJvYXJkIGNv
dmVyYWdlIHRlc3RpbmcKKyMKKworZW52X3NldD0xCitpZiAke0JVSUxEX1RZUEUrZmFsc2V9OyB0
aGVuCisgIGVjaG8gIkJVSUxEX1RZUEUgbm90IHNldCBpbiBlbnZpcm9ubWVudC4iCisgIGVudl9z
ZXQ9MAorZmkKK2lmICR7TElCX1RZUEUrZmFsc2V9OyB0aGVuCisgIGVjaG8gIkxJQl9UWVBFIG5v
dCBzZXQgaW4gZW52aXJvbm1lbnQuIgorICBlbnZfc2V0PTAKK2ZpCitpZiAke0NYWCtmYWxzZX07
IHRoZW4KKyAgZWNobyAiQ1hYIG5vdCBzZXQgaW4gZW52aXJvbm1lbnQuIgorICBlbnZfc2V0PTAK
K2ZpCisKKworaWYgWyAke2Vudl9zZXR9IC1lcSAwIF07IHRoZW4KKyAgZWNobyAiVVNBR0U6ICBD
WFg9JCh3aGljaCBjbGFuZysrKSAgQlVJTERfVFlQRT1bUmVsZWFzZXxEZWJ1Z10gTElCX1RZUEU9
W3N0YXRpY3xzaGFyZWRdICQwIgorICBlY2hvICIiCisgIGVjaG8gIkV4YW1wbGVzOiIKKyAgZWNo
byAiICAgICAgICAgICBDWFg9JCh3aGljaCBjbGFuZysrKSBCVUlMRF9UWVBFPVJlbGVhc2UgTElC
X1RZUEU9c2hhcmVkIERFU1RESVI9L3RtcC9jbWFrZV9qc29uX2NwcCAkMCIKKyAgZWNobyAiICAg
ICAgICAgICBDWFg9JCh3aGljaCBjbGFuZysrKSBCVUlMRF9UWVBFPURlYnVnICAgTElCX1RZUEU9
c2hhcmVkIERFU1RESVI9L3RtcC9jbWFrZV9qc29uX2NwcCAkMCIKKyAgZWNobyAiICAgICAgICAg
ICBDWFg9JCh3aGljaCBjbGFuZysrKSBCVUlMRF9UWVBFPVJlbGVhc2UgTElCX1RZUEU9c3RhdGlj
IERFU1RESVI9L3RtcC9jbWFrZV9qc29uX2NwcCAkMCIKKyAgZWNobyAiICAgICAgICAgICBDWFg9
JCh3aGljaCBjbGFuZysrKSBCVUlMRF9UWVBFPURlYnVnICAgTElCX1RZUEU9c3RhdGljIERFU1RE
SVI9L3RtcC9jbWFrZV9qc29uX2NwcCAkMCIKKworICBlY2hvICIgICAgICAgICAgIENYWD0kKHdo
aWNoIGcrKykgICAgIEJVSUxEX1RZUEU9UmVsZWFzZSBMSUJfVFlQRT1zaGFyZWQgREVTVERJUj0v
dG1wL2NtYWtlX2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGcr
KykgICAgIEJVSUxEX1RZUEU9RGVidWcgICBMSUJfVFlQRT1zaGFyZWQgREVTVERJUj0vdG1wL2Nt
YWtlX2pzb25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGcrKykgICAg
IEJVSUxEX1RZUEU9UmVsZWFzZSBMSUJfVFlQRT1zdGF0aWMgREVTVERJUj0vdG1wL2NtYWtlX2pz
b25fY3BwICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGcrKykgICAgIEJVSUxE
X1RZUEU9RGVidWcgICBMSUJfVFlQRT1zdGF0aWMgREVTVERJUj0vdG1wL2NtYWtlX2pzb25fY3Bw
ICQwIgorCisgIGV4aXQgLTEKK2ZpCisKK2lmICR7REVTVERJUitmYWxzZX07IHRoZW4KKyAgREVT
VERJUj0iL3Vzci9sb2NhbCIKK2ZpCisKKyMgLWU6IGZhaWwgb24gZXJyb3IKKyMgLXY6IHNob3cg
Y29tbWFuZHMKKyMgLXg6IHNob3cgZXhwYW5kZWQgY29tbWFuZHMKK3NldCAtdmV4CisKK2VudiB8
IHNvcnQKKword2hpY2ggY21ha2UKK2NtYWtlIC0tdmVyc2lvbgorCitlY2hvICR7Q1hYfQorJHtD
WFh9IC0tdmVyc2lvbgorX0NPTVBJTEVSX05BTUU9YGJhc2VuYW1lICR7Q1hYfWAKK2lmIFsgIiR7
QlVJTERfVFlQRX0iID09ICJzaGFyZWQiIF07IHRoZW4KKyAgX0NNQUtFX0JVSUxEX1NIQVJFRF9M
SUJTPU9OCitlbHNlCisgIF9DTUFLRV9CVUlMRF9TSEFSRURfTElCUz1PRkYKK2ZpCisKK0NURVNU
X1RFU1RJTkdfT1BUSU9OPSItRCBFeHBlcmltZW50YWxUZXN0IgorIyAgIC0gRE9fTWVtQ2hlY2sg
PC0gaWYgc2V0LCB0cnkgdG8gdXNlIHZhbGdyaW5kCitpZiAhICR7RE9fTWVtQ2hlY2srZmFsc2V9
OyB0aGVuCisgICB2YWxncmluZCAtLXZlcnNpb24KKyAgIENURVNUX1RFU1RJTkdfT1BUSU9OPSIt
RCBFeHBlcmltZW50YWxNZW1DaGVjayIKK2Vsc2UKKyMgICAtIERPX0NvdmVyYWdlIDwtIGlmIHNl
dCwgdHJ5IHRvIGRvIGRhc2hib2FyZCBjb3ZlcmFnZSB0ZXN0aW5nCisgIGlmICEgJHtET19Db3Zl
cmFnZStmYWxzZX07IHRoZW4KKyAgICAgZXhwb3J0IENYWEZMQUdTPSItZnByb2ZpbGUtYXJjcyAt
ZnRlc3QtY292ZXJhZ2UiCisgICAgIGV4cG9ydCBMREZMQUdTPSItZnByb2ZpbGUtYXJjcyAtZnRl
c3QtY292ZXJhZ2UiCisgICAgIENURVNUX1RFU1RJTkdfT1BUSU9OPSItRCBFeHBlcmltZW50YWxU
ZXN0IC1EIEV4cGVyaW1lbnRhbENvdmVyYWdlIgorICAgICAjZ2NvdiAtLXZlcnNpb24KKyAgZmkK
K2ZpCisKKyMgIE5pbmphICAgICAgICAgICAgICAgICAgICAgICAgPSBHZW5lcmF0ZXMgYnVpbGQu
bmluamEgZmlsZXMuCitpZiAke0JVSUxEX1RPT0wrZmFsc2V9OyB0aGVuCisgIEJVSUxEX1RPT0w9
Ik5pbmphIgorICBleHBvcnQgX0JVSUxEX0VYRT1uaW5qYQorICB3aGljaCBuaW5qYQorICBuaW5q
YSAtLXZlcnNpb24KK2Vsc2UKKyMgIFVuaXggTWFrZWZpbGVzICAgICAgICAgICAgICAgPSBHZW5l
cmF0ZXMgc3RhbmRhcmQgVU5JWCBtYWtlZmlsZXMuCisgIGV4cG9ydCBfQlVJTERfRVhFPW1ha2UK
K2ZpCisKK19CVUlMRF9ESVJfTkFNRT0iYnVpbGQtY21ha2VfJHtCVUlMRF9UWVBFfV8ke0xJQl9U
WVBFfV8ke19DT01QSUxFUl9OQU1FfV8ke19CVUlMRF9FWEV9IgorbWtkaXIgLXAgJHtfQlVJTERf
RElSX05BTUV9CitjZCAiJHtfQlVJTERfRElSX05BTUV9IgorICBpZiAke0JVSUxETkFNRStmYWxz
ZX07IHRoZW4KKyAgICAgX0hPU1ROQU1FPWBob3N0bmFtZSAtc2AKKyAgICAgQlVJTEROQU1FPSIk
e19IT1NUTkFNRX1fJHtCVUlMRF9UWVBFfV8ke0xJQl9UWVBFfV8ke19DT01QSUxFUl9OQU1FfV8k
e19CVUlMRF9FWEV9IgorICBmaQorICBjbWFrZSBcCisgICAgLUcgIiR7QlVJTERfVE9PTH0iIFwK
KyAgICAtREJVSUxETkFNRTpTVFJJTkc9IiR7QlVJTEROQU1FfSIgXAorICAgIC1EQ01BS0VfQ1hY
X0NPTVBJTEVSOlBBVEg9JHtDWFh9IFwKKyAgICAtRENNQUtFX0JVSUxEX1RZUEU6U1RSSU5HPSR7
QlVJTERfVFlQRX0gXAorICAgIC1EQlVJTERfU0hBUkVEX0xJQlM6Qk9PTD0ke19DTUFLRV9CVUlM
RF9TSEFSRURfTElCU30gXAorICAgIC1EQ01BS0VfSU5TVEFMTF9QUkVGSVg6UEFUSD0ke0RFU1RE
SVJ9IFwKKyAgICAuLi8KKworICBjdGVzdCAtQyAke0JVSUxEX1RZUEV9IC1EIEV4cGVyaW1lbnRh
bFN0YXJ0IC1EIEV4cGVyaW1lbnRhbENvbmZpZ3VyZSAtRCBFeHBlcmltZW50YWxCdWlsZCAke0NU
RVNUX1RFU1RJTkdfT1BUSU9OfSAtRCBFeHBlcmltZW50YWxTdWJtaXQKKyAgIyBGaW5hbCBzdGVw
IGlzIHRvIHZlcmlmeSB0aGF0IGluc3RhbGxhdGlvbiBzdWNjZWVkcworICBjbWFrZSAtLWJ1aWxk
IC4gLS1jb25maWcgJHtCVUlMRF9UWVBFfSAtLXRhcmdldCBpbnN0YWxsCisKKyAgaWYgWyAiJHtE
RVNURElSfSIgIT0gIi91c3IvbG9jYWwiIF07IHRoZW4KKyAgICAgJHtfQlVJTERfRVhFfSBpbnN0
YWxsCisgIGZpCitjZCAtCisKK2lmICR7Q0xFQU5VUCtmYWxzZX07IHRoZW4KKyAgZWNobyAiU2tp
cHBpbmcgY2xlYW51cDogYnVpbGQgZGlyZWN0b3J5IHdpbGwgcGVyc2lzdC4iCitlbHNlCisgIHJt
IC1yICIke19CVUlMRF9ESVJfTkFNRX0iCitmaQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3Nj
cmlwdHMvbWVzb25fYnVpbGRlci5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL21lc29uX2J1aWxk
ZXIuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGJmMDNjYjJmNThiNjFjOTJlZDQ0Y2M3Y2MwNjdjYmU4OWNhZmRh
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL21lc29uX2J1aWxkZXIu
c2gKQEAgLTAsMCArMSw4MSBAQAorIyEvdXNyL2Jpbi9lbnYgc2gKKyMgVGhpcyBzY3JpcHQgY2Fu
IGJlIHVzZWQgb24gdGhlIGNvbW1hbmQgbGluZSBkaXJlY3RseSB0byBjb25maWd1cmUgc2V2ZXJh
bAorIyBkaWZmZXJlbnQgYnVpbGQgZW52aXJvbm1lbnRzLgorIyBUaGlzIGlzIGNhbGxlZCBieSBg
LnRyYXZpcy55bWxgIHZpYSBUcmF2aXMgQ0kuCisjIFRyYXZpcyBzdXBwbGllcyAkVFJBVklTX09T
X05BTUUuCisjICBodHRwOi8vZG9jcy50cmF2aXMtY2kuY29tL3VzZXIvbXVsdGktb3MvCisjIE91
ciAudHJhdmlzLnltbCBhbHNvIGRlZmluZXM6CisKKyMgICAtIEJVSUxEX1RZUEU9cmVsZWFzZS9k
ZWJ1ZworIyAgIC0gTElCX1RZUEU9c3RhdGljL3NoYXJlZAorCitlbnZfc2V0PTEKK2lmICR7QlVJ
TERfVFlQRStmYWxzZX07IHRoZW4KKyAgZWNobyAiQlVJTERfVFlQRSBub3Qgc2V0IGluIGVudmly
b25tZW50LiIKKyAgZW52X3NldD0wCitmaQoraWYgJHtMSUJfVFlQRStmYWxzZX07IHRoZW4KKyAg
ZWNobyAiTElCX1RZUEUgbm90IHNldCBpbiBlbnZpcm9ubWVudC4iCisgIGVudl9zZXQ9MAorZmkK
K2lmICR7Q1hYK2ZhbHNlfTsgdGhlbgorICBlY2hvICJDWFggbm90IHNldCBpbiBlbnZpcm9ubWVu
dC4iCisgIGVudl9zZXQ9MAorZmkKKworCitpZiBbICR7ZW52X3NldH0gLWVxIDAgXTsgdGhlbgor
ICBlY2hvICJVU0FHRTogIENYWD0kKHdoaWNoIGNsYW5nKyspICBCVUlMRF9UWVBFPVtyZWxlYXNl
fGRlYnVnXSBMSUJfVFlQRT1bc3RhdGljfHNoYXJlZF0gJDAiCisgIGVjaG8gIiIKKyAgZWNobyAi
RXhhbXBsZXM6IgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxE
X1RZUEU9cmVsZWFzZSBMSUJfVFlQRT1zaGFyZWQgREVTVERJUj0vdG1wL21lc29uX2pzb25fY3Bw
ICQwIgorICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9
ZGVidWcgICBMSUJfVFlQRT1zaGFyZWQgREVTVERJUj0vdG1wL21lc29uX2pzb25fY3BwICQwIgor
ICBlY2hvICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9cmVsZWFz
ZSBMSUJfVFlQRT1zdGF0aWMgREVTVERJUj0vdG1wL21lc29uX2pzb25fY3BwICQwIgorICBlY2hv
ICIgICAgICAgICAgIENYWD0kKHdoaWNoIGNsYW5nKyspIEJVSUxEX1RZUEU9ZGVidWcgICBMSUJf
VFlQRT1zdGF0aWMgREVTVERJUj0vdG1wL21lc29uX2pzb25fY3BwICQwIgorCisgIGVjaG8gIiAg
ICAgICAgICAgQ1hYPSQod2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1yZWxlYXNlIExJQl9UWVBF
PXNoYXJlZCBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAiCisgIGVjaG8gIiAgICAgICAg
ICAgQ1hYPSQod2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1kZWJ1ZyAgIExJQl9UWVBFPXNoYXJl
ZCBERVNURElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hY
PSQod2hpY2ggZysrKSAgICAgQlVJTERfVFlQRT1yZWxlYXNlIExJQl9UWVBFPXN0YXRpYyBERVNU
RElSPS90bXAvbWVzb25fanNvbl9jcHAgJDAiCisgIGVjaG8gIiAgICAgICAgICAgQ1hYPSQod2hp
Y2ggZysrKSAgICAgQlVJTERfVFlQRT1kZWJ1ZyAgIExJQl9UWVBFPXN0YXRpYyBERVNURElSPS90
bXAvbWVzb25fanNvbl9jcHAgJDAiCisKKyAgZXhpdCAtMQorZmkKKworaWYgJHtERVNURElSK2Zh
bHNlfTsgdGhlbgorICBERVNURElSPSIvdXNyL2xvY2FsIgorZmkKKworIyAtZTogZmFpbCBvbiBl
cnJvcgorIyAtdjogc2hvdyBjb21tYW5kcworIyAteDogc2hvdyBleHBhbmRlZCBjb21tYW5kcwor
c2V0IC12ZXgKKworCitlbnYgfCBzb3J0CisKK3doaWNoIHB5dGhvbjMKK3doaWNoIG1lc29uCit3
aGljaCBuaW5qYQorZWNobyAke0NYWH0KKyR7Q1hYfSAtLXZlcnNpb24KK3B5dGhvbjMgLS12ZXJz
aW9uCittZXNvbiAtLXZlcnNpb24KK25pbmphIC0tdmVyc2lvbgorX0NPTVBJTEVSX05BTUU9YGJh
c2VuYW1lICR7Q1hYfWAKK19CVUlMRF9ESVJfTkFNRT0iYnVpbGQtJHtCVUlMRF9UWVBFfV8ke0xJ
Ql9UWVBFfV8ke19DT01QSUxFUl9OQU1FfSIKK21lc29uIC0tYnVpbGR0eXBlICR7QlVJTERfVFlQ
RX0gLS1kZWZhdWx0LWxpYnJhcnkgJHtMSUJfVFlQRX0gLiAiJHtfQlVJTERfRElSX05BTUV9Igor
bmluamEgLXYgLWogMiAtQyAiJHtfQlVJTERfRElSX05BTUV9IgorI25pbmphIC12IC1qIDIgLUMg
IiR7X0JVSUxEX0RJUl9OQU1FfSIgdGVzdAorY2QgIiR7X0JVSUxEX0RJUl9OQU1FfSIKKyAgbWVz
b24gdGVzdCAtLW5vLXJlYnVpbGQgLS1wcmludC1lcnJvcmxvZ3MKKworICBpZiBbICIke0RFU1RE
SVJ9IiAhPSAiL3Vzci9sb2NhbCIgXTsgdGhlbgorICAgICBuaW5qYSBpbnN0YWxsCisgIGZpCitj
ZCAtCisKK2lmICR7Q0xFQU5VUCtmYWxzZX07IHRoZW4KKyAgZWNobyAiU2tpcHBpbmcgY2xlYW51
cDogIGJ1aWxkIGRpcmVjdG9yeSB3aWxsIHBlcnNpc3QuIgorZWxzZQorICBybSAtciAiJHtfQlVJ
TERfRElSX05BTUV9IgorZmkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL3RyYXZp
cy5iZWZvcmVfaW5zdGFsbC5saW51eC5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvLnRyYXZpc19zY3JpcHRzL3RyYXZpcy5i
ZWZvcmVfaW5zdGFsbC5saW51eC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjU1NmRlMTU1ZGYwZGZmNzcyZmY4
MTVhODhjMTU0MzA3ZjQ1MjFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3Njcmlw
dHMvdHJhdmlzLmJlZm9yZV9pbnN0YWxsLmxpbnV4LnNoCkBAIC0wLDAgKzEsOCBAQAorc2V0IC12
ZXgKKworIyBQcmVpbnN0YWxsZWQgdmVyc2lvbnMgb2YgcHl0aG9uIGFyZSBkZXBlbmRlbnQgb24g
d2hpY2ggVWJ1bnR1IGRpc3RyaWJ1dGlvbgorIyB5b3UgYXJlIHJ1bm5pbmcuIFRoZSBiZWxvdyB2
ZXJzaW9uIG5lZWRzIHRvIGJlIHVwZGF0ZWQgd2hlbmV2ZXIgd2Ugcm9sbAorIyB0aGUgVWJ1bnR1
IHZlcnNpb24gdXNlZCBpbiBUcmF2aXMuCisjIGh0dHBzOi8vZG9jcy50cmF2aXMtY2kuY29tL3Vz
ZXIvbGFuZ3VhZ2VzL3B5dGhvbi8KKworcHllbnYgZ2xvYmFsIDMuNy4xCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuYmVmb3JlX2luc3RhbGwub3N4LnNoIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8u
dHJhdmlzX3NjcmlwdHMvdHJhdmlzLmJlZm9yZV9pbnN0YWxsLm9zeC5zaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZDgzYzBjNzFlNmY0OWE1NmRiZjBlNzI3YzJhMGNkOTg1NmRjMjc5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmJlZm9yZV9pbnN0YWxsLm9zeC5zaApAQCAt
MCwwICsxIEBACisjIE5PVEhJTkcgVE8gRE8gSEVSRQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlz
X3NjcmlwdHMvdHJhdmlzLmluc3RhbGwubGludXguc2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXNfc2NyaXB0cy90
cmF2aXMuaW5zdGFsbC5saW51eC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzU4NDZmMWE0MGU3YzFmNzA5Y2Ri
NTM0YTg0OTkzNzdiMjQzNjUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3Njcmlw
dHMvdHJhdmlzLmluc3RhbGwubGludXguc2gKQEAgLTAsMCArMSwxMCBAQAorc2V0IC12ZXgKKwor
d2dldCBodHRwczovL2dpdGh1Yi5jb20vbmluamEtYnVpbGQvbmluamEvcmVsZWFzZXMvZG93bmxv
YWQvdjEuOS4wL25pbmphLWxpbnV4LnppcAordW56aXAgLXEgbmluamEtbGludXguemlwIC1kIGJ1
aWxkCisKK3BpcDMgaW5zdGFsbCBtZXNvbgorZWNobyAke1BBVEh9CitscyAvdXNyL2xvY2FsCits
cyAvdXNyL2xvY2FsL2JpbgorZXhwb3J0IFBBVEg9IiR7UFdEfSIvYnVpbGQ6L3Vzci9sb2NhbC9i
aW46L3Vzci9iaW46JHtQQVRIfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJh
dmlzLmluc3RhbGwub3N4LnNoIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS8udHJhdmlzX3NjcmlwdHMvdHJhdmlzLmluc3RhbGwu
b3N4LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVkODNjMGM3MWU2ZjQ5YTU2ZGJmMGU3MjdjMmEwY2Q5ODU2ZGMy
NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlLy50cmF2aXNfc2NyaXB0cy90cmF2aXMuaW5zdGFs
bC5vc3guc2gKQEAgLTAsMCArMSBAQAorIyBOT1RISU5HIFRPIERPIEhFUkUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvQVVUSE9SUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvQVVUSE9SUwppbmRleCBjMGZiYmVlYzExMThjYzBmMTc5ZmNk
ZjNmMzI2MDFlOWQ4NzE3MzA1Li4zNzIzZDU0NmE3NWYyNWFjZGRlMmQ2YmRjMWZiMGRhMmIwYTI1
M2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL0FVVEhPUlMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9BVVRIT1JTCkBAIC0xICsx
LDExMyBAQAogQmFwdGlzdGUgTGVwaWxsZXVyIDxibGVwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4K
KworQWFyb24gSmFjb2JzIDxhYXJvbmpqYWNvYnNAZ21haWwuY29tPgorQWFyb24gSmFjb2JzIDxq
YWNvYnNhQGdvb2dsZS5jb20+CitBZGFtIEJvc2VsZXkgPEFCb3NlbGV5QGFnanVuY3Rpb24uY29t
PgorQWRhbSBCb3NlbGV5IDxhZGFtLmJvc2VsZXlAZ21haWwuY29tPgorQWxla3NhbmRyIERlcmJl
bmV2IDwxM2FsZXhhY0BnbWFpbC5jb20+CitBbGV4YW5kZXIgR2F6YXJvdiA8RHJNZXRhbGxpdXNA
dXNlcnMubm9yZXBseS5naXRodWIuY29tPgorQWxleGFuZGVyIFYuIEJyZXpnaW4gPGFicmV6Z2lu
QGFwcGxpZWR0ZWNoLnJ1PgorQWxleGFuZHIgQnJlemdpbiA8YWxicmV6Z2luQG1haWwucnU+CitB
bGV4ZXkgS3J1Y2hpbmluIDxhbGV4ZXlAbW9wYWxzLmNvbT4KK0FudG9uIEluZHJhd2FuIDxhbnRv
bi5pbmRyYXdhbkBnbWFpbC5jb20+CitCYXB0aXN0ZSBKb25nbGV6IDxnaXRAYml0c29mbmV0d29y
a3Mub3JnPgorQmFwdGlzdGUgTGVwaWxsZXVyIDxiYXB0aXN0ZS5sZXBpbGxldXJAZ21haWwuY29t
PgorQmFydWNoIFNpYWNoIDxiYXJ1Y2hAdGtvcy5jby5pbD4KK0JlbiBCb2Vja2VsIDxtYXRoc3R1
ZkBnbWFpbC5jb20+CitCZW5qYW1pbiBLbmVjaHQgPGJrbmVjaHRAbG9naXRlY2guY29tPgorQmVy
bmQgS3VobHMgPGJlcm5kLmt1aGxzQHQtb25saW5lLmRlPgorQmlsbHkgRG9uYWh1ZSA8YmlsbHlk
b25haHVlQGdvb2dsZS5jb20+CitCcmFkZW4gTWNEb3JtYW4gPGJtY2Rvcm1hbkBnbWFpbC5jb20+
CitCcmFuZG9uIE15ZXJzIDxibXllcnMxNzg4QGdtYWlsLmNvbT4KK0JyZW5kYW4gRHJldyA8YnJl
bmRhbi5kcmV3QGRhcXJpLmNvbT4KK2NoYXNvbiA8Y3hjaGFvODAyQGdtYWlsLmNvbT4KK0Nocmlz
IEdpbGxpbmcgPGNnaWxsaW5nQGlwYXJhZGlnbXMuY29tPgorQ2hyaXN0b3BoZXIgRGF3ZXMgPGNo
cmlzdG9waGVyLmRhd2VzLjE5ODFAZ29vZ2xlbWFpbC5jb20+CitDaHJpc3RvcGhlciBEdW5uIDxj
ZHVubjIwMDFAZ21haWwuY29tPgorQ2h1Y2sgQXRraW5zIDxjaHVjay5hdGtpbnNAa2l0d2FyZS5j
b20+CitDb2R5IFAgU2NoYWZlciA8ZGV2QGNvZHlwcy5jb20+CitDb25ub3IgTWFubmluZyA8Y29u
bm9yQGhvYnUuY28+CitDb3J5IFF1YW1tZW4gPGNvcnkucXVhbW1lbkBraXR3YXJlLmNvbT4KK0Ny
aXN0b8yBdmHMg28gQiBkYSBDcnV6IGUgU2lsdmEgPENyaXNYZWRAZ21haWwuY29tPgorRGFuaWVs
IEtyw7xnbGVyIDxkYW5pZWwua3J1ZWdsZXJAZ21haWwuY29tPgorRGFuaS1IdWIgPGRhbmllbC5r
cnVlZ2xlckBnb29nbGVtYWlsLmNvbT4KK0RhbiBMaXUgPGd6bGl1ZGFuPgorZGF0YWRpb2RlIDxk
YXRhZGlvZGVAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgorZGF0YWRpb2RlIDxqb2NoZW4ubmV1
YmVja0B2b2RhZm9uZS5kZT4KK0RhdmlkIFNlaWZlcnQgPHNvYXBAZ2VudG9vLm9yZz4KK0Rhdmlk
IFdlc3QgPGRhdmlkLXdlc3RAaWRleHguY29tPgorZGF3ZXNjIDxjaHJpcy5kYXdlc0BlZnRsYWIu
Y28udWs+CitEZXZpbiBKZWFucGllcnJlIDxqZWFucGllcnJlZGFAZ29vZ2xlLmNvbT4KK0RtaXRy
eSBNYXJha2Fzb3YgPGFtZG1pM0BhbWRtaTMucnU+Citkb21pbmljcGV6enV0byA8ZG9tQGRvbXBl
enp1dG8uY29tPgorRG9uIE1pbGhhbSA8ZG1pbGhhbUBnbWFpbC5jb20+CitkcmdsZXIgPGRhbmll
bC5rcnVlZ2xlckBnbWFpbC5jb20+CitkczI4MyA8RC5TZWVyeUBzdXNzZXguYWMudWs+CitFZ29y
IFRlbnNpbiA8RWdvci5UZW5zaW5AZ21haWwuY29tPgorZWlnaHRub3RlaWdodCA8bXIuZWlnaHRu
b3RlaWdodEBnbWFpbC5jb20+CitFdmluY2UgPGJhbmV5dWVAZ21haWwuY29tPgorZmlsaXBqcyA8
ZmlsaXBqc0B1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CitmaW5kYmxhciA8ZnRAZmluYmFyci5j
YT4KK0Zsb3JpYW4gTWVpZXIgPGZsb3JpYW4ubWVpZXJAa29hbG8uZGU+CitHYcOrdGFuIExlaG1h
bm4gPGdhZXRhbi5sZWhtYW5uQGdtYWlsLmNvbT4KK0dhdXJhdiA8Zy5ndXB0YUBzYW1zdW5nLmNv
bT4KK0dlcmdlbHkgTmFneSA8bmdnQG5nZy5odT4KK0dpZGEgUGF0YWtpIDxnaWRhLnBhdGFraUBw
cmV6aS5jb20+CitJM2NrIDxidWNrbWFydGluQGJ1Y2ttYXJ0aW4uZGU+CitJw7Fha2kgQmF6IENh
c3RpbGxvIDxpYmNAYWxpYXgubmV0PgorSmFjY28gPGphY2NvQGdldWwubmV0PgorSmVhbi1DaHJp
c3RvcGhlIEZpbGxpb24tUm9iaW4gPGpjaHJpcy5maWxsaW9uckBraXR3YXJlLmNvbT4KK0pvbmFz
IFBsYXR0ZSA8bWFpbEBqb25hc3BsYXR0ZS5kZT4KK0pvcmRhbiBCYXlsZXMgPGJheWxlcy5qb3Jk
YW5AZ21haWwuY29tPgorSsO2cmcgS3JhdXNlIDxqb2VyZy5rcmF1c2VAZW1iZWRkZWQucm9ja3M+
CitLZWl0aCBMZWEgPGtlaXRoQHdoYW1jaXR5bGlnaHRzLmNvbT4KK0tldmluIEdyYW50IDxrYnJh
ZGxleWdyYW50QGdtYWlsLmNvbT4KK0tpcmlsbCBWLiBMeWFkdmluc2t5IDxqaWEzZXBAZ21haWwu
Y29tPgorS2lyaWxsIFYuIEx5YWR2aW5za3kgPG1haWxAY29kZWF0Y3BwLmNvbT4KK0tvYmkgR3Vy
a2FuIDxrb2JpZ3Vya0BnbWFpbC5jb20+CitNYWdudXMgQmplcmtlIFZpayA8bWJ2ZXR0QGdtYWls
LmNvbT4KK01hbGF5IFNoYWggPG1hbGF5c0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitNYXJhIEtp
bSA8aGFja2VyLnJvb3RAZ21haWwuY29tPgorTWFyZWsgS290ZXdpY3ogPG1hcmVrLmtvdGV3aWN6
QGdtYWlsLmNvbT4KK01hcmsgTGFrYXRhIDxtYXJrQGxha2F0YS5vcmc+CitNYXJrIFplcmVuIDxt
emVyZW5Adm13YXJlLmNvbT4KK01hcnRpbiBCdWNrIDxidWNrbWFydGluQGJ1Y2ttYXJ0aW4uZGU+
CitNYXJ0eW4gR2lnZyA8bWFydHluLmdpZ2dAZ21haWwuY29tPgorTWF0dGVzIEQgPGdpdGh1YkB4
b2Z0LmN6PgorTWF0dGhpYXMgTG95IDxtYXR0aGlhcy5sb3lAaGJtLmNvbT4KK01lcmx5biBNb3Jn
YW4tR3JhaGFtIDxrYXZpa2FAZ21haWwuY29tPgorTWljaGFlbCBTaGllbGRzIDxtc2hpZWxkc0Bn
b29nbGUuY29tPgorTWljaGHFgiBHw7NybnkgPG1nb3JueUBnZW50b28ub3JnPgorTWlrZSBOYWJl
cmV6bnkgPG1pa2VAbmFiZXJlem55LmNvbT4KK21sb3kgPG1hdHRoaWFzLmxveUBnb29nbGVtYWls
LmNvbT4KK01vdHRpIDxsYW56a3JvbkBnbWFpbC5jb20+Citubmt1ciA8bm5rdXJAbWFpbC5ydT4K
K09ta2FyIFdhZ2ggPG93YWdoQG93YWdobGludXgubnkudG93ZXItcmVzZWFyY2guY29tPgorcGF1
bG8gPHBhdWxvYnJpem9sYXJhQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KK3BhdmVsLnBpbWVu
b3YgPHBhdmVsLnBpbWVub3ZAZ21haWwuY29tPgorUGF3ZcWCIEJ5bGljYSA8Y2hmYXN0QGdtYWls
LmNvbT4KK1DDqXJpY2xlcyBMb3BlcyBNYWNoYWRvIDxwZXJpY2xlcy5yYXNrb2xuaWtvZmZAZ21h
aWwuY29tPgorUGV0ZXIgU3BpZXNzLUtuYWZsIDxwc2tAYXV0aXN0aWNpLm9yZz4KK3BmZmFuZyA8
cGZmYW5nQHZpcC5xcS5jb20+CitSw6ltaSBWZXJzY2hlbGRlIDxyZW1pQHZlcnNjaGVsZGUuZnI+
CityZW51NTU1IDxyZW51LnR5YWdpQHNhbXN1bmcuY29tPgorUm9iZXJ0IERhaWxleSA8cmNkYWls
ZXlAZ21haWwuY29tPgorU2FtIENsZWdnIDxzYmNAY2hyb21pdW0ub3JnPgorc2VsYXNlbGFoIDxz
ZWxhaEBvdXRsb29rLmNvbT4KK1NlcmdpeTgwIDxzaWwyMDA0QGdtYWlsLmNvbT4KK3Nlcmd6dWIg
PHNlcmd6dWJAZ21haWwuY29tPgorU3RlZmFuIFNjaHdldGVyIDxzdGVmYW5Ac2Nod2V0ZXIuaXQ+
CitTdGVmZmVuIEtpZcOfIDxTdGVmZmVuLktpZXNzQGlwdnMudW5pLXN0dXR0Z2FydC5kZT4KK1N0
ZXZlbiBIYWhuIDxoYWhuc2VAb3JubC5nb3Y+CitTdHVhcnQgRWljaGVydCA8c3R1YXJ0QGZpdmVt
aWNyby5jb20+CitTdXBlck1hbml0dSA8c3VwZXJtYW5pdHVAZ21haWwuY29tPgorVGVjaHdvbGYg
PGRyaW5nQGczM2t3b3JsZC5uZXQ+CitUZW5naXogU2hhcmFmaWV2IDxidG9sZmErZ2l0aHViQGdt
YWlsLmNvbT4KK1RvbWFzeiBNYWNpZWpld3NraSA8dG1hY2llamV3c2tAZ21haWwuY29tPgorVmlj
ZW50ZSBPbGl2ZXJ0IFJpZXJhIDxWaW5jZW50LlJpZXJhQGltZ3RlYy5jb20+Cit4aWFveXVyMzQ3
IDx4aWFveXVyMzQ3QGdtYWlsLmNvbT4KK3ljcWl1IDw0MjkxNDg4NDhAcXEuY29tPgoreWlxaWp1
IDxmcmVkX2p1QHNlbGluYy5jb20+CitZdSBYaWFvbGVpIDxkcmVpZmFjaHN0ZWluQGdtYWlsLmNv
bT4KKworR29vZ2xlIEluYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MWQwOGIwYWIzNGJkMjUyZGJiMTNlZjUxY2Qz
YWExYWQ4NmE5NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL0NNYWtlTGlzdHMudHh0CkBAIC0w
LDAgKzEsMTg2IEBACisjIHZpbTogZXQgdHM9NCBzdHM9NCBzdz00IHR3PTAKKworIyA9PT09IERl
ZmluZSBjbWFrZSBidWlsZCBwb2xpY2llcyB0aGF0IGFmZmVjdCBjb21waWxhdGlvbiBhbmQgbGlu
a2FnZSBkZWZhdWx0IGJlaGF2aW9ycworIworIyBTZXQgdGhlIEpTT05DUFBfTkVXRVNUX1ZBTElE
QVRFRF9QT0xJQ0lFU19WRVJTSU9OIHN0cmluZyB0byB0aGUgbmV3ZXN0IGNtYWtlIHZlcnNpb24K
KyMgcG9saWNpZXMgdGhhdCBwcm92aWRlIHN1Y2Nlc3NmdWwgYnVpbGRzLiBCeSBzZXR0aW5nIEpT
T05DUFBfTkVXRVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJTSU9OCisjIHRvIGEgdmFsdWUgZ3Jl
YXRlciB0aGFuIHRoZSBvbGRlc3QgcG9saWNpZXMsIGFsbCBwb2xpY2llcyBiZXR3ZWVuCisjIEpT
T05DUFBfT0xERVNUX1ZBTElEQVRFRF9QT0xJQ0lFU19WRVJTSU9OIGFuZCBDTUFLRV9WRVJTSU9O
ICh1c2VkIGZvciB0aGlzIGJ1aWxkKQorIyBhcmUgc2V0IHRvIHRoZWlyIE5FVyBiZWhhaXZvciwg
dGhlcmVieSBzdXBwcmVzc2luZyBwb2xpY3kgd2FybmluZ3MgcmVsYXRlZCB0byBwb2xpY2llcwor
IyBiZXR3ZWVuIHRoZSBKU09OQ1BQX09MREVTVF9WQUxJREFURURfUE9MSUNJRVNfVkVSU0lPTiBh
bmQgQ01BS0VfVkVSU0lPTi4KKyMKKyMgQ01ha2UgdmVyc2lvbnMgZ3JlYXRlciB0aGFuIHRoZSBK
U09OQ1BQX05FV0VTVF9WQUxJREFURURfUE9MSUNJRVNfVkVSU0lPTiBwb2xpY2llcyB3aWxsCisj
IGNvbnRpbnVlIHRvIGdlbmVyYXRlIHBvbGljeSB3YXJuaW5ncyAiQ01ha2UgV2FybmluZyAoZGV2
KS4uLlBvbGljeSBDTVAwWFhYIGlzIG5vdCBzZXQ6IgorIworc2V0KEpTT05DUFBfT0xERVNUX1ZB
TElEQVRFRF9QT0xJQ0lFU19WRVJTSU9OICIzLjguMCIpCitzZXQoSlNPTkNQUF9ORVdFU1RfVkFM
SURBVEVEX1BPTElDSUVTX1ZFUlNJT04gIjMuMTMuMiIpCitjbWFrZV9taW5pbXVtX3JlcXVpcmVk
KFZFUlNJT04gJHtKU09OQ1BQX09MREVTVF9WQUxJREFURURfUE9MSUNJRVNfVkVSU0lPTn0pCitp
ZigiJHtDTUFLRV9WRVJTSU9OfSIgVkVSU0lPTl9MRVNTICIke0pTT05DUFBfTkVXRVNUX1ZBTElE
QVRFRF9QT0xJQ0lFU19WRVJTSU9OfSIpCisgICAgI1NldCBhbmQgdXNlIHRoZSBuZXdlc3QgYXZh
aWxhYmxlIGNtYWtlIHBvbGljaWVzIHRoYXQgYXJlIHZhbGlkYXRlZCB0byB3b3JrCisgICAgc2V0
KEpTT05DUFBfQ01BS0VfUE9MSUNZX1ZFUlNJT04gIiR7Q01BS0VfVkVSU0lPTn0iKQorZWxzZSgp
CisgICAgc2V0KEpTT05DUFBfQ01BS0VfUE9MSUNZX1ZFUlNJT04gIiR7SlNPTkNQUF9ORVdFU1Rf
VkFMSURBVEVEX1BPTElDSUVTX1ZFUlNJT059IikKK2VuZGlmKCkKK2NtYWtlX3BvbGljeShWRVJT
SU9OICR7SlNPTkNQUF9DTUFLRV9QT0xJQ1lfVkVSU0lPTn0pCisjCisjIE5vdyBlbnVtZXJhdGUg
c3BlY2lmaWMgcG9saWNpZXMgbmV3ZXIgdGhhbiBKU09OQ1BQX05FV0VTVF9WQUxJREFURURfUE9M
SUNJRVNfVkVSU0lPTgorIyB0aGF0IG1heSBuZWVkIHRvIGJlIGluZGl2aWR1YWxseSBzZXQgdG8g
TkVXL09MRAorIworZm9yZWFjaChwbmV3ICIiKSAjIEN1cnJlbnRseSBFbXB0eQorICAgIGlmKFBP
TElDWSAke3BuZXd9KQorICAgICAgICBjbWFrZV9wb2xpY3koU0VUICR7cG5ld30gTkVXKQorICAg
IGVuZGlmKCkKK2VuZGZvcmVhY2goKQorZm9yZWFjaChwb2xkICIiKSAjIEN1cnJlbnRseSBFbXB0
eQorICAgIGlmKFBPTElDWSAke3BvbGR9KQorICAgICAgICBjbWFrZV9wb2xpY3koU0VUICR7cG9s
ZH0gT0xEKQorICAgIGVuZGlmKCkKK2VuZGZvcmVhY2goKQorCisjID09PT0gRGVmaW5lIGxhbmd1
YWdlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb25zIHJlcXVpcmluZyBhdCBsZWFzdCBjKysxMSBzdGFu
ZGFyZAoraWYoQ01BS0VfQ1hYX1NUQU5EQVJEIEVRVUFMICI5OCIgKQorICAgIG1lc3NhZ2UoRkFU
QUxfRVJST1IgIkNNQUtFX0NYWF9TVEFOREFSRDpTVFJJTkc9OTggaXMgbm90IHN1cHBvcnRlZC4i
KQorZW5kaWYoKQorCisjIyMjIworIyMgIFNldCB0aGUgZGVmYXVsdCB0YXJnZXQgcHJvcGVydGll
cworaWYoTk9UIENNQUtFX0NYWF9TVEFOREFSRCkKKyAgICBzZXQoQ01BS0VfQ1hYX1NUQU5EQVJE
IDExKSAjIFN1cHBvcnRlZCB2YWx1ZXMgYXJlIGBgMTFgYCwgYGAxNGBgLCBhbmQgYGAxN2BgLgor
ZW5kaWYoKQoraWYoTk9UIENNQUtFX0NYWF9TVEFOREFSRF9SRVFVSVJFRCkKKyAgICBzZXQoQ01B
S0VfQ1hYX1NUQU5EQVJEX1JFUVVJUkVEIE9OKQorZW5kaWYoKQoraWYoTk9UIENNQUtFX0NYWF9F
WFRFTlNJT05TKQorICAgIHNldChDTUFLRV9DWFhfRVhURU5TSU9OUyBPRkYpCitlbmRpZigpCisK
KyMgPT09PQorCisjIEVuc3VyZXMgdGhhdCBDTUFLRV9CVUlMRF9UWVBFIGhhcyBhIGRlZmF1bHQg
dmFsdWUKK2lmKE5PVCBERUZJTkVEIENNQUtFX0JVSUxEX1RZUEUpCisgICAgc2V0KENNQUtFX0JV
SUxEX1RZUEUgUmVsZWFzZSBDQUNIRSBTVFJJTkcKKyAgICAgICAgIkNob29zZSB0aGUgdHlwZSBv
ZiBidWlsZCwgb3B0aW9ucyBhcmU6IE5vbmUgRGVidWcgUmVsZWFzZSBSZWxXaXRoRGViSW5mbyBN
aW5TaXplUmVsIENvdmVyYWdlLiIpCitlbmRpZigpCisKK3Byb2plY3QoSlNPTkNQUAorICAgICAg
ICBWRVJTSU9OIDEuOS4wICMgPG1ham9yPlsuPG1pbm9yPlsuPHBhdGNoPlsuPHR3ZWFrPl1dXQor
ICAgICAgICBMQU5HVUFHRVMgQ1hYKQorCittZXNzYWdlKFNUQVRVUyAiSnNvbkNwcCBWZXJzaW9u
OiAke0pTT05DUFBfVkVSU0lPTl9NQUpPUn0uJHtKU09OQ1BQX1ZFUlNJT05fTUlOT1J9LiR7SlNP
TkNQUF9WRVJTSU9OX1BBVENIfSIpCitzZXQoIEpTT05DUFBfU09WRVJTSU9OIDIxICkKKworb3B0
aW9uKEpTT05DUFBfV0lUSF9URVNUUyAiQ29tcGlsZSBhbmQgKGZvciBqc29uY3BwX2NoZWNrKSBy
dW4gSnNvbkNwcCB0ZXN0IGV4ZWN1dGFibGVzIiBPTikKK29wdGlvbihKU09OQ1BQX1dJVEhfUE9T
VF9CVUlMRF9VTklUVEVTVCAiQXV0b21hdGljYWxseSBydW4gdW5pdC10ZXN0cyBhcyBhIHBvc3Qg
YnVpbGQgc3RlcCIgT04pCitvcHRpb24oSlNPTkNQUF9XSVRIX1dBUk5JTkdfQVNfRVJST1IgIkZv
cmNlIGNvbXBpbGF0aW9uIHRvIGZhaWwgaWYgYSB3YXJuaW5nIG9jY3VycyIgT0ZGKQorb3B0aW9u
KEpTT05DUFBfV0lUSF9TVFJJQ1RfSVNPICJJc3N1ZSBhbGwgdGhlIHdhcm5pbmdzIGRlbWFuZGVk
IGJ5IHN0cmljdCBJU08gQyBhbmQgSVNPIEMrKyIgT04pCitvcHRpb24oSlNPTkNQUF9XSVRIX1BL
R0NPTkZJR19TVVBQT1JUICJHZW5lcmF0ZSBhbmQgaW5zdGFsbCAucGMgZmlsZXMiIE9OKQorb3B0
aW9uKEpTT05DUFBfV0lUSF9DTUFLRV9QQUNLQUdFICJHZW5lcmF0ZSBhbmQgaW5zdGFsbCBjbWFr
ZSBwYWNrYWdlIGZpbGVzIiBPTikKK29wdGlvbihCVUlMRF9TSEFSRURfTElCUyAiQnVpbGQganNv
bmNwcF9saWIgYXMgYSBzaGFyZWQgbGlicmFyeS4iIE9GRikKKworIyBFbmFibGUgcnVudGltZSBz
ZWFyY2ggcGF0aCBzdXBwb3J0IGZvciBkeW5hbWljIGxpYnJhcmllcyBvbiBPU1gKK2lmKEFQUExF
KQorICAgIHNldChDTUFLRV9NQUNPU1hfUlBBVEggMSkKK2VuZGlmKCkKKworIyBBZGhlcmUgdG8g
R05VIGZpbGVzeXN0ZW0gbGF5b3V0IGNvbnZlbnRpb25zCitpbmNsdWRlKEdOVUluc3RhbGxEaXJz
KQorCitzZXQoREVCVUdfTElCTkFNRV9TVUZGSVggIiIgQ0FDSEUgU1RSSU5HICJPcHRpb25hbCBz
dWZmaXggdG8gYXBwZW5kIHRvIHRoZSBsaWJyYXJ5IG5hbWUgZm9yIGEgZGVidWcgYnVpbGQiKQor
CitzZXQoSlNPTkNQUF9VU0VfU0VDVVJFX01FTU9SWSAiMCIgQ0FDSEUgU1RSSU5HICItRC4uLj0x
IHRvIHVzZSBtZW1vcnktd2lwaW5nIGFsbG9jYXRvciBmb3IgU1RMIiApCisKKyMgRmlsZSB2ZXJz
aW9uLmggaXMgb25seSByZWdlbmVyYXRlZCBvbiBDTWFrZSBjb25maWd1cmUgc3RlcAorY29uZmln
dXJlX2ZpbGUoICIke1BST0pFQ1RfU09VUkNFX0RJUn0vc3JjL2xpYl9qc29uL3ZlcnNpb24uaC5p
biIKKyAgICAgICAgICAgICAgICAiJHtQUk9KRUNUX0JJTkFSWV9ESVJ9L2luY2x1ZGUvanNvbi92
ZXJzaW9uLmgiCisgICAgICAgICAgICAgICAgTkVXTElORV9TVFlMRSBVTklYICkKK2NvbmZpZ3Vy
ZV9maWxlKCAiJHtQUk9KRUNUX1NPVVJDRV9ESVJ9L3ZlcnNpb24uaW4iCisgICAgICAgICAgICAg
ICAgIiR7UFJPSkVDVF9CSU5BUllfRElSfS92ZXJzaW9uIgorICAgICAgICAgICAgICAgIE5FV0xJ
TkVfU1RZTEUgVU5JWCApCisKK21hY3JvKFVzZUNvbXBpbGF0aW9uV2FybmluZ0FzRXJyb3IpCisg
ICAgaWYoTVNWQykKKyAgICAgICAgIyBPbmx5IGVuYWJsZWQgaW4gZGVidWcgYmVjYXVzZSBzb21l
IG9sZCB2ZXJzaW9ucyBvZiBWUyBTVEwgZ2VuZXJhdGUKKyAgICAgICAgIyB3YXJuaW5ncyB3aGVu
IGNvbXBpbGVkIGluIHJlbGVhc2UgY29uZmlndXJhdGlvbi4KKyAgICAgICAgYWRkX2NvbXBpbGVf
b3B0aW9ucygkPCQ8Q09ORklHOkRlYnVnPjovV1g+KQorICAgIGVsc2VpZihDTUFLRV9DWFhfQ09N
UElMRVJfSUQgU1RSRVFVQUwgIkdOVSIpCisgICAgICAgIGFkZF9jb21waWxlX29wdGlvbnMoLVdl
cnJvcikKKyAgICAgICAgaWYoSlNPTkNQUF9XSVRIX1NUUklDVF9JU08pCisgICAgICAgICAgICBh
ZGRfY29tcGlsZV9vcHRpb25zKC1wZWRhbnRpYy1lcnJvcnMpCisgICAgICAgIGVuZGlmKCkKKyAg
ICBlbmRpZigpCitlbmRtYWNybygpCisKKyMgSW5jbHVkZSBvdXIgY29uZmlndXJhdGlvbiBoZWFk
ZXIKK2luY2x1ZGVfZGlyZWN0b3JpZXMoICR7anNvbmNwcF9TT1VSQ0VfRElSfS9pbmNsdWRlICkK
KworaWYoTVNWQykKKyAgICAjIE9ubHkgZW5hYmxlZCBpbiBkZWJ1ZyBiZWNhdXNlIHNvbWUgb2xk
IHZlcnNpb25zIG9mIFZTIFNUTCBnZW5lcmF0ZQorICAgICMgdW5yZWFjaGFibGUgY29kZSB3YXJu
aW5nIHdoZW4gY29tcGlsZWQgaW4gcmVsZWFzZSBjb25maWd1cmF0aW9uLgorICAgIGFkZF9jb21w
aWxlX29wdGlvbnMoJDwkPENPTkZJRzpEZWJ1Zz46L1c0PikKK2VuZGlmKCkKKworaWYoQ01BS0Vf
Q1hYX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIikKKyAgICAjIHVzaW5nIHJlZ3VsYXIgQ2xh
bmcgb3IgQXBwbGVDbGFuZworICAgIGFkZF9jb21waWxlX29wdGlvbnMoLVdhbGwgLVdjb252ZXJz
aW9uIC1Xc2hhZG93IC1XZXJyb3I9Y29udmVyc2lvbiAtV2Vycm9yPXNpZ24tY29tcGFyZSkKK2Vs
c2VpZihDTUFLRV9DWFhfQ09NUElMRVJfSUQgU1RSRVFVQUwgIkdOVSIpCisgICAgIyB1c2luZyBH
Q0MKKyAgICBhZGRfY29tcGlsZV9vcHRpb25zKC1XYWxsIC1XY29udmVyc2lvbiAtV3NoYWRvdyAt
V2V4dHJhKQorICAgICMgbm90IHlldCByZWFkeSBmb3IgLVdzaWduLWNvbnZlcnNpb24KKworICAg
IGlmKEpTT05DUFBfV0lUSF9TVFJJQ1RfSVNPKQorICAgICAgICBhZGRfY29tcGlsZV9vcHRpb25z
KC1wZWRhbnRpYykKKyAgICBlbmRpZigpCisgICAgaWYoSlNPTkNQUF9XSVRIX1dBUk5JTkdfQVNf
RVJST1IpCisgICAgICAgIGFkZF9jb21waWxlX29wdGlvbnMoLVdlcnJvcj1jb252ZXJzaW9uKQor
ICAgIGVuZGlmKCkKK2Vsc2VpZihDTUFLRV9DWFhfQ09NUElMRVJfSUQgU1RSRVFVQUwgIkludGVs
IikKKyAgICAjwqB1c2luZyBJbnRlbCBjb21waWxlcgorICAgIGFkZF9jb21waWxlX29wdGlvbnMo
LVdhbGwgLVdjb252ZXJzaW9uIC1Xc2hhZG93IC1XZXh0cmEgLVdlcnJvcj1jb252ZXJzaW9uKQor
CisgICAgaWYoSlNPTkNQUF9XSVRIX1NUUklDVF9JU08gQU5EIE5PVCBKU09OQ1BQX1dJVEhfV0FS
TklOR19BU19FUlJPUikKKyAgICAgICAgYWRkX2NvbXBpbGVfb3B0aW9ucygtcGVkYW50aWMpCisg
ICAgZW5kaWYoKQorZW5kaWYoKQorCitmaW5kX3Byb2dyYW0oQ0NBQ0hFX0ZPVU5EIGNjYWNoZSkK
K2lmKENDQUNIRV9GT1VORCkKKyAgICBzZXRfcHJvcGVydHkoR0xPQkFMIFBST1BFUlRZIFJVTEVf
TEFVTkNIX0NPTVBJTEUgY2NhY2hlKQorICAgIHNldF9wcm9wZXJ0eShHTE9CQUwgUFJPUEVSVFkg
UlVMRV9MQVVOQ0hfTElOSyBjY2FjaGUpCitlbmRpZihDQ0FDSEVfRk9VTkQpCisKK2lmKEpTT05D
UFBfV0lUSF9XQVJOSU5HX0FTX0VSUk9SKQorICAgIFVzZUNvbXBpbGF0aW9uV2FybmluZ0FzRXJy
b3IoKQorZW5kaWYoKQorCitpZihKU09OQ1BQX1dJVEhfUEtHQ09ORklHX1NVUFBPUlQpCisgICAg
Y29uZmlndXJlX2ZpbGUoCisgICAgICAgICJwa2ctY29uZmlnL2pzb25jcHAucGMuaW4iCisgICAg
ICAgICJwa2ctY29uZmlnL2pzb25jcHAucGMiCisgICAgICAgIEBPTkxZKQorICAgIGluc3RhbGwo
RklMRVMgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9wa2ctY29uZmlnL2pzb25jcHAucGMi
CisgICAgICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWci
KQorZW5kaWYoKQorCitpZihKU09OQ1BQX1dJVEhfQ01BS0VfUEFDS0FHRSkKKyAgICAgICAgaW5j
bHVkZSAoQ01ha2VQYWNrYWdlQ29uZmlnSGVscGVycykKKyAgICAgICAgaW5zdGFsbChFWFBPUlQg
anNvbmNwcAorICAgICAgICAgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9MSUJE
SVJ9L2NtYWtlL2pzb25jcHAKKyAgICAgICAgICAgICAgICBGSUxFICAgICAgICBqc29uY3BwQ29u
ZmlnLmNtYWtlKQorICAgICAgICB3cml0ZV9iYXNpY19wYWNrYWdlX3ZlcnNpb25fZmlsZSAoIiR7
Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9qc29uY3BwQ29uZmlnVmVyc2lvbi5jbWFrZSIKKyAg
ICAgICAgICAgICAgICBWRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OfQorICAgICAgICAgICAgICAg
IENPTVBBVElCSUxJVFkgU2FtZU1ham9yVmVyc2lvbikKKyAgICAgICAgaW5zdGFsbChGSUxFUyAk
e0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vanNvbmNwcENvbmZpZ1ZlcnNpb24uY21ha2UKKyAg
ICAgICAgICAgICAgICBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfTElCRElSfS9jbWFrZS9q
c29uY3BwKQorZW5kaWYoKQorCitpZihKU09OQ1BQX1dJVEhfVEVTVFMpCisgIGVuYWJsZV90ZXN0
aW5nKCkKKyAgaW5jbHVkZShDVGVzdCkKK2VuZGlmKCkKKworIyBCdWlsZCB0aGUgZGlmZmVyZW50
IGFwcGxpY2F0aW9ucworYWRkX3N1YmRpcmVjdG9yeSggc3JjICkKKworI2luc3RhbGwgdGhlIGlu
Y2x1ZGVzCithZGRfc3ViZGlyZWN0b3J5KCBpbmNsdWRlICkKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9D
T05UUklCVVRJTkcubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL0NPTlRSSUJVVElORy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2U0YWI3
YWZkZmE3YjJlOWQzMmU5ZjhlMmY1MTE2MTJjYjhjNzI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9DT05UUklCVVRJTkcubWQKQEAgLTAsMCArMSwxNDUgQEAKKyMgQ29udHJpYnV0aW5nIHRvIEpz
b25DcHAKKworIyMgQnVpbGRpbmcKKworQm90aCBDTWFrZSBhbmQgTWVzb24gdG9vbHMgYXJlIGNh
cGFibGUgb2YgZ2VuZXJhdGluZyBhIHZhcmlldHkgb2YgYnVpbGQgZW52aXJvbm1lbnRzIGZvciB5
b3UgcHJlZmVycmVkIGRldmVsb3BtZW50IGVudmlyb25tZW50LgorVXNpbmcgY21ha2Ugb3IgbWVz
b24geW91IGNhbiBnZW5lcmF0ZSBhbiBYQ29kZSwgVmlzdWFsIFN0dWRpbywgVW5peCBNYWtlZmls
ZSwgTmluamEsIG9yIG90aGVyIGVudmlyb25tZW50IHRoYXQgZml0cyB5b3VyIG5lZWRzLgorCitB
biBleGFtcGxlIG9mIGEgY29tbW9uIE1lc29uL05pbmphIGVudmlyb25tZW50IGlzIGRlc2NyaWJl
ZCBuZXh0LgorCisjIyBCdWlsZGluZyBhbmQgdGVzdGluZyB3aXRoIE1lc29uL05pbmphCitUaGFu
a3MgdG8gRGF2aWQgU2VpZmVydCAoQFNvYXBHZW50b28pLCB3ZSAodGhlIG1haW50YWluZXJzKSBu
b3cgdXNlCitbbWVzb25dKGh0dHA6Ly9tZXNvbmJ1aWxkLmNvbS8pIGFuZCBbbmluamFdKGh0dHBz
Oi8vbmluamEtYnVpbGQub3JnLykgdG8gYnVpbGQKK2ZvciBkZWJ1Z2dpbmcsIGFzIHdlbGwgYXMg
Zm9yIGNvbnRpbnVvdXMgaW50ZWdyYXRpb24gKHNlZQorW2AuL3RyYXZpc19zY3JpcHRzL21lc29u
X2J1aWxkZXIuc2hgXSguL3RyYXZpc19zY3JpcHRzL21lc29uX2J1aWxkZXIuc2gpICkuIE90aGVy
IHN5c3RlbXMgbWF5IHdvcmssIGJ1dCBtaW5vcgordGhpbmdzIGxpa2UgdmVyc2lvbiBzdHJpbmdz
IG1pZ2h0IGJyZWFrLgorCitGaXJzdCwgaW5zdGFsbCBib3RoIG1lc29uICh3aGljaCByZXF1aXJl
cyBQeXRob24zKSBhbmQgbmluamEuCitJZiB5b3Ugd2lzaCB0byBpbnN0YWxsIHRvIGEgZGlyZWN0
b3J5IG90aGVyIHRoYW4gL3Vzci9sb2NhbCwgc2V0IGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGNh
bGxlZCBERVNURElSIHdpdGggdGhlIGRlc2lyZWQgcGF0aDoKKyAgICBERVNURElSPS9wYXRoL3Rv
L2luc3RhbGwvZGlyCisKK1RoZW4sCisKKyAgICBjZCBqc29uY3BwLworICAgIEJVSUxEX1RZUEU9
ZGVidWcKKyAgICAjQlVJTERfVFlQRT1yZWxlYXNlCisgICAgTElCX1RZUEU9c2hhcmVkCisgICAg
I0xJQl9UWVBFPXN0YXRpYworICAgIG1lc29uIC0tYnVpbGR0eXBlICR7QlVJTERfVFlQRX0gLS1k
ZWZhdWx0LWxpYnJhcnkgJHtMSUJfVFlQRX0gLiBidWlsZC0ke0xJQl9UWVBFfQorICAgICNuaW5q
YSAtdiAtQyBidWlsZC0ke0xJQl9UWVBFfSB0ZXN0ICMgVGhpcyBzdG9wcGVkIHdvcmtpbmcgb24g
bXkgTWFjLgorICAgIG5pbmphIC12IC1DIGJ1aWxkLSR7TElCX1RZUEV9CisgICAgY2QgYnVpbGQt
JHtMSUJfVFlQRX0KKyAgICBtZXNvbiB0ZXN0IC0tbm8tcmVidWlsZCAtLXByaW50LWVycm9ybG9n
cworICAgIHN1ZG8gbmluamEgaW5zdGFsbAorCisjIyBCdWlsZGluZyBhbmQgdGVzdGluZyB3aXRo
IG90aGVyIGJ1aWxkIHN5c3RlbXMKK1NlZSBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2Ut
cGFyc2Vycy9qc29uY3BwL3dpa2kvQnVpbGRpbmcKKworIyMgUnVubmluZyB0aGUgdGVzdHMgbWFu
dWFsbHkKKworWW91IG5lZWQgdG8gcnVuIHRlc3RzIG1hbnVhbGx5IG9ubHkgaWYgeW91IGFyZSB0
cm91Ymxlc2hvb3RpbmcgYW4gaXNzdWUuCisKK0luIHRoZSBpbnN0cnVjdGlvbnMgYmVsb3csIHJl
cGxhY2UgYHBhdGgvdG8vanNvbnRlc3RgIHdpdGggdGhlIHBhdGggb2YgdGhlCitganNvbnRlc3Rg
IGV4ZWN1dGFibGUgdGhhdCB3YXMgY29tcGlsZWQgb24geW91ciBwbGF0Zm9ybS4KKworICAgIGNk
IHRlc3QKKyAgICAjIFRoaXMgd2lsbCBydW4gdGhlIFJlYWRlci9Xcml0ZXIgdGVzdHMKKyAgICBw
eXRob24gcnVuanNvbnRlc3RzLnB5IHBhdGgvdG8vanNvbnRlc3QKKworICAgICMgVGhpcyB3aWxs
IHJ1biB0aGUgUmVhZGVyL1dyaXRlciB0ZXN0cywgdXNpbmcgSlNPTkNoZWNrZXIgdGVzdCBzdWl0
ZQorICAgICMgKGh0dHA6Ly93d3cuanNvbi5vcmcvSlNPTl9jaGVja2VyLykuCisgICAgIyBOb3Rl
czogbm90IGFsbCB0ZXN0cyBwYXNzOiBKc29uQ3BwIGlzIHRvbyBsZW5pZW50IChmb3IgZXhhbXBs
ZSwKKyAgICAjIGl0IGFsbG93cyBhbiBpbnRlZ2VyIHRvIHN0YXJ0IHdpdGggJzAnKS4gVGhlIGdv
YWwgaXMgdG8gaW1wcm92ZQorICAgICMgc3RyaWN0IG1vZGUgcGFyc2luZyB0byBnZXQgYWxsIHRl
c3RzIHRvIHBhc3MuCisgICAgcHl0aG9uIHJ1bmpzb250ZXN0cy5weSAtLXdpdGgtanNvbi1jaGVj
a2VyIHBhdGgvdG8vanNvbnRlc3QKKworICAgICMgVGhpcyB3aWxsIHJ1biB0aGUgdW5pdCB0ZXN0
cyAobW9zdGx5IFZhbHVlKQorICAgIHB5dGhvbiBydW51bml0dGVzdHMucHkgcGF0aC90by90ZXN0
X2xpYl9qc29uCisKKyAgICAjIFlvdSBjYW4gcnVuIHRoZSB0ZXN0cyB1c2luZyB2YWxncmluZDoK
KyAgICBweXRob24gcnVudW5pdHRlc3RzLnB5IC0tdmFsZ3JpbmQgcGF0aC90by90ZXN0X2xpYl9q
c29uCisKKyMjIEJ1aWxkaW5nIHRoZSBkb2N1bWVudGF0aW9uCisKK1J1biB0aGUgUHl0aG9uIHNj
cmlwdCBgZG94eWJ1aWxkLnB5YCBmcm9tIHRoZSB0b3AgZGlyZWN0b3J5OgorCisgICAgcHl0aG9u
IGRveHlidWlsZC5weSAtLWRveHlnZW49JCh3aGljaCBkb3h5Z2VuKSAtLW9wZW4gLS13aXRoLWRv
dAorCitTZWUgYGRveHlidWlsZC5weSAtLWhlbHBgIGZvciBvcHRpb25zLgorCisjIyBBZGRpbmcg
YSByZWFkZXIvd3JpdGVyIHRlc3QKKworVG8gYWRkIGEgdGVzdCwgeW91IG5lZWQgdG8gY3JlYXRl
IHR3byBmaWxlcyBpbiB0ZXN0L2RhdGE6CisKKyogYSBgVEVTVE5BTUUuanNvbmAgZmlsZSwgdGhh
dCBjb250YWlucyB0aGUgaW5wdXQgZG9jdW1lbnQgaW4gSlNPTiBmb3JtYXQuCisqIGEgYFRFU1RO
QU1FLmV4cGVjdGVkYCBmaWxlLCB0aGF0IGNvbnRhaW5zIGEgZmxhdGVuZWQgcmVwcmVzZW50YXRp
b24gb2YgdGhlCisgIGlucHV0IGRvY3VtZW50LgorCitUaGUgYFRFU1ROQU1FLmV4cGVjdGVkYCBm
aWxlIGZvcm1hdCBpcyBhcyBmb2xsb3dzOgorCisqIEVhY2ggbGluZSByZXByZXNlbnRzIGEgSlNP
TiBlbGVtZW50IG9mIHRoZSBlbGVtZW50IHRyZWUgcmVwcmVzZW50ZWQgYnkgdGhlCisgIGlucHV0
IGRvY3VtZW50LgorKiBFYWNoIGxpbmUgaGFzIHR3byBwYXJ0czogdGhlIHBhdGggdG8gYWNjZXNz
IHRoZSBlbGVtZW50IHNlcGFyYXRlZCBmcm9tIHRoZQorICBlbGVtZW50IHZhbHVlIGJ5IGA9YC4g
QXJyYXkgYW5kIG9iamVjdCB2YWx1ZXMgYXJlIGFsd2F5cyBlbXB0eSAoaS5lLgorICByZXByZXNl
bnRlZCBieSBlaXRoZXIgYFtdYCBvciBge31gKS4KKyogRWxlbWVudCBwYXRoIGAuYCByZXByZXNl
bnRzIHRoZSByb290IGVsZW1lbnQsIGFuZCBpcyB1c2VkIHRvIHNlcGFyYXRlIG9iamVjdAorICBt
ZW1iZXJzLiBgW05dYCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHZhbHVlIG9mIGFuIGFycmF5IGVs
ZW1lbnQgYXQgaW5kZXggYE5gLgorCitTZWUgdGhlIGV4YW1wbGVzIGB0ZXN0X2NvbXBsZXhfMDEu
anNvbmAgYW5kIGB0ZXN0X2NvbXBsZXhfMDEuZXhwZWN0ZWRgIHRvIGJldHRlciB1bmRlcnN0YW5k
IGVsZW1lbnQgcGF0aHMuCisKKyMjIFVuZGVyc3RhbmRpbmcgcmVhZGVyL3dyaXRlciB0ZXN0IG91
dHB1dAorCitXaGVuIGEgdGVzdCBpcyBydW4sIG91dHB1dCBmaWxlcyBhcmUgZ2VuZXJhdGVkIGJl
c2lkZSB0aGUgaW5wdXQgdGVzdCBmaWxlcy4gQmVsb3cgaXMgYSBzaG9ydCBkZXNjcmlwdGlvbiBv
ZiB0aGUgY29udGVudCBvZiBlYWNoIGZpbGU6CisKKyogYHRlc3RfY29tcGxleF8wMS5qc29uYDog
aW5wdXQgSlNPTiBkb2N1bWVudC4KKyogYHRlc3RfY29tcGxleF8wMS5leHBlY3RlZGA6IGZsYXR0
ZW5lZCBKU09OIGVsZW1lbnQgdHJlZSB1c2VkIHRvIGNoZWNrIGlmCisgIHBhcnNpbmcgd2FzIGNv
cnJlY3RlZC4KKyogYHRlc3RfY29tcGxleF8wMS5hY3R1YWxgOiBmbGF0dGVuZWQgSlNPTiBlbGVt
ZW50IHRyZWUgcHJvZHVjZWQgYnkgYGpzb250ZXN0YAorICBmcm9tIHJlYWRpbmcgYHRlc3RfY29t
cGxleF8wMS5qc29uYC4KKyogYHRlc3RfY29tcGxleF8wMS5yZXdyaXRlYDogSlNPTiBkb2N1bWVu
dCB3cml0dGVuIGJ5IGBqc29udGVzdGAgdXNpbmcgdGhlCisgIGBKc29uOjpWYWx1ZWAgcGFyc2Vk
IGZyb20gYHRlc3RfY29tcGxleF8wMS5qc29uYCBhbmQgc2VyaWFsaXplZCB1c2luZworICBgSnNv
bjo6U3R5bGVkV3JpdHRlcmAuCisqIGB0ZXN0X2NvbXBsZXhfMDEuYWN0dWFsLXJld3JpdGVgOiBm
bGF0dGVuZWQgSlNPTiBlbGVtZW50IHRyZWUgcHJvZHVjZWQgYnkKKyAgYGpzb250ZXN0YCBmcm9t
IHJlYWRpbmcgYHRlc3RfY29tcGxleF8wMS5yZXdyaXRlYC4KKyogYHRlc3RfY29tcGxleF8wMS5w
cm9jZXNzLW91dHB1dGA6IGBqc29udGVzdGAgb3V0cHV0LCB0eXBpY2FsbHkgdXNlZnVsIGZvcgor
ICB1bmRlcnN0YW5kaW5nIHBhcnNpbmcgZXJyb3JzLgorCisjIyBWZXJzaW9uaW5nIHJ1bGVzCisK
K0NvbnN1bWVycyBvZiB0aGlzIGxpYnJhcnkgcmVxdWlyZSBhIHN0cmljdCBhcHByb2FjaCB0byBp
bmNyZW1lbnRpbmcgdmVyc2lvbmluZyBvZiB0aGUgSnNvbkNwcCBsaWJyYXJ5LiBDdXJyZW50bHks
IHdlIGZvbGxvdyB0aGUgYmVsb3cgc2V0IG9mIHJ1bGVzOgorCisqIEFueSBuZXcgcHVibGljIHN5
bWJvbHMgcmVxdWlyZSBhIG1pbm9yIHZlcnNpb24gYnVtcC4KKyogQW55IGFsdGVyYXRpb24gb3Ig
cmVtb3ZhbCBvZiBwdWJsaWMgc3ltYm9scyByZXF1aXJlcyBhIG1ham9yIHZlcnNpb24gYnVtcCwg
aW5jbHVkaW5nIGNoYW5naW5nIHRoZSBzaXplIG9mIGEgY2xhc3MuIFRoaXMgaXMgbmVjZXNzYXJ5
IGZvcgorY29uc3VtZXJzIHRvIGRvIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHByb3Blcmx5LgorCisj
IyBQcmVwYXJpbmcgY29kZSBmb3Igc3VibWlzc2lvbgorCitHZW5lcmFsbHksIEpzb25DcHAncyBz
dHlsZSBndWlkZSBoYXMgYmVlbiBwcmV0dHkgcmVsYXhlZCwgd2l0aCB0aGUgZm9sbG93aW5nIGNv
bW1vbiB0aGVtZXM6CisKKyogVmFyaWFibGVzIGFuZCBmdW5jdGlvbiBuYW1lcyB1c2UgbG93ZXIg
Y2FtZWwgY2FzZSAoRS5nLiBwYXJzZVZhbHVlIG9yIGNvbGxlY3RDb21tZW50cykuCisqIENsYXNz
IHVzZSBjYW1lbCBjYXNlIChlLmcuIE91clJlYWRlcikKKyogTWVtYmVyIHZhcmlhYmxlcyBoYXZl
IGEgdHJhaWxpbmcgdW5kZXJzY29yZQorKiBQcmVmZXIgYG51bGxwdHJgIG92ZXIgYE5VTExgLgor
KiBQYXNzaW5nIGJ5IG5vbi1jb25zdCByZWZlcmVuY2UgaXMgYWxsb3dlZC4KKyogU2luZ2xlIHN0
YXRlbWVudCBpZiBibG9ja3MgbWF5IG9taXQgYnJhY2tldHMuCisqIEdlbmVyYWxseSBwcmVmZXIg
bGVzcyBzcGFjZSBvdmVyIG1vcmUgc3BhY2UuCisKK0ZvciBhbiBleGFtcGxlOgorCitgYGBjKysK
K2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKSB7CisgIFZhbHVlIGRlY29k
ZWQ7CisgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuLCBkZWNvZGVkKSkKKyAgICByZXR1cm4gZmFs
c2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7
Cit9CitgYGAKKworQmVmb3JlIHN1Ym1pdHRpbmcgeW91ciBjb2RlLCBlbnN1cmUgdGhhdCB5b3Ug
bWVldCB0aGUgdmVyc2lvbmluZyByZXF1aXJlbWVudHMgYWJvdmUsIGZvbGxvdyB0aGUgc3R5bGUg
Z3VpZGUgb2YgdGhlIGZpbGUgeW91IGFyZSBtb2RpZnlpbmcgKG9yIHRoZSBhYm92ZSBydWxlcyBm
b3IgbmV3IGZpbGVzKSwgYW5kIHJ1biBjbGFuZyBmb3JtYXQuIE1lc29uIGV4cG9zZXMgY2xhbmcg
Zm9ybWF0IHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kOgorCitgYGAKK25pbmphIC12IC1DIGJ1
aWxkLSR7TElCX1RZUEV9LyBjbGFuZy1mb3JtYXQKK2BgYApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9MSUNF
TlNFIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9MSUNFTlNFCmluZGV4IGNhMmJmZTFhMDNlZTVlMzkxZjUxYjFiYzRkZTQ3MTE0
NDIxZWVjOTguLjg5MjgwYTZjNDhhOWRiNTE1NTk3MDBkMzRjODQ5YjQ5ZTFjNDlhZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvTElDRU5TRQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL0xJQ0VOU0UKQEAgLTIsMTMgKzIsMTMgQEAg
VGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNjb21wYW55aW5n
IGRvY3VtZW50YXRpb24sCiB0ZXN0cyBhbmQgZGVtb25zdHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFy
ZSBsaWNlbnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCiBjb25kaXRpb25zLi4uCiAKLVRoZSBhdXRo
b3IgKEJhcHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRseSBkaXNjbGFpbXMgY29weXJpZ2h0IGlu
IGFsbCAKK0JhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycyBleHBsaWNp
dGx5IGRpc2NsYWltIGNvcHlyaWdodCBpbiBhbGwgCiBqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29n
bml6ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKIHRoaXMgc29m
dHdhcmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGljIERvbWFpbi4KIAogSW4ganVyaXNkaWN0
aW9ucyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4g
R2VybWFueSBhcyBvZgotMjAxMCksIHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3
LTIwMTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQgaXMKLXJlbGVhc2VkIHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdykuCisyMDEwKSwgdGhpcyBzb2Z0d2Fy
ZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kCitU
aGUgSnNvbkNwcCBBdXRob3JzLCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4KIAogSW4ganVyaXNkaWN0aW9ucyB3aGljaCByZWNv
Z25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAKIHNvZnR3YXJl
IG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9tYWluLCAyKSB1
bmRlciB0aGUgCkBAIC0yMyw3ICsyMyw3IEBAIGRlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0
ZXJtcyBhdDoKIFRoZSBmdWxsIHRleHQgb2YgdGhlIE1JVCBMaWNlbnNlIGZvbGxvd3M6CiAKID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVy
CitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29u
Q3BwIEF1dGhvcnMKIAogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24KIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL05FV1MudHh0IGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9ORVdTLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODMxNmZmNmVmZTVkMWE4
OTI1ZDI1MWI2YTExMTFjY2EyMTU4ODg3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL05FV1MudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQzICsw
LDAgQEAKLU5ldyBpbiBTVk4KLS0tLS0tLS0tLS0KLQotICogIFVwZGF0ZWQgdGhlIHR5cGUgc3lz
dGVtJ3MgYmVoYXZpb3IsIGluIG9yZGVyIHRvIGJldHRlciBzdXBwb3J0IGJhY2t3YXJkcwotICAg
IGNvbXBhdGliaWxpdHkgd2l0aCBjb2RlIHRoYXQgd2FzIHdyaXR0ZW4gYmVmb3JlIDY0LWJpdCBp
bnRlZ2VyIHN1cHBvcnQgd2FzCi0gICAgaW50cm9kdWNlZC4gSGVyZSdzIGhvdyBpdCB3b3JrcyBu
b3c6Ci0KLSAgICAgKiAgaXNJbnQsIGlzSW50NjQsIGlzVUludCwgYW5kIGlzVUludDY0IHJldHVy
biB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZQotICAgICAgICB2YWx1ZSBjYW4gYmUgZXhhY3RseSBy
ZXByZXNlbnRlZCBhcyB0aGF0IHR5cGUuIEluIHBhcnRpY3VsYXIsIGEgdmFsdWUKLSAgICAgICAg
Y29uc3RydWN0ZWQgd2l0aCBhIGRvdWJsZSBsaWtlIDE3LjAgd2lsbCBub3cgcmV0dXJuIHRydWUg
Zm9yIGFsbCBvZgotICAgICAgICB0aGVzZSBtZXRob2RzLgotCi0gICAgICogIGlzRG91YmxlIGFu
ZCBpc0Zsb2F0IG5vdyByZXR1cm4gdHJ1ZSBmb3IgYWxsIG51bWVyaWMgdmFsdWVzLCBzaW5jZSBh
bGwKLSAgICAgICAgbnVtZXJpYyB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBhIGRvdWJsZSBv
ciBmbG9hdCB3aXRob3V0Ci0gICAgICAgIHRydW5jYXRpb24uIE5vdGUgaG93ZXZlciB0aGF0IHRo
ZSBjb252ZXJzaW9uIG1heSBub3QgYmUgZXhhY3QgLS0gZm9yCi0gICAgICAgIGV4YW1wbGUsIGRv
dWJsZXMgY2Fubm90IGV4YWN0bHkgcmVwcmVzZW50IGFsbCBpbnRlZ2VycyBhYm92ZSAyXjUzICsg
MS4KLQotICAgICAqICBpc0Jvb2wsIGlzTnVsbCwgaXNTdHJpbmcsIGlzQXJyYXksIGFuZCBpc09i
amVjdCBub3cgcmV0dXJuIHRydWUgaWYgYW5kCi0gICAgICAgIG9ubHkgaWYgdGhlIHZhbHVlIGlz
IG9mIHRoYXQgdHlwZS4KLQotICAgICAqICBpc0NvbnZlcnRpYmxlVG8oZm9vVmFsdWUpIGluZGlj
YXRlcyB0aGF0IGl0IGlzIHNhZmUgdG8gY2FsbCBhc0Zvby4KLSAgICAgICAgKEZvciBlYWNoIHR5
cGUgZm9vLCBpc0ZvbyBhbHdheXMgaW1wbGllcyBpc0NvbnZlcnRpYmxlVG8oZm9vVmFsdWUpLikK
LSAgICAgICAgYXNGb28gcmV0dXJucyBhbiBhcHByb3hpbWF0ZSBvciBleGFjdCByZXByZXNlbnRh
dGlvbiBhcyBhcHByb3ByaWF0ZS4KLSAgICAgICAgRm9yIGV4YW1wbGUsIGEgZG91YmxlIHZhbHVl
IG1heSBiZSB0cnVuY2F0ZWQgd2hlbiBhc0ludCBpcyBjYWxsZWQuCi0KLSAgICAgKiAgRm9yIGJh
Y2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGNvZGUsIGlzQ29udmVydGlibGVUbyhpbnRW
YWx1ZSkKLSAgICAgICAgbWF5IHJldHVybiBmYWxzZSBldmVuIGlmIHR5cGUoKSA9PSBpbnRWYWx1
ZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSB2YWx1ZQotICAgICAgICBtYXkgaGF2ZSBiZWVuIGNvbnN0
cnVjdGVkIHdpdGggYSA2NC1iaXQgaW50ZWdlciBsYXJnZXIgdGhhbiBtYXhJbnQsCi0gICAgICAg
IGFuZCBjYWxsaW5nIGFzSW50KCkgd291bGQgY2F1c2UgYW4gZXhjZXB0aW9uLiBJZiB5b3UncmUg
d3JpdGluZyBuZXcKLSAgICAgICAgY29kZSwgdXNlIGlzSW50NjQgdG8gZmluZCBvdXQgd2hldGhl
ciB0aGUgdmFsdWUgaXMgZXhhY3RseQotICAgICAgICByZXByZXNlbnRhYmxlIHVzaW5nIGFuIElu
dDY0LCBvciBhc0RvdWJsZSgpIGNvbWJpbmVkIHdpdGggbWluSW50NjQgYW5kCi0gICAgICAgIG1h
eEludDY0IHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdCBpcyBhcHByb3hpbWF0ZWx5IHJlcHJlc2Vu
dGFibGUuCi0KLQotICBOZXcgaW4gSnNvbkNwcCAwLjYuMDoKLSAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLSogQ29tcGlsYXRpb24KLQotICAtIExEX0xJQlJBUllfUEFUSCBhbmQgTElCUkFSWV9Q
QVRIIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgbm93IAotICAgIHByb3BhZ2F0ZWQgdG8gdGhl
IGJ1aWxkIGVudmlyb25tZW50IGFzIHRoaXMgaXMgcmVxdWlyZWQgZm9yIHNvbWUgCi0gICAgY29t
cGlsZXIgaW5zdGFsbGF0aW9uLgotCi0gIC0gQWRkZWQgc3VwcG9ydCBmb3IgTWljcm9zb2Z0IFZp
c3VhbCBTdHVkaW8gMjAwOCAoYnVnICMyOTMwNDYyKTogCi0gICAgVGhlIHBsYXRmb3JtICJtc3Zj
OTAiIGhhcyBiZWVuIGFkZGVkLgotCi0gICAgTm90ZXM6IHlvdSBuZWVkIHRvIHNldHVwIHRoZSBl
bnZpcm9ubWVudCBieSBydW5uaW5nIHZjdmFyczMyLmJhdCAKLSAgICAoZS5nLiBNU1ZDIDIwMDgg
Y29tbWFuZCBwcm9tcHQgaW4gc3RhcnQgbWVudSkgYmVmb3JlIHJ1bm5pbmcgc2NvbnMuCi0gICAg
Ci0gIC0gQWRkZWQgc3VwcG9ydCBmb3IgYW1hbGdhbWF0ZWQgc291cmNlIGFuZCBoZWFkZXIgZ2Vu
ZXJhdGlvbiAoYSBsYSBzcWxpdGUpLgotICAgIFJlZmVyIHRvIFJFQURNRS50eHQgc2VjdGlvbiAi
R2VuZXJhdGluZyBhbWFsZ2FtYXRlZCBzb3VyY2UgYW5kIGhlYWRlciIKLSAgICBmb3IgZGV0YWls
LgotICAgIAotKiBWYWx1ZQotCi0gIC0gUmVtb3ZlZCBleHBlcmltZW50YWwgVmFsdWVBbGxvY2F0
b3IsIGl0IGNhdXNlZCBzdGF0aWMgCi0gICAgaW5pdGlhbGl6YXRpb24vZGVzdHJ1Y3Rpb24gb3Jk
ZXIgaXNzdWVzIChidWcgIzI5MzQ1MDApLiAKLSAgICBUaGUgRGVmYXVsdFZhbHVlQWxsb2NhdG9y
IGhhcyBiZWVuIGlubGluZWQgaW4gY29kZS4KLSAgICAKLSAgLSBBZGRlZCBzdXBwb3J0IGZvciA2
NCBiaXRzIGludGVnZXI6Ci0gIAotICAgIFR5cGVzIEpzb246OkludDY0IGFuZCBKc29uOjpVSW50
NjQgaGF2ZSBiZWVuIGFkZGVkLiBUaGV5IGFyZSBhbGlhc2VkCi0JdG8gNjQgYml0cyBpbnRlZ2Vy
cyBvbiBzeXN0ZW0gdGhhdCBzdXBwb3J0IHRoZW0gKGJhc2VkIG9uIF9faW50NjQgb24gCi0JTWlj
cm9zb2Z0IFZpc3VhbCBTdHVkaW8gcGxhdGZvcm0sIGFuZCBsb25nIGxvbmcgb24gb3RoZXIgcGxh
dGZvcm1zKS4KLQkKLQlUeXBlcyBKc29uOjpMYXJnZXN0SW50IGFuZCBKc29uOjpMYXJnZXN0VUlu
dCBoYXZlIGJlZW4gYWRkZWQuIFRoZXkgYXJlCi0JYWxpYXNlZCB0byB0aGUgbGFyZ2VzdCBpbnRl
Z2VyIHR5cGUgc3VwcG9ydGVkOiAKLQllaXRoZXIgSnNvbjo6SW50L0pzb246OlVJbnQgb3IgSnNv
bjo6SW50NjQvSnNvbjo6VUludDY0IHJlc3BlY3RpdmVseS4KLQkKLQlKc29uOjpWYWx1ZTo6YXNJ
bnQoKSBhbmQgSnNvbjo6VmFsdWU6OmFzVUludCgpIHN0aWxsIHJldHVybnMgcGxhaW4KLQkiaW50
IiBiYXNlZCB0eXBlcywgYnV0IGFzc2VydHMgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvIHJldHJp
ZXZlCi0JYSA2NCBiaXRzIHZhbHVlIHRoYXQgY2FuIG5vdCByZXByZXNlbnRlZCBhcyB0aGUgcmV0
dXJuIHR5cGUuCi0JCi0JSnNvbjo6VmFsdWU6OmFzSW50NjQoKSBhbmQgSnNvbjo6VmFsdWU6OmFz
VUludDY0KCkgaGF2ZSBiZWVuIGFkZGVkCi0JdG8gb2J0YWluIHRoZSA2NCBiaXRzIGludGVnZXIg
dmFsdWUuCi0JCi0JSnNvbjo6VmFsdWU6OmFzTGFyZ2VzdEludCgpIGFuZCBKc29uOjpWYWx1ZTo6
YXNMYXJnZXN0VUludCgpIHJldHVybnMKLQl0aGUgaW50ZWdlciBhcyBhIExhcmdlc3RJbnQvTGFy
Z2VzdFVJbnQgcmVzcGVjdGl2ZWx5LiBUaG9zZSBmdW5jdGlvbnMKLQlmdW5jdGlvbnMgYXJlIHR5
cGljYWxseSB1c2VkIHdoZW4gaW1wbGVtZW50aW5nIHdyaXRlci4KLQkKLQlUaGUgcmVhZGVyIGF0
dGVtcHRzIHRvIHJlYWQgbnVtYmVyIGFzIDY0IGJpdHMgaW50ZWdlciwgYW5kIGZhbGwgYmFjawot
CXRvIHJlYWRpbmcgYSBkb3VibGUgaWYgdGhlIG51bWJlciBpcyBub3QgaW4gdGhlIHJhbmdlIG9m
IDY0IGJpdHMgCi0JaW50ZWdlci4KLSAgICAKLSAgICBXYXJuaW5nOiBKc29uOjpWYWx1ZTo6YXNJ
bnQoKSBhbmQgSnNvbjo6VmFsdWU6OmFzVUludCgpIG5vdyByZXR1cm5zCi0gICAgbG9uZyBsb25n
LiBUaGlzIGNoYW5nZXMgYnJlYWsgY29kZSB0aGF0IHdhcyBwYXNzaW5nIHRoZSByZXR1cm4gdmFs
dWUKLSAgICB0byAqcHJpbnRmKCkgZnVuY3Rpb24uCi0gIAotICAgIFN1cHBvcnQgZm9yIDY0IGJp
dHMgaW50ZWdlciBjYW4gYmUgZGlzYWJsZWQgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIAotCUpTT05f
Tk9fSU5UNjQgKHVuY29tbWVudCBpdCBpbiBqc29uL2NvbmZpZy5oIGZvciBleGFtcGxlKSwgdGhv
dWdoCi0JaXQgc2hvdWxkIGhhdmUgbm8gaW1wYWN0IG9uIGV4aXN0aW5nIHVzYWdlLgotICAgIAot
ICAtIFRoZSB0eXBlIEpzb246OkFycmF5SW5kZXggaXMgdXNlZCBmb3IgaW5kZXhlcyBvZiBhIEpT
T04gdmFsdWUgYXJyYXkuIEl0Ci0gICAgaXMgYW4gdW5zaWduZWQgaW50ICh0eXBpY2FsbHkgMzIg
Yml0cykuCi0JCi0gIC0gQXJyYXkgaW5kZXggY2FuIGJlIHBhc3NlZCBhcyBpbnQgdG8gb3BlcmF0
b3JbXSwgYWxsb3dpbmcgdXNlIG9mIGxpdGVyYWw6Ci0gICAgSnNvbjo6VmFsdWUgYXJyYXk7Ci0J
YXJyYXkuYXBwZW5kKCAxMjM0ICk7Ci0JaW50IHZhbHVlID0gYXJyYXlbMF0uYXNJbnQoKTsgIC8v
IGRpZCBub3QgY29tcGlsZSBwcmV2aW91c2x5Ci0KLSAgLSBBZGRlZCBmbG9hdCBKc29uOjpWYWx1
ZTo6YXNGbG9hdCgpIHRvIG9idGFpbiBhIGZsb2F0aW5nIHBvaW50IHZhbHVlIGFzIGEKLSAgICBm
bG9hdCAoYXZvaWQgbG9zdCBvZiBwcmVjaXNpb24gd2FybmluZyBjYXVzZWQgYnkgdXNlZCBvZiBh
c0RvdWJsZSgpIAotICAgIHRvIGluaXRpYWxpemUgYSBmbG9hdCkuCi0KLSogUmVhZGVyCi0KLSAg
LSBSZW5hbWVkIFJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgdG8gZ2V0Rm9ybWF0
dGVkRXJyb3JNZXNzYWdlcy4KLSAgICBCdWcgIzMwMjM3MDggKEZvcm1hdHRlZCBoYXMgMiAndCcp
LiBUaGUgb2xkIG1lbWJlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkCi0gICAgYnV0IHN0aWxsIHBy
ZXNlbnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0gICAgCi0qIFRlc3RzCi0KLSAgLSBB
ZGRlZCB0ZXN0IHRvIGVuc3VyZSB0aGF0IHRoZSBlc2NhcGUgc2VxdWVuY2UgIlwvIiBpcyBjb3Jy
ZWN0ZWQgaGFuZGxlZCAKLSAgICBieSB0aGUgcGFyc2VyLgotCi0qIEJ1ZyBmaXhlcwotCi0gIC0g
QnVnICMzMTM5Njc3OiBKU09OIFsxIDIgM10gd2FzIGluY29ycmVjdGx5IHBhcnNlZCBhcyBbMSwg
M10uIEVycm9yIGlzIG5vdyAKLSAgICBjb3JyZWN0bHkgZGV0ZWN0ZWQuCi0gICAgCi0gIC0gQnVn
ICMzMTM5Njc4OiBzdGFjayBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIGEgZG91YmxlIHdp
dGggYQotICAgIGxlbmd0aCBvZiAzMiBjaGFyYWN0ZXJzLgotCQotICAtIEZpeGVkIFZhbHVlOjpv
cGVyYXRvciA8PSBpbXBsZW1lbnRhdGlvbiAoaGFkIHRoZSBzZW1hbnRpYyBvZiBvcGVyYXRvciA+
PSkuCi0gICAgRm91bmQgd2hlbiBhZGRpbmcgdW5pdCB0ZXN0cyBmb3IgY29tcGFyaXNvbiBvcGVy
YXRvcnMuCi0gICAgCi0gIC0gVmFsdWU6OmNvbXBhcmUoKSBpcyBub3cgY29uc3QgYW5kIGhhcyBh
biBhY3R1YWwgaW1wbGVtZW50YXRpb24gd2l0aAotICAgIHVuaXQgdGVzdHMuCi0KLSAgLSBCdWcg
IzI0MDc5MzI6IHN0cnBicmsoKSBjYW4gZmFpbCBmb3IgTlVMTCBwb2ludGVyLgotCi0gIC0gQnVn
ICMzMzA2MzQ1OiBGaXhlZCBtaW5vciB0eXBvIGluIFBhdGg6OnJlc29sdmUoKS4KLQotICAtIEJ1
ZyAjMzMxNDg0MS8jMzMwNjg5NjogZXJyb3JzIGluIGFtYWxnYW1hdGUucHkKLQotICAtIEZpeGVk
IHNvbWUgQ292ZXJpdHkgd2FybmluZ3MgYW5kIGxpbmUtZW5kaW5ncy4KLSAgICAKLSogTGljZW5z
ZQotICAKLSAgLSBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWxzLiBCYXNpY2FsbHkgSnNvbkNw
cCBpcyBub3cgbGljZW5zZWQgdW5kZXIgCi0gICAgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21h
aW4gaWYgZGVzaXJlZCBhbmQgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLSAgICBU
aGFua3MgdG8gU3RlcGhhbiBHLiBCZWFsIFtodHRwOi8vd2FuZGVyaW5naG9yc2UubmV0L2hvbWUv
c3RlcGhhbi9dKSB3aG8KLQloZWxwZWQgZmlndXJpbmcgb3V0IHRoZSBzb2x1dGlvbiB0byB0aGUg
cHVibGljIGRvbWFpbiBpc3N1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvUkVBRE1FLm1kIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9S
RUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM4NTg3MDYwZGIyYWQ4ZDU2NTU2ZDAxNmI3NzgzY2FlMTg0
MjcxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvUkVBRE1FLm1kCkBAIC0wLDAgKzEsNDYgQEAK
KyMgSnNvbkNwcAorCitbIVtiYWRnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb25h
bi5pby1qc29uY3BwJTJGMS44LjAtZ3JlZW4uc3ZnP2xvZ289ZGF0YTppbWFnZS9wbmc7YmFzZTY0
JTJDaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUE0QUFBQU9DQU1BQUFBb2x0M2pBQUFBMVZCTVZF
VUFBQUJobGN0amxzdGtsOHRsbU10bG1NeGxtY3htbWN4bm1zeHBuTXhwbk0xcW5jMXNuODV2b005
MW9NMTFvYzF4b3RCMm9jNTZwTkY2cE5KMnB0SjhwdEo4cHROOXB0TjhwOU41cU5KOXA5TjlwOVI4
cXRPQnFkU0FxdE9BcXRSJTJCck5TQ3JOSi9yZFdEck5XQ3NOV0NzTmFKczllTHM5aVJ2TnVWdmR5
VnY5eVh3ZDJad3Q2YXhONmR4dCUyQmZ4JTJCQ2h5ZUdpeXVHanl1Q2p5dUdseSUyQkdsek9LbXpP
R296dUtveiUyQktxeiUyQk9xME9PdjFPV3cxT1d3MWVXeDFlV3kxdWF5MSUyQmF6MSUyQmF6MSUy
QmV6Mk9lMDJPZTEyZWUyMnVqVUd3SDNBQUFBQVhSU1RsTUFRT2JZWmdBQUFBRmlTMGRFQUlnRkhV
Z0FBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFBSGRFbE5SUWZnQlFrUkV5T3hGSWgvQUFB
QWlrbEVRVlFJMTJOZ0FBTWJPd1k0c0xaMk50UTFjb1ZLV052b2MvRXE4WERyMndCNUlnNjJla3ph
OXZhT3FwSzJUcG9Nek94YUZ0d3FadWEyQm00bWFrSU03T3pNQWpvYUNxWXV4b29TVXFKQUxqczdv
NHlWcGJvd3Z6U1V5ODdLcVN3bXhRZm5zclBJU3lGeldlV0FYQ2twTWFCVklDNGJtQ3NPZGdpVUt3
aDNKb2pMZ0FRNFpDRTBBTW0yRDI5dFp3ZTZBQUFBQUVsRlRrU3VRbUNDKV0oaHR0cHM6Ly9iaW50
cmF5LmNvbS90aGVpcml4L2NvbmFuLXJlcG8vanNvbmNwcCUzQXRoZWlyaXgpCisKK1tKU09OXVtq
c29uLW9yZ10gaXMgYSBsaWdodHdlaWdodCBkYXRhLWludGVyY2hhbmdlIGZvcm1hdC4gSXQgY2Fu
IHJlcHJlc2VudAorbnVtYmVycywgc3RyaW5ncywgb3JkZXJlZCBzZXF1ZW5jZXMgb2YgdmFsdWVz
LCBhbmQgY29sbGVjdGlvbnMgb2YgbmFtZS92YWx1ZQorcGFpcnMuCisKK1tqc29uLW9yZ106IGh0
dHA6Ly9qc29uLm9yZy8KKworSnNvbkNwcCBpcyBhIEMrKyBsaWJyYXJ5IHRoYXQgYWxsb3dzIG1h
bmlwdWxhdGluZyBKU09OIHZhbHVlcywgaW5jbHVkaW5nCitzZXJpYWxpemF0aW9uIGFuZCBkZXNl
cmlhbGl6YXRpb24gdG8gYW5kIGZyb20gc3RyaW5ncy4gSXQgY2FuIGFsc28gcHJlc2VydmUKK2V4
aXN0aW5nIGNvbW1lbnQgaW4gdW5zZXJpYWxpemF0aW9uL3NlcmlhbGl6YXRpb24gc3RlcHMsIG1h
a2luZyBpdCBhIGNvbnZlbmllbnQKK2Zvcm1hdCB0byBzdG9yZSB1c2VyIGlucHV0IGZpbGVzLgor
CisKKyMjIERvY3VtZW50YXRpb24KKworW0pzb25DcHAgZG9jdW1lbnRhdGlvbl1bSnNvbkNwcC1k
b2N1bWVudGF0aW9uXSBpcyBnZW5lcmF0ZWQgdXNpbmcgW0RveHlnZW5dW10uCisKK1tKc29uQ3Bw
LWRvY3VtZW50YXRpb25dOiBodHRwOi8vb3Blbi1zb3VyY2UtcGFyc2Vycy5naXRodWIuaW8vanNv
bmNwcC1kb2NzL2RveHlnZW4vaW5kZXguaHRtbAorW0RveHlnZW5dOiBodHRwOi8vd3d3LmRveHln
ZW4ub3JnCisKKworIyMgQSBub3RlIG9uIGJhY2t3YXJkLWNvbXBhdGliaWxpdHkKKworKiBgMS55
LnpgIGlzIGJ1aWx0IHdpdGggQysrMTEuCisqIGAwLnkuemAgY2FuIGJlIHVzZWQgd2l0aCBvbGRl
ciBjb21waWxlcnMuCisqIE1ham9yIHZlcnNpb25zIG1haW50YWluIGJpbmFyeS1jb21wYXRpYmls
aXR5LgorCisKKyMjIFVzaW5nIEpzb25DcHAgaW4geW91ciBwcm9qZWN0CisKKyMjIyBBbWFsZ2Ft
YXRlZCBzb3VyY2UKK2h0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25j
cHAvd2lraS9BbWFsZ2FtYXRlZAorCisjIyMgVGhlIE1lc29uIEJ1aWxkIFN5c3RlbQorSWYgeW91
IGFyZSB1c2luZyB0aGUgW01lc29uIEJ1aWxkIFN5c3RlbV0oaHR0cDovL21lc29uYnVpbGQuY29t
KSwgdGhlbiB5b3UgY2FuIGdldCBhIHdyYXAgZmlsZSBieSBkb3dubG9hZGluZyBpdCBmcm9tIFtN
ZXNvbiBXcmFwREJdKGh0dHBzOi8vd3JhcGRiLm1lc29uYnVpbGQuY29tL2pzb25jcHApLCBvciBz
aW1wbHkgdXNlIGBtZXNvbiB3cmFwIGluc3RhbGwganNvbmNwcGAuCisKKyMjIyBPdGhlciB3YXlz
CitJZiB5b3UgaGF2ZSB0cm91YmxlLCBzZWUgdGhlIFdpa2ksIG9yIHBvc3QgYSBxdWVzdGlvbiBh
cyBhbiBJc3N1ZS4KKworIyMgTGljZW5zZQorCitTZWUgdGhlIGBMSUNFTlNFYCBmaWxlIGZvciBk
ZXRhaWxzLiBJbiBzdW1tYXJ5LCBKc29uQ3BwIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZQorTUlUIGxp
Y2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQgcmVjb2duaXplZCBpbiB5b3Vy
IGp1cmlzZGljdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvUkVBRE1FLnR4dCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvUkVBRE1F
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhjMTE3OGQ3MjM3ZjhjYzg3ZGU3
MTE2MzY2YWU3ZTgyY2YxNTE4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL1JFQURNRS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNzMgKzAsMCBA
QAotKiBJbnRyb2R1Y3Rpb246Ci0gID09PT09PT09PT09PT0KLQotSlNPTiAoSmF2YVNjcmlwdCBP
YmplY3QgTm90YXRpb24pIGlzIGEgbGlnaHR3ZWlnaHQgZGF0YS1pbnRlcmNoYW5nZSBmb3JtYXQu
IAotSXQgY2FuIHJlcHJlc2VudCBpbnRlZ2VyLCByZWFsIG51bWJlciwgc3RyaW5nLCBhbiBvcmRl
cmVkIHNlcXVlbmNlIG9mIAotdmFsdWUsIGFuZCBhIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBw
YWlycy4KLQotSnNvbkNwcCAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykgaXMgYSBz
aW1wbGUgQVBJIHRvIG1hbmlwdWxhdGUgCi1KU09OIHZhbHVlLCBoYW5kbGUgc2VyaWFsaXphdGlv
biBhbmQgdW5zZXJpYWxpemF0aW9uIHRvIHN0cmluZy4KLQotSXQgY2FuIGFsc28gcHJlc2VydmUg
ZXhpc3RpbmcgY29tbWVudCBpbiB1bnNlcmlhbGl6YXRpb24vc2VyaWFsaXphdGlvbiBzdGVwcywK
LW1ha2luZyBpdCBhIGNvbnZlbmllbnQgZm9ybWF0IHRvIHN0b3JlIHVzZXIgaW5wdXQgZmlsZXMu
Ci0KLVVuc2VyaWFsaXphdGlvbiBwYXJzaW5nIGlzIHVzZXIgZnJpZW5kbHkgYW5kIHByb3ZpZGVz
IHByZWNpc2UgZXJyb3IgcmVwb3J0cy4KLQotCi0qIEJ1aWxkaW5nL1Rlc3Rpbmc6Ci0gID09PT09
PT09PT09PT09PT09Ci0KLUpzb25DcHAgdXNlcyBTY29ucyAoaHR0cDovL3d3dy5zY29ucy5vcmcp
IGFzIGEgYnVpbGQgc3lzdGVtLiBTY29ucyByZXF1aXJlcwotcHl0aG9uIHRvIGJlIGluc3RhbGxl
ZCAoaHR0cDovL3d3dy5weXRob24ub3JnKS4KLQotWW91IGRvd25sb2FkIHNjb25zLWxvY2FsIGRp
c3RyaWJ1dGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgdXJsOgotaHR0cDovL3NvdXJjZWZvcmdlLm5l
dC9wcm9qZWN0cy9zY29ucy9maWxlcy9zY29ucy1sb2NhbC8xLjIuMC8KLQotVW56aXAgaXQgaW4g
dGhlIGRpcmVjdG9yeSB3aGVyZSB5b3UgZm91bmQgdGhpcyBSRUFETUUgZmlsZS4gc2NvbnMucHkg
U2hvdWxkIGJlIAotYXQgdGhlIHNhbWUgbGV2ZWwgYXMgUkVBRE1FLgotCi1weXRob24gc2NvbnMu
cHkgcGxhdGZvcm09UExURlJNIFtUQVJHRVRdCi13aGVyZSBQTFRGUk0gbWF5IGJlIG9uZSBvZjoK
LQlzdW5jYyBTdW4gQysrIChTb2xhcmlzKQotCXZhY3BwIFZpc3VhbCBBZ2UgQysrIChBSVgpCi0J
bWluZ3cgCi0JbXN2YzYgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNiBzZXJ2aWNlIHBhY2sgNS02
Ci0JbXN2YzcwIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDIwMDIKLQltc3ZjNzEgTWljcm9zb2Z0
IFZpc3VhbCBTdHVkaW8gMjAwMwotCW1zdmM4MCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAyMDA1
Ci0JbXN2YzkwIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDIwMDgKLQlsaW51eC1nY2MgR251IEMr
KyAobGludXgsIGFsc28gcmVwb3J0ZWQgdG8gd29yayBmb3IgTWFjIE9TIFgpCi0KLU5vdGVzOiBp
ZiB5b3UgYXJlIGJ1aWxkaW5nIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMjAwOCwgeW91
IG5lZWQgdG8gCi1zZXR1cCB0aGUgZW52aXJvbm1lbnQgYnkgcnVubmluZyB2Y3ZhcnMzMi5iYXQg
KGUuZy4gTVNWQyAyMDA4IGNvbW1hbmQgcHJvbXB0KQotYmVmb3JlIHJ1bm5pbmcgc2NvbnMuCi0J
Ci1BZGRpbmcgcGxhdGZvcm0gaXMgZmFpcmx5IHNpbXBsZS4gWW91IG5lZWQgdG8gY2hhbmdlIHRo
ZSBTY29uc3RydWN0IGZpbGUgCi10byBkbyBzby4KLQkKLWFuZCBUQVJHRVQgbWF5IGJlOgotCWNo
ZWNrOiBidWlsZCBsaWJyYXJ5IGFuZCBydW4gdW5pdCB0ZXN0cy4KLQotICAgIAotKiBSdW5uaW5n
IHRoZSB0ZXN0IG1hbnVhbGx5OgotICA9PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1Ob3Rl
cyB0aGF0IHRlc3QgY2FuIGJlIHJ1biBieSBzY29ucyB1c2luZyB0aGUgJ2NoZWNrJyB0YXJnZXQg
KHNlZSBhYm92ZSkuCi0KLVlvdSBuZWVkIHRvIHJ1biB0ZXN0IG1hbnVhbGx5IG9ubHkgaWYgeW91
IGFyZSB0cm91Ymxlc2hvb3RpbmcgYW4gaXNzdWUuCi0KLUluIHRoZSBpbnN0cnVjdGlvbiBiZWxv
dywgcmVwbGFjZSAicGF0aCB0byBqc29udGVzdC5leGUiIHdpdGggdGhlIHBhdGgKLW9mIHRoZSAn
anNvbnRlc3QnIGV4ZWN1dGFibGUgdGhhdCB3YXMgY29tcGlsZWQgb24geW91ciBwbGF0Zm9ybS4K
LSAgCi1jZCB0ZXN0Ci0jIFRoaXMgd2lsbCBydW4gdGhlIFJlYWRlci9Xcml0ZXIgdGVzdHMKLXB5
dGhvbiBydW5qc29udGVzdHMucHkgInBhdGggdG8ganNvbnRlc3QuZXhlIgotCi0jIFRoaXMgd2ls
bCBydW4gdGhlIFJlYWRlci9Xcml0ZXIgdGVzdHMsIHVzaW5nIEpTT05DaGVja2VyIHRlc3Qgc3Vp
dGUKLSMgKGh0dHA6Ly93d3cuanNvbi5vcmcvSlNPTl9jaGVja2VyLykuCi0jIE5vdGVzOiBub3Qg
YWxsIHRlc3RzIHBhc3M6IEpzb25DcHAgaXMgdG9vIGxlbmllbnQgKGZvciBleGFtcGxlLAotIyBp
dCBhbGxvd3MgYW4gaW50ZWdlciB0byBzdGFydCB3aXRoICcwJykuIFRoZSBnb2FsIGlzIHRvIGlt
cHJvdmUKLSMgc3RyaWN0IG1vZGUgcGFyc2luZyB0byBnZXQgYWxsIHRlc3RzIHRvIHBhc3MuCi1w
eXRob24gcnVuanNvbnRlc3RzLnB5IC0td2l0aC1qc29uLWNoZWNrZXIgInBhdGggdG8ganNvbnRl
c3QuZXhlIgotCi0jIFRoaXMgd2lsbCBydW4gdGhlIHVuaXQgdGVzdHMgKG1vc3RseSBWYWx1ZSkK
LXB5dGhvbiBydW51bml0dGVzdHMucHkgInBhdGggdG8gdGVzdF9saWJfanNvbi5leGUiCi0KLVlv
dSBjYW4gcnVuIHRoZSB0ZXN0cyB1c2luZyB2YWxncmluZDoKLXB5dGhvbiBydW51bml0dGVzdHMu
cHkgLS12YWxncmluZCAicGF0aCB0byB0ZXN0X2xpYl9qc29uLmV4ZSIKLQotCi0qIEJ1aWxkaW5n
IHRoZSBkb2N1bWVudGF0aW9uOgotICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotUnVu
IHRoZSBweXRob24gc2NyaXB0IGRveHlidWlsZC5weSBmcm9tIHRoZSB0b3AgZGlyZWN0b3J5Ogot
Ci1weXRob24gZG94eWJ1aWxkLnB5IC0tb3BlbiAtLXdpdGgtZG90Ci0KLVNlZSBkb3h5YnVpbGQu
cHkgLS1oZWxwIGZvciBvcHRpb25zLiAKLQotTm90ZXMgdGhhdCB0aGUgZG9jdW1lbnRhdGlvbiBp
cyBhbHNvIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgYXMgYSB0YXJiYWxsLiAKLVRoZSBkb2N1bWVu
dGF0aW9uIG9mIHRoZSBsYXRlc3QgcmVsZWFzZSBpcyBhdmFpbGFibGUgb25saW5lIGF0OgotaHR0
cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LwotCi0qIEdlbmVyYXRpbmcgYW1hbGdhbWF0ZWQg
c291cmNlIGFuZCBoZWFkZXIKLSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotCi1Kc29uQ3BwIGlzIHByb3ZpZGVkIHdpdGggYSBzY3JpcHQgdG8gZ2VuZXJhdGUgYSBz
aW5nbGUgaGVhZGVyIGFuZCBhIHNpbmdsZQotc291cmNlIGZpbGUgdG8gZWFzZSBpbmNsdXNpb24g
aW4gYW4gZXhpc3RpbmcgcHJvamVjdC4KLQotVGhlIGFtYWxnYW1hdGVkIHNvdXJjZSBjYW4gYmUg
Z2VuZXJhdGVkIGF0IGFueSB0aW1lIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZwotY29tbWFuZCBm
cm9tIHRoZSB0b3AtZGlyZWN0b3J5IChyZXF1aXJlcyBweXRob24gMi42KToKLQotcHl0aG9uIGFt
YWxnYW1hdGUucHkKLQotSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBoZWFkZXIgbmFtZS4gU2Vl
IC1oIG9wdGlvbnMgZm9yIGRldGFpbC4gQnkgZGVmYXVsdCwKLXRoZSBmb2xsb3dpbmcgZmlsZXMg
YXJlIGdlbmVyYXRlZDoKLS0gZGlzdC9qc29uY3BwLmNwcDogc291cmNlIGZpbGUgdGhhdCBuZWVk
IHRvIGJlIGFkZGVkIHRvIHlvdXIgcHJvamVjdAotLSBkaXN0L2pzb24vanNvbi5oOiBoZWFkZXIg
ZmlsZSBjb3JyZXNwb25kaW5nIHRvIHVzZSBpbiB5b3VyIHByb2plY3QuIEl0IGlzCi1lcXVpdmFs
ZW50IHRvIGluY2x1ZGluZyBqc29uL2pzb24uaCBpbiBub24tYW1hbGdhbWF0ZWQgc291cmNlLiBU
aGlzIGhlYWRlcgotb25seSBkZXBlbmRzIG9uIHN0YW5kYXJkIGhlYWRlcnMuIAotLSBkaXN0L2pz
b24vanNvbi1mb3J3YXJkcy5oOiBoZWFkZXIgdGhlIHByb3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRp
b24KLW9mIGFsbCBKc29uQ3BwIHR5cGVzLiBUaGlzIHR5cGljYWxseSB3aGF0IHNob3VsZCBiZSBp
bmNsdWRlZCBpbiBoZWFkZXJzIHRvCi1zcGVlZC11cCBjb21waWxhdGlvbi4KLQotVGhlIGFtYWxn
YW1hdGVkIHNvdXJjZXMgYXJlIGdlbmVyYXRlZCBieSBjb25jYXRlbmF0aW5nIEpzb25DcHAgc291
cmNlIGluIHRoZQotY29ycmVjdCBvcmRlciBhbmQgZGVmaW5pbmcgbWFjcm8gSlNPTl9JU19BTUFM
R0FNQVRJT04gdG8gcHJldmVudCBpbmNsdXNpb24KLW9mIG90aGVyIGhlYWRlcnMuCi0KLSogVXNp
bmcganNvbi1jcHAgaW4geW91ciBwcm9qZWN0OgotICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0KLWluY2x1ZGUvIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIGNvbXBpbGVyIGluY2x1
ZGUgcGF0aC4ganNvbmNwcCBoZWFkZXJzIAotc2hvdWxkIGJlIGluY2x1ZGVkIGFzIGZvbGxvdzoK
LQotI2luY2x1ZGUgPGpzb24vanNvbi5oPgotICAKLQotKiBBZGRpbmcgYSByZWFkZXIvd3JpdGVy
IHRlc3Q6Ci0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVG8gYWRkIGEgdGVzdCwg
eW91IG5lZWQgdG8gY3JlYXRlIHR3byBmaWxlcyBpbiB0ZXN0L2RhdGE6Ci0tIGEgVEVTVE5BTUUu
anNvbiBmaWxlLCB0aGF0IGNvbnRhaW5zIHRoZSBpbnB1dCBkb2N1bWVudCBpbiBKU09OIGZvcm1h
dC4KLS0gYSBURVNUTkFNRS5leHBlY3RlZCBmaWxlLCB0aGF0IGNvbnRhaW5zIGEgZmxhdGVuZWQg
cmVwcmVzZW50YXRpb24gb2YgCi0gIHRoZSBpbnB1dCBkb2N1bWVudC4KLSAgCi1URVNUTkFNRS5l
eHBlY3RlZCBmaWxlIGZvcm1hdDoKLS0gZWFjaCBsaW5lIHJlcHJlc2VudHMgYSBKU09OIGVsZW1l
bnQgb2YgdGhlIGVsZW1lbnQgdHJlZSByZXByZXNlbnRlZCAKLSAgYnkgdGhlIGlucHV0IGRvY3Vt
ZW50LgotLSBlYWNoIGxpbmUgaGFzIHR3byBwYXJ0czogdGhlIHBhdGggdG8gYWNjZXNzIHRoZSBl
bGVtZW50IHNlcGFyYXRlZCBmcm9tCi0gIHRoZSBlbGVtZW50IHZhbHVlIGJ5ICc9Jy4gQXJyYXkg
YW5kIG9iamVjdCB2YWx1ZXMgYXJlIGFsd2F5cyBlbXB0eSAKLSAgKGUuZy4gcmVwcmVzZW50ZWQg
YnkgZWl0aGVyIFtdIG9yIHt9KS4KLS0gZWxlbWVudCBwYXRoOiAnLicgcmVwcmVzZW50ZWQgdGhl
IHJvb3QgZWxlbWVudCwgYW5kIGlzIHVzZWQgdG8gc2VwYXJhdGUgCi0gIG9iamVjdCBtZW1iZXJz
LiBbTl0gaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSB2YWx1ZSBvZiBhbiBhcnJheSBlbGVtZW50Ci0g
IGF0IGluZGV4IE4uCi1TZWUgdGVzdF9jb21wbGV4XzAxLmpzb24gYW5kIHRlc3RfY29tcGxleF8w
MS5leHBlY3RlZCB0byBiZXR0ZXIgdW5kZXJzdGFuZAotZWxlbWVudCBwYXRoLgotCi0KLSogVW5k
ZXJzdGFuZGluZyByZWFkZXIvd3JpdGVyIHRlc3Qgb3V0cHV0OgotICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVdoZW4gYSB0ZXN0IGlzIHJ1biwgb3V0cHV0IGZp
bGVzIGFyZSBnZW5lcmF0ZWQgYXNpZGUgdGhlIGlucHV0IHRlc3QgZmlsZXMuIAotQmVsb3cgaXMg
YSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgY29udGVudCBvZiBlYWNoIGZpbGU6Ci0KLS0gdGVz
dF9jb21wbGV4XzAxLmpzb246IGlucHV0IEpTT04gZG9jdW1lbnQKLS0gdGVzdF9jb21wbGV4XzAx
LmV4cGVjdGVkOiBmbGF0dGVuZWQgSlNPTiBlbGVtZW50IHRyZWUgdXNlZCB0byBjaGVjayBpZiAK
LSAgICBwYXJzaW5nIHdhcyBjb3JyZWN0ZWQuCi0KLS0gdGVzdF9jb21wbGV4XzAxLmFjdHVhbDog
ZmxhdHRlbmVkIEpTT04gZWxlbWVudCB0cmVlIHByb2R1Y2VkIGJ5IAotICAgIGpzb250ZXN0LmV4
ZSBmcm9tIHJlYWRpbmcgdGVzdF9jb21wbGV4XzAxLmpzb24KLS0gdGVzdF9jb21wbGV4XzAxLnJl
d3JpdGU6IEpTT04gZG9jdW1lbnQgd3JpdHRlbiBieSBqc29udGVzdC5leGUgdXNpbmcgdGhlCi0g
ICAgSnNvbjo6VmFsdWUgcGFyc2VkIGZyb20gdGVzdF9jb21wbGV4XzAxLmpzb24gYW5kIHNlcmlh
bGl6ZWQgdXNpbmcKLSAgICBKc29uOjpTdHlsZWRXcml0dGVyLgotLSB0ZXN0X2NvbXBsZXhfMDEu
YWN0dWFsLXJld3JpdGU6IGZsYXR0ZW5lZCBKU09OIGVsZW1lbnQgdHJlZSBwcm9kdWNlZCBieSAK
LSAgICBqc29udGVzdC5leGUgZnJvbSByZWFkaW5nIHRlc3RfY29tcGxleF8wMS5yZXdyaXRlLgot
dGVzdF9jb21wbGV4XzAxLnByb2Nlc3Mtb3V0cHV0OiBqc29udGVzdC5leGUgb3V0cHV0LCB0eXBp
Y2FsbHkgdXNlZnVsIHRvCi0gICAgdW5kZXJzdGFuZCBwYXJzaW5nIGVycm9yLgotCi0qIExpY2Vu
c2UKLSAgPT09PT09PQotICAKLVNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbHMuIEJhc2ljYWxs
eSBKc29uQ3BwIGlzIGxpY2Vuc2VkIHVuZGVyIAotTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21h
aW4gaWYgZGVzaXJlZCBhbmQgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9TQ29uc3RydWN0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9TQ29uc3RydWN0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyMzIyNWNiYjc1OTg5YTU3MDUzZGIzMGU1YzFlZGMxZTEyZjA2ZjVi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvU0Nv
bnN0cnVjdAorKysgL2Rldi9udWxsCkBAIC0xLDI0OCArMCwwIEBACi0iIiIKLU5vdGVzOiAKLS0g
c2hhcmVkIGxpYnJhcnkgc3VwcG9ydCBpcyBidWdneTogaXQgYXNzdW1lcyB0aGF0IGEgc3RhdGlj
IGFuZCBkeW5hbWljIGxpYnJhcnkgY2FuIGJlIGJ1aWxkIGZyb20gdGhlIHNhbWUgb2JqZWN0IGZp
bGVzLiBUaGlzIGlzIG5vdCB0cnVlIG9uIG1hbnkgcGxhdGZvcm1zLiBGb3IgdGhpcyByZWFzb24g
aXQgaXMgb25seSBlbmFibGVkIG9uIGxpbnV4LWdjYyBhdCB0aGUgY3VycmVudCB0aW1lLgotCi1U
byBhZGQgYSBwbGF0Zm9ybToKLS0gYWRkIGl0cyBuYW1lIGluIG9wdGlvbnMgYWxsb3dlZF92YWx1
ZXMgYmVsb3cKLS0gYWRkIHRvb2wgaW5pdGlhbGl6YXRpb24gZm9yIHRoaXMgcGxhdGZvcm0uIFNl
YXJjaCBmb3IgImlmIHBsYXRmb3JtID09ICdzdW5jYyciIGFzIGFuIGV4YW1wbGUuCi0iIiIKLQot
aW1wb3J0IG9zCi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IHN5cwotCi1KU09OQ1BQX1ZFUlNJT04g
PSBvcGVuKEZpbGUoJyN2ZXJzaW9uJykuYWJzcGF0aCwncnQnKS5yZWFkKCkuc3RyaXAoKQotRElT
VF9ESVIgPSAnI2Rpc3QnCi0KLW9wdGlvbnMgPSBWYXJpYWJsZXMoKQotb3B0aW9ucy5BZGQoIEVu
dW1WYXJpYWJsZSgncGxhdGZvcm0nLAotICAgICAgICAgICAgICAgICAgICAgICAgJ1BsYXRmb3Jt
IChjb21waWxlci9zdGwpIHVzZWQgdG8gYnVpbGQgdGhlIHByb2plY3QnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgJ21zdmM3MScsCi0gICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkX3Zh
bHVlcz0nc3VuY2MgdmFjcHAgbWluZ3cgbXN2YzYgbXN2YzcgbXN2YzcxIG1zdmM4MCBtc3ZjOTAg
bGludXgtZ2NjJy5zcGxpdCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlY2FzZT0y
KSApCi0KLXRyeToKLSAgICBwbGF0Zm9ybSA9IEFSR1VNRU5UU1sncGxhdGZvcm0nXQotICAgIGlm
IHBsYXRmb3JtID09ICdsaW51eC1nY2MnOgotICAgICAgICBDWFggPSAnZysrJyAjIG5vdCBxdWl0
ZSByaWdodCwgYnV0IGVudiBpcyBub3QgeWV0IGF2YWlsYWJsZS4KLSAgICAgICAgaW1wb3J0IGNv
bW1hbmRzCi0gICAgICAgIHZlcnNpb24gPSBjb21tYW5kcy5nZXRvdXRwdXQoJyVzIC1kdW1wdmVy
c2lvbicgJUNYWCkKLSAgICAgICAgcGxhdGZvcm0gPSAnbGludXgtZ2NjLSVzJyAldmVyc2lvbgot
ICAgICAgICBwcmludCAiVXNpbmcgcGxhdGZvcm0gJyVzJyIgJXBsYXRmb3JtCi0gICAgICAgIExE
X0xJQlJBUllfUEFUSCA9IG9zLmVudmlyb24uZ2V0KCdMRF9MSUJSQVJZX1BBVEgnLCAnJykKLSAg
ICAgICAgTERfTElCUkFSWV9QQVRIID0gIiVzOmxpYnMvJXMiICUoTERfTElCUkFSWV9QQVRILCBw
bGF0Zm9ybSkKLSAgICAgICAgb3MuZW52aXJvblsnTERfTElCUkFSWV9QQVRIJ10gPSBMRF9MSUJS
QVJZX1BBVEgKLSAgICAgICAgcHJpbnQgIkxEX0xJQlJBUllfUEFUSCA9IiwgTERfTElCUkFSWV9Q
QVRICi1leGNlcHQgS2V5RXJyb3I6Ci0gICAgcHJpbnQgJ1lvdSBtdXN0IHNwZWNpZnkgYSAicGxh
dGZvcm0iJwotICAgIHN5cy5leGl0KDIpCi0KLXByaW50ICJCdWlsZGluZyB1c2luZyBQTEFURk9S
TSA9IiwgcGxhdGZvcm0KLQotcm9vdGJ1aWxkX2RpciA9IERpcignI2J1aWxkc2NvbnMnKQotYnVp
bGRfZGlyID0gb3MucGF0aC5qb2luKCAnI2J1aWxkc2NvbnMnLCBwbGF0Zm9ybSApCi1iaW5fZGly
ID0gb3MucGF0aC5qb2luKCAnI2JpbicsIHBsYXRmb3JtICkKLWxpYl9kaXIgPSBvcy5wYXRoLmpv
aW4oICcjbGlicycsIHBsYXRmb3JtICkKLXNjb25zaWduX2Rpcl9wYXRoID0gRGlyKGJ1aWxkX2Rp
cikuYWJzcGF0aAotc2NvbnNpZ25fcGF0aCA9IG9zLnBhdGguam9pbiggc2NvbnNpZ25fZGlyX3Bh
dGgsICcuc2NvbnNpZ24uZGJtJyApCi0KLSMgRW5zdXJlIGJ1aWxkIGRpcmVjdG9yeSBleGlzdCAo
U0NvbnNpZ25GaWxlIGZhaWwgb3RoZXJ3aXNlISkKLWlmIG5vdCBvcy5wYXRoLmV4aXN0cyggc2Nv
bnNpZ25fZGlyX3BhdGggKToKLSAgICBvcy5tYWtlZGlycyggc2NvbnNpZ25fZGlyX3BhdGggKQot
Ci0jIFN0b3JlIGFsbCBkZXBlbmRlbmNpZXMgc2lnbmF0dXJlIGluIGEgZGF0YWJhc2UKLVNDb25z
aWduRmlsZSggc2NvbnNpZ25fcGF0aCApCi0KLWRlZiBtYWtlX2Vudmlyb25fdmFycygpOgotCSIi
IlJldHVybnMgYSBkaWN0aW9ubmFyeSB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHVzZSB3
aGVuIGNvbXBpbGluZy4iIiIKLQkjIFBBVEggaXMgcmVxdWlyZWQgdG8gZmluZCB0aGUgY29tcGls
ZXIKLQkjIFRFTVAgaXMgcmVxdWlyZWQgZm9yIGF0IGxlYXN0IG1pbmd3Ci0gICAgIyBMRF9MSUJS
QVJZX1BBVEggJiBjbyBpcyByZXF1aXJlZCBvbiBzb21lIHN5c3RlbSBmb3IgdGhlIGNvbXBpbGVy
Ci0JdmFycyA9IHt9Ci0JZm9yIG5hbWUgaW4gKCdQQVRIJywgJ1RFTVAnLCAnVE1QJywgJ0xEX0xJ
QlJBUllfUEFUSCcsICdMSUJSQVJZX1BBVEgnKToKLQkJaWYgbmFtZSBpbiBvcy5lbnZpcm9uOgot
CQkJdmFyc1tuYW1lXSA9IG9zLmVudmlyb25bbmFtZV0KLQlyZXR1cm4gdmFycwotCQotCi1lbnYg
PSBFbnZpcm9ubWVudCggRU5WID0gbWFrZV9lbnZpcm9uX3ZhcnMoKSwKLSAgICAgICAgICAgICAg
ICAgICB0b29scGF0aCA9IFsnc2NvbnMtdG9vbHMnXSwKLSAgICAgICAgICAgICAgICAgICB0b29s
cz1bXSApICMsIHRvb2xzPVsnZGVmYXVsdCddICkKLQotaWYgcGxhdGZvcm0gPT0gJ3N1bmNjJzoK
LSAgICBlbnYuVG9vbCggJ3N1bmMrKycgKQotICAgIGVudi5Ub29sKCAnc3VubGluaycgKQotICAg
IGVudi5Ub29sKCAnc3VuYXInICkKLSAgICBlbnYuQXBwZW5kKCBDQ0ZMQUdTID0gWyctbXQnXSAp
Ci1lbGlmIHBsYXRmb3JtID09ICd2YWNwcCc6Ci0gICAgZW52LlRvb2woICdkZWZhdWx0JyApCi0g
ICAgZW52LlRvb2woICdhaXhjYycgKQotICAgIGVudlsnQ1hYJ10gPSAneGxDX3InICAgI3Njb25z
IGRvZXMgbm90IHBpY2stdXAgdGhlIGNvcnJlY3Qgb25lICEKLSAgICAjIHVzaW5nIHhsQ19yIGVu
c3VyZSBtdWx0aS10aHJlYWRpbmcgaXMgZW5hYmxlZDoKLSAgICAjIGh0dHA6Ly9wdWJsaWIuYm91
bGRlci5pYm0uY29tL2luZm9jZW50ZXIvcHNlcmllcy9pbmRleC5qc3A/dG9waWM9L2NvbS5pYm0u
dmFjcHA3YS5kb2MvY29tcGlsZXIvcmVmL2N1c2VsZWN0Lmh0bQotICAgIGVudi5BcHBlbmQoIEND
RkxBR1MgPSAnLXFydHRpPWFsbCcsCi0gICAgICAgICAgICAgICAgTElOS0ZMQUdTPSctYmg6NScg
KSAgIyAtYmg6NSByZW1vdmUgZHVwbGljYXRlIHN5bWJvbCB3YXJuaW5nCi1lbGlmIHBsYXRmb3Jt
ID09ICdtc3ZjNic6Ci0gICAgZW52WydNU1ZTX1ZFUlNJT04nXT0nNi4wJwotICAgIGZvciB0b29s
IGluIFsnbXN2YycsICdtc3ZzJywgJ21zbGluaycsICdtYXNtJywgJ21zbGliJ106Ci0gICAgICAg
IGVudi5Ub29sKCB0b29sICkKLSAgICBlbnZbJ0NYWEZMQUdTJ109Jy1HUiAtR1ggL25vbG9nbyAv
TVQnCi1lbGlmIHBsYXRmb3JtID09ICdtc3ZjNzAnOgotICAgIGVudlsnTVNWU19WRVJTSU9OJ109
JzcuMCcKLSAgICBmb3IgdG9vbCBpbiBbJ21zdmMnLCAnbXN2cycsICdtc2xpbmsnLCAnbWFzbScs
ICdtc2xpYiddOgotICAgICAgICBlbnYuVG9vbCggdG9vbCApCi0gICAgZW52WydDWFhGTEFHUydd
PSctR1IgLUdYIC9ub2xvZ28gL01UJwotZWxpZiBwbGF0Zm9ybSA9PSAnbXN2YzcxJzoKLSAgICBl
bnZbJ01TVlNfVkVSU0lPTiddPSc3LjEnCi0gICAgZm9yIHRvb2wgaW4gWydtc3ZjJywgJ21zdnMn
LCAnbXNsaW5rJywgJ21hc20nLCAnbXNsaWInXToKLSAgICAgICAgZW52LlRvb2woIHRvb2wgKQot
ICAgIGVudlsnQ1hYRkxBR1MnXT0nLUdSIC1HWCAvbm9sb2dvIC9NVCcKLWVsaWYgcGxhdGZvcm0g
PT0gJ21zdmM4MCc6Ci0gICAgZW52WydNU1ZTX1ZFUlNJT04nXT0nOC4wJwotICAgIGZvciB0b29s
IGluIFsnbXN2YycsICdtc3ZzJywgJ21zbGluaycsICdtYXNtJywgJ21zbGliJ106Ci0gICAgICAg
IGVudi5Ub29sKCB0b29sICkKLSAgICBlbnZbJ0NYWEZMQUdTJ109Jy1HUiAtRUhzYyAvbm9sb2dv
IC9NVCcKLWVsaWYgcGxhdGZvcm0gPT0gJ21zdmM5MCc6Ci0gICAgZW52WydNU1ZTX1ZFUlNJT04n
XT0nOS4wJwotICAgICMgU2NvbnMgMS4yIGZhaWxzIHRvIGRldGVjdCB0aGUgY29ycmVjdCBsb2Nh
dGlvbiBvZiB0aGUgcGxhdGZvcm0gU0RLLgotICAgICMgU28gd2UgcHJvcGFnYXRlIHRob3NlIGZy
b20gdGhlIGVudmlyb25tZW50LiBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlCi0gICAgIyB1c2VyIHJ1
biB2Y3ZhcnMzMi5iYXQgYmVmb3JlIGNvbXBpbGluZy4KLSAgICBpZiAnSU5DTFVERScgaW4gb3Mu
ZW52aXJvbjoKLSAgICAgICAgZW52WydFTlYnXVsnSU5DTFVERSddID0gb3MuZW52aXJvblsnSU5D
TFVERSddCi0gICAgaWYgJ0xJQicgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgZW52WydFTlYnXVsn
TElCJ10gPSBvcy5lbnZpcm9uWydMSUInXQotICAgIGZvciB0b29sIGluIFsnbXN2YycsICdtc3Zz
JywgJ21zbGluaycsICdtYXNtJywgJ21zbGliJ106Ci0gICAgICAgIGVudi5Ub29sKCB0b29sICkK
LSAgICBlbnZbJ0NYWEZMQUdTJ109Jy1HUiAtRUhzYyAvbm9sb2dvIC9NVCcKLWVsaWYgcGxhdGZv
cm0gPT0gJ21pbmd3JzoKLSAgICBlbnYuVG9vbCggJ21pbmd3JyApCi0gICAgZW52LkFwcGVuZCgg
Q1BQREVGSU5FUz1bICJXSU4zMiIsICJOREVCVUciLCAiX01UIiBdICkKLWVsaWYgcGxhdGZvcm0u
c3RhcnRzd2l0aCgnbGludXgtZ2NjJyk6Ci0gICAgZW52LlRvb2woICdkZWZhdWx0JyApCi0gICAg
ZW52LkFwcGVuZCggTElCUyA9IFsncHRocmVhZCddLCBDQ0ZMQUdTID0gIi1XYWxsIiApCi0gICAg
ZW52WydTSEFSRURfTElCX0VOQUJMRUQnXSA9IFRydWUKLWVsc2U6Ci0gICAgcHJpbnQgIlVOU1VQ
UE9SVEVEIFBMQVRGT1JNLiIKLSAgICBlbnYuRXhpdCgxKQotCi1lbnYuVG9vbCgndGFyZ3onKQot
ZW52LlRvb2woJ3NyY2Rpc3QnKQotZW52LlRvb2woJ2dsb2J0b29sJykKLQotZW52LkFwcGVuZCgg
Q1BQUEFUSCA9IFsnI2luY2x1ZGUnXSwKLSAgICAgICAgICAgIExJQlBBVEggPSBsaWJfZGlyICkK
LXNob3J0X3BsYXRmb3JtID0gcGxhdGZvcm0KLWlmIHNob3J0X3BsYXRmb3JtLnN0YXJ0c3dpdGgo
J21zdmMnKToKLSAgICBzaG9ydF9wbGF0Zm9ybSA9IHNob3J0X3BsYXRmb3JtWzI6XQotIyBOb3Rl
czogb24gV2luZG93cyB5b3UgbmVlZCB0byByZWJ1aWxkIHRoZSBzb3VyY2UgZm9yIGVhY2ggdmFy
aWFudAotIyBCdWlsZCBzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0aGF0IHlldCBzbyB3ZSBvbmx5
IGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuCi0jIFRoaXMgYWxzbyBmYWlscyBvbiBBSVggYmVjYXVz
ZSBib3RoIGR5bmFtaWMgYW5kIHN0YXRpYyBsaWJyYXJ5IGVuZHMgd2l0aAotIyBleHRlbnNpb24g
LmEuCi1lbnZbJ1NIQVJFRF9MSUJfRU5BQkxFRCddID0gZW52LmdldCgnU0hBUkVEX0xJQl9FTkFC
TEVEJywgRmFsc2UpCi1lbnZbJ0xJQl9QTEFURk9STSddID0gc2hvcnRfcGxhdGZvcm0KLWVudlsn
TElCX0xJTktfVFlQRSddID0gJ2xpYicgICAgIyBzdGF0aWMKLWVudlsnTElCX0NSVU5USU1FJ10g
PSAnbXQnCi1lbnZbJ0xJQl9OQU1FX1NVRkZJWCddID0gJyR7TElCX1BMQVRGT1JNfV8ke0xJQl9M
SU5LX1RZUEV9JHtMSUJfQ1JVTlRJTUV9JyAgIyBtdXN0IG1hdGNoIGF1dG9saW5rIG5hbWluZyBj
b252ZW50aW9uCi1lbnZbJ0pTT05DUFBfVkVSU0lPTiddID0gSlNPTkNQUF9WRVJTSU9OCi1lbnZb
J0JVSUxEX0RJUiddID0gZW52LkRpcihidWlsZF9kaXIpCi1lbnZbJ1JPT1RCVUlMRF9ESVInXSA9
IGVudi5EaXIocm9vdGJ1aWxkX2RpcikKLWVudlsnRElTVF9ESVInXSA9IERJU1RfRElSCi1pZiAn
VGFyR3onIGluIGVudlsnQlVJTERFUlMnXToKLQljbGFzcyBTcmNEaXN0QWRkZXI6Ci0JCWRlZiBf
X2luaXRfXyggc2VsZiwgZW52ICk6Ci0JCQlzZWxmLmVudiA9IGVudgotCQlkZWYgX19jYWxsX18o
IHNlbGYsICphcmdzLCAqKmt3ICk6Ci0JCQlhcHBseSggc2VsZi5lbnYuU3JjRGlzdCwgKHNlbGYu
ZW52WydTUkNESVNUX1RBUkdFVCddLCkgKyBhcmdzLCBrdyApCi0JZW52WydTUkNESVNUX0JVSUxE
RVInXSA9IGVudi5UYXJHegotZWxzZTogIyBJZiB0YXJmaWxlIG1vZHVsZSBpcyBtaXNzaW5nCi0J
Y2xhc3MgU3JjRGlzdEFkZGVyOgotCQlkZWYgX19pbml0X18oIHNlbGYsIGVudiApOgotCQkJcGFz
cwotCQlkZWYgX19jYWxsX18oIHNlbGYsICphcmdzLCAqKmt3ICk6Ci0JCQlwYXNzCi1lbnZbJ1NS
Q0RJU1RfQUREJ10gPSBTcmNEaXN0QWRkZXIoIGVudiApCi1lbnZbJ1NSQ0RJU1RfVEFSR0VUJ10g
PSBvcy5wYXRoLmpvaW4oIERJU1RfRElSLCAnanNvbmNwcC1zcmMtJXMudGFyLmd6JyAlIGVudlsn
SlNPTkNQUF9WRVJTSU9OJ10gKQotICAgICAgICAgICAgICAgICAgICAgIAotZW52X3Rlc3Rpbmcg
PSBlbnYuQ2xvbmUoICkKLWVudl90ZXN0aW5nLkFwcGVuZCggTElCUyA9IFsnanNvbl8ke0xJQl9O
QU1FX1NVRkZJWH0nXSApCi0KLWRlZiBidWlsZEpTT05FeGFtcGxlKCBlbnYsIHRhcmdldF9zb3Vy
Y2VzLCB0YXJnZXRfbmFtZSApOgotICAgIGVudiA9IGVudi5DbG9uZSgpCi0gICAgZW52LkFwcGVu
ZCggQ1BQUEFUSCA9IFsnIyddICkKLSAgICBleGUgPSBlbnYuUHJvZ3JhbSggdGFyZ2V0PXRhcmdl
dF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9dGFyZ2V0X3NvdXJjZXMgKQot
ICAgIGVudlsnU1JDRElTVF9BREQnXSggc291cmNlPVt0YXJnZXRfc291cmNlc10gKQotICAgIGds
b2JhbCBiaW5fZGlyCi0gICAgcmV0dXJuIGVudi5JbnN0YWxsKCBiaW5fZGlyLCBleGUgKQotCi1k
ZWYgYnVpbGRKU09OVGVzdHMoIGVudiwgdGFyZ2V0X3NvdXJjZXMsIHRhcmdldF9uYW1lICk6Ci0g
ICAganNvbnRlc3RzX25vZGUgPSBidWlsZEpTT05FeGFtcGxlKCBlbnYsIHRhcmdldF9zb3VyY2Vz
LCB0YXJnZXRfbmFtZSApCi0gICAgY2hlY2tfYWxpYXNfdGFyZ2V0ID0gZW52LkFsaWFzKCAnY2hl
Y2snLCBqc29udGVzdHNfbm9kZSwgUnVuSlNPTlRlc3RzKCBqc29udGVzdHNfbm9kZSwganNvbnRl
c3RzX25vZGUgKSApCi0gICAgZW52LkFsd2F5c0J1aWxkKCBjaGVja19hbGlhc190YXJnZXQgKQot
Ci1kZWYgYnVpbGRVbml0VGVzdHMoIGVudiwgdGFyZ2V0X3NvdXJjZXMsIHRhcmdldF9uYW1lICk6
Ci0gICAganNvbnRlc3RzX25vZGUgPSBidWlsZEpTT05FeGFtcGxlKCBlbnYsIHRhcmdldF9zb3Vy
Y2VzLCB0YXJnZXRfbmFtZSApCi0gICAgY2hlY2tfYWxpYXNfdGFyZ2V0ID0gZW52LkFsaWFzKCAn
Y2hlY2snLCBqc29udGVzdHNfbm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSdW5Vbml0VGVzdHMoIGpzb250ZXN0c19ub2RlLCBqc29udGVzdHNfbm9kZSApICkKLSAg
ICBlbnYuQWx3YXlzQnVpbGQoIGNoZWNrX2FsaWFzX3RhcmdldCApCi0KLWRlZiBidWlsZExpYnJh
cnkoIGVudiwgdGFyZ2V0X3NvdXJjZXMsIHRhcmdldF9uYW1lICk6Ci0gICAgc3RhdGljX2xpYiA9
IGVudi5TdGF0aWNMaWJyYXJ5KCB0YXJnZXQ9dGFyZ2V0X25hbWUgKyAnXyR7TElCX05BTUVfU1VG
RklYfScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U9dGFyZ2V0
X3NvdXJjZXMgKQotICAgIGdsb2JhbCBsaWJfZGlyCi0gICAgZW52Lkluc3RhbGwoIGxpYl9kaXIs
IHN0YXRpY19saWIgKQotICAgIGlmIGVudlsnU0hBUkVEX0xJQl9FTkFCTEVEJ106Ci0gICAgICAg
IHNoYXJlZF9saWIgPSBlbnYuU2hhcmVkTGlicmFyeSggdGFyZ2V0PXRhcmdldF9uYW1lICsgJ18k
e0xJQl9OQU1FX1NVRkZJWH0nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZT10YXJnZXRfc291cmNlcyApCi0gICAgICAgIGVudi5JbnN0YWxsKCBsaWJfZGly
LCBzaGFyZWRfbGliICkKLSAgICBlbnZbJ1NSQ0RJU1RfQUREJ10oIHNvdXJjZT1bdGFyZ2V0X3Nv
dXJjZXNdICkKLQotRXhwb3J0KCAnZW52IGVudl90ZXN0aW5nIGJ1aWxkSlNPTkV4YW1wbGUgYnVp
bGRMaWJyYXJ5IGJ1aWxkSlNPTlRlc3RzIGJ1aWxkVW5pdFRlc3RzJyApCi0KLWRlZiBidWlsZFBy
b2plY3RJbkRpcmVjdG9yeSggdGFyZ2V0X2RpcmVjdG9yeSApOgotICAgIGdsb2JhbCBidWlsZF9k
aXIKLSAgICB0YXJnZXRfYnVpbGRfZGlyID0gb3MucGF0aC5qb2luKCBidWlsZF9kaXIsIHRhcmdl
dF9kaXJlY3RvcnkgKQotICAgIHRhcmdldCA9IG9zLnBhdGguam9pbiggdGFyZ2V0X2RpcmVjdG9y
eSwgJ3Njb25zY3JpcHQnICkKLSAgICBTQ29uc2NyaXB0KCB0YXJnZXQsIGJ1aWxkX2Rpcj10YXJn
ZXRfYnVpbGRfZGlyLCBkdXBsaWNhdGU9MCApCi0gICAgZW52WydTUkNESVNUX0FERCddKCBzb3Vy
Y2U9W3RhcmdldF0gKQotCi0KLWRlZiBydW5KU09OVGVzdHNfYWN0aW9uKCB0YXJnZXQsIHNvdXJj
ZSA9IE5vbmUsIGVudiA9IE5vbmUgKToKLSAgICAjIEFkZCB0ZXN0IHNjcmlwdHMgdG8gcHl0aG9u
IHBhdGgKLSAgICBqc29udGVzdF9wYXRoID0gRGlyKCAnI3Rlc3QnICkuYWJzcGF0aAotICAgIHN5
cy5wYXRoLmluc2VydCggMCwganNvbnRlc3RfcGF0aCApCi0gICAgZGF0YV9wYXRoID0gb3MucGF0
aC5qb2luKCBqc29udGVzdF9wYXRoLCAnZGF0YScgKQotICAgIGltcG9ydCBydW5qc29udGVzdHMK
LSAgICByZXR1cm4gcnVuanNvbnRlc3RzLnJ1bkFsbFRlc3RzKCBvcy5wYXRoLmFic3BhdGgoc291
cmNlWzBdLnBhdGgpLCBkYXRhX3BhdGggKQotCi1kZWYgcnVuSlNPTlRlc3RzX3N0cmluZyggdGFy
Z2V0LCBzb3VyY2UgPSBOb25lLCBlbnYgPSBOb25lICk6Ci0gICAgcmV0dXJuICdSdW5KU09OVGVz
dHMoIiVzIiknICUgc291cmNlWzBdCi0KLWltcG9ydCBTQ29ucy5BY3Rpb24KLUFjdGlvbkZhY3Rv
cnkgPSBTQ29ucy5BY3Rpb24uQWN0aW9uRmFjdG9yeQotUnVuSlNPTlRlc3RzID0gQWN0aW9uRmFj
dG9yeShydW5KU09OVGVzdHNfYWN0aW9uLCBydW5KU09OVGVzdHNfc3RyaW5nICkKLQotZGVmIHJ1
blVuaXRUZXN0c19hY3Rpb24oIHRhcmdldCwgc291cmNlID0gTm9uZSwgZW52ID0gTm9uZSApOgot
ICAgICMgQWRkIHRlc3Qgc2NyaXB0cyB0byBweXRob24gcGF0aAotICAgIGpzb250ZXN0X3BhdGgg
PSBEaXIoICcjdGVzdCcgKS5hYnNwYXRoCi0gICAgc3lzLnBhdGguaW5zZXJ0KCAwLCBqc29udGVz
dF9wYXRoICkKLSAgICBpbXBvcnQgcnVudW5pdHRlc3RzCi0gICAgcmV0dXJuIHJ1bnVuaXR0ZXN0
cy5ydW5BbGxUZXN0cyggb3MucGF0aC5hYnNwYXRoKHNvdXJjZVswXS5wYXRoKSApCi0KLWRlZiBy
dW5Vbml0VGVzdHNfc3RyaW5nKCB0YXJnZXQsIHNvdXJjZSA9IE5vbmUsIGVudiA9IE5vbmUgKToK
LSAgICByZXR1cm4gJ1J1blVuaXRUZXN0cygiJXMiKScgJSBzb3VyY2VbMF0KLQotUnVuVW5pdFRl
c3RzID0gQWN0aW9uRmFjdG9yeShydW5Vbml0VGVzdHNfYWN0aW9uLCBydW5Vbml0VGVzdHNfc3Ry
aW5nICkKLQotZW52LkFsaWFzKCAnY2hlY2snICkKLQotc3JjZGlzdF9jbWQgPSBlbnZbJ1NSQ0RJ
U1RfQUREJ10oIHNvdXJjZSA9ICIiIgotICAgIEFVVEhPUlMgUkVBRE1FLnR4dCBTQ29uc3RydWN0
Ci0gICAgIiIiLnNwbGl0KCkgKQotZW52LkFsaWFzKCAnc3JjLWRpc3QnLCBzcmNkaXN0X2NtZCAp
Ci0KLWJ1aWxkUHJvamVjdEluRGlyZWN0b3J5KCAnc3JjL2pzb250ZXN0cnVubmVyJyApCi1idWls
ZFByb2plY3RJbkRpcmVjdG9yeSggJ3NyYy9saWJfanNvbicgKQotYnVpbGRQcm9qZWN0SW5EaXJl
Y3RvcnkoICdzcmMvdGVzdF9saWJfanNvbicgKQotI3ByaW50IGVudi5EdW1wKCkKLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS9hbWFsZ2FtYXRlLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9hbWFsZ2FtYXRlLnB5CmluZGV4IGVhYjcy
NGZlMWQ4YmE1OGQ5YzNiNmY3YWUwNjE4ZjI0OGU4NGY3MGUuLmMxMjIxNWE4YjJiNjUxM2VhNzY5
MTVmM2I0MTg5ZDZiMjhkYWU0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvYW1hbGdhbWF0ZS5weQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL2FtYWxnYW1hdGUucHkKQEAgLTEsMTQ4ICsxLDE1NSBAQAotIiIiQW1hbGdhdGUganNv
bi1jcHAgbGlicmFyeSBzb3VyY2VzIGludG8gYSBzaW5nbGUgc291cmNlIGFuZCBoZWFkZXIgZmls
ZS4KKyIiIkFtYWxnYW1hdGUganNvbi1jcHAgbGlicmFyeSBzb3VyY2VzIGludG8gYSBzaW5nbGUg
c291cmNlIGFuZCBoZWFkZXIgZmlsZS4KIAotUmVxdWlyZXMgUHl0aG9uIDIuNgorV29ya3Mgd2l0
aCBweXRob24yLjYrIGFuZCBweXRob24zLjQrLgogCiBFeGFtcGxlIG9mIGludm9jYXRpb24gKG11
c3QgYmUgaW52b2tlZCBmcm9tIGpzb24tY3BwIHRvcCBkaXJlY3RvcnkpOgotcHl0aG9uIGFtYWxn
YXRlLnB5CitweXRob24gYW1hbGdhbWF0ZS5weQogIiIiCiBpbXBvcnQgb3MKIGltcG9ydCBvcy5w
YXRoCiBpbXBvcnQgc3lzCiAKIGNsYXNzIEFtYWxnYW1hdGlvbkZpbGU6Ci0gICAgZGVmIF9faW5p
dF9fKCBzZWxmLCB0b3BfZGlyICk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvcF9kaXIpOgog
ICAgICAgICBzZWxmLnRvcF9kaXIgPSB0b3BfZGlyCiAgICAgICAgIHNlbGYuYmxvY2tzID0gW10K
IAotICAgIGRlZiBhZGRfdGV4dCggc2VsZiwgdGV4dCApOgotICAgICAgICBpZiBub3QgdGV4dC5l
bmRzd2l0aCggJ1xuJyApOgotICAgICAgICAgICAgdGV4dCArPSAnXG4nCi0gICAgICAgIHNlbGYu
YmxvY2tzLmFwcGVuZCggdGV4dCApCi0KLSAgICBkZWYgYWRkX2ZpbGUoIHNlbGYsIHJlbGF0aXZl
X2lucHV0X3BhdGgsIHdyYXBfaW5fY29tbWVudD1GYWxzZSApOgotICAgICAgICBkZWYgYWRkX21h
cmtlciggcHJlZml4ICk6Ci0gICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCAnJyApCi0gICAgICAg
ICAgICBzZWxmLmFkZF90ZXh0KCAnLy8gJyArICcvJyo3MCApCi0gICAgICAgICAgICBzZWxmLmFk
ZF90ZXh0KCAnLy8gJXMgb2YgY29udGVudCBvZiBmaWxlOiAlcycgJSAocHJlZml4LCByZWxhdGl2
ZV9pbnB1dF9wYXRoLnJlcGxhY2UoJ1xcJywnLycpKSApCi0gICAgICAgICAgICBzZWxmLmFkZF90
ZXh0KCAnLy8gJyArICcvJyo3MCApCi0gICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCAnJyApCi0g
ICAgICAgIGFkZF9tYXJrZXIoICdCZWdpbm5pbmcnICkKLSAgICAgICAgZiA9IG9wZW4oIG9zLnBh
dGguam9pbiggc2VsZi50b3BfZGlyLCByZWxhdGl2ZV9pbnB1dF9wYXRoICksICdydCcgKQorICAg
IGRlZiBhZGRfdGV4dChzZWxmLCB0ZXh0KToKKyAgICAgICAgaWYgbm90IHRleHQuZW5kc3dpdGgo
IlxuIik6CisgICAgICAgICAgICB0ZXh0ICs9ICJcbiIKKyAgICAgICAgc2VsZi5ibG9ja3MuYXBw
ZW5kKHRleHQpCisKKyAgICBkZWYgYWRkX2ZpbGUoc2VsZiwgcmVsYXRpdmVfaW5wdXRfcGF0aCwg
d3JhcF9pbl9jb21tZW50PUZhbHNlKToKKyAgICAgICAgZGVmIGFkZF9tYXJrZXIocHJlZml4KToK
KyAgICAgICAgICAgIHNlbGYuYWRkX3RleHQoIiIpCisgICAgICAgICAgICBzZWxmLmFkZF90ZXh0
KCIvLyAiICsgIi8iKjcwKQorICAgICAgICAgICAgc2VsZi5hZGRfdGV4dCgiLy8gJXMgb2YgY29u
dGVudCBvZiBmaWxlOiAlcyIgJSAocHJlZml4LCByZWxhdGl2ZV9pbnB1dF9wYXRoLnJlcGxhY2Uo
IlxcIiwiLyIpKSkKKyAgICAgICAgICAgIHNlbGYuYWRkX3RleHQoIi8vICIgKyAiLyIqNzApCisg
ICAgICAgICAgICBzZWxmLmFkZF90ZXh0KCIiKQorICAgICAgICBhZGRfbWFya2VyKCJCZWdpbm5p
bmciKQorICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4oc2VsZi50b3BfZGlyLCByZWxhdGl2
ZV9pbnB1dF9wYXRoKSwgInJ0IikKICAgICAgICAgY29udGVudCA9IGYucmVhZCgpCiAgICAgICAg
IGlmIHdyYXBfaW5fY29tbWVudDoKLSAgICAgICAgICAgIGNvbnRlbnQgPSAnLypcbicgKyBjb250
ZW50ICsgJ1xuKi8nCi0gICAgICAgIHNlbGYuYWRkX3RleHQoIGNvbnRlbnQgKQorICAgICAgICAg
ICAgY29udGVudCA9ICIvKlxuIiArIGNvbnRlbnQgKyAiXG4qLyIKKyAgICAgICAgc2VsZi5hZGRf
dGV4dChjb250ZW50KQogICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgYWRkX21hcmtlciggJ0Vu
ZCcgKQotICAgICAgICBzZWxmLmFkZF90ZXh0KCAnXG5cblxuXG4nICkKLQotICAgIGRlZiBnZXRf
dmFsdWUoIHNlbGYgKToKLSAgICAgICAgcmV0dXJuICcnLmpvaW4oIHNlbGYuYmxvY2tzICkucmVw
bGFjZSgnXHJcbicsJ1xuJykKLQotICAgIGRlZiB3cml0ZV90byggc2VsZiwgb3V0cHV0X3BhdGgg
KToKLSAgICAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguZGlybmFtZSggb3V0cHV0X3BhdGggKQot
ICAgICAgICBpZiBvdXRwdXRfZGlyIGFuZCBub3Qgb3MucGF0aC5pc2Rpciggb3V0cHV0X2RpciAp
OgotICAgICAgICAgICAgb3MubWFrZWRpcnMoIG91dHB1dF9kaXIgKQotICAgICAgICBmID0gb3Bl
biggb3V0cHV0X3BhdGgsICd3YicgKQotICAgICAgICBmLndyaXRlKCBzZWxmLmdldF92YWx1ZSgp
ICkKKyAgICAgICAgYWRkX21hcmtlcigiRW5kIikKKyAgICAgICAgc2VsZi5hZGRfdGV4dCgiXG5c
blxuXG4iKQorCisgICAgZGVmIGdldF92YWx1ZShzZWxmKToKKyAgICAgICAgcmV0dXJuICIiLmpv
aW4oc2VsZi5ibG9ja3MpLnJlcGxhY2UoIlxyXG4iLCJcbiIpCisKKyAgICBkZWYgd3JpdGVfdG8o
c2VsZiwgb3V0cHV0X3BhdGgpOgorICAgICAgICBvdXRwdXRfZGlyID0gb3MucGF0aC5kaXJuYW1l
KG91dHB1dF9wYXRoKQorICAgICAgICBpZiBvdXRwdXRfZGlyIGFuZCBub3Qgb3MucGF0aC5pc2Rp
cihvdXRwdXRfZGlyKToKKyAgICAgICAgICAgIG9zLm1ha2VkaXJzKG91dHB1dF9kaXIpCisgICAg
ICAgIGYgPSBvcGVuKG91dHB1dF9wYXRoLCAid2IiKQorICAgICAgICBmLndyaXRlKHN0ci5lbmNv
ZGUoc2VsZi5nZXRfdmFsdWUoKSwgJ1VURi04JykpCiAgICAgICAgIGYuY2xvc2UoKQogCi1kZWYg
YW1hbGdhbWF0ZV9zb3VyY2UoIHNvdXJjZV90b3BfZGlyPU5vbmUsCitkZWYgYW1hbGdhbWF0ZV9z
b3VyY2Uoc291cmNlX3RvcF9kaXI9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0
X3NvdXJjZV9wYXRoPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRl
X3BhdGg9Tm9uZSApOgotICAgICIiIlByb2R1Y2VzIGFtYWxnYXRlZCBzb3VyY2UuCisgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlX3BhdGg9Tm9uZSk6CisgICAgIiIiUHJvZHVj
ZXMgYW1hbGdhbWF0ZWQgc291cmNlLgogICAgICAgIFBhcmFtZXRlcnM6CiAgICAgICAgICAgIHNv
dXJjZV90b3BfZGlyOiB0b3AtZGlyZWN0b3J5CiAgICAgICAgICAgIHRhcmdldF9zb3VyY2VfcGF0
aDogb3V0cHV0IC5jcHAgcGF0aAogICAgICAgICAgICBoZWFkZXJfaW5jbHVkZV9wYXRoOiBnZW5l
cmF0ZWQgaGVhZGVyIHBhdGggcmVsYXRpdmUgdG8gdGFyZ2V0X3NvdXJjZV9wYXRoLgogICAgICIi
IgotICAgIHByaW50ICdBbWFsZ2F0aW5nIGhlYWRlci4uLicKLSAgICBoZWFkZXIgPSBBbWFsZ2Ft
YXRpb25GaWxlKCBzb3VyY2VfdG9wX2RpciApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnLy8vIEpz
b24tY3BwIGFtYWxnYXRlZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8p
LicgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyBJdCBpcyBpbnRlbnRlZCB0byBiZSB1c2Vk
IHdpdGggI2luY2x1ZGUgPCVzPicgJSBoZWFkZXJfaW5jbHVkZV9wYXRoICkKLSAgICBoZWFkZXIu
YWRkX2ZpbGUoICdMSUNFTlNFJywgd3JhcF9pbl9jb21tZW50PVRydWUgKQotICAgIGhlYWRlci5h
ZGRfdGV4dCggJyNpZm5kZWYgSlNPTl9BTUFMR0FURURfSF9JTkNMVURFRCcgKQotICAgIGhlYWRl
ci5hZGRfdGV4dCggJyMgZGVmaW5lIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVERUQnICkKLSAgICBo
ZWFkZXIuYWRkX3RleHQoICcvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJj
ZSBmaWxlIGlzIGFtYWxnYXRlZCcgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyB0byBwcmV2
ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4nICkKLSAgICBoZWFkZXIuYWRkX3RleHQoICcj
ZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OJyApCi0gICAgaGVhZGVyLmFkZF9maWxlKCAnaW5j
bHVkZS9qc29uL2NvbmZpZy5oJyApCi0gICAgaGVhZGVyLmFkZF9maWxlKCAnaW5jbHVkZS9qc29u
L2ZvcndhcmRzLmgnICkKLSAgICBoZWFkZXIuYWRkX2ZpbGUoICdpbmNsdWRlL2pzb24vZmVhdHVy
ZXMuaCcgKQotICAgIGhlYWRlci5hZGRfZmlsZSggJ2luY2x1ZGUvanNvbi92YWx1ZS5oJyApCi0g
ICAgaGVhZGVyLmFkZF9maWxlKCAnaW5jbHVkZS9qc29uL3JlYWRlci5oJyApCi0gICAgaGVhZGVy
LmFkZF9maWxlKCAnaW5jbHVkZS9qc29uL3dyaXRlci5oJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0
KCAnI2VuZGlmIC8vaWZuZGVmIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVERUQnICkKLQotICAgIHRh
cmdldF9oZWFkZXJfcGF0aCA9IG9zLnBhdGguam9pbiggb3MucGF0aC5kaXJuYW1lKHRhcmdldF9z
b3VyY2VfcGF0aCksIGhlYWRlcl9pbmNsdWRlX3BhdGggKQotICAgIHByaW50ICdXcml0aW5nIGFt
YWxnYXRlZCBoZWFkZXIgdG8gJXInICUgdGFyZ2V0X2hlYWRlcl9wYXRoCi0gICAgaGVhZGVyLndy
aXRlX3RvKCB0YXJnZXRfaGVhZGVyX3BhdGggKQotCi0gICAgYmFzZSwgZXh0ID0gb3MucGF0aC5z
cGxpdGV4dCggaGVhZGVyX2luY2x1ZGVfcGF0aCApCi0gICAgZm9yd2FyZF9oZWFkZXJfaW5jbHVk
ZV9wYXRoID0gYmFzZSArICctZm9yd2FyZHMnICsgZXh0Ci0gICAgcHJpbnQgJ0FtYWxnYXRpbmcg
Zm9yd2FyZCBoZWFkZXIuLi4nCi0gICAgaGVhZGVyID0gQW1hbGdhbWF0aW9uRmlsZSggc291cmNl
X3RvcF9kaXIgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJy8vLyBKc29uLWNwcCBhbWFsZ2F0ZWQg
Zm9yd2FyZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLicgKQotICAg
IGhlYWRlci5hZGRfdGV4dCggJy8vLyBJdCBpcyBpbnRlbnRlZCB0byBiZSB1c2VkIHdpdGggI2lu
Y2x1ZGUgPCVzPicgJSBmb3J3YXJkX2hlYWRlcl9pbmNsdWRlX3BhdGggKQotICAgIGhlYWRlci5h
ZGRfdGV4dCggJy8vLyBUaGlzIGhlYWRlciBwcm92aWRlcyBmb3J3YXJkIGRlY2xhcmF0aW9uIGZv
ciBhbGwgSnNvbkNwcCB0eXBlcy4nICkKLSAgICBoZWFkZXIuYWRkX2ZpbGUoICdMSUNFTlNFJywg
d3JhcF9pbl9jb21tZW50PVRydWUgKQotICAgIGhlYWRlci5hZGRfdGV4dCggJyNpZm5kZWYgSlNP
Tl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVEJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAn
IyBkZWZpbmUgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVEJyApCi0gICAgaGVhZGVy
LmFkZF90ZXh0KCAnLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IHRoZSBzb3VyY2UgZmls
ZSBpcyBhbWFsZ2F0ZWQnICkKLSAgICBoZWFkZXIuYWRkX3RleHQoICcvLy8gdG8gcHJldmVudCBw
cml2YXRlIGhlYWRlciBpbmNsdXNpb24uJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnI2RlZmlu
ZSBKU09OX0lTX0FNQUxHQU1BVElPTicgKQotICAgIGhlYWRlci5hZGRfZmlsZSggJ2luY2x1ZGUv
anNvbi9jb25maWcuaCcgKQotICAgIGhlYWRlci5hZGRfZmlsZSggJ2luY2x1ZGUvanNvbi9mb3J3
YXJkcy5oJyApCi0gICAgaGVhZGVyLmFkZF90ZXh0KCAnI2VuZGlmIC8vaWZuZGVmIEpTT05fRk9S
V0FSRF9BTUFMR0FURURfSF9JTkNMVURFRCcgKQotCi0gICAgdGFyZ2V0X2ZvcndhcmRfaGVhZGVy
X3BhdGggPSBvcy5wYXRoLmpvaW4oIG9zLnBhdGguZGlybmFtZSh0YXJnZXRfc291cmNlX3BhdGgp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3J3YXJk
X2hlYWRlcl9pbmNsdWRlX3BhdGggKQotICAgIHByaW50ICdXcml0aW5nIGFtYWxnYXRlZCBmb3J3
YXJkIGhlYWRlciB0byAlcicgJSB0YXJnZXRfZm9yd2FyZF9oZWFkZXJfcGF0aAotICAgIGhlYWRl
ci53cml0ZV90byggdGFyZ2V0X2ZvcndhcmRfaGVhZGVyX3BhdGggKQotCi0gICAgcHJpbnQgJ0Ft
YWxnYXRpbmcgc291cmNlLi4uJwotICAgIHNvdXJjZSA9IEFtYWxnYW1hdGlvbkZpbGUoIHNvdXJj
ZV90b3BfZGlyICkKLSAgICBzb3VyY2UuYWRkX3RleHQoICcvLy8gSnNvbi1jcHAgYW1hbGdhdGVk
IHNvdXJjZSAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuJyApCi0gICAgc291cmNl
LmFkZF90ZXh0KCAnLy8vIEl0IGlzIGludGVudGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSA8
JXM+JyAlIGhlYWRlcl9pbmNsdWRlX3BhdGggKQotICAgIHNvdXJjZS5hZGRfZmlsZSggJ0xJQ0VO
U0UnLCB3cmFwX2luX2NvbW1lbnQ9VHJ1ZSApCi0gICAgc291cmNlLmFkZF90ZXh0KCAnJyApCi0g
ICAgc291cmNlLmFkZF90ZXh0KCAnI2luY2x1ZGUgPCVzPicgJSBoZWFkZXJfaW5jbHVkZV9wYXRo
ICkKLSAgICBzb3VyY2UuYWRkX3RleHQoICcnICkKLSAgICBsaWJfanNvbiA9ICdzcmMvbGliX2pz
b24nCi0gICAgc291cmNlLmFkZF9maWxlKCBvcy5wYXRoLmpvaW4obGliX2pzb24sICdqc29uX3Rv
b2wuaCcpICkKLSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBhdGguam9pbihsaWJfanNvbiwgJ2pz
b25fcmVhZGVyLmNwcCcpICkKLSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBhdGguam9pbihsaWJf
anNvbiwgJ2pzb25fYmF0Y2hhbGxvY2F0b3IuaCcpICkKLSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9z
LnBhdGguam9pbihsaWJfanNvbiwgJ2pzb25fdmFsdWVpdGVyYXRvci5pbmwnKSApCi0gICAgc291
cmNlLmFkZF9maWxlKCBvcy5wYXRoLmpvaW4obGliX2pzb24sICdqc29uX3ZhbHVlLmNwcCcpICkK
LSAgICBzb3VyY2UuYWRkX2ZpbGUoIG9zLnBhdGguam9pbihsaWJfanNvbiwgJ2pzb25fd3JpdGVy
LmNwcCcpICkKLQotICAgIHByaW50ICdXcml0aW5nIGFtYWxnYXRlZCBzb3VyY2UgdG8gJXInICUg
dGFyZ2V0X3NvdXJjZV9wYXRoCi0gICAgc291cmNlLndyaXRlX3RvKCB0YXJnZXRfc291cmNlX3Bh
dGggKQorICAgIHByaW50KCJBbWFsZ2FtYXRpbmcgaGVhZGVyLi4uIikKKyAgICBoZWFkZXIgPSBB
bWFsZ2FtYXRpb25GaWxlKHNvdXJjZV90b3BfZGlyKQorICAgIGhlYWRlci5hZGRfdGV4dCgiLy8v
IEpzb24tY3BwIGFtYWxnYW1hdGVkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0LykuIikKKyAgICBoZWFkZXIuYWRkX3RleHQoJy8vLyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1
c2VkIHdpdGggI2luY2x1ZGUgIiVzIicgJSBoZWFkZXJfaW5jbHVkZV9wYXRoKQorICAgIGhlYWRl
ci5hZGRfZmlsZSgiTElDRU5TRSIsIHdyYXBfaW5fY29tbWVudD1UcnVlKQorICAgIGhlYWRlci5h
ZGRfdGV4dCgiI2lmbmRlZiBKU09OX0FNQUxHQU1BVEVEX0hfSU5DTFVERUQiKQorICAgIGhlYWRl
ci5hZGRfdGV4dCgiIyBkZWZpbmUgSlNPTl9BTUFMR0FNQVRFRF9IX0lOQ0xVREVEIikKKyAgICBo
ZWFkZXIuYWRkX3RleHQoIi8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNl
IGZpbGUgaXMgYW1hbGdhbWF0ZWQiKQorICAgIGhlYWRlci5hZGRfdGV4dCgiLy8vIHRvIHByZXZl
bnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLiIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIjZGVm
aW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUv
anNvbi92ZXJzaW9uLmgiKQorICAgIGhlYWRlci5hZGRfZmlsZSgiaW5jbHVkZS9qc29uL2FsbG9j
YXRvci5oIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUvanNvbi9jb25maWcuaCIpCisg
ICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pzb24vZm9yd2FyZHMuaCIpCisgICAgaGVhZGVy
LmFkZF9maWxlKCJpbmNsdWRlL2pzb24vZmVhdHVyZXMuaCIpCisgICAgaGVhZGVyLmFkZF9maWxl
KCJpbmNsdWRlL2pzb24vdmFsdWUuaCIpCisgICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pz
b24vcmVhZGVyLmgiKQorICAgIGhlYWRlci5hZGRfZmlsZSgiaW5jbHVkZS9qc29uL3dyaXRlci5o
IikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1ZGUvanNvbi9hc3NlcnRpb25zLmgiKQorICAg
IGhlYWRlci5hZGRfdGV4dCgiI2VuZGlmIC8vaWZuZGVmIEpTT05fQU1BTEdBTUFURURfSF9JTkNM
VURFRCIpCisKKyAgICB0YXJnZXRfaGVhZGVyX3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5k
aXJuYW1lKHRhcmdldF9zb3VyY2VfcGF0aCksIGhlYWRlcl9pbmNsdWRlX3BhdGgpCisgICAgcHJp
bnQoIldyaXRpbmcgYW1hbGdhbWF0ZWQgaGVhZGVyIHRvICVyIiAlIHRhcmdldF9oZWFkZXJfcGF0
aCkKKyAgICBoZWFkZXIud3JpdGVfdG8odGFyZ2V0X2hlYWRlcl9wYXRoKQorCisgICAgYmFzZSwg
ZXh0ID0gb3MucGF0aC5zcGxpdGV4dChoZWFkZXJfaW5jbHVkZV9wYXRoKQorICAgIGZvcndhcmRf
aGVhZGVyX2luY2x1ZGVfcGF0aCA9IGJhc2UgKyAiLWZvcndhcmRzIiArIGV4dAorICAgIHByaW50
KCJBbWFsZ2FtYXRpbmcgZm9yd2FyZCBoZWFkZXIuLi4iKQorICAgIGhlYWRlciA9IEFtYWxnYW1h
dGlvbkZpbGUoc291cmNlX3RvcF9kaXIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIvLy8gSnNvbi1j
cHAgYW1hbGdhbWF0ZWQgZm9yd2FyZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC8pLiIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCcvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUg
dXNlZCB3aXRoICNpbmNsdWRlICIlcyInICUgZm9yd2FyZF9oZWFkZXJfaW5jbHVkZV9wYXRoKQor
ICAgIGhlYWRlci5hZGRfdGV4dCgiLy8vIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGZvcndhcmQgZGVj
bGFyYXRpb24gZm9yIGFsbCBKc29uQ3BwIHR5cGVzLiIpCisgICAgaGVhZGVyLmFkZF9maWxlKCJM
SUNFTlNFIiwgd3JhcF9pbl9jb21tZW50PVRydWUpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIjaWZu
ZGVmIEpTT05fRk9SV0FSRF9BTUFMR0FNQVRFRF9IX0lOQ0xVREVEIikKKyAgICBoZWFkZXIuYWRk
X3RleHQoIiMgZGVmaW5lIEpTT05fRk9SV0FSRF9BTUFMR0FNQVRFRF9IX0lOQ0xVREVEIikKKyAg
ICBoZWFkZXIuYWRkX3RleHQoIi8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291
cmNlIGZpbGUgaXMgYW1hbGdhbWF0ZWQiKQorICAgIGhlYWRlci5hZGRfdGV4dCgiLy8vIHRvIHBy
ZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLiIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIj
ZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OIikKKyAgICBoZWFkZXIuYWRkX2ZpbGUoImluY2x1
ZGUvanNvbi9jb25maWcuaCIpCisgICAgaGVhZGVyLmFkZF9maWxlKCJpbmNsdWRlL2pzb24vZm9y
d2FyZHMuaCIpCisgICAgaGVhZGVyLmFkZF90ZXh0KCIjZW5kaWYgLy9pZm5kZWYgSlNPTl9GT1JX
QVJEX0FNQUxHQU1BVEVEX0hfSU5DTFVERUQiKQorCisgICAgdGFyZ2V0X2ZvcndhcmRfaGVhZGVy
X3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHRhcmdldF9zb3VyY2VfcGF0aCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcndhcmRf
aGVhZGVyX2luY2x1ZGVfcGF0aCkKKyAgICBwcmludCgiV3JpdGluZyBhbWFsZ2FtYXRlZCBmb3J3
YXJkIGhlYWRlciB0byAlciIgJSB0YXJnZXRfZm9yd2FyZF9oZWFkZXJfcGF0aCkKKyAgICBoZWFk
ZXIud3JpdGVfdG8odGFyZ2V0X2ZvcndhcmRfaGVhZGVyX3BhdGgpCisKKyAgICBwcmludCgiQW1h
bGdhbWF0aW5nIHNvdXJjZS4uLiIpCisgICAgc291cmNlID0gQW1hbGdhbWF0aW9uRmlsZShzb3Vy
Y2VfdG9wX2RpcikKKyAgICBzb3VyY2UuYWRkX3RleHQoIi8vLyBKc29uLWNwcCBhbWFsZ2FtYXRl
ZCBzb3VyY2UgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLiIpCisgICAgc291cmNl
LmFkZF90ZXh0KCcvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICIl
cyInICUgaGVhZGVyX2luY2x1ZGVfcGF0aCkKKyAgICBzb3VyY2UuYWRkX2ZpbGUoIkxJQ0VOU0Ui
LCB3cmFwX2luX2NvbW1lbnQ9VHJ1ZSkKKyAgICBzb3VyY2UuYWRkX3RleHQoIiIpCisgICAgc291
cmNlLmFkZF90ZXh0KCcjaW5jbHVkZSAiJXMiJyAlIGhlYWRlcl9pbmNsdWRlX3BhdGgpCisgICAg
c291cmNlLmFkZF90ZXh0KCIiIgorI2lmbmRlZiBKU09OX0lTX0FNQUxHQU1BVElPTgorI2Vycm9y
ICJDb21waWxlIHdpdGggLUkgUEFUSF9UT19KU09OX0RJUkVDVE9SWSIKKyNlbmRpZgorIiIiKQor
ICAgIHNvdXJjZS5hZGRfdGV4dCgiIikKKyAgICBsaWJfanNvbiA9ICJzcmMvbGliX2pzb24iCisg
ICAgc291cmNlLmFkZF9maWxlKG9zLnBhdGguam9pbihsaWJfanNvbiwgImpzb25fdG9vbC5oIikp
CisgICAgc291cmNlLmFkZF9maWxlKG9zLnBhdGguam9pbihsaWJfanNvbiwgImpzb25fcmVhZGVy
LmNwcCIpKQorICAgIHNvdXJjZS5hZGRfZmlsZShvcy5wYXRoLmpvaW4obGliX2pzb24sICJqc29u
X3ZhbHVlaXRlcmF0b3IuaW5sIikpCisgICAgc291cmNlLmFkZF9maWxlKG9zLnBhdGguam9pbihs
aWJfanNvbiwgImpzb25fdmFsdWUuY3BwIikpCisgICAgc291cmNlLmFkZF9maWxlKG9zLnBhdGgu
am9pbihsaWJfanNvbiwgImpzb25fd3JpdGVyLmNwcCIpKQorCisgICAgcHJpbnQoIldyaXRpbmcg
YW1hbGdhbWF0ZWQgc291cmNlIHRvICVyIiAlIHRhcmdldF9zb3VyY2VfcGF0aCkKKyAgICBzb3Vy
Y2Uud3JpdGVfdG8odGFyZ2V0X3NvdXJjZV9wYXRoKQogCiBkZWYgbWFpbigpOgogICAgIHVzYWdl
ID0gIiIiJXByb2cgW29wdGlvbnNdCi1HZW5lcmF0ZSBhIHNpbmdsZSBhbWFsZ2F0ZWQgc291cmNl
IGFuZCBoZWFkZXIgZmlsZSBmcm9tIHRoZSBzb3VyY2VzLgorR2VuZXJhdGUgYSBzaW5nbGUgYW1h
bGdhbWF0ZWQgc291cmNlIGFuZCBoZWFkZXIgZmlsZSBmcm9tIHRoZSBzb3VyY2VzLgogIiIiCiAg
ICAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCiAgICAgcGFyc2VyID0gT3B0aW9u
UGFyc2VyKHVzYWdlPXVzYWdlKQogICAgIHBhcnNlci5hbGxvd19pbnRlcnNwZXJzZWRfYXJncyA9
IEZhbHNlCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc291cmNlJywgZGVzdD0idGFy
Z2V0X3NvdXJjZV9wYXRoIiwgYWN0aW9uPSdzdG9yZScsIGRlZmF1bHQ9J2Rpc3QvanNvbmNwcC5j
cHAnLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCItcyIsICItLXNvdXJjZSIsIGRlc3Q9InRhcmdl
dF9zb3VyY2VfcGF0aCIsIGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PSJkaXN0L2pzb25jcHAuY3Bw
IiwKICAgICAgICAgaGVscD0iIiJPdXRwdXQgLmNwcCBzb3VyY2UgcGF0aC4gW0RlZmF1bHQ6ICVk
ZWZhdWx0XSIiIikKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWknLCAnLS1pbmNsdWRlJywgZGVz
dD0iaGVhZGVyX2luY2x1ZGVfcGF0aCIsIGFjdGlvbj0nc3RvcmUnLCBkZWZhdWx0PSdqc29uL2pz
b24uaCcsCi0gICAgICAgIGhlbHA9IiIiSGVhZGVyIGluY2x1ZGUgcGF0aC4gVXNlZCB0byBpbmNs
dWRlIHRoZSBoZWFkZXIgZnJvbSB0aGUgYW1hbGdhdGVkIHNvdXJjZSBmaWxlLiBbRGVmYXVsdDog
JWRlZmF1bHRdIiIiKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdCcsICctLXRvcC1kaXInLCBk
ZXN0PSJ0b3BfZGlyIiwgYWN0aW9uPSdzdG9yZScsIGRlZmF1bHQ9b3MuZ2V0Y3dkKCksCisgICAg
cGFyc2VyLmFkZF9vcHRpb24oIi1pIiwgIi0taW5jbHVkZSIsIGRlc3Q9ImhlYWRlcl9pbmNsdWRl
X3BhdGgiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0ianNvbi9qc29uLmgiLAorICAgICAgICBo
ZWxwPSIiIkhlYWRlciBpbmNsdWRlIHBhdGguIFVzZWQgdG8gaW5jbHVkZSB0aGUgaGVhZGVyIGZy
b20gdGhlIGFtYWxnYW1hdGVkIHNvdXJjZSBmaWxlLiBbRGVmYXVsdDogJWRlZmF1bHRdIiIiKQor
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCItdCIsICItLXRvcC1kaXIiLCBkZXN0PSJ0b3BfZGlyIiwg
YWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9b3MuZ2V0Y3dkKCksCiAgICAgICAgIGhlbHA9IiIiU291
cmNlIHRvcC1kaXJlY3RvcnkuIFtEZWZhdWx0OiAlZGVmYXVsdF0iIiIpCiAgICAgcGFyc2VyLmVu
YWJsZV9pbnRlcnNwZXJzZWRfYXJncygpCiAgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJz
ZV9hcmdzKCkKIAotICAgIG1zZyA9IGFtYWxnYW1hdGVfc291cmNlKCBzb3VyY2VfdG9wX2Rpcj1v
cHRpb25zLnRvcF9kaXIsCisgICAgbXNnID0gYW1hbGdhbWF0ZV9zb3VyY2Uoc291cmNlX3RvcF9k
aXI9b3B0aW9ucy50b3BfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRf
c291cmNlX3BhdGg9b3B0aW9ucy50YXJnZXRfc291cmNlX3BhdGgsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlYWRlcl9pbmNsdWRlX3BhdGg9b3B0aW9ucy5oZWFkZXJfaW5jbHVkZV9w
YXRoICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX2luY2x1ZGVfcGF0aD1v
cHRpb25zLmhlYWRlcl9pbmNsdWRlX3BhdGgpCiAgICAgaWYgbXNnOgotICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCBtc2cgKyAnXG4nICkKLSAgICAgICAgc3lzLmV4aXQoIDEgKQorICAgICAgICBz
eXMuc3RkZXJyLndyaXRlKG1zZyArICJcbiIpCisgICAgICAgIHN5cy5leGl0KDEpCiAgICAgZWxz
ZToKLSAgICAgICAgcHJpbnQgJ1NvdXJjZSBzdWNjZXNmdWxseSBhbWFsYWdhdGVkJwotIAotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgcHJpbnQoIlNvdXJjZSBzdWNjZXNzZnVs
bHkgYW1hbGdhbWF0ZWQiKQorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIG1haW4o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9hcHB2ZXlvci55bWwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2FwcHZleW9yLnltbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYjljOGZlM2ZlYTBlOTAxOWRkMGUyNDI3MThmODlkNjBkYjVlMWMxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9hcHB2ZXlvci55bWwKQEAgLTAsMCArMSwzMiBAQAorY2xvbmVfZm9s
ZGVyOiBjOlxwcm9qZWN0c1xqc29uY3BwCisKK2Vudmlyb25tZW50OgorICBtYXRyaXg6CisgICAg
LSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxNQorICAgICAg
Q01BS0VfR0VORVJBVE9SOiBWaXN1YWwgU3R1ZGlvIDE0IDIwMTUKKyAgICAtIEFQUFZFWU9SX0JV
SUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE1CisgICAgICBDTUFLRV9HRU5FUkFU
T1I6IFZpc3VhbCBTdHVkaW8gMTQgMjAxNSBXaW42NAorICAgIC0gQVBQVkVZT1JfQlVJTERfV09S
S0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTcKKyAgICAgIENNQUtFX0dFTkVSQVRPUjogVmlz
dWFsIFN0dWRpbyAxNSAyMDE3CisgICAgLSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZp
c3VhbCBTdHVkaW8gMjAxNworICAgICAgQ01BS0VfR0VORVJBVE9SOiBWaXN1YWwgU3R1ZGlvIDE1
IDIwMTcgV2luNjQKKworYnVpbGRfc2NyaXB0OgorICAtIGNtYWtlIC0tdmVyc2lvbgorICAtIGNk
IGM6XHByb2plY3RzXGpzb25jcHAKKyAgLSBjbWFrZSAtRyAiJUNNQUtFX0dFTkVSQVRPUiUiIC1E
Q01BS0VfSU5TVEFMTF9QUkVGSVg6UEFUSD0lQ0Q6XD0vJS9pbnN0YWxsIC1EQlVJTERfU0hBUkVE
X0xJQlM6Qk9PTD1PTiAuCisgICMgVXNlIGN0ZXN0IHRvIG1ha2UgYSBkYXNoYm9hcmQgYnVpbGQ6
CisgICMgLSBjdGVzdCAtRCBFeHBlcmltZW50YWwoU3RhcnR8VXBkYXRlfENvbmZpZ3VyZXxCdWls
ZHxUZXN0fENvdmVyYWdlfE1lbUNoZWNrfFN1Ym1pdCkKKyAgIyBOT1RFOiBUZXN0aW5nIG9uIHdp
bmRvdyBpcyBub3QgeWV0IGZpbmlzaGVkOgorICAjIC0gY3Rlc3QgLUMgUmVsZWFzZSAtRCBFeHBl
cmltZW50YWxTdGFydCAtRCBFeHBlcmltZW50YWxDb25maWd1cmUgLUQgRXhwZXJpbWVudGFsQnVp
bGQgLUQgRXhwZXJpbWVudGFsVGVzdCAtRCBFeHBlcmltZW50YWxTdWJtaXQKKyAgLSBjdGVzdCAt
QyBSZWxlYXNlIC1EIEV4cGVyaW1lbnRhbFN0YXJ0IC1EIEV4cGVyaW1lbnRhbENvbmZpZ3VyZSAt
RCBFeHBlcmltZW50YWxCdWlsZCAtRCBFeHBlcmltZW50YWxTdWJtaXQKKyAgIyBGaW5hbCBzdGVw
IGlzIHRvIHZlcmlmeSB0aGF0IGluc3RhbGxhdGlvbiBzdWNjZWVkcworICAtIGNtYWtlIC0tYnVp
bGQgLiAtLWNvbmZpZyBSZWxlYXNlIC0tdGFyZ2V0IGluc3RhbGwKKworZGVwbG95OgorICAgIHBy
b3ZpZGVyOiBHaXRIdWIKKyAgICBhdXRoX3Rva2VuOgorICAgICAgICBzZWN1cmU6IEsyVHAxcThw
SVo3cnMwT3QyNFpNV3V3cjEyRXY2VGM2UWtoTWpHUXhvUUczbmcxcFh0Z1Bhc2lKNDVJRFhHZGcK
KyAgICBvbjoKKyAgICAgICAgYnJhbmNoOiBtYXN0ZXIKKyAgICAgICAgYXBwdmV5b3JfcmVwb190
YWc6IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2Lm1ha2VmaWxlIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXYubWFrZWZp
bGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWE0YmU2YTkxMzQ2ODE4Y2QwZTBhMDMzMGUxZThmYmYxZmJhOTVjNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2Lm1ha2VmaWxlCkBAIC0wLDAgKzEsMzUgQEAKKyMg
VGhpcyBpcyBvbmx5IGZvciBqc29uY3BwIGRldmVsb3BlcnMvY29udHJpYnV0b3JzLgorIyBXZSB1
c2UgdGhpcyB0byBzaWduIHJlbGVhc2VzLCBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uLCBldGMuCitW
RVI/PSQoc2hlbGwgY2F0IHZlcnNpb24udHh0KQorCitkZWZhdWx0OgorCUBlY2hvICJWRVI9JHtW
RVJ9Igorc2lnbjoganNvbmNwcC0ke1ZFUn0udGFyLmd6CisJZ3BnIC0tYXJtb3IgLS1kZXRhY2gt
c2lnbiAkPAorCWdwZyAtLXZlcmlmeSAkPC5hc2MKKwkjIFRoZW4gdXBsb2FkIC5hc2MgdG8gdGhl
IHJlbGVhc2UuCitqc29uY3BwLSUudGFyLmd6OgorCWN1cmwgaHR0cHM6Ly9naXRodWIuY29tL29w
ZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcC9hcmNoaXZlLyQqLnRhci5neiAtbyAkQAorZG94Ogor
CXB5dGhvbiBkb3h5YnVpbGQucHkgLS1kb3h5Z2VuPSQkKHdoaWNoIGRveHlnZW4pIC0taW4gZG9j
L3dlYl9kb3h5ZmlsZS5pbgorCXJzeW5jIC12YSAtYyAtLWRlbGV0ZSBkaXN0L2RveHlnZW4vanNv
bmNwcC1hcGktaHRtbC0ke1ZFUn0vIC4uL2pzb25jcHAtZG9jcy9kb3h5Z2VuLworCSMgVGhlbiAn
Z2l0IGFkZCAtQScgYW5kICdnaXQgcHVzaCcgaW4ganNvbmNwcC1kb2NzLgorYnVpbGQ6CisJbWtk
aXIgLXAgYnVpbGQvZGVidWcKKwljZCBidWlsZC9kZWJ1ZzsgY21ha2UgLURDTUFLRV9CVUlMRF9U
WVBFPWRlYnVnIC1EQlVJTERfU0hBUkVEX0xJQlM9T04gLUcgIlVuaXggTWFrZWZpbGVzIiAuLi8u
LgorCW1ha2UgLUMgYnVpbGQvZGVidWcKKworIyBDdXJyZW50bHksIHRoaXMgZGVwZW5kcyBvbiBp
bmNsdWRlL2pzb24vdmVyc2lvbi5oIGdlbmVyYXRlZAorIyBieSBjbWFrZS4KK3Rlc3QtYW1hbGdh
bWF0ZToKKwlweXRob24yLjcgYW1hbGdhbWF0ZS5weQorCXB5dGhvbjMuNCBhbWFsZ2FtYXRlLnB5
CisJY2QgZGlzdDsgZ2NjIC1JLiAtYyBqc29uY3BwLmNwcAorCit2YWxncmluZDoKKwl2YWxncmlu
ZCAtLWVycm9yLWV4aXRjb2RlPTQyIC0tbGVhay1jaGVjaz1mdWxsIC4vYnVpbGQvZGVidWcvc3Jj
L3Rlc3RfbGliX2pzb24vanNvbmNwcF90ZXN0CisKK2NsZWFuOgorCVxybSAtcmYgKi5neiAqLmFz
YyBkaXN0LworCisuUEhPTlk6IGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL19faW5p
dF9fLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9kZXZ0b29scy9fX2luaXRfXy5weQppbmRleCBjOTQ0ZTdjYjBjMDhlM2Rk
MDQyYzFlM2NlMDRmODIwYzAxZDM2NmQ1Li40YTUxZTY1MTQyNWFhN2YzYzljYmJiMjg1ZTkwYzM1
NzljMWY3NzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL19faW5pdF9fLnB5CisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvZGV2dG9vbHMvX19pbml0X18ucHkKQEAgLTEgKzEsNiBAQAotIyBtb2R1bGUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCisjIENvcHlyaWdodCAyMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBh
bmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlvdXIganVy
aXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjIG1vZHVsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9kZXZ0b29scy9hZ2VudF92bXc3Lmpzb24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2FnZW50X3Zt
dzcuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jZDdiNzc3ZmU1ZDQ2MTA4ODZmM2ZkNTdjNjk0OGFiNzliOWU4
MzZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9hZ2VudF92bXc3Lmpzb24KQEAg
LTAsMCArMSwzMyBAQAoreworICAgICJjbWFrZV92YXJpYW50cyIgOiBbCisgICAgICAgIHsibmFt
ZSI6ICJnZW5lcmF0b3IiLAorICAgICAgICAgImdlbmVyYXRvcnMiOiBbCisgICAgICAgICAgICB7
ImdlbmVyYXRvciI6IFsKKyAgICAgICAgICAgICAgICAiVmlzdWFsIFN0dWRpbyA3IC5ORVQgMjAw
MyIsCisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8gOSAyMDA4IiwKKyAgICAgICAgICAg
ICAgICAiVmlzdWFsIFN0dWRpbyA5IDIwMDggV2luNjQiLAorICAgICAgICAgICAgICAgICJWaXN1
YWwgU3R1ZGlvIDEwIiwKKyAgICAgICAgICAgICAgICAiVmlzdWFsIFN0dWRpbyAxMCBXaW42NCIs
CisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8gMTEiLAorICAgICAgICAgICAgICAgICJW
aXN1YWwgU3R1ZGlvIDExIFdpbjY0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB7ImdlbmVyYXRvciI6IFsiTWluR1cgTWFrZWZpbGVzIl0sCisgICAgICAg
ICAgICAgImVudl9wcmVwZW5kIjogW3sicGF0aCI6ICJjOi93dXQvcHJnL01pbkdXL2JpbiJ9XQor
ICAgICAgICAgICAgfQorICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Im5hbWUiOiAi
c2hhcmVkX2RsbCIsCisgICAgICAgICAidmFyaWFibGVzIjogWworICAgICAgICAgICAgWyJCVUlM
RF9TSEFSRURfTElCUz10cnVlIl0sCisgICAgICAgICAgICBbIkJVSUxEX1NIQVJFRF9MSUJTPWZh
bHNlIl0KKyAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsibmFtZSI6ICJidWlsZF90
eXBlIiwKKyAgICAgICAgICJidWlsZF90eXBlcyI6IFsKKyAgICAgICAgICAgICJkZWJ1ZyIsCisg
ICAgICAgICAgICAicmVsZWFzZSIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0KK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYWdlbnRfdm14cC5qc29uIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29s
cy9hZ2VudF92bXhwLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgyYTA3NzNhMmYxZjU1NDVmOTRhMzE1Yjk1
MGVmYzcxM2ViZWUzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYWdlbnRfdm14
cC5qc29uCkBAIC0wLDAgKzEsMjYgQEAKK3sKKyAgICAiY21ha2VfdmFyaWFudHMiIDogWworICAg
ICAgICB7Im5hbWUiOiAiZ2VuZXJhdG9yIiwKKyAgICAgICAgICJnZW5lcmF0b3JzIjogWworICAg
ICAgICAgICAgeyJnZW5lcmF0b3IiOiBbCisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8g
NiIsCisgICAgICAgICAgICAgICAgIlZpc3VhbCBTdHVkaW8gNyIsCisgICAgICAgICAgICAgICAg
IlZpc3VhbCBTdHVkaW8gOCAyMDA1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeyJuYW1lIjogInNoYXJlZF9kbGwiLAor
ICAgICAgICAgInZhcmlhYmxlcyI6IFsKKyAgICAgICAgICAgIFsiQlVJTERfU0hBUkVEX0xJQlM9
dHJ1ZSJdLAorICAgICAgICAgICAgWyJCVUlMRF9TSEFSRURfTElCUz1mYWxzZSJdCisgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7Im5hbWUiOiAiYnVpbGRfdHlwZSIsCisgICAgICAg
ICAiYnVpbGRfdHlwZXMiOiBbCisgICAgICAgICAgICAiZGVidWciLAorICAgICAgICAgICAgInJl
bGVhc2UiCisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2RldnRvb2xzL2FudGdsb2IucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2FudGdsb2IucHkKaW5kZXgg
MzA4MzdiNTc2Y2RlZjNhOWMxZmE2NDFmNDM0NGM5MGY0N2YwMDRlMC4uOTg0Mzc2NThjZTBiN2I5
NjYxMzJiZWFiNDUzNWNiZmU1YzM4NWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9hbnRn
bG9iLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYW50Z2xvYi5weQpAQCAtMSw3ICsxLDExIEBACiAj
IS91c3IvYmluL2VudiBweXRob24KICMgZW5jb2Rpbmc6IHV0Zi04Ci0jIEJhcHRpc3RlIExlcGls
bGV1ciwgMjAwOQorIyBDb3B5cmlnaHQgMjAwOSBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBK
c29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1Ymxp
YyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25j
cHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu
dF9mdW5jdGlvbgogZnJvbSBkaXJjYWNoZSBpbXBvcnQgbGlzdGRpcgogaW1wb3J0IHJlCiBpbXBv
cnQgZm5tYXRjaApAQCAtNTMsOSArNTcsOSBAQCBMSU5LUyA9IERJUl9MSU5LIHwgRklMRV9MSU5L
CiBBTExfTk9fTElOSyA9IERJUiB8IEZJTEUKIEFMTCA9IERJUiB8IEZJTEUgfCBMSU5LUwogCi1f
QU5UX1JFID0gcmUuY29tcGlsZSggcicoL1wqXCovKXwoXCpcKi8pfCgvXCpcKil8KFwqKXwoLyl8
KFteXCovXSopJyApCitfQU5UX1JFID0gcmUuY29tcGlsZShyJygvXCpcKi8pfChcKlwqLyl8KC9c
KlwqKXwoXCopfCgvKXwoW15cKi9dKiknKQogCi1kZWYgYW50X3BhdHRlcm5fdG9fcmUoIGFudF9w
YXR0ZXJuICk6CitkZWYgYW50X3BhdHRlcm5fdG9fcmUoYW50X3BhdHRlcm4pOgogICAgICIiIkdl
bmVyYXRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBmcm9tIHRoZSBhbnQgcGF0dGVybi4KICAgICBN
YXRjaGluZyBjb252ZW50aW9uOgogICAgICoqL2E6IG1hdGNoICdhJywgJ2Rpci9hJywgJ2RpcjEv
ZGlyMi9hJwpAQCAtNjQsMzAgKzY4LDMwIEBAIGRlZiBhbnRfcGF0dGVybl90b19yZSggYW50X3Bh
dHRlcm4gKToKICAgICAiIiIKICAgICByZXggPSBbJ14nXQogICAgIG5leHRfcG9zID0gMAotICAg
IHNlcF9yZXggPSByJyg/Oi98JXMpJyAlIHJlLmVzY2FwZSggb3MucGF0aC5zZXAgKQorICAgIHNl
cF9yZXggPSByJyg/Oi98JXMpJyAlIHJlLmVzY2FwZShvcy5wYXRoLnNlcCkKICMjICAgIHByaW50
ICdDb252ZXJ0aW5nJywgYW50X3BhdHRlcm4KLSAgICBmb3IgbWF0Y2ggaW4gX0FOVF9SRS5maW5k
aXRlciggYW50X3BhdHRlcm4gKToKKyAgICBmb3IgbWF0Y2ggaW4gX0FOVF9SRS5maW5kaXRlcihh
bnRfcGF0dGVybik6CiAjIyAgICAgICAgcHJpbnQgJ01hdGNoZWQnLCBtYXRjaC5ncm91cCgpCiAj
IyAgICAgICAgcHJpbnQgbWF0Y2guc3RhcnQoMCksIG5leHRfcG9zCiAgICAgICAgIGlmIG1hdGNo
LnN0YXJ0KDApICE9IG5leHRfcG9zOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvciggIklu
dmFsaWQgYW50IHBhdHRlcm4iICkKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFs
aWQgYW50IHBhdHRlcm4iKQogICAgICAgICBpZiBtYXRjaC5ncm91cCgxKTogIyAvKiovCi0gICAg
ICAgICAgICByZXguYXBwZW5kKCBzZXBfcmV4ICsgJyg/Oi4qJXMpPycgJSBzZXBfcmV4ICkKKyAg
ICAgICAgICAgIHJleC5hcHBlbmQoc2VwX3JleCArICcoPzouKiVzKT8nICUgc2VwX3JleCkKICAg
ICAgICAgZWxpZiBtYXRjaC5ncm91cCgyKTogIyAqKi8KLSAgICAgICAgICAgIHJleC5hcHBlbmQo
ICcoPzouKiVzKT8nICUgc2VwX3JleCApCisgICAgICAgICAgICByZXguYXBwZW5kKCcoPzouKiVz
KT8nICUgc2VwX3JleCkKICAgICAgICAgZWxpZiBtYXRjaC5ncm91cCgzKTogIyAvKioKLSAgICAg
ICAgICAgIHJleC5hcHBlbmQoIHNlcF9yZXggKyAnLionICkKKyAgICAgICAgICAgIHJleC5hcHBl
bmQoc2VwX3JleCArICcuKicpCiAgICAgICAgIGVsaWYgbWF0Y2guZ3JvdXAoNCk6ICMgKgotICAg
ICAgICAgICAgcmV4LmFwcGVuZCggJ1teLyVzXSonICUgcmUuZXNjYXBlKG9zLnBhdGguc2VwKSAp
CisgICAgICAgICAgICByZXguYXBwZW5kKCdbXi8lc10qJyAlIHJlLmVzY2FwZShvcy5wYXRoLnNl
cCkpCiAgICAgICAgIGVsaWYgbWF0Y2guZ3JvdXAoNSk6ICMgLwotICAgICAgICAgICAgcmV4LmFw
cGVuZCggc2VwX3JleCApCisgICAgICAgICAgICByZXguYXBwZW5kKHNlcF9yZXgpCiAgICAgICAg
IGVsc2U6ICMgc29tZXBhdGgKLSAgICAgICAgICAgIHJleC5hcHBlbmQoIHJlLmVzY2FwZShtYXRj
aC5ncm91cCg2KSkgKQorICAgICAgICAgICAgcmV4LmFwcGVuZChyZS5lc2NhcGUobWF0Y2guZ3Jv
dXAoNikpKQogICAgICAgICBuZXh0X3BvcyA9IG1hdGNoLmVuZCgpCiAgICAgcmV4LmFwcGVuZCgn
JCcpCi0gICAgcmV0dXJuIHJlLmNvbXBpbGUoICcnLmpvaW4oIHJleCApICkKKyAgICByZXR1cm4g
cmUuY29tcGlsZSgnJy5qb2luKHJleCkpCiAKLWRlZiBfYXNfbGlzdCggbCApOgorZGVmIF9hc19s
aXN0KGwpOgogICAgIGlmIGlzaW5zdGFuY2UobCwgYmFzZXN0cmluZyk6CiAgICAgICAgIHJldHVy
biBsLnNwbGl0KCkKICAgICByZXR1cm4gbApAQCAtMTA0LDM3ICsxMDgsMzcgQEAgZGVmIGdsb2Io
ZGlyX3BhdGgsCiAgICAgZGlyX3BhdGggPSBkaXJfcGF0aC5yZXBsYWNlKCcvJyxvcy5wYXRoLnNl
cCkKICAgICBlbnRyeV90eXBlX2ZpbHRlciA9IGVudHJ5X3R5cGUKIAotICAgIGRlZiBpc19wcnVu
ZWRfZGlyKCBkaXJfbmFtZSApOgorICAgIGRlZiBpc19wcnVuZWRfZGlyKGRpcl9uYW1lKToKICAg
ICAgICAgZm9yIHBhdHRlcm4gaW4gcHJ1bmVfZGlyczoKLSAgICAgICAgICAgIGlmIGZubWF0Y2gu
Zm5tYXRjaCggZGlyX25hbWUsIHBhdHRlcm4gKToKKyAgICAgICAgICAgIGlmIGZubWF0Y2guZm5t
YXRjaChkaXJfbmFtZSwgcGF0dGVybik6CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKICAg
ICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgYXBwbHlfZmlsdGVyKCBmdWxsX3BhdGgsIGZp
bHRlcl9yZXhzICk6CisgICAgZGVmIGFwcGx5X2ZpbHRlcihmdWxsX3BhdGgsIGZpbHRlcl9yZXhz
KToKICAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZSBmaWx0ZXIg
cmVndWxhciBleHByZXNzaW9uIG1hdGNoIGZ1bGxfcGF0aC4iIiIKICAgICAgICAgZm9yIHJleCBp
biBmaWx0ZXJfcmV4czoKLSAgICAgICAgICAgIGlmIHJleC5tYXRjaCggZnVsbF9wYXRoICk6Cisg
ICAgICAgICAgICBpZiByZXgubWF0Y2goZnVsbF9wYXRoKToKICAgICAgICAgICAgICAgICByZXR1
cm4gVHJ1ZQogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBnbG9iX2ltcGwoIHJvb3Rf
ZGlyX3BhdGggKToKKyAgICBkZWYgZ2xvYl9pbXBsKHJvb3RfZGlyX3BhdGgpOgogICAgICAgICBj
aGlsZF9kaXJzID0gW3Jvb3RfZGlyX3BhdGhdCiAgICAgICAgIHdoaWxlIGNoaWxkX2RpcnM6CiAg
ICAgICAgICAgICBkaXJfcGF0aCA9IGNoaWxkX2RpcnMucG9wKCkKLSAgICAgICAgICAgIGZvciBl
bnRyeSBpbiBsaXN0ZGlyKCBkaXJfcGF0aCApOgotICAgICAgICAgICAgICAgIGZ1bGxfcGF0aCA9
IG9zLnBhdGguam9pbiggZGlyX3BhdGgsIGVudHJ5ICkKKyAgICAgICAgICAgIGZvciBlbnRyeSBp
biBsaXN0ZGlyKGRpcl9wYXRoKToKKyAgICAgICAgICAgICAgICBmdWxsX3BhdGggPSBvcy5wYXRo
LmpvaW4oZGlyX3BhdGgsIGVudHJ5KQogIyMgICAgICAgICAgICAgICAgcHJpbnQgJ1Rlc3Rpbmc6
JywgZnVsbF9wYXRoLAotICAgICAgICAgICAgICAgIGlzX2RpciA9IG9zLnBhdGguaXNkaXIoIGZ1
bGxfcGF0aCApCi0gICAgICAgICAgICAgICAgaWYgaXNfZGlyIGFuZCBub3QgaXNfcHJ1bmVkX2Rp
ciggZW50cnkgKTogIyBleHBsb3JlIGNoaWxkIGRpcmVjdG9yeSA/CisgICAgICAgICAgICAgICAg
aXNfZGlyID0gb3MucGF0aC5pc2RpcihmdWxsX3BhdGgpCisgICAgICAgICAgICAgICAgaWYgaXNf
ZGlyIGFuZCBub3QgaXNfcHJ1bmVkX2RpcihlbnRyeSk6ICMgZXhwbG9yZSBjaGlsZCBkaXJlY3Rv
cnkgPwogIyMgICAgICAgICAgICAgICAgICAgIHByaW50ICc9PT0+IG1hcmtlZCBmb3IgcmVjdXJz
aW9uJywKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRfZGlycy5hcHBlbmQoIGZ1bGxfcGF0aCAp
Ci0gICAgICAgICAgICAgICAgaW5jbHVkZWQgPSBhcHBseV9maWx0ZXIoIGZ1bGxfcGF0aCwgaW5j
bHVkZV9maWx0ZXIgKQotICAgICAgICAgICAgICAgIHJlamVjdGVkID0gYXBwbHlfZmlsdGVyKCBm
dWxsX3BhdGgsIGV4Y2x1ZGVfZmlsdGVyICkKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRfZGly
cy5hcHBlbmQoZnVsbF9wYXRoKQorICAgICAgICAgICAgICAgIGluY2x1ZGVkID0gYXBwbHlfZmls
dGVyKGZ1bGxfcGF0aCwgaW5jbHVkZV9maWx0ZXIpCisgICAgICAgICAgICAgICAgcmVqZWN0ZWQg
PSBhcHBseV9maWx0ZXIoZnVsbF9wYXRoLCBleGNsdWRlX2ZpbHRlcikKICAgICAgICAgICAgICAg
ICBpZiBub3QgaW5jbHVkZWQgb3IgcmVqZWN0ZWQ6ICMgZG8gbm90IGluY2x1ZGUgZW50cnkgPwog
IyMgICAgICAgICAgICAgICAgICAgIHByaW50ICc9PiBub3QgaW5jbHVkZWQgb3IgcmVqZWN0ZWQn
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgbGluayA9IG9z
LnBhdGguaXNsaW5rKCBmdWxsX3BhdGggKQotICAgICAgICAgICAgICAgIGlzX2ZpbGUgPSBvcy5w
YXRoLmlzZmlsZSggZnVsbF9wYXRoICkKKyAgICAgICAgICAgICAgICBsaW5rID0gb3MucGF0aC5p
c2xpbmsoZnVsbF9wYXRoKQorICAgICAgICAgICAgICAgIGlzX2ZpbGUgPSBvcy5wYXRoLmlzZmls
ZShmdWxsX3BhdGgpCiAgICAgICAgICAgICAgICAgaWYgbm90IGlzX2ZpbGUgYW5kIG5vdCBpc19k
aXI6CiAjIyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJz0+IHVua25vd24gZW50cnkgdHlwZScK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWUKQEAgLTE0NSw1NyArMTQ5LDU3IEBAIGRlZiBn
bG9iKGRpcl9wYXRoLAogIyMgICAgICAgICAgICAgICAgcHJpbnQgJz0+IHR5cGU6ICVkJyAlIGVu
dHJ5X3R5cGUsIAogICAgICAgICAgICAgICAgIGlmIChlbnRyeV90eXBlICYgZW50cnlfdHlwZV9m
aWx0ZXIpICE9IDA6CiAjIyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJyA9PiBLRUVQJwotICAg
ICAgICAgICAgICAgICAgICB5aWVsZCBvcy5wYXRoLmpvaW4oIGRpcl9wYXRoLCBlbnRyeSApCisg
ICAgICAgICAgICAgICAgICAgIHlpZWxkIG9zLnBhdGguam9pbihkaXJfcGF0aCwgZW50cnkpCiAj
IyAgICAgICAgICAgICAgICBlbHNlOgogIyMgICAgICAgICAgICAgICAgICAgIHByaW50ICcgPT4g
VFlQRSBSRUpFQ1RFRCcKLSAgICByZXR1cm4gbGlzdCggZ2xvYl9pbXBsKCBkaXJfcGF0aCApICkK
KyAgICByZXR1cm4gbGlzdChnbG9iX2ltcGwoZGlyX3BhdGgpKQogCiAKIGlmIF9fbmFtZV9fID09
ICJfX21haW5fXyI6CiAgICAgaW1wb3J0IHVuaXR0ZXN0CiAKICAgICBjbGFzcyBBbnRQYXR0ZXJu
VG9SRVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotIyMgICAgICAgIGRlZiB0ZXN0X2NvbnZlcnNp
b24oIHNlbGYgKToKLSMjICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCggJ15zb21lcGF0aCQn
LCBhbnRfcGF0dGVybl90b19yZSggJ3NvbWVwYXRoJyApLnBhdHRlcm4gKQorIyMgICAgICAgIGRl
ZiB0ZXN0X2NvbnZlcnNpb24oc2VsZik6CisjIyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J15zb21lcGF0aCQnLCBhbnRfcGF0dGVybl90b19yZSgnc29tZXBhdGgnKS5wYXR0ZXJuKQogCi0g
ICAgICAgIGRlZiB0ZXN0X21hdGNoaW5nKCBzZWxmICk6Ci0gICAgICAgICAgICB0ZXN0X2Nhc2Vz
ID0gWyAoICdwYXRoJywKKyAgICAgICAgZGVmIHRlc3RfbWF0Y2hpbmcoc2VsZik6CisgICAgICAg
ICAgICB0ZXN0X2Nhc2VzID0gWyAoJ3BhdGgnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJ3BhdGgnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzb21lcGF0aCcsICdw
YXRoc3VmZml4JywgJy9wYXRoJywgJy9wYXRoJ10gKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICggJyoucHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NvbWVwYXRoJywg
J3BhdGhzdWZmaXgnLCAnL3BhdGgnLCAnL3BhdGgnXSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoJyoucHknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3NvdXJjZS5weScs
ICdzb3VyY2UuZXh0LnB5JywgJy5weSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
J3BhdGgvc291cmNlLnB5JywgJy8ucHknLCAnZGlyLnB5L3onLCAnei5weWMnLCAnei5jJ10gKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICggJyoqL3BhdGgnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJ3BhdGgvc291cmNlLnB5JywgJy8ucHknLCAnZGlyLnB5L3onLCAnei5w
eWMnLCAnei5jJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCcqKi9wYXRoJywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWydwYXRoJywgJy9wYXRoJywgJy9hL3BhdGgnLCAn
YzovYS9wYXRoJywgJy9hL2IvcGF0aCcsICcvL2EvcGF0aCcsICcvYS9wYXRoL2IvcGF0aCddLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3BhdGgvJywgJ2EvcGF0aC9iJywgJ2Rpci5w
eS96JywgJ3NvbWVwYXRoJywgJ3BhdGhzdWZmaXgnLCAnYS9zb21lcGF0aCddICksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAoICdwYXRoLyoqJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydwYXRoLycsICdhL3BhdGgvYicsICdkaXIucHkveicsICdzb21lcGF0aCcsICdwYXRo
c3VmZml4JywgJ2Evc29tZXBhdGgnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3Bh
dGgvKionLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3BhdGgvYScsICdwYXRoL3Bh
dGgvYScsICdwYXRoLy8nXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydwYXRoJywg
J3NvbWVwYXRoL2EnLCAnYS9wYXRoJywgJ2EvcGF0aC9hJywgJ3BhdGhzdWZmaXgvYSddICksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAoICcvKiovcGF0aCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsncGF0aCcsICdzb21lcGF0aC9hJywgJ2EvcGF0aCcsICdhL3BhdGgvYScs
ICdwYXRoc3VmZml4L2EnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJy8qKi9wYXRo
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycvcGF0aCcsICcvYS9wYXRoJywgJy9h
L2IvcGF0aC9wYXRoJywgJy9wYXRoL3BhdGgnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWydwYXRoJywgJ3BhdGgvJywgJ2EvcGF0aCcsICcvcGF0aHN1ZmZpeCcsICcvc29tZXBhdGgn
XSApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAnYS9iJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWydwYXRoJywgJ3BhdGgvJywgJ2EvcGF0aCcsICcvcGF0aHN1ZmZpeCcs
ICcvc29tZXBhdGgnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EvYicsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsnYS9iJ10sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnc29tZWEvYicsICdhL2JzdWZmaXgnLCAnYS9iL2MnXSApLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCAnKiovKi5weScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnc29tZWEvYicsICdhL2JzdWZmaXgnLCAnYS9iL2MnXSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoJyoqLyoucHknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Njcmlw
dC5weScsICdzcmMvc2NyaXB0LnB5JywgJ2EvYi9zY3JpcHQucHknLCAnL2EvYi9zY3JpcHQucHkn
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzY3JpcHQucHljJywgJ3NjcmlwdC5w
eW8nLCAnYS5weS9iJ10gKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICggJ3NyYy8qKi8q
LnB5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydzY3JpcHQucHljJywgJ3Njcmlw
dC5weW8nLCAnYS5weS9iJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdzcmMvKiov
Ki5weScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3JjL2EucHknLCAnc3JjL2Rp
ci9hLnB5J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYS9zcmMvYS5weScsICcv
c3JjL2EucHknXSApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2Evc3JjL2EucHkn
LCAnL3NyYy9hLnB5J10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAg
ICAgZm9yIGFudF9wYXR0ZXJuLCBhY2NlcHRlZF9tYXRjaGVzLCByZWplY3RlZF9tYXRjaGVzIGlu
IGxpc3QodGVzdF9jYXNlcyk6Ci0gICAgICAgICAgICAgICAgZGVmIGxvY2FsX3BhdGgoIHBhdGhz
ICk6CisgICAgICAgICAgICAgICAgZGVmIGxvY2FsX3BhdGgocGF0aHMpOgogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gWyBwLnJlcGxhY2UoJy8nLG9zLnBhdGguc2VwKSBmb3IgcCBpbiBwYXRo
cyBdCi0gICAgICAgICAgICAgICAgdGVzdF9jYXNlcy5hcHBlbmQoIChhbnRfcGF0dGVybiwgbG9j
YWxfcGF0aChhY2NlcHRlZF9tYXRjaGVzKSwgbG9jYWxfcGF0aCggcmVqZWN0ZWRfbWF0Y2hlcyAp
KSApCisgICAgICAgICAgICAgICAgdGVzdF9jYXNlcy5hcHBlbmQoKGFudF9wYXR0ZXJuLCBsb2Nh
bF9wYXRoKGFjY2VwdGVkX21hdGNoZXMpLCBsb2NhbF9wYXRoKHJlamVjdGVkX21hdGNoZXMpKSkK
ICAgICAgICAgICAgIGZvciBhbnRfcGF0dGVybiwgYWNjZXB0ZWRfbWF0Y2hlcywgcmVqZWN0ZWRf
bWF0Y2hlcyBpbiB0ZXN0X2Nhc2VzOgotICAgICAgICAgICAgICAgIHJleCA9IGFudF9wYXR0ZXJu
X3RvX3JlKCBhbnRfcGF0dGVybiApCi0gICAgICAgICAgICAgICAgcHJpbnQgJ2FudF9wYXR0ZXJu
OicsIGFudF9wYXR0ZXJuLCAnID0+ICcsIHJleC5wYXR0ZXJuCisgICAgICAgICAgICAgICAgcmV4
ID0gYW50X3BhdHRlcm5fdG9fcmUoYW50X3BhdHRlcm4pCisgICAgICAgICAgICAgICAgcHJpbnQo
J2FudF9wYXR0ZXJuOicsIGFudF9wYXR0ZXJuLCAnID0+ICcsIHJleC5wYXR0ZXJuKQogICAgICAg
ICAgICAgICAgIGZvciBhY2NlcHRlZF9tYXRjaCBpbiBhY2NlcHRlZF9tYXRjaGVzOgotICAgICAg
ICAgICAgICAgICAgICBwcmludCAnQWNjZXB0ZWQ/OicsIGFjY2VwdGVkX21hdGNoCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0XyggcmV4Lm1hdGNoKCBhY2NlcHRlZF9tYXRjaCApIGlz
IG5vdCBOb25lICkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ0FjY2VwdGVkPzonLCBhY2Nl
cHRlZF9tYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJleC5tYXRj
aChhY2NlcHRlZF9tYXRjaCkgaXMgbm90IE5vbmUpCiAgICAgICAgICAgICAgICAgZm9yIHJlamVj
dGVkX21hdGNoIGluIHJlamVjdGVkX21hdGNoZXM6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50
ICdSZWplY3RlZD86JywgcmVqZWN0ZWRfbWF0Y2gKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRfKCByZXgubWF0Y2goIHJlamVjdGVkX21hdGNoICkgaXMgTm9uZSApCisgICAgICAgICAg
ICAgICAgICAgIHByaW50KCdSZWplY3RlZD86JywgcmVqZWN0ZWRfbWF0Y2gpCisgICAgICAgICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXgubWF0Y2gocmVqZWN0ZWRfbWF0Y2gpIGlzIE5v
bmUpCiAKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYmF0
Y2hidWlsZC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvYmF0Y2hidWlsZC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWIw
NjkwZThjNmQ3M2FkMWVlOGIzNjMxY2VmN2Y5OTE1NDdmNDg5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9kZXZ0b29scy9iYXRjaGJ1aWxkLnB5CkBAIC0wLDAgKzEsMjc4IEBACitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBp
dGVydG9vbHMKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBvcy5wYXRoCitpbXBvcnQg
cmUKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdHJpbmcKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBv
cnQgc3lzCitpbXBvcnQgY2dpCisKK2NsYXNzIEJ1aWxkRGVzYzoKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcHJlcGVuZF9lbnZzPU5vbmUsIHZhcmlhYmxlcz1Ob25lLCBidWlsZF90eXBlPU5vbmUs
IGdlbmVyYXRvcj1Ob25lKToKKyAgICAgICAgc2VsZi5wcmVwZW5kX2VudnMgPSBwcmVwZW5kX2Vu
dnMgb3IgW10gIyBbIHsgInZhciI6ICJ2YWx1ZSIgfSBdCisgICAgICAgIHNlbGYudmFyaWFibGVz
ID0gdmFyaWFibGVzIG9yIFtdCisgICAgICAgIHNlbGYuYnVpbGRfdHlwZSA9IGJ1aWxkX3R5cGUK
KyAgICAgICAgc2VsZi5nZW5lcmF0b3IgPSBnZW5lcmF0b3IKKworICAgIGRlZiBtZXJnZWRfd2l0
aChzZWxmLCBidWlsZF9kZXNjKToKKyAgICAgICAgIiIiUmV0dXJucyBhIG5ldyBCdWlsZERlc2Mg
YnkgbWVyZ2luZyBmaWVsZCBjb250ZW50LgorICAgICAgICAgICBQcmVmZXIgYnVpbGRfZGVzYyBm
aWVsZHMgdG8gc2VsZiBmaWVsZHMgZm9yIHNpbmdsZSB2YWx1ZWQgZmllbGQuCisgICAgICAgICIi
IgorICAgICAgICByZXR1cm4gQnVpbGREZXNjKHNlbGYucHJlcGVuZF9lbnZzICsgYnVpbGRfZGVz
Yy5wcmVwZW5kX2VudnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmFyaWFibGVz
ICsgYnVpbGRfZGVzYy52YXJpYWJsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxk
X2Rlc2MuYnVpbGRfdHlwZSBvciBzZWxmLmJ1aWxkX3R5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJ1aWxkX2Rlc2MuZ2VuZXJhdG9yIG9yIHNlbGYuZ2VuZXJhdG9yKQorCisgICAgZGVm
IGVudihzZWxmKToKKyAgICAgICAgZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAg
IGZvciB2YWx1ZXNfYnlfbmFtZSBpbiBzZWxmLnByZXBlbmRfZW52czoKKyAgICAgICAgICAgIGZv
ciB2YXIsIHZhbHVlIGluIGxpc3QodmFsdWVzX2J5X25hbWUuaXRlbXMoKSk6CisgICAgICAgICAg
ICAgICAgdmFyID0gdmFyLnVwcGVyKCkKKyAgICAgICAgICAgICAgICBpZiB0eXBlKHZhbHVlKSBp
cyB1bmljb2RlOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmVuY29kZShzeXMu
Z2V0ZGVmYXVsdGVuY29kaW5nKCkpCisgICAgICAgICAgICAgICAgaWYgdmFyIGluIGVudmlyb246
CisgICAgICAgICAgICAgICAgICAgIGVudmlyb25bdmFyXSA9IHZhbHVlICsgb3MucGF0aHNlcCAr
IGVudmlyb25bdmFyXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
IGVudmlyb25bdmFyXSA9IHZhbHVlCisgICAgICAgIHJldHVybiBlbnZpcm9uCisKKyAgICBkZWYg
Y21ha2VfYXJncyhzZWxmKToKKyAgICAgICAgYXJncyA9IFsiLUQlcyIgJSB2YXIgZm9yIHZhciBp
biBzZWxmLnZhcmlhYmxlc10KKyAgICAgICAgIyBza2lwIGJ1aWxkIHR5cGUgZm9yIFZpc3VhbCBT
dHVkaW8gc29sdXRpb24gYXMgaXQgY2F1c2Ugd2FybmluZworICAgICAgICBpZiBzZWxmLmJ1aWxk
X3R5cGUgYW5kICdWaXN1YWwnIG5vdCBpbiBzZWxmLmdlbmVyYXRvcjoKKyAgICAgICAgICAgIGFy
Z3MuYXBwZW5kKCItRENNQUtFX0JVSUxEX1RZUEU9JXMiICUgc2VsZi5idWlsZF90eXBlKQorICAg
ICAgICBpZiBzZWxmLmdlbmVyYXRvcjoKKyAgICAgICAgICAgIGFyZ3MuZXh0ZW5kKFsnLUcnLCBz
ZWxmLmdlbmVyYXRvcl0pCisgICAgICAgIHJldHVybiBhcmdzCisKKyAgICBkZWYgX19yZXByX18o
c2VsZik6CisgICAgICAgIHJldHVybiAiQnVpbGREZXNjKCVzLCBidWlsZF90eXBlPSVzKSIgJSAg
KCIgIi5qb2luKHNlbGYuY21ha2VfYXJncygpKSwgc2VsZi5idWlsZF90eXBlKQorCitjbGFzcyBC
dWlsZERhdGE6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlc2MsIHdvcmtfZGlyLCBzb3VyY2Vf
ZGlyKToKKyAgICAgICAgc2VsZi5kZXNjID0gZGVzYworICAgICAgICBzZWxmLndvcmtfZGlyID0g
d29ya19kaXIKKyAgICAgICAgc2VsZi5zb3VyY2VfZGlyID0gc291cmNlX2RpcgorICAgICAgICBz
ZWxmLmNtYWtlX2xvZ19wYXRoID0gb3MucGF0aC5qb2luKHdvcmtfZGlyLCAnYmF0Y2hidWlsZF9j
bWFrZS5sb2cnKQorICAgICAgICBzZWxmLmJ1aWxkX2xvZ19wYXRoID0gb3MucGF0aC5qb2luKHdv
cmtfZGlyLCAnYmF0Y2hidWlsZF9idWlsZC5sb2cnKQorICAgICAgICBzZWxmLmNtYWtlX3N1Y2Nl
ZWRlZCA9IEZhbHNlCisgICAgICAgIHNlbGYuYnVpbGRfc3VjY2VlZGVkID0gRmFsc2UKKworICAg
IGRlZiBleGVjdXRlX2J1aWxkKHNlbGYpOgorICAgICAgICBwcmludCgnQnVpbGQgJXMnICUgc2Vs
Zi5kZXNjKQorICAgICAgICBzZWxmLl9tYWtlX25ld193b3JrX2RpcigpCisgICAgICAgIHNlbGYu
Y21ha2Vfc3VjY2VlZGVkID0gc2VsZi5fZ2VuZXJhdGVfbWFrZWZpbGVzKCkKKyAgICAgICAgaWYg
c2VsZi5jbWFrZV9zdWNjZWVkZWQ6CisgICAgICAgICAgICBzZWxmLmJ1aWxkX3N1Y2NlZWRlZCA9
IHNlbGYuX2J1aWxkX3VzaW5nX21ha2VmaWxlcygpCisgICAgICAgIHJldHVybiBzZWxmLmJ1aWxk
X3N1Y2NlZWRlZAorCisgICAgZGVmIF9nZW5lcmF0ZV9tYWtlZmlsZXMoc2VsZik6CisgICAgICAg
IHByaW50KCcgIEdlbmVyYXRpbmcgbWFrZWZpbGVzOiAnLCBlbmQ9JyAnKQorICAgICAgICBjbWQg
PSBbJ2NtYWtlJ10gKyBzZWxmLmRlc2MuY21ha2VfYXJncygpICsgW29zLnBhdGguYWJzcGF0aChz
ZWxmLnNvdXJjZV9kaXIpXQorICAgICAgICBzdWNjZWVkZWQgPSBzZWxmLl9leGVjdXRlX2J1aWxk
X3N1YnByb2Nlc3MoY21kLCBzZWxmLmRlc2MuZW52KCksIHNlbGYuY21ha2VfbG9nX3BhdGgpCisg
ICAgICAgIHByaW50KCdkb25lJyBpZiBzdWNjZWVkZWQgZWxzZSAnRkFJTEVEJykKKyAgICAgICAg
cmV0dXJuIHN1Y2NlZWRlZAorCisgICAgZGVmIF9idWlsZF91c2luZ19tYWtlZmlsZXMoc2VsZik6
CisgICAgICAgIHByaW50KCcgIEJ1aWxkaW5nOicsIGVuZD0nICcpCisgICAgICAgIGNtZCA9IFsn
Y21ha2UnLCAnLS1idWlsZCcsIHNlbGYud29ya19kaXJdCisgICAgICAgIGlmIHNlbGYuZGVzYy5i
dWlsZF90eXBlOgorICAgICAgICAgICAgY21kICs9IFsnLS1jb25maWcnLCBzZWxmLmRlc2MuYnVp
bGRfdHlwZV0KKyAgICAgICAgc3VjY2VlZGVkID0gc2VsZi5fZXhlY3V0ZV9idWlsZF9zdWJwcm9j
ZXNzKGNtZCwgc2VsZi5kZXNjLmVudigpLCBzZWxmLmJ1aWxkX2xvZ19wYXRoKQorICAgICAgICBw
cmludCgnZG9uZScgaWYgc3VjY2VlZGVkIGVsc2UgJ0ZBSUxFRCcpCisgICAgICAgIHJldHVybiBz
dWNjZWVkZWQKKworICAgIGRlZiBfZXhlY3V0ZV9idWlsZF9zdWJwcm9jZXNzKHNlbGYsIGNtZCwg
ZW52LCBsb2dfcGF0aCk6CisgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwg
c3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VULCBjd2Q9c2Vs
Zi53b3JrX2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYp
CisgICAgICAgIHN0ZG91dCwgXyA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgICAgICBzdWNj
ZWVkZWQgPSAocHJvY2Vzcy5yZXR1cm5jb2RlID09IDApCisgICAgICAgIHdpdGggb3Blbihsb2df
cGF0aCwgJ3diJykgYXMgZmxvZzoKKyAgICAgICAgICAgIGxvZyA9ICcgJy5qb2luKGNtZCkgKyAn
XG4nICsgc3Rkb3V0ICsgJ1xuRXhpdCBjb2RlOiAlclxuJyAlIHByb2Nlc3MucmV0dXJuY29kZQor
ICAgICAgICAgICAgZmxvZy53cml0ZShmaXhfZW9sKGxvZykpCisgICAgICAgIHJldHVybiBzdWNj
ZWVkZWQKKworICAgIGRlZiBfbWFrZV9uZXdfd29ya19kaXIoc2VsZik6CisgICAgICAgIGlmIG9z
LnBhdGguaXNkaXIoc2VsZi53b3JrX2Rpcik6CisgICAgICAgICAgICBwcmludCgnICBSZW1vdmlu
ZyB3b3JrIGRpcmVjdG9yeScsIHNlbGYud29ya19kaXIpCisgICAgICAgICAgICBzaHV0aWwucm10
cmVlKHNlbGYud29ya19kaXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKKyAgICAgICAgaWYgbm90IG9z
LnBhdGguaXNkaXIoc2VsZi53b3JrX2Rpcik6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhzZWxm
LndvcmtfZGlyKQorCitkZWYgZml4X2VvbChzdGRvdXQpOgorICAgICIiIkZpeGVzIHdyb25nIEVP
TCBwcm9kdWNlZCBieSBjbWFrZSAtLWJ1aWxkIG9uIFdpbmRvd3MgKFxyXHJcbiBpbnN0ZWFkIG9m
IFxyXG4pLgorICAgICIiIgorICAgIHJldHVybiByZS5zdWIoJ1xyKlxuJywgb3MubGluZXNlcCwg
c3Rkb3V0KQorCitkZWYgbG9hZF9idWlsZF92YXJpYW50c19mcm9tX2NvbmZpZyhjb25maWdfcGF0
aCk6CisgICAgd2l0aCBvcGVuKGNvbmZpZ19wYXRoLCAncmInKSBhcyBmY29uZmlnOgorICAgICAg
ICBkYXRhID0ganNvbi5sb2FkKGZjb25maWcpCisgICAgdmFyaWFudHMgPSBkYXRhWyAnY21ha2Vf
dmFyaWFudHMnIF0KKyAgICBidWlsZF9kZXNjc19ieV9heGlzID0gY29sbGVjdGlvbnMuZGVmYXVs
dGRpY3QobGlzdCkKKyAgICBmb3IgYXhpcyBpbiB2YXJpYW50czoKKyAgICAgICAgYXhpc19uYW1l
ID0gYXhpc1sibmFtZSJdCisgICAgICAgIGJ1aWxkX2Rlc2NzID0gW10KKyAgICAgICAgaWYgImdl
bmVyYXRvcnMiIGluIGF4aXM6CisgICAgICAgICAgICBmb3IgZ2VuZXJhdG9yX2RhdGEgaW4gYXhp
c1siZ2VuZXJhdG9ycyJdOgorICAgICAgICAgICAgICAgIGZvciBnZW5lcmF0b3IgaW4gZ2VuZXJh
dG9yX2RhdGFbImdlbmVyYXRvciJdOgorICAgICAgICAgICAgICAgICAgICBidWlsZF9kZXNjID0g
QnVpbGREZXNjKGdlbmVyYXRvcj1nZW5lcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByZXBlbmRfZW52cz1nZW5lcmF0b3JfZGF0YS5nZXQoImVudl9w
cmVwZW5kIikpCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkX2Rlc2NzLmFwcGVuZChidWlsZF9k
ZXNjKQorICAgICAgICBlbGlmICJ2YXJpYWJsZXMiIGluIGF4aXM6CisgICAgICAgICAgICBmb3Ig
dmFyaWFibGVzIGluIGF4aXNbInZhcmlhYmxlcyJdOgorICAgICAgICAgICAgICAgIGJ1aWxkX2Rl
c2MgPSBCdWlsZERlc2ModmFyaWFibGVzPXZhcmlhYmxlcykKKyAgICAgICAgICAgICAgICBidWls
ZF9kZXNjcy5hcHBlbmQoYnVpbGRfZGVzYykKKyAgICAgICAgZWxpZiAiYnVpbGRfdHlwZXMiIGlu
IGF4aXM6CisgICAgICAgICAgICBmb3IgYnVpbGRfdHlwZSBpbiBheGlzWyJidWlsZF90eXBlcyJd
OgorICAgICAgICAgICAgICAgIGJ1aWxkX2Rlc2MgPSBCdWlsZERlc2MoYnVpbGRfdHlwZT1idWls
ZF90eXBlKQorICAgICAgICAgICAgICAgIGJ1aWxkX2Rlc2NzLmFwcGVuZChidWlsZF9kZXNjKQor
ICAgICAgICBidWlsZF9kZXNjc19ieV9heGlzW2F4aXNfbmFtZV0uZXh0ZW5kKGJ1aWxkX2Rlc2Nz
KQorICAgIHJldHVybiBidWlsZF9kZXNjc19ieV9heGlzCisKK2RlZiBnZW5lcmF0ZV9idWlsZF92
YXJpYW50cyhidWlsZF9kZXNjc19ieV9heGlzKToKKyAgICAiIiJSZXR1cm5zIGEgbGlzdCBvZiBC
dWlsZERlc2MgZ2VuZXJhdGVkIGZvciB0aGUgcGFydGlhbCBCdWlsZERlc2MgZm9yIGVhY2ggYXhp
cy4iIiIKKyAgICBheGlzX25hbWVzID0gbGlzdChidWlsZF9kZXNjc19ieV9heGlzLmtleXMoKSkK
KyAgICBidWlsZF9kZXNjcyA9IFtdCisgICAgZm9yIGF4aXNfbmFtZSwgYXhpc19idWlsZF9kZXNj
cyBpbiBsaXN0KGJ1aWxkX2Rlc2NzX2J5X2F4aXMuaXRlbXMoKSk6CisgICAgICAgIGlmIGxlbihi
dWlsZF9kZXNjcyk6CisgICAgICAgICAgICAjIGZvciBlYWNoIGV4aXN0aW5nIGJ1aWxkX2Rlc2Mg
YW5kIGVhY2ggYXhpcyBidWlsZCBkZXNjLCBjcmVhdGUgYSBuZXcgYnVpbGRfZGVzYworICAgICAg
ICAgICAgbmV3X2J1aWxkX2Rlc2NzID0gW10KKyAgICAgICAgICAgIGZvciBwcm90b3R5cGVfYnVp
bGRfZGVzYywgYXhpc19idWlsZF9kZXNjIGluIGl0ZXJ0b29scy5wcm9kdWN0KGJ1aWxkX2Rlc2Nz
LCBheGlzX2J1aWxkX2Rlc2NzKToKKyAgICAgICAgICAgICAgICBuZXdfYnVpbGRfZGVzY3MuYXBw
ZW5kKHByb3RvdHlwZV9idWlsZF9kZXNjLm1lcmdlZF93aXRoKGF4aXNfYnVpbGRfZGVzYykpCisg
ICAgICAgICAgICBidWlsZF9kZXNjcyA9IG5ld19idWlsZF9kZXNjcworICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgYnVpbGRfZGVzY3MgPSBheGlzX2J1aWxkX2Rlc2NzCisgICAgcmV0dXJuIGJ1
aWxkX2Rlc2NzCisKK0hUTUxfVEVNUExBVEUgPSBzdHJpbmcuVGVtcGxhdGUoJycnPGh0bWw+Cis8
aGVhZD4KKyAgICA8dGl0bGU+JHRpdGxlPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorICAgIHRkLmZhaWxlZCB7YmFja2dyb3VuZC1jb2xvcjojZjA4MDgwO30KKyAgICB0ZC5v
ayB7YmFja2dyb3VuZC1jb2xvcjojYzBlZWMwO30KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8dGFibGUgYm9yZGVyPSIxIj4KKzx0aGVhZD4KKyAgICA8dHI+CisgICAgICAgIDx0aD5W
YXJpYWJsZXM8L3RoPgorICAgICAgICAkdGhfdmFycworICAgIDwvdHI+CisgICAgPHRyPgorICAg
ICAgICA8dGg+QnVpbGQgdHlwZTwvdGg+CisgICAgICAgICR0aF9idWlsZF90eXBlcworICAgIDwv
dHI+Cis8L3RoZWFkPgorPHRib2R5PgorJHRyX2J1aWxkcworPC90Ym9keT4KKzwvdGFibGU+Cis8
L2JvZHk+PC9odG1sPicnJykKKworZGVmIGdlbmVyYXRlX2h0bWxfcmVwb3J0KGh0bWxfcmVwb3J0
X3BhdGgsIGJ1aWxkcyk6CisgICAgcmVwb3J0X2RpciA9IG9zLnBhdGguZGlybmFtZShodG1sX3Jl
cG9ydF9wYXRoKQorICAgICMgVmVydGljYWwgYXhpczogZ2VuZXJhdG9yCisgICAgIyBIb3Jpem9u
dGFsOiB2YXJpYWJsZXMsIHRoZW4gYnVpbGRfdHlwZQorICAgIGJ1aWxkc19ieV9nZW5lcmF0b3Ig
PSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsaXN0KQorICAgIHZhcmlhYmxlcyA9IHNldCgpCisg
ICAgYnVpbGRfdHlwZXNfYnlfdmFyaWFibGUgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChzZXQp
CisgICAgYnVpbGRfYnlfcG9zX2tleSA9IHt9ICMgeyAoZ2VuZXJhdG9yLCB2YXJfa2V5LCBidWls
ZF90eXBlKTogYnVpbGQgfQorICAgIGZvciBidWlsZCBpbiBidWlsZHM6CisgICAgICAgIGJ1aWxk
c19ieV9nZW5lcmF0b3JbYnVpbGQuZGVzYy5nZW5lcmF0b3JdLmFwcGVuZChidWlsZCkKKyAgICAg
ICAgdmFyX2tleSA9IHR1cGxlKHNvcnRlZChidWlsZC5kZXNjLnZhcmlhYmxlcykpCisgICAgICAg
IHZhcmlhYmxlcy5hZGQodmFyX2tleSkKKyAgICAgICAgYnVpbGRfdHlwZXNfYnlfdmFyaWFibGVb
dmFyX2tleV0uYWRkKGJ1aWxkLmRlc2MuYnVpbGRfdHlwZSkKKyAgICAgICAgcG9zX2tleSA9IChi
dWlsZC5kZXNjLmdlbmVyYXRvciwgdmFyX2tleSwgYnVpbGQuZGVzYy5idWlsZF90eXBlKQorICAg
ICAgICBidWlsZF9ieV9wb3Nfa2V5W3Bvc19rZXldID0gYnVpbGQKKyAgICB2YXJpYWJsZXMgPSBz
b3J0ZWQodmFyaWFibGVzKQorICAgIHRoX3ZhcnMgPSBbXQorICAgIHRoX2J1aWxkX3R5cGVzID0g
W10KKyAgICBmb3IgdmFyaWFibGUgaW4gdmFyaWFibGVzOgorICAgICAgICBidWlsZF90eXBlcyA9
IHNvcnRlZChidWlsZF90eXBlc19ieV92YXJpYWJsZVt2YXJpYWJsZV0pCisgICAgICAgIG5iX2J1
aWxkX3R5cGUgPSBsZW4oYnVpbGRfdHlwZXNfYnlfdmFyaWFibGVbdmFyaWFibGVdKQorICAgICAg
ICB0aF92YXJzLmFwcGVuZCgnPHRoIGNvbHNwYW49IiVkIj4lczwvdGg+JyAlIChuYl9idWlsZF90
eXBlLCBjZ2kuZXNjYXBlKCcgJy5qb2luKHZhcmlhYmxlKSkpKQorICAgICAgICBmb3IgYnVpbGRf
dHlwZSBpbiBidWlsZF90eXBlczoKKyAgICAgICAgICAgIHRoX2J1aWxkX3R5cGVzLmFwcGVuZCgn
PHRoPiVzPC90aD4nICUgY2dpLmVzY2FwZShidWlsZF90eXBlKSkKKyAgICB0cl9idWlsZHMgPSBb
XQorICAgIGZvciBnZW5lcmF0b3IgaW4gc29ydGVkKGJ1aWxkc19ieV9nZW5lcmF0b3IpOgorICAg
ICAgICB0ZHMgPSBbICc8dGQ+JXM8L3RkPlxuJyAlIGNnaS5lc2NhcGUoZ2VuZXJhdG9yKSBdCisg
ICAgICAgIGZvciB2YXJpYWJsZSBpbiB2YXJpYWJsZXM6CisgICAgICAgICAgICBidWlsZF90eXBl
cyA9IHNvcnRlZChidWlsZF90eXBlc19ieV92YXJpYWJsZVt2YXJpYWJsZV0pCisgICAgICAgICAg
ICBmb3IgYnVpbGRfdHlwZSBpbiBidWlsZF90eXBlczoKKyAgICAgICAgICAgICAgICBwb3Nfa2V5
ID0gKGdlbmVyYXRvciwgdmFyaWFibGUsIGJ1aWxkX3R5cGUpCisgICAgICAgICAgICAgICAgYnVp
bGQgPSBidWlsZF9ieV9wb3Nfa2V5LmdldChwb3Nfa2V5KQorICAgICAgICAgICAgICAgIGlmIGJ1
aWxkOgorICAgICAgICAgICAgICAgICAgICBjbWFrZV9zdGF0dXMgPSAnb2snIGlmIGJ1aWxkLmNt
YWtlX3N1Y2NlZWRlZCBlbHNlICdGQUlMRUQnCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkX3N0
YXR1cyA9ICdvaycgaWYgYnVpbGQuYnVpbGRfc3VjY2VlZGVkIGVsc2UgJ0ZBSUxFRCcKKyAgICAg
ICAgICAgICAgICAgICAgY21ha2VfbG9nX3VybCA9IG9zLnBhdGgucmVscGF0aChidWlsZC5jbWFr
ZV9sb2dfcGF0aCwgcmVwb3J0X2RpcikKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRfbG9nX3Vy
bCA9IG9zLnBhdGgucmVscGF0aChidWlsZC5idWlsZF9sb2dfcGF0aCwgcmVwb3J0X2RpcikKKyAg
ICAgICAgICAgICAgICAgICAgdGQgPSAnPHRkIGNsYXNzPSIlcyI+PGEgaHJlZj0iJXMiIGNsYXNz
PSIlcyI+Q01ha2U6ICVzPC9hPicgJSAoICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRfc3Rh
dHVzLmxvd2VyKCksIGNtYWtlX2xvZ191cmwsIGNtYWtlX3N0YXR1cy5sb3dlcigpLCBjbWFrZV9z
dGF0dXMpCisgICAgICAgICAgICAgICAgICAgIGlmIGJ1aWxkLmNtYWtlX3N1Y2NlZWRlZDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRkICs9ICc8YnI+PGEgaHJlZj0iJXMiIGNsYXNzPSIlcyI+
QnVpbGQ6ICVzPC9hPicgJSAoICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX2xvZ191
cmwsIGJ1aWxkX3N0YXR1cy5sb3dlcigpLCBidWlsZF9zdGF0dXMpCisgICAgICAgICAgICAgICAg
ICAgIHRkICs9ICc8L3RkPicKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICB0ZCA9ICc8dGQ+PC90ZD4nCisgICAgICAgICAgICAgICAgdGRzLmFwcGVuZCh0ZCkKKyAg
ICAgICAgdHJfYnVpbGRzLmFwcGVuZCgnPHRyPiVzPC90cj4nICUgJ1xuJy5qb2luKHRkcykpCisg
ICAgaHRtbCA9IEhUTUxfVEVNUExBVEUuc3Vic3RpdHV0ZSggICAgICAgIHRpdGxlPSdCYXRjaCBi
dWlsZCByZXBvcnQnLAorICAgICAgICB0aF92YXJzPScgJy5qb2luKHRoX3ZhcnMpLAorICAgICAg
ICB0aF9idWlsZF90eXBlcz0nICcuam9pbih0aF9idWlsZF90eXBlcyksCisgICAgICAgIHRyX2J1
aWxkcz0nXG4nLmpvaW4odHJfYnVpbGRzKSkKKyAgICB3aXRoIG9wZW4oaHRtbF9yZXBvcnRfcGF0
aCwgJ3d0JykgYXMgZmh0bWw6CisgICAgICAgIGZodG1sLndyaXRlKGh0bWwpCisgICAgcHJpbnQo
J0hUTUwgcmVwb3J0IGdlbmVyYXRlZCBpbjonLCBodG1sX3JlcG9ydF9wYXRoKQorCitkZWYgbWFp
bigpOgorICAgIHVzYWdlID0gciIiIiVwcm9nIFdPUktfRElSIFNPVVJDRV9ESVIgQ09ORklHX0pT
T05fUEFUSCBbQ09ORklHMl9KU09OX1BBVEguLi5dCitCdWlsZCBhIGdpdmVuIENNYWtlIGJhc2Vk
IHByb2plY3QgbG9jYXRlZCBpbiBTT1VSQ0VfRElSIHdpdGggbXVsdGlwbGUgZ2VuZXJhdG9ycy9v
cHRpb25zLmRyeV9ydW4KK2FzIGRlc2NyaWJlZCBpbiBDT05GSUdfSlNPTl9QQVRIIGJ1aWxkaW5n
IGluIFdPUktfRElSLgorCitFeGFtcGxlIG9mIGNhbGw6CitweXRob24gZGV2dG9vbHNcYmF0Y2hi
dWlsZC5weSBlOlxidWlsZGJvdHNcanNvbmNwcFxidWlsZCAuIGRldnRvb2xzXGFnZW50X3Ztdzcu
anNvbgorIiIiCisgICAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCisgICAgcGFy
c2VyID0gT3B0aW9uUGFyc2VyKHVzYWdlPXVzYWdlKQorICAgIHBhcnNlci5hbGxvd19pbnRlcnNw
ZXJzZWRfYXJncyA9IFRydWUKKyMgICAgcGFyc2VyLmFkZF9vcHRpb24oJy12JywgJy0tdmVyYm9z
ZScsIGRlc3Q9InZlcmJvc2UiLCBhY3Rpb249J3N0b3JlX3RydWUnLAorIyAgICAgICAgaGVscD0i
IiJCZSB2ZXJib3NlLiIiIikKKyAgICBwYXJzZXIuZW5hYmxlX2ludGVyc3BlcnNlZF9hcmdzKCkK
KyAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIGlmIGxlbihhcmdz
KSA8IDM6CisgICAgICAgIHBhcnNlci5lcnJvcigiTWlzc2luZyBvbmUgb2YgV09SS19ESVIgU09V
UkNFX0RJUiBDT05GSUdfSlNPTl9QQVRILiIpCisgICAgd29ya19kaXIgPSBhcmdzWzBdCisgICAg
c291cmNlX2RpciA9IGFyZ3NbMV0ucnN0cmlwKCcvXFwnKQorICAgIGNvbmZpZ19wYXRocyA9IGFy
Z3NbMjpdCisgICAgZm9yIGNvbmZpZ19wYXRoIGluIGNvbmZpZ19wYXRoczoKKyAgICAgICAgaWYg
bm90IG9zLnBhdGguaXNmaWxlKGNvbmZpZ19wYXRoKToKKyAgICAgICAgICAgIHBhcnNlci5lcnJv
cigiQ2FuIG5vdCByZWFkOiAlciIgJSBjb25maWdfcGF0aCkKKworICAgICMgZ2VuZXJhdGUgYnVp
bGQgdmFyaWFudHMKKyAgICBidWlsZF9kZXNjcyA9IFtdCisgICAgZm9yIGNvbmZpZ19wYXRoIGlu
IGNvbmZpZ19wYXRoczoKKyAgICAgICAgYnVpbGRfZGVzY3NfYnlfYXhpcyA9IGxvYWRfYnVpbGRf
dmFyaWFudHNfZnJvbV9jb25maWcoY29uZmlnX3BhdGgpCisgICAgICAgIGJ1aWxkX2Rlc2NzLmV4
dGVuZChnZW5lcmF0ZV9idWlsZF92YXJpYW50cyhidWlsZF9kZXNjc19ieV9heGlzKSkKKyAgICBw
cmludCgnQnVpbGQgdmFyaWFudHMgKCVkKTonICUgbGVuKGJ1aWxkX2Rlc2NzKSkKKyAgICAjIGFz
c2lnbiBidWlsZCBkaXJlY3RvcnkgZm9yIGVhY2ggdmFyaWFudAorICAgIGlmIG5vdCBvcy5wYXRo
LmlzZGlyKHdvcmtfZGlyKToKKyAgICAgICAgb3MubWFrZWRpcnMod29ya19kaXIpCisgICAgYnVp
bGRzID0gW10KKyAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHdvcmtfZGlyLCAnbWF0cml4LWRp
ci1tYXAudHh0JyksICd3dCcpIGFzIGZtYXRyaXhtYXA6CisgICAgICAgIGZvciBpbmRleCwgYnVp
bGRfZGVzYyBpbiBlbnVtZXJhdGUoYnVpbGRfZGVzY3MpOgorICAgICAgICAgICAgYnVpbGRfZGVz
Y193b3JrX2RpciA9IG9zLnBhdGguam9pbih3b3JrX2RpciwgJyUwM2QnICUgKGluZGV4KzEpKQor
ICAgICAgICAgICAgYnVpbGRzLmFwcGVuZChCdWlsZERhdGEoYnVpbGRfZGVzYywgYnVpbGRfZGVz
Y193b3JrX2Rpciwgc291cmNlX2RpcikpCisgICAgICAgICAgICBmbWF0cml4bWFwLndyaXRlKCcl
czogJXNcbicgJSAoYnVpbGRfZGVzY193b3JrX2RpciwgYnVpbGRfZGVzYykpCisgICAgZm9yIGJ1
aWxkIGluIGJ1aWxkczoKKyAgICAgICAgYnVpbGQuZXhlY3V0ZV9idWlsZCgpCisgICAgaHRtbF9y
ZXBvcnRfcGF0aCA9IG9zLnBhdGguam9pbih3b3JrX2RpciwgJ2JhdGNoYnVpbGQtcmVwb3J0Lmh0
bWwnKQorICAgIGdlbmVyYXRlX2h0bWxfcmVwb3J0KGh0bWxfcmVwb3J0X3BhdGgsIGJ1aWxkcykK
KyAgICBwcmludCgnRG9uZScpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBt
YWluKCkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9maXhlb2wucHkgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRv
b2xzL2ZpeGVvbC5weQppbmRleCA0ZmVkNmNlNGIwMWYzZjdiNWJkOWNmZGVhYzBjZTAyNjEyYzU0
YzhiLi40NTI1MmEwN2Q5MjM3Y2E0MWE3MDQyZDVjN2FmOWI3NDdmYjRkYWQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL2RldnRvb2xzL2ZpeGVvbC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2ZpeGVvbC5weQpA
QCAtMSwxMyArMSwyMCBAQAorIyBDb3B5cmlnaHQgMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5k
IFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9y
IHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlz
ZGljdGlvbi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBwcmludF9mdW5jdGlvbgogaW1wb3J0IG9zLnBhdGgKK2ltcG9ydCBzeXMKIAotZGVmIGZpeF9z
b3VyY2VfZW9sKCBwYXRoLCBpc19kcnlfcnVuID0gVHJ1ZSwgdmVyYm9zZSA9IFRydWUsIGVvbCA9
ICdcbicgKToKK2RlZiBmaXhfc291cmNlX2VvbChwYXRoLCBpc19kcnlfcnVuID0gVHJ1ZSwgdmVy
Ym9zZSA9IFRydWUsIGVvbCA9ICdcbicpOgogICAgICIiIk1ha2VzIHN1cmUgdGhhdCBhbGwgc291
cmNlcyBoYXZlIHRoZSBzcGVjaWZpZWQgZW9sIHNlcXVlbmNlIChkZWZhdWx0OiB1bml4KS4iIiIK
LSAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoIHBhdGggKToKLSAgICAgICAgcmFpc2UgVmFsdWVF
cnJvciggJ1BhdGggIiVzIiBpcyBub3QgYSBmaWxlJyAlIHBhdGggKQorICAgIGlmIG5vdCBvcy5w
YXRoLmlzZmlsZShwYXRoKToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGF0aCAiJXMiIGlz
IG5vdCBhIGZpbGUnICUgcGF0aCkKICAgICB0cnk6CiAgICAgICAgIGYgPSBvcGVuKHBhdGgsICdy
YicpCi0gICAgZXhjZXB0IElPRXJyb3IsIG1zZzoKLSAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVy
ciwgIiVzOiBJL08gRXJyb3I6ICVzIiAlIChmaWxlLCBzdHIobXNnKSkKKyAgICBleGNlcHQgSU9F
cnJvciBhcyBtc2c6CisgICAgICAgIHByaW50KCIlczogSS9PIEVycm9yOiAlcyIgJSAoZmlsZSwg
c3RyKG1zZykpLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgIHJldHVybiBGYWxzZQogICAgIHRy
eToKICAgICAgICAgcmF3X2xpbmVzID0gZi5yZWFkbGluZXMoKQpAQCAtMTUsNyArMjIsNyBAQCBk
ZWYgZml4X3NvdXJjZV9lb2woIHBhdGgsIGlzX2RyeV9ydW4gPSBUcnVlLCB2ZXJib3NlID0gVHJ1
ZSwgZW9sID0gJ1xuJyApOgogICAgICAgICBmLmNsb3NlKCkKICAgICBmaXhlZF9saW5lcyA9IFts
aW5lLnJzdHJpcCgnXHJcbicpICsgZW9sIGZvciBsaW5lIGluIHJhd19saW5lc10KICAgICBpZiBy
YXdfbGluZXMgIT0gZml4ZWRfbGluZXM6Ci0gICAgICAgIHByaW50ICclcyA9PicgJSBwYXRoLAor
ICAgICAgICBwcmludCgnJXMgPT4nICUgcGF0aCwgZW5kPScgJykKICAgICAgICAgaWYgbm90IGlz
X2RyeV9ydW46CiAgICAgICAgICAgICBmID0gb3BlbihwYXRoLCAid2IiKQogICAgICAgICAgICAg
dHJ5OgpAQCAtMjMsMzIgKzMwLDMyIEBAIGRlZiBmaXhfc291cmNlX2VvbCggcGF0aCwgaXNfZHJ5
X3J1biA9IFRydWUsIHZlcmJvc2UgPSBUcnVlLCBlb2wgPSAnXG4nICk6CiAgICAgICAgICAgICBm
aW5hbGx5OgogICAgICAgICAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICBpZiB2ZXJib3NlOgot
ICAgICAgICAgICAgcHJpbnQgaXNfZHJ5X3J1biBhbmQgJyBORUVEIEZJWCcgb3IgJyBGSVhFRCcK
KyAgICAgICAgICAgIHByaW50KGlzX2RyeV9ydW4gYW5kICcgTkVFRCBGSVgnIG9yICcgRklYRUQn
KQogICAgIHJldHVybiBUcnVlCiAjIyAgICAKICMjICAgIAogIyMKLSMjZGVmIF9kb19maXgoIGlz
X2RyeV9ydW4gPSBUcnVlICk6CisjI2RlZiBfZG9fZml4KGlzX2RyeV9ydW4gPSBUcnVlKToKICMj
ICAgIGZyb20gd2FmdG9vbHMgaW1wb3J0IGFudGdsb2IKLSMjICAgIHB5dGhvbl9zb3VyY2VzID0g
YW50Z2xvYi5nbG9iKCAnLicsCisjIyAgICBweXRob25fc291cmNlcyA9IGFudGdsb2IuZ2xvYign
LicsCiAjIyAgICAgICAgaW5jbHVkZXMgPSAnKiovKi5weSAqKi93c2NyaXB0ICoqL3dzY3JpcHRf
YnVpbGQnLAogIyMgICAgICAgIGV4Y2x1ZGVzID0gYW50Z2xvYi5kZWZhdWx0X2V4Y2x1ZGVzICsg
Jy4vd2FmLnB5JywKLSMjICAgICAgICBwcnVuZV9kaXJzID0gYW50Z2xvYi5wcnVuZV9kaXJzICsg
J3dhZi0qIC4vYnVpbGQnICkKKyMjICAgICAgICBwcnVuZV9kaXJzID0gYW50Z2xvYi5wcnVuZV9k
aXJzICsgJ3dhZi0qIC4vYnVpbGQnKQogIyMgICAgZm9yIHBhdGggaW4gcHl0aG9uX3NvdXJjZXM6
Ci0jIyAgICAgICAgX2ZpeF9weXRob25fc291cmNlKCBwYXRoLCBpc19kcnlfcnVuICkKKyMjICAg
ICAgICBfZml4X3B5dGhvbl9zb3VyY2UocGF0aCwgaXNfZHJ5X3J1bikKICMjCi0jIyAgICBjcHBf
c291cmNlcyA9IGFudGdsb2IuZ2xvYiggJy4nLAorIyMgICAgY3BwX3NvdXJjZXMgPSBhbnRnbG9i
Lmdsb2IoJy4nLAogIyMgICAgICAgIGluY2x1ZGVzID0gJyoqLyouY3BwICoqLyouaCAqKi8qLmlu
bCcsCi0jIyAgICAgICAgcHJ1bmVfZGlycyA9IGFudGdsb2IucHJ1bmVfZGlycyArICd3YWYtKiAu
L2J1aWxkJyApCisjIyAgICAgICAgcHJ1bmVfZGlycyA9IGFudGdsb2IucHJ1bmVfZGlycyArICd3
YWYtKiAuL2J1aWxkJykKICMjICAgIGZvciBwYXRoIGluIGNwcF9zb3VyY2VzOgotIyMgICAgICAg
IF9maXhfc291cmNlX2VvbCggcGF0aCwgaXNfZHJ5X3J1biApCisjIyAgICAgICAgX2ZpeF9zb3Vy
Y2VfZW9sKHBhdGgsIGlzX2RyeV9ydW4pCiAjIwogIyMKICMjZGVmIGRyeV9maXgoY29udGV4dCk6
Ci0jIyAgICBfZG9fZml4KCBpc19kcnlfcnVuID0gVHJ1ZSApCisjIyAgICBfZG9fZml4KGlzX2Ry
eV9ydW4gPSBUcnVlKQogIyMKICMjZGVmIGZpeChjb250ZXh0KToKLSMjICAgIF9kb19maXgoIGlz
X2RyeV9ydW4gPSBGYWxzZSApCisjIyAgICBfZG9fZml4KGlzX2RyeV9ydW4gPSBGYWxzZSkKICMj
CiAjI2RlZiBzaHV0ZG93bigpOgogIyMgICAgcGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29s
cy9saWNlbnNldXBkYXRlci5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvbGljZW5zZXVwZGF0ZXIucHkKaW5k
ZXggODY2ZWFkYTIyNjFjNzk1YmMxMGRjYzk1ZmY1MmFhN2M5YWZmNWUzNi4uMzZiZGI1YzA5YjYx
Yzk4NDA4N2U0MWYzM2M2YTllYzYzYWEwNzM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy9s
aWNlbnNldXBkYXRlci5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RldnRvb2xzL2xpY2Vuc2V1cGRhdGVyLnB5CkBA
IC0xLDE4ICsxLDE5IEBACiAiIiJVcGRhdGVzIHRoZSBsaWNlbnNlIHRleHQgaW4gc291cmNlIGZp
bGUuCiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogIyBBbiBl
eGlzdGluZyBsaWNlbnNlIGlzIGZvdW5kIGlmIHRoZSBmaWxlIHN0YXJ0cyB3aXRoIHRoZSBzdHJp
bmcgYmVsb3csCiAjIGFuZCBlbmRzIHdpdGggdGhlIGZpcnN0IGJsYW5rIGxpbmUuCiBMSUNFTlNF
X0JFR0lOID0gIi8vIENvcHlyaWdodCAiCiAKLUJSSUVGX0xJQ0VOU0UgPSBMSUNFTlNFX0JFR0lO
ICsgIiIiMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorQlJJRUZfTElDRU5TRSA9IExJQ0VO
U0VfQkVHSU4gKyAiIiIyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNw
cCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRv
bWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4K
IC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3Bw
LnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKICIiIi5yZXBsYWNlKCdcclxuJywnXG4nKQogCi1k
ZWYgdXBkYXRlX2xpY2Vuc2UoIHBhdGgsIGRyeV9ydW4sIHNob3dfZGlmZiApOgorZGVmIHVwZGF0
ZV9saWNlbnNlKHBhdGgsIGRyeV9ydW4sIHNob3dfZGlmZik6CiAgICAgIiIiVXBkYXRlIHRoZSBs
aWNlbnNlIHN0YXRlbWVudCBpbiB0aGUgc3BlY2lmaWVkIGZpbGUuCiAgICAgUGFyYW1ldGVyczoK
ICAgICAgIHBhdGg6IHBhdGggb2YgdGhlIEMrKyBzb3VyY2UgZmlsZSB0byB1cGRhdGUuCkBAIC0y
MSwyOCArMjIsMjggQEAgZGVmIHVwZGF0ZV9saWNlbnNlKCBwYXRoLCBkcnlfcnVuLCBzaG93X2Rp
ZmYgKToKICAgICAgIHNob3dfZGlmZjogaWYgVHJ1ZSwgcHJpbnQgdGhlIHBhdGggb2YgdGhlIGZp
bGUgdGhhdCB3b3VsZCBiZSBtb2RpZmllZCwKICAgICAgICAgICAgICAgICAgYXMgd2VsbCBhcyB0
aGUgY2hhbmdlIG1hZGUgdG8gdGhlIGZpbGUuIAogICAgICIiIgotICAgIHdpdGggb3BlbiggcGF0
aCwgJ3J0JyApIGFzIGZpbjoKKyAgICB3aXRoIG9wZW4ocGF0aCwgJ3J0JykgYXMgZmluOgogICAg
ICAgICBvcmlnaW5hbF90ZXh0ID0gZmluLnJlYWQoKS5yZXBsYWNlKCdcclxuJywnXG4nKQogICAg
ICAgICBuZXdsaW5lID0gZmluLm5ld2xpbmVzIGFuZCBmaW4ubmV3bGluZXNbMF0gb3IgJ1xuJwot
ICAgIGlmIG5vdCBvcmlnaW5hbF90ZXh0LnN0YXJ0c3dpdGgoIExJQ0VOU0VfQkVHSU4gKToKKyAg
ICBpZiBub3Qgb3JpZ2luYWxfdGV4dC5zdGFydHN3aXRoKExJQ0VOU0VfQkVHSU4pOgogICAgICAg
ICAjIE5vIGV4aXN0aW5nIGxpY2Vuc2UgZm91bmQgPT4gcHJlcGVuZCBpdAogICAgICAgICBuZXdf
dGV4dCA9IEJSSUVGX0xJQ0VOU0UgKyBvcmlnaW5hbF90ZXh0CiAgICAgZWxzZToKLSAgICAgICAg
bGljZW5zZV9lbmRfaW5kZXggPSBvcmlnaW5hbF90ZXh0LmluZGV4KCAnXG5cbicgKSAjIHNlYXJj
aCBmaXJzdCBibGFuayBsaW5lCisgICAgICAgIGxpY2Vuc2VfZW5kX2luZGV4ID0gb3JpZ2luYWxf
dGV4dC5pbmRleCgnXG5cbicpICMgc2VhcmNoIGZpcnN0IGJsYW5rIGxpbmUKICAgICAgICAgbmV3
X3RleHQgPSBCUklFRl9MSUNFTlNFICsgb3JpZ2luYWxfdGV4dFtsaWNlbnNlX2VuZF9pbmRleCsy
Ol0KICAgICBpZiBvcmlnaW5hbF90ZXh0ICE9IG5ld190ZXh0OgogICAgICAgICBpZiBub3QgZHJ5
X3J1bjoKLSAgICAgICAgICAgIHdpdGggb3BlbiggcGF0aCwgJ3diJyApIGFzIGZvdXQ6Ci0gICAg
ICAgICAgICAgICAgZm91dC53cml0ZSggbmV3X3RleHQucmVwbGFjZSgnXG4nLCBuZXdsaW5lICkg
KQotICAgICAgICBwcmludCAnVXBkYXRlZCcsIHBhdGgKKyAgICAgICAgICAgIHdpdGggb3Blbihw
YXRoLCAnd2InKSBhcyBmb3V0OgorICAgICAgICAgICAgICAgIGZvdXQud3JpdGUobmV3X3RleHQu
cmVwbGFjZSgnXG4nLCBuZXdsaW5lKSkKKyAgICAgICAgcHJpbnQoJ1VwZGF0ZWQnLCBwYXRoKQog
ICAgICAgICBpZiBzaG93X2RpZmY6CiAgICAgICAgICAgICBpbXBvcnQgZGlmZmxpYgotICAgICAg
ICAgICAgcHJpbnQgJ1xuJy5qb2luKCBkaWZmbGliLnVuaWZpZWRfZGlmZiggb3JpZ2luYWxfdGV4
dC5zcGxpdCgnXG4nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld190ZXh0LnNwbGl0KCdcbicpICkgKQorICAgICAgICAgICAgcHJpbnQoJ1xu
Jy5qb2luKGRpZmZsaWIudW5pZmllZF9kaWZmKG9yaWdpbmFsX3RleHQuc3BsaXQoJ1xuJyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfdGV4
dC5zcGxpdCgnXG4nKSkpKQogICAgICAgICByZXR1cm4gVHJ1ZQogICAgIHJldHVybiBGYWxzZQog
Ci1kZWYgdXBkYXRlX2xpY2Vuc2VfaW5fc291cmNlX2RpcmVjdG9yaWVzKCBzb3VyY2VfZGlycywg
ZHJ5X3J1biwgc2hvd19kaWZmICk6CitkZWYgdXBkYXRlX2xpY2Vuc2VfaW5fc291cmNlX2RpcmVj
dG9yaWVzKHNvdXJjZV9kaXJzLCBkcnlfcnVuLCBzaG93X2RpZmYpOgogICAgICIiIlVwZGF0ZXMg
bGljZW5zZSB0ZXh0IGluIEMrKyBzb3VyY2UgZmlsZXMgZm91bmQgaW4gZGlyZWN0b3J5IHNvdXJj
ZV9kaXJzLgogICAgIFBhcmFtZXRlcnM6CiAgICAgICBzb3VyY2VfZGlyczogbGlzdCBvZiBkaXJl
Y3RvcnkgdG8gc2NhbiBmb3IgQysrIHNvdXJjZXMuIERpcmVjdG9yaWVzIGFyZQpAQCAtNTUsMTEg
KzU2LDExIEBAIGRlZiB1cGRhdGVfbGljZW5zZV9pbl9zb3VyY2VfZGlyZWN0b3JpZXMoIHNvdXJj
ZV9kaXJzLCBkcnlfcnVuLCBzaG93X2RpZmYgKToKICAgICBmcm9tIGRldnRvb2xzIGltcG9ydCBh
bnRnbG9iCiAgICAgcHJ1bmVfZGlycyA9IGFudGdsb2IucHJ1bmVfZGlycyArICdzY29ucy1sb2Nh
bCogLi9idWlsZCogLi9saWJzIC4vZGlzdCcKICAgICBmb3Igc291cmNlX2RpciBpbiBzb3VyY2Vf
ZGlyczoKLSAgICAgICAgY3BwX3NvdXJjZXMgPSBhbnRnbG9iLmdsb2IoIHNvdXJjZV9kaXIsCisg
ICAgICAgIGNwcF9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKHNvdXJjZV9kaXIsCiAgICAgICAgICAg
ICBpbmNsdWRlcyA9ICcnJyoqLyouaCAqKi8qLmNwcCAqKi8qLmlubCcnJywKLSAgICAgICAgICAg
IHBydW5lX2RpcnMgPSBwcnVuZV9kaXJzICkKKyAgICAgICAgICAgIHBydW5lX2RpcnMgPSBwcnVu
ZV9kaXJzKQogICAgICAgICBmb3Igc291cmNlIGluIGNwcF9zb3VyY2VzOgotICAgICAgICAgICAg
dXBkYXRlX2xpY2Vuc2UoIHNvdXJjZSwgZHJ5X3J1biwgc2hvd19kaWZmICkKKyAgICAgICAgICAg
IHVwZGF0ZV9saWNlbnNlKHNvdXJjZSwgZHJ5X3J1biwgc2hvd19kaWZmKQogCiBkZWYgbWFpbigp
OgogICAgIHVzYWdlID0gIiIiJXByb2cgRElSIFtESVIyLi4uXQpAQCAtODIsOCArODMsOCBAQCBw
eXRob24gZGV2dG9vbHNcbGljZW5zZXVwZGF0ZXIucHkgaW5jbHVkZSBzcmMKICAgICAgICAgaGVs
cD0iIiJPbiB1cGRhdGUsIHNob3cgY2hhbmdlIG1hZGUgdG8gdGhlIGZpbGUuIiIiKQogICAgIHBh
cnNlci5lbmFibGVfaW50ZXJzcGVyc2VkX2FyZ3MoKQogICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJz
ZXIucGFyc2VfYXJncygpCi0gICAgdXBkYXRlX2xpY2Vuc2VfaW5fc291cmNlX2RpcmVjdG9yaWVz
KCBhcmdzLCBvcHRpb25zLmRyeV9ydW4sIG9wdGlvbnMuc2hvd19kaWZmICkKLSAgICBwcmludCAn
RG9uZScKKyAgICB1cGRhdGVfbGljZW5zZV9pbl9zb3VyY2VfZGlyZWN0b3JpZXMoYXJncywgb3B0
aW9ucy5kcnlfcnVuLCBvcHRpb25zLnNob3dfZGlmZikKKyAgICBwcmludCgnRG9uZScpCiAKIGlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgaW1wb3J0IHN5cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9kZXZ0b29scy90YXJiYWxsLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kZXZ0b29scy90YXJiYWxsLnB5CmluZGV4IGNj
YmRhMzk0MjU1YjU4MDYxYjJjZDUwODY3MTczMDQxNzVmYmRiNmQuLjNjMGJhNjVlNzExYzA3MTcy
ZjU2MmVhYzA5NjBhZjlhYmYyODlmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZGV2dG9vbHMvdGFyYmFs
bC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2RldnRvb2xzL3RhcmJhbGwucHkKQEAgLTEsNSArMSwxMCBAQAotaW1w
b3J0IG9zLnBhdGgKLWltcG9ydCBnemlwCisjIENvcHlyaWdodCAyMDEwIEJhcHRpc3RlIExlcGls
bGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGlj
ZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlv
dXIganVyaXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCitmcm9tIGNvbnRleHRs
aWIgaW1wb3J0IGNsb3NpbmcKK2ltcG9ydCBvcwogaW1wb3J0IHRhcmZpbGUKIAogVEFSR1pfREVG
QVVMVF9DT01QUkVTU0lPTl9MRVZFTCA9IDkKQEAgLTEzLDQxICsxOCwzNSBAQCBkZWYgbWFrZV90
YXJiYWxsKHRhcmJhbGxfcGF0aCwgc291cmNlcywgYmFzZV9kaXIsIHByZWZpeF9kaXI9JycpOgog
ICAgIHByZWZpeF9kaXI6IGFsbCBmaWxlcyBzdG9yZWQgaW4gdGhlIHRhcmJhbGwgYmUgc3ViLWRp
cmVjdG9yeSBvZiBwcmVmaXhfZGlyLiBTZXQgdG8gJycKICAgICAgICAgdG8gbWFrZSB0aGVtIGNo
aWxkIG9mIHJvb3QuCiAgICAgIiIiCi0gICAgYmFzZV9kaXIgPSBvcy5wYXRoLm5vcm1wYXRoKCBv
cy5wYXRoLmFic3BhdGgoIGJhc2VfZGlyICkgKQotICAgIGRlZiBhcmNoaXZlX25hbWUoIHBhdGgg
KToKKyAgICBiYXNlX2RpciA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKGJhc2Vf
ZGlyKSkKKyAgICBkZWYgYXJjaGl2ZV9uYW1lKHBhdGgpOgogICAgICAgICAiIiJNYWtlcyBwYXRo
IHJlbGF0aXZlIHRvIGJhc2VfZGlyLiIiIgotICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtcGF0
aCggb3MucGF0aC5hYnNwYXRoKCBwYXRoICkgKQotICAgICAgICBjb21tb25fcGF0aCA9IG9zLnBh
dGguY29tbW9ucHJlZml4KCAoYmFzZV9kaXIsIHBhdGgpICkKKyAgICAgICAgcGF0aCA9IG9zLnBh
dGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKHBhdGgpKQorICAgICAgICBjb21tb25fcGF0aCA9
IG9zLnBhdGguY29tbW9ucHJlZml4KChiYXNlX2RpciwgcGF0aCkpCiAgICAgICAgIGFyY2hpdmVf
bmFtZSA9IHBhdGhbbGVuKGNvbW1vbl9wYXRoKTpdCi0gICAgICAgIGlmIG9zLnBhdGguaXNhYnMo
IGFyY2hpdmVfbmFtZSApOgorICAgICAgICBpZiBvcy5wYXRoLmlzYWJzKGFyY2hpdmVfbmFtZSk6
CiAgICAgICAgICAgICBhcmNoaXZlX25hbWUgPSBhcmNoaXZlX25hbWVbMTpdCi0gICAgICAgIHJl
dHVybiBvcy5wYXRoLmpvaW4oIHByZWZpeF9kaXIsIGFyY2hpdmVfbmFtZSApCisgICAgICAgIHJl
dHVybiBvcy5wYXRoLmpvaW4ocHJlZml4X2RpciwgYXJjaGl2ZV9uYW1lKQogICAgIGRlZiB2aXNp
dCh0YXIsIGRpcm5hbWUsIG5hbWVzKToKICAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CiAgICAg
ICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpcm5hbWUsIG5hbWUpCiAgICAgICAgICAgICBp
ZiBvcy5wYXRoLmlzZmlsZShwYXRoKToKICAgICAgICAgICAgICAgICBwYXRoX2luX3RhciA9IGFy
Y2hpdmVfbmFtZShwYXRoKQotICAgICAgICAgICAgICAgIHRhci5hZGQocGF0aCwgcGF0aF9pbl90
YXIgKQorICAgICAgICAgICAgICAgIHRhci5hZGQocGF0aCwgcGF0aF9pbl90YXIpCiAgICAgY29t
cHJlc3Npb24gPSBUQVJHWl9ERUZBVUxUX0NPTVBSRVNTSU9OX0xFVkVMCi0gICAgdGFyID0gdGFy
ZmlsZS5UYXJGaWxlLmd6b3BlbiggdGFyYmFsbF9wYXRoLCAndycsIGNvbXByZXNzbGV2ZWw9Y29t
cHJlc3Npb24gKQotICAgIHRyeToKKyAgICB3aXRoIGNsb3NpbmcodGFyZmlsZS5UYXJGaWxlLm9w
ZW4odGFyYmFsbF9wYXRoLCAndzpneicsCisgICAgICAgICAgICBjb21wcmVzc2xldmVsPWNvbXBy
ZXNzaW9uKSkgYXMgdGFyOgogICAgICAgICBmb3Igc291cmNlIGluIHNvdXJjZXM6CiAgICAgICAg
ICAgICBzb3VyY2VfcGF0aCA9IHNvdXJjZQotICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcigg
c291cmNlICk6Ci0gICAgICAgICAgICAgICAgb3MucGF0aC53YWxrKHNvdXJjZV9wYXRoLCB2aXNp
dCwgdGFyKQorICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcihzb3VyY2UpOgorICAgICAgICAg
ICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGluIG9zLndhbGsoc291cmNl
X3BhdGgpOgorICAgICAgICAgICAgICAgICAgICB2aXNpdCh0YXIsIGRpcnBhdGgsIGZpbGVuYW1l
cykKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcGF0aF9pbl90YXIgPSBhcmNo
aXZlX25hbWUoc291cmNlX3BhdGgpCi0gICAgICAgICAgICAgICAgdGFyLmFkZChzb3VyY2VfcGF0
aCwgcGF0aF9pbl90YXIgKSAgICAgICMgZmlsZW5hbWUsIGFyY25hbWUKLSAgICBmaW5hbGx5Ogot
ICAgICAgICB0YXIuY2xvc2UoKQorICAgICAgICAgICAgICAgIHRhci5hZGQoc291cmNlX3BhdGgs
IHBhdGhfaW5fdGFyKSAgICAgICMgZmlsZW5hbWUsIGFyY25hbWUKIAotZGVmIGRlY29tcHJlc3Mo
IHRhcmJhbGxfcGF0aCwgYmFzZV9kaXIgKToKK2RlZiBkZWNvbXByZXNzKHRhcmJhbGxfcGF0aCwg
YmFzZV9kaXIpOgogICAgICIiIkRlY29tcHJlc3MgdGhlIGd6aXBwZWQgdGFyYmFsbCBpbnRvIGRp
cmVjdG9yeSBiYXNlX2Rpci4KICAgICAiIiIKLSAgICAjICEhISBUaGlzIGNsYXNzIG1ldGhvZCBp
cyBub3QgZG9jdW1lbnRlZCBpbiB0aGUgb25saW5lIGRvYwotICAgICMgbm9yIGlzIGJ6Mm9wZW4h
Ci0gICAgdGFyID0gdGFyZmlsZS5UYXJGaWxlLmd6b3Blbih0YXJiYWxsX3BhdGgsIG1vZGU9J3In
KQotICAgIHRyeToKLSAgICAgICAgdGFyLmV4dHJhY3RhbGwoIGJhc2VfZGlyICkKLSAgICBmaW5h
bGx5OgotICAgICAgICB0YXIuY2xvc2UoKQorICAgIHdpdGggY2xvc2luZyh0YXJmaWxlLlRhckZp
bGUub3Blbih0YXJiYWxsX3BhdGgpKSBhcyB0YXI6CisgICAgICAgIHRhci5leHRyYWN0YWxsKGJh
c2VfZGlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb2MvZG94eWZpbGUuaW4gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9kb3h5
ZmlsZS5pbgppbmRleCA0ODg2MWQyMzg1ZjdjYmIzMmZmMTkxOTViMGEzNDdiYzM1ZWQyMzFiLi5k
Y2Y1MTRlYTM0ZGM2NDUyNWZkMTU0NDU2ZTI1NDJmZjk4NjhhNjM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L2RvYy9kb3h5ZmlsZS5pbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9kb3h5ZmlsZS5pbgpAQCAtMSw5MCArMSwx
MTIgQEAKLSMgRG94eWZpbGUgMS41LjkKKyMgRG94eWZpbGUgMS44LjUKIAogIyBUaGlzIGZpbGUg
ZGVzY3JpYmVzIHRoZSBzZXR0aW5ncyB0byBiZSB1c2VkIGJ5IHRoZSBkb2N1bWVudGF0aW9uIHN5
c3RlbQotIyBkb3h5Z2VuICh3d3cuZG94eWdlbi5vcmcpIGZvciBhIHByb2plY3QKKyMgZG94eWdl
biAod3d3LmRveHlnZW4ub3JnKSBmb3IgYSBwcm9qZWN0LgogIwotIyBBbGwgdGV4dCBhZnRlciBh
IGhhc2ggKCMpIGlzIGNvbnNpZGVyZWQgYSBjb21tZW50IGFuZCB3aWxsIGJlIGlnbm9yZWQKKyMg
QWxsIHRleHQgYWZ0ZXIgYSBkb3VibGUgaGFzaCAoIyMpIGlzIGNvbnNpZGVyZWQgYSBjb21tZW50
IGFuZCBpcyBwbGFjZWQgaW4KKyMgZnJvbnQgb2YgdGhlIFRBRyBpdCBpcyBwcmVjZWRpbmcuCisj
CisjIEFsbCB0ZXh0IGFmdGVyIGEgc2luZ2xlIGhhc2ggKCMpIGlzIGNvbnNpZGVyZWQgYSBjb21t
ZW50IGFuZCB3aWxsIGJlIGlnbm9yZWQuCiAjIFRoZSBmb3JtYXQgaXM6Ci0jICAgICAgIFRBRyA9
IHZhbHVlIFt2YWx1ZSwgLi4uXQotIyBGb3IgbGlzdHMgaXRlbXMgY2FuIGFsc28gYmUgYXBwZW5k
ZWQgdXNpbmc6Ci0jICAgICAgIFRBRyArPSB2YWx1ZSBbdmFsdWUsIC4uLl0KLSMgVmFsdWVzIHRo
YXQgY29udGFpbiBzcGFjZXMgc2hvdWxkIGJlIHBsYWNlZCBiZXR3ZWVuIHF1b3RlcyAoIiAiKQor
IyBUQUcgPSB2YWx1ZSBbdmFsdWUsIC4uLl0KKyMgRm9yIGxpc3RzLCBpdGVtcyBjYW4gYWxzbyBi
ZSBhcHBlbmRlZCB1c2luZzoKKyMgVEFHICs9IHZhbHVlIFt2YWx1ZSwgLi4uXQorIyBWYWx1ZXMg
dGhhdCBjb250YWluIHNwYWNlcyBzaG91bGQgYmUgcGxhY2VkIGJldHdlZW4gcXVvdGVzIChcIiBc
IikuCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgUHJvamVjdCByZWxhdGVkIGNvbmZpZ3VyYXRp
b24gb3B0aW9ucwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIFRoaXMgdGFnIHNwZWNpZmllcyB0
aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGNvbmZpZyBmaWxlIAot
IyB0aGF0IGZvbGxvdy4gVGhlIGRlZmF1bHQgaXMgVVRGLTggd2hpY2ggaXMgYWxzbyB0aGUgZW5j
b2RpbmcgdXNlZCBmb3IgYWxsIAotIyB0ZXh0IGJlZm9yZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBv
ZiB0aGlzIHRhZy4gRG94eWdlbiB1c2VzIGxpYmljb252IChvciB0aGUgCi0jIGljb252IGJ1aWx0
IGludG8gbGliYykgZm9yIHRoZSB0cmFuc2NvZGluZy4gU2VlIAotIyBodHRwOi8vd3d3LmdudS5v
cmcvc29mdHdhcmUvbGliaWNvbnYgZm9yIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGVuY29kaW5ncy4K
KyMgVGhpcyB0YWcgc3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1c2VkIGZvciBhbGwgY2hhcmFjdGVy
cyBpbiB0aGUgY29uZmlnIGZpbGUKKyMgdGhhdCBmb2xsb3cuIFRoZSBkZWZhdWx0IGlzIFVURi04
IHdoaWNoIGlzIGFsc28gdGhlIGVuY29kaW5nIHVzZWQgZm9yIGFsbCB0ZXh0CisjIGJlZm9yZSB0
aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGlzIHRhZy4gRG94eWdlbiB1c2VzIGxpYmljb252IChv
ciB0aGUgaWNvbnYKKyMgYnVpbHQgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29kaW5nLiBTZWUg
aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252CisjIGZvciB0aGUgbGlzdCBvZiBw
b3NzaWJsZSBlbmNvZGluZ3MuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBVVEYtOC4KIAogRE9Y
WUZJTEVfRU5DT0RJTkcgICAgICA9IFVURi04CiAKLSMgVGhlIFBST0pFQ1RfTkFNRSB0YWcgaXMg
YSBzaW5nbGUgd29yZCAob3IgYSBzZXF1ZW5jZSBvZiB3b3JkcyBzdXJyb3VuZGVkIAotIyBieSBx
dW90ZXMpIHRoYXQgc2hvdWxkIGlkZW50aWZ5IHRoZSBwcm9qZWN0LgorIyBUaGUgUFJPSkVDVF9O
QU1FIHRhZyBpcyBhIHNpbmdsZSB3b3JkIChvciBhIHNlcXVlbmNlIG9mIHdvcmRzIHN1cnJvdW5k
ZWQgYnkKKyMgZG91YmxlLXF1b3RlcywgdW5sZXNzIHlvdSBhcmUgdXNpbmcgRG94eXdpemFyZCkg
dGhhdCBzaG91bGQgaWRlbnRpZnkgdGhlCisjIHByb2plY3QgZm9yIHdoaWNoIHRoZSBkb2N1bWVu
dGF0aW9uIGlzIGdlbmVyYXRlZC4gVGhpcyBuYW1lIGlzIHVzZWQgaW4gdGhlCisjIHRpdGxlIG9m
IG1vc3QgZ2VuZXJhdGVkIHBhZ2VzIGFuZCBpbiBhIGZldyBvdGhlciBwbGFjZXMuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBNeSBQcm9qZWN0LgogCiBQUk9KRUNUX05BTUUgICAgICAgICAgID0g
Ikpzb25DcHAiCiAKLSMgVGhlIFBST0pFQ1RfTlVNQkVSIHRhZyBjYW4gYmUgdXNlZCB0byBlbnRl
ciBhIHByb2plY3Qgb3IgcmV2aXNpb24gbnVtYmVyLiAKLSMgVGhpcyBjb3VsZCBiZSBoYW5keSBm
b3IgYXJjaGl2aW5nIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBvciAKLSMgaWYgc29tZSB2
ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIGlzIHVzZWQuCisjIFRoZSBQUk9KRUNUX05VTUJFUiB0YWcg
Y2FuIGJlIHVzZWQgdG8gZW50ZXIgYSBwcm9qZWN0IG9yIHJldmlzaW9uIG51bWJlci4gVGhpcwor
IyBjb3VsZCBiZSBoYW5keSBmb3IgYXJjaGl2aW5nIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlv
biBvciBpZiBzb21lIHZlcnNpb24KKyMgY29udHJvbCBzeXN0ZW0gaXMgdXNlZC4KIAogUFJPSkVD
VF9OVU1CRVIgICAgICAgICA9ICVKU09OQ1BQX1ZFUlNJT04lCiAKLSMgVGhlIE9VVFBVVF9ESVJF
Q1RPUlkgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgKHJlbGF0aXZlIG9yIGFic29sdXRlKSAK
LSMgYmFzZSBwYXRoIHdoZXJlIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiB3aWxsIGJlIHB1
dC4gCi0jIElmIGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkLCBpdCB3aWxsIGJlIHJlbGF0aXZl
IHRvIHRoZSBsb2NhdGlvbiAKLSMgd2hlcmUgZG94eWdlbiB3YXMgc3RhcnRlZC4gSWYgbGVmdCBi
bGFuayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSB1c2VkLgorIyBVc2luZyB0aGUgUFJP
SkVDVF9CUklFRiB0YWcgb25lIGNhbiBwcm92aWRlIGFuIG9wdGlvbmFsIG9uZSBsaW5lIGRlc2Ny
aXB0aW9uCisjIGZvciBhIHByb2plY3QgdGhhdCBhcHBlYXJzIGF0IHRoZSB0b3Agb2YgZWFjaCBw
YWdlIGFuZCBzaG91bGQgZ2l2ZSB2aWV3ZXIgYQorIyBxdWljayBpZGVhIGFib3V0IHRoZSBwdXJw
b3NlIG9mIHRoZSBwcm9qZWN0LiBLZWVwIHRoZSBkZXNjcmlwdGlvbiBzaG9ydC4KKworUFJPSkVD
VF9CUklFRiAgICAgICAgICA9CisKKyMgV2l0aCB0aGUgUFJPSkVDVF9MT0dPIHRhZyBvbmUgY2Fu
IHNwZWNpZnkgYW4gbG9nbyBvciBpY29uIHRoYXQgaXMgaW5jbHVkZWQgaW4KKyMgdGhlIGRvY3Vt
ZW50YXRpb24uIFRoZSBtYXhpbXVtIGhlaWdodCBvZiB0aGUgbG9nbyBzaG91bGQgbm90IGV4Y2Vl
ZCA1NSBwaXhlbHMKKyMgYW5kIHRoZSBtYXhpbXVtIHdpZHRoIHNob3VsZCBub3QgZXhjZWVkIDIw
MCBwaXhlbHMuIERveHlnZW4gd2lsbCBjb3B5IHRoZSBsb2dvCisjIHRvIHRoZSBvdXRwdXQgZGly
ZWN0b3J5LgorCitQUk9KRUNUX0xPR08gICAgICAgICAgID0KKworIyBUaGUgT1VUUFVUX0RJUkVD
VE9SWSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAocmVsYXRpdmUgb3IgYWJzb2x1dGUpIHBh
dGgKKyMgaW50byB3aGljaCB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gd2lsbCBiZSB3cml0
dGVuLiBJZiBhIHJlbGF0aXZlIHBhdGggaXMKKyMgZW50ZXJlZCwgaXQgd2lsbCBiZSByZWxhdGl2
ZSB0byB0aGUgbG9jYXRpb24gd2hlcmUgZG94eWdlbiB3YXMgc3RhcnRlZC4gSWYKKyMgbGVmdCBi
bGFuayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSB1c2VkLgogCiBPVVRQVVRfRElSRUNU
T1JZICAgICAgID0gJURPQ19UT1BESVIlCiAKLSMgSWYgdGhlIENSRUFURV9TVUJESVJTIHRhZyBp
cyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBjcmVhdGUgCi0jIDQwOTYgc3ViLWRpcmVj
dG9yaWVzIChpbiAyIGxldmVscykgdW5kZXIgdGhlIG91dHB1dCBkaXJlY3Rvcnkgb2YgZWFjaCBv
dXRwdXQgCi0jIGZvcm1hdCBhbmQgd2lsbCBkaXN0cmlidXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMg
b3ZlciB0aGVzZSBkaXJlY3Rvcmllcy4gCi0jIEVuYWJsaW5nIHRoaXMgb3B0aW9uIGNhbiBiZSB1
c2VmdWwgd2hlbiBmZWVkaW5nIGRveHlnZW4gYSBodWdlIGFtb3VudCBvZiAKLSMgc291cmNlIGZp
bGVzLCB3aGVyZSBwdXR0aW5nIGFsbCBnZW5lcmF0ZWQgZmlsZXMgaW4gdGhlIHNhbWUgZGlyZWN0
b3J5IHdvdWxkIAotIyBvdGhlcndpc2UgY2F1c2UgcGVyZm9ybWFuY2UgcHJvYmxlbXMgZm9yIHRo
ZSBmaWxlIHN5c3RlbS4KKyMgSWYgdGhlIENSRUFURV9TVUJESVJTIHRhZyBpcyBzZXQgdG8gWUVT
LCB0aGVuIGRveHlnZW4gd2lsbCBjcmVhdGUgNDA5NiBzdWItCisjIGRpcmVjdG9yaWVzIChpbiAy
IGxldmVscykgdW5kZXIgdGhlIG91dHB1dCBkaXJlY3Rvcnkgb2YgZWFjaCBvdXRwdXQgZm9ybWF0
IGFuZAorIyB3aWxsIGRpc3RyaWJ1dGUgdGhlIGdlbmVyYXRlZCBmaWxlcyBvdmVyIHRoZXNlIGRp
cmVjdG9yaWVzLiBFbmFibGluZyB0aGlzCisjIG9wdGlvbiBjYW4gYmUgdXNlZnVsIHdoZW4gZmVl
ZGluZyBkb3h5Z2VuIGEgaHVnZSBhbW91bnQgb2Ygc291cmNlIGZpbGVzLCB3aGVyZQorIyBwdXR0
aW5nIGFsbCBnZW5lcmF0ZWQgZmlsZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHdvdWxkIG90aGVy
d2lzZSBjYXVzZXMKKyMgcGVyZm9ybWFuY2UgcHJvYmxlbXMgZm9yIHRoZSBmaWxlIHN5c3RlbS4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBDUkVBVEVfU1VCRElSUyAgICAgICAgID0g
Tk8KIAotIyBUaGUgT1VUUFVUX0xBTkdVQUdFIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGxh
bmd1YWdlIGluIHdoaWNoIGFsbCAKLSMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgZG94eWdl
biBpcyB3cml0dGVuLiBEb3h5Z2VuIHdpbGwgdXNlIHRoaXMgCi0jIGluZm9ybWF0aW9uIHRvIGdl
bmVyYXRlIGFsbCBjb25zdGFudCBvdXRwdXQgaW4gdGhlIHByb3BlciBsYW5ndWFnZS4gCi0jIFRo
ZSBkZWZhdWx0IGxhbmd1YWdlIGlzIEVuZ2xpc2gsIG90aGVyIHN1cHBvcnRlZCBsYW5ndWFnZXMg
YXJlOiAKLSMgQWZyaWthYW5zLCBBcmFiaWMsIEJyYXppbGlhbiwgQ2F0YWxhbiwgQ2hpbmVzZSwg
Q2hpbmVzZS1UcmFkaXRpb25hbCwgCi0jIENyb2F0aWFuLCBDemVjaCwgRGFuaXNoLCBEdXRjaCwg
RXNwZXJhbnRvLCBGYXJzaSwgRmlubmlzaCwgRnJlbmNoLCBHZXJtYW4sIAotIyBHcmVlaywgSHVu
Z2FyaWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2UtZW4gKEphcGFuZXNlIHdpdGggRW5n
bGlzaCAKLSMgbWVzc2FnZXMpLCBLb3JlYW4sIEtvcmVhbi1lbiwgTGl0aHVhbmlhbiwgTm9yd2Vn
aWFuLCBNYWNlZG9uaWFuLCBQZXJzaWFuLCAKLSMgUG9saXNoLCBQb3J0dWd1ZXNlLCBSb21hbmlh
biwgUnVzc2lhbiwgU2VyYmlhbiwgU2VyYmlhbi1DeXJpbGljLCBTbG92YWssIAotIyBTbG92ZW5l
LCBTcGFuaXNoLCBTd2VkaXNoLCBVa3JhaW5pYW4sIGFuZCBWaWV0bmFtZXNlLgorIyBUaGUgT1VU
UFVUX0xBTkdVQUdFIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGxhbmd1YWdlIGluIHdoaWNo
IGFsbAorIyBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSBkb3h5Z2VuIGlzIHdyaXR0ZW4uIERv
eHlnZW4gd2lsbCB1c2UgdGhpcworIyBpbmZvcm1hdGlvbiB0byBnZW5lcmF0ZSBhbGwgY29uc3Rh
bnQgb3V0cHV0IGluIHRoZSBwcm9wZXIgbGFuZ3VhZ2UuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6
IEFmcmlrYWFucywgQXJhYmljLCBCcmF6aWxpYW4sIENhdGFsYW4sIENoaW5lc2UsIENoaW5lc2Ut
CisjIFRyYWRpdGlvbmFsLCBDcm9hdGlhbiwgQ3plY2gsIERhbmlzaCwgRHV0Y2gsIEVuZ2xpc2gs
IEVzcGVyYW50bywgRmFyc2ksCisjIEZpbm5pc2gsIEZyZW5jaCwgR2VybWFuLCBHcmVlaywgSHVu
Z2FyaWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2UtZW4sCisjIEtvcmVhbiwgS29yZWFu
LWVuLCBMYXR2aWFuLCBOb3J3ZWdpYW4sIE1hY2Vkb25pYW4sIFBlcnNpYW4sIFBvbGlzaCwKKyMg
UG9ydHVndWVzZSwgUm9tYW5pYW4sIFJ1c3NpYW4sIFNlcmJpYW4sIFNsb3ZhaywgU2xvdmVuZSwg
U3BhbmlzaCwgU3dlZGlzaCwKKyMgVHVya2lzaCwgVWtyYWluaWFuIGFuZCBWaWV0bmFtZXNlLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogRW5nbGlzaC4KIAogT1VUUFVUX0xBTkdVQUdFICAgICAg
ICA9IEVuZ2xpc2gKIAotIyBJZiB0aGUgQlJJRUZfTUVNQkVSX0RFU0MgdGFnIGlzIHNldCB0byBZ
RVMgKHRoZSBkZWZhdWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGluY2x1ZGUgYnJpZWYgbWVtYmVyIGRl
c2NyaXB0aW9ucyBhZnRlciB0aGUgbWVtYmVycyB0aGF0IGFyZSBsaXN0ZWQgaW4gCi0jIHRoZSBm
aWxlIGFuZCBjbGFzcyBkb2N1bWVudGF0aW9uIChzaW1pbGFyIHRvIEphdmFEb2MpLiAKLSMgU2V0
IHRvIE5PIHRvIGRpc2FibGUgdGhpcy4KKyMgSWYgdGhlIEJSSUVGX01FTUJFUl9ERVNDIHRhZyBp
cyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBpbmNsdWRlIGJyaWVmIG1lbWJlcgorIyBkZXNjcmlw
dGlvbnMgYWZ0ZXIgdGhlIG1lbWJlcnMgdGhhdCBhcmUgbGlzdGVkIGluIHRoZSBmaWxlIGFuZCBj
bGFzcworIyBkb2N1bWVudGF0aW9uIChzaW1pbGFyIHRvIEphdmFkb2MpLiBTZXQgdG8gTk8gdG8g
ZGlzYWJsZSB0aGlzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBCUklFRl9NRU1C
RVJfREVTQyAgICAgID0gWUVTCiAKLSMgSWYgdGhlIFJFUEVBVF9CUklFRiB0YWcgaXMgc2V0IHRv
IFlFUyAodGhlIGRlZmF1bHQpIERveHlnZW4gd2lsbCBwcmVwZW5kIAotIyB0aGUgYnJpZWYgZGVz
Y3JpcHRpb24gb2YgYSBtZW1iZXIgb3IgZnVuY3Rpb24gYmVmb3JlIHRoZSBkZXRhaWxlZCBkZXNj
cmlwdGlvbi4gCi0jIE5vdGU6IGlmIGJvdGggSElERV9VTkRPQ19NRU1CRVJTIGFuZCBCUklFRl9N
RU1CRVJfREVTQyBhcmUgc2V0IHRvIE5PLCB0aGUgCisjIElmIHRoZSBSRVBFQVRfQlJJRUYgdGFn
IGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIHByZXBlbmQgdGhlIGJyaWVmCisjIGRlc2NyaXB0
aW9uIG9mIGEgbWVtYmVyIG9yIGZ1bmN0aW9uIGJlZm9yZSB0aGUgZGV0YWlsZWQgZGVzY3JpcHRp
b24KKyMKKyMgTm90ZTogSWYgYm90aCBISURFX1VORE9DX01FTUJFUlMgYW5kIEJSSUVGX01FTUJF
Ul9ERVNDIGFyZSBzZXQgdG8gTk8sIHRoZQogIyBicmllZiBkZXNjcmlwdGlvbnMgd2lsbCBiZSBj
b21wbGV0ZWx5IHN1cHByZXNzZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIFJF
UEVBVF9CUklFRiAgICAgICAgICAgPSBZRVMKIAotIyBUaGlzIHRhZyBpbXBsZW1lbnRzIGEgcXVh
c2ktaW50ZWxsaWdlbnQgYnJpZWYgZGVzY3JpcHRpb24gYWJicmV2aWF0b3IgCi0jIHRoYXQgaXMg
dXNlZCB0byBmb3JtIHRoZSB0ZXh0IGluIHZhcmlvdXMgbGlzdGluZ3MuIEVhY2ggc3RyaW5nIAot
IyBpbiB0aGlzIGxpc3QsIGlmIGZvdW5kIGFzIHRoZSBsZWFkaW5nIHRleHQgb2YgdGhlIGJyaWVm
IGRlc2NyaXB0aW9uLCB3aWxsIGJlIAotIyBzdHJpcHBlZCBmcm9tIHRoZSB0ZXh0IGFuZCB0aGUg
cmVzdWx0IGFmdGVyIHByb2Nlc3NpbmcgdGhlIHdob2xlIGxpc3QsIGlzIAotIyB1c2VkIGFzIHRo
ZSBhbm5vdGF0ZWQgdGV4dC4gT3RoZXJ3aXNlLCB0aGUgYnJpZWYgZGVzY3JpcHRpb24gaXMgdXNl
ZCBhcy1pcy4gCi0jIElmIGxlZnQgYmxhbmssIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSB1c2Vk
ICgiJG5hbWUiIGlzIGF1dG9tYXRpY2FsbHkgCi0jIHJlcGxhY2VkIHdpdGggdGhlIG5hbWUgb2Yg
dGhlIGVudGl0eSk6ICJUaGUgJG5hbWUgY2xhc3MiICJUaGUgJG5hbWUgd2lkZ2V0IiAKLSMgIlRo
ZSAkbmFtZSBmaWxlIiAiaXMiICJwcm92aWRlcyIgInNwZWNpZmllcyIgImNvbnRhaW5zIiAKLSMg
InJlcHJlc2VudHMiICJhIiAiYW4iICJ0aGUiCisjIFRoaXMgdGFnIGltcGxlbWVudHMgYSBxdWFz
aS1pbnRlbGxpZ2VudCBicmllZiBkZXNjcmlwdGlvbiBhYmJyZXZpYXRvciB0aGF0IGlzCisjIHVz
ZWQgdG8gZm9ybSB0aGUgdGV4dCBpbiB2YXJpb3VzIGxpc3RpbmdzLiBFYWNoIHN0cmluZyBpbiB0
aGlzIGxpc3QsIGlmIGZvdW5kCisjIGFzIHRoZSBsZWFkaW5nIHRleHQgb2YgdGhlIGJyaWVmIGRl
c2NyaXB0aW9uLCB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIHRleHQKKyMgYW5kIHRoZSByZXN1
bHQsIGFmdGVyIHByb2Nlc3NpbmcgdGhlIHdob2xlIGxpc3QsIGlzIHVzZWQgYXMgdGhlIGFubm90
YXRlZAorIyB0ZXh0LiBPdGhlcndpc2UsIHRoZSBicmllZiBkZXNjcmlwdGlvbiBpcyB1c2VkIGFz
LWlzLiBJZiBsZWZ0IGJsYW5rLCB0aGUKKyMgZm9sbG93aW5nIHZhbHVlcyBhcmUgdXNlZCAoJG5h
bWUgaXMgYXV0b21hdGljYWxseSByZXBsYWNlZCB3aXRoIHRoZSBuYW1lIG9mCisjIHRoZSBlbnRp
dHkpOlRoZSAkbmFtZSBjbGFzcywgVGhlICRuYW1lIHdpZGdldCwgVGhlICRuYW1lIGZpbGUsIGlz
LCBwcm92aWRlcywKKyMgc3BlY2lmaWVzLCBjb250YWlucywgcmVwcmVzZW50cywgYSwgYW4gYW5k
IHRoZS4KIAogQUJCUkVWSUFURV9CUklFRiAgICAgICA9ICJUaGUgJG5hbWUgY2xhc3MiIFwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAiVGhlICRuYW1lIHdpZGdldCIgXApAQCAtOTgsMTQzNyAr
MTIwLDIxODMgQEAgQUJCUkVWSUFURV9CUklFRiAgICAgICA9ICJUaGUgJG5hbWUgY2xhc3MiIFwK
ICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhlCiAKLSMgSWYgdGhlIEFMV0FZU19ERVRBSUxFRF9TRUMgYW5kIFJFUEVBVF9CUklFRiB0YWdz
IGFyZSBib3RoIHNldCB0byBZRVMgdGhlbiAKLSMgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZGV0
YWlsZWQgc2VjdGlvbiBldmVuIGlmIHRoZXJlIGlzIG9ubHkgYSBicmllZiAKKyMgSWYgdGhlIEFM
V0FZU19ERVRBSUxFRF9TRUMgYW5kIFJFUEVBVF9CUklFRiB0YWdzIGFyZSBib3RoIHNldCB0byBZ
RVMgdGhlbgorIyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBkZXRhaWxlZCBzZWN0aW9uIGV2ZW4g
aWYgdGhlcmUgaXMgb25seSBhIGJyaWVmCiAjIGRlc2NyaXB0aW9uLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCiAKIEFMV0FZU19ERVRBSUxFRF9TRUMgICAgPSBOTwogCi0jIElmIHRoZSBJ
TkxJTkVfSU5IRVJJVEVEX01FTUIgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBzaG93
IGFsbCAKLSMgaW5oZXJpdGVkIG1lbWJlcnMgb2YgYSBjbGFzcyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBvZiB0aGF0IGNsYXNzIGFzIGlmIHRob3NlIAotIyBtZW1iZXJzIHdlcmUgb3JkaW5hcnkgY2xh
c3MgbWVtYmVycy4gQ29uc3RydWN0b3JzLCBkZXN0cnVjdG9ycyBhbmQgYXNzaWdubWVudCAKKyMg
SWYgdGhlIElOTElORV9JTkhFUklURURfTUVNQiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3
aWxsIHNob3cgYWxsCisjIGluaGVyaXRlZCBtZW1iZXJzIG9mIGEgY2xhc3MgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gb2YgdGhhdCBjbGFzcyBhcyBpZiB0aG9zZQorIyBtZW1iZXJzIHdlcmUgb3JkaW5h
cnkgY2xhc3MgbWVtYmVycy4gQ29uc3RydWN0b3JzLCBkZXN0cnVjdG9ycyBhbmQgYXNzaWdubWVu
dAogIyBvcGVyYXRvcnMgb2YgdGhlIGJhc2UgY2xhc3NlcyB3aWxsIG5vdCBiZSBzaG93bi4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBJTkxJTkVfSU5IRVJJVEVEX01FTUIgID0gTk8K
IAotIyBJZiB0aGUgRlVMTF9QQVRIX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdl
biB3aWxsIHByZXBlbmQgdGhlIGZ1bGwgCi0jIHBhdGggYmVmb3JlIGZpbGVzIG5hbWUgaW4gdGhl
IGZpbGUgbGlzdCBhbmQgaW4gdGhlIGhlYWRlciBmaWxlcy4gSWYgc2V0IAotIyB0byBOTyB0aGUg
c2hvcnRlc3QgcGF0aCB0aGF0IG1ha2VzIHRoZSBmaWxlIG5hbWUgdW5pcXVlIHdpbGwgYmUgdXNl
ZC4KKyMgSWYgdGhlIEZVTExfUEFUSF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdp
bGwgcHJlcGVuZCB0aGUgZnVsbCBwYXRoCisjIGJlZm9yZSBmaWxlcyBuYW1lIGluIHRoZSBmaWxl
IGxpc3QgYW5kIGluIHRoZSBoZWFkZXIgZmlsZXMuIElmIHNldCB0byBOTyB0aGUKKyMgc2hvcnRl
c3QgcGF0aCB0aGF0IG1ha2VzIHRoZSBmaWxlIG5hbWUgdW5pcXVlIHdpbGwgYmUgdXNlZAorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBGVUxMX1BBVEhfTkFNRVMgICAgICAgID0gWUVT
CiAKLSMgSWYgdGhlIEZVTExfUEFUSF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBT
VFJJUF9GUk9NX1BBVEggdGFnIAotIyBjYW4gYmUgdXNlZCB0byBzdHJpcCBhIHVzZXItZGVmaW5l
ZCBwYXJ0IG9mIHRoZSBwYXRoLiBTdHJpcHBpbmcgaXMgCi0jIG9ubHkgZG9uZSBpZiBvbmUgb2Yg
dGhlIHNwZWNpZmllZCBzdHJpbmdzIG1hdGNoZXMgdGhlIGxlZnQtaGFuZCBwYXJ0IG9mIAotIyB0
aGUgcGF0aC4gVGhlIHRhZyBjYW4gYmUgdXNlZCB0byBzaG93IHJlbGF0aXZlIHBhdGhzIGluIHRo
ZSBmaWxlIGxpc3QuIAotIyBJZiBsZWZ0IGJsYW5rIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGljaCBk
b3h5Z2VuIGlzIHJ1biBpcyB1c2VkIGFzIHRoZSAKLSMgcGF0aCB0byBzdHJpcC4KKyMgVGhlIFNU
UklQX0ZST01fUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3RyaXAgYSB1c2VyLWRlZmluZWQgcGFy
dCBvZiB0aGUgcGF0aC4KKyMgU3RyaXBwaW5nIGlzIG9ubHkgZG9uZSBpZiBvbmUgb2YgdGhlIHNw
ZWNpZmllZCBzdHJpbmdzIG1hdGNoZXMgdGhlIGxlZnQtaGFuZAorIyBwYXJ0IG9mIHRoZSBwYXRo
LiBUaGUgdGFnIGNhbiBiZSB1c2VkIHRvIHNob3cgcmVsYXRpdmUgcGF0aHMgaW4gdGhlIGZpbGUg
bGlzdC4KKyMgSWYgbGVmdCBibGFuayB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggZG94eWdlbiBp
cyBydW4gaXMgdXNlZCBhcyB0aGUgcGF0aCB0bworIyBzdHJpcC4KKyMKKyMgTm90ZSB0aGF0IHlv
dSBjYW4gc3BlY2lmeSBhYnNvbHV0ZSBwYXRocyBoZXJlLCBidXQgYWxzbyByZWxhdGl2ZSBwYXRo
cywgd2hpY2gKKyMgd2lsbCBiZSByZWxhdGl2ZSBmcm9tIHRoZSBkaXJlY3Rvcnkgd2hlcmUgZG94
eWdlbiBpcyBzdGFydGVkLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRlVMTF9Q
QVRIX05BTUVTIGlzIHNldCB0byBZRVMuCiAKIFNUUklQX0ZST01fUEFUSCAgICAgICAgPSAlVE9Q
RElSJQogCi0jIFRoZSBTVFJJUF9GUk9NX0lOQ19QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzdHJp
cCBhIHVzZXItZGVmaW5lZCBwYXJ0IG9mIAotIyB0aGUgcGF0aCBtZW50aW9uZWQgaW4gdGhlIGRv
Y3VtZW50YXRpb24gb2YgYSBjbGFzcywgd2hpY2ggdGVsbHMgCi0jIHRoZSByZWFkZXIgd2hpY2gg
aGVhZGVyIGZpbGUgdG8gaW5jbHVkZSBpbiBvcmRlciB0byB1c2UgYSBjbGFzcy4gCi0jIElmIGxl
ZnQgYmxhbmsgb25seSB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyIGZpbGUgY29udGFpbmluZyB0aGUg
Y2xhc3MgCi0jIGRlZmluaXRpb24gaXMgdXNlZC4gT3RoZXJ3aXNlIG9uZSBzaG91bGQgc3BlY2lm
eSB0aGUgaW5jbHVkZSBwYXRocyB0aGF0IAotIyBhcmUgbm9ybWFsbHkgcGFzc2VkIHRvIHRoZSBj
b21waWxlciB1c2luZyB0aGUgLUkgZmxhZy4KKyMgVGhlIFNUUklQX0ZST01fSU5DX1BBVEggdGFn
IGNhbiBiZSB1c2VkIHRvIHN0cmlwIGEgdXNlci1kZWZpbmVkIHBhcnQgb2YgdGhlCisjIHBhdGgg
bWVudGlvbmVkIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIGEgY2xhc3MsIHdoaWNoIHRlbGxzIHRo
ZSByZWFkZXIgd2hpY2gKKyMgaGVhZGVyIGZpbGUgdG8gaW5jbHVkZSBpbiBvcmRlciB0byB1c2Ug
YSBjbGFzcy4gSWYgbGVmdCBibGFuayBvbmx5IHRoZSBuYW1lIG9mCisjIHRoZSBoZWFkZXIgZmls
ZSBjb250YWluaW5nIHRoZSBjbGFzcyBkZWZpbml0aW9uIGlzIHVzZWQuIE90aGVyd2lzZSBvbmUg
c2hvdWxkCisjIHNwZWNpZnkgdGhlIGxpc3Qgb2YgaW5jbHVkZSBwYXRocyB0aGF0IGFyZSBub3Jt
YWxseSBwYXNzZWQgdG8gdGhlIGNvbXBpbGVyCisjIHVzaW5nIHRoZSAtSSBmbGFnLgogCiBTVFJJ
UF9GUk9NX0lOQ19QQVRIICAgID0gJVRPUERJUiUvaW5jbHVkZQogCi0jIElmIHRoZSBTSE9SVF9O
QU1FUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIG11Y2ggc2hvcnRl
ciAKLSMgKGJ1dCBsZXNzIHJlYWRhYmxlKSBmaWxlIG5hbWVzLiBUaGlzIGNhbiBiZSB1c2VmdWwg
aXMgeW91ciBmaWxlIHN5c3RlbXMgCi0jIGRvZXNuJ3Qgc3VwcG9ydCBsb25nIG5hbWVzIGxpa2Ug
b24gRE9TLCBNYWMsIG9yIENELVJPTS4KKyMgSWYgdGhlIFNIT1JUX05BTUVTIHRhZyBpcyBzZXQg
dG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgbXVjaCBzaG9ydGVyIChidXQKKyMgbGVzcyBy
ZWFkYWJsZSkgZmlsZSBuYW1lcy4gVGhpcyBjYW4gYmUgdXNlZnVsIGlzIHlvdXIgZmlsZSBzeXN0
ZW1zIGRvZXNuJ3QKKyMgc3VwcG9ydCBsb25nIG5hbWVzIGxpa2Ugb24gRE9TLCBNYWMsIG9yIENE
LVJPTS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTSE9SVF9OQU1FUyAgICAgICAg
ICAgID0gTk8KIAotIyBJZiB0aGUgSkFWQURPQ19BVVRPQlJJRUYgdGFnIGlzIHNldCB0byBZRVMg
dGhlbiBEb3h5Z2VuIAotIyB3aWxsIGludGVycHJldCB0aGUgZmlyc3QgbGluZSAodW50aWwgdGhl
IGZpcnN0IGRvdCkgb2YgYSBKYXZhRG9jLXN0eWxlIAotIyBjb21tZW50IGFzIHRoZSBicmllZiBk
ZXNjcmlwdGlvbi4gSWYgc2V0IHRvIE5PLCB0aGUgSmF2YURvYyAKLSMgY29tbWVudHMgd2lsbCBi
ZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgUXQtc3R5bGUgY29tbWVudHMgCi0jICh0aHVzIHJlcXVp
cmluZyBhbiBleHBsaWNpdCBAYnJpZWYgY29tbWFuZCBmb3IgYSBicmllZiBkZXNjcmlwdGlvbi4p
CisjIElmIHRoZSBKQVZBRE9DX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHln
ZW4gd2lsbCBpbnRlcnByZXQgdGhlCisjIGZpcnN0IGxpbmUgKHVudGlsIHRoZSBmaXJzdCBkb3Qp
IG9mIGEgSmF2YWRvYy1zdHlsZSBjb21tZW50IGFzIHRoZSBicmllZgorIyBkZXNjcmlwdGlvbi4g
SWYgc2V0IHRvIE5PLCB0aGUgSmF2YWRvYy1zdHlsZSB3aWxsIGJlaGF2ZSBqdXN0IGxpa2UgcmVn
dWxhciBRdC0KKyMgc3R5bGUgY29tbWVudHMgKHRodXMgcmVxdWlyaW5nIGFuIGV4cGxpY2l0IEBi
cmllZiBjb21tYW5kIGZvciBhIGJyaWVmCisjIGRlc2NyaXB0aW9uLikKKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgogCiBKQVZBRE9DX0FVVE9CUklFRiAgICAgID0gWUVTCiAKLSMgSWYgdGhl
IFFUX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCAKLSMgaW50
ZXJwcmV0IHRoZSBmaXJzdCBsaW5lICh1bnRpbCB0aGUgZmlyc3QgZG90KSBvZiBhIFF0LXN0eWxl
IAotIyBjb21tZW50IGFzIHRoZSBicmllZiBkZXNjcmlwdGlvbi4gSWYgc2V0IHRvIE5PLCB0aGUg
Y29tbWVudHMgCi0jIHdpbGwgYmVoYXZlIGp1c3QgbGlrZSByZWd1bGFyIFF0LXN0eWxlIGNvbW1l
bnRzICh0aHVzIHJlcXVpcmluZyAKLSMgYW4gZXhwbGljaXQgXGJyaWVmIGNvbW1hbmQgZm9yIGEg
YnJpZWYgZGVzY3JpcHRpb24uKQorIyBJZiB0aGUgUVRfQVVUT0JSSUVGIHRhZyBpcyBzZXQgdG8g
WUVTIHRoZW4gZG94eWdlbiB3aWxsIGludGVycHJldCB0aGUgZmlyc3QKKyMgbGluZSAodW50aWwg
dGhlIGZpcnN0IGRvdCkgb2YgYSBRdC1zdHlsZSBjb21tZW50IGFzIHRoZSBicmllZiBkZXNjcmlw
dGlvbi4gSWYKKyMgc2V0IHRvIE5PLCB0aGUgUXQtc3R5bGUgd2lsbCBiZWhhdmUganVzdCBsaWtl
IHJlZ3VsYXIgUXQtc3R5bGUgY29tbWVudHMgKHRodXMKKyMgcmVxdWlyaW5nIGFuIGV4cGxpY2l0
IFxicmllZiBjb21tYW5kIGZvciBhIGJyaWVmIGRlc2NyaXB0aW9uLikKKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgogCiBRVF9BVVRPQlJJRUYgICAgICAgICAgID0gTk8KIAotIyBUaGUgTVVM
VElMSU5FX0NQUF9JU19CUklFRiB0YWcgY2FuIGJlIHNldCB0byBZRVMgdG8gbWFrZSBEb3h5Z2Vu
IAotIyB0cmVhdCBhIG11bHRpLWxpbmUgQysrIHNwZWNpYWwgY29tbWVudCBibG9jayAoaS5lLiBh
IGJsb2NrIG9mIC8vISBvciAvLy8gCi0jIGNvbW1lbnRzKSBhcyBhIGJyaWVmIGRlc2NyaXB0aW9u
LiBUaGlzIHVzZWQgdG8gYmUgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLiAKLSMgVGhlIG5ldyBkZWZh
dWx0IGlzIHRvIHRyZWF0IGEgbXVsdGktbGluZSBDKysgY29tbWVudCBibG9jayBhcyBhIGRldGFp
bGVkIAotIyBkZXNjcmlwdGlvbi4gU2V0IHRoaXMgdGFnIHRvIFlFUyBpZiB5b3UgcHJlZmVyIHRo
ZSBvbGQgYmVoYXZpb3VyIGluc3RlYWQuCisjIFRoZSBNVUxUSUxJTkVfQ1BQX0lTX0JSSUVGIHRh
ZyBjYW4gYmUgc2V0IHRvIFlFUyB0byBtYWtlIGRveHlnZW4gdHJlYXQgYQorIyBtdWx0aS1saW5l
IEMrKyBzcGVjaWFsIGNvbW1lbnQgYmxvY2sgKGkuZS4gYSBibG9jayBvZiAvLyEgb3IgLy8vIGNv
bW1lbnRzKSBhcworIyBhIGJyaWVmIGRlc2NyaXB0aW9uLiBUaGlzIHVzZWQgdG8gYmUgdGhlIGRl
ZmF1bHQgYmVoYXZpb3IuIFRoZSBuZXcgZGVmYXVsdCBpcworIyB0byB0cmVhdCBhIG11bHRpLWxp
bmUgQysrIGNvbW1lbnQgYmxvY2sgYXMgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbi4gU2V0IHRoaXMK
KyMgdGFnIHRvIFlFUyBpZiB5b3UgcHJlZmVyIHRoZSBvbGQgYmVoYXZpb3IgaW5zdGVhZC4KKyMK
KyMgTm90ZSB0aGF0IHNldHRpbmcgdGhpcyB0YWcgdG8gWUVTIGFsc28gbWVhbnMgdGhhdCByYXRp
b25hbCByb3NlIGNvbW1lbnRzIGFyZQorIyBub3QgcmVjb2duaXplZCBhbnkgbW9yZS4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBNVUxUSUxJTkVfQ1BQX0lTX0JSSUVGID0gTk8KIAot
IyBJZiB0aGUgSU5IRVJJVF9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkgdGhl
biBhbiB1bmRvY3VtZW50ZWQgCi0jIG1lbWJlciBpbmhlcml0cyB0aGUgZG9jdW1lbnRhdGlvbiBm
cm9tIGFueSBkb2N1bWVudGVkIG1lbWJlciB0aGF0IGl0IAotIyByZS1pbXBsZW1lbnRzLgorIyBJ
ZiB0aGUgSU5IRVJJVF9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gYW4gdW5kb2N1bWVudGVk
IG1lbWJlciBpbmhlcml0cyB0aGUKKyMgZG9jdW1lbnRhdGlvbiBmcm9tIGFueSBkb2N1bWVudGVk
IG1lbWJlciB0aGF0IGl0IHJlLWltcGxlbWVudHMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZ
RVMuCiAKIElOSEVSSVRfRE9DUyAgICAgICAgICAgPSBZRVMKIAotIyBJZiB0aGUgU0VQQVJBVEVf
TUVNQkVSX1BBR0VTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBwcm9kdWNl
IAotIyBhIG5ldyBwYWdlIGZvciBlYWNoIG1lbWJlci4gSWYgc2V0IHRvIE5PLCB0aGUgZG9jdW1l
bnRhdGlvbiBvZiBhIG1lbWJlciB3aWxsIAotIyBiZSBwYXJ0IG9mIHRoZSBmaWxlL2NsYXNzL25h
bWVzcGFjZSB0aGF0IGNvbnRhaW5zIGl0LgorIyBJZiB0aGUgU0VQQVJBVEVfTUVNQkVSX1BBR0VT
IHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBwcm9kdWNlIGEKKyMgbmV3IHBh
Z2UgZm9yIGVhY2ggbWVtYmVyLiBJZiBzZXQgdG8gTk8sIHRoZSBkb2N1bWVudGF0aW9uIG9mIGEg
bWVtYmVyIHdpbGwgYmUKKyMgcGFydCBvZiB0aGUgZmlsZS9jbGFzcy9uYW1lc3BhY2UgdGhhdCBj
b250YWlucyBpdC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTRVBBUkFURV9NRU1C
RVJfUEFHRVMgID0gTk8KIAotIyBUaGUgVEFCX1NJWkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0
aGUgbnVtYmVyIG9mIHNwYWNlcyBpbiBhIHRhYi4gCi0jIERveHlnZW4gdXNlcyB0aGlzIHZhbHVl
IHRvIHJlcGxhY2UgdGFicyBieSBzcGFjZXMgaW4gY29kZSBmcmFnbWVudHMuCisjIFRoZSBUQUJf
U0laRSB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBudW1iZXIgb2Ygc3BhY2VzIGluIGEgdGFi
LiBEb3h5Z2VuCisjIHVzZXMgdGhpcyB2YWx1ZSB0byByZXBsYWNlIHRhYnMgYnkgc3BhY2VzIGlu
IGNvZGUgZnJhZ21lbnRzLgorIyBNaW5pbXVtIHZhbHVlOiAxLCBtYXhpbXVtIHZhbHVlOiAxNiwg
ZGVmYXVsdCB2YWx1ZTogNC4KIAogVEFCX1NJWkUgICAgICAgICAgICAgICA9IDMKIAotIyBUaGlz
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbnVtYmVyIG9mIGFsaWFzZXMgdGhhdCBhY3Rz
IAotIyBhcyBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gQW4gYWxpYXMgaGFzIHRoZSBm
b3JtICJuYW1lPXZhbHVlIi4gCi0jIEZvciBleGFtcGxlIGFkZGluZyAic2lkZWVmZmVjdD1ccGFy
IFNpZGUgRWZmZWN0czpcbiIgd2lsbCBhbGxvdyB5b3UgdG8gCi0jIHB1dCB0aGUgY29tbWFuZCBc
c2lkZWVmZmVjdCAob3IgQHNpZGVlZmZlY3QpIGluIHRoZSBkb2N1bWVudGF0aW9uLCB3aGljaCAK
LSMgd2lsbCByZXN1bHQgaW4gYSB1c2VyLWRlZmluZWQgcGFyYWdyYXBoIHdpdGggaGVhZGluZyAi
U2lkZSBFZmZlY3RzOiIuIAotIyBZb3UgY2FuIHB1dCBcbidzIGluIHRoZSB2YWx1ZSBwYXJ0IG9m
IGFuIGFsaWFzIHRvIGluc2VydCBuZXdsaW5lcy4KKyMgVGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8g
c3BlY2lmeSBhIG51bWJlciBvZiBhbGlhc2VzIHRoYXQgYWN0IGFzIGNvbW1hbmRzIGluCisjIHRo
ZSBkb2N1bWVudGF0aW9uLiBBbiBhbGlhcyBoYXMgdGhlIGZvcm06CisjIG5hbWU9dmFsdWUKKyMg
Rm9yIGV4YW1wbGUgYWRkaW5nCisjICJzaWRlZWZmZWN0PUBwYXIgU2lkZSBFZmZlY3RzOlxuIgor
IyB3aWxsIGFsbG93IHlvdSB0byBwdXQgdGhlIGNvbW1hbmQgXHNpZGVlZmZlY3QgKG9yIEBzaWRl
ZWZmZWN0KSBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbiwgd2hpY2ggd2lsbCByZXN1bHQgaW4gYSB1
c2VyLWRlZmluZWQgcGFyYWdyYXBoIHdpdGggaGVhZGluZworIyAiU2lkZSBFZmZlY3RzOiIuIFlv
dSBjYW4gcHV0IFxuJ3MgaW4gdGhlIHZhbHVlIHBhcnQgb2YgYW4gYWxpYXMgdG8gaW5zZXJ0Cisj
IG5ld2xpbmVzLgogCiBBTElBU0VTICAgICAgICAgICAgICAgID0gInRlc3RDYXNlU2V0dXA9XGxp
bmsgQ3BwVVQ6OlRlc3RDYXNlOjpzZXRVcCgpIHNldFVwKClcZW5kbGluayIgXAogICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0Q2FzZVJ1bj1cbGluayBDcHBVVDo6VGVzdENhc2U6OnJ1bigp
IHJ1bigpXGVuZGxpbmsiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdENhc2VUZWFy
RG93bj1cbGluayBDcHBVVDo6VGVzdENhc2U6OnRlYXJEb3duKCkgdGVhckRvd24oKVxlbmRsaW5r
IiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgImpzb25fcmVmPTxhIEhSRUY9J2h0dHA6Ly93
d3cuanNvbi5vcmcvJz5KU09OIChKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbik8L2E+IgogCi0j
IFNldCB0aGUgT1BUSU1JWkVfT1VUUFVUX0ZPUl9DIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0
IGNvbnNpc3RzIG9mIEMgCi0jIHNvdXJjZXMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJh
dGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZCBmb3IgQy4gCi0jIEZvciBpbnN0YW5jZSwg
c29tZSBvZiB0aGUgbmFtZXMgdGhhdCBhcmUgdXNlZCB3aWxsIGJlIGRpZmZlcmVudC4gVGhlIGxp
c3QgCi0jIG9mIGFsbCBtZW1iZXJzIHdpbGwgYmUgb21pdHRlZCwgZXRjLgorIyBUaGlzIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbnVtYmVyIG9mIHdvcmQta2V5d29yZCBtYXBwaW5ncyAo
VENMIG9ubHkpLgorIyBBIG1hcHBpbmcgaGFzIHRoZSBmb3JtICJuYW1lPXZhbHVlIi4gRm9yIGV4
YW1wbGUgYWRkaW5nICJjbGFzcz1pdGNsOjpjbGFzcyIKKyMgd2lsbCBhbGxvdyB5b3UgdG8gdXNl
IHRoZSBjb21tYW5kIGNsYXNzIGluIHRoZSBpdGNsOjpjbGFzcyBtZWFuaW5nLgorCitUQ0xfU1VC
U1QgICAgICAgICAgICAgID0KKworIyBTZXQgdGhlIE9QVElNSVpFX09VVFBVVF9GT1JfQyB0YWcg
dG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBDIHNvdXJjZXMKKyMgb25seS4gRG94
eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZCBmb3Ig
Qy4gRm9yCisjIGluc3RhbmNlLCBzb21lIG9mIHRoZSBuYW1lcyB0aGF0IGFyZSB1c2VkIHdpbGwg
YmUgZGlmZmVyZW50LiBUaGUgbGlzdCBvZiBhbGwKKyMgbWVtYmVycyB3aWxsIGJlIG9taXR0ZWQs
IGV0Yy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBPUFRJTUlaRV9PVVRQVVRfRk9S
X0MgID0gTk8KIAotIyBTZXQgdGhlIE9QVElNSVpFX09VVFBVVF9KQVZBIHRhZyB0byBZRVMgaWYg
eW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEphdmEgCi0jIHNvdXJjZXMgb25seS4gRG94eWdlbiB3
aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZCBmb3IgCi0jIEph
dmEuIEZvciBpbnN0YW5jZSwgbmFtZXNwYWNlcyB3aWxsIGJlIHByZXNlbnRlZCBhcyBwYWNrYWdl
cywgcXVhbGlmaWVkIAotIyBzY29wZXMgd2lsbCBsb29rIGRpZmZlcmVudCwgZXRjLgorIyBTZXQg
dGhlIE9QVElNSVpFX09VVFBVVF9KQVZBIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNp
c3RzIG9mIEphdmEgb3IKKyMgUHl0aG9uIHNvdXJjZXMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4g
Z2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZAorIyBmb3IgdGhhdCBsYW5ndWFn
ZS4gRm9yIGluc3RhbmNlLCBuYW1lc3BhY2VzIHdpbGwgYmUgcHJlc2VudGVkIGFzIHBhY2thZ2Vz
LAorIyBxdWFsaWZpZWQgc2NvcGVzIHdpbGwgbG9vayBkaWZmZXJlbnQsIGV0Yy4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBPUFRJTUlaRV9PVVRQVVRfSkFWQSAgID0gTk8KIAotIyBT
ZXQgdGhlIE9QVElNSVpFX0ZPUl9GT1JUUkFOIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNv
bnNpc3RzIG9mIEZvcnRyYW4gCi0jIHNvdXJjZXMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2Vu
ZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZCBmb3IgCi0jIEZvcnRyYW4uCisjIFNl
dCB0aGUgT1BUSU1JWkVfRk9SX0ZPUlRSQU4gdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29u
c2lzdHMgb2YgRm9ydHJhbgorIyBzb3VyY2VzLiBEb3h5Z2VuIHdpbGwgdGhlbiBnZW5lcmF0ZSBv
dXRwdXQgdGhhdCBpcyB0YWlsb3JlZCBmb3IgRm9ydHJhbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgogCiBPUFRJTUlaRV9GT1JfRk9SVFJBTiAgID0gTk8KIAotIyBTZXQgdGhlIE9QVElN
SVpFX09VVFBVVF9WSERMIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIFZI
REwgCi0jIHNvdXJjZXMuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlz
IHRhaWxvcmVkIGZvciAKLSMgVkhETC4KKyMgU2V0IHRoZSBPUFRJTUlaRV9PVVRQVVRfVkhETCB0
YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBWSERMCisjIHNvdXJjZXMuIERv
eHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIHRhaWxvcmVkIGZvciBWSERM
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIE9QVElNSVpFX09VVFBVVF9WSERMICAg
PSBOTwogCi0jIERveHlnZW4gc2VsZWN0cyB0aGUgcGFyc2VyIHRvIHVzZSBkZXBlbmRpbmcgb24g
dGhlIGV4dGVuc2lvbiBvZiB0aGUgZmlsZXMgaXQgcGFyc2VzLiAKLSMgV2l0aCB0aGlzIHRhZyB5
b3UgY2FuIGFzc2lnbiB3aGljaCBwYXJzZXIgdG8gdXNlIGZvciBhIGdpdmVuIGV4dGVuc2lvbi4g
Ci0jIERveHlnZW4gaGFzIGEgYnVpbHQtaW4gbWFwcGluZywgYnV0IHlvdSBjYW4gb3ZlcnJpZGUg
b3IgZXh0ZW5kIGl0IHVzaW5nIHRoaXMgdGFnLiAKLSMgVGhlIGZvcm1hdCBpcyBleHQ9bGFuZ3Vh
Z2UsIHdoZXJlIGV4dCBpcyBhIGZpbGUgZXh0ZW5zaW9uLCBhbmQgbGFuZ3VhZ2UgaXMgb25lIG9m
IAotIyB0aGUgcGFyc2VycyBzdXBwb3J0ZWQgYnkgZG94eWdlbjogSURMLCBKYXZhLCBKYXZhc2Ny
aXB0LCBDIywgQywgQysrLCBELCBQSFAsIAotIyBPYmplY3RpdmUtQywgUHl0aG9uLCBGb3J0cmFu
LCBWSERMLCBDLCBDKysuIEZvciBpbnN0YW5jZSB0byBtYWtlIGRveHlnZW4gdHJlYXQgCi0jIC5p
bmMgZmlsZXMgYXMgRm9ydHJhbiBmaWxlcyAoZGVmYXVsdCBpcyBQSFApLCBhbmQgLmYgZmlsZXMg
YXMgQyAoZGVmYXVsdCBpcyBGb3J0cmFuKSwgCi0jIHVzZTogaW5jPUZvcnRyYW4gZj1DLiBOb3Rl
IHRoYXQgZm9yIGN1c3RvbSBleHRlbnNpb25zIHlvdSBhbHNvIG5lZWQgdG8gc2V0IEZJTEVfUEFU
VEVSTlMgb3RoZXJ3aXNlIHRoZSBmaWxlcyBhcmUgbm90IHJlYWQgYnkgZG94eWdlbi4KLQotRVhU
RU5TSU9OX01BUFBJTkcgICAgICA9IAotCi0jIElmIHlvdSB1c2UgU1RMIGNsYXNzZXMgKGkuZS4g
c3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yLCBldGMuKSBidXQgZG8gbm90IHdhbnQgCi0jIHRvIGlu
Y2x1ZGUgKGEgdGFnIGZpbGUgZm9yKSB0aGUgU1RMIHNvdXJjZXMgYXMgaW5wdXQsIHRoZW4geW91
IHNob3VsZCAKLSMgc2V0IHRoaXMgdGFnIHRvIFlFUyBpbiBvcmRlciB0byBsZXQgZG94eWdlbiBt
YXRjaCBmdW5jdGlvbnMgZGVjbGFyYXRpb25zIGFuZCAKLSMgZGVmaW5pdGlvbnMgd2hvc2UgYXJn
dW1lbnRzIGNvbnRhaW4gU1RMIGNsYXNzZXMgKGUuZy4gZnVuYyhzdGQ6OnN0cmluZyk7IHYucy4g
Ci0jIGZ1bmMoc3RkOjpzdHJpbmcpIHt9KS4gVGhpcyBhbHNvIG1ha2UgdGhlIGluaGVyaXRhbmNl
IGFuZCBjb2xsYWJvcmF0aW9uIAorIyBEb3h5Z2VuIHNlbGVjdHMgdGhlIHBhcnNlciB0byB1c2Ug
ZGVwZW5kaW5nIG9uIHRoZSBleHRlbnNpb24gb2YgdGhlIGZpbGVzIGl0CisjIHBhcnNlcy4gV2l0
aCB0aGlzIHRhZyB5b3UgY2FuIGFzc2lnbiB3aGljaCBwYXJzZXIgdG8gdXNlIGZvciBhIGdpdmVu
CisjIGV4dGVuc2lvbi4gRG94eWdlbiBoYXMgYSBidWlsdC1pbiBtYXBwaW5nLCBidXQgeW91IGNh
biBvdmVycmlkZSBvciBleHRlbmQgaXQKKyMgdXNpbmcgdGhpcyB0YWcuIFRoZSBmb3JtYXQgaXMg
ZXh0PWxhbmd1YWdlLCB3aGVyZSBleHQgaXMgYSBmaWxlIGV4dGVuc2lvbiwgYW5kCisjIGxhbmd1
YWdlIGlzIG9uZSBvZiB0aGUgcGFyc2VycyBzdXBwb3J0ZWQgYnkgZG94eWdlbjogSURMLCBKYXZh
LCBKYXZhU2NyaXB0LAorIyBDIywgQywgQysrLCBELCBQSFAsIE9iamVjdGl2ZS1DLCBQeXRob24s
IEZvcnRyYW4sIFZIREwuIEZvciBpbnN0YW5jZSB0byBtYWtlCisjIGRveHlnZW4gdHJlYXQgLmlu
YyBmaWxlcyBhcyBGb3J0cmFuIGZpbGVzIChkZWZhdWx0IGlzIFBIUCksIGFuZCAuZiBmaWxlcyBh
cyBDCisjIChkZWZhdWx0IGlzIEZvcnRyYW4pLCB1c2U6IGluYz1Gb3J0cmFuIGY9Qy4KKyMKKyMg
Tm90ZSBGb3IgZmlsZXMgd2l0aG91dCBleHRlbnNpb24geW91IGNhbiB1c2Ugbm9fZXh0ZW5zaW9u
IGFzIGEgcGxhY2Vob2xkZXIuCisjCisjIE5vdGUgdGhhdCBmb3IgY3VzdG9tIGV4dGVuc2lvbnMg
eW91IGFsc28gbmVlZCB0byBzZXQgRklMRV9QQVRURVJOUyBvdGhlcndpc2UKKyMgdGhlIGZpbGVz
IGFyZSBub3QgcmVhZCBieSBkb3h5Z2VuLgorCitFWFRFTlNJT05fTUFQUElORyAgICAgID0KKwor
IyBJZiB0aGUgTUFSS0RPV05fU1VQUE9SVCB0YWcgaXMgZW5hYmxlZCB0aGVuIGRveHlnZW4gcHJl
LXByb2Nlc3NlcyBhbGwgY29tbWVudHMKKyMgYWNjb3JkaW5nIHRvIHRoZSBNYXJrZG93biBmb3Jt
YXQsIHdoaWNoIGFsbG93cyBmb3IgbW9yZSByZWFkYWJsZQorIyBkb2N1bWVudGF0aW9uLiBTZWUg
aHR0cDovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi8gZm9yIGRldGFpbHMu
CisjIFRoZSBvdXRwdXQgb2YgbWFya2Rvd24gcHJvY2Vzc2luZyBpcyBmdXJ0aGVyIHByb2Nlc3Nl
ZCBieSBkb3h5Z2VuLCBzbyB5b3UgY2FuCisjIG1peCBkb3h5Z2VuLCBIVE1MLCBhbmQgWE1MIGNv
bW1hbmRzIHdpdGggTWFya2Rvd24gZm9ybWF0dGluZy4gRGlzYWJsZSBvbmx5IGluCisjIGNhc2Ug
b2YgYmFja3dhcmQgY29tcGF0aWJpbGl0aWVzIGlzc3Vlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IFlFUy4KKworTUFSS0RPV05fU1VQUE9SVCAgICAgICA9IFlFUworCisjIFdoZW4gZW5hYmxl
ZCBkb3h5Z2VuIHRyaWVzIHRvIGxpbmsgd29yZHMgdGhhdCBjb3JyZXNwb25kIHRvIGRvY3VtZW50
ZWQKKyMgY2xhc3Nlcywgb3IgbmFtZXNwYWNlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIGRvY3Vt
ZW50YXRpb24uIFN1Y2ggYSBsaW5rIGNhbgorIyBiZSBwcmV2ZW50ZWQgaW4gaW5kaXZpZHVhbCBj
YXNlcyBieSBieSBwdXR0aW5nIGEgJSBzaWduIGluIGZyb250IG9mIHRoZSB3b3JkCisjIG9yIGds
b2JhbGx5IGJ5IHNldHRpbmcgQVVUT0xJTktfU1VQUE9SVCB0byBOTy4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IFlFUy4KKworQVVUT0xJTktfU1VQUE9SVCAgICAgICA9IFlFUworCisjIElmIHlv
dSB1c2UgU1RMIGNsYXNzZXMgKGkuZS4gc3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yLCBldGMuKSBi
dXQgZG8gbm90IHdhbnQKKyMgdG8gaW5jbHVkZSAoYSB0YWcgZmlsZSBmb3IpIHRoZSBTVEwgc291
cmNlcyBhcyBpbnB1dCwgdGhlbiB5b3Ugc2hvdWxkIHNldCB0aGlzCisjIHRhZyB0byBZRVMgaW4g
b3JkZXIgdG8gbGV0IGRveHlnZW4gbWF0Y2ggZnVuY3Rpb25zIGRlY2xhcmF0aW9ucyBhbmQKKyMg
ZGVmaW5pdGlvbnMgd2hvc2UgYXJndW1lbnRzIGNvbnRhaW4gU1RMIGNsYXNzZXMgKGUuZy4gZnVu
YyhzdGQ6OnN0cmluZyk7CisjIHZlcnN1cyBmdW5jKHN0ZDo6c3RyaW5nKSB7fSkuIFRoaXMgYWxz
byBtYWtlIHRoZSBpbmhlcml0YW5jZSBhbmQgY29sbGFib3JhdGlvbgogIyBkaWFncmFtcyB0aGF0
IGludm9sdmUgU1RMIGNsYXNzZXMgbW9yZSBjb21wbGV0ZSBhbmQgYWNjdXJhdGUuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogQlVJTFRJTl9TVExfU1VQUE9SVCAgICA9IFlFUwogCi0j
IElmIHlvdSB1c2UgTWljcm9zb2Z0J3MgQysrL0NMSSBsYW5ndWFnZSwgeW91IHNob3VsZCBzZXQg
dGhpcyBvcHRpb24gdG8gWUVTIHRvIAorIyBJZiB5b3UgdXNlIE1pY3Jvc29mdCdzIEMrKy9DTEkg
bGFuZ3VhZ2UsIHlvdSBzaG91bGQgc2V0IHRoaXMgb3B0aW9uIHRvIFlFUyB0bwogIyBlbmFibGUg
cGFyc2luZyBzdXBwb3J0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIENQUF9DTElf
U1VQUE9SVCAgICAgICAgPSBOTwogCi0jIFNldCB0aGUgU0lQX1NVUFBPUlQgdGFnIHRvIFlFUyBp
ZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2Ygc2lwIHNvdXJjZXMgb25seS4gCi0jIERveHlnZW4g
d2lsbCBwYXJzZSB0aGVtIGxpa2Ugbm9ybWFsIEMrKyBidXQgd2lsbCBhc3N1bWUgYWxsIGNsYXNz
ZXMgdXNlIHB1YmxpYyAKLSMgaW5zdGVhZCBvZiBwcml2YXRlIGluaGVyaXRhbmNlIHdoZW4gbm8g
ZXhwbGljaXQgcHJvdGVjdGlvbiBrZXl3b3JkIGlzIHByZXNlbnQuCisjIFNldCB0aGUgU0lQX1NV
UFBPUlQgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2Ygc2lwIChzZWU6Cisj
IGh0dHA6Ly93d3cucml2ZXJiYW5rY29tcHV0aW5nLmNvLnVrL3NvZnR3YXJlL3NpcC9pbnRybykg
c291cmNlcyBvbmx5LiBEb3h5Z2VuCisjIHdpbGwgcGFyc2UgdGhlbSBsaWtlIG5vcm1hbCBDKysg
YnV0IHdpbGwgYXNzdW1lIGFsbCBjbGFzc2VzIHVzZSBwdWJsaWMgaW5zdGVhZAorIyBvZiBwcml2
YXRlIGluaGVyaXRhbmNlIHdoZW4gbm8gZXhwbGljaXQgcHJvdGVjdGlvbiBrZXl3b3JkIGlzIHBy
ZXNlbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogU0lQX1NVUFBPUlQgICAgICAg
ICAgICA9IE5PCiAKLSMgRm9yIE1pY3Jvc29mdCdzIElETCB0aGVyZSBhcmUgcHJvcGdldCBhbmQg
cHJvcHB1dCBhdHRyaWJ1dGVzIHRvIGluZGljYXRlIGdldHRlciAKLSMgYW5kIHNldHRlciBtZXRo
b2RzIGZvciBhIHByb3BlcnR5LiBTZXR0aW5nIHRoaXMgb3B0aW9uIHRvIFlFUyAodGhlIGRlZmF1
bHQpIAotIyB3aWxsIG1ha2UgZG94eWdlbiB0byByZXBsYWNlIHRoZSBnZXQgYW5kIHNldCBtZXRo
b2RzIGJ5IGEgcHJvcGVydHkgaW4gdGhlIAotIyBkb2N1bWVudGF0aW9uLiBUaGlzIHdpbGwgb25s
eSB3b3JrIGlmIHRoZSBtZXRob2RzIGFyZSBpbmRlZWQgZ2V0dGluZyBvciAKLSMgc2V0dGluZyBh
IHNpbXBsZSB0eXBlLiBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgb3IgeW91IHdhbnQgdG8gc2hv
dyB0aGUgCi0jIG1ldGhvZHMgYW55d2F5LCB5b3Ugc2hvdWxkIHNldCB0aGlzIG9wdGlvbiB0byBO
Ty4KKyMgRm9yIE1pY3Jvc29mdCdzIElETCB0aGVyZSBhcmUgcHJvcGdldCBhbmQgcHJvcHB1dCBh
dHRyaWJ1dGVzIHRvIGluZGljYXRlCisjIGdldHRlciBhbmQgc2V0dGVyIG1ldGhvZHMgZm9yIGEg
cHJvcGVydHkuIFNldHRpbmcgdGhpcyBvcHRpb24gdG8gWUVTIHdpbGwgbWFrZQorIyBkb3h5Z2Vu
IHRvIHJlcGxhY2UgdGhlIGdldCBhbmQgc2V0IG1ldGhvZHMgYnkgYSBwcm9wZXJ0eSBpbiB0aGUg
ZG9jdW1lbnRhdGlvbi4KKyMgVGhpcyB3aWxsIG9ubHkgd29yayBpZiB0aGUgbWV0aG9kcyBhcmUg
aW5kZWVkIGdldHRpbmcgb3Igc2V0dGluZyBhIHNpbXBsZQorIyB0eXBlLiBJZiB0aGlzIGlzIG5v
dCB0aGUgY2FzZSwgb3IgeW91IHdhbnQgdG8gc2hvdyB0aGUgbWV0aG9kcyBhbnl3YXksIHlvdQor
IyBzaG91bGQgc2V0IHRoaXMgb3B0aW9uIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLgogCiBJRExfUFJPUEVSVFlfU1VQUE9SVCAgID0gWUVTCiAKLSMgSWYgbWVtYmVyIGdyb3Vw
aW5nIGlzIHVzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kIHRoZSBESVNUUklCVVRFX0dST1VQ
X0RPQyAKLSMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIHJldXNlIHRoZSBk
b2N1bWVudGF0aW9uIG9mIHRoZSBmaXJzdCAKLSMgbWVtYmVyIGluIHRoZSBncm91cCAoaWYgYW55
KSBmb3IgdGhlIG90aGVyIG1lbWJlcnMgb2YgdGhlIGdyb3VwLiBCeSBkZWZhdWx0IAorIyBJZiBt
ZW1iZXIgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgdGhlIERJU1RS
SUJVVEVfR1JPVVBfRE9DCisjIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBy
ZXVzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmlyc3QKKyMgbWVtYmVyIGluIHRoZSBncm91
cCAoaWYgYW55KSBmb3IgdGhlIG90aGVyIG1lbWJlcnMgb2YgdGhlIGdyb3VwLiBCeSBkZWZhdWx0
CiAjIGFsbCBtZW1iZXJzIG9mIGEgZ3JvdXAgbXVzdCBiZSBkb2N1bWVudGVkIGV4cGxpY2l0bHku
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogRElTVFJJQlVURV9HUk9VUF9ET0MgICA9
IE5PCiAKLSMgU2V0IHRoZSBTVUJHUk9VUElORyB0YWcgdG8gWUVTICh0aGUgZGVmYXVsdCkgdG8g
YWxsb3cgY2xhc3MgbWVtYmVyIGdyb3VwcyBvZiAKLSMgdGhlIHNhbWUgdHlwZSAoZm9yIGluc3Rh
bmNlIGEgZ3JvdXAgb2YgcHVibGljIGZ1bmN0aW9ucykgdG8gYmUgcHV0IGFzIGEgCi0jIHN1Ymdy
b3VwIG9mIHRoYXQgdHlwZSAoZS5nLiB1bmRlciB0aGUgUHVibGljIEZ1bmN0aW9ucyBzZWN0aW9u
KS4gU2V0IGl0IHRvIAotIyBOTyB0byBwcmV2ZW50IHN1Ymdyb3VwaW5nLiBBbHRlcm5hdGl2ZWx5
LCB0aGlzIGNhbiBiZSBkb25lIHBlciBjbGFzcyB1c2luZyAKLSMgdGhlIFxub3N1Ymdyb3VwaW5n
IGNvbW1hbmQuCisjIFNldCB0aGUgU1VCR1JPVVBJTkcgdGFnIHRvIFlFUyB0byBhbGxvdyBjbGFz
cyBtZW1iZXIgZ3JvdXBzIG9mIHRoZSBzYW1lIHR5cGUKKyMgKGZvciBpbnN0YW5jZSBhIGdyb3Vw
IG9mIHB1YmxpYyBmdW5jdGlvbnMpIHRvIGJlIHB1dCBhcyBhIHN1Ymdyb3VwIG9mIHRoYXQKKyMg
dHlwZSAoZS5nLiB1bmRlciB0aGUgUHVibGljIEZ1bmN0aW9ucyBzZWN0aW9uKS4gU2V0IGl0IHRv
IE5PIHRvIHByZXZlbnQKKyMgc3ViZ3JvdXBpbmcuIEFsdGVybmF0aXZlbHksIHRoaXMgY2FuIGJl
IGRvbmUgcGVyIGNsYXNzIHVzaW5nIHRoZQorIyBcbm9zdWJncm91cGluZyBjb21tYW5kLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBTVUJHUk9VUElORyAgICAgICAgICAgID0gWUVT
CiAKLSMgV2hlbiBUWVBFREVGX0hJREVTX1NUUlVDVCBpcyBlbmFibGVkLCBhIHR5cGVkZWYgb2Yg
YSBzdHJ1Y3QsIHVuaW9uLCBvciBlbnVtIAotIyBpcyBkb2N1bWVudGVkIGFzIHN0cnVjdCwgdW5p
b24sIG9yIGVudW0gd2l0aCB0aGUgbmFtZSBvZiB0aGUgdHlwZWRlZi4gU28gCi0jIHR5cGVkZWYg
c3RydWN0IFR5cGVTIHt9IFR5cGVULCB3aWxsIGFwcGVhciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
cyBhIHN0cnVjdCAKLSMgd2l0aCBuYW1lIFR5cGVULiBXaGVuIGRpc2FibGVkIHRoZSB0eXBlZGVm
IHdpbGwgYXBwZWFyIGFzIGEgbWVtYmVyIG9mIGEgZmlsZSwgCi0jIG5hbWVzcGFjZSwgb3IgY2xh
c3MuIEFuZCB0aGUgc3RydWN0IHdpbGwgYmUgbmFtZWQgVHlwZVMuIFRoaXMgY2FuIHR5cGljYWxs
eSAKLSMgYmUgdXNlZnVsIGZvciBDIGNvZGUgaW4gY2FzZSB0aGUgY29kaW5nIGNvbnZlbnRpb24g
ZGljdGF0ZXMgdGhhdCBhbGwgY29tcG91bmQgCisjIFdoZW4gdGhlIElOTElORV9HUk9VUEVEX0NM
QVNTRVMgdGFnIGlzIHNldCB0byBZRVMsIGNsYXNzZXMsIHN0cnVjdHMgYW5kIHVuaW9ucworIyBh
cmUgc2hvd24gaW5zaWRlIHRoZSBncm91cCBpbiB3aGljaCB0aGV5IGFyZSBpbmNsdWRlZCAoZS5n
LiB1c2luZyBcaW5ncm91cCkKKyMgaW5zdGVhZCBvZiBvbiBhIHNlcGFyYXRlIHBhZ2UgKGZvciBI
VE1MIGFuZCBNYW4gcGFnZXMpIG9yIHNlY3Rpb24gKGZvciBMYVRlWAorIyBhbmQgUlRGKS4KKyMK
KyMgTm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBkb2VzIG5vdCB3b3JrIGluIGNvbWJpbmF0aW9uIHdp
dGgKKyMgU0VQQVJBVEVfTUVNQkVSX1BBR0VTLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisKK0lOTElORV9HUk9VUEVEX0NMQVNTRVMgPSBOTworCisjIFdoZW4gdGhlIElOTElORV9TSU1Q
TEVfU1RSVUNUUyB0YWcgaXMgc2V0IHRvIFlFUywgc3RydWN0cywgY2xhc3NlcywgYW5kIHVuaW9u
cworIyB3aXRoIG9ubHkgcHVibGljIGRhdGEgZmllbGRzIG9yIHNpbXBsZSB0eXBlZGVmIGZpZWxk
cyB3aWxsIGJlIHNob3duIGlubGluZSBpbgorIyB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgc2Nv
cGUgaW4gd2hpY2ggdGhleSBhcmUgZGVmaW5lZCAoaS5lLiBmaWxlLAorIyBuYW1lc3BhY2UsIG9y
IGdyb3VwIGRvY3VtZW50YXRpb24pLCBwcm92aWRlZCB0aGlzIHNjb3BlIGlzIGRvY3VtZW50ZWQu
IElmIHNldAorIyB0byBOTywgc3RydWN0cywgY2xhc3NlcywgYW5kIHVuaW9ucyBhcmUgc2hvd24g
b24gYSBzZXBhcmF0ZSBwYWdlIChmb3IgSFRNTCBhbmQKKyMgTWFuIHBhZ2VzKSBvciBzZWN0aW9u
IChmb3IgTGFUZVggYW5kIFJURikuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworSU5M
SU5FX1NJTVBMRV9TVFJVQ1RTICA9IE5PCisKKyMgV2hlbiBUWVBFREVGX0hJREVTX1NUUlVDVCB0
YWcgaXMgZW5hYmxlZCwgYSB0eXBlZGVmIG9mIGEgc3RydWN0LCB1bmlvbiwgb3IKKyMgZW51bSBp
cyBkb2N1bWVudGVkIGFzIHN0cnVjdCwgdW5pb24sIG9yIGVudW0gd2l0aCB0aGUgbmFtZSBvZiB0
aGUgdHlwZWRlZi4gU28KKyMgdHlwZWRlZiBzdHJ1Y3QgVHlwZVMge30gVHlwZVQsIHdpbGwgYXBw
ZWFyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFzIGEgc3RydWN0CisjIHdpdGggbmFtZSBUeXBlVC4g
V2hlbiBkaXNhYmxlZCB0aGUgdHlwZWRlZiB3aWxsIGFwcGVhciBhcyBhIG1lbWJlciBvZiBhIGZp
bGUsCisjIG5hbWVzcGFjZSwgb3IgY2xhc3MuIEFuZCB0aGUgc3RydWN0IHdpbGwgYmUgbmFtZWQg
VHlwZVMuIFRoaXMgY2FuIHR5cGljYWxseSBiZQorIyB1c2VmdWwgZm9yIEMgY29kZSBpbiBjYXNl
IHRoZSBjb2RpbmcgY29udmVudGlvbiBkaWN0YXRlcyB0aGF0IGFsbCBjb21wb3VuZAogIyB0eXBl
cyBhcmUgdHlwZWRlZidlZCBhbmQgb25seSB0aGUgdHlwZWRlZiBpcyByZWZlcmVuY2VkLCBuZXZl
ciB0aGUgdGFnIG5hbWUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogVFlQRURFRl9I
SURFU19TVFJVQ1QgICA9IE5PCiAKLSMgVGhlIFNZTUJPTF9DQUNIRV9TSVpFIGRldGVybWluZXMg
dGhlIHNpemUgb2YgdGhlIGludGVybmFsIGNhY2hlIHVzZSB0byAKLSMgZGV0ZXJtaW5lIHdoaWNo
IHN5bWJvbHMgdG8ga2VlcCBpbiBtZW1vcnkgYW5kIHdoaWNoIHRvIGZsdXNoIHRvIGRpc2suIAot
IyBXaGVuIHRoZSBjYWNoZSBpcyBmdWxsLCBsZXNzIG9mdGVuIHVzZWQgc3ltYm9scyB3aWxsIGJl
IHdyaXR0ZW4gdG8gZGlzay4gCi0jIEZvciBzbWFsbCB0byBtZWRpdW0gc2l6ZSBwcm9qZWN0cyAo
PDEwMDAgaW5wdXQgZmlsZXMpIHRoZSBkZWZhdWx0IHZhbHVlIGlzIAotIyBwcm9iYWJseSBnb29k
IGVub3VnaC4gRm9yIGxhcmdlciBwcm9qZWN0cyBhIHRvbyBzbWFsbCBjYWNoZSBzaXplIGNhbiBj
YXVzZSAKLSMgZG94eWdlbiB0byBiZSBidXN5IHN3YXBwaW5nIHN5bWJvbHMgdG8gYW5kIGZyb20g
ZGlzayBtb3N0IG9mIHRoZSB0aW1lIAotIyBjYXVzaW5nIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFu
Y2UgcGVuYWxpdHkuIAotIyBJZiB0aGUgc3lzdGVtIGhhcyBlbm91Z2ggcGh5c2ljYWwgbWVtb3J5
IGluY3JlYXNpbmcgdGhlIGNhY2hlIHdpbGwgaW1wcm92ZSB0aGUgCi0jIHBlcmZvcm1hbmNlIGJ5
IGtlZXBpbmcgbW9yZSBzeW1ib2xzIGluIG1lbW9yeS4gTm90ZSB0aGF0IHRoZSB2YWx1ZSB3b3Jr
cyBvbiAKLSMgYSBsb2dhcml0aG1pYyBzY2FsZSBzbyBpbmNyZWFzaW5nIHRoZSBzaXplIGJ5IG9u
ZSB3aWxsIHJvdWdseSBkb3VibGUgdGhlIAotIyBtZW1vcnkgdXNhZ2UuIFRoZSBjYWNoZSBzaXpl
IGlzIGdpdmVuIGJ5IHRoaXMgZm9ybXVsYTogCi0jIDJeKDE2K1NZTUJPTF9DQUNIRV9TSVpFKS4g
VGhlIHZhbGlkIHJhbmdlIGlzIDAuLjksIHRoZSBkZWZhdWx0IGlzIDAsIAotIyBjb3JyZXNwb25k
aW5nIHRvIGEgY2FjaGUgc2l6ZSBvZiAyXjE2ID0gNjU1MzYgc3ltYm9scwotCi1TWU1CT0xfQ0FD
SEVfU0laRSAgICAgID0gMAorIyBUaGUgc2l6ZSBvZiB0aGUgc3ltYm9sIGxvb2t1cCBjYWNoZSBj
YW4gYmUgc2V0IHVzaW5nIExPT0tVUF9DQUNIRV9TSVpFLiBUaGlzCisjIGNhY2hlIGlzIHVzZWQg
dG8gcmVzb2x2ZSBzeW1ib2xzIGdpdmVuIHRoZWlyIG5hbWUgYW5kIHNjb3BlLiBTaW5jZSB0aGlz
IGNhbiBiZQorIyBhbiBleHBlbnNpdmUgcHJvY2VzcyBhbmQgb2Z0ZW4gdGhlIHNhbWUgc3ltYm9s
IGFwcGVhcnMgbXVsdGlwbGUgdGltZXMgaW4gdGhlCisjIGNvZGUsIGRveHlnZW4ga2VlcHMgYSBj
YWNoZSBvZiBwcmUtcmVzb2x2ZWQgc3ltYm9scy4gSWYgdGhlIGNhY2hlIGlzIHRvbyBzbWFsbAor
IyBkb3h5Z2VuIHdpbGwgYmVjb21lIHNsb3dlci4gSWYgdGhlIGNhY2hlIGlzIHRvbyBsYXJnZSwg
bWVtb3J5IGlzIHdhc3RlZC4gVGhlCisjIGNhY2hlIHNpemUgaXMgZ2l2ZW4gYnkgdGhpcyBmb3Jt
dWxhOiAyXigxNitMT09LVVBfQ0FDSEVfU0laRSkuIFRoZSB2YWxpZCByYW5nZQorIyBpcyAwLi45
LCB0aGUgZGVmYXVsdCBpcyAwLCBjb3JyZXNwb25kaW5nIHRvIGEgY2FjaGUgc2l6ZSBvZiAyXjE2
PTY1NTM2CisjIHN5bWJvbHMuIEF0IHRoZSBlbmQgb2YgYSBydW4gZG94eWdlbiB3aWxsIHJlcG9y
dCB0aGUgY2FjaGUgdXNhZ2UgYW5kIHN1Z2dlc3QKKyMgdGhlIG9wdGltYWwgY2FjaGUgc2l6ZSBm
cm9tIGEgc3BlZWQgcG9pbnQgb2Ygdmlldy4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2
YWx1ZTogOSwgZGVmYXVsdCB2YWx1ZTogMC4KKworTE9PS1VQX0NBQ0hFX1NJWkUgICAgICA9IDAK
IAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBCdWlsZCByZWxhdGVkIGNvbmZpZ3VyYXRpb24gb3B0
aW9ucwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBFWFRSQUNUX0FMTCB0YWcgaXMg
c2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgYXNzdW1lIGFsbCBlbnRpdGllcyBpbiAKLSMgZG9jdW1l
bnRhdGlvbiBhcmUgZG9jdW1lbnRlZCwgZXZlbiBpZiBubyBkb2N1bWVudGF0aW9uIHdhcyBhdmFp
bGFibGUuIAotIyBQcml2YXRlIGNsYXNzIG1lbWJlcnMgYW5kIHN0YXRpYyBmaWxlIG1lbWJlcnMg
d2lsbCBiZSBoaWRkZW4gdW5sZXNzIAotIyB0aGUgRVhUUkFDVF9QUklWQVRFIGFuZCBFWFRSQUNU
X1NUQVRJQyB0YWdzIGFyZSBzZXQgdG8gWUVTCisjIElmIHRoZSBFWFRSQUNUX0FMTCB0YWcgaXMg
c2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgYXNzdW1lIGFsbCBlbnRpdGllcyBpbgorIyBkb2N1bWVu
dGF0aW9uIGFyZSBkb2N1bWVudGVkLCBldmVuIGlmIG5vIGRvY3VtZW50YXRpb24gd2FzIGF2YWls
YWJsZS4gUHJpdmF0ZQorIyBjbGFzcyBtZW1iZXJzIGFuZCBzdGF0aWMgZmlsZSBtZW1iZXJzIHdp
bGwgYmUgaGlkZGVuIHVubGVzcyB0aGUKKyMgRVhUUkFDVF9QUklWQVRFIHJlc3BlY3RpdmVseSBF
WFRSQUNUX1NUQVRJQyB0YWdzIGFyZSBzZXQgdG8gWUVTLgorIyBOb3RlOiBUaGlzIHdpbGwgYWxz
byBkaXNhYmxlIHRoZSB3YXJuaW5ncyBhYm91dCB1bmRvY3VtZW50ZWQgbWVtYmVycyB0aGF0IGFy
ZQorIyBub3JtYWxseSBwcm9kdWNlZCB3aGVuIFdBUk5JTkdTIGlzIHNldCB0byBZRVMuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogRVhUUkFDVF9BTEwgICAgICAgICAgICA9IFlFUwog
Ci0jIElmIHRoZSBFWFRSQUNUX1BSSVZBVEUgdGFnIGlzIHNldCB0byBZRVMgYWxsIHByaXZhdGUg
bWVtYmVycyBvZiBhIGNsYXNzIAotIyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0
aW9uLgorIyBJZiB0aGUgRVhUUkFDVF9QUklWQVRFIHRhZyBpcyBzZXQgdG8gWUVTIGFsbCBwcml2
YXRlIG1lbWJlcnMgb2YgYSBjbGFzcyB3aWxsCisjIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVu
dGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEVYVFJBQ1RfUFJJVkFURSAg
ICAgICAgPSBOTwogCi0jIElmIHRoZSBFWFRSQUNUX1NUQVRJQyB0YWcgaXMgc2V0IHRvIFlFUyBh
bGwgc3RhdGljIG1lbWJlcnMgb2YgYSBmaWxlIAotIyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBk
b2N1bWVudGF0aW9uLgorIyBJZiB0aGUgRVhUUkFDVF9QQUNLQUdFIHRhZyBpcyBzZXQgdG8gWUVT
IGFsbCBtZW1iZXJzIHdpdGggcGFja2FnZSBvciBpbnRlcm5hbAorIyBzY29wZSB3aWxsIGJlIGlu
Y2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisKK0VYVFJBQ1RfUEFDS0FHRSAgICAgICAgPSBOTworCisjIElmIHRoZSBFWFRSQUNUX1NUQVRJ
QyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgc3RhdGljIG1lbWJlcnMgb2YgYSBmaWxlIHdpbGwgYmUK
KyMgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KIAogRVhUUkFDVF9TVEFUSUMgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBFWFRSQUNU
X0xPQ0FMX0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMgY2xhc3NlcyAoYW5kIHN0cnVjdHMpIAot
IyBkZWZpbmVkIGxvY2FsbHkgaW4gc291cmNlIGZpbGVzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhl
IGRvY3VtZW50YXRpb24uIAotIyBJZiBzZXQgdG8gTk8gb25seSBjbGFzc2VzIGRlZmluZWQgaW4g
aGVhZGVyIGZpbGVzIGFyZSBpbmNsdWRlZC4KKyMgSWYgdGhlIEVYVFJBQ1RfTE9DQUxfQ0xBU1NF
UyB0YWcgaXMgc2V0IHRvIFlFUyBjbGFzc2VzIChhbmQgc3RydWN0cykgZGVmaW5lZAorIyBsb2Nh
bGx5IGluIHNvdXJjZSBmaWxlcyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9u
LiBJZiBzZXQgdG8gTk8KKyMgb25seSBjbGFzc2VzIGRlZmluZWQgaW4gaGVhZGVyIGZpbGVzIGFy
ZSBpbmNsdWRlZC4gRG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0CisjIGZvciBKYXZhIHNvdXJjZXMu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEVYVFJBQ1RfTE9DQUxfQ0xBU1NFUyAg
PSBOTwogCi0jIFRoaXMgZmxhZyBpcyBvbmx5IHVzZWZ1bCBmb3IgT2JqZWN0aXZlLUMgY29kZS4g
V2hlbiBzZXQgdG8gWUVTIGxvY2FsIAotIyBtZXRob2RzLCB3aGljaCBhcmUgZGVmaW5lZCBpbiB0
aGUgaW1wbGVtZW50YXRpb24gc2VjdGlvbiBidXQgbm90IGluIAotIyB0aGUgaW50ZXJmYWNlIGFy
ZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gCi0jIElmIHNldCB0byBOTyAodGhlIGRl
ZmF1bHQpIG9ubHkgbWV0aG9kcyBpbiB0aGUgaW50ZXJmYWNlIGFyZSBpbmNsdWRlZC4KKyMgVGhp
cyBmbGFnIGlzIG9ubHkgdXNlZnVsIGZvciBPYmplY3RpdmUtQyBjb2RlLiBXaGVuIHNldCB0byBZ
RVMgbG9jYWwgbWV0aG9kcywKKyMgd2hpY2ggYXJlIGRlZmluZWQgaW4gdGhlIGltcGxlbWVudGF0
aW9uIHNlY3Rpb24gYnV0IG5vdCBpbiB0aGUgaW50ZXJmYWNlIGFyZQorIyBpbmNsdWRlZCBpbiB0
aGUgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIE5PIG9ubHkgbWV0aG9kcyBpbiB0aGUgaW50ZXJm
YWNlIGFyZQorIyBpbmNsdWRlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBFWFRS
QUNUX0xPQ0FMX01FVEhPRFMgID0gTk8KIAotIyBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIFlFUywg
dGhlIG1lbWJlcnMgb2YgYW5vbnltb3VzIG5hbWVzcGFjZXMgd2lsbCBiZSAKLSMgZXh0cmFjdGVk
IGFuZCBhcHBlYXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYXMgYSBuYW1lc3BhY2UgY2FsbGVkIAot
IyAnYW5vbnltb3VzX25hbWVzcGFjZXtmaWxlfScsIHdoZXJlIGZpbGUgd2lsbCBiZSByZXBsYWNl
ZCB3aXRoIHRoZSBiYXNlIAotIyBuYW1lIG9mIHRoZSBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGFu
b255bW91cyBuYW1lc3BhY2UuIEJ5IGRlZmF1bHQgCi0jIGFub255bW91cyBuYW1lc3BhY2UgYXJl
IGhpZGRlbi4KKyMgSWYgdGhpcyBmbGFnIGlzIHNldCB0byBZRVMsIHRoZSBtZW1iZXJzIG9mIGFu
b255bW91cyBuYW1lc3BhY2VzIHdpbGwgYmUKKyMgZXh0cmFjdGVkIGFuZCBhcHBlYXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYXMgYSBuYW1lc3BhY2UgY2FsbGVkCisjICdhbm9ueW1vdXNfbmFtZXNw
YWNle2ZpbGV9Jywgd2hlcmUgZmlsZSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGJhc2UgbmFt
ZSBvZgorIyB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBhbm9ueW1vdXMgbmFtZXNwYWNlLiBC
eSBkZWZhdWx0IGFub255bW91cyBuYW1lc3BhY2UKKyMgYXJlIGhpZGRlbi4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgogCiBFWFRSQUNUX0FOT05fTlNQQUNFUyAgID0gTk8KIAotIyBJZiB0
aGUgSElERV9VTkRPQ19NRU1CRVJTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgaGlk
ZSBhbGwgCi0jIHVuZG9jdW1lbnRlZCBtZW1iZXJzIG9mIGRvY3VtZW50ZWQgY2xhc3NlcywgZmls
ZXMgb3IgbmFtZXNwYWNlcy4gCi0jIElmIHNldCB0byBOTyAodGhlIGRlZmF1bHQpIHRoZXNlIG1l
bWJlcnMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgCi0jIHZhcmlvdXMgb3ZlcnZpZXdzLCBidXQg
bm8gZG9jdW1lbnRhdGlvbiBzZWN0aW9uIGlzIGdlbmVyYXRlZC4gCi0jIFRoaXMgb3B0aW9uIGhh
cyBubyBlZmZlY3QgaWYgRVhUUkFDVF9BTEwgaXMgZW5hYmxlZC4KKyMgSWYgdGhlIEhJREVfVU5E
T0NfTUVNQkVSUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYWxsCisjIHVu
ZG9jdW1lbnRlZCBtZW1iZXJzIGluc2lkZSBkb2N1bWVudGVkIGNsYXNzZXMgb3IgZmlsZXMuIElm
IHNldCB0byBOTyB0aGVzZQorIyBtZW1iZXJzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHZhcmlv
dXMgb3ZlcnZpZXdzLCBidXQgbm8gZG9jdW1lbnRhdGlvbgorIyBzZWN0aW9uIGlzIGdlbmVyYXRl
ZC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBpZiBFWFRSQUNUX0FMTCBpcyBlbmFibGVkLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEhJREVfVU5ET0NfTUVNQkVSUyAgICAgPSBO
TwogCi0jIElmIHRoZSBISURFX1VORE9DX0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMsIERveHln
ZW4gd2lsbCBoaWRlIGFsbCAKLSMgdW5kb2N1bWVudGVkIGNsYXNzZXMgdGhhdCBhcmUgbm9ybWFs
bHkgdmlzaWJsZSBpbiB0aGUgY2xhc3MgaGllcmFyY2h5LiAKLSMgSWYgc2V0IHRvIE5PICh0aGUg
ZGVmYXVsdCkgdGhlc2UgY2xhc3NlcyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSB2YXJpb3VzIAot
IyBvdmVydmlld3MuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QgaWYgRVhUUkFDVF9BTEwgaXMg
ZW5hYmxlZC4KKyMgSWYgdGhlIEhJREVfVU5ET0NfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlFUywg
ZG94eWdlbiB3aWxsIGhpZGUgYWxsCisjIHVuZG9jdW1lbnRlZCBjbGFzc2VzIHRoYXQgYXJlIG5v
cm1hbGx5IHZpc2libGUgaW4gdGhlIGNsYXNzIGhpZXJhcmNoeS4gSWYgc2V0CisjIHRvIE5PIHRo
ZXNlIGNsYXNzZXMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgdmFyaW91cyBvdmVydmlld3MuIFRo
aXMgb3B0aW9uIGhhcworIyBubyBlZmZlY3QgaWYgRVhUUkFDVF9BTEwgaXMgZW5hYmxlZC4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBISURFX1VORE9DX0NMQVNTRVMgICAgID0gTk8K
IAotIyBJZiB0aGUgSElERV9GUklFTkRfQ09NUE9VTkRTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5
Z2VuIHdpbGwgaGlkZSBhbGwgCi0jIGZyaWVuZCAoY2xhc3N8c3RydWN0fHVuaW9uKSBkZWNsYXJh
dGlvbnMuIAotIyBJZiBzZXQgdG8gTk8gKHRoZSBkZWZhdWx0KSB0aGVzZSBkZWNsYXJhdGlvbnMg
d2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgCi0jIGRvY3VtZW50YXRpb24uCisjIElmIHRoZSBISURF
X0ZSSUVORF9DT01QT1VORFMgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBoaWRlIGFs
bCBmcmllbmQKKyMgKGNsYXNzfHN0cnVjdHx1bmlvbikgZGVjbGFyYXRpb25zLiBJZiBzZXQgdG8g
Tk8gdGhlc2UgZGVjbGFyYXRpb25zIHdpbGwgYmUKKyMgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50
YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSElERV9GUklFTkRfQ09NUE9V
TkRTICA9IE5PCiAKLSMgSWYgdGhlIEhJREVfSU5fQk9EWV9ET0NTIHRhZyBpcyBzZXQgdG8gWUVT
LCBEb3h5Z2VuIHdpbGwgaGlkZSBhbnkgCi0jIGRvY3VtZW50YXRpb24gYmxvY2tzIGZvdW5kIGlu
c2lkZSB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uLiAKLSMgSWYgc2V0IHRvIE5PICh0aGUgZGVmYXVs
dCkgdGhlc2UgYmxvY2tzIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIAotIyBmdW5jdGlvbidzIGRl
dGFpbGVkIGRvY3VtZW50YXRpb24gYmxvY2suCisjIElmIHRoZSBISURFX0lOX0JPRFlfRE9DUyB0
YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYW55CisjIGRvY3VtZW50YXRpb24g
YmxvY2tzIGZvdW5kIGluc2lkZSB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uLiBJZiBzZXQgdG8gTk8g
dGhlc2UKKyMgYmxvY2tzIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGZ1bmN0aW9uJ3MgZGV0YWls
ZWQgZG9jdW1lbnRhdGlvbiBibG9jay4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBI
SURFX0lOX0JPRFlfRE9DUyAgICAgID0gTk8KIAotIyBUaGUgSU5URVJOQUxfRE9DUyB0YWcgZGV0
ZXJtaW5lcyBpZiBkb2N1bWVudGF0aW9uIAotIyB0aGF0IGlzIHR5cGVkIGFmdGVyIGEgXGludGVy
bmFsIGNvbW1hbmQgaXMgaW5jbHVkZWQuIElmIHRoZSB0YWcgaXMgc2V0IAotIyB0byBOTyAodGhl
IGRlZmF1bHQpIHRoZW4gdGhlIGRvY3VtZW50YXRpb24gd2lsbCBiZSBleGNsdWRlZC4gCi0jIFNl
dCBpdCB0byBZRVMgdG8gaW5jbHVkZSB0aGUgaW50ZXJuYWwgZG9jdW1lbnRhdGlvbi4KKyMgVGhl
IElOVEVSTkFMX0RPQ1MgdGFnIGRldGVybWluZXMgaWYgZG9jdW1lbnRhdGlvbiB0aGF0IGlzIHR5
cGVkIGFmdGVyIGEKKyMgXGludGVybmFsIGNvbW1hbmQgaXMgaW5jbHVkZWQuIElmIHRoZSB0YWcg
aXMgc2V0IHRvIE5PIHRoZW4gdGhlIGRvY3VtZW50YXRpb24KKyMgd2lsbCBiZSBleGNsdWRlZC4g
U2V0IGl0IHRvIFlFUyB0byBpbmNsdWRlIHRoZSBpbnRlcm5hbCBkb2N1bWVudGF0aW9uLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIElOVEVSTkFMX0RPQ1MgICAgICAgICAgPSBZRVMK
IAotIyBJZiB0aGUgQ0FTRV9TRU5TRV9OQU1FUyB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gRG94eWdl
biB3aWxsIG9ubHkgZ2VuZXJhdGUgCi0jIGZpbGUgbmFtZXMgaW4gbG93ZXItY2FzZSBsZXR0ZXJz
LiBJZiBzZXQgdG8gWUVTIHVwcGVyLWNhc2UgbGV0dGVycyBhcmUgYWxzbyAKLSMgYWxsb3dlZC4g
VGhpcyBpcyB1c2VmdWwgaWYgeW91IGhhdmUgY2xhc3NlcyBvciBmaWxlcyB3aG9zZSBuYW1lcyBv
bmx5IGRpZmZlciAKLSMgaW4gY2FzZSBhbmQgaWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0cyBj
YXNlIHNlbnNpdGl2ZSBmaWxlIG5hbWVzLiBXaW5kb3dzIAorIyBJZiB0aGUgQ0FTRV9TRU5TRV9O
QU1FUyB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gZG94eWdlbiB3aWxsIG9ubHkgZ2VuZXJhdGUgZmls
ZQorIyBuYW1lcyBpbiBsb3dlci1jYXNlIGxldHRlcnMuIElmIHNldCB0byBZRVMgdXBwZXItY2Fz
ZSBsZXR0ZXJzIGFyZSBhbHNvCisjIGFsbG93ZWQuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZl
IGNsYXNzZXMgb3IgZmlsZXMgd2hvc2UgbmFtZXMgb25seSBkaWZmZXIKKyMgaW4gY2FzZSBhbmQg
aWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0cyBjYXNlIHNlbnNpdGl2ZSBmaWxlIG5hbWVzLiBX
aW5kb3dzCiAjIGFuZCBNYWMgdXNlcnMgYXJlIGFkdmlzZWQgdG8gc2V0IHRoaXMgb3B0aW9uIHRv
IE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogc3lzdGVtIGRlcGVuZGVudC4KIAogQ0FTRV9T
RU5TRV9OQU1FUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIEhJREVfU0NPUEVfTkFNRVMgdGFnIGlz
IHNldCB0byBOTyAodGhlIGRlZmF1bHQpIHRoZW4gRG94eWdlbiAKLSMgd2lsbCBzaG93IG1lbWJl
cnMgd2l0aCB0aGVpciBmdWxsIGNsYXNzIGFuZCBuYW1lc3BhY2Ugc2NvcGVzIGluIHRoZSAKLSMg
ZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIFlFUyB0aGUgc2NvcGUgd2lsbCBiZSBoaWRkZW4uCisj
IElmIHRoZSBISURFX1NDT1BFX05BTUVTIHRhZyBpcyBzZXQgdG8gTk8gdGhlbiBkb3h5Z2VuIHdp
bGwgc2hvdyBtZW1iZXJzIHdpdGgKKyMgdGhlaXIgZnVsbCBjbGFzcyBhbmQgbmFtZXNwYWNlIHNj
b3BlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIFlFUyB0aGUKKyMgc2NvcGUgd2ls
bCBiZSBoaWRkZW4uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSElERV9TQ09QRV9O
QU1FUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFNIT1dfSU5DTFVERV9GSUxFUyB0YWcgaXMgc2V0
IHRvIFlFUyAodGhlIGRlZmF1bHQpIHRoZW4gRG94eWdlbiAKLSMgd2lsbCBwdXQgYSBsaXN0IG9m
IHRoZSBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBieSBhIGZpbGUgaW4gdGhlIGRvY3VtZW50YXRp
b24gCi0jIG9mIHRoYXQgZmlsZS4KKyMgSWYgdGhlIFNIT1dfSU5DTFVERV9GSUxFUyB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBwdXQgYSBsaXN0IG9mCisjIHRoZSBmaWxlcyB0
aGF0IGFyZSBpbmNsdWRlZCBieSBhIGZpbGUgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhhdCBm
aWxlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBTSE9XX0lOQ0xVREVfRklMRVMg
ICAgID0gWUVTCiAKLSMgSWYgdGhlIElOTElORV9JTkZPIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUg
ZGVmYXVsdCkgdGhlbiBhIHRhZyBbaW5saW5lXSAKLSMgaXMgaW5zZXJ0ZWQgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gZm9yIGlubGluZSBtZW1iZXJzLgorIyBJZiB0aGUgRk9SQ0VfTE9DQUxfSU5DTFVE
RVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgbGlzdCBpbmNsdWRlCisjIGZp
bGVzIHdpdGggZG91YmxlIHF1b3RlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbiByYXRoZXIgdGhhbiB3
aXRoIHNoYXJwIGJyYWNrZXRzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0ZPUkNF
X0xPQ0FMX0lOQ0xVREVTICAgPSBOTworCisjIElmIHRoZSBJTkxJTkVfSU5GTyB0YWcgaXMgc2V0
IHRvIFlFUyB0aGVuIGEgdGFnIFtpbmxpbmVdIGlzIGluc2VydGVkIGluIHRoZQorIyBkb2N1bWVu
dGF0aW9uIGZvciBpbmxpbmUgbWVtYmVycy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4K
IAogSU5MSU5FX0lORk8gICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBTT1JUX01FTUJFUl9E
T0NTIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkgdGhlbiBkb3h5Z2VuIAotIyB3aWxs
IHNvcnQgdGhlIChkZXRhaWxlZCkgZG9jdW1lbnRhdGlvbiBvZiBmaWxlIGFuZCBjbGFzcyBtZW1i
ZXJzIAotIyBhbHBoYWJldGljYWxseSBieSBtZW1iZXIgbmFtZS4gSWYgc2V0IHRvIE5PIHRoZSBt
ZW1iZXJzIHdpbGwgYXBwZWFyIGluIAotIyBkZWNsYXJhdGlvbiBvcmRlci4KKyMgSWYgdGhlIFNP
UlRfTUVNQkVSX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc29ydCB0
aGUKKyMgKGRldGFpbGVkKSBkb2N1bWVudGF0aW9uIG9mIGZpbGUgYW5kIGNsYXNzIG1lbWJlcnMg
YWxwaGFiZXRpY2FsbHkgYnkgbWVtYmVyCisjIG5hbWUuIElmIHNldCB0byBOTyB0aGUgbWVtYmVy
cyB3aWxsIGFwcGVhciBpbiBkZWNsYXJhdGlvbiBvcmRlci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IFlFUy4KIAogU09SVF9NRU1CRVJfRE9DUyAgICAgICA9IFlFUwogCi0jIElmIHRoZSBTT1JU
X0JSSUVGX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc29ydCB0aGUg
Ci0jIGJyaWVmIGRvY3VtZW50YXRpb24gb2YgZmlsZSwgbmFtZXNwYWNlIGFuZCBjbGFzcyBtZW1i
ZXJzIGFscGhhYmV0aWNhbGx5IAotIyBieSBtZW1iZXIgbmFtZS4gSWYgc2V0IHRvIE5PICh0aGUg
ZGVmYXVsdCkgdGhlIG1lbWJlcnMgd2lsbCBhcHBlYXIgaW4gCi0jIGRlY2xhcmF0aW9uIG9yZGVy
LgorIyBJZiB0aGUgU09SVF9CUklFRl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdl
biB3aWxsIHNvcnQgdGhlIGJyaWVmCisjIGRlc2NyaXB0aW9ucyBvZiBmaWxlLCBuYW1lc3BhY2Ug
YW5kIGNsYXNzIG1lbWJlcnMgYWxwaGFiZXRpY2FsbHkgYnkgbWVtYmVyCisjIG5hbWUuIElmIHNl
dCB0byBOTyB0aGUgbWVtYmVycyB3aWxsIGFwcGVhciBpbiBkZWNsYXJhdGlvbiBvcmRlci4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTT1JUX0JSSUVGX0RPQ1MgICAgICAgID0gTk8K
IAotIyBJZiB0aGUgU09SVF9HUk9VUF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHln
ZW4gd2lsbCBzb3J0IHRoZSAKLSMgaGllcmFyY2h5IG9mIGdyb3VwIG5hbWVzIGludG8gYWxwaGFi
ZXRpY2FsIG9yZGVyLiBJZiBzZXQgdG8gTk8gKHRoZSBkZWZhdWx0KSAKLSMgdGhlIGdyb3VwIG5h
bWVzIHdpbGwgYXBwZWFyIGluIHRoZWlyIGRlZmluZWQgb3JkZXIuCisjIElmIHRoZSBTT1JUX01F
TUJFUlNfQ1RPUlNfMVNUIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNvcnQg
dGhlCisjIChicmllZiBhbmQgZGV0YWlsZWQpIGRvY3VtZW50YXRpb24gb2YgY2xhc3MgbWVtYmVy
cyBzbyB0aGF0IGNvbnN0cnVjdG9ycyBhbmQKKyMgZGVzdHJ1Y3RvcnMgYXJlIGxpc3RlZCBmaXJz
dC4gSWYgc2V0IHRvIE5PIHRoZSBjb25zdHJ1Y3RvcnMgd2lsbCBhcHBlYXIgaW4gdGhlCisjIHJl
c3BlY3RpdmUgb3JkZXJzIGRlZmluZWQgYnkgU09SVF9CUklFRl9ET0NTIGFuZCBTT1JUX01FTUJF
Ul9ET0NTLgorIyBOb3RlOiBJZiBTT1JUX0JSSUVGX0RPQ1MgaXMgc2V0IHRvIE5PIHRoaXMgb3B0
aW9uIGlzIGlnbm9yZWQgZm9yIHNvcnRpbmcgYnJpZWYKKyMgbWVtYmVyIGRvY3VtZW50YXRpb24u
CisjIE5vdGU6IElmIFNPUlRfTUVNQkVSX0RPQ1MgaXMgc2V0IHRvIE5PIHRoaXMgb3B0aW9uIGlz
IGlnbm9yZWQgZm9yIHNvcnRpbmcKKyMgZGV0YWlsZWQgbWVtYmVyIGRvY3VtZW50YXRpb24uCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworU09SVF9NRU1CRVJTX0NUT1JTXzFTVCA9IE5P
CisKKyMgSWYgdGhlIFNPUlRfR1JPVVBfTkFNRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5
Z2VuIHdpbGwgc29ydCB0aGUgaGllcmFyY2h5CisjIG9mIGdyb3VwIG5hbWVzIGludG8gYWxwaGFi
ZXRpY2FsIG9yZGVyLiBJZiBzZXQgdG8gTk8gdGhlIGdyb3VwIG5hbWVzIHdpbGwKKyMgYXBwZWFy
IGluIHRoZWlyIGRlZmluZWQgb3JkZXIuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAog
U09SVF9HUk9VUF9OQU1FUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFNPUlRfQllfU0NPUEVfTkFN
RSB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIGNsYXNzIGxpc3Qgd2lsbCBiZSAKLSMgc29ydGVkIGJ5
IGZ1bGx5LXF1YWxpZmllZCBuYW1lcywgaW5jbHVkaW5nIG5hbWVzcGFjZXMuIElmIHNldCB0byAK
LSMgTk8gKHRoZSBkZWZhdWx0KSwgdGhlIGNsYXNzIGxpc3Qgd2lsbCBiZSBzb3J0ZWQgb25seSBi
eSBjbGFzcyBuYW1lLCAKLSMgbm90IGluY2x1ZGluZyB0aGUgbmFtZXNwYWNlIHBhcnQuIAotIyBO
b3RlOiBUaGlzIG9wdGlvbiBpcyBub3QgdmVyeSB1c2VmdWwgaWYgSElERV9TQ09QRV9OQU1FUyBp
cyBzZXQgdG8gWUVTLiAKLSMgTm90ZTogVGhpcyBvcHRpb24gYXBwbGllcyBvbmx5IHRvIHRoZSBj
bGFzcyBsaXN0LCBub3QgdG8gdGhlIAotIyBhbHBoYWJldGljYWwgbGlzdC4KKyMgSWYgdGhlIFNP
UlRfQllfU0NPUEVfTkFNRSB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIGNsYXNzIGxpc3Qgd2lsbCBi
ZSBzb3J0ZWQgYnkKKyMgZnVsbHktcXVhbGlmaWVkIG5hbWVzLCBpbmNsdWRpbmcgbmFtZXNwYWNl
cy4gSWYgc2V0IHRvIE5PLCB0aGUgY2xhc3MgbGlzdCB3aWxsCisjIGJlIHNvcnRlZCBvbmx5IGJ5
IGNsYXNzIG5hbWUsIG5vdCBpbmNsdWRpbmcgdGhlIG5hbWVzcGFjZSBwYXJ0LgorIyBOb3RlOiBU
aGlzIG9wdGlvbiBpcyBub3QgdmVyeSB1c2VmdWwgaWYgSElERV9TQ09QRV9OQU1FUyBpcyBzZXQg
dG8gWUVTLgorIyBOb3RlOiBUaGlzIG9wdGlvbiBhcHBsaWVzIG9ubHkgdG8gdGhlIGNsYXNzIGxp
c3QsIG5vdCB0byB0aGUgYWxwaGFiZXRpY2FsCisjIGxpc3QuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KIAogU09SVF9CWV9TQ09QRV9OQU1FICAgICA9IFlFUwogCi0jIFRoZSBHRU5FUkFU
RV9UT0RPTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIChZRVMpIG9yIAotIyBkaXNhYmxl
IChOTykgdGhlIHRvZG8gbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQgYnkgcHV0dGluZyBcdG9k
byAKLSMgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIElmIHRoZSBTVFJJQ1RfUFJP
VE9fTUFUQ0hJTkcgb3B0aW9uIGlzIGVuYWJsZWQgYW5kIGRveHlnZW4gZmFpbHMgdG8gZG8gcHJv
cGVyCisjIHR5cGUgcmVzb2x1dGlvbiBvZiBhbGwgcGFyYW1ldGVycyBvZiBhIGZ1bmN0aW9uIGl0
IHdpbGwgcmVqZWN0IGEgbWF0Y2ggYmV0d2VlbgorIyB0aGUgcHJvdG90eXBlIGFuZCB0aGUgaW1w
bGVtZW50YXRpb24gb2YgYSBtZW1iZXIgZnVuY3Rpb24gZXZlbiBpZiB0aGVyZSBpcworIyBvbmx5
IG9uZSBjYW5kaWRhdGUgb3IgaXQgaXMgb2J2aW91cyB3aGljaCBjYW5kaWRhdGUgdG8gY2hvb3Nl
IGJ5IGRvaW5nIGEKKyMgc2ltcGxlIHN0cmluZyBtYXRjaC4gQnkgZGlzYWJsaW5nIFNUUklDVF9Q
Uk9UT19NQVRDSElORyBkb3h5Z2VuIHdpbGwgc3RpbGwKKyMgYWNjZXB0IGEgbWF0Y2ggYmV0d2Vl
biBwcm90b3R5cGUgYW5kIGltcGxlbWVudGF0aW9uIGluIHN1Y2ggY2FzZXMuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKworU1RSSUNUX1BST1RPX01BVENISU5HICA9IE5PCisKKyMgVGhl
IEdFTkVSQVRFX1RPRE9MSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKCBZRVMpIG9yIGRp
c2FibGUgKCBOTykgdGhlCisjIHRvZG8gbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQgYnkgcHV0
dGluZyBcdG9kbyBjb21tYW5kcyBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KIAogR0VORVJBVEVfVE9ET0xJU1QgICAgICA9IFlFUwogCi0jIFRo
ZSBHRU5FUkFURV9URVNUTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIChZRVMpIG9yIAot
IyBkaXNhYmxlIChOTykgdGhlIHRlc3QgbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQgYnkgcHV0
dGluZyBcdGVzdCAKLSMgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBHRU5F
UkFURV9URVNUTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlICggWUVTKSBvciBkaXNhYmxl
ICggTk8pIHRoZQorIyB0ZXN0IGxpc3QuIFRoaXMgbGlzdCBpcyBjcmVhdGVkIGJ5IHB1dHRpbmcg
XHRlc3QgY29tbWFuZHMgaW4gdGhlCisjIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCiAKIEdFTkVSQVRFX1RFU1RMSVNUICAgICAgPSBOTwogCi0jIFRoZSBHRU5F
UkFURV9CVUdMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKFlFUykgb3IgCi0jIGRpc2Fi
bGUgKE5PKSB0aGUgYnVnIGxpc3QuIFRoaXMgbGlzdCBpcyBjcmVhdGVkIGJ5IHB1dHRpbmcgXGJ1
ZyAKLSMgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBHRU5FUkFURV9CVUdM
SVNUIHRhZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgKCBZRVMpIG9yIGRpc2FibGUgKCBOTykgdGhl
IGJ1ZworIyBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRlZCBieSBwdXR0aW5nIFxidWcgY29tbWFu
ZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAK
IEdFTkVSQVRFX0JVR0xJU1QgICAgICAgPSBOTwogCi0jIFRoZSBHRU5FUkFURV9ERVBSRUNBVEVE
TElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIChZRVMpIG9yIAotIyBkaXNhYmxlIChOTykg
dGhlIGRlcHJlY2F0ZWQgbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQgYnkgcHV0dGluZyAKLSMg
XGRlcHJlY2F0ZWQgY29tbWFuZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBHRU5FUkFU
RV9ERVBSRUNBVEVETElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlICggWUVTKSBvciBkaXNh
YmxlICggTk8pCisjIHRoZSBkZXByZWNhdGVkIGxpc3QuIFRoaXMgbGlzdCBpcyBjcmVhdGVkIGJ5
IHB1dHRpbmcgXGRlcHJlY2F0ZWQgY29tbWFuZHMgaW4KKyMgdGhlIGRvY3VtZW50YXRpb24uCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEdFTkVSQVRFX0RFUFJFQ0FURURMSVNUPSBZ
RVMKIAotIyBUaGUgRU5BQkxFRF9TRUNUSU9OUyB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIGNv
bmRpdGlvbmFsIAotIyBkb2N1bWVudGF0aW9uIHNlY3Rpb25zLCBtYXJrZWQgYnkgXGlmIHNlY3Rp
b25uYW1lIC4uLiBcZW5kaWYuCisjIFRoZSBFTkFCTEVEX1NFQ1RJT05TIHRhZyBjYW4gYmUgdXNl
ZCB0byBlbmFibGUgY29uZGl0aW9uYWwgZG9jdW1lbnRhdGlvbgorIyBzZWN0aW9ucywgbWFya2Vk
IGJ5IFxpZiA8c2VjdGlvbl9sYWJlbD4gLi4uIFxlbmRpZiBhbmQgXGNvbmQgPHNlY3Rpb25fbGFi
ZWw+CisjIC4uLiBcZW5kY29uZCBibG9ja3MuCiAKLUVOQUJMRURfU0VDVElPTlMgICAgICAgPSAK
K0VOQUJMRURfU0VDVElPTlMgICAgICAgPQogCi0jIFRoZSBNQVhfSU5JVElBTElaRVJfTElORVMg
dGFnIGRldGVybWluZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGxpbmVzIAotIyB0aGUgaW5pdGlh
bCB2YWx1ZSBvZiBhIHZhcmlhYmxlIG9yIGRlZmluZSBjb25zaXN0cyBvZiBmb3IgaXQgdG8gYXBw
ZWFyIGluIAotIyB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgdGhlIGluaXRpYWxpemVyIGNvbnNpc3Rz
IG9mIG1vcmUgbGluZXMgdGhhbiBzcGVjaWZpZWQgCi0jIGhlcmUgaXQgd2lsbCBiZSBoaWRkZW4u
IFVzZSBhIHZhbHVlIG9mIDAgdG8gaGlkZSBpbml0aWFsaXplcnMgY29tcGxldGVseS4gCi0jIFRo
ZSBhcHBlYXJhbmNlIG9mIHRoZSBpbml0aWFsaXplciBvZiBpbmRpdmlkdWFsIHZhcmlhYmxlcyBh
bmQgZGVmaW5lcyBpbiB0aGUgCi0jIGRvY3VtZW50YXRpb24gY2FuIGJlIGNvbnRyb2xsZWQgdXNp
bmcgXHNob3dpbml0aWFsaXplciBvciBcaGlkZWluaXRpYWxpemVyIAotIyBjb21tYW5kIGluIHRo
ZSBkb2N1bWVudGF0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nLgorIyBUaGUgTUFYX0lO
SVRJQUxJWkVSX0xJTkVTIHRhZyBkZXRlcm1pbmVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBsaW5l
cyB0aGF0IHRoZQorIyBpbml0aWFsIHZhbHVlIG9mIGEgdmFyaWFibGUgb3IgbWFjcm8gLyBkZWZp
bmUgY2FuIGhhdmUgZm9yIGl0IHRvIGFwcGVhciBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbi4gSWYg
dGhlIGluaXRpYWxpemVyIGNvbnNpc3RzIG9mIG1vcmUgbGluZXMgdGhhbiBzcGVjaWZpZWQgaGVy
ZQorIyBpdCB3aWxsIGJlIGhpZGRlbi4gVXNlIGEgdmFsdWUgb2YgMCB0byBoaWRlIGluaXRpYWxp
emVycyBjb21wbGV0ZWx5LiBUaGUKKyMgYXBwZWFyYW5jZSBvZiB0aGUgdmFsdWUgb2YgaW5kaXZp
ZHVhbCB2YXJpYWJsZXMgYW5kIG1hY3JvcyAvIGRlZmluZXMgY2FuIGJlCisjIGNvbnRyb2xsZWQg
dXNpbmcgXHNob3dpbml0aWFsaXplciBvciBcaGlkZWluaXRpYWxpemVyIGNvbW1hbmQgaW4gdGhl
CisjIGRvY3VtZW50YXRpb24gcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuCisjIE1pbmltdW0g
dmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMDAwLCBkZWZhdWx0IHZhbHVlOiAzMC4KIAogTUFY
X0lOSVRJQUxJWkVSX0xJTkVTICA9IDMwCiAKLSMgU2V0IHRoZSBTSE9XX1VTRURfRklMRVMgdGFn
IHRvIE5PIHRvIGRpc2FibGUgdGhlIGxpc3Qgb2YgZmlsZXMgZ2VuZXJhdGVkIAotIyBhdCB0aGUg
Ym90dG9tIG9mIHRoZSBkb2N1bWVudGF0aW9uIG9mIGNsYXNzZXMgYW5kIHN0cnVjdHMuIElmIHNl
dCB0byBZRVMgdGhlIAotIyBsaXN0IHdpbGwgbWVudGlvbiB0aGUgZmlsZXMgdGhhdCB3ZXJlIHVz
ZWQgdG8gZ2VuZXJhdGUgdGhlIGRvY3VtZW50YXRpb24uCisjIFNldCB0aGUgU0hPV19VU0VEX0ZJ
TEVTIHRhZyB0byBOTyB0byBkaXNhYmxlIHRoZSBsaXN0IG9mIGZpbGVzIGdlbmVyYXRlZCBhdAor
IyB0aGUgYm90dG9tIG9mIHRoZSBkb2N1bWVudGF0aW9uIG9mIGNsYXNzZXMgYW5kIHN0cnVjdHMu
IElmIHNldCB0byBZRVMgdGhlIGxpc3QKKyMgd2lsbCBtZW50aW9uIHRoZSBmaWxlcyB0aGF0IHdl
cmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KIAogU0hPV19VU0VEX0ZJTEVTICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBz
b3VyY2VzIGluIHlvdXIgcHJvamVjdCBhcmUgZGlzdHJpYnV0ZWQgb3ZlciBtdWx0aXBsZSBkaXJl
Y3RvcmllcyAKLSMgdGhlbiBzZXR0aW5nIHRoZSBTSE9XX0RJUkVDVE9SSUVTIHRhZyB0byBZRVMg
d2lsbCBzaG93IHRoZSBkaXJlY3RvcnkgaGllcmFyY2h5IAotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
bi4gVGhlIGRlZmF1bHQgaXMgTk8uCi0KLVNIT1dfRElSRUNUT1JJRVMgICAgICAgPSBZRVMKLQot
IyBTZXQgdGhlIFNIT1dfRklMRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGdlbmVyYXRpb24g
b2YgdGhlIEZpbGVzIHBhZ2UuIAotIyBUaGlzIHdpbGwgcmVtb3ZlIHRoZSBGaWxlcyBlbnRyeSBm
cm9tIHRoZSBRdWljayBJbmRleCBhbmQgZnJvbSB0aGUgCi0jIEZvbGRlciBUcmVlIFZpZXcgKGlm
IHNwZWNpZmllZCkuIFRoZSBkZWZhdWx0IGlzIFlFUy4KKyMgU2V0IHRoZSBTSE9XX0ZJTEVTIHRh
ZyB0byBOTyB0byBkaXNhYmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBGaWxlcyBwYWdlLiBUaGlz
CisjIHdpbGwgcmVtb3ZlIHRoZSBGaWxlcyBlbnRyeSBmcm9tIHRoZSBRdWljayBJbmRleCBhbmQg
ZnJvbSB0aGUgRm9sZGVyIFRyZWUgVmlldworIyAoaWYgc3BlY2lmaWVkKS4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KIAogU0hPV19GSUxFUyAgICAgICAgICAgICA9IFlFUwogCi0jIFNl
dCB0aGUgU0hPV19OQU1FU1BBQ0VTIHRhZyB0byBOTyB0byBkaXNhYmxlIHRoZSBnZW5lcmF0aW9u
IG9mIHRoZSAKLSMgTmFtZXNwYWNlcyBwYWdlLiAKLSMgVGhpcyB3aWxsIHJlbW92ZSB0aGUgTmFt
ZXNwYWNlcyBlbnRyeSBmcm9tIHRoZSBRdWljayBJbmRleCAKLSMgYW5kIGZyb20gdGhlIEZvbGRl
ciBUcmVlIFZpZXcgKGlmIHNwZWNpZmllZCkuIFRoZSBkZWZhdWx0IGlzIFlFUy4KKyMgU2V0IHRo
ZSBTSE9XX05BTUVTUEFDRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGdlbmVyYXRpb24gb2Yg
dGhlIE5hbWVzcGFjZXMKKyMgcGFnZS4gVGhpcyB3aWxsIHJlbW92ZSB0aGUgTmFtZXNwYWNlcyBl
bnRyeSBmcm9tIHRoZSBRdWljayBJbmRleCBhbmQgZnJvbSB0aGUKKyMgRm9sZGVyIFRyZWUgVmll
dyAoaWYgc3BlY2lmaWVkKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogU0hPV19O
QU1FU1BBQ0VTICAgICAgICA9IFlFUwogCi0jIFRoZSBGSUxFX1ZFUlNJT05fRklMVEVSIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJvZ3JhbSBvciBzY3JpcHQgdGhhdCAKLSMgZG94eWdl
biBzaG91bGQgaW52b2tlIHRvIGdldCB0aGUgY3VycmVudCB2ZXJzaW9uIGZvciBlYWNoIGZpbGUg
KHR5cGljYWxseSBmcm9tIAotIyB0aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbSkuIERveHlnZW4g
d2lsbCBpbnZva2UgdGhlIHByb2dyYW0gYnkgZXhlY3V0aW5nICh2aWEgCi0jIHBvcGVuKCkpIHRo
ZSBjb21tYW5kIDxjb21tYW5kPiA8aW5wdXQtZmlsZT4sIHdoZXJlIDxjb21tYW5kPiBpcyB0aGUg
dmFsdWUgb2YgCi0jIHRoZSBGSUxFX1ZFUlNJT05fRklMVEVSIHRhZywgYW5kIDxpbnB1dC1maWxl
PiBpcyB0aGUgbmFtZSBvZiBhbiBpbnB1dCBmaWxlIAotIyBwcm92aWRlZCBieSBkb3h5Z2VuLiBX
aGF0ZXZlciB0aGUgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRhcmQgb3V0cHV0IAotIyBpcyB1c2Vk
IGFzIHRoZSBmaWxlIHZlcnNpb24uIFNlZSB0aGUgbWFudWFsIGZvciBleGFtcGxlcy4KKyMgVGhl
IEZJTEVfVkVSU0lPTl9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm9ncmFt
IG9yIHNjcmlwdCB0aGF0CisjIGRveHlnZW4gc2hvdWxkIGludm9rZSB0byBnZXQgdGhlIGN1cnJl
bnQgdmVyc2lvbiBmb3IgZWFjaCBmaWxlICh0eXBpY2FsbHkgZnJvbQorIyB0aGUgdmVyc2lvbiBj
b250cm9sIHN5c3RlbSkuIERveHlnZW4gd2lsbCBpbnZva2UgdGhlIHByb2dyYW0gYnkgZXhlY3V0
aW5nICh2aWEKKyMgcG9wZW4oKSkgdGhlIGNvbW1hbmQgY29tbWFuZCBpbnB1dC1maWxlLCB3aGVy
ZSBjb21tYW5kIGlzIHRoZSB2YWx1ZSBvZiB0aGUKKyMgRklMRV9WRVJTSU9OX0ZJTFRFUiB0YWcs
IGFuZCBpbnB1dC1maWxlIGlzIHRoZSBuYW1lIG9mIGFuIGlucHV0IGZpbGUgcHJvdmlkZWQKKyMg
YnkgZG94eWdlbi4gV2hhdGV2ZXIgdGhlIHByb2dyYW0gd3JpdGVzIHRvIHN0YW5kYXJkIG91dHB1
dCBpcyB1c2VkIGFzIHRoZSBmaWxlCisjIHZlcnNpb24uIEZvciBhbiBleGFtcGxlIHNlZSB0aGUg
ZG9jdW1lbnRhdGlvbi4KKworRklMRV9WRVJTSU9OX0ZJTFRFUiAgICA9CisKKyMgVGhlIExBWU9V
VF9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbGF5b3V0IGZpbGUgd2hpY2ggd2ls
bCBiZSBwYXJzZWQKKyMgYnkgZG94eWdlbi4gVGhlIGxheW91dCBmaWxlIGNvbnRyb2xzIHRoZSBn
bG9iYWwgc3RydWN0dXJlIG9mIHRoZSBnZW5lcmF0ZWQKKyMgb3V0cHV0IGZpbGVzIGluIGFuIG91
dHB1dCBmb3JtYXQgaW5kZXBlbmRlbnQgd2F5LiBUbyBjcmVhdGUgdGhlIGxheW91dCBmaWxlCisj
IHRoYXQgcmVwcmVzZW50cyBkb3h5Z2VuJ3MgZGVmYXVsdHMsIHJ1biBkb3h5Z2VuIHdpdGggdGhl
IC1sIG9wdGlvbi4gWW91IGNhbgorIyBvcHRpb25hbGx5IHNwZWNpZnkgYSBmaWxlIG5hbWUgYWZ0
ZXIgdGhlIG9wdGlvbiwgaWYgb21pdHRlZCBEb3h5Z2VuTGF5b3V0LnhtbAorIyB3aWxsIGJlIHVz
ZWQgYXMgdGhlIG5hbWUgb2YgdGhlIGxheW91dCBmaWxlLgorIworIyBOb3RlIHRoYXQgaWYgeW91
IHJ1biBkb3h5Z2VuIGZyb20gYSBkaXJlY3RvcnkgY29udGFpbmluZyBhIGZpbGUgY2FsbGVkCisj
IERveHlnZW5MYXlvdXQueG1sLCBkb3h5Z2VuIHdpbGwgcGFyc2UgaXQgYXV0b21hdGljYWxseSBl
dmVuIGlmIHRoZSBMQVlPVVRfRklMRQorIyB0YWcgaXMgbGVmdCBlbXB0eS4KIAotRklMRV9WRVJT
SU9OX0ZJTFRFUiAgICA9IAorTEFZT1VUX0ZJTEUgICAgICAgICAgICA9CiAKLSMgVGhlIExBWU9V
VF9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbGF5b3V0IGZpbGUgd2hpY2ggd2ls
bCBiZSBwYXJzZWQgYnkgCi0jIGRveHlnZW4uIFRoZSBsYXlvdXQgZmlsZSBjb250cm9scyB0aGUg
Z2xvYmFsIHN0cnVjdHVyZSBvZiB0aGUgZ2VuZXJhdGVkIG91dHB1dCBmaWxlcyAKLSMgaW4gYW4g
b3V0cHV0IGZvcm1hdCBpbmRlcGVuZGVudCB3YXkuIFRoZSBjcmVhdGUgdGhlIGxheW91dCBmaWxl
IHRoYXQgcmVwcmVzZW50cyAKLSMgZG94eWdlbidzIGRlZmF1bHRzLCBydW4gZG94eWdlbiB3aXRo
IHRoZSAtbCBvcHRpb24uIFlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGEgCi0jIGZpbGUgbmFt
ZSBhZnRlciB0aGUgb3B0aW9uLCBpZiBvbWl0dGVkIERveHlnZW5MYXlvdXQueG1sIHdpbGwgYmUg
dXNlZCBhcyB0aGUgbmFtZSAKLSMgb2YgdGhlIGxheW91dCBmaWxlLgorIyBUaGUgQ0lURV9CSUJf
RklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgYmliIGZpbGVzIGNv
bnRhaW5pbmcKKyMgdGhlIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4gVGhpcyBtdXN0IGJlIGEgbGlz
dCBvZiAuYmliIGZpbGVzLiBUaGUgLmJpYgorIyBleHRlbnNpb24gaXMgYXV0b21hdGljYWxseSBh
cHBlbmRlZCBpZiBvbWl0dGVkLiBUaGlzIHJlcXVpcmVzIHRoZSBiaWJ0ZXggdG9vbAorIyB0byBi
ZSBpbnN0YWxsZWQuIFNlZSBhbHNvIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmliVGVY
IGZvciBtb3JlIGluZm8uCisjIEZvciBMYVRlWCB0aGUgc3R5bGUgb2YgdGhlIGJpYmxpb2dyYXBo
eSBjYW4gYmUgY29udHJvbGxlZCB1c2luZworIyBMQVRFWF9CSUJfU1RZTEUuIFRvIHVzZSB0aGlz
IGZlYXR1cmUgeW91IG5lZWQgYmlidGV4IGFuZCBwZXJsIGF2YWlsYWJsZSBpbiB0aGUKKyMgc2Vh
cmNoIHBhdGguIERvIG5vdCB1c2UgZmlsZSBuYW1lcyB3aXRoIHNwYWNlcywgYmlidGV4IGNhbm5v
dCBoYW5kbGUgdGhlbS4gU2VlCisjIGFsc28gXGNpdGUgZm9yIGluZm8gaG93IHRvIGNyZWF0ZSBy
ZWZlcmVuY2VzLgogCi1MQVlPVVRfRklMRSAgICAgICAgICAgID0gCitDSVRFX0JJQl9GSUxFUyAg
ICAgICAgID0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMg
cmVsYXRlZCB0byB3YXJuaW5nIGFuZCBwcm9ncmVzcyBtZXNzYWdlcworIyBDb25maWd1cmF0aW9u
IG9wdGlvbnMgcmVsYXRlZCB0byB3YXJuaW5nIGFuZCBwcm9ncmVzcyBtZXNzYWdlcwogIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi0jIFRoZSBRVUlFVCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9v
ZmYgdGhlIG1lc3NhZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCAKLSMgYnkgZG94eWdlbi4gUG9zc2li
bGUgdmFsdWVzIGFyZSBZRVMgYW5kIE5PLiBJZiBsZWZ0IGJsYW5rIE5PIGlzIHVzZWQuCisjIFRo
ZSBRVUlFVCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIG1lc3NhZ2VzIHRoYXQg
YXJlIGdlbmVyYXRlZCB0bworIyBzdGFuZGFyZCBvdXRwdXQgYnkgZG94eWdlbi4gSWYgUVVJRVQg
aXMgc2V0IHRvIFlFUyB0aGlzIGltcGxpZXMgdGhhdCB0aGUKKyMgbWVzc2FnZXMgYXJlIG9mZi4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBRVUlFVCAgICAgICAgICAgICAgICAgID0g
Tk8KIAotIyBUaGUgV0FSTklOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4gb24vb2ZmIHRoZSB3
YXJuaW5nIG1lc3NhZ2VzIHRoYXQgYXJlIAotIyBnZW5lcmF0ZWQgYnkgZG94eWdlbi4gUG9zc2li
bGUgdmFsdWVzIGFyZSBZRVMgYW5kIE5PLiBJZiBsZWZ0IGJsYW5rIAotIyBOTyBpcyB1c2VkLgor
IyBUaGUgV0FSTklOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4gb24vb2ZmIHRoZSB3YXJuaW5n
IG1lc3NhZ2VzIHRoYXQgYXJlCisjIGdlbmVyYXRlZCB0byBzdGFuZGFyZCBlcnJvciAoIHN0ZGVy
cikgYnkgZG94eWdlbi4gSWYgV0FSTklOR1MgaXMgc2V0IHRvIFlFUworIyB0aGlzIGltcGxpZXMg
dGhhdCB0aGUgd2FybmluZ3MgYXJlIG9uLgorIworIyBUaXA6IFR1cm4gd2FybmluZ3Mgb24gd2hp
bGUgd3JpdGluZyB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlF
Uy4KIAogV0FSTklOR1MgICAgICAgICAgICAgICA9IFlFUwogCi0jIElmIFdBUk5fSUZfVU5ET0NV
TUVOVEVEIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5pbmdz
IAotIyBmb3IgdW5kb2N1bWVudGVkIG1lbWJlcnMuIElmIEVYVFJBQ1RfQUxMIGlzIHNldCB0byBZ
RVMgdGhlbiB0aGlzIGZsYWcgd2lsbCAKLSMgYXV0b21hdGljYWxseSBiZSBkaXNhYmxlZC4KKyMg
SWYgdGhlIFdBUk5fSUZfVU5ET0NVTUVOVEVEIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHln
ZW4gd2lsbCBnZW5lcmF0ZQorIyB3YXJuaW5ncyBmb3IgdW5kb2N1bWVudGVkIG1lbWJlcnMuIElm
IEVYVFJBQ1RfQUxMIGlzIHNldCB0byBZRVMgdGhlbiB0aGlzIGZsYWcKKyMgd2lsbCBhdXRvbWF0
aWNhbGx5IGJlIGRpc2FibGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBXQVJO
X0lGX1VORE9DVU1FTlRFRCAgID0gWUVTCiAKLSMgSWYgV0FSTl9JRl9ET0NfRVJST1IgaXMgc2V0
IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5pbmdzIGZvciAKLSMgcG90ZW50aWFs
IGVycm9ycyBpbiB0aGUgZG9jdW1lbnRhdGlvbiwgc3VjaCBhcyBub3QgZG9jdW1lbnRpbmcgc29t
ZSAKLSMgcGFyYW1ldGVycyBpbiBhIGRvY3VtZW50ZWQgZnVuY3Rpb24sIG9yIGRvY3VtZW50aW5n
IHBhcmFtZXRlcnMgdGhhdCAKLSMgZG9uJ3QgZXhpc3Qgb3IgdXNpbmcgbWFya3VwIGNvbW1hbmRz
IHdyb25nbHkuCisjIElmIHRoZSBXQVJOX0lGX0RPQ19FUlJPUiB0YWcgaXMgc2V0IHRvIFlFUywg
ZG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5pbmdzIGZvcgorIyBwb3RlbnRpYWwgZXJyb3JzIGlu
IHRoZSBkb2N1bWVudGF0aW9uLCBzdWNoIGFzIG5vdCBkb2N1bWVudGluZyBzb21lIHBhcmFtZXRl
cnMKKyMgaW4gYSBkb2N1bWVudGVkIGZ1bmN0aW9uLCBvciBkb2N1bWVudGluZyBwYXJhbWV0ZXJz
IHRoYXQgZG9uJ3QgZXhpc3Qgb3IgdXNpbmcKKyMgbWFya3VwIGNvbW1hbmRzIHdyb25nbHkuCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIFdBUk5fSUZfRE9DX0VSUk9SICAgICAgPSBZ
RVMKIAotIyBUaGlzIFdBUk5fTk9fUEFSQU1ET0Mgb3B0aW9uIGNhbiBiZSBhYmxlZCB0byBnZXQg
d2FybmluZ3MgZm9yIAotIyBmdW5jdGlvbnMgdGhhdCBhcmUgZG9jdW1lbnRlZCwgYnV0IGhhdmUg
bm8gZG9jdW1lbnRhdGlvbiBmb3IgdGhlaXIgcGFyYW1ldGVycyAKLSMgb3IgcmV0dXJuIHZhbHVl
LiBJZiBzZXQgdG8gTk8gKHRoZSBkZWZhdWx0KSBkb3h5Z2VuIHdpbGwgb25seSB3YXJuIGFib3V0
IAotIyB3cm9uZyBvciBpbmNvbXBsZXRlIHBhcmFtZXRlciBkb2N1bWVudGF0aW9uLCBidXQgbm90
IGFib3V0IHRoZSBhYnNlbmNlIG9mIAotIyBkb2N1bWVudGF0aW9uLgorIyBUaGlzIFdBUk5fTk9f
UEFSQU1ET0Mgb3B0aW9uIGNhbiBiZSBlbmFibGVkIHRvIGdldCB3YXJuaW5ncyBmb3IgZnVuY3Rp
b25zIHRoYXQKKyMgYXJlIGRvY3VtZW50ZWQsIGJ1dCBoYXZlIG5vIGRvY3VtZW50YXRpb24gZm9y
IHRoZWlyIHBhcmFtZXRlcnMgb3IgcmV0dXJuCisjIHZhbHVlLiBJZiBzZXQgdG8gTk8gZG94eWdl
biB3aWxsIG9ubHkgd2FybiBhYm91dCB3cm9uZyBvciBpbmNvbXBsZXRlIHBhcmFtZXRlcgorIyBk
b2N1bWVudGF0aW9uLCBidXQgbm90IGFib3V0IHRoZSBhYnNlbmNlIG9mIGRvY3VtZW50YXRpb24u
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogV0FSTl9OT19QQVJBTURPQyAgICAgICA9
IE5PCiAKLSMgVGhlIFdBUk5fRk9STUFUIHRhZyBkZXRlcm1pbmVzIHRoZSBmb3JtYXQgb2YgdGhl
IHdhcm5pbmcgbWVzc2FnZXMgdGhhdCAKLSMgZG94eWdlbiBjYW4gcHJvZHVjZS4gVGhlIHN0cmlu
ZyBzaG91bGQgY29udGFpbiB0aGUgJGZpbGUsICRsaW5lLCBhbmQgJHRleHQgCi0jIHRhZ3MsIHdo
aWNoIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGZpbGUgYW5kIGxpbmUgbnVtYmVyIGZyb20gd2hp
Y2ggdGhlIAotIyB3YXJuaW5nIG9yaWdpbmF0ZWQgYW5kIHRoZSB3YXJuaW5nIHRleHQuIE9wdGlv
bmFsbHkgdGhlIGZvcm1hdCBtYXkgY29udGFpbiAKLSMgJHZlcnNpb24sIHdoaWNoIHdpbGwgYmUg
cmVwbGFjZWQgYnkgdGhlIHZlcnNpb24gb2YgdGhlIGZpbGUgKGlmIGl0IGNvdWxkIAotIyBiZSBv
YnRhaW5lZCB2aWEgRklMRV9WRVJTSU9OX0ZJTFRFUikKKyMgVGhlIFdBUk5fRk9STUFUIHRhZyBk
ZXRlcm1pbmVzIHRoZSBmb3JtYXQgb2YgdGhlIHdhcm5pbmcgbWVzc2FnZXMgdGhhdCBkb3h5Z2Vu
CisjIGNhbiBwcm9kdWNlLiBUaGUgc3RyaW5nIHNob3VsZCBjb250YWluIHRoZSAkZmlsZSwgJGxp
bmUsIGFuZCAkdGV4dCB0YWdzLCB3aGljaAorIyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBmaWxl
IGFuZCBsaW5lIG51bWJlciBmcm9tIHdoaWNoIHRoZSB3YXJuaW5nIG9yaWdpbmF0ZWQKKyMgYW5k
IHRoZSB3YXJuaW5nIHRleHQuIE9wdGlvbmFsbHkgdGhlIGZvcm1hdCBtYXkgY29udGFpbiAkdmVy
c2lvbiwgd2hpY2ggd2lsbAorIyBiZSByZXBsYWNlZCBieSB0aGUgdmVyc2lvbiBvZiB0aGUgZmls
ZSAoaWYgaXQgY291bGQgYmUgb2J0YWluZWQgdmlhCisjIEZJTEVfVkVSU0lPTl9GSUxURVIpCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiAkZmlsZTokbGluZTogJHRleHQuCiAKIFdBUk5fRk9STUFU
ICAgICAgICAgICAgPSAiJGZpbGU6JGxpbmU6ICR0ZXh0IgogCi0jIFRoZSBXQVJOX0xPR0ZJTEUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBmaWxlIHRvIHdoaWNoIHdhcm5pbmcgCi0jIGFu
ZCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgd3JpdHRlbi4gSWYgbGVmdCBibGFuayB0aGUgb3V0
cHV0IGlzIHdyaXR0ZW4gCi0jIHRvIHN0ZGVyci4KKyMgVGhlIFdBUk5fTE9HRklMRSB0YWcgY2Fu
IGJlIHVzZWQgdG8gc3BlY2lmeSBhIGZpbGUgdG8gd2hpY2ggd2FybmluZyBhbmQgZXJyb3IKKyMg
bWVzc2FnZXMgc2hvdWxkIGJlIHdyaXR0ZW4uIElmIGxlZnQgYmxhbmsgdGhlIG91dHB1dCBpcyB3
cml0dGVuIHRvIHN0YW5kYXJkCisjIGVycm9yIChzdGRlcnIpLgogCiBXQVJOX0xPR0ZJTEUgICAg
ICAgICAgID0gJVdBUk5JTkdfTE9HX1BBVEglCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgY29u
ZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGlucHV0IGZpbGVzCisjIENvbmZpZ3Vy
YXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBpbnB1dCBmaWxlcwogIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi0jIFRoZSBJTlBVVCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZXMg
YW5kL29yIGRpcmVjdG9yaWVzIHRoYXQgY29udGFpbiAKLSMgZG9jdW1lbnRlZCBzb3VyY2UgZmls
ZXMuIFlvdSBtYXkgZW50ZXIgZmlsZSBuYW1lcyBsaWtlICJteWZpbGUuY3BwIiBvciAKLSMgZGly
ZWN0b3JpZXMgbGlrZSAiL3Vzci9zcmMvbXlwcm9qZWN0Ii4gU2VwYXJhdGUgdGhlIGZpbGVzIG9y
IGRpcmVjdG9yaWVzIAotIyB3aXRoIHNwYWNlcy4KKyMgVGhlIElOUFVUIHRhZyBpcyB1c2VkIHRv
IHNwZWNpZnkgdGhlIGZpbGVzIGFuZC9vciBkaXJlY3RvcmllcyB0aGF0IGNvbnRhaW4KKyMgZG9j
dW1lbnRlZCBzb3VyY2UgZmlsZXMuIFlvdSBtYXkgZW50ZXIgZmlsZSBuYW1lcyBsaWtlIG15Zmls
ZS5jcHAgb3IKKyMgZGlyZWN0b3JpZXMgbGlrZSAvdXNyL3NyYy9teXByb2plY3QuIFNlcGFyYXRl
IHRoZSBmaWxlcyBvciBkaXJlY3RvcmllcyB3aXRoCisjIHNwYWNlcy4KKyMgTm90ZTogSWYgdGhp
cyB0YWcgaXMgZW1wdHkgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGlzIHNlYXJjaGVkLgogCi1JTlBV
VCAgICAgICAgICAgICAgICAgID0gLi4vaW5jbHVkZSAuLi9zcmMvbGliX2pzb24gLgorSU5QVVQg
ICAgICAgICAgICAgICAgICA9IC4uL2luY2x1ZGUgXAorICAgICAgICAgICAgICAgICAgICAgICAg
IC4uL3NyYy9saWJfanNvbiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgLgogCi0jIFRoaXMg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUg
c291cmNlIGZpbGVzIAotIyB0aGF0IGRveHlnZW4gcGFyc2VzLiBJbnRlcm5hbGx5IGRveHlnZW4g
dXNlcyB0aGUgVVRGLTggZW5jb2RpbmcsIHdoaWNoIGlzIAotIyBhbHNvIHRoZSBkZWZhdWx0IGlu
cHV0IGVuY29kaW5nLiBEb3h5Z2VuIHVzZXMgbGliaWNvbnYgKG9yIHRoZSBpY29udiBidWlsdCAK
LSMgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29kaW5nLiBTZWUgaHR0cDovL3d3dy5nbnUub3Jn
L3NvZnR3YXJlL2xpYmljb252IGZvciAKLSMgdGhlIGxpc3Qgb2YgcG9zc2libGUgZW5jb2Rpbmdz
LgorIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgZW5jb2Rp
bmcgb2YgdGhlIHNvdXJjZSBmaWxlcworIyB0aGF0IGRveHlnZW4gcGFyc2VzLiBJbnRlcm5hbGx5
IGRveHlnZW4gdXNlcyB0aGUgVVRGLTggZW5jb2RpbmcuIERveHlnZW4gdXNlcworIyBsaWJpY29u
diAob3IgdGhlIGljb252IGJ1aWx0IGludG8gbGliYykgZm9yIHRoZSB0cmFuc2NvZGluZy4gU2Vl
IHRoZSBsaWJpY29udgorIyBkb2N1bWVudGF0aW9uIChzZWU6IGh0dHA6Ly93d3cuZ251Lm9yZy9z
b2Z0d2FyZS9saWJpY29udikgZm9yIHRoZSBsaXN0IG9mCisjIHBvc3NpYmxlIGVuY29kaW5ncy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFVURi04LgogCiBJTlBVVF9FTkNPRElORyAgICAgICAg
ID0gVVRGLTgKIAotIyBJZiB0aGUgdmFsdWUgb2YgdGhlIElOUFVUIHRhZyBjb250YWlucyBkaXJl
Y3RvcmllcywgeW91IGNhbiB1c2UgdGhlIAotIyBGSUxFX1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5
IG9uZSBvciBtb3JlIHdpbGRjYXJkIHBhdHRlcm4gKGxpa2UgKi5jcHAgCi0jIGFuZCAqLmgpIHRv
IGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuIElmIGxlZnQg
Ci0jIGJsYW5rIHRoZSBmb2xsb3dpbmcgcGF0dGVybnMgYXJlIHRlc3RlZDogCi0jICouYyAqLmNj
ICouY3h4ICouY3BwICouYysrICouamF2YSAqLmlpICouaXh4ICouaXBwICouaSsrICouaW5sICou
aCAqLmhoICouaHh4IAotIyAqLmhwcCAqLmgrKyAqLmlkbCAqLm9kbCAqLmNzICoucGhwICoucGhw
MyAqLmluYyAqLm0gKi5tbSAqLnB5ICouZjkwCisjIElmIHRoZSB2YWx1ZSBvZiB0aGUgSU5QVVQg
dGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3UgY2FuIHVzZSB0aGUKKyMgRklMRV9QQVRURVJO
UyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB3aWxkY2FyZCBwYXR0ZXJucyAobGlrZSAqLmNw
cCBhbmQKKyMgKi5oKSB0byBmaWx0ZXIgb3V0IHRoZSBzb3VyY2UtZmlsZXMgaW4gdGhlIGRpcmVj
dG9yaWVzLiBJZiBsZWZ0IGJsYW5rIHRoZQorIyBmb2xsb3dpbmcgcGF0dGVybnMgYXJlIHRlc3Rl
ZDoqLmMsICouY2MsICouY3h4LCAqLmNwcCwgKi5jKyssICouamF2YSwgKi5paSwKKyMgKi5peHgs
ICouaXBwLCAqLmkrKywgKi5pbmwsICouaWRsLCAqLmRkbCwgKi5vZGwsICouaCwgKi5oaCwgKi5o
eHgsICouaHBwLAorIyAqLmgrKywgKi5jcywgKi5kLCAqLnBocCwgKi5waHA0LCAqLnBocDUsICou
cGh0bWwsICouaW5jLCAqLm0sICoubWFya2Rvd24sCisjICoubWQsICoubW0sICouZG94LCAqLnB5
LCAqLmY5MCwgKi5mLCAqLmZvciwgKi50Y2wsICoudmhkLCAqLnZoZGwsICoudWNmLAorIyAqLnFz
ZiwgKi5hcyBhbmQgKi5qcy4KIAogRklMRV9QQVRURVJOUyAgICAgICAgICA9ICouaCBcCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi5jcHAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICou
aW5sIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAqLmRveAogCi0jIFRoZSBSRUNVUlNJVkUg
dGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4gc3BlY2lmeSB3aGV0aGVyIG9yIG5vdCBzdWJkaXJlY3Rv
cmllcyAKLSMgc2hvdWxkIGJlIHNlYXJjaGVkIGZvciBpbnB1dCBmaWxlcyBhcyB3ZWxsLiBQb3Nz
aWJsZSB2YWx1ZXMgYXJlIFlFUyBhbmQgTk8uIAotIyBJZiBsZWZ0IGJsYW5rIE5PIGlzIHVzZWQu
CisjIFRoZSBSRUNVUlNJVkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgd2hldGhlciBvciBu
b3Qgc3ViZGlyZWN0b3JpZXMgc2hvdWxkCisjIGJlIHNlYXJjaGVkIGZvciBpbnB1dCBmaWxlcyBh
cyB3ZWxsLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFJFQ1VSU0lWRSAgICAgICAg
ICAgICAgPSBZRVMKIAotIyBUaGUgRVhDTFVERSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBm
aWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgCi0jIGV4Y2x1ZGVkIGZyb20gdGhl
IElOUFVUIHNvdXJjZSBmaWxlcy4gVGhpcyB3YXkgeW91IGNhbiBlYXNpbHkgZXhjbHVkZSBhIAor
IyBUaGUgRVhDTFVERSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBmaWxlcyBhbmQvb3IgZGly
ZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUKKyMgZXhjbHVkZWQgZnJvbSB0aGUgSU5QVVQgc291cmNl
IGZpbGVzLiBUaGlzIHdheSB5b3UgY2FuIGVhc2lseSBleGNsdWRlIGEKICMgc3ViZGlyZWN0b3J5
IGZyb20gYSBkaXJlY3RvcnkgdHJlZSB3aG9zZSByb290IGlzIHNwZWNpZmllZCB3aXRoIHRoZSBJ
TlBVVCB0YWcuCisjCisjIE5vdGUgdGhhdCByZWxhdGl2ZSBwYXRocyBhcmUgcmVsYXRpdmUgdG8g
dGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIGRveHlnZW4gaXMKKyMgcnVuLgogCi1FWENMVURFICAg
ICAgICAgICAgICAgID0gCitFWENMVURFICAgICAgICAgICAgICAgID0KIAotIyBUaGUgRVhDTFVE
RV9TWU1MSU5LUyB0YWcgY2FuIGJlIHVzZWQgc2VsZWN0IHdoZXRoZXIgb3Igbm90IGZpbGVzIG9y
IAotIyBkaXJlY3RvcmllcyB0aGF0IGFyZSBzeW1ib2xpYyBsaW5rcyAoYSBVbml4IGZpbGVzeXN0
ZW0gZmVhdHVyZSkgYXJlIGV4Y2x1ZGVkIAorIyBUaGUgRVhDTFVERV9TWU1MSU5LUyB0YWcgY2Fu
IGJlIHVzZWQgdG8gc2VsZWN0IHdoZXRoZXIgb3Igbm90IGZpbGVzIG9yCisjIGRpcmVjdG9yaWVz
IHRoYXQgYXJlIHN5bWJvbGljIGxpbmtzIChhIFVuaXggZmlsZSBzeXN0ZW0gZmVhdHVyZSkgYXJl
IGV4Y2x1ZGVkCiAjIGZyb20gdGhlIGlucHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CiAKIEVYQ0xVREVfU1lNTElOS1MgICAgICAgPSBOTwogCi0jIElmIHRoZSB2YWx1ZSBvZiB0aGUg
SU5QVVQgdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3UgY2FuIHVzZSB0aGUgCi0jIEVYQ0xV
REVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybnMg
dG8gZXhjbHVkZSAKLSMgY2VydGFpbiBmaWxlcyBmcm9tIHRob3NlIGRpcmVjdG9yaWVzLiBOb3Rl
IHRoYXQgdGhlIHdpbGRjYXJkcyBhcmUgbWF0Y2hlZCAKLSMgYWdhaW5zdCB0aGUgZmlsZSB3aXRo
IGFic29sdXRlIHBhdGgsIHNvIHRvIGV4Y2x1ZGUgYWxsIHRlc3QgZGlyZWN0b3JpZXMgCi0jIGZv
ciBleGFtcGxlIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKgorIyBJZiB0aGUgdmFsdWUgb2YgdGhl
IElOUFVUIHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91IGNhbiB1c2UgdGhlCisjIEVYQ0xV
REVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybnMg
dG8gZXhjbHVkZQorIyBjZXJ0YWluIGZpbGVzIGZyb20gdGhvc2UgZGlyZWN0b3JpZXMuCisjCisj
IE5vdGUgdGhhdCB0aGUgd2lsZGNhcmRzIGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIGZpbGUgd2l0
aCBhYnNvbHV0ZSBwYXRoLCBzbyB0bworIyBleGNsdWRlIGFsbCB0ZXN0IGRpcmVjdG9yaWVzIGZv
ciBleGFtcGxlIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKgogCi1FWENMVURFX1BBVFRFUk5TICAg
ICAgID0gCitFWENMVURFX1BBVFRFUk5TICAgICAgID0KIAotIyBUaGUgRVhDTFVERV9TWU1CT0xT
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHN5bWJvbCBuYW1lcyAKLSMg
KG5hbWVzcGFjZXMsIGNsYXNzZXMsIGZ1bmN0aW9ucywgZXRjLikgdGhhdCBzaG91bGQgYmUgZXhj
bHVkZWQgZnJvbSB0aGUgCi0jIG91dHB1dC4gVGhlIHN5bWJvbCBuYW1lIGNhbiBiZSBhIGZ1bGx5
IHF1YWxpZmllZCBuYW1lLCBhIHdvcmQsIG9yIGlmIHRoZSAKLSMgd2lsZGNhcmQgKiBpcyB1c2Vk
LCBhIHN1YnN0cmluZy4gRXhhbXBsZXM6IEFOYW1lc3BhY2UsIEFDbGFzcywgCisjIFRoZSBFWENM
VURFX1NZTUJPTFMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgc3ltYm9s
IG5hbWVzCisjIChuYW1lc3BhY2VzLCBjbGFzc2VzLCBmdW5jdGlvbnMsIGV0Yy4pIHRoYXQgc2hv
dWxkIGJlIGV4Y2x1ZGVkIGZyb20gdGhlCisjIG91dHB1dC4gVGhlIHN5bWJvbCBuYW1lIGNhbiBi
ZSBhIGZ1bGx5IHF1YWxpZmllZCBuYW1lLCBhIHdvcmQsIG9yIGlmIHRoZQorIyB3aWxkY2FyZCAq
IGlzIHVzZWQsIGEgc3Vic3RyaW5nLiBFeGFtcGxlczogQU5hbWVzcGFjZSwgQUNsYXNzLAogIyBB
Q2xhc3M6OkFOYW1lc3BhY2UsIEFOYW1lc3BhY2U6OipUZXN0CisjCisjIE5vdGUgdGhhdCB0aGUg
d2lsZGNhcmRzIGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIGZpbGUgd2l0aCBhYnNvbHV0ZSBwYXRo
LCBzbyB0bworIyBleGNsdWRlIGFsbCB0ZXN0IGRpcmVjdG9yaWVzIHVzZSB0aGUgcGF0dGVybiAq
L3Rlc3QvKgogCi1FWENMVURFX1NZTUJPTFMgICAgICAgID0gCitFWENMVURFX1NZTUJPTFMgICAg
ICAgID0KIAotIyBUaGUgRVhBTVBMRV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9u
ZSBvciBtb3JlIGZpbGVzIG9yIAotIyBkaXJlY3RvcmllcyB0aGF0IGNvbnRhaW4gZXhhbXBsZSBj
b2RlIGZyYWdtZW50cyB0aGF0IGFyZSBpbmNsdWRlZCAoc2VlIAotIyB0aGUgXGluY2x1ZGUgY29t
bWFuZCkuCisjIFRoZSBFWEFNUExFX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25l
IG9yIG1vcmUgZmlsZXMgb3IgZGlyZWN0b3JpZXMKKyMgdGhhdCBjb250YWluIGV4YW1wbGUgY29k
ZSBmcmFnbWVudHMgdGhhdCBhcmUgaW5jbHVkZWQgKHNlZSB0aGUgXGluY2x1ZGUKKyMgY29tbWFu
ZCkuCiAKLUVYQU1QTEVfUEFUSCAgICAgICAgICAgPSAKK0VYQU1QTEVfUEFUSCAgICAgICAgICAg
PSAuLgogCi0jIElmIHRoZSB2YWx1ZSBvZiB0aGUgRVhBTVBMRV9QQVRIIHRhZyBjb250YWlucyBk
aXJlY3RvcmllcywgeW91IGNhbiB1c2UgdGhlIAotIyBFWEFNUExFX1BBVFRFUk5TIHRhZyB0byBz
cGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIHBhdHRlcm4gKGxpa2UgKi5jcHAgCi0jIGFuZCAq
LmgpIHRvIGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuIElm
IGxlZnQgCi0jIGJsYW5rIGFsbCBmaWxlcyBhcmUgaW5jbHVkZWQuCisjIElmIHRoZSB2YWx1ZSBv
ZiB0aGUgRVhBTVBMRV9QQVRIIHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91IGNhbiB1c2Ug
dGhlCisjIEVYQU1QTEVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNh
cmQgcGF0dGVybiAobGlrZSAqLmNwcCBhbmQKKyMgKi5oKSB0byBmaWx0ZXIgb3V0IHRoZSBzb3Vy
Y2UtZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzLiBJZiBsZWZ0IGJsYW5rIGFsbAorIyBmaWxlcyBh
cmUgaW5jbHVkZWQuCiAKIEVYQU1QTEVfUEFUVEVSTlMgICAgICAgPSAqCiAKLSMgSWYgdGhlIEVY
QU1QTEVfUkVDVVJTSVZFIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gc3ViZGlyZWN0b3JpZXMgd2ls
bCBiZSAKLSMgc2VhcmNoZWQgZm9yIGlucHV0IGZpbGVzIHRvIGJlIHVzZWQgd2l0aCB0aGUgXGlu
Y2x1ZGUgb3IgXGRvbnRpbmNsdWRlIAotIyBjb21tYW5kcyBpcnJlc3BlY3RpdmUgb2YgdGhlIHZh
bHVlIG9mIHRoZSBSRUNVUlNJVkUgdGFnLiAKLSMgUG9zc2libGUgdmFsdWVzIGFyZSBZRVMgYW5k
IE5PLiBJZiBsZWZ0IGJsYW5rIE5PIGlzIHVzZWQuCisjIElmIHRoZSBFWEFNUExFX1JFQ1VSU0lW
RSB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHN1YmRpcmVjdG9yaWVzIHdpbGwgYmUKKyMgc2VhcmNo
ZWQgZm9yIGlucHV0IGZpbGVzIHRvIGJlIHVzZWQgd2l0aCB0aGUgXGluY2x1ZGUgb3IgXGRvbnRp
bmNsdWRlIGNvbW1hbmRzCisjIGlycmVzcGVjdGl2ZSBvZiB0aGUgdmFsdWUgb2YgdGhlIFJFQ1VS
U0lWRSB0YWcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogRVhBTVBMRV9SRUNVUlNJ
VkUgICAgICA9IE5PCiAKLSMgVGhlIElNQUdFX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
Znkgb25lIG9yIG1vcmUgZmlsZXMgb3IgCi0jIGRpcmVjdG9yaWVzIHRoYXQgY29udGFpbiBpbWFn
ZSB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIAotIyB0aGUgXGlt
YWdlIGNvbW1hbmQpLgorIyBUaGUgSU1BR0VfUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBvbmUgb3IgbW9yZSBmaWxlcyBvciBkaXJlY3RvcmllcworIyB0aGF0IGNvbnRhaW4gaW1hZ2Vz
IHRoYXQgYXJlIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlCisj
IFxpbWFnZSBjb21tYW5kKS4KIAotSU1BR0VfUEFUSCAgICAgICAgICAgICA9IAorSU1BR0VfUEFU
SCAgICAgICAgICAgICA9CiAKLSMgVGhlIElOUFVUX0ZJTFRFUiB0YWcgY2FuIGJlIHVzZWQgdG8g
c3BlY2lmeSBhIHByb2dyYW0gdGhhdCBkb3h5Z2VuIHNob3VsZCAKLSMgaW52b2tlIHRvIGZpbHRl
ciBmb3IgZWFjaCBpbnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwgaW52b2tlIHRoZSBmaWx0ZXIgcHJv
Z3JhbSAKLSMgYnkgZXhlY3V0aW5nICh2aWEgcG9wZW4oKSkgdGhlIGNvbW1hbmQgPGZpbHRlcj4g
PGlucHV0LWZpbGU+LCB3aGVyZSA8ZmlsdGVyPiAKLSMgaXMgdGhlIHZhbHVlIG9mIHRoZSBJTlBV
VF9GSUxURVIgdGFnLCBhbmQgPGlucHV0LWZpbGU+IGlzIHRoZSBuYW1lIG9mIGFuIAotIyBpbnB1
dCBmaWxlLiBEb3h5Z2VuIHdpbGwgdGhlbiB1c2UgdGhlIG91dHB1dCB0aGF0IHRoZSBmaWx0ZXIg
cHJvZ3JhbSB3cml0ZXMgCi0jIHRvIHN0YW5kYXJkIG91dHB1dC4gCi0jIElmIEZJTFRFUl9QQVRU
RVJOUyBpcyBzcGVjaWZpZWQsIHRoaXMgdGFnIHdpbGwgYmUgCi0jIGlnbm9yZWQuCisjIFRoZSBJ
TlBVVF9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm9ncmFtIHRoYXQgZG94
eWdlbiBzaG91bGQKKyMgaW52b2tlIHRvIGZpbHRlciBmb3IgZWFjaCBpbnB1dCBmaWxlLiBEb3h5
Z2VuIHdpbGwgaW52b2tlIHRoZSBmaWx0ZXIgcHJvZ3JhbQorIyBieSBleGVjdXRpbmcgKHZpYSBw
b3BlbigpKSB0aGUgY29tbWFuZDoKKyMKKyMgPGZpbHRlcj4gPGlucHV0LWZpbGU+CisjCisjIHdo
ZXJlIDxmaWx0ZXI+IGlzIHRoZSB2YWx1ZSBvZiB0aGUgSU5QVVRfRklMVEVSIHRhZywgYW5kIDxp
bnB1dC1maWxlPiBpcyB0aGUKKyMgbmFtZSBvZiBhbiBpbnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwg
dGhlbiB1c2UgdGhlIG91dHB1dCB0aGF0IHRoZSBmaWx0ZXIKKyMgcHJvZ3JhbSB3cml0ZXMgdG8g
c3RhbmRhcmQgb3V0cHV0LiBJZiBGSUxURVJfUEFUVEVSTlMgaXMgc3BlY2lmaWVkLCB0aGlzIHRh
ZworIyB3aWxsIGJlIGlnbm9yZWQuCisjCisjIE5vdGUgdGhhdCB0aGUgZmlsdGVyIG11c3Qgbm90
IGFkZCBvciByZW1vdmUgbGluZXM7IGl0IGlzIGFwcGxpZWQgYmVmb3JlIHRoZQorIyBjb2RlIGlz
IHNjYW5uZWQsIGJ1dCBub3Qgd2hlbiB0aGUgb3V0cHV0IGNvZGUgaXMgZ2VuZXJhdGVkLiBJZiBs
aW5lcyBhcmUgYWRkZWQKKyMgb3IgcmVtb3ZlZCwgdGhlIGFuY2hvcnMgd2lsbCBub3QgYmUgcGxh
Y2VkIGNvcnJlY3RseS4KIAotSU5QVVRfRklMVEVSICAgICAgICAgICA9IAorSU5QVVRfRklMVEVS
ICAgICAgICAgICA9CiAKLSMgVGhlIEZJTFRFUl9QQVRURVJOUyB0YWcgY2FuIGJlIHVzZWQgdG8g
c3BlY2lmeSBmaWx0ZXJzIG9uIGEgcGVyIGZpbGUgcGF0dGVybiAKLSMgYmFzaXMuIAotIyBEb3h5
Z2VuIHdpbGwgY29tcGFyZSB0aGUgZmlsZSBuYW1lIHdpdGggZWFjaCBwYXR0ZXJuIGFuZCBhcHBs
eSB0aGUgCi0jIGZpbHRlciBpZiB0aGVyZSBpcyBhIG1hdGNoLiAKLSMgVGhlIGZpbHRlcnMgYXJl
IGEgbGlzdCBvZiB0aGUgZm9ybTogCi0jIHBhdHRlcm49ZmlsdGVyIChsaWtlICouY3BwPW15X2Nw
cF9maWx0ZXIpLiBTZWUgSU5QVVRfRklMVEVSIGZvciBmdXJ0aGVyIAotIyBpbmZvIG9uIGhvdyBm
aWx0ZXJzIGFyZSB1c2VkLiBJZiBGSUxURVJfUEFUVEVSTlMgaXMgZW1wdHksIElOUFVUX0ZJTFRF
UiAKLSMgaXMgYXBwbGllZCB0byBhbGwgZmlsZXMuCisjIFRoZSBGSUxURVJfUEFUVEVSTlMgdGFn
IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZmlsdGVycyBvbiBhIHBlciBmaWxlIHBhdHRlcm4KKyMg
YmFzaXMuIERveHlnZW4gd2lsbCBjb21wYXJlIHRoZSBmaWxlIG5hbWUgd2l0aCBlYWNoIHBhdHRl
cm4gYW5kIGFwcGx5IHRoZQorIyBmaWx0ZXIgaWYgdGhlcmUgaXMgYSBtYXRjaC4gVGhlIGZpbHRl
cnMgYXJlIGEgbGlzdCBvZiB0aGUgZm9ybTogcGF0dGVybj1maWx0ZXIKKyMgKGxpa2UgKi5jcHA9
bXlfY3BwX2ZpbHRlcikuIFNlZSBJTlBVVF9GSUxURVIgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24g
b24gaG93CisjIGZpbHRlcnMgYXJlIHVzZWQuIElmIHRoZSBGSUxURVJfUEFUVEVSTlMgdGFnIGlz
IGVtcHR5IG9yIGlmIG5vbmUgb2YgdGhlCisjIHBhdHRlcm5zIG1hdGNoIHRoZSBmaWxlIG5hbWUs
IElOUFVUX0ZJTFRFUiBpcyBhcHBsaWVkLgogCi1GSUxURVJfUEFUVEVSTlMgICAgICAgID0gCitG
SUxURVJfUEFUVEVSTlMgICAgICAgID0KIAotIyBJZiB0aGUgRklMVEVSX1NPVVJDRV9GSUxFUyB0
YWcgaXMgc2V0IHRvIFlFUywgdGhlIGlucHV0IGZpbHRlciAoaWYgc2V0IHVzaW5nIAotIyBJTlBV
VF9GSUxURVIpIHdpbGwgYmUgdXNlZCB0byBmaWx0ZXIgdGhlIGlucHV0IGZpbGVzIHdoZW4gcHJv
ZHVjaW5nIHNvdXJjZSAKLSMgZmlsZXMgdG8gYnJvd3NlIChpLmUuIHdoZW4gU09VUkNFX0JST1dT
RVIgaXMgc2V0IHRvIFlFUykuCisjIElmIHRoZSBGSUxURVJfU09VUkNFX0ZJTEVTIHRhZyBpcyBz
ZXQgdG8gWUVTLCB0aGUgaW5wdXQgZmlsdGVyIChpZiBzZXQgdXNpbmcKKyMgSU5QVVRfRklMVEVS
ICkgd2lsbCBhbHNvIGJlIHVzZWQgdG8gZmlsdGVyIHRoZSBpbnB1dCBmaWxlcyB0aGF0IGFyZSB1
c2VkIGZvcgorIyBwcm9kdWNpbmcgdGhlIHNvdXJjZSBmaWxlcyB0byBicm93c2UgKGkuZS4gd2hl
biBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IE5PLgogCiBGSUxURVJfU09VUkNFX0ZJTEVTICAgID0gTk8KIAorIyBUaGUgRklMVEVSX1NPVVJD
RV9QQVRURVJOUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBzb3VyY2UgZmlsdGVycyBwZXIg
ZmlsZQorIyBwYXR0ZXJuLiBBIHBhdHRlcm4gd2lsbCBvdmVycmlkZSB0aGUgc2V0dGluZyBmb3Ig
RklMVEVSX1BBVFRFUk4gKGlmIGFueSkgYW5kCisjIGl0IGlzIGFsc28gcG9zc2libGUgdG8gZGlz
YWJsZSBzb3VyY2UgZmlsdGVyaW5nIGZvciBhIHNwZWNpZmljIHBhdHRlcm4gdXNpbmcKKyMgKi5l
eHQ9IChzbyB3aXRob3V0IG5hbWluZyBhIGZpbHRlcikuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBGSUxURVJfU09VUkNFX0ZJTEVTIGlzIHNldCB0byBZRVMuCisKK0ZJTFRFUl9T
T1VSQ0VfUEFUVEVSTlMgPQorCisjIElmIHRoZSBVU0VfTURGSUxFX0FTX01BSU5QQUdFIHRhZyBy
ZWZlcnMgdG8gdGhlIG5hbWUgb2YgYSBtYXJrZG93biBmaWxlIHRoYXQKKyMgaXMgcGFydCBvZiB0
aGUgaW5wdXQsIGl0cyBjb250ZW50cyB3aWxsIGJlIHBsYWNlZCBvbiB0aGUgbWFpbiBwYWdlCisj
IChpbmRleC5odG1sKS4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBoYXZlIGEgcHJvamVjdCBv
biBmb3IgaW5zdGFuY2UgR2l0SHViCisjIGFuZCB3YW50IHRvIHJldXNlIHRoZSBpbnRyb2R1Y3Rp
b24gcGFnZSBhbHNvIGZvciB0aGUgZG94eWdlbiBvdXRwdXQuCisKK1VTRV9NREZJTEVfQVNfTUFJ
TlBBR0UgPQorCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBy
ZWxhdGVkIHRvIHNvdXJjZSBicm93c2luZworIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRl
ZCB0byBzb3VyY2UgYnJvd3NpbmcKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgU09V
UkNFX0JST1dTRVIgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBhIGxpc3Qgb2Ygc291cmNlIGZpbGVz
IHdpbGwgCi0jIGJlIGdlbmVyYXRlZC4gRG9jdW1lbnRlZCBlbnRpdGllcyB3aWxsIGJlIGNyb3Nz
LXJlZmVyZW5jZWQgd2l0aCB0aGVzZSBzb3VyY2VzLiAKLSMgTm90ZTogVG8gZ2V0IHJpZCBvZiBh
bGwgc291cmNlIGNvZGUgaW4gdGhlIGdlbmVyYXRlZCBvdXRwdXQsIG1ha2Ugc3VyZSBhbHNvIAot
IyBWRVJCQVRJTV9IRUFERVJTIGlzIHNldCB0byBOTy4KKyMgSWYgdGhlIFNPVVJDRV9CUk9XU0VS
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gYSBsaXN0IG9mIHNvdXJjZSBmaWxlcyB3aWxsIGJlCisj
IGdlbmVyYXRlZC4gRG9jdW1lbnRlZCBlbnRpdGllcyB3aWxsIGJlIGNyb3NzLXJlZmVyZW5jZWQg
d2l0aCB0aGVzZSBzb3VyY2VzLgorIworIyBOb3RlOiBUbyBnZXQgcmlkIG9mIGFsbCBzb3VyY2Ug
Y29kZSBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dCwgbWFrZSBzdXJlIHRoYXQKKyMgYWxzbyBWRVJC
QVRJTV9IRUFERVJTIGlzIHNldCB0byBOTy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgog
CiBTT1VSQ0VfQlJPV1NFUiAgICAgICAgID0gWUVTCiAKLSMgU2V0dGluZyB0aGUgSU5MSU5FX1NP
VVJDRVMgdGFnIHRvIFlFUyB3aWxsIGluY2x1ZGUgdGhlIGJvZHkgCi0jIG9mIGZ1bmN0aW9ucyBh
bmQgY2xhc3NlcyBkaXJlY3RseSBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgU2V0dGluZyB0aGUg
SU5MSU5FX1NPVVJDRVMgdGFnIHRvIFlFUyB3aWxsIGluY2x1ZGUgdGhlIGJvZHkgb2YgZnVuY3Rp
b25zLAorIyBjbGFzc2VzIGFuZCBlbnVtcyBkaXJlY3RseSBpbnRvIHRoZSBkb2N1bWVudGF0aW9u
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIElOTElORV9TT1VSQ0VTICAgICAgICAg
PSBOTwogCi0jIFNldHRpbmcgdGhlIFNUUklQX0NPREVfQ09NTUVOVFMgdGFnIHRvIFlFUyAodGhl
IGRlZmF1bHQpIHdpbGwgaW5zdHJ1Y3QgCi0jIGRveHlnZW4gdG8gaGlkZSBhbnkgc3BlY2lhbCBj
b21tZW50IGJsb2NrcyBmcm9tIGdlbmVyYXRlZCBzb3VyY2UgY29kZSAKLSMgZnJhZ21lbnRzLiBO
b3JtYWwgQyBhbmQgQysrIGNvbW1lbnRzIHdpbGwgYWx3YXlzIHJlbWFpbiB2aXNpYmxlLgorIyBT
ZXR0aW5nIHRoZSBTVFJJUF9DT0RFX0NPTU1FTlRTIHRhZyB0byBZRVMgd2lsbCBpbnN0cnVjdCBk
b3h5Z2VuIHRvIGhpZGUgYW55CisjIHNwZWNpYWwgY29tbWVudCBibG9ja3MgZnJvbSBnZW5lcmF0
ZWQgc291cmNlIGNvZGUgZnJhZ21lbnRzLiBOb3JtYWwgQywgQysrIGFuZAorIyBGb3J0cmFuIGNv
bW1lbnRzIHdpbGwgYWx3YXlzIHJlbWFpbiB2aXNpYmxlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgogCiBTVFJJUF9DT0RFX0NPTU1FTlRTICAgID0gWUVTCiAKLSMgSWYgdGhlIFJFRkVS
RU5DRURfQllfUkVMQVRJT04gdGFnIGlzIHNldCB0byBZRVMgCi0jIHRoZW4gZm9yIGVhY2ggZG9j
dW1lbnRlZCBmdW5jdGlvbiBhbGwgZG9jdW1lbnRlZCAKLSMgZnVuY3Rpb25zIHJlZmVyZW5jaW5n
IGl0IHdpbGwgYmUgbGlzdGVkLgorIyBJZiB0aGUgUkVGRVJFTkNFRF9CWV9SRUxBVElPTiB0YWcg
aXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRvY3VtZW50ZWQKKyMgZnVuY3Rpb24gYWxsIGRv
Y3VtZW50ZWQgZnVuY3Rpb25zIHJlZmVyZW5jaW5nIGl0IHdpbGwgYmUgbGlzdGVkLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFJFRkVSRU5DRURfQllfUkVMQVRJT04gPSBZRVMKIAot
IyBJZiB0aGUgUkVGRVJFTkNFU19SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyAKLSMgdGhlbiBm
b3IgZWFjaCBkb2N1bWVudGVkIGZ1bmN0aW9uIGFsbCBkb2N1bWVudGVkIGVudGl0aWVzIAotIyBj
YWxsZWQvdXNlZCBieSB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUgbGlzdGVkLgorIyBJZiB0aGUgUkVG
RVJFTkNFU19SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRvY3VtZW50
ZWQgZnVuY3Rpb24KKyMgYWxsIGRvY3VtZW50ZWQgZW50aXRpZXMgY2FsbGVkL3VzZWQgYnkgdGhh
dCBmdW5jdGlvbiB3aWxsIGJlIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgog
CiBSRUZFUkVOQ0VTX1JFTEFUSU9OICAgID0gWUVTCiAKLSMgSWYgdGhlIFJFRkVSRU5DRVNfTElO
S19TT1VSQ0UgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSAKLSMgYW5kIFNPVVJDRV9C
Uk9XU0VSIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIHRoZSBoeXBlcmxpbmtzIGZyb20gCi0jIGZ1
bmN0aW9ucyBpbiBSRUZFUkVOQ0VTX1JFTEFUSU9OIGFuZCBSRUZFUkVOQ0VEX0JZX1JFTEFUSU9O
IGxpc3RzIHdpbGwgCi0jIGxpbmsgdG8gdGhlIHNvdXJjZSBjb2RlLiAKLSMgT3RoZXJ3aXNlIHRo
ZXkgd2lsbCBsaW5rIHRvIHRoZSBkb2N1bWVudGF0aW9uLgorIyBJZiB0aGUgUkVGRVJFTkNFU19M
SU5LX1NPVVJDRSB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgU09VUkNFX0JST1dTRVIgdGFnIGlzIHNl
dAorIyB0byBZRVMsIHRoZW4gdGhlIGh5cGVybGlua3MgZnJvbSBmdW5jdGlvbnMgaW4gUkVGRVJF
TkNFU19SRUxBVElPTiBhbmQKKyMgUkVGRVJFTkNFRF9CWV9SRUxBVElPTiBsaXN0cyB3aWxsIGxp
bmsgdG8gdGhlIHNvdXJjZSBjb2RlLiBPdGhlcndpc2UgdGhleSB3aWxsCisjIGxpbmsgdG8gdGhl
IGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIFJFRkVSRU5D
RVNfTElOS19TT1VSQ0UgPSBZRVMKIAotIyBJZiB0aGUgVVNFX0hUQUdTIHRhZyBpcyBzZXQgdG8g
WUVTIHRoZW4gdGhlIHJlZmVyZW5jZXMgdG8gc291cmNlIGNvZGUgCi0jIHdpbGwgcG9pbnQgdG8g
dGhlIEhUTUwgZ2VuZXJhdGVkIGJ5IHRoZSBodGFncygxKSB0b29sIGluc3RlYWQgb2YgZG94eWdl
biAKLSMgYnVpbHQtaW4gc291cmNlIGJyb3dzZXIuIFRoZSBodGFncyB0b29sIGlzIHBhcnQgb2Yg
R05VJ3MgZ2xvYmFsIHNvdXJjZSAKLSMgdGFnZ2luZyBzeXN0ZW0gKHNlZSBodHRwOi8vd3d3Lmdu
dS5vcmcvc29mdHdhcmUvZ2xvYmFsL2dsb2JhbC5odG1sKS4gWW91IAotIyB3aWxsIG5lZWQgdmVy
c2lvbiA0LjguNiBvciBoaWdoZXIuCisjIElmIFNPVVJDRV9UT09MVElQUyBpcyBlbmFibGVkICh0
aGUgZGVmYXVsdCkgdGhlbiBob3ZlcmluZyBhIGh5cGVybGluayBpbiB0aGUKKyMgc291cmNlIGNv
ZGUgd2lsbCBzaG93IGEgdG9vbHRpcCB3aXRoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gc3VjaCBh
cyBwcm90b3R5cGUsCisjIGJyaWVmIGRlc2NyaXB0aW9uIGFuZCBsaW5rcyB0byB0aGUgZGVmaW5p
dGlvbiBhbmQgZG9jdW1lbnRhdGlvbi4gU2luY2UgdGhpcworIyB3aWxsIG1ha2UgdGhlIEhUTUwg
ZmlsZSBsYXJnZXIgYW5kIGxvYWRpbmcgb2YgbGFyZ2UgZmlsZXMgYSBiaXQgc2xvd2VyLCB5b3UK
KyMgY2FuIG9wdCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNPVVJDRV9CUk9XU0VS
IGlzIHNldCB0byBZRVMuCisKK1NPVVJDRV9UT09MVElQUyAgICAgICAgPSBZRVMKKworIyBJZiB0
aGUgVVNFX0hUQUdTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIHJlZmVyZW5jZXMgdG8gc291
cmNlIGNvZGUgd2lsbAorIyBwb2ludCB0byB0aGUgSFRNTCBnZW5lcmF0ZWQgYnkgdGhlIGh0YWdz
KDEpIHRvb2wgaW5zdGVhZCBvZiBkb3h5Z2VuIGJ1aWx0LWluCisjIHNvdXJjZSBicm93c2VyLiBU
aGUgaHRhZ3MgdG9vbCBpcyBwYXJ0IG9mIEdOVSdzIGdsb2JhbCBzb3VyY2UgdGFnZ2luZyBzeXN0
ZW0KKyMgKHNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ2xvYmFsL2dsb2JhbC5odG1s
KS4gWW91IHdpbGwgbmVlZCB2ZXJzaW9uCisjIDQuOC42IG9yIGhpZ2hlci4KKyMKKyMgVG8gdXNl
IGl0IGRvIHRoZSBmb2xsb3dpbmc6CisjIC0gSW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb24gb2Yg
Z2xvYmFsCisjIC0gRW5hYmxlIFNPVVJDRV9CUk9XU0VSIGFuZCBVU0VfSFRBR1MgaW4gdGhlIGNv
bmZpZyBmaWxlCisjIC0gTWFrZSBzdXJlIHRoZSBJTlBVVCBwb2ludHMgdG8gdGhlIHJvb3Qgb2Yg
dGhlIHNvdXJjZSB0cmVlCisjIC0gUnVuIGRveHlnZW4gYXMgbm9ybWFsCisjCisjIERveHlnZW4g
d2lsbCBpbnZva2UgaHRhZ3MgKGFuZCB0aGF0IHdpbGwgaW4gdHVybiBpbnZva2UgZ3RhZ3MpLCBz
byB0aGVzZQorIyB0b29scyBtdXN0IGJlIGF2YWlsYWJsZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUg
KGkuZS4gaW4gdGhlIHNlYXJjaCBwYXRoKS4KKyMKKyMgVGhlIHJlc3VsdDogaW5zdGVhZCBvZiB0
aGUgc291cmNlIGJyb3dzZXIgZ2VuZXJhdGVkIGJ5IGRveHlnZW4sIHRoZSBsaW5rcyB0bworIyBz
b3VyY2UgY29kZSB3aWxsIG5vdyBwb2ludCB0byB0aGUgb3V0cHV0IG9mIGh0YWdzLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBT
T1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTLgogCiBVU0VfSFRBR1MgICAgICAgICAgICAgID0g
Tk8KIAotIyBJZiB0aGUgVkVSQkFUSU1fSEVBREVSUyB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRl
ZmF1bHQpIHRoZW4gRG94eWdlbiAKLSMgd2lsbCBnZW5lcmF0ZSBhIHZlcmJhdGltIGNvcHkgb2Yg
dGhlIGhlYWRlciBmaWxlIGZvciBlYWNoIGNsYXNzIGZvciAKLSMgd2hpY2ggYW4gaW5jbHVkZSBp
cyBzcGVjaWZpZWQuIFNldCB0byBOTyB0byBkaXNhYmxlIHRoaXMuCisjIElmIHRoZSBWRVJCQVRJ
TV9IRUFERVJTIHRhZyBpcyBzZXQgdGhlIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBh
CisjIHZlcmJhdGltIGNvcHkgb2YgdGhlIGhlYWRlciBmaWxlIGZvciBlYWNoIGNsYXNzIGZvciB3
aGljaCBhbiBpbmNsdWRlIGlzCisjIHNwZWNpZmllZC4gU2V0IHRvIE5PIHRvIGRpc2FibGUgdGhp
cy4KKyMgU2VlIGFsc286IFNlY3Rpb24gXGNsYXNzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLgogCiBWRVJCQVRJTV9IRUFERVJTICAgICAgID0gWUVTCiAKICMtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGFscGhhYmV0aWNhbCBj
bGFzcyBpbmRleAorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYWxwaGFi
ZXRpY2FsIGNsYXNzIGluZGV4CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEFMUEhB
QkVUSUNBTF9JTkRFWCB0YWcgaXMgc2V0IHRvIFlFUywgYW4gYWxwaGFiZXRpY2FsIGluZGV4IAot
IyBvZiBhbGwgY29tcG91bmRzIHdpbGwgYmUgZ2VuZXJhdGVkLiBFbmFibGUgdGhpcyBpZiB0aGUg
cHJvamVjdCAKLSMgY29udGFpbnMgYSBsb3Qgb2YgY2xhc3Nlcywgc3RydWN0cywgdW5pb25zIG9y
IGludGVyZmFjZXMuCisjIElmIHRoZSBBTFBIQUJFVElDQUxfSU5ERVggdGFnIGlzIHNldCB0byBZ
RVMsIGFuIGFscGhhYmV0aWNhbCBpbmRleCBvZiBhbGwKKyMgY29tcG91bmRzIHdpbGwgYmUgZ2Vu
ZXJhdGVkLiBFbmFibGUgdGhpcyBpZiB0aGUgcHJvamVjdCBjb250YWlucyBhIGxvdCBvZgorIyBj
bGFzc2VzLCBzdHJ1Y3RzLCB1bmlvbnMgb3IgaW50ZXJmYWNlcy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4KIAotQUxQSEFCRVRJQ0FMX0lOREVYICAgICA9IE5PCitBTFBIQUJFVElDQUxf
SU5ERVggICAgID0gWUVTCitUT0NfSU5DTFVERV9IRUFESU5HUyA9IDIKIAotIyBJZiB0aGUgYWxw
aGFiZXRpY2FsIGluZGV4IGlzIGVuYWJsZWQgKHNlZSBBTFBIQUJFVElDQUxfSU5ERVgpIHRoZW4g
Ci0jIHRoZSBDT0xTX0lOX0FMUEhBX0lOREVYIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRo
ZSBudW1iZXIgb2YgY29sdW1ucyAKLSMgaW4gd2hpY2ggdGhpcyBsaXN0IHdpbGwgYmUgc3BsaXQg
KGNhbiBiZSBhIG51bWJlciBpbiB0aGUgcmFuZ2UgWzEuLjIwXSkKKyMgVGhlIENPTFNfSU5fQUxQ
SEFfSU5ERVggdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjb2x1bW5z
IGluCisjIHdoaWNoIHRoZSBhbHBoYWJldGljYWwgaW5kZXggbGlzdCB3aWxsIGJlIHNwbGl0Lgor
IyBNaW5pbXVtIHZhbHVlOiAxLCBtYXhpbXVtIHZhbHVlOiAyMCwgZGVmYXVsdCB2YWx1ZTogNS4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEFMUEhBQkVUSUNBTF9JTkRFWCBpcyBz
ZXQgdG8gWUVTLgogCiBDT0xTX0lOX0FMUEhBX0lOREVYICAgID0gNQogCi0jIEluIGNhc2UgYWxs
IGNsYXNzZXMgaW4gYSBwcm9qZWN0IHN0YXJ0IHdpdGggYSBjb21tb24gcHJlZml4LCBhbGwgCi0j
IGNsYXNzZXMgd2lsbCBiZSBwdXQgdW5kZXIgdGhlIHNhbWUgaGVhZGVyIGluIHRoZSBhbHBoYWJl
dGljYWwgaW5kZXguIAotIyBUaGUgSUdOT1JFX1BSRUZJWCB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBvbmUgb3IgbW9yZSBwcmVmaXhlcyB0aGF0IAotIyBzaG91bGQgYmUgaWdub3JlZCB3aGls
ZSBnZW5lcmF0aW5nIHRoZSBpbmRleCBoZWFkZXJzLgorIyBJbiBjYXNlIGFsbCBjbGFzc2VzIGlu
IGEgcHJvamVjdCBzdGFydCB3aXRoIGEgY29tbW9uIHByZWZpeCwgYWxsIGNsYXNzZXMgd2lsbAor
IyBiZSBwdXQgdW5kZXIgdGhlIHNhbWUgaGVhZGVyIGluIHRoZSBhbHBoYWJldGljYWwgaW5kZXgu
IFRoZSBJR05PUkVfUFJFRklYIHRhZworIyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJlZml4
IChvciBhIGxpc3Qgb2YgcHJlZml4ZXMpIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQKKyMgd2hpbGUg
Z2VuZXJhdGluZyB0aGUgaW5kZXggaGVhZGVycy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEFMUEhBQkVUSUNBTF9JTkRFWCBpcyBzZXQgdG8gWUVTLgogCi1JR05PUkVfUFJFRklY
ICAgICAgICAgID0gCitJR05PUkVfUFJFRklYICAgICAgICAgID0KIAogIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgSFRNTCBvdXRwdXQK
KyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIEhUTUwgb3V0cHV0CiAjLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX0hUTUwgdGFnIGlzIHNldCB0byBZ
RVMgKHRoZSBkZWZhdWx0KSBEb3h5Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIEhUTUwgb3V0cHV0Lgor
IyBJZiB0aGUgR0VORVJBVEVfSFRNTCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgSFRNTCBvdXRwdXQKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogR0VORVJB
VEVfSFRNTCAgICAgICAgICA9IFlFUwogCi0jIFRoZSBIVE1MX09VVFBVVCB0YWcgaXMgdXNlZCB0
byBzcGVjaWZ5IHdoZXJlIHRoZSBIVE1MIGRvY3Mgd2lsbCBiZSBwdXQuIAotIyBJZiBhIHJlbGF0
aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJl
IAotIyBwdXQgaW4gZnJvbnQgb2YgaXQuIElmIGxlZnQgYmxhbmsgYGh0bWwnIHdpbGwgYmUgdXNl
ZCBhcyB0aGUgZGVmYXVsdCBwYXRoLgorIyBUaGUgSFRNTF9PVVRQVVQgdGFnIGlzIHVzZWQgdG8g
c3BlY2lmeSB3aGVyZSB0aGUgSFRNTCBkb2NzIHdpbGwgYmUgcHV0LiBJZiBhCisjIHJlbGF0aXZl
IHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1
dCBpbiBmcm9udCBvZgorIyBpdC4KKyMgVGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiBodG1sLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8g
WUVTLgogCiBIVE1MX09VVFBVVCAgICAgICAgICAgID0gJUhUTUxfT1VUUFVUJQogCi0jIFRoZSBI
VE1MX0ZJTEVfRVhURU5TSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBmaWxlIGV4
dGVuc2lvbiBmb3IgCi0jIGVhY2ggZ2VuZXJhdGVkIEhUTUwgcGFnZSAoZm9yIGV4YW1wbGU6IC5o
dG0sLnBocCwuYXNwKS4gSWYgaXQgaXMgbGVmdCBibGFuayAKLSMgZG94eWdlbiB3aWxsIGdlbmVy
YXRlIGZpbGVzIHdpdGggLmh0bWwgZXh0ZW5zaW9uLgorIyBUaGUgSFRNTF9GSUxFX0VYVEVOU0lP
TiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZSBleHRlbnNpb24gZm9yIGVhY2gK
KyMgZ2VuZXJhdGVkIEhUTUwgcGFnZSAoZm9yIGV4YW1wbGU6IC5odG0sIC5waHAsIC5hc3ApLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogLmh0bWwuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKIEhUTUxfRklMRV9FWFRFTlNJ
T04gICAgPSAuaHRtbAogCi0jIFRoZSBIVE1MX0hFQURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBhIHBlcnNvbmFsIEhUTUwgaGVhZGVyIGZvciAKLSMgZWFjaCBnZW5lcmF0ZWQgSFRNTCBw
YWdlLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIAorIyBUaGUg
SFRNTF9IRUFERVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSB1c2VyLWRlZmluZWQgSFRN
TCBoZWFkZXIgZmlsZSBmb3IKKyMgZWFjaCBnZW5lcmF0ZWQgSFRNTCBwYWdlLiBJZiB0aGUgdGFn
IGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKICMgc3RhbmRhcmQgaGVhZGVy
LgorIworIyBUbyBnZXQgdmFsaWQgSFRNTCB0aGUgaGVhZGVyIGZpbGUgdGhhdCBpbmNsdWRlcyBh
bnkgc2NyaXB0cyBhbmQgc3R5bGUgc2hlZXRzCisjIHRoYXQgZG94eWdlbiBuZWVkcywgd2hpY2gg
aXMgZGVwZW5kZW50IG9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdXNlZCAoZS5nLgorIyB0
aGUgc2V0dGluZyBHRU5FUkFURV9UUkVFVklFVykuIEl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0
byBzdGFydCB3aXRoIGEKKyMgZGVmYXVsdCBoZWFkZXIgdXNpbmcKKyMgZG94eWdlbiAtdyBodG1s
IG5ld19oZWFkZXIuaHRtbCBuZXdfZm9vdGVyLmh0bWwgbmV3X3N0eWxlc2hlZXQuY3NzCisjIFlv
dXJDb25maWdGaWxlCisjIGFuZCB0aGVuIG1vZGlmeSB0aGUgZmlsZSBuZXdfaGVhZGVyLmh0bWwu
IFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiCisjIGZvciBpbmZvcm1hdGlvbiBvbiBo
b3cgdG8gZ2VuZXJhdGUgdGhlIGRlZmF1bHQgaGVhZGVyIHRoYXQgZG94eWdlbiBub3JtYWxseQor
IyB1c2VzLgorIyBOb3RlOiBUaGUgaGVhZGVyIGlzIHN1YmplY3QgdG8gY2hhbmdlIHNvIHlvdSB0
eXBpY2FsbHkgaGF2ZSB0byByZWdlbmVyYXRlIHRoZQorIyBkZWZhdWx0IGhlYWRlciB3aGVuIHVw
Z3JhZGluZyB0byBhIG5ld2VyIHZlcnNpb24gb2YgZG94eWdlbi4gRm9yIGEgZGVzY3JpcHRpb24K
KyMgb2YgdGhlIHBvc3NpYmxlIG1hcmtlcnMgYW5kIGJsb2NrIG5hbWVzIHNlZSB0aGUgZG9jdW1l
bnRhdGlvbi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwg
aXMgc2V0IHRvIFlFUy4KIAogSFRNTF9IRUFERVIgICAgICAgICAgICA9IGhlYWRlci5odG1sCiAK
LSMgVGhlIEhUTUxfRk9PVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcGVyc29uYWwg
SFRNTCBmb290ZXIgZm9yIAotIyBlYWNoIGdlbmVyYXRlZCBIVE1MIHBhZ2UuIElmIGl0IGlzIGxl
ZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgCi0jIHN0YW5kYXJkIGZvb3Rlci4KKyMg
VGhlIEhUTUxfRk9PVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVk
IEhUTUwgZm9vdGVyIGZvciBlYWNoCisjIGdlbmVyYXRlZCBIVE1MIHBhZ2UuIElmIHRoZSB0YWcg
aXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBzdGFuZGFyZAorIyBmb290ZXIu
IFNlZSBIVE1MX0hFQURFUiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUg
YSBkZWZhdWx0CisjIGZvb3RlciBhbmQgd2hhdCBzcGVjaWFsIGNvbW1hbmRzIGNhbiBiZSB1c2Vk
IGluc2lkZSB0aGUgZm9vdGVyLiBTZWUgYWxzbworIyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIiBm
b3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGZvb3RlcgorIyB0
aGF0IGRveHlnZW4gbm9ybWFsbHkgdXNlcy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAogSFRNTF9GT09URVIgICAgICAgICAg
ICA9IGZvb3Rlci5odG1sCiAKLSMgVGhlIEhUTUxfU1RZTEVTSEVFVCB0YWcgY2FuIGJlIHVzZWQg
dG8gc3BlY2lmeSBhIHVzZXItZGVmaW5lZCBjYXNjYWRpbmcgCi0jIHN0eWxlIHNoZWV0IHRoYXQg
aXMgdXNlZCBieSBlYWNoIEhUTUwgcGFnZS4gSXQgY2FuIGJlIHVzZWQgdG8gCi0jIGZpbmUtdHVu
ZSB0aGUgbG9vayBvZiB0aGUgSFRNTCBvdXRwdXQuIElmIHRoZSB0YWcgaXMgbGVmdCBibGFuayBk
b3h5Z2VuIAotIyB3aWxsIGdlbmVyYXRlIGEgZGVmYXVsdCBzdHlsZSBzaGVldC4gTm90ZSB0aGF0
IGRveHlnZW4gd2lsbCB0cnkgdG8gY29weSAKLSMgdGhlIHN0eWxlIHNoZWV0IGZpbGUgdG8gdGhl
IEhUTUwgb3V0cHV0IGRpcmVjdG9yeSwgc28gZG9uJ3QgcHV0IHlvdXIgb3duIAotIyBzdHlsZXNo
ZWV0IGluIHRoZSBIVE1MIG91dHB1dCBkaXJlY3RvcnkgYXMgd2VsbCwgb3IgaXQgd2lsbCBiZSBl
cmFzZWQhCi0KLUhUTUxfU1RZTEVTSEVFVCAgICAgICAgPSAKLQotIyBJZiB0aGUgSFRNTF9BTElH
Tl9NRU1CRVJTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgbWVtYmVycyBvZiBjbGFzc2VzLCAKLSMg
ZmlsZXMgb3IgbmFtZXNwYWNlcyB3aWxsIGJlIGFsaWduZWQgaW4gSFRNTCB1c2luZyB0YWJsZXMu
IElmIHNldCB0byAKLSMgTk8gYSBidWxsZXQgbGlzdCB3aWxsIGJlIHVzZWQuCi0KLUhUTUxfQUxJ
R05fTUVNQkVSUyAgICAgPSBZRVMKLQotIyBJZiB0aGUgSFRNTF9EWU5BTUlDX1NFQ1RJT05TIHRh
ZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGdlbmVyYXRlZCBIVE1MIAotIyBkb2N1bWVudGF0aW9u
IHdpbGwgY29udGFpbiBzZWN0aW9ucyB0aGF0IGNhbiBiZSBoaWRkZW4gYW5kIHNob3duIGFmdGVy
IHRoZSAKLSMgcGFnZSBoYXMgbG9hZGVkLiBGb3IgdGhpcyB0byB3b3JrIGEgYnJvd3NlciB0aGF0
IHN1cHBvcnRzIAotIyBKYXZhU2NyaXB0IGFuZCBESFRNTCBpcyByZXF1aXJlZCAoZm9yIGluc3Rh
bmNlIE1vemlsbGEgMS4wKywgRmlyZWZveCAKLSMgTmV0c2NhcGUgNi4wKywgSW50ZXJuZXQgZXhw
bG9yZXIgNS4wKywgS29ucXVlcm9yLCBvciBTYWZhcmkpLgorIyBUaGUgSFRNTF9TVFlMRVNIRUVU
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIGNhc2NhZGluZyBzdHls
ZQorIyBzaGVldCB0aGF0IGlzIHVzZWQgYnkgZWFjaCBIVE1MIHBhZ2UuIEl0IGNhbiBiZSB1c2Vk
IHRvIGZpbmUtdHVuZSB0aGUgbG9vayBvZgorIyB0aGUgSFRNTCBvdXRwdXQuIElmIGxlZnQgYmxh
bmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZGVmYXVsdCBzdHlsZSBzaGVldC4KKyMgU2VlIGFs
c28gc2VjdGlvbiAiRG94eWdlbiB1c2FnZSIgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBnZW5l
cmF0ZSB0aGUgc3R5bGUKKyMgc2hlZXQgdGhhdCBkb3h5Z2VuIG5vcm1hbGx5IHVzZXMuCisjIE5v
dGU6IEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBIVE1MX0VYVFJBX1NUWUxFU0hFRVQgaW5zdGVh
ZCBvZiB0aGlzIHRhZywgYXMKKyMgaXQgaXMgbW9yZSByb2J1c3QgYW5kIHRoaXMgdGFnIChIVE1M
X1NUWUxFU0hFRVQpIHdpbGwgaW4gdGhlIGZ1dHVyZSBiZWNvbWUKKyMgb2Jzb2xldGUuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMu
CisKK0hUTUxfU1RZTEVTSEVFVCAgICAgICAgPQorCisjIFRoZSBIVE1MX0VYVFJBX1NUWUxFU0hF
RVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gYWRkaXRpb25hbCB1c2VyLQorIyBkZWZp
bmVkIGNhc2NhZGluZyBzdHlsZSBzaGVldCB0aGF0IGlzIGluY2x1ZGVkIGFmdGVyIHRoZSBzdGFu
ZGFyZCBzdHlsZSBzaGVldHMKKyMgY3JlYXRlZCBieSBkb3h5Z2VuLiBVc2luZyB0aGlzIG9wdGlv
biBvbmUgY2FuIG92ZXJydWxlIGNlcnRhaW4gc3R5bGUgYXNwZWN0cy4KKyMgVGhpcyBpcyBwcmVm
ZXJyZWQgb3ZlciB1c2luZyBIVE1MX1NUWUxFU0hFRVQgc2luY2UgaXQgZG9lcyBub3QgcmVwbGFj
ZSB0aGUKKyMgc3RhbmRhcmQgc3R5bGUgc2hlZXQgYW5kIGlzIHRoZXJlZm9yZSBtb3JlIHJvYnVz
dCBhZ2FpbnN0IGZ1dHVyZSB1cGRhdGVzLgorIyBEb3h5Z2VuIHdpbGwgY29weSB0aGUgc3R5bGUg
c2hlZXQgZmlsZSB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4gRm9yIGFuIGV4YW1wbGUKKyMgc2Vl
IHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0VYVFJBX1NUWUxFU0hFRVQgID0KKwor
IyBUaGUgSFRNTF9FWFRSQV9GSUxFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3Ig
bW9yZSBleHRyYSBpbWFnZXMgb3IKKyMgb3RoZXIgc291cmNlIGZpbGVzIHdoaWNoIHNob3VsZCBi
ZSBjb3BpZWQgdG8gdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeS4gTm90ZQorIyB0aGF0IHRoZXNl
IGZpbGVzIHdpbGwgYmUgY29waWVkIHRvIHRoZSBiYXNlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeS4g
VXNlIHRoZQorIyAkcmVscGF0aF4gbWFya2VyIGluIHRoZSBIVE1MX0hFQURFUiBhbmQvb3IgSFRN
TF9GT09URVIgZmlsZXMgdG8gbG9hZCB0aGVzZQorIyBmaWxlcy4gSW4gdGhlIEhUTUxfU1RZTEVT
SEVFVCBmaWxlLCB1c2UgdGhlIGZpbGUgbmFtZSBvbmx5LiBBbHNvIG5vdGUgdGhhdCB0aGUKKyMg
ZmlsZXMgd2lsbCBiZSBjb3BpZWQgYXMtaXM7IHRoZXJlIGFyZSBubyBjb21tYW5kcyBvciBtYXJr
ZXJzIGF2YWlsYWJsZS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRF
X0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9FWFRSQV9GSUxFUyAgICAgICA9CisKKyMgVGhl
IEhUTUxfQ09MT1JTVFlMRV9IVUUgdGFnIGNvbnRyb2xzIHRoZSBjb2xvciBvZiB0aGUgSFRNTCBv
dXRwdXQuIERveHlnZW4KKyMgd2lsbCBhZGp1c3QgdGhlIGNvbG9ycyBpbiB0aGUgc3R5bGVzaGVl
dCBhbmQgYmFja2dyb3VuZCBpbWFnZXMgYWNjb3JkaW5nIHRvCisjIHRoaXMgY29sb3IuIEh1ZSBp
cyBzcGVjaWZpZWQgYXMgYW4gYW5nbGUgb24gYSBjb2xvcndoZWVsLCBzZWUKKyMgaHR0cDovL2Vu
Lndpa2lwZWRpYS5vcmcvd2lraS9IdWUgZm9yIG1vcmUgaW5mb3JtYXRpb24uIEZvciBpbnN0YW5j
ZSB0aGUgdmFsdWUKKyMgMCByZXByZXNlbnRzIHJlZCwgNjAgaXMgeWVsbG93LCAxMjAgaXMgZ3Jl
ZW4sIDE4MCBpcyBjeWFuLCAyNDAgaXMgYmx1ZSwgMzAwCisjIHB1cnBsZSwgYW5kIDM2MCBpcyBy
ZWQgYWdhaW4uCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDM1OSwgZGVmYXVs
dCB2YWx1ZTogMjIwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
SFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0NPTE9SU1RZTEVfSFVFICAgID0gMjIwCisKKyMg
VGhlIEhUTUxfQ09MT1JTVFlMRV9TQVQgdGFnIGNvbnRyb2xzIHRoZSBwdXJpdHkgKG9yIHNhdHVy
YXRpb24pIG9mIHRoZSBjb2xvcnMKKyMgaW4gdGhlIEhUTUwgb3V0cHV0LiBGb3IgYSB2YWx1ZSBv
ZiAwIHRoZSBvdXRwdXQgd2lsbCB1c2UgZ3JheXNjYWxlcyBvbmx5LiBBCisjIHZhbHVlIG9mIDI1
NSB3aWxsIHByb2R1Y2UgdGhlIG1vc3Qgdml2aWQgY29sb3JzLgorIyBNaW5pbXVtIHZhbHVlOiAw
LCBtYXhpbXVtIHZhbHVlOiAyNTUsIGRlZmF1bHQgdmFsdWU6IDEwMC4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9D
T0xPUlNUWUxFX1NBVCAgICA9IDEwMAorCisjIFRoZSBIVE1MX0NPTE9SU1RZTEVfR0FNTUEgdGFn
IGNvbnRyb2xzIHRoZSBnYW1tYSBjb3JyZWN0aW9uIGFwcGxpZWQgdG8gdGhlCisjIGx1bWluYW5j
ZSBjb21wb25lbnQgb2YgdGhlIGNvbG9ycyBpbiB0aGUgSFRNTCBvdXRwdXQuIFZhbHVlcyBiZWxv
dyAxMDAKKyMgZ3JhZHVhbGx5IG1ha2UgdGhlIG91dHB1dCBsaWdodGVyLCB3aGVyZWFzIHZhbHVl
cyBhYm92ZSAxMDAgbWFrZSB0aGUgb3V0cHV0CisjIGRhcmtlci4gVGhlIHZhbHVlIGRpdmlkZWQg
YnkgMTAwIGlzIHRoZSBhY3R1YWwgZ2FtbWEgYXBwbGllZCwgc28gODAgcmVwcmVzZW50cworIyBh
IGdhbW1hIG9mIDAuOCwgVGhlIHZhbHVlIDIyMCByZXByZXNlbnRzIGEgZ2FtbWEgb2YgMi4yLCBh
bmQgMTAwIGRvZXMgbm90CisjIGNoYW5nZSB0aGUgZ2FtbWEuCisjIE1pbmltdW0gdmFsdWU6IDQw
LCBtYXhpbXVtIHZhbHVlOiAyNDAsIGRlZmF1bHQgdmFsdWU6IDgwLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0NP
TE9SU1RZTEVfR0FNTUEgID0gODAKKworIyBJZiB0aGUgSFRNTF9USU1FU1RBTVAgdGFnIGlzIHNl
dCB0byBZRVMgdGhlbiB0aGUgZm9vdGVyIG9mIGVhY2ggZ2VuZXJhdGVkIEhUTUwKKyMgcGFnZSB3
aWxsIGNvbnRhaW4gdGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgcGFnZSB3YXMgZ2VuZXJhdGVk
LiBTZXR0aW5nIHRoaXMKKyMgdG8gTk8gY2FuIGhlbHAgd2hlbiBjb21wYXJpbmcgdGhlIG91dHB1
dCBvZiBtdWx0aXBsZSBydW5zLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgor
CitIVE1MX1RJTUVTVEFNUCAgICAgICAgID0gWUVTCisKKyMgSWYgdGhlIEhUTUxfRFlOQU1JQ19T
RUNUSU9OUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBnZW5lcmF0ZWQgSFRNTAorIyBkb2N1
bWVudGF0aW9uIHdpbGwgY29udGFpbiBzZWN0aW9ucyB0aGF0IGNhbiBiZSBoaWRkZW4gYW5kIHNo
b3duIGFmdGVyIHRoZQorIyBwYWdlIGhhcyBsb2FkZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMg
c2V0IHRvIFlFUy4KIAogSFRNTF9EWU5BTUlDX1NFQ1RJT05TICA9IFlFUwogCi0jIElmIHRoZSBH
RU5FUkFURV9ET0NTRVQgdGFnIGlzIHNldCB0byBZRVMsIGFkZGl0aW9uYWwgaW5kZXggZmlsZXMg
Ci0jIHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVzZWQgYXMgaW5wdXQgZm9yIEFwcGxl
J3MgWGNvZGUgMyAKLSMgaW50ZWdyYXRlZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgaW50cm9k
dWNlZCB3aXRoIE9TWCAxMC41IChMZW9wYXJkKS4gCi0jIFRvIGNyZWF0ZSBhIGRvY3VtZW50YXRp
b24gc2V0LCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBNYWtlZmlsZSBpbiB0aGUgCi0jIEhUTUwg
b3V0cHV0IGRpcmVjdG9yeS4gUnVubmluZyBtYWtlIHdpbGwgcHJvZHVjZSB0aGUgZG9jc2V0IGlu
IHRoYXQgCi0jIGRpcmVjdG9yeSBhbmQgcnVubmluZyAibWFrZSBpbnN0YWxsIiB3aWxsIGluc3Rh
bGwgdGhlIGRvY3NldCBpbiAKLSMgfi9MaWJyYXJ5L0RldmVsb3Blci9TaGFyZWQvRG9jdW1lbnRh
dGlvbi9Eb2NTZXRzIHNvIHRoYXQgWGNvZGUgd2lsbCBmaW5kIAotIyBpdCBhdCBzdGFydHVwLiAK
LSMgU2VlIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3Rvb2xzL2NyZWF0aW5nZG9jc2V0c3dp
dGhkb3h5Z2VuLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisjIFdpdGggSFRNTF9JTkRFWF9O
VU1fRU5UUklFUyBvbmUgY2FuIGNvbnRyb2wgdGhlIHByZWZlcnJlZCBudW1iZXIgb2YgZW50cmll
cworIyBzaG93biBpbiB0aGUgdmFyaW91cyB0cmVlIHN0cnVjdHVyZWQgaW5kaWNlcyBpbml0aWFs
bHk7IHRoZSB1c2VyIGNhbiBleHBhbmQKKyMgYW5kIGNvbGxhcHNlIGVudHJpZXMgZHluYW1pY2Fs
bHkgbGF0ZXIgb24uIERveHlnZW4gd2lsbCBleHBhbmQgdGhlIHRyZWUgdG8KKyMgc3VjaCBhIGxl
dmVsIHRoYXQgYXQgbW9zdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBlbnRyaWVzIGFyZSB2aXNp
YmxlICh1bmxlc3MKKyMgYSBmdWxseSBjb2xsYXBzZWQgdHJlZSBhbHJlYWR5IGV4Y2VlZHMgdGhp
cyBhbW91bnQpLiBTbyBzZXR0aW5nIHRoZSBudW1iZXIgb2YKKyMgZW50cmllcyAxIHdpbGwgcHJv
ZHVjZSBhIGZ1bGwgY29sbGFwc2VkIHRyZWUgYnkgZGVmYXVsdC4gMCBpcyBhIHNwZWNpYWwgdmFs
dWUKKyMgcmVwcmVzZW50aW5nIGFuIGluZmluaXRlIG51bWJlciBvZiBlbnRyaWVzIGFuZCB3aWxs
IHJlc3VsdCBpbiBhIGZ1bGwgZXhwYW5kZWQKKyMgdHJlZSBieSBkZWZhdWx0LgorIyBNaW5pbXVt
IHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5OTk5LCBkZWZhdWx0IHZhbHVlOiAxMDAuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMu
CisKK0hUTUxfSU5ERVhfTlVNX0VOVFJJRVMgPSAxMDAKKworIyBJZiB0aGUgR0VORVJBVEVfRE9D
U0VUIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGluZGV4IGZpbGVzIHdpbGwgYmUKKyMg
Z2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVzZWQgYXMgaW5wdXQgZm9yIEFwcGxlJ3MgWGNvZGUgMyBp
bnRlZ3JhdGVkIGRldmVsb3BtZW50CisjIGVudmlyb25tZW50IChzZWU6IGh0dHA6Ly9kZXZlbG9w
ZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlLyksIGludHJvZHVjZWQgd2l0aAorIyBPU1ggMTAuNSAo
TGVvcGFyZCkuIFRvIGNyZWF0ZSBhIGRvY3VtZW50YXRpb24gc2V0LCBkb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgYQorIyBNYWtlZmlsZSBpbiB0aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5LiBSdW5uaW5n
IG1ha2Ugd2lsbCBwcm9kdWNlIHRoZSBkb2NzZXQgaW4KKyMgdGhhdCBkaXJlY3RvcnkgYW5kIHJ1
bm5pbmcgbWFrZSBpbnN0YWxsIHdpbGwgaW5zdGFsbCB0aGUgZG9jc2V0IGluCisjIH4vTGlicmFy
eS9EZXZlbG9wZXIvU2hhcmVkL0RvY3VtZW50YXRpb24vRG9jU2V0cyBzbyB0aGF0IFhjb2RlIHdp
bGwgZmluZCBpdCBhdAorIyBzdGFydHVwLiBTZWUgaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20v
dG9vbHMvY3JlYXRpbmdkb2NzZXRzd2l0aGRveHlnZW4uaHRtbAorIyBmb3IgbW9yZSBpbmZvcm1h
dGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBHRU5FUkFURV9ET0NT
RVQgICAgICAgID0gTk8KIAotIyBXaGVuIEdFTkVSQVRFX0RPQ1NFVCB0YWcgaXMgc2V0IHRvIFlF
UywgdGhpcyB0YWcgZGV0ZXJtaW5lcyB0aGUgbmFtZSBvZiB0aGUgCi0jIGZlZWQuIEEgZG9jdW1l
bnRhdGlvbiBmZWVkIHByb3ZpZGVzIGFuIHVtYnJlbGxhIHVuZGVyIHdoaWNoIG11bHRpcGxlIAot
IyBkb2N1bWVudGF0aW9uIHNldHMgZnJvbSBhIHNpbmdsZSBwcm92aWRlciAoc3VjaCBhcyBhIGNv
bXBhbnkgb3IgcHJvZHVjdCBzdWl0ZSkgCi0jIGNhbiBiZSBncm91cGVkLgorIyBUaGlzIHRhZyBk
ZXRlcm1pbmVzIHRoZSBuYW1lIG9mIHRoZSBkb2NzZXQgZmVlZC4gQSBkb2N1bWVudGF0aW9uIGZl
ZWQgcHJvdmlkZXMKKyMgYW4gdW1icmVsbGEgdW5kZXIgd2hpY2ggbXVsdGlwbGUgZG9jdW1lbnRh
dGlvbiBzZXRzIGZyb20gYSBzaW5nbGUgcHJvdmlkZXIKKyMgKHN1Y2ggYXMgYSBjb21wYW55IG9y
IHByb2R1Y3Qgc3VpdGUpIGNhbiBiZSBncm91cGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
RG94eWdlbiBnZW5lcmF0ZWQgZG9jcy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgogCiBET0NTRVRfRkVFRE5BTUUgICAgICAg
ID0gIkRveHlnZW4gZ2VuZXJhdGVkIGRvY3MiCiAKLSMgV2hlbiBHRU5FUkFURV9ET0NTRVQgdGFn
IGlzIHNldCB0byBZRVMsIHRoaXMgdGFnIHNwZWNpZmllcyBhIHN0cmluZyB0aGF0IAotIyBzaG91
bGQgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRvY3VtZW50YXRpb24gc2V0IGJ1bmRsZS4gVGhpcyBz
aG91bGQgYmUgYSAKLSMgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZSBzdHJpbmcsIGUuZy4gY29t
Lm15Y29tcGFueS5NeURvY1NldC4gRG94eWdlbiAKLSMgd2lsbCBhcHBlbmQgLmRvY3NldCB0byB0
aGUgbmFtZS4KKyMgVGhpcyB0YWcgc3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQgc2hvdWxkIHVuaXF1
ZWx5IGlkZW50aWZ5IHRoZSBkb2N1bWVudGF0aW9uCisjIHNldCBidW5kbGUuIFRoaXMgc2hvdWxk
IGJlIGEgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZSBzdHJpbmcsIGUuZy4KKyMgY29tLm15Y29t
cGFueS5NeURvY1NldC4gRG94eWdlbiB3aWxsIGFwcGVuZCAuZG9jc2V0IHRvIHRoZSBuYW1lLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4uUHJvamVjdC4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgogCiBE
T0NTRVRfQlVORExFX0lEICAgICAgID0gb3JnLmRveHlnZW4uUHJvamVjdAogCi0jIElmIHRoZSBH
RU5FUkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUywgYWRkaXRpb25hbCBpbmRleCBmaWxl
cyAKLSMgd2lsbCBiZSBnZW5lcmF0ZWQgdGhhdCBjYW4gYmUgdXNlZCBhcyBpbnB1dCBmb3IgdG9v
bHMgbGlrZSB0aGUgCi0jIE1pY3Jvc29mdCBIVE1MIGhlbHAgd29ya3Nob3AgdG8gZ2VuZXJhdGUg
YSBjb21waWxlZCBIVE1MIGhlbHAgZmlsZSAoLmNobSkgCi0jIG9mIHRoZSBnZW5lcmF0ZWQgSFRN
TCBkb2N1bWVudGF0aW9uLgorIyBUaGUgRE9DU0VUX1BVQkxJU0hFUl9JRCB0YWcgc3BlY2lmaWVz
IGEgc3RyaW5nIHRoYXQgc2hvdWxkIHVuaXF1ZWx5IGlkZW50aWZ5CisjIHRoZSBkb2N1bWVudGF0
aW9uIHB1Ymxpc2hlci4gVGhpcyBzaG91bGQgYmUgYSByZXZlcnNlIGRvbWFpbi1uYW1lIHN0eWxl
CisjIHN0cmluZywgZS5nLiBjb20ubXljb21wYW55Lk15RG9jU2V0LmRvY3VtZW50YXRpb24uCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5QdWJsaXNoZXIuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9ET0NTRVQgaXMgc2V0IHRvIFlFUy4KKwor
RE9DU0VUX1BVQkxJU0hFUl9JRCAgICA9IG9yZy5kb3h5Z2VuLlB1Ymxpc2hlcgorCisjIFRoZSBE
T0NTRVRfUFVCTElTSEVSX05BTUUgdGFnIGlkZW50aWZpZXMgdGhlIGRvY3VtZW50YXRpb24gcHVi
bGlzaGVyLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogUHVibGlzaGVyLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DU0VUIGlzIHNldCB0byBZRVMuCisKK0RP
Q1NFVF9QVUJMSVNIRVJfTkFNRSAgPSBQdWJsaXNoZXIKKworIyBJZiB0aGUgR0VORVJBVEVfSFRN
TEhFTFAgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIGdlbmVyYXRlcyB0aHJlZQorIyBh
ZGRpdGlvbmFsIEhUTUwgaW5kZXggZmlsZXM6IGluZGV4LmhocCwgaW5kZXguaGhjLCBhbmQgaW5k
ZXguaGhrLiBUaGUKKyMgaW5kZXguaGhwIGlzIGEgcHJvamVjdCBmaWxlIHRoYXQgY2FuIGJlIHJl
YWQgYnkgTWljcm9zb2Z0J3MgSFRNTCBIZWxwIFdvcmtzaG9wCisjIChzZWU6IGh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbS9lbi11cy9kb3dubG9hZC9kZXRhaWxzLmFzcHg/aWQ9MjExMzgpIG9uCisj
IFdpbmRvd3MuCisjCisjIFRoZSBIVE1MIEhlbHAgV29ya3Nob3AgY29udGFpbnMgYSBjb21waWxl
ciB0aGF0IGNhbiBjb252ZXJ0IGFsbCBIVE1MIG91dHB1dAorIyBnZW5lcmF0ZWQgYnkgZG94eWdl
biBpbnRvIGEgc2luZ2xlIGNvbXBpbGVkIEhUTUwgZmlsZSAoLmNobSkuIENvbXBpbGVkIEhUTUwK
KyMgZmlsZXMgYXJlIG5vdyB1c2VkIGFzIHRoZSBXaW5kb3dzIDk4IGhlbHAgZm9ybWF0LCBhbmQg
d2lsbCByZXBsYWNlIHRoZSBvbGQKKyMgV2luZG93cyBoZWxwIGZvcm1hdCAoLmhscCkgb24gYWxs
IFdpbmRvd3MgcGxhdGZvcm1zIGluIHRoZSBmdXR1cmUuIENvbXByZXNzZWQKKyMgSFRNTCBmaWxl
cyBhbHNvIGNvbnRhaW4gYW4gaW5kZXgsIGEgdGFibGUgb2YgY29udGVudHMsIGFuZCB5b3UgY2Fu
IHNlYXJjaCBmb3IKKyMgd29yZHMgaW4gdGhlIGRvY3VtZW50YXRpb24uIFRoZSBIVE1MIHdvcmtz
aG9wIGFsc28gY29udGFpbnMgYSB2aWV3ZXIgZm9yCisjIGNvbXByZXNzZWQgSFRNTCBmaWxlcy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBHRU5FUkFURV9IVE1MSEVMUCAg
ICAgID0gJUhUTUxfSEVMUCUKIAotIyBJZiB0aGUgR0VORVJBVEVfSFRNTEhFTFAgdGFnIGlzIHNl
dCB0byBZRVMsIHRoZSBDSE1fRklMRSB0YWcgY2FuIAotIyBiZSB1c2VkIHRvIHNwZWNpZnkgdGhl
IGZpbGUgbmFtZSBvZiB0aGUgcmVzdWx0aW5nIC5jaG0gZmlsZS4gWW91IAotIyBjYW4gYWRkIGEg
cGF0aCBpbiBmcm9udCBvZiB0aGUgZmlsZSBpZiB0aGUgcmVzdWx0IHNob3VsZCBub3QgYmUgCisj
IFRoZSBDSE1fRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZSBuYW1lIG9m
IHRoZSByZXN1bHRpbmcgLmNobQorIyBmaWxlLiBZb3UgY2FuIGFkZCBhIHBhdGggaW4gZnJvbnQg
b2YgdGhlIGZpbGUgaWYgdGhlIHJlc3VsdCBzaG91bGQgbm90IGJlCiAjIHdyaXR0ZW4gdG8gdGhl
IGh0bWwgb3V0cHV0IGRpcmVjdG9yeS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCiAKIENITV9GSUxFICAgICAgICAgICAg
ICAgPSBqc29uY3BwLSVKU09OQ1BQX1ZFUlNJT04lLmNobQogCi0jIElmIHRoZSBHRU5FUkFURV9I
VE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIEhIQ19MT0NBVElPTiB0YWcgY2FuIAotIyBi
ZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIChhYnNvbHV0ZSBwYXRoIGluY2x1ZGluZyBm
aWxlIG5hbWUpIG9mIAotIyB0aGUgSFRNTCBoZWxwIGNvbXBpbGVyIChoaGMuZXhlKS4gSWYgbm9u
LWVtcHR5IGRveHlnZW4gd2lsbCB0cnkgdG8gcnVuIAotIyB0aGUgSFRNTCBoZWxwIGNvbXBpbGVy
IG9uIHRoZSBnZW5lcmF0ZWQgaW5kZXguaGhwLgorIyBUaGUgSEhDX0xPQ0FUSU9OIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiAoYWJzb2x1dGUgcGF0aAorIyBpbmNsdWRp
bmcgZmlsZSBuYW1lKSBvZiB0aGUgSFRNTCBoZWxwIGNvbXBpbGVyICggaGhjLmV4ZSkuIElmIG5v
bi1lbXB0eQorIyBkb3h5Z2VuIHdpbGwgdHJ5IHRvIHJ1biB0aGUgSFRNTCBoZWxwIGNvbXBpbGVy
IG9uIHRoZSBnZW5lcmF0ZWQgaW5kZXguaGhwLgorIyBUaGUgZmlsZSBoYXMgdG8gYmUgc3BlY2lm
aWVkIHdpdGggZnVsbCBwYXRoLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KIAogSEhDX0xPQ0FUSU9OICAgICAgICAgICA9
ICJjOlxQcm9ncmFtIEZpbGVzXEhUTUwgSGVscCBXb3Jrc2hvcFxoaGMuZXhlIgogCi0jIElmIHRo
ZSBHRU5FUkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIEdFTkVSQVRFX0NISSBm
bGFnIAotIyBjb250cm9scyBpZiBhIHNlcGFyYXRlIC5jaGkgaW5kZXggZmlsZSBpcyBnZW5lcmF0
ZWQgKFlFUykgb3IgdGhhdCAKLSMgaXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBtYXN0ZXIg
LmNobSBmaWxlIChOTykuCisjIFRoZSBHRU5FUkFURV9DSEkgZmxhZyBjb250cm9scyBpZiBhIHNl
cGFyYXRlIC5jaGkgaW5kZXggZmlsZSBpcyBnZW5lcmF0ZWQgKAorIyBZRVMpIG9yIHRoYXQgaXQg
c2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBtYXN0ZXIgLmNobSBmaWxlICggTk8pLgorIyBUaGUg
ZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgogCiBHRU5FUkFURV9DSEkgICAgICAgICAg
ID0gWUVTCiAKLSMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCB0
aGUgQ0hNX0lOREVYX0VOQ09ESU5HIAotIyBpcyB1c2VkIHRvIGVuY29kZSBIdG1sSGVscCBpbmRl
eCAoaGhrKSwgY29udGVudCAoaGhjKSBhbmQgcHJvamVjdCBmaWxlIAotIyBjb250ZW50LgorIyBU
aGUgQ0hNX0lOREVYX0VOQ09ESU5HIGlzIHVzZWQgdG8gZW5jb2RlIEh0bWxIZWxwIGluZGV4ICgg
aGhrKSwgY29udGVudCAoIGhoYykKKyMgYW5kIHByb2plY3QgZmlsZSBjb250ZW50LgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlF
Uy4KIAotQ0hNX0lOREVYX0VOQ09ESU5HICAgICA9IAorQ0hNX0lOREVYX0VOQ09ESU5HICAgICA9
CiAKLSMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgQklO
QVJZX1RPQyBmbGFnIAotIyBjb250cm9scyB3aGV0aGVyIGEgYmluYXJ5IHRhYmxlIG9mIGNvbnRl
bnRzIGlzIGdlbmVyYXRlZCAoWUVTKSBvciBhIAotIyBub3JtYWwgdGFibGUgb2YgY29udGVudHMg
KE5PKSBpbiB0aGUgLmNobSBmaWxlLgorIyBUaGUgQklOQVJZX1RPQyBmbGFnIGNvbnRyb2xzIHdo
ZXRoZXIgYSBiaW5hcnkgdGFibGUgb2YgY29udGVudHMgaXMgZ2VuZXJhdGVkICgKKyMgWUVTKSBv
ciBhIG5vcm1hbCB0YWJsZSBvZiBjb250ZW50cyAoIE5PKSBpbiB0aGUgLmNobSBmaWxlLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgogCiBCSU5BUllfVE9DICAgICAgICAg
ICAgID0gWUVTCiAKLSMgVGhlIFRPQ19FWFBBTkQgZmxhZyBjYW4gYmUgc2V0IHRvIFlFUyB0byBh
ZGQgZXh0cmEgaXRlbXMgZm9yIGdyb3VwIG1lbWJlcnMgCi0jIHRvIHRoZSBjb250ZW50cyBvZiB0
aGUgSFRNTCBoZWxwIGRvY3VtZW50YXRpb24gYW5kIHRvIHRoZSB0cmVlIHZpZXcuCisjIFRoZSBU
T0NfRVhQQU5EIGZsYWcgY2FuIGJlIHNldCB0byBZRVMgdG8gYWRkIGV4dHJhIGl0ZW1zIGZvciBn
cm91cCBtZW1iZXJzIHRvCisjIHRoZSB0YWJsZSBvZiBjb250ZW50cyBvZiB0aGUgSFRNTCBoZWxw
IGRvY3VtZW50YXRpb24gYW5kIHRvIHRoZSB0cmVlIHZpZXcuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUxI
RUxQIGlzIHNldCB0byBZRVMuCiAKIFRPQ19FWFBBTkQgICAgICAgICAgICAgPSBZRVMKIAotIyBJ
ZiB0aGUgR0VORVJBVEVfUUhQIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBib3RoIFFIUF9OQU1FU1BB
Q0UgYW5kIFFIUF9WSVJUVUFMX0ZPTERFUiAKLSMgYXJlIHNldCwgYW4gYWRkaXRpb25hbCBpbmRl
eCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVzZWQgYXMgaW5wdXQgZm9yIAot
IyBRdCdzIHFoZWxwZ2VuZXJhdG9yIHRvIGdlbmVyYXRlIGEgUXQgQ29tcHJlc3NlZCBIZWxwICgu
cWNoKSBvZiB0aGUgZ2VuZXJhdGVkIAotIyBIVE1MIGRvY3VtZW50YXRpb24uCisjIElmIHRoZSBH
RU5FUkFURV9RSFAgdGFnIGlzIHNldCB0byBZRVMgYW5kIGJvdGggUUhQX05BTUVTUEFDRSBhbmQK
KyMgUUhQX1ZJUlRVQUxfRk9MREVSIGFyZSBzZXQsIGFuIGFkZGl0aW9uYWwgaW5kZXggZmlsZSB3
aWxsIGJlIGdlbmVyYXRlZCB0aGF0CisjIGNhbiBiZSB1c2VkIGFzIGlucHV0IGZvciBRdCdzIHFo
ZWxwZ2VuZXJhdG9yIHRvIGdlbmVyYXRlIGEgUXQgQ29tcHJlc3NlZCBIZWxwCisjICgucWNoKSBv
ZiB0aGUgZ2VuZXJhdGVkIEhUTUwgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBp
cyBzZXQgdG8gWUVTLgogCiBHRU5FUkFURV9RSFAgICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUg
UUhHX0xPQ0FUSU9OIHRhZyBpcyBzcGVjaWZpZWQsIHRoZSBRQ0hfRklMRSB0YWcgY2FuIAotIyBi
ZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGUgbmFtZSBvZiB0aGUgcmVzdWx0aW5nIC5xY2ggZmls
ZS4gCi0jIFRoZSBwYXRoIHNwZWNpZmllZCBpcyByZWxhdGl2ZSB0byB0aGUgSFRNTCBvdXRwdXQg
Zm9sZGVyLgorIyBJZiB0aGUgUUhHX0xPQ0FUSU9OIHRhZyBpcyBzcGVjaWZpZWQsIHRoZSBRQ0hf
RklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQorIyB0aGUgZmlsZSBuYW1lIG9mIHRoZSBy
ZXN1bHRpbmcgLnFjaCBmaWxlLiBUaGUgcGF0aCBzcGVjaWZpZWQgaXMgcmVsYXRpdmUgdG8KKyMg
dGhlIEhUTUwgb3V0cHV0IGZvbGRlci4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgogCi1RQ0hfRklMRSAgICAgICAgICAgICAgID0g
CitRQ0hfRklMRSAgICAgICAgICAgICAgID0KIAotIyBUaGUgUUhQX05BTUVTUEFDRSB0YWcgc3Bl
Y2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyAKLSMgUXQgSGVscCBQ
cm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSAKLSMgaHR0cDov
L2RvYy50cm9sbHRlY2guY29tL3F0aGVscHByb2plY3QuaHRtbCNuYW1lc3BhY2UKKyMgVGhlIFFI
UF9OQU1FU1BBQ0UgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNwYWNlIHRvIHVzZSB3aGVuIGdlbmVy
YXRpbmcgUXQgSGVscAorIyBQcm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxl
YXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBOYW1lc3BhY2UKKyMgKHNlZTogaHR0cDovL3F0LXBy
b2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI25hbWVzcGFjZSkuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5Qcm9qZWN0LgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCiAKLVFIUF9OQU1F
U1BBQ0UgICAgICAgICAgPSAKK1FIUF9OQU1FU1BBQ0UgICAgICAgICAgPQogCi0jIFRoZSBRSFBf
VklSVFVBTF9GT0xERVIgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNwYWNlIHRvIHVzZSB3aGVuIGdl
bmVyYXRpbmcgCi0jIFF0IEhlbHAgUHJvamVjdCBvdXRwdXQuIEZvciBtb3JlIGluZm9ybWF0aW9u
IHBsZWFzZSBzZWUgCi0jIGh0dHA6Ly9kb2MudHJvbGx0ZWNoLmNvbS9xdGhlbHBwcm9qZWN0Lmh0
bWwjdmlydHVhbC1mb2xkZXJzCisjIFRoZSBRSFBfVklSVFVBTF9GT0xERVIgdGFnIHNwZWNpZmll
cyB0aGUgbmFtZXNwYWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgUXQKKyMgSGVscCBQcm9qZWN0
IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3Qg
LyBWaXJ0dWFsCisjIEZvbGRlcnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00
LjgvcXRoZWxwcHJvamVjdC5odG1sI3ZpcnR1YWwtCisjIGZvbGRlcnMpLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogZG9jLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfUUhQIGlzIHNldCB0byBZRVMuCiAKIFFIUF9WSVJUVUFMX0ZPTERFUiAgICAgPSBkb2MKIAot
IyBJZiBRSFBfQ1VTVF9GSUxURVJfTkFNRSBpcyBzZXQsIGl0IHNwZWNpZmllcyB0aGUgbmFtZSBv
ZiBhIGN1c3RvbSBmaWx0ZXIgdG8gYWRkLiAKLSMgRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNl
IHNlZSAKLSMgaHR0cDovL2RvYy50cm9sbHRlY2guY29tL3F0aGVscHByb2plY3QuaHRtbCNjdXN0
b20tZmlsdGVycworIyBJZiB0aGUgUUhQX0NVU1RfRklMVEVSX05BTUUgdGFnIGlzIHNldCwgaXQg
c3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgY3VzdG9tCisjIGZpbHRlciB0byBhZGQuIEZvciBtb3Jl
IGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgUXQgSGVscCBQcm9qZWN0IC8gQ3VzdG9tCisjIEZpbHRl
cnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5o
dG1sI2N1c3RvbS0KKyMgZmlsdGVycykuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KKworUUhQX0NVU1RfRklMVEVSX05BTUUgICA9
CisKKyMgVGhlIFFIUF9DVVNUX0ZJTFRFUl9BVFRSUyB0YWcgc3BlY2lmaWVzIHRoZSBsaXN0IG9m
IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZQorIyBjdXN0b20gZmlsdGVyIHRvIGFkZC4gRm9yIG1vcmUg
aW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBDdXN0b20KKyMgRmlsdGVy
cyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0
bWwjY3VzdG9tLQorIyBmaWx0ZXJzKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSFBfQ1VTVF9GSUxURVJfQVRUUlMgID0K
KworIyBUaGUgUUhQX1NFQ1RfRklMVEVSX0FUVFJTIHRhZyBzcGVjaWZpZXMgdGhlIGxpc3Qgb2Yg
dGhlIGF0dHJpYnV0ZXMgdGhpcworIyBwcm9qZWN0J3MgZmlsdGVyIHNlY3Rpb24gbWF0Y2hlcy4g
UXQgSGVscCBQcm9qZWN0IC8gRmlsdGVyIEF0dHJpYnV0ZXMgKHNlZToKKyMgaHR0cDovL3F0LXBy
b2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI2ZpbHRlci1hdHRyaWJ1dGVz
KS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQg
dG8gWUVTLgorCitRSFBfU0VDVF9GSUxURVJfQVRUUlMgID0KKworIyBUaGUgUUhHX0xPQ0FUSU9O
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBRdCdzCisjIHFoZWxw
Z2VuZXJhdG9yLiBJZiBub24tZW1wdHkgZG94eWdlbiB3aWxsIHRyeSB0byBydW4gcWhlbHBnZW5l
cmF0b3Igb24gdGhlCisjIGdlbmVyYXRlZCAucWhwIGZpbGUuCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KKworUUhHX0xPQ0FUSU9O
ICAgICAgICAgICA9CisKKyMgSWYgdGhlIEdFTkVSQVRFX0VDTElQU0VIRUxQIHRhZyBpcyBzZXQg
dG8gWUVTLCBhZGRpdGlvbmFsIGluZGV4IGZpbGVzIHdpbGwgYmUKKyMgZ2VuZXJhdGVkLCB0b2dl
dGhlciB3aXRoIHRoZSBIVE1MIGZpbGVzLCB0aGV5IGZvcm0gYW4gRWNsaXBzZSBoZWxwIHBsdWdp
bi4gVG8KKyMgaW5zdGFsbCB0aGlzIHBsdWdpbiBhbmQgbWFrZSBpdCBhdmFpbGFibGUgdW5kZXIg
dGhlIGhlbHAgY29udGVudHMgbWVudSBpbgorIyBFY2xpcHNlLCB0aGUgY29udGVudHMgb2YgdGhl
IGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBIVE1MIGFuZCBYTUwgZmlsZXMgbmVlZHMKKyMgdG8g
YmUgY29waWVkIGludG8gdGhlIHBsdWdpbnMgZGlyZWN0b3J5IG9mIGVjbGlwc2UuIFRoZSBuYW1l
IG9mIHRoZSBkaXJlY3RvcnkKKyMgd2l0aGluIHRoZSBwbHVnaW5zIGRpcmVjdG9yeSBzaG91bGQg
YmUgdGhlIHNhbWUgYXMgdGhlIEVDTElQU0VfRE9DX0lEIHZhbHVlLgorIyBBZnRlciBjb3B5aW5n
IEVjbGlwc2UgbmVlZHMgdG8gYmUgcmVzdGFydGVkIGJlZm9yZSB0aGUgaGVscCBhcHBlYXJzLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0dFTkVSQVRFX0VDTElQU0VIRUxQ
ICAgPSBOTworCisjIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBFY2xpcHNlIGhlbHAgcGx1
Z2luLiBXaGVuIGluc3RhbGxpbmcgdGhlIHBsdWdpbgorIyB0aGUgZGlyZWN0b3J5IG5hbWUgY29u
dGFpbmluZyB0aGUgSFRNTCBhbmQgWE1MIGZpbGVzIHNob3VsZCBhbHNvIGhhdmUgdGhpcworIyBu
YW1lLiBFYWNoIGRvY3VtZW50YXRpb24gc2V0IHNob3VsZCBoYXZlIGl0cyBvd24gaWRlbnRpZmll
ci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5Z2VuLlByb2plY3QuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9FQ0xJUFNFSEVMUCBpcyBzZXQgdG8g
WUVTLgorCitFQ0xJUFNFX0RPQ19JRCAgICAgICAgID0gb3JnLmRveHlnZW4uUHJvamVjdAorCisj
IElmIHlvdSB3YW50IGZ1bGwgY29udHJvbCBvdmVyIHRoZSBsYXlvdXQgb2YgdGhlIGdlbmVyYXRl
ZCBIVE1MIHBhZ2VzIGl0IG1pZ2h0CisjIGJlIG5lY2Vzc2FyeSB0byBkaXNhYmxlIHRoZSBpbmRl
eCBhbmQgcmVwbGFjZSBpdCB3aXRoIHlvdXIgb3duLiBUaGUKKyMgRElTQUJMRV9JTkRFWCB0YWcg
Y2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIGNvbmRlbnNlZCBpbmRleCAodGFicykgYXQg
dG9wCisjIG9mIGVhY2ggSFRNTCBwYWdlLiBBIHZhbHVlIG9mIE5PIGVuYWJsZXMgdGhlIGluZGV4
IGFuZCB0aGUgdmFsdWUgWUVTIGRpc2FibGVzCisjIGl0LiBTaW5jZSB0aGUgdGFicyBpbiB0aGUg
aW5kZXggY29udGFpbiB0aGUgc2FtZSBpbmZvcm1hdGlvbiBhcyB0aGUgbmF2aWdhdGlvbgorIyB0
cmVlLCB5b3UgY2FuIHNldCB0aGlzIG9wdGlvbiB0byBZRVMgaWYgeW91IGFsc28gc2V0IEdFTkVS
QVRFX1RSRUVWSUVXIHRvIFlFUy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgog
Ci1RSFBfQ1VTVF9GSUxURVJfTkFNRSAgID0gCitESVNBQkxFX0lOREVYICAgICAgICAgID0gTk8K
IAotIyBUaGUgUUhQX0NVU1RfRklMVF9BVFRSUyB0YWcgc3BlY2lmaWVzIHRoZSBsaXN0IG9mIHRo
ZSBhdHRyaWJ1dGVzIG9mIHRoZSBjdXN0b20gZmlsdGVyIHRvIGFkZC5Gb3IgbW9yZSBpbmZvcm1h
dGlvbiBwbGVhc2Ugc2VlIAotIyA8YSBocmVmPSJodHRwOi8vZG9jLnRyb2xsdGVjaC5jb20vcXRo
ZWxwcHJvamVjdC5odG1sI2N1c3RvbS1maWx0ZXJzIj5RdCBIZWxwIFByb2plY3QgLyBDdXN0b20g
RmlsdGVyczwvYT4uCisjIFRoZSBHRU5FUkFURV9UUkVFVklFVyB0YWcgaXMgdXNlZCB0byBzcGVj
aWZ5IHdoZXRoZXIgYSB0cmVlLWxpa2UgaW5kZXgKKyMgc3RydWN0dXJlIHNob3VsZCBiZSBnZW5l
cmF0ZWQgdG8gZGlzcGxheSBoaWVyYXJjaGljYWwgaW5mb3JtYXRpb24uIElmIHRoZSB0YWcKKyMg
dmFsdWUgaXMgc2V0IHRvIFlFUywgYSBzaWRlIHBhbmVsIHdpbGwgYmUgZ2VuZXJhdGVkIGNvbnRh
aW5pbmcgYSB0cmVlLWxpa2UKKyMgaW5kZXggc3RydWN0dXJlIChqdXN0IGxpa2UgdGhlIG9uZSB0
aGF0IGlzIGdlbmVyYXRlZCBmb3IgSFRNTCBIZWxwKS4gRm9yIHRoaXMKKyMgdG8gd29yayBhIGJy
b3dzZXIgdGhhdCBzdXBwb3J0cyBKYXZhU2NyaXB0LCBESFRNTCwgQ1NTIGFuZCBmcmFtZXMgaXMg
cmVxdWlyZWQKKyMgKGkuZS4gYW55IG1vZGVybiBicm93c2VyKS4gV2luZG93cyB1c2VycyBhcmUg
cHJvYmFibHkgYmV0dGVyIG9mZiB1c2luZyB0aGUKKyMgSFRNTCBoZWxwIGZlYXR1cmUuIFZpYSBj
dXN0b20gc3R5bGVzaGVldHMgKHNlZSBIVE1MX0VYVFJBX1NUWUxFU0hFRVQpIG9uZSBjYW4KKyMg
ZnVydGhlciBmaW5lLXR1bmUgdGhlIGxvb2sgb2YgdGhlIGluZGV4LiBBcyBhbiBleGFtcGxlLCB0
aGUgZGVmYXVsdCBzdHlsZQorIyBzaGVldCBnZW5lcmF0ZWQgYnkgZG94eWdlbiBoYXMgYW4gZXhh
bXBsZSB0aGF0IHNob3dzIGhvdyB0byBwdXQgYW4gaW1hZ2UgYXQKKyMgdGhlIHJvb3Qgb2YgdGhl
IHRyZWUgaW5zdGVhZCBvZiB0aGUgUFJPSkVDVF9OQU1FLiBTaW5jZSB0aGUgdHJlZSBiYXNpY2Fs
bHkgaGFzCisjIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIHRoZSB0YWIgaW5kZXgsIHlvdSBjb3Vs
ZCBjb25zaWRlciBzZXR0aW5nCisjIERJU0FCTEVfSU5ERVggdG8gWUVTIHdoZW4gZW5hYmxpbmcg
dGhpcyBvcHRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAotUUhQX0NV
U1RfRklMVEVSX0FUVFJTICA9IAorR0VORVJBVEVfVFJFRVZJRVcgICAgICA9IE5PCiAKLSMgVGhl
IFFIUF9TRUNUX0ZJTFRFUl9BVFRSUyB0YWcgc3BlY2lmaWVzIHRoZSBsaXN0IG9mIHRoZSBhdHRy
aWJ1dGVzIHRoaXMgcHJvamVjdCdzIAotIyBmaWx0ZXIgc2VjdGlvbiBtYXRjaGVzLiAKLSMgPGEg
aHJlZj0iaHR0cDovL2RvYy50cm9sbHRlY2guY29tL3F0aGVscHByb2plY3QuaHRtbCNmaWx0ZXIt
YXR0cmlidXRlcyI+UXQgSGVscCBQcm9qZWN0IC8gRmlsdGVyIEF0dHJpYnV0ZXM8L2E+LgorIyBU
aGUgRU5VTV9WQUxVRVNfUEVSX0xJTkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbnVtYmVy
IG9mIGVudW0gdmFsdWVzIHRoYXQKKyMgZG94eWdlbiB3aWxsIGdyb3VwIG9uIG9uZSBsaW5lIGlu
IHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgorIworIyBOb3RlIHRoYXQgYSB2YWx1
ZSBvZiAwIHdpbGwgY29tcGxldGVseSBzdXBwcmVzcyB0aGUgZW51bSB2YWx1ZXMgZnJvbSBhcHBl
YXJpbmcKKyMgaW4gdGhlIG92ZXJ2aWV3IHNlY3Rpb24uCisjIE1pbmltdW0gdmFsdWU6IDAsIG1h
eGltdW0gdmFsdWU6IDIwLCBkZWZhdWx0IHZhbHVlOiA0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCi1RSFBfU0VDVF9GSUxU
RVJfQVRUUlMgID0gCitFTlVNX1ZBTFVFU19QRVJfTElORSAgID0gNAogCi0jIElmIHRoZSBHRU5F
UkFURV9RSFAgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBRSEdfTE9DQVRJT04gdGFnIGNhbiAKLSMg
YmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBRdCdzIHFoZWxwZ2VuZXJhdG9yLiAK
LSMgSWYgbm9uLWVtcHR5IGRveHlnZW4gd2lsbCB0cnkgdG8gcnVuIHFoZWxwZ2VuZXJhdG9yIG9u
IHRoZSBnZW5lcmF0ZWQgCi0jIC5xaHAgZmlsZS4KKyMgSWYgdGhlIHRyZWV2aWV3IGlzIGVuYWJs
ZWQgKHNlZSBHRU5FUkFURV9UUkVFVklFVykgdGhlbiB0aGlzIHRhZyBjYW4gYmUgdXNlZAorIyB0
byBzZXQgdGhlIGluaXRpYWwgd2lkdGggKGluIHBpeGVscykgb2YgdGhlIGZyYW1lIGluIHdoaWNo
IHRoZSB0cmVlIGlzIHNob3duLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAx
NTAwLCBkZWZhdWx0IHZhbHVlOiAyNTAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKLVFIR19MT0NBVElPTiAgICAgICAgICAg
PSAKK1RSRUVWSUVXX1dJRFRIICAgICAgICAgPSAyNTAKIAotIyBUaGUgRElTQUJMRV9JTkRFWCB0
YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIGNvbmRlbnNlZCBpbmRleCBhdCAKLSMg
dG9wIG9mIGVhY2ggSFRNTCBwYWdlLiBUaGUgdmFsdWUgTk8gKHRoZSBkZWZhdWx0KSBlbmFibGVz
IHRoZSBpbmRleCBhbmQgCi0jIHRoZSB2YWx1ZSBZRVMgZGlzYWJsZXMgaXQuCisjIFdoZW4gdGhl
IEVYVF9MSU5LU19JTl9XSU5ET1cgb3B0aW9uIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIG9w
ZW4gbGlua3MgdG8KKyMgZXh0ZXJuYWwgc3ltYm9scyBpbXBvcnRlZCB2aWEgdGFnIGZpbGVzIGlu
IGEgc2VwYXJhdGUgd2luZG93LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAK
LURJU0FCTEVfSU5ERVggICAgICAgICAgPSBOTworRVhUX0xJTktTX0lOX1dJTkRPVyAgICA9IE5P
CiAKLSMgVGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBudW1iZXIgb2YgZW51bSB2YWx1
ZXMgKHJhbmdlIFsxLi4yMF0pIAotIyB0aGF0IGRveHlnZW4gd2lsbCBncm91cCBvbiBvbmUgbGlu
ZSBpbiB0aGUgZ2VuZXJhdGVkIEhUTUwgZG9jdW1lbnRhdGlvbi4KKyMgVXNlIHRoaXMgdGFnIHRv
IGNoYW5nZSB0aGUgZm9udCBzaXplIG9mIExhVGVYIGZvcm11bGFzIGluY2x1ZGVkIGFzIGltYWdl
cyBpbgorIyB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLiBXaGVuIHlvdSBjaGFuZ2UgdGhlIGZvbnQg
c2l6ZSBhZnRlciBhIHN1Y2Nlc3NmdWwKKyMgZG94eWdlbiBydW4geW91IG5lZWQgdG8gbWFudWFs
bHkgcmVtb3ZlIGFueSBmb3JtXyoucG5nIGltYWdlcyBmcm9tIHRoZSBIVE1MCisjIG91dHB1dCBk
aXJlY3RvcnkgdG8gZm9yY2UgdGhlbSB0byBiZSByZWdlbmVyYXRlZC4KKyMgTWluaW11bSB2YWx1
ZTogOCwgbWF4aW11bSB2YWx1ZTogNTAsIGRlZmF1bHQgdmFsdWU6IDEwLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCi1FTlVN
X1ZBTFVFU19QRVJfTElORSAgID0gNAorRk9STVVMQV9GT05UU0laRSAgICAgICA9IDEwCiAKLSMg
VGhlIEdFTkVSQVRFX1RSRUVWSUVXIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hldGhlciBhIHRy
ZWUtbGlrZSBpbmRleCAKLSMgc3RydWN0dXJlIHNob3VsZCBiZSBnZW5lcmF0ZWQgdG8gZGlzcGxh
eSBoaWVyYXJjaGljYWwgaW5mb3JtYXRpb24uIAotIyBJZiB0aGUgdGFnIHZhbHVlIGlzIHNldCB0
byBGUkFNRSwgYSBzaWRlIHBhbmVsIHdpbGwgYmUgZ2VuZXJhdGVkIAotIyBjb250YWluaW5nIGEg
dHJlZS1saWtlIGluZGV4IHN0cnVjdHVyZSAoanVzdCBsaWtlIHRoZSBvbmUgdGhhdCAKLSMgaXMg
Z2VuZXJhdGVkIGZvciBIVE1MIEhlbHApLiBGb3IgdGhpcyB0byB3b3JrIGEgYnJvd3NlciB0aGF0
IHN1cHBvcnRzIAotIyBKYXZhU2NyaXB0LCBESFRNTCwgQ1NTIGFuZCBmcmFtZXMgaXMgcmVxdWly
ZWQgKGZvciBpbnN0YW5jZSBNb3ppbGxhIDEuMCssIAotIyBOZXRzY2FwZSA2LjArLCBJbnRlcm5l
dCBleHBsb3JlciA1LjArLCBvciBLb25xdWVyb3IpLiBXaW5kb3dzIHVzZXJzIGFyZSAKLSMgcHJv
YmFibHkgYmV0dGVyIG9mZiB1c2luZyB0aGUgSFRNTCBoZWxwIGZlYXR1cmUuIE90aGVyIHBvc3Np
YmxlIHZhbHVlcyAKLSMgZm9yIHRoaXMgdGFnIGFyZTogSElFUkFSQ0hJRVMsIHdoaWNoIHdpbGwg
Z2VuZXJhdGUgdGhlIEdyb3VwcywgRGlyZWN0b3JpZXMsIAotIyBhbmQgQ2xhc3MgSGllcmFyY2h5
IHBhZ2VzIHVzaW5nIGEgdHJlZSB2aWV3IGluc3RlYWQgb2YgYW4gb3JkZXJlZCBsaXN0OyAKLSMg
QUxMLCB3aGljaCBjb21iaW5lcyB0aGUgYmVoYXZpb3Igb2YgRlJBTUUgYW5kIEhJRVJBUkNISUVT
OyBhbmQgTk9ORSwgd2hpY2ggCi0jIGRpc2FibGVzIHRoaXMgYmVoYXZpb3IgY29tcGxldGVseS4g
Rm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgCi0jIHJlbGVhc2VzIG9m
IERveHlnZW4sIHRoZSB2YWx1ZXMgWUVTIGFuZCBOTyBhcmUgZXF1aXZhbGVudCB0byBGUkFNRSBh
bmQgTk9ORSAKLSMgcmVzcGVjdGl2ZWx5LgorIyBVc2UgdGhlIEZPUk1VTEFfVFJBTlBBUkVOVCB0
YWcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBpbWFnZXMKKyMgZ2VuZXJhdGVkIGZv
ciBmb3JtdWxhcyBhcmUgdHJhbnNwYXJlbnQgUE5Hcy4gVHJhbnNwYXJlbnQgUE5HcyBhcmUgbm90
CisjIHN1cHBvcnRlZCBwcm9wZXJseSBmb3IgSUUgNi4wLCBidXQgYXJlIHN1cHBvcnRlZCBvbiBh
bGwgbW9kZXJuIGJyb3dzZXJzLgorIworIyBOb3RlIHRoYXQgd2hlbiBjaGFuZ2luZyB0aGlzIG9w
dGlvbiB5b3UgbmVlZCB0byBkZWxldGUgYW55IGZvcm1fKi5wbmcgZmlsZXMgaW4KKyMgdGhlIEhU
TUwgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgdGhlIGNoYW5nZXMgaGF2ZSBlZmZlY3QuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0ZPUk1VTEFfVFJBTlNQQVJFTlQgICAg
PSBZRVMKKworIyBFbmFibGUgdGhlIFVTRV9NQVRISkFYIG9wdGlvbiB0byByZW5kZXIgTGFUZVgg
Zm9ybXVsYXMgdXNpbmcgTWF0aEpheCAoc2VlCisjIGh0dHA6Ly93d3cubWF0aGpheC5vcmcpIHdo
aWNoIHVzZXMgY2xpZW50IHNpZGUgSmF2YVNjcmlwdCBmb3IgdGhlIHJlbmRlcmluZworIyBpbnN0
ZWFkIG9mIHVzaW5nIHByZXJlbmRlcmVkIGJpdG1hcHMuIFVzZSB0aGlzIGlmIHlvdSBkbyBub3Qg
aGF2ZSBMYVRlWAorIyBpbnN0YWxsZWQgb3IgaWYgeW91IHdhbnQgdG8gZm9ybXVsYXMgbG9vayBw
cmV0dGllciBpbiB0aGUgSFRNTCBvdXRwdXQuIFdoZW4KKyMgZW5hYmxlZCB5b3UgbWF5IGFsc28g
bmVlZCB0byBpbnN0YWxsIE1hdGhKYXggc2VwYXJhdGVseSBhbmQgY29uZmlndXJlIHRoZSBwYXRo
CisjIHRvIGl0IHVzaW5nIHRoZSBNQVRISkFYX1JFTFBBVEggb3B0aW9uLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9IVE1MIGlzIHNldCB0byBZRVMuCisKK1VTRV9NQVRISkFYICAgICAgICAgICAgPSBOTworCisj
IFdoZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBjYW4gc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBm
b3JtYXQgdG8gYmUgdXNlZCBmb3IKKyMgdGhlIE1hdGhKYXggb3V0cHV0LiBTZWUgdGhlIE1hdGhK
YXggc2l0ZSAoc2VlOgorIyBodHRwOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi9sYXRlc3Qvb3V0cHV0
Lmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IEhUTUwtQ1NT
ICh3aGljaCBpcyBzbG93ZXIsIGJ1dCBoYXMgdGhlIGJlc3QKKyMgY29tcGF0aWJpbGl0eSksIE5h
dGl2ZU1NTCAoaS5lLiBNYXRoTUwpIGFuZCBTVkcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBI
VE1MLUNTUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFVTRV9NQVRISkFYIGlz
IHNldCB0byBZRVMuCisKK01BVEhKQVhfRk9STUFUICAgICAgICAgPSBIVE1MLUNTUworCisjIFdo
ZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBuZWVkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIHJl
bGF0aXZlIHRvIHRoZSBIVE1MCisjIG91dHB1dCBkaXJlY3RvcnkgdXNpbmcgdGhlIE1BVEhKQVhf
UkVMUEFUSCBvcHRpb24uIFRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkKKyMgc2hvdWxkIGNvbnRh
aW4gdGhlIE1hdGhKYXguanMgc2NyaXB0LiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBtYXRoamF4IGRp
cmVjdG9yeQorIyBpcyBsb2NhdGVkIGF0IHRoZSBzYW1lIGxldmVsIGFzIHRoZSBIVE1MIG91dHB1
dCBkaXJlY3RvcnksIHRoZW4KKyMgTUFUSEpBWF9SRUxQQVRIIHNob3VsZCBiZSAuLi9tYXRoamF4
LiBUaGUgZGVmYXVsdCB2YWx1ZSBwb2ludHMgdG8gdGhlIE1hdGhKYXgKKyMgQ29udGVudCBEZWxp
dmVyeSBOZXR3b3JrIHNvIHlvdSBjYW4gcXVpY2tseSBzZWUgdGhlIHJlc3VsdCB3aXRob3V0IGlu
c3RhbGxpbmcKKyMgTWF0aEpheC4gSG93ZXZlciwgaXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQg
dG8gaW5zdGFsbCBhIGxvY2FsIGNvcHkgb2YKKyMgTWF0aEpheCBmcm9tIGh0dHA6Ly93d3cubWF0
aGpheC5vcmcgYmVmb3JlIGRlcGxveW1lbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBodHRw
Oi8vY2RuLm1hdGhqYXgub3JnL21hdGhqYXgvbGF0ZXN0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9SRUxQQVRI
ICAgICAgICA9IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0aGpheC9sYXRlc3QKKworIyBUaGUg
TUFUSEpBWF9FWFRFTlNJT05TIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3Jl
IE1hdGhKYXgKKyMgZXh0ZW5zaW9uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIGVuYWJsZWQgZHVyaW5n
IE1hdGhKYXggcmVuZGVyaW5nLiBGb3IgZXhhbXBsZQorIyBNQVRISkFYX0VYVEVOU0lPTlMgPSBU
ZVgvQU1TbWF0aCBUZVgvQU1Tc3ltYm9scworIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9FWFRFTlNJT05TICAgICA9
CisKKyMgVGhlIE1BVEhKQVhfQ09ERUZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBm
aWxlIHdpdGggamF2YXNjcmlwdCBwaWVjZXMKKyMgb2YgY29kZSB0aGF0IHdpbGwgYmUgdXNlZCBv
biBzdGFydHVwIG9mIHRoZSBNYXRoSmF4IGNvZGUuIFNlZSB0aGUgTWF0aEpheCBzaXRlCisjIChz
ZWU6IGh0dHA6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL2xhdGVzdC9vdXRwdXQuaHRtbCkgZm9yIG1v
cmUgZGV0YWlscy4gRm9yIGFuCisjIGV4YW1wbGUgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4K
KworTUFUSEpBWF9DT0RFRklMRSAgICAgICA9CisKKyMgV2hlbiB0aGUgU0VBUkNIRU5HSU5FIHRh
ZyBpcyBlbmFibGVkIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHNlYXJjaCBib3ggZm9yCisjIHRo
ZSBIVE1MIG91dHB1dC4gVGhlIHVuZGVybHlpbmcgc2VhcmNoIGVuZ2luZSB1c2VzIGphdmFzY3Jp
cHQgYW5kIERIVE1MIGFuZAorIyBzaG91bGQgd29yayBvbiBhbnkgbW9kZXJuIGJyb3dzZXIuIE5v
dGUgdGhhdCB3aGVuIHVzaW5nIEhUTUwgaGVscAorIyAoR0VORVJBVEVfSFRNTEhFTFApLCBRdCBo
ZWxwIChHRU5FUkFURV9RSFApLCBvciBkb2NzZXRzIChHRU5FUkFURV9ET0NTRVQpCisjIHRoZXJl
IGlzIGFscmVhZHkgYSBzZWFyY2ggZnVuY3Rpb24gc28gdGhpcyBvbmUgc2hvdWxkIHR5cGljYWxs
eSBiZSBkaXNhYmxlZC4KKyMgRm9yIGxhcmdlIHByb2plY3RzIHRoZSBqYXZhc2NyaXB0IGJhc2Vk
IHNlYXJjaCBlbmdpbmUgY2FuIGJlIHNsb3csIHRoZW4KKyMgZW5hYmxpbmcgU0VSVkVSX0JBU0VE
X1NFQVJDSCBtYXkgcHJvdmlkZSBhIGJldHRlciBzb2x1dGlvbi4gSXQgaXMgcG9zc2libGUgdG8K
KyMgc2VhcmNoIHVzaW5nIHRoZSBrZXlib2FyZDsgdG8ganVtcCB0byB0aGUgc2VhcmNoIGJveCB1
c2UgPGFjY2VzcyBrZXk+ICsgUworIyAod2hhdCB0aGUgPGFjY2VzcyBrZXk+IGlzIGRlcGVuZHMg
b24gdGhlIE9TIGFuZCBicm93c2VyLCBidXQgaXQgaXMgdHlwaWNhbGx5CisjIDxDVFJMPiwgPEFM
VD4vPG9wdGlvbj4sIG9yIGJvdGgpLiBJbnNpZGUgdGhlIHNlYXJjaCBib3ggdXNlIHRoZSA8Y3Vy
c29yIGRvd24KKyMga2V5PiB0byBqdW1wIGludG8gdGhlIHNlYXJjaCByZXN1bHRzIHdpbmRvdywg
dGhlIHJlc3VsdHMgY2FuIGJlIG5hdmlnYXRlZAorIyB1c2luZyB0aGUgPGN1cnNvciBrZXlzPi4g
UHJlc3MgPEVudGVyPiB0byBzZWxlY3QgYW4gaXRlbSBvciA8ZXNjYXBlPiB0byBjYW5jZWwKKyMg
dGhlIHNlYXJjaC4gVGhlIGZpbHRlciBvcHRpb25zIGNhbiBiZSBzZWxlY3RlZCB3aGVuIHRoZSBj
dXJzb3IgaXMgaW5zaWRlIHRoZQorIyBzZWFyY2ggYm94IGJ5IHByZXNzaW5nIDxTaGlmdD4rPGN1
cnNvciBkb3duPi4gQWxzbyBoZXJlIHVzZSB0aGUgPGN1cnNvciBrZXlzPgorIyB0byBzZWxlY3Qg
YSBmaWx0ZXIgYW5kIDxFbnRlcj4gb3IgPGVzY2FwZT4gdG8gYWN0aXZhdGUgb3IgY2FuY2VsIHRo
ZSBmaWx0ZXIKKyMgb3B0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgog
Ci1HRU5FUkFURV9UUkVFVklFVyAgICAgID0gTk8KK1NFQVJDSEVOR0lORSAgICAgICAgICAgPSBO
TwogCi0jIElmIHRoZSB0cmVldmlldyBpcyBlbmFibGVkIChzZWUgR0VORVJBVEVfVFJFRVZJRVcp
IHRoZW4gdGhpcyB0YWcgY2FuIGJlIAotIyB1c2VkIHRvIHNldCB0aGUgaW5pdGlhbCB3aWR0aCAo
aW4gcGl4ZWxzKSBvZiB0aGUgZnJhbWUgaW4gd2hpY2ggdGhlIHRyZWUgCi0jIGlzIHNob3duLgor
IyBXaGVuIHRoZSBTRVJWRVJfQkFTRURfU0VBUkNIIHRhZyBpcyBlbmFibGVkIHRoZSBzZWFyY2gg
ZW5naW5lIHdpbGwgYmUKKyMgaW1wbGVtZW50ZWQgdXNpbmcgYSB3ZWIgc2VydmVyIGluc3RlYWQg
b2YgYSB3ZWIgY2xpZW50IHVzaW5nIEphdmFTY3JpcHQuIFRoZXJlCisjIGFyZSB0d28gZmxhdm91
cnMgb2Ygd2ViIHNlcnZlciBiYXNlZCBzZWFyY2hpbmcgZGVwZW5kaW5nIG9uIHRoZQorIyBFWFRF
Uk5BTF9TRUFSQ0ggc2V0dGluZy4gV2hlbiBkaXNhYmxlZCwgZG94eWdlbiB3aWxsIGdlbmVyYXRl
IGEgUEhQIHNjcmlwdCBmb3IKKyMgc2VhcmNoaW5nIGFuZCBhbiBpbmRleCBmaWxlIHVzZWQgYnkg
dGhlIHNjcmlwdC4gV2hlbiBFWFRFUk5BTF9TRUFSQ0ggaXMKKyMgZW5hYmxlZCB0aGUgaW5kZXhp
bmcgYW5kIHNlYXJjaGluZyBuZWVkcyB0byBiZSBwcm92aWRlZCBieSBleHRlcm5hbCB0b29scy4g
U2VlCisjIHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBhbmQgU2VhcmNoaW5nIiBmb3Ig
ZGV0YWlscy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCisKK1NFUlZFUl9CQVNF
RF9TRUFSQ0ggICAgPSBOTworCisjIFdoZW4gRVhURVJOQUxfU0VBUkNIIHRhZyBpcyBlbmFibGVk
IGRveHlnZW4gd2lsbCBubyBsb25nZXIgZ2VuZXJhdGUgdGhlIFBIUAorIyBzY3JpcHQgZm9yIHNl
YXJjaGluZy4gSW5zdGVhZCB0aGUgc2VhcmNoIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYW4gWE1M
IGZpbGUKKyMgd2hpY2ggbmVlZHMgdG8gYmUgcHJvY2Vzc2VkIGJ5IGFuIGV4dGVybmFsIGluZGV4
ZXIuIERveHlnZW4gd2lsbCBpbnZva2UgYW4KKyMgZXh0ZXJuYWwgc2VhcmNoIGVuZ2luZSBwb2lu
dGVkIHRvIGJ5IHRoZSBTRUFSQ0hFTkdJTkVfVVJMIG9wdGlvbiB0byBvYnRhaW4gdGhlCisjIHNl
YXJjaCByZXN1bHRzLgorIworIyBEb3h5Z2VuIHNoaXBzIHdpdGggYW4gZXhhbXBsZSBpbmRleGVy
ICggZG94eWluZGV4ZXIpIGFuZCBzZWFyY2ggZW5naW5lCisjIChkb3h5c2VhcmNoLmNnaSkgd2hp
Y2ggYXJlIGJhc2VkIG9uIHRoZSBvcGVuIHNvdXJjZSBzZWFyY2ggZW5naW5lIGxpYnJhcnkKKyMg
WGFwaWFuIChzZWU6IGh0dHA6Ly94YXBpYW4ub3JnLykuCisjCisjIFNlZSB0aGUgc2VjdGlvbiAi
RXh0ZXJuYWwgSW5kZXhpbmcgYW5kIFNlYXJjaGluZyIgZm9yIGRldGFpbHMuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJD
SEVOR0lORSBpcyBzZXQgdG8gWUVTLgogCi1UUkVFVklFV19XSURUSCAgICAgICAgID0gMjUwCitF
WFRFUk5BTF9TRUFSQ0ggICAgICAgID0gTk8KIAotIyBVc2UgdGhpcyB0YWcgdG8gY2hhbmdlIHRo
ZSBmb250IHNpemUgb2YgTGF0ZXggZm9ybXVsYXMgaW5jbHVkZWQgCi0jIGFzIGltYWdlcyBpbiB0
aGUgSFRNTCBkb2N1bWVudGF0aW9uLiBUaGUgZGVmYXVsdCBpcyAxMC4gTm90ZSB0aGF0IAotIyB3
aGVuIHlvdSBjaGFuZ2UgdGhlIGZvbnQgc2l6ZSBhZnRlciBhIHN1Y2Nlc3NmdWwgZG94eWdlbiBy
dW4geW91IG5lZWQgCi0jIHRvIG1hbnVhbGx5IHJlbW92ZSBhbnkgZm9ybV8qLnBuZyBpbWFnZXMg
ZnJvbSB0aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5IAotIyB0byBmb3JjZSB0aGVtIHRvIGJlIHJl
Z2VuZXJhdGVkLgorIyBUaGUgU0VBUkNIRU5HSU5FX1VSTCBzaG91bGQgcG9pbnQgdG8gYSBzZWFy
Y2ggZW5naW5lIGhvc3RlZCBieSBhIHdlYiBzZXJ2ZXIKKyMgd2hpY2ggd2lsbCByZXR1cm4gdGhl
IHNlYXJjaCByZXN1bHRzIHdoZW4gRVhURVJOQUxfU0VBUkNIIGlzIGVuYWJsZWQuCisjCisjIERv
eHlnZW4gc2hpcHMgd2l0aCBhbiBleGFtcGxlIGluZGV4ZXIgKCBkb3h5aW5kZXhlcikgYW5kIHNl
YXJjaCBlbmdpbmUKKyMgKGRveHlzZWFyY2guY2dpKSB3aGljaCBhcmUgYmFzZWQgb24gdGhlIG9w
ZW4gc291cmNlIHNlYXJjaCBlbmdpbmUgbGlicmFyeQorIyBYYXBpYW4gKHNlZTogaHR0cDovL3hh
cGlhbi5vcmcvKS4gU2VlIHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBhbmQKKyMgU2Vh
cmNoaW5nIiBmb3IgZGV0YWlscy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNF
QVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgogCi1GT1JNVUxBX0ZPTlRTSVpFICAgICAgID0gMTAK
K1NFQVJDSEVOR0lORV9VUkwgICAgICAgPQorCisjIFdoZW4gU0VSVkVSX0JBU0VEX1NFQVJDSCBh
bmQgRVhURVJOQUxfU0VBUkNIIGFyZSBib3RoIGVuYWJsZWQgdGhlIHVuaW5kZXhlZAorIyBzZWFy
Y2ggZGF0YSBpcyB3cml0dGVuIHRvIGEgZmlsZSBmb3IgaW5kZXhpbmcgYnkgYW4gZXh0ZXJuYWwg
dG9vbC4gV2l0aCB0aGUKKyMgU0VBUkNIREFUQV9GSUxFIHRhZyB0aGUgbmFtZSBvZiB0aGlzIGZp
bGUgY2FuIGJlIHNwZWNpZmllZC4KKyMgVGhlIGRlZmF1bHQgZmlsZSBpczogc2VhcmNoZGF0YS54
bWwuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0
IHRvIFlFUy4KKworU0VBUkNIREFUQV9GSUxFICAgICAgICA9IHNlYXJjaGRhdGEueG1sCisKKyMg
V2hlbiBTRVJWRVJfQkFTRURfU0VBUkNIIGFuZCBFWFRFUk5BTF9TRUFSQ0ggYXJlIGJvdGggZW5h
YmxlZCB0aGUKKyMgRVhURVJOQUxfU0VBUkNIX0lEIHRhZyBjYW4gYmUgdXNlZCBhcyBhbiBpZGVu
dGlmaWVyIGZvciB0aGUgcHJvamVjdC4gVGhpcyBpcworIyB1c2VmdWwgaW4gY29tYmluYXRpb24g
d2l0aCBFWFRSQV9TRUFSQ0hfTUFQUElOR1MgdG8gc2VhcmNoIHRocm91Z2ggbXVsdGlwbGUKKyMg
cHJvamVjdHMgYW5kIHJlZGlyZWN0IHRoZSByZXN1bHRzIGJhY2sgdG8gdGhlIHJpZ2h0IHByb2pl
Y3QuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0
IHRvIFlFUy4KKworRVhURVJOQUxfU0VBUkNIX0lEICAgICA9CisKKyMgVGhlIEVYVFJBX1NFQVJD
SF9NQVBQSU5HUyB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIHNlYXJjaGluZyB0aHJvdWdoIGRv
eHlnZW4KKyMgcHJvamVjdHMgb3RoZXIgdGhhbiB0aGUgb25lIGRlZmluZWQgYnkgdGhpcyBjb25m
aWd1cmF0aW9uIGZpbGUsIGJ1dCB0aGF0IGFyZQorIyBhbGwgYWRkZWQgdG8gdGhlIHNhbWUgZXh0
ZXJuYWwgc2VhcmNoIGluZGV4LiBFYWNoIHByb2plY3QgbmVlZHMgdG8gaGF2ZSBhCisjIHVuaXF1
ZSBpZCBzZXQgdmlhIEVYVEVSTkFMX1NFQVJDSF9JRC4gVGhlIHNlYXJjaCBtYXBwaW5nIHRoZW4g
bWFwcyB0aGUgaWQgb2YKKyMgdG8gYSByZWxhdGl2ZSBsb2NhdGlvbiB3aGVyZSB0aGUgZG9jdW1l
bnRhdGlvbiBjYW4gYmUgZm91bmQuIFRoZSBmb3JtYXQgaXM6CisjIEVYVFJBX1NFQVJDSF9NQVBQ
SU5HUyA9IHRhZ25hbWUxPWxvYzEgdGFnbmFtZTI9bG9jMiAuLi4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgorCitFWFRSQV9TRUFS
Q0hfTUFQUElOR1MgID0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9w
dGlvbnMgcmVsYXRlZCB0byB0aGUgTGFUZVggb3V0cHV0CisjIENvbmZpZ3VyYXRpb24gb3B0aW9u
cyByZWxhdGVkIHRvIHRoZSBMYVRlWCBvdXRwdXQKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJ
ZiB0aGUgR0VORVJBVEVfTEFURVggdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSBEb3h5
Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIExhdGV4IG91dHB1dC4KKyMgSWYgdGhlIEdFTkVSQVRFX0xB
VEVYIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBMYVRlWCBvdXRwdXQu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEdFTkVSQVRFX0xBVEVYICAgICAgICAg
PSBOTwogCi0jIFRoZSBMQVRFWF9PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0
aGUgTGFUZVggZG9jcyB3aWxsIGJlIHB1dC4gCi0jIElmIGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRl
cmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgCi0jIHB1dCBpbiBmcm9u
dCBvZiBpdC4gSWYgbGVmdCBibGFuayBgbGF0ZXgnIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVs
dCBwYXRoLgorIyBUaGUgTEFURVhfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUg
dGhlIExhVGVYIGRvY3Mgd2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRl
cmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9m
CisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IGxhdGV4LgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogTEFU
RVhfT1VUUFVUICAgICAgICAgICA9IGxhdGV4CiAKLSMgVGhlIExBVEVYX0NNRF9OQU1FIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBMYVRlWCBjb21tYW5kIG5hbWUgdG8gYmUgCi0jIGlu
dm9rZWQuIElmIGxlZnQgYmxhbmsgYGxhdGV4JyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQg
Y29tbWFuZCBuYW1lLgorIyBUaGUgTEFURVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgdGhlIExhVGVYIGNvbW1hbmQgbmFtZSB0byBiZQorIyBpbnZva2VkLgorIworIyBOb3Rl
IHRoYXQgd2hlbiBlbmFibGluZyBVU0VfUERGTEFURVggdGhpcyBvcHRpb24gaXMgb25seSB1c2Vk
IGZvciBnZW5lcmF0aW5nCisjIGJpdG1hcHMgZm9yIGZvcm11bGFzIGluIHRoZSBIVE1MIG91dHB1
dCwgYnV0IG5vdCBpbiB0aGUgTWFrZWZpbGUgdGhhdCBpcworIyB3cml0dGVuIHRvIHRoZSBvdXRw
dXQgZGlyZWN0b3J5LgorIyBUaGUgZGVmYXVsdCBmaWxlIGlzOiBsYXRleC4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIExB
VEVYX0NNRF9OQU1FICAgICAgICAgPSBsYXRleAogCi0jIFRoZSBNQUtFSU5ERVhfQ01EX05BTUUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNvbW1hbmQgbmFtZSB0byAKLSMgZ2VuZXJh
dGUgaW5kZXggZm9yIExhVGVYLiBJZiBsZWZ0IGJsYW5rIGBtYWtlaW5kZXgnIHdpbGwgYmUgdXNl
ZCBhcyB0aGUgCi0jIGRlZmF1bHQgY29tbWFuZCBuYW1lLgorIyBUaGUgTUFLRUlOREVYX0NNRF9O
QU1FIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjb21tYW5kIG5hbWUgdG8gZ2VuZXJh
dGUKKyMgaW5kZXggZm9yIExhVGVYLgorIyBUaGUgZGVmYXVsdCBmaWxlIGlzOiBtYWtlaW5kZXgu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQg
dG8gWUVTLgogCiBNQUtFSU5ERVhfQ01EX05BTUUgICAgID0gbWFrZWluZGV4CiAKLSMgSWYgdGhl
IENPTVBBQ1RfTEFURVggdGFnIGlzIHNldCB0byBZRVMgRG94eWdlbiBnZW5lcmF0ZXMgbW9yZSBj
b21wYWN0IAotIyBMYVRlWCBkb2N1bWVudHMuIFRoaXMgbWF5IGJlIHVzZWZ1bCBmb3Igc21hbGwg
cHJvamVjdHMgYW5kIG1heSBoZWxwIHRvIAotIyBzYXZlIHNvbWUgdHJlZXMgaW4gZ2VuZXJhbC4K
KyMgSWYgdGhlIENPTVBBQ1RfTEFURVggdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiBnZW5lcmF0
ZXMgbW9yZSBjb21wYWN0IExhVGVYCisjIGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVsIGZv
ciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gc2F2ZSBzb21lCisjIHRyZWVzIGluIGdl
bmVyYWwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIENPTVBBQ1RfTEFU
RVggICAgICAgICAgPSBOTwogCi0jIFRoZSBQQVBFUl9UWVBFIHRhZyBjYW4gYmUgdXNlZCB0byBz
ZXQgdGhlIHBhcGVyIHR5cGUgdGhhdCBpcyB1c2VkIAotIyBieSB0aGUgcHJpbnRlci4gUG9zc2li
bGUgdmFsdWVzIGFyZTogYTQsIGE0d2lkZSwgbGV0dGVyLCBsZWdhbCBhbmQgCi0jIGV4ZWN1dGl2
ZS4gSWYgbGVmdCBibGFuayBhNHdpZGUgd2lsbCBiZSB1c2VkLgorIyBUaGUgUEFQRVJfVFlQRSB0
YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBwYXBlciB0eXBlIHRoYXQgaXMgdXNlZCBieSB0aGUK
KyMgcHJpbnRlci4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTogYTQgKDIxMCB4IDI5NyBtbSksIGxl
dHRlciAoOC41IHggMTEgaW5jaGVzKSwgbGVnYWwgKDguNSB4CisjIDE0IGluY2hlcykgYW5kIGV4
ZWN1dGl2ZSAoNy4yNSB4IDEwLjUgaW5jaGVzKS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IGE0
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0
IHRvIFlFUy4KIAogUEFQRVJfVFlQRSAgICAgICAgICAgICA9IGE0d2lkZQogCi0jIFRoZSBFWFRS
QV9QQUNLQUdFUyB0YWcgY2FuIGJlIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgbmFtZXMgb2YgTGFU
ZVggCi0jIHBhY2thZ2VzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBMYVRlWCBvdXRw
dXQuCisjIFRoZSBFWFRSQV9QQUNLQUdFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUg
b3IgbW9yZSBMYVRlWCBwYWNrYWdlIG5hbWVzCisjIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGlu
IHRoZSBMYVRlWCBvdXRwdXQuIFRvIGdldCB0aGUgdGltZXMgZm9udCBmb3IKKyMgaW5zdGFuY2Ug
eW91IGNhbiBzcGVjaWZ5CisjIEVYVFJBX1BBQ0tBR0VTPXRpbWVzCisjIElmIGxlZnQgYmxhbmsg
bm8gZXh0cmEgcGFja2FnZXMgd2lsbCBiZSBpbmNsdWRlZC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0VYVFJBX1BBQ0tB
R0VTICAgICAgICAgPQorCisjIFRoZSBMQVRFWF9IRUFERVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgYSBwZXJzb25hbCBMYVRlWCBoZWFkZXIgZm9yIHRoZQorIyBnZW5lcmF0ZWQgTGFUZVgg
ZG9jdW1lbnQuIFRoZSBoZWFkZXIgc2hvdWxkIGNvbnRhaW4gZXZlcnl0aGluZyB1bnRpbCB0aGUg
Zmlyc3QKKyMgY2hhcHRlci4gSWYgaXQgaXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJh
dGUgYSBzdGFuZGFyZCBoZWFkZXIuIFNlZQorIyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIiBmb3Ig
aW5mb3JtYXRpb24gb24gaG93IHRvIGxldCBkb3h5Z2VuIHdyaXRlIHRoZQorIyBkZWZhdWx0IGhl
YWRlciB0byBhIHNlcGFyYXRlIGZpbGUuCisjCisjIE5vdGU6IE9ubHkgdXNlIGEgdXNlci1kZWZp
bmVkIGhlYWRlciBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchIFRoZQorIyBmb2xsb3dp
bmcgY29tbWFuZHMgaGF2ZSBhIHNwZWNpYWwgbWVhbmluZyBpbnNpZGUgdGhlIGhlYWRlcjogJHRp
dGxlLAorIyAkZGF0ZXRpbWUsICRkYXRlLCAkZG94eWdlbnZlcnNpb24sICRwcm9qZWN0bmFtZSwg
JHByb2plY3RudW1iZXIuIERveHlnZW4gd2lsbAorIyByZXBsYWNlIHRoZW0gYnkgcmVzcGVjdGl2
ZWx5IHRoZSB0aXRsZSBvZiB0aGUgcGFnZSwgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSwKKyMg
b25seSB0aGUgY3VycmVudCBkYXRlLCB0aGUgdmVyc2lvbiBudW1iZXIgb2YgZG94eWdlbiwgdGhl
IHByb2plY3QgbmFtZSAoc2VlCisjIFBST0pFQ1RfTkFNRSksIG9yIHRoZSBwcm9qZWN0IG51bWJl
ciAoc2VlIFBST0pFQ1RfTlVNQkVSKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX0hFQURFUiAgICAgICAgICAg
PQorCisjIFRoZSBMQVRFWF9GT09URVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwZXJz
b25hbCBMYVRlWCBmb290ZXIgZm9yIHRoZQorIyBnZW5lcmF0ZWQgTGFUZVggZG9jdW1lbnQuIFRo
ZSBmb290ZXIgc2hvdWxkIGNvbnRhaW4gZXZlcnl0aGluZyBhZnRlciB0aGUgbGFzdAorIyBjaGFw
dGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYXJk
IGZvb3Rlci4KKyMKKyMgTm90ZTogT25seSB1c2UgYSB1c2VyLWRlZmluZWQgZm9vdGVyIGlmIHlv
dSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyEKKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKLUVYVFJBX1BBQ0tBR0VTICAgICAg
ICAgPSAKK0xBVEVYX0ZPT1RFUiAgICAgICAgICAgPQogCi0jIFRoZSBMQVRFWF9IRUFERVIgdGFn
IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwZXJzb25hbCBMYVRlWCBoZWFkZXIgZm9yIAotIyB0
aGUgZ2VuZXJhdGVkIGxhdGV4IGRvY3VtZW50LiBUaGUgaGVhZGVyIHNob3VsZCBjb250YWluIGV2
ZXJ5dGhpbmcgdW50aWwgCi0jIHRoZSBmaXJzdCBjaGFwdGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5r
IGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIAotIyBzdGFuZGFyZCBoZWFkZXIuIE5vdGljZTogb25s
eSB1c2UgdGhpcyB0YWcgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIQorIyBUaGUgTEFU
RVhfRVhUUkFfRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZXh0
cmEgaW1hZ2VzIG9yCisjIG90aGVyIHNvdXJjZSBmaWxlcyB3aGljaCBzaG91bGQgYmUgY29waWVk
IHRvIHRoZSBMQVRFWF9PVVRQVVQgb3V0cHV0CisjIGRpcmVjdG9yeS4gTm90ZSB0aGF0IHRoZSBm
aWxlcyB3aWxsIGJlIGNvcGllZCBhcy1pczsgdGhlcmUgYXJlIG5vIGNvbW1hbmRzIG9yCisjIG1h
cmtlcnMgYXZhaWxhYmxlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAotTEFURVhfSEVBREVSICAgICAgICAgICA9IAorTEFU
RVhfRVhUUkFfRklMRVMgICAgICA9CiAKLSMgSWYgdGhlIFBERl9IWVBFUkxJTktTIHRhZyBpcyBz
ZXQgdG8gWUVTLCB0aGUgTGFUZVggdGhhdCBpcyBnZW5lcmF0ZWQgCi0jIGlzIHByZXBhcmVkIGZv
ciBjb252ZXJzaW9uIHRvIHBkZiAodXNpbmcgcHMycGRmKS4gVGhlIHBkZiBmaWxlIHdpbGwgCi0j
IGNvbnRhaW4gbGlua3MgKGp1c3QgbGlrZSB0aGUgSFRNTCBvdXRwdXQpIGluc3RlYWQgb2YgcGFn
ZSByZWZlcmVuY2VzIAotIyBUaGlzIG1ha2VzIHRoZSBvdXRwdXQgc3VpdGFibGUgZm9yIG9ubGlu
ZSBicm93c2luZyB1c2luZyBhIHBkZiB2aWV3ZXIuCisjIElmIHRoZSBQREZfSFlQRVJMSU5LUyB0
YWcgaXMgc2V0IHRvIFlFUywgdGhlIExhVGVYIHRoYXQgaXMgZ2VuZXJhdGVkIGlzCisjIHByZXBh
cmVkIGZvciBjb252ZXJzaW9uIHRvIFBERiAodXNpbmcgcHMycGRmIG9yIHBkZmxhdGV4KS4gVGhl
IFBERiBmaWxlIHdpbGwKKyMgY29udGFpbiBsaW5rcyAoanVzdCBsaWtlIHRoZSBIVE1MIG91dHB1
dCkgaW5zdGVhZCBvZiBwYWdlIHJlZmVyZW5jZXMuIFRoaXMKKyMgbWFrZXMgdGhlIG91dHB1dCBz
dWl0YWJsZSBmb3Igb25saW5lIGJyb3dzaW5nIHVzaW5nIGEgUERGIHZpZXdlci4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIFBERl9IWVBFUkxJTktTICAgICAgICAgPSBO
TwogCi0jIElmIHRoZSBVU0VfUERGTEFURVggdGFnIGlzIHNldCB0byBZRVMsIHBkZmxhdGV4IHdp
bGwgYmUgdXNlZCBpbnN0ZWFkIG9mIAotIyBwbGFpbiBsYXRleCBpbiB0aGUgZ2VuZXJhdGVkIE1h
a2VmaWxlLiBTZXQgdGhpcyBvcHRpb24gdG8gWUVTIHRvIGdldCBhIAorIyBJZiB0aGUgTEFURVhf
UERGTEFURVggdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCB1c2UgcGRmbGF0ZXggdG8g
Z2VuZXJhdGUKKyMgdGhlIFBERiBmaWxlIGRpcmVjdGx5IGZyb20gdGhlIExhVGVYIGZpbGVzLiBT
ZXQgdGhpcyBvcHRpb24gdG8gWUVTIHRvIGdldCBhCiAjIGhpZ2hlciBxdWFsaXR5IFBERiBkb2N1
bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogVVNFX1BE
RkxBVEVYICAgICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIExBVEVYX0JBVENITU9ERSB0YWcgaXMg
c2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGFkZCB0aGUgXFxiYXRjaG1vZGUuIAotIyBjb21tYW5k
IHRvIHRoZSBnZW5lcmF0ZWQgTGFUZVggZmlsZXMuIFRoaXMgd2lsbCBpbnN0cnVjdCBMYVRlWCB0
byBrZWVwIAotIyBydW5uaW5nIGlmIGVycm9ycyBvY2N1ciwgaW5zdGVhZCBvZiBhc2tpbmcgdGhl
IHVzZXIgZm9yIGhlbHAuIAotIyBUaGlzIG9wdGlvbiBpcyBhbHNvIHVzZWQgd2hlbiBnZW5lcmF0
aW5nIGZvcm11bGFzIGluIEhUTUwuCisjIElmIHRoZSBMQVRFWF9CQVRDSE1PREUgdGFnIGlzIHNl
dCB0byBZRVMsIGRveHlnZW4gd2lsbCBhZGQgdGhlIFxiYXRjaG1vZGUKKyMgY29tbWFuZCB0byB0
aGUgZ2VuZXJhdGVkIExhVGVYIGZpbGVzLiBUaGlzIHdpbGwgaW5zdHJ1Y3QgTGFUZVggdG8ga2Vl
cCBydW5uaW5nCisjIGlmIGVycm9ycyBvY2N1ciwgaW5zdGVhZCBvZiBhc2tpbmcgdGhlIHVzZXIg
Zm9yIGhlbHAuIFRoaXMgb3B0aW9uIGlzIGFsc28gdXNlZAorIyB3aGVuIGdlbmVyYXRpbmcgZm9y
bXVsYXMgaW4gSFRNTC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogTEFU
RVhfQkFUQ0hNT0RFICAgICAgICA9IE5PCiAKLSMgSWYgTEFURVhfSElERV9JTkRJQ0VTIGlzIHNl
dCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgbm90IAotIyBpbmNsdWRlIHRoZSBpbmRleCBjaGFw
dGVycyAoc3VjaCBhcyBGaWxlIEluZGV4LCBDb21wb3VuZCBJbmRleCwgZXRjLikgCi0jIGluIHRo
ZSBvdXRwdXQuCisjIElmIHRoZSBMQVRFWF9ISURFX0lORElDRVMgdGFnIGlzIHNldCB0byBZRVMg
dGhlbiBkb3h5Z2VuIHdpbGwgbm90IGluY2x1ZGUgdGhlCisjIGluZGV4IGNoYXB0ZXJzIChzdWNo
IGFzIEZpbGUgSW5kZXgsIENvbXBvdW5kIEluZGV4LCBldGMuKSBpbiB0aGUgb3V0cHV0LgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCiBMQVRFWF9ISURFX0lORElDRVMgICAg
ID0gTk8KIAotIyBJZiBMQVRFWF9TT1VSQ0VfQ09ERSBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdl
biB3aWxsIGluY2x1ZGUgc291cmNlIGNvZGUgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIGluIHRo
ZSBMYVRlWCBvdXRwdXQuIE5vdGUgdGhhdCB3aGljaCBzb3VyY2VzIGFyZSBzaG93biBhbHNvIGRl
cGVuZHMgb24gb3RoZXIgc2V0dGluZ3Mgc3VjaCBhcyBTT1VSQ0VfQlJPV1NFUi4KKyMgSWYgdGhl
IExBVEVYX1NPVVJDRV9DT0RFIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGlu
Y2x1ZGUgc291cmNlCisjIGNvZGUgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIGluIHRoZSBMYVRl
WCBvdXRwdXQuCisjCisjIE5vdGUgdGhhdCB3aGljaCBzb3VyY2VzIGFyZSBzaG93biBhbHNvIGRl
cGVuZHMgb24gb3RoZXIgc2V0dGluZ3Mgc3VjaCBhcworIyBTT1VSQ0VfQlJPV1NFUi4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
R0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogTEFURVhfU09VUkNFX0NPREUgICAgICA9
IE5PCiAKKyMgVGhlIExBVEVYX0JJQl9TVFlMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0
aGUgc3R5bGUgdG8gdXNlIGZvciB0aGUKKyMgYmlibGlvZ3JhcGh5LCBlLmcuIHBsYWlubmF0LCBv
ciBpZWVldHIuIFNlZQorIyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JpYlRlWCBhbmQg
XGNpdGUgZm9yIG1vcmUgaW5mby4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IHBsYWluLgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlF
Uy4KKworTEFURVhfQklCX1NUWUxFICAgICAgICA9IHBsYWluCisKICMtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIFJURiBvdXRwdXQKKyMg
Q29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIFJURiBvdXRwdXQKICMtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgR0VORVJBVEVfUlRGIHRhZyBpcyBzZXQgdG8gWUVTIERv
eHlnZW4gd2lsbCBnZW5lcmF0ZSBSVEYgb3V0cHV0IAotIyBUaGUgUlRGIG91dHB1dCBpcyBvcHRp
bWl6ZWQgZm9yIFdvcmQgOTcgYW5kIG1heSBub3QgbG9vayB2ZXJ5IHByZXR0eSB3aXRoIAotIyBv
dGhlciBSVEYgcmVhZGVycyBvciBlZGl0b3JzLgorIyBJZiB0aGUgR0VORVJBVEVfUlRGIHRhZyBp
cyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBSVEYgb3V0cHV0LiBUaGUKKyMgUlRG
IG91dHB1dCBpcyBvcHRpbWl6ZWQgZm9yIFdvcmQgOTcgYW5kIG1heSBub3QgbG9vayB0b28gcHJl
dHR5IHdpdGggb3RoZXIgUlRGCisjIHJlYWRlcnMvZWRpdG9ycy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgogCiBHRU5FUkFURV9SVEYgICAgICAgICAgID0gTk8KIAotIyBUaGUgUlRGX09V
VFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBSVEYgZG9jcyB3aWxsIGJlIHB1
dC4gCi0jIElmIGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRf
RElSRUNUT1JZIHdpbGwgYmUgCi0jIHB1dCBpbiBmcm9udCBvZiBpdC4gSWYgbGVmdCBibGFuayBg
cnRmJyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgcGF0aC4KKyMgVGhlIFJURl9PVVRQVVQg
dGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgUlRGIGRvY3Mgd2lsbCBiZSBwdXQuIElm
IGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNU
T1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3Rv
cnkgaXM6IHJ0Zi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JU
RiBpcyBzZXQgdG8gWUVTLgogCiBSVEZfT1VUUFVUICAgICAgICAgICAgID0gcnRmCiAKLSMgSWYg
dGhlIENPTVBBQ1RfUlRGIHRhZyBpcyBzZXQgdG8gWUVTIERveHlnZW4gZ2VuZXJhdGVzIG1vcmUg
Y29tcGFjdCAKLSMgUlRGIGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBzbWFsbCBw
cm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gCi0jIHNhdmUgc29tZSB0cmVlcyBpbiBnZW5lcmFsLgor
IyBJZiB0aGUgQ09NUEFDVF9SVEYgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiBnZW5lcmF0ZXMg
bW9yZSBjb21wYWN0IFJURgorIyBkb2N1bWVudHMuIFRoaXMgbWF5IGJlIHVzZWZ1bCBmb3Igc21h
bGwgcHJvamVjdHMgYW5kIG1heSBoZWxwIHRvIHNhdmUgc29tZQorIyB0cmVlcyBpbiBnZW5lcmFs
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KIAogQ09NUEFDVF9SVEYgICAgICAg
ICAgICA9IE5PCiAKLSMgSWYgdGhlIFJURl9IWVBFUkxJTktTIHRhZyBpcyBzZXQgdG8gWUVTLCB0
aGUgUlRGIHRoYXQgaXMgZ2VuZXJhdGVkIAotIyB3aWxsIGNvbnRhaW4gaHlwZXJsaW5rIGZpZWxk
cy4gVGhlIFJURiBmaWxlIHdpbGwgCi0jIGNvbnRhaW4gbGlua3MgKGp1c3QgbGlrZSB0aGUgSFRN
TCBvdXRwdXQpIGluc3RlYWQgb2YgcGFnZSByZWZlcmVuY2VzLiAKLSMgVGhpcyBtYWtlcyB0aGUg
b3V0cHV0IHN1aXRhYmxlIGZvciBvbmxpbmUgYnJvd3NpbmcgdXNpbmcgV09SRCBvciBvdGhlciAK
LSMgcHJvZ3JhbXMgd2hpY2ggc3VwcG9ydCB0aG9zZSBmaWVsZHMuIAotIyBOb3RlOiB3b3JkcGFk
ICh3cml0ZSkgYW5kIG90aGVycyBkbyBub3Qgc3VwcG9ydCBsaW5rcy4KKyMgSWYgdGhlIFJURl9I
WVBFUkxJTktTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgUlRGIHRoYXQgaXMgZ2VuZXJhdGVkIHdp
bGwKKyMgY29udGFpbiBoeXBlcmxpbmsgZmllbGRzLiBUaGUgUlRGIGZpbGUgd2lsbCBjb250YWlu
IGxpbmtzIChqdXN0IGxpa2UgdGhlIEhUTUwKKyMgb3V0cHV0KSBpbnN0ZWFkIG9mIHBhZ2UgcmVm
ZXJlbmNlcy4gVGhpcyBtYWtlcyB0aGUgb3V0cHV0IHN1aXRhYmxlIGZvciBvbmxpbmUKKyMgYnJv
d3NpbmcgdXNpbmcgV29yZCBvciBzb21lIG90aGVyIFdvcmQgY29tcGF0aWJsZSByZWFkZXJzIHRo
YXQgc3VwcG9ydCB0aG9zZQorIyBmaWVsZHMuCisjCisjIE5vdGU6IFdvcmRQYWQgKHdyaXRlKSBh
bmQgb3RoZXJzIGRvIG5vdCBzdXBwb3J0IGxpbmtzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0
IHRvIFlFUy4KIAogUlRGX0hZUEVSTElOS1MgICAgICAgICA9IE5PCiAKLSMgTG9hZCBzdHlsZXNo
ZWV0IGRlZmluaXRpb25zIGZyb20gZmlsZS4gU3ludGF4IGlzIHNpbWlsYXIgdG8gZG94eWdlbidz
IAotIyBjb25maWcgZmlsZSwgaS5lLiBhIHNlcmllcyBvZiBhc3NpZ25tZW50cy4gWW91IG9ubHkg
aGF2ZSB0byBwcm92aWRlIAotIyByZXBsYWNlbWVudHMsIG1pc3NpbmcgZGVmaW5pdGlvbnMgYXJl
IHNldCB0byB0aGVpciBkZWZhdWx0IHZhbHVlLgorIyBMb2FkIHN0eWxlc2hlZXQgZGVmaW5pdGlv
bnMgZnJvbSBmaWxlLiBTeW50YXggaXMgc2ltaWxhciB0byBkb3h5Z2VuJ3MgY29uZmlnCisjIGZp
bGUsIGkuZS4gYSBzZXJpZXMgb2YgYXNzaWdubWVudHMuIFlvdSBvbmx5IGhhdmUgdG8gcHJvdmlk
ZSByZXBsYWNlbWVudHMsCisjIG1pc3NpbmcgZGVmaW5pdGlvbnMgYXJlIHNldCB0byB0aGVpciBk
ZWZhdWx0IHZhbHVlLgorIworIyBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIiBmb3Ig
aW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZQorIyBkZWZhdWx0IHN0eWxlIHNoZWV0
IHRoYXQgZG94eWdlbiBub3JtYWxseSB1c2VzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCiAKLVJURl9TVFlMRVNIRUVUX0ZJTEUg
ICAgPSAKK1JURl9TVFlMRVNIRUVUX0ZJTEUgICAgPQogCi0jIFNldCBvcHRpb25hbCB2YXJpYWJs
ZXMgdXNlZCBpbiB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBydGYgZG9jdW1lbnQuIAotIyBTeW50YXgg
aXMgc2ltaWxhciB0byBkb3h5Z2VuJ3MgY29uZmlnIGZpbGUuCisjIFNldCBvcHRpb25hbCB2YXJp
YWJsZXMgdXNlZCBpbiB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBSVEYgZG9jdW1lbnQuIFN5bnRheCBp
cworIyBzaW1pbGFyIHRvIGRveHlnZW4ncyBjb25maWcgZmlsZS4gQSB0ZW1wbGF0ZSBleHRlbnNp
b25zIGZpbGUgY2FuIGJlIGdlbmVyYXRlZAorIyB1c2luZyBkb3h5Z2VuIC1lIHJ0ZiBleHRlbnNp
b25GaWxlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlz
IHNldCB0byBZRVMuCiAKLVJURl9FWFRFTlNJT05TX0ZJTEUgICAgPSAKK1JURl9FWFRFTlNJT05T
X0ZJTEUgICAgPQogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNvbmZpZ3VyYXRpb24gb3B0aW9u
cyByZWxhdGVkIHRvIHRoZSBtYW4gcGFnZSBvdXRwdXQKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25z
IHJlbGF0ZWQgdG8gdGhlIG1hbiBwYWdlIG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0j
IElmIHRoZSBHRU5FUkFURV9NQU4gdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSBEb3h5
Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIG1hbiBwYWdlcworIyBJZiB0aGUgR0VORVJBVEVfTUFOIHRh
ZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBtYW4gcGFnZXMgZm9yCisjIGNs
YXNzZXMgYW5kIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEdFTkVSQVRF
X01BTiAgICAgICAgICAgPSBOTwogCi0jIFRoZSBNQU5fT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNw
ZWNpZnkgd2hlcmUgdGhlIG1hbiBwYWdlcyB3aWxsIGJlIHB1dC4gCi0jIElmIGEgcmVsYXRpdmUg
cGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgCi0j
IHB1dCBpbiBmcm9udCBvZiBpdC4gSWYgbGVmdCBibGFuayBgbWFuJyB3aWxsIGJlIHVzZWQgYXMg
dGhlIGRlZmF1bHQgcGF0aC4KKyMgVGhlIE1BTl9PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lm
eSB3aGVyZSB0aGUgbWFuIHBhZ2VzIHdpbGwgYmUgcHV0LiBJZiBhCisjIHJlbGF0aXZlIHBhdGgg
aXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBpbiBm
cm9udCBvZgorIyBpdC4gQSBkaXJlY3RvcnkgbWFuMyB3aWxsIGJlIGNyZWF0ZWQgaW5zaWRlIHRo
ZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5CisjIE1BTl9PVVRQVVQuCisjIFRoZSBkZWZhdWx0IGRp
cmVjdG9yeSBpczogbWFuLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfTUFOIGlzIHNldCB0byBZRVMuCiAKIE1BTl9PVVRQVVQgICAgICAgICAgICAgPSBtYW4KIAot
IyBUaGUgTUFOX0VYVEVOU0lPTiB0YWcgZGV0ZXJtaW5lcyB0aGUgZXh0ZW5zaW9uIHRoYXQgaXMg
YWRkZWQgdG8gCi0jIHRoZSBnZW5lcmF0ZWQgbWFuIHBhZ2VzIChkZWZhdWx0IGlzIHRoZSBzdWJy
b3V0aW5lJ3Mgc2VjdGlvbiAuMykKKyMgVGhlIE1BTl9FWFRFTlNJT04gdGFnIGRldGVybWluZXMg
dGhlIGV4dGVuc2lvbiB0aGF0IGlzIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQKKyMgbWFuIHBhZ2Vz
LiBJbiBjYXNlIHRoZSBtYW51YWwgc2VjdGlvbiBkb2VzIG5vdCBzdGFydCB3aXRoIGEgbnVtYmVy
LCB0aGUgbnVtYmVyCisjIDMgaXMgcHJlcGVuZGVkLiBUaGUgZG90ICguKSBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBNQU5fRVhURU5TSU9OIHRhZyBpcworIyBvcHRpb25hbC4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IC4zLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJB
VEVfTUFOIGlzIHNldCB0byBZRVMuCiAKIE1BTl9FWFRFTlNJT04gICAgICAgICAgPSAuMwogCi0j
IElmIHRoZSBNQU5fTElOS1MgdGFnIGlzIHNldCB0byBZRVMgYW5kIERveHlnZW4gZ2VuZXJhdGVz
IG1hbiBvdXRwdXQsIAotIyB0aGVuIGl0IHdpbGwgZ2VuZXJhdGUgb25lIGFkZGl0aW9uYWwgbWFu
IGZpbGUgZm9yIGVhY2ggZW50aXR5IAotIyBkb2N1bWVudGVkIGluIHRoZSByZWFsIG1hbiBwYWdl
KHMpLiBUaGVzZSBhZGRpdGlvbmFsIGZpbGVzIAotIyBvbmx5IHNvdXJjZSB0aGUgcmVhbCBtYW4g
cGFnZSwgYnV0IHdpdGhvdXQgdGhlbSB0aGUgbWFuIGNvbW1hbmQgCi0jIHdvdWxkIGJlIHVuYWJs
ZSB0byBmaW5kIHRoZSBjb3JyZWN0IHBhZ2UuIFRoZSBkZWZhdWx0IGlzIE5PLgorIyBJZiB0aGUg
TUFOX0xJTktTIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBkb3h5Z2VuIGdlbmVyYXRlcyBtYW4gb3V0
cHV0LCB0aGVuIGl0CisjIHdpbGwgZ2VuZXJhdGUgb25lIGFkZGl0aW9uYWwgbWFuIGZpbGUgZm9y
IGVhY2ggZW50aXR5IGRvY3VtZW50ZWQgaW4gdGhlIHJlYWwKKyMgbWFuIHBhZ2UocykuIFRoZXNl
IGFkZGl0aW9uYWwgZmlsZXMgb25seSBzb3VyY2UgdGhlIHJlYWwgbWFuIHBhZ2UsIGJ1dCB3aXRo
b3V0CisjIHRoZW0gdGhlIG1hbiBjb21tYW5kIHdvdWxkIGJlIHVuYWJsZSB0byBmaW5kIHRoZSBj
b3JyZWN0IHBhZ2UuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX01BTiBpcyBzZXQgdG8gWUVTLgogCiBNQU5fTElO
S1MgICAgICAgICAgICAgID0gTk8KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBjb25maWd1cmF0
aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgWE1MIG91dHB1dAorIyBDb25maWd1cmF0aW9uIG9w
dGlvbnMgcmVsYXRlZCB0byB0aGUgWE1MIG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0j
IElmIHRoZSBHRU5FUkFURV9YTUwgdGFnIGlzIHNldCB0byBZRVMgRG94eWdlbiB3aWxsIAotIyBn
ZW5lcmF0ZSBhbiBYTUwgZmlsZSB0aGF0IGNhcHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YgCi0jIHRo
ZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4KKyMgSWYgdGhlIEdFTkVSQVRFX1hN
TCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYW4gWE1MIGZpbGUgdGhh
dAorIyBjYXB0dXJlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9j
dW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBHRU5FUkFURV9YTUwg
ICAgICAgICAgID0gTk8KIAotIyBUaGUgWE1MX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5
IHdoZXJlIHRoZSBYTUwgcGFnZXMgd2lsbCBiZSBwdXQuIAotIyBJZiBhIHJlbGF0aXZlIHBhdGgg
aXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIAotIyBwdXQg
aW4gZnJvbnQgb2YgaXQuIElmIGxlZnQgYmxhbmsgYHhtbCcgd2lsbCBiZSB1c2VkIGFzIHRoZSBk
ZWZhdWx0IHBhdGguCisjIFRoZSBYTUxfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hl
cmUgdGhlIFhNTCBwYWdlcyB3aWxsIGJlIHB1dC4gSWYgYQorIyByZWxhdGl2ZSBwYXRoIGlzIGVu
dGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4gZnJvbnQg
b2YKKyMgaXQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogeG1sLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNldCB0byBZRVMuCiAKIFhNTF9P
VVRQVVQgICAgICAgICAgICAgPSB4bWwKIAotIyBUaGUgWE1MX1NDSEVNQSB0YWcgY2FuIGJlIHVz
ZWQgdG8gc3BlY2lmeSBhbiBYTUwgc2NoZW1hLCAKLSMgd2hpY2ggY2FuIGJlIHVzZWQgYnkgYSB2
YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gY2hlY2sgdGhlIAotIyBzeW50YXggb2YgdGhlIFhNTCBm
aWxlcy4KKyMgVGhlIFhNTF9TQ0hFTUEgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBYTUwg
c2NoZW1hLCB3aGljaCBjYW4gYmUgdXNlZCBieSBhCisjIHZhbGlkYXRpbmcgWE1MIHBhcnNlciB0
byBjaGVjayB0aGUgc3ludGF4IG9mIHRoZSBYTUwgZmlsZXMuCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4KIAotWE1MX1NDSEVNQSAg
ICAgICAgICAgICA9IAorWE1MX1NDSEVNQSAgICAgICAgICAgICA9CiAKLSMgVGhlIFhNTF9EVEQg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gWE1MIERURCwgCi0jIHdoaWNoIGNhbiBiZSB1
c2VkIGJ5IGEgdmFsaWRhdGluZyBYTUwgcGFyc2VyIHRvIGNoZWNrIHRoZSAKLSMgc3ludGF4IG9m
IHRoZSBYTUwgZmlsZXMuCisjIFRoZSBYTUxfRFREIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5
IGEgWE1MIERURCwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgYQorIyB2YWxpZGF0aW5nIFhNTCBwYXJz
ZXIgdG8gY2hlY2sgdGhlIHN5bnRheCBvZiB0aGUgWE1MIGZpbGVzLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNldCB0byBZRVMuCiAKLVhNTF9EVEQg
ICAgICAgICAgICAgICAgPSAKK1hNTF9EVEQgICAgICAgICAgICAgICAgPQogCi0jIElmIHRoZSBY
TUxfUFJPR1JBTUxJU1RJTkcgdGFnIGlzIHNldCB0byBZRVMgRG94eWdlbiB3aWxsIAotIyBkdW1w
IHRoZSBwcm9ncmFtIGxpc3RpbmdzIChpbmNsdWRpbmcgc3ludGF4IGhpZ2hsaWdodGluZyAKLSMg
YW5kIGNyb3NzLXJlZmVyZW5jaW5nIGluZm9ybWF0aW9uKSB0byB0aGUgWE1MIG91dHB1dC4gTm90
ZSB0aGF0IAotIyBlbmFibGluZyB0aGlzIHdpbGwgc2lnbmlmaWNhbnRseSBpbmNyZWFzZSB0aGUg
c2l6ZSBvZiB0aGUgWE1MIG91dHB1dC4KKyMgSWYgdGhlIFhNTF9QUk9HUkFNTElTVElORyB0YWcg
aXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZHVtcCB0aGUgcHJvZ3JhbQorIyBsaXN0aW5ncyAo
aW5jbHVkaW5nIHN5bnRheCBoaWdobGlnaHRpbmcgYW5kIGNyb3NzLXJlZmVyZW5jaW5nIGluZm9y
bWF0aW9uKSB0bworIyB0aGUgWE1MIG91dHB1dC4gTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgd2ls
bCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRoZSBzaXplCisjIG9mIHRoZSBYTUwgb3V0cHV0Lgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNldCB0byBZRVMuCiAKIFhNTF9QUk9HUkFNTElTVElORyAg
ICAgPSBZRVMKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBjb25maWd1cmF0aW9uIG9wdGlvbnMg
Zm9yIHRoZSBBdXRvR2VuIERlZmluaXRpb25zIG91dHB1dAorIyBDb25maWd1cmF0aW9uIG9wdGlv
bnMgcmVsYXRlZCB0byB0aGUgRE9DQk9PSyBvdXRwdXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
IyBJZiB0aGUgR0VORVJBVEVfRE9DQk9PSyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwg
Z2VuZXJhdGUgRG9jYm9vayBmaWxlcworIyB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIFBE
Ri4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitHRU5FUkFURV9ET0NCT09LICAgICAg
ID0gTk8KKworIyBUaGUgRE9DQk9PS19PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVy
ZSB0aGUgRG9jYm9vayBwYWdlcyB3aWxsIGJlIHB1dC4KKyMgSWYgYSByZWxhdGl2ZSBwYXRoIGlz
IGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4KKyMg
ZnJvbnQgb2YgaXQuCisjIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogZG9jYm9vay4KKyMgVGhp
cyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ0JPT0sgaXMgc2V0IHRvIFlF
Uy4KKworRE9DQk9PS19PVVRQVVQgICAgICAgICA9IGRvY2Jvb2sKKworIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBBdXRvR2VuIERlZmluaXRpb25z
IG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9BVVRPR0VO
X0RFRiB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIGFuIEF1dG9H
ZW4gRGVmaW5pdGlvbnMgKHNlZSBhdXRvZ2VuLnNmLm5ldCkgZmlsZSAKLSMgdGhhdCBjYXB0dXJl
cyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgCi0jIGRvY3VtZW50YXRp
b24uIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMgc3RpbGwgZXhwZXJpbWVudGFsIAotIyBhbmQg
aW5jb21wbGV0ZSBhdCB0aGUgbW9tZW50LgorIyBJZiB0aGUgR0VORVJBVEVfQVVUT0dFTl9ERUYg
dGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGFuIEF1dG9HZW4KKyMgRGVm
aW5pdGlvbnMgKHNlZSBodHRwOi8vYXV0b2dlbi5zZi5uZXQpIGZpbGUgdGhhdCBjYXB0dXJlcyB0
aGUgc3RydWN0dXJlIG9mCisjIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4g
Tm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBzdGlsbAorIyBleHBlcmltZW50YWwgYW5kIGluY29t
cGxldGUgYXQgdGhlIG1vbWVudC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBHRU5F
UkFURV9BVVRPR0VOX0RFRiAgID0gTk8KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBjb25maWd1
cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgUGVybCBtb2R1bGUgb3V0cHV0CisjIENvbmZp
Z3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQKICMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgR0VORVJBVEVfUEVSTE1PRCB0YWcgaXMgc2V0IHRv
IFlFUyBEb3h5Z2VuIHdpbGwgCi0jIGdlbmVyYXRlIGEgUGVybCBtb2R1bGUgZmlsZSB0aGF0IGNh
cHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YgCi0jIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1l
bnRhdGlvbi4gTm90ZSB0aGF0IHRoaXMgCi0jIGZlYXR1cmUgaXMgc3RpbGwgZXhwZXJpbWVudGFs
IGFuZCBpbmNvbXBsZXRlIGF0IHRoZSAKLSMgbW9tZW50LgorIyBJZiB0aGUgR0VORVJBVEVfUEVS
TE1PRCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBQZXJsIG1vZHVs
ZQorIyBmaWxlIHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29kZSBpbmNsdWRp
bmcgYWxsIGRvY3VtZW50YXRpb24uCisjCisjIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMgc3Rp
bGwgZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRoZSBtb21lbnQuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KIAogR0VORVJBVEVfUEVSTE1PRCAgICAgICA9IE5PCiAKLSMgSWYg
dGhlIFBFUkxNT0RfTEFURVggdGFnIGlzIHNldCB0byBZRVMgRG94eWdlbiB3aWxsIGdlbmVyYXRl
IAotIyB0aGUgbmVjZXNzYXJ5IE1ha2VmaWxlIHJ1bGVzLCBQZXJsIHNjcmlwdHMgYW5kIExhVGVY
IGNvZGUgdG8gYmUgYWJsZSAKLSMgdG8gZ2VuZXJhdGUgUERGIGFuZCBEVkkgb3V0cHV0IGZyb20g
dGhlIFBlcmwgbW9kdWxlIG91dHB1dC4KKyMgSWYgdGhlIFBFUkxNT0RfTEFURVggdGFnIGlzIHNl
dCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHRoZSBuZWNlc3NhcnkKKyMgTWFrZWZpbGUg
cnVsZXMsIFBlcmwgc2NyaXB0cyBhbmQgTGFUZVggY29kZSB0byBiZSBhYmxlIHRvIGdlbmVyYXRl
IFBERiBhbmQgRFZJCisjIG91dHB1dCBmcm9tIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4KIAogUEVSTE1PRF9MQVRFWCAgICAgICAg
ICA9IE5PCiAKLSMgSWYgdGhlIFBFUkxNT0RfUFJFVFRZIHRhZyBpcyBzZXQgdG8gWUVTIHRoZSBQ
ZXJsIG1vZHVsZSBvdXRwdXQgd2lsbCBiZSAKLSMgbmljZWx5IGZvcm1hdHRlZCBzbyBpdCBjYW4g
YmUgcGFyc2VkIGJ5IGEgaHVtYW4gcmVhZGVyLiAKLSMgVGhpcyBpcyB1c2VmdWwgCi0jIGlmIHlv
dSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCBpcyBnb2luZyBvbi4gCi0jIE9uIHRoZSBvdGhlciBo
YW5kLCBpZiB0aGlzIAotIyB0YWcgaXMgc2V0IHRvIE5PIHRoZSBzaXplIG9mIHRoZSBQZXJsIG1v
ZHVsZSBvdXRwdXQgd2lsbCBiZSBtdWNoIHNtYWxsZXIgCi0jIGFuZCBQZXJsIHdpbGwgcGFyc2Ug
aXQganVzdCB0aGUgc2FtZS4KKyMgSWYgdGhlIFBFUkxNT0RfUFJFVFRZIHRhZyBpcyBzZXQgdG8g
WUVTIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQgd2lsbCBiZSBuaWNlbHkKKyMgZm9ybWF0dGVkIHNv
IGl0IGNhbiBiZSBwYXJzZWQgYnkgYSBodW1hbiByZWFkZXIuIFRoaXMgaXMgdXNlZnVsIGlmIHlv
dSB3YW50IHRvCisjIHVuZGVyc3RhbmQgd2hhdCBpcyBnb2luZyBvbi4gT24gdGhlIG90aGVyIGhh
bmQsIGlmIHRoaXMgdGFnIGlzIHNldCB0byBOTyB0aGUKKyMgc2l6ZSBvZiB0aGUgUGVybCBtb2R1
bGUgb3V0cHV0IHdpbGwgYmUgbXVjaCBzbWFsbGVyIGFuZCBQZXJsIHdpbGwgcGFyc2UgaXQKKyMg
anVzdCB0aGUgc2FtZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4KIAog
UEVSTE1PRF9QUkVUVFkgICAgICAgICA9IFlFUwogCi0jIFRoZSBuYW1lcyBvZiB0aGUgbWFrZSB2
YXJpYWJsZXMgaW4gdGhlIGdlbmVyYXRlZCBkb3h5cnVsZXMubWFrZSBmaWxlIAotIyBhcmUgcHJl
Zml4ZWQgd2l0aCB0aGUgc3RyaW5nIGNvbnRhaW5lZCBpbiBQRVJMTU9EX01BS0VWQVJfUFJFRklY
LiAKLSMgVGhpcyBpcyB1c2VmdWwgc28gZGlmZmVyZW50IGRveHlydWxlcy5tYWtlIGZpbGVzIGlu
Y2x1ZGVkIGJ5IHRoZSBzYW1lIAotIyBNYWtlZmlsZSBkb24ndCBvdmVyd3JpdGUgZWFjaCBvdGhl
cidzIHZhcmlhYmxlcy4KKyMgVGhlIG5hbWVzIG9mIHRoZSBtYWtlIHZhcmlhYmxlcyBpbiB0aGUg
Z2VuZXJhdGVkIGRveHlydWxlcy5tYWtlIGZpbGUgYXJlCisjIHByZWZpeGVkIHdpdGggdGhlIHN0
cmluZyBjb250YWluZWQgaW4gUEVSTE1PRF9NQUtFVkFSX1BSRUZJWC4gVGhpcyBpcyB1c2VmdWwK
KyMgc28gZGlmZmVyZW50IGRveHlydWxlcy5tYWtlIGZpbGVzIGluY2x1ZGVkIGJ5IHRoZSBzYW1l
IE1ha2VmaWxlIGRvbid0CisjIG92ZXJ3cml0ZSBlYWNoIG90aGVyJ3MgdmFyaWFibGVzLgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUEVSTE1PRCBpcyBzZXQgdG8g
WUVTLgogCi1QRVJMTU9EX01BS0VWQVJfUFJFRklYID0gCitQRVJMTU9EX01BS0VWQVJfUFJFRklY
ID0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRl
ZCB0byB0aGUgcHJlcHJvY2Vzc29yICAgCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVk
IHRvIHRoZSBwcmVwcm9jZXNzb3IKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgRU5B
QkxFX1BSRVBST0NFU1NJTkcgdGFnIGlzIHNldCB0byBZRVMgKHRoZSBkZWZhdWx0KSBEb3h5Z2Vu
IHdpbGwgCi0jIGV2YWx1YXRlIGFsbCBDLXByZXByb2Nlc3NvciBkaXJlY3RpdmVzIGZvdW5kIGlu
IHRoZSBzb3VyY2VzIGFuZCBpbmNsdWRlIAotIyBmaWxlcy4KKyMgSWYgdGhlIEVOQUJMRV9QUkVQ
Uk9DRVNTSU5HIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBldmFsdWF0ZSBhbGwKKyMg
Qy1wcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyBmb3VuZCBpbiB0aGUgc291cmNlcyBhbmQgaW5jbHVk
ZSBmaWxlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogRU5BQkxFX1BSRVBST0NF
U1NJTkcgICA9IFlFUwogCi0jIElmIHRoZSBNQUNST19FWFBBTlNJT04gdGFnIGlzIHNldCB0byBZ
RVMgRG94eWdlbiB3aWxsIGV4cGFuZCBhbGwgbWFjcm8gCi0jIG5hbWVzIGluIHRoZSBzb3VyY2Ug
Y29kZS4gSWYgc2V0IHRvIE5PICh0aGUgZGVmYXVsdCkgb25seSBjb25kaXRpb25hbCAKLSMgY29t
cGlsYXRpb24gd2lsbCBiZSBwZXJmb3JtZWQuIE1hY3JvIGV4cGFuc2lvbiBjYW4gYmUgZG9uZSBp
biBhIGNvbnRyb2xsZWQgCi0jIHdheSBieSBzZXR0aW5nIEVYUEFORF9PTkxZX1BSRURFRiB0byBZ
RVMuCisjIElmIHRoZSBNQUNST19FWFBBTlNJT04gdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3
aWxsIGV4cGFuZCBhbGwgbWFjcm8gbmFtZXMKKyMgaW4gdGhlIHNvdXJjZSBjb2RlLiBJZiBzZXQg
dG8gTk8gb25seSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB3aWxsIGJlCisjIHBlcmZvcm1lZC4g
TWFjcm8gZXhwYW5zaW9uIGNhbiBiZSBkb25lIGluIGEgY29udHJvbGxlZCB3YXkgYnkgc2V0dGlu
ZworIyBFWFBBTkRfT05MWV9QUkVERUYgdG8gWUVTLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lO
RyBpcyBzZXQgdG8gWUVTLgogCiBNQUNST19FWFBBTlNJT04gICAgICAgID0gWUVTCiAKLSMgSWYg
dGhlIEVYUEFORF9PTkxZX1BSRURFRiBhbmQgTUFDUk9fRVhQQU5TSU9OIHRhZ3MgYXJlIGJvdGgg
c2V0IHRvIFlFUyAKLSMgdGhlbiB0aGUgbWFjcm8gZXhwYW5zaW9uIGlzIGxpbWl0ZWQgdG8gdGhl
IG1hY3JvcyBzcGVjaWZpZWQgd2l0aCB0aGUgCi0jIFBSRURFRklORUQgYW5kIEVYUEFORF9BU19E
RUZJTkVEIHRhZ3MuCisjIElmIHRoZSBFWFBBTkRfT05MWV9QUkVERUYgYW5kIE1BQ1JPX0VYUEFO
U0lPTiB0YWdzIGFyZSBib3RoIHNldCB0byBZRVMgdGhlbgorIyB0aGUgbWFjcm8gZXhwYW5zaW9u
IGlzIGxpbWl0ZWQgdG8gdGhlIG1hY3JvcyBzcGVjaWZpZWQgd2l0aCB0aGUgUFJFREVGSU5FRCBh
bmQKKyMgRVhQQU5EX0FTX0RFRklORUQgdGFncy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcg
aXMgc2V0IHRvIFlFUy4KIAogRVhQQU5EX09OTFlfUFJFREVGICAgICA9IE5PCiAKLSMgSWYgdGhl
IFNFQVJDSF9JTkNMVURFUyB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIHRoZSBpbmNs
dWRlcyBmaWxlcyAKLSMgaW4gdGhlIElOQ0xVREVfUEFUSCAoc2VlIGJlbG93KSB3aWxsIGJlIHNl
YXJjaCBpZiBhICNpbmNsdWRlIGlzIGZvdW5kLgorIyBJZiB0aGUgU0VBUkNIX0lOQ0xVREVTIHRh
ZyBpcyBzZXQgdG8gWUVTIHRoZSBpbmNsdWRlcyBmaWxlcyBpbiB0aGUKKyMgSU5DTFVERV9QQVRI
IHdpbGwgYmUgc2VhcmNoZWQgaWYgYSAjaW5jbHVkZSBpcyBmb3VuZC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9Q
UkVQUk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCiAKIFNFQVJDSF9JTkNMVURFUyAgICAgICAgPSBZ
RVMKIAotIyBUaGUgSU5DTFVERV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBv
ciBtb3JlIGRpcmVjdG9yaWVzIHRoYXQgCi0jIGNvbnRhaW4gaW5jbHVkZSBmaWxlcyB0aGF0IGFy
ZSBub3QgaW5wdXQgZmlsZXMgYnV0IHNob3VsZCBiZSBwcm9jZXNzZWQgYnkgCi0jIHRoZSBwcmVw
cm9jZXNzb3IuCisjIFRoZSBJTkNMVURFX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkg
b25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250YWluIGluY2x1ZGUgZmlsZXMgdGhh
dCBhcmUgbm90IGlucHV0IGZpbGVzIGJ1dCBzaG91bGQgYmUgcHJvY2Vzc2VkIGJ5IHRoZQorIyBw
cmVwcm9jZXNzb3IuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hfSU5D
TFVERVMgaXMgc2V0IHRvIFlFUy4KIAogSU5DTFVERV9QQVRIICAgICAgICAgICA9IC4uL2luY2x1
ZGUKIAotIyBZb3UgY2FuIHVzZSB0aGUgSU5DTFVERV9GSUxFX1BBVFRFUk5TIHRhZyB0byBzcGVj
aWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIAotIyBwYXR0ZXJucyAobGlrZSAqLmggYW5kICouaHBw
KSB0byBmaWx0ZXIgb3V0IHRoZSBoZWFkZXItZmlsZXMgaW4gdGhlIAotIyBkaXJlY3Rvcmllcy4g
SWYgbGVmdCBibGFuaywgdGhlIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIEZJTEVfUEFUVEVSTlMg
d2lsbCAKLSMgYmUgdXNlZC4KKyMgWW91IGNhbiB1c2UgdGhlIElOQ0xVREVfRklMRV9QQVRURVJO
UyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB3aWxkY2FyZAorIyBwYXR0ZXJucyAobGlrZSAq
LmggYW5kICouaHBwKSB0byBmaWx0ZXIgb3V0IHRoZSBoZWFkZXItZmlsZXMgaW4gdGhlCisjIGRp
cmVjdG9yaWVzLiBJZiBsZWZ0IGJsYW5rLCB0aGUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggRklM
RV9QQVRURVJOUyB3aWxsIGJlCisjIHVzZWQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8gWUVTLgogCiBJTkNMVURFX0ZJTEVf
UEFUVEVSTlMgID0gKi5oCiAKLSMgVGhlIFBSRURFRklORUQgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgb25lIG9yIG1vcmUgbWFjcm8gbmFtZXMgdGhhdCAKLSMgYXJlIGRlZmluZWQgYmVmb3Jl
IHRoZSBwcmVwcm9jZXNzb3IgaXMgc3RhcnRlZCAoc2ltaWxhciB0byB0aGUgLUQgb3B0aW9uIG9m
IAotIyBnY2MpLiBUaGUgYXJndW1lbnQgb2YgdGhlIHRhZyBpcyBhIGxpc3Qgb2YgbWFjcm9zIG9m
IHRoZSBmb3JtOiBuYW1lIAotIyBvciBuYW1lPWRlZmluaXRpb24gKG5vIHNwYWNlcykuIElmIHRo
ZSBkZWZpbml0aW9uIGFuZCB0aGUgPSBhcmUgCi0jIG9taXR0ZWQgPTEgaXMgYXNzdW1lZC4gVG8g
cHJldmVudCBhIG1hY3JvIGRlZmluaXRpb24gZnJvbSBiZWluZyAKLSMgdW5kZWZpbmVkIHZpYSAj
dW5kZWYgb3IgcmVjdXJzaXZlbHkgZXhwYW5kZWQgdXNlIHRoZSA6PSBvcGVyYXRvciAKLSMgaW5z
dGVhZCBvZiB0aGUgPSBvcGVyYXRvci4KKyMgVGhlIFBSRURFRklORUQgdGFnIGNhbiBiZSB1c2Vk
IHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgbWFjcm8gbmFtZXMgdGhhdCBhcmUKKyMgZGVmaW5lZCBi
ZWZvcmUgdGhlIHByZXByb2Nlc3NvciBpcyBzdGFydGVkIChzaW1pbGFyIHRvIHRoZSAtRCBvcHRp
b24gb2YgZS5nLgorIyBnY2MpLiBUaGUgYXJndW1lbnQgb2YgdGhlIHRhZyBpcyBhIGxpc3Qgb2Yg
bWFjcm9zIG9mIHRoZSBmb3JtOiBuYW1lIG9yCisjIG5hbWU9ZGVmaW5pdGlvbiAobm8gc3BhY2Vz
KS4gSWYgdGhlIGRlZmluaXRpb24gYW5kIHRoZSAiPSIgYXJlIG9taXR0ZWQsICI9MSIKKyMgaXMg
YXNzdW1lZC4gVG8gcHJldmVudCBhIG1hY3JvIGRlZmluaXRpb24gZnJvbSBiZWluZyB1bmRlZmlu
ZWQgdmlhICN1bmRlZiBvcgorIyByZWN1cnNpdmVseSBleHBhbmRlZCB1c2UgdGhlIDo9IG9wZXJh
dG9yIGluc3RlYWQgb2YgdGhlID0gb3BlcmF0b3IuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lORyBpcyBzZXQgdG8gWUVTLgogCi1QUkVERUZJTkVE
ICAgICAgICAgICAgID0gIl9NU0NfVkVSPTE0MDAiIFwKK1BSRURFRklORUQgICAgICAgICAgICAg
PSAiX01TQ19WRVI9MTgwMCIgXAogICAgICAgICAgICAgICAgICAgICAgICAgIF9DUFBSVFRJIFwK
ICAgICAgICAgICAgICAgICAgICAgICAgICBfV0lOMzIgXAotICAgICAgICAgICAgICAgICAgICAg
ICAgIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04gXAotICAgICAgICAgICAgICAg
ICAgICAgICAgIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAorICAgICAgICAgICAgICAgICAg
ICAgICAgIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KIAotIyBJZiB0aGUgTUFD
Uk9fRVhQQU5TSU9OIGFuZCBFWFBBTkRfT05MWV9QUkVERUYgdGFncyBhcmUgc2V0IHRvIFlFUyB0
aGVuIAotIyB0aGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbGlzdCBvZiBtYWNybyBu
YW1lcyB0aGF0IHNob3VsZCBiZSBleHBhbmRlZC4gCi0jIFRoZSBtYWNybyBkZWZpbml0aW9uIHRo
YXQgaXMgZm91bmQgaW4gdGhlIHNvdXJjZXMgd2lsbCBiZSB1c2VkLiAKLSMgVXNlIHRoZSBQUkVE
RUZJTkVEIHRhZyBpZiB5b3Ugd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgbWFjcm8gZGVmaW5pdGlv
bi4KKyMgSWYgdGhlIE1BQ1JPX0VYUEFOU0lPTiBhbmQgRVhQQU5EX09OTFlfUFJFREVGIHRhZ3Mg
YXJlIHNldCB0byBZRVMgdGhlbiB0aGlzCisjIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEg
bGlzdCBvZiBtYWNybyBuYW1lcyB0aGF0IHNob3VsZCBiZSBleHBhbmRlZC4gVGhlCisjIG1hY3Jv
IGRlZmluaXRpb24gdGhhdCBpcyBmb3VuZCBpbiB0aGUgc291cmNlcyB3aWxsIGJlIHVzZWQuIFVz
ZSB0aGUgUFJFREVGSU5FRAorIyB0YWcgaWYgeW91IHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50IG1h
Y3JvIGRlZmluaXRpb24gdGhhdCBvdmVycnVsZXMgdGhlCisjIGRlZmluaXRpb24gZm91bmQgaW4g
dGhlIHNvdXJjZSBjb2RlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxF
X1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KIAotRVhQQU5EX0FTX0RFRklORUQgICAgICA9
IAorRVhQQU5EX0FTX0RFRklORUQgICAgICA9CiAKLSMgSWYgdGhlIFNLSVBfRlVOQ1RJT05fTUFD
Uk9TIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkgdGhlbiAKLSMgZG94eWdlbidzIHBy
ZXByb2Nlc3NvciB3aWxsIHJlbW92ZSBhbGwgZnVuY3Rpb24tbGlrZSBtYWNyb3MgdGhhdCBhcmUg
YWxvbmUgCi0jIG9uIGEgbGluZSwgaGF2ZSBhbiBhbGwgdXBwZXJjYXNlIG5hbWUsIGFuZCBkbyBu
b3QgZW5kIHdpdGggYSBzZW1pY29sb24uIFN1Y2ggCi0jIGZ1bmN0aW9uIG1hY3JvcyBhcmUgdHlw
aWNhbGx5IHVzZWQgZm9yIGJvaWxlci1wbGF0ZSBjb2RlLCBhbmQgd2lsbCBjb25mdXNlIAotIyB0
aGUgcGFyc2VyIGlmIG5vdCByZW1vdmVkLgorIyBJZiB0aGUgU0tJUF9GVU5DVElPTl9NQUNST1Mg
dGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuJ3MgcHJlcHJvY2Vzc29yIHdpbGwKKyMgcmVt
b3ZlIGFsbCByZWZlcmVuY2VzIHRvIGZ1bmN0aW9uLWxpa2UgbWFjcm9zIHRoYXQgYXJlIGFsb25l
IG9uIGEgbGluZSwgaGF2ZSBhbgorIyBhbGwgdXBwZXJjYXNlIG5hbWUsIGFuZCBkbyBub3QgZW5k
IHdpdGggYSBzZW1pY29sb24uIFN1Y2ggZnVuY3Rpb24gbWFjcm9zIGFyZQorIyB0eXBpY2FsbHkg
dXNlZCBmb3IgYm9pbGVyLXBsYXRlIGNvZGUsIGFuZCB3aWxsIGNvbmZ1c2UgdGhlIHBhcnNlciBp
ZiBub3QKKyMgcmVtb3ZlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGlzIHNldCB0byBZ
RVMuCiAKIFNLSVBfRlVOQ1RJT05fTUFDUk9TICAgPSBZRVMKIAogIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyBDb25maWd1cmF0aW9uOjphZGRpdGlvbnMgcmVsYXRlZCB0byBleHRlcm5hbCByZWZlcmVu
Y2VzICAgCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIGV4dGVybmFsIHJlZmVy
ZW5jZXMKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBUaGUgVEFHRklMRVMgb3B0aW9uIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgdGFnZmlsZXMuIAotIyBPcHRpb25hbGx5IGFu
IGluaXRpYWwgbG9jYXRpb24gb2YgdGhlIGV4dGVybmFsIGRvY3VtZW50YXRpb24gCi0jIGNhbiBi
ZSBhZGRlZCBmb3IgZWFjaCB0YWdmaWxlLiBUaGUgZm9ybWF0IG9mIGEgdGFnIGZpbGUgd2l0aG91
dCAKLSMgdGhpcyBsb2NhdGlvbiBpcyBhcyBmb2xsb3dzOiAKLSMgIAotIyBUQUdGSUxFUyA9IGZp
bGUxIGZpbGUyIC4uLiAKLSMgQWRkaW5nIGxvY2F0aW9uIGZvciB0aGUgdGFnIGZpbGVzIGlzIGRv
bmUgYXMgZm9sbG93czogCi0jICAKLSMgVEFHRklMRVMgPSBmaWxlMT1sb2MxICJmaWxlMiA9IGxv
YzIiIC4uLiAKLSMgd2hlcmUgImxvYzEiIGFuZCAibG9jMiIgY2FuIGJlIHJlbGF0aXZlIG9yIGFi
c29sdXRlIHBhdGhzIG9yIAotIyBVUkxzLiBJZiBhIGxvY2F0aW9uIGlzIHByZXNlbnQgZm9yIGVh
Y2ggdGFnLCB0aGUgaW5zdGFsbGRveCB0b29sIAotIyBkb2VzIG5vdCBoYXZlIHRvIGJlIHJ1biB0
byBjb3JyZWN0IHRoZSBsaW5rcy4gCi0jIE5vdGUgdGhhdCBlYWNoIHRhZyBmaWxlIG11c3QgaGF2
ZSBhIHVuaXF1ZSBuYW1lIAotIyAod2hlcmUgdGhlIG5hbWUgZG9lcyBOT1QgaW5jbHVkZSB0aGUg
cGF0aCkgCi0jIElmIGEgdGFnIGZpbGUgaXMgbm90IGxvY2F0ZWQgaW4gdGhlIGRpcmVjdG9yeSBp
biB3aGljaCBkb3h5Z2VuIAotIyBpcyBydW4sIHlvdSBtdXN0IGFsc28gc3BlY2lmeSB0aGUgcGF0
aCB0byB0aGUgdGFnZmlsZSBoZXJlLgotCi1UQUdGSUxFUyAgICAgICAgICAgICAgID0gCi0KLSMg
V2hlbiBhIGZpbGUgbmFtZSBpcyBzcGVjaWZpZWQgYWZ0ZXIgR0VORVJBVEVfVEFHRklMRSwgZG94
eWdlbiB3aWxsIGNyZWF0ZSAKLSMgYSB0YWcgZmlsZSB0aGF0IGlzIGJhc2VkIG9uIHRoZSBpbnB1
dCBmaWxlcyBpdCByZWFkcy4KLQotR0VORVJBVEVfVEFHRklMRSAgICAgICA9IAotCi0jIElmIHRo
ZSBBTExFWFRFUk5BTFMgdGFnIGlzIHNldCB0byBZRVMgYWxsIGV4dGVybmFsIGNsYXNzZXMgd2ls
bCBiZSBsaXN0ZWQgCi0jIGluIHRoZSBjbGFzcyBpbmRleC4gSWYgc2V0IHRvIE5PIG9ubHkgdGhl
IGluaGVyaXRlZCBleHRlcm5hbCBjbGFzc2VzIAotIyB3aWxsIGJlIGxpc3RlZC4KKyMgVGhlIFRB
R0ZJTEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHRhZyBmaWxlcy4g
Rm9yIGVhY2ggdGFnCisjIGZpbGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBleHRlcm5hbCBkb2N1bWVu
dGF0aW9uIHNob3VsZCBiZSBhZGRlZC4gVGhlIGZvcm1hdCBvZgorIyBhIHRhZyBmaWxlIHdpdGhv
dXQgdGhpcyBsb2NhdGlvbiBpcyBhcyBmb2xsb3dzOgorIyBUQUdGSUxFUyA9IGZpbGUxIGZpbGUy
IC4uLgorIyBBZGRpbmcgbG9jYXRpb24gZm9yIHRoZSB0YWcgZmlsZXMgaXMgZG9uZSBhcyBmb2xs
b3dzOgorIyBUQUdGSUxFUyA9IGZpbGUxPWxvYzEgImZpbGUyID0gbG9jMiIgLi4uCisjIHdoZXJl
IGxvYzEgYW5kIGxvYzIgY2FuIGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhzIG9yIFVSTHMu
IFNlZSB0aGUKKyMgc2VjdGlvbiAiTGlua2luZyB0byBleHRlcm5hbCBkb2N1bWVudGF0aW9uIiBm
b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlCisjIG9mIHRhZyBmaWxlcy4KKyMgTm90
ZTogRWFjaCB0YWcgZmlsZSBtdXN0IGhhdmUgYW4gdW5pcXVlIG5hbWUgKHdoZXJlIHRoZSBuYW1l
IGRvZXMgTk9UIGluY2x1ZGUKKyMgdGhlIHBhdGgpLiBJZiBhIHRhZyBmaWxlIGlzIG5vdCBsb2Nh
dGVkIGluIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggZG94eWdlbiBpcworIyBydW4sIHlvdSBtdXN0
IGFsc28gc3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgdGFnZmlsZSBoZXJlLgorCitUQUdGSUxFUyAg
ICAgICAgICAgICAgID0KKworIyBXaGVuIGEgZmlsZSBuYW1lIGlzIHNwZWNpZmllZCBhZnRlciBH
RU5FUkFURV9UQUdGSUxFLCBkb3h5Z2VuIHdpbGwgY3JlYXRlIGEKKyMgdGFnIGZpbGUgdGhhdCBp
cyBiYXNlZCBvbiB0aGUgaW5wdXQgZmlsZXMgaXQgcmVhZHMuIFNlZSBzZWN0aW9uICJMaW5raW5n
IHRvCisjIGV4dGVybmFsIGRvY3VtZW50YXRpb24iIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0
IHRoZSB1c2FnZSBvZiB0YWcgZmlsZXMuCisKK0dFTkVSQVRFX1RBR0ZJTEUgICAgICAgPQorCisj
IElmIHRoZSBBTExFWFRFUk5BTFMgdGFnIGlzIHNldCB0byBZRVMgYWxsIGV4dGVybmFsIGNsYXNz
IHdpbGwgYmUgbGlzdGVkIGluIHRoZQorIyBjbGFzcyBpbmRleC4gSWYgc2V0IHRvIE5PIG9ubHkg
dGhlIGluaGVyaXRlZCBleHRlcm5hbCBjbGFzc2VzIHdpbGwgYmUgbGlzdGVkLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogTk8uCiAKIEFMTEVYVEVSTkFMUyAgICAgICAgICAgPSBOTwogCi0jIElm
IHRoZSBFWFRFUk5BTF9HUk9VUFMgdGFnIGlzIHNldCB0byBZRVMgYWxsIGV4dGVybmFsIGdyb3Vw
cyB3aWxsIGJlIGxpc3RlZCAKLSMgaW4gdGhlIG1vZHVsZXMgaW5kZXguIElmIHNldCB0byBOTywg
b25seSB0aGUgY3VycmVudCBwcm9qZWN0J3MgZ3JvdXBzIHdpbGwgCi0jIGJlIGxpc3RlZC4KKyMg
SWYgdGhlIEVYVEVSTkFMX0dST1VQUyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJuYWwgZ3Jv
dXBzIHdpbGwgYmUgbGlzdGVkIGluCisjIHRoZSBtb2R1bGVzIGluZGV4LiBJZiBzZXQgdG8gTk8s
IG9ubHkgdGhlIGN1cnJlbnQgcHJvamVjdCdzIGdyb3VwcyB3aWxsIGJlCisjIGxpc3RlZC4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogRVhURVJOQUxfR1JPVVBTICAgICAgICA9IFlF
UwogCi0jIFRoZSBQRVJMX1BBVEggc2hvdWxkIGJlIHRoZSBhYnNvbHV0ZSBwYXRoIGFuZCBuYW1l
IG9mIHRoZSBwZXJsIHNjcmlwdCAKLSMgaW50ZXJwcmV0ZXIgKGkuZS4gdGhlIHJlc3VsdCBvZiBg
d2hpY2ggcGVybCcpLgorIyBJZiB0aGUgRVhURVJOQUxfUEFHRVMgdGFnIGlzIHNldCB0byBZRVMg
YWxsIGV4dGVybmFsIHBhZ2VzIHdpbGwgYmUgbGlzdGVkIGluCisjIHRoZSByZWxhdGVkIHBhZ2Vz
IGluZGV4LiBJZiBzZXQgdG8gTk8sIG9ubHkgdGhlIGN1cnJlbnQgcHJvamVjdCdzIHBhZ2VzIHdp
bGwKKyMgYmUgbGlzdGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitFWFRFUk5B
TF9QQUdFUyAgICAgICAgID0gWUVTCisKKyMgVGhlIFBFUkxfUEFUSCBzaG91bGQgYmUgdGhlIGFi
c29sdXRlIHBhdGggYW5kIG5hbWUgb2YgdGhlIHBlcmwgc2NyaXB0CisjIGludGVycHJldGVyIChp
LmUuIHRoZSByZXN1bHQgb2YgJ3doaWNoIHBlcmwnKS4KKyMgVGhlIGRlZmF1bHQgZmlsZSAod2l0
aCBhYnNvbHV0ZSBwYXRoKSBpczogL3Vzci9iaW4vcGVybC4KIAogUEVSTF9QQVRIICAgICAgICAg
ICAgICA9IC91c3IvYmluL3BlcmwKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDb25maWd1cmF0
aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgZG90IHRvb2wgICAKKyMgQ29uZmlndXJhdGlvbiBv
cHRpb25zIHJlbGF0ZWQgdG8gdGhlIGRvdCB0b29sCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMg
SWYgdGhlIENMQVNTX0RJQUdSQU1TIHRhZyBpcyBzZXQgdG8gWUVTICh0aGUgZGVmYXVsdCkgRG94
eWdlbiB3aWxsIAotIyBnZW5lcmF0ZSBhIGluaGVyaXRhbmNlIGRpYWdyYW0gKGluIEhUTUwsIFJU
RiBhbmQgTGFUZVgpIGZvciBjbGFzc2VzIHdpdGggYmFzZSAKLSMgb3Igc3VwZXIgY2xhc3Nlcy4g
U2V0dGluZyB0aGUgdGFnIHRvIE5PIHR1cm5zIHRoZSBkaWFncmFtcyBvZmYuIE5vdGUgdGhhdCAK
LSMgdGhpcyBvcHRpb24gaXMgc3VwZXJzZWRlZCBieSB0aGUgSEFWRV9ET1Qgb3B0aW9uIGJlbG93
LiBUaGlzIGlzIG9ubHkgYSAKLSMgZmFsbGJhY2suIEl0IGlzIHJlY29tbWVuZGVkIHRvIGluc3Rh
bGwgYW5kIHVzZSBkb3QsIHNpbmNlIGl0IHlpZWxkcyBtb3JlIAorIyBJZiB0aGUgQ0xBU1NfRElB
R1JBTVMgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgY2xhc3MgZGlh
Z3JhbQorIyAoaW4gSFRNTCBhbmQgTGFUZVgpIGZvciBjbGFzc2VzIHdpdGggYmFzZSBvciBzdXBl
ciBjbGFzc2VzLiBTZXR0aW5nIHRoZSB0YWcgdG8KKyMgTk8gdHVybnMgdGhlIGRpYWdyYW1zIG9m
Zi4gTm90ZSB0aGF0IHRoaXMgb3B0aW9uIGFsc28gd29ya3Mgd2l0aCBIQVZFX0RPVAorIyBkaXNh
YmxlZCwgYnV0IGl0IGlzIHJlY29tbWVuZGVkIHRvIGluc3RhbGwgYW5kIHVzZSBkb3QsIHNpbmNl
IGl0IHlpZWxkcyBtb3JlCiAjIHBvd2VyZnVsIGdyYXBocy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IFlFUy4KIAogQ0xBU1NfRElBR1JBTVMgICAgICAgICA9IE5PCiAKLSMgWW91IGNhbiBkZWZp
bmUgbWVzc2FnZSBzZXF1ZW5jZSBjaGFydHMgd2l0aGluIGRveHlnZW4gY29tbWVudHMgdXNpbmcg
dGhlIFxtc2MgCi0jIGNvbW1hbmQuIERveHlnZW4gd2lsbCB0aGVuIHJ1biB0aGUgbXNjZ2VuIHRv
b2wgKHNlZSAKLSMgaHR0cDovL3d3dy5tY3Rlcm5hbi5tZS51ay9tc2NnZW4vKSB0byBwcm9kdWNl
IHRoZSBjaGFydCBhbmQgaW5zZXJ0IGl0IGluIHRoZSAKLSMgZG9jdW1lbnRhdGlvbi4gVGhlIE1T
Q0dFTl9QQVRIIHRhZyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSB3aGVyZSAK
LSMgdGhlIG1zY2dlbiB0b29sIHJlc2lkZXMuIElmIGxlZnQgZW1wdHkgdGhlIHRvb2wgaXMgYXNz
dW1lZCB0byBiZSBmb3VuZCBpbiB0aGUgCisjIFlvdSBjYW4gZGVmaW5lIG1lc3NhZ2Ugc2VxdWVu
Y2UgY2hhcnRzIHdpdGhpbiBkb3h5Z2VuIGNvbW1lbnRzIHVzaW5nIHRoZSBcbXNjCisjIGNvbW1h
bmQuIERveHlnZW4gd2lsbCB0aGVuIHJ1biB0aGUgbXNjZ2VuIHRvb2wgKHNlZToKKyMgaHR0cDov
L3d3dy5tY3Rlcm5hbi5tZS51ay9tc2NnZW4vKSkgdG8gcHJvZHVjZSB0aGUgY2hhcnQgYW5kIGlu
c2VydCBpdCBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbi4gVGhlIE1TQ0dFTl9QQVRIIHRhZyBhbGxv
d3MgeW91IHRvIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSB3aGVyZQorIyB0aGUgbXNjZ2VuIHRvb2wg
cmVzaWRlcy4gSWYgbGVmdCBlbXB0eSB0aGUgdG9vbCBpcyBhc3N1bWVkIHRvIGJlIGZvdW5kIGlu
IHRoZQogIyBkZWZhdWx0IHNlYXJjaCBwYXRoLgogCi1NU0NHRU5fUEFUSCAgICAgICAgICAgID0g
CitNU0NHRU5fUEFUSCAgICAgICAgICAgID0KIAotIyBJZiBzZXQgdG8gWUVTLCB0aGUgaW5oZXJp
dGFuY2UgYW5kIGNvbGxhYm9yYXRpb24gZ3JhcGhzIHdpbGwgaGlkZSAKLSMgaW5oZXJpdGFuY2Ug
YW5kIHVzYWdlIHJlbGF0aW9ucyBpZiB0aGUgdGFyZ2V0IGlzIHVuZG9jdW1lbnRlZCAKLSMgb3Ig
aXMgbm90IGEgY2xhc3MuCisjIElmIHNldCB0byBZRVMsIHRoZSBpbmhlcml0YW5jZSBhbmQgY29s
bGFib3JhdGlvbiBncmFwaHMgd2lsbCBoaWRlIGluaGVyaXRhbmNlCisjIGFuZCB1c2FnZSByZWxh
dGlvbnMgaWYgdGhlIHRhcmdldCBpcyB1bmRvY3VtZW50ZWQgb3IgaXMgbm90IGEgY2xhc3MuCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEhJREVfVU5ET0NfUkVMQVRJT05TICAgPSBO
TwogCi0jIElmIHlvdSBzZXQgdGhlIEhBVkVfRE9UIHRhZyB0byBZRVMgdGhlbiBkb3h5Z2VuIHdp
bGwgYXNzdW1lIHRoZSBkb3QgdG9vbCBpcyAKLSMgYXZhaWxhYmxlIGZyb20gdGhlIHBhdGguIFRo
aXMgdG9vbCBpcyBwYXJ0IG9mIEdyYXBodml6LCBhIGdyYXBoIHZpc3VhbGl6YXRpb24gCi0jIHRv
b2xraXQgZnJvbSBBVCZUIGFuZCBMdWNlbnQgQmVsbCBMYWJzLiBUaGUgb3RoZXIgb3B0aW9ucyBp
biB0aGlzIHNlY3Rpb24gCi0jIGhhdmUgbm8gZWZmZWN0IGlmIHRoaXMgb3B0aW9uIGlzIHNldCB0
byBOTyAodGhlIGRlZmF1bHQpCisjIElmIHlvdSBzZXQgdGhlIEhBVkVfRE9UIHRhZyB0byBZRVMg
dGhlbiBkb3h5Z2VuIHdpbGwgYXNzdW1lIHRoZSBkb3QgdG9vbCBpcworIyBhdmFpbGFibGUgZnJv
bSB0aGUgcGF0aC4gVGhpcyB0b29sIGlzIHBhcnQgb2YgR3JhcGh2aXogKHNlZToKKyMgaHR0cDov
L3d3dy5ncmFwaHZpei5vcmcvKSwgYSBncmFwaCB2aXN1YWxpemF0aW9uIHRvb2xraXQgZnJvbSBB
VCZUIGFuZCBMdWNlbnQKKyMgQmVsbCBMYWJzLiBUaGUgb3RoZXIgb3B0aW9ucyBpbiB0aGlzIHNl
Y3Rpb24gaGF2ZSBubyBlZmZlY3QgaWYgdGhpcyBvcHRpb24gaXMKKyMgc2V0IHRvIE5PCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSEFWRV9ET1QgICAgICAgICAgICAgICA9ICVIQVZF
X0RPVCUKIAotIyBCeSBkZWZhdWx0IGRveHlnZW4gd2lsbCB3cml0ZSBhIGZvbnQgY2FsbGVkIEZy
ZWVTYW5zLnR0ZiB0byB0aGUgb3V0cHV0IAotIyBkaXJlY3RvcnkgYW5kIHJlZmVyZW5jZSBpdCBp
biBhbGwgZG90IGZpbGVzIHRoYXQgZG94eWdlbiBnZW5lcmF0ZXMuIFRoaXMgCi0jIGZvbnQgZG9l
cyBub3QgaW5jbHVkZSBhbGwgcG9zc2libGUgdW5pY29kZSBjaGFyYWN0ZXJzIGhvd2V2ZXIsIHNv
IHdoZW4geW91IG5lZWQgCi0jIHRoZXNlIChvciBqdXN0IHdhbnQgYSBkaWZmZXJlbnRseSBsb29r
aW5nIGZvbnQpIHlvdSBjYW4gc3BlY2lmeSB0aGUgZm9udCBuYW1lIAotIyB1c2luZyBET1RfRk9O
VE5BTUUuIFlvdSBuZWVkIG5lZWQgdG8gbWFrZSBzdXJlIGRvdCBpcyBhYmxlIHRvIGZpbmQgdGhl
IGZvbnQsIAotIyB3aGljaCBjYW4gYmUgZG9uZSBieSBwdXR0aW5nIGl0IGluIGEgc3RhbmRhcmQg
bG9jYXRpb24gb3IgYnkgc2V0dGluZyB0aGUgCi0jIERPVEZPTlRQQVRIIGVudmlyb25tZW50IHZh
cmlhYmxlIG9yIGJ5IHNldHRpbmcgRE9UX0ZPTlRQQVRIIHRvIHRoZSBkaXJlY3RvcnkgCi0jIGNv
bnRhaW5pbmcgdGhlIGZvbnQuCisjIFRoZSBET1RfTlVNX1RIUkVBRFMgc3BlY2lmaWVzIHRoZSBu
dW1iZXIgb2YgZG90IGludm9jYXRpb25zIGRveHlnZW4gaXMgYWxsb3dlZAorIyB0byBydW4gaW4g
cGFyYWxsZWwuIFdoZW4gc2V0IHRvIDAgZG94eWdlbiB3aWxsIGJhc2UgdGhpcyBvbiB0aGUgbnVt
YmVyIG9mCisjIHByb2Nlc3NvcnMgYXZhaWxhYmxlIGluIHRoZSBzeXN0ZW0uIFlvdSBjYW4gc2V0
IGl0IGV4cGxpY2l0bHkgdG8gYSB2YWx1ZQorIyBsYXJnZXIgdGhhbiAwIHRvIGdldCBjb250cm9s
IG92ZXIgdGhlIGJhbGFuY2UgYmV0d2VlbiBDUFUgbG9hZCBhbmQgcHJvY2Vzc2luZworIyBzcGVl
ZC4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMzIsIGRlZmF1bHQgdmFsdWU6
IDAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8g
WUVTLgorCitET1RfTlVNX1RIUkVBRFMgICAgICAgID0gMAorCisjIFdoZW4geW91IHdhbnQgYSBk
aWZmZXJlbnRseSBsb29raW5nIGZvbnQgbiB0aGUgZG90IGZpbGVzIHRoYXQgZG94eWdlbgorIyBn
ZW5lcmF0ZXMgeW91IGNhbiBzcGVjaWZ5IHRoZSBmb250IG5hbWUgdXNpbmcgRE9UX0ZPTlROQU1F
LiBZb3UgbmVlZCB0byBtYWtlCisjIHN1cmUgZG90IGlzIGFibGUgdG8gZmluZCB0aGUgZm9udCwg
d2hpY2ggY2FuIGJlIGRvbmUgYnkgcHV0dGluZyBpdCBpbiBhCisjIHN0YW5kYXJkIGxvY2F0aW9u
IG9yIGJ5IHNldHRpbmcgdGhlIERPVEZPTlRQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGJ5
CisjIHNldHRpbmcgRE9UX0ZPTlRQQVRIIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUg
Zm9udC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IEhlbHZldGljYS4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9GT05UTkFN
RSAgICAgICAgICAgPSBGcmVlU2FucwogCi0jIFRoZSBET1RfRk9OVFNJWkUgdGFnIGNhbiBiZSB1
c2VkIHRvIHNldCB0aGUgc2l6ZSBvZiB0aGUgZm9udCBvZiBkb3QgZ3JhcGhzLiAKLSMgVGhlIGRl
ZmF1bHQgc2l6ZSBpcyAxMHB0LgorIyBUaGUgRE9UX0ZPTlRTSVpFIHRhZyBjYW4gYmUgdXNlZCB0
byBzZXQgdGhlIHNpemUgKGluIHBvaW50cykgb2YgdGhlIGZvbnQgb2YKKyMgZG90IGdyYXBocy4K
KyMgTWluaW11bSB2YWx1ZTogNCwgbWF4aW11bSB2YWx1ZTogMjQsIGRlZmF1bHQgdmFsdWU6IDEw
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlF
Uy4KIAogRE9UX0ZPTlRTSVpFICAgICAgICAgICA9IDEwCiAKLSMgQnkgZGVmYXVsdCBkb3h5Z2Vu
IHdpbGwgdGVsbCBkb3QgdG8gdXNlIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHRvIGxvb2sgZm9yIHRo
ZSAKLSMgRnJlZVNhbnMudHRmIGZvbnQgKHdoaWNoIGRveHlnZW4gd2lsbCBwdXQgdGhlcmUgaXRz
ZWxmKS4gSWYgeW91IHNwZWNpZnkgYSAKLSMgZGlmZmVyZW50IGZvbnQgdXNpbmcgRE9UX0ZPTlRO
QU1FIHlvdSBjYW4gc2V0IHRoZSBwYXRoIHdoZXJlIGRvdCAKLSMgY2FuIGZpbmQgaXQgdXNpbmcg
dGhpcyB0YWcuCisjIEJ5IGRlZmF1bHQgZG94eWdlbiB3aWxsIHRlbGwgZG90IHRvIHVzZSB0aGUg
ZGVmYXVsdCBmb250IGFzIHNwZWNpZmllZCB3aXRoCisjIERPVF9GT05UTkFNRS4gSWYgeW91IHNw
ZWNpZnkgYSBkaWZmZXJlbnQgZm9udCB1c2luZyBET1RfRk9OVE5BTUUgeW91IGNhbiBzZXQKKyMg
dGhlIHBhdGggd2hlcmUgZG90IGNhbiBmaW5kIGl0IHVzaW5nIHRoaXMgdGFnLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAotRE9UX0ZP
TlRQQVRIICAgICAgICAgICA9IAorRE9UX0ZPTlRQQVRIICAgICAgICAgICA9CiAKLSMgSWYgdGhl
IENMQVNTX0dSQVBIIGFuZCBIQVZFX0RPVCB0YWdzIGFyZSBzZXQgdG8gWUVTIHRoZW4gZG94eWdl
biAKLSMgd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hv
d2luZyB0aGUgZGlyZWN0IGFuZCAKLSMgaW5kaXJlY3QgaW5oZXJpdGFuY2UgcmVsYXRpb25zLiBT
ZXR0aW5nIHRoaXMgdGFnIHRvIFlFUyB3aWxsIGZvcmNlIHRoZSAKLSMgdGhlIENMQVNTX0RJQUdS
QU1TIHRhZyB0byBOTy4KKyMgSWYgdGhlIENMQVNTX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yCisjIGVhY2ggZG9jdW1lbnRlZCBj
bGFzcyBzaG93aW5nIHRoZSBkaXJlY3QgYW5kIGluZGlyZWN0IGluaGVyaXRhbmNlIHJlbGF0aW9u
cy4KKyMgU2V0dGluZyB0aGlzIHRhZyB0byBZRVMgd2lsbCBmb3JjZSB0aGUgQ0xBU1NfRElBR1JB
TVMgdGFnIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogQ0xBU1NfR1JB
UEggICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBDT0xMQUJPUkFUSU9OX0dSQVBIIGFuZCBI
QVZFX0RPVCB0YWdzIGFyZSBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiAKLSMgd2lsbCBnZW5lcmF0
ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGlyZWN0IGFu
ZCAKLSMgaW5kaXJlY3QgaW1wbGVtZW50YXRpb24gZGVwZW5kZW5jaWVzIChpbmhlcml0YW5jZSwg
Y29udGFpbm1lbnQsIGFuZCAKLSMgY2xhc3MgcmVmZXJlbmNlcyB2YXJpYWJsZXMpIG9mIHRoZSBj
bGFzcyB3aXRoIG90aGVyIGRvY3VtZW50ZWQgY2xhc3Nlcy4KKyMgSWYgdGhlIENPTExBQk9SQVRJ
T05fR1JBUEggdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQor
IyBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGNsYXNzIHNob3dpbmcgdGhlIGRpcmVjdCBhbmQg
aW5kaXJlY3QgaW1wbGVtZW50YXRpb24KKyMgZGVwZW5kZW5jaWVzIChpbmhlcml0YW5jZSwgY29u
dGFpbm1lbnQsIGFuZCBjbGFzcyByZWZlcmVuY2VzIHZhcmlhYmxlcykgb2YgdGhlCisjIGNsYXNz
IHdpdGggb3RoZXIgZG9jdW1lbnRlZCBjbGFzc2VzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRv
IFlFUy4KIAogQ09MTEFCT1JBVElPTl9HUkFQSCAgICA9IFlFUwogCi0jIElmIHRoZSBHUk9VUF9H
UkFQSFMgYW5kIEhBVkVfRE9UIHRhZ3MgYXJlIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIAotIyB3
aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yIGdyb3Vwcywgc2hvd2luZyB0aGUgZGlyZWN0IGdyb3Vw
cyBkZXBlbmRlbmNpZXMKKyMgSWYgdGhlIEdST1VQX0dSQVBIUyB0YWcgaXMgc2V0IHRvIFlFUyB0
aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvcgorIyBncm91cHMsIHNob3dpbmcg
dGhlIGRpcmVjdCBncm91cHMgZGVwZW5kZW5jaWVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRv
IFlFUy4KIAogR1JPVVBfR1JBUEhTICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBVTUxfTE9P
SyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgaW5oZXJpdGFuY2UgYW5k
IAotIyBjb2xsYWJvcmF0aW9uIGRpYWdyYW1zIGluIGEgc3R5bGUgc2ltaWxhciB0byB0aGUgT01H
J3MgVW5pZmllZCBNb2RlbGluZyAKKyMgSWYgdGhlIFVNTF9MT09LIHRhZyBpcyBzZXQgdG8gWUVT
IGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBpbmhlcml0YW5jZSBhbmQKKyMgY29sbGFib3JhdGlvbiBk
aWFncmFtcyBpbiBhIHN0eWxlIHNpbWlsYXIgdG8gdGhlIE9NRydzIFVuaWZpZWQgTW9kZWxpbmcK
ICMgTGFuZ3VhZ2UuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIFVNTF9MT09LICAg
ICAgICAgICAgICAgPSAlVU1MX0xPT0slCiAKLSMgSWYgc2V0IHRvIFlFUywgdGhlIGluaGVyaXRh
bmNlIGFuZCBjb2xsYWJvcmF0aW9uIGdyYXBocyB3aWxsIHNob3cgdGhlIAotIyByZWxhdGlvbnMg
YmV0d2VlbiB0ZW1wbGF0ZXMgYW5kIHRoZWlyIGluc3RhbmNlcy4KKyMgSWYgdGhlIFVNTF9MT09L
IHRhZyBpcyBlbmFibGVkLCB0aGUgZmllbGRzIGFuZCBtZXRob2RzIGFyZSBzaG93biBpbnNpZGUg
dGhlCisjIGNsYXNzIG5vZGUuIElmIHRoZXJlIGFyZSBtYW55IGZpZWxkcyBvciBtZXRob2RzIGFu
ZCBtYW55IG5vZGVzIHRoZSBncmFwaCBtYXkKKyMgYmVjb21lIHRvbyBiaWcgdG8gYmUgdXNlZnVs
LiBUaGUgVU1MX0xJTUlUX05VTV9GSUVMRFMgdGhyZXNob2xkIGxpbWl0cyB0aGUKKyMgbnVtYmVy
IG9mIGl0ZW1zIGZvciBlYWNoIHR5cGUgdG8gbWFrZSB0aGUgc2l6ZSBtb3JlIG1hbmFnZWFibGUu
IFNldCB0aGlzIHRvIDAKKyMgZm9yIG5vIGxpbWl0LiBOb3RlIHRoYXQgdGhlIHRocmVzaG9sZCBt
YXkgYmUgZXhjZWVkZWQgYnkgNTAlIGJlZm9yZSB0aGUgbGltaXQKKyMgaXMgZW5mb3JjZWQuIFNv
IHdoZW4geW91IHNldCB0aGUgdGhyZXNob2xkIHRvIDEwLCB1cCB0byAxNSBmaWVsZHMgbWF5IGFw
cGVhciwKKyMgYnV0IGlmIHRoZSBudW1iZXIgZXhjZWVkcyAxNSwgdGhlIHRvdGFsIGFtb3VudCBv
ZiBmaWVsZHMgc2hvd24gaXMgbGltaXRlZCB0bworIyAxMC4KKyMgTWluaW11bSB2YWx1ZTogMCwg
bWF4aW11bSB2YWx1ZTogMTAwLCBkZWZhdWx0IHZhbHVlOiAxMC4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK1VNTF9MSU1JVF9OVU1f
RklFTERTICAgPSAxMAorCisjIElmIHRoZSBURU1QTEFURV9SRUxBVElPTlMgdGFnIGlzIHNldCB0
byBZRVMgdGhlbiB0aGUgaW5oZXJpdGFuY2UgYW5kCisjIGNvbGxhYm9yYXRpb24gZ3JhcGhzIHdp
bGwgc2hvdyB0aGUgcmVsYXRpb25zIGJldHdlZW4gdGVtcGxhdGVzIGFuZCB0aGVpcgorIyBpbnN0
YW5jZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIFRFTVBMQVRFX1JFTEFUSU9O
UyAgICAgPSBZRVMKIAotIyBJZiB0aGUgRU5BQkxFX1BSRVBST0NFU1NJTkcsIFNFQVJDSF9JTkNM
VURFUywgSU5DTFVERV9HUkFQSCwgYW5kIEhBVkVfRE9UIAotIyB0YWdzIGFyZSBzZXQgdG8gWUVT
IHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yIGVhY2ggZG9jdW1lbnRlZCAK
LSMgZmlsZSBzaG93aW5nIHRoZSBkaXJlY3QgYW5kIGluZGlyZWN0IGluY2x1ZGUgZGVwZW5kZW5j
aWVzIG9mIHRoZSBmaWxlIHdpdGggCi0jIG90aGVyIGRvY3VtZW50ZWQgZmlsZXMuCisjIElmIHRo
ZSBJTkNMVURFX0dSQVBILCBFTkFCTEVfUFJFUFJPQ0VTU0lORyBhbmQgU0VBUkNIX0lOQ0xVREVT
IHRhZ3MgYXJlIHNldCB0bworIyBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBncmFw
aCBmb3IgZWFjaCBkb2N1bWVudGVkIGZpbGUgc2hvd2luZyB0aGUKKyMgZGlyZWN0IGFuZCBpbmRp
cmVjdCBpbmNsdWRlIGRlcGVuZGVuY2llcyBvZiB0aGUgZmlsZSB3aXRoIG90aGVyIGRvY3VtZW50
ZWQKKyMgZmlsZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBJTkNMVURFX0dS
QVBIICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIEVOQUJMRV9QUkVQUk9DRVNTSU5HLCBTRUFS
Q0hfSU5DTFVERVMsIElOQ0xVREVEX0JZX0dSQVBILCBhbmQgCi0jIEhBVkVfRE9UIHRhZ3MgYXJl
IHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IgZWFjaCAK
LSMgZG9jdW1lbnRlZCBoZWFkZXIgZmlsZSBzaG93aW5nIHRoZSBkb2N1bWVudGVkIGZpbGVzIHRo
YXQgZGlyZWN0bHkgb3IgCi0jIGluZGlyZWN0bHkgaW5jbHVkZSB0aGlzIGZpbGUuCisjIElmIHRo
ZSBJTkNMVURFRF9CWV9HUkFQSCwgRU5BQkxFX1BSRVBST0NFU1NJTkcgYW5kIFNFQVJDSF9JTkNM
VURFUyB0YWdzIGFyZQorIyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEg
Z3JhcGggZm9yIGVhY2ggZG9jdW1lbnRlZCBmaWxlIHNob3dpbmcKKyMgdGhlIGRpcmVjdCBhbmQg
aW5kaXJlY3QgaW5jbHVkZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGZpbGUgd2l0aCBvdGhlciBkb2N1
bWVudGVkCisjIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogSU5DTFVE
RURfQllfR1JBUEggICAgICA9IFlFUwogCi0jIElmIHRoZSBDQUxMX0dSQVBIIGFuZCBIQVZFX0RP
VCBvcHRpb25zIGFyZSBzZXQgdG8gWUVTIHRoZW4gCi0jIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBh
IGNhbGwgZGVwZW5kZW5jeSBncmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1bmN0aW9uIAotIyBvciBj
bGFzcyBtZXRob2QuIE5vdGUgdGhhdCBlbmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIHNpZ25pZmlj
YW50bHkgaW5jcmVhc2UgCi0jIHRoZSB0aW1lIG9mIGEgcnVuLiBTbyBpbiBtb3N0IGNhc2VzIGl0
IHdpbGwgYmUgYmV0dGVyIHRvIGVuYWJsZSBjYWxsIGdyYXBocyAKLSMgZm9yIHNlbGVjdGVkIGZ1
bmN0aW9ucyBvbmx5IHVzaW5nIHRoZSBcY2FsbGdyYXBoIGNvbW1hbmQuCisjIElmIHRoZSBDQUxM
X0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgY2Fs
bAorIyBkZXBlbmRlbmN5IGdyYXBoIGZvciBldmVyeSBnbG9iYWwgZnVuY3Rpb24gb3IgY2xhc3Mg
bWV0aG9kLgorIworIyBOb3RlIHRoYXQgZW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBzaWduaWZp
Y2FudGx5IGluY3JlYXNlIHRoZSB0aW1lIG9mIGEgcnVuLgorIyBTbyBpbiBtb3N0IGNhc2VzIGl0
IHdpbGwgYmUgYmV0dGVyIHRvIGVuYWJsZSBjYWxsIGdyYXBocyBmb3Igc2VsZWN0ZWQKKyMgZnVu
Y3Rpb25zIG9ubHkgdXNpbmcgdGhlIFxjYWxsZ3JhcGggY29tbWFuZC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1Qg
aXMgc2V0IHRvIFlFUy4KIAogQ0FMTF9HUkFQSCAgICAgICAgICAgICA9IE5PCiAKLSMgSWYgdGhl
IENBTExFUl9HUkFQSCBhbmQgSEFWRV9ET1QgdGFncyBhcmUgc2V0IHRvIFlFUyB0aGVuIAotIyBk
b3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjYWxsZXIgZGVwZW5kZW5jeSBncmFwaCBmb3IgZXZlcnkg
Z2xvYmFsIGZ1bmN0aW9uIAotIyBvciBjbGFzcyBtZXRob2QuIE5vdGUgdGhhdCBlbmFibGluZyB0
aGlzIG9wdGlvbiB3aWxsIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgCi0jIHRoZSB0aW1lIG9mIGEg
cnVuLiBTbyBpbiBtb3N0IGNhc2VzIGl0IHdpbGwgYmUgYmV0dGVyIHRvIGVuYWJsZSBjYWxsZXIg
Ci0jIGdyYXBocyBmb3Igc2VsZWN0ZWQgZnVuY3Rpb25zIG9ubHkgdXNpbmcgdGhlIFxjYWxsZXJn
cmFwaCBjb21tYW5kLgorIyBJZiB0aGUgQ0FMTEVSX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgY2FsbGVyCisjIGRlcGVuZGVuY3kgZ3JhcGggZm9y
IGV2ZXJ5IGdsb2JhbCBmdW5jdGlvbiBvciBjbGFzcyBtZXRob2QuCisjCisjIE5vdGUgdGhhdCBl
bmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgdGhlIHRpbWUg
b2YgYSBydW4uCisjIFNvIGluIG1vc3QgY2FzZXMgaXQgd2lsbCBiZSBiZXR0ZXIgdG8gZW5hYmxl
IGNhbGxlciBncmFwaHMgZm9yIHNlbGVjdGVkCisjIGZ1bmN0aW9ucyBvbmx5IHVzaW5nIHRoZSBc
Y2FsbGVyZ3JhcGggY29tbWFuZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogQ0FM
TEVSX0dSQVBIICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBHUkFQSElDQUxfSElFUkFSQ0hZ
IGFuZCBIQVZFX0RPVCB0YWdzIGFyZSBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiAKLSMgd2lsbCBn
cmFwaGljYWwgaGllcmFyY2h5IG9mIGFsbCBjbGFzc2VzIGluc3RlYWQgb2YgYSB0ZXh0dWFsIG9u
ZS4KKyMgSWYgdGhlIEdSQVBISUNBTF9ISUVSQVJDSFkgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBk
b3h5Z2VuIHdpbGwgZ3JhcGhpY2FsCisjIGhpZXJhcmNoeSBvZiBhbGwgY2xhc3NlcyBpbnN0ZWFk
IG9mIGEgdGV4dHVhbCBvbmUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBHUkFQ
SElDQUxfSElFUkFSQ0hZICAgID0gWUVTCiAKLSMgSWYgdGhlIERJUkVDVE9SWV9HUkFQSCwgU0hP
V19ESVJFQ1RPUklFUyBhbmQgSEFWRV9ET1QgdGFncyBhcmUgc2V0IHRvIFlFUyAKLSMgdGhlbiBk
b3h5Z2VuIHdpbGwgc2hvdyB0aGUgZGVwZW5kZW5jaWVzIGEgZGlyZWN0b3J5IGhhcyBvbiBvdGhl
ciBkaXJlY3RvcmllcyAKLSMgaW4gYSBncmFwaGljYWwgd2F5LiBUaGUgZGVwZW5kZW5jeSByZWxh
dGlvbnMgYXJlIGRldGVybWluZWQgYnkgdGhlICNpbmNsdWRlIAotIyByZWxhdGlvbnMgYmV0d2Vl
biB0aGUgZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzLgorIyBJZiB0aGUgRElSRUNUT1JZX0dSQVBI
IHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNob3cgdGhlCisjIGRlcGVuZGVu
Y2llcyBhIGRpcmVjdG9yeSBoYXMgb24gb3RoZXIgZGlyZWN0b3JpZXMgaW4gYSBncmFwaGljYWwg
d2F5LiBUaGUKKyMgZGVwZW5kZW5jeSByZWxhdGlvbnMgYXJlIGRldGVybWluZWQgYnkgdGhlICNp
bmNsdWRlIHJlbGF0aW9ucyBiZXR3ZWVuIHRoZQorIyBmaWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBESVJFQ1RPUllfR1JBUEggICAgICAg
ID0gWUVTCiAKLSMgVGhlIERPVF9JTUFHRV9GT1JNQVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0
aGUgaW1hZ2UgZm9ybWF0IG9mIHRoZSBpbWFnZXMgCi0jIGdlbmVyYXRlZCBieSBkb3QuIFBvc3Np
YmxlIHZhbHVlcyBhcmUgcG5nLCBqcGcsIG9yIGdpZiAKLSMgSWYgbGVmdCBibGFuayBwbmcgd2ls
bCBiZSB1c2VkLgorIyBUaGUgRE9UX0lNQUdFX0ZPUk1BVCB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0
IHRoZSBpbWFnZSBmb3JtYXQgb2YgdGhlIGltYWdlcworIyBnZW5lcmF0ZWQgYnkgZG90LgorIyBO
b3RlOiBJZiB5b3UgY2hvb3NlIHN2ZyB5b3UgbmVlZCB0byBzZXQgSFRNTF9GSUxFX0VYVEVOU0lP
TiB0byB4aHRtbCBpbiBvcmRlcgorIyB0byBtYWtlIHRoZSBTVkcgZmlsZXMgdmlzaWJsZSBpbiBJ
RSA5KyAob3RoZXIgYnJvd3NlcnMgZG8gbm90IGhhdmUgdGhpcworIyByZXF1aXJlbWVudCkuCisj
IFBvc3NpYmxlIHZhbHVlcyBhcmU6IHBuZywganBnLCBnaWYgYW5kIHN2Zy4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IHBuZy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVf
RE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9JTUFHRV9GT1JNQVQgICAgICAgPSBwbmcKIAotIyBU
aGUgdGFnIERPVF9QQVRIIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHBhdGggd2hlcmUgdGhl
IGRvdCB0b29sIGNhbiBiZSAKKyMgSWYgRE9UX0lNQUdFX0ZPUk1BVCBpcyBzZXQgdG8gc3ZnLCB0
aGVuIHRoaXMgb3B0aW9uIGNhbiBiZSBzZXQgdG8gWUVTIHRvCisjIGVuYWJsZSBnZW5lcmF0aW9u
IG9mIGludGVyYWN0aXZlIFNWRyBpbWFnZXMgdGhhdCBhbGxvdyB6b29taW5nIGFuZCBwYW5uaW5n
LgorIworIyBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyBhIG1vZGVybiBicm93c2VyIG90aGVyIHRo
YW4gSW50ZXJuZXQgRXhwbG9yZXIuIFRlc3RlZAorIyBhbmQgd29ya2luZyBhcmUgRmlyZWZveCwg
Q2hyb21lLCBTYWZhcmksIGFuZCBPcGVyYS4KKyMgTm90ZTogRm9yIElFIDkrIHlvdSBuZWVkIHRv
IHNldCBIVE1MX0ZJTEVfRVhURU5TSU9OIHRvIHhodG1sIGluIG9yZGVyIHRvIG1ha2UKKyMgdGhl
IFNWRyBmaWxlcyB2aXNpYmxlLiBPbGRlciB2ZXJzaW9ucyBvZiBJRSBkbyBub3QgaGF2ZSBTVkcg
c3VwcG9ydC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KKworSU5URVJBQ1RJVkVfU1ZH
ICAgICAgICA9IE5PCisKKyMgVGhlIERPVF9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5
IHRoZSBwYXRoIHdoZXJlIHRoZSBkb3QgdG9vbCBjYW4gYmUKICMgZm91bmQuIElmIGxlZnQgYmxh
bmssIGl0IGlzIGFzc3VtZWQgdGhlIGRvdCB0b29sIGNhbiBiZSBmb3VuZCBpbiB0aGUgcGF0aC4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CiAKIERPVF9QQVRIICAgICAgICAgICAgICAgPSAlRE9UX1BBVEglCiAKLSMgVGhlIERPVEZJTEVf
RElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0
aGF0IAotIyBjb250YWluIGRvdCBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1l
bnRhdGlvbiAoc2VlIHRoZSAKLSMgXGRvdGZpbGUgY29tbWFuZCkuCisjIFRoZSBET1RGSUxFX0RJ
UlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhh
dAorIyBjb250YWluIGRvdCBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRh
dGlvbiAoc2VlIHRoZSBcZG90ZmlsZQorIyBjb21tYW5kKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0RPVEZJTEVfRElSUyAgICAg
ICAgICAgPQorCisjIFRoZSBNU0NGSUxFX0RJUlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkg
b25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250YWluIG1zYyBmaWxlcyB0aGF0IGFy
ZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIHRoZSBcbXNjZmlsZQorIyBjb21t
YW5kKS4KIAotRE9URklMRV9ESVJTICAgICAgICAgICA9IAorTVNDRklMRV9ESVJTICAgICAgICAg
ICA9CiAKLSMgVGhlIERPVF9HUkFQSF9NQVhfTk9ERVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0
aGUgbWF4aW11bSBudW1iZXIgb2YgCi0jIG5vZGVzIHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUg
Z3JhcGguIElmIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBncmFwaCAKLSMgYmVjb21lcyBsYXJn
ZXIgdGhhbiB0aGlzIHZhbHVlLCBkb3h5Z2VuIHdpbGwgdHJ1bmNhdGUgdGhlIGdyYXBoLCB3aGlj
aCBpcyAKLSMgdmlzdWFsaXplZCBieSByZXByZXNlbnRpbmcgYSBub2RlIGFzIGEgcmVkIGJveC4g
Tm90ZSB0aGF0IGRveHlnZW4gaWYgdGhlIAotIyBudW1iZXIgb2YgZGlyZWN0IGNoaWxkcmVuIG9m
IHRoZSByb290IG5vZGUgaW4gYSBncmFwaCBpcyBhbHJlYWR5IGxhcmdlciB0aGFuIAotIyBET1Rf
R1JBUEhfTUFYX05PREVTIHRoZW4gdGhlIGdyYXBoIHdpbGwgbm90IGJlIHNob3duIGF0IGFsbC4g
QWxzbyBub3RlIAotIyB0aGF0IHRoZSBzaXplIG9mIGEgZ3JhcGggY2FuIGJlIGZ1cnRoZXIgcmVz
dHJpY3RlZCBieSBNQVhfRE9UX0dSQVBIX0RFUFRILgorIyBUaGUgRE9UX0dSQVBIX01BWF9OT0RF
UyB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBub2RlcworIyB0
aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIGdyYXBoLiBJZiB0aGUgbnVtYmVyIG9mIG5vZGVzIGlu
IGEgZ3JhcGggYmVjb21lcworIyBsYXJnZXIgdGhhbiB0aGlzIHZhbHVlLCBkb3h5Z2VuIHdpbGwg
dHJ1bmNhdGUgdGhlIGdyYXBoLCB3aGljaCBpcyB2aXN1YWxpemVkCisjIGJ5IHJlcHJlc2VudGlu
ZyBhIG5vZGUgYXMgYSByZWQgYm94LiBOb3RlIHRoYXQgZG94eWdlbiBpZiB0aGUgbnVtYmVyIG9m
IGRpcmVjdAorIyBjaGlsZHJlbiBvZiB0aGUgcm9vdCBub2RlIGluIGEgZ3JhcGggaXMgYWxyZWFk
eSBsYXJnZXIgdGhhbgorIyBET1RfR1JBUEhfTUFYX05PREVTIHRoZW4gdGhlIGdyYXBoIHdpbGwg
bm90IGJlIHNob3duIGF0IGFsbC4gQWxzbyBub3RlIHRoYXQKKyMgdGhlIHNpemUgb2YgYSBncmFw
aCBjYW4gYmUgZnVydGhlciByZXN0cmljdGVkIGJ5IE1BWF9ET1RfR1JBUEhfREVQVEguCisjIE1p
bmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMDAwLCBkZWZhdWx0IHZhbHVlOiA1MC4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CiAKIERPVF9HUkFQSF9NQVhfTk9ERVMgICAgPSA1MAogCi0jIFRoZSBNQVhfRE9UX0dSQVBIX0RF
UFRIIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG1heGltdW0gZGVwdGggb2YgdGhlIAotIyBn
cmFwaHMgZ2VuZXJhdGVkIGJ5IGRvdC4gQSBkZXB0aCB2YWx1ZSBvZiAzIG1lYW5zIHRoYXQgb25s
eSBub2RlcyByZWFjaGFibGUgCi0jIGZyb20gdGhlIHJvb3QgYnkgZm9sbG93aW5nIGEgcGF0aCB2
aWEgYXQgbW9zdCAzIGVkZ2VzIHdpbGwgYmUgc2hvd24uIE5vZGVzIAotIyB0aGF0IGxheSBmdXJ0
aGVyIGZyb20gdGhlIHJvb3Qgbm9kZSB3aWxsIGJlIG9taXR0ZWQuIE5vdGUgdGhhdCBzZXR0aW5n
IHRoaXMgCi0jIG9wdGlvbiB0byAxIG9yIDIgbWF5IGdyZWF0bHkgcmVkdWNlIHRoZSBjb21wdXRh
dGlvbiB0aW1lIG5lZWRlZCBmb3IgbGFyZ2UgCi0jIGNvZGUgYmFzZXMuIEFsc28gbm90ZSB0aGF0
IHRoZSBzaXplIG9mIGEgZ3JhcGggY2FuIGJlIGZ1cnRoZXIgcmVzdHJpY3RlZCBieSAKKyMgVGhl
IE1BWF9ET1RfR1JBUEhfREVQVEggdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWF4aW11bSBk
ZXB0aCBvZiB0aGUgZ3JhcGhzCisjIGdlbmVyYXRlZCBieSBkb3QuIEEgZGVwdGggdmFsdWUgb2Yg
MyBtZWFucyB0aGF0IG9ubHkgbm9kZXMgcmVhY2hhYmxlIGZyb20gdGhlCisjIHJvb3QgYnkgZm9s
bG93aW5nIGEgcGF0aCB2aWEgYXQgbW9zdCAzIGVkZ2VzIHdpbGwgYmUgc2hvd24uIE5vZGVzIHRo
YXQgbGF5CisjIGZ1cnRoZXIgZnJvbSB0aGUgcm9vdCBub2RlIHdpbGwgYmUgb21pdHRlZC4gTm90
ZSB0aGF0IHNldHRpbmcgdGhpcyBvcHRpb24gdG8gMQorIyBvciAyIG1heSBncmVhdGx5IHJlZHVj
ZSB0aGUgY29tcHV0YXRpb24gdGltZSBuZWVkZWQgZm9yIGxhcmdlIGNvZGUgYmFzZXMuIEFsc28K
KyMgbm90ZSB0aGF0IHRoZSBzaXplIG9mIGEgZ3JhcGggY2FuIGJlIGZ1cnRoZXIgcmVzdHJpY3Rl
ZCBieQogIyBET1RfR1JBUEhfTUFYX05PREVTLiBVc2luZyBhIGRlcHRoIG9mIDAgbWVhbnMgbm8g
ZGVwdGggcmVzdHJpY3Rpb24uCisjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEw
MDAsIGRlZmF1bHQgdmFsdWU6IDAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBI
QVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBNQVhfRE9UX0dSQVBIX0RFUFRIICAgID0gMTAwMAog
Ci0jIFNldCB0aGUgRE9UX1RSQU5TUEFSRU5UIHRhZyB0byBZRVMgdG8gZ2VuZXJhdGUgaW1hZ2Vz
IHdpdGggYSB0cmFuc3BhcmVudCAKLSMgYmFja2dyb3VuZC4gVGhpcyBpcyBkaXNhYmxlZCBieSBk
ZWZhdWx0LCBiZWNhdXNlIGRvdCBvbiBXaW5kb3dzIGRvZXMgbm90IAotIyBzZWVtIHRvIHN1cHBv
cnQgdGhpcyBvdXQgb2YgdGhlIGJveC4gV2FybmluZzogRGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9y
bSB1c2VkLCAKLSMgZW5hYmxpbmcgdGhpcyBvcHRpb24gbWF5IGxlYWQgdG8gYmFkbHkgYW50aS1h
bGlhc2VkIGxhYmVscyBvbiB0aGUgZWRnZXMgb2YgCi0jIGEgZ3JhcGggKGkuZS4gdGhleSBiZWNv
bWUgaGFyZCB0byByZWFkKS4KKyMgU2V0IHRoZSBET1RfVFJBTlNQQVJFTlQgdGFnIHRvIFlFUyB0
byBnZW5lcmF0ZSBpbWFnZXMgd2l0aCBhIHRyYW5zcGFyZW50CisjIGJhY2tncm91bmQuIFRoaXMg
aXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwgYmVjYXVzZSBkb3Qgb24gV2luZG93cyBkb2VzIG5vdCBz
ZWVtCisjIHRvIHN1cHBvcnQgdGhpcyBvdXQgb2YgdGhlIGJveC4KKyMKKyMgV2FybmluZzogRGVw
ZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSB1c2VkLCBlbmFibGluZyB0aGlzIG9wdGlvbiBtYXkgbGVh
ZCB0bworIyBiYWRseSBhbnRpLWFsaWFzZWQgbGFiZWxzIG9uIHRoZSBlZGdlcyBvZiBhIGdyYXBo
IChpLmUuIHRoZXkgYmVjb21lIGhhcmQgdG8KKyMgcmVhZCkuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNl
dCB0byBZRVMuCiAKIERPVF9UUkFOU1BBUkVOVCAgICAgICAgPSBOTwogCi0jIFNldCB0aGUgRE9U
X01VTFRJX1RBUkdFVFMgdGFnIHRvIFlFUyBhbGxvdyBkb3QgdG8gZ2VuZXJhdGUgbXVsdGlwbGUg
b3V0cHV0IAotIyBmaWxlcyBpbiBvbmUgcnVuIChpLmUuIG11bHRpcGxlIC1vIGFuZCAtVCBvcHRp
b25zIG9uIHRoZSBjb21tYW5kIGxpbmUpLiBUaGlzIAotIyBtYWtlcyBkb3QgcnVuIGZhc3Rlciwg
YnV0IHNpbmNlIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgZG90ICg+MS44LjEwKSAKLSMgc3VwcG9y
dCB0aGlzLCB0aGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyMgU2V0IHRoZSBE
T1RfTVVMVElfVEFSR0VUUyB0YWcgdG8gWUVTIGFsbG93IGRvdCB0byBnZW5lcmF0ZSBtdWx0aXBs
ZSBvdXRwdXQKKyMgZmlsZXMgaW4gb25lIHJ1biAoaS5lLiBtdWx0aXBsZSAtbyBhbmQgLVQgb3B0
aW9ucyBvbiB0aGUgY29tbWFuZCBsaW5lKS4gVGhpcworIyBtYWtlcyBkb3QgcnVuIGZhc3Rlciwg
YnV0IHNpbmNlIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgZG90ICg+MS44LjEwKSBzdXBwb3J0Cisj
IHRoaXMsIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RP
VCBpcyBzZXQgdG8gWUVTLgogCiBET1RfTVVMVElfVEFSR0VUUyAgICAgID0gWUVTCiAKLSMgSWYg
dGhlIEdFTkVSQVRFX0xFR0VORCB0YWcgaXMgc2V0IHRvIFlFUyAodGhlIGRlZmF1bHQpIERveHln
ZW4gd2lsbCAKLSMgZ2VuZXJhdGUgYSBsZWdlbmQgcGFnZSBleHBsYWluaW5nIHRoZSBtZWFuaW5n
IG9mIHRoZSB2YXJpb3VzIGJveGVzIGFuZCAKLSMgYXJyb3dzIGluIHRoZSBkb3QgZ2VuZXJhdGVk
IGdyYXBocy4KKyMgSWYgdGhlIEdFTkVSQVRFX0xFR0VORCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5
Z2VuIHdpbGwgZ2VuZXJhdGUgYSBsZWdlbmQgcGFnZQorIyBleHBsYWluaW5nIHRoZSBtZWFuaW5n
IG9mIHRoZSB2YXJpb3VzIGJveGVzIGFuZCBhcnJvd3MgaW4gdGhlIGRvdCBnZW5lcmF0ZWQKKyMg
Z3JhcGhzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogR0VORVJBVEVfTEVHRU5E
ICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBET1RfQ0xFQU5VUCB0YWcgaXMgc2V0IHRvIFlFUyAo
dGhlIGRlZmF1bHQpIERveHlnZW4gd2lsbCAKLSMgcmVtb3ZlIHRoZSBpbnRlcm1lZGlhdGUgZG90
IGZpbGVzIHRoYXQgYXJlIHVzZWQgdG8gZ2VuZXJhdGUgCi0jIHRoZSB2YXJpb3VzIGdyYXBocy4K
KyMgSWYgdGhlIERPVF9DTEVBTlVQIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCByZW1v
dmUgdGhlIGludGVybWVkaWF0ZSBkb3QKKyMgZmlsZXMgdGhhdCBhcmUgdXNlZCB0byBnZW5lcmF0
ZSB0aGUgdmFyaW91cyBncmFwaHMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBE
T1RfQ0xFQU5VUCAgICAgICAgICAgID0gWUVTCi0KLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgT3B0
aW9ucyByZWxhdGVkIHRvIHRoZSBzZWFyY2ggZW5naW5lCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LSMgVGhlIFNFQVJDSEVOR0lORSB0YWcgc3BlY2lmaWVzIHdoZXRoZXIgb3Igbm90IGEgc2VhcmNo
IGVuZ2luZSBzaG91bGQgYmUgCi0jIHVzZWQuIElmIHNldCB0byBOTyB0aGUgdmFsdWVzIG9mIGFs
bCB0YWdzIGJlbG93IHRoaXMgb25lIHdpbGwgYmUgaWdub3JlZC4KLQotU0VBUkNIRU5HSU5FICAg
ICAgICAgICA9IE5PCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9mb290ZXIuaHRtbCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9j
L2Zvb3Rlci5odG1sCmluZGV4IGE2MWQ5NTI4YTE2MTU5ZmI3YzBjMDY3Zjc0Mzk1NGQxOTE3N2Qx
MTMuLmEyNGJmMmI5YjQ3ZTk5OTIyNTI4OWZlOGI2MWIyMGViOWNmYjVjZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvZG9jL2Zvb3Rlci5odG1sCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2Zvb3Rlci5odG1sCkBAIC0xLDIz
ICsxLDIxIEBACi08aHI+Ci08dGFibGUgd2lkdGg9IjEwMCUiPgotICA8dHI+Ci0gICAgPHRkIHdp
ZHRoPSIxMCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249ImNlbnRlciI+Ci0gICAgICA8YSBocmVmPSJo
dHRwOi8vc291cmNlZm9yZ2UubmV0Ij4gCi0gICAgICA8aW1nCi0gICAgICBzcmM9Imh0dHA6Ly9z
b3VyY2Vmb3JnZS5uZXQvc2Zsb2dvLnBocD9ncm91cF9pZD0xNDQ0NDYiCi0gICAgICB3aWR0aD0i
ODgiIGhlaWdodD0iMzEiIGJvcmRlcj0iMCIgYWx0PSJTb3VyY2VGb3JnZSBMb2dvIj48L2E+Ci0g
ICAgPC90ZD4KLSAgICA8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0iY2VudGVy
Ij4KLSAgICAgIGhvc3RzIHRoaXMgc2l0ZS4KLSAgICA8L3RkPgotICAgIDx0ZD4KLSAgICA8L3Rk
PgotICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iY2VudGVyIj4KLSAgICAgIFNlbmQgY29t
bWVudHMgdG86PGJyPgotICAgICAgPGEgaHJlZj0ibWFpbHRvOmpzb25jcHAtZGV2ZWxAbGlzdHMu
c291cmNlZm9yZ2UubmV0Ij5Kc29uLWNwcCBEZXZlbG9wZXJzPC9hPgotICAgIDwvdGQ+Ci0gIDwv
dHI+Ci08L3RhYmxlPgotCi08L2JvZHk+IAorPCEtLSBIVE1MIGZvb3RlciBmb3IgZG94eWdlbiAx
LjguMTMtLT4KKzwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+Cis8IS0tQkVHSU4gR0VORVJBVEVf
VFJFRVZJRVctLT4KKzxkaXYgaWQ9Im5hdi1wYXRoIiBjbGFzcz0ibmF2cGF0aCI+PCEtLSBpZCBp
cyBuZWVkZWQgZm9yIHRyZWV2aWV3IGZ1bmN0aW9uISAtLT4KKyAgPHVsPgorICAgICRuYXZwYXRo
CisgICAgPGxpIGNsYXNzPSJmb290ZXIiPiRnZW5lcmF0ZWRieQorICAgIDxhIGhyZWY9Imh0dHA6
Ly93d3cuZG94eWdlbi5vcmcvaW5kZXguaHRtbCI+CisgICAgPGltZyBjbGFzcz0iZm9vdGVyIiBz
cmM9IiRyZWxwYXRoXmRveHlnZW4ucG5nIiBhbHQ9ImRveHlnZW4iLz48L2E+ICRkb3h5Z2VudmVy
c2lvbiA8L2xpPgorICA8L3VsPgorPC9kaXY+Cis8IS0tRU5EIEdFTkVSQVRFX1RSRUVWSUVXLS0+
Cis8IS0tQkVHSU4gIUdFTkVSQVRFX1RSRUVWSUVXLS0+Cis8aHIgY2xhc3M9ImZvb3RlciIvPjxh
ZGRyZXNzIGNsYXNzPSJmb290ZXIiPjxzbWFsbD4KKyRnZW5lcmF0ZWRieSAmIzE2MDs8YSBocmVm
PSJodHRwOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwiPgorPGltZyBjbGFzcz0iZm9vdGVy
IiBzcmM9IiRyZWxwYXRoXmRveHlnZW4ucG5nIiBhbHQ9ImRveHlnZW4iLz4KKzwvYT4gJGRveHln
ZW52ZXJzaW9uCis8L3NtYWxsPjwvYWRkcmVzcz4KKzwhLS1FTkQgIUdFTkVSQVRFX1RSRUVWSUVX
LS0+Cis8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9oZWFkZXIuaHRtbCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvZG9jL2hlYWRlci5odG1sCmluZGV4IDFhNmFkNjEyMGFlY2Y4MWI4Y2U3YzIyNWRkZGQ3
NDAxZmNjMmE4NTYuLmYwYjkzZTA4NGQ1YmU2ZDEwZTViODk5MjQyMGVkNjcwMDRhNDI3YjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvZG9jL2hlYWRlci5odG1sCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL2hlYWRlci5odG1s
CkBAIC0xLDI0ICsxLDY0IEBACi08aHRtbD4KKzwhLS0gSFRNTCBoZWFkZXIgZm9yIGRveHlnZW4g
MS44LjEzLS0+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBU
cmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEt
dHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+CiA8aGVhZD4KLTx0aXRsZT4KLUpzb25DcHAgLSBKU09OIGRhdGEgZm9ybWF0IG1hbmlw
dWxhdGlvbiBsaWJyYXJ5Ci08L3RpdGxlPgotPGxpbmsgaHJlZj0iZG94eWdlbi5jc3MiIHJlbD0i
c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgotPGxpbmsgaHJlZj0idGFicy5jc3MiIHJlbD0i
c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L3hodG1sO2NoYXJzZXQ9VVRGLTgiLz4KKzxtZXRhIGh0dHAtZXF1
aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9OSIvPgorPG1ldGEgbmFtZT0iZ2VuZXJh
dG9yIiBjb250ZW50PSJEb3h5Z2VuICRkb3h5Z2VudmVyc2lvbiIvPgorPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+Cis8
bGluayBocmVmPSIkcmVscGF0aF50YWJzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJHJlbHBhdGheanF1
ZXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IiRy
ZWxwYXRoXmR5bnNlY3Rpb25zLmpzIj48L3NjcmlwdD4KKyR0cmVldmlldworJHNlYXJjaAorJG1h
dGhqYXgKKzxsaW5rIGhyZWY9IiRyZWxwYXRoXiRzdHlsZXNoZWV0IiByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiAvPgorJGV4dHJhc3R5bGVzaGVldAogPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJ0b3AiPjwhLS0gZG8gbm90IHJlbW92ZSB0aGlzIGRpdiwgaXQgaXMgY2xvc2VkIGJ5
IGRveHlnZW4hIC0tPgogCi08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4gCis8IS0tQkVHSU4gVElU
TEVBUkVBLS0+Cis8ZGl2IGlkPSJ0aXRsZWFyZWEiPgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBj
ZWxscGFkZGluZz0iMCI+CisgPHRib2R5PgorIDx0ciBzdHlsZT0iaGVpZ2h0OiA1NnB4OyI+Cisg
IDwhLS1CRUdJTiBQUk9KRUNUX0xPR08tLT4KKyAgPHRkIGlkPSJwcm9qZWN0bG9nbyI+PGltZyBh
bHQ9IkxvZ28iIHNyYz0iJHJlbHBhdGheJHByb2plY3Rsb2dvIi8+PC90ZD4KKyAgPCEtLUVORCBQ
Uk9KRUNUX0xPR08tLT4KKyAgPCEtLUJFR0lOIERJU0FCTEVfSU5ERVgtLT4KKyAgIDwhLS1CRUdJ
TiBTRUFSQ0hFTkdJTkUtLT4KKyAgIDx0ZD4kc2VhcmNoYm94PC90ZD4KKyAgIDwhLS1FTkQgU0VB
UkNIRU5HSU5FLS0+CisgIDwhLS1FTkQgRElTQUJMRV9JTkRFWC0tPgorIDwvdHI+CisgPC90Ym9k
eT4KKzwvdGFibGU+Cis8L2Rpdj4KKzwhLS1FTkQgVElUTEVBUkVBLS0+Cis8Ym9keSBiZ2NvbG9y
PSIjZmZmZmZmIj4KIDx0YWJsZSB3aWR0aD0iMTAwJSI+CiAgIDx0cj4KLSAgICA8dGQgd2lkdGg9
IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0iY2VudGVyIj4KLSAgICAgIDxhIGhyZWY9Imh0dHA6
Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvanNvbmNwcC8iPgorICAgIDx0ZCB3aWR0aD0iMzAl
IiBhbGlnbj0ibGVmdCIgdmFsaWduPSJjZW50ZXIiPgorICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9n
aXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcCI+CiAgICAgICBKc29uQ3BwIHBy
b2plY3QgcGFnZQogICAgICAgPC9hPgogICAgIDwvdGQ+Ci0gICAgPHRkIHdpZHRoPSI0MCUiIGFs
aWduPSJyaWdodCIgdmFsaWduPSJjZW50ZXIiPgotICAgICAgPGEgaHJlZj0iaHR0cDovL2pzb25j
cHAuc291cmNlZm9yZ2UubmV0Ij5Kc29uQ3BwIGhvbWUgcGFnZTwvYT4KKyAgICA8dGQgd2lkdGg9
IjIwJSIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJjZW50ZXIiPgorICAgICAgPGEgaHJlZj0iaGll
cmFyY2h5Lmh0bWwiPgorICAgICAgICBDbGFzc2VzCisgICAgICA8L2E+CisgICAgPC90ZD4KKyAg
ICA8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJjZW50ZXIiPgorICAgICAg
PGEgaHJlZj0ibmFtZXNwYWNlX2pzb24uaHRtbCI+CisgICAgICAgIE5hbWVzcGFjZQorICAgICAg
PC9hPgorICAgIDwvdGQ+CisgICAgPHRkIHdpZHRoPSIzMCUiIGFsaWduPSJyaWdodCIgdmFsaWdu
PSJjZW50ZXIiPgorICAgICAgPGEgaHJlZj0iaHR0cDovL29wZW4tc291cmNlLXBhcnNlcnMuZ2l0
aHViLmlvL2pzb25jcHAtZG9jcy9kb3h5Z2VuLyI+SnNvbkNwcCBob21lIHBhZ2U8L2E+CiAgICAg
PC90ZD4KICAgPC90cj4KIDwvdGFibGU+CiAKIDxocj4KKzwhLS0gZW5kIGhlYWRlciBwYXJ0IC0t
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9kb2MvanNvbmNwcC5kb3ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9qc29uY3BwLmRv
eAppbmRleCA5N2NjMTA4ZDMzMWIxYjExZDAwZGY4OGExNmIyMmRhZTA1M2UxZWY5Li40N2VmYzhh
MzU3NmNmNDU0YjVjYWYyNTU4MmEzODRjZDUwYjg1MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9q
c29uY3BwLmRveAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9qc29uY3BwLmRveApAQCAtNCwxMSArNCwyMSBAQAog
CiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnLyI+SlNPTiAoSmF2YVNjcmlwdCBPYmplY3Qg
Tm90YXRpb24pPC9hPgogIGlzIGEgbGlnaHR3ZWlnaHQgZGF0YS1pbnRlcmNoYW5nZSBmb3JtYXQu
IAotSXQgY2FuIHJlcHJlc2VudCBpbnRlZ2VyLCByZWFsIG51bWJlciwgc3RyaW5nLCBhbiBvcmRl
cmVkIHNlcXVlbmNlIG9mIHZhbHVlLCBhbmQKLWEgY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBh
aXJzLgogCiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgSlNPTiBkYXRhOgogXHZlcmJhdGltCit7Cisg
ICAgImVuY29kaW5nIiA6ICJVVEYtOCIsCisgICAgInBsdWctaW5zIiA6IFsKKyAgICAgICAgInB5
dGhvbiIsCisgICAgICAgICJjKysiLAorICAgICAgICAicnVieSIKKyAgICAgICAgXSwKKyAgICAi
aW5kZW50IiA6IHsgImxlbmd0aCIgOiAzLCAidXNlX3NwYWNlIjogdHJ1ZSB9Cit9CitcZW5kdmVy
YmF0aW0KKzxiPkpzb25DcHA8L2I+IHN1cHBvcnRzIGNvbW1lbnRzIGFzIDxpPm1ldGEtZGF0YTwv
aT46CitcY29kZQogLy8gQ29uZmlndXJhdGlvbiBvcHRpb25zCiB7CiAgICAgLy8gRGVmYXVsdCBl
bmNvZGluZyBmb3IgdGV4dApAQCAtMTcsMjEgKzI3LDIyIEBAIEhlcmUgaXMgYW4gZXhhbXBsZSBv
ZiBKU09OIGRhdGE6CiAgICAgLy8gUGx1Zy1pbnMgbG9hZGVkIGF0IHN0YXJ0LXVwCiAgICAgInBs
dWctaW5zIiA6IFsKICAgICAgICAgInB5dGhvbiIsCi0gICAgICAgICJjKysiLAorICAgICAgICAi
YysrIiwgIC8vIHRyYWlsaW5nIGNvbW1lbnQKICAgICAgICAgInJ1YnkiCiAgICAgICAgIF0sCiAg
ICAgICAgIAogICAgIC8vIFRhYiBpbmRlbnQgc2l6ZQotICAgICJpbmRlbnQiIDogeyAibGVuZ3Ro
IiA6IDMsICJ1c2Vfc3BhY2UiOiB0cnVlIH0KKyAgICAvLyAobXVsdGktbGluZSBjb21tZW50KQor
ICAgICJpbmRlbnQiIDogeyAvKmVtYmVkZGVkIGNvbW1lbnQqLyAibGVuZ3RoIiA6IDMsICJ1c2Vf
c3BhY2UiOiB0cnVlIH0KIH0KLVxlbmR2ZXJiYXRpbQorXGVuZGNvZGUKIAogXHNlY3Rpb24gX2Zl
YXR1cmVzIEZlYXR1cmVzCiAtIHJlYWQgYW5kIHdyaXRlIEpTT04gZG9jdW1lbnQKLS0gYXR0YWNo
IEMgYW5kIEMrKyBzdHlsZSBjb21tZW50cyB0byBlbGVtZW50IGR1cmluZyBwYXJzaW5nCistIGF0
dGFjaCBDKysgc3R5bGUgY29tbWVudHMgdG8gZWxlbWVudCBkdXJpbmcgcGFyc2luZwogLSByZXdy
aXRlIEpTT04gZG9jdW1lbnQgcHJlc2VydmluZyBvcmlnaW5hbCBjb21tZW50cwogCi1Ob3Rlczog
Q29tbWVudHMgdXNlZCB0byBiZSBzdXBwb3J0ZWQgaW4gSlNPTiBidXQgd2hlcmUgcmVtb3ZlZCBm
b3IgCitOb3RlczogQ29tbWVudHMgdXNlZCB0byBiZSBzdXBwb3J0ZWQgaW4gSlNPTiBidXQgd2Vy
ZSByZW1vdmVkIGZvcgogcG9ydGFiaWxpdHkgKEMgbGlrZSBjb21tZW50cyBhcmUgbm90IHN1cHBv
cnRlZCBpbiBQeXRob24pLiBTaW5jZQogY29tbWVudHMgYXJlIHVzZWZ1bCBpbiBjb25maWd1cmF0
aW9uL2lucHV0IGZpbGUsIHRoaXMgZmVhdHVyZSB3YXMKIHByZXNlcnZlZC4KQEAgLTM5LDg4ICs1
MCwxMTUgQEAgcHJlc2VydmVkLgogXHNlY3Rpb24gX2V4YW1wbGUgQ29kZSBleGFtcGxlCiAKIFxj
b2RlCi1Kc29uOjpWYWx1ZSByb290OyAgIC8vIHdpbGwgY29udGFpbnMgdGhlIHJvb3QgdmFsdWUg
YWZ0ZXIgcGFyc2luZy4KLUpzb246OlJlYWRlciByZWFkZXI7Ci1ib29sIHBhcnNpbmdTdWNjZXNz
ZnVsID0gcmVhZGVyLnBhcnNlKCBjb25maWdfZG9jLCByb290ICk7Ci1pZiAoICFwYXJzaW5nU3Vj
Y2Vzc2Z1bCApCi17Ci0gICAgLy8gcmVwb3J0IHRvIHRoZSB1c2VyIHRoZSBmYWlsdXJlIGFuZCB0
aGVpciBsb2NhdGlvbnMgaW4gdGhlIGRvY3VtZW50LgotICAgIHN0ZDo6Y291dCAgPDwgIkZhaWxl
ZCB0byBwYXJzZSBjb25maWd1cmF0aW9uXG4iCi0gICAgICAgICAgICAgICA8PCByZWFkZXIuZ2V0
Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOwotICAgIHJldHVybjsKLX0KK0pzb246OlZhbHVlIHJv
b3Q7ICAgLy8gJ3Jvb3QnIHdpbGwgY29udGFpbiB0aGUgcm9vdCB2YWx1ZSBhZnRlciBwYXJzaW5n
Lgorc3RkOjpjaW4gPj4gcm9vdDsKKworLy8gWW91IGNhbiBhbHNvIHJlYWQgaW50byBhIHBhcnRp
Y3VsYXIgc3ViLXZhbHVlLgorc3RkOjpjaW4gPj4gcm9vdFsic3VidHJlZSJdOwogCi0vLyBHZXQg
dGhlIHZhbHVlIG9mIHRoZSBtZW1iZXIgb2Ygcm9vdCBuYW1lZCAnZW5jb2RpbmcnLCByZXR1cm4g
J1VURi04JyBpZiB0aGVyZSBpcyBubwotLy8gc3VjaCBtZW1iZXIuCisvLyBHZXQgdGhlIHZhbHVl
IG9mIHRoZSBtZW1iZXIgb2Ygcm9vdCBuYW1lZCAnZW5jb2RpbmcnLAorLy8gYW5kIHJldHVybiAn
VVRGLTgnIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbWVtYmVyLgogc3RkOjpzdHJpbmcgZW5jb2Rpbmcg
PSByb290LmdldCgiZW5jb2RpbmciLCAiVVRGLTgiICkuYXNTdHJpbmcoKTsKLS8vIEdldCB0aGUg
dmFsdWUgb2YgdGhlIG1lbWJlciBvZiByb290IG5hbWVkICdlbmNvZGluZycsIHJldHVybiBhICdu
dWxsJyB2YWx1ZSBpZgorCisvLyBHZXQgdGhlIHZhbHVlIG9mIHRoZSBtZW1iZXIgb2Ygcm9vdCBu
YW1lZCAncGx1Zy1pbnMnOyByZXR1cm4gYSAnbnVsbCcgdmFsdWUgaWYKIC8vIHRoZXJlIGlzIG5v
IHN1Y2ggbWVtYmVyLgogY29uc3QgSnNvbjo6VmFsdWUgcGx1Z2lucyA9IHJvb3RbInBsdWctaW5z
Il07Ci1mb3IgKCBpbnQgaW5kZXggPSAwOyBpbmRleCA8IHBsdWdpbnMuc2l6ZSgpOyArK2luZGV4
ICkgIC8vIEl0ZXJhdGVzIG92ZXIgdGhlIHNlcXVlbmNlIGVsZW1lbnRzLgorCisvLyBJdGVyYXRl
IG92ZXIgdGhlIHNlcXVlbmNlIGVsZW1lbnRzLgorZm9yICggaW50IGluZGV4ID0gMDsgaW5kZXgg
PCBwbHVnaW5zLnNpemUoKTsgKytpbmRleCApCiAgICBsb2FkUGx1Z0luKCBwbHVnaW5zW2luZGV4
XS5hc1N0cmluZygpICk7CiAgICAKLXNldEluZGVudExlbmd0aCggcm9vdFsiaW5kZW50Il0uZ2V0
KCJsZW5ndGgiLCAzKS5hc0ludCgpICk7Ci1zZXRJbmRlbnRVc2VTcGFjZSggcm9vdFsiaW5kZW50
Il0uZ2V0KCJ1c2Vfc3BhY2UiLCB0cnVlKS5hc0Jvb2woKSApOworLy8gVHJ5IG90aGVyIGRhdGF0
eXBlcy4gU29tZSBhcmUgYXV0by1jb252ZXJ0aWJsZSB0byBvdGhlcnMuCitmb286OnNldEluZGVu
dExlbmd0aCggcm9vdFsiaW5kZW50Il0uZ2V0KCJsZW5ndGgiLCAzKS5hc0ludCgpICk7Citmb286
OnNldEluZGVudFVzZVNwYWNlKCByb290WyJpbmRlbnQiXS5nZXQoInVzZV9zcGFjZSIsIHRydWUp
LmFzQm9vbCgpICk7CiAKLS8vIC4uLgotLy8gQXQgYXBwbGljYXRpb24gc2h1dGRvd24gdG8gbWFr
ZSB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZG9jdW1lbnQ6Ci0vLyBTaW5jZSBKc29uOjpWYWx1ZSBo
YXMgaW1wbGljaXQgY29uc3RydWN0b3IgZm9yIGFsbCB2YWx1ZSB0eXBlcywgaXQgaXMgbm90Ci0v
LyBuZWNlc3NhcnkgdG8gZXhwbGljaXRseSBjb25zdHJ1Y3QgdGhlIEpzb246OlZhbHVlIG9iamVj
dDoKLXJvb3RbImVuY29kaW5nIl0gPSBnZXRDdXJyZW50RW5jb2RpbmcoKTsKLXJvb3RbImluZGVu
dCJdWyJsZW5ndGgiXSA9IGdldEN1cnJlbnRJbmRlbnRMZW5ndGgoKTsKLXJvb3RbImluZGVudCJd
WyJ1c2Vfc3BhY2UiXSA9IGdldEN1cnJlbnRJbmRlbnRVc2VTcGFjZSgpOwotCi1Kc29uOjpTdHls
ZWRXcml0ZXIgd3JpdGVyOwotLy8gTWFrZSBhIG5ldyBKU09OIGRvY3VtZW50IGZvciB0aGUgY29u
ZmlndXJhdGlvbi4gUHJlc2VydmUgb3JpZ2luYWwgY29tbWVudHMuCi1zdGQ6OnN0cmluZyBvdXRw
dXRDb25maWcgPSB3cml0ZXIud3JpdGUoIHJvb3QgKTsKLQotLy8gWW91IGNhbiBhbHNvIHVzZSBz
dHJlYW1zLiAgVGhpcyB3aWxsIHB1dCB0aGUgY29udGVudHMgb2YgYW55IEpTT04KLS8vIHN0cmVh
bSBhdCBhIHBhcnRpY3VsYXIgc3ViLXZhbHVlLCBpZiB5b3UnZCBsaWtlLgotc3RkOjpjaW4gPj4g
cm9vdFsic3VidHJlZSJdOworLy8gU2luY2UgSnNvbjo6VmFsdWUgaGFzIGFuIGltcGxpY2l0IGNv
bnN0cnVjdG9yIGZvciBhbGwgdmFsdWUgdHlwZXMsIGl0IGlzIG5vdAorLy8gbmVjZXNzYXJ5IHRv
IGV4cGxpY2l0bHkgY29uc3RydWN0IHRoZSBKc29uOjpWYWx1ZSBvYmplY3QuCityb290WyJlbmNv
ZGluZyJdID0gZm9vOjpnZXRDdXJyZW50RW5jb2RpbmcoKTsKK3Jvb3RbImluZGVudCJdWyJsZW5n
dGgiXSA9IGZvbzo6Z2V0Q3VycmVudEluZGVudExlbmd0aCgpOworcm9vdFsiaW5kZW50Il1bInVz
ZV9zcGFjZSJdID0gZm9vOjpnZXRDdXJyZW50SW5kZW50VXNlU3BhY2UoKTsKIAotLy8gQW5kIHlv
dSBjYW4gd3JpdGUgdG8gYSBzdHJlYW0sIHVzaW5nIHRoZSBTdHlsZWRXcml0ZXIgYXV0b21hdGlj
YWxseS4KKy8vIElmIHlvdSBsaWtlIHRoZSBkZWZhdWx0cywgeW91IGNhbiBpbnNlcnQgZGlyZWN0
bHkgaW50byBhIHN0cmVhbS4KIHN0ZDo6Y291dCA8PCByb290OworLy8gT2YgY291cnNlLCB5b3Ug
Y2FuIHdyaXRlIHRvIGBzdGQ6Om9zdHJpbmdzdHJlYW1gIGlmIHlvdSBwcmVmZXIuCisKKy8vIElm
IGRlc2lyZWQsIHJlbWVtYmVyIHRvIGFkZCBhIGxpbmVmZWVkIGFuZCBmbHVzaC4KK3N0ZDo6Y291
dCA8PCBzdGQ6OmVuZGw7CiBcZW5kY29kZQogCi1cc2VjdGlvbiBfcGJ1aWxkIEJ1aWxkIGluc3Ry
dWN0aW9ucwotVGhlIGJ1aWxkIGluc3RydWN0aW9ucyBhcmUgbG9jYXRlZCBpbiB0aGUgZmlsZSAK
LTxhIEhSRUY9IlJFQURNRS50eHQiPlJFQURNRS50eHQ8L2E+IGluIHRoZSB0b3AtZGlyZWN0b3J5
IG9mIHRoZSBwcm9qZWN0LgorXHNlY3Rpb24gX2FkdmFuY2VkIEFkdmFuY2VkIHVzYWdlCiAKLVBl
cm1hbmVudCBsaW5rIHRvIHRoZSBsYXRlc3QgcmV2aXNpb24gb2YgdGhlIGZpbGUgaW4gc3VidmVy
c2lvbjogCi08YSBIUkVGPSJodHRwOi8vanNvbmNwcC5zdm4uc291cmNlZm9yZ2UubmV0L3ZpZXd2
Yy9qc29uY3BwL3RydW5rL2pzb25jcHAvUkVBRE1FLnR4dD92aWV3PW1hcmt1cCI+bGF0ZXN0IFJF
QURNRS50eHQ8L2E+CitDb25maWd1cmUgKmJ1aWxkZXJzKiB0byBjcmVhdGUgKnJlYWRlcnMqIGFu
ZCAqd3JpdGVycyouIEZvcgorY29uZmlndXJhdGlvbiwgd2UgdXNlIG91ciBvd24gYEpzb246OlZh
bHVlYCAocmF0aGVyIHRoYW4KK3N0YW5kYXJkIHNldHRlcnMvZ2V0dGVycykgc28gdGhhdCB3ZSBj
YW4gYWRkCitmZWF0dXJlcyB3aXRob3V0IGxvc2luZyBiaW5hcnktY29tcGF0aWJpbGl0eS4KIAot
XHNlY3Rpb24gX3Bkb3dubG9hZCBEb3dubG9hZAotVGhlIHNvdXJjZXMgY2FuIGJlIGRvd25sb2Fk
ZWQgZnJvbSAKLTxhIEhSRUY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvanNvbmNw
cC9maWxlcy8iPlNvdXJjZUZvcmdlIGRvd25sb2FkIHBhZ2U8L2E+LgorXGNvZGUKKy8vIEZvciBj
b252ZW5pZW5jZSwgdXNlIGB3cml0ZVN0cmluZygpYCB3aXRoIGEgc3BlY2lhbGl6ZWQgYnVpbGRl
ci4KK0pzb246OlN0cmVhbVdyaXRlckJ1aWxkZXIgd2J1aWxkZXI7Cit3YnVpbGRlclsiaW5kZW50
YXRpb24iXSA9ICJcdCI7CitzdGQ6OnN0cmluZyBkb2N1bWVudCA9IEpzb246OndyaXRlU3RyaW5n
KHdidWlsZGVyLCByb290KTsKKworLy8gSGVyZSwgdXNpbmcgYSBzcGVjaWFsaXplZCBCdWlsZGVy
LCB3ZSBkaXNjYXJkIGNvbW1lbnRzIGFuZAorLy8gcmVjb3JkIGVycm9ycyBhcyB3ZSBwYXJzZS4K
K0pzb246OkNoYXJSZWFkZXJCdWlsZGVyIHJidWlsZGVyOworcmJ1aWxkZXJbImNvbGxlY3RDb21t
ZW50cyJdID0gZmFsc2U7CitzdGQ6OnN0cmluZyBlcnJzOworYm9vbCBvayA9IEpzb246OnBhcnNl
RnJvbVN0cmVhbShyYnVpbGRlciwgc3RkOjpjaW4sICZyb290LCAmZXJycyk7CitcZW5kY29kZQog
Ci1UaGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHNvdXJjZSBpcyBhdmFpbGFibGUgaW4gdGhlIHBy
b2plY3QncyBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnk6IAotPGEgSFJFRj0iaHR0cDovL2pzb25jcHAu
c3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2pzb25jcHAvdHJ1bmsvIj4KLWh0dHA6Ly9qc29u
Y3BwLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9qc29uY3BwL3RydW5rLzwvYT4KK1llcywg
Y29tcGlsZS10aW1lIGNvbmZpZ3VyYXRpb24tY2hlY2tpbmcgd291bGQgYmUgaGVscGZ1bCwKK2J1
dCBgSnNvbjo6VmFsdWVgIGxldHMgeW91Cit3cml0ZSBhbmQgcmVhZCB0aGUgYnVpbGRlciBjb25m
aWd1cmF0aW9uLCB3aGljaCBpcyBiZXR0ZXIhIEluIG90aGVyIHdvcmRzLAoreW91IGNhbiBjb25m
aWd1cmUgeW91ciBKU09OIHBhcnNlciB1c2luZyBKU09OLgogCi1UbyBjaGVja291dCB0aGUgc291
cmNlLCBzZWUgdGhlIGZvbGxvd2luZyAKLTxhIEhSRUY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQv
c2NtLz90eXBlPXN2biZncm91cF9pZD0xNDQ0NDYiPmluc3RydWN0aW9uczwvYT4uCitDaGFyUmVh
ZGVycyBhbmQgU3RyZWFtV3JpdGVycyBhcmUgbm90IHRocmVhZC1zYWZlLCBidXQgdGhleSBhcmUg
cmUtdXNhYmxlLgorXGNvZGUKK0pzb246OkNoYXJSZWFkZXJCdWlsZGVyIHJidWlsZGVyOworY2Zn
ID4+IHJidWlsZGVyLnNldHRpbmdzXzsKK3N0ZDo6dW5pcXVlX3B0cjxKc29uOjpDaGFyUmVhZGVy
PiBjb25zdCByZWFkZXIocmJ1aWxkZXIubmV3Q2hhclJlYWRlcigpKTsKK3JlYWRlci0+cGFyc2Uo
c3RhcnQsIHN0b3AsICZ2YWx1ZTEsICZlcnJzKTsKKy8vIC4uLgorcmVhZGVyLT5wYXJzZShzdGFy
dCwgc3RvcCwgJnZhbHVlMiwgJmVycnMpOworLy8gZXRjLgorXGVuZGNvZGUKIAotXHNlY3Rpb24g
X25ld3MgV2hhdCdzIE5ldz8KLVRoZSBkZXNjcmlwdGlvbiBvZiBsYXRlc3QgY2hhbmdlcyBjYW4g
YmUgZm91bmQgaW4gCi08YSBIUkVGPSJORVdTLnR4dCI+TkVXUy50eHQ8L2E+IGluIHRoZSB0b3At
ZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LgorXHNlY3Rpb24gX3BidWlsZCBCdWlsZCBpbnN0cnVj
dGlvbnMKK1RoZSBidWlsZCBpbnN0cnVjdGlvbnMgYXJlIGxvY2F0ZWQgaW4gdGhlIGZpbGUgCis8
YSBIUkVGPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL2Js
b2IvbWFzdGVyL1JFQURNRS5tZCI+UkVBRE1FLm1kPC9hPiBpbiB0aGUgdG9wLWRpcmVjdG9yeSBv
ZiB0aGUgcHJvamVjdC4KIAotUGVybWFuZW50IGxpbmsgdG8gdGhlIGxhdGVzdCByZXZpc2lvbiBv
ZiB0aGUgZmlsZSBpbiBzdWJ2ZXJzaW9uOiAKLTxhIEhSRUY9Imh0dHA6Ly9zdm4uc291cmNlZm9y
Z2UubmV0L3ZpZXdjdnMuY2dpL2pzb25jcHAvUkVBRE1FLnR4dD92aWV3PW1hcmt1cCI+bGF0ZXN0
IE5FV1MudHh0PC9hPgorVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgaXMgYXZhaWxh
YmxlIGluIHRoZSBwcm9qZWN0J3MgR2l0SHViIHJlcG9zaXRvcnk6Cis8YSBIUkVGPSJodHRwczov
L2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwLyI+Citqc29uY3BwPC9hPgog
Ci1cc2VjdGlvbiBfcGxpbmtzIFByb2plY3QgbGlua3MKLS0gPGEgSFJFRj0iaHR0cDovL2pzb25j
cHAuc291cmNlZm9yZ2UubmV0Ij5qc29uLWNwcCBob21lPC9hPgotLSA8YSBIUkVGPSJodHRwOi8v
d3d3LnNvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9qc29uY3BwLyI+anNvbi1jcHAgc291cmNlZm9y
Z2UgcHJvamVjdDwvYT4KK1xzZWN0aW9uIF9uZXdzIFdoYXQncyBOZXc/CitUaGUgZGVzY3JpcHRp
b24gb2YgbGF0ZXN0IGNoYW5nZXMgY2FuIGJlIGZvdW5kIGluIAorPGEgSFJFRj0iaHR0cHM6Ly9n
aXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcC93aWtpL05FV1MiPgorICB0aGUg
TkVXUyB3aWtpCis8L2E+LgogCiBcc2VjdGlvbiBfcmxpbmtzIFJlbGF0ZWQgbGlua3MKIC0gPGEg
SFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZy8iPkpTT048L2E+IFNwZWNpZmljYXRpb24gYW5kIGFs
dGVybmF0ZSBsYW5ndWFnZSBpbXBsZW1lbnRhdGlvbnMuCiAtIDxhIEhSRUY9Imh0dHA6Ly93d3cu
eWFtbC5vcmcvIj5ZQU1MPC9hPiBBIGRhdGEgZm9ybWF0IGRlc2lnbmVkIGZvciBodW1hbiByZWFk
YWJpbGl0eS4KIC0gPGEgSFJFRj0iaHR0cDovL3d3dy5jbC5jYW0uYWMudWsvfm1nazI1L3VuaWNv
ZGUuaHRtbCI+VVRGLTggYW5kIFVuaWNvZGUgRkFRPC9hPi4KIAorXHNlY3Rpb24gX3BsaW5rcyBP
bGQgcHJvamVjdCBsaW5rcworLSA8YSBocmVmPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9q
ZWN0cy9qc29uY3BwLyI+aHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvanNvbmNwcC88
L2E+CistIDxhIGhyZWY9Imh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldCI+aHR0cDovL2pz
b25jcHAuc291cmNlZm9yZ2UubmV0PC9hPgorLSA8YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2Uu
bmV0L3Byb2plY3RzL2pzb25jcHAvZmlsZXMvIj5odHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2pl
Y3RzL2pzb25jcHAvZmlsZXMvPC9hPgorLSA8YSBocmVmPSJodHRwOi8vanNvbmNwcC5zdm4uc291
cmNlZm9yZ2UubmV0L3N2bnJvb3QvanNvbmNwcC90cnVuay8iPmh0dHA6Ly9qc29uY3BwLnN2bi5z
b3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9qc29uY3BwL3RydW5rLzwvYT4KKy0gPGEgaHJlZj0iaHR0
cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L29sZC5odG1sIj5odHRwOi8vanNvbmNwcC5zb3Vy
Y2Vmb3JnZS5uZXQvb2xkLmh0bWw8L2E+CisKIFxzZWN0aW9uIF9saWNlbnNlIExpY2Vuc2UKLVNl
ZSBmaWxlIDxhIEhSRUY9IkxJQ0VOU0UiPkxJQ0VOU0U8L2E+IGluIHRoZSB0b3AtZGlyZWN0b3J5
IG9mIHRoZSBwcm9qZWN0LgorU2VlIGZpbGUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29w
ZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcC9ibG9iL21hc3Rlci9MSUNFTlNFIj48Y29kZT5MSUNF
TlNFPC9jb2RlPjwvYT4gaW4gdGhlIHRvcC1kaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuCiAKIEJh
c2ljYWxseSBKc29uQ3BwIGlzIGxpY2Vuc2VkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMg
ZG9tYWluIGlmIGRlc2lyZWQgCiBhbmQgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4K
IAotXGF1dGhvciBCYXB0aXN0ZSBMZXBpbGxldXIgPGJsZXBAdXNlcnMuc291cmNlZm9yZ2UubmV0
PgorXGF1dGhvciBCYXB0aXN0ZSBMZXBpbGxldXIgPGJsZXBAdXNlcnMuc291cmNlZm9yZ2UubmV0
PiAob3JpZ2luYXRvcikKK1xhdXRob3IgQ2hyaXN0b3BoZXIgRHVubiA8Y2R1bm4yMDAxQGdtYWls
LmNvbT4gKHByaW1hcnkgbWFpbnRhaW5lcikKK1x2ZXJzaW9uIFxpbmNsdWRlIHZlcnNpb24KK1dl
IG1ha2Ugc3Ryb25nIGd1YXJhbnRlZXMgYWJvdXQgYmluYXJ5LWNvbXBhdGliaWxpdHksIGNvbnNp
c3RlbnQgd2l0aAorPGEgaHJlZj0iaHR0cDovL2Fwci5hcGFjaGUub3JnL3ZlcnNpb25pbmcuaHRt
bCI+dGhlIEFwYWNoZSB2ZXJzaW9uaW5nIHNjaGVtZTwvYT4uCitcc2EgdmVyc2lvbi5oCiAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9kb2Mvcm9hZG1hcC5kb3ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9yb2FkbWFwLmRveApp
bmRleCBlNmZjMTdhYTY4ZDNlZDVkZmI3ZGQ1NDY3ZGJmMWZiZTJiOTM5Yjg2Li4xMjI5NGJiYmQy
OWQxOTg2OWIxOGI2YzI3NGQzYTNlMTliOWZkODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2RvYy9yb2Fk
bWFwLmRveAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL2RvYy9yb2FkbWFwLmRveApAQCAtMSwzNyArMSwzIEBACiAvKiEg
XHBhZ2Ugcm9hZG1hcCBKc29uQ3BwIHJvYWRtYXAKLSAgXHNlY3Rpb24gbXNfcmVsZWFzZSBNYWtl
cyBKc29uQ3BwIHJlYWR5IGZvciByZWxlYXNlCi0gIC0gQnVpbGQgc3lzdGVtIGNsZWFuLXVwOgot
CS0gRml4IGJ1aWxkIG9uIFdpbmRvd3MgKHNoYXJlZC1saWJyYXJ5IGJ1aWxkIGlzIGJyb2tlbikK
LQktIEFkZCBlbmFibGUvZGlzYWJsZSBmbGFnIGZvciBzdGF0aWMgYW5kIHNoYXJlZCBsaWJyYXJ5
IGJ1aWxkCi0JLSBFbmhhbmNlIGhlbHAKLSAgLSBQbGF0Zm9ybSBwb3J0YWJpbGl0eSBjaGVjazog
KE5vdGVzOiB3YXMgb2sgb24gbGFzdCBjaGVjaykKLQktIGxpbnV4L2djYywgCi0JLSBzb2xhcmlz
L2NjLCAKLQktIHdpbmRvd3MvbXN2YzY3OCwgCi0JLSBhaXgvdmFjcHAKLSAgLSBBZGQgSnNvbkNw
cCB2ZXJzaW9uIHRvIGhlYWRlciBhcyBudW1lcmljIGZvciB1c2UgaW4gcHJlcHJvY2Vzc29yIHRl
c3QKLSAgLSBSZW1vdmUgYnVnZ3kgZXhwZXJpbWVudGFsIGhhc2ggc3R1ZmYKLSAgXHNlY3Rpb24g
bXNfc3RyaWN0IEFkZHMgYSBzdHJpY3QgbW9kZSB0byByZWFkZXIvcGFyc2VyCi0JU3RyaWN0IEpT
T04gc3VwcG9ydCBhcyBzcGVjaWZpYyBpbiBSRkMgNDYyNyAoaHR0cDovL3d3dy5pZXRmLm9yZy9y
ZmMvcmZjNDYyNy50eHQ/bnVtYmVyPTQ2MjcpLgotCS0gRW5mb3JjZSBvbmx5IG9iamVjdCBvciBh
cnJheSBhcyByb290IGVsZW1lbnQKLQktIERpc2FibGUgY29tbWVudCBzdXBwb3J0Ci0gICAgLSBH
ZXQganNvbmNoZWNrZXIgZmFpbGluZyB0ZXN0cyB0byBwYXNzIGluIHN0cmljdCBtb2RlCi0gIFxz
ZWN0aW9uIG1zX3dyaXRlciBXcml0dGVyIGNvbnRyb2wKLSAgICBQcm92aWRlcyBtb3JlIGNvbnRy
b2wgdG8gZGV0ZXJtaW5lIGhvdyBzcGVjaWZpYyBpdGVtcyBhcmUgc2VyaWFsaXplZCB3aGVuIEpT
T04gYWxsb3cgY2hvaWNlOgotCS0gT3B0aW9uYWxseSBhbGxvdyBlc2NhcGluZyBvZiBub24tQVND
SUkgY2hhcmFjdGVycyB1c2luZyB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSAiXFx1Ii4KLQktIE9w
dGlvbmFsbHkgYWxsb3cgZXNjYXBpbmcgb2YgIi8iIHVzaW5nICJcLyIuCi0gIFxzZWN0aW9uIG1z
X3NlcGFyYXRpb24gRXhwb3NlIGpzb24gcmVhZGVyL3dyaXRlciBBUEkgdGhhdCBkbyBub3QgaW1w
b3NlIHVzaW5nIEpzb246OlZhbHVlLgotCVNvbWUgdHlwaWNhbCB1c2UtY2FzZSBpbnZvbHZlIGFu
IGFwcGxpY2F0aW9uIHNwZWNpZmljIHN0cnVjdHVyZSB0by9mcm9tIGEgSlNPTiBkb2N1bWVudC4K
LSAgICAtIEV2ZW50IGJhc2UgcGFyc2VyIHRvIGFsbG93IHVuc2VyaWFsaXppbmcgYSBKc29uIGRv
Y3VtZW50IGRpcmVjdGx5IGluIGRhdGFzdHJ1Y3R1cmUgaW5zdGVhZCBvZgotICAgICAgdXNpbmcg
dGhlIGludGVybWVkaWF0ZSBKc29uOjpWYWx1ZS4KLSAgICAtIFN0cmVhbSBiYXNlZCBwYXJzZXIg
dG8gc2VyaWFsaXplZCBhIEpzb24gZG9jdW1lbnQgd2l0aG91dCB1c2luZyBKc29uOjpWYWx1ZSBh
cyBpbnB1dC4KLQktIFBlcmZvcm1hbmNlIG9yaWVudGVkIHBhcnNlci93cml0ZXI6Ci0JCS0gUHJv
dmlkZXMgYW4gZXZlbnQgYmFzZWQgcGFyc2VyLiBTaG91bGQgYWxsb3cgcHVsbGluZyAmIHNraXBw
aW5nIGV2ZW50cyBmb3IgZWFzZSBvZiB1c2UuCi0JCS0gUHJvdmlkZXMgYSBKU09OIGRvY3VtZW50
IGJ1aWxkZXI6IGZhc3Qgb25seS4KLSAgXHNlY3Rpb24gbXNfcGVyZm8gUGVyZm9ybWFuY2UgdHVu
aW5nCi0gICAgLSBQcm92aWRlcyBzdXBwb3J0IGZvciBzdGF0aWMgcHJvcGVydHkgbmFtZSBkZWZp
bml0aW9uIGF2b2lkaW5nIGFsbG9jYXRpb24gCi0gICAgLSBTdGF0aWMgcHJvcGVydHkgZGljdGlv
bm5hcnkgY2FuIGJlIHByb3ZpZGVkIHRvIEpTT04gcmVhZGVyCi0gICAgLSBQZXJmb3JtYW5jZSBz
Y2VuYXJpbyAmIGJlbmNobWFya2luZwotICBcc2VjdGlvbiB0ZXN0aW5nIFRlc3RpbmcKLSAgICAt
IEFkZHMgbW9yZSB0ZXN0cyBmb3IgdW5pY29kZSBwYXJzaW5nIChlLmcuIGluY2x1ZGluZyBzdXJy
b2dhdGUgYW5kIGVycm9yIGRldGVjdGlvbikuCisgIE1vdmVkIHRvOiBodHRwczovL2dpdGh1Yi5j
b20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3dpa2kvUm9hZG1hcAogKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvZG9jL3dlYl9kb3h5ZmlsZS5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG9jL3dlYl9kb3h5ZmlsZS5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZjA5ZGNjYWVjNTAwZTMxNTdmMWYyNGVmM2EzNjYyZGNhZGQyZWU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9kb2Mvd2ViX2RveHlmaWxlLmluCkBAIC0wLDAgKzEsMjI5MCBA
QAorIyBEb3h5ZmlsZSAxLjguNQorCisjIFRoaXMgZmlsZSBkZXNjcmliZXMgdGhlIHNldHRpbmdz
IHRvIGJlIHVzZWQgYnkgdGhlIGRvY3VtZW50YXRpb24gc3lzdGVtCisjIGRveHlnZW4gKHd3dy5k
b3h5Z2VuLm9yZykgZm9yIGEgcHJvamVjdC4KKyMKKyMgQWxsIHRleHQgYWZ0ZXIgYSBkb3VibGUg
aGFzaCAoIyMpIGlzIGNvbnNpZGVyZWQgYSBjb21tZW50IGFuZCBpcyBwbGFjZWQgaW4KKyMgZnJv
bnQgb2YgdGhlIFRBRyBpdCBpcyBwcmVjZWRpbmcuCisjCisjIEFsbCB0ZXh0IGFmdGVyIGEgc2lu
Z2xlIGhhc2ggKCMpIGlzIGNvbnNpZGVyZWQgYSBjb21tZW50IGFuZCB3aWxsIGJlIGlnbm9yZWQu
CisjIFRoZSBmb3JtYXQgaXM6CisjIFRBRyA9IHZhbHVlIFt2YWx1ZSwgLi4uXQorIyBGb3IgbGlz
dHMsIGl0ZW1zIGNhbiBhbHNvIGJlIGFwcGVuZGVkIHVzaW5nOgorIyBUQUcgKz0gdmFsdWUgW3Zh
bHVlLCAuLi5dCisjIFZhbHVlcyB0aGF0IGNvbnRhaW4gc3BhY2VzIHNob3VsZCBiZSBwbGFjZWQg
YmV0d2VlbiBxdW90ZXMgKFwiIFwiKS4KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBQcm9qZWN0
IHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMg
VGhpcyB0YWcgc3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1c2VkIGZvciBhbGwgY2hhcmFjdGVycyBp
biB0aGUgY29uZmlnIGZpbGUKKyMgdGhhdCBmb2xsb3cuIFRoZSBkZWZhdWx0IGlzIFVURi04IHdo
aWNoIGlzIGFsc28gdGhlIGVuY29kaW5nIHVzZWQgZm9yIGFsbCB0ZXh0CisjIGJlZm9yZSB0aGUg
Zmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGlzIHRhZy4gRG94eWdlbiB1c2VzIGxpYmljb252IChvciB0
aGUgaWNvbnYKKyMgYnVpbHQgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29kaW5nLiBTZWUgaHR0
cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252CisjIGZvciB0aGUgbGlzdCBvZiBwb3Nz
aWJsZSBlbmNvZGluZ3MuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBVVEYtOC4KKworRE9YWUZJ
TEVfRU5DT0RJTkcgICAgICA9IFVURi04CisKKyMgVGhlIFBST0pFQ1RfTkFNRSB0YWcgaXMgYSBz
aW5nbGUgd29yZCAob3IgYSBzZXF1ZW5jZSBvZiB3b3JkcyBzdXJyb3VuZGVkIGJ5CisjIGRvdWJs
ZS1xdW90ZXMsIHVubGVzcyB5b3UgYXJlIHVzaW5nIERveHl3aXphcmQpIHRoYXQgc2hvdWxkIGlk
ZW50aWZ5IHRoZQorIyBwcm9qZWN0IGZvciB3aGljaCB0aGUgZG9jdW1lbnRhdGlvbiBpcyBnZW5l
cmF0ZWQuIFRoaXMgbmFtZSBpcyB1c2VkIGluIHRoZQorIyB0aXRsZSBvZiBtb3N0IGdlbmVyYXRl
ZCBwYWdlcyBhbmQgaW4gYSBmZXcgb3RoZXIgcGxhY2VzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTXkgUHJvamVjdC4KKworUFJPSkVDVF9OQU1FICAgICAgICAgICA9ICJKc29uQ3BwIgorCisj
IFRoZSBQUk9KRUNUX05VTUJFUiB0YWcgY2FuIGJlIHVzZWQgdG8gZW50ZXIgYSBwcm9qZWN0IG9y
IHJldmlzaW9uIG51bWJlci4gVGhpcworIyBjb3VsZCBiZSBoYW5keSBmb3IgYXJjaGl2aW5nIHRo
ZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpZiBzb21lIHZlcnNpb24KKyMgY29udHJvbCBz
eXN0ZW0gaXMgdXNlZC4KKworUFJPSkVDVF9OVU1CRVIgICAgICAgICA9ICVKU09OQ1BQX1ZFUlNJ
T04lCisKKyMgVXNpbmcgdGhlIFBST0pFQ1RfQlJJRUYgdGFnIG9uZSBjYW4gcHJvdmlkZSBhbiBv
cHRpb25hbCBvbmUgbGluZSBkZXNjcmlwdGlvbgorIyBmb3IgYSBwcm9qZWN0IHRoYXQgYXBwZWFy
cyBhdCB0aGUgdG9wIG9mIGVhY2ggcGFnZSBhbmQgc2hvdWxkIGdpdmUgdmlld2VyIGEKKyMgcXVp
Y2sgaWRlYSBhYm91dCB0aGUgcHVycG9zZSBvZiB0aGUgcHJvamVjdC4gS2VlcCB0aGUgZGVzY3Jp
cHRpb24gc2hvcnQuCisKK1BST0pFQ1RfQlJJRUYgICAgICAgICAgID0gIkpTT04gZGF0YSBmb3Jt
YXQgbWFuaXB1bGF0aW9uIGxpYnJhcnkiCisKKyMgV2l0aCB0aGUgUFJPSkVDVF9MT0dPIHRhZyBv
bmUgY2FuIHNwZWNpZnkgYW4gbG9nbyBvciBpY29uIHRoYXQgaXMgaW5jbHVkZWQgaW4KKyMgdGhl
IGRvY3VtZW50YXRpb24uIFRoZSBtYXhpbXVtIGhlaWdodCBvZiB0aGUgbG9nbyBzaG91bGQgbm90
IGV4Y2VlZCA1NSBwaXhlbHMKKyMgYW5kIHRoZSBtYXhpbXVtIHdpZHRoIHNob3VsZCBub3QgZXhj
ZWVkIDIwMCBwaXhlbHMuIERveHlnZW4gd2lsbCBjb3B5IHRoZSBsb2dvCisjIHRvIHRoZSBvdXRw
dXQgZGlyZWN0b3J5LgorCitQUk9KRUNUX0xPR08gICAgICAgICAgID0KKworIyBUaGUgT1VUUFVU
X0RJUkVDVE9SWSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAocmVsYXRpdmUgb3IgYWJzb2x1
dGUpIHBhdGgKKyMgaW50byB3aGljaCB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gd2lsbCBi
ZSB3cml0dGVuLiBJZiBhIHJlbGF0aXZlIHBhdGggaXMKKyMgZW50ZXJlZCwgaXQgd2lsbCBiZSBy
ZWxhdGl2ZSB0byB0aGUgbG9jYXRpb24gd2hlcmUgZG94eWdlbiB3YXMgc3RhcnRlZC4gSWYKKyMg
bGVmdCBibGFuayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSB1c2VkLgorCitPVVRQVVRf
RElSRUNUT1JZICAgICAgID0gJURPQ19UT1BESVIlCisKKyMgSWYgdGhlIENSRUFURV9TVUJESVJT
IHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCBjcmVhdGUgNDA5NiBzdWItCisj
IGRpcmVjdG9yaWVzIChpbiAyIGxldmVscykgdW5kZXIgdGhlIG91dHB1dCBkaXJlY3Rvcnkgb2Yg
ZWFjaCBvdXRwdXQgZm9ybWF0IGFuZAorIyB3aWxsIGRpc3RyaWJ1dGUgdGhlIGdlbmVyYXRlZCBm
aWxlcyBvdmVyIHRoZXNlIGRpcmVjdG9yaWVzLiBFbmFibGluZyB0aGlzCisjIG9wdGlvbiBjYW4g
YmUgdXNlZnVsIHdoZW4gZmVlZGluZyBkb3h5Z2VuIGEgaHVnZSBhbW91bnQgb2Ygc291cmNlIGZp
bGVzLCB3aGVyZQorIyBwdXR0aW5nIGFsbCBnZW5lcmF0ZWQgZmlsZXMgaW4gdGhlIHNhbWUgZGly
ZWN0b3J5IHdvdWxkIG90aGVyd2lzZSBjYXVzZXMKKyMgcGVyZm9ybWFuY2UgcHJvYmxlbXMgZm9y
IHRoZSBmaWxlIHN5c3RlbS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitDUkVBVEVf
U1VCRElSUyAgICAgICAgID0gTk8KKworIyBUaGUgT1VUUFVUX0xBTkdVQUdFIHRhZyBpcyB1c2Vk
IHRvIHNwZWNpZnkgdGhlIGxhbmd1YWdlIGluIHdoaWNoIGFsbAorIyBkb2N1bWVudGF0aW9uIGdl
bmVyYXRlZCBieSBkb3h5Z2VuIGlzIHdyaXR0ZW4uIERveHlnZW4gd2lsbCB1c2UgdGhpcworIyBp
bmZvcm1hdGlvbiB0byBnZW5lcmF0ZSBhbGwgY29uc3RhbnQgb3V0cHV0IGluIHRoZSBwcm9wZXIg
bGFuZ3VhZ2UuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IEFmcmlrYWFucywgQXJhYmljLCBCcmF6
aWxpYW4sIENhdGFsYW4sIENoaW5lc2UsIENoaW5lc2UtCisjIFRyYWRpdGlvbmFsLCBDcm9hdGlh
biwgQ3plY2gsIERhbmlzaCwgRHV0Y2gsIEVuZ2xpc2gsIEVzcGVyYW50bywgRmFyc2ksCisjIEZp
bm5pc2gsIEZyZW5jaCwgR2VybWFuLCBHcmVlaywgSHVuZ2FyaWFuLCBJdGFsaWFuLCBKYXBhbmVz
ZSwgSmFwYW5lc2UtZW4sCisjIEtvcmVhbiwgS29yZWFuLWVuLCBMYXR2aWFuLCBOb3J3ZWdpYW4s
IE1hY2Vkb25pYW4sIFBlcnNpYW4sIFBvbGlzaCwKKyMgUG9ydHVndWVzZSwgUm9tYW5pYW4sIFJ1
c3NpYW4sIFNlcmJpYW4sIFNsb3ZhaywgU2xvdmVuZSwgU3BhbmlzaCwgU3dlZGlzaCwKKyMgVHVy
a2lzaCwgVWtyYWluaWFuIGFuZCBWaWV0bmFtZXNlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
RW5nbGlzaC4KKworT1VUUFVUX0xBTkdVQUdFICAgICAgICA9IEVuZ2xpc2gKKworIyBJZiB0aGUg
QlJJRUZfTUVNQkVSX0RFU0MgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGluY2x1ZGUg
YnJpZWYgbWVtYmVyCisjIGRlc2NyaXB0aW9ucyBhZnRlciB0aGUgbWVtYmVycyB0aGF0IGFyZSBs
aXN0ZWQgaW4gdGhlIGZpbGUgYW5kIGNsYXNzCisjIGRvY3VtZW50YXRpb24gKHNpbWlsYXIgdG8g
SmF2YWRvYykuIFNldCB0byBOTyB0byBkaXNhYmxlIHRoaXMuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCisKK0JSSUVGX01FTUJFUl9ERVNDICAgICAgPSBZRVMKKworIyBJZiB0aGUgUkVQ
RUFUX0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBwcmVwZW5kIHRoZSBicmll
ZgorIyBkZXNjcmlwdGlvbiBvZiBhIG1lbWJlciBvciBmdW5jdGlvbiBiZWZvcmUgdGhlIGRldGFp
bGVkIGRlc2NyaXB0aW9uCisjCisjIE5vdGU6IElmIGJvdGggSElERV9VTkRPQ19NRU1CRVJTIGFu
ZCBCUklFRl9NRU1CRVJfREVTQyBhcmUgc2V0IHRvIE5PLCB0aGUKKyMgYnJpZWYgZGVzY3JpcHRp
b25zIHdpbGwgYmUgY29tcGxldGVseSBzdXBwcmVzc2VkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgorCitSRVBFQVRfQlJJRUYgICAgICAgICAgID0gWUVTCisKKyMgVGhpcyB0YWcgaW1w
bGVtZW50cyBhIHF1YXNpLWludGVsbGlnZW50IGJyaWVmIGRlc2NyaXB0aW9uIGFiYnJldmlhdG9y
IHRoYXQgaXMKKyMgdXNlZCB0byBmb3JtIHRoZSB0ZXh0IGluIHZhcmlvdXMgbGlzdGluZ3MuIEVh
Y2ggc3RyaW5nIGluIHRoaXMgbGlzdCwgaWYgZm91bmQKKyMgYXMgdGhlIGxlYWRpbmcgdGV4dCBv
ZiB0aGUgYnJpZWYgZGVzY3JpcHRpb24sIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgdGV4dAor
IyBhbmQgdGhlIHJlc3VsdCwgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgd2hvbGUgbGlzdCwgaXMgdXNl
ZCBhcyB0aGUgYW5ub3RhdGVkCisjIHRleHQuIE90aGVyd2lzZSwgdGhlIGJyaWVmIGRlc2NyaXB0
aW9uIGlzIHVzZWQgYXMtaXMuIElmIGxlZnQgYmxhbmssIHRoZQorIyBmb2xsb3dpbmcgdmFsdWVz
IGFyZSB1c2VkICgkbmFtZSBpcyBhdXRvbWF0aWNhbGx5IHJlcGxhY2VkIHdpdGggdGhlIG5hbWUg
b2YKKyMgdGhlIGVudGl0eSk6VGhlICRuYW1lIGNsYXNzLCBUaGUgJG5hbWUgd2lkZ2V0LCBUaGUg
JG5hbWUgZmlsZSwgaXMsIHByb3ZpZGVzLAorIyBzcGVjaWZpZXMsIGNvbnRhaW5zLCByZXByZXNl
bnRzLCBhLCBhbiBhbmQgdGhlLgorCitBQkJSRVZJQVRFX0JSSUVGICAgICAgID0gIlRoZSAkbmFt
ZSBjbGFzcyIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgJG5hbWUgd2lkZ2V0IiBc
CisgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSAkbmFtZSBmaWxlIiBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVzIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZXMgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRhaW5zIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXByZXNlbnRzIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBhIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBh
biBcCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhlCisKKyMgSWYgdGhlIEFMV0FZU19ERVRB
SUxFRF9TRUMgYW5kIFJFUEVBVF9CUklFRiB0YWdzIGFyZSBib3RoIHNldCB0byBZRVMgdGhlbgor
IyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBkZXRhaWxlZCBzZWN0aW9uIGV2ZW4gaWYgdGhlcmUg
aXMgb25seSBhIGJyaWVmCisjIGRlc2NyaXB0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisKK0FMV0FZU19ERVRBSUxFRF9TRUMgICAgPSBOTworCisjIElmIHRoZSBJTkxJTkVfSU5I
RVJJVEVEX01FTUIgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBzaG93IGFsbAorIyBp
bmhlcml0ZWQgbWVtYmVycyBvZiBhIGNsYXNzIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoYXQg
Y2xhc3MgYXMgaWYgdGhvc2UKKyMgbWVtYmVycyB3ZXJlIG9yZGluYXJ5IGNsYXNzIG1lbWJlcnMu
IENvbnN0cnVjdG9ycywgZGVzdHJ1Y3RvcnMgYW5kIGFzc2lnbm1lbnQKKyMgb3BlcmF0b3JzIG9m
IHRoZSBiYXNlIGNsYXNzZXMgd2lsbCBub3QgYmUgc2hvd24uCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4KKworSU5MSU5FX0lOSEVSSVRFRF9NRU1CICA9IE5PCisKKyMgSWYgdGhlIEZVTExf
UEFUSF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgcHJlcGVuZCB0aGUgZnVs
bCBwYXRoCisjIGJlZm9yZSBmaWxlcyBuYW1lIGluIHRoZSBmaWxlIGxpc3QgYW5kIGluIHRoZSBo
ZWFkZXIgZmlsZXMuIElmIHNldCB0byBOTyB0aGUKKyMgc2hvcnRlc3QgcGF0aCB0aGF0IG1ha2Vz
IHRoZSBmaWxlIG5hbWUgdW5pcXVlIHdpbGwgYmUgdXNlZAorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgorCitGVUxMX1BBVEhfTkFNRVMgICAgICAgID0gWUVTCisKKyMgVGhlIFNUUklQX0ZS
T01fUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3RyaXAgYSB1c2VyLWRlZmluZWQgcGFydCBvZiB0
aGUgcGF0aC4KKyMgU3RyaXBwaW5nIGlzIG9ubHkgZG9uZSBpZiBvbmUgb2YgdGhlIHNwZWNpZmll
ZCBzdHJpbmdzIG1hdGNoZXMgdGhlIGxlZnQtaGFuZAorIyBwYXJ0IG9mIHRoZSBwYXRoLiBUaGUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNob3cgcmVsYXRpdmUgcGF0aHMgaW4gdGhlIGZpbGUgbGlzdC4K
KyMgSWYgbGVmdCBibGFuayB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggZG94eWdlbiBpcyBydW4g
aXMgdXNlZCBhcyB0aGUgcGF0aCB0bworIyBzdHJpcC4KKyMKKyMgTm90ZSB0aGF0IHlvdSBjYW4g
c3BlY2lmeSBhYnNvbHV0ZSBwYXRocyBoZXJlLCBidXQgYWxzbyByZWxhdGl2ZSBwYXRocywgd2hp
Y2gKKyMgd2lsbCBiZSByZWxhdGl2ZSBmcm9tIHRoZSBkaXJlY3Rvcnkgd2hlcmUgZG94eWdlbiBp
cyBzdGFydGVkLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRlVMTF9QQVRIX05B
TUVTIGlzIHNldCB0byBZRVMuCisKK1NUUklQX0ZST01fUEFUSCAgICAgICAgPSAlVE9QRElSJQor
CisjIFRoZSBTVFJJUF9GUk9NX0lOQ19QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzdHJpcCBhIHVz
ZXItZGVmaW5lZCBwYXJ0IG9mIHRoZQorIyBwYXRoIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBvZiBhIGNsYXNzLCB3aGljaCB0ZWxscyB0aGUgcmVhZGVyIHdoaWNoCisjIGhlYWRlciBm
aWxlIHRvIGluY2x1ZGUgaW4gb3JkZXIgdG8gdXNlIGEgY2xhc3MuIElmIGxlZnQgYmxhbmsgb25s
eSB0aGUgbmFtZSBvZgorIyB0aGUgaGVhZGVyIGZpbGUgY29udGFpbmluZyB0aGUgY2xhc3MgZGVm
aW5pdGlvbiBpcyB1c2VkLiBPdGhlcndpc2Ugb25lIHNob3VsZAorIyBzcGVjaWZ5IHRoZSBsaXN0
IG9mIGluY2x1ZGUgcGF0aHMgdGhhdCBhcmUgbm9ybWFsbHkgcGFzc2VkIHRvIHRoZSBjb21waWxl
cgorIyB1c2luZyB0aGUgLUkgZmxhZy4KKworU1RSSVBfRlJPTV9JTkNfUEFUSCAgICA9ICVUT1BE
SVIlL2luY2x1ZGUKKworIyBJZiB0aGUgU0hPUlRfTkFNRVMgdGFnIGlzIHNldCB0byBZRVMsIGRv
eHlnZW4gd2lsbCBnZW5lcmF0ZSBtdWNoIHNob3J0ZXIgKGJ1dAorIyBsZXNzIHJlYWRhYmxlKSBm
aWxlIG5hbWVzLiBUaGlzIGNhbiBiZSB1c2VmdWwgaXMgeW91ciBmaWxlIHN5c3RlbXMgZG9lc24n
dAorIyBzdXBwb3J0IGxvbmcgbmFtZXMgbGlrZSBvbiBET1MsIE1hYywgb3IgQ0QtUk9NLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NIT1JUX05BTUVTICAgICAgICAgICAgPSBOTwor
CisjIElmIHRoZSBKQVZBRE9DX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHln
ZW4gd2lsbCBpbnRlcnByZXQgdGhlCisjIGZpcnN0IGxpbmUgKHVudGlsIHRoZSBmaXJzdCBkb3Qp
IG9mIGEgSmF2YWRvYy1zdHlsZSBjb21tZW50IGFzIHRoZSBicmllZgorIyBkZXNjcmlwdGlvbi4g
SWYgc2V0IHRvIE5PLCB0aGUgSmF2YWRvYy1zdHlsZSB3aWxsIGJlaGF2ZSBqdXN0IGxpa2UgcmVn
dWxhciBRdC0KKyMgc3R5bGUgY29tbWVudHMgKHRodXMgcmVxdWlyaW5nIGFuIGV4cGxpY2l0IEBi
cmllZiBjb21tYW5kIGZvciBhIGJyaWVmCisjIGRlc2NyaXB0aW9uLikKKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorCitKQVZBRE9DX0FVVE9CUklFRiAgICAgID0gWUVTCisKKyMgSWYgdGhl
IFFUX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBpbnRlcnBy
ZXQgdGhlIGZpcnN0CisjIGxpbmUgKHVudGlsIHRoZSBmaXJzdCBkb3QpIG9mIGEgUXQtc3R5bGUg
Y29tbWVudCBhcyB0aGUgYnJpZWYgZGVzY3JpcHRpb24uIElmCisjIHNldCB0byBOTywgdGhlIFF0
LXN0eWxlIHdpbGwgYmVoYXZlIGp1c3QgbGlrZSByZWd1bGFyIFF0LXN0eWxlIGNvbW1lbnRzICh0
aHVzCisjIHJlcXVpcmluZyBhbiBleHBsaWNpdCBcYnJpZWYgY29tbWFuZCBmb3IgYSBicmllZiBk
ZXNjcmlwdGlvbi4pCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworUVRfQVVUT0JSSUVG
ICAgICAgICAgICA9IE5PCisKKyMgVGhlIE1VTFRJTElORV9DUFBfSVNfQlJJRUYgdGFnIGNhbiBi
ZSBzZXQgdG8gWUVTIHRvIG1ha2UgZG94eWdlbiB0cmVhdCBhCisjIG11bHRpLWxpbmUgQysrIHNw
ZWNpYWwgY29tbWVudCBibG9jayAoaS5lLiBhIGJsb2NrIG9mIC8vISBvciAvLy8gY29tbWVudHMp
IGFzCisjIGEgYnJpZWYgZGVzY3JpcHRpb24uIFRoaXMgdXNlZCB0byBiZSB0aGUgZGVmYXVsdCBi
ZWhhdmlvci4gVGhlIG5ldyBkZWZhdWx0IGlzCisjIHRvIHRyZWF0IGEgbXVsdGktbGluZSBDKysg
Y29tbWVudCBibG9jayBhcyBhIGRldGFpbGVkIGRlc2NyaXB0aW9uLiBTZXQgdGhpcworIyB0YWcg
dG8gWUVTIGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBiZWhhdmlvciBpbnN0ZWFkLgorIworIyBOb3Rl
IHRoYXQgc2V0dGluZyB0aGlzIHRhZyB0byBZRVMgYWxzbyBtZWFucyB0aGF0IHJhdGlvbmFsIHJv
c2UgY29tbWVudHMgYXJlCisjIG5vdCByZWNvZ25pemVkIGFueSBtb3JlLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCisKK01VTFRJTElORV9DUFBfSVNfQlJJRUYgPSBOTworCisjIElmIHRo
ZSBJTkhFUklUX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBhbiB1bmRvY3VtZW50ZWQgbWVt
YmVyIGluaGVyaXRzIHRoZQorIyBkb2N1bWVudGF0aW9uIGZyb20gYW55IGRvY3VtZW50ZWQgbWVt
YmVyIHRoYXQgaXQgcmUtaW1wbGVtZW50cy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4K
KworSU5IRVJJVF9ET0NTICAgICAgICAgICA9IFlFUworCisjIElmIHRoZSBTRVBBUkFURV9NRU1C
RVJfUEFHRVMgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxsIHByb2R1Y2UgYQor
IyBuZXcgcGFnZSBmb3IgZWFjaCBtZW1iZXIuIElmIHNldCB0byBOTywgdGhlIGRvY3VtZW50YXRp
b24gb2YgYSBtZW1iZXIgd2lsbCBiZQorIyBwYXJ0IG9mIHRoZSBmaWxlL2NsYXNzL25hbWVzcGFj
ZSB0aGF0IGNvbnRhaW5zIGl0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NFUEFS
QVRFX01FTUJFUl9QQUdFUyAgPSBOTworCisjIFRoZSBUQUJfU0laRSB0YWcgY2FuIGJlIHVzZWQg
dG8gc2V0IHRoZSBudW1iZXIgb2Ygc3BhY2VzIGluIGEgdGFiLiBEb3h5Z2VuCisjIHVzZXMgdGhp
cyB2YWx1ZSB0byByZXBsYWNlIHRhYnMgYnkgc3BhY2VzIGluIGNvZGUgZnJhZ21lbnRzLgorIyBN
aW5pbXVtIHZhbHVlOiAxLCBtYXhpbXVtIHZhbHVlOiAxNiwgZGVmYXVsdCB2YWx1ZTogNC4KKwor
VEFCX1NJWkUgICAgICAgICAgICAgICA9IDMKKworIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBz
cGVjaWZ5IGEgbnVtYmVyIG9mIGFsaWFzZXMgdGhhdCBhY3QgYXMgY29tbWFuZHMgaW4KKyMgdGhl
IGRvY3VtZW50YXRpb24uIEFuIGFsaWFzIGhhcyB0aGUgZm9ybToKKyMgbmFtZT12YWx1ZQorIyBG
b3IgZXhhbXBsZSBhZGRpbmcKKyMgInNpZGVlZmZlY3Q9QHBhciBTaWRlIEVmZmVjdHM6XG4iCisj
IHdpbGwgYWxsb3cgeW91IHRvIHB1dCB0aGUgY29tbWFuZCBcc2lkZWVmZmVjdCAob3IgQHNpZGVl
ZmZlY3QpIGluIHRoZQorIyBkb2N1bWVudGF0aW9uLCB3aGljaCB3aWxsIHJlc3VsdCBpbiBhIHVz
ZXItZGVmaW5lZCBwYXJhZ3JhcGggd2l0aCBoZWFkaW5nCisjICJTaWRlIEVmZmVjdHM6Ii4gWW91
IGNhbiBwdXQgXG4ncyBpbiB0aGUgdmFsdWUgcGFydCBvZiBhbiBhbGlhcyB0byBpbnNlcnQKKyMg
bmV3bGluZXMuCisKK0FMSUFTRVMgICAgICAgICAgICAgICAgPSAidGVzdENhc2VTZXR1cD1cbGlu
ayBDcHBVVDo6VGVzdENhc2U6OnNldFVwKCkgc2V0VXAoKVxlbmRsaW5rIiBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgInRlc3RDYXNlUnVuPVxsaW5rIENwcFVUOjpUZXN0Q2FzZTo6cnVuKCkg
cnVuKClcZW5kbGluayIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0Q2FzZVRlYXJE
b3duPVxsaW5rIENwcFVUOjpUZXN0Q2FzZTo6dGVhckRvd24oKSB0ZWFyRG93bigpXGVuZGxpbmsi
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAianNvbl9yZWY9PGEgSFJFRj0naHR0cDovL3d3
dy5qc29uLm9yZy8nPkpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKTwvYT4iCisKKyMg
VGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIG51bWJlciBvZiB3b3JkLWtleXdvcmQg
bWFwcGluZ3MgKFRDTCBvbmx5KS4KKyMgQSBtYXBwaW5nIGhhcyB0aGUgZm9ybSAibmFtZT12YWx1
ZSIuIEZvciBleGFtcGxlIGFkZGluZyAiY2xhc3M9aXRjbDo6Y2xhc3MiCisjIHdpbGwgYWxsb3cg
eW91IHRvIHVzZSB0aGUgY29tbWFuZCBjbGFzcyBpbiB0aGUgaXRjbDo6Y2xhc3MgbWVhbmluZy4K
KworVENMX1NVQlNUICAgICAgICAgICAgICA9CisKKyMgU2V0IHRoZSBPUFRJTUlaRV9PVVRQVVRf
Rk9SX0MgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2YgQyBzb3VyY2VzCisj
IG9ubHkuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIG1vcmUgdGFp
bG9yZWQgZm9yIEMuIEZvcgorIyBpbnN0YW5jZSwgc29tZSBvZiB0aGUgbmFtZXMgdGhhdCBhcmUg
dXNlZCB3aWxsIGJlIGRpZmZlcmVudC4gVGhlIGxpc3Qgb2YgYWxsCisjIG1lbWJlcnMgd2lsbCBi
ZSBvbWl0dGVkLCBldGMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworT1BUSU1JWkVf
T1VUUFVUX0ZPUl9DICA9IE5PCisKKyMgU2V0IHRoZSBPUFRJTUlaRV9PVVRQVVRfSkFWQSB0YWcg
dG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBKYXZhIG9yCisjIFB5dGhvbiBzb3Vy
Y2VzIG9ubHkuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIG1vcmUg
dGFpbG9yZWQKKyMgZm9yIHRoYXQgbGFuZ3VhZ2UuIEZvciBpbnN0YW5jZSwgbmFtZXNwYWNlcyB3
aWxsIGJlIHByZXNlbnRlZCBhcyBwYWNrYWdlcywKKyMgcXVhbGlmaWVkIHNjb3BlcyB3aWxsIGxv
b2sgZGlmZmVyZW50LCBldGMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworT1BUSU1J
WkVfT1VUUFVUX0pBVkEgICA9IE5PCisKKyMgU2V0IHRoZSBPUFRJTUlaRV9GT1JfRk9SVFJBTiB0
YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBGb3J0cmFuCisjIHNvdXJjZXMu
IERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIHRhaWxvcmVkIGZvciBG
b3J0cmFuLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK09QVElNSVpFX0ZPUl9GT1JU
UkFOICAgPSBOTworCisjIFNldCB0aGUgT1BUSU1JWkVfT1VUUFVUX1ZIREwgdGFnIHRvIFlFUyBp
ZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2YgVkhETAorIyBzb3VyY2VzLiBEb3h5Z2VuIHdpbGwg
dGhlbiBnZW5lcmF0ZSBvdXRwdXQgdGhhdCBpcyB0YWlsb3JlZCBmb3IgVkhETC4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE5PLgorCitPUFRJTUlaRV9PVVRQVVRfVkhETCAgID0gTk8KKworIyBE
b3h5Z2VuIHNlbGVjdHMgdGhlIHBhcnNlciB0byB1c2UgZGVwZW5kaW5nIG9uIHRoZSBleHRlbnNp
b24gb2YgdGhlIGZpbGVzIGl0CisjIHBhcnNlcy4gV2l0aCB0aGlzIHRhZyB5b3UgY2FuIGFzc2ln
biB3aGljaCBwYXJzZXIgdG8gdXNlIGZvciBhIGdpdmVuCisjIGV4dGVuc2lvbi4gRG94eWdlbiBo
YXMgYSBidWlsdC1pbiBtYXBwaW5nLCBidXQgeW91IGNhbiBvdmVycmlkZSBvciBleHRlbmQgaXQK
KyMgdXNpbmcgdGhpcyB0YWcuIFRoZSBmb3JtYXQgaXMgZXh0PWxhbmd1YWdlLCB3aGVyZSBleHQg
aXMgYSBmaWxlIGV4dGVuc2lvbiwgYW5kCisjIGxhbmd1YWdlIGlzIG9uZSBvZiB0aGUgcGFyc2Vy
cyBzdXBwb3J0ZWQgYnkgZG94eWdlbjogSURMLCBKYXZhLCBKYXZhU2NyaXB0LAorIyBDIywgQywg
QysrLCBELCBQSFAsIE9iamVjdGl2ZS1DLCBQeXRob24sIEZvcnRyYW4sIFZIREwuIEZvciBpbnN0
YW5jZSB0byBtYWtlCisjIGRveHlnZW4gdHJlYXQgLmluYyBmaWxlcyBhcyBGb3J0cmFuIGZpbGVz
IChkZWZhdWx0IGlzIFBIUCksIGFuZCAuZiBmaWxlcyBhcyBDCisjIChkZWZhdWx0IGlzIEZvcnRy
YW4pLCB1c2U6IGluYz1Gb3J0cmFuIGY9Qy4KKyMKKyMgTm90ZSBGb3IgZmlsZXMgd2l0aG91dCBl
eHRlbnNpb24geW91IGNhbiB1c2Ugbm9fZXh0ZW5zaW9uIGFzIGEgcGxhY2Vob2xkZXIuCisjCisj
IE5vdGUgdGhhdCBmb3IgY3VzdG9tIGV4dGVuc2lvbnMgeW91IGFsc28gbmVlZCB0byBzZXQgRklM
RV9QQVRURVJOUyBvdGhlcndpc2UKKyMgdGhlIGZpbGVzIGFyZSBub3QgcmVhZCBieSBkb3h5Z2Vu
LgorCitFWFRFTlNJT05fTUFQUElORyAgICAgID0KKworIyBJZiB0aGUgTUFSS0RPV05fU1VQUE9S
VCB0YWcgaXMgZW5hYmxlZCB0aGVuIGRveHlnZW4gcHJlLXByb2Nlc3NlcyBhbGwgY29tbWVudHMK
KyMgYWNjb3JkaW5nIHRvIHRoZSBNYXJrZG93biBmb3JtYXQsIHdoaWNoIGFsbG93cyBmb3IgbW9y
ZSByZWFkYWJsZQorIyBkb2N1bWVudGF0aW9uLiBTZWUgaHR0cDovL2RhcmluZ2ZpcmViYWxsLm5l
dC9wcm9qZWN0cy9tYXJrZG93bi8gZm9yIGRldGFpbHMuCisjIFRoZSBvdXRwdXQgb2YgbWFya2Rv
d24gcHJvY2Vzc2luZyBpcyBmdXJ0aGVyIHByb2Nlc3NlZCBieSBkb3h5Z2VuLCBzbyB5b3UgY2Fu
CisjIG1peCBkb3h5Z2VuLCBIVE1MLCBhbmQgWE1MIGNvbW1hbmRzIHdpdGggTWFya2Rvd24gZm9y
bWF0dGluZy4gRGlzYWJsZSBvbmx5IGluCisjIGNhc2Ugb2YgYmFja3dhcmQgY29tcGF0aWJpbGl0
aWVzIGlzc3Vlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworTUFSS0RPV05fU1VQ
UE9SVCAgICAgICA9IFlFUworCisjIFdoZW4gZW5hYmxlZCBkb3h5Z2VuIHRyaWVzIHRvIGxpbmsg
d29yZHMgdGhhdCBjb3JyZXNwb25kIHRvIGRvY3VtZW50ZWQKKyMgY2xhc3Nlcywgb3IgbmFtZXNw
YWNlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIGRvY3VtZW50YXRpb24uIFN1Y2ggYSBsaW5rIGNh
bgorIyBiZSBwcmV2ZW50ZWQgaW4gaW5kaXZpZHVhbCBjYXNlcyBieSBieSBwdXR0aW5nIGEgJSBz
aWduIGluIGZyb250IG9mIHRoZSB3b3JkCisjIG9yIGdsb2JhbGx5IGJ5IHNldHRpbmcgQVVUT0xJ
TktfU1VQUE9SVCB0byBOTy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworQVVUT0xJ
TktfU1VQUE9SVCAgICAgICA9IFlFUworCisjIElmIHlvdSB1c2UgU1RMIGNsYXNzZXMgKGkuZS4g
c3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yLCBldGMuKSBidXQgZG8gbm90IHdhbnQKKyMgdG8gaW5j
bHVkZSAoYSB0YWcgZmlsZSBmb3IpIHRoZSBTVEwgc291cmNlcyBhcyBpbnB1dCwgdGhlbiB5b3Ug
c2hvdWxkIHNldCB0aGlzCisjIHRhZyB0byBZRVMgaW4gb3JkZXIgdG8gbGV0IGRveHlnZW4gbWF0
Y2ggZnVuY3Rpb25zIGRlY2xhcmF0aW9ucyBhbmQKKyMgZGVmaW5pdGlvbnMgd2hvc2UgYXJndW1l
bnRzIGNvbnRhaW4gU1RMIGNsYXNzZXMgKGUuZy4gZnVuYyhzdGQ6OnN0cmluZyk7CisjIHZlcnN1
cyBmdW5jKHN0ZDo6c3RyaW5nKSB7fSkuIFRoaXMgYWxzbyBtYWtlIHRoZSBpbmhlcml0YW5jZSBh
bmQgY29sbGFib3JhdGlvbgorIyBkaWFncmFtcyB0aGF0IGludm9sdmUgU1RMIGNsYXNzZXMgbW9y
ZSBjb21wbGV0ZSBhbmQgYWNjdXJhdGUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKwor
QlVJTFRJTl9TVExfU1VQUE9SVCAgICA9IFlFUworCisjIElmIHlvdSB1c2UgTWljcm9zb2Z0J3Mg
QysrL0NMSSBsYW5ndWFnZSwgeW91IHNob3VsZCBzZXQgdGhpcyBvcHRpb24gdG8gWUVTIHRvCisj
IGVuYWJsZSBwYXJzaW5nIHN1cHBvcnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKwor
Q1BQX0NMSV9TVVBQT1JUICAgICAgICA9IE5PCisKKyMgU2V0IHRoZSBTSVBfU1VQUE9SVCB0YWcg
dG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBzaXAgKHNlZToKKyMgaHR0cDovL3d3
dy5yaXZlcmJhbmtjb21wdXRpbmcuY28udWsvc29mdHdhcmUvc2lwL2ludHJvKSBzb3VyY2VzIG9u
bHkuIERveHlnZW4KKyMgd2lsbCBwYXJzZSB0aGVtIGxpa2Ugbm9ybWFsIEMrKyBidXQgd2lsbCBh
c3N1bWUgYWxsIGNsYXNzZXMgdXNlIHB1YmxpYyBpbnN0ZWFkCisjIG9mIHByaXZhdGUgaW5oZXJp
dGFuY2Ugd2hlbiBubyBleHBsaWNpdCBwcm90ZWN0aW9uIGtleXdvcmQgaXMgcHJlc2VudC4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitTSVBfU1VQUE9SVCAgICAgICAgICAgID0gTk8K
KworIyBGb3IgTWljcm9zb2Z0J3MgSURMIHRoZXJlIGFyZSBwcm9wZ2V0IGFuZCBwcm9wcHV0IGF0
dHJpYnV0ZXMgdG8gaW5kaWNhdGUKKyMgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcyBmb3IgYSBw
cm9wZXJ0eS4gU2V0dGluZyB0aGlzIG9wdGlvbiB0byBZRVMgd2lsbCBtYWtlCisjIGRveHlnZW4g
dG8gcmVwbGFjZSB0aGUgZ2V0IGFuZCBzZXQgbWV0aG9kcyBieSBhIHByb3BlcnR5IGluIHRoZSBk
b2N1bWVudGF0aW9uLgorIyBUaGlzIHdpbGwgb25seSB3b3JrIGlmIHRoZSBtZXRob2RzIGFyZSBp
bmRlZWQgZ2V0dGluZyBvciBzZXR0aW5nIGEgc2ltcGxlCisjIHR5cGUuIElmIHRoaXMgaXMgbm90
IHRoZSBjYXNlLCBvciB5b3Ugd2FudCB0byBzaG93IHRoZSBtZXRob2RzIGFueXdheSwgeW91Cisj
IHNob3VsZCBzZXQgdGhpcyBvcHRpb24gdG8gTk8uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZ
RVMuCisKK0lETF9QUk9QRVJUWV9TVVBQT1JUICAgPSBZRVMKKworIyBJZiBtZW1iZXIgZ3JvdXBp
bmcgaXMgdXNlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgdGhlIERJU1RSSUJVVEVfR1JPVVBf
RE9DCisjIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGVuIGRveHlnZW4gd2lsbCByZXVzZSB0aGUgZG9j
dW1lbnRhdGlvbiBvZiB0aGUgZmlyc3QKKyMgbWVtYmVyIGluIHRoZSBncm91cCAoaWYgYW55KSBm
b3IgdGhlIG90aGVyIG1lbWJlcnMgb2YgdGhlIGdyb3VwLiBCeSBkZWZhdWx0CisjIGFsbCBtZW1i
ZXJzIG9mIGEgZ3JvdXAgbXVzdCBiZSBkb2N1bWVudGVkIGV4cGxpY2l0bHkuCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKworRElTVFJJQlVURV9HUk9VUF9ET0MgICA9IE5PCisKKyMgU2V0
IHRoZSBTVUJHUk9VUElORyB0YWcgdG8gWUVTIHRvIGFsbG93IGNsYXNzIG1lbWJlciBncm91cHMg
b2YgdGhlIHNhbWUgdHlwZQorIyAoZm9yIGluc3RhbmNlIGEgZ3JvdXAgb2YgcHVibGljIGZ1bmN0
aW9ucykgdG8gYmUgcHV0IGFzIGEgc3ViZ3JvdXAgb2YgdGhhdAorIyB0eXBlIChlLmcuIHVuZGVy
IHRoZSBQdWJsaWMgRnVuY3Rpb25zIHNlY3Rpb24pLiBTZXQgaXQgdG8gTk8gdG8gcHJldmVudAor
IyBzdWJncm91cGluZy4gQWx0ZXJuYXRpdmVseSwgdGhpcyBjYW4gYmUgZG9uZSBwZXIgY2xhc3Mg
dXNpbmcgdGhlCisjIFxub3N1Ymdyb3VwaW5nIGNvbW1hbmQuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCisKK1NVQkdST1VQSU5HICAgICAgICAgICAgPSBZRVMKKworIyBXaGVuIHRoZSBJ
TkxJTkVfR1JPVVBFRF9DTEFTU0VTIHRhZyBpcyBzZXQgdG8gWUVTLCBjbGFzc2VzLCBzdHJ1Y3Rz
IGFuZCB1bmlvbnMKKyMgYXJlIHNob3duIGluc2lkZSB0aGUgZ3JvdXAgaW4gd2hpY2ggdGhleSBh
cmUgaW5jbHVkZWQgKGUuZy4gdXNpbmcgXGluZ3JvdXApCisjIGluc3RlYWQgb2Ygb24gYSBzZXBh
cmF0ZSBwYWdlIChmb3IgSFRNTCBhbmQgTWFuIHBhZ2VzKSBvciBzZWN0aW9uIChmb3IgTGFUZVgK
KyMgYW5kIFJURikuCisjCisjIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgZG9lcyBub3Qgd29yayBp
biBjb21iaW5hdGlvbiB3aXRoCisjIFNFUEFSQVRFX01FTUJFUl9QQUdFUy4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IE5PLgorCitJTkxJTkVfR1JPVVBFRF9DTEFTU0VTID0gTk8KKworIyBXaGVu
IHRoZSBJTkxJTkVfU0lNUExFX1NUUlVDVFMgdGFnIGlzIHNldCB0byBZRVMsIHN0cnVjdHMsIGNs
YXNzZXMsIGFuZCB1bmlvbnMKKyMgd2l0aCBvbmx5IHB1YmxpYyBkYXRhIGZpZWxkcyBvciBzaW1w
bGUgdHlwZWRlZiBmaWVsZHMgd2lsbCBiZSBzaG93biBpbmxpbmUgaW4KKyMgdGhlIGRvY3VtZW50
YXRpb24gb2YgdGhlIHNjb3BlIGluIHdoaWNoIHRoZXkgYXJlIGRlZmluZWQgKGkuZS4gZmlsZSwK
KyMgbmFtZXNwYWNlLCBvciBncm91cCBkb2N1bWVudGF0aW9uKSwgcHJvdmlkZWQgdGhpcyBzY29w
ZSBpcyBkb2N1bWVudGVkLiBJZiBzZXQKKyMgdG8gTk8sIHN0cnVjdHMsIGNsYXNzZXMsIGFuZCB1
bmlvbnMgYXJlIHNob3duIG9uIGEgc2VwYXJhdGUgcGFnZSAoZm9yIEhUTUwgYW5kCisjIE1hbiBw
YWdlcykgb3Igc2VjdGlvbiAoZm9yIExhVGVYIGFuZCBSVEYpLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisKK0lOTElORV9TSU1QTEVfU1RSVUNUUyAgPSBOTworCisjIFdoZW4gVFlQRURF
Rl9ISURFU19TVFJVQ1QgdGFnIGlzIGVuYWJsZWQsIGEgdHlwZWRlZiBvZiBhIHN0cnVjdCwgdW5p
b24sIG9yCisjIGVudW0gaXMgZG9jdW1lbnRlZCBhcyBzdHJ1Y3QsIHVuaW9uLCBvciBlbnVtIHdp
dGggdGhlIG5hbWUgb2YgdGhlIHR5cGVkZWYuIFNvCisjIHR5cGVkZWYgc3RydWN0IFR5cGVTIHt9
IFR5cGVULCB3aWxsIGFwcGVhciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhcyBhIHN0cnVjdAorIyB3
aXRoIG5hbWUgVHlwZVQuIFdoZW4gZGlzYWJsZWQgdGhlIHR5cGVkZWYgd2lsbCBhcHBlYXIgYXMg
YSBtZW1iZXIgb2YgYSBmaWxlLAorIyBuYW1lc3BhY2UsIG9yIGNsYXNzLiBBbmQgdGhlIHN0cnVj
dCB3aWxsIGJlIG5hbWVkIFR5cGVTLiBUaGlzIGNhbiB0eXBpY2FsbHkgYmUKKyMgdXNlZnVsIGZv
ciBDIGNvZGUgaW4gY2FzZSB0aGUgY29kaW5nIGNvbnZlbnRpb24gZGljdGF0ZXMgdGhhdCBhbGwg
Y29tcG91bmQKKyMgdHlwZXMgYXJlIHR5cGVkZWYnZWQgYW5kIG9ubHkgdGhlIHR5cGVkZWYgaXMg
cmVmZXJlbmNlZCwgbmV2ZXIgdGhlIHRhZyBuYW1lLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisKK1RZUEVERUZfSElERVNfU1RSVUNUICAgPSBOTworCisjIFRoZSBzaXplIG9mIHRoZSBz
eW1ib2wgbG9va3VwIGNhY2hlIGNhbiBiZSBzZXQgdXNpbmcgTE9PS1VQX0NBQ0hFX1NJWkUuIFRo
aXMKKyMgY2FjaGUgaXMgdXNlZCB0byByZXNvbHZlIHN5bWJvbHMgZ2l2ZW4gdGhlaXIgbmFtZSBh
bmQgc2NvcGUuIFNpbmNlIHRoaXMgY2FuIGJlCisjIGFuIGV4cGVuc2l2ZSBwcm9jZXNzIGFuZCBv
ZnRlbiB0aGUgc2FtZSBzeW1ib2wgYXBwZWFycyBtdWx0aXBsZSB0aW1lcyBpbiB0aGUKKyMgY29k
ZSwgZG94eWdlbiBrZWVwcyBhIGNhY2hlIG9mIHByZS1yZXNvbHZlZCBzeW1ib2xzLiBJZiB0aGUg
Y2FjaGUgaXMgdG9vIHNtYWxsCisjIGRveHlnZW4gd2lsbCBiZWNvbWUgc2xvd2VyLiBJZiB0aGUg
Y2FjaGUgaXMgdG9vIGxhcmdlLCBtZW1vcnkgaXMgd2FzdGVkLiBUaGUKKyMgY2FjaGUgc2l6ZSBp
cyBnaXZlbiBieSB0aGlzIGZvcm11bGE6IDJeKDE2K0xPT0tVUF9DQUNIRV9TSVpFKS4gVGhlIHZh
bGlkIHJhbmdlCisjIGlzIDAuLjksIHRoZSBkZWZhdWx0IGlzIDAsIGNvcnJlc3BvbmRpbmcgdG8g
YSBjYWNoZSBzaXplIG9mIDJeMTY9NjU1MzYKKyMgc3ltYm9scy4gQXQgdGhlIGVuZCBvZiBhIHJ1
biBkb3h5Z2VuIHdpbGwgcmVwb3J0IHRoZSBjYWNoZSB1c2FnZSBhbmQgc3VnZ2VzdAorIyB0aGUg
b3B0aW1hbCBjYWNoZSBzaXplIGZyb20gYSBzcGVlZCBwb2ludCBvZiB2aWV3LgorIyBNaW5pbXVt
IHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5LCBkZWZhdWx0IHZhbHVlOiAwLgorCitMT09LVVBf
Q0FDSEVfU0laRSAgICAgID0gMAorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEJ1aWxkIHJlbGF0
ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgdGhl
IEVYVFJBQ1RfQUxMIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBhc3N1bWUgYWxsIGVu
dGl0aWVzIGluCisjIGRvY3VtZW50YXRpb24gYXJlIGRvY3VtZW50ZWQsIGV2ZW4gaWYgbm8gZG9j
dW1lbnRhdGlvbiB3YXMgYXZhaWxhYmxlLiBQcml2YXRlCisjIGNsYXNzIG1lbWJlcnMgYW5kIHN0
YXRpYyBmaWxlIG1lbWJlcnMgd2lsbCBiZSBoaWRkZW4gdW5sZXNzIHRoZQorIyBFWFRSQUNUX1BS
SVZBVEUgcmVzcGVjdGl2ZWx5IEVYVFJBQ1RfU1RBVElDIHRhZ3MgYXJlIHNldCB0byBZRVMuCisj
IE5vdGU6IFRoaXMgd2lsbCBhbHNvIGRpc2FibGUgdGhlIHdhcm5pbmdzIGFib3V0IHVuZG9jdW1l
bnRlZCBtZW1iZXJzIHRoYXQgYXJlCisjIG5vcm1hbGx5IHByb2R1Y2VkIHdoZW4gV0FSTklOR1Mg
aXMgc2V0IHRvIFlFUy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitFWFRSQUNUX0FM
TCAgICAgICAgICAgID0gWUVTCisKKyMgSWYgdGhlIEVYVFJBQ1RfUFJJVkFURSB0YWcgaXMgc2V0
IHRvIFlFUyBhbGwgcHJpdmF0ZSBtZW1iZXJzIG9mIGEgY2xhc3Mgd2lsbAorIyBiZSBpbmNsdWRl
ZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitF
WFRSQUNUX1BSSVZBVEUgICAgICAgID0gTk8KKworIyBJZiB0aGUgRVhUUkFDVF9QQUNLQUdFIHRh
ZyBpcyBzZXQgdG8gWUVTIGFsbCBtZW1iZXJzIHdpdGggcGFja2FnZSBvciBpbnRlcm5hbAorIyBz
Y29wZSB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCisKK0VYVFJBQ1RfUEFDS0FHRSAgICAgICAgPSBOTworCisjIElmIHRo
ZSBFWFRSQUNUX1NUQVRJQyB0YWcgaXMgc2V0IHRvIFlFUyBhbGwgc3RhdGljIG1lbWJlcnMgb2Yg
YSBmaWxlIHdpbGwgYmUKKyMgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworRVhUUkFDVF9TVEFUSUMgICAgICAgICA9IFlFUworCisj
IElmIHRoZSBFWFRSQUNUX0xPQ0FMX0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMgY2xhc3NlcyAo
YW5kIHN0cnVjdHMpIGRlZmluZWQKKyMgbG9jYWxseSBpbiBzb3VyY2UgZmlsZXMgd2lsbCBiZSBp
bmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIE5PCisjIG9ubHkgY2xhc3Nl
cyBkZWZpbmVkIGluIGhlYWRlciBmaWxlcyBhcmUgaW5jbHVkZWQuIERvZXMgbm90IGhhdmUgYW55
IGVmZmVjdAorIyBmb3IgSmF2YSBzb3VyY2VzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVT
LgorCitFWFRSQUNUX0xPQ0FMX0NMQVNTRVMgID0gTk8KKworIyBUaGlzIGZsYWcgaXMgb25seSB1
c2VmdWwgZm9yIE9iamVjdGl2ZS1DIGNvZGUuIFdoZW4gc2V0IHRvIFlFUyBsb2NhbCBtZXRob2Rz
LAorIyB3aGljaCBhcmUgZGVmaW5lZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gc2VjdGlvbiBidXQg
bm90IGluIHRoZSBpbnRlcmZhY2UgYXJlCisjIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9u
LiBJZiBzZXQgdG8gTk8gb25seSBtZXRob2RzIGluIHRoZSBpbnRlcmZhY2UgYXJlCisjIGluY2x1
ZGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0VYVFJBQ1RfTE9DQUxfTUVUSE9E
UyAgPSBOTworCisjIElmIHRoaXMgZmxhZyBpcyBzZXQgdG8gWUVTLCB0aGUgbWVtYmVycyBvZiBh
bm9ueW1vdXMgbmFtZXNwYWNlcyB3aWxsIGJlCisjIGV4dHJhY3RlZCBhbmQgYXBwZWFyIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFzIGEgbmFtZXNwYWNlIGNhbGxlZAorIyAnYW5vbnltb3VzX25hbWVz
cGFjZXtmaWxlfScsIHdoZXJlIGZpbGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBiYXNlIG5h
bWUgb2YKKyMgdGhlIGZpbGUgdGhhdCBjb250YWlucyB0aGUgYW5vbnltb3VzIG5hbWVzcGFjZS4g
QnkgZGVmYXVsdCBhbm9ueW1vdXMgbmFtZXNwYWNlCisjIGFyZSBoaWRkZW4uCisjIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4KKworRVhUUkFDVF9BTk9OX05TUEFDRVMgICA9IE5PCisKKyMgSWYg
dGhlIEhJREVfVU5ET0NfTUVNQkVSUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhp
ZGUgYWxsCisjIHVuZG9jdW1lbnRlZCBtZW1iZXJzIGluc2lkZSBkb2N1bWVudGVkIGNsYXNzZXMg
b3IgZmlsZXMuIElmIHNldCB0byBOTyB0aGVzZQorIyBtZW1iZXJzIHdpbGwgYmUgaW5jbHVkZWQg
aW4gdGhlIHZhcmlvdXMgb3ZlcnZpZXdzLCBidXQgbm8gZG9jdW1lbnRhdGlvbgorIyBzZWN0aW9u
IGlzIGdlbmVyYXRlZC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBpZiBFWFRSQUNUX0FMTCBp
cyBlbmFibGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0hJREVfVU5ET0NfTUVN
QkVSUyAgICAgPSBOTworCisjIElmIHRoZSBISURFX1VORE9DX0NMQVNTRVMgdGFnIGlzIHNldCB0
byBZRVMsIGRveHlnZW4gd2lsbCBoaWRlIGFsbAorIyB1bmRvY3VtZW50ZWQgY2xhc3NlcyB0aGF0
IGFyZSBub3JtYWxseSB2aXNpYmxlIGluIHRoZSBjbGFzcyBoaWVyYXJjaHkuIElmIHNldAorIyB0
byBOTyB0aGVzZSBjbGFzc2VzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHZhcmlvdXMgb3ZlcnZp
ZXdzLiBUaGlzIG9wdGlvbiBoYXMKKyMgbm8gZWZmZWN0IGlmIEVYVFJBQ1RfQUxMIGlzIGVuYWJs
ZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworSElERV9VTkRPQ19DTEFTU0VTICAg
ICA9IE5PCisKKyMgSWYgdGhlIEhJREVfRlJJRU5EX0NPTVBPVU5EUyB0YWcgaXMgc2V0IHRvIFlF
UywgZG94eWdlbiB3aWxsIGhpZGUgYWxsIGZyaWVuZAorIyAoY2xhc3N8c3RydWN0fHVuaW9uKSBk
ZWNsYXJhdGlvbnMuIElmIHNldCB0byBOTyB0aGVzZSBkZWNsYXJhdGlvbnMgd2lsbCBiZQorIyBp
bmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorCitISURFX0ZSSUVORF9DT01QT1VORFMgID0gTk8KKworIyBJZiB0aGUgSElERV9JTl9CT0RZ
X0RPQ1MgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBoaWRlIGFueQorIyBkb2N1bWVu
dGF0aW9uIGJsb2NrcyBmb3VuZCBpbnNpZGUgdGhlIGJvZHkgb2YgYSBmdW5jdGlvbi4gSWYgc2V0
IHRvIE5PIHRoZXNlCisjIGJsb2NrcyB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBmdW5jdGlvbidz
IGRldGFpbGVkIGRvY3VtZW50YXRpb24gYmxvY2suCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBO
Ty4KKworSElERV9JTl9CT0RZX0RPQ1MgICAgICA9IE5PCisKKyMgVGhlIElOVEVSTkFMX0RPQ1Mg
dGFnIGRldGVybWluZXMgaWYgZG9jdW1lbnRhdGlvbiB0aGF0IGlzIHR5cGVkIGFmdGVyIGEKKyMg
XGludGVybmFsIGNvbW1hbmQgaXMgaW5jbHVkZWQuIElmIHRoZSB0YWcgaXMgc2V0IHRvIE5PIHRo
ZW4gdGhlIGRvY3VtZW50YXRpb24KKyMgd2lsbCBiZSBleGNsdWRlZC4gU2V0IGl0IHRvIFlFUyB0
byBpbmNsdWRlIHRoZSBpbnRlcm5hbCBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uCisKK0lOVEVSTkFMX0RPQ1MgICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgQ0FT
RV9TRU5TRV9OQU1FUyB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gZG94eWdlbiB3aWxsIG9ubHkgZ2Vu
ZXJhdGUgZmlsZQorIyBuYW1lcyBpbiBsb3dlci1jYXNlIGxldHRlcnMuIElmIHNldCB0byBZRVMg
dXBwZXItY2FzZSBsZXR0ZXJzIGFyZSBhbHNvCisjIGFsbG93ZWQuIFRoaXMgaXMgdXNlZnVsIGlm
IHlvdSBoYXZlIGNsYXNzZXMgb3IgZmlsZXMgd2hvc2UgbmFtZXMgb25seSBkaWZmZXIKKyMgaW4g
Y2FzZSBhbmQgaWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0cyBjYXNlIHNlbnNpdGl2ZSBmaWxl
IG5hbWVzLiBXaW5kb3dzCisjIGFuZCBNYWMgdXNlcnMgYXJlIGFkdmlzZWQgdG8gc2V0IHRoaXMg
b3B0aW9uIHRvIE5PLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogc3lzdGVtIGRlcGVuZGVudC4K
KworQ0FTRV9TRU5TRV9OQU1FUyAgICAgICA9IE5PCisKKyMgSWYgdGhlIEhJREVfU0NPUEVfTkFN
RVMgdGFnIGlzIHNldCB0byBOTyB0aGVuIGRveHlnZW4gd2lsbCBzaG93IG1lbWJlcnMgd2l0aAor
IyB0aGVpciBmdWxsIGNsYXNzIGFuZCBuYW1lc3BhY2Ugc2NvcGVzIGluIHRoZSBkb2N1bWVudGF0
aW9uLiBJZiBzZXQgdG8gWUVTIHRoZQorIyBzY29wZSB3aWxsIGJlIGhpZGRlbi4KKyMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE5PLgorCitISURFX1NDT1BFX05BTUVTICAgICAgID0gTk8KKworIyBJ
ZiB0aGUgU0hPV19JTkNMVURFX0ZJTEVTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3
aWxsIHB1dCBhIGxpc3Qgb2YKKyMgdGhlIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGJ5IGEgZmls
ZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGF0IGZpbGUuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCisKK1NIT1dfSU5DTFVERV9GSUxFUyAgICAgPSBZRVMKKworIyBJZiB0aGUgRk9S
Q0VfTE9DQUxfSU5DTFVERVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgbGlz
dCBpbmNsdWRlCisjIGZpbGVzIHdpdGggZG91YmxlIHF1b3RlcyBpbiB0aGUgZG9jdW1lbnRhdGlv
biByYXRoZXIgdGhhbiB3aXRoIHNoYXJwIGJyYWNrZXRzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTk8uCisKK0ZPUkNFX0xPQ0FMX0lOQ0xVREVTICAgPSBOTworCisjIElmIHRoZSBJTkxJTkVf
SU5GTyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGEgdGFnIFtpbmxpbmVdIGlzIGluc2VydGVkIGlu
IHRoZQorIyBkb2N1bWVudGF0aW9uIGZvciBpbmxpbmUgbWVtYmVycy4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IFlFUy4KKworSU5MSU5FX0lORk8gICAgICAgICAgICA9IFlFUworCisjIElmIHRo
ZSBTT1JUX01FTUJFUl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNv
cnQgdGhlCisjIChkZXRhaWxlZCkgZG9jdW1lbnRhdGlvbiBvZiBmaWxlIGFuZCBjbGFzcyBtZW1i
ZXJzIGFscGhhYmV0aWNhbGx5IGJ5IG1lbWJlcgorIyBuYW1lLiBJZiBzZXQgdG8gTk8gdGhlIG1l
bWJlcnMgd2lsbCBhcHBlYXIgaW4gZGVjbGFyYXRpb24gb3JkZXIuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCisKK1NPUlRfTUVNQkVSX0RPQ1MgICAgICAgPSBZRVMKKworIyBJZiB0aGUg
U09SVF9CUklFRl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNvcnQg
dGhlIGJyaWVmCisjIGRlc2NyaXB0aW9ucyBvZiBmaWxlLCBuYW1lc3BhY2UgYW5kIGNsYXNzIG1l
bWJlcnMgYWxwaGFiZXRpY2FsbHkgYnkgbWVtYmVyCisjIG5hbWUuIElmIHNldCB0byBOTyB0aGUg
bWVtYmVycyB3aWxsIGFwcGVhciBpbiBkZWNsYXJhdGlvbiBvcmRlci4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorCitTT1JUX0JSSUVGX0RPQ1MgICAgICAgID0gTk8KKworIyBJZiB0aGUg
U09SVF9NRU1CRVJTX0NUT1JTXzFTVCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2ls
bCBzb3J0IHRoZQorIyAoYnJpZWYgYW5kIGRldGFpbGVkKSBkb2N1bWVudGF0aW9uIG9mIGNsYXNz
IG1lbWJlcnMgc28gdGhhdCBjb25zdHJ1Y3RvcnMgYW5kCisjIGRlc3RydWN0b3JzIGFyZSBsaXN0
ZWQgZmlyc3QuIElmIHNldCB0byBOTyB0aGUgY29uc3RydWN0b3JzIHdpbGwgYXBwZWFyIGluIHRo
ZQorIyByZXNwZWN0aXZlIG9yZGVycyBkZWZpbmVkIGJ5IFNPUlRfQlJJRUZfRE9DUyBhbmQgU09S
VF9NRU1CRVJfRE9DUy4KKyMgTm90ZTogSWYgU09SVF9CUklFRl9ET0NTIGlzIHNldCB0byBOTyB0
aGlzIG9wdGlvbiBpcyBpZ25vcmVkIGZvciBzb3J0aW5nIGJyaWVmCisjIG1lbWJlciBkb2N1bWVu
dGF0aW9uLgorIyBOb3RlOiBJZiBTT1JUX01FTUJFUl9ET0NTIGlzIHNldCB0byBOTyB0aGlzIG9w
dGlvbiBpcyBpZ25vcmVkIGZvciBzb3J0aW5nCisjIGRldGFpbGVkIG1lbWJlciBkb2N1bWVudGF0
aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NPUlRfTUVNQkVSU19DVE9SU18x
U1QgPSBOTworCisjIElmIHRoZSBTT1JUX0dST1VQX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlIGhpZXJhcmNoeQorIyBvZiBncm91cCBuYW1lcyBpbnRv
IGFscGhhYmV0aWNhbCBvcmRlci4gSWYgc2V0IHRvIE5PIHRoZSBncm91cCBuYW1lcyB3aWxsCisj
IGFwcGVhciBpbiB0aGVpciBkZWZpbmVkIG9yZGVyLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisKK1NPUlRfR1JPVVBfTkFNRVMgICAgICAgPSBOTworCisjIElmIHRoZSBTT1JUX0JZX1ND
T1BFX05BTUUgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBjbGFzcyBsaXN0IHdpbGwgYmUgc29ydGVk
IGJ5CisjIGZ1bGx5LXF1YWxpZmllZCBuYW1lcywgaW5jbHVkaW5nIG5hbWVzcGFjZXMuIElmIHNl
dCB0byBOTywgdGhlIGNsYXNzIGxpc3Qgd2lsbAorIyBiZSBzb3J0ZWQgb25seSBieSBjbGFzcyBu
YW1lLCBub3QgaW5jbHVkaW5nIHRoZSBuYW1lc3BhY2UgcGFydC4KKyMgTm90ZTogVGhpcyBvcHRp
b24gaXMgbm90IHZlcnkgdXNlZnVsIGlmIEhJREVfU0NPUEVfTkFNRVMgaXMgc2V0IHRvIFlFUy4K
KyMgTm90ZTogVGhpcyBvcHRpb24gYXBwbGllcyBvbmx5IHRvIHRoZSBjbGFzcyBsaXN0LCBub3Qg
dG8gdGhlIGFscGhhYmV0aWNhbAorIyBsaXN0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisKK1NPUlRfQllfU0NPUEVfTkFNRSAgICAgPSBZRVMKKworIyBJZiB0aGUgU1RSSUNUX1BST1RP
X01BVENISU5HIG9wdGlvbiBpcyBlbmFibGVkIGFuZCBkb3h5Z2VuIGZhaWxzIHRvIGRvIHByb3Bl
cgorIyB0eXBlIHJlc29sdXRpb24gb2YgYWxsIHBhcmFtZXRlcnMgb2YgYSBmdW5jdGlvbiBpdCB3
aWxsIHJlamVjdCBhIG1hdGNoIGJldHdlZW4KKyMgdGhlIHByb3RvdHlwZSBhbmQgdGhlIGltcGxl
bWVudGF0aW9uIG9mIGEgbWVtYmVyIGZ1bmN0aW9uIGV2ZW4gaWYgdGhlcmUgaXMKKyMgb25seSBv
bmUgY2FuZGlkYXRlIG9yIGl0IGlzIG9idmlvdXMgd2hpY2ggY2FuZGlkYXRlIHRvIGNob29zZSBi
eSBkb2luZyBhCisjIHNpbXBsZSBzdHJpbmcgbWF0Y2guIEJ5IGRpc2FibGluZyBTVFJJQ1RfUFJP
VE9fTUFUQ0hJTkcgZG94eWdlbiB3aWxsIHN0aWxsCisjIGFjY2VwdCBhIG1hdGNoIGJldHdlZW4g
cHJvdG90eXBlIGFuZCBpbXBsZW1lbnRhdGlvbiBpbiBzdWNoIGNhc2VzLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uCisKK1NUUklDVF9QUk9UT19NQVRDSElORyAgPSBOTworCisjIFRoZSBH
RU5FUkFURV9UT0RPTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlICggWUVTKSBvciBkaXNh
YmxlICggTk8pIHRoZQorIyB0b2RvIGxpc3QuIFRoaXMgbGlzdCBpcyBjcmVhdGVkIGJ5IHB1dHRp
bmcgXHRvZG8gY29tbWFuZHMgaW4gdGhlCisjIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCisKK0dFTkVSQVRFX1RPRE9MSVNUICAgICAgPSBZRVMKKworIyBUaGUg
R0VORVJBVEVfVEVTVExJU1QgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSAoIFlFUykgb3IgZGlz
YWJsZSAoIE5PKSB0aGUKKyMgdGVzdCBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRlZCBieSBwdXR0
aW5nIFx0ZXN0IGNvbW1hbmRzIGluIHRoZQorIyBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLgorCitHRU5FUkFURV9URVNUTElTVCAgICAgID0gTk8KKworIyBUaGUg
R0VORVJBVEVfQlVHTElTVCB0YWcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlICggWUVTKSBvciBkaXNh
YmxlICggTk8pIHRoZSBidWcKKyMgbGlzdC4gVGhpcyBsaXN0IGlzIGNyZWF0ZWQgYnkgcHV0dGlu
ZyBcYnVnIGNvbW1hbmRzIGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogWUVTLgorCitHRU5FUkFURV9CVUdMSVNUICAgICAgID0gTk8KKworIyBUaGUgR0VORVJB
VEVfREVQUkVDQVRFRExJU1QgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSAoIFlFUykgb3IgZGlz
YWJsZSAoIE5PKQorIyB0aGUgZGVwcmVjYXRlZCBsaXN0LiBUaGlzIGxpc3QgaXMgY3JlYXRlZCBi
eSBwdXR0aW5nIFxkZXByZWNhdGVkIGNvbW1hbmRzIGluCisjIHRoZSBkb2N1bWVudGF0aW9uLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitHRU5FUkFURV9ERVBSRUNBVEVETElTVD0g
WUVTCisKKyMgVGhlIEVOQUJMRURfU0VDVElPTlMgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBj
b25kaXRpb25hbCBkb2N1bWVudGF0aW9uCisjIHNlY3Rpb25zLCBtYXJrZWQgYnkgXGlmIDxzZWN0
aW9uX2xhYmVsPiAuLi4gXGVuZGlmIGFuZCBcY29uZCA8c2VjdGlvbl9sYWJlbD4KKyMgLi4uIFxl
bmRjb25kIGJsb2Nrcy4KKworRU5BQkxFRF9TRUNUSU9OUyAgICAgICA9CisKKyMgVGhlIE1BWF9J
TklUSUFMSVpFUl9MSU5FUyB0YWcgZGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbGlu
ZXMgdGhhdCB0aGUKKyMgaW5pdGlhbCB2YWx1ZSBvZiBhIHZhcmlhYmxlIG9yIG1hY3JvIC8gZGVm
aW5lIGNhbiBoYXZlIGZvciBpdCB0byBhcHBlYXIgaW4gdGhlCisjIGRvY3VtZW50YXRpb24uIElm
IHRoZSBpbml0aWFsaXplciBjb25zaXN0cyBvZiBtb3JlIGxpbmVzIHRoYW4gc3BlY2lmaWVkIGhl
cmUKKyMgaXQgd2lsbCBiZSBoaWRkZW4uIFVzZSBhIHZhbHVlIG9mIDAgdG8gaGlkZSBpbml0aWFs
aXplcnMgY29tcGxldGVseS4gVGhlCisjIGFwcGVhcmFuY2Ugb2YgdGhlIHZhbHVlIG9mIGluZGl2
aWR1YWwgdmFyaWFibGVzIGFuZCBtYWNyb3MgLyBkZWZpbmVzIGNhbiBiZQorIyBjb250cm9sbGVk
IHVzaW5nIFxzaG93aW5pdGlhbGl6ZXIgb3IgXGhpZGVpbml0aWFsaXplciBjb21tYW5kIGluIHRo
ZQorIyBkb2N1bWVudGF0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nLgorIyBNaW5pbXVt
IHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAxMDAwMCwgZGVmYXVsdCB2YWx1ZTogMzAuCisKK01B
WF9JTklUSUFMSVpFUl9MSU5FUyAgPSAzMAorCisjIFNldCB0aGUgU0hPV19VU0VEX0ZJTEVTIHRh
ZyB0byBOTyB0byBkaXNhYmxlIHRoZSBsaXN0IG9mIGZpbGVzIGdlbmVyYXRlZCBhdAorIyB0aGUg
Ym90dG9tIG9mIHRoZSBkb2N1bWVudGF0aW9uIG9mIGNsYXNzZXMgYW5kIHN0cnVjdHMuIElmIHNl
dCB0byBZRVMgdGhlIGxpc3QKKyMgd2lsbCBtZW50aW9uIHRoZSBmaWxlcyB0aGF0IHdlcmUgdXNl
ZCB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IFlFUy4KKworU0hPV19VU0VEX0ZJTEVTICAgICAgICA9IFlFUworCisjIFNldCB0aGUgU0hPV19G
SUxFUyB0YWcgdG8gTk8gdG8gZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgRmlsZXMgcGFn
ZS4gVGhpcworIyB3aWxsIHJlbW92ZSB0aGUgRmlsZXMgZW50cnkgZnJvbSB0aGUgUXVpY2sgSW5k
ZXggYW5kIGZyb20gdGhlIEZvbGRlciBUcmVlIFZpZXcKKyMgKGlmIHNwZWNpZmllZCkuCisjIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1NIT1dfRklMRVMgICAgICAgICAgICAgPSBZRVMK
KworIyBTZXQgdGhlIFNIT1dfTkFNRVNQQUNFUyB0YWcgdG8gTk8gdG8gZGlzYWJsZSB0aGUgZ2Vu
ZXJhdGlvbiBvZiB0aGUgTmFtZXNwYWNlcworIyBwYWdlLiBUaGlzIHdpbGwgcmVtb3ZlIHRoZSBO
YW1lc3BhY2VzIGVudHJ5IGZyb20gdGhlIFF1aWNrIEluZGV4IGFuZCBmcm9tIHRoZQorIyBGb2xk
ZXIgVHJlZSBWaWV3IChpZiBzcGVjaWZpZWQpLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVT
LgorCitTSE9XX05BTUVTUEFDRVMgICAgICAgID0gWUVTCisKKyMgVGhlIEZJTEVfVkVSU0lPTl9G
SUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm9ncmFtIG9yIHNjcmlwdCB0aGF0
CisjIGRveHlnZW4gc2hvdWxkIGludm9rZSB0byBnZXQgdGhlIGN1cnJlbnQgdmVyc2lvbiBmb3Ig
ZWFjaCBmaWxlICh0eXBpY2FsbHkgZnJvbQorIyB0aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbSku
IERveHlnZW4gd2lsbCBpbnZva2UgdGhlIHByb2dyYW0gYnkgZXhlY3V0aW5nICh2aWEKKyMgcG9w
ZW4oKSkgdGhlIGNvbW1hbmQgY29tbWFuZCBpbnB1dC1maWxlLCB3aGVyZSBjb21tYW5kIGlzIHRo
ZSB2YWx1ZSBvZiB0aGUKKyMgRklMRV9WRVJTSU9OX0ZJTFRFUiB0YWcsIGFuZCBpbnB1dC1maWxl
IGlzIHRoZSBuYW1lIG9mIGFuIGlucHV0IGZpbGUgcHJvdmlkZWQKKyMgYnkgZG94eWdlbi4gV2hh
dGV2ZXIgdGhlIHByb2dyYW0gd3JpdGVzIHRvIHN0YW5kYXJkIG91dHB1dCBpcyB1c2VkIGFzIHRo
ZSBmaWxlCisjIHZlcnNpb24uIEZvciBhbiBleGFtcGxlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4K
KworRklMRV9WRVJTSU9OX0ZJTFRFUiAgICA9CisKKyMgVGhlIExBWU9VVF9GSUxFIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IGEgbGF5b3V0IGZpbGUgd2hpY2ggd2lsbCBiZSBwYXJzZWQKKyMg
YnkgZG94eWdlbi4gVGhlIGxheW91dCBmaWxlIGNvbnRyb2xzIHRoZSBnbG9iYWwgc3RydWN0dXJl
IG9mIHRoZSBnZW5lcmF0ZWQKKyMgb3V0cHV0IGZpbGVzIGluIGFuIG91dHB1dCBmb3JtYXQgaW5k
ZXBlbmRlbnQgd2F5LiBUbyBjcmVhdGUgdGhlIGxheW91dCBmaWxlCisjIHRoYXQgcmVwcmVzZW50
cyBkb3h5Z2VuJ3MgZGVmYXVsdHMsIHJ1biBkb3h5Z2VuIHdpdGggdGhlIC1sIG9wdGlvbi4gWW91
IGNhbgorIyBvcHRpb25hbGx5IHNwZWNpZnkgYSBmaWxlIG5hbWUgYWZ0ZXIgdGhlIG9wdGlvbiwg
aWYgb21pdHRlZCBEb3h5Z2VuTGF5b3V0LnhtbAorIyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5hbWUg
b2YgdGhlIGxheW91dCBmaWxlLgorIworIyBOb3RlIHRoYXQgaWYgeW91IHJ1biBkb3h5Z2VuIGZy
b20gYSBkaXJlY3RvcnkgY29udGFpbmluZyBhIGZpbGUgY2FsbGVkCisjIERveHlnZW5MYXlvdXQu
eG1sLCBkb3h5Z2VuIHdpbGwgcGFyc2UgaXQgYXV0b21hdGljYWxseSBldmVuIGlmIHRoZSBMQVlP
VVRfRklMRQorIyB0YWcgaXMgbGVmdCBlbXB0eS4KKworTEFZT1VUX0ZJTEUgICAgICAgICAgICA9
CisKKyMgVGhlIENJVEVfQklCX0ZJTEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBv
ciBtb3JlIGJpYiBmaWxlcyBjb250YWluaW5nCisjIHRoZSByZWZlcmVuY2UgZGVmaW5pdGlvbnMu
IFRoaXMgbXVzdCBiZSBhIGxpc3Qgb2YgLmJpYiBmaWxlcy4gVGhlIC5iaWIKKyMgZXh0ZW5zaW9u
IGlzIGF1dG9tYXRpY2FsbHkgYXBwZW5kZWQgaWYgb21pdHRlZC4gVGhpcyByZXF1aXJlcyB0aGUg
YmlidGV4IHRvb2wKKyMgdG8gYmUgaW5zdGFsbGVkLiBTZWUgYWxzbyBodHRwOi8vZW4ud2lraXBl
ZGlhLm9yZy93aWtpL0JpYlRlWCBmb3IgbW9yZSBpbmZvLgorIyBGb3IgTGFUZVggdGhlIHN0eWxl
IG9mIHRoZSBiaWJsaW9ncmFwaHkgY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcKKyMgTEFURVhfQklC
X1NUWUxFLiBUbyB1c2UgdGhpcyBmZWF0dXJlIHlvdSBuZWVkIGJpYnRleCBhbmQgcGVybCBhdmFp
bGFibGUgaW4gdGhlCisjIHNlYXJjaCBwYXRoLiBEbyBub3QgdXNlIGZpbGUgbmFtZXMgd2l0aCBz
cGFjZXMsIGJpYnRleCBjYW5ub3QgaGFuZGxlIHRoZW0uIFNlZQorIyBhbHNvIFxjaXRlIGZvciBp
bmZvIGhvdyB0byBjcmVhdGUgcmVmZXJlbmNlcy4KKworQ0lURV9CSUJfRklMRVMgICAgICAgICA9
CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQg
dG8gd2FybmluZyBhbmQgcHJvZ3Jlc3MgbWVzc2FnZXMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
IyBUaGUgUVVJRVQgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4gb24vb2ZmIHRoZSBtZXNzYWdlcyB0
aGF0IGFyZSBnZW5lcmF0ZWQgdG8KKyMgc3RhbmRhcmQgb3V0cHV0IGJ5IGRveHlnZW4uIElmIFFV
SUVUIGlzIHNldCB0byBZRVMgdGhpcyBpbXBsaWVzIHRoYXQgdGhlCisjIG1lc3NhZ2VzIGFyZSBv
ZmYuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworUVVJRVQgICAgICAgICAgICAgICAg
ICA9IE5PCisKKyMgVGhlIFdBUk5JTkdTIHRhZyBjYW4gYmUgdXNlZCB0byB0dXJuIG9uL29mZiB0
aGUgd2FybmluZyBtZXNzYWdlcyB0aGF0IGFyZQorIyBnZW5lcmF0ZWQgdG8gc3RhbmRhcmQgZXJy
b3IgKCBzdGRlcnIpIGJ5IGRveHlnZW4uIElmIFdBUk5JTkdTIGlzIHNldCB0byBZRVMKKyMgdGhp
cyBpbXBsaWVzIHRoYXQgdGhlIHdhcm5pbmdzIGFyZSBvbi4KKyMKKyMgVGlwOiBUdXJuIHdhcm5p
bmdzIG9uIHdoaWxlIHdyaXRpbmcgdGhlIGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuCisKK1dBUk5JTkdTICAgICAgICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUg
V0FSTl9JRl9VTkRPQ1VNRU5URUQgdGFnIGlzIHNldCB0byBZRVMsIHRoZW4gZG94eWdlbiB3aWxs
IGdlbmVyYXRlCisjIHdhcm5pbmdzIGZvciB1bmRvY3VtZW50ZWQgbWVtYmVycy4gSWYgRVhUUkFD
VF9BTEwgaXMgc2V0IHRvIFlFUyB0aGVuIHRoaXMgZmxhZworIyB3aWxsIGF1dG9tYXRpY2FsbHkg
YmUgZGlzYWJsZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1dBUk5fSUZfVU5E
T0NVTUVOVEVEICAgPSBZRVMKKworIyBJZiB0aGUgV0FSTl9JRl9ET0NfRVJST1IgdGFnIGlzIHNl
dCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSB3YXJuaW5ncyBmb3IKKyMgcG90ZW50aWFs
IGVycm9ycyBpbiB0aGUgZG9jdW1lbnRhdGlvbiwgc3VjaCBhcyBub3QgZG9jdW1lbnRpbmcgc29t
ZSBwYXJhbWV0ZXJzCisjIGluIGEgZG9jdW1lbnRlZCBmdW5jdGlvbiwgb3IgZG9jdW1lbnRpbmcg
cGFyYW1ldGVycyB0aGF0IGRvbid0IGV4aXN0IG9yIHVzaW5nCisjIG1hcmt1cCBjb21tYW5kcyB3
cm9uZ2x5LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitXQVJOX0lGX0RPQ19FUlJP
UiAgICAgID0gWUVTCisKKyMgVGhpcyBXQVJOX05PX1BBUkFNRE9DIG9wdGlvbiBjYW4gYmUgZW5h
YmxlZCB0byBnZXQgd2FybmluZ3MgZm9yIGZ1bmN0aW9ucyB0aGF0CisjIGFyZSBkb2N1bWVudGVk
LCBidXQgaGF2ZSBubyBkb2N1bWVudGF0aW9uIGZvciB0aGVpciBwYXJhbWV0ZXJzIG9yIHJldHVy
bgorIyB2YWx1ZS4gSWYgc2V0IHRvIE5PIGRveHlnZW4gd2lsbCBvbmx5IHdhcm4gYWJvdXQgd3Jv
bmcgb3IgaW5jb21wbGV0ZSBwYXJhbWV0ZXIKKyMgZG9jdW1lbnRhdGlvbiwgYnV0IG5vdCBhYm91
dCB0aGUgYWJzZW5jZSBvZiBkb2N1bWVudGF0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisKK1dBUk5fTk9fUEFSQU1ET0MgICAgICAgPSBOTworCisjIFRoZSBXQVJOX0ZPUk1BVCB0
YWcgZGV0ZXJtaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIHRoYXQgZG94
eWdlbgorIyBjYW4gcHJvZHVjZS4gVGhlIHN0cmluZyBzaG91bGQgY29udGFpbiB0aGUgJGZpbGUs
ICRsaW5lLCBhbmQgJHRleHQgdGFncywgd2hpY2gKKyMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUg
ZmlsZSBhbmQgbGluZSBudW1iZXIgZnJvbSB3aGljaCB0aGUgd2FybmluZyBvcmlnaW5hdGVkCisj
IGFuZCB0aGUgd2FybmluZyB0ZXh0LiBPcHRpb25hbGx5IHRoZSBmb3JtYXQgbWF5IGNvbnRhaW4g
JHZlcnNpb24sIHdoaWNoIHdpbGwKKyMgYmUgcmVwbGFjZWQgYnkgdGhlIHZlcnNpb24gb2YgdGhl
IGZpbGUgKGlmIGl0IGNvdWxkIGJlIG9idGFpbmVkIHZpYQorIyBGSUxFX1ZFUlNJT05fRklMVEVS
KQorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogJGZpbGU6JGxpbmU6ICR0ZXh0LgorCitXQVJOX0ZP
Uk1BVCAgICAgICAgICAgID0gIiRmaWxlOiRsaW5lOiAkdGV4dCIKKworIyBUaGUgV0FSTl9MT0dG
SUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZmlsZSB0byB3aGljaCB3YXJuaW5nIGFu
ZCBlcnJvcgorIyBtZXNzYWdlcyBzaG91bGQgYmUgd3JpdHRlbi4gSWYgbGVmdCBibGFuayB0aGUg
b3V0cHV0IGlzIHdyaXR0ZW4gdG8gc3RhbmRhcmQKKyMgZXJyb3IgKHN0ZGVycikuCisKK1dBUk5f
TE9HRklMRSAgICAgICAgICAgPSAlV0FSTklOR19MT0dfUEFUSCUKKworIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgaW5wdXQgZmlsZXMK
KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgSU5QVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lm
eSB0aGUgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRoYXQgY29udGFpbgorIyBkb2N1bWVudGVk
IHNvdXJjZSBmaWxlcy4gWW91IG1heSBlbnRlciBmaWxlIG5hbWVzIGxpa2UgbXlmaWxlLmNwcCBv
cgorIyBkaXJlY3RvcmllcyBsaWtlIC91c3Ivc3JjL215cHJvamVjdC4gU2VwYXJhdGUgdGhlIGZp
bGVzIG9yIGRpcmVjdG9yaWVzIHdpdGgKKyMgc3BhY2VzLgorIyBOb3RlOiBJZiB0aGlzIHRhZyBp
cyBlbXB0eSB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgc2VhcmNoZWQuCisKK0lOUFVUICAgICAg
ICAgICAgICAgICAgPSAuLi9pbmNsdWRlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAuLi9z
cmMvbGliX2pzb24gXAorICAgICAgICAgICAgICAgICAgICAgICAgIC4KKworIyBUaGlzIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIHNvdXJj
ZSBmaWxlcworIyB0aGF0IGRveHlnZW4gcGFyc2VzLiBJbnRlcm5hbGx5IGRveHlnZW4gdXNlcyB0
aGUgVVRGLTggZW5jb2RpbmcuIERveHlnZW4gdXNlcworIyBsaWJpY29udiAob3IgdGhlIGljb252
IGJ1aWx0IGludG8gbGliYykgZm9yIHRoZSB0cmFuc2NvZGluZy4gU2VlIHRoZSBsaWJpY29udgor
IyBkb2N1bWVudGF0aW9uIChzZWU6IGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJpY29u
dikgZm9yIHRoZSBsaXN0IG9mCisjIHBvc3NpYmxlIGVuY29kaW5ncy4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IFVURi04LgorCitJTlBVVF9FTkNPRElORyAgICAgICAgID0gVVRGLTgKKworIyBJ
ZiB0aGUgdmFsdWUgb2YgdGhlIElOUFVUIHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91IGNh
biB1c2UgdGhlCisjIEZJTEVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2ls
ZGNhcmQgcGF0dGVybnMgKGxpa2UgKi5jcHAgYW5kCisjICouaCkgdG8gZmlsdGVyIG91dCB0aGUg
c291cmNlLWZpbGVzIGluIHRoZSBkaXJlY3Rvcmllcy4gSWYgbGVmdCBibGFuayB0aGUKKyMgZm9s
bG93aW5nIHBhdHRlcm5zIGFyZSB0ZXN0ZWQ6Ki5jLCAqLmNjLCAqLmN4eCwgKi5jcHAsICouYysr
LCAqLmphdmEsICouaWksCisjICouaXh4LCAqLmlwcCwgKi5pKyssICouaW5sLCAqLmlkbCwgKi5k
ZGwsICoub2RsLCAqLmgsICouaGgsICouaHh4LCAqLmhwcCwKKyMgKi5oKyssICouY3MsICouZCwg
Ki5waHAsICoucGhwNCwgKi5waHA1LCAqLnBodG1sLCAqLmluYywgKi5tLCAqLm1hcmtkb3duLAor
IyAqLm1kLCAqLm1tLCAqLmRveCwgKi5weSwgKi5mOTAsICouZiwgKi5mb3IsICoudGNsLCAqLnZo
ZCwgKi52aGRsLCAqLnVjZiwKKyMgKi5xc2YsICouYXMgYW5kICouanMuCisKK0ZJTEVfUEFUVEVS
TlMgICAgICAgICAgPSAqLmggXAorICAgICAgICAgICAgICAgICAgICAgICAgICouY3BwIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAqLmlubCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
Ki5kb3gKKworIyBUaGUgUkVDVVJTSVZFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHdoZXRo
ZXIgb3Igbm90IHN1YmRpcmVjdG9yaWVzIHNob3VsZAorIyBiZSBzZWFyY2hlZCBmb3IgaW5wdXQg
ZmlsZXMgYXMgd2VsbC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitSRUNVUlNJVkUg
ICAgICAgICAgICAgID0gWUVTCisKKyMgVGhlIEVYQ0xVREUgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlCisjIGV4Y2x1ZGVk
IGZyb20gdGhlIElOUFVUIHNvdXJjZSBmaWxlcy4gVGhpcyB3YXkgeW91IGNhbiBlYXNpbHkgZXhj
bHVkZSBhCisjIHN1YmRpcmVjdG9yeSBmcm9tIGEgZGlyZWN0b3J5IHRyZWUgd2hvc2Ugcm9vdCBp
cyBzcGVjaWZpZWQgd2l0aCB0aGUgSU5QVVQgdGFnLgorIworIyBOb3RlIHRoYXQgcmVsYXRpdmUg
cGF0aHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGljaCBkb3h5Z2VuIGlz
CisjIHJ1bi4KKworRVhDTFVERSAgICAgICAgICAgICAgICA9CisKKyMgVGhlIEVYQ0xVREVfU1lN
TElOS1MgdGFnIGNhbiBiZSB1c2VkIHRvIHNlbGVjdCB3aGV0aGVyIG9yIG5vdCBmaWxlcyBvcgor
IyBkaXJlY3RvcmllcyB0aGF0IGFyZSBzeW1ib2xpYyBsaW5rcyAoYSBVbml4IGZpbGUgc3lzdGVt
IGZlYXR1cmUpIGFyZSBleGNsdWRlZAorIyBmcm9tIHRoZSBpbnB1dC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorCitFWENMVURFX1NZTUxJTktTICAgICAgID0gTk8KKworIyBJZiB0aGUg
dmFsdWUgb2YgdGhlIElOUFVUIHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91IGNhbiB1c2Ug
dGhlCisjIEVYQ0xVREVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNh
cmQgcGF0dGVybnMgdG8gZXhjbHVkZQorIyBjZXJ0YWluIGZpbGVzIGZyb20gdGhvc2UgZGlyZWN0
b3JpZXMuCisjCisjIE5vdGUgdGhhdCB0aGUgd2lsZGNhcmRzIGFyZSBtYXRjaGVkIGFnYWluc3Qg
dGhlIGZpbGUgd2l0aCBhYnNvbHV0ZSBwYXRoLCBzbyB0bworIyBleGNsdWRlIGFsbCB0ZXN0IGRp
cmVjdG9yaWVzIGZvciBleGFtcGxlIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKgorCitFWENMVURF
X1BBVFRFUk5TICAgICAgID0KKworIyBUaGUgRVhDTFVERV9TWU1CT0xTIHRhZyBjYW4gYmUgdXNl
ZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHN5bWJvbCBuYW1lcworIyAobmFtZXNwYWNlcywgY2xh
c3NlcywgZnVuY3Rpb25zLCBldGMuKSB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIHRoZQor
IyBvdXRwdXQuIFRoZSBzeW1ib2wgbmFtZSBjYW4gYmUgYSBmdWxseSBxdWFsaWZpZWQgbmFtZSwg
YSB3b3JkLCBvciBpZiB0aGUKKyMgd2lsZGNhcmQgKiBpcyB1c2VkLCBhIHN1YnN0cmluZy4gRXhh
bXBsZXM6IEFOYW1lc3BhY2UsIEFDbGFzcywKKyMgQUNsYXNzOjpBTmFtZXNwYWNlLCBBTmFtZXNw
YWNlOjoqVGVzdAorIworIyBOb3RlIHRoYXQgdGhlIHdpbGRjYXJkcyBhcmUgbWF0Y2hlZCBhZ2Fp
bnN0IHRoZSBmaWxlIHdpdGggYWJzb2x1dGUgcGF0aCwgc28gdG8KKyMgZXhjbHVkZSBhbGwgdGVz
dCBkaXJlY3RvcmllcyB1c2UgdGhlIHBhdHRlcm4gKi90ZXN0LyoKKworRVhDTFVERV9TWU1CT0xT
ICAgICAgICA9CisKKyMgVGhlIEVYQU1QTEVfUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBvbmUgb3IgbW9yZSBmaWxlcyBvciBkaXJlY3RvcmllcworIyB0aGF0IGNvbnRhaW4gZXhhbXBs
ZSBjb2RlIGZyYWdtZW50cyB0aGF0IGFyZSBpbmNsdWRlZCAoc2VlIHRoZSBcaW5jbHVkZQorIyBj
b21tYW5kKS4KKworRVhBTVBMRV9QQVRIICAgICAgICAgICA9IC4uCisKKyMgSWYgdGhlIHZhbHVl
IG9mIHRoZSBFWEFNUExFX1BBVEggdGFnIGNvbnRhaW5zIGRpcmVjdG9yaWVzLCB5b3UgY2FuIHVz
ZSB0aGUKKyMgRVhBTVBMRV9QQVRURVJOUyB0YWcgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSB3aWxk
Y2FyZCBwYXR0ZXJuIChsaWtlICouY3BwIGFuZAorIyAqLmgpIHRvIGZpbHRlciBvdXQgdGhlIHNv
dXJjZS1maWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuIElmIGxlZnQgYmxhbmsgYWxsCisjIGZpbGVz
IGFyZSBpbmNsdWRlZC4KKworRVhBTVBMRV9QQVRURVJOUyAgICAgICA9ICoKKworIyBJZiB0aGUg
RVhBTVBMRV9SRUNVUlNJVkUgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBzdWJkaXJlY3RvcmllcyB3
aWxsIGJlCisjIHNlYXJjaGVkIGZvciBpbnB1dCBmaWxlcyB0byBiZSB1c2VkIHdpdGggdGhlIFxp
bmNsdWRlIG9yIFxkb250aW5jbHVkZSBjb21tYW5kcworIyBpcnJlc3BlY3RpdmUgb2YgdGhlIHZh
bHVlIG9mIHRoZSBSRUNVUlNJVkUgdGFnLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisK
K0VYQU1QTEVfUkVDVVJTSVZFICAgICAgPSBOTworCisjIFRoZSBJTUFHRV9QQVRIIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGZpbGVzIG9yIGRpcmVjdG9yaWVzCisjIHRo
YXQgY29udGFpbiBpbWFnZXMgdGhhdCBhcmUgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50
YXRpb24gKHNlZSB0aGUKKyMgXGltYWdlIGNvbW1hbmQpLgorCitJTUFHRV9QQVRIICAgICAgICAg
ICAgID0KKworIyBUaGUgSU5QVVRfRklMVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEg
cHJvZ3JhbSB0aGF0IGRveHlnZW4gc2hvdWxkCisjIGludm9rZSB0byBmaWx0ZXIgZm9yIGVhY2gg
aW5wdXQgZmlsZS4gRG94eWdlbiB3aWxsIGludm9rZSB0aGUgZmlsdGVyIHByb2dyYW0KKyMgYnkg
ZXhlY3V0aW5nICh2aWEgcG9wZW4oKSkgdGhlIGNvbW1hbmQ6CisjCisjIDxmaWx0ZXI+IDxpbnB1
dC1maWxlPgorIworIyB3aGVyZSA8ZmlsdGVyPiBpcyB0aGUgdmFsdWUgb2YgdGhlIElOUFVUX0ZJ
TFRFUiB0YWcsIGFuZCA8aW5wdXQtZmlsZT4gaXMgdGhlCisjIG5hbWUgb2YgYW4gaW5wdXQgZmls
ZS4gRG94eWdlbiB3aWxsIHRoZW4gdXNlIHRoZSBvdXRwdXQgdGhhdCB0aGUgZmlsdGVyCisjIHBy
b2dyYW0gd3JpdGVzIHRvIHN0YW5kYXJkIG91dHB1dC4gSWYgRklMVEVSX1BBVFRFUk5TIGlzIHNw
ZWNpZmllZCwgdGhpcyB0YWcKKyMgd2lsbCBiZSBpZ25vcmVkLgorIworIyBOb3RlIHRoYXQgdGhl
IGZpbHRlciBtdXN0IG5vdCBhZGQgb3IgcmVtb3ZlIGxpbmVzOyBpdCBpcyBhcHBsaWVkIGJlZm9y
ZSB0aGUKKyMgY29kZSBpcyBzY2FubmVkLCBidXQgbm90IHdoZW4gdGhlIG91dHB1dCBjb2RlIGlz
IGdlbmVyYXRlZC4gSWYgbGluZXMgYXJlIGFkZGVkCisjIG9yIHJlbW92ZWQsIHRoZSBhbmNob3Jz
IHdpbGwgbm90IGJlIHBsYWNlZCBjb3JyZWN0bHkuCisKK0lOUFVUX0ZJTFRFUiAgICAgICAgICAg
PQorCisjIFRoZSBGSUxURVJfUEFUVEVSTlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZmls
dGVycyBvbiBhIHBlciBmaWxlIHBhdHRlcm4KKyMgYmFzaXMuIERveHlnZW4gd2lsbCBjb21wYXJl
IHRoZSBmaWxlIG5hbWUgd2l0aCBlYWNoIHBhdHRlcm4gYW5kIGFwcGx5IHRoZQorIyBmaWx0ZXIg
aWYgdGhlcmUgaXMgYSBtYXRjaC4gVGhlIGZpbHRlcnMgYXJlIGEgbGlzdCBvZiB0aGUgZm9ybTog
cGF0dGVybj1maWx0ZXIKKyMgKGxpa2UgKi5jcHA9bXlfY3BwX2ZpbHRlcikuIFNlZSBJTlBVVF9G
SUxURVIgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gaG93CisjIGZpbHRlcnMgYXJlIHVzZWQu
IElmIHRoZSBGSUxURVJfUEFUVEVSTlMgdGFnIGlzIGVtcHR5IG9yIGlmIG5vbmUgb2YgdGhlCisj
IHBhdHRlcm5zIG1hdGNoIHRoZSBmaWxlIG5hbWUsIElOUFVUX0ZJTFRFUiBpcyBhcHBsaWVkLgor
CitGSUxURVJfUEFUVEVSTlMgICAgICAgID0KKworIyBJZiB0aGUgRklMVEVSX1NPVVJDRV9GSUxF
UyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIGlucHV0IGZpbHRlciAoaWYgc2V0IHVzaW5nCisjIElO
UFVUX0ZJTFRFUiApIHdpbGwgYWxzbyBiZSB1c2VkIHRvIGZpbHRlciB0aGUgaW5wdXQgZmlsZXMg
dGhhdCBhcmUgdXNlZCBmb3IKKyMgcHJvZHVjaW5nIHRoZSBzb3VyY2UgZmlsZXMgdG8gYnJvd3Nl
IChpLmUuIHdoZW4gU09VUkNFX0JST1dTRVIgaXMgc2V0IHRvIFlFUykuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBOTy4KKworRklMVEVSX1NPVVJDRV9GSUxFUyAgICA9IE5PCisKKyMgVGhlIEZJ
TFRFUl9TT1VSQ0VfUEFUVEVSTlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgc291cmNlIGZp
bHRlcnMgcGVyIGZpbGUKKyMgcGF0dGVybi4gQSBwYXR0ZXJuIHdpbGwgb3ZlcnJpZGUgdGhlIHNl
dHRpbmcgZm9yIEZJTFRFUl9QQVRURVJOIChpZiBhbnkpIGFuZAorIyBpdCBpcyBhbHNvIHBvc3Np
YmxlIHRvIGRpc2FibGUgc291cmNlIGZpbHRlcmluZyBmb3IgYSBzcGVjaWZpYyBwYXR0ZXJuIHVz
aW5nCisjICouZXh0PSAoc28gd2l0aG91dCBuYW1pbmcgYSBmaWx0ZXIpLgorIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgRklMVEVSX1NPVVJDRV9GSUxFUyBpcyBzZXQgdG8gWUVTLgor
CitGSUxURVJfU09VUkNFX1BBVFRFUk5TID0KKworIyBJZiB0aGUgVVNFX01ERklMRV9BU19NQUlO
UEFHRSB0YWcgcmVmZXJzIHRvIHRoZSBuYW1lIG9mIGEgbWFya2Rvd24gZmlsZSB0aGF0CisjIGlz
IHBhcnQgb2YgdGhlIGlucHV0LCBpdHMgY29udGVudHMgd2lsbCBiZSBwbGFjZWQgb24gdGhlIG1h
aW4gcGFnZQorIyAoaW5kZXguaHRtbCkuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgaGF2ZSBh
IHByb2plY3Qgb24gZm9yIGluc3RhbmNlIEdpdEh1YgorIyBhbmQgd2FudCB0byByZXVzZSB0aGUg
aW50cm9kdWN0aW9uIHBhZ2UgYWxzbyBmb3IgdGhlIGRveHlnZW4gb3V0cHV0LgorCitVU0VfTURG
SUxFX0FTX01BSU5QQUdFID0KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9u
IG9wdGlvbnMgcmVsYXRlZCB0byBzb3VyY2UgYnJvd3NpbmcKKyMtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworIyBJZiB0aGUgU09VUkNFX0JST1dTRVIgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBhIGxpc3Qg
b2Ygc291cmNlIGZpbGVzIHdpbGwgYmUKKyMgZ2VuZXJhdGVkLiBEb2N1bWVudGVkIGVudGl0aWVz
IHdpbGwgYmUgY3Jvc3MtcmVmZXJlbmNlZCB3aXRoIHRoZXNlIHNvdXJjZXMuCisjCisjIE5vdGU6
IFRvIGdldCByaWQgb2YgYWxsIHNvdXJjZSBjb2RlIGluIHRoZSBnZW5lcmF0ZWQgb3V0cHV0LCBt
YWtlIHN1cmUgdGhhdAorIyBhbHNvIFZFUkJBVElNX0hFQURFUlMgaXMgc2V0IHRvIE5PLgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NPVVJDRV9CUk9XU0VSICAgICAgICAgPSBOTwor
CisjIFNldHRpbmcgdGhlIElOTElORV9TT1VSQ0VTIHRhZyB0byBZRVMgd2lsbCBpbmNsdWRlIHRo
ZSBib2R5IG9mIGZ1bmN0aW9ucywKKyMgY2xhc3NlcyBhbmQgZW51bXMgZGlyZWN0bHkgaW50byB0
aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitJTkxJTkVf
U09VUkNFUyAgICAgICAgID0gTk8KKworIyBTZXR0aW5nIHRoZSBTVFJJUF9DT0RFX0NPTU1FTlRT
IHRhZyB0byBZRVMgd2lsbCBpbnN0cnVjdCBkb3h5Z2VuIHRvIGhpZGUgYW55CisjIHNwZWNpYWwg
Y29tbWVudCBibG9ja3MgZnJvbSBnZW5lcmF0ZWQgc291cmNlIGNvZGUgZnJhZ21lbnRzLiBOb3Jt
YWwgQywgQysrIGFuZAorIyBGb3J0cmFuIGNvbW1lbnRzIHdpbGwgYWx3YXlzIHJlbWFpbiB2aXNp
YmxlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitTVFJJUF9DT0RFX0NPTU1FTlRT
ICAgID0gWUVTCisKKyMgSWYgdGhlIFJFRkVSRU5DRURfQllfUkVMQVRJT04gdGFnIGlzIHNldCB0
byBZRVMgdGhlbiBmb3IgZWFjaCBkb2N1bWVudGVkCisjIGZ1bmN0aW9uIGFsbCBkb2N1bWVudGVk
IGZ1bmN0aW9ucyByZWZlcmVuY2luZyBpdCB3aWxsIGJlIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorCitSRUZFUkVOQ0VEX0JZX1JFTEFUSU9OID0gTk8KKworIyBJZiB0aGUg
UkVGRVJFTkNFU19SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRvY3Vt
ZW50ZWQgZnVuY3Rpb24KKyMgYWxsIGRvY3VtZW50ZWQgZW50aXRpZXMgY2FsbGVkL3VzZWQgYnkg
dGhhdCBmdW5jdGlvbiB3aWxsIGJlIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorCitSRUZFUkVOQ0VTX1JFTEFUSU9OICAgID0gTk8KKworIyBJZiB0aGUgUkVGRVJFTkNFU19M
SU5LX1NPVVJDRSB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgU09VUkNFX0JST1dTRVIgdGFnIGlzIHNl
dAorIyB0byBZRVMsIHRoZW4gdGhlIGh5cGVybGlua3MgZnJvbSBmdW5jdGlvbnMgaW4gUkVGRVJF
TkNFU19SRUxBVElPTiBhbmQKKyMgUkVGRVJFTkNFRF9CWV9SRUxBVElPTiBsaXN0cyB3aWxsIGxp
bmsgdG8gdGhlIHNvdXJjZSBjb2RlLiBPdGhlcndpc2UgdGhleSB3aWxsCisjIGxpbmsgdG8gdGhl
IGRvY3VtZW50YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1JFRkVSRU5D
RVNfTElOS19TT1VSQ0UgPSBZRVMKKworIyBJZiBTT1VSQ0VfVE9PTFRJUFMgaXMgZW5hYmxlZCAo
dGhlIGRlZmF1bHQpIHRoZW4gaG92ZXJpbmcgYSBoeXBlcmxpbmsgaW4gdGhlCisjIHNvdXJjZSBj
b2RlIHdpbGwgc2hvdyBhIHRvb2x0aXAgd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHN1Y2gg
YXMgcHJvdG90eXBlLAorIyBicmllZiBkZXNjcmlwdGlvbiBhbmQgbGlua3MgdG8gdGhlIGRlZmlu
aXRpb24gYW5kIGRvY3VtZW50YXRpb24uIFNpbmNlIHRoaXMKKyMgd2lsbCBtYWtlIHRoZSBIVE1M
IGZpbGUgbGFyZ2VyIGFuZCBsb2FkaW5nIG9mIGxhcmdlIGZpbGVzIGEgYml0IHNsb3dlciwgeW91
CisjIGNhbiBvcHQgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTT1VSQ0VfQlJPV1NF
UiBpcyBzZXQgdG8gWUVTLgorCitTT1VSQ0VfVE9PTFRJUFMgICAgICAgID0gWUVTCisKKyMgSWYg
dGhlIFVTRV9IVEFHUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSByZWZlcmVuY2VzIHRvIHNv
dXJjZSBjb2RlIHdpbGwKKyMgcG9pbnQgdG8gdGhlIEhUTUwgZ2VuZXJhdGVkIGJ5IHRoZSBodGFn
cygxKSB0b29sIGluc3RlYWQgb2YgZG94eWdlbiBidWlsdC1pbgorIyBzb3VyY2UgYnJvd3Nlci4g
VGhlIGh0YWdzIHRvb2wgaXMgcGFydCBvZiBHTlUncyBnbG9iYWwgc291cmNlIHRhZ2dpbmcgc3lz
dGVtCisjIChzZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2dsb2JhbC9nbG9iYWwuaHRt
bCkuIFlvdSB3aWxsIG5lZWQgdmVyc2lvbgorIyA0LjguNiBvciBoaWdoZXIuCisjCisjIFRvIHVz
ZSBpdCBkbyB0aGUgZm9sbG93aW5nOgorIyAtIEluc3RhbGwgdGhlIGxhdGVzdCB2ZXJzaW9uIG9m
IGdsb2JhbAorIyAtIEVuYWJsZSBTT1VSQ0VfQlJPV1NFUiBhbmQgVVNFX0hUQUdTIGluIHRoZSBj
b25maWcgZmlsZQorIyAtIE1ha2Ugc3VyZSB0aGUgSU5QVVQgcG9pbnRzIHRvIHRoZSByb290IG9m
IHRoZSBzb3VyY2UgdHJlZQorIyAtIFJ1biBkb3h5Z2VuIGFzIG5vcm1hbAorIworIyBEb3h5Z2Vu
IHdpbGwgaW52b2tlIGh0YWdzIChhbmQgdGhhdCB3aWxsIGluIHR1cm4gaW52b2tlIGd0YWdzKSwg
c28gdGhlc2UKKyMgdG9vbHMgbXVzdCBiZSBhdmFpbGFibGUgZnJvbSB0aGUgY29tbWFuZCBsaW5l
IChpLmUuIGluIHRoZSBzZWFyY2ggcGF0aCkuCisjCisjIFRoZSByZXN1bHQ6IGluc3RlYWQgb2Yg
dGhlIHNvdXJjZSBicm93c2VyIGdlbmVyYXRlZCBieSBkb3h5Z2VuLCB0aGUgbGlua3MgdG8KKyMg
c291cmNlIGNvZGUgd2lsbCBub3cgcG9pbnQgdG8gdGhlIG91dHB1dCBvZiBodGFncy4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
U09VUkNFX0JST1dTRVIgaXMgc2V0IHRvIFlFUy4KKworVVNFX0hUQUdTICAgICAgICAgICAgICA9
IE5PCisKKyMgSWYgdGhlIFZFUkJBVElNX0hFQURFUlMgdGFnIGlzIHNldCB0aGUgWUVTIHRoZW4g
ZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKKyMgdmVyYmF0aW0gY29weSBvZiB0aGUgaGVhZGVyIGZp
bGUgZm9yIGVhY2ggY2xhc3MgZm9yIHdoaWNoIGFuIGluY2x1ZGUgaXMKKyMgc3BlY2lmaWVkLiBT
ZXQgdG8gTk8gdG8gZGlzYWJsZSB0aGlzLgorIyBTZWUgYWxzbzogU2VjdGlvbiBcY2xhc3MuCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1ZFUkJBVElNX0hFQURFUlMgICAgICAgPSBO
TworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVk
IHRvIHRoZSBhbHBoYWJldGljYWwgY2xhc3MgaW5kZXgKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
IyBJZiB0aGUgQUxQSEFCRVRJQ0FMX0lOREVYIHRhZyBpcyBzZXQgdG8gWUVTLCBhbiBhbHBoYWJl
dGljYWwgaW5kZXggb2YgYWxsCisjIGNvbXBvdW5kcyB3aWxsIGJlIGdlbmVyYXRlZC4gRW5hYmxl
IHRoaXMgaWYgdGhlIHByb2plY3QgY29udGFpbnMgYSBsb3Qgb2YKKyMgY2xhc3Nlcywgc3RydWN0
cywgdW5pb25zIG9yIGludGVyZmFjZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisK
K0FMUEhBQkVUSUNBTF9JTkRFWCAgICAgPSBZRVMKK1RPQ19JTkNMVURFX0hFQURJTkdTID0gMgor
CisjIFRoZSBDT0xTX0lOX0FMUEhBX0lOREVYIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRo
ZSBudW1iZXIgb2YgY29sdW1ucyBpbgorIyB3aGljaCB0aGUgYWxwaGFiZXRpY2FsIGluZGV4IGxp
c3Qgd2lsbCBiZSBzcGxpdC4KKyMgTWluaW11bSB2YWx1ZTogMSwgbWF4aW11bSB2YWx1ZTogMjAs
IGRlZmF1bHQgdmFsdWU6IDUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBBTFBI
QUJFVElDQUxfSU5ERVggaXMgc2V0IHRvIFlFUy4KKworQ09MU19JTl9BTFBIQV9JTkRFWCAgICA9
IDUKKworIyBJbiBjYXNlIGFsbCBjbGFzc2VzIGluIGEgcHJvamVjdCBzdGFydCB3aXRoIGEgY29t
bW9uIHByZWZpeCwgYWxsIGNsYXNzZXMgd2lsbAorIyBiZSBwdXQgdW5kZXIgdGhlIHNhbWUgaGVh
ZGVyIGluIHRoZSBhbHBoYWJldGljYWwgaW5kZXguIFRoZSBJR05PUkVfUFJFRklYIHRhZworIyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJlZml4IChvciBhIGxpc3Qgb2YgcHJlZml4ZXMpIHRo
YXQgc2hvdWxkIGJlIGlnbm9yZWQKKyMgd2hpbGUgZ2VuZXJhdGluZyB0aGUgaW5kZXggaGVhZGVy
cy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEFMUEhBQkVUSUNBTF9JTkRFWCBp
cyBzZXQgdG8gWUVTLgorCitJR05PUkVfUFJFRklYICAgICAgICAgID0KKworIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgSFRNTCBvdXRw
dXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgR0VORVJBVEVfSFRNTCB0YWcgaXMg
c2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgSFRNTCBvdXRwdXQKKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KKworR0VORVJBVEVfSFRNTCAgICAgICAgICA9IFlFUworCisjIFRo
ZSBIVE1MX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBIVE1MIGRvY3Mg
d2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBv
ZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0LgorIyBUaGUg
ZGVmYXVsdCBkaXJlY3RvcnkgaXM6IGh0bWwuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfT1VUUFVUICAgICAgICAg
ICAgPSAlSFRNTF9PVVRQVVQlCisKKyMgVGhlIEhUTUxfRklMRV9FWFRFTlNJT04gdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGUgZXh0ZW5zaW9uIGZvciBlYWNoCisjIGdlbmVyYXRl
ZCBIVE1MIHBhZ2UgKGZvciBleGFtcGxlOiAuaHRtLCAucGhwLCAuYXNwKS4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IC5odG1sLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0ZJTEVfRVhURU5TSU9OICAgID0gLmh0
bWwKKworIyBUaGUgSFRNTF9IRUFERVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSB1c2Vy
LWRlZmluZWQgSFRNTCBoZWFkZXIgZmlsZSBmb3IKKyMgZWFjaCBnZW5lcmF0ZWQgSFRNTCBwYWdl
LiBJZiB0aGUgdGFnIGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKKyMgc3Rh
bmRhcmQgaGVhZGVyLgorIworIyBUbyBnZXQgdmFsaWQgSFRNTCB0aGUgaGVhZGVyIGZpbGUgdGhh
dCBpbmNsdWRlcyBhbnkgc2NyaXB0cyBhbmQgc3R5bGUgc2hlZXRzCisjIHRoYXQgZG94eWdlbiBu
ZWVkcywgd2hpY2ggaXMgZGVwZW5kZW50IG9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdXNl
ZCAoZS5nLgorIyB0aGUgc2V0dGluZyBHRU5FUkFURV9UUkVFVklFVykuIEl0IGlzIGhpZ2hseSBy
ZWNvbW1lbmRlZCB0byBzdGFydCB3aXRoIGEKKyMgZGVmYXVsdCBoZWFkZXIgdXNpbmcKKyMgZG94
eWdlbiAtdyBodG1sIG5ld19oZWFkZXIuaHRtbCBuZXdfZm9vdGVyLmh0bWwgbmV3X3N0eWxlc2hl
ZXQuY3NzCisjIFlvdXJDb25maWdGaWxlCisjIGFuZCB0aGVuIG1vZGlmeSB0aGUgZmlsZSBuZXdf
aGVhZGVyLmh0bWwuIFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiCisjIGZvciBpbmZv
cm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlIGRlZmF1bHQgaGVhZGVyIHRoYXQgZG94eWdl
biBub3JtYWxseQorIyB1c2VzLgorIyBOb3RlOiBUaGUgaGVhZGVyIGlzIHN1YmplY3QgdG8gY2hh
bmdlIHNvIHlvdSB0eXBpY2FsbHkgaGF2ZSB0byByZWdlbmVyYXRlIHRoZQorIyBkZWZhdWx0IGhl
YWRlciB3aGVuIHVwZ3JhZGluZyB0byBhIG5ld2VyIHZlcnNpb24gb2YgZG94eWdlbi4gRm9yIGEg
ZGVzY3JpcHRpb24KKyMgb2YgdGhlIHBvc3NpYmxlIG1hcmtlcnMgYW5kIGJsb2NrIG5hbWVzIHNl
ZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9IRUFERVIgICAgICAgICAgICA9IGhl
YWRlci5odG1sCisKKyMgVGhlIEhUTUxfRk9PVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5
IGEgdXNlci1kZWZpbmVkIEhUTUwgZm9vdGVyIGZvciBlYWNoCisjIGdlbmVyYXRlZCBIVE1MIHBh
Z2UuIElmIHRoZSB0YWcgaXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBzdGFu
ZGFyZAorIyBmb290ZXIuIFNlZSBIVE1MX0hFQURFUiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBo
b3cgdG8gZ2VuZXJhdGUgYSBkZWZhdWx0CisjIGZvb3RlciBhbmQgd2hhdCBzcGVjaWFsIGNvbW1h
bmRzIGNhbiBiZSB1c2VkIGluc2lkZSB0aGUgZm9vdGVyLiBTZWUgYWxzbworIyBzZWN0aW9uICJE
b3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZSBkZWZh
dWx0IGZvb3RlcgorIyB0aGF0IGRveHlnZW4gbm9ybWFsbHkgdXNlcy4KKyMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9G
T09URVIgICAgICAgICAgICA9IGZvb3Rlci5odG1sCisKKyMgVGhlIEhUTUxfU1RZTEVTSEVFVCB0
YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHVzZXItZGVmaW5lZCBjYXNjYWRpbmcgc3R5bGUK
KyMgc2hlZXQgdGhhdCBpcyB1c2VkIGJ5IGVhY2ggSFRNTCBwYWdlLiBJdCBjYW4gYmUgdXNlZCB0
byBmaW5lLXR1bmUgdGhlIGxvb2sgb2YKKyMgdGhlIEhUTUwgb3V0cHV0LiBJZiBsZWZ0IGJsYW5r
IGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGRlZmF1bHQgc3R5bGUgc2hlZXQuCisjIFNlZSBhbHNv
IHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJh
dGUgdGhlIHN0eWxlCisjIHNoZWV0IHRoYXQgZG94eWdlbiBub3JtYWxseSB1c2VzLgorIyBOb3Rl
OiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgSFRNTF9FWFRSQV9TVFlMRVNIRUVUIGluc3RlYWQg
b2YgdGhpcyB0YWcsIGFzCisjIGl0IGlzIG1vcmUgcm9idXN0IGFuZCB0aGlzIHRhZyAoSFRNTF9T
VFlMRVNIRUVUKSB3aWxsIGluIHRoZSBmdXR1cmUgYmVjb21lCisjIG9ic29sZXRlLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgor
CitIVE1MX1NUWUxFU0hFRVQgICAgICAgID0KKworIyBUaGUgSFRNTF9FWFRSQV9TVFlMRVNIRUVU
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFuIGFkZGl0aW9uYWwgdXNlci0KKyMgZGVmaW5l
ZCBjYXNjYWRpbmcgc3R5bGUgc2hlZXQgdGhhdCBpcyBpbmNsdWRlZCBhZnRlciB0aGUgc3RhbmRh
cmQgc3R5bGUgc2hlZXRzCisjIGNyZWF0ZWQgYnkgZG94eWdlbi4gVXNpbmcgdGhpcyBvcHRpb24g
b25lIGNhbiBvdmVycnVsZSBjZXJ0YWluIHN0eWxlIGFzcGVjdHMuCisjIFRoaXMgaXMgcHJlZmVy
cmVkIG92ZXIgdXNpbmcgSFRNTF9TVFlMRVNIRUVUIHNpbmNlIGl0IGRvZXMgbm90IHJlcGxhY2Ug
dGhlCisjIHN0YW5kYXJkIHN0eWxlIHNoZWV0IGFuZCBpcyB0aGVyZWZvcmUgbW9yZSByb2J1c3Qg
YWdhaW5zdCBmdXR1cmUgdXBkYXRlcy4KKyMgRG94eWdlbiB3aWxsIGNvcHkgdGhlIHN0eWxlIHNo
ZWV0IGZpbGUgdG8gdGhlIG91dHB1dCBkaXJlY3RvcnkuIEZvciBhbiBleGFtcGxlCisjIHNlZSB0
aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVS
QVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9FWFRSQV9TVFlMRVNIRUVUICA9CisKKyMg
VGhlIEhUTUxfRVhUUkFfRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1v
cmUgZXh0cmEgaW1hZ2VzIG9yCisjIG90aGVyIHNvdXJjZSBmaWxlcyB3aGljaCBzaG91bGQgYmUg
Y29waWVkIHRvIHRoZSBIVE1MIG91dHB1dCBkaXJlY3RvcnkuIE5vdGUKKyMgdGhhdCB0aGVzZSBm
aWxlcyB3aWxsIGJlIGNvcGllZCB0byB0aGUgYmFzZSBIVE1MIG91dHB1dCBkaXJlY3RvcnkuIFVz
ZSB0aGUKKyMgJHJlbHBhdGheIG1hcmtlciBpbiB0aGUgSFRNTF9IRUFERVIgYW5kL29yIEhUTUxf
Rk9PVEVSIGZpbGVzIHRvIGxvYWQgdGhlc2UKKyMgZmlsZXMuIEluIHRoZSBIVE1MX1NUWUxFU0hF
RVQgZmlsZSwgdXNlIHRoZSBmaWxlIG5hbWUgb25seS4gQWxzbyBub3RlIHRoYXQgdGhlCisjIGZp
bGVzIHdpbGwgYmUgY29waWVkIGFzLWlzOyB0aGVyZSBhcmUgbm8gY29tbWFuZHMgb3IgbWFya2Vy
cyBhdmFpbGFibGUuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9I
VE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfRVhUUkFfRklMRVMgICAgICAgPQorCisjIFRoZSBI
VE1MX0NPTE9SU1RZTEVfSFVFIHRhZyBjb250cm9scyB0aGUgY29sb3Igb2YgdGhlIEhUTUwgb3V0
cHV0LiBEb3h5Z2VuCisjIHdpbGwgYWRqdXN0IHRoZSBjb2xvcnMgaW4gdGhlIHN0eWxlc2hlZXQg
YW5kIGJhY2tncm91bmQgaW1hZ2VzIGFjY29yZGluZyB0bworIyB0aGlzIGNvbG9yLiBIdWUgaXMg
c3BlY2lmaWVkIGFzIGFuIGFuZ2xlIG9uIGEgY29sb3J3aGVlbCwgc2VlCisjIGh0dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvSHVlIGZvciBtb3JlIGluZm9ybWF0aW9uLiBGb3IgaW5zdGFuY2Ug
dGhlIHZhbHVlCisjIDAgcmVwcmVzZW50cyByZWQsIDYwIGlzIHllbGxvdywgMTIwIGlzIGdyZWVu
LCAxODAgaXMgY3lhbiwgMjQwIGlzIGJsdWUsIDMwMAorIyBwdXJwbGUsIGFuZCAzNjAgaXMgcmVk
IGFnYWluLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAzNTksIGRlZmF1bHQg
dmFsdWU6IDIyMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hU
TUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9DT0xPUlNUWUxFX0hVRSAgICA9IDIyMAorCisjIFRo
ZSBIVE1MX0NPTE9SU1RZTEVfU0FUIHRhZyBjb250cm9scyB0aGUgcHVyaXR5IChvciBzYXR1cmF0
aW9uKSBvZiB0aGUgY29sb3JzCisjIGluIHRoZSBIVE1MIG91dHB1dC4gRm9yIGEgdmFsdWUgb2Yg
MCB0aGUgb3V0cHV0IHdpbGwgdXNlIGdyYXlzY2FsZXMgb25seS4gQQorIyB2YWx1ZSBvZiAyNTUg
d2lsbCBwcm9kdWNlIHRoZSBtb3N0IHZpdmlkIGNvbG9ycy4KKyMgTWluaW11bSB2YWx1ZTogMCwg
bWF4aW11bSB2YWx1ZTogMjU1LCBkZWZhdWx0IHZhbHVlOiAxMDAuCisjIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfQ09M
T1JTVFlMRV9TQVQgICAgPSAxMDAKKworIyBUaGUgSFRNTF9DT0xPUlNUWUxFX0dBTU1BIHRhZyBj
b250cm9scyB0aGUgZ2FtbWEgY29ycmVjdGlvbiBhcHBsaWVkIHRvIHRoZQorIyBsdW1pbmFuY2Ug
Y29tcG9uZW50IG9mIHRoZSBjb2xvcnMgaW4gdGhlIEhUTUwgb3V0cHV0LiBWYWx1ZXMgYmVsb3cg
MTAwCisjIGdyYWR1YWxseSBtYWtlIHRoZSBvdXRwdXQgbGlnaHRlciwgd2hlcmVhcyB2YWx1ZXMg
YWJvdmUgMTAwIG1ha2UgdGhlIG91dHB1dAorIyBkYXJrZXIuIFRoZSB2YWx1ZSBkaXZpZGVkIGJ5
IDEwMCBpcyB0aGUgYWN0dWFsIGdhbW1hIGFwcGxpZWQsIHNvIDgwIHJlcHJlc2VudHMKKyMgYSBn
YW1tYSBvZiAwLjgsIFRoZSB2YWx1ZSAyMjAgcmVwcmVzZW50cyBhIGdhbW1hIG9mIDIuMiwgYW5k
IDEwMCBkb2VzIG5vdAorIyBjaGFuZ2UgdGhlIGdhbW1hLgorIyBNaW5pbXVtIHZhbHVlOiA0MCwg
bWF4aW11bSB2YWx1ZTogMjQwLCBkZWZhdWx0IHZhbHVlOiA4MC4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworSFRNTF9DT0xP
UlNUWUxFX0dBTU1BICA9IDgwCisKKyMgSWYgdGhlIEhUTUxfVElNRVNUQU1QIHRhZyBpcyBzZXQg
dG8gWUVTIHRoZW4gdGhlIGZvb3RlciBvZiBlYWNoIGdlbmVyYXRlZCBIVE1MCisjIHBhZ2Ugd2ls
bCBjb250YWluIHRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHBhZ2Ugd2FzIGdlbmVyYXRlZC4g
U2V0dGluZyB0aGlzCisjIHRvIE5PIGNhbiBoZWxwIHdoZW4gY29tcGFyaW5nIHRoZSBvdXRwdXQg
b2YgbXVsdGlwbGUgcnVucy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKwor
SFRNTF9USU1FU1RBTVAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIEhUTUxfRFlOQU1JQ19TRUNU
SU9OUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBnZW5lcmF0ZWQgSFRNTAorIyBkb2N1bWVu
dGF0aW9uIHdpbGwgY29udGFpbiBzZWN0aW9ucyB0aGF0IGNhbiBiZSBoaWRkZW4gYW5kIHNob3du
IGFmdGVyIHRoZQorIyBwYWdlIGhhcyBsb2FkZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBO
Ty4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0
IHRvIFlFUy4KKworSFRNTF9EWU5BTUlDX1NFQ1RJT05TICA9IFlFUworCisjIFdpdGggSFRNTF9J
TkRFWF9OVU1fRU5UUklFUyBvbmUgY2FuIGNvbnRyb2wgdGhlIHByZWZlcnJlZCBudW1iZXIgb2Yg
ZW50cmllcworIyBzaG93biBpbiB0aGUgdmFyaW91cyB0cmVlIHN0cnVjdHVyZWQgaW5kaWNlcyBp
bml0aWFsbHk7IHRoZSB1c2VyIGNhbiBleHBhbmQKKyMgYW5kIGNvbGxhcHNlIGVudHJpZXMgZHlu
YW1pY2FsbHkgbGF0ZXIgb24uIERveHlnZW4gd2lsbCBleHBhbmQgdGhlIHRyZWUgdG8KKyMgc3Vj
aCBhIGxldmVsIHRoYXQgYXQgbW9zdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBlbnRyaWVzIGFy
ZSB2aXNpYmxlICh1bmxlc3MKKyMgYSBmdWxseSBjb2xsYXBzZWQgdHJlZSBhbHJlYWR5IGV4Y2Vl
ZHMgdGhpcyBhbW91bnQpLiBTbyBzZXR0aW5nIHRoZSBudW1iZXIgb2YKKyMgZW50cmllcyAxIHdp
bGwgcHJvZHVjZSBhIGZ1bGwgY29sbGFwc2VkIHRyZWUgYnkgZGVmYXVsdC4gMCBpcyBhIHNwZWNp
YWwgdmFsdWUKKyMgcmVwcmVzZW50aW5nIGFuIGluZmluaXRlIG51bWJlciBvZiBlbnRyaWVzIGFu
ZCB3aWxsIHJlc3VsdCBpbiBhIGZ1bGwgZXhwYW5kZWQKKyMgdHJlZSBieSBkZWZhdWx0LgorIyBN
aW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5OTk5LCBkZWZhdWx0IHZhbHVlOiAxMDAu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0
byBZRVMuCisKK0hUTUxfSU5ERVhfTlVNX0VOVFJJRVMgPSAxMDAKKworIyBJZiB0aGUgR0VORVJB
VEVfRE9DU0VUIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGluZGV4IGZpbGVzIHdpbGwg
YmUKKyMgZ2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVzZWQgYXMgaW5wdXQgZm9yIEFwcGxlJ3MgWGNv
ZGUgMyBpbnRlZ3JhdGVkIGRldmVsb3BtZW50CisjIGVudmlyb25tZW50IChzZWU6IGh0dHA6Ly9k
ZXZlbG9wZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlLyksIGludHJvZHVjZWQgd2l0aAorIyBPU1gg
MTAuNSAoTGVvcGFyZCkuIFRvIGNyZWF0ZSBhIGRvY3VtZW50YXRpb24gc2V0LCBkb3h5Z2VuIHdp
bGwgZ2VuZXJhdGUgYQorIyBNYWtlZmlsZSBpbiB0aGUgSFRNTCBvdXRwdXQgZGlyZWN0b3J5LiBS
dW5uaW5nIG1ha2Ugd2lsbCBwcm9kdWNlIHRoZSBkb2NzZXQgaW4KKyMgdGhhdCBkaXJlY3Rvcnkg
YW5kIHJ1bm5pbmcgbWFrZSBpbnN0YWxsIHdpbGwgaW5zdGFsbCB0aGUgZG9jc2V0IGluCisjIH4v
TGlicmFyeS9EZXZlbG9wZXIvU2hhcmVkL0RvY3VtZW50YXRpb24vRG9jU2V0cyBzbyB0aGF0IFhj
b2RlIHdpbGwgZmluZCBpdCBhdAorIyBzdGFydHVwLiBTZWUgaHR0cDovL2RldmVsb3Blci5hcHBs
ZS5jb20vdG9vbHMvY3JlYXRpbmdkb2NzZXRzd2l0aGRveHlnZW4uaHRtbAorIyBmb3IgbW9yZSBp
bmZvcm1hdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitHRU5FUkFU
RV9ET0NTRVQgICAgICAgID0gTk8KKworIyBUaGlzIHRhZyBkZXRlcm1pbmVzIHRoZSBuYW1lIG9m
IHRoZSBkb2NzZXQgZmVlZC4gQSBkb2N1bWVudGF0aW9uIGZlZWQgcHJvdmlkZXMKKyMgYW4gdW1i
cmVsbGEgdW5kZXIgd2hpY2ggbXVsdGlwbGUgZG9jdW1lbnRhdGlvbiBzZXRzIGZyb20gYSBzaW5n
bGUgcHJvdmlkZXIKKyMgKHN1Y2ggYXMgYSBjb21wYW55IG9yIHByb2R1Y3Qgc3VpdGUpIGNhbiBi
ZSBncm91cGVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogRG94eWdlbiBnZW5lcmF0ZWQgZG9j
cy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NFVCBpcyBz
ZXQgdG8gWUVTLgorCitET0NTRVRfRkVFRE5BTUUgICAgICAgID0gIkRveHlnZW4gZ2VuZXJhdGVk
IGRvY3MiCisKKyMgVGhpcyB0YWcgc3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQgc2hvdWxkIHVuaXF1
ZWx5IGlkZW50aWZ5IHRoZSBkb2N1bWVudGF0aW9uCisjIHNldCBidW5kbGUuIFRoaXMgc2hvdWxk
IGJlIGEgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZSBzdHJpbmcsIGUuZy4KKyMgY29tLm15Y29t
cGFueS5NeURvY1NldC4gRG94eWdlbiB3aWxsIGFwcGVuZCAuZG9jc2V0IHRvIHRoZSBuYW1lLgor
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4uUHJvamVjdC4KKyMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgorCitE
T0NTRVRfQlVORExFX0lEICAgICAgID0gb3JnLmRveHlnZW4uUHJvamVjdAorCisjIFRoZSBET0NT
RVRfUFVCTElTSEVSX0lEIHRhZyBzcGVjaWZpZXMgYSBzdHJpbmcgdGhhdCBzaG91bGQgdW5pcXVl
bHkgaWRlbnRpZnkKKyMgdGhlIGRvY3VtZW50YXRpb24gcHVibGlzaGVyLiBUaGlzIHNob3VsZCBi
ZSBhIHJldmVyc2UgZG9tYWluLW5hbWUgc3R5bGUKKyMgc3RyaW5nLCBlLmcuIGNvbS5teWNvbXBh
bnkuTXlEb2NTZXQuZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5k
b3h5Z2VuLlB1Ymxpc2hlci4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVS
QVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLgorCitET0NTRVRfUFVCTElTSEVSX0lEICAgID0gb3Jn
LmRveHlnZW4uUHVibGlzaGVyCisKKyMgVGhlIERPQ1NFVF9QVUJMSVNIRVJfTkFNRSB0YWcgaWRl
bnRpZmllcyB0aGUgZG9jdW1lbnRhdGlvbiBwdWJsaXNoZXIuCisjIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBQdWJsaXNoZXIuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9ET0NTRVQgaXMgc2V0IHRvIFlFUy4KKworRE9DU0VUX1BVQkxJU0hFUl9OQU1FICA9IFB1Ymxp
c2hlcgorCisjIElmIHRoZSBHRU5FUkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVu
IGRveHlnZW4gZ2VuZXJhdGVzIHRocmVlCisjIGFkZGl0aW9uYWwgSFRNTCBpbmRleCBmaWxlczog
aW5kZXguaGhwLCBpbmRleC5oaGMsIGFuZCBpbmRleC5oaGsuIFRoZQorIyBpbmRleC5oaHAgaXMg
YSBwcm9qZWN0IGZpbGUgdGhhdCBjYW4gYmUgcmVhZCBieSBNaWNyb3NvZnQncyBIVE1MIEhlbHAg
V29ya3Nob3AKKyMgKHNlZTogaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2VuLXVzL2Rvd25sb2Fk
L2RldGFpbHMuYXNweD9pZD0yMTEzOCkgb24KKyMgV2luZG93cy4KKyMKKyMgVGhlIEhUTUwgSGVs
cCBXb3Jrc2hvcCBjb250YWlucyBhIGNvbXBpbGVyIHRoYXQgY2FuIGNvbnZlcnQgYWxsIEhUTUwg
b3V0cHV0CisjIGdlbmVyYXRlZCBieSBkb3h5Z2VuIGludG8gYSBzaW5nbGUgY29tcGlsZWQgSFRN
TCBmaWxlICguY2htKS4gQ29tcGlsZWQgSFRNTAorIyBmaWxlcyBhcmUgbm93IHVzZWQgYXMgdGhl
IFdpbmRvd3MgOTggaGVscCBmb3JtYXQsIGFuZCB3aWxsIHJlcGxhY2UgdGhlIG9sZAorIyBXaW5k
b3dzIGhlbHAgZm9ybWF0ICguaGxwKSBvbiBhbGwgV2luZG93cyBwbGF0Zm9ybXMgaW4gdGhlIGZ1
dHVyZS4gQ29tcHJlc3NlZAorIyBIVE1MIGZpbGVzIGFsc28gY29udGFpbiBhbiBpbmRleCwgYSB0
YWJsZSBvZiBjb250ZW50cywgYW5kIHlvdSBjYW4gc2VhcmNoIGZvcgorIyB3b3JkcyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbi4gVGhlIEhUTUwgd29ya3Nob3AgYWxzbyBjb250YWlucyBhIHZpZXdlciBm
b3IKKyMgY29tcHJlc3NlZCBIVE1MIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8u
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0
byBZRVMuCisKK0dFTkVSQVRFX0hUTUxIRUxQICAgICAgPSAlSFRNTF9IRUxQJQorCisjIFRoZSBD
SE1fRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZSBuYW1lIG9mIHRoZSBy
ZXN1bHRpbmcgLmNobQorIyBmaWxlLiBZb3UgY2FuIGFkZCBhIHBhdGggaW4gZnJvbnQgb2YgdGhl
IGZpbGUgaWYgdGhlIHJlc3VsdCBzaG91bGQgbm90IGJlCisjIHdyaXR0ZW4gdG8gdGhlIGh0bWwg
b3V0cHV0IGRpcmVjdG9yeS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVS
QVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCisKK0NITV9GSUxFICAgICAgICAgICAgICAgPSBq
c29uY3BwLSVKU09OQ1BQX1ZFUlNJT04lLmNobQorCisjIFRoZSBISENfTE9DQVRJT04gdGFnIGNh
biBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIChhYnNvbHV0ZSBwYXRoCisjIGluY2x1
ZGluZyBmaWxlIG5hbWUpIG9mIHRoZSBIVE1MIGhlbHAgY29tcGlsZXIgKCBoaGMuZXhlKS4gSWYg
bm9uLWVtcHR5CisjIGRveHlnZW4gd2lsbCB0cnkgdG8gcnVuIHRoZSBIVE1MIGhlbHAgY29tcGls
ZXIgb24gdGhlIGdlbmVyYXRlZCBpbmRleC5oaHAuCisjIFRoZSBmaWxlIGhhcyB0byBiZSBzcGVj
aWZpZWQgd2l0aCBmdWxsIHBhdGguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9IVE1MSEVMUCBpcyBzZXQgdG8gWUVTLgorCitISENfTE9DQVRJT04gICAgICAgICAg
ID0gImM6XFByb2dyYW0gRmlsZXNcSFRNTCBIZWxwIFdvcmtzaG9wXGhoYy5leGUiCisKKyMgVGhl
IEdFTkVSQVRFX0NISSBmbGFnIGNvbnRyb2xzIGlmIGEgc2VwYXJhdGUgLmNoaSBpbmRleCBmaWxl
IGlzIGdlbmVyYXRlZCAoCisjIFlFUykgb3IgdGhhdCBpdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4g
dGhlIG1hc3RlciAuY2htIGZpbGUgKCBOTykuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNl
dCB0byBZRVMuCisKK0dFTkVSQVRFX0NISSAgICAgICAgICAgPSBZRVMKKworIyBUaGUgQ0hNX0lO
REVYX0VOQ09ESU5HIGlzIHVzZWQgdG8gZW5jb2RlIEh0bWxIZWxwIGluZGV4ICggaGhrKSwgY29u
dGVudCAoIGhoYykKKyMgYW5kIHByb2plY3QgZmlsZSBjb250ZW50LgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KKworQ0hN
X0lOREVYX0VOQ09ESU5HICAgICA9CisKKyMgVGhlIEJJTkFSWV9UT0MgZmxhZyBjb250cm9scyB3
aGV0aGVyIGEgYmluYXJ5IHRhYmxlIG9mIGNvbnRlbnRzIGlzIGdlbmVyYXRlZCAoCisjIFlFUykg
b3IgYSBub3JtYWwgdGFibGUgb2YgY29udGVudHMgKCBOTykgaW4gdGhlIC5jaG0gZmlsZS4KKyMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KKworQklOQVJZX1RPQyAgICAgICAg
ICAgICA9IFlFUworCisjIFRoZSBUT0NfRVhQQU5EIGZsYWcgY2FuIGJlIHNldCB0byBZRVMgdG8g
YWRkIGV4dHJhIGl0ZW1zIGZvciBncm91cCBtZW1iZXJzIHRvCisjIHRoZSB0YWJsZSBvZiBjb250
ZW50cyBvZiB0aGUgSFRNTCBoZWxwIGRvY3VtZW50YXRpb24gYW5kIHRvIHRoZSB0cmVlIHZpZXcu
CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0hUTUxIRUxQIGlzIHNldCB0byBZRVMuCisKK1RPQ19FWFBBTkQgICAg
ICAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgR0VORVJBVEVfUUhQIHRhZyBpcyBzZXQgdG8gWUVT
IGFuZCBib3RoIFFIUF9OQU1FU1BBQ0UgYW5kCisjIFFIUF9WSVJUVUFMX0ZPTERFUiBhcmUgc2V0
LCBhbiBhZGRpdGlvbmFsIGluZGV4IGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgdGhhdAorIyBjYW4g
YmUgdXNlZCBhcyBpbnB1dCBmb3IgUXQncyBxaGVscGdlbmVyYXRvciB0byBnZW5lcmF0ZSBhIFF0
IENvbXByZXNzZWQgSGVscAorIyAoLnFjaCkgb2YgdGhlIGdlbmVyYXRlZCBIVE1MIGRvY3VtZW50
YXRpb24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworR0VORVJBVEVfUUhQ
ICAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIFFIR19MT0NBVElPTiB0YWcgaXMgc3BlY2lmaWVk
LCB0aGUgUUNIX0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkKKyMgdGhlIGZpbGUgbmFt
ZSBvZiB0aGUgcmVzdWx0aW5nIC5xY2ggZmlsZS4gVGhlIHBhdGggc3BlY2lmaWVkIGlzIHJlbGF0
aXZlIHRvCisjIHRoZSBIVE1MIG91dHB1dCBmb2xkZXIuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KKworUUNIX0ZJTEUgICAgICAg
ICAgICAgICA9CisKKyMgVGhlIFFIUF9OQU1FU1BBQ0UgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNw
YWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgUXQgSGVscAorIyBQcm9qZWN0IG91dHB1dC4gRm9y
IG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBOYW1lc3BhY2UK
KyMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5o
dG1sI25hbWVzcGFjZSkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5Qcm9q
ZWN0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNl
dCB0byBZRVMuCisKK1FIUF9OQU1FU1BBQ0UgICAgICAgICAgPQorCisjIFRoZSBRSFBfVklSVFVB
TF9GT0xERVIgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNwYWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRp
bmcgUXQKKyMgSGVscCBQcm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNl
IHNlZSBRdCBIZWxwIFByb2plY3QgLyBWaXJ0dWFsCisjIEZvbGRlcnMgKHNlZTogaHR0cDovL3F0
LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI3ZpcnR1YWwtCisjIGZv
bGRlcnMpLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogZG9jLgorIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCisKK1FIUF9WSVJUVUFM
X0ZPTERFUiAgICAgPSBkb2MKKworIyBJZiB0aGUgUUhQX0NVU1RfRklMVEVSX05BTUUgdGFnIGlz
IHNldCwgaXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgY3VzdG9tCisjIGZpbHRlciB0byBhZGQu
IEZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgUXQgSGVscCBQcm9qZWN0IC8gQ3VzdG9t
CisjIEZpbHRlcnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxw
cHJvamVjdC5odG1sI2N1c3RvbS0KKyMgZmlsdGVycykuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KKworUUhQX0NVU1RfRklMVEVS
X05BTUUgICA9CisKKyMgVGhlIFFIUF9DVVNUX0ZJTFRFUl9BVFRSUyB0YWcgc3BlY2lmaWVzIHRo
ZSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZQorIyBjdXN0b20gZmlsdGVyIHRvIGFkZC4g
Rm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBDdXN0b20K
KyMgRmlsdGVycyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBw
cm9qZWN0Lmh0bWwjY3VzdG9tLQorIyBmaWx0ZXJzKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgorCitRSFBfQ1VTVF9GSUxURVJf
QVRUUlMgID0KKworIyBUaGUgUUhQX1NFQ1RfRklMVEVSX0FUVFJTIHRhZyBzcGVjaWZpZXMgdGhl
IGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgdGhpcworIyBwcm9qZWN0J3MgZmlsdGVyIHNlY3Rpb24g
bWF0Y2hlcy4gUXQgSGVscCBQcm9qZWN0IC8gRmlsdGVyIEF0dHJpYnV0ZXMgKHNlZToKKyMgaHR0
cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI2ZpbHRlci1h
dHRyaWJ1dGVzKS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FI
UCBpcyBzZXQgdG8gWUVTLgorCitRSFBfU0VDVF9GSUxURVJfQVRUUlMgID0KKworIyBUaGUgUUhH
X0xPQ0FUSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBRdCdz
CisjIHFoZWxwZ2VuZXJhdG9yLiBJZiBub24tZW1wdHkgZG94eWdlbiB3aWxsIHRyeSB0byBydW4g
cWhlbHBnZW5lcmF0b3Igb24gdGhlCisjIGdlbmVyYXRlZCAucWhwIGZpbGUuCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KKworUUhH
X0xPQ0FUSU9OICAgICAgICAgICA9CisKKyMgSWYgdGhlIEdFTkVSQVRFX0VDTElQU0VIRUxQIHRh
ZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGluZGV4IGZpbGVzIHdpbGwgYmUKKyMgZ2VuZXJh
dGVkLCB0b2dldGhlciB3aXRoIHRoZSBIVE1MIGZpbGVzLCB0aGV5IGZvcm0gYW4gRWNsaXBzZSBo
ZWxwIHBsdWdpbi4gVG8KKyMgaW5zdGFsbCB0aGlzIHBsdWdpbiBhbmQgbWFrZSBpdCBhdmFpbGFi
bGUgdW5kZXIgdGhlIGhlbHAgY29udGVudHMgbWVudSBpbgorIyBFY2xpcHNlLCB0aGUgY29udGVu
dHMgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBIVE1MIGFuZCBYTUwgZmlsZXMgbmVl
ZHMKKyMgdG8gYmUgY29waWVkIGludG8gdGhlIHBsdWdpbnMgZGlyZWN0b3J5IG9mIGVjbGlwc2Uu
IFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkKKyMgd2l0aGluIHRoZSBwbHVnaW5zIGRpcmVjdG9y
eSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIEVDTElQU0VfRE9DX0lEIHZhbHVlLgorIyBBZnRl
ciBjb3B5aW5nIEVjbGlwc2UgbmVlZHMgdG8gYmUgcmVzdGFydGVkIGJlZm9yZSB0aGUgaGVscCBh
cHBlYXJzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0dFTkVSQVRFX0VD
TElQU0VIRUxQICAgPSBOTworCisjIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBFY2xpcHNl
IGhlbHAgcGx1Z2luLiBXaGVuIGluc3RhbGxpbmcgdGhlIHBsdWdpbgorIyB0aGUgZGlyZWN0b3J5
IG5hbWUgY29udGFpbmluZyB0aGUgSFRNTCBhbmQgWE1MIGZpbGVzIHNob3VsZCBhbHNvIGhhdmUg
dGhpcworIyBuYW1lLiBFYWNoIGRvY3VtZW50YXRpb24gc2V0IHNob3VsZCBoYXZlIGl0cyBvd24g
aWRlbnRpZmllci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5Z2VuLlByb2plY3Qu
CisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9FQ0xJUFNFSEVMUCBp
cyBzZXQgdG8gWUVTLgorCitFQ0xJUFNFX0RPQ19JRCAgICAgICAgID0gb3JnLmRveHlnZW4uUHJv
amVjdAorCisjIElmIHlvdSB3YW50IGZ1bGwgY29udHJvbCBvdmVyIHRoZSBsYXlvdXQgb2YgdGhl
IGdlbmVyYXRlZCBIVE1MIHBhZ2VzIGl0IG1pZ2h0CisjIGJlIG5lY2Vzc2FyeSB0byBkaXNhYmxl
IHRoZSBpbmRleCBhbmQgcmVwbGFjZSBpdCB3aXRoIHlvdXIgb3duLiBUaGUKKyMgRElTQUJMRV9J
TkRFWCB0YWcgY2FuIGJlIHVzZWQgdG8gdHVybiBvbi9vZmYgdGhlIGNvbmRlbnNlZCBpbmRleCAo
dGFicykgYXQgdG9wCisjIG9mIGVhY2ggSFRNTCBwYWdlLiBBIHZhbHVlIG9mIE5PIGVuYWJsZXMg
dGhlIGluZGV4IGFuZCB0aGUgdmFsdWUgWUVTIGRpc2FibGVzCisjIGl0LiBTaW5jZSB0aGUgdGFi
cyBpbiB0aGUgaW5kZXggY29udGFpbiB0aGUgc2FtZSBpbmZvcm1hdGlvbiBhcyB0aGUgbmF2aWdh
dGlvbgorIyB0cmVlLCB5b3UgY2FuIHNldCB0aGlzIG9wdGlvbiB0byBZRVMgaWYgeW91IGFsc28g
c2V0IEdFTkVSQVRFX1RSRUVWSUVXIHRvIFlFUy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQg
dG8gWUVTLgorCitESVNBQkxFX0lOREVYICAgICAgICAgID0gTk8KKworIyBUaGUgR0VORVJBVEVf
VFJFRVZJRVcgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGV0aGVyIGEgdHJlZS1saWtlIGluZGV4
CisjIHN0cnVjdHVyZSBzaG91bGQgYmUgZ2VuZXJhdGVkIHRvIGRpc3BsYXkgaGllcmFyY2hpY2Fs
IGluZm9ybWF0aW9uLiBJZiB0aGUgdGFnCisjIHZhbHVlIGlzIHNldCB0byBZRVMsIGEgc2lkZSBw
YW5lbCB3aWxsIGJlIGdlbmVyYXRlZCBjb250YWluaW5nIGEgdHJlZS1saWtlCisjIGluZGV4IHN0
cnVjdHVyZSAoanVzdCBsaWtlIHRoZSBvbmUgdGhhdCBpcyBnZW5lcmF0ZWQgZm9yIEhUTUwgSGVs
cCkuIEZvciB0aGlzCisjIHRvIHdvcmsgYSBicm93c2VyIHRoYXQgc3VwcG9ydHMgSmF2YVNjcmlw
dCwgREhUTUwsIENTUyBhbmQgZnJhbWVzIGlzIHJlcXVpcmVkCisjIChpLmUuIGFueSBtb2Rlcm4g
YnJvd3NlcikuIFdpbmRvd3MgdXNlcnMgYXJlIHByb2JhYmx5IGJldHRlciBvZmYgdXNpbmcgdGhl
CisjIEhUTUwgaGVscCBmZWF0dXJlLiBWaWEgY3VzdG9tIHN0eWxlc2hlZXRzIChzZWUgSFRNTF9F
WFRSQV9TVFlMRVNIRUVUKSBvbmUgY2FuCisjIGZ1cnRoZXIgZmluZS10dW5lIHRoZSBsb29rIG9m
IHRoZSBpbmRleC4gQXMgYW4gZXhhbXBsZSwgdGhlIGRlZmF1bHQgc3R5bGUKKyMgc2hlZXQgZ2Vu
ZXJhdGVkIGJ5IGRveHlnZW4gaGFzIGFuIGV4YW1wbGUgdGhhdCBzaG93cyBob3cgdG8gcHV0IGFu
IGltYWdlIGF0CisjIHRoZSByb290IG9mIHRoZSB0cmVlIGluc3RlYWQgb2YgdGhlIFBST0pFQ1Rf
TkFNRS4gU2luY2UgdGhlIHRyZWUgYmFzaWNhbGx5IGhhcworIyB0aGUgc2FtZSBpbmZvcm1hdGlv
biBhcyB0aGUgdGFiIGluZGV4LCB5b3UgY291bGQgY29uc2lkZXIgc2V0dGluZworIyBESVNBQkxF
X0lOREVYIHRvIFlFUyB3aGVuIGVuYWJsaW5nIHRoaXMgb3B0aW9uLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9I
VE1MIGlzIHNldCB0byBZRVMuCisKK0dFTkVSQVRFX1RSRUVWSUVXICAgICAgPSBZRVMKKworIyBU
aGUgRU5VTV9WQUxVRVNfUEVSX0xJTkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbnVtYmVy
IG9mIGVudW0gdmFsdWVzIHRoYXQKKyMgZG94eWdlbiB3aWxsIGdyb3VwIG9uIG9uZSBsaW5lIGlu
IHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgorIworIyBOb3RlIHRoYXQgYSB2YWx1
ZSBvZiAwIHdpbGwgY29tcGxldGVseSBzdXBwcmVzcyB0aGUgZW51bSB2YWx1ZXMgZnJvbSBhcHBl
YXJpbmcKKyMgaW4gdGhlIG92ZXJ2aWV3IHNlY3Rpb24uCisjIE1pbmltdW0gdmFsdWU6IDAsIG1h
eGltdW0gdmFsdWU6IDIwLCBkZWZhdWx0IHZhbHVlOiA0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitFTlVNX1ZBTFVFU19Q
RVJfTElORSAgID0gNAorCisjIElmIHRoZSB0cmVldmlldyBpcyBlbmFibGVkIChzZWUgR0VORVJB
VEVfVFJFRVZJRVcpIHRoZW4gdGhpcyB0YWcgY2FuIGJlIHVzZWQKKyMgdG8gc2V0IHRoZSBpbml0
aWFsIHdpZHRoIChpbiBwaXhlbHMpIG9mIHRoZSBmcmFtZSBpbiB3aGljaCB0aGUgdHJlZSBpcyBz
aG93bi4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTUwMCwgZGVmYXVsdCB2
YWx1ZTogMjUwLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRN
TCBpcyBzZXQgdG8gWUVTLgorCitUUkVFVklFV19XSURUSCAgICAgICAgID0gMjUwCisKKyMgV2hl
biB0aGUgRVhUX0xJTktTX0lOX1dJTkRPVyBvcHRpb24gaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdp
bGwgb3BlbiBsaW5rcyB0bworIyBleHRlcm5hbCBzeW1ib2xzIGltcG9ydGVkIHZpYSB0YWcgZmls
ZXMgaW4gYSBzZXBhcmF0ZSB3aW5kb3cuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlF
Uy4KKworRVhUX0xJTktTX0lOX1dJTkRPVyAgICA9IE5PCisKKyMgVXNlIHRoaXMgdGFnIHRvIGNo
YW5nZSB0aGUgZm9udCBzaXplIG9mIExhVGVYIGZvcm11bGFzIGluY2x1ZGVkIGFzIGltYWdlcyBp
bgorIyB0aGUgSFRNTCBkb2N1bWVudGF0aW9uLiBXaGVuIHlvdSBjaGFuZ2UgdGhlIGZvbnQgc2l6
ZSBhZnRlciBhIHN1Y2Nlc3NmdWwKKyMgZG94eWdlbiBydW4geW91IG5lZWQgdG8gbWFudWFsbHkg
cmVtb3ZlIGFueSBmb3JtXyoucG5nIGltYWdlcyBmcm9tIHRoZSBIVE1MCisjIG91dHB1dCBkaXJl
Y3RvcnkgdG8gZm9yY2UgdGhlbSB0byBiZSByZWdlbmVyYXRlZC4KKyMgTWluaW11bSB2YWx1ZTog
OCwgbWF4aW11bSB2YWx1ZTogNTAsIGRlZmF1bHQgdmFsdWU6IDEwLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitGT1JNVUxB
X0ZPTlRTSVpFICAgICAgID0gMTAKKworIyBVc2UgdGhlIEZPUk1VTEFfVFJBTlBBUkVOVCB0YWcg
dG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBpbWFnZXMKKyMgZ2VuZXJhdGVkIGZvciBm
b3JtdWxhcyBhcmUgdHJhbnNwYXJlbnQgUE5Hcy4gVHJhbnNwYXJlbnQgUE5HcyBhcmUgbm90Cisj
IHN1cHBvcnRlZCBwcm9wZXJseSBmb3IgSUUgNi4wLCBidXQgYXJlIHN1cHBvcnRlZCBvbiBhbGwg
bW9kZXJuIGJyb3dzZXJzLgorIworIyBOb3RlIHRoYXQgd2hlbiBjaGFuZ2luZyB0aGlzIG9wdGlv
biB5b3UgbmVlZCB0byBkZWxldGUgYW55IGZvcm1fKi5wbmcgZmlsZXMgaW4KKyMgdGhlIEhUTUwg
b3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgdGhlIGNoYW5nZXMgaGF2ZSBlZmZlY3QuCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0ZPUk1VTEFfVFJBTlNQQVJFTlQgICAgPSBZ
RVMKKworIyBFbmFibGUgdGhlIFVTRV9NQVRISkFYIG9wdGlvbiB0byByZW5kZXIgTGFUZVggZm9y
bXVsYXMgdXNpbmcgTWF0aEpheCAoc2VlCisjIGh0dHA6Ly93d3cubWF0aGpheC5vcmcpIHdoaWNo
IHVzZXMgY2xpZW50IHNpZGUgSmF2YVNjcmlwdCBmb3IgdGhlIHJlbmRlcmluZworIyBpbnN0ZWFk
IG9mIHVzaW5nIHByZXJlbmRlcmVkIGJpdG1hcHMuIFVzZSB0aGlzIGlmIHlvdSBkbyBub3QgaGF2
ZSBMYVRlWAorIyBpbnN0YWxsZWQgb3IgaWYgeW91IHdhbnQgdG8gZm9ybXVsYXMgbG9vayBwcmV0
dGllciBpbiB0aGUgSFRNTCBvdXRwdXQuIFdoZW4KKyMgZW5hYmxlZCB5b3UgbWF5IGFsc28gbmVl
ZCB0byBpbnN0YWxsIE1hdGhKYXggc2VwYXJhdGVseSBhbmQgY29uZmlndXJlIHRoZSBwYXRoCisj
IHRvIGl0IHVzaW5nIHRoZSBNQVRISkFYX1JFTFBBVEggb3B0aW9uLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9I
VE1MIGlzIHNldCB0byBZRVMuCisKK1VTRV9NQVRISkFYICAgICAgICAgICAgPSBOTworCisjIFdo
ZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBjYW4gc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBmb3Jt
YXQgdG8gYmUgdXNlZCBmb3IKKyMgdGhlIE1hdGhKYXggb3V0cHV0LiBTZWUgdGhlIE1hdGhKYXgg
c2l0ZSAoc2VlOgorIyBodHRwOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi9sYXRlc3Qvb3V0cHV0Lmh0
bWwpIGZvciBtb3JlIGRldGFpbHMuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IEhUTUwtQ1NTICh3
aGljaCBpcyBzbG93ZXIsIGJ1dCBoYXMgdGhlIGJlc3QKKyMgY29tcGF0aWJpbGl0eSksIE5hdGl2
ZU1NTCAoaS5lLiBNYXRoTUwpIGFuZCBTVkcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBIVE1M
LUNTUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFVTRV9NQVRISkFYIGlzIHNl
dCB0byBZRVMuCisKK01BVEhKQVhfRk9STUFUICAgICAgICAgPSBIVE1MLUNTUworCisjIFdoZW4g
TWF0aEpheCBpcyBlbmFibGVkIHlvdSBuZWVkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIHJlbGF0
aXZlIHRvIHRoZSBIVE1MCisjIG91dHB1dCBkaXJlY3RvcnkgdXNpbmcgdGhlIE1BVEhKQVhfUkVM
UEFUSCBvcHRpb24uIFRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkKKyMgc2hvdWxkIGNvbnRhaW4g
dGhlIE1hdGhKYXguanMgc2NyaXB0LiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBtYXRoamF4IGRpcmVj
dG9yeQorIyBpcyBsb2NhdGVkIGF0IHRoZSBzYW1lIGxldmVsIGFzIHRoZSBIVE1MIG91dHB1dCBk
aXJlY3RvcnksIHRoZW4KKyMgTUFUSEpBWF9SRUxQQVRIIHNob3VsZCBiZSAuLi9tYXRoamF4LiBU
aGUgZGVmYXVsdCB2YWx1ZSBwb2ludHMgdG8gdGhlIE1hdGhKYXgKKyMgQ29udGVudCBEZWxpdmVy
eSBOZXR3b3JrIHNvIHlvdSBjYW4gcXVpY2tseSBzZWUgdGhlIHJlc3VsdCB3aXRob3V0IGluc3Rh
bGxpbmcKKyMgTWF0aEpheC4gSG93ZXZlciwgaXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8g
aW5zdGFsbCBhIGxvY2FsIGNvcHkgb2YKKyMgTWF0aEpheCBmcm9tIGh0dHA6Ly93d3cubWF0aGph
eC5vcmcgYmVmb3JlIGRlcGxveW1lbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBodHRwOi8v
Y2RuLm1hdGhqYXgub3JnL21hdGhqYXgvbGF0ZXN0LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9SRUxQQVRIICAg
ICAgICA9IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0aGpheC9sYXRlc3QKKworIyBUaGUgTUFU
SEpBWF9FWFRFTlNJT05TIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIE1h
dGhKYXgKKyMgZXh0ZW5zaW9uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIGVuYWJsZWQgZHVyaW5nIE1h
dGhKYXggcmVuZGVyaW5nLiBGb3IgZXhhbXBsZQorIyBNQVRISkFYX0VYVEVOU0lPTlMgPSBUZVgv
QU1TbWF0aCBUZVgvQU1Tc3ltYm9scworIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcg
VVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9FWFRFTlNJT05TICAgICA9CisK
KyMgVGhlIE1BVEhKQVhfQ09ERUZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBmaWxl
IHdpdGggamF2YXNjcmlwdCBwaWVjZXMKKyMgb2YgY29kZSB0aGF0IHdpbGwgYmUgdXNlZCBvbiBz
dGFydHVwIG9mIHRoZSBNYXRoSmF4IGNvZGUuIFNlZSB0aGUgTWF0aEpheCBzaXRlCisjIChzZWU6
IGh0dHA6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL2xhdGVzdC9vdXRwdXQuaHRtbCkgZm9yIG1vcmUg
ZGV0YWlscy4gRm9yIGFuCisjIGV4YW1wbGUgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKwor
TUFUSEpBWF9DT0RFRklMRSAgICAgICA9CisKKyMgV2hlbiB0aGUgU0VBUkNIRU5HSU5FIHRhZyBp
cyBlbmFibGVkIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHNlYXJjaCBib3ggZm9yCisjIHRoZSBI
VE1MIG91dHB1dC4gVGhlIHVuZGVybHlpbmcgc2VhcmNoIGVuZ2luZSB1c2VzIGphdmFzY3JpcHQg
YW5kIERIVE1MIGFuZAorIyBzaG91bGQgd29yayBvbiBhbnkgbW9kZXJuIGJyb3dzZXIuIE5vdGUg
dGhhdCB3aGVuIHVzaW5nIEhUTUwgaGVscAorIyAoR0VORVJBVEVfSFRNTEhFTFApLCBRdCBoZWxw
IChHRU5FUkFURV9RSFApLCBvciBkb2NzZXRzIChHRU5FUkFURV9ET0NTRVQpCisjIHRoZXJlIGlz
IGFscmVhZHkgYSBzZWFyY2ggZnVuY3Rpb24gc28gdGhpcyBvbmUgc2hvdWxkIHR5cGljYWxseSBi
ZSBkaXNhYmxlZC4KKyMgRm9yIGxhcmdlIHByb2plY3RzIHRoZSBqYXZhc2NyaXB0IGJhc2VkIHNl
YXJjaCBlbmdpbmUgY2FuIGJlIHNsb3csIHRoZW4KKyMgZW5hYmxpbmcgU0VSVkVSX0JBU0VEX1NF
QVJDSCBtYXkgcHJvdmlkZSBhIGJldHRlciBzb2x1dGlvbi4gSXQgaXMgcG9zc2libGUgdG8KKyMg
c2VhcmNoIHVzaW5nIHRoZSBrZXlib2FyZDsgdG8ganVtcCB0byB0aGUgc2VhcmNoIGJveCB1c2Ug
PGFjY2VzcyBrZXk+ICsgUworIyAod2hhdCB0aGUgPGFjY2VzcyBrZXk+IGlzIGRlcGVuZHMgb24g
dGhlIE9TIGFuZCBicm93c2VyLCBidXQgaXQgaXMgdHlwaWNhbGx5CisjIDxDVFJMPiwgPEFMVD4v
PG9wdGlvbj4sIG9yIGJvdGgpLiBJbnNpZGUgdGhlIHNlYXJjaCBib3ggdXNlIHRoZSA8Y3Vyc29y
IGRvd24KKyMga2V5PiB0byBqdW1wIGludG8gdGhlIHNlYXJjaCByZXN1bHRzIHdpbmRvdywgdGhl
IHJlc3VsdHMgY2FuIGJlIG5hdmlnYXRlZAorIyB1c2luZyB0aGUgPGN1cnNvciBrZXlzPi4gUHJl
c3MgPEVudGVyPiB0byBzZWxlY3QgYW4gaXRlbSBvciA8ZXNjYXBlPiB0byBjYW5jZWwKKyMgdGhl
IHNlYXJjaC4gVGhlIGZpbHRlciBvcHRpb25zIGNhbiBiZSBzZWxlY3RlZCB3aGVuIHRoZSBjdXJz
b3IgaXMgaW5zaWRlIHRoZQorIyBzZWFyY2ggYm94IGJ5IHByZXNzaW5nIDxTaGlmdD4rPGN1cnNv
ciBkb3duPi4gQWxzbyBoZXJlIHVzZSB0aGUgPGN1cnNvciBrZXlzPgorIyB0byBzZWxlY3QgYSBm
aWx0ZXIgYW5kIDxFbnRlcj4gb3IgPGVzY2FwZT4gdG8gYWN0aXZhdGUgb3IgY2FuY2VsIHRoZSBm
aWx0ZXIKKyMgb3B0aW9uLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitT
RUFSQ0hFTkdJTkUgICAgICAgICAgID0gTk8KKworIyBXaGVuIHRoZSBTRVJWRVJfQkFTRURfU0VB
UkNIIHRhZyBpcyBlbmFibGVkIHRoZSBzZWFyY2ggZW5naW5lIHdpbGwgYmUKKyMgaW1wbGVtZW50
ZWQgdXNpbmcgYSB3ZWIgc2VydmVyIGluc3RlYWQgb2YgYSB3ZWIgY2xpZW50IHVzaW5nIEphdmFT
Y3JpcHQuIFRoZXJlCisjIGFyZSB0d28gZmxhdm91cnMgb2Ygd2ViIHNlcnZlciBiYXNlZCBzZWFy
Y2hpbmcgZGVwZW5kaW5nIG9uIHRoZQorIyBFWFRFUk5BTF9TRUFSQ0ggc2V0dGluZy4gV2hlbiBk
aXNhYmxlZCwgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgUEhQIHNjcmlwdCBmb3IKKyMgc2VhcmNo
aW5nIGFuZCBhbiBpbmRleCBmaWxlIHVzZWQgYnkgdGhlIHNjcmlwdC4gV2hlbiBFWFRFUk5BTF9T
RUFSQ0ggaXMKKyMgZW5hYmxlZCB0aGUgaW5kZXhpbmcgYW5kIHNlYXJjaGluZyBuZWVkcyB0byBi
ZSBwcm92aWRlZCBieSBleHRlcm5hbCB0b29scy4gU2VlCisjIHRoZSBzZWN0aW9uICJFeHRlcm5h
bCBJbmRleGluZyBhbmQgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KKyMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5F
IGlzIHNldCB0byBZRVMuCisKK1NFUlZFUl9CQVNFRF9TRUFSQ0ggICAgPSBOTworCisjIFdoZW4g
RVhURVJOQUxfU0VBUkNIIHRhZyBpcyBlbmFibGVkIGRveHlnZW4gd2lsbCBubyBsb25nZXIgZ2Vu
ZXJhdGUgdGhlIFBIUAorIyBzY3JpcHQgZm9yIHNlYXJjaGluZy4gSW5zdGVhZCB0aGUgc2VhcmNo
IHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYW4gWE1MIGZpbGUKKyMgd2hpY2ggbmVlZHMgdG8gYmUg
cHJvY2Vzc2VkIGJ5IGFuIGV4dGVybmFsIGluZGV4ZXIuIERveHlnZW4gd2lsbCBpbnZva2UgYW4K
KyMgZXh0ZXJuYWwgc2VhcmNoIGVuZ2luZSBwb2ludGVkIHRvIGJ5IHRoZSBTRUFSQ0hFTkdJTkVf
VVJMIG9wdGlvbiB0byBvYnRhaW4gdGhlCisjIHNlYXJjaCByZXN1bHRzLgorIworIyBEb3h5Z2Vu
IHNoaXBzIHdpdGggYW4gZXhhbXBsZSBpbmRleGVyICggZG94eWluZGV4ZXIpIGFuZCBzZWFyY2gg
ZW5naW5lCisjIChkb3h5c2VhcmNoLmNnaSkgd2hpY2ggYXJlIGJhc2VkIG9uIHRoZSBvcGVuIHNv
dXJjZSBzZWFyY2ggZW5naW5lIGxpYnJhcnkKKyMgWGFwaWFuIChzZWU6IGh0dHA6Ly94YXBpYW4u
b3JnLykuCisjCisjIFNlZSB0aGUgc2VjdGlvbiAiRXh0ZXJuYWwgSW5kZXhpbmcgYW5kIFNlYXJj
aGluZyIgZm9yIGRldGFpbHMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgorCitF
WFRFUk5BTF9TRUFSQ0ggICAgICAgID0gTk8KKworIyBUaGUgU0VBUkNIRU5HSU5FX1VSTCBzaG91
bGQgcG9pbnQgdG8gYSBzZWFyY2ggZW5naW5lIGhvc3RlZCBieSBhIHdlYiBzZXJ2ZXIKKyMgd2hp
Y2ggd2lsbCByZXR1cm4gdGhlIHNlYXJjaCByZXN1bHRzIHdoZW4gRVhURVJOQUxfU0VBUkNIIGlz
IGVuYWJsZWQuCisjCisjIERveHlnZW4gc2hpcHMgd2l0aCBhbiBleGFtcGxlIGluZGV4ZXIgKCBk
b3h5aW5kZXhlcikgYW5kIHNlYXJjaCBlbmdpbmUKKyMgKGRveHlzZWFyY2guY2dpKSB3aGljaCBh
cmUgYmFzZWQgb24gdGhlIG9wZW4gc291cmNlIHNlYXJjaCBlbmdpbmUgbGlicmFyeQorIyBYYXBp
YW4gKHNlZTogaHR0cDovL3hhcGlhbi5vcmcvKS4gU2VlIHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJ
bmRleGluZyBhbmQKKyMgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgorCitTRUFSQ0hFTkdJ
TkVfVVJMICAgICAgID0KKworIyBXaGVuIFNFUlZFUl9CQVNFRF9TRUFSQ0ggYW5kIEVYVEVSTkFM
X1NFQVJDSCBhcmUgYm90aCBlbmFibGVkIHRoZSB1bmluZGV4ZWQKKyMgc2VhcmNoIGRhdGEgaXMg
d3JpdHRlbiB0byBhIGZpbGUgZm9yIGluZGV4aW5nIGJ5IGFuIGV4dGVybmFsIHRvb2wuIFdpdGgg
dGhlCisjIFNFQVJDSERBVEFfRklMRSB0YWcgdGhlIG5hbWUgb2YgdGhpcyBmaWxlIGNhbiBiZSBz
cGVjaWZpZWQuCisjIFRoZSBkZWZhdWx0IGZpbGUgaXM6IHNlYXJjaGRhdGEueG1sLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCisK
K1NFQVJDSERBVEFfRklMRSAgICAgICAgPSBzZWFyY2hkYXRhLnhtbAorCisjIFdoZW4gU0VSVkVS
X0JBU0VEX1NFQVJDSCBhbmQgRVhURVJOQUxfU0VBUkNIIGFyZSBib3RoIGVuYWJsZWQgdGhlCisj
IEVYVEVSTkFMX1NFQVJDSF9JRCB0YWcgY2FuIGJlIHVzZWQgYXMgYW4gaWRlbnRpZmllciBmb3Ig
dGhlIHByb2plY3QuIFRoaXMgaXMKKyMgdXNlZnVsIGluIGNvbWJpbmF0aW9uIHdpdGggRVhUUkFf
U0VBUkNIX01BUFBJTkdTIHRvIHNlYXJjaCB0aHJvdWdoIG11bHRpcGxlCisjIHByb2plY3RzIGFu
ZCByZWRpcmVjdCB0aGUgcmVzdWx0cyBiYWNrIHRvIHRoZSByaWdodCBwcm9qZWN0LgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuCisK
K0VYVEVSTkFMX1NFQVJDSF9JRCAgICAgPQorCisjIFRoZSBFWFRSQV9TRUFSQ0hfTUFQUElOR1Mg
dGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBzZWFyY2hpbmcgdGhyb3VnaCBkb3h5Z2VuCisjIHBy
b2plY3RzIG90aGVyIHRoYW4gdGhlIG9uZSBkZWZpbmVkIGJ5IHRoaXMgY29uZmlndXJhdGlvbiBm
aWxlLCBidXQgdGhhdCBhcmUKKyMgYWxsIGFkZGVkIHRvIHRoZSBzYW1lIGV4dGVybmFsIHNlYXJj
aCBpbmRleC4gRWFjaCBwcm9qZWN0IG5lZWRzIHRvIGhhdmUgYQorIyB1bmlxdWUgaWQgc2V0IHZp
YSBFWFRFUk5BTF9TRUFSQ0hfSUQuIFRoZSBzZWFyY2ggbWFwcGluZyB0aGVuIG1hcHMgdGhlIGlk
IG9mCisjIHRvIGEgcmVsYXRpdmUgbG9jYXRpb24gd2hlcmUgdGhlIGRvY3VtZW50YXRpb24gY2Fu
IGJlIGZvdW5kLiBUaGUgZm9ybWF0IGlzOgorIyBFWFRSQV9TRUFSQ0hfTUFQUElOR1MgPSB0YWdu
YW1lMT1sb2MxIHRhZ25hbWUyPWxvYzIgLi4uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4KKworRVhUUkFfU0VBUkNIX01BUFBJTkdT
ICA9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0
ZWQgdG8gdGhlIExhVGVYIG91dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBH
RU5FUkFURV9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgTGFU
ZVggb3V0cHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitHRU5FUkFURV9MQVRF
WCAgICAgICAgID0gTk8KKworIyBUaGUgTEFURVhfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNp
Znkgd2hlcmUgdGhlIExhVGVYIGRvY3Mgd2lsbCBiZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0
aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGlu
IGZyb250IG9mCisjIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IGxhdGV4LgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlF
Uy4KKworTEFURVhfT1VUUFVUICAgICAgICAgICA9IGxhdGV4CisKKyMgVGhlIExBVEVYX0NNRF9O
QU1FIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBMYVRlWCBjb21tYW5kIG5hbWUgdG8g
YmUKKyMgaW52b2tlZC4KKyMKKyMgTm90ZSB0aGF0IHdoZW4gZW5hYmxpbmcgVVNFX1BERkxBVEVY
IHRoaXMgb3B0aW9uIGlzIG9ubHkgdXNlZCBmb3IgZ2VuZXJhdGluZworIyBiaXRtYXBzIGZvciBm
b3JtdWxhcyBpbiB0aGUgSFRNTCBvdXRwdXQsIGJ1dCBub3QgaW4gdGhlIE1ha2VmaWxlIHRoYXQg
aXMKKyMgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4KKyMgVGhlIGRlZmF1bHQgZmls
ZSBpczogbGF0ZXguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9M
QVRFWCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9DTURfTkFNRSAgICAgICAgID0gbGF0ZXgKKwor
IyBUaGUgTUFLRUlOREVYX0NNRF9OQU1FIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBj
b21tYW5kIG5hbWUgdG8gZ2VuZXJhdGUKKyMgaW5kZXggZm9yIExhVGVYLgorIyBUaGUgZGVmYXVs
dCBmaWxlIGlzOiBtYWtlaW5kZXguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitNQUtFSU5ERVhfQ01EX05BTUUgICAgID0g
bWFrZWluZGV4CisKKyMgSWYgdGhlIENPTVBBQ1RfTEFURVggdGFnIGlzIHNldCB0byBZRVMgZG94
eWdlbiBnZW5lcmF0ZXMgbW9yZSBjb21wYWN0IExhVGVYCisjIGRvY3VtZW50cy4gVGhpcyBtYXkg
YmUgdXNlZnVsIGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gc2F2ZSBzb21lCisj
IHRyZWVzIGluIGdlbmVyYWwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisK
K0NPTVBBQ1RfTEFURVggICAgICAgICAgPSBOTworCisjIFRoZSBQQVBFUl9UWVBFIHRhZyBjYW4g
YmUgdXNlZCB0byBzZXQgdGhlIHBhcGVyIHR5cGUgdGhhdCBpcyB1c2VkIGJ5IHRoZQorIyBwcmlu
dGVyLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBhNCAoMjEwIHggMjk3IG1tKSwgbGV0dGVyICg4
LjUgeCAxMSBpbmNoZXMpLCBsZWdhbCAoOC41IHgKKyMgMTQgaW5jaGVzKSBhbmQgZXhlY3V0aXZl
ICg3LjI1IHggMTAuNSBpbmNoZXMpLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogYTQuCisjIFRo
aXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVT
LgorCitQQVBFUl9UWVBFICAgICAgICAgICAgID0gYTR3aWRlCisKKyMgVGhlIEVYVFJBX1BBQ0tB
R0VTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIExhVGVYIHBhY2thZ2Ug
bmFtZXMKKyMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIExhVGVYIG91dHB1dC4gVG8g
Z2V0IHRoZSB0aW1lcyBmb250IGZvcgorIyBpbnN0YW5jZSB5b3UgY2FuIHNwZWNpZnkKKyMgRVhU
UkFfUEFDS0FHRVM9dGltZXMKKyMgSWYgbGVmdCBibGFuayBubyBleHRyYSBwYWNrYWdlcyB3aWxs
IGJlIGluY2x1ZGVkLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
TEFURVggaXMgc2V0IHRvIFlFUy4KKworRVhUUkFfUEFDS0FHRVMgICAgICAgICA9CisKKyMgVGhl
IExBVEVYX0hFQURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBlcnNvbmFsIExhVGVY
IGhlYWRlciBmb3IgdGhlCisjIGdlbmVyYXRlZCBMYVRlWCBkb2N1bWVudC4gVGhlIGhlYWRlciBz
aG91bGQgY29udGFpbiBldmVyeXRoaW5nIHVudGlsIHRoZSBmaXJzdAorIyBjaGFwdGVyLiBJZiBp
dCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYXJkIGhlYWRlci4g
U2VlCisjIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8g
bGV0IGRveHlnZW4gd3JpdGUgdGhlCisjIGRlZmF1bHQgaGVhZGVyIHRvIGEgc2VwYXJhdGUgZmls
ZS4KKyMKKyMgTm90ZTogT25seSB1c2UgYSB1c2VyLWRlZmluZWQgaGVhZGVyIGlmIHlvdSBrbm93
IHdoYXQgeW91IGFyZSBkb2luZyEgVGhlCisjIGZvbGxvd2luZyBjb21tYW5kcyBoYXZlIGEgc3Bl
Y2lhbCBtZWFuaW5nIGluc2lkZSB0aGUgaGVhZGVyOiAkdGl0bGUsCisjICRkYXRldGltZSwgJGRh
dGUsICRkb3h5Z2VudmVyc2lvbiwgJHByb2plY3RuYW1lLCAkcHJvamVjdG51bWJlci4gRG94eWdl
biB3aWxsCisjIHJlcGxhY2UgdGhlbSBieSByZXNwZWN0aXZlbHkgdGhlIHRpdGxlIG9mIHRoZSBw
YWdlLCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lLAorIyBvbmx5IHRoZSBjdXJyZW50IGRhdGUs
IHRoZSB2ZXJzaW9uIG51bWJlciBvZiBkb3h5Z2VuLCB0aGUgcHJvamVjdCBuYW1lIChzZWUKKyMg
UFJPSkVDVF9OQU1FKSwgb3IgdGhlIHByb2plY3QgbnVtYmVyIChzZWUgUFJPSkVDVF9OVU1CRVIp
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0
IHRvIFlFUy4KKworTEFURVhfSEVBREVSICAgICAgICAgICA9CisKKyMgVGhlIExBVEVYX0ZPT1RF
UiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBlcnNvbmFsIExhVGVYIGZvb3RlciBmb3Ig
dGhlCisjIGdlbmVyYXRlZCBMYVRlWCBkb2N1bWVudC4gVGhlIGZvb3RlciBzaG91bGQgY29udGFp
biBldmVyeXRoaW5nIGFmdGVyIHRoZSBsYXN0CisjIGNoYXB0ZXIuIElmIGl0IGlzIGxlZnQgYmxh
bmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhcmQgZm9vdGVyLgorIworIyBOb3RlOiBP
bmx5IHVzZSBhIHVzZXItZGVmaW5lZCBmb290ZXIgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRv
aW5nIQorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMg
c2V0IHRvIFlFUy4KKworTEFURVhfRk9PVEVSICAgICAgICAgICA9CisKKyMgVGhlIExBVEVYX0VY
VFJBX0ZJTEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGV4dHJhIGlt
YWdlcyBvcgorIyBvdGhlciBzb3VyY2UgZmlsZXMgd2hpY2ggc2hvdWxkIGJlIGNvcGllZCB0byB0
aGUgTEFURVhfT1VUUFVUIG91dHB1dAorIyBkaXJlY3RvcnkuIE5vdGUgdGhhdCB0aGUgZmlsZXMg
d2lsbCBiZSBjb3BpZWQgYXMtaXM7IHRoZXJlIGFyZSBubyBjb21tYW5kcyBvcgorIyBtYXJrZXJz
IGF2YWlsYWJsZS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xB
VEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX0VYVFJBX0ZJTEVTICAgICAgPQorCisjIElmIHRo
ZSBQREZfSFlQRVJMSU5LUyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIExhVGVYIHRoYXQgaXMgZ2Vu
ZXJhdGVkIGlzCisjIHByZXBhcmVkIGZvciBjb252ZXJzaW9uIHRvIFBERiAodXNpbmcgcHMycGRm
IG9yIHBkZmxhdGV4KS4gVGhlIFBERiBmaWxlIHdpbGwKKyMgY29udGFpbiBsaW5rcyAoanVzdCBs
aWtlIHRoZSBIVE1MIG91dHB1dCkgaW5zdGVhZCBvZiBwYWdlIHJlZmVyZW5jZXMuIFRoaXMKKyMg
bWFrZXMgdGhlIG91dHB1dCBzdWl0YWJsZSBmb3Igb25saW5lIGJyb3dzaW5nIHVzaW5nIGEgUERG
IHZpZXdlci4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK1BERl9IWVBF
UkxJTktTICAgICAgICAgPSBOTworCisjIElmIHRoZSBMQVRFWF9QREZMQVRFWCB0YWcgaXMgc2V0
IHRvIFlFUywgZG94eWdlbiB3aWxsIHVzZSBwZGZsYXRleCB0byBnZW5lcmF0ZQorIyB0aGUgUERG
IGZpbGUgZGlyZWN0bHkgZnJvbSB0aGUgTGFUZVggZmlsZXMuIFNldCB0aGlzIG9wdGlvbiB0byBZ
RVMgdG8gZ2V0IGEKKyMgaGlnaGVyIHF1YWxpdHkgUERGIGRvY3VtZW50YXRpb24uCisjIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBH
RU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitVU0VfUERGTEFURVggICAgICAgICAgID0g
Tk8KKworIyBJZiB0aGUgTEFURVhfQkFUQ0hNT0RFIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2Vu
IHdpbGwgYWRkIHRoZSBcYmF0Y2htb2RlCisjIGNvbW1hbmQgdG8gdGhlIGdlbmVyYXRlZCBMYVRl
WCBmaWxlcy4gVGhpcyB3aWxsIGluc3RydWN0IExhVGVYIHRvIGtlZXAgcnVubmluZworIyBpZiBl
cnJvcnMgb2NjdXIsIGluc3RlYWQgb2YgYXNraW5nIHRoZSB1c2VyIGZvciBoZWxwLiBUaGlzIG9w
dGlvbiBpcyBhbHNvIHVzZWQKKyMgd2hlbiBnZW5lcmF0aW5nIGZvcm11bGFzIGluIEhUTUwuCisj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX0JBVENITU9ERSAgICAg
ICAgPSBOTworCisjIElmIHRoZSBMQVRFWF9ISURFX0lORElDRVMgdGFnIGlzIHNldCB0byBZRVMg
dGhlbiBkb3h5Z2VuIHdpbGwgbm90IGluY2x1ZGUgdGhlCisjIGluZGV4IGNoYXB0ZXJzIChzdWNo
IGFzIEZpbGUgSW5kZXgsIENvbXBvdW5kIEluZGV4LCBldGMuKSBpbiB0aGUgb3V0cHV0LgorIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9ISURFX0lORElDRVMgICAg
ID0gTk8KKworIyBJZiB0aGUgTEFURVhfU09VUkNFX0NPREUgdGFnIGlzIHNldCB0byBZRVMgdGhl
biBkb3h5Z2VuIHdpbGwgaW5jbHVkZSBzb3VyY2UKKyMgY29kZSB3aXRoIHN5bnRheCBoaWdobGln
aHRpbmcgaW4gdGhlIExhVGVYIG91dHB1dC4KKyMKKyMgTm90ZSB0aGF0IHdoaWNoIHNvdXJjZXMg
YXJlIHNob3duIGFsc28gZGVwZW5kcyBvbiBvdGhlciBzZXR0aW5ncyBzdWNoIGFzCisjIFNPVVJD
RV9CUk9XU0VSLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9T
T1VSQ0VfQ09ERSAgICAgID0gTk8KKworIyBUaGUgTEFURVhfQklCX1NUWUxFIHRhZyBjYW4gYmUg
dXNlZCB0byBzcGVjaWZ5IHRoZSBzdHlsZSB0byB1c2UgZm9yIHRoZQorIyBiaWJsaW9ncmFwaHks
IGUuZy4gcGxhaW5uYXQsIG9yIGllZWV0ci4gU2VlCisjIGh0dHA6Ly9lbi53aWtpcGVkaWEub3Jn
L3dpa2kvQmliVGVYIGFuZCBcY2l0ZSBmb3IgbW9yZSBpbmZvLgorIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogcGxhaW4uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9M
QVRFWCBpcyBzZXQgdG8gWUVTLgorCitMQVRFWF9CSUJfU1RZTEUgICAgICAgID0gcGxhaW4KKwor
Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0
aGUgUlRGIG91dHB1dAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBHRU5FUkFURV9S
VEYgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIFJURiBvdXRwdXQuIFRo
ZQorIyBSVEYgb3V0cHV0IGlzIG9wdGltaXplZCBmb3IgV29yZCA5NyBhbmQgbWF5IG5vdCBsb29r
IHRvbyBwcmV0dHkgd2l0aCBvdGhlciBSVEYKKyMgcmVhZGVycy9lZGl0b3JzLgorIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogTk8uCisKK0dFTkVSQVRFX1JURiAgICAgICAgICAgPSBOTworCisjIFRo
ZSBSVEZfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIFJURiBkb2NzIHdp
bGwgYmUgcHV0LiBJZiBhCisjIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2Yg
T1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBpbiBmcm9udCBvZgorIyBpdC4KKyMgVGhlIGRl
ZmF1bHQgZGlyZWN0b3J5IGlzOiBydGYuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KKworUlRGX09VVFBVVCAgICAgICAgICAgICA9
IHJ0ZgorCisjIElmIHRoZSBDT01QQUNUX1JURiB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIGdl
bmVyYXRlcyBtb3JlIGNvbXBhY3QgUlRGCisjIGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVs
IGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gc2F2ZSBzb21lCisjIHRyZWVzIGlu
IGdlbmVyYWwuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQgdG8gWUVTLgorCitDT01QQUNUX1JU
RiAgICAgICAgICAgID0gTk8KKworIyBJZiB0aGUgUlRGX0hZUEVSTElOS1MgdGFnIGlzIHNldCB0
byBZRVMsIHRoZSBSVEYgdGhhdCBpcyBnZW5lcmF0ZWQgd2lsbAorIyBjb250YWluIGh5cGVybGlu
ayBmaWVsZHMuIFRoZSBSVEYgZmlsZSB3aWxsIGNvbnRhaW4gbGlua3MgKGp1c3QgbGlrZSB0aGUg
SFRNTAorIyBvdXRwdXQpIGluc3RlYWQgb2YgcGFnZSByZWZlcmVuY2VzLiBUaGlzIG1ha2VzIHRo
ZSBvdXRwdXQgc3VpdGFibGUgZm9yIG9ubGluZQorIyBicm93c2luZyB1c2luZyBXb3JkIG9yIHNv
bWUgb3RoZXIgV29yZCBjb21wYXRpYmxlIHJlYWRlcnMgdGhhdCBzdXBwb3J0IHRob3NlCisjIGZp
ZWxkcy4KKyMKKyMgTm90ZTogV29yZFBhZCAod3JpdGUpIGFuZCBvdGhlcnMgZG8gbm90IHN1cHBv
cnQgbGlua3MuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQgdG8gWUVTLgorCitSVEZfSFlQRVJM
SU5LUyAgICAgICAgID0gTk8KKworIyBMb2FkIHN0eWxlc2hlZXQgZGVmaW5pdGlvbnMgZnJvbSBm
aWxlLiBTeW50YXggaXMgc2ltaWxhciB0byBkb3h5Z2VuJ3MgY29uZmlnCisjIGZpbGUsIGkuZS4g
YSBzZXJpZXMgb2YgYXNzaWdubWVudHMuIFlvdSBvbmx5IGhhdmUgdG8gcHJvdmlkZSByZXBsYWNl
bWVudHMsCisjIG1pc3NpbmcgZGVmaW5pdGlvbnMgYXJlIHNldCB0byB0aGVpciBkZWZhdWx0IHZh
bHVlLgorIworIyBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRp
b24gb24gaG93IHRvIGdlbmVyYXRlIHRoZQorIyBkZWZhdWx0IHN0eWxlIHNoZWV0IHRoYXQgZG94
eWdlbiBub3JtYWxseSB1c2VzLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VO
RVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCisKK1JURl9TVFlMRVNIRUVUX0ZJTEUgICAgPQorCisj
IFNldCBvcHRpb25hbCB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBSVEYg
ZG9jdW1lbnQuIFN5bnRheCBpcworIyBzaW1pbGFyIHRvIGRveHlnZW4ncyBjb25maWcgZmlsZS4g
QSB0ZW1wbGF0ZSBleHRlbnNpb25zIGZpbGUgY2FuIGJlIGdlbmVyYXRlZAorIyB1c2luZyBkb3h5
Z2VuIC1lIHJ0ZiBleHRlbnNpb25GaWxlLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCisKK1JURl9FWFRFTlNJT05TX0ZJTEUgICAg
PQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVk
IHRvIHRoZSBtYW4gcGFnZSBvdXRwdXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUg
R0VORVJBVEVfTUFOIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBtYW4g
cGFnZXMgZm9yCisjIGNsYXNzZXMgYW5kIGZpbGVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uCisKK0dFTkVSQVRFX01BTiAgICAgICAgICAgPSBOTworCisjIFRoZSBNQU5fT1VUUFVUIHRh
ZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIG1hbiBwYWdlcyB3aWxsIGJlIHB1dC4gSWYg
YQorIyByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RP
Ulkgd2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YKKyMgaXQuIEEgZGlyZWN0b3J5IG1hbjMgd2lsbCBi
ZSBjcmVhdGVkIGluc2lkZSB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBieQorIyBNQU5fT1VUUFVU
LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IG1hbi4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX01BTiBpcyBzZXQgdG8gWUVTLgorCitNQU5fT1VUUFVUICAg
ICAgICAgICAgID0gbWFuCisKKyMgVGhlIE1BTl9FWFRFTlNJT04gdGFnIGRldGVybWluZXMgdGhl
IGV4dGVuc2lvbiB0aGF0IGlzIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQKKyMgbWFuIHBhZ2VzLiBJ
biBjYXNlIHRoZSBtYW51YWwgc2VjdGlvbiBkb2VzIG5vdCBzdGFydCB3aXRoIGEgbnVtYmVyLCB0
aGUgbnVtYmVyCisjIDMgaXMgcHJlcGVuZGVkLiBUaGUgZG90ICguKSBhdCB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBNQU5fRVhURU5TSU9OIHRhZyBpcworIyBvcHRpb25hbC4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IC4zLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVf
TUFOIGlzIHNldCB0byBZRVMuCisKK01BTl9FWFRFTlNJT04gICAgICAgICAgPSAuMworCisjIElm
IHRoZSBNQU5fTElOS1MgdGFnIGlzIHNldCB0byBZRVMgYW5kIGRveHlnZW4gZ2VuZXJhdGVzIG1h
biBvdXRwdXQsIHRoZW4gaXQKKyMgd2lsbCBnZW5lcmF0ZSBvbmUgYWRkaXRpb25hbCBtYW4gZmls
ZSBmb3IgZWFjaCBlbnRpdHkgZG9jdW1lbnRlZCBpbiB0aGUgcmVhbAorIyBtYW4gcGFnZShzKS4g
VGhlc2UgYWRkaXRpb25hbCBmaWxlcyBvbmx5IHNvdXJjZSB0aGUgcmVhbCBtYW4gcGFnZSwgYnV0
IHdpdGhvdXQKKyMgdGhlbSB0aGUgbWFuIGNvbW1hbmQgd291bGQgYmUgdW5hYmxlIHRvIGZpbmQg
dGhlIGNvcnJlY3QgcGFnZS4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuCisKK01B
Tl9MSU5LUyAgICAgICAgICAgICAgPSBOTworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZp
Z3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBYTUwgb3V0cHV0CisjLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKyMgSWYgdGhlIEdFTkVSQVRFX1hNTCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2Vu
IHdpbGwgZ2VuZXJhdGUgYW4gWE1MIGZpbGUgdGhhdAorIyBjYXB0dXJlcyB0aGUgc3RydWN0dXJl
IG9mIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLgorCitHRU5FUkFURV9YTUwgICAgICAgICAgID0gTk8KKworIyBUaGUgWE1M
X09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBYTUwgcGFnZXMgd2lsbCBi
ZSBwdXQuIElmIGEKKyMgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQ
VVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGluIGZyb250IG9mCisjIGl0LgorIyBUaGUgZGVmYXVs
dCBkaXJlY3RvcnkgaXM6IHhtbC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdF
TkVSQVRFX1hNTCBpcyBzZXQgdG8gWUVTLgorCitYTUxfT1VUUFVUICAgICAgICAgICAgID0geG1s
CisKKyMgSWYgdGhlIFhNTF9QUk9HUkFNTElTVElORyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2Vu
IHdpbGwgZHVtcCB0aGUgcHJvZ3JhbQorIyBsaXN0aW5ncyAoaW5jbHVkaW5nIHN5bnRheCBoaWdo
bGlnaHRpbmcgYW5kIGNyb3NzLXJlZmVyZW5jaW5nIGluZm9ybWF0aW9uKSB0bworIyB0aGUgWE1M
IG91dHB1dC4gTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgd2lsbCBzaWduaWZpY2FudGx5IGluY3Jl
YXNlIHRoZSBzaXplCisjIG9mIHRoZSBYTUwgb3V0cHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfWE1MIGlz
IHNldCB0byBZRVMuCisKK1hNTF9QUk9HUkFNTElTVElORyAgICAgPSBZRVMKKworIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgRE9DQk9P
SyBvdXRwdXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgR0VORVJBVEVfRE9DQk9P
SyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgRG9jYm9vayBmaWxlcwor
IyB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIFBERi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLgorCitHRU5FUkFURV9ET0NCT09LICAgICAgID0gTk8KKworIyBUaGUgRE9DQk9PS19P
VVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0aGUgRG9jYm9vayBwYWdlcyB3aWxs
IGJlIHB1dC4KKyMgSWYgYSByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQgdGhlIHZhbHVlIG9mIE9V
VFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4KKyMgZnJvbnQgb2YgaXQuCisjIFRoZSBkZWZh
dWx0IGRpcmVjdG9yeSBpczogZG9jYm9vay4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0RPQ0JPT0sgaXMgc2V0IHRvIFlFUy4KKworRE9DQk9PS19PVVRQVVQgICAg
ICAgICA9IGRvY2Jvb2sKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb25maWd1cmF0aW9uIG9w
dGlvbnMgZm9yIHRoZSBBdXRvR2VuIERlZmluaXRpb25zIG91dHB1dAorIy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisjIElmIHRoZSBHRU5FUkFURV9BVVRPR0VOX0RFRiB0YWcgaXMgc2V0IHRvIFlFUyBk
b3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYW4gQXV0b0dlbgorIyBEZWZpbml0aW9ucyAoc2VlIGh0dHA6
Ly9hdXRvZ2VuLnNmLm5ldCkgZmlsZSB0aGF0IGNhcHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YKKyMg
dGhlIGNvZGUgaW5jbHVkaW5nIGFsbCBkb2N1bWVudGF0aW9uLiBOb3RlIHRoYXQgdGhpcyBmZWF0
dXJlIGlzIHN0aWxsCisjIGV4cGVyaW1lbnRhbCBhbmQgaW5jb21wbGV0ZSBhdCB0aGUgbW9tZW50
LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK0dFTkVSQVRFX0FVVE9HRU5fREVGICAg
PSBOTworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxh
dGVkIHRvIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJ
ZiB0aGUgR0VORVJBVEVfUEVSTE1PRCB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgYSBQZXJsIG1vZHVsZQorIyBmaWxlIHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVyZSBv
ZiB0aGUgY29kZSBpbmNsdWRpbmcgYWxsIGRvY3VtZW50YXRpb24uCisjCisjIE5vdGUgdGhhdCB0
aGlzIGZlYXR1cmUgaXMgc3RpbGwgZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRoZSBt
b21lbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworR0VORVJBVEVfUEVSTE1PRCAg
ICAgICA9IE5PCisKKyMgSWYgdGhlIFBFUkxNT0RfTEFURVggdGFnIGlzIHNldCB0byBZRVMgZG94
eWdlbiB3aWxsIGdlbmVyYXRlIHRoZSBuZWNlc3NhcnkKKyMgTWFrZWZpbGUgcnVsZXMsIFBlcmwg
c2NyaXB0cyBhbmQgTGFUZVggY29kZSB0byBiZSBhYmxlIHRvIGdlbmVyYXRlIFBERiBhbmQgRFZJ
CisjIG91dHB1dCBmcm9tIHRoZSBQZXJsIG1vZHVsZSBvdXRwdXQuCisjIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BF
UkxNT0QgaXMgc2V0IHRvIFlFUy4KKworUEVSTE1PRF9MQVRFWCAgICAgICAgICA9IE5PCisKKyMg
SWYgdGhlIFBFUkxNT0RfUFJFVFRZIHRhZyBpcyBzZXQgdG8gWUVTIHRoZSBQZXJsIG1vZHVsZSBv
dXRwdXQgd2lsbCBiZSBuaWNlbHkKKyMgZm9ybWF0dGVkIHNvIGl0IGNhbiBiZSBwYXJzZWQgYnkg
YSBodW1hbiByZWFkZXIuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvCisjIHVuZGVyc3Rh
bmQgd2hhdCBpcyBnb2luZyBvbi4gT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoaXMgdGFnIGlzIHNl
dCB0byBOTyB0aGUKKyMgc2l6ZSBvZiB0aGUgUGVybCBtb2R1bGUgb3V0cHV0IHdpbGwgYmUgbXVj
aCBzbWFsbGVyIGFuZCBQZXJsIHdpbGwgcGFyc2UgaXQKKyMganVzdCB0aGUgc2FtZS4KKyMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4KKworUEVSTE1PRF9QUkVUVFkgICAgICAg
ICA9IFlFUworCisjIFRoZSBuYW1lcyBvZiB0aGUgbWFrZSB2YXJpYWJsZXMgaW4gdGhlIGdlbmVy
YXRlZCBkb3h5cnVsZXMubWFrZSBmaWxlIGFyZQorIyBwcmVmaXhlZCB3aXRoIHRoZSBzdHJpbmcg
Y29udGFpbmVkIGluIFBFUkxNT0RfTUFLRVZBUl9QUkVGSVguIFRoaXMgaXMgdXNlZnVsCisjIHNv
IGRpZmZlcmVudCBkb3h5cnVsZXMubWFrZSBmaWxlcyBpbmNsdWRlZCBieSB0aGUgc2FtZSBNYWtl
ZmlsZSBkb24ndAorIyBvdmVyd3JpdGUgZWFjaCBvdGhlcidzIHZhcmlhYmxlcy4KKyMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4K
KworUEVSTE1PRF9NQUtFVkFSX1BSRUZJWCA9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29u
ZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIHByZXByb2Nlc3NvcgorIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisjIElmIHRoZSBFTkFCTEVfUFJFUFJPQ0VTU0lORyB0YWcgaXMgc2V0IHRv
IFlFUyBkb3h5Z2VuIHdpbGwgZXZhbHVhdGUgYWxsCisjIEMtcHJlcHJvY2Vzc29yIGRpcmVjdGl2
ZXMgZm91bmQgaW4gdGhlIHNvdXJjZXMgYW5kIGluY2x1ZGUgZmlsZXMuCisjIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuCisKK0VOQUJMRV9QUkVQUk9DRVNTSU5HICAgPSBZRVMKKworIyBJZiB0
aGUgTUFDUk9fRVhQQU5TSU9OIHRhZyBpcyBzZXQgdG8gWUVTIGRveHlnZW4gd2lsbCBleHBhbmQg
YWxsIG1hY3JvIG5hbWVzCisjIGluIHRoZSBzb3VyY2UgY29kZS4gSWYgc2V0IHRvIE5PIG9ubHkg
Y29uZGl0aW9uYWwgY29tcGlsYXRpb24gd2lsbCBiZQorIyBwZXJmb3JtZWQuIE1hY3JvIGV4cGFu
c2lvbiBjYW4gYmUgZG9uZSBpbiBhIGNvbnRyb2xsZWQgd2F5IGJ5IHNldHRpbmcKKyMgRVhQQU5E
X09OTFlfUFJFREVGIHRvIFlFUy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRv
IFlFUy4KKworTUFDUk9fRVhQQU5TSU9OICAgICAgICA9IFlFUworCisjIElmIHRoZSBFWFBBTkRf
T05MWV9QUkVERUYgYW5kIE1BQ1JPX0VYUEFOU0lPTiB0YWdzIGFyZSBib3RoIHNldCB0byBZRVMg
dGhlbgorIyB0aGUgbWFjcm8gZXhwYW5zaW9uIGlzIGxpbWl0ZWQgdG8gdGhlIG1hY3JvcyBzcGVj
aWZpZWQgd2l0aCB0aGUgUFJFREVGSU5FRCBhbmQKKyMgRVhQQU5EX0FTX0RFRklORUQgdGFncy4K
KyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KKworRVhQQU5EX09OTFlf
UFJFREVGICAgICA9IE5PCisKKyMgSWYgdGhlIFNFQVJDSF9JTkNMVURFUyB0YWcgaXMgc2V0IHRv
IFlFUyB0aGUgaW5jbHVkZXMgZmlsZXMgaW4gdGhlCisjIElOQ0xVREVfUEFUSCB3aWxsIGJlIHNl
YXJjaGVkIGlmIGEgI2luY2x1ZGUgaXMgZm91bmQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZ
RVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lO
RyBpcyBzZXQgdG8gWUVTLgorCitTRUFSQ0hfSU5DTFVERVMgICAgICAgID0gWUVTCisKKyMgVGhl
IElOQ0xVREVfUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJl
Y3RvcmllcyB0aGF0CisjIGNvbnRhaW4gaW5jbHVkZSBmaWxlcyB0aGF0IGFyZSBub3QgaW5wdXQg
ZmlsZXMgYnV0IHNob3VsZCBiZSBwcm9jZXNzZWQgYnkgdGhlCisjIHByZXByb2Nlc3Nvci4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSF9JTkNMVURFUyBpcyBzZXQgdG8g
WUVTLgorCitJTkNMVURFX1BBVEggICAgICAgICAgID0gLi4vaW5jbHVkZQorCisjIFlvdSBjYW4g
dXNlIHRoZSBJTkNMVURFX0ZJTEVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUg
d2lsZGNhcmQKKyMgcGF0dGVybnMgKGxpa2UgKi5oIGFuZCAqLmhwcCkgdG8gZmlsdGVyIG91dCB0
aGUgaGVhZGVyLWZpbGVzIGluIHRoZQorIyBkaXJlY3Rvcmllcy4gSWYgbGVmdCBibGFuaywgdGhl
IHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIEZJTEVfUEFUVEVSTlMgd2lsbCBiZQorIyB1c2VkLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMg
c2V0IHRvIFlFUy4KKworSU5DTFVERV9GSUxFX1BBVFRFUk5TICA9ICouaAorCisjIFRoZSBQUkVE
RUZJTkVEIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIG1hY3JvIG5hbWVz
IHRoYXQgYXJlCisjIGRlZmluZWQgYmVmb3JlIHRoZSBwcmVwcm9jZXNzb3IgaXMgc3RhcnRlZCAo
c2ltaWxhciB0byB0aGUgLUQgb3B0aW9uIG9mIGUuZy4KKyMgZ2NjKS4gVGhlIGFyZ3VtZW50IG9m
IHRoZSB0YWcgaXMgYSBsaXN0IG9mIG1hY3JvcyBvZiB0aGUgZm9ybTogbmFtZSBvcgorIyBuYW1l
PWRlZmluaXRpb24gKG5vIHNwYWNlcykuIElmIHRoZSBkZWZpbml0aW9uIGFuZCB0aGUgIj0iIGFy
ZSBvbWl0dGVkLCAiPTEiCisjIGlzIGFzc3VtZWQuIFRvIHByZXZlbnQgYSBtYWNybyBkZWZpbml0
aW9uIGZyb20gYmVpbmcgdW5kZWZpbmVkIHZpYSAjdW5kZWYgb3IKKyMgcmVjdXJzaXZlbHkgZXhw
YW5kZWQgdXNlIHRoZSA6PSBvcGVyYXRvciBpbnN0ZWFkIG9mIHRoZSA9IG9wZXJhdG9yLgorIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0
IHRvIFlFUy4KKworUFJFREVGSU5FRCAgICAgICAgICAgICA9ICJfTVNDX1ZFUj0xODAwIiBcCisg
ICAgICAgICAgICAgICAgICAgICAgICAgX0NQUFJUVEkgXAorICAgICAgICAgICAgICAgICAgICAg
ICAgIF9XSU4zMiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTkNQUF9ET0NfRVhDTFVE
RV9JTVBMRU1FTlRBVElPTgorCisjIElmIHRoZSBNQUNST19FWFBBTlNJT04gYW5kIEVYUEFORF9P
TkxZX1BSRURFRiB0YWdzIGFyZSBzZXQgdG8gWUVTIHRoZW4gdGhpcworIyB0YWcgY2FuIGJlIHVz
ZWQgdG8gc3BlY2lmeSBhIGxpc3Qgb2YgbWFjcm8gbmFtZXMgdGhhdCBzaG91bGQgYmUgZXhwYW5k
ZWQuIFRoZQorIyBtYWNybyBkZWZpbml0aW9uIHRoYXQgaXMgZm91bmQgaW4gdGhlIHNvdXJjZXMg
d2lsbCBiZSB1c2VkLiBVc2UgdGhlIFBSRURFRklORUQKKyMgdGFnIGlmIHlvdSB3YW50IHRvIHVz
ZSBhIGRpZmZlcmVudCBtYWNybyBkZWZpbml0aW9uIHRoYXQgb3ZlcnJ1bGVzIHRoZQorIyBkZWZp
bml0aW9uIGZvdW5kIGluIHRoZSBzb3VyY2UgY29kZS4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGlzIHNldCB0byBZRVMuCisKK0VYUEFORF9B
U19ERUZJTkVEICAgICAgPQorCisjIElmIHRoZSBTS0lQX0ZVTkNUSU9OX01BQ1JPUyB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIGRveHlnZW4ncyBwcmVwcm9jZXNzb3Igd2lsbAorIyByZW1vdmUgYWxs
IHJlZmVyZW5jZXMgdG8gZnVuY3Rpb24tbGlrZSBtYWNyb3MgdGhhdCBhcmUgYWxvbmUgb24gYSBs
aW5lLCBoYXZlIGFuCisjIGFsbCB1cHBlcmNhc2UgbmFtZSwgYW5kIGRvIG5vdCBlbmQgd2l0aCBh
IHNlbWljb2xvbi4gU3VjaCBmdW5jdGlvbiBtYWNyb3MgYXJlCisjIHR5cGljYWxseSB1c2VkIGZv
ciBib2lsZXItcGxhdGUgY29kZSwgYW5kIHdpbGwgY29uZnVzZSB0aGUgcGFyc2VyIGlmIG5vdAor
IyByZW1vdmVkLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4KKwor
U0tJUF9GVU5DVElPTl9NQUNST1MgICA9IFlFUworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENv
bmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIGV4dGVybmFsIHJlZmVyZW5jZXMKKyMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworIyBUaGUgVEFHRklMRVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
Znkgb25lIG9yIG1vcmUgdGFnIGZpbGVzLiBGb3IgZWFjaCB0YWcKKyMgZmlsZSB0aGUgbG9jYXRp
b24gb2YgdGhlIGV4dGVybmFsIGRvY3VtZW50YXRpb24gc2hvdWxkIGJlIGFkZGVkLiBUaGUgZm9y
bWF0IG9mCisjIGEgdGFnIGZpbGUgd2l0aG91dCB0aGlzIGxvY2F0aW9uIGlzIGFzIGZvbGxvd3M6
CisjIFRBR0ZJTEVTID0gZmlsZTEgZmlsZTIgLi4uCisjIEFkZGluZyBsb2NhdGlvbiBmb3IgdGhl
IHRhZyBmaWxlcyBpcyBkb25lIGFzIGZvbGxvd3M6CisjIFRBR0ZJTEVTID0gZmlsZTE9bG9jMSAi
ZmlsZTIgPSBsb2MyIiAuLi4KKyMgd2hlcmUgbG9jMSBhbmQgbG9jMiBjYW4gYmUgcmVsYXRpdmUg
b3IgYWJzb2x1dGUgcGF0aHMgb3IgVVJMcy4gU2VlIHRoZQorIyBzZWN0aW9uICJMaW5raW5nIHRv
IGV4dGVybmFsIGRvY3VtZW50YXRpb24iIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1
c2UKKyMgb2YgdGFnIGZpbGVzLgorIyBOb3RlOiBFYWNoIHRhZyBmaWxlIG11c3QgaGF2ZSBhbiB1
bmlxdWUgbmFtZSAod2hlcmUgdGhlIG5hbWUgZG9lcyBOT1QgaW5jbHVkZQorIyB0aGUgcGF0aCku
IElmIGEgdGFnIGZpbGUgaXMgbm90IGxvY2F0ZWQgaW4gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBk
b3h5Z2VuIGlzCisjIHJ1biwgeW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBwYXRoIHRvIHRoZSB0
YWdmaWxlIGhlcmUuCisKK1RBR0ZJTEVTICAgICAgICAgICAgICAgPQorCisjIFdoZW4gYSBmaWxl
IG5hbWUgaXMgc3BlY2lmaWVkIGFmdGVyIEdFTkVSQVRFX1RBR0ZJTEUsIGRveHlnZW4gd2lsbCBj
cmVhdGUgYQorIyB0YWcgZmlsZSB0aGF0IGlzIGJhc2VkIG9uIHRoZSBpbnB1dCBmaWxlcyBpdCBy
ZWFkcy4gU2VlIHNlY3Rpb24gIkxpbmtpbmcgdG8KKyMgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIg
Zm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzYWdlIG9mIHRhZyBmaWxlcy4KKworR0VO
RVJBVEVfVEFHRklMRSAgICAgICA9CisKKyMgSWYgdGhlIEFMTEVYVEVSTkFMUyB0YWcgaXMgc2V0
IHRvIFlFUyBhbGwgZXh0ZXJuYWwgY2xhc3Mgd2lsbCBiZSBsaXN0ZWQgaW4gdGhlCisjIGNsYXNz
IGluZGV4LiBJZiBzZXQgdG8gTk8gb25seSB0aGUgaW5oZXJpdGVkIGV4dGVybmFsIGNsYXNzZXMg
d2lsbCBiZSBsaXN0ZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworQUxMRVhURVJO
QUxTICAgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIEVYVEVSTkFMX0dST1VQUyB0YWcgaXMgc2V0
IHRvIFlFUyBhbGwgZXh0ZXJuYWwgZ3JvdXBzIHdpbGwgYmUgbGlzdGVkIGluCisjIHRoZSBtb2R1
bGVzIGluZGV4LiBJZiBzZXQgdG8gTk8sIG9ubHkgdGhlIGN1cnJlbnQgcHJvamVjdCdzIGdyb3Vw
cyB3aWxsIGJlCisjIGxpc3RlZC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworRVhU
RVJOQUxfR1JPVVBTICAgICAgICA9IFlFUworCisjIElmIHRoZSBFWFRFUk5BTF9QQUdFUyB0YWcg
aXMgc2V0IHRvIFlFUyBhbGwgZXh0ZXJuYWwgcGFnZXMgd2lsbCBiZSBsaXN0ZWQgaW4KKyMgdGhl
IHJlbGF0ZWQgcGFnZXMgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgY3VycmVudCBwcm9q
ZWN0J3MgcGFnZXMgd2lsbAorIyBiZSBsaXN0ZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZ
RVMuCisKK0VYVEVSTkFMX1BBR0VTICAgICAgICAgPSBZRVMKKworIyBUaGUgUEVSTF9QQVRIIHNo
b3VsZCBiZSB0aGUgYWJzb2x1dGUgcGF0aCBhbmQgbmFtZSBvZiB0aGUgcGVybCBzY3JpcHQKKyMg
aW50ZXJwcmV0ZXIgKGkuZS4gdGhlIHJlc3VsdCBvZiAnd2hpY2ggcGVybCcpLgorIyBUaGUgZGVm
YXVsdCBmaWxlICh3aXRoIGFic29sdXRlIHBhdGgpIGlzOiAvdXNyL2Jpbi9wZXJsLgorCitQRVJM
X1BBVEggICAgICAgICAgICAgID0gL3Vzci9iaW4vcGVybAorCisjLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBkb3QgdG9vbAorIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisjIElmIHRoZSBDTEFTU19ESUFHUkFNUyB0YWcgaXMgc2V0IHRvIFlF
UyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjbGFzcyBkaWFncmFtCisjIChpbiBIVE1MIGFuZCBM
YVRlWCkgZm9yIGNsYXNzZXMgd2l0aCBiYXNlIG9yIHN1cGVyIGNsYXNzZXMuIFNldHRpbmcgdGhl
IHRhZyB0bworIyBOTyB0dXJucyB0aGUgZGlhZ3JhbXMgb2ZmLiBOb3RlIHRoYXQgdGhpcyBvcHRp
b24gYWxzbyB3b3JrcyB3aXRoIEhBVkVfRE9UCisjIGRpc2FibGVkLCBidXQgaXQgaXMgcmVjb21t
ZW5kZWQgdG8gaW5zdGFsbCBhbmQgdXNlIGRvdCwgc2luY2UgaXQgeWllbGRzIG1vcmUKKyMgcG93
ZXJmdWwgZ3JhcGhzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorCitDTEFTU19ESUFH
UkFNUyAgICAgICAgID0gTk8KKworIyBZb3UgY2FuIGRlZmluZSBtZXNzYWdlIHNlcXVlbmNlIGNo
YXJ0cyB3aXRoaW4gZG94eWdlbiBjb21tZW50cyB1c2luZyB0aGUgXG1zYworIyBjb21tYW5kLiBE
b3h5Z2VuIHdpbGwgdGhlbiBydW4gdGhlIG1zY2dlbiB0b29sIChzZWU6CisjIGh0dHA6Ly93d3cu
bWN0ZXJuYW4ubWUudWsvbXNjZ2VuLykpIHRvIHByb2R1Y2UgdGhlIGNoYXJ0IGFuZCBpbnNlcnQg
aXQgaW4gdGhlCisjIGRvY3VtZW50YXRpb24uIFRoZSBNU0NHRU5fUEFUSCB0YWcgYWxsb3dzIHlv
dSB0byBzcGVjaWZ5IHRoZSBkaXJlY3Rvcnkgd2hlcmUKKyMgdGhlIG1zY2dlbiB0b29sIHJlc2lk
ZXMuIElmIGxlZnQgZW1wdHkgdGhlIHRvb2wgaXMgYXNzdW1lZCB0byBiZSBmb3VuZCBpbiB0aGUK
KyMgZGVmYXVsdCBzZWFyY2ggcGF0aC4KKworTVNDR0VOX1BBVEggICAgICAgICAgICA9CisKKyMg
SWYgc2V0IHRvIFlFUywgdGhlIGluaGVyaXRhbmNlIGFuZCBjb2xsYWJvcmF0aW9uIGdyYXBocyB3
aWxsIGhpZGUgaW5oZXJpdGFuY2UKKyMgYW5kIHVzYWdlIHJlbGF0aW9ucyBpZiB0aGUgdGFyZ2V0
IGlzIHVuZG9jdW1lbnRlZCBvciBpcyBub3QgYSBjbGFzcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IFlFUy4KKworSElERV9VTkRPQ19SRUxBVElPTlMgICA9IE5PCisKKyMgSWYgeW91IHNldCB0
aGUgSEFWRV9ET1QgdGFnIHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBhc3N1bWUgdGhlIGRvdCB0
b29sIGlzCisjIGF2YWlsYWJsZSBmcm9tIHRoZSBwYXRoLiBUaGlzIHRvb2wgaXMgcGFydCBvZiBH
cmFwaHZpeiAoc2VlOgorIyBodHRwOi8vd3d3LmdyYXBodml6Lm9yZy8pLCBhIGdyYXBoIHZpc3Vh
bGl6YXRpb24gdG9vbGtpdCBmcm9tIEFUJlQgYW5kIEx1Y2VudAorIyBCZWxsIExhYnMuIFRoZSBv
dGhlciBvcHRpb25zIGluIHRoaXMgc2VjdGlvbiBoYXZlIG5vIGVmZmVjdCBpZiB0aGlzIG9wdGlv
biBpcworIyBzZXQgdG8gTk8KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitIQVZFX0RP
VCAgICAgICAgICAgICAgID0gJUhBVkVfRE9UJQorCisjIFRoZSBET1RfTlVNX1RIUkVBRFMgc3Bl
Y2lmaWVzIHRoZSBudW1iZXIgb2YgZG90IGludm9jYXRpb25zIGRveHlnZW4gaXMgYWxsb3dlZAor
IyB0byBydW4gaW4gcGFyYWxsZWwuIFdoZW4gc2V0IHRvIDAgZG94eWdlbiB3aWxsIGJhc2UgdGhp
cyBvbiB0aGUgbnVtYmVyIG9mCisjIHByb2Nlc3NvcnMgYXZhaWxhYmxlIGluIHRoZSBzeXN0ZW0u
IFlvdSBjYW4gc2V0IGl0IGV4cGxpY2l0bHkgdG8gYSB2YWx1ZQorIyBsYXJnZXIgdGhhbiAwIHRv
IGdldCBjb250cm9sIG92ZXIgdGhlIGJhbGFuY2UgYmV0d2VlbiBDUFUgbG9hZCBhbmQgcHJvY2Vz
c2luZworIyBzcGVlZC4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMzIsIGRl
ZmF1bHQgdmFsdWU6IDAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RP
VCBpcyBzZXQgdG8gWUVTLgorCitET1RfTlVNX1RIUkVBRFMgICAgICAgID0gMAorCisjIFdoZW4g
eW91IHdhbnQgYSBkaWZmZXJlbnRseSBsb29raW5nIGZvbnQgbiB0aGUgZG90IGZpbGVzIHRoYXQg
ZG94eWdlbgorIyBnZW5lcmF0ZXMgeW91IGNhbiBzcGVjaWZ5IHRoZSBmb250IG5hbWUgdXNpbmcg
RE9UX0ZPTlROQU1FLiBZb3UgbmVlZCB0byBtYWtlCisjIHN1cmUgZG90IGlzIGFibGUgdG8gZmlu
ZCB0aGUgZm9udCwgd2hpY2ggY2FuIGJlIGRvbmUgYnkgcHV0dGluZyBpdCBpbiBhCisjIHN0YW5k
YXJkIGxvY2F0aW9uIG9yIGJ5IHNldHRpbmcgdGhlIERPVEZPTlRQQVRIIGVudmlyb25tZW50IHZh
cmlhYmxlIG9yIGJ5CisjIHNldHRpbmcgRE9UX0ZPTlRQQVRIIHRvIHRoZSBkaXJlY3RvcnkgY29u
dGFpbmluZyB0aGUgZm9udC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IEhlbHZldGljYS4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisK
K0RPVF9GT05UTkFNRSAgICAgICAgICAgPSBGcmVlU2FucworCisjIFRoZSBET1RfRk9OVFNJWkUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgc2l6ZSAoaW4gcG9pbnRzKSBvZiB0aGUgZm9udCBv
ZgorIyBkb3QgZ3JhcGhzLgorIyBNaW5pbXVtIHZhbHVlOiA0LCBtYXhpbXVtIHZhbHVlOiAyNCwg
ZGVmYXVsdCB2YWx1ZTogMTAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZF
X0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfRk9OVFNJWkUgICAgICAgICAgID0gMTAKKworIyBC
eSBkZWZhdWx0IGRveHlnZW4gd2lsbCB0ZWxsIGRvdCB0byB1c2UgdGhlIGRlZmF1bHQgZm9udCBh
cyBzcGVjaWZpZWQgd2l0aAorIyBET1RfRk9OVE5BTUUuIElmIHlvdSBzcGVjaWZ5IGEgZGlmZmVy
ZW50IGZvbnQgdXNpbmcgRE9UX0ZPTlROQU1FIHlvdSBjYW4gc2V0CisjIHRoZSBwYXRoIHdoZXJl
IGRvdCBjYW4gZmluZCBpdCB1c2luZyB0aGlzIHRhZy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9GT05UUEFUSCAgICAgICAg
ICAgPQorCisjIElmIHRoZSBDTEFTU19HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHln
ZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvcgorIyBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hv
d2luZyB0aGUgZGlyZWN0IGFuZCBpbmRpcmVjdCBpbmhlcml0YW5jZSByZWxhdGlvbnMuCisjIFNl
dHRpbmcgdGhpcyB0YWcgdG8gWUVTIHdpbGwgZm9yY2UgdGhlIENMQVNTX0RJQUdSQU1TIHRhZyB0
byBOTy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0NMQVNTX0dSQVBIICAgICAg
ICAgICAgPSBZRVMKKworIyBJZiB0aGUgQ09MTEFCT1JBVElPTl9HUkFQSCB0YWcgaXMgc2V0IHRv
IFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhCisjIGdyYXBoIGZvciBlYWNoIGRvY3Vt
ZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGlyZWN0IGFuZCBpbmRpcmVjdCBpbXBsZW1lbnRhdGlv
bgorIyBkZXBlbmRlbmNpZXMgKGluaGVyaXRhbmNlLCBjb250YWlubWVudCwgYW5kIGNsYXNzIHJl
ZmVyZW5jZXMgdmFyaWFibGVzKSBvZiB0aGUKKyMgY2xhc3Mgd2l0aCBvdGhlciBkb2N1bWVudGVk
IGNsYXNzZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitDT0xMQUJPUkFUSU9O
X0dSQVBIICAgID0gWUVTCisKKyMgSWYgdGhlIEdST1VQX0dSQVBIUyB0YWcgaXMgc2V0IHRvIFlF
UyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvcgorIyBncm91cHMsIHNob3dp
bmcgdGhlIGRpcmVjdCBncm91cHMgZGVwZW5kZW5jaWVzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0
IHRvIFlFUy4KKworR1JPVVBfR1JBUEhTICAgICAgICAgICA9IFlFUworCisjIElmIHRoZSBVTUxf
TE9PSyB0YWcgaXMgc2V0IHRvIFlFUyBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgaW5oZXJpdGFuY2Ug
YW5kCisjIGNvbGxhYm9yYXRpb24gZGlhZ3JhbXMgaW4gYSBzdHlsZSBzaW1pbGFyIHRvIHRoZSBP
TUcncyBVbmlmaWVkIE1vZGVsaW5nCisjIExhbmd1YWdlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQg
dG8gWUVTLgorCitVTUxfTE9PSyAgICAgICAgICAgICAgID0gJVVNTF9MT09LJQorCisjIElmIHRo
ZSBVTUxfTE9PSyB0YWcgaXMgZW5hYmxlZCwgdGhlIGZpZWxkcyBhbmQgbWV0aG9kcyBhcmUgc2hv
d24gaW5zaWRlIHRoZQorIyBjbGFzcyBub2RlLiBJZiB0aGVyZSBhcmUgbWFueSBmaWVsZHMgb3Ig
bWV0aG9kcyBhbmQgbWFueSBub2RlcyB0aGUgZ3JhcGggbWF5CisjIGJlY29tZSB0b28gYmlnIHRv
IGJlIHVzZWZ1bC4gVGhlIFVNTF9MSU1JVF9OVU1fRklFTERTIHRocmVzaG9sZCBsaW1pdHMgdGhl
CisjIG51bWJlciBvZiBpdGVtcyBmb3IgZWFjaCB0eXBlIHRvIG1ha2UgdGhlIHNpemUgbW9yZSBt
YW5hZ2VhYmxlLiBTZXQgdGhpcyB0byAwCisjIGZvciBubyBsaW1pdC4gTm90ZSB0aGF0IHRoZSB0
aHJlc2hvbGQgbWF5IGJlIGV4Y2VlZGVkIGJ5IDUwJSBiZWZvcmUgdGhlIGxpbWl0CisjIGlzIGVu
Zm9yY2VkLiBTbyB3aGVuIHlvdSBzZXQgdGhlIHRocmVzaG9sZCB0byAxMCwgdXAgdG8gMTUgZmll
bGRzIG1heSBhcHBlYXIsCisjIGJ1dCBpZiB0aGUgbnVtYmVyIGV4Y2VlZHMgMTUsIHRoZSB0b3Rh
bCBhbW91bnQgb2YgZmllbGRzIHNob3duIGlzIGxpbWl0ZWQgdG8KKyMgMTAuCisjIE1pbmltdW0g
dmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMCwgZGVmYXVsdCB2YWx1ZTogMTAuCisjIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitVTUxf
TElNSVRfTlVNX0ZJRUxEUyAgID0gMTAKKworIyBJZiB0aGUgVEVNUExBVEVfUkVMQVRJT05TIHRh
ZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGluaGVyaXRhbmNlIGFuZAorIyBjb2xsYWJvcmF0aW9u
IGdyYXBocyB3aWxsIHNob3cgdGhlIHJlbGF0aW9ucyBiZXR3ZWVuIHRlbXBsYXRlcyBhbmQgdGhl
aXIKKyMgaW5zdGFuY2VzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitURU1QTEFU
RV9SRUxBVElPTlMgICAgID0gWUVTCisKKyMgSWYgdGhlIElOQ0xVREVfR1JBUEgsIEVOQUJMRV9Q
UkVQUk9DRVNTSU5HIGFuZCBTRUFSQ0hfSU5DTFVERVMgdGFncyBhcmUgc2V0IHRvCisjIFlFUyB0
aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgZmls
ZSBzaG93aW5nIHRoZQorIyBkaXJlY3QgYW5kIGluZGlyZWN0IGluY2x1ZGUgZGVwZW5kZW5jaWVz
IG9mIHRoZSBmaWxlIHdpdGggb3RoZXIgZG9jdW1lbnRlZAorIyBmaWxlcy4KKyMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVf
RE9UIGlzIHNldCB0byBZRVMuCisKK0lOQ0xVREVfR1JBUEggICAgICAgICAgPSBZRVMKKworIyBJ
ZiB0aGUgSU5DTFVERURfQllfR1JBUEgsIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGFuZCBTRUFSQ0hf
SU5DTFVERVMgdGFncyBhcmUKKyMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0
ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgZmlsZSBzaG93aW5nCisjIHRoZSBkaXJlY3Qg
YW5kIGluZGlyZWN0IGluY2x1ZGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBmaWxlIHdpdGggb3RoZXIg
ZG9jdW1lbnRlZAorIyBmaWxlcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhp
cyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0lO
Q0xVREVEX0JZX0dSQVBIICAgICAgPSBZRVMKKworIyBJZiB0aGUgQ0FMTF9HUkFQSCB0YWcgaXMg
c2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNhbGwKKyMgZGVwZW5kZW5j
eSBncmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1bmN0aW9uIG9yIGNsYXNzIG1ldGhvZC4KKyMKKyMg
Tm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgc2lnbmlmaWNhbnRseSBpbmNyZWFz
ZSB0aGUgdGltZSBvZiBhIHJ1bi4KKyMgU28gaW4gbW9zdCBjYXNlcyBpdCB3aWxsIGJlIGJldHRl
ciB0byBlbmFibGUgY2FsbCBncmFwaHMgZm9yIHNlbGVjdGVkCisjIGZ1bmN0aW9ucyBvbmx5IHVz
aW5nIHRoZSBcY2FsbGdyYXBoIGNvbW1hbmQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4K
KyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMu
CisKK0NBTExfR1JBUEggICAgICAgICAgICAgPSBOTworCisjIElmIHRoZSBDQUxMRVJfR1JBUEgg
dGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjYWxsZXIKKyMg
ZGVwZW5kZW5jeSBncmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1bmN0aW9uIG9yIGNsYXNzIG1ldGhv
ZC4KKyMKKyMgTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgc2lnbmlmaWNhbnRs
eSBpbmNyZWFzZSB0aGUgdGltZSBvZiBhIHJ1bi4KKyMgU28gaW4gbW9zdCBjYXNlcyBpdCB3aWxs
IGJlIGJldHRlciB0byBlbmFibGUgY2FsbGVyIGdyYXBocyBmb3Igc2VsZWN0ZWQKKyMgZnVuY3Rp
b25zIG9ubHkgdXNpbmcgdGhlIFxjYWxsZXJncmFwaCBjb21tYW5kLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBp
cyBzZXQgdG8gWUVTLgorCitDQUxMRVJfR1JBUEggICAgICAgICAgID0gWUVTCisKKyMgSWYgdGhl
IEdSQVBISUNBTF9ISUVSQVJDSFkgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwg
Z3JhcGhpY2FsCisjIGhpZXJhcmNoeSBvZiBhbGwgY2xhc3NlcyBpbnN0ZWFkIG9mIGEgdGV4dHVh
bCBvbmUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitHUkFQSElDQUxfSElFUkFS
Q0hZICAgID0gWUVTCisKKyMgSWYgdGhlIERJUkVDVE9SWV9HUkFQSCB0YWcgaXMgc2V0IHRvIFlF
UyB0aGVuIGRveHlnZW4gd2lsbCBzaG93IHRoZQorIyBkZXBlbmRlbmNpZXMgYSBkaXJlY3Rvcnkg
aGFzIG9uIG90aGVyIGRpcmVjdG9yaWVzIGluIGEgZ3JhcGhpY2FsIHdheS4gVGhlCisjIGRlcGVu
ZGVuY3kgcmVsYXRpb25zIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSAjaW5jbHVkZSByZWxhdGlvbnMg
YmV0d2VlbiB0aGUKKyMgZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzLgorIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1Qg
aXMgc2V0IHRvIFlFUy4KKworRElSRUNUT1JZX0dSQVBIICAgICAgICA9IFlFUworCisjIFRoZSBE
T1RfSU1BR0VfRk9STUFUIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIGltYWdlIGZvcm1hdCBv
ZiB0aGUgaW1hZ2VzCisjIGdlbmVyYXRlZCBieSBkb3QuCisjIE5vdGU6IElmIHlvdSBjaG9vc2Ug
c3ZnIHlvdSBuZWVkIHRvIHNldCBIVE1MX0ZJTEVfRVhURU5TSU9OIHRvIHhodG1sIGluIG9yZGVy
CisjIHRvIG1ha2UgdGhlIFNWRyBmaWxlcyB2aXNpYmxlIGluIElFIDkrIChvdGhlciBicm93c2Vy
cyBkbyBub3QgaGF2ZSB0aGlzCisjIHJlcXVpcmVtZW50KS4KKyMgUG9zc2libGUgdmFsdWVzIGFy
ZTogcG5nLCBqcGcsIGdpZiBhbmQgc3ZnLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogcG5nLgor
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4K
KworRE9UX0lNQUdFX0ZPUk1BVCAgICAgICA9IHBuZworCisjIElmIERPVF9JTUFHRV9GT1JNQVQg
aXMgc2V0IHRvIHN2ZywgdGhlbiB0aGlzIG9wdGlvbiBjYW4gYmUgc2V0IHRvIFlFUyB0bworIyBl
bmFibGUgZ2VuZXJhdGlvbiBvZiBpbnRlcmFjdGl2ZSBTVkcgaW1hZ2VzIHRoYXQgYWxsb3cgem9v
bWluZyBhbmQgcGFubmluZy4KKyMKKyMgTm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMgYSBtb2Rlcm4g
YnJvd3NlciBvdGhlciB0aGFuIEludGVybmV0IEV4cGxvcmVyLiBUZXN0ZWQKKyMgYW5kIHdvcmtp
bmcgYXJlIEZpcmVmb3gsIENocm9tZSwgU2FmYXJpLCBhbmQgT3BlcmEuCisjIE5vdGU6IEZvciBJ
RSA5KyB5b3UgbmVlZCB0byBzZXQgSFRNTF9GSUxFX0VYVEVOU0lPTiB0byB4aHRtbCBpbiBvcmRl
ciB0byBtYWtlCisjIHRoZSBTVkcgZmlsZXMgdmlzaWJsZS4gT2xkZXIgdmVyc2lvbnMgb2YgSUUg
ZG8gbm90IGhhdmUgU1ZHIHN1cHBvcnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisK
K0lOVEVSQUNUSVZFX1NWRyAgICAgICAgPSBOTworCisjIFRoZSBET1RfUEFUSCB0YWcgY2FuIGJl
IHVzZWQgdG8gc3BlY2lmeSB0aGUgcGF0aCB3aGVyZSB0aGUgZG90IHRvb2wgY2FuIGJlCisjIGZv
dW5kLiBJZiBsZWZ0IGJsYW5rLCBpdCBpcyBhc3N1bWVkIHRoZSBkb3QgdG9vbCBjYW4gYmUgZm91
bmQgaW4gdGhlIHBhdGguCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RP
VCBpcyBzZXQgdG8gWUVTLgorCitET1RfUEFUSCAgICAgICAgICAgICAgID0gJURPVF9QQVRIJQor
CisjIFRoZSBET1RGSUxFX0RJUlMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1v
cmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250YWluIGRvdCBmaWxlcyB0aGF0IGFyZSBpbmNsdWRl
ZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIHRoZSBcZG90ZmlsZQorIyBjb21tYW5kKS4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisK
K0RPVEZJTEVfRElSUyAgICAgICAgICAgPQorCisjIFRoZSBNU0NGSUxFX0RJUlMgdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdAorIyBjb250YWlu
IG1zYyBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIHRo
ZSBcbXNjZmlsZQorIyBjb21tYW5kKS4KKworTVNDRklMRV9ESVJTICAgICAgICAgICA9CisKKyMg
VGhlIERPVF9HUkFQSF9NQVhfTk9ERVMgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWF4aW11
bSBudW1iZXIgb2Ygbm9kZXMKKyMgdGhhdCB3aWxsIGJlIHNob3duIGluIHRoZSBncmFwaC4gSWYg
dGhlIG51bWJlciBvZiBub2RlcyBpbiBhIGdyYXBoIGJlY29tZXMKKyMgbGFyZ2VyIHRoYW4gdGhp
cyB2YWx1ZSwgZG94eWdlbiB3aWxsIHRydW5jYXRlIHRoZSBncmFwaCwgd2hpY2ggaXMgdmlzdWFs
aXplZAorIyBieSByZXByZXNlbnRpbmcgYSBub2RlIGFzIGEgcmVkIGJveC4gTm90ZSB0aGF0IGRv
eHlnZW4gaWYgdGhlIG51bWJlciBvZiBkaXJlY3QKKyMgY2hpbGRyZW4gb2YgdGhlIHJvb3Qgbm9k
ZSBpbiBhIGdyYXBoIGlzIGFscmVhZHkgbGFyZ2VyIHRoYW4KKyMgRE9UX0dSQVBIX01BWF9OT0RF
UyB0aGVuIHRoZSBncmFwaCB3aWxsIG5vdCBiZSBzaG93biBhdCBhbGwuIEFsc28gbm90ZSB0aGF0
CisjIHRoZSBzaXplIG9mIGEgZ3JhcGggY2FuIGJlIGZ1cnRoZXIgcmVzdHJpY3RlZCBieSBNQVhf
RE9UX0dSQVBIX0RFUFRILgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAxMDAw
MCwgZGVmYXVsdCB2YWx1ZTogNTAuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBI
QVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfR1JBUEhfTUFYX05PREVTICAgID0gNTAKKwor
IyBUaGUgTUFYX0RPVF9HUkFQSF9ERVBUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBtYXhp
bXVtIGRlcHRoIG9mIHRoZSBncmFwaHMKKyMgZ2VuZXJhdGVkIGJ5IGRvdC4gQSBkZXB0aCB2YWx1
ZSBvZiAzIG1lYW5zIHRoYXQgb25seSBub2RlcyByZWFjaGFibGUgZnJvbSB0aGUKKyMgcm9vdCBi
eSBmb2xsb3dpbmcgYSBwYXRoIHZpYSBhdCBtb3N0IDMgZWRnZXMgd2lsbCBiZSBzaG93bi4gTm9k
ZXMgdGhhdCBsYXkKKyMgZnVydGhlciBmcm9tIHRoZSByb290IG5vZGUgd2lsbCBiZSBvbWl0dGVk
LiBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIG9wdGlvbiB0byAxCisjIG9yIDIgbWF5IGdyZWF0bHkg
cmVkdWNlIHRoZSBjb21wdXRhdGlvbiB0aW1lIG5lZWRlZCBmb3IgbGFyZ2UgY29kZSBiYXNlcy4g
QWxzbworIyBub3RlIHRoYXQgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVydGhlciByZXN0
cmljdGVkIGJ5CisjIERPVF9HUkFQSF9NQVhfTk9ERVMuIFVzaW5nIGEgZGVwdGggb2YgMCBtZWFu
cyBubyBkZXB0aCByZXN0cmljdGlvbi4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1
ZTogMTAwMCwgZGVmYXVsdCB2YWx1ZTogMC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK01BWF9ET1RfR1JBUEhfREVQVEggICAgPSAx
MDAwCisKKyMgU2V0IHRoZSBET1RfVFJBTlNQQVJFTlQgdGFnIHRvIFlFUyB0byBnZW5lcmF0ZSBp
bWFnZXMgd2l0aCBhIHRyYW5zcGFyZW50CisjIGJhY2tncm91bmQuIFRoaXMgaXMgZGlzYWJsZWQg
YnkgZGVmYXVsdCwgYmVjYXVzZSBkb3Qgb24gV2luZG93cyBkb2VzIG5vdCBzZWVtCisjIHRvIHN1
cHBvcnQgdGhpcyBvdXQgb2YgdGhlIGJveC4KKyMKKyMgV2FybmluZzogRGVwZW5kaW5nIG9uIHRo
ZSBwbGF0Zm9ybSB1c2VkLCBlbmFibGluZyB0aGlzIG9wdGlvbiBtYXkgbGVhZCB0bworIyBiYWRs
eSBhbnRpLWFsaWFzZWQgbGFiZWxzIG9uIHRoZSBlZGdlcyBvZiBhIGdyYXBoIChpLmUuIHRoZXkg
YmVjb21lIGhhcmQgdG8KKyMgcmVhZCkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisK
K0RPVF9UUkFOU1BBUkVOVCAgICAgICAgPSBOTworCisjIFNldCB0aGUgRE9UX01VTFRJX1RBUkdF
VFMgdGFnIHRvIFlFUyBhbGxvdyBkb3QgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgb3V0cHV0CisjIGZp
bGVzIGluIG9uZSBydW4gKGkuZS4gbXVsdGlwbGUgLW8gYW5kIC1UIG9wdGlvbnMgb24gdGhlIGNv
bW1hbmQgbGluZSkuIFRoaXMKKyMgbWFrZXMgZG90IHJ1biBmYXN0ZXIsIGJ1dCBzaW5jZSBvbmx5
IG5ld2VyIHZlcnNpb25zIG9mIGRvdCAoPjEuOC4xMCkgc3VwcG9ydAorIyB0aGlzLCB0aGlzIGZl
YXR1cmUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlF
Uy4KKworRE9UX01VTFRJX1RBUkdFVFMgICAgICA9IFlFUworCisjIElmIHRoZSBHRU5FUkFURV9M
RUdFTkQgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgbGVnZW5kIHBh
Z2UKKyMgZXhwbGFpbmluZyB0aGUgbWVhbmluZyBvZiB0aGUgdmFyaW91cyBib3hlcyBhbmQgYXJy
b3dzIGluIHRoZSBkb3QgZ2VuZXJhdGVkCisjIGdyYXBocy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNl
dCB0byBZRVMuCisKK0dFTkVSQVRFX0xFR0VORCAgICAgICAgPSBZRVMKKworIyBJZiB0aGUgRE9U
X0NMRUFOVVAgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIHJlbW92ZSB0aGUgaW50ZXJt
ZWRpYXRlIGRvdAorIyBmaWxlcyB0aGF0IGFyZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSB2YXJpb3Vz
IGdyYXBocy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKyMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCisKK0RPVF9DTEVBTlVQICAg
ICAgICAgICAgPSBZRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvZG94eWJ1aWxkLnB5IGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb3h5
YnVpbGQucHkKaW5kZXggMDNhZDY4ZGYwMjc3NjM4YTEzMTY5NmIxNWJjMTgyN2QxZjhhMTVhNy4u
ODYyYzFmNDNmZjRiMGQ2MzQ5MjFkYTRmNzkwM2FiM2MyMjAyZDg3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9kb3h5YnVpbGQucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9kb3h5YnVpbGQucHkKQEAgLTEsMTIgKzEsMjcgQEAK
ICIiIlNjcmlwdCB0byBnZW5lcmF0ZSBkb3h5Z2VuIGRvY3VtZW50YXRpb24uCiAiIiIKLQorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCB1bmljb2RlX2xpdGVyYWxzCitmcm9tIGRldnRvb2xzIGltcG9ydCB0YXJiYWxsCitmcm9tIGNv
bnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0
IHRyYWNlYmFjawogaW1wb3J0IHJlCiBpbXBvcnQgb3MKLWltcG9ydCBvcy5wYXRoCiBpbXBvcnQg
c3lzCiBpbXBvcnQgc2h1dGlsCi1mcm9tIGRldnRvb2xzIGltcG9ydCB0YXJiYWxsCisKK0Bjb250
ZXh0bWFuYWdlcgorZGVmIGNkKG5ld2Rpcik6CisgICAgIiIiCisgICAgaHR0cDovL3N0YWNrb3Zl
cmZsb3cuY29tL3F1ZXN0aW9ucy80MzE2ODQvaG93LWRvLWktY2QtaW4tcHl0aG9uCisgICAgIiIi
CisgICAgcHJldmRpciA9IG9zLmdldGN3ZCgpCisgICAgb3MuY2hkaXIobmV3ZGlyKQorICAgIHRy
eToKKyAgICAgICAgeWllbGQKKyAgICBmaW5hbGx5OgorICAgICAgICBvcy5jaGRpcihwcmV2ZGly
KQogCiBkZWYgZmluZF9wcm9ncmFtKCpmaWxlbmFtZXMpOgogICAgICIiImZpbmQgYSBwcm9ncmFt
IGluIGZvbGRlcnMgcGF0aF9sc3QsIGFuZCBzZXRzIGVudlt2YXJdCkBAIC0xNCw5ICsyOSw5IEBA
IGRlZiBmaW5kX3Byb2dyYW0oKmZpbGVuYW1lcyk6CiAgICAgQHJldHVybjogdGhlIGZ1bGwgcGF0
aCBvZiB0aGUgZmlsZW5hbWUgaWYgZm91bmQsIG9yICcnIGlmIGZpbGVuYW1lIGNvdWxkIG5vdCBi
ZSBmb3VuZAogIiIiCiAgICAgcGF0aHMgPSBvcy5lbnZpcm9uLmdldCgnUEFUSCcsICcnKS5zcGxp
dChvcy5wYXRoc2VwKQotICAgIHN1ZmZpeGVzID0gKCd3aW4zMicgaW4gc3lzLnBsYXRmb3JtICkg
YW5kICcuZXhlIC5jb20gLmJhdCAuY21kJyBvciAnJworICAgIHN1ZmZpeGVzID0gKCd3aW4zMicg
aW4gc3lzLnBsYXRmb3JtKSBhbmQgJy5leGUgLmNvbSAuYmF0IC5jbWQnIG9yICcnCiAgICAgZm9y
IGZpbGVuYW1lIGluIGZpbGVuYW1lczoKLSAgICAgICAgZm9yIG5hbWUgaW4gW2ZpbGVuYW1lK2V4
dCBmb3IgZXh0IGluIHN1ZmZpeGVzLnNwbGl0KCldOgorICAgICAgICBmb3IgbmFtZSBpbiBbZmls
ZW5hbWUrZXh0IGZvciBleHQgaW4gc3VmZml4ZXMuc3BsaXQoJyAnKV06CiAgICAgICAgICAgICBm
b3IgZGlyZWN0b3J5IGluIHBhdGhzOgogICAgICAgICAgICAgICAgIGZ1bGxfcGF0aCA9IG9zLnBh
dGguam9pbihkaXJlY3RvcnksIG5hbWUpCiAgICAgICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Zp
bGUoZnVsbF9wYXRoKToKQEAgLTI4LDUzICs0Myw1NiBAQCBkZWYgZG9fc3Vic3RfaW5fZmlsZSh0
YXJnZXRmaWxlLCBzb3VyY2VmaWxlLCBkaWN0KToKICAgICBGb3IgZXhhbXBsZSwgaWYgZGljdCBp
cyB7JyVWRVJTSU9OJSc6ICcxLjIzNDUnLCAnJUJBU0UlJzogJ015UHJvZyd9LAogICAgIHRoZW4g
YWxsIGluc3RhbmNlcyBvZiAlVkVSU0lPTiUgaW4gdGhlIGZpbGUgd2lsbCBiZSByZXBsYWNlZCB3
aXRoIDEuMjM0NSBldGMuCiAgICAgIiIiCi0gICAgdHJ5OgotICAgICAgICBmID0gb3Blbihzb3Vy
Y2VmaWxlLCAncmInKQorICAgIHdpdGggb3Blbihzb3VyY2VmaWxlLCAncicpIGFzIGY6CiAgICAg
ICAgIGNvbnRlbnRzID0gZi5yZWFkKCkKLSAgICAgICAgZi5jbG9zZSgpCi0gICAgZXhjZXB0Ogot
ICAgICAgICBwcmludCAiQ2FuJ3QgcmVhZCBzb3VyY2UgZmlsZSAlcyIlc291cmNlZmlsZQotICAg
ICAgICByYWlzZQotICAgIGZvciAoayx2KSBpbiBkaWN0Lml0ZW1zKCk6CisgICAgZm9yIChrLHYp
IGluIGxpc3QoZGljdC5pdGVtcygpKToKICAgICAgICAgdiA9IHYucmVwbGFjZSgnXFwnLCdcXFxc
JykgCiAgICAgICAgIGNvbnRlbnRzID0gcmUuc3ViKGssIHYsIGNvbnRlbnRzKQotICAgIHRyeToK
LSAgICAgICAgZiA9IG9wZW4odGFyZ2V0ZmlsZSwgJ3diJykKKyAgICB3aXRoIG9wZW4odGFyZ2V0
ZmlsZSwgJ3cnKSBhcyBmOgogICAgICAgICBmLndyaXRlKGNvbnRlbnRzKQotICAgICAgICBmLmNs
b3NlKCkKKworZGVmIGdldHN0YXR1c291dHB1dChjbWQpOgorICAgICIiImNtZCBpcyBhIGxpc3Qu
CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3Blbihj
bWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKyAg
ICAgICAgb3V0cHV0LCBfID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCisgICAgICAgIHN0YXR1cyA9
IHByb2Nlc3MucmV0dXJuY29kZQogICAgIGV4Y2VwdDoKLSAgICAgICAgcHJpbnQgIkNhbid0IHdy
aXRlIHRhcmdldCBmaWxlICVzIiV0YXJnZXRmaWxlCi0gICAgICAgIHJhaXNlCisgICAgICAgIHN0
YXR1cyA9IC0xCisgICAgICAgIG91dHB1dCA9IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKKyAgICBy
ZXR1cm4gc3RhdHVzLCBvdXRwdXQKKworZGVmIHJ1bl9jbWQoY21kLCBzaWxlbnQ9RmFsc2UpOgor
ICAgICIiIlJhaXNlIGV4Y2VwdGlvbiBvbiBmYWlsdXJlLgorICAgICIiIgorICAgIGluZm8gPSAn
UnVubmluZzogJXIgaW4gJXInICUoJyAnLmpvaW4oY21kKSwgb3MuZ2V0Y3dkKCkpCisgICAgcHJp
bnQoaW5mbykKKyAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKyAgICBpZiBzaWxlbnQ6CisgICAgICAg
IHN0YXR1cywgb3V0cHV0ID0gZ2V0c3RhdHVzb3V0cHV0KGNtZCkKKyAgICBlbHNlOgorICAgICAg
ICBzdGF0dXMsIG91dHB1dCA9IHN1YnByb2Nlc3MuY2FsbChjbWQpLCAnJworICAgIGlmIHN0YXR1
czoKKyAgICAgICAgbXNnID0gJ0Vycm9yIHdoaWxlICVzIC4uLlxuXHRlcnJvcj0lZCwgb3V0cHV0
PSIiIiVzIiIiJyAlKGluZm8sIHN0YXR1cywgb3V0cHV0KQorICAgICAgICByYWlzZSBFeGNlcHRp
b24obXNnKQorCitkZWYgYXNzZXJ0X2lzX2V4ZShwYXRoKToKKyAgICBpZiBub3QgcGF0aDoKKyAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdwYXRoIGlzIGVtcHR5LicpCisgICAgaWYgbm90IG9zLnBh
dGguaXNmaWxlKHBhdGgpOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVyIGlzIG5vdCBhIGZp
bGUuJyAlcGF0aCkKKyAgICBpZiBub3Qgb3MuYWNjZXNzKHBhdGgsIG9zLlhfT0spOgorICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJyVyIGlzIG5vdCBleGVjdXRhYmxlIGJ5IHRoaXMgdXNlci4nICVw
YXRoKQogCiBkZWYgcnVuX2RveHlnZW4oZG94eWdlbl9wYXRoLCBjb25maWdfZmlsZSwgd29ya2lu
Z19kaXIsIGlzX3NpbGVudCk6Ci0gICAgY29uZmlnX2ZpbGUgPSBvcy5wYXRoLmFic3BhdGgoIGNv
bmZpZ19maWxlICkKLSAgICBkb3h5Z2VuX3BhdGggPSBkb3h5Z2VuX3BhdGgKLSAgICBvbGRfY3dk
ID0gb3MuZ2V0Y3dkKCkKLSAgICB0cnk6Ci0gICAgICAgIG9zLmNoZGlyKCB3b3JraW5nX2RpciAp
CisgICAgYXNzZXJ0X2lzX2V4ZShkb3h5Z2VuX3BhdGgpCisgICAgY29uZmlnX2ZpbGUgPSBvcy5w
YXRoLmFic3BhdGgoY29uZmlnX2ZpbGUpCisgICAgd2l0aCBjZCh3b3JraW5nX2Rpcik6CiAgICAg
ICAgIGNtZCA9IFtkb3h5Z2VuX3BhdGgsIGNvbmZpZ19maWxlXQotICAgICAgICBwcmludCAnUnVu
bmluZzonLCAnICcuam9pbiggY21kICkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0
IHN1YnByb2Nlc3MKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgaWYgb3Muc3lzdGVtKCAn
ICcuam9pbiggY21kICkgKSAhPSAwOgotICAgICAgICAgICAgICAgIHByaW50ICdEb2N1bWVudGF0
aW9uIGdlbmVyYXRpb24gZmFpbGVkJwotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgaWYgaXNfc2lsZW50OgotICAgICAgICAgICAgICAgIHBy
b2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0
ZGVycj1zdWJwcm9jZXNzLlNURE9VVCApCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQgKQotICAgICAgICAgICAgc3Rkb3V0
LCBfID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBpZiBwcm9jZXNzLnJldHVy
bmNvZGU6Ci0gICAgICAgICAgICAgICAgcHJpbnQgJ0RvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBm
YWlsZWQ6JwotICAgICAgICAgICAgICAgIHByaW50IHN0ZG91dAotICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQotICAgIGZpbmFsbHk6Ci0gICAgICAgIG9z
LmNoZGlyKCBvbGRfY3dkICkKKyAgICAgICAgcnVuX2NtZChjbWQsIGlzX3NpbGVudCkKIAotZGVm
IGJ1aWxkX2RvYyggb3B0aW9ucywgIG1ha2VfcmVsZWFzZT1GYWxzZSApOgorZGVmIGJ1aWxkX2Rv
YyhvcHRpb25zLCAgbWFrZV9yZWxlYXNlPUZhbHNlKToKICAgICBpZiBtYWtlX3JlbGVhc2U6CiAg
ICAgICAgIG9wdGlvbnMubWFrZV90YXJiYWxsID0gVHJ1ZQogICAgICAgICBvcHRpb25zLndpdGhf
ZG90ID0gVHJ1ZQpAQCAtODMsNjIgKzEwMSw2MiBAQCBkZWYgYnVpbGRfZG9jKCBvcHRpb25zLCAg
bWFrZV9yZWxlYXNlPUZhbHNlICk6CiAgICAgICAgIG9wdGlvbnMub3BlbiA9IEZhbHNlCiAgICAg
ICAgIG9wdGlvbnMuc2lsZW50ID0gVHJ1ZQogCi0gICAgdmVyc2lvbiA9IG9wZW4oJ3ZlcnNpb24n
LCdydCcpLnJlYWQoKS5zdHJpcCgpCisgICAgdmVyc2lvbiA9IG9wZW4oJ3ZlcnNpb24nLCAncnQn
KS5yZWFkKCkuc3RyaXAoKQogICAgIG91dHB1dF9kaXIgPSAnZGlzdC9kb3h5Z2VuJyAjIHJlbGF0
aXZlIHRvIGRvYy9kb3h5ZmlsZSBsb2NhdGlvbi4KLSAgICBpZiBub3Qgb3MucGF0aC5pc2Rpcigg
b3V0cHV0X2RpciApOgotICAgICAgICBvcy5tYWtlZGlycyggb3V0cHV0X2RpciApCi0gICAgdG9w
X2RpciA9IG9zLnBhdGguYWJzcGF0aCggJy4nICkKKyAgICBpZiBub3Qgb3MucGF0aC5pc2Rpcihv
dXRwdXRfZGlyKToKKyAgICAgICAgb3MubWFrZWRpcnMob3V0cHV0X2RpcikKKyAgICB0b3BfZGly
ID0gb3MucGF0aC5hYnNwYXRoKCcuJykKICAgICBodG1sX291dHB1dF9kaXJuYW1lID0gJ2pzb25j
cHAtYXBpLWh0bWwtJyArIHZlcnNpb24KLSAgICB0YXJiYWxsX3BhdGggPSBvcy5wYXRoLmpvaW4o
ICdkaXN0JywgaHRtbF9vdXRwdXRfZGlybmFtZSArICcudGFyLmd6JyApCi0gICAgd2FybmluZ19s
b2dfcGF0aCA9IG9zLnBhdGguam9pbiggb3V0cHV0X2RpciwgJy4uL2pzb25jcHAtZG94eWdlbi13
YXJuaW5nLmxvZycgKQotICAgIGh0bWxfb3V0cHV0X3BhdGggPSBvcy5wYXRoLmpvaW4oIG91dHB1
dF9kaXIsIGh0bWxfb3V0cHV0X2Rpcm5hbWUgKQotICAgIGRlZiB5ZXNubyggYm9vbCApOgorICAg
IHRhcmJhbGxfcGF0aCA9IG9zLnBhdGguam9pbignZGlzdCcsIGh0bWxfb3V0cHV0X2Rpcm5hbWUg
KyAnLnRhci5neicpCisgICAgd2FybmluZ19sb2dfcGF0aCA9IG9zLnBhdGguam9pbihvdXRwdXRf
ZGlyLCAnLi4vanNvbmNwcC1kb3h5Z2VuLXdhcm5pbmcubG9nJykKKyAgICBodG1sX291dHB1dF9w
YXRoID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsIGh0bWxfb3V0cHV0X2Rpcm5hbWUpCisgICAg
ZGVmIHllc25vKGJvb2wpOgogICAgICAgICByZXR1cm4gYm9vbCBhbmQgJ1lFUycgb3IgJ05PJwog
ICAgIHN1YnN0X2tleXMgPSB7CiAgICAgICAgICclSlNPTkNQUF9WRVJTSU9OJSc6IHZlcnNpb24s
CiAgICAgICAgICclRE9DX1RPUERJUiUnOiAnJywKICAgICAgICAgJyVUT1BESVIlJzogdG9wX2Rp
ciwKLSAgICAgICAgJyVIVE1MX09VVFBVVCUnOiBvcy5wYXRoLmpvaW4oICcuLicsIG91dHB1dF9k
aXIsIGh0bWxfb3V0cHV0X2Rpcm5hbWUgKSwKKyAgICAgICAgJyVIVE1MX09VVFBVVCUnOiBvcy5w
YXRoLmpvaW4oJy4uJywgb3V0cHV0X2RpciwgaHRtbF9vdXRwdXRfZGlybmFtZSksCiAgICAgICAg
ICclSEFWRV9ET1QlJzogeWVzbm8ob3B0aW9ucy53aXRoX2RvdCksCiAgICAgICAgICclRE9UX1BB
VEglJzogb3MucGF0aC5zcGxpdChvcHRpb25zLmRvdF9wYXRoKVswXSwKICAgICAgICAgJyVIVE1M
X0hFTFAlJzogeWVzbm8ob3B0aW9ucy53aXRoX2h0bWxfaGVscCksCiAgICAgICAgICclVU1MX0xP
T0slJzogeWVzbm8ob3B0aW9ucy53aXRoX3VtbF9sb29rKSwKLSAgICAgICAgJyVXQVJOSU5HX0xP
R19QQVRIJSc6IG9zLnBhdGguam9pbiggJy4uJywgd2FybmluZ19sb2dfcGF0aCApCisgICAgICAg
ICclV0FSTklOR19MT0dfUEFUSCUnOiBvcy5wYXRoLmpvaW4oJy4uJywgd2FybmluZ19sb2dfcGF0
aCkKICAgICAgICAgfQogCi0gICAgaWYgb3MucGF0aC5pc2Rpciggb3V0cHV0X2RpciApOgotICAg
ICAgICBwcmludCAnRGVsZXRpbmcgZGlyZWN0b3J5OicsIG91dHB1dF9kaXIKLSAgICAgICAgc2h1
dGlsLnJtdHJlZSggb3V0cHV0X2RpciApCi0gICAgaWYgbm90IG9zLnBhdGguaXNkaXIoIG91dHB1
dF9kaXIgKToKLSAgICAgICAgb3MubWFrZWRpcnMoIG91dHB1dF9kaXIgKQorICAgIGlmIG9zLnBh
dGguaXNkaXIob3V0cHV0X2Rpcik6CisgICAgICAgIHByaW50KCdEZWxldGluZyBkaXJlY3Rvcnk6
Jywgb3V0cHV0X2RpcikKKyAgICAgICAgc2h1dGlsLnJtdHJlZShvdXRwdXRfZGlyKQorICAgIGlm
IG5vdCBvcy5wYXRoLmlzZGlyKG91dHB1dF9kaXIpOgorICAgICAgICBvcy5tYWtlZGlycyhvdXRw
dXRfZGlyKQogCi0gICAgZG9fc3Vic3RfaW5fZmlsZSggJ2RvYy9kb3h5ZmlsZScsICdkb2MvZG94
eWZpbGUuaW4nLCBzdWJzdF9rZXlzICkKLSAgICBvayA9IHJ1bl9kb3h5Z2VuKCBvcHRpb25zLmRv
eHlnZW5fcGF0aCwgJ2RvYy9kb3h5ZmlsZScsICdkb2MnLCBpc19zaWxlbnQ9b3B0aW9ucy5zaWxl
bnQgKQorICAgIGRvX3N1YnN0X2luX2ZpbGUoJ2RvYy9kb3h5ZmlsZScsIG9wdGlvbnMuZG94eWZp
bGVfaW5wdXRfcGF0aCwgc3Vic3Rfa2V5cykKKyAgICBydW5fZG94eWdlbihvcHRpb25zLmRveHln
ZW5fcGF0aCwgJ2RvYy9kb3h5ZmlsZScsICdkb2MnLCBpc19zaWxlbnQ9b3B0aW9ucy5zaWxlbnQp
CiAgICAgaWYgbm90IG9wdGlvbnMuc2lsZW50OgotICAgICAgICBwcmludCBvcGVuKHdhcm5pbmdf
bG9nX3BhdGgsICdyYicpLnJlYWQoKQotICAgIGluZGV4X3BhdGggPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKHN1YnN0X2tleXNbJyVIVE1MX09VVFBVVCUnXSwgJ2luZGV4Lmh0bWwnKSkK
LSAgICBwcmludCAnR2VuZXJhdGVkIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluOicKLSAg
ICBwcmludCBpbmRleF9wYXRoCisgICAgICAgIHByaW50KG9wZW4od2FybmluZ19sb2dfcGF0aCwg
J3InKS5yZWFkKCkpCisgICAgaW5kZXhfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpv
aW4oJ2RvYycsIHN1YnN0X2tleXNbJyVIVE1MX09VVFBVVCUnXSwgJ2luZGV4Lmh0bWwnKSkKKyAg
ICBwcmludCgnR2VuZXJhdGVkIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluOicpCisgICAg
cHJpbnQoaW5kZXhfcGF0aCkKICAgICBpZiBvcHRpb25zLm9wZW46CiAgICAgICAgIGltcG9ydCB3
ZWJicm93c2VyCi0gICAgICAgIHdlYmJyb3dzZXIub3BlbiggJ2ZpbGU6Ly8nICsgaW5kZXhfcGF0
aCApCisgICAgICAgIHdlYmJyb3dzZXIub3BlbignZmlsZTovLycgKyBpbmRleF9wYXRoKQogICAg
IGlmIG9wdGlvbnMubWFrZV90YXJiYWxsOgotICAgICAgICBwcmludCAnR2VuZXJhdGluZyBkb2Mg
dGFyYmFsbCB0bycsIHRhcmJhbGxfcGF0aAorICAgICAgICBwcmludCgnR2VuZXJhdGluZyBkb2Mg
dGFyYmFsbCB0bycsIHRhcmJhbGxfcGF0aCkKICAgICAgICAgdGFyYmFsbF9zb3VyY2VzID0gWwog
ICAgICAgICAgICAgb3V0cHV0X2RpciwKLSAgICAgICAgICAgICdSRUFETUUudHh0JywKKyAgICAg
ICAgICAgICdSRUFETUUubWQnLAogICAgICAgICAgICAgJ0xJQ0VOU0UnLAogICAgICAgICAgICAg
J05FV1MudHh0JywKICAgICAgICAgICAgICd2ZXJzaW9uJwogICAgICAgICAgICAgXQotICAgICAg
ICB0YXJiYWxsX2Jhc2VkaXIgPSBvcy5wYXRoLmpvaW4oIG91dHB1dF9kaXIsIGh0bWxfb3V0cHV0
X2Rpcm5hbWUgKQotICAgICAgICB0YXJiYWxsLm1ha2VfdGFyYmFsbCggdGFyYmFsbF9wYXRoLCB0
YXJiYWxsX3NvdXJjZXMsIHRhcmJhbGxfYmFzZWRpciwgaHRtbF9vdXRwdXRfZGlybmFtZSApCisg
ICAgICAgIHRhcmJhbGxfYmFzZWRpciA9IG9zLnBhdGguam9pbihvdXRwdXRfZGlyLCBodG1sX291
dHB1dF9kaXJuYW1lKQorICAgICAgICB0YXJiYWxsLm1ha2VfdGFyYmFsbCh0YXJiYWxsX3BhdGgs
IHRhcmJhbGxfc291cmNlcywgdGFyYmFsbF9iYXNlZGlyLCBodG1sX291dHB1dF9kaXJuYW1lKQog
ICAgIHJldHVybiB0YXJiYWxsX3BhdGgsIGh0bWxfb3V0cHV0X2Rpcm5hbWUKIAogZGVmIG1haW4o
KToKICAgICB1c2FnZSA9ICIiIiVwcm9nCiAgICAgR2VuZXJhdGVzIGRveHlnZW4gZG9jdW1lbnRh
dGlvbiBpbiBidWlsZC9kb3h5Z2VuLgotICAgIE9wdGlvbmFseSBtYWtlcyBhIHRhcmJhbGwgb2Yg
dGhlIGRvY3VtZW50YXRpb24gdG8gZGlzdC8uCisgICAgT3B0aW9uYWxseSBtYWtlcyBhIHRhcmJh
bGwgb2YgdGhlIGRvY3VtZW50YXRpb24gdG8gZGlzdC8uCiAKICAgICBNdXN0IGJlIHN0YXJ0ZWQg
aW4gdGhlIHByb2plY3QgdG9wIGRpcmVjdG9yeS4gICAgCiAgICAgIiIiCkBAIC0xNTEsNiArMTY5
LDggQEAgZGVmIG1haW4oKToKICAgICAgICAgaGVscD0iIiJQYXRoIHRvIEdyYXBoVml6IGRvdCB0
b29sLiBNdXN0IGJlIGZ1bGwgcXVhbGlmaWVkIHBhdGguIFtEZWZhdWx0OiAlZGVmYXVsdF0iIiIp
CiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZG94eWdlbicsIGRlc3Q9ImRveHlnZW5fcGF0aCIs
IGFjdGlvbj0nc3RvcmUnLCBkZWZhdWx0PWZpbmRfcHJvZ3JhbSgnZG94eWdlbicpLAogICAgICAg
ICBoZWxwPSIiIlBhdGggdG8gRG94eWdlbiB0b29sLiBbRGVmYXVsdDogJWRlZmF1bHRdIiIiKQor
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWluJywgZGVzdD0iZG94eWZpbGVfaW5wdXRfcGF0aCIs
IGFjdGlvbj0nc3RvcmUnLCBkZWZhdWx0PSdkb2MvZG94eWZpbGUuaW4nLAorICAgICAgICBoZWxw
PSIiIlBhdGggdG8gZG94eWdlbiBpbnB1dHMuIFtEZWZhdWx0OiAlZGVmYXVsdF0iIiIpCiAgICAg
cGFyc2VyLmFkZF9vcHRpb24oJy0td2l0aC1odG1sLWhlbHAnLCBkZXN0PSJ3aXRoX2h0bWxfaGVs
cCIsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgIGhlbHA9IiIi
RW5hYmxlIGdlbmVyYXRpb24gb2YgTWljcm9zb2Z0IEhUTUwgSEVMUCIiIikKICAgICBwYXJzZXIu
YWRkX29wdGlvbignLS1uby11bWwtbG9vaycsIGRlc3Q9IndpdGhfdW1sX2xvb2siLCBhY3Rpb249
J3N0b3JlX2ZhbHNlJywgZGVmYXVsdD1UcnVlLApAQCAtMTYzLDcgKzE4Myw3IEBAIGRlZiBtYWlu
KCk6CiAgICAgICAgIGhlbHA9IiIiSGlkZXMgZG94eWdlbiBvdXRwdXQiIiIpCiAgICAgcGFyc2Vy
LmVuYWJsZV9pbnRlcnNwZXJzZWRfYXJncygpCiAgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5w
YXJzZV9hcmdzKCkKLSAgICBidWlsZF9kb2MoIG9wdGlvbnMgKQorICAgIGJ1aWxkX2RvYyhvcHRp
b25zKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIG1haW4oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL0NNYWtlTGlzdHMu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhY2ZhYjFjNWEzYmFhOTU2MGNmZjZmNjZjY2NmOGRlZWNlODcyN2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCAr
MSw2IEBACitmaWxlKEdMT0IgSU5DTFVERV9GSUxFUyAianNvbi8qLmgiKQoraW5zdGFsbChGSUxF
UworICAgICR7SU5DTFVERV9GSUxFU30KKyAgICAke1BST0pFQ1RfQklOQVJZX0RJUn0vaW5jbHVk
ZS9qc29uL3ZlcnNpb24uaAorICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9JTkNMVURF
RElSfS9qc29uKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9hbGxvY2F0b3IuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvaW5jbHVkZS9qc29uL2FsbG9jYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1Zjk4N2U5N2IzMTNm
Y2I1MWY3ZTk4Yjk2OWQyYjQzOGM5MjdkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1
ZGUvanNvbi9hbGxvY2F0b3IuaApAQCAtMCwwICsxLDg5IEBACisvLyBDb3B5cmlnaHQgMjAwNy0y
MDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycworLy8gRGlzdHJp
YnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQK
Ky8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fQUxMT0NBVE9SX0hfSU5DTFVERUQKKyNkZWZpbmUg
Q1BQVExfSlNPTl9BTExPQ0FUT1JfSF9JTkNMVURFRAorCisjaW5jbHVkZSA8Y3N0cmluZz4KKyNp
bmNsdWRlIDxtZW1vcnk+CisKKyNwcmFnbWEgcGFjayhwdXNoLCA4KQorCituYW1lc3BhY2UgSnNv
biB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgU2VjdXJlQWxsb2NhdG9yIHsKK3B1Ymxp
YzoKKyAgLy8gVHlwZSBkZWZpbml0aW9ucworICB1c2luZyB2YWx1ZV90eXBlID0gVDsKKyAgdXNp
bmcgcG9pbnRlciA9IFQqOworICB1c2luZyBjb25zdF9wb2ludGVyID0gY29uc3QgVCo7CisgIHVz
aW5nIHJlZmVyZW5jZSA9IFQmOworICB1c2luZyBjb25zdF9yZWZlcmVuY2UgPSBjb25zdCBUJjsK
KyAgdXNpbmcgc2l6ZV90eXBlID0gc3RkOjpzaXplX3Q7CisgIHVzaW5nIGRpZmZlcmVuY2VfdHlw
ZSA9IHN0ZDo6cHRyZGlmZl90OworCisgIC8qKgorICAgKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIE4g
aXRlbXMgdXNpbmcgdGhlIHN0YW5kYXJkIGFsbG9jYXRvci4KKyAgICovCisgIHBvaW50ZXIgYWxs
b2NhdGUoc2l6ZV90eXBlIG4pIHsKKyAgICAvLyBhbGxvY2F0ZSB1c2luZyAiZ2xvYmFsIG9wZXJh
dG9yIG5ldyIKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8cG9pbnRlcj4oOjpvcGVyYXRvciBuZXco
biAqIHNpemVvZihUKSkpOworICB9CisKKyAgLyoqCisgICAqIFJlbGVhc2UgbWVtb3J5IHdoaWNo
IHdhcyBhbGxvY2F0ZWQgZm9yIE4gaXRlbXMgYXQgcG9pbnRlciBQLgorICAgKgorICAgKiBUaGUg
bWVtb3J5IGJsb2NrIGlzIGZpbGxlZCB3aXRoIHplcm9lcyBiZWZvcmUgYmVpbmcgcmVsZWFzZWQu
CisgICAqIFRoZSBwb2ludGVyIGFyZ3VtZW50IGlzIHRhZ2dlZCBhcyAidm9sYXRpbGUiIHRvIHBy
ZXZlbnQgdGhlCisgICAqIGNvbXBpbGVyIG9wdGltaXppbmcgb3V0IHRoaXMgY3JpdGljYWwgc3Rl
cC4KKyAgICovCisgIHZvaWQgZGVhbGxvY2F0ZSh2b2xhdGlsZSBwb2ludGVyIHAsIHNpemVfdHlw
ZSBuKSB7CisgICAgc3RkOjptZW1zZXQocCwgMCwgbiAqIHNpemVvZihUKSk7CisgICAgLy8gZnJl
ZSB1c2luZyAiZ2xvYmFsIG9wZXJhdG9yIGRlbGV0ZSIKKyAgICA6Om9wZXJhdG9yIGRlbGV0ZShw
KTsKKyAgfQorCisgIC8qKgorICAgKiBDb25zdHJ1Y3QgYW4gaXRlbSBpbi1wbGFjZSBhdCBwb2lu
dGVyIFAuCisgICAqLworICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4gdm9pZCBjb25zdHJ1
Y3QocG9pbnRlciBwLCBBcmdzJiYuLi4gYXJncykgeworICAgIC8vIGNvbnN0cnVjdCB1c2luZyAi
cGxhY2VtZW50IG5ldyIgYW5kICJwZXJmZWN0IGZvcndhcmRpbmciCisgICAgOjpuZXcgKHN0YXRp
Y19jYXN0PHZvaWQqPihwKSkgVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICB9CisK
KyAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeyByZXR1cm4gc2l6ZV90KC0xKSAvIHNpemVv
ZihUKTsgfQorCisgIHBvaW50ZXIgYWRkcmVzcyhyZWZlcmVuY2UgeCkgY29uc3QgeyByZXR1cm4g
c3RkOjphZGRyZXNzb2YoeCk7IH0KKworICBjb25zdF9wb2ludGVyIGFkZHJlc3MoY29uc3RfcmVm
ZXJlbmNlIHgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6YWRkcmVzc29mKHgpOyB9CisKKyAgLyoqCisg
ICAqIERlc3Ryb3kgYW4gaXRlbSBpbi1wbGFjZSBhdCBwb2ludGVyIFAuCisgICAqLworICB2b2lk
IGRlc3Ryb3kocG9pbnRlciBwKSB7CisgICAgLy8gZGVzdHJveSB1c2luZyAiZXhwbGljaXQgZGVz
dHJ1Y3RvciIKKyAgICBwLT5+VCgpOworICB9CisKKyAgLy8gQm9pbGVycGxhdGUKKyAgU2VjdXJl
QWxsb2NhdG9yKCkge30KKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IFNlY3VyZUFsbG9jYXRvcihj
b25zdCBTZWN1cmVBbGxvY2F0b3I8VT4mKSB7fQorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gc3Ry
dWN0IHJlYmluZCB7IHVzaW5nIG90aGVyID0gU2VjdXJlQWxsb2NhdG9yPFU+OyB9OworfTsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Citib29sIG9wZXJhdG9yPT0oY29uc3Qg
U2VjdXJlQWxsb2NhdG9yPFQ+JiwgY29uc3QgU2VjdXJlQWxsb2NhdG9yPFU+JikgeworICByZXR1
cm4gdHJ1ZTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Citib29sIG9w
ZXJhdG9yIT0oY29uc3QgU2VjdXJlQWxsb2NhdG9yPFQ+JiwgY29uc3QgU2VjdXJlQWxsb2NhdG9y
PFU+JikgeworICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworI3By
YWdtYSBwYWNrKHBvcCkKKworI2VuZGlmIC8vIENQUFRMX0pTT05fQUxMT0NBVE9SX0hfSU5DTFVE
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5j
bHVkZS9qc29uL2Fzc2VydGlvbnMuaAppbmRleCBhNDgwNTg1YTBhMDZlNzdkNWEyMzIzNzYyMzE4
YjkyMGY3MmE2YjgzLi4yMDcxNmIwNjc0YmE3ODc3YmZmY2NkNDA5OGI5YTU1ODYxMjgwYTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9hc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNs
dWRlL2pzb24vYXNzZXJ0aW9ucy5oCkBAIC0xLDMxICsxLDU5IEBACi0vLyBDb3B5cmlnaHQgMjAw
Ny0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0
ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lm
bmRlZiBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAotIyBkZWZpbmUgQ1BQVExfSlNP
Tl9BU1NFUlRJT05TX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hf
SU5DTFVERUQKIAotI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5j
bHVkZSA8c3N0cmVhbT4KIAogI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBp
bmNsdWRlIDxqc29uL2NvbmZpZy5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2VuZGlmIC8vIGlm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQogCisvKiogSXQgc2hvdWxkIG5vdCBiZSBw
b3NzaWJsZSBmb3IgYSBtYWxpY2lvdXNseSBkZXNpZ25lZCBmaWxlIHRvCisgKiAgY2F1c2UgYW4g
YWJvcnQoKSBvciBzZWctZmF1bHQsIHNvIHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBvbmx5CisgKiAg
Zm9yIHByZS1jb25kaXRpb24gdmlvbGF0aW9ucyBhbmQgaW50ZXJuYWwgbG9naWMgZXJyb3JzLgor
ICovCiAjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0jZGVmaW5lIEpTT05fQVNTRVJUKCBjb25kaXRp
b24gKSBhc3NlcnQoIGNvbmRpdGlvbiApOyAgLy8gQHRvZG8gPD0gY2hhbmdlIHRoaXMgaW50byBh
biBleGNlcHRpb24gdGhyb3cKLSNkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UoIG1lc3NhZ2UgKSB0
aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIG1lc3NhZ2UgKTsKLSNlbHNlICAvLyBKU09OX1VTRV9F
WENFUFRJT04KLSNkZWZpbmUgSlNPTl9BU1NFUlQoIGNvbmRpdGlvbiApIGFzc2VydCggY29uZGl0
aW9uICk7CisKKy8vIEB0b2RvIDw9IGFkZCBkZXRhaWwgYWJvdXQgY29uZGl0aW9uIGluIGV4Y2Vw
dGlvbgorI2RlZmluZSBKU09OX0FTU0VSVChjb25kaXRpb24pICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgaWYgKCEoY29uZGl0aW9uKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgSnNvbjo6dGhyb3dMb2dpY0Vycm9yKCJhc3Nl
cnQganNvbiBmYWlsZWQiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgIH0KKworI2RlZmluZSBKU09OX0ZBSUxfTUVTU0FHRShtZXNzYWdl
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgT1N0cmluZ1N0cmVhbSBvc3M7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIG9zcyA8PCBtZXNz
YWdlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBKc29uOjp0aHJvd0xvZ2ljRXJyb3Iob3NzLnN0cigpKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgYWJvcnQoKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICB9CisKKyNlbHNlIC8vIEpTT05fVVNFX0VYQ0VQVElPTgorCisjZGVmaW5lIEpTT05fQVNT
RVJUKGNvbmRpdGlvbikgYXNzZXJ0KGNvbmRpdGlvbikKIAogLy8gVGhlIGNhbGwgdG8gYXNzZXJ0
KCkgd2lsbCBzaG93IHRoZSBmYWlsdXJlIG1lc3NhZ2UgaW4gZGVidWcgYnVpbGRzLiBJbgotLy8g
cmVsZWFzZSBidWdzIHdlIHdyaXRlIHRvIGludmFsaWQgbWVtb3J5IGluIG9yZGVyIHRvIGNyYXNo
IGhhcmQsIHNvIHRoYXQgYQotLy8gZGVidWdnZXIgb3IgY3Jhc2ggcmVwb3J0ZXIgZ2V0cyB0aGUg
Y2hhbmNlIHRvIHRha2Ugb3Zlci4gV2Ugc3RpbGwgY2FsbCBleGl0KCkKLS8vIGFmdGVyd2FyZCBp
biBvcmRlciB0byB0ZWxsIHRoZSBjb21waWxlciB0aGF0IHRoaXMgbWFjcm8gZG9lc24ndCByZXR1
cm4uCi0jZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKCBtZXNzYWdlICkgeyBhc3NlcnQoZmFsc2Ug
JiYgbWVzc2FnZSk7IHN0cmNweShyZWludGVycHJldF9jYXN0PGNoYXIqPig2NjYpLCBtZXNzYWdl
KTsgZXhpdCgxMjMpOyB9CisvLyByZWxlYXNlIGJ1aWxkcyB3ZSBhYm9ydCwgZm9yIGEgY29yZS1k
dW1wIG9yIGRlYnVnZ2VyLgorI2RlZmluZSBKU09OX0ZBSUxfTUVTU0FHRShtZXNzYWdlKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgT1N0cmluZ1N0cmVhbSBvc3M7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIG9zcyA8PCBtZXNzYWdlOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICBhc3NlcnQoZmFsc2UgJiYgb3NzLnN0cigpLmNfc3RyKCkpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgYWJvcnQoKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9
CiAKICNlbmRpZgogCi0jZGVmaW5lIEpTT05fQVNTRVJUX01FU1NBR0UoIGNvbmRpdGlvbiwgbWVz
c2FnZSApIGlmICghKCBjb25kaXRpb24gKSkgeyBKU09OX0ZBSUxfTUVTU0FHRSggbWVzc2FnZSAp
IH0KKyNkZWZpbmUgSlNPTl9BU1NFUlRfTUVTU0FHRShjb25kaXRpb24sIG1lc3NhZ2UpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGlmICghKGNvbmRpdGlvbikpIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgfQogCiAjZW5kaWYgLy8gQ1BQVExfSlNPTl9BU1NFUlRJ
T05TX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2F1dG9saW5rLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL2luY2x1ZGUvanNvbi9hdXRvbGluay5oCmluZGV4IDAyMzI4ZDFmMWE1YmNjZGU0MDNh
YmE0ZWZhODY0YWQxZmIxMzdiYTYuLmIyYzBmMDAyNGZjODNlZmIxNmU5ZmM0NjY0ZWEzZjJhZmUz
ZTg1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2F1dG9saW5rLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9pbmNsdWRlL2pzb24vYXV0b2xpbmsuaApAQCAtMSwyNCArMSwyNSBAQAotLy8gQ29weXJpZ2h0
IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFw
dGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAK
ICNpZm5kZWYgSlNPTl9BVVRPTElOS19IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX0FVVE9MSU5L
X0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9BVVRPTElOS19IX0lOQ0xVREVECiAKLSMgaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSMgaWZkZWYgSlNPTl9JTl9DUFBU
TAotIyAgaW5jbHVkZSA8Y3BwdGwvY3BwdGxfYXV0b2xpbmsuaD4KLSMgZW5kaWYKKyNpZmRlZiBK
U09OX0lOX0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvY3BwdGxfYXV0b2xpbmsuaD4KKyNlbmRpZgog
Ci0jIGlmICFkZWZpbmVkKEpTT05fTk9fQVVUT0xJTkspICAmJiAgIWRlZmluZWQoSlNPTl9ETExf
QlVJTEQpICAmJiAgIWRlZmluZWQoSlNPTl9JTl9DUFBUTCkKLSMgIGRlZmluZSBDUFBUTF9BVVRP
TElOS19OQU1FICJqc29uIgotIyAgdW5kZWYgQ1BQVExfQVVUT0xJTktfRExMCi0jICBpZmRlZiBK
U09OX0RMTAotIyAgIGRlZmluZSBDUFBUTF9BVVRPTElOS19ETEwKLSMgIGVuZGlmCi0jICBpbmNs
dWRlICJhdXRvbGluay5oIgotIyBlbmRpZgorI2lmICFkZWZpbmVkKEpTT05fTk9fQVVUT0xJTksp
ICYmICFkZWZpbmVkKEpTT05fRExMX0JVSUxEKSAmJiAgICAgICAgICAgICAgICAgIFwKKyAgICAh
ZGVmaW5lZChKU09OX0lOX0NQUFRMKQorI2RlZmluZSBDUFBUTF9BVVRPTElOS19OQU1FICJqc29u
IgorI3VuZGVmIENQUFRMX0FVVE9MSU5LX0RMTAorI2lmZGVmIEpTT05fRExMCisjZGVmaW5lIENQ
UFRMX0FVVE9MSU5LX0RMTAorI2VuZGlmCisjaW5jbHVkZSAiYXV0b2xpbmsuaCIKKyNlbmRpZgog
CiAjZW5kaWYgLy8gSlNPTl9BVVRPTElOS19IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2lu
Y2x1ZGUvanNvbi9jb25maWcuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2NvbmZpZy5oCmluZGV4IDcy
NDM3YzRiYzhjNzg4N2QzOGNhMWE1ZDQ0MmQ3OTU5NjZkMTVlZDguLjg3MjRhZDk1YTBlODMyZjYy
NWQwMjYzNWE4NjgxNmMzYTI2OTVlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2Nv
bmZpZy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2NvbmZpZy5oCkBAIC0xLDk4ICsxLDE4MCBA
QAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdo
dCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAv
LyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNp
cmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxl
IExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC9MSUNFTlNFCiAKICNpZm5kZWYgSlNPTl9DT05GSUdfSF9JTkNMVURFRAotIyBkZWZpbmUg
SlNPTl9DT05GSUdfSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0NPTkZJR19IX0lOQ0xVREVECisj
aW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPGlzdHJlYW0+
CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG9zdHJlYW0+CisjaW5jbHVkZSA8c3N0cmVh
bT4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAKIC8vLyBJZiBk
ZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIGxpYnJhcnkgaXMgZW1iZWRkZWQgaW4gQ3BwVEwg
bGlicmFyeS4KIC8vIyBkZWZpbmUgSlNPTl9JTl9DUFBUTCAxCiAKIC8vLyBJZiBkZWZpbmVkLCBp
bmRpY2F0ZXMgdGhhdCBqc29uIG1heSBsZXZlcmFnZSBDcHBUTCBsaWJyYXJ5CiAvLyMgIGRlZmlu
ZSBKU09OX1VTRV9DUFBUTCAxCi0vLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgY3BwdGwg
dmVjdG9yIGJhc2VkIG1hcCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIHN0ZDo6bWFwCisvLy8g
SWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgY3BwdGwgdmVjdG9yIGJhc2VkIG1hcCBzaG91bGQg
YmUgdXNlZCBpbnN0ZWFkIG9mCisvLy8gc3RkOjptYXAKIC8vLyBhcyBWYWx1ZSBjb250YWluZXIu
CiAvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUCAxCi0vLy8gSWYgZGVmaW5lZCwg
aW5kaWNhdGVzIHRoYXQgSnNvbiBzcGVjaWZpYyBjb250YWluZXIgc2hvdWxkIGJlIHVzZWQKLS8v
LyAoaGFzaCB0YWJsZSAmIHNpbXBsZSBkZXF1ZSBjb250YWluZXIgd2l0aCBjdXN0b21pemFibGUg
YWxsb2NhdG9yKS4KLS8vLyBUSElTIEZFQVRVUkUgSVMgU1RJTEwgRVhQRVJJTUVOVEFMISBUaGVy
ZSBpcyBrbm93IGJ1Z3M6IFNlZSAjMzE3NzMzMgotLy8jICBkZWZpbmUgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQIDEKLS8vLyBGb3JjZSB1c2FnZSBvZiBzdGFuZGFyZCBuZXcvbWFsbG9jIGJh
c2VkIGFsbG9jYXRvciBpbnN0ZWFkIG9mIG1lbW9yeSBwb29sIGJhc2VkIGFsbG9jYXRvci4KLS8v
LyBUaGUgbWVtb3J5IHBvb2xzIGFsbG9jYXRvciB1c2VkIG9wdGltaXphdGlvbiAoaW5pdGlhbGl6
aW5nIFZhbHVlIGFuZCBWYWx1ZUludGVybmFsTGluawotLy8vIGFzIGlmIGl0IHdhcyBhIFBPRCkg
dGhhdCBtYXkgY2F1c2Ugc29tZSB2YWxpZGF0aW9uIHRvb2wgdG8gcmVwb3J0IGVycm9ycy4KLS8v
LyBPbmx5IGhhcyBlZmZlY3RzIGlmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUCBpcyBkZWZp
bmVkLgotLy8jICBkZWZpbmUgSlNPTl9VU0VfU0lNUExFX0lOVEVSTkFMX0FMTE9DQVRPUiAxCiAK
IC8vIElmIG5vbi16ZXJvLCB0aGUgbGlicmFyeSB1c2VzIGV4Y2VwdGlvbnMgdG8gcmVwb3J0IGJh
ZCBpbnB1dCBpbnN0ZWFkIG9mIEMKIC8vIGFzc2VydGlvbiBtYWNyb3MuIFRoZSBkZWZhdWx0IGlz
IHRvIHVzZSBleGNlcHRpb25zLgotIyBpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0jIGRlZmlu
ZSBKU09OX1VTRV9FWENFUFRJT04gMQotIyBlbmRpZgorI2lmbmRlZiBKU09OX1VTRV9FWENFUFRJ
T04KKyNkZWZpbmUgSlNPTl9VU0VfRVhDRVBUSU9OIDEKKyNlbmRpZgorCisvLyBUZW1wb3Jhcnks
IHRyYWNrZWQgZm9yIHJlbW92YWwgd2l0aCBpc3N1ZSAjOTgyLgorI2lmbmRlZiBKU09OX1VTRV9O
VUxMUkVGCisjZGVmaW5lIEpTT05fVVNFX05VTExSRUYgMQorI2VuZGlmCiAKLS8vLyBJZiBkZWZp
bmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVkCisvLy8gSWYg
ZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYW1hdGVkCiAv
Ly8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCi0vLy8gUmVtYXJrczogaXQg
aXMgYXV0b21hdGljYWxseSBkZWZpbmVkIGluIHRoZSBnZW5lcmF0ZWQgYW1hbGdhdGVkIGhlYWRl
ci4KKy8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5IGRlZmluZWQgaW4gdGhlIGdlbmVy
YXRlZCBhbWFsZ2FtYXRlZCBoZWFkZXIuCiAvLyAjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9O
CiAKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvY29uZmlnLmg+CisjaWZu
ZGVmIEpTT05fVVNFX0NQUFRMCisjZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKyNlbmRpZgorI2Vu
ZGlmCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjZGVmaW5lIEpTT05fQVBJIENQUFRMX0FQSQor
I2VsaWYgZGVmaW5lZChKU09OX0RMTF9CVUlMRCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSB8fCBk
ZWZpbmVkKF9fTUlOR1czMl9fKQorI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9y
dCkKKyNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VsaWYg
ZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX2NsYW5nX18pCisjZGVmaW5lIEpTT05fQVBJ
IF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisjZW5kaWYgLy8gaWYgZGVm
aW5lZChfTVNDX1ZFUikKKyNlbGlmIGRlZmluZWQoSlNPTl9ETEwpCisjaWYgZGVmaW5lZChfTVND
X1ZFUikgfHwgZGVmaW5lZChfX01JTkdXMzJfXykKKyNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3Bl
YyhkbGxpbXBvcnQpCisjZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5J
TkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VuZGlmIC8vIGlmZGVmIEpTT05f
SU5fQ1BQVEwKKyNpZiAhZGVmaW5lZChKU09OX0FQSSkKKyNkZWZpbmUgSlNPTl9BUEkKKyNlbmRp
ZgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxODAwCisjZXJyb3IgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICJFUlJPUjogIFZpc3VhbCBTdHVkaW8gMTIgKDIwMTMpIHdpdGgg
X01TQ19WRVI9MTgwMCBpcyB0aGUgb2xkZXN0IHN1cHBvcnRlZCBjb21waWxlciB3aXRoIHN1ZmZp
Y2llbnQgQysrMTEgY2FwYWJpbGl0aWVzIgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVS
KSAmJiBfTVNDX1ZFUiA8IDE5MDAKKy8vIEFzIHJlY29tbWVuZGVkIGF0CisvLyBodHRwczovL3N0
YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yOTE1NjcyL3NucHJpbnRmLWFuZC12aXN1YWwtc3R1
ZGlvLTIwMTAKK2V4dGVybiBKU09OX0FQSSBpbnQKK21zdmNfcHJlMTkwMF9jOTlfc25wcmludGYo
Y2hhciogb3V0QnVmLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pOworI2Rl
ZmluZSBqc29uY3BwX3NucHJpbnRmIG1zdmNfcHJlMTkwMF9jOTlfc25wcmludGYKKyNlbHNlCisj
ZGVmaW5lIGpzb25jcHBfc25wcmludGYgc3RkOjpzbnByaW50ZgorI2VuZGlmCiAKLSMgaWZkZWYg
SlNPTl9JTl9DUFBUTAotIyAgaW5jbHVkZSA8Y3BwdGwvY29uZmlnLmg+Ci0jICBpZm5kZWYgSlNP
Tl9VU0VfQ1BQVEwKLSMgICBkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQotIyAgZW5kaWYKLSMgZW5k
aWYKLQotIyBpZmRlZiBKU09OX0lOX0NQUFRMCi0jICBkZWZpbmUgSlNPTl9BUEkgQ1BQVExfQVBJ
Ci0jIGVsaWYgZGVmaW5lZChKU09OX0RMTF9CVUlMRCkKLSMgIGRlZmluZSBKU09OX0FQSSBfX2Rl
Y2xzcGVjKGRsbGV4cG9ydCkKLSMgZWxpZiBkZWZpbmVkKEpTT05fRExMKQotIyAgZGVmaW5lIEpT
T05fQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQotIyBlbHNlCi0jICBkZWZpbmUgSlNPTl9BUEkK
LSMgZW5kaWYKLQotLy8gSWYgSlNPTl9OT19JTlQ2NCBpcyBkZWZpbmVkLCB0aGVuIEpzb24gb25s
eSBzdXBwb3J0IEMrKyAiaW50IiB0eXBlIGZvciBpbnRlZ2VyCisvLyBJZiBKU09OX05PX0lOVDY0
IGlzIGRlZmluZWQsIHRoZW4gSnNvbiBvbmx5IHN1cHBvcnQgQysrICJpbnQiIHR5cGUgZm9yCisv
LyBpbnRlZ2VyCiAvLyBTdG9yYWdlcywgYW5kIDY0IGJpdHMgaW50ZWdlciBzdXBwb3J0IGlzIGRp
c2FibGVkLgogLy8gI2RlZmluZSBKU09OX05PX0lOVDY0IDEKIAotI2lmIGRlZmluZWQoX01TQ19W
RVIpICAmJiAgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKLS8vIE1pY3Jvc29mdCBWaXN1YWwg
U3R1ZGlvIDYgb25seSBzdXBwb3J0IGNvbnZlcnNpb24gZnJvbSBfX2ludDY0IHRvIGRvdWJsZQot
Ly8gKG5vIGNvbnZlcnNpb24gZnJvbSB1bnNpZ25lZCBfX2ludDY0KS4KLSNkZWZpbmUgSlNPTl9V
U0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQotI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19W
RVIpICAmJiAgX01TQ19WRVIgPCAxMjAwIC8vIE1TVkMgNgorLy8gSlNPTkNQUF9PVkVSUklERSBp
cyBtYWludGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvZiBleHRlcm5hbCB0b29s
cy4KKy8vIEMrKzExIHNob3VsZCBiZSB1c2VkIGRpcmVjdGx5IGluIEpTT05DUFAuCisjZGVmaW5l
IEpTT05DUFBfT1ZFUlJJREUgb3ZlcnJpZGUKKworI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wK
KyNkZWZpbmUgSlNPTkNQUF9OT0VYQ0VQVCBub2V4Y2VwdAorI2RlZmluZSBKU09OQ1BQX09QX0VY
UExJQ0lUIGV4cGxpY2l0CisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE5
MDAKKyNkZWZpbmUgSlNPTkNQUF9OT0VYQ0VQVCB0aHJvdygpCisjZGVmaW5lIEpTT05DUFBfT1Bf
RVhQTElDSVQgZXhwbGljaXQKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49
IDE5MDAKKyNkZWZpbmUgSlNPTkNQUF9OT0VYQ0VQVCBub2V4Y2VwdAorI2RlZmluZSBKU09OQ1BQ
X09QX0VYUExJQ0lUIGV4cGxpY2l0CisjZWxzZQorI2RlZmluZSBKU09OQ1BQX05PRVhDRVBUIHRo
cm93KCkKKyNkZWZpbmUgSlNPTkNQUF9PUF9FWFBMSUNJVAorI2VuZGlmCiAKLSNpZiBkZWZpbmVk
KF9NU0NfVkVSKSAgJiYgIF9NU0NfVkVSID49IDE1MDAgLy8gTVNWQyAyMDA4Ci0vLy8gSW5kaWNh
dGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgotIyBkZWZpbmUg
SlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNzYWdl
KSkKKyNpZmRlZiBfX2NsYW5nX18KKyNpZiBfX2hhc19leHRlbnNpb24oYXR0cmlidXRlX2RlcHJl
Y2F0ZWRfd2l0aF9tZXNzYWdlKQorI2RlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkg
X19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZChtZXNzYWdlKSkpCiAjZW5kaWYKKyNlbGlmIGRlZmlu
ZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11
bGF0ZXMgZ2NjKQorI2lmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVD
X01JTk9SX18gPj0gNSkpCisjZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSBfX2F0
dHJpYnV0ZV9fKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyNlbGlmIChfX0dOVUNfXyA+IDMgfHwg
KF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMSkpCisjZGVmaW5lIEpTT05DUFBf
REVQUkVDQVRFRChtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXykpCisjZW5k
aWYgICAgICAgICAgICAgICAgICAvLyBHTlVDIHZlcnNpb24KKyNlbGlmIGRlZmluZWQoX01TQ19W
RVIpIC8vIE1TVkMgKGFmdGVyIGNsYW5nIGJlY2F1c2UgY2xhbmcgb24gV2luZG93cyBlbXVsYXRl
cworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTVNWQykKKyNkZWZpbmUgSlNPTkNQUF9ERVBS
RUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNzYWdlKSkKKyNlbmRpZiAv
LyBfX2NsYW5nX18gfHwgX19HTlVDX18gfHwgX01TQ19WRVIKIAogI2lmICFkZWZpbmVkKEpTT05D
UFBfREVQUkVDQVRFRCkKLSMgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKQorI2Rl
ZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkKICNlbmRpZiAvLyBpZiAhZGVmaW5lZChK
U09OQ1BQX0RFUFJFQ0FURUQpCiAKKyNpZiBfX0dOVUNfXyA+PSA2CisjZGVmaW5lIEpTT05fVVNF
X0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSlNPTl9J
U19BTUFMR0FNQVRJT04pCisKKyNpbmNsdWRlICJhbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJ2ZXJz
aW9uLmgiCisKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKwog
bmFtZXNwYWNlIEpzb24gewotICAgdHlwZWRlZiBpbnQgSW50OwotICAgdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgVUludDsKLSMgaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICAgdHlwZWRlZiBpbnQg
TGFyZ2VzdEludDsKLSAgIHR5cGVkZWYgdW5zaWduZWQgaW50IExhcmdlc3RVSW50OwotIyAgdW5k
ZWYgSlNPTl9IQVNfSU5UNjQKLSMgZWxzZSAvLyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCi0g
ICAvLyBGb3IgTWljcm9zb2Z0IFZpc3VhbCB1c2Ugc3BlY2lmaWMgdHlwZXMgYXMgbG9uZyBsb25n
IGlzIG5vdCBzdXBwb3J0ZWQKLSMgIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBW
aXN1YWwgU3R1ZGlvCi0gICB0eXBlZGVmIF9faW50NjQgSW50NjQ7Ci0gICB0eXBlZGVmIHVuc2ln
bmVkIF9faW50NjQgVUludDY0OwotIyAgZWxzZSAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBP
dGhlciBwbGF0Zm9ybXMsIHVzZSBsb25nIGxvbmcKLSAgIHR5cGVkZWYgbG9uZyBsb25nIGludCBJ
bnQ2NDsKLSAgIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBVSW50NjQ7Ci0jICBlbmRp
ZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQotICAgdHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50Owot
ICAgdHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJbnQ7Ci0jICBkZWZpbmUgSlNPTl9IQVNfSU5UNjQK
LSMgZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotfSAvLyBlbmQgbmFtZXNwYWNl
IEpzb24KK3R5cGVkZWYgaW50IEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFVJbnQ7CisjaWYg
ZGVmaW5lZChKU09OX05PX0lOVDY0KQordHlwZWRlZiBpbnQgTGFyZ2VzdEludDsKK3R5cGVkZWYg
dW5zaWduZWQgaW50IExhcmdlc3RVSW50OworI3VuZGVmIEpTT05fSEFTX0lOVDY0CisjZWxzZSAg
ICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorLy8gRm9yIE1pY3Jv
c29mdCBWaXN1YWwgdXNlIHNwZWNpZmljIHR5cGVzIGFzIGxvbmcgbG9uZyBpcyBub3Qgc3VwcG9y
dGVkCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KK3R5
cGVkZWYgX19pbnQ2NCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBVSW50NjQ7Cisj
ZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gT3RoZXIgcGxh
dGZvcm1zLCB1c2UgbG9uZyBsb25nCit0eXBlZGVmIGludDY0X3QgSW50NjQ7Cit0eXBlZGVmIHVp
bnQ2NF90IFVJbnQ2NDsKKyNlbmRpZiAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKF9NU0Nf
VkVSKQordHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwordHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJ
bnQ7CisjZGVmaW5lIEpTT05fSEFTX0lOVDY0CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIEFsbG9jYXRvciA9IHR5cGVu
YW1lIHN0ZDo6Y29uZGl0aW9uYWw8SlNPTkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cmVBbGxvY2F0b3I8VD4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6YWxsb2Nh
dG9yPFQ+Pjo6dHlwZTsKK3VzaW5nIFN0cmluZyA9IHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0
ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIEFsbG9jYXRvcjxjaGFyPj47Cit1c2luZyBJU3RyaW5nU3Ry
ZWFtID0gc3RkOjpiYXNpY19pc3RyaW5nc3RyZWFtPFN0cmluZzo6dmFsdWVfdHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOjp0cmFpdHNf
dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nOjphbGxvY2F0b3JfdHlwZT47Cit1c2luZyBPU3RyaW5nU3RyZWFtID0gc3RkOjpiYXNpY19v
c3RyaW5nc3RyZWFtPFN0cmluZzo6dmFsdWVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOjp0cmFpdHNfdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOjphbGxvY2F0b3JfdHlw
ZT47Cit1c2luZyBJU3RyZWFtID0gc3RkOjppc3RyZWFtOwordXNpbmcgT1N0cmVhbSA9IHN0ZDo6
b3N0cmVhbTsKK30gLy8gbmFtZXNwYWNlIEpzb24KIAorLy8gTGVnYWN5IG5hbWVzIChmb3JtZXJs
eSBtYWNyb3MpLgordXNpbmcgSlNPTkNQUF9TVFJJTkcgPSBKc29uOjpTdHJpbmc7Cit1c2luZyBK
U09OQ1BQX0lTVFJJTkdTVFJFQU0gPSBKc29uOjpJU3RyaW5nU3RyZWFtOwordXNpbmcgSlNPTkNQ
UF9PU1RSSU5HU1RSRUFNID0gSnNvbjo6T1N0cmluZ1N0cmVhbTsKK3VzaW5nIEpTT05DUFBfSVNU
UkVBTSA9IEpzb246OklTdHJlYW07Cit1c2luZyBKU09OQ1BQX09TVFJFQU0gPSBKc29uOjpPU3Ry
ZWFtOwogCiAjZW5kaWYgLy8gSlNPTl9DT05GSUdfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9pbmNsdWRlL2pzb24vZmVhdHVyZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgK
aW5kZXggNDM1MzI3ODQ0NmQ3ZjllYjFmZmRjZWY0YmY2ZjUxZGM1ZjY0NWY4OC4uYmEyNWU4ZGE2
NDZhMDQzZjFjODk3NGZhYmU2MjA1Njc3NDMzNmY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRl
L2pzb24vZmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9mZWF0dXJlcy5oCkBAIC0x
LDQ5ICsxLDYxIEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgor
Ly8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3Bw
IEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgog
Ly8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAu
c291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmbmRlZiBDUFBUTF9KU09OX0ZFQVRVUkVTX0hf
SU5DTFVERUQKLSMgZGVmaW5lIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAorI2RlZmlu
ZSBDUFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKIAogI2lmICFkZWZpbmVkKEpTT05fSVNf
QU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlICJmb3J3YXJkcy5oIgorI2luY2x1ZGUgImZvcndhcmRz
LmgiCiAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCiAKKyNwcmFn
bWEgcGFjayhwdXNoLCA4KQorCiBuYW1lc3BhY2UgSnNvbiB7CiAKLSAgIC8qKiBcYnJpZWYgQ29u
ZmlndXJhdGlvbiBwYXNzZWQgdG8gcmVhZGVyIGFuZCB3cml0ZXIuCi0gICAgKiBUaGlzIGNvbmZp
Z3VyYXRpb24gb2JqZWN0IGNhbiBiZSB1c2VkIHRvIGZvcmNlIHRoZSBSZWFkZXIgb3IgV3JpdGVy
Ci0gICAgKiB0byBiZWhhdmUgaW4gYSBzdGFuZGFyZCBjb25mb3JtaW5nIHdheS4KLSAgICAqLwot
ICAgY2xhc3MgSlNPTl9BUEkgRmVhdHVyZXMKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIC8qKiBc
YnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1l
cyBhbGwgc3RyaW5ncyBhcmUgVVRGLTguCi0gICAgICAgKiAtIEMgJiBDKysgY29tbWVudHMgYXJl
IGFsbG93ZWQKLSAgICAgICAqIC0gUm9vdCBvYmplY3QgY2FuIGJlIGFueSBKU09OIHZhbHVlCi0g
ICAgICAgKiAtIEFzc3VtZXMgVmFsdWUgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAotICAg
ICAgICovCi0gICAgICBzdGF0aWMgRmVhdHVyZXMgYWxsKCk7Ci0KLSAgICAgIC8qKiBcYnJpZWYg
QSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBKU09O
IHNwZWNpZmljYXRpb24uCi0gICAgICAgKiAtIENvbW1lbnRzIGFyZSBmb3JiaWRkZW4uCi0gICAg
ICAgKiAtIFJvb3Qgb2JqZWN0IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2
YWx1ZS4KLSAgICAgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBlbmNvZGVkIGluIFVU
Ri04Ci0gICAgICAgKi8KLSAgICAgIHN0YXRpYyBGZWF0dXJlcyBzdHJpY3RNb2RlKCk7Ci0KLSAg
ICAgIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBsaWtlIEpzb25Db25m
aWc6OmFsbEZlYXR1cmVzOwotICAgICAgICovCi0gICAgICBGZWF0dXJlcygpOwotCi0gICAgICAv
Ly8gXGMgdHJ1ZSBpZiBjb21tZW50cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KLSAg
ICAgIGJvb2wgYWxsb3dDb21tZW50c187Ci0KLSAgICAgIC8vLyBcYyB0cnVlIGlmIHJvb3QgbXVz
dCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiBEZWZhdWx0OiBcYyBmYWxz
ZS4KLSAgICAgIGJvb2wgc3RyaWN0Um9vdF87Ci0gICB9OworLyoqIFxicmllZiBDb25maWd1cmF0
aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KKyAqIFRoaXMgY29uZmlndXJhdGlvbiBv
YmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRlciBvciBXcml0ZXIKKyAqIHRvIGJl
aGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5LgorICovCitjbGFzcyBKU09OX0FQSSBG
ZWF0dXJlcyB7CitwdWJsaWM6CisgIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgYWxs
b3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3RyaW5ncworICAgKiBhcmUgVVRGLTgu
CisgICAqIC0gQyAmIEMrKyBjb21tZW50cyBhcmUgYWxsb3dlZAorICAgKiAtIFJvb3Qgb2JqZWN0
IGNhbiBiZSBhbnkgSlNPTiB2YWx1ZQorICAgKiAtIEFzc3VtZXMgVmFsdWUgc3RyaW5ncyBhcmUg
ZW5jb2RlZCBpbiBVVEYtOAorICAgKi8KKyAgc3RhdGljIEZlYXR1cmVzIGFsbCgpOworCisgIC8q
KiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkgY29tcGF0aWJsZSB3aXRo
IHRoZSBKU09OCisgICAqIHNwZWNpZmljYXRpb24uCisgICAqIC0gQ29tbWVudHMgYXJlIGZvcmJp
ZGRlbi4KKyAgICogLSBSb290IG9iamVjdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBv
YmplY3QgdmFsdWUuCisgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBlbmNvZGVkIGlu
IFVURi04CisgICAqLworICBzdGF0aWMgRmVhdHVyZXMgc3RyaWN0TW9kZSgpOworCisgIC8qKiBc
YnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBsaWtlIEpzb25Db25maWc6OmFsbEZl
YXR1cmVzOworICAgKi8KKyAgRmVhdHVyZXMoKTsKKworICAvLy8gXGMgdHJ1ZSBpZiBjb21tZW50
cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KKyAgYm9vbCBhbGxvd0NvbW1lbnRzX3t0
cnVlfTsKKworICAvLy8gXGMgdHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9y
IGFuIG9iamVjdCB2YWx1ZS4gRGVmYXVsdDogXGMKKyAgLy8vIGZhbHNlLgorICBib29sIHN0cmlj
dFJvb3Rfe2ZhbHNlfTsKKworICAvLy8gXGMgdHJ1ZSBpZiBkcm9wcGVkIG51bGwgcGxhY2Vob2xk
ZXJzIGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyBmYWxzZS4KKyAgYm9vbCBhbGxvd0Ryb3BwZWRO
dWxsUGxhY2Vob2xkZXJzX3tmYWxzZX07CisKKyAgLy8vIFxjIHRydWUgaWYgbnVtZXJpYyBvYmpl
Y3Qga2V5IGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyBmYWxzZS4KKyAgYm9vbCBhbGxvd051bWVy
aWNLZXlzX3tmYWxzZX07Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBKc29uCiAKKyNwcmFnbWEgcGFj
ayhwb3ApCisKICNlbmRpZiAvLyBDUFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2ZvcndhcmRzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9m
b3J3YXJkcy5oCmluZGV4IGFiODYzZGE4NTNiZThhMDA4ODUzYzhjZmZiZTAyNGZhYWQxMWYxZmQu
Ljk1OGI1YmNjODAzNDhhMmIyNzc1ZmY4NWZmNjUxMjU2YzM4MTZlNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vZm9yd2Fy
ZHMuaApAQCAtMSw0NCArMSw0MyBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBU
aGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3Ig
cHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlz
ZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6
Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKICNpZm5kZWYgSlNPTl9GT1JXQVJE
U19IX0lOQ0xVREVECi0jIGRlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKyNkZWZpbmUg
SlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECiAKICNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1B
VElPTikKLSMgaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiY29uZmlnLmgiCiAjZW5kaWYg
Ly8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCiAKIG5hbWVzcGFjZSBKc29uIHsK
IAotICAgLy8gd3JpdGVyLmgKLSAgIGNsYXNzIEZhc3RXcml0ZXI7Ci0gICBjbGFzcyBTdHlsZWRX
cml0ZXI7Ci0KLSAgIC8vIHJlYWRlci5oCi0gICBjbGFzcyBSZWFkZXI7Ci0KLSAgIC8vIGZlYXR1
cmVzLmgKLSAgIGNsYXNzIEZlYXR1cmVzOwotCi0gICAvLyB2YWx1ZS5oCi0gICB0eXBlZGVmIHVu
c2lnbmVkIGludCBBcnJheUluZGV4OwotICAgY2xhc3MgU3RhdGljU3RyaW5nOwotICAgY2xhc3Mg
UGF0aDsKLSAgIGNsYXNzIFBhdGhBcmd1bWVudDsKLSAgIGNsYXNzIFZhbHVlOwotICAgY2xhc3Mg
VmFsdWVJdGVyYXRvckJhc2U7Ci0gICBjbGFzcyBWYWx1ZUl0ZXJhdG9yOwotICAgY2xhc3MgVmFs
dWVDb25zdEl0ZXJhdG9yOwotI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAg
Y2xhc3MgVmFsdWVNYXBBbGxvY2F0b3I7Ci0gICBjbGFzcyBWYWx1ZUludGVybmFsTGluazsKLSAg
IGNsYXNzIFZhbHVlSW50ZXJuYWxBcnJheTsKLSAgIGNsYXNzIFZhbHVlSW50ZXJuYWxNYXA7Ci0j
ZW5kaWYgLy8gI2lmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAorLy8gd3JpdGVyLmgK
K2NsYXNzIFN0cmVhbVdyaXRlcjsKK2NsYXNzIFN0cmVhbVdyaXRlckJ1aWxkZXI7CitjbGFzcyBX
cml0ZXI7CitjbGFzcyBGYXN0V3JpdGVyOworY2xhc3MgU3R5bGVkV3JpdGVyOworY2xhc3MgU3R5
bGVkU3RyZWFtV3JpdGVyOworCisvLyByZWFkZXIuaAorY2xhc3MgUmVhZGVyOworY2xhc3MgQ2hh
clJlYWRlcjsKK2NsYXNzIENoYXJSZWFkZXJCdWlsZGVyOworCisvLyBmZWF0dXJlcy5oCitjbGFz
cyBGZWF0dXJlczsKKworLy8gdmFsdWUuaAordHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJbmRl
eDsKK2NsYXNzIFN0YXRpY1N0cmluZzsKK2NsYXNzIFBhdGg7CitjbGFzcyBQYXRoQXJndW1lbnQ7
CitjbGFzcyBWYWx1ZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOworY2xhc3MgVmFsdWVJdGVy
YXRvcjsKK2NsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKIAogfSAvLyBuYW1lc3BhY2UgSnNvbgog
Ci0KICNlbmRpZiAvLyBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
aW5jbHVkZS9qc29uL2pzb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL2pzb24uaAppbmRleCBkYTVm
Yzk2N2ViMjFhMGI3MjUzNGIzNDgzNWFlYTY2Y2I3NjM1YzYzLi4xOWYxNGMyNjY0YTZmZGZjZDcx
MmE1ODdhMDliZWI4ZDEyMDcwMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9qc29u
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vanNvbi5oCkBAIC0xLDE1ICsxLDE1IEBACi0vLyBD
b3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDct
MjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
CiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKIAogI2lmbmRlZiBKU09OX0pTT05fSF9JTkNMVURFRAotIyBkZWZpbmUgSlNPTl9KU09O
X0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9KU09OX0hfSU5DTFVERUQKIAotIyBpbmNsdWRlICJh
dXRvbGluay5oIgotIyBpbmNsdWRlICJ2YWx1ZS5oIgotIyBpbmNsdWRlICJyZWFkZXIuaCIKLSMg
aW5jbHVkZSAid3JpdGVyLmgiCi0jIGluY2x1ZGUgImZlYXR1cmVzLmgiCisjaW5jbHVkZSAiYXV0
b2xpbmsuaCIKKyNpbmNsdWRlICJmZWF0dXJlcy5oIgorI2luY2x1ZGUgInJlYWRlci5oIgorI2lu
Y2x1ZGUgInZhbHVlLmgiCisjaW5jbHVkZSAid3JpdGVyLmgiCiAKICNlbmRpZiAvLyBKU09OX0pT
T05fSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vcmVhZGVyLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL2luY2x1ZGUvanNvbi9yZWFkZXIuaAppbmRleCBhMzAyM2IzMWY1ZmU3Mjk5ZTlhZDgzMjg4
Y2ExNzc3OGMzMzYyNTc4Li4wZjQ4OWQ2YWRiMWIwN2Q5OWQ4YmY3OWFiYTgzYWYzMDEyYTAyN2Uz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL2luY2x1ZGUvanNvbi9yZWFkZXIuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL2luY2x1
ZGUvanNvbi9yZWFkZXIuaApAQCAtMSwyMTMgKzEsNDE3IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0y
MDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1J
VCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVk
IGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2lmbmRl
ZiBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECi0jIGRlZmluZSBDUFBUTF9KU09OX1JFQURF
Ul9IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKIAogI2lm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlICJmZWF0dXJlcy5oIgot
IyBpbmNsdWRlICJ2YWx1ZS5oIgorI2luY2x1ZGUgImZlYXR1cmVzLmgiCisjaW5jbHVkZSAidmFs
dWUuaCIKICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5j
bHVkZSA8ZGVxdWU+Ci0jIGluY2x1ZGUgPHN0YWNrPgotIyBpbmNsdWRlIDxzdHJpbmc+CisjaW5j
bHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8aW9zZndkPgorI2luY2x1ZGUgPGlzdHJlYW0+CisjaW5j
bHVkZSA8c3RhY2s+CisjaW5jbHVkZSA8c3RyaW5nPgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQy
NTE6IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8K
Ky8vIGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJG
QUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNh
YmxlIDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5U
RVJGQUNFX1dBUk5JTkcpCisKKyNwcmFnbWEgcGFjayhwdXNoLCA4KQogCiBuYW1lc3BhY2UgSnNv
biB7CiAKLSAgIC8qKiBcYnJpZWYgVW5zZXJpYWxpemUgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpz
b24ub3JnIj5KU09OPC9hPiBkb2N1bWVudCBpbnRvIGEgVmFsdWUuCi0gICAgKgorLyoqIFxicmll
ZiBVbnNlcmlhbGl6ZSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGRv
Y3VtZW50IGludG8gYQorICpWYWx1ZS4KKyAqCisgKiBcZGVwcmVjYXRlZCBVc2UgQ2hhclJlYWRl
ciBhbmQgQ2hhclJlYWRlckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIFJlYWRlciB7Citw
dWJsaWM6CisgIHR5cGVkZWYgY2hhciBDaGFyOworICB0eXBlZGVmIGNvbnN0IENoYXIqIExvY2F0
aW9uOworCisgIC8qKiBcYnJpZWYgQW4gZXJyb3IgdGFnZ2VkIHdpdGggd2hlcmUgaW4gdGhlIEpT
T04gdGV4dCBpdCB3YXMgZW5jb3VudGVyZWQuCisgICAqCisgICAqIFRoZSBvZmZzZXRzIGdpdmUg
dGhlIFtzdGFydCwgbGltaXQpIHJhbmdlIG9mIGJ5dGVzIHdpdGhpbiB0aGUgdGV4dC4gTm90ZQor
ICAgKiB0aGF0IHRoaXMgaXMgYnl0ZXMsIG5vdCBjb2RlcG9pbnRzLgorICAgKgorICAgKi8KKyAg
c3RydWN0IFN0cnVjdHVyZWRFcnJvciB7CisgICAgcHRyZGlmZl90IG9mZnNldF9zdGFydDsKKyAg
ICBwdHJkaWZmX3Qgb2Zmc2V0X2xpbWl0OworICAgIFN0cmluZyBtZXNzYWdlOworICB9OworCisg
IC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxvd2luZyBhbGwgZmVhdHVyZXMKKyAg
ICogZm9yIHBhcnNpbmcuCisgICAqLworICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBDaGFyUmVh
ZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRlciBpbnN0ZWFkIikKKyAgUmVhZGVyKCk7CisKKyAgLyoq
IFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5nIHRoZSBzcGVjaWZpZWQgZmVhdHVy
ZSBzZXQKKyAgICogZm9yIHBhcnNpbmcuCisgICAqLworICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVz
ZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVyQnVpbGRlciBpbnN0ZWFkIikKKyAgUmVhZGVyKGNv
bnN0IEZlYXR1cmVzJiBmZWF0dXJlcyk7CisKKyAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJv
bSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+CisgICAqIGRvY3VtZW50
LgorICAgKiBccGFyYW0gZG9jdW1lbnQgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0
aGUgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogXHBhcmFtIHJvb3QgW291dF0gQ29udGFpbnMgdGhl
IHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcworICAgKiAgICAgICAgICAgICBz
dWNjZXNzZnVsbHkgcGFyc2VkLgorICAgKiBccGFyYW0gY29sbGVjdENvbW1lbnRzIFxjIHRydWUg
dG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgICogYmFjayBkdXJp
bmcKKyAgICogICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemF0aW9uLCBcYyBmYWxzZSB0
byBkaXNjYXJkIGNvbW1lbnRzLgorICAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcGFy
YW1ldGVyIGlzIGlnbm9yZWQgaWYKKyAgICogRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCisgICAq
ICAgICAgICAgICAgICAgICAgICAgICAgaXMgXGMgZmFsc2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1
ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFu
CisgICAqIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgYm9vbAorICBwYXJzZShjb25zdCBzdGQ6
OnN0cmluZyYgZG9jdW1lbnQsIFZhbHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRy
dWUpOworCisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8YSBIUkVGPSJodHRwOi8v
d3d3Lmpzb24ub3JnIj5KU09OPC9hPgorICAgZG9jdW1lbnQuCisgICAqIFxwYXJhbSBiZWdpbkRv
YyBQb2ludGVyIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9m
IHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogXHBhcmFtIGVuZERvYyBQb2ludGVyIG9u
IHRoZSBlbmQgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQg
dG8gcmVhZC4KKyAgICogICAgICAgICAgICAgICBNdXN0IGJlID49IGJlZ2luRG9jLgorICAgKiBc
cGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQg
aWYgaXQgd2FzCisgICAqICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxw
YXJhbSBjb2xsZWN0Q29tbWVudHMgXGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93
IHdyaXRpbmcgdGhlbQorICAgYmFjayBkdXJpbmcKKyAgICogICAgICAgICAgICAgICAgICAgICAg
ICBzZXJpYWxpemF0aW9uLCBcYyBmYWxzZSB0byBkaXNjYXJkIGNvbW1lbnRzLgorICAgKiAgICAg
ICAgICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYKKyAgIEZlYXR1
cmVzOjphbGxvd0NvbW1lbnRzXworICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGlzIFxjIGZh
bHNlLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNzZnVs
bHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgorICAgZXJyb3Igb2NjdXJyZWQuCisgICAqLworICBi
b29sIHBhcnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IGVuZERvYywKKyAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICBib29sIGNv
bGxlY3RDb21tZW50cyA9IHRydWUpOworCisgIC8vLyBcYnJpZWYgUGFyc2UgZnJvbSBpbnB1dCBz
dHJlYW0uCisgIC8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiwgSnNvbjo6
VmFsdWUmKS4KKyAgYm9vbCBwYXJzZShJU3RyZWFtJiBpcywgVmFsdWUmIHJvb3QsIGJvb2wgY29s
bGVjdENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmll
bmRseSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3VtZW50
LgorICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2Yg
ZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUgcGFy
c2VkIGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKKyAg
ICogb2NjdXJyZWQKKyAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICogXGRlcHJlY2F0
ZWQgVXNlIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBpbnN0ZWFkICh0eXBvIGZpeCkuCisg
ICAqLworICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2Vz
KCkgaW5zdGVhZC4iKQorICBTdHJpbmcgZ2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7
CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmllbmRseSBzdHJpbmcgdGhhdCBsaXN0
IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3VtZW50LgorICAgKiBccmV0dXJuIEZvcm1h
dHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJyb3JzIHdpdGggdGhlaXIgbG9j
YXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUgcGFyc2VkIGRvY3VtZW50LiBBbiBlbXB0
eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKKyAgICogb2NjdXJyZWQKKyAgICogICAg
ICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICovCisgIFN0cmluZyBnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdmVjdG9yIG9mIHN0cnVj
dHVyZWQgZXJyb3MgZW5jb3VudGVkIHdoaWxlIHBhcnNpbmcuCisgICAqIFxyZXR1cm4gQSAocG9z
c2libHkgZW1wdHkpIHZlY3RvciBvZiBTdHJ1Y3R1cmVkRXJyb3Igb2JqZWN0cy4gQ3VycmVudGx5
CisgICAqICAgICAgICAgb25seSBvbmUgZXJyb3IgY2FuIGJlIHJldHVybmVkLCBidXQgdGhlIGNh
bGxlciBzaG91bGQgdG9sZXJhdGUKKyAgICogbXVsdGlwbGUKKyAgICogICAgICAgICBlcnJvcnMu
ICBUaGlzIGNhbiBvY2N1ciBpZiB0aGUgcGFyc2VyIHJlY292ZXJzIGZyb20gYSBub24tZmF0YWwK
KyAgICogICAgICAgICBwYXJzZSBlcnJvciBhbmQgdGhlbiBlbmNvdW50ZXJzIGFkZGl0aW9uYWwg
ZXJyb3JzLgorICAgKi8KKyAgc3RkOjp2ZWN0b3I8U3RydWN0dXJlZEVycm9yPiBnZXRTdHJ1Y3R1
cmVkRXJyb3JzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBBZGQgYSBzZW1hbnRpYyBlcnJvciBt
ZXNzYWdlLgorICAgKiBccGFyYW0gdmFsdWUgSlNPTiBWYWx1ZSBsb2NhdGlvbiBhc3NvY2lhdGVk
IHdpdGggdGhlIGVycm9yCisgICAqIFxwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLgor
ICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNjZXNzZnVsbHkgYWRkZWQs
IFxjIGZhbHNlIGlmIHRoZQorICAgKiBWYWx1ZSBvZmZzZXQgZXhjZWVkcyB0aGUgZG9jdW1lbnQg
c2l6ZS4KKyAgICovCisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKTsKKworICAvKiogXGJyaWVmIEFkZCBhIHNlbWFudGljIGVycm9yIG1l
c3NhZ2Ugd2l0aCBleHRyYSBjb250ZXh0LgorICAgKiBccGFyYW0gdmFsdWUgSlNPTiBWYWx1ZSBs
b2NhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yCisgICAqIFxwYXJhbSBtZXNzYWdlIFRo
ZSBlcnJvciBtZXNzYWdlLgorICAgKiBccGFyYW0gZXh0cmEgQWRkaXRpb25hbCBKU09OIFZhbHVl
IGxvY2F0aW9uIHRvIGNvbnRleHR1YWxpemUgdGhlIGVycm9yCisgICAqIFxyZXR1cm4gXGMgdHJ1
ZSBpZiB0aGUgZXJyb3Igd2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgZWl0aGVy
CisgICAqIFZhbHVlIG9mZnNldCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgorICAgKi8KKyAg
Ym9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFZhbHVlJiBleHRyYSk7CisKKyAgLyoqIFxicmllZiBSZXR1cm4gd2hldGhlciB0aGVy
ZSBhcmUgYW55IGVycm9ycy4KKyAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZXJlIGFyZSBubyBl
cnJvcnMgdG8gcmVwb3J0IFxjIGZhbHNlIGlmCisgICAqIGVycm9ycyBoYXZlIG9jY3VycmVkLgor
ICAgKi8KKyAgYm9vbCBnb29kKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgIGVudW0gVG9rZW5UeXBl
IHsKKyAgICB0b2tlbkVuZE9mU3RyZWFtID0gMCwKKyAgICB0b2tlbk9iamVjdEJlZ2luLAorICAg
IHRva2VuT2JqZWN0RW5kLAorICAgIHRva2VuQXJyYXlCZWdpbiwKKyAgICB0b2tlbkFycmF5RW5k
LAorICAgIHRva2VuU3RyaW5nLAorICAgIHRva2VuTnVtYmVyLAorICAgIHRva2VuVHJ1ZSwKKyAg
ICB0b2tlbkZhbHNlLAorICAgIHRva2VuTnVsbCwKKyAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAor
ICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAorICAgIHRva2VuQ29tbWVudCwKKyAgICB0b2tlbkVy
cm9yCisgIH07CisKKyAgY2xhc3MgVG9rZW4geworICBwdWJsaWM6CisgICAgVG9rZW5UeXBlIHR5
cGVfOworICAgIExvY2F0aW9uIHN0YXJ0XzsKKyAgICBMb2NhdGlvbiBlbmRfOworICB9OworCisg
IGNsYXNzIEVycm9ySW5mbyB7CisgIHB1YmxpYzoKKyAgICBUb2tlbiB0b2tlbl87CisgICAgU3Ry
aW5nIG1lc3NhZ2VfOworICAgIExvY2F0aW9uIGV4dHJhXzsKKyAgfTsKKworICB0eXBlZGVmIHN0
ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7CisKKyAgYm9vbCByZWFkVG9rZW4oVG9rZW4mIHRv
a2VuKTsKKyAgdm9pZCBza2lwU3BhY2VzKCk7CisgIGJvb2wgbWF0Y2goTG9jYXRpb24gcGF0dGVy
biwgaW50IHBhdHRlcm5MZW5ndGgpOworICBib29sIHJlYWRDb21tZW50KCk7CisgIGJvb2wgcmVh
ZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGJvb2wg
cmVhZFN0cmluZygpOworICB2b2lkIHJlYWROdW1iZXIoKTsKKyAgYm9vbCByZWFkVmFsdWUoKTsK
KyAgYm9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7CisgIGJvb2wgcmVhZEFycmF5KFRva2Vu
JiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVj
b2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOworICBib29sIGRlY29kZVN0
cmluZyhUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIFN0
cmluZyYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbik7CisgIGJv
b2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOworICBib29sIGRl
Y29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQmIHVuaWNvZGUpOworICBib29sIGRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYg
dG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJy
ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7
CisgIGJvb2wgYWRkRXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExv
Y2F0aW9uIGV4dHJhID0gbnVsbHB0cik7CisgIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tlblR5
cGUgc2tpcFVudGlsVG9rZW4pOworICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgdm9p
ZCBza2lwVW50aWxTcGFjZSgpOworICBWYWx1ZSYgY3VycmVudFZhbHVlKCk7CisgIENoYXIgZ2V0
TmV4dENoYXIoKTsKKyAgdm9pZAorICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24g
bG9jYXRpb24sIGludCYgbGluZSwgaW50JiBjb2x1bW4pIGNvbnN0OworICBTdHJpbmcgZ2V0TG9j
YXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRD
b21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxh
Y2VtZW50KTsKKyAgdm9pZCBza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pOworCisgIHN0
YXRpYyBib29sIGNvbnRhaW5zTmV3TGluZShMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kKTsK
KyAgc3RhdGljIFN0cmluZyBub3JtYWxpemVFT0woTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVu
ZCk7CisKKyAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVlKj4gTm9kZXM7CisgIE5vZGVzIG5vZGVz
XzsKKyAgRXJyb3JzIGVycm9yc187CisgIFN0cmluZyBkb2N1bWVudF87CisgIExvY2F0aW9uIGJl
Z2luX3t9OworICBMb2NhdGlvbiBlbmRfe307CisgIExvY2F0aW9uIGN1cnJlbnRfe307CisgIExv
Y2F0aW9uIGxhc3RWYWx1ZUVuZF97fTsKKyAgVmFsdWUqIGxhc3RWYWx1ZV97fTsKKyAgU3RyaW5n
IGNvbW1lbnRzQmVmb3JlXzsKKyAgRmVhdHVyZXMgZmVhdHVyZXNfOworICBib29sIGNvbGxlY3RD
b21tZW50c197fTsKK307IC8vIFJlYWRlcgorCisvKiogSW50ZXJmYWNlIGZvciByZWFkaW5nIEpT
T04gZnJvbSBhIGNoYXIgYXJyYXkuCisgKi8KK2NsYXNzIEpTT05fQVBJIENoYXJSZWFkZXIgewor
cHVibGljOgorICB2aXJ0dWFsIH5DaGFyUmVhZGVyKCkgPSBkZWZhdWx0OworICAvKiogXGJyaWVm
IFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwv
YT4KKyAgIGRvY3VtZW50LgorICAgKiBUaGUgZG9jdW1lbnQgbXVzdCBiZSBhIFVURi04IGVuY29k
ZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50IHRvCisgICByZWFkLgorICAgKgorICAg
KiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBVVEYtOCBl
bmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqIFxwYXJhbSBl
bmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0
aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqICAgICAgICBNdXN0IGJlID49IGJlZ2luRG9j
LgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUg
ZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQu
CisgICAqIFxwYXJhbSBlcnJzIFtvdXRdIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlcyAoaWYgbm90
IE5VTEwpCisgICAqICAgICAgICBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdHMgZXJy
b3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBp
ZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCisg
ICBlcnJvciBvY2N1cnJlZC4KKyAgICovCisgIHZpcnR1YWwgYm9vbCBwYXJzZShjaGFyIGNvbnN0
KiBiZWdpbkRvYywKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgY29uc3QqIGVuZERvYywKKyAg
ICAgICAgICAgICAgICAgICAgIFZhbHVlKiByb290LAorICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nKiBlcnJzKSA9IDA7CisKKyAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7CisgIHB1YmxpYzoK
KyAgICB2aXJ0dWFsIH5GYWN0b3J5KCkgPSBkZWZhdWx0OworICAgIC8qKiBcYnJpZWYgQWxsb2Nh
dGUgYSBDaGFyUmVhZGVyIHZpYSBvcGVyYXRvciBuZXcoKS4KKyAgICAgKiBcdGhyb3cgc3RkOjpl
eGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBjb25zdCA9
IDA7CisgIH07IC8vIEZhY3RvcnkKK307ICAgLy8gQ2hhclJlYWRlcgorCisvKiogXGJyaWVmIEJ1
aWxkIGEgQ2hhclJlYWRlciBpbXBsZW1lbnRhdGlvbi4KKworVXNhZ2U6CitcY29kZQorICB1c2lu
ZyBuYW1lc3BhY2UgSnNvbjsKKyAgQ2hhclJlYWRlckJ1aWxkZXIgYnVpbGRlcjsKKyAgYnVpbGRl
clsiY29sbGVjdENvbW1lbnRzIl0gPSBmYWxzZTsKKyAgVmFsdWUgdmFsdWU7CisgIFN0cmluZyBl
cnJzOworICBib29sIG9rID0gcGFyc2VGcm9tU3RyZWFtKGJ1aWxkZXIsIHN0ZDo6Y2luLCAmdmFs
dWUsICZlcnJzKTsKK1xlbmRjb2RlCisqLworY2xhc3MgSlNPTl9BUEkgQ2hhclJlYWRlckJ1aWxk
ZXIgOiBwdWJsaWMgQ2hhclJlYWRlcjo6RmFjdG9yeSB7CitwdWJsaWM6CisgIC8vIE5vdGU6IFdl
IHVzZSBhIEpzb246OlZhbHVlIHNvIHRoYXQgd2UgY2FuIGFkZCBkYXRhLW1lbWJlcnMgdG8gdGhp
cyBjbGFzcworICAvLyB3aXRob3V0IGEgbWFqb3IgdmVyc2lvbiBidW1wLgorICAvKiogQ29uZmln
dXJhdGlvbiBvZiB0aGlzIGJ1aWxkZXIuCisgICAgVGhlc2UgYXJlIGNhc2Utc2Vuc2l0aXZlLgor
ICAgIEF2YWlsYWJsZSBzZXR0aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gYCJjb2xsZWN0
Q29tbWVudHMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIHRvIGNvbGxlY3QgY29tbWVu
dCBhbmQgYWxsb3cgd3JpdGluZyB0aGVtCisgICAgICAgIGJhY2sgZHVyaW5nIHNlcmlhbGl6YXRp
b24sIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlz
IGlnbm9yZWQgaWYgYWxsb3dDb21tZW50cyBpcyBmYWxzZS4KKyAgICAtIGAiYWxsb3dDb21tZW50
cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgaWYgY29tbWVudHMgYXJlIGFsbG93ZWQu
CisgICAgLSBgInN0cmljdFJvb3QiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIGlmIHJv
b3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlCisgICAgLSBgImFs
bG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVl
IGlmIGRyb3BwZWQgbnVsbCBwbGFjZWhvbGRlcnMgYXJlIGFsbG93ZWQuIChTZWUKKyAgICBTdHJl
YW1Xcml0ZXJCdWlsZGVyLikKKyAgICAtIGAiYWxsb3dOdW1lcmljS2V5cyI6IGZhbHNlIG9yIHRy
dWVgCisgICAgICAtIHRydWUgaWYgbnVtZXJpYyBvYmplY3Qga2V5cyBhcmUgYWxsb3dlZC4KKyAg
ICAtIGAiYWxsb3dTaW5nbGVRdW90ZXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIGlm
ICcnIGFyZSBhbGxvd2VkIGZvciBzdHJpbmdzIChib3RoIGtleXMgYW5kIHZhbHVlcykKKyAgICAt
IGAic3RhY2tMaW1pdCI6IGludGVnZXJgCisgICAgICAtIEV4Y2VlZGluZyBzdGFja0xpbWl0IChy
ZWN1cnNpdmUgZGVwdGggb2YgYHJlYWRWYWx1ZSgpYCkgd2lsbAorICAgICAgICBjYXVzZSBhbiBl
eGNlcHRpb24uCisgICAgICAtIFRoaXMgaXMgYSBzZWN1cml0eSBpc3N1ZSAoc2VnLWZhdWx0cyBj
YXVzZWQgYnkgZGVlcGx5IG5lc3RlZCBKU09OKSwKKyAgICAgICAgc28gdGhlIGRlZmF1bHQgaXMg
bG93LgorICAgIC0gYCJmYWlsSWZFeHRyYSI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIElmIHRy
dWUsIGBwYXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4gZXh0cmEgbm9uLXdoaXRlc3BhY2UgdHJh
aWxzCisgICAgICAgIHRoZSBKU09OIHZhbHVlIGluIHRoZSBpbnB1dCBzdHJpbmcuCisgICAgLSBg
InJlamVjdER1cEtleXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSBJZiB0cnVlLCBgcGFyc2Uo
KWAgcmV0dXJucyBmYWxzZSB3aGVuIGEga2V5IGlzIGR1cGxpY2F0ZWQgd2l0aGluIGFuCisgICAg
b2JqZWN0LgorICAgIC0gYCJhbGxvd1NwZWNpYWxGbG9hdHMiOiBmYWxzZSBvciB0cnVlYAorICAg
ICAgLSBJZiB0cnVlLCBzcGVjaWFsIGZsb2F0IHZhbHVlcyAoTmFOcyBhbmQgaW5maW5pdGllcykg
YXJlIGFsbG93ZWQKKyAgICAgICAgYW5kIHRoZWlyIHZhbHVlcyBhcmUgbG9zc2ZyZWUgcmVzdG9y
YWJsZS4KKworICAgIFlvdSBjYW4gZXhhbWluZSAnc2V0dGluZ3NfYCB5b3Vyc2VsZgorICAgIHRv
IHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4gYWxzbyB3cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3Qg
bGlrZSBhbnkKKyAgICBKU09OIFZhbHVlLgorICAgIFxzYSBzZXREZWZhdWx0cygpCiAgICAgKi8K
LSAgIGNsYXNzIEpTT05fQVBJIFJlYWRlcgotICAgewotICAgcHVibGljOgotICAgICAgdHlwZWRl
ZiBjaGFyIENoYXI7Ci0gICAgICB0eXBlZGVmIGNvbnN0IENoYXIgKkxvY2F0aW9uOwotCi0gICAg
ICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSBSZWFkZXIgYWxsb3dpbmcgYWxsIGZlYXR1cmVzCi0g
ICAgICAgKiBmb3IgcGFyc2luZy4KLSAgICAgICAqLwotICAgICAgUmVhZGVyKCk7Ci0KLSAgICAg
IC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxvd2luZyB0aGUgc3BlY2lmaWVkIGZl
YXR1cmUgc2V0Ci0gICAgICAgKiBmb3IgcGFyc2luZy4KLSAgICAgICAqLwotICAgICAgUmVhZGVy
KCBjb25zdCBGZWF0dXJlcyAmZmVhdHVyZXMgKTsKLQotICAgICAgLyoqIFxicmllZiBSZWFkIGEg
VmFsdWUgZnJvbSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGRvY3Vt
ZW50LgotICAgICAgICogXHBhcmFtIGRvY3VtZW50IFVURi04IGVuY29kZWQgc3RyaW5nIGNvbnRh
aW5pbmcgdGhlIGRvY3VtZW50IHRvIHJlYWQuCi0gICAgICAgKiBccGFyYW0gcm9vdCBbb3V0XSBD
b250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCi0gICAgICAg
KiAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgotICAgICAgICogXHBhcmFtIGNvbGxl
Y3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGluZyB0
aGVtIGJhY2sgZHVyaW5nCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6
YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCi0gICAgICAgKiAgICAgICAgICAg
ICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYgRmVhdHVyZXM6OmFsbG93
Q29tbWVudHNfCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGlzIFxjIGZhbHNlLgot
ICAgICAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5
IHBhcnNlZCwgXGMgZmFsc2UgaWYgYW4gZXJyb3Igb2NjdXJyZWQuCi0gICAgICAgKi8KLSAgICAg
IGJvb2wgcGFyc2UoIGNvbnN0IHN0ZDo6c3RyaW5nICZkb2N1bWVudCwgCi0gICAgICAgICAgICAg
ICAgICBWYWx1ZSAmcm9vdCwKLSAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRz
ID0gdHJ1ZSApOwotCi0gICAgICAvKiogXGJyaWVmIFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJF
Rj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZG9jdW1lbnQuCi0gICAgICAgKiBccGFy
YW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBVVEYtOCBlbmNvZGVk
IHN0cmluZyBvZiB0aGUgZG9jdW1lbnQgdG8gcmVhZC4KLSAgICAgICAqIFxwYXJhbSBlbmREb2Mg
UG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0aGUgZG9j
dW1lbnQgdG8gcmVhZC4gCi0gICAgICAgXCAgICAgICAgICAgICAgIE11c3QgYmUgPj0gYmVnaW5E
b2MuCi0gICAgICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBv
ZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCi0gICAgICAgKiAgICAgICAgICAgICBzdWNjZXNzZnVs
bHkgcGFyc2VkLgotICAgICAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNv
bGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGluZyB0aGVtIGJhY2sgZHVyaW5nCi0gICAgICAg
KiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2Nh
cmQgY29tbWVudHMuCi0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1l
dGVyIGlzIGlnbm9yZWQgaWYgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCi0gICAgICAgKiAgICAg
ICAgICAgICAgICAgICAgICAgIGlzIFxjIGZhbHNlLgotICAgICAgICogXHJldHVybiBcYyB0cnVl
IGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFsc2UgaWYgYW4g
ZXJyb3Igb2NjdXJyZWQuCi0gICAgICAgKi8KLSAgICAgIGJvb2wgcGFyc2UoIGNvbnN0IGNoYXIg
KmJlZ2luRG9jLCBjb25zdCBjaGFyICplbmREb2MsIAotICAgICAgICAgICAgICAgICAgVmFsdWUg
JnJvb3QsCi0gICAgICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUgKTsK
LQotICAgICAgLy8vIFxicmllZiBQYXJzZSBmcm9tIGlucHV0IHN0cmVhbS4KLSAgICAgIC8vLyBc
c2VlIEpzb246Om9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiwgSnNvbjo6VmFsdWUmKS4KLSAgICAg
IGJvb2wgcGFyc2UoIHN0ZDo6aXN0cmVhbSAmaXMsCi0gICAgICAgICAgICAgICAgICBWYWx1ZSAm
cm9vdCwKLSAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSApOwot
Ci0gICAgICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0IGxp
c3QgZXJyb3JzIGluIHRoZSBwYXJzZWQgZG9jdW1lbnQuCi0gICAgICAgKiBccmV0dXJuIEZvcm1h
dHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJyb3JzIHdpdGggdGhlaXIgbG9j
YXRpb24gaW4gCi0gICAgICAgKiAgICAgICAgIHRoZSBwYXJzZWQgZG9jdW1lbnQuIEFuIGVtcHR5
IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvciBvY2N1cnJlZAotICAgICAgICogICAgICAg
ICBkdXJpbmcgcGFyc2luZy4KLSAgICAgICAqIFxkZXByZWNhdGVkIFVzZSBnZXRGb3JtYXR0ZWRF
cnJvck1lc3NhZ2VzKCkgaW5zdGVhZCAodHlwbyBmaXgpLgotICAgICAgICovCi0gICAgICBKU09O
Q1BQX0RFUFJFQ0FURUQoIlVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzIGluc3RlYWQiKSAK
LSAgICAgIHN0ZDo6c3RyaW5nIGdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OwotCi0g
ICAgICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3Qg
ZXJyb3JzIGluIHRoZSBwYXJzZWQgZG9jdW1lbnQuCi0gICAgICAgKiBccmV0dXJuIEZvcm1hdHRl
ZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRp
b24gaW4gCi0gICAgICAgKiAgICAgICAgIHRoZSBwYXJzZWQgZG9jdW1lbnQuIEFuIGVtcHR5IHN0
cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvciBvY2N1cnJlZAotICAgICAgICogICAgICAgICBk
dXJpbmcgcGFyc2luZy4KLSAgICAgICAqLwotICAgICAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0dGVk
RXJyb3JNZXNzYWdlcygpIGNvbnN0OwotCi0gICBwcml2YXRlOgotICAgICAgZW51bSBUb2tlblR5
cGUKLSAgICAgIHsKLSAgICAgICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAotICAgICAgICAgdG9r
ZW5PYmplY3RCZWdpbiwKLSAgICAgICAgIHRva2VuT2JqZWN0RW5kLAotICAgICAgICAgdG9rZW5B
cnJheUJlZ2luLAotICAgICAgICAgdG9rZW5BcnJheUVuZCwKLSAgICAgICAgIHRva2VuU3RyaW5n
LAotICAgICAgICAgdG9rZW5OdW1iZXIsCi0gICAgICAgICB0b2tlblRydWUsCi0gICAgICAgICB0
b2tlbkZhbHNlLAotICAgICAgICAgdG9rZW5OdWxsLAotICAgICAgICAgdG9rZW5BcnJheVNlcGFy
YXRvciwKLSAgICAgICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAotICAgICAgICAgdG9rZW5Db21t
ZW50LAotICAgICAgICAgdG9rZW5FcnJvcgotICAgICAgfTsKLQotICAgICAgY2xhc3MgVG9rZW4K
LSAgICAgIHsKLSAgICAgIHB1YmxpYzoKLSAgICAgICAgIFRva2VuVHlwZSB0eXBlXzsKLSAgICAg
ICAgIExvY2F0aW9uIHN0YXJ0XzsKLSAgICAgICAgIExvY2F0aW9uIGVuZF87Ci0gICAgICB9Owot
Ci0gICAgICBjbGFzcyBFcnJvckluZm8KLSAgICAgIHsKLSAgICAgIHB1YmxpYzoKLSAgICAgICAg
IFRva2VuIHRva2VuXzsKLSAgICAgICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2VfOwotICAgICAgICAg
TG9jYXRpb24gZXh0cmFfOwotICAgICAgfTsKLQotICAgICAgdHlwZWRlZiBzdGQ6OmRlcXVlPEVy
cm9ySW5mbz4gRXJyb3JzOwotCi0gICAgICBib29sIGV4cGVjdFRva2VuKCBUb2tlblR5cGUgdHlw
ZSwgVG9rZW4gJnRva2VuLCBjb25zdCBjaGFyICptZXNzYWdlICk7Ci0gICAgICBib29sIHJlYWRU
b2tlbiggVG9rZW4gJnRva2VuICk7Ci0gICAgICB2b2lkIHNraXBTcGFjZXMoKTsKLSAgICAgIGJv
b2wgbWF0Y2goIExvY2F0aW9uIHBhdHRlcm4sIAotICAgICAgICAgICAgICAgICAgaW50IHBhdHRl
cm5MZW5ndGggKTsKLSAgICAgIGJvb2wgcmVhZENvbW1lbnQoKTsKLSAgICAgIGJvb2wgcmVhZENT
dHlsZUNvbW1lbnQoKTsKLSAgICAgIGJvb2wgcmVhZENwcFN0eWxlQ29tbWVudCgpOwotICAgICAg
Ym9vbCByZWFkU3RyaW5nKCk7Ci0gICAgICB2b2lkIHJlYWROdW1iZXIoKTsKLSAgICAgIGJvb2wg
cmVhZFZhbHVlKCk7Ci0gICAgICBib29sIHJlYWRPYmplY3QoIFRva2VuICZ0b2tlbiApOwotICAg
ICAgYm9vbCByZWFkQXJyYXkoIFRva2VuICZ0b2tlbiApOwotICAgICAgYm9vbCBkZWNvZGVOdW1i
ZXIoIFRva2VuICZ0b2tlbiApOwotICAgICAgYm9vbCBkZWNvZGVTdHJpbmcoIFRva2VuICZ0b2tl
biApOwotICAgICAgYm9vbCBkZWNvZGVTdHJpbmcoIFRva2VuICZ0b2tlbiwgc3RkOjpzdHJpbmcg
JmRlY29kZWQgKTsKLSAgICAgIGJvb2wgZGVjb2RlRG91YmxlKCBUb2tlbiAmdG9rZW4gKTsKLSAg
ICAgIGJvb2wgZGVjb2RlVW5pY29kZUNvZGVQb2ludCggVG9rZW4gJnRva2VuLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gJmN1cnJlbnQsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgJnVuaWNvZGUgKTsKLSAgICAgIGJvb2wg
ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKCBUb2tlbiAmdG9rZW4sIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uICZjdXJyZW50LCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApOwot
ICAgICAgYm9vbCBhZGRFcnJvciggY29uc3Qgc3RkOjpzdHJpbmcgJm1lc3NhZ2UsIAotICAgICAg
ICAgICAgICAgICAgICAgVG9rZW4gJnRva2VuLAotICAgICAgICAgICAgICAgICAgICAgTG9jYXRp
b24gZXh0cmEgPSAwICk7Ci0gICAgICBib29sIHJlY292ZXJGcm9tRXJyb3IoIFRva2VuVHlwZSBz
a2lwVW50aWxUb2tlbiApOwotICAgICAgYm9vbCBhZGRFcnJvckFuZFJlY292ZXIoIGNvbnN0IHN0
ZDo6c3RyaW5nICZtZXNzYWdlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tl
biAmdG9rZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBV
bnRpbFRva2VuICk7Ci0gICAgICB2b2lkIHNraXBVbnRpbFNwYWNlKCk7Ci0gICAgICBWYWx1ZSAm
Y3VycmVudFZhbHVlKCk7Ci0gICAgICBDaGFyIGdldE5leHRDaGFyKCk7Ci0gICAgICB2b2lkIGdl
dExvY2F0aW9uTGluZUFuZENvbHVtbiggTG9jYXRpb24gbG9jYXRpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICZsaW5lLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAmY29sdW1uICkgY29uc3Q7Ci0gICAgICBzdGQ6OnN0cmluZyBn
ZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oIExvY2F0aW9uIGxvY2F0aW9uICkgY29uc3Q7Ci0gICAg
ICB2b2lkIGFkZENvbW1lbnQoIExvY2F0aW9uIGJlZ2luLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYXRpb24gZW5kLCAKLSAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudFBsYWNlbWVu
dCBwbGFjZW1lbnQgKTsKLSAgICAgIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoIFRva2VuICZ0b2tl
biApOwotICAgCi0gICAgICB0eXBlZGVmIHN0ZDo6c3RhY2s8VmFsdWUgKj4gTm9kZXM7Ci0gICAg
ICBOb2RlcyBub2Rlc187Ci0gICAgICBFcnJvcnMgZXJyb3JzXzsKLSAgICAgIHN0ZDo6c3RyaW5n
IGRvY3VtZW50XzsKLSAgICAgIExvY2F0aW9uIGJlZ2luXzsKLSAgICAgIExvY2F0aW9uIGVuZF87
Ci0gICAgICBMb2NhdGlvbiBjdXJyZW50XzsKLSAgICAgIExvY2F0aW9uIGxhc3RWYWx1ZUVuZF87
Ci0gICAgICBWYWx1ZSAqbGFzdFZhbHVlXzsKLSAgICAgIHN0ZDo6c3RyaW5nIGNvbW1lbnRzQmVm
b3JlXzsKLSAgICAgIEZlYXR1cmVzIGZlYXR1cmVzXzsKLSAgICAgIGJvb2wgY29sbGVjdENvbW1l
bnRzXzsKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgUmVhZCBmcm9tICdzaW4nIGludG8gJ3Jvb3Qn
LgotCi0gICAgQWx3YXlzIGtlZXAgY29tbWVudHMgZnJvbSB0aGUgaW5wdXQgSlNPTi4KLQotICAg
IFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVhZCBhIGZpbGUgaW50byBhIHBhcnRpY3VsYXIgc3ViLW9i
amVjdC4KLSAgICBGb3IgZXhhbXBsZToKLSAgICBcY29kZQotICAgIEpzb246OlZhbHVlIHJvb3Q7
Ci0gICAgY2luID4+IHJvb3RbImRpciJdWyJmaWxlIl07Ci0gICAgY291dCA8PCByb290OwotICAg
IFxlbmRjb2RlCi0gICAgUmVzdWx0OgotICAgIFx2ZXJiYXRpbQotICAgIHsKLSAgICAiZGlyIjog
ewotICAgICAgICAiZmlsZSI6IHsKLSAgICAgICAgLy8gVGhlIGlucHV0IHN0cmVhbSBKU09OIHdv
dWxkIGJlIG5lc3RlZCBoZXJlLgotICAgICAgICB9Ci0gICAgfQotICAgIH0KLSAgICBcZW5kdmVy
YmF0aW0KLSAgICBcdGhyb3cgc3RkOjpleGNlcHRpb24gb24gcGFyc2UgZXJyb3IuCi0gICAgXHNl
ZSBKc29uOjpvcGVyYXRvcjw8KCkKLSAgICovCi0gICBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4o
IHN0ZDo6aXN0cmVhbSYsIFZhbHVlJiApOworICBKc29uOjpWYWx1ZSBzZXR0aW5nc187CisKKyAg
Q2hhclJlYWRlckJ1aWxkZXIoKTsKKyAgfkNoYXJSZWFkZXJCdWlsZGVyKCkgb3ZlcnJpZGU7CisK
KyAgQ2hhclJlYWRlciogbmV3Q2hhclJlYWRlcigpIGNvbnN0IG92ZXJyaWRlOworCisgIC8qKiBc
cmV0dXJuIHRydWUgaWYgJ3NldHRpbmdzJyBhcmUgbGVnYWwgYW5kIGNvbnNpc3RlbnQ7CisgICAq
ICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBiYWQgc2V0dGluZ3MgdmlhICdpbnZhbGlkJy4KKyAgICov
CisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0OworCisgIC8qKiBB
IHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEgc3BlY2lmaWMgc2V0dGluZy4KKyAgICovCisgIFZhbHVl
JiBvcGVyYXRvcltdKGNvbnN0IFN0cmluZyYga2V5KTsKKworICAvKiogQ2FsbGVkIGJ5IGN0b3Is
IGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0IHNldHRpbmdzXy4KKyAgICogXHByZSAnc2V0
dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCisgICAqIFxyZW1hcmsgRGVm
YXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAgQ2hhclJl
YWRlckJ1aWxkZXJEZWZhdWx0cworICAgKi8KKyAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNv
bjo6VmFsdWUqIHNldHRpbmdzKTsKKyAgLyoqIFNhbWUgYXMgb2xkIEZlYXR1cmVzOjpzdHJpY3RN
b2RlKCkuCisgICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6bnVsbCBpcyBm
aW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBldCBzcmMvbGliX2pzb24v
anNvbl9yZWFkZXIuY3BwIENoYXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZQorICAgKi8KKyAgc3Rh
dGljIHZvaWQgc3RyaWN0TW9kZShKc29uOjpWYWx1ZSogc2V0dGluZ3MpOworfTsKKworLyoqIENv
bnN1bWUgZW50aXJlIHN0cmVhbSBhbmQgdXNlIGl0cyBiZWdpbi9lbmQuCisgKiBTb21lZGF5IHdl
IG1pZ2h0IGhhdmUgYSByZWFsIFN0cmVhbVJlYWRlciwgYnV0IGZvciBub3cgdGhpcworICogaXMg
Y29udmVuaWVudC4KKyAqLworYm9vbCBKU09OX0FQSSBwYXJzZUZyb21TdHJlYW0oQ2hhclJlYWRl
cjo6RmFjdG9yeSBjb25zdCYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU3RyZWFt
JiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiByb290LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKiBlcnJzKTsKKworLyoqIFxicmllZiBSZWFkIGZy
b20gJ3NpbicgaW50byAncm9vdCcuCisKKyBBbHdheXMga2VlcCBjb21tZW50cyBmcm9tIHRoZSBp
bnB1dCBKU09OLgorCisgVGhpcyBjYW4gYmUgdXNlZCB0byByZWFkIGEgZmlsZSBpbnRvIGEgcGFy
dGljdWxhciBzdWItb2JqZWN0LgorIEZvciBleGFtcGxlOgorIFxjb2RlCisgSnNvbjo6VmFsdWUg
cm9vdDsKKyBjaW4gPj4gcm9vdFsiZGlyIl1bImZpbGUiXTsKKyBjb3V0IDw8IHJvb3Q7CisgXGVu
ZGNvZGUKKyBSZXN1bHQ6CisgXHZlcmJhdGltCisgeworICJkaXIiOiB7CisgICAgICJmaWxlIjog
eworICAgICAvLyBUaGUgaW5wdXQgc3RyZWFtIEpTT04gd291bGQgYmUgbmVzdGVkIGhlcmUuCisg
ICAgIH0KKyB9CisgfQorIFxlbmR2ZXJiYXRpbQorIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBvbiBw
YXJzZSBlcnJvci4KKyBcc2VlIEpzb246Om9wZXJhdG9yPDwoKQorKi8KK0pTT05fQVBJIElTdHJl
YW0mIG9wZXJhdG9yPj4oSVN0cmVhbSYsIFZhbHVlJik7CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24K
IAorI3ByYWdtYSBwYWNrKHBvcCkKKworI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9J
TlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYgLy8gaWYgZGVm
aW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCiAjZW5kaWYgLy8g
Q1BQVExfSlNPTl9SRUFERVJfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pz
b24vdmFsdWUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3ZhbHVlLmgKaW5kZXggYjAxM2M5YjhlYWM2
OGJhMTI2NDllYWU1NDVmNTE2YWUzNzA1NzlkOS4uOTU3ZjNmNmY2NzY1NmJmNTNlZTVmZTdhYzY4
ZDk0OWY5MGI3ZjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9pbmNsdWRlL2pzb24vdmFsdWUuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL2luY2x1ZGUvanNvbi92YWx1ZS5oCkBAIC0xLDExMDkgKzEsOTA3IEBACi0vLyBDb3B5
cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMDctMjAx
MCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3RyaWJ1
dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCiAv
LyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5TRSBm
b3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VO
U0UKIAogI2lmbmRlZiBDUFBUTF9KU09OX0hfSU5DTFVERUQKLSMgZGVmaW5lIENQUFRMX0pTT05f
SF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX0hfSU5DTFVERUQKIAogI2lmICFkZWZpbmVk
KEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlICJmb3J3YXJkcy5oIgorI2luY2x1ZGUg
ImZvcndhcmRzLmgiCiAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
Ci0jIGluY2x1ZGUgPHN0cmluZz4KLSMgaW5jbHVkZSA8dmVjdG9yPgotCi0jIGlmbmRlZiBKU09O
X1VTRV9DUFBUTF9TTUFMTE1BUAotIyAgaW5jbHVkZSA8bWFwPgotIyBlbHNlCi0jICBpbmNsdWRl
IDxjcHB0bC9zbWFsbG1hcC5oPgotIyBlbmRpZgotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotIyAg
aW5jbHVkZSA8Y3BwdGwvZm9yd2FyZHMuaD4KLSMgZW5kaWYKKyNpbmNsdWRlIDxhcnJheT4KKyNp
bmNsdWRlIDxleGNlcHRpb24+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0cmluZz4K
KyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyNp
bmNsdWRlIDxtYXA+CisjZWxzZQorI2luY2x1ZGUgPGNwcHRsL3NtYWxsbWFwLmg+CisjZW5kaWYK
KyNpZmRlZiBKU09OX1VTRV9DUFBUTAorI2luY2x1ZGUgPGNwcHRsL2ZvcndhcmRzLmg+CisjZW5k
aWYKKworLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1iZXI+OiA8dHlwZT4gbmVl
ZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1c2VkIGJ5Li4uCisjaWYgZGVmaW5l
ZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5n
KHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCisjZW5kaWYgLy8gaWYgZGVm
aW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCisjcHJhZ21hIHBh
Y2socHVzaCwgOCkKIAogLyoqIFxicmllZiBKU09OIChKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlv
bikuCiAgKi8KIG5hbWVzcGFjZSBKc29uIHsKIAotICAgLyoqIFxicmllZiBUeXBlIG9mIHRoZSB2
YWx1ZSBoZWxkIGJ5IGEgVmFsdWUgb2JqZWN0LgotICAgICovCi0gICBlbnVtIFZhbHVlVHlwZQot
ICAgewotICAgICAgbnVsbFZhbHVlID0gMCwgLy8vPCAnbnVsbCcgdmFsdWUKLSAgICAgIGludFZh
bHVlLCAgICAgIC8vLzwgc2lnbmVkIGludGVnZXIgdmFsdWUKLSAgICAgIHVpbnRWYWx1ZSwgICAg
IC8vLzwgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQotICAgICAgcmVhbFZhbHVlLCAgICAgLy8vPCBk
b3VibGUgdmFsdWUKLSAgICAgIHN0cmluZ1ZhbHVlLCAgIC8vLzwgVVRGLTggc3RyaW5nIHZhbHVl
Ci0gICAgICBib29sZWFuVmFsdWUsICAvLy88IGJvb2wgdmFsdWUKLSAgICAgIGFycmF5VmFsdWUs
ICAgIC8vLzwgYXJyYXkgdmFsdWUgKG9yZGVyZWQgbGlzdCkKLSAgICAgIG9iamVjdFZhbHVlICAg
IC8vLzwgb2JqZWN0IHZhbHVlIChjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMpLgotICAg
fTsKLQotICAgZW51bSBDb21tZW50UGxhY2VtZW50Ci0gICB7Ci0gICAgICBjb21tZW50QmVmb3Jl
ID0gMCwgICAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNlZCBvbiB0aGUgbGluZSBiZWZvcmUgYSB2
YWx1ZQotICAgICAgY29tbWVudEFmdGVyT25TYW1lTGluZSwgICAvLy88IGEgY29tbWVudCBqdXN0
IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQotICAgICAgY29tbWVudEFmdGVyLCAgICAg
ICAgICAgICAvLy88IGEgY29tbWVudCBvbiB0aGUgbGluZSBhZnRlciBhIHZhbHVlIChvbmx5IG1h
a2Ugc2Vuc2UgZm9yIHJvb3QgdmFsdWUpCi0gICAgICBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQK
LSAgIH07CisjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCisvKiogQmFzZSBjbGFzcyBmb3IgYWxsIGV4
Y2VwdGlvbnMgd2UgdGhyb3cuCisgKgorICogV2UgdXNlIG5vdGhpbmcgYnV0IHRoZXNlIGludGVy
bmFsbHkuIE9mIGNvdXJzZSwgU1RMIGNhbiB0aHJvdyBvdGhlcnMuCisgKi8KK2NsYXNzIEpTT05f
QVBJIEV4Y2VwdGlvbiA6IHB1YmxpYyBzdGQ6OmV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIEV4Y2Vw
dGlvbihTdHJpbmcgbXNnKTsKKyAgfkV4Y2VwdGlvbigpIEpTT05DUFBfTk9FWENFUFQgb3ZlcnJp
ZGU7CisgIGNoYXIgY29uc3QqIHdoYXQoKSBjb25zdCBKU09OQ1BQX05PRVhDRVBUIG92ZXJyaWRl
OworCitwcm90ZWN0ZWQ6CisgIFN0cmluZyBtc2dfOworfTsKKworLyoqIEV4Y2VwdGlvbnMgd2hp
Y2ggdGhlIHVzZXIgY2Fubm90IGVhc2lseSBhdm9pZC4KKyAqCisgKiBFLmcuIG91dC1vZi1tZW1v
cnkgKHdoZW4gd2UgdXNlIG1hbGxvYyksIHN0YWNrLW92ZXJmbG93LCBtYWxpY2lvdXMgaW5wdXQK
KyAqCisgKiBccmVtYXJrIGRlcml2ZWQgZnJvbSBKc29uOjpFeGNlcHRpb24KKyAqLworY2xhc3Mg
SlNPTl9BUEkgUnVudGltZUVycm9yIDogcHVibGljIEV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIFJ1
bnRpbWVFcnJvcihTdHJpbmcgY29uc3QmIG1zZyk7Cit9OworCisvKiogRXhjZXB0aW9ucyB0aHJv
d24gYnkgSlNPTl9BU1NFUlQvSlNPTl9GQUlMIG1hY3Jvcy4KKyAqCisgKiBUaGVzZSBhcmUgcHJl
Y29uZGl0aW9uLXZpb2xhdGlvbnMgKHVzZXIgYnVncykgYW5kIGludGVybmFsIGVycm9ycyAob3Vy
IGJ1Z3MpLgorICoKKyAqIFxyZW1hcmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgorICov
CitjbGFzcyBKU09OX0FQSSBMb2dpY0Vycm9yIDogcHVibGljIEV4Y2VwdGlvbiB7CitwdWJsaWM6
CisgIExvZ2ljRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpOworfTsKKyNlbmRpZgorCisvLy8gdXNl
ZCBpbnRlcm5hbGx5CitbW25vcmV0dXJuXV0gdm9pZCB0aHJvd1J1bnRpbWVFcnJvcihTdHJpbmcg
Y29uc3QmIG1zZyk7CisvLy8gdXNlZCBpbnRlcm5hbGx5CitbW25vcmV0dXJuXV0gdm9pZCB0aHJv
d0xvZ2ljRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpOworCisvKiogXGJyaWVmIFR5cGUgb2YgdGhl
IHZhbHVlIGhlbGQgYnkgYSBWYWx1ZSBvYmplY3QuCisgKi8KK2VudW0gVmFsdWVUeXBlIHsKKyAg
bnVsbFZhbHVlID0gMCwgLy8vPCAnbnVsbCcgdmFsdWUKKyAgaW50VmFsdWUsICAgICAgLy8vPCBz
aWduZWQgaW50ZWdlciB2YWx1ZQorICB1aW50VmFsdWUsICAgICAvLy88IHVuc2lnbmVkIGludGVn
ZXIgdmFsdWUKKyAgcmVhbFZhbHVlLCAgICAgLy8vPCBkb3VibGUgdmFsdWUKKyAgc3RyaW5nVmFs
dWUsICAgLy8vPCBVVEYtOCBzdHJpbmcgdmFsdWUKKyAgYm9vbGVhblZhbHVlLCAgLy8vPCBib29s
IHZhbHVlCisgIGFycmF5VmFsdWUsICAgIC8vLzwgYXJyYXkgdmFsdWUgKG9yZGVyZWQgbGlzdCkK
KyAgb2JqZWN0VmFsdWUgICAgLy8vPCBvYmplY3QgdmFsdWUgKGNvbGxlY3Rpb24gb2YgbmFtZS92
YWx1ZSBwYWlycykuCit9OworCitlbnVtIENvbW1lbnRQbGFjZW1lbnQgeworICBjb21tZW50QmVm
b3JlID0gMCwgICAgICAvLy88IGEgY29tbWVudCBwbGFjZWQgb24gdGhlIGxpbmUgYmVmb3JlIGEg
dmFsdWUKKyAgY29tbWVudEFmdGVyT25TYW1lTGluZSwgLy8vPCBhIGNvbW1lbnQganVzdCBhZnRl
ciBhIHZhbHVlIG9uIHRoZSBzYW1lIGxpbmUKKyAgY29tbWVudEFmdGVyLCAvLy88IGEgY29tbWVu
dCBvbiB0aGUgbGluZSBhZnRlciBhIHZhbHVlIChvbmx5IG1ha2Ugc2Vuc2UgZm9yCisgIC8vLyBy
b290IHZhbHVlKQorICBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQKK307CisKKy8qKiBcYnJpZWYg
VHlwZSBvZiBwcmVjaXNpb24gZm9yIGZvcm1hdHRpbmcgb2YgcmVhbCB2YWx1ZXMuCisgKi8KK2Vu
dW0gUHJlY2lzaW9uVHlwZSB7CisgIHNpZ25pZmljYW50RGlnaXRzID0gMCwgLy8vPCB3ZSBzZXQg
bWF4IG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgaW4gc3RyaW5nCisgIGRlY2ltYWxQbGFj
ZXMgICAgICAgICAgLy8vPCB3ZSBzZXQgbWF4IG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgIi4iIGlu
IHN0cmluZworfTsKIAogLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCiAvLyAgIHR5cGVkZWYgQ3Bw
VEw6OkFueUVudW1lcmF0b3I8Y29uc3QgY2hhciAqPiBFbnVtTWVtYmVyTmFtZXM7CiAvLyAgIHR5
cGVkZWYgQ3BwVEw6OkFueUVudW1lcmF0b3I8Y29uc3QgVmFsdWUgJj4gRW51bVZhbHVlczsKIC8v
IyBlbmRpZgogCi0gICAvKiogXGJyaWVmIExpZ2h0d2VpZ2h0IHdyYXBwZXIgdG8gdGFnIHN0YXRp
YyBzdHJpbmcuCi0gICAgKgotICAgICogVmFsdWUgY29uc3RydWN0b3IgYW5kIG9iamVjdFZhbHVl
IG1lbWJlciBhc3NpZ25lbWVudCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlCi0gICAgKiBTdGF0aWNT
dHJpbmcgYW5kIGF2b2lkIHRoZSBjb3N0IG9mIHN0cmluZyBkdXBsaWNhdGlvbiB3aGVuIHN0b3Jp
bmcgdGhlCi0gICAgKiBzdHJpbmcgb3IgdGhlIG1lbWJlciBuYW1lLgotICAgICoKLSAgICAqIEV4
YW1wbGUgb2YgdXNhZ2U6Ci0gICAgKiBcY29kZQotICAgICogSnNvbjo6VmFsdWUgYVZhbHVlKCBT
dGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Ci0g
ICAgKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUiKTsKLSAgICAqIG9iamVj
dFtjb2RlXSA9IDEyMzQ7Ci0gICAgKiBcZW5kY29kZQotICAgICovCi0gICBjbGFzcyBKU09OX0FQ
SSBTdGF0aWNTdHJpbmcKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIGV4cGxpY2l0IFN0YXRpY1N0
cmluZyggY29uc3QgY2hhciAqY3pzdHJpbmcgKQotICAgICAgICAgOiBzdHJfKCBjenN0cmluZyAp
Ci0gICAgICB7Ci0gICAgICB9Ci0KLSAgICAgIG9wZXJhdG9yIGNvbnN0IGNoYXIgKigpIGNvbnN0
Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gc3RyXzsKLSAgICAgIH0KLQotICAgICAgY29uc3Qg
Y2hhciAqY19zdHIoKSBjb25zdAotICAgICAgewotICAgICAgICAgcmV0dXJuIHN0cl87Ci0gICAg
ICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgICBjb25zdCBjaGFyICpzdHJfOwotICAgfTsKLQotICAg
LyoqIFxicmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNP
TjwvYT4gdmFsdWUuCi0gICAgKgotICAgICogVGhpcyBjbGFzcyBpcyBhIGRpc2NyaW1pbmF0ZWQg
dW5pb24gd3JhcHBlciB0aGF0IGNhbiByZXByZXNlbnRzIGE6Ci0gICAgKiAtIHNpZ25lZCBpbnRl
Z2VyIFtyYW5nZTogVmFsdWU6Om1pbkludCAtIFZhbHVlOjptYXhJbnRdCi0gICAgKiAtIHVuc2ln
bmVkIGludGVnZXIgKHJhbmdlOiAwIC0gVmFsdWU6Om1heFVJbnQpCi0gICAgKiAtIGRvdWJsZQot
ICAgICogLSBVVEYtOCBzdHJpbmcKLSAgICAqIC0gYm9vbGVhbgotICAgICogLSAnbnVsbCcKLSAg
ICAqIC0gYW4gb3JkZXJlZCBsaXN0IG9mIFZhbHVlCi0gICAgKiAtIGNvbGxlY3Rpb24gb2YgbmFt
ZS92YWx1ZSBwYWlycyAoamF2YXNjcmlwdCBvYmplY3QpCi0gICAgKgotICAgICogVGhlIHR5cGUg
b2YgdGhlIGhlbGQgdmFsdWUgaXMgcmVwcmVzZW50ZWQgYnkgYSAjVmFsdWVUeXBlIGFuZCAKLSAg
ICAqIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0eXBlKCkuCi0gICAgKgotICAgICogdmFsdWVzIG9m
IGFuICNvYmplY3RWYWx1ZSBvciAjYXJyYXlWYWx1ZSBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgb3Bl
cmF0b3JbXSgpIG1ldGhvZHMuIAotICAgICogTm9uIGNvbnN0IG1ldGhvZHMgd2lsbCBhdXRvbWF0
aWNhbGx5IGNyZWF0ZSB0aGUgYSAjbnVsbFZhbHVlIGVsZW1lbnQgCi0gICAgKiBpZiBpdCBkb2Vz
IG5vdCBleGlzdC4gCi0gICAgKiBUaGUgc2VxdWVuY2Ugb2YgYW4gI2FycmF5VmFsdWUgd2lsbCBi
ZSBhdXRvbWF0aWNhbGx5IHJlc2l6ZSBhbmQgaW5pdGlhbGl6ZWQgCi0gICAgKiB3aXRoICNudWxs
VmFsdWUuIHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFyZ2Ugb3IgdHJ1bmNhdGUgYW4gI2Fy
cmF5VmFsdWUuCi0gICAgKgotICAgICogVGhlIGdldCgpIG1ldGhvZHMgY2FuIGJlIHVzZWQgdG8g
b2J0YW5pcyBkZWZhdWx0IHZhbHVlIGluIHRoZSBjYXNlIHRoZSByZXF1aXJlZCBlbGVtZW50Ci0g
ICAgKiBkb2VzIG5vdCBleGlzdC4KLSAgICAqCi0gICAgKiBJdCBpcyBwb3NzaWJsZSB0byBpdGVy
YXRlIG92ZXIgdGhlIGxpc3Qgb2YgYSAjb2JqZWN0VmFsdWUgdmFsdWVzIHVzaW5nIAotICAgICog
dGhlIGdldE1lbWJlck5hbWVzKCkgbWV0aG9kLgotICAgICovCi0gICBjbGFzcyBKU09OX0FQSSBW
YWx1ZSAKLSAgIHsKLSAgICAgIGZyaWVuZCBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsKLSMgaWZk
ZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAgICBmcmllbmQgY2xhc3MgVmFsdWVJ
bnRlcm5hbExpbms7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWVJbnRlcm5hbE1hcDsKLSMgZW5k
aWYKLSAgIHB1YmxpYzoKLSAgICAgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IE1l
bWJlcnM7Ci0gICAgICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3I7Ci0gICAgICB0eXBl
ZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKLSAgICAgIHR5cGVkZWYgSnNv
bjo6VUludCBVSW50OwotICAgICAgdHlwZWRlZiBKc29uOjpJbnQgSW50OwotIyBpZiBkZWZpbmVk
KEpTT05fSEFTX0lOVDY0KQotICAgICAgdHlwZWRlZiBKc29uOjpVSW50NjQgVUludDY0OwotICAg
ICAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJbnQ2NDsKKy8qKiBcYnJpZWYgTGlnaHR3ZWlnaHQgd3Jh
cHBlciB0byB0YWcgc3RhdGljIHN0cmluZy4KKyAqCisgKiBWYWx1ZSBjb25zdHJ1Y3RvciBhbmQg
b2JqZWN0VmFsdWUgbWVtYmVyIGFzc2lnbm1lbnQgdGFrZXMgYWR2YW50YWdlIG9mIHRoZQorICog
U3RhdGljU3RyaW5nIGFuZCBhdm9pZCB0aGUgY29zdCBvZiBzdHJpbmcgZHVwbGljYXRpb24gd2hl
biBzdG9yaW5nIHRoZQorICogc3RyaW5nIG9yIHRoZSBtZW1iZXIgbmFtZS4KKyAqCisgKiBFeGFt
cGxlIG9mIHVzYWdlOgorICogXGNvZGUKKyAqIEpzb246OlZhbHVlIGFWYWx1ZSggU3RhdGljU3Ry
aW5nKCJzb21lIHRleHQiKSApOworICogSnNvbjo6VmFsdWUgb2JqZWN0OworICogc3RhdGljIGNv
bnN0IFN0YXRpY1N0cmluZyBjb2RlKCJjb2RlIik7CisgKiBvYmplY3RbY29kZV0gPSAxMjM0Owor
ICogXGVuZGNvZGUKKyAqLworY2xhc3MgSlNPTl9BUEkgU3RhdGljU3RyaW5nIHsKK3B1YmxpYzoK
KyAgZXhwbGljaXQgU3RhdGljU3RyaW5nKGNvbnN0IGNoYXIqIGN6c3RyaW5nKSA6IGNfc3RyXyhj
enN0cmluZykge30KKworICBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0IHsgcmV0dXJuIGNf
c3RyXzsgfQorCisgIGNvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3QgeyByZXR1cm4gY19zdHJfOyB9
CisKK3ByaXZhdGU6CisgIGNvbnN0IGNoYXIqIGNfc3RyXzsKK307CisKKy8qKiBcYnJpZWYgUmVw
cmVzZW50cyBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IHZhbHVlLgor
ICoKKyAqIFRoaXMgY2xhc3MgaXMgYSBkaXNjcmltaW5hdGVkIHVuaW9uIHdyYXBwZXIgdGhhdCBj
YW4gcmVwcmVzZW50cyBhOgorICogLSBzaWduZWQgaW50ZWdlciBbcmFuZ2U6IFZhbHVlOjptaW5J
bnQgLSBWYWx1ZTo6bWF4SW50XQorICogLSB1bnNpZ25lZCBpbnRlZ2VyIChyYW5nZTogMCAtIFZh
bHVlOjptYXhVSW50KQorICogLSBkb3VibGUKKyAqIC0gVVRGLTggc3RyaW5nCisgKiAtIGJvb2xl
YW4KKyAqIC0gJ251bGwnCisgKiAtIGFuIG9yZGVyZWQgbGlzdCBvZiBWYWx1ZQorICogLSBjb2xs
ZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMgKGphdmFzY3JpcHQgb2JqZWN0KQorICoKKyAqIFRo
ZSB0eXBlIG9mIHRoZSBoZWxkIHZhbHVlIGlzIHJlcHJlc2VudGVkIGJ5IGEgI1ZhbHVlVHlwZSBh
bmQKKyAqIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0eXBlKCkuCisgKgorICogVmFsdWVzIG9mIGFu
ICNvYmplY3RWYWx1ZSBvciAjYXJyYXlWYWx1ZSBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgb3BlcmF0
b3JbXSgpCisgKiBtZXRob2RzLgorICogTm9uLWNvbnN0IG1ldGhvZHMgd2lsbCBhdXRvbWF0aWNh
bGx5IGNyZWF0ZSB0aGUgYSAjbnVsbFZhbHVlIGVsZW1lbnQKKyAqIGlmIGl0IGRvZXMgbm90IGV4
aXN0LgorICogVGhlIHNlcXVlbmNlIG9mIGFuICNhcnJheVZhbHVlIHdpbGwgYmUgYXV0b21hdGlj
YWxseSByZXNpemVkIGFuZCBpbml0aWFsaXplZAorICogd2l0aCAjbnVsbFZhbHVlLiByZXNpemUo
KSBjYW4gYmUgdXNlZCB0byBlbmxhcmdlIG9yIHRydW5jYXRlIGFuICNhcnJheVZhbHVlLgorICoK
KyAqIFRoZSBnZXQoKSBtZXRob2RzIGNhbiBiZSB1c2VkIHRvIG9idGFpbiBkZWZhdWx0IHZhbHVl
IGluIHRoZSBjYXNlIHRoZQorICogcmVxdWlyZWQgZWxlbWVudCBkb2VzIG5vdCBleGlzdC4KKyAq
CisgKiBJdCBpcyBwb3NzaWJsZSB0byBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgbWVtYmVyIGtl
eXMgb2YgYW4gb2JqZWN0IHVzaW5nCisgKiB0aGUgZ2V0TWVtYmVyTmFtZXMoKSBtZXRob2QuCisg
KgorICogXG5vdGUgI1ZhbHVlIHN0cmluZy1sZW5ndGggZml0IGluIHNpemVfdCwgYnV0IGtleXMg
bXVzdCBiZSA8IDJeMzAuCisgKiAoVGhlIHJlYXNvbiBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRh
aWwuKSBBICNDaGFyUmVhZGVyIHdpbGwgcmFpc2UgYW4KKyAqIGV4Y2VwdGlvbiBpZiBhIGJvdW5k
IGlzIGV4Y2VlZGVkIHRvIGF2b2lkIHNlY3VyaXR5IGhvbGVzIGluIHlvdXIgYXBwLAorICogYnV0
IHRoZSBWYWx1ZSBBUEkgZG9lcyAqbm90KiBjaGVjayBib3VuZHMuIFRoYXQgaXMgdGhlIHJlc3Bv
bnNpYmlsaXR5CisgKiBvZiB0aGUgY2FsbGVyLgorICovCitjbGFzcyBKU09OX0FQSSBWYWx1ZSB7
CisgIGZyaWVuZCBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsKKworcHVibGljOgorICB0eXBlZGVm
IHN0ZDo6dmVjdG9yPFN0cmluZz4gTWVtYmVyczsKKyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIGl0
ZXJhdG9yOworICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKKyAg
dHlwZWRlZiBKc29uOjpVSW50IFVJbnQ7CisgIHR5cGVkZWYgSnNvbjo6SW50IEludDsKKyNpZiBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICB0eXBlZGVmIEpzb246OlVJbnQ2NCBVSW50NjQ7Cisg
IHR5cGVkZWYgSnNvbjo6SW50NjQgSW50NjQ7CiAjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19J
TlQ2NCkKLSAgICAgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdEludCBMYXJnZXN0SW50OwotICAgICAg
dHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJnZXN0VUludDsKLSAgICAgIHR5cGVkZWYgSnNv
bjo6QXJyYXlJbmRleCBBcnJheUluZGV4OwotCi0gICAgICBzdGF0aWMgY29uc3QgVmFsdWUgbnVs
bDsKLSAgICAgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQgY2FuIGJlIHN0
b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWlu
TGFyZ2VzdEludDsKLSAgICAgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQg
Y2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IExhcmdl
c3RJbnQgbWF4TGFyZ2VzdEludDsKLSAgICAgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIGludGVnZXIg
dmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMg
Y29uc3QgTGFyZ2VzdFVJbnQgbWF4TGFyZ2VzdFVJbnQ7Ci0KLSAgICAgIC8vLyBNaW5pbXVtIHNp
Z25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAg
ICBzdGF0aWMgY29uc3QgSW50IG1pbkludDsKLSAgICAgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnQg
dmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCi0gICAgICBzdGF0aWMg
Y29uc3QgSW50IG1heEludDsKLSAgICAgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIGludCB2YWx1ZSB0
aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBV
SW50IG1heFVJbnQ7Ci0KLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgICAgIC8vLyBN
aW5pbXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBK
c29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBJbnQ2NCBtaW5JbnQ2NDsKLSAgICAgIC8v
LyBNYXhpbXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4g
YSBKc29uOjpWYWx1ZS4KLSAgICAgIHN0YXRpYyBjb25zdCBJbnQ2NCBtYXhJbnQ2NDsKLSAgICAg
IC8vLyBNYXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3Jl
ZCBpbiBhIEpzb246OlZhbHVlLgotICAgICAgc3RhdGljIGNvbnN0IFVJbnQ2NCBtYXhVSW50NjQ7
CisgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdEludCBMYXJnZXN0SW50OworICB0eXBlZGVmIEpzb246
Okxhcmdlc3RVSW50IExhcmdlc3RVSW50OworICB0eXBlZGVmIEpzb246OkFycmF5SW5kZXggQXJy
YXlJbmRleDsKKworICAvLyBSZXF1aXJlZCBmb3IgYm9vc3QgaW50ZWdyYXRpb24sIGUuIGcuIEJP
T1NUX1RFU1QKKyAgdHlwZWRlZiBzdGQ6OnN0cmluZyB2YWx1ZV90eXBlOworCisjaWYgSlNPTl9V
U0VfTlVMTFJFRgorICAvLyBCaW5hcnkgY29tcGF0aWJpbGl0eSBrbHVkZ2VzLCBkbyBub3QgdXNl
LgorICBzdGF0aWMgY29uc3QgVmFsdWUmIG51bGw7CisgIHN0YXRpYyBjb25zdCBWYWx1ZSYgbnVs
bFJlZjsKKyNlbmRpZgorCisgIC8vIG51bGwgYW5kIG51bGxSZWYgYXJlIGRlcHJlY2F0ZWQsIHVz
ZSB0aGlzIGluc3RlYWQuCisgIHN0YXRpYyBWYWx1ZSBjb25zdCYgbnVsbFNpbmdsZXRvbigpOwor
CisgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBp
biBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgTGFyZ2VzdEludCBtaW5MYXJnZXN0SW50
OworICAvLy8gTWF4aW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQg
aW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWF4TGFyZ2VzdElu
dDsKKyAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9y
ZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RVSW50IG1heExhcmdl
c3RVSW50OworCisgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3Rv
cmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQgbWluSW50OworICAvLy8g
TWF4aW11bSBzaWduZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZh
bHVlLgorICBzdGF0aWMgY29uc3QgSW50IG1heEludDsKKyAgLy8vIE1heGltdW0gdW5zaWduZWQg
aW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMg
Y29uc3QgVUludCBtYXhVSW50OworCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgLy8v
IE1pbmltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBh
IEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50NjQgbWluSW50NjQ7CisgIC8vLyBNYXhp
bXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29u
OjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IEludDY0IG1heEludDY0OworICAvLy8gTWF4aW11bSB1
bnNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpW
YWx1ZS4KKyAgc3RhdGljIGNvbnN0IFVJbnQ2NCBtYXhVSW50NjQ7CiAjZW5kaWYgLy8gZGVmaW5l
ZChKU09OX0hBU19JTlQ2NCkKIAotICAgcHJpdmF0ZToKKyAgLy8vIERlZmF1bHQgcHJlY2lzaW9u
IGZvciByZWFsIHZhbHVlIGZvciBzdHJpbmcgcmVwcmVzZW50YXRpb24uCisgIHN0YXRpYyBjb25z
dCBVSW50IGRlZmF1bHRSZWFsUHJlY2lzaW9uOworCisvLyBXb3JrYXJvdW5kIGZvciBidWcgaW4g
dGhlIE5WSURJQXMgQ1VEQSA5LjEgbnZjYyBjb21waWxlcgorLy8gd2hlbiB1c2luZyBnY2MgYW5k
IGNsYW5nIGJhY2tlbmQgY29tcGlsZXJzLiAgQ1pTdHJpbmcKKy8vIGNhbm5vdCBiZSBkZWZpbmVk
IGFzIHByaXZhdGUuICBTZWUgaXNzdWUgIzQ4NgorI2lmZGVmIF9fTlZDQ19fCitwdWJsaWM6Cisj
ZWxzZQorcHJpdmF0ZToKKyNlbmRpZgogI2lmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExF
TUVOVEFUSU9OCi0jIGlmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGNs
YXNzIENaU3RyaW5nIAotICAgICAgewotICAgICAgcHVibGljOgotICAgICAgICAgZW51bSBEdXBs
aWNhdGlvblBvbGljeSAKLSAgICAgICAgIHsKLSAgICAgICAgICAgIG5vRHVwbGljYXRpb24gPSAw
LAotICAgICAgICAgICAgZHVwbGljYXRlLAotICAgICAgICAgICAgZHVwbGljYXRlT25Db3B5Ci0g
ICAgICAgICB9OwotICAgICAgICAgQ1pTdHJpbmcoIEFycmF5SW5kZXggaW5kZXggKTsKLSAgICAg
ICAgIENaU3RyaW5nKCBjb25zdCBjaGFyICpjc3RyLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0
ZSApOwotICAgICAgICAgQ1pTdHJpbmcoIGNvbnN0IENaU3RyaW5nICZvdGhlciApOwotICAgICAg
ICAgfkNaU3RyaW5nKCk7Ci0gICAgICAgICBDWlN0cmluZyAmb3BlcmF0b3IgPSggY29uc3QgQ1pT
dHJpbmcgJm90aGVyICk7Ci0gICAgICAgICBib29sIG9wZXJhdG9yPCggY29uc3QgQ1pTdHJpbmcg
Jm90aGVyICkgY29uc3Q7Ci0gICAgICAgICBib29sIG9wZXJhdG9yPT0oIGNvbnN0IENaU3RyaW5n
ICZvdGhlciApIGNvbnN0OwotICAgICAgICAgQXJyYXlJbmRleCBpbmRleCgpIGNvbnN0OwotICAg
ICAgICAgY29uc3QgY2hhciAqY19zdHIoKSBjb25zdDsKLSAgICAgICAgIGJvb2wgaXNTdGF0aWNT
dHJpbmcoKSBjb25zdDsKLSAgICAgIHByaXZhdGU6Ci0gICAgICAgICB2b2lkIHN3YXAoIENaU3Ry
aW5nICZvdGhlciApOwotICAgICAgICAgY29uc3QgY2hhciAqY3N0cl87Ci0gICAgICAgICBBcnJh
eUluZGV4IGluZGV4XzsKLSAgICAgIH07Ci0KLSAgIHB1YmxpYzoKLSMgIGlmbmRlZiBKU09OX1VT
RV9DUFBUTF9TTUFMTE1BUAotICAgICAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+
IE9iamVjdFZhbHVlczsKLSMgIGVsc2UKLSAgICAgIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENa
U3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOwotIyAgZW5kaWYgLy8gaWZuZGVmIEpTT05fVVNF
X0NQUFRMX1NNQUxMTUFQCi0jIGVuZGlmIC8vIGlmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5B
TF9NQVAKKyAgY2xhc3MgQ1pTdHJpbmcgeworICBwdWJsaWM6CisgICAgZW51bSBEdXBsaWNhdGlv
blBvbGljeSB7IG5vRHVwbGljYXRpb24gPSAwLCBkdXBsaWNhdGUsIGR1cGxpY2F0ZU9uQ29weSB9
OworICAgIENaU3RyaW5nKEFycmF5SW5kZXggaW5kZXgpOworICAgIENaU3RyaW5nKGNoYXIgY29u
c3QqIHN0ciwgdW5zaWduZWQgbGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSk7Cisg
ICAgQ1pTdHJpbmcoQ1pTdHJpbmcgY29uc3QmIG90aGVyKTsKKyAgICBDWlN0cmluZyhDWlN0cmlu
ZyYmIG90aGVyKTsKKyAgICB+Q1pTdHJpbmcoKTsKKyAgICBDWlN0cmluZyYgb3BlcmF0b3I9KGNv
bnN0IENaU3RyaW5nJiBvdGhlcik7CisgICAgQ1pTdHJpbmcmIG9wZXJhdG9yPShDWlN0cmluZyYm
IG90aGVyKTsKKworICAgIGJvb2wgb3BlcmF0b3I8KENaU3RyaW5nIGNvbnN0JiBvdGhlcikgY29u
c3Q7CisgICAgYm9vbCBvcGVyYXRvcj09KENaU3RyaW5nIGNvbnN0JiBvdGhlcikgY29uc3Q7Cisg
ICAgQXJyYXlJbmRleCBpbmRleCgpIGNvbnN0OworICAgIC8vIGNvbnN0IGNoYXIqIGNfc3RyKCkg
Y29uc3Q7IC8vLzwgXGRlcHJlY2F0ZWQKKyAgICBjaGFyIGNvbnN0KiBkYXRhKCkgY29uc3Q7Cisg
ICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgYm9vbCBpc1N0YXRpY1N0cmluZygpIGNv
bnN0OworCisgIHByaXZhdGU6CisgICAgdm9pZCBzd2FwKENaU3RyaW5nJiBvdGhlcik7CisKKyAg
ICBzdHJ1Y3QgU3RyaW5nU3RvcmFnZSB7CisgICAgICB1bnNpZ25lZCBwb2xpY3lfIDogMjsKKyAg
ICAgIHVuc2lnbmVkIGxlbmd0aF8gOiAzMDsgLy8gMUdCIG1heAorICAgIH07CisKKyAgICBjaGFy
IGNvbnN0KiBjc3RyXzsgLy8gYWN0dWFsbHksIGEgcHJlZml4ZWQgc3RyaW5nLCB1bmxlc3MgcG9s
aWN5IGlzIG5vRHVwCisgICAgdW5pb24geworICAgICAgQXJyYXlJbmRleCBpbmRleF87CisgICAg
ICBTdHJpbmdTdG9yYWdlIHN0b3JhZ2VfOworICAgIH07CisgIH07CisKK3B1YmxpYzoKKyNpZm5k
ZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywg
VmFsdWU+IE9iamVjdFZhbHVlczsKKyNlbHNlCisgIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENa
U3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOworI2VuZGlmIC8vIGlmbmRlZiBKU09OX1VTRV9D
UFBUTF9TTUFMTE1BUAogI2VuZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExF
TUVOVEFUSU9OCiAKLSAgIHB1YmxpYzoKLSAgICAgIC8qKiBcYnJpZWYgQ3JlYXRlIGEgZGVmYXVs
dCBWYWx1ZSBvZiB0aGUgZ2l2ZW4gdHlwZS4KLQotICAgICAgICBUaGlzIGlzIGEgdmVyeSB1c2Vm
dWwgY29uc3RydWN0b3IuCi0gICAgICAgIFRvIGNyZWF0ZSBhbiBlbXB0eSBhcnJheSwgcGFzcyBh
cnJheVZhbHVlLgotICAgICAgICBUbyBjcmVhdGUgYW4gZW1wdHkgb2JqZWN0LCBwYXNzIG9iamVj
dFZhbHVlLgotICAgICAgICBBbm90aGVyIFZhbHVlIGNhbiB0aGVuIGJlIHNldCB0byB0aGlzIG9u
ZSBieSBhc3NpZ25tZW50LgotICAgIFRoaXMgaXMgdXNlZnVsIHNpbmNlIGNsZWFyKCkgYW5kIHJl
c2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgotCi0gICAgICAgIEV4YW1wbGVzOgotICAgIFxj
b2RlCi0gICAgSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8gbnVsbAotICAgIEpzb246OlZhbHVl
IGFycl92YWx1ZShKc29uOjphcnJheVZhbHVlKTsgLy8gW10KLSAgICBKc29uOjpWYWx1ZSBvYmpf
dmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpOyAvLyB7fQotICAgIFxlbmRjb2RlCi0gICAgICAqLwot
ICAgICAgVmFsdWUoIFZhbHVlVHlwZSB0eXBlID0gbnVsbFZhbHVlICk7Ci0gICAgICBWYWx1ZSgg
SW50IHZhbHVlICk7Ci0gICAgICBWYWx1ZSggVUludCB2YWx1ZSApOworcHVibGljOgorICAvKiog
XGJyaWVmIENyZWF0ZSBhIGRlZmF1bHQgVmFsdWUgb2YgdGhlIGdpdmVuIHR5cGUuCisKKyAgICBU
aGlzIGlzIGEgdmVyeSB1c2VmdWwgY29uc3RydWN0b3IuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5
IGFycmF5LCBwYXNzIGFycmF5VmFsdWUuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5IG9iamVjdCwg
cGFzcyBvYmplY3RWYWx1ZS4KKyAgICBBbm90aGVyIFZhbHVlIGNhbiB0aGVuIGJlIHNldCB0byB0
aGlzIG9uZSBieSBhc3NpZ25tZW50LgorVGhpcyBpcyB1c2VmdWwgc2luY2UgY2xlYXIoKSBhbmQg
cmVzaXplKCkgd2lsbCBub3QgYWx0ZXIgdHlwZXMuCisKKyAgICBFeGFtcGxlczoKK1xjb2RlCitK
c29uOjpWYWx1ZSBudWxsX3ZhbHVlOyAvLyBudWxsCitKc29uOjpWYWx1ZSBhcnJfdmFsdWUoSnNv
bjo6YXJyYXlWYWx1ZSk7IC8vIFtdCitKc29uOjpWYWx1ZSBvYmpfdmFsdWUoSnNvbjo6b2JqZWN0
VmFsdWUpOyAvLyB7fQorXGVuZGNvZGUKKyAgKi8KKyAgVmFsdWUoVmFsdWVUeXBlIHR5cGUgPSBu
dWxsVmFsdWUpOworICBWYWx1ZShJbnQgdmFsdWUpOworICBWYWx1ZShVSW50IHZhbHVlKTsKICNp
ZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgVmFsdWUoIEludDY0IHZhbHVlICk7Ci0g
ICAgICBWYWx1ZSggVUludDY0IHZhbHVlICk7CisgIFZhbHVlKEludDY0IHZhbHVlKTsKKyAgVmFs
dWUoVUludDY0IHZhbHVlKTsKICNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQot
ICAgICAgVmFsdWUoIGRvdWJsZSB2YWx1ZSApOwotICAgICAgVmFsdWUoIGNvbnN0IGNoYXIgKnZh
bHVlICk7Ci0gICAgICBWYWx1ZSggY29uc3QgY2hhciAqYmVnaW5WYWx1ZSwgY29uc3QgY2hhciAq
ZW5kVmFsdWUgKTsKLSAgICAgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIHZhbHVlIGZyb20gYSBz
dGF0aWMgc3RyaW5nLgotCi0gICAgICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBjb25zdHJ1
Y3RvciBidXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgotICAgICAgICogaW50ZXJu
YWwgc3RvcmFnZS4gVGhlIGdpdmVuIHN0cmluZyBtdXN0IHJlbWFpbiBhbGl2ZSBhZnRlciB0aGUg
Y2FsbCB0byB0aGlzCi0gICAgICAgKiBjb25zdHJ1Y3Rvci4KLSAgICAgICAqIEV4YW1wbGUgb2Yg
dXNhZ2U6Ci0gICAgICAgKiBcY29kZQotICAgICAgICogSnNvbjo6VmFsdWUgYVZhbHVlKCBTdGF0
aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Ci0gICAgICAgKiBcZW5kY29kZQotICAgICAgICovCi0g
ICAgICBWYWx1ZSggY29uc3QgU3RhdGljU3RyaW5nICZ2YWx1ZSApOwotICAgICAgVmFsdWUoIGNv
bnN0IHN0ZDo6c3RyaW5nICZ2YWx1ZSApOwotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotICAgICAg
VmFsdWUoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAmdmFsdWUgKTsKLSMgZW5kaWYKLSAgICAg
IFZhbHVlKCBib29sIHZhbHVlICk7Ci0gICAgICBWYWx1ZSggY29uc3QgVmFsdWUgJm90aGVyICk7
Ci0gICAgICB+VmFsdWUoKTsKLQotICAgICAgVmFsdWUgJm9wZXJhdG9yPSggY29uc3QgVmFsdWUg
Jm90aGVyICk7Ci0gICAgICAvLy8gU3dhcCB2YWx1ZXMuCi0gICAgICAvLy8gXG5vdGUgQ3VycmVu
dGx5LCBjb21tZW50cyBhcmUgaW50ZW50aW9uYWxseSBub3Qgc3dhcHBlZCwgZm9yCi0gICAgICAv
Ly8gYm90aCBsb2dpYyBhbmQgZWZmaWNpZW5jeS4KLSAgICAgIHZvaWQgc3dhcCggVmFsdWUgJm90
aGVyICk7Ci0KLSAgICAgIFZhbHVlVHlwZSB0eXBlKCkgY29uc3Q7Ci0KLSAgICAgIGJvb2wgb3Bl
cmF0b3IgPCggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAgICBib29sIG9wZXJhdG9y
IDw9KCBjb25zdCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLSAgICAgIGJvb2wgb3BlcmF0b3IgPj0o
IGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0OwotICAgICAgYm9vbCBvcGVyYXRvciA+KCBjb25z
dCBWYWx1ZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgYm9vbCBvcGVyYXRvciA9PSggY29uc3Qg
VmFsdWUgJm90aGVyICkgY29uc3Q7Ci0gICAgICBib29sIG9wZXJhdG9yICE9KCBjb25zdCBWYWx1
ZSAmb3RoZXIgKSBjb25zdDsKLQotICAgICAgaW50IGNvbXBhcmUoIGNvbnN0IFZhbHVlICZvdGhl
ciApIGNvbnN0OwotCi0gICAgICBjb25zdCBjaGFyICphc0NTdHJpbmcoKSBjb25zdDsKLSAgICAg
IHN0ZDo6c3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7Ci0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0g
ICAgICBDcHBUTDo6Q29uc3RTdHJpbmcgYXNDb25zdFN0cmluZygpIGNvbnN0OwotIyBlbmRpZgot
ICAgICAgSW50IGFzSW50KCkgY29uc3Q7Ci0gICAgICBVSW50IGFzVUludCgpIGNvbnN0OworICBW
YWx1ZShkb3VibGUgdmFsdWUpOworICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSk7IC8vLzwgQ29w
eSB0aWwgZmlyc3QgMC4gKE5VTEwgY2F1c2VzIHRvIHNlZy1mYXVsdC4pCisgIFZhbHVlKGNvbnN0
IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpOyAvLy88IENvcHkgYWxsLCBpbmNsIHplcm9l
cy4KKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgdmFsdWUgZnJvbSBhIHN0YXRpYyBzdHJpbmcu
CisKKyAgICogTGlrZSBvdGhlciB2YWx1ZSBzdHJpbmcgY29uc3RydWN0b3IgYnV0IGRvIG5vdCBk
dXBsaWNhdGUgdGhlIHN0cmluZyBmb3IKKyAgICogaW50ZXJuYWwgc3RvcmFnZS4gVGhlIGdpdmVu
IHN0cmluZyBtdXN0IHJlbWFpbiBhbGl2ZSBhZnRlciB0aGUgY2FsbCB0byB0aGlzCisgICAqIGNv
bnN0cnVjdG9yLgorICAgKiBcbm90ZSBUaGlzIHdvcmtzIG9ubHkgZm9yIG51bGwtdGVybWluYXRl
ZCBzdHJpbmdzLiAoV2UgY2Fubm90IGNoYW5nZSB0aGUKKyAgICogICBzaXplIG9mIHRoaXMgY2xh
c3MsIHNvIHdlIGhhdmUgbm93aGVyZSB0byBzdG9yZSB0aGUgbGVuZ3RoLAorICAgKiAgIHdoaWNo
IG1pZ2h0IGJlIGNvbXB1dGVkIGxhdGVyIGZvciB2YXJpb3VzIG9wZXJhdGlvbnMuKQorICAgKgor
ICAgKiBFeGFtcGxlIG9mIHVzYWdlOgorICAgKiBcY29kZQorICAgKiBzdGF0aWMgU3RhdGljU3Ry
aW5nIGZvbygic29tZSB0ZXh0Iik7CisgICAqIEpzb246OlZhbHVlIGFWYWx1ZShmb28pOworICAg
KiBcZW5kY29kZQorICAgKi8KKyAgVmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSk7Cisg
IFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpOyAvLy88IENvcHkgZGF0YSgpIHRpbCBzaXplKCku
IEVtYmVkZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy88IHplcm9lcyB0b28u
CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgVmFsdWUoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5n
JiB2YWx1ZSk7CisjZW5kaWYKKyAgVmFsdWUoYm9vbCB2YWx1ZSk7CisgIFZhbHVlKGNvbnN0IFZh
bHVlJiBvdGhlcik7CisgIFZhbHVlKFZhbHVlJiYgb3RoZXIpOworICB+VmFsdWUoKTsKKworICAv
Ly8gXG5vdGUgT3ZlcndyaXRlIGV4aXN0aW5nIGNvbW1lbnRzLiBUbyBwcmVzZXJ2ZSBjb21tZW50
cywgdXNlCisgIC8vLyAjc3dhcFBheWxvYWQoKS4KKyAgVmFsdWUmIG9wZXJhdG9yPShjb25zdCBW
YWx1ZSYgb3RoZXIpOworICBWYWx1ZSYgb3BlcmF0b3I9KFZhbHVlJiYgb3RoZXIpOworCisgIC8v
LyBTd2FwIGV2ZXJ5dGhpbmcuCisgIHZvaWQgc3dhcChWYWx1ZSYgb3RoZXIpOworICAvLy8gU3dh
cCB2YWx1ZXMgYnV0IGxlYXZlIGNvbW1lbnRzIGFuZCBzb3VyY2Ugb2Zmc2V0cyBpbiBwbGFjZS4K
KyAgdm9pZCBzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpOworCisgIC8vLyBjb3B5IGV2ZXJ5dGhp
bmcuCisgIHZvaWQgY29weShjb25zdCBWYWx1ZSYgb3RoZXIpOworICAvLy8gY29weSB2YWx1ZXMg
YnV0IGxlYXZlIGNvbW1lbnRzIGFuZCBzb3VyY2Ugb2Zmc2V0cyBpbiBwbGFjZS4KKyAgdm9pZCBj
b3B5UGF5bG9hZChjb25zdCBWYWx1ZSYgb3RoZXIpOworCisgIFZhbHVlVHlwZSB0eXBlKCkgY29u
c3Q7CisKKyAgLy8vIENvbXBhcmUgcGF5bG9hZCBvbmx5LCBub3QgY29tbWVudHMgZXRjLgorICBi
b29sIG9wZXJhdG9yPChjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9y
PD0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvcj49KGNvbnN0IFZh
bHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I+KGNvbnN0IFZhbHVlJiBvdGhlcikg
Y29uc3Q7CisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBi
b29sIG9wZXJhdG9yIT0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKyAgaW50IGNvbXBhcmUo
Y29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKworICBjb25zdCBjaGFyKiBhc0NTdHJpbmcoKSBj
b25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgY291bGQgY2F1c2UgeW91IHRyb3VibGUhCisjaWYg
SlNPTkNQUF9VU0lOR19TRUNVUkVfTUVNT1JZCisgIHVuc2lnbmVkIGdldENTdHJpbmdMZW5ndGgo
KSBjb25zdDsgLy8gQWxsb3dzIHlvdSB0byB1bmRlcnN0YW5kIHRoZSBsZW5ndGggb2YKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgQ1N0cmluZworI2VuZGlmCisg
IFN0cmluZyBhc1N0cmluZygpIGNvbnN0OyAvLy88IEVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2li
bGUuCisgIC8qKiBHZXQgcmF3IGNoYXIqIG9mIHN0cmluZy12YWx1ZS4KKyAgICogIFxyZXR1cm4g
ZmFsc2UgaWYgIXN0cmluZy4gKFNlZy1mYXVsdCBpZiBzdHIgb3IgZW5kIGFyZSBOVUxMLikKKyAg
ICovCisgIGJvb2wgZ2V0U3RyaW5nKGNoYXIgY29uc3QqKiBiZWdpbiwgY2hhciBjb25zdCoqIGVu
ZCkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgQ3BwVEw6OkNvbnN0U3RyaW5nIGFz
Q29uc3RTdHJpbmcoKSBjb25zdDsKKyNlbmRpZgorICBJbnQgYXNJbnQoKSBjb25zdDsKKyAgVUlu
dCBhc1VJbnQoKSBjb25zdDsKICNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgICAgSW50
NjQgYXNJbnQ2NCgpIGNvbnN0OwotICAgICAgVUludDY0IGFzVUludDY0KCkgY29uc3Q7CisgIElu
dDY0IGFzSW50NjQoKSBjb25zdDsKKyAgVUludDY0IGFzVUludDY0KCkgY29uc3Q7CiAjZW5kaWYg
Ly8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLSAgICAgIExhcmdlc3RJbnQgYXNMYXJnZXN0
SW50KCkgY29uc3Q7Ci0gICAgICBMYXJnZXN0VUludCBhc0xhcmdlc3RVSW50KCkgY29uc3Q7Ci0g
ICAgICBmbG9hdCBhc0Zsb2F0KCkgY29uc3Q7Ci0gICAgICBkb3VibGUgYXNEb3VibGUoKSBjb25z
dDsKLSAgICAgIGJvb2wgYXNCb29sKCkgY29uc3Q7Ci0KLSAgICAgIGJvb2wgaXNOdWxsKCkgY29u
c3Q7Ci0gICAgICBib29sIGlzQm9vbCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludCgpIGNvbnN0
OwotICAgICAgYm9vbCBpc0ludDY0KCkgY29uc3Q7Ci0gICAgICBib29sIGlzVUludCgpIGNvbnN0
OwotICAgICAgYm9vbCBpc1VJbnQ2NCgpIGNvbnN0OwotICAgICAgYm9vbCBpc0ludGVncmFsKCkg
Y29uc3Q7Ci0gICAgICBib29sIGlzRG91YmxlKCkgY29uc3Q7Ci0gICAgICBib29sIGlzTnVtZXJp
YygpIGNvbnN0OwotICAgICAgYm9vbCBpc1N0cmluZygpIGNvbnN0OwotICAgICAgYm9vbCBpc0Fy
cmF5KCkgY29uc3Q7Ci0gICAgICBib29sIGlzT2JqZWN0KCkgY29uc3Q7Ci0KLSAgICAgIGJvb2wg
aXNDb252ZXJ0aWJsZVRvKCBWYWx1ZVR5cGUgb3RoZXIgKSBjb25zdDsKLQotICAgICAgLy8vIE51
bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0Ci0gICAgICBBcnJheUluZGV4IHNpemUo
KSBjb25zdDsKLQotICAgICAgLy8vIFxicmllZiBSZXR1cm4gdHJ1ZSBpZiBlbXB0eSBhcnJheSwg
ZW1wdHkgb2JqZWN0LCBvciBudWxsOwotICAgICAgLy8vIG90aGVyd2lzZSwgZmFsc2UuCi0gICAg
ICBib29sIGVtcHR5KCkgY29uc3Q7Ci0KLSAgICAgIC8vLyBSZXR1cm4gaXNOdWxsKCkKLSAgICAg
IGJvb2wgb3BlcmF0b3IhKCkgY29uc3Q7Ci0KLSAgICAgIC8vLyBSZW1vdmUgYWxsIG9iamVjdCBt
ZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJh
eVZhbHVlLCBvYmplY3RWYWx1ZSwgb3IgbnVsbFZhbHVlCi0gICAgICAvLy8gXHBvc3QgdHlwZSgp
IGlzIHVuY2hhbmdlZAotICAgICAgdm9pZCBjbGVhcigpOwotCi0gICAgICAvLy8gUmVzaXplIHRo
ZSBhcnJheSB0byBzaXplIGVsZW1lbnRzLiAKLSAgICAgIC8vLyBOZXcgZWxlbWVudHMgYXJlIGlu
aXRpYWxpemVkIHRvIG51bGwuCi0gICAgICAvLy8gTWF5IG9ubHkgYmUgY2FsbGVkIG9uIG51bGxW
YWx1ZSBvciBhcnJheVZhbHVlLgotICAgICAgLy8vIFxwcmUgdHlwZSgpIGlzIGFycmF5VmFsdWUg
b3IgbnVsbFZhbHVlCi0gICAgICAvLy8gXHBvc3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKLSAgICAg
IHZvaWQgcmVzaXplKCBBcnJheUluZGV4IHNpemUgKTsKLQotICAgICAgLy8vIEFjY2VzcyBhbiBh
cnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCi0gICAgICAvLy8gSWYgdGhlIGFycmF5
IGNvbnRhaW5zIGxlc3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlIGlu
c2VydGVkCi0gICAgICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgr
MS4KLSAgICAgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91
ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAotICAgICAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJh
dG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIEFy
cmF5SW5kZXggaW5kZXggKTsKLQotICAgICAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6
ZXJvIGJhc2VkIGluZGV4ICkuCi0gICAgICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3Mg
dGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlIGluc2VydGVkCi0gICAgICAv
Ly8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KLSAgICAgIC8vLyAo
WW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBk
aXN0aW5ndWlzaAotICAgICAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFr
ZXMgYSBzdHJpbmcuKQotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGludCBpbmRleCApOwotCi0g
ICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAg
ICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBp
bGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3
aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggQXJy
YXlJbmRleCBpbmRleCApIGNvbnN0OwotCi0gICAgICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1l
bnQgKHplcm8gYmFzZWQgaW5kZXggKQotICAgICAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2
YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCi0gICAgICAvLy8g
IHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCi0gICAgICBj
b25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggaW50IGluZGV4ICkgY29uc3Q7Ci0KLSAgICAgIC8vLyBJ
ZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywgcmV0dXJucyB0
aGUgZWxlbWVudCB2YWx1ZSwgCi0gICAgICAvLy8gb3RoZXJ3aXNlIHJldHVybnMgZGVmYXVsdFZh
bHVlLgotICAgICAgVmFsdWUgZ2V0KCBBcnJheUluZGV4IGluZGV4LCAKLSAgICAgICAgICAgICAg
ICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0OwotICAgICAgLy8vIFJldHVybiB0
cnVlIGlmIGluZGV4IDwgc2l6ZSgpLgotICAgICAgYm9vbCBpc1ZhbGlkSW5kZXgoIEFycmF5SW5k
ZXggaW5kZXggKSBjb25zdDsKLSAgICAgIC8vLyBcYnJpZWYgQXBwZW5kIHZhbHVlIHRvIGFycmF5
IGF0IHRoZSBlbmQuCi0gICAgICAvLy8KLSAgICAgIC8vLyBFcXVpdmFsZW50IHRvIGpzb252YWx1
ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOwotICAgICAgVmFsdWUgJmFwcGVuZCggY29uc3Qg
VmFsdWUgJnZhbHVlICk7Ci0KLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5h
bWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFs
dWUgJm9wZXJhdG9yW10oIGNvbnN0IGNoYXIgKmtleSApOwotICAgICAgLy8vIEFjY2VzcyBhbiBv
YmplY3QgdmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3
aXRoIHRoYXQgbmFtZS4KLSAgICAgIGNvbnN0IFZhbHVlICZvcGVyYXRvcltdKCBjb25zdCBjaGFy
ICprZXkgKSBjb25zdDsKLSAgICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUs
IGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFsdWUg
Jm9wZXJhdG9yW10oIGNvbnN0IHN0ZDo6c3RyaW5nICZrZXkgKTsKLSAgICAgIC8vLyBBY2Nlc3Mg
YW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1i
ZXIgd2l0aCB0aGF0IG5hbWUuCi0gICAgICBjb25zdCBWYWx1ZSAmb3BlcmF0b3JbXSggY29uc3Qg
c3RkOjpzdHJpbmcgJmtleSApIGNvbnN0OwotICAgICAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2Jq
ZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4
aXN0LgotCi0gICAgICAgKiBJZiB0aGUgb2JqZWN0IGFzIG5vIGVudHJ5IGZvciB0aGF0IG5hbWUs
IHRoZW4gdGhlIG1lbWJlciBuYW1lIHVzZWQgdG8gc3RvcmUKLSAgICAgICAqIHRoZSBuZXcgZW50
cnkgaXMgbm90IGR1cGxpY2F0ZWQuCi0gICAgICAgKiBFeGFtcGxlIG9mIHVzZToKLSAgICAgICAq
IFxjb2RlCi0gICAgICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Ci0gICAgICAgKiBzdGF0aWMgY29u
c3QgU3RhdGljU3RyaW5nIGNvZGUoImNvZGUiKTsKLSAgICAgICAqIG9iamVjdFtjb2RlXSA9IDEy
MzQ7Ci0gICAgICAgKiBcZW5kY29kZQotICAgICAgICovCi0gICAgICBWYWx1ZSAmb3BlcmF0b3Jb
XSggY29uc3QgU3RhdGljU3RyaW5nICZrZXkgKTsKLSMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKLSAg
ICAgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVt
YmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0
IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICk7Ci0gICAgICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2
YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGggdGhh
dCBuYW1lLgotICAgICAgY29uc3QgVmFsdWUgJm9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25z
dFN0cmluZyAma2V5ICkgY29uc3Q7Ci0jIGVuZGlmCi0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1i
ZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAg
VmFsdWUgZ2V0KCBjb25zdCBjaGFyICprZXksIAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1
ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0gICAgICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFt
ZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgotICAgICAgVmFsdWUg
Z2V0KCBjb25zdCBzdGQ6OnN0cmluZyAma2V5LAotICAgICAgICAgICAgICAgICBjb25zdCBWYWx1
ZSAmZGVmYXVsdFZhbHVlICkgY29uc3Q7Ci0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi0gICAgICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUg
b3RoZXJ3aXNlLgotICAgICAgVmFsdWUgZ2V0KCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtl
eSwKLSAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0Owot
IyBlbmRpZgotICAgICAgLy8vIFxicmllZiBSZW1vdmUgYW5kIHJldHVybiB0aGUgbmFtZWQgbWVt
YmVyLiAgCi0gICAgICAvLy8KLSAgICAgIC8vLyBEbyBub3RoaW5nIGlmIGl0IGRpZCBub3QgZXhp
c3QuCi0gICAgICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KLSAgICAg
IC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBc
cG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCi0gICAgICBWYWx1ZSByZW1vdmVNZW1iZXIoIGNvbnN0
IGNoYXIqIGtleSApOwotICAgICAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIq
KQotICAgICAgVmFsdWUgcmVtb3ZlTWVtYmVyKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICk7Ci0K
LSAgICAgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBr
ZXkuCi0gICAgICBib29sIGlzTWVtYmVyKCBjb25zdCBjaGFyICprZXkgKSBjb25zdDsKLSAgICAg
IC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCi0g
ICAgICBib29sIGlzTWVtYmVyKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3Q7Ci0jIGlm
ZGVmIEpTT05fVVNFX0NQUFRMCi0gICAgICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBo
YXMgYSBtZW1iZXIgbmFtZWQga2V5LgotICAgICAgYm9vbCBpc01lbWJlciggY29uc3QgQ3BwVEw6
OkNvbnN0U3RyaW5nICZrZXkgKSBjb25zdDsKLSMgZW5kaWYKLQotICAgICAgLy8vIFxicmllZiBS
ZXR1cm4gYSBsaXN0IG9mIHRoZSBtZW1iZXIgbmFtZXMuCi0gICAgICAvLy8KLSAgICAgIC8vLyBJ
ZiBudWxsLCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KLSAgICAgIC8vLyBccHJlIHR5cGUoKSBpcyBv
YmplY3RWYWx1ZSBvciBudWxsVmFsdWUKLSAgICAgIC8vLyBccG9zdCBpZiB0eXBlKCkgd2FzIG51
bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUKLSAgICAgIE1lbWJlcnMgZ2V0TWVtYmVyTmFt
ZXMoKSBjb25zdDsKKyAgTGFyZ2VzdEludCBhc0xhcmdlc3RJbnQoKSBjb25zdDsKKyAgTGFyZ2Vz
dFVJbnQgYXNMYXJnZXN0VUludCgpIGNvbnN0OworICBmbG9hdCBhc0Zsb2F0KCkgY29uc3Q7Cisg
IGRvdWJsZSBhc0RvdWJsZSgpIGNvbnN0OworICBib29sIGFzQm9vbCgpIGNvbnN0OworCisgIGJv
b2wgaXNOdWxsKCkgY29uc3Q7CisgIGJvb2wgaXNCb29sKCkgY29uc3Q7CisgIGJvb2wgaXNJbnQo
KSBjb25zdDsKKyAgYm9vbCBpc0ludDY0KCkgY29uc3Q7CisgIGJvb2wgaXNVSW50KCkgY29uc3Q7
CisgIGJvb2wgaXNVSW50NjQoKSBjb25zdDsKKyAgYm9vbCBpc0ludGVncmFsKCkgY29uc3Q7Cisg
IGJvb2wgaXNEb3VibGUoKSBjb25zdDsKKyAgYm9vbCBpc051bWVyaWMoKSBjb25zdDsKKyAgYm9v
bCBpc1N0cmluZygpIGNvbnN0OworICBib29sIGlzQXJyYXkoKSBjb25zdDsKKyAgYm9vbCBpc09i
amVjdCgpIGNvbnN0OworCisgIGJvb2wgaXNDb252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBvdGhlcikg
Y29uc3Q7CisKKyAgLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0CisgIEFy
cmF5SW5kZXggc2l6ZSgpIGNvbnN0OworCisgIC8vLyBcYnJpZWYgUmV0dXJuIHRydWUgaWYgZW1w
dHkgYXJyYXksIGVtcHR5IG9iamVjdCwgb3IgbnVsbDsKKyAgLy8vIG90aGVyd2lzZSwgZmFsc2Uu
CisgIGJvb2wgZW1wdHkoKSBjb25zdDsKKworICAvLy8gUmV0dXJuICFpc051bGwoKQorICBKU09O
Q1BQX09QX0VYUExJQ0lUIG9wZXJhdG9yIGJvb2woKSBjb25zdDsKKworICAvLy8gUmVtb3ZlIGFs
bCBvYmplY3QgbWVtYmVycyBhbmQgYXJyYXkgZWxlbWVudHMuCisgIC8vLyBccHJlIHR5cGUoKSBp
cyBhcnJheVZhbHVlLCBvYmplY3RWYWx1ZSwgb3IgbnVsbFZhbHVlCisgIC8vLyBccG9zdCB0eXBl
KCkgaXMgdW5jaGFuZ2VkCisgIHZvaWQgY2xlYXIoKTsKKworICAvLy8gUmVzaXplIHRoZSBhcnJh
eSB0byBuZXdTaXplIGVsZW1lbnRzLgorICAvLy8gTmV3IGVsZW1lbnRzIGFyZSBpbml0aWFsaXpl
ZCB0byBudWxsLgorICAvLy8gTWF5IG9ubHkgYmUgY2FsbGVkIG9uIG51bGxWYWx1ZSBvciBhcnJh
eVZhbHVlLgorICAvLy8gXHByZSB0eXBlKCkgaXMgYXJyYXlWYWx1ZSBvciBudWxsVmFsdWUKKyAg
Ly8vIFxwb3N0IHR5cGUoKSBpcyBhcnJheVZhbHVlCisgIHZvaWQgcmVzaXplKEFycmF5SW5kZXgg
bmV3U2l6ZSk7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGlu
ZGV4ICkuCisgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgbGVzcyB0aGFuIGluZGV4IGVsZW1l
bnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUKKyAgLy8vIGluc2VydGVkCisgIC8vLyBpbiB0aGUgYXJy
YXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBpbmRleCsxLgorICAvLy8gKFlvdSBtYXkgbmVlZCB0byBz
YXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKKyAgLy8v
ICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQorICBWYWx1
ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KTsKKworICAvLy8gQWNjZXNzIGFuIGFycmF5
IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KKyAgLy8vIElmIHRoZSBhcnJheSBjb250YWlu
cyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwgdGhlbiBudWxsIHZhbHVlIGFyZQorICAvLy8gaW5z
ZXJ0ZWQKKyAgLy8vIGluIHRoZSBhcnJheSBzbyB0aGF0IGl0cyBzaXplIGlzIGluZGV4KzEuCisg
IC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxl
ciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0
YWtlcyBhIHN0cmluZy4pCisgIFZhbHVlJiBvcGVyYXRvcltdKGludCBpbmRleCk7CisKKyAgLy8v
IEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkKKyAgLy8vIChZb3Ug
bWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rp
bmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3Ry
aW5nLikKKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCkgY29uc3Q7
CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkKKyAg
Ly8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVy
IHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRh
a2VzIGEgc3RyaW5nLikKKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KSBjb25z
dDsKKworICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGF0IGxlYXN0IGluZGV4KzEgZWxlbWVu
dHMsIHJldHVybnMgdGhlIGVsZW1lbnQKKyAgLy8vIHZhbHVlLAorICAvLy8gb3RoZXJ3aXNlIHJl
dHVybnMgZGVmYXVsdFZhbHVlLgorICBWYWx1ZSBnZXQoQXJyYXlJbmRleCBpbmRleCwgY29uc3Qg
VmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdHJ1ZSBpZiBpbmRleCA8
IHNpemUoKS4KKyAgYm9vbCBpc1ZhbGlkSW5kZXgoQXJyYXlJbmRleCBpbmRleCkgY29uc3Q7Cisg
IC8vLyBcYnJpZWYgQXBwZW5kIHZhbHVlIHRvIGFycmF5IGF0IHRoZSBlbmQuCisgIC8vLworICAv
Ly8gRXF1aXZhbGVudCB0byBqc29udmFsdWVbanNvbnZhbHVlLnNpemUoKV0gPSB2YWx1ZTsKKyAg
VmFsdWUmIGFwcGVuZChjb25zdCBWYWx1ZSYgdmFsdWUpOworICBWYWx1ZSYgYXBwZW5kKFZhbHVl
JiYgdmFsdWUpOworCisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0
ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorICAvLy8gXG5vdGUgQmVjYXVz
ZSBvZiBvdXIgaW1wbGVtZW50YXRpb24sIGtleXMgYXJlIGxpbWl0ZWQgdG8gMl4zMCAtMSBjaGFy
cy4KKyAgLy8vICBFeGNlZWRpbmcgdGhhdCB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbi4KKyAgVmFs
dWUmIG9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KTsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCisg
IC8vLyB0aGF0IG5hbWUuCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtl
eSkgY29uc3Q7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBh
IG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorICAvLy8gXHBhcmFtIGtleSBtYXkg
Y29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3QgU3RyaW5n
JiBrZXkpOworICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51
bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgLy8vIFxw
YXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIGNvbnN0IFZhbHVlJiBvcGVy
YXRvcltdKGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKKyAgLyoqIFxicmllZiBBY2Nlc3MgYW4g
b2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90
CisgICBleGlzdC4KKworICAgKiBJZiB0aGUgb2JqZWN0IGhhcyBubyBlbnRyeSBmb3IgdGhhdCBu
YW1lLCB0aGVuIHRoZSBtZW1iZXIgbmFtZSB1c2VkIHRvCisgICBzdG9yZQorICAgKiB0aGUgbmV3
IGVudHJ5IGlzIG5vdCBkdXBsaWNhdGVkLgorICAgKiBFeGFtcGxlIG9mIHVzZToKKyAgICogXGNv
ZGUKKyAgICogSnNvbjo6VmFsdWUgb2JqZWN0OworICAgKiBzdGF0aWMgY29uc3QgU3RhdGljU3Ry
aW5nIGNvZGUoImNvZGUiKTsKKyAgICogb2JqZWN0W2NvZGVdID0gMTIzNDsKKyAgICogXGVuZGNv
ZGUKKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IFN0YXRpY1N0cmluZyYga2V5KTsK
KyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBu
YW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgVmFsdWUm
IG9wZXJhdG9yW10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpOworICAvLy8gQWNjZXNz
IGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVt
YmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oY29u
c3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0OworI2VuZGlmCisgIC8vLyBSZXR1cm4g
dGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2Uu
CisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgVmFsdWUgZ2V0KGNvbnN0IGNoYXIqIGtleSwgY29u
c3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBu
YW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8vLyBcbm90
ZSBkZWVwIGNvcHkKKyAgLy8vIFxub3RlIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4K
KyAgVmFsdWUKKyAgZ2V0KGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIGNvbnN0
IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFt
ZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5vdGUg
ZGVlcCBjb3B5CisgIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgor
ICBWYWx1ZSBnZXQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUp
IGNvbnN0OworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBu
YW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8vLyBcbm90
ZSBkZWVwIGNvcHkKKyAgVmFsdWUgZ2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5LCBj
b25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyNlbmRpZgorICAvLy8gTW9zdCBnZW5l
cmFsIGFuZCBlZmZpY2llbnQgdmVyc2lvbiBvZiBpc01lbWJlcigpY29uc3QsIGdldCgpY29uc3Qs
CisgIC8vLyBhbmQgb3BlcmF0b3JbXWNvbnN0CisgIC8vLyBcbm90ZSBBcyBzdGF0ZWQgZWxzZXdo
ZXJlLCBiZWhhdmlvciBpcyB1bmRlZmluZWQgaWYgKGVuZC1iZWdpbikgPj0gMl4zMAorICBWYWx1
ZSBjb25zdCogZmluZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCogZW5kKSBjb25zdDsK
KyAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2Ygb2JqZWN0LW11dGF0
b3JzLgorICAvLy8gXG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZp
bmVkIGlmIChlbmQtYmVnaW4pID49IDJeMzAKKyAgLy8vIFxyZXR1cm4gbm9uLXplcm8sIGJ1dCBK
U09OX0FTU0VSVCBpZiB0aGlzIGlzIG5laXRoZXIgb2JqZWN0IG5vciBudWxsVmFsdWUuCisgIFZh
bHVlKiBkZW1hbmQoY2hhciBjb25zdCogYmVnaW4sIGNoYXIgY29uc3QqIGVuZCk7CisgIC8vLyBc
YnJpZWYgUmVtb3ZlIGFuZCByZXR1cm4gdGhlIG5hbWVkIG1lbWJlci4KKyAgLy8vCisgIC8vLyBE
byBub3RoaW5nIGlmIGl0IGRpZCBub3QgZXhpc3QuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmpl
Y3RWYWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5cGUoKSBpcyB1bmNoYW5nZWQKKyAg
dm9pZCByZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5KTsKKyAgLy8vIFNhbWUgYXMgcmVtb3Zl
TWVtYmVyKGNvbnN0IGNoYXIqKQorICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRl
ZCBudWxscy4KKyAgdm9pZCByZW1vdmVNZW1iZXIoY29uc3QgU3RyaW5nJiBrZXkpOworICAvLy8g
U2FtZSBhcyByZW1vdmVNZW1iZXIoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwg
VmFsdWUqIHJlbW92ZWQpLAorICAvLy8gYnV0ICdrZXknIGlzIG51bGwtdGVybWluYXRlZC4KKyAg
Ym9vbCByZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBWYWx1ZSogcmVtb3ZlZCk7CisgIC8q
KiBcYnJpZWYgUmVtb3ZlIHRoZSBuYW1lZCBtYXAgbWVtYmVyLgorCisgICAgICBVcGRhdGUgJ3Jl
bW92ZWQnIGlmZiByZW1vdmVkLgorICAgICAgXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRl
ZCBudWxscy4KKyAgICAgIFxyZXR1cm4gdHJ1ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykK
KyAgKi8KKyAgYm9vbCByZW1vdmVNZW1iZXIoU3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1v
dmVkKTsKKyAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKFN0cmluZyBjb25zdCYga2V5LCBWYWx1
ZSogcmVtb3ZlZCkKKyAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0
IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpOworICAvKiogXGJyaWVmIFJlbW92ZSB0aGUgaW5k
ZXhlZCBhcnJheSBlbGVtZW50LgorCisgICAgICBPKG4pIGV4cGVuc2l2ZSBvcGVyYXRpb25zLgor
ICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KKyAgICAgIFxyZXR1cm4gdHJ1ZSBp
ZiByZW1vdmVkIChubyBleGNlcHRpb25zKQorICAqLworICBib29sIHJlbW92ZUluZGV4KEFycmF5
SW5kZXggaW5kZXgsIFZhbHVlKiByZW1vdmVkKTsKKworICAvLy8gUmV0dXJuIHRydWUgaWYgdGhl
IG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgorICAvLy8gXG5vdGUgJ2tleScgbXVzdCBi
ZSBudWxsLXRlcm1pbmF0ZWQuCisgIGJvb2wgaXNNZW1iZXIoY29uc3QgY2hhcioga2V5KSBjb25z
dDsKKyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVyIG5hbWVkIGtl
eS4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIGJvb2wg
aXNNZW1iZXIoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OworICAvLy8gU2FtZSBhcyBpc01lbWJl
cihTdHJpbmcgY29uc3QmIGtleSljb25zdAorICBib29sIGlzTWVtYmVyKGNvbnN0IGNoYXIqIGJl
Z2luLCBjb25zdCBjaGFyKiBlbmQpIGNvbnN0OworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8v
LyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCisgIGJv
b2wgaXNNZW1iZXIoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0OworI2VuZGlm
CiAKLS8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotLy8gICAgICBFbnVtTWVtYmVyTmFtZXMgZW51
bU1lbWJlck5hbWVzKCkgY29uc3Q7Ci0vLyAgICAgIEVudW1WYWx1ZXMgZW51bVZhbHVlcygpIGNv
bnN0OwotLy8jIGVuZGlmCisgIC8vLyBcYnJpZWYgUmV0dXJuIGEgbGlzdCBvZiB0aGUgbWVtYmVy
IG5hbWVzLgorICAvLy8KKyAgLy8vIElmIG51bGwsIHJldHVybiBhbiBlbXB0eSBsaXN0LgorICAv
Ly8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlCisgIC8vLyBccG9zdCBp
ZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUKKyAgTWVtYmVycyBn
ZXRNZW1iZXJOYW1lcygpIGNvbnN0OworCisgIC8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAorICAv
LyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25zdDsKKyAgLy8gICAg
ICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25zdDsKKyAgLy8jIGVuZGlmCisKKyAgLy8vIFxk
ZXByZWNhdGVkIEFsd2F5cyBwYXNzIGxlbi4KKyAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2Ugc2V0
Q29tbWVudChTdHJpbmcgY29uc3QmKSBpbnN0ZWFkLiIpCisgIHZvaWQgc2V0Q29tbWVudChjb25z
dCBjaGFyKiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICAgIHNldENv
bW1lbnQoU3RyaW5nKGNvbW1lbnQsIHN0cmxlbihjb21tZW50KSksIHBsYWNlbWVudCk7CisgIH0K
KyAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCisgIHZvaWQgc2V0Q29t
bWVudChjb25zdCBjaGFyKiBjb21tZW50LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCkgeworICAgIHNldENvbW1lbnQoU3RyaW5nKGNvbW1lbnQsIGxlbiksIHBsYWNlbWVu
dCk7CisgIH0KKyAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCisgIHZv
aWQgc2V0Q29tbWVudChTdHJpbmcgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQp
OworICBib29sIGhhc0NvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0Owor
ICAvLy8gSW5jbHVkZSBkZWxpbWl0ZXJzIGFuZCBlbWJlZGRlZCBuZXdsaW5lcy4KKyAgU3RyaW5n
IGdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0OworCisgIFN0cmlu
ZyB0b1N0eWxlZFN0cmluZygpIGNvbnN0OworCisgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29u
c3Q7CisgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0OworCisgIGl0ZXJhdG9yIGJlZ2luKCk7
CisgIGl0ZXJhdG9yIGVuZCgpOworCisgIC8vIEFjY2Vzc29ycyBmb3IgdGhlIFtzdGFydCwgbGlt
aXQpIHJhbmdlIG9mIGJ5dGVzIHdpdGhpbiB0aGUgSlNPTiB0ZXh0IGZyb20KKyAgLy8gd2hpY2gg
dGhpcyB2YWx1ZSB3YXMgcGFyc2VkLCBpZiBhbnkuCisgIHZvaWQgc2V0T2Zmc2V0U3RhcnQocHRy
ZGlmZl90IHN0YXJ0KTsKKyAgdm9pZCBzZXRPZmZzZXRMaW1pdChwdHJkaWZmX3QgbGltaXQpOwor
ICBwdHJkaWZmX3QgZ2V0T2Zmc2V0U3RhcnQoKSBjb25zdDsKKyAgcHRyZGlmZl90IGdldE9mZnNl
dExpbWl0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgIHZvaWQgc2V0VHlwZShWYWx1ZVR5cGUgdikg
eworICAgIGJpdHNfLnZhbHVlX3R5cGVfID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4odik7
CisgIH0KKyAgYm9vbCBpc0FsbG9jYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGJpdHNfLmFsbG9jYXRl
ZF87IH0KKyAgdm9pZCBzZXRJc0FsbG9jYXRlZChib29sIHYpIHsgYml0c18uYWxsb2NhdGVkXyA9
IHY7IH0KKworICB2b2lkIGluaXRCYXNpYyhWYWx1ZVR5cGUgdHlwZSwgYm9vbCBhbGxvY2F0ZWQg
PSBmYWxzZSk7CisgIHZvaWQgZHVwUGF5bG9hZChjb25zdCBWYWx1ZSYgb3RoZXIpOworICB2b2lk
IHJlbGVhc2VQYXlsb2FkKCk7CisgIHZvaWQgZHVwTWV0YShjb25zdCBWYWx1ZSYgb3RoZXIpOwor
CisgIFZhbHVlJiByZXNvbHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSk7CisgIFZhbHVlJiBy
ZXNvbHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogZW5kKTsKKworICAv
LyBzdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0KKyAgLy97CisgIC8vICAgdHlwZWRlZiBjb25z
dCBjaGFyICpyZXN1bHRfdHlwZTsKKyAgLy8gICBjb25zdCBjaGFyICpvcGVyYXRvcigpKCBjb25z
dCBDWlN0cmluZyAmbmFtZSApIGNvbnN0CisgIC8vICAgeworICAvLyAgICAgIHJldHVybiBuYW1l
LmNfc3RyKCk7CisgIC8vICAgfQorICAvL307CisKKyAgdW5pb24gVmFsdWVIb2xkZXIgeworICAg
IExhcmdlc3RJbnQgaW50XzsKKyAgICBMYXJnZXN0VUludCB1aW50XzsKKyAgICBkb3VibGUgcmVh
bF87CisgICAgYm9vbCBib29sXzsKKyAgICBjaGFyKiBzdHJpbmdfOyAvLyBpZiBhbGxvY2F0ZWRf
LCBwdHIgdG8geyB1bnNpZ25lZCwgY2hhcltdIH0uCisgICAgT2JqZWN0VmFsdWVzKiBtYXBfOwor
ICB9IHZhbHVlXzsKKworICBzdHJ1Y3QgeworICAgIC8vIFJlYWxseSBhIFZhbHVlVHlwZSwgYnV0
IHR5cGVzIHNob3VsZCBhZ3JlZSBmb3IgYml0ZmllbGQgcGFja2luZy4KKyAgICB1bnNpZ25lZCBp
bnQgdmFsdWVfdHlwZV8gOiA4OworICAgIC8vIFVubGVzcyBhbGxvY2F0ZWRfLCBzdHJpbmdfIG11
c3QgYmUgbnVsbC10ZXJtaW5hdGVkLgorICAgIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsK
KyAgfSBiaXRzXzsKKworICBjbGFzcyBDb21tZW50cyB7CisgIHB1YmxpYzoKKyAgICBDb21tZW50
cygpID0gZGVmYXVsdDsKKyAgICBDb21tZW50cyhjb25zdCBDb21tZW50cyYgdGhhdCk7CisgICAg
Q29tbWVudHMoQ29tbWVudHMmJiB0aGF0KTsKKyAgICBDb21tZW50cyYgb3BlcmF0b3I9KGNvbnN0
IENvbW1lbnRzJiB0aGF0KTsKKyAgICBDb21tZW50cyYgb3BlcmF0b3I9KENvbW1lbnRzJiYgdGhh
dCk7CisgICAgYm9vbCBoYXMoQ29tbWVudFBsYWNlbWVudCBzbG90KSBjb25zdDsKKyAgICBTdHJp
bmcgZ2V0KENvbW1lbnRQbGFjZW1lbnQgc2xvdCkgY29uc3Q7CisgICAgdm9pZCBzZXQoQ29tbWVu
dFBsYWNlbWVudCBzbG90LCBTdHJpbmcgcyk7CisKKyAgcHJpdmF0ZToKKyAgICB1c2luZyBBcnJh
eSA9IHN0ZDo6YXJyYXk8U3RyaW5nLCBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQ+OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxBcnJheT4gcHRyXzsKKyAgfTsKKyAgQ29tbWVudHMgY29tbWVudHNfOwor
CisgIC8vIFtzdGFydCwgbGltaXQpIGJ5dGUgb2Zmc2V0cyBpbiB0aGUgc291cmNlIEpTT04gdGV4
dCBmcm9tIHdoaWNoIHRoaXMgVmFsdWUKKyAgLy8gd2FzIGV4dHJhY3RlZC4KKyAgcHRyZGlmZl90
IHN0YXJ0XzsKKyAgcHRyZGlmZl90IGxpbWl0XzsKK307CiAKLSAgICAgIC8vLyBDb21tZW50cyBt
dXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAqLwotICAgICAgdm9pZCBzZXRDb21tZW50KCBjb25zdCBj
aGFyICpjb21tZW50LAotICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCApOwotICAgICAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICov
Ci0gICAgICB2b2lkIHNldENvbW1lbnQoIGNvbnN0IHN0ZDo6c3RyaW5nICZjb21tZW50LAotICAg
ICAgICAgICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApOwotICAgICAg
Ym9vbCBoYXNDb21tZW50KCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApIGNvbnN0OwotICAg
ICAgLy8vIEluY2x1ZGUgZGVsaW1pdGVycyBhbmQgZW1iZWRkZWQgbmV3bGluZXMuCi0gICAgICBz
dGQ6OnN0cmluZyBnZXRDb21tZW50KCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCApIGNvbnN0
OwotCi0gICAgICBzdGQ6OnN0cmluZyB0b1N0eWxlZFN0cmluZygpIGNvbnN0OwotCi0gICAgICBj
b25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0OwotICAgICAgY29uc3RfaXRlcmF0b3IgZW5kKCkg
Y29uc3Q7Ci0KLSAgICAgIGl0ZXJhdG9yIGJlZ2luKCk7Ci0gICAgICBpdGVyYXRvciBlbmQoKTsK
LQotICAgcHJpdmF0ZToKLSAgICAgIFZhbHVlICZyZXNvbHZlUmVmZXJlbmNlKCBjb25zdCBjaGFy
ICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMgKTsK
LQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGlubGluZSBib29s
IGlzSXRlbUF2YWlsYWJsZSgpIGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4gaXRlbUlz
VXNlZF8gPT0gMDsKLSAgICAgIH0KLQotICAgICAgaW5saW5lIHZvaWQgc2V0SXRlbVVzZWQoIGJv
b2wgaXNVc2VkID0gdHJ1ZSApCi0gICAgICB7Ci0gICAgICAgICBpdGVtSXNVc2VkXyA9IGlzVXNl
ZCA/IDEgOiAwOwotICAgICAgfQotCi0gICAgICBpbmxpbmUgYm9vbCBpc01lbWJlck5hbWVTdGF0
aWMoKSBjb25zdAotICAgICAgewotICAgICAgICAgcmV0dXJuIG1lbWJlck5hbWVJc1N0YXRpY18g
PT0gMDsKLSAgICAgIH0KLQotICAgICAgaW5saW5lIHZvaWQgc2V0TWVtYmVyTmFtZUlzU3RhdGlj
KCBib29sIGlzU3RhdGljICkKLSAgICAgIHsKLSAgICAgICAgIG1lbWJlck5hbWVJc1N0YXRpY18g
PSBpc1N0YXRpYyA/IDEgOiAwOwotICAgICAgfQotIyBlbmRpZiAvLyAjIGlmZGVmIEpTT05fVkFM
VUVfVVNFX0lOVEVSTkFMX01BUAotCi0gICBwcml2YXRlOgotICAgICAgc3RydWN0IENvbW1lbnRJ
bmZvCi0gICAgICB7Ci0gICAgICAgICBDb21tZW50SW5mbygpOwotICAgICAgICAgfkNvbW1lbnRJ
bmZvKCk7Ci0KLSAgICAgICAgIHZvaWQgc2V0Q29tbWVudCggY29uc3QgY2hhciAqdGV4dCApOwot
Ci0gICAgICAgICBjaGFyICpjb21tZW50XzsKLSAgICAgIH07Ci0KLSAgICAgIC8vc3RydWN0IE1l
bWJlck5hbWVzVHJhbnNmb3JtCi0gICAgICAvL3sKLSAgICAgIC8vICAgdHlwZWRlZiBjb25zdCBj
aGFyICpyZXN1bHRfdHlwZTsKLSAgICAgIC8vICAgY29uc3QgY2hhciAqb3BlcmF0b3IoKSggY29u
c3QgQ1pTdHJpbmcgJm5hbWUgKSBjb25zdAotICAgICAgLy8gICB7Ci0gICAgICAvLyAgICAgIHJl
dHVybiBuYW1lLmNfc3RyKCk7Ci0gICAgICAvLyAgIH0KLSAgICAgIC8vfTsKLQotICAgICAgdW5p
b24gVmFsdWVIb2xkZXIKLSAgICAgIHsKLSAgICAgICAgIExhcmdlc3RJbnQgaW50XzsKLSAgICAg
ICAgIExhcmdlc3RVSW50IHVpbnRfOwotICAgICAgICAgZG91YmxlIHJlYWxfOwotICAgICAgICAg
Ym9vbCBib29sXzsKLSAgICAgICAgIGNoYXIgKnN0cmluZ187Ci0jIGlmZGVmIEpTT05fVkFMVUVf
VVNFX0lOVEVSTkFMX01BUAotICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5ICphcnJheV87Ci0g
ICAgICAgICBWYWx1ZUludGVybmFsTWFwICptYXBfOwotI2Vsc2UKLSAgICAgICAgIE9iamVjdFZh
bHVlcyAqbWFwXzsKLSMgZW5kaWYKLSAgICAgIH0gdmFsdWVfOwotICAgICAgVmFsdWVUeXBlIHR5
cGVfIDogODsKLSAgICAgIGludCBhbGxvY2F0ZWRfIDogMTsgICAgIC8vIE5vdGVzOiBpZiBkZWNs
YXJlZCBhcyBib29sLCBiaXRmaWVsZCBpcyB1c2VsZXNzLgotIyBpZmRlZiBKU09OX1ZBTFVFX1VT
RV9JTlRFUk5BTF9NQVAKLSAgICAgIHVuc2lnbmVkIGludCBpdGVtSXNVc2VkXyA6IDE7ICAgICAg
Ly8gdXNlZCBieSB0aGUgVmFsdWVJbnRlcm5hbE1hcCBjb250YWluZXIuCi0gICAgICBpbnQgbWVt
YmVyTmFtZUlzU3RhdGljXyA6IDE7ICAgICAgIC8vIHVzZWQgYnkgdGhlIFZhbHVlSW50ZXJuYWxN
YXAgY29udGFpbmVyLgotIyBlbmRpZgotICAgICAgQ29tbWVudEluZm8gKmNvbW1lbnRzXzsKLSAg
IH07Ci0KLQotICAgLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5kIHVudGVzdGVkOiByZXByZXNl
bnRzIGFuIGVsZW1lbnQgb2YgdGhlICJwYXRoIiB0byBhY2Nlc3MgYSBub2RlLgotICAgICovCi0g
ICBjbGFzcyBQYXRoQXJndW1lbnQKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIGZyaWVuZCBjbGFz
cyBQYXRoOwotCi0gICAgICBQYXRoQXJndW1lbnQoKTsKLSAgICAgIFBhdGhBcmd1bWVudCggQXJy
YXlJbmRleCBpbmRleCApOwotICAgICAgUGF0aEFyZ3VtZW50KCBjb25zdCBjaGFyICprZXkgKTsK
LSAgICAgIFBhdGhBcmd1bWVudCggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApOwotCi0gICBwcml2
YXRlOgotICAgICAgZW51bSBLaW5kCi0gICAgICB7Ci0gICAgICAgICBraW5kTm9uZSA9IDAsCi0g
ICAgICAgICBraW5kSW5kZXgsCi0gICAgICAgICBraW5kS2V5Ci0gICAgICB9OwotICAgICAgc3Rk
OjpzdHJpbmcga2V5XzsKLSAgICAgIEFycmF5SW5kZXggaW5kZXhfOwotICAgICAgS2luZCBraW5k
XzsKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgRXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVw
cmVzZW50cyBhICJwYXRoIiB0byBhY2Nlc3MgYSBub2RlLgotICAgICoKLSAgICAqIFN5bnRheDoK
LSAgICAqIC0gIi4iID0+IHJvb3Qgbm9kZQotICAgICogLSAiLltuXSIgPT4gZWxlbWVudHMgYXQg
aW5kZXggJ24nIG9mIHJvb3Qgbm9kZSAoYW4gYXJyYXkgdmFsdWUpCi0gICAgKiAtICIubmFtZSIg
PT4gbWVtYmVyIG5hbWVkICduYW1lJyBvZiByb290IG5vZGUgKGFuIG9iamVjdCB2YWx1ZSkKLSAg
ICAqIC0gIi5uYW1lMS5uYW1lMi5uYW1lMyIKLSAgICAqIC0gIi5bMF1bMV1bMl0ubmFtZTFbM10i
Ci0gICAgKiAtICIuJSIgPT4gbWVtYmVyIG5hbWUgaXMgcHJvdmlkZWQgYXMgcGFyYW1ldGVyCi0g
ICAgKiAtICIuWyVdIiA9PiBpbmRleCBpcyBwcm92aWVkIGFzIHBhcmFtZXRlcgotICAgICovCi0g
ICBjbGFzcyBQYXRoCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICBQYXRoKCBjb25zdCBzdGQ6OnN0
cmluZyAmcGF0aCwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTEgPSBQYXRoQXJn
dW1lbnQoKSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTIgPSBQYXRoQXJndW1l
bnQoKSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTMgPSBQYXRoQXJndW1lbnQo
KSwKLSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTQgPSBQYXRoQXJndW1lbnQoKSwK
LSAgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYTUgPSBQYXRoQXJndW1lbnQoKSApOwot
Ci0gICAgICBjb25zdCBWYWx1ZSAmcmVzb2x2ZSggY29uc3QgVmFsdWUgJnJvb3QgKSBjb25zdDsK
LSAgICAgIFZhbHVlIHJlc29sdmUoIGNvbnN0IFZhbHVlICZyb290LCAKLSAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdDsKLSAgICAgIC8vLyBDcmVh
dGVzIHRoZSAicGF0aCIgdG8gYWNjZXNzIHRoZSBzcGVjaWZpZWQgbm9kZSBhbmQgcmV0dXJucyBh
IHJlZmVyZW5jZSBvbiB0aGUgbm9kZS4KLSAgICAgIFZhbHVlICZtYWtlKCBWYWx1ZSAmcm9vdCAp
IGNvbnN0OwotCi0gICBwcml2YXRlOgotICAgICAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjxjb25zdCBQ
YXRoQXJndW1lbnQgKj4gSW5BcmdzOwotICAgICAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxQYXRoQXJn
dW1lbnQ+IEFyZ3M7Ci0KLSAgICAgIHZvaWQgbWFrZVBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5nICZw
YXRoLAotICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5BcmdzICZpbiApOwotICAgICAgdm9p
ZCBhZGRQYXRoSW5BcmcoIGNvbnN0IHN0ZDo6c3RyaW5nICZwYXRoLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBJ
bkFyZ3M6OmNvbnN0X2l0ZXJhdG9yICZpdEluQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBQYXRoQXJndW1lbnQ6OktpbmQga2luZCApOwotICAgICAgdm9pZCBpbnZhbGlkUGF0aCggY29u
c3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxvY2F0
aW9uICk7Ci0KLSAgICAgIEFyZ3MgYXJnc187Ci0gICB9OwotCi0KLQotI2lmZGVmIEpTT05fVkFM
VUVfVVNFX0lOVEVSTkFMX01BUAotICAgLyoqIFxicmllZiBBbGxvY2F0b3IgdG8gY3VzdG9taXpl
IFZhbHVlIGludGVybmFsIG1hcC4KLSAgICAqIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBzaW1w
bGUgaW1wbGVtZW50YXRpb24gKGRlZmF1bHQgaW1wbGVtZW50YXRpb24gYWN0dWFsbHkKLSAgICAq
IHVzZSBtZW1vcnkgcG9vbCBmb3Igc3BlZWQpLgotICAgICogXGNvZGUKLSAgICAgIGNsYXNzIERl
ZmF1bHRWYWx1ZU1hcEFsbG9jYXRvciA6IHB1YmxpYyBWYWx1ZU1hcEFsbG9jYXRvcgotICAgICAg
ewotICAgICAgcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gVmFsdWVNYXBBbGxvY2F0b3IKLSAg
ICAgICAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwKCkKLSAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgVmFsdWVJbnRlcm5hbE1hcCgpOwotICAgICAgICAgfQotCi0g
ICAgICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcENvcHkoIGNvbnN0IFZhbHVl
SW50ZXJuYWxNYXAgJm90aGVyICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
VmFsdWVJbnRlcm5hbE1hcCggb3RoZXIgKTsKLSAgICAgICAgIH0KLQotICAgICAgICAgdmlydHVh
bCB2b2lkIGRlc3RydWN0TWFwKCBWYWx1ZUludGVybmFsTWFwICptYXAgKQotICAgICAgICAgewot
ICAgICAgICAgICAgZGVsZXRlIG1hcDsKLSAgICAgICAgIH0KLQotICAgICAgICAgdmlydHVhbCBW
YWx1ZUludGVybmFsTGluayAqYWxsb2NhdGVNYXBCdWNrZXRzKCB1bnNpZ25lZCBpbnQgc2l6ZSAp
Ci0gICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxMaW5rW3Np
emVdOwotICAgICAgICAgfQotCi0gICAgICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcEJ1Y2tl
dHMoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rcyApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBk
ZWxldGUgW10gbGlua3M7Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHZpcnR1YWwgVmFsdWVJbnRl
cm5hbExpbmsgKmFsbG9jYXRlTWFwTGluaygpCi0gICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gbmV3IFZhbHVlSW50ZXJuYWxMaW5rKCk7Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIHZpcnR1
YWwgdm9pZCByZWxlYXNlTWFwTGluayggVmFsdWVJbnRlcm5hbExpbmsgKmxpbmsgKQotICAgICAg
ICAgewotICAgICAgICAgICAgZGVsZXRlIGxpbms7Ci0gICAgICAgICB9Ci0gICAgICB9OwotICAg
ICogXGVuZGNvZGUKLSAgICAqLyAKLSAgIGNsYXNzIEpTT05fQVBJIFZhbHVlTWFwQWxsb2NhdG9y
Ci0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICB2aXJ0dWFsIH5WYWx1ZU1hcEFsbG9jYXRvcigpOwot
ICAgICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdNYXAoKSA9IDA7Ci0gICAgICB2aXJ0
dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5ld01hcENvcHkoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAg
Jm90aGVyICkgPSAwOwotICAgICAgdmlydHVhbCB2b2lkIGRlc3RydWN0TWFwKCBWYWx1ZUludGVy
bmFsTWFwICptYXAgKSA9IDA7Ci0gICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxMaW5rICphbGxv
Y2F0ZU1hcEJ1Y2tldHMoIHVuc2lnbmVkIGludCBzaXplICkgPSAwOwotICAgICAgdmlydHVhbCB2
b2lkIHJlbGVhc2VNYXBCdWNrZXRzKCBWYWx1ZUludGVybmFsTGluayAqbGlua3MgKSA9IDA7Ci0g
ICAgICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxMaW5rICphbGxvY2F0ZU1hcExpbmsoKSA9IDA7Ci0g
ICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1hcExpbmsoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5r
ICkgPSAwOwotICAgfTsKLQotICAgLyoqIFxicmllZiBWYWx1ZUludGVybmFsTWFwIGhhc2gtbWFw
IGJ1Y2tldCBjaGFpbiBsaW5rIChmb3IgaW50ZXJuYWwgdXNlIG9ubHkpLgotICAgICogXGludGVy
bmFsIHByZXZpb3VzXyAmIG5leHRfIGFsbG93cyBmb3IgYmlkaXJlY3Rpb25hbCB0cmF2ZXJzYWwu
Ci0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFZhbHVlSW50ZXJuYWxMaW5rCi0gICB7Ci0gICBw
dWJsaWM6Ci0gICAgICBlbnVtIHsgaXRlbVBlckxpbmsgPSA2IH07ICAvLyBzaXplb2YoVmFsdWVJ
bnRlcm5hbExpbmspID0gMTI4IG9uIDMyIGJpdHMgYXJjaGl0ZWN0dXJlLgotICAgICAgZW51bSBJ
bnRlcm5hbEZsYWdzIHsgCi0gICAgICAgICBmbGFnQXZhaWxhYmxlID0gMCwKLSAgICAgICAgIGZs
YWdVc2VkID0gMQotICAgICAgfTsKLQotICAgICAgVmFsdWVJbnRlcm5hbExpbmsoKTsKLQotICAg
ICAgflZhbHVlSW50ZXJuYWxMaW5rKCk7Ci0KLSAgICAgIFZhbHVlIGl0ZW1zX1tpdGVtUGVyTGlu
a107Ci0gICAgICBjaGFyICprZXlzX1tpdGVtUGVyTGlua107Ci0gICAgICBWYWx1ZUludGVybmFs
TGluayAqcHJldmlvdXNfOwotICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKm5leHRfOwotICAgfTsK
LQotCi0gICAvKiogXGJyaWVmIEEgbGlua2VkIHBhZ2UgYmFzZWQgaGFzaC10YWJsZSBpbXBsZW1l
bnRhdGlvbiB1c2VkIGludGVybmFsbHkgYnkgVmFsdWUuCi0gICAgKiBcaW50ZXJuYWwgVmFsdWVJ
bnRlcm5hbE1hcCBpcyBhIHRyYWRpb25hbCBidWNrZXQgYmFzZWQgaGFzaC10YWJsZSwgd2l0aCBh
IGxpbmtlZAotICAgICogbGlzdCBpbiBlYWNoIGJ1Y2tldCB0byBoYW5kbGUgY29sbGlzaW9uLiBU
aGVyZSBpcyBhbiBhZGRpb25hbCB0d2lzdCBpbiB0aGF0Ci0gICAgKiBlYWNoIG5vZGUgb2YgdGhl
IGNvbGxpc2lvbiBsaW5rZWQgbGlzdCBpcyBhIHBhZ2UgY29udGFpbmluZyBhIGZpeGVkIGFtb3Vu
dCBvZgotICAgICogdmFsdWUuIFRoaXMgcHJvdmlkZXMgYSBiZXR0ZXIgY29tcHJvbWlzZSBiZXR3
ZWVuIG1lbW9yeSB1c2FnZSBhbmQgc3BlZWQuCi0gICAgKiAKLSAgICAqIEVhY2ggYnVja2V0IGlz
IG1hZGUgdXAgb2YgYSBjaGFpbmVkIGxpc3Qgb2YgVmFsdWVJbnRlcm5hbExpbmsuIFRoZSBsYXN0
Ci0gICAgKiBsaW5rIG9mIGEgZ2l2ZW4gYnVja2V0IGNhbiBiZSBmb3VuZCBpbiB0aGUgJ3ByZXZp
b3VzXycgZmllbGQgb2YgdGhlIGZvbGxvd2luZyBidWNrZXQuCi0gICAgKiBUaGUgbGFzdCBsaW5r
IG9mIHRoZSBsYXN0IGJ1Y2tldCBpcyBzdG9yZWQgaW4gdGFpbExpbmtfIGFzIGl0IGhhcyBubyBm
b2xsb3dpbmcgYnVja2V0LgotICAgICogT25seSB0aGUgbGFzdCBsaW5rIG9mIGEgYnVja2V0IG1h
eSBjb250YWlucyAnYXZhaWxhYmxlJyBpdGVtLiBUaGUgbGFzdCBsaW5rIGFsd2F5cwotICAgICog
Y29udGFpbnMgYXQgbGVhc3Qgb25lIGVsZW1lbnQgdW5sZXNzIGlzIGl0IHRoZSBidWNrZXQgb25l
IHZlcnkgZmlyc3QgbGluay4KLSAgICAqLwotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVJbnRlcm5h
bE1hcAotICAgewotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotICAgICAg
ZnJpZW5kIGNsYXNzIFZhbHVlOwotICAgcHVibGljOgotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBp
bnQgSGFzaEtleTsKLSAgICAgIHR5cGVkZWYgdW5zaWduZWQgaW50IEJ1Y2tldEluZGV4OwotCi0j
IGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCi0gICAgICBzdHJ1Y3Qg
SXRlcmF0b3JTdGF0ZQotICAgICAgewotICAgICAgICAgSXRlcmF0b3JTdGF0ZSgpIAotICAgICAg
ICAgICAgOiBtYXBfKDApCi0gICAgICAgICAgICAsIGxpbmtfKDApCi0gICAgICAgICAgICAsIGl0
ZW1JbmRleF8oMCkKLSAgICAgICAgICAgICwgYnVja2V0SW5kZXhfKDApIAotICAgICAgICAgewot
ICAgICAgICAgfQotICAgICAgICAgVmFsdWVJbnRlcm5hbE1hcCAqbWFwXzsKLSAgICAgICAgIFZh
bHVlSW50ZXJuYWxMaW5rICpsaW5rXzsKLSAgICAgICAgIEJ1Y2tldEluZGV4IGl0ZW1JbmRleF87
Ci0gICAgICAgICBCdWNrZXRJbmRleCBidWNrZXRJbmRleF87Ci0gICAgICB9OwotIyBlbmRpZiAv
LyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgotCi0gICAgICBWYWx1
ZUludGVybmFsTWFwKCk7Ci0gICAgICBWYWx1ZUludGVybmFsTWFwKCBjb25zdCBWYWx1ZUludGVy
bmFsTWFwICZvdGhlciApOwotICAgICAgVmFsdWVJbnRlcm5hbE1hcCAmb3BlcmF0b3IgPSggY29u
c3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKTsKLSAgICAgIH5WYWx1ZUludGVybmFsTWFwKCk7
Ci0KLSAgICAgIHZvaWQgc3dhcCggVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKTsKLQotICAgICAg
QnVja2V0SW5kZXggc2l6ZSgpIGNvbnN0OwotCi0gICAgICB2b2lkIGNsZWFyKCk7Ci0KLSAgICAg
IGJvb2wgcmVzZXJ2ZURlbHRhKCBCdWNrZXRJbmRleCBncm93dGggKTsKLQotICAgICAgYm9vbCBy
ZXNlcnZlKCBCdWNrZXRJbmRleCBuZXdJdGVtQ291bnQgKTsKLQotICAgICAgY29uc3QgVmFsdWUg
KmZpbmQoIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0OwotCi0gICAgICBWYWx1ZSAqZmluZCggY29u
c3QgY2hhciAqa2V5ICk7Ci0KLSAgICAgIFZhbHVlICZyZXNvbHZlUmVmZXJlbmNlKCBjb25zdCBj
aGFyICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMg
KTsKLQotICAgICAgdm9pZCByZW1vdmUoIGNvbnN0IGNoYXIgKmtleSApOwotCi0gICAgICB2b2lk
IGRvQWN0dWFsUmVtb3ZlKCBWYWx1ZUludGVybmFsTGluayAqbGluaywgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBCdWNrZXRJbmRleCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJ1Y2tldEluZGV4IGJ1Y2tldEluZGV4ICk7Ci0KLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5r
IComZ2V0TGFzdExpbmtJbkJ1Y2tldCggQnVja2V0SW5kZXggYnVja2V0SW5kZXggKTsKLQotICAg
ICAgVmFsdWUgJnNldE5ld0l0ZW0oIGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBpc1N0YXRpYywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJ
bnRlcm5hbExpbmsgKmxpbmssIAotICAgICAgICAgICAgICAgICAgICAgICAgIEJ1Y2tldEluZGV4
IGluZGV4ICk7Ci0KLSAgICAgIFZhbHVlICZ1bnNhZmVBZGQoIGNvbnN0IGNoYXIgKmtleSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIEhhc2hLZXkgaGFzaGVkS2V5ICk7Ci0KLSAgICAgIEhhc2hLZXkgaGFzaCggY29uc3Qg
Y2hhciAqa2V5ICkgY29uc3Q7Ci0KLSAgICAgIGludCBjb21wYXJlKCBjb25zdCBWYWx1ZUludGVy
bmFsTWFwICZvdGhlciApIGNvbnN0OwotCi0gICBwcml2YXRlOgotICAgICAgdm9pZCBtYWtlQmVn
aW5JdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQgKSBjb25zdDsKLSAgICAgIHZvaWQgbWFrZUVu
ZEl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0OwotICAgICAgc3RhdGljIGJvb2wg
ZXF1YWxzKCBjb25zdCBJdGVyYXRvclN0YXRlICZ4LCBjb25zdCBJdGVyYXRvclN0YXRlICZvdGhl
ciApOwotICAgICAgc3RhdGljIHZvaWQgaW5jcmVtZW50KCBJdGVyYXRvclN0YXRlICZpdGVyYXRv
ciApOwotICAgICAgc3RhdGljIHZvaWQgaW5jcmVtZW50QnVja2V0KCBJdGVyYXRvclN0YXRlICZp
dGVyYXRvciApOwotICAgICAgc3RhdGljIHZvaWQgZGVjcmVtZW50KCBJdGVyYXRvclN0YXRlICZp
dGVyYXRvciApOwotICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmtleSggY29uc3QgSXRlcmF0b3JT
dGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRpYyBjb25zdCBjaGFyICprZXkoIGNvbnN0IEl0
ZXJhdG9yU3RhdGUgJml0ZXJhdG9yLCBib29sICZpc1N0YXRpYyApOwotICAgICAgc3RhdGljIFZh
bHVlICZ2YWx1ZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IgKTsKLSAgICAgIHN0YXRp
YyBpbnQgZGlzdGFuY2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngsIGNvbnN0IEl0ZXJhdG9yU3Rh
dGUgJnkgKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICpidWNrZXRz
XzsKLSAgICAgIFZhbHVlSW50ZXJuYWxMaW5rICp0YWlsTGlua187Ci0gICAgICBCdWNrZXRJbmRl
eCBidWNrZXRzU2l6ZV87Ci0gICAgICBCdWNrZXRJbmRleCBpdGVtQ291bnRfOwotICAgfTsKLQot
ICAgLyoqIFxicmllZiBBIHNpbXBsaWZpZWQgZGVxdWUgaW1wbGVtZW50YXRpb24gdXNlZCBpbnRl
cm5hbGx5IGJ5IFZhbHVlLgotICAgKiBcaW50ZXJuYWwKLSAgICogSXQgaXMgYmFzZWQgb24gYSBs
aXN0IG9mIGZpeGVkICJwYWdlIiwgZWFjaCBwYWdlIGNvbnRhaW5zIGEgZml4ZWQgbnVtYmVyIG9m
IGl0ZW1zLgotICAgKiBJbnN0ZWFkIG9mIHVzaW5nIGEgbGlua2VkLWxpc3QsIGEgYXJyYXkgb2Yg
cG9pbnRlciBpcyB1c2VkIGZvciBmYXN0IGl0ZW0gbG9vay11cC4KLSAgICogTG9vay11cCBmb3Ig
YW4gZWxlbWVudCBpcyBhcyBmb2xsb3c6Ci0gICAqIC0gY29tcHV0ZSBwYWdlIGluZGV4OiBwYWdl
SW5kZXggPSBpdGVtSW5kZXggLyBpdGVtc1BlclBhZ2UKLSAgICogLSBsb29rLXVwIGl0ZW0gaW4g
cGFnZTogcGFnZXNfW3BhZ2VJbmRleF1baXRlbUluZGV4ICUgaXRlbXNQZXJQYWdlXQotICAgKgot
ICAgKiBJbnNlcnRpb24gaXMgYW1vcnRpemVkIGNvbnN0YW50IHRpbWUgKG9ubHkgdGhlIGFycmF5
IGNvbnRhaW5pbmcgdGhlIGluZGV4IG9mIHBvaW50ZXJzCi0gICAqIG5lZWQgdG8gYmUgcmVhbGxv
Y2F0ZWQgd2hlbiBpdGVtcyBhcmUgYXBwZW5kZWQpLgotICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJ
IFZhbHVlSW50ZXJuYWxBcnJheQotICAgewotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwotICAg
ICAgZnJpZW5kIGNsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOwotICAgcHVibGljOgotICAgICAgZW51
bSB7IGl0ZW1zUGVyUGFnZSA9IDggfTsgICAgLy8gc2hvdWxkIGJlIGEgcG93ZXIgb2YgMiBmb3Ig
ZmFzdCBkaXZpZGUgYW5kIG1vZHVsby4KLSAgICAgIHR5cGVkZWYgVmFsdWU6OkFycmF5SW5kZXgg
QXJyYXlJbmRleDsKLSAgICAgIHR5cGVkZWYgdW5zaWduZWQgaW50IFBhZ2VJbmRleDsKLQotIyBp
Zm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgotICAgICAgc3RydWN0IEl0
ZXJhdG9yU3RhdGUgLy8gTXVzdCBiZSBhIFBPRAotICAgICAgewotICAgICAgICAgSXRlcmF0b3JT
dGF0ZSgpIAotICAgICAgICAgICAgOiBhcnJheV8oMCkKLSAgICAgICAgICAgICwgY3VycmVudFBh
Z2VJbmRleF8oMCkKLSAgICAgICAgICAgICwgY3VycmVudEl0ZW1JbmRleF8oMCkgCi0gICAgICAg
ICB7Ci0gICAgICAgICB9Ci0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5XzsKLSAg
ICAgICAgIFZhbHVlICoqY3VycmVudFBhZ2VJbmRleF87Ci0gICAgICAgICB1bnNpZ25lZCBpbnQg
Y3VycmVudEl0ZW1JbmRleF87Ci0gICAgICB9OwotIyBlbmRpZiAvLyBpZm5kZWYgSlNPTkNQUF9E
T0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgotCi0gICAgICBWYWx1ZUludGVybmFsQXJyYXkoKTsK
LSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhl
ciApOwotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5ICZvcGVyYXRvciA9KCBjb25zdCBWYWx1ZUlu
dGVybmFsQXJyYXkgJm90aGVyICk7Ci0gICAgICB+VmFsdWVJbnRlcm5hbEFycmF5KCk7Ci0gICAg
ICB2b2lkIHN3YXAoIFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKTsKLQotICAgICAgdm9pZCBj
bGVhcigpOwotICAgICAgdm9pZCByZXNpemUoIEFycmF5SW5kZXggbmV3U2l6ZSApOwotCi0gICAg
ICBWYWx1ZSAmcmVzb2x2ZVJlZmVyZW5jZSggQXJyYXlJbmRleCBpbmRleCApOwotCi0gICAgICBW
YWx1ZSAqZmluZCggQXJyYXlJbmRleCBpbmRleCApIGNvbnN0OwotCi0gICAgICBBcnJheUluZGV4
IHNpemUoKSBjb25zdDsKLQotICAgICAgaW50IGNvbXBhcmUoIGNvbnN0IFZhbHVlSW50ZXJuYWxB
cnJheSAmb3RoZXIgKSBjb25zdDsKLQotICAgcHJpdmF0ZToKLSAgICAgIHN0YXRpYyBib29sIGVx
dWFscyggY29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JTdGF0ZSAmb3RoZXIg
KTsKLSAgICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudCggSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3Ig
KTsKLSAgICAgIHN0YXRpYyB2b2lkIGRlY3JlbWVudCggSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3Ig
KTsKLSAgICAgIHN0YXRpYyBWYWx1ZSAmZGVyZWZlcmVuY2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICk7Ci0gICAgICBzdGF0aWMgVmFsdWUgJnVuc2FmZURlcmVmZXJlbmNlKCBjb25z
dCBJdGVyYXRvclN0YXRlICZpdGVyYXRvciApOwotICAgICAgc3RhdGljIGludCBkaXN0YW5jZSgg
Y29uc3QgSXRlcmF0b3JTdGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JTdGF0ZSAmeSApOwotICAgICAg
c3RhdGljIEFycmF5SW5kZXggaW5kZXhPZiggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3Ig
KTsKLSAgICAgIHZvaWQgbWFrZUJlZ2luSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29u
c3Q7Ci0gICAgICB2b2lkIG1ha2VFbmRJdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQgKSBjb25z
dDsKLSAgICAgIHZvaWQgbWFrZUl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCwgQXJyYXlJbmRl
eCBpbmRleCApIGNvbnN0OwotCi0gICAgICB2b2lkIG1ha2VJbmRleFZhbGlkKCBBcnJheUluZGV4
IGluZGV4ICk7Ci0KLSAgICAgIFZhbHVlICoqcGFnZXNfOwotICAgICAgQXJyYXlJbmRleCBzaXpl
XzsKLSAgICAgIFBhZ2VJbmRleCBwYWdlQ291bnRfOwotICAgfTsKLQotICAgLyoqIFxicmllZiBF
eHBlcmltZW50YWw6IGRvIG5vdCB1c2UuIEFsbG9jYXRvciB0byBjdXN0b21pemUgVmFsdWUgaW50
ZXJuYWwgYXJyYXkuCi0gICAgKiBCZWxvdyBpcyBhbiBleGFtcGxlIG9mIGEgc2ltcGxlIGltcGxl
bWVudGF0aW9uIChhY3R1YWwgaW1wbGVtZW50YXRpb24gdXNlCi0gICAgKiBtZW1vcnkgcG9vbCku
Ci0gICAgICBcY29kZQotY2xhc3MgRGVmYXVsdFZhbHVlQXJyYXlBbGxvY2F0b3IgOiBwdWJsaWMg
VmFsdWVBcnJheUFsbG9jYXRvcgotewotcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gVmFsdWVB
cnJheUFsbG9jYXRvcgotICAgdmlydHVhbCB+RGVmYXVsdFZhbHVlQXJyYXlBbGxvY2F0b3IoKQot
ICAgewotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAqbmV3QXJyYXkoKQot
ICAgewotICAgICAgcmV0dXJuIG5ldyBWYWx1ZUludGVybmFsQXJyYXkoKTsKLSAgIH0KLQotICAg
dmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5Q29weSggY29uc3QgVmFsdWVJbnRl
cm5hbEFycmF5ICZvdGhlciApCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxB
cnJheSggb3RoZXIgKTsKLSAgIH0KLQotICAgdmlydHVhbCB2b2lkIGRlc3RydWN0KCBWYWx1ZUlu
dGVybmFsQXJyYXkgKmFycmF5ICkKLSAgIHsKLSAgICAgIGRlbGV0ZSBhcnJheTsKLSAgIH0KLQot
ICAgdmlydHVhbCB2b2lkIHJlYWxsb2NhdGVBcnJheVBhZ2VJbmRleCggVmFsdWUgKiomaW5kZXhl
cywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVy
bmFsQXJyYXk6OlBhZ2VJbmRleCAmaW5kZXhDb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IG1pbk5ld0lu
ZGV4Q291bnQgKQotICAgewotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggbmV3
SW5kZXhDb3VudCA9IChpbmRleENvdW50KjMpLzIgKyAxOwotICAgICAgaWYgKCBtaW5OZXdJbmRl
eENvdW50ID4gbmV3SW5kZXhDb3VudCApCi0gICAgICAgICBuZXdJbmRleENvdW50ID0gbWluTmV3
SW5kZXhDb3VudDsKLSAgICAgIHZvaWQgKm5ld0luZGV4ZXMgPSByZWFsbG9jKCBpbmRleGVzLCBz
aXplb2YoVmFsdWUqKSAqIG5ld0luZGV4Q291bnQgKTsKLSAgICAgIGlmICggIW5ld0luZGV4ZXMg
KQotICAgICAgICAgdGhyb3cgc3RkOjpiYWRfYWxsb2MoKTsKLSAgICAgIGluZGV4Q291bnQgPSBu
ZXdJbmRleENvdW50OwotICAgICAgaW5kZXhlcyA9IHN0YXRpY19jYXN0PFZhbHVlICoqPiggbmV3
SW5kZXhlcyApOwotICAgfQotICAgdmlydHVhbCB2b2lkIHJlbGVhc2VBcnJheVBhZ2VJbmRleCgg
VmFsdWUgKippbmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IGluZGV4Q291bnQgKQotICAgewotICAgICAg
aWYgKCBpbmRleGVzICkKLSAgICAgICAgIGZyZWUoIGluZGV4ZXMgKTsKLSAgIH0KLQotICAgdmly
dHVhbCBWYWx1ZSAqYWxsb2NhdGVBcnJheVBhZ2UoKQotICAgewotICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFZhbHVlICo+KCBtYWxsb2MoIHNpemVvZihWYWx1ZSkgKiBWYWx1ZUludGVybmFsQXJy
YXk6Oml0ZW1zUGVyUGFnZSApICk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQXJy
YXlQYWdlKCBWYWx1ZSAqdmFsdWUgKQotICAgewotICAgICAgaWYgKCB2YWx1ZSApCi0gICAgICAg
ICBmcmVlKCB2YWx1ZSApOwotICAgfQorLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5kIHVudGVz
dGVkOiByZXByZXNlbnRzIGFuIGVsZW1lbnQgb2YgdGhlICJwYXRoIiB0bworICogYWNjZXNzIGEg
bm9kZS4KKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aEFyZ3VtZW50IHsKK3B1YmxpYzoKKyAgZnJp
ZW5kIGNsYXNzIFBhdGg7CisKKyAgUGF0aEFyZ3VtZW50KCk7CisgIFBhdGhBcmd1bWVudChBcnJh
eUluZGV4IGluZGV4KTsKKyAgUGF0aEFyZ3VtZW50KGNvbnN0IGNoYXIqIGtleSk7CisgIFBhdGhB
cmd1bWVudChjb25zdCBTdHJpbmcmIGtleSk7CisKK3ByaXZhdGU6CisgIGVudW0gS2luZCB7IGtp
bmROb25lID0gMCwga2luZEluZGV4LCBraW5kS2V5IH07CisgIFN0cmluZyBrZXlfOworICBBcnJh
eUluZGV4IGluZGV4X3t9OworICBLaW5kIGtpbmRfe2tpbmROb25lfTsKIH07Ci0gICAgICBcZW5k
Y29kZQotICAgICovIAotICAgY2xhc3MgSlNPTl9BUEkgVmFsdWVBcnJheUFsbG9jYXRvcgotICAg
ewotICAgcHVibGljOgotICAgICAgdmlydHVhbCB+VmFsdWVBcnJheUFsbG9jYXRvcigpOwotICAg
ICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5KCkgPSAwOwotICAgICAgdmly
dHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5ld0FycmF5Q29weSggY29uc3QgVmFsdWVJbnRlcm5h
bEFycmF5ICZvdGhlciApID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCBkZXN0cnVjdEFycmF5KCBW
YWx1ZUludGVybmFsQXJyYXkgKmFycmF5ICkgPSAwOwotICAgICAgLyoqIFxicmllZiBSZWFsbG9j
YXRlIGFycmF5IHBhZ2UgaW5kZXguCi0gICAgICAgKiBSZWFsbG9jYXRlcyBhbiBhcnJheSBvZiBw
b2ludGVyIG9uIGVhY2ggcGFnZS4KLSAgICAgICAqIFxwYXJhbSBpbmRleGVzIFtpbnB1dF0gcG9p
bnRlciBvbiB0aGUgY3VycmVudCBpbmRleC4gTWF5IGJlIFxjIE5VTEwuCi0gICAgICAgKiAgICAg
ICAgICAgICAgICBbb3V0cHV0XSBwb2ludGVyIG9uIHRoZSBuZXcgaW5kZXggb2YgYXQgbGVhc3Qg
Ci0gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBcYSBtaW5OZXdJbmRleENvdW50IHBh
Z2VzLiAKLSAgICAgICAqIFxwYXJhbSBpbmRleENvdW50IFtpbnB1dF0gY3VycmVudCBudW1iZXIg
b2YgcGFnZXMgaW4gdGhlIGluZGV4LgotICAgICAgICogICAgICAgICAgICAgICAgICAgW291dHB1
dF0gbnVtYmVyIG9mIHBhZ2UgdGhlIHJlYWxsb2NhdGVkIGluZGV4IGNhbiBoYW5kbGUuCi0gICAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYiBNVVNUIGJlID49IFxhIG1pbk5ld0lu
ZGV4Q291bnQuCi0gICAgICAgKiBccGFyYW0gbWluTmV3SW5kZXhDb3VudCBNaW5pbXVtIG51bWJl
ciBvZiBwYWdlIHRoZSBuZXcgaW5kZXggbXVzdCBiZSBhYmxlIHRvCi0gICAgICAgKiAgICAgICAg
ICAgICAgICAgICAgICAgICBoYW5kbGUuCi0gICAgICAgKi8KLSAgICAgIHZpcnR1YWwgdm9pZCBy
ZWFsbG9jYXRlQXJyYXlQYWdlSW5kZXgoIFZhbHVlICoqJmluZGV4ZXMsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdl
SW5kZXggJmluZGV4Q291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBtaW5OZXdJbmRleENvdW50ICkg
PSAwOwotICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VBcnJheVBhZ2VJbmRleCggVmFsdWUgKipp
bmRleGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
SW50ZXJuYWxBcnJheTo6UGFnZUluZGV4IGluZGV4Q291bnQgKSA9IDA7Ci0gICAgICB2aXJ0dWFs
IFZhbHVlICphbGxvY2F0ZUFycmF5UGFnZSgpID0gMDsKLSAgICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlQXJyYXlQYWdlKCBWYWx1ZSAqdmFsdWUgKSA9IDA7Ci0gICB9OwotI2VuZGlmIC8vICNpZmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLQotCi0gICAvKiogXGJyaWVmIGJhc2UgY2xh
c3MgZm9yIFZhbHVlIGl0ZXJhdG9ycy4KLSAgICAqCi0gICAgKi8KLSAgIGNsYXNzIFZhbHVlSXRl
cmF0b3JCYXNlCi0gICB7Ci0gICBwdWJsaWM6Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBz
aXplX3Q7Ci0gICAgICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7Ci0gICAgICB0eXBlZGVm
IFZhbHVlSXRlcmF0b3JCYXNlIFNlbGZUeXBlOwotCi0gICAgICBWYWx1ZUl0ZXJhdG9yQmFzZSgp
OwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGV4cGxpY2l0IFZh
bHVlSXRlcmF0b3JCYXNlKCBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciAmY3Vy
cmVudCApOwotI2Vsc2UKLSAgICAgIFZhbHVlSXRlcmF0b3JCYXNlKCBjb25zdCBWYWx1ZUludGVy
bmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0gICAgICBWYWx1ZUl0ZXJhdG9yQmFz
ZSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKTsKLSNlbmRp
ZgogCi0gICAgICBib29sIG9wZXJhdG9yID09KCBjb25zdCBTZWxmVHlwZSAmb3RoZXIgKSBjb25z
dAotICAgICAgewotICAgICAgICAgcmV0dXJuIGlzRXF1YWwoIG90aGVyICk7Ci0gICAgICB9Cisv
KiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6IHJlcHJlc2VudHMgYSAicGF0aCIg
dG8gYWNjZXNzIGEgbm9kZS4KKyAqCisgKiBTeW50YXg6CisgKiAtICIuIiA9PiByb290IG5vZGUK
KyAqIC0gIi5bbl0iID0+IGVsZW1lbnRzIGF0IGluZGV4ICduJyBvZiByb290IG5vZGUgKGFuIGFy
cmF5IHZhbHVlKQorICogLSAiLm5hbWUiID0+IG1lbWJlciBuYW1lZCAnbmFtZScgb2Ygcm9vdCBu
b2RlIChhbiBvYmplY3QgdmFsdWUpCisgKiAtICIubmFtZTEubmFtZTIubmFtZTMiCisgKiAtICIu
WzBdWzFdWzJdLm5hbWUxWzNdIgorICogLSAiLiUiID0+IG1lbWJlciBuYW1lIGlzIHByb3ZpZGVk
IGFzIHBhcmFtZXRlcgorICogLSAiLlslXSIgPT4gaW5kZXggaXMgcHJvdmllZCBhcyBwYXJhbWV0
ZXIKKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aCB7CitwdWJsaWM6CisgIFBhdGgoY29uc3QgU3Ry
aW5nJiBwYXRoLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTEgPSBQYXRoQXJndW1lbnQo
KSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEyID0gUGF0aEFyZ3VtZW50KCksCisgICAg
ICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMyA9IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0
IFBhdGhBcmd1bWVudCYgYTQgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAgICBjb25zdCBQYXRoQXJn
dW1lbnQmIGE1ID0gUGF0aEFyZ3VtZW50KCkpOworCisgIGNvbnN0IFZhbHVlJiByZXNvbHZlKGNv
bnN0IFZhbHVlJiByb290KSBjb25zdDsKKyAgVmFsdWUgcmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9v
dCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBDcmVhdGVzIHRoZSAi
cGF0aCIgdG8gYWNjZXNzIHRoZSBzcGVjaWZpZWQgbm9kZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5j
ZSBvbgorICAvLy8gdGhlIG5vZGUuCisgIFZhbHVlJiBtYWtlKFZhbHVlJiByb290KSBjb25zdDsK
KworcHJpdmF0ZToKKyAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjxjb25zdCBQYXRoQXJndW1lbnQqPiBJ
bkFyZ3M7CisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8UGF0aEFyZ3VtZW50PiBBcmdzOworCisgIHZv
aWQgbWFrZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBJbkFyZ3MmIGluKTsKKyAgdm9p
ZCBhZGRQYXRoSW5BcmcoY29uc3QgU3RyaW5nJiBwYXRoLAorICAgICAgICAgICAgICAgICAgICBj
b25zdCBJbkFyZ3MmIGluLAorICAgICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJh
dG9yJiBpdEluQXJnLAorICAgICAgICAgICAgICAgICAgICBQYXRoQXJndW1lbnQ6OktpbmQga2lu
ZCk7CisgIHN0YXRpYyB2b2lkIGludmFsaWRQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgaW50IGxv
Y2F0aW9uKTsKKworICBBcmdzIGFyZ3NfOworfTsKIAotICAgICAgYm9vbCBvcGVyYXRvciAhPSgg
Y29uc3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiAh
aXNFcXVhbCggb3RoZXIgKTsKLSAgICAgIH0KKy8qKiBcYnJpZWYgYmFzZSBjbGFzcyBmb3IgVmFs
dWUgaXRlcmF0b3JzLgorICoKKyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvckJhc2Ug
eworcHVibGljOgorICB0eXBlZGVmIHN0ZDo6YmlkaXJlY3Rpb25hbF9pdGVyYXRvcl90YWcgaXRl
cmF0b3JfY2F0ZWdvcnk7CisgIHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKKyAgdHlwZWRl
ZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIFZhbHVlSXRlcmF0b3JCYXNlIFNlbGZU
eXBlOwogCi0gICAgICBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0b3IgLSggY29uc3QgU2VsZlR5cGUg
Jm90aGVyICkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBjb21wdXRlRGlzdGFuY2Uo
IG90aGVyICk7Ci0gICAgICB9CisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTZWxmVHlwZSYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuIGlzRXF1YWwob3RoZXIpOyB9CiAKLSAgICAgIC8vLyBSZXR1cm4g
ZWl0aGVyIHRoZSBpbmRleCBvciB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgdmFs
dWUgYXMgYSBWYWx1ZS4KLSAgICAgIFZhbHVlIGtleSgpIGNvbnN0OworICBib29sIG9wZXJhdG9y
IT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhaXNFcXVhbChvdGhlcik7
IH0KIAotICAgICAgLy8vIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUu
IC0xIGlmIGl0IGlzIG5vdCBhbiBhcnJheVZhbHVlLgotICAgICAgVUludCBpbmRleCgpIGNvbnN0
OworICBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0b3ItKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29u
c3QgeworICAgIHJldHVybiBvdGhlci5jb21wdXRlRGlzdGFuY2UoKnRoaXMpOworICB9CiAKLSAg
ICAgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLiAi
IiBpZiBpdCBpcyBub3QgYW4gb2JqZWN0VmFsdWUuCi0gICAgICBjb25zdCBjaGFyICptZW1iZXJO
YW1lKCkgY29uc3Q7CisgIC8vLyBSZXR1cm4gZWl0aGVyIHRoZSBpbmRleCBvciB0aGUgbWVtYmVy
IG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgdmFsdWUgYXMgYQorICAvLy8gVmFsdWUuCisgIFZhbHVl
IGtleSgpIGNvbnN0OwogCi0gICBwcm90ZWN0ZWQ6Ci0gICAgICBWYWx1ZSAmZGVyZWYoKSBjb25z
dDsKKyAgLy8vIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUsIG9yIC0x
IGlmIGl0IGlzIG5vdCBhbgorICAvLy8gYXJyYXlWYWx1ZS4KKyAgVUludCBpbmRleCgpIGNvbnN0
OwogCi0gICAgICB2b2lkIGluY3JlbWVudCgpOworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFt
ZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgIiIgaWYgaXQgaXMgbm90IGFuCisgIC8vLyBv
YmplY3RWYWx1ZS4KKyAgLy8vIFxub3RlIEF2b2lkIGBjX3N0cigpYCBvbiByZXN1bHQsIGFzIGVt
YmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIFN0cmluZyBuYW1lKCkgY29uc3Q7CiAKLSAg
ICAgIHZvaWQgZGVjcmVtZW50KCk7CisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRo
ZSByZWZlcmVuY2VkIFZhbHVlLiAiIiBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZhbHVl
LgorICAvLy8gXGRlcHJlY2F0ZWQgVGhpcyBjYW5ub3QgYmUgdXNlZCBmb3IgVVRGLTggc3RyaW5n
cywgc2luY2UgdGhlcmUgY2FuIGJlCisgIC8vLyBlbWJlZGRlZCBudWxscy4KKyAgSlNPTkNQUF9E
RVBSRUNBVEVEKCJVc2UgYGtleSA9IG5hbWUoKTtgIGluc3RlYWQuIikKKyAgY2hhciBjb25zdCog
bWVtYmVyTmFtZSgpIGNvbnN0OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUg
cmVmZXJlbmNlZCBWYWx1ZSwgb3IgTlVMTCBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZh
bHVlLgorICAvLy8gXG5vdGUgQmV0dGVyIHZlcnNpb24gdGhhbiBtZW1iZXJOYW1lKCkuIEFsbG93
cyBlbWJlZGRlZCBudWxscy4KKyAgY2hhciBjb25zdCogbWVtYmVyTmFtZShjaGFyIGNvbnN0Kiog
ZW5kKSBjb25zdDsKIAotICAgICAgZGlmZmVyZW5jZV90eXBlIGNvbXB1dGVEaXN0YW5jZSggY29u
c3QgU2VsZlR5cGUgJm90aGVyICkgY29uc3Q7Citwcm90ZWN0ZWQ6CisgIFZhbHVlJiBkZXJlZigp
IGNvbnN0OwogCi0gICAgICBib29sIGlzRXF1YWwoIGNvbnN0IFNlbGZUeXBlICZvdGhlciApIGNv
bnN0OworICB2b2lkIGluY3JlbWVudCgpOwogCi0gICAgICB2b2lkIGNvcHkoIGNvbnN0IFNlbGZU
eXBlICZvdGhlciApOworICB2b2lkIGRlY3JlbWVudCgpOwogCi0gICBwcml2YXRlOgotI2lmbmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIFZhbHVlOjpPYmplY3RWYWx1ZXM6
Oml0ZXJhdG9yIGN1cnJlbnRfOwotICAgICAgLy8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMg
Zm9yIGEgbnVsbCB2YWx1ZS4KLSAgICAgIGJvb2wgaXNOdWxsXzsKLSNlbHNlCi0gICAgICB1bmlv
bgotICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0YXRlIGFy
cmF5XzsKLSAgICAgICAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgbWFwXzsKLSAg
ICAgIH0gaXRlcmF0b3JfOwotICAgICAgYm9vbCBpc0FycmF5XzsKLSNlbmRpZgotICAgfTsKLQot
ICAgLyoqIFxicmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4K
LSAgICAqCi0gICAgKi8KLSAgIGNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBWYWx1
ZUl0ZXJhdG9yQmFzZQotICAgewotICAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwotICAgcHVibGlj
OgotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwotICAgICAgdHlwZWRlZiBpbnQg
ZGlmZmVyZW5jZV90eXBlOwotICAgICAgdHlwZWRlZiBjb25zdCBWYWx1ZSAmcmVmZXJlbmNlOwot
ICAgICAgdHlwZWRlZiBjb25zdCBWYWx1ZSAqcG9pbnRlcjsKLSAgICAgIHR5cGVkZWYgVmFsdWVD
b25zdEl0ZXJhdG9yIFNlbGZUeXBlOwotCi0gICAgICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsKLSAg
IHByaXZhdGU6Ci0gICAgICAvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBjcmVhdGUgYW4g
aXRlcmF0b3IuCi0gICAgICAgKi8KLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICAgICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3IoIGNvbnN0IFZhbHVlOjpPYmplY3RW
YWx1ZXM6Oml0ZXJhdG9yICZjdXJyZW50ICk7Ci0jZWxzZQotICAgICAgVmFsdWVDb25zdEl0ZXJh
dG9yKCBjb25zdCBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICk7Ci0g
ICAgICBWYWx1ZUNvbnN0SXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9y
U3RhdGUgJnN0YXRlICk7Ci0jZW5kaWYKLSAgIHB1YmxpYzoKLSAgICAgIFNlbGZUeXBlICZvcGVy
YXRvciA9KCBjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSAmb3RoZXIgKTsKLQotICAgICAgU2VsZlR5
cGUgb3BlcmF0b3IrKyggaW50ICkKLSAgICAgIHsKLSAgICAgICAgIFNlbGZUeXBlIHRlbXAoICp0
aGlzICk7Ci0gICAgICAgICArKyp0aGlzOwotICAgICAgICAgcmV0dXJuIHRlbXA7Ci0gICAgICB9
Ci0KLSAgICAgIFNlbGZUeXBlIG9wZXJhdG9yLS0oIGludCApCi0gICAgICB7Ci0gICAgICAgICBT
ZWxmVHlwZSB0ZW1wKCAqdGhpcyApOwotICAgICAgICAgLS0qdGhpczsKLSAgICAgICAgIHJldHVy
biB0ZW1wOwotICAgICAgfQotCi0gICAgICBTZWxmVHlwZSAmb3BlcmF0b3ItLSgpCi0gICAgICB7
Ci0gICAgICAgICBkZWNyZW1lbnQoKTsKLSAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgIH0K
LQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9yKysoKQotICAgICAgewotICAgICAgICAgaW5jcmVt
ZW50KCk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICB9Ci0KLSAgICAgIHJlZmVyZW5j
ZSBvcGVyYXRvciAqKCkgY29uc3QKLSAgICAgIHsKLSAgICAgICAgIHJldHVybiBkZXJlZigpOwot
ICAgICAgfQotICAgfTsKLQotCi0gICAvKiogXGJyaWVmIEl0ZXJhdG9yIGZvciBvYmplY3QgYW5k
IGFycmF5IHZhbHVlLgotICAgICovCi0gICBjbGFzcyBWYWx1ZUl0ZXJhdG9yIDogcHVibGljIFZh
bHVlSXRlcmF0b3JCYXNlCi0gICB7Ci0gICAgICBmcmllbmQgY2xhc3MgVmFsdWU7Ci0gICBwdWJs
aWM6Ci0gICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7Ci0gICAgICB0eXBlZGVmIGlu
dCBkaWZmZXJlbmNlX3R5cGU7Ci0gICAgICB0eXBlZGVmIFZhbHVlICZyZWZlcmVuY2U7Ci0gICAg
ICB0eXBlZGVmIFZhbHVlICpwb2ludGVyOwotICAgICAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIFNl
bGZUeXBlOwotCi0gICAgICBWYWx1ZUl0ZXJhdG9yKCk7Ci0gICAgICBWYWx1ZUl0ZXJhdG9yKCBj
b25zdCBWYWx1ZUNvbnN0SXRlcmF0b3IgJm90aGVyICk7Ci0gICAgICBWYWx1ZUl0ZXJhdG9yKCBj
b25zdCBWYWx1ZUl0ZXJhdG9yICZvdGhlciApOwotICAgcHJpdmF0ZToKLSAgICAgIC8qISBcaW50
ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvci4KLSAgICAgICAqLwotI2lm
bmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgICAgIGV4cGxpY2l0IFZhbHVlSXRl
cmF0b3IoIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yICZjdXJyZW50ICk7Ci0j
ZWxzZQotICAgICAgVmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVy
YXRvclN0YXRlICZzdGF0ZSApOwotICAgICAgVmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJbnRl
cm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKTsKLSNlbmRpZgotICAgcHVibGljOgotCi0g
ICAgICBTZWxmVHlwZSAmb3BlcmF0b3IgPSggY29uc3QgU2VsZlR5cGUgJm90aGVyICk7Ci0KLSAg
ICAgIFNlbGZUeXBlIG9wZXJhdG9yKysoIGludCApCi0gICAgICB7Ci0gICAgICAgICBTZWxmVHlw
ZSB0ZW1wKCAqdGhpcyApOwotICAgICAgICAgKysqdGhpczsKLSAgICAgICAgIHJldHVybiB0ZW1w
OwotICAgICAgfQotCi0gICAgICBTZWxmVHlwZSBvcGVyYXRvci0tKCBpbnQgKQotICAgICAgewot
ICAgICAgICAgU2VsZlR5cGUgdGVtcCggKnRoaXMgKTsKLSAgICAgICAgIC0tKnRoaXM7Ci0gICAg
ICAgICByZXR1cm4gdGVtcDsKLSAgICAgIH0KLQotICAgICAgU2VsZlR5cGUgJm9wZXJhdG9yLS0o
KQotICAgICAgewotICAgICAgICAgZGVjcmVtZW50KCk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7
Ci0gICAgICB9Ci0KLSAgICAgIFNlbGZUeXBlICZvcGVyYXRvcisrKCkKLSAgICAgIHsKLSAgICAg
ICAgIGluY3JlbWVudCgpOwotICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgfQotCi0gICAg
ICByZWZlcmVuY2Ugb3BlcmF0b3IgKigpIGNvbnN0Ci0gICAgICB7Ci0gICAgICAgICByZXR1cm4g
ZGVyZWYoKTsKLSAgICAgIH0KLSAgIH07CisgIGRpZmZlcmVuY2VfdHlwZSBjb21wdXRlRGlzdGFu
Y2UoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdDsKIAorICBib29sIGlzRXF1YWwoY29uc3Qg
U2VsZlR5cGUmIG90aGVyKSBjb25zdDsKKworICB2b2lkIGNvcHkoY29uc3QgU2VsZlR5cGUmIG90
aGVyKTsKKworcHJpdmF0ZToKKyAgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgY3VycmVu
dF87CisgIC8vIEluZGljYXRlcyB0aGF0IGl0ZXJhdG9yIGlzIGZvciBhIG51bGwgdmFsdWUuCisg
IGJvb2wgaXNOdWxsX3t0cnVlfTsKKworcHVibGljOgorICAvLyBGb3Igc29tZSByZWFzb24sIEJP
UkxBTkQgbmVlZHMgdGhlc2UgYXQgdGhlIGVuZCwgcmF0aGVyCisgIC8vIHRoYW4gZWFybGllci4g
Tm8gaWRlYSB3aHkuCisgIFZhbHVlSXRlcmF0b3JCYXNlKCk7CisgIGV4cGxpY2l0IFZhbHVlSXRl
cmF0b3JCYXNlKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KTsK
K307CisKKy8qKiBcYnJpZWYgY29uc3QgaXRlcmF0b3IgZm9yIG9iamVjdCBhbmQgYXJyYXkgdmFs
dWUuCisgKgorICovCitjbGFzcyBKU09OX0FQSSBWYWx1ZUNvbnN0SXRlcmF0b3IgOiBwdWJsaWMg
VmFsdWVJdGVyYXRvckJhc2UgeworICBmcmllbmQgY2xhc3MgVmFsdWU7CisKK3B1YmxpYzoKKyAg
dHlwZWRlZiBjb25zdCBWYWx1ZSB2YWx1ZV90eXBlOworICAvLyB0eXBlZGVmIHVuc2lnbmVkIGlu
dCBzaXplX3Q7CisgIC8vIHR5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKKyAgdHlwZWRlZiBj
b25zdCBWYWx1ZSYgcmVmZXJlbmNlOworICB0eXBlZGVmIGNvbnN0IFZhbHVlKiBwb2ludGVyOwor
ICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBTZWxmVHlwZTsKKworICBWYWx1ZUNvbnN0SXRl
cmF0b3IoKTsKKyAgVmFsdWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0b3IgY29uc3QmIG90aGVy
KTsKKworcHJpdmF0ZToKKyAgLyohIFxpbnRlcm5hbCBVc2UgYnkgVmFsdWUgdG8gY3JlYXRlIGFu
IGl0ZXJhdG9yLgorICAgKi8KKyAgZXhwbGljaXQgVmFsdWVDb25zdEl0ZXJhdG9yKGNvbnN0IFZh
bHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KTsKKworcHVibGljOgorICBTZWxm
VHlwZSYgb3BlcmF0b3I9KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcik7CisKKyAgU2Vs
ZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICAr
Kyp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUgb3BlcmF0b3ItLShp
bnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICAtLSp0aGlzOworICAgIHJldHVy
biB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7CisgICAgZGVjcmVtZW50
KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7
CisgICAgaW5jcmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgcmVmZXJlbmNl
IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KKworICBwb2ludGVyIG9wZXJh
dG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQorfTsKKworLyoqIFxicmllZiBJdGVy
YXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KKyAqLworY2xhc3MgSlNPTl9BUEkgVmFs
dWVJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0ZXJhdG9yQmFzZSB7CisgIGZyaWVuZCBjbGFzcyBW
YWx1ZTsKKworcHVibGljOgorICB0eXBlZGVmIFZhbHVlIHZhbHVlX3R5cGU7CisgIHR5cGVkZWYg
dW5zaWduZWQgaW50IHNpemVfdDsKKyAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0
eXBlZGVmIFZhbHVlJiByZWZlcmVuY2U7CisgIHR5cGVkZWYgVmFsdWUqIHBvaW50ZXI7CisgIHR5
cGVkZWYgVmFsdWVJdGVyYXRvciBTZWxmVHlwZTsKKworICBWYWx1ZUl0ZXJhdG9yKCk7CisgIGV4
cGxpY2l0IFZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcik7Cisg
IFZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVJdGVyYXRvciYgb3RoZXIpOworCitwcml2YXRlOgor
ICAvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBjcmVhdGUgYW4gaXRlcmF0b3IuCisgICAq
LworICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0
ZXJhdG9yJiBjdXJyZW50KTsKKworcHVibGljOgorICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0
IFNlbGZUeXBlJiBvdGhlcik7CisKKyAgU2VsZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKKyAgICBT
ZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICArKyp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9
CisKKyAgU2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlz
KTsKKyAgICAtLSp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUmIG9w
ZXJhdG9yLS0oKSB7CisgICAgZGVjcmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisK
KyAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7CisgICAgaW5jcmVtZW50KCk7CisgICAgcmV0dXJu
ICp0aGlzOworICB9CisKKyAgcmVmZXJlbmNlIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRl
cmVmKCk7IH0KKworICBwb2ludGVyIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYo
KTsgfQorfTsKKworaW5saW5lIHZvaWQgc3dhcChWYWx1ZSYgYSwgVmFsdWUmIGIpIHsgYS5zd2Fw
KGIpOyB9CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24KIAorI3ByYWdtYSBwYWNrKHBvcCkKKworI2lm
IGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEg
d2FybmluZyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lO
VEVSRkFDRV9XQVJOSU5HKQogCiAjZW5kaWYgLy8gQ1BQVExfSlNPTl9IX0lOQ0xVREVECmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL2luY2x1ZGUvanNvbi93cml0ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3dy
aXRlci5oCmluZGV4IDM4ZDQxZTFlZWRlMjU0YmUyNTJhZmM5ZDk5MjcyNjdhYzMzMzFjZWIuLjEy
ZmQzNmE3YTg0NWNlODExMjEwYzBjYjQ1MjA5OTBkYzYxZGM2YTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
aW5jbHVkZS9qc29uL3dyaXRlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvaW5jbHVkZS9qc29uL3dyaXRlci5oCkBA
IC0xLDE4NCArMSwzNjggQEAKLS8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxs
ZXVyCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpz
b25DcHAgQXV0aG9ycwogLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1Ymxp
YyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rp
b24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNv
bmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCiAjaWZuZGVmIEpTT05fV1JJVEVSX0hfSU5D
TFVERUQKLSMgZGVmaW5lIEpTT05fV1JJVEVSX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9XUklU
RVJfSF9JTkNMVURFRAogCiAjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGlu
Y2x1ZGUgInZhbHVlLmgiCisjaW5jbHVkZSAidmFsdWUuaCIKICNlbmRpZiAvLyBpZiAhZGVmaW5l
ZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8dmVjdG9yPgotIyBpbmNsdWRlIDxz
dHJpbmc+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8
dmVjdG9yPgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0eXBl
PiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNpZiBk
ZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpICYmIGRlZmluZWQo
X01TQ19WRVIpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxl
IDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJG
QUNFX1dBUk5JTkcpCisKKyNwcmFnbWEgcGFjayhwdXNoLCA4KQogCiBuYW1lc3BhY2UgSnNvbiB7
CiAKLSAgIGNsYXNzIFZhbHVlOworY2xhc3MgVmFsdWU7CiAKLSAgIC8qKiBcYnJpZWYgQWJzdHJh
Y3QgY2xhc3MgZm9yIHdyaXRlcnMuCi0gICAgKi8KLSAgIGNsYXNzIEpTT05fQVBJIFdyaXRlcgot
ICAgewotICAgcHVibGljOgotICAgICAgdmlydHVhbCB+V3JpdGVyKCk7Ci0KLSAgICAgIHZpcnR1
YWwgc3RkOjpzdHJpbmcgd3JpdGUoIGNvbnN0IFZhbHVlICZyb290ICkgPSAwOwotICAgfTsKLQot
ICAgLyoqIFxicmllZiBPdXRwdXRzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29u
Lm9yZyI+SlNPTjwvYT4gZm9ybWF0IHdpdGhvdXQgZm9ybWF0dGluZyAobm90IGh1bWFuIGZyaWVu
ZGx5KS4KLSAgICAqCi0gICAgKiBUaGUgSlNPTiBkb2N1bWVudCBpcyB3cml0dGVuIGluIGEgc2lu
Z2xlIGxpbmUuIEl0IGlzIG5vdCBpbnRlbmRlZCBmb3IgJ2h1bWFuJyBjb25zdW1wdGlvbiwKLSAg
ICAqIGJ1dCBtYXkgYmUgdXNlZnVsbCB0byBzdXBwb3J0IGZlYXR1cmUgc3VjaCBhcyBSUEMgd2hl
cmUgYmFuZHdpdGggaXMgbGltaXRlZC4KLSAgICAqIFxzYSBSZWFkZXIsIFZhbHVlCi0gICAgKi8K
LSAgIGNsYXNzIEpTT05fQVBJIEZhc3RXcml0ZXIgOiBwdWJsaWMgV3JpdGVyCi0gICB7Ci0gICBw
dWJsaWM6Ci0gICAgICBGYXN0V3JpdGVyKCk7Ci0gICAgICB2aXJ0dWFsIH5GYXN0V3JpdGVyKCl7
fQotCi0gICAgICB2b2lkIGVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KCk7Ci0KLSAgIHB1YmxpYzog
Ly8gb3ZlcnJpZGRlbiBmcm9tIFdyaXRlcgotICAgICAgdmlydHVhbCBzdGQ6OnN0cmluZyB3cml0
ZSggY29uc3QgVmFsdWUgJnJvb3QgKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIHZvaWQgd3JpdGVW
YWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0KLSAgICAgIHN0ZDo6c3RyaW5nIGRvY3VtZW50
XzsKLSAgICAgIGJvb2wgeWFtbENvbXBhdGlibGl0eUVuYWJsZWRfOwotICAgfTsKLQotICAgLyoq
IFxicmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5K
U09OPC9hPiBmb3JtYXQgaW4gYSBodW1hbiBmcmllbmRseSB3YXkuCi0gICAgKgotICAgICogVGhl
IHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBpbmRlbnQgYXJlIGFzIGZvbGxvdzoKLSAgICAqIC0g
T2JqZWN0IHZhbHVlOgotICAgICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCB7fSB3aXRob3V0
IGluZGVudCBhbmQgbGluZSBicmVhawotICAgICogICAgIC0gaWYgbm90IGVtcHR5IHRoZSBwcmlu
dCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZQotICAg
ICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHByaW50ICd9Jy4K
LSAgICAqIC0gQXJyYXkgdmFsdWU6Ci0gICAgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IFtd
IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCi0gICAgKiAgICAgLSBpZiB0aGUgYXJyYXkg
Y29udGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVl
IHR5cGVzLAotICAgICogICAgICAgYW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMs
IHRoZW4gcHJpbnQgdGhlIGFycmF5IG9uIGEgc2luZ2xlIGxpbmUuCi0gICAgKiAgICAgLSBvdGhl
cndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3IgdGhlIGFycmF5
IGNvbnRhaW5zCi0gICAgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0aGVuIHBy
aW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KLSAgICAqCi0gICAgKiBJZiB0aGUgVmFsdWUgaGF2ZSBj
b21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpciAjQ29tbWVu
dFBsYWNlbWVudC4KLSAgICAqCi0gICAgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENv
bW1lbnQoKQotICAgICovCi0gICBjbGFzcyBKU09OX0FQSSBTdHlsZWRXcml0ZXI6IHB1YmxpYyBX
cml0ZXIKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIFN0eWxlZFdyaXRlcigpOwotICAgICAgdmly
dHVhbCB+U3R5bGVkV3JpdGVyKCl7fQotCi0gICBwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBX
cml0ZXIKLSAgICAgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0
cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgotICAgICAgICogXHBhcmFtIHJvb3Qg
VmFsdWUgdG8gc2VyaWFsaXplLgotICAgICAgICogXHJldHVybiBTdHJpbmcgY29udGFpbmluZyB0
aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhlIHJvb3QgdmFsdWUuCi0gICAgICAg
Ki8KLSAgICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgd3JpdGUoIGNvbnN0IFZhbHVlICZyb290ICk7
Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB2b2lkIHdyaXRlVmFsdWUoIGNvbnN0IFZhbHVlICZ2YWx1
ZSApOwotICAgICAgdm9pZCB3cml0ZUFycmF5VmFsdWUoIGNvbnN0IFZhbHVlICZ2YWx1ZSApOwot
ICAgICAgYm9vbCBpc011bHRpbmVBcnJheSggY29uc3QgVmFsdWUgJnZhbHVlICk7Ci0gICAgICB2
b2lkIHB1c2hWYWx1ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICk7Ci0gICAgICB2b2lkIHdy
aXRlSW5kZW50KCk7Ci0gICAgICB2b2lkIHdyaXRlV2l0aEluZGVudCggY29uc3Qgc3RkOjpzdHJp
bmcgJnZhbHVlICk7Ci0gICAgICB2b2lkIGluZGVudCgpOwotICAgICAgdm9pZCB1bmluZGVudCgp
OwotICAgICAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSggY29uc3QgVmFsdWUgJnJvb3Qg
KTsKLSAgICAgIHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNvbnN0IFZh
bHVlICZyb290ICk7Ci0gICAgICBib29sIGhhc0NvbW1lbnRGb3JWYWx1ZSggY29uc3QgVmFsdWUg
JnZhbHVlICk7Ci0gICAgICBzdGF0aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRU9MKCBjb25zdCBz
dGQ6OnN0cmluZyAmdGV4dCApOwotCi0gICAgICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiBDaGlsZFZhbHVlczsKLQotICAgICAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNfOwotICAg
ICAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOwotICAgICAgc3RkOjpzdHJpbmcgaW5kZW50U3RyaW5n
XzsKLSAgICAgIGludCByaWdodE1hcmdpbl87Ci0gICAgICBpbnQgaW5kZW50U2l6ZV87Ci0gICAg
ICBib29sIGFkZENoaWxkVmFsdWVzXzsKLSAgIH07Ci0KLSAgIC8qKiBcYnJpZWYgV3JpdGVzIGEg
VmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0IGlu
IGEgaHVtYW4gZnJpZW5kbHkgd2F5LAotICAgICAgICB0byBhIHN0cmVhbSByYXRoZXIgdGhhbiB0
byBhIHN0cmluZy4KLSAgICAqCi0gICAgKiBUaGUgcnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5kIGlu
ZGVudCBhcmUgYXMgZm9sbG93OgotICAgICogLSBPYmplY3QgdmFsdWU6Ci0gICAgKiAgICAgLSBp
ZiBlbXB0eSB0aGVuIHByaW50IHt9IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCi0gICAg
KiAgICAgLSBpZiBub3QgZW1wdHkgdGhlIHByaW50ICd7JywgbGluZSBicmVhayAmIGluZGVudCwg
cHJpbnQgb25lIHZhbHVlIHBlciBsaW5lCi0gICAgKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBh
bmQgbGluZSBicmVhayBhbmQgcHJpbnQgJ30nLgotICAgICogLSBBcnJheSB2YWx1ZToKLSAgICAq
ICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJl
YWsKLSAgICAqICAgICAtIGlmIHRoZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVt
cHR5IGFycmF5IG9yIHNvbWUgb3RoZXIgdmFsdWUgdHlwZXMsCi0gICAgKiAgICAgICBhbmQgYWxs
IHRoZSB2YWx1ZXMgZml0IG9uIG9uZSBsaW5lcywgdGhlbiBwcmludCB0aGUgYXJyYXkgb24gYSBz
aW5nbGUgbGluZS4KLSAgICAqICAgICAtIG90aGVyd2lzZSwgaXQgdGhlIHZhbHVlcyBkbyBub3Qg
Zml0IG9uIG9uZSBsaW5lLCBvciB0aGUgYXJyYXkgY29udGFpbnMKLSAgICAqICAgICAgIG9iamVj
dCBvciBub24gZW1wdHkgYXJyYXksIHRoZW4gcHJpbnQgb25lIHZhbHVlIHBlciBsaW5lLgotICAg
ICoKLSAgICAqIElmIHRoZSBWYWx1ZSBoYXZlIGNvbW1lbnRzIHRoZW4gdGhleSBhcmUgb3V0cHV0
ZWQgYWNjb3JkaW5nIHRvIHRoZWlyICNDb21tZW50UGxhY2VtZW50LgotICAgICoKLSAgICAqIFxw
YXJhbSBpbmRlbnRhdGlvbiBFYWNoIGxldmVsIHdpbGwgYmUgaW5kZW50ZWQgYnkgdGhpcyBhbW91
bnQgZXh0cmEuCi0gICAgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQor
LyoqCisKK1VzYWdlOgorXGNvZGUKKyAgdXNpbmcgbmFtZXNwYWNlIEpzb247CisgIHZvaWQgd3Jp
dGVUb1N0ZG91dChTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgY29uc3QmIGZhY3RvcnksIFZhbHVlIGNv
bnN0JiB2YWx1ZSkgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdHJlYW1Xcml0ZXI+IGNvbnN0IHdy
aXRlcigKKyAgICAgIGZhY3RvcnkubmV3U3RyZWFtV3JpdGVyKCkpOworICAgIHdyaXRlci0+d3Jp
dGUodmFsdWUsICZzdGQ6OmNvdXQpOworICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7ICAvLyBh
ZGQgbGYgYW5kIGZsdXNoCisgIH0KK1xlbmRjb2RlCisqLworY2xhc3MgSlNPTl9BUEkgU3RyZWFt
V3JpdGVyIHsKK3Byb3RlY3RlZDoKKyAgT1N0cmVhbSogc291dF87IC8vIG5vdCBvd25lZDsgd2ls
bCBub3QgZGVsZXRlCitwdWJsaWM6CisgIFN0cmVhbVdyaXRlcigpOworICB2aXJ0dWFsIH5TdHJl
YW1Xcml0ZXIoKTsKKyAgLyoqIFdyaXRlIFZhbHVlIGludG8gZG9jdW1lbnQgYXMgY29uZmlndXJl
ZCBpbiBzdWItY2xhc3MuCisgICAgICBEbyBub3QgdGFrZSBvd25lcnNoaXAgb2Ygc291dCwgYnV0
IG1haW50YWluIGEgcmVmZXJlbmNlIGR1cmluZyBmdW5jdGlvbi4KKyAgICAgIFxwcmUgc291dCAh
PSBOVUxMCisgICAgICBccmV0dXJuIHplcm8gb24gc3VjY2VzcyAoRm9yIG5vdywgd2UgYWx3YXlz
IHJldHVybiB6ZXJvLCBzbyBjaGVjayB0aGUKKyAgICAgc3RyZWFtIGluc3RlYWQuKSBcdGhyb3cg
c3RkOjpleGNlcHRpb24gcG9zc2libHksIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uCisgICAq
LworICB2aXJ0dWFsIGludCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgT1N0cmVhbSogc291dCkg
PSAwOworCisgIC8qKiBcYnJpZWYgQSBzaW1wbGUgYWJzdHJhY3QgZmFjdG9yeS4KKyAgICovCisg
IGNsYXNzIEpTT05fQVBJIEZhY3RvcnkgeworICBwdWJsaWM6CisgICAgdmlydHVhbCB+RmFjdG9y
eSgpOworICAgIC8qKiBcYnJpZWYgQWxsb2NhdGUgYSBDaGFyUmVhZGVyIHZpYSBvcGVyYXRvciBu
ZXcoKS4KKyAgICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3Jv
bmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFN0cmVhbVdy
aXRlciogbmV3U3RyZWFtV3JpdGVyKCkgY29uc3QgPSAwOworICB9OyAvLyBGYWN0b3J5Cit9OyAg
IC8vIFN0cmVhbVdyaXRlcgorCisvKiogXGJyaWVmIFdyaXRlIGludG8gc3RyaW5nc3RyZWFtLCB0
aGVuIHJldHVybiBzdHJpbmcsIGZvciBjb252ZW5pZW5jZS4KKyAqIEEgU3RyZWFtV3JpdGVyIHdp
bGwgYmUgY3JlYXRlZCBmcm9tIHRoZSBmYWN0b3J5LCB1c2VkLCBhbmQgdGhlbiBkZWxldGVkLgor
ICovCitTdHJpbmcgSlNPTl9BUEkgd3JpdGVTdHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNv
bnN0JiBmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlIGNvbnN0JiBy
b290KTsKKworLyoqIFxicmllZiBCdWlsZCBhIFN0cmVhbVdyaXRlciBpbXBsZW1lbnRhdGlvbi4K
KworVXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgVmFsdWUgdmFsdWUg
PSAuLi47CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRlcjsKKyAgYnVpbGRlclsiY29tbWVu
dFN0eWxlIl0gPSAiTm9uZSI7CisgIGJ1aWxkZXJbImluZGVudGF0aW9uIl0gPSAiICAgIjsgIC8v
IG9yIHdoYXRldmVyIHlvdSBsaWtlCisgIHN0ZDo6dW5pcXVlX3B0cjxKc29uOjpTdHJlYW1Xcml0
ZXI+IHdyaXRlcigKKyAgICAgIGJ1aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXIt
PndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgIC8v
IGFkZCBsZiBhbmQgZmx1c2gKK1xlbmRjb2RlCisqLworY2xhc3MgSlNPTl9BUEkgU3RyZWFtV3Jp
dGVyQnVpbGRlciA6IHB1YmxpYyBTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgeworcHVibGljOgorICAv
LyBOb3RlOiBXZSB1c2UgYSBKc29uOjpWYWx1ZSBzbyB0aGF0IHdlIGNhbiBhZGQgZGF0YS1tZW1i
ZXJzIHRvIHRoaXMgY2xhc3MKKyAgLy8gd2l0aG91dCBhIG1ham9yIHZlcnNpb24gYnVtcC4KKyAg
LyoqIENvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWlsZGVyLgorICAgIEF2YWlsYWJsZSBzZXR0aW5n
cyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gImNvbW1lbnRTdHlsZSI6ICJOb25lIiBvciAiQWxs
IgorICAgIC0gImluZGVudGF0aW9uIjogICI8YW55dGhpbmc+Ii4KKyAgICAgIC0gU2V0dGluZyB0
aGlzIHRvIGFuIGVtcHR5IHN0cmluZyBhbHNvIG9taXRzIG5ld2xpbmUgY2hhcmFjdGVycy4KKyAg
ICAtICJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSI6IGZhbHNlIG9yIHRydWUKKyAgICAgIC0gc2xp
Z2h0bHkgY2hhbmdlIHRoZSB3aGl0ZXNwYWNlIGFyb3VuZCBjb2xvbnMKKyAgICAtICJkcm9wTnVs
bFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWUKKyAgICAgIC0gRHJvcCB0aGUgIm51bGwiIHN0
cmluZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1ZXMuCisgICAgICAgIFN0
cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0
cHV0IGlzIGJlaW5nCisgICAgICAgIGZlZCB0byBhIGJyb3dzZXIncyBKYXZhU2NyaXB0LCBpdCBt
YWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRoZQorICAgICAgICBicm93c2VyIGNhbiBoYW5k
bGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCisgICAgLSAidXNlU3BlY2lhbEZsb2F0cyI6IGZhbHNl
IG9yIHRydWUKKyAgICAgIC0gSWYgdHJ1ZSwgb3V0cHV0cyBub24tZmluaXRlIGZsb2F0aW5nIHBv
aW50IHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKKyAgICAgICAgTmFOIHZhbHVlcyBhcyAi
TmFOIiwgcG9zaXRpdmUgaW5maW5pdHkgYXMgIkluZmluaXR5IiwgYW5kIG5lZ2F0aXZlCisgICAg
aW5maW5pdHkgYXMgIi1JbmZpbml0eSIuCisgICAgLSAicHJlY2lzaW9uIjogaW50CisgICAgICAt
IE51bWJlciBvZiBwcmVjaXNpb24gZGlnaXRzIGZvciBmb3JtYXR0aW5nIG9mIHJlYWwgdmFsdWVz
LgorICAgIC0gInByZWNpc2lvblR5cGUiOiAic2lnbmlmaWNhbnQiKGRlZmF1bHQpIG9yICJkZWNp
bWFsIgorICAgICAgLSBUeXBlIG9mIHByZWNpc2lvbiBmb3IgZm9ybWF0dGluZyBvZiByZWFsIHZh
bHVlcy4KKworICAgIFlvdSBjYW4gZXhhbWluZSAnc2V0dGluZ3NfYCB5b3Vyc2VsZgorICAgIHRv
IHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4gYWxzbyB3cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3Qg
bGlrZSBhbnkKKyAgICBKU09OIFZhbHVlLgorICAgIFxzYSBzZXREZWZhdWx0cygpCiAgICAgKi8K
LSAgIGNsYXNzIEpTT05fQVBJIFN0eWxlZFN0cmVhbVdyaXRlcgotICAgewotICAgcHVibGljOgot
ICAgICAgU3R5bGVkU3RyZWFtV3JpdGVyKCBzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbj0iXHQiICk7
Ci0gICAgICB+U3R5bGVkU3RyZWFtV3JpdGVyKCl7fQotCi0gICBwdWJsaWM6Ci0gICAgICAvKiog
XGJyaWVmIFNlcmlhbGl6ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmci
PkpTT048L2E+IGZvcm1hdC4KLSAgICAgICAqIFxwYXJhbSBvdXQgU3RyZWFtIHRvIHdyaXRlIHRv
LiAoQ2FuIGJlIG9zdHJpbmdzdHJlYW0sIGUuZy4pCi0gICAgICAgKiBccGFyYW0gcm9vdCBWYWx1
ZSB0byBzZXJpYWxpemUuCi0gICAgICAgKiBcbm90ZSBUaGVyZSBpcyBubyBwb2ludCBpbiBkZXJp
dmluZyBmcm9tIFdyaXRlciwgc2luY2Ugd3JpdGUoKSBzaG91bGQgbm90IHJldHVybiBhIHZhbHVl
LgotICAgICAgICovCi0gICAgICB2b2lkIHdyaXRlKCBzdGQ6Om9zdHJlYW0gJm91dCwgY29uc3Qg
VmFsdWUgJnJvb3QgKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIHZvaWQgd3JpdGVWYWx1ZSggY29u
c3QgVmFsdWUgJnZhbHVlICk7Ci0gICAgICB2b2lkIHdyaXRlQXJyYXlWYWx1ZSggY29uc3QgVmFs
dWUgJnZhbHVlICk7Ci0gICAgICBib29sIGlzTXVsdGluZUFycmF5KCBjb25zdCBWYWx1ZSAmdmFs
dWUgKTsKLSAgICAgIHZvaWQgcHVzaFZhbHVlKCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKTsK
LSAgICAgIHZvaWQgd3JpdGVJbmRlbnQoKTsKLSAgICAgIHZvaWQgd3JpdGVXaXRoSW5kZW50KCBj
b25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKTsKLSAgICAgIHZvaWQgaW5kZW50KCk7Ci0gICAgICB2
b2lkIHVuaW5kZW50KCk7Ci0gICAgICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKCBjb25z
dCBWYWx1ZSAmcm9vdCApOwotICAgICAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZSggY29uc3QgVmFsdWUgJnJvb3QgKTsKLSAgICAgIGJvb2wgaGFzQ29tbWVudEZvclZhbHVl
KCBjb25zdCBWYWx1ZSAmdmFsdWUgKTsKLSAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxp
emVFT0woIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0ICk7Ci0KLSAgICAgIHR5cGVkZWYgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOwotCi0gICAgICBDaGlsZFZhbHVlcyBjaGls
ZFZhbHVlc187Ci0gICAgICBzdGQ6Om9zdHJlYW0qIGRvY3VtZW50XzsKLSAgICAgIHN0ZDo6c3Ry
aW5nIGluZGVudFN0cmluZ187Ci0gICAgICBpbnQgcmlnaHRNYXJnaW5fOwotICAgICAgc3RkOjpz
dHJpbmcgaW5kZW50YXRpb25fOwotICAgICAgYm9vbCBhZGRDaGlsZFZhbHVlc187Ci0gICB9Owot
Ci0jIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCi0gICBzdGQ6OnN0cmluZyBKU09OX0FQSSB2
YWx1ZVRvU3RyaW5nKCBJbnQgdmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9TdHJpbmcoIFVJbnQgdmFsdWUgKTsKLSMgZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19J
TlQ2NCkKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoIExhcmdlc3RJbnQg
dmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoIExhcmdlc3RV
SW50IHZhbHVlICk7Ci0gICBzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKCBkb3Vi
bGUgdmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoIGJvb2wg
dmFsdWUgKTsKLSAgIHN0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9RdW90ZWRTdHJpbmcoIGNv
bnN0IGNoYXIgKnZhbHVlICk7Ci0KLSAgIC8vLyBcYnJpZWYgT3V0cHV0IHVzaW5nIHRoZSBTdHls
ZWRTdHJlYW1Xcml0ZXIuCi0gICAvLy8gXHNlZSBKc29uOjpvcGVyYXRvcj4+KCkKLSAgIHN0ZDo6
b3N0cmVhbSYgb3BlcmF0b3I8PCggc3RkOjpvc3RyZWFtJiwgY29uc3QgVmFsdWUgJnJvb3QgKTsK
KyAgSnNvbjo6VmFsdWUgc2V0dGluZ3NfOworCisgIFN0cmVhbVdyaXRlckJ1aWxkZXIoKTsKKyAg
flN0cmVhbVdyaXRlckJ1aWxkZXIoKSBvdmVycmlkZTsKKworICAvKioKKyAgICogXHRocm93IHN0
ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGlu
Z3MpCisgICAqLworICBTdHJlYW1Xcml0ZXIqIG5ld1N0cmVhbVdyaXRlcigpIGNvbnN0IG92ZXJy
aWRlOworCisgIC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRpbmdzJyBhcmUgbGVnYWwgYW5kIGNv
bnNpc3RlbnQ7CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBiYWQgc2V0dGluZ3MgdmlhICdp
bnZhbGlkJy4KKyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNv
bnN0OworICAvKiogQSBzaW1wbGUgd2F5IHRvIHVwZGF0ZSBhIHNwZWNpZmljIHNldHRpbmcuCisg
ICAqLworICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBTdHJpbmcmIGtleSk7CisKKyAgLyoqIENh
bGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0byByZXNldCBzZXR0aW5nc18uCisg
ICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6bnVsbCBpcyBmaW5lKQorICAg
KiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBldCBzcmMvbGliX2pzb24vanNvbl93cml0
ZXIuY3BwIFN0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0cworICAgKi8KKyAgc3RhdGljIHZvaWQg
c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKK307CisKKy8qKiBcYnJpZWYgQWJz
dHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCisgKiBcZGVwcmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVy
LiAoQW5kIHJlYWxseSwgdGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKQorICovCitj
bGFzcyBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBTdHJlYW1Xcml0ZXIgaW5zdGVhZCIpIEpTT05f
QVBJIFdyaXRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfldyaXRlcigpOworCisgIHZpcnR1YWwg
U3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KSA9IDA7Cit9OworCisvKiogXGJyaWVmIE91
dHB1dHMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBm
b3JtYXQKKyAqd2l0aG91dCBmb3JtYXR0aW5nIChub3QgaHVtYW4gZnJpZW5kbHkpLgorICoKKyAq
IFRoZSBKU09OIGRvY3VtZW50IGlzIHdyaXR0ZW4gaW4gYSBzaW5nbGUgbGluZS4gSXQgaXMgbm90
IGludGVuZGVkIGZvciAnaHVtYW4nCisgKmNvbnN1bXB0aW9uLAorICogYnV0IG1heSBiZSB1c2Vm
dWwgdG8gc3VwcG9ydCBmZWF0dXJlIHN1Y2ggYXMgUlBDIHdoZXJlIGJhbmR3aWR0aCBpcyBsaW1p
dGVkLgorICogXHNhIFJlYWRlciwgVmFsdWUKKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0
ZXJCdWlsZGVyLgorICovCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNwcmFnbWEgd2FybmluZyhw
dXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0OTk2KSAvLyBEZXJpdmluZyBmcm9tIGRl
cHJlY2F0ZWQgY2xhc3MKKyNlbmRpZgorY2xhc3MgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgU3Ry
ZWFtV3JpdGVyQnVpbGRlciBpbnN0ZWFkIikgSlNPTl9BUEkgRmFzdFdyaXRlcgorICAgIDogcHVi
bGljIFdyaXRlciB7CitwdWJsaWM6CisgIEZhc3RXcml0ZXIoKTsKKyAgfkZhc3RXcml0ZXIoKSBv
dmVycmlkZSA9IGRlZmF1bHQ7CisKKyAgdm9pZCBlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSgpOwor
CisgIC8qKiBcYnJpZWYgRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3cml0ZXIncyBv
dXRwdXQgZm9yIG51bGxWYWx1ZXMuCisgICAqIFN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5v
dCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCisgICAqIGZlZCB0byBh
IGJyb3dzZXIncyBKYXZhU2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRo
ZQorICAgKiBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCisgICAqLwor
ICB2b2lkIGRyb3BOdWxsUGxhY2Vob2xkZXJzKCk7CisKKyAgdm9pZCBvbWl0RW5kaW5nTGluZUZl
ZWQoKTsKKworcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVyCisgIFN0cmluZyB3cml0
ZShjb25zdCBWYWx1ZSYgcm9vdCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVW
YWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworCisgIFN0cmluZyBkb2N1bWVudF87CisgIGJvb2wg
eWFtbENvbXBhdGliaWxpdHlFbmFibGVkX3tmYWxzZX07CisgIGJvb2wgZHJvcE51bGxQbGFjZWhv
bGRlcnNfe2ZhbHNlfTsKKyAgYm9vbCBvbWl0RW5kaW5nTGluZUZlZWRfe2ZhbHNlfTsKK307Cisj
aWYgZGVmaW5lZChfTVNDX1ZFUikKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworLyoq
IFxicmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5K
U09OPC9hPiBmb3JtYXQgaW4gYQorICpodW1hbiBmcmllbmRseSB3YXkuCisgKgorICogVGhlIHJ1
bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBpbmRlbnQgYXJlIGFzIGZvbGxvdzoKKyAqIC0gT2JqZWN0
IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBh
bmQgbGluZSBicmVhaworICogICAgIC0gaWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUg
YnJlYWsgJiBpbmRlbnQsIHByaW50IG9uZSB2YWx1ZSBwZXIKKyAqbGluZQorICogICAgICAgYW5k
IHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHByaW50ICd9Jy4KKyAqIC0gQXJyYXkg
dmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IFtdIHdpdGhvdXQgaW5kZW50IGFu
ZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiB0aGUgYXJyYXkgY29udGFpbnMgbm8gb2JqZWN0IHZh
bHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVlCisgKnR5cGVzLAorICogICAgICAg
YW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMsIHRoZW4gcHJpbnQgdGhlIGFycmF5
IG9uIGEgc2luZ2xlCisgKmxpbmUuCisgKiAgICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMg
ZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3IgdGhlIGFycmF5IGNvbnRhaW5zCisgKiAgICAgICBv
YmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4K
KyAqCisgKiBJZiB0aGUgVmFsdWUgaGF2ZSBjb21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVk
IGFjY29yZGluZyB0byB0aGVpcgorICojQ29tbWVudFBsYWNlbWVudC4KKyAqCisgKiBcc2EgUmVh
ZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVh
bVdyaXRlckJ1aWxkZXIuCisgKi8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJu
aW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYpIC8vIERlcml2aW5nIGZy
b20gZGVwcmVjYXRlZCBjbGFzcworI2VuZGlmCitjbGFzcyBKU09OQ1BQX0RFUFJFQ0FURUQoIlVz
ZSBTdHJlYW1Xcml0ZXJCdWlsZGVyIGluc3RlYWQiKSBKU09OX0FQSQorICAgIFN0eWxlZFdyaXRl
ciA6IHB1YmxpYyBXcml0ZXIgeworcHVibGljOgorICBTdHlsZWRXcml0ZXIoKTsKKyAgflN0eWxl
ZFdyaXRlcigpIG92ZXJyaWRlID0gZGVmYXVsdDsKKworcHVibGljOiAvLyBvdmVycmlkZGVuIGZy
b20gV3JpdGVyCisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0
cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgorICAgKiBccGFyYW0gcm9vdCBWYWx1
ZSB0byBzZXJpYWxpemUuCisgICAqIFxyZXR1cm4gU3RyaW5nIGNvbnRhaW5pbmcgdGhlIEpTT04g
ZG9jdW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSByb290IHZhbHVlLgorICAgKi8KKyAgU3RyaW5n
IHdyaXRlKGNvbnN0IFZhbHVlJiByb290KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgdm9pZCB3
cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJheVZhbHVlKGNv
bnN0IFZhbHVlJiB2YWx1ZSk7CisgIGJvb2wgaXNNdWx0aWxpbmVBcnJheShjb25zdCBWYWx1ZSYg
dmFsdWUpOworICB2b2lkIHB1c2hWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCB3
cml0ZUluZGVudCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVudChjb25zdCBTdHJpbmcmIHZhbHVl
KTsKKyAgdm9pZCBpbmRlbnQoKTsKKyAgdm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRB
ZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCk7CisgIHN0YXRpYyBib29sIGhh
c0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBzdGF0aWMgU3RyaW5nIG5v
cm1hbGl6ZUVPTChjb25zdCBTdHJpbmcmIHRleHQpOworCisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8
U3RyaW5nPiBDaGlsZFZhbHVlczsKKworICBDaGlsZFZhbHVlcyBjaGlsZFZhbHVlc187CisgIFN0
cmluZyBkb2N1bWVudF87CisgIFN0cmluZyBpbmRlbnRTdHJpbmdfOworICB1bnNpZ25lZCBpbnQg
cmlnaHRNYXJnaW5fezc0fTsKKyAgdW5zaWduZWQgaW50IGluZGVudFNpemVfezN9OworICBib29s
IGFkZENoaWxkVmFsdWVzX3tmYWxzZX07Cit9OworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjcHJh
Z21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKy8qKiBcYnJpZWYgV3JpdGVzIGEgVmFsdWUgaW4g
PGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0IGluIGEKKyBodW1h
biBmcmllbmRseSB3YXksCisgICAgIHRvIGEgc3RyZWFtIHJhdGhlciB0aGFuIHRvIGEgc3RyaW5n
LgorICoKKyAqIFRoZSBydWxlcyBmb3IgbGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBmb2xs
b3c6CisgKiAtIE9iamVjdCB2YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30g
d2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUg
cHJpbnQgJ3snLCBsaW5lIGJyZWFrICYgaW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCisgbGlu
ZQorICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHByaW50ICd9
Jy4KKyAqIC0gQXJyYXkgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IFtdIHdp
dGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiB0aGUgYXJyYXkgY29udGFp
bnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVlCisgdHlw
ZXMsCisgKiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0IG9uIG9uZSBsaW5lcywgdGhlbiBw
cmludCB0aGUgYXJyYXkgb24gYSBzaW5nbGUKKyBsaW5lLgorICogICAgIC0gb3RoZXJ3aXNlLCBp
dCB0aGUgdmFsdWVzIGRvIG5vdCBmaXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlu
cworICogICAgICAgb2JqZWN0IG9yIG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFs
dWUgcGVyIGxpbmUuCisgKgorICogSWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5
IGFyZSBvdXRwdXRlZCBhY2NvcmRpbmcgdG8gdGhlaXIKKyAjQ29tbWVudFBsYWNlbWVudC4KKyAq
CisgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQorICogXGRlcHJlY2F0
ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIuCisgKi8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQor
I3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYpIC8v
IERlcml2aW5nIGZyb20gZGVwcmVjYXRlZCBjbGFzcworI2VuZGlmCitjbGFzcyBKU09OQ1BQX0RF
UFJFQ0FURUQoIlVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyIGluc3RlYWQiKSBKU09OX0FQSQorICAg
IFN0eWxlZFN0cmVhbVdyaXRlciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBccGFyYW0gaW5kZW50
YXRpb24gRWFjaCBsZXZlbCB3aWxsIGJlIGluZGVudGVkIGJ5IHRoaXMgYW1vdW50IGV4dHJhLgor
ICAgKi8KKyAgU3R5bGVkU3RyZWFtV3JpdGVyKFN0cmluZyBpbmRlbnRhdGlvbiA9ICJcdCIpOwor
ICB+U3R5bGVkU3RyZWFtV3JpdGVyKCkgPSBkZWZhdWx0OworCitwdWJsaWM6CisgIC8qKiBcYnJp
ZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNP
TjwvYT4gZm9ybWF0LgorICAgKiBccGFyYW0gb3V0IFN0cmVhbSB0byB3cml0ZSB0by4gKENhbiBi
ZSBvc3RyaW5nc3RyZWFtLCBlLmcuKQorICAgKiBccGFyYW0gcm9vdCBWYWx1ZSB0byBzZXJpYWxp
emUuCisgICAqIFxub3RlIFRoZXJlIGlzIG5vIHBvaW50IGluIGRlcml2aW5nIGZyb20gV3JpdGVy
LCBzaW5jZSB3cml0ZSgpIHNob3VsZCBub3QKKyAgICogcmV0dXJuIGEgdmFsdWUuCisgICAqLwor
ICB2b2lkIHdyaXRlKE9TdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpOworCitwcml2YXRl
OgorICB2b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUFy
cmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgYm9vbCBpc011bHRpbGluZUFycmF5KGNv
bnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUp
OworICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0IFN0
cmluZyYgdmFsdWUpOworICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZv
aWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpOworICB2b2lkIHdy
aXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KTsKKyAgc3Rh
dGljIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHN0YXRp
YyBTdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgdHlwZWRlZiBz
dGQ6OnZlY3RvcjxTdHJpbmc+IENoaWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFs
dWVzXzsKKyAgT1N0cmVhbSogZG9jdW1lbnRfOworICBTdHJpbmcgaW5kZW50U3RyaW5nXzsKKyAg
dW5zaWduZWQgaW50IHJpZ2h0TWFyZ2luX3s3NH07CisgIFN0cmluZyBpbmRlbnRhdGlvbl87Cisg
IGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKKyAgYm9vbCBpbmRlbnRlZF8gOiAxOworfTsKKyNp
ZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisjaWYg
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK1N0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKElu
dCB2YWx1ZSk7CitTdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhVSW50IHZhbHVlKTsKKyNl
bmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorU3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSk7CitTdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmlu
ZyhMYXJnZXN0VUludCB2YWx1ZSk7CitTdHJpbmcgSlNPTl9BUEkKK3ZhbHVlVG9TdHJpbmcoZG91
YmxlIHZhbHVlLAorICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uID0gVmFsdWU6
OmRlZmF1bHRSZWFsUHJlY2lzaW9uLAorICAgICAgICAgICAgICBQcmVjaXNpb25UeXBlIHByZWNp
c2lvblR5cGUgPSBQcmVjaXNpb25UeXBlOjpzaWduaWZpY2FudERpZ2l0cyk7CitTdHJpbmcgSlNP
Tl9BUEkgdmFsdWVUb1N0cmluZyhib29sIHZhbHVlKTsKK1N0cmluZyBKU09OX0FQSSB2YWx1ZVRv
UXVvdGVkU3RyaW5nKGNvbnN0IGNoYXIqIHZhbHVlKTsKKworLy8vIFxicmllZiBPdXRwdXQgdXNp
bmcgdGhlIFN0eWxlZFN0cmVhbVdyaXRlci4KKy8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4oKQor
SlNPTl9BUEkgT1N0cmVhbSYgb3BlcmF0b3I8PChPU3RyZWFtJiwgY29uc3QgVmFsdWUmIHJvb3Qp
OwogCiB9IC8vIG5hbWVzcGFjZSBKc29uCiAKKyNwcmFnbWEgcGFjayhwb3ApCiAKKyNpZiBkZWZp
bmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5p
bmcocG9wKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZB
Q0VfV0FSTklORykKIAogI2VuZGlmIC8vIEpTT05fV1JJVEVSX0hfSU5DTFVERUQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvanNvbmNwcC5zbG4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VmaWxlcy92czcx
L2pzb25jcHAuc2xuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDJmOTFiNDQyMGI5
YjIyMTA2MGY5NWQ5NDIyMzJlYzJmNGQzYmZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvanNvbmNwcC5zbG4KKysrIC9k
ZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi1NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlv
biBGaWxlLCBGb3JtYXQgVmVyc2lvbiA4LjAwCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQw
LThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImxpYl9qc29uIiwgImxpYl9qc29uLnZjcHJvaiIsICJ7
Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfSIKLQlQcm9qZWN0U2VjdGlvbihQ
cm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0Ci0JRW5kUHJvamVjdFNlY3Rpb24KLUVu
ZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9
IikgPSAianNvbnRlc3QiLCAianNvbnRlc3QudmNwcm9qIiwgInsyNUFGMkREMi1EMzk2LTQ2Njgt
QjE4OC00ODhDMzNCOEU2MjB9IgotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMp
ID0gcG9zdFByb2plY3QKLQkJe0I4NEY3MjMxLTE2Q0UtNDFEOC04QzA4LTdCNTIzRkY0MjI1Qn0g
PSB7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfQotCUVuZFByb2plY3RTZWN0
aW9uCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5
MUJDOTQyfSIpID0gInRlc3RfbGliX2pzb24iLCAidGVzdF9saWJfanNvbi52Y3Byb2oiLCAie0I3
QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0iCi0JUHJvamVjdFNlY3Rpb24oUHJv
amVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdAotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThD
MDgtN0I1MjNGRjQyMjVCfSA9IHtCODRGNzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9
Ci0JRW5kUHJvamVjdFNlY3Rpb24KLUVuZFByb2plY3QKLUdsb2JhbAotCUdsb2JhbFNlY3Rpb24o
U29sdXRpb25Db25maWd1cmF0aW9uKSA9IHByZVNvbHV0aW9uCi0JCURlYnVnID0gRGVidWcKLQkJ
ZHVtbXkgPSBkdW1teQotCQlSZWxlYXNlID0gUmVsZWFzZQotCUVuZEdsb2JhbFNlY3Rpb24KLQlH
bG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uKSA9IHBvc3RTb2x1dGlvbgotCQl7Qjg0
RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfS5EZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1
Z3xXaW4zMgotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfS5EZWJ1Zy5C
dWlsZC4wID0gRGVidWd8V2luMzIKLQkJe0I4NEY3MjMxLTE2Q0UtNDFEOC04QzA4LTdCNTIzRkY0
MjI1Qn0uZHVtbXkuQWN0aXZlQ2ZnID0gZHVtbXl8V2luMzIKLQkJe0I4NEY3MjMxLTE2Q0UtNDFE
OC04QzA4LTdCNTIzRkY0MjI1Qn0uZHVtbXkuQnVpbGQuMCA9IGR1bW15fFdpbjMyCi0JCXtCODRG
NzIzMS0xNkNFLTQxRDgtOEMwOC03QjUyM0ZGNDIyNUJ9LlJlbGVhc2UuQWN0aXZlQ2ZnID0gUmVs
ZWFzZXxXaW4zMgotCQl7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgtN0I1MjNGRjQyMjVCfS5SZWxl
YXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXsyNUFGMkREMi1EMzk2LTQ2NjgtQjE4OC00
ODhDMzNCOEU2MjB9LkRlYnVnLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXsyNUFGMkREMi1E
Mzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgot
CQl7MjVBRjJERDItRDM5Ni00NjY4LUIxODgtNDg4QzMzQjhFNjIwfS5kdW1teS5BY3RpdmVDZmcg
PSBEZWJ1Z3xXaW4zMgotCQl7MjVBRjJERDItRDM5Ni00NjY4LUIxODgtNDg4QzMzQjhFNjIwfS5k
dW1teS5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezI1QUYyREQyLUQzOTYtNDY2OC1CMTg4LTQ4
OEMzM0I4RTYyMH0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXsyNUFGMkRE
Mi1EMzk2LTQ2NjgtQjE4OC00ODhDMzNCOEU2MjB9LlJlbGVhc2UuQnVpbGQuMCA9IFJlbGVhc2V8
V2luMzIKLQkJe0I3QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEyREVGMkI5QzI2RH0uRGVidWcuQWN0
aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJe0I3QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEyREVGMkI5
QzI2RH0uRGVidWcuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXtCN0E5NkI3OC0yNzgyLTQwRDIt
OEYzNy1BMkRFRjJCOUMyNkR9LmR1bW15LkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXtCN0E5
NkI3OC0yNzgyLTQwRDItOEYzNy1BMkRFRjJCOUMyNkR9LmR1bW15LkJ1aWxkLjAgPSBEZWJ1Z3xX
aW4zMgotCQl7QjdBOTZCNzgtMjc4Mi00MEQyLThGMzctQTJERUYyQjlDMjZEfS5SZWxlYXNlLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJe0I3QTk2Qjc4LTI3ODItNDBEMi04RjM3LUEyREVG
MkI5QzI2RH0uUmVsZWFzZS5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCUVuZEdsb2JhbFNlY3Rp
b24KLQlHbG9iYWxTZWN0aW9uKEV4dGVuc2liaWxpdHlHbG9iYWxzKSA9IHBvc3RTb2x1dGlvbgot
CUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKEV4dGVuc2liaWxpdHlBZGRJbnMpID0g
cG9zdFNvbHV0aW9uCi0JRW5kR2xvYmFsU2VjdGlvbgotRW5kR2xvYmFsCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL21ha2VmaWxlcy92czcxL2pzb250ZXN0LnZjcHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEv
anNvbnRlc3QudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjJjNzFmNjFh
ZDRiOGI0N2ViMjBlNTZkMDM4YTAxNTgwY2FlYTYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvanNvbnRlc3QudmNwcm9q
CisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9IldpbmRvd3MtMTI1MiI/PgotPFZpc3VhbFN0dWRpb1Byb2plY3QKLQlQcm9qZWN0VHlw
ZT0iVmlzdWFsIEMrKyIKLQlWZXJzaW9uPSI3LjEwIgotCU5hbWU9Impzb250ZXN0IgotCVByb2pl
Y3RHVUlEPSJ7MjVBRjJERDItRDM5Ni00NjY4LUIxODgtNDg4QzMzQjhFNjIwfSIKLQlLZXl3b3Jk
PSJXaW4zMlByb2oiPgotCTxQbGF0Zm9ybXM+Ci0JCTxQbGF0Zm9ybQotCQkJTmFtZT0iV2luMzIi
Lz4KLQk8L1BsYXRmb3Jtcz4KLQk8Q29uZmlndXJhdGlvbnM+Ci0JCTxDb25maWd1cmF0aW9uCi0J
CQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCU91dHB1dERpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3
MS9kZWJ1Zy9qc29udGVzdCIKLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLi4vLi4vYnVpbGQv
dnM3MS9kZWJ1Zy9qc29udGVzdCIKLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIgotCQkJQ2hhcmFj
dGVyU2V0PSIyIj4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQlP
cHRpbWl6YXRpb249IjAiCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi4vLi4v
aW5jbHVkZSIKLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0RFQlVHO19DT05T
T0xFIgotCQkJCU1pbmltYWxSZWJ1aWxkPSJUUlVFIgotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0i
MyIKLQkJCQlSdW50aW1lTGlicmFyeT0iMSIKLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIK
LQkJCQlXYXJuaW5nTGV2ZWw9IjMiCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1z
PSJUUlVFIgotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjQiLz4KLQkJCTxUb29sCi0JCQkJ
TmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNMaW5rZXJU
b29sIgotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKS9qc29udGVzdC5leGUiCi0JCQkJTGlua0lu
Y3JlbWVudGFsPSIyIgotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSIKLQkJCQlQ
cm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcikvanNvbnRlc3QucGRiIgotCQkJCVN1YlN5c3Rl
bT0iMSIKLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTUlE
TFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4KLQkJ
CTxUb29sCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlO
YW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNSZXNvdXJj
ZUNvbXBpbGVyVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdl
bmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9v
bCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+Ci0JCQk8VG9v
bAotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAot
CQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0JCTwv
Q29uZmlndXJhdGlvbj4KLQkJPENvbmZpZ3VyYXRpb24KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
Ci0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4uLy4uL2J1aWxkL3ZzNzEvcmVsZWFzZS9qc29udGVzdCIK
LQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9yZWxlYXNlL2pzb250
ZXN0IgotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPgotCQkJ
PFRvb2wKLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCUFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM9Ii4uLy4uL2luY2x1ZGUiCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9
IldJTjMyO05ERUJVRztfQ09OU09MRSIKLQkJCQlSdW50aW1lTGlicmFyeT0iMCIKLQkJCQlVc2VQ
cmVjb21waWxlZEhlYWRlcj0iMCIKLQkJCQlXYXJuaW5nTGV2ZWw9IjMiCi0JCQkJRGV0ZWN0NjRC
aXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9
IjMiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4KLQkJCTxUb29s
Ci0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIgotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKS9qc29u
dGVzdC5leGUiCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIgotCQkJCUdlbmVyYXRlRGVidWdJbmZv
cm1hdGlvbj0iVFJVRSIKLQkJCQlTdWJTeXN0ZW09IjEiCi0JCQkJT3B0aW1pemVSZWZlcmVuY2Vz
PSIyIgotCQkJCUVuYWJsZUNPTURBVEZvbGRpbmc9IjIiCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIv
PgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9
IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUHJlQnVpbGRF
dmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+Ci0J
CQk8VG9vbAotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4KLQkJCTxUb29sCi0J
CQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJ
CU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNX
ZWJEZXBsb3ltZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVy
R2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRX
cmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQk8L0NvbmZpZ3VyYXRpb24+Ci0JPC9Db25maWd1cmF0
aW9ucz4KLQk8UmVmZXJlbmNlcz4KLQk8L1JlZmVyZW5jZXM+Ci0JPEZpbGVzPgotCQk8RmlsZQot
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcanNvbnRlc3RydW5uZXJcbWFpbi5jcHAiPgotCQk8
L0ZpbGU+Ci0JPC9GaWxlcz4KLQk8R2xvYmFscz4KLQk8L0dsb2JhbHM+Ci08L1Zpc3VhbFN0dWRp
b1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VmaWxlcy92czcxL2xpYl9qc29uLnZjcHJv
aiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvbWFrZWZpbGVzL3ZzNzEvbGliX2pzb24udmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxYWE1OTc4YTFmZWYzNzc5NWVlZmQxOGRjM2E4ODNjODZlMzlkOWY1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvbWFrZWZp
bGVzL3ZzNzEvbGliX2pzb24udmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMjE0ICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/PgotPFZpc3VhbFN0
dWRpb1Byb2plY3QKLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyIKLQlWZXJzaW9uPSI3LjEwIgot
CU5hbWU9ImxpYl9qc29uIgotCVByb2plY3RHVUlEPSJ7Qjg0RjcyMzEtMTZDRS00MUQ4LThDMDgt
N0I1MjNGRjQyMjVCfSIKLQlLZXl3b3JkPSJXaW4zMlByb2oiPgotCTxQbGF0Zm9ybXM+Ci0JCTxQ
bGF0Zm9ybQotCQkJTmFtZT0iV2luMzIiLz4KLQk8L1BsYXRmb3Jtcz4KLQk8Q29uZmlndXJhdGlv
bnM+Ci0JCTxDb25maWd1cmF0aW9uCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCU91dHB1dERp
cmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy9saWJfanNvbiIKLQkJCUludGVybWVkaWF0
ZURpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy9saWJfanNvbiIKLQkJCUNvbmZpZ3Vy
YXRpb25UeXBlPSI0IgotCQkJQ2hhcmFjdGVyU2V0PSIyIj4KLQkJCTxUb29sCi0JCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQlPcHRpbWl6YXRpb249IjAiCi0JCQkJQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz0iLi4vLi4vaW5jbHVkZSIKLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz0iV0lOMzI7X0RFQlVHO19MSUIiCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSIKLQkJCQlN
aW5pbWFsUmVidWlsZD0iVFJVRSIKLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjMiCi0JCQkJUnVu
dGltZUxpYnJhcnk9IjEiCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiCi0J
CQkJRGlzYWJsZUxhbmd1YWdlRXh0ZW5zaW9ucz0iVFJVRSIKLQkJCQlGb3JjZUNvbmZvcm1hbmNl
SW5Gb3JMb29wU2NvcGU9IkZBTFNFIgotCQkJCVJ1bnRpbWVUeXBlSW5mbz0iVFJVRSIKLQkJCQlV
c2VQcmVjb21waWxlZEhlYWRlcj0iMCIKLQkJCQlXYXJuaW5nTGV2ZWw9IjMiCi0JCQkJRGV0ZWN0
NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ9IjQiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4KLQkJCTxU
b29sCi0JCQkJTmFtZT0iVkNMaWJyYXJpYW5Ub29sIgotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGly
KS9qc29uX3ZjNzFfbGlibXRkLmxpYiIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01JRExUb29s
Ii8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8VG9v
bAotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0i
VkNQcmVMaW5rRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21w
aWxlclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0
b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4K
LQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4KLQkJ
CTxUb29sCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wi
Lz4KLQkJPC9Db25maWd1cmF0aW9uPgotCQk8Q29uZmlndXJhdGlvbgotCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKLQkJCU91dHB1dERpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9yZWxlYXNlL2xp
Yl9qc29uIgotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuLi8uLi9idWlsZC92czcxL3JlbGVh
c2UvbGliX2pzb24iCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iNCIKLQkJCUNoYXJhY3RlclNldD0i
MiIKLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iVFJVRSI+Ci0JCQk8VG9vbAotCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJR2xvYmFsT3B0aW1pemF0aW9ucz0iVFJVRSIKLQkJ
CQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9IlRSVUUiCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz0iLi4vLi4vaW5jbHVkZSIKLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0i
V0lOMzI7TkRFQlVHO19MSUIiCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSIKLQkJCQlSdW50aW1l
TGlicmFyeT0iMCIKLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSIKLQkJCQlE
aXNhYmxlTGFuZ3VhZ2VFeHRlbnNpb25zPSJUUlVFIgotCQkJCUZvcmNlQ29uZm9ybWFuY2VJbkZv
ckxvb3BTY29wZT0iRkFMU0UiCi0JCQkJUnVudGltZVR5cGVJbmZvPSJUUlVFIgotCQkJCVVzZVBy
ZWNvbXBpbGVkSGVhZGVyPSIwIgotCQkJCUFzc2VtYmxlck91dHB1dD0iNCIKLQkJCQlXYXJuaW5n
TGV2ZWw9IjMiCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIgotCQkJ
CURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDdXN0
b21CdWlsZFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNMaWJyYXJpYW5Ub29sIgotCQkJ
CU91dHB1dEZpbGU9IiQoT3V0RGlyKS9qc29uX3ZjNzFfbGlibXQubGliIi8+Ci0JCQk8VG9vbAot
CQkJCU5hbWU9IlZDTUlETFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRF
dmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPgot
CQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJ
TmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dl
YlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNYTUxE
YXRhR2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVy
R2VuZXJhdG9yVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRX
cmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQk8L0NvbmZpZ3VyYXRpb24+Ci0JCTxDb25maWd1cmF0
aW9uCi0JCQlOYW1lPSJkdW1teXxXaW4zMiIKLQkJCU91dHB1dERpcmVjdG9yeT0iJChDb25maWd1
cmF0aW9uTmFtZSkiCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9IiQoQ29uZmlndXJhdGlvbk5h
bWUpIgotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiCi0JCQlX
aG9sZVByb2dyYW1PcHRpbWl6YXRpb249IlRSVUUiPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCUdsb2JhbE9wdGltaXphdGlvbnM9IlRSVUUiCi0JCQkJRW5hYmxl
SW50cmluc2ljRnVuY3Rpb25zPSJUUlVFIgotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM9Ii4uLy4uL2luY2x1ZGUiCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO05E
RUJVRztfTElCIgotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiCi0JCQkJUnVudGltZUxpYnJhcnk9
IjQiCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiCi0JCQkJRGlzYWJsZUxh
bmd1YWdlRXh0ZW5zaW9ucz0iVFJVRSIKLQkJCQlGb3JjZUNvbmZvcm1hbmNlSW5Gb3JMb29wU2Nv
cGU9IkZBTFNFIgotCQkJCVJ1bnRpbWVUeXBlSW5mbz0iVFJVRSIKLQkJCQlVc2VQcmVjb21waWxl
ZEhlYWRlcj0iMCIKLQkJCQlBc3NlbWJsZXJPdXRwdXQ9IjQiCi0JCQkJV2FybmluZ0xldmVsPSIz
IgotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSIKLQkJCQlEZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PSIzIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRU
b29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCIKLQkJCQlHZW5lcmF0ZURl
YnVnSW5mb3JtYXRpb249IlRSVUUiCi0JCQkJU3ViU3lzdGVtPSIyIgotCQkJCU9wdGltaXplUmVm
ZXJlbmNlcz0iMiIKLQkJCQlFbmFibGVDT01EQVRGb2xkaW5nPSIyIgotCQkJCVRhcmdldE1hY2hp
bmU9IjEiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPgotCQkJPFRvb2wKLQkJ
CQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1By
ZUJ1aWxkRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9v
bCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+Ci0JCQk8
VG9vbAotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPgotCQkJPFRv
b2wKLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5h
bWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNNYW5hZ2Vk
V3JhcHBlckdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlN
YW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4KLQkJPC9Db25maWd1cmF0aW9uPgotCTwvQ29u
ZmlndXJhdGlvbnM+Ci0JPFJlZmVyZW5jZXM+Ci0JPC9SZWZlcmVuY2VzPgotCTxGaWxlcz4KLQkJ
PEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caW5jbHVkZVxqc29uXGF1dG9saW5rLmgiPgot
CQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGluY2x1ZGVcanNvblxj
b25maWcuaCI+Ci0JCTwvRmlsZT4KLQkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caW5j
bHVkZVxqc29uXGZlYXR1cmVzLmgiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBh
dGg9Ii4uXC4uXGluY2x1ZGVcanNvblxmb3J3YXJkcy5oIj4KLQkJPC9GaWxlPgotCQk8RmlsZQot
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxpbmNsdWRlXGpzb25canNvbi5oIj4KLQkJPC9GaWxlPgot
CQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcbGliX2pzb25canNvbl9iYXRjaGFs
bG9jYXRvci5oIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxz
cmNcbGliX2pzb25canNvbl9pbnRlcm5hbGFycmF5LmlubCI+Ci0JCTwvRmlsZT4KLQkJPEZpbGUK
LQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cc3JjXGxpYl9qc29uXGpzb25faW50ZXJuYWxtYXAuaW5s
Ij4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcbGliX2pz
b25canNvbl9yZWFkZXIuY3BwIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxzcmNcbGliX2pzb25canNvbl92YWx1ZS5jcHAiPgotCQk8L0ZpbGU+Ci0JCTxGaWxl
Ci0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNyY1xsaWJfanNvblxqc29uX3ZhbHVlaXRlcmF0b3Iu
aW5sIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxzcmNcbGli
X2pzb25canNvbl93cml0ZXIuY3BwIj4KLQkJPC9GaWxlPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlxpbmNsdWRlXGpzb25ccmVhZGVyLmgiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0J
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGluY2x1ZGVcanNvblx2YWx1ZS5oIj4KLQkJPC9GaWxlPgot
CQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxpbmNsdWRlXGpzb25cd3JpdGVyLmgiPgot
CQk8L0ZpbGU+Ci0JPC9GaWxlcz4KLQk8R2xvYmFscz4KLQk8L0dsb2JhbHM+Ci08L1Zpc3VhbFN0
dWRpb1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VmaWxlcy92czcxL3Rlc3RfbGliX2pz
b24udmNwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9tYWtlZmlsZXMvdnM3MS90ZXN0X2xpYl9qc29uLnZjcHJvagpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWViYjk4NmE2NjViNWIxMTVkMGQzYTc0YzBkYzgz
OTAzNWNkYjk5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL21ha2VmaWxlcy92czcxL3Rlc3RfbGliX2pzb24udmNwcm9qCisrKyAvZGV2L251bGwK
QEAgLTEsMTMwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3Mt
MTI1MiI/PgotPFZpc3VhbFN0dWRpb1Byb2plY3QKLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyIK
LQlWZXJzaW9uPSI3LjEwIgotCU5hbWU9InRlc3RfbGliX2pzb24iCi0JUHJvamVjdEdVSUQ9IntC
N0E5NkI3OC0yNzgyLTQwRDItOEYzNy1BMkRFRjJCOUMyNkR9IgotCVJvb3ROYW1lc3BhY2U9InRl
c3RfbGliX2pzb24iCi0JS2V5d29yZD0iV2luMzJQcm9qIj4KLQk8UGxhdGZvcm1zPgotCQk8UGxh
dGZvcm0KLQkJCU5hbWU9IldpbjMyIi8+Ci0JPC9QbGF0Zm9ybXM+Ci0JPENvbmZpZ3VyYXRpb25z
PgotCQk8Q29uZmlndXJhdGlvbgotCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQlPdXRwdXREaXJl
Y3Rvcnk9Ii4uLy4uL2J1aWxkL3ZzNzEvZGVidWcvdGVzdF9saWJfanNvbiIKLQkJCUludGVybWVk
aWF0ZURpcmVjdG9yeT0iLi4vLi4vYnVpbGQvdnM3MS9kZWJ1Zy90ZXN0X2xpYl9qc29uIgotCQkJ
Q29uZmlndXJhdGlvblR5cGU9IjEiCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPgotCQkJPFRvb2wKLQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCU9wdGltaXphdGlvbj0iMCIKLQkJCQlBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLi8uLi9pbmNsdWRlIgotCQkJCVByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPSJXSU4zMjtfREVCVUc7X0NPTlNPTEUiCi0JCQkJTWluaW1hbFJlYnVpbGQ9
IlRSVUUiCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIzIgotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIx
IgotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgotCQkJCVdhcm5pbmdMZXZlbD0iMyIKLQkJ
CQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiCi0JCQkJRGVidWdJbmZvcm1h
dGlvbkZvcm1hdD0iNCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIv
PgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiCi0JCQkJT3V0cHV0RmlsZT0iJChP
dXREaXIpL3Rlc3RfbGliX2pzb24uZXhlIgotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMiIKLQkJCQlH
ZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0i
JChPdXREaXIpL3Rlc3RfbGliX2pzb24ucGRiIgotCQkJCVN1YlN5c3RlbT0iMSIKLQkJCQlUYXJn
ZXRNYWNoaW5lPSIxIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4KLQkJCTxU
b29sCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiCi0JCQkJRGVzY3JpcHRpb249IlJ1
bm5pbmcgYWxsIHVuaXQgdGVzdHMiCi0JCQkJQ29tbWFuZExpbmU9IiQoVGFyZ2V0UGF0aCkiLz4K
LQkJCTxUb29sCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPgotCQkJPFRvb2wKLQkJ
CQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNSZXNv
dXJjZUNvbXBpbGVyVG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94
eUdlbmVyYXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9y
VG9vbCIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+Ci0JCQk8
VG9vbAotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9v
bAotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+Ci0J
CTwvQ29uZmlndXJhdGlvbj4KLQkJPENvbmZpZ3VyYXRpb24KLQkJCU5hbWU9IlJlbGVhc2V8V2lu
MzIiCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4uLy4uL2J1aWxkL3ZzNzEvcmVsZWFzZS90ZXN0X2xp
Yl9qc29uIgotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuLi8uLi9idWlsZC92czcxL3JlbGVh
c2UvdGVzdF9saWJfanNvbiIKLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIgotCQkJQ2hhcmFjdGVy
U2V0PSIyIj4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQlBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLi8uLi9pbmNsdWRlIgotCQkJCVByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPSJXSU4zMjtOREVCVUc7X0NPTlNPTEUiCi0JCQkJUnVudGltZUxpYnJhcnk9
IjAiCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCi0JCQkJV2FybmluZ0xldmVsPSIzIgot
CQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSIKLQkJCQlEZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PSIzIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29s
Ii8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCIKLQkJCQlPdXRwdXRGaWxlPSIk
KE91dERpcikvdGVzdF9saWJfanNvbi5leGUiCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIgotCQkJ
CUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSIKLQkJCQlTdWJTeXN0ZW09IjEiCi0JCQkJ
T3B0aW1pemVSZWZlcmVuY2VzPSIyIgotCQkJCUVuYWJsZUNPTURBVEZvbGRpbmc9IjIiCi0JCQkJ
VGFyZ2V0TWFjaGluZT0iMSIvPgotCQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+Ci0J
CQk8VG9vbAotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIgotCQkJCURlc2NyaXB0aW9u
PSJSdW5uaW5nIGFsbCB1bml0IHRlc3RzIgotCQkJCUNvbW1hbmRMaW5lPSIkKFRhcmdldFBhdGgp
Ii8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4KLQkJCTxUb29s
Ci0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZD
UmVzb3VyY2VDb21waWxlclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNl
UHJveHlHZW5lcmF0b3JUb29sIi8+Ci0JCQk8VG9vbAotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVy
YXRvclRvb2wiLz4KLQkJCTxUb29sCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPgot
CQkJPFRvb2wKLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPgotCQkJ
PFRvb2wKLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIv
PgotCQk8L0NvbmZpZ3VyYXRpb24+Ci0JPC9Db25maWd1cmF0aW9ucz4KLQk8UmVmZXJlbmNlcz4K
LQk8L1JlZmVyZW5jZXM+Ci0JPEZpbGVzPgotCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlwu
LlxzcmNcdGVzdF9saWJfanNvblxqc29udGVzdC5jcHAiPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0J
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNyY1x0ZXN0X2xpYl9qc29uXGpzb250ZXN0LmgiPgotCQk8
L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHNyY1x0ZXN0X2xpYl9qc29u
XG1haW4uY3BwIj4KLQkJPC9GaWxlPgotCTwvRmlsZXM+Ci0JPEdsb2JhbHM+Ci0JPC9HbG9iYWxz
PgotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tYWtlcmVsZWFzZS5w
eSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvbWFrZXJlbGVhc2UucHkKaW5kZXggNmI4ZWVjMzA3MDc3OGU1NzZhYmE0OTcyN2Nl
MjBmYmJkZGUwMTNhYS4uYmM3MTZjYmFiM2MzY2ZhMThkZWE3ODk2MzgyZDA4NTJhMTQyYTI0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9tYWtlcmVsZWFzZS5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21ha2VyZWxlYXNlLnB5
CkBAIC0xLDMgKzEsOCBAQAorIyBDb3B5cmlnaHQgMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5k
IFRoZSBKc29uQ3BwIEF1dGhvcnMKKyMgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9y
IHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKyMgcmVjb2duaXplZCBpbiB5b3VyIGp1cmlz
ZGljdGlvbi4KKyMgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKwogIiIiVGFnIHRoZSBzYW5kYm94IGZv
ciByZWxlYXNlLCBtYWtlIHNvdXJjZSBhbmQgZG9jIHRhcmJhbGxzLgogCiBSZXF1aXJlcyBQeXRo
b24gMi42CkBAIC0xMCw3ICsxNSwxMiBAQCBweXRob24gbWFrZXJlbGVhc2UucHkgLS1mb3JjZSAt
LXJldGFnIC0tcGxhdGZvcm09bXN2YzYsbXN2YzcxLG1zdmM4MCxtaW5ndyAtdWJsZQogCiBFeGFt
cGxlIG9mIGludm9jYXRpb24gd2hlbiBkb2luZyBhIHJlbGVhc2U6CiBweXRob24gbWFrZXJlbGVh
c2UucHkgMC41LjAgMC42LjAtZGV2CisKK05vdGU6IFRoaXMgd2FzIGZvciBTdWJ2ZXJzaW9uLiBO
b3cgdGhhdCB3ZSBhcmUgaW4gR2l0SHViLCB3ZSBkbyBub3QKK25lZWQgdG8gYnVpbGQgdmVyc2lv
bmVkIHRhcmJhbGxzIGFueW1vcmUsIHNvIG1ha2VyZWxlYXNlLnB5IGlzIGRlZnVuY3QuCiAiIiIK
KworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IG9zLnBhdGgK
IGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCkBAIC0zMCwxNDAgKzQwLDE0MCBAQCBTVk5f
VEFHX1JPT1QgPSBTVk5fUk9PVCArICd0YWdzL2pzb25jcHAnCiBTQ09OU19MT0NBTF9VUkwgPSAn
aHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9zY29ucy9maWxlcy9zY29ucy1sb2NhbC8x
LjIuMC9zY29ucy1sb2NhbC0xLjIuMC50YXIuZ3ovZG93bmxvYWQnCiBTT1VSQ0VGT1JHRV9QUk9K
RUNUID0gJ2pzb25jcHAnCiAKLWRlZiBzZXRfdmVyc2lvbiggdmVyc2lvbiApOgorZGVmIHNldF92
ZXJzaW9uKHZlcnNpb24pOgogICAgIHdpdGggb3BlbigndmVyc2lvbicsJ3diJykgYXMgZjoKLSAg
ICAgICAgZi53cml0ZSggdmVyc2lvbi5zdHJpcCgpICkKKyAgICAgICAgZi53cml0ZSh2ZXJzaW9u
LnN0cmlwKCkpCiAKLWRlZiBybWRpcl9pZl9leGlzdCggZGlyX3BhdGggKToKLSAgICBpZiBvcy5w
YXRoLmlzZGlyKCBkaXJfcGF0aCApOgotICAgICAgICBzaHV0aWwucm10cmVlKCBkaXJfcGF0aCAp
CitkZWYgcm1kaXJfaWZfZXhpc3QoZGlyX3BhdGgpOgorICAgIGlmIG9zLnBhdGguaXNkaXIoZGly
X3BhdGgpOgorICAgICAgICBzaHV0aWwucm10cmVlKGRpcl9wYXRoKQogCiBjbGFzcyBTVk5FcnJv
cihFeGNlcHRpb24pOgogICAgIHBhc3MKIAotZGVmIHN2bl9jb21tYW5kKCBjb21tYW5kLCAqYXJn
cyApOgorZGVmIHN2bl9jb21tYW5kKGNvbW1hbmQsICphcmdzKToKICAgICBjbWQgPSBbJ3N2bics
ICctLW5vbi1pbnRlcmFjdGl2ZScsIGNvbW1hbmRdICsgbGlzdChhcmdzKQotICAgIHByaW50ICdS
dW5uaW5nOicsICcgJy5qb2luKCBjbWQgKQotICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVu
KCBjbWQsCisgICAgcHJpbnQoJ1J1bm5pbmc6JywgJyAnLmpvaW4oY21kKSkKKyAgICBwcm9jZXNz
ID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKICAgICBzdGRvdXQgPSBwcm9jZXNzLmNvbW11
bmljYXRlKClbMF0KICAgICBpZiBwcm9jZXNzLnJldHVybmNvZGU6Ci0gICAgICAgIGVycm9yID0g
U1ZORXJyb3IoICdTVk4gY29tbWFuZCBmYWlsZWQ6XG4nICsgc3Rkb3V0ICkKKyAgICAgICAgZXJy
b3IgPSBTVk5FcnJvcignU1ZOIGNvbW1hbmQgZmFpbGVkOlxuJyArIHN0ZG91dCkKICAgICAgICAg
ZXJyb3IucmV0dXJuY29kZSA9IHByb2Nlc3MucmV0dXJuY29kZQogICAgICAgICByYWlzZSBlcnJv
cgogICAgIHJldHVybiBzdGRvdXQKIAogZGVmIGNoZWNrX25vX3BlbmRpbmdfY29tbWl0KCk6CiAg
ICAgIiIiQ2hlY2tzIHRoYXQgdGhlcmUgaXMgbm8gcGVuZGluZyBjb21taXQgaW4gdGhlIHNhbmRi
b3guIiIiCi0gICAgc3Rkb3V0ID0gc3ZuX2NvbW1hbmQoICdzdGF0dXMnLCAnLS14bWwnICkKLSAg
ICBldHJlZSA9IEVsZW1lbnRUcmVlLmZyb21zdHJpbmcoIHN0ZG91dCApCisgICAgc3Rkb3V0ID0g
c3ZuX2NvbW1hbmQoJ3N0YXR1cycsICctLXhtbCcpCisgICAgZXRyZWUgPSBFbGVtZW50VHJlZS5m
cm9tc3RyaW5nKHN0ZG91dCkKICAgICBtc2cgPSBbXQotICAgIGZvciBlbnRyeSBpbiBldHJlZS5n
ZXRpdGVyYXRvciggJ2VudHJ5JyApOgorICAgIGZvciBlbnRyeSBpbiBldHJlZS5nZXRpdGVyYXRv
cignZW50cnknKToKICAgICAgICAgcGF0aCA9IGVudHJ5LmdldCgncGF0aCcpCiAgICAgICAgIHN0
YXR1cyA9IGVudHJ5LmZpbmQoJ3djLXN0YXR1cycpLmdldCgnaXRlbScpCiAgICAgICAgIGlmIHN0
YXR1cyAhPSAndW52ZXJzaW9uZWQnIGFuZCBwYXRoICE9ICd2ZXJzaW9uJzoKLSAgICAgICAgICAg
IG1zZy5hcHBlbmQoICdGaWxlICIlcyIgaGFzIHBlbmRpbmcgY2hhbmdlIChzdGF0dXM9IiVzIikn
ICUgKHBhdGgsIHN0YXR1cykgKQorICAgICAgICAgICAgbXNnLmFwcGVuZCgnRmlsZSAiJXMiIGhh
cyBwZW5kaW5nIGNoYW5nZSAoc3RhdHVzPSIlcyIpJyAlIChwYXRoLCBzdGF0dXMpKQogICAgIGlm
IG1zZzoKLSAgICAgICAgbXNnLmluc2VydCgwLCAnUGVuZGluZyBjaGFuZ2UgdG8gY29tbWl0IGZv
dW5kIGluIHNhbmRib3guIENvbW1pdCB0aGVtIGZpcnN0IScgKQotICAgIHJldHVybiAnXG4nLmpv
aW4oIG1zZyApCisgICAgICAgIG1zZy5pbnNlcnQoMCwgJ1BlbmRpbmcgY2hhbmdlIHRvIGNvbW1p
dCBmb3VuZCBpbiBzYW5kYm94LiBDb21taXQgdGhlbSBmaXJzdCEnKQorICAgIHJldHVybiAnXG4n
LmpvaW4obXNnKQogCi1kZWYgc3ZuX2pvaW5fdXJsKCBiYXNlX3VybCwgc3VmZml4ICk6CitkZWYg
c3ZuX2pvaW5fdXJsKGJhc2VfdXJsLCBzdWZmaXgpOgogICAgIGlmIG5vdCBiYXNlX3VybC5lbmRz
d2l0aCgnLycpOgogICAgICAgICBiYXNlX3VybCArPSAnLycKICAgICBpZiBzdWZmaXguc3RhcnRz
d2l0aCgnLycpOgogICAgICAgICBzdWZmaXggPSBzdWZmaXhbMTpdCiAgICAgcmV0dXJuIGJhc2Vf
dXJsICsgc3VmZml4CiAKLWRlZiBzdm5fY2hlY2tfaWZfdGFnX2V4aXN0KCB0YWdfdXJsICk6Citk
ZWYgc3ZuX2NoZWNrX2lmX3RhZ19leGlzdCh0YWdfdXJsKToKICAgICAiIiJDaGVja3MgaWYgYSB0
YWcgZXhpc3QuCiAgICAgUmV0dXJuczogVHJ1ZSBpZiB0aGUgdGFnIGV4aXN0LCBGYWxzZSBvdGhl
cndpc2UuCiAgICAgIiIiCiAgICAgdHJ5OgotICAgICAgICBsaXN0X3N0ZG91dCA9IHN2bl9jb21t
YW5kKCAnbGlzdCcsIHRhZ191cmwgKQotICAgIGV4Y2VwdCBTVk5FcnJvciwgZToKKyAgICAgICAg
bGlzdF9zdGRvdXQgPSBzdm5fY29tbWFuZCgnbGlzdCcsIHRhZ191cmwpCisgICAgZXhjZXB0IFNW
TkVycm9yIGFzIGU6CiAgICAgICAgIGlmIGUucmV0dXJuY29kZSAhPSAxIG9yIG5vdCBzdHIoZSku
ZmluZCgndGFnX3VybCcpOgogICAgICAgICAgICAgcmFpc2UgZQogICAgICAgICAjIG90aGVyd2lz
ZSBpZ25vcmUgZXJyb3IsIG1lYW5pbmcgdGFnIGRvZXMgbm90IGV4aXN0CiAgICAgICAgIHJldHVy
biBGYWxzZQogICAgIHJldHVybiBUcnVlCiAKLWRlZiBzdm5fY29tbWl0KCBtZXNzYWdlICk6Citk
ZWYgc3ZuX2NvbW1pdChtZXNzYWdlKToKICAgICAiIiJDb21taXQgdGhlIHNhbmRib3gsIHByb3Zp
ZGluZyB0aGUgc3BlY2lmaWVkIGNvbW1lbnQuCiAgICAgIiIiCi0gICAgc3ZuX2NvbW1hbmQoICdj
aScsICctbScsIG1lc3NhZ2UgKQorICAgIHN2bl9jb21tYW5kKCdjaScsICctbScsIG1lc3NhZ2Up
CiAKLWRlZiBzdm5fdGFnX3NhbmRib3goIHRhZ191cmwsIG1lc3NhZ2UgKToKK2RlZiBzdm5fdGFn
X3NhbmRib3godGFnX3VybCwgbWVzc2FnZSk6CiAgICAgIiIiTWFrZXMgYSB0YWcgYmFzZWQgb24g
dGhlIHNhbmRib3ggcmV2aXNpb25zLgogICAgICIiIgotICAgIHN2bl9jb21tYW5kKCAnY29weScs
ICctbScsIG1lc3NhZ2UsICcuJywgdGFnX3VybCApCisgICAgc3ZuX2NvbW1hbmQoJ2NvcHknLCAn
LW0nLCBtZXNzYWdlLCAnLicsIHRhZ191cmwpCiAKLWRlZiBzdm5fcmVtb3ZlX3RhZyggdGFnX3Vy
bCwgbWVzc2FnZSApOgorZGVmIHN2bl9yZW1vdmVfdGFnKHRhZ191cmwsIG1lc3NhZ2UpOgogICAg
ICIiIlJlbW92ZXMgYW4gZXhpc3RpbmcgdGFnLgogICAgICIiIgotICAgIHN2bl9jb21tYW5kKCAn
ZGVsZXRlJywgJy1tJywgbWVzc2FnZSwgdGFnX3VybCApCisgICAgc3ZuX2NvbW1hbmQoJ2RlbGV0
ZScsICctbScsIG1lc3NhZ2UsIHRhZ191cmwpCiAKLWRlZiBzdm5fZXhwb3J0KCB0YWdfdXJsLCBl
eHBvcnRfZGlyICk6CitkZWYgc3ZuX2V4cG9ydCh0YWdfdXJsLCBleHBvcnRfZGlyKToKICAgICAi
IiJFeHBvcnRzIHRoZSB0YWdfdXJsIHJldmlzaW9uIHRvIGV4cG9ydF9kaXIuCiAgICAgICAgVGFy
Z2V0IGRpcmVjdG9yeSwgaW5jbHVkaW5nIGl0cyBwYXJlbnQgaXMgY3JlYXRlZCBpZiBpdCBkb2Vz
IG5vdCBleGlzdC4KICAgICAgICBJZiB0aGUgZGlyZWN0b3J5IGV4cG9ydF9kaXIgZXhpc3QsIGl0
IGlzIGRlbGV0ZWQgYmVmb3JlIGV4cG9ydCBwcm9jZWVkLgogICAgICIiIgotICAgIHJtZGlyX2lm
X2V4aXN0KCBleHBvcnRfZGlyICkKLSAgICBzdm5fY29tbWFuZCggJ2V4cG9ydCcsIHRhZ191cmws
IGV4cG9ydF9kaXIgKQorICAgIHJtZGlyX2lmX2V4aXN0KGV4cG9ydF9kaXIpCisgICAgc3ZuX2Nv
bW1hbmQoJ2V4cG9ydCcsIHRhZ191cmwsIGV4cG9ydF9kaXIpCiAKLWRlZiBmaXhfc291cmNlc19l
b2woIGRpc3RfZGlyICk6CitkZWYgZml4X3NvdXJjZXNfZW9sKGRpc3RfZGlyKToKICAgICAiIiJT
ZXQgZmlsZSBFT0wgZm9yIHRhcmJhbGwgZGlzdHJpYnV0aW9uLgogICAgICIiIgotICAgIHByaW50
ICdQcmVwYXJpbmcgZXhwb3J0ZWQgc291cmNlIGZpbGUgRU9MIGZvciBkaXN0cmlidXRpb24uLi4n
CisgICAgcHJpbnQoJ1ByZXBhcmluZyBleHBvcnRlZCBzb3VyY2UgZmlsZSBFT0wgZm9yIGRpc3Ry
aWJ1dGlvbi4uLicpCiAgICAgcHJ1bmVfZGlycyA9IGFudGdsb2IucHJ1bmVfZGlycyArICdzY29u
cy1sb2NhbCogLi9idWlsZCogLi9saWJzIC4vZGlzdCcKLSAgICB3aW5fc291cmNlcyA9IGFudGds
b2IuZ2xvYiggZGlzdF9kaXIsIAorICAgIHdpbl9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKGRpc3Rf
ZGlyLCAKICAgICAgICAgaW5jbHVkZXMgPSAnKiovKi5zbG4gKiovKi52Y3Byb2onLAotICAgICAg
ICBwcnVuZV9kaXJzID0gcHJ1bmVfZGlycyApCi0gICAgdW5peF9zb3VyY2VzID0gYW50Z2xvYi5n
bG9iKCBkaXN0X2RpciwKKyAgICAgICAgcHJ1bmVfZGlycyA9IHBydW5lX2RpcnMpCisgICAgdW5p
eF9zb3VyY2VzID0gYW50Z2xvYi5nbG9iKGRpc3RfZGlyLAogICAgICAgICBpbmNsdWRlcyA9ICcn
JyoqLyouaCAqKi8qLmNwcCAqKi8qLmlubCAqKi8qLnR4dCAqKi8qLmRveCAqKi8qLnB5ICoqLyou
aHRtbCAqKi8qLmluCiAgICAgICAgIHNjb25zY3JpcHQgKi5qc29uICouZXhwZWN0ZWQgQVVUSE9S
UyBMSUNFTlNFJycnLAogICAgICAgICBleGNsdWRlcyA9IGFudGdsb2IuZGVmYXVsdF9leGNsdWRl
cyArICdzY29ucy5weSBzY29uc2lnbi5weSBzY29ucy0qJywKLSAgICAgICAgcHJ1bmVfZGlycyA9
IHBydW5lX2RpcnMgKQorICAgICAgICBwcnVuZV9kaXJzID0gcHJ1bmVfZGlycykKICAgICBmb3Ig
cGF0aCBpbiB3aW5fc291cmNlczoKLSAgICAgICAgZml4ZW9sLmZpeF9zb3VyY2VfZW9sKCBwYXRo
LCBpc19kcnlfcnVuID0gRmFsc2UsIHZlcmJvc2UgPSBUcnVlLCBlb2wgPSAnXHJcbicgKQorICAg
ICAgICBmaXhlb2wuZml4X3NvdXJjZV9lb2wocGF0aCwgaXNfZHJ5X3J1biA9IEZhbHNlLCB2ZXJi
b3NlID0gVHJ1ZSwgZW9sID0gJ1xyXG4nKQogICAgIGZvciBwYXRoIGluIHVuaXhfc291cmNlczoK
LSAgICAgICAgZml4ZW9sLmZpeF9zb3VyY2VfZW9sKCBwYXRoLCBpc19kcnlfcnVuID0gRmFsc2Us
IHZlcmJvc2UgPSBUcnVlLCBlb2wgPSAnXG4nICkKKyAgICAgICAgZml4ZW9sLmZpeF9zb3VyY2Vf
ZW9sKHBhdGgsIGlzX2RyeV9ydW4gPSBGYWxzZSwgdmVyYm9zZSA9IFRydWUsIGVvbCA9ICdcbicp
CiAKLWRlZiBkb3dubG9hZCggdXJsLCB0YXJnZXRfcGF0aCApOgorZGVmIGRvd25sb2FkKHVybCwg
dGFyZ2V0X3BhdGgpOgogICAgICIiIkRvd25sb2FkIGZpbGUgcmVwcmVzZW50ZWQgYnkgdXJsIHRv
IHRhcmdldF9wYXRoLgogICAgICIiIgotICAgIGYgPSB1cmxsaWIyLnVybG9wZW4oIHVybCApCisg
ICAgZiA9IHVybGxpYjIudXJsb3Blbih1cmwpCiAgICAgdHJ5OgogICAgICAgICBkYXRhID0gZi5y
ZWFkKCkKICAgICBmaW5hbGx5OgogICAgICAgICBmLmNsb3NlKCkKLSAgICBmb3V0ID0gb3Blbigg
dGFyZ2V0X3BhdGgsICd3YicgKQorICAgIGZvdXQgPSBvcGVuKHRhcmdldF9wYXRoLCAnd2InKQog
ICAgIHRyeToKLSAgICAgICAgZm91dC53cml0ZSggZGF0YSApCisgICAgICAgIGZvdXQud3JpdGUo
ZGF0YSkKICAgICBmaW5hbGx5OgogICAgICAgICBmb3V0LmNsb3NlKCkKIAotZGVmIGNoZWNrX2Nv
bXBpbGUoIGRpc3RjaGVja190b3BfZGlyLCBwbGF0Zm9ybSApOgorZGVmIGNoZWNrX2NvbXBpbGUo
ZGlzdGNoZWNrX3RvcF9kaXIsIHBsYXRmb3JtKToKICAgICBjbWQgPSBbc3lzLmV4ZWN1dGFibGUs
ICdzY29ucy5weScsICdwbGF0Zm9ybT0lcycgJSBwbGF0Zm9ybSwgJ2NoZWNrJ10KLSAgICBwcmlu
dCAnUnVubmluZzonLCAnICcuam9pbiggY21kICkKLSAgICBsb2dfcGF0aCA9IG9zLnBhdGguam9p
biggZGlzdGNoZWNrX3RvcF9kaXIsICdidWlsZC0lcy5sb2cnICUgcGxhdGZvcm0gKQotICAgIGZs
b2cgPSBvcGVuKCBsb2dfcGF0aCwgJ3diJyApCisgICAgcHJpbnQoJ1J1bm5pbmc6JywgJyAnLmpv
aW4oY21kKSkKKyAgICBsb2dfcGF0aCA9IG9zLnBhdGguam9pbihkaXN0Y2hlY2tfdG9wX2Rpciwg
J2J1aWxkLSVzLmxvZycgJSBwbGF0Zm9ybSkKKyAgICBmbG9nID0gb3Blbihsb2dfcGF0aCwgJ3di
JykKICAgICB0cnk6Ci0gICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKCBjbWQsCisg
ICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZG91dD1mbG9nLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VULAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3dkPWRpc3RjaGVja190b3BfZGlyICkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGN3ZD1kaXN0Y2hlY2tfdG9wX2RpcikKICAgICAgICAgc3Rk
b3V0ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpWzBdCiAgICAgICAgIHN0YXR1cyA9IChwcm9jZXNz
LnJldHVybmNvZGUgPT0gMCkKICAgICBmaW5hbGx5OgogICAgICAgICBmbG9nLmNsb3NlKCkKICAg
ICByZXR1cm4gKHN0YXR1cywgbG9nX3BhdGgpCiAKLWRlZiB3cml0ZV90ZW1wZmlsZSggY29udGVu
dCwgKiprd2FyZ3MgKToKLSAgICBmZCwgcGF0aCA9IHRlbXBmaWxlLm1rc3RlbXAoICoqa3dhcmdz
ICkKLSAgICBmID0gb3MuZmRvcGVuKCBmZCwgJ3d0JyApCitkZWYgd3JpdGVfdGVtcGZpbGUoY29u
dGVudCwgKiprd2FyZ3MpOgorICAgIGZkLCBwYXRoID0gdGVtcGZpbGUubWtzdGVtcCgqKmt3YXJn
cykKKyAgICBmID0gb3MuZmRvcGVuKGZkLCAnd3QnKQogICAgIHRyeToKLSAgICAgICAgZi53cml0
ZSggY29udGVudCApCisgICAgICAgIGYud3JpdGUoY29udGVudCkKICAgICBmaW5hbGx5OgogICAg
ICAgICBmLmNsb3NlKCkKICAgICByZXR1cm4gcGF0aApAQCAtMTcxLDM0ICsxODEsMzQgQEAgZGVm
IHdyaXRlX3RlbXBmaWxlKCBjb250ZW50LCAqKmt3YXJncyApOgogY2xhc3MgU0ZUUEVycm9yKEV4
Y2VwdGlvbik6CiAgICAgcGFzcwogCi1kZWYgcnVuX3NmdHBfYmF0Y2goIHVzZXJob3N0LCBzZnRw
LCBiYXRjaCwgcmV0cnk9MCApOgotICAgIHBhdGggPSB3cml0ZV90ZW1wZmlsZSggYmF0Y2gsIHN1
ZmZpeD0nLnNmdHAnLCB0ZXh0PVRydWUgKQorZGVmIHJ1bl9zZnRwX2JhdGNoKHVzZXJob3N0LCBz
ZnRwLCBiYXRjaCwgcmV0cnk9MCk6CisgICAgcGF0aCA9IHdyaXRlX3RlbXBmaWxlKGJhdGNoLCBz
dWZmaXg9Jy5zZnRwJywgdGV4dD1UcnVlKQogICAgICMgcHNmdHAgLWFnZW50IC1DIGJsZXAsanNv
bmNwcEB3ZWIuc291cmNlZm9yZ2UubmV0IC1iYXRjaCAtYiBiYXRjaC5zZnRwIC1iYwogICAgIGNt
ZCA9IFtzZnRwLCAnLWFnZW50JywgJy1DJywgJy1iYXRjaCcsICctYicsIHBhdGgsICctYmMnLCB1
c2VyaG9zdF0KICAgICBlcnJvciA9IE5vbmUKLSAgICBmb3IgcmV0cnlfaW5kZXggaW4geHJhbmdl
KDAsIG1heCgxLHJldHJ5KSk6CisgICAgZm9yIHJldHJ5X2luZGV4IGluIHJhbmdlKDAsIG1heCgx
LHJldHJ5KSk6CiAgICAgICAgIGhlYWRpbmcgPSByZXRyeV9pbmRleCA9PSAwIGFuZCAnUnVubmlu
ZzonIG9yICdSZXRyeWluZzonCi0gICAgICAgIHByaW50IGhlYWRpbmcsICcgJy5qb2luKCBjbWQg
KQotICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbiggY21kLCBzdGRvdXQ9c3VicHJv
Y2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQgKQorICAgICAgICBwcmludChoZWFk
aW5nLCAnICcuam9pbihjbWQpKQorICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3Blbihj
bWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKICAg
ICAgICAgc3Rkb3V0ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpWzBdCiAgICAgICAgIGlmIHByb2Nl
c3MucmV0dXJuY29kZSAhPSAwOgotICAgICAgICAgICAgZXJyb3IgPSBTRlRQRXJyb3IoICdTRlRQ
IGJhdGNoIGZhaWxlZDpcbicgKyBzdGRvdXQgKQorICAgICAgICAgICAgZXJyb3IgPSBTRlRQRXJy
b3IoJ1NGVFAgYmF0Y2ggZmFpbGVkOlxuJyArIHN0ZG91dCkKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGJyZWFrCiAgICAgaWYgZXJyb3I6CiAgICAgICAgIHJhaXNlIGVycm9yCiAgICAgcmV0
dXJuIHN0ZG91dAogCi1kZWYgc291cmNlZm9yZ2Vfd2ViX3N5bmNocm8oIHNvdXJjZWZvcmdlX3By
b2plY3QsIGRvY19kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9Tm9uZSwg
c2Z0cD0nc2Z0cCcgKToKK2RlZiBzb3VyY2Vmb3JnZV93ZWJfc3luY2hybyhzb3VyY2Vmb3JnZV9w
cm9qZWN0LCBkb2NfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPU5vbmUs
IHNmdHA9J3NmdHAnKToKICAgICAiIiJOb3RlczogZG9lcyBub3Qgc3luY2hyb25pemUgc3ViLWRp
cmVjdG9yeSBvZiBkb2MtZGlyLgogICAgICIiIgogICAgIHVzZXJob3N0ID0gJyVzLCVzQHdlYi5z
b3VyY2Vmb3JnZS5uZXQnICUgKHVzZXIsIHNvdXJjZWZvcmdlX3Byb2plY3QpCi0gICAgc3Rkb3V0
ID0gcnVuX3NmdHBfYmF0Y2goIHVzZXJob3N0LCBzZnRwLCAiIiIKKyAgICBzdGRvdXQgPSBydW5f
c2Z0cF9iYXRjaCh1c2VyaG9zdCwgc2Z0cCwgIiIiCiBjZCBodGRvY3MKIGRpcgogZXhpdAotIiIi
ICkKKyIiIikKICAgICBleGlzdGluZ19wYXRocyA9IHNldCgpCiAgICAgY29sbGVjdCA9IDAKICAg
ICBmb3IgbGluZSBpbiBzdGRvdXQuc3BsaXQoJ1xuJyk6CkBAIC0yMTIsMzYgKzIyMiwzNiBAQCBl
eGl0CiAgICAgICAgIGVsaWYgY29sbGVjdCA9PSAyOgogICAgICAgICAgICAgcGF0aCA9IGxpbmUu
c3RyaXAoKS5zcGxpdCgpWy0xOl0KICAgICAgICAgICAgIGlmIHBhdGggYW5kIHBhdGhbMF0gbm90
IGluICgnLicsICcuLicpOgotICAgICAgICAgICAgICAgIGV4aXN0aW5nX3BhdGhzLmFkZCggcGF0
aFswXSApCi0gICAgdXBsb2FkX3BhdGhzID0gc2V0KCBbb3MucGF0aC5iYXNlbmFtZShwKSBmb3Ig
cCBpbiBhbnRnbG9iLmdsb2IoIGRvY19kaXIgKV0gKQorICAgICAgICAgICAgICAgIGV4aXN0aW5n
X3BhdGhzLmFkZChwYXRoWzBdKQorICAgIHVwbG9hZF9wYXRocyA9IHNldChbb3MucGF0aC5iYXNl
bmFtZShwKSBmb3IgcCBpbiBhbnRnbG9iLmdsb2IoZG9jX2RpcildKQogICAgIHBhdGhzX3RvX3Jl
bW92ZSA9IGV4aXN0aW5nX3BhdGhzIC0gdXBsb2FkX3BhdGhzCiAgICAgaWYgcGF0aHNfdG9fcmVt
b3ZlOgotICAgICAgICBwcmludCAnUmVtb3ZpbmcgdGhlIGZvbGxvd2luZyBmaWxlIGZyb20gd2Vi
OicKLSAgICAgICAgcHJpbnQgJ1xuJy5qb2luKCBwYXRoc190b19yZW1vdmUgKQotICAgICAgICBz
dGRvdXQgPSBydW5fc2Z0cF9iYXRjaCggdXNlcmhvc3QsIHNmdHAsICIiImNkIGh0ZG9jcworICAg
ICAgICBwcmludCgnUmVtb3ZpbmcgdGhlIGZvbGxvd2luZyBmaWxlIGZyb20gd2ViOicpCisgICAg
ICAgIHByaW50KCdcbicuam9pbihwYXRoc190b19yZW1vdmUpKQorICAgICAgICBzdGRvdXQgPSBy
dW5fc2Z0cF9iYXRjaCh1c2VyaG9zdCwgc2Z0cCwgIiIiY2QgaHRkb2NzCiBybSAlcwotZXhpdCIi
IiAlICcgJy5qb2luKHBhdGhzX3RvX3JlbW92ZSkgKQotICAgIHByaW50ICdVcGxvYWRpbmcgJWQg
ZmlsZXM6JyAlIGxlbih1cGxvYWRfcGF0aHMpCitleGl0IiIiICUgJyAnLmpvaW4ocGF0aHNfdG9f
cmVtb3ZlKSkKKyAgICBwcmludCgnVXBsb2FkaW5nICVkIGZpbGVzOicgJSBsZW4odXBsb2FkX3Bh
dGhzKSkKICAgICBiYXRjaF9zaXplID0gMTAKICAgICB1cGxvYWRfcGF0aHMgPSBsaXN0KHVwbG9h
ZF9wYXRocykKICAgICBzdGFydF90aW1lID0gdGltZS50aW1lKCkKLSAgICBmb3IgaW5kZXggaW4g
eHJhbmdlKDAsbGVuKHVwbG9hZF9wYXRocyksYmF0Y2hfc2l6ZSk6CisgICAgZm9yIGluZGV4IGlu
IHJhbmdlKDAsbGVuKHVwbG9hZF9wYXRocyksYmF0Y2hfc2l6ZSk6CiAgICAgICAgIHBhdGhzID0g
dXBsb2FkX3BhdGhzW2luZGV4OmluZGV4K2JhdGNoX3NpemVdCiAgICAgICAgIGZpbGVfcGVyX3Nl
YyA9ICh0aW1lLnRpbWUoKSAtIHN0YXJ0X3RpbWUpIC8gKGluZGV4KzEpCiAgICAgICAgIHJlbWFp
bmluZ19maWxlcyA9IGxlbih1cGxvYWRfcGF0aHMpIC0gaW5kZXgKICAgICAgICAgcmVtYWluaW5n
X3NlYyA9IGZpbGVfcGVyX3NlYyAqIHJlbWFpbmluZ19maWxlcwotICAgICAgICBwcmludCAnJWQv
JWQsIEVUQT0lLjFmcycgJSAoaW5kZXgrMSwgbGVuKHVwbG9hZF9wYXRocyksIHJlbWFpbmluZ19z
ZWMpCi0gICAgICAgIHJ1bl9zZnRwX2JhdGNoKCB1c2VyaG9zdCwgc2Z0cCwgIiIiY2QgaHRkb2Nz
CisgICAgICAgIHByaW50KCclZC8lZCwgRVRBPSUuMWZzJyAlIChpbmRleCsxLCBsZW4odXBsb2Fk
X3BhdGhzKSwgcmVtYWluaW5nX3NlYykpCisgICAgICAgIHJ1bl9zZnRwX2JhdGNoKHVzZXJob3N0
LCBzZnRwLCAiIiJjZCBodGRvY3MKIGxjZCAlcwogbXB1dCAlcwotZXhpdCIiIiAlIChkb2NfZGly
LCAnICcuam9pbihwYXRocykgKSwgcmV0cnk9MyApCitleGl0IiIiICUgKGRvY19kaXIsICcgJy5q
b2luKHBhdGhzKSksIHJldHJ5PTMpCiAKLWRlZiBzb3VyY2Vmb3JnZV9yZWxlYXNlX3RhcmJhbGwo
IHNvdXJjZWZvcmdlX3Byb2plY3QsIHBhdGhzLCB1c2VyPU5vbmUsIHNmdHA9J3NmdHAnICk6Citk
ZWYgc291cmNlZm9yZ2VfcmVsZWFzZV90YXJiYWxsKHNvdXJjZWZvcmdlX3Byb2plY3QsIHBhdGhz
LCB1c2VyPU5vbmUsIHNmdHA9J3NmdHAnKToKICAgICB1c2VyaG9zdCA9ICclcywlc0BmcnMuc291
cmNlZm9yZ2UubmV0JyAlICh1c2VyLCBzb3VyY2Vmb3JnZV9wcm9qZWN0KQotICAgIHJ1bl9zZnRw
X2JhdGNoKCB1c2VyaG9zdCwgc2Z0cCwgIiIiCisgICAgcnVuX3NmdHBfYmF0Y2godXNlcmhvc3Qs
IHNmdHAsICIiIgogbXB1dCAlcwogZXhpdAotIiIiICUgKCcgJy5qb2luKHBhdGhzKSwpICkKKyIi
IiAlICgnICcuam9pbihwYXRocyksKSkKIAogCiBkZWYgbWFpbigpOgpAQCAtMjU1LDcgKzI2NSw3
IEBAIFBlcmZvcm1zIGFuIHN2biBleHBvcnQgb2YgdGFnIHJlbGVhc2UgdmVyc2lvbiwgYW5kIGJ1
aWxkIGEgc291cmNlIHRhcmJhbGwuCiAKIE11c3QgYmUgc3RhcnRlZCBpbiB0aGUgcHJvamVjdCB0
b3AgZGlyZWN0b3J5LgogCi1XYXJuaW5nOiAtLWZvcmNlIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hl
biBkZXZlbG9wcGluZy90ZXN0aW5nIHRoZSByZWxlYXNlIHNjcmlwdC4KK1dhcm5pbmc6IC0tZm9y
Y2Ugc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGRldmVsb3BpbmcvdGVzdGluZyB0aGUgcmVsZWFz
ZSBzY3JpcHQuCiAiIiIKICAgICBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKICAg
ICBwYXJzZXIgPSBPcHRpb25QYXJzZXIodXNhZ2U9dXNhZ2UpCkBAIC0yODIsOTkgKzI5Miw5OSBA
QCBXYXJuaW5nOiAtLWZvcmNlIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiBkZXZlbG9wcGluZy90
ZXN0aW5nIHRoZSByZWxlYXNlIHNjcmlwdAogICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFy
c2VfYXJncygpCiAKICAgICBpZiBsZW4oYXJncykgIT0gMjoKLSAgICAgICAgcGFyc2VyLmVycm9y
KCAncmVsZWFzZV92ZXJzaW9uIG1pc3Npbmcgb24gY29tbWFuZC1saW5lLicgKQorICAgICAgICBw
YXJzZXIuZXJyb3IoJ3JlbGVhc2VfdmVyc2lvbiBtaXNzaW5nIG9uIGNvbW1hbmQtbGluZS4nKQog
ICAgIHJlbGVhc2VfdmVyc2lvbiA9IGFyZ3NbMF0KICAgICBuZXh0X3ZlcnNpb24gPSBhcmdzWzFd
CiAKICAgICBpZiBub3Qgb3B0aW9ucy5wbGF0Zm9ybXMgYW5kIG5vdCBvcHRpb25zLm5vX3Rlc3Q6
Ci0gICAgICAgIHBhcnNlci5lcnJvciggJ1lvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tcGxhdGZv
cm0gb3IgLS1uby10ZXN0IG9wdGlvbi4nICkKKyAgICAgICAgcGFyc2VyLmVycm9yKCdZb3UgbXVz
dCBzcGVjaWZ5IGVpdGhlciAtLXBsYXRmb3JtIG9yIC0tbm8tdGVzdCBvcHRpb24uJykKIAogICAg
IGlmIG9wdGlvbnMuaWdub3JlX3BlbmRpbmdfY29tbWl0OgogICAgICAgICBtc2cgPSAnJwogICAg
IGVsc2U6CiAgICAgICAgIG1zZyA9IGNoZWNrX25vX3BlbmRpbmdfY29tbWl0KCkKICAgICBpZiBu
b3QgbXNnOgotICAgICAgICBwcmludCAnU2V0dGluZyB2ZXJzaW9uIHRvJywgcmVsZWFzZV92ZXJz
aW9uCi0gICAgICAgIHNldF92ZXJzaW9uKCByZWxlYXNlX3ZlcnNpb24gKQotICAgICAgICBzdm5f
Y29tbWl0KCAnUmVsZWFzZSAnICsgcmVsZWFzZV92ZXJzaW9uICkKLSAgICAgICAgdGFnX3VybCA9
IHN2bl9qb2luX3VybCggU1ZOX1RBR19ST09ULCByZWxlYXNlX3ZlcnNpb24gKQotICAgICAgICBp
ZiBzdm5fY2hlY2tfaWZfdGFnX2V4aXN0KCB0YWdfdXJsICk6CisgICAgICAgIHByaW50KCdTZXR0
aW5nIHZlcnNpb24gdG8nLCByZWxlYXNlX3ZlcnNpb24pCisgICAgICAgIHNldF92ZXJzaW9uKHJl
bGVhc2VfdmVyc2lvbikKKyAgICAgICAgc3ZuX2NvbW1pdCgnUmVsZWFzZSAnICsgcmVsZWFzZV92
ZXJzaW9uKQorICAgICAgICB0YWdfdXJsID0gc3ZuX2pvaW5fdXJsKFNWTl9UQUdfUk9PVCwgcmVs
ZWFzZV92ZXJzaW9uKQorICAgICAgICBpZiBzdm5fY2hlY2tfaWZfdGFnX2V4aXN0KHRhZ191cmwp
OgogICAgICAgICAgICAgaWYgb3B0aW9ucy5yZXRhZ19yZWxlYXNlOgotICAgICAgICAgICAgICAg
IHN2bl9yZW1vdmVfdGFnKCB0YWdfdXJsLCAnT3ZlcndyaXRpbmcgcHJldmlvdXMgdGFnJyApCisg
ICAgICAgICAgICAgICAgc3ZuX3JlbW92ZV90YWcodGFnX3VybCwgJ092ZXJ3cml0aW5nIHByZXZp
b3VzIHRhZycpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHByaW50ICdBYm9y
dGluZywgdGFnICVzIGFscmVhZHkgZXhpc3QuIFVzZSAtLXJldGFnIHRvIG92ZXJ3cml0ZSBpdCEn
ICUgdGFnX3VybAotICAgICAgICAgICAgICAgIHN5cy5leGl0KCAxICkKLSAgICAgICAgc3ZuX3Rh
Z19zYW5kYm94KCB0YWdfdXJsLCAnUmVsZWFzZSAnICsgcmVsZWFzZV92ZXJzaW9uICkKKyAgICAg
ICAgICAgICAgICBwcmludCgnQWJvcnRpbmcsIHRhZyAlcyBhbHJlYWR5IGV4aXN0LiBVc2UgLS1y
ZXRhZyB0byBvdmVyd3JpdGUgaXQhJyAlIHRhZ191cmwpCisgICAgICAgICAgICAgICAgc3lzLmV4
aXQoMSkKKyAgICAgICAgc3ZuX3RhZ19zYW5kYm94KHRhZ191cmwsICdSZWxlYXNlICcgKyByZWxl
YXNlX3ZlcnNpb24pCiAKLSAgICAgICAgcHJpbnQgJ0dlbmVyYXRlZCBkb3h5Z2VuIGRvY3VtZW50
Li4uJworICAgICAgICBwcmludCgnR2VuZXJhdGVkIGRveHlnZW4gZG9jdW1lbnQuLi4nKQogIyMg
ICAgICAgIGRvY19kaXJuYW1lID0gcidqc29uY3BwLWFwaS1odG1sLTAuNS4wJwogIyMgICAgICAg
IGRvY190YXJiYWxsX3BhdGggPSByJ2U6XHByZ1x2Y1xMaWJcanNvbmNwcC10cnVua1xkaXN0XGpz
b25jcHAtYXBpLWh0bWwtMC41LjAudGFyLmd6JwotICAgICAgICBkb2NfdGFyYmFsbF9wYXRoLCBk
b2NfZGlybmFtZSA9IGRveHlidWlsZC5idWlsZF9kb2MoIG9wdGlvbnMsIG1ha2VfcmVsZWFzZT1U
cnVlICkKKyAgICAgICAgZG9jX3RhcmJhbGxfcGF0aCwgZG9jX2Rpcm5hbWUgPSBkb3h5YnVpbGQu
YnVpbGRfZG9jKG9wdGlvbnMsIG1ha2VfcmVsZWFzZT1UcnVlKQogICAgICAgICBkb2NfZGlzdGNo
ZWNrX2RpciA9ICdkaXN0L2RvY2NoZWNrJwotICAgICAgICB0YXJiYWxsLmRlY29tcHJlc3MoIGRv
Y190YXJiYWxsX3BhdGgsIGRvY19kaXN0Y2hlY2tfZGlyICkKLSAgICAgICAgZG9jX2Rpc3RjaGVj
a190b3BfZGlyID0gb3MucGF0aC5qb2luKCBkb2NfZGlzdGNoZWNrX2RpciwgZG9jX2Rpcm5hbWUg
KQorICAgICAgICB0YXJiYWxsLmRlY29tcHJlc3MoZG9jX3RhcmJhbGxfcGF0aCwgZG9jX2Rpc3Rj
aGVja19kaXIpCisgICAgICAgIGRvY19kaXN0Y2hlY2tfdG9wX2RpciA9IG9zLnBhdGguam9pbihk
b2NfZGlzdGNoZWNrX2RpciwgZG9jX2Rpcm5hbWUpCiAgICAgICAgIAogICAgICAgICBleHBvcnRf
ZGlyID0gJ2Rpc3QvZXhwb3J0JwotICAgICAgICBzdm5fZXhwb3J0KCB0YWdfdXJsLCBleHBvcnRf
ZGlyICkKLSAgICAgICAgZml4X3NvdXJjZXNfZW9sKCBleHBvcnRfZGlyICkKKyAgICAgICAgc3Zu
X2V4cG9ydCh0YWdfdXJsLCBleHBvcnRfZGlyKQorICAgICAgICBmaXhfc291cmNlc19lb2woZXhw
b3J0X2RpcikKICAgICAgICAgCiAgICAgICAgIHNvdXJjZV9kaXIgPSAnanNvbmNwcC1zcmMtJyAr
IHJlbGVhc2VfdmVyc2lvbgogICAgICAgICBzb3VyY2VfdGFyYmFsbF9wYXRoID0gJ2Rpc3QvJXMu
dGFyLmd6JyAlIHNvdXJjZV9kaXIKLSAgICAgICAgcHJpbnQgJ0dlbmVyYXRpbmcgc291cmNlIHRh
cmJhbGwgdG8nLCBzb3VyY2VfdGFyYmFsbF9wYXRoCi0gICAgICAgIHRhcmJhbGwubWFrZV90YXJi
YWxsKCBzb3VyY2VfdGFyYmFsbF9wYXRoLCBbZXhwb3J0X2Rpcl0sIGV4cG9ydF9kaXIsIHByZWZp
eF9kaXI9c291cmNlX2RpciApCisgICAgICAgIHByaW50KCdHZW5lcmF0aW5nIHNvdXJjZSB0YXJi
YWxsIHRvJywgc291cmNlX3RhcmJhbGxfcGF0aCkKKyAgICAgICAgdGFyYmFsbC5tYWtlX3RhcmJh
bGwoc291cmNlX3RhcmJhbGxfcGF0aCwgW2V4cG9ydF9kaXJdLCBleHBvcnRfZGlyLCBwcmVmaXhf
ZGlyPXNvdXJjZV9kaXIpCiAKICAgICAgICAgYW1hbGdhbWF0aW9uX3RhcmJhbGxfcGF0aCA9ICdk
aXN0LyVzLWFtYWxnYW1hdGlvbi50YXIuZ3onICUgc291cmNlX2RpcgotICAgICAgICBwcmludCAn
R2VuZXJhdGluZyBhbWFsZ2FtYXRpb24gc291cmNlIHRhcmJhbGwgdG8nLCBhbWFsZ2FtYXRpb25f
dGFyYmFsbF9wYXRoCisgICAgICAgIHByaW50KCdHZW5lcmF0aW5nIGFtYWxnYW1hdGlvbiBzb3Vy
Y2UgdGFyYmFsbCB0bycsIGFtYWxnYW1hdGlvbl90YXJiYWxsX3BhdGgpCiAgICAgICAgIGFtYWxn
YW1hdGlvbl9kaXIgPSAnZGlzdC9hbWFsZ2FtYXRpb24nCi0gICAgICAgIGFtYWxnYW1hdGUuYW1h
bGdhbWF0ZV9zb3VyY2UoIGV4cG9ydF9kaXIsICclcy9qc29uY3BwLmNwcCcgJSBhbWFsZ2FtYXRp
b25fZGlyLCAnanNvbi9qc29uLmgnICkKKyAgICAgICAgYW1hbGdhbWF0ZS5hbWFsZ2FtYXRlX3Nv
dXJjZShleHBvcnRfZGlyLCAnJXMvanNvbmNwcC5jcHAnICUgYW1hbGdhbWF0aW9uX2RpciwgJ2pz
b24vanNvbi5oJykKICAgICAgICAgYW1hbGdhbWF0aW9uX3NvdXJjZV9kaXIgPSAnanNvbmNwcC1z
cmMtYW1hbGdhbWF0aW9uJyArIHJlbGVhc2VfdmVyc2lvbgotICAgICAgICB0YXJiYWxsLm1ha2Vf
dGFyYmFsbCggYW1hbGdhbWF0aW9uX3RhcmJhbGxfcGF0aCwgW2FtYWxnYW1hdGlvbl9kaXJdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1hbGdhbWF0aW9uX2RpciwgcHJlZml4X2Rp
cj1hbWFsZ2FtYXRpb25fc291cmNlX2RpciApCisgICAgICAgIHRhcmJhbGwubWFrZV90YXJiYWxs
KGFtYWxnYW1hdGlvbl90YXJiYWxsX3BhdGgsIFthbWFsZ2FtYXRpb25fZGlyXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFtYWxnYW1hdGlvbl9kaXIsIHByZWZpeF9kaXI9YW1hbGdh
bWF0aW9uX3NvdXJjZV9kaXIpCiAKICAgICAgICAgIyBEZWNvbXByZXNzIHNvdXJjZSB0YXJiYWxs
LCBkb3dubG9hZCBhbmQgaW5zdGFsbCBzY29ucy1sb2NhbAogICAgICAgICBkaXN0Y2hlY2tfZGly
ID0gJ2Rpc3QvZGlzdGNoZWNrJwogICAgICAgICBkaXN0Y2hlY2tfdG9wX2RpciA9IGRpc3RjaGVj
a19kaXIgKyAnLycgKyBzb3VyY2VfZGlyCi0gICAgICAgIHByaW50ICdEZWNvbXByZXNzaW5nIHNv
dXJjZSB0YXJiYWxsIHRvJywgZGlzdGNoZWNrX2RpcgotICAgICAgICBybWRpcl9pZl9leGlzdCgg
ZGlzdGNoZWNrX2RpciApCi0gICAgICAgIHRhcmJhbGwuZGVjb21wcmVzcyggc291cmNlX3RhcmJh
bGxfcGF0aCwgZGlzdGNoZWNrX2RpciApCisgICAgICAgIHByaW50KCdEZWNvbXByZXNzaW5nIHNv
dXJjZSB0YXJiYWxsIHRvJywgZGlzdGNoZWNrX2RpcikKKyAgICAgICAgcm1kaXJfaWZfZXhpc3Qo
ZGlzdGNoZWNrX2RpcikKKyAgICAgICAgdGFyYmFsbC5kZWNvbXByZXNzKHNvdXJjZV90YXJiYWxs
X3BhdGgsIGRpc3RjaGVja19kaXIpCiAgICAgICAgIHNjb25zX2xvY2FsX3BhdGggPSAnZGlzdC9z
Y29ucy1sb2NhbC50YXIuZ3onCi0gICAgICAgIHByaW50ICdEb3dubG9hZGluZyBzY29ucy1sb2Nh
bCB0bycsIHNjb25zX2xvY2FsX3BhdGgKLSAgICAgICAgZG93bmxvYWQoIFNDT05TX0xPQ0FMX1VS
TCwgc2NvbnNfbG9jYWxfcGF0aCApCi0gICAgICAgIHByaW50ICdEZWNvbXByZXNzaW5nIHNjb25z
LWxvY2FsIHRvJywgZGlzdGNoZWNrX3RvcF9kaXIKLSAgICAgICAgdGFyYmFsbC5kZWNvbXByZXNz
KCBzY29uc19sb2NhbF9wYXRoLCBkaXN0Y2hlY2tfdG9wX2RpciApCisgICAgICAgIHByaW50KCdE
b3dubG9hZGluZyBzY29ucy1sb2NhbCB0bycsIHNjb25zX2xvY2FsX3BhdGgpCisgICAgICAgIGRv
d25sb2FkKFNDT05TX0xPQ0FMX1VSTCwgc2NvbnNfbG9jYWxfcGF0aCkKKyAgICAgICAgcHJpbnQo
J0RlY29tcHJlc3Npbmcgc2NvbnMtbG9jYWwgdG8nLCBkaXN0Y2hlY2tfdG9wX2RpcikKKyAgICAg
ICAgdGFyYmFsbC5kZWNvbXByZXNzKHNjb25zX2xvY2FsX3BhdGgsIGRpc3RjaGVja190b3BfZGly
KQogCiAgICAgICAgICMgUnVuIGNvbXBpbGF0aW9uCi0gICAgICAgIHByaW50ICdDb21waWxpbmcg
ZGVjb21wcmVzc2VkIHRhcmJhbGwnCisgICAgICAgIHByaW50KCdDb21waWxpbmcgZGVjb21wcmVz
c2VkIHRhcmJhbGwnKQogICAgICAgICBhbGxfYnVpbGRfc3RhdHVzID0gVHJ1ZQogICAgICAgICBm
b3IgcGxhdGZvcm0gaW4gb3B0aW9ucy5wbGF0Zm9ybXMuc3BsaXQoJywnKToKLSAgICAgICAgICAg
IHByaW50ICdUZXN0aW5nIHBsYXRmb3JtOicsIHBsYXRmb3JtCi0gICAgICAgICAgICBidWlsZF9z
dGF0dXMsIGxvZ19wYXRoID0gY2hlY2tfY29tcGlsZSggZGlzdGNoZWNrX3RvcF9kaXIsIHBsYXRm
b3JtICkKLSAgICAgICAgICAgIHByaW50ICdzZWUgYnVpbGQgbG9nOicsIGxvZ19wYXRoCi0gICAg
ICAgICAgICBwcmludCBidWlsZF9zdGF0dXMgYW5kICc9PiBvaycgb3IgJz0+IEZBSUxFRCcKKyAg
ICAgICAgICAgIHByaW50KCdUZXN0aW5nIHBsYXRmb3JtOicsIHBsYXRmb3JtKQorICAgICAgICAg
ICAgYnVpbGRfc3RhdHVzLCBsb2dfcGF0aCA9IGNoZWNrX2NvbXBpbGUoZGlzdGNoZWNrX3RvcF9k
aXIsIHBsYXRmb3JtKQorICAgICAgICAgICAgcHJpbnQoJ3NlZSBidWlsZCBsb2c6JywgbG9nX3Bh
dGgpCisgICAgICAgICAgICBwcmludChidWlsZF9zdGF0dXMgYW5kICc9PiBvaycgb3IgJz0+IEZB
SUxFRCcpCiAgICAgICAgICAgICBhbGxfYnVpbGRfc3RhdHVzID0gYWxsX2J1aWxkX3N0YXR1cyBh
bmQgYnVpbGRfc3RhdHVzCiAgICAgICAgIGlmIG5vdCBidWlsZF9zdGF0dXM6Ci0gICAgICAgICAg
ICBwcmludCAnVGVzdGluZyBmYWlsZWQgb24gYXQgbGVhc3Qgb25lIHBsYXRmb3JtLCBhYm9ydGlu
Zy4uLicKLSAgICAgICAgICAgIHN2bl9yZW1vdmVfdGFnKCB0YWdfdXJsLCAnUmVtb3ZpbmcgdGFn
IGR1ZSB0byBmYWlsZWQgdGVzdGluZycgKQorICAgICAgICAgICAgcHJpbnQoJ1Rlc3RpbmcgZmFp
bGVkIG9uIGF0IGxlYXN0IG9uZSBwbGF0Zm9ybSwgYWJvcnRpbmcuLi4nKQorICAgICAgICAgICAg
c3ZuX3JlbW92ZV90YWcodGFnX3VybCwgJ1JlbW92aW5nIHRhZyBkdWUgdG8gZmFpbGVkIHRlc3Rp
bmcnKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKICAgICAgICAgaWYgb3B0aW9ucy51c2VyOgog
ICAgICAgICAgICAgaWYgbm90IG9wdGlvbnMubm9fd2ViOgotICAgICAgICAgICAgICAgIHByaW50
ICdVcGxvYWRpbmcgZG9jdW1lbnRhdGlvbiB1c2luZyB1c2VyJywgb3B0aW9ucy51c2VyCi0gICAg
ICAgICAgICAgICAgc291cmNlZm9yZ2Vfd2ViX3N5bmNocm8oIFNPVVJDRUZPUkdFX1BST0pFQ1Qs
IGRvY19kaXN0Y2hlY2tfdG9wX2RpciwgdXNlcj1vcHRpb25zLnVzZXIsIHNmdHA9b3B0aW9ucy5z
ZnRwICkKLSAgICAgICAgICAgICAgICBwcmludCAnQ29tcGxldGVkIGRvY3VtZW50YXRpb24gdXBs
b2FkJwotICAgICAgICAgICAgcHJpbnQgJ1VwbG9hZGluZyBzb3VyY2UgYW5kIGRvY3VtZW50YXRp
b24gdGFyYmFsbHMgZm9yIHJlbGVhc2UgdXNpbmcgdXNlcicsIG9wdGlvbnMudXNlcgotICAgICAg
ICAgICAgc291cmNlZm9yZ2VfcmVsZWFzZV90YXJiYWxsKCBTT1VSQ0VGT1JHRV9QUk9KRUNULAor
ICAgICAgICAgICAgICAgIHByaW50KCdVcGxvYWRpbmcgZG9jdW1lbnRhdGlvbiB1c2luZyB1c2Vy
Jywgb3B0aW9ucy51c2VyKQorICAgICAgICAgICAgICAgIHNvdXJjZWZvcmdlX3dlYl9zeW5jaHJv
KFNPVVJDRUZPUkdFX1BST0pFQ1QsIGRvY19kaXN0Y2hlY2tfdG9wX2RpciwgdXNlcj1vcHRpb25z
LnVzZXIsIHNmdHA9b3B0aW9ucy5zZnRwKQorICAgICAgICAgICAgICAgIHByaW50KCdDb21wbGV0
ZWQgZG9jdW1lbnRhdGlvbiB1cGxvYWQnKQorICAgICAgICAgICAgcHJpbnQoJ1VwbG9hZGluZyBz
b3VyY2UgYW5kIGRvY3VtZW50YXRpb24gdGFyYmFsbHMgZm9yIHJlbGVhc2UgdXNpbmcgdXNlcics
IG9wdGlvbnMudXNlcikKKyAgICAgICAgICAgIHNvdXJjZWZvcmdlX3JlbGVhc2VfdGFyYmFsbChT
T1VSQ0VGT1JHRV9QUk9KRUNULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbc291cmNlX3RhcmJhbGxfcGF0aCwgZG9jX3RhcmJhbGxfcGF0aF0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9b3B0aW9ucy51c2VyLCBzZnRwPW9w
dGlvbnMuc2Z0cCApCi0gICAgICAgICAgICBwcmludCAnU291cmNlIGFuZCBkb2MgcmVsZWFzZSB0
YXJiYWxscyB1cGxvYWRlZCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdXNlcj1vcHRpb25zLnVzZXIsIHNmdHA9b3B0aW9ucy5zZnRwKQorICAgICAgICAgICAgcHJp
bnQoJ1NvdXJjZSBhbmQgZG9jIHJlbGVhc2UgdGFyYmFsbHMgdXBsb2FkZWQnKQogICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcHJpbnQgJ05vIHVwbG9hZCB1c2VyIHNwZWNpZmllZC4gV2ViIHNp
dGUgYW5kIGRvd25sb2FkIHRhcmJhbCB3ZXJlIG5vdCB1cGxvYWRlZC4nCi0gICAgICAgICAgICBw
cmludCAnVGFyYmFsbCBjYW4gYmUgZm91bmQgYXQ6JywgZG9jX3RhcmJhbGxfcGF0aAorICAgICAg
ICAgICAgcHJpbnQoJ05vIHVwbG9hZCB1c2VyIHNwZWNpZmllZC4gV2ViIHNpdGUgYW5kIGRvd25s
b2FkIHRhcmJhbGwgd2VyZSBub3QgdXBsb2FkZWQuJykKKyAgICAgICAgICAgIHByaW50KCdUYXJi
YWxsIGNhbiBiZSBmb3VuZCBhdDonLCBkb2NfdGFyYmFsbF9wYXRoKQogCiAgICAgICAgICMgU2V0
IG5leHQgdmVyc2lvbiBudW1iZXIgYW5kIGNvbW1pdCAgICAgICAgICAgIAotICAgICAgICBzZXRf
dmVyc2lvbiggbmV4dF92ZXJzaW9uICkKLSAgICAgICAgc3ZuX2NvbW1pdCggJ1JlbGVhc2VkICcg
KyByZWxlYXNlX3ZlcnNpb24gKQorICAgICAgICBzZXRfdmVyc2lvbihuZXh0X3ZlcnNpb24pCisg
ICAgICAgIHN2bl9jb21taXQoJ1JlbGVhc2VkICcgKyByZWxlYXNlX3ZlcnNpb24pCiAgICAgZWxz
ZToKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSggbXNnICsgJ1xuJyApCisgICAgICAgIHN5cy5z
dGRlcnIud3JpdGUobXNnICsgJ1xuJykKICAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAg
ICAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL21lc29uLmJ1aWxkIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tZXNvbi5idWls
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZGU5NDdjNGNkZjgwZWE4ZWY3NzEyNWUzZmUyZTI3OTYwM2Q4ZTRjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9tZXNvbi5idWlsZApAQCAtMCwwICsxLDExNiBAQAorcHJv
amVjdCgKKyAgJ2pzb25jcHAnLAorICAnY3BwJywKKyAgdmVyc2lvbiA6ICcxLjkuMCcsCisgIGRl
ZmF1bHRfb3B0aW9ucyA6IFsKKyAgICAnYnVpbGR0eXBlPXJlbGVhc2UnLAorICAgICdjcHBfc3Rk
PWMrKzExJywKKyAgICAnd2FybmluZ19sZXZlbD0xJ10sCisgIGxpY2Vuc2UgOiAnUHVibGljIERv
bWFpbicsCisgIG1lc29uX3ZlcnNpb24gOiAnPj0gMC41MC4wJykKKworanNvbmNwcF92ZXJfYXJy
ID0gbWVzb24ucHJvamVjdF92ZXJzaW9uKCkuc3BsaXQoJy4nKQoranNvbmNwcF9tYWpvcl92ZXJz
aW9uID0ganNvbmNwcF92ZXJfYXJyWzBdCitqc29uY3BwX21pbm9yX3ZlcnNpb24gPSBqc29uY3Bw
X3Zlcl9hcnJbMV0KK2pzb25jcHBfcGF0Y2hfdmVyc2lvbiA9IGpzb25jcHBfdmVyX2FyclsyXQor
Citqc29uY3BwX2NkYXRhID0gY29uZmlndXJhdGlvbl9kYXRhKCkKK2pzb25jcHBfY2RhdGEuc2V0
KCdKU09OQ1BQX1ZFUlNJT04nLCBtZXNvbi5wcm9qZWN0X3ZlcnNpb24oKSkKK2pzb25jcHBfY2Rh
dGEuc2V0KCdKU09OQ1BQX1ZFUlNJT05fTUFKT1InLCBqc29uY3BwX21ham9yX3ZlcnNpb24pCitq
c29uY3BwX2NkYXRhLnNldCgnSlNPTkNQUF9WRVJTSU9OX01JTk9SJywganNvbmNwcF9taW5vcl92
ZXJzaW9uKQoranNvbmNwcF9jZGF0YS5zZXQoJ0pTT05DUFBfVkVSU0lPTl9QQVRDSCcsIGpzb25j
cHBfcGF0Y2hfdmVyc2lvbikKK2pzb25jcHBfY2RhdGEuc2V0KCdKU09OQ1BQX1VTRV9TRUNVUkVf
TUVNT1JZJywwKQorCitqc29uY3BwX2dlbl9zb3VyY2VzID0gY29uZmlndXJlX2ZpbGUoCisgIGlu
cHV0IDogJ3NyYy9saWJfanNvbi92ZXJzaW9uLmguaW4nLAorICBvdXRwdXQgOiAndmVyc2lvbi5o
JywKKyAgY29uZmlndXJhdGlvbiA6IGpzb25jcHBfY2RhdGEsCisgIGluc3RhbGwgOiB0cnVlLAor
ICBpbnN0YWxsX2RpciA6IGpvaW5fcGF0aHMoZ2V0X29wdGlvbigncHJlZml4JyksIGdldF9vcHRp
b24oJ2luY2x1ZGVkaXInKSwgJ2pzb24nKQorKQorCitqc29uY3BwX2hlYWRlcnMgPSBbCisgICdp
bmNsdWRlL2pzb24vYWxsb2NhdG9yLmgnLAorICAnaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMuaCcs
CisgICdpbmNsdWRlL2pzb24vYXV0b2xpbmsuaCcsCisgICdpbmNsdWRlL2pzb24vY29uZmlnLmgn
LAorICAnaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgnLAorICAnaW5jbHVkZS9qc29uL2ZvcndhcmRz
LmgnLAorICAnaW5jbHVkZS9qc29uL2pzb24uaCcsCisgICdpbmNsdWRlL2pzb24vcmVhZGVyLmgn
LAorICAnaW5jbHVkZS9qc29uL3ZhbHVlLmgnLAorICAnaW5jbHVkZS9qc29uL3dyaXRlci5oJ10K
K2pzb25jcHBfaW5jbHVkZV9kaXJlY3RvcmllcyA9IGluY2x1ZGVfZGlyZWN0b3JpZXMoJ2luY2x1
ZGUnKQorCitpbnN0YWxsX2hlYWRlcnMoCisgIGpzb25jcHBfaGVhZGVycywKKyAgc3ViZGlyIDog
J2pzb24nKQorCitpZiBnZXRfb3B0aW9uKCdkZWZhdWx0X2xpYnJhcnknKSA9PSAnc2hhcmVkJyBh
bmQgbWVzb24uZ2V0X2NvbXBpbGVyKCdjcHAnKS5nZXRfaWQoKSA9PSAnbXN2YycKKyAgZGxsX2V4
cG9ydF9mbGFnID0gJy1ESlNPTl9ETExfQlVJTEQnCisgIGRsbF9pbXBvcnRfZmxhZyA9ICctREpT
T05fRExMJworZWxzZQorICBkbGxfZXhwb3J0X2ZsYWcgPSBbXQorICBkbGxfaW1wb3J0X2ZsYWcg
PSBbXQorZW5kaWYKKworanNvbmNwcF9saWIgPSBsaWJyYXJ5KAorICAnanNvbmNwcCcsCisgIFsg
anNvbmNwcF9nZW5fc291cmNlcywKKyAgICBqc29uY3BwX2hlYWRlcnMsCisgICAgJ3NyYy9saWJf
anNvbi9qc29uX3Rvb2wuaCcsCisgICAgJ3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAnLAor
ICAgICdzcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAnLAorICAgICdzcmMvbGliX2pzb24vanNv
bl93cml0ZXIuY3BwJ10sCisgIHNvdmVyc2lvbiA6IDIxLAorICBpbnN0YWxsIDogdHJ1ZSwKKyAg
aW5jbHVkZV9kaXJlY3RvcmllcyA6IGpzb25jcHBfaW5jbHVkZV9kaXJlY3RvcmllcywKKyAgY3Bw
X2FyZ3M6IGRsbF9leHBvcnRfZmxhZykKKworaW1wb3J0KCdwa2djb25maWcnKS5nZW5lcmF0ZSgK
KyAgbGlicmFyaWVzIDoganNvbmNwcF9saWIsCisgIHZlcnNpb24gOiBtZXNvbi5wcm9qZWN0X3Zl
cnNpb24oKSwKKyAgbmFtZSA6ICdqc29uY3BwJywKKyAgZmlsZWJhc2UgOiAnanNvbmNwcCcsCisg
IGRlc2NyaXB0aW9uIDogJ0EgQysrIGxpYnJhcnkgZm9yIGludGVyYWN0aW5nIHdpdGggSlNPTicp
CisKKyMgZm9yIGxpYnJhcmllcyBidW5kbGluZyBqc29uY3BwCitqc29uY3BwX2RlcCA9IGRlY2xh
cmVfZGVwZW5kZW5jeSgKKyAgaW5jbHVkZV9kaXJlY3RvcmllcyA6IGpzb25jcHBfaW5jbHVkZV9k
aXJlY3RvcmllcywKKyAgbGlua193aXRoIDoganNvbmNwcF9saWIsCisgIHZlcnNpb24gOiBtZXNv
bi5wcm9qZWN0X3ZlcnNpb24oKSwKKyAgc291cmNlcyA6IGpzb25jcHBfZ2VuX3NvdXJjZXMpCisK
KyMgdGVzdHMKK3B5dGhvbiA9IGltcG9ydCgncHl0aG9uMycpLmZpbmRfcHl0aG9uKCkKKworanNv
bmNwcF90ZXN0ID0gZXhlY3V0YWJsZSgKKyAgJ2pzb25jcHBfdGVzdCcsCisgIFsgJ3NyYy90ZXN0
X2xpYl9qc29uL2pzb250ZXN0LmNwcCcsCisgICAgJ3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0
LmgnLAorICAgICdzcmMvdGVzdF9saWJfanNvbi9tYWluLmNwcCcsCisgICAgJ3NyYy90ZXN0X2xp
Yl9qc29uL2Z1enouY3BwJ10sCisgIGluY2x1ZGVfZGlyZWN0b3JpZXMgOiBqc29uY3BwX2luY2x1
ZGVfZGlyZWN0b3JpZXMsCisgIGxpbmtfd2l0aCA6IGpzb25jcHBfbGliLAorICBpbnN0YWxsIDog
ZmFsc2UsCisgIGNwcF9hcmdzOiBkbGxfaW1wb3J0X2ZsYWcpCit0ZXN0KAorICAndW5pdHRlc3Rf
anNvbmNwcF90ZXN0JywKKyAganNvbmNwcF90ZXN0KQorCitqc29udGVzdHJ1bm5lciA9IGV4ZWN1
dGFibGUoCisgICdqc29udGVzdHJ1bm5lcicsCisgICdzcmMvanNvbnRlc3RydW5uZXIvbWFpbi5j
cHAnLAorICBpbmNsdWRlX2RpcmVjdG9yaWVzIDoganNvbmNwcF9pbmNsdWRlX2RpcmVjdG9yaWVz
LAorICBsaW5rX3dpdGggOiBqc29uY3BwX2xpYiwKKyAgaW5zdGFsbCA6IGZhbHNlLAorICBjcHBf
YXJnczogZGxsX2ltcG9ydF9mbGFnKQordGVzdCgKKyAgJ3VuaXR0ZXN0X2pzb250ZXN0cnVubmVy
JywKKyAgcHl0aG9uLAorICBhcmdzIDogWworICAgICctQicsCisgICAgam9pbl9wYXRocyhtZXNv
bi5jdXJyZW50X3NvdXJjZV9kaXIoKSwgJ3Rlc3QvcnVuanNvbnRlc3RzLnB5JyksCisgICAganNv
bnRlc3RydW5uZXIsCisgICAgam9pbl9wYXRocyhtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwg
J3Rlc3QvZGF0YScpXQorICApCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3BrZy1jb25maWcvanNvbmNwcC5w
Yy5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvcGtnLWNvbmZpZy9qc29uY3BwLnBjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlYTUxZjUx
MjVhMmQ3NWRmYzU2Y2EyZDQ2NjEyNzU0ZmIyNGFjZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3BrZy1jb25maWcvanNvbmNwcC5wYy5pbgpAQCAtMCwwICsxLDkgQEAKK2xpYmRpcj1AQ01BS0Vf
SU5TVEFMTF9GVUxMX0xJQkRJUkAKK2luY2x1ZGVkaXI9QENNQUtFX0lOU1RBTExfRlVMTF9JTkNM
VURFRElSQAorCitOYW1lOiBqc29uY3BwCitEZXNjcmlwdGlvbjogQSBDKysgbGlicmFyeSBmb3Ig
aW50ZXJhY3Rpbmcgd2l0aCBKU09OCitWZXJzaW9uOiBASlNPTkNQUF9WRVJTSU9OQAorVVJMOiBo
dHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwCitMaWJzOiAtTCR7
bGliZGlyfSAtbGpzb25jcHAKK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3Njb25zLXRvb2xzL2dsb2J0b29sLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zY29ucy10b29scy9nbG9idG9vbC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODExMTQwZThhYWI2MjBlNDRkOWFlZWE4
YzUwOWE1NjczMGY4MDk2NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Njb25zLXRvb2xzL2dsb2J0b29sLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NTMgKzAsMCBAQAotaW1wb3J0IGZubWF0Y2gKLWltcG9ydCBvcwotCi1kZWYgZ2VuZXJhdGUoIGVu
diApOiAKLSAgIGRlZiBHbG9iKCBlbnYsIGluY2x1ZGVzID0gTm9uZSwgZXhjbHVkZXMgPSBOb25l
LCBkaXIgPSAnLicgKToKLSAgICAgICIiIkFkZHMgR2xvYiggaW5jbHVkZXMgPSBTcGxpdCggJyon
ICksIGV4Y2x1ZGVzID0gTm9uZSwgZGlyID0gJy4nKQotICAgICAgIGhlbHBlciBmdW5jdGlvbiB0
byBlbnZpcm9ubWVudC4KLQotICAgICAgIEdsb2IgYm90aCB0aGUgZmlsZS1zeXN0ZW0gZmlsZXMu
Ci0KLSAgICAgICBpbmNsdWRlczogbGlzdCBvZiBmaWxlIG5hbWUgcGF0dGVybiBpbmNsdWRlZCBp
biB0aGUgcmV0dXJuIGxpc3Qgd2hlbiBtYXRjaGVkLgotICAgICAgIGV4Y2x1ZGVzOiBsaXN0IG9m
IGZpbGUgbmFtZSBwYXR0ZXJuIGV4bHVjZWQgZnJvbSB0aGUgcmV0dXJuIGxpc3QuCi0KLSAgICAg
ICBFeGFtcGxlOgotICAgICAgIHNvdXJjZXMgPSBlbnYuR2xvYiggKCIqLmNwcCIsICcqLmgnKSwg
In4qLmNwcCIsICIjc3JjIiApCi0gICAgICAiIiIKLSAgICAgIGRlZiBmaWx0ZXJGaWxlbmFtZShw
YXRoKToKLSAgICAgICAgIGFic19wYXRoID0gb3MucGF0aC5qb2luKCBkaXIsIHBhdGggKQotICAg
ICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGFic19wYXRoKToKLSAgICAgICAgICAgIHJldHVy
biAwCi0gICAgICAgICBmbiA9IG9zLnBhdGguYmFzZW5hbWUocGF0aCkKLSAgICAgICAgIG1hdGNo
ID0gMAotICAgICAgICAgZm9yIGluY2x1ZGUgaW4gaW5jbHVkZXM6Ci0gICAgICAgICAgICBpZiBm
bm1hdGNoLmZubWF0Y2hjYXNlKCBmbiwgaW5jbHVkZSApOgotICAgICAgICAgICAgICAgbWF0Y2gg
PSAxCi0gICAgICAgICAgICAgICBicmVhawotICAgICAgICAgaWYgbWF0Y2ggPT0gMSBhbmQgbm90
IGV4Y2x1ZGVzIGlzIE5vbmU6Ci0gICAgICAgICAgICBmb3IgZXhjbHVkZSBpbiBleGNsdWRlczoK
LSAgICAgICAgICAgICAgIGlmIGZubWF0Y2guZm5tYXRjaGNhc2UoIGZuLCBleGNsdWRlICk6Ci0g
ICAgICAgICAgICAgICAgICBtYXRjaCA9IDAKLSAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAg
ICAgICByZXR1cm4gbWF0Y2gKLSAgICAgIGlmIGluY2x1ZGVzIGlzIE5vbmU6Ci0gICAgICAgICBp
bmNsdWRlcyA9ICgnKicsKQotICAgICAgZWxpZiB0eXBlKGluY2x1ZGVzKSBpbiAoIHR5cGUoJycp
LCB0eXBlKHUnJykgKToKLSAgICAgICAgIGluY2x1ZGVzID0gKGluY2x1ZGVzLCkKLSAgICAgIGlm
IHR5cGUoZXhjbHVkZXMpIGluICggdHlwZSgnJyksIHR5cGUodScnKSApOgotICAgICAgICAgZXhj
bHVkZXMgPSAoZXhjbHVkZXMsKQotICAgICAgZGlyID0gZW52LkRpcihkaXIpLmFic3BhdGgKLSAg
ICAgIHBhdGhzID0gb3MubGlzdGRpciggZGlyICkKLSAgICAgIGRlZiBtYWtlQWJzRmlsZU5vZGUo
IHBhdGggKToKLSAgICAgICAgIHJldHVybiBlbnYuRmlsZSggb3MucGF0aC5qb2luKCBkaXIsIHBh
dGggKSApCi0gICAgICBub2RlcyA9IGZpbHRlciggZmlsdGVyRmlsZW5hbWUsIHBhdGhzICkKLSAg
ICAgIHJldHVybiBtYXAoIG1ha2VBYnNGaWxlTm9kZSwgbm9kZXMgKQotCi0gICBmcm9tIFNDb25z
LlNjcmlwdCBpbXBvcnQgRW52aXJvbm1lbnQKLSAgIEVudmlyb25tZW50Lkdsb2IgPSBHbG9iCi0K
LWRlZiBleGlzdHMoZW52KToKLSAgICAiIiIKLSAgICBUb29sIGFsd2F5cyBleGlzdHMuCi0gICAg
IiIiCi0gICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvc3JjZGlz
dC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvc3JjZGlzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODY0ZmY0MDgxNTgwZWQxNWEwNTY0ZjRiY2YwZTFiMzdlZGRlMzdkYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xz
L3NyY2Rpc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotaW1wb3J0IG9zCi1p
bXBvcnQgb3MucGF0aAotZnJvbSBmbm1hdGNoIGltcG9ydCBmbm1hdGNoCi1pbXBvcnQgdGFyZ3oK
LQotIyNkZWYgRG94eWZpbGVQYXJzZShmaWxlX2NvbnRlbnRzKToKLSMjICAgIiIiCi0jIyAgIFBh
cnNlIGEgRG94eWdlbiBzb3VyY2UgZmlsZSBhbmQgcmV0dXJuIGEgZGljdGlvbmFyeSBvZiBhbGwg
dGhlIHZhbHVlcy4KLSMjICAgVmFsdWVzIHdpbGwgYmUgc3RyaW5ncyBhbmQgbGlzdHMgb2Ygc3Ry
aW5ncy4KLSMjICAgIiIiCi0jIyAgIGRhdGEgPSB7fQotIyMKLSMjICAgaW1wb3J0IHNobGV4Ci0j
IyAgIGxleCA9IHNobGV4LnNobGV4KGluc3RyZWFtID0gZmlsZV9jb250ZW50cywgcG9zaXggPSBU
cnVlKQotIyMgICBsZXgud29yZGNoYXJzICs9ICIqKy4vLToiCi0jIyAgIGxleC53aGl0ZXNwYWNl
ID0gbGV4LndoaXRlc3BhY2UucmVwbGFjZSgiXG4iLCAiIikKLSMjICAgbGV4LmVzY2FwZSA9ICIi
Ci0jIwotIyMgICBsaW5lbm8gPSBsZXgubGluZW5vCi0jIyAgIGxhc3RfYmFja3NsYXNoX2xpbmVu
byA9IGxpbmVubwotIyMgICB0b2tlbiA9IGxleC5nZXRfdG9rZW4oKQotIyMgICBrZXkgPSB0b2tl
biAgICMgdGhlIGZpcnN0IHRva2VuIHNob3VsZCBiZSBhIGtleQotIyMgICBsYXN0X3Rva2VuID0g
IiIKLSMjICAga2V5X3Rva2VuID0gRmFsc2UKLSMjICAgbmV4dF9rZXkgPSBGYWxzZQotIyMgICBu
ZXdfZGF0YSA9IFRydWUKLSMjCi0jIyAgIGRlZiBhcHBlbmRfZGF0YShkYXRhLCBrZXksIG5ld19k
YXRhLCB0b2tlbik6Ci0jIyAgICAgIGlmIG5ld19kYXRhIG9yIGxlbihkYXRhW2tleV0pID09IDA6
Ci0jIyAgICAgICAgIGRhdGFba2V5XS5hcHBlbmQodG9rZW4pCi0jIyAgICAgIGVsc2U6Ci0jIyAg
ICAgICAgIGRhdGFba2V5XVstMV0gKz0gdG9rZW4KLSMjCi0jIyAgIHdoaWxlIHRva2VuOgotIyMg
ICAgICBpZiB0b2tlbiBpbiBbJ1xuJ106Ci0jIyAgICAgICAgIGlmIGxhc3RfdG9rZW4gbm90IGlu
IFsnXFwnXToKLSMjICAgICAgICAgICAga2V5X3Rva2VuID0gVHJ1ZQotIyMgICAgICBlbGlmIHRv
a2VuIGluIFsnXFwnXToKLSMjICAgICAgICAgcGFzcwotIyMgICAgICBlbGlmIGtleV90b2tlbjoK
LSMjICAgICAgICAga2V5ID0gdG9rZW4KLSMjICAgICAgICAga2V5X3Rva2VuID0gRmFsc2UKLSMj
ICAgICAgZWxzZToKLSMjICAgICAgICAgaWYgdG9rZW4gPT0gIis9IjoKLSMjICAgICAgICAgICAg
aWYgbm90IGRhdGEuaGFzX2tleShrZXkpOgotIyMgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBs
aXN0KCkKLSMjICAgICAgICAgZWxpZiB0b2tlbiA9PSAiPSI6Ci0jIyAgICAgICAgICAgIGRhdGFb
a2V5XSA9IGxpc3QoKQotIyMgICAgICAgICBlbHNlOgotIyMgICAgICAgICAgICBhcHBlbmRfZGF0
YSggZGF0YSwga2V5LCBuZXdfZGF0YSwgdG9rZW4gKQotIyMgICAgICAgICAgICBuZXdfZGF0YSA9
IFRydWUKLSMjCi0jIyAgICAgIGxhc3RfdG9rZW4gPSB0b2tlbgotIyMgICAgICB0b2tlbiA9IGxl
eC5nZXRfdG9rZW4oKQotIyMgICAgICAKLSMjICAgICAgaWYgbGFzdF90b2tlbiA9PSAnXFwnIGFu
ZCB0b2tlbiAhPSAnXG4nOgotIyMgICAgICAgICBuZXdfZGF0YSA9IEZhbHNlCi0jIyAgICAgICAg
IGFwcGVuZF9kYXRhKCBkYXRhLCBrZXksIG5ld19kYXRhLCAnXFwnICkKLSMjCi0jIyAgICMgY29t
cHJlc3MgbGlzdHMgb2YgbGVuIDEgaW50byBzaW5nbGUgc3RyaW5ncwotIyMgICBmb3IgKGssIHYp
IGluIGRhdGEuaXRlbXMoKToKLSMjICAgICAgaWYgbGVuKHYpID09IDA6Ci0jIyAgICAgICAgIGRh
dGEucG9wKGspCi0jIwotIyMgICAgICAjIGl0ZW1zIGluIHRoZSBmb2xsb3dpbmcgbGlzdCB3aWxs
IGJlIGtlcHQgYXMgbGlzdHMgYW5kIG5vdCBjb252ZXJ0ZWQgdG8gc3RyaW5ncwotIyMgICAgICBp
ZiBrIGluIFsiSU5QVVQiLCAiRklMRV9QQVRURVJOUyIsICJFWENMVURFX1BBVFRFUk5TIl06Ci0j
IyAgICAgICAgIGNvbnRpbnVlCi0jIwotIyMgICAgICBpZiBsZW4odikgPT0gMToKLSMjICAgICAg
ICAgZGF0YVtrXSA9IHZbMF0KLSMjCi0jIyAgIHJldHVybiBkYXRhCi0jIwotIyNkZWYgRG94eVNv
dXJjZVNjYW4obm9kZSwgZW52LCBwYXRoKToKLSMjICAgIiIiCi0jIyAgIERveHlnZW4gRG94eWZp
bGUgc291cmNlIHNjYW5uZXIuICBUaGlzIHNob3VsZCBzY2FuIHRoZSBEb3h5Z2VuIGZpbGUgYW5k
IGFkZAotIyMgICBhbnkgZmlsZXMgdXNlZCB0byBnZW5lcmF0ZSBkb2NzIHRvIHRoZSBsaXN0IG9m
IHNvdXJjZSBmaWxlcy4KLSMjICAgIiIiCi0jIyAgIGRlZmF1bHRfZmlsZV9wYXR0ZXJucyA9IFsK
LSMjICAgICAgJyouYycsICcqLmNjJywgJyouY3h4JywgJyouY3BwJywgJyouYysrJywgJyouamF2
YScsICcqLmlpJywgJyouaXh4JywKLSMjICAgICAgJyouaXBwJywgJyouaSsrJywgJyouaW5sJywg
JyouaCcsICcqLmhoICcsICcqLmh4eCcsICcqLmhwcCcsICcqLmgrKycsCi0jIyAgICAgICcqLmlk
bCcsICcqLm9kbCcsICcqLmNzJywgJyoucGhwJywgJyoucGhwMycsICcqLmluYycsICcqLm0nLCAn
Ki5tbScsCi0jIyAgICAgICcqLnB5JywKLSMjICAgXQotIyMKLSMjICAgZGVmYXVsdF9leGNsdWRl
X3BhdHRlcm5zID0gWwotIyMgICAgICAnKn4nLAotIyMgICBdCi0jIwotIyMgICBzb3VyY2VzID0g
W10KLSMjCi0jIyAgIGRhdGEgPSBEb3h5ZmlsZVBhcnNlKG5vZGUuZ2V0X2NvbnRlbnRzKCkpCi0j
IwotIyMgICBpZiBkYXRhLmdldCgiUkVDVVJTSVZFIiwgIk5PIikgPT0gIllFUyI6Ci0jIyAgICAg
IHJlY3Vyc2l2ZSA9IFRydWUKLSMjICAgZWxzZToKLSMjICAgICAgcmVjdXJzaXZlID0gRmFsc2UK
LSMjCi0jIyAgIGZpbGVfcGF0dGVybnMgPSBkYXRhLmdldCgiRklMRV9QQVRURVJOUyIsIGRlZmF1
bHRfZmlsZV9wYXR0ZXJucykKLSMjICAgZXhjbHVkZV9wYXR0ZXJucyA9IGRhdGEuZ2V0KCJFWENM
VURFX1BBVFRFUk5TIiwgZGVmYXVsdF9leGNsdWRlX3BhdHRlcm5zKQotIyMKLSMjICAgZm9yIG5v
ZGUgaW4gZGF0YS5nZXQoIklOUFVUIiwgW10pOgotIyMgICAgICBpZiBvcy5wYXRoLmlzZmlsZShu
b2RlKToKLSMjICAgICAgICAgc291cmNlcy5hZGQobm9kZSkKLSMjICAgICAgZWxpZiBvcy5wYXRo
LmlzZGlyKG5vZGUpOgotIyMgICAgICAgICBpZiByZWN1cnNpdmU6Ci0jIyAgICAgICAgICAgIGZv
ciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKG5vZGUpOgotIyMgICAgICAgICAgICAgICBm
b3IgZiBpbiBmaWxlczoKLSMjICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpv
aW4ocm9vdCwgZikKLSMjCi0jIyAgICAgICAgICAgICAgICAgIHBhdHRlcm5fY2hlY2sgPSByZWR1
Y2UobGFtYmRhIHgsIHk6IHggb3IgYm9vbChmbm1hdGNoKGZpbGVuYW1lLCB5KSksIGZpbGVfcGF0
dGVybnMsIEZhbHNlKQotIyMgICAgICAgICAgICAgICAgICBleGNsdWRlX2NoZWNrID0gcmVkdWNl
KGxhbWJkYSB4LCB5OiB4IGFuZCBmbm1hdGNoKGZpbGVuYW1lLCB5KSwgZXhjbHVkZV9wYXR0ZXJu
cywgVHJ1ZSkKLSMjCi0jIyAgICAgICAgICAgICAgICAgIGlmIHBhdHRlcm5fY2hlY2sgYW5kIG5v
dCBleGNsdWRlX2NoZWNrOgotIyMgICAgICAgICAgICAgICAgICAgICBzb3VyY2VzLmFwcGVuZChm
aWxlbmFtZSkKLSMjICAgICAgICAgZWxzZToKLSMjICAgICAgICAgICAgZm9yIHBhdHRlcm4gaW4g
ZmlsZV9wYXR0ZXJuczoKLSMjICAgICAgICAgICAgICAgc291cmNlcy5leHRlbmQoZ2xvYi5nbG9i
KCIvIi5qb2luKFtub2RlLCBwYXR0ZXJuXSkpKQotIyMgICBzb3VyY2VzID0gbWFwKCBsYW1iZGEg
cGF0aDogZW52LkZpbGUocGF0aCksIHNvdXJjZXMgKQotIyMgICByZXR1cm4gc291cmNlcwotIyMK
LSMjCi0jI2RlZiBEb3h5U291cmNlU2NhbkNoZWNrKG5vZGUsIGVudik6Ci0jIyAgICIiIkNoZWNr
IGlmIHdlIHNob3VsZCBzY2FuIHRoaXMgZmlsZSIiIgotIyMgICByZXR1cm4gb3MucGF0aC5pc2Zp
bGUobm9kZS5wYXRoKQotCi1kZWYgc3JjRGlzdEVtaXR0ZXIoc291cmNlLCB0YXJnZXQsIGVudik6
Ci0jIyAgICIiIkRveHlnZW4gRG94eWZpbGUgZW1pdHRlciIiIgotIyMgICAjIHBvc3NpYmxlIG91
dHB1dCBmb3JtYXRzIGFuZCB0aGVpciBkZWZhdWx0IHZhbHVlcyBhbmQgb3V0cHV0IGxvY2F0aW9u
cwotIyMgICBvdXRwdXRfZm9ybWF0cyA9IHsKLSMjICAgICAgIkhUTUwiOiAoIllFUyIsICJodG1s
IiksCi0jIyAgICAgICJMQVRFWCI6ICgiWUVTIiwgImxhdGV4IiksCi0jIyAgICAgICJSVEYiOiAo
Ik5PIiwgInJ0ZiIpLAotIyMgICAgICAiTUFOIjogKCJZRVMiLCAibWFuIiksCi0jIyAgICAgICJY
TUwiOiAoIk5PIiwgInhtbCIpLAotIyMgICB9Ci0jIwotIyMgICBkYXRhID0gRG94eWZpbGVQYXJz
ZShzb3VyY2VbMF0uZ2V0X2NvbnRlbnRzKCkpCi0jIwotIyMgICB0YXJnZXRzID0gW10KLSMjICAg
b3V0X2RpciA9IGRhdGEuZ2V0KCJPVVRQVVRfRElSRUNUT1JZIiwgIi4iKQotIyMKLSMjICAgIyBh
ZGQgb3VyIG91dHB1dCBsb2NhdGlvbnMKLSMjICAgZm9yIChrLCB2KSBpbiBvdXRwdXRfZm9ybWF0
cy5pdGVtcygpOgotIyMgICAgICBpZiBkYXRhLmdldCgiR0VORVJBVEVfIiArIGssIHZbMF0pID09
ICJZRVMiOgotIyMgICAgICAgICB0YXJnZXRzLmFwcGVuZChlbnYuRGlyKCBvcy5wYXRoLmpvaW4o
b3V0X2RpciwgZGF0YS5nZXQoayArICJfT1VUUFVUIiwgdlsxXSkpKSApCi0jIwotIyMgICAjIGRv
bid0IGNsb2JiZXIgdGFyZ2V0cwotIyMgICBmb3Igbm9kZSBpbiB0YXJnZXRzOgotIyMgICAgICBl
bnYuUHJlY2lvdXMobm9kZSkKLSMjCi0jIyAgICMgc2V0IHVwIGNsZWFuaW5nIHN0dWZmCi0jIyAg
IGZvciBub2RlIGluIHRhcmdldHM6Ci0jIyAgICAgIGVudi5DbGVhbihub2RlLCBub2RlKQotIyMK
LSMjICAgcmV0dXJuICh0YXJnZXRzLCBzb3VyY2UpCi0gICByZXR1cm4gKHRhcmdldCxzb3VyY2Up
Ci0KLWRlZiBnZW5lcmF0ZShlbnYpOgotICAgIiIiCi0gICBBZGQgYnVpbGRlcnMgYW5kIGNvbnN0
cnVjdGlvbiB2YXJpYWJsZXMgZm9yIHRoZQotICAgU3JjRGlzdCB0b29sLgotICAgIiIiCi0jIyAg
IGRveHlmaWxlX3NjYW5uZXIgPSBlbnYuU2Nhbm5lcigKLSMjICAgICAgRG94eVNvdXJjZVNjYW4s
Ci0jIyAgICAgICJEb3h5U291cmNlU2NhbiIsCi0jIyAgICAgIHNjYW5fY2hlY2sgPSBEb3h5U291
cmNlU2NhbkNoZWNrLAotIyMgICApCi0KLSAgIGlmIHRhcmd6LmV4aXN0cyhlbnYpOgotICAgICAg
c3JjZGlzdF9idWlsZGVyID0gdGFyZ3oubWFrZUJ1aWxkZXIoIHNyY0Rpc3RFbWl0dGVyICkKLQot
ICAgICAgZW52WydCVUlMREVSUyddWydTcmNEaXN0J10gPSBzcmNkaXN0X2J1aWxkZXIKLQotZGVm
IGV4aXN0cyhlbnYpOgotICAgIiIiCi0gICBNYWtlIHN1cmUgc3JjZGlzdCBleGlzdHMuCi0gICAi
IiIKLSAgIHJldHVybiB0YXJnei5leGlzdHMoZW52KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zY29ucy10
b29scy9zdWJzdGluZmlsZS5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc2NvbnMtdG9vbHMvc3Vic3RpbmZpbGUucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMzA1ODUxYmIwYmEwNzczNTFkZmMyMjU1NDYx
NGM1M2M2YzQxMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9zY29ucy10b29scy9zdWJzdGluZmlsZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDc5
ICswLDAgQEAKLWltcG9ydCByZQotZnJvbSBTQ29ucy5TY3JpcHQgaW1wb3J0ICogICMgdGhlIHVz
dWFsIHNjb25zIHN0dWZmIHlvdSBnZXQgaW4gYSBTQ29uc2NyaXB0Ci0KLWRlZiBnZW5lcmF0ZShl
bnYpOgotICAgICIiIgotICAgIEFkZCBidWlsZGVycyBhbmQgY29uc3RydWN0aW9uIHZhcmlhYmxl
cyBmb3IgdGhlCi0gICAgU3Vic3RJbkZpbGUgdG9vbC4KLQotICAgIEFkZHMgU3Vic3RJbkZpbGUg
YnVpbGRlciwgd2hpY2ggc3Vic3RpdHV0ZXMgdGhlIGtleXMtPnZhbHVlcyBvZiBTVUJTVF9ESUNU
Ci0gICAgZnJvbSB0aGUgc291cmNlIHRvIHRoZSB0YXJnZXQuCi0gICAgVGhlIHZhbHVlcyBvZiBT
VUJTVF9ESUNUIGZpcnN0IGhhdmUgYW55IGNvbnN0cnVjdGlvbiB2YXJpYWJsZXMgZXhwYW5kZWQK
LSAgICAoaXRzIGtleXMgYXJlIG5vdCBleHBhbmRlZCkuCi0gICAgSWYgYSB2YWx1ZSBvZiBTVUJT
VF9ESUNUIGlzIGEgcHl0aG9uIGNhbGxhYmxlIGZ1bmN0aW9uLCBpdCBpcyBjYWxsZWQgYW5kCi0g
ICAgdGhlIHJlc3VsdCBpcyBleHBhbmRlZCBhcyB0aGUgdmFsdWUuCi0gICAgSWYgdGhlcmUncyBt
b3JlIHRoYW4gb25lIHNvdXJjZSBhbmQgbW9yZSB0aGFuIG9uZSB0YXJnZXQsIGVhY2ggdGFyZ2V0
IGdldHMKLSAgICBzdWJzdGl0dXRlZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZS4KLSAg
ICAiIiIKLSAgICBkZWYgZG9fc3Vic3RfaW5fZmlsZSh0YXJnZXRmaWxlLCBzb3VyY2VmaWxlLCBk
aWN0KToKLSAgICAgICAgIiIiUmVwbGFjZSBhbGwgaW5zdGFuY2VzIG9mIHRoZSBrZXlzIG9mIGRp
Y3Qgd2l0aCB0aGVpciB2YWx1ZXMuCi0gICAgICAgIEZvciBleGFtcGxlLCBpZiBkaWN0IGlzIHsn
JVZFUlNJT04lJzogJzEuMjM0NScsICclQkFTRSUnOiAnTXlQcm9nJ30sCi0gICAgICAgIHRoZW4g
YWxsIGluc3RhbmNlcyBvZiAlVkVSU0lPTiUgaW4gdGhlIGZpbGUgd2lsbCBiZSByZXBsYWNlZCB3
aXRoIDEuMjM0NSBldGMuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBm
ID0gb3Blbihzb3VyY2VmaWxlLCAncmInKQotICAgICAgICAgICAgY29udGVudHMgPSBmLnJlYWQo
KQotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHJh
aXNlIFNDb25zLkVycm9ycy5Vc2VyRXJyb3IsICJDYW4ndCByZWFkIHNvdXJjZSBmaWxlICVzIiVz
b3VyY2VmaWxlCi0gICAgICAgIGZvciAoayx2KSBpbiBkaWN0Lml0ZW1zKCk6Ci0gICAgICAgICAg
ICBjb250ZW50cyA9IHJlLnN1YihrLCB2LCBjb250ZW50cykKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgZiA9IG9wZW4odGFyZ2V0ZmlsZSwgJ3diJykKLSAgICAgICAgICAgIGYud3JpdGUoY29u
dGVudHMpCi0gICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAg
ICAgcmFpc2UgU0NvbnMuRXJyb3JzLlVzZXJFcnJvciwgIkNhbid0IHdyaXRlIHRhcmdldCBmaWxl
ICVzIiV0YXJnZXRmaWxlCi0gICAgICAgIHJldHVybiAwICMgc3VjY2VzcwotCi0gICAgZGVmIHN1
YnN0X2luX2ZpbGUodGFyZ2V0LCBzb3VyY2UsIGVudik6Ci0gICAgICAgIGlmIG5vdCBlbnYuaGFz
X2tleSgnU1VCU1RfRElDVCcpOgotICAgICAgICAgICAgcmFpc2UgU0NvbnMuRXJyb3JzLlVzZXJF
cnJvciwgIlN1YnN0SW5GaWxlIHJlcXVpcmVzIFNVQlNUX0RJQ1QgdG8gYmUgc2V0LiIKLSAgICAg
ICAgZCA9IGRpY3QoZW52WydTVUJTVF9ESUNUJ10pICMgY29weSBpdAotICAgICAgICBmb3IgKGss
dikgaW4gZC5pdGVtcygpOgotICAgICAgICAgICAgaWYgY2FsbGFibGUodik6Ci0gICAgICAgICAg
ICAgICAgZFtrXSA9IGVudi5zdWJzdCh2KCkpLnJlcGxhY2UoJ1xcJywnXFxcXCcpCi0gICAgICAg
ICAgICBlbGlmIFNDb25zLlV0aWwuaXNfU3RyaW5nKHYpOgotICAgICAgICAgICAgICAgIGRba10g
PSBlbnYuc3Vic3QodikucmVwbGFjZSgnXFwnLCdcXFxcJykKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgU0NvbnMuRXJyb3JzLlVzZXJFcnJvciwgIlN1YnN0SW5GaWxl
OiBrZXkgJXM6ICVzIG11c3QgYmUgYSBzdHJpbmcgb3IgY2FsbGFibGUiJShrLCByZXByKHYpKQot
ICAgICAgICBmb3IgKHQscykgaW4gemlwKHRhcmdldCwgc291cmNlKToKLSAgICAgICAgICAgIHJl
dHVybiBkb19zdWJzdF9pbl9maWxlKHN0cih0KSwgc3RyKHMpLCBkKQotCi0gICAgZGVmIHN1YnN0
X2luX2ZpbGVfc3RyaW5nKHRhcmdldCwgc291cmNlLCBlbnYpOgotICAgICAgICAiIiJUaGlzIGlz
IHdoYXQgZ2V0cyBwcmludGVkIG9uIHRoZSBjb25zb2xlLiIiIgotICAgICAgICByZXR1cm4gJ1xu
Jy5qb2luKFsnU3Vic3RpdHV0aW5nIHZhcnMgZnJvbSAlcyBpbnRvICVzJyUoc3RyKHMpLCBzdHIo
dCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodCxzKSBpbiB6aXAodGFyZ2V0LCBz
b3VyY2UpXSkKLQotICAgIGRlZiBzdWJzdF9lbWl0dGVyKHRhcmdldCwgc291cmNlLCBlbnYpOgot
ICAgICAgICAiIiJBZGQgZGVwZW5kZW5jeSBmcm9tIHN1YnN0aXR1dGVkIFNVQlNUX0RJQ1QgdG8g
dGFyZ2V0LgotICAgICAgICBSZXR1cm5zIG9yaWdpbmFsIHRhcmdldCwgc291cmNlIHR1cGxlIHVu
Y2hhbmdlZC4KLSAgICAgICAgIiIiCi0gICAgICAgIGQgPSBlbnZbJ1NVQlNUX0RJQ1QnXS5jb3B5
KCkgIyBjb3B5IGl0Ci0gICAgICAgIGZvciAoayx2KSBpbiBkLml0ZW1zKCk6Ci0gICAgICAgICAg
ICBpZiBjYWxsYWJsZSh2KToKLSAgICAgICAgICAgICAgICBkW2tdID0gZW52LnN1YnN0KHYoKSkK
LSAgICAgICAgICAgIGVsaWYgU0NvbnMuVXRpbC5pc19TdHJpbmcodik6Ci0gICAgICAgICAgICAg
ICAgZFtrXT1lbnYuc3Vic3QodikKLSAgICAgICAgRGVwZW5kcyh0YXJnZXQsIFNDb25zLk5vZGUu
UHl0aG9uLlZhbHVlKGQpKQotICAgICAgICByZXR1cm4gdGFyZ2V0LCBzb3VyY2UKLQotIyMgICAg
ZW52LkFwcGVuZChUT09MUyA9ICdzdWJzdGluZmlsZScpICAgICAgICMgdGhpcyBzaG91bGQgYmUg
YXV0b21hdGljYWx5IGRvbmUgYnkgU2NvbnMgPyE/Ci0gICAgc3Vic3RfYWN0aW9uID0gU0NvbnMu
QWN0aW9uLkFjdGlvbiggc3Vic3RfaW5fZmlsZSwgc3Vic3RfaW5fZmlsZV9zdHJpbmcgKQotICAg
IGVudlsnQlVJTERFUlMnXVsnU3Vic3RJbkZpbGUnXSA9IEJ1aWxkZXIoYWN0aW9uPXN1YnN0X2Fj
dGlvbiwgZW1pdHRlcj1zdWJzdF9lbWl0dGVyKQotCi1kZWYgZXhpc3RzKGVudik6Ci0gICAgIiIi
Ci0gICAgTWFrZSBzdXJlIHRvb2wgZXhpc3RzLgotICAgICIiIgotICAgIHJldHVybiBUcnVlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL3Rhcmd6LnB5IGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zY29ucy10b29scy90
YXJnei5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjU0MzIwMDNkZjczMWRmNjA0
YzMzMWY1ZDA3MmMzNGZmNDliMmZiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3Njb25zLXRvb2xzL3Rhcmd6LnB5CisrKyAvZGV2L251bGwKQEAg
LTEsODIgKzAsMCBAQAotIiIidGFyYmFsbAotCi1Ub29sLXNwZWNpZmljIGluaXRpYWxpemF0aW9u
IGZvciB0YXJiYWxsLgotCi0iIiIKLQotIyMgQ29tbWFuZHMgdG8gdGFja2xlIGEgY29tbWFuZCBi
YXNlZCBpbXBsZW1lbnRhdGlvbjoKLSMjdG8gdW5wYWNrIG9uIHRoZSBmbHkuLi4KLSMjZ3Vuemlw
IDwgRklMRS50YXIuZ3ogfCB0YXIgeHZmIC0KLSMjdG8gcGFjayBvbiB0aGUgZmx5Li4uCi0jI3Rh
ciBjdmYgLSBGSUxFLUxJU1QgfCBnemlwIC1jID4gRklMRS50YXIuZ3ogCi0KLWltcG9ydCBvcy5w
YXRoCi0KLWltcG9ydCBTQ29ucy5CdWlsZGVyCi1pbXBvcnQgU0NvbnMuTm9kZS5GUwotaW1wb3J0
IFNDb25zLlV0aWwKLQotdHJ5OgotICAgIGltcG9ydCBnemlwCi0gICAgaW1wb3J0IHRhcmZpbGUK
LSAgICBpbnRlcm5hbF90YXJneiA9IDEKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBpbnRlcm5h
bF90YXJneiA9IDAKLQotVEFSR1pfREVGQVVMVF9DT01QUkVTU0lPTl9MRVZFTCA9IDkKLQotaWYg
aW50ZXJuYWxfdGFyZ3o6Ci0gICAgZGVmIHRhcmd6KHRhcmdldCwgc291cmNlLCBlbnYpOgotICAg
ICAgICBkZWYgYXJjaGl2ZV9uYW1lKCBwYXRoICk6Ci0gICAgICAgICAgICBwYXRoID0gb3MucGF0
aC5ub3JtcGF0aCggb3MucGF0aC5hYnNwYXRoKCBwYXRoICkgKQotICAgICAgICAgICAgY29tbW9u
X3BhdGggPSBvcy5wYXRoLmNvbW1vbnByZWZpeCggKGJhc2VfZGlyLCBwYXRoKSApCi0gICAgICAg
ICAgICBhcmNoaXZlX25hbWUgPSBwYXRoW2xlbihjb21tb25fcGF0aCk6XQotICAgICAgICAgICAg
cmV0dXJuIGFyY2hpdmVfbmFtZQotICAgICAgICAgICAgCi0gICAgICAgIGRlZiB2aXNpdCh0YXIs
IGRpcm5hbWUsIG5hbWVzKToKLSAgICAgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgotICAgICAg
ICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oZGlybmFtZSwgbmFtZSkKLSAgICAgICAgICAg
ICAgICBpZiBvcy5wYXRoLmlzZmlsZShwYXRoKToKLSAgICAgICAgICAgICAgICAgICAgdGFyLmFk
ZChwYXRoLCBhcmNoaXZlX25hbWUocGF0aCkgKQotICAgICAgICBjb21wcmVzc2lvbiA9IGVudi5n
ZXQoJ1RBUkdaX0NPTVBSRVNTSU9OX0xFVkVMJyxUQVJHWl9ERUZBVUxUX0NPTVBSRVNTSU9OX0xF
VkVMKQotICAgICAgICBiYXNlX2RpciA9IG9zLnBhdGgubm9ybXBhdGgoIGVudi5nZXQoJ1RBUkda
X0JBU0VESVInLCBlbnYuRGlyKCcuJykpLmFic3BhdGggKQotICAgICAgICB0YXJnZXRfcGF0aCA9
IHN0cih0YXJnZXRbMF0pCi0gICAgICAgIGZpbGVvYmogPSBnemlwLkd6aXBGaWxlKCB0YXJnZXRf
cGF0aCwgJ3diJywgY29tcHJlc3Npb24gKQotICAgICAgICB0YXIgPSB0YXJmaWxlLlRhckZpbGUo
b3MucGF0aC5zcGxpdGV4dCh0YXJnZXRfcGF0aClbMF0sICd3JywgZmlsZW9iaikKLSAgICAgICAg
Zm9yIHNvdXJjZSBpbiBzb3VyY2U6Ci0gICAgICAgICAgICBzb3VyY2VfcGF0aCA9IHN0cihzb3Vy
Y2UpCi0gICAgICAgICAgICBpZiBzb3VyY2UuaXNkaXIoKToKLSAgICAgICAgICAgICAgICBvcy5w
YXRoLndhbGsoc291cmNlX3BhdGgsIHZpc2l0LCB0YXIpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHRhci5hZGQoc291cmNlX3BhdGgsIGFyY2hpdmVfbmFtZShzb3VyY2VfcGF0
aCkgKSAgICAgICMgZmlsZW5hbWUsIGFyY25hbWUKLSAgICAgICAgdGFyLmNsb3NlKCkKLQotICAg
IHRhcmd6QWN0aW9uID0gU0NvbnMuQWN0aW9uLkFjdGlvbih0YXJneiwgdmFybGlzdD1bJ1RBUkda
X0NPTVBSRVNTSU9OX0xFVkVMJywnVEFSR1pfQkFTRURJUiddKQotCi0gICAgZGVmIG1ha2VCdWls
ZGVyKCBlbWl0dGVyID0gTm9uZSApOgotICAgICAgICByZXR1cm4gU0NvbnMuQnVpbGRlci5CdWls
ZGVyKGFjdGlvbiA9IFNDb25zLkFjdGlvbi5BY3Rpb24oJyRUQVJHWl9DT00nLCAnJFRBUkdaX0NP
TVNUUicpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9mYWN0
b3J5ID0gU0NvbnMuTm9kZS5GUy5FbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2Vfc2Nhbm5lciA9IFNDb25zLkRlZmF1bHRzLkRpclNjYW5uZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4ID0gJyRUQVJHWl9TVUZGSVgn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpID0gMSkKLSAgICBU
YXJHekJ1aWxkZXIgPSBtYWtlQnVpbGRlcigpCi0KLSAgICBkZWYgZ2VuZXJhdGUoZW52KToKLSAg
ICAgICAgIiIiQWRkIEJ1aWxkZXJzIGFuZCBjb25zdHJ1Y3Rpb24gdmFyaWFibGVzIGZvciB6aXAg
dG8gYW4gRW52aXJvbm1lbnQuCi0gICAgICAgICAgIFRoZSBmb2xsb3dpbmcgZW52aXJvbm5lbWVu
dCB2YXJpYWJsZXMgbWF5IGJlIHNldDoKLSAgICAgICAgICAgVEFSR1pfQ09NUFJFU1NJT05fTEVW
RUw6IGludGVnZXIsIFswLTldLiAwOiBubyBjb21wcmVzc2lvbiwgOTogYmVzdCBjb21wcmVzc2lv
biAoc2FtZSBhcyBnemlwIGNvbXByZXNzaW9uIGxldmVsKS4KLSAgICAgICAgICAgVEFSR1pfQkFT
RURJUjogYmFzZS1kaXJlY3RvcnkgdXNlZCB0byBkZXRlcm1pbmUgYXJjaGl2ZSBuYW1lICh0aGlz
IGFsbG93IGFyY2hpdmUgbmFtZSB0byBiZSByZWxhdGl2ZQotICAgICAgICAgICAgICAgICAgICAg
ICAgICB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiB0b3AtZGlyKS4KLSAgICAgICAgIiIiCi0gICAg
ICAgIGVudlsnQlVJTERFUlMnXVsnVGFyR3onXSA9IFRhckd6QnVpbGRlcgotICAgICAgICBlbnZb
J1RBUkdaX0NPTSddID0gdGFyZ3pBY3Rpb24KLSAgICAgICAgZW52WydUQVJHWl9DT01QUkVTU0lP
Tl9MRVZFTCddID0gVEFSR1pfREVGQVVMVF9DT01QUkVTU0lPTl9MRVZFTCAjIHJhbmdlIDAtOQot
ICAgICAgICBlbnZbJ1RBUkdaX1NVRkZJWCddICA9ICcudGFyLmd6JwotICAgICAgICBlbnZbJ1RB
UkdaX0JBU0VESVInXSA9IGVudi5EaXIoJy4nKSAgICAgIyBTb3VyY2VzIGFyY2hpdmUgbmFtZSBh
cmUgbWFkZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS4KLWVsc2U6Ci0gICAgZGVmIGdlbmVy
YXRlKGVudik6Ci0gICAgICAgIHBhc3MKLQotCi1kZWYgZXhpc3RzKGVudik6Ci0gICAgcmV0dXJu
IGludGVybmFsX3Rhcmd6CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2Uvc3JjL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmODJhNzQ2MzMxMjFlNDBlYjQwMzEw
M2JjMThkZGIzMWM3YmQ1YzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9DTWFrZUxpc3Rz
LnR4dApAQCAtMCwwICsxLDUgQEAKK2FkZF9zdWJkaXJlY3RvcnkobGliX2pzb24pCitpZihKU09O
Q1BQX1dJVEhfVEVTVFMpCisgICAgYWRkX3N1YmRpcmVjdG9yeShqc29udGVzdHJ1bm5lcikKKyAg
ICBhZGRfc3ViZGlyZWN0b3J5KHRlc3RfbGliX2pzb24pCitlbmRpZigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3NyYy9qc29udGVzdHJ1bm5lci9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2pzb250ZXN0
cnVubmVyL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyM2E0NGU2NGJhNTI2NDRkMDFjZjk1
MDNjNzgxN2YwZWQ5NWE1MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9qc29udGVzdHJ1
bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDM2IEBACitmaW5kX3BhY2thZ2UoUHl0aG9u
SW50ZXJwIDIuNikKKworYWRkX2V4ZWN1dGFibGUoanNvbnRlc3RydW5uZXJfZXhlCisgICAgICAg
ICAgICAgICBtYWluLmNwcAorICAgICAgICAgICAgICAgKQorCitpZihCVUlMRF9TSEFSRURfTElC
UykKKyAgICBhZGRfY29tcGlsZV9kZWZpbml0aW9ucyggSlNPTl9ETEwgKQorZW5kaWYoKQordGFy
Z2V0X2xpbmtfbGlicmFyaWVzKGpzb250ZXN0cnVubmVyX2V4ZSBqc29uY3BwX2xpYikKKworc2V0
X3RhcmdldF9wcm9wZXJ0aWVzKGpzb250ZXN0cnVubmVyX2V4ZSBQUk9QRVJUSUVTIE9VVFBVVF9O
QU1FIGpzb250ZXN0cnVubmVyX2V4ZSkKKworaWYoUFlUSE9OSU5URVJQX0ZPVU5EKQorICAgICMg
UnVuIGVuZCB0byBlbmQgcGFyc2VyL3dyaXRlciB0ZXN0cworICAgIHNldChURVNUX0RJUiAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vLi4vdGVzdCkKKyAgICBzZXQoUlVOSlNPTlRFU1RT
X1BBVEggJHtURVNUX0RJUn0vcnVuanNvbnRlc3RzLnB5KQorCisgICAgIyBSdW4gdW5pdCB0ZXN0
cyBpbiBwb3N0LWJ1aWxkCisgICAgIyAoZGVmYXVsdCBjbWFrZSB3b3JrZmxvdyBoaWRlcyBhd2F5
IHRoZSB0ZXN0IHJlc3VsdCBpbnRvIGEgZmlsZSwgcmVzdWx0aW5nIGluIHBvb3IgZGV2IHdvcmtm
bG93PyE/KQorICAgIGFkZF9jdXN0b21fdGFyZ2V0KGpzb25jcHBfcmVhZGVyd3JpdGVyX3Rlc3Rz
CisgICAgICAgICAgICAgICAgICAgICAgIiR7UFlUSE9OX0VYRUNVVEFCTEV9IiAtQiAiJHtSVU5K
U09OVEVTVFNfUEFUSH0iICQ8VEFSR0VUX0ZJTEU6anNvbnRlc3RydW5uZXJfZXhlPiAiJHtURVNU
X0RJUn0vZGF0YSIKKyAgICAgICAgICAgICAgICAgICAgICBERVBFTkRTIGpzb250ZXN0cnVubmVy
X2V4ZSBqc29uY3BwX3Rlc3QKKyAgICAgICAgICAgICAgICAgICAgICApCisgICAgYWRkX2N1c3Rv
bV90YXJnZXQoanNvbmNwcF9jaGVjayBERVBFTkRTIGpzb25jcHBfcmVhZGVyd3JpdGVyX3Rlc3Rz
KQorCisgICAgIyMgQ3JlYXRlIHRlc3RzIGZvciBkYXNoYm9hcmQgc3VibWlzc2lvbiwgYWxsb3dz
IGVhc3kgcmV2aWV3IG9mIENJIHJlc3VsdHMgaHR0cHM6Ly9teS5jZGFzaC5vcmcvaW5kZXgucGhw
P3Byb2plY3Q9anNvbmNwcAorICAgIGFkZF90ZXN0KE5BTUUganNvbmNwcF9yZWFkZXJ3cml0ZXIK
KyAgICAgICAgICAgICBDT01NQU5EICIke1BZVEhPTl9FWEVDVVRBQkxFfSIgLUIgIiR7UlVOSlNP
TlRFU1RTX1BBVEh9IiAkPFRBUkdFVF9GSUxFOmpzb250ZXN0cnVubmVyX2V4ZT4gIiR7VEVTVF9E
SVJ9L2RhdGEiCisgICAgICAgICAgICAgV09SS0lOR19ESVJFQ1RPUlkgIiR7VEVTVF9ESVJ9L2Rh
dGEiCisgICAgKQorICAgIGFkZF90ZXN0KE5BTUUganNvbmNwcF9yZWFkZXJ3cml0ZXJfanNvbl9j
aGVja2VyCisgICAgICAgICAgICAgQ09NTUFORCAiJHtQWVRIT05fRVhFQ1VUQUJMRX0iIC1CICIk
e1JVTkpTT05URVNUU19QQVRIfSIgLS13aXRoLWpzb24tY2hlY2tlciAgJDxUQVJHRVRfRklMRTpq
c29udGVzdHJ1bm5lcl9leGU+ICIke1RFU1RfRElSfS9kYXRhIgorICAgICAgICAgICAgIFdPUktJ
TkdfRElSRUNUT1JZICIke1RFU1RfRElSfS9kYXRhIgorICAgICkKK2VuZGlmKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL2pzb250ZXN0cnVubmVyL21haW4uY3BwIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRlc3Ry
dW5uZXIvbWFpbi5jcHAKaW5kZXggNzRmMDIxNjVjM2MyZDhlZjBlZjQ2YjlkYjg4MzMyYzVlODRi
NWIzYy4uZDJkNDFhYTVmZDk5YjEwMDBkZDUyZDUzZjQ4ODJiZjc2Yjc3OWI1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9zcmMvanNvbnRlc3RydW5uZXIvbWFpbi5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRl
c3RydW5uZXIvbWFpbi5jcHAKQEAgLTEsMjkzICsxLDMwMCBAQAotLy8gQ29weXJpZ2h0IDIwMDct
MjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUg
TGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBN
SVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXpl
ZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBv
ciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKKyNpZiBk
ZWZpbmVkKF9fR05VQ19fKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisjZWxpZiBk
ZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0OTk2KQorI2VuZGlm
CisKIC8qIFRoaXMgZXhlY3V0YWJsZSBpcyB1c2VkIGZvciB0ZXN0aW5nIHBhcnNlci93cml0ZXIg
dXNpbmcgcmVhbCBKU09OIGZpbGVzLgogICovCiAKLQotI2luY2x1ZGUgPGpzb24vanNvbi5oPgog
I2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gc29ydAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLSNpZiBk
ZWZpbmVkKF9NU0NfVkVSKSAgJiYgIF9NU0NfVkVSID49IDEzMTAKLSMgcHJhZ21hIHdhcm5pbmco
IGRpc2FibGU6IDQ5OTYgKSAgICAgLy8gZGlzYWJsZSBmb3BlbiBkZXByZWNhdGlvbiB3YXJuaW5n
Ci0jZW5kaWYKLQotc3RhdGljIHN0ZDo6c3RyaW5nIAotbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0
ciggZG91YmxlIHZhbHVlICkKLXsKLSAgICBjaGFyIGJ1ZmZlclszMl07Ci0gICAgc3ByaW50Zigg
YnVmZmVyLCAiJS4xNmciLCB2YWx1ZSApOwotICAgIGJ1ZmZlcltzaXplb2YoYnVmZmVyKS0xXSA9
IDA7Ci0gICAgc3RkOjpzdHJpbmcgcyggYnVmZmVyICk7Ci0gICAgc3RkOjpzdHJpbmc6OnNpemVf
dHlwZSBpbmRleCA9IHMuZmluZF9sYXN0X29mKCAiZUUiICk7Ci0gICAgaWYgKCBpbmRleCAhPSBz
dGQ6OnN0cmluZzo6bnBvcyApCisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGpzb24vanNv
bi5oPgorI2luY2x1ZGUgPHNzdHJlYW0+CisKK3N0cnVjdCBPcHRpb25zIHsKKyAgSnNvbjo6U3Ry
aW5nIHBhdGg7CisgIEpzb246OkZlYXR1cmVzIGZlYXR1cmVzOworICBib29sIHBhcnNlT25seTsK
KyAgdXNpbmcgd3JpdGVGdW5jVHlwZSA9IEpzb246OlN0cmluZyAoKikoSnNvbjo6VmFsdWUgY29u
c3QmKTsKKyAgd3JpdGVGdW5jVHlwZSB3cml0ZTsKK307CisKK3N0YXRpYyBKc29uOjpTdHJpbmcg
bm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihkb3VibGUgdmFsdWUpIHsKKyAgY2hhciBidWZmZXJb
MzJdOworICBqc29uY3BwX3NucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICIlLjE2ZyIs
IHZhbHVlKTsKKyAgYnVmZmVyW3NpemVvZihidWZmZXIpIC0gMV0gPSAwOworICBKc29uOjpTdHJp
bmcgcyhidWZmZXIpOworICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBpbmRleCA9IHMuZmluZF9s
YXN0X29mKCJlRSIpOworICBpZiAoaW5kZXggIT0gSnNvbjo6U3RyaW5nOjpucG9zKSB7CisgICAg
SnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgaGFzU2lnbiA9CisgICAgICAgIChzW2luZGV4ICsgMV0g
PT0gJysnIHx8IHNbaW5kZXggKyAxXSA9PSAnLScpID8gMSA6IDA7CisgICAgSnNvbjo6U3RyaW5n
OjpzaXplX3R5cGUgZXhwb25lbnRTdGFydEluZGV4ID0gaW5kZXggKyAxICsgaGFzU2lnbjsKKyAg
ICBKc29uOjpTdHJpbmcgbm9ybWFsaXplZCA9IHMuc3Vic3RyKDAsIGV4cG9uZW50U3RhcnRJbmRl
eCk7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgaW5kZXhEaWdpdCA9CisgICAgICAgIHMu
ZmluZF9maXJzdF9ub3Rfb2YoJzAnLCBleHBvbmVudFN0YXJ0SW5kZXgpOworICAgIEpzb246OlN0
cmluZyBleHBvbmVudCA9ICIwIjsKKyAgICBpZiAoaW5kZXhEaWdpdCAhPSBKc29uOjpTdHJpbmc6
Om5wb3MpIC8vIFRoZXJlIGlzIGFuIGV4cG9uZW50IGRpZmZlcmVudAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSAwCiAgICAgewotICAgICAgICBzdGQ6
OnN0cmluZzo6c2l6ZV90eXBlIGhhc1NpZ24gPSAoc1tpbmRleCsxXSA9PSAnKycgfHwgc1tpbmRl
eCsxXSA9PSAnLScpID8gMSA6IDA7Ci0gICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgZXhw
b25lbnRTdGFydEluZGV4ID0gaW5kZXggKyAxICsgaGFzU2lnbjsKLSAgICAgICAgc3RkOjpzdHJp
bmcgbm9ybWFsaXplZCA9IHMuc3Vic3RyKCAwLCBleHBvbmVudFN0YXJ0SW5kZXggKTsKLSAgICAg
ICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpbmRleERpZ2l0ID0gcy5maW5kX2ZpcnN0X25vdF9v
ZiggJzAnLCBleHBvbmVudFN0YXJ0SW5kZXggKTsKLSAgICAgICAgc3RkOjpzdHJpbmcgZXhwb25l
bnQgPSAiMCI7Ci0gICAgICAgIGlmICggaW5kZXhEaWdpdCAhPSBzdGQ6OnN0cmluZzo6bnBvcyAp
IC8vIFRoZXJlIGlzIGFuIGV4cG9uZW50IGRpZmZlcmVudCBmcm9tIDAKLSAgICAgICAgewotICAg
ICAgICAgICAgZXhwb25lbnQgPSBzLnN1YnN0ciggaW5kZXhEaWdpdCApOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBub3JtYWxpemVkICsgZXhwb25lbnQ7CisgICAgICBleHBvbmVudCA9IHMu
c3Vic3RyKGluZGV4RGlnaXQpOwogICAgIH0KLSAgICByZXR1cm4gczsKKyAgICByZXR1cm4gbm9y
bWFsaXplZCArIGV4cG9uZW50OworICB9CisgIHJldHVybiBzOwogfQogCi0KLXN0YXRpYyBzdGQ6
OnN0cmluZwotcmVhZElucHV0VGVzdEZpbGUoIGNvbnN0IGNoYXIgKnBhdGggKQotewotICAgRklM
RSAqZmlsZSA9IGZvcGVuKCBwYXRoLCAicmIiICk7Ci0gICBpZiAoICFmaWxlICkKLSAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZygiIik7Ci0gICBmc2VlayggZmlsZSwgMCwgU0VFS19FTkQgKTsKLSAg
IGxvbmcgc2l6ZSA9IGZ0ZWxsKCBmaWxlICk7Ci0gICBmc2VlayggZmlsZSwgMCwgU0VFS19TRVQg
KTsKLSAgIHN0ZDo6c3RyaW5nIHRleHQ7Ci0gICBjaGFyICpidWZmZXIgPSBuZXcgY2hhcltzaXpl
KzFdOwotICAgYnVmZmVyW3NpemVdID0gMDsKLSAgIGlmICggZnJlYWQoIGJ1ZmZlciwgMSwgc2l6
ZSwgZmlsZSApID09ICh1bnNpZ25lZCBsb25nKXNpemUgKQotICAgICAgdGV4dCA9IGJ1ZmZlcjsK
LSAgIGZjbG9zZSggZmlsZSApOwotICAgZGVsZXRlW10gYnVmZmVyOwotICAgcmV0dXJuIHRleHQ7
CitzdGF0aWMgSnNvbjo6U3RyaW5nIHJlYWRJbnB1dFRlc3RGaWxlKGNvbnN0IGNoYXIqIHBhdGgp
IHsKKyAgRklMRSogZmlsZSA9IGZvcGVuKHBhdGgsICJyYiIpOworICBpZiAoIWZpbGUpCisgICAg
cmV0dXJuICIiOworICBmc2VlayhmaWxlLCAwLCBTRUVLX0VORCk7CisgIGxvbmcgY29uc3Qgc2l6
ZSA9IGZ0ZWxsKGZpbGUpOworICBzaXplX3QgY29uc3QgdXNpemUgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZCBsb25nPihzaXplKTsKKyAgZnNlZWsoZmlsZSwgMCwgU0VFS19TRVQpOworICBjaGFyKiBi
dWZmZXIgPSBuZXcgY2hhcltzaXplICsgMV07CisgIGJ1ZmZlcltzaXplXSA9IDA7CisgIEpzb246
OlN0cmluZyB0ZXh0OworICBpZiAoZnJlYWQoYnVmZmVyLCAxLCB1c2l6ZSwgZmlsZSkgPT0gdXNp
emUpCisgICAgdGV4dCA9IGJ1ZmZlcjsKKyAgZmNsb3NlKGZpbGUpOworICBkZWxldGVbXSBidWZm
ZXI7CisgIHJldHVybiB0ZXh0OwogfQogCiBzdGF0aWMgdm9pZAotcHJpbnRWYWx1ZVRyZWUoIEZJ
TEUgKmZvdXQsIEpzb246OlZhbHVlICZ2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGggPSAi
LiIgKQotewotICAgc3dpdGNoICggdmFsdWUudHlwZSgpICkKLSAgIHsKLSAgIGNhc2UgSnNvbjo6
bnVsbFZhbHVlOgotICAgICAgZnByaW50ZiggZm91dCwgIiVzPW51bGxcbiIsIHBhdGguY19zdHIo
KSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIEpzb246OmludFZhbHVlOgotICAgICAgZnByaW50
ZiggZm91dCwgIiVzPSVzXG4iLCBwYXRoLmNfc3RyKCksIEpzb246OnZhbHVlVG9TdHJpbmcoIHZh
bHVlLmFzTGFyZ2VzdEludCgpICkuY19zdHIoKSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIEpz
b246OnVpbnRWYWx1ZToKLSAgICAgIGZwcmludGYoIGZvdXQsICIlcz0lc1xuIiwgcGF0aC5jX3N0
cigpLCBKc29uOjp2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xhcmdlc3RVSW50KCkgKS5jX3N0cigp
ICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgSnNvbjo6cmVhbFZhbHVlOgotICAgICAgIGZwcmlu
dGYoIGZvdXQsICIlcz0lc1xuIiwgcGF0aC5jX3N0cigpLCBub3JtYWxpemVGbG9hdGluZ1BvaW50
U3RyKHZhbHVlLmFzRG91YmxlKCkpLmNfc3RyKCkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBK
c29uOjpzdHJpbmdWYWx1ZToKLSAgICAgIGZwcmludGYoIGZvdXQsICIlcz1cIiVzXCJcbiIsIHBh
dGguY19zdHIoKSwgdmFsdWUuYXNTdHJpbmcoKS5jX3N0cigpICk7Ci0gICAgICBicmVhazsKLSAg
IGNhc2UgSnNvbjo6Ym9vbGVhblZhbHVlOgotICAgICAgZnByaW50ZiggZm91dCwgIiVzPSVzXG4i
LCBwYXRoLmNfc3RyKCksIHZhbHVlLmFzQm9vbCgpID8gInRydWUiIDogImZhbHNlIiApOwotICAg
ICAgYnJlYWs7Ci0gICBjYXNlIEpzb246OmFycmF5VmFsdWU6Ci0gICAgICB7Ci0gICAgICAgICBm
cHJpbnRmKCBmb3V0LCAiJXM9W11cbiIsIHBhdGguY19zdHIoKSApOwotICAgICAgICAgaW50IHNp
emUgPSB2YWx1ZS5zaXplKCk7Ci0gICAgICAgICBmb3IgKCBpbnQgaW5kZXggPTA7IGluZGV4IDwg
c2l6ZTsgKytpbmRleCApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBzdGF0aWMgY2hhciBidWZm
ZXJbMTZdOwotICAgICAgICAgICAgc3ByaW50ZiggYnVmZmVyLCAiWyVkXSIsIGluZGV4ICk7Ci0g
ICAgICAgICAgICBwcmludFZhbHVlVHJlZSggZm91dCwgdmFsdWVbaW5kZXhdLCBwYXRoICsgYnVm
ZmVyICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSAgIGNhc2UgSnNvbjo6
b2JqZWN0VmFsdWU6Ci0gICAgICB7Ci0gICAgICAgICBmcHJpbnRmKCBmb3V0LCAiJXM9e31cbiIs
IHBhdGguY19zdHIoKSApOwotICAgICAgICAgSnNvbjo6VmFsdWU6Ok1lbWJlcnMgbWVtYmVycygg
dmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSApOwotICAgICAgICAgc3RkOjpzb3J0KCBtZW1iZXJzLmJl
Z2luKCksIG1lbWJlcnMuZW5kKCkgKTsKLSAgICAgICAgIHN0ZDo6c3RyaW5nIHN1ZmZpeCA9ICoo
cGF0aC5lbmQoKS0xKSA9PSAnLicgPyAiIiA6ICIuIjsKLSAgICAgICAgIGZvciAoIEpzb246OlZh
bHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsgCi0gICAgICAgICAg
ICAgICBpdCAhPSBtZW1iZXJzLmVuZCgpOyAKLSAgICAgICAgICAgICAgICsraXQgKQotICAgICAg
ICAgewotICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUgPSAqaXQ7Ci0gICAgICAg
ICAgICBwcmludFZhbHVlVHJlZSggZm91dCwgdmFsdWVbbmFtZV0sIHBhdGggKyBzdWZmaXggKyBu
YW1lICk7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBicmVhazsKLSAgIGRlZmF1bHQ6Ci0g
ICAgICBicmVhazsKLSAgIH0KLX0KLQotCi1zdGF0aWMgaW50Ci1wYXJzZUFuZFNhdmVWYWx1ZVRy
ZWUoIGNvbnN0IHN0ZDo6c3RyaW5nICZpbnB1dCwgCi0gICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IHN0ZDo6c3RyaW5nICZhY3R1YWwsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6c3RyaW5nICZraW5kLAotICAgICAgICAgICAgICAgICAgICAgICBKc29uOjpWYWx1ZSAmcm9v
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6RmVhdHVyZXMgJmZlYXR1cmVz
LAotICAgICAgICAgICAgICAgICAgICAgICBib29sIHBhcnNlT25seSApCi17Ci0gICBKc29uOjpS
ZWFkZXIgcmVhZGVyKCBmZWF0dXJlcyApOwotICAgYm9vbCBwYXJzaW5nU3VjY2Vzc2Z1bCA9IHJl
YWRlci5wYXJzZSggaW5wdXQsIHJvb3QgKTsKLSAgIGlmICggIXBhcnNpbmdTdWNjZXNzZnVsICkK
LSAgIHsKLSAgICAgIHByaW50ZiggIkZhaWxlZCB0byBwYXJzZSAlcyBmaWxlOiBcbiVzXG4iLCAK
LSAgICAgICAgICAgICAga2luZC5jX3N0cigpLAotICAgICAgICAgICAgICByZWFkZXIuZ2V0Rm9y
bWF0dGVkRXJyb3JNZXNzYWdlcygpLmNfc3RyKCkgKTsKLSAgICAgIHJldHVybiAxOwotICAgfQot
Ci0gICBpZiAoICFwYXJzZU9ubHkgKQotICAgewotICAgICAgRklMRSAqZmFjdHVhbCA9IGZvcGVu
KCBhY3R1YWwuY19zdHIoKSwgInd0IiApOwotICAgICAgaWYgKCAhZmFjdHVhbCApCi0gICAgICB7
Ci0gICAgICAgICBwcmludGYoICJGYWlsZWQgdG8gY3JlYXRlICVzIGFjdHVhbCBmaWxlLlxuIiwg
a2luZC5jX3N0cigpICk7Ci0gICAgICAgICByZXR1cm4gMjsKLSAgICAgIH0KLSAgICAgIHByaW50
VmFsdWVUcmVlKCBmYWN0dWFsLCByb290ICk7Ci0gICAgICBmY2xvc2UoIGZhY3R1YWwgKTsKLSAg
IH0KLSAgIHJldHVybiAwOworcHJpbnRWYWx1ZVRyZWUoRklMRSogZm91dCwgSnNvbjo6VmFsdWUm
IHZhbHVlLCBjb25zdCBKc29uOjpTdHJpbmcmIHBhdGggPSAiLiIpIHsKKyAgaWYgKHZhbHVlLmhh
c0NvbW1lbnQoSnNvbjo6Y29tbWVudEJlZm9yZSkpIHsKKyAgICBmcHJpbnRmKGZvdXQsICIlc1xu
IiwgdmFsdWUuZ2V0Q29tbWVudChKc29uOjpjb21tZW50QmVmb3JlKS5jX3N0cigpKTsKKyAgfQor
ICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIEpzb246Om51bGxWYWx1ZToKKyAgICBm
cHJpbnRmKGZvdXQsICIlcz1udWxsXG4iLCBwYXRoLmNfc3RyKCkpOworICAgIGJyZWFrOworICBj
YXNlIEpzb246OmludFZhbHVlOgorICAgIGZwcmludGYoZm91dCwgIiVzPSVzXG4iLCBwYXRoLmNf
c3RyKCksCisgICAgICAgICAgICBKc29uOjp2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdElu
dCgpKS5jX3N0cigpKTsKKyAgICBicmVhazsKKyAgY2FzZSBKc29uOjp1aW50VmFsdWU6CisgICAg
ZnByaW50Zihmb3V0LCAiJXM9JXNcbiIsIHBhdGguY19zdHIoKSwKKyAgICAgICAgICAgIEpzb246
OnZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKS5jX3N0cigpKTsKKyAgICBicmVh
azsKKyAgY2FzZSBKc29uOjpyZWFsVmFsdWU6CisgICAgZnByaW50Zihmb3V0LCAiJXM9JXNcbiIs
IHBhdGguY19zdHIoKSwKKyAgICAgICAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFs
dWUuYXNEb3VibGUoKSkuY19zdHIoKSk7CisgICAgYnJlYWs7CisgIGNhc2UgSnNvbjo6c3RyaW5n
VmFsdWU6CisgICAgZnByaW50Zihmb3V0LCAiJXM9XCIlc1wiXG4iLCBwYXRoLmNfc3RyKCksIHZh
bHVlLmFzU3RyaW5nKCkuY19zdHIoKSk7CisgICAgYnJlYWs7CisgIGNhc2UgSnNvbjo6Ym9vbGVh
blZhbHVlOgorICAgIGZwcmludGYoZm91dCwgIiVzPSVzXG4iLCBwYXRoLmNfc3RyKCksIHZhbHVl
LmFzQm9vbCgpID8gInRydWUiIDogImZhbHNlIik7CisgICAgYnJlYWs7CisgIGNhc2UgSnNvbjo6
YXJyYXlWYWx1ZTogeworICAgIGZwcmludGYoZm91dCwgIiVzPVtdXG4iLCBwYXRoLmNfc3RyKCkp
OworICAgIEpzb246OkFycmF5SW5kZXggc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgICBmb3IgKEpz
b246OkFycmF5SW5kZXggaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAg
IHN0YXRpYyBjaGFyIGJ1ZmZlclsxNl07CisgICAgICBqc29uY3BwX3NucHJpbnRmKGJ1ZmZlciwg
c2l6ZW9mKGJ1ZmZlciksICJbJXVdIiwgaW5kZXgpOworICAgICAgcHJpbnRWYWx1ZVRyZWUoZm91
dCwgdmFsdWVbaW5kZXhdLCBwYXRoICsgYnVmZmVyKTsKKyAgICB9CisgIH0gYnJlYWs7CisgIGNh
c2UgSnNvbjo6b2JqZWN0VmFsdWU6IHsKKyAgICBmcHJpbnRmKGZvdXQsICIlcz17fVxuIiwgcGF0
aC5jX3N0cigpKTsKKyAgICBKc29uOjpWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1l
bWJlck5hbWVzKCkpOworICAgIHN0ZDo6c29ydChtZW1iZXJzLmJlZ2luKCksIG1lbWJlcnMuZW5k
KCkpOworICAgIEpzb246OlN0cmluZyBzdWZmaXggPSAqKHBhdGguZW5kKCkgLSAxKSA9PSAnLicg
PyAiIiA6ICIuIjsKKyAgICBmb3IgKGF1dG8gbmFtZSA6IG1lbWJlcnMpIHsKKyAgICAgIHByaW50
VmFsdWVUcmVlKGZvdXQsIHZhbHVlW25hbWVdLCBwYXRoICsgc3VmZml4ICsgbmFtZSk7CisgICAg
fQorICB9IGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisKKyAgaWYgKHZhbHVl
Lmhhc0NvbW1lbnQoSnNvbjo6Y29tbWVudEFmdGVyKSkgeworICAgIGZwcmludGYoZm91dCwgIiVz
XG4iLCB2YWx1ZS5nZXRDb21tZW50KEpzb246OmNvbW1lbnRBZnRlcikuY19zdHIoKSk7CisgIH0K
IH0KIAotCi1zdGF0aWMgaW50Ci1yZXdyaXRlVmFsdWVUcmVlKCBjb25zdCBzdGQ6OnN0cmluZyAm
cmV3cml0ZVBhdGgsIAotICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6VmFsdWUgJnJvb3Qs
IAotICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgJnJld3JpdGUgKQotewotICAgLy9Kc29u
OjpGYXN0V3JpdGVyIHdyaXRlcjsKLSAgIC8vd3JpdGVyLmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5
KCk7Ci0gICBKc29uOjpTdHlsZWRXcml0ZXIgd3JpdGVyOwotICAgcmV3cml0ZSA9IHdyaXRlci53
cml0ZSggcm9vdCApOwotICAgRklMRSAqZm91dCA9IGZvcGVuKCByZXdyaXRlUGF0aC5jX3N0cigp
LCAid3QiICk7Ci0gICBpZiAoICFmb3V0ICkKLSAgIHsKLSAgICAgIHByaW50ZiggIkZhaWxlZCB0
byBjcmVhdGUgcmV3cml0ZSBmaWxlOiAlc1xuIiwgcmV3cml0ZVBhdGguY19zdHIoKSApOworc3Rh
dGljIGludCBwYXJzZUFuZFNhdmVWYWx1ZVRyZWUoY29uc3QgSnNvbjo6U3RyaW5nJiBpbnB1dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEpzb246OlN0cmluZyYgYWN0
dWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6U3RyaW5n
JiBraW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6RmVh
dHVyZXMmIGZlYXR1cmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBw
YXJzZU9ubHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKc29uOjpWYWx1ZSog
cm9vdCkgeworICBKc29uOjpSZWFkZXIgcmVhZGVyKGZlYXR1cmVzKTsKKyAgYm9vbCBwYXJzaW5n
U3VjY2Vzc2Z1bCA9CisgICAgICByZWFkZXIucGFyc2UoaW5wdXQuZGF0YSgpLCBpbnB1dC5kYXRh
KCkgKyBpbnB1dC5zaXplKCksICpyb290KTsKKyAgaWYgKCFwYXJzaW5nU3VjY2Vzc2Z1bCkgewor
ICAgIHByaW50ZigiRmFpbGVkIHRvIHBhcnNlICVzIGZpbGU6IFxuJXNcbiIsIGtpbmQuY19zdHIo
KSwKKyAgICAgICAgICAgcmVhZGVyLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKS5jX3N0cigp
KTsKKyAgICByZXR1cm4gMTsKKyAgfQorICBpZiAoIXBhcnNlT25seSkgeworICAgIEZJTEUqIGZh
Y3R1YWwgPSBmb3BlbihhY3R1YWwuY19zdHIoKSwgInd0Iik7CisgICAgaWYgKCFmYWN0dWFsKSB7
CisgICAgICBwcmludGYoIkZhaWxlZCB0byBjcmVhdGUgJXMgYWN0dWFsIGZpbGUuXG4iLCBraW5k
LmNfc3RyKCkpOwogICAgICAgcmV0dXJuIDI7Ci0gICB9Ci0gICBmcHJpbnRmKCBmb3V0LCAiJXNc
biIsIHJld3JpdGUuY19zdHIoKSApOwotICAgZmNsb3NlKCBmb3V0ICk7Ci0gICByZXR1cm4gMDsK
KyAgICB9CisgICAgcHJpbnRWYWx1ZVRyZWUoZmFjdHVhbCwgKnJvb3QpOworICAgIGZjbG9zZShm
YWN0dWFsKTsKKyAgfQorICByZXR1cm4gMDsKIH0KLQotCi1zdGF0aWMgc3RkOjpzdHJpbmcKLXJl
bW92ZVN1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAgICBjb25z
dCBzdGQ6OnN0cmluZyAmZXh0ZW5zaW9uICkKLXsKLSAgIGlmICggZXh0ZW5zaW9uLmxlbmd0aCgp
ID49IHBhdGgubGVuZ3RoKCkgKQotICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCIiKTsKLSAgIHN0
ZDo6c3RyaW5nIHN1ZmZpeCA9IHBhdGguc3Vic3RyKCBwYXRoLmxlbmd0aCgpIC0gZXh0ZW5zaW9u
Lmxlbmd0aCgpICk7Ci0gICBpZiAoIHN1ZmZpeCAhPSBleHRlbnNpb24gKQotICAgICAgcmV0dXJu
IHN0ZDo6c3RyaW5nKCIiKTsKLSAgIHJldHVybiBwYXRoLnN1YnN0ciggMCwgcGF0aC5sZW5ndGgo
KSAtIGV4dGVuc2lvbi5sZW5ndGgoKSApOworLy8gc3RhdGljIEpzb246OlN0cmluZyB1c2VGYXN0
V3JpdGVyKEpzb246OlZhbHVlIGNvbnN0JiByb290KSB7CisvLyAgIEpzb246OkZhc3RXcml0ZXIg
d3JpdGVyOworLy8gICB3cml0ZXIuZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKTsKKy8vICAgcmV0
dXJuIHdyaXRlci53cml0ZShyb290KTsKKy8vIH0KK3N0YXRpYyBKc29uOjpTdHJpbmcgdXNlU3R5
bGVkV3JpdGVyKEpzb246OlZhbHVlIGNvbnN0JiByb290KSB7CisgIEpzb246OlN0eWxlZFdyaXRl
ciB3cml0ZXI7CisgIHJldHVybiB3cml0ZXIud3JpdGUocm9vdCk7Cit9CitzdGF0aWMgSnNvbjo6
U3RyaW5nIHVzZVN0eWxlZFN0cmVhbVdyaXRlcihKc29uOjpWYWx1ZSBjb25zdCYgcm9vdCkgewor
ICBKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXIgd3JpdGVyOworICBKc29uOjpPU3RyaW5nU3RyZWFt
IHNvdXQ7CisgIHdyaXRlci53cml0ZShzb3V0LCByb290KTsKKyAgcmV0dXJuIHNvdXQuc3RyKCk7
Cit9CitzdGF0aWMgSnNvbjo6U3RyaW5nIHVzZUJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKEpzb246
OlZhbHVlIGNvbnN0JiByb290KSB7CisgIEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRl
cjsKKyAgcmV0dXJuIEpzb246OndyaXRlU3RyaW5nKGJ1aWxkZXIsIHJvb3QpOworfQorc3RhdGlj
IGludCByZXdyaXRlVmFsdWVUcmVlKGNvbnN0IEpzb246OlN0cmluZyYgcmV3cml0ZVBhdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6VmFsdWUmIHJvb3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9uczo6d3JpdGVGdW5jVHlwZSB3cml0ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBKc29uOjpTdHJpbmcqIHJld3JpdGUpIHsKKyAgKnJl
d3JpdGUgPSB3cml0ZShyb290KTsKKyAgRklMRSogZm91dCA9IGZvcGVuKHJld3JpdGVQYXRoLmNf
c3RyKCksICJ3dCIpOworICBpZiAoIWZvdXQpIHsKKyAgICBwcmludGYoIkZhaWxlZCB0byBjcmVh
dGUgcmV3cml0ZSBmaWxlOiAlc1xuIiwgcmV3cml0ZVBhdGguY19zdHIoKSk7CisgICAgcmV0dXJu
IDI7CisgIH0KKyAgZnByaW50Zihmb3V0LCAiJXNcbiIsIHJld3JpdGUtPmNfc3RyKCkpOworICBm
Y2xvc2UoZm91dCk7CisgIHJldHVybiAwOwogfQogCitzdGF0aWMgSnNvbjo6U3RyaW5nIHJlbW92
ZVN1ZmZpeChjb25zdCBKc29uOjpTdHJpbmcmIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBKc29uOjpTdHJpbmcmIGV4dGVuc2lvbikgeworICBpZiAoZXh0ZW5z
aW9uLmxlbmd0aCgpID49IHBhdGgubGVuZ3RoKCkpCisgICAgcmV0dXJuIEpzb246OlN0cmluZygi
Iik7CisgIEpzb246OlN0cmluZyBzdWZmaXggPSBwYXRoLnN1YnN0cihwYXRoLmxlbmd0aCgpIC0g
ZXh0ZW5zaW9uLmxlbmd0aCgpKTsKKyAgaWYgKHN1ZmZpeCAhPSBleHRlbnNpb24pCisgICAgcmV0
dXJuIEpzb246OlN0cmluZygiIik7CisgIHJldHVybiBwYXRoLnN1YnN0cigwLCBwYXRoLmxlbmd0
aCgpIC0gZXh0ZW5zaW9uLmxlbmd0aCgpKTsKK30KIAotc3RhdGljIHZvaWQKLXByaW50Q29uZmln
KCkKLXsKLSAgIC8vIFByaW50IHRoZSBjb25maWd1cmF0aW9uIHVzZWQgdG8gY29tcGlsZSBKc29u
Q3BwCitzdGF0aWMgdm9pZCBwcmludENvbmZpZygpIHsKKy8vIFByaW50IHRoZSBjb25maWd1cmF0
aW9uIHVzZWQgdG8gY29tcGlsZSBKc29uQ3BwCiAjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQot
ICAgcHJpbnRmKCAiSlNPTl9OT19JTlQ2ND0xXG4iICk7CisgIHByaW50ZigiSlNPTl9OT19JTlQ2
ND0xXG4iKTsKICNlbHNlCi0gICBwcmludGYoICJKU09OX05PX0lOVDY0PTBcbiIgKTsKKyAgcHJp
bnRmKCJKU09OX05PX0lOVDY0PTBcbiIpOwogI2VuZGlmCiB9CiAKLQotc3RhdGljIGludCAKLXBy
aW50VXNhZ2UoIGNvbnN0IGNoYXIgKmFyZ3ZbXSApCi17Ci0gICBwcmludGYoICJVc2FnZTogJXMg
Wy0tc3RyaWN0XSBpbnB1dC1qc29uLWZpbGUiLCBhcmd2WzBdICk7Ci0gICByZXR1cm4gMzsKK3N0
YXRpYyBpbnQgcHJpbnRVc2FnZShjb25zdCBjaGFyKiBhcmd2W10pIHsKKyAgcHJpbnRmKCJVc2Fn
ZTogJXMgWy0tc3RyaWN0XSBpbnB1dC1qc29uLWZpbGUiLCBhcmd2WzBdKTsKKyAgcmV0dXJuIDM7
CiB9CiAKLQotaW50Ci1wYXJzZUNvbW1hbmRMaW5lKCBpbnQgYXJnYywgY29uc3QgY2hhciAqYXJn
dltdLCAKLSAgICAgICAgICAgICAgICAgIEpzb246OkZlYXR1cmVzICZmZWF0dXJlcywgc3RkOjpz
dHJpbmcgJnBhdGgsCi0gICAgICAgICAgICAgICAgICBib29sICZwYXJzZU9ubHkgKQotewotICAg
cGFyc2VPbmx5ID0gZmFsc2U7Ci0gICBpZiAoIGFyZ2MgPCAyICkKLSAgIHsKLSAgICAgIHJldHVy
biBwcmludFVzYWdlKCBhcmd2ICk7Ci0gICB9Ci0KLSAgIGludCBpbmRleCA9IDE7Ci0gICBpZiAo
IHN0ZDo6c3RyaW5nKGFyZ3ZbMV0pID09ICItLWpzb24tY2hlY2tlciIgKQotICAgewotICAgICAg
ZmVhdHVyZXMgPSBKc29uOjpGZWF0dXJlczo6c3RyaWN0TW9kZSgpOwotICAgICAgcGFyc2VPbmx5
ID0gdHJ1ZTsKLSAgICAgICsraW5kZXg7Ci0gICB9Ci0KLSAgIGlmICggc3RkOjpzdHJpbmcoYXJn
dlsxXSkgPT0gIi0tanNvbi1jb25maWciICkKLSAgIHsKLSAgICAgIHByaW50Q29uZmlnKCk7Ci0g
ICAgICByZXR1cm4gMzsKLSAgIH0KLQotICAgaWYgKCBpbmRleCA9PSBhcmdjICB8fCAgaW5kZXgg
KyAxIDwgYXJnYyApCi0gICB7Ci0gICAgICByZXR1cm4gcHJpbnRVc2FnZSggYXJndiApOwotICAg
fQotCi0gICBwYXRoID0gYXJndltpbmRleF07Ci0gICByZXR1cm4gMDsKK3N0YXRpYyBpbnQgcGFy
c2VDb21tYW5kTGluZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdLCBPcHRpb25zKiBvcHRz
KSB7CisgIG9wdHMtPnBhcnNlT25seSA9IGZhbHNlOworICBvcHRzLT53cml0ZSA9ICZ1c2VTdHls
ZWRXcml0ZXI7CisgIGlmIChhcmdjIDwgMikgeworICAgIHJldHVybiBwcmludFVzYWdlKGFyZ3Yp
OworICB9CisgIGludCBpbmRleCA9IDE7CisgIGlmIChKc29uOjpTdHJpbmcoYXJndltpbmRleF0p
ID09ICItLWpzb24tY2hlY2tlciIpIHsKKyAgICBvcHRzLT5mZWF0dXJlcyA9IEpzb246OkZlYXR1
cmVzOjpzdHJpY3RNb2RlKCk7CisgICAgb3B0cy0+cGFyc2VPbmx5ID0gdHJ1ZTsKKyAgICArK2lu
ZGV4OworICB9CisgIGlmIChKc29uOjpTdHJpbmcoYXJndltpbmRleF0pID09ICItLWpzb24tY29u
ZmlnIikgeworICAgIHByaW50Q29uZmlnKCk7CisgICAgcmV0dXJuIDM7CisgIH0KKyAgaWYgKEpz
b246OlN0cmluZyhhcmd2W2luZGV4XSkgPT0gIi0tanNvbi13cml0ZXIiKSB7CisgICAgKytpbmRl
eDsKKyAgICBKc29uOjpTdHJpbmcgY29uc3Qgd3JpdGVyTmFtZShhcmd2W2luZGV4KytdKTsKKyAg
ICBpZiAod3JpdGVyTmFtZSA9PSAiU3R5bGVkV3JpdGVyIikgeworICAgICAgb3B0cy0+d3JpdGUg
PSAmdXNlU3R5bGVkV3JpdGVyOworICAgIH0gZWxzZSBpZiAod3JpdGVyTmFtZSA9PSAiU3R5bGVk
U3RyZWFtV3JpdGVyIikgeworICAgICAgb3B0cy0+d3JpdGUgPSAmdXNlU3R5bGVkU3RyZWFtV3Jp
dGVyOworICAgIH0gZWxzZSBpZiAod3JpdGVyTmFtZSA9PSAiQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXIiKSB7CisgICAgICBvcHRzLT53cml0ZSA9ICZ1c2VCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjsK
KyAgICB9IGVsc2UgeworICAgICAgcHJpbnRmKCJVbmtub3duICctLWpzb24td3JpdGVyICVzJ1xu
Iiwgd3JpdGVyTmFtZS5jX3N0cigpKTsKKyAgICAgIHJldHVybiA0OworICAgIH0KKyAgfQorICBp
ZiAoaW5kZXggPT0gYXJnYyB8fCBpbmRleCArIDEgPCBhcmdjKSB7CisgICAgcmV0dXJuIHByaW50
VXNhZ2UoYXJndik7CisgIH0KKyAgb3B0cy0+cGF0aCA9IGFyZ3ZbaW5kZXhdOworICByZXR1cm4g
MDsKIH0KLQotCi1pbnQgbWFpbiggaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSApCi17Ci0g
ICBzdGQ6OnN0cmluZyBwYXRoOwotICAgSnNvbjo6RmVhdHVyZXMgZmVhdHVyZXM7Ci0gICBib29s
IHBhcnNlT25seTsKLSAgIGludCBleGl0Q29kZSA9IHBhcnNlQ29tbWFuZExpbmUoIGFyZ2MsIGFy
Z3YsIGZlYXR1cmVzLCBwYXRoLCBwYXJzZU9ubHkgKTsKLSAgIGlmICggZXhpdENvZGUgIT0gMCAp
Ci0gICB7CitzdGF0aWMgaW50IHJ1blRlc3QoT3B0aW9ucyBjb25zdCYgb3B0cykgeworICBpbnQg
ZXhpdENvZGUgPSAwOworCisgIEpzb246OlN0cmluZyBpbnB1dCA9IHJlYWRJbnB1dFRlc3RGaWxl
KG9wdHMucGF0aC5jX3N0cigpKTsKKyAgaWYgKGlucHV0LmVtcHR5KCkpIHsKKyAgICBwcmludGYo
IkZhaWxlZCB0byByZWFkIGlucHV0IG9yIGVtcHR5IGlucHV0OiAlc1xuIiwgb3B0cy5wYXRoLmNf
c3RyKCkpOworICAgIHJldHVybiAzOworICB9CisKKyAgSnNvbjo6U3RyaW5nIGJhc2VQYXRoID0g
cmVtb3ZlU3VmZml4KG9wdHMucGF0aCwgIi5qc29uIik7CisgIGlmICghb3B0cy5wYXJzZU9ubHkg
JiYgYmFzZVBhdGguZW1wdHkoKSkgeworICAgIHByaW50ZigiQmFkIGlucHV0IHBhdGguIFBhdGgg
ZG9lcyBub3QgZW5kIHdpdGggJy5leHBlY3RlZCc6XG4lc1xuIiwKKyAgICAgICAgICAgb3B0cy5w
YXRoLmNfc3RyKCkpOworICAgIHJldHVybiAzOworICB9CisKKyAgSnNvbjo6U3RyaW5nIGNvbnN0
IGFjdHVhbFBhdGggPSBiYXNlUGF0aCArICIuYWN0dWFsIjsKKyAgSnNvbjo6U3RyaW5nIGNvbnN0
IHJld3JpdGVQYXRoID0gYmFzZVBhdGggKyAiLnJld3JpdGUiOworICBKc29uOjpTdHJpbmcgY29u
c3QgcmV3cml0ZUFjdHVhbFBhdGggPSBiYXNlUGF0aCArICIuYWN0dWFsLXJld3JpdGUiOworCisg
IEpzb246OlZhbHVlIHJvb3Q7CisgIGV4aXRDb2RlID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKGlu
cHV0LCBhY3R1YWxQYXRoLCAiaW5wdXQiLCBvcHRzLmZlYXR1cmVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRzLnBhcnNlT25seSwgJnJvb3QpOworICBpZiAoZXhpdENv
ZGUgfHwgb3B0cy5wYXJzZU9ubHkpIHsKKyAgICByZXR1cm4gZXhpdENvZGU7CisgIH0KKyAgSnNv
bjo6U3RyaW5nIHJld3JpdGU7CisgIGV4aXRDb2RlID0gcmV3cml0ZVZhbHVlVHJlZShyZXdyaXRl
UGF0aCwgcm9vdCwgb3B0cy53cml0ZSwgJnJld3JpdGUpOworICBpZiAoZXhpdENvZGUpIHsKKyAg
ICByZXR1cm4gZXhpdENvZGU7CisgIH0KKyAgSnNvbjo6VmFsdWUgcmV3cml0ZVJvb3Q7CisgIGV4
aXRDb2RlID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKHJld3JpdGUsIHJld3JpdGVBY3R1YWxQYXRo
LCAicmV3cml0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZmVh
dHVyZXMsIG9wdHMucGFyc2VPbmx5LCAmcmV3cml0ZVJvb3QpOworICBpZiAoZXhpdENvZGUpIHsK
KyAgICByZXR1cm4gZXhpdENvZGU7CisgIH0KKyAgcmV0dXJuIDA7Cit9CitpbnQgbWFpbihpbnQg
YXJnYywgY29uc3QgY2hhciogYXJndltdKSB7CisgIE9wdGlvbnMgb3B0czsKKyAgdHJ5IHsKKyAg
ICBpbnQgZXhpdENvZGUgPSBwYXJzZUNvbW1hbmRMaW5lKGFyZ2MsIGFyZ3YsICZvcHRzKTsKKyAg
ICBpZiAoZXhpdENvZGUgIT0gMCkgeworICAgICAgcHJpbnRmKCJGYWlsZWQgdG8gcGFyc2UgY29t
bWFuZC1saW5lLiIpOwogICAgICAgcmV0dXJuIGV4aXRDb2RlOwotICAgfQotCi0gICB0cnkKLSAg
IHsKLSAgICAgIHN0ZDo6c3RyaW5nIGlucHV0ID0gcmVhZElucHV0VGVzdEZpbGUoIHBhdGguY19z
dHIoKSApOwotICAgICAgaWYgKCBpbnB1dC5lbXB0eSgpICkKLSAgICAgIHsKLSAgICAgICAgIHBy
aW50ZiggIkZhaWxlZCB0byByZWFkIGlucHV0IG9yIGVtcHR5IGlucHV0OiAlc1xuIiwgcGF0aC5j
X3N0cigpICk7Ci0gICAgICAgICByZXR1cm4gMzsKLSAgICAgIH0KLQotICAgICAgc3RkOjpzdHJp
bmcgYmFzZVBhdGggPSByZW1vdmVTdWZmaXgoIGFyZ3ZbMV0sICIuanNvbiIgKTsKLSAgICAgIGlm
ICggIXBhcnNlT25seSAgJiYgIGJhc2VQYXRoLmVtcHR5KCkgKQotICAgICAgewotICAgICAgICAg
cHJpbnRmKCAiQmFkIGlucHV0IHBhdGguIFBhdGggZG9lcyBub3QgZW5kIHdpdGggJy5leHBlY3Rl
ZCc6XG4lc1xuIiwgcGF0aC5jX3N0cigpICk7Ci0gICAgICAgICByZXR1cm4gMzsKLSAgICAgIH0K
LQotICAgICAgc3RkOjpzdHJpbmcgYWN0dWFsUGF0aCA9IGJhc2VQYXRoICsgIi5hY3R1YWwiOwot
ICAgICAgc3RkOjpzdHJpbmcgcmV3cml0ZVBhdGggPSBiYXNlUGF0aCArICIucmV3cml0ZSI7Ci0g
ICAgICBzdGQ6OnN0cmluZyByZXdyaXRlQWN0dWFsUGF0aCA9IGJhc2VQYXRoICsgIi5hY3R1YWwt
cmV3cml0ZSI7Ci0KLSAgICAgIEpzb246OlZhbHVlIHJvb3Q7Ci0gICAgICBleGl0Q29kZSA9IHBh
cnNlQW5kU2F2ZVZhbHVlVHJlZSggaW5wdXQsIGFjdHVhbFBhdGgsICJpbnB1dCIsIHJvb3QsIGZl
YXR1cmVzLCBwYXJzZU9ubHkgKTsKLSAgICAgIGlmICggZXhpdENvZGUgPT0gMCAgJiYgICFwYXJz
ZU9ubHkgKQotICAgICAgewotICAgICAgICAgc3RkOjpzdHJpbmcgcmV3cml0ZTsKLSAgICAgICAg
IGV4aXRDb2RlID0gcmV3cml0ZVZhbHVlVHJlZSggcmV3cml0ZVBhdGgsIHJvb3QsIHJld3JpdGUg
KTsKLSAgICAgICAgIGlmICggZXhpdENvZGUgPT0gMCApCi0gICAgICAgICB7Ci0gICAgICAgICAg
ICBKc29uOjpWYWx1ZSByZXdyaXRlUm9vdDsKLSAgICAgICAgICAgIGV4aXRDb2RlID0gcGFyc2VB
bmRTYXZlVmFsdWVUcmVlKCByZXdyaXRlLCByZXdyaXRlQWN0dWFsUGF0aCwgCi0gICAgICAgICAg
ICAgICAicmV3cml0ZSIsIHJld3JpdGVSb290LCBmZWF0dXJlcywgcGFyc2VPbmx5ICk7Ci0gICAg
ICAgICB9Ci0gICAgICB9Ci0gICB9Ci0gICBjYXRjaCAoIGNvbnN0IHN0ZDo6ZXhjZXB0aW9uICZl
ICkKLSAgIHsKLSAgICAgIHByaW50ZiggIlVuaGFuZGxlZCBleGNlcHRpb246XG4lc1xuIiwgZS53
aGF0KCkgKTsKLSAgICAgIGV4aXRDb2RlID0gMTsKLSAgIH0KLQotICAgcmV0dXJuIGV4aXRDb2Rl
OworICAgIH0KKyAgICByZXR1cm4gcnVuVGVzdChvcHRzKTsKKyAgfSBjYXRjaCAoY29uc3Qgc3Rk
OjpleGNlcHRpb24mIGUpIHsKKyAgICBwcmludGYoIlVuaGFuZGxlZCBleGNlcHRpb246XG4lc1xu
IiwgZS53aGF0KCkpOworICAgIHJldHVybiAxOworICB9CiB9CiAKKyNpZiBkZWZpbmVkKF9fR05V
Q19fKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9zcmMvanNvbnRlc3RydW5uZXIvc2NvbnNjcmlwdCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2pzb250ZXN0cnVubmVy
L3Njb25zY3JpcHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNjhlMzE1MzNlZjQz
ZTA3YmJkZTM5NzlhNzg5NmU1ZjZmMmEzYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvanNvbnRlc3RydW5uZXIvc2NvbnNjcmlwdAorKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotSW1wb3J0KCAnZW52X3Rlc3RpbmcgYnVpbGRKU09O
VGVzdHMnICkKLQotYnVpbGRKU09OVGVzdHMoIGVudl90ZXN0aW5nLCBTcGxpdCggIiIiCi0gICAg
bWFpbi5jcHAKLSAgICAgIiIiICksCi0gICAgJ2pzb250ZXN0cnVubmVyJyApCi0KLSMgRm9yICdj
aGVjaycgdG8gd29yaywgJ2xpYnMnIG11c3QgYmUgYnVpbHQgZmlyc3QuCi1lbnZfdGVzdGluZy5E
ZXBlbmRzKCdqc29udGVzdHJ1bm5lcicsICcjbGlicycpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9s
aWJfanNvbi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL0NNYWtlTGlzdHMudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzOTIwOTJhZjdhNWU0ZmNlZjdiNGM0OWIzYzU3MmViNDVmZGRkMGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9DTWFrZUxpc3RzLnR4dApAQCAtMCww
ICsxLDE0NiBAQAoraWYoIENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCApCisgICAgI0dldCBjb21w
aWxlciB2ZXJzaW9uLgorICAgIGV4ZWN1dGVfcHJvY2VzcyggQ09NTUFORCAke0NNQUtFX0NYWF9D
T01QSUxFUn0gLWR1bXB2ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgICBPVVRQVVRfVkFSSUFC
TEUgR05VQ1hYX1ZFUlNJT04gKQorCisgICAgIy1XZXJyb3I9KiB3YXMgaW50cm9kdWNlZCAtYWZ0
ZXItIEdDQyA0LjEuMgorICAgIGlmKCBHTlVDWFhfVkVSU0lPTiBWRVJTSU9OX0dSRUFURVIgNC4x
LjIgKQorICAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLVdl
cnJvcj1zdHJpY3QtYWxpYXNpbmciKQorICAgIGVuZGlmKCkKK2VuZGlmKCBDTUFLRV9DT01QSUxF
Ul9JU19HTlVDWFggKQorCitpbmNsdWRlKENoZWNrSW5jbHVkZUZpbGVDWFgpCitpbmNsdWRlKENo
ZWNrVHlwZVNpemUpCitpbmNsdWRlKENoZWNrU3RydWN0SGFzTWVtYmVyKQoraW5jbHVkZShDaGVj
a0NYWFN5bWJvbEV4aXN0cykKKworY2hlY2tfaW5jbHVkZV9maWxlX2N4eChjbG9jYWxlIEhBVkVf
Q0xPQ0FMRSkKK2NoZWNrX2N4eF9zeW1ib2xfZXhpc3RzKGxvY2FsZWNvbnYgY2xvY2FsZSBIQVZF
X0xPQ0FMRUNPTlYpCisKK2lmKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9MRVNTIDMuMC4wKQorICAg
ICMgVGhlICJMQU5HVUFHRSBDWFgiIHBhcmFtZXRlciBpcyBub3Qgc3VwcG9ydGVkIGluIENNYWtl
IHZlcnNpb25zIGJlbG93IDMsCisgICAgIyBzbyB0aGUgQyBjb21waWxlciBhbmQgaGVhZGVyIGhh
cyB0byBiZSB1c2VkLgorICAgIGNoZWNrX2luY2x1ZGVfZmlsZShsb2NhbGUuaCBIQVZFX0xPQ0FM
RV9IKQorICAgIHNldChDTUFLRV9FWFRSQV9JTkNMVURFX0ZJTEVTIGxvY2FsZS5oKQorICAgIGNo
ZWNrX3R5cGVfc2l6ZSgic3RydWN0IGxjb252IiBMQ09OVl9TSVpFKQorICAgIHVuc2V0KENNQUtF
X0VYVFJBX0lOQ0xVREVfRklMRVMpCisgICAgY2hlY2tfc3RydWN0X2hhc19tZW1iZXIoInN0cnVj
dCBsY29udiIgZGVjaW1hbF9wb2ludCBsb2NhbGUuaCBIQVZFX0RFQ0lNQUxfUE9JTlQpCitlbHNl
KCkKKyAgICBzZXQoQ01BS0VfRVhUUkFfSU5DTFVERV9GSUxFUyBjbG9jYWxlKQorICAgIGNoZWNr
X3R5cGVfc2l6ZShsY29udiBMQ09OVl9TSVpFIExBTkdVQUdFIENYWCkKKyAgICB1bnNldChDTUFL
RV9FWFRSQV9JTkNMVURFX0ZJTEVTKQorICAgIGNoZWNrX3N0cnVjdF9oYXNfbWVtYmVyKGxjb252
IGRlY2ltYWxfcG9pbnQgY2xvY2FsZSBIQVZFX0RFQ0lNQUxfUE9JTlQgTEFOR1VBR0UgQ1hYKQor
ZW5kaWYoKQorCitpZihOT1QgKEhBVkVfQ0xPQ0FMRSBBTkQgSEFWRV9MQ09OVl9TSVpFIEFORCBI
QVZFX0RFQ0lNQUxfUE9JTlQgQU5EIEhBVkVfTE9DQUxFQ09OVikpCisgICAgbWVzc2FnZShXQVJO
SU5HICJMb2NhbGUgZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkIikKKyAgICBhZGRfY29t
cGlsZV9kZWZpbml0aW9ucyhKU09OQ1BQX05PX0xPQ0FMRV9TVVBQT1JUKQorZW5kaWYoKQorCitz
ZXQoIEpTT05DUFBfSU5DTFVERV9ESVIgLi4vLi4vaW5jbHVkZSApCisKK3NldCggUFVCTElDX0hF
QURFUlMKKyAgICAke0pTT05DUFBfSU5DTFVERV9ESVJ9L2pzb24vY29uZmlnLmgKKyAgICAke0pT
T05DUFBfSU5DTFVERV9ESVJ9L2pzb24vZm9yd2FyZHMuaAorICAgICR7SlNPTkNQUF9JTkNMVURF
X0RJUn0vanNvbi9mZWF0dXJlcy5oCisgICAgJHtKU09OQ1BQX0lOQ0xVREVfRElSfS9qc29uL3Zh
bHVlLmgKKyAgICAke0pTT05DUFBfSU5DTFVERV9ESVJ9L2pzb24vcmVhZGVyLmgKKyAgICAke0pT
T05DUFBfSU5DTFVERV9ESVJ9L2pzb24vd3JpdGVyLmgKKyAgICAke0pTT05DUFBfSU5DTFVERV9E
SVJ9L2pzb24vYXNzZXJ0aW9ucy5oCisgICAgJHtQUk9KRUNUX0JJTkFSWV9ESVJ9L2luY2x1ZGUv
anNvbi92ZXJzaW9uLmgKKyAgICApCisKK3NvdXJjZV9ncm91cCggIlB1YmxpYyBBUEkiIEZJTEVT
ICR7UFVCTElDX0hFQURFUlN9ICkKKworc2V0KGpzb25jcHBfc291cmNlcworICAgICAgICAgICAg
ICAgIGpzb25fdG9vbC5oCisgICAgICAgICAgICAgICAganNvbl9yZWFkZXIuY3BwCisgICAgICAg
ICAgICAgICAganNvbl92YWx1ZWl0ZXJhdG9yLmlubAorICAgICAgICAgICAgICAgIGpzb25fdmFs
dWUuY3BwCisgICAgICAgICAgICAgICAganNvbl93cml0ZXIuY3BwCisgICAgICAgICAgICAgICAg
dmVyc2lvbi5oLmluKQorCisjIEluc3RhbGwgaW5zdHJ1Y3Rpb25zIGZvciB0aGlzIHRhcmdldAor
aWYoSlNPTkNQUF9XSVRIX0NNQUtFX1BBQ0tBR0UpCisgICAgc2V0KElOU1RBTExfRVhQT1JUIEVY
UE9SVCBqc29uY3BwKQorZWxzZShKU09OQ1BQX1dJVEhfQ01BS0VfUEFDS0FHRSkKKyAgICBzZXQo
SU5TVEFMTF9FWFBPUlQpCitlbmRpZigpCisKK2lmKEJVSUxEX1NIQVJFRF9MSUJTKQorICAgIGFk
ZF9jb21waWxlX2RlZmluaXRpb25zKCBKU09OX0RMTF9CVUlMRCApCitlbmRpZigpCisKKworYWRk
X2xpYnJhcnkoanNvbmNwcF9saWIgJHtQVUJMSUNfSEVBREVSU30gJHtqc29uY3BwX3NvdXJjZXN9
KQorc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCBqc29uY3BwX2xpYiBQUk9QRVJUSUVTIFZFUlNJT04g
JHtKU09OQ1BQX1ZFUlNJT059IFNPVkVSU0lPTiAke0pTT05DUFBfU09WRVJTSU9OfSkKK3NldF90
YXJnZXRfcHJvcGVydGllcygganNvbmNwcF9saWIgUFJPUEVSVElFUyBPVVRQVVRfTkFNRSBqc29u
Y3BwCisgICAgICAgICAgICAgICAgICAgICAgICBERUJVR19PVVRQVVRfTkFNRSBqc29uY3BwJHtE
RUJVR19MSUJOQU1FX1NVRkZJWH0gKQorc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCBqc29uY3BwX2xp
YiBQUk9QRVJUSUVTIFBPU0lUSU9OX0lOREVQRU5ERU5UX0NPREUgT04pCisKKyMgU2V0IGxpYnJh
cnkncyBydW50aW1lIHNlYXJjaCBwYXRoIG9uIE9TWAoraWYoQVBQTEUpCisgICAgc2V0X3Rhcmdl
dF9wcm9wZXJ0aWVzKCBqc29uY3BwX2xpYiBQUk9QRVJUSUVTIElOU1RBTExfUlBBVEggIkBsb2Fk
ZXJfcGF0aC8uIiApCitlbmRpZigpCisKKyMgU3BlY2lmeSBjb21waWxlciBmZWF0dXJlcyByZXF1
aXJlZCB3aGVuIGNvbXBpbGluZyBhIGdpdmVuIHRhcmdldC4KKyMgU2VlIGh0dHBzOi8vY21ha2Uu
b3JnL2NtYWtlL2hlbHAvdjMuMS9wcm9wX2dibC9DTUFLRV9DWFhfS05PV05fRkVBVFVSRVMuaHRt
bCNwcm9wX2dibDpDTUFLRV9DWFhfS05PV05fRkVBVFVSRVMKKyMgZm9yIGNvbXBsZXRlIGxpc3Qg
b2YgZmVhdHVyZXMgYXZhaWxhYmxlCit0YXJnZXRfY29tcGlsZV9mZWF0dXJlcyhqc29uY3BwX2xp
YiBQVUJMSUMKKyAgICAgICAgY3h4X3N0ZF8xMSAjIENvbXBpbGVyIG1vZGUgaXMgYXdhcmUgb2Yg
QysrIDExLgorICAgICAgICAjTVNWQyAxOTAwIGN4eF9hbGlnbmFzICMgQWxpZ25tZW50IGNvbnRy
b2wgYWxpZ25hcywgYXMgZGVmaW5lZCBpbiBOMjM0MS4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhf
YWxpZ25vZiAjIEFsaWdubWVudCBjb250cm9sIGFsaWdub2YsIGFzIGRlZmluZWQgaW4gTjIzNDEu
CisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2F0dHJpYnV0ZXMgIyBHZW5lcmljIGF0dHJpYnV0ZXMs
IGFzIGRlZmluZWQgaW4gTjI3NjEuCisgICAgICAgIGN4eF9hdXRvX3R5cGUgIyBBdXRvbWF0aWMg
dHlwZSBkZWR1Y3Rpb24sIGFzIGRlZmluZWQgaW4gTjE5ODQuCisgICAgICAgICNNU1ZDIDE5MDAg
Y3h4X2NvbnN0ZXhwciAjIENvbnN0YW50IGV4cHJlc3Npb25zLCBhcyBkZWZpbmVkIGluIE4yMjM1
LgorICAgICAgICBjeHhfZGVjbHR5cGUgIyBEZWNsdHlwZSwgYXMgZGVmaW5lZCBpbiBOMjM0My4K
KyAgICAgICAgY3h4X2RlZmF1bHRfZnVuY3Rpb25fdGVtcGxhdGVfYXJncyAjIERlZmF1bHQgdGVt
cGxhdGUgYXJndW1lbnRzIGZvciBmdW5jdGlvbiB0ZW1wbGF0ZXMsIGFzIGRlZmluZWQgaW4gRFIy
MjYKKyAgICAgICAgY3h4X2RlZmF1bHRlZF9mdW5jdGlvbnMgIyBEZWZhdWx0ZWQgZnVuY3Rpb25z
LCBhcyBkZWZpbmVkIGluIE4yMzQ2LgorICAgICAgICAjTVNWQyAxOTAwIGN4eF9kZWZhdWx0ZWRf
bW92ZV9pbml0aWFsaXplcnMgIyBEZWZhdWx0ZWQgbW92ZSBpbml0aWFsaXplcnMsIGFzIGRlZmlu
ZWQgaW4gTjMwNTMuCisgICAgICAgIGN4eF9kZWxlZ2F0aW5nX2NvbnN0cnVjdG9ycyAjIERlbGVn
YXRpbmcgY29uc3RydWN0b3JzLCBhcyBkZWZpbmVkIGluIE4xOTg2LgorICAgICAgICAjTVNWQyAx
OTAwIGN4eF9kZWxldGVkX2Z1bmN0aW9ucyAjIERlbGV0ZWQgZnVuY3Rpb25zLCBhcyBkZWZpbmVk
IGluIE4yMzQ2LgorICAgICAgICBjeHhfZW51bV9mb3J3YXJkX2RlY2xhcmF0aW9ucyAjIEVudW0g
Zm9yd2FyZCBkZWNsYXJhdGlvbnMsIGFzIGRlZmluZWQgaW4gTjI3NjQuCisgICAgICAgIGN4eF9l
eHBsaWNpdF9jb252ZXJzaW9ucyAjIEV4cGxpY2l0IGNvbnZlcnNpb24gb3BlcmF0b3JzLCBhcyBk
ZWZpbmVkIGluIE4yNDM3LgorICAgICAgICBjeHhfZXh0ZW5kZWRfZnJpZW5kX2RlY2xhcmF0aW9u
cyAjIEV4dGVuZGVkIGZyaWVuZCBkZWNsYXJhdGlvbnMsIGFzIGRlZmluZWQgaW4gTjE3OTEuCisg
ICAgICAgIGN4eF9leHRlcm5fdGVtcGxhdGVzICMgRXh0ZXJuIHRlbXBsYXRlcywgYXMgZGVmaW5l
ZCBpbiBOMTk4Ny4KKyAgICAgICAgY3h4X2ZpbmFsICMgT3ZlcnJpZGUgY29udHJvbCBmaW5hbCBr
ZXl3b3JkLCBhcyBkZWZpbmVkIGluIE4yOTI4LCBOMzIwNiBhbmQgTjMyNzIuCisgICAgICAgICNN
U1ZDIDE5MDAgY3h4X2Z1bmNfaWRlbnRpZmllciAjIFByZWRlZmluZWQgX19mdW5jX18gaWRlbnRp
ZmllciwgYXMgZGVmaW5lZCBpbiBOMjM0MC4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhfZ2VuZXJh
bGl6ZWRfaW5pdGlhbGl6ZXJzICMgSW5pdGlhbGl6ZXIgbGlzdHMsIGFzIGRlZmluZWQgaW4gTjI2
NzIuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X2luaGVyaXRpbmdfY29uc3RydWN0b3JzICMgSW5o
ZXJpdGluZyBjb25zdHJ1Y3RvcnMsIGFzIGRlZmluZWQgaW4gTjI1NDAuCisgICAgICAgICNNU1ZD
IDE5MDAgY3h4X2lubGluZV9uYW1lc3BhY2VzICMgSW5saW5lIG5hbWVzcGFjZXMsIGFzIGRlZmlu
ZWQgaW4gTjI1MzUuCisgICAgICAgIGN4eF9sYW1iZGFzICMgTGFtYmRhIGZ1bmN0aW9ucywgYXMg
ZGVmaW5lZCBpbiBOMjkyNy4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhfbG9jYWxfdHlwZV90ZW1w
bGF0ZV9hcmdzICMgTG9jYWwgYW5kIHVubmFtZWQgdHlwZXMgYXMgdGVtcGxhdGUgYXJndW1lbnRz
LCBhcyBkZWZpbmVkIGluIE4yNjU3LgorICAgICAgICBjeHhfbG9uZ19sb25nX3R5cGUgIyBsb25n
IGxvbmcgdHlwZSwgYXMgZGVmaW5lZCBpbiBOMTgxMS4KKyAgICAgICAgI01TVkMgMTkwMCBjeHhf
bm9leGNlcHQgIyBFeGNlcHRpb24gc3BlY2lmaWNhdGlvbnMsIGFzIGRlZmluZWQgaW4gTjMwNTAu
CisgICAgICAgICNNU1ZDIDE5MDAgY3h4X25vbnN0YXRpY19tZW1iZXJfaW5pdCAjIE5vbi1zdGF0
aWMgZGF0YSBtZW1iZXIgaW5pdGlhbGl6YXRpb24sIGFzIGRlZmluZWQgaW4gTjI3NTYuCisgICAg
ICAgIGN4eF9udWxscHRyICMgTnVsbCBwb2ludGVyLCBhcyBkZWZpbmVkIGluIE4yNDMxLgorICAg
ICAgICBjeHhfb3ZlcnJpZGUgIyBPdmVycmlkZSBjb250cm9sIG92ZXJyaWRlIGtleXdvcmQsIGFz
IGRlZmluZWQgaW4gTjI5MjgsIE4zMjA2IGFuZCBOMzI3Mi4KKyAgICAgICAgY3h4X3JhbmdlX2Zv
ciAjIFJhbmdlLWJhc2VkIGZvciwgYXMgZGVmaW5lZCBpbiBOMjkzMC4KKyAgICAgICAgY3h4X3Jh
d19zdHJpbmdfbGl0ZXJhbHMgIyBSYXcgc3RyaW5nIGxpdGVyYWxzLCBhcyBkZWZpbmVkIGluIE4y
NDQyLgorICAgICAgICAjTVNWQyAxOTAwIGN4eF9yZWZlcmVuY2VfcXVhbGlmaWVkX2Z1bmN0aW9u
cyAjIFJlZmVyZW5jZSBxdWFsaWZpZWQgZnVuY3Rpb25zLCBhcyBkZWZpbmVkIGluIE4yNDM5Lgor
ICAgICAgICBjeHhfcmlnaHRfYW5nbGVfYnJhY2tldHMgIyBSaWdodCBhbmdsZSBicmFja2V0IHBh
cnNpbmcsIGFzIGRlZmluZWQgaW4gTjE3NTcuCisgICAgICAgIGN4eF9ydmFsdWVfcmVmZXJlbmNl
cyAjIFItdmFsdWUgcmVmZXJlbmNlcywgYXMgZGVmaW5lZCBpbiBOMjExOC4KKyAgICAgICAgI01T
VkMgMTkwMCBjeHhfc2l6ZW9mX21lbWJlciAjIFNpemUgb2Ygbm9uLXN0YXRpYyBkYXRhIG1lbWJl
cnMsIGFzIGRlZmluZWQgaW4gTjIyNTMuCisgICAgICAgIGN4eF9zdGF0aWNfYXNzZXJ0ICMgU3Rh
dGljIGFzc2VydCwgYXMgZGVmaW5lZCBpbiBOMTcyMC4KKyAgICAgICAgY3h4X3N0cm9uZ19lbnVt
cyAjIFN0cm9uZ2x5IHR5cGVkIGVudW1zLCBhcyBkZWZpbmVkIGluIE4yMzQ3LgorICAgICAgICAj
TVNWQyAxOTAwIGN4eF90aHJlYWRfbG9jYWwgIyBUaHJlYWQtbG9jYWwgdmFyaWFibGVzLCBhcyBk
ZWZpbmVkIGluIE4yNjU5LgorICAgICAgICBjeHhfdHJhaWxpbmdfcmV0dXJuX3R5cGVzICMgQXV0
b21hdGljIGZ1bmN0aW9uIHJldHVybiB0eXBlLCBhcyBkZWZpbmVkIGluIE4yNTQxLgorICAgICAg
ICAjTVNWQyAxOTAwIGN4eF91bmljb2RlX2xpdGVyYWxzICMgVW5pY29kZSBzdHJpbmcgbGl0ZXJh
bHMsIGFzIGRlZmluZWQgaW4gTjI0NDIuCisgICAgICAgIGN4eF91bmlmb3JtX2luaXRpYWxpemF0
aW9uICMgVW5pZm9ybSBpbml0aWFsaXphdGlvbiwgYXMgZGVmaW5lZCBpbiBOMjY0MC4KKyAgICAg
ICAgI01TVkMgMTkwMCBjeHhfdW5yZXN0cmljdGVkX3VuaW9ucyAjIFVucmVzdHJpY3RlZCB1bmlv
bnMsIGFzIGRlZmluZWQgaW4gTjI1NDQuCisgICAgICAgICNNU1ZDIDE5MDAgY3h4X3VzZXJfbGl0
ZXJhbHMgIyBVc2VyLWRlZmluZWQgbGl0ZXJhbHMsIGFzIGRlZmluZWQgaW4gTjI3NjUuCisgICAg
ICAgIGN4eF92YXJpYWRpY19tYWNyb3MgIyBWYXJpYWRpYyBtYWNyb3MsIGFzIGRlZmluZWQgaW4g
TjE2NTMuCisgICAgICAgIGN4eF92YXJpYWRpY190ZW1wbGF0ZXMgIyBWYXJpYWRpYyB0ZW1wbGF0
ZXMsIGFzIGRlZmluZWQgaW4gTjIyNDIuCispCisKK2luc3RhbGwoIFRBUkdFVFMganNvbmNwcF9s
aWIgJHtJTlNUQUxMX0VYUE9SVH0KKyAgICAgICAgICBSVU5USU1FIERFU1RJTkFUSU9OICR7Q01B
S0VfSU5TVEFMTF9CSU5ESVJ9CisgICAgICAgICAgTElCUkFSWSBERVNUSU5BVElPTiAke0NNQUtF
X0lOU1RBTExfTElCRElSfQorICAgICAgICAgIEFSQ0hJVkUgREVTVElOQVRJT04gJHtDTUFLRV9J
TlNUQUxMX0xJQkRJUn0pCisKK2lmKE5PVCBDTUFLRV9WRVJTSU9OIFZFUlNJT05fTEVTUyAyLjgu
MTEpCisgICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoIGpzb25jcHBfbGliIFBVQkxJQwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkPElOU1RBTExfSU5URVJGQUNFOiR7Q01B
S0VfSU5TVEFMTF9JTkNMVURFRElSfT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX0xJU1RfRElSfS8ke0pTT05DUFBfSU5D
TFVERV9ESVJ9PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkPEJVSUxEX0lOVEVS
RkFDRToke1BST0pFQ1RfQklOQVJZX0RJUn0vaW5jbHVkZS9qc29uPikKK2VuZGlmKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fYmF0Y2hhbGxvY2F0b3IuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3Jj
L2xpYl9qc29uL2pzb25fYmF0Y2hhbGxvY2F0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMmE3YzAyNDE3MWM3OThhZjM1YWY1ZTI4N2Q0NmZhYzAzY2UwOWE3OC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9q
c29uX2JhdGNoYWxsb2NhdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVu
ZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNv
Z25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0
YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQot
I2lmbmRlZiBKU09OQ1BQX0JBVENIQUxMT0NBVE9SX0hfSU5DTFVERUQKLSMgZGVmaW5lIEpTT05D
UFBfQkFUQ0hBTExPQ0FUT1JfSF9JTkNMVURFRAotCi0jIGluY2x1ZGUgPHN0ZGxpYi5oPgotIyBp
bmNsdWRlIDxhc3NlcnQuaD4KLQotIyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1F
TlRBVElPTgotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8qIEZhc3QgbWVtb3J5IGFsbG9jYXRvci4K
LSAqCi0gKiBUaGlzIG1lbW9yeSBhbGxvY2F0b3IgYWxsb2NhdGVzIG1lbW9yeSBmb3IgYSBiYXRj
aCBvZiBvYmplY3QgKHNwZWNpZmllZCBieQotICogdGhlIHBhZ2Ugc2l6ZSwgdGhlIG51bWJlciBv
ZiBvYmplY3QgaW4gZWFjaCBwYWdlKS4KLSAqCi0gKiBJdCBkb2VzIG5vdCBhbGxvdyB0aGUgZGVz
dHJ1Y3Rpb24gb2YgYSBzaW5nbGUgb2JqZWN0LiBBbGwgdGhlIGFsbG9jYXRlZCBvYmplY3RzCi0g
KiBjYW4gYmUgZGVzdHJveWVkIGF0IG9uY2UuIFRoZSBtZW1vcnkgY2FuIGJlIGVpdGhlciByZWxl
YXNlZCBvciByZXVzZWQgZm9yIGZ1dHVyZQotICogYWxsb2NhdGlvbi4KLSAqIAotICogVGhlIGlu
LXBsYWNlIG5ldyBvcGVyYXRvciBtdXN0IGJlIHVzZWQgdG8gY29uc3RydWN0IHRoZSBvYmplY3Qg
dXNpbmcgdGhlIHBvaW50ZXIKLSAqIHJldHVybmVkIGJ5IGFsbG9jYXRlLgotICovCi10ZW1wbGF0
ZTx0eXBlbmFtZSBBbGxvY2F0ZWRUeXBlCi0gICAgICAgICxjb25zdCB1bnNpZ25lZCBpbnQgb2Jq
ZWN0UGVyQWxsb2NhdGlvbj4KLWNsYXNzIEJhdGNoQWxsb2NhdG9yCi17Ci1wdWJsaWM6Ci0gICBC
YXRjaEFsbG9jYXRvciggdW5zaWduZWQgaW50IG9iamVjdHNQZXJQYWdlID0gMjU1ICkKLSAgICAg
IDogZnJlZUhlYWRfKCAwICkKLSAgICAgICwgb2JqZWN0c1BlclBhZ2VfKCBvYmplY3RzUGVyUGFn
ZSApCi0gICB7Ci0vLyAgICAgIHByaW50ZiggIlNpemU6ICVkID0+ICVzXG4iLCBzaXplb2YoQWxs
b2NhdGVkVHlwZSksIHR5cGVpZChBbGxvY2F0ZWRUeXBlKS5uYW1lKCkgKTsKLSAgICAgIGFzc2Vy
dCggc2l6ZW9mKEFsbG9jYXRlZFR5cGUpICogb2JqZWN0UGVyQWxsb2NhdGlvbiA+PSBzaXplb2Yo
QWxsb2NhdGVkVHlwZSAqKSApOyAvLyBXZSBtdXN0IGJlIGFibGUgdG8gc3RvcmUgYSBzbGlzdCBp
biB0aGUgb2JqZWN0IGZyZWUgc3BhY2UuCi0gICAgICBhc3NlcnQoIG9iamVjdHNQZXJQYWdlID49
IDE2ICk7Ci0gICAgICBiYXRjaGVzXyA9IGFsbG9jYXRlQmF0Y2goIDAgKTsgICAvLyBhbGxvY2F0
ZWQgYSBkdW1teSBwYWdlCi0gICAgICBjdXJyZW50QmF0Y2hfID0gYmF0Y2hlc187Ci0gICB9Ci0K
LSAgIH5CYXRjaEFsbG9jYXRvcigpCi0gICB7Ci0gICAgICBmb3IgKCBCYXRjaEluZm8gKmJhdGNo
ID0gYmF0Y2hlc187IGJhdGNoOyAgKQotICAgICAgewotICAgICAgICAgQmF0Y2hJbmZvICpuZXh0
QmF0Y2ggPSBiYXRjaC0+bmV4dF87Ci0gICAgICAgICBmcmVlKCBiYXRjaCApOwotICAgICAgICAg
YmF0Y2ggPSBuZXh0QmF0Y2g7Ci0gICAgICB9Ci0gICB9Ci0KLSAgIC8vLyBhbGxvY2F0ZSBzcGFj
ZSBmb3IgYW4gYXJyYXkgb2Ygb2JqZWN0UGVyQWxsb2NhdGlvbiBvYmplY3QuCi0gICAvLy8gQHdh
cm5pbmcgaXQgaXMgdGhlIHJlc3BvbnNhYmlsaXR5IG9mIHRoZSBjYWxsZXIgdG8gY2FsbCBvYmpl
Y3RzIGNvbnN0cnVjdG9ycy4KLSAgIEFsbG9jYXRlZFR5cGUgKmFsbG9jYXRlKCkKLSAgIHsKLSAg
ICAgIGlmICggZnJlZUhlYWRfICkgLy8gcmV0dXJucyBub2RlIGZyb20gZnJlZSBsaXN0LgotICAg
ICAgewotICAgICAgICAgQWxsb2NhdGVkVHlwZSAqb2JqZWN0ID0gZnJlZUhlYWRfOwotICAgICAg
ICAgZnJlZUhlYWRfID0gKihBbGxvY2F0ZWRUeXBlICoqKW9iamVjdDsKLSAgICAgICAgIHJldHVy
biBvYmplY3Q7Ci0gICAgICB9Ci0gICAgICBpZiAoIGN1cnJlbnRCYXRjaF8tPnVzZWRfID09IGN1
cnJlbnRCYXRjaF8tPmVuZF8gKQotICAgICAgewotICAgICAgICAgY3VycmVudEJhdGNoXyA9IGN1
cnJlbnRCYXRjaF8tPm5leHRfOwotICAgICAgICAgd2hpbGUgKCBjdXJyZW50QmF0Y2hfICAmJiAg
Y3VycmVudEJhdGNoXy0+dXNlZF8gPT0gY3VycmVudEJhdGNoXy0+ZW5kXyApCi0gICAgICAgICAg
ICBjdXJyZW50QmF0Y2hfID0gY3VycmVudEJhdGNoXy0+bmV4dF87Ci0KLSAgICAgICAgIGlmICgg
IWN1cnJlbnRCYXRjaF8gICkgLy8gbm8gZnJlZSBiYXRjaCBmb3VuZCwgYWxsb2NhdGUgYSBuZXcg
b25lCi0gICAgICAgICB7IAotICAgICAgICAgICAgY3VycmVudEJhdGNoXyA9IGFsbG9jYXRlQmF0
Y2goIG9iamVjdHNQZXJQYWdlXyApOwotICAgICAgICAgICAgY3VycmVudEJhdGNoXy0+bmV4dF8g
PSBiYXRjaGVzXzsgLy8gaW5zZXJ0IGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0Ci0gICAgICAgICAg
ICBiYXRjaGVzXyA9IGN1cnJlbnRCYXRjaF87Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBB
bGxvY2F0ZWRUeXBlICphbGxvY2F0ZWQgPSBjdXJyZW50QmF0Y2hfLT51c2VkXzsKLSAgICAgIGN1
cnJlbnRCYXRjaF8tPnVzZWRfICs9IG9iamVjdFBlckFsbG9jYXRpb247Ci0gICAgICByZXR1cm4g
YWxsb2NhdGVkOwotICAgfQotCi0gICAvLy8gUmVsZWFzZSB0aGUgb2JqZWN0LgotICAgLy8vIEB3
YXJuaW5nIGl0IGlzIHRoZSByZXNwb25zYWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIGFjdHVhbGx5
IGRlc3RydWN0IHRoZSBvYmplY3QuCi0gICB2b2lkIHJlbGVhc2UoIEFsbG9jYXRlZFR5cGUgKm9i
amVjdCApCi0gICB7Ci0gICAgICBhc3NlcnQoIG9iamVjdCAhPSAwICk7Ci0gICAgICAqKEFsbG9j
YXRlZFR5cGUgKiopb2JqZWN0ID0gZnJlZUhlYWRfOwotICAgICAgZnJlZUhlYWRfID0gb2JqZWN0
OwotICAgfQotCi1wcml2YXRlOgotICAgc3RydWN0IEJhdGNoSW5mbwotICAgewotICAgICAgQmF0
Y2hJbmZvICpuZXh0XzsKLSAgICAgIEFsbG9jYXRlZFR5cGUgKnVzZWRfOwotICAgICAgQWxsb2Nh
dGVkVHlwZSAqZW5kXzsKLSAgICAgIEFsbG9jYXRlZFR5cGUgYnVmZmVyX1tvYmplY3RQZXJBbGxv
Y2F0aW9uXTsKLSAgIH07Ci0KLSAgIC8vIGRpc2FibGVkIGNvcHkgY29uc3RydWN0b3IgYW5kIGFz
c2lnbmVtZW50IG9wZXJhdG9yLgotICAgQmF0Y2hBbGxvY2F0b3IoIGNvbnN0IEJhdGNoQWxsb2Nh
dG9yICYgKTsKLSAgIHZvaWQgb3BlcmF0b3IgPSggY29uc3QgQmF0Y2hBbGxvY2F0b3IgJik7Ci0K
LSAgIHN0YXRpYyBCYXRjaEluZm8gKmFsbG9jYXRlQmF0Y2goIHVuc2lnbmVkIGludCBvYmplY3Rz
UGVyUGFnZSApCi0gICB7Ci0gICAgICBjb25zdCB1bnNpZ25lZCBpbnQgbWFsbG9jU2l6ZSA9IHNp
emVvZihCYXRjaEluZm8pIC0gc2l6ZW9mKEFsbG9jYXRlZFR5cGUpKiBvYmplY3RQZXJBbGxvY2F0
aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2l6ZW9mKEFsbG9jYXRlZFR5
cGUpICogb2JqZWN0UGVyQWxsb2NhdGlvbiAqIG9iamVjdHNQZXJQYWdlOwotICAgICAgQmF0Y2hJ
bmZvICpiYXRjaCA9IHN0YXRpY19jYXN0PEJhdGNoSW5mbyo+KCBtYWxsb2MoIG1hbGxvY1NpemUg
KSApOwotICAgICAgYmF0Y2gtPm5leHRfID0gMDsKLSAgICAgIGJhdGNoLT51c2VkXyA9IGJhdGNo
LT5idWZmZXJfOwotICAgICAgYmF0Y2gtPmVuZF8gPSBiYXRjaC0+YnVmZmVyXyArIG9iamVjdHNQ
ZXJQYWdlOwotICAgICAgcmV0dXJuIGJhdGNoOwotICAgfQotCi0gICBCYXRjaEluZm8gKmJhdGNo
ZXNfOwotICAgQmF0Y2hJbmZvICpjdXJyZW50QmF0Y2hfOwotICAgLy8vIEhlYWQgb2YgYSBzaW5n
bGUgbGlua2VkIGxpc3Qgd2l0aGluIHRoZSBhbGxvY2F0ZWQgc3BhY2Ugb2YgZnJlZWVkIG9iamVj
dAotICAgQWxsb2NhdGVkVHlwZSAqZnJlZUhlYWRfOwotICAgdW5zaWduZWQgaW50IG9iamVjdHNQ
ZXJQYWdlXzsKLX07Ci0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgotCi0jIGVuZGlmIC8vIGlmbmRl
ZiBKU09OQ1BQX0RPQ19JTkNMVURFX0lNUExFTUVOVEFUSU9OCi0KLSNlbmRpZiAvLyBKU09OQ1BQ
X0JBVENIQUxMT0NBVE9SX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29u
L2pzb25faW50ZXJuYWxhcnJheS5pbmwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX2ludGVybmFs
YXJyYXkuaW5sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZThiOGVmZjQxZTQyZTEy
YjA5Yjg3ODkxNjhhOWY0NGQ4ZGM0ZDRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25faW50ZXJuYWxhcnJheS5pbmwK
KysrIC9kZXYvbnVsbApAQCAtMSw0NTQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBC
YXB0aXN0ZSBMZXBpbGxldXIKLS8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBw
dWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCi0vLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNk
aWN0aW9uLgotLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKLQotLy8gaW5jbHVkZWQgYnkganNvbl92
YWx1ZS5jcHAKLQotbmFtZXNwYWNlIEpzb24gewotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZUludGVybmFsQXJyYXkKLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotVmFsdWVBcnJheUFsbG9jYXRvcjo6flZh
bHVlQXJyYXlBbGxvY2F0b3IoKQotewotfQotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIERlZmF1
bHRWYWx1ZUFycmF5QWxsb2NhdG9yCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSNpZmRlZiBKU09OX1VTRV9TSU1Q
TEVfSU5URVJOQUxfQUxMT0NBVE9SCi1jbGFzcyBEZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvciA6
IHB1YmxpYyBWYWx1ZUFycmF5QWxsb2NhdG9yCi17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJv
bSBWYWx1ZUFycmF5QWxsb2NhdG9yCi0gICB2aXJ0dWFsIH5EZWZhdWx0VmFsdWVBcnJheUFsbG9j
YXRvcigpCi0gICB7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdB
cnJheSgpCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxBcnJheSgpOwotICAg
fQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxBcnJheSAqbmV3QXJyYXlDb3B5KCBjb25zdCBW
YWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFsdWVJ
bnRlcm5hbEFycmF5KCBvdGhlciApOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RB
cnJheSggVmFsdWVJbnRlcm5hbEFycmF5ICphcnJheSApCi0gICB7Ci0gICAgICBkZWxldGUgYXJy
YXk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCByZWFsbG9jYXRlQXJyYXlQYWdlSW5kZXgoIFZh
bHVlICoqJmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggJmluZGV4Q291bnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJ
bmRleCBtaW5OZXdJbmRleENvdW50ICkKLSAgIHsKLSAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6
UGFnZUluZGV4IG5ld0luZGV4Q291bnQgPSAoaW5kZXhDb3VudCozKS8yICsgMTsKLSAgICAgIGlm
ICggbWluTmV3SW5kZXhDb3VudCA+IG5ld0luZGV4Q291bnQgKQotICAgICAgICAgbmV3SW5kZXhD
b3VudCA9IG1pbk5ld0luZGV4Q291bnQ7Ci0gICAgICB2b2lkICpuZXdJbmRleGVzID0gcmVhbGxv
YyggaW5kZXhlcywgc2l6ZW9mKFZhbHVlKikgKiBuZXdJbmRleENvdW50ICk7Ci0gICAgICBKU09O
X0FTU0VSVF9NRVNTQUdFKG5ld0luZGV4ZXMsICJDb3VsZG4ndCByZWFsbG9jLiIpOwotICAgICAg
aW5kZXhDb3VudCA9IG5ld0luZGV4Q291bnQ7Ci0gICAgICBpbmRleGVzID0gc3RhdGljX2Nhc3Q8
VmFsdWUgKio+KCBuZXdJbmRleGVzICk7Ci0gICB9Ci0gICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUFy
cmF5UGFnZUluZGV4KCBWYWx1ZSAqKmluZGV4ZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdlSW5kZXggaW5kZXhDb3VudCAp
Ci0gICB7Ci0gICAgICBpZiAoIGluZGV4ZXMgKQotICAgICAgICAgZnJlZSggaW5kZXhlcyApOwot
ICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlICphbGxvY2F0ZUFycmF5UGFnZSgpCi0gICB7Ci0gICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VmFsdWUgKj4oIG1hbGxvYyggc2l6ZW9mKFZhbHVlKSAqIFZh
bHVlSW50ZXJuYWxBcnJheTo6aXRlbXNQZXJQYWdlICkgKTsKLSAgIH0KLQotICAgdmlydHVhbCB2
b2lkIHJlbGVhc2VBcnJheVBhZ2UoIFZhbHVlICp2YWx1ZSApCi0gICB7Ci0gICAgICBpZiAoIHZh
bHVlICkKLSAgICAgICAgIGZyZWUoIHZhbHVlICk7Ci0gICB9Ci19OwotCi0jZWxzZSAvLyAjaWZk
ZWYgSlNPTl9VU0VfU0lNUExFX0lOVEVSTkFMX0FMTE9DQVRPUgotLy8vIEB0b2RvIG1ha2UgdGhp
cyB0aHJlYWQtc2FmZSAobG9jayB3aGVuIGFjY2Vzc2lnbiBiYXRjaCBhbGxvY2F0b3IpCi1jbGFz
cyBEZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvciA6IHB1YmxpYyBWYWx1ZUFycmF5QWxsb2NhdG9y
Ci17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1ZUFycmF5QWxsb2NhdG9yCi0gICB2
aXJ0dWFsIH5EZWZhdWx0VmFsdWVBcnJheUFsbG9jYXRvcigpCi0gICB7Ci0gICB9Ci0KLSAgIHZp
cnR1YWwgVmFsdWVJbnRlcm5hbEFycmF5ICpuZXdBcnJheSgpCi0gICB7Ci0gICAgICBWYWx1ZUlu
dGVybmFsQXJyYXkgKmFycmF5ID0gYXJyYXlzQWxsb2NhdG9yXy5hbGxvY2F0ZSgpOwotICAgICAg
bmV3IChhcnJheSkgVmFsdWVJbnRlcm5hbEFycmF5KCk7IC8vIHBsYWNlbWVudCBuZXcKLSAgICAg
IHJldHVybiBhcnJheTsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsQXJyYXkgKm5l
d0FycmF5Q29weSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApCi0gICB7Ci0gICAg
ICBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5ID0gYXJyYXlzQWxsb2NhdG9yXy5hbGxvY2F0ZSgp
OwotICAgICAgbmV3IChhcnJheSkgVmFsdWVJbnRlcm5hbEFycmF5KCBvdGhlciApOyAvLyBwbGFj
ZW1lbnQgbmV3Ci0gICAgICByZXR1cm4gYXJyYXk7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCBk
ZXN0cnVjdEFycmF5KCBWYWx1ZUludGVybmFsQXJyYXkgKmFycmF5ICkKLSAgIHsKLSAgICAgIGlm
ICggYXJyYXkgKQotICAgICAgewotICAgICAgICAgYXJyYXktPn5WYWx1ZUludGVybmFsQXJyYXko
KTsKLSAgICAgICAgIGFycmF5c0FsbG9jYXRvcl8ucmVsZWFzZSggYXJyYXkgKTsKLSAgICAgIH0K
LSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlYWxsb2NhdGVBcnJheVBhZ2VJbmRleCggVmFsdWUg
KiomaW5kZXhlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCAmaW5kZXhDb3VudCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlSW50ZXJuYWxBcnJheTo6UGFnZUluZGV4
IG1pbk5ld0luZGV4Q291bnQgKQotICAgewotICAgICAgVmFsdWVJbnRlcm5hbEFycmF5OjpQYWdl
SW5kZXggbmV3SW5kZXhDb3VudCA9IChpbmRleENvdW50KjMpLzIgKyAxOwotICAgICAgaWYgKCBt
aW5OZXdJbmRleENvdW50ID4gbmV3SW5kZXhDb3VudCApCi0gICAgICAgICBuZXdJbmRleENvdW50
ID0gbWluTmV3SW5kZXhDb3VudDsKLSAgICAgIHZvaWQgKm5ld0luZGV4ZXMgPSByZWFsbG9jKCBp
bmRleGVzLCBzaXplb2YoVmFsdWUqKSAqIG5ld0luZGV4Q291bnQgKTsKLSAgICAgIEpTT05fQVNT
RVJUX01FU1NBR0UobmV3SW5kZXhlcywgIkNvdWxkbid0IHJlYWxsb2MuIik7Ci0gICAgICBpbmRl
eENvdW50ID0gbmV3SW5kZXhDb3VudDsKLSAgICAgIGluZGV4ZXMgPSBzdGF0aWNfY2FzdDxWYWx1
ZSAqKj4oIG5ld0luZGV4ZXMgKTsKLSAgIH0KLSAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQXJyYXlQ
YWdlSW5kZXgoIFZhbHVlICoqaW5kZXhlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6OlBhZ2VJbmRleCBpbmRleENvdW50ICkKLSAg
IHsKLSAgICAgIGlmICggaW5kZXhlcyApCi0gICAgICAgICBmcmVlKCBpbmRleGVzICk7Ci0gICB9
Ci0KLSAgIHZpcnR1YWwgVmFsdWUgKmFsbG9jYXRlQXJyYXlQYWdlKCkKLSAgIHsKLSAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxWYWx1ZSAqPiggcGFnZXNBbGxvY2F0b3JfLmFsbG9jYXRlKCkgKTsK
LSAgIH0KLQotICAgdmlydHVhbCB2b2lkIHJlbGVhc2VBcnJheVBhZ2UoIFZhbHVlICp2YWx1ZSAp
Ci0gICB7Ci0gICAgICBpZiAoIHZhbHVlICkKLSAgICAgICAgIHBhZ2VzQWxsb2NhdG9yXy5yZWxl
YXNlKCB2YWx1ZSApOwotICAgfQotcHJpdmF0ZToKLSAgIEJhdGNoQWxsb2NhdG9yPFZhbHVlSW50
ZXJuYWxBcnJheSwxPiBhcnJheXNBbGxvY2F0b3JfOwotICAgQmF0Y2hBbGxvY2F0b3I8VmFsdWUs
VmFsdWVJbnRlcm5hbEFycmF5OjppdGVtc1BlclBhZ2U+IHBhZ2VzQWxsb2NhdG9yXzsKLX07Ci0j
ZW5kaWYgLy8gI2lmZGVmIEpTT05fVVNFX1NJTVBMRV9JTlRFUk5BTF9BTExPQ0FUT1IKLQotc3Rh
dGljIFZhbHVlQXJyYXlBbGxvY2F0b3IgKiZhcnJheUFsbG9jYXRvcigpCi17Ci0gICBzdGF0aWMg
RGVmYXVsdFZhbHVlQXJyYXlBbGxvY2F0b3IgZGVmYXVsdEFsbG9jYXRvcjsKLSAgIHN0YXRpYyBW
YWx1ZUFycmF5QWxsb2NhdG9yICphcnJheUFsbG9jYXRvciA9ICZkZWZhdWx0QWxsb2NhdG9yOwot
ICAgcmV0dXJuIGFycmF5QWxsb2NhdG9yOwotfQotCi1zdGF0aWMgc3RydWN0IER1bW15QXJyYXlB
bGxvY2F0b3JJbml0aWFsaXplciB7Ci0gICBEdW1teUFycmF5QWxsb2NhdG9ySW5pdGlhbGl6ZXIo
KSAKLSAgIHsKLSAgICAgIGFycmF5QWxsb2NhdG9yKCk7ICAgICAgLy8gZW5zdXJlIGFycmF5QWxs
b2NhdG9yKCkgc3RhdGljcyBhcmUgaW5pdGlhbGl6ZWQgYmVmb3JlIG1haW4oKS4KLSAgIH0KLX0g
ZHVtbXlBcnJheUFsbG9jYXRvckluaXRpYWxpemVyOwotCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGNsYXNz
IFZhbHVlSW50ZXJuYWxBcnJheQotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi1ib29sIAotVmFsdWVJbnRlcm5hbEFy
cmF5OjplcXVhbHMoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJm90aGVyICkKLXsKLSAgIHJldHVybiB4LmFy
cmF5XyA9PSBvdGhlci5hcnJheV8gIAotICAgICAgICAgICYmICB4LmN1cnJlbnRJdGVtSW5kZXhf
ID09IG90aGVyLmN1cnJlbnRJdGVtSW5kZXhfICAKLSAgICAgICAgICAmJiAgeC5jdXJyZW50UGFn
ZUluZGV4XyA9PSBvdGhlci5jdXJyZW50UGFnZUluZGV4XzsKLX0KLQotCi12b2lkIAotVmFsdWVJ
bnRlcm5hbEFycmF5OjppbmNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUgJml0ICkKLXsKLSAgIEpTT05f
QVNTRVJUX01FU1NBR0UoIGl0LmFycmF5XyAgJiYKLSAgICAgIChpdC5jdXJyZW50UGFnZUluZGV4
XyAtIGl0LmFycmF5Xy0+cGFnZXNfKSppdGVtc1BlclBhZ2UgKyBpdC5jdXJyZW50SXRlbUluZGV4
XwotICAgICAgIT0gaXQuYXJyYXlfLT5zaXplXywKLSAgICAgICJWYWx1ZUludGVybmFsQXJyYXk6
OmluY3JlbWVudCgpOiBtb3ZpbmcgaXRlcmF0b3IgYmV5b25kIGVuZCIgKTsKLSAgICsrKGl0LmN1
cnJlbnRJdGVtSW5kZXhfKTsKLSAgIGlmICggaXQuY3VycmVudEl0ZW1JbmRleF8gPT0gaXRlbXNQ
ZXJQYWdlICkKLSAgIHsKLSAgICAgIGl0LmN1cnJlbnRJdGVtSW5kZXhfID0gMDsKLSAgICAgICsr
KGl0LmN1cnJlbnRQYWdlSW5kZXhfKTsKLSAgIH0KLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5h
bEFycmF5OjpkZWNyZW1lbnQoIEl0ZXJhdG9yU3RhdGUgJml0ICkKLXsKLSAgIEpTT05fQVNTRVJU
X01FU1NBR0UoIGl0LmFycmF5XyAgJiYgIGl0LmN1cnJlbnRQYWdlSW5kZXhfID09IGl0LmFycmF5
Xy0+cGFnZXNfIAotICAgICAgICAgICAgICAgICAgICAgICAgJiYgIGl0LmN1cnJlbnRJdGVtSW5k
ZXhfID09IDAsCi0gICAgICAiVmFsdWVJbnRlcm5hbEFycmF5OjpkZWNyZW1lbnQoKTogbW92aW5n
IGl0ZXJhdG9yIGJleW9uZCBlbmQiICk7Ci0gICBpZiAoIGl0LmN1cnJlbnRJdGVtSW5kZXhfID09
IDAgKQotICAgewotICAgICAgaXQuY3VycmVudEl0ZW1JbmRleF8gPSBpdGVtc1BlclBhZ2UtMTsK
LSAgICAgIC0tKGl0LmN1cnJlbnRQYWdlSW5kZXhfKTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAg
ICAgIC0tKGl0LmN1cnJlbnRJdGVtSW5kZXhfKTsKLSAgIH0KLX0KLQotCi1WYWx1ZSAmCi1WYWx1
ZUludGVybmFsQXJyYXk6OnVuc2FmZURlcmVmZXJlbmNlKCBjb25zdCBJdGVyYXRvclN0YXRlICZp
dCApCi17Ci0gICByZXR1cm4gKCooaXQuY3VycmVudFBhZ2VJbmRleF8pKVtpdC5jdXJyZW50SXRl
bUluZGV4X107Ci19Ci0KLQotVmFsdWUgJgotVmFsdWVJbnRlcm5hbEFycmF5OjpkZXJlZmVyZW5j
ZSggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXQgKQotewotICAgSlNPTl9BU1NFUlRfTUVTU0FHRSgg
aXQuYXJyYXlfICAmJgotICAgICAgKGl0LmN1cnJlbnRQYWdlSW5kZXhfIC0gaXQuYXJyYXlfLT5w
YWdlc18pKml0ZW1zUGVyUGFnZSArIGl0LmN1cnJlbnRJdGVtSW5kZXhfCi0gICAgICA8IGl0LmFy
cmF5Xy0+c2l6ZV8sCi0gICAgICAiVmFsdWVJbnRlcm5hbEFycmF5OjpkZXJlZmVyZW5jZSgpOiBk
ZXJlZmVyZW5jaW5nIGludmFsaWQgaXRlcmF0b3IiICk7Ci0gICByZXR1cm4gdW5zYWZlRGVyZWZl
cmVuY2UoIGl0ICk7Ci19Ci0KLXZvaWQgCi1WYWx1ZUludGVybmFsQXJyYXk6Om1ha2VCZWdpbkl0
ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0Ci17Ci0gICBpdC5hcnJheV8gPSBjb25z
dF9jYXN0PFZhbHVlSW50ZXJuYWxBcnJheSAqPiggdGhpcyApOwotICAgaXQuY3VycmVudEl0ZW1J
bmRleF8gPSAwOwotICAgaXQuY3VycmVudFBhZ2VJbmRleF8gPSBwYWdlc187Ci19Ci0KLQotdm9p
ZCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6bWFrZUl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCwg
QXJyYXlJbmRleCBpbmRleCApIGNvbnN0Ci17Ci0gICBpdC5hcnJheV8gPSBjb25zdF9jYXN0PFZh
bHVlSW50ZXJuYWxBcnJheSAqPiggdGhpcyApOwotICAgaXQuY3VycmVudEl0ZW1JbmRleF8gPSBp
bmRleCAlIGl0ZW1zUGVyUGFnZTsKLSAgIGl0LmN1cnJlbnRQYWdlSW5kZXhfID0gcGFnZXNfICsg
aW5kZXggLyBpdGVtc1BlclBhZ2U7Ci19Ci0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6
bWFrZUVuZEl0ZXJhdG9yKCBJdGVyYXRvclN0YXRlICZpdCApIGNvbnN0Ci17Ci0gICBtYWtlSXRl
cmF0b3IoIGl0LCBzaXplXyApOwotfQotCi0KLVZhbHVlSW50ZXJuYWxBcnJheTo6VmFsdWVJbnRl
cm5hbEFycmF5KCkKLSAgIDogcGFnZXNfKCAwICkKLSAgICwgc2l6ZV8oIDAgKQotICAgLCBwYWdl
Q291bnRfKCAwICkKLXsKLX0KLQotCi1WYWx1ZUludGVybmFsQXJyYXk6OlZhbHVlSW50ZXJuYWxB
cnJheSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApCi0gICA6IHBhZ2VzXyggMCAp
Ci0gICAsIHNpemVfKCBvdGhlci5zaXplXyApCi0gICAsIHBhZ2VDb3VudF8oIDAgKQotewotICAg
UGFnZUluZGV4IG1pbk5ld1BhZ2VzID0gb3RoZXIuc2l6ZV8gLyBpdGVtc1BlclBhZ2U7Ci0gICBh
cnJheUFsbG9jYXRvcigpLT5yZWFsbG9jYXRlQXJyYXlQYWdlSW5kZXgoIHBhZ2VzXywgcGFnZUNv
dW50XywgbWluTmV3UGFnZXMgKTsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIHBhZ2VDb3VudF8g
Pj0gbWluTmV3UGFnZXMsIAotICAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlSW50ZXJuYWxB
cnJheTo6cmVzZXJ2ZSgpOiBiYWQgcmVhbGxvY2F0aW9uIiApOwotICAgSXRlcmF0b3JTdGF0ZSBp
dE90aGVyOwotICAgb3RoZXIubWFrZUJlZ2luSXRlcmF0b3IoIGl0T3RoZXIgKTsKLSAgIFZhbHVl
ICp2YWx1ZTsKLSAgIGZvciAoIEFycmF5SW5kZXggaW5kZXggPSAwOyBpbmRleCA8IHNpemVfOyAr
K2luZGV4LCBpbmNyZW1lbnQoaXRPdGhlcikgKQotICAgewotICAgICAgaWYgKCBpbmRleCAlIGl0
ZW1zUGVyUGFnZSA9PSAwICkKLSAgICAgIHsKLSAgICAgICAgIFBhZ2VJbmRleCBwYWdlSW5kZXgg
PSBpbmRleCAvIGl0ZW1zUGVyUGFnZTsKLSAgICAgICAgIHZhbHVlID0gYXJyYXlBbGxvY2F0b3Io
KS0+YWxsb2NhdGVBcnJheVBhZ2UoKTsKLSAgICAgICAgIHBhZ2VzX1twYWdlSW5kZXhdID0gdmFs
dWU7Ci0gICAgICB9Ci0gICAgICBuZXcgKHZhbHVlKSBWYWx1ZSggZGVyZWZlcmVuY2UoIGl0T3Ro
ZXIgKSApOwotICAgfQotfQotCi0KLVZhbHVlSW50ZXJuYWxBcnJheSAmCi1WYWx1ZUludGVybmFs
QXJyYXk6Om9wZXJhdG9yID0oIGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheSAmb3RoZXIgKQotewot
ICAgVmFsdWVJbnRlcm5hbEFycmF5IHRlbXAoIG90aGVyICk7Ci0gICBzd2FwKCB0ZW1wICk7Ci0g
ICByZXR1cm4gKnRoaXM7Ci19Ci0KLQotVmFsdWVJbnRlcm5hbEFycmF5Ojp+VmFsdWVJbnRlcm5h
bEFycmF5KCkKLXsKLSAgIC8vIGRlc3Ryb3kgYWxsIGNvbnN0cnVjdGVkIGl0ZW1zCi0gICBJdGVy
YXRvclN0YXRlIGl0OwotICAgSXRlcmF0b3JTdGF0ZSBpdEVuZDsKLSAgIG1ha2VCZWdpbkl0ZXJh
dG9yKCBpdCk7Ci0gICBtYWtlRW5kSXRlcmF0b3IoIGl0RW5kICk7Ci0gICBmb3IgKCA7ICFlcXVh
bHMoaXQsaXRFbmQpOyBpbmNyZW1lbnQoaXQpICkKLSAgIHsKLSAgICAgIFZhbHVlICp2YWx1ZSA9
ICZkZXJlZmVyZW5jZShpdCk7Ci0gICAgICB2YWx1ZS0+flZhbHVlKCk7Ci0gICB9Ci0gICAvLyBy
ZWxlYXNlIGFsbCBwYWdlcwotICAgUGFnZUluZGV4IGxhc3RQYWdlSW5kZXggPSBzaXplXyAvIGl0
ZW1zUGVyUGFnZTsKLSAgIGZvciAoIFBhZ2VJbmRleCBwYWdlSW5kZXggPSAwOyBwYWdlSW5kZXgg
PCBsYXN0UGFnZUluZGV4OyArK3BhZ2VJbmRleCApCi0gICAgICBhcnJheUFsbG9jYXRvcigpLT5y
ZWxlYXNlQXJyYXlQYWdlKCBwYWdlc19bcGFnZUluZGV4XSApOwotICAgLy8gcmVsZWFzZSBwYWdl
cyBpbmRleAotICAgYXJyYXlBbGxvY2F0b3IoKS0+cmVsZWFzZUFycmF5UGFnZUluZGV4KCBwYWdl
c18sIHBhZ2VDb3VudF8gKTsKLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbEFycmF5Ojpzd2Fw
KCBWYWx1ZUludGVybmFsQXJyYXkgJm90aGVyICkKLXsKLSAgIFZhbHVlICoqdGVtcFBhZ2VzID0g
cGFnZXNfOwotICAgcGFnZXNfID0gb3RoZXIucGFnZXNfOwotICAgb3RoZXIucGFnZXNfID0gdGVt
cFBhZ2VzOwotICAgQXJyYXlJbmRleCB0ZW1wU2l6ZSA9IHNpemVfOwotICAgc2l6ZV8gPSBvdGhl
ci5zaXplXzsKLSAgIG90aGVyLnNpemVfID0gdGVtcFNpemU7Ci0gICBQYWdlSW5kZXggdGVtcFBh
Z2VDb3VudCA9IHBhZ2VDb3VudF87Ci0gICBwYWdlQ291bnRfID0gb3RoZXIucGFnZUNvdW50XzsK
LSAgIG90aGVyLnBhZ2VDb3VudF8gPSB0ZW1wUGFnZUNvdW50OwotfQotCi12b2lkIAotVmFsdWVJ
bnRlcm5hbEFycmF5OjpjbGVhcigpCi17Ci0gICBWYWx1ZUludGVybmFsQXJyYXkgZHVtbXk7Ci0g
ICBzd2FwKCBkdW1teSApOwotfQotCi0KLXZvaWQgCi1WYWx1ZUludGVybmFsQXJyYXk6OnJlc2l6
ZSggQXJyYXlJbmRleCBuZXdTaXplICkKLXsKLSAgIGlmICggbmV3U2l6ZSA9PSAwICkKLSAgICAg
IGNsZWFyKCk7Ci0gICBlbHNlIGlmICggbmV3U2l6ZSA8IHNpemVfICkKLSAgIHsKLSAgICAgIEl0
ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICBJdGVyYXRvclN0YXRlIGl0RW5kOwotICAgICAgbWFrZUl0
ZXJhdG9yKCBpdCwgbmV3U2l6ZSApOwotICAgICAgbWFrZUl0ZXJhdG9yKCBpdEVuZCwgc2l6ZV8g
KTsKLSAgICAgIGZvciAoIDsgIWVxdWFscyhpdCxpdEVuZCk7IGluY3JlbWVudChpdCkgKQotICAg
ICAgewotICAgICAgICAgVmFsdWUgKnZhbHVlID0gJmRlcmVmZXJlbmNlKGl0KTsKLSAgICAgICAg
IHZhbHVlLT5+VmFsdWUoKTsKLSAgICAgIH0KLSAgICAgIFBhZ2VJbmRleCBwYWdlSW5kZXggPSAo
bmV3U2l6ZSArIGl0ZW1zUGVyUGFnZSAtIDEpIC8gaXRlbXNQZXJQYWdlOwotICAgICAgUGFnZUlu
ZGV4IGxhc3RQYWdlSW5kZXggPSBzaXplXyAvIGl0ZW1zUGVyUGFnZTsKLSAgICAgIGZvciAoIDsg
cGFnZUluZGV4IDwgbGFzdFBhZ2VJbmRleDsgKytwYWdlSW5kZXggKQotICAgICAgICAgYXJyYXlB
bGxvY2F0b3IoKS0+cmVsZWFzZUFycmF5UGFnZSggcGFnZXNfW3BhZ2VJbmRleF0gKTsKLSAgICAg
IHNpemVfID0gbmV3U2l6ZTsKLSAgIH0KLSAgIGVsc2UgaWYgKCBuZXdTaXplID4gc2l6ZV8gKQot
ICAgICAgcmVzb2x2ZVJlZmVyZW5jZSggbmV3U2l6ZSApOwotfQotCi0KLXZvaWQgCi1WYWx1ZUlu
dGVybmFsQXJyYXk6Om1ha2VJbmRleFZhbGlkKCBBcnJheUluZGV4IGluZGV4ICkKLXsKLSAgIC8v
IE5lZWQgdG8gZW5sYXJnZSBwYWdlIGluZGV4ID8KLSAgIGlmICggaW5kZXggPj0gcGFnZUNvdW50
XyAqIGl0ZW1zUGVyUGFnZSApCi0gICB7Ci0gICAgICBQYWdlSW5kZXggbWluTmV3UGFnZXMgPSAo
aW5kZXggKyAxKSAvIGl0ZW1zUGVyUGFnZTsKLSAgICAgIGFycmF5QWxsb2NhdG9yKCktPnJlYWxs
b2NhdGVBcnJheVBhZ2VJbmRleCggcGFnZXNfLCBwYWdlQ291bnRfLCBtaW5OZXdQYWdlcyApOwot
ICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggcGFnZUNvdW50XyA+PSBtaW5OZXdQYWdlcywgIlZh
bHVlSW50ZXJuYWxBcnJheTo6cmVzZXJ2ZSgpOiBiYWQgcmVhbGxvY2F0aW9uIiApOwotICAgfQot
Ci0gICAvLyBOZWVkIHRvIGFsbG9jYXRlIG5ldyBwYWdlcyA/Ci0gICBBcnJheUluZGV4IG5leHRQ
YWdlSW5kZXggPSAKLSAgICAgIChzaXplXyAlIGl0ZW1zUGVyUGFnZSkgIT0gMCA/IHNpemVfIC0g
KHNpemVfJWl0ZW1zUGVyUGFnZSkgKyBpdGVtc1BlclBhZ2UKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6IHNpemVfOwotICAgaWYgKCBuZXh0UGFnZUluZGV4IDw9IGluZGV4ICkK
LSAgIHsKLSAgICAgIFBhZ2VJbmRleCBwYWdlSW5kZXggPSBuZXh0UGFnZUluZGV4IC8gaXRlbXNQ
ZXJQYWdlOwotICAgICAgUGFnZUluZGV4IHBhZ2VUb0FsbG9jYXRlID0gKGluZGV4IC0gbmV4dFBh
Z2VJbmRleCkgLyBpdGVtc1BlclBhZ2UgKyAxOwotICAgICAgZm9yICggOyBwYWdlVG9BbGxvY2F0
ZS0tID4gMDsgKytwYWdlSW5kZXggKQotICAgICAgICAgcGFnZXNfW3BhZ2VJbmRleF0gPSBhcnJh
eUFsbG9jYXRvcigpLT5hbGxvY2F0ZUFycmF5UGFnZSgpOwotICAgfQotCi0gICAvLyBJbml0aWFs
aXplIGFsbCBuZXcgZW50cmllcwotICAgSXRlcmF0b3JTdGF0ZSBpdDsKLSAgIEl0ZXJhdG9yU3Rh
dGUgaXRFbmQ7Ci0gICBtYWtlSXRlcmF0b3IoIGl0LCBzaXplXyApOwotICAgc2l6ZV8gPSBpbmRl
eCArIDE7Ci0gICBtYWtlSXRlcmF0b3IoIGl0RW5kLCBzaXplXyApOwotICAgZm9yICggOyAhZXF1
YWxzKGl0LGl0RW5kKTsgaW5jcmVtZW50KGl0KSApCi0gICB7Ci0gICAgICBWYWx1ZSAqdmFsdWUg
PSAmZGVyZWZlcmVuY2UoaXQpOwotICAgICAgbmV3ICh2YWx1ZSkgVmFsdWUoKTsgLy8gQ29uc3Ry
dWN0IGEgZGVmYXVsdCB2YWx1ZSB1c2luZyBwbGFjZW1lbnQgbmV3Ci0gICB9Ci19Ci0KLVZhbHVl
ICYKLVZhbHVlSW50ZXJuYWxBcnJheTo6cmVzb2x2ZVJlZmVyZW5jZSggQXJyYXlJbmRleCBpbmRl
eCApCi17Ci0gICBpZiAoIGluZGV4ID49IHNpemVfICkKLSAgICAgIG1ha2VJbmRleFZhbGlkKCBp
bmRleCApOwotICAgcmV0dXJuIHBhZ2VzX1tpbmRleC9pdGVtc1BlclBhZ2VdW2luZGV4JWl0ZW1z
UGVyUGFnZV07Ci19Ci0KLVZhbHVlICoKLVZhbHVlSW50ZXJuYWxBcnJheTo6ZmluZCggQXJyYXlJ
bmRleCBpbmRleCApIGNvbnN0Ci17Ci0gICBpZiAoIGluZGV4ID49IHNpemVfICkKLSAgICAgIHJl
dHVybiAwOwotICAgcmV0dXJuICYocGFnZXNfW2luZGV4L2l0ZW1zUGVyUGFnZV1baW5kZXglaXRl
bXNQZXJQYWdlXSk7Ci19Ci0KLVZhbHVlSW50ZXJuYWxBcnJheTo6QXJyYXlJbmRleCAKLVZhbHVl
SW50ZXJuYWxBcnJheTo6c2l6ZSgpIGNvbnN0Ci17Ci0gICByZXR1cm4gc2l6ZV87Ci19Ci0KLWlu
dCAKLVZhbHVlSW50ZXJuYWxBcnJheTo6ZGlzdGFuY2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngs
IGNvbnN0IEl0ZXJhdG9yU3RhdGUgJnkgKQotewotICAgcmV0dXJuIGluZGV4T2YoeSkgLSBpbmRl
eE9mKHgpOwotfQotCi0KLVZhbHVlSW50ZXJuYWxBcnJheTo6QXJyYXlJbmRleCAKLVZhbHVlSW50
ZXJuYWxBcnJheTo6aW5kZXhPZiggY29uc3QgSXRlcmF0b3JTdGF0ZSAmaXRlcmF0b3IgKQotewot
ICAgaWYgKCAhaXRlcmF0b3IuYXJyYXlfICkKLSAgICAgIHJldHVybiBBcnJheUluZGV4KC0xKTsK
LSAgIHJldHVybiBBcnJheUluZGV4KAotICAgICAgKGl0ZXJhdG9yLmN1cnJlbnRQYWdlSW5kZXhf
IC0gaXRlcmF0b3IuYXJyYXlfLT5wYWdlc18pICogaXRlbXNQZXJQYWdlIAotICAgICAgKyBpdGVy
YXRvci5jdXJyZW50SXRlbUluZGV4XyApOwotfQotCi0KLWludCAKLVZhbHVlSW50ZXJuYWxBcnJh
eTo6Y29tcGFyZSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5ICZvdGhlciApIGNvbnN0Ci17Ci0g
ICBpbnQgc2l6ZURpZmYoIHNpemVfIC0gb3RoZXIuc2l6ZV8gKTsKLSAgIGlmICggc2l6ZURpZmYg
IT0gMCApCi0gICAgICByZXR1cm4gc2l6ZURpZmY7Ci0gICAKLSAgIGZvciAoIEFycmF5SW5kZXgg
aW5kZXggPTA7IGluZGV4IDwgc2l6ZV87ICsraW5kZXggKQotICAgewotICAgICAgaW50IGRpZmYg
PSBwYWdlc19baW5kZXgvaXRlbXNQZXJQYWdlXVtpbmRleCVpdGVtc1BlclBhZ2VdLmNvbXBhcmUo
IAotICAgICAgICAgb3RoZXIucGFnZXNfW2luZGV4L2l0ZW1zUGVyUGFnZV1baW5kZXglaXRlbXNQ
ZXJQYWdlXSApOwotICAgICAgaWYgKCBkaWZmICE9IDAgKQotICAgICAgICAgcmV0dXJuIGRpZmY7
Ci0gICB9Ci0gICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSnNvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl9pbnRlcm5hbG1hcC5pbmwgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJf
anNvbi9qc29uX2ludGVybmFsbWFwLmlubApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjJmYTE2MDY1NTJhZTYwOWM5YmEzZGY0OWI5NzNlMDg3OWUyZTZhOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX2lu
dGVybmFsbWFwLmlubAorKysgL2Rldi9udWxsCkBAIC0xLDYxNSArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgotLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKLS8vIHJlY29nbml6ZWQg
aW4geW91ciBqdXJpc2RpY3Rpb24uCi0vLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3Ig
Y29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQotCi0vLyBpbmNs
dWRlZCBieSBqc29uX3ZhbHVlLmNwcAotCi1uYW1lc3BhY2UgSnNvbiB7Ci0KLS8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIGNsYXNzIFZhbHVlSW50ZXJuYWxNYXAK
LS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwotLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotLyoqIFxpbnRlcm5h
bCBNVVNUIGJlIHNhZmVseSBpbml0aWFsaXplZCB1c2luZyBtZW1zZXQoIHRoaXMsIDAsIHNpemVv
ZihWYWx1ZUludGVybmFsTGluaykgKTsKLSAgICogVGhpcyBvcHRpbWl6YXRpb24gaXMgdXNlZCBi
eSB0aGUgZmFzdCBhbGxvY2F0b3IuCi0gICAqLwotVmFsdWVJbnRlcm5hbExpbms6OlZhbHVlSW50
ZXJuYWxMaW5rKCkKLSAgIDogcHJldmlvdXNfKCAwICkKLSAgICwgbmV4dF8oIDAgKQotewotfQot
Ci1WYWx1ZUludGVybmFsTGluazo6flZhbHVlSW50ZXJuYWxMaW5rKCkKLXsgCi0gICBmb3IgKCBp
bnQgaW5kZXggPTA7IGluZGV4IDwgaXRlbVBlckxpbms7ICsraW5kZXggKQotICAgewotICAgICAg
aWYgKCAhaXRlbXNfW2luZGV4XS5pc0l0ZW1BdmFpbGFibGUoKSApCi0gICAgICB7Ci0gICAgICAg
ICBpZiAoICFpdGVtc19baW5kZXhdLmlzTWVtYmVyTmFtZVN0YXRpYygpICkKLSAgICAgICAgICAg
IGZyZWUoIGtleXNfW2luZGV4XSApOwotICAgICAgfQotICAgICAgZWxzZQotICAgICAgICAgYnJl
YWs7Ci0gICB9Ci19Ci0KLQotCi1WYWx1ZU1hcEFsbG9jYXRvcjo6flZhbHVlTWFwQWxsb2NhdG9y
KCkKLXsKLX0KLQotI2lmZGVmIEpTT05fVVNFX1NJTVBMRV9JTlRFUk5BTF9BTExPQ0FUT1IKLWNs
YXNzIERlZmF1bHRWYWx1ZU1hcEFsbG9jYXRvciA6IHB1YmxpYyBWYWx1ZU1hcEFsbG9jYXRvcgot
ewotcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gVmFsdWVNYXBBbGxvY2F0b3IKLSAgIHZpcnR1
YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwKCkKLSAgIHsKLSAgICAgIHJldHVybiBuZXcgVmFs
dWVJbnRlcm5hbE1hcCgpOwotICAgfQotCi0gICB2aXJ0dWFsIFZhbHVlSW50ZXJuYWxNYXAgKm5l
d01hcENvcHkoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICkKLSAgIHsKLSAgICAgIHJl
dHVybiBuZXcgVmFsdWVJbnRlcm5hbE1hcCggb3RoZXIgKTsKLSAgIH0KLQotICAgdmlydHVhbCB2
b2lkIGRlc3RydWN0TWFwKCBWYWx1ZUludGVybmFsTWFwICptYXAgKQotICAgewotICAgICAgZGVs
ZXRlIG1hcDsKLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsTGluayAqYWxsb2NhdGVN
YXBCdWNrZXRzKCB1bnNpZ25lZCBpbnQgc2l6ZSApCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZh
bHVlSW50ZXJuYWxMaW5rW3NpemVdOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU1h
cEJ1Y2tldHMoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rcyApCi0gICB7Ci0gICAgICBkZWxldGUg
W10gbGlua3M7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFsbG9jYXRl
TWFwTGluaygpCi0gICB7Ci0gICAgICByZXR1cm4gbmV3IFZhbHVlSW50ZXJuYWxMaW5rKCk7Ci0g
ICB9Ci0KLSAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTWFwTGluayggVmFsdWVJbnRlcm5hbExpbmsg
KmxpbmsgKQotICAgewotICAgICAgZGVsZXRlIGxpbms7Ci0gICB9Ci19OwotI2Vsc2UKLS8vLyBA
dG9kbyBtYWtlIHRoaXMgdGhyZWFkLXNhZmUgKGxvY2sgd2hlbiBhY2Nlc3NpZ24gYmF0Y2ggYWxs
b2NhdG9yKQotY2xhc3MgRGVmYXVsdFZhbHVlTWFwQWxsb2NhdG9yIDogcHVibGljIFZhbHVlTWFw
QWxsb2NhdG9yCi17Ci1wdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBWYWx1ZU1hcEFsbG9jYXRv
cgotICAgdmlydHVhbCBWYWx1ZUludGVybmFsTWFwICpuZXdNYXAoKQotICAgewotICAgICAgVmFs
dWVJbnRlcm5hbE1hcCAqbWFwID0gbWFwc0FsbG9jYXRvcl8uYWxsb2NhdGUoKTsKLSAgICAgIG5l
dyAobWFwKSBWYWx1ZUludGVybmFsTWFwKCk7IC8vIHBsYWNlbWVudCBuZXcKLSAgICAgIHJldHVy
biBtYXA7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbE1hcCAqbmV3TWFwQ29weSgg
Y29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKQotICAgewotICAgICAgVmFsdWVJbnRlcm5h
bE1hcCAqbWFwID0gbWFwc0FsbG9jYXRvcl8uYWxsb2NhdGUoKTsKLSAgICAgIG5ldyAobWFwKSBW
YWx1ZUludGVybmFsTWFwKCBvdGhlciApOyAvLyBwbGFjZW1lbnQgbmV3Ci0gICAgICByZXR1cm4g
bWFwOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgZGVzdHJ1Y3RNYXAoIFZhbHVlSW50ZXJuYWxN
YXAgKm1hcCApCi0gICB7Ci0gICAgICBpZiAoIG1hcCApCi0gICAgICB7Ci0gICAgICAgICBtYXAt
Pn5WYWx1ZUludGVybmFsTWFwKCk7Ci0gICAgICAgICBtYXBzQWxsb2NhdG9yXy5yZWxlYXNlKCBt
YXAgKTsKLSAgICAgIH0KLSAgIH0KLQotICAgdmlydHVhbCBWYWx1ZUludGVybmFsTGluayAqYWxs
b2NhdGVNYXBCdWNrZXRzKCB1bnNpZ25lZCBpbnQgc2l6ZSApCi0gICB7Ci0gICAgICByZXR1cm4g
bmV3IFZhbHVlSW50ZXJuYWxMaW5rW3NpemVdOwotICAgfQotCi0gICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZU1hcEJ1Y2tldHMoIFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rcyApCi0gICB7Ci0gICAgICBk
ZWxldGUgW10gbGlua3M7Ci0gICB9Ci0KLSAgIHZpcnR1YWwgVmFsdWVJbnRlcm5hbExpbmsgKmFs
bG9jYXRlTWFwTGluaygpCi0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsTGluayAqbGluayA9IGxp
bmtzQWxsb2NhdG9yXy5hbGxvY2F0ZSgpOwotICAgICAgbWVtc2V0KCBsaW5rLCAwLCBzaXplb2Yo
VmFsdWVJbnRlcm5hbExpbmspICk7Ci0gICAgICByZXR1cm4gbGluazsKLSAgIH0KLQotICAgdmly
dHVhbCB2b2lkIHJlbGVhc2VNYXBMaW5rKCBWYWx1ZUludGVybmFsTGluayAqbGluayApCi0gICB7
Ci0gICAgICBsaW5rLT5+VmFsdWVJbnRlcm5hbExpbmsoKTsKLSAgICAgIGxpbmtzQWxsb2NhdG9y
Xy5yZWxlYXNlKCBsaW5rICk7Ci0gICB9Ci1wcml2YXRlOgotICAgQmF0Y2hBbGxvY2F0b3I8VmFs
dWVJbnRlcm5hbE1hcCwxPiBtYXBzQWxsb2NhdG9yXzsKLSAgIEJhdGNoQWxsb2NhdG9yPFZhbHVl
SW50ZXJuYWxMaW5rLDE+IGxpbmtzQWxsb2NhdG9yXzsKLX07Ci0jZW5kaWYKLQotc3RhdGljIFZh
bHVlTWFwQWxsb2NhdG9yICombWFwQWxsb2NhdG9yKCkKLXsKLSAgIHN0YXRpYyBEZWZhdWx0VmFs
dWVNYXBBbGxvY2F0b3IgZGVmYXVsdEFsbG9jYXRvcjsKLSAgIHN0YXRpYyBWYWx1ZU1hcEFsbG9j
YXRvciAqbWFwQWxsb2NhdG9yID0gJmRlZmF1bHRBbGxvY2F0b3I7Ci0gICByZXR1cm4gbWFwQWxs
b2NhdG9yOwotfQotCi1zdGF0aWMgc3RydWN0IER1bW15TWFwQWxsb2NhdG9ySW5pdGlhbGl6ZXIg
ewotICAgRHVtbXlNYXBBbGxvY2F0b3JJbml0aWFsaXplcigpIAotICAgewotICAgICAgbWFwQWxs
b2NhdG9yKCk7ICAgICAgLy8gZW5zdXJlIG1hcEFsbG9jYXRvcigpIHN0YXRpY3MgYXJlIGluaXRp
YWxpemVkIGJlZm9yZSBtYWluKCkuCi0gICB9Ci19IGR1bW15TWFwQWxsb2NhdG9ySW5pdGlhbGl6
ZXI7Ci0KLQotCi0vLyBoKEspID0gdmFsdWUgKiBLID4+IHcgOyB3aXRoIHcgPSAzMiAmIEsgcHJp
bWUgdy5yLnQuIDJeMzIuCi0KLS8qCi11c2UgbGlua2VkIGxpc3QgaGFzaCBtYXAuIAotYnVja2V0
cyBhcnJheSBpcyBhIGNvbnRhaW5lci4KLWxpbmtlZCBsaXN0IGVsZW1lbnQgY29udGFpbnMgNiBr
ZXkvdmFsdWVzLiAobWVtb3J5ID0gKDE2KzQpICogNiArIDQgPSAxMjQpCi12YWx1ZSBoYXZlIGV4
dHJhIHN0YXRlOiB2YWxpZCwgYXZhaWxhYmxlLCBkZWxldGVkCi0qLwotCi0KLVZhbHVlSW50ZXJu
YWxNYXA6OlZhbHVlSW50ZXJuYWxNYXAoKQotICAgOiBidWNrZXRzXyggMCApCi0gICAsIHRhaWxM
aW5rXyggMCApCi0gICAsIGJ1Y2tldHNTaXplXyggMCApCi0gICAsIGl0ZW1Db3VudF8oIDAgKQot
ewotfQotCi0KLVZhbHVlSW50ZXJuYWxNYXA6OlZhbHVlSW50ZXJuYWxNYXAoIGNvbnN0IFZhbHVl
SW50ZXJuYWxNYXAgJm90aGVyICkKLSAgIDogYnVja2V0c18oIDAgKQotICAgLCB0YWlsTGlua18o
IDAgKQotICAgLCBidWNrZXRzU2l6ZV8oIDAgKQotICAgLCBpdGVtQ291bnRfKCAwICkKLXsKLSAg
IHJlc2VydmUoIG90aGVyLml0ZW1Db3VudF8gKTsKLSAgIEl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICBJ
dGVyYXRvclN0YXRlIGl0RW5kOwotICAgb3RoZXIubWFrZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0g
ICBvdGhlci5tYWtlRW5kSXRlcmF0b3IoIGl0RW5kICk7Ci0gICBmb3IgKCA7ICFlcXVhbHMoaXQs
aXRFbmQpOyBpbmNyZW1lbnQoaXQpICkKLSAgIHsKLSAgICAgIGJvb2wgaXNTdGF0aWM7Ci0gICAg
ICBjb25zdCBjaGFyICptZW1iZXJOYW1lID0ga2V5KCBpdCwgaXNTdGF0aWMgKTsKLSAgICAgIGNv
bnN0IFZhbHVlICZhVmFsdWUgPSB2YWx1ZSggaXQgKTsKLSAgICAgIHJlc29sdmVSZWZlcmVuY2Uo
bWVtYmVyTmFtZSwgaXNTdGF0aWMpID0gYVZhbHVlOwotICAgfQotfQotCi0KLVZhbHVlSW50ZXJu
YWxNYXAgJgotVmFsdWVJbnRlcm5hbE1hcDo6b3BlcmF0b3IgPSggY29uc3QgVmFsdWVJbnRlcm5h
bE1hcCAmb3RoZXIgKQotewotICAgVmFsdWVJbnRlcm5hbE1hcCBkdW1teSggb3RoZXIgKTsKLSAg
IHN3YXAoIGR1bW15ICk7Ci0gICByZXR1cm4gKnRoaXM7Ci19Ci0KLQotVmFsdWVJbnRlcm5hbE1h
cDo6flZhbHVlSW50ZXJuYWxNYXAoKQotewotICAgaWYgKCBidWNrZXRzXyApCi0gICB7Ci0gICAg
ICBmb3IgKCBCdWNrZXRJbmRleCBidWNrZXRJbmRleCA9MDsgYnVja2V0SW5kZXggPCBidWNrZXRz
U2l6ZV87ICsrYnVja2V0SW5kZXggKQotICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbExp
bmsgKmxpbmsgPSBidWNrZXRzX1tidWNrZXRJbmRleF0ubmV4dF87Ci0gICAgICAgICB3aGlsZSAo
IGxpbmsgKQotICAgICAgICAgewotICAgICAgICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtU
b1JlbGVhc2UgPSBsaW5rOwotICAgICAgICAgICAgbGluayA9IGxpbmstPm5leHRfOwotICAgICAg
ICAgICAgbWFwQWxsb2NhdG9yKCktPnJlbGVhc2VNYXBMaW5rKCBsaW5rVG9SZWxlYXNlICk7Ci0g
ICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBtYXBBbGxvY2F0b3IoKS0+cmVsZWFzZU1hcEJ1Y2tl
dHMoIGJ1Y2tldHNfICk7Ci0gICB9Ci19Ci0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxNYXA6OnN3
YXAoIFZhbHVlSW50ZXJuYWxNYXAgJm90aGVyICkKLXsKLSAgIFZhbHVlSW50ZXJuYWxMaW5rICp0
ZW1wQnVja2V0cyA9IGJ1Y2tldHNfOwotICAgYnVja2V0c18gPSBvdGhlci5idWNrZXRzXzsKLSAg
IG90aGVyLmJ1Y2tldHNfID0gdGVtcEJ1Y2tldHM7Ci0gICBWYWx1ZUludGVybmFsTGluayAqdGVt
cFRhaWxMaW5rID0gdGFpbExpbmtfOwotICAgdGFpbExpbmtfID0gb3RoZXIudGFpbExpbmtfOwot
ICAgb3RoZXIudGFpbExpbmtfID0gdGVtcFRhaWxMaW5rOwotICAgQnVja2V0SW5kZXggdGVtcEJ1
Y2tldHNTaXplID0gYnVja2V0c1NpemVfOwotICAgYnVja2V0c1NpemVfID0gb3RoZXIuYnVja2V0
c1NpemVfOwotICAgb3RoZXIuYnVja2V0c1NpemVfID0gdGVtcEJ1Y2tldHNTaXplOwotICAgQnVj
a2V0SW5kZXggdGVtcEl0ZW1Db3VudCA9IGl0ZW1Db3VudF87Ci0gICBpdGVtQ291bnRfID0gb3Ro
ZXIuaXRlbUNvdW50XzsKLSAgIG90aGVyLml0ZW1Db3VudF8gPSB0ZW1wSXRlbUNvdW50OwotfQot
Ci0KLXZvaWQgCi1WYWx1ZUludGVybmFsTWFwOjpjbGVhcigpCi17Ci0gICBWYWx1ZUludGVybmFs
TWFwIGR1bW15OwotICAgc3dhcCggZHVtbXkgKTsKLX0KLQotCi1WYWx1ZUludGVybmFsTWFwOjpC
dWNrZXRJbmRleCAKLVZhbHVlSW50ZXJuYWxNYXA6OnNpemUoKSBjb25zdAotewotICAgcmV0dXJu
IGl0ZW1Db3VudF87Ci19Ci0KLWJvb2wgCi1WYWx1ZUludGVybmFsTWFwOjpyZXNlcnZlRGVsdGEo
IEJ1Y2tldEluZGV4IGdyb3d0aCApCi17Ci0gICByZXR1cm4gcmVzZXJ2ZSggaXRlbUNvdW50XyAr
IGdyb3d0aCApOwotfQotCi1ib29sIAotVmFsdWVJbnRlcm5hbE1hcDo6cmVzZXJ2ZSggQnVja2V0
SW5kZXggbmV3SXRlbUNvdW50ICkKLXsKLSAgIGlmICggIWJ1Y2tldHNfICAmJiAgbmV3SXRlbUNv
dW50ID4gMCApCi0gICB7Ci0gICAgICBidWNrZXRzXyA9IG1hcEFsbG9jYXRvcigpLT5hbGxvY2F0
ZU1hcEJ1Y2tldHMoIDEgKTsKLSAgICAgIGJ1Y2tldHNTaXplXyA9IDE7Ci0gICAgICB0YWlsTGlu
a18gPSAmYnVja2V0c19bMF07Ci0gICB9Ci0vLyAgIEJ1Y2tldEluZGV4IGlkZWFsQnVja2V0Q291
bnQgPSAobmV3SXRlbUNvdW50ICsgVmFsdWVJbnRlcm5hbExpbms6Oml0ZW1QZXJMaW5rKSAvIFZh
bHVlSW50ZXJuYWxMaW5rOjppdGVtUGVyTGluazsKLSAgIHJldHVybiB0cnVlOwotfQotCi0KLWNv
bnN0IFZhbHVlICoKLVZhbHVlSW50ZXJuYWxNYXA6OmZpbmQoIGNvbnN0IGNoYXIgKmtleSApIGNv
bnN0Ci17Ci0gICBpZiAoICFidWNrZXRzU2l6ZV8gKQotICAgICAgcmV0dXJuIDA7Ci0gICBIYXNo
S2V5IGhhc2hlZEtleSA9IGhhc2goIGtleSApOwotICAgQnVja2V0SW5kZXggYnVja2V0SW5kZXgg
PSBoYXNoZWRLZXkgJSBidWNrZXRzU2l6ZV87Ci0gICBmb3IgKCBjb25zdCBWYWx1ZUludGVybmFs
TGluayAqY3VycmVudCA9ICZidWNrZXRzX1tidWNrZXRJbmRleF07IAotICAgICAgICAgY3VycmVu
dCAhPSAwOyAKLSAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0XyApCi0gICB7Ci0gICAg
ICBmb3IgKCBCdWNrZXRJbmRleCBpbmRleD0wOyBpbmRleCA8IFZhbHVlSW50ZXJuYWxMaW5rOjpp
dGVtUGVyTGluazsgKytpbmRleCApCi0gICAgICB7Ci0gICAgICAgICBpZiAoIGN1cnJlbnQtPml0
ZW1zX1tpbmRleF0uaXNJdGVtQXZhaWxhYmxlKCkgKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgICAgICBpZiAoIHN0cmNtcCgga2V5LCBjdXJyZW50LT5rZXlzX1tpbmRleF0gKSA9PSAwICkK
LSAgICAgICAgICAgIHJldHVybiAmY3VycmVudC0+aXRlbXNfW2luZGV4XTsKLSAgICAgIH0KLSAg
IH0KLSAgIHJldHVybiAwOwotfQotCi0KLVZhbHVlICoKLVZhbHVlSW50ZXJuYWxNYXA6OmZpbmQo
IGNvbnN0IGNoYXIgKmtleSApCi17Ci0gICBjb25zdCBWYWx1ZUludGVybmFsTWFwICpjb25zdFRo
aXMgPSB0aGlzOwotICAgcmV0dXJuIGNvbnN0X2Nhc3Q8VmFsdWUgKj4oIGNvbnN0VGhpcy0+Zmlu
ZCgga2V5ICkgKTsKLX0KLQotCi1WYWx1ZSAmCi1WYWx1ZUludGVybmFsTWFwOjpyZXNvbHZlUmVm
ZXJlbmNlKCBjb25zdCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGlzU3RhdGljICkKLXsKLSAgIEhhc2hLZXkgaGFzaGVkS2V5ID0gaGFzaCgga2V5
ICk7Ci0gICBpZiAoIGJ1Y2tldHNTaXplXyApCi0gICB7Ci0gICAgICBCdWNrZXRJbmRleCBidWNr
ZXRJbmRleCA9IGhhc2hlZEtleSAlIGJ1Y2tldHNTaXplXzsKLSAgICAgIFZhbHVlSW50ZXJuYWxM
aW5rICoqcHJldmlvdXMgPSAwOwotICAgICAgQnVja2V0SW5kZXggaW5kZXg7Ci0gICAgICBmb3Ig
KCBWYWx1ZUludGVybmFsTGluayAqY3VycmVudCA9ICZidWNrZXRzX1tidWNrZXRJbmRleF07IAot
ICAgICAgICAgICAgY3VycmVudCAhPSAwOyAKLSAgICAgICAgICAgIHByZXZpb3VzID0gJmN1cnJl
bnQtPm5leHRfLCBjdXJyZW50ID0gY3VycmVudC0+bmV4dF8gKQotICAgICAgewotICAgICAgICAg
Zm9yICggaW5kZXg9MDsgaW5kZXggPCBWYWx1ZUludGVybmFsTGluazo6aXRlbVBlckxpbms7ICsr
aW5kZXggKQotICAgICAgICAgewotICAgICAgICAgICAgaWYgKCBjdXJyZW50LT5pdGVtc19baW5k
ZXhdLmlzSXRlbUF2YWlsYWJsZSgpICkKLSAgICAgICAgICAgICAgIHJldHVybiBzZXROZXdJdGVt
KCBrZXksIGlzU3RhdGljLCBjdXJyZW50LCBpbmRleCApOwotICAgICAgICAgICAgaWYgKCBzdHJj
bXAoIGtleSwgY3VycmVudC0+a2V5c19baW5kZXhdICkgPT0gMCApCi0gICAgICAgICAgICAgICBy
ZXR1cm4gY3VycmVudC0+aXRlbXNfW2luZGV4XTsKLSAgICAgICAgIH0KLSAgICAgIH0KLSAgIH0K
LQotICAgcmVzZXJ2ZURlbHRhKCAxICk7Ci0gICByZXR1cm4gdW5zYWZlQWRkKCBrZXksIGlzU3Rh
dGljLCBoYXNoZWRLZXkgKTsKLX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbE1hcDo6cmVtb3Zl
KCBjb25zdCBjaGFyICprZXkgKQotewotICAgSGFzaEtleSBoYXNoZWRLZXkgPSBoYXNoKCBrZXkg
KTsKLSAgIGlmICggIWJ1Y2tldHNTaXplXyApCi0gICAgICByZXR1cm47Ci0gICBCdWNrZXRJbmRl
eCBidWNrZXRJbmRleCA9IGhhc2hlZEtleSAlIGJ1Y2tldHNTaXplXzsKLSAgIGZvciAoIFZhbHVl
SW50ZXJuYWxMaW5rICpsaW5rID0gJmJ1Y2tldHNfW2J1Y2tldEluZGV4XTsgCi0gICAgICAgICBs
aW5rICE9IDA7IAotICAgICAgICAgbGluayA9IGxpbmstPm5leHRfICkKLSAgIHsKLSAgICAgIEJ1
Y2tldEluZGV4IGluZGV4OwotICAgICAgZm9yICggaW5kZXggPTA7IGluZGV4IDwgVmFsdWVJbnRl
cm5hbExpbms6Oml0ZW1QZXJMaW5rOyArK2luZGV4ICkKLSAgICAgIHsKLSAgICAgICAgIGlmICgg
bGluay0+aXRlbXNfW2luZGV4XS5pc0l0ZW1BdmFpbGFibGUoKSApCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICBpZiAoIHN0cmNtcCgga2V5LCBsaW5rLT5rZXlzX1tpbmRleF0gKSA9PSAw
ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgIGRvQWN0dWFsUmVtb3ZlKCBsaW5rLCBpbmRleCwg
YnVja2V0SW5kZXggKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0KLSAgICAgIH0K
LSAgIH0KLX0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxNYXA6OmRvQWN0dWFsUmVtb3ZlKCBWYWx1
ZUludGVybmFsTGluayAqbGluaywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QnVja2V0SW5kZXggaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVj
a2V0SW5kZXggYnVja2V0SW5kZXggKQotewotICAgLy8gZmluZCBsYXN0IGl0ZW0gb2YgdGhlIGJ1
Y2tldCBhbmQgc3dhcCBpdCB3aXRoIHRoZSAncmVtb3ZlZCcgb25lLgotICAgLy8gc2V0IHJlbW92
ZWQgaXRlbXMgZmxhZ3MgdG8gJ2F2YWlsYWJsZScuCi0gICAvLyBpZiBsYXN0IHBhZ2Ugb25seSBj
b250YWlucyAnYXZhaWxhYmxlJyBpdGVtcywgdGhlbiBkZXNhbGxvY2F0ZSBpdCAoaXQncyBlbXB0
eSkKLSAgIFZhbHVlSW50ZXJuYWxMaW5rICombGFzdExpbmsgPSBnZXRMYXN0TGlua0luQnVja2V0
KCBpbmRleCApOwotICAgQnVja2V0SW5kZXggbGFzdEl0ZW1JbmRleCA9IDE7IC8vIGEgbGluayBj
YW4gbmV2ZXIgYmUgZW1wdHksIHNvIHN0YXJ0IGF0IDEKLSAgIGZvciAoIDsgICAKLSAgICAgICAg
IGxhc3RJdGVtSW5kZXggPCBWYWx1ZUludGVybmFsTGluazo6aXRlbVBlckxpbms7IAotICAgICAg
ICAgKytsYXN0SXRlbUluZGV4ICkgLy8gbWF5IGJlIG9wdGltaXplZCB3aXRoIGRpY290b21pYyBz
ZWFyY2gKLSAgIHsKLSAgICAgIGlmICggbGFzdExpbmstPml0ZW1zX1tsYXN0SXRlbUluZGV4XS5p
c0l0ZW1BdmFpbGFibGUoKSApCi0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIAotICAgQnVja2V0
SW5kZXggbGFzdFVzZWRJbmRleCA9IGxhc3RJdGVtSW5kZXggLSAxOwotICAgVmFsdWUgKnZhbHVl
VG9EZWxldGUgPSAmbGluay0+aXRlbXNfW2luZGV4XTsKLSAgIFZhbHVlICp2YWx1ZVRvUHJlc2Vy
dmUgPSAmbGFzdExpbmstPml0ZW1zX1tsYXN0VXNlZEluZGV4XTsKLSAgIGlmICggdmFsdWVUb0Rl
bGV0ZSAhPSB2YWx1ZVRvUHJlc2VydmUgKQotICAgICAgdmFsdWVUb0RlbGV0ZS0+c3dhcCggKnZh
bHVlVG9QcmVzZXJ2ZSApOwotICAgaWYgKCBsYXN0VXNlZEluZGV4ID09IDAgKSAgLy8gcGFnZSBp
cyBub3cgZW1wdHkKLSAgIHsgIC8vIHJlbW92ZSBpdCBmcm9tIGJ1Y2tldCBsaW5rZWQgbGlzdCBh
bmQgZGVsZXRlIGl0LgotICAgICAgVmFsdWVJbnRlcm5hbExpbmsgKmxpbmtQcmV2aW91c1RvTGFz
dCA9IGxhc3RMaW5rLT5wcmV2aW91c187Ci0gICAgICBpZiAoIGxpbmtQcmV2aW91c1RvTGFzdCAh
PSAwICkgICAvLyBjYW4gbm90IGRlbGV0ZWQgYnVja2V0IGxpbmsuCi0gICAgICB7Ci0gICAgICAg
ICBtYXBBbGxvY2F0b3IoKS0+cmVsZWFzZU1hcExpbmsoIGxhc3RMaW5rICk7Ci0gICAgICAgICBs
aW5rUHJldmlvdXNUb0xhc3QtPm5leHRfID0gMDsKLSAgICAgICAgIGxhc3RMaW5rID0gbGlua1By
ZXZpb3VzVG9MYXN0OwotICAgICAgfQotICAgfQotICAgZWxzZQotICAgewotICAgICAgVmFsdWUg
ZHVtbXk7Ci0gICAgICB2YWx1ZVRvUHJlc2VydmUtPnN3YXAoIGR1bW15ICk7IC8vIHJlc3RvcmUg
ZGVsZXRlZCB0byBkZWZhdWx0IFZhbHVlLgotICAgICAgdmFsdWVUb1ByZXNlcnZlLT5zZXRJdGVt
VXNlZCggZmFsc2UgKTsKLSAgIH0KLSAgIC0taXRlbUNvdW50XzsKLX0KLQotCi1WYWx1ZUludGVy
bmFsTGluayAqJgotVmFsdWVJbnRlcm5hbE1hcDo6Z2V0TGFzdExpbmtJbkJ1Y2tldCggQnVja2V0
SW5kZXggYnVja2V0SW5kZXggKQotewotICAgaWYgKCBidWNrZXRJbmRleCA9PSBidWNrZXRzU2l6
ZV8gLSAxICkKLSAgICAgIHJldHVybiB0YWlsTGlua187Ci0gICBWYWx1ZUludGVybmFsTGluayAq
JnByZXZpb3VzID0gYnVja2V0c19bYnVja2V0SW5kZXgrMV0ucHJldmlvdXNfOwotICAgaWYgKCAh
cHJldmlvdXMgKQotICAgICAgcHJldmlvdXMgPSAmYnVja2V0c19bYnVja2V0SW5kZXhdOwotICAg
cmV0dXJuIHByZXZpb3VzOwotfQotCi0KLVZhbHVlICYKLVZhbHVlSW50ZXJuYWxNYXA6OnNldE5l
d0l0ZW0oIGNvbnN0IGNoYXIgKmtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGlzU3RhdGljLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVJbnRlcm5h
bExpbmsgKmxpbmssIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0SW5kZXgg
aW5kZXggKQotewotICAgY2hhciAqZHVwbGljYXRlZEtleSA9IG1ha2VNZW1iZXJOYW1lKCBrZXkg
KTsKLSAgICsraXRlbUNvdW50XzsKLSAgIGxpbmstPmtleXNfW2luZGV4XSA9IGR1cGxpY2F0ZWRL
ZXk7Ci0gICBsaW5rLT5pdGVtc19baW5kZXhdLnNldEl0ZW1Vc2VkKCk7Ci0gICBsaW5rLT5pdGVt
c19baW5kZXhdLnNldE1lbWJlck5hbWVJc1N0YXRpYyggaXNTdGF0aWMgKTsKLSAgIHJldHVybiBs
aW5rLT5pdGVtc19baW5kZXhdOyAvLyBpdGVtcyBhbHJlYWR5IGRlZmF1bHQgY29uc3RydWN0ZWQu
Ci19Ci0KLQotVmFsdWUgJgotVmFsdWVJbnRlcm5hbE1hcDo6dW5zYWZlQWRkKCBjb25zdCBjaGFy
ICprZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU3RhdGljLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzaEtleSBoYXNoZWRLZXkgKQotewotICAgSlNP
Tl9BU1NFUlRfTUVTU0FHRSggYnVja2V0c1NpemVfID4gMCwgIlZhbHVlSW50ZXJuYWxNYXA6OnVu
c2FmZUFkZCgpOiBpbnRlcm5hbCBsb2dpYyBlcnJvci4iICk7Ci0gICBCdWNrZXRJbmRleCBidWNr
ZXRJbmRleCA9IGhhc2hlZEtleSAlIGJ1Y2tldHNTaXplXzsKLSAgIFZhbHVlSW50ZXJuYWxMaW5r
IComcHJldmlvdXNMaW5rID0gZ2V0TGFzdExpbmtJbkJ1Y2tldCggYnVja2V0SW5kZXggKTsKLSAg
IFZhbHVlSW50ZXJuYWxMaW5rICpsaW5rID0gcHJldmlvdXNMaW5rOwotICAgQnVja2V0SW5kZXgg
aW5kZXg7Ci0gICBmb3IgKCBpbmRleCA9MDsgaW5kZXggPCBWYWx1ZUludGVybmFsTGluazo6aXRl
bVBlckxpbms7ICsraW5kZXggKQotICAgewotICAgICAgaWYgKCBsaW5rLT5pdGVtc19baW5kZXhd
LmlzSXRlbUF2YWlsYWJsZSgpICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAgaWYgKCBpbmRl
eCA9PSBWYWx1ZUludGVybmFsTGluazo6aXRlbVBlckxpbmsgKSAvLyBuZWVkIHRvIGFkZCBhIG5l
dyBwYWdlCi0gICB7Ci0gICAgICBWYWx1ZUludGVybmFsTGluayAqbmV3TGluayA9IG1hcEFsbG9j
YXRvcigpLT5hbGxvY2F0ZU1hcExpbmsoKTsKLSAgICAgIGluZGV4ID0gMDsKLSAgICAgIGxpbmst
Pm5leHRfID0gbmV3TGluazsKLSAgICAgIHByZXZpb3VzTGluayA9IG5ld0xpbms7Ci0gICAgICBs
aW5rID0gbmV3TGluazsKLSAgIH0KLSAgIHJldHVybiBzZXROZXdJdGVtKCBrZXksIGlzU3RhdGlj
LCBsaW5rLCBpbmRleCApOwotfQotCi0KLVZhbHVlSW50ZXJuYWxNYXA6Okhhc2hLZXkgCi1WYWx1
ZUludGVybmFsTWFwOjpoYXNoKCBjb25zdCBjaGFyICprZXkgKSBjb25zdAotewotICAgSGFzaEtl
eSBoYXNoID0gMDsKLSAgIHdoaWxlICggKmtleSApCi0gICAgICBoYXNoICs9ICprZXkrKyAqIDM3
OwotICAgcmV0dXJuIGhhc2g7Ci19Ci0KLQotaW50IAotVmFsdWVJbnRlcm5hbE1hcDo6Y29tcGFy
ZSggY29uc3QgVmFsdWVJbnRlcm5hbE1hcCAmb3RoZXIgKSBjb25zdAotewotICAgaW50IHNpemVE
aWZmKCBpdGVtQ291bnRfIC0gb3RoZXIuaXRlbUNvdW50XyApOwotICAgaWYgKCBzaXplRGlmZiAh
PSAwICkKLSAgICAgIHJldHVybiBzaXplRGlmZjsKLSAgIC8vIFN0cmljdCBvcmRlciBndWFyYW50
eSBpcyByZXF1aXJlZC4gQ29tcGFyZSBhbGwga2V5cyBGSVJTVCwgdGhlbiBjb21wYXJlIHZhbHVl
cy4KLSAgIEl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICBJdGVyYXRvclN0YXRlIGl0RW5kOwotICAgbWFr
ZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICBtYWtlRW5kSXRlcmF0b3IoIGl0RW5kICk7Ci0gICBm
b3IgKCA7ICFlcXVhbHMoaXQsaXRFbmQpOyBpbmNyZW1lbnQoaXQpICkKLSAgIHsKLSAgICAgIGlm
ICggIW90aGVyLmZpbmQoIGtleSggaXQgKSApICkKLSAgICAgICAgIHJldHVybiAxOwotICAgfQot
Ci0gICAvLyBBbGwga2V5cyBhcmUgZXF1YWxzLCBsZXQncyBjb21wYXJlIHZhbHVlcwotICAgbWFr
ZUJlZ2luSXRlcmF0b3IoIGl0ICk7Ci0gICBmb3IgKCA7ICFlcXVhbHMoaXQsaXRFbmQpOyBpbmNy
ZW1lbnQoaXQpICkKLSAgIHsKLSAgICAgIGNvbnN0IFZhbHVlICpvdGhlclZhbHVlID0gb3RoZXIu
ZmluZCgga2V5KCBpdCApICk7Ci0gICAgICBpbnQgdmFsdWVEaWZmID0gdmFsdWUoaXQpLmNvbXBh
cmUoICpvdGhlclZhbHVlICk7Ci0gICAgICBpZiAoIHZhbHVlRGlmZiAhPSAwICkKLSAgICAgICAg
IHJldHVybiB2YWx1ZURpZmY7Ci0gICB9Ci0gICByZXR1cm4gMDsKLX0KLQotCi12b2lkIAotVmFs
dWVJbnRlcm5hbE1hcDo6bWFrZUJlZ2luSXRlcmF0b3IoIEl0ZXJhdG9yU3RhdGUgJml0ICkgY29u
c3QKLXsKLSAgIGl0Lm1hcF8gPSBjb25zdF9jYXN0PFZhbHVlSW50ZXJuYWxNYXAgKj4oIHRoaXMg
KTsKLSAgIGl0LmJ1Y2tldEluZGV4XyA9IDA7Ci0gICBpdC5pdGVtSW5kZXhfID0gMDsKLSAgIGl0
LmxpbmtfID0gYnVja2V0c187Ci19Ci0KLQotdm9pZCAKLVZhbHVlSW50ZXJuYWxNYXA6Om1ha2VF
bmRJdGVyYXRvciggSXRlcmF0b3JTdGF0ZSAmaXQgKSBjb25zdAotewotICAgaXQubWFwXyA9IGNv
bnN0X2Nhc3Q8VmFsdWVJbnRlcm5hbE1hcCAqPiggdGhpcyApOwotICAgaXQuYnVja2V0SW5kZXhf
ID0gYnVja2V0c1NpemVfOwotICAgaXQuaXRlbUluZGV4XyA9IDA7Ci0gICBpdC5saW5rXyA9IDA7
Ci19Ci0KLQotYm9vbCAKLVZhbHVlSW50ZXJuYWxNYXA6OmVxdWFscyggY29uc3QgSXRlcmF0b3JT
dGF0ZSAmeCwgY29uc3QgSXRlcmF0b3JTdGF0ZSAmb3RoZXIgKQotewotICAgcmV0dXJuIHgubWFw
XyA9PSBvdGhlci5tYXBfICAKLSAgICAgICAgICAmJiAgeC5idWNrZXRJbmRleF8gPT0gb3RoZXIu
YnVja2V0SW5kZXhfICAKLSAgICAgICAgICAmJiAgeC5saW5rXyA9PSBvdGhlci5saW5rXwotICAg
ICAgICAgICYmICB4Lml0ZW1JbmRleF8gPT0gb3RoZXIuaXRlbUluZGV4XzsKLX0KLQotCi12b2lk
IAotVmFsdWVJbnRlcm5hbE1hcDo6aW5jcmVtZW50QnVja2V0KCBJdGVyYXRvclN0YXRlICZpdGVy
YXRvciApCi17Ci0gICArK2l0ZXJhdG9yLmJ1Y2tldEluZGV4XzsKLSAgIEpTT05fQVNTRVJUX01F
U1NBR0UoIGl0ZXJhdG9yLmJ1Y2tldEluZGV4XyA8PSBpdGVyYXRvci5tYXBfLT5idWNrZXRzU2l6
ZV8sCi0gICAgICAiVmFsdWVJbnRlcm5hbE1hcDo6aW5jcmVtZW50KCk6IGF0dGVtcHRpbmcgdG8g
aXRlcmF0ZSBiZXlvbmQgZW5kLiIgKTsKLSAgIGlmICggaXRlcmF0b3IuYnVja2V0SW5kZXhfID09
IGl0ZXJhdG9yLm1hcF8tPmJ1Y2tldHNTaXplXyApCi0gICAgICBpdGVyYXRvci5saW5rXyA9IDA7
Ci0gICBlbHNlCi0gICAgICBpdGVyYXRvci5saW5rXyA9ICYoaXRlcmF0b3IubWFwXy0+YnVja2V0
c19baXRlcmF0b3IuYnVja2V0SW5kZXhfXSk7Ci0gICBpdGVyYXRvci5pdGVtSW5kZXhfID0gMDsK
LX0KLQotCi12b2lkIAotVmFsdWVJbnRlcm5hbE1hcDo6aW5jcmVtZW50KCBJdGVyYXRvclN0YXRl
ICZpdGVyYXRvciApCi17Ci0gICBKU09OX0FTU0VSVF9NRVNTQUdFKCBpdGVyYXRvci5tYXBfLCAi
QXR0ZW1wdGluZyB0byBpdGVyYXRvciB1c2luZyBpbnZhbGlkIGl0ZXJhdG9yLiIgKTsKLSAgICsr
aXRlcmF0b3IuaXRlbUluZGV4XzsKLSAgIGlmICggaXRlcmF0b3IuaXRlbUluZGV4XyA9PSBWYWx1
ZUludGVybmFsTGluazo6aXRlbVBlckxpbmsgKQotICAgewotICAgICAgSlNPTl9BU1NFUlRfTUVT
U0FHRSggaXRlcmF0b3IubGlua18gIT0gMCwKLSAgICAgICAgICJWYWx1ZUludGVybmFsTWFwOjpp
bmNyZW1lbnQoKTogYXR0ZW1wdGluZyB0byBpdGVyYXRlIGJleW9uZCBlbmQuIiApOwotICAgICAg
aXRlcmF0b3IubGlua18gPSBpdGVyYXRvci5saW5rXy0+bmV4dF87Ci0gICAgICBpZiAoIGl0ZXJh
dG9yLmxpbmtfID09IDAgKQotICAgICAgICAgaW5jcmVtZW50QnVja2V0KCBpdGVyYXRvciApOwot
ICAgfQotICAgZWxzZSBpZiAoIGl0ZXJhdG9yLmxpbmtfLT5pdGVtc19baXRlcmF0b3IuaXRlbUlu
ZGV4X10uaXNJdGVtQXZhaWxhYmxlKCkgKQotICAgewotICAgICAgaW5jcmVtZW50QnVja2V0KCBp
dGVyYXRvciApOwotICAgfQotfQotCi0KLXZvaWQgCi1WYWx1ZUludGVybmFsTWFwOjpkZWNyZW1l
bnQoIEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICkKLXsKLSAgIGlmICggaXRlcmF0b3IuaXRlbUlu
ZGV4XyA9PSAwICkKLSAgIHsKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0ZXJhdG9yLm1h
cF8sICJBdHRlbXB0aW5nIHRvIGl0ZXJhdGUgdXNpbmcgaW52YWxpZCBpdGVyYXRvci4iICk7Ci0g
ICAgICBpZiAoIGl0ZXJhdG9yLmxpbmtfID09ICZpdGVyYXRvci5tYXBfLT5idWNrZXRzX1tpdGVy
YXRvci5idWNrZXRJbmRleF9dICkKLSAgICAgIHsKLSAgICAgICAgIEpTT05fQVNTRVJUX01FU1NB
R0UoIGl0ZXJhdG9yLmJ1Y2tldEluZGV4XyA+IDAsICJBdHRlbXB0aW5nIHRvIGl0ZXJhdGUgYmV5
b25kIGJlZ2lubmluZy4iICk7Ci0gICAgICAgICAtLShpdGVyYXRvci5idWNrZXRJbmRleF8pOwot
ICAgICAgfQotICAgICAgaXRlcmF0b3IubGlua18gPSBpdGVyYXRvci5saW5rXy0+cHJldmlvdXNf
OwotICAgICAgaXRlcmF0b3IuaXRlbUluZGV4XyA9IFZhbHVlSW50ZXJuYWxMaW5rOjppdGVtUGVy
TGluayAtIDE7Ci0gICB9Ci19Ci0KLQotY29uc3QgY2hhciAqCi1WYWx1ZUludGVybmFsTWFwOjpr
ZXkoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yICkKLXsKLSAgIEpTT05fQVNTRVJUX01F
U1NBR0UoIGl0ZXJhdG9yLmxpbmtfLCAiQXR0ZW1wdGluZyB0byBpdGVyYXRlIHVzaW5nIGludmFs
aWQgaXRlcmF0b3IuIiApOwotICAgcmV0dXJuIGl0ZXJhdG9yLmxpbmtfLT5rZXlzX1tpdGVyYXRv
ci5pdGVtSW5kZXhfXTsKLX0KLQotY29uc3QgY2hhciAqCi1WYWx1ZUludGVybmFsTWFwOjprZXko
IGNvbnN0IEl0ZXJhdG9yU3RhdGUgJml0ZXJhdG9yLCBib29sICZpc1N0YXRpYyApCi17Ci0gICBK
U09OX0FTU0VSVF9NRVNTQUdFKCBpdGVyYXRvci5saW5rXywgIkF0dGVtcHRpbmcgdG8gaXRlcmF0
ZSB1c2luZyBpbnZhbGlkIGl0ZXJhdG9yLiIgKTsKLSAgIGlzU3RhdGljID0gaXRlcmF0b3IubGlu
a18tPml0ZW1zX1tpdGVyYXRvci5pdGVtSW5kZXhfXS5pc01lbWJlck5hbWVTdGF0aWMoKTsKLSAg
IHJldHVybiBpdGVyYXRvci5saW5rXy0+a2V5c19baXRlcmF0b3IuaXRlbUluZGV4X107Ci19Ci0K
LQotVmFsdWUgJgotVmFsdWVJbnRlcm5hbE1hcDo6dmFsdWUoIGNvbnN0IEl0ZXJhdG9yU3RhdGUg
Jml0ZXJhdG9yICkKLXsKLSAgIEpTT05fQVNTRVJUX01FU1NBR0UoIGl0ZXJhdG9yLmxpbmtfLCAi
QXR0ZW1wdGluZyB0byBpdGVyYXRlIHVzaW5nIGludmFsaWQgaXRlcmF0b3IuIiApOwotICAgcmV0
dXJuIGl0ZXJhdG9yLmxpbmtfLT5pdGVtc19baXRlcmF0b3IuaXRlbUluZGV4X107Ci19Ci0KLQot
aW50IAotVmFsdWVJbnRlcm5hbE1hcDo6ZGlzdGFuY2UoIGNvbnN0IEl0ZXJhdG9yU3RhdGUgJngs
IGNvbnN0IEl0ZXJhdG9yU3RhdGUgJnkgKQotewotICAgaW50IG9mZnNldCA9IDA7Ci0gICBJdGVy
YXRvclN0YXRlIGl0ID0geDsKLSAgIHdoaWxlICggIWVxdWFscyggaXQsIHkgKSApCi0gICAgICBp
bmNyZW1lbnQoIGl0ICk7Ci0gICByZXR1cm4gb2Zmc2V0OwotfQotCi19IC8vIG5hbWVzcGFjZSBK
c29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3NyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAKaW5kZXggMWYzODczYWQ5NTU2Nzk0ZjMxZWNh
ODBhNGUxYzJjYzI5ZWZlOGI3ZC4uMDA1YWIyNjg5MjdiZjVlODhmMzBlMDc2ZmMzOTZkZjM1MTFi
ZjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcApAQCAtMSw5MTggKzEsMjAxNyBAQAot
Ly8gQ29weXJpZ2h0IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAy
MDA3LTIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisvLyBD
b3B5cmlnaHQgKEMpIDIwMTYgSW5mb1RlQ1MgSlNDLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8g
RGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJl
ZCBhbmQKIC8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmlsZSBM
SUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5u
ZXQvTElDRU5TRQogCiAjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCi0jIGluY2x1
ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgotIyBpbmNsdWRlIDxqc29uL3JlYWRlci5oPgotIyBpbmNs
dWRlIDxqc29uL3ZhbHVlLmg+Ci0jIGluY2x1ZGUgImpzb25fdG9vbC5oIgorI2luY2x1ZGUgImpz
b25fdG9vbC5oIgorI2luY2x1ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPGpzb24v
cmVhZGVyLmg+CisjaW5jbHVkZSA8anNvbi92YWx1ZS5oPgogI2VuZGlmIC8vIGlmICFkZWZpbmVk
KEpTT05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8Y3N0
ZGlvPgogI2luY2x1ZGUgPGNhc3NlcnQ+CiAjaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxz
dGRleGNlcHQ+CisjaW5jbHVkZSA8aXN0cmVhbT4KKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUg
PHV0aWxpdHk+CisKKyNpbmNsdWRlIDxjc3RkaW8+CisjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAz
TAogCi0jaWYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDguMAotI3ByYWdtYSB3YXJuaW5nKCBk
aXNhYmxlIDogNDk5NiApICAgLy8gZGlzYWJsZSB3YXJuaW5nIGFib3V0IHN0cmR1cCBiZWluZyBk
ZXByZWNhdGVkLgorI2lmICFkZWZpbmVkKHNzY2FuZikKKyNkZWZpbmUgc3NjYW5mIHN0ZDo6c3Nj
YW5mCiAjZW5kaWYKIAorI2VuZGlmIC8vX19jcGx1c3BsdXMKKworI2lmIGRlZmluZWQoX01TQ19W
RVIpCisjaWYgIWRlZmluZWQoX0NSVF9TRUNVUkVfQ1BQX09WRVJMT0FEX1NUQU5EQVJEX05BTUVT
KQorI2RlZmluZSBfQ1JUX1NFQ1VSRV9DUFBfT1ZFUkxPQURfU1RBTkRBUkRfTkFNRVMgMQorI2Vu
ZGlmIC8vX0NSVF9TRUNVUkVfQ1BQX09WRVJMT0FEX1NUQU5EQVJEX05BTUVTCisjZW5kaWYgLy9f
TVNDX1ZFUgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKy8vIERpc2FibGUgd2FybmluZyBhYm91
dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5
NikKKyNlbmRpZgorCisvLyBEZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEX1NUQUNLX0xJTUlUIGFz
IGFuIGFwcHJvcHJpYXRlIGludGVnZXIgYXQgY29tcGlsZQorLy8gdGltZSB0byBjaGFuZ2UgdGhl
IHN0YWNrIGxpbWl0CisjaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEX1NUQUNLX0xJTUlU
KQorI2RlZmluZSBKU09OQ1BQX0RFUFJFQ0FURURfU1RBQ0tfTElNSVQgMTAwMAorI2VuZGlmCisK
K3N0YXRpYyBzaXplX3QgY29uc3Qgc3RhY2tMaW1pdF9nID0KKyAgICBKU09OQ1BQX0RFUFJFQ0FU
RURfU1RBQ0tfTElNSVQ7IC8vIHNlZSByZWFkVmFsdWUoKQorCiBuYW1lc3BhY2UgSnNvbiB7CiAK
KyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChkZWZpbmVkKF9DUFBMSUJfVkVSKSAmJiBf
Q1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxDaGFyUmVhZGVyPiBD
aGFyUmVhZGVyUHRyOworI2Vsc2UKK3R5cGVkZWYgc3RkOjphdXRvX3B0cjxDaGFyUmVhZGVyPiBD
aGFyUmVhZGVyUHRyOworI2VuZGlmCisKIC8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIEZlYXR1
cmVzCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi1GZWF0dXJlczo6RmVh
dHVyZXMoKQotICAgOiBhbGxvd0NvbW1lbnRzXyggdHJ1ZSApCi0gICAsIHN0cmljdFJvb3RfKCBm
YWxzZSApCi17Ci19CitGZWF0dXJlczo6RmVhdHVyZXMoKSA9IGRlZmF1bHQ7CiAKK0ZlYXR1cmVz
IEZlYXR1cmVzOjphbGwoKSB7IHJldHVybiB7fTsgfQogCi1GZWF0dXJlcyAKLUZlYXR1cmVzOjph
bGwoKQotewotICAgcmV0dXJuIEZlYXR1cmVzKCk7CitGZWF0dXJlcyBGZWF0dXJlczo6c3RyaWN0
TW9kZSgpIHsKKyAgRmVhdHVyZXMgZmVhdHVyZXM7CisgIGZlYXR1cmVzLmFsbG93Q29tbWVudHNf
ID0gZmFsc2U7CisgIGZlYXR1cmVzLnN0cmljdFJvb3RfID0gdHJ1ZTsKKyAgZmVhdHVyZXMuYWxs
b3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18gPSBmYWxzZTsKKyAgZmVhdHVyZXMuYWxsb3dOdW1l
cmljS2V5c18gPSBmYWxzZTsKKyAgcmV0dXJuIGZlYXR1cmVzOwogfQogCisvLyBJbXBsZW1lbnRh
dGlvbiBvZiBjbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAKLUZlYXR1cmVzIAotRmVhdHVyZXM6OnN0cmljdE1vZGUoKQotewotICAgRmVhdHVyZXMgZmVh
dHVyZXM7Ci0gICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IGZhbHNlOwotICAgZmVhdHVyZXMu
c3RyaWN0Um9vdF8gPSB0cnVlOwotICAgcmV0dXJuIGZlYXR1cmVzOworYm9vbCBSZWFkZXI6OmNv
bnRhaW5zTmV3TGluZShSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCBSZWFkZXI6OkxvY2F0aW9uIGVu
ZCkgeworICBmb3IgKDsgYmVnaW4gPCBlbmQ7ICsrYmVnaW4pCisgICAgaWYgKCpiZWdpbiA9PSAn
XG4nIHx8ICpiZWdpbiA9PSAnXHInKQorICAgICAgcmV0dXJuIHRydWU7CisgIHJldHVybiBmYWxz
ZTsKIH0KIAotLy8gSW1wbGVtZW50YXRpb24gb2YgY2xhc3MgUmVhZGVyCi0vLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQ2xhc3MgUmVhZGVyCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAor
UmVhZGVyOjpSZWFkZXIoKQorICAgIDogZXJyb3JzXygpLCBkb2N1bWVudF8oKSwgY29tbWVudHNC
ZWZvcmVfKCksIGZlYXR1cmVzXyhGZWF0dXJlczo6YWxsKCkpIHt9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCAKLWluKCBSZWFkZXI6OkNoYXIgYywgUmVhZGVyOjpDaGFyIGMxLCBSZWFkZXI6OkNoYXIg
YzIsIFJlYWRlcjo6Q2hhciBjMywgUmVhZGVyOjpDaGFyIGM0ICkKLXsKLSAgIHJldHVybiBjID09
IGMxICB8fCAgYyA9PSBjMiAgfHwgIGMgPT0gYzMgIHx8ICBjID09IGM0OworUmVhZGVyOjpSZWFk
ZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKQorICAgIDogZXJyb3JzXygpLCBkb2N1bWVudF8o
KSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwgbGFzdFZhbHVlRW5kXygpLAorICAgICAg
bGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwgZmVhdHVyZXNfKGZlYXR1cmVzKSwgY29s
bGVjdENvbW1lbnRzXygpIHsKIH0KIAotc3RhdGljIGlubGluZSBib29sIAotaW4oIFJlYWRlcjo6
Q2hhciBjLCBSZWFkZXI6OkNoYXIgYzEsIFJlYWRlcjo6Q2hhciBjMiwgUmVhZGVyOjpDaGFyIGMz
LCBSZWFkZXI6OkNoYXIgYzQsIFJlYWRlcjo6Q2hhciBjNSApCi17Ci0gICByZXR1cm4gYyA9PSBj
MSAgfHwgIGMgPT0gYzIgIHx8ICBjID09IGMzICB8fCAgYyA9PSBjNCAgfHwgIGMgPT0gYzU7Citi
b29sIFJlYWRlcjo6cGFyc2UoY29uc3Qgc3RkOjpzdHJpbmcmIGRvY3VtZW50LAorICAgICAgICAg
ICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENv
bW1lbnRzKSB7CisgIGRvY3VtZW50Xy5hc3NpZ24oZG9jdW1lbnQuYmVnaW4oKSwgZG9jdW1lbnQu
ZW5kKCkpOworICBjb25zdCBjaGFyKiBiZWdpbiA9IGRvY3VtZW50Xy5jX3N0cigpOworICBjb25z
dCBjaGFyKiBlbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5ndGgoKTsKKyAgcmV0dXJuIHBhcnNl
KGJlZ2luLCBlbmQsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7CiB9CiAKK2Jvb2wgUmVhZGVyOjpw
YXJzZShzdGQ6OmlzdHJlYW0mIGlzLCBWYWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMp
IHsKKyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGJlZ2luKGlzKTsKKyAgLy8gc3Rk
Ojppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGVuZDsKKyAgLy8gVGhvc2Ugd291bGQgYWxsb3cgc3Ry
ZWFtZWQgaW5wdXQgZnJvbSBhIGZpbGUsIGlmIHBhcnNlKCkgd2VyZSBhCisgIC8vIHRlbXBsYXRl
IGZ1bmN0aW9uLgorCisgIC8vIFNpbmNlIFN0cmluZyBpcyByZWZlcmVuY2UtY291bnRlZCwgdGhp
cyBhdCBsZWFzdCBkb2VzIG5vdAorICAvLyBjcmVhdGUgYW4gZXh0cmEgY29weS4KKyAgU3RyaW5n
IGRvYzsKKyAgc3RkOjpnZXRsaW5lKGlzLCBkb2MsIChjaGFyKUVPRik7CisgIHJldHVybiBwYXJz
ZShkb2MuZGF0YSgpLCBkb2MuZGF0YSgpICsgZG9jLnNpemUoKSwgcm9vdCwgY29sbGVjdENvbW1l
bnRzKTsKK30KIAotc3RhdGljIGJvb2wgCi1jb250YWluc05ld0xpbmUoIFJlYWRlcjo6TG9jYXRp
b24gYmVnaW4sIAotICAgICAgICAgICAgICAgICBSZWFkZXI6OkxvY2F0aW9uIGVuZCApCi17Ci0g
ICBmb3IgKCA7YmVnaW4gPCBlbmQ7ICsrYmVnaW4gKQotICAgICAgaWYgKCAqYmVnaW4gPT0gJ1xu
JyAgfHwgICpiZWdpbiA9PSAnXHInICkKLSAgICAgICAgIHJldHVybiB0cnVlOwotICAgcmV0dXJu
IGZhbHNlOworYm9vbCBSZWFkZXI6OnBhcnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAgICAgICAgICBWYWx1
ZSYgcm9vdCwKKyAgICAgICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cykgeworICBp
ZiAoIWZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGNvbGxlY3RDb21tZW50cyA9IGZh
bHNlOworICB9CisKKyAgYmVnaW5fID0gYmVnaW5Eb2M7CisgIGVuZF8gPSBlbmREb2M7CisgIGNv
bGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7CisgIGN1cnJlbnRfID0gYmVnaW5fOwor
ICBsYXN0VmFsdWVFbmRfID0gbnVsbHB0cjsKKyAgbGFzdFZhbHVlXyA9IG51bGxwdHI7CisgIGNv
bW1lbnRzQmVmb3JlXy5jbGVhcigpOworICBlcnJvcnNfLmNsZWFyKCk7CisgIHdoaWxlICghbm9k
ZXNfLmVtcHR5KCkpCisgICAgbm9kZXNfLnBvcCgpOworICBub2Rlc18ucHVzaCgmcm9vdCk7CisK
KyAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7CisgIFRva2VuIHRva2VuOworICBza2lw
Q29tbWVudFRva2Vucyh0b2tlbik7CisgIGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFjb21tZW50
c0JlZm9yZV8uZW1wdHkoKSkKKyAgICByb290LnNldENvbW1lbnQoY29tbWVudHNCZWZvcmVfLCBj
b21tZW50QWZ0ZXIpOworICBpZiAoZmVhdHVyZXNfLnN0cmljdFJvb3RfKSB7CisgICAgaWYgKCFy
b290LmlzQXJyYXkoKSAmJiAhcm9vdC5pc09iamVjdCgpKSB7CisgICAgICAvLyBTZXQgZXJyb3Ig
bG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNob3VsZCBiZSBmaXJzdCB0b2tlbiBm
b3VuZAorICAgICAgLy8gaW4gZG9jCisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7Cisg
ICAgICB0b2tlbi5zdGFydF8gPSBiZWdpbkRvYzsKKyAgICAgIHRva2VuLmVuZF8gPSBlbmREb2M7
CisgICAgICBhZGRFcnJvcigKKyAgICAgICAgICAiQSB2YWxpZCBKU09OIGRvY3VtZW50IG11c3Qg
YmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4iLAorICAgICAgICAgIHRva2Vu
KTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHN1Y2Nlc3NmdWw7
CiB9CiAKK2Jvb2wgUmVhZGVyOjpyZWFkVmFsdWUoKSB7CisgIC8vIHJlYWRWYWx1ZSgpIG1heSBj
YWxsIGl0c2VsZiBvbmx5IGlmIGl0IGNhbGxzIHJlYWRPYmplY3QoKSBvciBSZWFkQXJyYXkoKS4K
KyAgLy8gVGhlc2UgbWV0aG9kcyBleGVjdXRlIG5vZGVzXy5wdXNoKCkganVzdCBiZWZvcmUgYW5k
IG5vZGVzXy5wb3ApKCkganVzdAorICAvLyBhZnRlciBjYWxsaW5nIHJlYWRWYWx1ZSgpLiBwYXJz
ZSgpIGV4ZWN1dGVzIG9uZSBub2Rlc18ucHVzaCgpLCBzbyA+IGluc3RlYWQKKyAgLy8gb2YgPj0u
CisgIGlmIChub2Rlc18uc2l6ZSgpID4gc3RhY2tMaW1pdF9nKQorICAgIHRocm93UnVudGltZUVy
cm9yKCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLiIpOworCisgIFRva2VuIHRv
a2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRy
dWU7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgp
KSB7CisgICAgY3VycmVudFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1l
bnRCZWZvcmUpOworICAgIGNvbW1lbnRzQmVmb3JlXy5jbGVhcigpOworICB9CisKKyAgc3dpdGNo
ICh0b2tlbi50eXBlXykgeworICBjYXNlIHRva2VuT2JqZWN0QmVnaW46CisgICAgc3VjY2Vzc2Z1
bCA9IHJlYWRPYmplY3QodG9rZW4pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5QmVnaW46
CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRBcnJheSh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRv
a2VuTnVtYmVyOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4pOworICAgIGJy
ZWFrOworICBjYXNlIHRva2VuU3RyaW5nOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmco
dG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuVHJ1ZTogeworICAgIFZhbHVlIHYodHJ1
ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAg
Y2FzZSB0b2tlbkZhbHNlOiB7CisgICAgVmFsdWUgdihmYWxzZSk7CisgICAgY3VycmVudFZhbHVl
KCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9r
ZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0
b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbk51bGw6IHsKKyAg
ICBWYWx1ZSB2OworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIH0gYnJl
YWs7CisgIGNhc2UgdG9rZW5BcnJheVNlcGFyYXRvcjoKKyAgY2FzZSB0b2tlbk9iamVjdEVuZDoK
KyAgY2FzZSB0b2tlbkFycmF5RW5kOgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dEcm9wcGVkTnVs
bFBsYWNlaG9sZGVyc18pIHsKKyAgICAgIC8vICJVbi1yZWFkIiB0aGUgY3VycmVudCB0b2tlbiBh
bmQgbWFyayB0aGUgY3VycmVudCB2YWx1ZSBhcyBhIG51bGwKKyAgICAgIC8vIHRva2VuLgorICAg
ICAgY3VycmVudF8tLTsKKyAgICAgIFZhbHVlIHY7CisgICAgICBjdXJyZW50VmFsdWUoKS5zd2Fw
UGF5bG9hZCh2KTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KGN1cnJlbnRf
IC0gYmVnaW5fIC0gMSk7CisgICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJy
ZW50XyAtIGJlZ2luXyk7CisgICAgICBicmVhazsKKyAgICB9IC8vIEVsc2UsIGZhbGwgdGhyb3Vn
aC4uLgorICBkZWZhdWx0OgorICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2Vu
LnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9r
ZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgcmV0dXJuIGFkZEVycm9yKCJTeW50YXggZXJyb3I6IHZh
bHVlLCBvYmplY3Qgb3IgYXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4pOworICB9CisKKyAgaWYgKGNv
bGxlY3RDb21tZW50c18pIHsKKyAgICBsYXN0VmFsdWVFbmRfID0gY3VycmVudF87CisgICAgbGFz
dFZhbHVlXyA9ICZjdXJyZW50VmFsdWUoKTsKKyAgfQorCisgIHJldHVybiBzdWNjZXNzZnVsOwor
fQogCi0vLyBDbGFzcyBSZWFkZXIKLS8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwordm9pZCBSZWFkZXI6OnNraXBDb21t
ZW50VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVhdHVyZXNfLmFsbG93Q29tbWVudHNf
KSB7CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgICB9IHdoaWxlICh0b2tl
bi50eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2UgeworICAgIHJlYWRUb2tlbih0b2tl
bik7CisgIH0KK30KIAotUmVhZGVyOjpSZWFkZXIoKQotICAgIDogZXJyb3JzXygpLAotICAgICAg
ZG9jdW1lbnRfKCksCi0gICAgICBiZWdpbl8oKSwKLSAgICAgIGVuZF8oKSwKLSAgICAgIGN1cnJl
bnRfKCksCi0gICAgICBsYXN0VmFsdWVFbmRfKCksCi0gICAgICBsYXN0VmFsdWVfKCksCi0gICAg
ICBjb21tZW50c0JlZm9yZV8oKSwKLSAgICAgIGZlYXR1cmVzXyggRmVhdHVyZXM6OmFsbCgpICks
Ci0gICAgICBjb2xsZWN0Q29tbWVudHNfKCkKLXsKLX0KLQotCi1SZWFkZXI6OlJlYWRlciggY29u
c3QgRmVhdHVyZXMgJmZlYXR1cmVzICkKLSAgICA6IGVycm9yc18oKSwKLSAgICAgIGRvY3VtZW50
XygpLAotICAgICAgYmVnaW5fKCksCi0gICAgICBlbmRfKCksCi0gICAgICBjdXJyZW50XygpLAot
ICAgICAgbGFzdFZhbHVlRW5kXygpLAotICAgICAgbGFzdFZhbHVlXygpLAotICAgICAgY29tbWVu
dHNCZWZvcmVfKCksCi0gICAgICBmZWF0dXJlc18oIGZlYXR1cmVzICksCi0gICAgICBjb2xsZWN0
Q29tbWVudHNfKCkKLXsKLX0KLQotCi1ib29sCi1SZWFkZXI6OnBhcnNlKCBjb25zdCBzdGQ6OnN0
cmluZyAmZG9jdW1lbnQsIAotICAgICAgICAgICAgICAgVmFsdWUgJnJvb3QsCi0gICAgICAgICAg
ICAgICBib29sIGNvbGxlY3RDb21tZW50cyApCi17Ci0gICBkb2N1bWVudF8gPSBkb2N1bWVudDsK
LSAgIGNvbnN0IGNoYXIgKmJlZ2luID0gZG9jdW1lbnRfLmNfc3RyKCk7Ci0gICBjb25zdCBjaGFy
ICplbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5ndGgoKTsKLSAgIHJldHVybiBwYXJzZSggYmVn
aW4sIGVuZCwgcm9vdCwgY29sbGVjdENvbW1lbnRzICk7Ci19Ci0KLQotYm9vbAotUmVhZGVyOjpw
YXJzZSggc3RkOjppc3RyZWFtJiBzaW4sCi0gICAgICAgICAgICAgICBWYWx1ZSAmcm9vdCwKLSAg
ICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzICkKLXsKLSAgIC8vc3RkOjppc3RyZWFt
X2l0ZXJhdG9yPGNoYXI+IGJlZ2luKHNpbik7Ci0gICAvL3N0ZDo6aXN0cmVhbV9pdGVyYXRvcjxj
aGFyPiBlbmQ7Ci0gICAvLyBUaG9zZSB3b3VsZCBhbGxvdyBzdHJlYW1lZCBpbnB1dCBmcm9tIGEg
ZmlsZSwgaWYgcGFyc2UoKSB3ZXJlIGEKLSAgIC8vIHRlbXBsYXRlIGZ1bmN0aW9uLgotCi0gICAv
LyBTaW5jZSBzdGQ6OnN0cmluZyBpcyByZWZlcmVuY2UtY291bnRlZCwgdGhpcyBhdCBsZWFzdCBk
b2VzIG5vdAotICAgLy8gY3JlYXRlIGFuIGV4dHJhIGNvcHkuCi0gICBzdGQ6OnN0cmluZyBkb2M7
Ci0gICBzdGQ6OmdldGxpbmUoc2luLCBkb2MsIChjaGFyKUVPRik7Ci0gICByZXR1cm4gcGFyc2Uo
IGRvYywgcm9vdCwgY29sbGVjdENvbW1lbnRzICk7Ci19Ci0KLWJvb2wgCi1SZWFkZXI6OnBhcnNl
KCBjb25zdCBjaGFyICpiZWdpbkRvYywgY29uc3QgY2hhciAqZW5kRG9jLCAKLSAgICAgICAgICAg
ICAgIFZhbHVlICZyb290LAotICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgKQot
ewotICAgaWYgKCAhZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfICkKLSAgIHsKLSAgICAgIGNvbGxl
Y3RDb21tZW50cyA9IGZhbHNlOwotICAgfQotCi0gICBiZWdpbl8gPSBiZWdpbkRvYzsKLSAgIGVu
ZF8gPSBlbmREb2M7Ci0gICBjb2xsZWN0Q29tbWVudHNfID0gY29sbGVjdENvbW1lbnRzOwotICAg
Y3VycmVudF8gPSBiZWdpbl87Ci0gICBsYXN0VmFsdWVFbmRfID0gMDsKLSAgIGxhc3RWYWx1ZV8g
PSAwOwotICAgY29tbWVudHNCZWZvcmVfID0gIiI7Ci0gICBlcnJvcnNfLmNsZWFyKCk7Ci0gICB3
aGlsZSAoICFub2Rlc18uZW1wdHkoKSApCi0gICAgICBub2Rlc18ucG9wKCk7Ci0gICBub2Rlc18u
cHVzaCggJnJvb3QgKTsKLSAgIAotICAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7Ci0g
ICBUb2tlbiB0b2tlbjsKLSAgIHNraXBDb21tZW50VG9rZW5zKCB0b2tlbiApOwotICAgaWYgKCBj
b2xsZWN0Q29tbWVudHNfICAmJiAgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpICkKLSAgICAgIHJv
b3Quc2V0Q29tbWVudCggY29tbWVudHNCZWZvcmVfLCBjb21tZW50QWZ0ZXIgKTsKLSAgIGlmICgg
ZmVhdHVyZXNfLnN0cmljdFJvb3RfICkKLSAgIHsKLSAgICAgIGlmICggIXJvb3QuaXNBcnJheSgp
ICAmJiAgIXJvb3QuaXNPYmplY3QoKSApCi0gICAgICB7Ci0gICAgICAgICAvLyBTZXQgZXJyb3Ig
bG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNob3VsZCBiZSBmaXJzdCB0b2tlbiBm
b3VuZCBpbiBkb2MKLSAgICAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKLSAgICAgICAg
IHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9jOwotICAgICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsK
LSAgICAgICAgIGFkZEVycm9yKCAiQSB2YWxpZCBKU09OIGRvY3VtZW50IG11c3QgYmUgZWl0aGVy
IGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4iLAotICAgICAgICAgICAgICAgICAgIHRva2Vu
ICk7Ci0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0gICB9Ci0gICByZXR1cm4gc3Vj
Y2Vzc2Z1bDsKK2Jvb2wgUmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7CisgIHNraXBT
cGFjZXMoKTsKKyAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87CisgIENoYXIgYyA9IGdldE5leHRD
aGFyKCk7CisgIGJvb2wgb2sgPSB0cnVlOworICBzd2l0Y2ggKGMpIHsKKyAgY2FzZSAneyc6Cisg
ICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOworICAgIGJyZWFrOworICBjYXNlICd9
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0RW5kOworICAgIGJyZWFrOworICBjYXNl
ICdbJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKKyAgICBicmVhazsKKyAg
Y2FzZSAnXSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOworICAgIGJyZWFrOwor
ICBjYXNlICciJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVh
ZFN0cmluZygpOworICAgIGJyZWFrOworICBjYXNlICcvJzoKKyAgICB0b2tlbi50eXBlXyA9IHRv
a2VuQ29tbWVudDsKKyAgICBvayA9IHJlYWRDb21tZW50KCk7CisgICAgYnJlYWs7CisgIGNhc2Ug
JzAnOgorICBjYXNlICcxJzoKKyAgY2FzZSAnMic6CisgIGNhc2UgJzMnOgorICBjYXNlICc0JzoK
KyAgY2FzZSAnNSc6CisgIGNhc2UgJzYnOgorICBjYXNlICc3JzoKKyAgY2FzZSAnOCc6CisgIGNh
c2UgJzknOgorICBjYXNlICctJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAg
IHJlYWROdW1iZXIoKTsKKyAgICBicmVhazsKKyAgY2FzZSAndCc6CisgICAgdG9rZW4udHlwZV8g
PSB0b2tlblRydWU7CisgICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7CisgICAgYnJlYWs7CisgIGNh
c2UgJ2YnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKKyAgICBvayA9IG1hdGNoKCJh
bHNlIiwgNCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ24nOgorICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdWxsOworICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOworICAgIGJyZWFrOworICBjYXNlICcs
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7CisgICAgYnJlYWs7Cisg
IGNhc2UgJzonOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0b3I7CisgICAg
YnJlYWs7CisgIGNhc2UgMDoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZTdHJlYW07Cisg
ICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgb2sgPSBmYWxzZTsKKyAgICBicmVhazsKKyAgfQor
ICBpZiAoIW9rKQorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uZW5kXyA9
IGN1cnJlbnRfOworICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBSZWFkZXI6OnNraXBTcGFjZXMo
KSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnRf
OworICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1xu
JykKKyAgICAgICsrY3VycmVudF87CisgICAgZWxzZQorICAgICAgYnJlYWs7CisgIH0KK30KIAot
Ym9vbAotUmVhZGVyOjpyZWFkVmFsdWUoKQotewotICAgVG9rZW4gdG9rZW47Ci0gICBza2lwQ29t
bWVudFRva2VucyggdG9rZW4gKTsKLSAgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7Citib29sIFJl
YWRlcjo6bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpIHsKKyAgaWYg
KGVuZF8gLSBjdXJyZW50XyA8IHBhdHRlcm5MZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBp
bnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3RoOworICB3aGlsZSAoaW5kZXgtLSkKKyAgICBpZiAoY3Vy
cmVudF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhdKQorICAgICAgcmV0dXJuIGZhbHNlOworICBj
dXJyZW50XyArPSBwYXR0ZXJuTGVuZ3RoOworICByZXR1cm4gdHJ1ZTsKK30KIAotICAgaWYgKCBj
b2xsZWN0Q29tbWVudHNfICAmJiAgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpICkKLSAgIHsKLSAg
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldENvbW1lbnQoIGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEJl
Zm9yZSApOwotICAgICAgY29tbWVudHNCZWZvcmVfID0gIiI7Ci0gICB9Citib29sIFJlYWRlcjo6
cmVhZENvbW1lbnQoKSB7CisgIExvY2F0aW9uIGNvbW1lbnRCZWdpbiA9IGN1cnJlbnRfIC0gMTsK
KyAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gZmFsc2U7Cisg
IGlmIChjID09ICcqJykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAg
ZWxzZSBpZiAoYyA9PSAnLycpCisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNvbW1lbnQo
KTsKKyAgaWYgKCFzdWNjZXNzZnVsKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAoY29sbGVj
dENvbW1lbnRzXykgeworICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ID0gY29tbWVudEJl
Zm9yZTsKKyAgICBpZiAobGFzdFZhbHVlRW5kXyAmJiAhY29udGFpbnNOZXdMaW5lKGxhc3RWYWx1
ZUVuZF8sIGNvbW1lbnRCZWdpbikpIHsKKyAgICAgIGlmIChjICE9ICcqJyB8fCAhY29udGFpbnNO
ZXdMaW5lKGNvbW1lbnRCZWdpbiwgY3VycmVudF8pKQorICAgICAgICBwbGFjZW1lbnQgPSBjb21t
ZW50QWZ0ZXJPblNhbWVMaW5lOworICAgIH0KIAorICAgIGFkZENvbW1lbnQoY29tbWVudEJlZ2lu
LCBjdXJyZW50XywgcGxhY2VtZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KIAotICAgc3dp
dGNoICggdG9rZW4udHlwZV8gKQotICAgewotICAgY2FzZSB0b2tlbk9iamVjdEJlZ2luOgotICAg
ICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QoIHRva2VuICk7Ci0gICAgICBicmVhazsKLSAgIGNh
c2UgdG9rZW5BcnJheUJlZ2luOgotICAgICAgc3VjY2Vzc2Z1bCA9IHJlYWRBcnJheSggdG9rZW4g
KTsKK1N0cmluZyBSZWFkZXI6Om5vcm1hbGl6ZUVPTChSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCBS
ZWFkZXI6OkxvY2F0aW9uIGVuZCkgeworICBTdHJpbmcgbm9ybWFsaXplZDsKKyAgbm9ybWFsaXpl
ZC5yZXNlcnZlKHN0YXRpY19jYXN0PHNpemVfdD4oZW5kIC0gYmVnaW4pKTsKKyAgUmVhZGVyOjpM
b2NhdGlvbiBjdXJyZW50ID0gYmVnaW47CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAg
IGNoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKGN1
cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID09ICdcbicpCisgICAgICAgIC8vIGNvbnZlcnQgZG9z
IEVPTAorICAgICAgICArK2N1cnJlbnQ7CisgICAgICAvLyBjb252ZXJ0IE1hYyBFT0wKKyAgICAg
IG5vcm1hbGl6ZWQgKz0gJ1xuJzsKKyAgICB9IGVsc2UgeworICAgICAgbm9ybWFsaXplZCArPSBj
OworICAgIH0KKyAgfQorICByZXR1cm4gbm9ybWFsaXplZDsKK30KKwordm9pZCBSZWFkZXI6OmFk
ZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlv
biBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVu
dCkgeworICBhc3NlcnQoY29sbGVjdENvbW1lbnRzXyk7CisgIGNvbnN0IFN0cmluZyYgbm9ybWFs
aXplZCA9IG5vcm1hbGl6ZUVPTChiZWdpbiwgZW5kKTsKKyAgaWYgKHBsYWNlbWVudCA9PSBjb21t
ZW50QWZ0ZXJPblNhbWVMaW5lKSB7CisgICAgYXNzZXJ0KGxhc3RWYWx1ZV8gIT0gbnVsbHB0cik7
CisgICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVudChub3JtYWxpemVkLCBwbGFjZW1lbnQpOworICB9
IGVsc2UgeworICAgIGNvbW1lbnRzQmVmb3JlXyArPSBub3JtYWxpemVkOworICB9Cit9CisKK2Jv
b2wgUmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKChjdXJyZW50XyArIDEp
IDwgZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJyon
ICYmICpjdXJyZW50XyA9PSAnLycpCiAgICAgICBicmVhazsKLSAgIGNhc2UgdG9rZW5OdW1iZXI6
Ci0gICAgICBzdWNjZXNzZnVsID0gZGVjb2RlTnVtYmVyKCB0b2tlbiApOworICB9CisgIHJldHVy
biBnZXROZXh0Q2hhcigpID09ICcvJzsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRDcHBTdHlsZUNv
bW1lbnQoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0
TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXG4nKQogICAgICAgYnJlYWs7Ci0gICBjYXNlIHRv
a2VuU3RyaW5nOgotICAgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZVN0cmluZyggdG9rZW4gKTsKKyAg
ICBpZiAoYyA9PSAnXHInKSB7CisgICAgICAvLyBDb25zdW1lIERPUyBFT0wuIEl0IHdpbGwgYmUg
bm9ybWFsaXplZCBpbiBhZGRDb21tZW50LgorICAgICAgaWYgKGN1cnJlbnRfICE9IGVuZF8gJiYg
KmN1cnJlbnRfID09ICdcbicpCisgICAgICAgIGdldE5leHRDaGFyKCk7CisgICAgICAvLyBCcmVh
ayBvbiBNb2MgT1MgOSBFT0wuCiAgICAgICBicmVhazsKLSAgIGNhc2UgdG9rZW5UcnVlOgotICAg
ICAgY3VycmVudFZhbHVlKCkgPSB0cnVlOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBSZWFkZXI6OnJlYWROdW1iZXIoKSB7CisgIGNvbnN0IGNoYXIqIHAgPSBjdXJyZW50
XzsKKyAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBhbHJlYWR5IGNvbnN1bWVkIGNoYXJh
Y3RlcgorICAvLyBpbnRlZ3JhbCBwYXJ0CisgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykK
KyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIC8vIGZyYWN0
aW9uYWwgcGFydAorICBpZiAoYyA9PSAnLicpIHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBl
bmRfID8gKnArKyA6ICdcMCc7CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAg
ICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAnXDAnOworICB9CisgIC8vIGV4
cG9uZW50aWFsIHBhcnQKKyAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7CisgICAgYyA9IChj
dXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAnXDAnOworICAgIGlmIChjID09ICcrJyB8fCBj
ID09ICctJykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogJ1wwJzsK
KyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0g
cCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIH0KK30KKworYm9vbCBSZWFkZXI6OnJlYWRTdHJp
bmcoKSB7CisgIENoYXIgYyA9ICdcMCc7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7Cisg
ICAgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykKKyAgICAgIGdldE5leHRD
aGFyKCk7CisgICAgZWxzZSBpZiAoYyA9PSAnIicpCiAgICAgICBicmVhazsKLSAgIGNhc2UgdG9r
ZW5GYWxzZToKLSAgICAgIGN1cnJlbnRWYWx1ZSgpID0gZmFsc2U7CisgIH0KKyAgcmV0dXJuIGMg
PT0gJyInOworfQorCitib29sIFJlYWRlcjo6cmVhZE9iamVjdChUb2tlbiYgdG9rZW4pIHsKKyAg
VG9rZW4gdG9rZW5OYW1lOworICBTdHJpbmcgbmFtZTsKKyAgVmFsdWUgaW5pdChvYmplY3RWYWx1
ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICB3aGlsZSAocmVhZFRv
a2VuKHRva2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxUb2tlbk9rID0gdHJ1ZTsKKyAgICB3
aGlsZSAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBpbml0aWFsVG9rZW5PaykK
KyAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRva2VuTmFtZSk7CisgICAgaWYgKCFp
bml0aWFsVG9rZW5PaykKICAgICAgIGJyZWFrOwotICAgY2FzZSB0b2tlbk51bGw6Ci0gICAgICBj
dXJyZW50VmFsdWUoKSA9IFZhbHVlKCk7CisgICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tl
bk9iamVjdEVuZCAmJiBuYW1lLmVtcHR5KCkpIC8vIGVtcHR5IG9iamVjdAorICAgICAgcmV0dXJu
IHRydWU7CisgICAgbmFtZS5jbGVhcigpOworICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9r
ZW5TdHJpbmcpIHsKKyAgICAgIGlmICghZGVjb2RlU3RyaW5nKHRva2VuTmFtZSwgbmFtZSkpCisg
ICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKyAgICB9IGVs
c2UgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk51bWJlciAmJiBmZWF0dXJlc18uYWxsb3dO
dW1lcmljS2V5c18pIHsKKyAgICAgIFZhbHVlIG51bWJlck5hbWU7CisgICAgICBpZiAoIWRlY29k
ZU51bWJlcih0b2tlbk5hbWUsIG51bWJlck5hbWUpKQorICAgICAgICByZXR1cm4gcmVjb3ZlckZy
b21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgICBuYW1lID0gU3RyaW5nKG51bWJlck5hbWUu
YXNDU3RyaW5nKCkpOworICAgIH0gZWxzZSB7CiAgICAgICBicmVhazsKLSAgIGRlZmF1bHQ6Ci0g
ICAgICByZXR1cm4gYWRkRXJyb3IoICJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3IgYXJy
YXkgZXhwZWN0ZWQuIiwgdG9rZW4gKTsKLSAgIH0KKyAgICB9CiAKLSAgIGlmICggY29sbGVjdENv
bW1lbnRzXyApCi0gICB7Ci0gICAgICBsYXN0VmFsdWVFbmRfID0gY3VycmVudF87Ci0gICAgICBs
YXN0VmFsdWVfID0gJmN1cnJlbnRWYWx1ZSgpOwotICAgfQorICAgIFRva2VuIGNvbG9uOworICAg
IGlmICghcmVhZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFy
YXRvcikgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlzc2luZyAnOicgYWZ0
ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgY29sb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgVmFsdWUmIHZhbHVlID0gY3VycmVu
dFZhbHVlKClbbmFtZV07CisgICAgbm9kZXNfLnB1c2goJnZhbHVlKTsKKyAgICBib29sIG9rID0g
cmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlmICghb2spIC8vIGVycm9yIGFs
cmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7
CisKKyAgICBUb2tlbiBjb21tYTsKKyAgICBpZiAoIXJlYWRUb2tlbihjb21tYSkgfHwKKyAgICAg
ICAgKGNvbW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICYmIGNvbW1hLnR5cGVfICE9IHRva2Vu
QXJyYXlTZXBhcmF0b3IgJiYKKyAgICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVudCkp
IHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoIk1pc3NpbmcgJywnIG9yICd9JyBp
biBvYmplY3QgZGVjbGFyYXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b21tYSwgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBib29sIGZpbmFsaXplVG9rZW5PayA9
IHRydWU7CisgICAgd2hpbGUgKGNvbW1hLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBmaW5hbGl6
ZVRva2VuT2spCisgICAgICBmaW5hbGl6ZVRva2VuT2sgPSByZWFkVG9rZW4oY29tbWEpOworICAg
IGlmIChjb21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCkKKyAgICAgIHJldHVybiB0cnVlOwor
ICB9CisgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoIk1pc3NpbmcgJ30nIG9yIG9iamVjdCBt
ZW1iZXIgbmFtZSIsIHRva2VuTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tl
bk9iamVjdEVuZCk7Cit9CiAKLSAgIHJldHVybiBzdWNjZXNzZnVsOworYm9vbCBSZWFkZXI6OnJl
YWRBcnJheShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKKyAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIHNraXBTcGFjZXMoKTsKKyAgaWYgKGN1
cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09ICddJykgLy8gZW1wdHkgYXJyYXkKKyAgewor
ICAgIFRva2VuIGVuZEFycmF5OworICAgIHJlYWRUb2tlbihlbmRBcnJheSk7CisgICAgcmV0dXJu
IHRydWU7CisgIH0KKyAgaW50IGluZGV4ID0gMDsKKyAgZm9yICg7OykgeworICAgIFZhbHVlJiB2
YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7
CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAo
IW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Io
dG9rZW5BcnJheUVuZCk7CisKKyAgICBUb2tlbiBjdXJyZW50VG9rZW47CisgICAgLy8gQWNjZXB0
IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KKyAgICBvayA9IHJlYWRUb2tl
bihjdXJyZW50VG9rZW4pOworICAgIHdoaWxlIChjdXJyZW50VG9rZW4udHlwZV8gPT0gdG9rZW5D
b21tZW50ICYmIG9rKSB7CisgICAgICBvayA9IHJlYWRUb2tlbihjdXJyZW50VG9rZW4pOworICAg
IH0KKyAgICBib29sIGJhZFRva2VuVHlwZSA9IChjdXJyZW50VG9rZW4udHlwZV8gIT0gdG9rZW5B
cnJheVNlcGFyYXRvciAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUb2tlbi50
eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKKyAgICBpZiAoIW9rIHx8IGJhZFRva2VuVHlwZSkgewor
ICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlzc2luZyAnLCcgb3IgJ10nIGluIGFy
cmF5IGRlY2xhcmF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVu
dFRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9CisgICAgaWYgKGN1cnJlbnRUb2tlbi50eXBl
XyA9PSB0b2tlbkFycmF5RW5kKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKSB7CisgIFZhbHVlIGRl
Y29kZWQ7CisgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuLCBkZWNvZGVkKSkKKyAgICByZXR1cm4g
ZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRy
dWU7Cit9CiAKLXZvaWQgCi1SZWFkZXI6OnNraXBDb21tZW50VG9rZW5zKCBUb2tlbiAmdG9rZW4g
KQotewotICAgaWYgKCBmZWF0dXJlc18uYWxsb3dDb21tZW50c18gKQotICAgewotICAgICAgZG8K
LSAgICAgIHsKLSAgICAgICAgIHJlYWRUb2tlbiggdG9rZW4gKTsKK2Jvb2wgUmVhZGVyOjpkZWNv
ZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCkgeworICAvLyBBdHRlbXB0cyB0
byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFuIGludGVnZXIuIElmIHRoZSBudW1iZXIgaXMKKyAgLy8g
bGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZhbHVlIG9mIGFuIGludGVnZXIgdGhl
bgorICAvLyB3ZSBkZWNvZGUgdGhlIG51bWJlciBhcyBhIGRvdWJsZS4KKyAgTG9jYXRpb24gY3Vy
cmVudCA9IHRva2VuLnN0YXJ0XzsKKyAgYm9vbCBpc05lZ2F0aXZlID0gKmN1cnJlbnQgPT0gJy0n
OworICBpZiAoaXNOZWdhdGl2ZSkKKyAgICArK2N1cnJlbnQ7CisgIC8vIFRPRE86IEhlbHAgdGhl
IGNvbXBpbGVyIGRvIHRoZSBkaXYgYW5kIG1vZCBhdCBjb21waWxlIHRpbWUgb3IgZ2V0IHJpZCBv
ZgorICAvLyB0aGVtLgorICBWYWx1ZTo6TGFyZ2VzdFVJbnQgbWF4SW50ZWdlclZhbHVlID0KKyAg
ICAgIGlzTmVnYXRpdmUgPyBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQp
ICsgMQorICAgICAgICAgICAgICAgICA6IFZhbHVlOjptYXhMYXJnZXN0VUludDsKKyAgVmFsdWU6
Okxhcmdlc3RVSW50IHRocmVzaG9sZCA9IG1heEludGVnZXJWYWx1ZSAvIDEwOworICBWYWx1ZTo6
TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGlsZSAoY3VycmVudCA8IHRva2VuLmVuZF8pIHsK
KyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjIDwgJzAnIHx8IGMgPiAnOScpCisg
ICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKyAgICBhdXRvIGRpZ2l0
KHN0YXRpY19jYXN0PFZhbHVlOjpVSW50PihjIC0gJzAnKSk7CisgICAgaWYgKHZhbHVlID49IHRo
cmVzaG9sZCkgeworICAgICAgLy8gV2UndmUgaGl0IG9yIGV4Y2VlZGVkIHRoZSBtYXggdmFsdWUg
ZGl2aWRlZCBieSAxMCAocm91bmRlZCBkb3duKS4gSWYKKyAgICAgIC8vIGEpIHdlJ3ZlIG9ubHkg
anVzdCB0b3VjaGVkIHRoZSBsaW1pdCwgYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwgYW5kCisg
ICAgICAvLyBjKSBpdCdzIHNtYWxsIGVub3VnaCB0byBmaXQgaW4gdGhhdCByb3VuZGluZyBkZWx0
YSwgd2UncmUgb2theS4KKyAgICAgIC8vIE90aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJlciBhcyBh
IGRvdWJsZSB0byBhdm9pZCBvdmVyZmxvdy4KKyAgICAgIGlmICh2YWx1ZSA+IHRocmVzaG9sZCB8
fCBjdXJyZW50ICE9IHRva2VuLmVuZF8gfHwKKyAgICAgICAgICBkaWdpdCA+IG1heEludGVnZXJW
YWx1ZSAlIDEwKSB7CisgICAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQp
OwogICAgICAgfQotICAgICAgd2hpbGUgKCB0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQgKTsK
LSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIHJlYWRUb2tlbiggdG9rZW4gKTsKLSAgIH0KLX0K
LQotCi1ib29sIAotUmVhZGVyOjpleHBlY3RUb2tlbiggVG9rZW5UeXBlIHR5cGUsIFRva2VuICZ0
b2tlbiwgY29uc3QgY2hhciAqbWVzc2FnZSApCi17Ci0gICByZWFkVG9rZW4oIHRva2VuICk7Ci0g
ICBpZiAoIHRva2VuLnR5cGVfICE9IHR5cGUgKQotICAgICAgcmV0dXJuIGFkZEVycm9yKCBtZXNz
YWdlLCB0b2tlbiApOwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6cmVh
ZFRva2VuKCBUb2tlbiAmdG9rZW4gKQotewotICAgc2tpcFNwYWNlcygpOwotICAgdG9rZW4uc3Rh
cnRfID0gY3VycmVudF87Ci0gICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICAgYm9vbCBvayA9
IHRydWU7Ci0gICBzd2l0Y2ggKCBjICkKLSAgIHsKLSAgIGNhc2UgJ3snOgotICAgICAgdG9rZW4u
dHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOwotICAgICAgYnJlYWs7Ci0gICBjYXNlICd9JzoKLSAg
ICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7CisgICAgfQorICAgIHZhbHVlID0gdmFs
dWUgKiAxMCArIGRpZ2l0OworICB9CisgIGlmIChpc05lZ2F0aXZlICYmIHZhbHVlID09IG1heElu
dGVnZXJWYWx1ZSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Om1pbkxhcmdlc3RJbnQ7CisgIGVsc2Ug
aWYgKGlzTmVnYXRpdmUpCisgICAgZGVjb2RlZCA9IC1WYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7
CisgIGVsc2UgaWYgKHZhbHVlIDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4SW50KSkK
KyAgICBkZWNvZGVkID0gVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlCisgICAgZGVj
b2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZURv
dWJsZShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVEb3Vi
bGUodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCku
c3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRv
a2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRv
a2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRl
Y29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIGRvdWJsZSB2YWx1
ZSA9IDA7CisgIFN0cmluZyBidWZmZXIodG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfKTsKKyAgSVN0
cmluZ1N0cmVhbSBpcyhidWZmZXIpOworICBpZiAoIShpcyA+PiB2YWx1ZSkpCisgICAgcmV0dXJu
IGFkZEVycm9yKAorICAgICAgICAiJyIgKyBTdHJpbmcodG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRf
KSArICInIGlzIG5vdCBhIG51bWJlci4iLCB0b2tlbik7CisgIGRlY29kZWQgPSB2YWx1ZTsKKyAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2Vu
KSB7CisgIFN0cmluZyBkZWNvZGVkX3N0cmluZzsKKyAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW4s
IGRlY29kZWRfc3RyaW5nKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIFZhbHVlIGRlY29kZWQoZGVj
b2RlZF9zdHJpbmcpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAg
Y3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAg
Y3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwg
U3RyaW5nJiBkZWNvZGVkKSB7CisgIGRlY29kZWQucmVzZXJ2ZShzdGF0aWNfY2FzdDxzaXplX3Q+
KHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8gLSAyKSk7CisgIExvY2F0aW9uIGN1cnJlbnQgPSB0
b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJworICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRf
IC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCisgIHdoaWxlIChjdXJyZW50ICE9IGVu
ZCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJyInKQogICAgICAg
YnJlYWs7Ci0gICBjYXNlICdbJzoKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUJlZ2lu
OworICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykgeworICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kKQor
ICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmci
LCB0b2tlbiwgY3VycmVudCk7CisgICAgICBDaGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7CisgICAg
ICBzd2l0Y2ggKGVzY2FwZSkgeworICAgICAgY2FzZSAnIic6CisgICAgICAgIGRlY29kZWQgKz0g
JyInOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJy8nOgorICAgICAgICBkZWNvZGVkICs9
ICcvJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdcXCc6CisgICAgICAgIGRlY29kZWQg
Kz0gJ1xcJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdiJzoKKyAgICAgICAgZGVjb2Rl
ZCArPSAnXGInOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2YnOgorICAgICAgICBkZWNv
ZGVkICs9ICdcZic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnbic6CisgICAgICAgIGRl
Y29kZWQgKz0gJ1xuJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdyJzoKKyAgICAgICAg
ZGVjb2RlZCArPSAnXHInOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3QnOgorICAgICAg
ICBkZWNvZGVkICs9ICdcdCc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAndSc6IHsKKyAg
ICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7CisgICAgICAgIGlmICghZGVjb2RlVW5pY29kZUNv
ZGVQb2ludCh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGRlY29kZWQgKz0gY29kZVBvaW50VG9VVEY4KHVuaWNvZGUpOworICAg
ICAgfSBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBhZGRFcnJvcigiQmFk
IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7CisgICAgICB9Cisg
ICAgfSBlbHNlIHsKKyAgICAgIGRlY29kZWQgKz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tl
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7
CisKKyAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVu
ZCwgdW5pY29kZSkpCisgICAgcmV0dXJuIGZhbHNlOworICBpZiAodW5pY29kZSA+PSAweEQ4MDAg
JiYgdW5pY29kZSA8PSAweERCRkYpIHsKKyAgICAvLyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAo
ZW5kIC0gY3VycmVudCA8IDYpCisgICAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFk
ZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dh
dGUgcGFpci4iLAorICAgICAgICAgIHRva2VuLCBjdXJyZW50KTsKKyAgICBpZiAoKihjdXJyZW50
KyspID09ICdcXCcgJiYgKihjdXJyZW50KyspID09ICd1JykgeworICAgICAgdW5zaWduZWQgaW50
IHN1cnJvZ2F0ZVBhaXI7CisgICAgICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRv
a2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIpKSB7CisgICAgICAgIHVuaWNvZGUgPSAw
eDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgz
RkYpOworICAgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UKKyAg
ICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2lu
IHRoZSBzZWNvbmQgaGFsZiBvZiAiCisgICAgICAgICAgICAgICAgICAgICAgImEgdW5pY29kZSBz
dXJyb2dhdGUgcGFpciIsCisgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIGN1cnJlbnQpOwor
ICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2Fw
ZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50JiByZXRfdW5pY29kZSkgeworICBpZiAoZW5kIC0gY3Vy
cmVudCA8IDQpCisgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAiQmFkIHVuaWNvZGUgZXNj
YXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwgdG9rZW4sCisg
ICAgICAgIGN1cnJlbnQpOworICBpbnQgdW5pY29kZSA9IDA7CisgIGZvciAoaW50IGluZGV4ID0g
MDsgaW5kZXggPCA0OyArK2luZGV4KSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICB1
bmljb2RlICo9IDE2OworICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIHVuaWNv
ZGUgKz0gYyAtICcwJzsKKyAgICBlbHNlIGlmIChjID49ICdhJyAmJiBjIDw9ICdmJykKKyAgICAg
IHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOworICAgIGVsc2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0g
J0YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7CisgICAgZWxzZQorICAgICAgcmV0
dXJuIGFkZEVycm9yKAorICAgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4g
c3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLAorICAgICAgICAgIHRva2VuLCBj
dXJyZW50KTsKKyAgfQorICByZXRfdW5pY29kZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4o
dW5pY29kZSk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6YWRkRXJyb3IoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4dHJhKSB7CisgIEVy
cm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0g
bWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBleHRyYTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5m
byk7CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZWFkZXI6OnJlY292ZXJGcm9tRXJyb3Io
VG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIHNpemVfdCBjb25zdCBlcnJvckNvdW50ID0g
ZXJyb3JzXy5zaXplKCk7CisgIFRva2VuIHNraXA7CisgIGZvciAoOzspIHsKKyAgICBpZiAoIXJl
YWRUb2tlbihza2lwKSkKKyAgICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOyAvLyBkaXNj
YXJkIGVycm9ycyBjYXVzZWQgYnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50eXBlXyA9PSBza2lw
VW50aWxUb2tlbiB8fCBza2lwLnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0pCiAgICAgICBicmVh
azsKLSAgIGNhc2UgJ10nOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOworICB9
CisgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIoY29uc3QgU3RyaW5nJiBtZXNzYWdlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikgeworICBhZGRFcnJv
cihtZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHNraXBVbnRpbFRv
a2VuKTsKK30KKworVmFsdWUmIFJlYWRlcjo6Y3VycmVudFZhbHVlKCkgeyByZXR1cm4gKihub2Rl
c18udG9wKCkpOyB9CisKK1JlYWRlcjo6Q2hhciBSZWFkZXI6OmdldE5leHRDaGFyKCkgeworICBp
ZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1cm4gMDsKKyAgcmV0dXJuICpjdXJyZW50Xysr
OworfQorCit2b2lkIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxv
Y2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGxpbmUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgY29sdW1uKSBjb25z
dCB7CisgIExvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbl87CisgIExvY2F0aW9uIGxhc3RMaW5lU3Rh
cnQgPSBjdXJyZW50OworICBsaW5lID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQgPCBsb2NhdGlvbiAm
JiBjdXJyZW50ICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChj
ID09ICdccicpIHsKKyAgICAgIGlmICgqY3VycmVudCA9PSAnXG4nKQorICAgICAgICArK2N1cnJl
bnQ7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9
IGVsc2UgaWYgKGMgPT0gJ1xuJykgeworICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Cisg
ICAgICArK2xpbmU7CisgICAgfQorICB9CisgIC8vIGNvbHVtbiAmIGxpbmUgc3RhcnQgYXQgMQor
ICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7CisgICsrbGluZTsK
K30KKworU3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxv
Y2F0aW9uKSBjb25zdCB7CisgIGludCBsaW5lLCBjb2x1bW47CisgIGdldExvY2F0aW9uTGluZUFu
ZENvbHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKKyAgY2hhciBidWZmZXJbMTggKyAxNiAr
IDE2ICsgMV07CisgIGpzb25jcHBfc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIkxp
bmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNvbHVtbik7CisgIHJldHVybiBidWZmZXI7Cit9CisK
Ky8vIERlcHJlY2F0ZWQuIFByZXNlcnZlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorU3Ry
aW5nIFJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgeworICByZXR1cm4g
Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOworfQorCitTdHJpbmcgUmVhZGVyOjpnZXRGb3Jt
YXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgeworICBTdHJpbmcgZm9ybWF0dGVkTWVzc2FnZTsK
KyAgZm9yIChjb25zdCBhdXRvJiBlcnJvciA6IGVycm9yc18pIHsKKyAgICBmb3JtYXR0ZWRNZXNz
YWdlICs9CisgICAgICAgICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IudG9r
ZW5fLnN0YXJ0XykgKyAiXG4iOworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9y
Lm1lc3NhZ2VfICsgIlxuIjsKKyAgICBpZiAoZXJyb3IuZXh0cmFfKQorICAgICAgZm9ybWF0dGVk
TWVzc2FnZSArPQorICAgICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihl
cnJvci5leHRyYV8pICsgIiBmb3IgZGV0YWlsLlxuIjsKKyAgfQorICByZXR1cm4gZm9ybWF0dGVk
TWVzc2FnZTsKK30KKworc3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IFJlYWRl
cjo6Z2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0IHsKKyAgc3RkOjp2ZWN0b3I8UmVhZGVyOjpT
dHJ1Y3R1cmVkRXJyb3I+IGFsbEVycm9yczsKKyAgZm9yIChjb25zdCBhdXRvJiBlcnJvciA6IGVy
cm9yc18pIHsKKyAgICBSZWFkZXI6OlN0cnVjdHVyZWRFcnJvciBzdHJ1Y3R1cmVkOworICAgIHN0
cnVjdHVyZWQub2Zmc2V0X3N0YXJ0ID0gZXJyb3IudG9rZW5fLnN0YXJ0XyAtIGJlZ2luXzsKKyAg
ICBzdHJ1Y3R1cmVkLm9mZnNldF9saW1pdCA9IGVycm9yLnRva2VuXy5lbmRfIC0gYmVnaW5fOwor
ICAgIHN0cnVjdHVyZWQubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2VfOworICAgIGFsbEVycm9ycy5w
dXNoX2JhY2soc3RydWN0dXJlZCk7CisgIH0KKyAgcmV0dXJuIGFsbEVycm9yczsKK30KKworYm9v
bCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkgeworICBwdHJkaWZmX3QgY29uc3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYg
KHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGggfHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQo
KSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0b2tlbi50
eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9m
ZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1p
dCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5t
ZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gbnVsbHB0cjsKKyAgZXJyb3JzXy5w
dXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6cHVzaEVy
cm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSYgZXh0cmEp
IHsKKyAgcHRyZGlmZl90IGNvbnN0IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlmICh2YWx1
ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBs
ZW5ndGggfHwKKyAgICAgIGV4dHJhLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0
dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOwor
ICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tl
bi5lbmRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGlu
Zm87CisgIGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOwor
ICBpbmZvLmV4dHJhXyA9IGJlZ2luXyArIGV4dHJhLmdldE9mZnNldFN0YXJ0KCk7CisgIGVycm9y
c18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6Omdv
b2QoKSBjb25zdCB7IHJldHVybiBlcnJvcnNfLmVtcHR5KCk7IH0KKworLy8gT3JpZ2luYWxseSBj
b3BpZWQgZnJvbSB0aGUgRmVhdHVyZXMgY2xhc3MgKG5vdyBkZXByZWNhdGVkKSwgdXNlZCBpbnRl
cm5hbGx5CisvLyBmb3IgZmVhdHVyZXMgaW1wbGVtZW50YXRpb24uCitjbGFzcyBPdXJGZWF0dXJl
cyB7CitwdWJsaWM6CisgIHN0YXRpYyBPdXJGZWF0dXJlcyBhbGwoKTsKKyAgYm9vbCBhbGxvd0Nv
bW1lbnRzXzsKKyAgYm9vbCBzdHJpY3RSb290XzsKKyAgYm9vbCBhbGxvd0Ryb3BwZWROdWxsUGxh
Y2Vob2xkZXJzXzsKKyAgYm9vbCBhbGxvd051bWVyaWNLZXlzXzsKKyAgYm9vbCBhbGxvd1Npbmds
ZVF1b3Rlc187CisgIGJvb2wgZmFpbElmRXh0cmFfOworICBib29sIHJlamVjdER1cEtleXNfOwor
ICBib29sIGFsbG93U3BlY2lhbEZsb2F0c187CisgIHNpemVfdCBzdGFja0xpbWl0XzsKK307IC8v
IE91ckZlYXR1cmVzCisKK091ckZlYXR1cmVzIE91ckZlYXR1cmVzOjphbGwoKSB7IHJldHVybiB7
fTsgfQorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIE9yaWdpbmFsbHkgY29waWVkIGZyb20gdGhlIFJl
YWRlciBjbGFzcyAobm93IGRlcHJlY2F0ZWQpLCB1c2VkIGludGVybmFsbHkKKy8vIGZvciBpbXBs
ZW1lbnRpbmcgSlNPTiByZWFkaW5nLgorY2xhc3MgT3VyUmVhZGVyIHsKK3B1YmxpYzoKKyAgdHlw
ZWRlZiBjaGFyIENoYXI7CisgIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247CisgIHN0cnVj
dCBTdHJ1Y3R1cmVkRXJyb3IgeworICAgIHB0cmRpZmZfdCBvZmZzZXRfc3RhcnQ7CisgICAgcHRy
ZGlmZl90IG9mZnNldF9saW1pdDsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgfTsKKworICBPdXJS
ZWFkZXIoT3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKTsKKyAgYm9vbCBwYXJzZShjb25zdCBj
aGFyKiBiZWdpbkRvYywKKyAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCisgICAgICAg
ICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0
cnVlKTsKKyAgU3RyaW5nIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKKyAgc3Rk
Ojp2ZWN0b3I8U3RydWN0dXJlZEVycm9yPiBnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3Q7Cisg
IGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KTsKKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7CisgIGJvb2wgZ29vZCgpIGNvbnN0OworCitwcml2
YXRlOgorICBPdXJSZWFkZXIoT3VyUmVhZGVyIGNvbnN0Jik7ICAgICAgLy8gbm8gaW1wbAorICB2
b2lkIG9wZXJhdG9yPShPdXJSZWFkZXIgY29uc3QmKTsgLy8gbm8gaW1wbAorCisgIGVudW0gVG9r
ZW5UeXBlIHsKKyAgICB0b2tlbkVuZE9mU3RyZWFtID0gMCwKKyAgICB0b2tlbk9iamVjdEJlZ2lu
LAorICAgIHRva2VuT2JqZWN0RW5kLAorICAgIHRva2VuQXJyYXlCZWdpbiwKKyAgICB0b2tlbkFy
cmF5RW5kLAorICAgIHRva2VuU3RyaW5nLAorICAgIHRva2VuTnVtYmVyLAorICAgIHRva2VuVHJ1
ZSwKKyAgICB0b2tlbkZhbHNlLAorICAgIHRva2VuTnVsbCwKKyAgICB0b2tlbk5hTiwKKyAgICB0
b2tlblBvc0luZiwKKyAgICB0b2tlbk5lZ0luZiwKKyAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAor
ICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAorICAgIHRva2VuQ29tbWVudCwKKyAgICB0b2tlbkVy
cm9yCisgIH07CisKKyAgY2xhc3MgVG9rZW4geworICBwdWJsaWM6CisgICAgVG9rZW5UeXBlIHR5
cGVfOworICAgIExvY2F0aW9uIHN0YXJ0XzsKKyAgICBMb2NhdGlvbiBlbmRfOworICB9OworCisg
IGNsYXNzIEVycm9ySW5mbyB7CisgIHB1YmxpYzoKKyAgICBUb2tlbiB0b2tlbl87CisgICAgU3Ry
aW5nIG1lc3NhZ2VfOworICAgIExvY2F0aW9uIGV4dHJhXzsKKyAgfTsKKworICB0eXBlZGVmIHN0
ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7CisKKyAgYm9vbCByZWFkVG9rZW4oVG9rZW4mIHRv
a2VuKTsKKyAgdm9pZCBza2lwU3BhY2VzKCk7CisgIGJvb2wgbWF0Y2goTG9jYXRpb24gcGF0dGVy
biwgaW50IHBhdHRlcm5MZW5ndGgpOworICBib29sIHJlYWRDb21tZW50KCk7CisgIGJvb2wgcmVh
ZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGJvb2wg
cmVhZFN0cmluZygpOworICBib29sIHJlYWRTdHJpbmdTaW5nbGVRdW90ZSgpOworICBib29sIHJl
YWROdW1iZXIoYm9vbCBjaGVja0luZik7CisgIGJvb2wgcmVhZFZhbHVlKCk7CisgIGJvb2wgcmVh
ZE9iamVjdChUb2tlbiYgdG9rZW4pOworICBib29sIHJlYWRBcnJheShUb2tlbiYgdG9rZW4pOwor
ICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihU
b2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4m
IHRva2VuKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBTdHJpbmcmIGRlY29k
ZWQpOworICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZURv
dWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVVbmljb2Rl
Q29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24g
ZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2Rl
KTsKKyAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29sIGFk
ZEVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRy
YSA9IG51bGxwdHIpOworICBib29sIHJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRp
bFRva2VuKTsKKyAgYm9vbCBhZGRFcnJvckFuZFJlY292ZXIoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIHZvaWQgc2tpcFVudGls
U3BhY2UoKTsKKyAgVmFsdWUmIGN1cnJlbnRWYWx1ZSgpOworICBDaGFyIGdldE5leHRDaGFyKCk7
CisgIHZvaWQKKyAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLCBp
bnQmIGxpbmUsIGludCYgY29sdW1uKSBjb25zdDsKKyAgU3RyaW5nIGdldExvY2F0aW9uTGluZUFu
ZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7CisgIHZvaWQgYWRkQ29tbWVudChMb2Nh
dGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCk7Cisg
IHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKTsKKworICBzdGF0aWMgU3RyaW5n
IG5vcm1hbGl6ZUVPTChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kKTsKKyAgc3RhdGljIGJv
b2wgY29udGFpbnNOZXdMaW5lKExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQpOworCisgIHR5
cGVkZWYgc3RkOjpzdGFjazxWYWx1ZSo+IE5vZGVzOworICBOb2RlcyBub2Rlc187CisgIEVycm9y
cyBlcnJvcnNfOworICBTdHJpbmcgZG9jdW1lbnRfOworICBMb2NhdGlvbiBiZWdpbl87CisgIExv
Y2F0aW9uIGVuZF87CisgIExvY2F0aW9uIGN1cnJlbnRfOworICBMb2NhdGlvbiBsYXN0VmFsdWVF
bmRfOworICBWYWx1ZSogbGFzdFZhbHVlXzsKKyAgU3RyaW5nIGNvbW1lbnRzQmVmb3JlXzsKKwor
ICBPdXJGZWF0dXJlcyBjb25zdCBmZWF0dXJlc187CisgIGJvb2wgY29sbGVjdENvbW1lbnRzXzsK
K307IC8vIE91clJlYWRlcgorCisvLyBjb21wbGV0ZSBjb3B5IG9mIFJlYWQgaW1wbCwgZm9yIE91
clJlYWRlcgorCitib29sIE91clJlYWRlcjo6Y29udGFpbnNOZXdMaW5lKE91clJlYWRlcjo6TG9j
YXRpb24gYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91clJlYWRlcjo6
TG9jYXRpb24gZW5kKSB7CisgIGZvciAoOyBiZWdpbiA8IGVuZDsgKytiZWdpbikKKyAgICBpZiAo
KmJlZ2luID09ICdcbicgfHwgKmJlZ2luID09ICdccicpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAg
cmV0dXJuIGZhbHNlOworfQorCitPdXJSZWFkZXI6Ok91clJlYWRlcihPdXJGZWF0dXJlcyBjb25z
dCYgZmVhdHVyZXMpCisgICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5k
XygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCisgICAgICBsYXN0VmFsdWVfKCksIGNv
bW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkg
eworfQorCitib29sIE91clJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1l
bnRzKSB7CisgIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7CisgICAgY29sbGVjdENv
bW1lbnRzID0gZmFsc2U7CisgIH0KKworICBiZWdpbl8gPSBiZWdpbkRvYzsKKyAgZW5kXyA9IGVu
ZERvYzsKKyAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKKyAgY3VycmVudF8g
PSBiZWdpbl87CisgIGxhc3RWYWx1ZUVuZF8gPSBudWxscHRyOworICBsYXN0VmFsdWVfID0gbnVs
bHB0cjsKKyAgY29tbWVudHNCZWZvcmVfLmNsZWFyKCk7CisgIGVycm9yc18uY2xlYXIoKTsKKyAg
d2hpbGUgKCFub2Rlc18uZW1wdHkoKSkKKyAgICBub2Rlc18ucG9wKCk7CisgIG5vZGVzXy5wdXNo
KCZyb290KTsKKworICBib29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFsdWUoKTsKKyAgbm9kZXNfLnBv
cCgpOworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOworICBpZiAo
ZmVhdHVyZXNfLmZhaWxJZkV4dHJhXykgeworICAgIGlmICgoZmVhdHVyZXNfLnN0cmljdFJvb3Rf
IHx8IHRva2VuLnR5cGVfICE9IHRva2VuRXJyb3IpICYmCisgICAgICAgIHRva2VuLnR5cGVfICE9
IHRva2VuRW5kT2ZTdHJlYW0pIHsKKyAgICAgIGFkZEVycm9yKCJFeHRyYSBub24td2hpdGVzcGFj
ZSBhZnRlciBKU09OIHZhbHVlLiIsIHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgIH0KKyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgp
KQorICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlcik7Cisg
IGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKKyAgICBpZiAoIXJvb3QuaXNBcnJheSgpICYm
ICFyb290LmlzT2JqZWN0KCkpIHsKKyAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFy
dCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCisgICAgICAvLyBp
biBkb2MKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgICAgIHRva2VuLnN0YXJ0
XyA9IGJlZ2luRG9jOworICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKKyAgICAgIGFkZEVycm9y
KAorICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJy
YXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCisgICAgICAgICAgdG9rZW4pOworICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgfQorICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKworYm9vbCBPdXJS
ZWFkZXI6OnJlYWRWYWx1ZSgpIHsKKyAgLy8gIFRvIHByZXNlcnZlIHRoZSBvbGQgYmVoYXZpb3Vy
IHdlIGNhc3Qgc2l6ZV90IHRvIGludC4KKyAgaWYgKG5vZGVzXy5zaXplKCkgPiBmZWF0dXJlc18u
c3RhY2tMaW1pdF8pCisgICAgdGhyb3dSdW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQg
aW4gcmVhZFZhbHVlKCkuIik7CisgIFRva2VuIHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0
b2tlbik7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50
c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7CisgICAgY3VycmVudFZhbHVlKCkuc2V0
Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOworICAgIGNvbW1lbnRzQmVm
b3JlXy5jbGVhcigpOworICB9CisKKyAgc3dpdGNoICh0b2tlbi50eXBlXykgeworICBjYXNlIHRv
a2VuT2JqZWN0QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QodG9rZW4pOworICAg
IGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBi
cmVhazsKKyAgY2FzZSB0b2tlbkFycmF5QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRBcnJh
eSh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBi
ZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuTnVtYmVyOgorICAgIHN1Y2Nlc3NmdWwg
PSBkZWNvZGVOdW1iZXIodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuU3RyaW5nOgor
ICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOworICAgIGJyZWFrOworICBjYXNl
IHRva2VuVHJ1ZTogeworICAgIFZhbHVlIHYodHJ1ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dh
cFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3Rh
cnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5l
bmRfIC0gYmVnaW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbkZhbHNlOiB7CisgICAgVmFs
dWUgdihmYWxzZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBj
dXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBi
cmVhazsKKyAgY2FzZSB0b2tlbk51bGw6IHsKKyAgICBWYWx1ZSB2OworICAgIGN1cnJlbnRWYWx1
ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRv
a2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQo
dG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIH0gYnJlYWs7CisgIGNhc2UgdG9rZW5OYU46IHsKKyAg
ICBWYWx1ZSB2KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAg
IGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIH0gYnJlYWs7CisgIGNhc2UgdG9r
ZW5Qb3NJbmY6IHsKKyAgICBWYWx1ZSB2KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgfSBicmVh
azsKKyAgY2FzZSB0b2tlbk5lZ0luZjogeworICAgIFZhbHVlIHYoLXN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
dik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKKyAgfSBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5U2VwYXJhdG9yOgorICBjYXNlIHRv
a2VuT2JqZWN0RW5kOgorICBjYXNlIHRva2VuQXJyYXlFbmQ6CisgICAgaWYgKGZlYXR1cmVzXy5h
bGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykgeworICAgICAgLy8gIlVuLXJlYWQiIHRoZSBj
dXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJyZW50IHZhbHVlIGFzIGEgbnVsbAorICAgICAg
Ly8gdG9rZW4uCisgICAgICBjdXJyZW50Xy0tOworICAgICAgVmFsdWUgdjsKKyAgICAgIGN1cnJl
bnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKICAgICAgIGJyZWFrOwotICAgY2FzZSAnIic6
CisgICAgfSAvLyBlbHNlLCBmYWxsIHRocm91Z2ggLi4uCisgIGRlZmF1bHQ6CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICByZXR1
cm4gYWRkRXJyb3IoIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSBleHBlY3Rl
ZC4iLCB0b2tlbik7CisgIH0KKworICBpZiAoY29sbGVjdENvbW1lbnRzXykgeworICAgIGxhc3RW
YWx1ZUVuZF8gPSBjdXJyZW50XzsKKyAgICBsYXN0VmFsdWVfID0gJmN1cnJlbnRWYWx1ZSgpOwor
ICB9CisKKyAgcmV0dXJuIHN1Y2Nlc3NmdWw7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpza2lwQ29t
bWVudFRva2VucyhUb2tlbiYgdG9rZW4pIHsKKyAgaWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1lbnRz
XykgeworICAgIGRvIHsKKyAgICAgIHJlYWRUb2tlbih0b2tlbik7CisgICAgfSB3aGlsZSAodG9r
ZW4udHlwZV8gPT0gdG9rZW5Db21tZW50KTsKKyAgfSBlbHNlIHsKKyAgICByZWFkVG9rZW4odG9r
ZW4pOworICB9Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7
CisgIHNraXBTcGFjZXMoKTsKKyAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87CisgIENoYXIgYyA9
IGdldE5leHRDaGFyKCk7CisgIGJvb2wgb2sgPSB0cnVlOworICBzd2l0Y2ggKGMpIHsKKyAgY2Fz
ZSAneyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOworICAgIGJyZWFrOwor
ICBjYXNlICd9JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0RW5kOworICAgIGJyZWFr
OworICBjYXNlICdbJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKKyAgICBi
cmVhazsKKyAgY2FzZSAnXSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOworICAg
IGJyZWFrOworICBjYXNlICciJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOworICAg
IG9rID0gcmVhZFN0cmluZygpOworICAgIGJyZWFrOworICBjYXNlICdcJyc6CisgICAgaWYgKGZl
YXR1cmVzXy5hbGxvd1NpbmdsZVF1b3Rlc18pIHsKICAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5T
dHJpbmc7Ci0gICAgICBvayA9IHJlYWRTdHJpbmcoKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSAn
Lyc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVudDsKLSAgICAgIG9rID0gcmVhZENv
bW1lbnQoKTsKKyAgICAgIG9rID0gcmVhZFN0cmluZ1NpbmdsZVF1b3RlKCk7CiAgICAgICBicmVh
azsKLSAgIGNhc2UgJzAnOgotICAgY2FzZSAnMSc6Ci0gICBjYXNlICcyJzoKLSAgIGNhc2UgJzMn
OgotICAgY2FzZSAnNCc6Ci0gICBjYXNlICc1JzoKLSAgIGNhc2UgJzYnOgotICAgY2FzZSAnNyc6
Ci0gICBjYXNlICc4JzoKLSAgIGNhc2UgJzknOgotICAgY2FzZSAnLSc6CisgICAgfSAvLyBlbHNl
IGZhbGwgdGhyb3VnaAorICBjYXNlICcvJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVu
dDsKKyAgICBvayA9IHJlYWRDb21tZW50KCk7CisgICAgYnJlYWs7CisgIGNhc2UgJzAnOgorICBj
YXNlICcxJzoKKyAgY2FzZSAnMic6CisgIGNhc2UgJzMnOgorICBjYXNlICc0JzoKKyAgY2FzZSAn
NSc6CisgIGNhc2UgJzYnOgorICBjYXNlICc3JzoKKyAgY2FzZSAnOCc6CisgIGNhc2UgJzknOgor
ICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdW1iZXI7CisgICAgcmVhZE51bWJlcihmYWxzZSk7Cisg
ICAgYnJlYWs7CisgIGNhc2UgJy0nOgorICAgIGlmIChyZWFkTnVtYmVyKHRydWUpKSB7CiAgICAg
ICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOwotICAgICAgcmVhZE51bWJlcigpOworICAgIH0g
ZWxzZSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmVnSW5mOworICAgICAgb2sgPSBmZWF0
dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXyAmJiBtYXRjaCgibmZpbml0eSIsIDcpOworICAgIH0K
KyAgICBicmVhazsKKyAgY2FzZSAndCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblRydWU7Cisg
ICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2UgJ2YnOgorICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKKyAgICBvayA9IG1hdGNoKCJhbHNlIiwgNCk7CisgICAg
YnJlYWs7CisgIGNhc2UgJ24nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdWxsOworICAgIG9r
ID0gbWF0Y2goInVsbCIsIDMpOworICAgIGJyZWFrOworICBjYXNlICdOJzoKKyAgICBpZiAoZmVh
dHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5O
YU47CisgICAgICBvayA9IG1hdGNoKCJhTiIsIDIpOworICAgIH0gZWxzZSB7CisgICAgICBvayA9
IGZhbHNlOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSAnSSc6CisgICAgaWYgKGZlYXR1cmVz
Xy5hbGxvd1NwZWNpYWxGbG9hdHNfKSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuUG9zSW5m
OworICAgICAgb2sgPSBtYXRjaCgibmZpbml0eSIsIDcpOworICAgIH0gZWxzZSB7CisgICAgICBv
ayA9IGZhbHNlOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSAnLCc6CisgICAgdG9rZW4udHlw
ZV8gPSB0b2tlbkFycmF5U2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlICc6JzoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlIDA6
CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOworICAgIGJyZWFrOworICBkZWZh
dWx0OgorICAgIG9rID0gZmFsc2U7CisgICAgYnJlYWs7CisgIH0KKyAgaWYgKCFvaykKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLmVuZF8gPSBjdXJyZW50XzsKKyAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpza2lwU3BhY2VzKCkgeworICB3aGlsZSAo
Y3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50XzsKKyAgICBpZiAoYyA9
PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdcbicpCisgICAgICArK2N1
cnJlbnRfOworICAgIGVsc2UKICAgICAgIGJyZWFrOwotICAgY2FzZSAndCc6Ci0gICAgICB0b2tl
bi50eXBlXyA9IHRva2VuVHJ1ZTsKLSAgICAgIG9rID0gbWF0Y2goICJydWUiLCAzICk7CisgIH0K
K30KKworYm9vbCBPdXJSZWFkZXI6Om1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJu
TGVuZ3RoKSB7CisgIGlmIChlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoKQorICAgIHJl
dHVybiBmYWxzZTsKKyAgaW50IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKKyAgd2hpbGUgKGluZGV4
LS0pCisgICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSkKKyAgICAgIHJl
dHVybiBmYWxzZTsKKyAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKKyAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ29tbWVudCgpIHsKKyAgTG9jYXRpb24gY29tbWVu
dEJlZ2luID0gY3VycmVudF8gLSAxOworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29s
IHN1Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgaWYgKGMgPT0gJyonKQorICAgIHN1Y2Nlc3NmdWwgPSBy
ZWFkQ1N0eWxlQ29tbWVudCgpOworICBlbHNlIGlmIChjID09ICcvJykKKyAgICBzdWNjZXNzZnVs
ID0gcmVhZENwcFN0eWxlQ29tbWVudCgpOworICBpZiAoIXN1Y2Nlc3NmdWwpCisgICAgcmV0dXJu
IGZhbHNlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7CisgICAgQ29tbWVudFBsYWNlbWVu
dCBwbGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOworICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFj
b250YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luKSkgeworICAgICAgaWYg
KGMgIT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCisg
ICAgICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7CisgICAgfQorCisgICAg
YWRkQ29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOworICB9CisgIHJl
dHVybiB0cnVlOworfQorCitTdHJpbmcgT3VyUmVhZGVyOjpub3JtYWxpemVFT0woT3VyUmVhZGVy
OjpMb2NhdGlvbiBiZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXJSZWFk
ZXI6OkxvY2F0aW9uIGVuZCkgeworICBTdHJpbmcgbm9ybWFsaXplZDsKKyAgbm9ybWFsaXplZC5y
ZXNlcnZlKHN0YXRpY19jYXN0PHNpemVfdD4oZW5kIC0gYmVnaW4pKTsKKyAgT3VyUmVhZGVyOjpM
b2NhdGlvbiBjdXJyZW50ID0gYmVnaW47CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAg
IGNoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKGN1
cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID09ICdcbicpCisgICAgICAgIC8vIGNvbnZlcnQgZG9z
IEVPTAorICAgICAgICArK2N1cnJlbnQ7CisgICAgICAvLyBjb252ZXJ0IE1hYyBFT0wKKyAgICAg
IG5vcm1hbGl6ZWQgKz0gJ1xuJzsKKyAgICB9IGVsc2UgeworICAgICAgbm9ybWFsaXplZCArPSBj
OworICAgIH0KKyAgfQorICByZXR1cm4gbm9ybWFsaXplZDsKK30KKwordm9pZCBPdXJSZWFkZXI6
OmFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCkgeworICBhc3NlcnQoY29sbGVjdENvbW1lbnRzXyk7CisgIGNvbnN0IFN0cmlu
ZyYgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUVPTChiZWdpbiwgZW5kKTsKKyAgaWYgKHBsYWNlbWVu
dCA9PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB7CisgICAgYXNzZXJ0KGxhc3RWYWx1ZV8gIT0g
bnVsbHB0cik7CisgICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVudChub3JtYWxpemVkLCBwbGFjZW1l
bnQpOworICB9IGVsc2UgeworICAgIGNvbW1lbnRzQmVmb3JlXyArPSBub3JtYWxpemVkOworICB9
Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKChj
dXJyZW50XyArIDEpIDwgZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAg
aWYgKGMgPT0gJyonICYmICpjdXJyZW50XyA9PSAnLycpCiAgICAgICBicmVhazsKLSAgIGNhc2Ug
J2YnOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOwotICAgICAgb2sgPSBtYXRjaCgg
ImFsc2UiLCA0ICk7CisgIH0KKyAgcmV0dXJuIGdldE5leHRDaGFyKCkgPT0gJy8nOworfQorCiti
b29sIE91clJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJlbnRf
ICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICdc
bicpCiAgICAgICBicmVhazsKLSAgIGNhc2UgJ24nOgotICAgICAgdG9rZW4udHlwZV8gPSB0b2tl
bk51bGw7Ci0gICAgICBvayA9IG1hdGNoKCAidWxsIiwgMyApOworICAgIGlmIChjID09ICdccicp
IHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4gSXQgd2lsbCBiZSBub3JtYWxpemVkIGluIGFk
ZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8gIT0gZW5kXyAmJiAqY3VycmVudF8gPT0gJ1xu
JykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICAgIC8vIEJyZWFrIG9uIE1vYyBPUyA5IEVP
TC4KICAgICAgIGJyZWFrOwotICAgY2FzZSAnLCc6Ci0gICAgICB0b2tlbi50eXBlXyA9IHRva2Vu
QXJyYXlTZXBhcmF0b3I7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91
clJlYWRlcjo6cmVhZE51bWJlcihib29sIGNoZWNrSW5mKSB7CisgIGNvbnN0IGNoYXIqIHAgPSBj
dXJyZW50XzsKKyAgaWYgKGNoZWNrSW5mICYmIHAgIT0gZW5kXyAmJiAqcCA9PSAnSScpIHsKKyAg
ICBjdXJyZW50XyA9ICsrcDsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgY2hhciBjID0gJzAn
OyAvLyBzdG9wZ2FwIGZvciBhbHJlYWR5IGNvbnN1bWVkIGNoYXJhY3RlcgorICAvLyBpbnRlZ3Jh
bCBwYXJ0CisgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICBjID0gKGN1cnJlbnRf
ID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7CisgIC8vIGZyYWN0aW9uYWwgcGFydAorICBpZiAo
YyA9PSAnLicpIHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6ICdcMCc7
CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9
IHApIDwgZW5kXyA/ICpwKysgOiAnXDAnOworICB9CisgIC8vIGV4cG9uZW50aWFsIHBhcnQKKyAg
aWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5k
XyA/ICpwKysgOiAnXDAnOworICAgIGlmIChjID09ICcrJyB8fCBjID09ICctJykKKyAgICAgIGMg
PSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogJ1wwJzsKKyAgICB3aGlsZSAoYyA+PSAn
MCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6
ICdcMCc7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9Citib29sIE91clJlYWRlcjo6cmVhZFN0cmlu
ZygpIHsKKyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBj
ID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENoYXIo
KTsKKyAgICBlbHNlIGlmIChjID09ICciJykKICAgICAgIGJyZWFrOwotICAgY2FzZSAnOic6Ci0g
ICAgICB0b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOworICB9CisgIHJldHVybiBj
ID09ICciJzsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRTdHJpbmdTaW5nbGVRdW90ZSgpIHsK
KyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBjID0gZ2V0
TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENoYXIoKTsKKyAg
ICBlbHNlIGlmIChjID09ICdcJycpCiAgICAgICBicmVhazsKLSAgIGNhc2UgMDoKLSAgICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5FbmRPZlN0cmVhbTsKKyAgfQorICByZXR1cm4gYyA9PSAnXCcnOwor
fQorCitib29sIE91clJlYWRlcjo6cmVhZE9iamVjdChUb2tlbiYgdG9rZW4pIHsKKyAgVG9rZW4g
dG9rZW5OYW1lOworICBTdHJpbmcgbmFtZTsKKyAgVmFsdWUgaW5pdChvYmplY3RWYWx1ZSk7Cisg
IGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBjdXJyZW50VmFsdWUoKS5zZXRP
ZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICB3aGlsZSAocmVhZFRva2VuKHRv
a2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAo
dG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBpbml0aWFsVG9rZW5PaykKKyAgICAg
IGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRva2VuTmFtZSk7CisgICAgaWYgKCFpbml0aWFs
VG9rZW5PaykKICAgICAgIGJyZWFrOwotICAgZGVmYXVsdDoKLSAgICAgIG9rID0gZmFsc2U7Cisg
ICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBuYW1lLmVtcHR5KCkp
IC8vIGVtcHR5IG9iamVjdAorICAgICAgcmV0dXJuIHRydWU7CisgICAgbmFtZS5jbGVhcigpOwor
ICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKKyAgICAgIGlmICghZGVj
b2RlU3RyaW5nKHRva2VuTmFtZSwgbmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVy
cm9yKHRva2VuT2JqZWN0RW5kKTsKKyAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0
b2tlbk51bWJlciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKKyAgICAgIFZhbHVl
IG51bWJlck5hbWU7CisgICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUsIG51bWJlck5h
bWUpKQorICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7Cisg
ICAgICBuYW1lID0gbnVtYmVyTmFtZS5hc1N0cmluZygpOworICAgIH0gZWxzZSB7CiAgICAgICBi
cmVhazsKLSAgIH0KLSAgIGlmICggIW9rICkKLSAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJv
cjsKLSAgIHRva2VuLmVuZF8gPSBjdXJyZW50XzsKLSAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBpZiAobmFtZS5sZW5ndGgoKSA+PSAoMVUgPDwgMzApKQorICAgICAgdGhyb3dSdW50aW1lRXJy
b3IoImtleWxlbmd0aCA+PSAyXjMwIik7CisgICAgaWYgKGZlYXR1cmVzXy5yZWplY3REdXBLZXlz
XyAmJiBjdXJyZW50VmFsdWUoKS5pc01lbWJlcihuYW1lKSkgeworICAgICAgU3RyaW5nIG1zZyA9
ICJEdXBsaWNhdGUga2V5OiAnIiArIG5hbWUgKyAiJyI7CisgICAgICByZXR1cm4gYWRkRXJyb3JB
bmRSZWNvdmVyKG1zZywgdG9rZW5OYW1lLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorCisgICAg
VG9rZW4gY29sb247CisgICAgaWYgKCFyZWFkVG9rZW4oY29sb24pIHx8IGNvbG9uLnR5cGVfICE9
IHRva2VuTWVtYmVyU2VwYXJhdG9yKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVy
KCJNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCBjb2xvbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBWYWx1
ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKKyAgICBub2Rlc18ucHVzaCgmdmFsdWUp
OworICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBub2Rlc18ucG9wKCk7CisgICAgaWYg
KCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9y
KHRva2VuT2JqZWN0RW5kKTsKKworICAgIFRva2VuIGNvbW1hOworICAgIGlmICghcmVhZFRva2Vu
KGNvbW1hKSB8fAorICAgICAgICAoY29tbWEudHlwZV8gIT0gdG9rZW5PYmplY3RFbmQgJiYgY29t
bWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgorICAgICAgICAgY29tbWEudHlwZV8g
IT0gdG9rZW5Db21tZW50KSkgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlz
c2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJhdGlvbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIGJvb2wg
ZmluYWxpemVUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5D
b21tZW50ICYmIGZpbmFsaXplVG9rZW5PaykKKyAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRU
b2tlbihjb21tYSk7CisgICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQorICAg
ICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlzc2lu
ZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5OYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRva2VuT2JqZWN0RW5kKTsKIH0KIAorYm9vbCBPdXJSZWFkZXI6OnJlYWRB
cnJheShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKKyAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIHNraXBTcGFjZXMoKTsKKyAgaWYgKGN1cnJl
bnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09ICddJykgLy8gZW1wdHkgYXJyYXkKKyAgeworICAg
IFRva2VuIGVuZEFycmF5OworICAgIHJlYWRUb2tlbihlbmRBcnJheSk7CisgICAgcmV0dXJuIHRy
dWU7CisgIH0KKyAgaW50IGluZGV4ID0gMDsKKyAgZm9yICg7OykgeworICAgIFZhbHVlJiB2YWx1
ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7Cisg
ICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAoIW9r
KSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9r
ZW5BcnJheUVuZCk7CisKKyAgICBUb2tlbiBjdXJyZW50VG9rZW47CisgICAgLy8gQWNjZXB0IENv
bW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KKyAgICBvayA9IHJlYWRUb2tlbihj
dXJyZW50VG9rZW4pOworICAgIHdoaWxlIChjdXJyZW50VG9rZW4udHlwZV8gPT0gdG9rZW5Db21t
ZW50ICYmIG9rKSB7CisgICAgICBvayA9IHJlYWRUb2tlbihjdXJyZW50VG9rZW4pOworICAgIH0K
KyAgICBib29sIGJhZFRva2VuVHlwZSA9IChjdXJyZW50VG9rZW4udHlwZV8gIT0gdG9rZW5BcnJh
eVNlcGFyYXRvciAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUb2tlbi50eXBl
XyAhPSB0b2tlbkFycmF5RW5kKTsKKyAgICBpZiAoIW9rIHx8IGJhZFRva2VuVHlwZSkgeworICAg
ICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigiTWlzc2luZyAnLCcgb3IgJ10nIGluIGFycmF5
IGRlY2xhcmF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRv
a2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9CisgICAgaWYgKGN1cnJlbnRUb2tlbi50eXBlXyA9
PSB0b2tlbkFycmF5RW5kKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CiAK
LXZvaWQgCi1SZWFkZXI6OnNraXBTcGFjZXMoKQotewotICAgd2hpbGUgKCBjdXJyZW50XyAhPSBl
bmRfICkKLSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50XzsKLSAgICAgIGlmICggYyA9PSAn
ICcgIHx8ICBjID09ICdcdCcgIHx8ICBjID09ICdccicgIHx8ICBjID09ICdcbicgKQotICAgICAg
ICAgKytjdXJyZW50XzsKLSAgICAgIGVsc2UKLSAgICAgICAgIGJyZWFrOwotICAgfQorYm9vbCBP
dXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsK
KyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsK
KyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgp
LnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgp
LnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNv
ZGVkKSB7CisgIC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4g
SWYgdGhlIG51bWJlciBpcworICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBzdXBwb3J0ZWQg
dmFsdWUgb2YgYW4gaW50ZWdlciB0aGVuCisgIC8vIHdlIGRlY29kZSB0aGUgbnVtYmVyIGFzIGEg
ZG91YmxlLgorICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOworICBib29sIGlzTmVn
YXRpdmUgPSAqY3VycmVudCA9PSAnLSc7CisgIGlmIChpc05lZ2F0aXZlKQorICAgICsrY3VycmVu
dDsKKworICAvLyBUT0RPKGlzc3VlICM5NjApOiBDaGFuZ2UgdG8gY29uc3RleHByCisgIHN0YXRp
YyBjb25zdCBhdXRvIHBvc2l0aXZlX3RocmVzaG9sZCA9IFZhbHVlOjptYXhMYXJnZXN0VUludCAv
IDEwOworICBzdGF0aWMgY29uc3QgYXV0byBwb3NpdGl2ZV9sYXN0X2RpZ2l0ID0gVmFsdWU6Om1h
eExhcmdlc3RVSW50ICUgMTA7CisgIHN0YXRpYyBjb25zdCBhdXRvIG5lZ2F0aXZlX3RocmVzaG9s
ZCA9CisgICAgICBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1pbkxhcmdlc3RJbnQpIC8gMTA7
CisgIHN0YXRpYyBjb25zdCBhdXRvIG5lZ2F0aXZlX2xhc3RfZGlnaXQgPQorICAgICAgVmFsdWU6
Okxhcmdlc3RVSW50KFZhbHVlOjptaW5MYXJnZXN0SW50KSAlIDEwOworCisgIGNvbnN0IGF1dG8g
dGhyZXNob2xkID0gaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlX3RocmVzaG9sZCA6IHBvc2l0aXZlX3Ro
cmVzaG9sZDsKKyAgY29uc3QgYXV0byBsYXN0X2RpZ2l0ID0KKyAgICAgIGlzTmVnYXRpdmUgPyBu
ZWdhdGl2ZV9sYXN0X2RpZ2l0IDogcG9zaXRpdmVfbGFzdF9kaWdpdDsKKworICBWYWx1ZTo6TGFy
Z2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGlsZSAoY3VycmVudCA8IHRva2VuLmVuZF8pIHsKKyAg
ICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjIDwgJzAnIHx8IGMgPiAnOScpCisgICAg
ICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKworICAgIGNvbnN0IGF1dG8g
ZGlnaXQoc3RhdGljX2Nhc3Q8VmFsdWU6OlVJbnQ+KGMgLSAnMCcpKTsKKyAgICBpZiAodmFsdWUg
Pj0gdGhyZXNob2xkKSB7CisgICAgICAvLyBXZSd2ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1heCB2
YWx1ZSBkaXZpZGVkIGJ5IDEwIChyb3VuZGVkIGRvd24pLiBJZgorICAgICAgLy8gYSkgd2UndmUg
b25seSBqdXN0IHRvdWNoZWQgdGhlIGxpbWl0LCBtZWFpbmcgdmFsdWUgPT0gdGhyZXNob2xkLAor
ICAgICAgLy8gYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwgb3IKKyAgICAgIC8vIGMpIGl0J3Mg
c21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5kaW5nIGRlbHRhLCB3ZSdyZSBva2F5Lgor
ICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVtYmVyIGFzIGEgZG91YmxlIHRvIGF2b2lk
IG92ZXJmbG93LgorICAgICAgaWYgKHZhbHVlID4gdGhyZXNob2xkIHx8IGN1cnJlbnQgIT0gdG9r
ZW4uZW5kXyB8fCBkaWdpdCA+IGxhc3RfZGlnaXQpIHsKKyAgICAgICAgcmV0dXJuIGRlY29kZURv
dWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgICB9CisgICAgfQorICAgIHZhbHVlID0gdmFsdWUg
KiAxMCArIGRpZ2l0OworICB9CiAKLWJvb2wgCi1SZWFkZXI6Om1hdGNoKCBMb2NhdGlvbiBwYXR0
ZXJuLCAKLSAgICAgICAgICAgICAgIGludCBwYXR0ZXJuTGVuZ3RoICkKLXsKLSAgIGlmICggZW5k
XyAtIGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCApCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICBp
bnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3RoOwotICAgd2hpbGUgKCBpbmRleC0tICkKLSAgICAgIGlm
ICggY3VycmVudF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhdICkKLSAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgIGN1cnJlbnRfICs9IHBhdHRlcm5MZW5ndGg7Ci0gICByZXR1cm4gdHJ1ZTsKLX0K
LQotCi1ib29sCi1SZWFkZXI6OnJlYWRDb21tZW50KCkKLXsKLSAgIExvY2F0aW9uIGNvbW1lbnRC
ZWdpbiA9IGN1cnJlbnRfIC0gMTsKLSAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7Ci0gICBib29s
IHN1Y2Nlc3NmdWwgPSBmYWxzZTsKLSAgIGlmICggYyA9PSAnKicgKQotICAgICAgc3VjY2Vzc2Z1
bCA9IHJlYWRDU3R5bGVDb21tZW50KCk7Ci0gICBlbHNlIGlmICggYyA9PSAnLycgKQotICAgICAg
c3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKLSAgIGlmICggIXN1Y2Nlc3NmdWwg
KQotICAgICAgcmV0dXJuIGZhbHNlOworICBpZiAoaXNOZWdhdGl2ZSkKKyAgICBkZWNvZGVkID0g
LVZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKKyAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxh
cmdlc3RVSW50KFZhbHVlOjptYXhMYXJnZXN0SW50KSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Okxh
cmdlc3RJbnQodmFsdWUpOworICBlbHNlCisgICAgZGVjb2RlZCA9IHZhbHVlOwogCi0gICBpZiAo
IGNvbGxlY3RDb21tZW50c18gKQotICAgewotICAgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQgPSBjb21tZW50QmVmb3JlOwotICAgICAgaWYgKCBsYXN0VmFsdWVFbmRfICAmJiAgIWNvbnRh
aW5zTmV3TGluZSggbGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luICkgKQotICAgICAgewotICAg
ICAgICAgaWYgKCBjICE9ICcqJyAgfHwgICFjb250YWluc05ld0xpbmUoIGNvbW1lbnRCZWdpbiwg
Y3VycmVudF8gKSApCi0gICAgICAgICAgICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNhbWVM
aW5lOwotICAgICAgfQorICByZXR1cm4gdHJ1ZTsKK30KIAotICAgICAgYWRkQ29tbWVudCggY29t
bWVudEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50ICk7Ci0gICB9Ci0gICByZXR1cm4gdHJ1ZTsK
LX0KLQotCi12b2lkIAotUmVhZGVyOjphZGRDb21tZW50KCBMb2NhdGlvbiBiZWdpbiwgCi0gICAg
ICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwgCi0gICAgICAgICAgICAgICAgICAgIENvbW1l
bnRQbGFjZW1lbnQgcGxhY2VtZW50ICkKLXsKLSAgIGFzc2VydCggY29sbGVjdENvbW1lbnRzXyAp
OwotICAgaWYgKCBwbGFjZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1lTGluZSApCi0gICB7Ci0g
ICAgICBhc3NlcnQoIGxhc3RWYWx1ZV8gIT0gMCApOwotICAgICAgbGFzdFZhbHVlXy0+c2V0Q29t
bWVudCggc3RkOjpzdHJpbmcoIGJlZ2luLCBlbmQgKSwgcGxhY2VtZW50ICk7Ci0gICB9Ci0gICBl
bHNlCi0gICB7Ci0gICAgICBpZiAoICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSApCi0gICAgICAg
ICBjb21tZW50c0JlZm9yZV8gKz0gIlxuIjsKLSAgICAgIGNvbW1lbnRzQmVmb3JlXyArPSBzdGQ6
OnN0cmluZyggYmVnaW4sIGVuZCApOwotICAgfQotfQotCi0KLWJvb2wgCi1SZWFkZXI6OnJlYWRD
U3R5bGVDb21tZW50KCkKLXsKLSAgIHdoaWxlICggY3VycmVudF8gIT0gZW5kXyApCi0gICB7Ci0g
ICAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOwotICAgICAgaWYgKCBjID09ICcqJyAgJiYgICpj
dXJyZW50XyA9PSAnLycgKQotICAgICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gZ2V0TmV4
dENoYXIoKSA9PSAnLyc7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVu
dCgpCi17Ci0gICB3aGlsZSAoIGN1cnJlbnRfICE9IGVuZF8gKQotICAgewotICAgICAgQ2hhciBj
ID0gZ2V0TmV4dENoYXIoKTsKLSAgICAgIGlmICggIGMgPT0gJ1xyJyAgfHwgIGMgPT0gJ1xuJyAp
Ci0gICAgICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVybiB0cnVlOwotfQotCi0KLXZvaWQgCi1S
ZWFkZXI6OnJlYWROdW1iZXIoKQotewotICAgd2hpbGUgKCBjdXJyZW50XyAhPSBlbmRfICkKLSAg
IHsKLSAgICAgIGlmICggISgqY3VycmVudF8gPj0gJzAnICAmJiAgKmN1cnJlbnRfIDw9ICc5Jykg
ICYmCi0gICAgICAgICAgICFpbiggKmN1cnJlbnRfLCAnLicsICdlJywgJ0UnLCAnKycsICctJyAp
ICkKLSAgICAgICAgIGJyZWFrOwotICAgICAgKytjdXJyZW50XzsKLSAgIH0KLX0KLQotYm9vbAot
UmVhZGVyOjpyZWFkU3RyaW5nKCkKLXsKLSAgIENoYXIgYyA9IDA7Ci0gICB3aGlsZSAoIGN1cnJl
bnRfICE9IGVuZF8gKQotICAgewotICAgICAgYyA9IGdldE5leHRDaGFyKCk7Ci0gICAgICBpZiAo
IGMgPT0gJ1xcJyApCi0gICAgICAgICBnZXROZXh0Q2hhcigpOwotICAgICAgZWxzZSBpZiAoIGMg
PT0gJyInICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIGMgPT0gJyInOwotfQot
Ci0KLWJvb2wgCi1SZWFkZXI6OnJlYWRPYmplY3QoIFRva2VuICYvKnRva2VuU3RhcnQqLyApCi17
Ci0gICBUb2tlbiB0b2tlbk5hbWU7Ci0gICBzdGQ6OnN0cmluZyBuYW1lOwotICAgY3VycmVudFZh
bHVlKCkgPSBWYWx1ZSggb2JqZWN0VmFsdWUgKTsKLSAgIHdoaWxlICggcmVhZFRva2VuKCB0b2tl
bk5hbWUgKSApCi0gICB7Ci0gICAgICBib29sIGluaXRpYWxUb2tlbk9rID0gdHJ1ZTsKLSAgICAg
IHdoaWxlICggdG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAgJiYgIGluaXRpYWxUb2tl
bk9rICkKLSAgICAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKCB0b2tlbk5hbWUgKTsK
LSAgICAgIGlmICAoICFpbml0aWFsVG9rZW5PayApCi0gICAgICAgICBicmVhazsKLSAgICAgIGlm
ICggdG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2JqZWN0RW5kICAmJiAgbmFtZS5lbXB0eSgpICkg
IC8vIGVtcHR5IG9iamVjdAotICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICBpZiAoIHRva2Vu
TmFtZS50eXBlXyAhPSB0b2tlblN0cmluZyApCi0gICAgICAgICBicmVhazsKLSAgICAgIAotICAg
ICAgbmFtZSA9ICIiOwotICAgICAgaWYgKCAhZGVjb2RlU3RyaW5nKCB0b2tlbk5hbWUsIG5hbWUg
KSApCi0gICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvciggdG9rZW5PYmplY3RFbmQgKTsK
LQotICAgICAgVG9rZW4gY29sb247Ci0gICAgICBpZiAoICFyZWFkVG9rZW4oIGNvbG9uICkgfHwg
IGNvbG9uLnR5cGVfICE9IHRva2VuTWVtYmVyU2VwYXJhdG9yICkKLSAgICAgIHsKLSAgICAgICAg
IHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoICJNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVt
YmVyIG5hbWUiLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9uLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuT2JqZWN0RW5kICk7Ci0g
ICAgICB9Ci0gICAgICBWYWx1ZSAmdmFsdWUgPSBjdXJyZW50VmFsdWUoKVsgbmFtZSBdOwotICAg
ICAgbm9kZXNfLnB1c2goICZ2YWx1ZSApOwotICAgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOwot
ICAgICAgbm9kZXNfLnBvcCgpOwotICAgICAgaWYgKCAhb2sgKSAvLyBlcnJvciBhbHJlYWR5IHNl
dAotICAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IoIHRva2VuT2JqZWN0RW5kICk7Ci0K
LSAgICAgIFRva2VuIGNvbW1hOwotICAgICAgaWYgKCAhcmVhZFRva2VuKCBjb21tYSApCi0gICAg
ICAgICAgICB8fCAgKCBjb21tYS50eXBlXyAhPSB0b2tlbk9iamVjdEVuZCAgJiYgIAotICAgICAg
ICAgICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgotICAgICAg
ICAgICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50ICkgKQotICAgICAgewotICAg
ICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlciggIk1pc3NpbmcgJywnIG9yICd9JyBpbiBv
YmplY3QgZGVjbGFyYXRpb24iLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbW1hLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuT2JqZWN0
RW5kICk7Ci0gICAgICB9Ci0gICAgICBib29sIGZpbmFsaXplVG9rZW5PayA9IHRydWU7Ci0gICAg
ICB3aGlsZSAoIGNvbW1hLnR5cGVfID09IHRva2VuQ29tbWVudCAmJgotICAgICAgICAgICAgICBm
aW5hbGl6ZVRva2VuT2sgKQotICAgICAgICAgZmluYWxpemVUb2tlbk9rID0gcmVhZFRva2VuKCBj
b21tYSApOwotICAgICAgaWYgKCBjb21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCApCi0gICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgIH0KLSAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoICJN
aXNzaW5nICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRva2VuTmFtZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tl
bk9iamVjdEVuZCApOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OnJlYWRBcnJheSggVG9rZW4gJi8q
dG9rZW5TdGFydCovICkKLXsKLSAgIGN1cnJlbnRWYWx1ZSgpID0gVmFsdWUoIGFycmF5VmFsdWUg
KTsKLSAgIHNraXBTcGFjZXMoKTsKLSAgIGlmICggKmN1cnJlbnRfID09ICddJyApIC8vIGVtcHR5
IGFycmF5Ci0gICB7Ci0gICAgICBUb2tlbiBlbmRBcnJheTsKLSAgICAgIHJlYWRUb2tlbiggZW5k
QXJyYXkgKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgfQotICAgaW50IGluZGV4ID0gMDsKLSAg
IGZvciAoOzspCi0gICB7Ci0gICAgICBWYWx1ZSAmdmFsdWUgPSBjdXJyZW50VmFsdWUoKVsgaW5k
ZXgrKyBdOwotICAgICAgbm9kZXNfLnB1c2goICZ2YWx1ZSApOwotICAgICAgYm9vbCBvayA9IHJl
YWRWYWx1ZSgpOwotICAgICAgbm9kZXNfLnBvcCgpOwotICAgICAgaWYgKCAhb2sgKSAvLyBlcnJv
ciBhbHJlYWR5IHNldAotICAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IoIHRva2VuQXJy
YXlFbmQgKTsKLQotICAgICAgVG9rZW4gdG9rZW47Ci0gICAgICAvLyBBY2NlcHQgQ29tbWVudCBh
ZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgotICAgICAgb2sgPSByZWFkVG9rZW4oIHRva2Vu
ICk7Ci0gICAgICB3aGlsZSAoIHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCAgJiYgIG9rICkK
LSAgICAgIHsKLSAgICAgICAgIG9rID0gcmVhZFRva2VuKCB0b2tlbiApOwotICAgICAgfQotICAg
ICAgYm9vbCBiYWRUb2tlblR5cGUgPSAoIHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0
b3IgICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udHlwZV8gIT0gdG9rZW5B
cnJheUVuZCApOwotICAgICAgaWYgKCAhb2sgIHx8ICBiYWRUb2tlblR5cGUgKQotICAgICAgewot
ICAgICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlciggIk1pc3NpbmcgJywnIG9yICddJyBp
biBhcnJheSBkZWNsYXJhdGlvbiIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdG9rZW4sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5BcnJh
eUVuZCApOwotICAgICAgfQotICAgICAgaWYgKCB0b2tlbi50eXBlXyA9PSB0b2tlbkFycmF5RW5k
ICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAK
LVJlYWRlcjo6ZGVjb2RlTnVtYmVyKCBUb2tlbiAmdG9rZW4gKQotewotICAgYm9vbCBpc0RvdWJs
ZSA9IGZhbHNlOwotICAgZm9yICggTG9jYXRpb24gaW5zcGVjdCA9IHRva2VuLnN0YXJ0XzsgaW5z
cGVjdCAhPSB0b2tlbi5lbmRfOyArK2luc3BlY3QgKQotICAgewotICAgICAgaXNEb3VibGUgPSBp
c0RvdWJsZSAgCi0gICAgICAgICAgICAgICAgIHx8ICBpbiggKmluc3BlY3QsICcuJywgJ2UnLCAn
RScsICcrJyApICAKLSAgICAgICAgICAgICAgICAgfHwgICggKmluc3BlY3QgPT0gJy0nICAmJiAg
aW5zcGVjdCAhPSB0b2tlbi5zdGFydF8gKTsKLSAgIH0KLSAgIGlmICggaXNEb3VibGUgKQotICAg
ICAgcmV0dXJuIGRlY29kZURvdWJsZSggdG9rZW4gKTsKLSAgIC8vIEF0dGVtcHRzIHRvIHBhcnNl
IHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBpcwotICAgLy8gbGFyZ2Vy
IHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZhbHVlIG9mIGFuIGludGVnZXIgdGhlbgotICAg
Ly8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUuCi0gICBMb2NhdGlvbiBjdXJyZW50
ID0gdG9rZW4uc3RhcnRfOwotICAgYm9vbCBpc05lZ2F0aXZlID0gKmN1cnJlbnQgPT0gJy0nOwot
ICAgaWYgKCBpc05lZ2F0aXZlICkKLSAgICAgICsrY3VycmVudDsKLSAgIFZhbHVlOjpMYXJnZXN0
VUludCBtYXhJbnRlZ2VyVmFsdWUgPSBpc05lZ2F0aXZlID8gVmFsdWU6Okxhcmdlc3RVSW50KC1W
YWx1ZTo6bWluTGFyZ2VzdEludCkgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6IFZhbHVlOjptYXhMYXJnZXN0VUludDsKLSAgIFZhbHVlOjpMYXJn
ZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUgLyAxMDsKLSAgIFZhbHVlOjpMYXJn
ZXN0VUludCB2YWx1ZSA9IDA7Ci0gICB3aGlsZSAoIGN1cnJlbnQgPCB0b2tlbi5lbmRfICkKLSAg
IHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICBpZiAoIGMgPCAnMCcgIHx8ICBj
ID4gJzknICkKLSAgICAgICAgIHJldHVybiBhZGRFcnJvciggIiciICsgc3RkOjpzdHJpbmcoIHRv
a2VuLnN0YXJ0XywgdG9rZW4uZW5kXyApICsgIicgaXMgbm90IGEgbnVtYmVyLiIsIHRva2VuICk7
Ci0gICAgICBWYWx1ZTo6VUludCBkaWdpdChjIC0gJzAnKTsKLSAgICAgIGlmICggdmFsdWUgPj0g
dGhyZXNob2xkICkKLSAgICAgIHsKLSAgICAgICAgIC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0
aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQgZG93bikuIElmCi0gICAgICAgICAv
LyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUgbGltaXQsIGIpIHRoaXMgaXMgdGhlIGxh
c3QgZGlnaXQsIGFuZAotICAgICAgICAgLy8gYykgaXQncyBzbWFsbCBlbm91Z2ggdG8gZml0IGlu
IHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9rYXkuCi0gICAgICAgICAvLyBPdGhlcndpc2Ug
dHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQgb3ZlcmZsb3cuCi0gICAgICAg
ICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwKLSAgICAgICAgICAgICBjdXJyZW50ICE9IHRva2Vu
LmVuZF8gfHwKLSAgICAgICAgICAgICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKQotICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSggdG9rZW4gKTsKLSAgICAg
ICAgIH0KLSAgICAgIH0KLSAgICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0OwotICAgfQot
ICAgaWYgKCBpc05lZ2F0aXZlICkKLSAgICAgIGN1cnJlbnRWYWx1ZSgpID0gLVZhbHVlOjpMYXJn
ZXN0SW50KCB2YWx1ZSApOwotICAgZWxzZSBpZiAoIHZhbHVlIDw9IFZhbHVlOjpMYXJnZXN0VUlu
dChWYWx1ZTo6bWF4SW50KSApCi0gICAgICBjdXJyZW50VmFsdWUoKSA9IFZhbHVlOjpMYXJnZXN0
SW50KCB2YWx1ZSApOwotICAgZWxzZQotICAgICAgY3VycmVudFZhbHVlKCkgPSB2YWx1ZTsKLSAg
IHJldHVybiB0cnVlOwotfQotCi0KLWJvb2wgCi1SZWFkZXI6OmRlY29kZURvdWJsZSggVG9rZW4g
JnRva2VuICkKLXsKLSAgIGRvdWJsZSB2YWx1ZSA9IDA7Ci0gICBjb25zdCBpbnQgYnVmZmVyU2l6
ZSA9IDMyOwotICAgaW50IGNvdW50OwotICAgaW50IGxlbmd0aCA9IGludCh0b2tlbi5lbmRfIC0g
dG9rZW4uc3RhcnRfKTsKLQotICAgLy8gU2FuaXR5IGNoZWNrIHRvIGF2b2lkIGJ1ZmZlciBvdmVy
ZmxvdyBleHBsb2l0cy4KLSAgIGlmIChsZW5ndGggPCAwKSB7Ci0gICAgICByZXR1cm4gYWRkRXJy
b3IoICJVbmFibGUgdG8gcGFyc2UgdG9rZW4gbGVuZ3RoIiwgdG9rZW4gKTsKLSAgIH0KLQotICAg
Ly8gQXZvaWQgdXNpbmcgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHRoZSBmb3JtYXQgY29udHJvbCBz
dHJpbmcgZ2l2ZW4gdG8KLSAgIC8vIHNzY2FuZiwgYXMgdGhpcyBjYW4gY2F1c2UgaGFyZCB0byBk
ZWJ1ZyBjcmFzaGVzIG9uIE9TIFguIFNlZSBoZXJlIGZvciBtb3JlCi0gICAvLyBpbmZvOgotICAg
Ly8KLSAgIC8vICAgICBodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L21hYy8jRE9D
VU1FTlRBVElPTi9EZXZlbG9wZXJUb29scy9nY2MtNC4wLjEvZ2NjL0luY29tcGF0aWJpbGl0aWVz
Lmh0bWwKLSAgIGNoYXIgZm9ybWF0W10gPSAiJWxmIjsKLQotICAgaWYgKCBsZW5ndGggPD0gYnVm
ZmVyU2l6ZSApCi0gICB7Ci0gICAgICBDaGFyIGJ1ZmZlcltidWZmZXJTaXplKzFdOwotICAgICAg
bWVtY3B5KCBidWZmZXIsIHRva2VuLnN0YXJ0XywgbGVuZ3RoICk7Ci0gICAgICBidWZmZXJbbGVu
Z3RoXSA9IDA7Ci0gICAgICBjb3VudCA9IHNzY2FuZiggYnVmZmVyLCBmb3JtYXQsICZ2YWx1ZSAp
OwotICAgfQotICAgZWxzZQotICAgewotICAgICAgc3RkOjpzdHJpbmcgYnVmZmVyKCB0b2tlbi5z
dGFydF8sIHRva2VuLmVuZF8gKTsKLSAgICAgIGNvdW50ID0gc3NjYW5mKCBidWZmZXIuY19zdHIo
KSwgZm9ybWF0LCAmdmFsdWUgKTsKLSAgIH0KLQotICAgaWYgKCBjb3VudCAhPSAxICkKLSAgICAg
IHJldHVybiBhZGRFcnJvciggIiciICsgc3RkOjpzdHJpbmcoIHRva2VuLnN0YXJ0XywgdG9rZW4u
ZW5kXyApICsgIicgaXMgbm90IGEgbnVtYmVyLiIsIHRva2VuICk7Ci0gICBjdXJyZW50VmFsdWUo
KSA9IHZhbHVlOwotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2Rl
U3RyaW5nKCBUb2tlbiAmdG9rZW4gKQotewotICAgc3RkOjpzdHJpbmcgZGVjb2RlZDsKLSAgIGlm
ICggIWRlY29kZVN0cmluZyggdG9rZW4sIGRlY29kZWQgKSApCi0gICAgICByZXR1cm4gZmFsc2U7
Ci0gICBjdXJyZW50VmFsdWUoKSA9IGRlY29kZWQ7Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1i
b29sIAotUmVhZGVyOjpkZWNvZGVTdHJpbmcoIFRva2VuICZ0b2tlbiwgc3RkOjpzdHJpbmcgJmRl
Y29kZWQgKQotewotICAgZGVjb2RlZC5yZXNlcnZlKCB0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRf
IC0gMiApOwotICAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAg
JyInCi0gICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRfIC0gMTsgICAgICAvLyBkbyBub3QgaW5j
bHVkZSAnIicKLSAgIHdoaWxlICggY3VycmVudCAhPSBlbmQgKQotICAgewotICAgICAgQ2hhciBj
ID0gKmN1cnJlbnQrKzsKLSAgICAgIGlmICggYyA9PSAnIicgKQotICAgICAgICAgYnJlYWs7Ci0g
ICAgICBlbHNlIGlmICggYyA9PSAnXFwnICkKLSAgICAgIHsKLSAgICAgICAgIGlmICggY3VycmVu
dCA9PSBlbmQgKQotICAgICAgICAgICAgcmV0dXJuIGFkZEVycm9yKCAiRW1wdHkgZXNjYXBlIHNl
cXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50ICk7Ci0gICAgICAgICBDaGFyIGVzY2Fw
ZSA9ICpjdXJyZW50Kys7Ci0gICAgICAgICBzd2l0Y2ggKCBlc2NhcGUgKQotICAgICAgICAgewot
ICAgICAgICAgY2FzZSAnIic6IGRlY29kZWQgKz0gJyInOyBicmVhazsKLSAgICAgICAgIGNhc2Ug
Jy8nOiBkZWNvZGVkICs9ICcvJzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICdcXCc6IGRlY29kZWQg
Kz0gJ1xcJzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICdiJzogZGVjb2RlZCArPSAnXGInOyBicmVh
azsKLSAgICAgICAgIGNhc2UgJ2YnOiBkZWNvZGVkICs9ICdcZic7IGJyZWFrOwotICAgICAgICAg
Y2FzZSAnbic6IGRlY29kZWQgKz0gJ1xuJzsgYnJlYWs7Ci0gICAgICAgICBjYXNlICdyJzogZGVj
b2RlZCArPSAnXHInOyBicmVhazsKLSAgICAgICAgIGNhc2UgJ3QnOiBkZWNvZGVkICs9ICdcdCc7
IGJyZWFrOwotICAgICAgICAgY2FzZSAndSc6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKLSAgICAgICAgICAgICAgIGlmICggIWRlY29kZVVuaWNv
ZGVDb2RlUG9pbnQoIHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUgKSApCi0gICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICBkZWNvZGVkICs9IGNvZGVQb2lu
dFRvVVRGOCh1bmljb2RlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBhZGRFcnJvciggIkJhZCBlc2NhcGUg
c2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQgKTsKLSAgICAgICAgIH0KLSAgICAg
IH0KLSAgICAgIGVsc2UKLSAgICAgIHsKLSAgICAgICAgIGRlY29kZWQgKz0gYzsKLSAgICAgIH0K
LSAgIH0KLSAgIHJldHVybiB0cnVlOworYm9vbCBPdXJSZWFkZXI6OmRlY29kZURvdWJsZShUb2tl
biYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVEb3VibGUodG9rZW4s
IGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0
XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8g
LSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbAotUmVhZGVyOjpkZWNvZGVVbmlj
b2RlQ29kZVBvaW50KCBUb2tlbiAmdG9rZW4sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2F0aW9uICZjdXJyZW50LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApCi17Citib29sIE91clJlYWRlcjo6ZGVjb2Rl
RG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKKyAgZG91YmxlIHZhbHVlID0g
MDsKKyAgY29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKKyAgaW50IGNvdW50OworICBwdHJkaWZm
X3QgY29uc3QgbGVuZ3RoID0gdG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XzsKKworICAvLyBTYW5p
dHkgY2hlY2sgdG8gYXZvaWQgYnVmZmVyIG92ZXJmbG93IGV4cGxvaXRzLgorICBpZiAobGVuZ3Ro
IDwgMCkgeworICAgIHJldHVybiBhZGRFcnJvcigiVW5hYmxlIHRvIHBhcnNlIHRva2VuIGxlbmd0
aCIsIHRva2VuKTsKKyAgfQorICBhdXRvIGNvbnN0IHVsZW5ndGggPSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KGxlbmd0aCk7CisKKyAgLy8gQXZvaWQgdXNpbmcgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHRo
ZSBmb3JtYXQgY29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KKyAgLy8gc3NjYW5mLCBhcyB0aGlzIGNh
biBjYXVzZSBoYXJkIHRvIGRlYnVnIGNyYXNoZXMgb24gT1MgWC4gU2VlIGhlcmUgZm9yIG1vcmUK
KyAgLy8gaW5mbzoKKyAgLy8KKyAgLy8gICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xp
YnJhcnkvbWFjLyNET0NVTUVOVEFUSU9OL0RldmVsb3BlclRvb2xzL2djYy00LjAuMS9nY2MvSW5j
b21wYXRpYmlsaXRpZXMuaHRtbAorICBjaGFyIGZvcm1hdFtdID0gIiVsZiI7CisKKyAgaWYgKGxl
bmd0aCA8PSBidWZmZXJTaXplKSB7CisgICAgQ2hhciBidWZmZXJbYnVmZmVyU2l6ZSArIDFdOwor
ICAgIG1lbWNweShidWZmZXIsIHRva2VuLnN0YXJ0XywgdWxlbmd0aCk7CisgICAgYnVmZmVyW2xl
bmd0aF0gPSAwOworICAgIGZpeE51bWVyaWNMb2NhbGVJbnB1dChidWZmZXIsIGJ1ZmZlciArIGxl
bmd0aCk7CisgICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLCBmb3JtYXQsICZ2YWx1ZSk7CisgIH0g
ZWxzZSB7CisgICAgU3RyaW5nIGJ1ZmZlcih0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pOworICAg
IGNvdW50ID0gc3NjYW5mKGJ1ZmZlci5jX3N0cigpLCBmb3JtYXQsICZ2YWx1ZSk7CisgIH0KKwor
ICBpZiAoY291bnQgIT0gMSkKKyAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICInIiArIFN0
cmluZyh0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsgIicgaXMgbm90IGEgbnVtYmVyLiIsIHRv
a2VuKTsKKyAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KIAotICAgaWYgKCAh
ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKCB0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2Rl
ICkgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgaWYgKHVuaWNvZGUgPj0gMHhEODAwICYmIHVu
aWNvZGUgPD0gMHhEQkZGKQotICAgewotICAgICAgLy8gc3Vycm9nYXRlIHBhaXJzCi0gICAgICBp
ZiAoZW5kIC0gY3VycmVudCA8IDYpCi0gICAgICAgICByZXR1cm4gYWRkRXJyb3IoICJhZGRpdGlv
bmFsIHNpeCBjaGFyYWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUgc3Vycm9nYXRlIHBh
aXIuIiwgdG9rZW4sIGN1cnJlbnQgKTsKLSAgICAgIHVuc2lnbmVkIGludCBzdXJyb2dhdGVQYWly
OwotICAgICAgaWYgKCooY3VycmVudCsrKSA9PSAnXFwnICYmICooY3VycmVudCsrKT09ICd1JykK
LSAgICAgIHsKLSAgICAgICAgIGlmIChkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoIHRva2Vu
LCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIgKSkKLSAgICAgICAgIHsKLSAgICAgICAgICAg
IHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEwKSArIChzdXJyb2dh
dGVQYWlyICYgMHgzRkYpOwotICAgICAgICAgfSAKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgIH0gCi0gICAgICBlbHNlCi0gICAgICAgICByZXR1cm4gYWRk
RXJyb3IoICJleHBlY3RpbmcgYW5vdGhlciBcXHUgdG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBo
YWxmIG9mIGEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsIHRva2VuLCBjdXJyZW50ICk7Ci0gICB9
Ci0gICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCAKLVJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2Fw
ZVNlcXVlbmNlKCBUb2tlbiAmdG9rZW4sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2F0aW9uICZjdXJyZW50LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhdGlvbiBlbmQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCAmdW5pY29kZSApCi17Ci0gICBpZiAoIGVuZCAtIGN1cnJlbnQgPCA0
ICkKLSAgICAgIHJldHVybiBhZGRFcnJvciggIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBp
biBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsIHRva2VuLCBjdXJyZW50ICk7Ci0gICB1
bmljb2RlID0gMDsKLSAgIGZvciAoIGludCBpbmRleCA9MDsgaW5kZXggPCA0OyArK2luZGV4ICkK
LSAgIHsKLSAgICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICB1bmljb2RlICo9IDE2Owot
ICAgICAgaWYgKCBjID49ICcwJyAgJiYgIGMgPD0gJzknICkKLSAgICAgICAgIHVuaWNvZGUgKz0g
YyAtICcwJzsKLSAgICAgIGVsc2UgaWYgKCBjID49ICdhJyAgJiYgIGMgPD0gJ2YnICkKLSAgICAg
ICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOwotICAgICAgZWxzZSBpZiAoIGMgPj0gJ0EnICAm
JiAgYyA8PSAnRicgKQotICAgICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7Ci0gICAgICBl
bHNlCi0gICAgICAgICByZXR1cm4gYWRkRXJyb3IoICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVu
Y2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLCB0b2tlbiwgY3VycmVu
dCApOwotICAgfQotICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6YWRkRXJy
b3IoIGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNzYWdlLCAKLSAgICAgICAgICAgICAgICAgIFRva2Vu
ICZ0b2tlbiwKLSAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGV4dHJhICkKLXsKLSAgIEVycm9y
SW5mbyBpbmZvOwotICAgaW5mby50b2tlbl8gPSB0b2tlbjsKLSAgIGluZm8ubWVzc2FnZV8gPSBt
ZXNzYWdlOwotICAgaW5mby5leHRyYV8gPSBleHRyYTsKLSAgIGVycm9yc18ucHVzaF9iYWNrKCBp
bmZvICk7Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotYm9vbCAKLVJlYWRlcjo6cmVjb3ZlckZy
b21FcnJvciggVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuICkKLXsKLSAgIGludCBlcnJvckNvdW50
ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKLSAgIFRva2VuIHNraXA7Ci0gICBmb3IgKDs7KQotICAg
ewotICAgICAgaWYgKCAhcmVhZFRva2VuKHNraXApICkKLSAgICAgICAgIGVycm9yc18ucmVzaXpl
KCBlcnJvckNvdW50ICk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQotICAg
ICAgaWYgKCBza2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuICB8fCAgc2tpcC50eXBlXyA9PSB0
b2tlbkVuZE9mU3RyZWFtICkKLSAgICAgICAgIGJyZWFrOwotICAgfQotICAgZXJyb3JzXy5yZXNp
emUoIGVycm9yQ291bnQgKTsKLSAgIHJldHVybiBmYWxzZTsKLX0KLQotCi1ib29sIAotUmVhZGVy
OjphZGRFcnJvckFuZFJlY292ZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICZtZXNzYWdlLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiAmdG9rZW4sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuICkKLXsKLSAgIGFkZEVycm9yKCBtZXNz
YWdlLCB0b2tlbiApOwotICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IoIHNraXBVbnRpbFRva2Vu
ICk7Ci19Ci0KLQotVmFsdWUgJgotUmVhZGVyOjpjdXJyZW50VmFsdWUoKQotewotICAgcmV0dXJu
ICoobm9kZXNfLnRvcCgpKTsKLX0KLQotCi1SZWFkZXI6OkNoYXIgCi1SZWFkZXI6OmdldE5leHRD
aGFyKCkKLXsKLSAgIGlmICggY3VycmVudF8gPT0gZW5kXyApCi0gICAgICByZXR1cm4gMDsKLSAg
IHJldHVybiAqY3VycmVudF8rKzsKLX0KLQotCi12b2lkIAotUmVhZGVyOjpnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4oIExvY2F0aW9uIGxvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCAmbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgJmNvbHVtbiApIGNvbnN0Ci17Ci0gICBMb2NhdGlvbiBjdXJyZW50ID0gYmVnaW5fOwotICAg
TG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICBsaW5lID0gMDsKLSAgIHdoaWxl
ICggY3VycmVudCA8IGxvY2F0aW9uICAmJiAgY3VycmVudCAhPSBlbmRfICkKLSAgIHsKLSAgICAg
IENoYXIgYyA9ICpjdXJyZW50Kys7Ci0gICAgICBpZiAoIGMgPT0gJ1xyJyApCi0gICAgICB7Ci0g
ICAgICAgICBpZiAoICpjdXJyZW50ID09ICdcbicgKQotICAgICAgICAgICAgKytjdXJyZW50Owot
ICAgICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7Ci0gICAgICAgICArK2xpbmU7Ci0gICAg
ICB9Ci0gICAgICBlbHNlIGlmICggYyA9PSAnXG4nICkKLSAgICAgIHsKLSAgICAgICAgIGxhc3RM
aW5lU3RhcnQgPSBjdXJyZW50OwotICAgICAgICAgKytsaW5lOworYm9vbCBPdXJSZWFkZXI6OmRl
Y29kZVN0cmluZyhUb2tlbiYgdG9rZW4pIHsKKyAgU3RyaW5nIGRlY29kZWRfc3RyaW5nOworICBp
ZiAoIWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJpbmcpKQorICAgIHJldHVybiBmYWxz
ZTsKKyAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3
YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tl
bi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tl
bi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpk
ZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBTdHJpbmcmIGRlY29kZWQpIHsKKyAgZGVjb2RlZC5y
ZXNlcnZlKHN0YXRpY19jYXN0PHNpemVfdD4odG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIp
KTsKKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAgJyInCisg
IExvY2F0aW9uIGVuZCA9IHRva2VuLmVuZF8gLSAxOyAgICAgICAvLyBkbyBub3QgaW5jbHVkZSAn
IicKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsK
KyAgICBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgICBlbHNlIGlmIChjID09ICdcXCcp
IHsKKyAgICAgIGlmIChjdXJyZW50ID09IGVuZCkKKyAgICAgICAgcmV0dXJuIGFkZEVycm9yKCJF
bXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAgICAg
Q2hhciBlc2NhcGUgPSAqY3VycmVudCsrOworICAgICAgc3dpdGNoIChlc2NhcGUpIHsKKyAgICAg
IGNhc2UgJyInOgorICAgICAgICBkZWNvZGVkICs9ICciJzsKKyAgICAgICAgYnJlYWs7CisgICAg
ICBjYXNlICcvJzoKKyAgICAgICAgZGVjb2RlZCArPSAnLyc7CisgICAgICAgIGJyZWFrOworICAg
ICAgY2FzZSAnXFwnOgorICAgICAgICBkZWNvZGVkICs9ICdcXCc7CisgICAgICAgIGJyZWFrOwor
ICAgICAgY2FzZSAnYic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xiJzsKKyAgICAgICAgYnJlYWs7
CisgICAgICBjYXNlICdmJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGYnOworICAgICAgICBicmVh
azsKKyAgICAgIGNhc2UgJ24nOgorICAgICAgICBkZWNvZGVkICs9ICdcbic7CisgICAgICAgIGJy
ZWFrOworICAgICAgY2FzZSAncic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xyJzsKKyAgICAgICAg
YnJlYWs7CisgICAgICBjYXNlICd0JzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHQnOworICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ3UnOiB7CisgICAgICAgIHVuc2lnbmVkIGludCB1bmljb2Rl
OworICAgICAgICBpZiAoIWRlY29kZVVuaWNvZGVDb2RlUG9pbnQodG9rZW4sIGN1cnJlbnQsIGVu
ZCwgdW5pY29kZSkpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWNvZGVkICs9
IGNvZGVQb2ludFRvVVRGOCh1bmljb2RlKTsKKyAgICAgIH0gYnJlYWs7CisgICAgICBkZWZhdWx0
OgorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5n
IiwgdG9rZW4sIGN1cnJlbnQpOwogICAgICAgfQotICAgfQotICAgLy8gY29sdW1uICYgbGluZSBz
dGFydCBhdCAxCi0gICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7
Ci0gICArK2xpbmU7CisgICAgfSBlbHNlIHsKKyAgICAgIGRlY29kZWQgKz0gYzsKKyAgICB9Cisg
IH0KKyAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29k
ZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisKKyAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBl
U2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgcmV0dXJuIGZhbHNl
OworICBpZiAodW5pY29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERCRkYpIHsKKyAgICAv
LyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCisgICAgICByZXR1
cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0
ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAorICAgICAgICAgIHRva2VuLCBj
dXJyZW50KTsKKyAgICBpZiAoKihjdXJyZW50KyspID09ICdcXCcgJiYgKihjdXJyZW50KyspID09
ICd1JykgeworICAgICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7CisgICAgICBpZiAoZGVj
b2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBh
aXIpKSB7CisgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8
IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOworICAgICAgfSBlbHNlCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5n
IGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiAiCisgICAgICAg
ICAgICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsCisgICAgICAgICAgICAg
ICAgICAgICAgdG9rZW4sIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQogCi1zdGQ6
OnN0cmluZwotUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oIExvY2F0aW9uIGxvY2F0
aW9uICkgY29uc3QKLXsKLSAgIGludCBsaW5lLCBjb2x1bW47Ci0gICBnZXRMb2NhdGlvbkxpbmVB
bmRDb2x1bW4oIGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4gKTsKLSAgIGNoYXIgYnVmZmVyWzE4KzE2
KzE2KzFdOwotICAgc3ByaW50ZiggYnVmZmVyLCAiTGluZSAlZCwgQ29sdW1uICVkIiwgbGluZSwg
Y29sdW1uICk7Ci0gICByZXR1cm4gYnVmZmVyOworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVVuaWNv
ZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgcmV0X3VuaWNvZGUpIHsK
KyAgaWYgKGVuZCAtIGN1cnJlbnQgPCA0KQorICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAg
IkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVj
dGVkLiIsIHRva2VuLAorICAgICAgICBjdXJyZW50KTsKKyAgaW50IHVuaWNvZGUgPSAwOworICBm
b3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytpbmRleCkgeworICAgIENoYXIgYyA9ICpj
dXJyZW50Kys7CisgICAgdW5pY29kZSAqPSAxNjsKKyAgICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAn
OScpCisgICAgICB1bmljb2RlICs9IGMgLSAnMCc7CisgICAgZWxzZSBpZiAoYyA+PSAnYScgJiYg
YyA8PSAnZicpCisgICAgICB1bmljb2RlICs9IGMgLSAnYScgKyAxMDsKKyAgICBlbHNlIGlmIChj
ID49ICdBJyAmJiBjIDw9ICdGJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdBJyArIDEwOworICAg
IGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgICAiQmFkIHVuaWNvZGUgZXNj
YXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwgZGlnaXQgZXhwZWN0ZWQuIiwKKyAg
ICAgICAgICB0b2tlbiwgY3VycmVudCk7CisgIH0KKyAgcmV0X3VuaWNvZGUgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBpbnQ+KHVuaWNvZGUpOworICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBPdXJS
ZWFkZXI6OmFkZEVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2Nh
dGlvbiBleHRyYSkgeworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsK
KyAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gZXh0cmE7CisgIGVy
cm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gZmFsc2U7Cit9CiAKLS8vIERlcHJlY2F0
ZWQuIFByZXNlcnZlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQotc3RkOjpzdHJpbmcgCi1S
ZWFkZXI6OmdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGdl
dEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKLX0KLQotCi1zdGQ6OnN0cmluZyAKLVJlYWRlcjo6
Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0Ci17Ci0gICBzdGQ6OnN0cmluZyBmb3Jt
YXR0ZWRNZXNzYWdlOwotICAgZm9yICggRXJyb3JzOjpjb25zdF9pdGVyYXRvciBpdEVycm9yID0g
ZXJyb3JzXy5iZWdpbigpOwotICAgICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOwotICAg
ICAgICAgKytpdEVycm9yICkKLSAgIHsKLSAgICAgIGNvbnN0IEVycm9ySW5mbyAmZXJyb3IgPSAq
aXRFcnJvcjsKLSAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiogIiArIGdldExvY2F0aW9uTGlu
ZUFuZENvbHVtbiggZXJyb3IudG9rZW5fLnN0YXJ0XyApICsgIlxuIjsKLSAgICAgIGZvcm1hdHRl
ZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsgIlxuIjsKLSAgICAgIGlmICggZXJy
b3IuZXh0cmFfICkKLSAgICAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIlNlZSAiICsgZ2V0TG9j
YXRpb25MaW5lQW5kQ29sdW1uKCBlcnJvci5leHRyYV8gKSArICIgZm9yIGRldGFpbC5cbiI7Ci0g
ICB9Ci0gICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKLX0KLQotCi1zdGQ6OmlzdHJlYW0mIG9w
ZXJhdG9yPj4oIHN0ZDo6aXN0cmVhbSAmc2luLCBWYWx1ZSAmcm9vdCApCi17Ci0gICAgSnNvbjo6
UmVhZGVyIHJlYWRlcjsKLSAgICBib29sIG9rID0gcmVhZGVyLnBhcnNlKHNpbiwgcm9vdCwgdHJ1
ZSk7Ci0gICAgaWYgKCFvaykgewotICAgICAgZnByaW50ZigKLSAgICAgICAgICBzdGRlcnIsCi0g
ICAgICAgICAgIkVycm9yIGZyb20gcmVhZGVyOiAlcyIsCi0gICAgICAgICAgcmVhZGVyLmdldEZv
cm1hdHRlZEVycm9yTWVzc2FnZXMoKS5jX3N0cigpKTsKLQotICAgICAgSlNPTl9GQUlMX01FU1NB
R0UoInJlYWRlciBlcnJvciIpOworYm9vbCBPdXJSZWFkZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9r
ZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIHNpemVfdCBlcnJvckNvdW50ID0gZXJyb3JzXy5z
aXplKCk7CisgIFRva2VuIHNraXA7CisgIGZvciAoOzspIHsKKyAgICBpZiAoIXJlYWRUb2tlbihz
a2lwKSkKKyAgICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOyAvLyBkaXNjYXJkIGVycm9y
cyBjYXVzZWQgYnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50eXBlXyA9PSBza2lwVW50aWxUb2tl
biB8fCBza2lwLnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0pCisgICAgICBicmVhazsKKyAgfQor
ICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IE91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAg
YWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOworICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcihza2lw
VW50aWxUb2tlbik7Cit9CisKK1ZhbHVlJiBPdXJSZWFkZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0
dXJuICoobm9kZXNfLnRvcCgpKTsgfQorCitPdXJSZWFkZXI6OkNoYXIgT3VyUmVhZGVyOjpnZXRO
ZXh0Q2hhcigpIHsKKyAgaWYgKGN1cnJlbnRfID09IGVuZF8pCisgICAgcmV0dXJuIDA7CisgIHJl
dHVybiAqY3VycmVudF8rKzsKK30KKwordm9pZCBPdXJSZWFkZXI6OmdldExvY2F0aW9uTGluZUFu
ZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50JiBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQmIGNvbHVtbikgY29uc3QgeworICBMb2NhdGlvbiBjdXJyZW50ID0gYmVnaW5f
OworICBMb2NhdGlvbiBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgbGluZSA9IDA7CisgIHdo
aWxlIChjdXJyZW50IDwgbG9jYXRpb24gJiYgY3VycmVudCAhPSBlbmRfKSB7CisgICAgQ2hhciBj
ID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAgICBpZiAoKmN1cnJlbnQg
PT0gJ1xuJykKKyAgICAgICAgKytjdXJyZW50OworICAgICAgbGFzdExpbmVTdGFydCA9IGN1cnJl
bnQ7CisgICAgICArK2xpbmU7CisgICAgfSBlbHNlIGlmIChjID09ICdcbicpIHsKKyAgICAgIGxh
c3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKytsaW5lOwogICAgIH0KLSAgICByZXR1cm4g
c2luOworICB9CisgIC8vIGNvbHVtbiAmIGxpbmUgc3RhcnQgYXQgMQorICBjb2x1bW4gPSBpbnQo
bG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7CisgICsrbGluZTsKK30KKworU3RyaW5nIE91
clJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25z
dCB7CisgIGludCBsaW5lLCBjb2x1bW47CisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihsb2Nh
dGlvbiwgbGluZSwgY29sdW1uKTsKKyAgY2hhciBidWZmZXJbMTggKyAxNiArIDE2ICsgMV07Cisg
IGpzb25jcHBfc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIkxpbmUgJWQsIENvbHVt
biAlZCIsIGxpbmUsIGNvbHVtbik7CisgIHJldHVybiBidWZmZXI7Cit9CisKK1N0cmluZyBPdXJS
ZWFkZXI6OmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIFN0cmluZyBmb3Jt
YXR0ZWRNZXNzYWdlOworICBmb3IgKGNvbnN0IGF1dG8mIGVycm9yIDogZXJyb3JzXykgeworICAg
IGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgIiogIiArIGdldExvY2F0aW9uTGluZUFuZENv
bHVtbihlcnJvci50b2tlbl8uc3RhcnRfKSArICJcbiI7CisgICAgZm9ybWF0dGVkTWVzc2FnZSAr
PSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAiXG4iOworICAgIGlmIChlcnJvci5leHRyYV8pCisg
ICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9CisgICAgICAgICAgIlNlZSAiICsgZ2V0TG9jYXRpb25M
aW5lQW5kQ29sdW1uKGVycm9yLmV4dHJhXykgKyAiIGZvciBkZXRhaWwuXG4iOworICB9CisgIHJl
dHVybiBmb3JtYXR0ZWRNZXNzYWdlOworfQorCitzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVj
dHVyZWRFcnJvcj4gT3VyUmVhZGVyOjpnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3QgeworICBz
dGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gYWxsRXJyb3JzOworICBmb3Ig
KGNvbnN0IGF1dG8mIGVycm9yIDogZXJyb3JzXykgeworICAgIE91clJlYWRlcjo6U3RydWN0dXJl
ZEVycm9yIHN0cnVjdHVyZWQ7CisgICAgc3RydWN0dXJlZC5vZmZzZXRfc3RhcnQgPSBlcnJvci50
b2tlbl8uc3RhcnRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVyZWQub2Zmc2V0X2xpbWl0ID0gZXJy
b3IudG9rZW5fLmVuZF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJlZC5tZXNzYWdlID0gZXJyb3Iu
bWVzc2FnZV87CisgICAgYWxsRXJyb3JzLnB1c2hfYmFjayhzdHJ1Y3R1cmVkKTsKKyAgfQorICBy
ZXR1cm4gYWxsRXJyb3JzOworfQorCitib29sIE91clJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZh
bHVlJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7CisgIHB0cmRpZmZfdCBsZW5ndGgg
PSBlbmRfIC0gYmVnaW5fOworICBpZiAodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxlbmd0aCB8
fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAg
VG9rZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRf
ID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGJlZ2lu
XyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRv
a2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8g
PSBudWxscHRyOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgT3VyUmVhZGVyOjpwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFZhbHVlJiBleHRyYSkgeworICBwdHJkaWZmX3QgbGVuZ3RoID0g
ZW5kXyAtIGJlZ2luXzsKKyAgaWYgKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGggfHwg
dmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCB8fAorICAgICAgZXh0cmEuZ2V0T2Zmc2V0
TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0
b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVl
LmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZz
ZXRMaW1pdCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAg
aW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gYmVnaW5fICsgZXh0cmEu
Z2V0T2Zmc2V0U3RhcnQoKTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0
cnVlOworfQorCitib29sIE91clJlYWRlcjo6Z29vZCgpIGNvbnN0IHsgcmV0dXJuIGVycm9yc18u
ZW1wdHkoKTsgfQorCitjbGFzcyBPdXJDaGFyUmVhZGVyIDogcHVibGljIENoYXJSZWFkZXIgewor
ICBib29sIGNvbnN0IGNvbGxlY3RDb21tZW50c187CisgIE91clJlYWRlciByZWFkZXJfOworCitw
dWJsaWM6CisgIE91ckNoYXJSZWFkZXIoYm9vbCBjb2xsZWN0Q29tbWVudHMsIE91ckZlYXR1cmVz
IGNvbnN0JiBmZWF0dXJlcykKKyAgICAgIDogY29sbGVjdENvbW1lbnRzXyhjb2xsZWN0Q29tbWVu
dHMpLCByZWFkZXJfKGZlYXR1cmVzKSB7fQorICBib29sIHBhcnNlKGNoYXIgY29uc3QqIGJlZ2lu
RG9jLAorICAgICAgICAgICAgIGNoYXIgY29uc3QqIGVuZERvYywKKyAgICAgICAgICAgICBWYWx1
ZSogcm9vdCwKKyAgICAgICAgICAgICBTdHJpbmcqIGVycnMpIG92ZXJyaWRlIHsKKyAgICBib29s
IG9rID0gcmVhZGVyXy5wYXJzZShiZWdpbkRvYywgZW5kRG9jLCAqcm9vdCwgY29sbGVjdENvbW1l
bnRzXyk7CisgICAgaWYgKGVycnMpIHsKKyAgICAgICplcnJzID0gcmVhZGVyXy5nZXRGb3JtYXR0
ZWRFcnJvck1lc3NhZ2VzKCk7CisgICAgfQorICAgIHJldHVybiBvazsKKyAgfQorfTsKKworQ2hh
clJlYWRlckJ1aWxkZXI6OkNoYXJSZWFkZXJCdWlsZGVyKCkgeyBzZXREZWZhdWx0cygmc2V0dGlu
Z3NfKTsgfQorQ2hhclJlYWRlckJ1aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcigpID0gZGVmYXVs
dDsKK0NoYXJSZWFkZXIqIENoYXJSZWFkZXJCdWlsZGVyOjpuZXdDaGFyUmVhZGVyKCkgY29uc3Qg
eworICBib29sIGNvbGxlY3RDb21tZW50cyA9IHNldHRpbmdzX1siY29sbGVjdENvbW1lbnRzIl0u
YXNCb29sKCk7CisgIE91ckZlYXR1cmVzIGZlYXR1cmVzID0gT3VyRmVhdHVyZXM6OmFsbCgpOwor
ICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IHNldHRpbmdzX1siYWxsb3dDb21tZW50cyJdLmFz
Qm9vbCgpOworICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHNldHRpbmdzX1sic3RyaWN0Um9vdCJd
LmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9Cisg
ICAgICBzZXR0aW5nc19bImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jvb2woKTsK
KyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBzZXR0aW5nc19bImFsbG93TnVtZXJpY0tl
eXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTaW5nbGVRdW90ZXNfID0gc2V0dGluZ3Nf
WyJhbGxvd1NpbmdsZVF1b3RlcyJdLmFzQm9vbCgpOworCisgIC8vIFN0YWNrIGxpbWl0IGlzIGFs
d2F5cyBhIHNpemVfdCwgc28gd2UgZ2V0IHRoaXMgYXMgYW4gdW5zaWduZWQgaW50CisgIC8vIHJl
Z2FyZGxlc3Mgb2YgaXQgd2UgaGF2ZSA2NC1iaXQgaW50ZWdlciBzdXBwb3J0IGVuYWJsZWQuCisg
IGZlYXR1cmVzLnN0YWNrTGltaXRfID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzZXR0aW5nc19bInN0
YWNrTGltaXQiXS5hc1VJbnQoKSk7CisgIGZlYXR1cmVzLmZhaWxJZkV4dHJhXyA9IHNldHRpbmdz
X1siZmFpbElmRXh0cmEiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMucmVqZWN0RHVwS2V5c18gPSBz
ZXR0aW5nc19bInJlamVjdER1cEtleXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTcGVj
aWFsRmxvYXRzXyA9IHNldHRpbmdzX1siYWxsb3dTcGVjaWFsRmxvYXRzIl0uYXNCb29sKCk7Cisg
IHJldHVybiBuZXcgT3VyQ2hhclJlYWRlcihjb2xsZWN0Q29tbWVudHMsIGZlYXR1cmVzKTsKK30K
K3N0YXRpYyB2b2lkIGdldFZhbGlkUmVhZGVyS2V5cyhzdGQ6OnNldDxTdHJpbmc+KiB2YWxpZF9r
ZXlzKSB7CisgIHZhbGlkX2tleXMtPmNsZWFyKCk7CisgIHZhbGlkX2tleXMtPmluc2VydCgiY29s
bGVjdENvbW1lbnRzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dDb21tZW50cyIpOwor
ICB2YWxpZF9rZXlzLT5pbnNlcnQoInN0cmljdFJvb3QiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0
KCJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgi
YWxsb3dOdW1lcmljS2V5cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93U2luZ2xlUXVv
dGVzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgic3RhY2tMaW1pdCIpOworICB2YWxpZF9rZXlz
LT5pbnNlcnQoImZhaWxJZkV4dHJhIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgicmVqZWN0RHVw
S2V5cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93U3BlY2lhbEZsb2F0cyIpOworfQor
Ym9vbCBDaGFyUmVhZGVyQnVpbGRlcjo6dmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNv
bnN0IHsKKyAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKKyAgaWYgKCFpbnZhbGlkKQorICAgIGlu
dmFsaWQgPSAmbXlfaW52YWxpZDsgLy8gc28gd2UgZG8gbm90IG5lZWQgdG8gdGVzdCBmb3IgTlVM
TAorICBKc29uOjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7CisgIHN0ZDo6c2V0PFN0cmluZz4gdmFs
aWRfa2V5czsKKyAgZ2V0VmFsaWRSZWFkZXJLZXlzKCZ2YWxpZF9rZXlzKTsKKyAgVmFsdWU6Ok1l
bWJlcnMga2V5cyA9IHNldHRpbmdzXy5nZXRNZW1iZXJOYW1lcygpOworICBzaXplX3QgbiA9IGtl
eXMuc2l6ZSgpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkgeworICAgIFN0cmlu
ZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKKyAgICBpZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0g
dmFsaWRfa2V5cy5lbmQoKSkgeworICAgICAgaW52W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKKyAg
ICB9CisgIH0KKyAgcmV0dXJuIGludi5lbXB0eSgpOworfQorVmFsdWUmIENoYXJSZWFkZXJCdWls
ZGVyOjpvcGVyYXRvcltdKGNvbnN0IFN0cmluZyYga2V5KSB7CisgIHJldHVybiBzZXR0aW5nc19b
a2V5XTsKK30KKy8vIHN0YXRpYwordm9pZCBDaGFyUmVhZGVyQnVpbGRlcjo6c3RyaWN0TW9kZShK
c29uOjpWYWx1ZSogc2V0dGluZ3MpIHsKKyAgLy8hIFtDaGFyUmVhZGVyQnVpbGRlclN0cmljdE1v
ZGVdCisgICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5n
cylbInN0cmljdFJvb3QiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJhbGxvd0Ryb3BwZWROdWxs
UGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93TnVtZXJpY0tleXMi
XSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dTaW5nbGVRdW90ZXMiXSA9IGZhbHNlOwor
ICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAwMDsKKyAgKCpzZXR0aW5ncylbImZhaWxJ
ZkV4dHJhIl0gPSB0cnVlOworICAoKnNldHRpbmdzKVsicmVqZWN0RHVwS2V5cyJdID0gdHJ1ZTsK
KyAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7CisgIC8vISBbQ2hh
clJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlXQorfQorLy8gc3RhdGljCit2b2lkIENoYXJSZWFkZXJC
dWlsZGVyOjpzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGluZ3MpIHsKKyAgLy8hIFtDaGFy
UmVhZGVyQnVpbGRlckRlZmF1bHRzXQorICAoKnNldHRpbmdzKVsiY29sbGVjdENvbW1lbnRzIl0g
PSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dDb21tZW50cyJdID0gdHJ1ZTsKKyAgKCpzZXR0
aW5ncylbInN0cmljdFJvb3QiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dEcm9wcGVk
TnVsbFBsYWNlaG9sZGVycyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd051bWVyaWNL
ZXlzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U2luZ2xlUXVvdGVzIl0gPSBmYWxz
ZTsKKyAgKCpzZXR0aW5ncylbInN0YWNrTGltaXQiXSA9IDEwMDA7CisgICgqc2V0dGluZ3MpWyJm
YWlsSWZFeHRyYSJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJyZWplY3REdXBLZXlzIl0gPSBm
YWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7CisgIC8v
ISBbQ2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0c10KK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworLy8gZ2xvYmFsIGZ1bmN0aW9ucworCitib29sIHBhcnNlRnJvbVN0cmVh
bShDaGFyUmVhZGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0LAorICAgICAgICAgICAgICAgICAgICAg
SVN0cmVhbSYgc2luLAorICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHJvb3QsCisgICAgICAg
ICAgICAgICAgICAgICBTdHJpbmcqIGVycnMpIHsKKyAgT1N0cmluZ1N0cmVhbSBzc2luOworICBz
c2luIDw8IHNpbi5yZGJ1ZigpOworICBTdHJpbmcgZG9jID0gc3Npbi5zdHIoKTsKKyAgY2hhciBj
b25zdCogYmVnaW4gPSBkb2MuZGF0YSgpOworICBjaGFyIGNvbnN0KiBlbmQgPSBiZWdpbiArIGRv
Yy5zaXplKCk7CisgIC8vIE5vdGUgdGhhdCB3ZSBkbyBub3QgYWN0dWFsbHkgbmVlZCBhIG51bGwt
dGVybWluYXRvci4KKyAgQ2hhclJlYWRlclB0ciBjb25zdCByZWFkZXIoZmFjdC5uZXdDaGFyUmVh
ZGVyKCkpOworICByZXR1cm4gcmVhZGVyLT5wYXJzZShiZWdpbiwgZW5kLCByb290LCBlcnJzKTsK
K30KKworSVN0cmVhbSYgb3BlcmF0b3I+PihJU3RyZWFtJiBzaW4sIFZhbHVlJiByb290KSB7Cisg
IENoYXJSZWFkZXJCdWlsZGVyIGI7CisgIFN0cmluZyBlcnJzOworICBib29sIG9rID0gcGFyc2VG
cm9tU3RyZWFtKGIsIHNpbiwgJnJvb3QsICZlcnJzKTsKKyAgaWYgKCFvaykgeworICAgIHRocm93
UnVudGltZUVycm9yKGVycnMpOworICB9CisgIHJldHVybiBzaW47Cit9CiAKIH0gLy8gbmFtZXNw
YWNlIEpzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fdG9vbC5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9zcmMvbGliX2pzb24vanNvbl90b29sLmgKaW5kZXggNjU4MDMxYmJiYTM5NjA3NTk4MWE4ODgx
Yzk0ZDFhMjUyOGMyN2M1YS4uNWMxM2YxZmVkMjA3ZDU4NmI5M2VjZWNkYWM4ZDQ1ZTczNTcyODlk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl90b29sLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9z
cmMvbGliX2pzb24vanNvbl90b29sLmgKQEAgLTEsMTAgKzEsMjMgQEAKLS8vIENvcHlyaWdodCAy
MDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRp
c3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycwogLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKIC8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCiAvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQogCiAj
aWZuZGVmIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECi0jIGRlZmluZSBMSUJfSlNP
TkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorI2RlZmluZSBMSUJfSlNPTkNQUF9KU09OX1RPT0xf
SF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVk
ZSA8anNvbi9jb25maWcuaD4KKyNlbmRpZgorCisvLyBBbHNvIHN1cHBvcnQgb2xkIGZsYWcgTk9f
TE9DQUxFX1NVUFBPUlQKKyNpZmRlZiBOT19MT0NBTEVfU1VQUE9SVAorI2RlZmluZSBKU09OQ1BQ
X05PX0xPQ0FMRV9TVVBQT1JUCisjZW5kaWYKKworI2lmbmRlZiBKU09OQ1BQX05PX0xPQ0FMRV9T
VVBQT1JUCisjaW5jbHVkZSA8Y2xvY2FsZT4KKyNlbmRpZgogCiAvKiBUaGlzIGhlYWRlciBwcm92
aWRlcyBjb21tb24gc3RyaW5nIG1hbmlwdWxhdGlvbiBzdXBwb3J0LCBzdWNoIGFzIFVURi04LAog
ICogcG9ydGFibGUgY29udmVyc2lvbiBmcm9tL3RvIHN0cmluZy4uLgpAQCAtMTMsODEgKzI2LDEw
OSBAQAogICovCiAKIG5hbWVzcGFjZSBKc29uIHsKK3N0YXRpYyBpbmxpbmUgY2hhciBnZXREZWNp
bWFsUG9pbnQoKSB7CisjaWZkZWYgSlNPTkNQUF9OT19MT0NBTEVfU1VQUE9SVAorICByZXR1cm4g
J1wwJzsKKyNlbHNlCisgIHN0cnVjdCBsY29udiogbGMgPSBsb2NhbGVjb252KCk7CisgIHJldHVy
biBsYyA/ICoobGMtPmRlY2ltYWxfcG9pbnQpIDogJ1wwJzsKKyNlbmRpZgorfQogCiAvLy8gQ29u
dmVydHMgYSB1bmljb2RlIGNvZGUtcG9pbnQgdG8gVVRGLTguCi1zdGF0aWMgaW5saW5lIHN0ZDo6
c3RyaW5nIAotY29kZVBvaW50VG9VVEY4KHVuc2lnbmVkIGludCBjcCkKLXsKLSAgIHN0ZDo6c3Ry
aW5nIHJlc3VsdDsKLSAgIAotICAgLy8gYmFzZWQgb24gZGVzY3JpcHRpb24gZnJvbSBodHRwOi8v
ZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04Ci0KLSAgIGlmIChjcCA8PSAweDdmKSAKLSAgIHsK
LSAgICAgIHJlc3VsdC5yZXNpemUoMSk7Ci0gICAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxj
aGFyPihjcCk7Ci0gICB9IAotICAgZWxzZSBpZiAoY3AgPD0gMHg3RkYpIAotICAgewotICAgICAg
cmVzdWx0LnJlc2l6ZSgyKTsKLSAgICAgIHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4
ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPigw
eEMwIHwgKDB4MWYgJiAoY3AgPj4gNikpKTsKLSAgIH0gCi0gICBlbHNlIGlmIChjcCA8PSAweEZG
RkYpIAotICAgewotICAgICAgcmVzdWx0LnJlc2l6ZSgzKTsKLSAgICAgIHJlc3VsdFsyXSA9IHN0
YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7Ci0gICAgICByZXN1bHRbMV0gPSAw
eDgwIHwgc3RhdGljX2Nhc3Q8Y2hhcj4oKDB4M2YgJiAoY3AgPj4gNikpKTsKLSAgICAgIHJlc3Vs
dFswXSA9IDB4RTAgfCBzdGF0aWNfY2FzdDxjaGFyPigoMHhmICYgKGNwID4+IDEyKSkpOwotICAg
fQotICAgZWxzZSBpZiAoY3AgPD0gMHgxMEZGRkYpIAotICAgewotICAgICAgcmVzdWx0LnJlc2l6
ZSg0KTsKLSAgICAgIHJlc3VsdFszXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAm
IGNwKSk7Ci0gICAgICByZXN1bHRbMl0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2Yg
JiAoY3AgPj4gNikpKTsKLSAgICAgIHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAg
fCAoMHgzZiAmIChjcCA+PiAxMikpKTsKLSAgICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNo
YXI+KDB4RjAgfCAoMHg3ICYgKGNwID4+IDE4KSkpOwotICAgfQotCi0gICByZXR1cm4gcmVzdWx0
OwotfQorc3RhdGljIGlubGluZSBTdHJpbmcgY29kZVBvaW50VG9VVEY4KHVuc2lnbmVkIGludCBj
cCkgeworICBTdHJpbmcgcmVzdWx0OwogCisgIC8vIGJhc2VkIG9uIGRlc2NyaXB0aW9uIGZyb20g
aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOAogCi0vLy8gUmV0dXJucyB0cnVlIGlm
IGNoIGlzIGEgY29udHJvbCBjaGFyYWN0ZXIgKGluIHJhbmdlIFswLDMyWykuCi1zdGF0aWMgaW5s
aW5lIGJvb2wgCi1pc0NvbnRyb2xDaGFyYWN0ZXIoY2hhciBjaCkKLXsKLSAgIHJldHVybiBjaCA+
IDAgJiYgY2ggPD0gMHgxRjsKLX0KKyAgaWYgKGNwIDw9IDB4N2YpIHsKKyAgICByZXN1bHQucmVz
aXplKDEpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KGNwKTsKKyAgfSBlbHNl
IGlmIChjcCA8PSAweDdGRikgeworICAgIHJlc3VsdC5yZXNpemUoMik7CisgICAgcmVzdWx0WzFd
ID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKKyAgICByZXN1bHRbMF0g
PSBzdGF0aWNfY2FzdDxjaGFyPigweEMwIHwgKDB4MWYgJiAoY3AgPj4gNikpKTsKKyAgfSBlbHNl
IGlmIChjcCA8PSAweEZGRkYpIHsKKyAgICByZXN1bHQucmVzaXplKDMpOworICAgIHJlc3VsdFsy
XSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7CisgICAgcmVzdWx0WzFd
ID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7CisgICAgcmVz
dWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhFMCB8ICgweGYgJiAoY3AgPj4gMTIpKSk7Cisg
IH0gZWxzZSBpZiAoY3AgPD0gMHgxMEZGRkYpIHsKKyAgICByZXN1bHQucmVzaXplKDQpOworICAg
IHJlc3VsdFszXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7CisgICAg
cmVzdWx0WzJdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7
CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+
IDEyKSkpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RjAgfCAoMHg3ICYg
KGNwID4+IDE4KSkpOworICB9CiAKKyAgcmV0dXJuIHJlc3VsdDsKK30KIAotZW51bSB7IAotICAg
Ly8vIENvbnN0YW50IHRoYXQgc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHRoYXQgbXVz
dCBiZSBwYXNzZWQgdG8gdWludFRvU3RyaW5nLgotICAgdWludFRvU3RyaW5nQnVmZmVyU2l6ZSA9
IDMqc2l6ZW9mKExhcmdlc3RVSW50KSsxIAorZW51bSB7CisgIC8vLyBDb25zdGFudCB0aGF0IHNw
ZWNpZnkgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0IG11c3QgYmUgcGFzc2VkIHRvCisgIC8v
LyB1aW50VG9TdHJpbmcuCisgIHVpbnRUb1N0cmluZ0J1ZmZlclNpemUgPSAzICogc2l6ZW9mKExh
cmdlc3RVSW50KSArIDEKIH07CiAKIC8vIERlZmluZXMgYSBjaGFyIGJ1ZmZlciBmb3IgdXNlIHdp
dGggdWludFRvU3RyaW5nKCkuCiB0eXBlZGVmIGNoYXIgVUludFRvU3RyaW5nQnVmZmVyW3VpbnRU
b1N0cmluZ0J1ZmZlclNpemVdOwogCi0KIC8qKiBDb252ZXJ0cyBhbiB1bnNpZ25lZCBpbnRlZ2Vy
IHRvIHN0cmluZy4KLSAqIEBwYXJhbSB2YWx1ZSBVbnNpZ25lZCBpbnRlcmdlciB0byBjb252ZXJ0
IHRvIHN0cmluZwotICogQHBhcmFtIGN1cnJlbnQgSW5wdXQvT3V0cHV0IHN0cmluZyBidWZmZXIu
IAorICogQHBhcmFtIHZhbHVlIFVuc2lnbmVkIGludGVnZXIgdG8gY29udmVydCB0byBzdHJpbmcK
KyAqIEBwYXJhbSBjdXJyZW50IElucHV0L091dHB1dCBzdHJpbmcgYnVmZmVyLgogICogICAgICAg
IE11c3QgaGF2ZSBhdCBsZWFzdCB1aW50VG9TdHJpbmdCdWZmZXJTaXplIGNoYXJzIGZyZWUuCiAg
Ki8KLXN0YXRpYyBpbmxpbmUgdm9pZCAKLXVpbnRUb1N0cmluZyggTGFyZ2VzdFVJbnQgdmFsdWUs
IAotICAgICAgICAgICAgICBjaGFyIComY3VycmVudCApCi17Ci0gICAqLS1jdXJyZW50ID0gMDsK
LSAgIGRvCi0gICB7Ci0gICAgICAqLS1jdXJyZW50ID0gY2hhcih2YWx1ZSAlIDEwKSArICcwJzsK
LSAgICAgIHZhbHVlIC89IDEwOwotICAgfQotICAgd2hpbGUgKCB2YWx1ZSAhPSAwICk7CitzdGF0
aWMgaW5saW5lIHZvaWQgdWludFRvU3RyaW5nKExhcmdlc3RVSW50IHZhbHVlLCBjaGFyKiYgY3Vy
cmVudCkgeworICAqLS1jdXJyZW50ID0gMDsKKyAgZG8geworICAgICotLWN1cnJlbnQgPSBzdGF0
aWNfY2FzdDxjaGFyPih2YWx1ZSAlIDEwVSArIHN0YXRpY19jYXN0PHVuc2lnbmVkPignMCcpKTsK
KyAgICB2YWx1ZSAvPSAxMDsKKyAgfSB3aGlsZSAodmFsdWUgIT0gMCk7Cit9CisKKy8qKiBDaGFu
Z2UgJywnIHRvICcuJyBldmVyeXdoZXJlIGluIGJ1ZmZlci4KKyAqCisgKiBXZSBoYWQgYSBzb3Bo
aXN0aWNhdGVkIHdheSwgYnV0IGl0IGRpZCBub3Qgd29yayBpbiBXaW5DRS4KKyAqIEBzZWUgaHR0
cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcC9wdWxsLzkKKyAqLwor
dGVtcGxhdGUgPHR5cGVuYW1lIEl0ZXI+IEl0ZXIgZml4TnVtZXJpY0xvY2FsZShJdGVyIGJlZ2lu
LCBJdGVyIGVuZCkgeworICBmb3IgKDsgYmVnaW4gIT0gZW5kOyArK2JlZ2luKSB7CisgICAgaWYg
KCpiZWdpbiA9PSAnLCcpIHsKKyAgICAgICpiZWdpbiA9ICcuJzsKKyAgICB9CisgIH0KKyAgcmV0
dXJuIGJlZ2luOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgSXRlcj4gdm9pZCBmaXhOdW1lcmlj
TG9jYWxlSW5wdXQoSXRlciBiZWdpbiwgSXRlciBlbmQpIHsKKyAgY2hhciBkZWNpbWFsUG9pbnQg
PSBnZXREZWNpbWFsUG9pbnQoKTsKKyAgaWYgKGRlY2ltYWxQb2ludCA9PSAnXDAnIHx8IGRlY2lt
YWxQb2ludCA9PSAnLicpIHsKKyAgICByZXR1cm47CisgIH0KKyAgZm9yICg7IGJlZ2luICE9IGVu
ZDsgKytiZWdpbikgeworICAgIGlmICgqYmVnaW4gPT0gJy4nKSB7CisgICAgICAqYmVnaW4gPSBk
ZWNpbWFsUG9pbnQ7CisgICAgfQorICB9Cit9CisKKy8qKgorICogUmV0dXJuIGl0ZXJhdG9yIHRo
YXQgd291bGQgYmUgdGhlIG5ldyBlbmQgb2YgdGhlIHJhbmdlIFtiZWdpbixlbmQpLCBpZiB3ZQor
ICogd2VyZSB0byBkZWxldGUgemVyb3MgaW4gdGhlIGVuZCBvZiBzdHJpbmcsIGJ1dCBub3QgdGhl
IGxhc3QgemVybyBiZWZvcmUgJy4nLgorICovCit0ZW1wbGF0ZSA8dHlwZW5hbWUgSXRlcj4gSXRl
ciBmaXhaZXJvc0luVGhlRW5kKEl0ZXIgYmVnaW4sIEl0ZXIgZW5kKSB7CisgIGZvciAoOyBiZWdp
biAhPSBlbmQ7IC0tZW5kKSB7CisgICAgaWYgKCooZW5kIC0gMSkgIT0gJzAnKSB7CisgICAgICBy
ZXR1cm4gZW5kOworICAgIH0KKyAgICAvLyBEb24ndCBkZWxldGUgdGhlIGxhc3QgemVybyBiZWZv
cmUgdGhlIGRlY2ltYWwgcG9pbnQuCisgICAgaWYgKGJlZ2luICE9IChlbmQgLSAxKSAmJiAqKGVu
ZCAtIDIpID09ICcuJykgeworICAgICAgcmV0dXJuIGVuZDsKKyAgICB9CisgIH0KKyAgcmV0dXJu
IGVuZDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSnNvbiB7Cit9IC8vIG5hbWVzcGFjZSBKc29uCiAK
ICNlbmRpZiAvLyBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS9zcmMvbGliX2pzb24vanNvbl92YWx1ZS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29u
X3ZhbHVlLmNwcAppbmRleCA5MWYzMTJlMWQ4NDFmZWUxZGMzYWZkNDFiZjRjMDFjMWM5NzhlZWRh
Li5kODEzYzE2YTBlOGQ4YmJmN2UzYTRhZjEzYWVlMDYxY2I2NzQ5NThlIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9q
c29uX3ZhbHVlLmNwcApAQCAtMSw3NiArMSwxMzUgQEAKLS8vIENvcHlyaWdodCAyMDExIEJhcHRp
c3RlIExlcGlsbGV1cgorLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBU
aGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3Ig
cHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlz
ZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6
Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKICNpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKLSMgaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+Ci0jIGluY2x1ZGUg
PGpzb24vdmFsdWUuaD4KLSMgaW5jbHVkZSA8anNvbi93cml0ZXIuaD4KLSMgaWZuZGVmIEpTT05f
VVNFX1NJTVBMRV9JTlRFUk5BTF9BTExPQ0FUT1IKLSMgIGluY2x1ZGUgImpzb25fYmF0Y2hhbGxv
Y2F0b3IuaCIKLSMgZW5kaWYgLy8gI2lmbmRlZiBKU09OX1VTRV9TSU1QTEVfSU5URVJOQUxfQUxM
T0NBVE9SCisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8anNvbi92YWx1
ZS5oPgorI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CiAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNP
Tl9JU19BTUFMR0FNQVRJT04pCi0jaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPGNhc3NlcnQ+
CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8Y3N0cmluZz4KICNpbmNsdWRlIDxzc3RyZWFt
PgogI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8c3RkZXhjZXB0PgotI2luY2x1ZGUgPGNz
dHJpbmc+Ci0jaW5jbHVkZSA8Y2Fzc2VydD4KICNpZmRlZiBKU09OX1VTRV9DUFBUTAotIyBpbmNs
dWRlIDxjcHB0bC9jb25zdHN0cmluZy5oPgorI2luY2x1ZGUgPGNwcHRsL2NvbnN0c3RyaW5nLmg+
CisjZW5kaWYKKyNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIG1pbigpCisjaW5jbHVkZSA8Y3N0ZGRl
Zj4gICAvLyBzaXplX3QKKworLy8gUHJvdmlkZSBpbXBsZW1lbnRhdGlvbiBlcXVpdmFsZW50IG9m
IHN0ZDo6c25wcmludGYgZm9yIG9sZGVyIF9NU0MgY29tcGlsZXJzCisjaWYgZGVmaW5lZChfTVND
X1ZFUikgJiYgX01TQ19WRVIgPCAxOTAwCisjaW5jbHVkZSA8c3RkYXJnLmg+CitzdGF0aWMgaW50
IG1zdmNfcHJlMTkwMF9jOTlfdnNucHJpbnRmKGNoYXIqIG91dEJ1ZiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1hdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcCkgeworICBpbnQgY291bnQgPSAtMTsKKyAg
aWYgKHNpemUgIT0gMCkKKyAgICBjb3VudCA9IF92c25wcmludGZfcyhvdXRCdWYsIHNpemUsIF9U
UlVOQ0FURSwgZm9ybWF0LCBhcCk7CisgIGlmIChjb3VudCA9PSAtMSkKKyAgICBjb3VudCA9IF92
c2NwcmludGYoZm9ybWF0LCBhcCk7CisgIHJldHVybiBjb3VudDsKK30KKworaW50IEpTT05fQVBJ
IG1zdmNfcHJlMTkwMF9jOTlfc25wcmludGYoY2hhciogb3V0QnVmLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmb3JtYXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAuLi4pIHsKKyAgdmFfbGlzdCBhcDsKKyAgdmFfc3RhcnQo
YXAsIGZvcm1hdCk7CisgIGNvbnN0IGludCBjb3VudCA9IG1zdmNfcHJlMTkwMF9jOTlfdnNucHJp
bnRmKG91dEJ1Ziwgc2l6ZSwgZm9ybWF0LCBhcCk7CisgIHZhX2VuZChhcCk7CisgIHJldHVybiBj
b3VudDsKK30KKyNlbmRpZgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQ3MDIgOiB1bnJlYWNoYWJs
ZSBjb2RlCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDog
NDcwMikKICNlbmRpZgotI2luY2x1ZGUgPGNzdGRkZWY+ICAgIC8vIHNpemVfdAogCi0jZGVmaW5l
IEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFIGFzc2VydCggZmFsc2UgKQorI2RlZmluZSBKU09OX0FT
U0VSVF9VTlJFQUNIQUJMRSBhc3NlcnQoZmFsc2UpCiAKIG5hbWVzcGFjZSBKc29uIHsKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxUPiBjbG9uZVVuaXF1ZShj
b25zdCBzdGQ6OnVuaXF1ZV9wdHI8VD4mIHApIHsKKyAgc3RkOjp1bmlxdWVfcHRyPFQ+IHI7Cisg
IGlmIChwKSB7CisgICAgciA9IHN0ZDo6dW5pcXVlX3B0cjxUPihuZXcgVCgqcCkpOworICB9Cisg
IHJldHVybiByOworfQorCisvLyBUaGlzIGlzIGEgd2Fsa2Fyb3VuZCB0byBhdm9pZCB0aGUgc3Rh
dGljIGluaXRpYWxpemF0aW9uIG9mIFZhbHVlOjpudWxsLgorLy8ga051bGwgbXVzdCBiZSB3b3Jk
LWFsaWduZWQgdG8gYXZvaWQgY3Jhc2hpbmcgb24gQVJNLiAgV2UgdXNlIGFuIGFsaWdubWVudCBv
ZgorLy8gOCAoaW5zdGVhZCBvZiA0KSBhcyBhIGJpdCBvZiBmdXR1cmUtcHJvb2ZpbmcuCisjaWYg
ZGVmaW5lZChfX0FSTUVMX18pCisjZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpIF9fYXR0
cmlidXRlX18oKGFsaWduZWQoYnl0ZV9hbGlnbm1lbnQpKSkKKyNlbHNlCisjZGVmaW5lIEFMSUdO
QVMoYnl0ZV9hbGlnbm1lbnQpCisjZW5kaWYKKworLy8gc3RhdGljCitWYWx1ZSBjb25zdCYgVmFs
dWU6Om51bGxTaW5nbGV0b24oKSB7CisgIHN0YXRpYyBWYWx1ZSBjb25zdCBudWxsU3RhdGljOwor
ICByZXR1cm4gbnVsbFN0YXRpYzsKK30KKworI2lmIEpTT05fVVNFX05VTExSRUYKKy8vIGZvciBi
YWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2UnbGwgbGVhdmUgdGhlc2UgZ2xvYmFsIHJlZmVyZW5j
ZXMgYXJvdW5kLCBidXQKKy8vIERPIE5PVCB1c2UgdGhlbSBpbiBKU09OQ1BQIGxpYnJhcnkgY29k
ZSBhbnkgbW9yZSEKKy8vIHN0YXRpYworVmFsdWUgY29uc3QmIFZhbHVlOjpudWxsID0gVmFsdWU6
Om51bGxTaW5nbGV0b24oKTsKIAotY29uc3QgVmFsdWUgVmFsdWU6Om51bGw7Ci1jb25zdCBJbnQg
VmFsdWU6Om1pbkludCA9IEludCggfihVSW50KC0xKS8yKSApOwotY29uc3QgSW50IFZhbHVlOjpt
YXhJbnQgPSBJbnQoIFVJbnQoLTEpLzIgKTsKKy8vIHN0YXRpYworVmFsdWUgY29uc3QmIFZhbHVl
OjpudWxsUmVmID0gVmFsdWU6Om51bGxTaW5nbGV0b24oKTsKKyNlbmRpZgorCitjb25zdCBJbnQg
VmFsdWU6Om1pbkludCA9IEludCh+KFVJbnQoLTEpIC8gMikpOworY29uc3QgSW50IFZhbHVlOjpt
YXhJbnQgPSBJbnQoVUludCgtMSkgLyAyKTsKIGNvbnN0IFVJbnQgVmFsdWU6Om1heFVJbnQgPSBV
SW50KC0xKTsKLSMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLWNvbnN0IEludDY0IFZhbHVl
OjptaW5JbnQ2NCA9IEludDY0KCB+KFVJbnQ2NCgtMSkvMikgKTsKLWNvbnN0IEludDY0IFZhbHVl
OjptYXhJbnQ2NCA9IEludDY0KCBVSW50NjQoLTEpLzIgKTsKKyNpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQorY29uc3QgSW50NjQgVmFsdWU6Om1pbkludDY0ID0gSW50NjQofihVSW50NjQoLTEp
IC8gMikpOworY29uc3QgSW50NjQgVmFsdWU6Om1heEludDY0ID0gSW50NjQoVUludDY0KC0xKSAv
IDIpOwogY29uc3QgVUludDY0IFZhbHVlOjptYXhVSW50NjQgPSBVSW50NjQoLTEpOwogLy8gVGhl
IGNvbnN0YW50IGlzIGhhcmQtY29kZWQgYmVjYXVzZSBzb21lIGNvbXBpbGVyIGhhdmUgdHJvdWJs
ZQogLy8gY29udmVydGluZyBWYWx1ZTo6bWF4VUludDY0IHRvIGEgZG91YmxlIGNvcnJlY3RseSAo
QUlYL3hsQykuCiAvLyBBc3N1bWVzIHRoYXQgVUludDY0IGlzIGEgNjQgYml0cyBpbnRlZ2VyLgog
c3RhdGljIGNvbnN0IGRvdWJsZSBtYXhVSW50NjRBc0RvdWJsZSA9IDE4NDQ2NzQ0MDczNzA5NTUx
NjE1LjA7CiAjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLWNvbnN0IExhcmdlc3RJ
bnQgVmFsdWU6Om1pbkxhcmdlc3RJbnQgPSBMYXJnZXN0SW50KCB+KExhcmdlc3RVSW50KC0xKS8y
KSApOwotY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWF4TGFyZ2VzdEludCA9IExhcmdlc3RJbnQo
IExhcmdlc3RVSW50KC0xKS8yICk7Citjb25zdCBMYXJnZXN0SW50IFZhbHVlOjptaW5MYXJnZXN0
SW50ID0gTGFyZ2VzdEludCh+KExhcmdlc3RVSW50KC0xKSAvIDIpKTsKK2NvbnN0IExhcmdlc3RJ
bnQgVmFsdWU6Om1heExhcmdlc3RJbnQgPSBMYXJnZXN0SW50KExhcmdlc3RVSW50KC0xKSAvIDIp
OwogY29uc3QgTGFyZ2VzdFVJbnQgVmFsdWU6Om1heExhcmdlc3RVSW50ID0gTGFyZ2VzdFVJbnQo
LTEpOwogCi0KLS8vLyBVbmtub3duIHNpemUgbWFya2VyCi1zdGF0aWMgY29uc3QgdW5zaWduZWQg
aW50IHVua25vd24gPSAodW5zaWduZWQpLTE7Citjb25zdCBVSW50IFZhbHVlOjpkZWZhdWx0UmVh
bFByZWNpc2lvbiA9IDE3OwogCiAjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NP
TlZFUlNJT04pCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KIHN0YXRpYyBpbmxp
bmUgYm9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBtYXgpIHsKLSAgIHJldHVybiBkID49
IG1pbiAmJiBkIDw9IG1heDsKKyAgLy8gVGhlIGNhc3RzIGNhbiBsb3NlIHByZWNpc2lvbiwgYnV0
IHdlIGFyZSBsb29raW5nIG9ubHkgZm9yCisgIC8vIGFuIGFwcHJveGltYXRlIHJhbmdlLiBNaWdo
dCBmYWlsIG9uIGVkZ2UgY2FzZXMgdGhvdWdoLiB+Y2R1bm4KKyAgLy8gcmV0dXJuIGQgPj0gc3Rh
dGljX2Nhc3Q8ZG91YmxlPihtaW4pICYmIGQgPD0gc3RhdGljX2Nhc3Q8ZG91YmxlPihtYXgpOwor
ICByZXR1cm4gZCA+PSBtaW4gJiYgZCA8PSBtYXg7CiB9Ci0jZWxzZSAvLyBpZiAhZGVmaW5lZChK
U09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLXN0YXRpYyBpbmxpbmUgZG91YmxlIGlu
dGVnZXJUb0RvdWJsZSggSnNvbjo6VUludDY0IHZhbHVlICkKLXsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8ZG91YmxlPiggSW50NjQodmFsdWUvMikgKSAqIDIuMCArIEludDY0KHZhbHVlICYgMSk7
CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04p
CitzdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3VibGUoSnNvbjo6VUludDY0IHZhbHVl
KSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KEludDY0KHZhbHVlIC8gMikpICogMi4w
ICsKKyAgICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4oSW50NjQodmFsdWUgJiAxKSk7CiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3Vi
bGUoIFQgdmFsdWUgKQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KCB2YWx1ZSAp
OwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0Rv
dWJsZShUIHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKIH0K
IAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CiBzdGF0aWMgaW5saW5lIGJvb2wg
SW5SYW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Ci0gICByZXR1cm4gZCA+PSBpbnRlZ2Vy
VG9Eb3VibGUobWluKSAmJiBkIDw9IGludGVnZXJUb0RvdWJsZShtYXgpOworICByZXR1cm4gZCA+
PSBpbnRlZ2VyVG9Eb3VibGUobWluKSAmJiBkIDw9IGludGVnZXJUb0RvdWJsZShtYXgpOwogfQog
I2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQog
Ci0KIC8qKiBEdXBsaWNhdGVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHZhbHVlLgogICogQHBhcmFt
IHZhbHVlIFBvaW50ZXIgdG8gdGhlIHN0cmluZyB0byBkdXBsaWNhdGUuIE11c3QgYmUgemVyby10
ZXJtaW5hdGVkIGlmCiAgKiAgICAgICAgICAgICAgbGVuZ3RoIGlzICJ1bmtub3duIi4KQEAgLTc4
LDM4ICsxMzcsODEgQEAgc3RhdGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWlu
LCBVIG1heCkgewogICogICAgICAgICAgICAgICBjb21wdXRlZCB1c2luZyBzdHJsZW4odmFsdWUp
LgogICogQHJldHVybiBQb2ludGVyIG9uIHRoZSBkdXBsaWNhdGUgaW5zdGFuY2Ugb2Ygc3RyaW5n
LgogICovCi1zdGF0aWMgaW5saW5lIGNoYXIgKgotZHVwbGljYXRlU3RyaW5nVmFsdWUoIGNvbnN0
IGNoYXIgKnZhbHVlLCAKLSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGVuZ3Ro
ID0gdW5rbm93biApCi17Ci0gICBpZiAoIGxlbmd0aCA9PSB1bmtub3duICkKLSAgICAgIGxlbmd0
aCA9ICh1bnNpZ25lZCBpbnQpc3RybGVuKHZhbHVlKTsKLQotICAgLy8gQXZvaWQgYW4gaW50ZWdl
ciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3Ro
Ci0gICAvLyB0byBhIHNhbmUgdmFsdWUuCi0gICBpZiAobGVuZ3RoID49ICh1bnNpZ25lZClWYWx1
ZTo6bWF4SW50KQotICAgICAgbGVuZ3RoID0gVmFsdWU6Om1heEludCAtIDE7Ci0KLSAgIGNoYXIg
Km5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIgKj4oIG1hbGxvYyggbGVuZ3RoICsgMSApICk7
Ci0gICBKU09OX0FTU0VSVF9NRVNTQUdFKCBuZXdTdHJpbmcgIT0gMCwgIkZhaWxlZCB0byBhbGxv
Y2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIiApOwotICAgbWVtY3B5KCBuZXdTdHJpbmcsIHZhbHVl
LCBsZW5ndGggKTsKLSAgIG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKLSAgIHJldHVybiBuZXdTdHJp
bmc7Ci19Ci0KLQotLyoqIEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5IGR1cGxpY2F0ZVN0
cmluZ1ZhbHVlKCkuCitzdGF0aWMgaW5saW5lIGNoYXIqIGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKGNv
bnN0IGNoYXIqIHZhbHVlLCBzaXplX3QgbGVuZ3RoKSB7CisgIC8vIEF2b2lkIGFuIGludGVnZXIg
b3ZlcmZsb3cgaW4gdGhlIGNhbGwgdG8gbWFsbG9jIGJlbG93IGJ5IGxpbWl0aW5nIGxlbmd0aAor
ICAvLyB0byBhIHNhbmUgdmFsdWUuCisgIGlmIChsZW5ndGggPj0gc3RhdGljX2Nhc3Q8c2l6ZV90
PihWYWx1ZTo6bWF4SW50KSkKKyAgICBsZW5ndGggPSBWYWx1ZTo6bWF4SW50IC0gMTsKKworICBj
aGFyKiBuZXdTdHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKGxlbmd0aCArIDEpKTsK
KyAgaWYgKG5ld1N0cmluZyA9PSBudWxscHRyKSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoImlu
IEpzb246OlZhbHVlOjpkdXBsaWNhdGVTdHJpbmdWYWx1ZSgpOiAiCisgICAgICAgICAgICAgICAg
ICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7CisgIH0KKyAg
bWVtY3B5KG5ld1N0cmluZywgdmFsdWUsIGxlbmd0aCk7CisgIG5ld1N0cmluZ1tsZW5ndGhdID0g
MDsKKyAgcmV0dXJuIG5ld1N0cmluZzsKK30KKworLyogUmVjb3JkIHRoZSBsZW5ndGggYXMgYSBw
cmVmaXguCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAKLXJlbGVhc2VTdHJpbmdWYWx1ZSggY2hh
ciAqdmFsdWUgKQotewotICAgaWYgKCB2YWx1ZSApCi0gICAgICBmcmVlKCB2YWx1ZSApOwotfQor
c3RhdGljIGlubGluZSBjaGFyKiBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZShjb25zdCBj
aGFyKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50IGxlbmd0aCkgeworICAvLyBBdm9pZCBhbiBpbnRlZ2VyIG92ZXJm
bG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBsaW1pdGluZyBsZW5ndGgKKyAgLy8g
dG8gYSBzYW5lIHZhbHVlLgorICBKU09OX0FTU0VSVF9NRVNTQUdFKGxlbmd0aCA8PSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oVmFsdWU6Om1heEludCkgLQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZW9mKHVuc2lnbmVkKSAtIDFVLAorICAgICAgICAgICAgICAgICAgICAg
ICJpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTogIgorICAg
ICAgICAgICAgICAgICAgICAgICJsZW5ndGggdG9vIGJpZyBmb3IgcHJlZml4aW5nIik7CisgIHVu
c2lnbmVkIGFjdHVhbExlbmd0aCA9IGxlbmd0aCArIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaXpl
b2YodW5zaWduZWQpKSArIDFVOworICBjaGFyKiBuZXdTdHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4obWFsbG9jKGFjdHVhbExlbmd0aCkpOworICBpZiAobmV3U3RyaW5nID09IG51bGxwdHIpIHsK
KyAgICB0aHJvd1J1bnRpbWVFcnJvcigiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKCk6ICIKKyAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGFsbG9j
YXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiKTsKKyAgfQorICAqcmVpbnRlcnByZXRfY2FzdDx1bnNp
Z25lZCo+KG5ld1N0cmluZykgPSBsZW5ndGg7CisgIG1lbWNweShuZXdTdHJpbmcgKyBzaXplb2Yo
dW5zaWduZWQpLCB2YWx1ZSwgbGVuZ3RoKTsKKyAgbmV3U3RyaW5nW2FjdHVhbExlbmd0aCAtIDFV
XSA9CisgICAgICAwOyAvLyB0byBhdm9pZCBidWZmZXIgb3Zlci1ydW4gYWNjaWRlbnRzIGJ5IHVz
ZXJzIGxhdGVyCisgIHJldHVybiBuZXdTdHJpbmc7Cit9CitpbmxpbmUgc3RhdGljIHZvaWQgZGVj
b2RlUHJlZml4ZWRTdHJpbmcoYm9vbCBpc1ByZWZpeGVkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgY29uc3QqIHByZWZpeGVkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBsZW5ndGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjb25zdCoqIHZhbHVlKSB7CisgIGlmICgh
aXNQcmVmaXhlZCkgeworICAgICpsZW5ndGggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVu
KHByZWZpeGVkKSk7CisgICAgKnZhbHVlID0gcHJlZml4ZWQ7CisgIH0gZWxzZSB7CisgICAgKmxl
bmd0aCA9ICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNvbnN0Kj4ocHJlZml4ZWQpOworICAg
ICp2YWx1ZSA9IHByZWZpeGVkICsgc2l6ZW9mKHVuc2lnbmVkKTsKKyAgfQorfQorLyoqIEZyZWUg
dGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5CisgKiBkdXBsaWNhdGVTdHJpbmdWYWx1ZSgpL2R1cGxp
Y2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCkuCisgKi8KKyNpZiBKU09OQ1BQX1VTSU5HX1NFQ1VS
RV9NRU1PUlkKK3N0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNlUHJlZml4ZWRTdHJpbmdWYWx1ZShj
aGFyKiB2YWx1ZSkgeworICB1bnNpZ25lZCBsZW5ndGggPSAwOworICBjaGFyIGNvbnN0KiB2YWx1
ZURlY29kZWQ7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRydWUsIHZhbHVlLCAmbGVuZ3RoLCAm
dmFsdWVEZWNvZGVkKTsKKyAgc2l6ZV90IGNvbnN0IHNpemUgPSBzaXplb2YodW5zaWduZWQpICsg
bGVuZ3RoICsgMVU7CisgIG1lbXNldCh2YWx1ZSwgMCwgc2l6ZSk7CisgIGZyZWUodmFsdWUpOwor
fQorc3RhdGljIGlubGluZSB2b2lkIHJlbGVhc2VTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSwgdW5z
aWduZWQgbGVuZ3RoKSB7CisgIC8vIGxlbmd0aD09MCA9PiB3ZSBhbGxvY2F0ZWQgdGhlIHN0cmlu
Z3MgbWVtb3J5CisgIHNpemVfdCBzaXplID0gKGxlbmd0aCA9PSAwKSA/IHN0cmxlbih2YWx1ZSkg
OiBsZW5ndGg7CisgIG1lbXNldCh2YWx1ZSwgMCwgc2l6ZSk7CisgIGZyZWUodmFsdWUpOworfQor
I2Vsc2UgIC8vICFKU09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1PUlkKK3N0YXRpYyBpbmxpbmUgdm9p
ZCByZWxlYXNlUHJlZml4ZWRTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSkgeyBmcmVlKHZhbHVlKTsg
fQorc3RhdGljIGlubGluZSB2b2lkIHJlbGVhc2VTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSwgdW5z
aWduZWQpIHsgZnJlZSh2YWx1ZSk7IH0KKyNlbmRpZiAvLyBKU09OQ1BQX1VTSU5HX1NFQ1VSRV9N
RU1PUlkKIAogfSAvLyBuYW1lc3BhY2UgSnNvbgogCi0KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KQEAgLTExOCw0OCArMjIwLDI4IEBAIHJlbGVhc2VTdHJpbmdWYWx1
ZSggY2hhciAqdmFsdWUgKQogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICNpZiAhZGVmaW5l
ZChKU09OX0lTX0FNQUxHQU1BVElPTikKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0jICBpbmNsdWRlICJqc29uX2ludGVybmFsYXJyYXkuaW5sIgotIyAgaW5jbHVkZSAianNv
bl9pbnRlcm5hbG1hcC5pbmwiCi0jIGVuZGlmIC8vIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01B
UAogCi0jIGluY2x1ZGUgImpzb25fdmFsdWVpdGVyYXRvci5pbmwiCisjaW5jbHVkZSAianNvbl92
YWx1ZWl0ZXJhdG9yLmlubCIKICNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1B
VElPTikKIAogbmFtZXNwYWNlIEpzb24gewogCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi0vLyBjbGFzcyBWYWx1ZTo6Q29tbWVudEluZm8KLS8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotCi1WYWx1ZTo6Q29tbWVudEluZm86OkNvbW1l
bnRJbmZvKCkKLSAgIDogY29tbWVudF8oIDAgKQotewotfQotCi1WYWx1ZTo6Q29tbWVudEluZm86
On5Db21tZW50SW5mbygpCi17Ci0gICBpZiAoIGNvbW1lbnRfICkKLSAgICAgIHJlbGVhc2VTdHJp
bmdWYWx1ZSggY29tbWVudF8gKTsKLX0KLQotCi12b2lkIAotVmFsdWU6OkNvbW1lbnRJbmZvOjpz
ZXRDb21tZW50KCBjb25zdCBjaGFyICp0ZXh0ICkKLXsKLSAgIGlmICggY29tbWVudF8gKQotICAg
ICAgcmVsZWFzZVN0cmluZ1ZhbHVlKCBjb21tZW50XyApOwotICAgSlNPTl9BU1NFUlQoIHRleHQg
IT0gMCApOwotICAgSlNPTl9BU1NFUlRfTUVTU0FHRSggdGV4dFswXT09J1wwJyB8fCB0ZXh0WzBd
PT0nLycsICJDb21tZW50cyBtdXN0IHN0YXJ0IHdpdGggLyIpOwotICAgLy8gSXQgc2VlbXMgdGhh
dCAvKiovIHN0eWxlIGNvbW1lbnRzIGFyZSBhY2NlcHRhYmxlIGFzIHdlbGwuCi0gICBjb21tZW50
XyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCB0ZXh0ICk7Ci19Ci0KKyNpZiBKU09OX1VTRV9FWENF
UFRJT04KK0V4Y2VwdGlvbjo6RXhjZXB0aW9uKFN0cmluZyBtc2cpIDogbXNnXyhzdGQ6Om1vdmUo
bXNnKSkge30KK0V4Y2VwdGlvbjo6fkV4Y2VwdGlvbigpIEpTT05DUFBfTk9FWENFUFQge30KK2No
YXIgY29uc3QqIEV4Y2VwdGlvbjo6d2hhdCgpIGNvbnN0IEpTT05DUFBfTk9FWENFUFQgeyByZXR1
cm4gbXNnXy5jX3N0cigpOyB9CitSdW50aW1lRXJyb3I6OlJ1bnRpbWVFcnJvcihTdHJpbmcgY29u
c3QmIG1zZykgOiBFeGNlcHRpb24obXNnKSB7fQorTG9naWNFcnJvcjo6TG9naWNFcnJvcihTdHJp
bmcgY29uc3QmIG1zZykgOiBFeGNlcHRpb24obXNnKSB7fQorW1tub3JldHVybl1dIHZvaWQgdGhy
b3dSdW50aW1lRXJyb3IoU3RyaW5nIGNvbnN0JiBtc2cpIHsKKyAgdGhyb3cgUnVudGltZUVycm9y
KG1zZyk7Cit9CitbW25vcmV0dXJuXV0gdm9pZCB0aHJvd0xvZ2ljRXJyb3IoU3RyaW5nIGNvbnN0
JiBtc2cpIHsKKyAgdGhyb3cgTG9naWNFcnJvcihtc2cpOworfQorI2Vsc2UgLy8gIUpTT05fVVNF
X0VYQ0VQVElPTgorW1tub3JldHVybl1dIHZvaWQgdGhyb3dSdW50aW1lRXJyb3IoU3RyaW5nIGNv
bnN0JiBtc2cpIHsgYWJvcnQoKTsgfQorW1tub3JldHVybl1dIHZvaWQgdGhyb3dMb2dpY0Vycm9y
KFN0cmluZyBjb25zdCYgbXNnKSB7IGFib3J0KCk7IH0KKyNlbmRpZgogCiAvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
IC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwpAQCAtMTY4LDkzICsyNTAsMTEwIEBAIFZhbHVlOjpDb21tZW50SW5mbzo6
c2V0Q29tbWVudCggY29uc3QgY2hhciAqdGV4dCApCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi0jIGlmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKIAot
Ly8gTm90ZXM6IGluZGV4XyBpbmRpY2F0ZXMgaWYgdGhlIHN0cmluZyB3YXMgYWxsb2NhdGVkIHdo
ZW4KKy8vIE5vdGVzOiBwb2xpY3lfIGluZGljYXRlcyBpZiB0aGUgc3RyaW5nIHdhcyBhbGxvY2F0
ZWQgd2hlbgogLy8gYSBzdHJpbmcgaXMgc3RvcmVkLgogCi1WYWx1ZTo6Q1pTdHJpbmc6OkNaU3Ry
aW5nKCBBcnJheUluZGV4IGluZGV4ICkKLSAgIDogY3N0cl8oIDAgKQotICAgLCBpbmRleF8oIGlu
ZGV4ICkKLXsKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoQXJyYXlJbmRleCBpbmRleCkgOiBj
c3RyXyhudWxscHRyKSwgaW5kZXhfKGluZGV4KSB7fQorCitWYWx1ZTo6Q1pTdHJpbmc6OkNaU3Ry
aW5nKGNoYXIgY29uc3QqIHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBEdXBsaWNhdGlvblBvbGljeSBhbGxv
Y2F0ZSkKKyAgICA6IGNzdHJfKHN0cikgeworICAvLyBhbGxvY2F0ZSAhPSBkdXBsaWNhdGUKKyAg
c3RvcmFnZV8ucG9saWN5XyA9IGFsbG9jYXRlICYgMHgzOworICBzdG9yYWdlXy5sZW5ndGhfID0g
bGVuZ3RoICYgMHgzRkZGRkZGRjsKK30KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhjb25z
dCBDWlN0cmluZyYgb3RoZXIpIHsKKyAgY3N0cl8gPSAob3RoZXIuc3RvcmFnZV8ucG9saWN5XyAh
PSBub0R1cGxpY2F0aW9uICYmIG90aGVyLmNzdHJfICE9IG51bGxwdHIKKyAgICAgICAgICAgICAg
ID8gZHVwbGljYXRlU3RyaW5nVmFsdWUob3RoZXIuY3N0cl8sIG90aGVyLnN0b3JhZ2VfLmxlbmd0
aF8pCisgICAgICAgICAgICAgICA6IG90aGVyLmNzdHJfKTsKKyAgc3RvcmFnZV8ucG9saWN5XyA9
CisgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oCisgICAgICAgICAgb3RoZXIuY3N0cl8KKyAg
ICAgICAgICAgICAgPyAoc3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xpY3k+KG90aGVyLnN0b3Jh
Z2VfLnBvbGljeV8pID09CisgICAgICAgICAgICAgICAgICAgICAgICAgbm9EdXBsaWNhdGlvbgor
ICAgICAgICAgICAgICAgICAgICAgPyBub0R1cGxpY2F0aW9uCisgICAgICAgICAgICAgICAgICAg
ICA6IGR1cGxpY2F0ZSkKKyAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxEdXBsaWNhdGlvblBv
bGljeT4ob3RoZXIuc3RvcmFnZV8ucG9saWN5XykpICYKKyAgICAgIDNVOworICBzdG9yYWdlXy5s
ZW5ndGhfID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKK30KKworVmFsdWU6OkNaU3RyaW5nOjpD
WlN0cmluZyhDWlN0cmluZyYmIG90aGVyKQorICAgIDogY3N0cl8ob3RoZXIuY3N0cl8pLCBpbmRl
eF8ob3RoZXIuaW5kZXhfKSB7CisgIG90aGVyLmNzdHJfID0gbnVsbHB0cjsKK30KKworVmFsdWU6
OkNaU3RyaW5nOjp+Q1pTdHJpbmcoKSB7CisgIGlmIChjc3RyXyAmJiBzdG9yYWdlXy5wb2xpY3lf
ID09IGR1cGxpY2F0ZSkgeworICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb25zdF9jYXN0PGNoYXIq
Pihjc3RyXyksCisgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VfLmxlbmd0aF8gKyAxdSk7
IC8vICsxIGZvciBudWxsIHRlcm1pbmF0aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBmb3Igc2FrZSBvZgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wbGV0ZW5lc3MgYnV0IG5v
dCBhY3R1YWxseQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBuZWNlc3NhcnkKKyAgfQorfQorCit2b2lkIFZhbHVlOjpDWlN0cmluZzo6c3dhcChDWlN0
cmluZyYgb3RoZXIpIHsKKyAgc3RkOjpzd2FwKGNzdHJfLCBvdGhlci5jc3RyXyk7CisgIHN0ZDo6
c3dhcChpbmRleF8sIG90aGVyLmluZGV4Xyk7Cit9CisKK1ZhbHVlOjpDWlN0cmluZyYgVmFsdWU6
OkNaU3RyaW5nOjpvcGVyYXRvcj0oY29uc3QgQ1pTdHJpbmcmIG90aGVyKSB7CisgIGNzdHJfID0g
b3RoZXIuY3N0cl87CisgIGluZGV4XyA9IG90aGVyLmluZGV4XzsKKyAgcmV0dXJuICp0aGlzOwor
fQorCitWYWx1ZTo6Q1pTdHJpbmcmIFZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9KENaU3RyaW5n
JiYgb3RoZXIpIHsKKyAgY3N0cl8gPSBvdGhlci5jc3RyXzsKKyAgaW5kZXhfID0gb3RoZXIuaW5k
ZXhfOworICBvdGhlci5jc3RyXyA9IG51bGxwdHI7CisgIHJldHVybiAqdGhpczsKK30KKworYm9v
bCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPChjb25zdCBDWlN0cmluZyYgb3RoZXIpIGNvbnN0
IHsKKyAgaWYgKCFjc3RyXykKKyAgICByZXR1cm4gaW5kZXhfIDwgb3RoZXIuaW5kZXhfOworICAv
LyByZXR1cm4gc3RyY21wKGNzdHJfLCBvdGhlci5jc3RyXykgPCAwOworICAvLyBBc3N1bWUgYm90
aCBhcmUgc3RyaW5ncy4KKyAgdW5zaWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5sZW5n
dGhfOworICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOworICB1
bnNpZ25lZCBtaW5fbGVuID0gc3RkOjptaW48dW5zaWduZWQ+KHRoaXNfbGVuLCBvdGhlcl9sZW4p
OworICBKU09OX0FTU0VSVCh0aGlzLT5jc3RyXyAmJiBvdGhlci5jc3RyXyk7CisgIGludCBjb21w
ID0gbWVtY21wKHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywgbWluX2xlbik7CisgIGlmIChjb21w
IDwgMCkKKyAgICByZXR1cm4gdHJ1ZTsKKyAgaWYgKGNvbXAgPiAwKQorICAgIHJldHVybiBmYWxz
ZTsKKyAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7Cit9CisKK2Jvb2wgVmFsdWU6OkNa
U3RyaW5nOjpvcGVyYXRvcj09KGNvbnN0IENaU3RyaW5nJiBvdGhlcikgY29uc3QgeworICBpZiAo
IWNzdHJfKQorICAgIHJldHVybiBpbmRleF8gPT0gb3RoZXIuaW5kZXhfOworICAvLyByZXR1cm4g
c3RyY21wKGNzdHJfLCBvdGhlci5jc3RyXykgPT0gMDsKKyAgLy8gQXNzdW1lIGJvdGggYXJlIHN0
cmluZ3MuCisgIHVuc2lnbmVkIHRoaXNfbGVuID0gdGhpcy0+c3RvcmFnZV8ubGVuZ3RoXzsKKyAg
dW5zaWduZWQgb3RoZXJfbGVuID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKKyAgaWYgKHRoaXNf
bGVuICE9IG90aGVyX2xlbikKKyAgICByZXR1cm4gZmFsc2U7CisgIEpTT05fQVNTRVJUKHRoaXMt
PmNzdHJfICYmIG90aGVyLmNzdHJfKTsKKyAgaW50IGNvbXAgPSBtZW1jbXAodGhpcy0+Y3N0cl8s
IG90aGVyLmNzdHJfLCB0aGlzX2xlbik7CisgIHJldHVybiBjb21wID09IDA7Cit9CisKK0FycmF5
SW5kZXggVmFsdWU6OkNaU3RyaW5nOjppbmRleCgpIGNvbnN0IHsgcmV0dXJuIGluZGV4XzsgfQor
CisvLyBjb25zdCBjaGFyKiBWYWx1ZTo6Q1pTdHJpbmc6OmNfc3RyKCkgY29uc3QgeyByZXR1cm4g
Y3N0cl87IH0KK2NvbnN0IGNoYXIqIFZhbHVlOjpDWlN0cmluZzo6ZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIGNzdHJfOyB9Cit1bnNpZ25lZCBWYWx1ZTo6Q1pTdHJpbmc6Omxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIHN0b3JhZ2VfLmxlbmd0aF87IH0KK2Jvb2wgVmFsdWU6OkNaU3RyaW5nOjppc1N0YXRp
Y1N0cmluZygpIGNvbnN0IHsKKyAgcmV0dXJuIHN0b3JhZ2VfLnBvbGljeV8gPT0gbm9EdXBsaWNh
dGlvbjsKIH0KIAotVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyggY29uc3QgY2hhciAqY3N0ciwg
RHVwbGljYXRpb25Qb2xpY3kgYWxsb2NhdGUgKQotICAgOiBjc3RyXyggYWxsb2NhdGUgPT0gZHVw
bGljYXRlID8gZHVwbGljYXRlU3RyaW5nVmFsdWUoY3N0cikgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOiBjc3RyICkKLSAgICwgaW5kZXhfKCBhbGxvY2F0ZSApCi17Ci19Ci0K
LVZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoIGNvbnN0IENaU3RyaW5nICZvdGhlciApCi06IGNz
dHJfKCBvdGhlci5pbmRleF8gIT0gbm9EdXBsaWNhdGlvbiAmJiAgb3RoZXIuY3N0cl8gIT0gMAot
ICAgICAgICAgICAgICAgID8gIGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCBvdGhlci5jc3RyXyApCi0g
ICAgICAgICAgICAgICAgOiBvdGhlci5jc3RyXyApCi0gICAsIGluZGV4Xyggb3RoZXIuY3N0cl8g
PyAob3RoZXIuaW5kZXhfID09IG5vRHVwbGljYXRpb24gPyBub0R1cGxpY2F0aW9uIDogZHVwbGlj
YXRlKQotICAgICAgICAgICAgICAgICAgICAgICAgIDogb3RoZXIuaW5kZXhfICkKLXsKLX0KLQot
VmFsdWU6OkNaU3RyaW5nOjp+Q1pTdHJpbmcoKQotewotICAgaWYgKCBjc3RyXyAgJiYgIGluZGV4
XyA9PSBkdXBsaWNhdGUgKQotICAgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKCBjb25zdF9jYXN0PGNo
YXIgKj4oIGNzdHJfICkgKTsKLX0KLQotdm9pZCAKLVZhbHVlOjpDWlN0cmluZzo6c3dhcCggQ1pT
dHJpbmcgJm90aGVyICkKLXsKLSAgIHN0ZDo6c3dhcCggY3N0cl8sIG90aGVyLmNzdHJfICk7Ci0g
ICBzdGQ6OnN3YXAoIGluZGV4Xywgb3RoZXIuaW5kZXhfICk7Ci19Ci0KLVZhbHVlOjpDWlN0cmlu
ZyAmCi1WYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yID0oIGNvbnN0IENaU3RyaW5nICZvdGhlciAp
Ci17Ci0gICBDWlN0cmluZyB0ZW1wKCBvdGhlciApOwotICAgc3dhcCggdGVtcCApOwotICAgcmV0
dXJuICp0aGlzOwotfQotCi1ib29sIAotVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwoIGNvbnN0
IENaU3RyaW5nICZvdGhlciApIGNvbnN0IAotewotICAgaWYgKCBjc3RyXyApCi0gICAgICByZXR1
cm4gc3RyY21wKCBjc3RyXywgb3RoZXIuY3N0cl8gKSA8IDA7Ci0gICByZXR1cm4gaW5kZXhfIDwg
b3RoZXIuaW5kZXhfOwotfQotCi1ib29sIAotVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09KCBj
b25zdCBDWlN0cmluZyAmb3RoZXIgKSBjb25zdCAKLXsKLSAgIGlmICggY3N0cl8gKQotICAgICAg
cmV0dXJuIHN0cmNtcCggY3N0cl8sIG90aGVyLmNzdHJfICkgPT0gMDsKLSAgIHJldHVybiBpbmRl
eF8gPT0gb3RoZXIuaW5kZXhfOwotfQotCi0KLUFycmF5SW5kZXggCi1WYWx1ZTo6Q1pTdHJpbmc6
OmluZGV4KCkgY29uc3QKLXsKLSAgIHJldHVybiBpbmRleF87Ci19Ci0KLQotY29uc3QgY2hhciAq
Ci1WYWx1ZTo6Q1pTdHJpbmc6OmNfc3RyKCkgY29uc3QKLXsKLSAgIHJldHVybiBjc3RyXzsKLX0K
LQotYm9vbCAKLVZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJpbmcoKSBjb25zdAotewotICAg
cmV0dXJuIGluZGV4XyA9PSBub0R1cGxpY2F0aW9uOwotfQotCi0jZW5kaWYgLy8gaWZuZGVmIEpT
T05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotCi0KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KQEAgLTI2NywxMDg1ICszNjYsOTM1IEBAIFZhbHVlOjpDWlN0cmluZzo6
aXNTdGF0aWNTdHJpbmcoKSBjb25zdAogICogbWVtc2V0KCB0aGlzLCAwLCBzaXplb2YoVmFsdWUp
ICkKICAqIFRoaXMgb3B0aW1pemF0aW9uIGlzIHVzZWQgaW4gVmFsdWVJbnRlcm5hbE1hcCBmYXN0
IGFsbG9jYXRvci4KICAqLwotVmFsdWU6OlZhbHVlKCBWYWx1ZVR5cGUgdHlwZSApCi0gICA6IHR5
cGVfKCB0eXBlICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVF
X1VTRV9JTlRFUk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNv
bW1lbnRzXyggMCApCi17Ci0gICBzd2l0Y2ggKCB0eXBlICkKLSAgIHsKLSAgIGNhc2UgbnVsbFZh
bHVlOgotICAgICAgYnJlYWs7Ci0gICBjYXNlIGludFZhbHVlOgotICAgY2FzZSB1aW50VmFsdWU6
Ci0gICAgICB2YWx1ZV8uaW50XyA9IDA7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgcmVhbFZhbHVl
OgotICAgICAgdmFsdWVfLnJlYWxfID0gMC4wOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHN0cmlu
Z1ZhbHVlOgotICAgICAgdmFsdWVfLnN0cmluZ18gPSAwOwotICAgICAgYnJlYWs7Ci0jaWZuZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2Fz
ZSBvYmplY3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygpOwot
ICAgICAgYnJlYWs7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgdmFsdWVfLmFy
cmF5XyA9IGFycmF5QWxsb2NhdG9yKCktPm5ld0FycmF5KCk7Ci0gICAgICBicmVhazsKLSAgIGNh
c2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXyA9IG1hcEFsbG9jYXRvcigpLT5uZXdN
YXAoKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAg
IHZhbHVlXy5ib29sXyA9IGZhbHNlOwotICAgICAgYnJlYWs7Ci0gICBkZWZhdWx0OgotICAgICAg
SlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICB9CitWYWx1ZTo6VmFsdWUoVmFsdWVUeXBlIHR5
cGUpIHsKKyAgc3RhdGljIGNoYXIgY29uc3QgZW1wdHlTdHJpbmdbXSA9ICIiOworICBpbml0QmFz
aWModHlwZSk7CisgIHN3aXRjaCAodHlwZSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBicmVh
azsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgdmFsdWVfLmludF8g
PSAwOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICB2YWx1ZV8ucmVhbF8gPSAw
LjA7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgLy8gYWxsb2NhdGVkXyA9
PSBmYWxzZSwgc28gdGhpcyBpcyBzYWZlLgorICAgIHZhbHVlXy5zdHJpbmdfID0gY29uc3RfY2Fz
dDxjaGFyKj4oc3RhdGljX2Nhc3Q8Y2hhciBjb25zdCo+KGVtcHR5U3RyaW5nKSk7CisgICAgYnJl
YWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8u
bWFwXyA9IG5ldyBPYmplY3RWYWx1ZXMoKTsKKyAgICBicmVhazsKKyAgY2FzZSBib29sZWFuVmFs
dWU6CisgICAgdmFsdWVfLmJvb2xfID0gZmFsc2U7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6Cisg
ICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIH0KK30KKworVmFsdWU6OlZhbHVlKEludCB2
YWx1ZSkgeworICBpbml0QmFzaWMoaW50VmFsdWUpOworICB2YWx1ZV8uaW50XyA9IHZhbHVlOwor
fQorCitWYWx1ZTo6VmFsdWUoVUludCB2YWx1ZSkgeworICBpbml0QmFzaWModWludFZhbHVlKTsK
KyAgdmFsdWVfLnVpbnRfID0gdmFsdWU7CiB9Ci0KLQotVmFsdWU6OlZhbHVlKCBVSW50IHZhbHVl
ICkKLSAgIDogdHlwZV8oIHVpbnRWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMg
aWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkK
LSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnVpbnRfID0gdmFsdWU7
CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK1ZhbHVlOjpWYWx1ZShJbnQ2NCB2YWx1ZSkg
eworICBpbml0QmFzaWMoaW50VmFsdWUpOworICB2YWx1ZV8uaW50XyA9IHZhbHVlOwogfQotCi1W
YWx1ZTo6VmFsdWUoIEludCB2YWx1ZSApCi0gICA6IHR5cGVfKCBpbnRWYWx1ZSApCi0gICAsIGFs
bG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0g
ICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAg
dmFsdWVfLmludF8gPSB2YWx1ZTsKK1ZhbHVlOjpWYWx1ZShVSW50NjQgdmFsdWUpIHsKKyAgaW5p
dEJhc2ljKHVpbnRWYWx1ZSk7CisgIHZhbHVlXy51aW50XyA9IHZhbHVlOwogfQorI2VuZGlmIC8v
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCiAKLQotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0
KQotVmFsdWU6OlZhbHVlKCBJbnQ2NCB2YWx1ZSApCi0gICA6IHR5cGVfKCBpbnRWYWx1ZSApCi0g
ICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQot
ewotICAgdmFsdWVfLmludF8gPSB2YWx1ZTsKK1ZhbHVlOjpWYWx1ZShkb3VibGUgdmFsdWUpIHsK
KyAgaW5pdEJhc2ljKHJlYWxWYWx1ZSk7CisgIHZhbHVlXy5yZWFsXyA9IHZhbHVlOwogfQogCi0K
LVZhbHVlOjpWYWx1ZSggVUludDY0IHZhbHVlICkKLSAgIDogdHlwZV8oIHVpbnRWYWx1ZSApCi0g
ICAsIGFsbG9jYXRlZF8oIGZhbHNlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQot
ewotICAgdmFsdWVfLnVpbnRfID0gdmFsdWU7CitWYWx1ZTo6VmFsdWUoY29uc3QgY2hhciogdmFs
dWUpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgSlNPTl9BU1NFUlRfTUVT
U0FHRSh2YWx1ZSAhPSBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICJOdWxsIFZhbHVl
IFBhc3NlZCB0byBWYWx1ZSBDb25zdHJ1Y3RvciIpOworICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxp
Y2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKAorICAgICAgdmFsdWUsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihzdHJsZW4odmFsdWUpKSk7CiB9Ci0jZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2
NCkKIAotVmFsdWU6OlZhbHVlKCBkb3VibGUgdmFsdWUgKQotICAgOiB0eXBlXyggcmVhbFZhbHVl
ICkKLSAgICwgYWxsb2NhdGVkXyggZmFsc2UgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRF
Uk5BTF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXygg
MCApCi17Ci0gICB2YWx1ZV8ucmVhbF8gPSB2YWx1ZTsKK1ZhbHVlOjpWYWx1ZShjb25zdCBjaGFy
KiBiZWdpbiwgY29uc3QgY2hhciogZW5kKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1
ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0KKyAgICAgIGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1Zh
bHVlKGJlZ2luLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kIC0gYmVnaW4pKTsKIH0KIAotVmFs
dWU6OlZhbHVlKCBjb25zdCBjaGFyICp2YWx1ZSApCi0gICA6IHR5cGVfKCBzdHJpbmdWYWx1ZSAp
Ci0gICAsIGFsbG9jYXRlZF8oIHRydWUgKQotIyBpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5B
TF9NQVAKLSAgICwgaXRlbUlzVXNlZF8oIDAgKQotI2VuZGlmCi0gICAsIGNvbW1lbnRzXyggMCAp
Ci17Ci0gICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCB2YWx1ZSApOwor
VmFsdWU6OlZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1Zh
bHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdW
YWx1ZSgKKyAgICAgIHZhbHVlLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlLmxl
bmd0aCgpKSk7CiB9CiAKLQotVmFsdWU6OlZhbHVlKCBjb25zdCBjaGFyICpiZWdpblZhbHVlLCAK
LSAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5kVmFsdWUgKQotICAgOiB0eXBlXyggc3RyaW5n
VmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCB0cnVlICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0Vf
SU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAwICkKLSNlbmRpZgotICAgLCBjb21tZW50
c18oIDAgKQotewotICAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSggYmVn
aW5WYWx1ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5z
aWduZWQgaW50KShlbmRWYWx1ZSAtIGJlZ2luVmFsdWUpICk7CitWYWx1ZTo6VmFsdWUoY29uc3Qg
U3RhdGljU3RyaW5nJiB2YWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUpOworICB2YWx1
ZV8uc3RyaW5nXyA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHZhbHVlLmNfc3RyKCkpOwogfQogCi0KLVZh
bHVlOjpWYWx1ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICkKLSAgIDogdHlwZV8oIHN0cmlu
Z1ZhbHVlICkKLSAgICwgYWxsb2NhdGVkXyggdHJ1ZSApCi0jIGlmZGVmIEpTT05fVkFMVUVfVVNF
X0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0jZW5kaWYKLSAgICwgY29tbWVu
dHNfKCAwICkKLXsKLSAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUoIHZh
bHVlLmNfc3RyKCksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHVuc2lnbmVkIGludCl2YWx1ZS5sZW5ndGgoKSApOwotCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwK
K1ZhbHVlOjpWYWx1ZShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIHZhbHVlKSB7CisgIGluaXRC
YXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5k
UHJlZml4U3RyaW5nVmFsdWUoCisgICAgICB2YWx1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZh
bHVlLmxlbmd0aCgpKSk7CiB9Ci0KLVZhbHVlOjpWYWx1ZSggY29uc3QgU3RhdGljU3RyaW5nICZ2
YWx1ZSApCi0gICA6IHR5cGVfKCBzdHJpbmdWYWx1ZSApCi0gICAsIGFsbG9jYXRlZF8oIGZhbHNl
ICkKLSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRf
KCAwICkKICNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnN0cmluZ18g
PSBjb25zdF9jYXN0PGNoYXIgKj4oIHZhbHVlLmNfc3RyKCkgKTsKLX0KLQogCi0jIGlmZGVmIEpT
T05fVVNFX0NQUFRMCi1WYWx1ZTo6VmFsdWUoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAmdmFs
dWUgKQotICAgOiB0eXBlXyggc3RyaW5nVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCB0cnVlICkK
LSMgaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICAsIGl0ZW1Jc1VzZWRfKCAw
ICkKLSNlbmRpZgotICAgLCBjb21tZW50c18oIDAgKQotewotICAgdmFsdWVfLnN0cmluZ18gPSBk
dXBsaWNhdGVTdHJpbmdWYWx1ZSggdmFsdWUsIHZhbHVlLmxlbmd0aCgpICk7CitWYWx1ZTo6VmFs
dWUoYm9vbCB2YWx1ZSkgeworICBpbml0QmFzaWMoYm9vbGVhblZhbHVlKTsKKyAgdmFsdWVfLmJv
b2xfID0gdmFsdWU7CiB9Ci0jIGVuZGlmCiAKLVZhbHVlOjpWYWx1ZSggYm9vbCB2YWx1ZSApCi0g
ICA6IHR5cGVfKCBib29sZWFuVmFsdWUgKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSApCi0jIGlm
ZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXyggMCApCi0j
ZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHZhbHVlXy5ib29sXyA9IHZhbHVlOwor
VmFsdWU6OlZhbHVlKGNvbnN0IFZhbHVlJiBvdGhlcikgeworICBkdXBQYXlsb2FkKG90aGVyKTsK
KyAgZHVwTWV0YShvdGhlcik7CiB9CiAKLQotVmFsdWU6OlZhbHVlKCBjb25zdCBWYWx1ZSAmb3Ro
ZXIgKQotICAgOiB0eXBlXyggb3RoZXIudHlwZV8gKQotICAgLCBhbGxvY2F0ZWRfKCBmYWxzZSAp
Ci0jIGlmZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgLCBpdGVtSXNVc2VkXygg
MCApCi0jZW5kaWYKLSAgICwgY29tbWVudHNfKCAwICkKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkK
LSAgIHsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgY2FzZSBpbnRWYWx1ZToKLSAgIGNhc2UgdWlu
dFZhbHVlOgotICAgY2FzZSByZWFsVmFsdWU6Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAg
IHZhbHVlXyA9IG90aGVyLnZhbHVlXzsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBzdHJpbmdWYWx1
ZToKLSAgICAgIGlmICggb3RoZXIudmFsdWVfLnN0cmluZ18gKQotICAgICAgewotICAgICAgICAg
dmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSggb3RoZXIudmFsdWVfLnN0cmlu
Z18gKTsKLSAgICAgICAgIGFsbG9jYXRlZF8gPSB0cnVlOwotICAgICAgfQotICAgICAgZWxzZQot
ICAgICAgICAgdmFsdWVfLnN0cmluZ18gPSAwOwotICAgICAgYnJlYWs7Ci0jaWZuZGVmIEpTT05f
VkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2FzZSBvYmpl
Y3RWYWx1ZToKLSAgICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcyggKm90aGVyLnZh
bHVlXy5tYXBfICk7Ci0gICAgICBicmVhazsKLSNlbHNlCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0g
ICAgICB2YWx1ZV8uYXJyYXlfID0gYXJyYXlBbGxvY2F0b3IoKS0+bmV3QXJyYXlDb3B5KCAqb3Ro
ZXIudmFsdWVfLmFycmF5XyApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgot
ICAgICAgdmFsdWVfLm1hcF8gPSBtYXBBbGxvY2F0b3IoKS0+bmV3TWFwQ29weSggKm90aGVyLnZh
bHVlXy5tYXBfICk7Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIEpT
T05fQVNTRVJUX1VOUkVBQ0hBQkxFOwotICAgfQotICAgaWYgKCBvdGhlci5jb21tZW50c18gKQot
ICAgewotICAgICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29tbWVudFBs
YWNlbWVudF07Ci0gICAgICBmb3IgKCBpbnQgY29tbWVudCA9MDsgY29tbWVudCA8IG51bWJlck9m
Q29tbWVudFBsYWNlbWVudDsgKytjb21tZW50ICkKLSAgICAgIHsKLSAgICAgICAgIGNvbnN0IENv
bW1lbnRJbmZvICZvdGhlckNvbW1lbnQgPSBvdGhlci5jb21tZW50c19bY29tbWVudF07Ci0gICAg
ICAgICBpZiAoIG90aGVyQ29tbWVudC5jb21tZW50XyApCi0gICAgICAgICAgICBjb21tZW50c19b
Y29tbWVudF0uc2V0Q29tbWVudCggb3RoZXJDb21tZW50LmNvbW1lbnRfICk7Ci0gICAgICB9Ci0g
ICB9Ci19Ci0KLQotVmFsdWU6On5WYWx1ZSgpCi17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7
Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICBjYXNlIHVpbnRWYWx1
ZToKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICBicmVh
azsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICBpZiAoIGFsbG9jYXRlZF8gKQotICAgICAg
ICAgcmVsZWFzZVN0cmluZ1ZhbHVlKCB2YWx1ZV8uc3RyaW5nXyApOwotICAgICAgYnJlYWs7Ci0j
aWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgot
ICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGRlbGV0ZSB2YWx1ZV8ubWFwXzsKLSAgICAgIGJy
ZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIGFycmF5QWxsb2NhdG9yKCkt
PmRlc3RydWN0QXJyYXkoIHZhbHVlXy5hcnJheV8gKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBv
YmplY3RWYWx1ZToKLSAgICAgIG1hcEFsbG9jYXRvcigpLT5kZXN0cnVjdE1hcCggdmFsdWVfLm1h
cF8gKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgSlNPTl9BU1NF
UlRfVU5SRUFDSEFCTEU7Ci0gICB9Ci0KLSAgIGlmICggY29tbWVudHNfICkKLSAgICAgIGRlbGV0
ZVtdIGNvbW1lbnRzXzsKK1ZhbHVlOjpWYWx1ZShWYWx1ZSYmIG90aGVyKSB7CisgIGluaXRCYXNp
YyhudWxsVmFsdWUpOworICBzd2FwKG90aGVyKTsKIH0KIAotVmFsdWUgJgotVmFsdWU6Om9wZXJh
dG9yPSggY29uc3QgVmFsdWUgJm90aGVyICkKLXsKLSAgIFZhbHVlIHRlbXAoIG90aGVyICk7Ci0g
ICBzd2FwKCB0ZW1wICk7Ci0gICByZXR1cm4gKnRoaXM7CitWYWx1ZTo6flZhbHVlKCkgeworICBy
ZWxlYXNlUGF5bG9hZCgpOworICB2YWx1ZV8udWludF8gPSAwOwogfQogCi12b2lkIAotVmFsdWU6
OnN3YXAoIFZhbHVlICZvdGhlciApCi17Ci0gICBWYWx1ZVR5cGUgdGVtcCA9IHR5cGVfOwotICAg
dHlwZV8gPSBvdGhlci50eXBlXzsKLSAgIG90aGVyLnR5cGVfID0gdGVtcDsKLSAgIHN0ZDo6c3dh
cCggdmFsdWVfLCBvdGhlci52YWx1ZV8gKTsKLSAgIGludCB0ZW1wMiA9IGFsbG9jYXRlZF87Ci0g
ICBhbGxvY2F0ZWRfID0gb3RoZXIuYWxsb2NhdGVkXzsKLSAgIG90aGVyLmFsbG9jYXRlZF8gPSB0
ZW1wMjsKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3I9KGNvbnN0IFZhbHVlJiBvdGhlcikgeworICBW
YWx1ZShvdGhlcikuc3dhcCgqdGhpcyk7CisgIHJldHVybiAqdGhpczsKIH0KIAotVmFsdWVUeXBl
IAotVmFsdWU6OnR5cGUoKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfOworVmFsdWUmIFZhbHVl
OjpvcGVyYXRvcj0oVmFsdWUmJiBvdGhlcikgeworICBvdGhlci5zd2FwKCp0aGlzKTsKKyAgcmV0
dXJuICp0aGlzOwogfQogCi0KLWludCAKLVZhbHVlOjpjb21wYXJlKCBjb25zdCBWYWx1ZSAmb3Ro
ZXIgKSBjb25zdAotewotICAgaWYgKCAqdGhpcyA8IG90aGVyICkKLSAgICAgIHJldHVybiAtMTsK
LSAgIGlmICggKnRoaXMgPiBvdGhlciApCi0gICAgICByZXR1cm4gMTsKLSAgIHJldHVybiAwOwor
dm9pZCBWYWx1ZTo6c3dhcFBheWxvYWQoVmFsdWUmIG90aGVyKSB7CisgIHN0ZDo6c3dhcChiaXRz
Xywgb3RoZXIuYml0c18pOworICBzdGQ6OnN3YXAodmFsdWVfLCBvdGhlci52YWx1ZV8pOwogfQog
Cit2b2lkIFZhbHVlOjpjb3B5UGF5bG9hZChjb25zdCBWYWx1ZSYgb3RoZXIpIHsKKyAgcmVsZWFz
ZVBheWxvYWQoKTsKKyAgZHVwUGF5bG9hZChvdGhlcik7Cit9CiAKLWJvb2wgCi1WYWx1ZTo6b3Bl
cmF0b3IgPCggY29uc3QgVmFsdWUgJm90aGVyICkgY29uc3QKLXsKLSAgIGludCB0eXBlRGVsdGEg
PSB0eXBlXyAtIG90aGVyLnR5cGVfOwotICAgaWYgKCB0eXBlRGVsdGEgKQotICAgICAgcmV0dXJu
IHR5cGVEZWx0YSA8IDAgPyB0cnVlIDogZmFsc2U7Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7
Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgIGNhc2UgaW50VmFs
dWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmludF8gPCBvdGhlci52YWx1ZV8uaW50XzsKLSAgIGNh
c2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8IG90aGVyLnZhbHVlXy51
aW50XzsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA8IG90
aGVyLnZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZh
bHVlXy5ib29sXyA8IG90aGVyLnZhbHVlXy5ib29sXzsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0g
ICAgICByZXR1cm4gKCB2YWx1ZV8uc3RyaW5nXyA9PSAwICAmJiAgb3RoZXIudmFsdWVfLnN0cmlu
Z18gKQotICAgICAgICAgICAgIHx8ICggb3RoZXIudmFsdWVfLnN0cmluZ18gIAotICAgICAgICAg
ICAgICAgICAgJiYgIHZhbHVlXy5zdHJpbmdfICAKLSAgICAgICAgICAgICAgICAgICYmIHN0cmNt
cCggdmFsdWVfLnN0cmluZ18sIG90aGVyLnZhbHVlXy5zdHJpbmdfICkgPCAwICk7Ci0jaWZuZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY2FzZSBhcnJheVZhbHVlOgotICAgY2Fz
ZSBvYmplY3RWYWx1ZToKLSAgICAgIHsKLSAgICAgICAgIGludCBkZWx0YSA9IGludCggdmFsdWVf
Lm1hcF8tPnNpemUoKSAtIG90aGVyLnZhbHVlXy5tYXBfLT5zaXplKCkgKTsKLSAgICAgICAgIGlm
ICggZGVsdGEgKQotICAgICAgICAgICAgcmV0dXJuIGRlbHRhIDwgMDsKLSAgICAgICAgIHJldHVy
biAoKnZhbHVlXy5tYXBfKSA8ICgqb3RoZXIudmFsdWVfLm1hcF8pOwotICAgICAgfQotI2Vsc2UK
LSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYXJyYXlfLT5jb21wYXJl
KCAqKG90aGVyLnZhbHVlXy5hcnJheV8pICkgPCAwOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAg
ICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+Y29tcGFyZSggKihvdGhlci52YWx1ZV8ubWFwXykgKSA8
IDA7Ci0jZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsK
LSAgIH0KLSAgIHJldHVybiBmYWxzZTsgIC8vIHVucmVhY2hhYmxlCit2b2lkIFZhbHVlOjpzd2Fw
KFZhbHVlJiBvdGhlcikgeworICBzd2FwUGF5bG9hZChvdGhlcik7CisgIHN0ZDo6c3dhcChjb21t
ZW50c18sIG90aGVyLmNvbW1lbnRzXyk7CisgIHN0ZDo6c3dhcChzdGFydF8sIG90aGVyLnN0YXJ0
Xyk7CisgIHN0ZDo6c3dhcChsaW1pdF8sIG90aGVyLmxpbWl0Xyk7CiB9CiAKLWJvb2wgCi1WYWx1
ZTo6b3BlcmF0b3IgPD0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1cm4g
IShvdGhlciA8ICp0aGlzKTsKK3ZvaWQgVmFsdWU6OmNvcHkoY29uc3QgVmFsdWUmIG90aGVyKSB7
CisgIGNvcHlQYXlsb2FkKG90aGVyKTsKKyAgZHVwTWV0YShvdGhlcik7CiB9CiAKLWJvb2wgCi1W
YWx1ZTo6b3BlcmF0b3IgPj0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICByZXR1
cm4gISgqdGhpcyA8IG90aGVyKTsKK1ZhbHVlVHlwZSBWYWx1ZTo6dHlwZSgpIGNvbnN0IHsKKyAg
cmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlVHlwZT4oYml0c18udmFsdWVfdHlwZV8pOwogfQogCi1i
b29sIAotVmFsdWU6Om9wZXJhdG9yID4oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0g
ICByZXR1cm4gb3RoZXIgPCAqdGhpczsKK2ludCBWYWx1ZTo6Y29tcGFyZShjb25zdCBWYWx1ZSYg
b3RoZXIpIGNvbnN0IHsKKyAgaWYgKCp0aGlzIDwgb3RoZXIpCisgICAgcmV0dXJuIC0xOworICBp
ZiAoKnRoaXMgPiBvdGhlcikKKyAgICByZXR1cm4gMTsKKyAgcmV0dXJuIDA7CiB9CiAKLWJvb2wg
Ci1WYWx1ZTo6b3BlcmF0b3IgPT0oIGNvbnN0IFZhbHVlICZvdGhlciApIGNvbnN0Ci17Ci0gICAv
L2lmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQotICAgLy8gR0NDIDIuOTUuMyBzYXlzOgotICAg
Ly8gYXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgYml0LWZpZWxkIHN0cnVjdHVyZSBtZW1iZXIg
YEpzb246OlZhbHVlOjp0eXBlXycKLSAgIC8vIEJlYXRzIG1lLCBidXQgYSB0ZW1wIHNvbHZlcyB0
aGUgcHJvYmxlbS4KLSAgIGludCB0ZW1wID0gb3RoZXIudHlwZV87Ci0gICBpZiAoIHR5cGVfICE9
IHRlbXAgKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgc3dpdGNoICggdHlwZV8gKQotICAgewot
ICAgY2FzZSBudWxsVmFsdWU6Citib29sIFZhbHVlOjpvcGVyYXRvcjwoY29uc3QgVmFsdWUmIG90
aGVyKSBjb25zdCB7CisgIGludCB0eXBlRGVsdGEgPSB0eXBlKCkgLSBvdGhlci50eXBlKCk7Cisg
IGlmICh0eXBlRGVsdGEpCisgICAgcmV0dXJuIHR5cGVEZWx0YSA8IDAgPyB0cnVlIDogZmFsc2U7
CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiBmYWxz
ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPCBvdGhlci52YWx1
ZV8uaW50XzsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8IG90
aGVyLnZhbHVlXy51aW50XzsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5y
ZWFsXyA8IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0
dXJuIHZhbHVlXy5ib29sXyA8IG90aGVyLnZhbHVlXy5ib29sXzsKKyAgY2FzZSBzdHJpbmdWYWx1
ZTogeworICAgIGlmICgodmFsdWVfLnN0cmluZ18gPT0gbnVsbHB0cikgfHwgKG90aGVyLnZhbHVl
Xy5zdHJpbmdfID09IG51bGxwdHIpKSB7CisgICAgICBpZiAob3RoZXIudmFsdWVfLnN0cmluZ18p
CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIHVuc2lnbmVkIHRoaXNfbGVuOworICAgIHVuc2lnbmVkIG90aGVyX2xlbjsK
KyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAgICBjaGFyIGNvbnN0KiBvdGhlcl9zdHI7Cisg
ICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+aXNBbGxvY2F0ZWQoKSwgdGhpcy0+dmFsdWVf
LnN0cmluZ18sICZ0aGlzX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmdGhpc19zdHIp
OworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmlzQWxsb2NhdGVkKCksIG90aGVyLnZh
bHVlXy5zdHJpbmdfLCAmb3RoZXJfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICZvdGhl
cl9zdHIpOworICAgIHVuc2lnbmVkIG1pbl9sZW4gPSBzdGQ6Om1pbjx1bnNpZ25lZD4odGhpc19s
ZW4sIG90aGVyX2xlbik7CisgICAgSlNPTl9BU1NFUlQodGhpc19zdHIgJiYgb3RoZXJfc3RyKTsK
KyAgICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzX3N0ciwgb3RoZXJfc3RyLCBtaW5fbGVuKTsKKyAg
ICBpZiAoY29tcCA8IDApCiAgICAgICByZXR1cm4gdHJ1ZTsKLSAgIGNhc2UgaW50VmFsdWU6Ci0g
ICAgICByZXR1cm4gdmFsdWVfLmludF8gPT0gb3RoZXIudmFsdWVfLmludF87Ci0gICBjYXNlIHVp
bnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPT0gb3RoZXIudmFsdWVfLnVpbnRf
OwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnJlYWxfID09IG90aGVy
LnZhbHVlXy5yZWFsXzsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVl
Xy5ib29sXyA9PSBvdGhlci52YWx1ZV8uYm9vbF87Ci0gICBjYXNlIHN0cmluZ1ZhbHVlOgotICAg
ICAgcmV0dXJuICggdmFsdWVfLnN0cmluZ18gPT0gb3RoZXIudmFsdWVfLnN0cmluZ18gKQotICAg
ICAgICAgICAgIHx8ICggb3RoZXIudmFsdWVfLnN0cmluZ18gIAotICAgICAgICAgICAgICAgICAg
JiYgIHZhbHVlXy5zdHJpbmdfICAKLSAgICAgICAgICAgICAgICAgICYmIHN0cmNtcCggdmFsdWVf
LnN0cmluZ18sIG90aGVyLnZhbHVlXy5zdHJpbmdfICkgPT0gMCApOwotI2lmbmRlZiBKU09OX1ZB
TFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0
VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLm1hcF8tPnNpemUoKSA9PSBvdGhlci52YWx1ZV8u
bWFwXy0+c2l6ZSgpCi0gICAgICAgICAgICAgJiYgKCp2YWx1ZV8ubWFwXykgPT0gKCpvdGhlci52
YWx1ZV8ubWFwXyk7Ci0jZWxzZQotICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgcmV0dXJuIHZh
bHVlXy5hcnJheV8tPmNvbXBhcmUoICoob3RoZXIudmFsdWVfLmFycmF5XykgKSA9PSAwOwotICAg
Y2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+Y29tcGFyZSggKihv
dGhlci52YWx1ZV8ubWFwXykgKSA9PSAwOworICAgIGlmIChjb21wID4gMCkKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gKHRoaXNfbGVuIDwgb3RoZXJfbGVuKTsKKyAgfQorICBjYXNl
IGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBpbnQgZGVsdGEgPSBpbnQo
dmFsdWVfLm1hcF8tPnNpemUoKSAtIG90aGVyLnZhbHVlXy5tYXBfLT5zaXplKCkpOworICAgIGlm
IChkZWx0YSkKKyAgICAgIHJldHVybiBkZWx0YSA8IDA7CisgICAgcmV0dXJuICgqdmFsdWVfLm1h
cF8pIDwgKCpvdGhlci52YWx1ZV8ubWFwXyk7CisgIH0KKyAgZGVmYXVsdDoKKyAgICBKU09OX0FT
U0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorICByZXR1cm4gZmFsc2U7IC8vIHVucmVhY2hhYmxlCit9
CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPD0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiAhKG90aGVyIDwgKnRoaXMpOyB9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPj0oY29uc3Qg
VmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzIDwgb3RoZXIpOyB9CisKK2Jvb2wg
VmFsdWU6Om9wZXJhdG9yPihjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVy
IDwgKnRoaXM7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBWYWx1ZSYgb3RoZXIp
IGNvbnN0IHsKKyAgaWYgKHR5cGUoKSAhPSBvdGhlci50eXBlKCkpCisgICAgcmV0dXJuIGZhbHNl
OworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gdHJ1
ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPT0gb3RoZXIudmFs
dWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPT0g
b3RoZXIudmFsdWVfLnVpbnRfOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVf
LnJlYWxfID09IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAg
cmV0dXJuIHZhbHVlXy5ib29sXyA9PSBvdGhlci52YWx1ZV8uYm9vbF87CisgIGNhc2Ugc3RyaW5n
VmFsdWU6IHsKKyAgICBpZiAoKHZhbHVlXy5zdHJpbmdfID09IG51bGxwdHIpIHx8IChvdGhlci52
YWx1ZV8uc3RyaW5nXyA9PSBudWxscHRyKSkgeworICAgICAgcmV0dXJuICh2YWx1ZV8uc3RyaW5n
XyA9PSBvdGhlci52YWx1ZV8uc3RyaW5nXyk7CisgICAgfQorICAgIHVuc2lnbmVkIHRoaXNfbGVu
OworICAgIHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAg
ICBjaGFyIGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+
aXNBbGxvY2F0ZWQoKSwgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAmdGhpc19zdHIpOworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90
aGVyLmlzQWxsb2NhdGVkKCksIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJfbGVuLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICZvdGhlcl9zdHIpOworICAgIGlmICh0aGlzX2xlbiAhPSBv
dGhlcl9sZW4pCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgSlNPTl9BU1NFUlQodGhpc19zdHIg
JiYgb3RoZXJfc3RyKTsKKyAgICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzX3N0ciwgb3RoZXJfc3Ry
LCB0aGlzX2xlbik7CisgICAgcmV0dXJuIGNvbXAgPT0gMDsKKyAgfQorICBjYXNlIGFycmF5VmFs
dWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5tYXBfLT5zaXplKCkg
PT0gb3RoZXIudmFsdWVfLm1hcF8tPnNpemUoKSAmJgorICAgICAgICAgICAoKnZhbHVlXy5tYXBf
KSA9PSAoKm90aGVyLnZhbHVlXy5tYXBfKTsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9V
TlJFQUNIQUJMRTsKKyAgfQorICByZXR1cm4gZmFsc2U7IC8vIHVucmVhY2hhYmxlCit9CisKK2Jv
b2wgVmFsdWU6Om9wZXJhdG9yIT0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAh
KCp0aGlzID09IG90aGVyKTsgfQorCitjb25zdCBjaGFyKiBWYWx1ZTo6YXNDU3RyaW5nKCkgY29u
c3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBzdHJpbmdWYWx1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1aXJlcyBz
dHJpbmdWYWx1ZSIpOworICBpZiAodmFsdWVfLnN0cmluZ18gPT0gbnVsbHB0cikKKyAgICByZXR1
cm4gbnVsbHB0cjsKKyAgdW5zaWduZWQgdGhpc19sZW47CisgIGNoYXIgY29uc3QqIHRoaXNfc3Ry
OworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5pc0FsbG9jYXRlZCgpLCB0aGlzLT52YWx1
ZV8uc3RyaW5nXywgJnRoaXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAmdGhpc19zdHIp
OworICByZXR1cm4gdGhpc19zdHI7Cit9CisKKyNpZiBKU09OQ1BQX1VTSU5HX1NFQ1VSRV9NRU1P
UlkKK3Vuc2lnbmVkIFZhbHVlOjpnZXRDU3RyaW5nTGVuZ3RoKCkgY29uc3QgeworICBKU09OX0FT
U0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBzdHJpbmdWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAiaW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZSIpOwor
ICBpZiAodmFsdWVfLnN0cmluZ18gPT0gMCkKKyAgICByZXR1cm4gMDsKKyAgdW5zaWduZWQgdGhp
c19sZW47CisgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0
aGlzLT5pc0FsbG9jYXRlZCgpLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLAorICAg
ICAgICAgICAgICAgICAgICAgICAmdGhpc19zdHIpOworICByZXR1cm4gdGhpc19sZW47Cit9CiAj
ZW5kaWYKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKLSAgIH0K
LSAgIHJldHVybiBmYWxzZTsgIC8vIHVucmVhY2hhYmxlCisKK2Jvb2wgVmFsdWU6OmdldFN0cmlu
ZyhjaGFyIGNvbnN0KiogYmVnaW4sIGNoYXIgY29uc3QqKiBlbmQpIGNvbnN0IHsKKyAgaWYgKHR5
cGUoKSAhPSBzdHJpbmdWYWx1ZSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGlmICh2YWx1ZV8uc3Ry
aW5nXyA9PSBudWxscHRyKQorICAgIHJldHVybiBmYWxzZTsKKyAgdW5zaWduZWQgbGVuZ3RoOwor
ICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5pc0FsbG9jYXRlZCgpLCB0aGlzLT52YWx1ZV8u
c3RyaW5nXywgJmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4pOworICAqZW5k
ID0gKmJlZ2luICsgbGVuZ3RoOworICByZXR1cm4gdHJ1ZTsKK30KKworU3RyaW5nIFZhbHVlOjph
c1N0cmluZygpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6
CisgICAgcmV0dXJuICIiOworICBjYXNlIHN0cmluZ1ZhbHVlOiB7CisgICAgaWYgKHZhbHVlXy5z
dHJpbmdfID09IG51bGxwdHIpCisgICAgICByZXR1cm4gIiI7CisgICAgdW5zaWduZWQgdGhpc19s
ZW47CisgICAgY2hhciBjb25zdCogdGhpc19zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmco
dGhpcy0+aXNBbGxvY2F0ZWQoKSwgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAmdGhpc19zdHIpOworICAgIHJldHVybiBTdHJpbmcodGhp
c19zdHIsIHRoaXNfbGVuKTsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4g
dmFsdWVfLmJvb2xfID8gInRydWUiIDogImZhbHNlIjsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBy
ZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAg
IHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAg
SlNPTl9GQUlMX01FU1NBR0UoIlR5cGUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHN0cmluZyIpOwor
ICB9CiB9CiAKLWJvb2wgCi1WYWx1ZTo6b3BlcmF0b3IgIT0oIGNvbnN0IFZhbHVlICZvdGhlciAp
IGNvbnN0Ci17Ci0gICByZXR1cm4gISggKnRoaXMgPT0gb3RoZXIgKTsKKyNpZmRlZiBKU09OX1VT
RV9DUFBUTAorQ3BwVEw6OkNvbnN0U3RyaW5nIFZhbHVlOjphc0NvbnN0U3RyaW5nKCkgY29uc3Qg
eworICB1bnNpZ25lZCBsZW47CisgIGNoYXIgY29uc3QqIHN0cjsKKyAgZGVjb2RlUHJlZml4ZWRT
dHJpbmcoaXNBbGxvY2F0ZWQoKSwgdmFsdWVfLnN0cmluZ18sICZsZW4sICZzdHIpOworICByZXR1
cm4gQ3BwVEw6OkNvbnN0U3RyaW5nKHN0ciwgbGVuKTsKIH0KKyNlbmRpZgogCi1jb25zdCBjaGFy
ICoKLVZhbHVlOjphc0NTdHJpbmcoKSBjb25zdAotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09
IHN0cmluZ1ZhbHVlICk7Ci0gICByZXR1cm4gdmFsdWVfLnN0cmluZ187CitWYWx1ZTo6SW50IFZh
bHVlOjphc0ludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBpbnRWYWx1
ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCksICJMYXJnZXN0SW50IG91dCBvZiBJ
bnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFs
dWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9m
IEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFs
VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWlu
SW50LCBtYXhJbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2YgSW50
IHJhbmdlIik7CisgICAgcmV0dXJuIEludCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1
ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
Xy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIEpTT05fRkFJ
TF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50LiIpOworfQorCitWYWx1
ZTo6VUludCBWYWx1ZTo6YXNVSW50KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBj
YXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50KCksICJMYXJnZXN0
SW50IG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQodmFsdWVfLmludF8pOwor
ICBjYXNlIHVpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFy
Z2VzdFVJbnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gVUludCh2YWx1ZV8udWlu
dF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2Uo
dmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb3Vi
bGUgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gVUludCh2YWx1ZV8ucmVhbF8pOwor
ICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6Cisg
ICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0OgorICAgIGJyZWFrOwor
ICB9CisgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gVUlu
dC4iKTsKIH0KIAorI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCiAKLXN0ZDo6c3RyaW5nIAot
VmFsdWU6OmFzU3RyaW5nKCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAg
IGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuICIiOwotICAgY2FzZSBzdHJpbmdWYWx1ZToK
LSAgICAgIHJldHVybiB2YWx1ZV8uc3RyaW5nXyA/IHZhbHVlXy5zdHJpbmdfIDogIiI7Ci0gICBj
YXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAidHJ1ZSIgOiAi
ZmFsc2UiOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKCB2
YWx1ZV8uaW50XyApOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVUb1N0
cmluZyggdmFsdWVfLnVpbnRfICk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2
YWx1ZVRvU3RyaW5nKCB2YWx1ZV8ucmVhbF8gKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBKU09OX0ZB
SUxfTUVTU0FHRSggIlR5cGUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHN0cmluZyIgKTsKLSAgIH0K
LX0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotQ3BwVEw6OkNvbnN0U3RyaW5nIAotVmFsdWU6
OmFzQ29uc3RTdHJpbmcoKSBjb25zdAotewotICAgcmV0dXJuIENwcFRMOjpDb25zdFN0cmluZygg
YXNTdHJpbmcoKS5jX3N0cigpICk7Ci19Ci0jIGVuZGlmCi0KLQotVmFsdWU6OkludCAKLVZhbHVl
Ojphc0ludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0gICBjYXNlIGlu
dFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdEludCBv
dXQgb2YgSW50IHJhbmdlIik7Ci0gICAgICByZXR1cm4gSW50KHZhbHVlXy5pbnRfKTsKLSAgIGNh
c2UgdWludFZhbHVlOgotICAgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2Vz
dFVJbnQgb3V0IG9mIEludCByYW5nZSIpOwotICAgICAgcmV0dXJuIEludCh2YWx1ZV8udWludF8p
OwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2Uo
dmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCksICJkb3VibGUgb3V0IG9mIEludCByYW5nZSIp
OwotICAgICAgcmV0dXJuIEludCh2YWx1ZV8ucmVhbF8pOwotICAgY2FzZSBudWxsVmFsdWU6Ci0g
ICAgICByZXR1cm4gMDsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVl
Xy5ib29sXyA/IDEgOiAwOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNP
Tl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBJbnQuIik7Ci19Ci0K
LQotVmFsdWU6OlVJbnQgCi1WYWx1ZTo6YXNVSW50KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5
cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdF
KGlzVUludCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludCByYW5nZSIpOwotICAgICAgcmV0dXJu
IFVJbnQodmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VS
VF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKLSAg
ICAgIHJldHVybiBVSW50KHZhbHVlXy51aW50Xyk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAg
IEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpLCAi
ZG91YmxlIG91dCBvZiBVSW50IHJhbmdlIik7Ci0gICAgICByZXR1cm4gVUludCggdmFsdWVfLnJl
YWxfICk7Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAwOwotICAgY2FzZSBib29s
ZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gICBkZWZhdWx0
OgotICAgICAgYnJlYWs7Ci0gICB9Ci0gICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90
IGNvbnZlcnRpYmxlIHRvIFVJbnQuIik7Ci19Ci0KLQotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lO
VDY0KQotCi1WYWx1ZTo6SW50NjQKLVZhbHVlOjphc0ludDY0KCkgY29uc3QKLXsKLSAgIHN3aXRj
aCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICByZXR1cm4gSW50NjQo
dmFsdWVfLmludF8pOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNT
QUdFKGlzSW50NjQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJbnQ2NCByYW5nZSIpOwotICAgICAg
cmV0dXJuIEludDY0KHZhbHVlXy51aW50Xyk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIEpT
T05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludDY0LCBtYXhJbnQ2
NCksICJkb3VibGUgb3V0IG9mIEludDY0IHJhbmdlIik7Ci0gICAgICByZXR1cm4gSW50NjQodmFs
dWVfLnJlYWxfKTsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAgcmV0dXJuIDA7Ci0gICBjYXNl
IGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKLSAgIGRl
ZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBp
cyBub3QgY29udmVydGlibGUgdG8gSW50NjQuIik7Ci19Ci0KLQotVmFsdWU6OlVJbnQ2NAotVmFs
dWU6OmFzVUludDY0KCkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNh
c2UgaW50VmFsdWU6Ci0gICAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludDY0KCksICJMYXJn
ZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKLSAgICAgIHJldHVybiBVSW50NjQodmFsdWVf
LmludF8pOwotICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gVUludDY0KHZhbHVlXy51
aW50Xyk7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5S
YW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQ2NCksICJkb3VibGUgb3V0IG9mIFVJbnQ2NCBy
YW5nZSIpOwotICAgICAgcmV0dXJuIFVJbnQ2NCggdmFsdWVfLnJlYWxfICk7Ci0gICBjYXNlIG51
bGxWYWx1ZToKLSAgICAgIHJldHVybiAwOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICBy
ZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Ci0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7Ci0g
ICB9Ci0gICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFVJ
bnQ2NC4iKTsKLX0KLSMgZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKLQotCi1M
YXJnZXN0SW50IAotVmFsdWU6OmFzTGFyZ2VzdEludCgpIGNvbnN0Ci17CitWYWx1ZTo6SW50NjQg
VmFsdWU6OmFzSW50NjQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgpKSB7CisgIGNhc2UgaW50
VmFsdWU6CisgICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6
CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCksICJMYXJnZXN0VUludCBvdXQgb2Yg
SW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50NjQodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSBy
ZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywg
bWluSW50NjQsIG1heEludDY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0
IG9mIEludDY0IHJhbmdlIik7CisgICAgcmV0dXJuIEludDY0KHZhbHVlXy5yZWFsXyk7CisgIGNh
c2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBy
ZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0K
KyAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBJbnQ2NC4i
KTsKK30KKworVmFsdWU6OlVJbnQ2NCBWYWx1ZTo6YXNVSW50NjQoKSBjb25zdCB7CisgIHN3aXRj
aCAodHlwZSgpKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShp
c1VJbnQ2NCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludDY0IHJhbmdlIik7CisgICAgcmV0dXJu
IFVJbnQ2NCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiBVSW50
NjQodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVT
U0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUludDY0KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOworICAgIHJldHVybiBVSW50
NjQodmFsdWVfLnJlYWxfKTsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNh
c2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVm
YXVsdDoKKyAgICBicmVhazsKKyAgfQorICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90
IGNvbnZlcnRpYmxlIHRvIFVJbnQ2NC4iKTsKK30KKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQorCitMYXJnZXN0SW50IFZhbHVlOjphc0xhcmdlc3RJbnQoKSBjb25zdCB7CiAj
aWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQotICAgIHJldHVybiBhc0ludCgpOworICByZXR1cm4g
YXNJbnQoKTsKICNlbHNlCi0gICAgcmV0dXJuIGFzSW50NjQoKTsKKyAgcmV0dXJuIGFzSW50NjQo
KTsKICNlbmRpZgogfQogCi0KLUxhcmdlc3RVSW50IAotVmFsdWU6OmFzTGFyZ2VzdFVJbnQoKSBj
b25zdAoteworTGFyZ2VzdFVJbnQgVmFsdWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25zdCB7CiAjaWYg
ZGVmaW5lZChKU09OX05PX0lOVDY0KQotICAgIHJldHVybiBhc1VJbnQoKTsKKyAgcmV0dXJuIGFz
VUludCgpOwogI2Vsc2UKLSAgICByZXR1cm4gYXNVSW50NjQoKTsKKyAgcmV0dXJuIGFzVUludDY0
KCk7CiAjZW5kaWYKIH0KIAotCi1kb3VibGUgCi1WYWx1ZTo6YXNEb3VibGUoKSBjb25zdAotewot
ICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxkb3VibGU+KCB2YWx1ZV8uaW50XyApOwotICAgY2FzZSB1aW50VmFsdWU6
Citkb3VibGUgVmFsdWU6OmFzRG91YmxlKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgewor
ICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlXy5p
bnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CiAjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9V
QkxFX0NPTlZFUlNJT04pCi0gICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPiggdmFsdWVf
LnVpbnRfICk7Ci0jZWxzZSAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKLSAgICAgIHJldHVybiBpbnRlZ2VyVG9Eb3VibGUoIHZhbHVlXy51aW50XyApOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlXy51aW50Xyk7CisjZWxzZSAgLy8g
aWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJu
IGludGVnZXJUb0RvdWJsZSh2YWx1ZV8udWludF8pOwogI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpT
T05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAg
ICByZXR1cm4gdmFsdWVfLnJlYWxfOwotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICByZXR1cm4g
MC4wOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8g
MS4wIDogMC4wOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgSlNPTl9GQUlM
X01FU1NBR0UoIlZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBkb3VibGUuIik7Ci19Ci0KLWZs
b2F0Ci1WYWx1ZTo6YXNGbG9hdCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7
Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PiggdmFs
dWVfLmludF8gKTsKLSAgIGNhc2UgdWludFZhbHVlOgorICBjYXNlIHJlYWxWYWx1ZToKKyAgICBy
ZXR1cm4gdmFsdWVfLnJlYWxfOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMC4wOwor
ICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMS4wIDogMC4w
OworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1
ZSBpcyBub3QgY29udmVydGlibGUgdG8gZG91YmxlLiIpOworfQorCitmbG9hdCBWYWx1ZTo6YXNG
bG9hdCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFs
dWU6CiAjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCi0gICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KCB2YWx1ZV8udWludF8gKTsKLSNlbHNlIC8vIGlm
ICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotICAgICAgcmV0dXJu
IGludGVnZXJUb0RvdWJsZSggdmFsdWVfLnVpbnRfICk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZV8udWludF8pOworI2Vsc2UgIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lO
VDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAgIC8vIFRoaXMgY2FuIGZhaWwgKHNpbGVudGx5Pykg
aWYgdGhlIHZhbHVlIGlzIGJpZ2dlciB0aGFuIE1BWF9GTE9BVC4KKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KGludGVnZXJUb0RvdWJsZSh2YWx1ZV8udWludF8pKTsKICNlbmRpZiAvLyBp
ZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKLSAgIGNhc2UgcmVh
bFZhbHVlOgotICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PiggdmFsdWVfLnJlYWxfICk7
Ci0gICBjYXNlIG51bGxWYWx1ZToKLSAgICAgIHJldHVybiAwLjA7Ci0gICBjYXNlIGJvb2xlYW5W
YWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxLjBmIDogMC4wZjsKLSAgIGRlZmF1
bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBu
b3QgY29udmVydGlibGUgdG8gZmxvYXQuIik7Ci19Ci0KLWJvb2wgCi1WYWx1ZTo6YXNCb29sKCkg
Y29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSAgIGNhc2UgYm9vbGVhblZhbHVl
OgotICAgICAgcmV0dXJuIHZhbHVlXy5ib29sXzsKLSAgIGNhc2UgbnVsbFZhbHVlOgotICAgICAg
cmV0dXJuIGZhbHNlOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8uaW50
XyA/IHRydWUgOiBmYWxzZTsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVl
Xy51aW50XyA/IHRydWUgOiBmYWxzZTsKLSAgIGNhc2UgcmVhbFZhbHVlOgotICAgICAgcmV0dXJu
IHZhbHVlXy5yZWFsXyA/IHRydWUgOiBmYWxzZTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsK
LSAgIH0KLSAgIEpTT05fRkFJTF9NRVNTQUdFKCJWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8g
Ym9vbC4iKTsKLX0KLQotCi1ib29sIAotVmFsdWU6OmlzQ29udmVydGlibGVUbyggVmFsdWVUeXBl
IG90aGVyICkgY29uc3QKLXsKLSAgIHN3aXRjaCAoIG90aGVyICkKLSAgIHsKLSAgIGNhc2UgbnVs
bFZhbHVlOgotICAgICAgcmV0dXJuICggaXNOdW1lcmljKCkgJiYgYXNEb3VibGUoKSA9PSAwLjAg
KQotICAgICAgICAgICAgIHx8ICggdHlwZV8gPT0gYm9vbGVhblZhbHVlICYmIHZhbHVlXy5ib29s
XyA9PSBmYWxzZSApCi0gICAgICAgICAgICAgfHwgKCB0eXBlXyA9PSBzdHJpbmdWYWx1ZSAmJiBh
c1N0cmluZygpID09ICIiICkKLSAgICAgICAgICAgICB8fCAoIHR5cGVfID09IGFycmF5VmFsdWUg
JiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwICkKLSAgICAgICAgICAgICB8fCAoIHR5cGVfID09
IG9iamVjdFZhbHVlICYmIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gMCApCi0gICAgICAgICAgICAg
fHwgdHlwZV8gPT0gbnVsbFZhbHVlOwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHJldHVybiBp
c0ludCgpCi0gICAgICAgICAgICAgfHwgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZh
bHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQpKQotICAgICAgICAgICAgIHx8IHR5cGVfID09IGJv
b2xlYW5WYWx1ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2Ug
dWludFZhbHVlOgotICAgICAgcmV0dXJuIGlzVUludCgpCi0gICAgICAgICAgICAgfHwgKHR5cGVf
ID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUludCkpCi0gICAg
ICAgICAgICAgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8g
PT0gbnVsbFZhbHVlOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICByZXR1cm4gaXNOdW1lcmlj
KCkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUKLSAgICAgICAgICAgICB8
fCB0eXBlXyA9PSBudWxsVmFsdWU7Ci0gICBjYXNlIGJvb2xlYW5WYWx1ZToKLSAgICAgIHJldHVy
biBpc051bWVyaWMoKQotICAgICAgICAgICAgIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZQotICAg
ICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0g
ICAgICByZXR1cm4gaXNOdW1lcmljKCkKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBib29sZWFu
VmFsdWUKLSAgICAgICAgICAgICB8fCB0eXBlXyA9PSBzdHJpbmdWYWx1ZQotICAgICAgICAgICAg
IHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHJldHVy
biB0eXBlXyA9PSBhcnJheVZhbHVlCi0gICAgICAgICAgICAgfHwgdHlwZV8gPT0gbnVsbFZhbHVl
OwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHJldHVybiB0eXBlXyA9PSBvYmplY3RWYWx1
ZQotICAgICAgICAgICAgIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKLSAgIH0KLSAgIEpTT05fQVNT
RVJUX1VOUkVBQ0hBQkxFOwotICAgcmV0dXJuIGZhbHNlOworICBjYXNlIHJlYWxWYWx1ZToKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZh
bHVlOgorICAgIHJldHVybiAwLjA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2
YWx1ZV8uYm9vbF8gPyAxLjBmIDogMC4wZjsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQor
ICBKU09OX0ZBSUxfTUVTU0FHRSgiVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIGZsb2F0LiIp
OworfQorCitib29sIFZhbHVlOjphc0Jvb2woKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZSgpKSB7
CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF87CisgIGNhc2Ug
bnVsbFZhbHVlOgorICAgIHJldHVybiBmYWxzZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1
cm4gdmFsdWVfLmludF8gPyB0cnVlIDogZmFsc2U7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJl
dHVybiB2YWx1ZV8udWludF8gPyB0cnVlIDogZmFsc2U7CisgIGNhc2UgcmVhbFZhbHVlOiB7Cisg
ICAgLy8gQWNjb3JkaW5nIHRvIEphdmFTY3JpcHQgbGFuZ3VhZ2UgemVybyBvciBOYU4gaXMgcmVn
YXJkZWQgYXMgZmFsc2UKKyAgICBjb25zdCBhdXRvIHZhbHVlX2NsYXNzaWZpY2F0aW9uID0gc3Rk
OjpmcGNsYXNzaWZ5KHZhbHVlXy5yZWFsXyk7CisgICAgcmV0dXJuIHZhbHVlX2NsYXNzaWZpY2F0
aW9uICE9IEZQX1pFUk8gJiYgdmFsdWVfY2xhc3NpZmljYXRpb24gIT0gRlBfTkFOOworICB9Cisg
IGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgSlNPTl9GQUlMX01FU1NBR0UoIlZhbHVlIGlz
IG5vdCBjb252ZXJ0aWJsZSB0byBib29sLiIpOworfQorCitib29sIFZhbHVlOjppc0NvbnZlcnRp
YmxlVG8oVmFsdWVUeXBlIG90aGVyKSBjb25zdCB7CisgIHN3aXRjaCAob3RoZXIpIHsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIChpc051bWVyaWMoKSAmJiBhc0RvdWJsZSgpID09IDAu
MCkgfHwKKyAgICAgICAgICAgKHR5cGUoKSA9PSBib29sZWFuVmFsdWUgJiYgdmFsdWVfLmJvb2xf
ID09IGZhbHNlKSB8fAorICAgICAgICAgICAodHlwZSgpID09IHN0cmluZ1ZhbHVlICYmIGFzU3Ry
aW5nKCkuZW1wdHkoKSkgfHwKKyAgICAgICAgICAgKHR5cGUoKSA9PSBhcnJheVZhbHVlICYmIHZh
bHVlXy5tYXBfLT5lbXB0eSgpKSB8fAorICAgICAgICAgICAodHlwZSgpID09IG9iamVjdFZhbHVl
ICYmIHZhbHVlXy5tYXBfLT5lbXB0eSgpKSB8fAorICAgICAgICAgICB0eXBlKCkgPT0gbnVsbFZh
bHVlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBpc0ludCgpIHx8CisgICAgICAgICAg
ICh0eXBlKCkgPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1h
eEludCkpIHx8CisgICAgICAgICAgIHR5cGUoKSA9PSBib29sZWFuVmFsdWUgfHwgdHlwZSgpID09
IG51bGxWYWx1ZTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIGlzVUludCgpIHx8Cisg
ICAgICAgICAgICh0eXBlKCkgPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJlYWxfLCAw
LCBtYXhVSW50KSkgfHwKKyAgICAgICAgICAgdHlwZSgpID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBl
KCkgPT0gbnVsbFZhbHVlOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gaXNOdW1lcmlj
KCkgfHwgdHlwZSgpID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlKCkgPT0gbnVsbFZhbHVlOworICBj
YXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZSgpID09IGJv
b2xlYW5WYWx1ZSB8fCB0eXBlKCkgPT0gbnVsbFZhbHVlOworICBjYXNlIHN0cmluZ1ZhbHVlOgor
ICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlKCkgPT0gYm9vbGVhblZhbHVlIHx8IHR5cGUo
KSA9PSBzdHJpbmdWYWx1ZSB8fAorICAgICAgICAgICB0eXBlKCkgPT0gbnVsbFZhbHVlOworICBj
YXNlIGFycmF5VmFsdWU6CisgICAgcmV0dXJuIHR5cGUoKSA9PSBhcnJheVZhbHVlIHx8IHR5cGUo
KSA9PSBudWxsVmFsdWU7CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgcmV0dXJuIHR5cGUoKSA9
PSBvYmplY3RWYWx1ZSB8fCB0eXBlKCkgPT0gbnVsbFZhbHVlOworICB9CisgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOworICByZXR1cm4gZmFsc2U7CiB9CiAKLQogLy8vIE51bWJlciBvZiB2YWx1
ZXMgaW4gYXJyYXkgb3Igb2JqZWN0Ci1BcnJheUluZGV4IAotVmFsdWU6OnNpemUoKSBjb25zdAot
ewotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICBjYXNl
IGludFZhbHVlOgotICAgY2FzZSB1aW50VmFsdWU6Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgIGNh
c2UgYm9vbGVhblZhbHVlOgotICAgY2FzZSBzdHJpbmdWYWx1ZToKLSAgICAgIHJldHVybiAwOwot
I2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZTog
IC8vIHNpemUgb2YgdGhlIGFycmF5IGlzIGhpZ2hlc3QgaW5kZXggKyAxCi0gICAgICBpZiAoICF2
YWx1ZV8ubWFwXy0+ZW1wdHkoKSApCi0gICAgICB7Ci0gICAgICAgICBPYmplY3RWYWx1ZXM6OmNv
bnN0X2l0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5lbmQoKTsKLSAgICAgICAgIC0taXRM
YXN0OwotICAgICAgICAgcmV0dXJuICgqaXRMYXN0KS5maXJzdC5pbmRleCgpKzE7Ci0gICAgICB9
Ci0gICAgICByZXR1cm4gMDsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICByZXR1cm4gQXJy
YXlJbmRleCggdmFsdWVfLm1hcF8tPnNpemUoKSApOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1
ZToKLSAgICAgIHJldHVybiBJbnQoIHZhbHVlXy5hcnJheV8tPnNpemUoKSApOwotICAgY2FzZSBv
YmplY3RWYWx1ZToKLSAgICAgIHJldHVybiBJbnQoIHZhbHVlXy5tYXBfLT5zaXplKCkgKTsKLSNl
bmRpZgotICAgfQotICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7Ci0gICByZXR1cm4gMDsgLy8g
dW5yZWFjaGFibGU7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjplbXB0eSgpIGNvbnN0Ci17Ci0gICBp
ZiAoIGlzTnVsbCgpIHx8IGlzQXJyYXkoKSB8fCBpc09iamVjdCgpICkKLSAgICAgIHJldHVybiBz
aXplKCkgPT0gMHU7Ci0gICBlbHNlCi0gICAgICByZXR1cm4gZmFsc2U7CitBcnJheUluZGV4IFZh
bHVlOjpzaXplKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1
ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVl
OgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICByZXR1cm4g
MDsKKyAgY2FzZSBhcnJheVZhbHVlOiAvLyBzaXplIG9mIHRoZSBhcnJheSBpcyBoaWdoZXN0IGlu
ZGV4ICsgMQorICAgIGlmICghdmFsdWVfLm1hcF8tPmVtcHR5KCkpIHsKKyAgICAgIE9iamVjdFZh
bHVlczo6Y29uc3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFsdWVfLm1hcF8tPmVuZCgpOworICAgICAg
LS1pdExhc3Q7CisgICAgICByZXR1cm4gKCppdExhc3QpLmZpcnN0LmluZGV4KCkgKyAxOworICAg
IH0KKyAgICByZXR1cm4gMDsKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICByZXR1cm4gQXJyYXlJ
bmRleCh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgfQorICBKU09OX0FTU0VSVF9VTlJFQUNIQUJM
RTsKKyAgcmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOworfQorCitib29sIFZhbHVlOjplbXB0eSgp
IGNvbnN0IHsKKyAgaWYgKGlzTnVsbCgpIHx8IGlzQXJyYXkoKSB8fCBpc09iamVjdCgpKQorICAg
IHJldHVybiBzaXplKCkgPT0gMHU7CisgIGVsc2UKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Zh
bHVlOjpvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gIWlzTnVsbCgpOyB9CisKK3ZvaWQg
VmFsdWU6OmNsZWFyKCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBudWxsVmFs
dWUgfHwgdHlwZSgpID09IGFycmF5VmFsdWUgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZSgpID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpW
YWx1ZTo6Y2xlYXIoKTogcmVxdWlyZXMgY29tcGxleCB2YWx1ZSIpOworICBzdGFydF8gPSAwOwor
ICBsaW1pdF8gPSAwOworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGFycmF5VmFsdWU6Cisg
IGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgdmFsdWVfLm1hcF8tPmNsZWFyKCk7CisgICAgYnJlYWs7
CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KK30KKwordm9pZCBWYWx1ZTo6cmVzaXplKEFy
cmF5SW5kZXggbmV3U2l6ZSkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGUoKSA9PSBudWxs
VmFsdWUgfHwgdHlwZSgpID09IGFycmF5VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgImlu
IEpzb246OlZhbHVlOjpyZXNpemUoKTogcmVxdWlyZXMgYXJyYXlWYWx1ZSIpOworICBpZiAodHlw
ZSgpID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKGFycmF5VmFsdWUpOworICBBcnJh
eUluZGV4IG9sZFNpemUgPSBzaXplKCk7CisgIGlmIChuZXdTaXplID09IDApCisgICAgY2xlYXIo
KTsKKyAgZWxzZSBpZiAobmV3U2l6ZSA+IG9sZFNpemUpCisgICAgdGhpcy0+b3BlcmF0b3JbXShu
ZXdTaXplIC0gMSk7CisgIGVsc2UgeworICAgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9IG5ld1Np
emU7IGluZGV4IDwgb2xkU2l6ZTsgKytpbmRleCkgeworICAgICAgdmFsdWVfLm1hcF8tPmVyYXNl
KGluZGV4KTsKKyAgICB9CisgICAgSlNPTl9BU1NFUlQoc2l6ZSgpID09IG5ld1NpemUpOworICB9
Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSB7CisgIEpT
T05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlKCkgPT0gbnVsbFZhbHVlIHx8IHR5cGUoKSA9
PSBhcnJheVZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5k
ZXgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQor
ICAgICp0aGlzID0gVmFsdWUoYXJyYXlWYWx1ZSk7CisgIENaU3RyaW5nIGtleShpbmRleCk7Cisg
IGF1dG8gaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoa2V5KTsKKyAgaWYgKGl0ICE9IHZh
bHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBrZXkpCisgICAgcmV0dXJuICgqaXQp
LnNlY29uZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKGtleSwg
bnVsbFNpbmdsZXRvbigpKTsKKyAgaXQgPSB2YWx1ZV8ubWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0
VmFsdWUpOworICByZXR1cm4gKCppdCkuc2Vjb25kOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJh
dG9yW10oaW50IGluZGV4KSB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRleCA+
PSAwLAorICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCk6IGluZGV4
IGNhbm5vdCBiZSBuZWdhdGl2ZSIpOworICByZXR1cm4gKCp0aGlzKVtBcnJheUluZGV4KGluZGV4
KV07Cit9CisKK2NvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4
KSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlKCkgPT0gbnVsbFZh
bHVlIHx8IHR5cGUoKSA9PSBhcnJheVZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpvcGVy
YXRvcltdKEFycmF5SW5kZXgpY29uc3Q6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKKyAgaWYgKHR5
cGUoKSA9PSBudWxsVmFsdWUpCisgICAgcmV0dXJuIG51bGxTaW5nbGV0b24oKTsKKyAgQ1pTdHJp
bmcga2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVl
Xy5tYXBfLT5maW5kKGtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCisgICAg
cmV0dXJuIG51bGxTaW5nbGV0b24oKTsKKyAgcmV0dXJuICgqaXQpLnNlY29uZDsKK30KKworY29u
c3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3QgeworICBKU09OX0FT
U0VSVF9NRVNTQUdFKAorICAgICAgaW5kZXggPj0gMCwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6
b3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0OiBpbmRleCBjYW5ub3QgYmUgbmVnYXRpdmUiKTsK
KyAgcmV0dXJuICgqdGhpcylbQXJyYXlJbmRleChpbmRleCldOworfQorCit2b2lkIFZhbHVlOjpp
bml0QmFzaWMoVmFsdWVUeXBlIHR5cGUsIGJvb2wgYWxsb2NhdGVkKSB7CisgIHNldFR5cGUodHlw
ZSk7CisgIHNldElzQWxsb2NhdGVkKGFsbG9jYXRlZCk7CisgIGNvbW1lbnRzXyA9IENvbW1lbnRz
e307CisgIHN0YXJ0XyA9IDA7CisgIGxpbWl0XyA9IDA7Cit9CisKK3ZvaWQgVmFsdWU6OmR1cFBh
eWxvYWQoY29uc3QgVmFsdWUmIG90aGVyKSB7CisgIHNldFR5cGUob3RoZXIudHlwZSgpKTsKKyAg
c2V0SXNBbGxvY2F0ZWQoZmFsc2UpOworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIG51bGxW
YWx1ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZh
bHVlOgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICB2YWx1ZV8gPSBvdGhlci52YWx1ZV87Cisg
ICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgaWYgKG90aGVyLnZhbHVlXy5zdHJp
bmdfICYmIG90aGVyLmlzQWxsb2NhdGVkKCkpIHsKKyAgICAgIHVuc2lnbmVkIGxlbjsKKyAgICAg
IGNoYXIgY29uc3QqIHN0cjsKKyAgICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmlzQWxs
b2NhdGVkKCksIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmbGVuLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJnN0cik7CisgICAgICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKHN0ciwgbGVuKTsKKyAgICAgIHNldElzQWxsb2NhdGVkKHRydWUpOworICAg
IH0gZWxzZSB7CisgICAgICB2YWx1ZV8uc3RyaW5nXyA9IG90aGVyLnZhbHVlXy5zdHJpbmdfOwor
ICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVl
OgorICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygqb3RoZXIudmFsdWVfLm1hcF8p
OworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOwor
ICB9Cit9CisKK3ZvaWQgVmFsdWU6OnJlbGVhc2VQYXlsb2FkKCkgeworICBzd2l0Y2ggKHR5cGUo
KSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFs
dWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBicmVhazsK
KyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICBpZiAoaXNBbGxvY2F0ZWQoKSkKKyAgICAgIHJlbGVh
c2VQcmVmaXhlZFN0cmluZ1ZhbHVlKHZhbHVlXy5zdHJpbmdfKTsKKyAgICBicmVhazsKKyAgY2Fz
ZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGRlbGV0ZSB2YWx1ZV8ubWFw
XzsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsK
KyAgfQorfQorCit2b2lkIFZhbHVlOjpkdXBNZXRhKGNvbnN0IFZhbHVlJiBvdGhlcikgeworICBj
b21tZW50c18gPSBvdGhlci5jb21tZW50c187CisgIHN0YXJ0XyA9IG90aGVyLnN0YXJ0XzsKKyAg
bGltaXRfID0gb3RoZXIubGltaXRfOworfQorCisvLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5
IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorLy8gQHBy
ZSBUeXBlIG9mICcqdGhpcycgaXMgb2JqZWN0IG9yIG51bGwuCisvLyBAcGFyYW0ga2V5IGlzIG51
bGwtdGVybWluYXRlZC4KK1ZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShjb25zdCBjaGFy
KiBrZXkpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGUoKSA9PSBudWxsVmFs
dWUgfHwgdHlwZSgpID09IG9iamVjdFZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpyZXNv
bHZlUmVmZXJlbmNlKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlKCkgPT0g
bnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUpOworICBDWlN0cmluZyBh
Y3R1YWxLZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKGtleSkpLAorICAgICAg
ICAgICAgICAgICAgICAgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOyAvLyBOT1RFIQorICBhdXRv
IGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCAhPSB2
YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0gYWN0dWFsS2V5KQorICAgIHJldHVy
biAoKml0KS5zZWNvbmQ7CisKKyAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1
ZShhY3R1YWxLZXksIG51bGxTaW5nbGV0b24oKSk7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2Vy
dChpdCwgZGVmYXVsdFZhbHVlKTsKKyAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25kOworICBy
ZXR1cm4gdmFsdWU7Cit9CisKKy8vIEBwYXJhbSBrZXkgaXMgbm90IG51bGwtdGVybWluYXRlZC4K
K1ZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29u
c3QqIGVuZCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdHlwZSgpID09IG51bGxW
YWx1ZSB8fCB0eXBlKCkgPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJl
c29sdmVSZWZlcmVuY2Uoa2V5LCBlbmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOworICBpZiAo
dHlwZSgpID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKG9iamVjdFZhbHVlKTsKKyAg
Q1pTdHJpbmcgYWN0dWFsS2V5KGtleSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZCAtIGtleSks
CisgICAgICAgICAgICAgICAgICAgICBDWlN0cmluZzo6ZHVwbGljYXRlT25Db3B5KTsKKyAgYXV0
byBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1YWxLZXkpOworICBpZiAoaXQgIT0g
dmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGFjdHVhbEtleSkKKyAgICByZXR1
cm4gKCppdCkuc2Vjb25kOworCisgIE9iamVjdFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFs
dWUoYWN0dWFsS2V5LCBudWxsU2luZ2xldG9uKCkpOworICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNl
cnQoaXQsIGRlZmF1bHRWYWx1ZSk7CisgIFZhbHVlJiB2YWx1ZSA9ICgqaXQpLnNlY29uZDsKKyAg
cmV0dXJuIHZhbHVlOworfQorCitWYWx1ZSBWYWx1ZTo6Z2V0KEFycmF5SW5kZXggaW5kZXgsIGNv
bnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWUqIHZhbHVlID0g
JigoKnRoaXMpW2luZGV4XSk7CisgIHJldHVybiB2YWx1ZSA9PSAmbnVsbFNpbmdsZXRvbigpID8g
ZGVmYXVsdFZhbHVlIDogKnZhbHVlOworfQorCitib29sIFZhbHVlOjppc1ZhbGlkSW5kZXgoQXJy
YXlJbmRleCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBzaXplKCk7IH0KKworVmFsdWUg
Y29uc3QqIFZhbHVlOjpmaW5kKGNoYXIgY29uc3QqIGJlZ2luLCBjaGFyIGNvbnN0KiBlbmQpIGNv
bnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlKCkgPT0gbnVsbFZhbHVlIHx8IHR5cGUo
KSA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6
OmZpbmQoYmVnaW4sIGVuZCk6IHJlcXVpcmVzICIKKyAgICAgICAgICAgICAgICAgICAgICAib2Jq
ZWN0VmFsdWUgb3IgbnVsbFZhbHVlIik7CisgIGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQorICAg
IHJldHVybiBudWxscHRyOworICBDWlN0cmluZyBhY3R1YWxLZXkoYmVnaW4sIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihlbmQgLSBiZWdpbiksCisgICAgICAgICAgICAgICAgICAgICBDWlN0cmluZzo6
bm9EdXBsaWNhdGlvbik7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1
ZV8ubWFwXy0+ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgp
KQorICAgIHJldHVybiBudWxscHRyOworICByZXR1cm4gJigqaXQpLnNlY29uZDsKK30KK1ZhbHVl
KiBWYWx1ZTo6ZGVtYW5kKGNoYXIgY29uc3QqIGJlZ2luLCBjaGFyIGNvbnN0KiBlbmQpIHsKKyAg
SlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlKCkgPT0gbnVsbFZhbHVlIHx8IHR5cGUoKSA9PSBvYmpl
Y3RWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmRlbWFuZChi
ZWdpbiwgZW5kKTogcmVxdWlyZXMgIgorICAgICAgICAgICAgICAgICAgICAgICJvYmplY3RWYWx1
ZSBvciBudWxsVmFsdWUiKTsKKyAgcmV0dXJuICZyZXNvbHZlUmVmZXJlbmNlKGJlZ2luLCBlbmQp
OworfQorY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtleSkgY29u
c3QgeworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleSwga2V5ICsgc3RybGVuKGtleSkp
OworICBpZiAoIWZvdW5kKQorICAgIHJldHVybiBudWxsU2luZ2xldG9uKCk7CisgIHJldHVybiAq
Zm91bmQ7Cit9CitWYWx1ZSBjb25zdCYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgU3RyaW5nJiBr
ZXkpIGNvbnN0IHsKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXkuZGF0YSgpLCBrZXku
ZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKKyAgaWYgKCFmb3VuZCkKKyAgICByZXR1cm4gbnVsbFNp
bmdsZXRvbigpOworICByZXR1cm4gKmZvdW5kOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9y
W10oY29uc3QgY2hhcioga2V5KSB7CisgIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleSwga2V5
ICsgc3RybGVuKGtleSkpOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgU3Ry
aW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LmRhdGEoKSwga2V5LmRh
dGEoKSArIGtleS5sZW5ndGgoKSk7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25z
dCBTdGF0aWNTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShrZXkuY19z
dHIoKSk7CiB9CiAKLQotYm9vbAotVmFsdWU6Om9wZXJhdG9yISgpIGNvbnN0Ci17Ci0gICByZXR1
cm4gaXNOdWxsKCk7Ci19Ci0KLQotdm9pZCAKLVZhbHVlOjpjbGVhcigpCi17Ci0gICBKU09OX0FT
U0VSVCggdHlwZV8gPT0gbnVsbFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSAgfHwgdHlw
ZV8gPT0gb2JqZWN0VmFsdWUgKTsKLQotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotI2lmbmRl
ZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNh
c2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFwXy0+Y2xlYXIoKTsKLSAgICAgIGJyZWFr
OwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHZhbHVlXy5hcnJheV8tPmNsZWFy
KCk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB2YWx1ZV8ubWFw
Xy0+Y2xlYXIoKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJl
YWs7Ci0gICB9Ci19Ci0KLXZvaWQgCi1WYWx1ZTo6cmVzaXplKCBBcnJheUluZGV4IG5ld1NpemUg
KQotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IGFy
cmF5VmFsdWUgKTsKLSAgIGlmICggdHlwZV8gPT0gbnVsbFZhbHVlICkKLSAgICAgICp0aGlzID0g
VmFsdWUoIGFycmF5VmFsdWUgKTsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Ci0gICBpZiAoIG5ld1NpemUgPT0gMCAp
Ci0gICAgICBjbGVhcigpOwotICAgZWxzZSBpZiAoIG5ld1NpemUgPiBvbGRTaXplICkKLSAgICAg
ICgqdGhpcylbIG5ld1NpemUgLSAxIF07Ci0gICBlbHNlCi0gICB7Ci0gICAgICBmb3IgKCBBcnJh
eUluZGV4IGluZGV4ID0gbmV3U2l6ZTsgaW5kZXggPCBvbGRTaXplOyArK2luZGV4ICkKLSAgICAg
IHsKLSAgICAgICAgIHZhbHVlXy5tYXBfLT5lcmFzZSggaW5kZXggKTsKLSAgICAgIH0KLSAgICAg
IGFzc2VydCggc2l6ZSgpID09IG5ld1NpemUgKTsKLSAgIH0KLSNlbHNlCi0gICB2YWx1ZV8uYXJy
YXlfLT5yZXNpemUoIG5ld1NpemUgKTsKLSNlbmRpZgotfQotCi0KLVZhbHVlICYKLVZhbHVlOjpv
cGVyYXRvcltdKCBBcnJheUluZGV4IGluZGV4ICkKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9
PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09
IG51bGxWYWx1ZSApCi0gICAgICAqdGhpcyA9IFZhbHVlKCBhcnJheVZhbHVlICk7Ci0jaWZuZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgQ1pTdHJpbmcga2V5KCBpbmRleCApOwot
ICAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZCgg
a2V5ICk7Ci0gICBpZiAoIGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAgJiYgICgqaXQpLmZpcnN0
ID09IGtleSApCi0gICAgICByZXR1cm4gKCppdCkuc2Vjb25kOwotCi0gICBPYmplY3RWYWx1ZXM6
OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKCBrZXksIG51bGwgKTsKLSAgIGl0ID0gdmFsdWVfLm1h
cF8tPmluc2VydCggaXQsIGRlZmF1bHRWYWx1ZSApOwotICAgcmV0dXJuICgqaXQpLnNlY29uZDsK
LSNlbHNlCi0gICByZXR1cm4gdmFsdWVfLmFycmF5Xy0+cmVzb2x2ZVJlZmVyZW5jZSggaW5kZXgg
KTsKLSNlbmRpZgorI2lmZGVmIEpTT05fVVNFX0NQUFRMCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9y
W10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZl
cmVuY2Uoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7CiB9Ci0KLQotVmFsdWUgJgotVmFs
dWU6Om9wZXJhdG9yW10oIGludCBpbmRleCApCi17Ci0gICBKU09OX0FTU0VSVCggaW5kZXggPj0g
MCApOwotICAgcmV0dXJuICgqdGhpcylbIEFycmF5SW5kZXgoaW5kZXgpIF07CitWYWx1ZSBjb25z
dCYgVmFsdWU6Om9wZXJhdG9yW10oQ3BwVEw6OkNvbnN0U3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0
IHsKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXkuY19zdHIoKSwga2V5LmVuZF9jX3N0
cigpKTsKKyAgaWYgKCFmb3VuZCkKKyAgICByZXR1cm4gbnVsbFNpbmdsZXRvbigpOworICByZXR1
cm4gKmZvdW5kOwogfQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpvcGVyYXRvcltdKCBBcnJh
eUluZGV4IGluZGV4ICkgY29uc3QKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFs
dWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1
ZSApCi0gICAgICByZXR1cm4gbnVsbDsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0gICBDWlN0cmluZyBrZXkoIGluZGV4ICk7Ci0gICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoIGtleSApOwotICAgaWYgKCBpdCA9PSB2YWx1
ZV8ubWFwXy0+ZW5kKCkgKQotICAgICAgcmV0dXJuIG51bGw7Ci0gICByZXR1cm4gKCppdCkuc2Vj
b25kOwotI2Vsc2UKLSAgIFZhbHVlICp2YWx1ZSA9IHZhbHVlXy5hcnJheV8tPmZpbmQoIGluZGV4
ICk7Ci0gICByZXR1cm4gdmFsdWUgPyAqdmFsdWUgOiBudWxsOwogI2VuZGlmCi19Ci0KIAotY29u
c3QgVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGludCBpbmRleCApIGNvbnN0Ci17Ci0gICBK
U09OX0FTU0VSVCggaW5kZXggPj0gMCApOwotICAgcmV0dXJuICgqdGhpcylbIEFycmF5SW5kZXgo
aW5kZXgpIF07CitWYWx1ZSYgVmFsdWU6OmFwcGVuZChjb25zdCBWYWx1ZSYgdmFsdWUpIHsgcmV0
dXJuICgqdGhpcylbc2l6ZSgpXSA9IHZhbHVlOyB9CisKK1ZhbHVlJiBWYWx1ZTo6YXBwZW5kKFZh
bHVlJiYgdmFsdWUpIHsKKyAgcmV0dXJuICgqdGhpcylbc2l6ZSgpXSA9IHN0ZDo6bW92ZSh2YWx1
ZSk7Cit9CisKK1ZhbHVlIFZhbHVlOjpnZXQoY2hhciBjb25zdCogYmVnaW4sCisgICAgICAgICAg
ICAgICAgIGNoYXIgY29uc3QqIGVuZCwKKyAgICAgICAgICAgICAgICAgVmFsdWUgY29uc3QmIGRl
ZmF1bHRWYWx1ZSkgY29uc3QgeworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGJlZ2luLCBl
bmQpOworICByZXR1cm4gIWZvdW5kID8gZGVmYXVsdFZhbHVlIDogKmZvdW5kOworfQorVmFsdWUg
VmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXksIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNv
bnN0IHsKKyAgcmV0dXJuIGdldChrZXksIGtleSArIHN0cmxlbihrZXkpLCBkZWZhdWx0VmFsdWUp
OworfQorVmFsdWUgVmFsdWU6OmdldChTdHJpbmcgY29uc3QmIGtleSwgVmFsdWUgY29uc3QmIGRl
ZmF1bHRWYWx1ZSkgY29uc3QgeworICByZXR1cm4gZ2V0KGtleS5kYXRhKCksIGtleS5kYXRhKCkg
KyBrZXkubGVuZ3RoKCksIGRlZmF1bHRWYWx1ZSk7Cit9CisKK2Jvb2wgVmFsdWU6OnJlbW92ZU1l
bWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kLCBWYWx1ZSogcmVtb3ZlZCkg
eworICBpZiAodHlwZSgpICE9IG9iamVjdFZhbHVlKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9
CisgIENaU3RyaW5nIGFjdHVhbEtleShiZWdpbiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZCAt
IGJlZ2luKSwKKyAgICAgICAgICAgICAgICAgICAgIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsK
KyAgYXV0byBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCA9PSB2
YWx1ZV8ubWFwXy0+ZW5kKCkpCisgICAgcmV0dXJuIGZhbHNlOworICBpZiAocmVtb3ZlZCkKKyAg
ICAqcmVtb3ZlZCA9IHN0ZDo6bW92ZShpdC0+c2Vjb25kKTsKKyAgdmFsdWVfLm1hcF8tPmVyYXNl
KGl0KTsKKyAgcmV0dXJuIHRydWU7Cit9Citib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3Qg
Y2hhcioga2V5LCBWYWx1ZSogcmVtb3ZlZCkgeworICByZXR1cm4gcmVtb3ZlTWVtYmVyKGtleSwg
a2V5ICsgc3RybGVuKGtleSksIHJlbW92ZWQpOworfQorYm9vbCBWYWx1ZTo6cmVtb3ZlTWVtYmVy
KFN0cmluZyBjb25zdCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkgeworICByZXR1cm4gcmVtb3ZlTWVt
YmVyKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCksIHJlbW92ZWQpOworfQor
dm9pZCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSkgeworICBKU09OX0FTU0VS
VF9NRVNTQUdFKHR5cGUoKSA9PSBudWxsVmFsdWUgfHwgdHlwZSgpID09IG9iamVjdFZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVtb3ZlTWVtYmVyKCk6IHJl
cXVpcmVzIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQorICAgIHJl
dHVybjsKKworICBDWlN0cmluZyBhY3R1YWxLZXkoa2V5LCB1bnNpZ25lZChzdHJsZW4oa2V5KSks
IENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKKyAgdmFsdWVfLm1hcF8tPmVyYXNlKGFjdHVhbEtl
eSk7Cit9Cit2b2lkIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgU3RyaW5nJiBrZXkpIHsgcmVt
b3ZlTWVtYmVyKGtleS5jX3N0cigpKTsgfQorCitib29sIFZhbHVlOjpyZW1vdmVJbmRleChBcnJh
eUluZGV4IGluZGV4LCBWYWx1ZSogcmVtb3ZlZCkgeworICBpZiAodHlwZSgpICE9IGFycmF5VmFs
dWUpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ1pTdHJpbmcga2V5KGluZGV4KTsKKyAg
YXV0byBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFw
Xy0+ZW5kKCkpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKHJlbW92ZWQpCisgICAg
KnJlbW92ZWQgPSBpdC0+c2Vjb25kOworICBBcnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7Cisg
IC8vIHNoaWZ0IGxlZnQgYWxsIGl0ZW1zIGxlZnQsIGludG8gdGhlIHBsYWNlIG9mIHRoZSAicmVt
b3ZlZCIKKyAgZm9yIChBcnJheUluZGV4IGkgPSBpbmRleDsgaSA8IChvbGRTaXplIC0gMSk7ICsr
aSkgeworICAgIENaU3RyaW5nIGtlZXkoaSk7CisgICAgKCp2YWx1ZV8ubWFwXylba2VleV0gPSAo
KnRoaXMpW2kgKyAxXTsKKyAgfQorICAvLyBlcmFzZSB0aGUgbGFzdCBvbmUgKCJsZWZ0b3ZlciIp
CisgIENaU3RyaW5nIGtleUxhc3Qob2xkU2l6ZSAtIDEpOworICBhdXRvIGl0TGFzdCA9IHZhbHVl
Xy5tYXBfLT5maW5kKGtleUxhc3QpOworICB2YWx1ZV8ubWFwXy0+ZXJhc2UoaXRMYXN0KTsKKyAg
cmV0dXJuIHRydWU7CiB9CiAKLQotVmFsdWUgJgotVmFsdWU6Om9wZXJhdG9yW10oIGNvbnN0IGNo
YXIgKmtleSApCi17Ci0gICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZSgga2V5LCBmYWxzZSApOwot
fQotCi0KLVZhbHVlICYKLVZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKCBjb25zdCBjaGFyICprZXks
IAotICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTdGF0aWMgKQotewotICAgSlNPTl9B
U1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IG9iamVjdFZhbHVlICk7Ci0g
ICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSApCi0gICAgICAqdGhpcyA9IFZhbHVlKCBvYmplY3RW
YWx1ZSApOwotI2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIENaU3RyaW5n
IGFjdHVhbEtleSgga2V5LCBpc1N0YXRpYyA/IENaU3RyaW5nOjpub0R1cGxpY2F0aW9uIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ1pTdHJpbmc6OmR1cGxpY2F0ZU9u
Q29weSApOwotICAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dl
cl9ib3VuZCggYWN0dWFsS2V5ICk7Ci0gICBpZiAoIGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAg
JiYgICgqaXQpLmZpcnN0ID09IGFjdHVhbEtleSApCi0gICAgICByZXR1cm4gKCppdCkuc2Vjb25k
OwotCi0gICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKCBhY3R1YWxLZXks
IG51bGwgKTsKLSAgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydCggaXQsIGRlZmF1bHRWYWx1ZSAp
OwotICAgVmFsdWUgJnZhbHVlID0gKCppdCkuc2Vjb25kOwotICAgcmV0dXJuIHZhbHVlOwotI2Vs
c2UKLSAgIHJldHVybiB2YWx1ZV8ubWFwXy0+cmVzb2x2ZVJlZmVyZW5jZSgga2V5LCBpc1N0YXRp
YyApOwotI2VuZGlmCi19Ci0KLQotVmFsdWUgCi1WYWx1ZTo6Z2V0KCBBcnJheUluZGV4IGluZGV4
LCAKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdAotewotICAg
Y29uc3QgVmFsdWUgKnZhbHVlID0gJigoKnRoaXMpW2luZGV4XSk7Ci0gICByZXR1cm4gdmFsdWUg
PT0gJm51bGwgPyBkZWZhdWx0VmFsdWUgOiAqdmFsdWU7Ci19Ci0KLQotYm9vbCAKLVZhbHVlOjpp
c1ZhbGlkSW5kZXgoIEFycmF5SW5kZXggaW5kZXggKSBjb25zdAotewotICAgcmV0dXJuIGluZGV4
IDwgc2l6ZSgpOworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitWYWx1ZSBWYWx1ZTo6Z2V0KGNvbnN0
IENwcFRMOjpDb25zdFN0cmluZyYga2V5LAorICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSYg
ZGVmYXVsdFZhbHVlKSBjb25zdCB7CisgIHJldHVybiBnZXQoa2V5LmNfc3RyKCksIGtleS5lbmRf
Y19zdHIoKSwgZGVmYXVsdFZhbHVlKTsKIH0KLQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpv
cGVyYXRvcltdKCBjb25zdCBjaGFyICprZXkgKSBjb25zdAotewotICAgSlNPTl9BU1NFUlQoIHR5
cGVfID09IG51bGxWYWx1ZSAgfHwgIHR5cGVfID09IG9iamVjdFZhbHVlICk7Ci0gICBpZiAoIHR5
cGVfID09IG51bGxWYWx1ZSApCi0gICAgICByZXR1cm4gbnVsbDsKLSNpZm5kZWYgSlNPTl9WQUxV
RV9VU0VfSU5URVJOQUxfTUFQCi0gICBDWlN0cmluZyBhY3R1YWxLZXkoIGtleSwgQ1pTdHJpbmc6
Om5vRHVwbGljYXRpb24gKTsKLSAgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2
YWx1ZV8ubWFwXy0+ZmluZCggYWN0dWFsS2V5ICk7Ci0gICBpZiAoIGl0ID09IHZhbHVlXy5tYXBf
LT5lbmQoKSApCi0gICAgICByZXR1cm4gbnVsbDsKLSAgIHJldHVybiAoKml0KS5zZWNvbmQ7Ci0j
ZWxzZQotICAgY29uc3QgVmFsdWUgKnZhbHVlID0gdmFsdWVfLm1hcF8tPmZpbmQoIGtleSApOwot
ICAgcmV0dXJuIHZhbHVlID8gKnZhbHVlIDogbnVsbDsKICNlbmRpZgotfQogCi0KLVZhbHVlICYK
LVZhbHVlOjpvcGVyYXRvcltdKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLXsKLSAgIHJldHVy
biAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOwotfQotCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpv
cGVyYXRvcltdKCBjb25zdCBzdGQ6OnN0cmluZyAma2V5ICkgY29uc3QKLXsKLSAgIHJldHVybiAo
KnRoaXMpWyBrZXkuY19zdHIoKSBdOworYm9vbCBWYWx1ZTo6aXNNZW1iZXIoY2hhciBjb25zdCog
YmVnaW4sIGNoYXIgY29uc3QqIGVuZCkgY29uc3QgeworICBWYWx1ZSBjb25zdCogdmFsdWUgPSBm
aW5kKGJlZ2luLCBlbmQpOworICByZXR1cm4gbnVsbHB0ciAhPSB2YWx1ZTsKIH0KLQotVmFsdWUg
JgotVmFsdWU6Om9wZXJhdG9yW10oIGNvbnN0IFN0YXRpY1N0cmluZyAma2V5ICkKLXsKLSAgIHJl
dHVybiByZXNvbHZlUmVmZXJlbmNlKCBrZXksIHRydWUgKTsKK2Jvb2wgVmFsdWU6OmlzTWVtYmVy
KGNoYXIgY29uc3QqIGtleSkgY29uc3QgeworICByZXR1cm4gaXNNZW1iZXIoa2V5LCBrZXkgKyBz
dHJsZW4oa2V5KSk7CiB9Ci0KLQotIyBpZmRlZiBKU09OX1VTRV9DUFBUTAotVmFsdWUgJgotVmFs
dWU6Om9wZXJhdG9yW10oIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5ICkKLXsKLSAgIHJl
dHVybiAoKnRoaXMpWyBrZXkuY19zdHIoKSBdOworYm9vbCBWYWx1ZTo6aXNNZW1iZXIoU3RyaW5n
IGNvbnN0JiBrZXkpIGNvbnN0IHsKKyAgcmV0dXJuIGlzTWVtYmVyKGtleS5kYXRhKCksIGtleS5k
YXRhKCkgKyBrZXkubGVuZ3RoKCkpOwogfQogCi0KLWNvbnN0IFZhbHVlICYKLVZhbHVlOjpvcGVy
YXRvcltdKCBjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcgJmtleSApIGNvbnN0Ci17Ci0gICByZXR1
cm4gKCp0aGlzKVsga2V5LmNfc3RyKCkgXTsKLX0KLSMgZW5kaWYKLQotCi1WYWx1ZSAmCi1WYWx1
ZTo6YXBwZW5kKCBjb25zdCBWYWx1ZSAmdmFsdWUgKQotewotICAgcmV0dXJuICgqdGhpcylbc2l6
ZSgpXSA9IHZhbHVlOwotfQotCi0KLVZhbHVlIAotVmFsdWU6OmdldCggY29uc3QgY2hhciAqa2V5
LCAKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZhdWx0VmFsdWUgKSBjb25zdAotewotICAg
Y29uc3QgVmFsdWUgKnZhbHVlID0gJigoKnRoaXMpW2tleV0pOwotICAgcmV0dXJuIHZhbHVlID09
ICZudWxsID8gZGVmYXVsdFZhbHVlIDogKnZhbHVlOwotfQotCi0KLVZhbHVlIAotVmFsdWU6Omdl
dCggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSwKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZkZWZh
dWx0VmFsdWUgKSBjb25zdAotewotICAgcmV0dXJuIGdldCgga2V5LmNfc3RyKCksIGRlZmF1bHRW
YWx1ZSApOwotfQotCi1WYWx1ZQotVmFsdWU6OnJlbW92ZU1lbWJlciggY29uc3QgY2hhcioga2V5
ICkKLXsKLSAgIEpTT05fQVNTRVJUKCB0eXBlXyA9PSBudWxsVmFsdWUgIHx8ICB0eXBlXyA9PSBv
YmplY3RWYWx1ZSApOwotICAgaWYgKCB0eXBlXyA9PSBudWxsVmFsdWUgKQotICAgICAgcmV0dXJu
IG51bGw7Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgQ1pTdHJpbmcg
YWN0dWFsS2V5KCBrZXksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uICk7Ci0gICBPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoIGFjdHVhbEtleSApOwotICAgaWYg
KCBpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkgKQotICAgICAgcmV0dXJuIG51bGw7Ci0gICBWYWx1
ZSBvbGQoaXQtPnNlY29uZCk7Ci0gICB2YWx1ZV8ubWFwXy0+ZXJhc2UoaXQpOwotICAgcmV0dXJu
IG9sZDsKLSNlbHNlCi0gICBWYWx1ZSAqdmFsdWUgPSB2YWx1ZV8ubWFwXy0+ZmluZCgga2V5ICk7
Ci0gICBpZiAodmFsdWUpewotICAgICAgVmFsdWUgb2xkKCp2YWx1ZSk7Ci0gICAgICB2YWx1ZV8u
bWFwXy5yZW1vdmUoIGtleSApOwotICAgICAgcmV0dXJuIG9sZDsKLSAgIH0gZWxzZSB7Ci0gICAg
ICByZXR1cm4gbnVsbDsKLSAgIH0KLSNlbmRpZgotfQotCi1WYWx1ZQotVmFsdWU6OnJlbW92ZU1l
bWJlciggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApCi17Ci0gICByZXR1cm4gcmVtb3ZlTWVtYmVy
KCBrZXkuY19zdHIoKSApOwotfQotCi0jIGlmZGVmIEpTT05fVVNFX0NQUFRMCi1WYWx1ZSAKLVZh
bHVlOjpnZXQoIGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyAma2V5LAotICAgICAgICAgICAgY29u
c3QgVmFsdWUgJmRlZmF1bHRWYWx1ZSApIGNvbnN0Ci17Ci0gICByZXR1cm4gZ2V0KCBrZXkuY19z
dHIoKSwgZGVmYXVsdFZhbHVlICk7Ci19Ci0jIGVuZGlmCi0KLWJvb2wgCi1WYWx1ZTo6aXNNZW1i
ZXIoIGNvbnN0IGNoYXIgKmtleSApIGNvbnN0Ci17Ci0gICBjb25zdCBWYWx1ZSAqdmFsdWUgPSAm
KCgqdGhpcylba2V5XSk7Ci0gICByZXR1cm4gdmFsdWUgIT0gJm51bGw7Ci19Ci0KLQotYm9vbCAK
LVZhbHVlOjppc01lbWJlciggY29uc3Qgc3RkOjpzdHJpbmcgJmtleSApIGNvbnN0Ci17Ci0gICBy
ZXR1cm4gaXNNZW1iZXIoIGtleS5jX3N0cigpICk7Ci19Ci0KLQotIyBpZmRlZiBKU09OX1VTRV9D
UFBUTAotYm9vbCAKLVZhbHVlOjppc01lbWJlciggY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nICZr
ZXkgKSBjb25zdAotewotICAgcmV0dXJuIGlzTWVtYmVyKCBrZXkuY19zdHIoKSApOworI2lmZGVm
IEpTT05fVVNFX0NQUFRMCitib29sIFZhbHVlOjppc01lbWJlcihjb25zdCBDcHBUTDo6Q29uc3RT
dHJpbmcmIGtleSkgY29uc3QgeworICByZXR1cm4gaXNNZW1iZXIoa2V5LmNfc3RyKCksIGtleS5l
bmRfY19zdHIoKSk7CiB9CiAjZW5kaWYKIAotVmFsdWU6Ok1lbWJlcnMgCi1WYWx1ZTo6Z2V0TWVt
YmVyTmFtZXMoKSBjb25zdAotewotICAgSlNPTl9BU1NFUlQoIHR5cGVfID09IG51bGxWYWx1ZSAg
fHwgIHR5cGVfID09IG9iamVjdFZhbHVlICk7Ci0gICBpZiAoIHR5cGVfID09IG51bGxWYWx1ZSAp
Ci0gICAgICAgcmV0dXJuIFZhbHVlOjpNZW1iZXJzKCk7Ci0gICBNZW1iZXJzIG1lbWJlcnM7Ci0g
ICBtZW1iZXJzLnJlc2VydmUoIHZhbHVlXy5tYXBfLT5zaXplKCkgKTsKLSNpZm5kZWYgSlNPTl9W
QUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gdmFsdWVfLm1hcF8tPmJlZ2luKCk7Ci0gICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9y
IGl0RW5kID0gdmFsdWVfLm1hcF8tPmVuZCgpOwotICAgZm9yICggOyBpdCAhPSBpdEVuZDsgKytp
dCApCi0gICAgICBtZW1iZXJzLnB1c2hfYmFjayggc3RkOjpzdHJpbmcoICgqaXQpLmZpcnN0LmNf
c3RyKCkgKSApOwotI2Vsc2UKLSAgIFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgaXQ7
Ci0gICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0RW5kOwotICAgdmFsdWVfLm1h
cF8tPm1ha2VCZWdpbkl0ZXJhdG9yKCBpdCApOwotICAgdmFsdWVfLm1hcF8tPm1ha2VFbmRJdGVy
YXRvciggaXRFbmQgKTsKLSAgIGZvciAoIDsgIVZhbHVlSW50ZXJuYWxNYXA6OmVxdWFscyggaXQs
IGl0RW5kICk7IFZhbHVlSW50ZXJuYWxNYXA6OmluY3JlbWVudChpdCkgKQotICAgICAgbWVtYmVy
cy5wdXNoX2JhY2soIHN0ZDo6c3RyaW5nKCBWYWx1ZUludGVybmFsTWFwOjprZXkoIGl0ICkgKSAp
OwotI2VuZGlmCi0gICByZXR1cm4gbWVtYmVyczsKK1ZhbHVlOjpNZW1iZXJzIFZhbHVlOjpnZXRN
ZW1iZXJOYW1lcygpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGUo
KSA9PSBudWxsVmFsdWUgfHwgdHlwZSgpID09IG9iamVjdFZhbHVlLAorICAgICAgImluIEpzb246
OlZhbHVlOjpnZXRNZW1iZXJOYW1lcygpLCB2YWx1ZSBtdXN0IGJlIG9iamVjdFZhbHVlIik7Cisg
IGlmICh0eXBlKCkgPT0gbnVsbFZhbHVlKQorICAgIHJldHVybiBWYWx1ZTo6TWVtYmVycygpOwor
ICBNZW1iZXJzIG1lbWJlcnM7CisgIG1lbWJlcnMucmVzZXJ2ZSh2YWx1ZV8ubWFwXy0+c2l6ZSgp
KTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5iZWdp
bigpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0RW5kID0gdmFsdWVfLm1hcF8t
PmVuZCgpOworICBmb3IgKDsgaXQgIT0gaXRFbmQ7ICsraXQpIHsKKyAgICBtZW1iZXJzLnB1c2hf
YmFjayhTdHJpbmcoKCppdCkuZmlyc3QuZGF0YSgpLCAoKml0KS5maXJzdC5sZW5ndGgoKSkpOwor
ICB9CisgIHJldHVybiBtZW1iZXJzOwogfQogLy8KIC8vIyBpZmRlZiBKU09OX1VTRV9DUFBUTAot
Ly9FbnVtTWVtYmVyTmFtZXMKLS8vVmFsdWU6OmVudW1NZW1iZXJOYW1lcygpIGNvbnN0CisvLyBF
bnVtTWVtYmVyTmFtZXMKKy8vIFZhbHVlOjplbnVtTWVtYmVyTmFtZXMoKSBjb25zdAogLy97Ci0v
LyAgIGlmICggdHlwZV8gPT0gb2JqZWN0VmFsdWUgKQorLy8gICBpZiAoIHR5cGUoKSA9PSBvYmpl
Y3RWYWx1ZSApCiAvLyAgIHsKIC8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnkoICBDcHBU
TDo6RW51bTo6dHJhbnNmb3JtKAogLy8gICAgICAgICBDcHBUTDo6RW51bTo6a2V5cyggKih2YWx1
ZV8ubWFwXyksIENwcFRMOjpUeXBlPGNvbnN0IENaU3RyaW5nICY+KCkgKSwKQEAgLTEzNTUsMTEg
KzEzMDQsMTEgQEAgVmFsdWU6OmdldE1lbWJlck5hbWVzKCkgY29uc3QKIC8vfQogLy8KIC8vCi0v
L0VudW1WYWx1ZXMgCi0vL1ZhbHVlOjplbnVtVmFsdWVzKCkgY29uc3QKKy8vIEVudW1WYWx1ZXMK
Ky8vIFZhbHVlOjplbnVtVmFsdWVzKCkgY29uc3QKIC8vewotLy8gICBpZiAoIHR5cGVfID09IG9i
amVjdFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSApCi0vLyAgICAgIHJldHVybiBDcHBU
TDo6RW51bTo6YW55VmFsdWVzKCAqKHZhbHVlXy5tYXBfKSwgCisvLyAgIGlmICggdHlwZSgpID09
IG9iamVjdFZhbHVlICB8fCAgdHlwZSgpID09IGFycmF5VmFsdWUgKQorLy8gICAgICByZXR1cm4g
Q3BwVEw6OkVudW06OmFueVZhbHVlcyggKih2YWx1ZV8ubWFwXyksCiAvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDcHBUTDo6VHlwZTxjb25zdCBWYWx1ZSAmPigpICk7CiAv
LyAgIHJldHVybiBFbnVtVmFsdWVzKCk7CiAvL30KQEAgLTEzNzEsNTUwICsxMzIwLDM4OCBAQCBz
dGF0aWMgYm9vbCBJc0ludGVncmFsKGRvdWJsZSBkKSB7CiAgIHJldHVybiBtb2RmKGQsICZpbnRl
Z3JhbF9wYXJ0KSA9PSAwLjA7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzTnVsbCgpIGNvbnN0IHsgcmV0
dXJuIHR5cGUoKSA9PSBudWxsVmFsdWU7IH0KIAotYm9vbAotVmFsdWU6OmlzTnVsbCgpIGNvbnN0
Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gbnVsbFZhbHVlOwotfQotCi0KLWJvb2wgCi1WYWx1ZTo6
aXNCb29sKCkgY29uc3QKLXsKLSAgIHJldHVybiB0eXBlXyA9PSBib29sZWFuVmFsdWU7Ci19Ci0K
LQotYm9vbCAKLVZhbHVlOjppc0ludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0g
ICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IG1pbklu
dCAgJiYgIHZhbHVlXy5pbnRfIDw9IG1heEludDsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAg
cmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50KG1heEludCk7Ci0gICBjYXNlIHJlYWxWYWx1ZToK
LSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYmCi0gICAgICAgICAgICAgdmFs
dWVfLnJlYWxfIDw9IG1heEludCAmJgotICAgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJl
YWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAgIH0KLSAgIHJldHVybiBmYWxzZTsK
LX0KLQotCi1ib29sIAotVmFsdWU6OmlzVUludCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBl
XyApCi0gICB7Ci0gICBjYXNlIGludFZhbHVlOgotICAgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49
IDAgJiYgTGFyZ2VzdFVJbnQodmFsdWVfLmludF8pIDw9IExhcmdlc3RVSW50KG1heFVJbnQpOwot
ICAgY2FzZSB1aW50VmFsdWU6Ci0gICAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IG1heFVJbnQ7
Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJgot
ICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8PSBtYXhVSW50ICYmCi0gICAgICAgICAgICAgSXNJ
bnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQot
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIAotVmFsdWU6OmlzSW50NjQoKSBjb25zdAotewot
IyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQotICAgc3dpdGNoICggdHlwZV8gKQotICAgewot
ICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgcmV0dXJuIHRydWU7Ci0gICBjYXNlIHVpbnRWYWx1ZToK
LSAgICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludDY0KG1heEludDY0KTsKLSAgIGNhc2Ug
cmVhbFZhbHVlOgotICAgICAgLy8gTm90ZSB0aGF0IG1heEludDY0ICg9IDJeNjMgLSAxKSBpcyBu
b3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKLSAgICAgIC8vIGRvdWJsZSwgc28gZG91Ymxl
KG1heEludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42My4gVGhlcmVmb3JlIHdlCi0gICAg
ICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0
LgotICAgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBkb3VibGUobWluSW50NjQpICYmCi0gICAg
ICAgICAgICAgdmFsdWVfLnJlYWxfIDwgZG91YmxlKG1heEludDY0KSAmJgotICAgICAgICAgICAg
IElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKLSAgIGRlZmF1bHQ6Ci0gICAgICBicmVhazsKLSAg
IH0KLSMgZW5kaWYgIC8vIEpTT05fSEFTX0lOVDY0Ci0gICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJv
b2wgCi1WYWx1ZTo6aXNVSW50NjQoKSBjb25zdAotewotIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lO
VDY0KQotICAgc3dpdGNoICggdHlwZV8gKQotICAgewotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAg
cmV0dXJuIHZhbHVlXy5pbnRfID49IDA7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAgIHJldHVy
biB0cnVlOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICAvLyBOb3RlIHRoYXQgbWF4VUludDY0
ICg9IDJeNjQgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKLSAgICAgIC8v
IGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjQu
IFRoZXJlZm9yZSB3ZQotICAgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkg
bGVzcyB0aGFuIHRoZSBsaW1pdC4KLSAgICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJgot
ICAgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IG1heFVJbnQ2NEFzRG91YmxlICYmCi0gICAgICAg
ICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOwotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFr
OwotICAgfQotIyBlbmRpZiAgLy8gSlNPTl9IQVNfSU5UNjQKLSAgIHJldHVybiBmYWxzZTsKLX0K
LQotCi1ib29sIAotVmFsdWU6OmlzSW50ZWdyYWwoKSBjb25zdAoteworYm9vbCBWYWx1ZTo6aXNC
b29sKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IGJvb2xlYW5WYWx1ZTsgfQorCitib29sIFZh
bHVlOjppc0ludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBpbnRWYWx1
ZToKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICAgIHJldHVybiB2YWx1ZV8uaW50XyA+
PSBtaW5JbnQgJiYgdmFsdWVfLmludF8gPD0gbWF4SW50OworI2Vsc2UKKyAgICByZXR1cm4gdHJ1
ZTsKKyNlbmRpZgorICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9
IFVJbnQobWF4SW50KTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5yZWFs
XyA+PSBtaW5JbnQgJiYgdmFsdWVfLnJlYWxfIDw9IG1heEludCAmJgorICAgICAgICAgICBJc0lu
dGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjppc1VJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAo
dHlwZSgpKSB7CisgIGNhc2UgaW50VmFsdWU6CiAjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkK
LSAgcmV0dXJuIGlzSW50NjQoKSB8fCBpc1VJbnQ2NCgpOworICAgIHJldHVybiB2YWx1ZV8uaW50
XyA+PSAwICYmIExhcmdlc3RVSW50KHZhbHVlXy5pbnRfKSA8PSBMYXJnZXN0VUludChtYXhVSW50
KTsKICNlbHNlCi0gIHJldHVybiBpc0ludCgpIHx8IGlzVUludCgpOworICAgIHJldHVybiB2YWx1
ZV8uaW50XyA+PSAwOwogI2VuZGlmCisgIGNhc2UgdWludFZhbHVlOgorI2lmIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBtYXhVSW50OworI2Vsc2UK
KyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4g
dmFsdWVfLnJlYWxfID49IDAgJiYgdmFsdWVfLnJlYWxfIDw9IG1heFVJbnQgJiYKKyAgICAgICAg
ICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9
CisgIHJldHVybiBmYWxzZTsKIH0KIAotCi1ib29sIAotVmFsdWU6OmlzRG91YmxlKCkgY29uc3QK
LXsKLSAgIHJldHVybiB0eXBlXyA9PSByZWFsVmFsdWUgfHwgaXNJbnRlZ3JhbCgpOworYm9vbCBW
YWx1ZTo6aXNJbnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBz
d2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB0cnVlOworICBj
YXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQ2NChtYXhJbnQ2
NCk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIC8vIE5vdGUgdGhhdCBtYXhJbnQ2NCAoPSAyXjYz
IC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCisgICAgLy8gZG91YmxlLCBz
byBkb3VibGUobWF4SW50NjQpIHdpbGwgYmUgcm91bmRlZCB1cCB0byAyXjYzLiBUaGVyZWZvcmUg
d2UKKyAgICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhl
IGxpbWl0LgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gZG91YmxlKG1pbkludDY0KSAmJgor
ICAgICAgICAgICB2YWx1ZV8ucmVhbF8gPCBkb3VibGUobWF4SW50NjQpICYmIElzSW50ZWdyYWwo
dmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorI2VuZGlmIC8vIEpT
T05fSEFTX0lOVDY0CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNVSW50NjQo
KSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgc3dpdGNoICh0eXBlKCkp
IHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMDsKKyAgY2Fz
ZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIC8v
IE5vdGUgdGhhdCBtYXhVSW50NjQgKD0gMl42NCAtIDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2Vu
dGFibGUgYXMgYQorICAgIC8vIGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2lsbCBiZSBy
b3VuZGVkIHVwIHRvIDJeNjQuIFRoZXJlZm9yZSB3ZQorICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVl
IHRvIGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgbGltaXQuCisgICAgcmV0dXJuIHZhbHVlXy5y
ZWFsXyA+PSAwICYmIHZhbHVlXy5yZWFsXyA8IG1heFVJbnQ2NEFzRG91YmxlICYmCisgICAgICAg
ICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAg
fQorI2VuZGlmIC8vIEpTT05fSEFTX0lOVDY0CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBW
YWx1ZTo6aXNJbnRlZ3JhbCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlKCkpIHsKKyAgY2FzZSBp
bnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNhc2UgcmVh
bFZhbHVlOgorI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgICAgLy8gTm90ZSB0aGF0IG1h
eFVJbnQ2NCAoPSAyXjY0IC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCisg
ICAgLy8gZG91YmxlLCBzbyBkb3VibGUobWF4VUludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8g
Ml42NC4gVGhlcmVmb3JlIHdlCisgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0
bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IGRvdWJs
ZShtaW5JbnQ2NCkgJiYKKyAgICAgICAgICAgdmFsdWVfLnJlYWxfIDwgbWF4VUludDY0QXNEb3Vi
bGUgJiYgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworI2Vsc2UKKyAgICByZXR1cm4gdmFsdWVf
LnJlYWxfID49IG1pbkludCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAmJgorICAgICAgICAg
ICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisjZW5kaWYgLy8gSlNPTl9IQVNfSU5UNjQKKyAg
ZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gZmFsc2U7CiB9CiAKLQotYm9vbCAK
LVZhbHVlOjppc051bWVyaWMoKSBjb25zdAotewotICAgcmV0dXJuIGlzSW50ZWdyYWwoKSB8fCBp
c0RvdWJsZSgpOworYm9vbCBWYWx1ZTo6aXNEb3VibGUoKSBjb25zdCB7CisgIHJldHVybiB0eXBl
KCkgPT0gaW50VmFsdWUgfHwgdHlwZSgpID09IHVpbnRWYWx1ZSB8fCB0eXBlKCkgPT0gcmVhbFZh
bHVlOwogfQogCitib29sIFZhbHVlOjppc051bWVyaWMoKSBjb25zdCB7IHJldHVybiBpc0RvdWJs
ZSgpOyB9CiAKLWJvb2wgCi1WYWx1ZTo6aXNTdHJpbmcoKSBjb25zdAotewotICAgcmV0dXJuIHR5
cGVfID09IHN0cmluZ1ZhbHVlOwotfQorYm9vbCBWYWx1ZTo6aXNTdHJpbmcoKSBjb25zdCB7IHJl
dHVybiB0eXBlKCkgPT0gc3RyaW5nVmFsdWU7IH0KIAorYm9vbCBWYWx1ZTo6aXNBcnJheSgpIGNv
bnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBhcnJheVZhbHVlOyB9CiAKLWJvb2wgCi1WYWx1ZTo6aXNB
cnJheSgpIGNvbnN0Ci17Ci0gICByZXR1cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZTsKLX0KK2Jvb2wg
VmFsdWU6OmlzT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IG9iamVjdFZhbHVlOyB9
CisKK1ZhbHVlOjpDb21tZW50czo6Q29tbWVudHMoY29uc3QgQ29tbWVudHMmIHRoYXQpCisgICAg
OiBwdHJfe2Nsb25lVW5pcXVlKHRoYXQucHRyXyl9IHt9CiAKK1ZhbHVlOjpDb21tZW50czo6Q29t
bWVudHMoQ29tbWVudHMmJiB0aGF0KSA6IHB0cl97c3RkOjptb3ZlKHRoYXQucHRyXyl9IHt9CiAK
LWJvb2wgCi1WYWx1ZTo6aXNPYmplY3QoKSBjb25zdAotewotICAgcmV0dXJuIHR5cGVfID09IG9i
amVjdFZhbHVlOworVmFsdWU6OkNvbW1lbnRzJiBWYWx1ZTo6Q29tbWVudHM6Om9wZXJhdG9yPShj
b25zdCBDb21tZW50cyYgdGhhdCkgeworICBwdHJfID0gY2xvbmVVbmlxdWUodGhhdC5wdHJfKTsK
KyAgcmV0dXJuICp0aGlzOwogfQogCitWYWx1ZTo6Q29tbWVudHMmIFZhbHVlOjpDb21tZW50czo6
b3BlcmF0b3I9KENvbW1lbnRzJiYgdGhhdCkgeworICBwdHJfID0gc3RkOjptb3ZlKHRoYXQucHRy
Xyk7CisgIHJldHVybiAqdGhpczsKK30KIAotdm9pZCAKLVZhbHVlOjpzZXRDb21tZW50KCBjb25z
dCBjaGFyICpjb21tZW50LAotICAgICAgICAgICAgICAgICAgIENvbW1lbnRQbGFjZW1lbnQgcGxh
Y2VtZW50ICkKLXsKLSAgIGlmICggIWNvbW1lbnRzXyApCi0gICAgICBjb21tZW50c18gPSBuZXcg
Q29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50XTsKLSAgIGNvbW1lbnRzX1twbGFj
ZW1lbnRdLnNldENvbW1lbnQoIGNvbW1lbnQgKTsKK2Jvb2wgVmFsdWU6OkNvbW1lbnRzOjpoYXMo
Q29tbWVudFBsYWNlbWVudCBzbG90KSBjb25zdCB7CisgIHJldHVybiBwdHJfICYmICEoKnB0cl8p
W3Nsb3RdLmVtcHR5KCk7CiB9CiAKK1N0cmluZyBWYWx1ZTo6Q29tbWVudHM6OmdldChDb21tZW50
UGxhY2VtZW50IHNsb3QpIGNvbnN0IHsKKyAgaWYgKCFwdHJfKQorICAgIHJldHVybiB7fTsKKyAg
cmV0dXJuICgqcHRyXylbc2xvdF07Cit9CiAKLXZvaWQgCi1WYWx1ZTo6c2V0Q29tbWVudCggY29u
c3Qgc3RkOjpzdHJpbmcgJmNvbW1lbnQsCi0gICAgICAgICAgICAgICAgICAgQ29tbWVudFBsYWNl
bWVudCBwbGFjZW1lbnQgKQotewotICAgc2V0Q29tbWVudCggY29tbWVudC5jX3N0cigpLCBwbGFj
ZW1lbnQgKTsKK3ZvaWQgVmFsdWU6OkNvbW1lbnRzOjpzZXQoQ29tbWVudFBsYWNlbWVudCBzbG90
LCBTdHJpbmcgY29tbWVudCkgeworICBpZiAoIXB0cl8pIHsKKyAgICBwdHJfID0gc3RkOjp1bmlx
dWVfcHRyPEFycmF5PihuZXcgQXJyYXkoKSk7CisgIH0KKyAgKCpwdHJfKVtzbG90XSA9IHN0ZDo6
bW92ZShjb21tZW50KTsKIH0KIAordm9pZCBWYWx1ZTo6c2V0Q29tbWVudChTdHJpbmcgY29tbWVu
dCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAgaWYgKCFjb21tZW50LmVtcHR5KCkg
JiYgKGNvbW1lbnQuYmFjaygpID09ICdcbicpKSB7CisgICAgLy8gQWx3YXlzIGRpc2NhcmQgdHJh
aWxpbmcgbmV3bGluZSwgdG8gYWlkIGluZGVudGF0aW9uLgorICAgIGNvbW1lbnQucG9wX2JhY2so
KTsKKyAgfQorICBKU09OX0FTU0VSVCghY29tbWVudC5lbXB0eSgpKTsKKyAgSlNPTl9BU1NFUlRf
TUVTU0FHRSgKKyAgICAgIGNvbW1lbnRbMF0gPT0gJ1wwJyB8fCBjb21tZW50WzBdID09ICcvJywK
KyAgICAgICJpbiBKc29uOjpWYWx1ZTo6c2V0Q29tbWVudCgpOiBDb21tZW50cyBtdXN0IHN0YXJ0
IHdpdGggLyIpOworICBjb21tZW50c18uc2V0KHBsYWNlbWVudCwgc3RkOjptb3ZlKGNvbW1lbnQp
KTsKK30KIAotYm9vbCAKLVZhbHVlOjpoYXNDb21tZW50KCBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCApIGNvbnN0Ci17Ci0gICByZXR1cm4gY29tbWVudHNfICE9IDAgICYmICBjb21tZW50c19b
cGxhY2VtZW50XS5jb21tZW50XyAhPSAwOworYm9vbCBWYWx1ZTo6aGFzQ29tbWVudChDb21tZW50
UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3QgeworICByZXR1cm4gY29tbWVudHNfLmhhcyhwbGFj
ZW1lbnQpOwogfQogCi1zdGQ6OnN0cmluZyAKLVZhbHVlOjpnZXRDb21tZW50KCBDb21tZW50UGxh
Y2VtZW50IHBsYWNlbWVudCApIGNvbnN0Ci17Ci0gICBpZiAoIGhhc0NvbW1lbnQocGxhY2VtZW50
KSApCi0gICAgICByZXR1cm4gY29tbWVudHNfW3BsYWNlbWVudF0uY29tbWVudF87Ci0gICByZXR1
cm4gIiI7CitTdHJpbmcgVmFsdWU6OmdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQpIGNvbnN0IHsKKyAgcmV0dXJuIGNvbW1lbnRzXy5nZXQocGxhY2VtZW50KTsKIH0KIAordm9p
ZCBWYWx1ZTo6c2V0T2Zmc2V0U3RhcnQocHRyZGlmZl90IHN0YXJ0KSB7IHN0YXJ0XyA9IHN0YXJ0
OyB9CiAKLXN0ZDo6c3RyaW5nIAotVmFsdWU6OnRvU3R5bGVkU3RyaW5nKCkgY29uc3QKLXsKLSAg
IFN0eWxlZFdyaXRlciB3cml0ZXI7Ci0gICByZXR1cm4gd3JpdGVyLndyaXRlKCAqdGhpcyApOwot
fQordm9pZCBWYWx1ZTo6c2V0T2Zmc2V0TGltaXQocHRyZGlmZl90IGxpbWl0KSB7IGxpbWl0XyA9
IGxpbWl0OyB9CiAKK3B0cmRpZmZfdCBWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQoKSBjb25zdCB7IHJl
dHVybiBzdGFydF87IH0KIAotVmFsdWU6OmNvbnN0X2l0ZXJhdG9yIAotVmFsdWU6OmJlZ2luKCkg
Y29uc3QKLXsKLSAgIHN3aXRjaCAoIHR5cGVfICkKLSAgIHsKLSNpZmRlZiBKU09OX1ZBTFVFX1VT
RV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLmFy
cmF5XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3Rh
dGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJyYXlfLT5tYWtlQmVnaW5JdGVyYXRvciggaXQgKTsK
LSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAgICAgIGJy
ZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLm1hcF8gKQotICAg
ICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbE1hcDo6SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAg
ICAgIHZhbHVlXy5tYXBfLT5tYWtlQmVnaW5JdGVyYXRvciggaXQgKTsKLSAgICAgICAgIHJldHVy
biBjb25zdF9pdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAg
IGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVl
Xy5tYXBfICkKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvciggdmFsdWVfLm1hcF8tPmJl
Z2luKCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0OgotICAgICAgYnJlYWs7
Ci0gICB9Ci0gICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6OmNvbnN0X2l0
ZXJhdG9yIAotVmFsdWU6OmVuZCgpIGNvbnN0Ci17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7
Ci0jaWZkZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6
Ci0gICAgICBpZiAoIHZhbHVlXy5hcnJheV8gKQotICAgICAgewotICAgICAgICAgVmFsdWVJbnRl
cm5hbEFycmF5OjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLmFycmF5Xy0+bWFr
ZUVuZEl0ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCBpdCAp
OwotICAgICAgfQotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgaWYg
KCB2YWx1ZV8ubWFwXyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwOjpJdGVy
YXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VFbmRJdGVyYXRvciggaXQg
KTsKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAgICAg
IGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6
Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRv
ciggdmFsdWVfLm1hcF8tPmVuZCgpICk7Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVs
dDoKLSAgICAgIGJyZWFrOwotICAgfQotICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Ci19Ci0K
LQotVmFsdWU6Oml0ZXJhdG9yIAotVmFsdWU6OmJlZ2luKCkKLXsKLSAgIHN3aXRjaCAoIHR5cGVf
ICkKLSAgIHsKLSNpZmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIGNhc2UgYXJy
YXlWYWx1ZToKLSAgICAgIGlmICggdmFsdWVfLmFycmF5XyApCi0gICAgICB7Ci0gICAgICAgICBW
YWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUgaXQ7Ci0gICAgICAgICB2YWx1ZV8uYXJy
YXlfLT5tYWtlQmVnaW5JdGVyYXRvciggaXQgKTsKLSAgICAgICAgIHJldHVybiBpdGVyYXRvcigg
aXQgKTsKLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAg
IGlmICggdmFsdWVfLm1hcF8gKQotICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbE1hcDo6
SXRlcmF0b3JTdGF0ZSBpdDsKLSAgICAgICAgIHZhbHVlXy5tYXBfLT5tYWtlQmVnaW5JdGVyYXRv
ciggaXQgKTsKLSAgICAgICAgIHJldHVybiBpdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAgICAg
IGJyZWFrOwotI2Vsc2UKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6
Ci0gICAgICBpZiAoIHZhbHVlXy5tYXBfICkKLSAgICAgICAgIHJldHVybiBpdGVyYXRvciggdmFs
dWVfLm1hcF8tPmJlZ2luKCkgKTsKLSAgICAgIGJyZWFrOwotI2VuZGlmCi0gICBkZWZhdWx0Ogot
ICAgICAgYnJlYWs7Ci0gICB9Ci0gICByZXR1cm4gaXRlcmF0b3IoKTsKLX0KLQotVmFsdWU6Oml0
ZXJhdG9yIAotVmFsdWU6OmVuZCgpCi17Ci0gICBzd2l0Y2ggKCB0eXBlXyApCi0gICB7Ci0jaWZk
ZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjYXNlIGFycmF5VmFsdWU6Ci0gICAg
ICBpZiAoIHZhbHVlXy5hcnJheV8gKQotICAgICAgewotICAgICAgICAgVmFsdWVJbnRlcm5hbEFy
cmF5OjpJdGVyYXRvclN0YXRlIGl0OwotICAgICAgICAgdmFsdWVfLmFycmF5Xy0+bWFrZUVuZEl0
ZXJhdG9yKCBpdCApOwotICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKCBpdCApOwotICAgICAgfQot
ICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgaWYgKCB2YWx1ZV8ubWFw
XyApCi0gICAgICB7Ci0gICAgICAgICBWYWx1ZUludGVybmFsTWFwOjpJdGVyYXRvclN0YXRlIGl0
OwotICAgICAgICAgdmFsdWVfLm1hcF8tPm1ha2VFbmRJdGVyYXRvciggaXQgKTsKLSAgICAgICAg
IHJldHVybiBpdGVyYXRvciggaXQgKTsKLSAgICAgIH0KLSAgICAgIGJyZWFrOwotI2Vsc2UKLSAg
IGNhc2UgYXJyYXlWYWx1ZToKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICBpZiAoIHZhbHVl
Xy5tYXBfICkKLSAgICAgICAgIHJldHVybiBpdGVyYXRvciggdmFsdWVfLm1hcF8tPmVuZCgpICk7
Ci0gICAgICBicmVhazsKLSNlbmRpZgotICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotICAgfQot
ICAgcmV0dXJuIGl0ZXJhdG9yKCk7Ci19CitwdHJkaWZmX3QgVmFsdWU6OmdldE9mZnNldExpbWl0
KCkgY29uc3QgeyByZXR1cm4gbGltaXRfOyB9CiAKK1N0cmluZyBWYWx1ZTo6dG9TdHlsZWRTdHJp
bmcoKSBjb25zdCB7CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRlcjsKIAotLy8gY2xhc3Mg
UGF0aEFyZ3VtZW50Ci0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgU3RyaW5nIG91dCA9IHRoaXMtPmhhc0NvbW1l
bnQoY29tbWVudEJlZm9yZSkgPyAiXG4iIDogIiI7CisgIG91dCArPSBKc29uOjp3cml0ZVN0cmlu
ZyhidWlsZGVyLCAqdGhpcyk7CisgIG91dCArPSAnXG4nOwogCi1QYXRoQXJndW1lbnQ6OlBhdGhB
cmd1bWVudCgpCi0gICA6IGtleV8oKQotICAgLCBpbmRleF8oKQotICAgLCBraW5kXygga2luZE5v
bmUgKQoteworICByZXR1cm4gb3V0OwogfQogCitWYWx1ZTo6Y29uc3RfaXRlcmF0b3IgVmFsdWU6
OmJlZ2luKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGFycmF5VmFsdWU6
CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJu
IGNvbnN0X2l0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdpbigpKTsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4ge307Cit9CiAKLVBhdGhBcmd1bWVudDo6
UGF0aEFyZ3VtZW50KCBBcnJheUluZGV4IGluZGV4ICkKLSAgIDoga2V5XygpCi0gICAsIGluZGV4
XyggaW5kZXggKQotICAgLCBraW5kXygga2luZEluZGV4ICkKLXsKK1ZhbHVlOjpjb25zdF9pdGVy
YXRvciBWYWx1ZTo6ZW5kKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGFy
cmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAg
ICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHZhbHVlXy5tYXBfLT5lbmQoKSk7CisgICAgYnJlYWs7
CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHt9OwogfQogCitWYWx1ZTo6
aXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGFy
cmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAg
ICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdpbigpKTsKKyAgICBicmVhazsKKyAg
ZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gaXRlcmF0b3IoKTsKK30KIAotUGF0
aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoIGNvbnN0IGNoYXIgKmtleSApCi0gICA6IGtleV8oIGtl
eSApCi0gICAsIGluZGV4XygpCi0gICAsIGtpbmRfKCBraW5kS2V5ICkKLXsKK1ZhbHVlOjppdGVy
YXRvciBWYWx1ZTo6ZW5kKCkgeworICBzd2l0Y2ggKHR5cGUoKSkgeworICBjYXNlIGFycmF5VmFs
dWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0
dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBfLT5lbmQoKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6
CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGl0ZXJhdG9yKCk7CiB9CiAKKy8vIGNsYXNzIFBh
dGhBcmd1bWVudAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLVBhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KCBj
b25zdCBzdGQ6OnN0cmluZyAma2V5ICkKLSAgIDoga2V5Xygga2V5LmNfc3RyKCkgKQotICAgLCBp
bmRleF8oKQotICAgLCBraW5kXygga2luZEtleSApCi17Ci19CitQYXRoQXJndW1lbnQ6OlBhdGhB
cmd1bWVudCgpIDoga2V5XygpIHt9CisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KEFycmF5
SW5kZXggaW5kZXgpCisgICAgOiBrZXlfKCksIGluZGV4XyhpbmRleCksIGtpbmRfKGtpbmRJbmRl
eCkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KQorICAg
IDoga2V5XyhrZXkpLCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KKworUGF0aEFyZ3VtZW50
OjpQYXRoQXJndW1lbnQoY29uc3QgU3RyaW5nJiBrZXkpCisgICAgOiBrZXlfKGtleS5jX3N0cigp
KSwgaW5kZXhfKCksIGtpbmRfKGtpbmRLZXkpIHt9CiAKIC8vIGNsYXNzIFBhdGgKIC8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCi1QYXRoOjpQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwKLSAgICAgICAgICAg
IGNvbnN0IFBhdGhBcmd1bWVudCAmYTEsCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQg
JmEyLAotICAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50ICZhMywKLSAgICAgICAgICAgIGNv
bnN0IFBhdGhBcmd1bWVudCAmYTQsCi0gICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmE1
ICkKLXsKLSAgIEluQXJncyBpbjsKLSAgIGluLnB1c2hfYmFjayggJmExICk7Ci0gICBpbi5wdXNo
X2JhY2soICZhMiApOwotICAgaW4ucHVzaF9iYWNrKCAmYTMgKTsKLSAgIGluLnB1c2hfYmFjaygg
JmE0ICk7Ci0gICBpbi5wdXNoX2JhY2soICZhNSApOwotICAgbWFrZVBhdGgoIHBhdGgsIGluICk7
Ci19Ci0KLQotdm9pZCAKLVBhdGg6Om1ha2VQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmcGF0aCwK
LSAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluICkKLXsKLSAgIGNvbnN0IGNoYXIgKmN1
cnJlbnQgPSBwYXRoLmNfc3RyKCk7Ci0gICBjb25zdCBjaGFyICplbmQgPSBjdXJyZW50ICsgcGF0
aC5sZW5ndGgoKTsKLSAgIEluQXJnczo6Y29uc3RfaXRlcmF0b3IgaXRJbkFyZyA9IGluLmJlZ2lu
KCk7Ci0gICB3aGlsZSAoIGN1cnJlbnQgIT0gZW5kICkKLSAgIHsKLSAgICAgIGlmICggKmN1cnJl
bnQgPT0gJ1snICkKLSAgICAgIHsKLSAgICAgICAgICsrY3VycmVudDsKLSAgICAgICAgIGlmICgg
KmN1cnJlbnQgPT0gJyUnICkKLSAgICAgICAgICAgIGFkZFBhdGhJbkFyZyggcGF0aCwgaW4sIGl0
SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZEluZGV4ICk7Ci0gICAgICAgICBlbHNlCi0gICAgICAg
ICB7Ci0gICAgICAgICAgICBBcnJheUluZGV4IGluZGV4ID0gMDsKLSAgICAgICAgICAgIGZvciAo
IDsgY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPj0gJzAnICAmJiAgKmN1cnJlbnQgPD0gJzkn
OyArK2N1cnJlbnQgKQotICAgICAgICAgICAgICAgaW5kZXggPSBpbmRleCAqIDEwICsgQXJyYXlJ
bmRleCgqY3VycmVudCAtICcwJyk7Ci0gICAgICAgICAgICBhcmdzXy5wdXNoX2JhY2soIGluZGV4
ICk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAoIGN1cnJlbnQgPT0gZW5kICB8fCAgKmN1cnJl
bnQrKyAhPSAnXScgKQotICAgICAgICAgICAgaW52YWxpZFBhdGgoIHBhdGgsIGludChjdXJyZW50
IC0gcGF0aC5jX3N0cigpKSApOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoICpjdXJyZW50ID09
ICclJyApCi0gICAgICB7Ci0gICAgICAgICBhZGRQYXRoSW5BcmcoIHBhdGgsIGluLCBpdEluQXJn
LCBQYXRoQXJndW1lbnQ6OmtpbmRLZXkgKTsKLSAgICAgICAgICsrY3VycmVudDsKLSAgICAgIH0K
LSAgICAgIGVsc2UgaWYgKCAqY3VycmVudCA9PSAnLicgKQotICAgICAgewotICAgICAgICAgKytj
dXJyZW50OworUGF0aDo6UGF0aChjb25zdCBTdHJpbmcmIHBhdGgsCisgICAgICAgICAgIGNvbnN0
IFBhdGhBcmd1bWVudCYgYTEsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIsCisg
ICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTMsCisgICAgICAgICAgIGNvbnN0IFBhdGhB
cmd1bWVudCYgYTQsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTUpIHsKKyAgSW5B
cmdzIGluOworICBpbi5yZXNlcnZlKDUpOworICBpbi5wdXNoX2JhY2soJmExKTsKKyAgaW4ucHVz
aF9iYWNrKCZhMik7CisgIGluLnB1c2hfYmFjaygmYTMpOworICBpbi5wdXNoX2JhY2soJmE0KTsK
KyAgaW4ucHVzaF9iYWNrKCZhNSk7CisgIG1ha2VQYXRoKHBhdGgsIGluKTsKK30KKwordm9pZCBQ
YXRoOjptYWtlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4pIHsKKyAg
Y29uc3QgY2hhciogY3VycmVudCA9IHBhdGguY19zdHIoKTsKKyAgY29uc3QgY2hhciogZW5kID0g
Y3VycmVudCArIHBhdGgubGVuZ3RoKCk7CisgIGF1dG8gaXRJbkFyZyA9IGluLmJlZ2luKCk7Cisg
IHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAgIGlmICgqY3VycmVudCA9PSAnWycpIHsKKyAg
ICAgICsrY3VycmVudDsKKyAgICAgIGlmICgqY3VycmVudCA9PSAnJScpCisgICAgICAgIGFkZFBh
dGhJbkFyZyhwYXRoLCBpbiwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpOworICAg
ICAgZWxzZSB7CisgICAgICAgIEFycmF5SW5kZXggaW5kZXggPSAwOworICAgICAgICBmb3IgKDsg
Y3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPj0gJzAnICYmICpjdXJyZW50IDw9ICc5JzsgKytj
dXJyZW50KQorICAgICAgICAgIGluZGV4ID0gaW5kZXggKiAxMCArIEFycmF5SW5kZXgoKmN1cnJl
bnQgLSAnMCcpOworICAgICAgICBhcmdzXy5wdXNoX2JhY2soaW5kZXgpOwogICAgICAgfQotICAg
ICAgZWxzZQotICAgICAgewotICAgICAgICAgY29uc3QgY2hhciAqYmVnaW5OYW1lID0gY3VycmVu
dDsKLSAgICAgICAgIHdoaWxlICggY3VycmVudCAhPSBlbmQgICYmICAhc3RyY2hyKCAiWy4iLCAq
Y3VycmVudCApICkKLSAgICAgICAgICAgICsrY3VycmVudDsKLSAgICAgICAgIGFyZ3NfLnB1c2hf
YmFjayggc3RkOjpzdHJpbmcoIGJlZ2luTmFtZSwgY3VycmVudCApICk7Ci0gICAgICB9Ci0gICB9
Ci19Ci0KLQotdm9pZCAKLVBhdGg6OmFkZFBhdGhJbkFyZyggY29uc3Qgc3RkOjpzdHJpbmcgJnBh
dGgsIAotICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MgJmluLCAKLSAgICAgICAgICAg
ICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciAmaXRJbkFyZywgCi0gICAgICAgICAgICAg
ICAgICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kICkKLXsKLSAgIGlmICggaXRJbkFyZyA9PSBp
bi5lbmQoKSApCi0gICB7Ci0gICAgICAvLyBFcnJvcjogbWlzc2luZyBhcmd1bWVudCAlZAotICAg
fQotICAgZWxzZSBpZiAoICgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQgKQotICAgewotICAgICAg
Ly8gRXJyb3I6IGJhZCBhcmd1bWVudCB0eXBlCi0gICB9Ci0gICBlbHNlCi0gICB7Ci0gICAgICBh
cmdzXy5wdXNoX2JhY2soICoqaXRJbkFyZyApOwotICAgfQotfQotCi0KLXZvaWQgCi1QYXRoOjpp
bnZhbGlkUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJnBhdGgsIAotICAgICAgICAgICAgICAgICAg
IGludCBsb2NhdGlvbiApCi17Ci0gICAvLyBFcnJvcjogaW52YWxpZCBwYXRoLgotfQotCi0KLWNv
bnN0IFZhbHVlICYKLVBhdGg6OnJlc29sdmUoIGNvbnN0IFZhbHVlICZyb290ICkgY29uc3QKLXsK
LSAgIGNvbnN0IFZhbHVlICpub2RlID0gJnJvb3Q7Ci0gICBmb3IgKCBBcmdzOjpjb25zdF9pdGVy
YXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0ICkKLSAgIHsK
LSAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYXJnID0gKml0OwotICAgICAgaWYgKCBhcmcua2lu
ZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKQotICAgICAgewotICAgICAgICAgaWYgKCAh
bm9kZS0+aXNBcnJheSgpICB8fCAgIW5vZGUtPmlzVmFsaWRJbmRleCggYXJnLmluZGV4XyApICkK
LSAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRo
IChhcnJheSB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLgotICAgICAgICAgfQotICAgICAg
ICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7CisgICAgICBpZiAoY3VycmVudCA9PSBl
bmQgfHwgKisrY3VycmVudCAhPSAnXScpCisgICAgICAgIGludmFsaWRQYXRoKHBhdGgsIGludChj
dXJyZW50IC0gcGF0aC5jX3N0cigpKSk7CisgICAgfSBlbHNlIGlmICgqY3VycmVudCA9PSAnJScp
IHsKKyAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBpbiwgaXRJbkFyZywgUGF0aEFyZ3VtZW50Ojpr
aW5kS2V5KTsKKyAgICAgICsrY3VycmVudDsKKyAgICB9IGVsc2UgaWYgKCpjdXJyZW50ID09ICcu
JyB8fCAqY3VycmVudCA9PSAnXScpIHsKKyAgICAgICsrY3VycmVudDsKKyAgICB9IGVsc2Ugewor
ICAgICAgY29uc3QgY2hhciogYmVnaW5OYW1lID0gY3VycmVudDsKKyAgICAgIHdoaWxlIChjdXJy
ZW50ICE9IGVuZCAmJiAhc3RyY2hyKCJbLiIsICpjdXJyZW50KSkKKyAgICAgICAgKytjdXJyZW50
OworICAgICAgYXJnc18ucHVzaF9iYWNrKFN0cmluZyhiZWdpbk5hbWUsIGN1cnJlbnQpKTsKKyAg
ICB9CisgIH0KK30KKwordm9pZCBQYXRoOjphZGRQYXRoSW5BcmcoY29uc3QgU3RyaW5nJiAvKnBh
dGgqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyYgaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yJiBpdEluQXJnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpIHsKKyAgaWYgKGl0SW5B
cmcgPT0gaW4uZW5kKCkpIHsKKyAgICAvLyBFcnJvcjogbWlzc2luZyBhcmd1bWVudCAlZAorICB9
IGVsc2UgaWYgKCgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQpIHsKKyAgICAvLyBFcnJvcjogYmFk
IGFyZ3VtZW50IHR5cGUKKyAgfSBlbHNlIHsKKyAgICBhcmdzXy5wdXNoX2JhY2soKippdEluQXJn
KyspOworICB9Cit9CisKK3ZvaWQgUGF0aDo6aW52YWxpZFBhdGgoY29uc3QgU3RyaW5nJiAvKnBh
dGgqLywgaW50IC8qbG9jYXRpb24qLykgeworICAvLyBFcnJvcjogaW52YWxpZCBwYXRoLgorfQor
Citjb25zdCBWYWx1ZSYgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCkgY29uc3Qgewor
ICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3IgKGNvbnN0IGF1dG8mIGFyZyA6IGFy
Z3NfKSB7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCkgewor
ICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5vZGUtPmlzVmFsaWRJbmRleChhcmcuaW5k
ZXhfKSkgeworICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRvIHJlc29sdmUgcGF0aCAoYXJyYXkg
dmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4gKQorICAgICAgICByZXR1cm4gVmFsdWU6Om51
bGxTaW5nbGV0b24oKTsKICAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCBhcmcua2luZF8gPT0gUGF0
aEFyZ3VtZW50OjpraW5kS2V5ICkKLSAgICAgIHsKLSAgICAgICAgIGlmICggIW5vZGUtPmlzT2Jq
ZWN0KCkgKQotICAgICAgICAgewotICAgICAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNv
bHZlIHBhdGggKG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLikKLSAgICAgICAg
IH0KLSAgICAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKLSAgICAgICAgIGlmICgg
bm9kZSA9PSAmVmFsdWU6Om51bGwgKQotICAgICAgICAgewotICAgICAgICAgICAgLy8gRXJyb3I6
IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCBoYXMgbm8gbWVtYmVyIG5hbWVkICcnIGF0
IHBvc2l0aW9uLi4uKQotICAgICAgICAgfQorICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5k
ZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5
KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAgLy8gRXJyb3I6IHVu
YWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4u
LikKKyAgICAgICAgcmV0dXJuIFZhbHVlOjpudWxsU2luZ2xldG9uKCk7CiAgICAgICB9Ci0gICB9
Ci0gICByZXR1cm4gKm5vZGU7Ci19Ci0KLQotVmFsdWUgCi1QYXRoOjpyZXNvbHZlKCBjb25zdCBW
YWx1ZSAmcm9vdCwgCi0gICAgICAgICAgICAgICBjb25zdCBWYWx1ZSAmZGVmYXVsdFZhbHVlICkg
Y29uc3QKLXsKLSAgIGNvbnN0IFZhbHVlICpub2RlID0gJnJvb3Q7Ci0gICBmb3IgKCBBcmdzOjpj
b25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0
ICkKLSAgIHsKLSAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCAmYXJnID0gKml0OwotICAgICAgaWYg
KCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXggKQotICAgICAgewotICAgICAg
ICAgaWYgKCAhbm9kZS0+aXNBcnJheSgpICB8fCAgIW5vZGUtPmlzVmFsaWRJbmRleCggYXJnLmlu
ZGV4XyApICkKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgICAgICBub2Rl
ID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsKKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtl
eV9dKTsKKyAgICAgIGlmIChub2RlID09ICZWYWx1ZTo6bnVsbFNpbmdsZXRvbigpKSB7CisgICAg
ICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChvYmplY3QgaGFzIG5vIG1lbWJl
ciBuYW1lZCAnJyBhdAorICAgICAgICAvLyBwb3NpdGlvbi4uLikKKyAgICAgICAgcmV0dXJuIFZh
bHVlOjpudWxsU2luZ2xldG9uKCk7CiAgICAgICB9Ci0gICAgICBlbHNlIGlmICggYXJnLmtpbmRf
ID09IFBhdGhBcmd1bWVudDo6a2luZEtleSApCi0gICAgICB7Ci0gICAgICAgICBpZiAoICFub2Rl
LT5pc09iamVjdCgpICkKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgICAg
ICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Ci0gICAgICAgICBpZiAoIG5vZGUgPT0gJlZh
bHVlOjpudWxsICkKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgfQorICB9
CisgIHJldHVybiAqbm9kZTsKK30KKworVmFsdWUgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYg
cm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3QgeworICBjb25zdCBWYWx1ZSog
bm9kZSA9ICZyb290OworICBmb3IgKGNvbnN0IGF1dG8mIGFyZyA6IGFyZ3NfKSB7CisgICAgaWYg
KGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCkgeworICAgICAgaWYgKCFub2Rl
LT5pc0FycmF5KCkgfHwgIW5vZGUtPmlzVmFsaWRJbmRleChhcmcuaW5kZXhfKSkKKyAgICAgICAg
cmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10p
OworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSkgewor
ICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OworICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOworICAgICAgaWYgKG5vZGUgPT0g
JlZhbHVlOjpudWxsU2luZ2xldG9uKCkpCisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Cisg
ICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30KKworVmFsdWUmIFBhdGg6Om1ha2UoVmFsdWUm
IHJvb3QpIGNvbnN0IHsKKyAgVmFsdWUqIG5vZGUgPSAmcm9vdDsKKyAgZm9yIChjb25zdCBhdXRv
JiBhcmcgOiBhcmdzXykgeworICAgIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5k
SW5kZXgpIHsKKyAgICAgIGlmICghbm9kZS0+aXNBcnJheSgpKSB7CisgICAgICAgIC8vIEVycm9y
OiBub2RlIGlzIG5vdCBhbiBhcnJheSBhdCBwb3NpdGlvbiAuLi4KICAgICAgIH0KLSAgIH0KLSAg
IHJldHVybiAqbm9kZTsKLX0KLQotCi1WYWx1ZSAmCi1QYXRoOjptYWtlKCBWYWx1ZSAmcm9vdCAp
IGNvbnN0Ci17Ci0gICBWYWx1ZSAqbm9kZSA9ICZyb290OwotICAgZm9yICggQXJnczo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5lbmQoKTsgKytpdCApCi0g
ICB7Ci0gICAgICBjb25zdCBQYXRoQXJndW1lbnQgJmFyZyA9ICppdDsKLSAgICAgIGlmICggYXJn
LmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4ICkKLSAgICAgIHsKLSAgICAgICAgIGlm
ICggIW5vZGUtPmlzQXJyYXkoKSApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAvLyBFcnJvcjog
bm9kZSBpcyBub3QgYW4gYXJyYXkgYXQgcG9zaXRpb24gLi4uCi0gICAgICAgICB9Ci0gICAgICAg
ICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsKKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlb
YXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6
a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKSB7CisgICAgICAgIC8vIEVy
cm9yOiBub2RlIGlzIG5vdCBhbiBvYmplY3QgYXQgcG9zaXRpb24uLi4KICAgICAgIH0KLSAgICAg
IGVsc2UgaWYgKCBhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5ICkKLSAgICAgIHsK
LSAgICAgICAgIGlmICggIW5vZGUtPmlzT2JqZWN0KCkgKQotICAgICAgICAgewotICAgICAgICAg
ICAgLy8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIG9iamVjdCBhdCBwb3NpdGlvbi4uLgotICAgICAg
ICAgfQotICAgICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwotICAgICAgfQotICAg
fQotICAgcmV0dXJuICpub2RlOworICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwor
ICAgIH0KKyAgfQorICByZXR1cm4gKm5vZGU7CiB9CiAKLQogfSAvLyBuYW1lc3BhY2UgSnNvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl92YWx1ZWl0ZXJhdG9yLmlubCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2Uvc3JjL2xpYl9qc29uL2pzb25fdmFsdWVpdGVyYXRvci5pbmwKaW5kZXggNzQ1N2NhMzg5ZTYw
MmRjYzYwNTJkZGQ0NDhhMTk4Mzk0N2M1NGZiNi4uNGEzZDIxMGRlMzFjNjRjODM1MWU4NDFiMTdk
YWNiMDhhNTk0NzljZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl92YWx1ZWl0
ZXJhdG9yLmlubAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRlcmF0b3IuaW5s
CkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxl
dXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNv
bkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCkBAIC0xNSwyMDIgKzE1LDk5IEBAIG5hbWVzcGFj
ZSBKc29uIHsKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLVZhbHVlSXRlcmF0b3JCYXNl
OjpWYWx1ZUl0ZXJhdG9yQmFzZSgpCi0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01B
UAotICAgOiBjdXJyZW50XygpCi0gICAsIGlzTnVsbF8oIHRydWUgKQotewotfQotI2Vsc2UKLSAg
IDogaXNBcnJheV8oIHRydWUgKQotICAgLCBpc051bGxfKCB0cnVlICkKLXsKLSAgIGl0ZXJhdG9y
Xy5hcnJheV8gPSBWYWx1ZUludGVybmFsQXJyYXk6Okl0ZXJhdG9yU3RhdGUoKTsKLX0KLSNlbmRp
ZgorVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKCkgOiBjdXJyZW50XygpIHt9
CiAKK1ZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9yQmFzZSgKKyAgICBjb25zdCBWYWx1
ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IGN1cnJlbnRfKGN1cnJl
bnQpLCBpc051bGxfKGZhbHNlKSB7fQogCi0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFM
X01BUAotVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKCBjb25zdCBWYWx1ZTo6
T2JqZWN0VmFsdWVzOjppdGVyYXRvciAmY3VycmVudCApCi0gICA6IGN1cnJlbnRfKCBjdXJyZW50
ICkKLSAgICwgaXNOdWxsXyggZmFsc2UgKQotewotfQotI2Vsc2UKLVZhbHVlSXRlcmF0b3JCYXNl
OjpWYWx1ZUl0ZXJhdG9yQmFzZSggY29uc3QgVmFsdWVJbnRlcm5hbEFycmF5OjpJdGVyYXRvclN0
YXRlICZzdGF0ZSApCi0gICA6IGlzQXJyYXlfKCB0cnVlICkKLXsKLSAgIGl0ZXJhdG9yXy5hcnJh
eV8gPSBzdGF0ZTsKLX0KK1ZhbHVlJiBWYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVyZWYoKSBjb25zdCB7
IHJldHVybiBjdXJyZW50Xy0+c2Vjb25kOyB9CiAKK3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6Omlu
Y3JlbWVudCgpIHsgKytjdXJyZW50XzsgfQogCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVy
YXRvckJhc2UoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICkK
LSAgIDogaXNBcnJheV8oIGZhbHNlICkKLXsKLSAgIGl0ZXJhdG9yXy5tYXBfID0gc3RhdGU7Ci19
Ci0jZW5kaWYKK3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmRlY3JlbWVudCgpIHsgLS1jdXJyZW50
XzsgfQogCi1WYWx1ZSAmCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVyZWYoKSBjb25zdAotewotI2lm
bmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLSAgIHJldHVybiBjdXJyZW50Xy0+c2Vj
b25kOworVmFsdWVJdGVyYXRvckJhc2U6OmRpZmZlcmVuY2VfdHlwZQorVmFsdWVJdGVyYXRvckJh
c2U6OmNvbXB1dGVEaXN0YW5jZShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKKyNpZmRl
ZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAorICByZXR1cm4gb3RoZXIuY3VycmVudF8gLSBjdXJy
ZW50XzsKICNlbHNlCi0gICBpZiAoIGlzQXJyYXlfICkKLSAgICAgIHJldHVybiBWYWx1ZUludGVy
bmFsQXJyYXk6OmRlcmVmZXJlbmNlKCBpdGVyYXRvcl8uYXJyYXlfICk7Ci0gICByZXR1cm4gVmFs
dWVJbnRlcm5hbE1hcDo6dmFsdWUoIGl0ZXJhdG9yXy5tYXBfICk7CisgIC8vIEl0ZXJhdG9yIGZv
ciBudWxsIHZhbHVlIGFyZSBpbml0aWFsaXplZCB1c2luZyB0aGUgZGVmYXVsdAorICAvLyBjb25z
dHJ1Y3Rvciwgd2hpY2ggaW5pdGlhbGl6ZSBjdXJyZW50XyB0byB0aGUgZGVmYXVsdAorICAvLyBz
dGQ6Om1hcDo6aXRlcmF0b3IuIEFzIGJlZ2luKCkgYW5kIGVuZCgpIGFyZSB0d28gaW5zdGFuY2UK
KyAgLy8gb2YgdGhlIGRlZmF1bHQgc3RkOjptYXA6Oml0ZXJhdG9yLCB0aGV5IGNhbiBub3QgYmUg
Y29tcGFyZWQuCisgIC8vIFRvIGFsbG93IHRoaXMsIHdlIGhhbmRsZSB0aGlzIGNvbXBhcmlzb24g
c3BlY2lmaWNhbGx5LgorICBpZiAoaXNOdWxsXyAmJiBvdGhlci5pc051bGxfKSB7CisgICAgcmV0
dXJuIDA7CisgIH0KKworICAvLyBVc2FnZSBvZiBzdGQ6OmRpc3RhbmNlIGlzIG5vdCBwb3J0YWJs
ZSAoZG9lcyBub3QgY29tcGlsZSB3aXRoIFN1biBTdHVkaW8gMTIKKyAgLy8gUm9ndWVXYXZlIFNU
TCwKKyAgLy8gd2hpY2ggaXMgdGhlIG9uZSB1c2VkIGJ5IGRlZmF1bHQpLgorICAvLyBVc2luZyBh
IHBvcnRhYmxlIGhhbmQtbWFkZSB2ZXJzaW9uIGZvciBub24gcmFuZG9tIGl0ZXJhdG9yIGluc3Rl
YWQ6CisgIC8vICAgcmV0dXJuIGRpZmZlcmVuY2VfdHlwZSggc3RkOjpkaXN0YW5jZSggY3VycmVu
dF8sIG90aGVyLmN1cnJlbnRfICkgKTsKKyAgZGlmZmVyZW5jZV90eXBlIG15RGlzdGFuY2UgPSAw
OworICBmb3IgKFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gY3VycmVudF87IGl0
ICE9IG90aGVyLmN1cnJlbnRfOworICAgICAgICsraXQpIHsKKyAgICArK215RGlzdGFuY2U7Cisg
IH0KKyAgcmV0dXJuIG15RGlzdGFuY2U7CiAjZW5kaWYKIH0KIAotCi12b2lkIAotVmFsdWVJdGVy
YXRvckJhc2U6OmluY3JlbWVudCgpCi17Ci0jaWZuZGVmIEpTT05fVkFMVUVfVVNFX0lOVEVSTkFM
X01BUAotICAgKytjdXJyZW50XzsKLSNlbHNlCi0gICBpZiAoIGlzQXJyYXlfICkKLSAgICAgIFZh
bHVlSW50ZXJuYWxBcnJheTo6aW5jcmVtZW50KCBpdGVyYXRvcl8uYXJyYXlfICk7Ci0gICBWYWx1
ZUludGVybmFsTWFwOjppbmNyZW1lbnQoIGl0ZXJhdG9yXy5tYXBfICk7Ci0jZW5kaWYKK2Jvb2wg
VmFsdWVJdGVyYXRvckJhc2U6OmlzRXF1YWwoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7
CisgIGlmIChpc051bGxfKSB7CisgICAgcmV0dXJuIG90aGVyLmlzTnVsbF87CisgIH0KKyAgcmV0
dXJuIGN1cnJlbnRfID09IG90aGVyLmN1cnJlbnRfOwogfQogCi0KLXZvaWQgCi1WYWx1ZUl0ZXJh
dG9yQmFzZTo6ZGVjcmVtZW50KCkKLXsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxf
TUFQCi0gICAtLWN1cnJlbnRfOwotI2Vsc2UKLSAgIGlmICggaXNBcnJheV8gKQotICAgICAgVmFs
dWVJbnRlcm5hbEFycmF5OjpkZWNyZW1lbnQoIGl0ZXJhdG9yXy5hcnJheV8gKTsKLSAgIFZhbHVl
SW50ZXJuYWxNYXA6OmRlY3JlbWVudCggaXRlcmF0b3JfLm1hcF8gKTsKLSNlbmRpZgordm9pZCBW
YWx1ZUl0ZXJhdG9yQmFzZTo6Y29weShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIHsKKyAgY3VycmVu
dF8gPSBvdGhlci5jdXJyZW50XzsKKyAgaXNOdWxsXyA9IG90aGVyLmlzTnVsbF87CiB9CiAKLQot
VmFsdWVJdGVyYXRvckJhc2U6OmRpZmZlcmVuY2VfdHlwZSAKLVZhbHVlSXRlcmF0b3JCYXNlOjpj
b21wdXRlRGlzdGFuY2UoIGNvbnN0IFNlbGZUeXBlICZvdGhlciApIGNvbnN0Ci17Ci0jaWZuZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotIyBpZmRlZiBKU09OX1VTRV9DUFBUTF9TTUFM
TE1BUAotICAgcmV0dXJuIGN1cnJlbnRfIC0gb3RoZXIuY3VycmVudF87Ci0jIGVsc2UKLSAgIC8v
IEl0ZXJhdG9yIGZvciBudWxsIHZhbHVlIGFyZSBpbml0aWFsaXplZCB1c2luZyB0aGUgZGVmYXVs
dAotICAgLy8gY29uc3RydWN0b3IsIHdoaWNoIGluaXRpYWxpemUgY3VycmVudF8gdG8gdGhlIGRl
ZmF1bHQKLSAgIC8vIHN0ZDo6bWFwOjppdGVyYXRvci4gQXMgYmVnaW4oKSBhbmQgZW5kKCkgYXJl
IHR3byBpbnN0YW5jZSAKLSAgIC8vIG9mIHRoZSBkZWZhdWx0IHN0ZDo6bWFwOjppdGVyYXRvciwg
dGhleSBjYW4gbm90IGJlIGNvbXBhcmVkLgotICAgLy8gVG8gYWxsb3cgdGhpcywgd2UgaGFuZGxl
IHRoaXMgY29tcGFyaXNvbiBzcGVjaWZpY2FsbHkuCi0gICBpZiAoIGlzTnVsbF8gICYmICBvdGhl
ci5pc051bGxfICkKLSAgIHsKLSAgICAgIHJldHVybiAwOwotICAgfQotCi0KLSAgIC8vIFVzYWdl
IG9mIHN0ZDo6ZGlzdGFuY2UgaXMgbm90IHBvcnRhYmxlIChkb2VzIG5vdCBjb21waWxlIHdpdGgg
U3VuIFN0dWRpbyAxMiBSb2d1ZVdhdmUgU1RMLAotICAgLy8gd2hpY2ggaXMgdGhlIG9uZSB1c2Vk
IGJ5IGRlZmF1bHQpLgotICAgLy8gVXNpbmcgYSBwb3J0YWJsZSBoYW5kLW1hZGUgdmVyc2lvbiBm
b3Igbm9uIHJhbmRvbSBpdGVyYXRvciBpbnN0ZWFkOgotICAgLy8gICByZXR1cm4gZGlmZmVyZW5j
ZV90eXBlKCBzdGQ6OmRpc3RhbmNlKCBjdXJyZW50Xywgb3RoZXIuY3VycmVudF8gKSApOwotICAg
ZGlmZmVyZW5jZV90eXBlIG15RGlzdGFuY2UgPSAwOwotICAgZm9yICggVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3IgaXQgPSBjdXJyZW50XzsgaXQgIT0gb3RoZXIuY3VycmVudF87ICsraXQg
KQotICAgewotICAgICAgKytteURpc3RhbmNlOwotICAgfQotICAgcmV0dXJuIG15RGlzdGFuY2U7
Ci0jIGVuZGlmCi0jZWxzZQotICAgaWYgKCBpc0FycmF5XyApCi0gICAgICByZXR1cm4gVmFsdWVJ
bnRlcm5hbEFycmF5OjpkaXN0YW5jZSggaXRlcmF0b3JfLmFycmF5Xywgb3RoZXIuaXRlcmF0b3Jf
LmFycmF5XyApOwotICAgcmV0dXJuIFZhbHVlSW50ZXJuYWxNYXA6OmRpc3RhbmNlKCBpdGVyYXRv
cl8ubWFwXywgb3RoZXIuaXRlcmF0b3JfLm1hcF8gKTsKLSNlbmRpZgorVmFsdWUgVmFsdWVJdGVy
YXRvckJhc2U6OmtleSgpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWU6OkNaU3RyaW5nIGN6c3RyaW5n
ID0gKCpjdXJyZW50XykuZmlyc3Q7CisgIGlmIChjenN0cmluZy5kYXRhKCkpIHsKKyAgICBpZiAo
Y3pzdHJpbmcuaXNTdGF0aWNTdHJpbmcoKSkKKyAgICAgIHJldHVybiBWYWx1ZShTdGF0aWNTdHJp
bmcoY3pzdHJpbmcuZGF0YSgpKSk7CisgICAgcmV0dXJuIFZhbHVlKGN6c3RyaW5nLmRhdGEoKSwg
Y3pzdHJpbmcuZGF0YSgpICsgY3pzdHJpbmcubGVuZ3RoKCkpOworICB9CisgIHJldHVybiBWYWx1
ZShjenN0cmluZy5pbmRleCgpKTsKIH0KIAotCi1ib29sIAotVmFsdWVJdGVyYXRvckJhc2U6Omlz
RXF1YWwoIGNvbnN0IFNlbGZUeXBlICZvdGhlciApIGNvbnN0Ci17Ci0jaWZuZGVmIEpTT05fVkFM
VUVfVVNFX0lOVEVSTkFMX01BUAotICAgaWYgKCBpc051bGxfICkKLSAgIHsKLSAgICAgIHJldHVy
biBvdGhlci5pc051bGxfOwotICAgfQotICAgcmV0dXJuIGN1cnJlbnRfID09IG90aGVyLmN1cnJl
bnRfOwotI2Vsc2UKLSAgIGlmICggaXNBcnJheV8gKQotICAgICAgcmV0dXJuIFZhbHVlSW50ZXJu
YWxBcnJheTo6ZXF1YWxzKCBpdGVyYXRvcl8uYXJyYXlfLCBvdGhlci5pdGVyYXRvcl8uYXJyYXlf
ICk7Ci0gICByZXR1cm4gVmFsdWVJbnRlcm5hbE1hcDo6ZXF1YWxzKCBpdGVyYXRvcl8ubWFwXywg
b3RoZXIuaXRlcmF0b3JfLm1hcF8gKTsKLSNlbmRpZgorVUludCBWYWx1ZUl0ZXJhdG9yQmFzZTo6
aW5kZXgoKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlOjpDWlN0cmluZyBjenN0cmluZyA9ICgqY3Vy
cmVudF8pLmZpcnN0OworICBpZiAoIWN6c3RyaW5nLmRhdGEoKSkKKyAgICByZXR1cm4gY3pzdHJp
bmcuaW5kZXgoKTsKKyAgcmV0dXJuIFZhbHVlOjpVSW50KC0xKTsKIH0KIAotCi12b2lkIAotVmFs
dWVJdGVyYXRvckJhc2U6OmNvcHkoIGNvbnN0IFNlbGZUeXBlICZvdGhlciApCi17Ci0jaWZuZGVm
IEpTT05fVkFMVUVfVVNFX0lOVEVSTkFMX01BUAotICAgY3VycmVudF8gPSBvdGhlci5jdXJyZW50
XzsKLSNlbHNlCi0gICBpZiAoIGlzQXJyYXlfICkKLSAgICAgIGl0ZXJhdG9yXy5hcnJheV8gPSBv
dGhlci5pdGVyYXRvcl8uYXJyYXlfOwotICAgaXRlcmF0b3JfLm1hcF8gPSBvdGhlci5pdGVyYXRv
cl8ubWFwXzsKLSNlbmRpZgorU3RyaW5nIFZhbHVlSXRlcmF0b3JCYXNlOjpuYW1lKCkgY29uc3Qg
eworICBjaGFyIGNvbnN0KiBrZWV5OworICBjaGFyIGNvbnN0KiBlbmQ7CisgIGtlZXkgPSBtZW1i
ZXJOYW1lKCZlbmQpOworICBpZiAoIWtlZXkpCisgICAgcmV0dXJuIFN0cmluZygpOworICByZXR1
cm4gU3RyaW5nKGtlZXksIGVuZCk7CiB9CiAKLQotVmFsdWUgCi1WYWx1ZUl0ZXJhdG9yQmFzZTo6
a2V5KCkgY29uc3QKLXsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBj
b25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJlbnRfKS5maXJzdDsKLSAgIGlm
ICggY3pzdHJpbmcuY19zdHIoKSApCi0gICB7Ci0gICAgICBpZiAoIGN6c3RyaW5nLmlzU3RhdGlj
U3RyaW5nKCkgKQotICAgICAgICAgcmV0dXJuIFZhbHVlKCBTdGF0aWNTdHJpbmcoIGN6c3RyaW5n
LmNfc3RyKCkgKSApOwotICAgICAgcmV0dXJuIFZhbHVlKCBjenN0cmluZy5jX3N0cigpICk7Ci0g
ICB9Ci0gICByZXR1cm4gVmFsdWUoIGN6c3RyaW5nLmluZGV4KCkgKTsKLSNlbHNlCi0gICBpZiAo
IGlzQXJyYXlfICkKLSAgICAgIHJldHVybiBWYWx1ZSggVmFsdWVJbnRlcm5hbEFycmF5OjppbmRl
eE9mKCBpdGVyYXRvcl8uYXJyYXlfICkgKTsKLSAgIGJvb2wgaXNTdGF0aWM7Ci0gICBjb25zdCBj
aGFyICptZW1iZXJOYW1lID0gVmFsdWVJbnRlcm5hbE1hcDo6a2V5KCBpdGVyYXRvcl8ubWFwXywg
aXNTdGF0aWMgKTsKLSAgIGlmICggaXNTdGF0aWMgKQotICAgICAgcmV0dXJuIFZhbHVlKCBTdGF0
aWNTdHJpbmcoIG1lbWJlck5hbWUgKSApOwotICAgcmV0dXJuIFZhbHVlKCBtZW1iZXJOYW1lICk7
Ci0jZW5kaWYKK2NoYXIgY29uc3QqIFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKCkgY29u
c3QgeworICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVudF8pLmZpcnN0LmRhdGEoKTsKKyAg
cmV0dXJuIGNuYW1lID8gY25hbWUgOiAiIjsKIH0KIAotCi1VSW50IAotVmFsdWVJdGVyYXRvckJh
c2U6OmluZGV4KCkgY29uc3QKLXsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQ
Ci0gICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJlbnRfKS5maXJzdDsK
LSAgIGlmICggIWN6c3RyaW5nLmNfc3RyKCkgKQotICAgICAgcmV0dXJuIGN6c3RyaW5nLmluZGV4
KCk7Ci0gICByZXR1cm4gVmFsdWU6OlVJbnQoIC0xICk7Ci0jZWxzZQotICAgaWYgKCBpc0FycmF5
XyApCi0gICAgICByZXR1cm4gVmFsdWU6OlVJbnQoIFZhbHVlSW50ZXJuYWxBcnJheTo6aW5kZXhP
ZiggaXRlcmF0b3JfLmFycmF5XyApICk7Ci0gICByZXR1cm4gVmFsdWU6OlVJbnQoIC0xICk7Ci0j
ZW5kaWYKLX0KLQotCi1jb25zdCBjaGFyICoKLVZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1l
KCkgY29uc3QKLXsKLSNpZm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi0gICBjb25z
dCBjaGFyICpuYW1lID0gKCpjdXJyZW50XykuZmlyc3QuY19zdHIoKTsKLSAgIHJldHVybiBuYW1l
ID8gbmFtZSA6ICIiOwotI2Vsc2UKLSAgIGlmICggIWlzQXJyYXlfICkKLSAgICAgIHJldHVybiBW
YWx1ZUludGVybmFsTWFwOjprZXkoIGl0ZXJhdG9yXy5tYXBfICk7Ci0gICByZXR1cm4gIiI7Ci0j
ZW5kaWYKK2NoYXIgY29uc3QqIFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKGNoYXIgY29u
c3QqKiBlbmQpIGNvbnN0IHsKKyAgY29uc3QgY2hhciogY25hbWUgPSAoKmN1cnJlbnRfKS5maXJz
dC5kYXRhKCk7CisgIGlmICghY25hbWUpIHsKKyAgICAqZW5kID0gbnVsbHB0cjsKKyAgICByZXR1
cm4gbnVsbHB0cjsKKyAgfQorICAqZW5kID0gY25hbWUgKyAoKmN1cnJlbnRfKS5maXJzdC5sZW5n
dGgoKTsKKyAgcmV0dXJuIGNuYW1lOwogfQogCi0KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KQEAgLTIxOSwzNSArMTE2LDIwIEBAIFZhbHVlSXRlcmF0b3JCYXNlOjpt
ZW1iZXJOYW1lKCkgY29uc3QKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLVZhbHVlQ29u
c3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKCkKLXsKLX0KK1ZhbHVlQ29uc3RJdGVyYXRv
cjo6VmFsdWVDb25zdEl0ZXJhdG9yKCkgPSBkZWZhdWx0OwogCitWYWx1ZUNvbnN0SXRlcmF0b3I6
OlZhbHVlQ29uc3RJdGVyYXRvcigKKyAgICBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVy
YXRvciYgY3VycmVudCkKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKGN1cnJlbnQpIHt9CiAKLSNp
Zm5kZWYgSlNPTl9WQUxVRV9VU0VfSU5URVJOQUxfTUFQCi1WYWx1ZUNvbnN0SXRlcmF0b3I6OlZh
bHVlQ29uc3RJdGVyYXRvciggY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgJmN1
cnJlbnQgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggY3VycmVudCApCi17Ci19Ci0jZWxzZQot
VmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJu
YWxBcnJheTo6SXRlcmF0b3JTdGF0ZSAmc3RhdGUgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSgg
c3RhdGUgKQotewotfQorVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoVmFs
dWVJdGVyYXRvciBjb25zdCYgb3RoZXIpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikg
e30KIAotVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoIGNvbnN0IFZhbHVl
SW50ZXJuYWxNYXA6Okl0ZXJhdG9yU3RhdGUgJnN0YXRlICkKLSAgIDogVmFsdWVJdGVyYXRvckJh
c2UoIHN0YXRlICkKLXsKK1ZhbHVlQ29uc3RJdGVyYXRvciYgVmFsdWVDb25zdEl0ZXJhdG9yOjoK
K29wZXJhdG9yPShjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSYgb3RoZXIpIHsKKyAgY29weShvdGhl
cik7CisgIHJldHVybiAqdGhpczsKIH0KLSNlbmRpZgotCi1WYWx1ZUNvbnN0SXRlcmF0b3IgJgot
VmFsdWVDb25zdEl0ZXJhdG9yOjpvcGVyYXRvciA9KCBjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSAm
b3RoZXIgKQotewotICAgY29weSggb3RoZXIgKTsKLSAgIHJldHVybiAqdGhpczsKLX0KLQogCiAv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjU3LDQzICsxMzksMjEgQEAgVmFsdWVDb25z
dEl0ZXJhdG9yOjpvcGVyYXRvciA9KCBjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSAmb3RoZXIgKQog
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRv
cigpCi17Ci19CitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKCkgPSBkZWZhdWx0OwogCitW
YWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0
ZXJhdG9yJiBjdXJyZW50KQorICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkge30KIAot
I2lmbmRlZiBKU09OX1ZBTFVFX1VTRV9JTlRFUk5BTF9NQVAKLVZhbHVlSXRlcmF0b3I6OlZhbHVl
SXRlcmF0b3IoIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yICZjdXJyZW50ICkK
LSAgIDogVmFsdWVJdGVyYXRvckJhc2UoIGN1cnJlbnQgKQotewotfQotI2Vsc2UKLVZhbHVlSXRl
cmF0b3I6OlZhbHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxBcnJheTo6SXRlcmF0b3JT
dGF0ZSAmc3RhdGUgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggc3RhdGUgKQoteworVmFsdWVJ
dGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3ImIG90aGVyKQor
ICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHsKKyAgdGhyb3dSdW50aW1lRXJyb3IoIkNv
bnN0SXRlcmF0b3IgdG8gSXRlcmF0b3Igc2hvdWxkIG5ldmVyIGJlIGFsbG93ZWQuIik7CiB9CiAK
LVZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoIGNvbnN0IFZhbHVlSW50ZXJuYWxNYXA6Okl0
ZXJhdG9yU3RhdGUgJnN0YXRlICkKLSAgIDogVmFsdWVJdGVyYXRvckJhc2UoIHN0YXRlICkKLXsK
LX0KLSNlbmRpZgotCi1WYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKCBjb25zdCBWYWx1ZUNv
bnN0SXRlcmF0b3IgJm90aGVyICkKLSAgIDogVmFsdWVJdGVyYXRvckJhc2UoIG90aGVyICkKLXsK
LX0KLQotVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvciggY29uc3QgVmFsdWVJdGVyYXRvciAm
b3RoZXIgKQotICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZSggb3RoZXIgKQotewotfQorVmFsdWVJdGVy
YXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUl0ZXJhdG9yJiBvdGhlcikgPSBkZWZhdWx0
OwogCi1WYWx1ZUl0ZXJhdG9yICYKLVZhbHVlSXRlcmF0b3I6Om9wZXJhdG9yID0oIGNvbnN0IFNl
bGZUeXBlICZvdGhlciApCi17Ci0gICBjb3B5KCBvdGhlciApOwotICAgcmV0dXJuICp0aGlzOwor
VmFsdWVJdGVyYXRvciYgVmFsdWVJdGVyYXRvcjo6b3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBv
dGhlcikgeworICBjb3B5KG90aGVyKTsKKyAgcmV0dXJuICp0aGlzOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBKc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAKaW5kZXggYjQ0ZGVmMzcxNmRmNjZl
MWE2OGY2ZDRlZDQyNDg1Y2JiYTVjYWY2OC4uNDFkZmQ4Y2Y2MDhjY2Y1MDM1Mjc3YmY1NmRjZjky
NWNhMjE2MGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL2pzb25fd3JpdGVyLmNwcApAQCAtMSw4NDEgKzEsMTI1
MyBAQAotLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBDb3B5cmlnaHQg
MjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3BwIEF1dGhvcnMKIC8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
CiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgogLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKIAogI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQotIyBpbmNsdWRlIDxq
c29uL3dyaXRlci5oPgotIyBpbmNsdWRlICJqc29uX3Rvb2wuaCIKKyNpbmNsdWRlICJqc29uX3Rv
b2wuaCIKKyNpbmNsdWRlIDxqc29uL3dyaXRlci5oPgogI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpT
T05fSVNfQU1BTEdBTUFUSU9OKQotI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8YXNzZXJ0
Lmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxz
c3RyZWFtPgorI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8Y3N0cmluZz4KICNpbmNsdWRl
IDxpb21hbmlwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8
c3N0cmVhbT4KKyNpbmNsdWRlIDx1dGlsaXR5PgogCi0jaWYgX01TQ19WRVIgPj0gMTQwMCAvLyBW
QysrIDguMAotI3ByYWdtYSB3YXJuaW5nKCBkaXNhYmxlIDogNDk5NiApICAgLy8gZGlzYWJsZSB3
YXJuaW5nIGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgorI2lmIF9fY3BsdXNwbHVzID49
IDIwMTEwM0wKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxjc3RkaW8+CisKKyNpZiAhZGVm
aW5lZChpc25hbikKKyNkZWZpbmUgaXNuYW4gc3RkOjppc25hbgogI2VuZGlmCiAKLW5hbWVzcGFj
ZSBKc29uIHsKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNkZWZpbmUgaXNmaW5pdGUgc3RkOjpp
c2Zpbml0ZQorI2VuZGlmCiAKLXN0YXRpYyBib29sIGNvbnRhaW5zQ29udHJvbENoYXJhY3Rlcigg
Y29uc3QgY2hhciogc3RyICkKLXsKLSAgIHdoaWxlICggKnN0ciApIAotICAgewotICAgICAgaWYg
KCBpc0NvbnRyb2xDaGFyYWN0ZXIoICooc3RyKyspICkgKQotICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICB9Ci0gICByZXR1cm4gZmFsc2U7Ci19CisjZWxzZQorI2luY2x1ZGUgPGNtYXRoPgorI2lu
Y2x1ZGUgPGNzdGRpbz4KIAorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWYgIWRlZmluZWQoaXNu
YW4pCisjaW5jbHVkZSA8ZmxvYXQuaD4KKyNkZWZpbmUgaXNuYW4gX2lzbmFuCisjZW5kaWYKIAot
c3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyggTGFyZ2VzdEludCB2YWx1ZSApCi17Ci0gICBVSW50
VG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgY2hhciAqY3VycmVudCA9IGJ1ZmZlciArIHNpemVv
ZihidWZmZXIpOwotICAgYm9vbCBpc05lZ2F0aXZlID0gdmFsdWUgPCAwOwotICAgaWYgKCBpc05l
Z2F0aXZlICkKLSAgICAgIHZhbHVlID0gLXZhbHVlOwotICAgdWludFRvU3RyaW5nKCBMYXJnZXN0
VUludCh2YWx1ZSksIGN1cnJlbnQgKTsKLSAgIGlmICggaXNOZWdhdGl2ZSApCi0gICAgICAqLS1j
dXJyZW50ID0gJy0nOwotICAgYXNzZXJ0KCBjdXJyZW50ID49IGJ1ZmZlciApOwotICAgcmV0dXJu
IGN1cnJlbnQ7Ci19CisjaWYgIWRlZmluZWQoaXNmaW5pdGUpCisjaW5jbHVkZSA8ZmxvYXQuaD4K
KyNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQorI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChfQ1JUX1NF
Q1VSRV9DUFBfT1ZFUkxPQURfU1RBTkRBUkRfTkFNRVMpCisjZGVmaW5lIF9DUlRfU0VDVVJFX0NQ
UF9PVkVSTE9BRF9TVEFOREFSRF9OQU1FUyAxCisjZW5kaWYgLy9fQ1JUX1NFQ1VSRV9DUFBfT1ZF
UkxPQURfU1RBTkRBUkRfTkFNRVMKIAotc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyggTGFyZ2Vz
dFVJbnQgdmFsdWUgKQotewotICAgVUludFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgIGNoYXIg
KmN1cnJlbnQgPSBidWZmZXIgKyBzaXplb2YoYnVmZmVyKTsKLSAgIHVpbnRUb1N0cmluZyggdmFs
dWUsIGN1cnJlbnQgKTsKLSAgIGFzc2VydCggY3VycmVudCA+PSBidWZmZXIgKTsKLSAgIHJldHVy
biBjdXJyZW50OwotfQorI2VuZGlmIC8vX01TQ19WRVIKIAotI2lmIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCisjaWYgZGVmaW5lZChfX3N1bikgJiYgZGVmaW5lZChfX1NWUjQpIC8vIFNvbGFyaXMK
KyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNpbmNsdWRlIDxpZWVlZnAuaD4KKyNkZWZpbmUgaXNm
aW5pdGUgZmluaXRlCisjZW5kaWYKKyNlbmRpZgogCi1zdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5n
KCBJbnQgdmFsdWUgKQotewotICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoIExhcmdlc3RJbnQodmFs
dWUpICk7Ci19CisjaWYgZGVmaW5lZChfX2hwdXgpCisjaWYgIWRlZmluZWQoaXNmaW5pdGUpCisj
aWYgZGVmaW5lZChfX2lhNjQpICYmICFkZWZpbmVkKGZpbml0ZSkKKyNkZWZpbmUgaXNmaW5pdGUo
eCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICgoc2l6ZW9mKHgpID09IHNpemVvZihmbG9hdCkgPyBfSXNmaW5pdGVmKHgpIDog
X0lzRmluaXRlKHgpKSkKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKIAorI2lmICFkZWZpbmVkKGlz
bmFuKQorLy8gSUVFRSBzdGFuZGFyZCBzdGF0ZXMgdGhhdCBOYU4gdmFsdWVzIHdpbGwgbm90IGNv
bXBhcmUgdG8gdGhlbXNlbHZlcworI2RlZmluZSBpc25hbih4KSAoeCAhPSB4KQorI2VuZGlmCiAK
LXN0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoIFVJbnQgdmFsdWUgKQotewotICAgcmV0dXJuIHZh
bHVlVG9TdHJpbmcoIExhcmdlc3RVSW50KHZhbHVlKSApOwotfQorI2lmICFkZWZpbmVkKF9fQVBQ
TEVfXykKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNkZWZpbmUgaXNmaW5pdGUgZmluaXRlCisj
ZW5kaWYKKyNlbmRpZgorI2VuZGlmCiAKLSNlbmRpZiAvLyAjIGlmIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKy8vIERpc2FibGUgd2FybmluZyBhYm91dCBz
dHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikK
KyNlbmRpZgogCituYW1lc3BhY2UgSnNvbiB7CiAKLXN0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmco
IGRvdWJsZSB2YWx1ZSApCi17Ci0gICBjaGFyIGJ1ZmZlclszMl07Ci0jaWYgZGVmaW5lZChfTVND
X1ZFUikgJiYgZGVmaW5lZChfX1NURENfU0VDVVJFX0xJQl9fKSAvLyBVc2Ugc2VjdXJlIHZlcnNp
b24gd2l0aCB2aXN1YWwgc3R1ZGlvIDIwMDUgdG8gYXZvaWQgd2FybmluZy4gCi0gICBzcHJpbnRm
X3MoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIiUjLjE2ZyIsIHZhbHVlKTsgCi0jZWxzZQkKLSAg
IHNwcmludGYoYnVmZmVyLCAiJSMuMTZnIiwgdmFsdWUpOyAKKyNpZiBfX2NwbHVzcGx1cyA+PSAy
MDExMDNMIHx8IChkZWZpbmVkKF9DUFBMSUJfVkVSKSAmJiBfQ1BQTElCX1ZFUiA+PSA1MjApCit0
eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxTdHJlYW1Xcml0ZXI+IFN0cmVhbVdyaXRlclB0cjsKKyNl
bHNlCit0eXBlZGVmIHN0ZDo6YXV0b19wdHI8U3RyZWFtV3JpdGVyPiBTdHJlYW1Xcml0ZXJQdHI7
CiAjZW5kaWYKLSAgIGNoYXIqIGNoID0gYnVmZmVyICsgc3RybGVuKGJ1ZmZlcikgLSAxOwotICAg
aWYgKCpjaCAhPSAnMCcpIHJldHVybiBidWZmZXI7IC8vIG5vdGhpbmcgdG8gdHJ1bmNhdGUsIHNv
IHNhdmUgdGltZQotICAgd2hpbGUoY2ggPiBidWZmZXIgJiYgKmNoID09ICcwJyl7Ci0gICAgIC0t
Y2g7Ci0gICB9Ci0gICBjaGFyKiBsYXN0X25vbnplcm8gPSBjaDsKLSAgIHdoaWxlKGNoID49IGJ1
ZmZlcil7Ci0gICAgIHN3aXRjaCgqY2gpewotICAgICBjYXNlICcwJzoKLSAgICAgY2FzZSAnMSc6
Ci0gICAgIGNhc2UgJzInOgotICAgICBjYXNlICczJzoKLSAgICAgY2FzZSAnNCc6Ci0gICAgIGNh
c2UgJzUnOgotICAgICBjYXNlICc2JzoKLSAgICAgY2FzZSAnNyc6Ci0gICAgIGNhc2UgJzgnOgot
ICAgICBjYXNlICc5JzoKLSAgICAgICAtLWNoOwotICAgICAgIGNvbnRpbnVlOwotICAgICBjYXNl
ICcuJzoKLSAgICAgICAvLyBUcnVuY2F0ZSB6ZXJvZXMgdG8gc2F2ZSBieXRlcyBpbiBvdXRwdXQs
IGJ1dCBrZWVwIG9uZS4KLSAgICAgICAqKGxhc3Rfbm9uemVybysyKSA9ICdcMCc7Ci0gICAgICAg
cmV0dXJuIGJ1ZmZlcjsKLSAgICAgZGVmYXVsdDoKLSAgICAgICByZXR1cm4gYnVmZmVyOwotICAg
ICB9Ci0gICB9Ci0gICByZXR1cm4gYnVmZmVyOwotfQotCi0KLXN0ZDo6c3RyaW5nIHZhbHVlVG9T
dHJpbmcoIGJvb2wgdmFsdWUgKQotewotICAgcmV0dXJuIHZhbHVlID8gInRydWUiIDogImZhbHNl
IjsKLX0KLQotc3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZyggY29uc3QgY2hhciAqdmFs
dWUgKQotewotICAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAgICByZXR1cm4gIiI7Ci0gICAvLyBO
b3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNvZGUuLi4KLSAgIGlmIChzdHJwYnJrKHZhbHVlLCAi
XCJcXFxiXGZcblxyXHQiKSA9PSBOVUxMICYmICFjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIoIHZh
bHVlICkpCi0gICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIlwiIikgKyB2YWx1ZSArICJcIiI7Ci0g
ICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5kIGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFyYWN0
ZXJzLgotICAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6c3RyaW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1
dCB0aGlzIHNob3VsZCBiZSByYXJlLgotICAgLy8gKE5vdGU6IGZvcndhcmQgc2xhc2hlcyBhcmUg
Km5vdCogcmFyZSwgYnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQotICAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBtYXhzaXplID0gc3RybGVuKHZhbHVlKSoyICsgMzsgLy8gYWxsZXNjYXBlZCtx
dW90ZXMrTlVMTAotICAgc3RkOjpzdHJpbmcgcmVzdWx0OwotICAgcmVzdWx0LnJlc2VydmUobWF4
c2l6ZSk7IC8vIHRvIGF2b2lkIGxvdHMgb2YgbWFsbG9jcwotICAgcmVzdWx0ICs9ICJcIiI7Ci0g
ICBmb3IgKGNvbnN0IGNoYXIqIGM9dmFsdWU7ICpjICE9IDA7ICsrYykKLSAgIHsKLSAgICAgIHN3
aXRjaCgqYykKLSAgICAgIHsKLSAgICAgICAgIGNhc2UgJ1wiJzoKLSAgICAgICAgICAgIHJlc3Vs
dCArPSAiXFxcIiI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgIGNhc2UgJ1xcJzoKLSAg
ICAgICAgICAgIHJlc3VsdCArPSAiXFxcXCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
IGNhc2UgJ1xiJzoKLSAgICAgICAgICAgIHJlc3VsdCArPSAiXFxiIjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgY2FzZSAnXGYnOgotICAgICAgICAgICAgcmVzdWx0ICs9ICJcXGYiOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICBjYXNlICdcbic6Ci0gICAgICAgICAgICByZXN1
bHQgKz0gIlxcbiI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgIGNhc2UgJ1xyJzoKLSAg
ICAgICAgICAgIHJlc3VsdCArPSAiXFxyIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
Y2FzZSAnXHQnOgotICAgICAgICAgICAgcmVzdWx0ICs9ICJcXHQiOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAvL2Nhc2UgJy8nOgotICAgICAgICAgICAgLy8gRXZlbiB0aG91Z2ggXC8g
aXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVzY2FwZSBpbiBKU09OLCBhIGJhcmUKLSAgICAgICAgICAg
IC8vIHNsYXNoIGlzIGFsc28gbGVnYWwsIHNvIEkgc2VlIG5vIHJlYXNvbiB0byBlc2NhcGUgaXQu
Ci0gICAgICAgICAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1pc3VuZGVyc3RhbmRpbmcgc29tZXRo
aW5nLgotICAgICAgICAgICAgLy8gYmxlcCBub3RlczogYWN0dWFsbHkgZXNjYXBpbmcgXC8gbWF5
IGJlIHVzZWZ1bCBpbiBqYXZhc2NyaXB0IHRvIGF2b2lkIDwvIAotICAgICAgICAgICAgLy8gc2Vx
dWVuY2UuCi0gICAgICAgICAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNv
bXBhdGliaWxpdHkgbW9kZSBhbmQgcHJldmVudCB0aGlzIAotICAgICAgICAgICAgLy8gc2VxdWVu
Y2UgZnJvbSBvY2N1cnJpbmcuCi0gICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgaWYgKCBp
c0NvbnRyb2xDaGFyYWN0ZXIoICpjICkgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
c3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKLSAgICAgICAgICAgICAgIG9zcyA8PCAiXFx1IiA8PCBz
dGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAnKSA8PCBzdGQ6OnNl
dHcoNCkgPDwgc3RhdGljX2Nhc3Q8aW50PigqYyk7Ci0gICAgICAgICAgICAgICByZXN1bHQgKz0g
b3NzLnN0cigpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgcmVzdWx0ICs9ICpjOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICB9Ci0gICB9Ci0gICByZXN1bHQgKz0gIlwiIjsKLSAgIHJldHVybiBy
ZXN1bHQ7CisKK1N0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUpIHsKKyAgVUlu
dFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgY2hhciogY3VycmVudCA9IGJ1ZmZlciArIHNpemVv
ZihidWZmZXIpOworICBpZiAodmFsdWUgPT0gVmFsdWU6Om1pbkxhcmdlc3RJbnQpIHsKKyAgICB1
aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMSwgY3VycmVu
dCk7CisgICAgKi0tY3VycmVudCA9ICctJzsKKyAgfSBlbHNlIGlmICh2YWx1ZSA8IDApIHsKKyAg
ICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoLXZhbHVlKSwgY3VycmVudCk7CisgICAgKi0tY3Vy
cmVudCA9ICctJzsKKyAgfSBlbHNlIHsKKyAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFs
dWUpLCBjdXJyZW50KTsKKyAgfQorICBhc3NlcnQoY3VycmVudCA+PSBidWZmZXIpOworICByZXR1
cm4gY3VycmVudDsKIH0KIAotLy8gQ2xhc3MgV3JpdGVyCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLVdyaXRlcjo6
fldyaXRlcigpCi17CitTdHJpbmcgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSkgewor
ICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICBjaGFyKiBjdXJyZW50ID0gYnVmZmVyICsg
c2l6ZW9mKGJ1ZmZlcik7CisgIHVpbnRUb1N0cmluZyh2YWx1ZSwgY3VycmVudCk7CisgIGFzc2Vy
dChjdXJyZW50ID49IGJ1ZmZlcik7CisgIHJldHVybiBjdXJyZW50OwogfQogCisjaWYgZGVmaW5l
ZChKU09OX0hBU19JTlQ2NCkKKworU3RyaW5nIHZhbHVlVG9TdHJpbmcoSW50IHZhbHVlKSB7IHJl
dHVybiB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQodmFsdWUpKTsgfQogCi0vLyBDbGFzcyBGYXN0
V3JpdGVyCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KK1N0cmluZyB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFsdWUpIHsg
cmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFsdWUpKTsgfQogCi1GYXN0V3JpdGVy
OjpGYXN0V3JpdGVyKCkKLSAgIDogeWFtbENvbXBhdGlibGl0eUVuYWJsZWRfKCBmYWxzZSApCi17
Ci19CisjZW5kaWYgLy8gIyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQogCituYW1lc3BhY2Ug
eworU3RyaW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlLAorICAgICAgICAgICAgICAgICAg
ICAgYm9vbCB1c2VTcGVjaWFsRmxvYXRzLAorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IHByZWNpc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgIFByZWNpc2lvblR5cGUgcHJlY2lz
aW9uVHlwZSkgeworICAvLyBQcmludCBpbnRvIHRoZSBidWZmZXIuIFdlIG5lZWQgbm90IHJlcXVl
c3QgdGhlIGFsdGVybmF0aXZlIHJlcHJlc2VudGF0aW9uCisgIC8vIHRoYXQgYWx3YXlzIGhhcyBh
IGRlY2ltYWwgcG9pbnQgYmVjYXVzZSBKU09OIGRvZXNuJ3QgZGlzdGluZ3Vpc2ggdGhlCisgIC8v
IGNvbmNlcHRzIG9mIHJlYWxzIGFuZCBpbnRlZ2Vycy4KKyAgaWYgKCFpc2Zpbml0ZSh2YWx1ZSkp
IHsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgcmVwc1syXVszXSA9IHt7Ik5hTiIsICIt
SW5maW5pdHkiLCAiSW5maW5pdHkifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7Im51bGwiLCAiLTFlKzk5OTkiLCAiMWUrOTk5OSJ9fTsKKyAgICByZXR1cm4g
cmVwc1t1c2VTcGVjaWFsRmxvYXRzID8gMCA6IDFdCisgICAgICAgICAgICAgICBbaXNuYW4odmFs
dWUpID8gMCA6ICh2YWx1ZSA8IDApID8gMSA6IDJdOworICB9CisKKyAgU3RyaW5nIGJ1ZmZlcihz
aXplX3QoMzYpLCAnXDAnKTsKKyAgd2hpbGUgKHRydWUpIHsKKyAgICBpbnQgbGVuID0ganNvbmNw
cF9zbnByaW50ZigKKyAgICAgICAgJipidWZmZXIuYmVnaW4oKSwgYnVmZmVyLnNpemUoKSwKKyAg
ICAgICAgKHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9uVHlwZTo6c2lnbmlmaWNhbnREaWdpdHMp
ID8gIiUuKmciIDogIiUuKmYiLAorICAgICAgICBwcmVjaXNpb24sIHZhbHVlKTsKKyAgICBhc3Nl
cnQobGVuID49IDApOworICAgIGF1dG8gd291bGRQcmludCA9IHN0YXRpY19jYXN0PHNpemVfdD4o
bGVuKTsKKyAgICBpZiAod291bGRQcmludCA+PSBidWZmZXIuc2l6ZSgpKSB7CisgICAgICBidWZm
ZXIucmVzaXplKHdvdWxkUHJpbnQgKyAxKTsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBi
dWZmZXIucmVzaXplKHdvdWxkUHJpbnQpOworICAgIGJyZWFrOworICB9CisKKyAgYnVmZmVyLmVy
YXNlKGZpeE51bWVyaWNMb2NhbGUoYnVmZmVyLmJlZ2luKCksIGJ1ZmZlci5lbmQoKSksIGJ1ZmZl
ci5lbmQoKSk7CisKKyAgLy8gc3RyaXAgdGhlIHplcm8gcGFkZGluZyBmcm9tIHRoZSByaWdodAor
ICBpZiAocHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb25UeXBlOjpkZWNpbWFsUGxhY2VzKSB7Cisg
ICAgYnVmZmVyLmVyYXNlKGZpeFplcm9zSW5UaGVFbmQoYnVmZmVyLmJlZ2luKCksIGJ1ZmZlci5l
bmQoKSksIGJ1ZmZlci5lbmQoKSk7CisgIH0KKworICAvLyB0cnkgdG8gZW5zdXJlIHdlIHByZXNl
cnZlIHRoZSBmYWN0IHRoYXQgdGhpcyB3YXMgZ2l2ZW4gdG8gdXMgYXMgYSBkb3VibGUgb24KKyAg
Ly8gaW5wdXQKKyAgaWYgKGJ1ZmZlci5maW5kKCcuJykgPT0gYnVmZmVyLm5wb3MgJiYgYnVmZmVy
LmZpbmQoJ2UnKSA9PSBidWZmZXIubnBvcykgeworICAgIGJ1ZmZlciArPSAiLjAiOworICB9Cisg
IHJldHVybiBidWZmZXI7Cit9Cit9IC8vIG5hbWVzcGFjZQogCi12b2lkIAotRmFzdFdyaXRlcjo6
ZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKQotewotICAgeWFtbENvbXBhdGlibGl0eUVuYWJsZWRf
ID0gdHJ1ZTsKK1N0cmluZyB2YWx1ZVRvU3RyaW5nKGRvdWJsZSB2YWx1ZSwKKyAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBwcmVjaXNpb24sCisgICAgICAgICAgICAgICAgICAgICBQ
cmVjaXNpb25UeXBlIHByZWNpc2lvblR5cGUpIHsKKyAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFs
dWUsIGZhbHNlLCBwcmVjaXNpb24sIHByZWNpc2lvblR5cGUpOwogfQogCitTdHJpbmcgdmFsdWVU
b1N0cmluZyhib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0K
Kworc3RhdGljIGJvb2wgaXNBbnlDaGFyUmVxdWlyZWRRdW90aW5nKGNoYXIgY29uc3QqIHMsIHNp
emVfdCBuKSB7CisgIGFzc2VydChzIHx8ICFuKTsKIAotc3RkOjpzdHJpbmcgCi1GYXN0V3JpdGVy
Ojp3cml0ZSggY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAgZG9jdW1lbnRfID0gIiI7Ci0gICB3
cml0ZVZhbHVlKCByb290ICk7Ci0gICBkb2N1bWVudF8gKz0gIlxuIjsKLSAgIHJldHVybiBkb2N1
bWVudF87CisgIGNoYXIgY29uc3QqIGNvbnN0IGVuZCA9IHMgKyBuOworICBmb3IgKGNoYXIgY29u
c3QqIGN1ciA9IHM7IGN1ciA8IGVuZDsgKytjdXIpIHsKKyAgICBpZiAoKmN1ciA9PSAnXFwnIHx8
ICpjdXIgPT0gJ1wiJyB8fCAqY3VyIDwgJyAnIHx8CisgICAgICAgIHN0YXRpY19jYXN0PHVuc2ln
bmVkIGNoYXI+KCpjdXIpIDwgMHg4MCkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVy
biBmYWxzZTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGludCB1dGY4VG9Db2RlcG9pbnQoY29uc3Qg
Y2hhciomIHMsIGNvbnN0IGNoYXIqIGUpIHsKKyAgY29uc3QgdW5zaWduZWQgaW50IFJFUExBQ0VN
RU5UX0NIQVJBQ1RFUiA9IDB4RkZGRDsKKworICB1bnNpZ25lZCBpbnQgZmlyc3RCeXRlID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oKnMpOworCisgIGlmIChmaXJzdEJ5dGUgPCAweDgwKQor
ICAgIHJldHVybiBmaXJzdEJ5dGU7CisKKyAgaWYgKGZpcnN0Qnl0ZSA8IDB4RTApIHsKKyAgICBp
ZiAoZSAtIHMgPCAyKQorICAgICAgcmV0dXJuIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAg
IHVuc2lnbmVkIGludCBjYWxjdWxhdGVkID0KKyAgICAgICAgKChmaXJzdEJ5dGUgJiAweDFGKSA8
PCA2KSB8IChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHNbMV0pICYgMHgzRik7CisgICAgcyAr
PSAxOworICAgIC8vIG92ZXJzaXplZCBlbmNvZGVkIGNoYXJhY3RlcnMgYXJlIGludmFsaWQKKyAg
ICByZXR1cm4gY2FsY3VsYXRlZCA8IDB4ODAgPyBSRVBMQUNFTUVOVF9DSEFSQUNURVIgOiBjYWxj
dWxhdGVkOworICB9CisKKyAgaWYgKGZpcnN0Qnl0ZSA8IDB4RjApIHsKKyAgICBpZiAoZSAtIHMg
PCAzKQorICAgICAgcmV0dXJuIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIHVuc2lnbmVk
IGludCBjYWxjdWxhdGVkID0gKChmaXJzdEJ5dGUgJiAweDBGKSA8PCAxMikgfAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHNbMV0pICYg
MHgzRikgPDwgNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXRpY19jYXN0
PHVuc2lnbmVkIGludD4oc1syXSkgJiAweDNGKTsKKyAgICBzICs9IDI7CisgICAgLy8gc3Vycm9n
YXRlcyBhcmVuJ3QgdmFsaWQgY29kZXBvaW50cyBpdHNlbGYKKyAgICAvLyBzaG91bGRuJ3QgYmUg
VVRGLTggZW5jb2RlZAorICAgIGlmIChjYWxjdWxhdGVkID49IDB4RDgwMCAmJiBjYWxjdWxhdGVk
IDw9IDB4REZGRikKKyAgICAgIHJldHVybiBSRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgLy8g
b3ZlcnNpemVkIGVuY29kZWQgY2hhcmFjdGVycyBhcmUgaW52YWxpZAorICAgIHJldHVybiBjYWxj
dWxhdGVkIDwgMHg4MDAgPyBSRVBMQUNFTUVOVF9DSEFSQUNURVIgOiBjYWxjdWxhdGVkOworICB9
CisKKyAgaWYgKGZpcnN0Qnl0ZSA8IDB4RjgpIHsKKyAgICBpZiAoZSAtIHMgPCA0KQorICAgICAg
cmV0dXJuIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIHVuc2lnbmVkIGludCBjYWxjdWxh
dGVkID0gKChmaXJzdEJ5dGUgJiAweDA3KSA8PCAxOCkgfAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHNbMV0pICYgMHgzRikgPDwgMTIp
IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3RhdGljX2Nhc3Q8dW5zaWduZWQg
aW50PihzWzJdKSAmIDB4M0YpIDw8IDYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHNbM10pICYgMHgzRik7CisgICAgcyArPSAzOwor
ICAgIC8vIG92ZXJzaXplZCBlbmNvZGVkIGNoYXJhY3RlcnMgYXJlIGludmFsaWQKKyAgICByZXR1
cm4gY2FsY3VsYXRlZCA8IDB4MTAwMDAgPyBSRVBMQUNFTUVOVF9DSEFSQUNURVIgOiBjYWxjdWxh
dGVkOworICB9CisKKyAgcmV0dXJuIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKK30KIAotdm9pZCAK
LUZhc3RXcml0ZXI6OndyaXRlVmFsdWUoIGNvbnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICBzd2l0
Y2ggKCB2YWx1ZS50eXBlKCkgKQotICAgewotICAgY2FzZSBudWxsVmFsdWU6Ci0gICAgICBkb2N1
bWVudF8gKz0gIm51bGwiOworc3RhdGljIGNvbnN0IGNoYXIgaGV4MltdID0gIjAwMDEwMjAzMDQw
NTA2MDcwODA5MGEwYjBjMGQwZTBmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEwMTEx
MjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0YjRjNGQ0ZTRmIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjUwNTE1MjUzNTQ1NTU2NTc1ODU5NWE1YjVjNWQ1ZTVmIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjYwNjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZm
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjcwNzE3MjczNzQ3NTc2Nzc3ODc5N2E3Yjdj
N2Q3ZTdmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjgwODE4MjgzODQ4NTg2ODc4ODg5
OGE4YjhjOGQ4ZThmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjkwOTE5MjkzOTQ5NTk2
OTc5ODk5OWE5YjljOWQ5ZTlmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImEwYTFhMmEz
YTRhNWE2YTdhOGE5YWFhYmFjYWRhZWFmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImIw
YjFiMmIzYjRiNWI2YjdiOGI5YmFiYmJjYmRiZWJmIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImMwYzFjMmMzYzRjNWM2YzdjOGM5Y2FjYmNjY2RjZWNmIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImQwZDFkMmQzZDRkNWQ2ZDdkOGQ5ZGFkYmRjZGRkZWRmIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImUwZTFlMmUzZTRlNWU2ZTdlOGU5ZWFlYmVjZWRlZWVmIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmIjsK
Kworc3RhdGljIFN0cmluZyB0b0hleDE2Qml0KHVuc2lnbmVkIGludCB4KSB7CisgIGNvbnN0IHVu
c2lnbmVkIGludCBoaSA9ICh4ID4+IDgpICYgMHhmZjsKKyAgY29uc3QgdW5zaWduZWQgaW50IGxv
ID0geCAmIDB4ZmY7CisgIFN0cmluZyByZXN1bHQoNCwgJyAnKTsKKyAgcmVzdWx0WzBdID0gaGV4
MlsyICogaGldOworICByZXN1bHRbMV0gPSBoZXgyWzIgKiBoaSArIDFdOworICByZXN1bHRbMl0g
PSBoZXgyWzIgKiBsb107CisgIHJlc3VsdFszXSA9IGhleDJbMiAqIGxvICsgMV07CisgIHJldHVy
biByZXN1bHQ7Cit9CisKK3N0YXRpYyBTdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZ04oY29uc3Qg
Y2hhciogdmFsdWUsIHVuc2lnbmVkIGxlbmd0aCkgeworICBpZiAodmFsdWUgPT0gbnVsbHB0cikK
KyAgICByZXR1cm4gIiI7CisKKyAgaWYgKCFpc0FueUNoYXJSZXF1aXJlZFF1b3RpbmcodmFsdWUs
IGxlbmd0aCkpCisgICAgcmV0dXJuIFN0cmluZygiXCIiKSArIHZhbHVlICsgIlwiIjsKKyAgLy8g
V2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBlc2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4K
KyAgLy8gQXBwZW5kaW5nIHRvIFN0cmluZyBpcyBub3QgZWZmaWNpZW50LCBidXQgdGhpcyBzaG91
bGQgYmUgcmFyZS4KKyAgLy8gKE5vdGU6IGZvcndhcmQgc2xhc2hlcyBhcmUgKm5vdCogcmFyZSwg
YnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQorICBTdHJpbmc6OnNpemVfdHlwZSBtYXhzaXpl
ID0gbGVuZ3RoICogMiArIDM7IC8vIGFsbGVzY2FwZWQrcXVvdGVzK05VTEwKKyAgU3RyaW5nIHJl
c3VsdDsKKyAgcmVzdWx0LnJlc2VydmUobWF4c2l6ZSk7IC8vIHRvIGF2b2lkIGxvdHMgb2YgbWFs
bG9jcworICByZXN1bHQgKz0gIlwiIjsKKyAgY2hhciBjb25zdCogZW5kID0gdmFsdWUgKyBsZW5n
dGg7CisgIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVlOyBjICE9IGVuZDsgKytjKSB7CisgICAg
c3dpdGNoICgqYykgeworICAgIGNhc2UgJ1wiJzoKKyAgICAgIHJlc3VsdCArPSAiXFxcIiI7CiAg
ICAgICBicmVhazsKLSAgIGNhc2UgaW50VmFsdWU6Ci0gICAgICBkb2N1bWVudF8gKz0gdmFsdWVU
b1N0cmluZyggdmFsdWUuYXNMYXJnZXN0SW50KCkgKTsKKyAgICBjYXNlICdcXCc6CisgICAgICBy
ZXN1bHQgKz0gIlxcXFwiOwogICAgICAgYnJlYWs7Ci0gICBjYXNlIHVpbnRWYWx1ZToKLSAgICAg
IGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xhcmdlc3RVSW50KCkgKTsKKyAg
ICBjYXNlICdcYic6CisgICAgICByZXN1bHQgKz0gIlxcYiI7CiAgICAgICBicmVhazsKLSAgIGNh
c2UgcmVhbFZhbHVlOgotICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFz
RG91YmxlKCkgKTsKKyAgICBjYXNlICdcZic6CisgICAgICByZXN1bHQgKz0gIlxcZiI7CiAgICAg
ICBicmVhazsKLSAgIGNhc2Ugc3RyaW5nVmFsdWU6Ci0gICAgICBkb2N1bWVudF8gKz0gdmFsdWVU
b1F1b3RlZFN0cmluZyggdmFsdWUuYXNDU3RyaW5nKCkgKTsKKyAgICBjYXNlICdcbic6CisgICAg
ICByZXN1bHQgKz0gIlxcbiI7CiAgICAgICBicmVhazsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgot
ICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzQm9vbCgpICk7CisgICAg
Y2FzZSAnXHInOgorICAgICAgcmVzdWx0ICs9ICJcXHIiOwogICAgICAgYnJlYWs7Ci0gICBjYXNl
IGFycmF5VmFsdWU6Ci0gICAgICB7Ci0gICAgICAgICBkb2N1bWVudF8gKz0gIlsiOwotICAgICAg
ICAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICAgICAgICBmb3IgKCBpbnQgaW5kZXggPTA7
IGluZGV4IDwgc2l6ZTsgKytpbmRleCApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIGlu
ZGV4ID4gMCApCi0gICAgICAgICAgICAgICBkb2N1bWVudF8gKz0gIiwiOwotICAgICAgICAgICAg
d3JpdGVWYWx1ZSggdmFsdWVbaW5kZXhdICk7Ci0gICAgICAgICB9Ci0gICAgICAgICBkb2N1bWVu
dF8gKz0gIl0iOwotICAgICAgfQorICAgIGNhc2UgJ1x0JzoKKyAgICAgIHJlc3VsdCArPSAiXFx0
IjsKICAgICAgIGJyZWFrOwotICAgY2FzZSBvYmplY3RWYWx1ZToKLSAgICAgIHsKLSAgICAgICAg
IFZhbHVlOjpNZW1iZXJzIG1lbWJlcnMoIHZhbHVlLmdldE1lbWJlck5hbWVzKCkgKTsKLSAgICAg
ICAgIGRvY3VtZW50XyArPSAieyI7Ci0gICAgICAgICBmb3IgKCBWYWx1ZTo6TWVtYmVyczo6aXRl
cmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7IAotICAgICAgICAgICAgICAgaXQgIT0gbWVtYmVy
cy5lbmQoKTsgCi0gICAgICAgICAgICAgICArK2l0ICkKLSAgICAgICAgIHsKLSAgICAgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lID0gKml0OwotICAgICAgICAgICAgaWYgKCBpdCAhPSBt
ZW1iZXJzLmJlZ2luKCkgKQotICAgICAgICAgICAgICAgZG9jdW1lbnRfICs9ICIsIjsKLSAgICAg
ICAgICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvUXVvdGVkU3RyaW5nKCBuYW1lLmNfc3RyKCkgKTsK
LSAgICAgICAgICAgIGRvY3VtZW50XyArPSB5YW1sQ29tcGF0aWJsaXR5RW5hYmxlZF8gPyAiOiAi
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI6
IjsKLSAgICAgICAgICAgIHdyaXRlVmFsdWUoIHZhbHVlW25hbWVdICk7Ci0gICAgICAgICB9Ci0g
ICAgICAgICBkb2N1bWVudF8gKz0gIn0iOworICAgIC8vIGNhc2UgJy8nOgorICAgIC8vIEV2ZW4g
dGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdhbCBlc2NhcGUgaW4gSlNPTiwgYSBiYXJlCisg
ICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28gSSBzZWUgbm8gcmVhc29uIHRvIGVzY2FwZSBp
dC4KKyAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1pc3VuZGVyc3RhbmRpbmcgc29tZXRoaW5nLikK
KyAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGluZyBcLyBtYXkgYmUgdXNlZnVsIGlu
IGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KKyAgICAvLyBzZXF1ZW5jZS4KKyAgICAvLyBTaG91bGQg
YWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgcHJldmVudCB0
aGlzCisgICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcuCisgICAgZGVmYXVsdDogeworICAg
ICAgdW5zaWduZWQgaW50IGNwID0gdXRmOFRvQ29kZXBvaW50KGMsIGVuZCk7CisgICAgICAvLyBk
b24ndCBlc2NhcGUgbm9uLWNvbnRyb2wgY2hhcmFjdGVycworICAgICAgLy8gKHNob3J0IGVzY2Fw
ZSBzZXF1ZW5jZSBhcmUgYXBwbGllZCBhYm92ZSkKKyAgICAgIGlmIChjcCA8IDB4ODAgJiYgY3Ag
Pj0gMHgyMCkKKyAgICAgICAgcmVzdWx0ICs9IHN0YXRpY19jYXN0PGNoYXI+KGNwKTsKKyAgICAg
IGVsc2UgaWYgKGNwIDwgMHgxMDAwMCkgeyAvLyBjb2RlcG9pbnQgaXMgaW4gQmFzaWMgTXVsdGls
aW5ndWFsIFBsYW5lCisgICAgICAgIHJlc3VsdCArPSAiXFx1IjsKKyAgICAgICAgcmVzdWx0ICs9
IHRvSGV4MTZCaXQoY3ApOworICAgICAgfSBlbHNlIHsgLy8gY29kZXBvaW50IGlzIG5vdCBpbiBC
YXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUKKyAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgdG8gc3Vy
cm9nYXRlIHBhaXIgZmlyc3QKKyAgICAgICAgY3AgLT0gMHgxMDAwMDsKKyAgICAgICAgcmVzdWx0
ICs9ICJcXHUiOworICAgICAgICByZXN1bHQgKz0gdG9IZXgxNkJpdCgoY3AgPj4gMTApICsgMHhE
ODAwKTsKKyAgICAgICAgcmVzdWx0ICs9ICJcXHUiOworICAgICAgICByZXN1bHQgKz0gdG9IZXgx
NkJpdCgoY3AgJiAweDNGRikgKyAweERDMDApOwogICAgICAgfQotICAgICAgYnJlYWs7Ci0gICB9
CisgICAgfSBicmVhazsKKyAgICB9CisgIH0KKyAgcmVzdWx0ICs9ICJcIiI7CisgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK1N0cmluZyB2YWx1ZVRvUXVvdGVkU3RyaW5nKGNvbnN0IGNoYXIqIHZhbHVl
KSB7CisgIHJldHVybiB2YWx1ZVRvUXVvdGVkU3RyaW5nTih2YWx1ZSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQgaW50PihzdHJsZW4odmFsdWUpKSk7Cit9CiAKLS8vIENsYXNzIFN0eWxlZFdyaXRlcgor
Ly8gQ2xhc3MgV3JpdGVyCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK1dyaXRlcjo6fldyaXRlcigpID0gZGVmYXVs
dDsKIAotU3R5bGVkV3JpdGVyOjpTdHlsZWRXcml0ZXIoKQotICAgOiByaWdodE1hcmdpbl8oIDc0
ICkKLSAgICwgaW5kZW50U2l6ZV8oIDMgKQotICAgLCBhZGRDaGlsZFZhbHVlc18oKQotewotfQor
Ly8gQ2xhc3MgRmFzdFdyaXRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK0Zhc3RXcml0ZXI6OkZhc3RXcml0
ZXIoKQorCisgICAgPSBkZWZhdWx0OworCit2b2lkIEZhc3RXcml0ZXI6OmVuYWJsZVlBTUxDb21w
YXRpYmlsaXR5KCkgeyB5YW1sQ29tcGF0aWJpbGl0eUVuYWJsZWRfID0gdHJ1ZTsgfQogCit2b2lk
IEZhc3RXcml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKCkgeyBkcm9wTnVsbFBsYWNlaG9sZGVy
c18gPSB0cnVlOyB9CiAKLXN0ZDo6c3RyaW5nIAotU3R5bGVkV3JpdGVyOjp3cml0ZSggY29uc3Qg
VmFsdWUgJnJvb3QgKQotewotICAgZG9jdW1lbnRfID0gIiI7Ci0gICBhZGRDaGlsZFZhbHVlc18g
PSBmYWxzZTsKLSAgIGluZGVudFN0cmluZ18gPSAiIjsKLSAgIHdyaXRlQ29tbWVudEJlZm9yZVZh
bHVlKCByb290ICk7Ci0gICB3cml0ZVZhbHVlKCByb290ICk7Ci0gICB3cml0ZUNvbW1lbnRBZnRl
clZhbHVlT25TYW1lTGluZSggcm9vdCApOwotICAgZG9jdW1lbnRfICs9ICJcbiI7Ci0gICByZXR1
cm4gZG9jdW1lbnRfOwordm9pZCBGYXN0V3JpdGVyOjpvbWl0RW5kaW5nTGluZUZlZWQoKSB7IG9t
aXRFbmRpbmdMaW5lRmVlZF8gPSB0cnVlOyB9CisKK1N0cmluZyBGYXN0V3JpdGVyOjp3cml0ZShj
b25zdCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8uY2xlYXIoKTsKKyAgd3JpdGVWYWx1ZShy
b290KTsKKyAgaWYgKCFvbWl0RW5kaW5nTGluZUZlZWRfKQorICAgIGRvY3VtZW50XyArPSAnXG4n
OworICByZXR1cm4gZG9jdW1lbnRfOwogfQogCit2b2lkIEZhc3RXcml0ZXI6OndyaXRlVmFsdWUo
Y29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2Ug
bnVsbFZhbHVlOgorICAgIGlmICghZHJvcE51bGxQbGFjZWhvbGRlcnNfKQorICAgICAgZG9jdW1l
bnRfICs9ICJudWxsIjsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBkb2N1bWVu
dF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSk7CisgICAgYnJlYWs7Cisg
IGNhc2UgdWludFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFz
TGFyZ2VzdFVJbnQoKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIGRvY3Vt
ZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCkpOworICAgIGJyZWFrOworICBj
YXNlIHN0cmluZ1ZhbHVlOiB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3IgdmFsdWUuc3Ry
aW5nXz8gTm8uCisgICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAg
ICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykKKyAg
ICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihlbmQgLSBzdHIpKTsKKyAgICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1
ZToKKyAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSk7CisgICAg
YnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZTogeworICAgIGRvY3VtZW50XyArPSAnWyc7CisgICAg
QXJyYXlJbmRleCBzaXplID0gdmFsdWUuc2l6ZSgpOworICAgIGZvciAoQXJyYXlJbmRleCBpbmRl
eCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGluZGV4ID4gMCkKKyAg
ICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsK
KyAgICB9CisgICAgZG9jdW1lbnRfICs9ICddJzsKKyAgfSBicmVhazsKKyAgY2FzZSBvYmplY3RW
YWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMo
KSk7CisgICAgZG9jdW1lbnRfICs9ICd7JzsKKyAgICBmb3IgKGF1dG8gaXQgPSBtZW1iZXJzLmJl
Z2luKCk7IGl0ICE9IG1lbWJlcnMuZW5kKCk7ICsraXQpIHsKKyAgICAgIGNvbnN0IFN0cmluZyYg
bmFtZSA9ICppdDsKKyAgICAgIGlmIChpdCAhPSBtZW1iZXJzLmJlZ2luKCkpCisgICAgICAgIGRv
Y3VtZW50XyArPSAnLCc7CisgICAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1F1b3RlZFN0cmluZ04o
bmFtZS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KG5hbWUubGVuZ3RoKCkpKTsKKyAgICAgIGRvY3VtZW50XyArPSB5
YW1sQ29tcGF0aWJpbGl0eUVuYWJsZWRfID8gIjogIiA6ICI6IjsKKyAgICAgIHdyaXRlVmFsdWUo
dmFsdWVbbmFtZV0pOworICAgIH0KKyAgICBkb2N1bWVudF8gKz0gJ30nOworICB9IGJyZWFrOwor
ICB9Cit9CiAKLXZvaWQgCi1TdHlsZWRXcml0ZXI6OndyaXRlVmFsdWUoIGNvbnN0IFZhbHVlICZ2
YWx1ZSApCi17Ci0gICBzd2l0Y2ggKCB2YWx1ZS50eXBlKCkgKQotICAgewotICAgY2FzZSBudWxs
VmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoICJudWxsIiApOwotICAgICAgYnJlYWs7Ci0gICBjYXNl
IGludFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xhcmdl
c3RJbnQoKSApICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgdWludFZhbHVlOgotICAgICAgcHVz
aFZhbHVlKCB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0xhcmdlc3RVSW50KCkgKSApOwotICAgICAg
YnJlYWs7Ci0gICBjYXNlIHJlYWxWYWx1ZToKLSAgICAgIHB1c2hWYWx1ZSggdmFsdWVUb1N0cmlu
ZyggdmFsdWUuYXNEb3VibGUoKSApICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2Ugc3RyaW5nVmFs
dWU6Ci0gICAgICBwdXNoVmFsdWUoIHZhbHVlVG9RdW90ZWRTdHJpbmcoIHZhbHVlLmFzQ1N0cmlu
ZygpICkgKTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSBib29sZWFuVmFsdWU6Ci0gICAgICBwdXNo
VmFsdWUoIHZhbHVlVG9TdHJpbmcoIHZhbHVlLmFzQm9vbCgpICkgKTsKLSAgICAgIGJyZWFrOwot
ICAgY2FzZSBhcnJheVZhbHVlOgotICAgICAgd3JpdGVBcnJheVZhbHVlKCB2YWx1ZSk7Ci0gICAg
ICBicmVhazsKLSAgIGNhc2Ugb2JqZWN0VmFsdWU6Ci0gICAgICB7Ci0gICAgICAgICBWYWx1ZTo6
TWVtYmVycyBtZW1iZXJzKCB2YWx1ZS5nZXRNZW1iZXJOYW1lcygpICk7Ci0gICAgICAgICBpZiAo
IG1lbWJlcnMuZW1wdHkoKSApCi0gICAgICAgICAgICBwdXNoVmFsdWUoICJ7fSIgKTsKLSAgICAg
ICAgIGVsc2UKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHdyaXRlV2l0aEluZGVudCggInsiICk7
Ci0gICAgICAgICAgICBpbmRlbnQoKTsKLSAgICAgICAgICAgIFZhbHVlOjpNZW1iZXJzOjppdGVy
YXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKLSAgICAgICAgICAgIGZvciAoOzspCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSA9ICppdDsKLSAg
ICAgICAgICAgICAgIGNvbnN0IFZhbHVlICZjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07Ci0gICAg
ICAgICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSggY2hpbGRWYWx1ZSApOwotICAgICAg
ICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCB2YWx1ZVRvUXVvdGVkU3RyaW5nKCBuYW1lLmNfc3Ry
KCkgKSApOwotICAgICAgICAgICAgICAgZG9jdW1lbnRfICs9ICIgOiAiOwotICAgICAgICAgICAg
ICAgd3JpdGVWYWx1ZSggY2hpbGRWYWx1ZSApOwotICAgICAgICAgICAgICAgaWYgKCArK2l0ID09
IG1lbWJlcnMuZW5kKCkgKQotICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgd3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZG9jdW1lbnRf
ICs9ICIsIjsKLSAgICAgICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5l
KCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bmluZGVudCgpOwot
ICAgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCAifSIgKTsKLSAgICAgICAgIH0KLSAgICAgIH0K
LSAgICAgIGJyZWFrOwotICAgfQotfQotCi0KLXZvaWQgCi1TdHlsZWRXcml0ZXI6OndyaXRlQXJy
YXlWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAgIHVuc2lnbmVkIHNpemUgPSB2YWx1
ZS5zaXplKCk7Ci0gICBpZiAoIHNpemUgPT0gMCApCi0gICAgICBwdXNoVmFsdWUoICJbXSIgKTsK
LSAgIGVsc2UKLSAgIHsKLSAgICAgIGJvb2wgaXNBcnJheU11bHRpTGluZSA9IGlzTXVsdGluZUFy
cmF5KCB2YWx1ZSApOwotICAgICAgaWYgKCBpc0FycmF5TXVsdGlMaW5lICkKLSAgICAgIHsKLSAg
ICAgICAgIHdyaXRlV2l0aEluZGVudCggIlsiICk7Ci0gICAgICAgICBpbmRlbnQoKTsKLSAgICAg
ICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKLSAgICAgICAg
IHVuc2lnbmVkIGluZGV4ID0wOwotICAgICAgICAgZm9yICg7OykKLSAgICAgICAgIHsKLSAgICAg
ICAgICAgIGNvbnN0IFZhbHVlICZjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOwotICAgICAgICAg
ICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgICAgIGlm
ICggaGFzQ2hpbGRWYWx1ZSApCi0gICAgICAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoIGNoaWxk
VmFsdWVzX1tpbmRleF0gKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgIHdyaXRlSW5kZW50KCk7Ci0gICAgICAgICAgICAgICB3cml0ZVZhbHVlKCBjaGls
ZFZhbHVlICk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoICsraW5kZXggPT0gc2l6
ZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVl
T25TYW1lTGluZSggY2hpbGRWYWx1ZSApOwotICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBkb2N1bWVudF8gKz0gIiwiOwotICAgICAgICAgICAgd3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNoaWxkVmFsdWUgKTsKLSAgICAgICAgIH0KLSAg
ICAgICAgIHVuaW5kZW50KCk7Ci0gICAgICAgICB3cml0ZVdpdGhJbmRlbnQoICJdIiApOworLy8g
Q2xhc3MgU3R5bGVkV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworU3R5bGVkV3JpdGVyOjpTdHlsZWRX
cml0ZXIoKSA9IGRlZmF1bHQ7CisKK1N0cmluZyBTdHlsZWRXcml0ZXI6OndyaXRlKGNvbnN0IFZh
bHVlJiByb290KSB7CisgIGRvY3VtZW50Xy5jbGVhcigpOworICBhZGRDaGlsZFZhbHVlc18gPSBm
YWxzZTsKKyAgaW5kZW50U3RyaW5nXy5jbGVhcigpOworICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZShyb290KTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9u
U2FtZUxpbmUocm9vdCk7CisgIGRvY3VtZW50XyArPSAnXG4nOworICByZXR1cm4gZG9jdW1lbnRf
OworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUp
IHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcHVz
aFZhbHVlKCJudWxsIik7CisgICAgYnJlYWs7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcHVzaFZh
bHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKKyAgICBicmVhazsKKyAg
Y2FzZSB1aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJn
ZXN0VUludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHB1c2hWYWx1
ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBz
dHJpbmdWYWx1ZTogeworICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/
IE5vLgorICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAgYm9v
bCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spCisgICAgICBw
dXNoVmFsdWUodmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
ZW5kIC0gc3RyKSkpOworICAgIGVsc2UKKyAgICAgIHB1c2hWYWx1ZSgiIik7CisgICAgYnJlYWs7
CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNCb29sKCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICAgIHdy
aXRlQXJyYXlWYWx1ZSh2YWx1ZSk7CisgICAgYnJlYWs7CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsK
KyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOworICAg
IGlmIChtZW1iZXJzLmVtcHR5KCkpCisgICAgICBwdXNoVmFsdWUoInt9Iik7CisgICAgZWxzZSB7
CisgICAgICB3cml0ZVdpdGhJbmRlbnQoInsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgYXV0
byBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lID0gKml0OworICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZh
bHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsK
KyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmcobmFtZS5jX3N0cigp
KSk7CisgICAgICAgIGRvY3VtZW50XyArPSAiIDogIjsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGls
ZFZhbHVlKTsKKyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAg
IHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50XyArPSAnLCc7CisgICAgICAgIHdy
aXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwogICAgICAgfQotICAg
ICAgZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQotICAgICAgewotICAgICAgICAgYXNz
ZXJ0KCBjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUgKTsKLSAgICAgICAgIGRvY3VtZW50XyAr
PSAiWyAiOwotICAgICAgICAgZm9yICggdW5zaWduZWQgaW5kZXggPTA7IGluZGV4IDwgc2l6ZTsg
KytpbmRleCApCi0gICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIGluZGV4ID4gMCApCi0gICAg
ICAgICAgICAgICBkb2N1bWVudF8gKz0gIiwgIjsKLSAgICAgICAgICAgIGRvY3VtZW50XyArPSBj
aGlsZFZhbHVlc19baW5kZXhdOwotICAgICAgICAgfQotICAgICAgICAgZG9jdW1lbnRfICs9ICIg
XSI7CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7CisgICAg
fQorICB9IGJyZWFrOworICB9Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUFycmF5VmFs
dWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7
CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZhbHVlKCJbXSIpOworICBlbHNlIHsKKyAgICBi
b29sIGlzQXJyYXlNdWx0aUxpbmUgPSBpc011bHRpbGluZUFycmF5KHZhbHVlKTsKKyAgICBpZiAo
aXNBcnJheU11bHRpTGluZSkgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAgICBp
bmRlbnQoKTsKKyAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHko
KTsKKyAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAg
Y29uc3QgVmFsdWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1ZSkK
KyAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAgICAg
IGVsc2UgeworICAgICAgICAgIHdyaXRlSW5kZW50KCk7CisgICAgICAgICAgd3JpdGVWYWx1ZShj
aGlsZFZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXplKSB7Cisg
ICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7Cisg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAg
ICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CiAgICAg
ICB9Ci0gICB9Ci19Ci0KLQotYm9vbCAKLVN0eWxlZFdyaXRlcjo6aXNNdWx0aW5lQXJyYXkoIGNv
bnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKLSAgIGJv
b2wgaXNNdWx0aUxpbmUgPSBzaXplKjMgPj0gcmlnaHRNYXJnaW5fIDsKLSAgIGNoaWxkVmFsdWVz
Xy5jbGVhcigpOwotICAgZm9yICggaW50IGluZGV4ID0wOyBpbmRleCA8IHNpemUgICYmICAhaXNN
dWx0aUxpbmU7ICsraW5kZXggKQotICAgewotICAgICAgY29uc3QgVmFsdWUgJmNoaWxkVmFsdWUg
PSB2YWx1ZVtpbmRleF07Ci0gICAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lICB8fAotICAg
ICAgICAgICAgICAgICAgICAgKCAoY2hpbGRWYWx1ZS5pc0FycmF5KCkgIHx8ICBjaGlsZFZhbHVl
LmlzT2JqZWN0KCkpICAmJiAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZhbHVlLnNp
emUoKSA+IDAgKTsKLSAgIH0KLSAgIGlmICggIWlzTXVsdGlMaW5lICkgLy8gY2hlY2sgaWYgbGlu
ZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKLSAgIHsKLSAgICAgIGNoaWxkVmFsdWVzXy5yZXNl
cnZlKCBzaXplICk7Ci0gICAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOwotICAgICAgaW50IGxp
bmVMZW5ndGggPSA0ICsgKHNpemUtMSkqMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKLSAgICAg
IGZvciAoIGludCBpbmRleCA9MDsgaW5kZXggPCBzaXplICAmJiAgIWlzTXVsdGlMaW5lOyArK2lu
ZGV4ICkKLSAgICAgIHsKLSAgICAgICAgIHdyaXRlVmFsdWUoIHZhbHVlW2luZGV4XSApOwotICAg
ICAgICAgbGluZUxlbmd0aCArPSBpbnQoIGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkgKTsK
LSAgICAgICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgICYmICBoYXNDb21tZW50Rm9yVmFs
dWUoIHZhbHVlW2luZGV4XSApOworICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aElu
ZGVudCgiXSIpOworICAgIH0gZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAgIHsK
KyAgICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgZG9jdW1l
bnRfICs9ICJbICI7CisgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBzaXpl
OyArK2luZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+IDApCisgICAgICAgICAgZG9jdW1lbnRf
ICs9ICIsICI7CisgICAgICAgIGRvY3VtZW50XyArPSBjaGlsZFZhbHVlc19baW5kZXhdOwogICAg
ICAgfQotICAgICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7Ci0gICAgICBpc011bHRpTGluZSA9
IGlzTXVsdGlMaW5lICB8fCAgbGluZUxlbmd0aCA+PSByaWdodE1hcmdpbl87Ci0gICB9Ci0gICBy
ZXR1cm4gaXNNdWx0aUxpbmU7CisgICAgICBkb2N1bWVudF8gKz0gIiBdIjsKKyAgICB9CisgIH0K
IH0KIAorYm9vbCBTdHlsZWRXcml0ZXI6OmlzTXVsdGlsaW5lQXJyYXkoY29uc3QgVmFsdWUmIHZh
bHVlKSB7CisgIEFycmF5SW5kZXggY29uc3Qgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgYm9vbCBp
c011bHRpTGluZSA9IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRWYWx1ZXNfLmNs
ZWFyKCk7CisgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNN
dWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVl
W2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hp
bGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAgICAgICAgICAgICFjaGlsZFZhbHVlLmVt
cHR5KCkpOworICB9CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3Ro
ID4gbWF4IGxpbmUgbGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsK
KyAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOworICAgIEFycmF5SW5kZXggbGluZUxlbmd0aCA9
IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKKyAgICBmb3IgKEFy
cmF5SW5kZXggaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgIGlmICho
YXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAgICBpc011bHRpTGluZSA9
IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7CisgICAgICBs
aW5lTGVuZ3RoICs9IHN0YXRpY19jYXN0PEFycmF5SW5kZXg+KGNoaWxkVmFsdWVzX1tpbmRleF0u
bGVuZ3RoKCkpOworICAgIH0KKyAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgICBpc011
bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJnaW5fOworICB9
CisgIHJldHVybiBpc011bHRpTGluZTsKK30KIAotdm9pZCAKLVN0eWxlZFdyaXRlcjo6cHVzaFZh
bHVlKCBjb25zdCBzdGQ6OnN0cmluZyAmdmFsdWUgKQotewotICAgaWYgKCBhZGRDaGlsZFZhbHVl
c18gKQotICAgICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayggdmFsdWUgKTsKLSAgIGVsc2UKLSAg
ICAgIGRvY3VtZW50XyArPSB2YWx1ZTsKK3ZvaWQgU3R5bGVkV3JpdGVyOjpwdXNoVmFsdWUoY29u
c3QgU3RyaW5nJiB2YWx1ZSkgeworICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFs
dWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNlCisgICAgZG9jdW1lbnRfICs9IHZhbHVlOwog
fQogCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVJbmRlbnQoKSB7CisgIGlmICghZG9jdW1lbnRf
LmVtcHR5KCkpIHsKKyAgICBjaGFyIGxhc3QgPSBkb2N1bWVudF9bZG9jdW1lbnRfLmxlbmd0aCgp
IC0gMV07CisgICAgaWYgKGxhc3QgPT0gJyAnKSAvLyBhbHJlYWR5IGluZGVudGVkCisgICAgICBy
ZXR1cm47CisgICAgaWYgKGxhc3QgIT0gJ1xuJykgLy8gQ29tbWVudHMgbWF5IGFkZCBuZXctbGlu
ZQorICAgICAgZG9jdW1lbnRfICs9ICdcbic7CisgIH0KKyAgZG9jdW1lbnRfICs9IGluZGVudFN0
cmluZ187Cit9CiAKLXZvaWQgCi1TdHlsZWRXcml0ZXI6OndyaXRlSW5kZW50KCkKLXsKLSAgIGlm
ICggIWRvY3VtZW50Xy5lbXB0eSgpICkKLSAgIHsKLSAgICAgIGNoYXIgbGFzdCA9IGRvY3VtZW50
X1tkb2N1bWVudF8ubGVuZ3RoKCktMV07Ci0gICAgICBpZiAoIGxhc3QgPT0gJyAnICkgICAgIC8v
IGFscmVhZHkgaW5kZW50ZWQKLSAgICAgICAgIHJldHVybjsKLSAgICAgIGlmICggbGFzdCAhPSAn
XG4nICkgICAgLy8gQ29tbWVudHMgbWF5IGFkZCBuZXctbGluZQotICAgICAgICAgZG9jdW1lbnRf
ICs9ICdcbic7Ci0gICB9Ci0gICBkb2N1bWVudF8gKz0gaW5kZW50U3RyaW5nXzsKK3ZvaWQgU3R5
bGVkV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICB3cml0
ZUluZGVudCgpOworICBkb2N1bWVudF8gKz0gdmFsdWU7CiB9CiAKK3ZvaWQgU3R5bGVkV3JpdGVy
OjppbmRlbnQoKSB7IGluZGVudFN0cmluZ18gKz0gU3RyaW5nKGluZGVudFNpemVfLCAnICcpOyB9
CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp1bmluZGVudCgpIHsKKyAgYXNzZXJ0KGluZGVudFN0cmlu
Z18uc2l6ZSgpID49IGluZGVudFNpemVfKTsKKyAgaW5kZW50U3RyaW5nXy5yZXNpemUoaW5kZW50
U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRTaXplXyk7Cit9CiAKLXZvaWQgCi1TdHlsZWRXcml0ZXI6
OndyaXRlV2l0aEluZGVudCggY29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICkKLXsKLSAgIHdyaXRl
SW5kZW50KCk7Ci0gICBkb2N1bWVudF8gKz0gdmFsdWU7Cit2b2lkIFN0eWxlZFdyaXRlcjo6d3Jp
dGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKCFyb290Lmhh
c0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisgICAgcmV0dXJuOworCisgIGRvY3VtZW50XyArPSAn
XG4nOworICB3cml0ZUluZGVudCgpOworICBjb25zdCBTdHJpbmcmIGNvbW1lbnQgPSByb290Lmdl
dENvbW1lbnQoY29tbWVudEJlZm9yZSk7CisgIFN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaXRlciA9
IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSkgeworICAg
IGRvY3VtZW50XyArPSAqaXRlcjsKKyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJiAoKGl0ZXIgKyAx
KSAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcvJykpCisgICAgICB3cml0ZUlu
ZGVudCgpOworICAgICsraXRlcjsKKyAgfQorCisgIC8vIENvbW1lbnRzIGFyZSBzdHJpcHBlZCBv
ZiB0cmFpbGluZyBuZXdsaW5lcywgc28gYWRkIG9uZSBoZXJlCisgIGRvY3VtZW50XyArPSAnXG4n
OwogfQogCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxp
bmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKHJvb3QuaGFzQ29tbWVudChjb21tZW50QWZ0
ZXJPblNhbWVMaW5lKSkKKyAgICBkb2N1bWVudF8gKz0gIiAiICsgcm9vdC5nZXRDb21tZW50KGNv
bW1lbnRBZnRlck9uU2FtZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFm
dGVyKSkgeworICAgIGRvY3VtZW50XyArPSAnXG4nOworICAgIGRvY3VtZW50XyArPSByb290Lmdl
dENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgICBkb2N1bWVudF8gKz0gJ1xuJzsKKyAgfQorfQog
Ci12b2lkIAotU3R5bGVkV3JpdGVyOjppbmRlbnQoKQotewotICAgaW5kZW50U3RyaW5nXyArPSBz
dGQ6OnN0cmluZyggaW5kZW50U2l6ZV8sICcgJyApOworYm9vbCBTdHlsZWRXcml0ZXI6Omhhc0Nv
bW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlLmhhc0Nv
bW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVu
dEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFm
dGVyKTsKIH0KIAorLy8gQ2xhc3MgU3R5bGVkU3RyZWFtV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAot
dm9pZCAKLVN0eWxlZFdyaXRlcjo6dW5pbmRlbnQoKQotewotICAgYXNzZXJ0KCBpbnQoaW5kZW50
U3RyaW5nXy5zaXplKCkpID49IGluZGVudFNpemVfICk7Ci0gICBpbmRlbnRTdHJpbmdfLnJlc2l6
ZSggaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRTaXplXyApOworU3R5bGVkU3RyZWFtV3Jp
dGVyOjpTdHlsZWRTdHJlYW1Xcml0ZXIoU3RyaW5nIGluZGVudGF0aW9uKQorICAgIDogZG9jdW1l
bnRfKG51bGxwdHIpLCBpbmRlbnRhdGlvbl8oc3RkOjptb3ZlKGluZGVudGF0aW9uKSksCisgICAg
ICBhZGRDaGlsZFZhbHVlc18oKSwgaW5kZW50ZWRfKGZhbHNlKSB7fQorCit2b2lkIFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGUoT1N0cmVhbSYgb3V0LCBjb25zdCBWYWx1ZSYgcm9vdCkgeworICBk
b2N1bWVudF8gPSAmb3V0OworICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50U3Ry
aW5nXy5jbGVhcigpOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZUNvbW1lbnRCZWZvcmVW
YWx1ZShyb290KTsKKyAgaWYgKCFpbmRlbnRlZF8pCisgICAgd3JpdGVJbmRlbnQoKTsKKyAgaW5k
ZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3JpdGVDb21tZW50QWZ0ZXJW
YWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgICpkb2N1bWVudF8gPDwgIlxuIjsKKyAgZG9jdW1lbnRf
ID0gbnVsbHB0cjsgLy8gRm9yZ2V0IHRoZSBzdHJlYW0sIGZvciBzYWZldHkuCiB9CiAKK3ZvaWQg
U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICBz
d2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBwdXNoVmFsdWUo
Im51bGwiKTsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFs
dWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHVp
bnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50
KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVl
VG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSkpOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1Zh
bHVlOiB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8gTm8uCisg
ICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0g
dmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykKKyAgICAgIHB1c2hWYWx1
ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBz
dHIpKSk7CisgICAgZWxzZQorICAgICAgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQor
ICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5h
c0Jvb2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJh
eVZhbHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZh
bHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1l
bWJlcnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAg
IHdyaXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBhdXRvIGl0ID0g
bWVtYmVycy5iZWdpbigpOworICAgICAgZm9yICg7OykgeworICAgICAgICBjb25zdCBTdHJpbmcm
IG5hbWUgPSAqaXQ7CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbbmFt
ZV07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAg
ICB3cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZyhuYW1lLmNfc3RyKCkpKTsKKyAg
ICAgICAgKmRvY3VtZW50XyA8PCAiIDogIjsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVl
KTsKKyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAgIHdyaXRl
Q29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgICpkb2N1bWVudF8gPDwgIiwiOworICAgICAgICB3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVu
aW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0iKTsKKyAgICB9CisgIH0gYnJlYWs7
CisgIH0KK30KIAotdm9pZCAKLVN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
IGNvbnN0IFZhbHVlICZyb290ICkKLXsKLSAgIGlmICggIXJvb3QuaGFzQ29tbWVudCggY29tbWVu
dEJlZm9yZSApICkKLSAgICAgIHJldHVybjsKLSAgIGRvY3VtZW50XyArPSBub3JtYWxpemVFT0wo
IHJvb3QuZ2V0Q29tbWVudCggY29tbWVudEJlZm9yZSApICk7Ci0gICBkb2N1bWVudF8gKz0gIlxu
IjsKLX0KLQotCi12b2lkIAotU3R5bGVkV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25T
YW1lTGluZSggY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAgaWYgKCByb290Lmhhc0NvbW1lbnQo
IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUgKSApCi0gICAgICBkb2N1bWVudF8gKz0gIiAiICsgbm9y
bWFsaXplRU9MKCByb290LmdldENvbW1lbnQoIGNvbW1lbnRBZnRlck9uU2FtZUxpbmUgKSApOwot
Ci0gICBpZiAoIHJvb3QuaGFzQ29tbWVudCggY29tbWVudEFmdGVyICkgKQotICAgewotICAgICAg
ZG9jdW1lbnRfICs9ICJcbiI7Ci0gICAgICBkb2N1bWVudF8gKz0gbm9ybWFsaXplRU9MKCByb290
LmdldENvbW1lbnQoIGNvbW1lbnRBZnRlciApICk7Ci0gICAgICBkb2N1bWVudF8gKz0gIlxuIjsK
LSAgIH0KLX0KLQotCi1ib29sIAotU3R5bGVkV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUoIGNv
bnN0IFZhbHVlICZ2YWx1ZSApCi17Ci0gICByZXR1cm4gdmFsdWUuaGFzQ29tbWVudCggY29tbWVu
dEJlZm9yZSApCi0gICAgICAgICAgfHwgIHZhbHVlLmhhc0NvbW1lbnQoIGNvbW1lbnRBZnRlck9u
U2FtZUxpbmUgKQotICAgICAgICAgIHx8ICB2YWx1ZS5oYXNDb21tZW50KCBjb21tZW50QWZ0ZXIg
KTsKLX0KLQotCi1zdGQ6OnN0cmluZyAKLVN0eWxlZFdyaXRlcjo6bm9ybWFsaXplRU9MKCBjb25z
dCBzdGQ6OnN0cmluZyAmdGV4dCApCi17Ci0gICBzdGQ6OnN0cmluZyBub3JtYWxpemVkOwotICAg
bm9ybWFsaXplZC5yZXNlcnZlKCB0ZXh0Lmxlbmd0aCgpICk7Ci0gICBjb25zdCBjaGFyICpiZWdp
biA9IHRleHQuY19zdHIoKTsKLSAgIGNvbnN0IGNoYXIgKmVuZCA9IGJlZ2luICsgdGV4dC5sZW5n
dGgoKTsKLSAgIGNvbnN0IGNoYXIgKmN1cnJlbnQgPSBiZWdpbjsKLSAgIHdoaWxlICggY3VycmVu
dCAhPSBlbmQgKQotICAgewotICAgICAgY2hhciBjID0gKmN1cnJlbnQrKzsKLSAgICAgIGlmICgg
YyA9PSAnXHInICkgLy8gbWFjIG9yIGRvcyBFT0wKLSAgICAgIHsKLSAgICAgICAgIGlmICggKmN1
cnJlbnQgPT0gJ1xuJyApIC8vIGNvbnZlcnQgZG9zIEVPTAotICAgICAgICAgICAgKytjdXJyZW50
OwotICAgICAgICAgbm9ybWFsaXplZCArPSAnXG4nOwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6
OndyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9
IHZhbHVlLnNpemUoKTsKKyAgaWYgKHNpemUgPT0gMCkKKyAgICBwdXNoVmFsdWUoIltdIik7Cisg
IGVsc2UgeworICAgIGJvb2wgaXNBcnJheU11bHRpTGluZSA9IGlzTXVsdGlsaW5lQXJyYXkodmFs
dWUpOworICAgIGlmIChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQo
IlsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxk
VmFsdWVzXy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9yICg7
OykgeworICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAg
ICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmICho
YXNDaGlsZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19baW5k
ZXhdKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYgKCFpbmRlbnRlZF8pCisgICAgICAg
ICAgICB3cml0ZUluZGVudCgpOworICAgICAgICAgIGluZGVudGVkXyA9IHRydWU7CisgICAgICAg
ICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSBmYWxzZTsK
KyAgICAgICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXplKSB7CisgICAgICAgICAgd3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgKmRvY3VtZW50XyA8PCAiLCI7CisgICAgICAgIHdyaXRl
Q29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwogICAgICAgfQotICAgICAg
ZWxzZSAvLyBoYW5kbGUgdW5peCBFT0wgJiBvdGhlciBjaGFyCi0gICAgICAgICBub3JtYWxpemVk
ICs9IGM7Ci0gICB9Ci0gICByZXR1cm4gbm9ybWFsaXplZDsKKyAgICAgIHVuaW5kZW50KCk7Cisg
ICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKKyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2lu
Z2xlIGxpbmUKKyAgICB7CisgICAgICBhc3NlcnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXpl
KTsKKyAgICAgICpkb2N1bWVudF8gPDwgIlsgIjsKKyAgICAgIGZvciAodW5zaWduZWQgaW5kZXgg
PSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID4gMCkKKyAg
ICAgICAgICAqZG9jdW1lbnRfIDw8ICIsICI7CisgICAgICAgICpkb2N1bWVudF8gPDwgY2hpbGRW
YWx1ZXNfW2luZGV4XTsKKyAgICAgIH0KKyAgICAgICpkb2N1bWVudF8gPDwgIiBdIjsKKyAgICB9
CisgIH0KIH0KIAorYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGlsaW5lQXJyYXkoY29u
c3QgVmFsdWUmIHZhbHVlKSB7CisgIEFycmF5SW5kZXggY29uc3Qgc2l6ZSA9IHZhbHVlLnNpemUo
KTsKKyAgYm9vbCBpc011bHRpTGluZSA9IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hp
bGRWYWx1ZXNfLmNsZWFyKCk7CisgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBjb25zdCBWYWx1ZSYgY2hpbGRW
YWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0Fy
cmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAgICAgICAgICAgICFj
aGlsZFZhbHVlLmVtcHR5KCkpOworICB9CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlm
IGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVz
ZXJ2ZShzaXplKTsKKyAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOworICAgIEFycmF5SW5kZXgg
bGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScK
KyAgICBmb3IgKEFycmF5SW5kZXggaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsK
KyAgICAgIGlmIChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAgICBp
c011bHRpTGluZSA9IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4
XSk7CisgICAgICBsaW5lTGVuZ3RoICs9IHN0YXRpY19jYXN0PEFycmF5SW5kZXg+KGNoaWxkVmFs
dWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0KKyAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxz
ZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRN
YXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRpTGluZTsKK30KIAotLy8gQ2xhc3MgU3R5bGVk
U3RyZWFtV3JpdGVyCi0vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjpwdXNo
VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQorICAg
IGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNlCisgICAgKmRvY3VtZW50XyA8
PCB2YWx1ZTsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KCkgewor
ICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBhdCB0aGUgc28tZmFyLXdyaXR0ZW4gc3Ry
aW5nCisgIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBhbHJlYWR5IGluZGVudGVkLCBi
dXQKKyAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3QgZG8gdGhhdC4gU28gd2UgcmVseSBvbiBz
b21lIHNhdmVkIHN0YXRlLgorICAvLyBUaGUgY2FsbGVyIGNoZWNrcyBpbmRlbnRlZF8uCisgICpk
b2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOworfQogCi1TdHlsZWRTdHJlYW1Xcml0
ZXI6OlN0eWxlZFN0cmVhbVdyaXRlciggc3RkOjpzdHJpbmcgaW5kZW50YXRpb24gKQotICAgOiBk
b2N1bWVudF8oTlVMTCkKLSAgICwgcmlnaHRNYXJnaW5fKCA3NCApCi0gICAsIGluZGVudGF0aW9u
XyggaW5kZW50YXRpb24gKQotICAgLCBhZGRDaGlsZFZhbHVlc18oKQotewordm9pZCBTdHlsZWRT
dHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVudChjb25zdCBTdHJpbmcmIHZhbHVlKSB7CisgIGlm
ICghaW5kZW50ZWRfKQorICAgIHdyaXRlSW5kZW50KCk7CisgICpkb2N1bWVudF8gPDwgdmFsdWU7
CisgIGluZGVudGVkXyA9IGZhbHNlOwogfQogCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6aW5k
ZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IGluZGVudGF0aW9uXzsgfQogCi12b2lkCi1TdHlsZWRT
dHJlYW1Xcml0ZXI6OndyaXRlKCBzdGQ6Om9zdHJlYW0gJm91dCwgY29uc3QgVmFsdWUgJnJvb3Qg
KQotewotICAgZG9jdW1lbnRfID0gJm91dDsKLSAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOwot
ICAgaW5kZW50U3RyaW5nXyA9ICIiOwotICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoIHJvb3Qg
KTsKLSAgIHdyaXRlVmFsdWUoIHJvb3QgKTsKLSAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNh
bWVMaW5lKCByb290ICk7Ci0gICAqZG9jdW1lbnRfIDw8ICJcbiI7Ci0gICBkb2N1bWVudF8gPSBO
VUxMOyAvLyBGb3JnZXQgdGhlIHN0cmVhbSwgZm9yIHNhZmV0eS4KK3ZvaWQgU3R5bGVkU3RyZWFt
V3JpdGVyOjp1bmluZGVudCgpIHsKKyAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGlu
ZGVudGF0aW9uXy5zaXplKCkpOworICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdf
LnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwogfQogCit2b2lkIFN0eWxlZFN0cmVhbVdy
aXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYg
KCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisgICAgcmV0dXJuOworCisgIGlmICgh
aW5kZW50ZWRfKQorICAgIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IFN0cmluZyYgY29tbWVudCA9
IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKKyAgU3RyaW5nOjpjb25zdF9pdGVyYXRv
ciBpdGVyID0gY29tbWVudC5iZWdpbigpOworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgp
KSB7CisgICAgKmRvY3VtZW50XyA8PCAqaXRlcjsKKyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJiAo
KGl0ZXIgKyAxKSAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcvJykpCisgICAg
ICAvLyB3cml0ZUluZGVudCgpOyAgLy8gd291bGQgaW5jbHVkZSBuZXdsaW5lCisgICAgICAqZG9j
dW1lbnRfIDw8IGluZGVudFN0cmluZ187CisgICAgKytpdGVyOworICB9CisgIGluZGVudGVkXyA9
IGZhbHNlOworfQogCi12b2lkIAotU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKCBjb25z
dCBWYWx1ZSAmdmFsdWUgKQotewotICAgc3dpdGNoICggdmFsdWUudHlwZSgpICkKLSAgIHsKLSAg
IGNhc2UgbnVsbFZhbHVlOgotICAgICAgcHVzaFZhbHVlKCAibnVsbCIgKTsKLSAgICAgIGJyZWFr
OwotICAgY2FzZSBpbnRWYWx1ZToKLSAgICAgIHB1c2hWYWx1ZSggdmFsdWVUb1N0cmluZyggdmFs
dWUuYXNMYXJnZXN0SW50KCkgKSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIHVpbnRWYWx1ZToK
LSAgICAgIHB1c2hWYWx1ZSggdmFsdWVUb1N0cmluZyggdmFsdWUuYXNMYXJnZXN0VUludCgpICkg
KTsKLSAgICAgIGJyZWFrOwotICAgY2FzZSByZWFsVmFsdWU6Ci0gICAgICBwdXNoVmFsdWUoIHZh
bHVlVG9TdHJpbmcoIHZhbHVlLmFzRG91YmxlKCkgKSApOwotICAgICAgYnJlYWs7Ci0gICBjYXNl
IHN0cmluZ1ZhbHVlOgotICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRvUXVvdGVkU3RyaW5nKCB2YWx1
ZS5hc0NTdHJpbmcoKSApICk7Ci0gICAgICBicmVhazsKLSAgIGNhc2UgYm9vbGVhblZhbHVlOgot
ICAgICAgcHVzaFZhbHVlKCB2YWx1ZVRvU3RyaW5nKCB2YWx1ZS5hc0Jvb2woKSApICk7Ci0gICAg
ICBicmVhazsKLSAgIGNhc2UgYXJyYXlWYWx1ZToKLSAgICAgIHdyaXRlQXJyYXlWYWx1ZSggdmFs
dWUpOwotICAgICAgYnJlYWs7Ci0gICBjYXNlIG9iamVjdFZhbHVlOgotICAgICAgewotICAgICAg
ICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyggdmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSApOwotICAg
ICAgICAgaWYgKCBtZW1iZXJzLmVtcHR5KCkgKQotICAgICAgICAgICAgcHVzaFZhbHVlKCAie30i
ICk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICB7Ci0gICAgICAgICAgICB3cml0ZVdpdGhJbmRl
bnQoICJ7IiApOwotICAgICAgICAgICAgaW5kZW50KCk7Ci0gICAgICAgICAgICBWYWx1ZTo6TWVt
YmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7Ci0gICAgICAgICAgICBmb3IgKDs7
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUg
PSAqaXQ7Ci0gICAgICAgICAgICAgICBjb25zdCBWYWx1ZSAmY2hpbGRWYWx1ZSA9IHZhbHVlW25h
bWVdOwotICAgICAgICAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoIGNoaWxkVmFsdWUg
KTsKLSAgICAgICAgICAgICAgIHdyaXRlV2l0aEluZGVudCggdmFsdWVUb1F1b3RlZFN0cmluZygg
bmFtZS5jX3N0cigpICkgKTsKLSAgICAgICAgICAgICAgICpkb2N1bWVudF8gPDwgIiA6ICI7Ci0g
ICAgICAgICAgICAgICB3cml0ZVZhbHVlKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICAgICBp
ZiAoICsraXQgPT0gbWVtYmVycy5lbmQoKSApCi0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY2hpbGRWYWx1ZSApOwot
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAqZG9jdW1lbnRfIDw8ICIsIjsKLSAgICAgICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFs
dWVPblNhbWVMaW5lKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1
bmluZGVudCgpOwotICAgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KCAifSIgKTsKLSAgICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIGJyZWFrOwotICAgfQotfQotCi0KLXZvaWQgCi1TdHlsZWRTdHJl
YW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAgIHVu
c2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICBpZiAoIHNpemUgPT0gMCApCi0gICAgICBw
dXNoVmFsdWUoICJbXSIgKTsKLSAgIGVsc2UKLSAgIHsKLSAgICAgIGJvb2wgaXNBcnJheU11bHRp
TGluZSA9IGlzTXVsdGluZUFycmF5KCB2YWx1ZSApOwotICAgICAgaWYgKCBpc0FycmF5TXVsdGlM
aW5lICkKLSAgICAgIHsKLSAgICAgICAgIHdyaXRlV2l0aEluZGVudCggIlsiICk7Ci0gICAgICAg
ICBpbmRlbnQoKTsKLSAgICAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18u
ZW1wdHkoKTsKLSAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0wOwotICAgICAgICAgZm9yICg7OykK
LSAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IFZhbHVlICZjaGlsZFZhbHVlID0gdmFsdWVb
aW5kZXhdOwotICAgICAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoIGNoaWxkVmFsdWUg
KTsKLSAgICAgICAgICAgIGlmICggaGFzQ2hpbGRWYWx1ZSApCi0gICAgICAgICAgICAgICB3cml0
ZVdpdGhJbmRlbnQoIGNoaWxkVmFsdWVzX1tpbmRleF0gKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KCk7Ci0gICAgICAgICAgICAg
ICB3cml0ZVZhbHVlKCBjaGlsZFZhbHVlICk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAoICsraW5kZXggPT0gc2l6ZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICB3cml0
ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSggY2hpbGRWYWx1ZSApOwotICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsK
LSAgICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKCBjaGlsZFZhbHVl
ICk7Ci0gICAgICAgICB9Ci0gICAgICAgICB1bmluZGVudCgpOwotICAgICAgICAgd3JpdGVXaXRo
SW5kZW50KCAiXSIgKTsKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRl
clZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAocm9vdC5oYXNDb21t
ZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgICpkb2N1bWVudF8gPDwgJyAnIDw8IHJv
b3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKTsKKworICBpZiAocm9vdC5oYXND
b21tZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICB3cml0ZUluZGVudCgpOworICAgICpkb2N1bWVu
dF8gPDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlcik7CisgIH0KKyAgaW5kZW50ZWRfID0g
ZmFsc2U7Cit9CisKK2Jvb2wgU3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUo
Y29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRC
ZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxp
bmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlcik7Cit9CisKKy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcgorCisv
Ly8gU2NvcGVkIGVudW1zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIEMrKzExLgorc3RydWN0IENv
bW1lbnRTdHlsZSB7CisgIC8vLyBEZWNpZGUgd2hldGhlciB0byB3cml0ZSBjb21tZW50cy4KKyAg
ZW51bSBFbnVtIHsKKyAgICBOb25lLCAvLy88IERyb3AgYWxsIGNvbW1lbnRzLgorICAgIE1vc3Qs
IC8vLzwgUmVjb3ZlciBvZGQgYmVoYXZpb3Igb2YgcHJldmlvdXMgdmVyc2lvbnMgKG5vdCBpbXBs
ZW1lbnRlZCB5ZXQpLgorICAgIEFsbCAgIC8vLzwgS2VlcCBhbGwgY29tbWVudHMuCisgIH07Cit9
OworCitzdHJ1Y3QgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIgOiBwdWJsaWMgU3RyZWFtV3JpdGVy
IHsKKyAgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoU3RyaW5nIGluZGVudGF0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBDb21tZW50U3R5bGU6OkVudW0gY3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIFN0cmluZyBjb2xvblN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgU3RyaW5nIG51bGxTeW1ib2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBl
bmRpbmdMaW5lRmVlZFN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB1c2VT
cGVjaWFsRmxvYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHJl
Y2lzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVjaXNpb25UeXBlIHByZWNpc2lv
blR5cGUpOworICBpbnQgd3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIE9TdHJlYW0qIHNvdXQpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUoVmFsdWUgY29uc3QmIHZhbHVl
KTsKKyAgdm9pZCB3cml0ZUFycmF5VmFsdWUoVmFsdWUgY29uc3QmIHZhbHVlKTsKKyAgYm9vbCBp
c011bHRpbGluZUFycmF5KFZhbHVlIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVlKFN0
cmluZyBjb25zdCYgdmFsdWUpOworICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVX
aXRoSW5kZW50KFN0cmluZyBjb25zdCYgdmFsdWUpOworICB2b2lkIGluZGVudCgpOworICB2b2lk
IHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoVmFsdWUgY29uc3Qm
IHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKFZhbHVlIGNv
bnN0JiByb290KTsKKyAgc3RhdGljIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVl
JiB2YWx1ZSk7CisKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxTdHJpbmc+IENoaWxkVmFsdWVzOwor
CisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgU3RyaW5nIGluZGVudFN0cmluZ187Cisg
IHVuc2lnbmVkIGludCByaWdodE1hcmdpbl87CisgIFN0cmluZyBpbmRlbnRhdGlvbl87CisgIENv
bW1lbnRTdHlsZTo6RW51bSBjc187CisgIFN0cmluZyBjb2xvblN5bWJvbF87CisgIFN0cmluZyBu
dWxsU3ltYm9sXzsKKyAgU3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sXzsKKyAgYm9vbCBhZGRD
aGlsZFZhbHVlc18gOiAxOworICBib29sIGluZGVudGVkXyA6IDE7CisgIGJvb2wgdXNlU3BlY2lh
bEZsb2F0c18gOiAxOworICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uXzsKKyAgUHJlY2lzaW9uVHlw
ZSBwcmVjaXNpb25UeXBlXzsKK307CitCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6QnVpbHRTdHls
ZWRTdHJlYW1Xcml0ZXIoU3RyaW5nIGluZGVudGF0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRTdHlsZTo6RW51bSBjcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY29sb25T
eW1ib2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U3RyaW5nIG51bGxTeW1ib2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgcHJlY2lzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFByZWNpc2lvblR5cGUgcHJlY2lzaW9uVHlwZSkKKyAgICA6IHJpZ2h0TWFyZ2lu
Xyg3NCksIGluZGVudGF0aW9uXyhzdGQ6Om1vdmUoaW5kZW50YXRpb24pKSwgY3NfKGNzKSwKKyAg
ICAgIGNvbG9uU3ltYm9sXyhzdGQ6Om1vdmUoY29sb25TeW1ib2wpKSwgbnVsbFN5bWJvbF8oc3Rk
Ojptb3ZlKG51bGxTeW1ib2wpKSwKKyAgICAgIGVuZGluZ0xpbmVGZWVkU3ltYm9sXyhzdGQ6Om1v
dmUoZW5kaW5nTGluZUZlZWRTeW1ib2wpKSwKKyAgICAgIGFkZENoaWxkVmFsdWVzXyhmYWxzZSks
IGluZGVudGVkXyhmYWxzZSksCisgICAgICB1c2VTcGVjaWFsRmxvYXRzXyh1c2VTcGVjaWFsRmxv
YXRzKSwgcHJlY2lzaW9uXyhwcmVjaXNpb24pLAorICAgICAgcHJlY2lzaW9uVHlwZV8ocHJlY2lz
aW9uVHlwZSkge30KK2ludCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoVmFsdWUgY29u
c3QmIHJvb3QsIE9TdHJlYW0qIHNvdXQpIHsKKyAgc291dF8gPSBzb3V0OworICBhZGRDaGlsZFZh
bHVlc18gPSBmYWxzZTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgaW5kZW50U3RyaW5nXy5jbGVh
cigpOworICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKKyAgaWYgKCFpbmRlbnRlZF8p
CisgICAgd3JpdGVJbmRlbnQoKTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVWYWx1ZShy
b290KTsKKyAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgICpzb3V0
XyA8PCBlbmRpbmdMaW5lRmVlZFN5bWJvbF87CisgIHNvdXRfID0gbnVsbHB0cjsKKyAgcmV0dXJu
IDA7Cit9Cit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKFZhbHVlIGNv
bnN0JiB2YWx1ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1
ZToKKyAgICBwdXNoVmFsdWUobnVsbFN5bWJvbF8pOworICAgIGJyZWFrOworICBjYXNlIGludFZh
bHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKSk7
CisgICAgYnJlYWs7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3Ry
aW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1
ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpLCB1c2VTcGVj
aWFsRmxvYXRzXywgcHJlY2lzaW9uXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVj
aXNpb25UeXBlXykpOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOiB7CisgICAgLy8g
SXMgTlVMTCBpcyBwb3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8gTm8uCisgICAgY2hhciBjb25z
dCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3Ry
aW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykKKyAgICAgIHB1c2hWYWx1ZSh2YWx1ZVRvUXVv
dGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBzdHIpKSk7CisgICAg
ZWxzZQorICAgICAgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xl
YW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOwor
ICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJheVZhbHVlKHZhbHVl
KTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJz
IG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1lbWJlcnMuZW1wdHko
KSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAgIHdyaXRlV2l0aElu
ZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBhdXRvIGl0ID0gbWVtYmVycy5iZWdp
bigpOworICAgICAgZm9yICg7OykgeworICAgICAgICBTdHJpbmcgY29uc3QmIG5hbWUgPSAqaXQ7
CisgICAgICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07CisgICAgICAg
IHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICB3cml0ZVdpdGhJ
bmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZ04oCisgICAgICAgICAgICBuYW1lLmRhdGEoKSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KG5hbWUubGVuZ3RoKCkpKSk7CisgICAgICAgICpzb3V0XyA8PCBj
b2xvblN5bWJvbF87CisgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlm
ICgrK2l0ID09IG1lbWJlcnMuZW5kKCkpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZh
bHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICAqc291dF8gPDwgIiwiOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25T
YW1lTGluZShjaGlsZFZhbHVlKTsKICAgICAgIH0KLSAgICAgIGVsc2UgLy8gb3V0cHV0IG9uIGEg
c2luZ2xlIGxpbmUKLSAgICAgIHsKLSAgICAgICAgIGFzc2VydCggY2hpbGRWYWx1ZXNfLnNpemUo
KSA9PSBzaXplICk7Ci0gICAgICAgICAqZG9jdW1lbnRfIDw8ICJbICI7Ci0gICAgICAgICBmb3Ig
KCB1bnNpZ25lZCBpbmRleCA9MDsgaW5kZXggPCBzaXplOyArK2luZGV4ICkKLSAgICAgICAgIHsK
LSAgICAgICAgICAgIGlmICggaW5kZXggPiAwICkKLSAgICAgICAgICAgICAgICpkb2N1bWVudF8g
PDwgIiwgIjsKLSAgICAgICAgICAgICpkb2N1bWVudF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsK
LSAgICAgICAgIH0KLSAgICAgICAgICpkb2N1bWVudF8gPDwgIiBdIjsKKyAgICAgIHVuaW5kZW50
KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0iKTsKKyAgICB9CisgIH0gYnJlYWs7CisgIH0K
K30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKFZhbHVl
IGNvbnN0JiB2YWx1ZSkgeworICB1bnNpZ25lZCBzaXplID0gdmFsdWUuc2l6ZSgpOworICBpZiAo
c2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10iKTsKKyAgZWxzZSB7CisgICAgYm9vbCBpc011
bHRpTGluZSA9IChjc18gPT0gQ29tbWVudFN0eWxlOjpBbGwpIHx8IGlzTXVsdGlsaW5lQXJyYXko
dmFsdWUpOworICAgIGlmIChpc011bHRpTGluZSkgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJb
Iik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZh
bHVlc18uZW1wdHkoKTsKKyAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzsp
IHsKKyAgICAgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAg
ICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoaGFz
Q2hpbGRWYWx1ZSkKKyAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4
XSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgIGlmICghaW5kZW50ZWRfKQorICAgICAgICAg
ICAgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSB0cnVlOworICAgICAgICAg
IHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgaW5kZW50ZWRfID0gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgeworICAgICAgICAgIHdyaXRl
Q29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgICpzb3V0XyA8PCAiLCI7CisgICAgICAgIHdyaXRlQ29tbWVu
dEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwogICAgICAgfQotICAgfQotfQotCi0K
LWJvb2wgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KCBjb25zdCBWYWx1ZSAm
dmFsdWUgKQotewotICAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7Ci0gICBib29sIGlzTXVsdGlM
aW5lID0gc2l6ZSozID49IHJpZ2h0TWFyZ2luXyA7Ci0gICBjaGlsZFZhbHVlc18uY2xlYXIoKTsK
LSAgIGZvciAoIGludCBpbmRleCA9MDsgaW5kZXggPCBzaXplICAmJiAgIWlzTXVsdGlMaW5lOyAr
K2luZGV4ICkKLSAgIHsKLSAgICAgIGNvbnN0IFZhbHVlICZjaGlsZFZhbHVlID0gdmFsdWVbaW5k
ZXhdOwotICAgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGluZSAgfHwKLSAgICAgICAgICAgICAg
ICAgICAgICggKGNoaWxkVmFsdWUuaXNBcnJheSgpICB8fCAgY2hpbGRWYWx1ZS5pc09iamVjdCgp
KSAgJiYgIAotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwICk7
Ci0gICB9Ci0gICBpZiAoICFpc011bHRpTGluZSApIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4g
bWF4IGxpbmUgbGVuZ3RoCi0gICB7Ci0gICAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZSggc2l6ZSAp
OwotICAgICAgYWRkQ2hpbGRWYWx1ZXNfID0gdHJ1ZTsKLSAgICAgIGludCBsaW5lTGVuZ3RoID0g
NCArIChzaXplLTEpKjI7IC8vICdbICcgKyAnLCAnKm4gKyAnIF0nCi0gICAgICBmb3IgKCBpbnQg
aW5kZXggPTA7IGluZGV4IDwgc2l6ZSAgJiYgICFpc011bHRpTGluZTsgKytpbmRleCApCi0gICAg
ICB7Ci0gICAgICAgICB3cml0ZVZhbHVlKCB2YWx1ZVtpbmRleF0gKTsKLSAgICAgICAgIGxpbmVM
ZW5ndGggKz0gaW50KCBjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0aCgpICk7Ci0gICAgICAgICBp
c011bHRpTGluZSA9IGlzTXVsdGlMaW5lICAmJiAgaGFzQ29tbWVudEZvclZhbHVlKCB2YWx1ZVtp
bmRleF0gKTsKKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsK
KyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKKyAgICB7CisgICAgICBhc3Nl
cnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKKyAgICAgICpzb3V0XyA8PCAiWyI7Cisg
ICAgICBpZiAoIWluZGVudGF0aW9uXy5lbXB0eSgpKQorICAgICAgICAqc291dF8gPDwgIiAiOwor
ICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgewor
ICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgICpzb3V0XyA8PCAoKCFpbmRlbnRhdGlv
bl8uZW1wdHkoKSkgPyAiLCAiIDogIiwiKTsKKyAgICAgICAgKnNvdXRfIDw8IGNoaWxkVmFsdWVz
X1tpbmRleF07CiAgICAgICB9Ci0gICAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKLSAgICAg
IGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgIHx8ICBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2lu
XzsKLSAgIH0KLSAgIHJldHVybiBpc011bHRpTGluZTsKKyAgICAgIGlmICghaW5kZW50YXRpb25f
LmVtcHR5KCkpCisgICAgICAgICpzb3V0XyA8PCAiICI7CisgICAgICAqc291dF8gPDwgIl0iOwor
ICAgIH0KKyAgfQogfQogCi0KLXZvaWQgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZSgg
Y29uc3Qgc3RkOjpzdHJpbmcgJnZhbHVlICkKLXsKLSAgIGlmICggYWRkQ2hpbGRWYWx1ZXNfICkK
LSAgICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2soIHZhbHVlICk7Ci0gICBlbHNlCi0gICAgICAq
ZG9jdW1lbnRfIDw8IHZhbHVlOworYm9vbCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6aXNNdWx0
aWxpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgQXJyYXlJbmRleCBjb25zdCBzaXpl
ID0gdmFsdWUuc2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmlnaHRN
YXJnaW5fOworICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChBcnJheUluZGV4IGluZGV4
ID0gMDsgaW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytpbmRleCkgeworICAgIFZhbHVl
IGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAgIGlzTXVsdGlMaW5lID0gKChj
aGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkpICYmCisgICAgICAg
ICAgICAgICAgICAgIWNoaWxkVmFsdWUuZW1wdHkoKSk7CisgIH0KKyAgaWYgKCFpc011bHRpTGlu
ZSkgLy8gY2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAgIGNo
aWxkVmFsdWVzXy5yZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7Cisg
ICAgQXJyYXlJbmRleCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAyOyAvLyAnWyAnICsg
JywgJypuICsgJyBdJworICAgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9IDA7IGluZGV4IDwgc2l6
ZTsgKytpbmRleCkgeworICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0p
KSB7CisgICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFs
dWUodmFsdWVbaW5kZXhdKTsKKyAgICAgIGxpbmVMZW5ndGggKz0gc3RhdGljX2Nhc3Q8QXJyYXlJ
bmRleD4oY2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxk
VmFsdWVzXyA9IGZhbHNlOworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxl
bmd0aCA+PSByaWdodE1hcmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOwogfQogCit2
b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpwdXNoVmFsdWUoU3RyaW5nIGNvbnN0JiB2YWx1
ZSkgeworICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2so
dmFsdWUpOworICBlbHNlCisgICAgKnNvdXRfIDw8IHZhbHVlOworfQogCi12b2lkIAotU3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZUluZGVudCgpCi17Ci0gIC8qCi0gICAgU29tZSBjb21tZW50cyBp
biB0aGlzIG1ldGhvZCB3b3VsZCBoYXZlIGJlZW4gbmljZS4gOy0pCit2b2lkIEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgLy8gYmxlcCBpbnRlbmRlZCB0aGlzIHRv
IGxvb2sgYXQgdGhlIHNvLWZhci13cml0dGVuIHN0cmluZworICAvLyB0byBkZXRlcm1pbmUgd2hl
dGhlciB3ZSBhcmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0CisgIC8vIHdpdGggYSBzdHJlYW0gd2Ug
Y2Fubm90IGRvIHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBzdGF0ZS4KKyAgLy8gVGhl
IGNhbGxlciBjaGVja3MgaW5kZW50ZWRfLgogCi0gICBpZiAoICFkb2N1bWVudF8uZW1wdHkoKSAp
Ci0gICB7Ci0gICAgICBjaGFyIGxhc3QgPSBkb2N1bWVudF9bZG9jdW1lbnRfLmxlbmd0aCgpLTFd
OwotICAgICAgaWYgKCBsYXN0ID09ICcgJyApICAgICAvLyBhbHJlYWR5IGluZGVudGVkCi0gICAg
ICAgICByZXR1cm47Ci0gICAgICBpZiAoIGxhc3QgIT0gJ1xuJyApICAgIC8vIENvbW1lbnRzIG1h
eSBhZGQgbmV3LWxpbmUKLSAgICAgICAgICpkb2N1bWVudF8gPDwgJ1xuJzsKLSAgIH0KLSAgKi8K
LSAgICpkb2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOworICBpZiAoIWluZGVudGF0
aW9uXy5lbXB0eSgpKSB7CisgICAgLy8gSW4gdGhpcyBjYXNlLCBkcm9wIG5ld2xpbmVzIHRvby4K
KyAgICAqc291dF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOworICB9CiB9CiAKLQotdm9pZCAK
LVN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KCBjb25zdCBzdGQ6OnN0cmluZyAm
dmFsdWUgKQotewotICAgd3JpdGVJbmRlbnQoKTsKLSAgICpkb2N1bWVudF8gPDwgdmFsdWU7Cit2
b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQoU3RyaW5nIGNvbnN0
JiB2YWx1ZSkgeworICBpZiAoIWluZGVudGVkXykKKyAgICB3cml0ZUluZGVudCgpOworICAqc291
dF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9IGZhbHNlOwogfQogCit2b2lkIEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOyB9
CiAKLXZvaWQgCi1TdHlsZWRTdHJlYW1Xcml0ZXI6OmluZGVudCgpCi17Ci0gICBpbmRlbnRTdHJp
bmdfICs9IGluZGVudGF0aW9uXzsKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OnVuaW5k
ZW50KCkgeworICBhc3NlcnQoaW5kZW50U3RyaW5nXy5zaXplKCkgPj0gaW5kZW50YXRpb25fLnNp
emUoKSk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVudFN0cmluZ18uc2l6ZSgpIC0gaW5k
ZW50YXRpb25fLnNpemUoKSk7CiB9CiAKLQotdm9pZCAKLVN0eWxlZFN0cmVhbVdyaXRlcjo6dW5p
bmRlbnQoKQotewotICAgYXNzZXJ0KCBpbmRlbnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRhdGlv
bl8uc2l6ZSgpICk7Ci0gICBpbmRlbnRTdHJpbmdfLnJlc2l6ZSggaW5kZW50U3RyaW5nXy5zaXpl
KCkgLSBpbmRlbnRhdGlvbl8uc2l6ZSgpICk7Cit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1ZSBjb25zdCYgcm9vdCkgeworICBpZiAoY3Nf
ID09IENvbW1lbnRTdHlsZTo6Tm9uZSkKKyAgICByZXR1cm47CisgIGlmICghcm9vdC5oYXNDb21t
ZW50KGNvbW1lbnRCZWZvcmUpKQorICAgIHJldHVybjsKKworICBpZiAoIWluZGVudGVkXykKKyAg
ICB3cml0ZUluZGVudCgpOworICBjb25zdCBTdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENvbW1l
bnQoY29tbWVudEJlZm9yZSk7CisgIFN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGNvbW1l
bnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSkgeworICAgICpzb3V0
XyA8PCAqaXRlcjsKKyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJiAoKGl0ZXIgKyAxKSAhPSBjb21t
ZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcvJykpCisgICAgICAvLyB3cml0ZUluZGVudCgp
OyAgLy8gd291bGQgd3JpdGUgZXh0cmEgbmV3bGluZQorICAgICAgKnNvdXRfIDw8IGluZGVudFN0
cmluZ187CisgICAgKytpdGVyOworICB9CisgIGluZGVudGVkXyA9IGZhbHNlOwogfQogCit2b2lk
IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGlu
ZSgKKyAgICBWYWx1ZSBjb25zdCYgcm9vdCkgeworICBpZiAoY3NfID09IENvbW1lbnRTdHlsZTo6
Tm9uZSkKKyAgICByZXR1cm47CisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25T
YW1lTGluZSkpCisgICAgKnNvdXRfIDw8ICIgIiArIHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0
ZXJPblNhbWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsK
KyAgICB3cml0ZUluZGVudCgpOworICAgICpzb3V0XyA8PCByb290LmdldENvbW1lbnQoY29tbWVu
dEFmdGVyKTsKKyAgfQorfQogCi12b2lkIAotU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1l
bnRCZWZvcmVWYWx1ZSggY29uc3QgVmFsdWUgJnJvb3QgKQotewotICAgaWYgKCAhcm9vdC5oYXND
b21tZW50KCBjb21tZW50QmVmb3JlICkgKQotICAgICAgcmV0dXJuOwotICAgKmRvY3VtZW50XyA8
PCBub3JtYWxpemVFT0woIHJvb3QuZ2V0Q29tbWVudCggY29tbWVudEJlZm9yZSApICk7Ci0gICAq
ZG9jdW1lbnRfIDw8ICJcbiI7Ci19Ci0KLQotdm9pZCAKLVN0eWxlZFN0cmVhbVdyaXRlcjo6d3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoIGNvbnN0IFZhbHVlICZyb290ICkKLXsKLSAg
IGlmICggcm9vdC5oYXNDb21tZW50KCBjb21tZW50QWZ0ZXJPblNhbWVMaW5lICkgKQotICAgICAg
KmRvY3VtZW50XyA8PCAiICIgKyBub3JtYWxpemVFT0woIHJvb3QuZ2V0Q29tbWVudCggY29tbWVu
dEFmdGVyT25TYW1lTGluZSApICk7Ci0KLSAgIGlmICggcm9vdC5oYXNDb21tZW50KCBjb21tZW50
QWZ0ZXIgKSApCi0gICB7Ci0gICAgICAqZG9jdW1lbnRfIDw8ICJcbiI7Ci0gICAgICAqZG9jdW1l
bnRfIDw8IG5vcm1hbGl6ZUVPTCggcm9vdC5nZXRDb21tZW50KCBjb21tZW50QWZ0ZXIgKSApOwot
ICAgICAgKmRvY3VtZW50XyA8PCAiXG4iOwotICAgfQotfQotCi0KLWJvb2wgCi1TdHlsZWRTdHJl
YW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZSggY29uc3QgVmFsdWUgJnZhbHVlICkKLXsKLSAg
IHJldHVybiB2YWx1ZS5oYXNDb21tZW50KCBjb21tZW50QmVmb3JlICkKLSAgICAgICAgICB8fCAg
dmFsdWUuaGFzQ29tbWVudCggY29tbWVudEFmdGVyT25TYW1lTGluZSApCi0gICAgICAgICAgfHwg
IHZhbHVlLmhhc0NvbW1lbnQoIGNvbW1lbnRBZnRlciApOwotfQotCi0KLXN0ZDo6c3RyaW5nIAot
U3R5bGVkU3RyZWFtV3JpdGVyOjpub3JtYWxpemVFT0woIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0
ICkKLXsKLSAgIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZWQ7Ci0gICBub3JtYWxpemVkLnJlc2VydmUo
IHRleHQubGVuZ3RoKCkgKTsKLSAgIGNvbnN0IGNoYXIgKmJlZ2luID0gdGV4dC5jX3N0cigpOwot
ICAgY29uc3QgY2hhciAqZW5kID0gYmVnaW4gKyB0ZXh0Lmxlbmd0aCgpOwotICAgY29uc3QgY2hh
ciAqY3VycmVudCA9IGJlZ2luOwotICAgd2hpbGUgKCBjdXJyZW50ICE9IGVuZCApCi0gICB7Ci0g
ICAgICBjaGFyIGMgPSAqY3VycmVudCsrOwotICAgICAgaWYgKCBjID09ICdccicgKSAvLyBtYWMg
b3IgZG9zIEVPTAotICAgICAgewotICAgICAgICAgaWYgKCAqY3VycmVudCA9PSAnXG4nICkgLy8g
Y29udmVydCBkb3MgRU9MCi0gICAgICAgICAgICArK2N1cnJlbnQ7Ci0gICAgICAgICBub3JtYWxp
emVkICs9ICdcbic7Ci0gICAgICB9Ci0gICAgICBlbHNlIC8vIGhhbmRsZSB1bml4IEVPTCAmIG90
aGVyIGNoYXIKLSAgICAgICAgIG5vcm1hbGl6ZWQgKz0gYzsKLSAgIH0KLSAgIHJldHVybiBub3Jt
YWxpemVkOworLy8gc3RhdGljCitib29sIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21t
ZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21t
ZW50KGNvbW1lbnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRB
ZnRlck9uU2FtZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRl
cik7CiB9CiAKKy8vLy8vLy8vLy8vLy8vLworLy8gU3RyZWFtV3JpdGVyCisKK1N0cmVhbVdyaXRl
cjo6U3RyZWFtV3JpdGVyKCkgOiBzb3V0XyhudWxscHRyKSB7fQorU3RyZWFtV3JpdGVyOjp+U3Ry
ZWFtV3JpdGVyKCkgPSBkZWZhdWx0OworU3RyZWFtV3JpdGVyOjpGYWN0b3J5Ojp+RmFjdG9yeSgp
ID0gZGVmYXVsdDsKK1N0cmVhbVdyaXRlckJ1aWxkZXI6OlN0cmVhbVdyaXRlckJ1aWxkZXIoKSB7
IHNldERlZmF1bHRzKCZzZXR0aW5nc18pOyB9CitTdHJlYW1Xcml0ZXJCdWlsZGVyOjp+U3RyZWFt
V3JpdGVyQnVpbGRlcigpID0gZGVmYXVsdDsKK1N0cmVhbVdyaXRlciogU3RyZWFtV3JpdGVyQnVp
bGRlcjo6bmV3U3RyZWFtV3JpdGVyKCkgY29uc3QgeworICBTdHJpbmcgaW5kZW50YXRpb24gPSBz
ZXR0aW5nc19bImluZGVudGF0aW9uIl0uYXNTdHJpbmcoKTsKKyAgU3RyaW5nIGNzX3N0ciA9IHNl
dHRpbmdzX1siY29tbWVudFN0eWxlIl0uYXNTdHJpbmcoKTsKKyAgU3RyaW5nIHB0X3N0ciA9IHNl
dHRpbmdzX1sicHJlY2lzaW9uVHlwZSJdLmFzU3RyaW5nKCk7CisgIGJvb2wgZXljID0gc2V0dGlu
Z3NfWyJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSJdLmFzQm9vbCgpOworICBib29sIGRucCA9IHNl
dHRpbmdzX1siZHJvcE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jvb2woKTsKKyAgYm9vbCB1c2YgPSBz
ZXR0aW5nc19bInVzZVNwZWNpYWxGbG9hdHMiXS5hc0Jvb2woKTsKKyAgdW5zaWduZWQgaW50IHBy
ZSA9IHNldHRpbmdzX1sicHJlY2lzaW9uIl0uYXNVSW50KCk7CisgIENvbW1lbnRTdHlsZTo6RW51
bSBjcyA9IENvbW1lbnRTdHlsZTo6QWxsOworICBpZiAoY3Nfc3RyID09ICJBbGwiKSB7CisgICAg
Y3MgPSBDb21tZW50U3R5bGU6OkFsbDsKKyAgfSBlbHNlIGlmIChjc19zdHIgPT0gIk5vbmUiKSB7
CisgICAgY3MgPSBDb21tZW50U3R5bGU6Ok5vbmU7CisgIH0gZWxzZSB7CisgICAgdGhyb3dSdW50
aW1lRXJyb3IoImNvbW1lbnRTdHlsZSBtdXN0IGJlICdBbGwnIG9yICdOb25lJyIpOworICB9Cisg
IFByZWNpc2lvblR5cGUgcHJlY2lzaW9uVHlwZShzaWduaWZpY2FudERpZ2l0cyk7CisgIGlmIChw
dF9zdHIgPT0gInNpZ25pZmljYW50IikgeworICAgIHByZWNpc2lvblR5cGUgPSBQcmVjaXNpb25U
eXBlOjpzaWduaWZpY2FudERpZ2l0czsKKyAgfSBlbHNlIGlmIChwdF9zdHIgPT0gImRlY2ltYWwi
KSB7CisgICAgcHJlY2lzaW9uVHlwZSA9IFByZWNpc2lvblR5cGU6OmRlY2ltYWxQbGFjZXM7Cisg
IH0gZWxzZSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoInByZWNpc2lvblR5cGUgbXVzdCBiZSAn
c2lnbmlmaWNhbnQnIG9yICdkZWNpbWFsJyIpOworICB9CisgIFN0cmluZyBjb2xvblN5bWJvbCA9
ICIgOiAiOworICBpZiAoZXljKSB7CisgICAgY29sb25TeW1ib2wgPSAiOiAiOworICB9IGVsc2Ug
aWYgKGluZGVudGF0aW9uLmVtcHR5KCkpIHsKKyAgICBjb2xvblN5bWJvbCA9ICI6IjsKKyAgfQor
ICBTdHJpbmcgbnVsbFN5bWJvbCA9ICJudWxsIjsKKyAgaWYgKGRucCkgeworICAgIG51bGxTeW1i
b2wuY2xlYXIoKTsKKyAgfQorICBpZiAocHJlID4gMTcpCisgICAgcHJlID0gMTc7CisgIFN0cmlu
ZyBlbmRpbmdMaW5lRmVlZFN5bWJvbDsKKyAgcmV0dXJuIG5ldyBCdWlsdFN0eWxlZFN0cmVhbVdy
aXRlcihpbmRlbnRhdGlvbiwgY3MsIGNvbG9uU3ltYm9sLCBudWxsU3ltYm9sLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZGluZ0xpbmVGZWVkU3ltYm9sLCB1c2YsIHBy
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb25UeXBlKTsK
K30KK3N0YXRpYyB2b2lkIGdldFZhbGlkV3JpdGVyS2V5cyhzdGQ6OnNldDxTdHJpbmc+KiB2YWxp
ZF9rZXlzKSB7CisgIHZhbGlkX2tleXMtPmNsZWFyKCk7CisgIHZhbGlkX2tleXMtPmluc2VydCgi
aW5kZW50YXRpb24iKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJjb21tZW50U3R5bGUiKTsKKyAg
dmFsaWRfa2V5cy0+aW5zZXJ0KCJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSIpOworICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImRyb3BOdWxsUGxhY2Vob2xkZXJzIik7CisgIHZhbGlkX2tleXMtPmluc2Vy
dCgidXNlU3BlY2lhbEZsb2F0cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInByZWNpc2lvbiIp
OworICB2YWxpZF9rZXlzLT5pbnNlcnQoInByZWNpc2lvblR5cGUiKTsKK30KK2Jvb2wgU3RyZWFt
V3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0IHsKKyAg
SnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKKyAgaWYgKCFpbnZhbGlkKQorICAgIGludmFsaWQgPSAm
bXlfaW52YWxpZDsgLy8gc28gd2UgZG8gbm90IG5lZWQgdG8gdGVzdCBmb3IgTlVMTAorICBKc29u
OjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7CisgIHN0ZDo6c2V0PFN0cmluZz4gdmFsaWRfa2V5czsK
KyAgZ2V0VmFsaWRXcml0ZXJLZXlzKCZ2YWxpZF9rZXlzKTsKKyAgVmFsdWU6Ok1lbWJlcnMga2V5
cyA9IHNldHRpbmdzXy5nZXRNZW1iZXJOYW1lcygpOworICBzaXplX3QgbiA9IGtleXMuc2l6ZSgp
OworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkgeworICAgIFN0cmluZyBjb25zdCYg
a2V5ID0ga2V5c1tpXTsKKyAgICBpZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5
cy5lbmQoKSkgeworICAgICAgaW52W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuIGludi5lbXB0eSgpOworfQorVmFsdWUmIFN0cmVhbVdyaXRlckJ1aWxkZXI6Om9w
ZXJhdG9yW10oY29uc3QgU3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHNldHRpbmdzX1trZXldOwor
fQorLy8gc3RhdGljCit2b2lkIFN0cmVhbVdyaXRlckJ1aWxkZXI6OnNldERlZmF1bHRzKEpzb246
OlZhbHVlKiBzZXR0aW5ncykgeworICAvLyEgW1N0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0c10K
KyAgKCpzZXR0aW5ncylbImNvbW1lbnRTdHlsZSJdID0gIkFsbCI7CisgICgqc2V0dGluZ3MpWyJp
bmRlbnRhdGlvbiJdID0gIlx0IjsKKyAgKCpzZXR0aW5ncylbImVuYWJsZVlBTUxDb21wYXRpYmls
aXR5Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImRyb3BOdWxsUGxhY2Vob2xkZXJzIl0gPSBm
YWxzZTsKKyAgKCpzZXR0aW5ncylbInVzZVNwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOworICAoKnNl
dHRpbmdzKVsicHJlY2lzaW9uIl0gPSAxNzsKKyAgKCpzZXR0aW5ncylbInByZWNpc2lvblR5cGUi
XSA9ICJzaWduaWZpY2FudCI7CisgIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRzXQor
fQogCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoIHN0ZDo6b3N0cmVhbSAmc291dCwgY29uc3Qg
VmFsdWUgJnJvb3QgKQotewotICAgSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyIHdyaXRlcjsKLSAg
IHdyaXRlci53cml0ZShzb3V0LCByb290KTsKLSAgIHJldHVybiBzb3V0OworU3RyaW5nIHdyaXRl
U3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3Qm
IHJvb3QpIHsKKyAgT1N0cmluZ1N0cmVhbSBzb3V0OworICBTdHJlYW1Xcml0ZXJQdHIgY29uc3Qg
d3JpdGVyKGZhY3RvcnkubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHJvb3Qs
ICZzb3V0KTsKKyAgcmV0dXJuIHNvdXQuc3RyKCk7CiB9CiAKK09TdHJlYW0mIG9wZXJhdG9yPDwo
T1N0cmVhbSYgc291dCwgVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgU3RyZWFtV3JpdGVyQnVpbGRl
ciBidWlsZGVyOworICBTdHJlYW1Xcml0ZXJQdHIgY29uc3Qgd3JpdGVyKGJ1aWxkZXIubmV3U3Ry
ZWFtV3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHJvb3QsICZzb3V0KTsKKyAgcmV0dXJuIHNv
dXQ7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9q
c29uL3Njb25zY3JpcHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi9zY29uc2NyaXB0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ZTdjNmM4YTA3NmM0ODgwNTA1MDVkNTdhNjM0YmExYzkyZTBl
MmNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
c3JjL2xpYl9qc29uL3Njb25zY3JpcHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUlt
cG9ydCggJ2VudiBidWlsZExpYnJhcnknICkKLQotYnVpbGRMaWJyYXJ5KCBlbnYsIFNwbGl0KCAi
IiIKLSAgICBqc29uX3JlYWRlci5jcHAgCi0gICAganNvbl92YWx1ZS5jcHAgCi0gICAganNvbl93
cml0ZXIuY3BwCi0gICAgICIiIiApLAotICAgICdqc29uJyApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Ny
Yy9saWJfanNvbi92ZXJzaW9uLmguaW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy9saWJfanNvbi92ZXJzaW9uLmguaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGNmNDM5Y2NjOGIzZmYxNGNiNGNhNjllMGNiODEzNjY1MzM3MTNiYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL2xpYl9qc29uL3ZlcnNpb24uaC5pbgpAQCAtMCwwICsx
LDIyIEBACisvLyBETyBOT1QgRURJVC4gVGhpcyBmaWxlIChhbmQgInZlcnNpb24iKSBpcyBhIHRl
bXBsYXRlIHVzZWQgYnkgdGhlIGJ1aWxkIHN5c3RlbQorLy8gKGVpdGhlciBDTWFrZSBvciBNZXNv
bikgdG8gZ2VuZXJhdGUgYSAidmVyc2lvbi5oIiBoZWFkZXIgZmlsZS4KKyNpZm5kZWYgSlNPTl9W
RVJTSU9OX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKworI2Rl
ZmluZSBKU09OQ1BQX1ZFUlNJT05fU1RSSU5HICJASlNPTkNQUF9WRVJTSU9OQCIKKyNkZWZpbmUg
SlNPTkNQUF9WRVJTSU9OX01BSk9SIEBKU09OQ1BQX1ZFUlNJT05fTUFKT1JACisjZGVmaW5lIEpT
T05DUFBfVkVSU0lPTl9NSU5PUiBASlNPTkNQUF9WRVJTSU9OX01JTk9SQAorI2RlZmluZSBKU09O
Q1BQX1ZFUlNJT05fUEFUQ0ggQEpTT05DUFBfVkVSU0lPTl9QQVRDSEAKKyNkZWZpbmUgSlNPTkNQ
UF9WRVJTSU9OX1FVQUxJRklFUgorI2RlZmluZSBKU09OQ1BQX1ZFUlNJT05fSEVYQSAoKEpTT05D
UFBfVkVSU0lPTl9NQUpPUiA8PCAyNCkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
KEpTT05DUFBfVkVSU0lPTl9NSU5PUiA8PCAxNikgXAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgKEpTT05DUFBfVkVSU0lPTl9QQVRDSCA8PCA4KSkKKworI2lmZGVmIEpTT05DUFBfVVNJ
TkdfU0VDVVJFX01FTU9SWQorI3VuZGVmIEpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWQorI2Vu
ZGlmCisjZGVmaW5lIEpTT05DUFBfVVNJTkdfU0VDVVJFX01FTU9SWSBASlNPTkNQUF9VU0VfU0VD
VVJFX01FTU9SWUAKKy8vIElmIG5vbi16ZXJvLCB0aGUgbGlicmFyeSB6ZXJvZXMgYW55IG1lbW9y
eSB0aGF0IGl0IGhhcyBhbGxvY2F0ZWQgYmVmb3JlCisvLyBpdCBmcmVlcyBpdHMgbWVtb3J5Lgor
CisjZW5kaWYgLy8gSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3Jj
L3Rlc3RfbGliX2pzb24vQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL0NN
YWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYjE4MTM2MWIyYmYyY2Y3Y2M5NzYyZmE2YjJiNDgx
NmE4OWJkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL0NNYWtl
TGlzdHMudHh0CkBAIC0wLDAgKzEsNDIgQEAKKyMgdmltOiBldCB0cz00IHN0cz00IHN3PTQgdHc9
MAorCithZGRfZXhlY3V0YWJsZSgganNvbmNwcF90ZXN0CisgICAgICAgICAgICAgICAganNvbnRl
c3QuY3BwCisgICAgICAgICAgICAgICAganNvbnRlc3QuaAorICAgICAgICAgICAgICAgIGZ1enou
Y3BwCisgICAgICAgICAgICAgICAgZnV6ei5oCisgICAgICAgICAgICAgICAgbWFpbi5jcHAKKyAg
ICAgICAgICAgICAgICApCisKKworaWYoQlVJTERfU0hBUkVEX0xJQlMpCisgICAgYWRkX2NvbXBp
bGVfZGVmaW5pdGlvbnMoIEpTT05fRExMICkKK2VuZGlmKCkKK3RhcmdldF9saW5rX2xpYnJhcmll
cyhqc29uY3BwX3Rlc3QganNvbmNwcF9saWIpCisKKyMgYW5vdGhlciB3YXkgdG8gc29sdmUgaXNz
dWUgIzkwCisjc2V0X3RhcmdldF9wcm9wZXJ0aWVzKGpzb25jcHBfdGVzdCBQUk9QRVJUSUVTIENP
TVBJTEVfRkxBR1MgLWZmbG9hdC1zdG9yZSkKKworIyBSdW4gdW5pdCB0ZXN0cyBpbiBwb3N0LWJ1
aWxkCisjIChkZWZhdWx0IGNtYWtlIHdvcmtmbG93IGhpZGVzIGF3YXkgdGhlIHRlc3QgcmVzdWx0
IGludG8gYSBmaWxlLCByZXN1bHRpbmcgaW4gcG9vciBkZXYgd29ya2Zsb3c/IT8pCitpZihKU09O
Q1BQX1dJVEhfUE9TVF9CVUlMRF9VTklUVEVTVCkKKyAgICBpZihCVUlMRF9TSEFSRURfTElCUykK
KyAgICAgICAgIyBGaXJzdCwgY29weSB0aGUgc2hhcmVkIGxpYiwgZm9yIE1pY3Jvc29mdC4KKyAg
ICAgICAgIyBUaGVuLCBydW4gdGhlIHRlc3QgZXhlY3V0YWJsZS4KKyAgICAgICAgYWRkX2N1c3Rv
bV9jb21tYW5kKCBUQVJHRVQganNvbmNwcF90ZXN0CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUE9TVF9CVUlMRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgJHtDTUFL
RV9DT01NQU5EfSAtRSBjb3B5X2lmX2RpZmZlcmVudCAkPFRBUkdFVF9GSUxFOmpzb25jcHBfbGli
PiAkPFRBUkdFVF9GSUxFX0RJUjpqc29uY3BwX3Rlc3Q+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ09NTUFORCAke0NNQUtFX0NST1NTQ09NUElMSU5HX0VNVUxBVE9SfSAkPFRBUkdFVF9G
SUxFOmpzb25jcHBfdGVzdD4pCisgICAgZWxzZShCVUlMRF9TSEFSRURfTElCUykKKyAgICAgICAg
IyBKdXN0IHJ1biB0aGUgdGVzdCBleGVjdXRhYmxlLgorICAgICAgICBhZGRfY3VzdG9tX2NvbW1h
bmQoIFRBUkdFVCBqc29uY3BwX3Rlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT1NU
X0JVSUxECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09NTUFORCAke0NNQUtFX0NST1NT
Q09NUElMSU5HX0VNVUxBVE9SfSAkPFRBUkdFVF9GSUxFOmpzb25jcHBfdGVzdD4pCisgICAgZW5k
aWYoKQorICAgICMjIENyZWF0ZSB0ZXN0cyBmb3IgZGFzaGJvYXJkIHN1Ym1pc3Npb24sIGFsbG93
cyBlYXN5IHJldmlldyBvZiBDSSByZXN1bHRzIGh0dHBzOi8vbXkuY2Rhc2gub3JnL2luZGV4LnBo
cD9wcm9qZWN0PWpzb25jcHAKKyAgICBhZGRfdGVzdChOQU1FIGpzb25jcHBfdGVzdAorICAgICAg
IENPTU1BTkQgJHtDTUFLRV9DUk9TU0NPTVBJTElOR19FTVVMQVRPUn0gICQ8VEFSR0VUX0ZJTEU6
anNvbmNwcF90ZXN0PgorICAgICkKK2VuZGlmKCkKKworc2V0X3RhcmdldF9wcm9wZXJ0aWVzKGpz
b25jcHBfdGVzdCBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FIGpzb25jcHBfdGVzdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vZnV6ei5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9q
c29uL2Z1enouY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3OWYxOWZmZWU0ZGE0NzFhYWMxZjg3NjBkZjY5ODI0
ZGEwM2U1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2Z1enou
Y3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8vIENvcHlyaWdodCAyMDA3LTIwMTkgVGhlIEpzb25DcHAg
QXV0aG9ycworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21h
aW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisv
LyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5z
b3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaW5jbHVkZSAiZnV6ei5oIgorCisjaW5jbHVkZSA8
Y3N0ZGludD4KKyNpbmNsdWRlIDxqc29uL2NvbmZpZy5oPgorI2luY2x1ZGUgPGpzb24vanNvbi5o
PgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdHJp
bmc+CisKK25hbWVzcGFjZSBKc29uIHsKK2NsYXNzIEV4Y2VwdGlvbjsKK30KKworZXh0ZXJuICJD
IiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qg
c2l6ZSkgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBidWlsZGVyOworCisgIGlmIChzaXpl
IDwgc2l6ZW9mKHVpbnQzMl90KSkgeworICAgIHJldHVybiAwOworICB9CisKKyAgdWludDMyX3Qg
aGFzaF9zZXR0aW5ncyA9ICooY29uc3QgdWludDMyX3QqKWRhdGE7CisgIGRhdGEgKz0gc2l6ZW9m
KHVpbnQzMl90KTsKKworICBidWlsZGVyLnNldHRpbmdzX1siZmFpbElmRXh0cmEiXSA9IGhhc2hf
c2V0dGluZ3MgJiAoMSA8PCAwKTsKKyAgYnVpbGRlci5zZXR0aW5nc19bImFsbG93Q29tbWVudHNf
Il0gPSBoYXNoX3NldHRpbmdzICYgKDEgPDwgMSk7CisgIGJ1aWxkZXIuc2V0dGluZ3NfWyJzdHJp
Y3RSb290XyJdID0gaGFzaF9zZXR0aW5ncyAmICgxIDw8IDIpOworICBidWlsZGVyLnNldHRpbmdz
X1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18iXSA9IGhhc2hfc2V0dGluZ3MgJiAoMSA8
PCAzKTsKKyAgYnVpbGRlci5zZXR0aW5nc19bImFsbG93TnVtZXJpY0tleXNfIl0gPSBoYXNoX3Nl
dHRpbmdzICYgKDEgPDwgNCk7CisgIGJ1aWxkZXIuc2V0dGluZ3NfWyJhbGxvd1NpbmdsZVF1b3Rl
c18iXSA9IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCA1KTsKKyAgYnVpbGRlci5zZXR0aW5nc19bImZh
aWxJZkV4dHJhXyJdID0gaGFzaF9zZXR0aW5ncyAmICgxIDw8IDYpOworICBidWlsZGVyLnNldHRp
bmdzX1sicmVqZWN0RHVwS2V5c18iXSA9IGhhc2hfc2V0dGluZ3MgJiAoMSA8PCA3KTsKKyAgYnVp
bGRlci5zZXR0aW5nc19bImFsbG93U3BlY2lhbEZsb2F0c18iXSA9IGhhc2hfc2V0dGluZ3MgJiAo
MSA8PCA4KTsKKworICBzdGQ6OnVuaXF1ZV9wdHI8SnNvbjo6Q2hhclJlYWRlcj4gcmVhZGVyKGJ1
aWxkZXIubmV3Q2hhclJlYWRlcigpKTsKKworICBKc29uOjpWYWx1ZSByb290OworICBjb25zdCBj
aGFyKiBkYXRhX3N0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpOworICB0
cnkgeworICAgIHJlYWRlci0+cGFyc2UoZGF0YV9zdHIsIGRhdGFfc3RyICsgc2l6ZSwgJnJvb3Qs
IG51bGxwdHIpOworICB9IGNhdGNoIChKc29uOjpFeGNlcHRpb24gY29uc3QmKSB7CisgIH0KKyAg
Ly8gV2hldGhlciBpdCBzdWNjZWVkZWQgb3Igbm90IGRvZXNuJ3QgbWF0dGVyLgorICByZXR1cm4g
MDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vZnV6ei5oIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9z
cmMvdGVzdF9saWJfanNvbi9mdXp6LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgxNmQyNzU3Y2U1ODk2OTRkZTcx
YWNiYTRlYzRhYTBiNmM5NTNhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGli
X2pzb24vZnV6ei5oCkBAIC0wLDAgKzEsMTQgQEAKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgVGhl
IEpzb25DcHAgQXV0aG9ycworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1
YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2Rp
Y3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEZVWlpfSF9JTkNMVURF
RAorI2RlZmluZSBGVVpaX0hfSU5DTFVERUQKKworI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVk
ZSA8c3RkaW50Lmg+CisKK2V4dGVybiAiQyIgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29u
c3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpOworCisjZW5kaWYgLy8gaWZuZGVmIEZVWlpf
SF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9qc29udGVzdC5j
cHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0LmNwcAppbmRleCAzMjdkMzQ0YmNl
YTlmZTc2Zjk1NDZlNmUyOGEwOWRiZjljOWVmYzhlLi5jMGI1Mjk2ZDkzNzdmNjc3MmJhYWZlYTE4
YzgzYjY3ZDQ3NmQ3MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250
ZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0LmNwcApAQCAtMSw1
NzUgKzEsNDM1IEBACi0vLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgor
Ly8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIgYW5kIFRoZSBKc29uQ3Bw
IEF1dGhvcnMKIC8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCiAvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgog
Ly8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAu
c291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKIAogI2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5H
UyAxIC8vIFByZXZlbnRzIGRlcHJlY2F0aW9uIHdhcm5pbmcgd2l0aCBNU1ZDCiAjaW5jbHVkZSAi
anNvbnRlc3QuaCIKLSNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGNzdGRpbz4KICNpbmNs
dWRlIDxzdHJpbmc+CiAKICNpZiBkZWZpbmVkKF9NU0NfVkVSKQogLy8gVXNlZCB0byBpbnN0YWxs
IGEgcmVwb3J0IGhvb2sgdGhhdCBwcmV2ZW50IGRpYWxvZyBvbiBhc3NlcnRpb24gYW5kIGVycm9y
LgotIyBpbmNsdWRlIDxjcnRkYmcuaD4KKyNpbmNsdWRlIDxjcnRkYmcuaD4KICNlbmRpZiAvLyBp
ZiBkZWZpbmVkKF9NU0NfVkVSKQogCiAjaWYgZGVmaW5lZChfV0lOMzIpCiAvLyBVc2VkIHRvIHBy
ZXZlbnQgZGlhbG9nIG9uIG1lbW9yeSBmYXVsdC4KIC8vIExpbWl0cyBoZWFkZXJzIGluY2x1ZGVk
IGJ5IFdpbmRvd3MuaAotIyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgotIyBkZWZpbmUgTk9T
RVJWSUNFCi0jIGRlZmluZSBOT01DWAotIyBkZWZpbmUgTk9JTUUKLSMgZGVmaW5lIE5PU09VTkQK
LSMgZGVmaW5lIE5PQ09NTQotIyBkZWZpbmUgTk9SUEMKLSMgZGVmaW5lIE5PR0RJCi0jIGRlZmlu
ZSBOT1VTRVIKLSMgZGVmaW5lIE5PRFJJVkVSUwotIyBkZWZpbmUgTk9MT0dFUlJPUgotIyBkZWZp
bmUgTk9QUk9GSUxFUgotIyBkZWZpbmUgTk9NRU1NR1IKLSMgZGVmaW5lIE5PTEZJTEVJTwotIyBk
ZWZpbmUgTk9PUEVORklMRQotIyBkZWZpbmUgTk9SRVNPVVJDRQotIyBkZWZpbmUgTk9BVE9NCi0j
IGRlZmluZSBOT0xBTkdVQUdFCi0jIGRlZmluZSBOT0xTVFJJTkcKLSMgZGVmaW5lIE5PREJDUwot
IyBkZWZpbmUgTk9LRVlCT0FSRElORk8KLSMgZGVmaW5lIE5PR0RJQ0FQTUFTS1MKLSMgZGVmaW5l
IE5PQ09MT1IKLSMgZGVmaW5lIE5PR0RJT0JKCi0jIGRlZmluZSBOT0RSQVdURVhUCi0jIGRlZmlu
ZSBOT1RFWFRNRVRSSUMKLSMgZGVmaW5lIE5PU0NBTEFCTEVGT05UCi0jIGRlZmluZSBOT0JJVE1B
UAotIyBkZWZpbmUgTk9SQVNURVJPUFMKLSMgZGVmaW5lIE5PTUVUQUZJTEUKLSMgZGVmaW5lIE5P
U1lTTUVUUklDUwotIyBkZWZpbmUgTk9TWVNURU1QQVJBTVNJTkZPCi0jIGRlZmluZSBOT01TRwot
IyBkZWZpbmUgTk9XSU5TVFlMRVMKLSMgZGVmaW5lIE5PV0lOT0ZGU0VUUwotIyBkZWZpbmUgTk9T
SE9XV0lORE9XCi0jIGRlZmluZSBOT0RFRkVSV0lORE9XUE9TCi0jIGRlZmluZSBOT1ZJUlRVQUxL
RVlDT0RFUwotIyBkZWZpbmUgTk9LRVlTVEFURVMKLSMgZGVmaW5lIE5PV0gKLSMgZGVmaW5lIE5P
TUVOVVMKLSMgZGVmaW5lIE5PU0NST0xMCi0jIGRlZmluZSBOT0NMSVBCT0FSRAotIyBkZWZpbmUg
Tk9JQ09OUwotIyBkZWZpbmUgTk9NQgotIyBkZWZpbmUgTk9TWVNDT01NQU5EUwotIyBkZWZpbmUg
Tk9NREkKLSMgZGVmaW5lIE5PQ1RMTUdSCi0jIGRlZmluZSBOT1dJTk1FU1NBR0VTCi0jIGluY2x1
ZGUgPHdpbmRvd3MuaD4KKyNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgorI2RlZmluZSBOT1NF
UlZJQ0UKKyNkZWZpbmUgTk9NQ1gKKyNkZWZpbmUgTk9JTUUKKyNkZWZpbmUgTk9TT1VORAorI2Rl
ZmluZSBOT0NPTU0KKyNkZWZpbmUgTk9SUEMKKyNkZWZpbmUgTk9HREkKKyNkZWZpbmUgTk9VU0VS
CisjZGVmaW5lIE5PRFJJVkVSUworI2RlZmluZSBOT0xPR0VSUk9SCisjZGVmaW5lIE5PUFJPRklM
RVIKKyNkZWZpbmUgTk9NRU1NR1IKKyNkZWZpbmUgTk9MRklMRUlPCisjZGVmaW5lIE5PT1BFTkZJ
TEUKKyNkZWZpbmUgTk9SRVNPVVJDRQorI2RlZmluZSBOT0FUT00KKyNkZWZpbmUgTk9MQU5HVUFH
RQorI2RlZmluZSBOT0xTVFJJTkcKKyNkZWZpbmUgTk9EQkNTCisjZGVmaW5lIE5PS0VZQk9BUkRJ
TkZPCisjZGVmaW5lIE5PR0RJQ0FQTUFTS1MKKyNkZWZpbmUgTk9DT0xPUgorI2RlZmluZSBOT0dE
SU9CSgorI2RlZmluZSBOT0RSQVdURVhUCisjZGVmaW5lIE5PVEVYVE1FVFJJQworI2RlZmluZSBO
T1NDQUxBQkxFRk9OVAorI2RlZmluZSBOT0JJVE1BUAorI2RlZmluZSBOT1JBU1RFUk9QUworI2Rl
ZmluZSBOT01FVEFGSUxFCisjZGVmaW5lIE5PU1lTTUVUUklDUworI2RlZmluZSBOT1NZU1RFTVBB
UkFNU0lORk8KKyNkZWZpbmUgTk9NU0cKKyNkZWZpbmUgTk9XSU5TVFlMRVMKKyNkZWZpbmUgTk9X
SU5PRkZTRVRTCisjZGVmaW5lIE5PU0hPV1dJTkRPVworI2RlZmluZSBOT0RFRkVSV0lORE9XUE9T
CisjZGVmaW5lIE5PVklSVFVBTEtFWUNPREVTCisjZGVmaW5lIE5PS0VZU1RBVEVTCisjZGVmaW5l
IE5PV0gKKyNkZWZpbmUgTk9NRU5VUworI2RlZmluZSBOT1NDUk9MTAorI2RlZmluZSBOT0NMSVBC
T0FSRAorI2RlZmluZSBOT0lDT05TCisjZGVmaW5lIE5PTUIKKyNkZWZpbmUgTk9TWVNDT01NQU5E
UworI2RlZmluZSBOT01ESQorI2RlZmluZSBOT0NUTE1HUgorI2RlZmluZSBOT1dJTk1FU1NBR0VT
CisjaW5jbHVkZSA8d2luZG93cy5oPgogI2VuZGlmIC8vIGlmIGRlZmluZWQoX1dJTjMyKQogCiBu
YW1lc3BhY2UgSnNvblRlc3QgewogCi0KIC8vIGNsYXNzIFRlc3RSZXN1bHQKIC8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwogCi1UZXN0UmVzdWx0OjpUZXN0UmVzdWx0KCkKLSAgIDogcHJlZGljYXRlSWRfKCAxICkKLSAg
ICwgbGFzdFVzZWRQcmVkaWNhdGVJZF8oIDAgKQotICAgLCBtZXNzYWdlVGFyZ2V0XyggMCApCi17
Ci0gICAvLyBUaGUgcm9vdCBwcmVkaWNhdGUgaGFzIGlkIDAKLSAgIHJvb3RQcmVkaWNhdGVOb2Rl
Xy5pZF8gPSAwOwotICAgcm9vdFByZWRpY2F0ZU5vZGVfLm5leHRfID0gMDsKLSAgIHByZWRpY2F0
ZVN0YWNrVGFpbF8gPSAmcm9vdFByZWRpY2F0ZU5vZGVfOwotfQotCi0KLXZvaWQgCi1UZXN0UmVz
dWx0OjpzZXRUZXN0TmFtZSggY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUgKQotewotICAgbmFtZV8g
PSBuYW1lOwotfQotCi1UZXN0UmVzdWx0ICYKLVRlc3RSZXN1bHQ6OmFkZEZhaWx1cmUoIGNvbnN0
IGNoYXIgKmZpbGUsIHVuc2lnbmVkIGludCBsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciAqZXhwciApCi17Ci0gICAvLy8gV2Fsa3MgdGhlIFByZWRpY2F0ZUNvbnRleHQg
c3RhY2sgYWRkaW5nIHRoZW0gdG8gZmFpbHVyZXNfIGlmIG5vdCBhbHJlYWR5IGFkZGVkLgotICAg
dW5zaWduZWQgaW50IG5lc3RpbmdMZXZlbCA9IDA7Ci0gICBQcmVkaWNhdGVDb250ZXh0ICpsYXN0
Tm9kZSA9IHJvb3RQcmVkaWNhdGVOb2RlXy5uZXh0XzsKLSAgIGZvciAoIDsgbGFzdE5vZGUgIT0g
MDsgbGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF8gKQotICAgewotICAgICAgaWYgKCBsYXN0Tm9k
ZS0+aWRfID4gbGFzdFVzZWRQcmVkaWNhdGVJZF8gKSAvLyBuZXcgUHJlZGljYXRlQ29udGV4dAot
ICAgICAgewotICAgICAgICAgbGFzdFVzZWRQcmVkaWNhdGVJZF8gPSBsYXN0Tm9kZS0+aWRfOwot
ICAgICAgICAgYWRkRmFpbHVyZUluZm8oIGxhc3ROb2RlLT5maWxlXywgbGFzdE5vZGUtPmxpbmVf
LCBsYXN0Tm9kZS0+ZXhwcl8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgbmVzdGluZ0xldmVs
ICk7Ci0gICAgICAgICAvLyBMaW5rIHRoZSBQcmVkaWNhdGVDb250ZXh0IHRvIHRoZSBmYWlsdXJl
IGZvciBtZXNzYWdlIHRhcmdldCB3aGVuIAotICAgICAgICAgLy8gcG9wcGluZyB0aGUgUHJlZGlj
YXRlQ29udGV4dC4KLSAgICAgICAgIGxhc3ROb2RlLT5mYWlsdXJlXyA9ICYoIGZhaWx1cmVzXy5i
YWNrKCkgKTsKLSAgICAgIH0KLSAgICAgICsrbmVzdGluZ0xldmVsOwotICAgfQotCi0gICAvLyBB
ZGRzIHRoZSBmYWlsZWQgYXNzZXJ0aW9uCi0gICBhZGRGYWlsdXJlSW5mbyggZmlsZSwgbGluZSwg
ZXhwciwgbmVzdGluZ0xldmVsICk7Ci0gICBtZXNzYWdlVGFyZ2V0XyA9ICYoIGZhaWx1cmVzXy5i
YWNrKCkgKTsKLSAgIHJldHVybiAqdGhpczsKK1Rlc3RSZXN1bHQ6OlRlc3RSZXN1bHQoKSB7Cisg
IC8vIFRoZSByb290IHByZWRpY2F0ZSBoYXMgaWQgMAorICByb290UHJlZGljYXRlTm9kZV8uaWRf
ID0gMDsKKyAgcm9vdFByZWRpY2F0ZU5vZGVfLm5leHRfID0gbnVsbHB0cjsKKyAgcHJlZGljYXRl
U3RhY2tUYWlsXyA9ICZyb290UHJlZGljYXRlTm9kZV87CiB9CiAKLQotdm9pZCAKLVRlc3RSZXN1
bHQ6OmFkZEZhaWx1cmVJbmZvKCBjb25zdCBjaGFyICpmaWxlLCB1bnNpZ25lZCBpbnQgbGluZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpleHByLCB1bnNpZ25lZCBp
bnQgbmVzdGluZ0xldmVsICkKLXsKLSAgIEZhaWx1cmUgZmFpbHVyZTsKLSAgIGZhaWx1cmUuZmls
ZV8gPSBmaWxlOwotICAgZmFpbHVyZS5saW5lXyA9IGxpbmU7Ci0gICBpZiAoIGV4cHIgKQotICAg
ewotICAgICAgZmFpbHVyZS5leHByXyA9IGV4cHI7Ci0gICB9Ci0gICBmYWlsdXJlLm5lc3RpbmdM
ZXZlbF8gPSBuZXN0aW5nTGV2ZWw7Ci0gICBmYWlsdXJlc18ucHVzaF9iYWNrKCBmYWlsdXJlICk7
Ci19Ci0KLQotVGVzdFJlc3VsdCAmCi1UZXN0UmVzdWx0Ojpwb3BQcmVkaWNhdGVDb250ZXh0KCkK
LXsKLSAgIFByZWRpY2F0ZUNvbnRleHQgKmxhc3ROb2RlID0gJnJvb3RQcmVkaWNhdGVOb2RlXzsK
LSAgIHdoaWxlICggbGFzdE5vZGUtPm5leHRfICE9IDAgICYmICBsYXN0Tm9kZS0+bmV4dF8tPm5l
eHRfICE9IDAgKQotICAgewotICAgICAgbGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF87Ci0gICB9
Ci0gICAvLyBTZXQgbWVzc2FnZSB0YXJnZXQgdG8gcG9wcGVkIGZhaWx1cmUKLSAgIFByZWRpY2F0
ZUNvbnRleHQgKnRhaWwgPSBsYXN0Tm9kZS0+bmV4dF87Ci0gICBpZiAoIHRhaWwgIT0gMCAgJiYg
IHRhaWwtPmZhaWx1cmVfICE9IDAgKQotICAgewotICAgICAgbWVzc2FnZVRhcmdldF8gPSB0YWls
LT5mYWlsdXJlXzsKLSAgIH0KLSAgIC8vIFJlbW92ZSB0YWlsIGZyb20gbGlzdAotICAgcHJlZGlj
YXRlU3RhY2tUYWlsXyA9IGxhc3ROb2RlOwotICAgbGFzdE5vZGUtPm5leHRfID0gMDsKLSAgIHJl
dHVybiAqdGhpczsKK3ZvaWQgVGVzdFJlc3VsdDo6c2V0VGVzdE5hbWUoY29uc3QgSnNvbjo6U3Ry
aW5nJiBuYW1lKSB7IG5hbWVfID0gbmFtZTsgfQorCitUZXN0UmVzdWx0JgorVGVzdFJlc3VsdDo6
YWRkRmFpbHVyZShjb25zdCBjaGFyKiBmaWxlLCB1bnNpZ25lZCBpbnQgbGluZSwgY29uc3QgY2hh
ciogZXhwcikgeworICAvLy8gV2Fsa3MgdGhlIFByZWRpY2F0ZUNvbnRleHQgc3RhY2sgYWRkaW5n
IHRoZW0gdG8gZmFpbHVyZXNfIGlmIG5vdCBhbHJlYWR5CisgIC8vLyBhZGRlZC4KKyAgdW5zaWdu
ZWQgaW50IG5lc3RpbmdMZXZlbCA9IDA7CisgIFByZWRpY2F0ZUNvbnRleHQqIGxhc3ROb2RlID0g
cm9vdFByZWRpY2F0ZU5vZGVfLm5leHRfOworICBmb3IgKDsgbGFzdE5vZGUgIT0gbnVsbHB0cjsg
bGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF8pIHsKKyAgICBpZiAobGFzdE5vZGUtPmlkXyA+IGxh
c3RVc2VkUHJlZGljYXRlSWRfKSAvLyBuZXcgUHJlZGljYXRlQ29udGV4dAorICAgIHsKKyAgICAg
IGxhc3RVc2VkUHJlZGljYXRlSWRfID0gbGFzdE5vZGUtPmlkXzsKKyAgICAgIGFkZEZhaWx1cmVJ
bmZvKGxhc3ROb2RlLT5maWxlXywgbGFzdE5vZGUtPmxpbmVfLCBsYXN0Tm9kZS0+ZXhwcl8sCisg
ICAgICAgICAgICAgICAgICAgICBuZXN0aW5nTGV2ZWwpOworICAgICAgLy8gTGluayB0aGUgUHJl
ZGljYXRlQ29udGV4dCB0byB0aGUgZmFpbHVyZSBmb3IgbWVzc2FnZSB0YXJnZXQgd2hlbgorICAg
ICAgLy8gcG9wcGluZyB0aGUgUHJlZGljYXRlQ29udGV4dC4KKyAgICAgIGxhc3ROb2RlLT5mYWls
dXJlXyA9ICYoZmFpbHVyZXNfLmJhY2soKSk7CisgICAgfQorICAgICsrbmVzdGluZ0xldmVsOwor
ICB9CisKKyAgLy8gQWRkcyB0aGUgZmFpbGVkIGFzc2VydGlvbgorICBhZGRGYWlsdXJlSW5mbyhm
aWxlLCBsaW5lLCBleHByLCBuZXN0aW5nTGV2ZWwpOworICBtZXNzYWdlVGFyZ2V0XyA9ICYoZmFp
bHVyZXNfLmJhY2soKSk7CisgIHJldHVybiAqdGhpczsKIH0KIAotCi1ib29sIAotVGVzdFJlc3Vs
dDo6ZmFpbGVkKCkgY29uc3QKLXsKLSAgIHJldHVybiAhZmFpbHVyZXNfLmVtcHR5KCk7Cit2b2lk
IFRlc3RSZXN1bHQ6OmFkZEZhaWx1cmVJbmZvKGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHByLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgbmVzdGluZ0xldmVsKSB7CisgIEZhaWx1cmUgZmFpbHVy
ZTsKKyAgZmFpbHVyZS5maWxlXyA9IGZpbGU7CisgIGZhaWx1cmUubGluZV8gPSBsaW5lOworICBp
ZiAoZXhwcikgeworICAgIGZhaWx1cmUuZXhwcl8gPSBleHByOworICB9CisgIGZhaWx1cmUubmVz
dGluZ0xldmVsXyA9IG5lc3RpbmdMZXZlbDsKKyAgZmFpbHVyZXNfLnB1c2hfYmFjayhmYWlsdXJl
KTsKIH0KIAotCi11bnNpZ25lZCBpbnQgCi1UZXN0UmVzdWx0OjpnZXRBc3NlcnRpb25OZXN0aW5n
TGV2ZWwoKSBjb25zdAotewotICAgdW5zaWduZWQgaW50IGxldmVsID0gMDsKLSAgIGNvbnN0IFBy
ZWRpY2F0ZUNvbnRleHQgKmxhc3ROb2RlID0gJnJvb3RQcmVkaWNhdGVOb2RlXzsKLSAgIHdoaWxl
ICggbGFzdE5vZGUtPm5leHRfICE9IDAgKQotICAgewotICAgICAgbGFzdE5vZGUgPSBsYXN0Tm9k
ZS0+bmV4dF87Ci0gICAgICArK2xldmVsOwotICAgfQotICAgcmV0dXJuIGxldmVsOworVGVzdFJl
c3VsdCYgVGVzdFJlc3VsdDo6cG9wUHJlZGljYXRlQ29udGV4dCgpIHsKKyAgUHJlZGljYXRlQ29u
dGV4dCogbGFzdE5vZGUgPSAmcm9vdFByZWRpY2F0ZU5vZGVfOworICB3aGlsZSAobGFzdE5vZGUt
Pm5leHRfICE9IG51bGxwdHIgJiYgbGFzdE5vZGUtPm5leHRfLT5uZXh0XyAhPSBudWxscHRyKSB7
CisgICAgbGFzdE5vZGUgPSBsYXN0Tm9kZS0+bmV4dF87CisgIH0KKyAgLy8gU2V0IG1lc3NhZ2Ug
dGFyZ2V0IHRvIHBvcHBlZCBmYWlsdXJlCisgIFByZWRpY2F0ZUNvbnRleHQqIHRhaWwgPSBsYXN0
Tm9kZS0+bmV4dF87CisgIGlmICh0YWlsICE9IG51bGxwdHIgJiYgdGFpbC0+ZmFpbHVyZV8gIT0g
bnVsbHB0cikgeworICAgIG1lc3NhZ2VUYXJnZXRfID0gdGFpbC0+ZmFpbHVyZV87CisgIH0KKyAg
Ly8gUmVtb3ZlIHRhaWwgZnJvbSBsaXN0CisgIHByZWRpY2F0ZVN0YWNrVGFpbF8gPSBsYXN0Tm9k
ZTsKKyAgbGFzdE5vZGUtPm5leHRfID0gbnVsbHB0cjsKKyAgcmV0dXJuICp0aGlzOwogfQogCi0K
LXZvaWQgCi1UZXN0UmVzdWx0OjpwcmludEZhaWx1cmUoIGJvb2wgcHJpbnRUZXN0TmFtZSApIGNv
bnN0Ci17Ci0gICBpZiAoIGZhaWx1cmVzXy5lbXB0eSgpICkKLSAgIHsKLSAgICAgIHJldHVybjsK
LSAgIH0KLQotICAgaWYgKCBwcmludFRlc3ROYW1lICkKLSAgIHsKLSAgICAgIHByaW50ZiggIiog
RGV0YWlsIG9mICVzIHRlc3QgZmFpbHVyZTpcbiIsIG5hbWVfLmNfc3RyKCkgKTsKLSAgIH0KLQot
ICAgLy8gUHJpbnQgaW4gcmV2ZXJzZSB0byBkaXNwbGF5IHRoZSBjYWxsc3RhY2sgaW4gdGhlIHJp
Z2h0IG9yZGVyCi0gICBGYWlsdXJlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSBmYWlsdXJlc18u
ZW5kKCk7Ci0gICBmb3IgKCBGYWlsdXJlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBmYWlsdXJlc18u
YmVnaW4oKTsgaXQgIT0gaXRFbmQ7ICsraXQgKQotICAgewotICAgICAgY29uc3QgRmFpbHVyZSAm
ZmFpbHVyZSA9ICppdDsKLSAgICAgIHN0ZDo6c3RyaW5nIGluZGVudCggZmFpbHVyZS5uZXN0aW5n
TGV2ZWxfICogMiwgJyAnICk7Ci0gICAgICBpZiAoIGZhaWx1cmUuZmlsZV8gKQotICAgICAgewot
ICAgICAgICAgcHJpbnRmKCAiJXMlcyglZCk6ICIsIGluZGVudC5jX3N0cigpLCBmYWlsdXJlLmZp
bGVfLCBmYWlsdXJlLmxpbmVfICk7Ci0gICAgICB9Ci0gICAgICBpZiAoICFmYWlsdXJlLmV4cHJf
LmVtcHR5KCkgKQotICAgICAgewotICAgICAgICAgcHJpbnRmKCAiJXNcbiIsIGZhaWx1cmUuZXhw
cl8uY19zdHIoKSApOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoIGZhaWx1cmUuZmlsZV8gKQot
ICAgICAgewotICAgICAgICAgcHJpbnRmKCAiXG4iICk7Ci0gICAgICB9Ci0gICAgICBpZiAoICFm
YWlsdXJlLm1lc3NhZ2VfLmVtcHR5KCkgKQotICAgICAgewotICAgICAgICAgc3RkOjpzdHJpbmcg
cmVpbmRlbnRlZCA9IGluZGVudFRleHQoIGZhaWx1cmUubWVzc2FnZV8sIGluZGVudCArICIgICIg
KTsKLSAgICAgICAgIHByaW50ZiggIiVzXG4iLCByZWluZGVudGVkLmNfc3RyKCkgKTsKLSAgICAg
IH0KLSAgIH0KK2Jvb2wgVGVzdFJlc3VsdDo6ZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gIWZhaWx1
cmVzXy5lbXB0eSgpOyB9CisKK3ZvaWQgVGVzdFJlc3VsdDo6cHJpbnRGYWlsdXJlKGJvb2wgcHJp
bnRUZXN0TmFtZSkgY29uc3QgeworICBpZiAoZmFpbHVyZXNfLmVtcHR5KCkpIHsKKyAgICByZXR1
cm47CisgIH0KKworICBpZiAocHJpbnRUZXN0TmFtZSkgeworICAgIHByaW50ZigiKiBEZXRhaWwg
b2YgJXMgdGVzdCBmYWlsdXJlOlxuIiwgbmFtZV8uY19zdHIoKSk7CisgIH0KKworICAvLyBQcmlu
dCBpbiByZXZlcnNlIHRvIGRpc3BsYXkgdGhlIGNhbGxzdGFjayBpbiB0aGUgcmlnaHQgb3JkZXIK
KyAgZm9yIChjb25zdCBhdXRvJiBmYWlsdXJlIDogZmFpbHVyZXNfKSB7CisgICAgSnNvbjo6U3Ry
aW5nIGluZGVudChmYWlsdXJlLm5lc3RpbmdMZXZlbF8gKiAyLCAnICcpOworICAgIGlmIChmYWls
dXJlLmZpbGVfKSB7CisgICAgICBwcmludGYoIiVzJXMoJXUpOiAiLCBpbmRlbnQuY19zdHIoKSwg
ZmFpbHVyZS5maWxlXywgZmFpbHVyZS5saW5lXyk7CisgICAgfQorICAgIGlmICghZmFpbHVyZS5l
eHByXy5lbXB0eSgpKSB7CisgICAgICBwcmludGYoIiVzXG4iLCBmYWlsdXJlLmV4cHJfLmNfc3Ry
KCkpOworICAgIH0gZWxzZSBpZiAoZmFpbHVyZS5maWxlXykgeworICAgICAgcHJpbnRmKCJcbiIp
OworICAgIH0KKyAgICBpZiAoIWZhaWx1cmUubWVzc2FnZV8uZW1wdHkoKSkgeworICAgICAgSnNv
bjo6U3RyaW5nIHJlaW5kZW50ZWQgPSBpbmRlbnRUZXh0KGZhaWx1cmUubWVzc2FnZV8sIGluZGVu
dCArICIgICIpOworICAgICAgcHJpbnRmKCIlc1xuIiwgcmVpbmRlbnRlZC5jX3N0cigpKTsKKyAg
ICB9CisgIH0KIH0KIAotCi1zdGQ6OnN0cmluZyAKLVRlc3RSZXN1bHQ6OmluZGVudFRleHQoIGNv
bnN0IHN0ZDo6c3RyaW5nICZ0ZXh0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6c3RyaW5nICZpbmRlbnQgKQotewotICAgc3RkOjpzdHJpbmcgcmVpbmRlbnRlZDsKLSAgIHN0
ZDo6c3RyaW5nOjpzaXplX3R5cGUgbGFzdEluZGV4ID0gMDsKLSAgIHdoaWxlICggbGFzdEluZGV4
IDwgdGV4dC5zaXplKCkgKQotICAgewotICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBuZXh0
SW5kZXggPSB0ZXh0LmZpbmQoICdcbicsIGxhc3RJbmRleCApOwotICAgICAgaWYgKCBuZXh0SW5k
ZXggPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQotICAgICAgewotICAgICAgICAgbmV4dEluZGV4ID0g
dGV4dC5zaXplKCkgLSAxOwotICAgICAgfQotICAgICAgcmVpbmRlbnRlZCArPSBpbmRlbnQ7Ci0g
ICAgICByZWluZGVudGVkICs9IHRleHQuc3Vic3RyKCBsYXN0SW5kZXgsIG5leHRJbmRleCAtIGxh
c3RJbmRleCArIDEgKTsKLSAgICAgIGxhc3RJbmRleCA9IG5leHRJbmRleCArIDE7Ci0gICB9Ci0g
ICByZXR1cm4gcmVpbmRlbnRlZDsKK0pzb246OlN0cmluZyBUZXN0UmVzdWx0OjppbmRlbnRUZXh0
KGNvbnN0IEpzb246OlN0cmluZyYgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEpzb246OlN0cmluZyYgaW5kZW50KSB7CisgIEpzb246OlN0cmluZyByZWlu
ZGVudGVkOworICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBsYXN0SW5kZXggPSAwOworICB3aGls
ZSAobGFzdEluZGV4IDwgdGV4dC5zaXplKCkpIHsKKyAgICBKc29uOjpTdHJpbmc6OnNpemVfdHlw
ZSBuZXh0SW5kZXggPSB0ZXh0LmZpbmQoJ1xuJywgbGFzdEluZGV4KTsKKyAgICBpZiAobmV4dElu
ZGV4ID09IEpzb246OlN0cmluZzo6bnBvcykgeworICAgICAgbmV4dEluZGV4ID0gdGV4dC5zaXpl
KCkgLSAxOworICAgIH0KKyAgICByZWluZGVudGVkICs9IGluZGVudDsKKyAgICByZWluZGVudGVk
ICs9IHRleHQuc3Vic3RyKGxhc3RJbmRleCwgbmV4dEluZGV4IC0gbGFzdEluZGV4ICsgMSk7Cisg
ICAgbGFzdEluZGV4ID0gbmV4dEluZGV4ICsgMTsKKyAgfQorICByZXR1cm4gcmVpbmRlbnRlZDsK
IH0KIAotCi1UZXN0UmVzdWx0ICYKLVRlc3RSZXN1bHQ6OmFkZFRvTGFzdEZhaWx1cmUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZtZXNzYWdlICkKLXsKLSAgIGlmICggbWVzc2FnZVRhcmdldF8gIT0gMCAp
Ci0gICB7Ci0gICAgICBtZXNzYWdlVGFyZ2V0Xy0+bWVzc2FnZV8gKz0gbWVzc2FnZTsKLSAgIH0K
LSAgIHJldHVybiAqdGhpczsKK1Rlc3RSZXN1bHQmIFRlc3RSZXN1bHQ6OmFkZFRvTGFzdEZhaWx1
cmUoY29uc3QgSnNvbjo6U3RyaW5nJiBtZXNzYWdlKSB7CisgIGlmIChtZXNzYWdlVGFyZ2V0XyAh
PSBudWxscHRyKSB7CisgICAgbWVzc2FnZVRhcmdldF8tPm1lc3NhZ2VfICs9IG1lc3NhZ2U7Cisg
IH0KKyAgcmV0dXJuICp0aGlzOwogfQogCi1UZXN0UmVzdWx0ICYKLVRlc3RSZXN1bHQ6Om9wZXJh
dG9yIDw8ICggSnNvbjo6SW50NjQgdmFsdWUgKSB7Ci0gICByZXR1cm4gYWRkVG9MYXN0RmFpbHVy
ZSggSnNvbjo6dmFsdWVUb1N0cmluZyh2YWx1ZSkgKTsKK1Rlc3RSZXN1bHQmIFRlc3RSZXN1bHQ6
Om9wZXJhdG9yPDwoSnNvbjo6SW50NjQgdmFsdWUpIHsKKyAgcmV0dXJuIGFkZFRvTGFzdEZhaWx1
cmUoSnNvbjo6dmFsdWVUb1N0cmluZyh2YWx1ZSkpOwogfQogCi0KLVRlc3RSZXN1bHQgJgotVGVz
dFJlc3VsdDo6b3BlcmF0b3IgPDwgKCBKc29uOjpVSW50NjQgdmFsdWUgKSB7Ci0gICByZXR1cm4g
YWRkVG9MYXN0RmFpbHVyZSggSnNvbjo6dmFsdWVUb1N0cmluZyh2YWx1ZSkgKTsKK1Rlc3RSZXN1
bHQmIFRlc3RSZXN1bHQ6Om9wZXJhdG9yPDwoSnNvbjo6VUludDY0IHZhbHVlKSB7CisgIHJldHVy
biBhZGRUb0xhc3RGYWlsdXJlKEpzb246OnZhbHVlVG9TdHJpbmcodmFsdWUpKTsKIH0KIAotCi1U
ZXN0UmVzdWx0ICYKLVRlc3RSZXN1bHQ6Om9wZXJhdG9yIDw8ICggYm9vbCB2YWx1ZSApIHsKLSAg
IHJldHVybiBhZGRUb0xhc3RGYWlsdXJlKHZhbHVlID8gInRydWUiIDogImZhbHNlIik7CitUZXN0
UmVzdWx0JiBUZXN0UmVzdWx0OjpvcGVyYXRvcjw8KGJvb2wgdmFsdWUpIHsKKyAgcmV0dXJuIGFk
ZFRvTGFzdEZhaWx1cmUodmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIH0KIAotCiAvLyBjbGFz
cyBUZXN0Q2FzZQogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLVRlc3RDYXNlOjpUZXN0Q2FzZSgpCi0gICA6IHJl
c3VsdF8oIDAgKQotewotfQotCi0KLVRlc3RDYXNlOjp+VGVzdENhc2UoKQotewotfQorVGVzdENh
c2U6OlRlc3RDYXNlKCkgPSBkZWZhdWx0OwogCitUZXN0Q2FzZTo6flRlc3RDYXNlKCkgPSBkZWZh
dWx0OwogCi12b2lkIAotVGVzdENhc2U6OnJ1biggVGVzdFJlc3VsdCAmcmVzdWx0ICkKLXsKLSAg
IHJlc3VsdF8gPSAmcmVzdWx0OwotICAgcnVuVGVzdENhc2UoKTsKK3ZvaWQgVGVzdENhc2U6OnJ1
bihUZXN0UmVzdWx0JiByZXN1bHQpIHsKKyAgcmVzdWx0XyA9ICZyZXN1bHQ7CisgIHJ1blRlc3RD
YXNlKCk7CiB9CiAKLQotCiAvLyBjbGFzcyBSdW5uZXIKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi1SdW5uZXI6
OlJ1bm5lcigpCi17Ci19CitSdW5uZXI6OlJ1bm5lcigpID0gZGVmYXVsdDsKIAotCi1SdW5uZXIg
JgotUnVubmVyOjphZGQoIFRlc3RDYXNlRmFjdG9yeSBmYWN0b3J5ICkKLXsKLSAgIHRlc3RzXy5w
dXNoX2JhY2soIGZhY3RvcnkgKTsKLSAgIHJldHVybiAqdGhpczsKLX0KLQotCi11bnNpZ25lZCBp
bnQgCi1SdW5uZXI6OnRlc3RDb3VudCgpIGNvbnN0Ci17Ci0gICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQgaW50PiggdGVzdHNfLnNpemUoKSApOworUnVubmVyJiBSdW5uZXI6OmFkZChUZXN0
Q2FzZUZhY3RvcnkgZmFjdG9yeSkgeworICB0ZXN0c18ucHVzaF9iYWNrKGZhY3RvcnkpOworICBy
ZXR1cm4gKnRoaXM7CiB9CiAKK3NpemVfdCBSdW5uZXI6OnRlc3RDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIHRlc3RzXy5zaXplKCk7IH0KIAotc3RkOjpzdHJpbmcgCi1SdW5uZXI6OnRlc3ROYW1lQXQo
IHVuc2lnbmVkIGludCBpbmRleCApIGNvbnN0Ci17Ci0gICBUZXN0Q2FzZSAqdGVzdCA9IHRlc3Rz
X1tpbmRleF0oKTsKLSAgIHN0ZDo6c3RyaW5nIG5hbWUgPSB0ZXN0LT50ZXN0TmFtZSgpOwotICAg
ZGVsZXRlIHRlc3Q7Ci0gICByZXR1cm4gbmFtZTsKK0pzb246OlN0cmluZyBSdW5uZXI6OnRlc3RO
YW1lQXQoc2l6ZV90IGluZGV4KSBjb25zdCB7CisgIFRlc3RDYXNlKiB0ZXN0ID0gdGVzdHNfW2lu
ZGV4XSgpOworICBKc29uOjpTdHJpbmcgbmFtZSA9IHRlc3QtPnRlc3ROYW1lKCk7CisgIGRlbGV0
ZSB0ZXN0OworICByZXR1cm4gbmFtZTsKIH0KIAotCi12b2lkIAotUnVubmVyOjpydW5UZXN0QXQo
IHVuc2lnbmVkIGludCBpbmRleCwgVGVzdFJlc3VsdCAmcmVzdWx0ICkgY29uc3QKLXsKLSAgIFRl
c3RDYXNlICp0ZXN0ID0gdGVzdHNfW2luZGV4XSgpOwotICAgcmVzdWx0LnNldFRlc3ROYW1lKCB0
ZXN0LT50ZXN0TmFtZSgpICk7Ci0gICBwcmludGYoICJUZXN0aW5nICVzOiAiLCB0ZXN0LT50ZXN0
TmFtZSgpICk7Ci0gICBmZmx1c2goIHN0ZG91dCApOwordm9pZCBSdW5uZXI6OnJ1blRlc3RBdChz
aXplX3QgaW5kZXgsIFRlc3RSZXN1bHQmIHJlc3VsdCkgY29uc3QgeworICBUZXN0Q2FzZSogdGVz
dCA9IHRlc3RzX1tpbmRleF0oKTsKKyAgcmVzdWx0LnNldFRlc3ROYW1lKHRlc3QtPnRlc3ROYW1l
KCkpOworICBwcmludGYoIlRlc3RpbmcgJXM6ICIsIHRlc3QtPnRlc3ROYW1lKCkpOworICBmZmx1
c2goc3Rkb3V0KTsKICNpZiBKU09OX1VTRV9FWENFUFRJT04KLSAgIHRyeSAKLSAgIHsKKyAgdHJ5
IHsKICNlbmRpZiAvLyBpZiBKU09OX1VTRV9FWENFUFRJT04KLSAgICAgIHRlc3QtPnJ1biggcmVz
dWx0ICk7CisgICAgdGVzdC0+cnVuKHJlc3VsdCk7CiAjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCi0g
ICB9IAotICAgY2F0Y2ggKCBjb25zdCBzdGQ6OmV4Y2VwdGlvbiAmZSApIAotICAgewotICAgICAg
cmVzdWx0LmFkZEZhaWx1cmUoIF9fRklMRV9fLCBfX0xJTkVfXywgCi0gICAgICAgICAiVW5leHBl
Y3RlZCBleGNlcHRpb24gY2F1Z2h0OiIgKSA8PCBlLndoYXQoKTsKLSAgIH0KKyAgfSBjYXRjaCAo
Y29uc3Qgc3RkOjpleGNlcHRpb24mIGUpIHsKKyAgICByZXN1bHQuYWRkRmFpbHVyZShfX0ZJTEVf
XywgX19MSU5FX18sICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiBjYXVnaHQ6IikKKyAgICAgICAgPDwg
ZS53aGF0KCk7CisgIH0KICNlbmRpZiAvLyBpZiBKU09OX1VTRV9FWENFUFRJT04KLSAgIGRlbGV0
ZSB0ZXN0OwotICAgY29uc3QgY2hhciAqc3RhdHVzID0gcmVzdWx0LmZhaWxlZCgpID8gIkZBSUxF
RCIgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiT0siOwotICAg
cHJpbnRmKCAiJXNcbiIsIHN0YXR1cyApOwotICAgZmZsdXNoKCBzdGRvdXQgKTsKKyAgZGVsZXRl
IHRlc3Q7CisgIGNvbnN0IGNoYXIqIHN0YXR1cyA9IHJlc3VsdC5mYWlsZWQoKSA/ICJGQUlMRUQi
IDogIk9LIjsKKyAgcHJpbnRmKCIlc1xuIiwgc3RhdHVzKTsKKyAgZmZsdXNoKHN0ZG91dCk7CiB9
CiAKK2Jvb2wgUnVubmVyOjpydW5BbGxUZXN0KGJvb2wgcHJpbnRTdW1tYXJ5KSBjb25zdCB7Cisg
IHNpemVfdCBjb25zdCBjb3VudCA9IHRlc3RDb3VudCgpOworICBzdGQ6OmRlcXVlPFRlc3RSZXN1
bHQ+IGZhaWx1cmVzOworICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsr
aW5kZXgpIHsKKyAgICBUZXN0UmVzdWx0IHJlc3VsdDsKKyAgICBydW5UZXN0QXQoaW5kZXgsIHJl
c3VsdCk7CisgICAgaWYgKHJlc3VsdC5mYWlsZWQoKSkgeworICAgICAgZmFpbHVyZXMucHVzaF9i
YWNrKHJlc3VsdCk7CisgICAgfQorICB9CisKKyAgaWYgKGZhaWx1cmVzLmVtcHR5KCkpIHsKKyAg
ICBpZiAocHJpbnRTdW1tYXJ5KSB7CisgICAgICBwcmludGYoIkFsbCAlenUgdGVzdHMgcGFzc2Vk
XG4iLCBjb3VudCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworICB9IGVsc2UgeworICAgIGZv
ciAoYXV0byYgcmVzdWx0IDogZmFpbHVyZXMpIHsKKyAgICAgIHJlc3VsdC5wcmludEZhaWx1cmUo
Y291bnQgPiAxKTsKKyAgICB9CisKKyAgICBpZiAocHJpbnRTdW1tYXJ5KSB7CisgICAgICBzaXpl
X3QgY29uc3QgZmFpbGVkQ291bnQgPSBmYWlsdXJlcy5zaXplKCk7CisgICAgICBzaXplX3QgY29u
c3QgcGFzc2VkQ291bnQgPSBjb3VudCAtIGZhaWxlZENvdW50OworICAgICAgcHJpbnRmKCIlenUv
JXp1IHRlc3RzIHBhc3NlZCAoJXp1IGZhaWx1cmUocykpXG4iLCBwYXNzZWRDb3VudCwgY291bnQs
CisgICAgICAgICAgICAgZmFpbGVkQ291bnQpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cisg
IH0KK30KIAotYm9vbCAKLVJ1bm5lcjo6cnVuQWxsVGVzdCggYm9vbCBwcmludFN1bW1hcnkgKSBj
b25zdAotewotICAgdW5zaWduZWQgaW50IGNvdW50ID0gdGVzdENvdW50KCk7Ci0gICBzdGQ6OmRl
cXVlPFRlc3RSZXN1bHQ+IGZhaWx1cmVzOwotICAgZm9yICggdW5zaWduZWQgaW50IGluZGV4ID0g
MDsgaW5kZXggPCBjb3VudDsgKytpbmRleCApCi0gICB7Ci0gICAgICBUZXN0UmVzdWx0IHJlc3Vs
dDsKLSAgICAgIHJ1blRlc3RBdCggaW5kZXgsIHJlc3VsdCApOwotICAgICAgaWYgKCByZXN1bHQu
ZmFpbGVkKCkgKQotICAgICAgewotICAgICAgICAgZmFpbHVyZXMucHVzaF9iYWNrKCByZXN1bHQg
KTsKLSAgICAgIH0KLSAgIH0KLQotICAgaWYgKCBmYWlsdXJlcy5lbXB0eSgpICkKLSAgIHsKLSAg
ICAgIGlmICggcHJpbnRTdW1tYXJ5ICkKLSAgICAgIHsKLSAgICAgICAgIHByaW50ZiggIkFsbCAl
ZCB0ZXN0cyBwYXNzZWRcbiIsIGNvdW50ICk7Ci0gICAgICB9Citib29sIFJ1bm5lcjo6dGVzdElu
ZGV4KGNvbnN0IEpzb246OlN0cmluZyYgdGVzdE5hbWUsIHNpemVfdCYgaW5kZXhPdXQpIGNvbnN0
IHsKKyAgY29uc3Qgc2l6ZV90IGNvdW50ID0gdGVzdENvdW50KCk7CisgIGZvciAoc2l6ZV90IGlu
ZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgIGlmICh0ZXN0TmFtZUF0KGlu
ZGV4KSA9PSB0ZXN0TmFtZSkgeworICAgICAgaW5kZXhPdXQgPSBpbmRleDsKICAgICAgIHJldHVy
biB0cnVlOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgZm9yICggdW5zaWduZWQgaW50IGlu
ZGV4ID0gMDsgaW5kZXggPCBmYWlsdXJlcy5zaXplKCk7ICsraW5kZXggKQotICAgICAgewotICAg
ICAgICAgVGVzdFJlc3VsdCAmcmVzdWx0ID0gZmFpbHVyZXNbaW5kZXhdOwotICAgICAgICAgcmVz
dWx0LnByaW50RmFpbHVyZSggY291bnQgPiAxICk7Ci0gICAgICB9Ci0KLSAgICAgIGlmICggcHJp
bnRTdW1tYXJ5ICkKLSAgICAgIHsKLSAgICAgICAgIHVuc2lnbmVkIGludCBmYWlsZWRDb3VudCA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oIGZhaWx1cmVzLnNpemUoKSApOwotICAgICAgICAg
dW5zaWduZWQgaW50IHBhc3NlZENvdW50ID0gY291bnQgLSBmYWlsZWRDb3VudDsKLSAgICAgICAg
IHByaW50ZiggIiVkLyVkIHRlc3RzIHBhc3NlZCAoJWQgZmFpbHVyZShzKSlcbiIsIHBhc3NlZENv
dW50LCBjb3VudCwgZmFpbGVkQ291bnQgKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBmYWxzZTsK
LSAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuIGZhbHNlOwogfQogCi0KLWJvb2wgCi1SdW5uZXI6
OnRlc3RJbmRleCggY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3ROYW1lLCAKLSAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgJmluZGV4T3V0ICkgY29uc3QKLXsKLSAgIHVuc2lnbmVkIGludCBj
b3VudCA9IHRlc3RDb3VudCgpOwotICAgZm9yICggdW5zaWduZWQgaW50IGluZGV4ID0gMDsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCApCi0gICB7Ci0gICAgICBpZiAoIHRlc3ROYW1lQXQoaW5kZXgp
ID09IHRlc3ROYW1lICkKLSAgICAgIHsKLSAgICAgICAgIGluZGV4T3V0ID0gaW5kZXg7Ci0gICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0KLSAgIH0KLSAgIHJldHVybiBmYWxzZTsKK3ZvaWQg
UnVubmVyOjpsaXN0VGVzdHMoKSBjb25zdCB7CisgIGNvbnN0IHNpemVfdCBjb3VudCA9IHRlc3RD
b3VudCgpOworICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgp
IHsKKyAgICBwcmludGYoIiVzXG4iLCB0ZXN0TmFtZUF0KGluZGV4KS5jX3N0cigpKTsKKyAgfQog
fQogCi0KLXZvaWQgCi1SdW5uZXI6Omxpc3RUZXN0cygpIGNvbnN0Ci17Ci0gICB1bnNpZ25lZCBp
bnQgY291bnQgPSB0ZXN0Q291bnQoKTsKLSAgIGZvciAoIHVuc2lnbmVkIGludCBpbmRleCA9IDA7
IGluZGV4IDwgY291bnQ7ICsraW5kZXggKQotICAgewotICAgICAgcHJpbnRmKCAiJXNcbiIsIHRl
c3ROYW1lQXQoIGluZGV4ICkuY19zdHIoKSApOwotICAgfQotfQotCi0KLWludCAKLVJ1bm5lcjo6
cnVuQ29tbWFuZExpbmUoIGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10gKSBjb25zdAotewot
ICAgdHlwZWRlZiBzdGQ6OmRlcXVlPHN0ZDo6c3RyaW5nPiBUZXN0TmFtZXM7Ci0gICBSdW5uZXIg
c3VicnVubmVyOwotICAgZm9yICggaW50IGluZGV4ID0gMTsgaW5kZXggPCBhcmdjOyArK2luZGV4
ICkKLSAgIHsKLSAgICAgIHN0ZDo6c3RyaW5nIG9wdCA9IGFyZ3ZbaW5kZXhdOwotICAgICAgaWYg
KCBvcHQgPT0gIi0tbGlzdC10ZXN0cyIgKQotICAgICAgewotICAgICAgICAgbGlzdFRlc3RzKCk7
Ci0gICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCBvcHQgPT0gIi0t
dGVzdC1hdXRvIiApCi0gICAgICB7Ci0gICAgICAgICBwcmV2ZW50RGlhbG9nT25DcmFzaCgpOwot
ICAgICAgfQotICAgICAgZWxzZSBpZiAoIG9wdCA9PSAiLS10ZXN0IiApCi0gICAgICB7Ci0gICAg
ICAgICArK2luZGV4OwotICAgICAgICAgaWYgKCBpbmRleCA8IGFyZ2MgKQotICAgICAgICAgewot
ICAgICAgICAgICAgdW5zaWduZWQgaW50IHRlc3ROYW1lSW5kZXg7Ci0gICAgICAgICAgICBpZiAo
IHRlc3RJbmRleCggYXJndltpbmRleF0sIHRlc3ROYW1lSW5kZXggKSApCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICBzdWJydW5uZXIuYWRkKCB0ZXN0c19bdGVzdE5hbWVJbmRleF0gKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgIGZwcmludGYoIHN0ZGVyciwgIlRlc3QgJyVzJyBkb2VzIG5vdCBleGlzdCFcbiIsIGFy
Z3ZbaW5kZXhdICk7Ci0gICAgICAgICAgICAgICByZXR1cm4gMjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgIH0KLSAgICAgICAgIGVsc2UKLSAgICAgICAgIHsKLSAgICAgICAgICAgIHByaW50VXNh
Z2UoIGFyZ3ZbMF0gKTsKLSAgICAgICAgICAgIHJldHVybiAyOwotICAgICAgICAgfQoraW50IFJ1
bm5lcjo6cnVuQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkgY29uc3Qg
eworICAvLyB0eXBlZGVmIHN0ZDo6ZGVxdWU8U3RyaW5nPiBUZXN0TmFtZXM7CisgIFJ1bm5lciBz
dWJydW5uZXI7CisgIGZvciAoaW50IGluZGV4ID0gMTsgaW5kZXggPCBhcmdjOyArK2luZGV4KSB7
CisgICAgSnNvbjo6U3RyaW5nIG9wdCA9IGFyZ3ZbaW5kZXhdOworICAgIGlmIChvcHQgPT0gIi0t
bGlzdC10ZXN0cyIpIHsKKyAgICAgIGxpc3RUZXN0cygpOworICAgICAgcmV0dXJuIDA7CisgICAg
fSBlbHNlIGlmIChvcHQgPT0gIi0tdGVzdC1hdXRvIikgeworICAgICAgcHJldmVudERpYWxvZ09u
Q3Jhc2goKTsKKyAgICB9IGVsc2UgaWYgKG9wdCA9PSAiLS10ZXN0IikgeworICAgICAgKytpbmRl
eDsKKyAgICAgIGlmIChpbmRleCA8IGFyZ2MpIHsKKyAgICAgICAgc2l6ZV90IHRlc3ROYW1lSW5k
ZXg7CisgICAgICAgIGlmICh0ZXN0SW5kZXgoYXJndltpbmRleF0sIHRlc3ROYW1lSW5kZXgpKSB7
CisgICAgICAgICAgc3VicnVubmVyLmFkZCh0ZXN0c19bdGVzdE5hbWVJbmRleF0pOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVGVzdCAnJXMnIGRvZXMgbm90
IGV4aXN0IVxuIiwgYXJndltpbmRleF0pOworICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9
CisgICAgICB9IGVsc2UgeworICAgICAgICBwcmludFVzYWdlKGFyZ3ZbMF0pOworICAgICAgICBy
ZXR1cm4gMjsKICAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgIHsKLSAgICAgICAgIHByaW50VXNh
Z2UoIGFyZ3ZbMF0gKTsKLSAgICAgICAgIHJldHVybiAyOwotICAgICAgfQotICAgfQotICAgYm9v
bCBzdWNjZWVkZWQ7Ci0gICBpZiAoIHN1YnJ1bm5lci50ZXN0Q291bnQoKSA+IDAgKQotICAgewot
ICAgICAgc3VjY2VlZGVkID0gc3VicnVubmVyLnJ1bkFsbFRlc3QoIHN1YnJ1bm5lci50ZXN0Q291
bnQoKSA+IDEgKTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIHN1Y2NlZWRlZCA9IHJ1bkFs
bFRlc3QoIHRydWUgKTsKLSAgIH0KLSAgIHJldHVybiBzdWNjZWVkZWQgPyAwIAotICAgICAgICAg
ICAgICAgICAgICA6IDE7CisgICAgfSBlbHNlIHsKKyAgICAgIHByaW50VXNhZ2UoYXJndlswXSk7
CisgICAgICByZXR1cm4gMjsKKyAgICB9CisgIH0KKyAgYm9vbCBzdWNjZWVkZWQ7CisgIGlmIChz
dWJydW5uZXIudGVzdENvdW50KCkgPiAwKSB7CisgICAgc3VjY2VlZGVkID0gc3VicnVubmVyLnJ1
bkFsbFRlc3Qoc3VicnVubmVyLnRlc3RDb3VudCgpID4gMSk7CisgIH0gZWxzZSB7CisgICAgc3Vj
Y2VlZGVkID0gcnVuQWxsVGVzdCh0cnVlKTsKKyAgfQorICByZXR1cm4gc3VjY2VlZGVkID8gMCA6
IDE7CiB9CiAKLQotI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikg
JiYgZGVmaW5lZChfREVCVUcpCiAvLyBIb29rIE1TVkNSVCBhc3NlcnRpb25zIHRvIHByZXZlbnQg
ZGlhbG9nIGZyb20gYXBwZWFyaW5nCi1zdGF0aWMgaW50IAotbXN2Y3J0U2lsZW50UmVwb3J0SG9v
ayggaW50IHJlcG9ydFR5cGUsIGNoYXIgKm1lc3NhZ2UsIGludCAqcmV0dXJuVmFsdWUgKQotewot
ICAgLy8gVGhlIGRlZmF1bHQgQ1JUIGhhbmRsaW5nIG9mIGVycm9yIGFuZCBhc3NlcnRpb24gaXMg
dG8gZGlzcGxheQotICAgLy8gYW4gZXJyb3IgZGlhbG9nIHRvIHRoZSB1c2VyLgotICAgLy8gSW5z
dGVhZCwgd2hlbiBhbiBlcnJvciBvciBhbiBhc3NlcnRpb24gb2NjdXJzLCB3ZSBmb3JjZSB0aGUg
Ci0gICAvLyBhcHBsaWNhdGlvbiB0byB0ZXJtaW5hdGUgdXNpbmcgYWJvcnQoKSBhZnRlciBkaXNw
bGF5Ci0gICAvLyB0aGUgbWVzc2FnZSBvbiBzdGRlcnIuIAotICAgaWYgKCByZXBvcnRUeXBlID09
IF9DUlRfRVJST1IgIHx8ICAKLSAgICAgICAgcmVwb3J0VHlwZSA9PSBfQ1JUX0FTU0VSVCApCi0g
ICB7Ci0gICAgICAvLyBjYWxsaW5nIGFib3J0KCkgY2F1c2UgdGhlIFJlcG9ydEhvb2sgdG8gYmUg
Y2FsbGVkCi0gICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIHVzZWQgdG8gZGV0ZWN0IHRoaXMgY2Fz
ZSBhbmQgbGV0J3MgdGhlCi0gICAgICAvLyBlcnJvciBoYW5kbGVyIGZhbGxiYWNrIG9uIGl0cyBk
ZWZhdWx0IGJlaGF2aW91ciAoCi0gICAgICAvLyBkaXNwbGF5IGEgd2FybmluZyBtZXNzYWdlKQot
ICAgICAgc3RhdGljIHZvbGF0aWxlIGJvb2wgaXNBYm9ydGluZyA9IGZhbHNlOwotICAgICAgaWYg
KCBpc0Fib3J0aW5nICkgCi0gICAgICB7Ci0gICAgICAgICByZXR1cm4gVFJVRTsKLSAgICAgIH0K
LSAgICAgIGlzQWJvcnRpbmcgPSB0cnVlOwotCi0gICAgICBmcHJpbnRmKCBzdGRlcnIsICJDUlQg
RXJyb3IvQXNzZXJ0OlxuJXNcbiIsIG1lc3NhZ2UgKTsKLSAgICAgIGZmbHVzaCggc3RkZXJyICk7
Ci0gICAgICBhYm9ydCgpOwotICAgfQotICAgLy8gTGV0J3Mgb3RoZXIgcmVwb3J0VHlwZSAoX0NS
VF9XQVJOSU5HKSBiZSBoYW5kbGVkIGFzIHRoZXkgd291bGQgYnkgZGVmYXVsdAotICAgcmV0dXJu
IEZBTFNFOworc3RhdGljIGludAorbXN2Y3J0U2lsZW50UmVwb3J0SG9vayhpbnQgcmVwb3J0VHlw
ZSwgY2hhciogbWVzc2FnZSwgaW50KiAvKnJldHVyblZhbHVlKi8pIHsKKyAgLy8gVGhlIGRlZmF1
bHQgQ1JUIGhhbmRsaW5nIG9mIGVycm9yIGFuZCBhc3NlcnRpb24gaXMgdG8gZGlzcGxheQorICAv
LyBhbiBlcnJvciBkaWFsb2cgdG8gdGhlIHVzZXIuCisgIC8vIEluc3RlYWQsIHdoZW4gYW4gZXJy
b3Igb3IgYW4gYXNzZXJ0aW9uIG9jY3Vycywgd2UgZm9yY2UgdGhlCisgIC8vIGFwcGxpY2F0aW9u
IHRvIHRlcm1pbmF0ZSB1c2luZyBhYm9ydCgpIGFmdGVyIGRpc3BsYXkKKyAgLy8gdGhlIG1lc3Nh
Z2Ugb24gc3RkZXJyLgorICBpZiAocmVwb3J0VHlwZSA9PSBfQ1JUX0VSUk9SIHx8IHJlcG9ydFR5
cGUgPT0gX0NSVF9BU1NFUlQpIHsKKyAgICAvLyBjYWxsaW5nIGFib3J0KCkgY2F1c2UgdGhlIFJl
cG9ydEhvb2sgdG8gYmUgY2FsbGVkCisgICAgLy8gVGhlIGZvbGxvd2luZyBpcyB1c2VkIHRvIGRl
dGVjdCB0aGlzIGNhc2UgYW5kIGxldCdzIHRoZQorICAgIC8vIGVycm9yIGhhbmRsZXIgZmFsbGJh
Y2sgb24gaXRzIGRlZmF1bHQgYmVoYXZpb3VyICgKKyAgICAvLyBkaXNwbGF5IGEgd2FybmluZyBt
ZXNzYWdlKQorICAgIHN0YXRpYyB2b2xhdGlsZSBib29sIGlzQWJvcnRpbmcgPSBmYWxzZTsKKyAg
ICBpZiAoaXNBYm9ydGluZykgeworICAgICAgcmV0dXJuIFRSVUU7CisgICAgfQorICAgIGlzQWJv
cnRpbmcgPSB0cnVlOworCisgICAgZnByaW50ZihzdGRlcnIsICJDUlQgRXJyb3IvQXNzZXJ0Olxu
JXNcbiIsIG1lc3NhZ2UpOworICAgIGZmbHVzaChzdGRlcnIpOworICAgIGFib3J0KCk7CisgIH0K
KyAgLy8gTGV0J3Mgb3RoZXIgcmVwb3J0VHlwZSAoX0NSVF9XQVJOSU5HKSBiZSBoYW5kbGVkIGFz
IHRoZXkgd291bGQgYnkgZGVmYXVsdAorICByZXR1cm4gRkFMU0U7CiB9CiAjZW5kaWYgLy8gaWYg
ZGVmaW5lZChfTVNDX1ZFUikKIAotCi12b2lkIAotUnVubmVyOjpwcmV2ZW50RGlhbG9nT25DcmFz
aCgpCi17Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSAgIC8vIEluc3RhbGwgYSBob29rIHRvIHBy
ZXZlbnQgTVNWQ1JUIGVycm9yIGFuZCBhc3NlcnRpb24gZnJvbQotICAgLy8gcG9wcGluZyBhIGRp
YWxvZy4KLSAgIF9DcnRTZXRSZXBvcnRIb29rKCAmbXN2Y3J0U2lsZW50UmVwb3J0SG9vayApOwor
dm9pZCBSdW5uZXI6OnByZXZlbnREaWFsb2dPbkNyYXNoKCkgeworI2lmIGRlZmluZWQoX01TQ19W
RVIpICYmIGRlZmluZWQoX0RFQlVHKQorICAvLyBJbnN0YWxsIGEgaG9vayB0byBwcmV2ZW50IE1T
VkNSVCBlcnJvciBhbmQgYXNzZXJ0aW9uIGZyb20KKyAgLy8gcG9wcGluZyBhIGRpYWxvZworICAv
LyBUaGlzIGZ1bmN0aW9uIGEgTk8tT1AgaW4gcmVsZWFzZSBjb25maWd1cmF0aW9uCisgIC8vICh3
aGljaCBjYXVzZSB3YXJuaW5nIHNpbmNlIG1zdmNydFNpbGVudFJlcG9ydEhvb2sgaXMgbm90IHJl
ZmVyZW5jZWQpCisgIF9DcnRTZXRSZXBvcnRIb29rKCZtc3ZjcnRTaWxlbnRSZXBvcnRIb29rKTsK
ICNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQogCi0gICAvLyBAdG9kbyBpbnZlc3RpZ3Vh
dGUgdGhpcyBoYW5kbGVyIChmb3IgYnVmZmVyIG92ZXJmbG93KQotICAgLy8gX3NldF9zZWN1cml0
eV9lcnJvcl9oYW5kbGVyCisgIC8vIEB0b2RvIGludmVzdGlnYXRlIHRoaXMgaGFuZGxlciAoZm9y
IGJ1ZmZlciBvdmVyZmxvdykKKyAgLy8gX3NldF9zZWN1cml0eV9lcnJvcl9oYW5kbGVyCiAKICNp
ZiBkZWZpbmVkKF9XSU4zMikKLSAgIC8vIFByZXZlbnRzIHRoZSBzeXN0ZW0gZnJvbSBwb3BwaW5n
IGEgZGlhbG9nIGZvciBkZWJ1Z2dpbmcgaWYgdGhlCi0gICAvLyBhcHBsaWNhdGlvbiBmYWlscyBk
dWUgdG8gaW52YWxpZCBtZW1vcnkgYWNjZXNzLgotICAgU2V0RXJyb3JNb2RlKCBTRU1fRkFJTENS
SVRJQ0FMRVJST1JTIAotICAgICAgICAgICAgICAgICB8IFNFTV9OT0dQRkFVTFRFUlJPUkJPWCAK
LSAgICAgICAgICAgICAgICAgfCBTRU1fTk9PUEVORklMRUVSUk9SQk9YICk7CisgIC8vIFByZXZl
bnRzIHRoZSBzeXN0ZW0gZnJvbSBwb3BwaW5nIGEgZGlhbG9nIGZvciBkZWJ1Z2dpbmcgaWYgdGhl
CisgIC8vIGFwcGxpY2F0aW9uIGZhaWxzIGR1ZSB0byBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCisg
IFNldEVycm9yTW9kZShTRU1fRkFJTENSSVRJQ0FMRVJST1JTIHwgU0VNX05PR1BGQVVMVEVSUk9S
Qk9YIHwKKyAgICAgICAgICAgICAgIFNFTV9OT09QRU5GSUxFRVJST1JCT1gpOwogI2VuZGlmIC8v
IGlmIGRlZmluZWQoX1dJTjMyKQogfQogCi12b2lkIAotUnVubmVyOjpwcmludFVzYWdlKCBjb25z
dCBjaGFyICphcHBOYW1lICkKLXsKLSAgIHByaW50ZiggCi0gICAgICAiVXNhZ2U6ICVzIFtvcHRp
b25zXVxuIgotICAgICAgIlxuIgotICAgICAgIklmIC0tdGVzdCBpcyBub3Qgc3BlY2lmaWVkLCB0
aGVuIGFsbCB0aGUgdGVzdCBjYXNlcyBiZSBydW4uXG4iCi0gICAgICAiXG4iCi0gICAgICAiVmFs
aWQgb3B0aW9uczpcbiIKLSAgICAgICItLWxpc3QtdGVzdHM6IHByaW50IHRoZSBuYW1lIG9mIGFs
bCB0ZXN0IGNhc2VzIG9uIHRoZSBzdGFuZGFyZFxuIgotICAgICAgIiAgICAgICAgICAgICAgb3V0
cHV0IGFuZCBleGl0LlxuIgotICAgICAgIi0tdGVzdCBURVNUTkFNRTogZXhlY3V0ZXMgdGhlIHRl
c3QgY2FzZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS5cbiIKLSAgICAgICIgICAgICAgICAgICAg
ICAgIE1heSBiZSByZXBlYXRlZC5cbiIKLSAgICAgICItLXRlc3QtYXV0bzogcHJldmVudCBkaWFs
b2cgcHJvbXB0aW5nIGZvciBkZWJ1Z2dpbmcgb24gY3Jhc2guXG4iCi0gICAgICAsIGFwcE5hbWUg
KTsKK3ZvaWQgUnVubmVyOjpwcmludFVzYWdlKGNvbnN0IGNoYXIqIGFwcE5hbWUpIHsKKyAgcHJp
bnRmKCJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisgICAgICAgICAiXG4iCisgICAgICAgICAiSWYg
LS10ZXN0IGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gYWxsIHRoZSB0ZXN0IGNhc2VzIGJlIHJ1bi5c
biIKKyAgICAgICAgICJcbiIKKyAgICAgICAgICJWYWxpZCBvcHRpb25zOlxuIgorICAgICAgICAg
Ii0tbGlzdC10ZXN0czogcHJpbnQgdGhlIG5hbWUgb2YgYWxsIHRlc3QgY2FzZXMgb24gdGhlIHN0
YW5kYXJkXG4iCisgICAgICAgICAiICAgICAgICAgICAgICBvdXRwdXQgYW5kIGV4aXQuXG4iCisg
ICAgICAgICAiLS10ZXN0IFRFU1ROQU1FOiBleGVjdXRlcyB0aGUgdGVzdCBjYXNlIHdpdGggdGhl
IHNwZWNpZmllZCBuYW1lLlxuIgorICAgICAgICAgIiAgICAgICAgICAgICAgICAgTWF5IGJlIHJl
cGVhdGVkLlxuIgorICAgICAgICAgIi0tdGVzdC1hdXRvOiBwcmV2ZW50IGRpYWxvZyBwcm9tcHRp
bmcgZm9yIGRlYnVnZ2luZyBvbiBjcmFzaC5cbiIsCisgICAgICAgICBhcHBOYW1lKTsKIH0KIAot
Ci0KIC8vIEFzc2VydGlvbiBmdW5jdGlvbnMKIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi1UZXN0UmVzdWx0ICYK
LWNoZWNrU3RyaW5nRXF1YWwoIFRlc3RSZXN1bHQgJnJlc3VsdCwgCi0gICAgICAgICAgICAgICAg
ICBjb25zdCBzdGQ6OnN0cmluZyAmZXhwZWN0ZWQsIGNvbnN0IHN0ZDo6c3RyaW5nICZhY3R1YWws
Ci0gICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlLCB1bnNpZ25lZCBpbnQgbGluZSwg
Y29uc3QgY2hhciAqZXhwciApCi17Ci0gICBpZiAoIGV4cGVjdGVkICE9IGFjdHVhbCApCi0gICB7
Ci0gICAgICByZXN1bHQuYWRkRmFpbHVyZSggZmlsZSwgbGluZSwgZXhwciApOwotICAgICAgcmVz
dWx0IDw8ICJFeHBlY3RlZDogJyIgPDwgZXhwZWN0ZWQgPDwgIidcbiI7Ci0gICAgICByZXN1bHQg
PDwgIkFjdHVhbCAgOiAnIiA8PCBhY3R1YWwgPDwgIiciOwotICAgfQotICAgcmV0dXJuIHJlc3Vs
dDsKK0pzb246OlN0cmluZyBUb0pzb25TdHJpbmcoY29uc3QgY2hhciogdG9Db252ZXJ0KSB7Cisg
IHJldHVybiBKc29uOjpTdHJpbmcodG9Db252ZXJ0KTsKIH0KIAorSnNvbjo6U3RyaW5nIFRvSnNv
blN0cmluZyhKc29uOjpTdHJpbmcgaW4pIHsgcmV0dXJuIGluOyB9CisKKyNpZiBKU09OQ1BQX1VT
SU5HX1NFQ1VSRV9NRU1PUlkKK0pzb246OlN0cmluZyBUb0pzb25TdHJpbmcoc3RkOjpzdHJpbmcg
aW4pIHsKKyAgcmV0dXJuIEpzb246OlN0cmluZyhpbi5kYXRhKCksIGluLmRhdGEoKSArIGluLmxl
bmd0aCgpKTsKK30KKyNlbmRpZgorCitUZXN0UmVzdWx0JiBjaGVja1N0cmluZ0VxdWFsKFRlc3RS
ZXN1bHQmIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6
U3RyaW5nJiBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNv
bjo6U3RyaW5nJiBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHByKSB7CisgIGlm
IChleHBlY3RlZCAhPSBhY3R1YWwpIHsKKyAgICByZXN1bHQuYWRkRmFpbHVyZShmaWxlLCBsaW5l
LCBleHByKTsKKyAgICByZXN1bHQgPDwgIkV4cGVjdGVkOiAnIiA8PCBleHBlY3RlZCA8PCAiJ1xu
IjsKKyAgICByZXN1bHQgPDwgIkFjdHVhbCAgOiAnIiA8PCBhY3R1YWwgPDwgIiciOworICB9Cisg
IHJldHVybiByZXN1bHQ7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpzb25UZXN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3NyYy90ZXN0X2xpYl9qc29uL2pzb250ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3NyYy90ZXN0X2xpYl9q
c29uL2pzb250ZXN0LmgKaW5kZXggMjA3NjkyYmMxNWNjYjZlZmI1YjdmNDc4NjdjYWIwYThiMTVh
Y2I0MS4uZTljMTFhNDcwN2QyNzdjMjk5YWRjOTVkMWE2MzUwNTE2MWM3MTNmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS9zcmMvdGVzdF9saWJfanNvbi9qc29udGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3Rf
bGliX2pzb24vanNvbnRlc3QuaApAQCAtMSwxOCArMSwxOCBAQAotLy8gQ29weXJpZ2h0IDIwMDct
MjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUg
TGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRlZCB1bmRlciBN
SVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8gcmVjb2duaXpl
ZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBv
ciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCiAKICNpZm5k
ZWYgSlNPTlRFU1RfSF9JTkNMVURFRAotIyBkZWZpbmUgSlNPTlRFU1RfSF9JTkNMVURFRAorI2Rl
ZmluZSBKU09OVEVTVF9IX0lOQ0xVREVECiAKLSMgaW5jbHVkZSA8anNvbi9jb25maWcuaD4KLSMg
aW5jbHVkZSA8anNvbi92YWx1ZS5oPgotIyBpbmNsdWRlIDxqc29uL3dyaXRlci5oPgotIyBpbmNs
dWRlIDxzdGRpby5oPgotIyBpbmNsdWRlIDxkZXF1ZT4KLSMgaW5jbHVkZSA8c3N0cmVhbT4KLSMg
aW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxkZXF1ZT4KKyNp
bmNsdWRlIDxqc29uL2NvbmZpZy5oPgorI2luY2x1ZGUgPGpzb24vdmFsdWUuaD4KKyNpbmNsdWRl
IDxqc29uL3dyaXRlci5oPgorI2luY2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVkZSA8c3RyaW5nPgog
CiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjAsOCArMjAsNiBAQAogLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KIAotCi0KIC8qKiBcYnJpZWYgVW5pdCB0ZXN0aW5nIGZyYW1ld29y
ay4KICAqIFx3YXJuaW5nOiBhbGwgYXNzZXJ0aW9ucyBhcmUgbm9uLWFib3J0aW5nLCB0ZXN0IGNh
c2UgZXhlY3V0aW9uIHdpbGwgY29udGludWUKICAqICAgICAgICAgICBldmVuIGlmIGFuIGFzc2Vy
dGlvbiBuYW1lc3BhY2UuCkBAIC0zMCwyNDQgKzI4LDI0OSBAQAogICovCiBuYW1lc3BhY2UgSnNv
blRlc3QgewogCi0KLSAgIGNsYXNzIEZhaWx1cmUKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIGNv
bnN0IGNoYXIgKmZpbGVfOwotICAgICAgdW5zaWduZWQgaW50IGxpbmVfOwotICAgICAgc3RkOjpz
dHJpbmcgZXhwcl87Ci0gICAgICBzdGQ6OnN0cmluZyBtZXNzYWdlXzsKLSAgICAgIHVuc2lnbmVk
IGludCBuZXN0aW5nTGV2ZWxfOwotICAgfTsKLQotCi0gICAvLy8gQ29udGV4dCB1c2VkIHRvIGNy
ZWF0ZSB0aGUgYXNzZXJ0aW9uIGNhbGxzdGFjayBvbiBmYWlsdXJlLgotICAgLy8vIE11c3QgYmUg
YSBQT0QgdG8gYWxsb3cgaW5saW5lIGluaXRpYWxpc2F0aW9uIHdpdGhvdXQgc3RlcHBpbmcgCi0g
ICAvLy8gaW50byB0aGUgZGVidWdnZXIuCi0gICBzdHJ1Y3QgUHJlZGljYXRlQ29udGV4dAotICAg
ewotICAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgSWQ7Ci0gICAgICBJZCBpZF87Ci0gICAgICBj
b25zdCBjaGFyICpmaWxlXzsKLSAgICAgIHVuc2lnbmVkIGludCBsaW5lXzsKLSAgICAgIGNvbnN0
IGNoYXIgKmV4cHJfOwotICAgICAgUHJlZGljYXRlQ29udGV4dCAqbmV4dF87Ci0gICAgICAvLy8g
UmVsYXRlZCBGYWlsdXJlLCBzZXQgd2hlbiB0aGUgUHJlZGljYXRlQ29udGV4dCBpcyBjb252ZXJ0
ZWQKLSAgICAgIC8vLyBpbnRvIGEgRmFpbHVyZS4KLSAgICAgIEZhaWx1cmUgKmZhaWx1cmVfOwot
ICAgfTsKLQotICAgY2xhc3MgVGVzdFJlc3VsdAotICAgewotICAgcHVibGljOgotICAgICAgVGVz
dFJlc3VsdCgpOwotCi0gICAgICAvLy8gXGludGVybmFsIEltcGxlbWVudGF0aW9uIGRldGFpbCBm
b3IgYXNzZXJ0aW9uIG1hY3JvcwotICAgICAgLy8vIE5vdCBlbmNhcHN1bGF0ZWQgdG8gcHJldmVu
dCBzdGVwIGludG8gd2hlbiBkZWJ1Z2dpbmcgZmFpbGVkIGFzc2VydGlvbnMKLSAgICAgIC8vLyBJ
bmNyZW1lbnRlZCBieSBvbmUgb24gYXNzZXJ0aW9uIHByZWRpY2F0ZSBlbnRyeSwgZGVjcmVhc2Vk
IGJ5IG9uZQotICAgICAgLy8vIGJ5IGFkZFByZWRpY2F0ZUNvbnRleHQoKS4KLSAgICAgIFByZWRp
Y2F0ZUNvbnRleHQ6OklkIHByZWRpY2F0ZUlkXzsKLQotICAgICAgLy8vIFxpbnRlcm5hbCBJbXBs
ZW1lbnRhdGlvbiBkZXRhaWwgZm9yIHByZWRpY2F0ZSBtYWNyb3MKLSAgICAgIFByZWRpY2F0ZUNv
bnRleHQgKnByZWRpY2F0ZVN0YWNrVGFpbF87Ci0KLSAgICAgIHZvaWQgc2V0VGVzdE5hbWUoIGNv
bnN0IHN0ZDo6c3RyaW5nICZuYW1lICk7Ci0KLSAgICAgIC8vLyBBZGRzIGFuIGFzc2VydGlvbiBm
YWlsdXJlLgotICAgICAgVGVzdFJlc3VsdCAmYWRkRmFpbHVyZSggY29uc3QgY2hhciAqZmlsZSwg
dW5zaWduZWQgaW50IGxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyICpleHByID0gMCApOwotCi0gICAgICAvLy8gUmVtb3ZlcyB0aGUgbGFzdCBQcmVkaWNhdGVD
b250ZXh0IGFkZGVkIHRvIHRoZSBwcmVkaWNhdGUgc3RhY2sKLSAgICAgIC8vLyBjaGFpbmVkIGxp
c3QuCi0gICAgICAvLy8gTmV4dCBtZXNzYWdlcyB3aWxsIGJlIHRhcmdlZCBhdCB0aGUgUHJlZGlj
YXRlQ29udGV4dCB0aGF0IHdhcyByZW1vdmVkLgotICAgICAgVGVzdFJlc3VsdCAmcG9wUHJlZGlj
YXRlQ29udGV4dCgpOwotCi0gICAgICBib29sIGZhaWxlZCgpIGNvbnN0OwotCi0gICAgICB2b2lk
IHByaW50RmFpbHVyZSggYm9vbCBwcmludFRlc3ROYW1lICkgY29uc3Q7Ci0KLSAgICAgIC8vIEdl
bmVyaWMgb3BlcmF0b3IgdGhhdCB3aWxsIHdvcmsgd2l0aCBhbnl0aGluZyBvc3RyZWFtIGNhbiBk
ZWFsIHdpdGguCi0gICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgICAgIFRlc3RSZXN1bHQg
Jm9wZXJhdG9yIDw8ICggY29uc3QgVCYgdmFsdWUgKSB7Ci0gICAgICAgICBzdGQ6Om9zdHJpbmdz
dHJlYW0gb3NzOwotICAgICAgICAgb3NzLnByZWNpc2lvbiggMTYgKTsKLSAgICAgICAgIG9zcy5z
ZXRmKCBzdGQ6Omlvc19iYXNlOjpmbG9hdGZpZWxkICk7Ci0gICAgICAgICBvc3MgPDwgdmFsdWU7
Ci0gICAgICAgICByZXR1cm4gYWRkVG9MYXN0RmFpbHVyZShvc3Muc3RyKCkpOwotICAgICAgfQot
Ci0gICAgICAvLyBTcGVjaWFsaXplZCB2ZXJzaW9ucy4KLSAgICAgIFRlc3RSZXN1bHQgJm9wZXJh
dG9yIDw8ICggYm9vbCB2YWx1ZSApOwotICAgICAgLy8gc3RkOm9zdHJlYW0gZG9lcyBub3Qgc3Vw
cG9ydCA2NGJpdHMgaW50ZWdlcnMgb24gYWxsIFNUTCBpbXBsZW1lbnRhdGlvbgotICAgICAgVGVz
dFJlc3VsdCAmb3BlcmF0b3IgPDwgKCBKc29uOjpJbnQ2NCB2YWx1ZSApOwotICAgICAgVGVzdFJl
c3VsdCAmb3BlcmF0b3IgPDwgKCBKc29uOjpVSW50NjQgdmFsdWUgKTsKLQotICAgcHJpdmF0ZToK
LSAgICAgIFRlc3RSZXN1bHQgJmFkZFRvTGFzdEZhaWx1cmUoIGNvbnN0IHN0ZDo6c3RyaW5nICZt
ZXNzYWdlICk7Ci0gICAgICB1bnNpZ25lZCBpbnQgZ2V0QXNzZXJ0aW9uTmVzdGluZ0xldmVsKCkg
Y29uc3Q7Ci0gICAgICAvLy8gQWRkcyBhIGZhaWx1cmUgb3IgYSBwcmVkaWNhdGUgY29udGV4dAot
ICAgICAgdm9pZCBhZGRGYWlsdXJlSW5mbyggY29uc3QgY2hhciAqZmlsZSwgdW5zaWduZWQgaW50
IGxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpleHByLCB1bnNp
Z25lZCBpbnQgbmVzdGluZ0xldmVsICApOwotICAgICAgc3RhdGljIHN0ZDo6c3RyaW5nIGluZGVu
dFRleHQoIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXh0LCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmaW5kZW50ICk7Ci0KLSAgICAgIHR5cGVk
ZWYgc3RkOjpkZXF1ZTxGYWlsdXJlPiBGYWlsdXJlczsKLSAgICAgIEZhaWx1cmVzIGZhaWx1cmVz
XzsKLSAgICAgIHN0ZDo6c3RyaW5nIG5hbWVfOwotICAgICAgUHJlZGljYXRlQ29udGV4dCByb290
UHJlZGljYXRlTm9kZV87Ci0gICAgICBQcmVkaWNhdGVDb250ZXh0OjpJZCBsYXN0VXNlZFByZWRp
Y2F0ZUlkXzsKLSAgICAgIC8vLyBGYWlsdXJlIHdoaWNoIGlzIHRoZSB0YXJnZXQgb2YgdGhlIG1l
c3NhZ2VzIGFkZGVkIHVzaW5nIG9wZXJhdG9yIDw8Ci0gICAgICBGYWlsdXJlICptZXNzYWdlVGFy
Z2V0XzsKLSAgIH07Ci0KLQotICAgY2xhc3MgVGVzdENhc2UKLSAgIHsKLSAgIHB1YmxpYzoKLSAg
ICAgIFRlc3RDYXNlKCk7Ci0KLSAgICAgIHZpcnR1YWwgflRlc3RDYXNlKCk7Ci0KLSAgICAgIHZv
aWQgcnVuKCBUZXN0UmVzdWx0ICZyZXN1bHQgKTsKLQotICAgICAgdmlydHVhbCBjb25zdCBjaGFy
ICp0ZXN0TmFtZSgpIGNvbnN0ID0gMDsKLQotICAgcHJvdGVjdGVkOgotICAgICAgVGVzdFJlc3Vs
dCAqcmVzdWx0XzsKLQotICAgcHJpdmF0ZToKLSAgICAgIHZpcnR1YWwgdm9pZCBydW5UZXN0Q2Fz
ZSgpID0gMDsKLSAgIH07Ci0KLSAgIC8vLyBGdW5jdGlvbiBwb2ludGVyIHR5cGUgZm9yIFRlc3RD
YXNlIGZhY3RvcnkKLSAgIHR5cGVkZWYgVGVzdENhc2UgKigqVGVzdENhc2VGYWN0b3J5KSgpOwot
Ci0gICBjbGFzcyBSdW5uZXIKLSAgIHsKLSAgIHB1YmxpYzoKLSAgICAgIFJ1bm5lcigpOwotCi0g
ICAgICAvLy8gQWRkcyBhIHRlc3QgdG8gdGhlIHN1aXRlCi0gICAgICBSdW5uZXIgJmFkZCggVGVz
dENhc2VGYWN0b3J5IGZhY3RvcnkgKTsKLQotICAgICAgLy8vIFJ1bnMgdGVzdCBhcyBzcGVjaWZp
ZWQgb24gdGhlIGNvbW1hbmQtbGluZQotICAgICAgLy8vIElmIG5vIGNvbW1hbmQtbGluZSBhcmd1
bWVudHMgYXJlIHByb3ZpZGVkLCBydW4gYWxsIHRlc3RzLgotICAgICAgLy8vIElmIC0tbGlzdC10
ZXN0cyBpcyBwcm92aWRlZCwgdGhlbiBwcmludCB0aGUgbGlzdCBvZiBhbGwgdGVzdCBjYXNlcwot
ICAgICAgLy8vIElmIC0tdGVzdCA8dGVzdG5hbWU+IGlzIHByb3ZpZGVkLCB0aGVuIHJ1biB0ZXN0
IHRlc3RuYW1lLgotICAgICAgaW50IHJ1bkNvbW1hbmRMaW5lKCBpbnQgYXJnYywgY29uc3QgY2hh
ciAqYXJndltdICkgY29uc3Q7Ci0KLSAgICAgIC8vLyBSdW5zIGFsbCB0aGUgdGVzdCBjYXNlcwot
ICAgICAgYm9vbCBydW5BbGxUZXN0KCBib29sIHByaW50U3VtbWFyeSApIGNvbnN0OwotCi0gICAg
ICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZSBpbiB0aGUgc3VpdGUKLSAgICAg
IHVuc2lnbmVkIGludCB0ZXN0Q291bnQoKSBjb25zdDsKLQotICAgICAgLy8vIFJldHVybnMgdGhl
IG5hbWUgb2YgdGhlIHRlc3QgY2FzZSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4Ci0gICAgICBzdGQ6
OnN0cmluZyB0ZXN0TmFtZUF0KCB1bnNpZ25lZCBpbnQgaW5kZXggKSBjb25zdDsKLQotICAgICAg
Ly8vIFJ1bnMgdGhlIHRlc3QgY2FzZSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IHVzaW5nIHRoZSBz
cGVjaWZpZWQgVGVzdFJlc3VsdAotICAgICAgdm9pZCBydW5UZXN0QXQoIHVuc2lnbmVkIGludCBp
bmRleCwgVGVzdFJlc3VsdCAmcmVzdWx0ICkgY29uc3Q7Ci0KLSAgICAgIHN0YXRpYyB2b2lkIHBy
aW50VXNhZ2UoIGNvbnN0IGNoYXIgKmFwcE5hbWUgKTsKLQotICAgcHJpdmF0ZTogLy8gcHJldmVu
dHMgY29weSBjb25zdHJ1Y3Rpb24gYW5kIGFzc2lnbm1lbnQKLSAgICAgIFJ1bm5lciggY29uc3Qg
UnVubmVyICZvdGhlciApOwotICAgICAgUnVubmVyICZvcGVyYXRvciA9KCBjb25zdCBSdW5uZXIg
Jm90aGVyICk7Ci0KLSAgIHByaXZhdGU6Ci0gICAgICB2b2lkIGxpc3RUZXN0cygpIGNvbnN0Owot
ICAgICAgYm9vbCB0ZXN0SW5kZXgoIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0TmFtZSwgdW5zaWdu
ZWQgaW50ICZpbmRleCApIGNvbnN0OwotICAgICAgc3RhdGljIHZvaWQgcHJldmVudERpYWxvZ09u
Q3Jhc2goKTsKLQotICAgcHJpdmF0ZToKLSAgICAgIHR5cGVkZWYgc3RkOjpkZXF1ZTxUZXN0Q2Fz
ZUZhY3Rvcnk+IEZhY3RvcmllczsKLSAgICAgIEZhY3RvcmllcyB0ZXN0c187Ci0gICB9OwotCi0g
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotICAgVGVzdFJlc3VsdCAmCi0gICBj
aGVja0VxdWFsKCBUZXN0UmVzdWx0ICZyZXN1bHQsIGNvbnN0IFQgJmV4cGVjdGVkLCBjb25zdCBV
ICZhY3R1YWwsIAotICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZSwgdW5zaWduZWQgaW50
IGxpbmUsIGNvbnN0IGNoYXIgKmV4cHIgKQotICAgewotICAgICAgaWYgKCBleHBlY3RlZCAhPSBh
Y3R1YWwgKQotICAgICAgewotICAgICAgICAgcmVzdWx0LmFkZEZhaWx1cmUoIGZpbGUsIGxpbmUs
IGV4cHIgKTsKLSAgICAgICAgIHJlc3VsdCA8PCAiRXhwZWN0ZWQ6ICIgPDwgZXhwZWN0ZWQgPDwg
IlxuIjsKLSAgICAgICAgIHJlc3VsdCA8PCAiQWN0dWFsICA6ICIgPDwgYWN0dWFsOwotICAgICAg
fQotICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgIH0KLQotCi0gICBUZXN0UmVzdWx0ICYKLSAgIGNo
ZWNrU3RyaW5nRXF1YWwoIFRlc3RSZXN1bHQgJnJlc3VsdCwgCi0gICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzdGQ6OnN0cmluZyAmZXhwZWN0ZWQsIGNvbnN0IHN0ZDo6c3RyaW5nICZhY3R1YWws
Ci0gICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlLCB1bnNpZ25lZCBpbnQgbGlu
ZSwgY29uc3QgY2hhciAqZXhwciApOworY2xhc3MgRmFpbHVyZSB7CitwdWJsaWM6CisgIGNvbnN0
IGNoYXIqIGZpbGVfOworICB1bnNpZ25lZCBpbnQgbGluZV87CisgIEpzb246OlN0cmluZyBleHBy
XzsKKyAgSnNvbjo6U3RyaW5nIG1lc3NhZ2VfOworICB1bnNpZ25lZCBpbnQgbmVzdGluZ0xldmVs
XzsKK307CisKKy8vLyBDb250ZXh0IHVzZWQgdG8gY3JlYXRlIHRoZSBhc3NlcnRpb24gY2FsbHN0
YWNrIG9uIGZhaWx1cmUuCisvLy8gTXVzdCBiZSBhIFBPRCB0byBhbGxvdyBpbmxpbmUgaW5pdGlh
bGlzYXRpb24gd2l0aG91dCBzdGVwcGluZworLy8vIGludG8gdGhlIGRlYnVnZ2VyLgorc3RydWN0
IFByZWRpY2F0ZUNvbnRleHQgeworICB0eXBlZGVmIHVuc2lnbmVkIGludCBJZDsKKyAgSWQgaWRf
OworICBjb25zdCBjaGFyKiBmaWxlXzsKKyAgdW5zaWduZWQgaW50IGxpbmVfOworICBjb25zdCBj
aGFyKiBleHByXzsKKyAgUHJlZGljYXRlQ29udGV4dCogbmV4dF87CisgIC8vLyBSZWxhdGVkIEZh
aWx1cmUsIHNldCB3aGVuIHRoZSBQcmVkaWNhdGVDb250ZXh0IGlzIGNvbnZlcnRlZAorICAvLy8g
aW50byBhIEZhaWx1cmUuCisgIEZhaWx1cmUqIGZhaWx1cmVfOworfTsKKworY2xhc3MgVGVzdFJl
c3VsdCB7CitwdWJsaWM6CisgIFRlc3RSZXN1bHQoKTsKKworICAvLy8gXGludGVybmFsIEltcGxl
bWVudGF0aW9uIGRldGFpbCBmb3IgYXNzZXJ0aW9uIG1hY3JvcworICAvLy8gTm90IGVuY2Fwc3Vs
YXRlZCB0byBwcmV2ZW50IHN0ZXAgaW50byB3aGVuIGRlYnVnZ2luZyBmYWlsZWQgYXNzZXJ0aW9u
cworICAvLy8gSW5jcmVtZW50ZWQgYnkgb25lIG9uIGFzc2VydGlvbiBwcmVkaWNhdGUgZW50cnks
IGRlY3JlYXNlZCBieSBvbmUKKyAgLy8vIGJ5IGFkZFByZWRpY2F0ZUNvbnRleHQoKS4KKyAgUHJl
ZGljYXRlQ29udGV4dDo6SWQgcHJlZGljYXRlSWRfezF9OworCisgIC8vLyBcaW50ZXJuYWwgSW1w
bGVtZW50YXRpb24gZGV0YWlsIGZvciBwcmVkaWNhdGUgbWFjcm9zCisgIFByZWRpY2F0ZUNvbnRl
eHQqIHByZWRpY2F0ZVN0YWNrVGFpbF87CisKKyAgdm9pZCBzZXRUZXN0TmFtZShjb25zdCBKc29u
OjpTdHJpbmcmIG5hbWUpOworCisgIC8vLyBBZGRzIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorICBU
ZXN0UmVzdWx0JgorICBhZGRGYWlsdXJlKGNvbnN0IGNoYXIqIGZpbGUsIHVuc2lnbmVkIGludCBs
aW5lLCBjb25zdCBjaGFyKiBleHByID0gbnVsbHB0cik7CisKKyAgLy8vIFJlbW92ZXMgdGhlIGxh
c3QgUHJlZGljYXRlQ29udGV4dCBhZGRlZCB0byB0aGUgcHJlZGljYXRlIHN0YWNrCisgIC8vLyBj
aGFpbmVkIGxpc3QuCisgIC8vLyBOZXh0IG1lc3NhZ2VzIHdpbGwgYmUgdGFyZ2VkIGF0IHRoZSBQ
cmVkaWNhdGVDb250ZXh0IHRoYXQgd2FzIHJlbW92ZWQuCisgIFRlc3RSZXN1bHQmIHBvcFByZWRp
Y2F0ZUNvbnRleHQoKTsKKworICBib29sIGZhaWxlZCgpIGNvbnN0OworCisgIHZvaWQgcHJpbnRG
YWlsdXJlKGJvb2wgcHJpbnRUZXN0TmFtZSkgY29uc3Q7CisKKyAgLy8gR2VuZXJpYyBvcGVyYXRv
ciB0aGF0IHdpbGwgd29yayB3aXRoIGFueXRoaW5nIG9zdHJlYW0gY2FuIGRlYWwgd2l0aC4KKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFRlc3RSZXN1bHQmIG9wZXJhdG9yPDwoY29uc3QgVCYgdmFs
dWUpIHsKKyAgICBKc29uOjpPU3RyaW5nU3RyZWFtIG9zczsKKyAgICBvc3MucHJlY2lzaW9uKDE2
KTsKKyAgICBvc3Muc2V0ZihzdGQ6Omlvc19iYXNlOjpmbG9hdGZpZWxkKTsKKyAgICBvc3MgPDwg
dmFsdWU7CisgICAgcmV0dXJuIGFkZFRvTGFzdEZhaWx1cmUob3NzLnN0cigpKTsKKyAgfQorCisg
IC8vIFNwZWNpYWxpemVkIHZlcnNpb25zLgorICBUZXN0UmVzdWx0JiBvcGVyYXRvcjw8KGJvb2wg
dmFsdWUpOworICAvLyBzdGQ6b3N0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IDY0Yml0cyBpbnRlZ2Vy
cyBvbiBhbGwgU1RMIGltcGxlbWVudGF0aW9uCisgIFRlc3RSZXN1bHQmIG9wZXJhdG9yPDwoSnNv
bjo6SW50NjQgdmFsdWUpOworICBUZXN0UmVzdWx0JiBvcGVyYXRvcjw8KEpzb246OlVJbnQ2NCB2
YWx1ZSk7CisKK3ByaXZhdGU6CisgIFRlc3RSZXN1bHQmIGFkZFRvTGFzdEZhaWx1cmUoY29uc3Qg
SnNvbjo6U3RyaW5nJiBtZXNzYWdlKTsKKyAgLy8vIEFkZHMgYSBmYWlsdXJlIG9yIGEgcHJlZGlj
YXRlIGNvbnRleHQKKyAgdm9pZCBhZGRGYWlsdXJlSW5mbyhjb25zdCBjaGFyKiBmaWxlLAorICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5lLAorICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
IG5lc3RpbmdMZXZlbCk7CisgIHN0YXRpYyBKc29uOjpTdHJpbmcgaW5kZW50VGV4dChjb25zdCBK
c29uOjpTdHJpbmcmIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBKc29uOjpTdHJpbmcmIGluZGVudCk7CisKKyAgdHlwZWRlZiBzdGQ6OmRlcXVlPEZhaWx1cmU+
IEZhaWx1cmVzOworICBGYWlsdXJlcyBmYWlsdXJlc187CisgIEpzb246OlN0cmluZyBuYW1lXzsK
KyAgUHJlZGljYXRlQ29udGV4dCByb290UHJlZGljYXRlTm9kZV87CisgIFByZWRpY2F0ZUNvbnRl
eHQ6OklkIGxhc3RVc2VkUHJlZGljYXRlSWRfezB9OworICAvLy8gRmFpbHVyZSB3aGljaCBpcyB0
aGUgdGFyZ2V0IG9mIHRoZSBtZXNzYWdlcyBhZGRlZCB1c2luZyBvcGVyYXRvciA8PAorICBGYWls
dXJlKiBtZXNzYWdlVGFyZ2V0X3tudWxscHRyfTsKK307CisKK2NsYXNzIFRlc3RDYXNlIHsKK3B1
YmxpYzoKKyAgVGVzdENhc2UoKTsKKworICB2aXJ0dWFsIH5UZXN0Q2FzZSgpOworCisgIHZvaWQg
cnVuKFRlc3RSZXN1bHQmIHJlc3VsdCk7CisKKyAgdmlydHVhbCBjb25zdCBjaGFyKiB0ZXN0TmFt
ZSgpIGNvbnN0ID0gMDsKKworcHJvdGVjdGVkOgorICBUZXN0UmVzdWx0KiByZXN1bHRfe251bGxw
dHJ9OworCitwcml2YXRlOgorICB2aXJ0dWFsIHZvaWQgcnVuVGVzdENhc2UoKSA9IDA7Cit9Owor
CisvLy8gRnVuY3Rpb24gcG9pbnRlciB0eXBlIGZvciBUZXN0Q2FzZSBmYWN0b3J5Cit0eXBlZGVm
IFRlc3RDYXNlKiAoKlRlc3RDYXNlRmFjdG9yeSkoKTsKKworY2xhc3MgUnVubmVyIHsKK3B1Ymxp
YzoKKyAgUnVubmVyKCk7CisKKyAgLy8vIEFkZHMgYSB0ZXN0IHRvIHRoZSBzdWl0ZQorICBSdW5u
ZXImIGFkZChUZXN0Q2FzZUZhY3RvcnkgZmFjdG9yeSk7CisKKyAgLy8vIFJ1bnMgdGVzdCBhcyBz
cGVjaWZpZWQgb24gdGhlIGNvbW1hbmQtbGluZQorICAvLy8gSWYgbm8gY29tbWFuZC1saW5lIGFy
Z3VtZW50cyBhcmUgcHJvdmlkZWQsIHJ1biBhbGwgdGVzdHMuCisgIC8vLyBJZiAtLWxpc3QtdGVz
dHMgaXMgcHJvdmlkZWQsIHRoZW4gcHJpbnQgdGhlIGxpc3Qgb2YgYWxsIHRlc3QgY2FzZXMKKyAg
Ly8vIElmIC0tdGVzdCA8dGVzdG5hbWU+IGlzIHByb3ZpZGVkLCB0aGVuIHJ1biB0ZXN0IHRlc3Ru
YW1lLgorICBpbnQgcnVuQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkg
Y29uc3Q7CisKKyAgLy8vIFJ1bnMgYWxsIHRoZSB0ZXN0IGNhc2VzCisgIGJvb2wgcnVuQWxsVGVz
dChib29sIHByaW50U3VtbWFyeSkgY29uc3Q7CisKKyAgLy8vIFJldHVybnMgdGhlIG51bWJlciBv
ZiB0ZXN0IGNhc2UgaW4gdGhlIHN1aXRlCisgIHNpemVfdCB0ZXN0Q291bnQoKSBjb25zdDsKKwor
ICAvLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlIGF0IHRoZSBzcGVjaWZpZWQg
aW5kZXgKKyAgSnNvbjo6U3RyaW5nIHRlc3ROYW1lQXQoc2l6ZV90IGluZGV4KSBjb25zdDsKKwor
ICAvLy8gUnVucyB0aGUgdGVzdCBjYXNlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggdXNpbmcgdGhl
IHNwZWNpZmllZCBUZXN0UmVzdWx0CisgIHZvaWQgcnVuVGVzdEF0KHNpemVfdCBpbmRleCwgVGVz
dFJlc3VsdCYgcmVzdWx0KSBjb25zdDsKKworICBzdGF0aWMgdm9pZCBwcmludFVzYWdlKGNvbnN0
IGNoYXIqIGFwcE5hbWUpOworCitwcml2YXRlOiAvLyBwcmV2ZW50cyBjb3B5IGNvbnN0cnVjdGlv
biBhbmQgYXNzaWdubWVudAorICBSdW5uZXIoY29uc3QgUnVubmVyJiBvdGhlcikgPSBkZWxldGU7
CisgIFJ1bm5lciYgb3BlcmF0b3I9KGNvbnN0IFJ1bm5lciYgb3RoZXIpID0gZGVsZXRlOworCitw
cml2YXRlOgorICB2b2lkIGxpc3RUZXN0cygpIGNvbnN0OworICBib29sIHRlc3RJbmRleChjb25z
dCBKc29uOjpTdHJpbmcmIHRlc3ROYW1lLCBzaXplX3QmIGluZGV4T3V0KSBjb25zdDsKKyAgc3Rh
dGljIHZvaWQgcHJldmVudERpYWxvZ09uQ3Jhc2goKTsKKworcHJpdmF0ZToKKyAgdHlwZWRlZiBz
dGQ6OmRlcXVlPFRlc3RDYXNlRmFjdG9yeT4gRmFjdG9yaWVzOworICBGYWN0b3JpZXMgdGVzdHNf
OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CitUZXN0UmVzdWx0JiBj
aGVja0VxdWFsKFRlc3RSZXN1bHQmIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgVCBl
eHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgVSBhY3R1YWwsCisgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHByKSB7
CisgIGlmIChzdGF0aWNfY2FzdDxVPihleHBlY3RlZCkgIT0gYWN0dWFsKSB7CisgICAgcmVzdWx0
LmFkZEZhaWx1cmUoZmlsZSwgbGluZSwgZXhwcik7CisgICAgcmVzdWx0IDw8ICJFeHBlY3RlZDog
IiA8PCBzdGF0aWNfY2FzdDxVPihleHBlY3RlZCkgPDwgIlxuIjsKKyAgICByZXN1bHQgPDwgIkFj
dHVhbCAgOiAiIDw8IGFjdHVhbDsKKyAgfQorICByZXR1cm4gcmVzdWx0OworfQorCitKc29uOjpT
dHJpbmcgVG9Kc29uU3RyaW5nKGNvbnN0IGNoYXIqIHRvQ29udmVydCk7CitKc29uOjpTdHJpbmcg
VG9Kc29uU3RyaW5nKEpzb246OlN0cmluZyBpbik7CisjaWYgSlNPTkNQUF9VU0lOR19TRUNVUkVf
TUVNT1JZCitKc29uOjpTdHJpbmcgVG9Kc29uU3RyaW5nKHN0ZDo6c3RyaW5nIGluKTsKKyNlbmRp
ZgorCitUZXN0UmVzdWx0JiBjaGVja1N0cmluZ0VxdWFsKFRlc3RSZXN1bHQmIHJlc3VsdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6U3RyaW5nJiBleHBlY3RlZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSnNvbjo6U3RyaW5nJiBhY3R1YWws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW5lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHByKTsKIAogfSAvLyBuYW1lc3BhY2UgSnNvblRl
c3QKIAotCiAvLy8gXGJyaWVmIEFzc2VydHMgdGhhdCB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBpcyB0
cnVlLgogLy8vIEpTT05URVNUX0FTU0VSVCggeCA9PSB5ICkgPDwgIng9IiA8PCB4IDw8ICIsIHk9
IiA8PCB5OwogLy8vIEpTT05URVNUX0FTU0VSVCggeCA9PSB5ICk7Ci0jZGVmaW5lIEpTT05URVNU
X0FTU0VSVCggZXhwciApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICBpZiAoIGV4cHIgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICByZXN1
bHRfLT5hZGRGYWlsdXJlKCBfX0ZJTEVfXywgX19MSU5FX18sICNleHByICkKKyNkZWZpbmUgSlNP
TlRFU1RfQVNTRVJUKGV4cHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgIGlmIChleHByKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9IGVsc2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICByZXN1bHRfLT5hZGRGYWlsdXJlKF9fRklMRV9fLCBfX0xJTkVfXywgI2V4cHIp
CiAKIC8vLyBcYnJpZWYgQXNzZXJ0cyB0aGF0IHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgdHJ1ZS4K
LS8vLyBUaGUgcHJlZGljYXRlIG1heSBkbyBvdGhlciBhc3NlcnRpb25zIGFuZCBiZSBhIG1lbWJl
ciBmdW5jdGlvbiBvZiB0aGUgZml4dHVyZS4KLSNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
IGV4cHIgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgIEpzb25UZXN0OjpQcmVkaWNhdGVDb250ZXh0IF9taW5pdGVzdF9Db250ZXh0
ID0geyAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgIHJlc3VsdF8tPnByZWRpY2F0ZUlkXywg
X19GSUxFX18sIF9fTElORV9fLCAjZXhwciB9OyAgICAgICAgICAgIFwKLSAgICAgIHJlc3VsdF8t
PnByZWRpY2F0ZVN0YWNrVGFpbF8tPm5leHRfID0gJl9taW5pdGVzdF9Db250ZXh0OyAgICAgICAg
IFwKLSAgICAgIHJlc3VsdF8tPnByZWRpY2F0ZUlkXyArPSAxOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHJlc3VsdF8tPnByZWRpY2F0ZVN0YWNrVGFpbF8g
PSAmX21pbml0ZXN0X0NvbnRleHQ7ICAgICAgICAgICAgICAgIFwKLSAgICAgIChleHByKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgIHJlc3VsdF8tPnBvcFByZWRpY2F0ZUNvbnRleHQoKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICpyZXN1bHRfCisvLy8gVGhl
IHByZWRpY2F0ZSBtYXkgZG8gb3RoZXIgYXNzZXJ0aW9ucyBhbmQgYmUgYSBtZW1iZXIgZnVuY3Rp
b24gb2YgdGhlCisvLy8gZml4dHVyZS4KKyNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUX1BSRUQoZXhw
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIEpzb25UZXN0OjpQcmVkaWNhdGVDb250ZXh0IF9taW5pdGVz
dF9Db250ZXh0ID0geyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmVzdWx0
Xy0+cHJlZGljYXRlSWRfLCBfX0ZJTEVfXywgX19MSU5FX18sICNleHByLCBOVUxMLCBOVUxMfTsg
ICAgICAgICBcCisgICAgcmVzdWx0Xy0+cHJlZGljYXRlU3RhY2tUYWlsXy0+bmV4dF8gPSAmX21p
bml0ZXN0X0NvbnRleHQ7ICAgICAgICAgICAgICAgICAgXAorICAgIHJlc3VsdF8tPnByZWRpY2F0
ZUlkXyArPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICByZXN1bHRfLT5wcmVkaWNhdGVTdGFja1RhaWxfID0gJl9taW5pdGVzdF9Db250ZXh0
OyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGV4cHIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IHJlc3VsdF8tPnBvcFByZWRpY2F0ZUNvbnRleHQoKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgfQogCiAvLy8gXGJyaWVmIEFzc2VydHMgdGhhdCB0d28g
dmFsdWVzIGFyZSBlcXVhbHMuCi0jZGVmaW5lIEpTT05URVNUX0FTU0VSVF9FUVVBTCggZXhwZWN0
ZWQsIGFjdHVhbCApICAgICAgICAgIFwKLSAgIEpzb25UZXN0OjpjaGVja0VxdWFsKCAqcmVzdWx0
XywgZXhwZWN0ZWQsIGFjdHVhbCwgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgIF9f
RklMRV9fLCBfX0xJTkVfXywgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgI2V4cGVjdGVkICIgPT0gIiAjYWN0dWFsICkKKyNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGV4cGVjdGVkLCBhY3R1YWwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
IEpzb25UZXN0OjpjaGVja0VxdWFsKCpyZXN1bHRfLCBleHBlY3RlZCwgYWN0dWFsLCBfX0ZJTEVf
XywgX19MSU5FX18sICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAjZXhwZWN0ZWQg
IiA9PSAiICNhY3R1YWwpCiAKIC8vLyBcYnJpZWYgQXNzZXJ0cyB0aGF0IHR3byB2YWx1ZXMgYXJl
IGVxdWFscy4KLSNkZWZpbmUgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggZXhwZWN0ZWQs
IGFjdHVhbCApIFwKLSAgIEpzb25UZXN0OjpjaGVja1N0cmluZ0VxdWFsKCAqcmVzdWx0XywgICAg
ICAgICAgICAgICAgIFwKLSAgICAgIHN0ZDo6c3RyaW5nKGV4cGVjdGVkKSwgc3RkOjpzdHJpbmco
YWN0dWFsKSwgICAgICAgIFwKLSAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICNleHBlY3RlZCAiID09ICIgI2FjdHVhbCApCisj
ZGVmaW5lIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIGFjdHVhbCkgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICBKc29uVGVzdDo6Y2hlY2tTdHJpbmdFcXVhbCgqcmVz
dWx0XywgSnNvblRlc3Q6OlRvSnNvblN0cmluZyhleHBlY3RlZCksICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSnNvblRlc3Q6OlRvSnNvblN0cmluZyhhY3R1YWwpLCBfX0ZJ
TEVfXywgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9fLCAj
ZXhwZWN0ZWQgIiA9PSAiICNhY3R1YWwpCisKKy8vLyBcYnJpZWYgQXNzZXJ0cyB0aGF0IGEgZ2l2
ZW4gZXhwcmVzc2lvbiB0aHJvd3MgYW4gZXhjZXB0aW9uCisjZGVmaW5lIEpTT05URVNUX0FTU0VS
VF9USFJPV1MoZXhwcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBib29sIF90aHJldyA9IGZhbHNlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
dHJ5IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgZXhwcjsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IGNhdGNo
ICguLi4pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICBfdGhyZXcgPSB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBpZiAoIV90aHJldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICByZXN1bHRfLT5hZGRGYWlsdXJl
KF9fRklMRV9fLCBfX0xJTkVfXywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93bjogIiAj
ZXhwcik7ICAgICAgICAgICAgICAgIFwKKyAgfQogCiAvLy8gXGJyaWVmIEJlZ2luIGEgZml4dHVy
ZSB0ZXN0IGNhc2UuCi0jZGVmaW5lIEpTT05URVNUX0ZJWFRVUkUoIEZpeHR1cmVUeXBlLCBuYW1l
ICkgICAgICAgICAgICAgICAgICBcCi0gICBjbGFzcyBUZXN0IyNGaXh0dXJlVHlwZSMjbmFtZSA6
IHB1YmxpYyBGaXh0dXJlVHlwZSAgICAgICAgICBcCi0gICB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBwdWJsaWM6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBz
dGF0aWMgSnNvblRlc3Q6OlRlc3RDYXNlICpmYWN0b3J5KCkgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgICByZXR1cm4gbmV3IFRlc3QjI0ZpeHR1cmVUeXBlIyNuYW1lKCk7
ICAgICAgICAgICAgICAgICBcCi0gICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBwdWJsaWM6IC8qIG92ZXJpZGRlbiBmcm9t
IFRlc3RDYXNlICovICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIgKnRlc3ROYW1lKCkgY29uc3QgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICByZXR1cm4gI0ZpeHR1cmVUeXBlICIvIiAjbmFtZTsgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICB2aXJ0dWFsIHZvaWQgcnVuVGVzdENhc2UoKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICB2b2lkIFRlc3Qj
I0ZpeHR1cmVUeXBlIyNuYW1lOjpydW5UZXN0Q2FzZSgpCi0KLSNkZWZpbmUgSlNPTlRFU1RfRklY
VFVSRV9GQUNUT1JZKCBGaXh0dXJlVHlwZSwgbmFtZSApIFwKLSAgICZUZXN0IyNGaXh0dXJlVHlw
ZSMjbmFtZTo6ZmFjdG9yeQotCi0jZGVmaW5lIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1
bm5lciwgRml4dHVyZVR5cGUsIG5hbWUgKSBcCi0gICAocnVubmVyKS5hZGQoIEpTT05URVNUX0ZJ
WFRVUkVfRkFDVE9SWSggRml4dHVyZVR5cGUsIG5hbWUgKSApCisjZGVmaW5lIEpTT05URVNUX0ZJ
WFRVUkUoRml4dHVyZVR5cGUsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICBjbGFzcyBUZXN0IyNGaXh0dXJlVHlwZSMjbmFtZSA6IHB1YmxpYyBGaXh0dXJlVHlw
ZSB7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgcHVibGljOiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgc3RhdGljIEpzb25UZXN0OjpUZXN0Q2FzZSogZmFjdG9yeSgpIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgcmV0dXJuIG5ldyBUZXN0IyNGaXh0dXJlVHlw
ZSMjbmFtZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBwdWJsaWM6IC8qIG92
ZXJyaWRkZW4gZnJvbSBUZXN0Q2FzZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBjb25zdCBjaGFyKiB0ZXN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICNGaXh0dXJlVHlwZSAiLyIgI25hbWU7IH0gICBcCisgICAgdm9pZCBydW5UZXN0Q2FzZSgp
IG92ZXJyaWRlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZv
aWQgVGVzdCMjRml4dHVyZVR5cGUjI25hbWU6OnJ1blRlc3RDYXNlKCkKKworI2RlZmluZSBKU09O
VEVTVF9GSVhUVVJFX0ZBQ1RPUlkoRml4dHVyZVR5cGUsIG5hbWUpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgJlRlc3QjI0ZpeHR1cmVUeXBlIyNuYW1lOjpmYWN0b3J5CisKKyNkZWZp
bmUgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIEZpeHR1cmVUeXBlLCBuYW1lKSAg
ICAgICAgICAgICAgICAgICBcCisgIChydW5uZXIpLmFkZChKU09OVEVTVF9GSVhUVVJFX0ZBQ1RP
UlkoRml4dHVyZVR5cGUsIG5hbWUpKQogCiAjZW5kaWYgLy8gaWZuZGVmIEpTT05URVNUX0hfSU5D
TFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vbWFpbi5jcHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3NyYy90ZXN0X2xpYl9qc29uL21haW4uY3BwCmluZGV4IGM2YWI2MTk4ODJkZWNiYjRkMzBjMTRi
Njc4ZGFhODkxYWVkMzJiMzMuLmZjZGE2MGU4MWM0Njg4NWUwN2ZmNDg3NzUxMzVjZWE0MjZiMjA5
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vbWFpbi5jcHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS9zcmMvdGVzdF9saWJfanNvbi9tYWluLmNwcApAQCAtMSwxMSArMSwyNiBAQAotLy8gQ29weXJp
Z2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAg
QmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCiAvLyBEaXN0cmlidXRl
ZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAogLy8g
cmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KIC8vIFNlZSBmaWxlIExJQ0VOU0UgZm9y
IGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNF
CiAKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisj
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0OTk2
KQorI2VuZGlmCisKKyNpbmNsdWRlICJmdXp6LmgiCisjaW5jbHVkZSAianNvbnRlc3QuaCIKKyNp
bmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGlvbWFuaXA+Cisj
aW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8anNvbi9jb25maWcuaD4KICNpbmNsdWRlIDxq
c29uL2pzb24uaD4KLSNpbmNsdWRlICJqc29udGVzdC5oIgorI2luY2x1ZGUgPGxpbWl0cz4KKyNp
bmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPHN0cmluZz4KIAogLy8gTWFrZSBudW1lcmljIGxp
bWl0cyBtb3JlIGNvbnZlbmllbnQgdG8gdGFsayBhYm91dC4KIC8vIEFzc3VtZXMgaW50IHR5cGUg
aW4gMzIgYml0cy4KQEAgLTE2LDEyICszMSwxMSBAQAogI2RlZmluZSBraW50NjRtaW4gSnNvbjo6
VmFsdWU6Om1pbkludDY0CiAjZGVmaW5lIGt1aW50NjRtYXggSnNvbjo6VmFsdWU6Om1heFVJbnQ2
NAogCi1zdGF0aWMgY29uc3QgZG91YmxlIGtkaW50NjRtYXggPSBkb3VibGUoa2ludDY0bWF4KTsK
LXN0YXRpYyBjb25zdCBmbG9hdCBrZmludDY0bWF4ID0gZmxvYXQoa2ludDY0bWF4KTsKKy8vIHN0
YXRpYyBjb25zdCBkb3VibGUga2RpbnQ2NG1heCA9IGRvdWJsZShraW50NjRtYXgpOworLy8gc3Rh
dGljIGNvbnN0IGZsb2F0IGtmaW50NjRtYXggPSBmbG9hdChraW50NjRtYXgpOwogc3RhdGljIGNv
bnN0IGZsb2F0IGtmaW50MzJtYXggPSBmbG9hdChraW50MzJtYXgpOwogc3RhdGljIGNvbnN0IGZs
b2F0IGtmdWludDMybWF4ID0gZmxvYXQoa3VpbnQzMm1heCk7CiAKLQogLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KIC8vIEpzb24gTGlicmFyeSB0ZXN0IGNhc2VzCkBAIC0yOSwxMzk2ICs0Mywy
NjE1IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBrZnVpbnQzMm1heCA9IGZsb2F0KGt1aW50MzJtYXgp
OwogLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAKICNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKLXN0YXRpYyBpbmxpbmUgZG91YmxlIHVpbnQ2NFRvRG91YmxlKCBKc29uOjpVSW50
NjQgdmFsdWUgKQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KCB2YWx1ZSApOwor
c3RhdGljIGlubGluZSBkb3VibGUgdWludDY0VG9Eb3VibGUoSnNvbjo6VUludDY0IHZhbHVlKSB7
CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKIH0KLSNlbHNlIC8vIGlmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQotc3RhdGljIGlubGluZSBk
b3VibGUgdWludDY0VG9Eb3VibGUoIEpzb246OlVJbnQ2NCB2YWx1ZSApCi17Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4oIEpzb246OkludDY0KHZhbHVlLzIpICkgKiAyLjAgKyBKc29u
OjpJbnQ2NCh2YWx1ZSAmIDEpOworI2Vsc2UgIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0
X0RPVUJMRV9DT05WRVJTSU9OKQorc3RhdGljIGlubGluZSBkb3VibGUgdWludDY0VG9Eb3VibGUo
SnNvbjo6VUludDY0IHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KEpzb246
OkludDY0KHZhbHVlIC8gMikpICogMi4wICsKKyAgICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4o
SnNvbjo6SW50NjQodmFsdWUgJiAxKSk7CiB9CiAjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9V
U0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCiAKLXN0cnVjdCBWYWx1ZVRlc3QgOiBKc29uVGVz
dDo6VGVzdENhc2UKLXsKLSAgIEpzb246OlZhbHVlIG51bGxfOwotICAgSnNvbjo6VmFsdWUgZW1w
dHlBcnJheV87Ci0gICBKc29uOjpWYWx1ZSBlbXB0eU9iamVjdF87Ci0gICBKc29uOjpWYWx1ZSBp
bnRlZ2VyXzsKLSAgIEpzb246OlZhbHVlIHVuc2lnbmVkSW50ZWdlcl87Ci0gICBKc29uOjpWYWx1
ZSBzbWFsbFVuc2lnbmVkSW50ZWdlcl87Ci0gICBKc29uOjpWYWx1ZSByZWFsXzsKLSAgIEpzb246
OlZhbHVlIGZsb2F0XzsKLSAgIEpzb246OlZhbHVlIGFycmF5MV87Ci0gICBKc29uOjpWYWx1ZSBv
YmplY3QxXzsKLSAgIEpzb246OlZhbHVlIGVtcHR5U3RyaW5nXzsKLSAgIEpzb246OlZhbHVlIHN0
cmluZzFfOwotICAgSnNvbjo6VmFsdWUgc3RyaW5nXzsKLSAgIEpzb246OlZhbHVlIHRydWVfOwot
ICAgSnNvbjo6VmFsdWUgZmFsc2VfOwotCi0KLSAgIFZhbHVlVGVzdCgpCi0gICAgICA6IGVtcHR5
QXJyYXlfKCBKc29uOjphcnJheVZhbHVlICkKLSAgICAgICwgZW1wdHlPYmplY3RfKCBKc29uOjpv
YmplY3RWYWx1ZSApCi0gICAgICAsIGludGVnZXJfKCAxMjM0NTY3ODkgKQotICAgICAgLCBzbWFs
bFVuc2lnbmVkSW50ZWdlcl8oIEpzb246OlZhbHVlOjpVSW50KCBKc29uOjpWYWx1ZTo6bWF4SW50
ICkgKQotICAgICAgLCB1bnNpZ25lZEludGVnZXJfKCAzNDU2Nzg5MHUgKQotICAgICAgLCByZWFs
XyggMTIzNC41Njc4OSApCi0gICAgICAsIGZsb2F0XyggMC4wMDM5MDYyNWYgKQotICAgICAgLCBl
bXB0eVN0cmluZ18oICIiICkKLSAgICAgICwgc3RyaW5nMV8oICJhIiApCi0gICAgICAsIHN0cmlu
Z18oICJzb21ldGV4dCB3aXRoIHNwYWNlIiApCi0gICAgICAsIHRydWVfKCB0cnVlICkKLSAgICAg
ICwgZmFsc2VfKCBmYWxzZSApCi0gICB7Ci0gICAgICBhcnJheTFfLmFwcGVuZCggMTIzNCApOwot
ICAgICAgb2JqZWN0MV9bImlkIl0gPSAxMjM0OwotICAgfQotCi0gICBzdHJ1Y3QgSXNDaGVjawot
ICAgewotICAgICAgLy8vIEluaXRpYWxpemUgYWxsIGNoZWNrcyB0byBcYyBmYWxzZSBieSBkZWZh
dWx0LgotICAgICAgSXNDaGVjaygpOwotCi0gICAgICBib29sIGlzT2JqZWN0XzsKLSAgICAgIGJv
b2wgaXNBcnJheV87Ci0gICAgICBib29sIGlzQm9vbF87Ci0gICAgICBib29sIGlzU3RyaW5nXzsK
LSAgICAgIGJvb2wgaXNOdWxsXzsKLQotICAgICAgYm9vbCBpc0ludF87Ci0gICAgICBib29sIGlz
SW50NjRfOwotICAgICAgYm9vbCBpc1VJbnRfOwotICAgICAgYm9vbCBpc1VJbnQ2NF87Ci0gICAg
ICBib29sIGlzSW50ZWdyYWxfOwotICAgICAgYm9vbCBpc0RvdWJsZV87Ci0gICAgICBib29sIGlz
TnVtZXJpY187Ci0gICB9OwotCi0gICB2b2lkIGNoZWNrQ29uc3RNZW1iZXJDb3VudCggY29uc3Qg
SnNvbjo6VmFsdWUgJnZhbHVlLCB1bnNpZ25lZCBpbnQgZXhwZWN0ZWRDb3VudCApOwotCi0gICB2
b2lkIGNoZWNrTWVtYmVyQ291bnQoIEpzb246OlZhbHVlICZ2YWx1ZSwgdW5zaWduZWQgaW50IGV4
cGVjdGVkQ291bnQgKTsKLQotICAgdm9pZCBjaGVja0lzKCBjb25zdCBKc29uOjpWYWx1ZSAmdmFs
dWUsIGNvbnN0IElzQ2hlY2sgJmNoZWNrICk7Ci0KLSAgIHZvaWQgY2hlY2tJc0xlc3MoIGNvbnN0
IEpzb246OlZhbHVlICZ4LCBjb25zdCBKc29uOjpWYWx1ZSAmeSApOwotCi0gICB2b2lkIGNoZWNr
SXNFcXVhbCggY29uc3QgSnNvbjo6VmFsdWUgJngsIGNvbnN0IEpzb246OlZhbHVlICZ5ICk7Ci0K
LSAgIC8vLyBOb3JtYWxpemUgdGhlIHJlcHJlc2VudGF0aW9uIG9mIGZsb2F0aW5nLXBvaW50IG51
bWJlciBieSBzdHJpcHBlZCBsZWFkaW5nIDAgaW4gZXhwb25lbnQuCi0gICBzdGF0aWMgc3RkOjpz
dHJpbmcgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0ciggY29uc3Qgc3RkOjpzdHJpbmcgJnMgKTsK
K3N0cnVjdCBWYWx1ZVRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2UgeworICBKc29uOjpWYWx1ZSBu
dWxsXzsKKyAgSnNvbjo6VmFsdWUgZW1wdHlBcnJheV87CisgIEpzb246OlZhbHVlIGVtcHR5T2Jq
ZWN0XzsKKyAgSnNvbjo6VmFsdWUgaW50ZWdlcl87CisgIEpzb246OlZhbHVlIHVuc2lnbmVkSW50
ZWdlcl87CisgIEpzb246OlZhbHVlIHNtYWxsVW5zaWduZWRJbnRlZ2VyXzsKKyAgSnNvbjo6VmFs
dWUgcmVhbF87CisgIEpzb246OlZhbHVlIGZsb2F0XzsKKyAgSnNvbjo6VmFsdWUgYXJyYXkxXzsK
KyAgSnNvbjo6VmFsdWUgb2JqZWN0MV87CisgIEpzb246OlZhbHVlIGVtcHR5U3RyaW5nXzsKKyAg
SnNvbjo6VmFsdWUgc3RyaW5nMV87CisgIEpzb246OlZhbHVlIHN0cmluZ187CisgIEpzb246OlZh
bHVlIHRydWVfOworICBKc29uOjpWYWx1ZSBmYWxzZV87CisKKyAgVmFsdWVUZXN0KCkKKyAgICAg
IDogZW1wdHlBcnJheV8oSnNvbjo6YXJyYXlWYWx1ZSksIGVtcHR5T2JqZWN0XyhKc29uOjpvYmpl
Y3RWYWx1ZSksCisgICAgICAgIGludGVnZXJfKDEyMzQ1Njc4OSksIHVuc2lnbmVkSW50ZWdlcl8o
MzQ1Njc4OTB1KSwKKyAgICAgICAgc21hbGxVbnNpZ25lZEludGVnZXJfKEpzb246OlZhbHVlOjpV
SW50KEpzb246OlZhbHVlOjptYXhJbnQpKSwKKyAgICAgICAgcmVhbF8oMTIzNC41Njc4OSksIGZs
b2F0XygwLjAwMzkwNjI1ZiksIGVtcHR5U3RyaW5nXygiIiksIHN0cmluZzFfKCJhIiksCisgICAg
ICAgIHN0cmluZ18oInNvbWV0ZXh0IHdpdGggc3BhY2UiKSwgdHJ1ZV8odHJ1ZSksIGZhbHNlXyhm
YWxzZSkgeworICAgIGFycmF5MV8uYXBwZW5kKDEyMzQpOworICAgIG9iamVjdDFfWyJpZCJdID0g
MTIzNDsKKyAgfQorCisgIHN0cnVjdCBJc0NoZWNrIHsKKyAgICAvLy8gSW5pdGlhbGl6ZSBhbGwg
Y2hlY2tzIHRvIFxjIGZhbHNlIGJ5IGRlZmF1bHQuCisgICAgSXNDaGVjaygpOworCisgICAgYm9v
bCBpc09iamVjdF97ZmFsc2V9OworICAgIGJvb2wgaXNBcnJheV97ZmFsc2V9OworICAgIGJvb2wg
aXNCb29sX3tmYWxzZX07CisgICAgYm9vbCBpc1N0cmluZ197ZmFsc2V9OworICAgIGJvb2wgaXNO
dWxsX3tmYWxzZX07CisKKyAgICBib29sIGlzSW50X3tmYWxzZX07CisgICAgYm9vbCBpc0ludDY0
X3tmYWxzZX07CisgICAgYm9vbCBpc1VJbnRfe2ZhbHNlfTsKKyAgICBib29sIGlzVUludDY0X3tm
YWxzZX07CisgICAgYm9vbCBpc0ludGVncmFsX3tmYWxzZX07CisgICAgYm9vbCBpc0RvdWJsZV97
ZmFsc2V9OworICAgIGJvb2wgaXNOdW1lcmljX3tmYWxzZX07CisgIH07CisKKyAgdm9pZCBjaGVj
a0NvbnN0TWVtYmVyQ291bnQoY29uc3QgSnNvbjo6VmFsdWUmIHZhbHVlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXhwZWN0ZWRDb3VudCk7CisKKyAgdm9pZCBj
aGVja01lbWJlckNvdW50KEpzb246OlZhbHVlJiB2YWx1ZSwgdW5zaWduZWQgaW50IGV4cGVjdGVk
Q291bnQpOworCisgIHZvaWQgY2hlY2tJcyhjb25zdCBKc29uOjpWYWx1ZSYgdmFsdWUsIGNvbnN0
IElzQ2hlY2smIGNoZWNrKTsKKworICB2b2lkIGNoZWNrSXNMZXNzKGNvbnN0IEpzb246OlZhbHVl
JiB4LCBjb25zdCBKc29uOjpWYWx1ZSYgeSk7CisKKyAgdm9pZCBjaGVja0lzRXF1YWwoY29uc3Qg
SnNvbjo6VmFsdWUmIHgsIGNvbnN0IEpzb246OlZhbHVlJiB5KTsKKworICAvLy8gTm9ybWFsaXpl
IHRoZSByZXByZXNlbnRhdGlvbiBvZiBmbG9hdGluZy1wb2ludCBudW1iZXIgYnkgc3RyaXBwZWQg
bGVhZGluZworICAvLy8gMCBpbiBleHBvbmVudC4KKyAgc3RhdGljIEpzb246OlN0cmluZyBub3Jt
YWxpemVGbG9hdGluZ1BvaW50U3RyKGNvbnN0IEpzb246OlN0cmluZyYgcyk7CiB9OwogCi0KLXN0
ZDo6c3RyaW5nIAotVmFsdWVUZXN0Ojpub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCBjb25zdCBz
dGQ6OnN0cmluZyAmcyApCi17Ci0gICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpbmRleCA9IHMu
ZmluZF9sYXN0X29mKCAiZUUiICk7Ci0gICAgaWYgKCBpbmRleCAhPSBzdGQ6OnN0cmluZzo6bnBv
cyApCitKc29uOjpTdHJpbmcgVmFsdWVUZXN0Ojpub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKGNv
bnN0IEpzb246OlN0cmluZyYgcykgeworICBKc29uOjpTdHJpbmc6OnNpemVfdHlwZSBpbmRleCA9
IHMuZmluZF9sYXN0X29mKCJlRSIpOworICBpZiAoaW5kZXggIT0gSnNvbjo6U3RyaW5nOjpucG9z
KSB7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgaGFzU2lnbiA9CisgICAgICAgIChzW2lu
ZGV4ICsgMV0gPT0gJysnIHx8IHNbaW5kZXggKyAxXSA9PSAnLScpID8gMSA6IDA7CisgICAgSnNv
bjo6U3RyaW5nOjpzaXplX3R5cGUgZXhwb25lbnRTdGFydEluZGV4ID0gaW5kZXggKyAxICsgaGFz
U2lnbjsKKyAgICBKc29uOjpTdHJpbmcgbm9ybWFsaXplZCA9IHMuc3Vic3RyKDAsIGV4cG9uZW50
U3RhcnRJbmRleCk7CisgICAgSnNvbjo6U3RyaW5nOjpzaXplX3R5cGUgaW5kZXhEaWdpdCA9Cisg
ICAgICAgIHMuZmluZF9maXJzdF9ub3Rfb2YoJzAnLCBleHBvbmVudFN0YXJ0SW5kZXgpOworICAg
IEpzb246OlN0cmluZyBleHBvbmVudCA9ICIwIjsKKyAgICBpZiAoaW5kZXhEaWdpdCAhPSBKc29u
OjpTdHJpbmc6Om5wb3MpIC8vIFRoZXJlIGlzIGFuIGV4cG9uZW50IGRpZmZlcmVudAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSAwCiAgICAgewotICAg
ICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGhhc1NpZ24gPSAoc1tpbmRleCsxXSA9PSAnKycg
fHwgc1tpbmRleCsxXSA9PSAnLScpID8gMSA6IDA7Ci0gICAgICAgIHN0ZDo6c3RyaW5nOjpzaXpl
X3R5cGUgZXhwb25lbnRTdGFydEluZGV4ID0gaW5kZXggKyAxICsgaGFzU2lnbjsKLSAgICAgICAg
c3RkOjpzdHJpbmcgbm9ybWFsaXplZCA9IHMuc3Vic3RyKCAwLCBleHBvbmVudFN0YXJ0SW5kZXgg
KTsKLSAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpbmRleERpZ2l0ID0gcy5maW5kX2Zp
cnN0X25vdF9vZiggJzAnLCBleHBvbmVudFN0YXJ0SW5kZXggKTsKLSAgICAgICAgc3RkOjpzdHJp
bmcgZXhwb25lbnQgPSAiMCI7Ci0gICAgICAgIGlmICggaW5kZXhEaWdpdCAhPSBzdGQ6OnN0cmlu
Zzo6bnBvcyApIC8vIFRoZXJlIGlzIGFuIGV4cG9uZW50IGRpZmZlcmVudCBmcm9tIDAKLSAgICAg
ICAgewotICAgICAgICAgICAgZXhwb25lbnQgPSBzLnN1YnN0ciggaW5kZXhEaWdpdCApOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBub3JtYWxpemVkICsgZXhwb25lbnQ7CisgICAgICBleHBv
bmVudCA9IHMuc3Vic3RyKGluZGV4RGlnaXQpOwogICAgIH0KLSAgICByZXR1cm4gczsKKyAgICBy
ZXR1cm4gbm9ybWFsaXplZCArIGV4cG9uZW50OworICB9CisgIHJldHVybiBzOwogfQogCitKU09O
VEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY2hlY2tOb3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKSB7
CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAuMCIsIG5vcm1hbGl6ZUZsb2F0aW5n
UG9pbnRTdHIoIjAuMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMGUwIiwg
bm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMGUwIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKCIxMjM0LjAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0LjAiKSk7
CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEyMzQuMGUwIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0LjBlMCIp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNC4wZSswIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0LjBl
KzAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEyMzRlLTEiLCBub3JtYWxp
emVGbG9hdGluZ1BvaW50U3RyKCIxMjM0ZS0xIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKCIxMjM0ZTEwIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNGUxMCIpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNGUxMCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIzNGUwMTAiKSk7
CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEyMzRlKzEwIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0ZSswMTAi
KSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEyMzRlLTEwIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0ZS0w
MTAiKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEyMzRlKzEwMCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cigiMTIz
NGUrMTAwIikpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMjM0ZS0xMDAiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIo
IjEyMzRlLTEwMCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTIzNGUrMSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0
cigiMTIzNGUrMDAxIikpOworfQogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIGNoZWNr
Tm9ybWFsaXplRmxvYXRpbmdQb2ludFN0ciApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCggIjAuMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjAuMCIpICk7Ci0gICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjBlMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9p
bnRTdHIoIjBlMCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzQu
MCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzQuMCIpICk7Ci0gICAgSlNPTlRFU1Rf
QVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzQuMGUwIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0
cigiMTIzNC4wZTAiKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoICIxMjM0
LjBlKzAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0LjBlKzAiKSApOwotICAgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoICIxMjM0ZS0xIiwgbm9ybWFsaXplRmxvYXRpbmdQ
b2ludFN0cigiMTIzNGUtMSIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgg
IjEyMzRlMTAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0ZTEwIikgKTsKLSAgICBK
U09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCAiMTIzNGUxMCIsIG5vcm1hbGl6ZUZsb2F0aW5n
UG9pbnRTdHIoIjEyMzRlMDEwIikgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCAiMTIzNGUrMTAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIxMjM0ZSswMTAiKSApOwot
ICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoICIxMjM0ZS0xMCIsIG5vcm1hbGl6ZUZs
b2F0aW5nUG9pbnRTdHIoIjEyMzRlLTAxMCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCggIjEyMzRlKzEwMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlKzEw
MCIpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCggIjEyMzRlLTEwMCIsIG5v
cm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoIjEyMzRlLTEwMCIpICk7Ci0gICAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCggIjEyMzRlKzEiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKCIx
MjM0ZSswMDEiKSApOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIG1lbWJlckNvdW50KSB7
CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291bnQoZW1wdHlBcnJheV8sIDAp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1iZXJDb3VudChlbXB0eU9iamVjdF8s
IDApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1iZXJDb3VudChhcnJheTFfLCAx
KSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291bnQob2JqZWN0MV8sIDEp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tNZW1iZXJDb3VudChudWxsXywgMCkpOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNvdW50KGludGVnZXJfLCAwKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291bnQodW5zaWduZWRJbnRlZ2VyXywg
MCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNvdW50KHNtYWxsVW5zaWdu
ZWRJbnRlZ2VyXywgMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNvdW50
KHJlYWxfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291bnQoZW1w
dHlTdHJpbmdfLCAwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrTWVtYmVyQ291bnQo
c3RyaW5nXywgMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja01lbWJlckNvdW50KHRy
dWVfLCAwKSk7CiB9CiAKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBvYmplY3RzKSB7Cisg
IC8vIFR5cGVzCisgIElzQ2hlY2sgY2hlY2tzOworICBjaGVja3MuaXNPYmplY3RfID0gdHJ1ZTsK
KyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyhlbXB0eU9iamVjdF8sIGNoZWNrcykpOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKG9iamVjdDFfLCBjaGVja3MpKTsKKworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6b2JqZWN0VmFsdWUsIGVtcHR5T2JqZWN0Xy50eXBl
KCkpOworCisgIC8vIEVtcHR5IG9iamVjdCBva2F5CisgIEpTT05URVNUX0FTU0VSVChlbXB0eU9i
amVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworCisgIC8vIE5vbi1lbXB0
eSBvYmplY3Qgbm90IG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKCFvYmplY3QxXy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisKKyAgLy8gQWx3YXlzIG9rYXkKKyAgSlNPTlRFU1Rf
QVNTRVJUKGVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsK
KworICAvLyBOZXZlciBva2F5CisgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29u
dmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghZW1wdHlP
YmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQoIWVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFs
dWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpz
b246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5T2JqZWN0Xy5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKworICAvLyBBY2Nlc3MgdGhyb3VnaCBj
b25zdCByZWZlcmVuY2UKKyAgY29uc3QgSnNvbjo6VmFsdWUmIGNvbnN0T2JqZWN0ID0gb2JqZWN0
MV87CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBjb25zdE9i
amVjdFsiaWQiXSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgpLCBjb25z
dE9iamVjdFsidW5rbm93biBpZCJdKTsKKworICAvLyBBY2Nlc3MgdGhyb3VnaCBmaW5kKCkKKyAg
Y29uc3QgY2hhciBpZEtleVtdID0gImlkIjsKKyAgY29uc3QgSnNvbjo6VmFsdWUqIGZvdW5kSWQg
PSBvYmplY3QxXy5maW5kKGlkS2V5LCBpZEtleSArIHN0cmxlbihpZEtleSkpOworICBKU09OVEVT
VF9BU1NFUlQoZm91bmRJZCAhPSBudWxscHRyKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpz
b246OlZhbHVlKDEyMzQpLCAqZm91bmRJZCk7CisKKyAgY29uc3QgY2hhciB1bmtub3duSWRLZXlb
XSA9ICJ1bmtub3duIGlkIjsKKyAgY29uc3QgSnNvbjo6VmFsdWUqIGZvdW5kVW5rbm93bklkID0K
KyAgICAgIG9iamVjdDFfLmZpbmQodW5rbm93bklkS2V5LCB1bmtub3duSWRLZXkgKyBzdHJsZW4o
dW5rbm93bklkS2V5KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChudWxscHRyLCBmb3VuZFVu
a25vd25JZCk7CisKKyAgLy8gQWNjZXNzIHRocm91Z2ggZGVtYW5kKCkKKyAgY29uc3QgY2hhciB5
ZXRBbm90aGVySWRLZXlbXSA9ICJ5ZXQgYW5vdGhlciBpZCI7CisgIGNvbnN0IEpzb246OlZhbHVl
KiBmb3VuZFlldEFub3RoZXJJZCA9CisgICAgICBvYmplY3QxXy5maW5kKHlldEFub3RoZXJJZEtl
eSwgeWV0QW5vdGhlcklkS2V5ICsgc3RybGVuKHlldEFub3RoZXJJZEtleSkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwobnVsbHB0ciwgZm91bmRZZXRBbm90aGVySWQpOworICBKc29uOjpWYWx1
ZSogZGVtYW5kZWRZZXRBbm90aGVySWQgPSBvYmplY3QxXy5kZW1hbmQoCisgICAgICB5ZXRBbm90
aGVySWRLZXksIHlldEFub3RoZXJJZEtleSArIHN0cmxlbih5ZXRBbm90aGVySWRLZXkpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUKGRlbWFuZGVkWWV0QW5vdGhlcklkICE9IG51bGxwdHIpOworICAqZGVt
YW5kZWRZZXRBbm90aGVySWQgPSAiYmF6IjsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6VmFsdWUoImJheiIpLCBvYmplY3QxX1sieWV0IGFub3RoZXIgaWQiXSk7CisKKyAgLy8gQWNj
ZXNzIHRocm91Z2ggbm9uLWNvbnN0IHJlZmVyZW5jZQorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
SnNvbjo6VmFsdWUoMTIzNCksIG9iamVjdDFfWyJpZCJdKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKEpzb246OlZhbHVlKCksIG9iamVjdDFfWyJ1bmtub3duIGlkIl0pOworCisgIG9iamVjdDFf
WyJzb21lIG90aGVyIGlkIl0gPSAiZm9vIjsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OlZhbHVlKCJmb28iKSwgb2JqZWN0MV9bInNvbWUgb3RoZXIgaWQiXSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChKc29uOjpWYWx1ZSgiZm9vIiksIG9iamVjdDFfWyJzb21lIG90aGVyIGlkIl0p
OworCisgIC8vIFJlbW92ZS4KKyAgSnNvbjo6VmFsdWUgZ290OworICBib29sIGRpZDsKKyAgZGlk
ID0gb2JqZWN0MV8ucmVtb3ZlTWVtYmVyKCJzb21lIG90aGVyIGlkIiwgJmdvdCk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgiZm9vIiksIGdvdCk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCBkaWQpOworICBnb3QgPSBKc29uOjpWYWx1ZSgiYmFyIik7CisgIGRp
ZCA9IG9iamVjdDFfLnJlbW92ZU1lbWJlcigic29tZSBvdGhlciBpZCIsICZnb3QpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoImJhciIpLCBnb3QpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoZmFsc2UsIGRpZCk7CisKKyAgb2JqZWN0MV9bInNvbWUgb3RoZXIgaWQiXSA9
ICJmb28iOworICBKc29uOjpWYWx1ZSogZ290UHRyID0gbnVsbHB0cjsKKyAgZGlkID0gb2JqZWN0
MV8ucmVtb3ZlTWVtYmVyKCJzb21lIG90aGVyIGlkIiwgZ290UHRyKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKG51bGxwdHIsIGdvdFB0cik7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVl
LCBkaWQpOworfQogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIG1lbWJlckNvdW50ICkK
LXsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50KGVtcHR5QXJyYXlf
LCAwKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrTWVtYmVyQ291bnQoZW1wdHlP
YmplY3RfLCAwKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrTWVtYmVyQ291bnQo
YXJyYXkxXywgMSkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50
KG9iamVjdDFfLCAxKSApOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrTWVtYmVyQ291
bnQobnVsbF8sIDApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tNZW1iZXJDb3Vu
dChpbnRlZ2VyXywgMCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNv
dW50KHVuc2lnbmVkSW50ZWdlcl8sIDApICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hl
Y2tNZW1iZXJDb3VudChzbWFsbFVuc2lnbmVkSW50ZWdlcl8sIDApICk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfUFJFRCggY2hlY2tNZW1iZXJDb3VudChyZWFsXywgMCkgKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50KGVtcHR5U3RyaW5nXywgMCkgKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKCBjaGVja01lbWJlckNvdW50KHN0cmluZ18sIDApICk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfUFJFRCggY2hlY2tNZW1iZXJDb3VudCh0cnVlXywgMCkgKTsKK0pTT05URVNU
X0ZJWFRVUkUoVmFsdWVUZXN0LCBhcnJheXMpIHsKKyAgY29uc3QgdW5zaWduZWQgaW50IGluZGV4
MCA9IDA7CisKKyAgLy8gVHlwZXMKKyAgSXNDaGVjayBjaGVja3M7CisgIGNoZWNrcy5pc0FycmF5
XyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMoZW1wdHlBcnJheV8sIGNo
ZWNrcykpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKGFycmF5MV8sIGNoZWNrcykp
OworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjphcnJheVZhbHVlLCBhcnJheTFfLnR5
cGUoKSk7CisKKyAgLy8gRW1wdHkgYXJyYXkgb2theQorICBKU09OVEVTVF9BU1NFUlQoZW1wdHlB
cnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworCisgIC8vIE5vbi1lbXB0
eSBhcnJheSBub3Qgb2theQorICBKU09OVEVTVF9BU1NFUlQoIWFycmF5MV8uaXNDb252ZXJ0aWJs
ZVRvKEpzb246Om51bGxWYWx1ZSkpOworCisgIC8vIEFsd2F5cyBva2F5CisgIEpTT05URVNUX0FT
U0VSVChlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworCisg
IC8vIE5ldmVyIG9rYXkKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5
Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFl
bXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpTT05URVNU
X0FTU0VSVCghZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjpib29s
ZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKworICAvLyBBY2Nlc3MgdGhyb3VnaCBjb25zdCByZWZl
cmVuY2UKKyAgY29uc3QgSnNvbjo6VmFsdWUmIGNvbnN0QXJyYXkgPSBhcnJheTFfOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCksIGNvbnN0QXJyYXlbaW5kZXgwXSk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgY29uc3RBcnJheVsw
XSk7CisKKyAgLy8gQWNjZXNzIHRocm91Z2ggbm9uLWNvbnN0IHJlZmVyZW5jZQorICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTIzNCksIGFycmF5MV9baW5kZXgwXSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgYXJyYXkxX1swXSk7CisKKyAg
YXJyYXkxX1syXSA9IEpzb246OlZhbHVlKDE3KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpz
b246OlZhbHVlKCksIGFycmF5MV9bMV0pOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
VmFsdWUoMTcpLCBhcnJheTFfWzJdKTsKKyAgSnNvbjo6VmFsdWUgZ290OworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwodHJ1ZSwgYXJyYXkxXy5yZW1vdmVJbmRleCgyLCAmZ290KSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxNyksIGdvdCk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChmYWxzZSwgYXJyYXkxXy5yZW1vdmVJbmRleCgyLCAmZ290KSk7IC8vIGdvbmUgbm93
Cit9CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgYXJyYXlJc3N1ZTI1MikgeworICBpbnQg
Y291bnQgPSA1OworICBKc29uOjpWYWx1ZSByb290OworICBKc29uOjpWYWx1ZSBpdGVtOworICBy
b290WyJhcnJheSJdID0gSnNvbjo6VmFsdWU6Om51bGxSZWY7CisgIGZvciAoaW50IGkgPSAwOyBp
IDwgY291bnQ7IGkrKykgeworICAgIGl0ZW1bImEiXSA9IGk7CisgICAgaXRlbVsiYiJdID0gaTsK
KyAgICByb290WyJhcnJheSJdW2ldID0gaXRlbTsKKyAgfQorICAvLyBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoNSwgcm9vdFsiYXJyYXkiXS5zaXplKCkpOwogfQogCitKU09OVEVTVF9GSVhUVVJFKFZh
bHVlVGVzdCwgbnVsbCkgeworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6bnVsbFZhbHVl
LCBudWxsXy50eXBlKCkpOworCisgIElzQ2hlY2sgY2hlY2tzOworICBjaGVja3MuaXNOdWxsXyA9
IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMobnVsbF8sIGNoZWNrcykpOwor
CisgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVl
KSk7CisgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFs
dWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpy
ZWFsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29u
Ojpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVU
byhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQobnVsbF8uaXNDb252ZXJ0
aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29u
dmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChKc29uOjpJbnQoMCksIG51bGxfLmFzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
SnNvbjo6TGFyZ2VzdEludCgwKSwgbnVsbF8uYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoSnNvbjo6VUludCgwKSwgbnVsbF8uYXNVSW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoSnNvbjo6TGFyZ2VzdFVJbnQoMCksIG51bGxfLmFzTGFyZ2VzdFVJbnQoKSk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIG51bGxfLmFzRG91YmxlKCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMC4wLCBudWxsXy5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKCIiLCBudWxsXy5hc1N0cmluZygpKTsKKworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6VmFsdWU6Om51bGwsIG51bGxfKTsKKworICAvLyBUZXN0IHVzaW5nIGEg
VmFsdWUgaW4gYSBib29sZWFuIGNvbnRleHQgKGZhbHNlIGlmZiBudWxsKQorICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwobnVsbF8sIGZhbHNlKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKG9iamVj
dDFfLCB0cnVlKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCFudWxsXywgdHJ1ZSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCghb2JqZWN0MV8sIGZhbHNlKTsKK30KKworSlNPTlRFU1RfRklY
VFVSRShWYWx1ZVRlc3QsIHN0cmluZ3MpIHsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OnN0cmluZ1ZhbHVlLCBzdHJpbmcxXy50eXBlKCkpOworCisgIElzQ2hlY2sgY2hlY2tzOworICBj
aGVja3MuaXNTdHJpbmdfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyhl
bXB0eVN0cmluZ18sIGNoZWNrcykpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHN0
cmluZ18sIGNoZWNrcykpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHN0cmluZzFf
LCBjaGVja3MpKTsKKworICAvLyBFbXB0eSBzdHJpbmcgb2theQorICBKU09OVEVTVF9BU1NFUlQo
ZW1wdHlTdHJpbmdfLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKworICAvLyBO
b24tZW1wdHkgc3RyaW5nIG5vdCBva2F5CisgIEpTT05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXND
b252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworCisgIC8vIEFsd2F5cyBva2F5CisgIEpT
T05URVNUX0FTU0VSVChzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUp
KTsKKworICAvLyBOZXZlciBva2F5CisgIEpTT05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXNDb252
ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghc3RyaW5n
MV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkp
OworCisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImEiLCBzdHJpbmcxXy5hc1N0cmlu
ZygpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiYSIsIHN0cmluZzFfLmFzQ1N0
cmluZygpKTsKK30KIAotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBvYmplY3RzICkKLXsK
LSAgIC8vIFR5cGVzCi0gICBJc0NoZWNrIGNoZWNrczsKLSAgIGNoZWNrcy5pc09iamVjdF8gPSB0
cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIGVtcHR5T2JqZWN0XywgY2hl
Y2tzICkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCBvYmplY3QxXywgY2hl
Y2tzICkgKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBib29scykgeworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6Ym9vbGVhblZhbHVlLCBmYWxzZV8udHlwZSgpKTsKKworICBJ
c0NoZWNrIGNoZWNrczsKKyAgY2hlY2tzLmlzQm9vbF8gPSB0cnVlOworICBKU09OVEVTVF9BU1NF
UlRfUFJFRChjaGVja0lzKGZhbHNlXywgY2hlY2tzKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVE
KGNoZWNrSXModHJ1ZV8sIGNoZWNrcykpOworCisgIC8vIEZhbHNlIG9rYXkKKyAgSlNPTlRFU1Rf
QVNTRVJUKGZhbHNlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisKKyAgLy8g
VHJ1ZSBub3Qgb2theQorICBKU09OVEVTVF9BU1NFUlQoIXRydWVfLmlzQ29udmVydGlibGVUbyhK
c29uOjpudWxsVmFsdWUpKTsKKworICAvLyBBbHdheXMgb2theQorICBKU09OVEVTVF9BU1NFUlQo
dHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VS
VCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7CisgIEpTT05URVNU
X0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsK
KworICAvLyBOZXZlciBva2F5CisgIEpTT05URVNUX0FTU0VSVCghdHJ1ZV8uaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF0cnVlXy5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
dHJ1ZSwgdHJ1ZV8uYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdHJ1ZV8u
YXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB0cnVlXy5hc0xhcmdlc3RJbnQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB0cnVlXy5hc1VJbnQoKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgxLCB0cnVlXy5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMS4wLCB0cnVlXy5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKDEuMCwgdHJ1ZV8uYXNGbG9hdCgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFs
c2UsIGZhbHNlXy5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCBmYWxzZV8u
YXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCBmYWxzZV8uYXNMYXJnZXN0SW50
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgZmFsc2VfLmFzVUludCgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDAsIGZhbHNlXy5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMC4wLCBmYWxzZV8uYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgwLjAsIGZhbHNlXy5hc0Zsb2F0KCkpOworfQogCi0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoSnNvbjo6b2JqZWN0VmFsdWUsIGVtcHR5T2JqZWN0Xy50eXBlKCkpOwotCi0gICAvLyBF
bXB0eSBvYmplY3Qgb2theQotICAgSlNPTlRFU1RfQVNTRVJUKGVtcHR5T2JqZWN0Xy5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwg
aW50ZWdlcnMpIHsKKyAgSXNDaGVjayBjaGVja3M7CisgIEpzb246OlZhbHVlIHZhbDsKKworICAv
LyBDb252ZXJzaW9ucyB0aGF0IGRvbid0IGRlcGVuZCBvbiB0aGUgdmFsdWUuCisgIEpTT05URVNU
X0FTU0VSVChKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkp
OworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcpLmlzQ29udmVydGlibGVUbyhKc29u
OjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcpLmlzQ29u
dmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFKc29u
OjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCFKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZh
bHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTdV
KS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KEpzb246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmFycmF5VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFKc29uOjpWYWx1ZSgxN1UpLmlzQ29u
dmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVChKc29u
OjpWYWx1ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5n
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGli
bGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCFKc29uOjpWYWx1
ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoIUpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1
ZSkpOworCisgIC8vIERlZmF1bHQgaW50CisgIHZhbCA9IEpzb246OlZhbHVlKEpzb246OmludFZh
bHVlKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBl
KCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7Cisg
IGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hl
Y2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNo
ZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpT
T05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9B
U1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KDAsIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwu
YXNVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChmYWxzZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19F
UVVBTCgiMCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBEZWZhdWx0IHVpbnQKKyAgdmFsID0g
SnNvbjo6VmFsdWUoSnNvbjo6dWludFZhbHVlKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
SnNvbjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7Cisg
IGNoZWNrcy5pc0ludF8gPSB0cnVlOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVj
a3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3Mu
aXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tz
LmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwg
Y2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4w
LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zs
b2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAg
Ly8gRGVmYXVsdCByZWFsCisgIHZhbCA9IEpzb246OlZhbHVlKEpzb246OnJlYWxWYWx1ZSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7
CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7
CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkp
OworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNo
ZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tz
LmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNr
cy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoMCwgdmFsLmFzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFs
LmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJbnQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGZhbHNlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIw
LjAiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gWmVybyAoc2lnbmVkIGNvbnN0cnVjdG9yIGFy
ZykKKyAgdmFsID0gSnNvbjo6VmFsdWUoMCk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpz
b246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNo
ZWNrcy5pc0ludF8gPSB0cnVlOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3Mu
aXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJ
bnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlz
TnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hl
Y2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVs
bFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Omlu
dFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4wLCB2
YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbC5hc0Jvb2woKSk7CisgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8g
WmVybyAodW5zaWduZWQgY29uc3RydWN0b3IgYXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZSgwdSk7
CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1ZSwgdmFsLnR5cGUoKSk7
CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKKyAgY2hl
Y2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludF8gPSB0cnVlOworICBjaGVja3Mu
aXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tz
LmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VS
VCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMCwgdmFsLmFzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwg
dmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJ
bnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0VUludCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGZhbHNlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCIwIiwgdmFsLmFzU3RyaW5nKCkpOworCisgIC8vIFplcm8gKGZsb2F0aW5nLXBvaW50IGNvbnN0
cnVjdG9yIGFyZykKKyAgdmFsID0gSnNvbjo6VmFsdWUoMC4wKTsKKworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0No
ZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVlOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVl
OworICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwor
ICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsK
KyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVj
a0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwu
YXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0SW50KCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLjAs
IHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbC5hc0Jv
b2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAuMCIsIHZhbC5hc1N0cmlu
ZygpKTsKKworICAvLyAyXjIwIChzaWduZWQgY29uc3RydWN0b3IgYXJnKQorICB2YWwgPSBKc29u
OjpWYWx1ZSgxIDw8IDIwKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFs
dWUsIHZhbC50eXBlKCkpOworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8g
PSB0cnVlOworICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRy
dWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0
cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0
cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAg
SlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsK
KworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TCgiMTA0ODU3NiIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyAyXjIwICh1bnNpZ25lZCBjb25z
dHJ1Y3RvciBhcmcpCisgIHZhbCA9IEpzb246OlZhbHVlKEpzb246OlVJbnQoMSA8PCAyMCkpOwor
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBlKCkpOwor
CisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNr
cy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlz
VUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5p
c0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNU
X0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VS
VCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VS
VCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKCgxIDw8IDIwKSwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgx
IDw8IDIwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgo
MSA8PCAyMCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8
IDIwKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwu
YXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMDQ4NTc2IiwgdmFs
LmFzU3RyaW5nKCkpOworCisgIC8vIDJeMjAgKGZsb2F0aW5nLXBvaW50IGNvbnN0cnVjdG9yIGFy
ZykKKyAgdmFsID0gSnNvbjo6VmFsdWUoKDEgPDwgMjApIC8gMS4wKTsKKworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJ
c0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludF8gPSB0cnVlOworICBjaGVja3MuaXNJbnQ2NF8gPSB0
cnVlOworICBjaGVja3MuaXNVSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVl
OworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1
ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChj
aGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEg
PDwgMjApLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCks
IHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCks
IHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5h
c0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwu
YXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0Zs
b2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAgICIxMDQ4NTc2LjAiLAorICAgICAg
bm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVzdDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0
cmluZygpKSkpOworCisgIC8vIC0yXjIwCisgIHZhbCA9IEpzb246OlZhbHVlKC0oMSA8PCAyMCkp
OworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7
CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKKyAgY2hl
Y2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hl
Y2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FT
U0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoLSgxIDw8IDIwKSwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoLSgxIDw8IDIwKSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCItMTA0ODU3NiIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBpbnQzMiBtYXgKKyAgdmFsID0g
SnNvbjo6VmFsdWUoa2ludDMybWF4KTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tz
LmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJ
bnRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVn
cmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1l
cmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3Mp
KTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRW
YWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtYXgsIHZhbC5hc0ludCgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzTGFyZ2VzdEludCgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzVUludCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtYXgsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKGtmaW50MzJtYXgsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCgiMjE0NzQ4MzY0NyIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyBpbnQzMiBt
aW4KKyAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMybWluKTsKKworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2so
KTsKKyAgY2hlY2tzLmlzSW50XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Cisg
IGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwor
ICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNr
SXModmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMy
bWluLCB2YWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtaW4sIHZh
bC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50MzJtaW4sIHZh
bC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQzMm1pbiwgdmFsLmFz
RmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwor
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItMjE0NzQ4MzY0OCIsIHZhbC5hc1N0cmlu
ZygpKTsKKworICAvLyB1aW50MzIgbWF4CisgIHZhbCA9IEpzb246OlZhbHVlKGt1aW50MzJtYXgp
OworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBlKCkp
OworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAg
Y2hlY2tzLmlzVUludF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hl
Y2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNo
ZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2
YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246OnVpbnRWYWx1ZSkpOwogCi0gICAvLyBOb24tZW1wdHkgb2JqZWN0IG5vdCBva2F5Ci0g
ICBKU09OVEVTVF9BU1NFUlQoIW9iamVjdDFfLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFs
dWUpKTsKKyNpZm5kZWYgSlNPTl9OT19JTlQ2NAorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa3Vp
bnQzMm1heCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyNlbmRpZgorICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoa3VpbnQzMm1heCwgdmFsLmFzVUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGt1aW50MzJtYXgsIHZhbC5hc0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoa3VpbnQzMm1heCwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
a2Z1aW50MzJtYXgsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1
ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiNDI5NDk2
NzI5NSIsIHZhbC5hc1N0cmluZygpKTsKIAotICAgLy8gQWx3YXlzIG9rYXkKLSAgIEpTT05URVNU
X0FTU0VSVChlbXB0eU9iamVjdF8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVlKSk7
CisjaWZkZWYgSlNPTl9OT19JTlQ2NAorICAvLyBpbnQ2NCBtYXgKKyAgdmFsID0gSnNvbjo6VmFs
dWUoZG91YmxlKGtpbnQ2NG1heCkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpy
ZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tz
LmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FT
U0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoZG91YmxlKGtpbnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KGtpbnQ2NG1heCksIHZhbC5hc0Zsb2F0KCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgiOS4yMjMzN2UrMTgiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8g
aW50NjQgbWluCisgIHZhbCA9IEpzb246OlZhbHVlKGRvdWJsZShraW50NjRtaW4pKTsKKworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBj
aGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3Mu
aXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBj
aGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGRvdWJsZShraW50NjRt
aW4pLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChraW50
NjRtaW4pLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZh
bC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIi05LjIyMzM3ZSsx
OCIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyB1aW50NjQgbWF4CisgIHZhbCA9IEpzb246OlZh
bHVlKGRvdWJsZShrdWludDY0bWF4KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVj
a3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChkb3VibGUoa3VpbnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KGt1aW50NjRtYXgpLCB2YWwuYXNGbG9hdCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEuODQ0NjdlKzE5IiwgdmFsLmFzU3RyaW5nKCkpOworI2Vs
c2UgLy8gaWZkZWYgSlNPTl9OT19JTlQ2NAorICAvLyAyXjQwIChzaWduZWQgY29uc3RydWN0b3Ig
YXJnKQorICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpJbnQ2NCgxKSA8PCA0MCk7CisKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVj
a3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc1VJ
bnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNE
b3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9B
U1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNJbnQ2NCgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RJ
bnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2
YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkg
PDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChK
c29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCgiMTA5OTUxMTYyNzc3NiIsIHZhbC5hc1N0cmluZygpKTsKKworICAvLyAyXjQw
ICh1bnNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCisgIHZhbCA9IEpzb246OlZhbHVlKEpzb246OlVJ
bnQ2NCgxKSA8PCA0MCk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1
ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNJbnQ2
NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzSW50ZWdy
YWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVy
aWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykp
OworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFs
dWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50
VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQw
KSwgdmFsLmFzSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQo
MSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0SW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
KEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzVUludDY0KCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNEb3Vi
bGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2
YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2wo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjEwOTk1MTE2Mjc3NzYiLCB2YWwu
YXNTdHJpbmcoKSk7CisKKyAgLy8gMl40MCAoZmxvYXRpbmctcG9pbnQgY29uc3RydWN0b3IgYXJn
KQorICB2YWwgPSBKc29uOjpWYWx1ZSgoSnNvbjo6SW50NjQoMSkgPDwgNDApIC8gMS4wKTsKKwor
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKwor
ICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNr
cy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOworICBjaGVj
a3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNJbnQ2NCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xh
cmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwg
NDApLCB2YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50
NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0Zsb2F0KCkpOworICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgKKyAgICAgICIxMDk5NTExNjI3Nzc2LjAiLAorICAgICAgbm9ybWFs
aXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVzdDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygp
KSkpOworCisgIC8vIC0yXjQwCisgIHZhbCA9IEpzb246OlZhbHVlKC0oSnNvbjo6SW50NjQoMSkg
PDwgNDApKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6aW50VmFsdWUsIHZhbC50
eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1
ZTsKKyAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRy
dWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
LShKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0ludDY0KCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRG91
YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0MCks
IHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9v
bCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiLTEwOTk1MTE2Mjc3NzYiLCB2
YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gaW50NjQgbWF4CisgIHZhbCA9IEpzb246OlZhbHVlKEpz
b246OkludDY0KGtpbnQ2NG1heCkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpp
bnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3Mu
aXNJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlz
SW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5p
c051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNo
ZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpu
dWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
Ojp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWF4LCB2YWwu
YXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1heCwgdmFsLmFzTGFy
Z2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1heCwgdmFsLmFzVUlu
dDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWF4LCB2YWwuYXNMYXJnZXN0
VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGRvdWJsZShraW50NjRtYXgpLCB2YWwu
YXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChraW50NjRtYXgpLCB2
YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2wo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjkyMjMzNzIwMzY4NTQ3NzU4MDci
LCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gaW50NjQgbWF4IChmbG9hdGluZyBwb2ludCBjb25z
dHJ1Y3RvcikuIE5vdGUgdGhhdCBraW50NjRtYXggaXMgbm90IGV4YWN0bHkKKyAgLy8gcmVwcmVz
ZW50YWJsZSBhcyBhIGRvdWJsZSwgYW5kIHdpbGwgYmUgcm91bmRlZCB1cCB0byBiZSBoaWdoZXIu
CisgIHZhbCA9IEpzb246OlZhbHVlKGRvdWJsZShraW50NjRtYXgpKTsKKworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJ
c0NoZWNrKCk7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3Jh
bF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJp
Y18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7
CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1
ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFs
dWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRW
YWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpVSW50NjQoMSkgPDwgNjMs
IHZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlVJbnQ2NCgx
KSA8PCA2MywgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh1
aW50NjRUb0RvdWJsZShKc29uOjpVSW50NjQoMSkgPDwgNjMpLCB2YWwuYXNEb3VibGUoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChKc29uOjpVSW50NjQoMSkgPDwgNjMpLCB2YWwu
YXNGbG9hdCgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAgICI5LjIyMzM3MjAzNjg1
NDc3NThlKzE4IiwKKyAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIoSnNvblRlc3Q6OlRv
SnNvblN0cmluZyh2YWwuYXNTdHJpbmcoKSkpKTsKKworICAvLyBpbnQ2NCBtaW4KKyAgdmFsID0g
SnNvbjo6VmFsdWUoSnNvbjo6SW50NjQoa2ludDY0bWluKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNr
KCk7CisgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7CisgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRy
dWU7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNOdW1lcmljXyA9IHRy
dWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVja3MpKTsKKworICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Cisg
IEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwor
ICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7
CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1pbiwgdmFsLmFzSW50NjQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtaW4sIHZhbC5hc0xhcmdlc3RJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChkb3VibGUoa2ludDY0bWluKSwgdmFsLmFzRG91YmxlKCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoa2ludDY0bWluKSwgdmFsLmFzRmxvYXQo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIsIHZhbC5hc1N0
cmluZygpKTsKKworICAvLyBpbnQ2NCBtaW4gKGZsb2F0aW5nIHBvaW50IGNvbnN0cnVjdG9yKS4g
Tm90ZSB0aGF0IGtpbnQ2NG1pbiAqaXMqIGV4YWN0bHkKKyAgLy8gcmVwcmVzZW50YWJsZSBhcyBh
IGRvdWJsZS4KKyAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGtpbnQ2NG1pbikpOworCisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNo
ZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tzLmlz
SW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5p
c051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNo
ZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpu
dWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
Ojp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWluLCB2YWwu
YXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1pbiwgdmFsLmFzTGFy
Z2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC05MjIzMzcyMDM2ODU0Nzc1ODA4
LjAsIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC05MjIzMzcyMDM2
ODU0Nzc1ODA4LjAsIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1
ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAg
ICItOS4yMjMzNzIwMzY4NTQ3NzU4ZSsxOCIsCisgICAgICBub3JtYWxpemVGbG9hdGluZ1BvaW50
U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7CisKKyAgLy8gMTBe
MTkKKyAgY29uc3QgYXV0byB0ZW5fdG9fMTkgPSBzdGF0aWNfY2FzdDxKc29uOjpVSW50NjQ+KDFl
MTkpOworICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpVSW50NjQodGVuX3RvXzE5KSk7CisKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAg
Y2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKKyAgY2hlY2tz
LmlzSW50ZWdyYWxfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNr
cy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWws
IGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246OmludFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjp1aW50VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodGVuX3RvXzE5LCB2
YWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0ZW5fdG9fMTksIHZhbC5h
c0xhcmdlc3RVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodWludDY0VG9Eb3VibGUo
dGVuX3RvXzE5KSwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxv
YXQodWludDY0VG9Eb3VibGUodGVuX3RvXzE5KSksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCgiMTAwMDAwMDAwMDAwMDAwMDAwMDAiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAg
Ly8gMTBeMTkgKGRvdWJsZSBjb25zdHJ1Y3RvcikuIE5vdGUgdGhhdCAxMF4xOSBpcyBub3QgZXhh
Y3RseSByZXByZXNlbnRhYmxlCisgIC8vIGFzIGEgZG91YmxlLgorICB2YWwgPSBKc29uOjpWYWx1
ZSh1aW50NjRUb0RvdWJsZSh0ZW5fdG9fMTkpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
SnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3MgPSBJc0NoZWNrKCk7Cisg
IGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwor
ICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworCisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgxZTE5LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgxZTE5LCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
CisgICAgICAiMWUrMTkiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVz
dDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworCisgIC8vIHVpbnQ2NCBtYXgKKyAg
dmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6VUludDY0KGt1aW50NjRtYXgpKTsKKworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVja3Mg
PSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOworICBjaGVja3MuaXNJbnRl
Z3JhbF8gPSB0cnVlOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVt
ZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tz
KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxW
YWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChrdWludDY0bWF4LCB2YWwuYXNV
SW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChrdWludDY0bWF4LCB2YWwuYXNMYXJn
ZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHVpbnQ2NFRvRG91YmxlKGt1aW50
NjRtYXgpLCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdCh1
aW50NjRUb0RvdWJsZShrdWludDY0bWF4KSksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCgiMTg0NDY3NDQwNzM3MDk1NTE2MTUiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8g
dWludDY0IG1heCAoZmxvYXRpbmcgcG9pbnQgY29uc3RydWN0b3IpLiBOb3RlIHRoYXQga3VpbnQ2
NG1heCBpcyBub3QKKyAgLy8gZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEgZG91YmxlLCBhbmQg
d2lsbCBiZSByb3VuZGVkIHVwIHRvIGJlIGhpZ2hlci4KKyAgdmFsID0gSnNvbjo6VmFsdWUodWlu
dDY0VG9Eb3VibGUoa3VpbnQ2NG1heCkpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29u
OjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hl
Y2tzLmlzRG91YmxlXyA9IHRydWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FT
U0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7CisgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMTg0NDY3NDQwNzM3MDk1NTE2MTYuMCwgdmFsLmFzRG91YmxlKCkp
OworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMTg0NDY3NDQwNzM3MDk1NTE2MTYuMCwgdmFsLmFz
RmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwor
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKAorICAgICAgIjEuODQ0Njc0NDA3MzcwOTU1
MmUrMTkiLAorICAgICAgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVzdDo6VG9Kc29u
U3RyaW5nKHZhbC5hc1N0cmluZygpKSkpOworI2VuZGlmCit9CiAKLSAgIC8vIE5ldmVyIG9rYXkK
LSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjph
cnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5T2JqZWN0Xy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3Rf
LmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCgh
ZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFs
dWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghZW1wdHlPYmplY3RfLmlzQ29udmVydGlibGVUbyhK
c29uOjpzdHJpbmdWYWx1ZSkpOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIG5vbkludGVn
ZXJzKSB7CisgIElzQ2hlY2sgY2hlY2tzOworICBKc29uOjpWYWx1ZSB2YWw7CisKKyAgLy8gU21h
bGwgcG9zaXRpdmUgbnVtYmVyCisgIHZhbCA9IEpzb246OlZhbHVlKDEuNSk7CisKKyAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tz
ID0gSXNDaGVjaygpOworICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVt
ZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tz
KSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFs
dWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZh
bHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxW
YWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpib29s
ZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
c3RyaW5nVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMS41LCB2
YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLjUsIHZhbC5hc0Zsb2F0
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzSW50KCkpOworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDEsIHZhbC5hc1VJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLCB2YWwu
YXNMYXJnZXN0VUludCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jv
b2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgiMS41IiwgdmFsLmFzU3RyaW5nKCkpOwor
CisgIC8vIFNtYWxsIG5lZ2F0aXZlIG51bWJlcgorICB2YWwgPSBKc29uOjpWYWx1ZSgtMS41KTsK
KworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsK
KworICBjaGVja3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBj
aGVja3MuaXNOdW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXMo
dmFsLCBjaGVja3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjpyZWFsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6Ym9vbGVhblZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoLTEuNSwgdmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEu
NSwgdmFsLmFzRmxvYXQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMSwgdmFsLmFzSW50
KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Cisg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoIi0xLjUiLCB2YWwuYXNTdHJpbmcoKSk7CisKKyAgLy8gQSBiaXQgb3ZlciBp
bnQzMiBtYXgKKyAgdmFsID0gSnNvbjo6VmFsdWUoa2ludDMybWF4ICsgMC41KTsKKworICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKKworICBjaGVj
a3MgPSBJc0NoZWNrKCk7CisgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOworICBjaGVja3MuaXNO
dW1lcmljXyA9IHRydWU7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXModmFsLCBjaGVj
a3MpKTsKKworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50
VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVh
bFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJv
b2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVU
byhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMjE0
NzQ4MzY0Ny41LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9h
dCgyMTQ3NDgzNjQ3LjUpLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KDIxNDc0ODM2NDdVLCB2YWwuYXNVSW50KCkpOworI2lmZGVmIEpTT05fSEFTX0lOVDY0CisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgyMTQ3NDgzNjQ3TCwgdmFsLmFzTGFyZ2VzdEludCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKDIxNDc0ODM2NDdVLCB2YWwuYXNMYXJnZXN0VUludCgpKTsK
KyNlbmRpZgorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKAorICAgICAgIjIxNDc0ODM2NDcuNSIsCisgICAgICBub3Jt
YWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5n
KCkpKSk7CisKKyAgLy8gQSBiaXQgdW5kZXIgaW50MzIgbWluCisgIHZhbCA9IEpzb246OlZhbHVl
KGtpbnQzMm1pbiAtIDAuNSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxW
YWx1ZSwgdmFsLnR5cGUoKSk7CisKKyAgY2hlY2tzID0gSXNDaGVjaygpOworICBjaGVja3MuaXNE
b3VibGVfID0gdHJ1ZTsKKyAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOworICBKU09OVEVTVF9B
U1NFUlRfUFJFRChjaGVja0lzKHZhbCwgY2hlY2tzKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUKHZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7CisgIEpTT05URVNUX0FTU0VSVCh2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOworICBKU09OVEVTVF9B
U1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7CisgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOworICBKU09OVEVT
VF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7CisgIEpTT05U
RVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7CisgIEpT
T05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwor
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMjE0NzQ4MzY0OC41LCB2YWwuYXNEb3VibGUoKSk7
CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdCgtMjE0NzQ4MzY0OC41KSwgdmFsLmFzRmxv
YXQoKSk7CisjaWZkZWYgSlNPTl9IQVNfSU5UNjQKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0o
SnNvbjo6SW50NjQoMSkgPDwgMzEpLCB2YWwuYXNMYXJnZXN0SW50KCkpOworI2VuZGlmCisgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoCisgICAgICAiLTIxNDc0ODM2NDguNSIsCisgICAgICBub3JtYWxpemVGbG9hdGlu
Z1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7CisKKyAg
Ly8gQSBiaXQgb3ZlciB1aW50MzIgbWF4CisgIHZhbCA9IEpzb246OlZhbHVlKGt1aW50MzJtYXgg
KyAwLjUpOworCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50
eXBlKCkpOworCisgIGNoZWNrcyA9IElzQ2hlY2soKTsKKyAgY2hlY2tzLmlzRG91YmxlXyA9IHRy
dWU7CisgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQo
Y2hlY2tJcyh2YWwsIGNoZWNrcykpOworCisgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQoIXZh
bC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOworICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlWYWx1ZSkpOworICBKU09OVEVTVF9BU1NF
UlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKKworICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoNDI5NDk2NzI5NS41LCB2YWwuYXNEb3VibGUoKSk7CisgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChmbG9hdCg0Mjk0OTY3Mjk1LjUpLCB2YWwuYXNGbG9hdCgpKTsKKyNpZmRl
ZiBKU09OX0hBU19JTlQ2NAorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEp
IDw8IDMyKSAtIDEsIHZhbC5hc0xhcmdlc3RJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoSnNvbjo6VUludDY0KDEpIDw8IDMyKSAtIEpzb246OlVJbnQ2NCgxKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbC5hc0xhcmdlc3RVSW50KCkpOworI2VuZGlmCisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
CisgICAgICAiNDI5NDk2NzI5NS41IiwKKyAgICAgIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIo
SnNvblRlc3Q6OlRvSnNvblN0cmluZyh2YWwuYXNTdHJpbmcoKSkpKTsKKworICB2YWwgPSBKc29u
OjpWYWx1ZSgxLjIzNDU2Nzg5MDEyMzQpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KAorICAgICAgIjEuMjM0NTY3ODkwMTIzNDAwMSIsCisgICAgICBub3JtYWxpemVGbG9hdGluZ1Bv
aW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7CisKKyAgLy8g
QSAxNi1kaWdpdCBmbG9hdGluZyBwb2ludCBudW1iZXIuCisgIHZhbCA9IEpzb246OlZhbHVlKDIx
OTkwMjMyNTU1NTIwMDAuMGYpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoMjE5OTAy
MzI1NTU1MjAwMC4wZiksIHZhbC5hc0Zsb2F0KCkpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKAorICAgICAgIjIxOTkwMjMyNTU1NTIwMDAuMCIsCisgICAgICBub3JtYWxpemVGbG9h
dGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5nKCkpKSk7CisK
KyAgLy8gQSB2ZXJ5IGxhcmdlIGZsb2F0aW5nIHBvaW50IG51bWJlci4KKyAgdmFsID0gSnNvbjo6
VmFsdWUoMy40MDI4MjM0NjYzODUyODllMzgpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxv
YXQoMy40MDI4MjM0NjYzODUyODllMzgpLCB2YWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgKKyAgICAgICIzLjQwMjgyMzQ2NjM4NTI4OWUrMzgiLAorICAgICAg
bm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cihKc29uVGVzdDo6VG9Kc29uU3RyaW5nKHZhbC5hc1N0
cmluZygpKSkpOworCisgIC8vIEFuIGV2ZW4gbGFyZ2VyIGZsb2F0aW5nIHBvaW50IG51bWJlci4K
KyAgdmFsID0gSnNvbjo6VmFsdWUoMS4yMzQ1Njc4ZTMwMCk7CisgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChkb3VibGUoMS4yMzQ1Njc4ZTMwMCksIHZhbC5hc0RvdWJsZSgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1NUUklOR19FUVVBTCgKKyAgICAgICIxLjIzNDU2NzhlKzMwMCIsCisgICAgICBub3Jt
YWxpemVGbG9hdGluZ1BvaW50U3RyKEpzb25UZXN0OjpUb0pzb25TdHJpbmcodmFsLmFzU3RyaW5n
KCkpKSk7Cit9CiAKLSAgIC8vIEFjY2VzcyB0aHJvdWdoIGNvbnN0IHJlZmVyZW5jZQotICAgY29u
c3QgSnNvbjo6VmFsdWUgJmNvbnN0T2JqZWN0ID0gb2JqZWN0MV87Cit2b2lkIFZhbHVlVGVzdDo6
Y2hlY2tDb25zdE1lbWJlckNvdW50KGNvbnN0IEpzb246OlZhbHVlJiB2YWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGV4cGVjdGVkQ291bnQp
IHsKKyAgdW5zaWduZWQgaW50IGNvdW50ID0gMDsKKyAgSnNvbjo6VmFsdWU6OmNvbnN0X2l0ZXJh
dG9yIGl0RW5kID0gdmFsdWUuZW5kKCk7CisgIGZvciAoSnNvbjo6VmFsdWU6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gdmFsdWUuYmVnaW4oKTsgaXQgIT0gaXRFbmQ7ICsraXQpIHsKKyAgICArK2NvdW50
OworICB9CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChleHBlY3RlZENvdW50LCBjb3VudCkgPDwg
Ikpzb246OlZhbHVlOjpjb25zdF9pdGVyYXRvciI7Cit9CiAKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgY29uc3RPYmplY3RbImlkIl0pOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCksIGNvbnN0T2JqZWN0WyJ1bmtub3duIGlkIl0pOwor
dm9pZCBWYWx1ZVRlc3Q6OmNoZWNrTWVtYmVyQ291bnQoSnNvbjo6VmFsdWUmIHZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGV4cGVjdGVkQ291bnQp
IHsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVkQ291bnQsIHZhbHVlLnNpemUoKSk7
CiAKLSAgIC8vIEFjY2VzcyB0aHJvdWdoIG5vbi1jb25zdCByZWZlcmVuY2UKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgxMjM0KSwgb2JqZWN0MV9bImlkIl0pOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCksIG9iamVjdDFfWyJ1bmtub3duIGlkIl0p
OworICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOworICBKc29uOjpWYWx1ZTo6aXRlcmF0b3IgaXRF
bmQgPSB2YWx1ZS5lbmQoKTsKKyAgZm9yIChKc29uOjpWYWx1ZTo6aXRlcmF0b3IgaXQgPSB2YWx1
ZS5iZWdpbigpOyBpdCAhPSBpdEVuZDsgKytpdCkgeworICAgICsrY291bnQ7CisgIH0KKyAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKGV4cGVjdGVkQ291bnQsIGNvdW50KSA8PCAiSnNvbjo6VmFsdWU6
Oml0ZXJhdG9yIjsKIAotICAgb2JqZWN0MV9bInNvbWUgb3RoZXIgaWQiXSA9ICJmb28iOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCJmb28iKSwgb2JqZWN0MV9bInNvbWUg
b3RoZXIgaWQiXSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrQ29uc3RNZW1iZXJDb3Vu
dCh2YWx1ZSwgZXhwZWN0ZWRDb3VudCkpOwogfQogCitWYWx1ZVRlc3Q6OklzQ2hlY2s6OklzQ2hl
Y2soKQorCisgICAgPSBkZWZhdWx0OwogCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIGFy
cmF5cyApCi17Ci0gICBjb25zdCB1bnNpZ25lZCBpbnQgaW5kZXgwID0gMDsKK3ZvaWQgVmFsdWVU
ZXN0OjpjaGVja0lzKGNvbnN0IEpzb246OlZhbHVlJiB2YWx1ZSwgY29uc3QgSXNDaGVjayYgY2hl
Y2spIHsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzT2JqZWN0XywgdmFsdWUuaXNP
YmplY3QoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc0FycmF5XywgdmFsdWUu
aXNBcnJheSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzQm9vbF8sIHZhbHVl
LmlzQm9vbCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzRG91YmxlXywgdmFs
dWUuaXNEb3VibGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc0ludF8sIHZh
bHVlLmlzSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNVSW50XywgdmFs
dWUuaXNVSW50KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNJbnRlZ3JhbF8s
IHZhbHVlLmlzSW50ZWdyYWwoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc051
bWVyaWNfLCB2YWx1ZS5pc051bWVyaWMoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVj
ay5pc1N0cmluZ18sIHZhbHVlLmlzU3RyaW5nKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
Y2hlY2suaXNOdWxsXywgdmFsdWUuaXNOdWxsKCkpOwogCi0gICAvLyBUeXBlcwotICAgSXNDaGVj
ayBjaGVja3M7Ci0gICBjaGVja3MuaXNBcnJheV8gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJU
X1BSRUQoIGNoZWNrSXMoIGVtcHR5QXJyYXlfLCBjaGVja3MgKSApOwotICAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoIGNoZWNrSXMoIGFycmF5MV8sIGNoZWNrcyApICk7CisjaWZkZWYgSlNPTl9IQVNf
SU5UNjQKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzSW50NjRfLCB2YWx1ZS5pc0lu
dDY0KCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNVSW50NjRfLCB2YWx1ZS5p
c1VJbnQ2NCgpKTsKKyNlbHNlCisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsdWUu
aXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNlLCB2YWx1ZS5pc1VJbnQ2
NCgpKTsKKyNlbmRpZgorfQogCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6YXJyYXlW
YWx1ZSwgYXJyYXkxXy50eXBlKCkpOworSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIGNvbXBh
cmVOdWxsKSB7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbChKc29uOjpWYWx1
ZSgpLCBKc29uOjpWYWx1ZSgpKSk7Cit9CiAKLSAgIC8vIEVtcHR5IGFycmF5IG9rYXkKLSAgIEpT
T05URVNUX0FTU0VSVChlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVl
KSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY29tcGFyZUludCkgeworICBKU09OVEVT
VF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygwLCAxMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJF
RChjaGVja0lzRXF1YWwoMTAsIDEwKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNF
cXVhbCgtMTAsIC0xMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygtMTAs
IDApKTsKK30KIAotICAgLy8gTm9uLWVtcHR5IGFycmF5IG5vdCBva2F5Ci0gICBKU09OVEVTVF9B
U1NFUlQoIWFycmF5MV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworSlNPTlRF
U1RfRklYVFVSRShWYWx1ZVRlc3QsIGNvbXBhcmVVSW50KSB7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrSXNMZXNzKDB1LCAxMHUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJ
c0xlc3MoMHUsIEpzb246OlZhbHVlOjptYXhVSW50KSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVE
KGNoZWNrSXNFcXVhbCgxMHUsIDEwdSkpOworfQogCi0gICAvLyBBbHdheXMgb2theQotICAgSlNP
TlRFU1RfQVNTRVJUKGVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVl
KSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY29tcGFyZURvdWJsZSkgeworICBKU09O
VEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcygwLjAsIDEwLjApKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoY2hlY2tJc0VxdWFsKDEwLjAsIDEwLjApKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoY2hlY2tJc0VxdWFsKC0xMC4wLCAtMTAuMCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChj
aGVja0lzTGVzcygtMTAuMCwgMC4wKSk7Cit9CiAKLSAgIC8vIE5ldmVyIG9rYXkKLSAgIEpTT05U
RVNUX0FTU0VSVCghZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om9iamVjdFZhbHVl
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlfLmlzQ29udmVydGlibGVUbyhKc29u
OjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIWVtcHR5QXJyYXlf
LmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCgh
ZW1wdHlBcnJheV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNP
TlRFU1RfQVNTRVJUKCFlbXB0eUFycmF5Xy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFs
dWUpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21wYXJlU3RyaW5nKSB7CisgIEpT
T05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKCIiLCAiICIpKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1BSRUQoY2hlY2tJc0xlc3MoIiIsICJhIikpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChj
aGVja0lzTGVzcygiYWJjZCIsICJ6eXVpIikpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVj
a0lzTGVzcygiYWJjIiwgImFiY2QiKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNF
cXVhbCgiYWJjZCIsICJhYmNkIikpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1
YWwoIiAiLCAiICIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoIkFCQ0Qi
LCAiYWJjZCIpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFsKCJBQkNEIiwg
IkFCQ0QiKSk7Cit9CiAKLSAgIC8vIEFjY2VzcyB0aHJvdWdoIGNvbnN0IHJlZmVyZW5jZQotICAg
Y29uc3QgSnNvbjo6VmFsdWUgJmNvbnN0QXJyYXkgPSBhcnJheTFfOwotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBjb25zdEFycmF5W2luZGV4MF0pOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKDEyMzQpLCBjb25zdEFycmF5WzBdKTsKK0pT
T05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21wYXJlQm9vbGVhbikgeworICBKU09OVEVTVF9B
U1NFUlRfUFJFRChjaGVja0lzTGVzcyhmYWxzZSwgdHJ1ZSkpOworICBKU09OVEVTVF9BU1NFUlRf
UFJFRChjaGVja0lzRXF1YWwoZmFsc2UsIGZhbHNlKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVE
KGNoZWNrSXNFcXVhbCh0cnVlLCB0cnVlKSk7Cit9CiAKLSAgIC8vIEFjY2VzcyB0aHJvdWdoIG5v
bi1jb25zdCByZWZlcmVuY2UKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpWYWx1ZSgx
MjM0KSwgYXJyYXkxX1tpbmRleDBdKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpW
YWx1ZSgxMjM0KSwgYXJyYXkxX1swXSk7Ci0KLSAgIGFycmF5MV9bMl0gPSBKc29uOjpWYWx1ZSgx
Nyk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoKSwgYXJyYXkxX1sxXSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUoMTcpLCBhcnJheTFfWzJdKTsK
LX0KK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBjb21wYXJlQXJyYXkpIHsKKyAgLy8gYXJy
YXkgY29tcGFyZSBzaXplIHRoZW4gY29udGVudAorICBKc29uOjpWYWx1ZSBlbXB0eUFycmF5KEpz
b246OmFycmF5VmFsdWUpOworICBKc29uOjpWYWx1ZSBsMWFBcnJheTsKKyAgbDFhQXJyYXkuYXBw
ZW5kKDApOworICBKc29uOjpWYWx1ZSBsMWJBcnJheTsKKyAgbDFiQXJyYXkuYXBwZW5kKDEwKTsK
KyAgSnNvbjo6VmFsdWUgbDJhQXJyYXk7CisgIGwyYUFycmF5LmFwcGVuZCgwKTsKKyAgbDJhQXJy
YXkuYXBwZW5kKDApOworICBKc29uOjpWYWx1ZSBsMmJBcnJheTsKKyAgbDJiQXJyYXkuYXBwZW5k
KDApOworICBsMmJBcnJheS5hcHBlbmQoMTApOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVj
a0lzTGVzcyhlbXB0eUFycmF5LCBsMWFBcnJheSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChj
aGVja0lzTGVzcyhlbXB0eUFycmF5LCBsMmFBcnJheSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJF
RChjaGVja0lzTGVzcyhsMWFBcnJheSwgbDJhQXJyYXkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoY2hlY2tJc0xlc3MobDJhQXJyYXksIGwyYkFycmF5KSk7CisgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKGNoZWNrSXNFcXVhbChlbXB0eUFycmF5LCBKc29uOjpWYWx1ZShlbXB0eUFycmF5KSkpOwor
ICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwobDFhQXJyYXksIEpzb246OlZhbHVl
KGwxYUFycmF5KSkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwobDJiQXJy
YXksIEpzb246OlZhbHVlKGwyYkFycmF5KSkpOworfQogCitKU09OVEVTVF9GSVhUVVJFKFZhbHVl
VGVzdCwgY29tcGFyZU9iamVjdCkgeworICAvLyBvYmplY3QgY29tcGFyZSBzaXplIHRoZW4gY29u
dGVudAorICBKc29uOjpWYWx1ZSBlbXB0eU9iamVjdChKc29uOjpvYmplY3RWYWx1ZSk7CisgIEpz
b246OlZhbHVlIGwxYU9iamVjdDsKKyAgbDFhT2JqZWN0WyJrZXkxIl0gPSAwOworICBKc29uOjpW
YWx1ZSBsMWJPYmplY3Q7CisgIGwxYU9iamVjdFsia2V5MSJdID0gMTA7CisgIEpzb246OlZhbHVl
IGwyYU9iamVjdDsKKyAgbDJhT2JqZWN0WyJrZXkxIl0gPSAwOworICBsMmFPYmplY3RbImtleTIi
XSA9IDA7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKGVtcHR5T2JqZWN0LCBs
MWFPYmplY3QpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoZW1wdHlPYmpl
Y3QsIGwyYU9iamVjdCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzTGVzcyhsMWFP
YmplY3QsIGwyYU9iamVjdCkpOworICBKU09OVEVTVF9BU1NFUlRfUFJFRChjaGVja0lzRXF1YWwo
ZW1wdHlPYmplY3QsIEpzb246OlZhbHVlKGVtcHR5T2JqZWN0KSkpOworICBKU09OVEVTVF9BU1NF
UlRfUFJFRChjaGVja0lzRXF1YWwobDFhT2JqZWN0LCBKc29uOjpWYWx1ZShsMWFPYmplY3QpKSk7
CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbChsMmFPYmplY3QsIEpzb246OlZh
bHVlKGwyYU9iamVjdCkpKTsKK30KIAotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBudWxs
ICkKLXsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpudWxsVmFsdWUsIG51bGxfLnR5
cGUoKSk7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgY29tcGFyZVR5cGUpIHsKKyAgLy8g
b2JqZWN0IG9mIGRpZmZlcmVudCB0eXBlIGFyZSBvcmRlcmVkIGFjY29yZGluZyB0byB0aGVpciB0
eXBlCisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKEpzb246OlZhbHVlKCksIEpz
b246OlZhbHVlKDEpKSk7CisgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKEpzb246
OlZhbHVlKDEpLCBKc29uOjpWYWx1ZSgxdSkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hl
Y2tJc0xlc3MoSnNvbjo6VmFsdWUoMXUpLCBKc29uOjpWYWx1ZSgxLjApKSk7CisgIEpTT05URVNU
X0FTU0VSVF9QUkVEKGNoZWNrSXNMZXNzKEpzb246OlZhbHVlKDEuMCksIEpzb246OlZhbHVlKCJh
IikpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoSnNvbjo6VmFsdWUoImEi
KSwgSnNvbjo6VmFsdWUodHJ1ZSkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoCisgICAgICBj
aGVja0lzTGVzcyhKc29uOjpWYWx1ZSh0cnVlKSwgSnNvbjo6VmFsdWUoSnNvbjo6YXJyYXlWYWx1
ZSkpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0xlc3MoSnNvbjo6VmFsdWUoSnNv
bjo6YXJyYXlWYWx1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpzb246
OlZhbHVlKEpzb246Om9iamVjdFZhbHVlKSkpOworfQogCi0gICBJc0NoZWNrIGNoZWNrczsKLSAg
IGNoZWNrcy5pc051bGxfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
KCBudWxsXywgY2hlY2tzICkgKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBDb3B5T2Jq
ZWN0KSB7CisgIEpzb246OlZhbHVlIGFycmF5VmFsOworICBhcnJheVZhbC5hcHBlbmQoInZhbDEi
KTsKKyAgYXJyYXlWYWwuYXBwZW5kKCJ2YWwyIik7CisgIGFycmF5VmFsLmFwcGVuZCgidmFsMyIp
OworICBKc29uOjpWYWx1ZSBzdHJpbmdWYWwoInN0cmluZyB2YWx1ZSIpOworICBKc29uOjpWYWx1
ZSBjb3B5MSwgY29weTI7CisgIHsKKyAgICBKc29uOjpWYWx1ZSBhcnJheUNvcHksIHN0cmluZ0Nv
cHk7CisgICAgYXJyYXlDb3B5LmNvcHkoYXJyYXlWYWwpOworICAgIHN0cmluZ0NvcHkuY29weShz
dHJpbmdWYWwpOworICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKGNoZWNrSXNFcXVhbChhcnJheUNv
cHksIGFycmF5VmFsKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoY2hlY2tJc0VxdWFsKHN0
cmluZ0NvcHksIHN0cmluZ1ZhbCkpOworICAgIGFycmF5Q29weS5hcHBlbmQoInZhbDQiKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlQoYXJyYXlDb3B5LnNpemUoKSA9PSA0KTsKKyAgICBhcnJheVZhbC5h
cHBlbmQoIm5ldzQiKTsKKyAgICBhcnJheVZhbC5hcHBlbmQoIm5ldzUiKTsKKyAgICBKU09OVEVT
VF9BU1NFUlQoYXJyYXlWYWwuc2l6ZSgpID09IDUpOworICAgIEpTT05URVNUX0FTU0VSVCghKGFy
cmF5Q29weSA9PSBhcnJheVZhbCkpOworICAgIHN0cmluZ0NvcHkgPSAiYW5vdGhlciBzdHJpbmci
OworICAgIEpTT05URVNUX0FTU0VSVCghKHN0cmluZ0NvcHkgPT0gc3RyaW5nVmFsKSk7CisgICAg
Y29weTEuY29weShhcnJheUNvcHkpOworICAgIGNvcHkyLmNvcHkoc3RyaW5nQ29weSk7CisgIH0K
KyAgSlNPTlRFU1RfQVNTRVJUKGFycmF5VmFsLnNpemUoKSA9PSA1KTsKKyAgSlNPTlRFU1RfQVNT
RVJUKHN0cmluZ1ZhbCA9PSAic3RyaW5nIHZhbHVlIik7CisgIEpTT05URVNUX0FTU0VSVChjb3B5
MS5zaXplKCkgPT0gNCk7CisgIEpTT05URVNUX0FTU0VSVChjb3B5MiA9PSAiYW5vdGhlciBzdHJp
bmciKTsKKyAgY29weTEuY29weShzdHJpbmdWYWwpOworICBKU09OVEVTVF9BU1NFUlQoY29weTEg
PT0gInN0cmluZyB2YWx1ZSIpOworICBjb3B5Mi5jb3B5KGFycmF5VmFsKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKGNvcHkyLnNpemUoKSA9PSA1KTsKK30KIAotICAgSlNPTlRFU1RfQVNTRVJUKG51bGxf
LmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChu
dWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlQobnVsbF8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKLSAg
IEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVChudWxsXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6YXJyYXlW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKG51bGxfLmlzQ29udmVydGlibGVUbyhKc29uOjpv
YmplY3RWYWx1ZSkpOwordm9pZCBWYWx1ZVRlc3Q6OmNoZWNrSXNMZXNzKGNvbnN0IEpzb246OlZh
bHVlJiB4LCBjb25zdCBKc29uOjpWYWx1ZSYgeSkgeworICBKU09OVEVTVF9BU1NFUlQoeCA8IHkp
OworICBKU09OVEVTVF9BU1NFUlQoeSA+IHgpOworICBKU09OVEVTVF9BU1NFUlQoeCA8PSB5KTsK
KyAgSlNPTlRFU1RfQVNTRVJUKHkgPj0geCk7CisgIEpTT05URVNUX0FTU0VSVCghKHggPT0geSkp
OworICBKU09OVEVTVF9BU1NFUlQoISh5ID09IHgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKCEoeCA+
PSB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkgPD0geCkpOworICBKU09OVEVTVF9BU1NFUlQo
ISh4ID4geSkpOworICBKU09OVEVTVF9BU1NFUlQoISh5IDwgeCkpOworICBKU09OVEVTVF9BU1NF
UlQoeC5jb21wYXJlKHkpIDwgMCk7CisgIEpTT05URVNUX0FTU0VSVCh5LmNvbXBhcmUoeCkgPj0g
MCk7Cit9CiAKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpJbnQoMCksIG51bGxfLmFz
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246Okxhcmdlc3RJbnQoMCksIG51
bGxfLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpVSW50
KDApLCBudWxsXy5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6TGFy
Z2VzdFVJbnQoMCksIG51bGxfLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMC4wLCBudWxsXy5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgw
LjAsIG51bGxfLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIi
LCBudWxsXy5hc1N0cmluZygpKTsKK3ZvaWQgVmFsdWVUZXN0OjpjaGVja0lzRXF1YWwoY29uc3Qg
SnNvbjo6VmFsdWUmIHgsIGNvbnN0IEpzb246OlZhbHVlJiB5KSB7CisgIEpTT05URVNUX0FTU0VS
VCh4ID09IHkpOworICBKU09OVEVTVF9BU1NFUlQoeSA9PSB4KTsKKyAgSlNPTlRFU1RfQVNTRVJU
KHggPD0geSk7CisgIEpTT05URVNUX0FTU0VSVCh5IDw9IHgpOworICBKU09OVEVTVF9BU1NFUlQo
eCA+PSB5KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkgPj0geCk7CisgIEpTT05URVNUX0FTU0VSVCgh
KHggPCB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkgPCB4KSk7CisgIEpTT05URVNUX0FTU0VS
VCghKHggPiB5KSk7CisgIEpTT05URVNUX0FTU0VSVCghKHkgPiB4KSk7CisgIEpTT05URVNUX0FT
U0VSVCh4LmNvbXBhcmUoeSkgPT0gMCk7CisgIEpTT05URVNUX0FTU0VSVCh5LmNvbXBhcmUoeCkg
PT0gMCk7CiB9CiAKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCB0eXBlQ2hlY2tzVGhyb3dF
eGNlcHRpb25zKSB7CisjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCiAKLUpTT05URVNUX0ZJWFRVUkUo
IFZhbHVlVGVzdCwgc3RyaW5ncyApCi17Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
c3RyaW5nVmFsdWUsIHN0cmluZzFfLnR5cGUoKSk7CisgIEpzb246OlZhbHVlIGludFZhbCgxKTsK
KyAgSnNvbjo6VmFsdWUgc3RyVmFsKCJUZXN0Iik7CisgIEpzb246OlZhbHVlIG9ialZhbChKc29u
OjpvYmplY3RWYWx1ZSk7CisgIEpzb246OlZhbHVlIGFyclZhbChKc29uOjphcnJheVZhbHVlKTsK
IAotICAgSXNDaGVjayBjaGVja3M7Ci0gICBjaGVja3MuaXNTdHJpbmdfID0gdHJ1ZTsKLSAgIEpT
T05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCBlbXB0eVN0cmluZ18sIGNoZWNrcyApICk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggc3RyaW5nXywgY2hlY2tzICkgKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCBzdHJpbmcxXywgY2hlY2tzICkgKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWxbInRlc3QiXSk7CisgIEpTT05URVNUX0FTU0VS
VF9USFJPV1Moc3RyVmFsWyJ0ZXN0Il0pOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZh
bFsidGVzdCJdKTsKIAotICAgLy8gRW1wdHkgc3RyaW5nIG9rYXkKLSAgIEpTT05URVNUX0FTU0VS
VChlbXB0eVN0cmluZ18uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOworICBKU09O
VEVTVF9BU1NFUlRfVEhST1dTKGludFZhbC5yZW1vdmVNZW1iZXIoInRlc3QiKSk7CisgIEpTT05U
RVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLnJlbW92ZU1lbWJlcigidGVzdCIpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwucmVtb3ZlTWVtYmVyKCJ0ZXN0IikpOwogCi0gICAvLyBO
b24tZW1wdHkgc3RyaW5nIG5vdCBva2F5Ci0gICBKU09OVEVTVF9BU1NFUlQoIXN0cmluZzFfLmlz
Q29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9X
UyhpbnRWYWwuZ2V0TWVtYmVyTmFtZXMoKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3Ry
VmFsLmdldE1lbWJlck5hbWVzKCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5n
ZXRNZW1iZXJOYW1lcygpKTsKIAotICAgLy8gQWx3YXlzIG9rYXkKLSAgIEpTT05URVNUX0FTU0VS
VChzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1RIUk9XUyhpbnRWYWxbMF0pOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKG9i
alZhbFswXSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsWzBdKTsKIAotICAgLy8g
TmV2ZXIgb2theQotICAgSlNPTlRFU1RfQVNTRVJUKCFzdHJpbmcxXy5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6b2JqZWN0VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghc3RyaW5nMV8uaXNDb252
ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghc3RyaW5n
MV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
IXN0cmluZzFfLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCghc3RyaW5nMV8uaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwotCi0g
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJhIiwgc3RyaW5nMV8uYXNTdHJpbmcoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJhIiwgc3RyaW5nMV8uYXNDU3RyaW5n
KCkpOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgYm9vbHMgKQotewotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmJvb2xlYW5WYWx1ZSwgZmFsc2VfLnR5cGUoKSk7
Ci0KLSAgIElzQ2hlY2sgY2hlY2tzOwotICAgY2hlY2tzLmlzQm9vbF8gPSB0cnVlOwotICAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIGZhbHNlXywgY2hlY2tzICkgKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB0cnVlXywgY2hlY2tzICkgKTsKLQotICAgLy8gRmFs
c2Ugb2theQotICAgSlNPTlRFU1RfQVNTRVJUKGZhbHNlXy5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
bnVsbFZhbHVlKSk7Ci0KLSAgIC8vIFRydWUgbm90IG9rYXkKLSAgIEpTT05URVNUX0FTU0VSVCgh
dHJ1ZV8uaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotCi0gICAvLyBBbHdheXMg
b2theQotICAgSlNPTlRFU1RfQVNTRVJUKHRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjp1
aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh0cnVlXy5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6cmVhbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodHJ1ZV8uaXNDb252ZXJ0aWJsZVRv
KEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHRydWVfLmlzQ29udmVy
dGlibGVUbyhKc29uOjpzdHJpbmdWYWx1ZSkpOwotCi0gICAvLyBOZXZlciBva2F5Ci0gICBKU09O
VEVTVF9BU1NFUlQoIXRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlQoIXRydWVfLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1
ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdHJ1ZV8uYXNCb29sKCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHRydWVfLmFzSW50KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKDEsIHRydWVfLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgxLCB0cnVlXy5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwg
dHJ1ZV8uYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgxLjAsIHRy
dWVfLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEuMCwgdHJ1ZV8uYXNG
bG9hdCgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNlLCBmYWxzZV8uYXNCb29s
KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIGZhbHNlXy5hc0ludCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgwLCBmYWxzZV8uYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDAsIGZhbHNlXy5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMCwgZmFsc2VfLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoMC4wLCBmYWxzZV8uYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4w
LCBmYWxzZV8uYXNGbG9hdCgpKTsKLX0KLQotCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3Qs
IGludGVnZXJzICkKLXsKLSAgIElzQ2hlY2sgY2hlY2tzOwotICAgSnNvbjo6VmFsdWUgdmFsOwot
Ci0gICAvLyBDb252ZXJzaW9ucyB0aGF0IGRvbid0IGRlcGVuZCBvbiB0aGUgdmFsdWUuCi0gICBK
U09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTcpLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFs
VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNykuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUo
MTcpLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FT
U0VSVCghSnNvbjo6VmFsdWUoMTcpLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3KS5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6b2JqZWN0VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3VSku
aXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKEpz
b246OlZhbHVlKDE3VSkuaXNDb252ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQoSnNvbjo6VmFsdWUoMTdVKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9v
bGVhblZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3VSkuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghSnNvbjo6
VmFsdWUoMTdVKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKLQotICAgSlNP
TlRFU1RfQVNTRVJUKEpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjpyZWFs
VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1ZSgxNy4wKS5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVChKc29uOjpWYWx1
ZSgxNy4wKS5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVlKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlQoIUpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGlibGVUbyhKc29uOjphcnJheVZh
bHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIUpzb246OlZhbHVlKDE3LjApLmlzQ29udmVydGli
bGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotCi0gICAvLyBEZWZhdWx0IGludAotICAgdmFsID0g
SnNvbjo6VmFsdWUoSnNvbjo6aW50VmFsdWUpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
SnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0g
ICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBj
aGVja3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKLSAgIGNo
ZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAg
IGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVj
a0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
MCwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdl
c3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzVUludCgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgwLjAsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgwLjAsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZh
bHNlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMCIs
IHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gRGVmYXVsdCB1aW50Ci0gICB2YWwgPSBKc29uOjpW
YWx1ZShKc29uOjp1aW50VmFsdWUpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
dWludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hl
Y2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tz
LmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3Mu
aXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVj
a3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcygg
dmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVU
byhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZh
bC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0SW50
KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJbnQoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwg
dmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAiLCB2YWwu
YXNTdHJpbmcoKSk7Ci0KLSAgIC8vIERlZmF1bHQgcmVhbAotICAgdmFsID0gSnNvbjo6VmFsdWUo
SnNvbjo6cmVhbFZhbHVlKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxW
YWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBj
aGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBjaGVj
a3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNr
cy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNo
ZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
KCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNJ
bnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdEludCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNVSW50KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAu
MCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbC5h
c0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIwLjAiLCB2YWwuYXNT
dHJpbmcoKSk7Ci0KLSAgIC8vIFplcm8gKHNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCi0gICB2YWwg
PSBKc29uOjpWYWx1ZSgwKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZh
bHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlz
SW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUlu
dF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRl
Z3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNO
dW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBj
aGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc0lu
dCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0SW50KCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMC4w
LCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxzZSwgdmFsLmFz
Qm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAiLCB2YWwuYXNTdHJp
bmcoKSk7Ci0KLSAgIC8vIFplcm8gKHVuc2lnbmVkIGNvbnN0cnVjdG9yIGFyZykKLSAgIHZhbCA9
IEpzb246OlZhbHVlKDB1KTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRW
YWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5p
c0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJ
bnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50
ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlz
TnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwg
Y2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNJ
bnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdEludCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNVSW50KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKDAsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDAuMCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAu
MCwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbC5h
c0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIwIiwgdmFsLmFzU3Ry
aW5nKCkpOwotCi0gICAvLyBaZXJvIChmbG9hdGluZy1wb2ludCBjb25zdHJ1Y3RvciBhcmcpCi0g
ICB2YWwgPSBKc29uOjpWYWx1ZSgwLjApOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAg
Y2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hl
Y2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVj
a3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBj
aGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJ
cyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGli
bGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0
aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAs
IHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCB2YWwuYXNMYXJnZXN0
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDAsIHZhbC5hc1VJbnQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoMC4wLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmYWxz
ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjAuMCIs
IHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gMl4yMCAoc2lnbmVkIGNvbnN0cnVjdG9yIGFyZykK
LSAgIHZhbCA9IEpzb246OlZhbHVlKDEgPDwgMjApOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoSnNvbjo6aW50VmFsdWUsIHZhbC50eXBlKCkpOwotICAgY2hlY2tzID0gSXNDaGVjaygpOwot
ICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnQ2NF8gPSB0cnVlOwotICAg
Y2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludDY0XyA9IHRydWU7Ci0gICBj
aGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hl
Y2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoMSA8PCAyMCksIHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8
PCAyMCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEg
PDwgMjApLCB2YWwuYXNVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIw
KSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwg
MjApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjAp
LCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNC
b29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiMTA0ODU3NiIsIHZhbC5h
c1N0cmluZygpKTsKLQotICAgLy8gMl4yMCAodW5zaWduZWQgY29uc3RydWN0b3IgYXJnKQotICAg
dmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6VUludCgxIDw8IDIwKSk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChKc29uOjp1aW50VmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJ
c0NoZWNrKCk7Ci0gICBjaGVja3MuaXNJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9
IHRydWU7Ci0gICBjaGVja3MuaXNVSW50XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVf
ID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VS
VF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc1VJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoKDEgPDwgMjApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgoMSA8PCAyMCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoMSA8PCAyMCksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRy
dWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxMDQ4
NTc2IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyAyXjIwIChmbG9hdGluZy1wb2ludCBjb25z
dHJ1Y3RvciBhcmcpCi0gICB2YWwgPSBKc29uOjpWYWx1ZSgoMSA8PCAyMCkgLyAxLjApOwotCi0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQot
ICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50XyA9IHRydWU7Ci0gICBjaGVj
a3MuaXNJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzVUludF8gPSB0cnVlOwotICAgY2hlY2tz
LmlzVUludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAgY2hl
Y2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09O
VEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAg
SlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0ludCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgoMSA8PCAyMCksIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNVSW50KCkpOwotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKCgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoKDEgPDwgMjApLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTCgiMTA0ODU3Ni4wIiwgbm9ybWFsaXplRmxvYXRpbmdQb2ludFN0cih2YWwuYXNTdHJp
bmcoKSkpOwotCi0gICAvLyAtMl4yMAotICAgdmFsID0gSnNvbjo6VmFsdWUoLSgxIDw8IDIwKSk7
Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7
Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAg
Y2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsK
LSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAg
IEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVl
KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNJbnQoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLSgxIDw8IDIwKSwgdmFsLmFzTGFyZ2VzdEludCgp
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtKDEgPDwgMjApLCB2YWwuYXNEb3VibGUoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLSgxIDw8IDIwKSwgdmFsLmFzRmxvYXQoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoIi0xMDQ4NTc2IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAv
LyBpbnQzMiBtYXgKLSAgIHZhbCA9IEpzb246OlZhbHVlKGtpbnQzMm1heCk7Ci0KLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNr
cyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50
NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2
NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0Rv
dWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNJbnQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoa2ludDMybWF4LCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzVUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTChraW50MzJtYXgsIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKGtpbnQzMm1heCwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKGtmaW50MzJtYXgsIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCIyMTQ3NDgzNjQ3IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyBpbnQzMiBtaW4KLSAgIHZh
bCA9IEpzb246OlZhbHVlKGtpbnQzMm1pbik7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChK
c29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAg
IGNoZWNrcy5pc0ludF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNo
ZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAg
IGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVj
a0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChraW50MzJtaW4sIHZhbC5hc0ludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50
MzJtaW4sIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2lu
dDMybWluLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDMy
bWluLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwu
YXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiLTIxNDc0ODM2NDgi
LCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIHVpbnQzMiBtYXgKLSAgIHZhbCA9IEpzb246OlZh
bHVlKGt1aW50MzJtYXgpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6dWludFZh
bHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlz
SW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJ
bnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5p
c0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX1RIUk9XUyhpbnRWYWwuY2xlYXIoKSk7CiAKLSNpZm5kZWYgSlNPTl9OT19J
TlQ2NAotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50MzJtYXgsIHZhbC5hc0xhcmdlc3RJ
bnQoKSk7Ci0jZW5kaWYKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChrdWludDMybWF4LCB2YWwu
YXNVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50MzJtYXgsIHZhbC5hc0xh
cmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGt1aW50MzJtYXgsIHZhbC5h
c0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChrZnVpbnQzMm1heCwgdmFsLmFz
RmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsK
LSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjQyOTQ5NjcyOTUiLCB2YWwuYXNTdHJp
bmcoKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1MoaW50VmFsLnJlc2l6ZSgxKSk7CisgIEpT
T05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLnJlc2l6ZSgxKSk7CisgIEpTT05URVNUX0FTU0VS
VF9USFJPV1Mob2JqVmFsLnJlc2l6ZSgxKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhp
bnRWYWwuYXNDU3RyaW5nKCkpOworCisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mob2JqVmFsLmFz
U3RyaW5nKCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5hc1N0cmluZygpKTsK
KworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKHN0clZhbC5hc0ludCgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNJbnQoKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mo
YXJyVmFsLmFzSW50KCkpOworCisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Moc3RyVmFsLmFzVUlu
dCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNVSW50KCkpOworICBKU09O
VEVTVF9BU1NFUlRfVEhST1dTKGFyclZhbC5hc1VJbnQoKSk7CisKKyAgSlNPTlRFU1RfQVNTRVJU
X1RIUk9XUyhzdHJWYWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpW
YWwuYXNJbnQ2NCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwuYXNJbnQ2NCgp
KTsKKworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKHN0clZhbC5hc1VJbnQ2NCgpKTsKKyAgSlNP
TlRFU1RfQVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNVSW50NjQoKSk7CisgIEpTT05URVNUX0FTU0VS
VF9USFJPV1MoYXJyVmFsLmFzVUludDY0KCkpOworCisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mo
c3RyVmFsLmFzRG91YmxlKCkpOworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKG9ialZhbC5hc0Rv
dWJsZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwuYXNEb3VibGUoKSk7CisK
KyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhzdHJWYWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX1RIUk9XUyhvYmpWYWwuYXNGbG9hdCgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1RIUk9X
UyhhcnJWYWwuYXNGbG9hdCgpKTsKKworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKHN0clZhbC5h
c0Jvb2woKSk7CisgIEpTT05URVNUX0FTU0VSVF9USFJPV1Mob2JqVmFsLmFzQm9vbCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1RIUk9XUyhhcnJWYWwuYXNCb29sKCkpOwogCi0jaWZkZWYgSlNPTl9O
T19JTlQ2NAotICAgLy8gaW50NjQgbWF4Ci0gICB2YWwgPSBKc29uOjpWYWx1ZShkb3VibGUoa2lu
dDY0bWF4KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZh
bC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVf
ID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VS
VF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoZG91YmxlKGtpbnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChmbG9hdChraW50NjRtYXgpLCB2YWwuYXNGbG9hdCgpKTsKLSAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX1NUUklOR19FUVVBTCgiOS4yMjMzN2UrMTgiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAg
IC8vIGludDY0IG1pbgotICAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGtpbnQ2NG1pbikpOwot
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsK
LQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hl
Y2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0Nv
bnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlz
Q29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKGRvdWJsZShraW50NjRtaW4pLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoZmxvYXQoa2ludDY0bWluKSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJ
TkdfRVFVQUwoIi05LjIyMzM3ZSsxOCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gdWludDY0
IG1heAotICAgdmFsID0gSnNvbjo6VmFsdWUoZG91YmxlKGt1aW50NjRtYXgpKTsKLQotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNo
ZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tz
LmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZh
bCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChkb3Vi
bGUoa3VpbnQ2NG1heCksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TChmbG9hdChrdWludDY0bWF4KSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoIjEuODQ0NjdlKzE5IiwgdmFsLmFzU3RyaW5nKCkpOwotI2Vsc2UgIC8vIGlmZGVmIEpTT05f
Tk9fSU5UNjQKLSAgIC8vIDJeNDAgKHNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCi0gICB2YWwgPSBK
c29uOjpWYWx1ZShKc29uOjpJbnQ2NCgxKSA8PCA0MCk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChKc29uOjppbnRWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2so
KTsKLSAgIGNoZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNVSW50NjRfID0gdHJ1
ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9Q
UkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFs
LmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJU
KCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzSW50NjQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzTGFyZ2Vz
dEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDAp
LCB2YWwuYXNVSW50NjQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoKEpzb246OkludDY0
KDEpIDw8IDQwKSwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0Zsb2F0KCkpOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIxMDk5NTExNjI3Nzc2IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0g
ICAvLyAyXjQwICh1bnNpZ25lZCBjb25zdHJ1Y3RvciBhcmcpCi0gICB2YWwgPSBKc29uOjpWYWx1
ZShKc29uOjpVSW50NjQoMSkgPDwgNDApOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNv
bjo6dWludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAg
Y2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAg
Y2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwot
ICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNo
ZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNJbnQ2NCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0SW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5h
c1VJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwg
NDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNv
bjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9T
VFJJTkdfRVFVQUwoIjEwOTk1MTE2Mjc3NzYiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIDJe
NDAgKGZsb2F0aW5nLXBvaW50IGNvbnN0cnVjdG9yIGFyZykKLSAgIHZhbCA9IEpzb246OlZhbHVl
KChKc29uOjpJbnQ2NCgxKSA8PCA0MCkgLyAxLjApOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygp
OwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVl
OwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0
cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwu
aXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2
YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQo
IXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNJbnQ2NCgpKTsKLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0
SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCA0MCks
IHZhbC5hc1VJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6SW50NjQo
MSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCgoSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoKEpzb246OkludDY0KDEpIDw8IDQwKSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9TVFJJTkdfRVFVQUwoIjEwOTk1MTE2Mjc3NzYuMCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9p
bnRTdHIodmFsLmFzU3RyaW5nKCkpKTsKLQotICAgLy8gLTJeNDAKLSAgIHZhbCA9IEpzb246OlZh
bHVlKC0oSnNvbjo6SW50NjQoMSkgPDwgNDApKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwot
ICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0ludGVncmFsXyA9IHRydWU7
Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1
ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0K
LSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUp
KTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1
ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRW
YWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0
MCksIHZhbC5hc0ludDY0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC0oSnNvbjo6SW50
NjQoMSkgPDwgNDApLCB2YWwuYXNMYXJnZXN0SW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKC0oSnNvbjo6SW50NjQoMSkgPDwgNDApLCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoLShKc29uOjpJbnQ2NCgxKSA8PCA0MCksIHZhbC5hc0Zsb2F0KCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCItMTA5OTUxMTYyNzc3NiIsIHZhbC5hc1N0cmluZygpKTsK
LQotICAgLy8gaW50NjQgbWF4Ci0gICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpJbnQ2NChraW50
NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwu
dHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0g
dHJ1ZTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxf
ID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJp
Y18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tz
ICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51
bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtYXgsIHZh
bC5hc0ludDY0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1heCwgdmFsLmFz
TGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtYXgsIHZhbC5h
c1VJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtYXgsIHZhbC5hc0xh
cmdlc3RVSW50KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGRvdWJsZShraW50NjRtYXgp
LCB2YWwuYXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmxvYXQoa2ludDY0
bWF4KSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFs
LmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjkyMjMzNzIwMzY4
NTQ3NzU4MDciLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIGludDY0IG1heCAoZmxvYXRpbmcg
cG9pbnQgY29uc3RydWN0b3IpLiBOb3RlIHRoYXQga2ludDY0bWF4IGlzIG5vdCBleGFjdGx5Ci0g
ICAvLyByZXByZXNlbnRhYmxlIGFzIGEgZG91YmxlLCBhbmQgd2lsbCBiZSByb3VuZGVkIHVwIHRv
IGJlIGhpZ2hlci4KLSAgIHZhbCA9IEpzb246OlZhbHVlKGRvdWJsZShraW50NjRtYXgpKTsKLQot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0K
LSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc1VJbnQ2NF8gPSB0cnVlOwotICAg
Y2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0RvdWJsZV8gPSB0cnVlOwot
ICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNo
ZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXND
b252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTChKc29uOjpVSW50NjQoMSkgPDwgNjMsIHZhbC5hc1VJbnQ2NCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChKc29uOjpVSW50NjQoMSkgPDwgNjMsIHZhbC5hc0xhcmdlc3RVSW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHVpbnQ2NFRvRG91YmxlKEpzb246OlVJbnQ2NCgx
KSA8PCA2MyksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9h
dCh1aW50NjRUb0RvdWJsZShKc29uOjpVSW50NjQoMSkgPDwgNjMpKSwgdmFsLmFzRmxvYXQoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIjkuMjIzMzcyMDM2ODU0Nzc2ZSsxOCIsIG5vcm1hbGl6
ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsKLQotICAgLy8gaW50NjQgbWluCi0g
ICB2YWwgPSBKc29uOjpWYWx1ZShKc29uOjpJbnQ2NChraW50NjRtaW4pKTsKLQotICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKEpzb246OmludFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tz
ID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzSW50NjRfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0lu
dGVncmFsXyA9IHRydWU7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5p
c051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWws
IGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhK
c29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVU
byhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0
bWluLCB2YWwuYXNJbnQ2NCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChraW50NjRtaW4s
IHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZG91YmxlKGtp
bnQ2NG1pbiksIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9h
dChraW50NjRtaW4pLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0
cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiLTky
MjMzNzIwMzY4NTQ3NzU4MDgiLCB2YWwuYXNTdHJpbmcoKSk7Ci0KLSAgIC8vIGludDY0IG1pbiAo
ZmxvYXRpbmcgcG9pbnQgY29uc3RydWN0b3IpLiBOb3RlIHRoYXQga2ludDY0bWluICppcyogZXhh
Y3RseQotICAgLy8gcmVwcmVzZW50YWJsZSBhcyBhIGRvdWJsZS4KLSAgIHZhbCA9IEpzb246OlZh
bHVlKGRvdWJsZShraW50NjRtaW4pKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246
OnJlYWxWYWx1ZSwgdmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNo
ZWNrcy5pc0ludDY0XyA9IHRydWU7Ci0gICBjaGVja3MuaXNJbnRlZ3JhbF8gPSB0cnVlOwotICAg
Y2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBK
U09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjp1aW50VmFsdWUp
KTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGtpbnQ2NG1pbiwgdmFsLmFzSW50NjQoKSk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoa2ludDY0bWluLCB2YWwuYXNMYXJnZXN0SW50KCkp
OwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC05MjIzMzcyMDM2ODU0Nzc1ODA4LjAsIHZhbC5h
c0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtOTIyMzM3MjAzNjg1NDc3NTgw
OC4wLCB2YWwuYXNGbG9hdCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB2YWwu
YXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiLTkuMjIzMzcyMDM2
ODU0Nzc2ZSsxOCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsK
LQotICAgLy8gdWludDY0IG1heAotICAgdmFsID0gSnNvbjo6VmFsdWUoSnNvbjo6VUludDY0KGt1
aW50NjRtYXgpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OnVpbnRWYWx1ZSwg
dmFsLnR5cGUoKSk7Ci0KLSAgIGNoZWNrcyA9IElzQ2hlY2soKTsKLSAgIGNoZWNrcy5pc1VJbnQ2
NF8gPSB0cnVlOwotICAgY2hlY2tzLmlzSW50ZWdyYWxfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc0Rv
dWJsZV8gPSB0cnVlOwotICAgY2hlY2tzLmlzTnVtZXJpY18gPSB0cnVlOwotICAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoIGNoZWNrSXMoIHZhbCwgY2hlY2tzICkgKTsKLQotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51bGxWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmludFZhbHVlKSk7Ci0gICBKU09OVEVT
VF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWludFZhbHVlKSk7Ci0KLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTChrdWludDY0bWF4LCB2YWwuYXNVSW50NjQoKSk7Ci0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwoa3VpbnQ2NG1heCwgdmFsLmFzTGFyZ2VzdFVJbnQoKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwodWludDY0VG9Eb3VibGUoa3VpbnQ2NG1heCksIHZhbC5hc0Rv
dWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9hdCh1aW50NjRUb0RvdWJsZShr
dWludDY0bWF4KSksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRy
dWUsIHZhbC5hc0Jvb2woKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxODQ0
Njc0NDA3MzcwOTU1MTYxNSIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gdWludDY0IG1heCAo
ZmxvYXRpbmcgcG9pbnQgY29uc3RydWN0b3IpLiBOb3RlIHRoYXQga3VpbnQ2NG1heCBpcyBub3QK
LSAgIC8vIGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhIGRvdWJsZSwgYW5kIHdpbGwgYmUgcm91
bmRlZCB1cCB0byBiZSBoaWdoZXIuCi0gICB2YWwgPSBKc29uOjpWYWx1ZSh1aW50NjRUb0RvdWJs
ZShrdWludDY0bWF4KSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpyZWFsVmFs
dWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0gICBjaGVja3MuaXNE
b3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsKLSAgIEpTT05URVNU
X0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNU
X0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRF
U1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotCi0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoMTg0NDY3NDQwNzM3MDk1NTE2MTYuMCwgdmFsLmFzRG91Ymxl
KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDE4NDQ2NzQ0MDczNzA5NTUxNjE2LjAsIHZh
bC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKHRydWUsIHZhbC5hc0Jvb2wo
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIxLjg0NDY3NDQwNzM3MDk1NWUr
MTkiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKHZhbC5hc1N0cmluZygpKSk7CiAjZW5kaWYK
IH0KIAorSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIG9mZnNldEFjY2Vzc29ycykgeworICBK
c29uOjpWYWx1ZSB4OworICBKU09OVEVTVF9BU1NFUlQoeC5nZXRPZmZzZXRTdGFydCgpID09IDAp
OworICBKU09OVEVTVF9BU1NFUlQoeC5nZXRPZmZzZXRMaW1pdCgpID09IDApOworICB4LnNldE9m
ZnNldFN0YXJ0KDEwKTsKKyAgeC5zZXRPZmZzZXRMaW1pdCgyMCk7CisgIEpTT05URVNUX0FTU0VS
VCh4LmdldE9mZnNldFN0YXJ0KCkgPT0gMTApOworICBKU09OVEVTVF9BU1NFUlQoeC5nZXRPZmZz
ZXRMaW1pdCgpID09IDIwKTsKKyAgSnNvbjo6VmFsdWUgeSh4KTsKKyAgSlNPTlRFU1RfQVNTRVJU
KHkuZ2V0T2Zmc2V0U3RhcnQoKSA9PSAxMCk7CisgIEpTT05URVNUX0FTU0VSVCh5LmdldE9mZnNl
dExpbWl0KCkgPT0gMjApOworICBKc29uOjpWYWx1ZSB6OworICB6LnN3YXAoeSk7CisgIEpTT05U
RVNUX0FTU0VSVCh6LmdldE9mZnNldFN0YXJ0KCkgPT0gMTApOworICBKU09OVEVTVF9BU1NFUlQo
ei5nZXRPZmZzZXRMaW1pdCgpID09IDIwKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkuZ2V0T2Zmc2V0
U3RhcnQoKSA9PSAwKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHkuZ2V0T2Zmc2V0TGltaXQoKSA9PSAw
KTsKK30KIAotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBub25JbnRlZ2VycyApCi17Ci0g
ICBJc0NoZWNrIGNoZWNrczsKLSAgIEpzb246OlZhbHVlIHZhbDsKLQotICAgLy8gU21hbGwgcG9z
aXRpdmUgbnVtYmVyCi0gICB2YWwgPSBKc29uOjpWYWx1ZSgxLjUpOwotCi0gICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0g
SXNDaGVjaygpOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1l
cmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVj
a3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpp
bnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
OjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxl
VG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDEuNSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEu
NSwgdmFsLmFzRmxvYXQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzSW50
KCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIHZhbC5hc0xhcmdlc3RJbnQoKSk7Ci0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMSwgdmFsLmFzVUludCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgxLCB2YWwuYXNMYXJnZXN0VUludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9F
UVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCIxLjUw
IiwgdmFsLmFzU3RyaW5nKCkpOwotCi0gICAvLyBTbWFsbCBuZWdhdGl2ZSBudW1iZXIKLSAgIHZh
bCA9IEpzb246OlZhbHVlKC0xLjUpOwotCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6
cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsKLQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hl
Y2tzLmlzRG91YmxlXyA9IHRydWU7Ci0gICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09O
VEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNP
TlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6cmVhbFZhbHVlKSk7Ci0gICBK
U09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpib29sZWFuVmFsdWUpKTsK
LSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnN0cmluZ1ZhbHVl
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6bnVsbFZh
bHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6dWlu
dFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
YXJyYXlWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpz
b246Om9iamVjdFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtMS41LCB2YWwu
YXNEb3VibGUoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEuNSwgdmFsLmFzRmxvYXQo
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEsIHZhbC5hc0ludCgpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCgtMSwgdmFsLmFzTGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCB2YWwuYXNCb29sKCkpOwotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KCItMS41MCIsIHZhbC5hc1N0cmluZygpKTsKLQotICAgLy8gQSBiaXQgb3ZlciBpbnQzMiBtYXgK
LSAgIHZhbCA9IEpzb246OlZhbHVlKGtpbnQzMm1heCArIDAuNSk7Ci0KLSAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTChKc29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJ
c0NoZWNrKCk7Ci0gICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVy
aWNfID0gdHJ1ZTsKLSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNr
cyApICk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVp
bnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6
cmVhbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29u
Ojpib29sZWFuVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRv
KEpzb246OnN0cmluZ1ZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRp
YmxlVG8oSnNvbjo6bnVsbFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZl
cnRpYmxlVG8oSnNvbjo6aW50VmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCghdmFsLmlzQ29u
dmVydGlibGVUbyhKc29uOjphcnJheVZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6b2JqZWN0VmFsdWUpKTsKLQotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDIxNDc0ODM2NDcuNSwgdmFsLmFzRG91YmxlKCkpOwotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKGZsb2F0KDIxNDc0ODM2NDcuNSksIHZhbC5hc0Zsb2F0KCkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKDIxNDc0ODM2NDdVLCB2YWwuYXNVSW50KCkpOwotI2lmZGVmIEpTT05fSEFT
X0lOVDY0Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMjE0NzQ4MzY0N0wsIHZhbC5hc0xhcmdl
c3RJbnQoKSk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMjE0NzQ4MzY0N1UsIHZhbC5hc0xh
cmdlc3RVSW50KCkpOwotI2VuZGlmCi0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFs
LmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgiMjE0NzQ4MzY0Ny41MCIsIG5v
cm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFzU3RyaW5nKCkpKTsKLQotICAgLy8gQSBiaXQg
dW5kZXIgaW50MzIgbWluCi0gICB2YWwgPSBKc29uOjpWYWx1ZShraW50MzJtaW4gLSAwLjUpOwot
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6cmVhbFZhbHVlLCB2YWwudHlwZSgpKTsK
LQotICAgY2hlY2tzID0gSXNDaGVjaygpOwotICAgY2hlY2tzLmlzRG91YmxlXyA9IHRydWU7Ci0g
ICBjaGVja3MuaXNOdW1lcmljXyA9IHRydWU7Ci0gICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hl
Y2tJcyggdmFsLCBjaGVja3MgKSApOwotCi0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVy
dGlibGVUbyhKc29uOjpyZWFsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252
ZXJ0aWJsZVRvKEpzb246OmJvb2xlYW5WYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5p
c0NvbnZlcnRpYmxlVG8oSnNvbjo6c3RyaW5nVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VSVCgh
dmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpudWxsVmFsdWUpKTsKLSAgIEpTT05URVNUX0FTU0VS
VCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjppbnRWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNT
RVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnVpbnRWYWx1ZSkpOwotICAgSlNPTlRFU1Rf
QVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OmFycmF5VmFsdWUpKTsKLSAgIEpTT05U
RVNUX0FTU0VSVCghdmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpvYmplY3RWYWx1ZSkpOwotCi0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTIxNDc0ODM2NDguNSwgdmFsLmFzRG91YmxlKCkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZsb2F0KC0yMTQ3NDgzNjQ4LjUpLCB2YWwuYXNGbG9h
dCgpKTsKLSNpZmRlZiBKU09OX0hBU19JTlQ2NAotICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKC1K
c29uOjpJbnQ2NCgxKTw8IDMxLCB2YWwuYXNMYXJnZXN0SW50KCkpOwotI2VuZGlmCi0gICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNUX0FTU0VS
VF9FUVVBTCgiLTIxNDc0ODM2NDguNTAiLCBub3JtYWxpemVGbG9hdGluZ1BvaW50U3RyKHZhbC5h
c1N0cmluZygpKSk7Ci0KLSAgIC8vIEEgYml0IG92ZXIgdWludDMyIG1heAotICAgdmFsID0gSnNv
bjo6VmFsdWUoa3VpbnQzMm1heCArIDAuNSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChK
c29uOjpyZWFsVmFsdWUsIHZhbC50eXBlKCkpOwotCi0gICBjaGVja3MgPSBJc0NoZWNrKCk7Ci0g
ICBjaGVja3MuaXNEb3VibGVfID0gdHJ1ZTsKLSAgIGNoZWNrcy5pc051bWVyaWNfID0gdHJ1ZTsK
LSAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzKCB2YWwsIGNoZWNrcyApICk7Ci0KLSAg
IEpTT05URVNUX0FTU0VSVCh2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246OnJlYWxWYWx1ZSkpOwot
ICAgSlNPTlRFU1RfQVNTRVJUKHZhbC5pc0NvbnZlcnRpYmxlVG8oSnNvbjo6Ym9vbGVhblZhbHVl
KSk7Ci0gICBKU09OVEVTVF9BU1NFUlQodmFsLmlzQ29udmVydGlibGVUbyhKc29uOjpzdHJpbmdW
YWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246Om51
bGxWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJsZVRvKEpzb246
OmludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8oSnNv
bjo6dWludFZhbHVlKSk7Ci0gICBKU09OVEVTVF9BU1NFUlQoIXZhbC5pc0NvbnZlcnRpYmxlVG8o
SnNvbjo6YXJyYXlWYWx1ZSkpOwotICAgSlNPTlRFU1RfQVNTRVJUKCF2YWwuaXNDb252ZXJ0aWJs
ZVRvKEpzb246Om9iamVjdFZhbHVlKSk7Ci0KLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCg0Mjk0
OTY3Mjk1LjUsIHZhbC5hc0RvdWJsZSgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChmbG9h
dCg0Mjk0OTY3Mjk1LjUpLCB2YWwuYXNGbG9hdCgpKTsKLSNpZmRlZiBKU09OX0hBU19JTlQ2NAot
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKChKc29uOjpJbnQ2NCgxKSA8PCAzMiktMSwgdmFsLmFz
TGFyZ2VzdEludCgpKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgoSnNvbjo6VUludDY0KDEp
IDw8IDMyKS1Kc29uOjpVSW50NjQoMSksIHZhbC5hc0xhcmdlc3RVSW50KCkpOwotI2VuZGlmCi0g
ICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgdmFsLmFzQm9vbCgpKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTCgiNDI5NDk2NzI5NS41MCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIo
dmFsLmFzU3RyaW5nKCkpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBTdGF0aWNTdHJp
bmcpIHsKKyAgY2hhciBtdXRhbnRbXSA9ICJoZWxsbyI7CisgIEpzb246OlN0YXRpY1N0cmluZyBz
cyhtdXRhbnQpOworICBKc29uOjpTdHJpbmcgcmVndWxhcihtdXRhbnQpOworICBtdXRhbnRbMV0g
PSAnYSc7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImhhbGxvIiwgc3MuY19zdHIo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImhlbGxvIiwgcmVndWxhci5jX3N0
cigpKTsKKyAgeworICAgIEpzb246OlZhbHVlIHJvb3Q7CisgICAgcm9vdFsidG9wIl0gPSBzczsK
KyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJoYWxsbyIsIHJvb3RbInRvcCJdLmFz
U3RyaW5nKCkpOworICAgIG11dGFudFsxXSA9ICd1JzsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKCJodWxsbyIsIHJvb3RbInRvcCJdLmFzU3RyaW5nKCkpOworICB9CisgIHsKKyAg
ICBKc29uOjpWYWx1ZSByb290OworICAgIHJvb3RbInRvcCJdID0gcmVndWxhcjsKKyAgICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJoZWxsbyIsIHJvb3RbInRvcCJdLmFzU3RyaW5nKCkp
OworICAgIG11dGFudFsxXSA9ICd1JzsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCJoZWxsbyIsIHJvb3RbInRvcCJdLmFzU3RyaW5nKCkpOworICB9Cit9CiAKLSAgIHZhbCA9IEpz
b246OlZhbHVlKDEuMjM0NTY3ODkwMTIzNCk7Ci0gICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VR
VUFMKCAiMS4yMzQ1Njc4OTAxMjM0MCIsIG5vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIodmFsLmFz
U3RyaW5nKCkpKTsKK0pTT05URVNUX0ZJWFRVUkUoVmFsdWVUZXN0LCBXaWRlU3RyaW5nKSB7Cisg
IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAvaXNzdWVz
Lzc1NgorICBjb25zdCBzdGQ6OnN0cmluZyB1bmkgPSB1OCLlvI/vvIzov5siOyAvLyAiXHU1ZjBm
XHVmZjBjXHU4ZmRiIgorICBzdGQ6OnN0cmluZyBzdHlsZWQ7CisgIHsKKyAgICBKc29uOjpWYWx1
ZSB2OworICAgIHZbImFiYyJdID0gdW5pOworICAgIHN0eWxlZCA9IHYudG9TdHlsZWRTdHJpbmco
KTsKKyAgfQorICBKc29uOjpWYWx1ZSByb290OworICB7CisgICAgSlNPTkNQUF9TVFJJTkcgZXJy
czsKKyAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzKHN0eWxlZCk7CisgICAgYm9vbCBvayA9IHBh
cnNlRnJvbVN0cmVhbShKc29uOjpDaGFyUmVhZGVyQnVpbGRlcigpLCBpc3MsICZyb290LCAmZXJy
cyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICBzdGQ6
OmNlcnIgPDwgImVycnM6ICIgPDwgZXJycyA8PCBzdGQ6OmVuZGw7CisgICAgfQorICB9CisgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwocm9vdFsiYWJjIl0uYXNTdHJpbmcoKSwgdW5pKTsK
IH0KIAorSlNPTlRFU1RfRklYVFVSRShWYWx1ZVRlc3QsIENvbW1lbnRCZWZvcmUpIHsKKyAgSnNv
bjo6VmFsdWUgdmFsOyAvLyBmaWxsIHZhbAorICB2YWwuc2V0Q29tbWVudChKc29uOjpTdHJpbmco
Ii8vIHRoaXMgY29tbWVudCBzaG91bGQgYXBwZWFyIGJlZm9yZSIpLAorICAgICAgICAgICAgICAg
ICBKc29uOjpjb21tZW50QmVmb3JlKTsKKyAgSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlciB3YnVp
bGRlcjsKKyAgd2J1aWxkZXIuc2V0dGluZ3NfWyJjb21tZW50U3R5bGUiXSA9ICJBbGwiOworICB7
CisgICAgY2hhciBjb25zdCBleHBlY3RlZFtdID0gIi8vIHRoaXMgY29tbWVudCBzaG91bGQgYXBw
ZWFyIGJlZm9yZVxubnVsbCI7CisgICAgSnNvbjo6U3RyaW5nIHJlc3VsdCA9IEpzb246OndyaXRl
U3RyaW5nKHdidWlsZGVyLCB2YWwpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
ZXhwZWN0ZWQsIHJlc3VsdCk7CisgICAgSnNvbjo6U3RyaW5nIHJlczIgPSB2YWwudG9TdHlsZWRT
dHJpbmcoKTsKKyAgICBKc29uOjpTdHJpbmcgZXhwMiA9ICJcbiI7CisgICAgZXhwMiArPSBleHBl
Y3RlZDsKKyAgICBleHAyICs9ICJcbiI7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TChleHAyLCByZXMyKTsKKyAgfQorICBKc29uOjpWYWx1ZSBvdGhlciA9ICJoZWxsbyI7CisgIHZh
bC5zd2FwUGF5bG9hZChvdGhlcik7CisgIHsKKyAgICBjaGFyIGNvbnN0IGV4cGVjdGVkW10gPSAi
Ly8gdGhpcyBjb21tZW50IHNob3VsZCBhcHBlYXIgYmVmb3JlXG5cImhlbGxvXCIiOworICAgIEpz
b246OlN0cmluZyByZXN1bHQgPSBKc29uOjp3cml0ZVN0cmluZyh3YnVpbGRlciwgdmFsKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworICAgIEpz
b246OlN0cmluZyByZXMyID0gdmFsLnRvU3R5bGVkU3RyaW5nKCk7CisgICAgSnNvbjo6U3RyaW5n
IGV4cDIgPSAiXG4iOworICAgIGV4cDIgKz0gZXhwZWN0ZWQ7CisgICAgZXhwMiArPSAiXG4iOwor
ICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwMiwgcmVzMik7CisgICAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTCgibnVsbFxuIiwgb3RoZXIudG9TdHlsZWRTdHJpbmcoKSk7
CisgIH0KKyAgdmFsID0gImhlbGxvIjsKKyAgLy8gdmFsLnNldENvbW1lbnQoIi8vIHRoaXMgY29t
bWVudCBzaG91bGQgYXBwZWFyIGJlZm9yZSIsCisgIC8vIEpzb246OkNvbW1lbnRQbGFjZW1lbnQ6
OmNvbW1lbnRCZWZvcmUpOyBBc3NpZ25tZW50IG92ZXItd3JpdGVzIGNvbW1lbnRzLgorICB7Cisg
ICAgY2hhciBjb25zdCBleHBlY3RlZFtdID0gIlwiaGVsbG9cIiI7CisgICAgSnNvbjo6U3RyaW5n
IHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKHdidWlsZGVyLCB2YWwpOworICAgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisgICAgSnNvbjo6U3RyaW5n
IHJlczIgPSB2YWwudG9TdHlsZWRTdHJpbmcoKTsKKyAgICBKc29uOjpTdHJpbmcgZXhwMiA9ICIi
OworICAgIGV4cDIgKz0gZXhwZWN0ZWQ7CisgICAgZXhwMiArPSAiXG4iOworICAgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwMiwgcmVzMik7CisgIH0KK30KKworSlNPTlRFU1RfRklY
VFVSRShWYWx1ZVRlc3QsIHplcm9lcykgeworICBjaGFyIGNvbnN0IGNzdHJbXSA9ICJoXDBpIjsK
KyAgSnNvbjo6U3RyaW5nIGJpbmFyeShjc3RyLCBzaXplb2YoY3N0cikpOyAvLyBpbmNsdWRlIHRy
YWlsaW5nIDAKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDRVLCBiaW5hcnkubGVuZ3RoKCkpOwor
ICBKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyIGI7CisgIHsKKyAgICBKc29uOjpWYWx1ZSByb290
OworICAgIHJvb3QgPSBiaW5hcnk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChi
aW5hcnksIHJvb3QuYXNTdHJpbmcoKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgdG9wW10g
PSAidG9wIjsKKyAgICBKc29uOjpWYWx1ZSByb290OworICAgIHJvb3RbdG9wXSA9IGJpbmFyeTsK
KyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGJpbmFyeSwgcm9vdFt0b3BdLmFzU3Ry
aW5nKCkpOworICAgIEpzb246OlZhbHVlIHJlbW92ZWQ7CisgICAgYm9vbCBkaWQ7CisgICAgZGlk
ID0gcm9vdC5yZW1vdmVNZW1iZXIodG9wLCB0b3AgKyBzaXplb2YodG9wKSAtIDFVLCAmcmVtb3Zl
ZCk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGRpZCk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTChiaW5hcnksIHJlbW92ZWQuYXNTdHJpbmcoKSk7CisgICAgZGlkID0gcm9vdC5yZW1v
dmVNZW1iZXIodG9wLCB0b3AgKyBzaXplb2YodG9wKSAtIDFVLCAmcmVtb3ZlZCk7CisgICAgSlNP
TlRFU1RfQVNTRVJUKCFkaWQpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoYmlu
YXJ5LCByZW1vdmVkLmFzU3RyaW5nKCkpOyAvLyBzdGlsbAorICB9Cit9CiAKLXZvaWQKLVZhbHVl
VGVzdDo6Y2hlY2tDb25zdE1lbWJlckNvdW50KCBjb25zdCBKc29uOjpWYWx1ZSAmdmFsdWUsIHVu
c2lnbmVkIGludCBleHBlY3RlZENvdW50ICkKLXsKLSAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7
Ci0gICBKc29uOjpWYWx1ZTo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1ZS5lbmQoKTsKLSAg
IGZvciAoIEpzb246OlZhbHVlOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlLmJlZ2luKCk7IGl0
ICE9IGl0RW5kOyArK2l0ICkKLSAgIHsKLSAgICAgICsrY291bnQ7Ci0gICB9Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoIGV4cGVjdGVkQ291bnQsIGNvdW50ICkgPDwgIkpzb246OlZhbHVlOjpj
b25zdF9pdGVyYXRvciI7CitKU09OVEVTVF9GSVhUVVJFKFZhbHVlVGVzdCwgemVyb2VzSW5LZXlz
KSB7CisgIGNoYXIgY29uc3QgY3N0cltdID0gImhcMGkiOworICBKc29uOjpTdHJpbmcgYmluYXJ5
KGNzdHIsIHNpemVvZihjc3RyKSk7IC8vIGluY2x1ZGUgdHJhaWxpbmcgMAorICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoNFUsIGJpbmFyeS5sZW5ndGgoKSk7CisgIHsKKyAgICBKc29uOjpWYWx1ZSBy
b290OworICAgIHJvb3RbYmluYXJ5XSA9ICJ0aGVyZSI7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NU
UklOR19FUVVBTCgidGhlcmUiLCByb290W2JpbmFyeV0uYXNTdHJpbmcoKSk7CisgICAgSlNPTlRF
U1RfQVNTRVJUKCFyb290LmlzTWVtYmVyKCJoIikpOworICAgIEpTT05URVNUX0FTU0VSVChyb290
LmlzTWVtYmVyKGJpbmFyeSkpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoCisg
ICAgICAgICJ0aGVyZSIsIHJvb3QuZ2V0KGJpbmFyeSwgSnNvbjo6VmFsdWU6Om51bGxSZWYpLmFz
U3RyaW5nKCkpOworICAgIEpzb246OlZhbHVlIHJlbW92ZWQ7CisgICAgYm9vbCBkaWQ7CisgICAg
ZGlkID0gcm9vdC5yZW1vdmVNZW1iZXIoYmluYXJ5LmRhdGEoKSwgYmluYXJ5LmRhdGEoKSArIGJp
bmFyeS5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVtb3ZlZCk7Cisg
ICAgSlNPTlRFU1RfQVNTRVJUKGRpZCk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TCgidGhlcmUiLCByZW1vdmVkLmFzU3RyaW5nKCkpOworICAgIGRpZCA9IHJvb3QucmVtb3ZlTWVt
YmVyKGJpbmFyeS5kYXRhKCksIGJpbmFyeS5kYXRhKCkgKyBiaW5hcnkubGVuZ3RoKCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJnJlbW92ZWQpOworICAgIEpTT05URVNUX0FTU0VSVCgh
ZGlkKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJ0aGVyZSIsIHJlbW92ZWQu
YXNTdHJpbmcoKSk7IC8vIHN0aWxsCisgICAgSlNPTlRFU1RfQVNTRVJUKCFyb290LmlzTWVtYmVy
KGJpbmFyeSkpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoCisgICAgICAgICIi
LCByb290LmdldChiaW5hcnksIEpzb246OlZhbHVlOjpudWxsUmVmKS5hc1N0cmluZygpKTsKKyAg
fQogfQogCi12b2lkCi1WYWx1ZVRlc3Q6OmNoZWNrTWVtYmVyQ291bnQoIEpzb246OlZhbHVlICZ2
YWx1ZSwgdW5zaWduZWQgaW50IGV4cGVjdGVkQ291bnQgKQotewotICAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKGV4cGVjdGVkQ291bnQsIHZhbHVlLnNpemUoKSApOworSlNPTlRFU1RfRklYVFVSRShW
YWx1ZVRlc3QsIHNwZWNpYWxGbG9hdHMpIHsKKyAgSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlciBi
OworICBiLnNldHRpbmdzX1sidXNlU3BlY2lhbEZsb2F0cyJdID0gdHJ1ZTsKIAotICAgdW5zaWdu
ZWQgaW50IGNvdW50ID0gMDsKLSAgIEpzb246OlZhbHVlOjppdGVyYXRvciBpdEVuZCA9IHZhbHVl
LmVuZCgpOwotICAgZm9yICggSnNvbjo6VmFsdWU6Oml0ZXJhdG9yIGl0ID0gdmFsdWUuYmVnaW4o
KTsgaXQgIT0gaXRFbmQ7ICsraXQgKQotICAgewotICAgICAgKytjb3VudDsKLSAgIH0KLSAgIEpT
T05URVNUX0FTU0VSVF9FUVVBTCggZXhwZWN0ZWRDb3VudCwgY291bnQgKSA8PCAiSnNvbjo6VmFs
dWU6Oml0ZXJhdG9yIjsKKyAgSnNvbjo6VmFsdWUgdiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCk7CisgIEpzb246OlN0cmluZyBleHBlY3RlZCA9ICJOYU4iOworICBK
c29uOjpTdHJpbmcgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7CisgIEpTT05URVNU
X0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CiAKLSAgIEpTT05URVNUX0FT
U0VSVF9QUkVEKCBjaGVja0NvbnN0TWVtYmVyQ291bnQodmFsdWUsIGV4cGVjdGVkQ291bnQpICk7
CisgIHYgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisgIGV4cGVj
dGVkID0gIkluZmluaXR5IjsKKyAgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgdik7Cisg
IEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7CisKKyAgdiA9
IC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisgIGV4cGVjdGVkID0g
Ii1JbmZpbml0eSI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOwogfQogCitKU09OVEVT
VF9GSVhUVVJFKFZhbHVlVGVzdCwgcHJlY2lzaW9uKSB7CisgIEpzb246OlN0cmVhbVdyaXRlckJ1
aWxkZXIgYjsKKyAgYi5zZXR0aW5nc19bInByZWNpc2lvbiJdID0gNTsKKworICBKc29uOjpWYWx1
ZSB2ID0gMTAwLjAgLyAzOworICBKc29uOjpTdHJpbmcgZXhwZWN0ZWQgPSAiMzMuMzMzIjsKKyAg
SnNvbjo6U3RyaW5nIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworCisgIHYgPSAwLjI1MDAw
MDAwOworICBleHBlY3RlZCA9ICIwLjI1IjsKKyAgcmVzdWx0ID0gSnNvbjo6d3JpdGVTdHJpbmco
Yiwgdik7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIHJlc3VsdCk7
CisKKyAgdiA9IDAuMjU2MzQ1NjsKKyAgZXhwZWN0ZWQgPSAiMC4yNTYzNSI7CisgIHJlc3VsdCA9
IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KGV4cGVjdGVkLCByZXN1bHQpOworCisgIGIuc2V0dGluZ3NfWyJwcmVjaXNpb24iXSA9IDE7Cisg
IGV4cGVjdGVkID0gIjAuMyI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOwor
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworCisgIGIu
c2V0dGluZ3NfWyJwcmVjaXNpb24iXSA9IDE3OworICB2ID0gMTIzNDg1NzQ3NjMwNS4yNTYzNDU2
OTQ4NzM3NDA1NDUwNjg7CisgIGV4cGVjdGVkID0gIjEyMzQ4NTc0NzYzMDUuMjU2MyI7CisgIHJl
c3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5H
X0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworCisgIGIuc2V0dGluZ3NfWyJwcmVjaXNpb24iXSA9
IDI0OworICB2ID0gMC4yNTYzNDU2OTQ4NzM3NDA1NDUwNjg7CisgIGV4cGVjdGVkID0gIjAuMjU2
MzQ1Njk0ODczNzQwNTQiOworICByZXN1bHQgPSBKc29uOjp3cml0ZVN0cmluZyhiLCB2KTsKKyAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgcmVzdWx0KTsKKworICBiLnNl
dHRpbmdzX1sicHJlY2lzaW9uIl0gPSA1OworICBiLnNldHRpbmdzX1sicHJlY2lzaW9uVHlwZSJd
ID0gImRlY2ltYWwiOworICB2ID0gMC4yNTYzNDU2OTQ4NzM3NDA1NDUwNjg7CisgIGV4cGVjdGVk
ID0gIjAuMjU2MzUiOworICByZXN1bHQgPSBKc29uOjp3cml0ZVN0cmluZyhiLCB2KTsKKyAgSlNP
TlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChleHBlY3RlZCwgcmVzdWx0KTsKKworICBiLnNldHRp
bmdzX1sicHJlY2lzaW9uIl0gPSAxOworICBiLnNldHRpbmdzX1sicHJlY2lzaW9uVHlwZSJdID0g
ImRlY2ltYWwiOworICB2ID0gMC4yNTYzNDU2OTQ4NzM3NDA1NDUwNjg7CisgIGV4cGVjdGVkID0g
IjAuMyI7CisgIHJlc3VsdCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHYpOworICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCByZXN1bHQpOworCisgIGIuc2V0dGluZ3NfWyJw
cmVjaXNpb24iXSA9IDEwOworICBiLnNldHRpbmdzX1sicHJlY2lzaW9uVHlwZSJdID0gImRlY2lt
YWwiOworICB2ID0gMC4yMzMwMDAwMDsKKyAgZXhwZWN0ZWQgPSAiMC4yMzMiOworICByZXN1bHQg
PSBKc29uOjp3cml0ZVN0cmluZyhiLCB2KTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVB
TChleHBlY3RlZCwgcmVzdWx0KTsKK30KIAotVmFsdWVUZXN0OjpJc0NoZWNrOjpJc0NoZWNrKCkK
LSAgIDogaXNPYmplY3RfKCBmYWxzZSApCi0gICAsIGlzQXJyYXlfKCBmYWxzZSApCi0gICAsIGlz
Qm9vbF8oIGZhbHNlICkKLSAgICwgaXNTdHJpbmdfKCBmYWxzZSApCi0gICAsIGlzTnVsbF8oIGZh
bHNlICkKLSAgICwgaXNJbnRfKCBmYWxzZSApCi0gICAsIGlzSW50NjRfKCBmYWxzZSApCi0gICAs
IGlzVUludF8oIGZhbHNlICkKLSAgICwgaXNVSW50NjRfKCBmYWxzZSApCi0gICAsIGlzSW50ZWdy
YWxfKCBmYWxzZSApCi0gICAsIGlzRG91YmxlXyggZmFsc2UgKQotICAgLCBpc051bWVyaWNfKCBm
YWxzZSApCi17Ci19Ci0KLQotdm9pZCAKLVZhbHVlVGVzdDo6Y2hlY2tJcyggY29uc3QgSnNvbjo6
VmFsdWUgJnZhbHVlLCBjb25zdCBJc0NoZWNrICZjaGVjayApCi17Ci0gICBKU09OVEVTVF9BU1NF
UlRfRVFVQUwoY2hlY2suaXNPYmplY3RfLCB2YWx1ZS5pc09iamVjdCgpICk7Ci0gICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoY2hlY2suaXNBcnJheV8sIHZhbHVlLmlzQXJyYXkoKSApOwotICAgSlNP
TlRFU1RfQVNTRVJUX0VRVUFMKGNoZWNrLmlzQm9vbF8sIHZhbHVlLmlzQm9vbCgpICk7Ci0gICBK
U09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNEb3VibGVfLCB2YWx1ZS5pc0RvdWJsZSgpICk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNJbnRfLCB2YWx1ZS5pc0ludCgpICk7
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNVSW50XywgdmFsdWUuaXNVSW50KCkg
KTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc0ludGVncmFsXywgdmFsdWUuaXNJ
bnRlZ3JhbCgpICk7Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoY2hlY2suaXNOdW1lcmljXywg
dmFsdWUuaXNOdW1lcmljKCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVjay5pc1N0
cmluZ18sIHZhbHVlLmlzU3RyaW5nKCkgKTsKLSAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChjaGVj
ay5pc051bGxfLCB2YWx1ZS5pc051bGwoKSApOworc3RydWN0IFdyaXRlclRlc3QgOiBKc29uVGVz
dDo6VGVzdENhc2Uge307CiAKLSNpZmRlZiBKU09OX0hBU19JTlQ2NAotICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKGNoZWNrLmlzSW50NjRfLCB2YWx1ZS5pc0ludDY0KCkgKTsKLSAgIEpTT05URVNU
X0FTU0VSVF9FUVVBTChjaGVjay5pc1VJbnQ2NF8sIHZhbHVlLmlzVUludDY0KCkgKTsKLSNlbHNl
Ci0gICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHZhbHVlLmlzSW50NjQoKSApOwotICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKGZhbHNlLCB2YWx1ZS5pc1VJbnQ2NCgpICk7Ci0jZW5kaWYK
K0pTT05URVNUX0ZJWFRVUkUoV3JpdGVyVGVzdCwgZHJvcE51bGxQbGFjZWhvbGRlcnMpIHsKKyAg
SnNvbjo6RmFzdFdyaXRlciB3cml0ZXI7CisgIEpzb246OlZhbHVlIG51bGxWYWx1ZTsKKyAgSlNP
TlRFU1RfQVNTRVJUKHdyaXRlci53cml0ZShudWxsVmFsdWUpID09ICJudWxsXG4iKTsKKworICB3
cml0ZXIuZHJvcE51bGxQbGFjZWhvbGRlcnMoKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHdyaXRlci53
cml0ZShudWxsVmFsdWUpID09ICJcbiIpOworfQorCitzdHJ1Y3QgU3RyZWFtV3JpdGVyVGVzdCA6
IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVSRShTdHJlYW1Xcml0ZXJU
ZXN0LCBkcm9wTnVsbFBsYWNlaG9sZGVycykgeworICBKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVy
IGI7CisgIEpzb246OlZhbHVlIG51bGxWYWx1ZTsKKyAgYi5zZXR0aW5nc19bImRyb3BOdWxsUGxh
Y2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgSlNPTlRFU1RfQVNTRVJUKEpzb246OndyaXRlU3RyaW5n
KGIsIG51bGxWYWx1ZSkgPT0gIm51bGwiKTsKKyAgYi5zZXR0aW5nc19bImRyb3BOdWxsUGxhY2Vo
b2xkZXJzIl0gPSB0cnVlOworICBKU09OVEVTVF9BU1NFUlQoSnNvbjo6d3JpdGVTdHJpbmcoYiwg
bnVsbFZhbHVlKS5lbXB0eSgpKTsKK30KKworSlNPTlRFU1RfRklYVFVSRShTdHJlYW1Xcml0ZXJU
ZXN0LCB3cml0ZVplcm9lcykgeworICBKc29uOjpTdHJpbmcgYmluYXJ5KCJoaSIsIDMpOyAvLyBp
bmNsdWRlIHRyYWlsaW5nIDAKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDMsIGJpbmFyeS5sZW5n
dGgoKSk7CisgIEpzb246OlN0cmluZyBleHBlY3RlZCgiXCJoaVxcdTAwMDBcIiIpOyAvLyB1bmlj
b2RlZCB6ZXJvCisgIEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXIgYjsKKyAgeworICAgIEpzb246
OlZhbHVlIHJvb3Q7CisgICAgcm9vdCA9IGJpbmFyeTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKGJpbmFyeSwgcm9vdC5hc1N0cmluZygpKTsKKyAgICBKc29uOjpTdHJpbmcgb3V0
ID0gSnNvbjo6d3JpdGVTdHJpbmcoYiwgcm9vdCk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KGV4cGVjdGVkLnNpemUoKSwgb3V0LnNpemUoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklO
R19FUVVBTChleHBlY3RlZCwgb3V0KTsKKyAgfQorICB7CisgICAgSnNvbjo6VmFsdWUgcm9vdDsK
KyAgICByb290WyJ0b3AiXSA9IGJpbmFyeTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VR
VUFMKGJpbmFyeSwgcm9vdFsidG9wIl0uYXNTdHJpbmcoKSk7CisgICAgSnNvbjo6U3RyaW5nIG91
dCA9IEpzb246OndyaXRlU3RyaW5nKGIsIHJvb3RbInRvcCJdKTsKKyAgICBKU09OVEVTVF9BU1NF
UlRfU1RSSU5HX0VRVUFMKGV4cGVjdGVkLCBvdXQpOworICB9CiB9CiAKLUpTT05URVNUX0ZJWFRV
UkUoIFZhbHVlVGVzdCwgY29tcGFyZU51bGwgKQotewotICAgIEpTT05URVNUX0FTU0VSVF9QUkVE
KCBjaGVja0lzRXF1YWwoIEpzb246OlZhbHVlKCksIEpzb246OlZhbHVlKCkgKSApOworc3RydWN0
IFJlYWRlclRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307CisKK0pTT05URVNUX0ZJWFRVUkUo
UmVhZGVyVGVzdCwgcGFyc2VXaXRoTm9FcnJvcnMpIHsKKyAgSnNvbjo6UmVhZGVyIHJlYWRlcjsK
KyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgYm9vbCBvayA9IHJlYWRlci5wYXJzZSgieyBcInByb3Bl
cnR5XCIgOiBcInZhbHVlXCIgfSIsIHJvb3QpOworICBKU09OVEVTVF9BU1NFUlQob2spOworICBK
U09OVEVTVF9BU1NFUlQocmVhZGVyLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKS5lbXB0eSgp
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJlYWRlci5nZXRTdHJ1Y3R1cmVkRXJyb3JzKCkuZW1wdHko
KSk7CiB9CiAKLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBjb21wYXJlSW50ICkKLXsK
LSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIDAsIDEwICkgKTsKLSAgICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCAxMCwgMTAgKSApOwotICAgIEpTT05U
RVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIC0xMCwgLTEwICkgKTsKLSAgICBKU09OVEVT
VF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIC0xMCwgMCApICk7CitKU09OVEVTVF9GSVhUVVJF
KFJlYWRlclRlc3QsIHBhcnNlV2l0aE5vRXJyb3JzVGVzdGluZ09mZnNldHMpIHsKKyAgSnNvbjo6
UmVhZGVyIHJlYWRlcjsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgYm9vbCBvayA9IHJlYWRlci5w
YXJzZSgieyBcInByb3BlcnR5XCIgOiBbXCJ2YWx1ZVwiLCBcInZhbHVlMlwiXSwgXCJvYmpcIiA6
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAieyBcIm5lc3RlZFwiIDogMTIzLCBcImJvb2xc
IiA6IHRydWV9LCBcIm51bGxcIiA6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAibnVsbCwg
XCJmYWxzZVwiIDogZmFsc2UgfSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCk7Cisg
IEpTT05URVNUX0FTU0VSVChvayk7CisgIEpTT05URVNUX0FTU0VSVChyZWFkZXIuZ2V0Rm9ybWF0
dGVkRXJyb3JNZXNzYWdlcygpLmVtcHR5KCkpOworICBKU09OVEVTVF9BU1NFUlQocmVhZGVyLmdl
dFN0cnVjdHVyZWRFcnJvcnMoKS5lbXB0eSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbInBy
b3BlcnR5Il0uZ2V0T2Zmc2V0U3RhcnQoKSA9PSAxNSk7CisgIEpTT05URVNUX0FTU0VSVChyb290
WyJwcm9wZXJ0eSJdLmdldE9mZnNldExpbWl0KCkgPT0gMzQpOworICBKU09OVEVTVF9BU1NFUlQo
cm9vdFsicHJvcGVydHkiXVswXS5nZXRPZmZzZXRTdGFydCgpID09IDE2KTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKHJvb3RbInByb3BlcnR5Il1bMF0uZ2V0T2Zmc2V0TGltaXQoKSA9PSAyMyk7CisgIEpT
T05URVNUX0FTU0VSVChyb290WyJwcm9wZXJ0eSJdWzFdLmdldE9mZnNldFN0YXJ0KCkgPT0gMjUp
OworICBKU09OVEVTVF9BU1NFUlQocm9vdFsicHJvcGVydHkiXVsxXS5nZXRPZmZzZXRMaW1pdCgp
ID09IDMzKTsKKyAgSlNPTlRFU1RfQVNTRVJUKHJvb3RbIm9iaiJdLmdldE9mZnNldFN0YXJ0KCkg
PT0gNDQpOworICBKU09OVEVTVF9BU1NFUlQocm9vdFsib2JqIl0uZ2V0T2Zmc2V0TGltaXQoKSA9
PSA3Nik7CisgIEpTT05URVNUX0FTU0VSVChyb290WyJvYmoiXVsibmVzdGVkIl0uZ2V0T2Zmc2V0
U3RhcnQoKSA9PSA1Nyk7CisgIEpTT05URVNUX0FTU0VSVChyb290WyJvYmoiXVsibmVzdGVkIl0u
Z2V0T2Zmc2V0TGltaXQoKSA9PSA2MCk7CisgIEpTT05URVNUX0FTU0VSVChyb290WyJvYmoiXVsi
Ym9vbCJdLmdldE9mZnNldFN0YXJ0KCkgPT0gNzEpOworICBKU09OVEVTVF9BU1NFUlQocm9vdFsi
b2JqIl1bImJvb2wiXS5nZXRPZmZzZXRMaW1pdCgpID09IDc1KTsKKyAgSlNPTlRFU1RfQVNTRVJU
KHJvb3RbIm51bGwiXS5nZXRPZmZzZXRTdGFydCgpID09IDg3KTsKKyAgSlNPTlRFU1RfQVNTRVJU
KHJvb3RbIm51bGwiXS5nZXRPZmZzZXRMaW1pdCgpID09IDkxKTsKKyAgSlNPTlRFU1RfQVNTRVJU
KHJvb3RbImZhbHNlIl0uZ2V0T2Zmc2V0U3RhcnQoKSA9PSAxMDMpOworICBKU09OVEVTVF9BU1NF
UlQocm9vdFsiZmFsc2UiXS5nZXRPZmZzZXRMaW1pdCgpID09IDEwOCk7CisgIEpTT05URVNUX0FT
U0VSVChyb290LmdldE9mZnNldFN0YXJ0KCkgPT0gMCk7CisgIEpTT05URVNUX0FTU0VSVChyb290
LmdldE9mZnNldExpbWl0KCkgPT0gMTEwKTsKIH0KIAorSlNPTlRFU1RfRklYVFVSRShSZWFkZXJU
ZXN0LCBwYXJzZVdpdGhPbmVFcnJvcikgeworICBKc29uOjpSZWFkZXIgcmVhZGVyOworICBKc29u
OjpWYWx1ZSByb290OworICBib29sIG9rID0gcmVhZGVyLnBhcnNlKCJ7IFwicHJvcGVydHlcIiA6
OiBcInZhbHVlXCIgfSIsIHJvb3QpOworICBKU09OVEVTVF9BU1NFUlQoIW9rKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgPT0KKyAgICAgICAg
ICAgICAgICAgICIqIExpbmUgMSwgQ29sdW1uIDE1XG4gIFN5bnRheCBlcnJvcjogdmFsdWUsIG9i
amVjdCBvciBhcnJheSAiCisgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQuXG4iKTsKKyAgc3Rk
Ojp2ZWN0b3I8SnNvbjo6UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IGVycm9ycyA9CisgICAgICBy
ZWFkZXIuZ2V0U3RydWN0dXJlZEVycm9ycygpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLnNp
emUoKSA9PSAxKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5hdCgwKS5vZmZzZXRfc3RhcnQg
PT0gMTQpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDApLm9mZnNldF9saW1pdCA9PSAx
NSk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCkubWVzc2FnZSA9PQorICAgICAgICAg
ICAgICAgICAgIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSBleHBlY3RlZC4i
KTsKK30KIAotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBjb21wYXJlVUludCApCi17Ci0g
ICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCAwdSwgMTB1ICkgKTsKLSAgICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIDB1LCBKc29uOjpWYWx1ZTo6bWF4VUlu
dCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggMTB1LCAxMHUg
KSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgY29tcGFyZURvdWJsZSAp
Ci17Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCAwLjAsIDEwLjAgKSAp
OwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIDEwLjAsIDEwLjAgKSAp
OwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIC0xMC4wLCAtMTAuMCAp
ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCAtMTAuMCwgMC4wICkg
KTsKLX0KLQotCi1KU09OVEVTVF9GSVhUVVJFKCBWYWx1ZVRlc3QsIGNvbXBhcmVTdHJpbmcgKQot
ewotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggIiIsICIgIiApICk7Ci0g
ICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCAiIiwgImEiICkgKTsKLSAgICBK
U09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoICJhYmNkIiwgInp5dWkiICkgKTsKLSAg
ICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoICJhYmMiLCAiYWJjZCIgKSApOwot
ICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoICJhYmNkIiwgImFiY2QiICkg
KTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCAiICIsICIgIiApICk7
Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCAiQUJDRCIsICJhYmNkIiAp
ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggIkFCQ0QiLCAiQUJD
RCIgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgY29tcGFyZUJvb2xl
YW4gKQotewotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggZmFsc2UsIHRy
dWUgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzRXF1YWwoIGZhbHNlLCBm
YWxzZSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggdHJ1ZSwg
dHJ1ZSApICk7Ci19Ci0KLQotSlNPTlRFU1RfRklYVFVSRSggVmFsdWVUZXN0LCBjb21wYXJlQXJy
YXkgKQotewotICAgIC8vIGFycmF5IGNvbXBhcmUgc2l6ZSB0aGVuIGNvbnRlbnQKLSAgICBKc29u
OjpWYWx1ZSBlbXB0eUFycmF5KEpzb246OmFycmF5VmFsdWUpOwotICAgIEpzb246OlZhbHVlIGwx
YUFycmF5OwotICAgIGwxYUFycmF5LmFwcGVuZCggMCApOwotICAgIEpzb246OlZhbHVlIGwxYkFy
cmF5OwotICAgIGwxYkFycmF5LmFwcGVuZCggMTAgKTsKLSAgICBKc29uOjpWYWx1ZSBsMmFBcnJh
eTsKLSAgICBsMmFBcnJheS5hcHBlbmQoIDAgKTsKLSAgICBsMmFBcnJheS5hcHBlbmQoIDAgKTsK
LSAgICBKc29uOjpWYWx1ZSBsMmJBcnJheTsKLSAgICBsMmJBcnJheS5hcHBlbmQoIDAgKTsKLSAg
ICBsMmJBcnJheS5hcHBlbmQoIDEwICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNr
SXNMZXNzKCBlbXB0eUFycmF5LCBsMWFBcnJheSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BS
RUQoIGNoZWNrSXNMZXNzKCBlbXB0eUFycmF5LCBsMmFBcnJheSApICk7Ci0gICAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBsMWFBcnJheSwgbDJhQXJyYXkgKSApOwotICAgIEpT
T05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggbDJhQXJyYXksIGwyYkFycmF5ICkgKTsK
LSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFsKCBlbXB0eUFycmF5LCBKc29u
OjpWYWx1ZSggZW1wdHlBcnJheSApICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hl
Y2tJc0VxdWFsKCBsMWFBcnJheSwgSnNvbjo6VmFsdWUoIGwxYUFycmF5KSApICk7Ci0gICAgSlNP
TlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggbDJiQXJyYXksIEpzb246OlZhbHVlKCBs
MmJBcnJheSkgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgY29tcGFy
ZU9iamVjdCApCi17Ci0gICAgLy8gb2JqZWN0IGNvbXBhcmUgc2l6ZSB0aGVuIGNvbnRlbnQKLSAg
ICBKc29uOjpWYWx1ZSBlbXB0eU9iamVjdChKc29uOjpvYmplY3RWYWx1ZSk7Ci0gICAgSnNvbjo6
VmFsdWUgbDFhT2JqZWN0OwotICAgIGwxYU9iamVjdFsia2V5MSJdID0gMDsKLSAgICBKc29uOjpW
YWx1ZSBsMWJPYmplY3Q7Ci0gICAgbDFhT2JqZWN0WyJrZXkxIl0gPSAxMDsKLSAgICBKc29uOjpW
YWx1ZSBsMmFPYmplY3Q7Ci0gICAgbDJhT2JqZWN0WyJrZXkxIl0gPSAwOwotICAgIGwyYU9iamVj
dFsia2V5MiJdID0gMDsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0xlc3MoIGVt
cHR5T2JqZWN0LCBsMWFPYmplY3QgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVj
a0lzTGVzcyggZW1wdHlPYmplY3QsIGwyYU9iamVjdCApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJU
X1BSRUQoIGNoZWNrSXNMZXNzKCBsMWFPYmplY3QsIGwyYU9iamVjdCApICk7Ci0gICAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggZW1wdHlPYmplY3QsIEpzb246OlZhbHVlKCBl
bXB0eU9iamVjdCApICkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlRfUFJFRCggY2hlY2tJc0VxdWFs
KCBsMWFPYmplY3QsIEpzb246OlZhbHVlKCBsMWFPYmplY3QgKSApICk7Ci0gICAgSlNPTlRFU1Rf
QVNTRVJUX1BSRUQoIGNoZWNrSXNFcXVhbCggbDJhT2JqZWN0LCBKc29uOjpWYWx1ZSggbDJhT2Jq
ZWN0ICkgKSApOwotfQotCi0KLUpTT05URVNUX0ZJWFRVUkUoIFZhbHVlVGVzdCwgY29tcGFyZVR5
cGUgKQotewotICAgIC8vIG9iamVjdCBvZiBkaWZmZXJlbnQgdHlwZSBhcmUgb3JkZXJlZCBhY2Nv
cmRpbmcgdG8gdGhlaXIgdHlwZQotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVz
cyggSnNvbjo6VmFsdWUoKSwgSnNvbjo6VmFsdWUoMSkgKSApOwotICAgIEpTT05URVNUX0FTU0VS
VF9QUkVEKCBjaGVja0lzTGVzcyggSnNvbjo6VmFsdWUoMSksIEpzb246OlZhbHVlKDF1KSApICk7
Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBKc29uOjpWYWx1ZSgxdSks
IEpzb246OlZhbHVlKDEuMCkgKSApOwotICAgIEpTT05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lz
TGVzcyggSnNvbjo6VmFsdWUoMS4wKSwgSnNvbjo6VmFsdWUoImEiKSApICk7Ci0gICAgSlNPTlRF
U1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBKc29uOjpWYWx1ZSgiYSIpLCBKc29uOjpWYWx1
ZSh0cnVlKSApICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUX1BSRUQoIGNoZWNrSXNMZXNzKCBKc29u
OjpWYWx1ZSh0cnVlKSwgSnNvbjo6VmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSkgKSApOwotICAgIEpT
T05URVNUX0FTU0VSVF9QUkVEKCBjaGVja0lzTGVzcyggSnNvbjo6VmFsdWUoSnNvbjo6YXJyYXlW
YWx1ZSksIEpzb246OlZhbHVlKEpzb246Om9iamVjdFZhbHVlKSApICk7Ci19Ci0KLQotdm9pZCAK
LVZhbHVlVGVzdDo6Y2hlY2tJc0xlc3MoIGNvbnN0IEpzb246OlZhbHVlICZ4LCBjb25zdCBKc29u
OjpWYWx1ZSAmeSApCi17Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB4IDwgeSApOwotICAgIEpTT05U
RVNUX0FTU0VSVCggeSA+IHggKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHggPD0geSApOwotICAg
IEpTT05URVNUX0FTU0VSVCggeSA+PSB4ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCAhKHggPT0g
eSkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoICEoeSA9PSB4KSApOwotICAgIEpTT05URVNUX0FT
U0VSVCggISh4ID49IHkpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCAhKHkgPD0geCkgKTsKLSAg
ICBKU09OVEVTVF9BU1NFUlQoICEoeCA+IHkpICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCAhKHkg
PCB4KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggeC5jb21wYXJlKCB5ICkgPCAwICk7Ci0gICAg
SlNPTlRFU1RfQVNTRVJUKCB5LmNvbXBhcmUoIHggKSA+PSAwICk7Ci19Ci0KLQotdm9pZCAKLVZh
bHVlVGVzdDo6Y2hlY2tJc0VxdWFsKCBjb25zdCBKc29uOjpWYWx1ZSAmeCwgY29uc3QgSnNvbjo6
VmFsdWUgJnkgKQotewotICAgIEpTT05URVNUX0FTU0VSVCggeCA9PSB5ICk7Ci0gICAgSlNPTlRF
U1RfQVNTRVJUKCB5ID09IHggKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHggPD0geSApOwotICAg
IEpTT05URVNUX0FTU0VSVCggeSA8PSB4ICk7Ci0gICAgSlNPTlRFU1RfQVNTRVJUKCB4ID49IHkg
KTsKLSAgICBKU09OVEVTVF9BU1NFUlQoIHkgPj0geCApOwotICAgIEpTT05URVNUX0FTU0VSVCgg
ISh4IDwgeSkgKTsKLSAgICBKU09OVEVTVF9BU1NFUlQoICEoeSA8IHgpICk7Ci0gICAgSlNPTlRF
U1RfQVNTRVJUKCAhKHggPiB5KSApOwotICAgIEpTT05URVNUX0FTU0VSVCggISh5ID4geCkgKTsK
LSAgICBKU09OVEVTVF9BU1NFUlQoIHguY29tcGFyZSggeSApID09IDAgKTsKLSAgICBKU09OVEVT
VF9BU1NFUlQoIHkuY29tcGFyZSggeCApID09IDAgKTsKLX0KLQotaW50IG1haW4oIGludCBhcmdj
LCBjb25zdCBjaGFyICphcmd2W10gKQotewotICAgSnNvblRlc3Q6OlJ1bm5lciBydW5uZXI7Ci0g
ICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgY2hlY2tOb3Jt
YWxpemVGbG9hdGluZ1BvaW50U3RyICk7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBy
dW5uZXIsIFZhbHVlVGVzdCwgbWVtYmVyQ291bnQgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJ
WFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBvYmplY3RzICk7Ci0gICBKU09OVEVTVF9SRUdJU1RF
Ul9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgYXJyYXlzICk7Ci0gICBKU09OVEVTVF9SRUdJ
U1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgbnVsbCApOwotICAgSlNPTlRFU1RfUkVH
SVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIHN0cmluZ3MgKTsKLSAgIEpTT05URVNU
X1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBib29scyApOwotICAgSlNPTlRF
U1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRlc3QsIGludGVnZXJzICk7Ci0gICBK
U09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgbm9uSW50ZWdlcnMg
KTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBjb21w
YXJlTnVsbCApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSggcnVubmVyLCBWYWx1ZVRl
c3QsIGNvbXBhcmVJbnQgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwg
VmFsdWVUZXN0LCBjb21wYXJlVUludCApOwotICAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRSgg
cnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVEb3VibGUgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVS
X0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlU3RyaW5nICk7Ci0gICBKU09OVEVT
VF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIsIFZhbHVlVGVzdCwgY29tcGFyZUJvb2xlYW4gKTsK
LSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJl
QXJyYXkgKTsKLSAgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUoIHJ1bm5lciwgVmFsdWVUZXN0
LCBjb21wYXJlT2JqZWN0ICk7Ci0gICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKCBydW5uZXIs
IFZhbHVlVGVzdCwgY29tcGFyZVR5cGUgKTsKLSAgIHJldHVybiBydW5uZXIucnVuQ29tbWFuZExp
bmUoIGFyZ2MsIGFyZ3YgKTsKK0pTT05URVNUX0ZJWFRVUkUoUmVhZGVyVGVzdCwgcGFyc2VDaGlu
ZXNlV2l0aE9uZUVycm9yKSB7CisgIEpzb246OlJlYWRlciByZWFkZXI7CisgIEpzb246OlZhbHVl
IHJvb3Q7CisgIGJvb2wgb2sgPSByZWFkZXIucGFyc2UoInsgXCJwcuS9kOiXpGVydHlcIiA6OiBc
InZhbHVlXCIgfSIsIHJvb3QpOworICBKU09OVEVTVF9BU1NFUlQoIW9rKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUKHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgPT0KKyAgICAgICAgICAg
ICAgICAgICIqIExpbmUgMSwgQ29sdW1uIDE5XG4gIFN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVj
dCBvciBhcnJheSAiCisgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQuXG4iKTsKKyAgc3RkOjp2
ZWN0b3I8SnNvbjo6UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IGVycm9ycyA9CisgICAgICByZWFk
ZXIuZ2V0U3RydWN0dXJlZEVycm9ycygpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLnNpemUo
KSA9PSAxKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5hdCgwKS5vZmZzZXRfc3RhcnQgPT0g
MTgpOworICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDApLm9mZnNldF9saW1pdCA9PSAxOSk7
CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCkubWVzc2FnZSA9PQorICAgICAgICAgICAg
ICAgICAgIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSBleHBlY3RlZC4iKTsK
IH0KKworSlNPTlRFU1RfRklYVFVSRShSZWFkZXJUZXN0LCBwYXJzZVdpdGhEZXRhaWxFcnJvcikg
eworICBKc29uOjpSZWFkZXIgcmVhZGVyOworICBKc29uOjpWYWx1ZSByb290OworICBib29sIG9r
ID0gcmVhZGVyLnBhcnNlKCJ7IFwicHJvcGVydHlcIiA6IFwidlxcYWx1ZVwiIH0iLCByb290KTsK
KyAgSlNPTlRFU1RfQVNTRVJUKCFvayk7CisgIEpTT05URVNUX0FTU0VSVChyZWFkZXIuZ2V0Rm9y
bWF0dGVkRXJyb3JNZXNzYWdlcygpID09CisgICAgICAgICAgICAgICAgICAiKiBMaW5lIDEsIENv
bHVtbiAxNlxuICBCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZ1xuU2VlICIKKyAgICAgICAg
ICAgICAgICAgICJMaW5lIDEsIENvbHVtbiAyMCBmb3IgZGV0YWlsLlxuIik7CisgIHN0ZDo6dmVj
dG9yPEpzb246OlJlYWRlcjo6U3RydWN0dXJlZEVycm9yPiBlcnJvcnMgPQorICAgICAgcmVhZGVy
LmdldFN0cnVjdHVyZWRFcnJvcnMoKTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5zaXplKCkg
PT0gMSk7CisgIEpTT05URVNUX0FTU0VSVChlcnJvcnMuYXQoMCkub2Zmc2V0X3N0YXJ0ID09IDE1
KTsKKyAgSlNPTlRFU1RfQVNTRVJUKGVycm9ycy5hdCgwKS5vZmZzZXRfbGltaXQgPT0gMjMpOwor
ICBKU09OVEVTVF9BU1NFUlQoZXJyb3JzLmF0KDApLm1lc3NhZ2UgPT0gIkJhZCBlc2NhcGUgc2Vx
dWVuY2UgaW4gc3RyaW5nIik7Cit9CisKK3N0cnVjdCBDaGFyUmVhZGVyVGVzdCA6IEpzb25UZXN0
OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVSRShDaGFyUmVhZGVyVGVzdCwgcGFyc2VX
aXRoTm9FcnJvcnMpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgSnNvbjo6Q2hh
clJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgSnNvbjo6U3RyaW5nIGVycnM7
CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3QgZG9jW10gPSAieyBcInByb3BlcnR5
XCIgOiBcInZhbHVlXCIgfSI7CisgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsg
c3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG9rKTsK
KyAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7CisgIGRlbGV0ZSByZWFkZXI7Cit9CisK
K0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aE5vRXJyb3JzVGVzdGlu
Z09mZnNldHMpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgSnNvbjo6Q2hhclJl
YWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgSnNvbjo6U3RyaW5nIGVycnM7Cisg
IEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIgY29uc3QgZG9jW10gPSAieyBcInByb3BlcnR5XCIg
OiBbXCJ2YWx1ZVwiLCBcInZhbHVlMlwiXSwgXCJvYmpcIiA6ICIKKyAgICAgICAgICAgICAgICAg
ICAgICJ7IFwibmVzdGVkXCIgOiAxMjMsIFwiYm9vbFwiIDogdHJ1ZX0sIFwibnVsbFwiIDogIgor
ICAgICAgICAgICAgICAgICAgICAgIm51bGwsIFwiZmFsc2VcIiA6IGZhbHNlIH0iOworICBib29s
IG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAm
ZXJycyk7CisgIEpTT05URVNUX0FTU0VSVChvayk7CisgIEpTT05URVNUX0FTU0VSVChlcnJzLmVt
cHR5KCkpOworICBkZWxldGUgcmVhZGVyOworfQorCitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFk
ZXJUZXN0LCBwYXJzZVdpdGhPbmVFcnJvcikgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBi
OworICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29u
OjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9
ICJ7IFwicHJvcGVydHlcIiA6OiBcInZhbHVlXCIgfSI7CisgIGJvb2wgb2sgPSByZWFkZXItPnBh
cnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgSlNPTlRF
U1RfQVNTRVJUKCFvayk7CisgIEpTT05URVNUX0FTU0VSVChlcnJzID09CisgICAgICAgICAgICAg
ICAgICAiKiBMaW5lIDEsIENvbHVtbiAxNVxuICBTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qg
b3IgYXJyYXkgIgorICAgICAgICAgICAgICAgICAgImV4cGVjdGVkLlxuIik7CisgIGRlbGV0ZSBy
ZWFkZXI7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlclRlc3QsIHBhcnNlQ2hpbmVz
ZVdpdGhPbmVFcnJvcikgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBKc29uOjpD
aGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJpbmcgZXJy
czsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9ICJ7IFwicHLkvZDo
l6RlcnR5XCIgOjogXCJ2YWx1ZVwiIH0iOworICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2Ms
IGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgIEpTT05URVNUX0FTU0VS
VCghb2spOworICBKU09OVEVTVF9BU1NFUlQoZXJycyA9PQorICAgICAgICAgICAgICAgICAgIiog
TGluZSAxLCBDb2x1bW4gMTlcbiAgU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5
ICIKKyAgICAgICAgICAgICAgICAgICJleHBlY3RlZC5cbiIpOworICBkZWxldGUgcmVhZGVyOwor
fQorCitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJUZXN0LCBwYXJzZVdpdGhEZXRhaWxFcnJv
cikgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBKc29uOjpDaGFyUmVhZGVyKiBy
ZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6
VmFsdWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9ICJ7IFwicHJvcGVydHlcIiA6IFwidlxc
YWx1ZVwiIH0iOworICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3Ry
bGVuKGRvYyksICZyb290LCAmZXJycyk7CisgIEpTT05URVNUX0FTU0VSVCghb2spOworICBKU09O
VEVTVF9BU1NFUlQoZXJycyA9PQorICAgICAgICAgICAgICAgICAgIiogTGluZSAxLCBDb2x1bW4g
MTZcbiAgQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmdcblNlZSAiCisgICAgICAgICAgICAg
ICAgICAiTGluZSAxLCBDb2x1bW4gMjAgZm9yIGRldGFpbC5cbiIpOworICBkZWxldGUgcmVhZGVy
OworfQorCitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJUZXN0LCBwYXJzZVdpdGhTdGFja0xp
bWl0KSB7CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIEpzb246OlZhbHVlIHJvb3Q7
CisgIGNoYXIgY29uc3QgZG9jW10gPSAieyBcInByb3BlcnR5XCIgOiBcInZhbHVlXCIgfSI7Cisg
IHsKKyAgICBiLnNldHRpbmdzX1sic3RhY2tMaW1pdCJdID0gMjsKKyAgICBKc29uOjpDaGFyUmVh
ZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICAgIEpzb246OlN0cmluZyBlcnJzOwor
ICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwg
JnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FT
U0VSVChlcnJzLmVtcHR5KCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgidmFsdWUiLCBy
b290WyJwcm9wZXJ0eSJdKTsKKyAgICBkZWxldGUgcmVhZGVyOworICB9CisgIHsKKyAgICBiLnNl
dHRpbmdzX1sic3RhY2tMaW1pdCJdID0gMTsKKyAgICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIo
Yi5uZXdDaGFyUmVhZGVyKCkpOworICAgIEpzb246OlN0cmluZyBlcnJzOworICAgIEpTT05URVNU
X0FTU0VSVF9USFJPV1MoCisgICAgICAgIHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0
cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpKTsKKyAgICBkZWxldGUgcmVhZGVyOworICB9Cit9CisK
K3N0cnVjdCBDaGFyUmVhZGVyU3RyaWN0TW9kZVRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307
CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlclN0cmljdE1vZGVUZXN0LCBkdXBLZXlzKSB7
CisgIEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNo
YXIgY29uc3QgZG9jW10gPQorICAgICAgInsgXCJwcm9wZXJ0eVwiIDogXCJ2YWx1ZVwiLCBcImtl
eVwiIDogXCJ2YWwxXCIsIFwia2V5XCIgOiBcInZhbDJcIiB9IjsKKyAgeworICAgIGIuc3RyaWN0
TW9kZSgmYi5zZXR0aW5nc18pOworICAgIEpzb246OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0No
YXJSZWFkZXIoKSk7CisgICAgSnNvbjo6U3RyaW5nIGVycnM7CisgICAgYm9vbCBvayA9IHJlYWRl
ci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAg
IEpTT05URVNUX0FTU0VSVCghb2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwo
IiogTGluZSAxLCBDb2x1bW4gNDFcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIgIER1cGxpY2F0ZSBrZXk6ICdrZXknXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCJ2YWwxIiwgcm9vdFsia2V5
Il0pOyAvLyBzbyBmYXIKKyAgICBkZWxldGUgcmVhZGVyOworICB9Cit9CitzdHJ1Y3QgQ2hhclJl
YWRlckZhaWxJZkV4dHJhVGVzdCA6IEpzb25UZXN0OjpUZXN0Q2FzZSB7fTsKKworSlNPTlRFU1Rf
RklYVFVSRShDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0LCBpc3N1ZTE2NCkgeworICAvLyBUaGlz
IGlzIGludGVycHJldGVkIGFzIGEgc3RyaW5nIHZhbHVlIGZvbGxvd2VkIGJ5IGEgY29sb24uCisg
IEpzb246OkNoYXJSZWFkZXJCdWlsZGVyIGI7CisgIEpzb246OlZhbHVlIHJvb3Q7CisgIGNoYXIg
Y29uc3QgZG9jW10gPSAiIFwicHJvcGVydHlcIiA6IFwidmFsdWVcIiB9IjsKKyAgeworICAgIGIu
c2V0dGluZ3NfWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7CisgICAgSnNvbjo6Q2hhclJlYWRlciog
cmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgICBKc29uOjpTdHJpbmcgZXJyczsKKyAgICBi
b29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290
LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlQo
ZXJycy5lbXB0eSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoInByb3BlcnR5Iiwgcm9v
dCk7CisgICAgZGVsZXRlIHJlYWRlcjsKKyAgfQorICB7CisgICAgYi5zZXR0aW5nc19bImZhaWxJ
ZkV4dHJhIl0gPSB0cnVlOworICAgIEpzb246OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJS
ZWFkZXIoKSk7CisgICAgSnNvbjo6U3RyaW5nIGVycnM7CisgICAgYm9vbCBvayA9IHJlYWRlci0+
cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpT
T05URVNUX0FTU0VSVCghb2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXJy
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIExpbmUgMSwgQ29sdW1uIDEz
XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBFeHRyYSBub24td2hpdGVz
cGFjZSBhZnRlciBKU09OIHZhbHVlLlxuIik7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCJw
cm9wZXJ0eSIsIHJvb3QpOworICAgIGRlbGV0ZSByZWFkZXI7CisgIH0KKyAgeworICAgIGIuc2V0
dGluZ3NfWyJmYWlsSWZFeHRyYSJdID0gZmFsc2U7CisgICAgYi5zdHJpY3RNb2RlKCZiLnNldHRp
bmdzXyk7CisgICAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsK
KyAgICBKc29uOjpTdHJpbmcgZXJyczsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2Ms
IGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNT
RVJUKCFvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTChlcnJzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiogTGluZSAxLCBDb2x1bW4gMTNcbiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIEV4dHJhIG5vbi13aGl0ZXNwYWNlIGFmdGVy
IEpTT04gdmFsdWUuXG4iKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoInByb3BlcnR5Iiwg
cm9vdCk7CisgICAgZGVsZXRlIHJlYWRlcjsKKyAgfQorfQorSlNPTlRFU1RfRklYVFVSRShDaGFy
UmVhZGVyRmFpbElmRXh0cmFUZXN0LCBpc3N1ZTEwNykgeworICAvLyBUaGlzIGlzIGludGVycHJl
dGVkIGFzIGFuIGludCB2YWx1ZSBmb2xsb3dlZCBieSBhIGNvbG9uLgorICBKc29uOjpDaGFyUmVh
ZGVyQnVpbGRlciBiOworICBKc29uOjpWYWx1ZSByb290OworICBjaGFyIGNvbnN0IGRvY1tdID0g
IjE6MjozIjsKKyAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJhIl0gPSB0cnVlOworICBKc29uOjpD
aGFyUmVhZGVyKiByZWFkZXIoYi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJpbmcgZXJy
czsKKyAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2Mp
LCAmcm9vdCwgJmVycnMpOworICBKU09OVEVTVF9BU1NFUlQoIW9rKTsKKyAgSlNPTlRFU1RfQVNT
RVJUX1NUUklOR19FUVVBTCgiKiBMaW5lIDEsIENvbHVtbiAyXG4iCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiAgRXh0cmEgbm9uLXdoaXRlc3BhY2UgYWZ0ZXIgSlNPTiB2YWx1ZS5c
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycyk7CisgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCgxLCByb290LmFzSW50KCkpOworICBkZWxldGUgcmVhZGVyOworfQorSlNPTlRF
U1RfRklYVFVSRShDaGFyUmVhZGVyRmFpbElmRXh0cmFUZXN0LCBjb21tZW50QWZ0ZXJPYmplY3Qp
IHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAg
eworICAgIGNoYXIgY29uc3QgZG9jW10gPSAieyBcInByb3BlcnR5XCIgOiBcInZhbHVlXCIgfSAv
L3RyYWlsaW5nXG4vL2NvbW1lbnRcbiI7CisgICAgYi5zZXR0aW5nc19bImZhaWxJZkV4dHJhIl0g
PSB0cnVlOworICAgIEpzb246OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7
CisgICAgSnNvbjo6U3RyaW5nIGVycnM7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9j
LCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FT
U0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7Cisg
ICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCJ2YWx1ZSIsIHJvb3RbInByb3BlcnR5Il0pOworICAg
IGRlbGV0ZSByZWFkZXI7CisgIH0KK30KK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlckZhaWxJ
ZkV4dHJhVGVzdCwgY29tbWVudEFmdGVyQXJyYXkpIHsKKyAgSnNvbjo6Q2hhclJlYWRlckJ1aWxk
ZXIgYjsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgY2hhciBjb25zdCBkb2NbXSA9ICJbIFwicHJv
cGVydHlcIiAsIFwidmFsdWVcIiBdIC8vdHJhaWxpbmdcbi8vY29tbWVudFxuIjsKKyAgYi5zZXR0
aW5nc19bImZhaWxJZkV4dHJhIl0gPSB0cnVlOworICBKc29uOjpDaGFyUmVhZGVyKiByZWFkZXIo
Yi5uZXdDaGFyUmVhZGVyKCkpOworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgYm9vbCBvayA9IHJl
YWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOwor
ICBKU09OVEVTVF9BU1NFUlQob2spOworICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIi
LCBlcnJzKTsKKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKCJ2YWx1ZSIsIHJvb3RbMXVdKTsKKyAg
ZGVsZXRlIHJlYWRlcjsKK30KK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJlYWRlckZhaWxJZkV4dHJh
VGVzdCwgY29tbWVudEFmdGVyQm9vbCkgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOwor
ICBKc29uOjpWYWx1ZSByb290OworICBjaGFyIGNvbnN0IGRvY1tdID0gIiB0cnVlIC8qdHJhaWxp
bmdcbmNvbW1lbnQqLyI7CisgIGIuc2V0dGluZ3NfWyJmYWlsSWZFeHRyYSJdID0gdHJ1ZTsKKyAg
SnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgSnNvbjo6U3Ry
aW5nIGVycnM7CisgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJs
ZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVB
TCh0cnVlLCByb290LmFzQm9vbCgpKTsKKyAgZGVsZXRlIHJlYWRlcjsKK30KK3N0cnVjdCBDaGFy
UmVhZGVyQWxsb3dEcm9wTnVsbFRlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307CisKK0pTT05U
RVNUX0ZJWFRVUkUoQ2hhclJlYWRlckFsbG93RHJvcE51bGxUZXN0LCBpc3N1ZTE3OCkgeworICBK
c29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBiLnNldHRpbmdzX1siYWxsb3dEcm9wcGVkTnVs
bFBsYWNlaG9sZGVycyJdID0gdHJ1ZTsKKyAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgSnNvbjo6U3Ry
aW5nIGVycnM7CisgIEpzb246OkNoYXJSZWFkZXIqIHJlYWRlcihiLm5ld0NoYXJSZWFkZXIoKSk7
CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIntcImFcIjosXCJiXCI6dHJ1ZX0iOworICAg
IGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJv
b3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VS
VF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgydSwg
cm9vdC5zaXplKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpudWxsVmFsdWUs
IHJvb3QuZ2V0KCJhIiwgdHJ1ZSkpOworICB9CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0g
IntcImFcIjp9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6
c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAg
ICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9B
U1NFUlRfRVFVQUwoMXUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
SnNvbjo6bnVsbFZhbHVlLCByb290LmdldCgiYSIsIHRydWUpKTsKKyAgfQorICB7CisgICAgY2hh
ciBjb25zdCBkb2NbXSA9ICJbXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBk
b2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VS
VChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7CisgICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKDB1LCByb290LnNpemUoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFM
KEpzb246OmFycmF5VmFsdWUsIHJvb3QpOworICB9CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1td
ID0gIltudWxsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6
OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7Cisg
ICAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VR
VUFMKDF1LCByb290LnNpemUoKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAi
WyxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVu
KGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRf
RVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9
ICJbLCwsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0
cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7CisgICAg
SlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7CisgICAgSlNPTlRFU1RfQVNT
RVJUX0VRVUFMKDR1LCByb290LnNpemUoKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9j
W10gPSAiW251bGwsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBz
dGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7
CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7CisgICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDJ1LCByb290LnNpemUoKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29u
c3QgZG9jW10gPSAiWyxudWxsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBk
b2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VS
VChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7CisgICAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKDJ1LCByb290LnNpemUoKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29uc3Qg
ZG9jW10gPSAiWywsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+cGFyc2UoZG9jLCBkb2MgKyBz
dGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpTT05URVNUX0FTU0VSVChvayk7
CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgZXJycyk7CisgICAgSlNPTlRF
U1RfQVNTRVJUX0VRVUFMKDN1LCByb290LnNpemUoKSk7CisgIH0KKyAgeworICAgIGNoYXIgY29u
c3QgZG9jW10gPSAiW251bGwsLF0iOworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKGRvYywg
ZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NF
UlQob2spOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIGVycnMpOworICAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCgzdSwgcm9vdC5zaXplKCkpOworICB9CisgIHsKKyAgICBj
aGFyIGNvbnN0IGRvY1tdID0gIlssbnVsbCxdIjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJz
ZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRF
U1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJz
KTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoM3UsIHJvb3Quc2l6ZSgpKTsKKyAgfQorICB7
CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJbLCxudWxsXSI7CisgICAgYm9vbCBvayA9IHJlYWRl
ci0+cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAg
IEpTT05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUKGVycnMuZW1wdHkoKSk7
CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDN1LCByb290LnNpemUoKSk7CisgIH0KKyAgewor
ICAgIGNoYXIgY29uc3QgZG9jW10gPSAiW1tdLCwsXSI7CisgICAgYm9vbCBvayA9IHJlYWRlci0+
cGFyc2UoZG9jLCBkb2MgKyBzdGQ6OnN0cmxlbihkb2MpLCAmcm9vdCwgJmVycnMpOworICAgIEpT
T05URVNUX0FTU0VSVChvayk7CisgICAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwg
ZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDR1LCByb290LnNpemUoKSk7CisgICAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OmFycmF5VmFsdWUsIHJvb3RbMHVdKTsKKyAgfQor
ICB7CisgICAgY2hhciBjb25zdCBkb2NbXSA9ICJbLFtdLCxdIjsKKyAgICBib29sIG9rID0gcmVh
ZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7Cisg
ICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFM
KCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoNHUsIHJvb3Quc2l6ZSgpKTsK
KyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6YXJyYXlWYWx1ZSwgcm9vdFsxdV0pOwor
ICB9CisgIHsKKyAgICBjaGFyIGNvbnN0IGRvY1tdID0gIlssLCxbXV0iOworICAgIGJvb2wgb2sg
PSByZWFkZXItPnBhcnNlKGRvYywgZG9jICsgc3RkOjpzdHJsZW4oZG9jKSwgJnJvb3QsICZlcnJz
KTsKKyAgICBKU09OVEVTVF9BU1NFUlQob2spOworICAgIEpTT05URVNUX0FTU0VSVChlcnJzLmVt
cHR5KCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCg0dSwgcm9vdC5zaXplKCkpOworICAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjphcnJheVZhbHVlLCByb290WzN1XSk7CisgIH0K
KyAgZGVsZXRlIHJlYWRlcjsKK30KKworc3RydWN0IENoYXJSZWFkZXJBbGxvd1NpbmdsZVF1b3Rl
c1Rlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307CisKK0pTT05URVNUX0ZJWFRVUkUoQ2hhclJl
YWRlckFsbG93U2luZ2xlUXVvdGVzVGVzdCwgaXNzdWUxODIpIHsKKyAgSnNvbjo6Q2hhclJlYWRl
ckJ1aWxkZXIgYjsKKyAgYi5zZXR0aW5nc19bImFsbG93U2luZ2xlUXVvdGVzIl0gPSB0cnVlOwor
ICBKc29uOjpWYWx1ZSByb290OworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6Q2hhclJl
YWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgeworICAgIGNoYXIgY29uc3QgZG9j
W10gPSAieydhJzp0cnVlLFwiYlwiOnRydWV9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJz
ZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRF
U1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJz
KTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09O
VEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgcm9vdC5nZXQoImEiLCBmYWxzZSkpOworICAgIEpTT05U
RVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByb290LmdldCgiYiIsIGZhbHNlKSk7CisgIH0KKyAgewor
ICAgIGNoYXIgY29uc3QgZG9jW10gPSAieydhJzogJ3gnLCBcImJcIjoneSd9IjsKKyAgICBib29s
IG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAm
ZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RS
SU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Qu
c2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJ4Iiwgcm9vdFsiYSJd
LmFzU3RyaW5nKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoInkiLCByb290
WyJiIl0uYXNTdHJpbmcoKSk7CisgIH0KKyAgZGVsZXRlIHJlYWRlcjsKK30KKworc3RydWN0IENo
YXJSZWFkZXJBbGxvd1plcm9lc1Rlc3QgOiBKc29uVGVzdDo6VGVzdENhc2Uge307CisKK0pTT05U
RVNUX0ZJWFRVUkUoQ2hhclJlYWRlckFsbG93WmVyb2VzVGVzdCwgaXNzdWUxNzYpIHsKKyAgSnNv
bjo6Q2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgYi5zZXR0aW5nc19bImFsbG93U2luZ2xlUXVvdGVz
Il0gPSB0cnVlOworICBKc29uOjpWYWx1ZSByb290OworICBKc29uOjpTdHJpbmcgZXJyczsKKyAg
SnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3Q2hhclJlYWRlcigpKTsKKyAgeworICAgIGNo
YXIgY29uc3QgZG9jW10gPSAieydhJzp0cnVlLFwiYlwiOnRydWV9IjsKKyAgICBib29sIG9rID0g
cmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7
CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VR
VUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoMnUsIHJvb3Quc2l6ZSgp
KTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwodHJ1ZSwgcm9vdC5nZXQoImEiLCBmYWxzZSkp
OworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByb290LmdldCgiYiIsIGZhbHNlKSk7
CisgIH0KKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAieydhJzogJ3gnLCBcImJcIjoneSd9
IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRv
YyksICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVT
VF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoMnUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJ4
Iiwgcm9vdFsiYSJdLmFzU3RyaW5nKCkpOworICAgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFV
QUwoInkiLCByb290WyJiIl0uYXNTdHJpbmcoKSk7CisgIH0KKyAgZGVsZXRlIHJlYWRlcjsKK30K
Kworc3RydWN0IENoYXJSZWFkZXJBbGxvd1NwZWNpYWxGbG9hdHNUZXN0IDogSnNvblRlc3Q6OlRl
c3RDYXNlIHt9OworCitKU09OVEVTVF9GSVhUVVJFKENoYXJSZWFkZXJBbGxvd1NwZWNpYWxGbG9h
dHNUZXN0LCBpc3N1ZTIwOSkgeworICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciBiOworICBiLnNl
dHRpbmdzX1siYWxsb3dTcGVjaWFsRmxvYXRzIl0gPSB0cnVlOworICBKc29uOjpWYWx1ZSByb290
OworICBKc29uOjpTdHJpbmcgZXJyczsKKyAgSnNvbjo6Q2hhclJlYWRlciogcmVhZGVyKGIubmV3
Q2hhclJlYWRlcigpKTsKKyAgeworICAgIGNoYXIgY29uc3QgZG9jW10gPSAie1wiYVwiOk5hTixc
ImJcIjpJbmZpbml0eSxcImNcIjotSW5maW5pdHl9IjsKKyAgICBib29sIG9rID0gcmVhZGVyLT5w
YXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyksICZyb290LCAmZXJycyk7CisgICAgSlNP
TlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBl
cnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoM3UsIHJvb3Quc2l6ZSgpKTsKKyAgICBk
b3VibGUgbiA9IHJvb3RbImEiXS5hc0RvdWJsZSgpOworICAgIEpTT05URVNUX0FTU0VSVChzdGQ6
OmlzbmFuKG4pKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoc3RkOjpudW1lcmljX2xpbWl0
czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICByb290Lmdl
dCgiYiIsIDAuMCkpOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgtc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICByb290
LmdldCgiYyIsIDAuMCkpOworICB9CisKKyAgc3RydWN0IFRlc3REYXRhIHsKKyAgICBpbnQgbGlu
ZTsKKyAgICBib29sIG9rOworICAgIEpzb246OlN0cmluZyBpbjsKKyAgfTsKKyAgY29uc3QgVGVz
dERhdGEgdGVzdF9kYXRhW10gPSB7CisgICAgICB7X19MSU5FX18sIHRydWUsICJ7XCJhXCI6OX0i
fSwgICAgICAgICAgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6MEluZmluaXR5
fSJ9LCAvLworICAgICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjoxSW5maW5pdHl9In0sIC8v
CisgICAgICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOjlJbmZpbml0eX0ifSwgLy8KKyAgICAg
IHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6MG5maW5pdHl9In0sICAvLworICAgICAge19fTElO
RV9fLCBmYWxzZSwgIntcImFcIjoxbmZpbml0eX0ifSwgIC8vCisgICAgICB7X19MSU5FX18sIGZh
bHNlLCAie1wiYVwiOjluZmluaXR5fSJ9LCAgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7
XCJhXCI6bmZpbml0eX0ifSwgICAvLworICAgICAge19fTElORV9fLCBmYWxzZSwgIntcImFcIjou
bmZpbml0eX0ifSwgIC8vCisgICAgICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOjluZmluaXR5
fSJ9LCAgLy8KKyAgICAgIHtfX0xJTkVfXywgZmFsc2UsICJ7XCJhXCI6LW5maW5pdHl9In0sICAv
LworICAgICAge19fTElORV9fLCB0cnVlLCAie1wiYVwiOkluZmluaXR5fSJ9LCAgIC8vCisgICAg
ICB7X19MSU5FX18sIGZhbHNlLCAie1wiYVwiOi5JbmZpbml0eX0ifSwgLy8KKyAgICAgIHtfX0xJ
TkVfXywgZmFsc2UsICJ7XCJhXCI6X0luZmluaXR5fSJ9LCAvLworICAgICAge19fTElORV9fLCBm
YWxzZSwgIntcImFcIjpfbmZpbml0eX0ifSwgIC8vCisgICAgICB7X19MSU5FX18sIHRydWUsICJ7
XCJhXCI6LUluZmluaXR5fSJ9ICAgLy8KKyAgfTsKKyAgZm9yIChjb25zdCBhdXRvJiB0ZCA6IHRl
c3RfZGF0YSkgeworICAgIGJvb2wgb2sgPSByZWFkZXItPnBhcnNlKCYqdGQuaW4uYmVnaW4oKSwg
Jip0ZC5pbi5iZWdpbigpICsgdGQuaW4uc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKHRkLm9rID09IG9rKSA8PCAi
bGluZToiIDw8IHRkLmxpbmUgPDwgIlxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgIiAgZXhwZWN0ZWQ6IHsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAib2s6IiA8PCB0ZC5vayA8PCAiLCBpbjpcJyIgPDwgdGQuaW4gPDwgIlwnIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPDwgIn1cbiIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8ICIgIGFjdHVhbDogeyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8ICJvazoiIDw8IG9rIDw8ICJ9XG4iOworICB9CisKKyAgeworICAgIGNoYXIgY29uc3Qg
ZG9jW10gPSAie1wicG9zSW5mXCI6IEluZmluaXR5LCBcIk5lZ0luZlwiOiAtSW5maW5pdHl9IjsK
KyAgICBib29sIG9rID0gcmVhZGVyLT5wYXJzZShkb2MsIGRvYyArIHN0ZDo6c3RybGVuKGRvYyks
ICZyb290LCAmZXJycyk7CisgICAgSlNPTlRFU1RfQVNTRVJUKG9rKTsKKyAgICBKU09OVEVTVF9B
U1NFUlRfU1RSSU5HX0VRVUFMKCIiLCBlcnJzKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwo
MnUsIHJvb3Quc2l6ZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoc3RkOjpudW1lcmlj
X2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBy
b290WyJwb3NJbmYiXS5hc0RvdWJsZSgpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLXN0
ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgcm9vdFsiTmVnSW5mIl0uYXNEb3VibGUoKSk7CisgIH0KKyAgZGVsZXRlIHJlYWRl
cjsKK30KKworc3RydWN0IEJ1aWxkZXJUZXN0IDogSnNvblRlc3Q6OlRlc3RDYXNlIHt9OworCitK
U09OVEVTVF9GSVhUVVJFKEJ1aWxkZXJUZXN0LCBzZXR0aW5ncykgeworICB7CisgICAgSnNvbjo6
VmFsdWUgZXJyczsKKyAgICBKc29uOjpDaGFyUmVhZGVyQnVpbGRlciByYjsKKyAgICBKU09OVEVT
VF9BU1NFUlRfRVFVQUwoZmFsc2UsIHJiLnNldHRpbmdzXy5pc01lbWJlcigiZm9vIikpOworICAg
IEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByYi52YWxpZGF0ZSgmZXJycykpOworICAgIHJi
WyJmb28iXSA9ICJiYXIiOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCByYi5zZXR0
aW5nc18uaXNNZW1iZXIoImZvbyIpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2Us
IHJiLnZhbGlkYXRlKCZlcnJzKSk7CisgIH0KKyAgeworICAgIEpzb246OlZhbHVlIGVycnM7Cisg
ICAgSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlciB3YjsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoZmFsc2UsIHdiLnNldHRpbmdzXy5pc01lbWJlcigiZm9vIikpOworICAgIEpTT05URVNUX0FT
U0VSVF9FUVVBTCh0cnVlLCB3Yi52YWxpZGF0ZSgmZXJycykpOworICAgIHdiWyJmb28iXSA9ICJi
YXIiOworICAgIEpTT05URVNUX0FTU0VSVF9FUVVBTCh0cnVlLCB3Yi5zZXR0aW5nc18uaXNNZW1i
ZXIoImZvbyIpKTsKKyAgICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoZmFsc2UsIHdiLnZhbGlkYXRl
KCZlcnJzKSk7CisgIH0KK30KKworc3RydWN0IEl0ZXJhdG9yVGVzdCA6IEpzb25UZXN0OjpUZXN0
Q2FzZSB7fTsKKworSlNPTlRFU1RfRklYVFVSRShJdGVyYXRvclRlc3QsIGRpc3RhbmNlKSB7Cisg
IEpzb246OlZhbHVlIGpzb247CisgIGpzb25bImsxIl0gPSAiYSI7CisgIGpzb25bImsyIl0gPSAi
YiI7CisgIGludCBkaXN0ID0gMDsKKyAgSnNvbjo6U3RyaW5nIHN0cjsKKyAgZm9yIChKc29uOjpW
YWx1ZUl0ZXJhdG9yIGl0ID0ganNvbi5iZWdpbigpOyBpdCAhPSBqc29uLmVuZCgpOyArK2l0KSB7
CisgICAgZGlzdCA9IGl0IC0ganNvbi5iZWdpbigpOworICAgIHN0ciA9IGl0LT5hc1N0cmluZygp
LmNfc3RyKCk7CisgIH0KKyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKDEsIGRpc3QpOworICBKU09O
VEVTVF9BU1NFUlRfU1RSSU5HX0VRVUFMKCJiIiwgc3RyKTsKK30KKworSlNPTlRFU1RfRklYVFVS
RShJdGVyYXRvclRlc3QsIG5hbWVzKSB7CisgIEpzb246OlZhbHVlIGpzb247CisgIGpzb25bImsx
Il0gPSAiYSI7CisgIGpzb25bImsyIl0gPSAiYiI7CisgIEpzb246OlZhbHVlSXRlcmF0b3IgaXQg
PSBqc29uLmJlZ2luKCk7CisgIEpTT05URVNUX0FTU0VSVChpdCAhPSBqc29uLmVuZCgpKTsKKyAg
SlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKCJrMSIpLCBpdC5rZXkoKSk7CisgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoImsxIiwgaXQubmFtZSgpKTsKKyAgSlNPTlRFU1Rf
QVNTRVJUX0VRVUFMKC0xLCBpdC5pbmRleCgpKTsKKyAgKytpdDsKKyAgSlNPTlRFU1RfQVNTRVJU
KGl0ICE9IGpzb24uZW5kKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6VmFsdWUo
ImsyIiksIGl0LmtleSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJUX1NUUklOR19FUVVBTCgiazIiLCBp
dC5uYW1lKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoLTEsIGl0LmluZGV4KCkpOworICAr
K2l0OworICBKU09OVEVTVF9BU1NFUlQoaXQgPT0ganNvbi5lbmQoKSk7Cit9CisKK0pTT05URVNU
X0ZJWFRVUkUoSXRlcmF0b3JUZXN0LCBpbmRleGVzKSB7CisgIEpzb246OlZhbHVlIGpzb247Cisg
IGpzb25bMF0gPSAiYSI7CisgIGpzb25bMV0gPSAiYiI7CisgIEpzb246OlZhbHVlSXRlcmF0b3Ig
aXQgPSBqc29uLmJlZ2luKCk7CisgIEpTT05URVNUX0FTU0VSVChpdCAhPSBqc29uLmVuZCgpKTsK
KyAgSlNPTlRFU1RfQVNTRVJUX0VRVUFMKEpzb246OlZhbHVlKEpzb246OkFycmF5SW5kZXgoMCkp
LCBpdC5rZXkoKSk7CisgIEpTT05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoIiIsIGl0Lm5hbWUo
KSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTCgwLCBpdC5pbmRleCgpKTsKKyAgKytpdDsKKyAg
SlNPTlRFU1RfQVNTRVJUKGl0ICE9IGpzb24uZW5kKCkpOworICBKU09OVEVTVF9BU1NFUlRfRVFV
QUwoSnNvbjo6VmFsdWUoSnNvbjo6QXJyYXlJbmRleCgxKSksIGl0LmtleSgpKTsKKyAgSlNPTlRF
U1RfQVNTRVJUX1NUUklOR19FUVVBTCgiIiwgaXQubmFtZSgpKTsKKyAgSlNPTlRFU1RfQVNTRVJU
X0VRVUFMKDEsIGl0LmluZGV4KCkpOworICArK2l0OworICBKU09OVEVTVF9BU1NFUlQoaXQgPT0g
anNvbi5lbmQoKSk7Cit9CisKK0pTT05URVNUX0ZJWFRVUkUoSXRlcmF0b3JUZXN0LCBjb25zdCkg
eworICBKc29uOjpWYWx1ZSBjb25zdCB2OworICBKU09OVEVTVF9BU1NFUlRfVEhST1dTKAorICAg
ICAgSnNvbjo6VmFsdWU6Oml0ZXJhdG9yIGl0KHYuYmVnaW4oKSkgLy8gQ29tcGlsZSwgYnV0IHRo
cm93LgorICApOworCisgIEpzb246OlZhbHVlIHZhbHVlOworCisgIGZvciAoaW50IGkgPSA5OyBp
IDwgMTI7ICsraSkgeworICAgIEpzb246Ok9TdHJpbmdTdHJlYW0gb3V0OworICAgIG91dCA8PCBz
dGQ6OnNldHcoMikgPDwgaTsKKyAgICBKc29uOjpTdHJpbmcgc3RyID0gb3V0LnN0cigpOworICAg
IHZhbHVlW3N0cl0gPSBzdHI7CisgIH0KKworICBKc29uOjpPU3RyaW5nU3RyZWFtIG91dDsKKyAg
Ly8gaW4gb2xkIGNvZGUsIHRoaXMgd2lsbCBnZXQgYSBjb21waWxlIGVycm9yCisgIEpzb246OlZh
bHVlOjpjb25zdF9pdGVyYXRvciBpdGVyID0gdmFsdWUuYmVnaW4oKTsKKyAgZm9yICg7IGl0ZXIg
IT0gdmFsdWUuZW5kKCk7ICsraXRlcikgeworICAgIG91dCA8PCAqaXRlciA8PCAnLCc7CisgIH0K
KyAgSnNvbjo6U3RyaW5nIGV4cGVjdGVkID0gIlwiIDlcIixcIjEwXCIsXCIxMVwiLCI7CisgIEpT
T05URVNUX0FTU0VSVF9TVFJJTkdfRVFVQUwoZXhwZWN0ZWQsIG91dC5zdHIoKSk7Cit9CisKK3N0
cnVjdCBSVmFsdWVUZXN0IDogSnNvblRlc3Q6OlRlc3RDYXNlIHt9OworCitKU09OVEVTVF9GSVhU
VVJFKFJWYWx1ZVRlc3QsIG1vdmVDb25zdHJ1Y3Rpb24pIHsKKyAgSnNvbjo6VmFsdWUganNvbjsK
KyAganNvblsia2V5Il0gPSAidmFsdWUiOworICBKc29uOjpWYWx1ZSBtb3ZlZCA9IHN0ZDo6bW92
ZShqc29uKTsKKyAgSlNPTlRFU1RfQVNTRVJUKG1vdmVkICE9IGpzb24pOyAvLyBQb3NzaWJseSBu
b3QgbnVsbFZhbHVlOyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIGVxdWFsLgorICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoSnNvbjo6b2JqZWN0VmFs
dWUsIG1vdmVkLnR5cGUoKSk7CisgIEpTT05URVNUX0FTU0VSVF9FUVVBTChKc29uOjpzdHJpbmdW
YWx1ZSwgbW92ZWRbImtleSJdLnR5cGUoKSk7Cit9CisKK3N0cnVjdCBGdXp6VGVzdCA6IEpzb25U
ZXN0OjpUZXN0Q2FzZSB7fTsKKworLy8gQnVpbGQgYW5kIHJ1biB0aGUgZnV6eiB0ZXN0IHdpdGhv
dXQgYW55IGZ1enplciwgc28gdGhhdCBpdCdzIGd1YXJhbnRlZWQgbm90CisvLyBnbyBvdXQgb2Yg
ZGF0ZSwgZXZlbiBpZiBpdCdzIG5ldmVyIHJ1biBhcyBhbiBhY3R1YWwgZnV6eiB0ZXN0LgorSlNP
TlRFU1RfRklYVFVSRShGdXp6VGVzdCwgZnV6ekRvZXNudENyYXNoKSB7CisgIGNvbnN0IHN0ZDo6
c3RyaW5nIGV4YW1wbGUgPSAie30iOworICBKU09OVEVTVF9BU1NFUlRfRVFVQUwoCisgICAgICAw
LAorICAgICAgTExWTUZ1enplclRlc3RPbmVJbnB1dChyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihleGFtcGxlLmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eGFtcGxlLnNpemUoKSkpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJn
dltdKSB7CisgIEpzb25UZXN0OjpSdW5uZXIgcnVubmVyOworICBKU09OVEVTVF9SRUdJU1RFUl9G
SVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjaGVja05vcm1hbGl6ZUZsb2F0aW5nUG9pbnRTdHIp
OworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBtZW1iZXJD
b3VudCk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIG9i
amVjdHMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBh
cnJheXMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBh
cnJheUlzc3VlMjUyKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVl
VGVzdCwgbnVsbCk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRl
c3QsIHN0cmluZ3MpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVU
ZXN0LCBib29scyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRl
c3QsIGludGVnZXJzKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVl
VGVzdCwgbm9uSW50ZWdlcnMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwg
VmFsdWVUZXN0LCBjb21wYXJlTnVsbCk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVu
bmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVJbnQpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJF
KHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlVUludCk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJ
WFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIGNvbXBhcmVEb3VibGUpOworICBKU09OVEVTVF9SRUdJ
U1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlU3RyaW5nKTsKKyAgSlNPTlRF
U1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVzdCwgY29tcGFyZUJvb2xlYW4pOwor
ICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjb21wYXJlQXJy
YXkpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBjb21w
YXJlT2JqZWN0KTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVz
dCwgY29tcGFyZVR5cGUpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFs
dWVUZXN0LCBDb3B5T2JqZWN0KTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIs
IFZhbHVlVGVzdCwgb2Zmc2V0QWNjZXNzb3JzKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVS
RShydW5uZXIsIFZhbHVlVGVzdCwgdHlwZUNoZWNrc1Rocm93RXhjZXB0aW9ucyk7CisgIEpTT05U
RVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIFN0YXRpY1N0cmluZyk7Cisg
IEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBWYWx1ZVRlc3QsIFdpZGVTdHJpbmcp
OworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0LCBDb21tZW50
QmVmb3JlKTsKKyAgLy8gSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFZhbHVlVGVz
dCwgbnVsbHMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0
LCB6ZXJvZXMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFsdWVUZXN0
LCB6ZXJvZXNJbktleXMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgVmFs
dWVUZXN0LCBzcGVjaWFsRmxvYXRzKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5u
ZXIsIFZhbHVlVGVzdCwgcHJlY2lzaW9uKTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJF
KHJ1bm5lciwgV3JpdGVyVGVzdCwgZHJvcE51bGxQbGFjZWhvbGRlcnMpOworICBKU09OVEVTVF9S
RUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgU3RyZWFtV3JpdGVyVGVzdCwgZHJvcE51bGxQbGFjZWhv
bGRlcnMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgU3RyZWFtV3JpdGVy
VGVzdCwgd3JpdGVaZXJvZXMpOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVy
LCBSZWFkZXJUZXN0LCBwYXJzZVdpdGhOb0Vycm9ycyk7CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJ
WFRVUkUocnVubmVyLCBSZWFkZXJUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
cnNlV2l0aE5vRXJyb3JzVGVzdGluZ09mZnNldHMpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhU
VVJFKHJ1bm5lciwgUmVhZGVyVGVzdCwgcGFyc2VXaXRoT25lRXJyb3IpOworICBKU09OVEVTVF9S
RUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgUmVhZGVyVGVzdCwgcGFyc2VDaGluZXNlV2l0aE9uZUVy
cm9yKTsKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFJlYWRlclRlc3QsIHBh
cnNlV2l0aERldGFpbEVycm9yKTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aE5vRXJyb3JzKTsKKyAgSlNPTlRFU1RfUkVHSVNU
RVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJUZXN0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhcnNlV2l0aE5vRXJyb3JzVGVzdGluZ09mZnNldHMpOworICBKU09OVEVTVF9SRUdJ
U1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aE9uZUVycm9yKTsK
KyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJUZXN0LCBwYXJz
ZUNoaW5lc2VXaXRoT25lRXJyb3IpOworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgQ2hhclJlYWRlclRlc3QsIHBhcnNlV2l0aERldGFpbEVycm9yKTsKKyAgSlNPTlRFU1RfUkVH
SVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFkZXJUZXN0LCBwYXJzZVdpdGhTdGFja0xpbWl0
KTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlclN0cmlj
dE1vZGVUZXN0LCBkdXBLZXlzKTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgQ2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCwgaXNzdWUxNjQpOworICBKU09OVEVTVF9SRUdJ
U1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlckZhaWxJZkV4dHJhVGVzdCwgaXNzdWUxMDcp
OworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlckZhaWxJZkV4
dHJhVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50QWZ0ZXJPYmplY3Qp
OworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgQ2hhclJlYWRlckZhaWxJZkV4
dHJhVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50QWZ0ZXJBcnJheSk7
CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVhZGVyRmFpbElmRXh0
cmFUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRBZnRlckJvb2wpOwor
CisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVhZGVyQWxsb3dEcm9w
TnVsbFRlc3QsIGlzc3VlMTc4KTsKKworICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5l
ciwgQ2hhclJlYWRlckFsbG93U2luZ2xlUXVvdGVzVGVzdCwgaXNzdWUxODIpOworCisgIEpTT05U
RVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBDaGFyUmVhZGVyQWxsb3daZXJvZXNUZXN0LCBp
c3N1ZTE3Nik7CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIENoYXJSZWFk
ZXJBbGxvd1NwZWNpYWxGbG9hdHNUZXN0LCBpc3N1ZTIwOSk7CisKKyAgSlNPTlRFU1RfUkVHSVNU
RVJfRklYVFVSRShydW5uZXIsIEJ1aWxkZXJUZXN0LCBzZXR0aW5ncyk7CisKKyAgSlNPTlRFU1Rf
UkVHSVNURVJfRklYVFVSRShydW5uZXIsIEl0ZXJhdG9yVGVzdCwgZGlzdGFuY2UpOworICBKU09O
VEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgSXRlcmF0b3JUZXN0LCBuYW1lcyk7CisgIEpT
T05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBJdGVyYXRvclRlc3QsIGluZGV4ZXMpOwor
ICBKU09OVEVTVF9SRUdJU1RFUl9GSVhUVVJFKHJ1bm5lciwgSXRlcmF0b3JUZXN0LCBjb25zdCk7
CisKKyAgSlNPTlRFU1RfUkVHSVNURVJfRklYVFVSRShydW5uZXIsIFJWYWx1ZVRlc3QsIG1vdmVD
b25zdHJ1Y3Rpb24pOworCisgIEpTT05URVNUX1JFR0lTVEVSX0ZJWFRVUkUocnVubmVyLCBGdXp6
VGVzdCwgZnV6ekRvZXNudENyYXNoKTsKKworICByZXR1cm4gcnVubmVyLnJ1bkNvbW1hbmRMaW5l
KGFyZ2MsIGFyZ3YpOworfQorCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcG9wCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24v
c2NvbnNjcmlwdCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2Uvc3JjL3Rlc3RfbGliX2pzb24vc2NvbnNjcmlwdApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTE1ZmQwMWMwYTM5MzgwN2U5NmQyMGM4Mzg3NGU2ODY3NDM3
NjVlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3NyYy90ZXN0X2xpYl9qc29uL3Njb25zY3JpcHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCww
IEBACi1JbXBvcnQoICdlbnZfdGVzdGluZyBidWlsZFVuaXRUZXN0cycgKQotCi1idWlsZFVuaXRU
ZXN0cyggZW52X3Rlc3RpbmcsIFNwbGl0KCAiIiIKLSAgICBtYWluLmNwcAotICAgIGpzb250ZXN0
LmNwcAotICAgICAiIiIgKSwKLSAgICAndGVzdF9saWJfanNvbicgKQotCi0jIEZvciAnY2hlY2sn
IHRvIHdvcmssICdsaWJzJyBtdXN0IGJlIGJ1aWx0IGZpcnN0LgotZW52X3Rlc3RpbmcuRGVwZW5k
cygndGVzdF9saWJfanNvbicsICcjbGlicycpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvY2xlYW50
ZXN0cy5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvdGVzdC9jbGVhbnRlc3RzLnB5CmluZGV4IGMzOGZkOGZmZGQxOGE0MWJm
YmM3Y2Y5MjAxYTYzMmFiYjAyNzUzZjYuLjM2ZDViOWI0NjEwNDhiMjQwNTVjMWQ2OGEyN2Q1ODJj
NzNjYzgwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9jbGVhbnRlc3RzLnB5CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dGVzdC9jbGVhbnRlc3RzLnB5CkBAIC0xLDEwICsxLDE2IEBACi0jIHJlbW92ZXMgYWxsIGZpbGVz
IGNyZWF0ZWQgZHVyaW5nIHRlc3RpbmcKKyMgQ29weXJpZ2h0IDIwMDcgQmFwdGlzdGUgTGVwaWxs
ZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisjIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNl
bnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisjIHJlY29nbml6ZWQgaW4geW91
ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0
IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyIiIlJlbW92ZXMgYWxs
IGZpbGVzIGNyZWF0ZWQgZHVyaW5nIHRlc3RpbmcuIiIiCisKIGltcG9ydCBnbG9iCiBpbXBvcnQg
b3MKIAogcGF0aHMgPSBbXQogZm9yIHBhdHRlcm4gaW4gWyAnKi5hY3R1YWwnLCAnKi5hY3R1YWwt
cmV3cml0ZScsICcqLnJld3JpdGUnLCAnKi5wcm9jZXNzLW91dHB1dCcgXToKLSAgICBwYXRocyAr
PSBnbG9iLmdsb2IoICdkYXRhLycgKyBwYXR0ZXJuICkKKyAgICBwYXRocyArPSBnbG9iLmdsb2Io
J2RhdGEvJyArIHBhdHRlcm4pCiAKIGZvciBwYXRoIGluIHBhdGhzOgotICAgIG9zLnVubGluaygg
cGF0aCApCisgICAgb3MudW5saW5rKHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS9m
YWlsX3Rlc3Rfc3RhY2tfbGltaXQuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL2ZhaWxfdGVzdF9zdGFj
a19saW1pdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MjRlMGJiYjk1NWNjNDE2ODU3ZjE2YzljODA2M2Zk
MTg5OTA0NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS9mYWlsX3Rlc3Rfc3Rh
Y2tfbGltaXQuanNvbgpAQCAtMCwwICsxIEBACitbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb
W1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW11dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
XV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvZGF0YS90ZXN0X2Jhc2ljXzA4LmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9i
YXNpY18wOC5leHBlY3RlZAppbmRleCBjOGRiODIyZTU4NGIzNTg3MDQzOGE2MjcxMjMxMTBjZjZh
NWQ2NzY4Li5jYWY1MzUyYTExMzk5M2RhZDc5YjkxMTlhY2IyODhlNzhkNDE2ODVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2Jhc2ljXzA4LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVz
dC9kYXRhL3Rlc3RfYmFzaWNfMDguZXhwZWN0ZWQKQEAgLTEsMiArMSwzIEBACisvLyBDKysgc3R5
bGUgY29tbWVudAogLj1udWxsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfYmFz
aWNfMDkuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2Jhc2ljXzA5LmV4cGVjdGVkCmlu
ZGV4IGM4ZGI4MjJlNTg0YjM1ODcwNDM4YTYyNzEyMzExMGNmNmE1ZDY3NjguLjhiMTI5ZGE0MmU0
Y2RkYjExNDUzNWExZWRmYjQ3MDNmYjA4ODljODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRh
L3Rlc3RfYmFzaWNfMDkuZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9iYXNpY18w
OS5leHBlY3RlZApAQCAtMSwyICsxLDQgQEAKKy8qIEMgc3R5bGUgY29tbWVudAorICovCiAuPW51
bGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAwLmV4cGVjdGVk
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAwLmV4cGVjdGVkCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4
NGE3OTdkNzE0NzI5MjhhODVjZTVjN2Y4OWFmNzQxZDljOTQ1YzAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDAuZXhwZWN0ZWQKQEAgLTAsMCArMSw0IEBA
CisvLyBDb21tZW50IGZvciBhcnJheQorLj1bXQorLy8gQ29tbWVudCB3aXRoaW4gYXJyYXkKKy5b
MF09Im9uZS1lbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50
XzAwLmpzb24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDAuanNvbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZGY1NzdhOGFlMjIwNzYxMWUxZGI5ZGFjNGVlZTkzMDYwZjFlZjM2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21tZW50XzAwLmpzb24KQEAgLTAsMCArMSw1IEBA
CisvLyBDb21tZW50IGZvciBhcnJheQorWworICAgLy8gQ29tbWVudCB3aXRoaW4gYXJyYXkKKyAg
ICJvbmUtZWxlbWVudCIKK10KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVu
dF8wMS5leHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMS5leHBlY3RlZApp
bmRleCAyYTdmMDBjNDUwYjQzYzc4OTQ5NTA2Y2M1MTYxZmNjYTY1M2JkMDg4Li4xZWQwMWJhMTAw
YzRiZGJiYTM3NTNkODA5MmQ2ODBiYjU2OTU5NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X2NvbW1lbnRfMDEuZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9jb21t
ZW50XzAxLmV4cGVjdGVkCkBAIC0xLDUgKzEsNyBAQAogLj17fQorLy8gQ29tbWVudCBmb3IgYXJy
YXkKIC50ZXN0PVtdCisvLyBDb21tZW50IHdpdGhpbiBhcnJheQogLnRlc3RbMF09e30KIC50ZXN0
WzBdLmE9ImFhYSIKIC50ZXN0WzFdPXt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0
X2NvbW1lbnRfMDEuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMS5qc29uCmlu
ZGV4IDczNjM0OTBhOTFkOTkxOGM2MzU2ZjE0MGY3NjAxMzA2YTRlN2NiZTguLjZkZWZlNDAwNDA0
YTE3YjUwYTBkZmExZDM5ZWFlODcyNWU5OTIzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRh
L3Rlc3RfY29tbWVudF8wMS5qc29uCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8w
MS5qc29uCkBAIC0xLDYgKzEsOCBAQAogewogICAgICJ0ZXN0IjoKKyAgICAvLyBDb21tZW50IGZv
ciBhcnJheQogICAgIFsKKyAgICAgICAvLyBDb21tZW50IHdpdGhpbiBhcnJheQogICAgICAgIHsg
ImEiIDogImFhYSIgfSwgLy8gQ29tbWVudCBmb3IgYQogICAgICAgIHsgImIiIDogImJiYiIgfSwg
Ly8gQ29tbWVudCBmb3IgYgogICAgICAgIHsgImMiIDogImNjYyIgfSAvLyBDb21tZW50IGZvciBj
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDIuZXhwZWN0ZWQgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDIuZXhwZWN0ZWQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk4NmRi
YWMwNWViYmY0Y2UwMGIzZDNiNDNmMWFkYjNiNmVkMDU2YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvdGVzdC9kYXRhL3Rlc3RfY29tbWVudF8wMi5leHBlY3RlZApAQCAtMCwwICsxLDIzIEBACisu
PXt9CisvKiBDLXN0eWxlIGNvbW1lbnQKKworICAgIEMtc3R5bGUtMiBjb21tZW50ICovCisuYy10
ZXN0PXt9CisuYy10ZXN0LmE9MQorLyogSW50ZXJuYWwgY29tbWVudCBjLXN0eWxlICovCisuYy10
ZXN0LmI9MgorLy8gQysrLXN0eWxlIGNvbW1lbnQKKy5jcHAtdGVzdD17fQorLy8gTXVsdGlsaW5l
IGNvbW1lbnQgY3BwLXN0eWxlCisvLyBTZWNvbmQgbGluZQorLmNwcC10ZXN0LmM9MworLy8gQ29t
bWVudCBiZWZvcmUgZG91YmxlCisuY3BwLXRlc3QuZD00LjEKKy8vIENvbW1lbnQgYmVmb3JlIHN0
cmluZworLmNwcC10ZXN0LmU9ImUtc3RyaW5nIgorLy8gQ29tbWVudCBiZWZvcmUgdHJ1ZQorLmNw
cC10ZXN0LmY9dHJ1ZQorLy8gQ29tbWVudCBiZWZvcmUgZmFsc2UKKy5jcHAtdGVzdC5nPWZhbHNl
CisvLyBDb21tZW50IGJlZm9yZSBudWxsCisuY3BwLXRlc3QuaD1udWxsCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1lbnRfMDIuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3Rf
Y29tbWVudF8wMi5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1MDQyZTBkZDY4ZWFjM2ZhYmU0OGQxYWIwOTQ5
MzA2YmEzZGNkODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2NvbW1l
bnRfMDIuanNvbgpAQCAtMCwwICsxLDI2IEBACit7CisgICAvKiBDLXN0eWxlIGNvbW1lbnQKKwor
ICAgIEMtc3R5bGUtMiBjb21tZW50ICovCisgICAiYy10ZXN0IiA6IHsKKyAgICAgICJhIiA6IDEs
CisgICAgICAvKiBJbnRlcm5hbCBjb21tZW50IGMtc3R5bGUgKi8KKyAgICAgICJiIiA6IDIKKyAg
IH0sCisgICAvLyBDKystc3R5bGUgY29tbWVudAorICAgImNwcC10ZXN0IiA6IHsKKyAgICAgIC8v
IE11bHRpbGluZSBjb21tZW50IGNwcC1zdHlsZQorICAgICAgLy8gU2Vjb25kIGxpbmUKKyAgICAg
ICJjIiA6IDMsCisgICAgICAvLyBDb21tZW50IGJlZm9yZSBkb3VibGUKKyAgICAgICJkIiA6IDQu
MSwKKyAgICAgIC8vIENvbW1lbnQgYmVmb3JlIHN0cmluZworICAgICAgImUiIDogImUtc3RyaW5n
IiwKKyAgICAgIC8vIENvbW1lbnQgYmVmb3JlIHRydWUKKyAgICAgICJmIiA6IHRydWUsCisgICAg
ICAvLyBDb21tZW50IGJlZm9yZSBmYWxzZQorICAgICAgImciIDogZmFsc2UsCisgICAgICAvLyBD
b21tZW50IGJlZm9yZSBudWxsCisgICAgICAiaCIgOiBudWxsCisgICB9Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAv
c291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDEuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X2ludGVnZXJfMDEuZXhwZWN0ZWQKaW5kZXggNTkzZjFkYjMyYmI2OWYwMmNjNDU1Nzlk
NTk2NjYyYTlkZTVjNWE3OS4uNDYzZTE0OWRlODcxMzA5ZTQzNTUyMjQ3MGVlNmQxNWYzNzI1NWEw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAxLmV4cGVjdGVkCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMS5leHBlY3RlZApAQCAtMSArMSwyIEBA
CisvLyBNYXggc2lnbmVkIGludGVnZXIKIC49MjE0NzQ4MzY0NwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAyLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9p
bnRlZ2VyXzAyLmV4cGVjdGVkCmluZGV4IDRiODNiZDdjYWUzZDhlNTg2MGE5MTU4ZWVmOTMzZjBh
OWY4YWNjMzQuLjA3NzNlMDg1MWE0OWRhN2FiNzViYWM5ZTczMjhjNjA0OGJiMmFlNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfaW50ZWdlcl8wMi5leHBlY3RlZAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDIuZXhwZWN0ZWQKQEAgLTEgKzEsMiBAQAorLy8gTWlu
IHNpZ25lZCBpbnRlZ2VyCiAuPS0yMTQ3NDgzNjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X2ludGVnZXJfMDMuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJf
MDMuZXhwZWN0ZWQKaW5kZXggMzdjMWNiMTQ2YjBlMWRiZDJlZDJlNTQwN2ViYWJjMjYwYTBiODE3
OS4uYzdlZmZmNzk5ZWIzMzY5YWFlZmNlMmMzYzU4NmQ3OGUwN2JkZDhhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS90ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzAzLmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9k
YXRhL3Rlc3RfaW50ZWdlcl8wMy5leHBlY3RlZApAQCAtMSArMSwyIEBACisvLyBNYXggdW5zaWdu
ZWQgaW50ZWdlcgogLj00Mjk0OTY3Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0
X2ludGVnZXJfMDQuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X2ludGVnZXJfMDQuZXhw
ZWN0ZWQKaW5kZXggYjdiNTQ4ZTNkMzMyOGVmNzYwZTRkMTkzYzI5YzhjNDRiODllOTVjNi4uMzlm
ODU2NzA0MGZjOGM5ZDJjMTNhOWZkMzhhZWQ0ZjZmZTFhMDI4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9pbnRlZ2VyXzA0LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rl
c3RfaW50ZWdlcl8wNC5leHBlY3RlZApAQCAtMSwyICsxLDMgQEAKKy8vIE1pbiB1bnNpZ25lZCBp
bnRlZ2VyCiAuPTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9wcmVzZXJ2ZV9j
b21tZW50XzAxLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9wcmVzZXJ2ZV9jb21tZW50
XzAxLmV4cGVjdGVkCmluZGV4IDhkODgwNDEwODY2YTM4NjRiNDk3Y2ZlNGExNmNiYmIwYWUxNTE1
MTAuLjI3OTdhYTdkNmJlZGY1NDI1NDlmMWU5MjgxNzdlOTkyNjE3ZDYxMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdGVzdC9kYXRhL3Rlc3RfcHJlc2VydmVfY29tbWVudF8wMS5leHBlY3RlZAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291
cmNlL3Rlc3QvZGF0YS90ZXN0X3ByZXNlcnZlX2NvbW1lbnRfMDEuZXhwZWN0ZWQKQEAgLTEsMyAr
MSwxMSBAQAorLyogQSBjb21tZW50CisgICBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlLgor
ICovCiAuPXt9CiAuZmlyc3Q9MQorLyogQ29tbWVudCBiZWZvcmUgJ3NlY29uZCcKKyAqLwogLnNl
Y29uZD0yCisvKiBBIGNvbW1lbnQgYXQgCisgICB0aGUgZW5kIG9mIHRoZSBmaWxlLgorICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDEuZXhwZWN0ZWQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rl
c3QvZGF0YS90ZXN0X3JlYWxfMDEuZXhwZWN0ZWQKaW5kZXggYWUyMzU3MjMxZTk0YjU4ZGU1ODk3
NTEyODFhNWYzYjQ3MDRkMTYzMC4uOTUxNDgyNzA4YTBhNGMyYzAyM2Q5ZTMzNDJhZDRlZjQ5OTZl
NDA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzAxLmV4cGVjdGVkCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wMS5leHBlY3RlZApAQCAtMSwyICsxLDMgQEAK
Ky8vIDJeMzMgPT4gb3V0IG9mIGludGVnZXIgcmFuZ2UsIHN3aXRjaCB0byBkb3VibGUKIC49ODU4
OTkzNDU5MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDIuZXhwZWN0
ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25j
cHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDIuZXhwZWN0ZWQKaW5kZXggZGY4ZGU0MjEw
OWFkMGM5ZDk0NWU4NWY1Njg1MTAwYmRiODYwY2M5ZC4uYjgwYzAwNDgxMTk0NjA0NzViMzdlOTU4
OGNlYmYyNzRhZjBkOWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzAy
LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wMi5leHBlY3RlZApAQCAt
MSwyICsxLDMgQEAKKy8vIC0yXjMyID0+IG91dCBvZiBzaWduZWQgaW50ZWdlciByYW5nZSwgc3dp
dGNoIHRvIGRvdWJsZQogLj0tNDI5NDk2NzI5NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X3JlYWxfMDMuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDMuZXhw
ZWN0ZWQKaW5kZXggZGY4ZGU0MjEwOWFkMGM5ZDk0NWU4NWY1Njg1MTAwYmRiODYwY2M5ZC4uYjgw
YzAwNDgxMTk0NjA0NzViMzdlOTU4OGNlYmYyNzRhZjBkOWMwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9yZWFsXzAzLmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3Rf
cmVhbF8wMy5leHBlY3RlZApAQCAtMSwyICsxLDMgQEAKKy8vIC0yXjMyID0+IG91dCBvZiBzaWdu
ZWQgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRvdWJsZQogLj0tNDI5NDk2NzI5NQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDQuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3Qv
ZGF0YS90ZXN0X3JlYWxfMDQuZXhwZWN0ZWQKaW5kZXggZDcyNmFiZTQwYmE0MjQyNWZkZTgzYWFm
NGFlMGYyOGExMTNiYjZiNy4uZmY3MWEyM2UxNDE1NTdjMmI1Nzg4ZGY5MzI4MTE5ZTQwNGNlOGVh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA0LmV4cGVjdGVkCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9z
b3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNC5leHBlY3RlZApAQCAtMSwyICsxLDMgQEAKKy8v
IDEuMjM0NTY3OAogLj0xLjIzNDU2NzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVz
dF9yZWFsXzA1LmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA1LmV4cGVjdGVk
CmluZGV4IDk0OWZkOGY1NWRlOTdhNDI2NmM5YWI2NWRiZjUyYjBlMWExZmUwZGQuLjdhNDYwOTMy
ZDdiN2M1ZmE2NDJiYTY3OTMzN2FiNDcyYmUwMTcxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9k
YXRhL3Rlc3RfcmVhbF8wNS5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxf
MDUuZXhwZWN0ZWQKQEAgLTEsMyArMSw0IEBACisvLyAxMjM0NTY3LjgKIC49MTIzNDU2Ny44CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA2LmV4cGVjdGVkIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA2LmV4cGVjdGVkCmluZGV4IDAzYjdkN2Y5ODcyOWY5YmI5
ZDY2NjRlZjhiNDRlZTNjNDBiMTc2MzMuLmE0YTAwNGRlYjE0MDQyNWE5YmMyOWFiYTY2ZDZjMjFm
ZTNhMTE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wNi5leHBlY3Rl
ZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDYuZXhwZWN0ZWQKQEAgLTEsMyArMSw0
IEBACisvLyAtMS4yMzQ1Njc4CiAuPS0xLjIzNDU2NzgKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rl
c3QvZGF0YS90ZXN0X3JlYWxfMDcuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxf
MDcuZXhwZWN0ZWQKaW5kZXggMTIwMjVhNDA0YjBlYTlkNWMyODcwODdmMGM2OTJlZTA0MzRmMjhj
OS4uZGMwMmE4OTU4MzExMjkzY2NmOGU1NWY3OGY0OGZlN2I1NjVkYzY2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3Nv
dXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA3LmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRh
L3Rlc3RfcmVhbF8wNy5leHBlY3RlZApAQCAtMSwzICsxLDQgQEAKKy8vIC0xMjM0NTY3LjgKIC49
LTEyMzQ1NjcuOAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wOC5l
eHBlY3RlZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
anNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wOC5leHBlY3RlZAppbmRleCA5YTVm
MDYyODQyMWZiN2MzOTkyN2JlZTJlMjk1ZGI3YTRkOWJhZmJmLi5iMWRlZWY5MTllOTViMjgyY2Ex
ODUxNGFkNzkzNzU0MjZhZmMwNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3Jl
YWxfMDguZXhwZWN0ZWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA4LmV4cGVjdGVk
CkBAIC0xICsxLDQgQEAKKy8vIE91dCBvZiAzMi1iaXQgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRv
IGRvdWJsZSBpbiAzMi1iaXQgbW9kZS4gTGVuZ3RoIHRoZQorLy8gc2FtZSBhcyBVSU5UX01BWCBp
biBiYXNlIDEwIGFuZCBkaWdpdCBsZXNzIHRoYW4gVUlOVF9NQVgncyBsYXN0IGRpZ2l0IGluCisv
LyBvcmRlciB0byBjYXRjaCBhIGJ1ZyBpbiB0aGUgcGFyc2luZyBjb2RlLgogLj00MzAwMDAwMDAx
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDkuZXhwZWN0ZWQgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvZGF0YS90ZXN0X3JlYWxfMDkuZXhwZWN0ZWQKaW5kZXggNmRhODE1ZTY2OWVjOTEyMDI0
OWRmMmUyYTFlNGRhZTVmZDE0NjQyYy4uYWEyZGJiMjg0OWQyNTFiZWQ1YmIxOWRhMDU1MWE5YTZm
NGYxNzQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzA5LmV4cGVjdGVk
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8wOS5leHBlY3RlZApAQCAtMSArMSw0IEBA
CisvLyBPdXQgb2YgNjQtYml0IGludGVnZXIgcmFuZ2UsIHN3aXRjaCB0byBkb3VibGUgaW4gYWxs
IG1vZGVzLiBMZW5ndGggdGhlIHNhbWUKKy8vIGFzIFVMT05HX01BWCBpbiBiYXNlIDEwIGFuZCBk
aWdpdCBsZXNzIHRoYW4gVUxPTkdfTUFYJ3MgbGFzdCBkaWdpdCBpbiBvcmRlcgorLy8gdG8gY2F0
Y2ggYSBidWcgaW4gdGhlIHBhcnNpbmcgY29kZS4KIC49MS45ZSsxOQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzEwLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9y
ZWFsXzEwLmV4cGVjdGVkCmluZGV4IDAxMTI2YmZiZWMxZmY1MTA1NTI2ODYwNWMwMjczNGVmZjgx
YjNlOTguLmQyOGE0MzBlYWI0ZDljNzM3Y2RjYjgyNjVmNGFjYzliODdmOTAxMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNw
cC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3RfcmVhbF8xMC5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3Qv
ZGF0YS90ZXN0X3JlYWxfMTAuZXhwZWN0ZWQKQEAgLTEgKzEsNCBAQAorLy8gT3V0IG9mIDMyLWJp
dCBzaWduZWQgaW50ZWdlciByYW5nZSwgc3dpdGNoIHRvIGRvdWJsZSBpbiBhbGwgbW9kZXMuIExl
bmd0aAorLy8gdGhlIHNhbWUgYXMgSU5UX01JTiBpbiBiYXNlIDEwIGFuZCBkaWdpdCBsZXNzIHRo
YW4gSU5UX01JTidzIGxhc3QgZGlnaXQgaW4KKy8vIG9yZGVyIHRvIGNhdGNoIGEgYnVnIGluIHRo
ZSBwYXJzaW5nIGNvZGUuCiAuPS0yMjAwMDAwMDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0
YS90ZXN0X3JlYWxfMTEuZXhwZWN0ZWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMTEuZXhw
ZWN0ZWQKaW5kZXggMTdmNDE4N2I5OGU1ODJhOWM0NGIwNzNhOGRkNmE5MjA2MGZkNWU0YS4uMjU1
MTk0NmY1MmY2YTRiOWFjZWMxNTI2OTI0MDU3ZWM3ZmRhN2VlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L2RhdGEvdGVzdF9yZWFsXzExLmV4cGVjdGVkCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rlc3Rf
cmVhbF8xMS5leHBlY3RlZApAQCAtMSArMSw0IEBACisvLyBPdXQgb2YgNjQtYml0IHNpZ25lZCBp
bnRlZ2VyIHJhbmdlLCBzd2l0Y2ggdG8gZG91YmxlIGluIGFsbCBtb2Rlcy4gTGVuZ3RoCisvLyB0
aGUgc2FtZSBhcyBMT05HX01JTiBpbiBiYXNlIDEwIGFuZCBkaWdpdCBsZXNzIHRoYW4gTE9OR19N
SU4ncyBsYXN0IGRpZ2l0IGluCisvLyBvcmRlciB0byBjYXRjaCBhIGJ1ZyBpbiB0aGUgcGFyc2lu
ZyBjb2RlLgogLj0tOS4zZSsxOApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFs
XzEyLmV4cGVjdGVkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9qc29uY3BwL3NvdXJjZS90ZXN0L2RhdGEvdGVzdF9yZWFsXzEyLmV4cGVjdGVkCmluZGV4
IGEwMDAzMTkyZGQxOWI3MWNmOWIyN2ExZjZlMjAxZjEzYTNmNzYyYjUuLjkzZTI0MTdkMzQyNGRl
YTFiMjc1MTk2MjBiMmEzYjI0NWUxMjEzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9kYXRhL3Rl
c3RfcmVhbF8xMi5leHBlY3RlZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZGF0YS90ZXN0X3JlYWxfMTIuZXhw
ZWN0ZWQKQEAgLTEgKzEsMiBAQAorLy8gMl42NCAtPiBzd2l0Y2ggdG8gZG91YmxlLgogLj0xLjg0
NDY3NDQwNzM3MDk1NWUrMTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9nZW5lcmF0ZV9leHBlY3Rl
ZC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNv
bmNwcC9zb3VyY2UvdGVzdC9nZW5lcmF0ZV9leHBlY3RlZC5weQppbmRleCA1YjIxNWM0NjcwNGI1
MjIyNTYzYjZhM2Q4OTM0NmFlNGQzMjk0OTVkLi5lMDQ5YWI1ZjRkMTIzMzYzZjBlY2NlZjc0OWJm
NGE4YTQyMGRlMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvZ2VuZXJhdGVfZXhwZWN0ZWQucHkK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29u
Y3BwL3NvdXJjZS90ZXN0L2dlbmVyYXRlX2V4cGVjdGVkLnB5CkBAIC0xLDExICsxLDE3IEBACisj
IENvcHlyaWdodCAyMDA3IEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9y
cworIyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBk
ZXNpcmVkIGFuZAorIyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorIyBTZWUgZmls
ZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3Jn
ZS5uZXQvTElDRU5TRQorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBp
bXBvcnQgZ2xvYgogaW1wb3J0IG9zLnBhdGgKLWZvciBwYXRoIGluIGdsb2IuZ2xvYiggJyouanNv
bicgKToKK2ZvciBwYXRoIGluIGdsb2IuZ2xvYignKi5qc29uJyk6CiAgICAgdGV4dCA9IGZpbGUo
cGF0aCwncnQnKS5yZWFkKCkKICAgICB0YXJnZXQgPSBvcy5wYXRoLnNwbGl0ZXh0KHBhdGgpWzBd
ICsgJy5leHBlY3RlZCcKLSAgICBpZiBvcy5wYXRoLmV4aXN0cyggdGFyZ2V0ICk6Ci0gICAgICAg
IHByaW50ICdza2lwcGluZzonLCB0YXJnZXQKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyh0YXJnZXQp
OgorICAgICAgICBwcmludCgnc2tpcHBpbmc6JywgdGFyZ2V0KQogICAgIGVsc2U6Ci0gICAgICAg
IHByaW50ICdjcmVhdGluZzonLCB0YXJnZXQKKyAgICAgICAgcHJpbnQoJ2NyZWF0aW5nOicsIHRh
cmdldCkKICAgICAgICAgZmlsZSh0YXJnZXQsJ3d0Jykud3JpdGUodGV4dCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3Bw
L3NvdXJjZS90ZXN0L3B5anNvbnRlc3RydW5uZXIucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcHlqc29udGVzdHJ1
bm5lci5weQppbmRleCA1MDRmM2RiMmU3OWEyODExNzQxMjJmZWMzODUxN2NlNTgyMTIwMzM5Li5i
ZDc0OWI1MzBmMzBlODI2NDIyMWZhZjBmOTJkZjY1ZGU3Mjk0OTEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNl
L3Rlc3QvcHlqc29udGVzdHJ1bm5lci5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcHlqc29udGVzdHJ1bm5l
ci5weQpAQCAtMSwxMiArMSwxOSBAQAotIyBTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYSBqc29u
IHRlc3QgcnVubmVyIHRvIHJ1biB0aGUgdGVzdCBhZ2FpbnN0IGpzb24tcHkuCisjIENvcHlyaWdo
dCAyMDA3IEJhcHRpc3RlIExlcGlsbGV1ciBhbmQgVGhlIEpzb25DcHAgQXV0aG9ycworIyBEaXN0
cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFu
ZAorIyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorIyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQogCisiIiJTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYSBqc29uIHRlc3QgcnVubmVyIHRv
IHJ1biB0aGUgdGVzdCBhZ2FpbnN0Citqc29uLXB5LiIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgc3lzCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IGpz
b24KIGltcG9ydCB0eXBlcwogCiBpZiBsZW4oc3lzLmFyZ3YpICE9IDI6Ci0gICAgcHJpbnQgIlVz
YWdlOiAlcyBpbnB1dC1qc29uLWZpbGUiLCBzeXMuYXJndlswXQorICAgIHByaW50KCJVc2FnZTog
JXMgaW5wdXQtanNvbi1maWxlIiwgc3lzLmFyZ3ZbMF0pCiAgICAgc3lzLmV4aXQoMykKICAgICAK
IGlucHV0X3BhdGggPSBzeXMuYXJndlsxXQpAQCAtMTUsNTAgKzIyLDUwIEBAIGFjdHVhbF9wYXRo
ID0gYmFzZV9wYXRoICsgJy5hY3R1YWwnCiByZXdyaXRlX3BhdGggPSBiYXNlX3BhdGggKyAnLnJl
d3JpdGUnCiByZXdyaXRlX2FjdHVhbF9wYXRoID0gYmFzZV9wYXRoICsgJy5hY3R1YWwtcmV3cml0
ZScKIAotZGVmIHZhbHVlVHJlZVRvU3RyaW5nKCBmb3V0LCB2YWx1ZSwgcGF0aCA9ICcuJyApOgor
ZGVmIHZhbHVlVHJlZVRvU3RyaW5nKGZvdXQsIHZhbHVlLCBwYXRoID0gJy4nKToKICAgICB0eSA9
IHR5cGUodmFsdWUpIAogICAgIGlmIHR5ICBpcyB0eXBlcy5EaWN0VHlwZToKLSAgICAgICAgZm91
dC53cml0ZSggJyVzPXt9XG4nICUgcGF0aCApCisgICAgICAgIGZvdXQud3JpdGUoJyVzPXt9XG4n
ICUgcGF0aCkKICAgICAgICAgc3VmZml4ID0gcGF0aFstMV0gIT0gJy4nIGFuZCAnLicgb3IgJycK
ICAgICAgICAgbmFtZXMgPSB2YWx1ZS5rZXlzKCkKICAgICAgICAgbmFtZXMuc29ydCgpCiAgICAg
ICAgIGZvciBuYW1lIGluIG5hbWVzOgotICAgICAgICAgICAgdmFsdWVUcmVlVG9TdHJpbmcoIGZv
dXQsIHZhbHVlW25hbWVdLCBwYXRoICsgc3VmZml4ICsgbmFtZSApCisgICAgICAgICAgICB2YWx1
ZVRyZWVUb1N0cmluZyhmb3V0LCB2YWx1ZVtuYW1lXSwgcGF0aCArIHN1ZmZpeCArIG5hbWUpCiAg
ICAgZWxpZiB0eSBpcyB0eXBlcy5MaXN0VHlwZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPVtd
XG4nICUgcGF0aCApCi0gICAgICAgIGZvciBpbmRleCwgY2hpbGRWYWx1ZSBpbiB6aXAoIHhyYW5n
ZSgwLGxlbih2YWx1ZSkpLCB2YWx1ZSApOgotICAgICAgICAgICAgdmFsdWVUcmVlVG9TdHJpbmco
IGZvdXQsIGNoaWxkVmFsdWUsIHBhdGggKyAnWyVkXScgJSBpbmRleCApCisgICAgICAgIGZvdXQu
d3JpdGUoJyVzPVtdXG4nICUgcGF0aCkKKyAgICAgICAgZm9yIGluZGV4LCBjaGlsZFZhbHVlIGlu
IHppcCh4cmFuZ2UoMCxsZW4odmFsdWUpKSwgdmFsdWUpOgorICAgICAgICAgICAgdmFsdWVUcmVl
VG9TdHJpbmcoZm91dCwgY2hpbGRWYWx1ZSwgcGF0aCArICdbJWRdJyAlIGluZGV4KQogICAgIGVs
aWYgdHkgaXMgdHlwZXMuU3RyaW5nVHlwZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPSIlcyJc
bicgJSAocGF0aCx2YWx1ZSkgKQorICAgICAgICBmb3V0LndyaXRlKCclcz0iJXMiXG4nICUgKHBh
dGgsdmFsdWUpKQogICAgIGVsaWYgdHkgaXMgdHlwZXMuSW50VHlwZToKLSAgICAgICAgZm91dC53
cml0ZSggJyVzPSVkXG4nICUgKHBhdGgsdmFsdWUpICkKKyAgICAgICAgZm91dC53cml0ZSgnJXM9
JWRcbicgJSAocGF0aCx2YWx1ZSkpCiAgICAgZWxpZiB0eSBpcyB0eXBlcy5GbG9hdFR5cGU6Ci0g
ICAgICAgIGZvdXQud3JpdGUoICclcz0lLjE2Z1xuJyAlIChwYXRoLHZhbHVlKSApCisgICAgICAg
IGZvdXQud3JpdGUoJyVzPSUuMTZnXG4nICUgKHBhdGgsdmFsdWUpKQogICAgIGVsaWYgdmFsdWUg
aXMgVHJ1ZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPXRydWVcbicgJSBwYXRoICkKKyAgICAg
ICAgZm91dC53cml0ZSgnJXM9dHJ1ZVxuJyAlIHBhdGgpCiAgICAgZWxpZiB2YWx1ZSBpcyBGYWxz
ZToKLSAgICAgICAgZm91dC53cml0ZSggJyVzPWZhbHNlXG4nICUgcGF0aCApCisgICAgICAgIGZv
dXQud3JpdGUoJyVzPWZhbHNlXG4nICUgcGF0aCkKICAgICBlbGlmIHZhbHVlIGlzIE5vbmU6Ci0g
ICAgICAgIGZvdXQud3JpdGUoICclcz1udWxsXG4nICUgcGF0aCApCisgICAgICAgIGZvdXQud3Jp
dGUoJyVzPW51bGxcbicgJSBwYXRoKQogICAgIGVsc2U6CiAgICAgICAgIGFzc2VydCBGYWxzZSBh
bmQgIlVuZXhwZWN0ZWQgdmFsdWUgdHlwZSIKICAgICAgICAgCi1kZWYgcGFyc2VBbmRTYXZlVmFs
dWVUcmVlKCBpbnB1dCwgYWN0dWFsX3BhdGggKToKLSAgICByb290ID0ganNvbi5sb2FkcyggaW5w
dXQgKQotICAgIGZvdXQgPSBmaWxlKCBhY3R1YWxfcGF0aCwgJ3d0JyApCi0gICAgdmFsdWVUcmVl
VG9TdHJpbmcoIGZvdXQsIHJvb3QgKQorZGVmIHBhcnNlQW5kU2F2ZVZhbHVlVHJlZShpbnB1dCwg
YWN0dWFsX3BhdGgpOgorICAgIHJvb3QgPSBqc29uLmxvYWRzKGlucHV0KQorICAgIGZvdXQgPSBm
aWxlKGFjdHVhbF9wYXRoLCAnd3QnKQorICAgIHZhbHVlVHJlZVRvU3RyaW5nKGZvdXQsIHJvb3Qp
CiAgICAgZm91dC5jbG9zZSgpCiAgICAgcmV0dXJuIHJvb3QKIAotZGVmIHJld3JpdGVWYWx1ZVRy
ZWUoIHZhbHVlLCByZXdyaXRlX3BhdGggKToKLSAgICByZXdyaXRlID0ganNvbi5kdW1wcyggdmFs
dWUgKQorZGVmIHJld3JpdGVWYWx1ZVRyZWUodmFsdWUsIHJld3JpdGVfcGF0aCk6CisgICAgcmV3
cml0ZSA9IGpzb24uZHVtcHModmFsdWUpCiAgICAgI3Jld3JpdGUgPSByZXdyaXRlWzE6LTFdICAj
IFNvbWVob3cgdGhlIHN0cmluZyBpcyBxdW90ZWQgISBqc29ucHkgYnVnID8KLSAgICBmaWxlKCBy
ZXdyaXRlX3BhdGgsICd3dCcpLndyaXRlKCByZXdyaXRlICsgJ1xuJyApCisgICAgZmlsZShyZXdy
aXRlX3BhdGgsICd3dCcpLndyaXRlKHJld3JpdGUgKyAnXG4nKQogICAgIHJldHVybiByZXdyaXRl
CiAgICAgCi1pbnB1dCA9IGZpbGUoIGlucHV0X3BhdGgsICdydCcgKS5yZWFkKCkKLXJvb3QgPSBw
YXJzZUFuZFNhdmVWYWx1ZVRyZWUoIGlucHV0LCBhY3R1YWxfcGF0aCApCi1yZXdyaXRlID0gcmV3
cml0ZVZhbHVlVHJlZSgganNvbi53cml0ZSggcm9vdCApLCByZXdyaXRlX3BhdGggKQotcmV3cml0
ZV9yb290ID0gcGFyc2VBbmRTYXZlVmFsdWVUcmVlKCByZXdyaXRlLCByZXdyaXRlX2FjdHVhbF9w
YXRoICkKK2lucHV0ID0gZmlsZShpbnB1dF9wYXRoLCAncnQnKS5yZWFkKCkKK3Jvb3QgPSBwYXJz
ZUFuZFNhdmVWYWx1ZVRyZWUoaW5wdXQsIGFjdHVhbF9wYXRoKQorcmV3cml0ZSA9IHJld3JpdGVW
YWx1ZVRyZWUoanNvbi53cml0ZShyb290KSwgcmV3cml0ZV9wYXRoKQorcmV3cml0ZV9yb290ID0g
cGFyc2VBbmRTYXZlVmFsdWVUcmVlKHJld3JpdGUsIHJld3JpdGVfYWN0dWFsX3BhdGgpCiAKLXN5
cy5leGl0KCAwICkKK3N5cy5leGl0KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcnVuanNvbnRl
c3RzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9q
c29uY3BwL3NvdXJjZS90ZXN0L3J1bmpzb250ZXN0cy5weQppbmRleCBmZmU4YmQ1MWVhMmRmMTA2
NDhjMTJkNDJkMjBjNzA1MDBhZmQ1OTk0Li5kZmRlY2EzZWFiZmU2MDVlMjIxMmU5NDE1YzAzYjU3
ZjNjMWFjODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcnVuanNvbnRlc3RzLnB5CisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3Vy
Y2UvdGVzdC9ydW5qc29udGVzdHMucHkKQEAgLTEsMTcgKzEsNDIgQEAKKyMgQ29weXJpZ2h0IDIw
MDcgQmFwdGlzdGUgTGVwaWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisjIERpc3RyaWJ1
dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisj
IHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxlIExJQ0VOU0UgZm9y
IGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNF
CisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworZnJvbSBpbyBpbXBvcnQgb3BlbgorZnJvbSBnbG9i
IGltcG9ydCBnbG9iCiBpbXBvcnQgc3lzCiBpbXBvcnQgb3MKIGltcG9ydCBvcy5wYXRoCi1mcm9t
IGdsb2IgaW1wb3J0IGdsb2IKIGltcG9ydCBvcHRwYXJzZQogCiBWQUxHUklORF9DTUQgPSAndmFs
Z3JpbmQgLS10b29sPW1lbWNoZWNrIC0tbGVhay1jaGVjaz15ZXMgLS11bmRlZi12YWx1ZS1lcnJv
cnM9eWVzICcKIAotZGVmIGNvbXBhcmVPdXRwdXRzKCBleHBlY3RlZCwgYWN0dWFsLCBtZXNzYWdl
ICk6CitkZWYgZ2V0U3RhdHVzT3V0cHV0KGNtZCk6CisgICAgIiIiCisgICAgUmV0dXJuIGludCwg
dW5pY29kZSAoZm9yIGJvdGggUHl0aG9uIDIgYW5kIDMpLgorICAgIE5vdGU6IG9zLnBvcGVuKCku
Y2xvc2UoKSB3b3VsZCByZXR1cm4gTm9uZSBmb3IgMC4KKyAgICAiIiIKKyAgICBwcmludChjbWQs
IGZpbGU9c3lzLnN0ZGVycikKKyAgICBwaXBlID0gb3MucG9wZW4oY21kKQorICAgIHByb2Nlc3Nf
b3V0cHV0ID0gcGlwZS5yZWFkKCkKKyAgICB0cnk6CisgICAgICAgICMgV2UgaGF2ZSBiZWVuIHVz
aW5nIG9zLnBvcGVuKCkuIFdoZW4gd2UgcmVhZCgpIHRoZSByZXN1bHQKKyAgICAgICAgIyB3ZSBn
ZXQgJ3N0cicgKGJ5dGVzKSBpbiBweTIsIGFuZCAnc3RyJyAodW5pY29kZSkgaW4gcHkzLgorICAg
ICAgICAjIFVnaCEgVGhlcmUgbXVzdCBiZSBhIGJldHRlciB3YXkgdG8gaGFuZGxlIHRoaXMuCisg
ICAgICAgIHByb2Nlc3Nfb3V0cHV0ID0gcHJvY2Vzc19vdXRwdXQuZGVjb2RlKCd1dGYtOCcpCisg
ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBwYXNzICAjIHB5dGhvbjMKKyAgICBz
dGF0dXMgPSBwaXBlLmNsb3NlKCkKKyAgICByZXR1cm4gc3RhdHVzLCBwcm9jZXNzX291dHB1dAor
ZGVmIGNvbXBhcmVPdXRwdXRzKGV4cGVjdGVkLCBhY3R1YWwsIG1lc3NhZ2UpOgogICAgIGV4cGVj
dGVkID0gZXhwZWN0ZWQuc3RyaXAoKS5yZXBsYWNlKCdccicsJycpLnNwbGl0KCdcbicpCiAgICAg
YWN0dWFsID0gYWN0dWFsLnN0cmlwKCkucmVwbGFjZSgnXHInLCcnKS5zcGxpdCgnXG4nKQogICAg
IGRpZmZfbGluZSA9IDAKLSAgICBtYXhfbGluZV90b19jb21wYXJlID0gbWluKCBsZW4oZXhwZWN0
ZWQpLCBsZW4oYWN0dWFsKSApCi0gICAgZm9yIGluZGV4IGluIHhyYW5nZSgwLG1heF9saW5lX3Rv
X2NvbXBhcmUpOgorICAgIG1heF9saW5lX3RvX2NvbXBhcmUgPSBtaW4obGVuKGV4cGVjdGVkKSwg
bGVuKGFjdHVhbCkpCisgICAgZm9yIGluZGV4IGluIHJhbmdlKDAsbWF4X2xpbmVfdG9fY29tcGFy
ZSk6CiAgICAgICAgIGlmIGV4cGVjdGVkW2luZGV4XS5zdHJpcCgpICE9IGFjdHVhbFtpbmRleF0u
c3RyaXAoKToKICAgICAgICAgICAgIGRpZmZfbGluZSA9IGluZGV4ICsgMQogICAgICAgICAgICAg
YnJlYWsKQEAgLTE5LDcgKzQ0LDcgQEAgZGVmIGNvbXBhcmVPdXRwdXRzKCBleHBlY3RlZCwgYWN0
dWFsLCBtZXNzYWdlICk6CiAgICAgICAgIGRpZmZfbGluZSA9IG1heF9saW5lX3RvX2NvbXBhcmUr
MQogICAgIGlmIGRpZmZfbGluZSA9PSAwOgogICAgICAgICByZXR1cm4gTm9uZQotICAgIGRlZiBz
YWZlR2V0TGluZSggbGluZXMsIGluZGV4ICk6CisgICAgZGVmIHNhZmVHZXRMaW5lKGxpbmVzLCBp
bmRleCk6CiAgICAgICAgIGluZGV4ICs9IC0xCiAgICAgICAgIGlmIGluZGV4ID49IGxlbihsaW5l
cyk6CiAgICAgICAgICAgICByZXR1cm4gJycKQEAgLTI5LDg1ICs1NCwxMjEgQEAgZGVmIGNvbXBh
cmVPdXRwdXRzKCBleHBlY3RlZCwgYWN0dWFsLCBtZXNzYWdlICk6CiAgIEFjdHVhbDogICAnJXMn
CiAiIiIgJSAobWVzc2FnZSwgZGlmZl9saW5lLAogICAgICAgIHNhZmVHZXRMaW5lKGV4cGVjdGVk
LGRpZmZfbGluZSksCi0gICAgICAgc2FmZUdldExpbmUoYWN0dWFsLGRpZmZfbGluZSkgKQotICAg
ICAgICAKLWRlZiBzYWZlUmVhZEZpbGUoIHBhdGggKToKKyAgICAgICBzYWZlR2V0TGluZShhY3R1
YWwsZGlmZl9saW5lKSkKKworZGVmIHNhZmVSZWFkRmlsZShwYXRoKToKICAgICB0cnk6Ci0gICAg
ICAgIHJldHVybiBmaWxlKCBwYXRoLCAncnQnICkucmVhZCgpCi0gICAgZXhjZXB0IElPRXJyb3Is
IGU6CisgICAgICAgIHJldHVybiBvcGVuKHBhdGgsICdydCcsIGVuY29kaW5nID0gJ3V0Zi04Jyku
cmVhZCgpCisgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKICAgICAgICAgcmV0dXJuICc8RmlsZSAi
JXMiIGlzIG1pc3Npbmc6ICVzPicgJSAocGF0aCxlKQogCi1kZWYgcnVuQWxsVGVzdHMoIGpzb250
ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRfZGlyID0gTm9uZSwKLSAgICAgICAgICAgICAgICAg
dXNlX3ZhbGdyaW5kPUZhbHNlLCB3aXRoX2pzb25fY2hlY2tlcj1GYWxzZSApOgorZGVmIHJ1bkFs
bFRlc3RzKGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRfZGlyID0gTm9uZSwKKyAgICAg
ICAgICAgICAgICAgdXNlX3ZhbGdyaW5kPUZhbHNlLCB3aXRoX2pzb25fY2hlY2tlcj1GYWxzZSwK
KyAgICAgICAgICAgICAgICAgd3JpdGVyQ2xhc3M9J1N0eWxlZFdyaXRlcicpOgogICAgIGlmIG5v
dCBpbnB1dF9kaXI6Ci0gICAgICAgIGlucHV0X2RpciA9IG9zLnBhdGguam9pbiggb3MuZ2V0Y3dk
KCksICdkYXRhJyApCi0gICAgdGVzdHMgPSBnbG9iKCBvcy5wYXRoLmpvaW4oIGlucHV0X2Rpciwg
JyouanNvbicgKSApCisgICAgICAgIGlucHV0X2RpciA9IG9zLnBhdGguam9pbihvcy5nZXRjd2Qo
KSwgJ2RhdGEnKQorICAgIHRlc3RzID0gZ2xvYihvcy5wYXRoLmpvaW4oaW5wdXRfZGlyLCAnKi5q
c29uJykpCiAgICAgaWYgd2l0aF9qc29uX2NoZWNrZXI6Ci0gICAgICAgIHRlc3RfanNvbmNoZWNr
ZXIgPSBnbG9iKCBvcy5wYXRoLmpvaW4oIGlucHV0X2RpciwgJy4uL2pzb25jaGVja2VyJywgJyou
anNvbicgKSApCisgICAgICAgIGFsbF90ZXN0X2pzb25jaGVja2VyID0gZ2xvYihvcy5wYXRoLmpv
aW4oaW5wdXRfZGlyLCAnLi4vanNvbmNoZWNrZXInLCAnKi5qc29uJykpCisgICAgICAgICMgVGhl
c2UgdGVzdHMgZmFpbCB3aXRoIHN0cmljdCBqc29uIHN1cHBvcnQsIGJ1dCBwYXNzIHdpdGgganNv
bmNwcCBleHRyYSBsaWVuaWVuY3kKKyAgICAgICAgIiIiCisgICAgICAgIEZhaWx1cmUgZGV0YWls
czoKKyAgICAgICAgKiBUZXN0IC4uL2pzb25jaGVja2VyL2ZhaWwyNS5qc29uCisgICAgICAgIFBh
cnNpbmcgc2hvdWxkIGhhdmUgZmFpbGVkOgorICAgICAgICBbIgl0YWIJY2hhcmFjdGVyCWluCXN0
cmluZwkiXQorCisgICAgICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsMTMuanNvbgorICAg
ICAgICBQYXJzaW5nIHNob3VsZCBoYXZlIGZhaWxlZDoKKyAgICAgICAgeyJOdW1iZXJzIGNhbm5v
dCBoYXZlIGxlYWRpbmcgemVyb2VzIjogMDEzfQorCisgICAgICAgICogVGVzdCAuLi9qc29uY2hl
Y2tlci9mYWlsMTguanNvbgorICAgICAgICBQYXJzaW5nIHNob3VsZCBoYXZlIGZhaWxlZDoKKyAg
ICAgICAgW1tbW1tbW1tbW1tbW1tbW1tbW1siVG9vIGRlZXAiXV1dXV1dXV1dXV1dXV1dXV1dXV0K
KworICAgICAgICAqIFRlc3QgLi4vanNvbmNoZWNrZXIvZmFpbDguanNvbgorICAgICAgICBQYXJz
aW5nIHNob3VsZCBoYXZlIGZhaWxlZDoKKyAgICAgICAgWyJFeHRyYSBjbG9zZSJdXQorCisgICAg
ICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsNy5qc29uCisgICAgICAgIFBhcnNpbmcgc2hv
dWxkIGhhdmUgZmFpbGVkOgorICAgICAgICBbIkNvbW1hIGFmdGVyIHRoZSBjbG9zZSJdLAorCisg
ICAgICAgICogVGVzdCAuLi9qc29uY2hlY2tlci9mYWlsMTAuanNvbgorICAgICAgICBQYXJzaW5n
IHNob3VsZCBoYXZlIGZhaWxlZDoKKyAgICAgICAgeyJFeHRyYSB2YWx1ZSBhZnRlciBjbG9zZSI6
IHRydWV9ICJtaXNwbGFjZWQgcXVvdGVkIHZhbHVlIgorCisgICAgICAgICogVGVzdCAuLi9qc29u
Y2hlY2tlci9mYWlsMjcuanNvbgorICAgICAgICBQYXJzaW5nIHNob3VsZCBoYXZlIGZhaWxlZDoK
KyAgICAgICAgWyJsaW5lCisgICAgICAgIGJyZWFrIl0KKyAgICAgICAgIiIiCisgICAgICAgIGtu
b3duX2RpZmZlcmVuY2VzX3dpdGhqc29uY2hlY2tlciA9IFsgImZhaWwyNS5qc29uIiwgImZhaWwx
My5qc29uIiwgImZhaWwxOC5qc29uIiwgImZhaWw4Lmpzb24iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsNy5qc29uIiwgImZhaWwxMC5qc29uIiwg
ImZhaWwyNy5qc29uIiBdCisgICAgICAgIHRlc3RfanNvbmNoZWNrZXIgPSBbIHRlc3QgZm9yIHRl
c3QgaW4gYWxsX3Rlc3RfanNvbmNoZWNrZXIgaWYgb3MucGF0aC5iYXNlbmFtZSh0ZXN0KSBub3Qg
aW4ga25vd25fZGlmZmVyZW5jZXNfd2l0aGpzb25jaGVja2VyIF0KKwogICAgIGVsc2U6CiAgICAg
ICAgIHRlc3RfanNvbmNoZWNrZXIgPSBbXQogICAgIGZhaWxlZF90ZXN0cyA9IFtdCiAgICAgdmFs
Z3JpbmRfcGF0aCA9IHVzZV92YWxncmluZCBhbmQgVkFMR1JJTkRfQ01EIG9yICcnCiAgICAgZm9y
IGlucHV0X3BhdGggaW4gdGVzdHMgKyB0ZXN0X2pzb25jaGVja2VyOgotICAgICAgICBleHBlY3Rf
ZmFpbHVyZSA9IG9zLnBhdGguYmFzZW5hbWUoIGlucHV0X3BhdGggKS5zdGFydHN3aXRoKCAnZmFp
bCcgKQorICAgICAgICBleHBlY3RfZmFpbHVyZSA9IG9zLnBhdGguYmFzZW5hbWUoaW5wdXRfcGF0
aCkuc3RhcnRzd2l0aCgnZmFpbCcpCiAgICAgICAgIGlzX2pzb25fY2hlY2tlcl90ZXN0ID0gKGlu
cHV0X3BhdGggaW4gdGVzdF9qc29uY2hlY2tlcikgb3IgZXhwZWN0X2ZhaWx1cmUKLSAgICAgICAg
cHJpbnQgJ1RFU1RJTkc6JywgaW5wdXRfcGF0aCwKKyAgICAgICAgcHJpbnQoJ1RFU1RJTkc6Jywg
aW5wdXRfcGF0aCwgZW5kPScgJykKICAgICAgICAgb3B0aW9ucyA9IGlzX2pzb25fY2hlY2tlcl90
ZXN0IGFuZCAnLS1qc29uLWNoZWNrZXInIG9yICcnCi0gICAgICAgIHBpcGUgPSBvcy5wb3Blbigg
IiVzJXMgJXMgJXMiICUgKAotICAgICAgICAgICAgdmFsZ3JpbmRfcGF0aCwganNvbnRlc3RfZXhl
Y3V0YWJsZV9wYXRoLCBvcHRpb25zLAotICAgICAgICAgICAgaW5wdXRfcGF0aCkgKQotICAgICAg
ICBwcm9jZXNzX291dHB1dCA9IHBpcGUucmVhZCgpCi0gICAgICAgIHN0YXR1cyA9IHBpcGUuY2xv
c2UoKQorICAgICAgICBvcHRpb25zICs9ICcgLS1qc29uLXdyaXRlciAlcycld3JpdGVyQ2xhc3MK
KyAgICAgICAgY21kID0gJyVzJXMgJXMgIiVzIicgJSAoICAgICAgICAgICAgdmFsZ3JpbmRfcGF0
aCwganNvbnRlc3RfZXhlY3V0YWJsZV9wYXRoLCBvcHRpb25zLAorICAgICAgICAgICAgaW5wdXRf
cGF0aCkKKyAgICAgICAgc3RhdHVzLCBwcm9jZXNzX291dHB1dCA9IGdldFN0YXR1c091dHB1dChj
bWQpCiAgICAgICAgIGlmIGlzX2pzb25fY2hlY2tlcl90ZXN0OgogICAgICAgICAgICAgaWYgZXhw
ZWN0X2ZhaWx1cmU6Ci0gICAgICAgICAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6Ci0gICAgICAg
ICAgICAgICAgICAgIHByaW50ICdGQUlMRUQnCi0gICAgICAgICAgICAgICAgICAgIGZhaWxlZF90
ZXN0cy5hcHBlbmQoIChpbnB1dF9wYXRoLCAnUGFyc2luZyBzaG91bGQgaGF2ZSBmYWlsZWQ6XG4l
cycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZVJlYWRG
aWxlKGlucHV0X3BhdGgpKSApCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoJ0ZBSUxFRCcpCisgICAgICAgICAgICAgICAgICAgIGZhaWxl
ZF90ZXN0cy5hcHBlbmQoKGlucHV0X3BhdGgsICdQYXJzaW5nIHNob3VsZCBoYXZlIGZhaWxlZDpc
biVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlUmVh
ZEZpbGUoaW5wdXRfcGF0aCkpKQogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgICAgIHByaW50ICdPSycKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ09LJykKICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgICAgICBwcmludCAnRkFJTEVEJwotICAgICAgICAgICAgICAgICAgICBmYWls
ZWRfdGVzdHMuYXBwZW5kKCAoaW5wdXRfcGF0aCwgJ1BhcnNpbmcgZmFpbGVkOlxuJyArIHByb2Nl
c3Nfb3V0cHV0KSApCisgICAgICAgICAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgICAg
ICAgICBwcmludCgnRkFJTEVEJykKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkX3Rlc3RzLmFw
cGVuZCgoaW5wdXRfcGF0aCwgJ1BhcnNpbmcgZmFpbGVkOlxuJyArIHByb2Nlc3Nfb3V0cHV0KSkK
ICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBwcmludCAnT0snCisg
ICAgICAgICAgICAgICAgICAgIHByaW50KCdPSycpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBiYXNlX3BhdGggPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X3BhdGgpWzBdCi0gICAgICAgICAg
ICBhY3R1YWxfb3V0cHV0ID0gc2FmZVJlYWRGaWxlKCBiYXNlX3BhdGggKyAnLmFjdHVhbCcgKQot
ICAgICAgICAgICAgYWN0dWFsX3Jld3JpdGVfb3V0cHV0ID0gc2FmZVJlYWRGaWxlKCBiYXNlX3Bh
dGggKyAnLmFjdHVhbC1yZXdyaXRlJyApCi0gICAgICAgICAgICBmaWxlKGJhc2VfcGF0aCArICcu
cHJvY2Vzcy1vdXRwdXQnLCd3dCcpLndyaXRlKCBwcm9jZXNzX291dHB1dCApCisgICAgICAgICAg
ICBhY3R1YWxfb3V0cHV0ID0gc2FmZVJlYWRGaWxlKGJhc2VfcGF0aCArICcuYWN0dWFsJykKKyAg
ICAgICAgICAgIGFjdHVhbF9yZXdyaXRlX291dHB1dCA9IHNhZmVSZWFkRmlsZShiYXNlX3BhdGgg
KyAnLmFjdHVhbC1yZXdyaXRlJykKKyAgICAgICAgICAgIG9wZW4oYmFzZV9wYXRoICsgJy5wcm9j
ZXNzLW91dHB1dCcsICd3dCcsIGVuY29kaW5nID0gJ3V0Zi04Jykud3JpdGUocHJvY2Vzc19vdXRw
dXQpCiAgICAgICAgICAgICBpZiBzdGF0dXM6Ci0gICAgICAgICAgICAgICAgcHJpbnQgJ3BhcnNp
bmcgZmFpbGVkJwotICAgICAgICAgICAgICAgIGZhaWxlZF90ZXN0cy5hcHBlbmQoIChpbnB1dF9w
YXRoLCAnUGFyc2luZyBmYWlsZWQ6XG4nICsgcHJvY2Vzc19vdXRwdXQpICkKKyAgICAgICAgICAg
ICAgICBwcmludCgncGFyc2luZyBmYWlsZWQnKQorICAgICAgICAgICAgICAgIGZhaWxlZF90ZXN0
cy5hcHBlbmQoKGlucHV0X3BhdGgsICdQYXJzaW5nIGZhaWxlZDpcbicgKyBwcm9jZXNzX291dHB1
dCkpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGV4cGVjdGVkX291dHB1dF9w
YXRoID0gb3MucGF0aC5zcGxpdGV4dChpbnB1dF9wYXRoKVswXSArICcuZXhwZWN0ZWQnCi0gICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0ID0gZmlsZSggZXhwZWN0ZWRfb3V0cHV0X3BhdGgs
ICdydCcgKS5yZWFkKCkKLSAgICAgICAgICAgICAgICBkZXRhaWwgPSAoIGNvbXBhcmVPdXRwdXRz
KCBleHBlY3RlZF9vdXRwdXQsIGFjdHVhbF9vdXRwdXQsICdpbnB1dCcgKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9yIGNvbXBhcmVPdXRwdXRzKCBleHBlY3RlZF9vdXRwdXQsIGFjdHVh
bF9yZXdyaXRlX291dHB1dCwgJ3Jld3JpdGUnICkgKQorICAgICAgICAgICAgICAgIGV4cGVjdGVk
X291dHB1dCA9IG9wZW4oZXhwZWN0ZWRfb3V0cHV0X3BhdGgsICdydCcsIGVuY29kaW5nID0gJ3V0
Zi04JykucmVhZCgpCisgICAgICAgICAgICAgICAgZGV0YWlsID0gKGNvbXBhcmVPdXRwdXRzKGV4
cGVjdGVkX291dHB1dCwgYWN0dWFsX291dHB1dCwgJ2lucHV0JykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvciBjb21wYXJlT3V0cHV0cyhleHBlY3RlZF9vdXRwdXQsIGFjdHVhbF9yZXdy
aXRlX291dHB1dCwgJ3Jld3JpdGUnKSkKICAgICAgICAgICAgICAgICBpZiBkZXRhaWw6Ci0gICAg
ICAgICAgICAgICAgICAgIHByaW50ICdGQUlMRUQnCi0gICAgICAgICAgICAgICAgICAgIGZhaWxl
ZF90ZXN0cy5hcHBlbmQoIChpbnB1dF9wYXRoLCBkZXRhaWwpICkKKyAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoJ0ZBSUxFRCcpCisgICAgICAgICAgICAgICAgICAgIGZhaWxlZF90ZXN0cy5hcHBl
bmQoKGlucHV0X3BhdGgsIGRldGFpbCkpCiAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgcHJpbnQgJ09LJworICAgICAgICAgICAgICAgICAgICBwcmludCgnT0snKQog
CiAgICAgaWYgZmFpbGVkX3Rlc3RzOgotICAgICAgICBwcmludAotICAgICAgICBwcmludCAnRmFp
bHVyZSBkZXRhaWxzOicKKyAgICAgICAgcHJpbnQoKQorICAgICAgICBwcmludCgnRmFpbHVyZSBk
ZXRhaWxzOicpCiAgICAgICAgIGZvciBmYWlsZWRfdGVzdCBpbiBmYWlsZWRfdGVzdHM6Ci0gICAg
ICAgICAgICBwcmludCAnKiBUZXN0JywgZmFpbGVkX3Rlc3RbMF0KLSAgICAgICAgICAgIHByaW50
IGZhaWxlZF90ZXN0WzFdCi0gICAgICAgICAgICBwcmludAotICAgICAgICBwcmludCAnVGVzdCBy
ZXN1bHRzOiAlZCBwYXNzZWQsICVkIGZhaWxlZC4nICUgKGxlbih0ZXN0cyktbGVuKGZhaWxlZF90
ZXN0cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGVuKGZhaWxlZF90ZXN0cykgKQorICAgICAgICAgICAgcHJpbnQoJyogVGVzdCcsIGZh
aWxlZF90ZXN0WzBdKQorICAgICAgICAgICAgcHJpbnQoZmFpbGVkX3Rlc3RbMV0pCisgICAgICAg
ICAgICBwcmludCgpCisgICAgICAgIHByaW50KCdUZXN0IHJlc3VsdHM6ICVkIHBhc3NlZCwgJWQg
ZmFpbGVkLicgJSAobGVuKHRlc3RzKS1sZW4oZmFpbGVkX3Rlc3RzKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oZmFpbGVkX3Rlc3Rz
KSkpCiAgICAgICAgIHJldHVybiAxCiAgICAgZWxzZToKLSAgICAgICAgcHJpbnQgJ0FsbCAlZCB0
ZXN0cyBwYXNzZWQuJyAlIGxlbih0ZXN0cykKKyAgICAgICAgcHJpbnQoJ0FsbCAlZCB0ZXN0cyBw
YXNzZWQuJyAlIGxlbih0ZXN0cykpCiAgICAgICAgIHJldHVybiAwCiAKIGRlZiBtYWluKCk6CiAg
ICAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCi0gICAgcGFyc2VyID0gT3B0aW9u
UGFyc2VyKCB1c2FnZT0iJXByb2cgW29wdGlvbnNdIDxwYXRoIHRvIGpzb250ZXN0cnVubmVyLmV4
ZT4gW3Rlc3QgY2FzZSBkaXJlY3RvcnldIiApCisgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKHVz
YWdlPSIlcHJvZyBbb3B0aW9uc10gPHBhdGggdG8ganNvbnRlc3RydW5uZXIuZXhlPiBbdGVzdCBj
YXNlIGRpcmVjdG9yeV0iKQogICAgIHBhcnNlci5hZGRfb3B0aW9uKCItLXZhbGdyaW5kIiwKICAg
ICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InZhbGdyaW5kIiwgZGVm
YXVsdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgIGhlbHA9InJ1biBhbGwgdGhlIHRlc3RzIHVz
aW5nIHZhbGdyaW5kIHRvIGRldGVjdCBtZW1vcnkgbGVha3MiKQpAQCAtMTE4LDE3ICsxNzksMzIg
QEAgZGVmIG1haW4oKToKICAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQog
CiAgICAgaWYgbGVuKGFyZ3MpIDwgMSBvciBsZW4oYXJncykgPiAyOgotICAgICAgICBwYXJzZXIu
ZXJyb3IoICdNdXN0IHByb3ZpZGVzIGF0IGxlYXN0IHBhdGggdG8ganNvbnRlc3RydW5uZXIgZXhl
Y3V0YWJsZS4nICkKLSAgICAgICAgc3lzLmV4aXQoIDEgKQorICAgICAgICBwYXJzZXIuZXJyb3Io
J011c3QgcHJvdmlkZXMgYXQgbGVhc3QgcGF0aCB0byBqc29udGVzdHJ1bm5lciBleGVjdXRhYmxl
LicpCisgICAgICAgIHN5cy5leGl0KDEpCiAKLSAgICBqc29udGVzdF9leGVjdXRhYmxlX3BhdGgg
PSBvcy5wYXRoLm5vcm1wYXRoKCBvcy5wYXRoLmFic3BhdGgoIGFyZ3NbMF0gKSApCisgICAganNv
bnRlc3RfZXhlY3V0YWJsZV9wYXRoID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmFic3BhdGgo
YXJnc1swXSkpCiAgICAgaWYgbGVuKGFyZ3MpID4gMToKLSAgICAgICAgaW5wdXRfcGF0aCA9IG9z
LnBhdGgubm9ybXBhdGgoIG9zLnBhdGguYWJzcGF0aCggYXJnc1sxXSApICkKKyAgICAgICAgaW5w
dXRfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKGFyZ3NbMV0pKQogICAg
IGVsc2U6CiAgICAgICAgIGlucHV0X3BhdGggPSBOb25lCi0gICAgc3RhdHVzID0gcnVuQWxsVGVz
dHMoIGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRfcGF0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXNlX3ZhbGdyaW5kPW9wdGlvbnMudmFsZ3JpbmQsIHdpdGhfanNvbl9jaGVj
a2VyPW9wdGlvbnMud2l0aF9qc29uX2NoZWNrZXIgKQotICAgIHN5cy5leGl0KCBzdGF0dXMgKQor
ICAgIHN0YXR1cyA9IHJ1bkFsbFRlc3RzKGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5wdXRf
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfdmFsZ3JpbmQ9b3B0aW9ucy52YWxn
cmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoX2pzb25fY2hlY2tlcj1vcHRpb25z
LndpdGhfanNvbl9jaGVja2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlckNsYXNz
PSdTdHlsZWRXcml0ZXInKQorICAgIGlmIHN0YXR1czoKKyAgICAgICAgc3lzLmV4aXQoc3RhdHVz
KQorICAgIHN0YXR1cyA9IHJ1bkFsbFRlc3RzKGpzb250ZXN0X2V4ZWN1dGFibGVfcGF0aCwgaW5w
dXRfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfdmFsZ3JpbmQ9b3B0aW9ucy52
YWxncmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoX2pzb25fY2hlY2tlcj1vcHRp
b25zLndpdGhfanNvbl9jaGVja2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlckNs
YXNzPSdTdHlsZWRTdHJlYW1Xcml0ZXInKQorICAgIGlmIHN0YXR1czoKKyAgICAgICAgc3lzLmV4
aXQoc3RhdHVzKQorICAgIHN0YXR1cyA9IHJ1bkFsbFRlc3RzKGpzb250ZXN0X2V4ZWN1dGFibGVf
cGF0aCwgaW5wdXRfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfdmFsZ3JpbmQ9
b3B0aW9ucy52YWxncmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoX2pzb25fY2hl
Y2tlcj1vcHRpb25zLndpdGhfanNvbl9jaGVja2VyLAorICAgICAgICAgICAgICAgICAgICAgICAg
IHdyaXRlckNsYXNzPSdCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcicpCisgICAgaWYgc3RhdHVzOgor
ICAgICAgICBzeXMuZXhpdChzdGF0dXMpCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAg
ICAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Rlc3QvcnVudW5pdHRlc3RzLnB5IGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS90
ZXN0L3J1bnVuaXR0ZXN0cy5weQppbmRleCAzNjYxODRjZmI1MDA3MTM1MWFjYTA5NGQxZmZjMDE2
ZDI2NTczMjAyLi42NjM0ZTcyNDE5Njc4Y2E0M2ZjOGIwODc2ZDBhOWM3OTc3N2E3ZTUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pz
b25jcHAvc291cmNlL3Rlc3QvcnVudW5pdHRlc3RzLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2UvdGVzdC9ydW51bml0
dGVzdHMucHkKQEAgLTEsNjEgKzEsNzIgQEAKKyMgQ29weXJpZ2h0IDIwMDkgQmFwdGlzdGUgTGVw
aWxsZXVyIGFuZCBUaGUgSnNvbkNwcCBBdXRob3JzCisjIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisjIHJlY29nbml6ZWQgaW4g
eW91ciBqdXJpc2RpY3Rpb24uCisjIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5
IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29k
ZV9saXRlcmFscworZnJvbSBpbyBpbXBvcnQgb3BlbgorZnJvbSBnbG9iIGltcG9ydCBnbG9iCiBp
bXBvcnQgc3lzCiBpbXBvcnQgb3MKIGltcG9ydCBvcy5wYXRoCiBpbXBvcnQgc3VicHJvY2Vzcwot
ZnJvbSBnbG9iIGltcG9ydCBnbG9iCiBpbXBvcnQgb3B0cGFyc2UKIAogVkFMR1JJTkRfQ01EID0g
J3ZhbGdyaW5kIC0tdG9vbD1tZW1jaGVjayAtLWxlYWstY2hlY2s9eWVzIC0tdW5kZWYtdmFsdWUt
ZXJyb3JzPXllcycKIAogY2xhc3MgVGVzdFByb3h5KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9f
KCBzZWxmLCB0ZXN0X2V4ZV9wYXRoLCB1c2VfdmFsZ3JpbmQ9RmFsc2UgKToKLSAgICAgICAgc2Vs
Zi50ZXN0X2V4ZV9wYXRoID0gb3MucGF0aC5ub3JtcGF0aCggb3MucGF0aC5hYnNwYXRoKCB0ZXN0
X2V4ZV9wYXRoICkgKQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X2V4ZV9wYXRoLCB1c2Vf
dmFsZ3JpbmQ9RmFsc2UpOgorICAgICAgICBzZWxmLnRlc3RfZXhlX3BhdGggPSBvcy5wYXRoLm5v
cm1wYXRoKG9zLnBhdGguYWJzcGF0aCh0ZXN0X2V4ZV9wYXRoKSkKICAgICAgICAgc2VsZi51c2Vf
dmFsZ3JpbmQgPSB1c2VfdmFsZ3JpbmQKIAotICAgIGRlZiBydW4oIHNlbGYsIG9wdGlvbnMgKToK
KyAgICBkZWYgcnVuKHNlbGYsIG9wdGlvbnMpOgogICAgICAgICBpZiBzZWxmLnVzZV92YWxncmlu
ZDoKICAgICAgICAgICAgIGNtZCA9IFZBTEdSSU5EX0NNRC5zcGxpdCgpCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBjbWQgPSBbXQotICAgICAgICBjbWQuZXh0ZW5kKCBbc2VsZi50ZXN0X2V4
ZV9wYXRoLCAnLS10ZXN0LWF1dG8nXSArIG9wdGlvbnMgKQotICAgICAgICBwcm9jZXNzID0gc3Vi
cHJvY2Vzcy5Qb3BlbiggY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJv
Y2Vzcy5TVERPVVQgKQorICAgICAgICBjbWQuZXh0ZW5kKFtzZWxmLnRlc3RfZXhlX3BhdGgsICct
LXRlc3QtYXV0byddICsgb3B0aW9ucykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcHJvY2Vz
cyA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9
c3VicHJvY2Vzcy5TVERPVVQpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHByaW50KGNt
ZCkKKyAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIHN0ZG91dCA9IHByb2Nlc3MuY29tbXVuaWNh
dGUoKVswXQogICAgICAgICBpZiBwcm9jZXNzLnJldHVybmNvZGU6CiAgICAgICAgICAgICByZXR1
cm4gRmFsc2UsIHN0ZG91dAogICAgICAgICByZXR1cm4gVHJ1ZSwgc3Rkb3V0CiAKLWRlZiBydW5B
bGxUZXN0cyggZXhlX3BhdGgsIHVzZV92YWxncmluZD1GYWxzZSApOgotICAgIHRlc3RfcHJveHkg
PSBUZXN0UHJveHkoIGV4ZV9wYXRoLCB1c2VfdmFsZ3JpbmQ9dXNlX3ZhbGdyaW5kICkKLSAgICBz
dGF0dXMsIHRlc3RfbmFtZXMgPSB0ZXN0X3Byb3h5LnJ1biggWyctLWxpc3QtdGVzdHMnXSApCitk
ZWYgcnVuQWxsVGVzdHMoZXhlX3BhdGgsIHVzZV92YWxncmluZD1GYWxzZSk6CisgICAgdGVzdF9w
cm94eSA9IFRlc3RQcm94eShleGVfcGF0aCwgdXNlX3ZhbGdyaW5kPXVzZV92YWxncmluZCkKKyAg
ICBzdGF0dXMsIHRlc3RfbmFtZXMgPSB0ZXN0X3Byb3h5LnJ1bihbJy0tbGlzdC10ZXN0cyddKQog
ICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJGYWlsZWQg
dG8gb2J0YWluIHVuaXQgdGVzdHMgbGlzdDpcbiIgKyB0ZXN0X25hbWVzCisgICAgICAgIHByaW50
KCJGYWlsZWQgdG8gb2J0YWluIHVuaXQgdGVzdHMgbGlzdDpcbiIgKyB0ZXN0X25hbWVzLCBmaWxl
PXN5cy5zdGRlcnIpCiAgICAgICAgIHJldHVybiAxCi0gICAgdGVzdF9uYW1lcyA9IFtuYW1lLnN0
cmlwKCkgZm9yIG5hbWUgaW4gdGVzdF9uYW1lcy5zdHJpcCgpLnNwbGl0KCdcbicpXQorICAgIHRl
c3RfbmFtZXMgPSBbbmFtZS5zdHJpcCgpIGZvciBuYW1lIGluIHRlc3RfbmFtZXMuZGVjb2RlKCd1
dGYtOCcpLnN0cmlwKCkuc3BsaXQoJ1xuJyldCiAgICAgZmFpbHVyZXMgPSBbXQogICAgIGZvciBu
YW1lIGluIHRlc3RfbmFtZXM6Ci0gICAgICAgIHByaW50ICdURVNUSU5HICVzOicgJSBuYW1lLAot
ICAgICAgICBzdWNjZWVkLCByZXN1bHQgPSB0ZXN0X3Byb3h5LnJ1biggWyctLXRlc3QnLCBuYW1l
XSApCisgICAgICAgIHByaW50KCdURVNUSU5HICVzOicgJSBuYW1lLCBlbmQ9JyAnKQorICAgICAg
ICBzdWNjZWVkLCByZXN1bHQgPSB0ZXN0X3Byb3h5LnJ1bihbJy0tdGVzdCcsIG5hbWVdKQogICAg
ICAgICBpZiBzdWNjZWVkOgotICAgICAgICAgICAgcHJpbnQgJ09LJworICAgICAgICAgICAgcHJp
bnQoJ09LJykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCggKG5h
bWUsIHJlc3VsdCkgKQotICAgICAgICAgICAgcHJpbnQgJ0ZBSUxFRCcKKyAgICAgICAgICAgIGZh
aWx1cmVzLmFwcGVuZCgobmFtZSwgcmVzdWx0KSkKKyAgICAgICAgICAgIHByaW50KCdGQUlMRUQn
KQogICAgIGZhaWxlZF9jb3VudCA9IGxlbihmYWlsdXJlcykKICAgICBwYXNzX2NvdW50ID0gbGVu
KHRlc3RfbmFtZXMpIC0gZmFpbGVkX2NvdW50CiAgICAgaWYgZmFpbGVkX2NvdW50OgotICAgICAg
ICBwcmludAorICAgICAgICBwcmludCgpCiAgICAgICAgIGZvciBuYW1lLCByZXN1bHQgaW4gZmFp
bHVyZXM6Ci0gICAgICAgICAgICBwcmludCByZXN1bHQKLSAgICAgICAgcHJpbnQgJyVkLyVkIHRl
c3RzIHBhc3NlZCAoJWQgZmFpbHVyZShzKSknICUgKAotICAgICAgICAgICAgcGFzc19jb3VudCwg
bGVuKHRlc3RfbmFtZXMpLCBmYWlsZWRfY291bnQpCisgICAgICAgICAgICBwcmludChyZXN1bHQp
CisgICAgICAgIHByaW50KCclZC8lZCB0ZXN0cyBwYXNzZWQgKCVkIGZhaWx1cmUocykpJyAlICgg
ICAgICAgICAgICBwYXNzX2NvdW50LCBsZW4odGVzdF9uYW1lcyksIGZhaWxlZF9jb3VudCkpCiAg
ICAgICAgIHJldHVybiAxCiAgICAgZWxzZToKLSAgICAgICAgcHJpbnQgJ0FsbCAlZCB0ZXN0cyBw
YXNzZWQnICUgbGVuKHRlc3RfbmFtZXMpCisgICAgICAgIHByaW50KCdBbGwgJWQgdGVzdHMgcGFz
c2VkJyAlIGxlbih0ZXN0X25hbWVzKSkKICAgICAgICAgcmV0dXJuIDAKIAogZGVmIG1haW4oKToK
ICAgICBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKLSAgICBwYXJzZXIgPSBPcHRp
b25QYXJzZXIoIHVzYWdlPSIlcHJvZyBbb3B0aW9uc10gPHBhdGggdG8gdGVzdF9saWJfanNvbi5l
eGU+IiApCisgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKHVzYWdlPSIlcHJvZyBbb3B0aW9uc10g
PHBhdGggdG8gdGVzdF9saWJfanNvbi5leGU+IikKICAgICBwYXJzZXIuYWRkX29wdGlvbigiLS12
YWxncmluZCIsCiAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJ2
YWxncmluZCIsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgICBoZWxwPSJydW4gYWxs
IHRoZSB0ZXN0cyB1c2luZyB2YWxncmluZCB0byBkZXRlY3QgbWVtb3J5IGxlYWtzIikKQEAgLTYz
LDExICs3NCwxMSBAQCBkZWYgbWFpbigpOgogICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFy
c2VfYXJncygpCiAKICAgICBpZiBsZW4oYXJncykgIT0gMToKLSAgICAgICAgcGFyc2VyLmVycm9y
KCAnTXVzdCBwcm92aWRlcyBhdCBsZWFzdCBwYXRoIHRvIHRlc3RfbGliX2pzb24gZXhlY3V0YWJs
ZS4nICkKLSAgICAgICAgc3lzLmV4aXQoIDEgKQorICAgICAgICBwYXJzZXIuZXJyb3IoJ011c3Qg
cHJvdmlkZXMgYXQgbGVhc3QgcGF0aCB0byB0ZXN0X2xpYl9qc29uIGV4ZWN1dGFibGUuJykKKyAg
ICAgICAgc3lzLmV4aXQoMSkKIAotICAgIGV4aXRfY29kZSA9IHJ1bkFsbFRlc3RzKCBhcmdzWzBd
LCB1c2VfdmFsZ3JpbmQ9b3B0aW9ucy52YWxncmluZCApCi0gICAgc3lzLmV4aXQoIGV4aXRfY29k
ZSApCisgICAgZXhpdF9jb2RlID0gcnVuQWxsVGVzdHMoYXJnc1swXSwgdXNlX3ZhbGdyaW5kPW9w
dGlvbnMudmFsZ3JpbmQpCisgICAgc3lzLmV4aXQoZXhpdF9jb2RlKQogCiBpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgogICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9uIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJj
ZS92ZXJzaW9uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGVmZTFlYTEwNjNjNDIz
NzJjMWQ0YjM3MDgxMzM5MGE5YTdlZDgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvanNvbmNwcC9zb3VyY2UvdmVyc2lvbgorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LTAuNi4wLWRldgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvanNvbmNwcC9zb3VyY2Uv
dmVyc2lvbi5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvanNvbmNwcC9zb3VyY2UvdmVyc2lvbi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmMwM2Y3ZGQ3Mjk2NmQy
N2Q5NjE3MjAyOTc4Yjg5MjRiNTkxYzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9u
LmluCkBAIC0wLDAgKzEgQEAKK0BKU09OQ1BQX1ZFUlNJT05ACmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2pzb25jcHAvc291cmNlL3Zl
cnNpb24udHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9uLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmEzNjNlNzZlZDcxNzM4
YjkyNTFjNjg4YjVmODEzYzM1MWI5OWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9qc29uY3BwL3NvdXJjZS92ZXJzaW9u
LnR4dApAQCAtMCwwICsxIEBACisxLjguNAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>